{"name":"alicloud","displayName":"Alibaba Cloud","version":"3.97.0","description":"A Pulumi package for creating and managing AliCloud resources.","keywords":["pulumi","alicloud"],"homepage":"https://pulumi.io","license":"Apache-2.0","attribution":"This Pulumi package is based on the [`alicloud` Terraform Provider](https://github.com/aliyun/terraform-provider-alicloud).","repository":"https://github.com/pulumi/pulumi-alicloud","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"packageReferences":{"Pulumi":"3.*"},"namespaces":{"ackone":"AckOne","actiontrail":"ActionTrail","adb":"Adb","alb":"Alb","alicloud":"AliCloud","aligreen":"Aligreen","alikafka":"alikafka","amqp":"Amqp","apig":"Apig","apigateway":"ApiGateway","arms":"Arms","bastionhost":"BastionHost","bp":"Bp","brain":"Brain","bss":"Bss","cas":"Cas","cassandra":"Cassandra","cddc":"Cddc","cdn":"Cdn","cen":"Cen","cfg":"Cfg","chatbot":"Chatbot","clickhouse":"ClickHouse","clickhouseenterprisedbcluster":"clickHouseEnterpriseDbCluster","cloudauth":"CloudAuth","cloudconnect":"CloudConnect","cloudcontrol":"CloudControl","cloudfirewall":"CloudFirewall","cloudmonitor":"CloudMonitor","cloudphone":"cloudPhone","cloudphoneinstance":"cloudPhoneInstance","cloudsso":"CloudSso","cloudstoragegateway":"CloudStorageGateway","cms":"Cms","compute":"Compute","cr":"CR","cs":"CS","das":"Das","databasefilesystem":"DatabaseFilesystem","databasegateway":"DatabaseGateway","datahub":"Datahub","dataworks":"DataWorks","dbs":"DBS","dcdn":"Dcdn","ddos":"Ddos","dds":"Dds","dfs":"Dfs","directmail":"DirectMail","dms":"Dms","dns":"Dns","drds":"Drds","dts":"Dts","eais":"Eais","ebs":"Ebs","eci":"Eci","ecp":"Ecp","ecs":"Ecs","edas":"Edas","eds":"Eds","eflo":"Eflo","ehpc":"Ehpc","eipanycast":"EipAnycast","elasticsearch":"ElasticSearch","emr":"Emr","emrv2":"Emrv2","ens":"Ens","esa":"Esa","ess":"Ess","eventbridge":"EventBridge","expressconnect":"ExpressConnect","fc":"FC","fnf":"FNF","ga":"Ga","governance":"Governance","gpdb":"Gpdb","graphdatabase":"GraphDatabase","gwlb":"Gwlb","hbase":"Hbase","hbr":"Hbr","hologram":"Hologram","imm":"Imm","imp":"Imp","ims":"Ims","index":"index","iot":"Iot","kms":"Kms","kvstore":"KVStore","lindorm":"Lindorm","live":"Live","log":"Log","marketplace":"MarketPlace","maxcompute":"MaxCompute","message":"Message","mhub":"Mhub","mns":"Mns","mongodb":"MongoDB","mse":"Mse","nas":"Nas","nlb":"Nlb","ocean":"Ocean","oos":"Oos","opensearch":"OpenSearch","oss":"Oss","ots":"Ots","pai":"Pai","polardb":"PolarDB","privatelink":"PrivateLink","pvtz":"Pvtz","quickbi":"QuickBI","quotas":"Quotas","ram":"Ram","rdc":"Rdc","rds":"Rds","realtimecompute":"RealtimeCompute","redis":"Redis","resourcemanager":"ResourceManager","rocketmq":"RocketMQ","ros":"Ros","sae":"Sae","sag":"Sag","scdn":"Scdn","schedulerx":"SchedulerX","sddp":"Sddp","securitycenter":"SecurityCenter","selectdb":"SelectDB","servicecatalog":"ServiceCatalog","servicemesh":"ServiceMesh","simpleapplicationserver":"simpleApplicationServer","slb":"Slb","sls":"Sls","sms":"Sms","sslcertificatesservicepca":"sslCertificatesServicePca","starrocks":"starRocks","tag":"Tag","threatdetection":"ThreatDetection","tsdb":"Tsdb","videosurveillance":"VideoSurveillance","vod":"Vod","vpc":"Vpc","vpn":"Vpn","waf":"Waf","wafv3":"Wafv3","yundun":"Yundun"},"compatibility":"tfbridge20","respectSchemaVersion":true},"go":{"importBasePath":"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud","generateResourceContainerTypes":true,"generateExtraInputTypes":true,"respectSchemaVersion":true},"nodejs":{"packageDescription":"A Pulumi package for creating and managing AliCloud resources.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/aliyun/terraform-provider-alicloud)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-alicloud` repo](https://github.com/pulumi/pulumi-alicloud/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-alicloud` repo](https://github.com/aliyun/terraform-provider-alicloud/issues).","devDependencies":{"@types/node":"^10.0.0"},"compatibility":"tfbridge20","disableUnionOutputTypes":true,"respectSchemaVersion":true},"python":{"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/aliyun/terraform-provider-alicloud)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-alicloud` repo](https://github.com/pulumi/pulumi-alicloud/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-alicloud` repo](https://github.com/aliyun/terraform-provider-alicloud/issues).","compatibility":"tfbridge20","respectSchemaVersion":true,"pyproject":{"enabled":true}}},"config":{"variables":{"accessKey":{"type":"string","description":"The access key for API operations. You can retrieve this from the 'Security Management' section of the Alibaba Cloud console."},"accountId":{"type":"string","description":"The account ID for some service API operations. You can retrieve this from the 'Security Settings' section of the Alibaba Cloud console."},"accountType":{"type":"string"},"assumeRole":{"$ref":"#/types/alicloud:config/assumeRole:assumeRole"},"assumeRoleWithOidc":{"$ref":"#/types/alicloud:config/assumeRoleWithOidc:assumeRoleWithOidc"},"clientConnectTimeout":{"type":"integer","description":"The maximum timeout of the client connection server."},"clientReadTimeout":{"type":"integer","description":"The maximum timeout of the client read request."},"configurationSource":{"type":"string","description":"Use this to mark a terraform configuration file source."},"credentialsUri":{"type":"string","description":"The URI of sidecar credentials service."},"ecsRoleName":{"type":"string","description":"The RAM Role Name attached on a ECS instance for API operations. You can retrieve this from the 'Access Control' section of the Alibaba Cloud console.","defaultInfo":{"environment":["ALICLOUD_ECS_ROLE_NAME"]}},"endpoints":{"type":"array","items":{"$ref":"#/types/alicloud:config/endpoints:endpoints"}},"fc":{"type":"string","deprecationMessage":"Field 'fc' has been deprecated from provider version 1.28.0. New field 'fc' which in nested endpoints instead."},"logEndpoint":{"type":"string","deprecationMessage":"Field 'log_endpoint' has been deprecated from provider version 1.28.0. New field 'log' which in nested endpoints instead."},"maxRetryTimeout":{"type":"integer","description":"The maximum retry timeout of the request."},"mnsEndpoint":{"type":"string","deprecationMessage":"Field 'mns_endpoint' has been deprecated from provider version 1.28.0. New field 'mns' which in nested endpoints instead."},"otsInstanceName":{"type":"string","deprecationMessage":"Field 'ots_instance_name' has been deprecated from provider version 1.10.0. New field 'instance_name' of resource 'alicloud_ots_table' instead."},"profile":{"type":"string","description":"The profile for API operations. If not set, the default profile created with `aliyun configure` will be used.","defaultInfo":{"environment":["ALICLOUD_PROFILE"]}},"protocol":{"type":"string"},"region":{"type":"string","description":"The region where Alibaba Cloud operations will take place. Examples are cn-beijing, cn-hangzhou, eu-central-1, etc.","defaultInfo":{"environment":["ALICLOUD_REGION"]}},"secretKey":{"type":"string","description":"The secret key for API operations. You can retrieve this from the 'Security Management' section of the Alibaba Cloud console."},"secureTransport":{"type":"string","description":"The security transport for the assume role invoking."},"securityToken":{"type":"string","description":"security token. A security token is only required if you are using Security Token Service."},"securityTransport":{"type":"string"},"sharedCredentialsFile":{"type":"string","description":"The path to the shared credentials file. If not set this defaults to ~/.aliyun/config.json"},"signVersion":{"$ref":"#/types/alicloud:config/signVersion:signVersion"},"skipRegionValidation":{"type":"boolean","description":"Skip static validation of region ID. Used by users of alternative AlibabaCloud-like APIs or users w/ access to regions that are not public (yet)."},"sourceIp":{"type":"string","description":"The source ip for the assume role invoking."}}},"types":{"alicloud:ackone/ClusterNetwork:ClusterNetwork":{"properties":{"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"Security group to which the cluster belongs.\n"},"vpcId":{"type":"string","description":"VpcId to which the cluster belongs.\n","willReplaceOnChanges":true},"vswitches":{"type":"array","items":{"type":"string"},"description":"Switch to which the cluster belongs.\n","willReplaceOnChanges":true}},"type":"object","required":["vpcId","vswitches"],"language":{"nodejs":{"requiredOutputs":["securityGroupIds","vpcId","vswitches"]}}},"alicloud:actiontrail/getConsumerGroupsGroup:getConsumerGroupsGroup":{"properties":{"consumerId":{"type":"string","description":"The name of the consumer group.\n"},"id":{"type":"string","description":"The ID of the consumer group, It is formatted to `\u003cinstance_id\u003e:\u003cconsumer_id\u003e`.\n"},"instanceId":{"type":"string","description":"ID of the ALIKAFKA Instance that owns the consumer groups.\n"},"remark":{"type":"string","description":"The remark of the consumer group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the consumer group.\n"}},"type":"object","required":["consumerId","id","instanceId","remark"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:actiontrail/getHistoryDeliveryJobsJob:getHistoryDeliveryJobsJob":{"properties":{"createTime":{"type":"string","description":"The time when the task was created.\n"},"endTime":{"type":"string","description":"The time when the task ended.\n"},"historyDeliveryJobId":{"type":"string","description":"The resource ID in terraform of History Delivery Job.\n"},"homeRegion":{"type":"string","description":"The home region of the trail.\n"},"id":{"type":"string","description":"The ID of the History Delivery Job.\n"},"jobStatuses":{"type":"array","items":{"$ref":"#/types/alicloud:actiontrail/getHistoryDeliveryJobsJobJobStatus:getHistoryDeliveryJobsJobJobStatus"},"description":"Detail status of delivery job.\n"},"startTime":{"type":"string","description":"The time when the task started.\n"},"status":{"type":"integer","description":"The status of the task. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: The task is initializing. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: The task is delivering historical events. \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: The delivery of historical events is complete. \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: The task fails.\n"},"trailName":{"type":"string","description":"The name of the trail.\n"},"updatedTime":{"type":"string","description":"The time when the task was updated.\n"}},"type":"object","required":["createTime","endTime","historyDeliveryJobId","homeRegion","id","jobStatuses","startTime","status","trailName","updatedTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:actiontrail/getHistoryDeliveryJobsJobJobStatus:getHistoryDeliveryJobsJobJobStatus":{"properties":{"region":{"type":"string","description":"The region of the delivery job.\n"},"status":{"type":"integer","description":"The status of the task. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: The task is initializing. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: The task is delivering historical events. \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: The delivery of historical events is complete. \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: The task fails.\n"}},"type":"object","required":["region","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:actiontrail/getInstancesInstance:getInstancesInstance":{"properties":{"allowedLists":{"type":"array","items":{"$ref":"#/types/alicloud:actiontrail/getInstancesInstanceAllowedList:getInstancesInstanceAllowedList"},"description":"The allowed list of the instance.\n"},"config":{"type":"string","description":"The config the instance.\n"},"createTime":{"type":"string","description":"The create time of the instance.\n"},"deployType":{"type":"integer","description":"The deployed type of the instance.\n"},"diskSize":{"type":"integer","description":"The disk size of the instance.\n"},"diskType":{"type":"integer","description":"The disk type of the instance. 0: efficient cloud disk , 1: SSD.\n"},"domainEndpoint":{"type":"string","description":"The domain point of the instance.\n"},"eipMax":{"type":"integer","description":"The peak bandwidth of the instance.\n"},"endPoint":{"type":"string","description":"The endPoint to access the instance.\n"},"expiredTime":{"type":"integer","description":"The expired time  of the instance.\n"},"id":{"type":"string","description":"ID of the instance.\n"},"ioMax":{"type":"integer","description":"The peak value of io of the instance.\n"},"msgRetain":{"type":"integer","description":"The msg retain of the instance.\n"},"name":{"type":"string","description":"Name of the instance.\n"},"paidType":{"type":"string","description":"The paid type of the instance.\n"},"partitionNum":{"type":"integer","description":"(Available in 1.194.0+) The number of partitions.\n"},"saslDomainEndpoint":{"type":"string","description":"The SASL domain point of the instance.\n"},"securityGroup":{"type":"string","description":"The security group of the instance.\n"},"serviceStatus":{"type":"integer","description":"The current status of the instance. -1: unknown status, 0: wait deploy, 1: initializing, 2: preparing, 3 starting, 5: in service, 7: wait upgrade, 8: upgrading, 10: released, 15: freeze, 101: deploy error, 102: upgrade error.\n"},"serviceVersion":{"type":"string","description":"The kafka openSource version of the instance.\n"},"specType":{"type":"string","description":"The spec type of the instance.\n"},"sslDomainEndpoint":{"type":"string","description":"The SSL domain point of the instance.\n"},"sslEndPoint":{"type":"string","description":"The SSL end point of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the instance.\n"},"topicQuota":{"type":"integer","description":"The max num of topic can be create of the instance.\n"},"upgradeServiceDetailInfos":{"type":"array","items":{"$ref":"#/types/alicloud:actiontrail/getInstancesInstanceUpgradeServiceDetailInfo:getInstancesInstanceUpgradeServiceDetailInfo"},"description":"The UpgradeServiceDetailInfo List.\n"},"vpcId":{"type":"string","description":"The ID of attaching VPC to instance.\n"},"vswitchId":{"type":"string","description":"The ID of attaching vswitch to instance.\n"},"zoneId":{"type":"string","description":"The ID of attaching zone to instance.\n"}},"type":"object","required":["allowedLists","config","createTime","deployType","diskSize","diskType","domainEndpoint","eipMax","endPoint","expiredTime","id","ioMax","msgRetain","name","paidType","partitionNum","saslDomainEndpoint","securityGroup","serviceStatus","serviceVersion","specType","sslDomainEndpoint","sslEndPoint","topicQuota","upgradeServiceDetailInfos","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:actiontrail/getInstancesInstanceAllowedList:getInstancesInstanceAllowedList":{"properties":{"deployType":{"type":"string","description":"The deployed type of the instance.\n"},"internetLists":{"type":"array","items":{"$ref":"#/types/alicloud:actiontrail/getInstancesInstanceAllowedListInternetList:getInstancesInstanceAllowedListInternetList"},"description":"The internet list of the instance.\n"},"vpcLists":{"type":"array","items":{"$ref":"#/types/alicloud:actiontrail/getInstancesInstanceAllowedListVpcList:getInstancesInstanceAllowedListVpcList"},"description":"The vpc list of the instance.\n"}},"type":"object","required":["deployType","internetLists","vpcLists"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:actiontrail/getInstancesInstanceAllowedListInternetList:getInstancesInstanceAllowedListInternetList":{"properties":{"allowedIpLists":{"type":"array","items":{"type":"string"},"description":"The allowed ip list of the internet_list.\n"},"portRange":{"type":"string","description":"The port range of the internet_list.\n"}},"type":"object","required":["allowedIpLists","portRange"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:actiontrail/getInstancesInstanceAllowedListVpcList:getInstancesInstanceAllowedListVpcList":{"properties":{"allowedIpLists":{"type":"array","items":{"type":"string"},"description":"The allowed ip list of the internet_list.\n"},"portRange":{"type":"string","description":"The port range of the internet_list.\n"}},"type":"object","required":["allowedIpLists","portRange"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:actiontrail/getInstancesInstanceUpgradeServiceDetailInfo:getInstancesInstanceUpgradeServiceDetailInfo":{"properties":{"current2OpenSourceVersion":{"type":"string","description":"The Current2OpenSourceVersion of the instance.\n"}},"type":"object","required":["current2OpenSourceVersion"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:actiontrail/getSaslAclsAcl:getSaslAclsAcl":{"properties":{"aclOperationType":{"type":"string","description":"The operation type of the sasl acl.\n"},"aclResourceName":{"type":"string","description":"Get results for the specified resource name.\n"},"aclResourcePatternType":{"type":"string","description":"The resource pattern type of the sasl acl.\n"},"aclResourceType":{"type":"string","description":"Get results for the specified resource type.\n"},"host":{"type":"string","description":"The host of the sasl acl.\n"},"username":{"type":"string","description":"Get results for the specified username.\n"}},"type":"object","required":["aclOperationType","aclResourceName","aclResourcePatternType","aclResourceType","host","username"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:actiontrail/getSaslUsersUser:getSaslUsersUser":{"properties":{"id":{"type":"string","description":"(Available since v1.260.0) The resource ID in terraform of Sasl User. It formats as `\u003cinstance_id\u003e:\u003cusername\u003e`.\n"},"password":{"type":"string","description":"The password of the user.\n"},"type":{"type":"string","description":"(Available since v1.260.0) The type of the user.\n"},"username":{"type":"string","description":"The username of the user.\n"}},"type":"object","required":["id","password","type","username"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:actiontrail/getTopicsTopic:getTopicsTopic":{"properties":{"compactTopic":{"type":"boolean","description":"whether the current topic is kafka compact topic or not.\n"},"createTime":{"type":"string","description":"Time of creation.\n"},"id":{"type":"string","description":"The ID of the topic, It is formatted to `\u003cinstance_id\u003e:\u003ctopic\u003e`.\n"},"instanceId":{"type":"string","description":"ID of the instance.\n"},"localTopic":{"type":"boolean","description":"whether the current topic is kafka local topic or not.\n"},"partitionNum":{"type":"integer","description":"Partition number of the topic.\n"},"remark":{"type":"string","description":"Remark of the topic.\n"},"status":{"type":"integer","description":"The current status code of the topic. There are three values to describe the topic status: 0 stands for the topic is in service, 1 stands for freezing and 2 stands for pause.\n"},"statusName":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" statusName \" pulumi-lang-dotnet=\" StatusName \" pulumi-lang-go=\" statusName \" pulumi-lang-python=\" status_name \" pulumi-lang-yaml=\" statusName \" pulumi-lang-java=\" statusName \"\u003e status_name \u003c/span\u003eof the topic.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the topic.\n"},"topic":{"type":"string","description":"A topic to filter results by the topic name.\n"}},"type":"object","required":["compactTopic","createTime","id","instanceId","localTopic","partitionNum","remark","status","statusName","topic"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:actiontrail/getTrailsActiontrail:getTrailsActiontrail":{"properties":{"eventRw":{"type":"string","description":"Indicates whether the event is a read or a write event.\n"},"id":{"type":"string","description":"The id of the ActionTrail Trail. It is the same as trail name.\n"},"isOrganizationTrail":{"type":"boolean"},"ossBucketName":{"type":"string","description":"The name of the specified OSS bucket.\n"},"ossKeyPrefix":{"type":"string","description":"The prefix of the specified OSS bucket name.\n"},"ossWriteRoleArn":{"type":"string"},"slsProjectArn":{"type":"string","description":"The unique ARN of the Log Service project.\n"},"slsWriteRoleArn":{"type":"string","description":"The unique ARN of the Log Service role.\n"},"status":{"type":"string","description":"Filter the results by status of the ActionTrail Trail. Valid values: `Disable`, `Enable`, `Fresh`.\n"},"trailName":{"type":"string","description":"The name of the ActionTrail Trail.\n"},"trailRegion":{"type":"string","description":"The regions to which the trail is applied.\n"}},"type":"object","required":["eventRw","id","isOrganizationTrail","ossBucketName","ossKeyPrefix","ossWriteRoleArn","slsProjectArn","slsWriteRoleArn","status","trailName","trailRegion"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:actiontrail/getTrailsDeprecatedActiontrail:getTrailsDeprecatedActiontrail":{"properties":{"eventRw":{"type":"string","description":"Indicates whether the event is a read or a write event.\n"},"id":{"type":"string"},"isOrganizationTrail":{"type":"boolean"},"ossBucketName":{"type":"string","description":"The name of the specified OSS bucket.\n"},"ossKeyPrefix":{"type":"string","description":"The prefix of the specified OSS bucket name.\n"},"ossWriteRoleArn":{"type":"string"},"slsProjectArn":{"type":"string","description":"The unique ARN of the Log Service project.\n"},"slsWriteRoleArn":{"type":"string","description":"The unique ARN of the Log Service role.\n"},"status":{"type":"string"},"trailName":{"type":"string"},"trailRegion":{"type":"string"}},"type":"object","required":["eventRw","id","isOrganizationTrail","ossBucketName","ossKeyPrefix","ossWriteRoleArn","slsProjectArn","slsWriteRoleArn","status","trailName","trailRegion"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:actiontrail/getTrailsDeprecatedTrail:getTrailsDeprecatedTrail":{"properties":{"eventRw":{"type":"string","description":"Indicates whether the event is a read or a write event.\n"},"id":{"type":"string"},"isOrganizationTrail":{"type":"boolean"},"ossBucketName":{"type":"string","description":"The name of the specified OSS bucket.\n"},"ossKeyPrefix":{"type":"string","description":"The prefix of the specified OSS bucket name.\n"},"ossWriteRoleArn":{"type":"string"},"slsProjectArn":{"type":"string","description":"The unique ARN of the Log Service project.\n"},"slsWriteRoleArn":{"type":"string","description":"The unique ARN of the Log Service role.\n"},"status":{"type":"string"},"trailName":{"type":"string"},"trailRegion":{"type":"string"}},"type":"object","required":["eventRw","id","isOrganizationTrail","ossBucketName","ossKeyPrefix","ossWriteRoleArn","slsProjectArn","slsWriteRoleArn","status","trailName","trailRegion"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:actiontrail/getTrailsTrail:getTrailsTrail":{"properties":{"eventRw":{"type":"string","description":"Indicates whether the event is a read or a write event.\n"},"id":{"type":"string","description":"The id of the ActionTrail Trail. It is the same as trail name.\n"},"isOrganizationTrail":{"type":"boolean"},"ossBucketName":{"type":"string","description":"The name of the specified OSS bucket.\n"},"ossKeyPrefix":{"type":"string","description":"The prefix of the specified OSS bucket name.\n"},"ossWriteRoleArn":{"type":"string"},"slsProjectArn":{"type":"string","description":"The unique ARN of the Log Service project.\n"},"slsWriteRoleArn":{"type":"string","description":"The unique ARN of the Log Service role.\n"},"status":{"type":"string","description":"Filter the results by status of the ActionTrail Trail. Valid values: `Disable`, `Enable`, `Fresh`.\n"},"trailName":{"type":"string","description":"The name of the ActionTrail Trail.\n"},"trailRegion":{"type":"string","description":"The regions to which the trail is applied.\n"}},"type":"object","required":["eventRw","id","isOrganizationTrail","ossBucketName","ossKeyPrefix","ossWriteRoleArn","slsProjectArn","slsWriteRoleArn","status","trailName","trailRegion"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:adb/LakeAccountAccountPrivilege:LakeAccountAccountPrivilege":{"properties":{"privilegeObject":{"$ref":"#/types/alicloud:adb/LakeAccountAccountPrivilegePrivilegeObject:LakeAccountAccountPrivilegePrivilegeObject","description":"Object associated to privileges. See \u003cspan pulumi-lang-nodejs=\"`privilegeObject`\" pulumi-lang-dotnet=\"`PrivilegeObject`\" pulumi-lang-go=\"`privilegeObject`\" pulumi-lang-python=\"`privilege_object`\" pulumi-lang-yaml=\"`privilegeObject`\" pulumi-lang-java=\"`privilegeObject`\"\u003e`privilege_object`\u003c/span\u003e below.\n"},"privilegeType":{"type":"string","description":"The type of privileges.\n"},"privileges":{"type":"array","items":{"type":"string"},"description":"privilege list.\n"}},"type":"object"},"alicloud:adb/LakeAccountAccountPrivilegePrivilegeObject:LakeAccountAccountPrivilegePrivilegeObject":{"properties":{"column":{"type":"string","description":"The name of column.\n"},"database":{"type":"string","description":"The name of database.\n"},"table":{"type":"string","description":"The name of table.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["column","database","table"]}}},"alicloud:adb/getClustersCluster:getClustersCluster":{"properties":{"autoRenewPeriod":{"type":"integer"},"availableKernelVersions":{"type":"array","items":{"$ref":"#/types/alicloud:adb/getClustersClusterAvailableKernelVersion:getClustersClusterAvailableKernelVersion"}},"chargeType":{"type":"string","description":"Billing method. Value options: `PostPaid` for Pay-As-You-Go and `PrePaid` for subscription.\n"},"commodityCode":{"type":"string"},"computeResource":{"type":"string"},"connectionString":{"type":"string"},"createTime":{"type":"string","description":"The CreateTime of the ADB cluster.\n"},"dbClusterCategory":{"type":"string"},"dbClusterId":{"type":"string"},"dbClusterNetworkType":{"type":"string"},"dbClusterType":{"type":"string"},"dbClusterVersion":{"type":"string"},"dbNodeClass":{"type":"string","description":"The DBNodeClass of the ADB cluster.\n"},"dbNodeCount":{"type":"integer","description":"The DBNodeCount of the ADB cluster.\n"},"dbNodeStorage":{"type":"integer","description":"The DBNodeStorage of the ADB cluster.\n"},"description":{"type":"string","description":"The description of the ADB cluster.\n"},"diskType":{"type":"string"},"dtsJobId":{"type":"string"},"elasticIoResource":{"type":"integer"},"engine":{"type":"string"},"engineVersion":{"type":"string"},"executorCount":{"type":"string"},"expireTime":{"type":"string","description":"Expiration time. Pay-As-You-Go clusters never expire.\n"},"expired":{"type":"string","description":"The expired of the ADB cluster.\n"},"id":{"type":"string","description":"The ID of the ADB cluster.\n"},"kernelVersion":{"type":"string"},"lockMode":{"type":"string","description":"The LockMode of the ADB cluster.\n"},"lockReason":{"type":"string"},"maintainTime":{"type":"string"},"mode":{"type":"string"},"networkType":{"type":"string","description":"The DBClusterNetworkType of the ADB cluster.\n"},"paymentType":{"type":"string"},"port":{"type":"integer"},"rdsInstanceId":{"type":"string"},"regionId":{"type":"string","description":"Region ID the cluster belongs to.\n"},"renewalStatus":{"type":"string"},"resourceGroupId":{"type":"string"},"securityIps":{"type":"array","items":{"type":"string"}},"status":{"type":"string","description":"The status of the cluster. Valid values: `Preparing`, `Creating`, `Restoring`, `Running`, `Deleting`, `ClassChanging`, `NetAddressCreating`, `NetAddressDeleting`. For more information, see [Cluster status](https://www.alibabacloud.com/help/doc-detail/143075.htm).\n"},"storageResource":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"vpcCloudInstanceId":{"type":"string"},"vpcId":{"type":"string","description":"ID of the VPC the cluster belongs to.\n"},"vswitchId":{"type":"string"},"zoneId":{"type":"string","description":"The ZoneId of the ADB cluster.\n"}},"type":"object","required":["autoRenewPeriod","availableKernelVersions","chargeType","commodityCode","computeResource","connectionString","createTime","dbClusterCategory","dbClusterId","dbClusterNetworkType","dbClusterType","dbClusterVersion","dbNodeClass","dbNodeCount","dbNodeStorage","description","diskType","dtsJobId","elasticIoResource","engine","engineVersion","executorCount","expireTime","expired","id","kernelVersion","lockMode","lockReason","maintainTime","mode","networkType","paymentType","port","rdsInstanceId","regionId","renewalStatus","resourceGroupId","securityIps","status","storageResource","tags","vpcCloudInstanceId","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:adb/getClustersClusterAvailableKernelVersion:getClustersClusterAvailableKernelVersion":{"properties":{"expireDate":{"type":"string"},"kernelVersion":{"type":"string"},"releaseDate":{"type":"string"}},"type":"object","required":["expireDate","kernelVersion","releaseDate"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:adb/getDBClusterLakeVersionsVersion:getDBClusterLakeVersionsVersion":{"properties":{"commodityCode":{"type":"string","description":"The name of the service.\n"},"computeResource":{"type":"string","description":"The specifications of computing resources in elastic mode. The increase of resources can speed up queries.\n"},"connectionString":{"type":"string","description":"The endpoint of the cluster.\n"},"createTime":{"type":"string","description":"The CreateTime of the ADB cluster.\n"},"dbClusterId":{"type":"string","description":"The ID of the DBCluster.\n"},"dbClusterVersion":{"type":"string","description":"The db cluster version.\n"},"engine":{"type":"string","description":"The engine of the database.\n"},"engineVersion":{"type":"string","description":"The engine version of the database.\n"},"expireTime":{"type":"string","description":"The time when the cluster expires.\n"},"expired":{"type":"string","description":"Indicates whether the cluster has expired.\n"},"id":{"type":"string","description":"The ID of the DBCluster.\n"},"lockMode":{"type":"string","description":"The lock mode of the cluster.\n"},"lockReason":{"type":"string","description":"The reason why the cluster is locked.\n"},"paymentType":{"type":"string","description":"The payment type of the resource.\n"},"port":{"type":"string","description":"The port that is used to access the cluster.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Preparing`, `Creating`, `Restoring`, `Running`, `Deleting`, `ClassChanging`, `NetAddressCreating`, `NetAddressDeleting`.\n"},"storageResource":{"type":"string","description":"The specifications of storage resources in elastic mode. The resources are used for data read and write operations.\n"},"vpcId":{"type":"string","description":"The vpc id.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string","description":"The zone ID  of the resource.\n"}},"type":"object","required":["commodityCode","computeResource","connectionString","createTime","dbClusterId","dbClusterVersion","engine","engineVersion","expireTime","expired","id","lockMode","lockReason","paymentType","port","resourceGroupId","status","storageResource","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:adb/getDBClustersCluster:getDBClustersCluster":{"properties":{"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an cluster, in the unit of the month.\n"},"availableKernelVersions":{"type":"array","items":{"$ref":"#/types/alicloud:adb/getDBClustersClusterAvailableKernelVersion:getDBClustersClusterAvailableKernelVersion"},"description":"The minor versions to which you can update the current minor version of the cluster.\n"},"chargeType":{"type":"string","description":"The payment type of the resource.\n"},"commodityCode":{"type":"string","description":"The name of the service.\n"},"computeResource":{"type":"string","description":"The specifications of computing resources in elastic mode. The increase of resources can speed up queries. AnalyticDB for MySQL automatically scales computing resources.\n"},"connectionString":{"type":"string","description":"The endpoint of the cluster.\n"},"createTime":{"type":"string","description":"The CreateTime of the ADB cluster.\n"},"dbClusterCategory":{"type":"string","description":"The db cluster category.\n"},"dbClusterId":{"type":"string","description":"The db cluster id.\n"},"dbClusterNetworkType":{"type":"string","description":"The db cluster network type.\n"},"dbClusterType":{"type":"string","description":"The db cluster type.\n"},"dbClusterVersion":{"type":"string","description":"The db cluster version.\n"},"dbNodeClass":{"type":"string","description":"The db node class.\n"},"dbNodeCount":{"type":"integer","description":"The db node count.\n"},"dbNodeStorage":{"type":"integer","description":"The db node storage.\n"},"description":{"type":"string","description":"The description of DBCluster.\n"},"diskType":{"type":"string","description":"The type of the disk.\n"},"dtsJobId":{"type":"string","description":"The ID of the data synchronization task in Data Transmission Service (DTS). This parameter is valid only for analytic instances.\n"},"elasticIoResource":{"type":"integer","description":"The elastic io resource.\n"},"engine":{"type":"string","description":"The engine of the database.\n"},"engineVersion":{"type":"string","description":"The engine version of the database.\n"},"executorCount":{"type":"string","description":"The number of nodes. The node resources are used for data computing in elastic mode.\n"},"expireTime":{"type":"string","description":"The time when the cluster expires.\n"},"expired":{"type":"string","description":"Indicates whether the cluster has expired.\n"},"id":{"type":"string","description":"The ID of the DBCluster.\n"},"kernelVersion":{"type":"string","description":"The minor version. Example: 3.1.9.\n"},"lockMode":{"type":"string","description":"The lock mode of the cluster.\n"},"lockReason":{"type":"string","description":"The reason why the cluster is locked.\n"},"maintainTime":{"type":"string","description":"The maintenance window of the cluster.\n"},"mode":{"type":"string","description":"The lock mode of the cluster.\n"},"networkType":{"type":"string","description":"The db cluster network type.\n"},"paymentType":{"type":"string","description":"The payment type of the resource.\n"},"port":{"type":"integer","description":"The port that is used to access the cluster.\n"},"rdsInstanceId":{"type":"string","description":"The ID of the ApsaraDB RDS instance from which data is synchronized to the cluster. This parameter is valid only for analytic instances.\n"},"regionId":{"type":"string","description":"The region ID  of the resource.\n"},"renewalStatus":{"type":"string","description":"The status of renewal.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an cluster.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"storageResource":{"type":"string","description":"The specifications of storage resources in elastic mode. The resources are used for data read and write operations. The increase of resources can improve the read and write performance of your cluster.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the cluster.\n"},"vpcCloudInstanceId":{"type":"string","description":"The vpc cloud instance id.\n"},"vpcId":{"type":"string","description":"The vpc id.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string","description":"The zone ID  of the resource.\n"}},"type":"object","required":["autoRenewPeriod","availableKernelVersions","chargeType","commodityCode","computeResource","connectionString","createTime","dbClusterCategory","dbClusterId","dbClusterNetworkType","dbClusterType","dbClusterVersion","dbNodeClass","dbNodeCount","dbNodeStorage","description","diskType","dtsJobId","elasticIoResource","engine","engineVersion","executorCount","expireTime","expired","id","kernelVersion","lockMode","lockReason","maintainTime","mode","networkType","paymentType","port","rdsInstanceId","regionId","renewalStatus","resourceGroupId","securityIps","status","storageResource","tags","vpcCloudInstanceId","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:adb/getDBClustersClusterAvailableKernelVersion:getDBClustersClusterAvailableKernelVersion":{"properties":{"expireDate":{"type":"string","description":"The maintenance expiration time of the version\n"},"kernelVersion":{"type":"string","description":"The minor version. Example: 3.1.9.\n"},"releaseDate":{"type":"string","description":"The time when the minor version was released.\n"}},"type":"object","required":["expireDate","kernelVersion","releaseDate"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:adb/getResourceGroupsGroup:getResourceGroupsGroup":{"properties":{"createTime":{"type":"string","description":"Creation time.\n"},"dbClusterId":{"type":"string","description":"DBClusterId\n"},"groupName":{"type":"string","description":"The name of the resource pool, which cannot exceed 64 bytes in length.\n"},"groupType":{"type":"string","description":"Query type, value description:\n* **etl**: Batch query mode.\n* **interactive**: interactive Query mode\n* **default_type**: the default query mode.\n"},"id":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\"\u003e`key`\u003c/span\u003e of the resource supplied above.The value is formulated as `\u003cdb_cluster_id\u003e:\u003cgroup_name\u003e`.\n"},"nodeNum":{"type":"integer","description":"The number of nodes. The default number of nodes is 0. The number of nodes must be less than or equal to the number of nodes whose resource name is USER_DEFAULT.\n"},"user":{"type":"string","description":"Binding User.\n"}},"type":"object","required":["createTime","dbClusterId","groupName","groupType","id","nodeNum","user"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:adb/getZonesZone:getZonesZone":{"properties":{"id":{"type":"string","description":"ID of the zone.\n"},"multiZoneIds":{"type":"array","items":{"type":"string"},"description":"A list of zone ids in which the multi zone.\n"}},"type":"object","required":["id","multiZoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/AScriptExtAttribute:AScriptExtAttribute":{"properties":{"attributeKey":{"type":"string","description":"Key to extend attribute\n"},"attributeValue":{"type":"string","description":"The value of the extended attribute\n"}},"type":"object"},"alicloud:alb/AclAclEntry:AclAclEntry":{"properties":{"description":{"type":"string","description":"The description of the ACL entry. The description must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.),and underscores (_). It can also contain Chinese characters.\n"},"entry":{"type":"string","description":"The IP address for the ACL entry.\n"},"status":{"type":"string","description":"The status of the ACL entry. Valid values:\n- `Adding`: The ACL entry is being added.\n- `Available`: The ACL entry is added and available.\n- `Removing`: The ACL entry is being removed.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","entry","status"]}}},"alicloud:alb/ListenerAccessLogTracingConfig:ListenerAccessLogTracingConfig":{"properties":{"tracingEnabled":{"type":"boolean","description":"Xtrace Function. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default Value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n\u003e **NOTE:**  Only Instances outside the Security Group to Access the Log Switch \u003cspan pulumi-lang-nodejs=\"`accesslogenabled`\" pulumi-lang-dotnet=\"`Accesslogenabled`\" pulumi-lang-go=\"`accesslogenabled`\" pulumi-lang-python=\"`accesslogenabled`\" pulumi-lang-yaml=\"`accesslogenabled`\" pulumi-lang-java=\"`accesslogenabled`\"\u003e`accesslogenabled`\u003c/span\u003e Open, in Order to Set This Parameter to the value \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"tracingSample":{"type":"integer","description":"Xtrace Sampling Rate. Value: 1~10000. \u003cspan pulumi-lang-nodejs=\"`tracingenabled`\" pulumi-lang-dotnet=\"`Tracingenabled`\" pulumi-lang-go=\"`tracingenabled`\" pulumi-lang-python=\"`tracingenabled`\" pulumi-lang-yaml=\"`tracingenabled`\" pulumi-lang-java=\"`tracingenabled`\"\u003e`tracingenabled`\u003c/span\u003e valued True When Effective.\n"},"tracingType":{"type":"string","description":"Xtrace Type Value Is `Zipkin`.\n\n\u003e **NOTE:**  \u003cspan pulumi-lang-nodejs=\"`tracingenabled`\" pulumi-lang-dotnet=\"`Tracingenabled`\" pulumi-lang-go=\"`tracingenabled`\" pulumi-lang-python=\"`tracingenabled`\" pulumi-lang-yaml=\"`tracingenabled`\" pulumi-lang-java=\"`tracingenabled`\"\u003e`tracingenabled`\u003c/span\u003e valued True When Effective.\n"}},"type":"object","required":["tracingEnabled"]},"alicloud:alb/ListenerAclConfig:ListenerAclConfig":{"properties":{"aclRelations":{"type":"array","items":{"$ref":"#/types/alicloud:alb/ListenerAclConfigAclRelation:ListenerAclConfigAclRelation"},"description":"The ACLs that are associated with the listener. See \u003cspan pulumi-lang-nodejs=\"`aclRelations`\" pulumi-lang-dotnet=\"`AclRelations`\" pulumi-lang-go=\"`aclRelations`\" pulumi-lang-python=\"`acl_relations`\" pulumi-lang-yaml=\"`aclRelations`\" pulumi-lang-java=\"`aclRelations`\"\u003e`acl_relations`\u003c/span\u003e below for details.\n"},"aclType":{"type":"string","description":"The type of the ACL. Valid values: `White` Or `Black`. `White`: specifies the ACL as a whitelist. Only requests from the IP addresses or CIDR blocks in the ACL are forwarded. Whitelists apply to scenarios where only specific IP addresses are allowed to access an application. Risks may occur if the whitelist is improperly set. After you set a whitelist for an Application Load Balancer (ALB) listener, only requests from IP addresses that are added to the whitelist are distributed by the listener. If the whitelist is enabled without IP addresses specified, the ALB listener does not forward requests. `Black`: All requests from the IP addresses or CIDR blocks in the ACL are denied. The blacklist is used to prevent specified IP addresses from accessing an application. If the blacklist is enabled but the corresponding ACL does not contain IP addresses, the ALB listener forwards all requests.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["aclType"]}}},"alicloud:alb/ListenerAclConfigAclRelation:ListenerAclConfigAclRelation":{"properties":{"aclId":{"type":"string","description":"Snooping Binding of the Access Policy Group ID List.\n"},"status":{"type":"string","description":"The Current IP Address of the Listened State\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["aclId","status"]}}},"alicloud:alb/ListenerCaCertificate:ListenerCaCertificate":{"properties":{"certificateId":{"type":"string","description":"The ID of the certificate. Currently, only server certificates are supported.\n"}},"type":"object"},"alicloud:alb/ListenerCertificates:ListenerCertificates":{"properties":{"certificateId":{"type":"string","description":"The ID of the certificate. Currently, only server certificates are supported.\n"}},"type":"object"},"alicloud:alb/ListenerDefaultAction:ListenerDefaultAction":{"properties":{"forwardGroupConfig":{"$ref":"#/types/alicloud:alb/ListenerDefaultActionForwardGroupConfig:ListenerDefaultActionForwardGroupConfig","description":"Forwarding Action Configurations See \u003cspan pulumi-lang-nodejs=\"`forwardGroupConfig`\" pulumi-lang-dotnet=\"`ForwardGroupConfig`\" pulumi-lang-go=\"`forwardGroupConfig`\" pulumi-lang-python=\"`forward_group_config`\" pulumi-lang-yaml=\"`forwardGroupConfig`\" pulumi-lang-java=\"`forwardGroupConfig`\"\u003e`forward_group_config`\u003c/span\u003e below.\n"},"type":{"type":"string","description":"The action type. Value: ForwardGroup, indicating forwarding to the server group.\n","willReplaceOnChanges":true}},"type":"object","required":["type"]},"alicloud:alb/ListenerDefaultActionForwardGroupConfig:ListenerDefaultActionForwardGroupConfig":{"properties":{"serverGroupTuples":{"type":"array","items":{"$ref":"#/types/alicloud:alb/ListenerDefaultActionForwardGroupConfigServerGroupTuple:ListenerDefaultActionForwardGroupConfigServerGroupTuple"},"description":"The Forwarding Destination Server Group See \u003cspan pulumi-lang-nodejs=\"`serverGroupTuples`\" pulumi-lang-dotnet=\"`ServerGroupTuples`\" pulumi-lang-go=\"`serverGroupTuples`\" pulumi-lang-python=\"`server_group_tuples`\" pulumi-lang-yaml=\"`serverGroupTuples`\" pulumi-lang-java=\"`serverGroupTuples`\"\u003e`server_group_tuples`\u003c/span\u003e below.\n"}},"type":"object","required":["serverGroupTuples"]},"alicloud:alb/ListenerDefaultActionForwardGroupConfigServerGroupTuple:ListenerDefaultActionForwardGroupConfigServerGroupTuple":{"properties":{"serverGroupId":{"type":"string","description":"Forwarded to the Destination Server Group ID\n"}},"type":"object","required":["serverGroupId"]},"alicloud:alb/ListenerQuicConfig:ListenerQuicConfig":{"properties":{"quicListenerId":{"type":"string","description":"There Is a Need to Correlate the QuIC Listener ID. The Https Listener, in Effect at the Time. quicupgradeenabled True When Required.\n"},"quicUpgradeEnabled":{"type":"boolean","description":"Indicates Whether to Enable the QuIC Upgrade\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["quicUpgradeEnabled"]}}},"alicloud:alb/ListenerXForwardedForConfig:ListenerXForwardedForConfig":{"properties":{"xForwardedForClientCertClientVerifyAlias":{"type":"string","description":"The Custom Header Field Names Only When xforwardedforclientcertclientverifyenabled Has a Value of True, this Value Will Not Take Effect until.\n"},"xForwardedForClientCertClientVerifyEnabled":{"type":"boolean","description":"Indicates Whether the X-Forwarded-Clientcert-clientverify Header Field Is Used to Obtain Access to the Server Load Balancer Instance of the Client Certificate to Verify the Results.\n"},"xForwardedForClientCertFingerPrintAlias":{"type":"string","description":"The Custom Header Field Names Only When xforwardedforclientcertfingerprintenabled, Which Evaluates to True When the Entry into Force of.\n"},"xForwardedForClientCertFingerPrintEnabled":{"type":"boolean","description":"Indicates Whether the X-Forwarded-Clientcert-fingerprint Header Field Is Used to Obtain Access to the Server Load Balancer Instance of the Client Certificate Fingerprint Value.\n"},"xForwardedForClientCertIssuerDnAlias":{"type":"string","description":"The Custom Header Field Names Only When xforwardedforclientcertsubjectdnenabled, Which Evaluates to True When the Entry into Force of.\n"},"xForwardedForClientCertIssuerDnEnabled":{"type":"boolean","description":"Indicates Whether the X-Forwarded-Clientcert-issuerdn Header Field Is Used to Obtain Access to the Server Load Balancer Instance of the Client Certificate after the Manifests Are Signed, the Publisher Information.\n"},"xForwardedForClientCertSubjectDnAlias":{"type":"string","description":"The Custom Header Field Name,\n"},"xForwardedForClientCertSubjectDnEnabled":{"type":"boolean","description":"Indicates Whether the X-Forwarded-Clientcert-subjectdn Header Field Is Used to Obtain Access to the Server Load Balancer Instance of the Client Certificate Owner Information.\n"},"xForwardedForClientSourceIpsEnabled":{"type":"boolean","description":"Whether to use the X-Forwarded-Client-Ip header to obtain the source IP address of the server load balancer instance. Value:\n"},"xForwardedForClientSourceIpsTrusted":{"type":"string","description":"Specify the trusted proxy IP. Application-oriented load balancing ALB will traverse the X-Forwarded-For from back to front, and select the first IP that is not in the trusted IP list as the real client IP, which will be used for the source IP speed limit.\n"},"xForwardedForClientSrcPortEnabled":{"type":"boolean","description":"Indicates Whether the X-Forwarded-Client-Port Header Field Is Used to Obtain Access to Server Load Balancer Instances to the Client, and Those of the Ports.\n"},"xForwardedForEnabled":{"type":"boolean","description":"Whether to Enable by X-Forwarded-For Header Field Is Used to Obtain the Client IP Addresses.\n"},"xForwardedForHostEnabled":{"type":"boolean","description":"Whether to enable the X-Forwarded-Host header field to obtain the domain name of the client accessing the Application Load Balancer. Value:\n"},"xForwardedForProcessingMode":{"type":"string","description":"Schema for processing X-Forwarded-For header fields. This value takes effect only when XForwardedForEnabled is true. Value:\n"},"xForwardedForProtoEnabled":{"type":"boolean","description":"Indicates Whether the X-Forwarded-Proto Header Field Is Used to Obtain the Server Load Balancer Instance Snooping Protocols.\n"},"xForwardedForSlbIdEnabled":{"type":"boolean","description":"Indicates Whether the SLB-ID Header Field Is Used to Obtain the Load Balancing Instance Id\n"},"xForwardedForSlbPortEnabled":{"type":"boolean","description":"Indicates Whether the X-Forwarded-Port Header Field Is Used to Obtain the Server Load Balancer Instance Listening Port\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["xForwardedForClientCertClientVerifyEnabled","xForwardedForClientCertFingerPrintEnabled","xForwardedForClientCertIssuerDnEnabled","xForwardedForClientCertSubjectDnEnabled","xForwardedForClientSrcPortEnabled","xForwardedForEnabled","xForwardedForProcessingMode","xForwardedForProtoEnabled","xForwardedForSlbIdEnabled","xForwardedForSlbPortEnabled"]}}},"alicloud:alb/LoadBalancerAccessLogConfig:LoadBalancerAccessLogConfig":{"properties":{"logProject":{"type":"string","description":"The project to which the access log is shipped.\n"},"logStore":{"type":"string","description":"The Logstore to which the access log is shipped.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["logProject","logStore"]}}},"alicloud:alb/LoadBalancerDeletionProtectionConfig:LoadBalancerDeletionProtectionConfig":{"properties":{"enabled":{"type":"boolean","description":"Remove the Protection Status\n"},"enabledTime":{"type":"string","description":"Deletion Protection Turn-on Time Use Greenwich Mean Time, in the Format of Yyyy-MM-ddTHH: mm: SSZ\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabledTime"]}}},"alicloud:alb/LoadBalancerLoadBalancerBillingConfig:LoadBalancerLoadBalancerBillingConfig":{"properties":{"payType":{"type":"string","description":"Pay Type\n","willReplaceOnChanges":true}},"type":"object","required":["payType"]},"alicloud:alb/LoadBalancerModificationProtectionConfig:LoadBalancerModificationProtectionConfig":{"properties":{"reason":{"type":"string","description":"Managed Instance\n"},"status":{"type":"string","description":"Load Balancing Modify the Protection Status\n"}},"type":"object"},"alicloud:alb/LoadBalancerZoneMapping:LoadBalancerZoneMapping":{"properties":{"address":{"type":"string","description":"An IP address of the IPv4 type.\n"},"allocationId":{"type":"string","description":"The ID of the EIP instance.\n"},"eipType":{"type":"string","description":"The type of the EIP instance.\n"},"intranetAddress":{"type":"string","description":"IPv4 private network address.\n"},"ipv6Address":{"type":"string","description":"An IP address of the IPv6 type.\n"},"loadBalancerAddresses":{"type":"array","items":{"$ref":"#/types/alicloud:alb/LoadBalancerZoneMappingLoadBalancerAddress:LoadBalancerZoneMappingLoadBalancerAddress"},"description":"The instance address.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch that corresponds to the zone. Each zone can use only one vSwitch and subnet.\n"},"zoneId":{"type":"string","description":"The ID of the zone to which the SLB instance belongs.\n"}},"type":"object","required":["vswitchId","zoneId"],"language":{"nodejs":{"requiredOutputs":["address","allocationId","eipType","intranetAddress","ipv6Address","loadBalancerAddresses","vswitchId","zoneId"]}}},"alicloud:alb/LoadBalancerZoneMappingLoadBalancerAddress:LoadBalancerZoneMappingLoadBalancerAddress":{"properties":{"address":{"type":"string","description":"An IP address of the IPv4 type.\n"},"allocationId":{"type":"string","description":"The elastic IP identifier.\n"},"eipType":{"type":"string","description":"The type of the public EIP. Value:\n"},"intranetAddress":{"type":"string","description":"IPv4 private network address.\n"},"intranetAddressHcStatus":{"type":"string","description":"The private network IPv4 address detection status of the application-oriented load balancing instance.\n"},"ipv4LocalAddresses":{"type":"array","items":{"type":"string"},"description":"IPv4 Local address list. The list of addresses used by ALB to interact with the backend service.\n"},"ipv6Address":{"type":"string","description":"An IP address of the IPv6 type.\n"},"ipv6AddressHcStatus":{"type":"string","description":"The IPv6 address detection status of the application-based load balancing instance.\n"},"ipv6LocalAddresses":{"type":"array","items":{"type":"string"},"description":"IPv6 Local address list. The list of addresses used by ALB to interact with the backend service.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","allocationId","eipType","intranetAddress","intranetAddressHcStatus","ipv4LocalAddresses","ipv6Address","ipv6AddressHcStatus","ipv6LocalAddresses"]}}},"alicloud:alb/RuleRuleAction:RuleRuleAction":{"properties":{"corsConfig":{"$ref":"#/types/alicloud:alb/RuleRuleActionCorsConfig:RuleRuleActionCorsConfig","description":"Request forwarding based on CORS. See \u003cspan pulumi-lang-nodejs=\"`corsConfig`\" pulumi-lang-dotnet=\"`CorsConfig`\" pulumi-lang-go=\"`corsConfig`\" pulumi-lang-python=\"`cors_config`\" pulumi-lang-yaml=\"`corsConfig`\" pulumi-lang-java=\"`corsConfig`\"\u003e`cors_config`\u003c/span\u003e below.\n"},"fixedResponseConfig":{"$ref":"#/types/alicloud:alb/RuleRuleActionFixedResponseConfig:RuleRuleActionFixedResponseConfig","description":"The configuration of the fixed response. See \u003cspan pulumi-lang-nodejs=\"`fixedResponseConfig`\" pulumi-lang-dotnet=\"`FixedResponseConfig`\" pulumi-lang-go=\"`fixedResponseConfig`\" pulumi-lang-python=\"`fixed_response_config`\" pulumi-lang-yaml=\"`fixedResponseConfig`\" pulumi-lang-java=\"`fixedResponseConfig`\"\u003e`fixed_response_config`\u003c/span\u003e below.\n"},"forwardGroupConfig":{"$ref":"#/types/alicloud:alb/RuleRuleActionForwardGroupConfig:RuleRuleActionForwardGroupConfig","description":"The forward response action within ALB. See \u003cspan pulumi-lang-nodejs=\"`forwardGroupConfig`\" pulumi-lang-dotnet=\"`ForwardGroupConfig`\" pulumi-lang-go=\"`forwardGroupConfig`\" pulumi-lang-python=\"`forward_group_config`\" pulumi-lang-yaml=\"`forwardGroupConfig`\" pulumi-lang-java=\"`forwardGroupConfig`\"\u003e`forward_group_config`\u003c/span\u003e below.\n"},"insertHeaderConfig":{"$ref":"#/types/alicloud:alb/RuleRuleActionInsertHeaderConfig:RuleRuleActionInsertHeaderConfig","description":"The configuration of the inserted header field. See \u003cspan pulumi-lang-nodejs=\"`insertHeaderConfig`\" pulumi-lang-dotnet=\"`InsertHeaderConfig`\" pulumi-lang-go=\"`insertHeaderConfig`\" pulumi-lang-python=\"`insert_header_config`\" pulumi-lang-yaml=\"`insertHeaderConfig`\" pulumi-lang-java=\"`insertHeaderConfig`\"\u003e`insert_header_config`\u003c/span\u003e below.\n"},"order":{"type":"integer","description":"The order of the forwarding rule actions. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50000`\" pulumi-lang-dotnet=\"`50000`\" pulumi-lang-go=\"`50000`\" pulumi-lang-python=\"`50000`\" pulumi-lang-yaml=\"`50000`\" pulumi-lang-java=\"`50000`\"\u003e`50000`\u003c/span\u003e. The actions are performed in ascending order. You cannot leave this parameter empty. Each value must be unique.\n"},"redirectConfig":{"$ref":"#/types/alicloud:alb/RuleRuleActionRedirectConfig:RuleRuleActionRedirectConfig","description":"The configuration of the external redirect action. See \u003cspan pulumi-lang-nodejs=\"`redirectConfig`\" pulumi-lang-dotnet=\"`RedirectConfig`\" pulumi-lang-go=\"`redirectConfig`\" pulumi-lang-python=\"`redirect_config`\" pulumi-lang-yaml=\"`redirectConfig`\" pulumi-lang-java=\"`redirectConfig`\"\u003e`redirect_config`\u003c/span\u003e below.\n"},"removeHeaderConfig":{"$ref":"#/types/alicloud:alb/RuleRuleActionRemoveHeaderConfig:RuleRuleActionRemoveHeaderConfig","description":"The configuration of the inserted header field. See \u003cspan pulumi-lang-nodejs=\"`removeHeaderConfig`\" pulumi-lang-dotnet=\"`RemoveHeaderConfig`\" pulumi-lang-go=\"`removeHeaderConfig`\" pulumi-lang-python=\"`remove_header_config`\" pulumi-lang-yaml=\"`removeHeaderConfig`\" pulumi-lang-java=\"`removeHeaderConfig`\"\u003e`remove_header_config`\u003c/span\u003e below.\n"},"rewriteConfig":{"$ref":"#/types/alicloud:alb/RuleRuleActionRewriteConfig:RuleRuleActionRewriteConfig","description":"The redirect action within ALB. See \u003cspan pulumi-lang-nodejs=\"`rewriteConfig`\" pulumi-lang-dotnet=\"`RewriteConfig`\" pulumi-lang-go=\"`rewriteConfig`\" pulumi-lang-python=\"`rewrite_config`\" pulumi-lang-yaml=\"`rewriteConfig`\" pulumi-lang-java=\"`rewriteConfig`\"\u003e`rewrite_config`\u003c/span\u003e below.\n"},"trafficLimitConfig":{"$ref":"#/types/alicloud:alb/RuleRuleActionTrafficLimitConfig:RuleRuleActionTrafficLimitConfig","description":"The Flow speed limit. See \u003cspan pulumi-lang-nodejs=\"`trafficLimitConfig`\" pulumi-lang-dotnet=\"`TrafficLimitConfig`\" pulumi-lang-go=\"`trafficLimitConfig`\" pulumi-lang-python=\"`traffic_limit_config`\" pulumi-lang-yaml=\"`trafficLimitConfig`\" pulumi-lang-java=\"`trafficLimitConfig`\"\u003e`traffic_limit_config`\u003c/span\u003e below.\n"},"trafficMirrorConfig":{"$ref":"#/types/alicloud:alb/RuleRuleActionTrafficMirrorConfig:RuleRuleActionTrafficMirrorConfig","description":"The Traffic mirroring. See \u003cspan pulumi-lang-nodejs=\"`trafficMirrorConfig`\" pulumi-lang-dotnet=\"`TrafficMirrorConfig`\" pulumi-lang-go=\"`trafficMirrorConfig`\" pulumi-lang-python=\"`traffic_mirror_config`\" pulumi-lang-yaml=\"`trafficMirrorConfig`\" pulumi-lang-java=\"`trafficMirrorConfig`\"\u003e`traffic_mirror_config`\u003c/span\u003e below.\n"},"type":{"type":"string","description":"The action type. Valid values: `ForwardGroup`, `Redirect`, `FixedResponse`, `Rewrite`, `InsertHeader`, `RemoveHeader`, `TrafficLimit`, `TrafficMirror` and `Cors`.\n**Note:** The preceding actions can be classified into two types:  `FinalType`: A forwarding rule can contain only one `FinalType` action, which is executed last. This type of action can contain only one `ForwardGroup`, `Redirect` or `FixedResponse` action. `ExtType`: A forwarding rule can contain one or more `ExtType` actions, which are executed before `FinalType` actions and need to coexist with the `FinalType` actions. This type of action can contain multiple `InsertHeader` actions or one `Rewrite` action.\n**NOTE:** The `TrafficLimit` and `TrafficMirror` option is available since 1.162.0.\n**NOTE:** From version 1.205.0, \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e can be set to `Cors`.\n"}},"type":"object","required":["order","type"],"language":{"nodejs":{"requiredOutputs":["forwardGroupConfig","order","type"]}}},"alicloud:alb/RuleRuleActionCorsConfig:RuleRuleActionCorsConfig":{"properties":{"allowCredentials":{"type":"string","description":"Specifies whether credentials can be passed during CORS operations. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"allowHeaders":{"type":"array","items":{"type":"string"},"description":"The allowed headers for CORS requests.\n"},"allowMethods":{"type":"array","items":{"type":"string"},"description":"The allowed HTTP methods for CORS requests. Valid values: `GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `PATCH`.\n"},"allowOrigins":{"type":"array","items":{"type":"string"},"description":"The allowed origins of CORS requests.\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"The headers that can be exposed.\n"},"maxAge":{"type":"integer","description":"The maximum cache time of preflight requests in the browser. Unit: seconds. Valid values: `-1` to \u003cspan pulumi-lang-nodejs=\"`172800`\" pulumi-lang-dotnet=\"`172800`\" pulumi-lang-go=\"`172800`\" pulumi-lang-python=\"`172800`\" pulumi-lang-yaml=\"`172800`\" pulumi-lang-java=\"`172800`\"\u003e`172800`\u003c/span\u003e.\n"}},"type":"object"},"alicloud:alb/RuleRuleActionFixedResponseConfig:RuleRuleActionFixedResponseConfig":{"properties":{"content":{"type":"string","description":"The fixed response. The response cannot exceed 1 KB in size and can contain only ASCII characters.\n"},"contentType":{"type":"string","description":"The format of the fixed response. Valid values: `text/plain`, `text/css`, `text/html`, `application/javascript`, and `application/json`.\n"},"httpCode":{"type":"string","description":"The redirect method. Valid values: \u003cspan pulumi-lang-nodejs=\"`301`\" pulumi-lang-dotnet=\"`301`\" pulumi-lang-go=\"`301`\" pulumi-lang-python=\"`301`\" pulumi-lang-yaml=\"`301`\" pulumi-lang-java=\"`301`\"\u003e`301`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`302`\" pulumi-lang-dotnet=\"`302`\" pulumi-lang-go=\"`302`\" pulumi-lang-python=\"`302`\" pulumi-lang-yaml=\"`302`\" pulumi-lang-java=\"`302`\"\u003e`302`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`303`\" pulumi-lang-dotnet=\"`303`\" pulumi-lang-go=\"`303`\" pulumi-lang-python=\"`303`\" pulumi-lang-yaml=\"`303`\" pulumi-lang-java=\"`303`\"\u003e`303`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`307`\" pulumi-lang-dotnet=\"`307`\" pulumi-lang-go=\"`307`\" pulumi-lang-python=\"`307`\" pulumi-lang-yaml=\"`307`\" pulumi-lang-java=\"`307`\"\u003e`307`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`308`\" pulumi-lang-dotnet=\"`308`\" pulumi-lang-go=\"`308`\" pulumi-lang-python=\"`308`\" pulumi-lang-yaml=\"`308`\" pulumi-lang-java=\"`308`\"\u003e`308`\u003c/span\u003e.\n"}},"type":"object","required":["content"]},"alicloud:alb/RuleRuleActionForwardGroupConfig:RuleRuleActionForwardGroupConfig":{"properties":{"serverGroupStickySession":{"$ref":"#/types/alicloud:alb/RuleRuleActionForwardGroupConfigServerGroupStickySession:RuleRuleActionForwardGroupConfigServerGroupStickySession","description":"The configuration of session persistence for server groups. See \u003cspan pulumi-lang-nodejs=\"`serverGroupStickySession`\" pulumi-lang-dotnet=\"`ServerGroupStickySession`\" pulumi-lang-go=\"`serverGroupStickySession`\" pulumi-lang-python=\"`server_group_sticky_session`\" pulumi-lang-yaml=\"`serverGroupStickySession`\" pulumi-lang-java=\"`serverGroupStickySession`\"\u003e`server_group_sticky_session`\u003c/span\u003e below.\n"},"serverGroupTuples":{"type":"array","items":{"$ref":"#/types/alicloud:alb/RuleRuleActionForwardGroupConfigServerGroupTuple:RuleRuleActionForwardGroupConfigServerGroupTuple"},"description":"The destination server group to which requests are forwarded. See \u003cspan pulumi-lang-nodejs=\"`serverGroupTuples`\" pulumi-lang-dotnet=\"`ServerGroupTuples`\" pulumi-lang-go=\"`serverGroupTuples`\" pulumi-lang-python=\"`server_group_tuples`\" pulumi-lang-yaml=\"`serverGroupTuples`\" pulumi-lang-java=\"`serverGroupTuples`\"\u003e`server_group_tuples`\u003c/span\u003e below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["serverGroupStickySession","serverGroupTuples"]}}},"alicloud:alb/RuleRuleActionForwardGroupConfigServerGroupStickySession:RuleRuleActionForwardGroupConfigServerGroupStickySession":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable session persistence.\n"},"timeout":{"type":"integer","description":"The timeout period. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled","timeout"]}}},"alicloud:alb/RuleRuleActionForwardGroupConfigServerGroupTuple:RuleRuleActionForwardGroupConfigServerGroupTuple":{"properties":{"serverGroupId":{"type":"string","description":"The ID of the destination server group to which requests are forwarded.\n"},"weight":{"type":"integer","description":"The Weight of server group. Default value: \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n**NOTE:** \u003cspan pulumi-lang-nodejs=\"`weight`\" pulumi-lang-dotnet=\"`Weight`\" pulumi-lang-go=\"`weight`\" pulumi-lang-python=\"`weight`\" pulumi-lang-yaml=\"`weight`\" pulumi-lang-java=\"`weight`\"\u003e`weight`\u003c/span\u003e is required when the number of \u003cspan pulumi-lang-nodejs=\"`serverGroupTuples`\" pulumi-lang-dotnet=\"`ServerGroupTuples`\" pulumi-lang-go=\"`serverGroupTuples`\" pulumi-lang-python=\"`server_group_tuples`\" pulumi-lang-yaml=\"`serverGroupTuples`\" pulumi-lang-java=\"`serverGroupTuples`\"\u003e`server_group_tuples`\u003c/span\u003e is greater than 2. From version 1.264.0, \u003cspan pulumi-lang-nodejs=\"`weight`\" pulumi-lang-dotnet=\"`Weight`\" pulumi-lang-go=\"`weight`\" pulumi-lang-python=\"`weight`\" pulumi-lang-yaml=\"`weight`\" pulumi-lang-java=\"`weight`\"\u003e`weight`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["serverGroupId"]}}},"alicloud:alb/RuleRuleActionInsertHeaderConfig:RuleRuleActionInsertHeaderConfig":{"properties":{"key":{"type":"string"},"value":{"type":"string"},"valueType":{"type":"string","description":"The value type of the inserted header field. Valid values:\n- `UserDefined`: a custom value\n- `ReferenceHeader`: uses a field of the user request header.\n- `SystemDefined`: a system value.\n"}},"type":"object"},"alicloud:alb/RuleRuleActionRedirectConfig:RuleRuleActionRedirectConfig":{"properties":{"host":{"type":"string","description":"The host name of the destination to which requests are redirected within ALB. The host name must be 3 to 128 characters in length, and can contain letters, digits, hyphens (-), periods (.), asterisks (*), and question marks (?). The host name must contain at least one period (.), and cannot start or end with a period (.). The rightmost domain label can contain only letters, asterisks (*) and question marks (?) and cannot contain digits or hyphens (-). Other domain labels cannot start or end with a hyphen (-). You can include asterisks (*) and question marks (?) anywhere in a domain label. Default value: ${host}. You cannot use this value with other characters at the same time.\n"},"httpCode":{"type":"string","description":"The redirect method. Valid values: \u003cspan pulumi-lang-nodejs=\"`301`\" pulumi-lang-dotnet=\"`301`\" pulumi-lang-go=\"`301`\" pulumi-lang-python=\"`301`\" pulumi-lang-yaml=\"`301`\" pulumi-lang-java=\"`301`\"\u003e`301`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`302`\" pulumi-lang-dotnet=\"`302`\" pulumi-lang-go=\"`302`\" pulumi-lang-python=\"`302`\" pulumi-lang-yaml=\"`302`\" pulumi-lang-java=\"`302`\"\u003e`302`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`303`\" pulumi-lang-dotnet=\"`303`\" pulumi-lang-go=\"`303`\" pulumi-lang-python=\"`303`\" pulumi-lang-yaml=\"`303`\" pulumi-lang-java=\"`303`\"\u003e`303`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`307`\" pulumi-lang-dotnet=\"`307`\" pulumi-lang-go=\"`307`\" pulumi-lang-python=\"`307`\" pulumi-lang-yaml=\"`307`\" pulumi-lang-java=\"`307`\"\u003e`307`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`308`\" pulumi-lang-dotnet=\"`308`\" pulumi-lang-go=\"`308`\" pulumi-lang-python=\"`308`\" pulumi-lang-yaml=\"`308`\" pulumi-lang-java=\"`308`\"\u003e`308`\u003c/span\u003e.\n"},"path":{"type":"string","description":"The path to which requests are to be redirected within ALB. The path must be 1 to 128 characters in length, and start with a forward slash (/). The path can contain letters, digits, asterisks (*), question marks (?)and the following special characters: $ - _ . + / \u0026 ~ @ :. It cannot contain the following special characters: \" % # ; ! ( ) [ ] ^ , ”. The path is case-sensitive. Default value: ${path}. This value can be used only once. You can use it with a valid string.\n"},"port":{"type":"string","description":"The port of the destination to which requests are redirected. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`63335`\" pulumi-lang-dotnet=\"`63335`\" pulumi-lang-go=\"`63335`\" pulumi-lang-python=\"`63335`\" pulumi-lang-yaml=\"`63335`\" pulumi-lang-java=\"`63335`\"\u003e`63335`\u003c/span\u003e. Default value: ${port}. You cannot use this value together with other characters at the same time.\n"},"protocol":{"type":"string","description":"The protocol of the requests to be redirected. Valid values: `HTTP` and `HTTPS`. Default value: `${protocol}`. You cannot use this value together with other characters at the same time. Note HTTPS listeners can redirect only HTTPS requests.\n"},"query":{"type":"string","description":"The query string of the request to be redirected within ALB. The query string must be 1 to 128 characters in length, can contain letters and printable characters. It cannot contain the following special characters: # [ ] { } \\ | \u003c \u003e \u0026. Default value: ${query}. This value can be used only once. You can use it with a valid string.\n"}},"type":"object"},"alicloud:alb/RuleRuleActionRemoveHeaderConfig:RuleRuleActionRemoveHeaderConfig":{"properties":{"key":{"type":"string"}},"type":"object"},"alicloud:alb/RuleRuleActionRewriteConfig:RuleRuleActionRewriteConfig":{"properties":{"host":{"type":"string","description":"The host name of the destination to which requests are redirected within ALB. The host name must be 3 to 128 characters in length, and can contain letters, digits, hyphens (-), periods (.), asterisks (*), and question marks (?). The host name must contain at least one period (.), and cannot start or end with a period (.). The rightmost domain label can contain only letters, asterisks (*) and question marks (?) and cannot contain digits or hyphens (-). Other domain labels cannot start or end with a hyphen (-). You can include asterisks (*) and question marks (?) anywhere in a domain label. Default value: ${host}. You cannot use this value with other characters at the same time.\n"},"path":{"type":"string","description":"The path to which requests are to be redirected within ALB. The path must be 1 to 128 characters in length, and start with a forward slash (/). The path can contain letters, digits, asterisks (*), question marks (?)and the following special characters: $ - _ . + / \u0026 ~ @ :. It cannot contain the following special characters: \" % # ; ! ( ) [ ] ^ , ”. The path is case-sensitive. Default value: ${path}. This value can be used only once. You can use it with a valid string.\n"},"query":{"type":"string","description":"The query string of the request to be redirected within ALB. The query string must be 1 to 128 characters in length, can contain letters and printable characters. It cannot contain the following special characters: # [ ] { } \\ | \u003c \u003e \u0026. Default value: ${query}. This value can be used only once. You can use it with a valid string.\n"}},"type":"object"},"alicloud:alb/RuleRuleActionTrafficLimitConfig:RuleRuleActionTrafficLimitConfig":{"properties":{"perIpQps":{"type":"integer","description":"The number of requests per second for a single IP address. Value range: 1~1000000. Note: If the QPS parameter is also configured, the value of the PerIpQps parameter must be smaller than the value of the QPS parameter.\n"},"qps":{"type":"integer","description":"The Number of requests per second. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100000`\" pulumi-lang-dotnet=\"`100000`\" pulumi-lang-go=\"`100000`\" pulumi-lang-python=\"`100000`\" pulumi-lang-yaml=\"`100000`\" pulumi-lang-java=\"`100000`\"\u003e`100000`\u003c/span\u003e.\n"}},"type":"object"},"alicloud:alb/RuleRuleActionTrafficMirrorConfig:RuleRuleActionTrafficMirrorConfig":{"properties":{"mirrorGroupConfig":{"$ref":"#/types/alicloud:alb/RuleRuleActionTrafficMirrorConfigMirrorGroupConfig:RuleRuleActionTrafficMirrorConfigMirrorGroupConfig","description":"The Traffic is mirrored to the server group. See \u003cspan pulumi-lang-nodejs=\"`mirrorGroupConfig`\" pulumi-lang-dotnet=\"`MirrorGroupConfig`\" pulumi-lang-go=\"`mirrorGroupConfig`\" pulumi-lang-python=\"`mirror_group_config`\" pulumi-lang-yaml=\"`mirrorGroupConfig`\" pulumi-lang-java=\"`mirrorGroupConfig`\"\u003e`mirror_group_config`\u003c/span\u003e below.\n"},"targetType":{"type":"string","description":"The Mirror target type.\n"}},"type":"object"},"alicloud:alb/RuleRuleActionTrafficMirrorConfigMirrorGroupConfig:RuleRuleActionTrafficMirrorConfigMirrorGroupConfig":{"properties":{"serverGroupTuples":{"type":"array","items":{"$ref":"#/types/alicloud:alb/RuleRuleActionTrafficMirrorConfigMirrorGroupConfigServerGroupTuple:RuleRuleActionTrafficMirrorConfigMirrorGroupConfigServerGroupTuple"},"description":"The destination server group to which requests are forwarded. See \u003cspan pulumi-lang-nodejs=\"`serverGroupTuples`\" pulumi-lang-dotnet=\"`ServerGroupTuples`\" pulumi-lang-go=\"`serverGroupTuples`\" pulumi-lang-python=\"`server_group_tuples`\" pulumi-lang-yaml=\"`serverGroupTuples`\" pulumi-lang-java=\"`serverGroupTuples`\"\u003e`server_group_tuples`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:alb/RuleRuleActionTrafficMirrorConfigMirrorGroupConfigServerGroupTuple:RuleRuleActionTrafficMirrorConfigMirrorGroupConfigServerGroupTuple":{"properties":{"serverGroupId":{"type":"string","description":"The ID of the destination server group to which requests are forwarded.\n"}},"type":"object"},"alicloud:alb/RuleRuleCondition:RuleRuleCondition":{"properties":{"cookieConfig":{"$ref":"#/types/alicloud:alb/RuleRuleConditionCookieConfig:RuleRuleConditionCookieConfig","description":"The configuration of the cookie. See See \u003cspan pulumi-lang-nodejs=\"`cookieConfig`\" pulumi-lang-dotnet=\"`CookieConfig`\" pulumi-lang-go=\"`cookieConfig`\" pulumi-lang-python=\"`cookie_config`\" pulumi-lang-yaml=\"`cookieConfig`\" pulumi-lang-java=\"`cookieConfig`\"\u003e`cookie_config`\u003c/span\u003e below.\n"},"headerConfig":{"$ref":"#/types/alicloud:alb/RuleRuleConditionHeaderConfig:RuleRuleConditionHeaderConfig","description":"The configuration of the header field. See \u003cspan pulumi-lang-nodejs=\"`headerConfig`\" pulumi-lang-dotnet=\"`HeaderConfig`\" pulumi-lang-go=\"`headerConfig`\" pulumi-lang-python=\"`header_config`\" pulumi-lang-yaml=\"`headerConfig`\" pulumi-lang-java=\"`headerConfig`\"\u003e`header_config`\u003c/span\u003e below.\n"},"hostConfig":{"$ref":"#/types/alicloud:alb/RuleRuleConditionHostConfig:RuleRuleConditionHostConfig","description":"The configuration of the host field. See \u003cspan pulumi-lang-nodejs=\"`hostConfig`\" pulumi-lang-dotnet=\"`HostConfig`\" pulumi-lang-go=\"`hostConfig`\" pulumi-lang-python=\"`host_config`\" pulumi-lang-yaml=\"`hostConfig`\" pulumi-lang-java=\"`hostConfig`\"\u003e`host_config`\u003c/span\u003e below.\n"},"methodConfig":{"$ref":"#/types/alicloud:alb/RuleRuleConditionMethodConfig:RuleRuleConditionMethodConfig","description":"The configuration of the request method. See \u003cspan pulumi-lang-nodejs=\"`methodConfig`\" pulumi-lang-dotnet=\"`MethodConfig`\" pulumi-lang-go=\"`methodConfig`\" pulumi-lang-python=\"`method_config`\" pulumi-lang-yaml=\"`methodConfig`\" pulumi-lang-java=\"`methodConfig`\"\u003e`method_config`\u003c/span\u003e below.\n"},"pathConfig":{"$ref":"#/types/alicloud:alb/RuleRuleConditionPathConfig:RuleRuleConditionPathConfig","description":"The configuration of the path for the request to be forwarded. See \u003cspan pulumi-lang-nodejs=\"`pathConfig`\" pulumi-lang-dotnet=\"`PathConfig`\" pulumi-lang-go=\"`pathConfig`\" pulumi-lang-python=\"`path_config`\" pulumi-lang-yaml=\"`pathConfig`\" pulumi-lang-java=\"`pathConfig`\"\u003e`path_config`\u003c/span\u003e below.\n"},"queryStringConfig":{"$ref":"#/types/alicloud:alb/RuleRuleConditionQueryStringConfig:RuleRuleConditionQueryStringConfig","description":"The configuration of the query string. See \u003cspan pulumi-lang-nodejs=\"`queryStringConfig`\" pulumi-lang-dotnet=\"`QueryStringConfig`\" pulumi-lang-go=\"`queryStringConfig`\" pulumi-lang-python=\"`query_string_config`\" pulumi-lang-yaml=\"`queryStringConfig`\" pulumi-lang-java=\"`queryStringConfig`\"\u003e`query_string_config`\u003c/span\u003e below.\n"},"responseHeaderConfig":{"$ref":"#/types/alicloud:alb/RuleRuleConditionResponseHeaderConfig:RuleRuleConditionResponseHeaderConfig","description":"The configuration of the header field. See \u003cspan pulumi-lang-nodejs=\"`responseHeaderConfig`\" pulumi-lang-dotnet=\"`ResponseHeaderConfig`\" pulumi-lang-go=\"`responseHeaderConfig`\" pulumi-lang-python=\"`response_header_config`\" pulumi-lang-yaml=\"`responseHeaderConfig`\" pulumi-lang-java=\"`responseHeaderConfig`\"\u003e`response_header_config`\u003c/span\u003e below.\n"},"responseStatusCodeConfig":{"$ref":"#/types/alicloud:alb/RuleRuleConditionResponseStatusCodeConfig:RuleRuleConditionResponseStatusCodeConfig","description":"The configuration of the header field. See \u003cspan pulumi-lang-nodejs=\"`responseStatusCodeConfig`\" pulumi-lang-dotnet=\"`ResponseStatusCodeConfig`\" pulumi-lang-go=\"`responseStatusCodeConfig`\" pulumi-lang-python=\"`response_status_code_config`\" pulumi-lang-yaml=\"`responseStatusCodeConfig`\" pulumi-lang-java=\"`responseStatusCodeConfig`\"\u003e`response_status_code_config`\u003c/span\u003e below.\n"},"sourceIpConfig":{"$ref":"#/types/alicloud:alb/RuleRuleConditionSourceIpConfig:RuleRuleConditionSourceIpConfig","description":"The Based on source IP traffic matching. Required and valid when Type is SourceIP. See \u003cspan pulumi-lang-nodejs=\"`sourceIpConfig`\" pulumi-lang-dotnet=\"`SourceIpConfig`\" pulumi-lang-go=\"`sourceIpConfig`\" pulumi-lang-python=\"`source_ip_config`\" pulumi-lang-yaml=\"`sourceIpConfig`\" pulumi-lang-java=\"`sourceIpConfig`\"\u003e`source_ip_config`\u003c/span\u003e below.\n"},"type":{"type":"string","description":"The type of the forwarding rule. Valid values:\n- `Host`: Requests are forwarded based on hosts.\n- `Path`: Requests are forwarded based on the path.\n- `Header`: Requests are forwarded based on the HTTP header field.\n- `QueryString`: Requests are forwarded based on the query string.\n- `Method`: Request are forwarded based on the request method.\n- `Cookie`: Requests are forwarded based on the cookie.\n- `SourceIp`: Requests are forwarded based on the source ip. **NOTE:** The `SourceIp` option is available since 1.162.0.\n- `ResponseHeader`: Response header. **NOTE:** The `SourceIp` option is available since 1.213.1.\n- `ResponseStatusCode`: Response status code. **NOTE:** The `SourceIp` option is available since 1.213.1.\n"}},"type":"object","required":["type"]},"alicloud:alb/RuleRuleConditionCookieConfig:RuleRuleConditionCookieConfig":{"properties":{"values":{"type":"array","items":{"$ref":"#/types/alicloud:alb/RuleRuleConditionCookieConfigValue:RuleRuleConditionCookieConfigValue"},"description":"Add one or more IP addresses or IP address segments. You can add up to 5 forwarding rules in a SourceIp.\n"}},"type":"object"},"alicloud:alb/RuleRuleConditionCookieConfigValue:RuleRuleConditionCookieConfigValue":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"alicloud:alb/RuleRuleConditionHeaderConfig:RuleRuleConditionHeaderConfig":{"properties":{"key":{"type":"string"},"values":{"type":"array","items":{"type":"string"},"description":"Add one or more IP addresses or IP address segments. You can add up to 5 forwarding rules in a SourceIp.\n"}},"type":"object"},"alicloud:alb/RuleRuleConditionHostConfig:RuleRuleConditionHostConfig":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"Add one or more IP addresses or IP address segments. You can add up to 5 forwarding rules in a SourceIp.\n"}},"type":"object"},"alicloud:alb/RuleRuleConditionMethodConfig:RuleRuleConditionMethodConfig":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"Add one or more IP addresses or IP address segments. You can add up to 5 forwarding rules in a SourceIp.\n"}},"type":"object"},"alicloud:alb/RuleRuleConditionPathConfig:RuleRuleConditionPathConfig":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"Add one or more IP addresses or IP address segments. You can add up to 5 forwarding rules in a SourceIp.\n"}},"type":"object"},"alicloud:alb/RuleRuleConditionQueryStringConfig:RuleRuleConditionQueryStringConfig":{"properties":{"values":{"type":"array","items":{"$ref":"#/types/alicloud:alb/RuleRuleConditionQueryStringConfigValue:RuleRuleConditionQueryStringConfigValue"},"description":"Add one or more IP addresses or IP address segments. You can add up to 5 forwarding rules in a SourceIp.\n"}},"type":"object"},"alicloud:alb/RuleRuleConditionQueryStringConfigValue:RuleRuleConditionQueryStringConfigValue":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"alicloud:alb/RuleRuleConditionResponseHeaderConfig:RuleRuleConditionResponseHeaderConfig":{"properties":{"key":{"type":"string"},"values":{"type":"array","items":{"type":"string"},"description":"Add one or more IP addresses or IP address segments. You can add up to 5 forwarding rules in a SourceIp.\n"}},"type":"object"},"alicloud:alb/RuleRuleConditionResponseStatusCodeConfig:RuleRuleConditionResponseStatusCodeConfig":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"Add one or more IP addresses or IP address segments. You can add up to 5 forwarding rules in a SourceIp.\n"}},"type":"object"},"alicloud:alb/RuleRuleConditionSourceIpConfig:RuleRuleConditionSourceIpConfig":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"Add one or more IP addresses or IP address segments. You can add up to 5 forwarding rules in a SourceIp.\n"}},"type":"object"},"alicloud:alb/ServerGroupConnectionDrainConfig:ServerGroupConnectionDrainConfig":{"properties":{"connectionDrainEnabled":{"type":"boolean","description":"Specifies whether to enable connection draining. Valid values:\n"},"connectionDrainTimeout":{"type":"integer","description":"The timeout period of connection draining.\n\nValid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e.\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["connectionDrainEnabled","connectionDrainTimeout"]}}},"alicloud:alb/ServerGroupHealthCheckConfig:ServerGroupHealthCheckConfig":{"properties":{"healthCheckCodes":{"type":"array","items":{"type":"string"},"description":"The status code for a successful health check\n"},"healthCheckConnectPort":{"type":"integer","description":"The backend port that is used for health checks.\n\nValid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n\nIf you set the value to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, the backend port is used for health checks.\n\n\u003e **NOTE:**   This parameter takes effect only if you set `HealthCheckEnabled` to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"healthCheckEnabled":{"type":"boolean","description":"Specifies whether to enable the health check feature. Valid values:\n"},"healthCheckHost":{"type":"string","description":"The domain name that is used for health checks.\n\n*   **Backend Server Internal IP** (default): Use the internal IP address of backend servers as the health check domain name.\n\n*   **Custom Domain Name**: Enter a domain name.\n\n*   The domain name must be 1 to 80 characters in length.\n*   The domain name can contain lowercase letters, digits, hyphens (-), and periods (.).\n*   The domain name must contain at least one period (.) but cannot start or end with a period (.).\n*   The rightmost domain label of the domain name can contain only letters, and cannot contain digits or hyphens (-).\n*   The domain name cannot start or end with a hyphen (-).\n\n\u003e **NOTE:**   This parameter takes effect only if `HealthCheckProtocol` is set to `HTTP`, `HTTPS`, or `gRPC`.\n"},"healthCheckHttpVersion":{"type":"string","description":"The HTTP version that is used for health checks. Valid values:\n\n*   **HTTP1.0**\n\n*   **HTTP1.1**\n\n\u003e **NOTE:**   This parameter takes effect only if you set `HealthCheckEnabled` to true and `HealthCheckProtocol` to `HTTP` or `HTTPS`.\n"},"healthCheckInterval":{"type":"integer","description":"The interval at which health checks are performed. Unit: seconds.\n\nValid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e.\n\n\u003e **NOTE:**   This parameter takes effect only if you set `HealthCheckEnabled` to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"healthCheckMethod":{"type":"string","description":"The HTTP method that is used for health checks. Valid values:\n\n*   `GET`: If the length of a response exceeds 8 KB, the response is truncated. However, the health check result is not affected.\n\n*   `POST`: gRPC health checks use the POST method by default.\n\n*   `HEAD`: HTTP and HTTPS health checks use the HEAD method by default.\n\n\u003e **NOTE:**   This parameter takes effect only if you set `HealthCheckEnabled` to true and `HealthCheckProtocol` to `HTTP`, `HTTPS`, or `gRPC`.\n"},"healthCheckPath":{"type":"string","description":"The URL that is used for health checks.\n\nThe URL must be 1 to 80 characters in length, and can contain letters, digits, and the following special characters: `- / . % ? # \u0026 =`. It can also contain the following extended characters: `_ ; ~ ! ( ) * [ ] @ $ ^ : ' , +`. The URL must start with a forward slash (`/`).\n\n\u003e **NOTE:**   This parameter takes effect only if you set `HealthCheckEnabled` to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and `HealthCheckProtocol` to `HTTP` or `HTTPS`.\n"},"healthCheckProtocol":{"type":"string","description":"The protocol that is used for health checks. Valid values:\n\n- `HTTP`: HTTP health checks simulate browser behaviors by sending HEAD or GET requests to probe the availability of backend servers.\n- `HTTPS`: HTTPS health checks simulate browser behaviors by sending HEAD or GET requests to probe the availability of backend servers. HTTPS provides higher security than HTTP because HTTPS supports data encryption.\n- `TCP`: TCP health checks send TCP SYN packets to a backend server to probe the availability of backend servers.\n- `gRPC`: gRPC health checks send POST or GET requests to a backend server to check whether the backend server is healthy.\n"},"healthCheckTimeout":{"type":"integer","description":"The timeout period of a health check response. If a backend ECS instance does not respond within the specified timeout period, the ECS instance fails the health check. Unit: seconds.\n\nValid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n\n\u003e **NOTE:**   This parameter takes effect only if you set `HealthCheckEnabled` to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"healthyThreshold":{"type":"integer","description":"The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health check status of the backend server changes from \u003cspan pulumi-lang-nodejs=\"`fail`\" pulumi-lang-dotnet=\"`Fail`\" pulumi-lang-go=\"`fail`\" pulumi-lang-python=\"`fail`\" pulumi-lang-yaml=\"`fail`\" pulumi-lang-java=\"`fail`\"\u003e`fail`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`success`\" pulumi-lang-dotnet=\"`Success`\" pulumi-lang-go=\"`success`\" pulumi-lang-python=\"`success`\" pulumi-lang-yaml=\"`success`\" pulumi-lang-java=\"`success`\"\u003e`success`\u003c/span\u003e.\n\nValid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"unhealthyThreshold":{"type":"integer","description":"The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health check status of the backend server changes from \u003cspan pulumi-lang-nodejs=\"`success`\" pulumi-lang-dotnet=\"`Success`\" pulumi-lang-go=\"`success`\" pulumi-lang-python=\"`success`\" pulumi-lang-yaml=\"`success`\" pulumi-lang-java=\"`success`\"\u003e`success`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`fail`\" pulumi-lang-dotnet=\"`Fail`\" pulumi-lang-go=\"`fail`\" pulumi-lang-python=\"`fail`\" pulumi-lang-yaml=\"`fail`\" pulumi-lang-java=\"`fail`\"\u003e`fail`\u003c/span\u003e.\n\nValid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"}},"type":"object","required":["healthCheckEnabled"],"language":{"nodejs":{"requiredOutputs":["healthCheckCodes","healthCheckConnectPort","healthCheckEnabled","healthCheckHost","healthCheckHttpVersion","healthCheckInterval","healthCheckMethod","healthCheckPath","healthCheckProtocol","healthCheckTimeout","healthyThreshold","unhealthyThreshold"]}}},"alicloud:alb/ServerGroupServer:ServerGroupServer":{"properties":{"description":{"type":"string","description":"The description of the backend server. The description must be 2 to 256 characters in length, and cannot start with http:// or https://.\n"},"port":{"type":"integer","description":"The port that is used by the backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. You can specify at most 200 servers in each call.\n\n\u003e **NOTE:**   This parameter is required if you set `ServerType` to `Ecs`, `Eni`, `Eci`, or `Ip`. You do not need to set this parameter if `ServerType` is set to `Fc`.\n"},"remoteIpEnabled":{"type":"boolean","description":"Specifies whether to enable the remote IP feature. You can specify at most 200 servers in each call. Default values:\n"},"serverGroupId":{"type":"string","description":"The ID of the server group.\n"},"serverId":{"type":"string","description":"The ID of the backend server. You can specify at most 200 servers in each call.\n\n*   If the server group is of the `Instance` type, set ServerId to the ID of a resource of the `Ecs`, `Eni`, or `Eci` type.\n\n*   If the server group is of the `Ip` type, set ServerId to IP addresses.\n\n\u003e **NOTE:**   You cannot perform this operation on a server group of the Function Compute type. You can call the [ListServerGroups](https://www.alibabacloud.com/help/en/doc-detail/213627.html) operation to query the type of server groups.\n"},"serverIp":{"type":"string","description":"The IP address of the backend server. You can specify at most 200 servers in each call.\n\n\u003e **NOTE:**   You do not need to set this parameter if you set `ServerType` to `Fc`.\n"},"serverType":{"type":"string","description":"The type of the backend server. You can specify at most 200 servers in each call. Default values:\n\n- `Ecs`: Elastic Compute Service (ECS) instance\n- `Eni`: elastic network interface (ENI)\n- `Eci`: elastic container instance\n- `Ip`: IP address\n- `Fc`: Function Compute\n"},"status":{"type":"string","description":"The status of the resource\n"},"weight":{"type":"integer","description":"The weight of the backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. If the value is set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, no requests are forwarded to the server. You can specify at most 200 servers in each call.\n\n\u003e **NOTE:**   Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. We strongly recommend specifying this parameter.\n\u003e **NOTE:**   You do not need to set this parameter if you set `ServerType` to `Fc`.\n"}},"type":"object","required":["serverId","serverType"],"language":{"nodejs":{"requiredOutputs":["remoteIpEnabled","serverGroupId","serverId","serverIp","serverType","status","weight"]}}},"alicloud:alb/ServerGroupSlowStartConfig:ServerGroupSlowStartConfig":{"properties":{"slowStartDuration":{"type":"integer","description":"The duration of a slow start.\n\nValid values: 30 to 900.\n\nDefault value: 30.\n"},"slowStartEnabled":{"type":"boolean","description":"Indicates whether slow starts are enabled. Valid values:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["slowStartDuration","slowStartEnabled"]}}},"alicloud:alb/ServerGroupStickySessionConfig:ServerGroupStickySessionConfig":{"properties":{"cookie":{"type":"string","description":"The cookie to be configured on the server.\n\nThe cookie must be 1 to 200 characters in length and can contain only ASCII characters and digits. It cannot contain commas (,), semicolons (;), or space characters. It cannot start with a dollar sign ($).\n\n\u003e **NOTE:**  This parameter takes effect when the `StickySessionEnabled` parameter is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and the `StickySessionType` parameter is set to `Server`.\n"},"cookieTimeout":{"type":"integer","description":"The maximum amount of time to wait before the session cookie expires. Unit: seconds.\n\nValid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e.\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.\n\n\u003e **NOTE:**   This parameter takes effect only when `StickySessionEnabled` is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and `StickySessionType` is set to `Insert`.\n"},"stickySessionEnabled":{"type":"boolean","description":"Specifies whether to enable session persistence. Valid values:\n"},"stickySessionType":{"type":"string","description":"The method that is used to handle a cookie. Valid values:\n\n*   `Insert`: inserts a cookie.\n\nALB inserts a cookie (SERVERID) into the first HTTP or HTTPS response packet that is sent to a client. The next request from the client contains this cookie and the listener forwards this request to the recorded backend server.\n\n*   `Server`: rewrites a cookie.\n\nWhen ALB detects a user-defined cookie, it overwrites the original cookie with the user-defined cookie. Subsequent requests to ALB carry this user-defined cookie, and ALB determines the destination servers of the requests based on the cookies.\n\n\u003e **NOTE:**  This parameter takes effect when the `StickySessionEnabled` parameter is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e for the server group.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cookie","cookieTimeout","stickySessionType"]}}},"alicloud:alb/ServerGroupUchConfig:ServerGroupUchConfig":{"properties":{"type":{"type":"string","description":"The parameter type. Only QueryString can be filled.\n"},"value":{"type":"string","description":"Consistency hash parameter value\n"}},"type":"object"},"alicloud:alb/getAclsAcl:getAclsAcl":{"properties":{"aclEntries":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getAclsAclAclEntry:getAclsAclAclEntry"},"description":"ACL Entries.\n"},"aclId":{"type":"string","description":"Access Control Policy ID.\n"},"aclName":{"type":"string","description":"The ACL Name.\n"},"addressIpVersion":{"type":"string","description":"Address Protocol Version.\n"},"id":{"type":"string","description":"The ID of the Acl.\n"},"resourceGroupId":{"type":"string","description":"Resource Group to Which the Number.\n"},"status":{"type":"string","description":"The state of the ACL. Valid values:`Provisioning` , `Available` and `Configuring`. `Provisioning`: The ACL is being created. `Available`: The ACL is available. `Configuring`: The ACL is being configured.\n"}},"type":"object","required":["aclEntries","aclId","aclName","addressIpVersion","id","resourceGroupId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getAclsAclAclEntry:getAclsAclAclEntry":{"properties":{"description":{"type":"string","description":"Access Control Entries Note Description Length Is Limited to 1 to 256 Characters, Letters, digital, the Dash (-), a Forward Slash (/), Half a Period (.) and Underscores (_), Support Chinese Characters.\n"},"entry":{"type":"string","description":"The resource ID in terraform of Acl.\n"},"status":{"type":"string","description":"The status of the ACL entry. Valid values: `Adding` , `Available` and `Removing`. `Adding`: The entry is being added. `Available`: The entry is added and available. `Removing`: The entry is being removed.\n"}},"type":"object","required":["description","entry","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getAscriptsAscript:getAscriptsAscript":{"properties":{"ascriptId":{"type":"string","description":"Script identification.\n"},"ascriptName":{"type":"string","description":"Script name.\n"},"enabled":{"type":"boolean","description":"Whether scripts are enabled.\n"},"extAttributeEnabled":{"type":"boolean","description":"Whether extension parameters are enabled.\n"},"extAttributes":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getAscriptsAscriptExtAttribute:getAscriptsAscriptExtAttribute"},"description":"Extended attribute list.\n"},"id":{"type":"string"},"listenerId":{"type":"string","description":"Listener ID of script attribution\n"},"loadBalancerId":{"type":"string"},"position":{"type":"string","description":"Script execution location.\n"},"scriptContent":{"type":"string","description":"Script content.\n"},"status":{"type":"string","description":"Script status.\n"}},"type":"object","required":["ascriptId","ascriptName","enabled","extAttributeEnabled","extAttributes","id","listenerId","loadBalancerId","position","scriptContent","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getAscriptsAscriptExtAttribute:getAscriptsAscriptExtAttribute":{"properties":{"attributeKey":{"type":"string","description":"The key of the extended attribute.\n"},"attributeValue":{"type":"string","description":"The value of the extended attribute.\n"}},"type":"object","required":["attributeKey","attributeValue"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getHealthCheckTemplatesTemplate:getHealthCheckTemplatesTemplate":{"properties":{"healthCheckCodes":{"type":"array","items":{"type":"string"},"description":"The HTTP status code that indicates a successful health check.\n"},"healthCheckConnectPort":{"type":"integer","description":"The number of the port that is used for health checks.  Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.  Default value:` 0`. This default value indicates that the backend server is used for health checks.\n"},"healthCheckHost":{"type":"string","description":"The domain name that is used for health checks. Default value:  `$SERVER_IP`. The domain name must be 1 to 80 characters in length.\n"},"healthCheckHttpVersion":{"type":"string","description":"The version of the HTTP protocol.  Valid values: `HTTP1.0` and `HTTP1.1`.  Default value: `HTTP1.1`.\n"},"healthCheckInterval":{"type":"integer","description":"The time interval between two consecutive health checks.  Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e. Unit: seconds.  Default value: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"},"healthCheckMethod":{"type":"string","description":"The health check method.  Valid values: `GET` and `HEAD`.  Default value: `HEAD`.\n"},"healthCheckPath":{"type":"string","description":"The URL that is used for health checks.  The URL must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), percent signs (%), question marks (?), number signs (#), and ampersands (\u0026). The URL can also contain the following extended characters: ` _ ; ~ ! ( )* [ ] @ $ ^ : ' , +. The URL must start with a forward slash (/)`.\n"},"healthCheckProtocol":{"type":"string","description":"The protocol that is used for health checks.  Valid values: HTTP and TCP.  Default value: HTTP.\n"},"healthCheckTemplateId":{"type":"string","description":"The ID of the resource.\n"},"healthCheckTemplateName":{"type":"string","description":"The name of the health check template.  The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (_), and hyphens (-). The name must start with a letter.\n"},"healthCheckTimeout":{"type":"integer","description":"The timeout period of a health check response. If the backend Elastic Compute Service (ECS) instance does not send an expected response within the specified period of time, the health check fails.  Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e. Unit: seconds.  Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"healthyThreshold":{"type":"integer","description":"The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy (from fail to success). Valid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.  Default value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e. Unit: seconds.\n"},"id":{"type":"string","description":"The ID of the Health Check Template.\n"},"unhealthyThreshold":{"type":"integer","description":"The number of times that an healthy backend server must consecutively fail health checks before it is declared unhealthy (from success to fail). Valid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.  Default value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e. Unit: seconds.\n"}},"type":"object","required":["healthCheckCodes","healthCheckConnectPort","healthCheckHost","healthCheckHttpVersion","healthCheckInterval","healthCheckMethod","healthCheckPath","healthCheckProtocol","healthCheckTemplateId","healthCheckTemplateName","healthCheckTimeout","healthyThreshold","id","unhealthyThreshold"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getListenersListener:getListenersListener":{"properties":{"accessLogRecordCustomizedHeadersEnabled":{"type":"boolean","description":"Indicates whether the access log has a custom header field. Valid values: true and false. Default value: false.\n\n\u003e **NOTE:** Only Instances outside the Security Group to Access the Log Switch **accesslogenabled** Open, in Order to Set This Parameter to the **True**.\n"},"accessLogTracingConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getListenersListenerAccessLogTracingConfig:getListenersListenerAccessLogTracingConfig"},"description":"Xtrace Configuration Information.\n"},"aclConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getListenersListenerAclConfig:getListenersListenerAclConfig"},"description":"The configurations of the access control lists (ACLs).\n"},"certificates":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getListenersListenerCertificate:getListenersListenerCertificate"},"description":"The Certificate List.\n"},"defaultActions":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getListenersListenerDefaultAction:getListenersListenerDefaultAction"},"description":"The Default Rule Action List.\n"},"gzipEnabled":{"type":"boolean","description":"Whether to Enable Gzip Compression, as a Specific File Type on a Compression. Valid Values: `True` Or `False`. Default Value: `True`.\n"},"http2Enabled":{"type":"boolean","description":"Whether to Enable HTTP/2 Features. Valid Values: `True` Or `False`. Default Value: `True`.\n\n\u003e **NOTE:** The attribute is valid when the attribute `ListenerProtocol` is `HTTPS`.\n"},"id":{"type":"string","description":"The ID of the Listener.\n"},"idleTimeout":{"type":"integer","description":"Specify the Connection Idle Timeout Value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e. Unit: Seconds.\n"},"listenerDescription":{"type":"string","description":"Set the IP Address of the Listened Description. Length Is from 2 to 256 Characters.\n"},"listenerId":{"type":"string","description":"on Behalf of the Resource Level Id of the Resources Property Fields.\n"},"listenerPort":{"type":"integer","description":"The ALB Instance Front-End, and Those of the Ports Used. Value: `1~65535`.\n"},"listenerProtocol":{"type":"string","description":"Snooping Protocols. Valid Values: `HTTP`, `HTTPS` Or `QUIC`.\n"},"loadBalancerId":{"type":"string","description":"The ALB Instance Id.\n"},"maxResults":{"type":"string","description":"This Request Returned by the Maximum Number of Records.\n"},"nextToken":{"type":"string","description":"The Current Call Returns to the Position of the Set to Null Represents the Data Has Been Read to the End of.\n"},"quicConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getListenersListenerQuicConfig:getListenersListenerQuicConfig"},"description":"Configuration Associated with the QuIC Listening.\n"},"requestTimeout":{"type":"integer","description":"The Specified Request Timeout Time. Value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e. Unit: Seconds. Default Value: 60. If the Timeout Time Within the Back-End Server Has Not Answered the ALB Will Give up Waiting, the Client Returns the HTTP 504 Error Code.\n"},"securityPolicyId":{"type":"string","description":"Security Policy.\n\n\u003e **NOTE:** The attribute is valid when the attribute `ListenerProtocol` is `HTTPS`.\n"},"status":{"type":"string","description":"The state of the listener. Valid Values: `Running` Or `Stopped`. `Running`: The listener is running. `Stopped`: The listener is stopped.\n"},"xforwardedForConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getListenersListenerXforwardedForConfig:getListenersListenerXforwardedForConfig"},"description":"xforwardfor Related Attribute Configuration.\n"}},"type":"object","required":["accessLogRecordCustomizedHeadersEnabled","accessLogTracingConfigs","aclConfigs","certificates","defaultActions","gzipEnabled","http2Enabled","id","idleTimeout","listenerDescription","listenerId","listenerPort","listenerProtocol","loadBalancerId","maxResults","nextToken","quicConfigs","requestTimeout","securityPolicyId","status","xforwardedForConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getListenersListenerAccessLogTracingConfig:getListenersListenerAccessLogTracingConfig":{"properties":{"tracingEnabled":{"type":"boolean","description":"Xtrace Function. Value: True Or False. Default Value: False.\n\n\u003e **NOTE:** Only Instances outside the Security Group to Access the Log Switch **accesslogenabled** Open, in Order to Set This Parameter to the **True**.\n"},"tracingSample":{"type":"integer","description":"Xtrace Sampling Rate. Value: **1~10000**.\n\n\u003e **NOTE:** This attribute is valid when **tracingenabled** is **true**.\n"},"tracingType":{"type":"string","description":"Xtrace Type Value Is **Zipkin**.\n\n\u003e **NOTE:** This attribute is valid when **tracingenabled** is **true**.\n"}},"type":"object","required":["tracingEnabled","tracingSample","tracingType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getListenersListenerAclConfig:getListenersListenerAclConfig":{"properties":{"aclRelations":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getListenersListenerAclConfigAclRelation:getListenersListenerAclConfigAclRelation"},"description":"The ACLs that are associated with the listener.\n"},"aclType":{"type":"string","description":"The type of the ACL. Valid values: `White` Or `Black`. `White`: specifies the ACL as a whitelist. Only requests from the IP addresses or CIDR blocks in the ACL are forwarded. Whitelists apply to scenarios where only specific IP addresses are allowed to access an application. Risks may occur if the whitelist is improperly set. After you set a whitelist for an Application Load Balancer (ALB) listener, only requests from IP addresses that are added to the whitelist are distributed by the listener. If the whitelist is enabled without IP addresses specified, the ALB listener does not forward requests. `Black`: All requests from the IP addresses or CIDR blocks in the ACL are denied. The blacklist is used to prevent specified IP addresses from accessing an application. If the blacklist is enabled but the corresponding ACL does not contain IP addresses, the ALB listener forwards all requests.\n"}},"type":"object","required":["aclRelations","aclType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getListenersListenerAclConfigAclRelation:getListenersListenerAclConfigAclRelation":{"properties":{"aclId":{"type":"string","description":"Snooping Binding of the Access Policy Group ID List.\n"},"status":{"type":"string","description":"The association status between the ACL and the listener.  Valid values: `Associating`, `Associated` Or `Dissociating`. `Associating`: The ACL is being associated with the listener. `Associated`: The ACL is associated with the listener. `Dissociating`: The ACL is being disassociated from the listener.\n"}},"type":"object","required":["aclId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getListenersListenerCertificate:getListenersListenerCertificate":{"properties":{"certificateId":{"type":"string","description":"The ID of the Certificate.\n"}},"type":"object","required":["certificateId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getListenersListenerDefaultAction:getListenersListenerDefaultAction":{"properties":{"forwardGroupConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getListenersListenerDefaultActionForwardGroupConfig:getListenersListenerDefaultActionForwardGroupConfig"},"description":"The configuration of the forwarding rule action. This parameter is required if the Type parameter is set to FowardGroup.\n"},"type":{"type":"string","description":"Action Type. The value is set to ForwardGroup. It indicates that requests are forwarded to multiple vServer groups.\n"}},"type":"object","required":["forwardGroupConfigs","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getListenersListenerDefaultActionForwardGroupConfig:getListenersListenerDefaultActionForwardGroupConfig":{"properties":{"serverGroupTuples":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getListenersListenerDefaultActionForwardGroupConfigServerGroupTuple:getListenersListenerDefaultActionForwardGroupConfigServerGroupTuple"},"description":"The destination server group to which requests are forwarded.\n"}},"type":"object","required":["serverGroupTuples"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getListenersListenerDefaultActionForwardGroupConfigServerGroupTuple:getListenersListenerDefaultActionForwardGroupConfigServerGroupTuple":{"properties":{"serverGroupId":{"type":"string","description":"The ID of the destination server group to which requests are forwarded.\n"}},"type":"object","required":["serverGroupId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getListenersListenerQuicConfig:getListenersListenerQuicConfig":{"properties":{"quicListenerId":{"type":"string","description":"The ID of the QUIC listener to be associated. If QuicUpgradeEnabled is set to true, this parameter is required. Only HTTPS listeners support this parameter.\n"},"quicUpgradeEnabled":{"type":"boolean","description":"Indicates whether quic upgrade is enabled. Valid values: true and false. Default value: false.\n"}},"type":"object","required":["quicListenerId","quicUpgradeEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getListenersListenerXforwardedForConfig:getListenersListenerXforwardedForConfig":{"properties":{"xforwardedforclientcertIssuerdnalias":{"type":"string","description":"The Custom Header Field Names Only When \u003cspan pulumi-lang-nodejs=\"`xforwardedforclientcertIssuerdnenabled`\" pulumi-lang-dotnet=\"`XforwardedforclientcertIssuerdnenabled`\" pulumi-lang-go=\"`xforwardedforclientcertIssuerdnenabled`\" pulumi-lang-python=\"`xforwardedforclientcert_issuerdnenabled`\" pulumi-lang-yaml=\"`xforwardedforclientcertIssuerdnenabled`\" pulumi-lang-java=\"`xforwardedforclientcertIssuerdnenabled`\"\u003e`xforwardedforclientcert_issuerdnenabled`\u003c/span\u003e, Which Evaluates to True When the Entry into Force of.\n"},"xforwardedforclientcertIssuerdnenabled":{"type":"boolean","description":"Indicates Whether the `X-Forwarded-Clientcert-issuerdn` Header Field Is Used to Obtain Access to the Server Load Balancer Instance of the Client Certificate after the Manifests Are Signed, the Publisher Information.\n"},"xforwardedforclientcertclientverifyalias":{"type":"string","description":"The Custom Header Field Names Only When \u003cspan pulumi-lang-nodejs=\"`xforwardedforclientcertclientverifyenabled`\" pulumi-lang-dotnet=\"`Xforwardedforclientcertclientverifyenabled`\" pulumi-lang-go=\"`xforwardedforclientcertclientverifyenabled`\" pulumi-lang-python=\"`xforwardedforclientcertclientverifyenabled`\" pulumi-lang-yaml=\"`xforwardedforclientcertclientverifyenabled`\" pulumi-lang-java=\"`xforwardedforclientcertclientverifyenabled`\"\u003e`xforwardedforclientcertclientverifyenabled`\u003c/span\u003e Has a Value of True, this Value Will Not Take Effect until.The name must be 1 to 40 characters in length, and can contain letters, hyphens (-), underscores (_), and digits.\n"},"xforwardedforclientcertclientverifyenabled":{"type":"boolean","description":"Indicates Whether the `X-Forwarded-Clientcert-clientverify` Header Field Is Used to Obtain Access to the Server Load Balancer Instance of the Client Certificate to Verify the Results.\n"},"xforwardedforclientcertfingerprintalias":{"type":"string","description":"The Custom Header Field Names Only When \u003cspan pulumi-lang-nodejs=\"`xforwardedforclientcertfingerprintenabled`\" pulumi-lang-dotnet=\"`Xforwardedforclientcertfingerprintenabled`\" pulumi-lang-go=\"`xforwardedforclientcertfingerprintenabled`\" pulumi-lang-python=\"`xforwardedforclientcertfingerprintenabled`\" pulumi-lang-yaml=\"`xforwardedforclientcertfingerprintenabled`\" pulumi-lang-java=\"`xforwardedforclientcertfingerprintenabled`\"\u003e`xforwardedforclientcertfingerprintenabled`\u003c/span\u003e, Which Evaluates to True When the Entry into Force of.The name must be 1 to 40 characters in length, and can contain letters, hyphens (-), underscores (_), and digits.\n"},"xforwardedforclientcertfingerprintenabled":{"type":"boolean","description":"Indicates Whether the `X-Forwarded-Clientcert-fingerprint` Header Field Is Used to Obtain Access to the Server Load Balancer Instance of the Client Certificate Fingerprint Value.\n"},"xforwardedforclientcertsubjectdnalias":{"type":"string","description":"The name of the custom header. This parameter is valid only if \u003cspan pulumi-lang-nodejs=\"`xforwardedforclientcertsubjectdnenabled`\" pulumi-lang-dotnet=\"`Xforwardedforclientcertsubjectdnenabled`\" pulumi-lang-go=\"`xforwardedforclientcertsubjectdnenabled`\" pulumi-lang-python=\"`xforwardedforclientcertsubjectdnenabled`\" pulumi-lang-yaml=\"`xforwardedforclientcertsubjectdnenabled`\" pulumi-lang-java=\"`xforwardedforclientcertsubjectdnenabled`\"\u003e`xforwardedforclientcertsubjectdnenabled`\u003c/span\u003e is set to true. The name must be 1 to 40 characters in length, and can contain letters, hyphens (-), underscores (_), and digits.\n"},"xforwardedforclientcertsubjectdnenabled":{"type":"boolean","description":"Specifies whether to use the `X-Forwarded-Clientcert-subjectdn` header field to obtain information about the owner of the ALB client certificate. Valid values: true and false. Default value: false.\n"},"xforwardedforclientsrcportenabled":{"type":"boolean","description":"Indicates Whether the X-Forwarded-Client-Port Header Field Is Used to Obtain Access to Server Load Balancer Instances to the Client, and Those of the Ports.\n"},"xforwardedforenabled":{"type":"boolean","description":"Indicates whether the X-Forwarded-For header field is used to obtain the real IP address of tqhe client. Valid values: true and false. Default value: true.\n"},"xforwardedforprotoenabled":{"type":"boolean","description":"Indicates Whether the X-Forwarded-Proto Header Field Is Used to Obtain the Server Load Balancer Instance Snooping Protocols.\n"},"xforwardedforslbidenabled":{"type":"boolean","description":"Indicates whether the SLB-ID header field is used to obtain the ID of the ALB instance. Valid values: true and false. Default value: false.\n"},"xforwardedforslbportenabled":{"type":"boolean","description":"Indicates Whether the X-Forwarded-Port Header Field Is Used to Obtain the Server Load Balancer Instance Listening Port.\n"}},"type":"object","required":["xforwardedforclientcertIssuerdnalias","xforwardedforclientcertIssuerdnenabled","xforwardedforclientcertclientverifyalias","xforwardedforclientcertclientverifyenabled","xforwardedforclientcertfingerprintalias","xforwardedforclientcertfingerprintenabled","xforwardedforclientcertsubjectdnalias","xforwardedforclientcertsubjectdnenabled","xforwardedforclientsrcportenabled","xforwardedforenabled","xforwardedforprotoenabled","xforwardedforslbidenabled","xforwardedforslbportenabled"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getLoadBalancersBalancer:getLoadBalancersBalancer":{"properties":{"accessLogConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getLoadBalancersBalancerAccessLogConfig:getLoadBalancersBalancerAccessLogConfig"},"description":"The Access Logging Configuration Structure.\n"},"addressAllocatedMode":{"type":"string","description":"The method in which IP addresses are assigned.\n"},"addressType":{"type":"string","description":"The type of IP address that the ALB instance uses to provide services. Valid values: `Intranet`, `Internet`.\n"},"bandwidthPackageId":{"type":"string","description":"The ID of the EIP bandwidth plan which is associated with an ALB instance that uses a\npublic IP address.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"deletionProtectionConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getLoadBalancersBalancerDeletionProtectionConfig:getLoadBalancersBalancerDeletionProtectionConfig"},"description":"Remove the Protection Configuration.\n"},"dnsName":{"type":"string","description":"DNS Domain Name.\n"},"id":{"type":"string","description":"The ID of the Load Balancer.\n"},"loadBalancerBillingConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getLoadBalancersBalancerLoadBalancerBillingConfig:getLoadBalancersBalancerLoadBalancerBillingConfig"},"description":"The configuration of the billing method.\n"},"loadBalancerBusinessStatus":{"type":"string","description":"Load Balancing of the Service Status. Valid Values: `Abnormal`and `Normal`.\n"},"loadBalancerBussinessStatus":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`loadBalancerBussinessStatus`\" pulumi-lang-dotnet=\"`LoadBalancerBussinessStatus`\" pulumi-lang-go=\"`loadBalancerBussinessStatus`\" pulumi-lang-python=\"`load_balancer_bussiness_status`\" pulumi-lang-yaml=\"`loadBalancerBussinessStatus`\" pulumi-lang-java=\"`loadBalancerBussinessStatus`\"\u003e`load_balancer_bussiness_status`\u003c/span\u003e has been deprecated from provider version 1.142.0. New field \u003cspan pulumi-lang-nodejs=\"`loadBalancerBusinessStatus`\" pulumi-lang-dotnet=\"`LoadBalancerBusinessStatus`\" pulumi-lang-go=\"`loadBalancerBusinessStatus`\" pulumi-lang-python=\"`load_balancer_business_status`\" pulumi-lang-yaml=\"`loadBalancerBusinessStatus`\" pulumi-lang-java=\"`loadBalancerBusinessStatus`\"\u003e`load_balancer_business_status`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'load_balancer_bussiness_status' has been deprecated from provider version 1.142.0 and it will be removed in the future version. Please use the new parameter 'load_balancer_business_status' instead."},"loadBalancerEdition":{"type":"string","description":"The edition of the ALB instance.\n"},"loadBalancerId":{"type":"string","description":"The first ID of the resource.\n"},"loadBalancerName":{"type":"string","description":"The name of the resource.\n"},"loadBalancerOperationLocks":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getLoadBalancersBalancerLoadBalancerOperationLock:getLoadBalancersBalancerLoadBalancerOperationLock"},"description":"The Load Balancing Operations Lock Configuration.\n"},"modificationProtectionConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getLoadBalancersBalancerModificationProtectionConfig:getLoadBalancersBalancerModificationProtectionConfig"},"description":"Modify the Protection Configuration.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The load balancer status. Valid values: `Active`, `Configuring`, `CreateFailed`, `Inactive` and `Provisioning`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) where the ALB instance is deployed.\n"},"zoneMappings":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getLoadBalancersBalancerZoneMapping:getLoadBalancersBalancerZoneMapping"},"description":"The zones and vSwitches.\n"}},"type":"object","required":["accessLogConfigs","addressAllocatedMode","addressType","bandwidthPackageId","createTime","deletionProtectionConfigs","dnsName","id","loadBalancerBillingConfigs","loadBalancerBusinessStatus","loadBalancerBussinessStatus","loadBalancerEdition","loadBalancerId","loadBalancerName","loadBalancerOperationLocks","modificationProtectionConfigs","resourceGroupId","status","tags","vpcId","zoneMappings"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getLoadBalancersBalancerAccessLogConfig:getLoadBalancersBalancerAccessLogConfig":{"properties":{"logProject":{"type":"string","description":"The log service that access logs are shipped to.\n"},"logStore":{"type":"string","description":"The logstore that access logs are shipped to.\n"}},"type":"object","required":["logProject","logStore"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getLoadBalancersBalancerDeletionProtectionConfig:getLoadBalancersBalancerDeletionProtectionConfig":{"properties":{"enabled":{"type":"boolean","description":"Remove the Protection Status.\n"},"enabledTime":{"type":"string","description":"Deletion Protection Turn-on Time Use Greenwich Mean Time, in the Format of Yyyy-MM-ddTHH: mm:SSZ.\n"}},"type":"object","required":["enabled","enabledTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getLoadBalancersBalancerLoadBalancerBillingConfig:getLoadBalancersBalancerLoadBalancerBillingConfig":{"properties":{"payType":{"type":"string","description":"The billing method of the ALB instance.\n"}},"type":"object","required":["payType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getLoadBalancersBalancerLoadBalancerOperationLock:getLoadBalancersBalancerLoadBalancerOperationLock":{"properties":{"lockReason":{"type":"string","description":"The Locking of the Reasons.\n"},"lockType":{"type":"string","description":"The Locking of the Type.\n"}},"type":"object","required":["lockReason","lockType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getLoadBalancersBalancerModificationProtectionConfig:getLoadBalancersBalancerModificationProtectionConfig":{"properties":{"reason":{"type":"string","description":"The reason for modification protection.\n"},"status":{"type":"string","description":"The load balancer status. Valid values: `Active`, `Configuring`, `CreateFailed`, `Inactive` and `Provisioning`.\n"}},"type":"object","required":["reason","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getLoadBalancersBalancerZoneMapping:getLoadBalancersBalancerZoneMapping":{"properties":{"loadBalancerAddresses":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getLoadBalancersBalancerZoneMappingLoadBalancerAddress:getLoadBalancersBalancerZoneMappingLoadBalancerAddress"},"description":"(Available since v1.250.0) The address of the ALB instance.\n"},"status":{"type":"string","description":"The load balancer status. Valid values: `Active`, `Configuring`, `CreateFailed`, `Inactive` and `Provisioning`.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch that corresponds to the zone.\n"},"zoneId":{"type":"string","description":"The zone ID of the resource.\n"}},"type":"object","required":["loadBalancerAddresses","status","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getLoadBalancersBalancerZoneMappingLoadBalancerAddress:getLoadBalancersBalancerZoneMappingLoadBalancerAddress":{"properties":{"address":{"type":"string","description":"IPv4 address.\n"},"allocationId":{"type":"string","description":"The elastic IP address (EIP).\n"},"eipType":{"type":"string","description":"The type of EIP.\n"},"intranetAddress":{"type":"string","description":"The private IPv4 address.\n"},"intranetAddressHcStatus":{"type":"string","description":"The health status of the private IPv4 address of the ALB instance.\n"},"ipv4LocalAddresses":{"type":"array","items":{"type":"string"},"description":"The IPv4 link-local addresses.\n"},"ipv6Address":{"type":"string","description":"IPv6 address.\n"},"ipv6AddressHcStatus":{"type":"string","description":"The health status of the private IPv6 address of the ALB instance.\n"},"ipv6LocalAddresses":{"type":"array","items":{"type":"string"},"description":"The IPv6 link-local addresses.\n"}},"type":"object","required":["address","allocationId","eipType","intranetAddress","intranetAddressHcStatus","ipv4LocalAddresses","ipv6Address","ipv6AddressHcStatus","ipv6LocalAddresses"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRule:getRulesRule":{"properties":{"id":{"type":"string","description":"The ID of the Rule.\n"},"listenerId":{"type":"string","description":"The ID of the listener to which the forwarding rule belongs.\n"},"loadBalancerId":{"type":"string","description":"The ID of the Application Load Balancer (ALB) instance to which the forwarding rule belongs.\n"},"priority":{"type":"integer","description":"The priority of the rule.\n"},"ruleActions":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleAction:getRulesRuleRuleAction"},"description":"The actions of the forwarding rules.\n"},"ruleConditions":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleCondition:getRulesRuleRuleCondition"},"description":"The conditions of the forwarding rule.\n"},"ruleId":{"type":"string","description":"The ID of the Rule.\n"},"ruleName":{"type":"string","description":"The name of the forwarding rule.\n"},"status":{"type":"string","description":"The status of the forwarding rule. Valid values: `Provisioning`, `Configuring`, `Available`.\n"}},"type":"object","required":["id","listenerId","loadBalancerId","priority","ruleActions","ruleConditions","ruleId","ruleName","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleAction:getRulesRuleRuleAction":{"properties":{"fixedResponseConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleActionFixedResponseConfig:getRulesRuleRuleActionFixedResponseConfig"},"description":"The configuration of the fixed response.\n"},"forwardGroupConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleActionForwardGroupConfig:getRulesRuleRuleActionForwardGroupConfig"},"description":"The configurations of the destination server groups.\n"},"insertHeaderConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleActionInsertHeaderConfig:getRulesRuleRuleActionInsertHeaderConfig"},"description":"The configuration of the inserted header field.\n"},"order":{"type":"integer","description":"The order of the forwarding rule actions.\n"},"redirectConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleActionRedirectConfig:getRulesRuleRuleActionRedirectConfig"},"description":"The configuration of the external redirect action.\n"},"rewriteConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleActionRewriteConfig:getRulesRuleRuleActionRewriteConfig"},"description":"The redirect action within ALB.\n"},"trafficLimitConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleActionTrafficLimitConfig:getRulesRuleRuleActionTrafficLimitConfig"},"description":"The Flow speed limit.\n"},"trafficMirrorConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleActionTrafficMirrorConfig:getRulesRuleRuleActionTrafficMirrorConfig"},"description":"The Traffic mirroring.\n"},"type":{"type":"string","description":"The type of the forwarding rule.\n"}},"type":"object","required":["fixedResponseConfigs","forwardGroupConfigs","insertHeaderConfigs","order","redirectConfigs","rewriteConfigs","trafficLimitConfigs","trafficMirrorConfigs","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleActionFixedResponseConfig:getRulesRuleRuleActionFixedResponseConfig":{"properties":{"content":{"type":"string","description":"The fixed response. The response cannot exceed 1 KB in size and can contain only ASCII characters.\n"},"contentType":{"type":"string","description":"The format of the fixed response.\n"},"httpCode":{"type":"string","description":"The redirect method.\n"}},"type":"object","required":["content","contentType","httpCode"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleActionForwardGroupConfig:getRulesRuleRuleActionForwardGroupConfig":{"properties":{"serverGroupTuples":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleActionForwardGroupConfigServerGroupTuple:getRulesRuleRuleActionForwardGroupConfigServerGroupTuple"},"description":"The destination server group to which requests are forwarded.\n"}},"type":"object","required":["serverGroupTuples"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleActionForwardGroupConfigServerGroupTuple:getRulesRuleRuleActionForwardGroupConfigServerGroupTuple":{"properties":{"serverGroupId":{"type":"string","description":"The ID of the destination server group to which requests are forwarded.\n"},"weight":{"type":"integer","description":"The Weight of server group.\n"}},"type":"object","required":["serverGroupId","weight"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleActionInsertHeaderConfig:getRulesRuleRuleActionInsertHeaderConfig":{"properties":{"key":{"type":"string","description":"The key of the query string.\n"},"value":{"type":"string","description":"The value of the query string.\n"},"valueType":{"type":"string","description":"The value type of the inserted header field.\n"}},"type":"object","required":["key","value","valueType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleActionRedirectConfig:getRulesRuleRuleActionRedirectConfig":{"properties":{"host":{"type":"string","description":"The host name of the destination to which requests are redirected within ALB.\n"},"httpCode":{"type":"string","description":"The redirect method.\n"},"path":{"type":"string","description":"The path to which requests are to be redirected within ALB.\n"},"port":{"type":"string","description":"The port of the destination to which requests are redirected.\n"},"protocol":{"type":"string","description":"The protocol of the requests to be redirected.\n"},"query":{"type":"string","description":"The query string of the request to be redirected within ALB.\n"}},"type":"object","required":["host","httpCode","path","port","protocol","query"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleActionRewriteConfig:getRulesRuleRuleActionRewriteConfig":{"properties":{"host":{"type":"string","description":"The host name of the destination to which requests are redirected within ALB.\n"},"path":{"type":"string","description":"The path to which requests are to be redirected within ALB.\n"},"query":{"type":"string","description":"The query string of the request to be redirected within ALB.\n"}},"type":"object","required":["host","path","query"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleActionTrafficLimitConfig:getRulesRuleRuleActionTrafficLimitConfig":{"properties":{"qps":{"type":"integer","description":"The Number of requests per second.\n"}},"type":"object","required":["qps"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleActionTrafficMirrorConfig:getRulesRuleRuleActionTrafficMirrorConfig":{"properties":{"mirrorGroupConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleActionTrafficMirrorConfigMirrorGroupConfig:getRulesRuleRuleActionTrafficMirrorConfigMirrorGroupConfig"},"description":"The Traffic is mirrored to the server group.\n"},"targetType":{"type":"string","description":"The Mirror target type.\n"}},"type":"object","required":["mirrorGroupConfigs","targetType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleActionTrafficMirrorConfigMirrorGroupConfig:getRulesRuleRuleActionTrafficMirrorConfigMirrorGroupConfig":{"properties":{"serverGroupTuples":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleActionTrafficMirrorConfigMirrorGroupConfigServerGroupTuple:getRulesRuleRuleActionTrafficMirrorConfigMirrorGroupConfigServerGroupTuple"},"description":"The destination server group to which requests are forwarded.\n"}},"type":"object","required":["serverGroupTuples"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleActionTrafficMirrorConfigMirrorGroupConfigServerGroupTuple:getRulesRuleRuleActionTrafficMirrorConfigMirrorGroupConfigServerGroupTuple":{"properties":{"serverGroupId":{"type":"string","description":"The ID of the destination server group to which requests are forwarded.\n"}},"type":"object","required":["serverGroupId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleCondition:getRulesRuleRuleCondition":{"properties":{"cookieConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleConditionCookieConfig:getRulesRuleRuleConditionCookieConfig"},"description":"The configuration of the cookie.\n"},"headerConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleConditionHeaderConfig:getRulesRuleRuleConditionHeaderConfig"},"description":"The configuration of the header field.\n"},"hostConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleConditionHostConfig:getRulesRuleRuleConditionHostConfig"},"description":"The configuration of the host.\n"},"methodConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleConditionMethodConfig:getRulesRuleRuleConditionMethodConfig"},"description":"The configuration of the request method.\n"},"pathConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleConditionPathConfig:getRulesRuleRuleConditionPathConfig"},"description":"The configuration of the path for the request to be forwarded.\n"},"queryStringConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleConditionQueryStringConfig:getRulesRuleRuleConditionQueryStringConfig"},"description":"The configuration of the query string.\n"},"sourceIpConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleConditionSourceIpConfig:getRulesRuleRuleConditionSourceIpConfig"},"description":"The Based on source IP traffic matching.\n"},"type":{"type":"string","description":"The type of the forwarding rule.\n"}},"type":"object","required":["cookieConfigs","headerConfigs","hostConfigs","methodConfigs","pathConfigs","queryStringConfigs","sourceIpConfigs","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleConditionCookieConfig:getRulesRuleRuleConditionCookieConfig":{"properties":{"values":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleConditionCookieConfigValue:getRulesRuleRuleConditionCookieConfigValue"},"description":"Add one or more IP addresses or IP address segments.\n"}},"type":"object","required":["values"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleConditionCookieConfigValue:getRulesRuleRuleConditionCookieConfigValue":{"properties":{"key":{"type":"string","description":"The key of the query string.\n"},"value":{"type":"string","description":"The value of the query string.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleConditionHeaderConfig:getRulesRuleRuleConditionHeaderConfig":{"properties":{"key":{"type":"string","description":"The key of the query string.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Add one or more IP addresses or IP address segments.\n"}},"type":"object","required":["key","values"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleConditionHostConfig:getRulesRuleRuleConditionHostConfig":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"Add one or more IP addresses or IP address segments.\n"}},"type":"object","required":["values"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleConditionMethodConfig:getRulesRuleRuleConditionMethodConfig":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"Add one or more IP addresses or IP address segments.\n"}},"type":"object","required":["values"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleConditionPathConfig:getRulesRuleRuleConditionPathConfig":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"Add one or more IP addresses or IP address segments.\n"}},"type":"object","required":["values"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleConditionQueryStringConfig:getRulesRuleRuleConditionQueryStringConfig":{"properties":{"values":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getRulesRuleRuleConditionQueryStringConfigValue:getRulesRuleRuleConditionQueryStringConfigValue"},"description":"Add one or more IP addresses or IP address segments.\n"}},"type":"object","required":["values"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleConditionQueryStringConfigValue:getRulesRuleRuleConditionQueryStringConfigValue":{"properties":{"key":{"type":"string","description":"The key of the query string.\n"},"value":{"type":"string","description":"The value of the query string.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getRulesRuleRuleConditionSourceIpConfig:getRulesRuleRuleConditionSourceIpConfig":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"Add one or more IP addresses or IP address segments.\n"}},"type":"object","required":["values"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getSecurityPoliciesPolicy:getSecurityPoliciesPolicy":{"properties":{"ciphers":{"type":"array","items":{"type":"string"},"description":"The supported cipher suites, which are determined by the TLS protocol version.\n"},"id":{"type":"string","description":"The ID of the Security Policy.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityPolicyId":{"type":"string","description":"The first ID of the resource.\n"},"securityPolicyName":{"type":"string","description":"The name of the resource. The name must be 2 to 128 characters in length and must start with a letter. It can contain digits, periods (.), underscores (_), and hyphens (-).\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"The TLS protocol versions that are supported. Valid values: TLSv1.0, TLSv1.1, TLSv1.2 and TLSv1.3.\n"}},"type":"object","required":["ciphers","id","resourceGroupId","securityPolicyId","securityPolicyName","status","tlsVersions"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getServerGroupsGroup:getServerGroupsGroup":{"properties":{"healthCheckConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getServerGroupsGroupHealthCheckConfig:getServerGroupsGroupHealthCheckConfig"},"description":"The configuration of health checks. **Note:** \u003cspan pulumi-lang-nodejs=\"`healthCheckConfig`\" pulumi-lang-dotnet=\"`HealthCheckConfig`\" pulumi-lang-go=\"`healthCheckConfig`\" pulumi-lang-python=\"`health_check_config`\" pulumi-lang-yaml=\"`healthCheckConfig`\" pulumi-lang-java=\"`healthCheckConfig`\"\u003e`health_check_config`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"id":{"type":"string","description":"The ID of the Server Group.\n"},"protocol":{"type":"string","description":"The backend protocol.\n"},"scheduler":{"type":"string","description":"The scheduling algorithm.\n"},"serverGroupId":{"type":"string","description":"The ID of the Server Group.\n"},"serverGroupName":{"type":"string","description":"The names of the Server Group.\n"},"servers":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getServerGroupsGroupServer:getServerGroupsGroupServer"},"description":"The backend server. **Note:** \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the Server Group. Valid values: `Available`, `Configuring`, `Provisioning`.\n"},"stickySessionConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:alb/getServerGroupsGroupStickySessionConfig:getServerGroupsGroupStickySessionConfig"},"description":"The configuration of the sticky session. **Note:** \u003cspan pulumi-lang-nodejs=\"`stickySessionConfig`\" pulumi-lang-dotnet=\"`StickySessionConfig`\" pulumi-lang-go=\"`stickySessionConfig`\" pulumi-lang-python=\"`sticky_session_config`\" pulumi-lang-yaml=\"`stickySessionConfig`\" pulumi-lang-java=\"`stickySessionConfig`\"\u003e`sticky_session_config`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC).\n"}},"type":"object","required":["healthCheckConfigs","id","protocol","scheduler","serverGroupId","serverGroupName","servers","status","stickySessionConfigs","tags","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getServerGroupsGroupHealthCheckConfig:getServerGroupsGroupHealthCheckConfig":{"properties":{"healthCheckCodes":{"type":"array","items":{"type":"string"},"description":"The status code for a successful health check. Multiple status codes can be specified as a list.\n"},"healthCheckConnectPort":{"type":"integer","description":"The port of the backend server that is used for health checks.\n"},"healthCheckEnabled":{"type":"boolean","description":"Indicates whether health checks are enabled.\n"},"healthCheckHost":{"type":"string","description":"The domain name that is used for health checks.\n"},"healthCheckHttpVersion":{"type":"string","description":"HTTP protocol version.\n"},"healthCheckInterval":{"type":"integer","description":"The time interval between two consecutive health checks.\n"},"healthCheckMethod":{"type":"string","description":"Health check method.\n"},"healthCheckPath":{"type":"string","description":"The forwarding rule path of health checks.\n"},"healthCheckProtocol":{"type":"string","description":"Health check protocol.\n"},"healthCheckTimeout":{"type":"integer","description":"The timeout period of a health check response. If a backend Elastic Compute Service (ECS) instance does not send an expected response within the specified period of time, the ECS instance is considered unhealthy.\n"},"healthyThreshold":{"type":"integer","description":"The number of health checks that an unhealthy backend server must pass consecutively before it is declared healthy. In this case, the health check state is changed from fail to success.\n"},"unhealthyThreshold":{"type":"integer","description":"The number of consecutive health checks that a healthy backend server must consecutively fail before it is declared unhealthy. In this case, the health check state is changed from success to fail.\n"}},"type":"object","required":["healthCheckCodes","healthCheckConnectPort","healthCheckEnabled","healthCheckHost","healthCheckHttpVersion","healthCheckInterval","healthCheckMethod","healthCheckPath","healthCheckProtocol","healthCheckTimeout","healthyThreshold","unhealthyThreshold"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getServerGroupsGroupServer:getServerGroupsGroupServer":{"properties":{"description":{"type":"string","description":"The description of the server.\n"},"port":{"type":"integer","description":"The port that is used by the server.\n"},"serverId":{"type":"string","description":"The ID of the ECS instance, ENI instance or ECI instance.\n"},"serverIp":{"type":"string","description":"The IP address of the ENI instance when it is in the inclusive ENI mode.\n"},"serverType":{"type":"string","description":"The type of the server. The type of the server.\n"},"status":{"type":"string","description":"The status of the Server Group. Valid values: `Available`, `Configuring`, `Provisioning`.\n"},"weight":{"type":"integer","description":"The weight of the server.\n"}},"type":"object","required":["description","port","serverId","serverIp","serverType","status","weight"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getServerGroupsGroupStickySessionConfig:getServerGroupsGroupStickySessionConfig":{"properties":{"cookie":{"type":"string","description":"the cookie that is configured on the server.\n"},"cookieTimeout":{"type":"integer","description":"The timeout period of a cookie. The timeout period of a cookie.\n"},"stickySessionEnabled":{"type":"boolean","description":"Indicates whether sticky session is enabled.\n"},"stickySessionType":{"type":"string","description":"The method that is used to handle a cookie.\n"}},"type":"object","required":["cookie","cookieTimeout","stickySessionEnabled","stickySessionType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getSystemSecurityPoliciesPolicy:getSystemSecurityPoliciesPolicy":{"properties":{"ciphers":{"type":"array","items":{"type":"string"},"description":"The supported cipher suites, which are determined by the TLS protocol version.\n"},"id":{"type":"string","description":"The ID of the Security Policy.\n"},"securityPolicyId":{"type":"string","description":"The first ID of the resource.\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"The TLS protocol versions are supported. Valid values: TLSv1.0, TLSv1.1, TLSv1.2 and TLSv1.3.\n"}},"type":"object","required":["ciphers","id","securityPolicyId","tlsVersions"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alb/getZonesZone:getZonesZone":{"properties":{"id":{"type":"string","description":"The ID of zone.\n"},"localName":{"type":"string","description":"The local name.\n"},"zoneId":{"type":"string","description":"The zone ID.\n"}},"type":"object","required":["id","localName","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:alikafka/InstanceConfluentConfig:InstanceConfluentConfig":{"properties":{"connectCu":{"type":"integer","description":"The number of CPU cores of Connect.\n"},"connectReplica":{"type":"integer","description":"The number of replicas of Connect.\n"},"controlCenterCu":{"type":"integer","description":"The number of CPU cores of Control Center.\n"},"controlCenterReplica":{"type":"integer","description":"The number of replicas of Control Center.\n","willReplaceOnChanges":true},"controlCenterStorage":{"type":"integer","description":"The disk capacity of Control Center.\n"},"kafkaCu":{"type":"integer","description":"The number of CPU cores of the Kafka broker.\n"},"kafkaReplica":{"type":"integer","description":"The number of replicas of the Kafka broker.\n"},"kafkaRestProxyCu":{"type":"integer","description":"The number of CPU cores of Kafka Rest Proxy.\n"},"kafkaRestProxyReplica":{"type":"integer","description":"The number of replicas of Kafka Rest Proxy.\n"},"kafkaStorage":{"type":"integer","description":"The disk capacity of the Kafka broker.\n"},"ksqlCu":{"type":"integer","description":"The number of CPU cores of ksqlDB.\n"},"ksqlReplica":{"type":"integer","description":"The number of replicas of ksqlDB.\n"},"ksqlStorage":{"type":"integer","description":"The disk capacity of ksqlDB.\n"},"schemaRegistryCu":{"type":"integer","description":"The number of CPU cores of Schema Registry.\n"},"schemaRegistryReplica":{"type":"integer","description":"The number of replicas of Schema Registry.\n"},"zookeeperCu":{"type":"integer","description":"The number of CPU cores of ZooKeeper.\n"},"zookeeperReplica":{"type":"integer","description":"The number of replicas of ZooKeeper.\n","willReplaceOnChanges":true},"zookeeperStorage":{"type":"integer","description":"The disk capacity of ZooKeeper.\n"}},"type":"object"},"alicloud:alikafka/InstanceServerlessConfig:InstanceServerlessConfig":{"properties":{"reservedPublishCapacity":{"type":"integer","description":"The reserved capacity for publishing messages.\n"},"reservedSubscribeCapacity":{"type":"integer","description":"The reserved capacity for subscribing to message.\n"}},"type":"object"},"alicloud:amqp/getBindingsBinding:getBindingsBinding":{"properties":{"argument":{"type":"string","description":"X-match Attributes. Valid Values: All: Default Value, All the Message Header of Key-Value Pairs Stored in the Must Match. Any: at Least One Pair of the Message Header of Key-Value Pairs Stored in the Must Match. This Parameter Applies Only to Headers Exchange Other Types of Exchange Is Invalid. Other Types of Exchange Here Can Either Be an Arbitrary Value.\n"},"bindingKey":{"type":"string","description":"The Binding Key. The Source of the Binding Exchange Non-Topic Type: Can Only Contain Letters, Lowercase Letters, Numbers, and the Dash (-), the Underscore Character (_), English Periods (.) and the at Sign (@). Length from 1 to 255 Characters. The Source of the Binding Exchange Topic Type: Can Contain Letters, Lowercase Letters, Numbers, and the Dash (-), the Underscore Character (_), English Periods (.) and the at Sign (@). If You Include the Hash (.\n"},"bindingType":{"type":"string","description":"The Target Binding Types.\n"},"destinationName":{"type":"string","description":"The Target Queue Or Exchange of the Name.\n"},"id":{"type":"string","description":"The ID of the Binding. The value formats as `\u003cinstance_id\u003e:\u003cvirtual_host_name\u003e:\u003csource_exchange\u003e:\u003cdestination_name\u003e`.\n"},"instanceId":{"type":"string","description":"Instance Id.\n"},"sourceExchange":{"type":"string","description":"The Source Exchange Name.\n"},"virtualHostName":{"type":"string","description":"Virtualhost Name.\n"}},"type":"object","required":["argument","bindingKey","bindingType","destinationName","id","instanceId","sourceExchange","virtualHostName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:amqp/getExchangesExchange:getExchangesExchange":{"properties":{"attributes":{"type":"object","additionalProperties":{"type":"string"},"description":"The attributes.\n"},"autoDeleteState":{"type":"boolean","description":"Indicates whether the Auto Delete attribute is configured.\n"},"createTime":{"type":"string","description":"The creation time.\n"},"exchangeName":{"type":"string","description":"The name of the exchange.\n"},"exchangeType":{"type":"string","description":"The type of the exchange.\n"},"id":{"type":"string","description":"The ID of the Exchange. Its value is same as Queue Name.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"virtualHostName":{"type":"string","description":"The name of virtual host where an exchange resides.\n"}},"type":"object","required":["attributes","autoDeleteState","createTime","exchangeName","exchangeType","id","instanceId","virtualHostName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:amqp/getInstancesInstance:getInstancesInstance":{"properties":{"createTime":{"type":"string","description":"The timestamp that indicates when the order was created.\n"},"expireTime":{"type":"string","description":"The timestamp that indicates when the instance expires.\n"},"id":{"type":"string","description":"The ID of the Instance.\n"},"instanceId":{"type":"string","description":"THe instance Id.\n"},"instanceName":{"type":"string","description":"THe instance name.\n"},"instanceType":{"type":"string","description":"The instance type.\n"},"paymentType":{"type":"string","description":"The billing method of the instance. **Note:** \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"privateEndPoint":{"type":"string","description":"The virtual private cloud (VPC) endpoint of the instance.\n"},"publicEndpoint":{"type":"string","description":"The public endpoint of the instance.\n"},"renewalDuration":{"type":"integer","description":"Auto renewal period of an instance. **Note:** \u003cspan pulumi-lang-nodejs=\"`renewalDuration`\" pulumi-lang-dotnet=\"`RenewalDuration`\" pulumi-lang-go=\"`renewalDuration`\" pulumi-lang-python=\"`renewal_duration`\" pulumi-lang-yaml=\"`renewalDuration`\" pulumi-lang-java=\"`renewalDuration`\"\u003e`renewal_duration`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"renewalDurationUnit":{"type":"string","description":"Automatic renewal period unit. **Note:** \u003cspan pulumi-lang-nodejs=\"`renewalDurationUnit`\" pulumi-lang-dotnet=\"`RenewalDurationUnit`\" pulumi-lang-go=\"`renewalDurationUnit`\" pulumi-lang-python=\"`renewal_duration_unit`\" pulumi-lang-yaml=\"`renewalDurationUnit`\" pulumi-lang-java=\"`renewalDurationUnit`\"\u003e`renewal_duration_unit`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"renewalStatus":{"type":"string","description":"Whether to renew an instance automatically or not. **Note:** \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `DEPLOYING`, `SERVING`, `EXPIRED`, `RELEASED`.\n"},"supportEip":{"type":"boolean","description":"Indicates whether the instance supports elastic IP addresses (EIPs).\n"}},"type":"object","required":["createTime","expireTime","id","instanceId","instanceName","instanceType","paymentType","privateEndPoint","publicEndpoint","renewalDuration","renewalDurationUnit","renewalStatus","status","supportEip"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:amqp/getQueuesQueue:getQueuesQueue":{"properties":{"attributes":{"type":"object","additionalProperties":{"type":"string"},"description":"The attributes for the Queue.\n"},"autoDeleteState":{"type":"boolean","description":"Specifies whether the Auto Delete attribute is configured.\n"},"createTime":{"type":"string","description":"CreateTime.\n"},"exclusiveState":{"type":"boolean","description":"Specifies whether the queue is an exclusive queue.\n"},"id":{"type":"string","description":"The ID of the Queue. Its value is same as Queue Name.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"lastConsumeTime":{"type":"string","description":"The last consume time.\n"},"queueName":{"type":"string","description":"The queue name.\n"},"virtualHostName":{"type":"string","description":"The name of the virtual host.\n"}},"type":"object","required":["attributes","autoDeleteState","createTime","exclusiveState","id","instanceId","lastConsumeTime","queueName","virtualHostName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:amqp/getStaticAccountsAccount:getStaticAccountsAccount":{"properties":{"accessKey":{"type":"string","description":"Access key.\n"},"createTime":{"type":"string","description":"Create time stamp. Unix timestamp, to millisecond level.\n"},"id":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\"\u003e`key`\u003c/span\u003e of the resource supplied above.The value is formulated as `\u003cinstance_id\u003e:\u003caccess_key\u003e`.\n"},"instanceId":{"type":"string","description":"InstanceId\n"},"masterUid":{"type":"string","description":"The ID of the user's primary account.\n"},"password":{"type":"string","description":"Static password.\n","secret":true},"userName":{"type":"string","description":"Static username.\n"}},"type":"object","required":["accessKey","createTime","id","instanceId","masterUid","password","userName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:amqp/getVirtualHostsHost:getVirtualHostsHost":{"properties":{"id":{"type":"string","description":"The ID of the Virtual Host.\n"},"instanceId":{"type":"string","description":"InstanceId.\n"},"virtualHostName":{"type":"string","description":"VirtualHostName.\n"}},"type":"object","required":["id","instanceId","virtualHostName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:apig/GatewayLogConfig:GatewayLogConfig":{"properties":{"sls":{"$ref":"#/types/alicloud:apig/GatewayLogConfigSls:GatewayLogConfigSls","description":"Sls See \u003cspan pulumi-lang-nodejs=\"`sls`\" pulumi-lang-dotnet=\"`Sls`\" pulumi-lang-go=\"`sls`\" pulumi-lang-python=\"`sls`\" pulumi-lang-yaml=\"`sls`\" pulumi-lang-java=\"`sls`\"\u003e`sls`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:apig/GatewayLogConfigSls:GatewayLogConfigSls":{"properties":{"enable":{"type":"boolean","description":"Enable Log Service\n"}},"type":"object"},"alicloud:apig/GatewayNetworkAccessConfig:GatewayNetworkAccessConfig":{"properties":{"type":{"type":"string","description":"Network Access Type\n"}},"type":"object"},"alicloud:apig/GatewayVpc:GatewayVpc":{"properties":{"name":{"type":"string","description":"The zone name.\n"},"vpcId":{"type":"string","description":"The VPC network ID.\n","willReplaceOnChanges":true}},"type":"object","required":["vpcId"],"language":{"nodejs":{"requiredOutputs":["name","vpcId"]}}},"alicloud:apig/GatewayVswitch:GatewayVswitch":{"properties":{"name":{"type":"string","description":"The zone name.\n"},"vswitchId":{"type":"string","description":"The ID of the virtual switch.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["name"]}}},"alicloud:apig/GatewayZone:GatewayZone":{"properties":{"name":{"type":"string","description":"The zone name.\n"},"vswitchId":{"type":"string","description":"The vswitch ID.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["name"]}}},"alicloud:apig/GatewayZoneConfig:GatewayZoneConfig":{"properties":{"selectOption":{"type":"string","description":"Availability Zone Options\n"}},"type":"object","required":["selectOption"]},"alicloud:apigateway/AccessControlListAclEntry:AccessControlListAclEntry":{"properties":{"aclEntryComment":{"type":"string","description":"The description of the ACL.\n"},"aclEntryIp":{"type":"string","description":"The entries that you want to add to the ACL. You can add CIDR blocks. Separate multiple CIDR blocks with commas (,).\n"}},"type":"object"},"alicloud:apigateway/ApiConstantParameter:ApiConstantParameter":{"properties":{"description":{"type":"string","description":"The description of Constant parameter.\n"},"in":{"type":"string","description":"Constant parameter location; values: 'HEAD' and 'QUERY'.\n"},"name":{"type":"string","description":"Constant parameter name.\n"},"value":{"type":"string","description":"Constant parameter value.\n"}},"type":"object","required":["in","name","value"]},"alicloud:apigateway/ApiFcServiceConfig:ApiFcServiceConfig":{"properties":{"arnRole":{"type":"string","description":"RAM role arn attached to the Function Compute service. This governs both who / what can invoke your Function, as well as what resources our Function has access to. See [User Permissions](https://www.alibabacloud.com/help/doc-detail/52885.htm) for more details.\n"},"functionBaseUrl":{"type":"string","description":"The base url of function compute service. Required if \u003cspan pulumi-lang-nodejs=\"`functionType`\" pulumi-lang-dotnet=\"`FunctionType`\" pulumi-lang-go=\"`functionType`\" pulumi-lang-python=\"`function_type`\" pulumi-lang-yaml=\"`functionType`\" pulumi-lang-java=\"`functionType`\"\u003e`function_type`\u003c/span\u003e is `HttpTrigger`.\n"},"functionName":{"type":"string","description":"The function name of function compute service. Required if \u003cspan pulumi-lang-nodejs=\"`functionType`\" pulumi-lang-dotnet=\"`FunctionType`\" pulumi-lang-go=\"`functionType`\" pulumi-lang-python=\"`function_type`\" pulumi-lang-yaml=\"`functionType`\" pulumi-lang-java=\"`functionType`\"\u003e`function_type`\u003c/span\u003e is `FCEvent`.\n"},"functionType":{"type":"string","description":"The type of function compute service. Supports values of `FCEvent`,`HttpTrigger`. Default value: `FCEvent`.\n"},"functionVersion":{"type":"string","description":"The function compute version of function compute service. Supports values of `2.0`, `3.0`. Default value: `2.0`.\n"},"method":{"type":"string","description":"The http method of function compute service. Required if \u003cspan pulumi-lang-nodejs=\"`functionType`\" pulumi-lang-dotnet=\"`FunctionType`\" pulumi-lang-go=\"`functionType`\" pulumi-lang-python=\"`function_type`\" pulumi-lang-yaml=\"`functionType`\" pulumi-lang-java=\"`functionType`\"\u003e`function_type`\u003c/span\u003e is `HttpTrigger`.\n"},"onlyBusinessPath":{"type":"boolean","description":"Whether to filter path in \u003cspan pulumi-lang-nodejs=\"`functionBaseUrl`\" pulumi-lang-dotnet=\"`FunctionBaseUrl`\" pulumi-lang-go=\"`functionBaseUrl`\" pulumi-lang-python=\"`function_base_url`\" pulumi-lang-yaml=\"`functionBaseUrl`\" pulumi-lang-java=\"`functionBaseUrl`\"\u003e`function_base_url`\u003c/span\u003e. Optional if \u003cspan pulumi-lang-nodejs=\"`functionType`\" pulumi-lang-dotnet=\"`FunctionType`\" pulumi-lang-go=\"`functionType`\" pulumi-lang-python=\"`function_type`\" pulumi-lang-yaml=\"`functionType`\" pulumi-lang-java=\"`functionType`\"\u003e`function_type`\u003c/span\u003e is `HttpTrigger`.\n"},"path":{"type":"string","description":"The path of function compute service. Required if \u003cspan pulumi-lang-nodejs=\"`functionType`\" pulumi-lang-dotnet=\"`FunctionType`\" pulumi-lang-go=\"`functionType`\" pulumi-lang-python=\"`function_type`\" pulumi-lang-yaml=\"`functionType`\" pulumi-lang-java=\"`functionType`\"\u003e`function_type`\u003c/span\u003e is `HttpTrigger`.\n"},"qualifier":{"type":"string","description":"The qualifier of function name of compute service.\n"},"region":{"type":"string","description":"The region that the function compute service belongs to.\n"},"serviceName":{"type":"string","description":"The service name of function compute service. Required if \u003cspan pulumi-lang-nodejs=\"`functionType`\" pulumi-lang-dotnet=\"`FunctionType`\" pulumi-lang-go=\"`functionType`\" pulumi-lang-python=\"`function_type`\" pulumi-lang-yaml=\"`functionType`\" pulumi-lang-java=\"`functionType`\"\u003e`function_type`\u003c/span\u003e is `FCEvent` and \u003cspan pulumi-lang-nodejs=\"`functionVersion`\" pulumi-lang-dotnet=\"`FunctionVersion`\" pulumi-lang-go=\"`functionVersion`\" pulumi-lang-python=\"`function_version`\" pulumi-lang-yaml=\"`functionVersion`\" pulumi-lang-java=\"`functionVersion`\"\u003e`function_version`\u003c/span\u003e is `2.0`.\n"},"timeout":{"type":"integer","description":"Backend service time-out time; unit: millisecond.\n"}},"type":"object","required":["arnRole","region","timeout"],"language":{"nodejs":{"requiredOutputs":["arnRole","method","region","timeout"]}}},"alicloud:apigateway/ApiHttpServiceConfig:ApiHttpServiceConfig":{"properties":{"address":{"type":"string","description":"The address of backend service.\n"},"aoneName":{"type":"string","description":"The name of aone.\n"},"contentTypeCategory":{"type":"string","description":"The content type category of backend service which supports values of 'DEFAULT','CUSTOM' and 'CLIENT'.\n"},"contentTypeValue":{"type":"string","description":"The content type value of backend service.\n"},"method":{"type":"string","description":"The http method of backend service.\n"},"path":{"type":"string","description":"The path of backend service.\n"},"timeout":{"type":"integer","description":"Backend service time-out time; unit: millisecond.\n"}},"type":"object","required":["address","method","path","timeout"],"language":{"nodejs":{"requiredOutputs":["address","contentTypeCategory","contentTypeValue","method","path","timeout"]}}},"alicloud:apigateway/ApiHttpVpcServiceConfig:ApiHttpVpcServiceConfig":{"properties":{"aoneName":{"type":"string","description":"The name of aone.\n"},"contentTypeCategory":{"type":"string","description":"The content type category of backend service which supports values of 'DEFAULT','CUSTOM' and 'CLIENT'.\n"},"contentTypeValue":{"type":"string","description":"The content type value of backend service.\n"},"method":{"type":"string","description":"The http method of backend service.\n"},"name":{"type":"string","description":"The name of vpc instance.\n"},"path":{"type":"string","description":"The path of backend service.\n"},"timeout":{"type":"integer","description":"Backend service time-out time. Unit: millisecond.\n"},"vpcScheme":{"type":"string","description":"The vpc scheme of backend service which supports values of `HTTP` and `HTTPS`.\n"}},"type":"object","required":["method","name","path","timeout"],"language":{"nodejs":{"requiredOutputs":["contentTypeCategory","contentTypeValue","method","name","path","timeout"]}}},"alicloud:apigateway/ApiMockServiceConfig:ApiMockServiceConfig":{"properties":{"aoneName":{"type":"string","description":"The name of aone.\n"},"result":{"type":"string","description":"The result of the mock service.\n"}},"type":"object","required":["result"]},"alicloud:apigateway/ApiRequestConfig:ApiRequestConfig":{"properties":{"bodyFormat":{"type":"string","description":"The body format of the api, which support the values of 'STREAM' and 'FORM'.\n"},"method":{"type":"string","description":"The method of the api, including 'GET','POST','PUT' etc.\n"},"mode":{"type":"string","description":"The mode of the parameters between request parameters and service parameters, which support the values of 'MAPPING' and 'PASSTHROUGH'.\n"},"path":{"type":"string","description":"The request path of the api.\n"},"protocol":{"type":"string","description":"The protocol of api which supports values of 'HTTP','HTTPS' or 'HTTP,HTTPS'.\n"}},"type":"object","required":["method","mode","path","protocol"]},"alicloud:apigateway/ApiRequestParameter:ApiRequestParameter":{"properties":{"defaultValue":{"type":"string","description":"The default value of the parameter.\n"},"description":{"type":"string","description":"The description of parameter.\n"},"in":{"type":"string","description":"Request's parameter location; values: BODY, HEAD, QUERY, and PATH.\n"},"inService":{"type":"string","description":"Backend service's parameter location; values: BODY, HEAD, QUERY, and PATH.\n"},"name":{"type":"string","description":"Request's parameter name.\n"},"nameService":{"type":"string","description":"Backend service's parameter name.\n"},"required":{"type":"string","description":"Parameter required or not; values: REQUIRED and OPTIONAL.\n"},"type":{"type":"string","description":"Parameter type which supports values of 'STRING','INT','BOOLEAN','LONG',\"FLOAT\" and \"DOUBLE\".\n"}},"type":"object","required":["in","inService","name","nameService","required","type"]},"alicloud:apigateway/ApiSystemParameter:ApiSystemParameter":{"properties":{"in":{"type":"string","description":"System parameter location; values: 'HEAD' and 'QUERY'.\n"},"name":{"type":"string","description":"System parameter name which supports values including in [system parameter list](https://www.alibabacloud.com/help/doc-detail/43677.html).\n"},"nameService":{"type":"string","description":"Backend service's parameter name.\n"}},"type":"object","required":["in","name","nameService"]},"alicloud:apigateway/GroupUserLogConfig:GroupUserLogConfig":{"properties":{"jwtClaims":{"type":"string","description":"The jwt claims to be record, support multi jwt claims split by `,`. Set `*` to record all.\n"},"queryString":{"type":"string","description":"The query params to be record, support multi query params split by `,`. Set `*` to record all.\n"},"requestBody":{"type":"boolean","description":"Whether to record the request body.\n"},"requestHeaders":{"type":"string","description":"The request headers to be record, support multi request headers split by `,`. Set `*` to record all.\n"},"responseBody":{"type":"boolean","description":"Whether to record the response body.\n"},"responseHeaders":{"type":"string","description":"The response headers to be record, support multi response headers split by `,`. Set `*` to record all.\n"}},"type":"object"},"alicloud:apigateway/InstanceToConnectVpcIpBlock:InstanceToConnectVpcIpBlock":{"properties":{"cidrBlock":{"type":"string","description":"The CIDR block of the VSwitch.\n"},"customized":{"type":"boolean","description":"Specifies whether the IP block is customized.\n"},"vswitchId":{"type":"string","description":"The VSwitch ID.\n"},"zoneId":{"type":"string","description":"The zone ID.\n"}},"type":"object","required":["cidrBlock"]},"alicloud:apigateway/InstanceZoneVswitchSecurityGroup:InstanceZoneVswitchSecurityGroup":{"properties":{"cidrBlock":{"type":"string","description":"The CIDR block of the VSwitch.\n"},"securityGroup":{"type":"string","description":"The ID of the security group.\n"},"vswitchId":{"type":"string","description":"The VSwitch ID.\n"},"zoneId":{"type":"string","description":"The zone ID.\n"}},"type":"object","required":["cidrBlock","securityGroup","vswitchId","zoneId"]},"alicloud:apigateway/getApisApi:getApisApi":{"properties":{"apiId":{"type":"string","description":"The ID of the API.\n"},"description":{"type":"string","description":"The description of the API.\n"},"groupId":{"type":"string","description":"The ID of the API group.\n"},"groupName":{"type":"string","description":"The name of the API group.\n"},"id":{"type":"string","description":"The resource ID in terraform of API. It formats as `\u003cgroup_id\u003e:\u003capi_id\u003e`.\n"},"name":{"type":"string","description":"The name of the API.\n"},"regionId":{"type":"string","description":"The region ID of the API.\n"}},"type":"object","required":["apiId","description","groupId","groupName","id","name","regionId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:apigateway/getAppsApp:getAppsApp":{"properties":{"appCode":{"type":"string","description":"App code.\n"},"createdTime":{"type":"string","description":"Creation time (Greenwich mean time).\n"},"description":{"type":"string","description":"App description.\n"},"id":{"type":"integer","description":"App ID, which is generated by the system and globally unique.\n"},"modifiedTime":{"type":"string","description":"Last modification time (Greenwich mean time).\n"},"name":{"type":"string","description":"App name.\n"}},"type":"object","required":["appCode","createdTime","description","id","modifiedTime","name"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:apigateway/getBackendsBackend:getBackendsBackend":{"properties":{"backendId":{"type":"string","description":"The id of the Backend.\n"},"backendName":{"type":"string","description":"The name of the Backend.\n"},"backendType":{"type":"string","description":"The type of the Backend.\n"},"createTime":{"type":"string","description":"The created time of the Backend.\n"},"description":{"type":"string","description":"The description of the Backend.\n"},"id":{"type":"string","description":"The resource ID in terraform of Backend.\n"},"modifiedTime":{"type":"string","description":"The modified time of the Backend.\n"}},"type":"object","required":["backendId","backendName","backendType","createTime","description","id","modifiedTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:apigateway/getGroupsGroup:getGroupsGroup":{"properties":{"billingStatus":{"type":"string","description":"Billing status.\n- NORMAL: The API group is normal.\n- LOCKED: Locked due to outstanding payment.\n"},"createdTime":{"type":"string","description":"Creation time (Greenwich mean time).\n"},"description":{"type":"string","description":"API group description.\n"},"id":{"type":"string","description":"API group ID, which is generated by the system and globally unique.\n"},"illegalStatus":{"type":"string","description":"Locking in invalid state.\n- NORMAL: The API group is normal.\n- LOCKED: Locked due to illegality.\n"},"modifiedTime":{"type":"string","description":"Last modification time (Greenwich mean time).\n"},"name":{"type":"string","description":"API group name.\n"},"regionId":{"type":"string","description":"The ID of the region where the API group is located.\n"},"subDomain":{"type":"string","description":"Second-level domain name automatically assigned to the API group.\n"},"trafficLimit":{"type":"integer","description":"Upper QPS limit of the API group; default value: 500, which can be increased by submitting an application.\n"}},"type":"object","required":["billingStatus","createdTime","description","id","illegalStatus","modifiedTime","name","regionId","subDomain","trafficLimit"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:apigateway/getLogConfigsConfig:getLogConfigsConfig":{"properties":{"id":{"type":"string","description":"The ID of the Log Config.\n"},"logType":{"type":"string","description":"The type the of log.\n"},"regionId":{"type":"string","description":"The region ID of the Log Config.\n"},"slsLogStore":{"type":"string","description":"The name of the Log Store.\n"},"slsProject":{"type":"string","description":"The name of the Project.\n"}},"type":"object","required":["id","logType","regionId","slsLogStore","slsProject"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:apigateway/getModelsModel:getModelsModel":{"properties":{"createTime":{"type":"string","description":"The creation time of the model.\n"},"description":{"type":"string","description":"The description of the model.\n"},"groupId":{"type":"string","description":"The ID of the api group.\n"},"id":{"type":"string","description":"The ID of the Api Gateway Model.\n"},"modelId":{"type":"string","description":"The id of the model.\n"},"modelName":{"type":"string","description":"The name of the Model.\n"},"modelRef":{"type":"string","description":"The reference of the model.\n"},"modifiedTime":{"type":"string","description":"The modified time of the model.\n"},"schema":{"type":"string","description":"The schema of the model.\n"}},"type":"object","required":["createTime","description","groupId","id","modelId","modelName","modelRef","modifiedTime","schema"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:apigateway/getPluginsPlugin:getPluginsPlugin":{"properties":{"createTime":{"type":"string","description":"The CreateTime of the resource.\n"},"description":{"type":"string","description":"The description of the plug-in, which cannot exceed 200 characters.\n"},"id":{"type":"string","description":"The ID of the Plugin.\n"},"modifiedTime":{"type":"string","description":"The ModifiedTime of the resource.\n"},"pluginData":{"type":"string","description":"The definition statement of the plug-in. Plug-in definition statements in the JSON and YAML formats are supported.\n"},"pluginId":{"type":"string","description":"The first ID of the resource.\n"},"pluginName":{"type":"string","description":"The name of the plug-in that you want to create.\n"},"pluginType":{"type":"string","description":"The type of the plug-in.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object","required":["createTime","description","id","modifiedTime","pluginData","pluginId","pluginName","pluginType","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/DispatchRuleGroupRule:DispatchRuleGroupRule":{"properties":{"groupId":{"type":"integer","description":"The ID of the group rule.\n"},"groupInterval":{"type":"integer","description":"The duration for which the system waits after the first alert is sent. After the duration, all alerts are sent in a single notification to the handler.\n"},"groupWaitTime":{"type":"integer","description":"The duration for which the system waits after the first alert is sent. After the duration, all alerts are sent in a single notification to the handler.\n"},"groupingFields":{"type":"array","items":{"type":"string"},"description":"The fields that are used to group events. Events with the same field content are assigned to a group. Alerts with the same specified grouping field are sent to the handler in separate notifications.\n"},"repeatInterval":{"type":"integer","description":"The silence period of repeated alerts. All alerts are repeatedly sent at specified intervals until the alerts are cleared. The minimum value is 61. Default to 600.\n"}},"type":"object","required":["groupInterval","groupWaitTime","groupingFields"],"language":{"nodejs":{"requiredOutputs":["groupId","groupInterval","groupWaitTime","groupingFields","repeatInterval"]}}},"alicloud:arms/DispatchRuleLabelMatchExpressionGrid:DispatchRuleLabelMatchExpressionGrid":{"properties":{"labelMatchExpressionGroups":{"type":"array","items":{"$ref":"#/types/alicloud:arms/DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroup:DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroup"},"description":"Sets the dispatch rule. See \u003cspan pulumi-lang-nodejs=\"`labelMatchExpressionGroups`\" pulumi-lang-dotnet=\"`LabelMatchExpressionGroups`\" pulumi-lang-go=\"`labelMatchExpressionGroups`\" pulumi-lang-python=\"`label_match_expression_groups`\" pulumi-lang-yaml=\"`labelMatchExpressionGroups`\" pulumi-lang-java=\"`labelMatchExpressionGroups`\"\u003e`label_match_expression_groups`\u003c/span\u003e below.\n"}},"type":"object","required":["labelMatchExpressionGroups"]},"alicloud:arms/DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroup:DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroup":{"properties":{"labelMatchExpressions":{"type":"array","items":{"$ref":"#/types/alicloud:arms/DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupLabelMatchExpression:DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupLabelMatchExpression"},"description":"Sets the dispatch rule. See \u003cspan pulumi-lang-nodejs=\"`labelMatchExpressions`\" pulumi-lang-dotnet=\"`LabelMatchExpressions`\" pulumi-lang-go=\"`labelMatchExpressions`\" pulumi-lang-python=\"`label_match_expressions`\" pulumi-lang-yaml=\"`labelMatchExpressions`\" pulumi-lang-java=\"`labelMatchExpressions`\"\u003e`label_match_expressions`\u003c/span\u003e below.\n"}},"type":"object","required":["labelMatchExpressions"]},"alicloud:arms/DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupLabelMatchExpression:DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupLabelMatchExpression":{"properties":{"key":{"type":"string","description":"The key of the tag of the dispatch rule. Valid values:\n* _aliyun_arms_userid: user ID\n* _aliyun_arms_involvedObject_kind: type of the associated object\n* _aliyun_arms_involvedObject_id: ID of the associated object\n* _aliyun_arms_involvedObject_name: name of the associated object\n* _aliyun_arms_alert_name: alert name\n* _aliyun_arms_alert_rule_id: alert rule ID\n* _aliyun_arms_alert_type: alert type\n* _aliyun_arms_alert_level: alert severity\n"},"operator":{"type":"string","description":"The operator used in the dispatch rule. Valid values: \n* eq: equals to.\n* re: matches a regular expression.\n"},"value":{"type":"string","description":"The value of the tag.\n"}},"type":"object","required":["key","operator","value"]},"alicloud:arms/DispatchRuleNotifyRule:DispatchRuleNotifyRule":{"properties":{"notifyChannels":{"type":"array","items":{"type":"string"},"description":"The notification method. Valid values: dingTalk, sms, webhook, email, and wechat.\n"},"notifyEndTime":{"type":"string","description":"End time of notification.\n"},"notifyObjects":{"type":"array","items":{"$ref":"#/types/alicloud:arms/DispatchRuleNotifyRuleNotifyObject:DispatchRuleNotifyRuleNotifyObject"},"description":"Sets the notification object. See \u003cspan pulumi-lang-nodejs=\"`notifyObjects`\" pulumi-lang-dotnet=\"`NotifyObjects`\" pulumi-lang-go=\"`notifyObjects`\" pulumi-lang-python=\"`notify_objects`\" pulumi-lang-yaml=\"`notifyObjects`\" pulumi-lang-java=\"`notifyObjects`\"\u003e`notify_objects`\u003c/span\u003e below.\n"},"notifyStartTime":{"type":"string","description":"Start time of notification.\n"}},"type":"object","required":["notifyChannels","notifyEndTime","notifyObjects","notifyStartTime"]},"alicloud:arms/DispatchRuleNotifyRuleNotifyObject:DispatchRuleNotifyRuleNotifyObject":{"properties":{"name":{"type":"string","description":"The name of the contact or contact group.\n"},"notifyObjectId":{"type":"string","description":"The ID of the contact or contact group.\n"},"notifyType":{"type":"string","description":"The type of the alert contact. Valid values: ARMS_ROBOT: robot. ARMS_CONTACT: contact. ARMS_CONTACT_GROUP: contact group.\n"}},"type":"object","required":["name","notifyObjectId","notifyType"]},"alicloud:arms/DispatchRuleNotifyTemplate:DispatchRuleNotifyTemplate":{"properties":{"emailContent":{"type":"string","description":"The content of the email notification.\n"},"emailRecoverContent":{"type":"string","description":"The content of the email notification for restored alerts.\n"},"emailRecoverTitle":{"type":"string","description":"The title of the email notification for restored alerts.\n"},"emailTitle":{"type":"string","description":"The title of the email notification.\n"},"robotContent":{"type":"string","description":"The content of the robot notification.\n"},"smsContent":{"type":"string","description":"The content of the SMS notification.\n"},"smsRecoverContent":{"type":"string","description":"The content of the SMS notification for restored alerts.\n"},"ttsContent":{"type":"string","description":"The content of the TTS notification.\n"},"ttsRecoverContent":{"type":"string","description":"The content of the TTS notification for restored alerts.\n"}},"type":"object","required":["emailContent","emailRecoverContent","emailRecoverTitle","emailTitle","robotContent","smsContent","smsRecoverContent","ttsContent","ttsRecoverContent"]},"alicloud:arms/PrometheusAlertRuleAnnotation:PrometheusAlertRuleAnnotation":{"properties":{"name":{"type":"string","description":"The name of the annotation.\n"},"value":{"type":"string","description":"The value of the annotation.\n"}},"type":"object"},"alicloud:arms/PrometheusAlertRuleLabel:PrometheusAlertRuleLabel":{"properties":{"name":{"type":"string","description":"The name of the label.\n"},"value":{"type":"string","description":"The value of the label.\n"}},"type":"object"},"alicloud:arms/SyntheticTaskAvailableAssertion:SyntheticTaskAvailableAssertion":{"properties":{"expect":{"type":"string","description":"Expected value.\n"},"operator":{"type":"string","description":"Condition: gt: greater than; gte: greater than or equal to; lt: less than; te: less than or equal to; eq: equal to; neq: not equal to; ctn: contains; nctn: does not contain; exist: exists; n_exist: does not exist; belong: belongs to; reg_match: regular matching.\n"},"target":{"type":"string","description":"Check the target. If the target is HttpResCode, HttpResBody, or httpressetime, you do not need to specify the target. If the target is HttpResHead, you need to specify the key in the header. If the target is HttpResHead, you need to use jsonPath.\n"},"type":{"type":"string","description":"Assertion type, including: httpresead, httpresead, HttpResBody, HttpResBodyJson, httpressetime, IcmpPackLoss (packet loss rate), IcmpPackMaxLatency (maximum packet delay ms), icmppackwebscreen, fmppackavglatency (average delay rendering), TraceRouteHops (number of hops), dnsarecname, websiteOnload (full load time), see the supplement below for specific use.\n"}},"type":"object","required":["expect","operator","type"]},"alicloud:arms/SyntheticTaskCommonSetting:SyntheticTaskCommonSetting":{"properties":{"customHost":{"$ref":"#/types/alicloud:arms/SyntheticTaskCommonSettingCustomHost:SyntheticTaskCommonSettingCustomHost","description":"Custom host. See \u003cspan pulumi-lang-nodejs=\"`customHost`\" pulumi-lang-dotnet=\"`CustomHost`\" pulumi-lang-go=\"`customHost`\" pulumi-lang-python=\"`custom_host`\" pulumi-lang-yaml=\"`customHost`\" pulumi-lang-java=\"`customHost`\"\u003e`custom_host`\u003c/span\u003e below.\n"},"ipType":{"type":"integer","description":"IpType.\n"},"isOpenTrace":{"type":"boolean","description":"Whether to enable link tracking.\n"},"monitorSamples":{"type":"integer","description":"Whether the monitoring samples are evenly distributed:\n- 0: No\n1: Yes.\n"},"traceClientType":{"type":"integer","description":"Link trace client type:\n- 0:ARMS Agent\n- 1:OpenTelemetry\n- 2:Jaeger.\n"},"xtraceRegion":{"type":"string","description":"The link data is reported to the region.\n"}},"type":"object"},"alicloud:arms/SyntheticTaskCommonSettingCustomHost:SyntheticTaskCommonSettingCustomHost":{"properties":{"hosts":{"type":"array","items":{"$ref":"#/types/alicloud:arms/SyntheticTaskCommonSettingCustomHostHost:SyntheticTaskCommonSettingCustomHostHost"},"description":"The host list. See \u003cspan pulumi-lang-nodejs=\"`hosts`\" pulumi-lang-dotnet=\"`Hosts`\" pulumi-lang-go=\"`hosts`\" pulumi-lang-python=\"`hosts`\" pulumi-lang-yaml=\"`hosts`\" pulumi-lang-java=\"`hosts`\"\u003e`hosts`\u003c/span\u003e below.\n"},"selectType":{"type":"integer","description":"Selection method:\n- 0: Random\n- 1: Polling.\n"}},"type":"object","required":["hosts","selectType"]},"alicloud:arms/SyntheticTaskCommonSettingCustomHostHost:SyntheticTaskCommonSettingCustomHostHost":{"properties":{"domain":{"type":"string","description":"Domain Name.\n"},"ipType":{"type":"integer","description":"IpType.\n"},"ips":{"type":"array","items":{"type":"string"},"description":"The IP list.\n"}},"type":"object","required":["domain","ipType","ips"]},"alicloud:arms/SyntheticTaskCustomPeriod:SyntheticTaskCustomPeriod":{"properties":{"endHour":{"type":"integer","description":"End hours, 0-24.\n"},"startHour":{"type":"integer","description":"Starting hours, 0-24.\n"}},"type":"object"},"alicloud:arms/SyntheticTaskMonitor:SyntheticTaskMonitor":{"properties":{"cityCode":{"type":"string","description":"The city code of monitor.\n"},"clientType":{"type":"integer","description":"The type of monitor.\n"},"operatorCode":{"type":"string","description":"The operator code of monitor.\n"}},"type":"object","required":["cityCode","clientType","operatorCode"]},"alicloud:arms/SyntheticTaskMonitorConf:SyntheticTaskMonitorConf":{"properties":{"apiHttp":{"$ref":"#/types/alicloud:arms/SyntheticTaskMonitorConfApiHttp:SyntheticTaskMonitorConfApiHttp","description":"HTTP(S) task configuration information. See \u003cspan pulumi-lang-nodejs=\"`apiHttp`\" pulumi-lang-dotnet=\"`ApiHttp`\" pulumi-lang-go=\"`apiHttp`\" pulumi-lang-python=\"`api_http`\" pulumi-lang-yaml=\"`apiHttp`\" pulumi-lang-java=\"`apiHttp`\"\u003e`api_http`\u003c/span\u003e below.\n"},"fileDownload":{"$ref":"#/types/alicloud:arms/SyntheticTaskMonitorConfFileDownload:SyntheticTaskMonitorConfFileDownload","description":"File download type task configuration. See \u003cspan pulumi-lang-nodejs=\"`fileDownload`\" pulumi-lang-dotnet=\"`FileDownload`\" pulumi-lang-go=\"`fileDownload`\" pulumi-lang-python=\"`file_download`\" pulumi-lang-yaml=\"`fileDownload`\" pulumi-lang-java=\"`fileDownload`\"\u003e`file_download`\u003c/span\u003e below.\n"},"netDns":{"$ref":"#/types/alicloud:arms/SyntheticTaskMonitorConfNetDns:SyntheticTaskMonitorConfNetDns","description":"The configuration parameters of the DNS dial test. Required when TaskType is 3. See \u003cspan pulumi-lang-nodejs=\"`netDns`\" pulumi-lang-dotnet=\"`NetDns`\" pulumi-lang-go=\"`netDns`\" pulumi-lang-python=\"`net_dns`\" pulumi-lang-yaml=\"`netDns`\" pulumi-lang-java=\"`netDns`\"\u003e`net_dns`\u003c/span\u003e below.\n"},"netIcmp":{"$ref":"#/types/alicloud:arms/SyntheticTaskMonitorConfNetIcmp:SyntheticTaskMonitorConfNetIcmp","description":"ICMP dialing configuration parameters. Required when TaskType is 1. See \u003cspan pulumi-lang-nodejs=\"`netIcmp`\" pulumi-lang-dotnet=\"`NetIcmp`\" pulumi-lang-go=\"`netIcmp`\" pulumi-lang-python=\"`net_icmp`\" pulumi-lang-yaml=\"`netIcmp`\" pulumi-lang-java=\"`netIcmp`\"\u003e`net_icmp`\u003c/span\u003e below.\n"},"netTcp":{"$ref":"#/types/alicloud:arms/SyntheticTaskMonitorConfNetTcp:SyntheticTaskMonitorConfNetTcp","description":"The configuration parameters of TCP dial test. Required when TaskType is 2. See \u003cspan pulumi-lang-nodejs=\"`netTcp`\" pulumi-lang-dotnet=\"`NetTcp`\" pulumi-lang-go=\"`netTcp`\" pulumi-lang-python=\"`net_tcp`\" pulumi-lang-yaml=\"`netTcp`\" pulumi-lang-java=\"`netTcp`\"\u003e`net_tcp`\u003c/span\u003e below.\n"},"stream":{"$ref":"#/types/alicloud:arms/SyntheticTaskMonitorConfStream:SyntheticTaskMonitorConfStream","description":"Streaming Media Dial Test Configuration. See \u003cspan pulumi-lang-nodejs=\"`stream`\" pulumi-lang-dotnet=\"`Stream`\" pulumi-lang-go=\"`stream`\" pulumi-lang-python=\"`stream`\" pulumi-lang-yaml=\"`stream`\" pulumi-lang-java=\"`stream`\"\u003e`stream`\u003c/span\u003e below.\n"},"website":{"$ref":"#/types/alicloud:arms/SyntheticTaskMonitorConfWebsite:SyntheticTaskMonitorConfWebsite","description":"Website speed measurement type task configuration. See \u003cspan pulumi-lang-nodejs=\"`website`\" pulumi-lang-dotnet=\"`Website`\" pulumi-lang-go=\"`website`\" pulumi-lang-python=\"`website`\" pulumi-lang-yaml=\"`website`\" pulumi-lang-java=\"`website`\"\u003e`website`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:arms/SyntheticTaskMonitorConfApiHttp:SyntheticTaskMonitorConfApiHttp":{"properties":{"connectTimeout":{"type":"integer","description":"Connection timeout, in ms. Default 5000. Optional range: 1000-300000ms.\n"},"method":{"type":"string","description":"HTTP method, GET or POST.\n"},"requestBody":{"$ref":"#/types/alicloud:arms/SyntheticTaskMonitorConfApiHttpRequestBody:SyntheticTaskMonitorConfApiHttpRequestBody","description":"HTTP request body. See \u003cspan pulumi-lang-nodejs=\"`requestBody`\" pulumi-lang-dotnet=\"`RequestBody`\" pulumi-lang-go=\"`requestBody`\" pulumi-lang-python=\"`request_body`\" pulumi-lang-yaml=\"`requestBody`\" pulumi-lang-java=\"`requestBody`\"\u003e`request_body`\u003c/span\u003e below.\n"},"requestHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP request header.\n"},"targetUrl":{"type":"string","description":"The target URL.\n"},"timeout":{"type":"integer","description":"TCP dial test timeout. The unit is milliseconds (ms), the minimum value is 1000, the maximum value is 300000, and the default value is 20000.\n"}},"type":"object","required":["targetUrl"]},"alicloud:arms/SyntheticTaskMonitorConfApiHttpRequestBody:SyntheticTaskMonitorConfApiHttpRequestBody":{"properties":{"content":{"type":"string","description":"The request body content, in JSON string format. When the type is text/plain,application/json,application/xml,text/html, the content can be converted to a JSON string.\n"},"type":{"type":"string"}},"type":"object"},"alicloud:arms/SyntheticTaskMonitorConfFileDownload:SyntheticTaskMonitorConfFileDownload":{"properties":{"connectionTimeout":{"type":"integer","description":"Connection timeout time, in ms. Default 5000. Optional range: 1000-120000ms.\n"},"customHeaderContent":{"type":"object","additionalProperties":{"type":"string"},"description":"Custom header, in JSON Map format.\n"},"downloadKernel":{"type":"integer","description":"Download the kernel.\n- 1:curl\n- 0:WinInet\nDefault 1.\n"},"ignoreCertificateAuthError":{"type":"integer","description":"Ignore CA Certificate authorization error 0: Do not ignore, 1: ignore, default 1.\n"},"ignoreCertificateCanceledError":{"type":"integer","description":"Ignore certificate revocation error 0: Do not ignore, 1: ignore, default 1.\n"},"ignoreCertificateOutOfDateError":{"type":"integer","description":"Ignore certificate expiration error 0: not ignored, 1: Ignored, default 1.\n"},"ignoreCertificateStatusError":{"type":"integer","description":"The certificate status error is ignored. 0: Do not ignore, 1: IGNORE. The default value is 1.\n"},"ignoreCertificateUntrustworthyError":{"type":"integer","description":"The certificate cannot be trusted and ignored. 0: Do not ignore, 1: IGNORE. The default value is 1.\n"},"ignoreCertificateUsingError":{"type":"integer","description":"Ignore certificate usage error 0: Do not ignore, 1: ignore, default 1.\n"},"ignoreInvalidHostError":{"type":"integer","description":"Invalid host error ignored, 0: not ignored, 1: Ignored, default 1.\n"},"monitorTimeout":{"type":"integer","description":"Monitoring timeout, in ms. Not required, 20000 by default.\n"},"quickProtocol":{"type":"integer","description":"Quick agreement\n- 1:http1\n- 2:http2\n- 3:http3\nDefault 1.\n"},"redirection":{"type":"integer","description":"When redirection occurs, whether to continue browsing, 0-No, 1-Yes, the default is 1.\n"},"targetUrl":{"type":"string","description":"The target URL.\n"},"transmissionSize":{"type":"integer","description":"The transmission size, in KB. The default value is 2048KB. The transmission size of the downloaded file must be between 1 and 20480KB.\n"},"validateKeywords":{"type":"string","description":"Verify keywords.\n"},"verifyWay":{"type":"integer","description":"The verification method.\n- 0: Do not validate\n- 1: Validation string\n- 2:MD5 validation.\n"},"whiteList":{"type":"string","description":"DNS hijack whitelist. Match rules support IP, IP wildcard, subnet mask, and CNAME. Multiple match rules can be filled in. Multiple match rules are separated by vertical bars (|). For example, www.aliyun.com:203.0.3.55 | 203.3.44.67 indicates that all other IP addresses under the www.aliyun.com domain except 203.0.3.55 and 203.3.44.67 are hijacked.\n"}},"type":"object","required":["targetUrl"]},"alicloud:arms/SyntheticTaskMonitorConfNetDns:SyntheticTaskMonitorConfNetDns":{"properties":{"dnsServerIpType":{"type":"integer","description":"The IP address type of the DNS server.\n- 0 (default):ipv4\n- 1:ipv6\n2: Automatic.\n"},"nsServer":{"type":"string","description":"The IP address of the NS server. The default value is 114.114.114.114.\n"},"queryMethod":{"type":"integer","description":"DNS query method.\n- 0 (default): Recursive\n- 1: Iteration.\n"},"targetUrl":{"type":"string","description":"The target URL.\n"},"timeout":{"type":"integer","description":"TCP dial test timeout. The unit is milliseconds (ms), the minimum value is 1000, the maximum value is 300000, and the default value is 20000.\n"}},"type":"object","required":["targetUrl"]},"alicloud:arms/SyntheticTaskMonitorConfNetIcmp:SyntheticTaskMonitorConfNetIcmp":{"properties":{"interval":{"type":"integer","description":"The interval between TCP connections. The unit is milliseconds (ms), the minimum value is 200, the maximum value is 10000, and the default value is 200.\n"},"packageNum":{"type":"integer","description":"Number of ICMP(Ping) packets sent. The minimum value is 1, the maximum value is 50, and the default is 4.\n"},"packageSize":{"type":"integer","description":"The size of the sent ICMP(Ping) packet. The unit is byte. The ICMP(PING) packet size is limited to 32, 64, 128, 256, 512, 1024, 1080, and 1450.\n"},"splitPackage":{"type":"boolean","description":"Whether to split ICMP(Ping) packets. The default is true.\n"},"targetUrl":{"type":"string","description":"The target URL.\n"},"timeout":{"type":"integer","description":"TCP dial test timeout. The unit is milliseconds (ms), the minimum value is 1000, the maximum value is 300000, and the default value is 20000.\n"},"tracertEnable":{"type":"boolean","description":"Whether to enable tracert. The default is true.\n"},"tracertNumMax":{"type":"integer","description":"The maximum number of hops for tracert. The minimum value is 1, the maximum value is 128, and the default value is 20.\n"},"tracertTimeout":{"type":"integer","description":"The time-out of tracert. The unit is milliseconds (ms), the minimum value is 1000, the maximum value is 300000, and the default value is 60000.\n"}},"type":"object","required":["targetUrl"]},"alicloud:arms/SyntheticTaskMonitorConfNetTcp:SyntheticTaskMonitorConfNetTcp":{"properties":{"connectTimes":{"type":"integer","description":"The number of TCP connections established. The minimum value is 1, the maximum value is 16, and the default is 4.\n"},"interval":{"type":"integer","description":"The interval between TCP connections. The unit is milliseconds (ms), the minimum value is 200, the maximum value is 10000, and the default value is 200.\n"},"targetUrl":{"type":"string","description":"The target URL.\n"},"timeout":{"type":"integer","description":"TCP dial test timeout. The unit is milliseconds (ms), the minimum value is 1000, the maximum value is 300000, and the default value is 20000.\n"},"tracertEnable":{"type":"boolean","description":"Whether to enable tracert. The default is true.\n"},"tracertNumMax":{"type":"integer","description":"The maximum number of hops for tracert. The minimum value is 1, the maximum value is 128, and the default value is 20.\n"},"tracertTimeout":{"type":"integer","description":"The time-out of tracert. The unit is milliseconds (ms), the minimum value is 1000, the maximum value is 300000, and the default value is 60000.\n"}},"type":"object","required":["targetUrl"]},"alicloud:arms/SyntheticTaskMonitorConfStream:SyntheticTaskMonitorConfStream":{"properties":{"customHeaderContent":{"type":"object","additionalProperties":{"type":"string"},"description":"Custom header, in JSON Map format.\n"},"playerType":{"type":"integer","description":"Player, do not pass the default 12.\n- 12:VLC\n- 2:FlashPlayer.\n"},"streamAddressType":{"type":"integer","description":"Resource address type:\n- 1: Resource address.\n- 0: page address, not 0 by default.\n"},"streamMonitorTimeout":{"type":"integer","description":"Monitoring duration, in seconds, up to 60s, not 60 by default.\n"},"streamType":{"type":"integer","description":"Audio and video flags: 0-video, 1-audio.\n"},"targetUrl":{"type":"string","description":"The target URL.\n"},"whiteList":{"type":"string","description":"DNS hijack whitelist. Match rules support IP, IP wildcard, subnet mask, and CNAME. Multiple match rules can be filled in. Multiple match rules are separated by vertical bars (|). For example, www.aliyun.com:203.0.3.55 | 203.3.44.67 indicates that all other IP addresses under the www.aliyun.com domain except 203.0.3.55 and 203.3.44.67 are hijacked.\n"}},"type":"object"},"alicloud:arms/SyntheticTaskMonitorConfWebsite:SyntheticTaskMonitorConfWebsite":{"properties":{"automaticScrolling":{"type":"integer","description":"Whether to support automatic scrolling screen, loading page.\n- 0 (default): No\n1: Yes.\n"},"customHeader":{"type":"integer","description":"Custom header.\n- 0 (default): Off\n- 1: Modify the first package\n- 2: Modify all packages.\n"},"customHeaderContent":{"type":"object","additionalProperties":{"type":"string"},"description":"Custom header, in JSON Map format.\n"},"disableCache":{"type":"integer","description":"Whether to disable caching.\n- 0: not disabled\n- 1 (default): Disabled.\n"},"disableCompression":{"type":"integer","description":"The Accept-Encoding field is used to determine whether to Accept compressed files. 0-do not disable, 1-disable, the default is 0.\n"},"dnsHijackWhitelist":{"type":"string","description":"When a domain name (such as www.aliyun.com) is resolved, if the resolved IP address or CNAME is not in the DNS hijacking white list, the user will fail to access or return a target IP address that is not Aliyun. If the IP or CNAME in the resolution result is in the DNS white list, it will be determined that DNS hijacking has not occurred.  Fill in the format: Domain name: matching rules. Match rules support IP, IP wildcard, subnet mask, and CNAME. Multiple match rules can be filled in. Multiple match rules are separated by vertical bars (|). For example, www.aliyun.com:203.0.3.55 | 203.3.44.67 indicates that all other IP addresses under the www.aliyun.com domain except 203.0.3.55 and 203.3.44.67 are hijacked.\n"},"elementBlacklist":{"type":"string","description":"If an element configured in the element blacklist appears during page loading, the element is not requested to be loaded.\n"},"filterInvalidIp":{"type":"integer","description":"Whether to filter invalid IP parameters. 0: filter, 1: do not filter. The default value is 0.\n"},"flowHijackJumpTimes":{"type":"integer","description":"Identify elements: Set the total number of elements on the Browse page.\n"},"flowHijackLogo":{"type":"string","description":"Hijacking ID: Set the matching key information. Enter the hijacking keyword or key element, with an asterisk (*) allowed.\n"},"ignoreCertificateError":{"type":"integer","description":"Whether to ignore certificate errors during certificate verification in SSL Handshake and continue browsing. 0-do not ignore, 1-ignore. The default value is 1.\n"},"monitorTimeout":{"type":"integer","description":"Monitoring timeout, in ms. Not required, 20000 by default.\n"},"pageTamper":{"type":"string","description":"Monitoring the page appears to be tampered with elements other than the domain settings that belong to the page. Common manifestations are pop-up advertisements, floating advertisements, jumps, etc.  Fill in the format: Domain name: Element. You can fill multiple elements separated by a vertical bar (|). For example, www.aliyun.com:|/cc/bb/a.gif |/vv/bb/cc.jpg indicates that all the other elements of the www.aliyun.com domain name except the basic document,/cc/bb/a.gif, and/vv/bb/cc.jpg are tampered.\n"},"redirection":{"type":"integer","description":"When redirection occurs, whether to continue browsing, 0-No, 1-Yes, the default is 1.\n"},"slowElementThreshold":{"type":"integer","description":"The slow element threshold, in ms, is 5000 by default and can be selected from 1 to 300000ms.\n"},"targetUrl":{"type":"string","description":"The target URL.\n"},"verifyStringBlacklist":{"type":"string","description":"The verification string is an arbitrary string in the source code of the monitoring page. If the source code returned by the client contains any of the blacklisted strings, 650 error is returned. Multiple strings are separated by a vertical bar (|).\n"},"verifyStringWhitelist":{"type":"string","description":"The verification string is an arbitrary string in the source code of the monitoring page. The source code returned by the client must contain all the strings in the whitelist. Otherwise, 650 error is returned. Multiple strings are separated by a vertical bar (|).\n"},"waitCompletionTime":{"type":"integer","description":"The maximum waiting time, in ms, is 5000 by default and can be selected from 5000 ms to 300000ms.\n"}},"type":"object","required":["targetUrl"]},"alicloud:arms/getAddonReleasesRelease:getAddonReleasesRelease":{"properties":{"addonName":{"type":"string","description":"The name of the add-on.\n"},"addonReleaseName":{"type":"string","description":"The name of the Addon Release.\n"},"addonVersion":{"type":"string","description":"The version of the add-on.\n"},"alertRuleCount":{"type":"integer","description":"The number of alert rules.\n"},"aliyunLang":{"type":"string","description":"The language.\n"},"createTime":{"type":"string","description":"The time when the add-on was created.\n"},"dashboardCount":{"type":"integer","description":"The number of dashboards.\n"},"environmentId":{"type":"string","description":"The environment ID.\n"},"exporterCount":{"type":"integer","description":"The number of exporters.\n"},"id":{"type":"string","description":"The ID of the Addon Release. It formats as `\u003cenvironment_id\u003e:\u003caddon_release_name\u003e`.\n"},"regionId":{"type":"string","description":"The region ID.\n"}},"type":"object","required":["addonName","addonReleaseName","addonVersion","alertRuleCount","aliyunLang","createTime","dashboardCount","environmentId","exporterCount","id","regionId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getAlertContactGroupsGroup:getAlertContactGroupsGroup":{"properties":{"alertContactGroupId":{"type":"string","description":"The first ID of the resource.\n"},"alertContactGroupName":{"type":"string","description":"The name of the resource.\n"},"contactIds":{"type":"array","items":{"type":"string"},"description":"contact ids.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"id":{"type":"string","description":"The ID of the Alert Contact Group.\n"}},"type":"object","required":["alertContactGroupId","alertContactGroupName","contactIds","createTime","id"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getAlertContactsContact:getAlertContactsContact":{"properties":{"alertContactId":{"type":"string","description":"Contact ID.\n"},"alertContactName":{"type":"string","description":"The name of the alert contact.\n"},"createTime":{"type":"string","description":"The Creation Time Timestamp.\n"},"dingRobotWebhookUrl":{"type":"string","description":"The webhook URL of the DingTalk chatbot.\n"},"email":{"type":"string","description":"The email address of the alert contact.\n"},"id":{"type":"string","description":"The ID of the Alert Contact.\n"},"phoneNum":{"type":"string","description":"The mobile number of the alert contact.\n"},"systemNoc":{"type":"boolean","description":"Specifies whether the alert contact receives system notifications.\n"},"webhook":{"type":"string","description":"Webhook Information.\n"}},"type":"object","required":["alertContactId","alertContactName","createTime","dingRobotWebhookUrl","email","id","phoneNum","systemNoc","webhook"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getAlertRobotsRobot:getAlertRobotsRobot":{"properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"dailyNoc":{"type":"string","description":"Specifies whether the alert robot receives daily notifications.\n"},"dailyNocTime":{"type":"string","description":"The time of the daily notification.\n"},"id":{"type":"string","description":"The ID of the Alert Robot.\n"},"robotAddr":{"type":"string","description":"The webhook url of the robot.\n"},"robotId":{"type":"string","description":"The id of the robot.\n"},"robotName":{"type":"string","description":"The name of the robot.\n"},"robotType":{"type":"string","description":"The robot type.\n"}},"type":"object","required":["createTime","dailyNoc","dailyNocTime","id","robotAddr","robotId","robotName","robotType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getDispatchRulesRule:getDispatchRulesRule":{"properties":{"dispatchRuleId":{"type":"string","description":"Dispatch rule ID.\n"},"dispatchRuleName":{"type":"string","description":"The name of the dispatch rule.\n"},"groupRules":{"type":"array","items":{"$ref":"#/types/alicloud:arms/getDispatchRulesRuleGroupRule:getDispatchRulesRuleGroupRule"},"description":"Sets the event group.\n"},"id":{"type":"string","description":"The ID of the Dispatch Rule.\n"},"labelMatchExpressionGrids":{"type":"array","items":{"$ref":"#/types/alicloud:arms/getDispatchRulesRuleLabelMatchExpressionGrid:getDispatchRulesRuleLabelMatchExpressionGrid"},"description":"Sets the dispatch rule.\n"},"notifyRules":{"type":"array","items":{"$ref":"#/types/alicloud:arms/getDispatchRulesRuleNotifyRule:getDispatchRulesRuleNotifyRule"},"description":"Sets the notification rule.\n"},"notifyTemplates":{"type":"array","items":{"$ref":"#/types/alicloud:arms/getDispatchRulesRuleNotifyTemplate:getDispatchRulesRuleNotifyTemplate"},"description":"(Available since v1.238.0) The notification method.\n"},"status":{"type":"string","description":"The resource status of Alert Dispatch Rule.\n"}},"type":"object","required":["dispatchRuleId","dispatchRuleName","groupRules","id","labelMatchExpressionGrids","notifyRules","notifyTemplates","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getDispatchRulesRuleGroupRule:getDispatchRulesRuleGroupRule":{"properties":{"groupInterval":{"type":"integer","description":"The duration for which the system waits after the first alert is sent. After the duration, all alerts are sent in a single notification to the handler.\n"},"groupWaitTime":{"type":"integer","description":"The duration for which the system waits after the first alert is sent. After the duration, all alerts are sent in a single notification to the handler.\n"},"groupingFields":{"type":"array","items":{"type":"string"},"description":"The fields that are used to group events. Events with the same field content are assigned to a group. Alerts with the same specified grouping field are sent to the handler in separate notifications.\n"},"repeatInterval":{"type":"integer","description":"The silence period of repeated alerts. All alerts are repeatedly sent at specified intervals until the alerts are cleared. The minimum value is 61. Default to 600.\n"}},"type":"object","required":["groupInterval","groupWaitTime","groupingFields","repeatInterval"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getDispatchRulesRuleLabelMatchExpressionGrid:getDispatchRulesRuleLabelMatchExpressionGrid":{"properties":{"labelMatchExpressionGroups":{"type":"array","items":{"$ref":"#/types/alicloud:arms/getDispatchRulesRuleLabelMatchExpressionGridLabelMatchExpressionGroup:getDispatchRulesRuleLabelMatchExpressionGridLabelMatchExpressionGroup"},"description":"Sets the dispatch rule.\n"}},"type":"object","required":["labelMatchExpressionGroups"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getDispatchRulesRuleLabelMatchExpressionGridLabelMatchExpressionGroup:getDispatchRulesRuleLabelMatchExpressionGridLabelMatchExpressionGroup":{"properties":{"labelMatchExpressions":{"type":"array","items":{"$ref":"#/types/alicloud:arms/getDispatchRulesRuleLabelMatchExpressionGridLabelMatchExpressionGroupLabelMatchExpression:getDispatchRulesRuleLabelMatchExpressionGridLabelMatchExpressionGroupLabelMatchExpression"},"description":"Sets the dispatch rule.\n"}},"type":"object","required":["labelMatchExpressions"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getDispatchRulesRuleLabelMatchExpressionGridLabelMatchExpressionGroupLabelMatchExpression:getDispatchRulesRuleLabelMatchExpressionGridLabelMatchExpressionGroupLabelMatchExpression":{"properties":{"key":{"type":"string","description":"The key of the tag of the dispatch rule.\n"},"operator":{"type":"string","description":"The operator used in the dispatch rule.\n"},"value":{"type":"string","description":"The value of the tag.\n"}},"type":"object","required":["key","operator","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getDispatchRulesRuleNotifyRule:getDispatchRulesRuleNotifyRule":{"properties":{"notifyChannels":{"type":"array","items":{"type":"string"},"description":"A list of notification methods.\n"},"notifyEndTime":{"type":"string","description":"(Available since v1.237.0) End time of notification.\n"},"notifyObjects":{"type":"array","items":{"$ref":"#/types/alicloud:arms/getDispatchRulesRuleNotifyRuleNotifyObject:getDispatchRulesRuleNotifyRuleNotifyObject"},"description":"Sets the notification object.\n"},"notifyStartTime":{"type":"string","description":"(Available since v1.237.0) Start time of notification.\n"}},"type":"object","required":["notifyChannels","notifyEndTime","notifyObjects","notifyStartTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getDispatchRulesRuleNotifyRuleNotifyObject:getDispatchRulesRuleNotifyRuleNotifyObject":{"properties":{"name":{"type":"string","description":"The name of the contact or contact group.\n"},"notifyObjectId":{"type":"string","description":"The ID of the contact or contact group.\n"},"notifyType":{"type":"string","description":"The type of the alert contact.\n"}},"type":"object","required":["name","notifyObjectId","notifyType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getDispatchRulesRuleNotifyTemplate:getDispatchRulesRuleNotifyTemplate":{"properties":{"emailContent":{"type":"string","description":"The content of the email.\n"},"emailRecoverContent":{"type":"string","description":"The content of the email.\n"},"emailRecoverTitle":{"type":"string","description":"The title of the email.\n"},"emailTitle":{"type":"string","description":"The title of the email.\n"},"robotContent":{"type":"string","description":"The content of the robot.\n"},"smsContent":{"type":"string","description":"The content of the SMS.\n"},"smsRecoverContent":{"type":"string","description":"The content of the SMS.\n"},"ttsContent":{"type":"string","description":"The content of the TTS.\n"},"ttsRecoverContent":{"type":"string","description":"The content of the TTS.\n"}},"type":"object","required":["emailContent","emailRecoverContent","emailRecoverTitle","emailTitle","robotContent","smsContent","smsRecoverContent","ttsContent","ttsRecoverContent"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getEnvCustomJobsJob:getEnvCustomJobsJob":{"properties":{"configYaml":{"type":"string","description":"The YAML configuration string.\n"},"envCustomJobName":{"type":"string","description":"The name of the custom job.\n"},"environmentId":{"type":"string","description":"The ID of the environment instance.\n"},"id":{"type":"string","description":"The ID of the custom job. It formats as `\u003cenvironment_id\u003e:\u003cenv_custom_job_name\u003e`.\n"},"regionId":{"type":"string","description":"The region ID.\n"},"status":{"type":"string","description":"The status of the custom job.\n"}},"type":"object","required":["configYaml","envCustomJobName","environmentId","id","regionId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getEnvFeaturesFeature:getEnvFeaturesFeature":{"properties":{"aliyunLang":{"type":"string","description":"The language.\n"},"envFeatureName":{"type":"string","description":"The name of the feature.\n"},"environmentId":{"type":"string","description":"The ID of the environment instance.\n"},"featureVersion":{"type":"string","description":"The version of the feature.\n"},"id":{"type":"string","description":"The ID of the Env Feature. It formats as `\u003cenvironment_id\u003e:\u003cenv_feature_name\u003e`.\n"},"status":{"type":"string","description":"The status of the feature.\n"}},"type":"object","required":["aliyunLang","envFeatureName","environmentId","featureVersion","id","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getEnvPodMonitorsMonitor:getEnvPodMonitorsMonitor":{"properties":{"configYaml":{"type":"string","description":"The YAML configuration string.\n"},"envPodMonitorName":{"type":"string","description":"The name of the PodMonitor.\n"},"environmentId":{"type":"string","description":"The environment ID.\n"},"id":{"type":"string","description":"The ID of the PodMonitor. It formats as `\u003cenvironment_id\u003e:\u003cnamespace\u003e:\u003cenv_pod_monitor_name\u003e`.\n"},"namespace":{"type":"string","description":"The namespace.\n"},"regionId":{"type":"string","description":"The region ID.\n"},"status":{"type":"string","description":"The status of the PodMonitor.\n"}},"type":"object","required":["configYaml","envPodMonitorName","environmentId","id","namespace","regionId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getEnvServiceMonitorsMonitor:getEnvServiceMonitorsMonitor":{"properties":{"configYaml":{"type":"string","description":"The YAML configuration string.\n"},"envServiceMonitorName":{"type":"string","description":"The name of the ServiceMonitor.\n"},"environmentId":{"type":"string","description":"The environment ID.\n"},"id":{"type":"string","description":"The ID of the ServiceMonitor. It formats as `\u003cenvironment_id\u003e:\u003cnamespace\u003e:\u003cenv_service_monitor_name\u003e`.\n"},"namespace":{"type":"string","description":"The namespace.\n"},"regionId":{"type":"string","description":"The region ID.\n"},"status":{"type":"string","description":"The status of the ServiceMonitor.\n"}},"type":"object","required":["configYaml","envServiceMonitorName","environmentId","id","namespace","regionId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getEnvironmentsEnvironment:getEnvironmentsEnvironment":{"properties":{"bindResourceId":{"type":"string","description":"The ID of the resource bound to the environment instance.\n"},"bindResourceType":{"type":"string","description":"The resource type.\n"},"bindVpcCidr":{"type":"string","description":"The CIDR block that is bound to the VPC.\n"},"environmentId":{"type":"string","description":"The ID of the environment instance.\n"},"environmentName":{"type":"string","description":"The name of the environment instance.\n"},"environmentType":{"type":"string","description":"The environment type. Valid values: `CS`, `ECS`, `Cloud`.\n"},"grafanaDatasourceUid":{"type":"string","description":"The unique ID of the Grafana data source.\n"},"grafanaFolderUid":{"type":"string","description":"The unique ID of the Grafana directory.\n"},"id":{"type":"string","description":"The ID of the environment instance.\n"},"managedType":{"type":"string","description":"Indicates whether agents or exporters are managed.\n"},"prometheusInstanceId":{"type":"string","description":"The ID of the Prometheus instance.\n"},"regionId":{"type":"string","description":"The region ID.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"userId":{"type":"string","description":"The user ID.\n"}},"type":"object","required":["bindResourceId","bindResourceType","bindVpcCidr","environmentId","environmentName","environmentType","grafanaDatasourceUid","grafanaFolderUid","id","managedType","prometheusInstanceId","regionId","resourceGroupId","tags","userId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getIntegrationExportersIntegrationExporter:getIntegrationExportersIntegrationExporter":{"properties":{"clusterId":{"type":"string","description":"The ID of the Prometheus instance.\n"},"exporterType":{"type":"string","description":"Integration Exporter Type.\n"},"id":{"type":"string","description":"The ID of the Integration Exporter. It formats as `\u003ccluster_id\u003e:\u003cintegration_type\u003e:\u003cinstance_id\u003e`.\n"},"instanceId":{"type":"integer","description":"The ID of the Integration Exporter instance.\n"},"instanceName":{"type":"string","description":"The name of the instance.\n"},"integrationType":{"type":"string","description":"The type of prometheus integration.\n"},"param":{"type":"string","description":"Exporter configuration parameter json string.\n"},"target":{"type":"string","description":"Monitor the target address.\n"},"version":{"type":"string","description":"The version information.\n"}},"type":"object","required":["clusterId","exporterType","id","instanceId","instanceName","integrationType","param","target","version"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getPrometheisPromethei:getPrometheisPromethei":{"properties":{"authToken":{"type":"string","description":"The token used to access the data source.\n"},"clusterId":{"type":"string","description":"The ID of the cluster.\n"},"clusterName":{"type":"string","description":"The name of the cluster.\n"},"clusterType":{"type":"string","description":"The type of the cluster.\n"},"grafanaInstanceId":{"type":"string","description":"The ID of the Grafana workspace.\n"},"httpApiInterUrl":{"type":"string","description":"Http api public network address.\n"},"httpApiIntraUrl":{"type":"string","description":"Http api intranet address.\n"},"id":{"type":"string","description":"The ID of the Prometheus.\n"},"pushGateWayInterUrl":{"type":"string","description":"PushGateway public network Url.\n"},"pushGateWayIntraUrl":{"type":"string","description":"PushGateway intranet Url.\n"},"remoteReadInterUrl":{"type":"string","description":"Public Url of remoteRead.\n"},"remoteReadIntraUrl":{"type":"string","description":"RemoteRead intranet Url.\n"},"remoteWriteInterUrl":{"type":"string","description":"RemoteWrite public Url.\n"},"remoteWriteIntraUrl":{"type":"string","description":"RemoteWrite Intranet Url.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n"},"subClustersJson":{"type":"string","description":"The child instance json string of the globalView instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n"}},"type":"object","required":["authToken","clusterId","clusterName","clusterType","grafanaInstanceId","httpApiInterUrl","httpApiIntraUrl","id","pushGateWayInterUrl","pushGateWayIntraUrl","remoteReadInterUrl","remoteReadIntraUrl","remoteWriteInterUrl","remoteWriteIntraUrl","resourceGroupId","securityGroupId","subClustersJson","tags","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getPrometheusAlertRulesRule:getPrometheusAlertRulesRule":{"properties":{"annotations":{"type":"array","items":{"$ref":"#/types/alicloud:arms/getPrometheusAlertRulesRuleAnnotation:getPrometheusAlertRulesRuleAnnotation"},"description":"The annotations of the alert rule.\n"},"clusterId":{"type":"string","description":"The ID of the cluster.\n"},"dispatchRuleId":{"type":"string","description":"The ID of the notification policy. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`notifyType`\" pulumi-lang-dotnet=\"`NotifyType`\" pulumi-lang-go=\"`notifyType`\" pulumi-lang-python=\"`notify_type`\" pulumi-lang-yaml=\"`notifyType`\" pulumi-lang-java=\"`notifyType`\"\u003e`notify_type`\u003c/span\u003e parameter is set to `DISPATCH_RULE`.\n"},"duration":{"type":"string","description":"The duration of the alert.\n"},"expression":{"type":"string","description":"The alert rule expression that follows the PromQL syntax..\n"},"id":{"type":"string","description":"The ID of the Prometheus Alert Rule.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:arms/getPrometheusAlertRulesRuleLabel:getPrometheusAlertRulesRuleLabel"},"description":"The labels of the resource.\n"},"message":{"type":"string","description":"The message of the alert notification.\n"},"notifyType":{"type":"string","description":"The method of sending the alert notification. Valid values: `ALERT_MANAGER`, `DISPATCH_RULE`.\n"},"prometheusAlertRuleId":{"type":"string","description":"The first ID of the resource.\n"},"prometheusAlertRuleName":{"type":"string","description":"The name of the resource.\n"},"status":{"type":"integer","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of the alert rule.\n"}},"type":"object","required":["annotations","clusterId","dispatchRuleId","duration","expression","id","labels","message","notifyType","prometheusAlertRuleId","prometheusAlertRuleName","status","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getPrometheusAlertRulesRuleAnnotation:getPrometheusAlertRulesRuleAnnotation":{"properties":{"name":{"type":"string","description":"The value of the annotation.\n"},"value":{"type":"string","description":"The name of the annotation name.\n"}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getPrometheusAlertRulesRuleLabel:getPrometheusAlertRulesRuleLabel":{"properties":{"name":{"type":"string","description":"The name of the label.\n"},"value":{"type":"string","description":"The value of the label.\n"}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getPrometheusMonitoringsPrometheusMonitoring:getPrometheusMonitoringsPrometheusMonitoring":{"properties":{"clusterId":{"type":"string","description":"The ID of the Prometheus instance.\n"},"configYaml":{"type":"string","description":"The monitoring configuration. The value is a YAML string.\n"},"id":{"type":"string","description":"The ID of the Prometheus Monitoring. It formats as `\u003ccluster_id\u003e:\u003cmonitoring_name\u003e:\u003ctype\u003e`.\n"},"monitoringName":{"type":"string","description":"The name of the monitoring configuration.\n"},"status":{"type":"string","description":"The status of the monitoring configuration. Valid values: \u003cspan pulumi-lang-nodejs=\"`run`\" pulumi-lang-dotnet=\"`Run`\" pulumi-lang-go=\"`run`\" pulumi-lang-python=\"`run`\" pulumi-lang-yaml=\"`run`\" pulumi-lang-java=\"`run`\"\u003e`run`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stop`\" pulumi-lang-dotnet=\"`Stop`\" pulumi-lang-go=\"`stop`\" pulumi-lang-python=\"`stop`\" pulumi-lang-yaml=\"`stop`\" pulumi-lang-java=\"`stop`\"\u003e`stop`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of the monitoring configuration. Valid values: `serviceMonitor`, `podMonitor`, `customJob`, \u003cspan pulumi-lang-nodejs=\"`probe`\" pulumi-lang-dotnet=\"`Probe`\" pulumi-lang-go=\"`probe`\" pulumi-lang-python=\"`probe`\" pulumi-lang-yaml=\"`probe`\" pulumi-lang-java=\"`probe`\"\u003e`probe`\u003c/span\u003e.\n"}},"type":"object","required":["clusterId","configYaml","id","monitoringName","status","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getPrometheusPromethei:getPrometheusPromethei":{"properties":{"authToken":{"type":"string","description":"(Available since v1.214.0) The authorization token. **Note:** \u003cspan pulumi-lang-nodejs=\"`authToken`\" pulumi-lang-dotnet=\"`AuthToken`\" pulumi-lang-go=\"`authToken`\" pulumi-lang-python=\"`auth_token`\" pulumi-lang-yaml=\"`authToken`\" pulumi-lang-java=\"`authToken`\"\u003e`auth_token`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"clusterId":{"type":"string","description":"The ID of the cluster.\n"},"clusterName":{"type":"string","description":"The name of the cluster.\n"},"clusterType":{"type":"string","description":"The type of the cluster.\n"},"grafanaInstanceId":{"type":"string","description":"The ID of the Grafana workspace.\n"},"httpApiInterUrl":{"type":"string","description":"(Available since v1.214.0) The public URL for the HTTP API. **Note:** \u003cspan pulumi-lang-nodejs=\"`httpApiInterUrl`\" pulumi-lang-dotnet=\"`HttpApiInterUrl`\" pulumi-lang-go=\"`httpApiInterUrl`\" pulumi-lang-python=\"`http_api_inter_url`\" pulumi-lang-yaml=\"`httpApiInterUrl`\" pulumi-lang-java=\"`httpApiInterUrl`\"\u003e`http_api_inter_url`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"httpApiIntraUrl":{"type":"string","description":"(Available since v1.214.0) The internal URL for the HTTP API. **Note:** \u003cspan pulumi-lang-nodejs=\"`httpApiIntraUrl`\" pulumi-lang-dotnet=\"`HttpApiIntraUrl`\" pulumi-lang-go=\"`httpApiIntraUrl`\" pulumi-lang-python=\"`http_api_intra_url`\" pulumi-lang-yaml=\"`httpApiIntraUrl`\" pulumi-lang-java=\"`httpApiIntraUrl`\"\u003e`http_api_intra_url`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"id":{"type":"string","description":"The ID of the Prometheus.\n"},"pushGateWayInterUrl":{"type":"string","description":"(Available since v1.214.0) The public URL for Pushgateway. **Note:** \u003cspan pulumi-lang-nodejs=\"`pushGateWayInterUrl`\" pulumi-lang-dotnet=\"`PushGateWayInterUrl`\" pulumi-lang-go=\"`pushGateWayInterUrl`\" pulumi-lang-python=\"`push_gate_way_inter_url`\" pulumi-lang-yaml=\"`pushGateWayInterUrl`\" pulumi-lang-java=\"`pushGateWayInterUrl`\"\u003e`push_gate_way_inter_url`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"pushGateWayIntraUrl":{"type":"string","description":"(Available since v1.214.0) The internal URL for Pushgateway. **Note:** \u003cspan pulumi-lang-nodejs=\"`pushGateWayIntraUrl`\" pulumi-lang-dotnet=\"`PushGateWayIntraUrl`\" pulumi-lang-go=\"`pushGateWayIntraUrl`\" pulumi-lang-python=\"`push_gate_way_intra_url`\" pulumi-lang-yaml=\"`pushGateWayIntraUrl`\" pulumi-lang-java=\"`pushGateWayIntraUrl`\"\u003e`push_gate_way_intra_url`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"remoteReadInterUrl":{"type":"string","description":"(Available since v1.214.0) The public URL for remote read. **Note:** \u003cspan pulumi-lang-nodejs=\"`remoteReadInterUrl`\" pulumi-lang-dotnet=\"`RemoteReadInterUrl`\" pulumi-lang-go=\"`remoteReadInterUrl`\" pulumi-lang-python=\"`remote_read_inter_url`\" pulumi-lang-yaml=\"`remoteReadInterUrl`\" pulumi-lang-java=\"`remoteReadInterUrl`\"\u003e`remote_read_inter_url`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"remoteReadIntraUrl":{"type":"string","description":"(Available since v1.214.0) The internal URL for remote read. **Note:** \u003cspan pulumi-lang-nodejs=\"`remoteReadIntraUrl`\" pulumi-lang-dotnet=\"`RemoteReadIntraUrl`\" pulumi-lang-go=\"`remoteReadIntraUrl`\" pulumi-lang-python=\"`remote_read_intra_url`\" pulumi-lang-yaml=\"`remoteReadIntraUrl`\" pulumi-lang-java=\"`remoteReadIntraUrl`\"\u003e`remote_read_intra_url`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"remoteWriteInterUrl":{"type":"string","description":"(Available since v1.214.0) The public URL for remote write. **Note:** \u003cspan pulumi-lang-nodejs=\"`remoteWriteInterUrl`\" pulumi-lang-dotnet=\"`RemoteWriteInterUrl`\" pulumi-lang-go=\"`remoteWriteInterUrl`\" pulumi-lang-python=\"`remote_write_inter_url`\" pulumi-lang-yaml=\"`remoteWriteInterUrl`\" pulumi-lang-java=\"`remoteWriteInterUrl`\"\u003e`remote_write_inter_url`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"remoteWriteIntraUrl":{"type":"string","description":"(Available since v1.214.0) The internal URL for remote write. **Note:** \u003cspan pulumi-lang-nodejs=\"`remoteWriteIntraUrl`\" pulumi-lang-dotnet=\"`RemoteWriteIntraUrl`\" pulumi-lang-go=\"`remoteWriteIntraUrl`\" pulumi-lang-python=\"`remote_write_intra_url`\" pulumi-lang-yaml=\"`remoteWriteIntraUrl`\" pulumi-lang-java=\"`remoteWriteIntraUrl`\"\u003e`remote_write_intra_url`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n"},"subClustersJson":{"type":"string","description":"The child instance json string of the globalView instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchId":{"type":"string","description":"The ID of the VSwitch.\n"}},"type":"object","required":["authToken","clusterId","clusterName","clusterType","grafanaInstanceId","httpApiInterUrl","httpApiIntraUrl","id","pushGateWayInterUrl","pushGateWayIntraUrl","remoteReadInterUrl","remoteReadIntraUrl","remoteWriteInterUrl","remoteWriteIntraUrl","resourceGroupId","securityGroupId","subClustersJson","tags","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:arms/getRemoteWritesRemoteWrite:getRemoteWritesRemoteWrite":{"properties":{"clusterId":{"type":"string","description":"The ID of the Prometheus instance.\n"},"id":{"type":"string","description":"The ID of the Remote Write. It formats as `\u003ccluster_id\u003e:\u003cremote_write_name\u003e`.\n"},"remoteWriteName":{"type":"string","description":"The name of the Remote Write configuration item.\n"},"remoteWriteYaml":{"type":"string","description":"The details of the Remote Write configuration item. The value is in the YAML format.\n"}},"type":"object","required":["clusterId","id","remoteWriteName","remoteWriteYaml"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:bastionhost/InstanceAdAuthServer:InstanceAdAuthServer":{"properties":{"account":{"type":"string","description":"The username of the account that is used for the AD server.\n"},"baseDn":{"type":"string","description":"The Base distinguished name (DN).\n"},"domain":{"type":"string","description":"The domain on the AD server.\n"},"emailMapping":{"type":"string","description":"The field that is used to indicate the email address of a user on the AD server.\n"},"filter":{"type":"string","description":"The condition that is used to filter users.\n"},"isSsl":{"type":"boolean","description":"Specifies whether to support SSL.\n"},"mobileMapping":{"type":"string","description":"The field that is used to indicate the mobile phone number of a user on the AD server.\n"},"nameMapping":{"type":"string","description":"The field that is used to indicate the name of a user on the AD server.\n"},"password":{"type":"string","description":"The password of the account that is used for the AD server.\n","secret":true},"port":{"type":"integer","description":"The port that is used to access the AD server.\n"},"server":{"type":"string","description":"The address of the AD server.\n"},"standbyServer":{"type":"string","description":"The address of the secondary AD server.\n"}},"type":"object","required":["account","baseDn","domain","isSsl","port","server"]},"alicloud:bastionhost/InstanceLdapAuthServer:InstanceLdapAuthServer":{"properties":{"account":{"type":"string","description":"The username of the account that is used for the LDAP server.\n"},"baseDn":{"type":"string","description":"The Base distinguished name (DN).\n"},"emailMapping":{"type":"string","description":"The field that is used to indicate the email address of a user on the LDAP server.\n"},"filter":{"type":"string","description":"The condition that is used to filter users.\n"},"isSsl":{"type":"boolean","description":"Specifies whether to support SSL.\n"},"loginNameMapping":{"type":"string","description":"The field that is used to indicate the logon name of a user on the LDAP server.\n"},"mobileMapping":{"type":"string","description":"The field that is used to indicate the mobile phone number of a user on the LDAP server.\n"},"nameMapping":{"type":"string","description":"The field that is used to indicate the name of a user on the LDAP server.\n"},"password":{"type":"string","description":"The password of the account that is used for the LDAP server.\n","secret":true},"port":{"type":"integer","description":"The port that is used to access the LDAP server.\n"},"server":{"type":"string","description":"The address of the LDAP server.\n"},"standbyServer":{"type":"string","description":"The address of the secondary LDAP server.\n"}},"type":"object","required":["account","baseDn","port","server"]},"alicloud:bastionhost/getHostAccountsAccount:getHostAccountsAccount":{"properties":{"hasPassword":{"type":"boolean","description":"Whether to set a new password.\n"},"hostAccountId":{"type":"string","description":"Hosting account ID.\n"},"hostAccountName":{"type":"string","description":"Specify the new hosting account's name, support the longest 128 characters.\n"},"hostId":{"type":"string","description":"Specifies the database where you want to create your hosting account's host ID.\n"},"id":{"type":"string","description":"The ID of the Host Account.\n"},"instanceId":{"type":"string","description":"Specifies the database where you want to create your hosting account's host bastion host ID of.\n"},"privateKeyFingerprint":{"type":"string","description":"The situation where the private keys of the fingerprint information.\n"},"protocolName":{"type":"string","description":"Specify the new hosting account of the agreement name. Valid values: USING SSH and RDP.\n"}},"type":"object","required":["hasPassword","hostAccountId","hostAccountName","hostId","id","instanceId","privateKeyFingerprint","protocolName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:bastionhost/getHostGroupsGroup:getHostGroupsGroup":{"properties":{"comment":{"type":"string","description":"Specify the New Host Group of Notes, Supports up to 500 Characters.\n"},"hostGroupId":{"type":"string","description":"Host Group ID.\n"},"hostGroupName":{"type":"string","description":"Specify the New Host Group Name, Supports up to 128 Characters.\n"},"id":{"type":"string","description":"The ID of the Host Group.\n"},"instanceId":{"type":"string","description":"Specify the New Host Group Where the Bastion Host ID of.\n"}},"type":"object","required":["comment","hostGroupId","hostGroupName","id","instanceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:bastionhost/getHostShareKeysKey:getHostShareKeysKey":{"properties":{"hostShareKeyId":{"type":"string","description":"The first ID of the resource.\n"},"hostShareKeyName":{"type":"string","description":"The name of the host shared key.\n"},"id":{"type":"string","description":"The ID of the Host Share Key.\n"},"instanceId":{"type":"string","description":"The ID of the Bastion instance.\n"},"privateKeyFingerPrint":{"type":"string","description":"The fingerprint of the private key.\n"}},"type":"object","required":["hostShareKeyId","hostShareKeyName","id","instanceId","privateKeyFingerPrint"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:bastionhost/getHostsHost:getHostsHost":{"properties":{"activeAddressType":{"type":"string","description":"Specify the new create a host of address types. Valid values: Public: the IP address of a Public network Private: Private network address.\n"},"comment":{"type":"string","description":"Specify a host of notes, supports up to 500 characters.\n"},"hostId":{"type":"string","description":"The host ID.\n"},"hostName":{"type":"string","description":"Specify the new create a host name of the supports up to 128 characters.\n"},"hostPrivateAddress":{"type":"string","description":"Specify the new create a host of the private network address, it is possible to use the domain name or IP ADDRESS.\n"},"hostPublicAddress":{"type":"string","description":"Specify the new create a host of the IP address of a public network, it is possible to use the domain name or IP ADDRESS.\n"},"id":{"type":"string","description":"The ID of the Host.\n"},"instanceId":{"type":"string","description":"Specify the new create a host where the Bastion host ID of.\n"},"osType":{"type":"string","description":"Specify the new create the host's operating system. Valid values: Linux Windows.\n"},"protocols":{"type":"array","items":{"$ref":"#/types/alicloud:bastionhost/getHostsHostProtocol:getHostsHostProtocol"},"description":"The host of the protocol information.\n"},"source":{"type":"string","description":"Specify the new create a host of source. Valid values: Local: localhost Ecs:ECS instance Rds:RDS exclusive cluster host.\n"},"sourceInstanceId":{"type":"string","description":"Specify the newly created ECS instance ID or dedicated cluster host ID.\n"}},"type":"object","required":["activeAddressType","comment","hostId","hostName","hostPrivateAddress","hostPublicAddress","id","instanceId","osType","protocols","source","sourceInstanceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:bastionhost/getHostsHostProtocol:getHostsHostProtocol":{"properties":{"hostFingerPrint":{"type":"string","description":"Host fingerprint information, it is possible to uniquely identify a host.\n"},"port":{"type":"integer","description":"Host the service port of the RDS.\n"},"protocolName":{"type":"string","description":"The host uses the protocol name.\n"}},"type":"object","required":["hostFingerPrint","port","protocolName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:bastionhost/getInstancesInstance:getInstancesInstance":{"properties":{"bandwidth":{"type":"string","description":"The bandwidth of Cloud Bastionhost instance.\n"},"description":{"type":"string","description":"The instance's remark.\n"},"id":{"type":"string","description":"The instance's id.\n"},"instanceStatus":{"type":"string","description":"The instance's status.\n"},"licenseCode":{"type":"string","description":"The instance's license code.\n"},"privateDomain":{"type":"string","description":"The instance's private domain name.\n"},"publicDomain":{"type":"string","description":"The instance's public domain name.\n"},"publicNetworkAccess":{"type":"boolean","description":"The instance's public network access configuration.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The instance's security group configuration.\n"},"storage":{"type":"string","description":"The storage of Cloud Bastionhost instance in TB.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the bastionhost instance.\n"},"userVswitchId":{"type":"string","description":"The instance's vSwitch ID.\n"}},"type":"object","required":["bandwidth","description","id","instanceStatus","licenseCode","privateDomain","publicDomain","publicNetworkAccess","securityGroupIds","storage","tags","userVswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:bastionhost/getUserGroupsGroup:getUserGroupsGroup":{"properties":{"comment":{"type":"string","description":"Specify the New Group of Remark Information. Supports up to 500 Characters.\n"},"id":{"type":"string","description":"The ID of the User Group.\n"},"instanceId":{"type":"string","description":"Specify the New Group of the Bastion Host of Instance Id.\n"},"userGroupId":{"type":"string","description":"The User Group ID.\n"},"userGroupName":{"type":"string","description":"Specify the New Group Name. Supports up to 128 Characters.\n"}},"type":"object","required":["comment","id","instanceId","userGroupId","userGroupName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:bastionhost/getUsersUser:getUsersUser":{"properties":{"comment":{"type":"string","description":"Specify the New of the User That Created the Remark Information. Supports up to 500 Characters.\n"},"displayName":{"type":"string","description":"Specify the New Created the User's Display Name. Supports up to 128 Characters.\n"},"email":{"type":"string","description":"Specify the New User's Mailbox.\n"},"id":{"type":"string","description":"The ID of the User.\n"},"instanceId":{"type":"string","description":"You Want to Query the User the Bastion Host ID of.\n"},"mobile":{"type":"string","description":"Specify the New of the User That Created a Different Mobile Phone Number from Your.\n"},"mobileCountryCode":{"type":"string","description":"Specify the New Create User Mobile Phone Number of the International Domain Name. The Default Value Is the CN Value: CN: Mainland China (+86) HK: hong Kong, China (+852) Mo: Macau, China (+853) TW: Taiwan, China (+886) ru: Russian (+7) SG: Singapore (+65) My: malaysia (+60) ID: Indonesia (+62) De: Germany (+49) AU: Australia (+61) US: United States (+1) AE: dubai (+971) JP: Japan (+81) Introducing the Long-Range GB: United Kingdom (+44) in: India (+91) KR: South Korea (+82) Ph: philippines (+63) Ch: Switzerland (+41) Se: Sweden (+46).\n"},"source":{"type":"string","description":"Specify the New of the User That Created the Source. Valid Values: Local: Local User RAM: Ram User.\n"},"sourceUserId":{"type":"string","description":"Specify the Newly Created User Is Uniquely Identified. Indicates That the Parameter Is a Bastion Host Corresponding to the User with the Ram User's Unique Identifier. The Newly Created User Source Grant Permission to a RAM User (That Is, Source Used as a Ram), this Parameter Is Required. You Can Call Access Control of Listusers Interface from the Return Data Userid to Obtain the Parameters.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"userId":{"type":"string","description":"The User ID.\n"},"userName":{"type":"string","description":"Specify the New User Name. This Parameter Is Only by Letters, Lowercase Letters, Numbers, and Underscores (_), Supports up to 128 Characters.\n"}},"type":"object","required":["comment","displayName","email","id","instanceId","mobile","mobileCountryCode","source","sourceUserId","status","userId","userName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:bp/StudioApplicationInstance:StudioApplicationInstance":{"properties":{"id":{"type":"string","description":"The resource ID in terraform of Application.\n","willReplaceOnChanges":true},"nodeName":{"type":"string","description":"The name of the instance.\n","willReplaceOnChanges":true},"nodeType":{"type":"string","description":"The type of the instance.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:bp/getStudioApplicationsApplication:getStudioApplicationsApplication":{"properties":{"applicationId":{"type":"string","description":"The ID of the Application.\n"},"applicationName":{"type":"string","description":"The name of the Application.\n"},"createTime":{"type":"string","description":"The creation time of the Application.\n"},"id":{"type":"string","description":"The ID of the Application.\n"},"imageUrl":{"type":"string","description":"The image url of the Application.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the Application. Valid values: \u003cspan pulumi-lang-nodejs=\"`success`\" pulumi-lang-dotnet=\"`Success`\" pulumi-lang-go=\"`success`\" pulumi-lang-python=\"`success`\" pulumi-lang-yaml=\"`success`\" pulumi-lang-java=\"`success`\"\u003e`success`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`release`\" pulumi-lang-dotnet=\"`Release`\" pulumi-lang-go=\"`release`\" pulumi-lang-python=\"`release`\" pulumi-lang-yaml=\"`release`\" pulumi-lang-java=\"`release`\"\u003e`release`\u003c/span\u003e.\n"},"topoUrl":{"type":"string","description":"The topo url of the Application.\n"}},"type":"object","required":["applicationId","applicationName","createTime","id","imageUrl","resourceGroupId","status","topoUrl"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:brain/getIndustrialPidLoopsLoop:getIndustrialPidLoopsLoop":{"properties":{"id":{"type":"string","description":"The ID of the Pid Loop.\n"},"pidLoopConfiguration":{"type":"string"},"pidLoopDcsType":{"type":"string","description":"The dcs type of Pid Loop.\n"},"pidLoopDesc":{"type":"string"},"pidLoopId":{"type":"string","description":"The ID of the Pid Loop.\n"},"pidLoopIsCrucial":{"type":"boolean","description":"Whether is crucial Pid Loop.\n"},"pidLoopName":{"type":"string","description":"The name of Pid Loop.\n"},"pidLoopType":{"type":"string","description":"The type of Pid Loop.\n"},"pidProjectId":{"type":"string","description":"The pid project id.\n"},"status":{"type":"string","description":"The status of Pid Loop.\n"}},"type":"object","required":["id","pidLoopConfiguration","pidLoopDcsType","pidLoopDesc","pidLoopId","pidLoopIsCrucial","pidLoopName","pidLoopType","pidProjectId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:brain/getIndustrialPidOrganizationsOrganization:getIndustrialPidOrganizationsOrganization":{"properties":{"id":{"type":"string","description":"The ID of the Pid Organization.\n"},"parentPidOrganizationId":{"type":"string","description":"The parent organization id.\n"},"pidOrganizationId":{"type":"string","description":"The organization id.\n"},"pidOrganizationLevel":{"type":"integer","description":"The organization level.\n"},"pidOrganizationName":{"type":"string","description":"The organization name.\n"}},"type":"object","required":["id","parentPidOrganizationId","pidOrganizationId","pidOrganizationLevel","pidOrganizationName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:brain/getIndustrialPidProjectsProject:getIndustrialPidProjectsProject":{"properties":{"id":{"type":"string","description":"The ID of the Pid Project.\n"},"pidOrganizationId":{"type":"string","description":"The ID of Pid Organization.\n"},"pidProjectDesc":{"type":"string","description":"The description of Pid Project.\n"},"pidProjectId":{"type":"string","description":"The ID of Pid Project.\n"},"pidProjectName":{"type":"string","description":"The name of Pid Project.\n"}},"type":"object","required":["id","pidOrganizationId","pidProjectDesc","pidProjectId","pidProjectName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:bss/getOpenApiPricingModulesModule:getOpenApiPricingModulesModule":{"properties":{"code":{"type":"string","description":"Property Code.\n"},"id":{"type":"string","description":"A list of Price Module IDs.\n"},"pricingModuleName":{"type":"string","description":"Attribute name.\n"},"productCode":{"type":"string","description":"The product code.\n"},"productType":{"type":"string","description":"The product type.\n"},"subscriptionType":{"type":"string","description":"Subscription type. Value:\n* Subscription: Prepaid.\n* PayAsYouGo: postpaid.\n"},"unit":{"type":"string","description":"Attribute unit.\n"},"values":{"type":"array","items":{"$ref":"#/types/alicloud:bss/getOpenApiPricingModulesModuleValue:getOpenApiPricingModulesModuleValue"},"description":"Property.\n"}},"type":"object","required":["code","id","pricingModuleName","productCode","productType","subscriptionType","unit","values"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:bss/getOpenApiPricingModulesModuleValue:getOpenApiPricingModulesModuleValue":{"properties":{"name":{"type":"string","description":"The module Code corresponds to the attribute value.\n"},"remark":{"type":"string","description":"Module value description information.\n"},"type":{"type":"string","description":"The attribute value type corresponding to the module Code. Value:\n* single_float: single value type.\n* range_float: range value type.\n"},"value":{"type":"string","description":"The module Code corresponds to the attribute value.\n\u003e format 1024-1024000 when Type = range_float: 1024 means from 1024 to 1024000, step size 1024.\n"}},"type":"object","required":["name","remark","type","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:bss/getOpenApiProductsProduct:getOpenApiProductsProduct":{"properties":{"id":{"type":"string","description":"The ID of the product. The value is formulated as `\u003cproduct_code\u003e:\u003cproduct_type\u003e:\u003csubscription_type\u003e`.\n"},"productCode":{"type":"string","description":"Product code.\n"},"productName":{"type":"string","description":"Product name.\n"},"productType":{"type":"string","description":"Type of product.\n"},"subscriptionType":{"type":"string","description":"Subscription type. Value:\n* Subscription: Prepaid.\n* PayAsYouGo: postpaid.\n"}},"type":"object","required":["id","productCode","productName","productType","subscriptionType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cas/getCertificatesCertificate:getCertificatesCertificate":{"properties":{"buyInAliyun":{"type":"boolean","description":"The cert is buy from aliyun or not.\n"},"cert":{"type":"string"},"certId":{"type":"string"},"certificateName":{"type":"string"},"city":{"type":"string","description":"The cert's city.\n"},"common":{"type":"string","description":"The cert's common name.\n"},"country":{"type":"string","description":"The cert's country.\n"},"endDate":{"type":"string","description":"The cert's not valid after time.\n"},"expired":{"type":"boolean","description":"The cert is expired or not.\n"},"fingerprint":{"type":"string"},"id":{"type":"string","description":"The cert's id.\n"},"issuer":{"type":"string","description":"The cert's .\n"},"key":{"type":"string"},"name":{"type":"string","description":"The cert's name.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.129.0. New field \u003cspan pulumi-lang-nodejs=\"`certificateName`\" pulumi-lang-dotnet=\"`CertificateName`\" pulumi-lang-go=\"`certificateName`\" pulumi-lang-python=\"`certificate_name`\" pulumi-lang-yaml=\"`certificateName`\" pulumi-lang-java=\"`certificateName`\"\u003e`certificate_name`\u003c/span\u003e instead."},"orgName":{"type":"string","description":"The cert's organization.\n"},"province":{"type":"string","description":"The cert's province.\n"},"sans":{"type":"string","description":"The cert's subject alternative name.\n"},"startDate":{"type":"string","description":"The cert's not valid before time.\n"}},"type":"object","required":["buyInAliyun","cert","certId","certificateName","city","common","country","endDate","expired","fingerprint","id","issuer","key","name","orgName","province","sans","startDate"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cas/getServiceCertificatesCertificate:getServiceCertificatesCertificate":{"properties":{"buyInAliyun":{"type":"boolean","description":"Whether the certificate was purchased from Aliyun. **Note:** From version 1.232.0, \u003cspan pulumi-lang-nodejs=\"`buyInAliyun`\" pulumi-lang-dotnet=\"`BuyInAliyun`\" pulumi-lang-go=\"`buyInAliyun`\" pulumi-lang-python=\"`buy_in_aliyun`\" pulumi-lang-yaml=\"`buyInAliyun`\" pulumi-lang-java=\"`buyInAliyun`\"\u003e`buy_in_aliyun`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"cert":{"type":"string","description":"The Cert of the certificate. **Note:** \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"certId":{"type":"string","description":"The ID of the certificate.\n"},"certificateName":{"type":"string","description":"The name of the certificate.\n"},"city":{"type":"string","description":"The city in which the organization is located.\n"},"common":{"type":"string","description":"The parent domain name of the certificate.\n"},"country":{"type":"string","description":"The code of the country in which the organization is located.\n"},"endDate":{"type":"string","description":"The time at which the certificate expires.\n"},"expired":{"type":"boolean","description":"Whether the certificate has expired.\n"},"fingerprint":{"type":"string","description":"The fingerprint of the certificate.\n"},"id":{"type":"string","description":"The ID of the Ssl Certificates Service Certificate.\n"},"issuer":{"type":"string","description":"The issuer of the certificate.\n"},"key":{"type":"string","description":"The Key of the certificate. **Note:** \u003cspan pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\"\u003e`key`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"name":{"type":"string","description":"(Deprecated since v1.129.0) The name of the certificate. **Note:** Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.129.0. New field \u003cspan pulumi-lang-nodejs=\"`certificateName`\" pulumi-lang-dotnet=\"`CertificateName`\" pulumi-lang-go=\"`certificateName`\" pulumi-lang-python=\"`certificate_name`\" pulumi-lang-yaml=\"`certificateName`\" pulumi-lang-java=\"`certificateName`\"\u003e`certificate_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.129.0. New field \u003cspan pulumi-lang-nodejs=\"`certificateName`\" pulumi-lang-dotnet=\"`CertificateName`\" pulumi-lang-go=\"`certificateName`\" pulumi-lang-python=\"`certificate_name`\" pulumi-lang-yaml=\"`certificateName`\" pulumi-lang-java=\"`certificateName`\"\u003e`certificate_name`\u003c/span\u003e instead."},"orgName":{"type":"string","description":"The name of the organization that is associated with the certificate.\n"},"province":{"type":"string","description":"The province or autonomous region in which the organization is located.\n"},"sans":{"type":"string","description":"All domain names that are bound to the certificate.\n"},"startDate":{"type":"string","description":"The time at which the certificate starts to take effect.\n"}},"type":"object","required":["buyInAliyun","cert","certId","certificateName","city","common","country","endDate","expired","fingerprint","id","issuer","key","name","orgName","province","sans","startDate"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cassandra/getBackupPlansPlan:getBackupPlansPlan":{"properties":{"active":{"type":"boolean","description":"Specifies whether to activate the backup plan.\n"},"backupPeriod":{"type":"string","description":"The backup cycle. Valid values: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday.\n"},"backupTime":{"type":"string","description":"The start time of the backup task each day. The time is displayed in UTC and denoted by Z.\n"},"clusterId":{"type":"string","description":"The ID of the cluster for the backup.\n"},"createTime":{"type":"string","description":"The time when the backup plan was created.\n"},"dataCenterId":{"type":"string","description":"The ID of the data center for the backup in the cluster.\n"},"id":{"type":"string","description":"The ID of the Backup Plan.\n"},"retentionPeriod":{"type":"integer","description":"The duration for which you want to retain the backup. Valid values: 1 to 30. Unit: days.\n"}},"type":"object","required":["active","backupPeriod","backupTime","clusterId","createTime","dataCenterId","id","retentionPeriod"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cassandra/getClustersCluster:getClustersCluster":{"properties":{"clusterId":{"type":"string","description":"The ID of the Cassandra cluster.\n"},"clusterName":{"type":"string","description":"The name of the Cassandra cluster.\n"},"createdTime":{"type":"string"},"dataCenterCount":{"type":"integer","description":"The count of data centers\n"},"expireTime":{"type":"string","description":"The expire time of the cluster.\n"},"id":{"type":"string","description":"The ID of the Cassandra cluster.\n"},"lockMode":{"type":"string","description":"The lock mode of the cluster.\n"},"majorVersion":{"type":"string","description":"The major version of the cluster.\n"},"minorVersion":{"type":"string","description":"The minor version of the cluster.\n"},"payType":{"type":"string","description":"Billing method. Value options are `Subscription` for Pay-As-You-Go and `PayAsYouGo` for yearly or monthly subscription.\n"},"status":{"type":"string","description":"Status of the cluster.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object","required":["clusterId","clusterName","createdTime","dataCenterCount","expireTime","id","lockMode","majorVersion","minorVersion","payType","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cassandra/getDataCentersCenter:getDataCentersCenter":{"properties":{"clusterId":{"type":"string","description":"The cluster id of dataCenters belongs to.\n"},"commodityInstance":{"type":"string","description":"The commodity ID of the Cassandra dataCenter.\n"},"createdTime":{"type":"string"},"dataCenterId":{"type":"string","description":"The id of the Cassandra dataCenter.\n"},"dataCenterName":{"type":"string","description":"The name of the Cassandra dataCenter.\n"},"diskSize":{"type":"integer","description":"One node disk size, unit:GB.\n"},"diskType":{"type":"string","description":"Cloud_ssd or cloud_efficiency.\n"},"expireTime":{"type":"string","description":"The expire time of the dataCenter.\n"},"instanceType":{"type":"string","description":"The instance type of the Cassandra dataCenter, eg: cassandra.c.large.\n"},"lockMode":{"type":"string","description":"The lock mode of the dataCenter.\n"},"nodeCount":{"type":"integer","description":"The node count of dataCenter.\n"},"payType":{"type":"string","description":"Billing method. Value options are `Subscription` for Pay-As-You-Go and `PayAsYouGo` for yearly or monthly subscription.\n"},"status":{"type":"string","description":"Status of the dataCenter.\n"},"vpcId":{"type":"string","description":"VPC ID the dataCenter belongs to.\n"},"vswitchId":{"type":"string","description":"VSwitch ID the dataCenter belongs to.\n"},"zoneId":{"type":"string","description":"Zone ID the dataCenter belongs to.\n"}},"type":"object","required":["clusterId","commodityInstance","createdTime","dataCenterId","dataCenterName","diskSize","diskType","expireTime","instanceType","lockMode","nodeCount","payType","status","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cassandra/getZonesZone:getZonesZone":{"properties":{"id":{"type":"string","description":"ID of the zone.\n"},"multiZoneIds":{"type":"array","items":{"type":"string"},"description":"A list of zone ids in which the multi zone.\n"}},"type":"object","required":["id","multiZoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cddc/DedicatedPropreHostEcsClassList:DedicatedPropreHostEcsClassList":{"properties":{"dataDiskPerformanceLevel":{"type":"string","description":"Data disk PL level.\n","willReplaceOnChanges":true},"diskCapacity":{"type":"integer","description":"The capacity of the data disk.\n","willReplaceOnChanges":true},"diskCount":{"type":"integer","description":"Number of mounted data disks.\n","willReplaceOnChanges":true},"diskType":{"type":"string","description":"Data disk type, value range:\n- **cloud_essd**: the ESSD cloud disk.\n- **cloud_ssd**: SSD cloud disk.\n- **cloud_efficiency**: The ultra cloud disk.\n- **cloud_auto**: ESSD AutoPL cloud disk.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"ECS specifications.\n","willReplaceOnChanges":true},"sysDiskCapacity":{"type":"integer","description":"System disk capacity.\n","willReplaceOnChanges":true},"sysDiskType":{"type":"string","description":"System disk type, value:\n- **cloud_essd**: the ESSD cloud disk.\n- **cloud_ssd**: SSD cloud disk.\n- **cloud_efficiency**: The ultra cloud disk.\n- **cloud_auto**: ESSD AutoPL cloud disk.\n","willReplaceOnChanges":true},"systemDiskPerformanceLevel":{"type":"string","description":"System disk PL level.\n","willReplaceOnChanges":true}},"type":"object","required":["instanceType","sysDiskCapacity","sysDiskType"]},"alicloud:cddc/getDedicatedHostAccountsAccount:getDedicatedHostAccountsAccount":{"properties":{"accountName":{"type":"string","description":"The name of the Dedicated host account.\n"},"dedicatedHostId":{"type":"string","description":"The ID of the Dedicated host.\n"},"id":{"type":"string","description":"The ID of the Dedicated Host Account. The value formats as `\u003cdedicated_host_id\u003e:\u003caccount_name\u003e`.\n"}},"type":"object","required":["accountName","dedicatedHostId","id"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cddc/getDedicatedHostGroupsGroup:getDedicatedHostGroupsGroup":{"properties":{"allocationPolicy":{"type":"string","description":"The policy that is used to allocate resources in the dedicated cluster. Valid values:`Evenly`,`Intensively`\n"},"bastionInstanceId":{"type":"string","description":"The Bastion Instance id of the Dedicated Host Group.\n"},"cpuAllocateRation":{"type":"number","description":"The CPU overcommitment ratio of the dedicated cluster. If you set this parameter to 200, the CPU resources that can be allocated are twice as many as the CPU resources that are provided. This maximizes the CPU utilization. Valid values: 100 to 300. Default value: 200.\n"},"cpuAllocatedAmount":{"type":"number","description":"The CPU Allocated Amount of the Dedicated Host Group.\n"},"cpuAllocationRatio":{"type":"integer","description":"The CPU overcommitment ratio of the dedicated cluster.Valid values: 100 to 300. Default value: 200.\n"},"createTime":{"type":"string","description":"The Created Time of the Dedicated Host Group.\n"},"dedicatedHostCountGroupByHostTypes":{"type":"array","items":{"$ref":"#/types/alicloud:cddc/getDedicatedHostGroupsGroupDedicatedHostCountGroupByHostType:getDedicatedHostGroupsGroupDedicatedHostCountGroupByHostType"},"description":"The Dedicated Host Count Group by Host Type of the Dedicated Host Group.\n"},"dedicatedHostGroupDesc":{"type":"string","description":"The name of the dedicated cluster. The name must be 1 to 64 characters in length and can contain letters, digits, underscores (_), and hyphens (-). It must start with a letter.\n"},"dedicatedHostGroupId":{"type":"string","description":"Dedicated Host Group ID.\n"},"deployType":{"type":"string","description":"The Deployment Type of the Dedicated Host Group.\n"},"diskAllocateRation":{"type":"number","description":"The storage overcommitment ratio of the dedicated cluster.Valid values: 100 to 300. Default value: 200.\n"},"diskAllocatedAmount":{"type":"number","description":"The Disk Allocated Amount of the Dedicated Host Group.\n"},"diskAllocationRatio":{"type":"integer","description":"The Disk Allocation Ratio of the Dedicated Host Group.\n"},"diskUsedAmount":{"type":"number","description":"The DiskUsedAmount of the Dedicated Host Group.\n"},"diskUtility":{"type":"number","description":"The DiskUtility of the Dedicated Host Group.\n"},"engine":{"type":"string","description":"Database Engine Type.The database engine of the dedicated cluster. Valid values:`Redis`, `SQLServer`, `MySQL`, `PostgreSQL`, `MongoDB`\n"},"hostNumber":{"type":"integer","description":"The Total Host Number  of the Dedicated Host Group.\n"},"hostReplacePolicy":{"type":"string","description":"The policy based on which the system handles host failures. Valid values:`Auto`,`Manual`\n"},"id":{"type":"string","description":"The ID of the Dedicated Host Group.\n"},"instanceNumber":{"type":"integer","description":"The Total Instance Number of the Dedicated Host Group.\n"},"memAllocateRation":{"type":"number","description":"The maximum memory usage of each host in the dedicated cluster.Valid values: 0 to 90. Default value: 90.\n"},"memAllocatedAmount":{"type":"number","description":"The MemAllocatedAmount of the Dedicated Host Group.\n"},"memAllocationRatio":{"type":"integer","description":"The Memory Allocation Ratio of the Dedicated Host Group.\n"},"memUsedAmount":{"type":"number","description":"The MemUsedAmount of the Dedicated Host Group.\n"},"memUtility":{"type":"number","description":"The Mem Utility of the Dedicated Host Group.\n"},"text":{"type":"string","description":"The Text of the Dedicated Host Group.\n"},"vpcId":{"type":"string","description":"The virtual private cloud (VPC) ID of the dedicated cluster.\n"},"zoneIdLists":{"type":"array","items":{"$ref":"#/types/alicloud:cddc/getDedicatedHostGroupsGroupZoneIdList:getDedicatedHostGroupsGroupZoneIdList"},"description":"The ZoneIDList of the Dedicated Host Group.\n"}},"type":"object","required":["allocationPolicy","bastionInstanceId","cpuAllocateRation","cpuAllocatedAmount","cpuAllocationRatio","createTime","dedicatedHostCountGroupByHostTypes","dedicatedHostGroupDesc","dedicatedHostGroupId","deployType","diskAllocateRation","diskAllocatedAmount","diskAllocationRatio","diskUsedAmount","diskUtility","engine","hostNumber","hostReplacePolicy","id","instanceNumber","memAllocateRation","memAllocatedAmount","memAllocationRatio","memUsedAmount","memUtility","text","vpcId","zoneIdLists"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cddc/getDedicatedHostGroupsGroupDedicatedHostCountGroupByHostType:getDedicatedHostGroupsGroupDedicatedHostCountGroupByHostType":{"properties":{"placeHolder":{"type":"string"}},"type":"object","required":["placeHolder"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cddc/getDedicatedHostGroupsGroupZoneIdList:getDedicatedHostGroupsGroupZoneIdList":{"properties":{"zoneIdLists":{"type":"array","items":{"type":"string"},"description":"The ZoneIDList of the Dedicated Host Group.\n"}},"type":"object","required":["zoneIdLists"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cddc/getDedicatedHostsHost:getDedicatedHostsHost":{"properties":{"allocationStatus":{"type":"string","description":"Specifies whether instances can be created on the host. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: Instances can be created on the host. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: Instances cannot be created on the host.\n"},"bastionInstanceId":{"type":"string","description":"The ID of the bastion host with which the host is associated.\n"},"cpuAllocationRatio":{"type":"string","description":"The numeric value of the CPU over commit ratio of the dedicated cluster.\n"},"cpuUsed":{"type":"string","description":"The number of CPU cores used by the host.\n"},"createTime":{"type":"string","description":"The time when the host was created. The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.\n"},"dedicatedHostGroupId":{"type":"string","description":"The ID of the dedicated cluster in which the host is created.\n"},"dedicatedHostId":{"type":"string","description":"The ID of the host.\n"},"diskAllocationRatio":{"type":"string","description":"The disk usage in percentage.\n"},"ecsClassCode":{"type":"string","description":"The Elastic Compute Service (ECS) instance type.\n"},"endTime":{"type":"string","description":"The time when the host expires. The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.\n"},"engine":{"type":"string","description":"The type of the database engine that is used by the host.\n"},"expiredTime":{"type":"string","description":"The time when the host expires. The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.\n"},"hostClass":{"type":"string","description":"The instance type of the host.\n"},"hostCpu":{"type":"string","description":"The number of CPU cores specified for the host. Unit: \u003cspan pulumi-lang-nodejs=\"`core`\" pulumi-lang-dotnet=\"`Core`\" pulumi-lang-go=\"`core`\" pulumi-lang-python=\"`core`\" pulumi-lang-yaml=\"`core`\" pulumi-lang-java=\"`core`\"\u003e`core`\u003c/span\u003e.\n"},"hostMem":{"type":"string","description":"The memory of the host. Unit: `GB`.\n"},"hostName":{"type":"string","description":"The name of the host.\n"},"hostStorage":{"type":"string","description":"The total storage capacity of the host. Unit: `GB`.\n"},"hostType":{"type":"string","description":"The storage type of the host.\n"},"id":{"type":"string","description":"The ID of the Dedicated Host. The value formats as `\u003cdedicated_host_group_id\u003e:\u003cdedicated_host_id\u003e`.\n"},"imageCategory":{"type":"string","description":"The image type of the host.\n"},"ipAddress":{"type":"string","description":"The IP address of the host.\n"},"memAllocationRatio":{"type":"string","description":"The memory usage in percentage.\n"},"memoryUsed":{"type":"string","description":"The amount of memory used by the host. Unit: `GB`.\n"},"openPermission":{"type":"string","description":"Indicates whether you have the OS permissions on the host. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: You do not have the OS permissions on the host. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: You have the OS permissions on the host.\n"},"status":{"type":"string","description":"The state of the host.\n"},"storageUsed":{"type":"string","description":"The storage usage of the host. Unit: `GB`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) to which the host is connected.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n"},"zoneId":{"type":"string","description":"The zone ID of the host.\n"}},"type":"object","required":["allocationStatus","bastionInstanceId","cpuAllocationRatio","cpuUsed","createTime","dedicatedHostGroupId","dedicatedHostId","diskAllocationRatio","ecsClassCode","endTime","engine","expiredTime","hostClass","hostCpu","hostMem","hostName","hostStorage","hostType","id","imageCategory","ipAddress","memAllocationRatio","memoryUsed","openPermission","status","storageUsed","tags","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cddc/getHostEcsLevelInfosInfo:getHostEcsLevelInfosInfo":{"properties":{"description":{"type":"string","description":"The description of the host ecs level info.\n"},"ecsClass":{"type":"string","description":"The instance family of the host ecs level info.\n"},"ecsClassCode":{"type":"string","description":"The Elastic Compute Service (ECS) instance type.\n"},"resClassCode":{"type":"string","description":"The ApsaraDB RDS instance type of the host ecs level info.\n"}},"type":"object","required":["description","ecsClass","ecsClassCode","resClassCode"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cddc/getZonesZone:getZonesZone":{"properties":{"id":{"type":"string","description":"The ID of the zone.\n"},"regionId":{"type":"string","description":"The ID of the region.\n"},"zoneId":{"type":"string","description":"The ID of the zone.\n"}},"type":"object","required":["id","regionId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cdn/DomainAuthConfig:DomainAuthConfig":{"properties":{"authType":{"type":"string"},"masterKey":{"type":"string"},"slaveKey":{"type":"string"},"timeout":{"type":"integer"}},"type":"object","language":{"nodejs":{"requiredOutputs":["masterKey","slaveKey"]}}},"alicloud:cdn/DomainCacheConfig:DomainCacheConfig":{"properties":{"cacheContent":{"type":"string"},"cacheId":{"type":"string"},"cacheType":{"type":"string"},"ttl":{"type":"integer"},"weight":{"type":"integer"}},"type":"object","required":["cacheContent","cacheType","ttl"],"language":{"nodejs":{"requiredOutputs":["cacheContent","cacheId","cacheType","ttl"]}}},"alicloud:cdn/DomainCertificateConfig:DomainCertificateConfig":{"properties":{"privateKey":{"type":"string","secret":true},"serverCertificate":{"type":"string","secret":true},"serverCertificateStatus":{"type":"string"}},"type":"object"},"alicloud:cdn/DomainConfigFunctionArg:DomainConfigFunctionArg":{"properties":{"argName":{"type":"string","description":"The name of arg.\n"},"argValue":{"type":"string","description":"The value of arg.\n"}},"type":"object","required":["argName","argValue"]},"alicloud:cdn/DomainHttpHeaderConfig:DomainHttpHeaderConfig":{"properties":{"headerId":{"type":"string"},"headerKey":{"type":"string"},"headerValue":{"type":"string"}},"type":"object","required":["headerKey","headerValue"],"language":{"nodejs":{"requiredOutputs":["headerId","headerKey","headerValue"]}}},"alicloud:cdn/DomainNewCertificateConfig:DomainNewCertificateConfig":{"properties":{"certId":{"type":"string","description":"The ID of the certificate. It takes effect only when CertType = cas.\n"},"certName":{"type":"string","description":"Certificate name, only flyer names are supported.\n"},"certRegion":{"type":"string","description":"The certificate region, which takes effect only when CertType = cas, supports cn-hangzhou (domestic) and ap-southeast-1 (International), and is cn-hangzhou by default.\n"},"certType":{"type":"string","description":"Certificate type. Value:\n- **upload**: upload certificate.\n- **cas**: Cloud Shield certificate.\n- **free**: free certificate.\n\u003e If the certificate type is **cas**, **PrivateKey** does not need to pass parameters.\n"},"privateKey":{"type":"string","description":"The content of the private key. If the certificate is not enabled, you do not need to enter the content of the private key. To configure the certificate, enter the content of the private key.\n","secret":true},"serverCertificate":{"type":"string","description":"The content of the security certificate. If the certificate is not enabled, you do not need to enter the content of the security certificate. Please enter the content of the certificate to configure the certificate.\n","secret":true},"serverCertificateStatus":{"type":"string","description":"Whether the HTTPS certificate is enabled. Value:\n- **on**(default): enabled.\n- **off** : not enabled.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["certId","certName","certRegion","certType","serverCertificate"]}}},"alicloud:cdn/DomainNewSource:DomainNewSource":{"properties":{"content":{"type":"string","description":"The address of source. Valid values can be ip or doaminName. Each item's \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e can not be repeated.\n"},"port":{"type":"integer","description":"The port of source. Valid values are \u003cspan pulumi-lang-nodejs=\"`443`\" pulumi-lang-dotnet=\"`443`\" pulumi-lang-go=\"`443`\" pulumi-lang-python=\"`443`\" pulumi-lang-yaml=\"`443`\" pulumi-lang-java=\"`443`\"\u003e`443`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`80`\" pulumi-lang-dotnet=\"`80`\" pulumi-lang-go=\"`80`\" pulumi-lang-python=\"`80`\" pulumi-lang-yaml=\"`80`\" pulumi-lang-java=\"`80`\"\u003e`80`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`80`\" pulumi-lang-dotnet=\"`80`\" pulumi-lang-go=\"`80`\" pulumi-lang-python=\"`80`\" pulumi-lang-yaml=\"`80`\" pulumi-lang-java=\"`80`\"\u003e`80`\u003c/span\u003e.\n"},"priority":{"type":"integer","description":"Priority of the source. Valid values are \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of the source. Valid values are \u003cspan pulumi-lang-nodejs=\"`ipaddr`\" pulumi-lang-dotnet=\"`Ipaddr`\" pulumi-lang-go=\"`ipaddr`\" pulumi-lang-python=\"`ipaddr`\" pulumi-lang-yaml=\"`ipaddr`\" pulumi-lang-java=\"`ipaddr`\"\u003e`ipaddr`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`oss`\" pulumi-lang-dotnet=\"`Oss`\" pulumi-lang-go=\"`oss`\" pulumi-lang-python=\"`oss`\" pulumi-lang-yaml=\"`oss`\" pulumi-lang-java=\"`oss`\"\u003e`oss`\u003c/span\u003e.\n"},"weight":{"type":"integer","description":"Weight of the source. Valid values are from \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e, but if type is \u003cspan pulumi-lang-nodejs=\"`ipaddr`\" pulumi-lang-dotnet=\"`Ipaddr`\" pulumi-lang-go=\"`ipaddr`\" pulumi-lang-python=\"`ipaddr`\" pulumi-lang-yaml=\"`ipaddr`\" pulumi-lang-java=\"`ipaddr`\"\u003e`ipaddr`\u003c/span\u003e, the value can only be \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\n"}},"type":"object"},"alicloud:cdn/DomainPage404Config:DomainPage404Config":{"properties":{"customPageUrl":{"type":"string"},"errorCode":{"type":"string"},"pageType":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errorCode"]}}},"alicloud:cdn/DomainParameterFilterConfig:DomainParameterFilterConfig":{"properties":{"enable":{"type":"string"},"hashKeyArgs":{"type":"array","items":{"type":"string"}}},"type":"object","language":{"nodejs":{"requiredOutputs":["hashKeyArgs"]}}},"alicloud:cdn/DomainReferConfig:DomainReferConfig":{"properties":{"allowEmpty":{"type":"string"},"referLists":{"type":"array","items":{"type":"string"}},"referType":{"type":"string"}},"type":"object","required":["referLists"]},"alicloud:cdn/getBlockedRegionsRegion:getBlockedRegionsRegion":{"properties":{"continent":{"type":"string","description":"The region to which the country belongs.\n"},"countriesAndRegions":{"type":"string","description":"National region abbreviation.\n"},"countriesAndRegionsName":{"type":"string","description":"The name of the country and region.\n"}},"type":"object","required":["continent","countriesAndRegions","countriesAndRegionsName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cdn/getRealTimeLogDeliveriesDelivery:getRealTimeLogDeliveriesDelivery":{"properties":{"domain":{"type":"string","description":"Real-Time Log Service Domain.\n"},"id":{"type":"string","description":"The ID of the Real Time Log Delivery.\n"},"logstore":{"type":"string","description":"The name of the Logstore that collects log data from Alibaba Cloud Content Delivery Network (CDN) in real time.\n"},"project":{"type":"string","description":"The name of the Log Service project that is used for real-time log delivery.\n"},"slsRegion":{"type":"string","description":"The region where the Log Service project is deployed.\n"},"status":{"type":"string","description":"The status of the real-time log delivery feature. Valid Values: \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e.\n"}},"type":"object","required":["domain","id","logstore","project","slsRegion","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/TrafficMarkingPolicyTrafficMatchRule:TrafficMarkingPolicyTrafficMatchRule":{"properties":{"addressFamily":{"type":"string","description":"IP Address Family\n"},"dstCidr":{"type":"string","description":"The destination network segment of the traffic message.\nThe flow classification matches the traffic of the destination IP address in the destination network segment. If the flow classification rule is not set, it means that the flow classification rule matches the traffic of any destination IP address.\n"},"dstPortRanges":{"type":"array","items":{"type":"integer"},"description":"The destination port of the traffic message. Valid values: **-1**, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n\nThe flow classification rule matches the traffic of the destination port number in the destination port range. If the flow classification rule is not set, it means that the flow classification rule matches the traffic of any destination port number.\n\nThe current parameter supports a maximum of 2 port numbers. The input format is described as follows:\n- If you only enter a port number, such as 1, the system defaults to match the traffic with the destination port of 1.\n- If you enter 2 port numbers, such as 1 and 200, the system defaults to match the traffic of the destination port in the range of 1 to 200.\n- If you enter 2 port numbers and one of them is - 1, the other port must also be - 1, indicating that it matches any destination port.\n"},"matchDscp":{"type":"integer","description":"The DSCP value of the traffic message. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to **63 * *.\n\nThe flow classification rule matches the flow with the specified DSCP value. If the flow classification rule is not set, it means that the flow classification rule matches the flow with any DSCP value.\n\n\u003e **NOTE:**  The current DSCP value refers to the DSCP value that the traffic message has carried before entering the cross-region connection.\n"},"protocol":{"type":"string","description":"The protocol type of the traffic message.\nStream classification rules can match traffic of multiple protocol types, such as `HTTP`, `HTTPS`, `TCP`, `UDP`, `SSH`, and **Telnet. For more protocol types, please log on to the [Cloud Enterprise Network Management Console](https://cen.console.aliyun.com/cen/list) to view.\n"},"srcCidr":{"type":"string","description":"The source network segment of the traffic message.\nThe flow classification rule matches the traffic of the source IP address in the source network segment. If the flow classification rule is not set, it means that the flow classification rule matches the traffic of any source IP address.\n"},"srcPortRanges":{"type":"array","items":{"type":"integer"},"description":"The source port of the traffic message. Valid values: **-1**, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n\nThe flow classification rule matches the traffic of the source port number in the source port range. If it is not set, it means that the flow classification rule matches the traffic of any source port number.\n\nThe current parameter supports entering up to two port numbers. The input format is described as follows:\n- If you only enter a port number, such as 1, the system defaults to match the traffic with source port 1.\n- If you enter two port numbers, such as 1 and 200, the system defaults to match the traffic with the source port in the range of 1 to 200.\n- If you enter two port numbers and one of them is - 1, the other port must also be - 1, indicating that it matches any source port.\n"},"trafficMatchRuleDescription":{"type":"string","description":"The description information of the stream classification rule.\nThe description must be 2 to 128 characters in length and can contain numbers, dashes (-), and underscores (_).\n"},"trafficMatchRuleName":{"type":"string","description":"The name of the stream classification rule.\nThe name must be 2 to 128 characters in length and can contain numbers, dashes (-), and underscores (_).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["addressFamily","dstCidr","dstPortRanges","matchDscp","protocol","srcCidr","srcPortRanges","trafficMatchRuleDescription","trafficMatchRuleName"]}}},"alicloud:cen/TransitRouterMulticastDomainOptions:TransitRouterMulticastDomainOptions":{"properties":{"igmpv2Support":{"type":"string","description":"Whether to enable IGMP function for multicast domain. Default value: \u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\"\u003e`disable`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`enable`\" pulumi-lang-dotnet=\"`Enable`\" pulumi-lang-go=\"`enable`\" pulumi-lang-python=\"`enable`\" pulumi-lang-yaml=\"`enable`\" pulumi-lang-java=\"`enable`\"\u003e`enable`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\"\u003e`disable`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["igmpv2Support"]}}},"alicloud:cen/TransitRouterVpcAttachmentZoneMapping:TransitRouterVpcAttachmentZoneMapping":{"properties":{"vswitchId":{"type":"string","description":"The ID of the vSwitch that you want to add to the VPC connection.  You can specify at most 10 vSwitches in each call.\n- If the VPC connection belongs to the current Alibaba Cloud account, you can call the [DescribeVSwitches](https://www.alibabacloud.com/help/en/doc-detail/35748.html) operation to query the IDs of the vSwitches and zones of the VPC.\n- If the VPC connection belongs to another Alibaba Cloud account, you can call the [ListGrantVSwitchesToCen](https://www.alibabacloud.com/help/en/doc-detail/427599.html) operation to query the IDs of the vSwitches and zones of the VPC.\n"},"zoneId":{"type":"string","description":"The ID of the zone that supports Enterprise Edition transit routers.  You can call the [DescribeZones](https://www.alibabacloud.com/help/en/doc-detail/36064.html) operation to query the most recent zone list.  You can specify at most 10 zones in each call.\n"}},"type":"object","required":["vswitchId","zoneId"]},"alicloud:cen/TransitRouterVpnAttachmentZone:TransitRouterVpnAttachmentZone":{"properties":{"zoneId":{"type":"string","description":"The zone ID of the read-only instance.\nYou can call the [ListTransitRouterAvailableResource](https://www.alibabacloud.com/help/en/doc-detail/261356.html) operation to query the most recent zone list.\n","willReplaceOnChanges":true}},"type":"object","required":["zoneId"]},"alicloud:cen/getBandwidthLimitsLimit:getBandwidthLimitsLimit":{"properties":{"bandwidthLimit":{"type":"integer","description":"The bandwidth limit configured for the interconnected regions communication.\n"},"instanceId":{"type":"string","description":"ID of the CEN instance.\n"},"localRegionId":{"type":"string","description":"ID of local region.\n"},"oppositeRegionId":{"type":"string","description":"ID of opposite region.\n"},"status":{"type":"string","description":"Status of the CEN Bandwidth Limit, including \"Active\" and \"Modifying\".\n"}},"type":"object","required":["bandwidthLimit","instanceId","localRegionId","oppositeRegionId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getBandwidthPackagesPackage:getBandwidthPackagesPackage":{"properties":{"bandwidth":{"type":"integer","description":"The bandwidth in Mbps of the CEN bandwidth package.\n"},"bandwidthPackageChargeType":{"type":"string","description":"The billing method, including `POSTPAY` and `PREPAY`.\n"},"businessStatus":{"type":"string","description":"Status of the CEN Bandwidth Package, including `Normal`, `FinancialLocked` and `SecurityLocked`.\n"},"cenBandwidthPackageId":{"type":"string","description":"The ID of the bandwidth package.\n"},"cenBandwidthPackageName":{"type":"string","description":"The name of the bandwidth package.\n"},"cenIds":{"type":"array","items":{"type":"string"},"description":"The list of CEN instances that are associated with the bandwidth package.\n"},"description":{"type":"string","description":"Description of the CEN Bandwidth Package.\n"},"expiredTime":{"type":"string"},"geographicRegionAId":{"type":"string","description":"Region ID of the interconnected regions.\n"},"geographicRegionBId":{"type":"string","description":"Region ID of the interconnected regions.\n"},"geographicSpanId":{"type":"string","description":"The area ID of the cross-area connection.\n"},"hasReservationData":{"type":"string","description":"Indicates whether renewal data is involved.\n"},"id":{"type":"string","description":"ID of the CEN Bandwidth Package.\n"},"instanceId":{"type":"string","description":"ID of a CEN instance.\n"},"isCrossBorder":{"type":"boolean","description":"Indicates whether the bandwidth package is a cross-border bandwidth package.\n"},"name":{"type":"string","description":"Name of the CEN Bandwidth Package.\n"},"paymentType":{"type":"string","description":"The billing method of the bandwidth package.\n"},"reservationActiveTime":{"type":"string","description":"The expiration time of the temporary upgrade.\n"},"reservationBandwidth":{"type":"string","description":"The restored bandwidth after the temporary upgrade.\n"},"reservationInternetChargeType":{"type":"string","description":"The billing method after the configuration change.\n"},"reservationOrderType":{"type":"string","description":"The type of the configuration change.\n"},"status":{"type":"string","description":"Status of the CEN Bandwidth Package in CEN instance, Valid value: `Idle` and `InUse`.\n"}},"type":"object","required":["bandwidth","bandwidthPackageChargeType","businessStatus","cenBandwidthPackageId","cenBandwidthPackageName","cenIds","description","expiredTime","geographicRegionAId","geographicRegionBId","geographicSpanId","hasReservationData","id","instanceId","isCrossBorder","name","paymentType","reservationActiveTime","reservationBandwidth","reservationInternetChargeType","reservationOrderType","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getChildInstanceRouteEntryToAttachmentsAttachment:getChildInstanceRouteEntryToAttachmentsAttachment":{"properties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"childInstanceRouteTableId":{"type":"string","description":"The first ID of the resource\n"},"destinationCidrBlock":{"type":"string","description":"DestinationCidrBlock\n"},"id":{"type":"string","description":"The ID of the resource. The value is formulated as `\u003ccen_id\u003e:\u003cchild_instance_route_table_id\u003e:\u003ctransit_router_attachment_id\u003e:\u003cdestination_cidr_block\u003e`.\n"},"serviceType":{"type":"string","description":"ServiceType\n"},"status":{"type":"string","description":"The status of the resource\n"},"transitRouterAttachmentId":{"type":"string","description":"TransitRouterAttachmentId\n"}},"type":"object","required":["cenId","childInstanceRouteTableId","destinationCidrBlock","id","serviceType","status","transitRouterAttachmentId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getFlowlogsFlowlog:getFlowlogsFlowlog":{"properties":{"cenId":{"type":"string","description":"The ID of Cen instance.\n"},"createTime":{"type":"string","description":"The createTime of flowlog.\n"},"description":{"type":"string","description":"The description of the flowlog.\n"},"flowLogId":{"type":"string","description":"The ID of FlowLog.\n"},"flowLogName":{"type":"string","description":"The name of the flowlog.\n"},"flowLogVersion":{"type":"string","description":"Flowlog Version.\n"},"id":{"type":"string","description":"The ID of FlowLog.\n"},"interval":{"type":"integer","description":"The duration of the capture window for the flow log to capture traffic. Unit: seconds. Valid values: **60** or **600 * *. Default value: **600 * *.\n"},"logFormatString":{"type":"string","description":"(Available since v1.236.0) Log Format.\n"},"logStoreName":{"type":"string","description":"The LogStore that stores the flowlog.\n"},"projectName":{"type":"string","description":"The Project that stores the flowlog.\n"},"recordTotal":{"type":"string","description":"(Available since v1.236.0) Total number of records.\n"},"regionId":{"type":"string","description":"Region id\n"},"status":{"type":"string","description":"The status of the flow log. Valid values:-**Active**: started.-**InActive**: not started.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"transitRouterAttachmentId":{"type":"string","description":"(Available since v1.236.0) Cross-region Connection ID or VBR connection ID.\u003e This parameter is required.\n"},"transitRouterId":{"type":"string","description":"Transit Router ID\n"}},"type":"object","required":["cenId","createTime","description","flowLogId","flowLogName","flowLogVersion","id","interval","logFormatString","logStoreName","projectName","recordTotal","regionId","status","tags","transitRouterAttachmentId","transitRouterId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getInstanceAttachmentsAttachment:getInstanceAttachmentsAttachment":{"properties":{"childInstanceAttachTime":{"type":"string","description":"The time when the network is associated with the CEN instance.\n"},"childInstanceId":{"type":"string","description":"The ID of the network.\n"},"childInstanceOwnerId":{"type":"integer","description":"The ID of the account to which the network belongs.\n"},"childInstanceRegionId":{"type":"string","description":"The region to which the network to be queried belongs.\n"},"childInstanceType":{"type":"string","description":"The type of the associated network. Valid values: `VPC`, `VBR` and `CCN`.\n"},"id":{"type":"string","description":"The ID of the CEN Instance Attachment.\n"},"instanceId":{"type":"string","description":"The ID of the CEN instance.\n"},"status":{"type":"string","description":"The status of the Cen Child Instance Attachment. Valid value: `Attaching`, `Attached` and `Aetaching`.\n"}},"type":"object","required":["childInstanceAttachTime","childInstanceId","childInstanceOwnerId","childInstanceRegionId","childInstanceType","id","instanceId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getInstancesInstance:getInstancesInstance":{"properties":{"cenBandwidthPackageIds":{"type":"array","items":{"type":"string"},"description":"List of CEN Bandwidth Package IDs in the specified CEN instance.\n"},"cenId":{"type":"string","description":"ID of the CEN instance.\n"},"cenInstanceName":{"type":"string","description":"Name of the CEN instance.\n"},"createTime":{"type":"string","description":"The creation time of the CEN Instance.\n"},"description":{"type":"string","description":"Description of the CEN instance.\n"},"id":{"type":"string","description":"ID of the CEN instance.\n"},"name":{"type":"string","description":"Name of the CEN instance.\n"},"protectionLevel":{"type":"string","description":"Indicates the allowed level of CIDR block overlapping.\n"},"status":{"type":"string","description":"The status of CEN instance. Valid value: `Active`, `Creating` and `Deleting`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object","required":["cenBandwidthPackageIds","cenId","cenInstanceName","createTime","description","id","name","protectionLevel","status","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getInterRegionTrafficQosPoliciesPolicy:getInterRegionTrafficQosPoliciesPolicy":{"properties":{"id":{"type":"string","description":"The ID of the Inter Region Traffic Qos Policy.\n"},"interRegionTrafficQosPolicyDescription":{"type":"string","description":"The description of the Inter Region Traffic Qos Policy.\n"},"interRegionTrafficQosPolicyId":{"type":"string","description":"The ID of the Inter Region Traffic Qos Policy.\n"},"interRegionTrafficQosPolicyName":{"type":"string","description":"The name of the Inter Region Traffic Qos Policy.\n"},"status":{"type":"string","description":"The status of the traffic scheduling policy. Valid Value: `Creating`, `Active`, `Modifying`, `Deleting`, `Deleted`.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the inter-region connection.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"}},"type":"object","required":["id","interRegionTrafficQosPolicyDescription","interRegionTrafficQosPolicyId","interRegionTrafficQosPolicyName","status","transitRouterAttachmentId","transitRouterId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getInterRegionTrafficQosQueuesQueue:getInterRegionTrafficQosQueuesQueue":{"properties":{"dscps":{"type":"array","items":{"type":"string"},"description":"The DSCP value of the traffic packet to be matched in the current queue, ranging from 0 to 63.\n"},"id":{"type":"string"},"interRegionTrafficQosQueueDescription":{"type":"string","description":"The description information of the traffic scheduling policy.\n"},"interRegionTrafficQosQueueId":{"type":"string","description":"The ID of the resource.\n"},"interRegionTrafficQosQueueName":{"type":"string","description":"The name of the traffic scheduling policy.\n"},"remainBandwidthPercent":{"type":"integer","description":"The percentage of cross-region bandwidth that the current queue can use.\n"},"status":{"type":"string","description":"The status of the traffic scheduling policy. -**Creating**: The function is being created.-**Active**: available.-**Modifying**: is being modified.-**Deleting**: Deleted.-**Deleted**: Deleted.\n"},"trafficQosPolicyId":{"type":"string","description":"The ID of the traffic scheduling policy.\n"}},"type":"object","required":["dscps","id","interRegionTrafficQosQueueDescription","interRegionTrafficQosQueueId","interRegionTrafficQosQueueName","remainBandwidthPercent","status","trafficQosPolicyId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getPrivateZonesZone:getPrivateZonesZone":{"properties":{"accessRegionId":{"type":"string","description":"The access region. The access region is the region of the cloud resource that accesses the PrivateZone service through CEN.\n"},"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"hostRegionId":{"type":"string","description":"The service region. The service region is the target region of the PrivateZone service accessed through CEN.\n"},"hostVpcId":{"type":"string","description":"The VPC that belongs to the service region.\n"},"id":{"type":"string","description":"The ID of the private zone. It formats as `\u003ccen_id\u003e:\u003caccess_region_id\u003e`.\n"},"privateZoneDnsServers":{"type":"string","description":"The DNS IP addresses of the PrivateZone service.\n"},"status":{"type":"string","description":"The status of the PrivateZone service, including `Creating`, `Active` and `Deleting`.\n"}},"type":"object","required":["accessRegionId","cenId","hostRegionId","hostVpcId","id","privateZoneDnsServers","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getRegionRouteEntriesEntry:getRegionRouteEntriesEntry":{"properties":{"cidrBlock":{"type":"string","description":"The destination CIDR block of the route entry.\n"},"nextHopId":{"type":"string","description":"ID of the next hop.\n"},"nextHopRegionId":{"type":"string","description":"ID of the region where the next hop is located.\n"},"nextHopType":{"type":"string","description":"Type of the next hop.\n"},"type":{"type":"string","description":"Type of the route entry.\n"}},"type":"object","required":["cidrBlock","nextHopId","nextHopRegionId","nextHopType","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getRouteEntriesEntry:getRouteEntriesEntry":{"properties":{"cidrBlock":{"type":"string","description":"The destination CIDR block of the route entry to query.\n"},"conflicts":{"type":"array","items":{"$ref":"#/types/alicloud:cen/getRouteEntriesEntryConflict:getRouteEntriesEntryConflict"},"description":"A list of conflicted Route Entries. Each element contains the following attributes:\n"},"nextHopId":{"type":"string","description":"ID of the next hop.\n"},"nextHopType":{"type":"string","description":"Type of the next hop, including \"Instance\", \"HaVip\" and \"RouterInterface\".\n"},"operationalMode":{"type":"boolean","description":"Whether to allow the route entry to be published or removed to or from CEN.\n"},"publishStatus":{"type":"string","description":"The publish status of the route entry in CEN, including \"Published\" and \"NonPublished\".\n"},"routeTableId":{"type":"string","description":"ID of the route table of the VPC or VBR.\n"},"routeType":{"type":"string","description":"Type of the route entry, including \"System\", \"Custom\" and \"BGP\".\n"}},"type":"object","required":["cidrBlock","conflicts","nextHopId","nextHopType","operationalMode","publishStatus","routeTableId","routeType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getRouteEntriesEntryConflict:getRouteEntriesEntryConflict":{"properties":{"cidrBlock":{"type":"string","description":"The destination CIDR block of the route entry to query.\n"},"instanceId":{"type":"string","description":"ID of the CEN instance.\n"},"instanceType":{"type":"string","description":"The type of the CEN child instance.\n"},"regionId":{"type":"string","description":"ID of the region where the conflicted route entry is located.\n"},"status":{"type":"string","description":"Reasons of exceptions.\n"}},"type":"object","required":["cidrBlock","instanceId","instanceType","regionId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getRouteMapsMap:getRouteMapsMap":{"properties":{"asPathMatchMode":{"type":"string","description":"A match statement. It indicates the mode in which the as-path attribute is matched.\n"},"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"cenRegionId":{"type":"string","description":"The ID of the region to which the CEN instance belongs.\n"},"cidrMatchMode":{"type":"string","description":"A match statement. It indicates the mode in which the prefix attribute is matched.\n"},"communityMatchMode":{"type":"string","description":"A match statement. It indicates the mode in which the community attribute is matched.\n"},"communityOperateMode":{"type":"string","description":"An action statement. It indicates the mode in which the community attribute is operated.\n"},"description":{"type":"string","description":"The description of the route map.\n"},"destinationChildInstanceTypes":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the destination instances.\n"},"destinationCidrBlocks":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the prefix list.\n"},"destinationInstanceIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the destination instances.\n"},"destinationInstanceIdsReverseMatch":{"type":"boolean","description":"Indicates whether to enable the reverse match method of the DestinationInstanceIds match condition.\n"},"destinationRouteTableIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the destination route tables.\n"},"id":{"type":"string","description":"The ID of the route map. It formats as `\u003ccen_id\u003e:\u003croute_map_id\u003e`. Before 1.161.0, it is \u003cspan pulumi-lang-nodejs=\"`routeMapId`\" pulumi-lang-dotnet=\"`RouteMapId`\" pulumi-lang-go=\"`routeMapId`\" pulumi-lang-python=\"`route_map_id`\" pulumi-lang-yaml=\"`routeMapId`\" pulumi-lang-java=\"`routeMapId`\"\u003e`route_map_id`\u003c/span\u003e.\n"},"mapResult":{"type":"string","description":"The action that is performed to a route if the route meets all the match conditions.\n"},"matchAsns":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the As path list.\n"},"matchCommunitySets":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the community set.\n"},"nextPriority":{"type":"integer","description":"The priority of the next route map that is associated with the current route map.\n"},"operateCommunitySets":{"type":"array","items":{"type":"string"},"description":"An action statement that operates the community attribute.\n"},"preference":{"type":"integer","description":"An action statement that modifies the preference of the route.\n"},"prependAsPaths":{"type":"array","items":{"type":"string"},"description":"Indicates AS Path prepending when a regional gateway receives or publishes a route.\n"},"priority":{"type":"integer","description":"The priority of the route map.\n"},"routeMapId":{"type":"string","description":"The ID of the route map.\n"},"routeTypes":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of route types.\n"},"sourceChildInstanceTypes":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the source instances.\n"},"sourceInstanceIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the source instances.\n"},"sourceInstanceIdsReverseMatch":{"type":"boolean","description":"Indicates whether to enable the reverse match method of the SourceInstanceIds match condition.\n"},"sourceRegionIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the source regions.\n"},"sourceRouteTableIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the source route tables.\n"},"status":{"type":"string","description":"The status of the route map, including `Creating`, `Active` and `Deleting`.\n"},"transmitDirection":{"type":"string","description":"The direction in which the route map is applied, including `RegionIn` and `RegionOut`.\n"}},"type":"object","required":["asPathMatchMode","cenId","cenRegionId","cidrMatchMode","communityMatchMode","communityOperateMode","description","destinationChildInstanceTypes","destinationCidrBlocks","destinationInstanceIds","destinationInstanceIdsReverseMatch","destinationRouteTableIds","id","mapResult","matchAsns","matchCommunitySets","nextPriority","operateCommunitySets","preference","prependAsPaths","priority","routeMapId","routeTypes","sourceChildInstanceTypes","sourceInstanceIds","sourceInstanceIdsReverseMatch","sourceRegionIds","sourceRouteTableIds","status","transmitDirection"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getRouteServicesService:getRouteServicesService":{"properties":{"accessRegionId":{"type":"string","description":"The region of the network instances that access the cloud services.\n"},"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"cidrs":{"type":"array","items":{"type":"string"},"description":"The IP address of the cloud service.\n"},"description":{"type":"string","description":"The description of the cloud service.\n"},"host":{"type":"string","description":"The domain name or IP address of the cloud service.\n"},"hostRegionId":{"type":"string","description":"The region of the cloud service.\n"},"hostVpcId":{"type":"string","description":"The VPC associated with the cloud service.\n"},"id":{"type":"string","description":"The ID of the route service.\n"},"status":{"type":"string","description":"The status of the cloud service. Valid values: `Active`, `Creating` and `Deleting`.\n"},"updateInterval":{"type":"string","description":"The update interval. Default value: 5. The value cannot be modified.\n"}},"type":"object","required":["accessRegionId","cenId","cidrs","description","host","hostRegionId","hostVpcId","id","status","updateInterval"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTrafficMarkingPoliciesPolicy:getTrafficMarkingPoliciesPolicy":{"properties":{"description":{"type":"string","description":"The description of the Traffic Marking Policy.\n"},"id":{"type":"string","description":"The ID of the resource. The value is formatted `\u003ctransit_router_id\u003e:\u003ctraffic_marking_policy_id\u003e`.\n"},"markingDscp":{"type":"integer","description":"The DSCP(Differentiated Services Code Point) of the Traffic Marking Policy.\n"},"priority":{"type":"integer","description":"The Priority of the Traffic Marking Policy.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"trafficMarkingPolicyId":{"type":"string","description":"The ID of the Traffic Marking Policy.\n"},"trafficMarkingPolicyName":{"type":"string","description":"The name of the Traffic Marking Policy.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"}},"type":"object","required":["description","id","markingDscp","priority","status","trafficMarkingPolicyId","trafficMarkingPolicyName","transitRouterId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouteTableAggregationsTransitRouteTableAggregation:getTransitRouteTableAggregationsTransitRouteTableAggregation":{"properties":{"id":{"type":"string","description":"The ID of the Transit Route Table Aggregation. It formats as `\u003ctransit_route_table_id\u003e:\u003ctransit_route_table_aggregation_cidr\u003e`.\n"},"routeType":{"type":"string","description":"The route type of the aggregate route.\n"},"status":{"type":"string","description":"The status of Transit Route Table Aggregation. Valid Values: `AllConfigured`, `Configuring`, `ConfigFailed`, `PartialConfigured`, `Deleting`.\n"},"transitRouteTableAggregationCidr":{"type":"string","description":"The destination CIDR block of the aggregate route.\n"},"transitRouteTableAggregationDescription":{"type":"string","description":"The description of the aggregate route.\n"},"transitRouteTableAggregationName":{"type":"string","description":"The name of the aggregate route.\n"},"transitRouteTableAggregationScope":{"type":"string","description":"The scope of networks that you want to advertise the aggregate route.\n"},"transitRouteTableId":{"type":"string","description":"The ID of the route table of the Enterprise Edition transit router.\n"}},"type":"object","required":["id","routeType","status","transitRouteTableAggregationCidr","transitRouteTableAggregationDescription","transitRouteTableAggregationName","transitRouteTableAggregationScope","transitRouteTableId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterAvailableResourcesResource:getTransitRouterAvailableResourcesResource":{"properties":{"availableZones":{"type":"array","items":{"type":"string"},"description":"(Available since v1.225.0) The list of available zones.\n"},"masterZones":{"type":"array","items":{"type":"string"},"description":"The list of primary zones.\n"},"slaveZones":{"type":"array","items":{"type":"string"},"description":"The list of secondary zones.\n"},"supportMulticast":{"type":"boolean","description":"Specifies whether to query only the zones in which the multicast feature is supported.\n"}},"type":"object","required":["availableZones","masterZones","slaveZones","supportMulticast"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterCidrsCidr:getTransitRouterCidrsCidr":{"properties":{"cidr":{"type":"string","description":"The cidr of the transit router.\n"},"description":{"type":"string","description":"The description of the transit router.\n"},"family":{"type":"string","description":"The type of the transit router cidr.\n"},"id":{"type":"string","description":"The ID of the Cen Transit Router Cidr. It formats as `\u003ctransit_router_id\u003e:\u003ctransit_router_cidr_id\u003e`.\n"},"publishCidrRoute":{"type":"boolean","description":"Whether to allow automatically adding Transit Router Cidr in Transit Router Route Table.\n"},"transitRouterCidrId":{"type":"string","description":"The ID of the transit router cidr.\n"},"transitRouterCidrName":{"type":"string","description":"The name of the transit router.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"}},"type":"object","required":["cidr","description","family","id","publishCidrRoute","transitRouterCidrId","transitRouterCidrName","transitRouterId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterMulticastDomainAssociationsAssociation:getTransitRouterMulticastDomainAssociationsAssociation":{"properties":{"id":{"type":"string","description":"The ID of the Transit Router Multicast Domain Association. It formats as `\u003ctransit_router_multicast_domain_id\u003e:\u003ctransit_router_attachment_id\u003e:\u003cvswitch_id\u003e`.\n"},"resourceId":{"type":"string","description":"The ID of the resource associated with the multicast domain.\n"},"resourceOwnerId":{"type":"integer","description":"The ID of the Alibaba Cloud account to which the resource associated with the multicast domain belongs.\n"},"resourceType":{"type":"string","description":"The type of resource associated with the multicast domain. Valid Value: `VPC`.\n"},"status":{"type":"string","description":"The status of the associated resource. Valid Value: `Associated`, `Associating`, `Dissociating`.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the network instance connection.\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n"}},"type":"object","required":["id","resourceId","resourceOwnerId","resourceType","status","transitRouterAttachmentId","transitRouterMulticastDomainId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterMulticastDomainMembersMember:getTransitRouterMulticastDomainMembersMember":{"properties":{"groupIpAddress":{"type":"string","description":"The IP address of the multicast group to which the multicast member belongs. If the multicast group you specified does not exist in the current multicast domain, the system will automatically create a new multicast group for you in the current multicast domain.\n"},"id":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\"\u003e`key`\u003c/span\u003e of the resource supplied above.The value is formulated as `\u003ctransit_router_multicast_domain_id\u003e:\u003cgroup_ip_address\u003e:\u003cnetwork_interface_id\u003e`.\n"},"networkInterfaceId":{"type":"string","description":"The ID of the ENI.\n"},"status":{"type":"string","description":"The status of the resource\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain to which the multicast member belongs.\n"},"vpcId":{"type":"string","description":"The VPC to which the ENI of the multicast member belongs. This field is mandatory for VPCs owned by another accounts.\n"}},"type":"object","required":["groupIpAddress","id","networkInterfaceId","status","transitRouterMulticastDomainId","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterMulticastDomainPeerMembersMember:getTransitRouterMulticastDomainPeerMembersMember":{"properties":{"groupIpAddress":{"type":"string","description":"The IP address of the multicast group to which the multicast member belongs. Value range: **224.0.0.1** to **239.255.255.254**.If the multicast group you specified does not exist in the current multicast domain, the system will automatically create a new multicast group for you in the current multicast domain.\n"},"id":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\"\u003e`key`\u003c/span\u003e of the resource supplied above.The value is formulated as `\u003ctransit_router_multicast_domain_id\u003e:\u003cgroup_ip_address\u003e:\u003cpeer_transit_router_multicast_domain_id\u003e`.\n"},"peerTransitRouterMulticastDomainId":{"type":"string","description":"The multicast domain ID of the peer transit router.\n"},"status":{"type":"string","description":"The status of the resource\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain to which the multicast member belongs.\n"}},"type":"object","required":["groupIpAddress","id","peerTransitRouterMulticastDomainId","status","transitRouterMulticastDomainId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterMulticastDomainSourcesSource:getTransitRouterMulticastDomainSourcesSource":{"properties":{"groupIpAddress":{"type":"string","description":"The IP address of the multicast group to which the multicast source belongs. Value range: **224.0.0.1** to **239.255.255.254**. If the multicast group you specified does not exist in the current multicast domain, the system will automatically create a new multicast group for you.\n"},"id":{"type":"string","description":"The id of the resource.\n"},"networkInterfaceId":{"type":"string","description":"ENI ID of the multicast source.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain to which the multicast source belongs.\n"},"vpcId":{"type":"string","description":"The VPC to which the ENI of the multicast source belongs. This field is mandatory for VPCs that is owned by another accounts.\n"}},"type":"object","required":["groupIpAddress","id","networkInterfaceId","status","transitRouterMulticastDomainId","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterMulticastDomainsDomain:getTransitRouterMulticastDomainsDomain":{"properties":{"id":{"type":"string","description":"The ID of the Transit Router Multicast Domain.\n"},"status":{"type":"string","description":"The status of the multicast domain. Valid Value: `Active`.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"},"transitRouterMulticastDomainDescription":{"type":"string","description":"The description of the Transit Router Multicast Domain.\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain.\n"},"transitRouterMulticastDomainName":{"type":"string","description":"The name of the Transit Router Multicast Domain.\n"}},"type":"object","required":["id","status","transitRouterId","transitRouterMulticastDomainDescription","transitRouterMulticastDomainId","transitRouterMulticastDomainName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterPeerAttachmentsAttachment:getTransitRouterPeerAttachmentsAttachment":{"properties":{"autoPublishRouteEnabled":{"type":"boolean","description":"Auto publish route enabled.\n"},"bandwidth":{"type":"integer","description":"The bandwidth of the bandwidth package.\n"},"cenBandwidthPackageId":{"type":"string","description":"ID of the CEN bandwidth package.\n"},"geographicSpanId":{"type":"string","description":"ID of the geographic.\n"},"id":{"type":"string","description":"The ID of CEN Transit Router peer attachments.\n"},"peerTransitRouterId":{"type":"string","description":"ID of the peer transit router.\n"},"peerTransitRouterOwnerId":{"type":"string","description":"Owner ID of the peer transit router.\n"},"peerTransitRouterRegionId":{"type":"string","description":"Region ID of the peer transit router.\n"},"resourceType":{"type":"string","description":"Type of the resource.\n"},"status":{"type":"string","description":"The status of CEN Transit Router peer attachment. Valid values `Attached`, `Attaching` and `Detaching`.\n"},"transitRouterAttachmentDescription":{"type":"string","description":"The description of CEN Transit Router peer attachments.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of CEN Transit Router peer attachments.\n"},"transitRouterAttachmentName":{"type":"string","description":"Name of the transit router attachment.\n"},"transitRouterId":{"type":"string","description":"The ID of transit router.\n"}},"type":"object","required":["autoPublishRouteEnabled","bandwidth","cenBandwidthPackageId","geographicSpanId","id","peerTransitRouterId","peerTransitRouterOwnerId","peerTransitRouterRegionId","resourceType","status","transitRouterAttachmentDescription","transitRouterAttachmentId","transitRouterAttachmentName","transitRouterId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterPrefixListAssociationsAssociation:getTransitRouterPrefixListAssociationsAssociation":{"properties":{"id":{"type":"string","description":"The ID of the Cen Transit Router Prefix List Association. It formats as `\u003cprefix_list_id\u003e:\u003ctransit_router_id\u003e:\u003ctransit_router_table_id\u003e:\u003cnext_hop\u003e`.\n"},"nextHop":{"type":"string","description":"The ID of the next hop connection.\n"},"nextHopInstanceId":{"type":"string","description":"The ID of the network instance associated with the next hop connection.\n"},"nextHopType":{"type":"string","description":"The type of the next hop.\n"},"ownerUid":{"type":"integer","description":"The ID of the Alibaba Cloud account to which the prefix list belongs.\n"},"prefixListId":{"type":"string","description":"The ID of the prefix list.\n"},"status":{"type":"string","description":"The status of the prefix list.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"},"transitRouterTableId":{"type":"string","description":"The ID of the route table of the transit router.\n"}},"type":"object","required":["id","nextHop","nextHopInstanceId","nextHopType","ownerUid","prefixListId","status","transitRouterId","transitRouterTableId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterRouteEntriesEntry:getTransitRouterRouteEntriesEntry":{"properties":{"id":{"type":"string"},"status":{"type":"string"},"transitRouterRouteEntryDescription":{"type":"string"},"transitRouterRouteEntryDestinationCidrBlock":{"type":"string","description":"The target network segment of the route entry.\n"},"transitRouterRouteEntryId":{"type":"string"},"transitRouterRouteEntryName":{"type":"string"},"transitRouterRouteEntryNextHopId":{"type":"string","description":"ID of the next hop.\n"},"transitRouterRouteEntryNextHopType":{"type":"string","description":"Type of the next hop.\n"},"transitRouterRouteEntryType":{"type":"string","description":"Type of the route entry.\n"}},"type":"object","required":["id","status","transitRouterRouteEntryDescription","transitRouterRouteEntryDestinationCidrBlock","transitRouterRouteEntryId","transitRouterRouteEntryName","transitRouterRouteEntryNextHopId","transitRouterRouteEntryNextHopType","transitRouterRouteEntryType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterRouteTableAssociationsAssociation:getTransitRouterRouteTableAssociationsAssociation":{"properties":{"id":{"type":"string"},"resourceId":{"type":"string","description":"ID of the transit router route table association.\n"},"resourceType":{"type":"string","description":"Type of the resource.\n"},"status":{"type":"string","description":"The status of the route table, including `Active`, `Associating`, `Dissociating`.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the network instance connection.\n"},"transitRouterRouteTableId":{"type":"string","description":"The ID of the route table of the Enterprise Edition transit router.\n"}},"type":"object","required":["id","resourceId","resourceType","status","transitRouterAttachmentId","transitRouterRouteTableId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterRouteTablePropagationsPropagation:getTransitRouterRouteTablePropagationsPropagation":{"properties":{"id":{"type":"string","description":"The ID of the network instance connection.\n"},"resourceId":{"type":"string","description":"The ID of the network instance.\n"},"resourceType":{"type":"string","description":"The type of the network instance.\n"},"status":{"type":"string","description":"The status of the route learning correlation. Valid values: `Active`, `Enabling`, `Disabling`.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the network instance connection.\n"},"transitRouterRouteTableId":{"type":"string","description":"The ID of the route table of the Enterprise Edition transit router.\n"}},"type":"object","required":["id","resourceId","resourceType","status","transitRouterAttachmentId","transitRouterRouteTableId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterRouteTablesTable:getTransitRouterRouteTablesTable":{"properties":{"id":{"type":"string","description":"The ID of the Transit Router Route Table.\n"},"status":{"type":"string","description":"The status of the route table. Valid values: `Creating`, `Active`, `Deleting`.\n"},"transitRouterRouteTableDescription":{"type":"string","description":"The description of the route table.\n"},"transitRouterRouteTableId":{"type":"string","description":"The ID of the Transit Router Route Table.\n"},"transitRouterRouteTableName":{"type":"string","description":"The name of the route table.\n"},"transitRouterRouteTableType":{"type":"string","description":"The type of the route table. Valid values: `System`, `Custom`.\n"}},"type":"object","required":["id","status","transitRouterRouteTableDescription","transitRouterRouteTableId","transitRouterRouteTableName","transitRouterRouteTableType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterVbrAttachmentsAttachment:getTransitRouterVbrAttachmentsAttachment":{"properties":{"autoPublishRouteEnabled":{"type":"boolean","description":"ID of the region where the conflicted VBR is located.\n"},"id":{"type":"string"},"resourceType":{"type":"string","description":"Type of the resource.\n"},"status":{"type":"string","description":"The status of the resource. Valid values `Attached`, `Attaching` and `Detaching`.\n"},"transitRouterAttachmentDescription":{"type":"string"},"transitRouterAttachmentId":{"type":"string","description":"ID of the transit router VBR attachment.\n"},"transitRouterAttachmentName":{"type":"string","description":"Name of the transit router attachment.\n"},"vbrId":{"type":"string","description":"ID of the VBR.\n"},"vbrOwnerId":{"type":"string","description":"The Owner ID of the VBR.\n"}},"type":"object","required":["autoPublishRouteEnabled","id","resourceType","status","transitRouterAttachmentDescription","transitRouterAttachmentId","transitRouterAttachmentName","vbrId","vbrOwnerId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterVpcAttachmentsAttachment:getTransitRouterVpcAttachmentsAttachment":{"properties":{"autoPublishRouteEnabled":{"type":"boolean","description":"(Available since v1.224.0) Whether the transit router is automatically published to the VPC instance.\n"},"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"id":{"type":"string","description":"The resource ID in terraform of Transit Router VPC Attachment. It formats as `\u003ccen_id\u003e:\u003ctransit_router_attachment_id\u003e`.\n"},"paymentType":{"type":"string","description":"The payment type of the resource.\n"},"resourceType":{"type":"string","description":"The resource type of the Transit Router VPC Attachment.\n"},"status":{"type":"string","description":"The status of the Transit Router VPC Attachment. Valid Values: `Attached`, `Attaching`, `Detaching`.\n"},"transitRouterAttachmentDescription":{"type":"string","description":"The description of the Transit Router VPC Attachment.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the Transit Router VPC Attachment.\n"},"transitRouterAttachmentName":{"type":"string","description":"The name of the Transit Router VPC Attachment.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vpcOwnerId":{"type":"string","description":"The Owner ID of the VPC.\n"},"zoneMappings":{"type":"array","items":{"$ref":"#/types/alicloud:cen/getTransitRouterVpcAttachmentsAttachmentZoneMapping:getTransitRouterVpcAttachmentsAttachmentZoneMapping"},"description":"The list of zone mapping of the VPC.\n"}},"type":"object","required":["autoPublishRouteEnabled","cenId","id","paymentType","resourceType","status","transitRouterAttachmentDescription","transitRouterAttachmentId","transitRouterAttachmentName","transitRouterId","vpcId","vpcOwnerId","zoneMappings"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterVpcAttachmentsAttachmentZoneMapping:getTransitRouterVpcAttachmentsAttachmentZoneMapping":{"properties":{"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n"},"zoneId":{"type":"string","description":"The ID of the zone.\n"}},"type":"object","required":["vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterVpnAttachmentsAttachment:getTransitRouterVpnAttachmentsAttachment":{"properties":{"autoPublishRouteEnabled":{"type":"boolean","description":"Specifies whether to allow the transit router to automatically advertise routes to the IPsec-VPN attachment.\n"},"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n"},"chargeType":{"type":"string","description":"(Available since v1.245.0) The billing method of the VPN attachment.\n"},"createTime":{"type":"string","description":"The time when the VPN connection was created.\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"resourceType":{"type":"string","description":"The type of resource attached to the transit router.\n"},"status":{"type":"string","description":"The Status of Transit Router Vpn Attachment. Valid values: `Attached`, `Attaching`, `Detaching`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"transitRouterAttachmentDescription":{"type":"string","description":"The description of the IPsec-VPN connection.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the VPN attachment.\n"},"transitRouterAttachmentName":{"type":"string","description":"The name of the VPN attachment.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"},"vpnId":{"type":"string","description":"The ID of the IPsec-VPN attachment.\n"},"vpnOwnerId":{"type":"integer","description":"The ID of the Alibaba Cloud account to which the IPsec-VPN connection belongs.\n"},"zones":{"type":"array","items":{"$ref":"#/types/alicloud:cen/getTransitRouterVpnAttachmentsAttachmentZone:getTransitRouterVpnAttachmentsAttachmentZone"},"description":"The Zone ID in the current region.System will create resources under the Zone that you specify.Left blank if associated IPSec connection is in dual-tunnel mode.\n"}},"type":"object","required":["autoPublishRouteEnabled","cenId","chargeType","createTime","id","resourceType","status","tags","transitRouterAttachmentDescription","transitRouterAttachmentId","transitRouterAttachmentName","transitRouterId","vpnId","vpnOwnerId","zones"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRouterVpnAttachmentsAttachmentZone:getTransitRouterVpnAttachmentsAttachmentZone":{"properties":{"zoneId":{"type":"string","description":"The zone ID of the read-only instance.\n"}},"type":"object","required":["zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getTransitRoutersTransitRouter:getTransitRoutersTransitRouter":{"properties":{"aliUid":{"type":"string","description":"The UID of the Aliyun.\n"},"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"id":{"type":"string","description":"The ID of the resource, It is formatted to `\u003ccen_id\u003e:\u003ctransit_router_id\u003e`. **NOTE:** Before 1.151.0, It is formatted to `\u003ctransit_router_id\u003e`.\n"},"status":{"type":"string","description":"The status of the resource. Valid values `Active`, `Creating`, `Deleting` and `Updating`.\n"},"transitRouterDescription":{"type":"string","description":"The description of the transit router.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"},"transitRouterName":{"type":"string","description":"The name of the transit router.\n"},"type":{"type":"string","description":"The Type of the transit router.\n"},"xgwVip":{"type":"string","description":"The vip of the XGW.\n"}},"type":"object","required":["aliUid","cenId","id","status","transitRouterDescription","transitRouterId","transitRouterName","type","xgwVip"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cen/getVbrHealthChecksCheck:getVbrHealthChecksCheck":{"properties":{"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n"},"healthCheckInterval":{"type":"integer","description":"The time interval at which probe packets are sent during the health check.\n"},"healthCheckSourceIp":{"type":"string","description":"The source IP address of the health check.\n"},"healthCheckTargetIp":{"type":"string","description":"The destination IP address of the health check.\n"},"healthyThreshold":{"type":"integer","description":"The number of probe packets that are sent during the health check.\n"},"id":{"type":"string","description":"The ID of the CEN VBR Heath Check.\n"},"vbrInstanceId":{"type":"string","description":"The ID of the VBR instance.\n"},"vbrInstanceRegionId":{"type":"string","description":"The ID of the region where the VBR instance is deployed.\n"}},"type":"object","required":["cenId","healthCheckInterval","healthCheckSourceIp","healthCheckTargetIp","healthyThreshold","id","vbrInstanceId","vbrInstanceRegionId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cfg/AggregateCompliancePackConfigRule:AggregateCompliancePackConfigRule":{"properties":{"configRuleParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/AggregateCompliancePackConfigRuleConfigRuleParameter:AggregateCompliancePackConfigRuleConfigRuleParameter"},"description":"A list of parameter rules. See \u003cspan pulumi-lang-nodejs=\"`configRuleParameters`\" pulumi-lang-dotnet=\"`ConfigRuleParameters`\" pulumi-lang-go=\"`configRuleParameters`\" pulumi-lang-python=\"`config_rule_parameters`\" pulumi-lang-yaml=\"`configRuleParameters`\" pulumi-lang-java=\"`configRuleParameters`\"\u003e`config_rule_parameters`\u003c/span\u003e below.\n"},"managedRuleIdentifier":{"type":"string","description":"The Managed Rule Identifier.\n"}},"type":"object","required":["managedRuleIdentifier"]},"alicloud:cfg/AggregateCompliancePackConfigRuleConfigRuleParameter:AggregateCompliancePackConfigRuleConfigRuleParameter":{"properties":{"parameterName":{"type":"string","description":"The Parameter Name.\n"},"parameterValue":{"type":"string","description":"The Parameter Value.\n"}},"type":"object"},"alicloud:cfg/AggregateCompliancePackConfigRuleId:AggregateCompliancePackConfigRuleId":{"properties":{"configRuleId":{"type":"string","description":"The rule ID of Aggregate Config Rule.\n"}},"type":"object"},"alicloud:cfg/AggregatorAggregatorAccount:AggregatorAggregatorAccount":{"properties":{"accountId":{"type":"string","description":"The member ID.\n"},"accountName":{"type":"string","description":"The member name.\n"},"accountType":{"type":"string","description":"The affiliation of the member. Valid values: `ResourceDirectory`.\n"}},"type":"object"},"alicloud:cfg/CompliancePackConfigRule:CompliancePackConfigRule":{"properties":{"configRuleParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/CompliancePackConfigRuleConfigRuleParameter:CompliancePackConfigRuleConfigRuleParameter"},"description":"A list of Config Rule Parameters. See \u003cspan pulumi-lang-nodejs=\"`configRuleParameters`\" pulumi-lang-dotnet=\"`ConfigRuleParameters`\" pulumi-lang-go=\"`configRuleParameters`\" pulumi-lang-python=\"`config_rule_parameters`\" pulumi-lang-yaml=\"`configRuleParameters`\" pulumi-lang-java=\"`configRuleParameters`\"\u003e`config_rule_parameters`\u003c/span\u003e below.\n"},"managedRuleIdentifier":{"type":"string","description":"The Managed Rule Identifier.\n"}},"type":"object","required":["managedRuleIdentifier"]},"alicloud:cfg/CompliancePackConfigRuleConfigRuleParameter:CompliancePackConfigRuleConfigRuleParameter":{"properties":{"parameterName":{"type":"string","description":"The parameter name.\n"},"parameterValue":{"type":"string","description":"The parameter value.\n"}},"type":"object"},"alicloud:cfg/CompliancePackConfigRuleId:CompliancePackConfigRuleId":{"properties":{"configRuleId":{"type":"string","description":"The rule ID of Config Rule.\n"}},"type":"object"},"alicloud:cfg/ReportTemplateReportScope:ReportTemplateReportScope":{"properties":{"key":{"type":"string","description":"Key for reporting scope, currently supported:\n- AggregatorId\n- CompliancePackId\n- RuleId\n"},"matchType":{"type":"string","description":"The matching logic. Currently, only In is supported.\n"},"value":{"type":"string","description":"The value of the report range. Each k-v pair is an OR logic. For example, multiple rule IDs can be separated by commas (,).\n"}},"type":"object"},"alicloud:cfg/RuleCompliance:RuleCompliance":{"properties":{"complianceType":{"type":"string","description":"The type of compliance. Valid values: `COMPLIANT`, `NON_COMPLIANT`, `NOT_APPLICABLE`, `INSUFFICIENT_DATA`.\n"},"count":{"type":"integer","description":"The count of compliance.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["complianceType","count"]}}},"alicloud:cfg/getAggregateCompliancePacksPack:getAggregateCompliancePacksPack":{"properties":{"accountId":{"type":"string","description":"The Aliyun User Id.\n"},"aggregateCompliancePackName":{"type":"string","description":"The Aggregate Compliance Package Name.\n"},"aggregatorCompliancePackId":{"type":"string","description":"The Aggregate Compliance Package Id.\n"},"compliancePackTemplateId":{"type":"string","description":"The template ID of the Compliance Package.\n"},"configRules":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/getAggregateCompliancePacksPackConfigRule:getAggregateCompliancePacksPackConfigRule"},"description":"A list of The Aggregate Compliance Package Rules.\n"},"description":{"type":"string","description":"The description of aggregate compliance pack.\n"},"id":{"type":"string","description":"The ID of the Aggregate Compliance Pack.\n"},"riskLevel":{"type":"integer","description":"The Risk Level.\n"},"status":{"type":"string","description":"The status of the resource. Valid values `ACTIVE`, `CREATING`, `INACTIVE`.\n"}},"type":"object","required":["accountId","aggregateCompliancePackName","aggregatorCompliancePackId","compliancePackTemplateId","configRules","description","id","riskLevel","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cfg/getAggregateCompliancePacksPackConfigRule:getAggregateCompliancePacksPackConfigRule":{"properties":{"configRuleId":{"type":"string","description":"The ID of the rule.\n"},"configRuleParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/getAggregateCompliancePacksPackConfigRuleConfigRuleParameter:getAggregateCompliancePacksPackConfigRuleConfigRuleParameter"},"description":"A list of parameter rules.\n"},"managedRuleIdentifier":{"type":"string","description":"Managed Rule Identifier.\n"}},"type":"object","required":["configRuleId","configRuleParameters","managedRuleIdentifier"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cfg/getAggregateCompliancePacksPackConfigRuleConfigRuleParameter:getAggregateCompliancePacksPackConfigRuleConfigRuleParameter":{"properties":{"parameterName":{"type":"string","description":"The Parameter Name.\n"},"parameterValue":{"type":"string","description":"The Parameter Value.\n"},"required":{"type":"boolean","description":"Required.\n"}},"type":"object","required":["parameterName","parameterValue","required"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cfg/getAggregateConfigRulesRule:getAggregateConfigRulesRule":{"properties":{"accountId":{"type":"string","description":"The Aliyun User ID.\n"},"aggregateConfigRuleName":{"type":"string","description":"The config rule name.\n"},"aggregatorId":{"type":"string","description":"The ID of aggregator.\n"},"compliancePackId":{"type":"string","description":"The ID of Compliance Package.\n"},"compliances":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/getAggregateConfigRulesRuleCompliance:getAggregateConfigRulesRuleCompliance"},"description":"The Compliance information.\n"},"configRuleArn":{"type":"string","description":"The config rule arn.\n"},"configRuleId":{"type":"string","description":"The ID of the rule.\n"},"configRuleTriggerTypes":{"type":"string","description":"The trigger types of config rules.\n"},"description":{"type":"string","description":"The description of the rule.\n"},"eventSource":{"type":"string","description":"Event source of the Config Rule.\n"},"excludeResourceIdsScope":{"type":"string","description":"The id of the resources to be evaluated against the rule.\n"},"id":{"type":"string","description":"The ID of the Aggregate Config Rule.\n"},"inputParameters":{"type":"object","additionalProperties":{"type":"string"},"description":"The settings of the input parameters for the rule.\n"},"maximumExecutionFrequency":{"type":"string","description":"The frequency of the compliance evaluations.\n"},"modifiedTimestamp":{"type":"string","description":"The timestamp when the rule was last modified.\n"},"regionIdsScope":{"type":"string","description":"The scope of resource region ids.\n"},"resourceGroupIdsScope":{"type":"string","description":"The scope of resource group ids.\n"},"resourceTypesScopes":{"type":"array","items":{"type":"string"},"description":"The types of resources evaluated by the rule.\n"},"riskLevel":{"type":"integer","description":"The Risk Level. Valid values \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: critical, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: warning, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: info.\n"},"sourceIdentifier":{"type":"string","description":"The identifier of the managed rule or the arn of the custom function.\n"},"sourceOwner":{"type":"string","description":"The source owner of the Config Rule.\n"},"status":{"type":"string","description":"The state of the config rule, valid values: `ACTIVE`, `DELETING`, `EVALUATING` and `INACTIVE`.\n"},"tagKeyScope":{"type":"string","description":"The scope of tay key.\n"},"tagValueScope":{"type":"string","description":"The scope of tay value.\n"}},"type":"object","required":["accountId","aggregateConfigRuleName","aggregatorId","compliances","compliancePackId","configRuleArn","configRuleId","configRuleTriggerTypes","description","eventSource","excludeResourceIdsScope","id","inputParameters","maximumExecutionFrequency","modifiedTimestamp","regionIdsScope","resourceGroupIdsScope","resourceTypesScopes","riskLevel","sourceIdentifier","sourceOwner","status","tagKeyScope","tagValueScope"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cfg/getAggregateConfigRulesRuleCompliance:getAggregateConfigRulesRuleCompliance":{"properties":{"complianceType":{"type":"string","description":"The Compliance Type.\n"},"count":{"type":"integer","description":"The Count.\n"}},"type":"object","required":["complianceType","count"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cfg/getAggregateDeliveriesDelivery:getAggregateDeliveriesDelivery":{"properties":{"accountId":{"type":"string","description":"The Aliyun User Id.\n"},"aggregatorId":{"type":"string","description":"The ID of the Aggregator.\n"},"configurationItemChangeNotification":{"type":"boolean","description":"Open or close delivery configuration change history.\n"},"configurationSnapshot":{"type":"boolean","description":"Open or close timed snapshot of shipping resources.\n"},"deliveryChannelAssumeRoleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the role to be assumed by the delivery method.\n"},"deliveryChannelCondition":{"type":"string","description":"The rule attached to the delivery method.\n"},"deliveryChannelId":{"type":"string","description":"The ID of the delivery method.\n"},"deliveryChannelName":{"type":"string","description":"The name of the delivery method.\n"},"deliveryChannelTargetArn":{"type":"string","description":"The ARN of the delivery destination.\n"},"deliveryChannelType":{"type":"string","description":"The type of the delivery method.\n"},"description":{"type":"string","description":"The description of the delivery method.\n"},"id":{"type":"string","description":"The ID of the Aggregate Delivery.\n"},"nonCompliantNotification":{"type":"boolean","description":"Open or close non-compliance events of delivery resources.\n"},"oversizedDataOssTargetArn":{"type":"string","description":"The oss ARN of the delivery channel when the value data oversized limit.\n"},"status":{"type":"integer","description":"The status of the delivery method. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: The delivery method is disabled. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: The delivery destination is enabled.\n"}},"type":"object","required":["accountId","aggregatorId","configurationItemChangeNotification","configurationSnapshot","deliveryChannelAssumeRoleArn","deliveryChannelCondition","deliveryChannelId","deliveryChannelName","deliveryChannelTargetArn","deliveryChannelType","description","id","nonCompliantNotification","oversizedDataOssTargetArn","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cfg/getAggregatorsAggregator:getAggregatorsAggregator":{"properties":{"accountId":{"type":"string","description":"Aggregator account uid.\n"},"aggregatorAccounts":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/getAggregatorsAggregatorAggregatorAccount:getAggregatorsAggregatorAggregatorAccount"},"description":"Account information in aggregator.\n"},"aggregatorId":{"type":"string","description":"The id of aggregator.\n"},"aggregatorName":{"type":"string","description":"The name of aggregator.\n"},"aggregatorType":{"type":"string","description":"The type of aggregator.\n"},"description":{"type":"string","description":"The description of aggregator.\n"},"id":{"type":"string","description":"The id of the aggregator.\n"},"status":{"type":"string","description":"The status of the resource. Valid Values:  \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: creating \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: normal \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: deleting.\n"}},"type":"object","required":["accountId","aggregatorAccounts","aggregatorId","aggregatorName","aggregatorType","description","id","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cfg/getAggregatorsAggregatorAggregatorAccount:getAggregatorsAggregatorAggregatorAccount":{"properties":{"accountId":{"type":"string","description":"Aggregator account uid.\n"},"accountName":{"type":"string","description":"Aggregator account name.\n"},"accountType":{"type":"string","description":"Aggregator account source type.\n"}},"type":"object","required":["accountId","accountName","accountType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cfg/getCompliancePacksPack:getCompliancePacksPack":{"properties":{"accountId":{"type":"string","description":"The Aliyun User Id.\n"},"compliancePackId":{"type":"string","description":"The Compliance Package ID.\n"},"compliancePackName":{"type":"string","description":"The Compliance Package Name.\n"},"compliancePackTemplateId":{"type":"string","description":"The template ID of the Compliance Package.\n"},"configRules":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/getCompliancePacksPackConfigRule:getCompliancePacksPackConfigRule"},"description":"A list of The Compliance Package Rules.\n"},"description":{"type":"string","description":"The description of compliance pack.\n"},"id":{"type":"string","description":"The ID of the Compliance Pack.\n"},"riskLevel":{"type":"integer","description":"The Ris Level.\n"},"status":{"type":"string","description":"The status of the resource. Valid values `ACTIVE`, `CREATING`.\n"}},"type":"object","required":["accountId","compliancePackId","compliancePackName","compliancePackTemplateId","configRules","description","id","riskLevel","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cfg/getCompliancePacksPackConfigRule:getCompliancePacksPackConfigRule":{"properties":{"configRuleId":{"type":"string","description":"The ID of the rule.\n"},"configRuleParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/getCompliancePacksPackConfigRuleConfigRuleParameter:getCompliancePacksPackConfigRuleConfigRuleParameter"},"description":"A list of parameter rules.\n"},"managedRuleIdentifier":{"type":"string","description":"Managed Rule Identifier.\n"}},"type":"object","required":["configRuleId","configRuleParameters","managedRuleIdentifier"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cfg/getCompliancePacksPackConfigRuleConfigRuleParameter:getCompliancePacksPackConfigRuleConfigRuleParameter":{"properties":{"parameterName":{"type":"string","description":"The Parameter Name.\n"},"parameterValue":{"type":"string","description":"The Parameter Value.\n"},"required":{"type":"boolean","description":"Required.\n"}},"type":"object","required":["parameterName","parameterValue","required"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cfg/getConfigurationRecordersRecorder:getConfigurationRecordersRecorder":{"properties":{"accountId":{"type":"string","description":"The ID of the Alicloud account.\n"},"id":{"type":"string","description":"The ID of the Config Configuration Recorder. Value as the \u003cspan pulumi-lang-nodejs=\"`accountId`\" pulumi-lang-dotnet=\"`AccountId`\" pulumi-lang-go=\"`accountId`\" pulumi-lang-python=\"`account_id`\" pulumi-lang-yaml=\"`accountId`\" pulumi-lang-java=\"`accountId`\"\u003e`account_id`\u003c/span\u003e.\n"},"organizationEnableStatus":{"type":"string","description":"Enterprise version configuration audit enabled status.\n"},"organizationMasterId":{"type":"integer","description":"The ID of the Enterprise management account.\n"},"resourceTypes":{"type":"array","items":{"type":"string"},"description":"A list of resource types to be monitored.\n"},"status":{"type":"string","description":"Status of resource monitoring.\n"}},"type":"object","required":["accountId","id","organizationEnableStatus","organizationMasterId","resourceTypes","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cfg/getDeliveriesDelivery:getDeliveriesDelivery":{"properties":{"accountId":{"type":"string","description":"The Aliyun User Id.\n"},"configurationItemChangeNotification":{"type":"boolean","description":"Open or close delivery configuration change history.\n"},"configurationSnapshot":{"type":"boolean","description":"Open or close timed snapshot of shipping resources.\n"},"deliveryChannelAssumeRoleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the role to be assumed by the delivery method.\n"},"deliveryChannelCondition":{"type":"string","description":"The rule attached to the delivery method.\n"},"deliveryChannelId":{"type":"string","description":"The ID of the delivery method.\n"},"deliveryChannelName":{"type":"string","description":"The name of the delivery method.\n"},"deliveryChannelTargetArn":{"type":"string","description":"The ARN of the delivery destination.\n"},"deliveryChannelType":{"type":"string","description":"The type of the delivery method.\n"},"description":{"type":"string","description":"The description of the delivery method.\n"},"id":{"type":"string","description":"The ID of the Delivery.\n"},"nonCompliantNotification":{"type":"boolean","description":"Open or close non-compliance events of delivery resources.\n"},"oversizedDataOssTargetArn":{"type":"string","description":"The oss ARN of the delivery channel when the value data oversized limit.\n"},"status":{"type":"integer","description":"The status of the delivery method. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: The delivery method is disabled. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: The delivery destination is enabled.\n"}},"type":"object","required":["accountId","configurationItemChangeNotification","configurationSnapshot","deliveryChannelAssumeRoleArn","deliveryChannelCondition","deliveryChannelId","deliveryChannelName","deliveryChannelTargetArn","deliveryChannelType","description","id","nonCompliantNotification","oversizedDataOssTargetArn","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cfg/getDeliveryChannelsChannel:getDeliveryChannelsChannel":{"properties":{"deliveryChannelAssumeRoleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the role assumed by delivery method.\n"},"deliveryChannelCondition":{"type":"string","description":"The rule attached to the delivery method. This parameter is applicable only to delivery methods of the Message Service (MNS) type.\n"},"deliveryChannelId":{"type":"string","description":"The ID of the delivery channel.\n"},"deliveryChannelName":{"type":"string","description":"The name of the delivery channel.\n"},"deliveryChannelTargetArn":{"type":"string","description":"The ARN of the delivery destination.\n"},"deliveryChannelType":{"type":"string","description":"The type of the delivery channel.\n"},"description":{"type":"string","description":"The description of the delivery channel.\n"},"id":{"type":"string","description":"The ID of the Config Delivery Channel.\n"},"status":{"type":"integer","description":"The status of the config delivery channel. Valid values \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: Disable delivery channel, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: Enable delivery channel.\n"}},"type":"object","required":["deliveryChannelAssumeRoleArn","deliveryChannelCondition","deliveryChannelId","deliveryChannelName","deliveryChannelTargetArn","deliveryChannelType","description","id","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cfg/getRulesRule:getRulesRule":{"properties":{"accountId":{"type":"string","description":"The ID of the Alibaba Cloud account.\n"},"compliancePackId":{"type":"string","description":"The compliance package ID.\n"},"compliances":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/getRulesRuleCompliance:getRulesRuleCompliance"},"description":"The information about the compliance evaluations based on the rule.\n"},"configRuleArn":{"type":"string","description":"The ARN of the Config Rule.\n"},"configRuleId":{"type":"string","description":"The ID of the Config Rule.\n"},"configRuleState":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`configRuleState`\" pulumi-lang-dotnet=\"`ConfigRuleState`\" pulumi-lang-go=\"`configRuleState`\" pulumi-lang-python=\"`config_rule_state`\" pulumi-lang-yaml=\"`configRuleState`\" pulumi-lang-java=\"`configRuleState`\"\u003e`config_rule_state`\u003c/span\u003e has been deprecated from provider version 1.124.1. New field \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e instead.\n"},"configRuleTriggerTypes":{"type":"string","description":"(Available since v1.124.1) A list of trigger types of config rule.\n"},"description":{"type":"string","description":"The description of the Config Rule.\n"},"eventSource":{"type":"string","description":"Event source of the Config Rule.\n"},"excludeResourceIdsScope":{"type":"string","description":"(Available since v1.124.1) The scope of exclude of resource ids.\n"},"id":{"type":"string","description":"The ID of the Config Rule.\n"},"inputParameters":{"type":"object","additionalProperties":{"type":"string"},"description":"The input parameters of the Config Rule.\n"},"maximumExecutionFrequency":{"type":"string","description":"(Available since v1.124.1) The frequency of maximum execution.\n"},"modifiedTimestamp":{"type":"string","description":"the timestamp of the Config Rule modified.\n"},"regionIdsScope":{"type":"string","description":"(Available since v1.124.1) The scope of region ids.\n"},"resourceGroupIdsScope":{"type":"string","description":"(Available since v1.124.1) The scope of resource group ids.\n"},"resourceTypesScopes":{"type":"array","items":{"type":"string"},"description":"(Available since v1.124.1) The scope of resource types.\n"},"riskLevel":{"type":"integer","description":"The risk level of Config Rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: Critical ,\u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: Warning , \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: Info.\n"},"ruleName":{"type":"string","description":"The name of config rule.\n"},"scopeComplianceResourceTypes":{"type":"array","items":{"type":"string"},"description":"The types of the resources to be evaluated against the rule.\n"},"sourceDetailMessageType":{"type":"string","description":"Rule trigger mechanism.\n"},"sourceIdentifier":{"type":"string","description":"The identifier of the managed rule or the arn of the custom function.\n"},"sourceMaximumExecutionFrequency":{"type":"string","description":"Rule execution cycle.\n"},"sourceOwner":{"type":"string","description":"The source owner of the Config Rule.\n"},"status":{"type":"string","description":"The status of the config rule, valid values: `ACTIVE`, `DELETING`, `EVALUATING` and `INACTIVE`.\n"},"tagKeyScope":{"type":"string","description":"(Available since v1.124.1) The scope of tag key.\n"},"tagValueScope":{"type":"string","description":"(Available since v1.124.1) The scope of tag value.\n"}},"type":"object","required":["accountId","compliances","compliancePackId","configRuleArn","configRuleId","configRuleState","configRuleTriggerTypes","description","eventSource","excludeResourceIdsScope","id","inputParameters","maximumExecutionFrequency","modifiedTimestamp","regionIdsScope","resourceGroupIdsScope","resourceTypesScopes","riskLevel","ruleName","scopeComplianceResourceTypes","sourceDetailMessageType","sourceIdentifier","sourceMaximumExecutionFrequency","sourceOwner","status","tagKeyScope","tagValueScope"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cfg/getRulesRuleCompliance:getRulesRuleCompliance":{"properties":{"complianceType":{"type":"string","description":"The compliance evaluation result of the target resources.\n"},"count":{"type":"integer","description":"The number of resources with the specified compliance evaluation result.\n"}},"type":"object","required":["complianceType","count"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:chatbot/getAgentsAgent:getAgentsAgent":{"properties":{"agentId":{"type":"string","description":"The agent id.\n"},"agentKey":{"type":"string","description":"Service space signature, which is used when PAAS interface specifies the service space.\n"},"agentName":{"type":"string","description":"The name of the agent.\n"},"id":{"type":"string","description":"ID of the agent.\n"}},"type":"object","required":["agentId","agentKey","agentName","id"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:clickhouse/DbClusterDbClusterAccessWhiteList:DbClusterDbClusterAccessWhiteList":{"properties":{"dbClusterIpArrayAttribute":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`dbClusterIpArrayAttribute`\" pulumi-lang-dotnet=\"`DbClusterIpArrayAttribute`\" pulumi-lang-go=\"`dbClusterIpArrayAttribute`\" pulumi-lang-python=\"`db_cluster_ip_array_attribute`\" pulumi-lang-yaml=\"`dbClusterIpArrayAttribute`\" pulumi-lang-java=\"`dbClusterIpArrayAttribute`\"\u003e`db_cluster_ip_array_attribute`\u003c/span\u003e has been removed from provider.\n"},"dbClusterIpArrayName":{"type":"string","description":"Whitelist group name.\n"},"securityIpList":{"type":"string","description":"The IP address list under the whitelist group.\n"}},"type":"object"},"alicloud:clickhouse/DbClusterMultiZoneVswitchList:DbClusterMultiZoneVswitchList":{"properties":{"vswitchId":{"type":"string","description":"The ID of the vswitch.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the vswitch.\n","willReplaceOnChanges":true}},"type":"object","required":["vswitchId"],"language":{"nodejs":{"requiredOutputs":["vswitchId","zoneId"]}}},"alicloud:clickhouse/getAccountsAccount:getAccountsAccount":{"properties":{"accountDescription":{"type":"string","description":"In Chinese, English letter. May contain Chinese and English characters, lowercase letters, numbers, and underscores (_), the dash (-). Cannot start with http:// and https:// at the beginning. Length is from 2 to 256 characters.\n"},"accountName":{"type":"string","description":"Account name: lowercase letters, numbers, underscores, lowercase letter; length no more than 16 characters.\n"},"accountType":{"type":"string","description":"The Valid Account type: `Normal`, `Super`.\n"},"dbClusterId":{"type":"string","description":"The DBCluster id.\n"},"id":{"type":"string","description":"The ID of the Account. Its value is same as Queue Name.\n"},"status":{"type":"string","description":"The status of the resource. Valid Status: `Creating`,`Available`,`Deleting`.\n"}},"type":"object","required":["accountDescription","accountName","accountType","dbClusterId","id","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:clickhouse/getBackupPoliciesPolicy:getBackupPoliciesPolicy":{"properties":{"backupRetentionPeriod":{"type":"integer","description":"Data backup days. Valid values: \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e.\n"},"dbClusterId":{"type":"string","description":"The db cluster id.\n"},"id":{"type":"string","description":"The ID of the Backup Policy.\n"},"preferredBackupPeriods":{"type":"array","items":{"type":"string"},"description":"DBCluster Backup period.\n"},"preferredBackupTime":{"type":"string","description":"Backup Time, UTC time.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object","required":["backupRetentionPeriod","dbClusterId","id","preferredBackupPeriods","preferredBackupTime","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:clickhouse/getDbClustersCluster:getDbClustersCluster":{"properties":{"aliUid":{"type":"string","description":"Alibaba Cloud account Id.\n"},"bid":{"type":"string","description":"The ID of the business process flow.\n"},"category":{"type":"string","description":"Instance family values include: Basic: Basic edition; HighAvailability: high availability edition.\n"},"commodityCode":{"type":"string","description":"The Commodity Code of the DBCluster.\n"},"connectionString":{"type":"string","description":"Connection string.\n"},"controlVersion":{"type":"string","description":"The control version of the DBCluster.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"dbClusterAccessWhiteLists":{"type":"array","items":{"$ref":"#/types/alicloud:clickhouse/getDbClustersClusterDbClusterAccessWhiteList:getDbClustersClusterDbClusterAccessWhiteList"},"description":"The db cluster access white list.\n"},"dbClusterDescription":{"type":"string","description":"The DBCluster description.\n"},"dbClusterId":{"type":"string"},"dbClusterNetworkType":{"type":"string","description":"The DBCluster network type.\n"},"dbClusterType":{"type":"string","description":"The DBCluster type.\n"},"dbNodeClass":{"type":"string","description":"The node class of the DBCluster.\n"},"dbNodeCount":{"type":"string","description":"The node count of the DBCluster.\n"},"dbNodeStorage":{"type":"string","description":"The node storage of the DBCluster.\n"},"encryptionKey":{"type":"string","description":"Key management service KMS key ID.\n"},"encryptionType":{"type":"string","description":"Currently only supports ECS disk encryption, with a value of CloudDisk, not encrypted when empty.\n"},"engine":{"type":"string","description":"The Engine of the DBCluster.\n"},"engineVersion":{"type":"string","description":"The engine version of the DBCluster.\n"},"expireTime":{"type":"string","description":"The expiration time of the DBCluster.\n"},"id":{"type":"string","description":"The ID of the DBCluster.\n"},"isExpired":{"type":"string","description":"If the instance has expired.\n"},"lockMode":{"type":"string","description":"The lock mode of the DBCluster.\n"},"lockReason":{"type":"string","description":"Lock reason of the DBCluster.\n"},"maintainTime":{"type":"string","description":"Examples of the maintenance window, in the format of hh:mmZ-hh:mm Z.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`,`Subscription`.\n"},"port":{"type":"integer","description":"Connection port.\n"},"publicConnectionString":{"type":"string","description":"A public IP address for the connection.\n"},"publicPort":{"type":"string","description":"Public network port.\n"},"scaleOutStatuses":{"type":"array","items":{"$ref":"#/types/alicloud:clickhouse/getDbClustersClusterScaleOutStatus:getDbClustersClusterScaleOutStatus"},"description":"Scale state.\n"},"status":{"type":"string","description":"The status of the DBCluster. Valid values: `Running`,`Creating`,`Deleting`,`Restarting`,`Preparing`.\n"},"storageType":{"type":"string","description":"Storage type of DBCluster. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl2`\" pulumi-lang-dotnet=\"`CloudEssdPl2`\" pulumi-lang-go=\"`cloudEssdPl2`\" pulumi-lang-python=\"`cloud_essd_pl2`\" pulumi-lang-yaml=\"`cloudEssdPl2`\" pulumi-lang-java=\"`cloudEssdPl2`\"\u003e`cloud_essd_pl2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl3`\" pulumi-lang-dotnet=\"`CloudEssdPl3`\" pulumi-lang-go=\"`cloudEssdPl3`\" pulumi-lang-python=\"`cloud_essd_pl3`\" pulumi-lang-yaml=\"`cloudEssdPl3`\" pulumi-lang-java=\"`cloudEssdPl3`\"\u003e`cloud_essd_pl3`\u003c/span\u003e.\n"},"supportBackup":{"type":"integer","description":"Support fallback scheme.\n"},"supportHttpsPort":{"type":"boolean","description":"The system supports http port number.\n"},"supportMysqlPort":{"type":"boolean","description":"Supports Mysql, and those of the ports.\n"},"vpcCloudInstanceId":{"type":"string","description":"Virtual Private Cloud (VPC cloud instance ID.\n"},"vpcId":{"type":"string","description":"The VPC ID of the DBCluster.\n"},"vswitchId":{"type":"string","description":"The vswitch id of the DBCluster.\n"},"zoneId":{"type":"string","description":"The zone ID of the DBCluster.\n"}},"type":"object","required":["aliUid","bid","category","commodityCode","connectionString","controlVersion","createTime","dbClusterAccessWhiteLists","dbClusterDescription","dbClusterId","dbClusterNetworkType","dbClusterType","dbNodeClass","dbNodeCount","dbNodeStorage","encryptionKey","encryptionType","engine","engineVersion","expireTime","id","isExpired","lockMode","lockReason","maintainTime","paymentType","port","publicConnectionString","publicPort","scaleOutStatuses","status","storageType","supportBackup","supportHttpsPort","supportMysqlPort","vpcCloudInstanceId","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:clickhouse/getDbClustersClusterDbClusterAccessWhiteList:getDbClustersClusterDbClusterAccessWhiteList":{"properties":{"dbClusterIpArrayAttribute":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`dbClusterIpArrayAttribute`\" pulumi-lang-dotnet=\"`DbClusterIpArrayAttribute`\" pulumi-lang-go=\"`dbClusterIpArrayAttribute`\" pulumi-lang-python=\"`db_cluster_ip_array_attribute`\" pulumi-lang-yaml=\"`dbClusterIpArrayAttribute`\" pulumi-lang-java=\"`dbClusterIpArrayAttribute`\"\u003e`db_cluster_ip_array_attribute`\u003c/span\u003e has been removed from provider.\n"},"dbClusterIpArrayName":{"type":"string","description":"Whitelist group name.\n"},"securityIpList":{"type":"string","description":"The IP address list under the whitelist group.\n"}},"type":"object","required":["dbClusterIpArrayAttribute","dbClusterIpArrayName","securityIpList"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:clickhouse/getDbClustersClusterScaleOutStatus:getDbClustersClusterScaleOutStatus":{"properties":{"progress":{"type":"string","description":"Process.\n"},"ratio":{"type":"string","description":"Efficiency.\n"}},"type":"object","required":["progress","ratio"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:clickhouse/getRegionsRegion:getRegionsRegion":{"properties":{"regionId":{"type":"string","description":"The Region ID.\n"},"zoneIds":{"type":"array","items":{"$ref":"#/types/alicloud:clickhouse/getRegionsRegionZoneId:getRegionsRegionZoneId"},"description":"A list of available zone ids in the region_id.\n"}},"type":"object","required":["regionId","zoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:clickhouse/getRegionsRegionZoneId:getRegionsRegionZoneId":{"properties":{"vpcEnabled":{"type":"boolean","description":"Whether to support vpc network.\n"},"zoneId":{"type":"string","description":"The zone ID.\n"}},"type":"object","required":["vpcEnabled","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:clickhouseenterprisedbcluster/AccountDmlAuthSetting:AccountDmlAuthSetting":{"properties":{"allowDatabases":{"type":"array","items":{"type":"string"},"description":"The list of databases that require authorization. If there are more than one, separate them with commas (,).\n"},"allowDictionaries":{"type":"array","items":{"type":"string"},"description":"List of dictionaries that require authorization. If there are more than one, separate them with commas (,).\n"},"ddlAuthority":{"type":"boolean","description":"Whether to grant the DDL permission to the database account. Value description:\n"},"dmlAuthority":{"type":"integer","description":"Whether to grant the DML permission to the database account. The values are as follows:\n"}},"type":"object","required":["ddlAuthority","dmlAuthority"]},"alicloud:clickhouseenterprisedbcluster/ClickHouseEnterpriseDbClusterEndpoint:ClickHouseEnterpriseDbClusterEndpoint":{"properties":{"computingGroupId":{"type":"string","description":"The computing group ID.\n"},"connectionString":{"type":"string","description":"The instance connection string.\n"},"endpointName":{"type":"string","description":"The endpoint name.\n"},"ipAddress":{"type":"string","description":"The IP address.\n"},"netType":{"type":"string","description":"The network type of the connection string.\n"},"ports":{"type":"array","items":{"$ref":"#/types/alicloud:clickhouseenterprisedbcluster/ClickHouseEnterpriseDbClusterEndpointPort:ClickHouseEnterpriseDbClusterEndpointPort"},"description":"A list of port details.\n"},"status":{"type":"string","description":"The instance status.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n"},"vpcInstanceId":{"type":"string","description":"The VPC instance ID.\n"},"vswitchId":{"type":"string","description":"vSwitch ID.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["computingGroupId","connectionString","endpointName","ipAddress","netType","ports","status","vpcId","vpcInstanceId","vswitchId"]}}},"alicloud:clickhouseenterprisedbcluster/ClickHouseEnterpriseDbClusterEndpointPort:ClickHouseEnterpriseDbClusterEndpointPort":{"properties":{"port":{"type":"integer","description":"The access port.\n"},"protocol":{"type":"string","description":"The protocol type.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port","protocol"]}}},"alicloud:clickhouseenterprisedbcluster/ClickHouseEnterpriseDbClusterMultiZone:ClickHouseEnterpriseDbClusterMultiZone":{"properties":{"vswitchIds":{"type":"array","items":{"type":"string"},"description":"List of vSwitch IDs.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"Zone ID.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:cloudauth/getFaceConfigsConfig:getFaceConfigsConfig":{"properties":{"bizName":{"type":"string","description":"Scene name.\n"},"bizType":{"type":"string","description":"Scene type. **NOTE:** The\u003cspan pulumi-lang-nodejs=\" bizType \" pulumi-lang-dotnet=\" BizType \" pulumi-lang-go=\" bizType \" pulumi-lang-python=\" biz_type \" pulumi-lang-yaml=\" bizType \" pulumi-lang-java=\" bizType \"\u003e biz_type \u003c/span\u003ecannot exceed 32 characters and can only use English letters, numbers and dashes (-).\n"},"gmtUpdated":{"type":"string","description":"The Update Time.\n"}},"type":"object","required":["bizName","bizType","gmtUpdated"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudconnect/getNetworksNetwork:getNetworksNetwork":{"properties":{"cidrBlock":{"type":"string","description":"CidrBlock of the CCN instance.\n"},"description":{"type":"string"},"id":{"type":"string","description":"ID of the CCN instance.\n"},"isDefault":{"type":"boolean","description":"IsDefault of the CCN instance.\n"},"name":{"type":"string","description":"Name of the CCN instance.\n"}},"type":"object","required":["cidrBlock","description","id","isDefault","name"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudcontrol/getPricesPrice:getPricesPrice":{"properties":{"currency":{"type":"string","description":"Currency. Value range: CNY: RMB. USD: USD. JPY: Japanese yen.\n"},"discountPrice":{"type":"number","description":"Discount\n"},"moduleDetails":{"type":"array","items":{"$ref":"#/types/alicloud:cloudcontrol/getPricesPriceModuleDetail:getPricesPriceModuleDetail"},"description":"Pricing Module Price Details\n"},"originalPrice":{"type":"number","description":"Original Price\n"},"promotionDetails":{"type":"array","items":{"$ref":"#/types/alicloud:cloudcontrol/getPricesPricePromotionDetail:getPricesPricePromotionDetail"},"description":"Offer Details\n"},"tradePrice":{"type":"number","description":"Preferential price\n"}},"type":"object","required":["currency","discountPrice","moduleDetails","originalPrice","promotionDetails","tradePrice"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudcontrol/getPricesPriceModuleDetail:getPricesPriceModuleDetail":{"properties":{"costAfterDiscount":{"type":"number","description":"Preferential price.\n"},"invoiceDiscount":{"type":"number","description":"Discount.\n"},"moduleCode":{"type":"string","description":"Valuation Module Identification.\n"},"moduleName":{"type":"string","description":"Pricing Module Name.\n"},"originalCost":{"type":"number","description":"Original Price.\n"},"priceType":{"type":"string","description":"Price Type.\n"}},"type":"object","required":["costAfterDiscount","invoiceDiscount","moduleCode","moduleName","originalCost","priceType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudcontrol/getPricesPricePromotionDetail:getPricesPricePromotionDetail":{"properties":{"promotionDesc":{"type":"string","description":"Offer Description.\n"},"promotionId":{"type":"integer","description":"Offer logo.\n"},"promotionName":{"type":"string","description":"Offer Name.\n"}},"type":"object","required":["promotionDesc","promotionId","promotionName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudcontrol/getProductsProduct:getProductsProduct":{"properties":{"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"productCode":{"type":"string","description":"The first ID of the resource\n"},"productName":{"type":"string","description":"The name of the resource\n"}},"type":"object","required":["id","productCode","productName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudcontrol/getResourceTypesType:getResourceTypesType":{"properties":{"createOnlyProperties":{"type":"array","items":{"type":"string"},"description":"Create an operation private parameter collection. The attributes are not returned in the resource query operation, but the parameters are required in the creation operation.\n"},"deleteOnlyProperties":{"type":"array","items":{"type":"string"},"description":"Delete operation private parameter collection. The attribute is not returned in the resource query operation, but the parameter is required in the delete operation.\n"},"filterProperties":{"type":"array","items":{"type":"string"},"description":"A collection of attributes that can be used as the filter parameter during the list operation.\n"},"getOnlyProperties":{"type":"array","items":{"type":"string"},"description":"Query operation private parameter collection. The attribute is not returned in the resource query operation, but the input parameter is required in the query operation.\n"},"getResponseProperties":{"type":"array","items":{"type":"string"},"description":"The collection of properties returned by the query.\n"},"handlers":{"$ref":"#/types/alicloud:cloudcontrol/getResourceTypesTypeHandlers:getResourceTypesTypeHandlers","description":"Supported resource operation information (including RAM permissions).\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"infos":{"type":"array","items":{"$ref":"#/types/alicloud:cloudcontrol/getResourceTypesTypeInfo:getResourceTypesTypeInfo"},"description":"Basic information about the resource type.\n"},"listOnlyProperties":{"type":"array","items":{"type":"string"},"description":"Enumerate the operation private parameter collection. The attributes are not returned in the resource query operation, but the parameters that need to be passed in the enumeration operation.\n"},"listResponseProperties":{"type":"array","items":{"type":"string"},"description":"Enumerates the returned property collection.\n"},"primaryIdentifier":{"type":"string","description":"Resource ID\n"},"product":{"type":"string","description":"Product Code.\n"},"properties":{"type":"string","description":"Resource attribute definition, where key is the attribute name and value is the attribute details.\n"},"publicProperties":{"type":"array","items":{"type":"string"},"description":"A collection of public attributes, which are the basic attributes of the resource. Non-Operation private parameters.\n"},"readOnlyProperties":{"type":"array","items":{"type":"string"},"description":"A set of read-only parameters. It is returned only in the list or get Operation. It is not used as an input parameter during creation and change.\n"},"requireds":{"type":"array","items":{"type":"string"},"description":"Resource creation required parameter collection.\n"},"resourceType":{"type":"string","description":"The resource type.\n"},"sensitiveInfoProperties":{"type":"array","items":{"type":"string"},"description":"A collection of sensitive attributes, such as passwords.\n"},"updateOnlyProperties":{"type":"array","items":{"type":"string"},"description":"Update operation private parameter collection. The attributes are not returned in the resource query operation, but the parameters are required in the update operation.\n"},"updateTypeProperties":{"type":"array","items":{"type":"string"},"description":"A collection of properties that can be modified.\n"}},"type":"object","required":["createOnlyProperties","deleteOnlyProperties","filterProperties","getOnlyProperties","getResponseProperties","handlers","id","infos","listOnlyProperties","listResponseProperties","primaryIdentifier","product","properties","publicProperties","readOnlyProperties","requireds","resourceType","sensitiveInfoProperties","updateOnlyProperties","updateTypeProperties"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudcontrol/getResourceTypesTypeHandlers:getResourceTypesTypeHandlers":{"properties":{"creates":{"type":"array","items":{"$ref":"#/types/alicloud:cloudcontrol/getResourceTypesTypeHandlersCreate:getResourceTypesTypeHandlersCreate"},"description":"Create operation association information.\n"},"deletes":{"type":"array","items":{"$ref":"#/types/alicloud:cloudcontrol/getResourceTypesTypeHandlersDelete:getResourceTypesTypeHandlersDelete"},"description":"Delete operation association information.\n"},"gets":{"type":"array","items":{"$ref":"#/types/alicloud:cloudcontrol/getResourceTypesTypeHandlersGet:getResourceTypesTypeHandlersGet"},"description":"Query operation association information.\n"},"lists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudcontrol/getResourceTypesTypeHandlersList:getResourceTypesTypeHandlersList"},"description":"List operation association information.\n"},"updates":{"type":"array","items":{"$ref":"#/types/alicloud:cloudcontrol/getResourceTypesTypeHandlersUpdate:getResourceTypesTypeHandlersUpdate"},"description":"Update operation association information.\n"}},"type":"object","required":["creates","deletes","gets","lists","updates"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudcontrol/getResourceTypesTypeHandlersCreate:getResourceTypesTypeHandlersCreate":{"properties":{"permissions":{"type":"array","items":{"type":"string"},"description":"The collection of required RAM permission information.\n"}},"type":"object","required":["permissions"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudcontrol/getResourceTypesTypeHandlersDelete:getResourceTypesTypeHandlersDelete":{"properties":{"permissions":{"type":"array","items":{"type":"string"},"description":"The collection of required RAM permission information.\n"}},"type":"object","required":["permissions"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudcontrol/getResourceTypesTypeHandlersGet:getResourceTypesTypeHandlersGet":{"properties":{"permissions":{"type":"array","items":{"type":"string"},"description":"The collection of required RAM permission information.\n"}},"type":"object","required":["permissions"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudcontrol/getResourceTypesTypeHandlersList:getResourceTypesTypeHandlersList":{"properties":{"permissions":{"type":"array","items":{"type":"string"},"description":"The collection of required RAM permission information.\n"}},"type":"object","required":["permissions"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudcontrol/getResourceTypesTypeHandlersUpdate:getResourceTypesTypeHandlersUpdate":{"properties":{"permissions":{"type":"array","items":{"type":"string"},"description":"The collection of required RAM permission information.\n"}},"type":"object","required":["permissions"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudcontrol/getResourceTypesTypeInfo:getResourceTypesTypeInfo":{"properties":{"chargeType":{"type":"string","description":"Payment formpaid (paid)(free).\n"},"deliveryScope":{"type":"string","description":"Delivery Levelcenter (centralized deployment level)region (regional deployment level)zone (Availability zone deployment level).\n"},"description":{"type":"string","description":"Resource type description.\n"},"title":{"type":"string","description":"The resource type name.\n"}},"type":"object","required":["chargeType","deliveryScope","description","title"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/AddressBookEcsTag:AddressBookEcsTag":{"properties":{"tagKey":{"type":"string","description":"The key of ECS tag that to be matched.\n"},"tagValue":{"type":"string","description":"The value of ECS tag that to be matched.\n"}},"type":"object"},"alicloud:cloudfirewall/FirewallVpcFirewallCenLocalVpc:FirewallVpcFirewallCenLocalVpc":{"properties":{"attachmentId":{"type":"string","description":"The connection ID of the network instance.\n"},"attachmentName":{"type":"string","description":"The connection name of the network instance.\n"},"defendCidrLists":{"type":"array","items":{"type":"string"},"description":"The list of network segments protected by the VPC firewall.\n"},"eniLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/FirewallVpcFirewallCenLocalVpcEniList:FirewallVpcFirewallCenLocalVpcEniList"},"description":"List of elastic network cards.\n"},"manualVswitchId":{"type":"string","description":"The ID of the vSwitch specified when the routing mode is manual mode.\n"},"networkInstanceId":{"type":"string","description":"The ID of the VPC instance that created the VPC firewall.\n","willReplaceOnChanges":true},"networkInstanceName":{"type":"string","description":"The name of the network instance.\n"},"networkInstanceType":{"type":"string","description":"The type of the network instance. Value: **VPC * *.\n"},"ownerId":{"type":"string","description":"The UID of the Alibaba Cloud account to which the VPC belongs.\n"},"regionNo":{"type":"string","description":"The region ID of the VPC.\n"},"routeMode":{"type":"string","description":"Routing mode,. Value:-auto: indicates automatic mode.-manual: indicates manual mode.\n"},"supportManualMode":{"type":"string","description":"Whether routing mode supports manual mode. Value:-**1**: Supported.-**0**: Not supported.\n"},"transitRouterId":{"type":"string","description":"The ID of the CEN-TR instance.\n"},"transitRouterType":{"type":"string","description":"The version of the cloud enterprise network forwarding router (CEN-TR). Value:-**Basic**: Basic Edition.-**Enterprise**: Enterprise Edition.\n"},"vpcCidrTableLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/FirewallVpcFirewallCenLocalVpcVpcCidrTableList:FirewallVpcFirewallCenLocalVpcVpcCidrTableList"},"description":"The VPC network segment list.\n"},"vpcId":{"type":"string","description":"The ID of the VPC instance.\n"},"vpcName":{"type":"string","description":"The instance name of the VPC.\n"}},"type":"object","required":["networkInstanceId"],"language":{"nodejs":{"requiredOutputs":["attachmentId","attachmentName","defendCidrLists","eniLists","manualVswitchId","networkInstanceId","networkInstanceName","networkInstanceType","ownerId","regionNo","routeMode","supportManualMode","transitRouterId","transitRouterType","vpcCidrTableLists","vpcId","vpcName"]}}},"alicloud:cloudfirewall/FirewallVpcFirewallCenLocalVpcEniList:FirewallVpcFirewallCenLocalVpcEniList":{"properties":{"eniId":{"type":"string","description":"The ID of the instance of the ENI in the VPC.\n"},"eniPrivateIpAddress":{"type":"string","description":"The private IP address of the ENI in the VPC.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["eniId","eniPrivateIpAddress"]}}},"alicloud:cloudfirewall/FirewallVpcFirewallCenLocalVpcVpcCidrTableList:FirewallVpcFirewallCenLocalVpcVpcCidrTableList":{"properties":{"routeEntryLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryList:FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryList"},"description":"The list of route entries in the VPC.\n"},"routeTableId":{"type":"string","description":"The ID of the route table of the VPC.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["routeEntryLists","routeTableId"]}}},"alicloud:cloudfirewall/FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryList:FirewallVpcFirewallCenLocalVpcVpcCidrTableListRouteEntryList":{"properties":{"destinationCidr":{"type":"string","description":"The target network segment of the VPC.\n"},"nextHopInstanceId":{"type":"string","description":"The ID of the next hop instance in the VPC.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["destinationCidr","nextHopInstanceId"]}}},"alicloud:cloudfirewall/FirewallVpcFirewallLocalVpc:FirewallVpcFirewallLocalVpc":{"properties":{"eniId":{"type":"string","description":"The ID of the instance of the ENI in the peer VPC.\n"},"eniPrivateIpAddress":{"type":"string","description":"The private IP address of the elastic network card in the peer VPC.\n"},"localVpcCidrTableLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/FirewallVpcFirewallLocalVpcLocalVpcCidrTableList:FirewallVpcFirewallLocalVpcLocalVpcCidrTableList"},"description":"The network segment list of the local VPC. See \u003cspan pulumi-lang-nodejs=\"`localVpcCidrTableList`\" pulumi-lang-dotnet=\"`LocalVpcCidrTableList`\" pulumi-lang-go=\"`localVpcCidrTableList`\" pulumi-lang-python=\"`local_vpc_cidr_table_list`\" pulumi-lang-yaml=\"`localVpcCidrTableList`\" pulumi-lang-java=\"`localVpcCidrTableList`\"\u003e`local_vpc_cidr_table_list`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"regionNo":{"type":"string","description":"The region ID of the local VPC.\n","willReplaceOnChanges":true},"routerInterfaceId":{"type":"string","description":"The ID of the router interface in the peer VPC.\n"},"vpcId":{"type":"string","description":"The ID of the local VPC instance.\n","willReplaceOnChanges":true},"vpcName":{"type":"string","description":"The instance name of the peer VPC.\n"}},"type":"object","required":["localVpcCidrTableLists","regionNo","vpcId"],"language":{"nodejs":{"requiredOutputs":["eniId","eniPrivateIpAddress","localVpcCidrTableLists","regionNo","routerInterfaceId","vpcId","vpcName"]}}},"alicloud:cloudfirewall/FirewallVpcFirewallLocalVpcLocalVpcCidrTableList:FirewallVpcFirewallLocalVpcLocalVpcCidrTableList":{"properties":{"localRouteEntryLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryList:FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryList"},"description":"The list of route entries of the local VPC. See \u003cspan pulumi-lang-nodejs=\"`localRouteEntryList`\" pulumi-lang-dotnet=\"`LocalRouteEntryList`\" pulumi-lang-go=\"`localRouteEntryList`\" pulumi-lang-python=\"`local_route_entry_list`\" pulumi-lang-yaml=\"`localRouteEntryList`\" pulumi-lang-java=\"`localRouteEntryList`\"\u003e`local_route_entry_list`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"localRouteTableId":{"type":"string","description":"The ID of the route table of the local VPC.\n","willReplaceOnChanges":true}},"type":"object","required":["localRouteEntryLists","localRouteTableId"]},"alicloud:cloudfirewall/FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryList:FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryList":{"properties":{"localDestinationCidr":{"type":"string","description":"The target network segment of the local VPC.\n","willReplaceOnChanges":true},"localNextHopInstanceId":{"type":"string","description":"The ID of the next-hop instance in the local VPC.\n","willReplaceOnChanges":true}},"type":"object","required":["localDestinationCidr","localNextHopInstanceId"]},"alicloud:cloudfirewall/FirewallVpcFirewallPeerVpc:FirewallVpcFirewallPeerVpc":{"properties":{"eniId":{"type":"string","description":"The ID of the instance of the ENI in the peer VPC.\n"},"eniPrivateIpAddress":{"type":"string","description":"The private IP address of the elastic network card in the peer VPC.\n"},"peerVpcCidrTableLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/FirewallVpcFirewallPeerVpcPeerVpcCidrTableList:FirewallVpcFirewallPeerVpcPeerVpcCidrTableList"},"description":"The network segment list of the peer VPC. See \u003cspan pulumi-lang-nodejs=\"`peerVpcCidrTableList`\" pulumi-lang-dotnet=\"`PeerVpcCidrTableList`\" pulumi-lang-go=\"`peerVpcCidrTableList`\" pulumi-lang-python=\"`peer_vpc_cidr_table_list`\" pulumi-lang-yaml=\"`peerVpcCidrTableList`\" pulumi-lang-java=\"`peerVpcCidrTableList`\"\u003e`peer_vpc_cidr_table_list`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"regionNo":{"type":"string","description":"The region ID of the peer VPC.\n","willReplaceOnChanges":true},"routerInterfaceId":{"type":"string","description":"The ID of the router interface in the peer VPC.\n"},"vpcId":{"type":"string","description":"The ID of the peer VPC instance.\n","willReplaceOnChanges":true},"vpcName":{"type":"string","description":"The instance name of the peer VPC.\n"}},"type":"object","required":["peerVpcCidrTableLists","regionNo","vpcId"],"language":{"nodejs":{"requiredOutputs":["eniId","eniPrivateIpAddress","peerVpcCidrTableLists","regionNo","routerInterfaceId","vpcId","vpcName"]}}},"alicloud:cloudfirewall/FirewallVpcFirewallPeerVpcPeerVpcCidrTableList:FirewallVpcFirewallPeerVpcPeerVpcCidrTableList":{"properties":{"peerRouteEntryLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryList:FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryList"},"description":"Peer VPC route entry list information. See \u003cspan pulumi-lang-nodejs=\"`peerRouteEntryList`\" pulumi-lang-dotnet=\"`PeerRouteEntryList`\" pulumi-lang-go=\"`peerRouteEntryList`\" pulumi-lang-python=\"`peer_route_entry_list`\" pulumi-lang-yaml=\"`peerRouteEntryList`\" pulumi-lang-java=\"`peerRouteEntryList`\"\u003e`peer_route_entry_list`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"peerRouteTableId":{"type":"string","description":"The ID of the route table of the peer VPC.\n","willReplaceOnChanges":true}},"type":"object","required":["peerRouteEntryLists","peerRouteTableId"]},"alicloud:cloudfirewall/FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryList:FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryList":{"properties":{"peerDestinationCidr":{"type":"string","description":"The target network segment of the peer VPC.\n","willReplaceOnChanges":true},"peerNextHopInstanceId":{"type":"string","description":"The ID of the next-hop instance in the peer VPC.\n","willReplaceOnChanges":true}},"type":"object","required":["peerDestinationCidr","peerNextHopInstanceId"]},"alicloud:cloudfirewall/NatFirewallNatRouteEntryList:NatFirewallNatRouteEntryList":{"properties":{"destinationCidr":{"type":"string","description":"The destination network segment of the default route.\n","willReplaceOnChanges":true},"nexthopId":{"type":"string","description":"The next hop address of the original NAT gateway.\n","willReplaceOnChanges":true},"nexthopType":{"type":"string","description":"The network type of the next hop. Value: NatGateway : NAT Gateway.\n","willReplaceOnChanges":true},"routeTableId":{"type":"string","description":"The route table where the default route of the NAT gateway is located.\n","willReplaceOnChanges":true}},"type":"object","required":["destinationCidr","nexthopId","nexthopType","routeTableId"]},"alicloud:cloudfirewall/UserAlarmConfigAlarmConfig:UserAlarmConfigAlarmConfig":{"properties":{"alarmHour":{"type":"string","description":"The time of the day when the alarm is triggered. The range is `0 ~ 24`.\n"},"alarmNotify":{"type":"string","description":"The alarm notification type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e(sms/email), \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e(sms), \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e(email), \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e(none)\n"},"alarmPeriod":{"type":"string","description":"The alarm period. Possible values are: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e (8:00 ~ 20:00), \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e 24 hours.\n"},"alarmType":{"type":"string","description":"The alarm type. Possible values are: `weeklyReport`, `trafficPreAlert`, `outgoingRiskAll`, `ipsMiddlethreat`, \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e, `ipsHighthreat`, `outgoingRiskNonWhite`, `ipsIgnoreResolved` etc.\n"},"alarmValue":{"type":"string","description":"The alarm notification message.\n"},"alarmWeekDay":{"type":"string","description":"The day of the week when the alarm is triggered. The range is `1 ~ 7`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["alarmHour","alarmNotify","alarmPeriod","alarmType","alarmValue","alarmWeekDay"]}}},"alicloud:cloudfirewall/UserAlarmConfigContactConfig:UserAlarmConfigContactConfig":{"properties":{"email":{"type":"string","description":"The email address of the contact.\n"},"mobilePhone":{"type":"string","description":"The mobile phone number of the contact.\n"},"name":{"type":"string","description":"The name of the contact.\n"},"status":{"type":"string","description":"The status of the contact configuration. Possible values are: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e disable, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e enable.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["email","mobilePhone","name","status"]}}},"alicloud:cloudfirewall/UserAlarmConfigNotifyConfig:UserAlarmConfigNotifyConfig":{"properties":{"notifyType":{"type":"string","description":"The notification type. Possible values are \u003cspan pulumi-lang-nodejs=\"`sms`\" pulumi-lang-dotnet=\"`Sms`\" pulumi-lang-go=\"`sms`\" pulumi-lang-python=\"`sms`\" pulumi-lang-yaml=\"`sms`\" pulumi-lang-java=\"`sms`\"\u003e`sms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mail`\" pulumi-lang-dotnet=\"`Mail`\" pulumi-lang-go=\"`mail`\" pulumi-lang-python=\"`mail`\" pulumi-lang-yaml=\"`mail`\" pulumi-lang-java=\"`mail`\"\u003e`mail`\u003c/span\u003e.\n"},"notifyValue":{"type":"string","description":"The notification value. Depending on the value of \u003cspan pulumi-lang-nodejs=\"`notifyType`\" pulumi-lang-dotnet=\"`NotifyType`\" pulumi-lang-go=\"`notifyType`\" pulumi-lang-python=\"`notify_type`\" pulumi-lang-yaml=\"`notifyType`\" pulumi-lang-java=\"`notifyType`\"\u003e`notify_type`\u003c/span\u003e, it can be a mobile phone number or an email address.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["notifyType","notifyValue"]}}},"alicloud:cloudfirewall/getAddressBooksBook:getAddressBooksBook":{"properties":{"addressLists":{"type":"array","items":{"type":"string"},"description":"The addresses in the Address Book.\n"},"autoAddTagEcs":{"type":"integer","description":"Whether you want to automatically add new matching tags of the ECS IP address to the Address Book.\n"},"description":{"type":"string","description":"The description of the Address Book.\n"},"ecsTags":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/getAddressBooksBookEcsTag:getAddressBooksBookEcsTag"},"description":"The logical relation among the ECS tags that to be matchedh.\n"},"groupName":{"type":"string","description":"The name of the Address Book.\n"},"groupType":{"type":"string","description":"The type of the Address Book. Valid values: \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tag`\" pulumi-lang-dotnet=\"`Tag`\" pulumi-lang-go=\"`tag`\" pulumi-lang-python=\"`tag`\" pulumi-lang-yaml=\"`tag`\" pulumi-lang-java=\"`tag`\"\u003e`tag`\u003c/span\u003e.\n**NOTE:** From version 1.213.1, \u003cspan pulumi-lang-nodejs=\"`groupType`\" pulumi-lang-dotnet=\"`GroupType`\" pulumi-lang-go=\"`groupType`\" pulumi-lang-python=\"`group_type`\" pulumi-lang-yaml=\"`groupType`\" pulumi-lang-java=\"`groupType`\"\u003e`group_type`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e.\n"},"groupUuid":{"type":"string","description":"The ID of the Address Book.\n"},"id":{"type":"string","description":"The ID of the Address Book.\n"},"tagRelation":{"type":"string","description":"One or more tags for the relationship between.\n"}},"type":"object","required":["addressLists","autoAddTagEcs","description","ecsTags","groupName","groupType","groupUuid","id","tagRelation"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getAddressBooksBookEcsTag:getAddressBooksBookEcsTag":{"properties":{"tagKey":{"type":"string","description":"The key of ECS tag that to be matched.\n"},"tagValue":{"type":"string","description":"The value of ECS tag that to be matched.\n"}},"type":"object","required":["tagKey","tagValue"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getControlPoliciesPolicy:getControlPoliciesPolicy":{"properties":{"aclAction":{"type":"string","description":"The action that Cloud Firewall performs on the traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`log`\" pulumi-lang-dotnet=\"`Log`\" pulumi-lang-go=\"`log`\" pulumi-lang-python=\"`log`\" pulumi-lang-yaml=\"`log`\" pulumi-lang-java=\"`log`\"\u003e`log`\u003c/span\u003e.\n"},"aclUuid":{"type":"string","description":"The unique ID of the access control policy.\n"},"applicationId":{"type":"string","description":"The application ID in the access control policy.\n"},"applicationName":{"type":"string","description":"The type of the application that the access control policy supports.\n"},"description":{"type":"string","description":"The description of the access control policy.\n"},"destPort":{"type":"string","description":"The destination port in the access control policy.\n"},"destPortGroup":{"type":"string","description":"The name of the destination port address book in the access control policy.\n"},"destPortGroupPorts":{"type":"array","items":{"type":"string"},"description":"The ports in the destination port address book.\n"},"destPortType":{"type":"string","description":"The type of the destination port in the access control policy.\n"},"destination":{"type":"string","description":"The destination address defined in the access control policy.\n"},"destinationGroupCidrs":{"type":"array","items":{"type":"string"},"description":"The CIDR blocks in the destination address book.\n"},"destinationGroupType":{"type":"string","description":"The type of the destination address book in the access control policy.\n"},"destinationType":{"type":"string","description":"The type of the destination address in the access control policy.\n"},"direction":{"type":"string","description":"The direction of the traffic to which the access control policy applies. Valid values: \u003cspan pulumi-lang-nodejs=\"`in`\" pulumi-lang-dotnet=\"`In`\" pulumi-lang-go=\"`in`\" pulumi-lang-python=\"`in`\" pulumi-lang-yaml=\"`in`\" pulumi-lang-java=\"`in`\"\u003e`in`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`out`\" pulumi-lang-dotnet=\"`Out`\" pulumi-lang-go=\"`out`\" pulumi-lang-python=\"`out`\" pulumi-lang-yaml=\"`out`\" pulumi-lang-java=\"`out`\"\u003e`out`\u003c/span\u003e.\n"},"dnsResult":{"type":"string","description":"The DNS resolution result.\n"},"dnsResultTime":{"type":"string","description":"The timestamp of the DNS resolution result.\n"},"hitTimes":{"type":"string","description":"The number of hits for the access control policy.\n"},"id":{"type":"string","description":"The ID of the Control Policy. It formats as `\u003cacl_uuid\u003e:\u003cdirection\u003e`.\n"},"order":{"type":"integer","description":"The priority of the access control policy.\n"},"proto":{"type":"string","description":"The type of the protocol in the access control policy. Valid values: If \u003cspan pulumi-lang-nodejs=\"`direction`\" pulumi-lang-dotnet=\"`Direction`\" pulumi-lang-go=\"`direction`\" pulumi-lang-python=\"`direction`\" pulumi-lang-yaml=\"`direction`\" pulumi-lang-java=\"`direction`\"\u003e`direction`\u003c/span\u003e is  \u003cspan pulumi-lang-nodejs=\"`in`\" pulumi-lang-dotnet=\"`In`\" pulumi-lang-go=\"`in`\" pulumi-lang-python=\"`in`\" pulumi-lang-yaml=\"`in`\" pulumi-lang-java=\"`in`\"\u003e`in`\u003c/span\u003e, the valid value is `ANY`. If \u003cspan pulumi-lang-nodejs=\"`direction`\" pulumi-lang-dotnet=\"`Direction`\" pulumi-lang-go=\"`direction`\" pulumi-lang-python=\"`direction`\" pulumi-lang-yaml=\"`direction`\" pulumi-lang-java=\"`direction`\"\u003e`direction`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`out`\" pulumi-lang-dotnet=\"`Out`\" pulumi-lang-go=\"`out`\" pulumi-lang-python=\"`out`\" pulumi-lang-yaml=\"`out`\" pulumi-lang-java=\"`out`\"\u003e`out`\u003c/span\u003e, the valid values are `ANY`, `TCP`, `UDP`, `ICMP`.\n"},"release":{"type":"boolean","description":"Indicates whether the access control policy is enabled.\n"},"source":{"type":"string","description":"The source address in the access control policy.\n"},"sourceGroupCidrs":{"type":"array","items":{"type":"string"},"description":"The CIDR blocks in the source address book.\n"},"sourceGroupType":{"type":"string","description":"The type of the source address book in the access control policy.\n"},"sourceType":{"type":"string","description":"The type of the source address in the access control policy.\n"}},"type":"object","required":["aclAction","aclUuid","applicationId","applicationName","description","destPort","destPortGroup","destPortGroupPorts","destPortType","destination","destinationGroupCidrs","destinationGroupType","destinationType","direction","dnsResult","dnsResultTime","hitTimes","id","order","proto","release","source","sourceGroupCidrs","sourceGroupType","sourceType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getInstanceMembersMember:getInstanceMembersMember":{"properties":{"createTime":{"type":"integer","description":"When the cloud firewall member account was added.\u003e use second-level timestamp format.\n"},"id":{"type":"string","description":"The instance id.\n"},"memberDesc":{"type":"string","description":"Remarks of cloud firewall member accounts.\n"},"memberDisplayName":{"type":"string","description":"The name of the cloud firewall member account.\n"},"memberUid":{"type":"string","description":"The UID of the cloud firewall member account.\n"},"modifyTime":{"type":"integer","description":"The last modification time of the cloud firewall member account.\u003e use second-level timestamp format.\n"},"status":{"type":"string","description":"The resource attribute field that represents the resource status.\n"}},"type":"object","required":["createTime","id","memberDesc","memberDisplayName","memberUid","modifyTime","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getInstancesInstance:getInstancesInstance":{"properties":{"createTime":{"type":"string","description":"The Creation time of the resource.\n"},"endTime":{"type":"string","description":"The end time of the resource..\n"},"id":{"type":"string","description":"The ID of the Instance.\n"},"instanceId":{"type":"string","description":"The first ID of the resource.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`.\n"},"renewalDurationUnit":{"type":"string","description":"Automatic renewal period unit. Valid values: `Month`,`Year`.\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`,`ManualRenewal`. Default Value: `ManualRenewal`.\n"},"status":{"type":"string","description":"The Status of Instance.\n"}},"type":"object","required":["createTime","endTime","id","instanceId","paymentType","renewalDurationUnit","renewalStatus","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getNatFirewallsFirewall:getNatFirewallsFirewall":{"properties":{"aliUid":{"type":"integer","description":"Alibaba Cloud account ID\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"memberUid":{"type":"integer","description":"Member Account ID\n"},"natGatewayId":{"type":"string","description":"NAT gateway ID\n"},"natGatewayName":{"type":"string","description":"NAT Gateway name\n"},"natRouteEntryLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/getNatFirewallsFirewallNatRouteEntryList:getNatFirewallsFirewallNatRouteEntryList"},"description":"The list of routes to be switched by the NAT gateway.\n"},"proxyId":{"type":"string","description":"NAT firewall ID\n"},"proxyName":{"type":"string","description":"NAT firewall name\n"},"strictMode":{"type":"integer","description":"Whether strict mode is enabled1-Enable strict mode0-Disable strict mode\n"},"vpcId":{"type":"string","description":"The ID of the VPC instance.\n"}},"type":"object","required":["aliUid","id","memberUid","natGatewayId","natGatewayName","natRouteEntryLists","proxyId","proxyName","strictMode","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getNatFirewallsFirewallNatRouteEntryList:getNatFirewallsFirewallNatRouteEntryList":{"properties":{"destinationCidr":{"type":"string","description":"The destination network segment of the default route.\n"},"nexthopId":{"type":"string","description":"The next hop address of the original NAT gateway.\n"},"nexthopType":{"type":"string","description":"The network type of the next hop. Value: NatGateway : NAT Gateway.\n"},"routeTableId":{"type":"string","description":"The route table where the default route of the NAT gateway is located.\n"}},"type":"object","required":["destinationCidr","nexthopId","nexthopType","routeTableId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getTlsInspectCaCertificatesCertificate:getTlsInspectCaCertificatesCertificate":{"properties":{"caCertId":{"type":"string","description":"CA certificate ID\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"}},"type":"object","required":["caCertId","id"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getVpcCenTrFirewallsFirewall:getVpcCenTrFirewallsFirewall":{"properties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"cenName":{"type":"string","description":"The name of the CEN instance.\n"},"firewallId":{"type":"string","description":"Firewall ID\n"},"firewallName":{"type":"string","description":"The name of Cloud Firewall.\n"},"firewallSwitchStatus":{"type":"string","description":"The status of the VPC boundary firewall. Value:-**opened**: opened-**closed**: closed-**notconfigured**: indicates that the VPC boundary firewall has not been configured yet.-**configured**: indicates that the VPC boundary firewall has been configured.-**creating**: indicates that a VPC boundary firewall is being created.-**opening**: indicates that the VPC border firewall is being enabled.-**deleting**: indicates that the VPC boundary firewall is being deleted.\u003e If this parameter is not set, the VPC boundary firewall in all states is queried.\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"ipsConfig":{"$ref":"#/types/alicloud:cloudfirewall/getVpcCenTrFirewallsFirewallIpsConfig:getVpcCenTrFirewallsFirewallIpsConfig","description":"IPS configuration information.\n"},"precheckStatus":{"type":"string","description":"Whether the wall can be opened automatically. Value:-**passed**: can automatically open the wall-**failed**: The wall cannot be opened automatically-**unknown**: unknown status\n"},"regionNo":{"type":"string","description":"The region ID of the transit router instance.\n"},"regionStatus":{"type":"string","description":"Geographically open. Value:-**enable**: enabled, indicating that the VPC border firewall can be configured for the region.-**disable**: Not enabled, indicating that the VPC boundary firewall is not allowed for the region.\n"},"resultCode":{"type":"string","description":"The operation result code of creating the VPC boundary firewall. Value:-**RegionDisable**: indicates that the region where the network instance is located is not supported by the VPC border firewall. You cannot create a VPC border firewall.-**Empty string**, indicating that the network instance can create a VPC firewall.\n"},"routeMode":{"type":"string","description":"The routing pattern. Value: managed: indicates automatic mode\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router instance.\n"}},"type":"object","required":["cenId","cenName","firewallId","firewallName","firewallSwitchStatus","id","ipsConfig","precheckStatus","regionNo","regionStatus","resultCode","routeMode","transitRouterId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getVpcCenTrFirewallsFirewallIpsConfig:getVpcCenTrFirewallsFirewallIpsConfig":{"properties":{"basicRules":{"type":"integer","description":"Basic rule switch. Value:-**1**: On-**0**: Closed state.\n"},"enableAllPatch":{"type":"integer","description":"Virtual patch switch. Value:-**1**: On-**0**: Closed state.\n"},"runMode":{"type":"integer","description":"IPS defense mode. Value:-**1**: Intercept mode-**0**: Observation mode.\n"}},"type":"object","required":["basicRules","enableAllPatch","runMode"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getVpcFirewallCensCen:getVpcFirewallCensCen":{"properties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"connectType":{"type":"string","description":"Intercommunication type, value: \u003cspan pulumi-lang-nodejs=\"`expressconnect`\" pulumi-lang-dotnet=\"`Expressconnect`\" pulumi-lang-go=\"`expressconnect`\" pulumi-lang-python=\"`expressconnect`\" pulumi-lang-yaml=\"`expressconnect`\" pulumi-lang-java=\"`expressconnect`\"\u003e`expressconnect`\u003c/span\u003e: Express Channel \u003cspan pulumi-lang-nodejs=\"`cen`\" pulumi-lang-dotnet=\"`Cen`\" pulumi-lang-go=\"`cen`\" pulumi-lang-python=\"`cen`\" pulumi-lang-yaml=\"`cen`\" pulumi-lang-java=\"`cen`\"\u003e`cen`\u003c/span\u003e: Cloud Enterprise Network\n"},"id":{"type":"string","description":"The ID of the CEN instance.\n"},"localVpcs":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/getVpcFirewallCensCenLocalVpc:getVpcFirewallCensCenLocalVpc"},"description":"The details of the VPC.\n"},"networkInstanceId":{"type":"string","description":"The ID of the VPC instance that created the VPC firewall.\n"},"status":{"type":"string","description":"Firewall switch status\n"},"vpcFirewallId":{"type":"string","description":"VPC firewall ID\n"},"vpcFirewallName":{"type":"string","description":"The name of the VPC firewall instance.\n"}},"type":"object","required":["cenId","connectType","id","localVpcs","networkInstanceId","status","vpcFirewallId","vpcFirewallName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getVpcFirewallCensCenLocalVpc:getVpcFirewallCensCenLocalVpc":{"properties":{"attachmentId":{"type":"string"},"attachmentName":{"type":"string"},"defendCidrLists":{"type":"array","items":{"type":"string"},"description":"The list of network segments protected by the VPC firewall.\n"},"eniLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/getVpcFirewallCensCenLocalVpcEniList:getVpcFirewallCensCenLocalVpcEniList"}},"manualVswitchId":{"type":"string"},"networkInstanceId":{"type":"string","description":"The ID of the VPC instance that created the VPC firewall.\n"},"networkInstanceName":{"type":"string","description":"The name of the network instance.\n"},"networkInstanceType":{"type":"string","description":"The type of the network instance. Value: **VPC * *.\n"},"ownerId":{"type":"string","description":"The UID of the Alibaba Cloud account to which the VPC belongs.\n"},"regionNo":{"type":"string","description":"The region ID of the VPC.\n"},"routeMode":{"type":"string","description":"Routing mode,. Value:-auto: indicates automatic mode.-manual: indicates manual mode.\n"},"supportManualMode":{"type":"string","description":"Whether routing mode supports manual mode. Value:-**1**: Supported.-**0**: Not supported.\n"},"transitRouterId":{"type":"string"},"transitRouterType":{"type":"string","description":"The version of the cloud enterprise network forwarding router (CEN-TR). Value:-**Basic**: Basic Edition.-**Enterprise**: Enterprise Edition.\n"},"vpcCidrTableLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/getVpcFirewallCensCenLocalVpcVpcCidrTableList:getVpcFirewallCensCenLocalVpcVpcCidrTableList"},"description":"The VPC network segment list.\n"},"vpcId":{"type":"string","description":"The ID of the VPC instance.\n"},"vpcName":{"type":"string","description":"The instance name of the VPC.\n"}},"type":"object","required":["attachmentId","attachmentName","defendCidrLists","eniLists","manualVswitchId","networkInstanceId","networkInstanceName","networkInstanceType","ownerId","regionNo","routeMode","supportManualMode","transitRouterId","transitRouterType","vpcCidrTableLists","vpcId","vpcName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getVpcFirewallCensCenLocalVpcEniList:getVpcFirewallCensCenLocalVpcEniList":{"properties":{"eniId":{"type":"string"},"eniPrivateIpAddress":{"type":"string"}},"type":"object","required":["eniId","eniPrivateIpAddress"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getVpcFirewallCensCenLocalVpcVpcCidrTableList:getVpcFirewallCensCenLocalVpcVpcCidrTableList":{"properties":{"routeEntryLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/getVpcFirewallCensCenLocalVpcVpcCidrTableListRouteEntryList:getVpcFirewallCensCenLocalVpcVpcCidrTableListRouteEntryList"},"description":"The list of route entries in the VPC.\n"},"routeTableId":{"type":"string","description":"The ID of the route table of the VPC.\n"}},"type":"object","required":["routeEntryLists","routeTableId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getVpcFirewallCensCenLocalVpcVpcCidrTableListRouteEntryList:getVpcFirewallCensCenLocalVpcVpcCidrTableListRouteEntryList":{"properties":{"destinationCidr":{"type":"string","description":"The target network segment of the VPC.\n"},"nextHopInstanceId":{"type":"string","description":"The ID of the next hop instance in the VPC.\n"}},"type":"object","required":["destinationCidr","nextHopInstanceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getVpcFirewallControlPoliciesPolicy:getVpcFirewallControlPoliciesPolicy":{"properties":{"aclAction":{"type":"string","description":"The action that Cloud Firewall performs on the traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`log`\" pulumi-lang-dotnet=\"`Log`\" pulumi-lang-go=\"`log`\" pulumi-lang-python=\"`log`\" pulumi-lang-yaml=\"`log`\" pulumi-lang-java=\"`log`\"\u003e`log`\u003c/span\u003e.\n"},"aclUuid":{"type":"string","description":"Access control over VPC firewalls strategy unique identifier.\n"},"applicationId":{"type":"string","description":"Policy specifies the application ID.\n"},"applicationName":{"type":"string","description":"Access control over VPC firewalls policies support the application types.\n"},"description":{"type":"string","description":"Access control over VPC firewalls description of the strategy information.\n"},"destPort":{"type":"string","description":"Access control over VPC firewalls strategy access traffic of the destination port.\n"},"destPortGroup":{"type":"string","description":"Access control policy in the access traffic of the destination port address book name.\n"},"destPortGroupPorts":{"type":"array","items":{"type":"string"},"description":"Port Address Book port list.\n"},"destPortType":{"type":"string","description":"Access control over VPC firewalls strategy access traffic of the destination port type.\n"},"destination":{"type":"string","description":"Access control over VPC firewalls strategy the destination address in.\n"},"destinationGroupCidrs":{"type":"array","items":{"type":"string"},"description":"Destination address book defined in the address list.\n"},"destinationGroupType":{"type":"string","description":"The destination address book type in the access control policy. Value: \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e.\n"},"destinationType":{"type":"string","description":"Access control over VPC firewalls strategy in the destination address of the type.\n"},"hitTimes":{"type":"integer","description":"Control strategy of hits per second.\n"},"id":{"type":"string","description":"The ID of the Cloud Firewall Vpc Firewall Control Policy.\n"},"memberUid":{"type":"string","description":"The UID of the member account of the current Alibaba cloud account.\n"},"order":{"type":"integer","description":"Access control over VPC firewalls policies will go into effect of priority. The priority value starts from 1, the smaller the priority number, the higher the priority. -1 represents the lowest priority.\n"},"proto":{"type":"string","description":"Access control over VPC firewalls strategy access traffic of the protocol type.\n"},"release":{"type":"boolean","description":"The enabled status of the access control policy. The policy is enabled by default after it is created. Value:\n- **true**: Enable access control policies\n- **false**: does not enable access control policies.\n"},"source":{"type":"string","description":"Access control over VPC firewalls strategy in the source address.\n"},"sourceGroupCidrs":{"type":"array","items":{"type":"string"},"description":"SOURCE address of the address list.\n"},"sourceGroupType":{"type":"string","description":"The source address type in the access control policy. Unique value: **ip**. The IP address book contains one or more IP address segments.\n"},"sourceType":{"type":"string","description":"Access control over VPC firewalls policy source address type.\n"},"vpcFirewallId":{"type":"string","description":"The ID of the VPC firewall instance. Value:\n- When the VPC firewall protects traffic between two VPCs connected through the cloud enterprise network, the policy group ID uses the cloud enterprise network instance ID.\n- When the VPC firewall protects traffic between two VPCs connected through the express connection, the policy group ID uses the ID of the VPC firewall instance.\n"}},"type":"object","required":["aclAction","aclUuid","applicationId","applicationName","description","destPort","destPortGroup","destPortGroupPorts","destPortType","destination","destinationGroupCidrs","destinationGroupType","destinationType","hitTimes","id","memberUid","order","proto","release","source","sourceGroupCidrs","sourceGroupType","sourceType","vpcFirewallId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getVpcFirewallsFirewall:getVpcFirewallsFirewall":{"properties":{"bandwidth":{"type":"integer","description":"Bandwidth specifications for high-speed channels. Unit: Mbps.\n"},"connectType":{"type":"string","description":"The communication type of the VPC firewall. Valid value: **expressconnect**, which indicates Express Connect.\n"},"id":{"type":"string","description":"The name of the VPC firewall instance and the value same as \u003cspan pulumi-lang-nodejs=\"`vpcFirewallId`\" pulumi-lang-dotnet=\"`VpcFirewallId`\" pulumi-lang-go=\"`vpcFirewallId`\" pulumi-lang-python=\"`vpc_firewall_id`\" pulumi-lang-yaml=\"`vpcFirewallId`\" pulumi-lang-java=\"`vpcFirewallId`\"\u003e`vpc_firewall_id`\u003c/span\u003e.\n"},"localVpcs":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/getVpcFirewallsFirewallLocalVpc:getVpcFirewallsFirewallLocalVpc"},"description":"The details of the local VPC.\n"},"peerVpcs":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/getVpcFirewallsFirewallPeerVpc:getVpcFirewallsFirewallPeerVpc"},"description":"The details of the peer VPC.\n"},"regionStatus":{"type":"string","description":"The region is open. Value:-**enable**: is enabled, indicating that VPC firewall can be configured in this region.-**disable**: indicates that VPC firewall cannot be configured in this region.\n"},"status":{"type":"string","description":"The status of the resource\n"},"vpcFirewallId":{"type":"string","description":"The ID of the VPC firewall instance.\n"},"vpcFirewallName":{"type":"string","description":"The name of the VPC firewall instance.\n"}},"type":"object","required":["bandwidth","connectType","id","localVpcs","peerVpcs","regionStatus","status","vpcFirewallId","vpcFirewallName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getVpcFirewallsFirewallLocalVpc:getVpcFirewallsFirewallLocalVpc":{"properties":{"eniId":{"type":"string"},"eniPrivateIpAddress":{"type":"string"},"localVpcCidrTableLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/getVpcFirewallsFirewallLocalVpcLocalVpcCidrTableList:getVpcFirewallsFirewallLocalVpcLocalVpcCidrTableList"},"description":"The network segment list of the local VPC.\n"},"regionNo":{"type":"string","description":"The region ID of the peer VPC.\n"},"routerInterfaceId":{"type":"string"},"vpcId":{"type":"string","description":"The ID of the peer VPC instance.\n"},"vpcName":{"type":"string","description":"The instance name of the peer VPC.\n"}},"type":"object","required":["eniId","eniPrivateIpAddress","localVpcCidrTableLists","regionNo","routerInterfaceId","vpcId","vpcName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getVpcFirewallsFirewallLocalVpcLocalVpcCidrTableList:getVpcFirewallsFirewallLocalVpcLocalVpcCidrTableList":{"properties":{"localRouteEntryLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/getVpcFirewallsFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryList:getVpcFirewallsFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryList"},"description":"The list of route entries of the local VPC.\n"},"localRouteTableId":{"type":"string","description":"The ID of the route table of the local VPC.\n"}},"type":"object","required":["localRouteEntryLists","localRouteTableId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getVpcFirewallsFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryList:getVpcFirewallsFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryList":{"properties":{"localDestinationCidr":{"type":"string","description":"The target network segment of the local VPC.\n"},"localNextHopInstanceId":{"type":"string","description":"The ID of the next-hop instance in the local VPC.\n"}},"type":"object","required":["localDestinationCidr","localNextHopInstanceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getVpcFirewallsFirewallPeerVpc:getVpcFirewallsFirewallPeerVpc":{"properties":{"eniId":{"type":"string"},"eniPrivateIpAddress":{"type":"string"},"peerVpcCidrTableLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/getVpcFirewallsFirewallPeerVpcPeerVpcCidrTableList:getVpcFirewallsFirewallPeerVpcPeerVpcCidrTableList"},"description":"The network segment list of the peer VPC.\n"},"regionNo":{"type":"string","description":"The region ID of the peer VPC.\n"},"routerInterfaceId":{"type":"string"},"vpcId":{"type":"string","description":"The ID of the peer VPC instance.\n"},"vpcName":{"type":"string","description":"The instance name of the peer VPC.\n"}},"type":"object","required":["eniId","eniPrivateIpAddress","peerVpcCidrTableLists","regionNo","routerInterfaceId","vpcId","vpcName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getVpcFirewallsFirewallPeerVpcPeerVpcCidrTableList:getVpcFirewallsFirewallPeerVpcPeerVpcCidrTableList":{"properties":{"peerRouteEntryLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/getVpcFirewallsFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryList:getVpcFirewallsFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryList"},"description":"Peer VPC route entry list information.\n"},"peerRouteTableId":{"type":"string","description":"The ID of the route table of the peer VPC.\n"}},"type":"object","required":["peerRouteEntryLists","peerRouteTableId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudfirewall/getVpcFirewallsFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryList:getVpcFirewallsFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryList":{"properties":{"peerDestinationCidr":{"type":"string","description":"The target network segment of the peer VPC.\n"},"peerNextHopInstanceId":{"type":"string","description":"The ID of the next-hop instance in the peer VPC.\n"}},"type":"object","required":["peerDestinationCidr","peerNextHopInstanceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudmonitor/ServiceGroupMonitoringAgentProcessAlertConfig:ServiceGroupMonitoringAgentProcessAlertConfig":{"properties":{"comparisonOperator":{"type":"string","description":"The operator that is used to compare the metric value with the threshold. Valid values: `GreaterThanOrEqualToThreshold`, `GreaterThanThreshold`, `LessThanOrEqualToThreshold`, `LessThanThreshold`, `NotEqualToThreshold`, `GreaterThanYesterday`, `LessThanYesterday`, `GreaterThanLastWeek`, `LessThanLastWeek`, `GreaterThanLastPeriod`, `LessThanLastPeriod`.\n"},"effectiveInterval":{"type":"string","description":"The time period during which the alert rule is effective.\n"},"escalationsLevel":{"type":"string","description":"The alert level. Valid values: \u003cspan pulumi-lang-nodejs=\"`critical`\" pulumi-lang-dotnet=\"`Critical`\" pulumi-lang-go=\"`critical`\" pulumi-lang-python=\"`critical`\" pulumi-lang-yaml=\"`critical`\" pulumi-lang-java=\"`critical`\"\u003e`critical`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`warn`\" pulumi-lang-dotnet=\"`Warn`\" pulumi-lang-go=\"`warn`\" pulumi-lang-python=\"`warn`\" pulumi-lang-yaml=\"`warn`\" pulumi-lang-java=\"`warn`\"\u003e`warn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`info`\" pulumi-lang-dotnet=\"`Info`\" pulumi-lang-go=\"`info`\" pulumi-lang-python=\"`info`\" pulumi-lang-yaml=\"`info`\" pulumi-lang-java=\"`info`\"\u003e`info`\u003c/span\u003e.\n"},"silenceTime":{"type":"integer","description":"The mute period during which new alert notifications are not sent even if the trigger conditions are met. Unit: seconds.\n"},"statistics":{"type":"string","description":"The statistical method for alerts. Valid values: `Average`.\n"},"targetLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudmonitor/ServiceGroupMonitoringAgentProcessAlertConfigTargetList:ServiceGroupMonitoringAgentProcessAlertConfigTargetList"},"description":"The alert triggers. See \u003cspan pulumi-lang-nodejs=\"`targetList`\" pulumi-lang-dotnet=\"`TargetList`\" pulumi-lang-go=\"`targetList`\" pulumi-lang-python=\"`target_list`\" pulumi-lang-yaml=\"`targetList`\" pulumi-lang-java=\"`targetList`\"\u003e`target_list`\u003c/span\u003e below.\n"},"threshold":{"type":"string","description":"The alert threshold.\n"},"times":{"type":"string","description":"The number of times for which the threshold can be consecutively exceeded.\n"},"webhook":{"type":"string","description":"The callback URL.\n"}},"type":"object","required":["comparisonOperator","escalationsLevel","statistics","threshold","times"]},"alicloud:cloudmonitor/ServiceGroupMonitoringAgentProcessAlertConfigTargetList:ServiceGroupMonitoringAgentProcessAlertConfigTargetList":{"properties":{"arn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the resource.\n"},"jsonParams":{"type":"string","description":"The parameters of the alert callback. Specify the parameters in the JSON format.\n"},"level":{"type":"string","description":"The alert level. Valid values: `CRITICAL`, `WARN`, `INFO`.\n"},"targetListId":{"type":"string","description":"The ID of the resource for which alerts are triggered.\n"}},"type":"object"},"alicloud:cloudmonitor/ServiceGroupMonitoringAgentProcessMatchExpress:ServiceGroupMonitoringAgentProcessMatchExpress":{"properties":{"function":{"type":"string","description":"The matching condition. Valid values: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, `startWith`, `endWith`, \u003cspan pulumi-lang-nodejs=\"`contains`\" pulumi-lang-dotnet=\"`Contains`\" pulumi-lang-go=\"`contains`\" pulumi-lang-python=\"`contains`\" pulumi-lang-yaml=\"`contains`\" pulumi-lang-java=\"`contains`\"\u003e`contains`\u003c/span\u003e, `notContains`, \u003cspan pulumi-lang-nodejs=\"`equals`\" pulumi-lang-dotnet=\"`Equals`\" pulumi-lang-go=\"`equals`\" pulumi-lang-python=\"`equals`\" pulumi-lang-yaml=\"`equals`\" pulumi-lang-java=\"`equals`\"\u003e`equals`\u003c/span\u003e.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The criteria based on which the instances are matched.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The keyword used to match the instance name.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["function","name","value"]}}},"alicloud:cloudmonitor/getServiceHybridDoubleWritesHybridDoubleWrite:getServiceHybridDoubleWritesHybridDoubleWrite":{"properties":{"id":{"type":"string","description":"The ID of the Hybrid Double Write. It formats as `\u003csource_namespace\u003e:\u003csource_user_id\u003e`.\n"},"namespace":{"type":"string","description":"Target Namespace.\n"},"sourceNamespace":{"type":"string","description":"Source Namespace.\n"},"sourceUserId":{"type":"string","description":"Source UserId.\n"},"userId":{"type":"string","description":"Target UserId.\n"}},"type":"object","required":["id","namespace","sourceNamespace","sourceUserId","userId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudmonitor/getServiceMetricAlarmRulesRule:getServiceMetricAlarmRulesRule":{"properties":{"compositeExpression":{"$ref":"#/types/alicloud:cloudmonitor/getServiceMetricAlarmRulesRuleCompositeExpression:getServiceMetricAlarmRulesRuleCompositeExpression","description":"The trigger conditions for multiple metrics.\n"},"contactGroups":{"type":"string","description":"The alert contact group.\n"},"dimensions":{"type":"string","description":"The monitoring dimensions of the specified resource.\n"},"effectiveInterval":{"type":"string","description":"The time period during which the alert rule is effective.\n"},"emailSubject":{"type":"string","description":"The subject of the alert notification email.\n"},"escalations":{"$ref":"#/types/alicloud:cloudmonitor/getServiceMetricAlarmRulesRuleEscalations:getServiceMetricAlarmRulesRuleEscalations","description":"The conditions for triggering different levels of alerts.\n"},"id":{"type":"string","description":"The ID of the alert rule.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:cloudmonitor/getServiceMetricAlarmRulesRuleLabel:getServiceMetricAlarmRulesRuleLabel"},"description":"The tags of the alert rule.\n"},"metricName":{"type":"string","description":"The name of the metric.\n"},"namespace":{"type":"string","description":"The namespace of the cloud service.\n"},"noDataPolicy":{"type":"string","description":"The method that is used to handle alerts when no monitoring data is found.\n"},"noEffectiveInterval":{"type":"string","description":"The time period during which the alert rule is ineffective.\n"},"period":{"type":"string","description":"The aggregation period of the metric.\n"},"prometheus":{"$ref":"#/types/alicloud:cloudmonitor/getServiceMetricAlarmRulesRulePrometheus:getServiceMetricAlarmRulesRulePrometheus","description":"The Prometheus alerts.\n"},"resources":{"type":"string","description":"The resources that are associated with the alert rule.\n"},"ruleName":{"type":"string","description":"The name of the alert rule.\n"},"silenceTime":{"type":"string","description":"The mute period during which new alert notifications are not sent even if the trigger conditions are met.\n"},"sourceType":{"type":"string","description":"The type of the alert rule.\n"},"status":{"type":"boolean","description":"Specifies whether to query enabled or disabled alert rules. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"webhook":{"type":"string","description":"The callback URL.\n"}},"type":"object","required":["compositeExpression","contactGroups","dimensions","effectiveInterval","emailSubject","escalations","id","labels","metricName","namespace","noDataPolicy","noEffectiveInterval","period","prometheus","resources","ruleName","silenceTime","sourceType","status","webhook"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudmonitor/getServiceMetricAlarmRulesRuleCompositeExpression:getServiceMetricAlarmRulesRuleCompositeExpression":{"properties":{"expressionListJoin":{"type":"string","description":"The relationship between the trigger conditions for multiple metrics.\n"},"expressionLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudmonitor/getServiceMetricAlarmRulesRuleCompositeExpressionExpressionList:getServiceMetricAlarmRulesRuleCompositeExpressionExpressionList"},"description":"The trigger conditions that are created in standard mode.\n"},"expressionRaw":{"type":"string","description":"The trigger conditions that are created by using expressions.\n"},"level":{"type":"string","description":"The alert level.\n"},"times":{"type":"integer","description":"The number of consecutive triggers.\n"}},"type":"object","required":["expressionLists","expressionListJoin","expressionRaw","level","times"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudmonitor/getServiceMetricAlarmRulesRuleCompositeExpressionExpressionList:getServiceMetricAlarmRulesRuleCompositeExpressionExpressionList":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator that is used to compare the metric value with the threshold.\n"},"metricName":{"type":"string","description":"The name of the metric.\n"},"period":{"type":"integer","description":"The aggregation period of the metric.\n"},"statistics":{"type":"string","description":"The statistical methods for Warn-level alerts.\n"},"threshold":{"type":"string","description":"The threshold for Warn-level alerts.\n"}},"type":"object","required":["comparisonOperator","metricName","period","statistics","threshold"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudmonitor/getServiceMetricAlarmRulesRuleEscalations:getServiceMetricAlarmRulesRuleEscalations":{"properties":{"critical":{"$ref":"#/types/alicloud:cloudmonitor/getServiceMetricAlarmRulesRuleEscalationsCritical:getServiceMetricAlarmRulesRuleEscalationsCritical","description":"The conditions for triggering Critical-level alerts.\n"},"info":{"$ref":"#/types/alicloud:cloudmonitor/getServiceMetricAlarmRulesRuleEscalationsInfo:getServiceMetricAlarmRulesRuleEscalationsInfo","description":"The conditions for triggering Info-level alerts.\n"},"warn":{"$ref":"#/types/alicloud:cloudmonitor/getServiceMetricAlarmRulesRuleEscalationsWarn:getServiceMetricAlarmRulesRuleEscalationsWarn","description":"The conditions for triggering Warn-level alerts.\n"}},"type":"object","required":["critical","info","warn"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudmonitor/getServiceMetricAlarmRulesRuleEscalationsCritical:getServiceMetricAlarmRulesRuleEscalationsCritical":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator that is used to compare the metric value with the threshold.\n"},"preCondition":{"type":"string","description":"The additional conditions for triggering Warn-level alerts.\n"},"statistics":{"type":"string","description":"The statistical methods for Warn-level alerts.\n"},"threshold":{"type":"string","description":"The threshold for Warn-level alerts.\n"},"times":{"type":"integer","description":"The number of consecutive triggers.\n"}},"type":"object","required":["comparisonOperator","preCondition","statistics","threshold","times"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudmonitor/getServiceMetricAlarmRulesRuleEscalationsInfo:getServiceMetricAlarmRulesRuleEscalationsInfo":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator that is used to compare the metric value with the threshold.\n"},"preCondition":{"type":"string","description":"The additional conditions for triggering Warn-level alerts.\n"},"statistics":{"type":"string","description":"The statistical methods for Warn-level alerts.\n"},"threshold":{"type":"string","description":"The threshold for Warn-level alerts.\n"},"times":{"type":"integer","description":"The number of consecutive triggers.\n"}},"type":"object","required":["comparisonOperator","preCondition","statistics","threshold","times"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudmonitor/getServiceMetricAlarmRulesRuleEscalationsWarn:getServiceMetricAlarmRulesRuleEscalationsWarn":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator that is used to compare the metric value with the threshold.\n"},"preCondition":{"type":"string","description":"The additional conditions for triggering Warn-level alerts.\n"},"statistics":{"type":"string","description":"The statistical methods for Warn-level alerts.\n"},"threshold":{"type":"string","description":"The threshold for Warn-level alerts.\n"},"times":{"type":"integer","description":"The number of consecutive triggers.\n"}},"type":"object","required":["comparisonOperator","preCondition","statistics","threshold","times"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudmonitor/getServiceMetricAlarmRulesRuleLabel:getServiceMetricAlarmRulesRuleLabel":{"properties":{"key":{"type":"string","description":"The subject of the alert notificaThe key of the annotation.\n"},"value":{"type":"string","description":"The value of the annotation.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudmonitor/getServiceMetricAlarmRulesRulePrometheus:getServiceMetricAlarmRulesRulePrometheus":{"properties":{"annotations":{"type":"array","items":{"$ref":"#/types/alicloud:cloudmonitor/getServiceMetricAlarmRulesRulePrometheusAnnotation:getServiceMetricAlarmRulesRulePrometheusAnnotation"},"description":"The annotations of the Prometheus alert rule.\n"},"level":{"type":"string","description":"The alert level.\n"},"promQl":{"type":"string","description":"The PromQL query statement.\n"},"times":{"type":"integer","description":"The number of consecutive triggers.\n"}},"type":"object","required":["annotations","level","promQl","times"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudmonitor/getServiceMetricAlarmRulesRulePrometheusAnnotation:getServiceMetricAlarmRulesRulePrometheusAnnotation":{"properties":{"key":{"type":"string","description":"The subject of the alert notificaThe key of the annotation.\n"},"value":{"type":"string","description":"The value of the annotation.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudphone/PolicyNetRedirectPolicy:PolicyNetRedirectPolicy":{"properties":{"customProxy":{"type":"string","description":"Whether to manually configure the transparent proxy.\n"},"hostAddr":{"type":"string","description":"The transparent proxy IP address. The format is IPv4 address.\n"},"netRedirect":{"type":"string","description":"Whether to enable network redirection.\n"},"port":{"type":"string","description":"Transparent proxy port. The Port value range is 1\\~ 65535.\n"},"proxyPassword":{"type":"string","description":"The proxy password. The length range is 1\\~ 256. Chinese characters and white space characters are not allowed.\n"},"proxyType":{"type":"string","description":"Agent protocol type.\n"},"proxyUserName":{"type":"string","description":"The proxy user name. The length range is 1\\~ 256. Chinese characters and white space characters are not allowed.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["customProxy","netRedirect"]}}},"alicloud:cloudsso/AccessConfigurationPermissionPolicy:AccessConfigurationPermissionPolicy":{"properties":{"permissionPolicyDocument":{"type":"string","description":"The configurations of the inline policy. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`permissionPolicyType`\" pulumi-lang-dotnet=\"`PermissionPolicyType`\" pulumi-lang-go=\"`permissionPolicyType`\" pulumi-lang-python=\"`permission_policy_type`\" pulumi-lang-yaml=\"`permissionPolicyType`\" pulumi-lang-java=\"`permissionPolicyType`\"\u003e`permission_policy_type`\u003c/span\u003e is set to `Inline`, \u003cspan pulumi-lang-nodejs=\"`permissionPolicyDocument`\" pulumi-lang-dotnet=\"`PermissionPolicyDocument`\" pulumi-lang-go=\"`permissionPolicyDocument`\" pulumi-lang-python=\"`permission_policy_document`\" pulumi-lang-yaml=\"`permissionPolicyDocument`\" pulumi-lang-java=\"`permissionPolicyDocument`\"\u003e`permission_policy_document`\u003c/span\u003e is required.\n"},"permissionPolicyName":{"type":"string","description":"The name of the policy.\n"},"permissionPolicyType":{"type":"string","description":"The type of the policy. Valid values: `System`, `Inline`.\n"}},"type":"object","required":["permissionPolicyName","permissionPolicyType"]},"alicloud:cloudsso/DirectoryLoginPreference:DirectoryLoginPreference":{"properties":{"allowUserToGetCredentials":{"type":"boolean","description":"Whether the user can obtain the program access credential in the portal after logging in.\n"},"loginNetworkMasks":{"type":"string","description":"IP address whitelist\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowUserToGetCredentials"]}}},"alicloud:cloudsso/DirectoryMfaAuthenticationSettingInfo:DirectoryMfaAuthenticationSettingInfo":{"properties":{"mfaAuthenticationAdvanceSettings":{"type":"string","description":"Global MFA validation policy\n"},"operationForRiskLogin":{"type":"string","description":"MFA verification policy for abnormal logon.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["mfaAuthenticationAdvanceSettings","operationForRiskLogin"]}}},"alicloud:cloudsso/DirectoryPasswordPolicy:DirectoryPasswordPolicy":{"properties":{"hardExpire":{"type":"boolean","description":"Whether to restrict login after Password Expiration\n"},"maxLoginAttempts":{"type":"integer","description":"Number of password retries.\n"},"maxPasswordAge":{"type":"integer","description":"Password validity period.\n"},"maxPasswordLength":{"type":"integer","description":"Maximum password length.\n"},"minPasswordDifferentChars":{"type":"integer","description":"The minimum number of different characters in a password.\n"},"minPasswordLength":{"type":"integer","description":"Minimum password length.\n"},"passwordNotContainUsername":{"type":"boolean","description":"Whether the user name is not allowed in the password.\n"},"passwordReusePrevention":{"type":"integer","description":"Historical password check policy.\n"},"requireLowerCaseChars":{"type":"boolean","description":"Whether lowercase letters are required in the password.\n"},"requireNumbers":{"type":"boolean","description":"Whether numbers are required in the password.\n"},"requireSymbols":{"type":"boolean","description":"Whether symbols are required in the password.\n"},"requireUpperCaseChars":{"type":"boolean","description":"Whether uppercase letters are required in the password.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["hardExpire","maxLoginAttempts","maxPasswordAge","maxPasswordLength","minPasswordDifferentChars","minPasswordLength","passwordNotContainUsername","passwordReusePrevention","requireLowerCaseChars","requireNumbers","requireSymbols","requireUpperCaseChars"]}}},"alicloud:cloudsso/DirectorySamlIdentityProviderConfiguration:DirectorySamlIdentityProviderConfiguration":{"properties":{"bindingType":{"type":"string","description":"The Binding method for initiating a SAML request.\n","willReplaceOnChanges":true},"certificateIds":{"type":"array","items":{"type":"string"},"description":"Certificate ID list\n"},"createTime":{"type":"string","description":"CreateTime\n"},"encodedMetadataDocument":{"type":"string","description":"EncodedMetadataDocument\n","secret":true},"entityId":{"type":"string","description":"EntityId\n","willReplaceOnChanges":true},"loginUrl":{"type":"string","description":"LoginUrl\n","willReplaceOnChanges":true},"ssoStatus":{"type":"string","description":"SSOStatus\n"},"updateTime":{"type":"string","description":"UpdateTime\n"},"wantRequestSigned":{"type":"boolean","description":"SP Request whether the signature is required\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["bindingType","certificateIds","createTime","entityId","loginUrl","ssoStatus","updateTime","wantRequestSigned"]}}},"alicloud:cloudsso/DirectorySamlServiceProvider:DirectorySamlServiceProvider":{"properties":{"acsUrl":{"type":"string","description":"ACS URL of SP.\n"},"authnSignAlgo":{"type":"string","description":"Signature algorithms supported by AuthNRequest\n"},"certificateType":{"type":"string","description":"Type of certificate used for signing in the SSO process\n"},"encodedMetadataDocument":{"type":"string","description":"SP metadata document (Base64 encoding).\n"},"entityId":{"type":"string","description":"SP identity.\n"},"supportEncryptedAssertion":{"type":"boolean","description":"Whether IdP-side encryption of Assertion is supported.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["acsUrl","authnSignAlgo","certificateType","encodedMetadataDocument","entityId","supportEncryptedAssertion"]}}},"alicloud:cloudsso/DirectoryUserProvisioningConfiguration:DirectoryUserProvisioningConfiguration":{"properties":{"defaultLandingPage":{"type":"string","description":"The duration of the Session after the user logs in.\n"},"sessionDuration":{"type":"string","description":"The duration of the Session after the user logs in.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["defaultLandingPage","sessionDuration"]}}},"alicloud:cloudsso/UserProvisioningUserProvisioningStatistic:UserProvisioningUserProvisioningStatistic":{"properties":{"failedEventCount":{"type":"integer","description":"Number of failed events\n"},"gmtLatestSync":{"type":"string","description":"Last Provisioning time\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["failedEventCount","gmtLatestSync"]}}},"alicloud:cloudsso/getAccessAssignmentsAssignment:getAccessAssignmentsAssignment":{"properties":{"accessConfigurationId":{"type":"string","description":"Access configuration ID.\n"},"accessConfigurationName":{"type":"string","description":"The name of the access configuration.\n"},"directoryId":{"type":"string","description":"Directory ID.\n"},"id":{"type":"string","description":"The ID of the Access Assignment.\n"},"principalId":{"type":"string","description":"The ID of the access assignment.\n"},"principalName":{"type":"string","description":"Cloud SSO identity name.\n"},"principalType":{"type":"string","description":"Create the identity type of the access assignment, which can be a user or a user group.\n"},"targetId":{"type":"string","description":"The ID of the target to create the resource range.\n"},"targetName":{"type":"string","description":"Task target name.\n"},"targetPathName":{"type":"string","description":"The path name of the task target in the resource directory.\n"},"targetType":{"type":"string","description":"The type of the resource range target to be accessed. Only a single RD primary account or member account can be specified in the first phase.\n"}},"type":"object","required":["accessConfigurationId","accessConfigurationName","directoryId","id","principalId","principalName","principalType","targetId","targetName","targetPathName","targetType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudsso/getAccessConfigurationsConfiguration:getAccessConfigurationsConfiguration":{"properties":{"accessConfigurationId":{"type":"string","description":"The AccessConfigurationId of the Access Configuration.\n"},"accessConfigurationName":{"type":"string","description":"The AccessConfigurationName of the Access Configuration.\n"},"createTime":{"type":"string","description":"The Created Time of the Directory.\n"},"description":{"type":"string","description":"The Description of the Directory.\n"},"directoryId":{"type":"string","description":"The ID of the Directory.\n"},"id":{"type":"string","description":"The ID of the Access Configuration.\n"},"permissionPolicies":{"type":"array","items":{"$ref":"#/types/alicloud:cloudsso/getAccessConfigurationsConfigurationPermissionPolicy:getAccessConfigurationsConfigurationPermissionPolicy"},"description":"The Policy List.\n"},"relayState":{"type":"string","description":"The RelayState of the Access Configuration.\n"},"sessionDuration":{"type":"integer","description":"The SessionDuration of the Access Configuration.\n"},"statusNotifications":{"type":"array","items":{"type":"string"},"description":"The StatusNotifications of the Access Configuration.\n"}},"type":"object","required":["accessConfigurationId","accessConfigurationName","createTime","description","directoryId","id","permissionPolicies","relayState","sessionDuration","statusNotifications"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudsso/getAccessConfigurationsConfigurationPermissionPolicy:getAccessConfigurationsConfigurationPermissionPolicy":{"properties":{"addTime":{"type":"string","description":"The Creation time of policy.\n"},"permissionPolicyDocument":{"type":"string","description":"The Content of Policy.\n"},"permissionPolicyName":{"type":"string","description":"The Policy Name of policy.\n"},"permissionPolicyType":{"type":"string","description":"The Policy Type of policy. Valid values: `System`, `Inline`.\n"}},"type":"object","required":["addTime","permissionPolicyDocument","permissionPolicyName","permissionPolicyType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudsso/getDirectoriesDirectory:getDirectoriesDirectory":{"properties":{"createTime":{"type":"string","description":"The CreateTime of the CloudSSO directory.\n"},"directoryId":{"type":"string","description":"The DirectoryId of the CloudSSO directory.\n"},"directoryName":{"type":"string","description":"The name of the CloudSSO directory.\n"},"id":{"type":"string","description":"The ID of the Directory.\n"},"mfaAuthenticationStatus":{"type":"string","description":"The mfa authentication status. Valid values: `Enabled` or `Disabled`. Default to `Disabled`.\n"},"region":{"type":"string","description":"The Region of the CloudSSO directory.\n"},"samlIdentityProviderConfigurations":{"type":"array","items":{"$ref":"#/types/alicloud:cloudsso/getDirectoriesDirectorySamlIdentityProviderConfiguration:getDirectoriesDirectorySamlIdentityProviderConfiguration"},"description":"The saml identity provider configuration.\n"},"scimSynchronizationStatus":{"type":"string","description":"The scim synchronization status. Valid values: `Enabled` or `Disabled`. Default to `Disabled`.\n"},"tasks":{"type":"array","items":{"$ref":"#/types/alicloud:cloudsso/getDirectoriesDirectoryTask:getDirectoriesDirectoryTask"},"description":"Asynchronous Task Information Array.\n"}},"type":"object","required":["createTime","directoryId","directoryName","id","mfaAuthenticationStatus","region","samlIdentityProviderConfigurations","scimSynchronizationStatus","tasks"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudsso/getDirectoriesDirectorySamlIdentityProviderConfiguration:getDirectoriesDirectorySamlIdentityProviderConfiguration":{"properties":{"createTime":{"type":"string","description":"Saml identifies the creation time of the provider configuration.\n"},"encodedMetadataDocument":{"type":"string","description":"Base64 encoded IdP metadata document.\n"},"entityId":{"type":"string","description":"SAML IdPEntityID.\n"},"loginUrl":{"type":"string","description":"SAML IdP http-post Binding address.\n"},"ssoStatus":{"type":"string","description":"SAML SSO login enabled status. Valid values: `Enabled` or `Disabled`. Default to `Disabled`.\n"}},"type":"object","required":["createTime","encodedMetadataDocument","entityId","loginUrl","ssoStatus"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudsso/getDirectoriesDirectoryTask:getDirectoriesDirectoryTask":{"properties":{"accessConfigurationId":{"type":"string","description":"The ID of Access Configuration.\n"},"accessConfigurationName":{"type":"string","description":"The Name of Access Configuration.\n"},"endTime":{"type":"string","description":"The End Time of Task.\n"},"failureReason":{"type":"string","description":"the Reason for the Failure of  the task.\n"},"principalId":{"type":"string","description":"The ID of Cloud SSO Identity.\n"},"principalName":{"type":"string","description":"The Name of Cloud SSO Identity.\n"},"principalType":{"type":"string","description":"The Type of Cloud SSO Identity.\n"},"startTime":{"type":"string","description":"The Start Time of Task.\n"},"status":{"type":"string","description":"The Task Status.\n"},"targetId":{"type":"string","description":"The Id of deploy target.\n"},"targetName":{"type":"string","description":"The Name of Deploy Target.\n"},"targetPath":{"type":"string","description":"The Path in RD of Deploy Target.\n"},"targetType":{"type":"string","description":"The Type of Deploy Target.\n"},"taskId":{"type":"string","description":"The ID of the Task.\n"},"taskType":{"type":"string","description":"The Type of the Task.\n"}},"type":"object","required":["accessConfigurationId","accessConfigurationName","endTime","failureReason","principalId","principalName","principalType","startTime","status","targetId","targetName","targetPath","targetType","taskId","taskType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudsso/getGroupsGroup:getGroupsGroup":{"properties":{"createTime":{"type":"string","description":"The Created Time of the Directory.\n"},"description":{"type":"string","description":"The Description of the Directory.\n"},"directoryId":{"type":"string","description":"The ID of the Directory.\n"},"groupId":{"type":"string","description":"The Group ID of the group.\n"},"groupName":{"type":"string","description":"The Name of the group.\n"},"id":{"type":"string","description":"The ID of the Group.\n"},"provisionType":{"type":"string","description":"The Provision Type of the Group. Valid values: `Manual`, `Synchronized`.\n"}},"type":"object","required":["createTime","description","directoryId","groupId","groupName","id","provisionType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudsso/getScimServerCredentialsCredential:getScimServerCredentialsCredential":{"properties":{"createTime":{"type":"string","description":"The CreateTime of the resource.\n"},"credentialId":{"type":"string","description":"The CredentialId of the resource.\n"},"credentialSecret":{"type":"string","description":"The CredentialSecret of the resource.\n"},"credentialType":{"type":"string","description":"The CredentialType of the resource.\n"},"directoryId":{"type":"string","description":"The ID of the Directory.\n"},"expireTime":{"type":"string","description":"The ExpireTime of the resource.\n"},"id":{"type":"string","description":"The ID of the SCIM Server Credential.\n"},"status":{"type":"string","description":"The Status of the resource. Valid values: `Disabled`, `Enabled`.\n"}},"type":"object","required":["createTime","credentialId","credentialSecret","credentialType","directoryId","expireTime","id","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudsso/getUserProvisioningEventsEvent:getUserProvisioningEventsEvent":{"properties":{"content":{"type":"string","description":"Event content\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"deletionStrategy":{"type":"string","description":"Processing policy when you delete a RAM user\n"},"directoryId":{"type":"string","description":"Directory ID\n"},"duplicationStrategy":{"type":"string","description":"Conflict strategy\n"},"errorCount":{"type":"number","description":"Number of manual retry failures\n"},"errorInfo":{"type":"string","description":"Error message for last failure\n"},"eventId":{"type":"string","description":"Dead letter event ID\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"lastSyncTime":{"type":"string","description":"Last synchronization time\n"},"principalId":{"type":"string","description":"User Provisioning body ID\n"},"principalName":{"type":"string","description":"User Provisioning body name\n"},"principalType":{"type":"string","description":"User Provisioning body type\n"},"sourceType":{"type":"string","description":"The type of the source action that triggered the event.\n"},"targetId":{"type":"string","description":"User Provisioning target ID\n"},"targetName":{"type":"string","description":"User Provisioning target name\n"},"targetPath":{"type":"string","description":"RD path of User Provisioning target\n"},"targetType":{"type":"string","description":"User Provisioning target type\n"},"updateTime":{"type":"string","description":"Event update time\n"},"userProvisioningId":{"type":"string","description":"The ID of the User Provisioning.\n"}},"type":"object","required":["content","createTime","deletionStrategy","directoryId","duplicationStrategy","errorCount","errorInfo","eventId","id","lastSyncTime","principalId","principalName","principalType","sourceType","targetId","targetName","targetPath","targetType","updateTime","userProvisioningId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudsso/getUsersUser:getUsersUser":{"properties":{"createTime":{"type":"string","description":"The create time of the user.\n"},"description":{"type":"string","description":"The description of user.\n"},"directoryId":{"type":"string","description":"The ID of the Directory.\n"},"displayName":{"type":"string","description":"The display name of user.\n"},"email":{"type":"string","description":"The User's Contact Email Address.\n"},"firstName":{"type":"string","description":"The first name of user.\n"},"id":{"type":"string","description":"The ID of the User.\n"},"lastName":{"type":"string","description":"The last name of user.\n"},"mfaDevices":{"type":"array","items":{"$ref":"#/types/alicloud:cloudsso/getUsersUserMfaDevice:getUsersUserMfaDevice"},"description":"The List of MFA Device for User.\n"},"provisionType":{"type":"string","description":"ProvisionType.\n"},"status":{"type":"string","description":"User status. Valid values: `Enabled` and `Disabled`.\n"},"userId":{"type":"string","description":"The User ID of the group.\n"},"userName":{"type":"string","description":"The name of user.\n"}},"type":"object","required":["createTime","description","directoryId","displayName","email","firstName","id","lastName","mfaDevices","provisionType","status","userId","userName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudsso/getUsersUserMfaDevice:getUsersUserMfaDevice":{"properties":{"deviceId":{"type":"string","description":"The MFA Device ID.\n"},"deviceName":{"type":"string","description":"The MFA Device Name.\n"},"deviceType":{"type":"string","description":"The MFA Device Type.\n"},"effectiveTime":{"type":"string","description":"The Effective Time of MFA Device.\n"}},"type":"object","required":["deviceId","deviceName","deviceType","effectiveTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudstoragegateway/getExpressSyncsSync:getExpressSyncsSync":{"properties":{"bucketName":{"type":"string","description":"The name of the OSS Bucket.\n"},"bucketPrefix":{"type":"string","description":"The prefix of the OSS Bucket.\n"},"bucketRegion":{"type":"string","description":"The region of the OSS Bucket.\n"},"description":{"type":"string","description":"The description of the Express Sync.\n"},"expressSyncId":{"type":"string","description":"The ID of the Express Sync.\n"},"expressSyncName":{"type":"string","description":"The name of the Express Sync.\n"},"id":{"type":"string","description":"The resource ID in terraform of Express Sync. The value is formate as \u003cexpress_sync_id\u003e.\n"},"mnsTopic":{"type":"string","description":"The name of the message topic (Topic) corresponding to the Express Sync in the Alibaba Cloud Message Service MNS.\n"}},"type":"object","required":["bucketName","bucketPrefix","bucketRegion","description","expressSyncId","expressSyncName","id","mnsTopic"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudstoragegateway/getGatewayBlockVolumesVolume:getGatewayBlockVolumesVolume":{"properties":{"address":{"type":"string","description":"The IP ADDRESS.\n"},"cacheMode":{"type":"string","description":"The Block volume set mode to cache mode. Valid values: `Cache`, `WriteThrough`.\n"},"chapEnabled":{"type":"boolean","description":"Whether to enable iSCSI access of CHAP authentication, which currently supports both CHAP inbound authentication.  Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"chapInUser":{"type":"string","description":"The Inbound CHAP user.**NOTE:** When the \u003cspan pulumi-lang-nodejs=\"`chapEnabled`\" pulumi-lang-dotnet=\"`ChapEnabled`\" pulumi-lang-go=\"`chapEnabled`\" pulumi-lang-python=\"`chap_enabled`\" pulumi-lang-yaml=\"`chapEnabled`\" pulumi-lang-java=\"`chapEnabled`\"\u003e`chap_enabled`\u003c/span\u003e is  \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e is,The \u003cspan pulumi-lang-nodejs=\"`chapInPassword`\" pulumi-lang-dotnet=\"`ChapInPassword`\" pulumi-lang-go=\"`chapInPassword`\" pulumi-lang-python=\"`chap_in_password`\" pulumi-lang-yaml=\"`chapInPassword`\" pulumi-lang-java=\"`chapInPassword`\"\u003e`chap_in_password`\u003c/span\u003e is valid.\n"},"chunkSize":{"type":"integer","description":"The Block volume storage allocation unit.  Valid values: \u003cspan pulumi-lang-nodejs=\"`8192`\" pulumi-lang-dotnet=\"`8192`\" pulumi-lang-go=\"`8192`\" pulumi-lang-python=\"`8192`\" pulumi-lang-yaml=\"`8192`\" pulumi-lang-java=\"`8192`\"\u003e`8192`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16384`\" pulumi-lang-dotnet=\"`16384`\" pulumi-lang-go=\"`16384`\" pulumi-lang-python=\"`16384`\" pulumi-lang-yaml=\"`16384`\" pulumi-lang-java=\"`16384`\"\u003e`16384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`131072`\" pulumi-lang-dotnet=\"`131072`\" pulumi-lang-go=\"`131072`\" pulumi-lang-python=\"`131072`\" pulumi-lang-yaml=\"`131072`\" pulumi-lang-java=\"`131072`\"\u003e`131072`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e. Unit: `Byte`.\n"},"diskId":{"type":"string","description":"The cache disk ID.\n"},"diskType":{"type":"string","description":"The cache disk type.\n"},"enabled":{"type":"boolean","description":"Whether to enable Volume.\n"},"gatewayBlockVolumeName":{"type":"string","description":"The Block volume name.  The name must be 1 to 32 characters in length, and can contain lowercase letters, numbers.\n"},"gatewayId":{"type":"string","description":"The Gateway ID.\n"},"id":{"type":"string","description":"The ID of the Gateway Block Volume. The value formats as `\u003cgateway_id\u003e:\u003cindex_id\u003e`.\n"},"indexId":{"type":"string","description":"The ID of the index.\n"},"localPath":{"type":"string","description":"CThe Cache disk to local path. **NOTE:**  When the \u003cspan pulumi-lang-nodejs=\"`cacheMode`\" pulumi-lang-dotnet=\"`CacheMode`\" pulumi-lang-go=\"`cacheMode`\" pulumi-lang-python=\"`cache_mode`\" pulumi-lang-yaml=\"`cacheMode`\" pulumi-lang-java=\"`cacheMode`\"\u003e`cache_mode`\u003c/span\u003e is  `Cache` is,The \u003cspan pulumi-lang-nodejs=\"`chapInPassword`\" pulumi-lang-dotnet=\"`ChapInPassword`\" pulumi-lang-go=\"`chapInPassword`\" pulumi-lang-python=\"`chap_in_password`\" pulumi-lang-yaml=\"`chapInPassword`\" pulumi-lang-java=\"`chapInPassword`\"\u003e`chap_in_password`\u003c/span\u003e is valid.\n"},"lunId":{"type":"integer","description":"The Lun identifier.\n"},"ossBucketName":{"type":"string","description":"The name of the OSS Bucket.\n"},"ossBucketSsl":{"type":"boolean","description":"Whether to enable SSL access your OSS Buckets. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"ossEndpoint":{"type":"string","description":"The endpoint of the OSS Bucket.\n"},"port":{"type":"integer","description":"The Port.\n"},"protocol":{"type":"string","description":"The Protocol.\n"},"size":{"type":"integer","description":"The Volume size.\n"},"state":{"type":"string","description":"The Buffer status.\n"},"status":{"type":"integer","description":"The status of volume.\n"},"target":{"type":"string","description":"The target.\n"},"totalDownload":{"type":"integer","description":"The total amount of downloaded data. Unit: `B`.\n"},"totalUpload":{"type":"integer","description":"The total amount of uploaded data. Unit: `B`.\n"},"volumeState":{"type":"integer"}},"type":"object","required":["address","cacheMode","chapEnabled","chapInUser","chunkSize","diskId","diskType","enabled","gatewayBlockVolumeName","gatewayId","id","indexId","localPath","lunId","ossBucketName","ossBucketSsl","ossEndpoint","port","protocol","size","state","status","target","totalDownload","totalUpload","volumeState"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudstoragegateway/getGatewayCacheDisksDisk:getGatewayCacheDisksDisk":{"properties":{"cacheDiskCategory":{"type":"string","description":"The category of eht cache disk.\n"},"cacheDiskSizeInGb":{"type":"integer","description":"The size of the cache disk.\n"},"cacheId":{"type":"string","description":"The ID of the cache disk.\n"},"expiredTime":{"type":"integer","description":"The expiration time. Time stamp in seconds (s).\n"},"gatewayId":{"type":"string","description":"The ID of the gateway.\n"},"id":{"type":"string","description":"The ID of the Gateway Cache Disk.\n"},"iops":{"type":"integer","description":"Per second of the input output.\n"},"isUsed":{"type":"boolean","description":"Whether it is used.\n"},"localFilePath":{"type":"string","description":"The cache disk inside the device name.\n"},"renewUrl":{"type":"string","description":"A renewal link of the cache disk.\n"},"status":{"type":"integer","description":"The status of the resource.\n"}},"type":"object","required":["cacheDiskCategory","cacheDiskSizeInGb","cacheId","expiredTime","gatewayId","id","iops","isUsed","localFilePath","renewUrl","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudstoragegateway/getGatewayFileSharesShare:getGatewayFileSharesShare":{"properties":{"accessBasedEnumeration":{"type":"boolean","description":"The set up gateway file share Server Message Block (SMB) protocol, whether to enable Windows ABE, the prime minister, need windowsAcl parameter is set to true in the entry into force of. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** Gateway version \u003e= 1.0.45 above support.\n"},"address":{"type":"string","description":"Share the private IP address of the RDS instance.\n"},"backendLimit":{"type":"integer","description":"The set up gateway file share Max upload speed. Unit: `MB/s`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means unlimited. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`1280`\" pulumi-lang-dotnet=\"`1280`\" pulumi-lang-go=\"`1280`\" pulumi-lang-python=\"`1280`\" pulumi-lang-yaml=\"`1280`\" pulumi-lang-java=\"`1280`\"\u003e`1280`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. **NOTE:** at the same time if you have to limit the maximum write speed, maximum upload speed is no less than the maximum write speed.\n"},"browsable":{"type":"boolean","description":"The set up gateway file share Server Message Block (SMB) protocol whether browsable (that is, in the network neighborhood of whether you can find). The parameters in the NFS protocol not valid under. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"bucketInfos":{"type":"string","description":"Multi-Bucket information.\n"},"bucketsStub":{"type":"boolean","description":"Whether there are multiple buckets.\n"},"bypassCacheRead":{"type":"boolean","description":"Direct reading OSS of the gateway file share.\n"},"cacheMode":{"type":"string","description":"The cache mode of the gateway file share. Value range: Cache: cached mode. Sync: replication mode are available.\n"},"clientSideCmk":{"type":"string","description":"File share is enabled to client-side encryption, the encryption by the use of the KMS key. **NOTE:** note: This KMS key must be the gateway and is in the same Region.\n"},"clientSideEncryption":{"type":"boolean","description":"Whether to enabled to client-side encryption of the gateway file share. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** need to contact us open whitelist before you can the settings, and only supports enhanced more than online gateway, at the same time, server-side encryption and to client-side encryption can not simultaneously configuration.\n"},"directIo":{"type":"boolean","description":"Whether directio (direct I/O data transfer) is enabled for file share. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"diskId":{"type":"string","description":"The ID of the disk.\n"},"diskType":{"type":"string","description":"The cache disk type. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e: Ultra cloud disk. \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e:SSD cloud disk.\n"},"downloadLimit":{"type":"integer","description":"The set up gateway file share maximum download speed. Unit: `MB/s`. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means unlimited. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`1280`\" pulumi-lang-dotnet=\"`1280`\" pulumi-lang-go=\"`1280`\" pulumi-lang-python=\"`1280`\" pulumi-lang-yaml=\"`1280`\" pulumi-lang-java=\"`1280`\"\u003e`1280`\u003c/span\u003e. **NOTE:** only in copy mode and enable download file data can be set. only when the shared opens the reverse synchronization or acceded to by the speed synchronization Group when, this parameter will not take effect. Gateway version \u003e= 1.3.0 above support.\n"},"enabled":{"type":"boolean","description":"Shared whether the changes take effect.\n"},"expressSyncId":{"type":"string","description":"Speed synchronization group ID.\n"},"fastReclaim":{"type":"boolean","description":"The set up gateway file share whether to enable Upload optimization, which is suitable for data pure backup migration scenarios. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** Gateway version \u003e= 1.0.39 above support.\n"},"feLimit":{"type":"integer","description":"The set up gateway file share and the maximum write speed. Unit: `MB/s`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means unlimited. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`1280`\" pulumi-lang-dotnet=\"`1280`\" pulumi-lang-go=\"`1280`\" pulumi-lang-python=\"`1280`\" pulumi-lang-yaml=\"`1280`\" pulumi-lang-java=\"`1280`\"\u003e`1280`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"fileNumLimit":{"type":"string","description":"Supported by the file system file number.\n"},"fsSizeLimit":{"type":"string","description":"File system capacity. Unit: `B`.\n"},"gatewayFileShareName":{"type":"string","description":"The name of the file share. Length from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e characters can contain lowercase letters, digits, (.), (_) Or (-), at the same time, must start with a lowercase letter.\n"},"gatewayId":{"type":"string","description":"The ID of the gateway.\n"},"id":{"type":"string","description":"The ID of the Gateway File Share.\n"},"ignoreDelete":{"type":"boolean","description":"Whether to ignore deleted of the gateway file share. After the opening of the Gateway side delete file or delete cloud (OSS) corresponding to the file. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** Gateway version \u003e= 1.0.40 above support.\n"},"inPlace":{"type":"boolean","description":"Whether debris optimization of the gateway file share. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"inRate":{"type":"string","description":"Cache growth. Unit: `B/s`.\n"},"indexId":{"type":"string","description":"The ID of the file share.\n"},"kmsRotatePeriod":{"type":"integer","description":"File share is enabled to client-side encryption, key rotation period of time. Seconds. 0 represents no rotation. Rotation of the value range: \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"lagPeriod":{"type":"string","description":"The synchronization delay, I.e. gateway local cache sync to Alibaba Cloud Object Storage Service (oss) of the delay time. Unit: `Seconds`. Value range: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`120`\" pulumi-lang-dotnet=\"`120`\" pulumi-lang-go=\"`120`\" pulumi-lang-python=\"`120`\" pulumi-lang-yaml=\"`120`\" pulumi-lang-java=\"`120`\"\u003e`120`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. **NOTE:** Gateway version \u003e= 1.0.40 above support.\n"},"localPath":{"type":"string","description":"The cache disk inside the device name.\n"},"mnsHealth":{"type":"string","description":"The messages from the queue health types. Valid values: `TopicAndQueueFailure`: A Message Queuing message theme can be accessed during the black hole period. `TopicFailure`: a message theme can be accessed during the black hole period. `MNSFullSyncInit`: full synchronization wait. `MNSFullSyncing`: full synchronization in progress. `QueueFailure`: a message queue can be accessed during the black hole period. `MNSNotEnabled`: Top speed synchronization is not enabled. `MNSHealthy`: sync fine.\n"},"nfsV4Optimization":{"type":"boolean","description":"The set up gateway file share NFS protocol, whether to enable NFS v4 optimization improve Mount Upload efficiency. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** turns on after I will not support NFS v3 mount the filesystem on a. Gateway version \u003e= 1.2.0 above support.\n"},"obsoleteBuckets":{"type":"string","description":"Multi-Bucket, removing the Bucket.\n"},"ossBucketName":{"type":"string","description":"The name of the Bucket.\n"},"ossBucketSsl":{"type":"boolean","description":"Whether they are using SSL connect to OSS Bucket.\n"},"ossEndpoint":{"type":"string","description":"The set up gateway file share corresponds to the Object Storage SERVICE (OSS), Bucket Endpoint. **NOTE:** distinguish between intranet and internet Endpoint. We recommend that if the OSS Bucket and the gateway is in the same Region is use the RDS intranet IP Endpoint:oss-cn-hangzhou-internal.aliyuncs.com.\n"},"ossHealth":{"type":"string","description":"The OSS Bucket of type. Valid values: `BucketHealthy`: OSS connectivity. `BucketAccessDenied`: OBJECT STORAGE Service (OSS) access to an exception. `BucketMiscFailure`: OBJECT STORAGE Service (OSS) access to additional exception. `BucketNetworkFailure`: OBJECT STORAGE Service (OSS) access network an exception. `BucketNotExist`: OSS Bucket does not exist. `Nothing returns`: We may not have ever known existed.\n"},"ossUsed":{"type":"string","description":"For a cloud-based data is. Unit: `B`.\n"},"outRate":{"type":"string","description":"Upload speed. Unit: `B/s`.\n"},"partialSyncPaths":{"type":"string","description":"In part mode, the directory path group JSON format.\n"},"pathPrefix":{"type":"string","description":"The prefix of the OSS.\n"},"pollingInterval":{"type":"integer","description":"The reverse synchronization time intervals of the gateway file share. Value range: \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`36000`\" pulumi-lang-dotnet=\"`36000`\" pulumi-lang-go=\"`36000`\" pulumi-lang-python=\"`36000`\" pulumi-lang-yaml=\"`36000`\" pulumi-lang-java=\"`36000`\"\u003e`36000`\u003c/span\u003e. **NOTE:** in copy mode + reverse synchronization is enabled Download file data, value range: \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`36000`\" pulumi-lang-dotnet=\"`36000`\" pulumi-lang-go=\"`36000`\" pulumi-lang-python=\"`36000`\" pulumi-lang-yaml=\"`36000`\" pulumi-lang-java=\"`36000`\"\u003e`36000`\u003c/span\u003e.\n"},"protocol":{"type":"string","description":"Share types. Valid values: `SMB`, `NFS`.\n"},"remainingMetaSpace":{"type":"string","description":"You can use the metadata space. Unit: `B`.\n"},"remoteSync":{"type":"boolean","description":"Whether to enable reverse synchronization of the gateway file share. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"remoteSyncDownload":{"type":"boolean","description":"Copy mode, whether to download the file data. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** only when the shared opens the reverse synchronization or acceded to by the speed synchronization group, this parameter will not take effect.\n"},"roClientList":{"type":"string","description":"The read-only client list. When Protocol NFS is returned when the status is.\n"},"roUserList":{"type":"string","description":"The read-only client list. When Protocol for Server Message Block (SMB) to go back to.\n"},"rwClientList":{"type":"string","description":"Read and write the client list. When Protocol NFS is returned when the status is.\n"},"rwUserList":{"type":"string","description":"Read-write user list. When Protocol for Server Message Block (SMB) to go back to.\n"},"serverSideCmk":{"type":"string","description":"File share is enabled server-side encryption, encryption used by the KMS key.\n"},"serverSideEncryption":{"type":"boolean","description":"If the OSS Bucket side encryption.\n"},"size":{"type":"string","description":"The caching capacity. Unit: `B`.\n"},"squash":{"type":"string","description":"The set up gateway file share NFS protocol user mapping. Valid values: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rootSquash`\" pulumi-lang-dotnet=\"`RootSquash`\" pulumi-lang-go=\"`rootSquash`\" pulumi-lang-python=\"`root_squash`\" pulumi-lang-yaml=\"`rootSquash`\" pulumi-lang-java=\"`rootSquash`\"\u003e`root_squash`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`allSquash`\" pulumi-lang-dotnet=\"`AllSquash`\" pulumi-lang-go=\"`allSquash`\" pulumi-lang-python=\"`all_squash`\" pulumi-lang-yaml=\"`allSquash`\" pulumi-lang-java=\"`allSquash`\"\u003e`all_squash`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`allAnonymous`\" pulumi-lang-dotnet=\"`AllAnonymous`\" pulumi-lang-go=\"`allAnonymous`\" pulumi-lang-python=\"`all_anonymous`\" pulumi-lang-yaml=\"`allAnonymous`\" pulumi-lang-java=\"`allAnonymous`\"\u003e`all_anonymous`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"},"state":{"type":"string","description":"File synchronization types. Valid values: \u003cspan pulumi-lang-nodejs=\"`clean`\" pulumi-lang-dotnet=\"`Clean`\" pulumi-lang-go=\"`clean`\" pulumi-lang-python=\"`clean`\" pulumi-lang-yaml=\"`clean`\" pulumi-lang-java=\"`clean`\"\u003e`clean`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dirty`\" pulumi-lang-dotnet=\"`Dirty`\" pulumi-lang-go=\"`dirty`\" pulumi-lang-python=\"`dirty`\" pulumi-lang-yaml=\"`dirty`\" pulumi-lang-java=\"`dirty`\"\u003e`dirty`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`clean`\" pulumi-lang-dotnet=\"`Clean`\" pulumi-lang-go=\"`clean`\" pulumi-lang-python=\"`clean`\" pulumi-lang-yaml=\"`clean`\" pulumi-lang-java=\"`clean`\"\u003e`clean`\u003c/span\u003e: synchronization is complete. \u003cspan pulumi-lang-nodejs=\"`dirty`\" pulumi-lang-dotnet=\"`Dirty`\" pulumi-lang-go=\"`dirty`\" pulumi-lang-python=\"`dirty`\" pulumi-lang-yaml=\"`dirty`\" pulumi-lang-java=\"`dirty`\"\u003e`dirty`\u003c/span\u003e: synchronization has not been completed.\n"},"supportArchive":{"type":"boolean","description":"Whether to support the archive transparent read.\n"},"syncProgress":{"type":"integer","description":"Full synchronization progress. When the share has been added for a synchronization group, the return parameters are valid, that shared full synchronization progress (0~100). `-2`: indicates that share the Gateway version does not support this feature. `-1`: the share does not occur full synchronization.\n"},"totalDownload":{"type":"string","description":"The OSS Bucket to the Gateway total downloads. Unit: `B`.\n"},"totalUpload":{"type":"string","description":"The OSS Bucket to the Gateway total Upload amount. Unit: `B`.\n"},"transferAcceleration":{"type":"boolean","description":"The set up gateway file share whether to enable transmission acceleration needs corresponding OSS Bucket enabled transport acceleration. **NOTE:** Gateway version \u003e= 1.3.0 above support.\n"},"used":{"type":"string","description":"Used cache. Unit: `B`.\n"},"windowsAcl":{"type":"boolean","description":"The set up gateway file share Server Message Block (SMB) protocol, whether to enable by Windows access list (requires AD domain) the permissions control. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** Gateway version \u003e= 1.0.45 above support.\n"}},"type":"object","required":["accessBasedEnumeration","address","backendLimit","browsable","bucketInfos","bucketsStub","bypassCacheRead","cacheMode","clientSideCmk","clientSideEncryption","directIo","diskId","diskType","downloadLimit","enabled","expressSyncId","fastReclaim","feLimit","fileNumLimit","fsSizeLimit","gatewayFileShareName","gatewayId","id","ignoreDelete","inPlace","inRate","indexId","kmsRotatePeriod","lagPeriod","localPath","mnsHealth","nfsV4Optimization","obsoleteBuckets","ossBucketName","ossBucketSsl","ossEndpoint","ossHealth","ossUsed","outRate","partialSyncPaths","pathPrefix","pollingInterval","protocol","remainingMetaSpace","remoteSync","remoteSyncDownload","roClientList","roUserList","rwClientList","rwUserList","serverSideCmk","serverSideEncryption","size","squash","state","supportArchive","syncProgress","totalDownload","totalUpload","transferAcceleration","used","windowsAcl"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudstoragegateway/getGatewaySmbUsersUser:getGatewaySmbUsersUser":{"properties":{"gatewayId":{"type":"string","description":"The Gateway ID.\n"},"id":{"type":"string","description":"The ID of the Gateway SMB User.\n"},"username":{"type":"string","description":"The username of the Gateway SMB User.\n"}},"type":"object","required":["gatewayId","id","username"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudstoragegateway/getGatewaysGateway:getGatewaysGateway":{"properties":{"activatedTime":{"type":"string","description":"gateway .\n"},"buyUrl":{"type":"string"},"category":{"type":"string","description":"gateway category.\n"},"createTime":{"type":"string","description":"gateway created timestamp in second format.\n"},"description":{"type":"string","description":"gateway description.\n"},"ecsInstanceId":{"type":"string","description":"gateway ecs instance id.\n"},"expireStatus":{"type":"integer","description":"gateway expiration status.\n"},"expiredTime":{"type":"string","description":"gateway expiration timestamp in second format.\n"},"gatewayClass":{"type":"string","description":"gateway class.\n"},"gatewayId":{"type":"string","description":"gateway id.\n"},"gatewayName":{"type":"string","description":"gateway name.\n"},"gatewayVersion":{"type":"string","description":"gateway version.\n"},"id":{"type":"string","description":"The ID of the Gateway.\n"},"innerIp":{"type":"string","description":"gateway service ip.\n"},"ip":{"type":"string","description":"gateway public ip.\n"},"isReleaseAfterExpiration":{"type":"boolean","description":"whether subscription gateway is released after expiration or not.\n"},"location":{"type":"string","description":"gateway location.\n"},"paymentType":{"type":"string","description":"gateway payment type. The Payment type of gateway. The valid value: `PayAsYouGo`, `Subscription`.\n"},"publicNetworkBandwidth":{"type":"integer","description":"gateway public network bandwidth.\n"},"renewUrl":{"type":"string"},"status":{"type":"string","description":"gateway status.\n"},"storageBundleId":{"type":"string","description":"storage bundle id.\n"},"taskId":{"type":"string","description":"gateway task id.\n"},"type":{"type":"string","description":"gateway type.\n"},"vpcId":{"type":"string","description":"gateway vpc id.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"}},"type":"object","required":["activatedTime","buyUrl","category","createTime","description","ecsInstanceId","expireStatus","expiredTime","gatewayClass","gatewayId","gatewayName","gatewayVersion","id","innerIp","ip","isReleaseAfterExpiration","location","paymentType","publicNetworkBandwidth","renewUrl","status","storageBundleId","taskId","type","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudstoragegateway/getStocksStock:getStocksStock":{"properties":{"availableGatewayClasses":{"type":"array","items":{"type":"string"},"description":"A list of available gateway class in this Zone ID.\n"},"zoneId":{"type":"string","description":"The Zone ID.\n"}},"type":"object","required":["availableGatewayClasses","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cloudstoragegateway/getStorageBundlesBundle:getStorageBundlesBundle":{"properties":{"createTime":{"type":"string"},"description":{"type":"string"},"id":{"type":"string"},"location":{"type":"string"},"storageBundleId":{"type":"string"},"storageBundleName":{"type":"string"}},"type":"object","required":["createTime","description","id","location","storageBundleId","storageBundleName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/AlarmCompositeExpression:AlarmCompositeExpression":{"properties":{"expressionListJoin":{"type":"string","description":"The relationship between the trigger conditions for multiple metrics. Valid values: `\u0026\u0026`, `||`.\n"},"expressionLists":{"type":"array","items":{"$ref":"#/types/alicloud:cms/AlarmCompositeExpressionExpressionList:AlarmCompositeExpressionExpressionList"},"description":"The trigger conditions that are created in standard mode. See \u003cspan pulumi-lang-nodejs=\"`expressionList`\" pulumi-lang-dotnet=\"`ExpressionList`\" pulumi-lang-go=\"`expressionList`\" pulumi-lang-python=\"`expression_list`\" pulumi-lang-yaml=\"`expressionList`\" pulumi-lang-java=\"`expressionList`\"\u003e`expression_list`\u003c/span\u003e below.\n"},"expressionRaw":{"type":"string","description":"The trigger conditions that are created by using expressions.\n"},"level":{"type":"string","description":"The level of the alert. Valid values: `CRITICAL`, `WARN`, `INFO`.\n"},"times":{"type":"integer","description":"The number of consecutive triggers.\n"}},"type":"object"},"alicloud:cms/AlarmCompositeExpressionExpressionList:AlarmCompositeExpressionExpressionList":{"properties":{"comparisonOperator":{"type":"string"},"metricName":{"type":"string","description":"The metric that is used to monitor the cloud service.\n"},"period":{"type":"string","description":"The statistical period of the metric. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"statistics":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`statistics`\" pulumi-lang-dotnet=\"`Statistics`\" pulumi-lang-go=\"`statistics`\" pulumi-lang-python=\"`statistics`\" pulumi-lang-yaml=\"`statistics`\" pulumi-lang-java=\"`statistics`\"\u003e`statistics`\u003c/span\u003e has been removed from provider version 1.216.0. New field `escalations_critical.statistics` instead.\n"},"threshold":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`threshold`\" pulumi-lang-dotnet=\"`Threshold`\" pulumi-lang-go=\"`threshold`\" pulumi-lang-python=\"`threshold`\" pulumi-lang-yaml=\"`threshold`\" pulumi-lang-java=\"`threshold`\"\u003e`threshold`\u003c/span\u003e has been removed from provider version 1.216.0. New field `escalations_critical.threshold` instead.\n"}},"type":"object"},"alicloud:cms/AlarmEscalationsCritical:AlarmEscalationsCritical":{"properties":{"comparisonOperator":{"type":"string","description":"Critical level alarm comparison operator. Default value: `\u003e`. Valid values: `\u003e`, `\u003e=`, `\u003c`, `\u003c=`, `!=`, `==`, `GreaterThanYesterday`, `LessThanYesterday`, `GreaterThanLastWeek`, `LessThanLastWeek`, `GreaterThanLastPeriod`, `LessThanLastPeriod`. **NOTE:** From version 1.231.0, \u003cspan pulumi-lang-nodejs=\"`comparisonOperator`\" pulumi-lang-dotnet=\"`ComparisonOperator`\" pulumi-lang-go=\"`comparisonOperator`\" pulumi-lang-python=\"`comparison_operator`\" pulumi-lang-yaml=\"`comparisonOperator`\" pulumi-lang-java=\"`comparisonOperator`\"\u003e`comparison_operator`\u003c/span\u003e can be set to `==`.\n"},"statistics":{"type":"string","description":"Critical level alarm statistics method. It must be consistent with that defined for metrics. For more information, see [How to use it](https://cms.console.aliyun.com/metric-meta/acs_ecs_dashboard/ecs).\n"},"threshold":{"type":"string","description":"Critical level alarm threshold value, which must be a numeric value currently.\n"},"times":{"type":"integer","description":"Critical level alarm retry times. Default value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"}},"type":"object"},"alicloud:cms/AlarmEscalationsInfo:AlarmEscalationsInfo":{"properties":{"comparisonOperator":{"type":"string","description":"Info level alarm comparison operator. Default value: `\u003e`. Valid values: `\u003e`, `\u003e=`, `\u003c`, `\u003c=`, `!=`, `==`, `GreaterThanYesterday`, `LessThanYesterday`, `GreaterThanLastWeek`, `LessThanLastWeek`, `GreaterThanLastPeriod`, `LessThanLastPeriod`. **NOTE:** From version 1.231.0, \u003cspan pulumi-lang-nodejs=\"`comparisonOperator`\" pulumi-lang-dotnet=\"`ComparisonOperator`\" pulumi-lang-go=\"`comparisonOperator`\" pulumi-lang-python=\"`comparison_operator`\" pulumi-lang-yaml=\"`comparisonOperator`\" pulumi-lang-java=\"`comparisonOperator`\"\u003e`comparison_operator`\u003c/span\u003e can be set to `==`.\n"},"statistics":{"type":"string","description":"Info level alarm statistics method. It must be consistent with that defined for metrics. For more information, see [How to use it](https://cms.console.aliyun.com/metric-meta/acs_ecs_dashboard/ecs).\n"},"threshold":{"type":"string","description":"Info level alarm threshold value, which must be a numeric value currently.\n"},"times":{"type":"integer","description":"Info level alarm retry times. Default value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"}},"type":"object"},"alicloud:cms/AlarmEscalationsWarn:AlarmEscalationsWarn":{"properties":{"comparisonOperator":{"type":"string","description":"Warn level alarm comparison operator. Default value: `\u003e`. Valid values: `\u003e`, `\u003e=`, `\u003c`, `\u003c=`, `!=`, `==`, `GreaterThanYesterday`, `LessThanYesterday`, `GreaterThanLastWeek`, `LessThanLastWeek`, `GreaterThanLastPeriod`, `LessThanLastPeriod`. **NOTE:** From version 1.231.0, \u003cspan pulumi-lang-nodejs=\"`comparisonOperator`\" pulumi-lang-dotnet=\"`ComparisonOperator`\" pulumi-lang-go=\"`comparisonOperator`\" pulumi-lang-python=\"`comparison_operator`\" pulumi-lang-yaml=\"`comparisonOperator`\" pulumi-lang-java=\"`comparisonOperator`\"\u003e`comparison_operator`\u003c/span\u003e can be set to `==`.\n"},"statistics":{"type":"string","description":"Warn level alarm statistics method. It must be consistent with that defined for metrics. For more information, see [How to use it](https://cms.console.aliyun.com/metric-meta/acs_ecs_dashboard/ecs).\n"},"threshold":{"type":"string","description":"Warn level alarm threshold value, which must be a numeric value currently.\n"},"times":{"type":"integer","description":"Warn level alarm retry times. Default value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"}},"type":"object"},"alicloud:cms/AlarmPrometheus:AlarmPrometheus":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"The annotations of the Prometheus alert rule. When a Prometheus alert is triggered, the system renders the annotated keys and values to help you understand the metrics and alert rule.\n"},"level":{"type":"string","description":"The level of the alert. Valid values: `Critical`, `Warn`, `Info`.\n"},"promQl":{"type":"string","description":"The PromQL query statement. **Note:** The data obtained by using the PromQL query statement is the monitoring data. You must include the alert threshold in this statement.\n"},"times":{"type":"integer","description":"The number of consecutive triggers. If the number of times that the metric values meet the trigger conditions reaches the value of this parameter, CloudMonitor sends alert notifications.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["level","times"]}}},"alicloud:cms/AlarmTarget:AlarmTarget":{"properties":{"arn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the resource. Simple Message Queue (formerly MNS) (SMQ), Auto Scaling, Simple Log Service, and Function Compute are supported:\n- SMQ: `acs:mns:{regionId}:{userId}:/{Resource type}/{Resource name}/message`. {regionId}: the region ID of the SMQ queue or topic. {userId}: the ID of the Alibaba Cloud account that owns the resource. {Resource type}: the type of the resource for which alerts are triggered. Valid values:queues, topics. {Resource name}: the resource name. If the resource type is queues, the resource name is the queue name. If the resource type is topics, the resource name is the topic name.\n- Auto Scaling: `acs:ess:{regionId}:{userId}:scalingGroupId/{Scaling group ID}:scalingRuleId/{Scaling rule ID}`\n- Simple Log Service: `acs:log:{regionId}:{userId}:project/{Project name}/logstore/{Logstore name}`\n- Function Compute: `acs:fc:{regionId}:{userId}:services/{Service name}/functions/{Function name}`\n"},"jsonParams":{"type":"string","description":"The parameters of the alert callback. The parameters are in the JSON format.\n"},"level":{"type":"string","description":"The level of the alert. Valid values: `Critical`, `Warn`, `Info`.\n"},"targetId":{"type":"string","description":"The ID of the resource for which alerts are triggered. For more information about how to obtain the ID of the resource for which alerts are triggered, see [DescribeMetricRuleTargets](https://www.alibabacloud.com/help/en/cms/developer-reference/api-describemetricruletargets) .\n"}},"type":"object"},"alicloud:cms/DynamicTagGroupMatchExpress:DynamicTagGroupMatchExpress":{"properties":{"tagValue":{"type":"string","description":"The tag values of the cloud resources.\n","willReplaceOnChanges":true},"tagValueMatchFunction":{"type":"string","description":"The method that is used to match the tag values of the cloud resources. Valid values: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, `startWith`, `endWith`, \u003cspan pulumi-lang-nodejs=\"`contains`\" pulumi-lang-dotnet=\"`Contains`\" pulumi-lang-go=\"`contains`\" pulumi-lang-python=\"`contains`\" pulumi-lang-yaml=\"`contains`\" pulumi-lang-java=\"`contains`\"\u003e`contains`\u003c/span\u003e, `notContains`, \u003cspan pulumi-lang-nodejs=\"`equals`\" pulumi-lang-dotnet=\"`Equals`\" pulumi-lang-go=\"`equals`\" pulumi-lang-python=\"`equals`\" pulumi-lang-yaml=\"`equals`\" pulumi-lang-java=\"`equals`\"\u003e`equals`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object","required":["tagValue","tagValueMatchFunction"]},"alicloud:cms/EventRuleContactParameter:EventRuleContactParameter":{"properties":{"contactGroupName":{"type":"string","description":"The name of the alert contact group.\n"},"contactParametersId":{"type":"string","description":"The ID of the recipient that receives alert notifications.\n"},"level":{"type":"string","description":"The alert level and the corresponding notification methods.\n"}},"type":"object"},"alicloud:cms/EventRuleEventPattern:EventRuleEventPattern":{"properties":{"eventTypeLists":{"type":"array","items":{"type":"string"},"description":"The type of the event-triggered alert rule. Valid values:\n- `StatusNotification`: fault notifications.\n- `Exception`: exceptions.\n- `Maintenance`: O\u0026M.\n- `*`: all types.\n"},"levelLists":{"type":"array","items":{"type":"string"},"description":"The level of the event-triggered alert rule. Valid values:\n- `CRITICAL`: critical.\n- `WARN`: warning.\n- `INFO`: information.\n- `*`: all types.\n"},"nameLists":{"type":"array","items":{"type":"string"},"description":"The name of the event-triggered alert rule.\n"},"product":{"type":"string","description":"The type of the cloud service.\n"},"sqlFilter":{"type":"string","description":"The SQL condition that is used to filter events. If the content of an event meets the specified SQL condition, an alert is automatically triggered.\n"}},"type":"object","required":["product"]},"alicloud:cms/EventRuleFcParameter:EventRuleFcParameter":{"properties":{"arn":{"type":"string","description":"(Available since v1.211.1) The ARN of the API operation.\n"},"fcParametersId":{"type":"string","description":"The ID of the recipient that receives alert notifications.\n"},"functionName":{"type":"string","description":"The name of the function.\n"},"region":{"type":"string","description":"The region where Function Compute is deployed.\n"},"serviceName":{"type":"string","description":"The name of the Function Compute service.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["arn"]}}},"alicloud:cms/EventRuleMnsParameter:EventRuleMnsParameter":{"properties":{"arn":{"type":"string","description":"(Available since v1.211.1) The ARN of the API operation.\n"},"mnsParametersId":{"type":"string","description":"The ID of the recipient that receives alert notifications.\n"},"queue":{"type":"string","description":"The name of the MNS queue.\n"},"region":{"type":"string","description":"The region where Message Service (MNS) is deployed.\n"},"topic":{"type":"string","description":"The MNS topic.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["arn"]}}},"alicloud:cms/EventRuleOpenApiParameter:EventRuleOpenApiParameter":{"properties":{"action":{"type":"string","description":"The API name.\n"},"arn":{"type":"string","description":"(Available since v1.211.1) The ARN of the API operation.\n"},"openApiParametersId":{"type":"string","description":"The ID of the recipient that receives alert notifications sent by an API callback.\n"},"product":{"type":"string","description":"The ID of the cloud service to which the API operation belongs.\n"},"region":{"type":"string","description":"The region where the resource resides.\n"},"role":{"type":"string","description":"The name of the role.\n"},"version":{"type":"string","description":"The version of the API.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["arn"]}}},"alicloud:cms/EventRuleSlsParameter:EventRuleSlsParameter":{"properties":{"arn":{"type":"string","description":"(Available since v1.211.1) The ARN of the API operation.\n"},"logStore":{"type":"string","description":"The name of the Simple Log Service Logstore.\n"},"project":{"type":"string","description":"The name of the Simple Log Service project.\n"},"region":{"type":"string","description":"The region where Simple Log Service is deployed.\n"},"slsParametersId":{"type":"string","description":"The ID of the recipient that receives alert notifications.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["arn"]}}},"alicloud:cms/EventRuleWebhookParameter:EventRuleWebhookParameter":{"properties":{"method":{"type":"string","description":"The HTTP request method.\n"},"protocol":{"type":"string","description":"The name of the protocol.\n"},"url":{"type":"string","description":"The callback URL.\n"},"webhookParametersId":{"type":"string","description":"The ID of the recipient that receives alert notifications.\n"}},"type":"object"},"alicloud:cms/GroupMetricRuleEscalations:GroupMetricRuleEscalations":{"properties":{"critical":{"$ref":"#/types/alicloud:cms/GroupMetricRuleEscalationsCritical:GroupMetricRuleEscalationsCritical","description":"The critical level. See \u003cspan pulumi-lang-nodejs=\"`critical`\" pulumi-lang-dotnet=\"`Critical`\" pulumi-lang-go=\"`critical`\" pulumi-lang-python=\"`critical`\" pulumi-lang-yaml=\"`critical`\" pulumi-lang-java=\"`critical`\"\u003e`critical`\u003c/span\u003e below.\n"},"info":{"$ref":"#/types/alicloud:cms/GroupMetricRuleEscalationsInfo:GroupMetricRuleEscalationsInfo","description":"The info level. See \u003cspan pulumi-lang-nodejs=\"`info`\" pulumi-lang-dotnet=\"`Info`\" pulumi-lang-go=\"`info`\" pulumi-lang-python=\"`info`\" pulumi-lang-yaml=\"`info`\" pulumi-lang-java=\"`info`\"\u003e`info`\u003c/span\u003e below.\n"},"warn":{"$ref":"#/types/alicloud:cms/GroupMetricRuleEscalationsWarn:GroupMetricRuleEscalationsWarn","description":"The warn level. See \u003cspan pulumi-lang-nodejs=\"`warn`\" pulumi-lang-dotnet=\"`Warn`\" pulumi-lang-go=\"`warn`\" pulumi-lang-python=\"`warn`\" pulumi-lang-yaml=\"`warn`\" pulumi-lang-java=\"`warn`\"\u003e`warn`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:cms/GroupMetricRuleEscalationsCritical:GroupMetricRuleEscalationsCritical":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator of the threshold for warn-level alerts.\n"},"statistics":{"type":"string","description":"The statistical aggregation method for warn-level alerts.\n"},"threshold":{"type":"string","description":"The threshold for warn-level alerts.\n"},"times":{"type":"integer","description":"The consecutive number of times for which the metric value is measured before a warn-level alert is triggered.\n"}},"type":"object"},"alicloud:cms/GroupMetricRuleEscalationsInfo:GroupMetricRuleEscalationsInfo":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator of the threshold for warn-level alerts.\n"},"statistics":{"type":"string","description":"The statistical aggregation method for warn-level alerts.\n"},"threshold":{"type":"string","description":"The threshold for warn-level alerts.\n"},"times":{"type":"integer","description":"The consecutive number of times for which the metric value is measured before a warn-level alert is triggered.\n"}},"type":"object"},"alicloud:cms/GroupMetricRuleEscalationsWarn:GroupMetricRuleEscalationsWarn":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator of the threshold for warn-level alerts.\n"},"statistics":{"type":"string","description":"The statistical aggregation method for warn-level alerts.\n"},"threshold":{"type":"string","description":"The threshold for warn-level alerts.\n"},"times":{"type":"integer","description":"The consecutive number of times for which the metric value is measured before a warn-level alert is triggered.\n"}},"type":"object"},"alicloud:cms/GroupMetricRuleTarget:GroupMetricRuleTarget":{"properties":{"arn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the resource.\n\u003e **NOTE:** Currently, the Alibaba Cloud Resource Name (ARN) of the resource. To use, please [submit an application](https://www.alibabacloud.com/help/en/cloudmonitor/latest/describemetricruletargets).\n"},"id":{"type":"string","description":"The ID of the resource for which alerts are triggered.\n"},"jsonParams":{"type":"string","description":"The parameters of the alert callback. The parameters are in the JSON format.\n"},"level":{"type":"string","description":"The level of the alert. Valid values: `Critical`, `Warn`, `Info`.\n"}},"type":"object"},"alicloud:cms/HybridMonitorSlsTaskAttachLabel:HybridMonitorSlsTaskAttachLabel":{"properties":{"name":{"type":"string","description":"The tag key of the metric.\n"},"value":{"type":"string","description":"The tag value of the metric.\n"}},"type":"object"},"alicloud:cms/HybridMonitorSlsTaskSlsProcessConfig:HybridMonitorSlsTaskSlsProcessConfig":{"properties":{"expresses":{"type":"array","items":{"$ref":"#/types/alicloud:cms/HybridMonitorSlsTaskSlsProcessConfigExpress:HybridMonitorSlsTaskSlsProcessConfigExpress"},"description":"The extended field that specifies the result of basic operations that are performed on aggregation results.\n"},"filter":{"$ref":"#/types/alicloud:cms/HybridMonitorSlsTaskSlsProcessConfigFilter:HybridMonitorSlsTaskSlsProcessConfigFilter","description":"The conditions that are used to filter logs imported from Log Service. See \u003cspan pulumi-lang-nodejs=\"`filter`\" pulumi-lang-dotnet=\"`Filter`\" pulumi-lang-go=\"`filter`\" pulumi-lang-python=\"`filter`\" pulumi-lang-yaml=\"`filter`\" pulumi-lang-java=\"`filter`\"\u003e`filter`\u003c/span\u003e below.\n"},"groupBies":{"type":"array","items":{"$ref":"#/types/alicloud:cms/HybridMonitorSlsTaskSlsProcessConfigGroupBy:HybridMonitorSlsTaskSlsProcessConfigGroupBy"},"description":"The dimension based on which data is aggregated. This parameter is equivalent to the GROUP BY clause in SQL. See \u003cspan pulumi-lang-nodejs=\"`groupBy`\" pulumi-lang-dotnet=\"`GroupBy`\" pulumi-lang-go=\"`groupBy`\" pulumi-lang-python=\"`group_by`\" pulumi-lang-yaml=\"`groupBy`\" pulumi-lang-java=\"`groupBy`\"\u003e`group_by`\u003c/span\u003e below.\n"},"statistics":{"type":"array","items":{"$ref":"#/types/alicloud:cms/HybridMonitorSlsTaskSlsProcessConfigStatistic:HybridMonitorSlsTaskSlsProcessConfigStatistic"},"description":"The method that is used to aggregate logs imported from Log Service. See \u003cspan pulumi-lang-nodejs=\"`statistics`\" pulumi-lang-dotnet=\"`Statistics`\" pulumi-lang-go=\"`statistics`\" pulumi-lang-python=\"`statistics`\" pulumi-lang-yaml=\"`statistics`\" pulumi-lang-java=\"`statistics`\"\u003e`statistics`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:cms/HybridMonitorSlsTaskSlsProcessConfigExpress:HybridMonitorSlsTaskSlsProcessConfigExpress":{"properties":{"alias":{"type":"string","description":"The alias of the extended field that specifies the result of basic operations that are performed on aggregation results.\n"},"express":{"type":"string","description":"The extended field that specifies the result of basic operations that are performed on aggregation results.\n"}},"type":"object"},"alicloud:cms/HybridMonitorSlsTaskSlsProcessConfigFilter:HybridMonitorSlsTaskSlsProcessConfigFilter":{"properties":{"filters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/HybridMonitorSlsTaskSlsProcessConfigFilterFilter:HybridMonitorSlsTaskSlsProcessConfigFilterFilter"},"description":"The conditions that are used to filter logs imported from Log Service. See \u003cspan pulumi-lang-nodejs=\"`filters`\" pulumi-lang-dotnet=\"`Filters`\" pulumi-lang-go=\"`filters`\" pulumi-lang-python=\"`filters`\" pulumi-lang-yaml=\"`filters`\" pulumi-lang-java=\"`filters`\"\u003e`filters`\u003c/span\u003e below.\n"},"relation":{"type":"string","description":"The relationship between multiple filter conditions. Valid values: \u003cspan pulumi-lang-nodejs=\"`and`\" pulumi-lang-dotnet=\"`And`\" pulumi-lang-go=\"`and`\" pulumi-lang-python=\"`and`\" pulumi-lang-yaml=\"`and`\" pulumi-lang-java=\"`and`\"\u003e`and`\u003c/span\u003e(default value), \u003cspan pulumi-lang-nodejs=\"`or`\" pulumi-lang-dotnet=\"`Or`\" pulumi-lang-go=\"`or`\" pulumi-lang-python=\"`or`\" pulumi-lang-yaml=\"`or`\" pulumi-lang-java=\"`or`\"\u003e`or`\u003c/span\u003e.\n"}},"type":"object"},"alicloud:cms/HybridMonitorSlsTaskSlsProcessConfigFilterFilter:HybridMonitorSlsTaskSlsProcessConfigFilterFilter":{"properties":{"operator":{"type":"string","description":"The method that is used to filter logs imported from Log Service. Valid values: `\u003e`, `\u003e=`, `=`, `\u003c=`, `\u003c`, `!=`, \u003cspan pulumi-lang-nodejs=\"`contain`\" pulumi-lang-dotnet=\"`Contain`\" pulumi-lang-go=\"`contain`\" pulumi-lang-python=\"`contain`\" pulumi-lang-yaml=\"`contain`\" pulumi-lang-java=\"`contain`\"\u003e`contain`\u003c/span\u003e, `notContain`.\n"},"slsKeyName":{"type":"string","description":"The name of the key that is used to filter logs imported from Log Service.\n"},"value":{"type":"string"}},"type":"object"},"alicloud:cms/HybridMonitorSlsTaskSlsProcessConfigGroupBy:HybridMonitorSlsTaskSlsProcessConfigGroupBy":{"properties":{"alias":{"type":"string","description":"The alias of the extended field that specifies the result of basic operations that are performed on aggregation results.\n"},"slsKeyName":{"type":"string","description":"The name of the key that is used to filter logs imported from Log Service.\n"}},"type":"object"},"alicloud:cms/HybridMonitorSlsTaskSlsProcessConfigStatistic:HybridMonitorSlsTaskSlsProcessConfigStatistic":{"properties":{"alias":{"type":"string","description":"The alias of the extended field that specifies the result of basic operations that are performed on aggregation results.\n"},"function":{"type":"string","description":"The function that is used to aggregate log data within a statistical period. Valid values: \u003cspan pulumi-lang-nodejs=\"`count`\" pulumi-lang-dotnet=\"`Count`\" pulumi-lang-go=\"`count`\" pulumi-lang-python=\"`count`\" pulumi-lang-yaml=\"`count`\" pulumi-lang-java=\"`count`\"\u003e`count`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sum`\" pulumi-lang-dotnet=\"`Sum`\" pulumi-lang-go=\"`sum`\" pulumi-lang-python=\"`sum`\" pulumi-lang-yaml=\"`sum`\" pulumi-lang-java=\"`sum`\"\u003e`sum`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`avg`\" pulumi-lang-dotnet=\"`Avg`\" pulumi-lang-go=\"`avg`\" pulumi-lang-python=\"`avg`\" pulumi-lang-yaml=\"`avg`\" pulumi-lang-java=\"`avg`\"\u003e`avg`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`max`\" pulumi-lang-dotnet=\"`Max`\" pulumi-lang-go=\"`max`\" pulumi-lang-python=\"`max`\" pulumi-lang-yaml=\"`max`\" pulumi-lang-java=\"`max`\"\u003e`max`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`min`\" pulumi-lang-dotnet=\"`Min`\" pulumi-lang-go=\"`min`\" pulumi-lang-python=\"`min`\" pulumi-lang-yaml=\"`min`\" pulumi-lang-java=\"`min`\"\u003e`min`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`countps`\" pulumi-lang-dotnet=\"`Countps`\" pulumi-lang-go=\"`countps`\" pulumi-lang-python=\"`countps`\" pulumi-lang-yaml=\"`countps`\" pulumi-lang-java=\"`countps`\"\u003e`countps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sumps`\" pulumi-lang-dotnet=\"`Sumps`\" pulumi-lang-go=\"`sumps`\" pulumi-lang-python=\"`sumps`\" pulumi-lang-yaml=\"`sumps`\" pulumi-lang-java=\"`sumps`\"\u003e`sumps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`distinct`\" pulumi-lang-dotnet=\"`Distinct`\" pulumi-lang-go=\"`distinct`\" pulumi-lang-python=\"`distinct`\" pulumi-lang-yaml=\"`distinct`\" pulumi-lang-java=\"`distinct`\"\u003e`distinct`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`distribution`\" pulumi-lang-dotnet=\"`Distribution`\" pulumi-lang-go=\"`distribution`\" pulumi-lang-python=\"`distribution`\" pulumi-lang-yaml=\"`distribution`\" pulumi-lang-java=\"`distribution`\"\u003e`distribution`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`percentile`\" pulumi-lang-dotnet=\"`Percentile`\" pulumi-lang-go=\"`percentile`\" pulumi-lang-python=\"`percentile`\" pulumi-lang-yaml=\"`percentile`\" pulumi-lang-java=\"`percentile`\"\u003e`percentile`\u003c/span\u003e.\n"},"parameterOne":{"type":"string","description":"The value of the function that is used to aggregate logs imported from Log Service.\n- If you set the \u003cspan pulumi-lang-nodejs=\"`function`\" pulumi-lang-dotnet=\"`Function`\" pulumi-lang-go=\"`function`\" pulumi-lang-python=\"`function`\" pulumi-lang-yaml=\"`function`\" pulumi-lang-java=\"`function`\"\u003e`function`\u003c/span\u003e parameter to \u003cspan pulumi-lang-nodejs=\"`distribution`\" pulumi-lang-dotnet=\"`Distribution`\" pulumi-lang-go=\"`distribution`\" pulumi-lang-python=\"`distribution`\" pulumi-lang-yaml=\"`distribution`\" pulumi-lang-java=\"`distribution`\"\u003e`distribution`\u003c/span\u003e, this parameter specifies the lower limit of the statistical interval. For example, if you want to calculate the number of HTTP requests whose status code is 2XX, set this parameter to 200.\n- If you set the \u003cspan pulumi-lang-nodejs=\"`function`\" pulumi-lang-dotnet=\"`Function`\" pulumi-lang-go=\"`function`\" pulumi-lang-python=\"`function`\" pulumi-lang-yaml=\"`function`\" pulumi-lang-java=\"`function`\"\u003e`function`\u003c/span\u003e parameter to \u003cspan pulumi-lang-nodejs=\"`percentile`\" pulumi-lang-dotnet=\"`Percentile`\" pulumi-lang-go=\"`percentile`\" pulumi-lang-python=\"`percentile`\" pulumi-lang-yaml=\"`percentile`\" pulumi-lang-java=\"`percentile`\"\u003e`percentile`\u003c/span\u003e, this parameter specifies the percentile at which the expected value is. For example, 0.5 specifies P50.\n"},"parameterTwo":{"type":"string","description":"The value of the function that is used to aggregate logs imported from Log Service. **Note:** This parameter is required only if the \u003cspan pulumi-lang-nodejs=\"`function`\" pulumi-lang-dotnet=\"`Function`\" pulumi-lang-go=\"`function`\" pulumi-lang-python=\"`function`\" pulumi-lang-yaml=\"`function`\" pulumi-lang-java=\"`function`\"\u003e`function`\u003c/span\u003e parameter is set to \u003cspan pulumi-lang-nodejs=\"`distribution`\" pulumi-lang-dotnet=\"`Distribution`\" pulumi-lang-go=\"`distribution`\" pulumi-lang-python=\"`distribution`\" pulumi-lang-yaml=\"`distribution`\" pulumi-lang-java=\"`distribution`\"\u003e`distribution`\u003c/span\u003e. This parameter specifies the upper limit of the statistical interval.\n"},"slsKeyName":{"type":"string","description":"The name of the key that is used to filter logs imported from Log Service.\n"}},"type":"object"},"alicloud:cms/MetricRuleBlackListMetric:MetricRuleBlackListMetric":{"properties":{"metricName":{"type":"string","description":"The name of the monitoring indicator.\n"},"resource":{"type":"string","description":"The extended dimension information of the instance. For example, '{\"device\":\"C:\"}' indicates that the blacklist policy is applied to all C disks under the ECS instance.\n"}},"type":"object","required":["metricName"]},"alicloud:cms/MetricRuleTemplateAlertTemplate:MetricRuleTemplateAlertTemplate":{"properties":{"category":{"type":"string","description":"The abbreviation of the Alibaba Cloud service name.\n\u003e **NOTE:** To obtain the abbreviation of an Alibaba Cloud service name, call the [DescribeProjectMeta](https://www.alibabacloud.com/help/en/cms/developer-reference/api-cms-2019-01-01-describeprojectmeta) operation. The metricCategory tag in the Labels response parameter indicates the abbreviation of the Alibaba Cloud service name.\n"},"escalations":{"$ref":"#/types/alicloud:cms/MetricRuleTemplateAlertTemplateEscalations:MetricRuleTemplateAlertTemplateEscalations","description":"The information about the trigger condition based on the alert level. See \u003cspan pulumi-lang-nodejs=\"`escalations`\" pulumi-lang-dotnet=\"`Escalations`\" pulumi-lang-go=\"`escalations`\" pulumi-lang-python=\"`escalations`\" pulumi-lang-yaml=\"`escalations`\" pulumi-lang-java=\"`escalations`\"\u003e`escalations`\u003c/span\u003e below.\n"},"metricName":{"type":"string","description":"The name of the metric.\n\u003e **NOTE:** For more information, see [DescribeMetricMetaList](https://www.alibabacloud.com/help/doc-detail/98846.htm) or [Appendix 1: Metrics](https://www.alibabacloud.com/help/doc-detail/28619.htm).\n"},"namespace":{"type":"string","description":"The namespace of the cloud service.\n\u003e **NOTE:** For more information, see [DescribeMetricMetaList](https://www.alibabacloud.com/help/doc-detail/98846.htm) or [Appendix 1: Metrics](https://www.alibabacloud.com/help/doc-detail/28619.htm).\n"},"ruleName":{"type":"string","description":"The name of the alert rule.\n"},"webhook":{"type":"string","description":"The callback URL to which a POST request is sent when an alert is triggered based on the alert rule.\n"}},"type":"object","required":["category","metricName","namespace","ruleName"]},"alicloud:cms/MetricRuleTemplateAlertTemplateEscalations:MetricRuleTemplateAlertTemplateEscalations":{"properties":{"critical":{"$ref":"#/types/alicloud:cms/MetricRuleTemplateAlertTemplateEscalationsCritical:MetricRuleTemplateAlertTemplateEscalationsCritical","description":"The condition for triggering critical-level alerts. See \u003cspan pulumi-lang-nodejs=\"`critical`\" pulumi-lang-dotnet=\"`Critical`\" pulumi-lang-go=\"`critical`\" pulumi-lang-python=\"`critical`\" pulumi-lang-yaml=\"`critical`\" pulumi-lang-java=\"`critical`\"\u003e`critical`\u003c/span\u003e below.\n"},"info":{"$ref":"#/types/alicloud:cms/MetricRuleTemplateAlertTemplateEscalationsInfo:MetricRuleTemplateAlertTemplateEscalationsInfo","description":"The condition for triggering info-level alerts. See \u003cspan pulumi-lang-nodejs=\"`info`\" pulumi-lang-dotnet=\"`Info`\" pulumi-lang-go=\"`info`\" pulumi-lang-python=\"`info`\" pulumi-lang-yaml=\"`info`\" pulumi-lang-java=\"`info`\"\u003e`info`\u003c/span\u003e below.\n"},"warn":{"$ref":"#/types/alicloud:cms/MetricRuleTemplateAlertTemplateEscalationsWarn:MetricRuleTemplateAlertTemplateEscalationsWarn","description":"The condition for triggering warn-level alerts. See \u003cspan pulumi-lang-nodejs=\"`warn`\" pulumi-lang-dotnet=\"`Warn`\" pulumi-lang-go=\"`warn`\" pulumi-lang-python=\"`warn`\" pulumi-lang-yaml=\"`warn`\" pulumi-lang-java=\"`warn`\"\u003e`warn`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:cms/MetricRuleTemplateAlertTemplateEscalationsCritical:MetricRuleTemplateAlertTemplateEscalationsCritical":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator of the threshold for warn-level alerts. Valid values: `GreaterThanOrEqualToThreshold`, `GreaterThanThreshold`, `LessThanOrEqualToThreshold`, `LessThanThreshold`, `NotEqualToThreshold`, `GreaterThanYesterday`, `LessThanYesterday`, `GreaterThanLastWeek`, `LessThanLastWeek`, `GreaterThanLastPeriod`, `LessThanLastPeriod`.\n"},"statistics":{"type":"string","description":"The statistical aggregation method for warn-level alerts.\n"},"threshold":{"type":"string","description":"The threshold for warn-level alerts.\n"},"times":{"type":"string","description":"The consecutive number of times for which the metric value is measured before a warn-level alert is triggered.\n"}},"type":"object"},"alicloud:cms/MetricRuleTemplateAlertTemplateEscalationsInfo:MetricRuleTemplateAlertTemplateEscalationsInfo":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator of the threshold for warn-level alerts. Valid values: `GreaterThanOrEqualToThreshold`, `GreaterThanThreshold`, `LessThanOrEqualToThreshold`, `LessThanThreshold`, `NotEqualToThreshold`, `GreaterThanYesterday`, `LessThanYesterday`, `GreaterThanLastWeek`, `LessThanLastWeek`, `GreaterThanLastPeriod`, `LessThanLastPeriod`.\n"},"statistics":{"type":"string","description":"The statistical aggregation method for warn-level alerts.\n"},"threshold":{"type":"string","description":"The threshold for warn-level alerts.\n"},"times":{"type":"string","description":"The consecutive number of times for which the metric value is measured before a warn-level alert is triggered.\n"}},"type":"object"},"alicloud:cms/MetricRuleTemplateAlertTemplateEscalationsWarn:MetricRuleTemplateAlertTemplateEscalationsWarn":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator of the threshold for warn-level alerts. Valid values: `GreaterThanOrEqualToThreshold`, `GreaterThanThreshold`, `LessThanOrEqualToThreshold`, `LessThanThreshold`, `NotEqualToThreshold`, `GreaterThanYesterday`, `LessThanYesterday`, `GreaterThanLastWeek`, `LessThanLastWeek`, `GreaterThanLastPeriod`, `LessThanLastPeriod`.\n"},"statistics":{"type":"string","description":"The statistical aggregation method for warn-level alerts.\n"},"threshold":{"type":"string","description":"The threshold for warn-level alerts.\n"},"times":{"type":"string","description":"The consecutive number of times for which the metric value is measured before a warn-level alert is triggered.\n"}},"type":"object"},"alicloud:cms/MonitorGroupInstancesInstance:MonitorGroupInstancesInstance":{"properties":{"category":{"type":"string","description":"The category of instance.\n"},"instanceId":{"type":"string","description":"The id of instance.\n"},"instanceName":{"type":"string","description":"The name of instance.\n"},"regionId":{"type":"string","description":"The region id of instance.\n"}},"type":"object","required":["category","instanceId","instanceName","regionId"]},"alicloud:cms/SiteMonitorCustomSchedule:SiteMonitorCustomSchedule":{"properties":{"days":{"type":"array","items":{"type":"integer"},"description":"The days in a week.\n"},"endHour":{"type":"integer","description":"The end time of the detection. Unit: hours.\n"},"startHour":{"type":"integer","description":"The start time of the detection. Unit: hours.\n"},"timeZone":{"type":"string","description":"The time zone of the detection.\n"}},"type":"object"},"alicloud:cms/SiteMonitorIspCity:SiteMonitorIspCity":{"properties":{"city":{"type":"string","description":"The ID of the city.\n"},"isp":{"type":"string","description":"The ID of the carrier.\n"},"type":{"type":"string","description":"The network type of the detection point. Valid values: `IDC`, `LASTMILE`, and `MOBILE`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["city","isp","type"]}}},"alicloud:cms/SiteMonitorOptionJson:SiteMonitorOptionJson":{"properties":{"assertions":{"type":"array","items":{"$ref":"#/types/alicloud:cms/SiteMonitorOptionJsonAssertion:SiteMonitorOptionJsonAssertion"},"description":"Assertion configuration group. See \u003cspan pulumi-lang-nodejs=\"`assertions`\" pulumi-lang-dotnet=\"`Assertions`\" pulumi-lang-go=\"`assertions`\" pulumi-lang-python=\"`assertions`\" pulumi-lang-yaml=\"`assertions`\" pulumi-lang-java=\"`assertions`\"\u003e`assertions`\u003c/span\u003e below.\n"},"attempts":{"type":"integer","description":"Number of retries after DNS failed.\n"},"cookie":{"type":"string","description":"The Cookie that sends the HTTP request.\n"},"diagnosisMtr":{"type":"boolean","description":"Whether to enable automatic MTR network diagnosis after a task failure. Value:\n- false: does not enable automatic MTR network diagnosis.\n- true to turn on automatic MTR network diagnostics.\n"},"diagnosisPing":{"type":"boolean","description":"Whether to enable the automatic PING network delay detection after the task fails. Value:\n- false: does not enable automatic PING network delay detection.\n- true: Enable automatic PING network delay detection.\n"},"dnsHijackWhitelist":{"type":"string","description":"List of DNS hijacking configurations.\n"},"dnsMatchRule":{"type":"string","description":"Matching Rules for DNS. Value:\n- IN_DNS: The alias or IP address that is expected to be resolved is in the DNS response.\n- DNS_IN: All DNS responses appear in the alias or IP address that is expected to be resolved.\n- EQUAL: the DNS response is exactly the same as the alias or IP address that is expected to be resolved.\n- ANY:DNS response and the alias or IP address expected to be resolved have an intersection.\n"},"dnsServer":{"type":"string","description":"The IP address of the DNS server.\n\n\u003e **NOTE:**  only applicable to DNS probe types.\n"},"dnsType":{"type":"string","description":"DNS resolution type. Only applicable to DNS probe types. Value:\n- A (default): specifies the IP address corresponding to the host name or domain name.\n- CNAME: maps multiple domain names to another domain name.\n- NS: specifies that the domain name is resolved by a DNS server.\n- MX: point domain name to a mail server address.\n- TXT: Description of host name or domain name. The text length is limited to 512 bytes, which is usually used as SPF(Sender Policy Framework) record, that is, anti-spam.\n"},"expectValue":{"type":"string","description":"The alias or address to be resolved.\n\n\u003e **NOTE:**  This parameter applies only to DNS probe types.\n"},"failureRate":{"type":"string","description":"Packet loss rate.\n\n\u003e **NOTE:**  This parameter only applies to PING probe types.\n"},"header":{"type":"string","description":"HTTP request header.\n"},"httpMethod":{"type":"string","description":"HTTP request method. Value:\n- get\n- post\n- head\n"},"isBaseEncode":{"type":"boolean","description":"Whether the parameter' Password' is Base64 encoded.\n- true: Yes.\n- false: No.\n","willReplaceOnChanges":true},"matchRule":{"type":"integer","description":"Whether alarm rules are included. Value:\n- 0: Yes.\n- 1: No.\n"},"minTlsVersion":{"type":"string","description":"Minimum TLS version. By default, TLS1.2 and later versions are supported. TLS1.0 and 1.1 have been disabled. If they still need to be supported, the configuration can be changed.\n"},"password":{"type":"string","description":"The password of the SMTP, POP3, or FTP probe type.\n","secret":true},"pingNum":{"type":"integer","description":"The heartbeat of the PING probe type.\n"},"pingPort":{"type":"integer","description":"PING the port. Applies to TCP PING.\n"},"pingType":{"type":"string","description":"The PING protocol type. Value:\n- icmp\n- tcp\n- udp\n"},"port":{"type":"integer","description":"Ports of TCP, UDP, SMTP, and POP3 probe types.\n"},"requestContent":{"type":"string","description":"The request content of the HTTP probe type.\n"},"requestFormat":{"type":"string","description":"HTTP request content format. Value:\n- hex: hexadecimal format.\n- text: text format.\n"},"responseContent":{"type":"string","description":"Match the response content.\n"},"responseFormat":{"type":"string","description":"HTTP response content format. Value:\n- hex: hexadecimal format.\n- text: text format.\n"},"timeout":{"type":"integer","description":"Timeout time. Unit: milliseconds.\n"},"userName":{"type":"string","description":"The username of FTP, SMTP, or pop3.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["isBaseEncode"]}}},"alicloud:cms/SiteMonitorOptionJsonAssertion:SiteMonitorOptionJsonAssertion":{"properties":{"operator":{"type":"string","description":"Assertion comparison operator. Value:\n- contains: contains.\n- doesNotContain: does not contain.\n- matches: regular matching.\n- doesNotMatch: regular mismatch.\n- is: Numeric equals or character matches equals.\n- isNot: not equal.\n- Lesthan: less.\n- moreThan: Greater.\n"},"target":{"type":"string","description":"Assertion matches the target numeric value or character of the comparison.\n"},"type":{"type":"string"}},"type":"object"},"alicloud:cms/SlsGroupSlsGroupConfig:SlsGroupSlsGroupConfig":{"properties":{"slsLogstore":{"type":"string","description":"The name of the Log Store.\n"},"slsProject":{"type":"string","description":"The name of the Project.\n"},"slsRegion":{"type":"string","description":"The Sls Region.\n"},"slsUserId":{"type":"string","description":"The ID of the Sls User.\n"}},"type":"object","required":["slsLogstore","slsProject","slsRegion"]},"alicloud:cms/getAlarmContactGroupsGroup:getAlarmContactGroupsGroup":{"properties":{"alarmContactGroupName":{"type":"string","description":"The name of Alarm Contact Group.\n"},"contacts":{"type":"array","items":{"type":"string"},"description":"The alarm contacts in the alarm group.\n"},"describe":{"type":"string","description":"The description of the Alarm Group.\n"},"enableSubscribed":{"type":"boolean","description":"Indicates whether the alarm group subscribes to weekly reports.\n"},"id":{"type":"string","description":"The ID of the CMS.\n"}},"type":"object","required":["alarmContactGroupName","contacts","describe","enableSubscribed","id"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getAlarmContactsContact:getAlarmContactsContact":{"properties":{"alarmContactName":{"type":"string","description":"The name of the alarm contact.\n"},"channelsAliim":{"type":"string","description":"The TradeManager ID of the alarm contact.\n"},"channelsDingWebHook":{"type":"string","description":"The webhook URL of the DingTalk chatbot.\n"},"channelsMail":{"type":"string","description":"The email address of the alarm contact.\n"},"channelsSms":{"type":"string","description":"The phone number of the alarm contact.\n"},"channelsStateAliim":{"type":"string","description":"Indicates whether the TradeManager ID is valid.\n"},"channelsStateDingWebHook":{"type":"string","description":"Indicates whether the DingTalk chatbot is normal.\n"},"channelsStateMail":{"type":"string","description":"The status of the email address.\n"},"channelsStatusSms":{"type":"string","description":"The status of the phone number.\n* `Lang` - The language type of the alarm.\n"},"contactGroups":{"type":"array","items":{"type":"string"},"description":"The alert groups to which the alarm contact is added.\n"},"describe":{"type":"string","description":"The description of the alarm contact.\n"},"id":{"type":"string","description":"The ID of the alarm contact.\n"},"lang":{"type":"string"}},"type":"object","required":["alarmContactName","channelsAliim","channelsDingWebHook","channelsMail","channelsSms","channelsStateAliim","channelsStateDingWebHook","channelsStateMail","channelsStatusSms","contactGroups","describe","id","lang"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getDynamicTagGroupsGroup:getDynamicTagGroupsGroup":{"properties":{"dynamicTagRuleId":{"type":"string","description":"The ID of the tag rule.\n"},"id":{"type":"string","description":"The ID of the Dynamic Tag Group.\n"},"matchExpressFilterRelation":{"type":"string","description":"The relationship between conditional expressions. Valid values: \u003cspan pulumi-lang-nodejs=\"`and`\" pulumi-lang-dotnet=\"`And`\" pulumi-lang-go=\"`and`\" pulumi-lang-python=\"`and`\" pulumi-lang-yaml=\"`and`\" pulumi-lang-java=\"`and`\"\u003e`and`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`or`\" pulumi-lang-dotnet=\"`Or`\" pulumi-lang-go=\"`or`\" pulumi-lang-python=\"`or`\" pulumi-lang-yaml=\"`or`\" pulumi-lang-java=\"`or`\"\u003e`or`\u003c/span\u003e.\n"},"matchExpresses":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getDynamicTagGroupsGroupMatchExpress:getDynamicTagGroupsGroupMatchExpress"},"description":"The label generates a matching expression that applies the grouping. See the following `Block\u003cspan pulumi-lang-nodejs=\" matchExpress`\" pulumi-lang-dotnet=\" MatchExpress`\" pulumi-lang-go=\" matchExpress`\" pulumi-lang-python=\" match_express`\" pulumi-lang-yaml=\" matchExpress`\" pulumi-lang-java=\" matchExpress`\"\u003e match_express`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `RUNNING`, `FINISH`.\n"},"tagKey":{"type":"string","description":"The tag key of the tag.\n"}},"type":"object","required":["dynamicTagRuleId","id","matchExpresses","matchExpressFilterRelation","status","tagKey"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getDynamicTagGroupsGroupMatchExpress:getDynamicTagGroupsGroupMatchExpress":{"properties":{"tagValue":{"type":"string","description":"The tag value. The Tag value must be used in conjunction with the tag value matching method TagValueMatchFunction.\n"},"tagValueMatchFunction":{"type":"string","description":"Matching method of tag value. Valid values: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, `startWith`,`endWith`,\u003cspan pulumi-lang-nodejs=\"`contains`\" pulumi-lang-dotnet=\"`Contains`\" pulumi-lang-go=\"`contains`\" pulumi-lang-python=\"`contains`\" pulumi-lang-yaml=\"`contains`\" pulumi-lang-java=\"`contains`\"\u003e`contains`\u003c/span\u003e,`notContains`,\u003cspan pulumi-lang-nodejs=\"`equals`\" pulumi-lang-dotnet=\"`Equals`\" pulumi-lang-go=\"`equals`\" pulumi-lang-python=\"`equals`\" pulumi-lang-yaml=\"`equals`\" pulumi-lang-java=\"`equals`\"\u003e`equals`\u003c/span\u003e.\n"}},"type":"object","required":["tagValue","tagValueMatchFunction"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getEventRulesRule:getEventRulesRule":{"properties":{"description":{"type":"string","description":"The description of the rule.\n"},"eventPatterns":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getEventRulesRuleEventPattern:getEventRulesRuleEventPattern"},"description":"Event mode, used to describe the trigger conditions for this event.\n"},"eventRuleName":{"type":"string","description":"The name of the event rule.\n"},"eventType":{"type":"string","description":"The type of event.\n"},"groupId":{"type":"string","description":"The ID of the application Group.\n"},"id":{"type":"string","description":"The ID of the Event Rule. Its value is same as Event Rule Name.\n"},"silenceTime":{"type":"integer","description":"The mute period during which new alerts are not sent even if the trigger conditions are met.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object","required":["description","eventPatterns","eventRuleName","eventType","groupId","id","silenceTime","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getEventRulesRuleEventPattern:getEventRulesRuleEventPattern":{"properties":{"eventTypeLists":{"type":"array","items":{"type":"string"},"description":"The list of event types.\n"},"keywordFilters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getEventRulesRuleEventPatternKeywordFilter:getEventRulesRuleEventPatternKeywordFilter"},"description":"The filter keyword.\n"},"levelLists":{"type":"array","items":{"type":"string"},"description":"The list of event levels.\n"},"nameLists":{"type":"array","items":{"type":"string"},"description":"The list of event names.\n"},"product":{"type":"string","description":"The type of the cloud service.\n"},"sqlFilter":{"type":"string","description":"The SQL condition that is used to filter events.\n"}},"type":"object","required":["eventTypeLists","keywordFilters","levelLists","nameLists","product","sqlFilter"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getEventRulesRuleEventPatternKeywordFilter:getEventRulesRuleEventPatternKeywordFilter":{"properties":{"keyWords":{"type":"array","items":{"type":"string"},"description":"The keywords that are used to match events.\n"},"relation":{"type":"string","description":"The relationship between multiple keywords in a condition.\n"}},"type":"object","required":["keyWords","relation"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getGroupMetricRulesRule:getGroupMetricRulesRule":{"properties":{"contactGroups":{"type":"string","description":"Alarm contact group.\n"},"dimensions":{"type":"string","description":"The dimensions that specify the resources to be associated with the alert rule.\n"},"effectiveInterval":{"type":"string","description":"The time period during which the alert rule is effective.\n"},"emailSubject":{"type":"string","description":"The subject of the alert notification email.\n"},"enableState":{"type":"boolean","description":"Indicates whether the alert rule is enabled.\n"},"escalations":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getGroupMetricRulesRuleEscalation:getGroupMetricRulesRuleEscalation"},"description":"Alarm level.\n"},"groupId":{"type":"string","description":"The ID of the application group.\n"},"groupMetricRuleName":{"type":"string","description":"The name of the alert rule.\n"},"id":{"type":"string","description":"The ID of the Group Metric Rule.\n"},"metricName":{"type":"string","description":"The name of the metric.\n"},"namespace":{"type":"string","description":"The namespace of the service.\n"},"noEffectiveInterval":{"type":"string","description":"The time period during which the alert rule is ineffective.\n"},"period":{"type":"integer","description":"The aggregation period of the monitoring data. Unit: seconds. The value is an integral multiple of 60. Default value: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"resources":{"type":"string","description":"The resources that are associated with the alert rule.\n"},"ruleId":{"type":"string","description":"The ID of the alert rule.\n"},"silenceTime":{"type":"integer","description":"The mute period during which new alerts are not reported even if the alert trigger conditions are met. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e, which is equivalent to one day.\n"},"sourceType":{"type":"string","description":"The type of the alert rule. The value is fixed to METRIC, indicating an alert rule for time series metrics.\n"},"status":{"type":"string","description":"The status of Group Metric Rule..\n"},"webhook":{"type":"string","description":"The callback URL.\n"}},"type":"object","required":["contactGroups","dimensions","effectiveInterval","emailSubject","enableState","escalations","groupId","groupMetricRuleName","id","metricName","namespace","noEffectiveInterval","period","resources","ruleId","silenceTime","sourceType","status","webhook"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getGroupMetricRulesRuleEscalation:getGroupMetricRulesRuleEscalation":{"properties":{"criticals":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getGroupMetricRulesRuleEscalationCritical:getGroupMetricRulesRuleEscalationCritical"},"description":"The critical level.\n"},"infos":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getGroupMetricRulesRuleEscalationInfo:getGroupMetricRulesRuleEscalationInfo"},"description":"The info level.\n"},"warns":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getGroupMetricRulesRuleEscalationWarn:getGroupMetricRulesRuleEscalationWarn"},"description":"The warn level.\n"}},"type":"object","required":["criticals","infos","warns"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getGroupMetricRulesRuleEscalationCritical:getGroupMetricRulesRuleEscalationCritical":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator of the threshold for critical-level alerts.\n"},"statistics":{"type":"string","description":"The statistical aggregation method for critical-level alerts.\n"},"threshold":{"type":"string","description":"The threshold for critical-level alerts.\n"},"times":{"type":"integer","description":"The consecutive number of times for which the metric value is measured before a critical-level alert is triggered.\n"}},"type":"object","required":["comparisonOperator","statistics","threshold","times"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getGroupMetricRulesRuleEscalationInfo:getGroupMetricRulesRuleEscalationInfo":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator of the threshold for info-level alerts.\n"},"statistics":{"type":"string","description":"The statistical aggregation method for info-level alerts.\n"},"threshold":{"type":"string","description":"The threshold for info-level alerts.\n"},"times":{"type":"integer","description":"The consecutive number of times for which the metric value is measured before a info-level alert is triggered.\n"}},"type":"object","required":["comparisonOperator","statistics","threshold","times"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getGroupMetricRulesRuleEscalationWarn:getGroupMetricRulesRuleEscalationWarn":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator of the threshold for warn-level alerts.\n"},"statistics":{"type":"string","description":"The statistical aggregation method for warn-level alerts.\n"},"threshold":{"type":"string","description":"The threshold for warn-level alerts.\n"},"times":{"type":"integer","description":"The consecutive number of times for which the metric value is measured before a warn-level alert is triggered.\n"}},"type":"object","required":["comparisonOperator","statistics","threshold","times"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getHybridMonitorDatasData:getHybridMonitorDatasData":{"properties":{"labels":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getHybridMonitorDatasDataLabel:getHybridMonitorDatasDataLabel"},"description":"The label of the time dimension.\n"},"metricName":{"type":"string","description":"The name of the monitoring indicator.\n"},"values":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getHybridMonitorDatasDataValue:getHybridMonitorDatasDataValue"},"description":"The metric values that are collected at different timestamps.\n"}},"type":"object","required":["labels","metricName","values"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getHybridMonitorDatasDataLabel:getHybridMonitorDatasDataLabel":{"properties":{"key":{"type":"string","description":"Label key.\n"},"value":{"type":"string","description":"Label value.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getHybridMonitorDatasDataValue:getHybridMonitorDatasDataValue":{"properties":{"ts":{"type":"string","description":"The timestamp that indicates the time when the metric value is collected. Unit: seconds.\n"},"value":{"type":"string","description":"The value of the monitoring indicator.\n"}},"type":"object","required":["ts","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getHybridMonitorFcTasksTask:getHybridMonitorFcTasksTask":{"properties":{"createTime":{"type":"string","description":"Create the timestamp of the monitoring task. Unit: milliseconds.\n"},"hybridMonitorFcTaskId":{"type":"string","description":"The ID of the monitoring task.\n"},"id":{"type":"string","description":"The ID of the Hybrid Monitor Fc Task. The value formats as `\u003chybrid_monitor_fc_task_id\u003e:\u003cnamespace\u003e`.\n"},"namespace":{"type":"string","description":"The index warehouse where the host belongs.\n"},"targetUserId":{"type":"string","description":"The ID of the member account.\n"},"yarmConfig":{"type":"string","description":"The configuration file of the Alibaba Cloud service that you want to monitor by using Hybrid Cloud Monitoring.\n"}},"type":"object","required":["createTime","hybridMonitorFcTaskId","id","namespace","targetUserId","yarmConfig"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getHybridMonitorSlsTasksTask:getHybridMonitorSlsTasksTask":{"properties":{"attachLabels":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getHybridMonitorSlsTasksTaskAttachLabel:getHybridMonitorSlsTasksTaskAttachLabel"},"description":"The tags of the metric import task.\n"},"collectInterval":{"type":"integer","description":"The interval between the cloud monitoring plug-in collecting host monitoring data.\n"},"collectTargetEndpoint":{"type":"string","description":"The address where the cloudmonitor Plug-In collects the monitoring data of the host.\n"},"collectTargetPath":{"type":"string","description":"When the cloud monitor Agent collects, the relative path of the collection.\n"},"collectTargetType":{"type":"string","description":"The type of the monitoring data. Valid values: Spring, Tomcat, Nginx, Tengine, JVM, Redis, MySQL, and AWS.\n"},"collectTimout":{"type":"integer","description":"The timeout period for the cloudmonitor plug-in to collect host monitoring data.\n"},"createTime":{"type":"string","description":"Create the timestamp of the monitoring task. Unit: milliseconds.\n"},"description":{"type":"string","description":"Monitoring task description.\n"},"extraInfo":{"type":"string","description":"Additional information for the instance.\n"},"groupId":{"type":"string","description":"The ID of the application Group.\n"},"hybridMonitorSlsTaskId":{"type":"string","description":"The ID of the monitoring task.\n"},"id":{"type":"string","description":"The ID of the Hybrid Monitor Sls Task.\n"},"instances":{"type":"array","items":{"type":"string"},"description":"A list of instances where monitoring data is collected in batches.\n"},"logFilePath":{"type":"string","description":"The path where on-premises log data is stored. On-premises log data is stored in the specified path of the host where CloudMonitor is deployed.\n"},"logProcess":{"type":"string","description":"Local Log Monitoring and calculation method.\n"},"logSample":{"type":"string","description":"The sample on-premises log.\n"},"logSplit":{"type":"string","description":"The local log data is divided according to different matching patterns.\n"},"matchExpressRelation":{"type":"string","description":"The filter condition of the instance of the monitoring task.\n"},"matchExpresses":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getHybridMonitorSlsTasksTaskMatchExpress:getHybridMonitorSlsTasksTaskMatchExpress"},"description":"The matching condition of the instance in the application Group.\n"},"namespace":{"type":"string","description":"The namespace to which the host belongs.\n"},"networkType":{"type":"string","description":"The network type of the host.\n"},"slsProcess":{"type":"string","description":"The configurations of the logs that are imported from Log Service.\n"},"slsProcessConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getHybridMonitorSlsTasksTaskSlsProcessConfig:getHybridMonitorSlsTasksTaskSlsProcessConfig"},"description":"The configurations of the logs that are imported from Log Service.\n"},"taskName":{"type":"string","description":"The name of the metric import task.\n"},"taskType":{"type":"string","description":"Monitoring Task type.\n"},"uploadRegion":{"type":"string","description":"The region where the host resides.\n"},"yarmConfig":{"type":"string"}},"type":"object","required":["attachLabels","collectInterval","collectTargetEndpoint","collectTargetPath","collectTargetType","collectTimout","createTime","description","extraInfo","groupId","hybridMonitorSlsTaskId","id","instances","logFilePath","logProcess","logSample","logSplit","matchExpresses","matchExpressRelation","namespace","networkType","slsProcess","slsProcessConfigs","taskName","taskType","uploadRegion","yarmConfig"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getHybridMonitorSlsTasksTaskAttachLabel:getHybridMonitorSlsTasksTaskAttachLabel":{"properties":{"name":{"type":"string","description":"The key of the tag.\n"},"value":{"type":"string","description":"The value of the tag.\n"}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getHybridMonitorSlsTasksTaskMatchExpress:getHybridMonitorSlsTasksTaskMatchExpress":{"properties":{"function":{"type":"string","description":"The method that is used to match the instance name.\n"},"name":{"type":"string","description":"The name of the instance.\n"},"value":{"type":"string","description":"The keyword that corresponds to the instance name.\n"}},"type":"object","required":["function","name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getHybridMonitorSlsTasksTaskSlsProcessConfig:getHybridMonitorSlsTasksTaskSlsProcessConfig":{"properties":{"expresses":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getHybridMonitorSlsTasksTaskSlsProcessConfigExpress:getHybridMonitorSlsTasksTaskSlsProcessConfigExpress"}},"filters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getHybridMonitorSlsTasksTaskSlsProcessConfigFilter:getHybridMonitorSlsTasksTaskSlsProcessConfigFilter"},"description":"The conditions that are used to filter logs imported from Log Service.\n"},"groupBies":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getHybridMonitorSlsTasksTaskSlsProcessConfigGroupBy:getHybridMonitorSlsTasksTaskSlsProcessConfigGroupBy"},"description":"The dimension based on which data is aggregated. This parameter is equivalent to the GROUP BY clause in SQL.\n"},"statistics":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getHybridMonitorSlsTasksTaskSlsProcessConfigStatistic:getHybridMonitorSlsTasksTaskSlsProcessConfigStatistic"},"description":"The method that is used to aggregate logs imported from Log Service.\n"}},"type":"object","required":["expresses","filters","groupBies","statistics"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getHybridMonitorSlsTasksTaskSlsProcessConfigExpress:getHybridMonitorSlsTasksTaskSlsProcessConfigExpress":{"properties":{"alias":{"type":"string"},"express":{"type":"string"}},"type":"object","required":["alias","express"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getHybridMonitorSlsTasksTaskSlsProcessConfigFilter:getHybridMonitorSlsTasksTaskSlsProcessConfigFilter":{"properties":{"filters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getHybridMonitorSlsTasksTaskSlsProcessConfigFilterFilter:getHybridMonitorSlsTasksTaskSlsProcessConfigFilterFilter"},"description":"The conditions that are used to filter logs imported from Log Service.\n"},"relation":{"type":"string","description":"The relationship between multiple filter conditions.\n"}},"type":"object","required":["filters","relation"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getHybridMonitorSlsTasksTaskSlsProcessConfigFilterFilter:getHybridMonitorSlsTasksTaskSlsProcessConfigFilterFilter":{"properties":{"operator":{"type":"string","description":"The method that is used to filter logs imported from Log Service.\n"},"slsKeyName":{"type":"string"},"value":{"type":"string"}},"type":"object","required":["operator","slsKeyName","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getHybridMonitorSlsTasksTaskSlsProcessConfigGroupBy:getHybridMonitorSlsTasksTaskSlsProcessConfigGroupBy":{"properties":{"alias":{"type":"string"},"slsKeyName":{"type":"string"}},"type":"object","required":["alias","slsKeyName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getHybridMonitorSlsTasksTaskSlsProcessConfigStatistic:getHybridMonitorSlsTasksTaskSlsProcessConfigStatistic":{"properties":{"alias":{"type":"string"},"function":{"type":"string"},"parameterOne":{"type":"string","description":"The value of the function that is used to aggregate logs imported from Log Service.\n"},"parameterTwo":{"type":"string","description":"The value of the function that is used to aggregate logs imported from Log Service.\n"},"slsKeyName":{"type":"string"}},"type":"object","required":["alias","function","parameterOne","parameterTwo","slsKeyName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getMetricRuleBlackListsList:getMetricRuleBlackListsList":{"properties":{"category":{"type":"string","description":"Cloud service classification. For example, Redis includes kvstore_standard, kvstore_sharding, and kvstore_splitrw.\n"},"createTime":{"type":"string","description":"The timestamp for creating an alert blacklist policy.Unit: milliseconds.\n"},"effectiveTime":{"type":"string","description":"The effective time range of the alert blacklist policy.\n"},"enableEndTime":{"type":"string","description":"The start timestamp of the alert blacklist policy.Unit: milliseconds.\n"},"enableStartTime":{"type":"string","description":"The end timestamp of the alert blacklist policy.Unit: milliseconds.\n"},"id":{"type":"string"},"instances":{"type":"array","items":{"type":"string"},"description":"The list of instances of cloud services specified in the alert blacklist policy.\n"},"isEnable":{"type":"boolean","description":"The status of the alert blacklist policy. Value:-true: enabled.-false: disabled.\n"},"metricRuleBlackListId":{"type":"string","description":"The first ID of the resource\n"},"metricRuleBlackListName":{"type":"string","description":"The name of the alert blacklist policy.\n"},"metrics":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getMetricRuleBlackListsListMetric:getMetricRuleBlackListsListMetric"},"description":"Monitoring metrics in the instance.\n"},"namespace":{"type":"string","description":"The data namespace of the cloud service.\n"},"scopeType":{"type":"string","description":"The effective range of the alert blacklist policy. Value:-USER: The alert blacklist policy only takes effect in the current Alibaba cloud account.-GROUP: The alert blacklist policy takes effect in the specified application GROUP.\n"},"scopeValues":{"type":"array","items":{"type":"string"},"description":"Application Group ID list. The format is JSON Array.\u003e This parameter is displayed only when 'ScopeType' is 'GROUP.\n"}},"type":"object","required":["category","createTime","effectiveTime","enableEndTime","enableStartTime","id","instances","isEnable","metricRuleBlackListId","metricRuleBlackListName","metrics","namespace","scopeType","scopeValues"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getMetricRuleBlackListsListMetric:getMetricRuleBlackListsListMetric":{"properties":{"metricName":{"type":"string","description":"The name of the monitoring indicator.\n"},"resource":{"type":"string","description":"The extended dimension information of the instance. For example, '{\"device\":\"C:\"}' indicates that the blacklist policy is applied to all C disks under the ECS instance.\n"}},"type":"object","required":["metricName","resource"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getMetricRuleTemplatesTemplate:getMetricRuleTemplatesTemplate":{"properties":{"alertTemplates":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getMetricRuleTemplatesTemplateAlertTemplate:getMetricRuleTemplatesTemplateAlertTemplate"},"description":"The details of alert rules that are generated based on the alert template.\n"},"description":{"type":"string","description":"The description of the alert template.\n"},"groupId":{"type":"string","description":"GroupId.\n"},"id":{"type":"string","description":"The ID of the Metric Rule Template.\n"},"metricRuleTemplateName":{"type":"string","description":"The name of the alert template.\n"},"restVersion":{"type":"string","description":"The version of the alert template.\n\n\u003e **NOTE:** The version changes with the number of times that the alert template is modified.\n"},"templateId":{"type":"string","description":"The ID of the alert template.\n"}},"type":"object","required":["alertTemplates","description","groupId","id","metricRuleTemplateName","restVersion","templateId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getMetricRuleTemplatesTemplateAlertTemplate:getMetricRuleTemplatesTemplateAlertTemplate":{"properties":{"category":{"type":"string","description":"The abbreviation of the service name. Valid values: \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rds`\" pulumi-lang-dotnet=\"`Rds`\" pulumi-lang-go=\"`rds`\" pulumi-lang-python=\"`rds`\" pulumi-lang-yaml=\"`rds`\" pulumi-lang-java=\"`rds`\"\u003e`rds`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ads`\" pulumi-lang-dotnet=\"`Ads`\" pulumi-lang-go=\"`ads`\" pulumi-lang-python=\"`ads`\" pulumi-lang-yaml=\"`ads`\" pulumi-lang-java=\"`ads`\"\u003e`ads`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slb`\" pulumi-lang-dotnet=\"`Slb`\" pulumi-lang-go=\"`slb`\" pulumi-lang-python=\"`slb`\" pulumi-lang-yaml=\"`slb`\" pulumi-lang-java=\"`slb`\"\u003e`slb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`apigateway`\" pulumi-lang-dotnet=\"`Apigateway`\" pulumi-lang-go=\"`apigateway`\" pulumi-lang-python=\"`apigateway`\" pulumi-lang-yaml=\"`apigateway`\" pulumi-lang-java=\"`apigateway`\"\u003e`apigateway`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cdn`\" pulumi-lang-dotnet=\"`Cdn`\" pulumi-lang-go=\"`cdn`\" pulumi-lang-python=\"`cdn`\" pulumi-lang-yaml=\"`cdn`\" pulumi-lang-java=\"`cdn`\"\u003e`cdn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cs`\" pulumi-lang-dotnet=\"`Cs`\" pulumi-lang-go=\"`cs`\" pulumi-lang-python=\"`cs`\" pulumi-lang-yaml=\"`cs`\" pulumi-lang-java=\"`cs`\"\u003e`cs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dcdn`\" pulumi-lang-dotnet=\"`Dcdn`\" pulumi-lang-go=\"`dcdn`\" pulumi-lang-python=\"`dcdn`\" pulumi-lang-yaml=\"`dcdn`\" pulumi-lang-java=\"`dcdn`\"\u003e`dcdn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ddos`\" pulumi-lang-dotnet=\"`Ddos`\" pulumi-lang-go=\"`ddos`\" pulumi-lang-python=\"`ddos`\" pulumi-lang-yaml=\"`ddos`\" pulumi-lang-java=\"`ddos`\"\u003e`ddos`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`eip`\" pulumi-lang-dotnet=\"`Eip`\" pulumi-lang-go=\"`eip`\" pulumi-lang-python=\"`eip`\" pulumi-lang-yaml=\"`eip`\" pulumi-lang-java=\"`eip`\"\u003e`eip`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`elasticsearch`\" pulumi-lang-dotnet=\"`Elasticsearch`\" pulumi-lang-go=\"`elasticsearch`\" pulumi-lang-python=\"`elasticsearch`\" pulumi-lang-yaml=\"`elasticsearch`\" pulumi-lang-java=\"`elasticsearch`\"\u003e`elasticsearch`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`emr`\" pulumi-lang-dotnet=\"`Emr`\" pulumi-lang-go=\"`emr`\" pulumi-lang-python=\"`emr`\" pulumi-lang-yaml=\"`emr`\" pulumi-lang-java=\"`emr`\"\u003e`emr`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ess`\" pulumi-lang-dotnet=\"`Ess`\" pulumi-lang-go=\"`ess`\" pulumi-lang-python=\"`ess`\" pulumi-lang-yaml=\"`ess`\" pulumi-lang-java=\"`ess`\"\u003e`ess`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hbase`\" pulumi-lang-dotnet=\"`Hbase`\" pulumi-lang-go=\"`hbase`\" pulumi-lang-python=\"`hbase`\" pulumi-lang-yaml=\"`hbase`\" pulumi-lang-java=\"`hbase`\"\u003e`hbase`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`iotEdge`\" pulumi-lang-dotnet=\"`IotEdge`\" pulumi-lang-go=\"`iotEdge`\" pulumi-lang-python=\"`iot_edge`\" pulumi-lang-yaml=\"`iotEdge`\" pulumi-lang-java=\"`iotEdge`\"\u003e`iot_edge`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kvstoreSharding`\" pulumi-lang-dotnet=\"`KvstoreSharding`\" pulumi-lang-go=\"`kvstoreSharding`\" pulumi-lang-python=\"`kvstore_sharding`\" pulumi-lang-yaml=\"`kvstoreSharding`\" pulumi-lang-java=\"`kvstoreSharding`\"\u003e`kvstore_sharding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kvstoreSplitrw`\" pulumi-lang-dotnet=\"`KvstoreSplitrw`\" pulumi-lang-go=\"`kvstoreSplitrw`\" pulumi-lang-python=\"`kvstore_splitrw`\" pulumi-lang-yaml=\"`kvstoreSplitrw`\" pulumi-lang-java=\"`kvstoreSplitrw`\"\u003e`kvstore_splitrw`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kvstoreStandard`\" pulumi-lang-dotnet=\"`KvstoreStandard`\" pulumi-lang-go=\"`kvstoreStandard`\" pulumi-lang-python=\"`kvstore_standard`\" pulumi-lang-yaml=\"`kvstoreStandard`\" pulumi-lang-java=\"`kvstoreStandard`\"\u003e`kvstore_standard`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`memcache`\" pulumi-lang-dotnet=\"`Memcache`\" pulumi-lang-go=\"`memcache`\" pulumi-lang-python=\"`memcache`\" pulumi-lang-yaml=\"`memcache`\" pulumi-lang-java=\"`memcache`\"\u003e`memcache`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mns`\" pulumi-lang-dotnet=\"`Mns`\" pulumi-lang-go=\"`mns`\" pulumi-lang-python=\"`mns`\" pulumi-lang-yaml=\"`mns`\" pulumi-lang-java=\"`mns`\"\u003e`mns`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodbCluster`\" pulumi-lang-dotnet=\"`MongodbCluster`\" pulumi-lang-go=\"`mongodbCluster`\" pulumi-lang-python=\"`mongodb_cluster`\" pulumi-lang-yaml=\"`mongodbCluster`\" pulumi-lang-java=\"`mongodbCluster`\"\u003e`mongodb_cluster`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodbSharding`\" pulumi-lang-dotnet=\"`MongodbSharding`\" pulumi-lang-go=\"`mongodbSharding`\" pulumi-lang-python=\"`mongodb_sharding`\" pulumi-lang-yaml=\"`mongodbSharding`\" pulumi-lang-java=\"`mongodbSharding`\"\u003e`mongodb_sharding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mqTopic`\" pulumi-lang-dotnet=\"`MqTopic`\" pulumi-lang-go=\"`mqTopic`\" pulumi-lang-python=\"`mq_topic`\" pulumi-lang-yaml=\"`mqTopic`\" pulumi-lang-java=\"`mqTopic`\"\u003e`mq_topic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ocs`\" pulumi-lang-dotnet=\"`Ocs`\" pulumi-lang-go=\"`ocs`\" pulumi-lang-python=\"`ocs`\" pulumi-lang-yaml=\"`ocs`\" pulumi-lang-java=\"`ocs`\"\u003e`ocs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`opensearch`\" pulumi-lang-dotnet=\"`Opensearch`\" pulumi-lang-go=\"`opensearch`\" pulumi-lang-python=\"`opensearch`\" pulumi-lang-yaml=\"`opensearch`\" pulumi-lang-java=\"`opensearch`\"\u003e`opensearch`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oss`\" pulumi-lang-dotnet=\"`Oss`\" pulumi-lang-go=\"`oss`\" pulumi-lang-python=\"`oss`\" pulumi-lang-yaml=\"`oss`\" pulumi-lang-java=\"`oss`\"\u003e`oss`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardb`\" pulumi-lang-dotnet=\"`Polardb`\" pulumi-lang-go=\"`polardb`\" pulumi-lang-python=\"`polardb`\" pulumi-lang-yaml=\"`polardb`\" pulumi-lang-java=\"`polardb`\"\u003e`polardb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`petadata`\" pulumi-lang-dotnet=\"`Petadata`\" pulumi-lang-go=\"`petadata`\" pulumi-lang-python=\"`petadata`\" pulumi-lang-yaml=\"`petadata`\" pulumi-lang-java=\"`petadata`\"\u003e`petadata`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`scdn`\" pulumi-lang-dotnet=\"`Scdn`\" pulumi-lang-go=\"`scdn`\" pulumi-lang-python=\"`scdn`\" pulumi-lang-yaml=\"`scdn`\" pulumi-lang-java=\"`scdn`\"\u003e`scdn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sharebandwidthpackages`\" pulumi-lang-dotnet=\"`Sharebandwidthpackages`\" pulumi-lang-go=\"`sharebandwidthpackages`\" pulumi-lang-python=\"`sharebandwidthpackages`\" pulumi-lang-yaml=\"`sharebandwidthpackages`\" pulumi-lang-java=\"`sharebandwidthpackages`\"\u003e`sharebandwidthpackages`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sls`\" pulumi-lang-dotnet=\"`Sls`\" pulumi-lang-go=\"`sls`\" pulumi-lang-python=\"`sls`\" pulumi-lang-yaml=\"`sls`\" pulumi-lang-java=\"`sls`\"\u003e`sls`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vpn`\" pulumi-lang-dotnet=\"`Vpn`\" pulumi-lang-go=\"`vpn`\" pulumi-lang-python=\"`vpn`\" pulumi-lang-yaml=\"`vpn`\" pulumi-lang-java=\"`vpn`\"\u003e`vpn`\u003c/span\u003e.\n"},"escalations":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getMetricRuleTemplatesTemplateAlertTemplateEscalation:getMetricRuleTemplatesTemplateAlertTemplateEscalation"},"description":"The information about the trigger condition based on the alert level.\n"},"metricName":{"type":"string","description":"The name of the metric.\n"},"namespace":{"type":"string","description":"The namespace of the service.\n"},"ruleName":{"type":"string","description":"The name of the alert rule.\n"},"selector":{"type":"string"},"webhook":{"type":"string","description":"The callback URL to which a POST request is sent when an alert is triggered based on the alert rule.\n"}},"type":"object","required":["category","escalations","metricName","namespace","ruleName","selector","webhook"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getMetricRuleTemplatesTemplateAlertTemplateEscalation:getMetricRuleTemplatesTemplateAlertTemplateEscalation":{"properties":{"criticals":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getMetricRuleTemplatesTemplateAlertTemplateEscalationCritical:getMetricRuleTemplatesTemplateAlertTemplateEscalationCritical"},"description":"The condition for triggering critical-level alerts.\n"},"infos":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getMetricRuleTemplatesTemplateAlertTemplateEscalationInfo:getMetricRuleTemplatesTemplateAlertTemplateEscalationInfo"},"description":"The condition for triggering info-level alerts.\n"},"warns":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getMetricRuleTemplatesTemplateAlertTemplateEscalationWarn:getMetricRuleTemplatesTemplateAlertTemplateEscalationWarn"},"description":"The condition for triggering warn-level alerts.\n"}},"type":"object","required":["criticals","infos","warns"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getMetricRuleTemplatesTemplateAlertTemplateEscalationCritical:getMetricRuleTemplatesTemplateAlertTemplateEscalationCritical":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator of the threshold for critical-level alerts.Valid values: `GreaterThanOrEqualToThreshold`, `GreaterThanThreshold`, `LessThanOrEqualToThreshold`, `LessThanThreshold`, `NotEqualToThreshold`, `GreaterThanYesterday`, `LessThanYesterday`, `GreaterThanLastWeek`, `LessThanLastWeek`, `GreaterThanLastPeriod`, `LessThanLastPeriod`.\n"},"statistics":{"type":"string","description":"The statistical aggregation method for critical-level alerts.\n"},"threshold":{"type":"string","description":"The threshold for critical-level alerts.\n"},"times":{"type":"string","description":"The consecutive number of times for which the metric value is measured before a\ncritical-level alert is triggered.\n"}},"type":"object","required":["comparisonOperator","statistics","threshold","times"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getMetricRuleTemplatesTemplateAlertTemplateEscalationInfo:getMetricRuleTemplatesTemplateAlertTemplateEscalationInfo":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator of the threshold for info-level alerts.Valid values: `GreaterThanOrEqualToThreshold`, `GreaterThanThreshold`, `LessThanOrEqualToThreshold`, `LessThanThreshold`, `NotEqualToThreshold`, `GreaterThanYesterday`, `LessThanYesterday`, `GreaterThanLastWeek`, `LessThanLastWeek`, `GreaterThanLastPeriod`, `LessThanLastPeriod`.\n"},"statistics":{"type":"string","description":"The statistical aggregation method for info-level alerts.\n"},"threshold":{"type":"string","description":"The threshold for info-level alerts.\n"},"times":{"type":"string","description":"The consecutive number of times for which the metric value is measured before an info-level\nalert is triggered.\n"}},"type":"object","required":["comparisonOperator","statistics","threshold","times"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getMetricRuleTemplatesTemplateAlertTemplateEscalationWarn:getMetricRuleTemplatesTemplateAlertTemplateEscalationWarn":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator of the threshold for warn-level alerts.Valid values: `GreaterThanOrEqualToThreshold`, `GreaterThanThreshold`, `LessThanOrEqualToThreshold`, `LessThanThreshold`, `NotEqualToThreshold`, `GreaterThanYesterday`, `LessThanYesterday`, `GreaterThanLastWeek`, `LessThanLastWeek`, `GreaterThanLastPeriod`, `LessThanLastPeriod`.\n"},"statistics":{"type":"string","description":"The statistical aggregation method for warn-level alerts.\n"},"threshold":{"type":"string","description":"The threshold for warn-level alerts.\n"},"times":{"type":"string","description":"The consecutive number of times for which the metric value is measured before a warn-level\nalert is triggered.\n"}},"type":"object","required":["comparisonOperator","statistics","threshold","times"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getMonitorGroupInstancesInstance:getMonitorGroupInstancesInstance":{"properties":{"instances":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getMonitorGroupInstancesInstanceInstance:getMonitorGroupInstancesInstanceInstance"}}},"type":"object","required":["instances"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getMonitorGroupInstancesInstanceInstance:getMonitorGroupInstancesInstanceInstance":{"properties":{"category":{"type":"string"},"instanceId":{"type":"string"},"instanceName":{"type":"string"},"regionId":{"type":"string"}},"type":"object","required":["category","instanceId","instanceName","regionId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getMonitorGroupsGroup:getMonitorGroupsGroup":{"properties":{"bindUrl":{"type":"string","description":"The URL of the Kubernetes cluster from which the application group is synchronized.\n"},"contactGroups":{"type":"array","items":{"type":"string"},"description":"The list of  alert groups that receive alert notifications for the application group.\n"},"dynamicTagRuleId":{"type":"string","description":"The ID of the tag rule.\n"},"gmtCreate":{"type":"integer","description":"The time when the application group was created.\n"},"gmtModified":{"type":"integer","description":"The time when the application group was modified.\n"},"groupId":{"type":"string","description":"The ID of the application group.\n"},"id":{"type":"string","description":"The ID of the Monitor Group.\n"},"monitorGroupName":{"type":"string","description":"The name of the application group.\n"},"serviceId":{"type":"string","description":"The ID of the Alibaba Cloud service.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the Cms Monitor Group.\n"},"templateIds":{"type":"array","items":{"type":"string"},"description":"The alert templates applied to the application group.\n"},"type":{"type":"string","description":"The type of the application group.\n"}},"type":"object","required":["bindUrl","contactGroups","dynamicTagRuleId","gmtCreate","gmtModified","groupId","id","monitorGroupName","serviceId","tags","templateIds","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getNamespacesNamespace:getNamespacesNamespace":{"properties":{"createTime":{"type":"string","description":"Create the timestamp of the indicator warehouse.\n"},"description":{"type":"string","description":"Description of indicator warehouse.\n"},"id":{"type":"string","description":"The ID of the Namespace.\n"},"modifyTime":{"type":"string","description":"The timestamp of the last modification indicator warehouse.\n"},"namespace":{"type":"string","description":"Indicator warehouse name.\n"},"namespaceId":{"type":"string","description":"The ID of the Namespace.\n"},"specification":{"type":"string","description":"Data storage duration.\n"}},"type":"object","required":["createTime","description","id","modifyTime","namespace","namespaceId","specification"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getSiteMonitorsMonitor:getSiteMonitorsMonitor":{"properties":{"address":{"type":"string","description":"Address.\n"},"createTime":{"type":"string","description":"CreateTime.\n"},"interval":{"type":"string","description":"Monitoring frequency.\n"},"taskId":{"type":"string","description":"Task ID.\n"},"taskName":{"type":"string","description":"Task Name.\n"},"taskType":{"type":"string","description":"Task Type.\n"}},"type":"object","required":["address","createTime","interval","taskId","taskName","taskType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getSlsGroupsGroup:getSlsGroupsGroup":{"properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"id":{"type":"string","description":"The ID of the Sls Group. Its value is same as Queue Name.\n"},"slsGroupConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cms/getSlsGroupsGroupSlsGroupConfig:getSlsGroupsGroupSlsGroupConfig"},"description":"The Config of the Sls Group.\n"},"slsGroupDescription":{"type":"string","description":"The Description of the Sls Group.\n"},"slsGroupName":{"type":"string","description":"The name of the resource.\n"}},"type":"object","required":["createTime","id","slsGroupConfigs","slsGroupDescription","slsGroupName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cms/getSlsGroupsGroupSlsGroupConfig:getSlsGroupsGroupSlsGroupConfig":{"properties":{"slsLogstore":{"type":"string","description":"The name of the Log Store.\n"},"slsProject":{"type":"string","description":"The name of the Project.\n"},"slsRegion":{"type":"string","description":"The Sls Region.\n"},"slsUserId":{"type":"string","description":"The ID of the Sls User.\n"}},"type":"object","required":["slsLogstore","slsProject","slsRegion","slsUserId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:compute/NestServiceInstanceCommodity:NestServiceInstanceCommodity":{"properties":{"payPeriod":{"type":"integer","description":"Length of purchase.\n"},"payPeriodUnit":{"type":"string","description":"Duration unit. Valid values: `Year`, `Month`, `Day`.\n"}},"type":"object"},"alicloud:compute/NestServiceInstanceOperationMetadata:NestServiceInstanceOperationMetadata":{"properties":{"operatedServiceInstanceId":{"type":"string","description":"The ID of the imported service instance.\n","willReplaceOnChanges":true},"operationEndTime":{"type":"string","description":"The end time of O\u0026M.\n","willReplaceOnChanges":true},"operationStartTime":{"type":"string","description":"The start time of O\u0026M.\n","willReplaceOnChanges":true},"resources":{"type":"string","description":"The list of imported resources.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["resources"]}}},"alicloud:compute/getNestServiceInstancesFilter:getNestServiceInstancesFilter":{"properties":{"name":{"type":"string","description":"The name of the service.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Set of values that are accepted for the given field.\n"}},"type":"object"},"alicloud:compute/getNestServiceInstancesServiceInstance:getNestServiceInstancesServiceInstance":{"properties":{"enableInstanceOps":{"type":"boolean","description":"Whether the service instance has the O\u0026M function.\n"},"id":{"type":"string","description":"The ID of the Service Instance.\n"},"operatedServiceInstanceId":{"type":"string","description":"The ID of the imported service instance.\n"},"operationEndTime":{"type":"string","description":"The end time of O\u0026M.\n"},"operationStartTime":{"type":"string","description":"The start time of O\u0026M.\n"},"parameters":{"type":"string","description":"The parameters entered by the deployment service instance.\n"},"resources":{"type":"string","description":"The list of imported resources.\n"},"serviceInstanceId":{"type":"string","description":"The ID of the Service Instance.\n"},"serviceInstanceName":{"type":"string","description":"The name of the Service Instance.\n"},"services":{"type":"array","items":{"$ref":"#/types/alicloud:compute/getNestServiceInstancesServiceInstanceService:getNestServiceInstancesServiceInstanceService"},"description":"Service details.\n"},"source":{"type":"string","description":"The source of the Service Instance.\n"},"status":{"type":"string","description":"The status of the Service Instance. Valid Values: `Created`, `Deploying`, `DeployedFailed`, `Deployed`, `Upgrading`, `Deleting`, `Deleted`, `DeletedFailed`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"templateName":{"type":"string","description":"The name of the template.\n"}},"type":"object","required":["enableInstanceOps","id","operatedServiceInstanceId","operationEndTime","operationStartTime","parameters","resources","services","serviceInstanceId","serviceInstanceName","source","status","tags","templateName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:compute/getNestServiceInstancesServiceInstanceService:getNestServiceInstancesServiceInstanceService":{"properties":{"deployType":{"type":"string","description":"The type of the deployment.\n"},"publishTime":{"type":"string","description":"The time of publish.\n"},"serviceId":{"type":"string","description":"The id of the service.\n"},"serviceInfos":{"type":"array","items":{"$ref":"#/types/alicloud:compute/getNestServiceInstancesServiceInstanceServiceServiceInfo:getNestServiceInstancesServiceInstanceServiceServiceInfo"},"description":"Service information.\n"},"serviceType":{"type":"string","description":"The type of the service.\n"},"status":{"type":"string","description":"The status of the Service Instance. Valid Values: `Created`, `Deploying`, `DeployedFailed`, `Deployed`, `Upgrading`, `Deleting`, `Deleted`, `DeletedFailed`.\n"},"supplierName":{"type":"string","description":"The name of the supplier.\n"},"supplierUrl":{"type":"string","description":"The url of the supplier.\n"},"version":{"type":"string","description":"The version of the service.\n"},"versionName":{"type":"string","description":"The version name of the service.\n"}},"type":"object","required":["deployType","publishTime","serviceId","serviceInfos","serviceType","status","supplierName","supplierUrl","version","versionName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:compute/getNestServiceInstancesServiceInstanceServiceServiceInfo:getNestServiceInstancesServiceInstanceServiceServiceInfo":{"properties":{"image":{"type":"string","description":"The image of the service.\n"},"locale":{"type":"string","description":"The locale of the service.\n"},"name":{"type":"string","description":"The name of the service.\n"},"shortDescription":{"type":"string","description":"The short description of the service.\n"}},"type":"object","required":["image","locale","name","shortDescription"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:config/ReportTemplateReportScope:ReportTemplateReportScope":{"properties":{"key":{"type":"string","description":"Key for reporting scope, currently supported:\n- AggregatorId\n- CompliancePackId\n- RuleId\n"},"matchType":{"type":"string","description":"The matching logic. Currently, only In is supported.\n"},"value":{"type":"string","description":"The value of the report range. Each k-v pair is an OR logic. For example, multiple rule IDs can be separated by commas (,).\n"}},"type":"object"},"alicloud:config/assumeRole:assumeRole":{"properties":{"externalId":{"type":"string"},"policy":{"type":"string","description":"The permissions applied when assuming a role. You cannot use, this policy to grant further permissions that are in excess to those of the, role that is being assumed.\n"},"roleArn":{"type":"string","description":"The ARN of a RAM role to assume prior to making API calls.\n"},"sessionExpiration":{"type":"integer","description":"The time after which the established session for assuming role expires. Valid value range: [900-3600] seconds. Default to 0 (in this case Alicloud use own default value).\n"},"sessionName":{"type":"string","description":"The session name to use when assuming the role. If omitted, \u003cspan pulumi-lang-nodejs=\"`terraform`\" pulumi-lang-dotnet=\"`Terraform`\" pulumi-lang-go=\"`terraform`\" pulumi-lang-python=\"`terraform`\" pulumi-lang-yaml=\"`terraform`\" pulumi-lang-java=\"`terraform`\"\u003e`terraform`\u003c/span\u003e is passed to the AssumeRole call as session name.\n"}},"type":"object","required":["roleArn"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:config/assumeRoleWithOidc:assumeRoleWithOidc":{"properties":{"oidcProviderArn":{"type":"string","description":"ARN of the OIDC IdP.\n"},"oidcToken":{"type":"string"},"oidcTokenFile":{"type":"string","description":"The file path of OIDC token that is issued by the external IdP.\n"},"policy":{"type":"string","description":"The policy that specifies the permissions of the returned STS token. You can use this parameter to grant the STS token fewer permissions than the permissions granted to the RAM role.\n"},"roleArn":{"type":"string","description":"ARN of a RAM role to assume prior to making API calls.\n"},"roleSessionName":{"type":"string","description":"The custom name of the role session. Set this parameter based on your business requirements. In most cases, this parameter is set to the identity of the user who calls the operation, for example, the username.\n"},"sessionExpiration":{"type":"integer","description":"The validity period of the STS token. Unit: seconds. Default value: 3600. Minimum value: 900. Maximum value: the value of the MaxSessionDuration parameter when creating a ram role.\n"}},"type":"object","required":["oidcProviderArn","roleArn"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:config/endpoints:endpoints":{"properties":{"acr":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom acr endpoints.\n"},"actiontrail":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Actiontrail endpoints.\n"},"adb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom AnalyticDB endpoints.\n"},"aiworkspace":{"type":"string"},"alb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom alb endpoints.\n"},"alidfs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom alidfs endpoints.\n"},"alidns":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom alidns endpoints.\n"},"alikafka":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ALIKAFKA endpoints.\n"},"amqp":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom onsproxy endpoints.\n"},"antiddosPublic":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ddosbasic endpoints.\n"},"apig":{"type":"string"},"apigateway":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Api Gateway endpoints.\n"},"arms":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom arms endpoints.\n"},"bastionhost":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom bastionhost endpoints.\n"},"beebot":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom beebot endpoints.\n"},"bpstudio":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom bpstudio endpoints.\n"},"brainIndustrial":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom\u003cspan pulumi-lang-nodejs=\" brainIndustrial \" pulumi-lang-dotnet=\" BrainIndustrial \" pulumi-lang-go=\" brainIndustrial \" pulumi-lang-python=\" brain_industrial \" pulumi-lang-yaml=\" brainIndustrial \" pulumi-lang-java=\" brainIndustrial \"\u003e brain_industrial \u003c/span\u003eendpoints.\n"},"bssopenapi":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom BSSOPENAPI endpoints.\n"},"cas":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom CAS endpoints.\n"},"cassandra":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cassandra endpoints.\n"},"cbn":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cbn endpoints.\n"},"cbs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cbs endpoints.\n"},"cddc":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cddc endpoints.\n"},"cdn":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom CDN endpoints.\n"},"cds":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cds endpoints.\n"},"chatbot":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom beebot endpoints.\n"},"clickhouse":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom clickhouse endpoints.\n"},"cloudapi":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Api Gateway endpoints.\n"},"cloudauth":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cloudauth endpoints.\n"},"cloudfirewall":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cloudfirewall endpoints.\n"},"cloudfw":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cloudfw endpoints.\n"},"cloudphone":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cloudphone endpoints.\n"},"cloudsso":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cloudsso endpoints.\n"},"cms":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Cloud Monitor endpoints.\n"},"computenest":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom computenest endpoints.\n"},"config":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom config endpoints.\n"},"cr":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Container Registry endpoints.\n"},"cs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Container Service endpoints.\n"},"das":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom das endpoints.\n"},"datahub":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Datahub endpoints.\n"},"dataworksPublic":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dataworkspublic endpoints.\n"},"dataworkspublic":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dataworkspublic endpoints.\n"},"dbfs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dbfs endpoints.\n"},"dbs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cbs endpoints.\n"},"dcdn":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dcdn endpoints.\n"},"ddosbasic":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ddosbasic endpoints.\n"},"ddosbgp":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom DDOSBGP endpoints.\n"},"ddoscoo":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom DDOSCOO endpoints.\n"},"dds":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom MongoDB endpoints.\n"},"devopsRdc":{"type":"string"},"devopsrdc":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom devopsrdc endpoints.\n"},"dfs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom alidfs endpoints.\n"},"dg":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dg endpoints.\n"},"dm":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dm endpoints.\n"},"dmsEnterprise":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom\u003cspan pulumi-lang-nodejs=\" dmsEnterprise \" pulumi-lang-dotnet=\" DmsEnterprise \" pulumi-lang-go=\" dmsEnterprise \" pulumi-lang-python=\" dms_enterprise \" pulumi-lang-yaml=\" dmsEnterprise \" pulumi-lang-java=\" dmsEnterprise \"\u003e dms_enterprise \u003c/span\u003eendpoints.\n"},"dmsenterprise":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dmsenterprise endpoints.\n"},"dns":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom DNS endpoints.\n"},"drds":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom DRDS endpoints.\n"},"dts":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dts endpoints.\n"},"dysms":{"type":"string"},"dysmsapi":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dysmsapi endpoints.\n"},"eais":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom eais endpoints.\n"},"ebs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ebs endpoints.\n"},"ecd":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom gwsecd endpoints.\n"},"eci":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom eci endpoints.\n"},"ecs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ECS endpoints.\n"},"edas":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom edas endpoints.\n"},"edasschedulerx":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom edasschedulerx endpoints.\n"},"edsUser":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom edsuser endpoints.\n"},"edsuser":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom edsuser endpoints.\n"},"eflo":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom eflo endpoints.\n"},"efloCnp":{"type":"string"},"efloController":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom efloctrl endpoints.\n"},"ehpc":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ehpc endpoints.\n"},"ehs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ehs endpoints.\n"},"eipanycast":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom eipanycast endpoints.\n"},"elasticsearch":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Elasticsearch endpoints.\n"},"emr":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom EMR endpoints.\n"},"ens":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ens endpoints.\n"},"esa":{"type":"string"},"ess":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Autoscaling endpoints.\n"},"eventbridge":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom\u003cspan pulumi-lang-nodejs=\" eventbridgeShare \" pulumi-lang-dotnet=\" EventbridgeShare \" pulumi-lang-go=\" eventbridgeShare \" pulumi-lang-python=\" eventbridge_share \" pulumi-lang-yaml=\" eventbridgeShare \" pulumi-lang-java=\" eventbridgeShare \"\u003e eventbridge_share \u003c/span\u003eendpoints.\n"},"fc":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Function Computing endpoints.\n"},"fcOpen":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Function Computing endpoints.\n"},"fnf":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom fnf endpoints.\n"},"ga":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ga endpoints.\n"},"gaplus":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom gaplus endpoints.\n"},"gdb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom gds endpoints.\n"},"gds":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom gds endpoints.\n"},"gpdb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom GPDB endpoints.\n"},"gwlb":{"type":"string"},"gwsecd":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom gwsecd endpoints.\n"},"hbr":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom hbr endpoints.\n"},"hcsSgw":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom\u003cspan pulumi-lang-nodejs=\" hcsSgw \" pulumi-lang-dotnet=\" HcsSgw \" pulumi-lang-go=\" hcsSgw \" pulumi-lang-python=\" hcs_sgw \" pulumi-lang-yaml=\" hcsSgw \" pulumi-lang-java=\" hcsSgw \"\u003e hcs_sgw \u003c/span\u003eendpoints.\n"},"hitsdb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom hitsdb endpoints.\n"},"imm":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom imm endpoints.\n"},"imp":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom imp endpoints.\n"},"ims":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ims endpoints.\n"},"iot":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom iot endpoints.\n"},"kms":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom KMS endpoints.\n"},"kvstore":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom R-KVStore endpoints.\n"},"location":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Location Service endpoints.\n"},"log":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Log Service endpoints.\n"},"market":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Market Place endpoints.\n"},"maxcompute":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom MaxCompute endpoints.\n"},"mhub":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom mhub endpoints.\n"},"mns":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom MNS endpoints.\n"},"mnsOpen":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom MNS endpoints.\n"},"mscopensubscription":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom mscopensubscription endpoints.\n"},"mse":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom mse endpoints.\n"},"nas":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom NAS endpoints.\n"},"nlb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom nlb endpoints.\n"},"oceanbase":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom oceanbase endpoints.\n"},"oceanbasepro":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom oceanbase endpoints.\n"},"ons":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ONS endpoints.\n"},"onsproxy":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom onsproxy endpoints.\n"},"oos":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom oos endpoints.\n"},"opensearch":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom opensearch endpoints.\n"},"oss":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom OSS endpoints.\n"},"ots":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Table Store endpoints.\n"},"polardb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom PolarDB endpoints.\n"},"polardbx":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom DRDS endpoints.\n"},"privatelink":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom privatelink endpoints.\n"},"pvtz":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Private Zone endpoints.\n"},"quickbi":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom quickbi endpoints.\n"},"quickbiPublic":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom quickbi endpoints.\n"},"quotas":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom quotas endpoints.\n"},"rKvstore":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom\u003cspan pulumi-lang-nodejs=\" rKvstore \" pulumi-lang-dotnet=\" RKvstore \" pulumi-lang-go=\" rKvstore \" pulumi-lang-python=\" r_kvstore \" pulumi-lang-yaml=\" rKvstore \" pulumi-lang-java=\" rKvstore \"\u003e r_kvstore \u003c/span\u003eendpoints.\n"},"ram":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom RAM endpoints.\n"},"rds":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom RDS endpoints.\n"},"redisa":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom redisa endpoints.\n"},"resourcemanager":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom resourcemanager endpoints.\n"},"resourcesharing":{"type":"string"},"ressharing":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom resourcesharing endpoints.\n"},"rocketmq":{"type":"string"},"ros":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ros endpoints.\n"},"sae":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom serverless endpoints.\n"},"sas":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom sas endpoints.\n"},"scdn":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom scdn endpoints.\n"},"schedulerx2":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom edasschedulerx endpoints.\n"},"sddp":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom sddp endpoints.\n"},"selectdb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom selectdb endpoints.\n"},"serverless":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom serverless endpoints.\n"},"servicecatalog":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom srvcatalog endpoints.\n"},"servicemesh":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom servicemesh endpoints.\n"},"sgw":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom sgw endpoints.\n"},"slb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom SLB endpoints.\n"},"smartag":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom smartag endpoints.\n"},"srvcatalog":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom srvcatalog endpoints.\n"},"sts":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom STS endpoints.\n"},"swas":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom swas endpoints.\n"},"swasOpen":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom swas endpoints.\n"},"tag":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom tag endpoints.\n"},"vod":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom vod endpoints.\n"},"vpc":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom VPC and VPN endpoints.\n"},"vpcipam":{"type":"string"},"vpcpeer":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom vpcpeer endpoints.\n"},"vs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom vs endpoints.\n"},"waf":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom waf endpoints.\n"},"wafOpenapi":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom\u003cspan pulumi-lang-nodejs=\" wafOpenapi \" pulumi-lang-dotnet=\" WafOpenapi \" pulumi-lang-go=\" wafOpenapi \" pulumi-lang-python=\" waf_openapi \" pulumi-lang-yaml=\" wafOpenapi \" pulumi-lang-java=\" wafOpenapi \"\u003e waf_openapi \u003c/span\u003eendpoints.\n"}},"type":"object"},"alicloud:config/signVersion:signVersion":{"properties":{"oss":{"type":"string"},"sls":{"type":"string"}},"type":"object"},"alicloud:cr/ChainChainConfig:ChainChainConfig":{"properties":{"nodes":{"type":"array","items":{"$ref":"#/types/alicloud:cr/ChainChainConfigNode:ChainChainConfigNode"},"description":"Each node in the delivery chain. See \u003cspan pulumi-lang-nodejs=\"`nodes`\" pulumi-lang-dotnet=\"`Nodes`\" pulumi-lang-go=\"`nodes`\" pulumi-lang-python=\"`nodes`\" pulumi-lang-yaml=\"`nodes`\" pulumi-lang-java=\"`nodes`\"\u003e`nodes`\u003c/span\u003e below.\n\n\u003e **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`from`\" pulumi-lang-dotnet=\"`From`\" pulumi-lang-go=\"`from`\" pulumi-lang-python=\"`from`\" pulumi-lang-yaml=\"`from`\" pulumi-lang-java=\"`from`\"\u003e`from`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`to`\" pulumi-lang-dotnet=\"`To`\" pulumi-lang-go=\"`to`\" pulumi-lang-python=\"`to`\" pulumi-lang-yaml=\"`to`\" pulumi-lang-java=\"`to`\"\u003e`to`\u003c/span\u003e fields are all fixed, and their structure and the value of \u003cspan pulumi-lang-nodejs=\"`nodeName`\" pulumi-lang-dotnet=\"`NodeName`\" pulumi-lang-go=\"`nodeName`\" pulumi-lang-python=\"`node_name`\" pulumi-lang-yaml=\"`nodeName`\" pulumi-lang-java=\"`nodeName`\"\u003e`node_name`\u003c/span\u003e are fixed. You can refer to the template given in the example for configuration.\n"},"routers":{"type":"array","items":{"$ref":"#/types/alicloud:cr/ChainChainConfigRouter:ChainChainConfigRouter"},"description":"Execution sequence relationship between delivery chain nodes. See \u003cspan pulumi-lang-nodejs=\"`routers`\" pulumi-lang-dotnet=\"`Routers`\" pulumi-lang-go=\"`routers`\" pulumi-lang-python=\"`routers`\" pulumi-lang-yaml=\"`routers`\" pulumi-lang-java=\"`routers`\"\u003e`routers`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:cr/ChainChainConfigNode:ChainChainConfigNode":{"properties":{"enable":{"type":"boolean","description":"Whether to enable the delivery chain node. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"nodeConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cr/ChainChainConfigNodeNodeConfig:ChainChainConfigNodeNodeConfig"},"description":"The configuration of delivery chain node. See \u003cspan pulumi-lang-nodejs=\"`nodeConfig`\" pulumi-lang-dotnet=\"`NodeConfig`\" pulumi-lang-go=\"`nodeConfig`\" pulumi-lang-python=\"`node_config`\" pulumi-lang-yaml=\"`nodeConfig`\" pulumi-lang-java=\"`nodeConfig`\"\u003e`node_config`\u003c/span\u003e below.\n"},"nodeName":{"type":"string","description":"The name of delivery chain node.\n"}},"type":"object"},"alicloud:cr/ChainChainConfigNodeNodeConfig:ChainChainConfigNodeNodeConfig":{"properties":{"denyPolicies":{"type":"array","items":{"$ref":"#/types/alicloud:cr/ChainChainConfigNodeNodeConfigDenyPolicy:ChainChainConfigNodeNodeConfigDenyPolicy"},"description":"Blocking rules for scanning nodes in delivery chain nodes. See \u003cspan pulumi-lang-nodejs=\"`denyPolicy`\" pulumi-lang-dotnet=\"`DenyPolicy`\" pulumi-lang-go=\"`denyPolicy`\" pulumi-lang-python=\"`deny_policy`\" pulumi-lang-yaml=\"`denyPolicy`\" pulumi-lang-java=\"`denyPolicy`\"\u003e`deny_policy`\u003c/span\u003e below. **Note:** When \u003cspan pulumi-lang-nodejs=\"`nodeName`\" pulumi-lang-dotnet=\"`NodeName`\" pulumi-lang-go=\"`nodeName`\" pulumi-lang-python=\"`node_name`\" pulumi-lang-yaml=\"`nodeName`\" pulumi-lang-java=\"`nodeName`\"\u003e`node_name`\u003c/span\u003e is `VULNERABILITY_SCANNING`, the parameters in \u003cspan pulumi-lang-nodejs=\"`denyPolicy`\" pulumi-lang-dotnet=\"`DenyPolicy`\" pulumi-lang-go=\"`denyPolicy`\" pulumi-lang-python=\"`deny_policy`\" pulumi-lang-yaml=\"`denyPolicy`\" pulumi-lang-java=\"`denyPolicy`\"\u003e`deny_policy`\u003c/span\u003e need to be filled in.\n"}},"type":"object"},"alicloud:cr/ChainChainConfigNodeNodeConfigDenyPolicy:ChainChainConfigNodeNodeConfigDenyPolicy":{"properties":{"action":{"type":"string","description":"The action of trigger blocking. Valid values: `BLOCK`, `BLOCK_RETAG`, `BLOCK_DELETE_TAG`. While `Block` means block the delivery chain from continuing to execute, `BLOCK_RETAG` means block overwriting push image tag, `BLOCK_DELETE_TAG` means block deletion of mirror tags.\n"},"issueCount":{"type":"string","description":"The count of scanning vulnerabilities that triggers blocking.\n"},"issueLevel":{"type":"string","description":"The level of scanning vulnerability that triggers blocking. Valid values: `LOW`, `MEDIUM`, `HIGH`, `UNKNOWN`.\n"},"logic":{"type":"string","description":"The logic of trigger blocking. Valid values: `AND`, `OR`.\n"}},"type":"object"},"alicloud:cr/ChainChainConfigRouter:ChainChainConfigRouter":{"properties":{"froms":{"type":"array","items":{"$ref":"#/types/alicloud:cr/ChainChainConfigRouterFrom:ChainChainConfigRouterFrom"},"description":"Source node. See \u003cspan pulumi-lang-nodejs=\"`from`\" pulumi-lang-dotnet=\"`From`\" pulumi-lang-go=\"`from`\" pulumi-lang-python=\"`from`\" pulumi-lang-yaml=\"`from`\" pulumi-lang-java=\"`from`\"\u003e`from`\u003c/span\u003e below.\n"},"tos":{"type":"array","items":{"$ref":"#/types/alicloud:cr/ChainChainConfigRouterTo:ChainChainConfigRouterTo"},"description":"Destination node. See \u003cspan pulumi-lang-nodejs=\"`to`\" pulumi-lang-dotnet=\"`To`\" pulumi-lang-go=\"`to`\" pulumi-lang-python=\"`to`\" pulumi-lang-yaml=\"`to`\" pulumi-lang-java=\"`to`\"\u003e`to`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:cr/ChainChainConfigRouterFrom:ChainChainConfigRouterFrom":{"properties":{"nodeName":{"type":"string","description":"The name of node. Valid values: `DOCKER_IMAGE_BUILD`, `DOCKER_IMAGE_PUSH`, `VULNERABILITY_SCANNING`, `ACTIVATE_REPLICATION`, `TRIGGER`, `SNAPSHOT`, `TRIGGER_SNAPSHOT`.\n"}},"type":"object"},"alicloud:cr/ChainChainConfigRouterTo:ChainChainConfigRouterTo":{"properties":{"nodeName":{"type":"string","description":"The name of node. Valid values: `DOCKER_IMAGE_BUILD`, `DOCKER_IMAGE_PUSH`, `VULNERABILITY_SCANNING`, `ACTIVATE_REPLICATION`, `TRIGGER`, `SNAPSHOT`, `TRIGGER_SNAPSHOT`.\n"}},"type":"object"},"alicloud:cr/RegistryEnterpriseInstanceInstanceEndpoint:RegistryEnterpriseInstanceInstanceEndpoint":{"properties":{"domains":{"type":"array","items":{"$ref":"#/types/alicloud:cr/RegistryEnterpriseInstanceInstanceEndpointDomain:RegistryEnterpriseInstanceInstanceEndpointDomain"},"description":"Domain List\n"},"enable":{"type":"boolean","description":"enable\n"},"endpointType":{"type":"string","description":"Network Access Endpoint Type\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["domains","enable","endpointType"]}}},"alicloud:cr/RegistryEnterpriseInstanceInstanceEndpointDomain:RegistryEnterpriseInstanceInstanceEndpointDomain":{"properties":{"domain":{"type":"string","description":"Domain\n"},"type":{"type":"string","description":"Domain Type\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["domain","type"]}}},"alicloud:cr/RepoDomainList:RepoDomainList":{"properties":{"internal":{"type":"string","description":"Domain of internal endpoint, only in some regions.\n"},"public":{"type":"string","description":"Domain of public endpoint.\n"},"vpc":{"type":"string","description":"Domain of vpc endpoint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["internal","public","vpc"]}}},"alicloud:cr/StorageDomainRoutingRuleRoute:StorageDomainRoutingRuleRoute":{"properties":{"endpointType":{"type":"string","description":"Endpoint Type.\n"},"instanceDomain":{"type":"string","description":"Instance domain name.\n"},"storageDomain":{"type":"string","description":"Storage domain name.\n"}},"type":"object","required":["endpointType","instanceDomain","storageDomain"]},"alicloud:cr/getChainsChain:getChainsChain":{"properties":{"chainConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cr/getChainsChainChainConfig:getChainsChainChainConfig"},"description":"The configuration of delivery chain.\n"},"chainId":{"type":"string","description":"The ID of delivery chain.\n"},"chainName":{"type":"string","description":"The name of delivery chain.\n"},"createTime":{"type":"string","description":"The creation time of delivery chain.\n"},"description":{"type":"string","description":"The description of delivery chain.\n"},"id":{"type":"string","description":"The resource ID of the delivery chain. The value formats as `\u003cinstance_id\u003e:\u003cchain_id\u003e`.\n"},"instanceId":{"type":"string","description":"The ID of CR Enterprise Edition instance.\n"},"modifiedTime":{"type":"string","description":"The modification time of delivery chain description.\n"},"scopeId":{"type":"string","description":"Delivery chain scope ID.\n"},"scopeType":{"type":"string","description":"Delivery chain scope type.\n"}},"type":"object","required":["chainConfigs","chainId","chainName","createTime","description","id","instanceId","modifiedTime","scopeId","scopeType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cr/getChainsChainChainConfig:getChainsChainChainConfig":{"properties":{"nodes":{"type":"array","items":{"$ref":"#/types/alicloud:cr/getChainsChainChainConfigNode:getChainsChainChainConfigNode"},"description":"Each node in the delivery chain.\n"},"routers":{"type":"array","items":{"$ref":"#/types/alicloud:cr/getChainsChainChainConfigRouter:getChainsChainChainConfigRouter"},"description":"Execution sequence relationship between delivery chain nodes.\n"}},"type":"object","required":["nodes","routers"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cr/getChainsChainChainConfigNode:getChainsChainChainConfigNode":{"properties":{"enable":{"type":"boolean","description":"Whether to enable the delivery chain node. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"nodeConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cr/getChainsChainChainConfigNodeNodeConfig:getChainsChainChainConfigNodeNodeConfig"},"description":"The configuration of delivery chain node.\n"},"nodeName":{"type":"string","description":"The name of delivery chain node.\n"}},"type":"object","required":["enable","nodeConfigs","nodeName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cr/getChainsChainChainConfigNodeNodeConfig:getChainsChainChainConfigNodeNodeConfig":{"properties":{"denyPolicies":{"type":"array","items":{"$ref":"#/types/alicloud:cr/getChainsChainChainConfigNodeNodeConfigDenyPolicy:getChainsChainChainConfigNodeNodeConfigDenyPolicy"},"description":"Blocking rules for scanning nodes in delivery chain nodes. **Note:** When \u003cspan pulumi-lang-nodejs=\"`nodeName`\" pulumi-lang-dotnet=\"`NodeName`\" pulumi-lang-go=\"`nodeName`\" pulumi-lang-python=\"`node_name`\" pulumi-lang-yaml=\"`nodeName`\" pulumi-lang-java=\"`nodeName`\"\u003e`node_name`\u003c/span\u003e is `VULNERABILITY_SCANNING`, the parameters in \u003cspan pulumi-lang-nodejs=\"`denyPolicy`\" pulumi-lang-dotnet=\"`DenyPolicy`\" pulumi-lang-go=\"`denyPolicy`\" pulumi-lang-python=\"`deny_policy`\" pulumi-lang-yaml=\"`denyPolicy`\" pulumi-lang-java=\"`denyPolicy`\"\u003e`deny_policy`\u003c/span\u003e need to be filled in.\n"}},"type":"object","required":["denyPolicies"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cr/getChainsChainChainConfigNodeNodeConfigDenyPolicy:getChainsChainChainConfigNodeNodeConfigDenyPolicy":{"properties":{"action":{"type":"string","description":"The action of trigger blocking. Valid values: `BLOCK`, `BLOCK_RETAG`, `BLOCK_DELETE_TAG`. While `Block` means block the delivery chain from continuing to execute, `BLOCK_RETAG` means block overwriting push image tag, `BLOCK_DELETE_TAG` means block deletion of mirror tags.\n"},"issueCount":{"type":"string","description":"The count of scanning vulnerabilities that triggers blocking.\n"},"issueLevel":{"type":"string","description":"The level of scanning vulnerability that triggers blocking. Valid values: `LOW`, `MEDIUM`, `HIGH`, `UNKNOWN`.\n"},"logic":{"type":"string","description":"The logic of trigger blocking. Valid values: `AND`, `OR`.\n"}},"type":"object","required":["issueCount","issueLevel","logic"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cr/getChainsChainChainConfigRouter:getChainsChainChainConfigRouter":{"properties":{"froms":{"type":"array","items":{"$ref":"#/types/alicloud:cr/getChainsChainChainConfigRouterFrom:getChainsChainChainConfigRouterFrom"},"description":"Source node.\n"},"tos":{"type":"array","items":{"$ref":"#/types/alicloud:cr/getChainsChainChainConfigRouterTo:getChainsChainChainConfigRouterTo"},"description":"Destination node.\n"}},"type":"object","required":["froms","tos"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cr/getChainsChainChainConfigRouterFrom:getChainsChainChainConfigRouterFrom":{"properties":{"nodeName":{"type":"string","description":"The name of delivery chain node.\n"}},"type":"object","required":["nodeName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cr/getChainsChainChainConfigRouterTo:getChainsChainChainConfigRouterTo":{"properties":{"nodeName":{"type":"string","description":"The name of delivery chain node.\n"}},"type":"object","required":["nodeName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cr/getChartNamespacesNamespace:getChartNamespacesNamespace":{"properties":{"autoCreateRepo":{"type":"boolean","description":"Indicates whether a repository is automatically created when an image is pushed to the namespace.\n"},"chartNamespaceId":{"type":"string","description":"The ID of the namespace.\n"},"defaultRepoType":{"type":"string","description":"The default repository type. Valid values: `PUBLIC`,`PRIVATE`.\n"},"id":{"type":"string","description":"The ID of the Chart Namespace.\n"},"instanceId":{"type":"string","description":"The ID of the namespace.\n"},"namespaceName":{"type":"string","description":"The name of the namespace.\n"}},"type":"object","required":["autoCreateRepo","chartNamespaceId","defaultRepoType","id","instanceId","namespaceName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cr/getChartRepositoriesRepository:getChartRepositoriesRepository":{"properties":{"chartRepositoryId":{"type":"string","description":"The first ID of the resource.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"id":{"type":"string","description":"The ID of the Chart Repository.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry instance.\n"},"repoName":{"type":"string","description":"The name of the repository.\n"},"repoNamespaceName":{"type":"string","description":"The namespace to which the repository belongs.\n"},"repoType":{"type":"string","description":"The type of the repository. Valid values: `PUBLIC`,`PRIVATE`.\n"},"summary":{"type":"string","description":"The summary about the repository.\n"}},"type":"object","required":["chartRepositoryId","createTime","id","instanceId","repoName","repoNamespaceName","repoType","summary"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cr/getEndpointAclPoliciesPolicy:getEndpointAclPoliciesPolicy":{"properties":{"description":{"type":"string","description":"The description of the entry.\n"},"endpointType":{"type":"string","description":"The type of endpoint.\n"},"entry":{"type":"string","description":"The IP segment that allowed to access.\n"},"id":{"type":"string","description":"The ID of the Endpoint Acl Policy.\n"},"instanceId":{"type":"string","description":"The ID of the CR Instance.\n"}},"type":"object","required":["description","endpointType","entry","id","instanceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cr/getNamespacesNamespace:getNamespacesNamespace":{"properties":{"autoCreate":{"type":"boolean","description":"Boolean, when it set to true, repositories are automatically created when pushing new images. If it set to false, you create repository for images before pushing.\n"},"defaultVisibility":{"type":"string","description":"`PUBLIC` or `PRIVATE`, default repository visibility in this namespace.\n"},"name":{"type":"string","description":"Name of Container Registry namespace.\n"}},"type":"object","required":["autoCreate","defaultVisibility","name"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cr/getReposRepo:getReposRepo":{"properties":{"domainList":{"$ref":"#/types/alicloud:cr/getReposRepoDomainList:getReposRepoDomainList","description":"The repository domain list.\n"},"name":{"type":"string","description":"Name of container registry namespace.\n"},"namespace":{"type":"string","description":"Name of container registry namespace where the repositories are located in.\n"},"repoType":{"type":"string","description":"`PUBLIC` or `PRIVATE`, repository's visibility.\n"},"summary":{"type":"string","description":"The repository general information.\n"},"tags":{"type":"array","items":{"$ref":"#/types/alicloud:cr/getReposRepoTag:getReposRepoTag"},"description":"A list of image tags belong to this repository. Each contains several attributes, see `Block Tag`.\n"}},"type":"object","required":["domainList","name","namespace","repoType","summary","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cr/getReposRepoDomainList:getReposRepoDomainList":{"properties":{"internal":{"type":"string","description":"Domain of internal endpoint, only in some regions.\n"},"public":{"type":"string","description":"Domain of public endpoint.\n"},"vpc":{"type":"string","description":"Domain of vpc endpoint.\n"}},"type":"object","required":["internal","public","vpc"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cr/getReposRepoTag:getReposRepoTag":{"properties":{"digest":{"type":"string","description":"Digest of this image.\n"},"imageCreate":{"type":"integer","description":"Create time of this image, unix time in nanoseconds.\n"},"imageId":{"type":"string","description":"Id of this image.\n"},"imageSize":{"type":"integer","description":"Status of this image, in bytes.\n"},"imageUpdate":{"type":"integer","description":"Last update time of this image, unix time in nanoseconds.\n"},"status":{"type":"string","description":"Status of this image.\n"},"tag":{"type":"string","description":"Tag of this image.\n"}},"type":"object","required":["digest","imageCreate","imageId","imageSize","imageUpdate","status","tag"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cr/getVpcEndpointLinkedVpcsVpcEndpointLinkedVpc:getVpcEndpointLinkedVpcsVpcEndpointLinkedVpc":{"properties":{"defaultAccess":{"type":"boolean","description":"Indicates whether the default policy is used to access the instance.\n"},"id":{"type":"string","description":"The ID of the Vpc Endpoint Linked Vpc. It formats as `\u003cinstance_id\u003e:\u003cvpc_id\u003e:\u003cvswitch_id\u003e:\u003cmodule_name\u003e`.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"ip":{"type":"string","description":"IP address.\n"},"moduleName":{"type":"string","description":"The name of the module that you want to access. Valid Values:\n- `Registry`: the image repository.\n- `Chart`: a Helm chart.\n"},"status":{"type":"string","description":"The status of the Vpc Endpoint Linked Vpc. Valid Values: `CREATING`, `RUNNING`.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n"}},"type":"object","required":["defaultAccess","id","instanceId","ip","moduleName","status","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/ApplicationService:ApplicationService":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"version":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","name","status","version"]}}},"alicloud:cs/ClusterNode:ClusterNode":{"properties":{"eip":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"privateIp":{"type":"string"},"status":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["eip","id","name","privateIp","status"]}}},"alicloud:cs/EdgeKubernetesAddon:EdgeKubernetesAddon":{"properties":{"config":{"type":"string","description":"The ACK add-on configurations. For more config information, see cs_kubernetes_addon_metadata.\n"},"disabled":{"type":"boolean","description":"Disables the automatic installation of a component. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\nThe following example is the definition of addons block, The type of this field is list:\n\n```\n# install nginx ingress, conflict with SLB ingress\naddons {\nname = \"nginx-ingress-controller\"\n# use internet\nconfig = \"{\\\"IngressSlbNetworkType\\\":\\\"internet\",\\\"IngressSlbSpec\\\":\\\"slb.s2.small\\\"}\"\n# if use intranet, detail below.\n# config = \"{\\\"IngressSlbNetworkType\\\":\\\"intranet\",\\\"IngressSlbSpec\\\":\\\"slb.s2.small\\\"}\"\n}\n```\n"},"name":{"type":"string","description":"Name of the ACK add-on. The name must match one of the names returned by [DescribeAddons](https://help.aliyun.com/document_detail/171524.html).\n"},"version":{"type":"string","description":"It specifies the version of the component.\n"}},"type":"object"},"alicloud:cs/EdgeKubernetesCertificateAuthority:EdgeKubernetesCertificateAuthority":{"properties":{"clientCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-cert.pem) for replace it.\n"},"clientKey":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_key attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-key.pem) for replace it.\n"},"clusterCert":{"type":"string","description":"The base64 encoded cluster certificate data required to communicate with your cluster. Add this to the certificate-authority-data section of the kubeconfig file for your cluster.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clientCert","clientKey","clusterCert"]}}},"alicloud:cs/EdgeKubernetesConnections:EdgeKubernetesConnections":{"properties":{"apiServerInternet":{"type":"string","description":"API Server Internet endpoint.\n"},"apiServerIntranet":{"type":"string","description":"API Server Intranet endpoint.\n"},"masterPublicIp":{"type":"string","description":"Master node SSH IP address.\n"},"serviceDomain":{"type":"string","description":"Service Access Domain.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["apiServerInternet","apiServerIntranet","masterPublicIp","serviceDomain"]}}},"alicloud:cs/EdgeKubernetesLogConfig:EdgeKubernetesLogConfig":{"properties":{"project":{"type":"string","description":"Log Service project name, cluster logs will output to this project.\n"},"type":{"type":"string","description":"Type of collecting logs, only `SLS` are supported currently.\n"}},"type":"object","required":["type"]},"alicloud:cs/EdgeKubernetesRuntime:EdgeKubernetesRuntime":{"properties":{"name":{"type":"string","description":"The name of the runtime. Supported runtimes can be queried by data source alicloud_cs_kubernetes_version.\n"},"version":{"type":"string","description":"The version of the runtime.\n\nThe following example is the definition of runtime block:\n\n```\nruntime = {\nname = \"containerd\"\nversion = \"1.6.28\"\n}\n```\n"}},"type":"object"},"alicloud:cs/EdgeKubernetesWorkerDataDisk:EdgeKubernetesWorkerDataDisk":{"properties":{"autoSnapshotPolicyId":{"type":"string","description":"Worker node data disk auto snapshot policy.\n"},"category":{"type":"string","description":"The type of the data disks. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n"},"device":{"type":"string","description":"The device of the data disks.\n"},"encrypted":{"type":"string","description":"Specifies whether to encrypt data disks. Valid values: true and false. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"kmsKeyId":{"type":"string","description":"The id of the kms key.\n"},"name":{"type":"string","description":"The name of the data disks.\n"},"performanceLevel":{"type":"string","description":"Worker node data disk performance level, when \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e values \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, the optional values are `PL0`, `PL1`, `PL2` or `PL3`, but the specific performance level is related to the disk capacity. For more information, see [Enhanced SSDs](https://www.alibabacloud.com/help/doc-detail/122389.htm). Default is `PL1`.\n"},"size":{"type":"string","description":"The size of a data disk, at least 40. Unit: GiB.\n"},"snapshotId":{"type":"string","description":"The id of snapshot.\n"}},"type":"object"},"alicloud:cs/EdgeKubernetesWorkerNode:EdgeKubernetesWorkerNode":{"properties":{"id":{"type":"string","description":"ID of the node.\n"},"name":{"type":"string","description":"The kubernetes cluster's name. It is unique in one Alicloud account.\n"},"privateIp":{"type":"string","description":"The private IP address of node.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","name","privateIp"]}}},"alicloud:cs/KubernetesAddon:KubernetesAddon":{"properties":{"config":{"type":"string","description":"The ACK add-on configurations. For more config information, see cs_kubernetes_addon_metadata.\n"},"disabled":{"type":"boolean","description":"Disables the automatic installation of a component. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\nThe following example is the definition of addons block, The type of this field is list:\n\n```\n# install nginx ingress, conflict with SLB ingress\naddons {\nname = \"nginx-ingress-controller\"\n# use internet\nconfig = \"{\\\"IngressSlbNetworkType\\\":\\\"internet\",\\\"IngressSlbSpec\\\":\\\"slb.s2.small\\\"}\"\n# if use intranet, detail below.\n# config = \"{\\\"IngressSlbNetworkType\\\":\\\"intranet\",\\\"IngressSlbSpec\\\":\\\"slb.s2.small\\\"}\"\n}\n```\n"},"name":{"type":"string","description":"Name of the ACK add-on. The name must match one of the names returned by [DescribeAddons](https://help.aliyun.com/document_detail/171524.html).\n"},"version":{"type":"string","description":"The version of the component.\n"}},"type":"object"},"alicloud:cs/KubernetesAutoscalerNodepool:KubernetesAutoscalerNodepool":{"properties":{"id":{"type":"string","description":"The scaling group id of the groups configured for cluster-autoscaler.\n"},"labels":{"type":"string","description":"The labels for the nodes in scaling group.\n"},"taints":{"type":"string","description":"The taints for the nodes in scaling group.\n"}},"type":"object"},"alicloud:cs/KubernetesCertificateAuthority:KubernetesCertificateAuthority":{"properties":{"clientCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-cert.pem) for replace it.\n"},"clientKey":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_key attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-key.pem) for replace it.\n"},"clusterCert":{"type":"string","description":"The base64 encoded cluster certificate data required to communicate with your cluster. Add this to the certificate-authority-data section of the kubeconfig file for your cluster.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clientCert","clientKey","clusterCert"]}}},"alicloud:cs/KubernetesConnections:KubernetesConnections":{"properties":{"apiServerInternet":{"type":"string","description":"API Server Internet endpoint.\n"},"apiServerIntranet":{"type":"string","description":"API Server Intranet endpoint.\n"},"masterPublicIp":{"type":"string","description":"Master node SSH IP address.\n"},"serviceDomain":{"type":"string","description":"Service Access Domain.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["apiServerInternet","apiServerIntranet","masterPublicIp","serviceDomain"]}}},"alicloud:cs/KubernetesDeleteOption:KubernetesDeleteOption":{"properties":{"deleteMode":{"type":"string","description":"The deletion mode of the cluster. Different resources may have different default behavior, see \u003cspan pulumi-lang-nodejs=\"`resourceType`\" pulumi-lang-dotnet=\"`ResourceType`\" pulumi-lang-go=\"`resourceType`\" pulumi-lang-python=\"`resource_type`\" pulumi-lang-yaml=\"`resourceType`\" pulumi-lang-java=\"`resourceType`\"\u003e`resource_type`\u003c/span\u003e for details. Valid values:\n"},"resourceType":{"type":"string","description":"The type of resources that are created by cluster. Valid values:\n- `SLB`: SLB resources created by the Nginx Ingress Service, default behavior is to delete, option to retain is available.\n- `ALB`: ALB resources created by the ALB Ingress Controller, default behavior is to retain, option to delete is available.\n- `SLS_Data`: SLS Project used by the cluster logging feature, default behavior is to retain, option to delete is available.\n- `SLS_ControlPlane`: SLS Project used for the managed cluster control plane logs, default behavior is to retain, option to delete is available.\n\n```\n...\n// Specify delete_options as below when deleting cluster\n// delete SLB resources created by the Nginx Ingress Service\ndelete_options {\ndelete_mode = \"delete\"\nresource_type = \"SLB\"\n}\n// delete ALB resources created by the ALB Ingress Controller\ndelete_options {\ndelete_mode = \"delete\"\nresource_type = \"ALB\"\n}\n// delete SLS Project used by the cluster logging feature\ndelete_options {\ndelete_mode = \"delete\"\nresource_type = \"SLS_Data\"\n}\n// delete SLS Project used for the managed cluster control plane logs\ndelete_options {\ndelete_mode = \"delete\"\nresource_type = \"SLS_ControlPlane\"\n}\n```\n"}},"type":"object"},"alicloud:cs/KubernetesMasterNode:KubernetesMasterNode":{"properties":{"id":{"type":"string","description":"ID of the node.\n"},"name":{"type":"string","description":"The kubernetes cluster's name. It is unique in one Alicloud account.\n"},"privateIp":{"type":"string","description":"The private IP address of node.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","name","privateIp"]}}},"alicloud:cs/KubernetesPermissionPermission:KubernetesPermissionPermission":{"properties":{"cluster":{"type":"string","description":"The ID of the cluster that you want to manage, When \u003cspan pulumi-lang-nodejs=\"`roleType`\" pulumi-lang-dotnet=\"`RoleType`\" pulumi-lang-go=\"`roleType`\" pulumi-lang-python=\"`role_type`\" pulumi-lang-yaml=\"`roleType`\" pulumi-lang-java=\"`roleType`\"\u003e`role_type`\u003c/span\u003e value is `all-clusters`, the value of \u003cspan pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\"\u003e`cluster`\u003c/span\u003e must be `\"\"`.\n"},"isCustom":{"type":"boolean","description":"Specifies whether to perform a custom authorization. To perform a custom authorization, the value of \u003cspan pulumi-lang-nodejs=\"`isCustom`\" pulumi-lang-dotnet=\"`IsCustom`\" pulumi-lang-go=\"`isCustom`\" pulumi-lang-python=\"`is_custom`\" pulumi-lang-yaml=\"`isCustom`\" pulumi-lang-java=\"`isCustom`\"\u003e`is_custom`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, and set \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e to a custom cluster role.\n"},"isRamRole":{"type":"boolean","description":"Specifies whether the permissions are granted to a RAM role. When \u003cspan pulumi-lang-nodejs=\"`uid`\" pulumi-lang-dotnet=\"`Uid`\" pulumi-lang-go=\"`uid`\" pulumi-lang-python=\"`uid`\" pulumi-lang-yaml=\"`uid`\" pulumi-lang-java=\"`uid`\"\u003e`uid`\u003c/span\u003e is ram role id, the value of \u003cspan pulumi-lang-nodejs=\"`isRamRole`\" pulumi-lang-dotnet=\"`IsRamRole`\" pulumi-lang-go=\"`isRamRole`\" pulumi-lang-python=\"`is_ram_role`\" pulumi-lang-yaml=\"`isRamRole`\" pulumi-lang-java=\"`isRamRole`\"\u003e`is_ram_role`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"namespace":{"type":"string","description":"The namespace to which the permissions are scoped. This parameter is required only if you set\u003cspan pulumi-lang-nodejs=\" roleType \" pulumi-lang-dotnet=\" RoleType \" pulumi-lang-go=\" roleType \" pulumi-lang-python=\" role_type \" pulumi-lang-yaml=\" roleType \" pulumi-lang-java=\" roleType \"\u003e role_type \u003c/span\u003eto namespace.\n"},"roleName":{"type":"string","description":"Specifies the predefined role that you want to assign. Valid values \u003cspan pulumi-lang-nodejs=\"`admin`\" pulumi-lang-dotnet=\"`Admin`\" pulumi-lang-go=\"`admin`\" pulumi-lang-python=\"`admin`\" pulumi-lang-yaml=\"`admin`\" pulumi-lang-java=\"`admin`\"\u003e`admin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ops`\" pulumi-lang-dotnet=\"`Ops`\" pulumi-lang-go=\"`ops`\" pulumi-lang-python=\"`ops`\" pulumi-lang-yaml=\"`ops`\" pulumi-lang-java=\"`ops`\"\u003e`ops`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dev`\" pulumi-lang-dotnet=\"`Dev`\" pulumi-lang-go=\"`dev`\" pulumi-lang-python=\"`dev`\" pulumi-lang-yaml=\"`dev`\" pulumi-lang-java=\"`dev`\"\u003e`dev`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`restricted`\" pulumi-lang-dotnet=\"`Restricted`\" pulumi-lang-go=\"`restricted`\" pulumi-lang-python=\"`restricted`\" pulumi-lang-yaml=\"`restricted`\" pulumi-lang-java=\"`restricted`\"\u003e`restricted`\u003c/span\u003e and the custom cluster roles.\n"},"roleType":{"type":"string","description":"The authorization type. Valid values \u003cspan pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\"\u003e`cluster`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`namespace`\" pulumi-lang-dotnet=\"`Namespace`\" pulumi-lang-go=\"`namespace`\" pulumi-lang-python=\"`namespace`\" pulumi-lang-yaml=\"`namespace`\" pulumi-lang-java=\"`namespace`\"\u003e`namespace`\u003c/span\u003e and `all-clusters`.\n"}},"type":"object","required":["cluster","roleName","roleType"]},"alicloud:cs/KubernetesRuntime:KubernetesRuntime":{"properties":{"name":{"type":"string","description":"The name of the runtime. Supported runtimes can be queried by data source alicloud_cs_kubernetes_version.\n"},"version":{"type":"string","description":"The version of the runtime.\n\nThe following example is the definition of runtime block:\n\n```\nruntime = {\nname = \"containerd\"\nversion = \"1.6.28\"\n}\n```\n"}},"type":"object"},"alicloud:cs/ManagedKubernetesAddon:ManagedKubernetesAddon":{"properties":{"config":{"type":"string","description":"If this parameter is left empty, no configurations are required. For more config information, see cs_kubernetes_addon_metadata.\n"},"disabled":{"type":"boolean","description":"It specifies whether to disable automatic installation. \n\nIt is a new field since 1.75.0. You can specific network plugin, log component,ingress component and so on.\n\nYou can get more information about addons on ACK web console. When you create a ACK cluster. You can get openapi-spec before creating the cluster on submission page.\n\n`logtail-ds` - You can specify `IngressDashboardEnabled` and \u003cspan pulumi-lang-nodejs=\"`slsProjectName`\" pulumi-lang-dotnet=\"`SlsProjectName`\" pulumi-lang-go=\"`slsProjectName`\" pulumi-lang-python=\"`sls_project_name`\" pulumi-lang-yaml=\"`slsProjectName`\" pulumi-lang-java=\"`slsProjectName`\"\u003e`sls_project_name`\u003c/span\u003e in config. If you switch on `IngressDashboardEnabled` and \u003cspan pulumi-lang-nodejs=\"`slsProjectName`\" pulumi-lang-dotnet=\"`SlsProjectName`\" pulumi-lang-go=\"`slsProjectName`\" pulumi-lang-python=\"`sls_project_name`\" pulumi-lang-yaml=\"`slsProjectName`\" pulumi-lang-java=\"`slsProjectName`\"\u003e`sls_project_name`\u003c/span\u003e,then logtail-ds would use \u003cspan pulumi-lang-nodejs=\"`slsProjectName`\" pulumi-lang-dotnet=\"`SlsProjectName`\" pulumi-lang-go=\"`slsProjectName`\" pulumi-lang-python=\"`sls_project_name`\" pulumi-lang-yaml=\"`slsProjectName`\" pulumi-lang-java=\"`slsProjectName`\"\u003e`sls_project_name`\u003c/span\u003e as default log store.\n\n`nginx-ingress-controller` - You can specific `IngressSlbNetworkType` in config. Options: internet|intranet.\n\nThe `main.tf`:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst k8s = new alicloud.cs.ManagedKubernetes(\"k8s\", {addons: Object.entries(clusterAddons).map(([k, v]) =\u003e ({key: k, value: v})).map(entry =\u003e ({\n    name: std.lookup({\n        map: entry.value,\n        key: \"name\",\n        \"default\": clusterAddons,\n    }).then(invoke =\u003e invoke.result),\n    config: std.lookup({\n        map: entry.value,\n        key: \"config\",\n        \"default\": clusterAddons,\n    }).then(invoke =\u003e invoke.result),\n    version: std.lookup({\n        map: entry.value,\n        key: \"version\",\n        \"default\": clusterAddons,\n    }).then(invoke =\u003e invoke.result),\n    disabled: std.lookup({\n        map: entry.value,\n        key: \"disabled\",\n        \"default\": clusterAddons,\n    }).then(invoke =\u003e invoke.result),\n}))});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nk8s = alicloud.cs.ManagedKubernetes(\"k8s\", addons=[{\n    \"name\": std.lookup(map=entry[\"value\"],\n        key=\"name\",\n        default=cluster_addons).result,\n    \"config\": std.lookup(map=entry[\"value\"],\n        key=\"config\",\n        default=cluster_addons).result,\n    \"version\": std.lookup(map=entry[\"value\"],\n        key=\"version\",\n        default=cluster_addons).result,\n    \"disabled\": std.lookup(map=entry[\"value\"],\n        key=\"disabled\",\n        default=cluster_addons).result,\n} for entry in [{\"key\": k, \"value\": v} for k, v in cluster_addons.items()]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var k8s = new AliCloud.CS.ManagedKubernetes(\"k8s\", new()\n    {\n        Addons = .Select(entry =\u003e \n        {\n            return new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = Std.Lookup.Invoke(new()\n                {\n                    Map = entry.Value,\n                    Key = \"name\",\n                    Default = clusterAddons,\n                }).Apply(invoke =\u003e invoke.Result),\n                Config = Std.Lookup.Invoke(new()\n                {\n                    Map = entry.Value,\n                    Key = \"config\",\n                    Default = clusterAddons,\n                }).Apply(invoke =\u003e invoke.Result),\n                Version = Std.Lookup.Invoke(new()\n                {\n                    Map = entry.Value,\n                    Key = \"version\",\n                    Default = clusterAddons,\n                }).Apply(invoke =\u003e invoke.Result),\n                Disabled = Std.Lookup.Invoke(new()\n                {\n                    Map = entry.Value,\n                    Key = \"disabled\",\n                    Default = clusterAddons,\n                }).Apply(invoke =\u003e invoke.Result),\n            };\n        }).ToList(),\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nThe `varibales.tf`:\n\n```\n# Network-flannel is required, Conflicts With Network-terway\nvariable \"cluster_addons\" {\ndescription = \"Addon components in kubernetes cluster\"\n\ntype = list(object({\nname      = string\nconfig    = string\n}))\n\ndefault = [\n{\n\"name\"     = \"flannel\",\n\"config\"   = \"\",\n}\n]\n}\n\n# Network-terway is required, Conflicts With Network-flannel\nvariable \"cluster_addons\" {\ntype = list(object({\nname      = string\nconfig    = string\n}))\n\ndefault = [\n{\n\"name\"     = \"terway-eniip\",\n\"config\"   = \"\",\n}\n]\n}\n\n# Storage-csi is required, Conflicts With Storage-flexvolume\nvariable \"cluster_addons\" {\ntype = list(object({\nname      = string\nconfig    = string\n}))\n\ndefault = [\n{\n\"name\"     = \"csi-plugin\",\n\"config\"   = \"\",\n},\n{\n\"name\"     = \"csi-provisioner\",\n\"config\"   = \"\",\n}\n]\n}\n\n# Storage-flexvolume is required, Conflicts With Storage-csi\nvariable \"cluster_addons\" {\ntype = list(object({\nname      = string\nconfig    = string\n}))\ndefault = [\n{\n\"name\"     = \"flexvolume\",\n\"config\"   = \"\",\n}\n]\n}\n\n# Log, Optional\nvariable \"cluster_addons\" {\ntype = list(object({\nname      = string\nconfig    = string\n}))\ndefault = [\n{\n\"name\"     = \"logtail-ds\",\n\"config\"   = \"{\\\"IngressDashboardEnabled\\\":\\\"true\\\",\\\"sls_project_name\\\":\\\"your-sls-project-name\\\"}\",\n}\n]\n}\n\n# Ingress,Optional\nvariable \"cluster_addons\" {\ntype = list(object({\nname      = string\nconfig    = string\n}))\n\ndefault = [\n{\n\"name\"     = \"nginx-ingress-controller\",\n\"config\"   = \"{\\\"IngressSlbNetworkType\\\":\\\"internet\\\"}\",\n}\n]\n}\n\n# Ingress-Disable, Optional\nvariable \"cluster_addons\" {\ntype = list(object({\nname      = string\nconfig    = string\ndisabled  = bool\n}))\n\ndefault = [\n{\n\"name\"     = \"nginx-ingress-controller\",\n\"config\"   = \"\",\n\"disabled\": true,\n}\n]\n\n# Prometheus, Optional.\nvariable \"cluster_addons\" {\ntype = list(object({\nname      = string\nconfig    = string\n}))\n\ndefault = [\n{\n\"name\"     = \"arms-prometheus\",\n\"config\"   = \"\",\n}\n]\n}\n\n# Event Center, Optional.\nvariable \"cluster_addons\" {\ntype = list(object({\nname      = string\nconfig    = string\n}))\ndefault = [\n{\n\"name\"     = \"ack-node-problem-detector\",\n\"config\"   = \"{\\\"sls_project_name\\\":\\\"\\\"}\",\n}\n]\n}\n# ACK default alert, Optional.\nvariable \"cluster_addons\" {\ntype = list(object({\nname      = string\nconfig    = string\n}))\ndefault = [\n{\n\"name\"     = \"alicloud-monitor-controller\",\n\"config\"   = \"{\\\"group_contact_ids\\\":\\\"[159]\\\"}\",\n}\n]\n}\n```\n"},"name":{"type":"string","description":"This parameter specifies the name of the component.\n"},"version":{"type":"string","description":"It specifies the version of the component.\n"}},"type":"object"},"alicloud:cs/ManagedKubernetesAuditLogConfig:ManagedKubernetesAuditLogConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable audit logging. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"slsProjectName":{"type":"string","description":"The SLS project to which the Logstore storing the cluster audit logs belongs.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled","slsProjectName"]}}},"alicloud:cs/ManagedKubernetesAutoMode:ManagedKubernetesAutoMode":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable auto mode. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Only ACK managed Pro clusters support Auto Mode.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:cs/ManagedKubernetesCertificateAuthority:ManagedKubernetesCertificateAuthority":{"properties":{"clientCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-cert.pem) for replace it.\n"},"clientKey":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_key attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-key.pem) for replace it.\n"},"clusterCert":{"type":"string","description":"The base64 encoded cluster certificate data required to communicate with your cluster. Add this to the certificate-authority-data section of the kubeconfig file for your cluster.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clientCert","clientKey","clusterCert"]}}},"alicloud:cs/ManagedKubernetesConnections:ManagedKubernetesConnections":{"properties":{"apiServerInternet":{"type":"string","description":"API Server Internet endpoint.\n"},"apiServerIntranet":{"type":"string","description":"API Server Intranet endpoint.\n"},"masterPublicIp":{"type":"string","description":"Master node SSH IP address.\n"},"serviceDomain":{"type":"string","description":"Service Access Domain.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["apiServerInternet","apiServerIntranet","masterPublicIp","serviceDomain"]}}},"alicloud:cs/ManagedKubernetesDeleteOption:ManagedKubernetesDeleteOption":{"properties":{"deleteMode":{"type":"string","description":"The deletion mode of the cluster. Different resources may have different default behavior, see \u003cspan pulumi-lang-nodejs=\"`resourceType`\" pulumi-lang-dotnet=\"`ResourceType`\" pulumi-lang-go=\"`resourceType`\" pulumi-lang-python=\"`resource_type`\" pulumi-lang-yaml=\"`resourceType`\" pulumi-lang-java=\"`resourceType`\"\u003e`resource_type`\u003c/span\u003e for details. Valid values:\n"},"resourceType":{"type":"string","description":"The type of resources that are created by cluster. Valid values:\n- `SLB`: SLB resources created by the Nginx Ingress Service, default behavior is to delete, option to retain is available.\n- `ALB`: ALB resources created by the ALB Ingress Controller, default behavior is to retain, option to delete is available.\n- `SLS_Data`: SLS Project used by the cluster logging feature, default behavior is to retain, option to delete is available.\n- `SLS_ControlPlane`: SLS Project used for the managed cluster control plane logs, default behavior is to retain, option to delete is available.\n\n```\n...\n// Specify delete_options as below when deleting cluster\n// delete SLB resources created by the Nginx Ingress Service\ndelete_options {\ndelete_mode = \"delete\"\nresource_type = \"SLB\"\n}\n// delete ALB resources created by the ALB Ingress Controller\ndelete_options {\ndelete_mode = \"delete\"\nresource_type = \"ALB\"\n}\n// delete SLS Project used by the cluster logging feature\ndelete_options {\ndelete_mode = \"delete\"\nresource_type = \"SLS_Data\"\n}\n// delete SLS Project used for the managed cluster control plane logs\ndelete_options {\ndelete_mode = \"delete\"\nresource_type = \"SLS_ControlPlane\"\n}\n```\n"}},"type":"object"},"alicloud:cs/ManagedKubernetesMaintenanceWindow:ManagedKubernetesMaintenanceWindow":{"properties":{"duration":{"type":"string","description":"The maintenance time, values range from 1 to 24,unit is hour. For example: \"3h\".\n"},"enable":{"type":"boolean","description":"Whether to open the maintenance window. The following parameters take effect only `enable = true`.\n"},"maintenanceTime":{"type":"string","description":"Initial maintenance time, RFC3339 format. For example: \"2024-10-15T12:31:00.000+08:00\".\n"},"weeklyPeriod":{"type":"string","description":"Maintenance cycle, you can set the values from Monday to Sunday, separated by commas when the values are multiple. The default is Thursday.\n\nfor example:\n```\nmaintenance_window {\nenable            = true\nmaintenance_time  = \"2024-10-15T12:31:00.000+08:00\"\nduration          = \"3h\"\nweekly_period     = \"Monday,Friday\"\n}\n```\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["duration","enable","maintenanceTime","weeklyPeriod"]}}},"alicloud:cs/ManagedKubernetesOperationPolicy:ManagedKubernetesOperationPolicy":{"properties":{"clusterAutoUpgrade":{"$ref":"#/types/alicloud:cs/ManagedKubernetesOperationPolicyClusterAutoUpgrade:ManagedKubernetesOperationPolicyClusterAutoUpgrade","description":"Automatic cluster upgrade policy. See \u003cspan pulumi-lang-nodejs=\"`clusterAutoUpgrade`\" pulumi-lang-dotnet=\"`ClusterAutoUpgrade`\" pulumi-lang-go=\"`clusterAutoUpgrade`\" pulumi-lang-python=\"`cluster_auto_upgrade`\" pulumi-lang-yaml=\"`clusterAutoUpgrade`\" pulumi-lang-java=\"`clusterAutoUpgrade`\"\u003e`cluster_auto_upgrade`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:cs/ManagedKubernetesOperationPolicyClusterAutoUpgrade:ManagedKubernetesOperationPolicyClusterAutoUpgrade":{"properties":{"channel":{"type":"string","description":"The automatic cluster upgrade channel. Valid values: \u003cspan pulumi-lang-nodejs=\"`patch`\" pulumi-lang-dotnet=\"`Patch`\" pulumi-lang-go=\"`patch`\" pulumi-lang-python=\"`patch`\" pulumi-lang-yaml=\"`patch`\" pulumi-lang-java=\"`patch`\"\u003e`patch`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stable`\" pulumi-lang-dotnet=\"`Stable`\" pulumi-lang-go=\"`stable`\" pulumi-lang-python=\"`stable`\" pulumi-lang-yaml=\"`stable`\" pulumi-lang-java=\"`stable`\"\u003e`stable`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rapid`\" pulumi-lang-dotnet=\"`Rapid`\" pulumi-lang-go=\"`rapid`\" pulumi-lang-python=\"`rapid`\" pulumi-lang-yaml=\"`rapid`\" pulumi-lang-java=\"`rapid`\"\u003e`rapid`\u003c/span\u003e.\n\nfor example:\n```\noperation_policy {\ncluster_auto_upgrade {\nenabled = true\nchannel = \"stable\"\n}\n}\n```\n"},"enabled":{"type":"boolean","description":"Whether the RRSA feature has been enabled.\n"}},"type":"object"},"alicloud:cs/ManagedKubernetesRrsaMetadata:ManagedKubernetesRrsaMetadata":{"properties":{"enabled":{"type":"boolean","description":"Whether the RRSA feature has been enabled.\n"},"ramOidcProviderArn":{"type":"string","description":"The arn of OIDC provider that was registered in RAM.\n"},"ramOidcProviderName":{"type":"string","description":"The name of OIDC Provider that was registered in RAM.\n"},"rrsaOidcIssuerUrl":{"type":"string","description":"The issuer URL of RRSA OIDC Token.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled","ramOidcProviderArn","ramOidcProviderName","rrsaOidcIssuerUrl"]}}},"alicloud:cs/ManagedKubernetesUpgradePolicy:ManagedKubernetesUpgradePolicy":{"properties":{"controlPlaneOnly":{"type":"boolean","description":"Whether to upgrade only the control plane without upgrading worker nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, only the cluster control plane components will be upgraded, and worker nodes will remain at their current version. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\nfor example:\n```\n# Upgrade cluster version with control plane only\nversion = \"1.32.1-aliyun.1\"\n\nupgrade_policy {\ncontrol_plane_only = true\n}\n```\n\n\u003e **NOTE:** After the upgrade completes, you may remove the \u003cspan pulumi-lang-nodejs=\"`upgradePolicy`\" pulumi-lang-dotnet=\"`UpgradePolicy`\" pulumi-lang-go=\"`upgradePolicy`\" pulumi-lang-python=\"`upgrade_policy`\" pulumi-lang-yaml=\"`upgradePolicy`\" pulumi-lang-java=\"`upgradePolicy`\"\u003e`upgrade_policy`\u003c/span\u003e block from your configuration to prevent unintended re-upgrades on subsequent applies.\n"}},"type":"object"},"alicloud:cs/NodePoolAutoMode:NodePoolAutoMode":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable auto mode. Valid values:\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:cs/NodePoolDataDisk:NodePoolDataDisk":{"properties":{"autoFormat":{"type":"string","description":"Whether to automatically mount the data disk. Valid values: true and false.\n"},"autoSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy that you want to apply to the system disk.\n"},"burstingEnabled":{"type":"boolean","description":"Whether the data disk is enabled with Burst (performance Burst). This is configured when the disk type is cloud_auto.\n"},"category":{"type":"string","description":"The type of data disk. Default value: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. Valid values:\n"},"device":{"type":"string","description":"The mount target of data disk N. Valid values of N: 1 to 16. If you do not specify this parameter, the system automatically assigns a mount target when Auto Scaling creates ECS instances. The name of the mount target ranges from /dev/xvdb to /dev/xvdz.\n"},"encrypted":{"type":"string","description":"Specifies whether to encrypt data disks. Valid values: true and false. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"fileSystem":{"type":"string","description":"The type of the mounted file system. Works when\u003cspan pulumi-lang-nodejs=\" autoFormat \" pulumi-lang-dotnet=\" AutoFormat \" pulumi-lang-go=\" autoFormat \" pulumi-lang-python=\" auto_format \" pulumi-lang-yaml=\" autoFormat \" pulumi-lang-java=\" autoFormat \"\u003e auto_format \u003c/span\u003eis true. Optional value: \u003cspan pulumi-lang-nodejs=\"`ext4`\" pulumi-lang-dotnet=\"`Ext4`\" pulumi-lang-go=\"`ext4`\" pulumi-lang-python=\"`ext4`\" pulumi-lang-yaml=\"`ext4`\" pulumi-lang-java=\"`ext4`\"\u003e`ext4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xfs`\" pulumi-lang-dotnet=\"`Xfs`\" pulumi-lang-go=\"`xfs`\" pulumi-lang-python=\"`xfs`\" pulumi-lang-yaml=\"`xfs`\" pulumi-lang-java=\"`xfs`\"\u003e`xfs`\u003c/span\u003e.\n"},"kmsKeyId":{"type":"string","description":"The kms key id used to encrypt the data disk. It takes effect when \u003cspan pulumi-lang-nodejs=\"`encrypted`\" pulumi-lang-dotnet=\"`Encrypted`\" pulumi-lang-go=\"`encrypted`\" pulumi-lang-python=\"`encrypted`\" pulumi-lang-yaml=\"`encrypted`\" pulumi-lang-java=\"`encrypted`\"\u003e`encrypted`\u003c/span\u003e is true.\n"},"mountTarget":{"type":"string","description":"The Mount path. Works when\u003cspan pulumi-lang-nodejs=\" autoFormat \" pulumi-lang-dotnet=\" AutoFormat \" pulumi-lang-go=\" autoFormat \" pulumi-lang-python=\" auto_format \" pulumi-lang-yaml=\" autoFormat \" pulumi-lang-java=\" autoFormat \"\u003e auto_format \u003c/span\u003eis true.\n"},"name":{"type":"string","description":"The length is 2~128 English or Chinese characters. It must start with an uppercase or lowr letter or a Chinese character and cannot start with http:// or https. Can contain numbers, colons (:), underscores (_), or dashes (-). It will be overwritten if\u003cspan pulumi-lang-nodejs=\" autoFormat \" pulumi-lang-dotnet=\" AutoFormat \" pulumi-lang-go=\" autoFormat \" pulumi-lang-python=\" auto_format \" pulumi-lang-yaml=\" autoFormat \" pulumi-lang-java=\" autoFormat \"\u003e auto_format \u003c/span\u003eis set.\n"},"performanceLevel":{"type":"string","description":"Worker node data disk performance level, when \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e values \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, the optional values are `PL0`, `PL1`, `PL2` or `PL3`, but the specific performance level is related to the disk capacity. For more information, see [Enhanced SSDs](https://www.alibabacloud.com/help/doc-detail/122389.htm). Default is `PL1`.\n"},"provisionedIops":{"type":"integer","description":"The read/write IOPS preconfigured for the data disk, which is configured when the disk type is cloud_auto.\n"},"size":{"type":"integer","description":"The size of a data disk, Its valid value range [40~32768] in GB. Default to \u003cspan pulumi-lang-nodejs=\"`40`\" pulumi-lang-dotnet=\"`40`\" pulumi-lang-go=\"`40`\" pulumi-lang-python=\"`40`\" pulumi-lang-yaml=\"`40`\" pulumi-lang-java=\"`40`\"\u003e`40`\u003c/span\u003e.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot that you want to use to create data disk N. Valid values of N: 1 to 16. If you specify this parameter, DataDisk.N.Size is ignored. The size of the disk is the same as the size of the specified snapshot. If you specify a snapshot that is created on or before July 15, 2013, the operation fails and InvalidSnapshot.TooOld is returned.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name"]}}},"alicloud:cs/NodePoolEfloNodeGroup:NodePoolEfloNodeGroup":{"properties":{"clusterId":{"type":"string","description":"The ID of the associated Lingjun cluster is required when creating a Lingjun node pool.\n"},"groupId":{"type":"string","description":"When creating a Lingjun node pool, you need the Lingjun group ID of the associated Lingjun cluster.\n"}},"type":"object"},"alicloud:cs/NodePoolInstanceMetadataOptions:NodePoolInstanceMetadataOptions":{"properties":{"httpTokens":{"type":"string","description":"ECS instance metadata access mode configuration. Value range:\n\n- 'optional': Compatible with both normal mode and reinforced mode.\n- 'required': Enables only hardening mode (IMDSv2). When enabled, applications in the node cannot access the ECS instance metadata in normal mode. Ensure that the component and operating system versions in the cluster meet the minimum version requirements. For more information, see [accessing ECS instance metadata in hardened mode only](https://www.alibabacloud.com/help/ack/ack-managed-and-ack-dedicated/security-and-compliance/secure-access-to-ecs-instance-metadata).\n\nDefault value: 'optional '.\n\nThis parameter is only supported for ACK-managed clusters of 1.28 or later versions.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:cs/NodePoolInstancePattern:NodePoolInstancePattern":{"properties":{"cores":{"type":"integer","description":"The number of vCPU cores of the instance type. Example value: 8.\n"},"cpuArchitectures":{"type":"array","items":{"type":"string"},"description":"The CPU architecture of the instance. Value range:\n- X86\n- ARM\n"},"excludedInstanceTypes":{"type":"array","items":{"type":"string"},"description":"Instance specifications to be excluded. You can exclude individual specifications or entire specification families by using the wildcard character (*). For example:\n- ecs.c6.large: indicates that the ecs.c6.large instance type is excluded.\n- ecs.c6. *: indicates that the instance specification of the entire c6 specification family is excluded.\n"},"instanceCategories":{"type":"array","items":{"type":"string"},"description":"Instance classification. Value range:\n- General-purpose: Universal.\n- Compute-optimized: Compute type.\n- Memory-optimized: Memory type.\n- Big data: Big data type.\n- Local SSDs: Local SSD type.\n- High Clock Speed: High frequency type.\n- Enhanced: Enhanced.\n- Shared: Shared.\n- ECS Bare Metal: elastic Bare Metal server.\n- High Performance Compute: High Performance Compute.\n"},"instanceFamilyLevel":{"type":"string","description":"Instance specification family level, value range:\n- EntryLevel: entry-level, that is, shared instance specifications. The cost is lower, but the stability of instance computing performance cannot be guaranteed. Applicable to business scenarios with low CPU usage. For more information, see Shared.\n- EnterpriseLevel: Enterprise level. Stable performance and exclusive resources, suitable for business scenarios that require high stability. For more information, see Instance Specification Family.\n"},"instanceTypeFamilies":{"type":"array","items":{"type":"string"},"description":"Specifies the instance type family. Example values:[\"ecs.g8i\",\"ecs.c8i\"]\n"},"maxCpuCores":{"type":"integer","description":"The maximum number of vCPU cores of the instance type. Example value: 8. MaxCpuCores cannot exceed 4 times of MinCpuCores.\n"},"maxMemorySize":{"type":"number","description":"The maximum memory of the instance type. Unit: GiB, example value: 8,MaxMemoryCores does not support more than 4 times MinMemoryCores.\n"},"memory":{"type":"number","description":"The memory size of the instance type, in GiB. Example value: 8.\n"},"minCpuCores":{"type":"integer","description":"The minimum number of vCPU cores of the instance type. Example value: 4. MaxCpuCores cannot exceed 4 times of MinCpuCores.\n"},"minMemorySize":{"type":"number","description":"The minimum memory of the instance type. Unit: GiB, example value: 4,MaxMemoryCores does not support more than 4 times MinMemoryCores.\n"}},"type":"object","required":["instanceFamilyLevel"]},"alicloud:cs/NodePoolKubeletConfiguration:NodePoolKubeletConfiguration":{"properties":{"allowedUnsafeSysctls":{"type":"array","items":{"type":"string"},"description":"Allowed sysctl mode whitelist.\n"},"clusterDns":{"type":"array","items":{"type":"string"},"description":"The list of IP addresses of the cluster DNS servers.\n"},"containerLogMaxFiles":{"type":"string","description":"The maximum number of log files that can exist in each container.\n"},"containerLogMaxSize":{"type":"string","description":"The maximum size that can be reached before a log file is rotated.\n"},"containerLogMaxWorkers":{"type":"string","description":"Specifies the maximum number of concurrent workers required to perform log rotation operations.\n"},"containerLogMonitorInterval":{"type":"string","description":"Specifies the duration for which container logs are monitored for log rotation.\n"},"cpuCfsQuota":{"type":"string","description":"CPU CFS quota constraint switch.\n"},"cpuCfsQuotaPeriod":{"type":"string","description":"CPU CFS quota period value.\n"},"cpuManagerPolicy":{"type":"string","description":"Same as cpuManagerPolicy. The name of the policy to use. Requires the CPUManager feature gate to be enabled. Valid value is \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`static`\" pulumi-lang-dotnet=\"`Static`\" pulumi-lang-go=\"`static`\" pulumi-lang-python=\"`static`\" pulumi-lang-yaml=\"`static`\" pulumi-lang-java=\"`static`\"\u003e`static`\u003c/span\u003e.\n"},"eventBurst":{"type":"string","description":"Same as eventBurst. The maximum size of a burst of event creations, temporarily allows event creations to burst to this number, while still not exceeding \u003cspan pulumi-lang-nodejs=\"`eventRecordQps`\" pulumi-lang-dotnet=\"`EventRecordQps`\" pulumi-lang-go=\"`eventRecordQps`\" pulumi-lang-python=\"`event_record_qps`\" pulumi-lang-yaml=\"`eventRecordQps`\" pulumi-lang-java=\"`eventRecordQps`\"\u003e`event_record_qps`\u003c/span\u003e. It is only used when \u003cspan pulumi-lang-nodejs=\"`eventRecordQps`\" pulumi-lang-dotnet=\"`EventRecordQps`\" pulumi-lang-go=\"`eventRecordQps`\" pulumi-lang-python=\"`event_record_qps`\" pulumi-lang-yaml=\"`eventRecordQps`\" pulumi-lang-java=\"`eventRecordQps`\"\u003e`event_record_qps`\u003c/span\u003e is greater than 0. Valid value is `[0-100]`.\n"},"eventRecordQps":{"type":"string","description":"Same as eventRecordQPS. The maximum event creations per second. If 0, there is no limit enforced. Valid value is `[0-50]`.\n"},"evictionHard":{"type":"object","additionalProperties":{"type":"string"},"description":"Same as evictionHard. The map of signal names to quantities that defines hard eviction thresholds. For example: `{\"memory.available\" = \"300Mi\"}`.\n"},"evictionSoft":{"type":"object","additionalProperties":{"type":"string"},"description":"Same as evictionSoft. The map of signal names to quantities that defines soft eviction thresholds. For example: `{\"memory.available\" = \"300Mi\"}`.\n"},"evictionSoftGracePeriod":{"type":"object","additionalProperties":{"type":"string"},"description":"Same as evictionSoftGracePeriod. The map of signal names to quantities that defines grace periods for each soft eviction signal. For example: `{\"memory.available\" = \"30s\"}`.\n"},"featureGates":{"type":"object","additionalProperties":{"type":"boolean"},"description":"Feature switch to enable configuration of experimental features.\n"},"imageGcHighThresholdPercent":{"type":"string","description":"If the image usage exceeds this threshold, image garbage collection will continue.\n"},"imageGcLowThresholdPercent":{"type":"string","description":"Image garbage collection is not performed when the image usage is below this threshold.\n"},"kubeApiBurst":{"type":"string","description":"Same as kubeAPIBurst. The burst to allow while talking with kubernetes api-server. Valid value is `[0-100]`.\n"},"kubeApiQps":{"type":"string","description":"Same as kubeAPIQPS. The QPS to use while talking with kubernetes api-server. Valid value is `[0-50]`.\n"},"kubeReserved":{"type":"object","additionalProperties":{"type":"string"},"description":"Same as kubeReserved. The set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for kubernetes system components. Currently, cpu, memory and local storage for root file system are supported. See [compute resources](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for more details.\n"},"maxPods":{"type":"string","description":"The maximum number of running pods.\n"},"memoryManagerPolicy":{"type":"string","description":"The policy to be used by the memory manager.\n"},"podPidsLimit":{"type":"string","description":"The maximum number of PIDs that can be used in a Pod.\n"},"readOnlyPort":{"type":"string","description":"Read-only port number.\n"},"registryBurst":{"type":"string","description":"Same as registryBurst. The maximum size of burst pulls, temporarily allows pulls to burst to this number, while still not exceeding \u003cspan pulumi-lang-nodejs=\"`registryPullQps`\" pulumi-lang-dotnet=\"`RegistryPullQps`\" pulumi-lang-go=\"`registryPullQps`\" pulumi-lang-python=\"`registry_pull_qps`\" pulumi-lang-yaml=\"`registryPullQps`\" pulumi-lang-java=\"`registryPullQps`\"\u003e`registry_pull_qps`\u003c/span\u003e. Only used if \u003cspan pulumi-lang-nodejs=\"`registryPullQps`\" pulumi-lang-dotnet=\"`RegistryPullQps`\" pulumi-lang-go=\"`registryPullQps`\" pulumi-lang-python=\"`registry_pull_qps`\" pulumi-lang-yaml=\"`registryPullQps`\" pulumi-lang-java=\"`registryPullQps`\"\u003e`registry_pull_qps`\u003c/span\u003e is greater than 0. Valid value is `[0-100]`.\n"},"registryPullQps":{"type":"string","description":"Same as registryPullQPS. The limit of registry pulls per second. Setting it to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means no limit. Valid value is `[0-50]`.\n"},"reservedMemories":{"type":"array","items":{"$ref":"#/types/alicloud:cs/NodePoolKubeletConfigurationReservedMemory:NodePoolKubeletConfigurationReservedMemory"},"description":"Reserve memory for NUMA nodes. See \u003cspan pulumi-lang-nodejs=\"`reservedMemory`\" pulumi-lang-dotnet=\"`ReservedMemory`\" pulumi-lang-go=\"`reservedMemory`\" pulumi-lang-python=\"`reserved_memory`\" pulumi-lang-yaml=\"`reservedMemory`\" pulumi-lang-java=\"`reservedMemory`\"\u003e`reserved_memory`\u003c/span\u003e below.\n"},"serializeImagePulls":{"type":"string","description":"Same as serializeImagePulls. When enabled, it tells the Kubelet to pull images one at a time. We recommend not changing the default value on nodes that run docker daemon with version \u003c 1.9 or an Aufs storage backend. Valid value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"serverTlsBootstrap":{"type":"boolean","description":"Used to enable the kubelet server certificate signing and rotation via CSR.\n"},"systemReserved":{"type":"object","additionalProperties":{"type":"string"},"description":"Same as systemReserved. The set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for non-kubernetes components. Currently, only cpu and memory are supported. See [compute resources](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for more details.\n"},"topologyManagerPolicy":{"type":"string","description":"Name of the Topology Manager policy used.\n"},"tracing":{"$ref":"#/types/alicloud:cs/NodePoolKubeletConfigurationTracing:NodePoolKubeletConfigurationTracing","description":"OpenTelemetry tracks the configuration information for client settings versioning. See \u003cspan pulumi-lang-nodejs=\"`tracing`\" pulumi-lang-dotnet=\"`Tracing`\" pulumi-lang-go=\"`tracing`\" pulumi-lang-python=\"`tracing`\" pulumi-lang-yaml=\"`tracing`\" pulumi-lang-java=\"`tracing`\"\u003e`tracing`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:cs/NodePoolKubeletConfigurationReservedMemory:NodePoolKubeletConfigurationReservedMemory":{"properties":{"limits":{"type":"object","additionalProperties":{"type":"string"},"description":"Memory resource limit.\n"},"numaNode":{"type":"integer","description":"The NUMA node.\n"}},"type":"object"},"alicloud:cs/NodePoolKubeletConfigurationTracing:NodePoolKubeletConfigurationTracing":{"properties":{"endpoint":{"type":"string","description":"The endpoint of the collector.\n"},"samplingRatePerMillion":{"type":"string","description":"Number of samples to be collected per million span.\n"}},"type":"object"},"alicloud:cs/NodePoolLabel:NodePoolLabel":{"properties":{"key":{"type":"string","description":"The label key.\n"},"value":{"type":"string","description":"The label value.\n"}},"type":"object","required":["key"]},"alicloud:cs/NodePoolManagement:NodePoolManagement":{"properties":{"autoRepair":{"type":"boolean","description":"Whether to enable automatic repair. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: Automatic repair. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: not automatically repaired.\n"},"autoRepairPolicy":{"$ref":"#/types/alicloud:cs/NodePoolManagementAutoRepairPolicy:NodePoolManagementAutoRepairPolicy","description":"Automatic repair node policy. See \u003cspan pulumi-lang-nodejs=\"`autoRepairPolicy`\" pulumi-lang-dotnet=\"`AutoRepairPolicy`\" pulumi-lang-go=\"`autoRepairPolicy`\" pulumi-lang-python=\"`auto_repair_policy`\" pulumi-lang-yaml=\"`autoRepairPolicy`\" pulumi-lang-java=\"`autoRepairPolicy`\"\u003e`auto_repair_policy`\u003c/span\u003e below.\n"},"autoUpgrade":{"type":"boolean","description":"Specifies whether to enable auto update. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: enables auto update. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: disables auto update.\n"},"autoUpgradePolicy":{"$ref":"#/types/alicloud:cs/NodePoolManagementAutoUpgradePolicy:NodePoolManagementAutoUpgradePolicy","description":"The auto update policy. See \u003cspan pulumi-lang-nodejs=\"`autoUpgradePolicy`\" pulumi-lang-dotnet=\"`AutoUpgradePolicy`\" pulumi-lang-go=\"`autoUpgradePolicy`\" pulumi-lang-python=\"`auto_upgrade_policy`\" pulumi-lang-yaml=\"`autoUpgradePolicy`\" pulumi-lang-java=\"`autoUpgradePolicy`\"\u003e`auto_upgrade_policy`\u003c/span\u003e below.\n"},"autoVulFix":{"type":"boolean","description":"Specifies whether to automatically patch CVE vulnerabilities. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoVulFixPolicy":{"$ref":"#/types/alicloud:cs/NodePoolManagementAutoVulFixPolicy:NodePoolManagementAutoVulFixPolicy","description":"The auto CVE patching policy. See \u003cspan pulumi-lang-nodejs=\"`autoVulFixPolicy`\" pulumi-lang-dotnet=\"`AutoVulFixPolicy`\" pulumi-lang-go=\"`autoVulFixPolicy`\" pulumi-lang-python=\"`auto_vul_fix_policy`\" pulumi-lang-yaml=\"`autoVulFixPolicy`\" pulumi-lang-java=\"`autoVulFixPolicy`\"\u003e`auto_vul_fix_policy`\u003c/span\u003e below.\n"},"enable":{"type":"boolean","description":"Specifies whether to enable the managed node pool feature. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: enables the managed node pool feature. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: disables the managed node pool feature. Other parameters in this section take effect only when you specify enable=true.\n"},"maxUnavailable":{"type":"integer","description":"Maximum number of unavailable nodes. Default value: 1. Value range:\\[1,1000\\].\n"},"surge":{"type":"integer","description":"Number of additional nodes. You have to specify one of surge, surge_percentage.\n","deprecationMessage":"Field 'surge' has been deprecated from provider version 1.219.0. Number of additional nodes. You have to specify one of surge, surge_percentage."},"surgePercentage":{"type":"integer","description":"Proportion of additional nodes. You have to specify one of surge, surge_percentage.\n","deprecationMessage":"Field 'surge_percentage' has been deprecated from provider version 1.219.0. Proportion of additional nodes. You have to specify one of surge, surge_percentage."}},"type":"object","language":{"nodejs":{"requiredOutputs":["autoRepair","autoRepairPolicy","autoUpgrade","autoUpgradePolicy","autoVulFix","autoVulFixPolicy"]}}},"alicloud:cs/NodePoolManagementAutoRepairPolicy:NodePoolManagementAutoRepairPolicy":{"properties":{"restartNode":{"type":"boolean","description":"Specifies whether to automatically restart nodes after patching CVE vulnerabilities. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["restartNode"]}}},"alicloud:cs/NodePoolManagementAutoUpgradePolicy:NodePoolManagementAutoUpgradePolicy":{"properties":{"autoUpgradeKubelet":{"type":"boolean","description":"Specifies whether  to automatically update the kubelet. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: yes; \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: no.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["autoUpgradeKubelet"]}}},"alicloud:cs/NodePoolManagementAutoVulFixPolicy:NodePoolManagementAutoVulFixPolicy":{"properties":{"restartNode":{"type":"boolean","description":"Specifies whether to automatically restart nodes after patching CVE vulnerabilities. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"vulLevel":{"type":"string","description":"The severity levels of vulnerabilities that is allowed to automatically patch. Multiple severity levels are separated by commas (,).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["restartNode","vulLevel"]}}},"alicloud:cs/NodePoolPrivatePoolOptions:NodePoolPrivatePoolOptions":{"properties":{"privatePoolOptionsId":{"type":"string","description":"The ID of the private node pool.\n"},"privatePoolOptionsMatchCriteria":{"type":"string","description":"The type of private node pool. This parameter specifies the type of the private pool that you want to use to create instances. A private node pool is generated when an elasticity assurance or a capacity reservation service takes effect. The system selects a private node pool to launch instances. Valid values: `Open`: specifies an open private node pool. The system selects an open private node pool to launch instances. If no matching open private node pool is available, the resources in the public node pool are used. `Target`: specifies a private node pool. The system uses the resources of the specified private node pool to launch instances. If the specified private node pool is unavailable, instances cannot be started. `None`: no private node pool is used. The resources of private node pools are not used to launch the instances.\n"}},"type":"object"},"alicloud:cs/NodePoolRollingPolicy:NodePoolRollingPolicy":{"properties":{"batchInterval":{"type":"string","description":"The upgrade interval time between batches, in minutes. This parameter only takes effect when \u003cspan pulumi-lang-nodejs=\"`pausePolicy`\" pulumi-lang-dotnet=\"`PausePolicy`\" pulumi-lang-go=\"`pausePolicy`\" pulumi-lang-python=\"`pause_policy`\" pulumi-lang-yaml=\"`pausePolicy`\" pulumi-lang-java=\"`pausePolicy`\"\u003e`pause_policy`\u003c/span\u003e is set to `NotPause`.\n"},"maxParallelism":{"type":"integer","description":"The maximum number of nodes that can be upgraded in parallel per batch when updating nodes in the node pool.\n"},"nodeNames":{"type":"array","items":{"type":"string"},"description":"Specify the list of nodes to be upgraded.\n"},"pausePolicy":{"type":"string","description":"The auto-pause policy during node upgrade. Valid values:\n- `FirstBatch`: Pause after the first batch is completed.\n- `EveryBatch`: Pause after each batch is completed.\n- `NotPause`: Do not pause during the upgrade process.\n"}},"type":"object"},"alicloud:cs/NodePoolScalingConfig:NodePoolScalingConfig":{"properties":{"eipBandwidth":{"type":"integer","description":"Peak EIP bandwidth. Its valid value range [1~500] in Mbps. It works if `is_bond_eip=true`. Default to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"eipInternetChargeType":{"type":"string","description":"EIP billing type. `PayByBandwidth`: Charged at fixed bandwidth. `PayByTraffic`: Billed as used traffic. Default: `PayByBandwidth`. It works if `is_bond_eip=true`, conflict with \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e. EIP and public network IP can only choose one.\n"},"enable":{"type":"boolean","description":"Whether to enable automatic scaling. Value:\n"},"isBondEip":{"type":"boolean","description":"Whether to bind EIP for an instance. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"maxSize":{"type":"integer","description":"Max number of instances in a auto scaling group, its valid value range [0~1000]. \u003cspan pulumi-lang-nodejs=\"`maxSize`\" pulumi-lang-dotnet=\"`MaxSize`\" pulumi-lang-go=\"`maxSize`\" pulumi-lang-python=\"`max_size`\" pulumi-lang-yaml=\"`maxSize`\" pulumi-lang-java=\"`maxSize`\"\u003e`max_size`\u003c/span\u003e has to be greater than \u003cspan pulumi-lang-nodejs=\"`minSize`\" pulumi-lang-dotnet=\"`MinSize`\" pulumi-lang-go=\"`minSize`\" pulumi-lang-python=\"`min_size`\" pulumi-lang-yaml=\"`minSize`\" pulumi-lang-java=\"`minSize`\"\u003e`min_size`\u003c/span\u003e.\n"},"minSize":{"type":"integer","description":"Min number of instances in a auto scaling group, its valid value range [0~1000].\n"},"type":{"type":"string","description":"Instance classification, not required. Vaild value: \u003cspan pulumi-lang-nodejs=\"`cpu`\" pulumi-lang-dotnet=\"`Cpu`\" pulumi-lang-go=\"`cpu`\" pulumi-lang-python=\"`cpu`\" pulumi-lang-yaml=\"`cpu`\" pulumi-lang-java=\"`cpu`\"\u003e`cpu`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gpu`\" pulumi-lang-dotnet=\"`Gpu`\" pulumi-lang-go=\"`gpu`\" pulumi-lang-python=\"`gpu`\" pulumi-lang-yaml=\"`gpu`\" pulumi-lang-java=\"`gpu`\"\u003e`gpu`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gpushare`\" pulumi-lang-dotnet=\"`Gpushare`\" pulumi-lang-go=\"`gpushare`\" pulumi-lang-python=\"`gpushare`\" pulumi-lang-yaml=\"`gpushare`\" pulumi-lang-java=\"`gpushare`\"\u003e`gpushare`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`spot`\" pulumi-lang-dotnet=\"`Spot`\" pulumi-lang-go=\"`spot`\" pulumi-lang-python=\"`spot`\" pulumi-lang-yaml=\"`spot`\" pulumi-lang-java=\"`spot`\"\u003e`spot`\u003c/span\u003e. Default: \u003cspan pulumi-lang-nodejs=\"`cpu`\" pulumi-lang-dotnet=\"`Cpu`\" pulumi-lang-go=\"`cpu`\" pulumi-lang-python=\"`cpu`\" pulumi-lang-yaml=\"`cpu`\" pulumi-lang-java=\"`cpu`\"\u003e`cpu`\u003c/span\u003e. The actual instance type is determined by \u003cspan pulumi-lang-nodejs=\"`instanceTypes`\" pulumi-lang-dotnet=\"`InstanceTypes`\" pulumi-lang-go=\"`instanceTypes`\" pulumi-lang-python=\"`instance_types`\" pulumi-lang-yaml=\"`instanceTypes`\" pulumi-lang-java=\"`instanceTypes`\"\u003e`instance_types`\u003c/span\u003e.\n"}},"type":"object"},"alicloud:cs/NodePoolSpotPriceLimit:NodePoolSpotPriceLimit":{"properties":{"instanceType":{"type":"string","description":"The type of the preemptible instance.\n"},"priceLimit":{"type":"string","description":"The maximum price of a single instance.\n"}},"type":"object"},"alicloud:cs/NodePoolTaint:NodePoolTaint":{"properties":{"effect":{"type":"string","description":"The scheduling policy.\n"},"key":{"type":"string","description":"The key of a taint.\n"},"value":{"type":"string","description":"The value of a taint.\n"}},"type":"object","required":["key"]},"alicloud:cs/NodePoolTeeConfig:NodePoolTeeConfig":{"properties":{"teeEnable":{"type":"boolean","description":"Specifies whether to enable confidential computing for the cluster.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:cs/NodePoolUpgradePolicy:NodePoolUpgradePolicy":{"properties":{"imageId":{"type":"string","description":"Node system Image ID\n"},"kubernetesVersion":{"type":"string","description":"Node Kubernetes version\n"},"runtime":{"type":"string","description":"Node runtime type\n"},"runtimeVersion":{"type":"string","description":"Node Runtime Version\n"},"useReplace":{"type":"boolean","description":"Whether to use replacement disk upgrade. Valid values:\n"}},"type":"object"},"alicloud:cs/ServerlessKubernetesAddon:ServerlessKubernetesAddon":{"properties":{"config":{"type":"string","description":"The ACK add-on configurations. For more config information, see cs_kubernetes_addon_metadata.\n"},"disabled":{"type":"boolean","description":"Disables the automatic installation of a component. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\nThe following example is the definition of addons block, The type of this field is list:\n\n```\n# install nginx ingress, conflict with ALB ingress\naddons {\nname = \"nginx-ingress-controller\"\n# use internet\nconfig = \"{\\\"IngressSlbNetworkType\\\":\\\"internet\",\\\"IngressSlbSpec\\\":\\\"slb.s2.small\\\"}\"\n# if use intranet, detail below.\n# config = \"{\\\"IngressSlbNetworkType\\\":\\\"intranet\",\\\"IngressSlbSpec\\\":\\\"slb.s2.small\\\"}\"\n}\n# install ALB ingress, conflict with nginx ingress\naddons {\nname = \"alb-ingress-controller\"\n}\n# install metric server\naddons {\nname = \"metrics-server\"\n}\n# install knative\naddons {\nname = \"knative\"\n}\n# install prometheus\naddons {\nname = \"arms-prometheus\"\n}\n```\n"},"name":{"type":"string","description":"Name of the ACK add-on. The name must match one of the names returned by [DescribeAddons](https://help.aliyun.com/document_detail/171524.html).\n"},"version":{"type":"string","description":"It specifies the version of the component.\n"}},"type":"object"},"alicloud:cs/ServerlessKubernetesDeleteOption:ServerlessKubernetesDeleteOption":{"properties":{"deleteMode":{"type":"string","description":"The deletion mode of the cluster. Different resources may have different default behavior, see \u003cspan pulumi-lang-nodejs=\"`resourceType`\" pulumi-lang-dotnet=\"`ResourceType`\" pulumi-lang-go=\"`resourceType`\" pulumi-lang-python=\"`resource_type`\" pulumi-lang-yaml=\"`resourceType`\" pulumi-lang-java=\"`resourceType`\"\u003e`resource_type`\u003c/span\u003e for details. Valid values:\n"},"resourceType":{"type":"string","description":"The type of resources that are created by cluster. Valid values:\n- `SLB`: SLB resources created by the Nginx Ingress Service, default behavior is to delete, option to retain is available.\n- `ALB`: ALB resources created by the ALB Ingress Controller, default behavior is to retain, option to delete is available.\n- `SLS_Data`: SLS Project used by the cluster logging feature, default behavior is to retain, option to delete is available.\n- `SLS_ControlPlane`: SLS Project used for the managed cluster control plane logs, default behavior is to retain, option to delete is available.\n- `PrivateZone`: PrivateZone resources created by the cluster, default behavior is to retain, option to delete is available.\n```\n...\n// Specify delete_options as below when deleting cluster\n// delete SLB resources created by the Nginx Ingress Service\ndelete_options {\ndelete_mode = \"delete\"\nresource_type = \"SLB\"\n}\n// delete ALB resources created by the ALB Ingress Controller\ndelete_options {\ndelete_mode = \"delete\"\nresource_type = \"ALB\"\n}\n// delete SLS Project used by the cluster logging feature\ndelete_options {\ndelete_mode = \"delete\"\nresource_type = \"SLS_Data\"\n}\n// delete SLS Project used for the managed cluster control plane logs\ndelete_options {\ndelete_mode = \"delete\"\nresource_type = \"SLS_ControlPlane\"\n}\n// delete PrivateZone resources created by the cluster\ndelete_options {\ndelete_mode = \"delete\"\nresource_type = \"PrivateZone\"\n}\n```\n"}},"type":"object"},"alicloud:cs/ServerlessKubernetesMaintenanceWindow:ServerlessKubernetesMaintenanceWindow":{"properties":{"duration":{"type":"string","description":"The maintenance time, values range from 1 to 24,unit is hour. For example: \"3h\".\n"},"enable":{"type":"boolean","description":"Whether to open the maintenance window. The following parameters take effect only `enable = true`.\n"},"maintenanceTime":{"type":"string","description":"Initial maintenance time, RFC3339 format. For example: \"2024-10-15T12:31:00.000+08:00\".\n"},"weeklyPeriod":{"type":"string","description":"Maintenance cycle, you can set the values from Monday to Sunday, separated by commas when the values are multiple. The default is Thursday.\n\nfor example:\n```\nmaintenance_window {\nenable            = true\nmaintenance_time  = \"2024-10-15T12:31:00.000+08:00\"\nduration          = \"3h\"\nweekly_period     = \"Monday,Friday\"\n}\n```\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["duration","enable","maintenanceTime","weeklyPeriod"]}}},"alicloud:cs/ServerlessKubernetesOperationPolicy:ServerlessKubernetesOperationPolicy":{"properties":{"clusterAutoUpgrade":{"$ref":"#/types/alicloud:cs/ServerlessKubernetesOperationPolicyClusterAutoUpgrade:ServerlessKubernetesOperationPolicyClusterAutoUpgrade","description":"Automatic cluster upgrade policy. See \u003cspan pulumi-lang-nodejs=\"`clusterAutoUpgrade`\" pulumi-lang-dotnet=\"`ClusterAutoUpgrade`\" pulumi-lang-go=\"`clusterAutoUpgrade`\" pulumi-lang-python=\"`cluster_auto_upgrade`\" pulumi-lang-yaml=\"`clusterAutoUpgrade`\" pulumi-lang-java=\"`clusterAutoUpgrade`\"\u003e`cluster_auto_upgrade`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:cs/ServerlessKubernetesOperationPolicyClusterAutoUpgrade:ServerlessKubernetesOperationPolicyClusterAutoUpgrade":{"properties":{"channel":{"type":"string","description":"The automatic cluster upgrade channel. Valid values: \u003cspan pulumi-lang-nodejs=\"`patch`\" pulumi-lang-dotnet=\"`Patch`\" pulumi-lang-go=\"`patch`\" pulumi-lang-python=\"`patch`\" pulumi-lang-yaml=\"`patch`\" pulumi-lang-java=\"`patch`\"\u003e`patch`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stable`\" pulumi-lang-dotnet=\"`Stable`\" pulumi-lang-go=\"`stable`\" pulumi-lang-python=\"`stable`\" pulumi-lang-yaml=\"`stable`\" pulumi-lang-java=\"`stable`\"\u003e`stable`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rapid`\" pulumi-lang-dotnet=\"`Rapid`\" pulumi-lang-go=\"`rapid`\" pulumi-lang-python=\"`rapid`\" pulumi-lang-yaml=\"`rapid`\" pulumi-lang-java=\"`rapid`\"\u003e`rapid`\u003c/span\u003e.\n\nfor example:\n```\noperation_policy {\ncluster_auto_upgrade {\nenabled = true\nchannel = \"stable\"\n}\n}\n```\n"},"enabled":{"type":"boolean","description":"Whether the RRSA feature has been enabled.\n"}},"type":"object"},"alicloud:cs/ServerlessKubernetesRrsaMetadata:ServerlessKubernetesRrsaMetadata":{"properties":{"enabled":{"type":"boolean","description":"Whether the RRSA feature has been enabled.\n"},"ramOidcProviderArn":{"type":"string","description":"The arn of OIDC provider that was registered in RAM.\n"},"ramOidcProviderName":{"type":"string","description":"The name of OIDC Provider that was registered in RAM.\n"},"rrsaOidcIssuerUrl":{"type":"string","description":"The issuer URL of RRSA OIDC Token.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled","ramOidcProviderArn","ramOidcProviderName","rrsaOidcIssuerUrl"]}}},"alicloud:cs/SwarmNode:SwarmNode":{"properties":{"eip":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"privateIp":{"type":"string"},"status":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["eip","id","name","privateIp","status"]}}},"alicloud:cs/getClusterCredentialCertificateAuthority:getClusterCredentialCertificateAuthority":{"properties":{"clientCert":{"type":"string","description":"The base64 encoded client certificate data required to communicate with your cluster. Add this to the client-certificate-data section of the kube config file for your cluster.\n","secret":true},"clientKey":{"type":"string","description":"The base64 encoded client key data required to communicate with your cluster. Add this to the client-key-data section of the kube config file for your cluster.\n","secret":true},"clusterCert":{"type":"string","description":"The base64 encoded cluster certificate data required to communicate with your cluster. Add this to the certificate-authority-data section of the kube config file for your cluster.\n","secret":true}},"type":"object","required":["clientCert","clientKey","clusterCert"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getClustersCluster:getClustersCluster":{"properties":{"autoMode":{"$ref":"#/types/alicloud:cs/getClustersClusterAutoMode:getClustersClusterAutoMode","description":"**NOTE:** This field is only available when \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Intelligent managed mode configuration.\n"},"clusterDomain":{"type":"string","description":"The local domain name of the cluster.\n"},"clusterId":{"type":"string","description":"The cluster ID.\n"},"clusterName":{"type":"string","description":"Custom cluster name.\n"},"clusterSpec":{"type":"string","description":"The specification of the clusters to query. Valid values:\n- `ack.pro.small`: ACK Pro clusters.\n- `ack.standard`: ACK Basic clusters.\n"},"clusterType":{"type":"string","description":"The type of the clusters to query. Valid values:\n- `Kubernetes`: ACK dedicated clusters.\n- `ManagedKubernetes`: ACK managed clusters. ACK managed clusters include ACK Basic clusters, ACK Pro clusters, ACK Serverless Basic clusters, ACK Serverless Pro clusters, ACK Edge Basic clusters, ACK Edge Pro clusters, and ACK Lingjun Pro clusters.\n- `ExternalKubernetes`: registered clusters.\n"},"currentVersion":{"type":"string","description":"The current version of the cluster.\n"},"deletionProtection":{"type":"boolean","description":"Cluster deletion protection prevents accidental deletion of the cluster through the console or API.\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"ipStack":{"type":"string","description":"The IP protocol stack of the cluster.\n"},"maintenanceWindow":{"$ref":"#/types/alicloud:cs/getClustersClusterMaintenanceWindow:getClustersClusterMaintenanceWindow","description":"**NOTE:** This field is only available when \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Cluster maintenance window.\n"},"nodeCidrMask":{"type":"string","description":"**NOTE:** This field is only available when \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. The number of IP addresses per node, determined by specifying the CIDR block of the network.\n"},"operationPolicy":{"$ref":"#/types/alicloud:cs/getClustersClusterOperationPolicy:getClustersClusterOperationPolicy","description":"**NOTE:** This field is only available when \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. The automatic operations and maintenance policy for the cluster.\n"},"podCidr":{"type":"string","description":"The CIDR block for the pod network.\n"},"profile":{"type":"string","description":"The subtype of the clusters to query. Valid values:\n- `Default`: ACK managed clusters. ACK managed clusters include ACK Basic clusters and ACK Pro clusters.\n- `Edge`: ACK Edge clusters. ACK Edge clusters include ACK Edge Basic clusters and ACK Edge Pro clusters.\n- `Serverless`: ACK Serverless clusters. ACK Serverless clusters include ACK Serverless Basic clusters and ACK Serverless Pro clusters.\n- `Lingjun`: ACK Lingjun Pro clusters.\n"},"proxyMode":{"type":"string","description":"kube-proxy proxy mode.\n"},"regionId":{"type":"string","description":"The region ID where the cluster is deployed.\n"},"resourceGroupId":{"type":"string","description":"The resource group ID of the cluster.\n"},"securityGroupId":{"type":"string","description":"The security group ID for the control plane.\n"},"serviceCidr":{"type":"string","description":"The Service CIDR block.\n"},"state":{"type":"string","description":"Cluster operational status.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Cluster resource tags.\n"},"timezone":{"type":"string","description":"Cluster time zone.\n"},"vpcId":{"type":"string","description":"The Virtual Private Cloud (VPC) used by the cluster.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"Virtual switches for the cluster control plane.\n"}},"type":"object","required":["autoMode","clusterDomain","clusterId","clusterName","clusterSpec","clusterType","currentVersion","deletionProtection","id","ipStack","maintenanceWindow","nodeCidrMask","operationPolicy","podCidr","profile","proxyMode","regionId","resourceGroupId","securityGroupId","serviceCidr","state","tags","timezone","vpcId","vswitchIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getClustersClusterAutoMode:getClustersClusterAutoMode":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable cluster automatic upgrade.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getClustersClusterMaintenanceWindow:getClustersClusterMaintenanceWindow":{"properties":{"duration":{"type":"string","description":"The duration of the maintenance window.\n"},"enable":{"type":"boolean","description":"Indicates whether to enable the maintenance window.\n"},"maintenanceTime":{"type":"string","description":"Maintenance start time.\n"},"recurrence":{"type":"string","description":"The recurrence rule for the maintenance window, defined using RFC5545 Recurrence Rule syntax.\n"},"weeklyPeriod":{"type":"string","description":"The maintenance cycle.\n"}},"type":"object","required":["duration","enable","maintenanceTime","recurrence","weeklyPeriod"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getClustersClusterOperationPolicy:getClustersClusterOperationPolicy":{"properties":{"clusterAutoUpgrade":{"$ref":"#/types/alicloud:cs/getClustersClusterOperationPolicyClusterAutoUpgrade:getClustersClusterOperationPolicyClusterAutoUpgrade","description":"Cluster automatic upgrade.\n"}},"type":"object","required":["clusterAutoUpgrade"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getClustersClusterOperationPolicyClusterAutoUpgrade:getClustersClusterOperationPolicyClusterAutoUpgrade":{"properties":{"channel":{"type":"string","description":"Cluster automatic upgrade frequency.\n"},"enabled":{"type":"boolean","description":"Whether to enable cluster automatic upgrade.\n"}},"type":"object","required":["channel","enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getEdgeKubernetesClustersCluster:getEdgeKubernetesClustersCluster":{"properties":{"availabilityZone":{"type":"string","description":"The ID of availability zone.\n"},"connections":{"$ref":"#/types/alicloud:cs/getEdgeKubernetesClustersClusterConnections:getEdgeKubernetesClustersClusterConnections","description":"Map of kubernetes cluster connection information. It contains several attributes to `Block Connections`.\n"},"id":{"type":"string","description":"ID of the node.\n"},"name":{"type":"string","description":"Node name.\n"},"natGatewayId":{"type":"string","description":"The ID of nat gateway used to launch kubernetes cluster.\n"},"securityGroupId":{"type":"string","description":"The ID of security group where the current cluster worker node is located.\n"},"vpcId":{"type":"string","description":"The ID of VPC where the current cluster is located.\n"},"workerNodes":{"type":"array","items":{"$ref":"#/types/alicloud:cs/getEdgeKubernetesClustersClusterWorkerNode:getEdgeKubernetesClustersClusterWorkerNode"},"description":"List of cluster worker nodes. It contains several attributes to `Block Nodes`.\n"}},"type":"object","required":["availabilityZone","connections","id","name","natGatewayId","securityGroupId","vpcId","workerNodes"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getEdgeKubernetesClustersClusterConnections:getEdgeKubernetesClustersClusterConnections":{"properties":{"apiServerInternet":{"type":"string","description":"API Server Internet endpoint.\n"},"apiServerIntranet":{"type":"string","description":"API Server Intranet endpoint.\n"}},"type":"object","required":["apiServerInternet","apiServerIntranet"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getEdgeKubernetesClustersClusterWorkerNode:getEdgeKubernetesClustersClusterWorkerNode":{"properties":{"id":{"type":"string","description":"ID of the node.\n"},"name":{"type":"string","description":"Node name.\n"},"privateIp":{"type":"string","description":"The private IP address of node.\n"}},"type":"object","required":["id","name","privateIp"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesAddonsAddon:getKubernetesAddonsAddon":{"properties":{"currentConfig":{"type":"string","description":"The current custom configuration of the addon. **Note:** Available in v1.166.0+\n"},"currentVersion":{"type":"string","description":"The current version of addon, if this field is an empty string, it means that the addon is not installed.\n"},"name":{"type":"string","description":"The name of addon.\n"},"nextVersion":{"type":"string","description":"The next version of this addon can be upgraded to.\n"},"required":{"type":"boolean","description":"Whether the addon is a system addon.\n"}},"type":"object","required":["currentConfig","currentVersion","name","nextVersion","required"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesClustersCluster:getKubernetesClustersCluster":{"properties":{"availabilityZone":{"type":"string","description":"The ID of availability zone.\n"},"clusterNetworkType":{"type":"string","description":"The cluster network type.\n"},"connections":{"$ref":"#/types/alicloud:cs/getKubernetesClustersClusterConnections:getKubernetesClustersClusterConnections","description":"Map of kubernetes cluster connection information.\n"},"id":{"type":"string","description":"ID of the node.\n"},"imageId":{"type":"string","description":"The ID of node image.\n"},"keyName":{"type":"string","description":"The keypair of ssh login cluster node, you have to create it first.\n"},"logConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cs/getKubernetesClustersClusterLogConfig:getKubernetesClustersClusterLogConfig"},"description":"A list of one element containing information about the associated log store. It contains the following attributes:\n"},"masterAutoRenew":{"type":"boolean","description":"Whether to enable master payment auto-renew\n"},"masterAutoRenewPeriod":{"type":"integer","description":"Master payment auto-renew period.\n"},"masterDiskCategory":{"type":"string","description":"The system disk category of master node.\n"},"masterDiskSize":{"type":"integer","description":"The system disk size of master node.\n"},"masterInstanceChargeType":{"type":"string","description":"Master payment type.\n"},"masterInstanceTypes":{"type":"array","items":{"type":"string"},"description":"The instance type of master node.\n"},"masterNodes":{"type":"array","items":{"$ref":"#/types/alicloud:cs/getKubernetesClustersClusterMasterNode:getKubernetesClustersClusterMasterNode"},"description":"List of cluster master nodes. It contains several attributes to `Block Nodes`.\n"},"masterPeriod":{"type":"integer","description":"Master payment period.\n"},"masterPeriodUnit":{"type":"string","description":"Master payment period unit.\n"},"name":{"type":"string","description":"Node name.\n"},"natGatewayId":{"type":"string","description":"The ID of nat gateway used to launch kubernetes cluster.\n"},"nodeCidrMask":{"type":"integer","description":"The network mask used on pods for each node.\n"},"podCidr":{"type":"string","description":"The CIDR block for the pod network.\n"},"securityGroupId":{"type":"string","description":"The ID of security group where the current cluster worker node is located.\n"},"serviceCidr":{"type":"string","description":"The CIDR block for the service network.\n"},"slbInternetEnabled":{"type":"boolean","description":"Whether internet load balancer for API Server is created\n"},"vpcId":{"type":"string","description":"The ID of VPC where the current cluster is located.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The ID of VSwitches where the current cluster is located.\n"},"workerAutoRenew":{"type":"boolean","description":"Whether to enable worker payment auto-renew.\n"},"workerAutoRenewPeriod":{"type":"integer","description":"Worker payment auto-renew period\n"},"workerDataDiskCategory":{"type":"string","description":"The data disk size of worker node.\n"},"workerDataDiskSize":{"type":"integer","description":"The data disk category of worker node.\n"},"workerDiskCategory":{"type":"string","description":"The system disk category of worker node.\n"},"workerDiskSize":{"type":"integer","description":"The system disk size of worker node.\n"},"workerInstanceChargeType":{"type":"string","description":"Worker payment type\n"},"workerInstanceTypes":{"type":"array","items":{"type":"string"},"description":"The instance type of worker node.\n"},"workerNodes":{"type":"array","items":{"$ref":"#/types/alicloud:cs/getKubernetesClustersClusterWorkerNode:getKubernetesClustersClusterWorkerNode"},"description":"List of cluster worker nodes. It contains several attributes to `Block Nodes`.\n"},"workerNumbers":{"type":"array","items":{"type":"integer"},"description":"The ECS instance node number in the current container cluster.\n"},"workerPeriod":{"type":"integer","description":"Worker payment period.\n"},"workerPeriodUnit":{"type":"string","description":"Worker payment period unit.\n"}},"type":"object","required":["availabilityZone","clusterNetworkType","connections","id","imageId","keyName","logConfigs","masterAutoRenew","masterAutoRenewPeriod","masterDiskCategory","masterDiskSize","masterInstanceChargeType","masterInstanceTypes","masterNodes","masterPeriod","masterPeriodUnit","name","natGatewayId","nodeCidrMask","podCidr","securityGroupId","serviceCidr","slbInternetEnabled","vpcId","vswitchIds","workerAutoRenew","workerAutoRenewPeriod","workerDataDiskCategory","workerDataDiskSize","workerDiskCategory","workerDiskSize","workerInstanceChargeType","workerInstanceTypes","workerNodes","workerNumbers","workerPeriod","workerPeriodUnit"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesClustersClusterConnections:getKubernetesClustersClusterConnections":{"properties":{"apiServerInternet":{"type":"string","description":"API Server Internet endpoint.\n"},"apiServerIntranet":{"type":"string","description":"API Server Intranet endpoint.\n"},"masterPublicIp":{"type":"string","description":"Master node SSH IP address.\n"},"serviceDomain":{"type":"string","description":"Service Access Domain.\n"}},"type":"object","required":["apiServerInternet","apiServerIntranet","masterPublicIp","serviceDomain"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesClustersClusterLogConfig:getKubernetesClustersClusterLogConfig":{"properties":{"project":{"type":"string","description":"Log Service project name.\n"},"type":{"type":"string","description":"Type of collecting logs.\n"}},"type":"object","required":["project","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesClustersClusterMasterNode:getKubernetesClustersClusterMasterNode":{"properties":{"id":{"type":"string","description":"ID of the node.\n"},"name":{"type":"string","description":"Node name.\n"},"privateIp":{"type":"string","description":"The private IP address of node.\n"}},"type":"object","required":["id","name","privateIp"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesClustersClusterWorkerNode:getKubernetesClustersClusterWorkerNode":{"properties":{"id":{"type":"string","description":"ID of the node.\n"},"name":{"type":"string","description":"Node name.\n"},"privateIp":{"type":"string","description":"The private IP address of node.\n"}},"type":"object","required":["id","name","privateIp"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesNodePoolsNodepool:getKubernetesNodePoolsNodepool":{"properties":{"autoRenew":{"type":"boolean","description":"Whether to enable automatic renewal for nodes in the node pool takes effect only when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PrePaid`. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:- \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: Automatic renewal. - \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: Do not renew automatically.\n"},"autoRenewPeriod":{"type":"integer","description":"The automatic renewal period of nodes in the node pool takes effect only when you select Prepaid and Automatic Renewal, and is a required value. When `PeriodUnit = Month`, the value range is {1, 2, 3, 6, 12}. Default value: 1.\n"},"cisEnabled":{"type":"boolean","description":"Whether enable worker node to support cis security reinforcement, its valid value \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and apply to AliyunLinux series. Use \u003cspan pulumi-lang-nodejs=\"`securityHardeningOs`\" pulumi-lang-dotnet=\"`SecurityHardeningOs`\" pulumi-lang-go=\"`securityHardeningOs`\" pulumi-lang-python=\"`security_hardening_os`\" pulumi-lang-yaml=\"`securityHardeningOs`\" pulumi-lang-java=\"`securityHardeningOs`\"\u003e`security_hardening_os`\u003c/span\u003e instead.\n"},"compensateWithOnDemand":{"type":"boolean","description":"Specifies whether to automatically create pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created due to reasons such as cost or insufficient inventory. This parameter takes effect when you set \u003cspan pulumi-lang-nodejs=\"`multiAzPolicy`\" pulumi-lang-dotnet=\"`MultiAzPolicy`\" pulumi-lang-go=\"`multiAzPolicy`\" pulumi-lang-python=\"`multi_az_policy`\" pulumi-lang-yaml=\"`multiAzPolicy`\" pulumi-lang-java=\"`multiAzPolicy`\"\u003e`multi_az_policy`\u003c/span\u003e to `COST_OPTIMIZED`. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: automatically creates pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: does not create pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created.\n"},"cpuPolicy":{"type":"string","description":"Node CPU management policies. Default value: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. When the cluster version is 1.12.6 or later, the following two policies are supported:- \u003cspan pulumi-lang-nodejs=\"`static`\" pulumi-lang-dotnet=\"`Static`\" pulumi-lang-go=\"`static`\" pulumi-lang-python=\"`static`\" pulumi-lang-yaml=\"`static`\" pulumi-lang-java=\"`static`\"\u003e`static`\u003c/span\u003e: allows pods with certain resource characteristics on the node to enhance its CPU affinity and exclusivity.- \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e: Enables the existing default CPU affinity scheme.\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:cs/getKubernetesNodePoolsNodepoolDataDisk:getKubernetesNodePoolsNodepoolDataDisk"},"description":"Configure the data disk of the node in the node pool.\n"},"deploymentSetId":{"type":"string","description":"The deployment set of node pool. Specify the deploymentSet to ensure that the nodes in the node pool can be distributed on different physical machines.\n"},"desiredSize":{"type":"string","description":"Number of expected nodes in the node pool.\n"},"imageId":{"type":"string","description":"The custom image ID. The system-provided image is used by default.\n"},"imageType":{"type":"string","description":"The operating system image type and the \u003cspan pulumi-lang-nodejs=\"`platform`\" pulumi-lang-dotnet=\"`Platform`\" pulumi-lang-go=\"`platform`\" pulumi-lang-python=\"`platform`\" pulumi-lang-yaml=\"`platform`\" pulumi-lang-java=\"`platform`\"\u003e`platform`\u003c/span\u003e parameter can be selected from the following values:- `AliyunLinux` : Alinux2 image.- `AliyunLinux3` : Alinux3 image.- `AliyunLinux3Arm64` : Alinux3 mirror ARM version.- `AliyunLinuxUEFI` : Alinux2 Image UEFI version.- `CentOS` : CentOS image.- `Windows` : Windows image.- `WindowsCore` : WindowsCore image.- `ContainerOS` : container-optimized image.- `Ubuntu`: Ubuntu image.\n"},"installCloudMonitor":{"type":"boolean","description":"Whether to install cloud monitoring on the ECS node. After installation, you can view the monitoring information of the created ECS instance in the cloud monitoring console and recommend enable it. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:- \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e : install cloud monitoring on the ECS node.- \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e : does not install cloud monitoring on the ECS node.\n"},"instanceChargeType":{"type":"string","description":"Node payment type. Valid values: `PostPaid`, `PrePaid`, default is `PostPaid`. If value is `PrePaid`, the arguments \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`autoRenewPeriod`\" pulumi-lang-dotnet=\"`AutoRenewPeriod`\" pulumi-lang-go=\"`autoRenewPeriod`\" pulumi-lang-python=\"`auto_renew_period`\" pulumi-lang-yaml=\"`autoRenewPeriod`\" pulumi-lang-java=\"`autoRenewPeriod`\"\u003e`auto_renew_period`\u003c/span\u003e are required.\n"},"instanceTypes":{"type":"array","items":{"type":"string"},"description":"In the node instance specification list, you can select multiple instance specifications as alternatives. When each node is created, it will try to purchase from the first specification until it is created successfully. The final purchased instance specifications may vary with inventory changes.\n"},"internetChargeType":{"type":"string","description":"The billing method for network usage. Valid values `PayByBandwidth` and `PayByTraffic`. Conflict with \u003cspan pulumi-lang-nodejs=\"`eipInternetChargeType`\" pulumi-lang-dotnet=\"`EipInternetChargeType`\" pulumi-lang-go=\"`eipInternetChargeType`\" pulumi-lang-python=\"`eip_internet_charge_type`\" pulumi-lang-yaml=\"`eipInternetChargeType`\" pulumi-lang-java=\"`eipInternetChargeType`\"\u003e`eip_internet_charge_type`\u003c/span\u003e, EIP and public network IP can only choose one.\n"},"internetMaxBandwidthOut":{"type":"integer","description":"The maximum bandwidth of the public IP address of the node. The unit is Mbps(Mega bit per second). The value range is:\\[1,100\\]\n"},"keyName":{"type":"string","description":"The name of the key pair. When the node pool is a managed node pool, only \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e is supported.\n"},"kubeletConfiguration":{"$ref":"#/types/alicloud:cs/getKubernetesNodePoolsNodepoolKubeletConfiguration:getKubernetesNodePoolsNodepoolKubeletConfiguration","description":"Kubelet configuration parameters for worker nodes. See \u003cspan pulumi-lang-nodejs=\"`kubeletConfiguration`\" pulumi-lang-dotnet=\"`KubeletConfiguration`\" pulumi-lang-go=\"`kubeletConfiguration`\" pulumi-lang-python=\"`kubelet_configuration`\" pulumi-lang-yaml=\"`kubeletConfiguration`\" pulumi-lang-java=\"`kubeletConfiguration`\"\u003e`kubelet_configuration`\u003c/span\u003e below. More information in [Kubelet Configuration](https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/).\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:cs/getKubernetesNodePoolsNodepoolLabel:getKubernetesNodePoolsNodepoolLabel"},"description":"A List of Kubernetes labels to assign to the nodes . Only labels that are applied with the ACK API are managed by this argument. Detailed below. More information in [Labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/).\n"},"loginAsNonRoot":{"type":"boolean","description":"Whether the ECS instance is logged on as a ecs-user user. Valid value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"management":{"$ref":"#/types/alicloud:cs/getKubernetesNodePoolsNodepoolManagement:getKubernetesNodePoolsNodepoolManagement","description":"Managed node pool configuration.\n"},"multiAzPolicy":{"type":"string","description":"The scaling policy for ECS instances in a multi-zone scaling group. Valid value: `PRIORITY`, `COST_OPTIMIZED` and `BALANCE`. `PRIORITY`: scales the capacity according to the virtual switches you define (VSwitchIds.N). When an ECS instance cannot be created in the zone where the higher-priority vSwitch is located, the next-priority vSwitch is automatically used to create an ECS instance. `COST_OPTIMIZED`: try to create by vCPU unit price from low to high. When the scaling configuration is configured with multiple instances of preemptible billing, preemptible instances are created first. You can continue to use the `CompensateWithOnDemand` parameter to specify whether to automatically try to create a preemptible instance by paying for it. It takes effect only when the scaling configuration has multi-instance specifications or preemptible instances. `BALANCE`: distributes ECS instances evenly among the multi-zone specified by the scaling group. If the zones become unbalanced due to insufficient inventory, you can use the API RebalanceInstances to balance resources.\n"},"nodeNameMode":{"type":"string","description":"Each node name consists of a prefix, its private network IP, and a suffix, separated by commas. The input format is `customized,,ip,`.- The prefix and suffix can be composed of one or more parts separated by '.', each part can use lowercase letters, numbers and '-', and the beginning and end of the node name must be lowercase letters and numbers.- The node IP address is the complete private IP address of the node.- For example, if the string `customized,aliyun,ip,com` is passed in (where 'customized' and 'ip' are fixed strings, 'aliyun' is the prefix, and 'com' is the suffix), the name of the node is `aliyun192.168.xxx.xxxcom`.\n"},"nodePoolId":{"type":"string","description":"The first ID of the resource.\n"},"nodePoolName":{"type":"string","description":"The name of node pool.\n"},"onDemandBaseCapacity":{"type":"string","description":"The minimum number of pay-as-you-go instances that must be kept in the scaling group. Valid values: 0 to 1000. If the number of pay-as-you-go instances is less than the value of this parameter, Auto Scaling preferably creates pay-as-you-go instances.\n"},"onDemandPercentageAboveBaseCapacity":{"type":"string","description":"The percentage of pay-as-you-go instances among the extra instances that exceed the number specified by \u003cspan pulumi-lang-nodejs=\"`onDemandBaseCapacity`\" pulumi-lang-dotnet=\"`OnDemandBaseCapacity`\" pulumi-lang-go=\"`onDemandBaseCapacity`\" pulumi-lang-python=\"`on_demand_base_capacity`\" pulumi-lang-yaml=\"`onDemandBaseCapacity`\" pulumi-lang-java=\"`onDemandBaseCapacity`\"\u003e`on_demand_base_capacity`\u003c/span\u003e. Valid values: 0 to 100.\n"},"password":{"type":"string","description":"The password of ssh login. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e fields. The password rule is 8 to 30 characters and contains at least three items (upper and lower case letters, numbers, and special symbols).\n","secret":true},"period":{"type":"integer","description":"Node payment period. Its valid value is one of {1, 2, 3, 6, 12}.\n"},"periodUnit":{"type":"string","description":"Node payment period unit, valid value: `Month`. Default is `Month`.\n"},"platform":{"type":"string","description":"Operating system release, using \u003cspan pulumi-lang-nodejs=\"`imageType`\" pulumi-lang-dotnet=\"`ImageType`\" pulumi-lang-go=\"`imageType`\" pulumi-lang-python=\"`image_type`\" pulumi-lang-yaml=\"`imageType`\" pulumi-lang-java=\"`imageType`\"\u003e`image_type`\u003c/span\u003e instead.\n"},"preUserData":{"type":"string","description":"Node pre custom data, base64-encoded, the script executed before the node is initialized.\n"},"privatePoolOptions":{"$ref":"#/types/alicloud:cs/getKubernetesNodePoolsNodepoolPrivatePoolOptions:getKubernetesNodePoolsNodepoolPrivatePoolOptions","description":"Private node pool configuration.\n"},"ramRoleName":{"type":"string","description":"The name of the Worker RAM role.* If it is empty, the default Worker RAM role created in the cluster will be used.* If the specified RAM role is not empty, the specified RAM role must be a **Common Service role**, and its **trusted service** configuration must be **cloud server**. For more information, see [Create a common service role](https://help.aliyun.com/document_detail/116800.html). If the specified RAM role is not the default Worker RAM role created in the cluster, the role name cannot start with 'KubernetesMasterRole-'or 'KubernetesWorkerRole.\u003e **NOTE:**  This parameter is only supported for ACK-managed clusters of 1.22 or later versions.\n"},"rdsInstances":{"type":"array","items":{"type":"string"},"description":"The list of RDS instances.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"runtimeName":{"type":"string","description":"The runtime name of containers. If not set, the cluster runtime will be used as the node pool runtime. If you select another container runtime, see [Comparison of Docker, containerd, and Sandboxed-Container](https://www.alibabacloud.com/help/doc-detail/160313.htm).\n"},"runtimeVersion":{"type":"string","description":"The runtime version of containers. If not set, the cluster runtime will be used as the node pool runtime.\n"},"scalingConfig":{"$ref":"#/types/alicloud:cs/getKubernetesNodePoolsNodepoolScalingConfig:getKubernetesNodePoolsNodepoolScalingConfig","description":"Automatic scaling configuration.\n"},"scalingGroupId":{"type":"string","description":"The ID of the scaling group.\n"},"scalingPolicy":{"type":"string","description":"Scaling group mode, default value: \u003cspan pulumi-lang-nodejs=\"`release`\" pulumi-lang-dotnet=\"`Release`\" pulumi-lang-go=\"`release`\" pulumi-lang-python=\"`release`\" pulumi-lang-yaml=\"`release`\" pulumi-lang-java=\"`release`\"\u003e`release`\u003c/span\u003e. Valid values:- \u003cspan pulumi-lang-nodejs=\"`release`\" pulumi-lang-dotnet=\"`Release`\" pulumi-lang-go=\"`release`\" pulumi-lang-python=\"`release`\" pulumi-lang-yaml=\"`release`\" pulumi-lang-java=\"`release`\"\u003e`release`\u003c/span\u003e: in the standard mode, scaling is performed by creating and releasing ECS instances based on the usage of the application resource value.- \u003cspan pulumi-lang-nodejs=\"`recycle`\" pulumi-lang-dotnet=\"`Recycle`\" pulumi-lang-go=\"`recycle`\" pulumi-lang-python=\"`recycle`\" pulumi-lang-yaml=\"`recycle`\" pulumi-lang-java=\"`recycle`\"\u003e`recycle`\u003c/span\u003e: in the speed mode, scaling is performed through creation, shutdown, and startup to increase the speed of scaling again (computing resources are not charged during shutdown, only storage fees are charged, except for local disk models).\n"},"securityGroupId":{"type":"string","description":"The security group ID of the node pool. This field has been replaced by \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e, please use the \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e field instead.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"Multiple security groups can be configured for a node pool. If both \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e are configured, \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e takes effect. This field cannot be modified.\n"},"securityHardeningOs":{"type":"boolean","description":"Alibaba Cloud OS security reinforcement. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Value:-\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: enable Alibaba Cloud OS security reinforcement.-\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: does not enable Alibaba Cloud OS security reinforcement.\n"},"socEnabled":{"type":"boolean","description":"Whether enable worker node to support soc security reinforcement, its valid value \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and apply to AliyunLinux series. See [SOC Reinforcement](https://help.aliyun.com/document_detail/196148.html).\u003e It is forbidden to set both \u003cspan pulumi-lang-nodejs=\"`securityHardeningOs`\" pulumi-lang-dotnet=\"`SecurityHardeningOs`\" pulumi-lang-go=\"`securityHardeningOs`\" pulumi-lang-python=\"`security_hardening_os`\" pulumi-lang-yaml=\"`securityHardeningOs`\" pulumi-lang-java=\"`securityHardeningOs`\"\u003e`security_hardening_os`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`socEnabled`\" pulumi-lang-dotnet=\"`SocEnabled`\" pulumi-lang-go=\"`socEnabled`\" pulumi-lang-python=\"`soc_enabled`\" pulumi-lang-yaml=\"`socEnabled`\" pulumi-lang-java=\"`socEnabled`\"\u003e`soc_enabled`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e at the same time.\n"},"spotInstancePools":{"type":"integer","description":"The number of instance types that are available. Auto Scaling creates preemptible instances of multiple instance types that are available at the lowest cost. Valid values: 1 to 10.\n"},"spotInstanceRemedy":{"type":"boolean","description":"Specifies whether to supplement preemptible instances when the number of preemptible instances drops below the specified minimum number. If you set the value to true, Auto Scaling attempts to create a new preemptible instance when the system notifies that an existing preemptible instance is about to be reclaimed. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: enables the supplementation of preemptible instances. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: disables the supplementation of preemptible instances.\n"},"spotPriceLimits":{"type":"array","items":{"$ref":"#/types/alicloud:cs/getKubernetesNodePoolsNodepoolSpotPriceLimit:getKubernetesNodePoolsNodepoolSpotPriceLimit"},"description":"The current single preemptible instance type market price range configuration.\n"},"spotStrategy":{"type":"string","description":"The preemptible instance type. Value:- `NoSpot` : Non-preemptible instance.- `SpotWithPriceLimit` : Set the upper limit of the preemptible instance price.- `SpotAsPriceGo` : The system automatically bids, following the actual price of the current market.\n"},"systemDiskBurstingEnabled":{"type":"boolean","description":"Specifies whether to enable the burst feature for system disks. Valid values:\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: enables the burst feature. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: disables the burst feature. This parameter is supported only when \u003cspan pulumi-lang-nodejs=\"`systemDiskCategory`\" pulumi-lang-dotnet=\"`SystemDiskCategory`\" pulumi-lang-go=\"`systemDiskCategory`\" pulumi-lang-python=\"`system_disk_category`\" pulumi-lang-yaml=\"`systemDiskCategory`\" pulumi-lang-java=\"`systemDiskCategory`\"\u003e`system_disk_category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"systemDiskCategories":{"type":"array","items":{"type":"string"},"description":"The multi-disk categories of the system disk. When a high-priority disk type cannot be used, Auto Scaling automatically tries to create a system disk with the next priority disk category. Valid values see \u003cspan pulumi-lang-nodejs=\"`systemDiskCategory`\" pulumi-lang-dotnet=\"`SystemDiskCategory`\" pulumi-lang-go=\"`systemDiskCategory`\" pulumi-lang-python=\"`system_disk_category`\" pulumi-lang-yaml=\"`systemDiskCategory`\" pulumi-lang-java=\"`systemDiskCategory`\"\u003e`system_disk_category`\u003c/span\u003e.\n"},"systemDiskCategory":{"type":"string","description":"The category of the system disk for nodes. Default value: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. Valid values:- \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e: basic disk.- \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e: ultra disk.- \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e: standard SSD.- \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e: ESSD.- \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e: ESSD AutoPL disk.- \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e: ESSD Entry disk.\n"},"systemDiskEncryptAlgorithm":{"type":"string","description":"The encryption algorithm used by the system disk. Value range: aes-256.\n"},"systemDiskEncrypted":{"type":"boolean","description":"Whether to encrypt the system disk. Value range: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: encryption. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: Do not encrypt.\n"},"systemDiskKmsKey":{"type":"string","description":"The ID of the KMS key used by the system disk.\n"},"systemDiskPerformanceLevel":{"type":"string","description":"The system disk performance of the node takes effect only for the ESSD disk.- `PL0`: maximum random read/write IOPS 10000 for a single disk.- `PL1`: maximum random read/write IOPS 50000 for a single disk.- `PL2`: highest random read/write IOPS 100000 for a single disk.- `PL3`: maximum random read/write IOPS 1 million for a single disk.\n"},"systemDiskProvisionedIops":{"type":"integer","description":"The predefined IOPS of a system disk. Valid values: 0 to min{50,000, 1,000 × Capacity - Baseline IOPS}. Baseline IOPS = min{1,800 + 50 × Capacity, 50,000}. This parameter is supported only when \u003cspan pulumi-lang-nodejs=\"`systemDiskCategory`\" pulumi-lang-dotnet=\"`SystemDiskCategory`\" pulumi-lang-go=\"`systemDiskCategory`\" pulumi-lang-python=\"`system_disk_category`\" pulumi-lang-yaml=\"`systemDiskCategory`\" pulumi-lang-java=\"`systemDiskCategory`\"\u003e`system_disk_category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"systemDiskSize":{"type":"integer","description":"The size of the system disk. Unit: GiB. The value of this parameter must be at least 1 and greater than or equal to the image size. Default value: 40 or the size of the image, whichever is larger.- Basic disk: 20 to 500.- ESSD (cloud_essd): The valid values vary based on the performance level of the ESSD. PL0 ESSD: 1 to 2048. PL1 ESSD: 20 to 2048. PL2 ESSD: 461 to 2048. PL3 ESSD: 1261 to 2048.- ESSD AutoPL disk (cloud_auto): 1 to 2048.- Other disk categories: 20 to 2048.\n"},"systemDiskSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy used by the system disk.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Add tags only for ECS instances. The maximum length of the tag key is 128 characters. The tag key and value cannot start with aliyun or acs:, or contain https:// or http://.\n"},"taints":{"type":"array","items":{"$ref":"#/types/alicloud:cs/getKubernetesNodePoolsNodepoolTaint:getKubernetesNodePoolsNodepoolTaint"},"description":"A List of Kubernetes taints to assign to the nodes. Detailed below. More information in [Taints and Toleration](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/).\n"},"teeConfig":{"$ref":"#/types/alicloud:cs/getKubernetesNodePoolsNodepoolTeeConfig:getKubernetesNodePoolsNodepoolTeeConfig","description":"The configuration about confidential computing for the cluster.\n"},"unschedulable":{"type":"boolean","description":"Whether the node after expansion can be scheduled.\n"},"userData":{"type":"string","description":"Node custom data, base64-encoded.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vswitches used by node pool workers.\n"}},"type":"object","required":["autoRenew","autoRenewPeriod","cisEnabled","compensateWithOnDemand","cpuPolicy","dataDisks","deploymentSetId","desiredSize","imageId","imageType","installCloudMonitor","instanceChargeType","instanceTypes","internetChargeType","internetMaxBandwidthOut","keyName","kubeletConfiguration","labels","loginAsNonRoot","management","multiAzPolicy","nodeNameMode","nodePoolId","nodePoolName","onDemandBaseCapacity","onDemandPercentageAboveBaseCapacity","password","period","periodUnit","platform","preUserData","privatePoolOptions","ramRoleName","rdsInstances","resourceGroupId","runtimeName","runtimeVersion","scalingConfig","scalingGroupId","scalingPolicy","securityGroupId","securityGroupIds","securityHardeningOs","socEnabled","spotInstancePools","spotInstanceRemedy","spotPriceLimits","spotStrategy","systemDiskBurstingEnabled","systemDiskCategories","systemDiskCategory","systemDiskEncryptAlgorithm","systemDiskEncrypted","systemDiskKmsKey","systemDiskPerformanceLevel","systemDiskProvisionedIops","systemDiskSize","systemDiskSnapshotPolicyId","tags","taints","teeConfig","unschedulable","userData","vswitchIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesNodePoolsNodepoolDataDisk:getKubernetesNodePoolsNodepoolDataDisk":{"properties":{"autoFormat":{"type":"string","description":"Whether to automatically mount the data disk. Valid values: true and false.\n"},"autoSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy that you want to apply to the system disk.\n"},"burstingEnabled":{"type":"boolean","description":"Whether the data disk is enabled with Burst (performance Burst). This is configured when the disk type is cloud_auto.\n"},"category":{"type":"string","description":"The type of data disk. Default value: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. Valid values:- \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e: basic disk.- \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e: ultra disk.- \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e: standard SSD.- \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e: Enterprise SSD (ESSD).- \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e: ESSD AutoPL disk.- \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e: ESSD Entry disk.- \u003cspan pulumi-lang-nodejs=\"`elasticEphemeralDiskPremium`\" pulumi-lang-dotnet=\"`ElasticEphemeralDiskPremium`\" pulumi-lang-go=\"`elasticEphemeralDiskPremium`\" pulumi-lang-python=\"`elastic_ephemeral_disk_premium`\" pulumi-lang-yaml=\"`elasticEphemeralDiskPremium`\" pulumi-lang-java=\"`elasticEphemeralDiskPremium`\"\u003e`elastic_ephemeral_disk_premium`\u003c/span\u003e: premium elastic ephemeral disk.- \u003cspan pulumi-lang-nodejs=\"`elasticEphemeralDiskStandard`\" pulumi-lang-dotnet=\"`ElasticEphemeralDiskStandard`\" pulumi-lang-go=\"`elasticEphemeralDiskStandard`\" pulumi-lang-python=\"`elastic_ephemeral_disk_standard`\" pulumi-lang-yaml=\"`elasticEphemeralDiskStandard`\" pulumi-lang-java=\"`elasticEphemeralDiskStandard`\"\u003e`elastic_ephemeral_disk_standard`\u003c/span\u003e: standard elastic ephemeral disk.\n"},"device":{"type":"string","description":"The mount target of data disk N. Valid values of N: 1 to 16. If you do not specify this parameter, the system automatically assigns a mount target when Auto Scaling creates ECS instances. The name of the mount target ranges from /dev/xvdb to /dev/xvdz.\n"},"encrypted":{"type":"string","description":"Specifies whether to encrypt data disks. Valid values: true and false. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"fileSystem":{"type":"string","description":"The type of the mounted file system. Works when\u003cspan pulumi-lang-nodejs=\" autoFormat \" pulumi-lang-dotnet=\" AutoFormat \" pulumi-lang-go=\" autoFormat \" pulumi-lang-python=\" auto_format \" pulumi-lang-yaml=\" autoFormat \" pulumi-lang-java=\" autoFormat \"\u003e auto_format \u003c/span\u003eis true. Optional value: \u003cspan pulumi-lang-nodejs=\"`ext4`\" pulumi-lang-dotnet=\"`Ext4`\" pulumi-lang-go=\"`ext4`\" pulumi-lang-python=\"`ext4`\" pulumi-lang-yaml=\"`ext4`\" pulumi-lang-java=\"`ext4`\"\u003e`ext4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xfs`\" pulumi-lang-dotnet=\"`Xfs`\" pulumi-lang-go=\"`xfs`\" pulumi-lang-python=\"`xfs`\" pulumi-lang-yaml=\"`xfs`\" pulumi-lang-java=\"`xfs`\"\u003e`xfs`\u003c/span\u003e.\n"},"kmsKeyId":{"type":"string","description":"The kms key id used to encrypt the data disk. It takes effect when \u003cspan pulumi-lang-nodejs=\"`encrypted`\" pulumi-lang-dotnet=\"`Encrypted`\" pulumi-lang-go=\"`encrypted`\" pulumi-lang-python=\"`encrypted`\" pulumi-lang-yaml=\"`encrypted`\" pulumi-lang-java=\"`encrypted`\"\u003e`encrypted`\u003c/span\u003e is true.\n"},"mountTarget":{"type":"string","description":"The Mount path. Works when\u003cspan pulumi-lang-nodejs=\" autoFormat \" pulumi-lang-dotnet=\" AutoFormat \" pulumi-lang-go=\" autoFormat \" pulumi-lang-python=\" auto_format \" pulumi-lang-yaml=\" autoFormat \" pulumi-lang-java=\" autoFormat \"\u003e auto_format \u003c/span\u003eis true.\n"},"name":{"type":"string","description":"The length is 2~128 English or Chinese characters. It must start with an uppercase or lowr letter or a Chinese character and cannot start with http:// or https. Can contain numbers, colons (:), underscores (_), or dashes (-). It will be overwritten if\u003cspan pulumi-lang-nodejs=\" autoFormat \" pulumi-lang-dotnet=\" AutoFormat \" pulumi-lang-go=\" autoFormat \" pulumi-lang-python=\" auto_format \" pulumi-lang-yaml=\" autoFormat \" pulumi-lang-java=\" autoFormat \"\u003e auto_format \u003c/span\u003eis set.\n"},"performanceLevel":{"type":"string","description":"Worker node data disk performance level, when \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e values \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, the optional values are `PL0`, `PL1`, `PL2` or `PL3`, but the specific performance level is related to the disk capacity. For more information, see [Enhanced SSDs](https://www.alibabacloud.com/help/doc-detail/122389.htm). Default is `PL1`.\n"},"provisionedIops":{"type":"integer","description":"The read/write IOPS preconfigured for the data disk, which is configured when the disk type is cloud_auto.\n"},"size":{"type":"integer","description":"The size of a data disk, Its valid value range [40~32768] in GB. Default to \u003cspan pulumi-lang-nodejs=\"`40`\" pulumi-lang-dotnet=\"`40`\" pulumi-lang-go=\"`40`\" pulumi-lang-python=\"`40`\" pulumi-lang-yaml=\"`40`\" pulumi-lang-java=\"`40`\"\u003e`40`\u003c/span\u003e.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot that you want to use to create data disk N. Valid values of N: 1 to 16. If you specify this parameter, DataDisk.N.Size is ignored. The size of the disk is the same as the size of the specified snapshot. If you specify a snapshot that is created on or before July 15, 2013, the operation fails and InvalidSnapshot.TooOld is returned.\n"}},"type":"object","required":["autoFormat","autoSnapshotPolicyId","burstingEnabled","category","device","encrypted","fileSystem","kmsKeyId","mountTarget","name","performanceLevel","provisionedIops","size","snapshotId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesNodePoolsNodepoolKubeletConfiguration:getKubernetesNodePoolsNodepoolKubeletConfiguration":{"properties":{"allowedUnsafeSysctls":{"type":"array","items":{"type":"string"},"description":"Allowed sysctl mode whitelist.\n"},"clusterDns":{"type":"array","items":{"type":"string"},"description":"The list of IP addresses of the cluster DNS servers.\n"},"containerLogMaxFiles":{"type":"string","description":"The maximum number of log files that can exist in each container.\n"},"containerLogMaxSize":{"type":"string","description":"The maximum size that can be reached before a log file is rotated.\n"},"containerLogMaxWorkers":{"type":"string","description":"Specifies the maximum number of concurrent workers required to perform log rotation operations.\n"},"containerLogMonitorInterval":{"type":"string","description":"Specifies the duration for which container logs are monitored for log rotation.\n"},"cpuCfsQuota":{"type":"string","description":"CPU CFS quota constraint switch.\n"},"cpuCfsQuotaPeriod":{"type":"string","description":"CPU CFS quota period value.\n"},"cpuManagerPolicy":{"type":"string","description":"Same as cpuManagerPolicy. The name of the policy to use. Requires the CPUManager feature gate to be enabled. Valid value is \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`static`\" pulumi-lang-dotnet=\"`Static`\" pulumi-lang-go=\"`static`\" pulumi-lang-python=\"`static`\" pulumi-lang-yaml=\"`static`\" pulumi-lang-java=\"`static`\"\u003e`static`\u003c/span\u003e.\n"},"eventBurst":{"type":"string","description":"Same as eventBurst. The maximum size of a burst of event creations, temporarily allows event creations to burst to this number, while still not exceeding \u003cspan pulumi-lang-nodejs=\"`eventRecordQps`\" pulumi-lang-dotnet=\"`EventRecordQps`\" pulumi-lang-go=\"`eventRecordQps`\" pulumi-lang-python=\"`event_record_qps`\" pulumi-lang-yaml=\"`eventRecordQps`\" pulumi-lang-java=\"`eventRecordQps`\"\u003e`event_record_qps`\u003c/span\u003e. It is only used when \u003cspan pulumi-lang-nodejs=\"`eventRecordQps`\" pulumi-lang-dotnet=\"`EventRecordQps`\" pulumi-lang-go=\"`eventRecordQps`\" pulumi-lang-python=\"`event_record_qps`\" pulumi-lang-yaml=\"`eventRecordQps`\" pulumi-lang-java=\"`eventRecordQps`\"\u003e`event_record_qps`\u003c/span\u003e is greater than 0. Valid value is `[0-100]`.\n"},"eventRecordQps":{"type":"string","description":"Same as eventRecordQPS. The maximum event creations per second. If 0, there is no limit enforced. Valid value is `[0-50]`.\n"},"evictionHard":{"type":"object","additionalProperties":{"type":"string"},"description":"Same as evictionHard. The map of signal names to quantities that defines hard eviction thresholds. For example: `{\"memory.available\" = \"300Mi\"}`.\n"},"evictionSoft":{"type":"object","additionalProperties":{"type":"string"},"description":"Same as evictionSoft. The map of signal names to quantities that defines soft eviction thresholds. For example: `{\"memory.available\" = \"300Mi\"}`.\n"},"evictionSoftGracePeriod":{"type":"object","additionalProperties":{"type":"string"},"description":"Same as evictionSoftGracePeriod. The map of signal names to quantities that defines grace periods for each soft eviction signal. For example: `{\"memory.available\" = \"30s\"}`.\n"},"featureGates":{"type":"object","additionalProperties":{"type":"string"},"description":"Feature switch to enable configuration of experimental features.\n"},"imageGcHighThresholdPercent":{"type":"string","description":"If the image usage exceeds this threshold, image garbage collection will continue.\n"},"imageGcLowThresholdPercent":{"type":"string","description":"Image garbage collection is not performed when the image usage is below this threshold.\n"},"kubeApiBurst":{"type":"string","description":"Same as kubeAPIBurst. The burst to allow while talking with kubernetes api-server. Valid value is `[0-100]`.\n"},"kubeApiQps":{"type":"string","description":"Same as kubeAPIQPS. The QPS to use while talking with kubernetes api-server. Valid value is `[0-50]`.\n"},"kubeReserved":{"type":"object","additionalProperties":{"type":"string"},"description":"Same as kubeReserved. The set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for kubernetes system components. Currently, cpu, memory and local storage for root file system are supported. See [compute resources](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for more details.\n"},"maxPods":{"type":"string","description":"The maximum number of running pods.\n"},"memoryManagerPolicy":{"type":"string","description":"The policy to be used by the memory manager.\n"},"podPidsLimit":{"type":"string","description":"The maximum number of PIDs that can be used in a Pod.\n"},"readOnlyPort":{"type":"string","description":"Read-only port number.\n"},"registryBurst":{"type":"string","description":"Same as registryBurst. The maximum size of burst pulls, temporarily allows pulls to burst to this number, while still not exceeding \u003cspan pulumi-lang-nodejs=\"`registryPullQps`\" pulumi-lang-dotnet=\"`RegistryPullQps`\" pulumi-lang-go=\"`registryPullQps`\" pulumi-lang-python=\"`registry_pull_qps`\" pulumi-lang-yaml=\"`registryPullQps`\" pulumi-lang-java=\"`registryPullQps`\"\u003e`registry_pull_qps`\u003c/span\u003e. Only used if \u003cspan pulumi-lang-nodejs=\"`registryPullQps`\" pulumi-lang-dotnet=\"`RegistryPullQps`\" pulumi-lang-go=\"`registryPullQps`\" pulumi-lang-python=\"`registry_pull_qps`\" pulumi-lang-yaml=\"`registryPullQps`\" pulumi-lang-java=\"`registryPullQps`\"\u003e`registry_pull_qps`\u003c/span\u003e is greater than 0. Valid value is `[0-100]`.\n"},"registryPullQps":{"type":"string","description":"Same as registryPullQPS. The limit of registry pulls per second. Setting it to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means no limit. Valid value is `[0-50]`.\n"},"reservedMemories":{"type":"array","items":{"$ref":"#/types/alicloud:cs/getKubernetesNodePoolsNodepoolKubeletConfigurationReservedMemory:getKubernetesNodePoolsNodepoolKubeletConfigurationReservedMemory"},"description":"Reserve memory for NUMA nodes.\n"},"serializeImagePulls":{"type":"string","description":"Same as serializeImagePulls. When enabled, it tells the Kubelet to pull images one at a time. We recommend not changing the default value on nodes that run docker daemon with version \u003c 1.9 or an Aufs storage backend. Valid value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"systemReserved":{"type":"object","additionalProperties":{"type":"string"},"description":"Same as systemReserved. The set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for non-kubernetes components. Currently, only cpu and memory are supported. See [compute resources](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for more details.\n"},"topologyManagerPolicy":{"type":"string","description":"Name of the Topology Manager policy used.\n"},"tracing":{"$ref":"#/types/alicloud:cs/getKubernetesNodePoolsNodepoolKubeletConfigurationTracing:getKubernetesNodePoolsNodepoolKubeletConfigurationTracing","description":"OpenTelemetry tracks the configuration information for client settings versioning.\n"}},"type":"object","required":["allowedUnsafeSysctls","clusterDns","containerLogMaxFiles","containerLogMaxSize","containerLogMaxWorkers","containerLogMonitorInterval","cpuCfsQuota","cpuCfsQuotaPeriod","cpuManagerPolicy","eventBurst","eventRecordQps","evictionHard","evictionSoft","evictionSoftGracePeriod","featureGates","imageGcHighThresholdPercent","imageGcLowThresholdPercent","kubeApiBurst","kubeApiQps","kubeReserved","maxPods","memoryManagerPolicy","podPidsLimit","readOnlyPort","registryBurst","registryPullQps","reservedMemories","serializeImagePulls","systemReserved","topologyManagerPolicy","tracing"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesNodePoolsNodepoolKubeletConfigurationReservedMemory:getKubernetesNodePoolsNodepoolKubeletConfigurationReservedMemory":{"properties":{"limits":{"type":"object","additionalProperties":{"type":"string"},"description":"Memory resource limit.\n"},"numaNode":{"type":"integer","description":"The NUMA node.\n"}},"type":"object","required":["limits","numaNode"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesNodePoolsNodepoolKubeletConfigurationTracing:getKubernetesNodePoolsNodepoolKubeletConfigurationTracing":{"properties":{"endpoint":{"type":"string","description":"The endpoint of the collector.\n"},"samplingRatePerMillion":{"type":"string","description":"Number of samples to be collected per million span.\n"}},"type":"object","required":["endpoint","samplingRatePerMillion"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesNodePoolsNodepoolLabel:getKubernetesNodePoolsNodepoolLabel":{"properties":{"key":{"type":"string","description":"The key of a taint.\n"},"value":{"type":"string","description":"The value of a taint.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesNodePoolsNodepoolManagement:getKubernetesNodePoolsNodepoolManagement":{"properties":{"autoRepair":{"type":"boolean","description":"Whether to enable automatic repair. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: Automatic repair. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: not automatically repaired.\n"},"autoRepairPolicy":{"$ref":"#/types/alicloud:cs/getKubernetesNodePoolsNodepoolManagementAutoRepairPolicy:getKubernetesNodePoolsNodepoolManagementAutoRepairPolicy","description":"Automatic repair node policy.\n"},"autoUpgrade":{"type":"boolean","description":"Specifies whether to enable auto update. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: enables auto update. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: disables auto update.\n"},"autoUpgradePolicy":{"$ref":"#/types/alicloud:cs/getKubernetesNodePoolsNodepoolManagementAutoUpgradePolicy:getKubernetesNodePoolsNodepoolManagementAutoUpgradePolicy","description":"The auto update policy.\n"},"autoVulFix":{"type":"boolean","description":"Specifies whether to automatically patch CVE vulnerabilities. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoVulFixPolicy":{"$ref":"#/types/alicloud:cs/getKubernetesNodePoolsNodepoolManagementAutoVulFixPolicy:getKubernetesNodePoolsNodepoolManagementAutoVulFixPolicy","description":"The auto CVE patching policy.\n"},"enable":{"type":"boolean","description":"Whether to enable automatic scaling. Value:- \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: enables the node pool auto-scaling function.- \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: Auto scaling is not enabled. When the value is false, other \u003cspan pulumi-lang-nodejs=\"`autoScaling`\" pulumi-lang-dotnet=\"`AutoScaling`\" pulumi-lang-go=\"`autoScaling`\" pulumi-lang-python=\"`auto_scaling`\" pulumi-lang-yaml=\"`autoScaling`\" pulumi-lang-java=\"`autoScaling`\"\u003e`auto_scaling`\u003c/span\u003e configuration parameters do not take effect.\n"},"maxUnavailable":{"type":"integer","description":"Maximum number of unavailable nodes. Default value: 1. Value range:\\[1,1000\\].\n"},"surge":{"type":"integer","description":"Number of additional nodes. You have to specify one of surge, surge_percentage.\n"},"surgePercentage":{"type":"integer","description":"Proportion of additional nodes. You have to specify one of surge, surge_percentage.\n"}},"type":"object","required":["autoRepair","autoRepairPolicy","autoUpgrade","autoUpgradePolicy","autoVulFix","autoVulFixPolicy","enable","maxUnavailable","surge","surgePercentage"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesNodePoolsNodepoolManagementAutoRepairPolicy:getKubernetesNodePoolsNodepoolManagementAutoRepairPolicy":{"properties":{"restartNode":{"type":"boolean","description":"Specifies whether to automatically restart nodes after patching CVE vulnerabilities. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object","required":["restartNode"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesNodePoolsNodepoolManagementAutoUpgradePolicy:getKubernetesNodePoolsNodepoolManagementAutoUpgradePolicy":{"properties":{"autoUpgradeKubelet":{"type":"boolean","description":"Specifies whether  to automatically update the kubelet. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: yes; \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: no.\n"}},"type":"object","required":["autoUpgradeKubelet"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesNodePoolsNodepoolManagementAutoVulFixPolicy:getKubernetesNodePoolsNodepoolManagementAutoVulFixPolicy":{"properties":{"restartNode":{"type":"boolean","description":"Specifies whether to automatically restart nodes after patching CVE vulnerabilities. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"vulLevel":{"type":"string","description":"The severity levels of vulnerabilities that is allowed to automatically patch. Multiple severity levels are separated by commas (,).\n"}},"type":"object","required":["restartNode","vulLevel"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesNodePoolsNodepoolPrivatePoolOptions:getKubernetesNodePoolsNodepoolPrivatePoolOptions":{"properties":{"privatePoolOptionsId":{"type":"string","description":"The ID of the private node pool.\n"},"privatePoolOptionsMatchCriteria":{"type":"string","description":"The type of private node pool. This parameter specifies the type of the private pool that you want to use to create instances. A private node pool is generated when an elasticity assurance or a capacity reservation service takes effect. The system selects a private node pool to launch instances. Valid values: `Open`: specifies an open private node pool. The system selects an open private node pool to launch instances. If no matching open private node pool is available, the resources in the public node pool are used. `Target`: specifies a private node pool. The system uses the resources of the specified private node pool to launch instances. If the specified private node pool is unavailable, instances cannot be started. `None`: no private node pool is used. The resources of private node pools are not used to launch the instances.\n"}},"type":"object","required":["privatePoolOptionsId","privatePoolOptionsMatchCriteria"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesNodePoolsNodepoolScalingConfig:getKubernetesNodePoolsNodepoolScalingConfig":{"properties":{"eipBandwidth":{"type":"integer","description":"Peak EIP bandwidth. Its valid value range [1~500] in Mbps. It works if `is_bond_eip=true`. Default to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"eipInternetChargeType":{"type":"string","description":"EIP billing type. `PayByBandwidth`: Charged at fixed bandwidth. `PayByTraffic`: Billed as used traffic. Default: `PayByBandwidth`. It works if `is_bond_eip=true`, conflict with \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e. EIP and public network IP can only choose one.\n"},"enable":{"type":"boolean","description":"Whether to enable automatic scaling. Value:- \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: enables the node pool auto-scaling function.- \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: Auto scaling is not enabled. When the value is false, other \u003cspan pulumi-lang-nodejs=\"`autoScaling`\" pulumi-lang-dotnet=\"`AutoScaling`\" pulumi-lang-go=\"`autoScaling`\" pulumi-lang-python=\"`auto_scaling`\" pulumi-lang-yaml=\"`autoScaling`\" pulumi-lang-java=\"`autoScaling`\"\u003e`auto_scaling`\u003c/span\u003e configuration parameters do not take effect.\n"},"isBondEip":{"type":"boolean","description":"Whether to bind EIP for an instance. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"maxSize":{"type":"integer","description":"Max number of instances in a auto scaling group, its valid value range [0~1000]. \u003cspan pulumi-lang-nodejs=\"`maxSize`\" pulumi-lang-dotnet=\"`MaxSize`\" pulumi-lang-go=\"`maxSize`\" pulumi-lang-python=\"`max_size`\" pulumi-lang-yaml=\"`maxSize`\" pulumi-lang-java=\"`maxSize`\"\u003e`max_size`\u003c/span\u003e has to be greater than \u003cspan pulumi-lang-nodejs=\"`minSize`\" pulumi-lang-dotnet=\"`MinSize`\" pulumi-lang-go=\"`minSize`\" pulumi-lang-python=\"`min_size`\" pulumi-lang-yaml=\"`minSize`\" pulumi-lang-java=\"`minSize`\"\u003e`min_size`\u003c/span\u003e.\n"},"minSize":{"type":"integer","description":"Min number of instances in a auto scaling group, its valid value range [0~1000].\n"},"type":{"type":"string","description":"Instance classification, not required. Vaild value: \u003cspan pulumi-lang-nodejs=\"`cpu`\" pulumi-lang-dotnet=\"`Cpu`\" pulumi-lang-go=\"`cpu`\" pulumi-lang-python=\"`cpu`\" pulumi-lang-yaml=\"`cpu`\" pulumi-lang-java=\"`cpu`\"\u003e`cpu`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gpu`\" pulumi-lang-dotnet=\"`Gpu`\" pulumi-lang-go=\"`gpu`\" pulumi-lang-python=\"`gpu`\" pulumi-lang-yaml=\"`gpu`\" pulumi-lang-java=\"`gpu`\"\u003e`gpu`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gpushare`\" pulumi-lang-dotnet=\"`Gpushare`\" pulumi-lang-go=\"`gpushare`\" pulumi-lang-python=\"`gpushare`\" pulumi-lang-yaml=\"`gpushare`\" pulumi-lang-java=\"`gpushare`\"\u003e`gpushare`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`spot`\" pulumi-lang-dotnet=\"`Spot`\" pulumi-lang-go=\"`spot`\" pulumi-lang-python=\"`spot`\" pulumi-lang-yaml=\"`spot`\" pulumi-lang-java=\"`spot`\"\u003e`spot`\u003c/span\u003e. Default: \u003cspan pulumi-lang-nodejs=\"`cpu`\" pulumi-lang-dotnet=\"`Cpu`\" pulumi-lang-go=\"`cpu`\" pulumi-lang-python=\"`cpu`\" pulumi-lang-yaml=\"`cpu`\" pulumi-lang-java=\"`cpu`\"\u003e`cpu`\u003c/span\u003e. The actual instance type is determined by \u003cspan pulumi-lang-nodejs=\"`instanceTypes`\" pulumi-lang-dotnet=\"`InstanceTypes`\" pulumi-lang-go=\"`instanceTypes`\" pulumi-lang-python=\"`instance_types`\" pulumi-lang-yaml=\"`instanceTypes`\" pulumi-lang-java=\"`instanceTypes`\"\u003e`instance_types`\u003c/span\u003e.\n"}},"type":"object","required":["eipBandwidth","eipInternetChargeType","enable","isBondEip","maxSize","minSize","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesNodePoolsNodepoolSpotPriceLimit:getKubernetesNodePoolsNodepoolSpotPriceLimit":{"properties":{"instanceType":{"type":"string","description":"The type of the preemptible instance.\n"},"priceLimit":{"type":"string","description":"The maximum price of a single instance.\n"}},"type":"object","required":["instanceType","priceLimit"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesNodePoolsNodepoolTaint:getKubernetesNodePoolsNodepoolTaint":{"properties":{"effect":{"type":"string","description":"The scheduling policy.\n"},"key":{"type":"string","description":"The key of a taint.\n"},"value":{"type":"string","description":"The value of a taint.\n"}},"type":"object","required":["effect","key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesNodePoolsNodepoolTeeConfig:getKubernetesNodePoolsNodepoolTeeConfig":{"properties":{"teeEnable":{"type":"boolean","description":"Specifies whether to enable confidential computing for the cluster.\n"}},"type":"object","required":["teeEnable"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesPermissionPermission:getKubernetesPermissionPermission":{"properties":{"isOwner":{"type":"boolean","description":"Indicates whether the permissions are granted to the cluster owner. Valid values \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"isRamRole":{"type":"boolean","description":"Indicates whether the permissions are granted to the RAM role. Valid values \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"resourceId":{"type":"string","description":"The permission settings to manage ACK clusters.\n"},"resourceType":{"type":"string","description":"The authorization type. Valid values \u003cspan pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\"\u003e`cluster`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`namespace`\" pulumi-lang-dotnet=\"`Namespace`\" pulumi-lang-go=\"`namespace`\" pulumi-lang-python=\"`namespace`\" pulumi-lang-yaml=\"`namespace`\" pulumi-lang-java=\"`namespace`\"\u003e`namespace`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`console`\" pulumi-lang-dotnet=\"`Console`\" pulumi-lang-go=\"`console`\" pulumi-lang-python=\"`console`\" pulumi-lang-yaml=\"`console`\" pulumi-lang-java=\"`console`\"\u003e`console`\u003c/span\u003e.\n"},"roleName":{"type":"string","description":"The name of the predefined role. If a custom role is assigned, the value is the name of the assigined custom role.\n"},"roleType":{"type":"string","description":"The predefined role. Valid values \u003cspan pulumi-lang-nodejs=\"`admin`\" pulumi-lang-dotnet=\"`Admin`\" pulumi-lang-go=\"`admin`\" pulumi-lang-python=\"`admin`\" pulumi-lang-yaml=\"`admin`\" pulumi-lang-java=\"`admin`\"\u003e`admin`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`ops`\" pulumi-lang-dotnet=\"`Ops`\" pulumi-lang-go=\"`ops`\" pulumi-lang-python=\"`ops`\" pulumi-lang-yaml=\"`ops`\" pulumi-lang-java=\"`ops`\"\u003e`ops`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`dev`\" pulumi-lang-dotnet=\"`Dev`\" pulumi-lang-go=\"`dev`\" pulumi-lang-python=\"`dev`\" pulumi-lang-yaml=\"`dev`\" pulumi-lang-java=\"`dev`\"\u003e`dev`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`restricted`\" pulumi-lang-dotnet=\"`Restricted`\" pulumi-lang-go=\"`restricted`\" pulumi-lang-python=\"`restricted`\" pulumi-lang-yaml=\"`restricted`\" pulumi-lang-java=\"`restricted`\"\u003e`restricted`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"}},"type":"object","required":["isOwner","isRamRole","resourceId","resourceType","roleName","roleType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesVersionMetadata:getKubernetesVersionMetadata":{"properties":{"runtimes":{"type":"array","items":{"$ref":"#/types/alicloud:cs/getKubernetesVersionMetadataRuntime:getKubernetesVersionMetadataRuntime"},"description":"The list of supported runtime.\n"},"version":{"type":"string","description":"The runtime version.\n"}},"type":"object","required":["runtimes","version"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getKubernetesVersionMetadataRuntime:getKubernetesVersionMetadataRuntime":{"properties":{"name":{"type":"string","description":"The runtime name.\n"},"version":{"type":"string","description":"The runtime version.\n"}},"type":"object","required":["name","version"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getManagedKubernetesClustersCluster:getManagedKubernetesClustersCluster":{"properties":{"availabilityZone":{"type":"string","description":"The ID of availability zone.\n"},"clusterNetworkType":{"type":"string"},"connections":{"$ref":"#/types/alicloud:cs/getManagedKubernetesClustersClusterConnections:getManagedKubernetesClustersClusterConnections","description":"Map of kubernetes cluster connection information.\n"},"id":{"type":"string","description":"ID of the node.\n"},"imageId":{"type":"string"},"keyName":{"type":"string","description":"The keypair of ssh login cluster node, you have to create it first.\n"},"logConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cs/getManagedKubernetesClustersClusterLogConfig:getManagedKubernetesClustersClusterLogConfig"},"description":"A list of one element containing information about the associated log store. It contains the following attributes:\n"},"name":{"type":"string","description":"Node name.\n"},"natGatewayId":{"type":"string","description":"The ID of nat gateway used to launch kubernetes cluster.\n"},"podCidr":{"type":"string"},"rrsaConfig":{"$ref":"#/types/alicloud:cs/getManagedKubernetesClustersClusterRrsaConfig:getManagedKubernetesClustersClusterRrsaConfig","description":"(Available since v1.245.0) Nested attribute containing RRSA related data for your cluster.\n"},"securityGroupId":{"type":"string","description":"The ID of security group where the current cluster worker node is located.\n"},"serviceCidr":{"type":"string"},"slbInternetEnabled":{"type":"boolean"},"state":{"type":"string","description":"(Available since v1.245.0) The state of cluster.\n"},"vpcId":{"type":"string","description":"The ID of VPC where the current cluster is located.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The ID of VSwitches where the current cluster is located.\n"},"workerAutoRenew":{"type":"boolean"},"workerAutoRenewPeriod":{"type":"integer"},"workerDataDiskCategory":{"type":"string"},"workerDataDiskSize":{"type":"integer"},"workerDiskCategory":{"type":"string"},"workerDiskSize":{"type":"integer"},"workerInstanceChargeType":{"type":"string"},"workerInstanceTypes":{"type":"array","items":{"type":"string"}},"workerNodes":{"type":"array","items":{"$ref":"#/types/alicloud:cs/getManagedKubernetesClustersClusterWorkerNode:getManagedKubernetesClustersClusterWorkerNode"},"description":"List of cluster worker nodes.\n"},"workerNumbers":{"type":"array","items":{"type":"integer"},"description":"The ECS instance node number in the current container cluster.\n"},"workerPeriod":{"type":"integer"},"workerPeriodUnit":{"type":"string"}},"type":"object","required":["availabilityZone","clusterNetworkType","connections","id","imageId","keyName","logConfigs","name","natGatewayId","podCidr","rrsaConfig","securityGroupId","serviceCidr","slbInternetEnabled","state","vpcId","vswitchIds","workerAutoRenew","workerAutoRenewPeriod","workerDataDiskCategory","workerDataDiskSize","workerDiskCategory","workerDiskSize","workerInstanceChargeType","workerInstanceTypes","workerNodes","workerNumbers","workerPeriod","workerPeriodUnit"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getManagedKubernetesClustersClusterConnections:getManagedKubernetesClustersClusterConnections":{"properties":{"apiServerInternet":{"type":"string","description":"API Server Internet endpoint.\n"},"apiServerIntranet":{"type":"string","description":"API Server Intranet endpoint.\n"},"masterPublicIp":{"type":"string","description":"Master node SSH IP address.\n"},"serviceDomain":{"type":"string","description":"Service Access Domain.\n"}},"type":"object","required":["apiServerInternet","apiServerIntranet","masterPublicIp","serviceDomain"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getManagedKubernetesClustersClusterLogConfig:getManagedKubernetesClustersClusterLogConfig":{"properties":{"project":{"type":"string","description":"Log Service project name.\n"},"type":{"type":"string","description":"Type of collecting logs.\n"}},"type":"object","required":["project","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getManagedKubernetesClustersClusterRrsaConfig:getManagedKubernetesClustersClusterRrsaConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether the RRSA feature has been enabled.\n"},"ramOidcProviderArn":{"type":"string","description":"The arn of OIDC provider that was registered in RAM.\n"},"ramOidcProviderName":{"type":"string","description":"The name of OIDC Provider that was registered in RAM.\n"},"rrsaOidcIssuerUrl":{"type":"string","description":"The issuer URL of RRSA OIDC Token.\n"}},"type":"object","required":["enabled","ramOidcProviderArn","ramOidcProviderName","rrsaOidcIssuerUrl"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getManagedKubernetesClustersClusterWorkerNode:getManagedKubernetesClustersClusterWorkerNode":{"properties":{"id":{"type":"string","description":"ID of the node.\n"},"name":{"type":"string","description":"Node name.\n"},"privateIp":{"type":"string","description":"The private IP address of node.\n"}},"type":"object","required":["id","name","privateIp"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getRegistryEnterpriseInstancesInstance:getRegistryEnterpriseInstancesInstance":{"properties":{"authorizationToken":{"type":"string","description":"The password that was used to log on to the registry.\n"},"id":{"type":"string","description":"ID of Container Registry Enterprise Edition instance.\n"},"name":{"type":"string","description":"Name of Container Registry Enterprise Edition instance.\n"},"namespaceQuota":{"type":"string","description":"The max number of namespaces that an instance can create.\n"},"namespaceUsage":{"type":"string","description":"The number of namespaces already created.\n"},"publicEndpoints":{"type":"array","items":{"type":"string"},"description":"A list of domains for access on internet network.\n"},"region":{"type":"string","description":"Region of Container Registry Enterprise Edition instance.\n"},"repoQuota":{"type":"string","description":"The max number of repos that an instance can create.\n"},"repoUsage":{"type":"string","description":"The number of repos already created.\n"},"specification":{"type":"string","description":"Specification of Container Registry Enterprise Edition instance.\n"},"tempUsername":{"type":"string","description":"The username that was used to log on to the registry.\n"},"vpcEndpoints":{"type":"array","items":{"type":"string"},"description":"A list of domains for access on vpc network.\n"}},"type":"object","required":["authorizationToken","id","name","namespaceQuota","namespaceUsage","publicEndpoints","region","repoQuota","repoUsage","specification","tempUsername","vpcEndpoints"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getRegistryEnterpriseNamespacesNamespace:getRegistryEnterpriseNamespacesNamespace":{"properties":{"autoCreate":{"type":"boolean","description":"Boolean, when it set to true, repositories are automatically created when pushing new images. If it set to false, you create repository for images before pushing.\n"},"defaultVisibility":{"type":"string","description":"`PUBLIC` or `PRIVATE`, default repository visibility in this namespace.\n"},"id":{"type":"string","description":"ID of Container Registry Enterprise Edition namespace. It formats as `\u003cinstance_id\u003e:\u003cnamespace_name\u003e`. Before 1.161.0, it is a namespace uuid.\n"},"instanceId":{"type":"string","description":"ID of Container Registry Enterprise Edition instance.\n"},"name":{"type":"string","description":"Name of Container Registry Enterprise Edition namespace.\n"},"namespaceId":{"type":"string","description":"Container Registry Enterprise Edition namespace id. It is a uuid.\n"},"namespaceName":{"type":"string","description":"Name of Container Registry Enterprise Edition namespace.\n"}},"type":"object","required":["autoCreate","defaultVisibility","id","instanceId","name","namespaceId","namespaceName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getRegistryEnterpriseReposRepo:getRegistryEnterpriseReposRepo":{"properties":{"id":{"type":"string","description":"The ID of the Repository.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry instance.\n"},"name":{"type":"string","description":"The name of the Repository.\n"},"namespace":{"type":"string","description":"The name of the namespace to which the Repository belongs.\n"},"repoType":{"type":"string","description":"The type of the Repository.\n"},"summary":{"type":"string","description":"The summary of the Repository.\n"},"tags":{"type":"array","items":{"$ref":"#/types/alicloud:cs/getRegistryEnterpriseReposRepoTag:getRegistryEnterpriseReposRepoTag"},"description":"A list of image tags belong to this Repository. **Note:** \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object","required":["id","instanceId","name","namespace","repoType","summary","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getRegistryEnterpriseReposRepoTag:getRegistryEnterpriseReposRepoTag":{"properties":{"digest":{"type":"string","description":"The digest of the image.\n"},"imageCreate":{"type":"string","description":"The time when the image was created.\n"},"imageId":{"type":"string","description":"The ID of the image.\n"},"imageSize":{"type":"integer","description":"The size of the image.\n"},"imageUpdate":{"type":"string","description":"The time when the image was last updated.\n"},"status":{"type":"string","description":"The status of the image.\n"},"tag":{"type":"string","description":"The tag of the image.\n"}},"type":"object","required":["digest","imageCreate","imageId","imageSize","imageUpdate","status","tag"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getRegistryEnterpriseSyncRulesRule:getRegistryEnterpriseSyncRulesRule":{"properties":{"id":{"type":"string","description":"ID of Container Registry Enterprise Edition sync rule.\n"},"instanceId":{"type":"string","description":"ID of Container Registry Enterprise Edition local instance.\n"},"name":{"type":"string","description":"Name of Container Registry Enterprise Edition sync rule.\n"},"namespaceName":{"type":"string","description":"Name of Container Registry Enterprise Edition local namespace.\n"},"regionId":{"type":"string","description":"Region of Container Registry Enterprise Edition local instance.\n"},"repoName":{"type":"string","description":"Name of Container Registry Enterprise Edition local repo.\n"},"syncDirection":{"type":"string","description":"`FROM` or `TO`, the direction of synchronization. `FROM` indicates that the local instance is the source instance. `TO` indicates that the local instance is the target instance to be synchronized.\n"},"syncScope":{"type":"string","description":"`REPO` or `NAMESPACE`,the scope that the synchronization rule applies.\n"},"syncTrigger":{"type":"string","description":"`PASSIVE` or `INITIATIVE`, the policy configured to trigger the synchronization rule.\n"},"tagFilter":{"type":"string","description":"The regular expression used to filter image tags for synchronization in the source repository.\n"},"targetInstanceId":{"type":"string","description":"ID of Container Registry Enterprise Edition target instance.\n"},"targetNamespaceName":{"type":"string","description":"Name of Container Registry Enterprise Edition target namespace.\n"},"targetRegionId":{"type":"string","description":"Region of Container Registry Enterprise Edition target instance.\n"},"targetRepoName":{"type":"string","description":"Name of Container Registry Enterprise Edition target repo.\n"}},"type":"object","required":["id","instanceId","name","namespaceName","regionId","repoName","syncDirection","syncScope","syncTrigger","tagFilter","targetInstanceId","targetNamespaceName","targetRegionId","targetRepoName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getServerlessKubernetesClustersCluster:getServerlessKubernetesClustersCluster":{"properties":{"connections":{"$ref":"#/types/alicloud:cs/getServerlessKubernetesClustersClusterConnections:getServerlessKubernetesClustersClusterConnections","description":"Map of serverless cluster connection information. It contains several attributes to `Block Connections`.\n"},"deletionProtection":{"type":"boolean","description":"Whether the cluster support delete protection.\n"},"endpointPublicAccessEnabled":{"type":"boolean","description":"Whether to create internet eip for API Server.\n"},"id":{"type":"string","description":"The ID of the container cluster.\n"},"name":{"type":"string","description":"The name of the container cluster.\n"},"natGatewayId":{"type":"string","description":"The ID of nat gateway used to launch kubernetes cluster.\n"},"securityGroupId":{"type":"string","description":"The ID of security group where the current cluster  is located.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the kubernetes cluster.\n"},"vpcId":{"type":"string","description":"The ID of VPC where the current cluster is located.\n"},"vswitchId":{"type":"string","description":"The ID of vSwitch where the current cluster is located.\n"}},"type":"object","required":["connections","deletionProtection","endpointPublicAccessEnabled","id","name","natGatewayId","securityGroupId","tags","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:cs/getServerlessKubernetesClustersClusterConnections:getServerlessKubernetesClustersClusterConnections":{"properties":{"apiServerInternet":{"type":"string","description":"API Server Internet endpoint.\n"},"apiServerIntranet":{"type":"string","description":"API Server Intranet endpoint.\n"},"masterPublicIp":{"type":"string","description":"Master node SSH IP address.\n"}},"type":"object","required":["apiServerInternet","apiServerIntranet","masterPublicIp"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:databasefilesystem/InstanceEcsList:InstanceEcsList":{"properties":{"ecsId":{"type":"string","description":"The ID of the ECS instance.\n"}},"type":"object"},"alicloud:databasefilesystem/getAutoSnapShotPoliciesAutoSnapShotPolicy:getAutoSnapShotPoliciesAutoSnapShotPolicy":{"properties":{"appliedDbfsNumber":{"type":"integer","description":"The number of database file systems set by the automatic snapshot policy.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"id":{"type":"string","description":"The ID of the policy.\n"},"lastModified":{"type":"string","description":"Last modification time of automatic snapshot policy\n"},"policyId":{"type":"string","description":"Automatic snapshot policy ID\n"},"policyName":{"type":"string","description":"Automatic snapshot policy name\n"},"repeatWeekdays":{"type":"array","items":{"type":"string"},"description":"A collection of automatic snapshots performed on several days of the week.\n"},"retentionDays":{"type":"integer","description":"Automatic snapshot retention days\n"},"status":{"type":"string","description":"Automatic snapshot policy status\n"},"statusDetail":{"type":"string","description":"Automatic snapshot policy status details\n"},"timePoints":{"type":"array","items":{"type":"string"},"description":"The set of times at which the snapshot is taken on the day the automatic snapshot is executed.\n"}},"type":"object","required":["appliedDbfsNumber","createTime","id","lastModified","policyId","policyName","repeatWeekdays","retentionDays","status","statusDetail","timePoints"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:databasefilesystem/getInstancesInstance:getInstancesInstance":{"properties":{"attachNodeNumber":{"type":"integer","description":"the number of nodes of the Database file system.\n"},"category":{"type":"string","description":"The type of the Database file system. Valid values: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e.\n"},"createTime":{"type":"string","description":"The create time of the Database file system.\n"},"dbfsClusterId":{"type":"string","description":"The cluster ID of the Database file system.\n"},"ecsLists":{"type":"array","items":{"$ref":"#/types/alicloud:databasefilesystem/getInstancesInstanceEcsList:getInstancesInstanceEcsList"},"description":"The collection of ECS instances mounted to the Database file system.\n"},"enableRaid":{"type":"boolean","description":"Whether to create the Database file system in RAID way. Valid values : \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e anf \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"encryption":{"type":"boolean","description":"Whether to encrypt the Database file system. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"id":{"type":"string","description":"The ID of the Instance.\n"},"instanceId":{"type":"string","description":"The ID of the Database File System\n"},"instanceName":{"type":"string","description":"The name of the Database file system.\n"},"kmsKeyId":{"type":"string","description":"The KMS key ID of the Database file system used. This parameter is valid When \u003cspan pulumi-lang-nodejs=\"`encryption`\" pulumi-lang-dotnet=\"`Encryption`\" pulumi-lang-go=\"`encryption`\" pulumi-lang-python=\"`encryption`\" pulumi-lang-yaml=\"`encryption`\" pulumi-lang-java=\"`encryption`\"\u003e`encryption`\u003c/span\u003e parameter is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"paymentType":{"type":"string","description":"Thr payment type of the Database file system. Valid value: `PayAsYouGo`.\n"},"performanceLevel":{"type":"string","description":"The performance level of the Database file system. Valid values: `PL0`, `PL1`, `PL2`, `PL3`.\n"},"raidStripeUnitNumber":{"type":"string","description":"The number of strip . When \u003cspan pulumi-lang-nodejs=\"`enableRaid`\" pulumi-lang-dotnet=\"`EnableRaid`\" pulumi-lang-go=\"`enableRaid`\" pulumi-lang-python=\"`enable_raid`\" pulumi-lang-yaml=\"`enableRaid`\" pulumi-lang-java=\"`enableRaid`\"\u003e`enable_raid`\u003c/span\u003e parameter is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e will transfer. This parameter is valid When \u003cspan pulumi-lang-nodejs=\"`enableRaid`\" pulumi-lang-dotnet=\"`EnableRaid`\" pulumi-lang-go=\"`enableRaid`\" pulumi-lang-python=\"`enable_raid`\" pulumi-lang-yaml=\"`enableRaid`\" pulumi-lang-java=\"`enableRaid`\"\u003e`enable_raid`\u003c/span\u003e parameter is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"size":{"type":"integer","description":"The size Of the Database file system. Unit: GiB.\n"},"status":{"type":"string","description":"The status of the Database file system.\n"},"zoneId":{"type":"string","description":"The Zone ID of the Database file system.\n"}},"type":"object","required":["attachNodeNumber","category","createTime","dbfsClusterId","ecsLists","enableRaid","encryption","id","instanceId","instanceName","kmsKeyId","paymentType","performanceLevel","raidStripeUnitNumber","size","status","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:databasefilesystem/getInstancesInstanceEcsList:getInstancesInstanceEcsList":{"properties":{"ecsId":{"type":"string","description":"The ID of the ECS instance.\n"}},"type":"object","required":["ecsId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:databasefilesystem/getSnapshotsSnapshot:getSnapshotsSnapshot":{"properties":{"category":{"type":"string","description":"The type of the Snapshot.\n"},"createTime":{"type":"string","description":"The creation time of the snapshot.\n"},"description":{"type":"string","description":"The description of the snapshot.\n"},"id":{"type":"string","description":"The ID of the Snapshot.\n"},"instanceId":{"type":"string","description":"The ID of the database file system.\n"},"lastModifiedTime":{"type":"string","description":"The last modification time of the snapshot.\n"},"progress":{"type":"string","description":"The progress of the snapshot.\n"},"remainTime":{"type":"integer","description":"The remaining completion time of the snapshot being created, in seconds.\n"},"retentionDays":{"type":"integer","description":"The retention days of the snapshot.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot.\n"},"snapshotName":{"type":"string","description":"The name of the snapshot.\n"},"snapshotType":{"type":"string","description":"The creation of the snapshot.\n"},"sourceFsSize":{"type":"integer","description":"Source database file system capacity.\n"},"status":{"type":"string","description":"The status of the snapshot. Possible values: \u003cspan pulumi-lang-nodejs=\"`progressing`\" pulumi-lang-dotnet=\"`Progressing`\" pulumi-lang-go=\"`progressing`\" pulumi-lang-python=\"`progressing`\" pulumi-lang-yaml=\"`progressing`\" pulumi-lang-java=\"`progressing`\"\u003e`progressing`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`accomplished`\" pulumi-lang-dotnet=\"`Accomplished`\" pulumi-lang-go=\"`accomplished`\" pulumi-lang-python=\"`accomplished`\" pulumi-lang-yaml=\"`accomplished`\" pulumi-lang-java=\"`accomplished`\"\u003e`accomplished`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`failed`\" pulumi-lang-dotnet=\"`Failed`\" pulumi-lang-go=\"`failed`\" pulumi-lang-python=\"`failed`\" pulumi-lang-yaml=\"`failed`\" pulumi-lang-java=\"`failed`\"\u003e`failed`\u003c/span\u003e.\n"}},"type":"object","required":["category","createTime","description","id","instanceId","lastModifiedTime","progress","remainTime","retentionDays","snapshotId","snapshotName","snapshotType","sourceFsSize","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:databasegateway/getGatewaysGateway:getGatewaysGateway":{"properties":{"createTime":{"type":"string","description":"The creation time of Gateway.\n"},"gatewayDesc":{"type":"string","description":"The description of Gateway.\n"},"gatewayInstances":{"type":"array","items":{"$ref":"#/types/alicloud:databasegateway/getGatewaysGatewayGatewayInstance:getGatewaysGatewayGatewayInstance"}},"gatewayName":{"type":"string","description":"The name of the Gateway.\n"},"hosts":{"type":"string","description":"A host of information.\n"},"id":{"type":"string","description":"The ID of Gateway.\n"},"modifiedTime":{"type":"string","description":"The Modify time of Gateway.\n"},"parentId":{"type":"string","description":"The parent node Id of Gateway.\n"},"status":{"type":"string","description":"The status of gateway. Valid values: `EXCEPTION`, `NEW`, `RUNNING`, `STOPPED`.\n"},"userId":{"type":"string","description":"The user's id.\n"}},"type":"object","required":["createTime","gatewayDesc","gatewayInstances","gatewayName","hosts","id","modifiedTime","parentId","status","userId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:databasegateway/getGatewaysGatewayGatewayInstance:getGatewaysGatewayGatewayInstance":{"properties":{"connectEndpointType":{"type":"string","description":"The connection type of Gateway instance.\n"},"currentDaemonVersion":{"type":"string","description":"The process of version number of Gateway instance.\n"},"currentVersion":{"type":"string","description":"The version of Gateway instance.\n"},"endPoint":{"type":"string","description":"The endpoint address of Gateway instance.\n"},"gatewayInstanceId":{"type":"string","description":"The id of Gateway instance.\n"},"gatewayInstanceStatus":{"type":"string","description":"The status of Gateway instance. Valid values: `EXCEPTION`, `NEW`, `RUNNING`, `STOPPED`.\n"},"lastUpdateTime":{"type":"string","description":"The last Updated time stamp of Gateway instance.\n"},"localIp":{"type":"string","description":"The Local IP ADDRESS of Gateway instance.\n"},"message":{"type":"string","description":"The prompt information of Gateway instance.\n"},"outputIp":{"type":"string","description":"The host of Gateway instance.\n"}},"type":"object","required":["connectEndpointType","currentDaemonVersion","currentVersion","endPoint","gatewayInstanceId","gatewayInstanceStatus","lastUpdateTime","localIp","message","outputIp"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dataworks/DiAlarmRuleNotificationSettings:DiAlarmRuleNotificationSettings":{"properties":{"inhibitionInterval":{"type":"integer","description":"Alarm suppression interval, in minutes\n"},"notificationChannels":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiAlarmRuleNotificationSettingsNotificationChannel:DiAlarmRuleNotificationSettingsNotificationChannel"},"description":"Alarm notification Channel See \u003cspan pulumi-lang-nodejs=\"`notificationChannels`\" pulumi-lang-dotnet=\"`NotificationChannels`\" pulumi-lang-go=\"`notificationChannels`\" pulumi-lang-python=\"`notification_channels`\" pulumi-lang-yaml=\"`notificationChannels`\" pulumi-lang-java=\"`notificationChannels`\"\u003e`notification_channels`\u003c/span\u003e below.\n"},"notificationReceivers":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiAlarmRuleNotificationSettingsNotificationReceiver:DiAlarmRuleNotificationSettingsNotificationReceiver"},"description":"List of alert notification recipients See \u003cspan pulumi-lang-nodejs=\"`notificationReceivers`\" pulumi-lang-dotnet=\"`NotificationReceivers`\" pulumi-lang-go=\"`notificationReceivers`\" pulumi-lang-python=\"`notification_receivers`\" pulumi-lang-yaml=\"`notificationReceivers`\" pulumi-lang-java=\"`notificationReceivers`\"\u003e`notification_receivers`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:dataworks/DiAlarmRuleNotificationSettingsNotificationChannel:DiAlarmRuleNotificationSettingsNotificationChannel":{"properties":{"channels":{"type":"array","items":{"type":"string"},"description":"Channel, optional enumeration value:\n\nMail (Mail)\n\nPhone (Phone)\n\nSms (Sms)\n\nDing (DingTalk)\n"},"severity":{"type":"string"}},"type":"object"},"alicloud:dataworks/DiAlarmRuleNotificationSettingsNotificationReceiver:DiAlarmRuleNotificationSettingsNotificationReceiver":{"properties":{"receiverType":{"type":"string","description":"The type of the receiver. Valid values: AliyunUid/DingToken/FeishuToken/WebHookUrl.\n"},"receiverValues":{"type":"array","items":{"type":"string"},"description":"Receiver Value List\n"}},"type":"object"},"alicloud:dataworks/DiAlarmRuleTriggerCondition:DiAlarmRuleTriggerCondition":{"properties":{"ddlReportTags":{"type":"array","items":{"type":"string"},"description":"It takes effect only when the DDL notification is issued. The list of effective DDLs is required.\n"},"duration":{"type":"integer","description":"Alarm calculation time interval, unit minute\n"},"severity":{"type":"string","description":"Severity, optional enumeration value:\n\nWarning\n\nCritical\n"},"threshold":{"type":"integer","description":"Alarm threshold.\n\nTask status alarm: no need to fill in the threshold.\n\nfailover alarm: The threshold is the number of failover alarms.\n\nTask Delay Alarm: The threshold is the delay duration, in seconds.\n"}},"type":"object"},"alicloud:dataworks/DiJobDestinationDataSourceSetting:DiJobDestinationDataSourceSetting":{"properties":{"dataSourceName":{"type":"string","description":"Destination data source name\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:dataworks/DiJobJobSettings:DiJobJobSettings":{"properties":{"channelSettings":{"type":"string","description":"Channel-related task settings, in the form of a Json String.\n\nFor example,\n{\"structInfo\":\"MANAGED\",\"storageType\":\"TEXTFILE\",\"writeMode\":\"APPEND\",\"partitionColumns\":[{\"columnName\":\"pt\",\"columnType\":\"STRING\",\"comment\":\"\"}],\"fieldDelimiter\":\"\"}\n"},"columnDataTypeSettings":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobJobSettingsColumnDataTypeSetting:DiJobJobSettingsColumnDataTypeSetting"},"description":"Column type mapping of the synchronization task See \u003cspan pulumi-lang-nodejs=\"`columnDataTypeSettings`\" pulumi-lang-dotnet=\"`ColumnDataTypeSettings`\" pulumi-lang-go=\"`columnDataTypeSettings`\" pulumi-lang-python=\"`column_data_type_settings`\" pulumi-lang-yaml=\"`columnDataTypeSettings`\" pulumi-lang-java=\"`columnDataTypeSettings`\"\u003e`column_data_type_settings`\u003c/span\u003e below.\n"},"cycleScheduleSettings":{"$ref":"#/types/alicloud:dataworks/DiJobJobSettingsCycleScheduleSettings:DiJobJobSettingsCycleScheduleSettings","description":"Periodic scheduling settings See \u003cspan pulumi-lang-nodejs=\"`cycleScheduleSettings`\" pulumi-lang-dotnet=\"`CycleScheduleSettings`\" pulumi-lang-go=\"`cycleScheduleSettings`\" pulumi-lang-python=\"`cycle_schedule_settings`\" pulumi-lang-yaml=\"`cycleScheduleSettings`\" pulumi-lang-java=\"`cycleScheduleSettings`\"\u003e`cycle_schedule_settings`\u003c/span\u003e below.\n"},"ddlHandlingSettings":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobJobSettingsDdlHandlingSetting:DiJobJobSettingsDdlHandlingSetting"},"description":"List of DDL processing settings for synchronization tasks See \u003cspan pulumi-lang-nodejs=\"`ddlHandlingSettings`\" pulumi-lang-dotnet=\"`DdlHandlingSettings`\" pulumi-lang-go=\"`ddlHandlingSettings`\" pulumi-lang-python=\"`ddl_handling_settings`\" pulumi-lang-yaml=\"`ddlHandlingSettings`\" pulumi-lang-java=\"`ddlHandlingSettings`\"\u003e`ddl_handling_settings`\u003c/span\u003e below.\n"},"runtimeSettings":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobJobSettingsRuntimeSetting:DiJobJobSettingsRuntimeSetting"},"description":"Run-time setting parameter list See \u003cspan pulumi-lang-nodejs=\"`runtimeSettings`\" pulumi-lang-dotnet=\"`RuntimeSettings`\" pulumi-lang-go=\"`runtimeSettings`\" pulumi-lang-python=\"`runtime_settings`\" pulumi-lang-yaml=\"`runtimeSettings`\" pulumi-lang-java=\"`runtimeSettings`\"\u003e`runtime_settings`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:dataworks/DiJobJobSettingsColumnDataTypeSetting:DiJobJobSettingsColumnDataTypeSetting":{"properties":{"destinationDataType":{"type":"string","description":"The destination type of the mapping relationship\n"},"sourceDataType":{"type":"string","description":"The source type of the mapping type\n"}},"type":"object"},"alicloud:dataworks/DiJobJobSettingsCycleScheduleSettings:DiJobJobSettingsCycleScheduleSettings":{"properties":{"cycleMigrationType":{"type":"string","description":"The type of synchronization that requires periodic scheduling. Value range:\n\nFull: Full\n\nOfflineIncremental: offline increment\n","willReplaceOnChanges":true},"scheduleParameters":{"type":"string","description":"Scheduling Parameters\n"}},"type":"object"},"alicloud:dataworks/DiJobJobSettingsDdlHandlingSetting:DiJobJobSettingsDdlHandlingSetting":{"properties":{"action":{"type":"string"},"type":{"type":"string","description":"DDL type, optional enumeration value:\n\nRenameColumn (rename column)\n\nModifyColumn (rename column)\n\nCreateTable (Rename Column)\n\nTruncateTable (empty table)\n\nDropTable (delete table)\n"}},"type":"object"},"alicloud:dataworks/DiJobJobSettingsRuntimeSetting:DiJobJobSettingsRuntimeSetting":{"properties":{"name":{"type":"string","description":"Set name, optional ENUM value:\n\nruntime.offline.speed.limit.mb (valid when runtime.offline.speed.limit.enable = true)\n\nruntime.offline.speed.limit.enable\n\ndst.offline.connection.max (the maximum number of write connections for offline batch tasks)\n\nruntime.offline.concurrent (offline batch synchronization task concurrency)\n\ndst.realtime.connection.max (maximum number of write connections for real-time tasks)\n\nruntime.enable.auto.create.schema (whether to automatically create a schema on the target side)\n\nsrc.offline.datasource.max.connection (maximum number of source connections for offline batch tasks)\n\nruntime.realtime.concurrent (real-time task concurrency)\n"},"value":{"type":"string","description":"Runtime setting value\n"}},"type":"object"},"alicloud:dataworks/DiJobResourceSettings:DiJobResourceSettings":{"properties":{"offlineResourceSettings":{"$ref":"#/types/alicloud:dataworks/DiJobResourceSettingsOfflineResourceSettings:DiJobResourceSettingsOfflineResourceSettings","description":"Offline Resource Group configuration See \u003cspan pulumi-lang-nodejs=\"`offlineResourceSettings`\" pulumi-lang-dotnet=\"`OfflineResourceSettings`\" pulumi-lang-go=\"`offlineResourceSettings`\" pulumi-lang-python=\"`offline_resource_settings`\" pulumi-lang-yaml=\"`offlineResourceSettings`\" pulumi-lang-java=\"`offlineResourceSettings`\"\u003e`offline_resource_settings`\u003c/span\u003e below.\n"},"realtimeResourceSettings":{"$ref":"#/types/alicloud:dataworks/DiJobResourceSettingsRealtimeResourceSettings:DiJobResourceSettingsRealtimeResourceSettings","description":"Real-time Resource Group See \u003cspan pulumi-lang-nodejs=\"`realtimeResourceSettings`\" pulumi-lang-dotnet=\"`RealtimeResourceSettings`\" pulumi-lang-go=\"`realtimeResourceSettings`\" pulumi-lang-python=\"`realtime_resource_settings`\" pulumi-lang-yaml=\"`realtimeResourceSettings`\" pulumi-lang-java=\"`realtimeResourceSettings`\"\u003e`realtime_resource_settings`\u003c/span\u003e below.\n"},"scheduleResourceSettings":{"$ref":"#/types/alicloud:dataworks/DiJobResourceSettingsScheduleResourceSettings:DiJobResourceSettingsScheduleResourceSettings","description":"Scheduling Resource Groups See \u003cspan pulumi-lang-nodejs=\"`scheduleResourceSettings`\" pulumi-lang-dotnet=\"`ScheduleResourceSettings`\" pulumi-lang-go=\"`scheduleResourceSettings`\" pulumi-lang-python=\"`schedule_resource_settings`\" pulumi-lang-yaml=\"`scheduleResourceSettings`\" pulumi-lang-java=\"`scheduleResourceSettings`\"\u003e`schedule_resource_settings`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:dataworks/DiJobResourceSettingsOfflineResourceSettings:DiJobResourceSettingsOfflineResourceSettings":{"properties":{"requestedCu":{"type":"number","description":"Scheduling resource group cu\n"},"resourceGroupIdentifier":{"type":"string","description":"Scheduling resource group name\n"}},"type":"object"},"alicloud:dataworks/DiJobResourceSettingsRealtimeResourceSettings:DiJobResourceSettingsRealtimeResourceSettings":{"properties":{"requestedCu":{"type":"number","description":"Scheduling resource group cu\n"},"resourceGroupIdentifier":{"type":"string","description":"Scheduling resource group name\n"}},"type":"object"},"alicloud:dataworks/DiJobResourceSettingsScheduleResourceSettings:DiJobResourceSettingsScheduleResourceSettings":{"properties":{"requestedCu":{"type":"number","description":"Scheduling resource group cu\n"},"resourceGroupIdentifier":{"type":"string","description":"Scheduling resource group name\n"}},"type":"object"},"alicloud:dataworks/DiJobSourceDataSourceSetting:DiJobSourceDataSourceSetting":{"properties":{"dataSourceName":{"type":"string","description":"Data source name of a single source\n","willReplaceOnChanges":true},"dataSourceProperties":{"$ref":"#/types/alicloud:dataworks/DiJobSourceDataSourceSettingDataSourceProperties:DiJobSourceDataSourceSettingDataSourceProperties","description":"Single Source Data Source Properties See \u003cspan pulumi-lang-nodejs=\"`dataSourceProperties`\" pulumi-lang-dotnet=\"`DataSourceProperties`\" pulumi-lang-go=\"`dataSourceProperties`\" pulumi-lang-python=\"`data_source_properties`\" pulumi-lang-yaml=\"`dataSourceProperties`\" pulumi-lang-java=\"`dataSourceProperties`\"\u003e`data_source_properties`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:dataworks/DiJobSourceDataSourceSettingDataSourceProperties:DiJobSourceDataSourceSettingDataSourceProperties":{"properties":{"encoding":{"type":"string","description":"Data Source Encoding\n","willReplaceOnChanges":true},"timezone":{"type":"string","description":"Data Source Time Zone\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:dataworks/DiJobTableMapping:DiJobTableMapping":{"properties":{"sourceObjectSelectionRules":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobTableMappingSourceObjectSelectionRule:DiJobTableMappingSourceObjectSelectionRule"},"description":"Each rule can select different types of source objects to be synchronized, such as source database and source data table. See \u003cspan pulumi-lang-nodejs=\"`sourceObjectSelectionRules`\" pulumi-lang-dotnet=\"`SourceObjectSelectionRules`\" pulumi-lang-go=\"`sourceObjectSelectionRules`\" pulumi-lang-python=\"`source_object_selection_rules`\" pulumi-lang-yaml=\"`sourceObjectSelectionRules`\" pulumi-lang-java=\"`sourceObjectSelectionRules`\"\u003e`source_object_selection_rules`\u003c/span\u003e below.\n"},"transformationRules":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobTableMappingTransformationRule:DiJobTableMappingTransformationRule"},"description":"A list of conversion rule definitions for a synchronization object. Each element in the list defines a conversion rule. See \u003cspan pulumi-lang-nodejs=\"`transformationRules`\" pulumi-lang-dotnet=\"`TransformationRules`\" pulumi-lang-go=\"`transformationRules`\" pulumi-lang-python=\"`transformation_rules`\" pulumi-lang-yaml=\"`transformationRules`\" pulumi-lang-java=\"`transformationRules`\"\u003e`transformation_rules`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:dataworks/DiJobTableMappingSourceObjectSelectionRule:DiJobTableMappingSourceObjectSelectionRule":{"properties":{"action":{"type":"string"},"expression":{"type":"string","description":"Expression, such as mysql_table_1\n"},"expressionType":{"type":"string","description":"Expression type, value range: Exact/Regex\n"},"objectType":{"type":"string","description":"Object type, optional enumeration value:\n\nTable (Table)\n\nDatabase\n"}},"type":"object"},"alicloud:dataworks/DiJobTableMappingTransformationRule:DiJobTableMappingTransformationRule":{"properties":{"ruleActionType":{"type":"string","description":"Action type, optional enumeration value:\n\nDefinePrimaryKey (defines the primary key)\n\nRename\n\nAddColumn (increase column)\n\nHandleDml(DML handling)\n\nDefineIncrementalCondition\n"},"ruleName":{"type":"string","description":"Rule Name\n"},"ruleTargetType":{"type":"string","description":"Target type of action, optional enumeration value:\n\nTable (Table)\n\nSchema(schema)\n"}},"type":"object"},"alicloud:dataworks/DiJobTransformationRule:DiJobTransformationRule":{"properties":{"ruleActionType":{"type":"string","description":"Action type, optional enumeration value:\n\nDefinePrimaryKey (defines the primary key)\n\nRename\n\nAddColumn (increase column)\n\nHandleDml(DML handling)\n\nDefineIncrementalCondition\n"},"ruleExpression":{"type":"string","description":"Regular expression, in json string format.\n\nExample renaming rule (Rename): {\"expression\":\"${srcDatasourceName}_${srcDatabaseName}_0922\",\"variables\":[{\"variableName\":\"srcDatabaseName\",\"variableRules\":[{\"from\":\"fromdb\",\"to\":\"todb\"}]}]}\n"},"ruleName":{"type":"string","description":"Rule Name\n"},"ruleTargetType":{"type":"string","description":"Target type of action, optional enumeration value:\n\nTable (Table)\n\nSchema(schema)\n"}},"type":"object"},"alicloud:dataworks/ProjectMemberRole:ProjectMemberRole":{"properties":{"code":{"type":"string","description":"Project Role Code.\n"},"name":{"type":"string","description":"project role name\n"},"type":{"type":"string","description":"project role type\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","type"]}}},"alicloud:dataworks/getFoldersFolder:getFoldersFolder":{"properties":{"folderId":{"type":"string"},"folderPath":{"type":"string","description":"Folder Path.\n"},"id":{"type":"string","description":"The Folder ID.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"}},"type":"object","required":["folderId","folderPath","id","projectId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dbs/getBackupPlansPlan:getBackupPlansPlan":{"properties":{"backupGatewayId":{"type":"string","description":"The ID of the backup gateway.\n"},"backupMethod":{"type":"string","description":"The Backup method.\n"},"backupObjects":{"type":"string","description":"The backup object.\n"},"backupPeriod":{"type":"string","description":"Full backup cycle.\n"},"backupPlanId":{"type":"string","description":"The first ID of the resource.\n"},"backupPlanName":{"type":"string","description":"The name of the resource.\n"},"backupRetentionPeriod":{"type":"integer","description":"The retention time of backup data.\n"},"backupStartTime":{"type":"string","description":"The start time of full Backup.\n"},"backupStorageType":{"type":"string","description":"Built-in storage type.\n"},"crossAliyunId":{"type":"string","description":"The UID that is backed up across Alibaba cloud accounts.\n"},"crossRoleName":{"type":"string","description":"The name of the RAM role that is backed up across Alibaba cloud accounts.\n"},"databaseType":{"type":"string","description":"The database type.\n"},"duplicationArchivePeriod":{"type":"integer","description":"The storage time for conversion to archive cold standby is 365 days by default.\n"},"duplicationInfrequentAccessPeriod":{"type":"integer","description":"The storage time is converted to low-frequency access. The default time is 180 days.\n"},"enableBackupLog":{"type":"boolean","description":"Whether to enable incremental log Backup.\n"},"id":{"type":"string","description":"The ID of the Backup Plan.\n"},"instanceClass":{"type":"string","description":"The Instance class.\n"},"ossBucketName":{"type":"string","description":"The OSS Bucket name.\n"},"paymentType":{"type":"string","description":"The payment type of the resource.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sourceEndpointDatabaseName":{"type":"string","description":"The name of the database.\n"},"sourceEndpointInstanceId":{"type":"string","description":"The ID of the database instance.\n"},"sourceEndpointInstanceType":{"type":"string","description":"The location of the database.\n"},"sourceEndpointRegion":{"type":"string","description":"The region of the database.\n"},"sourceEndpointSid":{"type":"string","description":"The Oracle SID name.\n"},"sourceEndpointUserName":{"type":"string","description":"The source endpoint username.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object","required":["backupGatewayId","backupMethod","backupObjects","backupPeriod","backupPlanId","backupPlanName","backupRetentionPeriod","backupStartTime","backupStorageType","crossAliyunId","crossRoleName","databaseType","duplicationArchivePeriod","duplicationInfrequentAccessPeriod","enableBackupLog","id","instanceClass","ossBucketName","paymentType","resourceGroupId","sourceEndpointDatabaseName","sourceEndpointInstanceId","sourceEndpointInstanceType","sourceEndpointRegion","sourceEndpointSid","sourceEndpointUserName","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dcdn/DomainConfigFunctionArg:DomainConfigFunctionArg":{"properties":{"argName":{"type":"string","description":"The name of arg.\n"},"argValue":{"type":"string","description":"The value of arg.\n"}},"type":"object","required":["argName","argValue"]},"alicloud:dcdn/DomainSource:DomainSource":{"properties":{"content":{"type":"string","description":"The address of the source station.\n"},"port":{"type":"integer","description":"The port number. Valid values: \u003cspan pulumi-lang-nodejs=\"`443`\" pulumi-lang-dotnet=\"`443`\" pulumi-lang-go=\"`443`\" pulumi-lang-python=\"`443`\" pulumi-lang-yaml=\"`443`\" pulumi-lang-java=\"`443`\"\u003e`443`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`80`\" pulumi-lang-dotnet=\"`80`\" pulumi-lang-go=\"`80`\" pulumi-lang-python=\"`80`\" pulumi-lang-yaml=\"`80`\" pulumi-lang-java=\"`80`\"\u003e`80`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`80`\" pulumi-lang-dotnet=\"`80`\" pulumi-lang-go=\"`80`\" pulumi-lang-python=\"`80`\" pulumi-lang-yaml=\"`80`\" pulumi-lang-java=\"`80`\"\u003e`80`\u003c/span\u003e.\n"},"priority":{"type":"string","description":"The priority of the origin if multiple origins are specified. Default to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of the origin. Valid values:\n"},"weight":{"type":"string","description":"The weight of the origin if multiple origins are specified. Default to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port","priority","weight"]}}},"alicloud:dcdn/ErEnvConf:ErEnvConf":{"properties":{"presetCanaryAnhui":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryAnhui:ErEnvConfPresetCanaryAnhui","description":"The configuration of a presetCanaryAnhui environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryBeijing":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryBeijing:ErEnvConfPresetCanaryBeijing","description":"The configuration of a presetCanaryBeijing environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryChongqing":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryChongqing:ErEnvConfPresetCanaryChongqing","description":"The configuration of a presetCanaryChongqing environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryFujian":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryFujian:ErEnvConfPresetCanaryFujian","description":"The configuration of a presetCanaryFujian environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryGansu":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryGansu:ErEnvConfPresetCanaryGansu","description":"The configuration of a presetCanaryGansu environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryGuangdong":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryGuangdong:ErEnvConfPresetCanaryGuangdong","description":"The configuration of a presetCanaryGuangdong environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryGuangxi":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryGuangxi:ErEnvConfPresetCanaryGuangxi","description":"The configuration of a presetCanaryGuangxi environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryGuizhou":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryGuizhou:ErEnvConfPresetCanaryGuizhou","description":"The configuration of a presetCanaryGuizhou environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryHainan":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryHainan:ErEnvConfPresetCanaryHainan","description":"The configuration of a presetCanaryHainan environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryHebei":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryHebei:ErEnvConfPresetCanaryHebei","description":"The configuration of a presetCanaryHebei environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryHeilongjiang":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryHeilongjiang:ErEnvConfPresetCanaryHeilongjiang","description":"The configuration of a presetCanaryHeilongjiang environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryHenan":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryHenan:ErEnvConfPresetCanaryHenan","description":"The configuration of a presetCanaryHenan environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryHongKong":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryHongKong:ErEnvConfPresetCanaryHongKong","description":"The configuration of a presetCanaryHongKong environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryHubei":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryHubei:ErEnvConfPresetCanaryHubei","description":"The configuration of a presetCanaryHubei environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryHunan":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryHunan:ErEnvConfPresetCanaryHunan","description":"The configuration of a presetCanaryHunan environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryJiangsu":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryJiangsu:ErEnvConfPresetCanaryJiangsu","description":"The configuration of a presetCanaryJiangsu environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryJiangxi":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryJiangxi:ErEnvConfPresetCanaryJiangxi","description":"The configuration of a presetCanaryJiangxi environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryJilin":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryJilin:ErEnvConfPresetCanaryJilin","description":"The configuration of a presetCanaryJilin environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryLiaoning":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryLiaoning:ErEnvConfPresetCanaryLiaoning","description":"The configuration of a presetCanaryLiaoning environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryMacau":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryMacau:ErEnvConfPresetCanaryMacau","description":"The configuration of a presetCanaryMacau environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryNeimenggu":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryNeimenggu:ErEnvConfPresetCanaryNeimenggu","description":"The configuration of a presetCanaryNeimenggu environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryNingxia":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryNingxia:ErEnvConfPresetCanaryNingxia","description":"The configuration of a presetCanaryNingxia environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryOverseas":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryOverseas:ErEnvConfPresetCanaryOverseas","description":"The configuration of a presetCanaryOverseas environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryQinghai":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryQinghai:ErEnvConfPresetCanaryQinghai","description":"The configuration of a presetCanaryQinghai environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryShaanxi":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryShaanxi:ErEnvConfPresetCanaryShaanxi","description":"The configuration of a presetCanaryShaanxi environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryShandong":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryShandong:ErEnvConfPresetCanaryShandong","description":"The configuration of a presetCanaryShandong environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryShanghai":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryShanghai:ErEnvConfPresetCanaryShanghai","description":"The configuration of a presetCanaryShanghai environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryShanxi":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryShanxi:ErEnvConfPresetCanaryShanxi","description":"The configuration of a presetCanaryShanxi environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanarySichuan":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanarySichuan:ErEnvConfPresetCanarySichuan","description":"The configuration of a presetCanarySichuan environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryTaiwan":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryTaiwan:ErEnvConfPresetCanaryTaiwan","description":"The configuration of a presetCanaryTaiwan environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryTianjin":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryTianjin:ErEnvConfPresetCanaryTianjin","description":"The configuration of a presetCanaryTianjin environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryXinjiang":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryXinjiang:ErEnvConfPresetCanaryXinjiang","description":"The configuration of a presetCanaryXinjiang environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryXizang":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryXizang:ErEnvConfPresetCanaryXizang","description":"The configuration of a presetCanaryXizang environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryYunnan":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryYunnan:ErEnvConfPresetCanaryYunnan","description":"The configuration of a presetCanaryYunnan environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"presetCanaryZhejiang":{"$ref":"#/types/alicloud:dcdn/ErEnvConfPresetCanaryZhejiang:ErEnvConfPresetCanaryZhejiang","description":"The configuration of a presetCanaryZhejiang environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"production":{"$ref":"#/types/alicloud:dcdn/ErEnvConfProduction:ErEnvConfProduction","description":"The configuration of a production environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"},"staging":{"$ref":"#/types/alicloud:dcdn/ErEnvConfStaging:ErEnvConfStaging","description":"The configuration of a staging environment. See \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["presetCanaryAnhui","presetCanaryBeijing","presetCanaryChongqing","presetCanaryFujian","presetCanaryGansu","presetCanaryGuangdong","presetCanaryGuangxi","presetCanaryGuizhou","presetCanaryHainan","presetCanaryHebei","presetCanaryHeilongjiang","presetCanaryHenan","presetCanaryHongKong","presetCanaryHubei","presetCanaryHunan","presetCanaryJiangsu","presetCanaryJiangxi","presetCanaryJilin","presetCanaryLiaoning","presetCanaryMacau","presetCanaryNeimenggu","presetCanaryNingxia","presetCanaryOverseas","presetCanaryQinghai","presetCanaryShaanxi","presetCanaryShandong","presetCanaryShanghai","presetCanaryShanxi","presetCanarySichuan","presetCanaryTaiwan","presetCanaryTianjin","presetCanaryXinjiang","presetCanaryXizang","presetCanaryYunnan","presetCanaryZhejiang","production","staging"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryAnhui:ErEnvConfPresetCanaryAnhui":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryBeijing:ErEnvConfPresetCanaryBeijing":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryChongqing:ErEnvConfPresetCanaryChongqing":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryFujian:ErEnvConfPresetCanaryFujian":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryGansu:ErEnvConfPresetCanaryGansu":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryGuangdong:ErEnvConfPresetCanaryGuangdong":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryGuangxi:ErEnvConfPresetCanaryGuangxi":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryGuizhou:ErEnvConfPresetCanaryGuizhou":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryHainan:ErEnvConfPresetCanaryHainan":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryHebei:ErEnvConfPresetCanaryHebei":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryHeilongjiang:ErEnvConfPresetCanaryHeilongjiang":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryHenan:ErEnvConfPresetCanaryHenan":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryHongKong:ErEnvConfPresetCanaryHongKong":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryHubei:ErEnvConfPresetCanaryHubei":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryHunan:ErEnvConfPresetCanaryHunan":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryJiangsu:ErEnvConfPresetCanaryJiangsu":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryJiangxi:ErEnvConfPresetCanaryJiangxi":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryJilin:ErEnvConfPresetCanaryJilin":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryLiaoning:ErEnvConfPresetCanaryLiaoning":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryMacau:ErEnvConfPresetCanaryMacau":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryNeimenggu:ErEnvConfPresetCanaryNeimenggu":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryNingxia:ErEnvConfPresetCanaryNingxia":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryOverseas:ErEnvConfPresetCanaryOverseas":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryQinghai:ErEnvConfPresetCanaryQinghai":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryShaanxi:ErEnvConfPresetCanaryShaanxi":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryShandong:ErEnvConfPresetCanaryShandong":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryShanghai:ErEnvConfPresetCanaryShanghai":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryShanxi:ErEnvConfPresetCanaryShanxi":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanarySichuan:ErEnvConfPresetCanarySichuan":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryTaiwan:ErEnvConfPresetCanaryTaiwan":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryTianjin:ErEnvConfPresetCanaryTianjin":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryXinjiang:ErEnvConfPresetCanaryXinjiang":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryXizang:ErEnvConfPresetCanaryXizang":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryYunnan:ErEnvConfPresetCanaryYunnan":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfPresetCanaryZhejiang:ErEnvConfPresetCanaryZhejiang":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfProduction:ErEnvConfProduction":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/ErEnvConfStaging:ErEnvConfStaging":{"properties":{"allowedHosts":{"type":"array","items":{"type":"string"},"description":"Allowed DCDN domain names.\n"},"codeRev":{"type":"string","description":"The version number of the code.\n"},"specName":{"type":"string","description":"The specification of the CPU time slice. Valid values: \u003cspan pulumi-lang-nodejs=\"`5ms`\" pulumi-lang-dotnet=\"`5ms`\" pulumi-lang-go=\"`5ms`\" pulumi-lang-python=\"`5ms`\" pulumi-lang-yaml=\"`5ms`\" pulumi-lang-java=\"`5ms`\"\u003e`5ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50ms`\" pulumi-lang-dotnet=\"`50ms`\" pulumi-lang-go=\"`50ms`\" pulumi-lang-python=\"`50ms`\" pulumi-lang-yaml=\"`50ms`\" pulumi-lang-java=\"`50ms`\"\u003e`50ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100ms`\" pulumi-lang-dotnet=\"`100ms`\" pulumi-lang-go=\"`100ms`\" pulumi-lang-python=\"`100ms`\" pulumi-lang-yaml=\"`100ms`\" pulumi-lang-java=\"`100ms`\"\u003e`100ms`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedHosts","specName"]}}},"alicloud:dcdn/IpaDomainSource:IpaDomainSource":{"properties":{"content":{"type":"string","description":"The address of the origin server. You can specify an IP address or a domain name.\n"},"port":{"type":"integer","description":"The custom port number. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n"},"priority":{"type":"string","description":"The priority of the origin server. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e. A value of 20 specifies that the origin is a primary origin. A value of 30 specifies that the origin is a secondary origin.\n"},"type":{"type":"string","description":"The type of the origin server. Valid values: \u003cspan pulumi-lang-nodejs=\"`ipaddr`\" pulumi-lang-dotnet=\"`Ipaddr`\" pulumi-lang-go=\"`ipaddr`\" pulumi-lang-python=\"`ipaddr`\" pulumi-lang-yaml=\"`ipaddr`\" pulumi-lang-java=\"`ipaddr`\"\u003e`ipaddr`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oss`\" pulumi-lang-dotnet=\"`Oss`\" pulumi-lang-go=\"`oss`\" pulumi-lang-python=\"`oss`\" pulumi-lang-yaml=\"`oss`\" pulumi-lang-java=\"`oss`\"\u003e`oss`\u003c/span\u003e.\n"},"weight":{"type":"integer","description":"The weight of the origin server. You must specify a value that is less than \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\n"}},"type":"object","required":["content","port","priority","type","weight"]},"alicloud:dcdn/WafRuleCondition:WafRuleCondition":{"properties":{"key":{"type":"string","description":"The match field.\n"},"opValue":{"type":"string","description":"The logical symbol.\n"},"subKey":{"type":"string","description":"The match subfield.\n"},"values":{"type":"string","description":"The match content. Separate multiple values with commas (,).\n"}},"type":"object","required":["key","opValue"]},"alicloud:dcdn/WafRuleRateLimit:WafRuleRateLimit":{"properties":{"interval":{"type":"integer","description":"Statistical duration, 5-1800.\n"},"status":{"$ref":"#/types/alicloud:dcdn/WafRuleRateLimitStatus:WafRuleRateLimitStatus","description":"Response code statistics. See \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e below.\n"},"subKey":{"type":"string","description":"The subfield of the target field. If you set \u003cspan pulumi-lang-nodejs=\"`target`\" pulumi-lang-dotnet=\"`Target`\" pulumi-lang-go=\"`target`\" pulumi-lang-python=\"`target`\" pulumi-lang-yaml=\"`target`\" pulumi-lang-java=\"`target`\"\u003e`target`\u003c/span\u003e to `Header`, `Query String Parameter`, or `Cookie Name`, you must configure \u003cspan pulumi-lang-nodejs=\"`subKey`\" pulumi-lang-dotnet=\"`SubKey`\" pulumi-lang-go=\"`subKey`\" pulumi-lang-python=\"`sub_key`\" pulumi-lang-yaml=\"`subKey`\" pulumi-lang-java=\"`subKey`\"\u003e`sub_key`\u003c/span\u003e.\n"},"target":{"type":"string","description":"The statistical field for frequency control. Currently, `IP`, `Header`, `Query String Parameter`, `Cookie Name`, `Session` is supported.\n"},"threshold":{"type":"integer","description":"The trigger threshold of rate limiting. Valid values: 2 to 500000. Unit: requests.\n"},"ttl":{"type":"integer","description":"The validity period of the blacklist. Valid values: 60 to 86400. Unit: seconds.\n"}},"type":"object"},"alicloud:dcdn/WafRuleRateLimitStatus:WafRuleRateLimitStatus":{"properties":{"code":{"type":"string","description":"The HTTP status code returned.\n"},"count":{"type":"integer","description":"The number of times that the HTTP status code that was returned. Valid values: 2 to 50000. You can configure only one of the \u003cspan pulumi-lang-nodejs=\"`ratio`\" pulumi-lang-dotnet=\"`Ratio`\" pulumi-lang-go=\"`ratio`\" pulumi-lang-python=\"`ratio`\" pulumi-lang-yaml=\"`ratio`\" pulumi-lang-java=\"`ratio`\"\u003e`ratio`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`count`\" pulumi-lang-dotnet=\"`Count`\" pulumi-lang-go=\"`count`\" pulumi-lang-python=\"`count`\" pulumi-lang-yaml=\"`count`\" pulumi-lang-java=\"`count`\"\u003e`count`\u003c/span\u003e fields.\n"},"ratio":{"type":"integer","description":"The percentage of HTTP status codes. Valid values: 1 to 100. You can configure only one of the \u003cspan pulumi-lang-nodejs=\"`ratio`\" pulumi-lang-dotnet=\"`Ratio`\" pulumi-lang-go=\"`ratio`\" pulumi-lang-python=\"`ratio`\" pulumi-lang-yaml=\"`ratio`\" pulumi-lang-java=\"`ratio`\"\u003e`ratio`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`count`\" pulumi-lang-dotnet=\"`Count`\" pulumi-lang-go=\"`count`\" pulumi-lang-python=\"`count`\" pulumi-lang-yaml=\"`count`\" pulumi-lang-java=\"`count`\"\u003e`count`\u003c/span\u003e fields.\n"}},"type":"object"},"alicloud:dcdn/getDomainsDomain:getDomainsDomain":{"properties":{"certName":{"type":"string","description":"Indicates the name of the certificate.\n"},"cname":{"type":"string","description":"The canonical name (CNAME) of the accelerated domain.\n"},"description":{"type":"string","description":"The reason that causes the review failure.\n"},"domainName":{"type":"string","description":"The name of the DCDN Domain.\n"},"gmtModified":{"type":"string","description":"The time when the accelerated domain was last modified.\n"},"id":{"type":"string","description":"The ID of the DCDN Domain.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"scope":{"type":"string","description":"The acceleration region.\n"},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/getDomainsDomainSource:getDomainsDomainSource"},"description":"The origin information.\n"},"sslProtocol":{"type":"string","description":"Indicates whether the SSL certificate is enabled.\n"},"sslPub":{"type":"string","description":"Indicates the public key of the certificate.\n"},"status":{"type":"string","description":"The status of DCDN Domain.\n"}},"type":"object","required":["certName","cname","description","domainName","gmtModified","id","resourceGroupId","scope","sources","sslProtocol","sslPub","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dcdn/getDomainsDomainSource:getDomainsDomainSource":{"properties":{"content":{"type":"string","description":"The origin address.\n"},"enabled":{"type":"string","description":"The status of the origin.\n"},"port":{"type":"integer","description":"The port number.\n"},"priority":{"type":"string","description":"The priority of the origin if multiple origins are specified.\n"},"type":{"type":"string","description":"The type of the origin. Valid values:\n"},"weight":{"type":"string","description":"The weight of the origin if multiple origins are specified.\n"}},"type":"object","required":["content","enabled","port","priority","type","weight"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dcdn/getIpaDomainsDomain:getIpaDomainsDomain":{"properties":{"certName":{"type":"string","description":"CertName.\n"},"cname":{"type":"string","description":"The CNAME assigned to the domain name.\n"},"createTime":{"type":"string","description":"The time when the accelerated domain name was created.\n"},"description":{"type":"string","description":"The description.\n"},"domainName":{"type":"string","description":"The name of the Domain.\n"},"id":{"type":"string","description":"The ID of the Ipa Domain.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"scope":{"type":"string","description":"The accelerated region.\n"},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/getIpaDomainsDomainSource:getIpaDomainsDomainSource"},"description":"The information about the origin server.\n"},"sslProtocol":{"type":"string","description":"Indicates whether the Security Socket Layer (SSL) certificate is enabled.\n"},"sslPub":{"type":"string","description":"Indicates the public key of the certificate if the HTTPS protocol is enabled.\n"},"status":{"type":"string","description":"The status of the accelerated domain name. Valid values: \u003cspan pulumi-lang-nodejs=\"`checkFailed`\" pulumi-lang-dotnet=\"`CheckFailed`\" pulumi-lang-go=\"`checkFailed`\" pulumi-lang-python=\"`check_failed`\" pulumi-lang-yaml=\"`checkFailed`\" pulumi-lang-java=\"`checkFailed`\"\u003e`check_failed`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`checking`\" pulumi-lang-dotnet=\"`Checking`\" pulumi-lang-go=\"`checking`\" pulumi-lang-python=\"`checking`\" pulumi-lang-yaml=\"`checking`\" pulumi-lang-java=\"`checking`\"\u003e`checking`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configureFailed`\" pulumi-lang-dotnet=\"`ConfigureFailed`\" pulumi-lang-go=\"`configureFailed`\" pulumi-lang-python=\"`configure_failed`\" pulumi-lang-yaml=\"`configureFailed`\" pulumi-lang-java=\"`configureFailed`\"\u003e`configure_failed`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e.\n"}},"type":"object","required":["certName","cname","createTime","description","domainName","id","resourceGroupId","scope","sources","sslProtocol","sslPub","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dcdn/getIpaDomainsDomainSource:getIpaDomainsDomainSource":{"properties":{"content":{"type":"string","description":"The address of the origin server.\n"},"port":{"type":"integer","description":"The custom port.\n"},"priority":{"type":"string","description":"The priority of the origin server if multiple origin servers are specified.\n"},"type":{"type":"string","description":"The type of the origin server.\n"},"weight":{"type":"integer","description":"The weight of the origin server if multiple origin servers are specified.\n"}},"type":"object","required":["content","port","priority","type","weight"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dcdn/getWafDomainsDomain:getWafDomainsDomain":{"properties":{"clientIpTag":{"type":"string","description":"The client ip tag.\n"},"defenseScenes":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/getWafDomainsDomainDefenseScene:getWafDomainsDomainDefenseScene"},"description":"Protection policy type.\n"},"domainName":{"type":"string","description":"The accelerated domain name.\n"},"id":{"type":"string","description":"The ID of the Waf Domain.\n"}},"type":"object","required":["clientIpTag","defenseScenes","domainName","id"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dcdn/getWafDomainsDomainDefenseScene:getWafDomainsDomainDefenseScene":{"properties":{"defenseScene":{"type":"string","description":"The type of protection policy.\n"},"policyId":{"type":"string","description":"The protection policy ID.\n"}},"type":"object","required":["defenseScene","policyId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dcdn/getWafPoliciesPolicy:getWafPoliciesPolicy":{"properties":{"dcdnWafPolicyId":{"type":"string","description":"The first ID of the resource.\n"},"defenseScene":{"type":"string","description":"The type of protection policy.\n"},"domainCount":{"type":"integer","description":"The number of domain names that use this protection policy.\n"},"gmtModified":{"type":"string","description":"The time when the protection policy was modified.\n"},"id":{"type":"string","description":"The ID of the Waf Policy.\n"},"policyName":{"type":"string","description":"The name of the protection policy.\n"},"policyType":{"type":"string","description":"The type of the protection policy.\n"},"ruleCount":{"type":"string","description":"The number of protection rules in this protection policy.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"}},"type":"object","required":["dcdnWafPolicyId","defenseScene","domainCount","gmtModified","id","policyName","policyType","ruleCount","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dcdn/getWafRulesWafRule:getWafRulesWafRule":{"properties":{"action":{"type":"string","description":"Specifies the action of the rule.\n"},"ccStatus":{"type":"string","description":"Whether to turn on Frequency Control, on/off\n"},"cnRegionList":{"type":"string","description":"The blocked regions in the Chinese mainland, separated by commas (,).\n"},"conditions":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/getWafRulesWafRuleCondition:getWafRulesWafRuleCondition"},"description":"The trigger condition of the rule.\n"},"defenseScene":{"type":"string","description":"The type of protection policy. The following scenarios are supported:-waf_group:Web basic protection-custom_acl: Custom protection policy-whitelist: whitelist\n"},"effect":{"type":"string","description":"The effective range of the frequency control blacklist.\n"},"gmtModified":{"type":"string","description":"Revised the time. The date format is based on ISO8601 notation and uses UTC +0 time in the format of yyyy-MM-ddTHH:mm:ssZ.\n"},"id":{"type":"string","description":"The ID of the Waf Rule.\n"},"otherRegionList":{"type":"string","description":"The effective range of the frequency control blacklist.\n"},"policyId":{"type":"string","description":"The protection policy ID.\n"},"rateLimits":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/getWafRulesWafRuleRateLimit:getWafRulesWafRuleRateLimit"},"description":"The rules of rate limiting.\n"},"regularRules":{"type":"array","items":{"type":"string"},"description":"The regular expression.\n"},"regularTypes":{"type":"array","items":{"type":"string"},"description":"The type of the regular expression. If the value of the tags field contains waf_group, you can specify this field.\n"},"remoteAddrs":{"type":"array","items":{"type":"string"},"description":"Filter by IP address.\n"},"ruleName":{"type":"string","description":"The name of the protection rule.\n"},"scenes":{"type":"array","items":{"type":"string"},"description":"List of protection scenarios\n"},"status":{"type":"string","description":"The information about the HTTP status code.\n"},"wafGroupIds":{"type":"string","description":"The id of the waf rule group.\n"},"wafRuleId":{"type":"string","description":"The first ID of the resource\n"}},"type":"object","required":["action","ccStatus","cnRegionList","conditions","defenseScene","effect","gmtModified","id","otherRegionList","policyId","rateLimits","regularRules","regularTypes","remoteAddrs","ruleName","scenes","status","wafGroupIds","wafRuleId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dcdn/getWafRulesWafRuleCondition:getWafRulesWafRuleCondition":{"properties":{"key":{"type":"string","description":"The match field.\n"},"opValue":{"type":"string","description":"The logical symbol.\n"},"subKey":{"type":"string","description":"The subfield of the target field.\n"},"values":{"type":"string","description":"The match content. Separate multiple values with commas (,).\n"}},"type":"object","required":["key","opValue","subKey","values"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dcdn/getWafRulesWafRuleRateLimit:getWafRulesWafRuleRateLimit":{"properties":{"interval":{"type":"integer","description":"The statistical interval. Valid values: 5 to 1800. Unit: seconds.\n"},"statuses":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/getWafRulesWafRuleRateLimitStatus:getWafRulesWafRuleRateLimitStatus"},"description":"The information about the HTTP status code.\n"},"subKey":{"type":"string","description":"The subfield of the target field.\n"},"target":{"type":"string","description":"The statistical field for frequency control.\n"},"threshold":{"type":"integer","description":"The trigger threshold of rate limiting. Valid values: 2 to 500000. Unit: requests.\n"},"ttl":{"type":"integer","description":"The validity period of the blacklist. Valid values: 60 to 86400. Unit: seconds.\n"}},"type":"object","required":["interval","statuses","subKey","target","threshold","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dcdn/getWafRulesWafRuleRateLimitStatus:getWafRulesWafRuleRateLimitStatus":{"properties":{"code":{"type":"string","description":"The HTTP status code returned.\n"},"count":{"type":"integer","description":"The number of times that the HTTP status code that was returned.\n"},"ratio":{"type":"integer","description":"The percentage of HTTP status codes.\n"}},"type":"object","required":["code","count","ratio"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ddos/BgpPolicyContent:BgpPolicyContent":{"properties":{"blackIpListExpireAt":{"type":"integer","description":"Blacklist and whitelist timeout.\n"},"enableDefense":{"type":"boolean","description":"Whether to enable L4 protection.\n"},"enableDropIcmp":{"type":"boolean","description":"Switch to discard ICMP.\n"},"enableIntelligence":{"type":"boolean","description":"Whether the intelligent switch is on.\n"},"fingerPrintRuleLists":{"type":"array","items":{"$ref":"#/types/alicloud:ddos/BgpPolicyContentFingerPrintRuleList:BgpPolicyContentFingerPrintRuleList"},"description":"Fingerprint Rules. See \u003cspan pulumi-lang-nodejs=\"`fingerPrintRuleList`\" pulumi-lang-dotnet=\"`FingerPrintRuleList`\" pulumi-lang-go=\"`fingerPrintRuleList`\" pulumi-lang-python=\"`finger_print_rule_list`\" pulumi-lang-yaml=\"`fingerPrintRuleList`\" pulumi-lang-java=\"`fingerPrintRuleList`\"\u003e`finger_print_rule_list`\u003c/span\u003e below.\n"},"intelligenceLevel":{"type":"string","description":"Smart mode. Valid values: weak, hard, and default.\n"},"layer4RuleLists":{"type":"array","items":{"$ref":"#/types/alicloud:ddos/BgpPolicyContentLayer4RuleList:BgpPolicyContentLayer4RuleList"},"description":"L4 protection rules. See \u003cspan pulumi-lang-nodejs=\"`layer4RuleList`\" pulumi-lang-dotnet=\"`Layer4RuleList`\" pulumi-lang-go=\"`layer4RuleList`\" pulumi-lang-python=\"`layer4_rule_list`\" pulumi-lang-yaml=\"`layer4RuleList`\" pulumi-lang-java=\"`layer4RuleList`\"\u003e`layer4_rule_list`\u003c/span\u003e below.\n"},"portRuleLists":{"type":"array","items":{"$ref":"#/types/alicloud:ddos/BgpPolicyContentPortRuleList:BgpPolicyContentPortRuleList"},"description":"Port Rule List. See \u003cspan pulumi-lang-nodejs=\"`portRuleList`\" pulumi-lang-dotnet=\"`PortRuleList`\" pulumi-lang-go=\"`portRuleList`\" pulumi-lang-python=\"`port_rule_list`\" pulumi-lang-yaml=\"`portRuleList`\" pulumi-lang-java=\"`portRuleList`\"\u003e`port_rule_list`\u003c/span\u003e below.\n"},"reflectBlockUdpPortLists":{"type":"array","items":{"type":"integer"},"description":"Reflective port filtering.\n"},"regionBlockCountryLists":{"type":"array","items":{"type":"integer"},"description":"List of Regional Banned Countries.\n"},"regionBlockProvinceLists":{"type":"array","items":{"type":"integer"},"description":"List of Prohibited Provinces by Region.\n"},"sourceBlockLists":{"type":"array","items":{"$ref":"#/types/alicloud:ddos/BgpPolicyContentSourceBlockList:BgpPolicyContentSourceBlockList"},"description":"Source pull Black. See \u003cspan pulumi-lang-nodejs=\"`sourceBlockList`\" pulumi-lang-dotnet=\"`SourceBlockList`\" pulumi-lang-go=\"`sourceBlockList`\" pulumi-lang-python=\"`source_block_list`\" pulumi-lang-yaml=\"`sourceBlockList`\" pulumi-lang-java=\"`sourceBlockList`\"\u003e`source_block_list`\u003c/span\u003e below.\n"},"sourceLimit":{"$ref":"#/types/alicloud:ddos/BgpPolicyContentSourceLimit:BgpPolicyContentSourceLimit","description":"Do not fill in when the source speed limit is deleted. See \u003cspan pulumi-lang-nodejs=\"`sourceLimit`\" pulumi-lang-dotnet=\"`SourceLimit`\" pulumi-lang-go=\"`sourceLimit`\" pulumi-lang-python=\"`source_limit`\" pulumi-lang-yaml=\"`sourceLimit`\" pulumi-lang-java=\"`sourceLimit`\"\u003e`source_limit`\u003c/span\u003e below.\n"},"whitenGfbrNets":{"type":"boolean","description":"Add white high protection back to source network segment switch.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableIntelligence","intelligenceLevel"]}}},"alicloud:ddos/BgpPolicyContentFingerPrintRuleList:BgpPolicyContentFingerPrintRuleList":{"properties":{"dstPortEnd":{"type":"integer","description":"End of destination port 0-65535.\n"},"dstPortStart":{"type":"integer","description":"Destination Port start 0-65535.\n"},"fingerPrintRuleId":{"type":"string","description":"The UUID of the rule is required to be deleted and modified, and it is not required to be created.\n"},"matchAction":{"type":"string","description":"Action. Currently, only drop is supported.\n"},"maxPktLen":{"type":"integer","description":"Maximum bag length.\n"},"minPktLen":{"type":"integer","description":"Minimum package length.\n"},"offset":{"type":"integer","description":"Offset.\n"},"payloadBytes":{"type":"string","description":"Load match, hexadecimal string; Similar to 'abcd'.\n"},"protocol":{"type":"string","description":"Protocol, tcp or udp.\n"},"rateValue":{"type":"integer","description":"Speed limit value 1-100000.\n"},"seqNo":{"type":"integer","description":"Serial number 1-100 ● Affects the order issued by the bottom layer ● The larger the number, the lower it is.\n"},"srcPortEnd":{"type":"integer","description":"Source Port end 0-65535.\n"},"srcPortStart":{"type":"integer","description":"Source port start 0-65535.\n"}},"type":"object","required":["dstPortEnd","dstPortStart","matchAction","maxPktLen","minPktLen","protocol","seqNo","srcPortEnd","srcPortStart"]},"alicloud:ddos/BgpPolicyContentLayer4RuleList:BgpPolicyContentLayer4RuleList":{"properties":{"action":{"type":"string","description":"1 for observation 2 for blocking.\n"},"conditionLists":{"type":"array","items":{"$ref":"#/types/alicloud:ddos/BgpPolicyContentLayer4RuleListConditionList:BgpPolicyContentLayer4RuleListConditionList"},"description":"Matching Condition. See \u003cspan pulumi-lang-nodejs=\"`conditionList`\" pulumi-lang-dotnet=\"`ConditionList`\" pulumi-lang-go=\"`conditionList`\" pulumi-lang-python=\"`condition_list`\" pulumi-lang-yaml=\"`conditionList`\" pulumi-lang-java=\"`conditionList`\"\u003e`condition_list`\u003c/span\u003e below.\n"},"limited":{"type":"integer","description":".\n"},"match":{"type":"string","description":"0 indicates that the condition is not met 1 indicates that the condition is met.\n"},"method":{"type":"string","description":"Char indicates a string match hex match.\n"},"name":{"type":"string","description":"Rule Name.\n"},"priority":{"type":"integer","description":"1-100, priority, the lower the number, the higher the priority.\n"}},"type":"object","required":["action","conditionLists","limited","match","method","name","priority"]},"alicloud:ddos/BgpPolicyContentLayer4RuleListConditionList:BgpPolicyContentLayer4RuleListConditionList":{"properties":{"arg":{"type":"string","description":"Matching target character.\n"},"depth":{"type":"integer","description":"Depth of Matching.\n"},"position":{"type":"integer","description":"Position to start matching, starting from 0.\n"}},"type":"object","required":["arg","depth","position"]},"alicloud:ddos/BgpPolicyContentPortRuleList:BgpPolicyContentPortRuleList":{"properties":{"dstPortEnd":{"type":"integer","description":"End of destination port 0-65535.\n"},"dstPortStart":{"type":"integer","description":"Destination Port start 0-65535.\n"},"matchAction":{"type":"string","description":"Action. Currently, only drop is supported.\n","willReplaceOnChanges":true},"portRuleId":{"type":"string","description":"Rule UUID is required to be deleted and modified, and is not required to be created.\n"},"protocol":{"type":"string","description":"Protocol, tcp or udp.\n"},"seqNo":{"type":"integer","description":"Serial number 1-100 ● Affects the order issued by the bottom layer ● The larger the number, the lower it is.\n"},"srcPortEnd":{"type":"integer","description":"Source Port end 0-65535.\n"},"srcPortStart":{"type":"integer","description":"Source port start 0-65535.\n"}},"type":"object","required":["dstPortEnd","dstPortStart","matchAction","protocol","seqNo","srcPortEnd","srcPortStart"]},"alicloud:ddos/BgpPolicyContentSourceBlockList:BgpPolicyContentSourceBlockList":{"properties":{"blockExpireSeconds":{"type":"integer","description":"Statistical cycle range 60-1200.\n"},"everySeconds":{"type":"integer","description":"The time (unit second) for automatically releasing the black after triggering the speed limit is 60~2592000.\n"},"exceedLimitTimes":{"type":"integer","description":"The number of times the speed limit is exceeded in a statistical period ranges from 1 to 1200.\n"},"type":{"type":"integer","description":"Type\n"}},"type":"object","required":["blockExpireSeconds","everySeconds","exceedLimitTimes","type"]},"alicloud:ddos/BgpPolicyContentSourceLimit:BgpPolicyContentSourceLimit":{"properties":{"bps":{"type":"integer","description":"bps range 1024~268435456.\n"},"pps":{"type":"integer","description":"Pps range 32~500000.\n"},"synBps":{"type":"integer","description":"SynBps range 1024~268435456.\n"},"synPps":{"type":"integer","description":"SynPps range 1~100000.\n"}},"type":"object"},"alicloud:ddos/CooDomainPreciseAccessRuleCondition:CooDomainPreciseAccessRuleCondition":{"properties":{"content":{"type":"string","description":"Matching content.\n"},"field":{"type":"string","description":"Matching field.\n"},"headerName":{"type":"string","description":"Custom HTTP header field name.\n\n\u003e **NOTE:**  Valid only when `Field` is \u003cspan pulumi-lang-nodejs=\"`header`\" pulumi-lang-dotnet=\"`Header`\" pulumi-lang-go=\"`header`\" pulumi-lang-python=\"`header`\" pulumi-lang-yaml=\"`header`\" pulumi-lang-java=\"`header`\"\u003e`header`\u003c/span\u003e.\n"},"matchMethod":{"type":"string","description":"Matching method.\n"}},"type":"object","required":["content","field","matchMethod"]},"alicloud:ddos/CooWebCcRuleRuleDetail:CooWebCcRuleRuleDetail":{"properties":{"action":{"type":"string","description":"The action to take when a match occurs. Valid values:\n"},"conditions":{"type":"array","items":{"$ref":"#/types/alicloud:ddos/CooWebCcRuleRuleDetailCondition:CooWebCcRuleRuleDetailCondition"},"description":"List of matching conditions.   See \u003cspan pulumi-lang-nodejs=\"`condition`\" pulumi-lang-dotnet=\"`Condition`\" pulumi-lang-go=\"`condition`\" pulumi-lang-python=\"`condition`\" pulumi-lang-yaml=\"`condition`\" pulumi-lang-java=\"`condition`\"\u003e`condition`\u003c/span\u003e below.\n"},"rateLimit":{"$ref":"#/types/alicloud:ddos/CooWebCcRuleRuleDetailRateLimit:CooWebCcRuleRuleDetailRateLimit","description":"Rate limiting statistics. See \u003cspan pulumi-lang-nodejs=\"`rateLimit`\" pulumi-lang-dotnet=\"`RateLimit`\" pulumi-lang-go=\"`rateLimit`\" pulumi-lang-python=\"`rate_limit`\" pulumi-lang-yaml=\"`rateLimit`\" pulumi-lang-java=\"`rateLimit`\"\u003e`rate_limit`\u003c/span\u003e below.\n"},"statistics":{"$ref":"#/types/alicloud:ddos/CooWebCcRuleRuleDetailStatistics:CooWebCcRuleRuleDetailStatistics","description":"Deduplicated statistics. This parameter is optional. If omitted, deduplication is not applied. See \u003cspan pulumi-lang-nodejs=\"`statistics`\" pulumi-lang-dotnet=\"`Statistics`\" pulumi-lang-go=\"`statistics`\" pulumi-lang-python=\"`statistics`\" pulumi-lang-yaml=\"`statistics`\" pulumi-lang-java=\"`statistics`\"\u003e`statistics`\u003c/span\u003e below.\n"},"statusCode":{"$ref":"#/types/alicloud:ddos/CooWebCcRuleRuleDetailStatusCode:CooWebCcRuleRuleDetailStatusCode","description":"The HTTP status code. See \u003cspan pulumi-lang-nodejs=\"`statusCode`\" pulumi-lang-dotnet=\"`StatusCode`\" pulumi-lang-go=\"`statusCode`\" pulumi-lang-python=\"`status_code`\" pulumi-lang-yaml=\"`statusCode`\" pulumi-lang-java=\"`statusCode`\"\u003e`status_code`\u003c/span\u003e below.\n"}},"type":"object","required":["action","conditions","rateLimit"]},"alicloud:ddos/CooWebCcRuleRuleDetailCondition:CooWebCcRuleRuleDetailCondition":{"properties":{"content":{"type":"string","description":"Matching content.\n"},"field":{"type":"string","description":"The statistic source. Valid values:\n"},"headerName":{"type":"string","description":"Set this parameter only when the statistic source is \u003cspan pulumi-lang-nodejs=\"`header`\" pulumi-lang-dotnet=\"`Header`\" pulumi-lang-go=\"`header`\" pulumi-lang-python=\"`header`\" pulumi-lang-yaml=\"`header`\" pulumi-lang-java=\"`header`\"\u003e`header`\u003c/span\u003e.\n"},"matchMethod":{"type":"string","description":"Matching method.\n"}},"type":"object","required":["content","field","matchMethod"]},"alicloud:ddos/CooWebCcRuleRuleDetailRateLimit:CooWebCcRuleRuleDetailRateLimit":{"properties":{"interval":{"type":"integer","description":"Statistical interval. Unit: seconds.\n"},"subKey":{"type":"string","description":"Header field name (required only when the statistic source is \u003cspan pulumi-lang-nodejs=\"`header`\" pulumi-lang-dotnet=\"`Header`\" pulumi-lang-go=\"`header`\" pulumi-lang-python=\"`header`\" pulumi-lang-yaml=\"`header`\" pulumi-lang-java=\"`header`\"\u003e`header`\u003c/span\u003e).\n"},"target":{"type":"string","description":"Statistic source. Valid values:\n"},"threshold":{"type":"integer","description":"The trigger threshold.\n"},"ttl":{"type":"integer","description":"Block duration. Unit: seconds.\n"}},"type":"object","required":["interval","target","threshold","ttl"]},"alicloud:ddos/CooWebCcRuleRuleDetailStatistics:CooWebCcRuleRuleDetailStatistics":{"properties":{"field":{"type":"string","description":"The statistic source. Valid values:\n"},"headerName":{"type":"string","description":"Set this parameter only when the statistic source is \u003cspan pulumi-lang-nodejs=\"`header`\" pulumi-lang-dotnet=\"`Header`\" pulumi-lang-go=\"`header`\" pulumi-lang-python=\"`header`\" pulumi-lang-yaml=\"`header`\" pulumi-lang-java=\"`header`\"\u003e`header`\u003c/span\u003e.\n"},"mode":{"type":"string","description":"The deduplication mode. Valid values:\n"}},"type":"object","required":["field","mode"]},"alicloud:ddos/CooWebCcRuleRuleDetailStatusCode:CooWebCcRuleRuleDetailStatusCode":{"properties":{"code":{"type":"integer","description":"Status code. The value range is \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`599`\" pulumi-lang-dotnet=\"`599`\" pulumi-lang-go=\"`599`\" pulumi-lang-python=\"`599`\" pulumi-lang-yaml=\"`599`\" pulumi-lang-java=\"`599`\"\u003e`599`\u003c/span\u003e:\n"},"countThreshold":{"type":"integer","description":"When the ratio is not used, the enforcement action is triggered only when the corresponding status code reaches `CountThreshold`. The value range is \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50000`\" pulumi-lang-dotnet=\"`50000`\" pulumi-lang-go=\"`50000`\" pulumi-lang-python=\"`50000`\" pulumi-lang-yaml=\"`50000`\" pulumi-lang-java=\"`50000`\"\u003e`50000`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"Whether the rule is enabled. Valid values:\n"},"ratioThreshold":{"type":"integer","description":"When the ratio is used, the enforcement action is triggered only when the corresponding status code reaches `RatioThreshold`. The value range is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"useRatio":{"type":"boolean","description":"Whether to use a ratio:\n"}},"type":"object","required":["code","enabled","useRatio"]},"alicloud:ddos/DomainResourceProxyType:DomainResourceProxyType":{"properties":{"proxyPorts":{"type":"array","items":{"type":"integer"},"description":"The port numbers.\n"},"proxyType":{"type":"string","description":"The type of the protocol. Valid values:\n"}},"type":"object","required":["proxyPorts"]},"alicloud:ddos/PortConfig:PortConfig":{"properties":{"persistenceTimeout":{"type":"integer","description":"The timeout period for session retention. Value range: 30~3600, unit: second. The default is 0, which means off.\n"}},"type":"object"},"alicloud:ddos/SchedulerRuleRule:SchedulerRuleRule":{"properties":{"priority":{"type":"integer","description":"The priority of the rule.\n"},"regionId":{"type":"string","description":"The region where the interaction resource that is used in the scheduling rule is deployed. **NOTE:** This parameter is returned only if the RuleType parameter is set to 2.\n"},"status":{"type":"integer","description":"The status of the scheduling rule.\n"},"type":{"type":"string","description":"The address type of the interaction resource. Valid values:\n`A`: IPv4 address.\n`CNAME`: CNAME record.\n"},"value":{"type":"string","description":"The address of the interaction resource.\n"},"valueType":{"type":"integer","description":"Required. The type of the linked resource. It is an Integer. Valid values:\n\u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: The IP address of Anti-DDoS Pro or Anti-DDoS Premium\n\u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: the IP address of the interaction resource (in the tiered protection scenario)\n\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: the IP address used to accelerate access (in the network acceleration scenario)\n\u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e the IP address of the interaction resource (in the cloud service interaction scenario)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["status"]}}},"alicloud:ddos/getDdosBgpInstancesInstance:getDdosBgpInstancesInstance":{"properties":{"bandwidth":{"type":"integer","description":"The instance's elastic defend bandwidth.\n"},"baseBandwidth":{"type":"integer","description":"The instance's base defend bandwidth.\n"},"id":{"type":"string","description":"The instance's id.\n"},"ipCount":{"type":"integer","description":"The instance's count of ip config.\n"},"ipType":{"type":"string","description":"The instance's IP version.\n"},"name":{"type":"string","description":"The instance's remark.\n"},"normalBandwidth":{"type":"integer","description":"Normal defend bandwidth of the instance. The unit is Gbps.\n"},"region":{"type":"string","description":"The instance's region.\n"},"type":{"type":"string","description":"The instance's type.\n"}},"type":"object","required":["bandwidth","baseBandwidth","id","ipCount","ipType","name","normalBandwidth","region","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ddos/getDdosBgpIpsIp:getDdosBgpIpsIp":{"properties":{"id":{"type":"string","description":"The ID of the Ip. The value formats as `\u003cinstance_id\u003e:\u003cip\u003e`.\n"},"instanceId":{"type":"string","description":"The ID of the native protection enterprise instance to be operated.\n"},"ip":{"type":"string","description":"The IP address.\n"},"product":{"type":"string","description":"The type of cloud asset to which the IP address belongs.\n"},"status":{"type":"string","description":"The current state of the IP address.\n"}},"type":"object","required":["id","instanceId","ip","product","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ddos/getDdosCooDomainResourcesResource:getDdosCooDomainResourcesResource":{"properties":{"blackLists":{"type":"array","items":{"type":"string"},"description":"The IP addresses in the blacklist for the domain name.\n"},"ccEnabled":{"type":"boolean","description":"Whether frequency control guard (CC guard) is enabled. Values: `True`: Opened, `False`: Not enabled.\n"},"ccRuleEnabled":{"type":"boolean","description":"Whether custom frequency control guard (CC guard) is enabled. Values: `True`: Opened, `False`: Not enabled.\n"},"ccTemplate":{"type":"string","description":"The mode of the Frequency Control policy.\n"},"certName":{"type":"string","description":"The name of the certificate.\n"},"domain":{"type":"string","description":"The domain name of the website that you want to add to the instance.\n"},"http2Enable":{"type":"boolean","description":"Whether Http2.0 is enabled.\n"},"httpsExt":{"type":"string","description":"The advanced HTTPS settings.\n"},"id":{"type":"string","description":"The ID of the Domain Resource.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"A ID list of Ddoscoo instance.\n"},"policyMode":{"type":"string","description":"The type of backload algorithm.\n"},"proxyEnabled":{"type":"boolean","description":"Whether the website service forwarding rules have been turned on.\n"},"proxyTypes":{"type":"array","items":{"$ref":"#/types/alicloud:ddos/getDdosCooDomainResourcesResourceProxyType:getDdosCooDomainResourcesResourceProxyType"},"description":"Protocol type and port number information.\n"},"realServers":{"type":"array","items":{"type":"string"},"description":"Server address information of the source station.\n"},"rsType":{"type":"integer","description":"Server address type.\n"},"sslCiphers":{"type":"string","description":"The type of the cipher suite.\n"},"sslProtocols":{"type":"string","description":"The version of the TLS protocol.\n"},"whiteLists":{"type":"array","items":{"type":"string"},"description":"The IP addresses in the whitelist for the domain name.\n"}},"type":"object","required":["blackLists","ccEnabled","ccRuleEnabled","ccTemplate","certName","domain","http2Enable","httpsExt","id","instanceIds","policyMode","proxyEnabled","proxyTypes","realServers","rsType","sslCiphers","sslProtocols","whiteLists"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ddos/getDdosCooDomainResourcesResourceProxyType:getDdosCooDomainResourcesResourceProxyType":{"properties":{"proxyPorts":{"type":"array","items":{"type":"integer"},"description":"The forwarding port.\n"},"proxyType":{"type":"string","description":"Protocol type.\n"}},"type":"object","required":["proxyPorts","proxyType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ddos/getDdosCooInstancesInstance:getDdosCooInstancesInstance":{"properties":{"bandwidth":{"type":"integer","description":"The instance's elastic defend bandwidth.\n"},"baseBandwidth":{"type":"integer","description":"The instance's base defend bandwidth.\n"},"createTime":{"type":"integer","description":"The creation time of the instance.\n"},"debtStatus":{"type":"integer","description":"The debt status of the instance.\n"},"domainCount":{"type":"integer","description":"The instance's count of domain retransmission config.\n"},"edition":{"type":"integer","description":"The edition of the instance.\n"},"enabled":{"type":"integer","description":"The enabled of the instance.\n"},"expireTime":{"type":"integer","description":"The expiry time of the instance.\n"},"id":{"type":"string","description":"The instance's id.\n"},"ipMode":{"type":"string","description":"The ip mode of the instance.\n"},"ipVersion":{"type":"string","description":"The ip version of the instance.\n"},"name":{"type":"string","description":"The instance's remark.\n"},"portCount":{"type":"integer","description":"The instance's count of port retransmission config.\n"},"remark":{"type":"string","description":"The remark of the instance.\n"},"serviceBandwidth":{"type":"integer","description":"The instance's business bandwidth.\n"},"status":{"type":"integer","description":"The status of the instance.\n"}},"type":"object","required":["bandwidth","baseBandwidth","createTime","debtStatus","domainCount","edition","enabled","expireTime","id","ipMode","ipVersion","name","portCount","remark","serviceBandwidth","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ddos/getDdosCooPortsPort:getDdosCooPortsPort":{"properties":{"backendPort":{"type":"string","description":"The source station port.\n"},"frontendPort":{"type":"string","description":"The forwarding port.\n"},"frontendProtocol":{"type":"string","description":"The forwarding protocol. Valid values \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e.\n"},"id":{"type":"string","description":"The ID of the Port.\n"},"instanceId":{"type":"string","description":"The DdosCoo instance ID.\n"},"realServers":{"type":"array","items":{"type":"string"},"description":"List of source IP addresses.\n"}},"type":"object","required":["backendPort","frontendPort","frontendProtocol","id","instanceId","realServers"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dds/getMongoInstancesInstance:getMongoInstancesInstance":{"properties":{"availabilityZone":{"type":"string"},"chargeType":{"type":"string"},"creationTime":{"type":"string"},"engine":{"type":"string"},"engineVersion":{"type":"string"},"expirationTime":{"type":"string"},"id":{"type":"string"},"instanceClass":{"type":"string"},"instanceType":{"type":"string"},"lockMode":{"type":"string"},"mongos":{"type":"array","items":{"$ref":"#/types/alicloud:dds/getMongoInstancesInstanceMongo:getMongoInstancesInstanceMongo"}},"name":{"type":"string"},"networkType":{"type":"string"},"regionId":{"type":"string"},"replication":{"type":"string"},"restoreRanges":{"type":"array","items":{"$ref":"#/types/alicloud:dds/getMongoInstancesInstanceRestoreRange:getMongoInstancesInstanceRestoreRange"}},"shards":{"type":"array","items":{"$ref":"#/types/alicloud:dds/getMongoInstancesInstanceShard:getMongoInstancesInstanceShard"}},"status":{"type":"string"},"storage":{"type":"integer"},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"type":"object","required":["availabilityZone","chargeType","creationTime","engine","engineVersion","expirationTime","id","instanceClass","instanceType","lockMode","mongos","name","networkType","regionId","replication","restoreRanges","shards","status","storage","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dds/getMongoInstancesInstanceMongo:getMongoInstancesInstanceMongo":{"properties":{"class":{"type":"string"},"description":{"type":"string"},"nodeId":{"type":"string"}},"type":"object","required":["class","description","nodeId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dds/getMongoInstancesInstanceRestoreRange:getMongoInstancesInstanceRestoreRange":{"properties":{"restoreBeginTime":{"type":"string"},"restoreEndTime":{"type":"string"},"restoreType":{"type":"string"}},"type":"object","required":["restoreBeginTime","restoreEndTime","restoreType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dds/getMongoInstancesInstanceShard:getMongoInstancesInstanceShard":{"properties":{"class":{"type":"string"},"description":{"type":"string"},"nodeId":{"type":"string"},"storage":{"type":"integer"}},"type":"object","required":["class","description","nodeId","storage"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dfs/VscMountPointInstance:VscMountPointInstance":{"properties":{"instanceId":{"type":"string","description":"The ID of the ECS instance to which the HDFS file system is mounted.\n"},"status":{"type":"string","description":"The status of the ECS instance on which the HDFS file system is mounted.\n"},"vscs":{"type":"array","items":{"$ref":"#/types/alicloud:dfs/VscMountPointInstanceVsc:VscMountPointInstanceVsc"},"description":"The VSC list of mounted HDFS file systems.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["instanceId","status","vscs"]}}},"alicloud:dfs/VscMountPointInstanceVsc:VscMountPointInstanceVsc":{"properties":{"vscId":{"type":"string","description":"VSC Channel primary key representation, used to retrieve the specified VSC Channel.\n"},"vscStatus":{"type":"string","description":"VSC Mount status.\n"},"vscType":{"type":"string","description":"The VSC type.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["vscId","vscStatus","vscType"]}}},"alicloud:dfs/getAccessGroupsGroup:getAccessGroupsGroup":{"properties":{"accessGroupId":{"type":"string","description":"The length of \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e does not exceed 100 bytes.\n"},"accessGroupName":{"type":"string","description":"The Name of Access Group. The length Of \u003cspan pulumi-lang-nodejs=\"`accessGroupName`\" pulumi-lang-dotnet=\"`AccessGroupName`\" pulumi-lang-go=\"`accessGroupName`\" pulumi-lang-python=\"`access_group_name`\" pulumi-lang-yaml=\"`accessGroupName`\" pulumi-lang-java=\"`accessGroupName`\"\u003e`access_group_name`\u003c/span\u003e does not exceed 100 bytes.\n"},"createTime":{"type":"string","description":"The CreateTime of Access Group.\n"},"description":{"type":"string","description":"The Description of Access Group. The length Of \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e does not exceed 100 bytes.\n"},"id":{"type":"string","description":"The ID of the Access Group.\n"},"mountPointCount":{"type":"integer","description":"The Number of attached mountpoint.\n"},"networkType":{"type":"string","description":"The NetworkType of Access Group. Valid values: `VPC`.\n"},"ruleCount":{"type":"integer","description":"The Number of access rule.\n"}},"type":"object","required":["accessGroupId","accessGroupName","createTime","description","id","mountPointCount","networkType","ruleCount"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dfs/getAccessRulesRule:getAccessRulesRule":{"properties":{"accessGroupId":{"type":"string","description":"The resource ID of the Access Group.\n"},"accessRuleId":{"type":"string","description":"The ID of the Access Rule.\n"},"createTime":{"type":"string","description":"The created time of the Access Rule.\n"},"description":{"type":"string","description":"The description of the Access Rule.\n"},"id":{"type":"string","description":"The resource ID of Access Rule.\n"},"networkSegment":{"type":"string","description":"The NetworkSegment of the Access Rule.\n"},"priority":{"type":"integer","description":"The priority of the Access Rule.\n"},"rwAccessType":{"type":"string","description":"RWAccessType of the Access Rule. Valid values: `RDONLY`, `RDWR`.\n"}},"type":"object","required":["accessGroupId","accessRuleId","createTime","description","id","networkSegment","priority","rwAccessType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dfs/getFileSystemsSystem:getFileSystemsSystem":{"properties":{"createTime":{"type":"string","description":"The creation time of the File system.\n"},"description":{"type":"string","description":"The description of the File system.\n"},"fileSystemId":{"type":"string","description":"The ID of the File System.\n"},"fileSystemName":{"type":"string","description":"The name of the File system.\n"},"id":{"type":"string","description":"The ID of the File System.\n"},"mountPointCount":{"type":"integer","description":"The number of Mount points.\n"},"numberOfDirectories":{"type":"integer","description":"The number of directories.\n"},"numberOfFiles":{"type":"integer","description":"The number of files.\n"},"protocolType":{"type":"string","description":"The protocol type. Valid values: `HDFS`.\n"},"provisionedThroughputInMiBps":{"type":"integer","description":"The preset throughput of the File system. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e, Unit: MB/s.\n"},"spaceCapacity":{"type":"integer","description":"The capacity budget of the File system.\n"},"storagePackageId":{"type":"string","description":"Storage package Id.\n"},"storageType":{"type":"string","description":"The storage specifications of the File system. Valid values: `PERFORMANCE`, `STANDARD`.\n"},"throughputMode":{"type":"string","description":"The throughput mode of the File system. Valid values: `Provisioned`, `Standard`.\n"},"usedSpaceSize":{"type":"number","description":"The used space of the File system.\n"},"zoneId":{"type":"string","description":"The zone ID of the File system.\n"}},"type":"object","required":["createTime","description","fileSystemId","fileSystemName","id","mountPointCount","numberOfDirectories","numberOfFiles","protocolType","provisionedThroughputInMiBps","spaceCapacity","storagePackageId","storageType","throughputMode","usedSpaceSize","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dfs/getMountPointsPoint:getMountPointsPoint":{"properties":{"accessGroupId":{"type":"string","description":"The ID of the Access Group.\n"},"createTime":{"type":"string","description":"The created time of the Mount Point.\n"},"description":{"type":"string","description":"The description of the Mount Point.\n"},"fileSystemId":{"type":"string","description":"The ID of the File System.\n"},"id":{"type":"string","description":"The ID of the Mount Point.\n"},"mountPointDomain":{"type":"string","description":"The domain name of the Mount Point.\n"},"mountPointId":{"type":"string","description":"The ID of the Mount Point.\n"},"networkType":{"type":"string","description":"The network type of the Mount Point. Valid values: `VPC`.\n"},"status":{"type":"string","description":"The status of the Mount Point. Valid values: `Active`, `Inactive`.\n"},"vpcId":{"type":"string","description":"The ID of the VPC network.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"}},"type":"object","required":["accessGroupId","createTime","description","fileSystemId","id","mountPointDomain","mountPointId","networkType","status","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dfs/getZonesZone:getZonesZone":{"properties":{"options":{"type":"array","items":{"$ref":"#/types/alicloud:dfs/getZonesZoneOption:getZonesZoneOption"},"description":"A list of available configurations of the Zone.\n"},"zoneId":{"type":"string","description":"The zone ID.\n"}},"type":"object","required":["options","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dfs/getZonesZoneOption:getZonesZoneOption":{"properties":{"protocolType":{"type":"string","description":"The protocol type. Valid values: `HDFS`.\n"},"storageType":{"type":"string","description":"The storage specifications of the File system. Valid values: `PERFORMANCE`, `STANDARD`.\n"}},"type":"object","required":["protocolType","storageType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:directmail/getDomainsDomain:getDomainsDomain":{"properties":{"cnameAuthStatus":{"type":"string","description":"Indicates whether your ownership of the domain is verified.\n"},"cnameConfirmStatus":{"type":"string","description":"Indicates whether the CNAME record is successfully verified. **Note:** \u003cspan pulumi-lang-nodejs=\"`cnameConfirmStatus`\" pulumi-lang-dotnet=\"`CnameConfirmStatus`\" pulumi-lang-go=\"`cnameConfirmStatus`\" pulumi-lang-python=\"`cname_confirm_status`\" pulumi-lang-yaml=\"`cnameConfirmStatus`\" pulumi-lang-java=\"`cnameConfirmStatus`\"\u003e`cname_confirm_status`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"cnameRecord":{"type":"string","description":"The value of the CNAME record. **Note:** \u003cspan pulumi-lang-nodejs=\"`cnameRecord`\" pulumi-lang-dotnet=\"`CnameRecord`\" pulumi-lang-go=\"`cnameRecord`\" pulumi-lang-python=\"`cname_record`\" pulumi-lang-yaml=\"`cnameRecord`\" pulumi-lang-java=\"`cnameRecord`\"\u003e`cname_record`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"createTime":{"type":"string","description":"The time when the DNS record was created.\n"},"defaultDomain":{"type":"string","description":"The default domain name. **Note:** \u003cspan pulumi-lang-nodejs=\"`defaultDomain`\" pulumi-lang-dotnet=\"`DefaultDomain`\" pulumi-lang-go=\"`defaultDomain`\" pulumi-lang-python=\"`default_domain`\" pulumi-lang-yaml=\"`defaultDomain`\" pulumi-lang-java=\"`defaultDomain`\"\u003e`default_domain`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"dkimAuthStatus":{"type":"string","description":"(Available since v1.227.1) The DKIM validation flag. **Note:** \u003cspan pulumi-lang-nodejs=\"`dkimAuthStatus`\" pulumi-lang-dotnet=\"`DkimAuthStatus`\" pulumi-lang-go=\"`dkimAuthStatus`\" pulumi-lang-python=\"`dkim_auth_status`\" pulumi-lang-yaml=\"`dkimAuthStatus`\" pulumi-lang-java=\"`dkimAuthStatus`\"\u003e`dkim_auth_status`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"dkimPublicKey":{"type":"string","description":"(Available since v1.227.1) The DKIM public key. **Note:** \u003cspan pulumi-lang-nodejs=\"`dkimPublicKey`\" pulumi-lang-dotnet=\"`DkimPublicKey`\" pulumi-lang-go=\"`dkimPublicKey`\" pulumi-lang-python=\"`dkim_public_key`\" pulumi-lang-yaml=\"`dkimPublicKey`\" pulumi-lang-java=\"`dkimPublicKey`\"\u003e`dkim_public_key`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"dkimRr":{"type":"string","description":"(Available since v1.227.1) The DKIM Host Record. **Note:** \u003cspan pulumi-lang-nodejs=\"`dkimRr`\" pulumi-lang-dotnet=\"`DkimRr`\" pulumi-lang-go=\"`dkimRr`\" pulumi-lang-python=\"`dkim_rr`\" pulumi-lang-yaml=\"`dkimRr`\" pulumi-lang-java=\"`dkimRr`\"\u003e`dkim_rr`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"dmarcAuthStatus":{"type":"string","description":"(Available since v1.227.1) The DMARC validation flag. **Note:** \u003cspan pulumi-lang-nodejs=\"`dmarcAuthStatus`\" pulumi-lang-dotnet=\"`DmarcAuthStatus`\" pulumi-lang-go=\"`dmarcAuthStatus`\" pulumi-lang-python=\"`dmarc_auth_status`\" pulumi-lang-yaml=\"`dmarcAuthStatus`\" pulumi-lang-java=\"`dmarcAuthStatus`\"\u003e`dmarc_auth_status`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"dmarcHostRecord":{"type":"string","description":"(Available since v1.227.1) The DMARC Host Record. **Note:** \u003cspan pulumi-lang-nodejs=\"`dmarcHostRecord`\" pulumi-lang-dotnet=\"`DmarcHostRecord`\" pulumi-lang-go=\"`dmarcHostRecord`\" pulumi-lang-python=\"`dmarc_host_record`\" pulumi-lang-yaml=\"`dmarcHostRecord`\" pulumi-lang-java=\"`dmarcHostRecord`\"\u003e`dmarc_host_record`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"dmarcRecord":{"type":"string","description":"(Available since v1.227.1) The DMARC record. **Note:** \u003cspan pulumi-lang-nodejs=\"`dmarcRecord`\" pulumi-lang-dotnet=\"`DmarcRecord`\" pulumi-lang-go=\"`dmarcRecord`\" pulumi-lang-python=\"`dmarc_record`\" pulumi-lang-yaml=\"`dmarcRecord`\" pulumi-lang-java=\"`dmarcRecord`\"\u003e`dmarc_record`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"dnsDmarc":{"type":"string","description":"(Available since v1.227.1) The DMARC record value resolved through public DNS. **Note:** \u003cspan pulumi-lang-nodejs=\"`dnsDmarc`\" pulumi-lang-dotnet=\"`DnsDmarc`\" pulumi-lang-go=\"`dnsDmarc`\" pulumi-lang-python=\"`dns_dmarc`\" pulumi-lang-yaml=\"`dnsDmarc`\" pulumi-lang-java=\"`dnsDmarc`\"\u003e`dns_dmarc`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"dnsMx":{"type":"string","description":"The MX record value resolved through public DNS. **Note:** \u003cspan pulumi-lang-nodejs=\"`dnsMx`\" pulumi-lang-dotnet=\"`DnsMx`\" pulumi-lang-go=\"`dnsMx`\" pulumi-lang-python=\"`dns_mx`\" pulumi-lang-yaml=\"`dnsMx`\" pulumi-lang-java=\"`dnsMx`\"\u003e`dns_mx`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"dnsSpf":{"type":"string","description":"The SPF record value resolved through public DNS. **Note:** \u003cspan pulumi-lang-nodejs=\"`dnsSpf`\" pulumi-lang-dotnet=\"`DnsSpf`\" pulumi-lang-go=\"`dnsSpf`\" pulumi-lang-python=\"`dns_spf`\" pulumi-lang-yaml=\"`dnsSpf`\" pulumi-lang-java=\"`dnsSpf`\"\u003e`dns_spf`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"dnsTxt":{"type":"string","description":"The TXT record value resolved through public DNS. **Note:** \u003cspan pulumi-lang-nodejs=\"`dnsTxt`\" pulumi-lang-dotnet=\"`DnsTxt`\" pulumi-lang-go=\"`dnsTxt`\" pulumi-lang-python=\"`dns_txt`\" pulumi-lang-yaml=\"`dnsTxt`\" pulumi-lang-java=\"`dnsTxt`\"\u003e`dns_txt`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"domainId":{"type":"string","description":"The ID of the domain name.\n"},"domainName":{"type":"string","description":"The domain name.\n"},"domainRecord":{"type":"string","description":"(Available since v1.227.1) The value of the Domain record.\n"},"domainType":{"type":"string","description":"The type of the domain. **Note:** \u003cspan pulumi-lang-nodejs=\"`domainType`\" pulumi-lang-dotnet=\"`DomainType`\" pulumi-lang-go=\"`domainType`\" pulumi-lang-python=\"`domain_type`\" pulumi-lang-yaml=\"`domainType`\" pulumi-lang-java=\"`domainType`\"\u003e`domain_type`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"hostRecord":{"type":"string","description":"(Available since v1.227.1) The value of the host record. **Note:** \u003cspan pulumi-lang-nodejs=\"`hostRecord`\" pulumi-lang-dotnet=\"`HostRecord`\" pulumi-lang-go=\"`hostRecord`\" pulumi-lang-python=\"`host_record`\" pulumi-lang-yaml=\"`hostRecord`\" pulumi-lang-java=\"`hostRecord`\"\u003e`host_record`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"icpStatus":{"type":"string","description":"The status of ICP filing.\n"},"id":{"type":"string","description":"The ID of the Domain.\n"},"mxAuthStatus":{"type":"string","description":"Indicates whether the MX record is successfully verified.\n"},"mxRecord":{"type":"string","description":"The MX verification record provided by the Direct Mail console. **Note:** \u003cspan pulumi-lang-nodejs=\"`mxRecord`\" pulumi-lang-dotnet=\"`MxRecord`\" pulumi-lang-go=\"`mxRecord`\" pulumi-lang-python=\"`mx_record`\" pulumi-lang-yaml=\"`mxRecord`\" pulumi-lang-java=\"`mxRecord`\"\u003e`mx_record`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"spfAuthStatus":{"type":"string","description":"Indicates whether the SPF record is successfully verified.\n"},"spfRecord":{"type":"string","description":"The SPF verification record provided by the Direct Mail console. **Note:** \u003cspan pulumi-lang-nodejs=\"`spfRecord`\" pulumi-lang-dotnet=\"`SpfRecord`\" pulumi-lang-go=\"`spfRecord`\" pulumi-lang-python=\"`spf_record`\" pulumi-lang-yaml=\"`spfRecord`\" pulumi-lang-java=\"`spfRecord`\"\u003e`spf_record`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the domain name. Valid values:\n"},"tlDomainName":{"type":"string","description":"The primary domain name. **Note:** \u003cspan pulumi-lang-nodejs=\"`tlDomainName`\" pulumi-lang-dotnet=\"`TlDomainName`\" pulumi-lang-go=\"`tlDomainName`\" pulumi-lang-python=\"`tl_domain_name`\" pulumi-lang-yaml=\"`tlDomainName`\" pulumi-lang-java=\"`tlDomainName`\"\u003e`tl_domain_name`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"tracefRecord":{"type":"string","description":"The CNAME verification record provided by the Direct Mail console. **Note:** \u003cspan pulumi-lang-nodejs=\"`tracefRecord`\" pulumi-lang-dotnet=\"`TracefRecord`\" pulumi-lang-go=\"`tracefRecord`\" pulumi-lang-python=\"`tracef_record`\" pulumi-lang-yaml=\"`tracefRecord`\" pulumi-lang-java=\"`tracefRecord`\"\u003e`tracef_record`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object","required":["cnameAuthStatus","cnameConfirmStatus","cnameRecord","createTime","defaultDomain","dkimAuthStatus","dkimPublicKey","dkimRr","dmarcAuthStatus","dmarcHostRecord","dmarcRecord","dnsDmarc","dnsMx","dnsSpf","dnsTxt","domainId","domainName","domainRecord","domainType","hostRecord","icpStatus","id","mxAuthStatus","mxRecord","spfAuthStatus","spfRecord","status","tlDomainName","tracefRecord"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:directmail/getMailAddressesAddress:getMailAddressesAddress":{"properties":{"accountName":{"type":"string","description":"The sender address.\n"},"createTime":{"type":"string","description":"The creation of the record time.\n"},"dailyCount":{"type":"string","description":"On the quota limit.\n"},"dailyReqCount":{"type":"string","description":"On the quota.\n"},"domainStatus":{"type":"string","description":"Domain name status. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"id":{"type":"string","description":"The ID of the Mail Address.\n"},"mailAddressId":{"type":"string","description":"The sender address ID.\n"},"monthCount":{"type":"string","description":"Monthly quota limit.\n"},"monthReqCount":{"type":"string","description":"Months amount.\n"},"replyAddress":{"type":"string","description":"Return address.\n"},"replyStatus":{"type":"string","description":"If using STMP address status.\n"},"sendtype":{"type":"string","description":"Account type.\n"},"status":{"type":"string","description":"Account Status. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Freeze: 1, normal: 0.\n"}},"type":"object","required":["accountName","createTime","dailyCount","dailyReqCount","domainStatus","id","mailAddressId","monthCount","monthReqCount","replyAddress","replyStatus","sendtype","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:directmail/getReceiversReceiverse:getReceiversReceiverse":{"properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"description":{"type":"string","description":"The description.\n"},"id":{"type":"string","description":"The ID of the Receivers.\n"},"receiversAlias":{"type":"string","description":"The Receivers Alias.\n"},"receiversId":{"type":"string","description":"The first ID of the resource.\n"},"receiversName":{"type":"string","description":"The name of the resource.\n"},"status":{"type":"integer","description":"The status of the resource.\n"}},"type":"object","required":["createTime","description","id","receiversAlias","receiversId","receiversName","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:directmail/getTagsTag:getTagsTag":{"properties":{"id":{"type":"string","description":"The ID of the tag.\n"},"tagId":{"type":"string","description":"The ID of the tag.\n"},"tagName":{"type":"string","description":"The name of the tag.\n"}},"type":"object","required":["id","tagId","tagName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dms/getEnterpriseDatabasesDatabase:getEnterpriseDatabasesDatabase":{"properties":{"catalogName":{"type":"string","description":"The name of the Database Directory.\u003e PG Series databases will display the database name.\n"},"databaseId":{"type":"string","description":"The ID of the physical library.\n"},"dbType":{"type":"string","description":"Database type.\n"},"dbaId":{"type":"string","description":"The DBA user ID of the target database.\n"},"dbaName":{"type":"string","description":"The DBA nickname of the target Library.\n"},"encoding":{"type":"string","description":"Database encoding.\n"},"envType":{"type":"string","description":"The environment type of the database.\n"},"host":{"type":"string","description":"The database connection address.\n"},"id":{"type":"string","description":"The Database ID, same value as \u003cspan pulumi-lang-nodejs=\"`databaseId`\" pulumi-lang-dotnet=\"`DatabaseId`\" pulumi-lang-go=\"`databaseId`\" pulumi-lang-python=\"`database_id`\" pulumi-lang-yaml=\"`databaseId`\" pulumi-lang-java=\"`databaseId`\"\u003e`database_id`\u003c/span\u003e.\n"},"instanceId":{"type":"string","description":"The instance ID of the target database.\n"},"ownerIdLists":{"type":"array","items":{"type":"string"},"description":"Library Owner User ID list.\n"},"ownerNameLists":{"type":"array","items":{"type":"string"},"description":"Library Owner nickname list.\n"},"port":{"type":"integer","description":"The connection port of the database.\n"},"schemaName":{"type":"string","description":"The name of the database.\u003e PG Series databases will display schema names.\n"},"searchName":{"type":"string","description":"Library search name.\n"},"sid":{"type":"string","description":"Database SID.\u003e only Oracle Database Display.\n"},"state":{"type":"string","description":"Library status, value description:-**NORMAL**: NORMAL-**DISABLE**: Disabled-**OFFLINE**: OFFLINE-**NOT_EXIST**: does not exist\n"}},"type":"object","required":["catalogName","databaseId","dbType","dbaId","dbaName","encoding","envType","host","id","instanceId","ownerIdLists","ownerNameLists","port","schemaName","searchName","sid","state"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dms/getEnterpriseInstancesInstance:getEnterpriseInstancesInstance":{"properties":{"dataLinkName":{"type":"string","description":"The name of the data link for the database instance.\n"},"databasePassword":{"type":"string","description":"The logon password of the database instance.\n"},"databaseUser":{"type":"string","description":"The logon username of the database instance.\n"},"dbaId":{"type":"string","description":"The ID of the database administrator (DBA) of the database instance.\n"},"dbaNickName":{"type":"string","description":"The nickname of the DBA.\n"},"ddlOnline":{"type":"integer","description":"Indicates whether the online data description language (DDL) service was enabled for the database instance.\n"},"ecsInstanceId":{"type":"string","description":"The ID of the Elastic Compute Service (ECS) instance to which the database instance belongs.\n"},"ecsRegion":{"type":"string","description":"The region where the database instance resides.\n"},"envType":{"type":"string","description":"The type of the environment to which the database instance belongs.\n"},"exportTimeout":{"type":"integer","description":"The timeout period for exporting the database instance.\n"},"host":{"type":"string","description":"The endpoint of the database instance.\n"},"id":{"type":"string"},"instanceAlias":{"type":"string","description":"The alias of the database instance.\n"},"instanceId":{"type":"string","description":"The ID of the database instance.\n"},"instanceName":{"type":"string"},"instanceSource":{"type":"string","description":"The source of the database instance.\n"},"instanceType":{"type":"string","description":"The ID of the database instance.\n"},"port":{"type":"integer","description":"The connection port of the database instance.\n"},"queryTimeout":{"type":"integer","description":"The timeout period for querying the database instance.\n"},"safeRuleId":{"type":"string","description":"The ID of the security rule for the database instance.\n"},"sid":{"type":"string","description":"The system ID (SID) of the database instance.\n"},"status":{"type":"string","description":"Filter the results by status of the DMS Enterprise Instances. Valid values: `NORMAL`, `UNAVAILABLE`, `UNKNOWN`, `DELETED`, `DISABLE`.\n"},"useDsql":{"type":"integer","description":"Indicates whether cross-database query was enabled for the database instance.\n"},"vpcId":{"type":"string","description":"The ID of the Virtual Private Cloud (VPC) to which the database instance belongs.\n"}},"type":"object","required":["dataLinkName","databasePassword","databaseUser","dbaId","dbaNickName","ddlOnline","ecsInstanceId","ecsRegion","envType","exportTimeout","host","id","instanceAlias","instanceId","instanceName","instanceSource","instanceType","port","queryTimeout","safeRuleId","sid","status","useDsql","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dms/getEnterpriseLogicDatabasesDatabase:getEnterpriseLogicDatabasesDatabase":{"properties":{"alias":{"type":"string","description":"Logical Library alias.\n"},"databaseIds":{"type":"array","items":{"type":"string"},"description":"Sub-Database ID.\n"},"dbType":{"type":"string","description":"Database type.\n"},"envType":{"type":"string","description":"Environment type, return value is as follows:-product: production environment-dev: development environment-pre: Advance Environment-test: test environment-sit:SIT environment-uat:UAT environment-pet: Pressure measurement environment-stag:STAG environment\n"},"id":{"type":"string","description":"Logic Database ID.\n"},"logic":{"type":"boolean","description":"Whether it is a logical Library, the return value is true.\n"},"logicDatabaseId":{"type":"string","description":"The ID of the logical Library.\n"},"ownerIdLists":{"type":"array","items":{"type":"string"},"description":"The user ID list of the logical library Owner.\n"},"ownerNameLists":{"type":"array","items":{"type":"string"},"description":"The nickname list of the logical library Owner.\n"},"schemaName":{"type":"string","description":"Logical Library name.\n"},"searchName":{"type":"string","description":"Logical library search name.\n"}},"type":"object","required":["alias","databaseIds","dbType","envType","id","logic","logicDatabaseId","ownerIdLists","ownerNameLists","schemaName","searchName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dms/getEnterpriseProxiesProxy:getEnterpriseProxiesProxy":{"properties":{"creatorId":{"type":"string","description":"The ID of the user who enabled the secure access proxy feature.\n"},"creatorName":{"type":"string","description":"The nickname of the user who enabled the secure access proxy feature.\n"},"httpsPort":{"type":"integer","description":"The port that was used by HTTPS clients to connect to the database instance.\n"},"id":{"type":"string","description":"The ID of the Proxy.\n"},"instanceId":{"type":"string","description":"The ID of the database instance.\n"},"privateEnable":{"type":"boolean","description":"Indicates whether the internal endpoint is enabled. Default value: true.\n"},"privateHost":{"type":"string","description":"The internal endpoint.\n"},"protocolPort":{"type":"integer","description":"Database protocol connection port number.\n"},"protocolType":{"type":"string","description":"Database protocol type, for example, MYSQL.\n"},"proxyId":{"type":"string","description":"The ID of the secure access proxy.\n"},"publicEnable":{"type":"boolean","description":"Indicates whether the public endpoint is enabled.\n"},"publicHost":{"type":"string","description":"The public endpoint. A public endpoint is returned no matter whether the public endpoint is enabled or disabled. **Note:** When the public network address is in the **true** state, the returned public network address is a valid address with DNS resolution capability. When the public address is in the **false** state, the returned Public address is an invalid address without DNS resolution.\n"}},"type":"object","required":["creatorId","creatorName","httpsPort","id","instanceId","privateEnable","privateHost","protocolPort","protocolType","proxyId","publicEnable","publicHost"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dms/getEnterpriseProxyAccessesAccess:getEnterpriseProxyAccessesAccess":{"properties":{"accessId":{"type":"string","description":"The authorized account of the security agent.\n"},"accessSecret":{"type":"string","secret":true},"createTime":{"type":"string","description":"The authorization time of the security access agent permission.\n"},"id":{"type":"string","description":"Security Protection authorization ID.\n"},"indepAccount":{"type":"string","description":"Database account.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"originInfo":{"type":"string","description":"The source information of the security access agent permission is enabled, and the return value is as follows:**Owner Authorization**: The UID of the owner in parentheses.**Work Order Authorization**: The ticket number in parentheses is the number of the user to apply for permission.\n"},"proxyAccessId":{"type":"string","description":"Security Protection authorization ID. After the target user is authorized by the security protection agent, the system automatically generates a security protection authorization ID, which is globally unique.\n"},"proxyId":{"type":"string","description":"The ID of the security agent.\n"},"userId":{"type":"string","description":"The user ID.\n"},"userName":{"type":"string","description":"User nickname.\n"},"userUid":{"type":"string","description":"User UID.\n"}},"type":"object","required":["accessId","accessSecret","createTime","id","indepAccount","instanceId","originInfo","proxyAccessId","proxyId","userId","userName","userUid"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dms/getEnterpriseUsersUser:getEnterpriseUsersUser":{"properties":{"id":{"type":"string","description":"The Alibaba Cloud unique ID (UID) of the user.\n"},"mobile":{"type":"string","description":"The DingTalk number or mobile number of the user.\n"},"nickName":{"type":"string","description":"The nickname of the user.\n"},"parentUid":{"type":"integer","description":"The Alibaba Cloud unique ID (UID) of the parent account if the user corresponds to a Resource Access Management (RAM) user.\n"},"roleIds":{"type":"array","items":{"type":"integer"},"description":"The list ids of the role that the user plays.\n"},"roleNames":{"type":"array","items":{"type":"string"},"description":"The list names of the role that he user plays.\n"},"status":{"type":"string","description":"The status of the user.\n"},"uid":{"type":"string"},"userId":{"type":"string","description":"The ID of the user.\n"},"userName":{"type":"string","description":"The nickname of the user.\n"}},"type":"object","required":["id","mobile","nickName","parentUid","roleIds","roleNames","status","uid","userId","userName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dms/getUserTenantsTenant:getUserTenantsTenant":{"properties":{"id":{"type":"string","description":"The user tenant id.\n"},"status":{"type":"string","description":"The status of the user tenant.\n"},"tenantName":{"type":"string","description":"The name of the user tenant.\n"},"tid":{"type":"string","description":"The user tenant id. Same as id.\n"}},"type":"object","required":["id","status","tenantName","tid"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/AccessStrategyDefaultAddrPool:AccessStrategyDefaultAddrPool":{"properties":{"addrPoolId":{"type":"string","description":"The ID of the address pool in the primary address pool group.\n"},"lbaWeight":{"type":"integer","description":"The weight of the address pool in the primary address pool group.\n"}},"type":"object","required":["addrPoolId"]},"alicloud:dns/AccessStrategyFailoverAddrPool:AccessStrategyFailoverAddrPool":{"properties":{"addrPoolId":{"type":"string","description":"The ID of the address pool in the secondary address pool group.\n"},"lbaWeight":{"type":"integer","description":"The weight of the address pool in the secondary address pool group.\n"}},"type":"object"},"alicloud:dns/AccessStrategyLine:AccessStrategyLine":{"properties":{"lineCode":{"type":"string","description":"The line code of the source region.\n"}},"type":"object"},"alicloud:dns/AddressPoolAddress:AddressPoolAddress":{"properties":{"address":{"type":"string","description":"The address that you want to add to the address pool.\n"},"attributeInfo":{"type":"string","description":"The source region of the address. expressed as a JSON string. The structure is as follows:\n* `LineCodes`: List of home lineCodes.\n* `lineCodeRectifyType`: The rectification type of the line code. Default value: `AUTO`. Valid values: `NO_NEED`: no need for rectification. `RECTIFIED`: rectified. `AUTO`: automatic rectification.\n"},"lbaWeight":{"type":"integer","description":"The weight of the address. **NOTE:** The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`lbaStrategy`\" pulumi-lang-dotnet=\"`LbaStrategy`\" pulumi-lang-go=\"`lbaStrategy`\" pulumi-lang-python=\"`lba_strategy`\" pulumi-lang-yaml=\"`lbaStrategy`\" pulumi-lang-java=\"`lbaStrategy`\"\u003e`lba_strategy`\u003c/span\u003e is `RATIO`.\n"},"mode":{"type":"string","description":"The type of the address. Valid values:`SMART`, `ONLINE` and `OFFLINE`.\n"},"remark":{"type":"string","description":"The description of the address.\n"}},"type":"object","required":["address","attributeInfo","mode"]},"alicloud:dns/CustomLineIpSegmentList:CustomLineIpSegmentList":{"properties":{"endIp":{"type":"string","description":"The end IP address of the CIDR block.\n"},"startIp":{"type":"string","description":"The start IP address of the CIDR block.\n"}},"type":"object","required":["endIp","startIp"]},"alicloud:dns/GtmInstanceAlertConfig:GtmInstanceAlertConfig":{"properties":{"dingtalkNotice":{"type":"boolean","description":"Whether to configure DingTalk notifications. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"emailNotice":{"type":"boolean","description":"Whether to configure mail notification. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"noticeType":{"type":"string","description":"The Alarm Event Type.\n- `ADDR_ALERT`: Address not available.\n- `ADDR_RESUME`: Address Recovery available.\n- `ADDR_POOL_GROUP_UNAVAILABLE`: Address pool collection not available.\n- `ADDR_POOL_GROUP_AVAILABLE`: Address pool collection recovery available.\n- `ACCESS_STRATEGY_POOL_GROUP_SWITCH`: Primary/standby address pool switch.\n- `MONITOR_NODE_IP_CHANGE`: Monitoring node IP address changes.\n"},"smsNotice":{"type":"boolean","description":"Whether to configure SMS notification. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object"},"alicloud:dns/MonitorConfigIspCityNode:MonitorConfigIspCityNode":{"properties":{"cityCode":{"type":"string","description":"The code of the city node to monitor.\n"},"ispCode":{"type":"string","description":"The code of the Internet provider service (ISP) node to monitor.\n"}},"type":"object","required":["cityCode","ispCode"]},"alicloud:dns/getAccessStrategiesStrategy:getAccessStrategiesStrategy":{"properties":{"accessMode":{"type":"string","description":"The primary/secondary switchover policy for address pool groups.\n"},"accessStrategyId":{"type":"string","description":"The first ID of the resource.\n"},"createTime":{"type":"string","description":"The time when the access policy was created.\n"},"createTimestamp":{"type":"string","description":"The timestamp that indicates when the access policy was created.\n"},"defaultAddrPoolType":{"type":"string","description":"The type of the primary address pool.\n"},"defaultAddrPools":{"type":"array","items":{"$ref":"#/types/alicloud:dns/getAccessStrategiesStrategyDefaultAddrPool:getAccessStrategiesStrategyDefaultAddrPool"},"description":"The address pools in the primary address pool group.\n"},"defaultAvailableAddrNum":{"type":"integer","description":"The number of addresses currently available in the primary address pool.\n"},"defaultLatencyOptimization":{"type":"string","description":"Indicates whether scheduling optimization for latency resolution was enabled for the primary address pool group.\n"},"defaultLbaStrategy":{"type":"string","description":"The load balancing policy of the primary address pool group.\n"},"defaultMaxReturnAddrNum":{"type":"integer","description":"The maximum number of addresses returned by the primary address pool set.\n"},"defaultMinAvailableAddrNum":{"type":"integer","description":"The minimum number of available addresses for the primary address pool set.\n"},"effectiveAddrPoolGroupType":{"type":"string","description":"The type of the active address pool group.\n"},"failoverAddrPoolType":{"type":"string","description":"The type of the secondary address pool.\n"},"failoverAddrPools":{"type":"array","items":{"$ref":"#/types/alicloud:dns/getAccessStrategiesStrategyFailoverAddrPool:getAccessStrategiesStrategyFailoverAddrPool"},"description":"The address pools in the secondary address pool group.\n"},"failoverAvailableAddrNum":{"type":"integer","description":"The number of available addresses in the standby address pool.\n"},"failoverLatencyOptimization":{"type":"string","description":"Indicates whether scheduling optimization for latency resolution was enabled for the secondary address pool group.\n"},"failoverLbaStrategy":{"type":"string","description":"The load balancing policy of the secondary address pool group.\n"},"failoverMaxReturnAddrNum":{"type":"integer","description":"The maximum number of returned addresses in the standby address pool.\n"},"failoverMinAvailableAddrNum":{"type":"integer","description":"The minimum number of available addresses in the standby address pool.\n"},"id":{"type":"string","description":"The ID of the Access Strategy.\n"},"instanceId":{"type":"string","description":"The Id of the associated instance.\n"},"lines":{"type":"array","items":{"$ref":"#/types/alicloud:dns/getAccessStrategiesStrategyLine:getAccessStrategiesStrategyLine"},"description":"List of source regions.\n"},"strategyMode":{"type":"string","description":"The type of the access policy.\n"},"strategyName":{"type":"string","description":"The name of the access policy.\n"}},"type":"object","required":["accessMode","accessStrategyId","createTime","createTimestamp","defaultAddrPoolType","defaultAddrPools","defaultAvailableAddrNum","defaultLatencyOptimization","defaultLbaStrategy","defaultMaxReturnAddrNum","defaultMinAvailableAddrNum","effectiveAddrPoolGroupType","failoverAddrPoolType","failoverAddrPools","failoverAvailableAddrNum","failoverLatencyOptimization","failoverLbaStrategy","failoverMaxReturnAddrNum","failoverMinAvailableAddrNum","id","instanceId","lines","strategyMode","strategyName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getAccessStrategiesStrategyDefaultAddrPool:getAccessStrategiesStrategyDefaultAddrPool":{"properties":{"addrCount":{"type":"integer","description":"The number of addresses in the address pool.\n"},"addrPoolId":{"type":"string","description":"The ID of the address pool.\n"},"lbaWeight":{"type":"integer","description":"The weight of the address pool.\n"},"name":{"type":"string","description":"The name of the address pool.\n"}},"type":"object","required":["addrCount","addrPoolId","lbaWeight","name"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getAccessStrategiesStrategyFailoverAddrPool:getAccessStrategiesStrategyFailoverAddrPool":{"properties":{"addrCount":{"type":"integer","description":"The number of addresses in the address pool.\n"},"addrPoolId":{"type":"string","description":"The ID of the address pool.\n"},"lbaWeight":{"type":"integer","description":"The weight of the address pool.\n"},"name":{"type":"string","description":"The name of the address pool.\n"}},"type":"object","required":["addrCount","addrPoolId","lbaWeight","name"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getAccessStrategiesStrategyLine:getAccessStrategiesStrategyLine":{"properties":{"groupCode":{"type":"string","description":"The code of the source region group.\n"},"groupName":{"type":"string","description":"The name of the source region group.\n"},"lineCode":{"type":"string","description":"The line code of the source region.\n"},"lineName":{"type":"string","description":"The line name of the source region.\n"}},"type":"object","required":["groupCode","groupName","lineCode","lineName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getAddressPoolsPool:getAddressPoolsPool":{"properties":{"addressPoolId":{"type":"string","description":"The first ID of the resource.\n"},"addressPoolName":{"type":"string","description":"The name of the address pool.\n"},"addresses":{"type":"array","items":{"$ref":"#/types/alicloud:dns/getAddressPoolsPoolAddress:getAddressPoolsPoolAddress"},"description":"The address lists of the Address Pool.\n"},"createTime":{"type":"string","description":"The time when the address pool was created.\n"},"createTimestamp":{"type":"string","description":"The timestamp that indicates when the address pool was created.\n"},"id":{"type":"string","description":"The ID of the Address Pool.\n"},"instanceId":{"type":"string","description":"The id of the instance.\n"},"lbaStrategy":{"type":"string","description":"The load balancing policy of the address pool.\n"},"monitorConfigId":{"type":"string","description":"The ID of the health check task.\n"},"monitorStatus":{"type":"string","description":"Indicates whether health checks are configured.\n"},"type":{"type":"string","description":"The type of the address pool.\n"},"updateTime":{"type":"string","description":"The time when the address pool was updated.\n"},"updateTimestamp":{"type":"string","description":"The timestamp that indicates when the address pool was updated.\n"}},"type":"object","required":["addresses","addressPoolId","addressPoolName","createTime","createTimestamp","id","instanceId","lbaStrategy","monitorConfigId","monitorStatus","type","updateTime","updateTimestamp"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getAddressPoolsPoolAddress:getAddressPoolsPoolAddress":{"properties":{"address":{"type":"string","description":"The address that you want to add to the address pool.\n"},"attributeInfo":{"type":"string","description":"The source region of the address.\n"},"lbaWeight":{"type":"integer","description":"The weight of the address.\n"},"mode":{"type":"string","description":"The type of the address.\n"},"remark":{"type":"string","description":"The description of the address.\n"}},"type":"object","required":["address","attributeInfo","lbaWeight","mode","remark"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getAlidnsDomainGroupsGroup:getAlidnsDomainGroupsGroup":{"properties":{"domainCount":{"type":"integer","description":"Number of domain names in the group.\n"},"groupId":{"type":"string","description":"Id of the domain group.\n"},"groupName":{"type":"string","description":"The name of the domain group.\n"},"id":{"type":"string","description":"Id of the instance.\n"}},"type":"object","required":["domainCount","groupId","groupName","id"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getAlidnsDomainsDomain:getAlidnsDomainsDomain":{"properties":{"aliDomain":{"type":"boolean","description":"Specifies whether the domain is from Alibaba Cloud or not.\n"},"availableTtls":{"type":"array","items":{"type":"integer"},"description":"List of available TTLs.\n"},"dnsServers":{"type":"array","items":{"type":"string"},"description":"DNS list of domain names in the resolution system.\n"},"domainId":{"type":"string","description":"ID of the domain.\n"},"domainName":{"type":"string","description":"Name of the domain.\n"},"groupId":{"type":"string","description":"Domain group ID, if not filled, the default is all groups.\n"},"groupName":{"type":"string","description":"Name of group that contains the domain.\n"},"id":{"type":"string","description":"The Id of resource.\n"},"inBlackHole":{"type":"boolean","description":"Whether it is in black hole.\n"},"inClean":{"type":"boolean","description":"Whether it is cleaning.\n"},"instanceId":{"type":"string","description":"Cloud analysis product ID.\n"},"lineType":{"type":"string","description":"The type of the DNS request line.\n"},"minTtl":{"type":"integer","description":"Minimum TTL.\n"},"punyCode":{"type":"string","description":"Punycode of the Chinese domain.\n"},"recordLineTreeJson":{"type":"string","description":"Tree-like analytical line list.\n"},"recordLines":{"type":"array","items":{"$ref":"#/types/alicloud:dns/getAlidnsDomainsDomainRecordLine:getAlidnsDomainsDomainRecordLine"},"description":"Parse the line data list.\n"},"regionLines":{"type":"boolean","description":"Whether it is a regional route.\n"},"remark":{"type":"string","description":"The Id of resource group which the dns belongs.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the dns belongs.\n"},"slaveDns":{"type":"boolean","description":"Whether to allow auxiliary dns.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"versionCode":{"type":"string","description":"Cloud analysis version code.\n"},"versionName":{"type":"string","description":"Cloud analysis version name of the domain.\n"}},"type":"object","required":["aliDomain","availableTtls","dnsServers","domainId","domainName","groupId","groupName","id","inBlackHole","inClean","instanceId","lineType","minTtl","punyCode","recordLineTreeJson","recordLines","regionLines","remark","resourceGroupId","slaveDns","tags","versionCode","versionName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getAlidnsDomainsDomainRecordLine:getAlidnsDomainsDomainRecordLine":{"properties":{"fatherCode":{"type":"string","description":"The code of the parent line, or empty if there is none.\n"},"lineCode":{"type":"string","description":"Sub-line Code.\n"},"lineDisplayName":{"type":"string","description":"Parent line display name.\n"},"lineName":{"type":"string","description":"Sub-line display name.\n"}},"type":"object","required":["fatherCode","lineCode","lineDisplayName","lineName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getAlidnsInstancesInstance:getAlidnsInstancesInstance":{"properties":{"dnsSecurity":{"type":"string","description":"DNS security level.\n"},"domain":{"type":"string","description":"(Available in 1.124.1+) The domain name.\n"},"domainNumbers":{"type":"string","description":"Number of domain names bound.\n"},"id":{"type":"string","description":"Id of the instance.\n"},"instanceId":{"type":"string","description":"Id of the instance resource.\n"},"paymentType":{"type":"string","description":"(Available in 1.124.1+) The payment type of alidns instance.\n"},"versionCode":{"type":"string","description":"Paid package version.\n"},"versionName":{"type":"string","description":"Paid package version name.\n"}},"type":"object","required":["dnsSecurity","domain","domainNumbers","id","instanceId","paymentType","versionCode","versionName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getAlidnsRecordsRecord:getAlidnsRecordsRecord":{"properties":{"domainName":{"type":"string","description":"The domain name associated to the records.\n"},"id":{"type":"string","description":"ID of the resource.\n"},"line":{"type":"string","description":"ISP line. For checking all resolution lines enumeration please visit [Alibaba Cloud DNS doc](https://www.alibabacloud.com/help/en/dns/resolve-line-enumeration)\n"},"locked":{"type":"boolean","description":"Indicates whether the record is locked.\n"},"priority":{"type":"integer","description":"Priority of the `MX` record.\n"},"recordId":{"type":"string","description":"ID of the record.\n"},"remark":{"type":"string","description":"The remark of the domain record.  **NOTE:** Available in 1.144.0+.\n"},"rr":{"type":"string","description":"Host record of the domain.\n"},"status":{"type":"string","description":"Record status. Valid values: `ENABLE` and `DISABLE`.\n"},"ttl":{"type":"integer","description":"TTL of the record.\n"},"type":{"type":"string","description":"Record type. Valid values: `A`, `NS`, `MX`, `TXT`, `CNAME`, `SRV`, `AAAA`, `REDIRECT_URL`, `FORWORD_URL` .\n"},"value":{"type":"string","description":"Host record value of the domain.\n"}},"type":"object","required":["domainName","id","line","locked","priority","recordId","remark","rr","status","ttl","type","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getCustomLinesLine:getCustomLinesLine":{"properties":{"code":{"type":"string","description":"The Custom line Code.\n"},"customLineId":{"type":"string","description":"The first ID of the resource.\n"},"customLineName":{"type":"string","description":"Line name.\n"},"domainName":{"type":"string","description":"The Domain name.\n"},"id":{"type":"string","description":"The ID of the Custom Line.\n"},"ipSegmentLists":{"type":"array","items":{"$ref":"#/types/alicloud:dns/getCustomLinesLineIpSegmentList:getCustomLinesLineIpSegmentList"},"description":"The IP segment list.\n"}},"type":"object","required":["code","customLineId","customLineName","domainName","id","ipSegmentLists"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getCustomLinesLineIpSegmentList:getCustomLinesLineIpSegmentList":{"properties":{"endIp":{"type":"string","description":"The end IP address of the CIDR block.\n"},"startIp":{"type":"string","description":"The start IP address of the CIDR block.\n"}},"type":"object","required":["endIp","startIp"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getDomainGroupsGroup:getDomainGroupsGroup":{"properties":{"groupId":{"type":"string"},"groupName":{"type":"string"}},"type":"object","required":["groupId","groupName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getDomainRecordsRecord:getDomainRecordsRecord":{"properties":{"domainName":{"type":"string"},"hostRecord":{"type":"string"},"line":{"type":"string"},"locked":{"type":"boolean"},"priority":{"type":"integer"},"recordId":{"type":"string"},"status":{"type":"string"},"ttl":{"type":"number"},"type":{"type":"string"},"value":{"type":"string"}},"type":"object","required":["domainName","hostRecord","line","locked","priority","recordId","status","ttl","type","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getDomainsDomain:getDomainsDomain":{"properties":{"aliDomain":{"type":"boolean","description":"Specifies whether the domain is from Alibaba Cloud or not.\n"},"availableTtls":{"type":"array","items":{"type":"integer"}},"dnsServers":{"type":"array","items":{"type":"string"},"description":"DNS list of domain names in the resolution system.\n"},"domainId":{"type":"string","description":"ID of the domain.\n"},"domainName":{"type":"string","description":"Name of the domain.\n"},"groupId":{"type":"string","description":"Domain group ID, if not filled, the default is all groups.\n"},"groupName":{"type":"string","description":"Name of group that contains the domain.\n"},"id":{"type":"string","description":"The Id of resource.\n"},"inBlackHole":{"type":"boolean","description":"Whether it is in black hole.\n"},"inClean":{"type":"boolean","description":"Whether it is cleaning.\n"},"instanceId":{"type":"string","description":"Cloud analysis product ID.\n"},"lineType":{"type":"string"},"minTtl":{"type":"integer","description":"Minimum TTL.\n"},"punyCode":{"type":"string","description":"Punycode of the Chinese domain.\n"},"recordLineTreeJson":{"type":"string","description":"Tree-like analytical line list.\n"},"recordLines":{"type":"array","items":{"$ref":"#/types/alicloud:dns/getDomainsDomainRecordLine:getDomainsDomainRecordLine"}},"regionLines":{"type":"boolean","description":"Whether it is a regional route.\n"},"remark":{"type":"string","description":"The Id of resource group which the dns belongs.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the dns belongs.\n"},"slaveDns":{"type":"boolean","description":"Whether to allow auxiliary dns.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"versionCode":{"type":"string","description":"Cloud analysis version code.\n"},"versionName":{"type":"string"}},"type":"object","required":["aliDomain","availableTtls","dnsServers","domainId","domainName","groupId","groupName","id","inBlackHole","inClean","instanceId","lineType","minTtl","punyCode","recordLineTreeJson","recordLines","regionLines","remark","resourceGroupId","slaveDns","tags","versionCode","versionName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getDomainsDomainRecordLine:getDomainsDomainRecordLine":{"properties":{"fatherCode":{"type":"string"},"lineCode":{"type":"string"},"lineDisplayName":{"type":"string"},"lineName":{"type":"string"}},"type":"object","required":["fatherCode","lineCode","lineDisplayName","lineName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getGroupsGroup:getGroupsGroup":{"properties":{"groupId":{"type":"string","description":"Id of the group.\n"},"groupName":{"type":"string","description":"Name of the group.\n"}},"type":"object","required":["groupId","groupName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getGtmInstancesInstance:getGtmInstancesInstance":{"properties":{"alertConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:dns/getGtmInstancesInstanceAlertConfig:getGtmInstancesInstanceAlertConfig"},"description":"The alert notification methods.\n"},"alertGroups":{"type":"array","items":{"type":"string"},"description":"The alert group.\n"},"cnameType":{"type":"string","description":"The access type of the CNAME domain name.\n"},"createTime":{"type":"string","description":"The CreateTime of the Gtm Instance.\n"},"expireTime":{"type":"string","description":"The ExpireTime of the Gtm Instance.\n"},"id":{"type":"string","description":"The ID of the Gtm Instance.\n"},"instanceId":{"type":"string","description":"The ID of the Gtm Instance.\n"},"instanceName":{"type":"string","description":"The name of the Gtm Instance.\n"},"packageEdition":{"type":"string","description":"The version of the instance.\n"},"paymentType":{"type":"string","description":"The paymentype of the resource.\n"},"publicCnameMode":{"type":"string","description":"The Public Network domain name access method.\n"},"publicRr":{"type":"string","description":"The CNAME access domain name.\n"},"publicUserDomainName":{"type":"string","description":"The website domain name that the user uses on the Internet.\n"},"publicZoneName":{"type":"string","description":"The domain name that is used to access GTM over the Internet.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"strategyMode":{"type":"string","description":"The type of the access policy.\n"},"ttl":{"type":"integer","description":"The global time to live.\n"}},"type":"object","required":["alertConfigs","alertGroups","cnameType","createTime","expireTime","id","instanceId","instanceName","packageEdition","paymentType","publicCnameMode","publicRr","publicUserDomainName","publicZoneName","resourceGroupId","strategyMode","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getGtmInstancesInstanceAlertConfig:getGtmInstancesInstanceAlertConfig":{"properties":{"dingtalkNotice":{"type":"boolean","description":"Whether to configure DingTalk notifications.\n"},"emailNotice":{"type":"boolean","description":"Whether to configure mail notification.\n"},"noticeType":{"type":"string","description":"The Alarm Event Type.\n"},"smsNotice":{"type":"boolean","description":"Whether to configure SMS notification.\n"}},"type":"object","required":["dingtalkNotice","emailNotice","noticeType","smsNotice"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getInstancesInstance:getInstancesInstance":{"properties":{"dnsSecurity":{"type":"string","description":"DNS security level.\n"},"domain":{"type":"string"},"domainNumbers":{"type":"string","description":"Number of domain names bound.\n"},"id":{"type":"string","description":"Id of the instance.\n"},"instanceId":{"type":"string","description":"Id of the instance resource.\n"},"paymentType":{"type":"string"},"versionCode":{"type":"string","description":"Paid package version.\n"},"versionName":{"type":"string","description":"Paid package version name.\n"}},"type":"object","required":["dnsSecurity","domain","domainNumbers","id","instanceId","paymentType","versionCode","versionName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getRecordsRecord:getRecordsRecord":{"properties":{"domainName":{"type":"string","description":"The domain name associated to the records.\n"},"hostRecord":{"type":"string","description":"Host record of the domain.\n"},"line":{"type":"string","description":"ISP line. Valid items are \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`telecom`\" pulumi-lang-dotnet=\"`Telecom`\" pulumi-lang-go=\"`telecom`\" pulumi-lang-python=\"`telecom`\" pulumi-lang-yaml=\"`telecom`\" pulumi-lang-java=\"`telecom`\"\u003e`telecom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unicom`\" pulumi-lang-dotnet=\"`Unicom`\" pulumi-lang-go=\"`unicom`\" pulumi-lang-python=\"`unicom`\" pulumi-lang-yaml=\"`unicom`\" pulumi-lang-java=\"`unicom`\"\u003e`unicom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mobile`\" pulumi-lang-dotnet=\"`Mobile`\" pulumi-lang-go=\"`mobile`\" pulumi-lang-python=\"`mobile`\" pulumi-lang-yaml=\"`mobile`\" pulumi-lang-java=\"`mobile`\"\u003e`mobile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oversea`\" pulumi-lang-dotnet=\"`Oversea`\" pulumi-lang-go=\"`oversea`\" pulumi-lang-python=\"`oversea`\" pulumi-lang-yaml=\"`oversea`\" pulumi-lang-java=\"`oversea`\"\u003e`oversea`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`edu`\" pulumi-lang-dotnet=\"`Edu`\" pulumi-lang-go=\"`edu`\" pulumi-lang-python=\"`edu`\" pulumi-lang-yaml=\"`edu`\" pulumi-lang-java=\"`edu`\"\u003e`edu`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drpeng`\" pulumi-lang-dotnet=\"`Drpeng`\" pulumi-lang-go=\"`drpeng`\" pulumi-lang-python=\"`drpeng`\" pulumi-lang-yaml=\"`drpeng`\" pulumi-lang-java=\"`drpeng`\"\u003e`drpeng`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`btvn`\" pulumi-lang-dotnet=\"`Btvn`\" pulumi-lang-go=\"`btvn`\" pulumi-lang-python=\"`btvn`\" pulumi-lang-yaml=\"`btvn`\" pulumi-lang-java=\"`btvn`\"\u003e`btvn`\u003c/span\u003e, .etc. For checking all resolution lines enumeration please visit [Alibaba Cloud DNS doc](https://www.alibabacloud.com/help/en/doc-detail/29807.htm)\n"},"locked":{"type":"boolean","description":"Indicates whether the record is locked.\n"},"priority":{"type":"integer","description":"Priority of the `MX` record.\n"},"recordId":{"type":"string","description":"ID of the record.\n"},"status":{"type":"string","description":"Record status. Valid items are `ENABLE` and `DISABLE`.\n"},"ttl":{"type":"number","description":"TTL of the record.\n"},"type":{"type":"string","description":"Record type. Valid items are `A`, `NS`, `MX`, `TXT`, `CNAME`, `SRV`, `AAAA`, `REDIRECT_URL`, `FORWORD_URL` .\n"},"value":{"type":"string","description":"Host record value of the domain.\n"}},"type":"object","required":["domainName","hostRecord","line","locked","priority","recordId","status","ttl","type","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dns/getResolutionLinesLine:getResolutionLinesLine":{"properties":{"lineCode":{"type":"string"},"lineDisplayName":{"type":"string","description":"Line display name.\n"},"lineName":{"type":"string","description":"Line name.\n"}},"type":"object","required":["lineCode","lineDisplayName","lineName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:drds/getInstancesInstance:getInstancesInstance":{"properties":{"connectionString":{"type":"string","description":"(Available in 1.196.0+) The connection string of the DRDS instance.\n"},"createTime":{"type":"integer","description":"Creation time of the instance.\n"},"description":{"type":"string","description":"The DRDS instance description.\n"},"id":{"type":"string","description":"The ID of the DRDS instance.\n"},"networkType":{"type":"string","description":"`Classic` for public classic network or `VPC` for private network.\n"},"port":{"type":"string","description":"(Available in 1.196.0+) The connection port of the DRDS instance.\n"},"status":{"type":"string","description":"Status of the instance.\n"},"type":{"type":"string","description":"The DRDS Instance type.\n"},"version":{"type":"integer","description":"The DRDS Instance version.\n"},"zoneId":{"type":"string","description":"Zone ID the instance belongs to.\n"}},"type":"object","required":["connectionString","createTime","description","id","networkType","port","status","type","version","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dts/getConsumerChannelsChannel:getConsumerChannelsChannel":{"properties":{"consumerGroupId":{"type":"string","description":"The ID of the consumer group.\n"},"consumerGroupName":{"type":"string","description":"The name of the consumer group.\n"},"consumerGroupUserName":{"type":"string","description":"The username of the consumer group.\n"},"consumptionCheckpoint":{"type":"string","description":"The time point when the client consumed the last message in the subscription channel.\n"},"id":{"type":"string","description":"The ID of the Consumer Channel.\n"},"messageDelay":{"type":"integer","description":"The message delay time, for the current time data subscription channel in the earliest time of unconsumed messages of the difference, in Unix timestamp format, which is measured in seconds.\n"},"unconsumedData":{"type":"integer","description":"The total number of unconsumed messages.\n"}},"type":"object","required":["consumerGroupId","consumerGroupName","consumerGroupUserName","consumptionCheckpoint","id","messageDelay","unconsumedData"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dts/getInstancesInstance:getInstancesInstance":{"properties":{"createTime":{"type":"string","description":"Instance creation time\n"},"destinationEndpointEngineName":{"type":"string","description":"The target database engine type.\n"},"destinationRegion":{"type":"string","description":"The destination instance region.\n"},"dtsInstanceId":{"type":"string","description":"The ID of the subscription instance.\n"},"id":{"type":"string","description":"The ID of the instance.\n"},"instanceClass":{"type":"string","description":"The type of the migration or synchronization instance.- The specifications of the migration instance: **xxlarge**, **xlarge**, **large**, **medium**, **small**.- The types of synchronization instances: **large**, **medium**, **small**, **micro**.\n"},"instanceName":{"type":"string"},"paymentType":{"type":"string","description":"The payment type of the resource.\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID\n"},"sourceEndpointEngineName":{"type":"string","description":"Source instance database engine type.\n"},"sourceRegion":{"type":"string","description":"The source instance region.\n"},"status":{"type":"string","description":"Instance status.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag value corresponding to the tag key.\n"},"type":{"type":"string","description":"The instance type. Valid values: -**MIGRATION**: MIGRATION.-**SYNC**: synchronization.-**SUBSCRIBE**: SUBSCRIBE.\n"}},"type":"object","required":["createTime","destinationEndpointEngineName","destinationRegion","dtsInstanceId","id","instanceClass","instanceName","paymentType","resourceGroupId","sourceEndpointEngineName","sourceRegion","status","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dts/getMigrationJobsJob:getMigrationJobsJob":{"properties":{"dataInitialization":{"type":"boolean","description":"Whether or not to execute DTS supports schema migration, full data migration, or full-data initialization.\n"},"dataSynchronization":{"type":"boolean","description":"Whether to perform incremental data migration for migration types or synchronization values include:\n"},"dbList":{"type":"string","description":"The Migration object, in the format of JSON strings.\n"},"destinationEndpointDataBaseName":{"type":"string","description":"The name of migrate the database.\n"},"destinationEndpointEngineName":{"type":"string","description":"The type of destination database.\n"},"destinationEndpointInstanceId":{"type":"string","description":"The ID of destination instance.\n"},"destinationEndpointInstanceType":{"type":"string","description":"The type of destination instance.\n"},"destinationEndpointIp":{"type":"string","description":"The ip of source endpoint.\n"},"destinationEndpointOracleSid":{"type":"string","description":"The SID of Oracle database.\n"},"destinationEndpointPort":{"type":"string","description":"The port of source endpoint.\n"},"destinationEndpointRegion":{"type":"string","description":"The region of destination instance.\n"},"destinationEndpointUserName":{"type":"string","description":"The username of database account.\n"},"dtsInstanceId":{"type":"string","description":"The Migration instance ID. The ID of \u003cspan pulumi-lang-nodejs=\"`alicloud.dts.MigrationInstance`\" pulumi-lang-dotnet=\"`alicloud.dts.MigrationInstance`\" pulumi-lang-go=\"`dts.MigrationInstance`\" pulumi-lang-python=\"`dts.MigrationInstance`\" pulumi-lang-yaml=\"`alicloud.dts.MigrationInstance`\" pulumi-lang-java=\"`alicloud.dts.MigrationInstance`\"\u003e`alicloud.dts.MigrationInstance`\u003c/span\u003e.\n"},"dtsJobId":{"type":"string","description":"The ID of the Migration Job.\n"},"dtsJobName":{"type":"string","description":"The name of synchronization job.\n"},"id":{"type":"string","description":"The ID of the Migration Job. Its value is same as \u003cspan pulumi-lang-nodejs=\"`dtsJobId`\" pulumi-lang-dotnet=\"`DtsJobId`\" pulumi-lang-go=\"`dtsJobId`\" pulumi-lang-python=\"`dts_job_id`\" pulumi-lang-yaml=\"`dtsJobId`\" pulumi-lang-java=\"`dtsJobId`\"\u003e`dts_job_id`\u003c/span\u003e.\n"},"paymentType":{"type":"string","description":"The payment type of the Migration Instance.\n"},"sourceEndpointDatabaseName":{"type":"string","description":"The name of migrate the database.\n"},"sourceEndpointEngineName":{"type":"string","description":"The type of source database.\n"},"sourceEndpointInstanceId":{"type":"string","description":"The ID of source instance.\n"},"sourceEndpointInstanceType":{"type":"string","description":"The type of source instance.\n"},"sourceEndpointIp":{"type":"string","description":"The ip of source endpoint.\n"},"sourceEndpointOracleSid":{"type":"string","description":"The SID of Oracle database.\n"},"sourceEndpointOwnerId":{"type":"string","description":"The Alibaba Cloud account ID to which the source instance belongs.\n"},"sourceEndpointPort":{"type":"string","description":"The port of source endpoint.\n"},"sourceEndpointRegion":{"type":"string","description":"The region of source instance.\n"},"sourceEndpointRole":{"type":"string","description":"The name of the role configured for the cloud account to which the source instance belongs.\n"},"sourceEndpointUserName":{"type":"string","description":"The username of database account.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"structureInitialization":{"type":"boolean","description":"Whether to perform a database table structure to migrate or initialization.\n"}},"type":"object","required":["dataInitialization","dataSynchronization","dbList","destinationEndpointDataBaseName","destinationEndpointEngineName","destinationEndpointInstanceId","destinationEndpointInstanceType","destinationEndpointIp","destinationEndpointOracleSid","destinationEndpointPort","destinationEndpointRegion","destinationEndpointUserName","dtsInstanceId","dtsJobId","dtsJobName","id","paymentType","sourceEndpointDatabaseName","sourceEndpointEngineName","sourceEndpointInstanceId","sourceEndpointInstanceType","sourceEndpointIp","sourceEndpointOracleSid","sourceEndpointOwnerId","sourceEndpointPort","sourceEndpointRegion","sourceEndpointRole","sourceEndpointUserName","status","structureInitialization"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dts/getSubscriptionJobsJob:getSubscriptionJobsJob":{"properties":{"checkpoint":{"type":"string","description":"Subscription start time in Unix timestamp format.\n"},"createTime":{"type":"string","description":"The creation time of subscription job instance.\n"},"dbList":{"type":"string","description":"Subscription object, in the format of JSON strings.\n"},"dtsInstanceId":{"type":"string","description":"The ID of subscription job instance.\n"},"dtsJobId":{"type":"string","description":"The ID of subscription job instance.\n"},"dtsJobName":{"type":"string","description":"The name of subscription job instance.\n"},"expireTime":{"type":"string","description":"The Expiration Time. Formatting with yyyy-MM-ddTHH:mm:ssZ(UTC time).\n"},"id":{"type":"string","description":"The ID of the Subscription Job.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`.\n"},"sourceEndpointDatabaseName":{"type":"string","description":"To subscribe to the name of the database.\n"},"sourceEndpointEngineName":{"type":"string","description":"The source database type value is MySQL or Oracle.\n"},"sourceEndpointInstanceId":{"type":"string","description":"The ID of source instance. Only when the type of source database instance was RDS MySQL, PolarDB-X 1.0, PolarDB MySQL, this parameter can be available and must be set.\n"},"sourceEndpointInstanceType":{"type":"string","description":"The type of source instance. Valid values: `RDS`, `PolarDB`, `DRDS`, `LocalInstance`, `ECS`, `Express`, `CEN`, \u003cspan pulumi-lang-nodejs=\"`dg`\" pulumi-lang-dotnet=\"`Dg`\" pulumi-lang-go=\"`dg`\" pulumi-lang-python=\"`dg`\" pulumi-lang-yaml=\"`dg`\" pulumi-lang-java=\"`dg`\"\u003e`dg`\u003c/span\u003e.\n"},"sourceEndpointIp":{"type":"string","description":"The IP of source endpoint.\n"},"sourceEndpointOracleSid":{"type":"string","description":"The SID of Oracle Database. When the source database is self-built Oracle and the Oracle database is a non-RAC instance, this parameter is available and must be passed in.\n"},"sourceEndpointOwnerId":{"type":"string","description":"The Alibaba Cloud account ID to which the source instance belongs. This parameter is only available when configuring data subscriptions across Alibaba Cloud accounts and must be passed in.\n"},"sourceEndpointPort":{"type":"string","description":"The  port of source database.\n"},"sourceEndpointRegion":{"type":"string","description":"The region of source database.\n"},"sourceEndpointRole":{"type":"string","description":"Both the authorization roles. When the source instance and configure subscriptions task of the Alibaba Cloud account is not the same as the need to pass the parameter, to specify the source of the authorization roles, to allow configuration subscription task of the Alibaba Cloud account to access the source of the source instance information.\n"},"sourceEndpointUserName":{"type":"string","description":"The username of source database instance account.\n"},"status":{"type":"string","description":"The status of the task. Valid values: `NotStarted`, `Normal`, `Abnormal`. When a task created, it is in this state of `NotStarted`. You can specify this state of `Normal` to start the job, and specify this state of `Abnormal` to stop the job.\n"},"subscriptionDataTypeDdl":{"type":"boolean","description":"Whether to subscribe the DDL type of data. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"subscriptionDataTypeDml":{"type":"boolean","description":"Whether to subscribe the DML type of data. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"subscriptionHosts":{"type":"array","items":{"$ref":"#/types/alicloud:dts/getSubscriptionJobsJobSubscriptionHost:getSubscriptionJobsJobSubscriptionHost"},"description":"Network information.\n"},"subscriptionInstanceNetworkType":{"type":"string","description":"The type of subscription instance network. Valid value: \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n"},"subscriptionInstanceVpcId":{"type":"string","description":"The ID of subscription instance vpc.\n"},"subscriptionInstanceVswitchId":{"type":"string","description":"The ID of subscription instance vswitch.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object","required":["checkpoint","createTime","dbList","dtsInstanceId","dtsJobId","dtsJobName","expireTime","id","paymentType","sourceEndpointDatabaseName","sourceEndpointEngineName","sourceEndpointInstanceId","sourceEndpointInstanceType","sourceEndpointIp","sourceEndpointOracleSid","sourceEndpointOwnerId","sourceEndpointPort","sourceEndpointRegion","sourceEndpointRole","sourceEndpointUserName","status","subscriptionDataTypeDdl","subscriptionDataTypeDml","subscriptionHosts","subscriptionInstanceNetworkType","subscriptionInstanceVpcId","subscriptionInstanceVswitchId","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dts/getSubscriptionJobsJobSubscriptionHost:getSubscriptionJobsJobSubscriptionHost":{"properties":{"privateHost":{"type":"string","description":"Classic network address.\n"},"publicHost":{"type":"string","description":"Public network address.\n"},"vpcHost":{"type":"string","description":"VPC network address.\n"}},"type":"object","required":["privateHost","publicHost","vpcHost"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:dts/getSynchronizationJobsJob:getSynchronizationJobsJob":{"properties":{"checkpoint":{"type":"string","description":"Start time in Unix timestamp format.\n"},"createTime":{"type":"string"},"dataInitialization":{"type":"boolean","description":"Whether to execute DTS supports schema migration, full data migration, or full-data initialization.\n"},"dataSynchronization":{"type":"boolean","description":"Whether to perform incremental data migration for migration types or synchronization.\n"},"dbList":{"type":"string","description":"Migration object, in the format of JSON strings. For detailed definition instructions, please refer to [the description of migration, synchronization or subscription objects](https://help.aliyun.com/document_detail/209545.html).\n"},"destinationEndpointDataBaseName":{"type":"string","description":"The name of migrate the database.\n"},"destinationEndpointEngineName":{"type":"string","description":"The type of destination database. Valid values: `ADB20`, `ADB30`, `AS400`, `DATAHUB`, `DB2`, `GREENPLUM`, `KAFKA`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `PostgreSQL`.\n"},"destinationEndpointInstanceId":{"type":"string","description":"The ID of destination instance.\n"},"destinationEndpointInstanceType":{"type":"string","description":"The type of destination instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`ads`\" pulumi-lang-dotnet=\"`Ads`\" pulumi-lang-go=\"`ads`\" pulumi-lang-python=\"`ads`\" pulumi-lang-yaml=\"`ads`\" pulumi-lang-java=\"`ads`\"\u003e`ads`\u003c/span\u003e, `CEN`, `DATAHUB`, `DG`, `ECS`, `EXPRESS`, `GREENPLUM`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.\n"},"destinationEndpointIp":{"type":"string","description":"The ip of source endpoint.\n"},"destinationEndpointOracleSid":{"type":"string","description":"The SID of Oracle database.\n"},"destinationEndpointPort":{"type":"string","description":"The port of source endpoint.\n"},"destinationEndpointRegion":{"type":"string","description":"The region of destination instance.\n"},"destinationEndpointUserName":{"type":"string","description":"The username of database account.\n"},"dtsInstanceId":{"type":"string"},"dtsJobId":{"type":"string"},"dtsJobName":{"type":"string","description":"The name of synchronization job.\n"},"expireTime":{"type":"string"},"id":{"type":"string","description":"The ID of synchronizing instance. It's the ID of resource \u003cspan pulumi-lang-nodejs=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-dotnet=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-go=\"`dts.SynchronizationInstance`\" pulumi-lang-python=\"`dts.SynchronizationInstance`\" pulumi-lang-yaml=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-java=\"`alicloud.dts.SynchronizationInstance`\"\u003e`alicloud.dts.SynchronizationInstance`\u003c/span\u003e.\n"},"sourceEndpointDatabaseName":{"type":"string","description":"The name of migrate the database.\n"},"sourceEndpointEngineName":{"type":"string","description":"The type of source database. Valid values: `AS400`, `DB2`, `DMSPOLARDB`, `HBASE`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `POSTGRESQL`, `TERADATA`.\n"},"sourceEndpointInstanceId":{"type":"string","description":"The ID of source instance.\n"},"sourceEndpointInstanceType":{"type":"string","description":"The type of source instance. Valid values: `CEN`, `DG`, `DISTRIBUTED_DMSLOGICDB`, `ECS`, `EXPRESS`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.\n"},"sourceEndpointIp":{"type":"string","description":"The ip of source endpoint.\n"},"sourceEndpointOracleSid":{"type":"string","description":"The SID of Oracle database.\n"},"sourceEndpointOwnerId":{"type":"string","description":"The Alibaba Cloud account ID to which the source instance belongs.\n"},"sourceEndpointPort":{"type":"string","description":"The port of source endpoint.\n"},"sourceEndpointRegion":{"type":"string","description":"The region of source instance.\n"},"sourceEndpointRole":{"type":"string","description":"The name of the role configured for the cloud account to which the source instance belongs.\n"},"sourceEndpointUserName":{"type":"string","description":"The username of database account.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Synchronizing`, `Suspending`. You can stop the task by specifying `Suspending` and start the task by specifying `Synchronizing`.\n"},"structureInitialization":{"type":"boolean","description":"Whether to perform a database table structure to migrate or initialization values include:\n"},"synchronizationDirection":{"type":"string","description":"Synchronization direction. Valid values: `Forward`, `Reverse`. Only when the property \u003cspan pulumi-lang-nodejs=\"`syncArchitecture`\" pulumi-lang-dotnet=\"`SyncArchitecture`\" pulumi-lang-go=\"`syncArchitecture`\" pulumi-lang-python=\"`sync_architecture`\" pulumi-lang-yaml=\"`syncArchitecture`\" pulumi-lang-java=\"`syncArchitecture`\"\u003e`sync_architecture`\u003c/span\u003e of the \u003cspan pulumi-lang-nodejs=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-dotnet=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-go=\"`dts.SynchronizationInstance`\" pulumi-lang-python=\"`dts.SynchronizationInstance`\" pulumi-lang-yaml=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-java=\"`alicloud.dts.SynchronizationInstance`\"\u003e`alicloud.dts.SynchronizationInstance`\u003c/span\u003e was \u003cspan pulumi-lang-nodejs=\"`bidirectional`\" pulumi-lang-dotnet=\"`Bidirectional`\" pulumi-lang-go=\"`bidirectional`\" pulumi-lang-python=\"`bidirectional`\" pulumi-lang-yaml=\"`bidirectional`\" pulumi-lang-java=\"`bidirectional`\"\u003e`bidirectional`\u003c/span\u003e this parameter should be passed, otherwise this parameter should not be specified.\n"}},"type":"object","required":["checkpoint","createTime","dataInitialization","dataSynchronization","dbList","destinationEndpointDataBaseName","destinationEndpointEngineName","destinationEndpointInstanceId","destinationEndpointInstanceType","destinationEndpointIp","destinationEndpointOracleSid","destinationEndpointPort","destinationEndpointRegion","destinationEndpointUserName","dtsInstanceId","dtsJobId","dtsJobName","expireTime","id","sourceEndpointDatabaseName","sourceEndpointEngineName","sourceEndpointInstanceId","sourceEndpointInstanceType","sourceEndpointIp","sourceEndpointOracleSid","sourceEndpointOwnerId","sourceEndpointPort","sourceEndpointRegion","sourceEndpointRole","sourceEndpointUserName","status","structureInitialization","synchronizationDirection"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eais/InstanceEnvironmentVar:InstanceEnvironmentVar":{"properties":{"key":{"type":"string","description":"Keys for environment variables\n"},"value":{"type":"string","description":"Values of environment variables\n"}},"type":"object"},"alicloud:eais/getInstancesInstance:getInstancesInstance":{"properties":{"clientInstanceId":{"type":"string","description":"The ID of the ECS instance to be bound.\n"},"clientInstanceName":{"type":"string","description":"The name of the ECS instance bound to the EAIS instance.\n"},"clientInstanceType":{"type":"string","description":"The type of the ECS instance bound to the EAIS instance.\n"},"id":{"type":"string","description":"The ID of the Instance.\n"},"instanceId":{"type":"string","description":"The ID of the resource.\n"},"instanceName":{"type":"string","description":"The name of the resource.\n"},"instanceType":{"type":"string","description":"The type of the resource. Valid values: `eais.ei-a6.4xlarge`, `eais.ei-a6.2xlarge`, `eais.ei-a6.xlarge`, `eais.ei-a6.large`, `eais.ei-a6.medium`.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Attaching`, `Available`, `Detaching`, `InUse`, `Starting`, `Unavailable`.\n"},"zoneId":{"type":"string","description":"The ID of the region to which the EAIS instance belongs.\n"}},"type":"object","required":["clientInstanceId","clientInstanceName","clientInstanceType","id","instanceId","instanceName","instanceType","status","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ebs/EnterpriseSnapshotPolicyCrossRegionCopyInfo:EnterpriseSnapshotPolicyCrossRegionCopyInfo":{"properties":{"enabled":{"type":"boolean","description":"Enable Snapshot replication.\n"},"regions":{"type":"array","items":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicyCrossRegionCopyInfoRegion:EnterpriseSnapshotPolicyCrossRegionCopyInfoRegion"},"description":"Destination region for Snapshot replication. See \u003cspan pulumi-lang-nodejs=\"`regions`\" pulumi-lang-dotnet=\"`Regions`\" pulumi-lang-go=\"`regions`\" pulumi-lang-python=\"`regions`\" pulumi-lang-yaml=\"`regions`\" pulumi-lang-java=\"`regions`\"\u003e`regions`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:ebs/EnterpriseSnapshotPolicyCrossRegionCopyInfoRegion:EnterpriseSnapshotPolicyCrossRegionCopyInfoRegion":{"properties":{"regionId":{"type":"string","description":"Destination region ID.\n"},"retainDays":{"type":"integer","description":"Number of days of snapshot retention for replication.\n"}},"type":"object"},"alicloud:ebs/EnterpriseSnapshotPolicyRetainRule:EnterpriseSnapshotPolicyRetainRule":{"properties":{"number":{"type":"integer","description":"Retention based on counting method.\n"},"timeInterval":{"type":"integer","description":"Time unit.\n"},"timeUnit":{"type":"string","description":"Time-based retention.\n"}},"type":"object"},"alicloud:ebs/EnterpriseSnapshotPolicySchedule:EnterpriseSnapshotPolicySchedule":{"properties":{"cronExpression":{"type":"string","description":"CronTab expression.\n"}},"type":"object","required":["cronExpression"]},"alicloud:ebs/EnterpriseSnapshotPolicySpecialRetainRules:EnterpriseSnapshotPolicySpecialRetainRules":{"properties":{"enabled":{"type":"boolean","description":"Whether special reservations are enabled. Value range:\n- true\n- false.\n"},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicySpecialRetainRulesRule:EnterpriseSnapshotPolicySpecialRetainRulesRule"},"description":"List of special retention rules. See \u003cspan pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\"\u003e`rules`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:ebs/EnterpriseSnapshotPolicySpecialRetainRulesRule:EnterpriseSnapshotPolicySpecialRetainRulesRule":{"properties":{"specialPeriodUnit":{"type":"string","description":"The cycle unit of the special reserved snapshot. If the value is set to WEEKS, the first snapshot of each week is reserved. The retention time is determined by TimeUnit and TimeInterval. The value range is:\n- WEEKS\n- MONTHS\n- YEARS.\n"},"timeInterval":{"type":"integer"},"timeUnit":{"type":"string"}},"type":"object"},"alicloud:ebs/EnterpriseSnapshotPolicyStorageRule:EnterpriseSnapshotPolicyStorageRule":{"properties":{"enableImmediateAccess":{"type":"boolean","description":"Snapshot speed available.\n"}},"type":"object"},"alicloud:ebs/SolutionInstanceParameter:SolutionInstanceParameter":{"properties":{"parameterKey":{"type":"string","description":"Create parameter Key.\n"},"parameterValue":{"type":"string","description":"Create parameter Value.\n"}},"type":"object","required":["parameterKey","parameterValue"]},"alicloud:ebs/getDedicatedBlockStorageClustersCluster:getDedicatedBlockStorageClustersCluster":{"properties":{"availableCapacity":{"type":"string","description":"The available capacity of the dedicated block storage cluster. Unit: GiB.\n"},"category":{"type":"string","description":"The type of cloud disk that can be created by a dedicated block storage cluster.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"dedicatedBlockStorageClusterId":{"type":"string","description":"The first ID of the resource\n"},"dedicatedBlockStorageClusterName":{"type":"string","description":"The name of the resource\n"},"deliveryCapacity":{"type":"string","description":"Capacity to be delivered in GB.\n"},"description":{"type":"string","description":"The description of the dedicated block storage cluster.\n"},"expiredTime":{"type":"string","description":"The expiration time of the dedicated block storage cluster, in the Unix timestamp format, in seconds.\n"},"id":{"type":"string"},"performanceLevel":{"type":"string","description":"Cloud disk performance level, possible values:-PL0.-PL1.-PL2.-PL3.\u003e Only valid in SupportedCategory = cloud_essd.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"The status of the resource\n"},"supportedCategory":{"type":"string","description":"This parameter is not supported.\n"},"totalCapacity":{"type":"string","description":"The total capacity of the dedicated block storage cluster. Unit: GiB.\n"},"type":{"type":"string","description":"The dedicated block storage cluster performance type. Possible values:-Standard: Basic type. This type of dedicated block storage cluster can create an ESSD PL0 cloud disk.-Premium: performance type. This type of dedicated block storage cluster can create an ESSD PL1 cloud disk.\n"},"usedCapacity":{"type":"string","description":"The used (created disk) capacity of the current cluster, in GB\n"},"zoneId":{"type":"string","description":"The zone ID  of the resource\n"}},"type":"object","required":["availableCapacity","category","createTime","dedicatedBlockStorageClusterId","dedicatedBlockStorageClusterName","deliveryCapacity","description","expiredTime","id","performanceLevel","resourceGroupId","status","supportedCategory","totalCapacity","type","usedCapacity","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ebs/getDiskReplicaGroupsGroup:getDiskReplicaGroupsGroup":{"properties":{"description":{"type":"string","description":"The description of the consistent replication group.\n"},"destinationRegionId":{"type":"string","description":"The ID of the region to which the disaster recovery site belongs.\n"},"destinationZoneId":{"type":"string","description":"The ID of the zone to which the disaster recovery site belongs.\n"},"groupName":{"type":"string","description":"Consistent replication group name.\n"},"id":{"type":"string","description":"The ID of the Disk Replica Group.\n"},"lastRecoverPoint":{"type":"string"},"primaryRegion":{"type":"string","description":"The initial source region of the replication group.\n"},"primaryZone":{"type":"string","description":"The initial source available area of the replication group.\n"},"replicaGroupId":{"type":"string","description":"The ID of the consistent replication group.\n"},"rpo":{"type":"integer","description":"The recovery point objective (RPO) of the replication pair-consistent group.\n"},"site":{"type":"string","description":"Site information sources for replication pairs and consistent replication groups.\n"},"sourceRegionId":{"type":"string","description":"The ID of the region to which the production site belongs.\n"},"sourceZoneId":{"type":"string","description":"The ID of the zone to which the production site belongs.\n"},"standbyRegion":{"type":"string","description":"The initial destination region of the replication group.\n"},"standbyZone":{"type":"string","description":"The initial destination zone of the replication group.\n"},"status":{"type":"string","description":"The status of the consistent replication group. Possible values:\n"}},"type":"object","required":["description","destinationRegionId","destinationZoneId","groupName","id","lastRecoverPoint","primaryRegion","primaryZone","replicaGroupId","rpo","site","sourceRegionId","sourceZoneId","standbyRegion","standbyZone","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ebs/getDiskReplicaPairsPair:getDiskReplicaPairsPair":{"properties":{"bandwidth":{"type":"string","description":"The bandwidth for asynchronous data replication between cloud disks. The unit is Kbps. Value range:-10240 Kbps: equal to 10 Mbps.-20480 Kbps: equal to 20 Mbps.-51200 Kbps: equal to 50 Mbps.-102400 Kbps: equal to 100 Mbps.Default value: 10240.This parameter cannot be specified when the ChargeType value is POSTPAY. The system value is 0, which indicates that the disk is dynamically allocated according to data write changes during asynchronous replication.\n"},"description":{"type":"string","description":"The description of the asynchronous replication relationship. 2 to 256 English or Chinese characters in length and cannot start with' http:// 'or' https.\n"},"destinationDiskId":{"type":"string","description":"The ID of the standby disk.\n"},"destinationRegionId":{"type":"string","description":"The ID of the region to which the disaster recovery site belongs.\n"},"destinationZoneId":{"type":"string","description":"The ID of the zone to which the disaster recovery site belongs.\n"},"diskId":{"type":"string","description":"The ID of the primary disk.\n"},"id":{"type":"string"},"pairName":{"type":"string","description":"The name of the asynchronous replication relationship. The length must be 2 to 128 characters in length and must start with a letter or Chinese name. It cannot start with http:// or https. It can contain Chinese, English, numbers, half-width colons (:), underscores (_), half-width periods (.), or dashes (-).\n"},"paymentType":{"type":"string","description":"The payment type of the resource.\n"},"replicaPairId":{"type":"string","description":"The first ID of the resource\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"rpo":{"type":"string","description":"The RPO value set by the consistency group in seconds. Currently only 900 seconds are supported.\n"},"sourceZoneId":{"type":"string","description":"The ID of the zone to which the production site belongs.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object","required":["bandwidth","description","destinationDiskId","destinationRegionId","destinationZoneId","diskId","id","pairName","paymentType","replicaPairId","resourceGroupId","rpo","sourceZoneId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ebs/getRegionsRegion:getRegionsRegion":{"properties":{"regionId":{"type":"string","description":"The ID of the region.\n"},"zones":{"type":"array","items":{"$ref":"#/types/alicloud:ebs/getRegionsRegionZone:getRegionsRegionZone"},"description":"A list of Ebs Zones.\n"}},"type":"object","required":["regionId","zones"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ebs/getRegionsRegionZone:getRegionsRegionZone":{"properties":{"zoneId":{"type":"string","description":"The ID of the zone.\n"}},"type":"object","required":["zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/ContainerGroupAcrRegistryInfo:ContainerGroupAcrRegistryInfo":{"properties":{"domains":{"type":"array","items":{"type":"string"},"description":"The domain name of the ACR Enterprise Edition instance. Defaults to all domain names of the corresponding instance. Support specifying individual domain names, multiple separated by half comma.\n"},"instanceId":{"type":"string","description":"The ACR enterprise edition example ID.\n"},"instanceName":{"type":"string","description":"The name of the ACR enterprise edition instance.\n"},"regionId":{"type":"string","description":"The ACR enterprise edition instance belongs to the region.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:eci/ContainerGroupContainer:ContainerGroupContainer":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"The arguments passed to the commands.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Commands to be executed inside the container when performing health checks using the command line method.\n"},"cpu":{"type":"number","description":"The amount of CPU resources allocated to the container. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"environmentVars":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainerEnvironmentVar:ContainerGroupContainerEnvironmentVar"},"description":"The structure of environmentVars. See \u003cspan pulumi-lang-nodejs=\"`environmentVars`\" pulumi-lang-dotnet=\"`EnvironmentVars`\" pulumi-lang-go=\"`environmentVars`\" pulumi-lang-python=\"`environment_vars`\" pulumi-lang-yaml=\"`environmentVars`\" pulumi-lang-java=\"`environmentVars`\"\u003e`environment_vars`\u003c/span\u003e below.\n"},"gpu":{"type":"integer","description":"The number GPUs. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n","willReplaceOnChanges":true},"image":{"type":"string","description":"The image of the container.\n"},"imagePullPolicy":{"type":"string","description":"The restart policy of the image. Default value: `IfNotPresent`. Valid values: `Always`, `IfNotPresent`, `Never`.\n"},"lifecyclePreStopHandlerExecs":{"type":"array","items":{"type":"string"},"description":"The commands to be executed in containers when you use the CLI to specify the preStop callback function.\n"},"livenessProbes":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainerLivenessProbe:ContainerGroupContainerLivenessProbe"},"description":"The health check of the container. See \u003cspan pulumi-lang-nodejs=\"`livenessProbe`\" pulumi-lang-dotnet=\"`LivenessProbe`\" pulumi-lang-go=\"`livenessProbe`\" pulumi-lang-python=\"`liveness_probe`\" pulumi-lang-yaml=\"`livenessProbe`\" pulumi-lang-java=\"`livenessProbe`\"\u003e`liveness_probe`\u003c/span\u003e below.\n"},"memory":{"type":"number","description":"The amount of memory resources allocated to the container. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the mounted volume.\n","willReplaceOnChanges":true},"ports":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainerPort:ContainerGroupContainerPort"},"description":"The structure of port. See \u003cspan pulumi-lang-nodejs=\"`ports`\" pulumi-lang-dotnet=\"`Ports`\" pulumi-lang-go=\"`ports`\" pulumi-lang-python=\"`ports`\" pulumi-lang-yaml=\"`ports`\" pulumi-lang-java=\"`ports`\"\u003e`ports`\u003c/span\u003e below.\n"},"readinessProbes":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainerReadinessProbe:ContainerGroupContainerReadinessProbe"},"description":"The health check of the container. See \u003cspan pulumi-lang-nodejs=\"`readinessProbe`\" pulumi-lang-dotnet=\"`ReadinessProbe`\" pulumi-lang-go=\"`readinessProbe`\" pulumi-lang-python=\"`readiness_probe`\" pulumi-lang-yaml=\"`readinessProbe`\" pulumi-lang-java=\"`readinessProbe`\"\u003e`readiness_probe`\u003c/span\u003e below.\n"},"ready":{"type":"boolean","description":"Indicates whether the container passed the readiness probe.\n"},"restartCount":{"type":"integer","description":"The number of times that the container restarted.\n"},"securityContexts":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainerSecurityContext:ContainerGroupContainerSecurityContext"},"description":"The security context of the container. See \u003cspan pulumi-lang-nodejs=\"`securityContext`\" pulumi-lang-dotnet=\"`SecurityContext`\" pulumi-lang-go=\"`securityContext`\" pulumi-lang-python=\"`security_context`\" pulumi-lang-yaml=\"`securityContext`\" pulumi-lang-java=\"`securityContext`\"\u003e`security_context`\u003c/span\u003e below.\n"},"volumeMounts":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainerVolumeMount:ContainerGroupContainerVolumeMount"},"description":"The structure of volumeMounts. See \u003cspan pulumi-lang-nodejs=\"`volumeMounts`\" pulumi-lang-dotnet=\"`VolumeMounts`\" pulumi-lang-go=\"`volumeMounts`\" pulumi-lang-python=\"`volume_mounts`\" pulumi-lang-yaml=\"`volumeMounts`\" pulumi-lang-java=\"`volumeMounts`\"\u003e`volume_mounts`\u003c/span\u003e below.\n"},"workingDir":{"type":"string","description":"The working directory of the container.\n"}},"type":"object","required":["image","name"],"language":{"nodejs":{"requiredOutputs":["image","livenessProbes","name","readinessProbes","ready","restartCount","securityContexts"]}}},"alicloud:eci/ContainerGroupContainerEnvironmentVar:ContainerGroupContainerEnvironmentVar":{"properties":{"fieldReves":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainerEnvironmentVarFieldRef:ContainerGroupContainerEnvironmentVarFieldRef"}},"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"alicloud:eci/ContainerGroupContainerEnvironmentVarFieldRef:ContainerGroupContainerEnvironmentVarFieldRef":{"properties":{"fieldPath":{"type":"string"}},"type":"object"},"alicloud:eci/ContainerGroupContainerLivenessProbe:ContainerGroupContainerLivenessProbe":{"properties":{"execs":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainerLivenessProbeExec:ContainerGroupContainerLivenessProbeExec"},"description":"Health check using command line method. See \u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e below.\n"},"failureThreshold":{"type":"integer","description":"Threshold for the number of checks that are determined to have failed since the last successful check (must be consecutive failures), default is 3.\n"},"httpGets":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainerLivenessProbeHttpGet:ContainerGroupContainerLivenessProbeHttpGet"},"description":"Health check using HTTP request method. See \u003cspan pulumi-lang-nodejs=\"`httpGet`\" pulumi-lang-dotnet=\"`HttpGet`\" pulumi-lang-go=\"`httpGet`\" pulumi-lang-python=\"`http_get`\" pulumi-lang-yaml=\"`httpGet`\" pulumi-lang-java=\"`httpGet`\"\u003e`http_get`\u003c/span\u003e below.\n\n\u003e **NOTE:** When you configure \u003cspan pulumi-lang-nodejs=\"`readinessProbe`\" pulumi-lang-dotnet=\"`ReadinessProbe`\" pulumi-lang-go=\"`readinessProbe`\" pulumi-lang-python=\"`readiness_probe`\" pulumi-lang-yaml=\"`readinessProbe`\" pulumi-lang-java=\"`readinessProbe`\"\u003e`readiness_probe`\u003c/span\u003e, you can select only one of the \u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tcpSocket`\" pulumi-lang-dotnet=\"`TcpSocket`\" pulumi-lang-go=\"`tcpSocket`\" pulumi-lang-python=\"`tcp_socket`\" pulumi-lang-yaml=\"`tcpSocket`\" pulumi-lang-java=\"`tcpSocket`\"\u003e`tcp_socket`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`httpGet`\" pulumi-lang-dotnet=\"`HttpGet`\" pulumi-lang-go=\"`httpGet`\" pulumi-lang-python=\"`http_get`\" pulumi-lang-yaml=\"`httpGet`\" pulumi-lang-java=\"`httpGet`\"\u003e`http_get`\u003c/span\u003e.\n"},"initialDelaySeconds":{"type":"integer","description":"Check the time to start execution, calculated from the completion of container startup.\n"},"periodSeconds":{"type":"integer","description":"Buffer time for the program to handle operations before closing.\n"},"successThreshold":{"type":"integer","description":"The check count threshold for re-identifying successful checks since the last failed check (must be consecutive successes), default is 1. Current must be 1.\n","willReplaceOnChanges":true},"tcpSockets":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainerLivenessProbeTcpSocket:ContainerGroupContainerLivenessProbeTcpSocket"},"description":"Health check using TCP socket method. See \u003cspan pulumi-lang-nodejs=\"`tcpSocket`\" pulumi-lang-dotnet=\"`TcpSocket`\" pulumi-lang-go=\"`tcpSocket`\" pulumi-lang-python=\"`tcp_socket`\" pulumi-lang-yaml=\"`tcpSocket`\" pulumi-lang-java=\"`tcpSocket`\"\u003e`tcp_socket`\u003c/span\u003e below.\n"},"timeoutSeconds":{"type":"integer","description":"Check the timeout, the default is 1 second, the minimum is 1 second.\n"}},"type":"object"},"alicloud:eci/ContainerGroupContainerLivenessProbeExec:ContainerGroupContainerLivenessProbeExec":{"properties":{"commands":{"type":"array","items":{"type":"string"}}},"type":"object"},"alicloud:eci/ContainerGroupContainerLivenessProbeHttpGet:ContainerGroupContainerLivenessProbeHttpGet":{"properties":{"path":{"type":"string"},"port":{"type":"integer"},"scheme":{"type":"string","description":"The protocol type corresponding to the HTTP Get request when using the HTTP request method for health checks. Valid values: `HTTP`, `HTTPS`.\n"}},"type":"object"},"alicloud:eci/ContainerGroupContainerLivenessProbeTcpSocket:ContainerGroupContainerLivenessProbeTcpSocket":{"properties":{"port":{"type":"integer"}},"type":"object"},"alicloud:eci/ContainerGroupContainerPort:ContainerGroupContainerPort":{"properties":{"port":{"type":"integer"},"protocol":{"type":"string"}},"type":"object"},"alicloud:eci/ContainerGroupContainerReadinessProbe:ContainerGroupContainerReadinessProbe":{"properties":{"execs":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainerReadinessProbeExec:ContainerGroupContainerReadinessProbeExec"},"description":"Health check using command line method. See \u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e below.\n"},"failureThreshold":{"type":"integer","description":"Threshold for the number of checks that are determined to have failed since the last successful check (must be consecutive failures), default is 3.\n"},"httpGets":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainerReadinessProbeHttpGet:ContainerGroupContainerReadinessProbeHttpGet"},"description":"Health check using HTTP request method. See \u003cspan pulumi-lang-nodejs=\"`httpGet`\" pulumi-lang-dotnet=\"`HttpGet`\" pulumi-lang-go=\"`httpGet`\" pulumi-lang-python=\"`http_get`\" pulumi-lang-yaml=\"`httpGet`\" pulumi-lang-java=\"`httpGet`\"\u003e`http_get`\u003c/span\u003e below.\n\n\u003e **NOTE:** When you configure \u003cspan pulumi-lang-nodejs=\"`readinessProbe`\" pulumi-lang-dotnet=\"`ReadinessProbe`\" pulumi-lang-go=\"`readinessProbe`\" pulumi-lang-python=\"`readiness_probe`\" pulumi-lang-yaml=\"`readinessProbe`\" pulumi-lang-java=\"`readinessProbe`\"\u003e`readiness_probe`\u003c/span\u003e, you can select only one of the \u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tcpSocket`\" pulumi-lang-dotnet=\"`TcpSocket`\" pulumi-lang-go=\"`tcpSocket`\" pulumi-lang-python=\"`tcp_socket`\" pulumi-lang-yaml=\"`tcpSocket`\" pulumi-lang-java=\"`tcpSocket`\"\u003e`tcp_socket`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`httpGet`\" pulumi-lang-dotnet=\"`HttpGet`\" pulumi-lang-go=\"`httpGet`\" pulumi-lang-python=\"`http_get`\" pulumi-lang-yaml=\"`httpGet`\" pulumi-lang-java=\"`httpGet`\"\u003e`http_get`\u003c/span\u003e.\n"},"initialDelaySeconds":{"type":"integer","description":"Check the time to start execution, calculated from the completion of container startup.\n"},"periodSeconds":{"type":"integer","description":"Buffer time for the program to handle operations before closing.\n"},"successThreshold":{"type":"integer","description":"The check count threshold for re-identifying successful checks since the last failed check (must be consecutive successes), default is 1. Current must be 1.\n","willReplaceOnChanges":true},"tcpSockets":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainerReadinessProbeTcpSocket:ContainerGroupContainerReadinessProbeTcpSocket"},"description":"Health check using TCP socket method. See \u003cspan pulumi-lang-nodejs=\"`tcpSocket`\" pulumi-lang-dotnet=\"`TcpSocket`\" pulumi-lang-go=\"`tcpSocket`\" pulumi-lang-python=\"`tcp_socket`\" pulumi-lang-yaml=\"`tcpSocket`\" pulumi-lang-java=\"`tcpSocket`\"\u003e`tcp_socket`\u003c/span\u003e below.\n"},"timeoutSeconds":{"type":"integer","description":"Check the timeout, the default is 1 second, the minimum is 1 second.\n"}},"type":"object"},"alicloud:eci/ContainerGroupContainerReadinessProbeExec:ContainerGroupContainerReadinessProbeExec":{"properties":{"commands":{"type":"array","items":{"type":"string"}}},"type":"object"},"alicloud:eci/ContainerGroupContainerReadinessProbeHttpGet:ContainerGroupContainerReadinessProbeHttpGet":{"properties":{"path":{"type":"string"},"port":{"type":"integer"},"scheme":{"type":"string","description":"The protocol type corresponding to the HTTP Get request when using the HTTP request method for health checks. Valid values: `HTTP`, `HTTPS`.\n"}},"type":"object"},"alicloud:eci/ContainerGroupContainerReadinessProbeTcpSocket:ContainerGroupContainerReadinessProbeTcpSocket":{"properties":{"port":{"type":"integer"}},"type":"object"},"alicloud:eci/ContainerGroupContainerSecurityContext:ContainerGroupContainerSecurityContext":{"properties":{"capabilities":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainerSecurityContextCapability:ContainerGroupContainerSecurityContextCapability"}},"privileged":{"type":"boolean","description":"Specifies whether to give extended privileges to this container. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"runAsUser":{"type":"integer"}},"type":"object"},"alicloud:eci/ContainerGroupContainerSecurityContextCapability:ContainerGroupContainerSecurityContextCapability":{"properties":{"adds":{"type":"array","items":{"type":"string"}}},"type":"object"},"alicloud:eci/ContainerGroupContainerVolumeMount:ContainerGroupContainerVolumeMount":{"properties":{"mountPath":{"type":"string"},"name":{"type":"string","willReplaceOnChanges":true},"readOnly":{"type":"boolean"}},"type":"object"},"alicloud:eci/ContainerGroupDnsConfig:ContainerGroupDnsConfig":{"properties":{"nameServers":{"type":"array","items":{"type":"string"},"description":"The list of DNS server IP addresses.\n"},"options":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupDnsConfigOption:ContainerGroupDnsConfigOption"},"description":"The structure of options. See \u003cspan pulumi-lang-nodejs=\"`options`\" pulumi-lang-dotnet=\"`Options`\" pulumi-lang-go=\"`options`\" pulumi-lang-python=\"`options`\" pulumi-lang-yaml=\"`options`\" pulumi-lang-java=\"`options`\"\u003e`options`\u003c/span\u003e below.\n"},"searches":{"type":"array","items":{"type":"string"},"description":"The list of DNS lookup domains.\n"}},"type":"object"},"alicloud:eci/ContainerGroupDnsConfigOption:ContainerGroupDnsConfigOption":{"properties":{"name":{"type":"string"},"value":{"type":"string"}},"type":"object"},"alicloud:eci/ContainerGroupHostAlias:ContainerGroupHostAlias":{"properties":{"hostnames":{"type":"array","items":{"type":"string"},"description":"The information about the host.\n","willReplaceOnChanges":true},"ip":{"type":"string","description":"The IP address of the host.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:eci/ContainerGroupImageRegistryCredential:ContainerGroupImageRegistryCredential":{"properties":{"password":{"type":"string","description":"The password used to log on to the image repository. It is required when \u003cspan pulumi-lang-nodejs=\"`imageRegistryCredential`\" pulumi-lang-dotnet=\"`ImageRegistryCredential`\" pulumi-lang-go=\"`imageRegistryCredential`\" pulumi-lang-python=\"`image_registry_credential`\" pulumi-lang-yaml=\"`imageRegistryCredential`\" pulumi-lang-java=\"`imageRegistryCredential`\"\u003e`image_registry_credential`\u003c/span\u003e is configured.\n"},"server":{"type":"string","description":"The address of the image repository. It is required when \u003cspan pulumi-lang-nodejs=\"`imageRegistryCredential`\" pulumi-lang-dotnet=\"`ImageRegistryCredential`\" pulumi-lang-go=\"`imageRegistryCredential`\" pulumi-lang-python=\"`image_registry_credential`\" pulumi-lang-yaml=\"`imageRegistryCredential`\" pulumi-lang-java=\"`imageRegistryCredential`\"\u003e`image_registry_credential`\u003c/span\u003e is configured.\n"},"userName":{"type":"string","description":"The username used to log on to the image repository. It is required when \u003cspan pulumi-lang-nodejs=\"`imageRegistryCredential`\" pulumi-lang-dotnet=\"`ImageRegistryCredential`\" pulumi-lang-go=\"`imageRegistryCredential`\" pulumi-lang-python=\"`image_registry_credential`\" pulumi-lang-yaml=\"`imageRegistryCredential`\" pulumi-lang-java=\"`imageRegistryCredential`\"\u003e`image_registry_credential`\u003c/span\u003e is configured.\n"}},"type":"object","required":["password","server","userName"]},"alicloud:eci/ContainerGroupInitContainer:ContainerGroupInitContainer":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"The arguments passed to the commands.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"The commands run by the init container.\n"},"cpu":{"type":"number","description":"The amount of CPU resources allocated to the container. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"environmentVars":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupInitContainerEnvironmentVar:ContainerGroupInitContainerEnvironmentVar"},"description":"The structure of environmentVars. See \u003cspan pulumi-lang-nodejs=\"`environmentVars`\" pulumi-lang-dotnet=\"`EnvironmentVars`\" pulumi-lang-go=\"`environmentVars`\" pulumi-lang-python=\"`environment_vars`\" pulumi-lang-yaml=\"`environmentVars`\" pulumi-lang-java=\"`environmentVars`\"\u003e`environment_vars`\u003c/span\u003e below.\n"},"gpu":{"type":"integer","description":"The number GPUs. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n","willReplaceOnChanges":true},"image":{"type":"string","description":"The image of the container.\n"},"imagePullPolicy":{"type":"string","description":"The restart policy of the image. Default value: `IfNotPresent`. Valid values: `Always`, `IfNotPresent`, `Never`.\n"},"memory":{"type":"number","description":"The amount of memory resources allocated to the container. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the mounted volume.\n","willReplaceOnChanges":true},"ports":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupInitContainerPort:ContainerGroupInitContainerPort"},"description":"The structure of port. See \u003cspan pulumi-lang-nodejs=\"`ports`\" pulumi-lang-dotnet=\"`Ports`\" pulumi-lang-go=\"`ports`\" pulumi-lang-python=\"`ports`\" pulumi-lang-yaml=\"`ports`\" pulumi-lang-java=\"`ports`\"\u003e`ports`\u003c/span\u003e below.\n"},"ready":{"type":"boolean","description":"Indicates whether the container passed the readiness probe.\n"},"restartCount":{"type":"integer","description":"The number of times that the container restarted.\n"},"securityContexts":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupInitContainerSecurityContext:ContainerGroupInitContainerSecurityContext"},"description":"The security context of the container. See \u003cspan pulumi-lang-nodejs=\"`securityContext`\" pulumi-lang-dotnet=\"`SecurityContext`\" pulumi-lang-go=\"`securityContext`\" pulumi-lang-python=\"`security_context`\" pulumi-lang-yaml=\"`securityContext`\" pulumi-lang-java=\"`securityContext`\"\u003e`security_context`\u003c/span\u003e below.\n"},"volumeMounts":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupInitContainerVolumeMount:ContainerGroupInitContainerVolumeMount"},"description":"The structure of volumeMounts. See \u003cspan pulumi-lang-nodejs=\"`volumeMounts`\" pulumi-lang-dotnet=\"`VolumeMounts`\" pulumi-lang-go=\"`volumeMounts`\" pulumi-lang-python=\"`volume_mounts`\" pulumi-lang-yaml=\"`volumeMounts`\" pulumi-lang-java=\"`volumeMounts`\"\u003e`volume_mounts`\u003c/span\u003e below.\n"},"workingDir":{"type":"string","description":"The working directory of the container.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ready","restartCount","securityContexts"]}}},"alicloud:eci/ContainerGroupInitContainerEnvironmentVar:ContainerGroupInitContainerEnvironmentVar":{"properties":{"fieldReves":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupInitContainerEnvironmentVarFieldRef:ContainerGroupInitContainerEnvironmentVarFieldRef"}},"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"alicloud:eci/ContainerGroupInitContainerEnvironmentVarFieldRef:ContainerGroupInitContainerEnvironmentVarFieldRef":{"properties":{"fieldPath":{"type":"string"}},"type":"object"},"alicloud:eci/ContainerGroupInitContainerPort:ContainerGroupInitContainerPort":{"properties":{"port":{"type":"integer"},"protocol":{"type":"string"}},"type":"object"},"alicloud:eci/ContainerGroupInitContainerSecurityContext:ContainerGroupInitContainerSecurityContext":{"properties":{"capabilities":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupInitContainerSecurityContextCapability:ContainerGroupInitContainerSecurityContextCapability"}},"runAsUser":{"type":"integer"}},"type":"object"},"alicloud:eci/ContainerGroupInitContainerSecurityContextCapability:ContainerGroupInitContainerSecurityContextCapability":{"properties":{"adds":{"type":"array","items":{"type":"string"}}},"type":"object"},"alicloud:eci/ContainerGroupInitContainerVolumeMount:ContainerGroupInitContainerVolumeMount":{"properties":{"mountPath":{"type":"string"},"name":{"type":"string","willReplaceOnChanges":true},"readOnly":{"type":"boolean"}},"type":"object"},"alicloud:eci/ContainerGroupSecurityContext:ContainerGroupSecurityContext":{"properties":{"sysctls":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupSecurityContextSysctl:ContainerGroupSecurityContextSysctl"},"description":"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. See \u003cspan pulumi-lang-nodejs=\"`sysctl`\" pulumi-lang-dotnet=\"`Sysctl`\" pulumi-lang-go=\"`sysctl`\" pulumi-lang-python=\"`sysctl`\" pulumi-lang-yaml=\"`sysctl`\" pulumi-lang-java=\"`sysctl`\"\u003e`sysctl`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:eci/ContainerGroupSecurityContextSysctl:ContainerGroupSecurityContextSysctl":{"properties":{"name":{"type":"string","willReplaceOnChanges":true},"value":{"type":"string","willReplaceOnChanges":true}},"type":"object"},"alicloud:eci/ContainerGroupVolume:ContainerGroupVolume":{"properties":{"configFileVolumeConfigFileToPaths":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupVolumeConfigFileVolumeConfigFileToPath:ContainerGroupVolumeConfigFileVolumeConfigFileToPath"},"description":"The paths of the ConfigFile volume. See \u003cspan pulumi-lang-nodejs=\"`configFileVolumeConfigFileToPaths`\" pulumi-lang-dotnet=\"`ConfigFileVolumeConfigFileToPaths`\" pulumi-lang-go=\"`configFileVolumeConfigFileToPaths`\" pulumi-lang-python=\"`config_file_volume_config_file_to_paths`\" pulumi-lang-yaml=\"`configFileVolumeConfigFileToPaths`\" pulumi-lang-java=\"`configFileVolumeConfigFileToPaths`\"\u003e`config_file_volume_config_file_to_paths`\u003c/span\u003e below.\n\u003e **NOTE:** Every volumes mounted must have \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e attributes.\n","willReplaceOnChanges":true},"diskVolumeDiskId":{"type":"string","description":"The ID of DiskVolume.\n","willReplaceOnChanges":true},"diskVolumeFsType":{"type":"string","description":"The system type of DiskVolume.\n","willReplaceOnChanges":true},"flexVolumeDriver":{"type":"string","description":"The name of the FlexVolume driver.\n","willReplaceOnChanges":true},"flexVolumeFsType":{"type":"string","description":"The type of the mounted file system. The default value is determined by the script of FlexVolume.\n","willReplaceOnChanges":true},"flexVolumeOptions":{"type":"string","description":"The list of FlexVolume objects. Each object is a key-value pair contained in a JSON string.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the volume.\n","willReplaceOnChanges":true},"nfsVolumePath":{"type":"string","description":"The path to the NFS volume.\n","willReplaceOnChanges":true},"nfsVolumeReadOnly":{"type":"boolean","description":"The nfs volume read only. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"nfsVolumeServer":{"type":"string","description":"The address of the NFS server.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the volume.\n"}},"type":"object"},"alicloud:eci/ContainerGroupVolumeConfigFileVolumeConfigFileToPath:ContainerGroupVolumeConfigFileVolumeConfigFileToPath":{"properties":{"content":{"type":"string","description":"The content of the configuration file. Maximum size: 32 KB.\n","willReplaceOnChanges":true},"path":{"type":"string","willReplaceOnChanges":true}},"type":"object"},"alicloud:eci/ImageCacheImageRegistryCredential:ImageCacheImageRegistryCredential":{"properties":{"password":{"type":"string","description":"The password of the Image Registry.\n"},"server":{"type":"string","description":"The address of Image Registry without `http://` or `https://`.\n"},"userName":{"type":"string","description":"The user name of Image Registry.\n"}},"type":"object"},"alicloud:eci/OpenApiImageCacheImageRegistryCredential:OpenApiImageCacheImageRegistryCredential":{"properties":{"password":{"type":"string"},"server":{"type":"string"},"userName":{"type":"string"}},"type":"object"},"alicloud:eci/VirtualNodeTaint:VirtualNodeTaint":{"properties":{"effect":{"type":"string","description":"The effect of the taint. Valid values: `NoSchedule`, `NoExecute` and `PreferNoSchedule`.\n"},"key":{"type":"string","description":"The key of the taint.\n"},"value":{"type":"string","description":"The value of the taint.\n"}},"type":"object"},"alicloud:eci/getContainerGroupsGroup:getContainerGroupsGroup":{"properties":{"containerGroupId":{"type":"string","description":"The id if ContainerGroup.\n"},"containerGroupName":{"type":"string","description":"The name of ContainerGroup.\n"},"containers":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroupContainer:getContainerGroupsGroupContainer"},"description":"A list of containers. Each element contains the following attributes:\n"},"cpu":{"type":"number","description":"The amount of CPU resources allocated to the container group.\n"},"discount":{"type":"integer"},"dnsConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroupDnsConfig:getContainerGroupsGroupDnsConfig"},"description":"The DNS settings.\n"},"eciSecurityContexts":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroupEciSecurityContext:getContainerGroupsGroupEciSecurityContext"},"description":"The security context of the container group.\n"},"eniInstanceId":{"type":"string","description":"The ID of the ENI instance.\n"},"events":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroupEvent:getContainerGroupsGroupEvent"},"description":"The events of the container group. Maximum: \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e.\n"},"expiredTime":{"type":"string","description":"The time when the container group failed to run due to overdue payments. The timestamp follows the UTC and RFC3339 formats.\n"},"failedTime":{"type":"string","description":"The time when the container failed to run tasks. The timestamp follows the UTC and RFC3339 formats.\n"},"hostAliases":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroupHostAlias:getContainerGroupsGroupHostAlias"},"description":"The mapping between host names and IP addresses for a container in the container group.\n"},"id":{"type":"string","description":"The ID of the Container Group.\n"},"initContainers":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroupInitContainer:getContainerGroupsGroupInitContainer"},"description":"A list of init containers. Each element contains the following attributes:\n"},"instanceType":{"type":"string","description":"The type of the ECS instance.\n"},"internetIp":{"type":"string","description":"The public IP address of the container group.\n"},"intranetIp":{"type":"string","description":"The internal IP address of the container group.\n"},"ipv6Address":{"type":"string","description":"The IPv6 address.\n"},"memory":{"type":"number","description":"The amount of memory resources allocated to the container group.\n"},"ramRoleName":{"type":"string","description":"The RAM role that the container group assumes. ECI and ECS share the same RAM role.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the container group belongs. If you have not specified a resource group for the container group, it is added to the default resource group.\n"},"restartPolicy":{"type":"string","description":"The restart policy of the container group.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n"},"status":{"type":"string","description":"The status of container.\n"},"succeededTime":{"type":"string","description":"The time when all containers in the container group completed running the specified tasks. The timestamp follows the UTC and RFC 3339 formats. For example, 2018-08-02T15:00:00Z.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags attached to the container group. Each tag is a key-value pair. You can attach up to 20 tags to a container group.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroupVolume:getContainerGroupsGroupVolume"},"description":"The information about the mounted volume. You can mount up to 20 volumes.\n"},"vpcId":{"type":"string","description":"The if of vpc.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string","description":"The IDs of the zones where the container groups are deployed. If this parameter is not set, the system automatically selects the zones. By default, no value is specified.\n"}},"type":"object","required":["containerGroupId","containerGroupName","containers","cpu","discount","dnsConfigs","eciSecurityContexts","eniInstanceId","events","expiredTime","failedTime","hostAliases","id","initContainers","instanceType","internetIp","intranetIp","ipv6Address","memory","ramRoleName","resourceGroupId","restartPolicy","securityGroupId","status","succeededTime","tags","volumes","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getContainerGroupsGroupContainer:getContainerGroupsGroupContainer":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"The arguments passed to the commands. Maximum: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"The commands run by the container. You can define a maximum of 20 commands. Minimum length per string: 256 characters.\n"},"cpu":{"type":"number","description":"The amount of CPU resources allocated to the container.\n"},"environmentVars":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroupContainerEnvironmentVar:getContainerGroupsGroupContainerEnvironmentVar"},"description":"The environment variables.\n"},"gpu":{"type":"integer","description":"The amount of GPU resources allocated to the container.\n"},"image":{"type":"string","description":"The image of the container.\n"},"imagePullPolicy":{"type":"string","description":"The policy for pulling an image.\n"},"memory":{"type":"number","description":"The amount of memory resources allocated to the container.\n"},"name":{"type":"string","description":"The name of the container.\n"},"ports":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroupContainerPort:getContainerGroupsGroupContainerPort"},"description":"The list of exposed ports and protocols. Maximum: 100.\n"},"ready":{"type":"boolean","description":"Indicates whether the container is ready.\n"},"restartCount":{"type":"integer","description":"The number of times that the container has restarted.\n"},"volumeMounts":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroupContainerVolumeMount:getContainerGroupsGroupContainerVolumeMount"},"description":"The list of volumes mounted to the container.\n"},"workingDir":{"type":"string","description":"The working directory of the container.\n"}},"type":"object","required":["args","commands","cpu","environmentVars","gpu","image","imagePullPolicy","memory","name","ports","ready","restartCount","volumeMounts","workingDir"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getContainerGroupsGroupContainerEnvironmentVar:getContainerGroupsGroupContainerEnvironmentVar":{"properties":{"key":{"type":"string","description":"The name of the variable.\n"},"value":{"type":"string","description":"The value of the variable.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getContainerGroupsGroupContainerPort:getContainerGroupsGroupContainerPort":{"properties":{"port":{"type":"integer","description":"The port number. Valid values: 1 to 65535.\n"},"protocol":{"type":"string","description":"Valid values: `TCP` and `UDP`.\n"}},"type":"object","required":["port","protocol"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getContainerGroupsGroupContainerVolumeMount:getContainerGroupsGroupContainerVolumeMount":{"properties":{"mountPath":{"type":"string","description":"The directory of the mounted volume. Data under this directory will be overwritten by the data in the volume.\n"},"name":{"type":"string","description":"The name of the volume. The name is the same as the volume you selected when you purchased the container.\n"},"readOnly":{"type":"boolean","description":"Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object","required":["mountPath","name","readOnly"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getContainerGroupsGroupDnsConfig:getContainerGroupsGroupDnsConfig":{"properties":{"nameServers":{"type":"array","items":{"type":"string"},"description":"The list of DNS server IP addresses.\n"},"options":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroupDnsConfigOption:getContainerGroupsGroupDnsConfigOption"},"description":"The list of objects. Each object is a name-value pair. The value is optional.\n"},"searches":{"type":"array","items":{"type":"string"},"description":"The list of DNS lookup domains.\n"}},"type":"object","required":["nameServers","options","searches"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getContainerGroupsGroupDnsConfigOption:getContainerGroupsGroupDnsConfigOption":{"properties":{"name":{"type":"string","description":"The name of the object variable.\n"},"value":{"type":"string","description":"The value of the object variable.\n"}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getContainerGroupsGroupEciSecurityContext:getContainerGroupsGroupEciSecurityContext":{"properties":{"sysctls":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroupEciSecurityContextSysctl:getContainerGroupsGroupEciSecurityContextSysctl"},"description":"The system information.\n"}},"type":"object","required":["sysctls"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getContainerGroupsGroupEciSecurityContextSysctl:getContainerGroupsGroupEciSecurityContextSysctl":{"properties":{"name":{"type":"string","description":"The name of the variable.\n"},"value":{"type":"string","description":"The value of the variable.\n"}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getContainerGroupsGroupEvent:getContainerGroupsGroupEvent":{"properties":{"count":{"type":"integer","description":"The number of events.\n"},"firstTimestamp":{"type":"string","description":"The time when the event started.\n"},"lastTimestamp":{"type":"string","description":"The time when the event ended.\n"},"message":{"type":"string","description":"The content of the event.\n"},"name":{"type":"string","description":"The name of the object to which the event belongs.\n"},"reason":{"type":"string","description":"The name of the event.\n"},"type":{"type":"string","description":"The type of the event. Valid values: Normal and Warning.\n"}},"type":"object","required":["count","firstTimestamp","lastTimestamp","message","name","reason","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getContainerGroupsGroupHostAlias:getContainerGroupsGroupHostAlias":{"properties":{"hostnames":{"type":"array","items":{"type":"string"},"description":"The name of the host.\n"},"ip":{"type":"string","description":"The IP address of the container.\n"}},"type":"object","required":["hostnames","ip"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getContainerGroupsGroupInitContainer:getContainerGroupsGroupInitContainer":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"The arguments passed to the commands.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"The commands run by the container.\n"},"cpu":{"type":"number","description":"The amount of CPU resources allocated to the container.\n"},"environmentVars":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroupInitContainerEnvironmentVar:getContainerGroupsGroupInitContainerEnvironmentVar"},"description":"The environment variables.\n"},"gpu":{"type":"integer","description":"The amount of GPU resources allocated to the container.\n"},"image":{"type":"string","description":"The image of the container.\n"},"imagePullPolicy":{"type":"string","description":"The policy for pulling an image.\n"},"memory":{"type":"number","description":"The amount of memory resources allocated to the container.\n"},"name":{"type":"string","description":"The name of the init container.\n"},"ports":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroupInitContainerPort:getContainerGroupsGroupInitContainerPort"},"description":"The exposed ports and protocols. Maximum: \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"ready":{"type":"boolean","description":"Indicates whether the container is ready.\n"},"restartCount":{"type":"integer","description":"The number of times that the container has restarted.\n"},"volumeMounts":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroupInitContainerVolumeMount:getContainerGroupsGroupInitContainerVolumeMount"},"description":"The list of volumes mounted to the container.\n"},"workingDir":{"type":"string","description":"The working directory of the container.\n"}},"type":"object","required":["args","commands","cpu","environmentVars","gpu","image","imagePullPolicy","memory","name","ports","ready","restartCount","volumeMounts","workingDir"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getContainerGroupsGroupInitContainerEnvironmentVar:getContainerGroupsGroupInitContainerEnvironmentVar":{"properties":{"key":{"type":"string","description":"The name of the variable.\n"},"value":{"type":"string","description":"The value of the variable.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getContainerGroupsGroupInitContainerPort:getContainerGroupsGroupInitContainerPort":{"properties":{"port":{"type":"integer","description":"The port number. Valid values: 1 to 65535.\n"},"protocol":{"type":"string","description":"Valid values: `TCP` and `UDP`.\n"}},"type":"object","required":["port","protocol"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getContainerGroupsGroupInitContainerVolumeMount:getContainerGroupsGroupInitContainerVolumeMount":{"properties":{"mountPath":{"type":"string","description":"The directory of the mounted volume. Data under this directory will be overwritten by the data in the volume.\n"},"name":{"type":"string","description":"The name of the volume. The name is the same as the volume you selected when you purchased the container.\n"},"readOnly":{"type":"boolean","description":"Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object","required":["mountPath","name","readOnly"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getContainerGroupsGroupVolume:getContainerGroupsGroupVolume":{"properties":{"configFileVolumeConfigFileToPaths":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroupVolumeConfigFileVolumeConfigFileToPath:getContainerGroupsGroupVolumeConfigFileVolumeConfigFileToPath"},"description":"The list of configuration file paths.\n"},"diskVolumeDiskId":{"type":"string","description":"The ID of DiskVolume.\n"},"diskVolumeFsType":{"type":"string","description":"The type of DiskVolume.\n"},"flexVolumeDriver":{"type":"string","description":"The name of the FlexVolume driver.\n"},"flexVolumeFsType":{"type":"string","description":"The type of the mounted file system. The default value is determined by the script of FlexVolume.\n"},"flexVolumeOptions":{"type":"string","description":"The list of FlexVolume objects.\n"},"name":{"type":"string","description":"The name of the volume.\n"},"nfsVolumePath":{"type":"string","description":"The path to the NFS volume.\n"},"nfsVolumeReadOnly":{"type":"boolean","description":"Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"nfsVolumeServer":{"type":"string","description":"The address of the NFS server.\n"},"type":{"type":"string","description":"The type of the volume. Currently, the following types of volumes are supported: EmptyDirVolume, NFSVolume, ConfigFileVolume, and FlexVolume.\n"}},"type":"object","required":["configFileVolumeConfigFileToPaths","diskVolumeDiskId","diskVolumeFsType","flexVolumeDriver","flexVolumeFsType","flexVolumeOptions","name","nfsVolumePath","nfsVolumeReadOnly","nfsVolumeServer","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getContainerGroupsGroupVolumeConfigFileVolumeConfigFileToPath:getContainerGroupsGroupVolumeConfigFileVolumeConfigFileToPath":{"properties":{"content":{"type":"string","description":"The content of the configuration file. Maximum size: 32 KB.\n"},"path":{"type":"string","description":"The relative file path.\n"}},"type":"object","required":["content","path"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getImageCachesCache:getImageCachesCache":{"properties":{"containerGroupId":{"type":"string","description":"The id of container group.\n"},"events":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getImageCachesCacheEvent:getImageCachesCacheEvent"},"description":"Image cache pulls image event information.\n"},"expireDateTime":{"type":"string","description":"The time of expired.\n"},"id":{"type":"string","description":"The ID of the ECI Image Cache.\n"},"imageCacheId":{"type":"string","description":"The id of the ECI Image Cache.\n"},"imageCacheName":{"type":"string","description":"The name of ECI Image Cache.\n"},"images":{"type":"array","items":{"type":"string"},"description":"The list of cached images.\n"},"progress":{"type":"string","description":"The progress of ECI Image Cache.\n"},"snapshotId":{"type":"string","description":"The id of snapshot.\n"},"status":{"type":"string","description":"The status of ECI Image Cache.\n"}},"type":"object","required":["containerGroupId","events","expireDateTime","id","imageCacheId","imageCacheName","images","progress","snapshotId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getImageCachesCacheEvent:getImageCachesCacheEvent":{"properties":{"count":{"type":"integer","description":"Number of events.\n"},"firstTimestamp":{"type":"string","description":"Start time.\n"},"lastTimestamp":{"type":"string","description":"End time.\n"},"message":{"type":"string"},"name":{"type":"string","description":"The name of event.\n"},"type":{"type":"string","description":"The type of event.\n"}},"type":"object","required":["count","firstTimestamp","lastTimestamp","message","name","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getVirtualNodesNode:getVirtualNodesNode":{"properties":{"cpu":{"type":"integer","description":"The Number of CPU.\n"},"createTime":{"type":"string","description":"The creation time of the virtual node.\n"},"eniInstanceId":{"type":"string","description":"The ENI instance ID.\n"},"events":{"type":"array","items":{"$ref":"#/types/alicloud:eci/getVirtualNodesNodeEvent:getVirtualNodesNodeEvent"},"description":"The event list.\n"},"id":{"type":"string","description":"The ID of the Virtual Node.\n"},"internetIp":{"type":"string","description":"The IP address of a public network.\n"},"intranetIp":{"type":"string","description":"The private IP address of the RDS instance.\n"},"memory":{"type":"integer","description":"The memory size.\n"},"ramRoleName":{"type":"string","description":"The ram role.\n"},"resourceGroupId":{"type":"string","description":"The resource group ID.\n"},"securityGroupId":{"type":"string","description":"The security group ID.\n"},"status":{"type":"string","description":"The Status of the virtual node.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"virtualNodeId":{"type":"string","description":"Of the virtual node number.\n"},"virtualNodeName":{"type":"string","description":"The name of the virtual node.\n"},"vpcId":{"type":"string"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string","description":"The Zone.\n"}},"type":"object","required":["cpu","createTime","eniInstanceId","events","id","internetIp","intranetIp","memory","ramRoleName","resourceGroupId","securityGroupId","status","tags","virtualNodeId","virtualNodeName","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getVirtualNodesNodeEvent:getVirtualNodesNodeEvent":{"properties":{"count":{"type":"integer","description":"The number of occurrences.\n"},"firstTimestamp":{"type":"string","description":"The first presentation time stamp.\n"},"lastTimestamp":{"type":"string","description":"The most recent time stamp.\n"},"message":{"type":"string","description":"The event of the message body.\n"},"name":{"type":"string","description":"The name of the event.\n"},"reason":{"type":"string","description":"The causes of the incident.\n"},"type":{"type":"string","description":"The Event type.\n"}},"type":"object","required":["count","firstTimestamp","lastTimestamp","message","name","reason","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eci/getZonesZone:getZonesZone":{"properties":{"regionEndpoint":{"type":"string","description":"The endpoint of the region.\n"},"zoneIds":{"type":"array","items":{"type":"string"},"description":"The list of available zone ids.\n"}},"type":"object","required":["regionEndpoint","zoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecp/getInstanceTypesInstanceType:getInstanceTypesInstanceType":{"properties":{"cpuCoreCount":{"type":"integer","description":"The cpu core count of the current instance type.\n"},"defaultResolution":{"type":"string","description":"The default resolution of the current instance type.\n"},"instanceType":{"type":"string","description":"The list of available instance type.\n"},"instanceTypeFamily":{"type":"string"},"name":{"type":"string","description":"The name of the current instance type.\n"},"nameEn":{"type":"string","description":"The English name of the current instance type.\n"}},"type":"object","required":["cpuCoreCount","defaultResolution","instanceType","instanceTypeFamily","name","nameEn"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecp/getInstancesInstance:getInstancesInstance":{"properties":{"description":{"type":"string","description":"Instance Description.\n"},"id":{"type":"string","description":"The ID of the Instance.\n"},"imageId":{"type":"string","description":"The ID Of The Image.\n"},"instanceId":{"type":"string","description":"InstanceId.\n"},"instanceName":{"type":"string","description":"Instance Name.\n"},"instanceType":{"type":"string","description":"Instance Type.\n"},"keyPairName":{"type":"string","description":"The Key Name.\n"},"paymentType":{"type":"string","description":"The payment type.Valid values: `PayAsYouGo`,`Subscription`\n"},"resolution":{"type":"string","description":"Resolution.\n"},"securityGroupId":{"type":"string","description":"Security Group ID.\n"},"status":{"type":"string","description":"Instance Status.\n"},"vncUrl":{"type":"string","description":"VNC login address.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string"}},"type":"object","required":["description","id","imageId","instanceId","instanceName","instanceType","keyPairName","paymentType","resolution","securityGroupId","status","vncUrl","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecp/getKeyPairsPair:getKeyPairsPair":{"properties":{"id":{"type":"string","description":"The ID of the Key Pair. Its value is same as Queue Name.\n"},"keyPairFingerPrint":{"type":"string","description":"The Private Key of the Fingerprint.\n"},"keyPairName":{"type":"string","description":"The Key Name.\n"}},"type":"object","required":["id","keyPairFingerPrint","keyPairName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecp/getZonesZone:getZonesZone":{"properties":{"zoneId":{"type":"string","description":"String to filter results by zone id.\n"}},"type":"object","required":["zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/AutoProvisioningGroupLaunchTemplateConfig:AutoProvisioningGroupLaunchTemplateConfig":{"properties":{"instanceType":{"type":"string","description":"The instance type of the Nth extended configurations of the launch template.\n"},"maxPrice":{"type":"string","description":"The maximum price of the instance type specified in the Nth extended configurations of the launch template.\n"},"priority":{"type":"string","description":"The priority of the instance type specified in the Nth extended configurations of the launch template. A value of 0 indicates the highest priority.\n"},"vswitchId":{"type":"string","description":"The ID of the VSwitch in the Nth extended configurations of the launch template.\n"},"weightedCapacity":{"type":"string","description":"The weight of the instance type specified in the Nth extended configurations of the launch template.\n"}},"type":"object","required":["maxPrice","vswitchId","weightedCapacity"],"language":{"nodejs":{"requiredOutputs":["maxPrice","priority","vswitchId","weightedCapacity"]}}},"alicloud:ecs/AutoSnapshotPolicyCopyEncryptionConfiguration:AutoSnapshotPolicyCopyEncryptionConfiguration":{"properties":{"encrypted":{"type":"boolean","description":"Whether to enable encryption for cross-region snapshot replication. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"kmsKeyId":{"type":"string","description":"The ID of the Key Management Service (KMS) key used to encrypt snapshots in cross-region snapshot replication.\n"}},"type":"object"},"alicloud:ecs/DedicatedHostNetworkAttribute:DedicatedHostNetworkAttribute":{"properties":{"slbUdpTimeout":{"type":"integer","description":"The timeout period for a UDP session between Server Load Balancer (SLB) and the dedicated host. Unit: seconds. Valid values: 15 to 310.\n"},"udpTimeout":{"type":"integer","description":"The timeout period for a UDP session between a user and an Alibaba Cloud service on the dedicated host. Unit: seconds. Valid values: 15 to 310.\n"}},"type":"object"},"alicloud:ecs/EcsInstanceSetDataDisk:EcsInstanceSetDataDisk":{"properties":{"autoSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy applied to the system disk.\n","willReplaceOnChanges":true},"diskCategory":{"type":"string","description":"The category of the disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e.\n","willReplaceOnChanges":true},"diskDescription":{"type":"string","description":"The description of the data disk.\n","willReplaceOnChanges":true},"diskName":{"type":"string","description":"The name of the data disk.\n","willReplaceOnChanges":true},"diskSize":{"type":"integer","description":"The size of the data disk. Unit: GiB. Valid values:\n- When \u003cspan pulumi-lang-nodejs=\"`diskCategory`\" pulumi-lang-dotnet=\"`DiskCategory`\" pulumi-lang-go=\"`diskCategory`\" pulumi-lang-python=\"`disk_category`\" pulumi-lang-yaml=\"`diskCategory`\" pulumi-lang-java=\"`diskCategory`\"\u003e`disk_category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`diskCategory`\" pulumi-lang-dotnet=\"`DiskCategory`\" pulumi-lang-go=\"`diskCategory`\" pulumi-lang-python=\"`disk_category`\" pulumi-lang-yaml=\"`diskCategory`\" pulumi-lang-java=\"`diskCategory`\"\u003e`disk_category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`diskCategory`\" pulumi-lang-dotnet=\"`DiskCategory`\" pulumi-lang-go=\"`diskCategory`\" pulumi-lang-python=\"`disk_category`\" pulumi-lang-yaml=\"`diskCategory`\" pulumi-lang-java=\"`diskCategory`\"\u003e`disk_category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`diskCategory`\" pulumi-lang-dotnet=\"`DiskCategory`\" pulumi-lang-go=\"`diskCategory`\" pulumi-lang-python=\"`disk_category`\" pulumi-lang-yaml=\"`diskCategory`\" pulumi-lang-java=\"`diskCategory`\"\u003e`disk_category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, Valid values: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e.\n","willReplaceOnChanges":true},"encrypted":{"type":"boolean","description":"Encrypted the data in this disk. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"kmsKeyId":{"type":"string","description":"The KMS key ID corresponding to the data disk.\n","willReplaceOnChanges":true},"performanceLevel":{"type":"string","description":"The performance level of the ESSD used as data disk. Valid values: `PL0`, `PL1`, `PL2`, `PL3`.\n","willReplaceOnChanges":true},"snapshotId":{"type":"string","description":"The snapshot ID used to initialize the data disk. If the size specified by snapshot is greater that the size of the disk, use the size specified by snapshot as the size of the data disk.\n","willReplaceOnChanges":true}},"type":"object","required":["diskSize"],"language":{"nodejs":{"requiredOutputs":["diskCategory","diskSize","performanceLevel"]}}},"alicloud:ecs/EcsInstanceSetExcludeInstanceFilter:EcsInstanceSetExcludeInstanceFilter":{"properties":{"key":{"type":"string","description":"The type of the excluded. Valid values: `InstanceId`, `InstanceName`.\n"},"values":{"type":"array","items":{"type":"string"},"description":"The value of the excluded. The identification of the excluded instances. It is a list of instance Ids or names.\n"}},"type":"object","required":["key","values"]},"alicloud:ecs/EcsInstanceSetNetworkInterface:EcsInstanceSetNetworkInterface":{"properties":{"description":{"type":"string","description":"The description of ENI.\n","willReplaceOnChanges":true},"networkInterfaceName":{"type":"string","description":"The name of ENI.\n","willReplaceOnChanges":true},"primaryIpAddress":{"type":"string","description":"The primary private IP address of ENI.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group to which to assign secondary ENI.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which to connect ENI.\n","willReplaceOnChanges":true}},"type":"object","required":["securityGroupId"]},"alicloud:ecs/EcsLaunchTemplateDataDisk:EcsLaunchTemplateDataDisk":{"properties":{"category":{"type":"string","description":"The category of the disk.\n"},"deleteWithInstance":{"type":"boolean","description":"Indicates whether the data disk is released with the instance.\n"},"description":{"type":"string","description":"The description of the data disk.\n"},"device":{"type":"string","description":"The mount point of the data disk.\n"},"encrypted":{"type":"boolean","description":"Encrypted the data in this disk.\n"},"kmsKeyId":{"type":"string","description":"The ID of the KMS key used for the data disk.\n"},"name":{"type":"string","description":"The name of the data disk.\n"},"performanceLevel":{"type":"string","description":"The performance level of the ESSD used as the data disk.\n"},"size":{"type":"integer","description":"The size of the data disk.\n"},"snapshotId":{"type":"string","description":"The snapshot ID used to initialize the data disk. If the size specified by snapshot is greater that the size of the disk, use the size specified by snapshot as the size of the data disk.\n"}},"type":"object"},"alicloud:ecs/EcsLaunchTemplateImageOptions:EcsLaunchTemplateImageOptions":{"properties":{"loginAsNonRoot":{"type":"boolean","description":"Specifies whether the instance that uses the image supports logons of the ecs-user user. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object"},"alicloud:ecs/EcsLaunchTemplateNetworkInterfaces:EcsLaunchTemplateNetworkInterfaces":{"properties":{"deleteOnRelease":{"type":"boolean","description":"Specifies whether to release ENI N when the instance is released. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The ENI description.\n"},"name":{"type":"string","description":"The ENI name.\n"},"primaryIp":{"type":"string","description":"The primary private IP address of the ENI.\n"},"securityGroupId":{"type":"string","description":"The security group ID must be one in the same VPC.\n"},"vswitchId":{"type":"string","description":"The VSwitch ID for ENI. The instance must be in the same zone of the same VPC network as the ENI, but they may belong to different VSwitches.\n"}},"type":"object"},"alicloud:ecs/EcsLaunchTemplateSystemDisk:EcsLaunchTemplateSystemDisk":{"properties":{"category":{"type":"string","description":"The category of the system disk. System disk type. Valid values: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ephemeralSsd`\" pulumi-lang-dotnet=\"`EphemeralSsd`\" pulumi-lang-go=\"`ephemeralSsd`\" pulumi-lang-python=\"`ephemeral_ssd`\" pulumi-lang-yaml=\"`ephemeralSsd`\" pulumi-lang-java=\"`ephemeralSsd`\"\u003e`ephemeral_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localDisk`\" pulumi-lang-dotnet=\"`LocalDisk`\" pulumi-lang-go=\"`localDisk`\" pulumi-lang-python=\"`local_disk`\" pulumi-lang-yaml=\"`localDisk`\" pulumi-lang-java=\"`localDisk`\"\u003e`local_disk`\u003c/span\u003e.\n"},"deleteWithInstance":{"type":"boolean","description":"Specifies whether to release the system disk when the instance is released. Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"description":{"type":"string","description":"System disk description. It cannot begin with http:// or https://.\n"},"encrypted":{"type":"boolean","description":"Specifies whether the system disk is encrypted.\n"},"iops":{"type":"string","description":"The Iops.\n"},"kmsKeyId":{"type":"string","description":"The ID of the KMS key to use for the system disk.\n"},"name":{"type":"string","description":"System disk name. The name is a string of 2 to 128 characters. It must begin with an English or a Chinese character. It can contain A-Z, a-z, Chinese characters, numbers, periods (.), colons (:), underscores (_), and hyphens (-).\n"},"performanceLevel":{"type":"string","description":"The performance level of the ESSD used as the system disk. Valid Values: `PL0`, `PL1`, `PL2`, and `PL3`. Default to: `PL0`.\n"},"size":{"type":"integer","description":"Size of the system disk, measured in GB. Value range: [20, 500].\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["category","description","name","performanceLevel","size"]}}},"alicloud:ecs/EcsPrefixListEntry:EcsPrefixListEntry":{"properties":{"cidr":{"type":"string","description":"The CIDR block in entry. This parameter is empty by default.  Take note of the following items:\n* The total number of entries must not exceed the \u003cspan pulumi-lang-nodejs=\"`maxEntries`\" pulumi-lang-dotnet=\"`MaxEntries`\" pulumi-lang-go=\"`maxEntries`\" pulumi-lang-python=\"`max_entries`\" pulumi-lang-yaml=\"`maxEntries`\" pulumi-lang-java=\"`maxEntries`\"\u003e`max_entries`\u003c/span\u003e value.\n* CIDR block types are determined by the IP address family. You cannot combine `IPv4` and `IPv6` CIDR blocks in a single entry.\n* CIDR blocks must be unique across all entries in a prefix list. For example, you cannot specify 192.168.1.0/24 twice in the entries of the prefix list.\n* IP addresses are supported. The system converts IP addresses into CIDR blocks. For example, if you specify 192.168.1.100, the system converts it into the 192.168.1.100/32 CIDR block.\n* If an IPv6 CIDR block is used, the system converts it to the zero compression format and changes uppercase letters into lowercase ones. For example, if you specify 2001:0DB8:0000:0000:0000:0000:0000:0000/32, the system converts it into 2001:db8::/32.\n* For more information about CIDR blocks, see the \"What is CIDR block?\" section of the [Network FAQ](https://www.alibabacloud.com/help/doc-detail/40637.htm) topic.  * The total number of entries must not exceed the \u003cspan pulumi-lang-nodejs=\"`maxEntries`\" pulumi-lang-dotnet=\"`MaxEntries`\" pulumi-lang-go=\"`maxEntries`\" pulumi-lang-python=\"`max_entries`\" pulumi-lang-yaml=\"`maxEntries`\" pulumi-lang-java=\"`maxEntries`\"\u003e`max_entries`\u003c/span\u003e value.\n"},"description":{"type":"string","description":"The description in entry. The description must be 2 to 32 characters in length and cannot start with `http://` or `https://`.\n"}},"type":"object"},"alicloud:ecs/ImageDiskDeviceMapping:ImageDiskDeviceMapping":{"properties":{"device":{"type":"string","description":"The device name of disk N in the custom image. Valid values:\n- For disks other than basic disks, such as standard SSDs, ultra disks, and enhanced SSDs (ESSDs), the valid values range from /dev/vda to /dev/vdz in alphabetical order.\n- For basic disks, the valid values range from /dev/xvda to /dev/xvdz in alphabetical order.\n","willReplaceOnChanges":true},"diskType":{"type":"string","description":"The type of disk N in the custom image. You can specify this parameter to create the system disk of the custom image from a data disk snapshot. If you do not specify this parameter, the disk type is determined by the corresponding snapshot. Valid values:\n- system: system disk. You can specify only one snapshot to use to create the system disk in the custom image.\n- data: data disk. You can specify up to 16 snapshots to use to create data disks in the custom image.\n","willReplaceOnChanges":true},"format":{"type":"string","description":"Image format.\n"},"importOssBucket":{"type":"string","description":"Import the bucket of the OSS to which the image belongs.\n"},"importOssObject":{"type":"string","description":"Import the object of the OSS to which the image file belongs.\n"},"progress":{"type":"string","description":"Copy the progress of the task.\n"},"remainTime":{"type":"integer","description":"For an image being replicated, return the remaining time of the replication task, in seconds.\n"},"size":{"type":"integer","description":"The size of disk N in the custom image. Unit: GiB. The valid values and default value of DiskDeviceMapping.N.Size vary based on the value of DiskDeviceMapping.N.SnapshotId.\n- If no corresponding snapshot IDs are specified in the value of DiskDeviceMapping.N.SnapshotId, DiskDeviceMapping.N.Size has the following valid values and default values:\n*   For basic disks, the valid values range from 5 to 2000, and the default value is 5.\n*   For other disks, the valid values range from 20 to 32768, and the default value is 20.\n- If a corresponding snapshot ID is specified in the value of DiskDeviceMapping.N.SnapshotId, the value of DiskDeviceMapping.N.Size must be greater than or equal to the size of the specified snapshot. The default value of DiskDeviceMapping.N.Size is the size of the specified snapshot.\n","willReplaceOnChanges":true},"snapshotId":{"type":"string","description":"The ID of snapshot N to use to create the custom image. .\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["device","diskType","format","importOssBucket","importOssObject","progress","remainTime","size","snapshotId"]}}},"alicloud:ecs/ImageFeatures:ImageFeatures":{"properties":{"nvmeSupport":{"type":"string","description":"Specifies whether to support the Non-Volatile Memory Express (NVMe) protocol. Valid values:\n- supported: The image supports NVMe. Instances created from this image also support NVMe.\n- unsupported: The image does not support NVMe. Instances created from this image do not support NVMe.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["nvmeSupport"]}}},"alicloud:ecs/ImageImportDiskDeviceMapping:ImageImportDiskDeviceMapping":{"properties":{"device":{"type":"string","description":"The device name of the disk.\n","willReplaceOnChanges":true},"diskImageSize":{"type":"integer","description":"The size of the disk. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n","willReplaceOnChanges":true},"format":{"type":"string","description":"The format of the image. Valid values: `RAW`, `VHD`, \u003cspan pulumi-lang-nodejs=\"`qcow2`\" pulumi-lang-dotnet=\"`Qcow2`\" pulumi-lang-go=\"`qcow2`\" pulumi-lang-python=\"`qcow2`\" pulumi-lang-yaml=\"`qcow2`\" pulumi-lang-java=\"`qcow2`\"\u003e`qcow2`\u003c/span\u003e.\n","willReplaceOnChanges":true},"ossBucket":{"type":"string","description":"The OSS bucket where the image file is stored.\n","willReplaceOnChanges":true},"ossObject":{"type":"string","description":"The name (key) of the object that the uploaded image is stored as in the OSS bucket.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["device","format"]}}},"alicloud:ecs/InstanceCpuOptions:InstanceCpuOptions":{"properties":{"coreCount":{"type":"integer","description":"The maximum number of partitions in the storage set.\n"},"threadsPerCore":{"type":"integer","description":"The number of threads per CPU core.\n"},"topologyType":{"type":"string","description":"The CPU topology type of the instance. Valid values: `ContinuousCoreToHTMapping`, `DiscreteCoreToHTMapping`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["coreCount","threadsPerCore","topologyType"]}}},"alicloud:ecs/InstanceDataDisk:InstanceDataDisk":{"properties":{"autoSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy applied to the system disk.\n","willReplaceOnChanges":true},"burstingEnabled":{"type":"boolean","description":"Specifies whether to enable the performance burst feature for the system disk. Valid values:\n","willReplaceOnChanges":true},"category":{"type":"string","description":"The category of the disk:\n","willReplaceOnChanges":true},"deleteWithInstance":{"type":"boolean","description":"Delete this data disk when the instance is destroyed. It only works on cloud, cloud_efficiency, cloud_essd,\u003cspan pulumi-lang-nodejs=\" cloudSsd \" pulumi-lang-dotnet=\" CloudSsd \" pulumi-lang-go=\" cloudSsd \" pulumi-lang-python=\" cloud_ssd \" pulumi-lang-yaml=\" cloudSsd \" pulumi-lang-java=\" cloudSsd \"\u003e cloud_ssd \u003c/span\u003edisk. If the category of this data disk was ephemeral_ssd, please don't set this param. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the data disk.\n","willReplaceOnChanges":true},"device":{"type":"string","description":"The mount point of the data disk.\n","willReplaceOnChanges":true},"encrypted":{"type":"boolean","description":"Encrypted the data in this disk. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"kmsKeyId":{"type":"string","description":"The KMS key ID corresponding to the Nth data disk.\n"},"name":{"type":"string","description":"The name of the data disk.\n","willReplaceOnChanges":true},"performanceLevel":{"type":"string","description":"The performance level of the ESSD used as data disk:\n- `PL0`: A single ESSD can deliver up to 10,000 random read/write IOPS.\n- `PL1`: A single ESSD can deliver up to 50,000 random read/write IOPS.\n- `PL2`: A single ESSD can deliver up to 100,000 random read/write IOPS.\n- `PL3`: A single ESSD can deliver up to 1,000,000 random read/write IOPS.\nDefault to `PL1`.\n"},"provisionedIops":{"type":"integer","description":"The provisioned read/write IOPS of the ESSD AutoPL disk to use as the data disk.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"The size of the data disk.\n- cloud：[5, 2000]\n- cloud_efficiency：[20, 32768]\n- cloud_ssd：[20, 32768]\n- cloud_essd：[20, 32768]\n- ephemeral_ssd: [5, 800]\n","willReplaceOnChanges":true},"snapshotId":{"type":"string","description":"The snapshot ID used to initialize the data disk. If the size specified by snapshot is greater that the size of the disk, use the size specified by snapshot as the size of the data disk.\n","willReplaceOnChanges":true}},"type":"object","required":["size"],"language":{"nodejs":{"requiredOutputs":["performanceLevel","size"]}}},"alicloud:ecs/InstanceImageOptions:InstanceImageOptions":{"properties":{"loginAsNonRoot":{"type":"boolean","description":"Whether to allow the instance logging in with the ecs-user user.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:ecs/InstanceMaintenanceTime:InstanceMaintenanceTime":{"properties":{"endTime":{"type":"string","description":"The end time of maintenance. The time must be on the hour at exactly 0 minute and 0 second. The \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e parameters must be specified at the same time. The \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e value must be 1 to 23 hours later than the \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e value. Specify the time in the HH:mm:ss format. The time must be in UTC+8.\n"},"startTime":{"type":"string","description":"The start time of maintenance. The time must be on the hour at exactly 0 minute and 0 second. The \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e parameters must be specified at the same time. The \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e value must be 1 to 23 hours later than the \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e value. Specify the time in the HH:mm:ss format. The time must be in UTC+8.\n"}},"type":"object"},"alicloud:ecs/InstanceNetworkInterfaces:InstanceNetworkInterfaces":{"properties":{"networkCardIndex":{"type":"integer","description":"The index of the network card for Secondary ENI.\n","willReplaceOnChanges":true},"networkInterfaceId":{"type":"string","description":"The ID of the Secondary ENI.\n","willReplaceOnChanges":true},"networkInterfaceTrafficMode":{"type":"string","description":"The communication mode of the Secondary ENI. Default value: `Standard`. Valid values:\n- `Standard`: Uses the TCP communication mode.\n- `HighPerformance`: Uses the remote direct memory access (RDMA) communication mode with Elastic RDMA Interface (ERI) enabled.\n","willReplaceOnChanges":true},"queuePairNumber":{"type":"integer","description":"The number of queues supported by the ERI.\n","willReplaceOnChanges":true},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The ID of security group N to which to assign Secondary ENI N.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which to connect Secondary ENI N.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["networkCardIndex","networkInterfaceId","networkInterfaceTrafficMode","queuePairNumber","securityGroupIds","vswitchId"]}}},"alicloud:ecs/LaunchTemplateDataDisk:LaunchTemplateDataDisk":{"properties":{"category":{"type":"string","description":"The category of the disk:\n- cloud: Basic cloud disk.\n- cloud_efficiency: Ultra cloud disk.\n- cloud_ssd: SSD cloud Disks.\n- ephemeral_ssd: local SSD Disks\n- cloud_essd: ESSD cloud Disks.\n\nDefault to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n"},"deleteWithInstance":{"type":"boolean","description":"Delete this data disk when the instance is destroyed. It only works on cloud, cloud_efficiency,\u003cspan pulumi-lang-nodejs=\" cloudSsd \" pulumi-lang-dotnet=\" CloudSsd \" pulumi-lang-go=\" cloudSsd \" pulumi-lang-python=\" cloud_ssd \" pulumi-lang-yaml=\" cloudSsd \" pulumi-lang-java=\" cloudSsd \"\u003e cloud_ssd \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" cloudEssd \" pulumi-lang-dotnet=\" CloudEssd \" pulumi-lang-go=\" cloudEssd \" pulumi-lang-python=\" cloud_essd \" pulumi-lang-yaml=\" cloudEssd \" pulumi-lang-java=\" cloudEssd \"\u003e cloud_essd \u003c/span\u003edisk. If the category of this data disk was ephemeral_ssd, please don't set this param.\n\nDefault to true\n"},"description":{"type":"string","description":"The description of the data disk.\n"},"device":{"type":"string"},"encrypted":{"type":"boolean","description":"Encrypted the data in this disk.\n\nDefault to false\n"},"kmsKeyId":{"type":"string"},"name":{"type":"string","description":"The name of the data disk.\n"},"performanceLevel":{"type":"string"},"size":{"type":"integer","description":"The size of the data disk.\n- cloud：[5, 2000]\n- cloud_efficiency：[20, 32768]\n- cloud_ssd：[20, 32768]\n- cloud_essd：[20, 32768]\n- ephemeral_ssd: [5, 800]\n"},"snapshotId":{"type":"string","description":"The snapshot ID used to initialize the data disk. If the size specified by snapshot is greater that the size of the disk, use the size specified by snapshot as the size of the data disk.\n"}},"type":"object"},"alicloud:ecs/LaunchTemplateImageOptions:LaunchTemplateImageOptions":{"properties":{"loginAsNonRoot":{"type":"boolean"}},"type":"object"},"alicloud:ecs/LaunchTemplateNetworkInterfaces:LaunchTemplateNetworkInterfaces":{"properties":{"deleteOnRelease":{"type":"boolean"},"description":{"type":"string","description":"The ENI description.\n"},"name":{"type":"string","description":"ENI name.\n"},"primaryIp":{"type":"string","description":"The primary private IP address of the ENI.\n"},"securityGroupId":{"type":"string","description":"The security group ID must be one in the same VPC.\n"},"vswitchId":{"type":"string","description":"The VSwitch ID for ENI. The instance must be in the same zone of the same VPC network as the ENI, but they may belong to different VSwitches.\n"}},"type":"object"},"alicloud:ecs/LaunchTemplateSystemDisk:LaunchTemplateSystemDisk":{"properties":{"category":{"type":"string","description":"The category of the disk:\n- cloud: Basic cloud disk.\n- cloud_efficiency: Ultra cloud disk.\n- cloud_ssd: SSD cloud Disks.\n- ephemeral_ssd: local SSD Disks\n- cloud_essd: ESSD cloud Disks.\n\nDefault to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n"},"deleteWithInstance":{"type":"boolean","description":"Delete this data disk when the instance is destroyed. It only works on cloud, cloud_efficiency,\u003cspan pulumi-lang-nodejs=\" cloudSsd \" pulumi-lang-dotnet=\" CloudSsd \" pulumi-lang-go=\" cloudSsd \" pulumi-lang-python=\" cloud_ssd \" pulumi-lang-yaml=\" cloudSsd \" pulumi-lang-java=\" cloudSsd \"\u003e cloud_ssd \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" cloudEssd \" pulumi-lang-dotnet=\" CloudEssd \" pulumi-lang-go=\" cloudEssd \" pulumi-lang-python=\" cloud_essd \" pulumi-lang-yaml=\" cloudEssd \" pulumi-lang-java=\" cloudEssd \"\u003e cloud_essd \u003c/span\u003edisk. If the category of this data disk was ephemeral_ssd, please don't set this param.\n\nDefault to true\n"},"description":{"type":"string","description":"Description of instance launch template version 1. It can be [2, 256] characters in length. It cannot start with \"http://\" or \"https://\". The default value is null.\n"},"encrypted":{"type":"boolean","description":"Encrypted the data in this disk.\n\nDefault to false\n"},"iops":{"type":"string"},"kmsKeyId":{"type":"string"},"name":{"type":"string","description":"Instance launch template name. Can contain [2, 128] characters in length. It must start with an English letter or Chinese, can contain numbers, periods (.), colons (:), underscores (_), and hyphens (-). It cannot start with \"http://\" or \"https://\".\n"},"performanceLevel":{"type":"string"},"size":{"type":"integer","description":"The size of the data disk.\n- cloud：[5, 2000]\n- cloud_efficiency：[20, 32768]\n- cloud_ssd：[20, 32768]\n- cloud_essd：[20, 32768]\n- ephemeral_ssd: [5, 800]\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["category","description","name","performanceLevel","size"]}}},"alicloud:ecs/ReservedInstanceOperationLock:ReservedInstanceOperationLock":{"properties":{"lockReason":{"type":"string","description":"The reason why the reserved instance was locked.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["lockReason"]}}},"alicloud:ecs/SnapshotPolicyCopyEncryptionConfiguration:SnapshotPolicyCopyEncryptionConfiguration":{"properties":{"encrypted":{"type":"boolean"},"kmsKeyId":{"type":"string"}},"type":"object"},"alicloud:ecs/getActivationsActivation:getActivationsActivation":{"properties":{"activationId":{"type":"string","description":"The ID of the activation code.\n"},"createTime":{"type":"string","description":"The time when the activation code was created.\n"},"deregisteredCount":{"type":"integer","description":"The number of instances that have been logged out.\n"},"description":{"type":"string","description":"Description of the corresponding activation code.\n"},"disabled":{"type":"boolean","description":"Indicates whether the activation code is disabled.\n"},"id":{"type":"string","description":"The ID of the Activation.\n"},"instanceCount":{"type":"integer","description":"The maximum number of times the activation code is used to register a managed instance.\n"},"instanceName":{"type":"string","description":"The default prefix of the instance name.\n"},"ipAddressRange":{"type":"string","description":"The IP address of the host that allows the activation code to be used.\n"},"registeredCount":{"type":"integer","description":"The number of instances that were registered.\n"},"timeToLiveInHours":{"type":"integer","description":"The validity period of the activation code. Unit: hours.\n"}},"type":"object","required":["activationId","createTime","deregisteredCount","description","disabled","id","instanceCount","instanceName","ipAddressRange","registeredCount","timeToLiveInHours"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getAutoSnapshotPoliciesPolicy:getAutoSnapshotPoliciesPolicy":{"properties":{"autoSnapshotPolicyId":{"type":"string","description":"The ID of the Auto Snapshot Policy.\n"},"copiedSnapshotsRetentionDays":{"type":"integer","description":"The retention period of the snapshot copied across regions.\n"},"diskNums":{"type":"integer","description":"The number of disks to which the automatic snapshot policy is applied.\n"},"enableCrossRegionCopy":{"type":"boolean","description":"Specifies whether to enable the system to automatically copy snapshots across regions.\n"},"id":{"type":"string","description":"The ID of the Auto Snapshot Policy.\n"},"name":{"type":"string","description":"The snapshot policy name..\n"},"repeatWeekdays":{"type":"array","items":{"type":"string"},"description":"The automatic snapshot repetition dates.\n"},"retentionDays":{"type":"integer","description":"The snapshot retention time, and the unit of measurement is day.\n"},"status":{"type":"string","description":"The status of Auto Snapshot Policy.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"targetCopyRegions":{"type":"array","items":{"type":"string"},"description":"The destination region to which the snapshot is copied.\n"},"timePoints":{"type":"array","items":{"type":"string"},"description":"The automatic snapshot creation schedule, and the unit of measurement is hour.\n"},"volumeNums":{"type":"integer","description":"The number of extended volumes on which this policy is enabled.\n"}},"type":"object","required":["autoSnapshotPolicyId","copiedSnapshotsRetentionDays","diskNums","enableCrossRegionCopy","id","name","repeatWeekdays","retentionDays","status","tags","targetCopyRegions","timePoints","volumeNums"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getCapacityReservationsReservation:getCapacityReservationsReservation":{"properties":{"capacityReservationId":{"type":"string","description":"Capacity Reservation id\n"},"capacityReservationName":{"type":"string","description":"Capacity reservation service name.\n"},"description":{"type":"string","description":"description of the capacity reservation instance\n"},"endTime":{"type":"string","description":"end time of the capacity reservation. the capacity reservation will be  released at the end time automatically if set. otherwise it will last until manually released\n"},"endTimeType":{"type":"string","description":"Release mode of capacity reservation service. Value range:Limited: release at specified time. The EndTime parameter must be specified at the same time.Unlimited: manual release. No time limit.\n"},"id":{"type":"string","description":"The ID of the Capacity Reservation.\n"},"instanceAmount":{"type":"string","description":"The total number of instances that need to be reserved within the capacity reservation\n"},"instanceType":{"type":"string","description":"Instance type. Currently, you can only set the capacity reservation service for one instance type.\n"},"matchCriteria":{"type":"string","description":"The type of private resource pool generated after the capacity reservation service takes effect. Value range:Open: Open mode.Target: dedicated mode.Default value: Open\n"},"paymentType":{"type":"string","description":"The payment type of the resource. value range `PostPaid`, `PrePaid`.\n"},"platform":{"type":"string","description":"platform of the capacity reservation , value range \u003cspan pulumi-lang-nodejs=\"`windows`\" pulumi-lang-dotnet=\"`Windows`\" pulumi-lang-go=\"`windows`\" pulumi-lang-python=\"`windows`\" pulumi-lang-yaml=\"`windows`\" pulumi-lang-java=\"`windows`\"\u003e`windows`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\"\u003e`linux`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"startTime":{"type":"string","description":"time of the capacity reservation which become active\n"},"startTimeType":{"type":"string","description":"The capacity is scheduled to take effect. Possible values:-Now: Effective immediately.-Later: the specified time takes effect.\n"},"status":{"type":"string","description":"The status of the capacity reservation. value range `All`, `Pending`, `Preparing`, `Prepared`, `Active`, `Released`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"timeSlot":{"type":"string","description":"This parameter is under test and is not yet open for use.\n"},"zoneIds":{"type":"array","items":{"type":"string"},"description":"The ID of the zone in the region to which the capacity reservation service belongs. Currently, it is only supported to create a capacity reservation service in one zone.\n"}},"type":"object","required":["capacityReservationId","capacityReservationName","description","endTime","endTimeType","id","instanceAmount","instanceType","matchCriteria","paymentType","platform","resourceGroupId","startTime","startTimeType","status","timeSlot","zoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getCommandsCommand:getCommandsCommand":{"properties":{"commandContent":{"type":"string","description":"The Base64-encoded content of the command.\n"},"commandId":{"type":"string","description":"The ID of the Command.\n"},"description":{"type":"string","description":"The description of command.\n"},"enableParameter":{"type":"boolean","description":"Specifies whether to use custom parameters in the command to be created.\n"},"id":{"type":"string","description":"The ID of the Command.\n"},"name":{"type":"string","description":"The name of the command\n"},"parameterNames":{"type":"array","items":{"type":"string"},"description":"A list of custom parameter names which are parsed from the command content specified when the command was being created.\n"},"timeout":{"type":"integer","description":"The timeout period that is specified for the command to be run on ECS instances.\n"},"type":{"type":"string","description":"The command type.\n"},"workingDir":{"type":"string","description":"The execution path of the command in the ECS instance.\n"}},"type":"object","required":["commandContent","commandId","description","enableParameter","id","name","parameterNames","timeout","type","workingDir"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getDedicatedHostsHost:getDedicatedHostsHost":{"properties":{"actionOnMaintenance":{"type":"string","description":"The policy used to migrate the instances from the dedicated host when the dedicated host fails or needs to be repaired online.\n"},"autoPlacement":{"type":"string","description":"Specifies whether to add the dedicated host to the resource pool for automatic deployment.\n"},"autoReleaseTime":{"type":"string","description":"The automatic release time of the dedicated host.\n"},"capacities":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getDedicatedHostsHostCapacity:getDedicatedHostsHostCapacity"},"description":"(Available since v1.123.1) A collection of proprietary host performance indicators.\n"},"cores":{"type":"integer","description":"A mapping of tags to assign to the resource.\n"},"cpuOverCommitRatio":{"type":"number","description":"(Available since v1.123.1) CPU oversold ratio.\n"},"dedicatedHostId":{"type":"string","description":"The ID of ECS Dedicated Host.\n"},"dedicatedHostName":{"type":"string","description":"The name of ECS Dedicated Host.\n"},"dedicatedHostType":{"type":"string","description":"The type of the dedicated host.\n"},"description":{"type":"string","description":"The description of the dedicated host.\n"},"expiredTime":{"type":"string","description":"The expiration time of the subscription dedicated host.\n"},"gpuSpec":{"type":"string","description":"The GPU model.\n"},"id":{"type":"string","description":"ID of the ECS Dedicated Host.\n"},"instances":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getDedicatedHostsHostInstance:getDedicatedHostsHostInstance"},"description":"(Available since v1.250.0) The ECS instances that were created on the dedicated host.\n"},"machineId":{"type":"string","description":"The machine code of the dedicated host.\n"},"networkAttributes":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getDedicatedHostsHostNetworkAttribute:getDedicatedHostsHostNetworkAttribute"},"description":"dedicated host network parameters. contains the following attributes:\n"},"operationLocks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getDedicatedHostsHostOperationLock:getDedicatedHostsHostOperationLock"},"description":"The reason why the dedicated host resource is locked. See \u003cspan pulumi-lang-nodejs=\"`operationLocks`\" pulumi-lang-dotnet=\"`OperationLocks`\" pulumi-lang-go=\"`operationLocks`\" pulumi-lang-python=\"`operation_locks`\" pulumi-lang-yaml=\"`operationLocks`\" pulumi-lang-java=\"`operationLocks`\"\u003e`operation_locks`\u003c/span\u003e below.\n"},"paymentType":{"type":"string","description":"The billing method of the dedicated host.\n"},"physicalGpus":{"type":"integer","description":"The number of physical GPUs.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the ECS Dedicated Host belongs.\n"},"saleCycle":{"type":"string","description":"The unit of the subscription billing method.\n"},"sockets":{"type":"integer","description":"The number of physical CPUs.\n"},"status":{"type":"string","description":"The status of the ECS Dedicated Host. Valid Value: `Available`, `Creating`, `PermanentFailure`, `Released`, `UnderAssessment`.\n"},"supportedCustomInstanceTypeFamilies":{"type":"array","items":{"type":"string"},"description":"(Available since v1.123.1) A custom instance type family supported by a dedicated host.\n"},"supportedInstanceTypeFamilies":{"type":"array","items":{"type":"string"},"description":"(Available since v1.123.1) ECS instance type family supported by the dedicated host.\n"},"supportedInstanceTypesLists":{"type":"array","items":{"type":"string"},"description":"The list of ECS instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"zoneId":{"type":"string","description":"The zone ID of the ECS Dedicated Host.\n"}},"type":"object","required":["actionOnMaintenance","autoPlacement","autoReleaseTime","capacities","cores","cpuOverCommitRatio","dedicatedHostId","dedicatedHostName","dedicatedHostType","description","expiredTime","gpuSpec","id","instances","machineId","networkAttributes","operationLocks","paymentType","physicalGpus","resourceGroupId","saleCycle","sockets","status","supportedCustomInstanceTypeFamilies","supportedInstanceTypeFamilies","supportedInstanceTypesLists","tags","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getDedicatedHostsHostCapacity:getDedicatedHostsHostCapacity":{"properties":{"availableLocalStorage":{"type":"integer","description":"The remaining local disk capacity. Unit: GiB.\n"},"availableMemory":{"type":"number","description":"The remaining memory capacity, unit: GiB.\n"},"availableVcpus":{"type":"integer","description":"The number of remaining vCPU cores.\n"},"availableVgpus":{"type":"integer","description":"The number of available virtual GPUs.\n"},"localStorageCategory":{"type":"string","description":"Local disk type.\n"},"totalLocalStorage":{"type":"integer","description":"The total capacity of the local disk, in GiB.\n"},"totalMemory":{"type":"number","description":"The total memory capacity, unit: GiB.\n"},"totalVcpus":{"type":"integer","description":"The total number of vCPU cores.\n"},"totalVgpus":{"type":"integer","description":"The total number of virtual GPUs.\n"}},"type":"object","required":["availableLocalStorage","availableMemory","availableVcpus","availableVgpus","localStorageCategory","totalLocalStorage","totalMemory","totalVcpus","totalVgpus"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getDedicatedHostsHostInstance:getDedicatedHostsHostInstance":{"properties":{"instanceId":{"type":"string","description":"The ID of the ECS instance.\n"},"instanceOwnerId":{"type":"integer","description":"The ID of the ECS instance owner.\n"},"instanceType":{"type":"string","description":"The instance type of the ECS instance that was created on the dedicated host.\n"},"socketId":{"type":"string","description":"The ID of the socket to which the ECS instance belongs.\n"}},"type":"object","required":["instanceId","instanceOwnerId","instanceType","socketId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getDedicatedHostsHostNetworkAttribute:getDedicatedHostsHostNetworkAttribute":{"properties":{"slbUdpTimeout":{"type":"integer","description":"The timeout period for a UDP session between Server Load Balancer (SLB) and the dedicated host. Unit: seconds.\n"},"udpTimeout":{"type":"integer","description":"(Available since v1.123.1) The timeout period for a UDP session between a user and an Alibaba Cloud service on the dedicated host. Unit: seconds.\n"}},"type":"object","required":["slbUdpTimeout","udpTimeout"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getDedicatedHostsHostOperationLock:getDedicatedHostsHostOperationLock":{"properties":{"lockReason":{"type":"string","description":"The reason why the dedicated host resource is locked.\n"}},"type":"object","required":["lockReason"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getDedicatedHostsOperationLock:getDedicatedHostsOperationLock":{"properties":{"lockReason":{"type":"string","description":"The reason why the dedicated host resource is locked.\n"}},"type":"object"},"alicloud:ecs/getDisksDisk:getDisksDisk":{"properties":{"attachedTime":{"type":"string","description":"Disk attachment time.\n"},"autoSnapshotPolicyId":{"type":"string"},"availabilityZone":{"type":"string","description":"Availability zone of the disk.\n"},"category":{"type":"string","description":"Disk category. Possible values: \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e (basic cloud disk), \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e (ultra cloud disk), \u003cspan pulumi-lang-nodejs=\"`ephemeralSsd`\" pulumi-lang-dotnet=\"`EphemeralSsd`\" pulumi-lang-go=\"`ephemeralSsd`\" pulumi-lang-python=\"`ephemeral_ssd`\" pulumi-lang-yaml=\"`ephemeralSsd`\" pulumi-lang-java=\"`ephemeralSsd`\"\u003e`ephemeral_ssd`\u003c/span\u003e (local SSD cloud disk), \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e (SSD cloud disk), and \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e (ESSD cloud disk), \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e.\n"},"creationTime":{"type":"string","description":"Disk creation time.\n"},"deleteAutoSnapshot":{"type":"boolean"},"deleteWithInstance":{"type":"boolean"},"description":{"type":"string","description":"Disk description.\n"},"detachedTime":{"type":"string","description":"Disk detachment time.\n"},"device":{"type":"string"},"diskId":{"type":"string"},"diskName":{"type":"string"},"diskType":{"type":"string"},"enableAutoSnapshot":{"type":"boolean"},"enableAutomatedSnapshotPolicy":{"type":"boolean"},"encrypted":{"type":"string","description":"Indicate whether the disk is encrypted or not. Possible values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"expirationTime":{"type":"string","description":"Disk expiration time.\n"},"expiredTime":{"type":"string"},"id":{"type":"string","description":"ID of the disk.\n"},"imageId":{"type":"string","description":"ID of the image from which the disk is created. It is null unless the disk is created using an image.\n"},"instanceId":{"type":"string","description":"Filter the results by the specified ECS instance ID.\n"},"iops":{"type":"integer"},"iopsRead":{"type":"integer"},"iopsWrite":{"type":"integer"},"kmsKeyId":{"type":"string"},"mountInstanceNum":{"type":"integer"},"mountInstances":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getDisksDiskMountInstance:getDisksDiskMountInstance"}},"name":{"type":"string","description":"Disk name.\n"},"operationLocks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getDisksDiskOperationLock:getDisksDiskOperationLock"}},"paymentType":{"type":"string"},"performanceLevel":{"type":"string"},"portable":{"type":"boolean"},"productCode":{"type":"string"},"regionId":{"type":"string","description":"Region ID the disk belongs to.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the disk belongs.\n"},"size":{"type":"integer","description":"Disk size in GiB.\n"},"snapshotId":{"type":"string","description":"Snapshot used to create the disk. It is null if no snapshot is used to create the disk.\n"},"status":{"type":"string","description":"Current status. Possible values: `In_use`, `Available`, `Attaching`, `Detaching`, `Creating` and `ReIniting`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the disks. It must be in the format:\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst disksDs = alicloud.ecs.getDisks({\n    tags: {\n        tagKey1: \"tagValue1\",\n        tagKey2: \"tagValue2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndisks_ds = alicloud.ecs.get_disks(tags={\n    \"tagKey1\": \"tagValue1\",\n    \"tagKey2\": \"tagValue2\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var disksDs = AliCloud.Ecs.GetDisks.Invoke(new()\n    {\n        Tags = \n        {\n            { \"tagKey1\", \"tagValue1\" },\n            { \"tagKey2\", \"tagValue2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.GetDisks(ctx, \u0026ecs.GetDisksArgs{\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"tagKey1\": \"tagValue1\",\n\t\t\t\t\"tagKey2\": \"tagValue2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetDisksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var disksDs = EcsFunctions.getDisks(GetDisksArgs.builder()\n            .tags(Map.ofEntries(\n                Map.entry(\"tagKey1\", \"tagValue1\"),\n                Map.entry(\"tagKey2\", \"tagValue2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  disksDs:\n    fn::invoke:\n      function: alicloud:ecs:getDisks\n      arguments:\n        tags:\n          tagKey1: tagValue1\n          tagKey2: tagValue2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n"},"type":{"type":"string","description":"Disk type. Possible values: \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`data`\" pulumi-lang-dotnet=\"`Data`\" pulumi-lang-go=\"`data`\" pulumi-lang-python=\"`data`\" pulumi-lang-yaml=\"`data`\" pulumi-lang-java=\"`data`\"\u003e`data`\u003c/span\u003e.\n"},"zoneId":{"type":"string"}},"type":"object","required":["attachedTime","autoSnapshotPolicyId","availabilityZone","category","creationTime","deleteAutoSnapshot","deleteWithInstance","description","detachedTime","device","diskId","diskName","diskType","enableAutoSnapshot","enableAutomatedSnapshotPolicy","encrypted","expirationTime","expiredTime","id","imageId","instanceId","iops","iopsRead","iopsWrite","kmsKeyId","mountInstanceNum","mountInstances","name","operationLocks","paymentType","performanceLevel","portable","productCode","regionId","resourceGroupId","size","snapshotId","status","tags","type","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getDisksDiskMountInstance:getDisksDiskMountInstance":{"properties":{"attachedTime":{"type":"string","description":"Disk attachment time.\n"},"device":{"type":"string"},"instanceId":{"type":"string","description":"Filter the results by the specified ECS instance ID.\n"}},"type":"object","required":["attachedTime","device","instanceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getDisksDiskOperationLock:getDisksDiskOperationLock":{"properties":{"lockReason":{"type":"string"}},"type":"object","required":["lockReason"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getDisksOperationLock:getDisksOperationLock":{"properties":{"lockReason":{"type":"string"}},"type":"object"},"alicloud:ecs/getEcsDedicatedHostClustersCluster:getEcsDedicatedHostClustersCluster":{"properties":{"dedicatedHostClusterCapacities":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getEcsDedicatedHostClustersClusterDedicatedHostClusterCapacity:getEcsDedicatedHostClustersClusterDedicatedHostClusterCapacity"},"description":"The capacity of the dedicated host cluster.\n"},"dedicatedHostClusterId":{"type":"string","description":"The ID of the dedicated host cluster.\n"},"dedicatedHostClusterName":{"type":"string","description":"The name of the dedicated host cluster.\n"},"dedicatedHostIds":{"type":"array","items":{"type":"string"},"description":"The IDs of dedicated hosts in the dedicated host cluster.\n"},"description":{"type":"string","description":"The description of the dedicated host cluster.\n"},"id":{"type":"string","description":"The ID of the Dedicated Host Cluster.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the dedicated host cluster belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"zoneId":{"type":"string","description":"The zone ID of the dedicated host cluster.\n"}},"type":"object","required":["dedicatedHostClusterCapacities","dedicatedHostClusterId","dedicatedHostClusterName","dedicatedHostIds","description","id","resourceGroupId","tags","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsDedicatedHostClustersClusterDedicatedHostClusterCapacity:getEcsDedicatedHostClustersClusterDedicatedHostClusterCapacity":{"properties":{"availableMemory":{"type":"integer","description":"The available memory size. Unit: `GiB`.\n"},"availableVcpus":{"type":"integer","description":"The number of available vCPUs.\n"},"localStorageCapacities":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getEcsDedicatedHostClustersClusterDedicatedHostClusterCapacityLocalStorageCapacity:getEcsDedicatedHostClustersClusterDedicatedHostClusterCapacityLocalStorageCapacity"},"description":"The local storage.\n"},"totalMemory":{"type":"integer","description":"The total memory size. Unit: `GiB`.\n"},"totalVcpus":{"type":"integer","description":"The total number of vCPUs.\n"}},"type":"object","required":["availableMemory","availableVcpus","localStorageCapacities","totalMemory","totalVcpus"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsDedicatedHostClustersClusterDedicatedHostClusterCapacityLocalStorageCapacity:getEcsDedicatedHostClustersClusterDedicatedHostClusterCapacityLocalStorageCapacity":{"properties":{"availableDisk":{"type":"integer","description":"The available capacity of the local disk. Unit: `GiB`.\n"},"dataDiskCategory":{"type":"string","description":"The category of the data disk. Valid values:\u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ephemeralSsd`\" pulumi-lang-dotnet=\"`EphemeralSsd`\" pulumi-lang-go=\"`ephemeralSsd`\" pulumi-lang-python=\"`ephemeral_ssd`\" pulumi-lang-yaml=\"`ephemeralSsd`\" pulumi-lang-java=\"`ephemeralSsd`\"\u003e`ephemeral_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e.\n"},"totalDisk":{"type":"integer","description":"The total capacity of the local disk. Unit: `GiB`.\n"}},"type":"object","required":["availableDisk","dataDiskCategory","totalDisk"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsDeploymentSetsSet:getEcsDeploymentSetsSet":{"properties":{"createTime":{"type":"string","description":"The time when the deployment set was created.\n"},"deploymentSetId":{"type":"string","description":"The ID of the Deployment Set.\n"},"deploymentSetName":{"type":"string","description":"The name of the deployment set.\n"},"description":{"type":"string","description":"The description of the deployment set.\n"},"domain":{"type":"string","description":"The deployment domain.\n"},"granularity":{"type":"string","description":"The deployment granularity.\n"},"id":{"type":"string","description":"The ID of the Deployment Set.\n"},"instanceAmount":{"type":"integer","description":"The number of instances in the deployment set.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the instances in the deployment set.\n"},"strategy":{"type":"string","description":"The deployment strategy.\n"}},"type":"object","required":["createTime","deploymentSetId","deploymentSetName","description","domain","granularity","id","instanceAmount","instanceIds","strategy"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsDisksDisk:getEcsDisksDisk":{"properties":{"attachedTime":{"type":"string","description":"A mount of time.\n"},"autoSnapshotPolicyId":{"type":"string","description":"Query cloud disks based on the automatic snapshot policy ID.\n"},"availabilityZone":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead.\n"},"category":{"type":"string","description":"Disk category. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ephemeralSsd`\" pulumi-lang-dotnet=\"`EphemeralSsd`\" pulumi-lang-go=\"`ephemeralSsd`\" pulumi-lang-python=\"`ephemeral_ssd`\" pulumi-lang-yaml=\"`ephemeralSsd`\" pulumi-lang-java=\"`ephemeralSsd`\"\u003e`ephemeral_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e.\n"},"creationTime":{"type":"string","description":"Disk creation time.\n"},"deleteAutoSnapshot":{"type":"boolean","description":"Indicates whether the automatic snapshot is deleted when the disk is released.\n"},"deleteWithInstance":{"type":"boolean","description":"Indicates whether the disk is released together with the instance.\n"},"description":{"type":"string","description":"Disk description.\n"},"detachedTime":{"type":"string","description":"Disk detachment time.\n"},"device":{"type":"string","description":"The mount point of the disk.\n"},"diskId":{"type":"string","description":"ID of the disk.\n"},"diskName":{"type":"string","description":"The disk name.\n"},"diskType":{"type":"string","description":"The disk type. Valid values: \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`data`\" pulumi-lang-dotnet=\"`Data`\" pulumi-lang-go=\"`data`\" pulumi-lang-python=\"`data`\" pulumi-lang-yaml=\"`data`\" pulumi-lang-java=\"`data`\"\u003e`data`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"enableAutoSnapshot":{"type":"boolean","description":"Indicates whether the automatic snapshot is deleted when the disk is released.\n"},"enableAutomatedSnapshotPolicy":{"type":"boolean","description":"Whether the cloud disk has an automatic snapshot policy\n"},"encrypted":{"type":"string","description":"Indicate whether the disk is encrypted or not. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"expirationTime":{"type":"string","description":"The time when the subscription disk expires.\n"},"expiredTime":{"type":"string","description":"The time when the subscription disk expires.\n"},"id":{"type":"string","description":"ID of the disk.\n"},"imageId":{"type":"string","description":"ID of the image from which the disk is created. It is null unless the disk is created using an image.\n"},"instanceId":{"type":"string","description":"Filter the results by the specified ECS instance ID.\n"},"iops":{"type":"integer","description":"The maximum number of read and write operations per second.\n"},"iopsRead":{"type":"integer","description":"The maximum number of read operations per second.\n"},"iopsWrite":{"type":"integer","description":"The maximum number of write operations per second.\n"},"kmsKeyId":{"type":"string","description":"The kms key id.\n"},"mountInstanceNum":{"type":"integer","description":"Number of instances mounted on shared storage.\n"},"mountInstances":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getEcsDisksDiskMountInstance:getEcsDisksDiskMountInstance"},"description":"Disk mount instances.\n"},"name":{"type":"string","description":"Disk name.\n"},"operationLocks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getEcsDisksDiskOperationLock:getEcsDisksDiskOperationLock"},"description":"The reasons why the disk was locked. See \u003cspan pulumi-lang-nodejs=\"`operationLocks`\" pulumi-lang-dotnet=\"`OperationLocks`\" pulumi-lang-go=\"`operationLocks`\" pulumi-lang-python=\"`operation_locks`\" pulumi-lang-yaml=\"`operationLocks`\" pulumi-lang-java=\"`operationLocks`\"\u003e`operation_locks`\u003c/span\u003e below for details.\n"},"paymentType":{"type":"string","description":"Payment method for disk. Valid Values: `PayAsYouGo`, `Subscription`.\n"},"performanceLevel":{"type":"string","description":"Performance levels of ESSD cloud disk.\n"},"portable":{"type":"boolean","description":"Whether the cloud disk or local disk supports uninstallation.\n"},"productCode":{"type":"string","description":"The product logo of the cloud market.\n"},"regionId":{"type":"string","description":"Region ID the disk belongs to.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the disk belongs.\n"},"size":{"type":"integer","description":"Disk size in GiB.\n"},"snapshotId":{"type":"string","description":"The source snapshot id.\n"},"status":{"type":"string","description":"The status of disk. Valid Values: `Attaching`, `Available`, `Creating`, `Detaching`, `In_use`, `Migrating`, `ReIniting`, `Transferring`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the disks.\n"},"type":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`diskType`\" pulumi-lang-dotnet=\"`DiskType`\" pulumi-lang-go=\"`diskType`\" pulumi-lang-python=\"`disk_type`\" pulumi-lang-yaml=\"`diskType`\" pulumi-lang-java=\"`diskType`\"\u003e`disk_type`\u003c/span\u003e instead.\n"},"zoneId":{"type":"string","description":"ID of the free zone to which the disk belongs.\n"}},"type":"object","required":["attachedTime","autoSnapshotPolicyId","availabilityZone","category","creationTime","deleteAutoSnapshot","deleteWithInstance","description","detachedTime","device","diskId","diskName","diskType","enableAutoSnapshot","enableAutomatedSnapshotPolicy","encrypted","expirationTime","expiredTime","id","imageId","instanceId","iops","iopsRead","iopsWrite","kmsKeyId","mountInstanceNum","mountInstances","name","operationLocks","paymentType","performanceLevel","portable","productCode","regionId","resourceGroupId","size","snapshotId","status","tags","type","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsDisksDiskMountInstance:getEcsDisksDiskMountInstance":{"properties":{"attachedTime":{"type":"string","description":"A mount of time.\n"},"device":{"type":"string","description":"The mount point of the disk.\n"},"instanceId":{"type":"string","description":"Filter the results by the specified ECS instance ID.\n"}},"type":"object","required":["attachedTime","device","instanceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsDisksDiskOperationLock:getEcsDisksDiskOperationLock":{"properties":{"lockReason":{"type":"string","description":"The reason why the disk was locked.\n"}},"type":"object","required":["lockReason"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsDisksOperationLock:getEcsDisksOperationLock":{"properties":{"lockReason":{"type":"string","description":"The reason why the disk was locked.\n"}},"type":"object"},"alicloud:ecs/getEcsImageComponentsComponent:getEcsImageComponentsComponent":{"properties":{"componentType":{"type":"string","description":"The type of the image component.\n"},"content":{"type":"string","description":"The content of the image component.\n"},"createTime":{"type":"string","description":"The time when the image component was created.\n"},"description":{"type":"string","description":"The description of the image component.\n"},"id":{"type":"string","description":"The ID of the Image Component.\n"},"imageComponentId":{"type":"string","description":"The ID of the image component.\n"},"imageComponentName":{"type":"string","description":"The name of the image component.\n"},"owner":{"type":"string","description":"The type of the image component.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"systemType":{"type":"string","description":"The operating system type supported by the image component.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"List of label key-value pairs.\n"}},"type":"object","required":["componentType","content","createTime","description","id","imageComponentId","imageComponentName","owner","resourceGroupId","systemType","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsImagePipelinePipeline:getEcsImagePipelinePipeline":{"properties":{"addAccounts":{"type":"array","items":{"type":"string"},"description":"The IDs of Alibaba Cloud accounts to which the image was shared.\n"},"baseImage":{"type":"string","description":"The source image.\n"},"baseImageType":{"type":"string","description":"The type of the source image.\n"},"buildContent":{"type":"string","description":"The content of the image template.\n"},"creationTime":{"type":"string","description":"The time when the image template was created.\n"},"deleteInstanceOnFailure":{"type":"boolean","description":"Indicates whether the intermediate instance was released when the image failed to be created.\n"},"description":{"type":"string","description":"The description of the image template.\n"},"id":{"type":"string","description":"The ID of the Image Pipeline.\n"},"imageName":{"type":"string","description":"The name prefix of the created image.\n"},"imagePipelineId":{"type":"string","description":"The ID of the image template.\n"},"instanceType":{"type":"string","description":"The instance type of the intermediate instance.\n"},"internetMaxBandwidthOut":{"type":"integer","description":"The size of the outbound public bandwidth for the intermediate instance. Unit: `Mbit/s`.\n"},"name":{"type":"string","description":"The name of the image template.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the image template belongs.\n"},"systemDiskSize":{"type":"integer","description":"The system disk size of the intermediate instance. Unit: `GiB`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"toRegionIds":{"type":"array","items":{"type":"string"},"description":"The IDs of regions to which to distribute the created image.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"}},"type":"object","required":["addAccounts","baseImage","baseImageType","buildContent","creationTime","deleteInstanceOnFailure","description","id","imageName","imagePipelineId","instanceType","internetMaxBandwidthOut","name","resourceGroupId","systemDiskSize","toRegionIds","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsInvocationsInvocation:getEcsInvocationsInvocation":{"properties":{"commandContent":{"type":"string","description":"The Base64-encoded command content.\n"},"commandId":{"type":"string","description":"The ID of the command.\n"},"commandName":{"type":"string","description":"The name of the command.\n"},"commandType":{"type":"string","description":"The type of the command.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"frequency":{"type":"string","description":"The schedule on which the recurring execution of the command takes place. For information about the value specifications, see [Cron expression](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/cron-expression).\n"},"id":{"type":"string","description":"The ID of the Invocation.\n"},"invocationId":{"type":"string","description":"The ID of the Invocation.\n"},"invocationStatus":{"type":"string","description":"The overall execution state of the command. The value of this parameter depends on the execution states on all the involved instances.\n"},"invokeInstances":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getEcsInvocationsInvocationInvokeInstance:getEcsInvocationsInvocationInvokeInstance"},"description":"Execute target instance set type.\n"},"invokeStatus":{"type":"string","description":"The overall execution state of the command. **Note:** We recommend that you ignore this parameter and check the value of the \u003cspan pulumi-lang-nodejs=\"`invocationStatus`\" pulumi-lang-dotnet=\"`InvocationStatus`\" pulumi-lang-go=\"`invocationStatus`\" pulumi-lang-python=\"`invocation_status`\" pulumi-lang-yaml=\"`invocationStatus`\" pulumi-lang-java=\"`invocationStatus`\"\u003e`invocation_status`\u003c/span\u003e response parameter for the overall execution state.\n"},"parameters":{"type":"string","description":"The custom parameters in the command.\n"},"repeatMode":{"type":"string","description":"Indicates the execution mode of the command.\n"},"timed":{"type":"boolean","description":"Indicates whether the commands are to be automatically run.\n"},"username":{"type":"string","description":"The username that was used to run the command on the instance.\n"}},"type":"object","required":["commandContent","commandId","commandName","commandType","createTime","frequency","id","invocationId","invocationStatus","invokeInstances","invokeStatus","parameters","repeatMode","timed","username"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsInvocationsInvocationInvokeInstance:getEcsInvocationsInvocationInvokeInstance":{"properties":{"creationTime":{"type":"string","description":"The start time of the execution.\n"},"dropped":{"type":"integer","description":"The size of truncated and discarded text when the value of the Output response parameter exceeds 24 KB in size.\n"},"errorCode":{"type":"string"},"errorInfo":{"type":"string","description":"Details about the reason why the command failed to be sent or run.\n"},"exitCode":{"type":"integer","description":"The exit code of the execution.\n"},"finishTime":{"type":"string","description":"The end time of the execution.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"instanceInvokeStatus":{"type":"string"},"invocationStatus":{"type":"string","description":"The execution state on a single instance. Valid values: `Pending`, `Scheduled`, `Running`, `Success`, `Failed`, `Stopping`, `Stopped`, `PartialFailed`.\n"},"output":{"type":"string","description":"The output of the command.\n"},"repeats":{"type":"integer","description":"The number of times that the command is run on the instance.\n"},"startTime":{"type":"string","description":"The time when the command started to be run on the instance.\n"},"stopTime":{"type":"string","description":"The time when the command stopped being run on the instance. If you call the StopInvocation operation to manually stop the execution, the value is the time when you call the operation.\n"},"timed":{"type":"boolean","description":"Indicates whether the commands are to be automatically run.\n* \u003cspan pulumi-lang-nodejs=\"`errorCode\t\" pulumi-lang-dotnet=\"`ErrorCode\t\" pulumi-lang-go=\"`errorCode\t\" pulumi-lang-python=\"`error_code\t\" pulumi-lang-yaml=\"`errorCode\t\" pulumi-lang-java=\"`errorCode\t\"\u003e`error_code\t\u003c/span\u003e` - The code that indicates why the command failed to be sent or run.\n* \u003cspan pulumi-lang-nodejs=\"`instanceInvokeStatus\t\" pulumi-lang-dotnet=\"`InstanceInvokeStatus\t\" pulumi-lang-go=\"`instanceInvokeStatus\t\" pulumi-lang-python=\"`instance_invoke_status\t\" pulumi-lang-yaml=\"`instanceInvokeStatus\t\" pulumi-lang-java=\"`instanceInvokeStatus\t\"\u003e`instance_invoke_status\t\u003c/span\u003e` - **Note:** We recommend that you ignore this parameter and check the value of the \u003cspan pulumi-lang-nodejs=\"`invocationStatus`\" pulumi-lang-dotnet=\"`InvocationStatus`\" pulumi-lang-go=\"`invocationStatus`\" pulumi-lang-python=\"`invocation_status`\" pulumi-lang-yaml=\"`invocationStatus`\" pulumi-lang-java=\"`invocationStatus`\"\u003e`invocation_status`\u003c/span\u003e response parameter for the overall execution state.\n"},"updateTime":{"type":"string","description":"The time when the execution state was updated.\n"}},"type":"object","required":["creationTime","dropped","errorCode","errorInfo","exitCode","finishTime","instanceId","instanceInvokeStatus","invocationStatus","output","repeats","startTime","stopTime","timed","updateTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsKeyPairsKeyPair:getEcsKeyPairsKeyPair":{"properties":{"fingerPrint":{"type":"string","description":"The fingerprint of the key pair.\n"},"id":{"type":"string","description":"The ID of the Key Pair.\n"},"instances":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getEcsKeyPairsKeyPairInstance:getEcsKeyPairsKeyPairInstance"},"description":"A list of ECS instances that has been bound this Key Pair.\n"},"keyName":{"type":"string","description":"The name of the key pair.\n"},"keyPairName":{"type":"string","description":"The name of the Key Pair.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object","required":["fingerPrint","id","instances","keyName","keyPairName","resourceGroupId","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsKeyPairsKeyPairInstance:getEcsKeyPairsKeyPairInstance":{"properties":{"availabilityZone":{"type":"string","description":"The zone ID of the instance.\n"},"description":{"type":"string","description":"The description of the ECS instance.\n"},"imageId":{"type":"string","description":"The image ID of the instance.\n"},"instanceId":{"type":"string","description":"The ID of the ECS instance.\n"},"instanceName":{"type":"string","description":"The name of the ECS instance.\n"},"instanceType":{"type":"string","description":"The instance type of the instance.\n"},"keyName":{"type":"string","description":"The name of the key pair.\n"},"privateIp":{"type":"string","description":"The private IP address of the ECS instance.\n"},"publicIp":{"type":"string","description":"The public IP address or EIP of the ECS instance.\n"},"regionId":{"type":"string","description":"The region ID of the instance.\n"},"status":{"type":"string","description":"The status of the instance.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n"}},"type":"object","required":["availabilityZone","description","imageId","instanceId","instanceName","instanceType","keyName","privateIp","publicIp","regionId","status","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsKeyPairsPair:getEcsKeyPairsPair":{"properties":{"fingerPrint":{"type":"string","description":"The fingerprint of the key pair.\n"},"id":{"type":"string","description":"The ID of the Key Pair.\n"},"instances":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getEcsKeyPairsPairInstance:getEcsKeyPairsPairInstance"},"description":"A list of ECS instances that has been bound this Key Pair.\n"},"keyName":{"type":"string","description":"The name of the key pair.\n"},"keyPairName":{"type":"string","description":"The name of the Key Pair.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object","required":["fingerPrint","id","instances","keyName","keyPairName","resourceGroupId","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsKeyPairsPairInstance:getEcsKeyPairsPairInstance":{"properties":{"availabilityZone":{"type":"string","description":"The zone ID of the instance.\n"},"description":{"type":"string","description":"The description of the ECS instance.\n"},"imageId":{"type":"string","description":"The image ID of the instance.\n"},"instanceId":{"type":"string","description":"The ID of the ECS instance.\n"},"instanceName":{"type":"string","description":"The name of the ECS instance.\n"},"instanceType":{"type":"string","description":"The instance type of the instance.\n"},"keyName":{"type":"string","description":"The name of the key pair.\n"},"privateIp":{"type":"string","description":"The private IP address of the ECS instance.\n"},"publicIp":{"type":"string","description":"The public IP address or EIP of the ECS instance.\n"},"regionId":{"type":"string","description":"The region ID of the instance.\n"},"status":{"type":"string","description":"The status of the instance.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n"}},"type":"object","required":["availabilityZone","description","imageId","instanceId","instanceName","instanceType","keyName","privateIp","publicIp","regionId","status","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsLaunchTemplatesTemplate:getEcsLaunchTemplatesTemplate":{"properties":{"autoReleaseTime":{"type":"string","description":"The automatic release time of the instance.\n"},"createdBy":{"type":"string","description":"The ID of the Alibaba Cloud account that created the launch template.\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getEcsLaunchTemplatesTemplateDataDisk:getEcsLaunchTemplatesTemplateDataDisk"},"description":"The list of data disks created with instance.\n"},"defaultVersionNumber":{"type":"integer","description":"The default version number of the launch template.\n"},"deploymentSetId":{"type":"string","description":"The ID of the deployment set.\n"},"description":{"type":"string","description":"System disk description.\n"},"enableVmOsConfig":{"type":"boolean","description":"Indicates whether the operating system configuration of the instance is enabled.\n"},"hostName":{"type":"string","description":"The hostname of the instance.\n"},"httpEndpoint":{"type":"string","description":"Whether to enable access to instance metadata.\n"},"httpPutResponseHopLimit":{"type":"integer","description":"The HTTP PUT response hop limit required for instance metadata requests.\n"},"httpTokens":{"type":"string","description":"Whether to use the hardened mode (IMDSv2) when accessing instance metadata.\n"},"id":{"type":"string","description":"The ID of the Launch Template.\n"},"imageId":{"type":"string","description":"The ID of the image.\n"},"imageOwnerAlias":{"type":"string","description":"The source of the image.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the instance.\n"},"instanceName":{"type":"string","description":"The name of the instance.\n"},"instanceType":{"type":"string","description":"The instance type of the instance.\n"},"internetChargeType":{"type":"string","description":"The billing method for network usage.\n"},"internetMaxBandwidthIn":{"type":"integer","description":"The maximum inbound public bandwidth.\n"},"internetMaxBandwidthOut":{"type":"integer","description":"The maximum outbound public bandwidth.\n"},"ioOptimized":{"type":"string","description":"Indicates whether the instance is I/O optimized.\n"},"keyPairName":{"type":"string","description":"The name of the key pair.\n"},"latestVersionNumber":{"type":"integer","description":"The latest version number of the launch template.\n"},"launchTemplateId":{"type":"string","description":"The ID of the Launch Template.\n"},"launchTemplateName":{"type":"string","description":"The name of the launch template.\n"},"modifiedTime":{"type":"string","description":"The time when a version was added to or deleted from the launch template.\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getEcsLaunchTemplatesTemplateNetworkInterface:getEcsLaunchTemplatesTemplateNetworkInterface"},"description":"The list of network interfaces created with instance.\n"},"networkType":{"type":"string","description":"Network type of the instance.\n"},"passwordInherit":{"type":"boolean","description":"Whether to use the password preset by the mirror.\n"},"period":{"type":"integer","description":"The subscription period of the instance.\n"},"privateIpAddress":{"type":"string","description":"The private IP address of the instance.\n"},"ramRoleName":{"type":"string","description":"The RAM role name of the instance.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which to assign the instance, Elastic Block Storage (EBS) device, and ENI.\n"},"securityEnhancementStrategy":{"type":"string","description":"Whether or not to activate the security enhancement feature and install network security software free of charge.\n"},"securityGroupId":{"type":"string","description":"The security group ID must be one in the same VPC.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The security group IDs.\n"},"spotDuration":{"type":"string","description":"The protection period of the preemptible instance.\n"},"spotPriceLimit":{"type":"number","description":"Sets the maximum hourly instance price.\n"},"spotStrategy":{"type":"string","description":"The spot strategy for a Pay-As-You-Go instance.\n"},"systemDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getEcsLaunchTemplatesTemplateSystemDisk:getEcsLaunchTemplatesTemplateSystemDisk"},"description":"The System Disk.\n"},"templateTags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the launch template.\n"},"userData":{"type":"string","description":"The user data of the instance.\n"},"versionDescription":{"type":"string","description":"The Version Description.\n"},"vpcId":{"type":"string","description":"VpcId.\n"},"vswitchId":{"type":"string","description":"The vSwitch ID for ENI. The instance must be in the same zone of the same VPC network as the ENI, but they may belong to different VSwitches.\n"},"zoneId":{"type":"string","description":"The Zone Id.\n"}},"type":"object","required":["autoReleaseTime","createdBy","dataDisks","defaultVersionNumber","deploymentSetId","description","enableVmOsConfig","hostName","httpEndpoint","httpPutResponseHopLimit","httpTokens","id","imageId","imageOwnerAlias","instanceChargeType","instanceName","instanceType","internetChargeType","internetMaxBandwidthIn","internetMaxBandwidthOut","ioOptimized","keyPairName","latestVersionNumber","launchTemplateId","launchTemplateName","modifiedTime","networkInterfaces","networkType","passwordInherit","period","privateIpAddress","ramRoleName","resourceGroupId","securityEnhancementStrategy","securityGroupId","securityGroupIds","spotDuration","spotPriceLimit","spotStrategy","systemDisks","templateTags","userData","versionDescription","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsLaunchTemplatesTemplateDataDisk:getEcsLaunchTemplatesTemplateDataDisk":{"properties":{"category":{"type":"string","description":"The category of the system disk.\n"},"deleteWithInstance":{"type":"boolean","description":"Specifies whether to release the system disk when the instance is released.\n"},"description":{"type":"string","description":"System disk description.\n"},"encrypted":{"type":"boolean","description":"Encrypted the data in this disk.\n"},"name":{"type":"string","description":"System disk name.\n"},"performanceLevel":{"type":"string","description":"The performance level of the ESSD used as the system disk.\n"},"size":{"type":"integer","description":"Size of the system disk, measured in GB.\n"},"snapshotId":{"type":"string","description":"The snapshot ID used to initialize the data disk. If the size specified by snapshot is greater that the size of the disk, use the size specified by snapshot as the size of the data disk.\n"}},"type":"object","required":["category","deleteWithInstance","description","encrypted","name","performanceLevel","size","snapshotId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsLaunchTemplatesTemplateNetworkInterface:getEcsLaunchTemplatesTemplateNetworkInterface":{"properties":{"description":{"type":"string","description":"System disk description.\n"},"name":{"type":"string","description":"System disk name.\n"},"primaryIp":{"type":"string","description":"The primary private IP address of the ENI.\n"},"securityGroupId":{"type":"string","description":"The security group ID must be one in the same VPC.\n"},"vswitchId":{"type":"string","description":"The vSwitch ID for ENI. The instance must be in the same zone of the same VPC network as the ENI, but they may belong to different VSwitches.\n"}},"type":"object","required":["description","name","primaryIp","securityGroupId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsLaunchTemplatesTemplateSystemDisk:getEcsLaunchTemplatesTemplateSystemDisk":{"properties":{"category":{"type":"string","description":"The category of the system disk.\n"},"deleteWithInstance":{"type":"boolean","description":"Specifies whether to release the system disk when the instance is released.\n"},"description":{"type":"string","description":"System disk description.\n"},"iops":{"type":"string","description":"The Iops.\n"},"name":{"type":"string","description":"System disk name.\n"},"performanceLevel":{"type":"string","description":"The performance level of the ESSD used as the system disk.\n"},"size":{"type":"integer","description":"Size of the system disk, measured in GB.\n"}},"type":"object","required":["category","deleteWithInstance","description","iops","name","performanceLevel","size"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsNetworkInterfacePermissionsPermission:getEcsNetworkInterfacePermissionsPermission":{"properties":{"accountId":{"type":"string","description":"Alibaba Cloud Partner (Certified ISV) account ID or individual user ID.\n"},"id":{"type":"string","description":"The ID of the Network Interface Permission.\n"},"networkInterfaceId":{"type":"string","description":"The ID of the network interface.\n"},"networkInterfacePermissionId":{"type":"string","description":"The ID of the Network Interface Permissions.\n"},"permission":{"type":"string","description":"The permissions of the Network Interface.\n"},"serviceName":{"type":"string","description":"Alibaba Cloud service name.\n"},"status":{"type":"string","description":"The Status of the Network Interface Permissions.\n"}},"type":"object","required":["accountId","id","networkInterfaceId","networkInterfacePermissionId","permission","serviceName","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsNetworkInterfacesInterface:getEcsNetworkInterfacesInterface":{"properties":{"associatedPublicIps":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getEcsNetworkInterfacesInterfaceAssociatedPublicIp:getEcsNetworkInterfacesInterfaceAssociatedPublicIp"},"description":"The EIP associated with the secondary private IP address of the ENI.  **NOTE:** Available in v1.163.0+.\n"},"creationTime":{"type":"string","description":"The creation time.\n"},"description":{"type":"string","description":"The description of the ENI.\n"},"id":{"type":"string","description":"The ID of the Network Interface.\n"},"instanceId":{"type":"string","description":"The instance id.\n"},"ipv6Sets":{"type":"array","items":{"type":"string"},"description":"A list of IPv6 addresses that is assigned to the ENI.  **NOTE:** Available since v1.228.0.\n"},"mac":{"type":"string","description":"The MAC address of the ENI.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`networkInterfaceName`\" pulumi-lang-dotnet=\"`NetworkInterfaceName`\" pulumi-lang-go=\"`networkInterfaceName`\" pulumi-lang-python=\"`network_interface_name`\" pulumi-lang-yaml=\"`networkInterfaceName`\" pulumi-lang-java=\"`networkInterfaceName`\"\u003e`network_interface_name`\u003c/span\u003e instead\n"},"networkInterfaceId":{"type":"string","description":"The network interface id.\n"},"networkInterfaceName":{"type":"string","description":"The network interface name.\n"},"networkInterfaceTrafficMode":{"type":"string","description":"The communication mode of the elastic network card.\n"},"ownerId":{"type":"string","description":"The ID of the account to which the ENIC belongs.\n"},"primaryIpAddress":{"type":"string","description":"The primary private IP address of the ENI.\n"},"privateIp":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`privateIp`\" pulumi-lang-dotnet=\"`PrivateIp`\" pulumi-lang-go=\"`privateIp`\" pulumi-lang-python=\"`private_ip`\" pulumi-lang-yaml=\"`privateIp`\" pulumi-lang-java=\"`privateIp`\"\u003e`private_ip`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`primaryIpAddress`\" pulumi-lang-dotnet=\"`PrimaryIpAddress`\" pulumi-lang-go=\"`primaryIpAddress`\" pulumi-lang-python=\"`primary_ip_address`\" pulumi-lang-yaml=\"`primaryIpAddress`\" pulumi-lang-java=\"`primaryIpAddress`\"\u003e`primary_ip_address`\u003c/span\u003e instead\n"},"privateIpAddresses":{"type":"array","items":{"type":"string"},"description":"A list of secondary private IP address that is assigned to the ENI.\n"},"privateIps":{"type":"array","items":{"type":"string"},"description":"A list of secondary private IP address that is assigned to the ENI.\n"},"queueNumber":{"type":"integer","description":"Number of network card queues.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The security group ids.\n"},"securityGroups":{"type":"array","items":{"type":"string"},"description":"The security groups.\n"},"serviceId":{"type":"integer","description":"The service id.\n"},"serviceManaged":{"type":"boolean","description":"Whether the user of the elastic network card is a cloud product or a virtual vendor.\n"},"status":{"type":"string","description":"The status of ENI. Valid Values: `Attaching`, `Available`, `CreateFailed`, `Creating`, `Deleting`, `Detaching`, `InUse`, `Linked`, `Linking`, `Unlinking`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to ENIs.\n"},"type":{"type":"string","description":"The type of ENI. Valid Values: `Primary`, `Secondary`.\n"},"vpcId":{"type":"string","description":"The vpc id.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string","description":"The zone id.\n"}},"type":"object","required":["associatedPublicIps","creationTime","description","id","instanceId","ipv6Sets","mac","name","networkInterfaceId","networkInterfaceName","networkInterfaceTrafficMode","ownerId","primaryIpAddress","privateIp","privateIpAddresses","privateIps","queueNumber","resourceGroupId","securityGroupIds","securityGroups","serviceId","serviceManaged","status","tags","type","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsNetworkInterfacesInterfaceAssociatedPublicIp:getEcsNetworkInterfacesInterfaceAssociatedPublicIp":{"properties":{"publicIpAddress":{"type":"string","description":"The EIP of the ENI.\n"}},"type":"object","required":["publicIpAddress"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsPrefixListsList:getEcsPrefixListsList":{"properties":{"addressFamily":{"type":"string","description":"The address family of the prefix list. Valid values:`IPv4`,`IPv6`.\n"},"associationCount":{"type":"integer","description":"The amount of associated resources.\n"},"createTime":{"type":"string","description":"The time when the prefix list was created.\n"},"description":{"type":"string","description":"The description of the prefix list.\n"},"entries":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getEcsPrefixListsListEntry:getEcsPrefixListsListEntry"}},"id":{"type":"string","description":"The ID of the prefix list.\n"},"maxEntries":{"type":"integer","description":"The maximum number of entries that the prefix list supports.\n"},"prefixListId":{"type":"string","description":"The ID of the prefix list.\n"},"prefixListName":{"type":"string","description":"The name of the prefix list.\n"}},"type":"object","required":["addressFamily","associationCount","createTime","description","entries","id","maxEntries","prefixListId","prefixListName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsPrefixListsListEntry:getEcsPrefixListsListEntry":{"properties":{"cidr":{"type":"string"},"description":{"type":"string","description":"The description of the prefix list.\n"}},"type":"object","required":["cidr","description"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsSnapshotGroupsGroup:getEcsSnapshotGroupsGroup":{"properties":{"description":{"type":"string","description":"The description of the snapshot-consistent group.\n"},"id":{"type":"string","description":"The ID of the Snapshot Group.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the snapshot consistency group belongs.\n"},"snapshotGroupId":{"type":"string","description":"The first ID of the resource.\n"},"snapshotGroupName":{"type":"string","description":"The name of the snapshot-consistent group.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"List of label key-value pairs.\n"}},"type":"object","required":["description","id","instanceId","resourceGroupId","snapshotGroupId","snapshotGroupName","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsSnapshotsSnapshot:getEcsSnapshotsSnapshot":{"properties":{"category":{"type":"string","description":"The category of the snapshot. Valid Values: \u003cspan pulumi-lang-nodejs=\"`flash`\" pulumi-lang-dotnet=\"`Flash`\" pulumi-lang-go=\"`flash`\" pulumi-lang-python=\"`flash`\" pulumi-lang-yaml=\"`flash`\" pulumi-lang-java=\"`flash`\"\u003e`flash`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e.\n"},"creationTime":{"type":"string","description":"The time when the snapshot was created.\n"},"description":{"type":"string","description":"The description of the snapshot.\n"},"diskId":{"type":"string","description":"The ID of the source disk.\n"},"encrypted":{"type":"boolean","description":"Specifies whether the snapshot is encrypted.\n"},"id":{"type":"string","description":"The ID of the Snapshot.\n"},"instantAccess":{"type":"boolean","description":"Indicates whether the instant access feature is enabled.\n"},"instantAccessRetentionDays":{"type":"integer","description":"Indicates the validity period of the instant access feature.\n"},"name":{"type":"string","description":"The name of the snapshot.\n"},"productCode":{"type":"string","description":"The product code of the Alibaba Cloud Marketplace image.\n"},"progress":{"type":"string","description":"The progress of the snapshot creation task.\n"},"remainTime":{"type":"integer","description":"The amount of remaining time required to create the snapshot.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"retentionDays":{"type":"integer","description":"The retention period of the automatic snapshot.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot.\n"},"snapshotName":{"type":"string","description":"The name of the snapshot.\n"},"snapshotSn":{"type":"string","description":"The serial number of the snapshot.\n"},"snapshotType":{"type":"string","description":"The type of the snapshot. Valid Values: \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e. Default to: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"sourceDiskId":{"type":"string","description":"The ID of the source disk.\n"},"sourceDiskSize":{"type":"string","description":"The capacity of the source disk.\n"},"sourceDiskType":{"type":"string","description":"The type of the disk for which the snapshot was created. Valid Values: `System`, `Data`.\n"},"sourceStorageType":{"type":"string","description":"The category of the source disk.\n"},"status":{"type":"string","description":"The status of the snapshot. Valid Values: \u003cspan pulumi-lang-nodejs=\"`accomplished`\" pulumi-lang-dotnet=\"`Accomplished`\" pulumi-lang-go=\"`accomplished`\" pulumi-lang-python=\"`accomplished`\" pulumi-lang-yaml=\"`accomplished`\" pulumi-lang-java=\"`accomplished`\"\u003e`accomplished`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`failed`\" pulumi-lang-dotnet=\"`Failed`\" pulumi-lang-go=\"`failed`\" pulumi-lang-python=\"`failed`\" pulumi-lang-yaml=\"`failed`\" pulumi-lang-java=\"`failed`\"\u003e`failed`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`progressing`\" pulumi-lang-dotnet=\"`Progressing`\" pulumi-lang-go=\"`progressing`\" pulumi-lang-python=\"`progressing`\" pulumi-lang-yaml=\"`progressing`\" pulumi-lang-java=\"`progressing`\"\u003e`progressing`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the snapshot.\n"},"type":{"type":"string","description":"The type of the snapshot. Valid Values: \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e. Default to: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"usage":{"type":"string","description":"A resource type that has a reference relationship. Valid Values: \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disk`\" pulumi-lang-dotnet=\"`Disk`\" pulumi-lang-go=\"`disk`\" pulumi-lang-python=\"`disk`\" pulumi-lang-yaml=\"`disk`\" pulumi-lang-java=\"`disk`\"\u003e`disk`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`imageDisk`\" pulumi-lang-dotnet=\"`ImageDisk`\" pulumi-lang-go=\"`imageDisk`\" pulumi-lang-python=\"`image_disk`\" pulumi-lang-yaml=\"`imageDisk`\" pulumi-lang-java=\"`imageDisk`\"\u003e`image_disk`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"}},"type":"object","required":["category","creationTime","description","diskId","encrypted","id","instantAccess","instantAccessRetentionDays","name","productCode","progress","remainTime","resourceGroupId","retentionDays","snapshotId","snapshotName","snapshotSn","snapshotType","sourceDiskId","sourceDiskSize","sourceDiskType","sourceStorageType","status","tags","type","usage"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEcsStorageCapacityUnitsUnit:getEcsStorageCapacityUnitsUnit":{"properties":{"allocationStatus":{"type":"string","description":"When the AllocationType value is Shared, this parameter indicates the allocation status of Storage Capacity Unit. Valid values: \u003cspan pulumi-lang-nodejs=\"`allocated`\" pulumi-lang-dotnet=\"`Allocated`\" pulumi-lang-go=\"`allocated`\" pulumi-lang-python=\"`allocated`\" pulumi-lang-yaml=\"`allocated`\" pulumi-lang-java=\"`allocated`\"\u003e`allocated`\u003c/span\u003e, `Ignored`.\n"},"capacity":{"type":"integer","description":"The capacity of the Storage Capacity Unit.\n"},"createTime":{"type":"string","description":"The time when the Storage Capacity Unit was created.\n"},"description":{"type":"string","description":"The description of the Storage Capacity Unit.\n"},"expiredTime":{"type":"string","description":"The time when the Storage Capacity Unit expires.\n"},"id":{"type":"string","description":"The ID of the Storage Capacity Unit.\n"},"startTime":{"type":"string","description":"The effective time of the Storage Capacity Unit.\n"},"status":{"type":"string","description":"The status of Storage Capacity Unit.\n"},"storageCapacityUnitId":{"type":"string","description":"The ID of Storage Capacity Unit.\n"},"storageCapacityUnitName":{"type":"string","description":"The name of the Storage Capacity Unit.\n"}},"type":"object","required":["allocationStatus","capacity","createTime","description","expiredTime","id","startTime","status","storageCapacityUnitId","storageCapacityUnitName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEipAddressesAddress:getEipAddressesAddress":{"properties":{"addressName":{"type":"string","description":"The name of the EIP.\n"},"allocationId":{"type":"string","description":"The ID of the EIP.\n"},"availableRegions":{"type":"array","items":{"type":"string"},"description":"The ID of the region to which the EIP belongs.\n"},"bandwidth":{"type":"string","description":"The maximum bandwidth of the EIP. Unit: Mbit/s.\n"},"bandwidthPackageBandwidth":{"type":"string","description":"The bandwidth value of the EIP bandwidth plan with which the EIP is associated.\n"},"bandwidthPackageId":{"type":"string","description":"The ID of the EIP bandwidth plan.\n"},"bandwidthPackageType":{"type":"string","description":"The type of the bandwidth. Only CommonBandwidthPackage (an EIP bandwidth plan) is returned.\n"},"createTime":{"type":"string","description":"The time when the EIP was created.\n"},"deletionProtection":{"type":"boolean","description":"Indicates whether deletion protection is enabled.\n"},"description":{"type":"string","description":"The description of the EIP.\n"},"expiredTime":{"type":"string","description":"The expiration date. The time follows the ISO 8601 standard and is displayed in UTC. Format: YYYY-MM-DDThh:mmZ.\n"},"hasReservationData":{"type":"string","description":"Indicates whether renewal data is included. This parameter returns true only when the parameter IncludeReservationData is set to true, and some orders have not taken effect.\n"},"hdMonitorStatus":{"type":"string","description":"Indicates whether fine-grained monitoring is enabled for the EIP.\n"},"id":{"type":"string","description":"The ID of the Address.\n"},"instanceId":{"type":"string","description":"The ID of the instance with which the EIP is associated.\n"},"instanceRegionId":{"type":"string","description":"The region ID of the associated resource.\n"},"instanceType":{"type":"string","description":"The type of the instance with which the EIP is associated.\n"},"internetChargeType":{"type":"string","description":"The metering method of the EIP.\n"},"ipAddress":{"type":"string","description":"The IP address of the EIP.\n"},"isp":{"type":"string","description":"The Internet service provider (ISP).\n"},"operationLocks":{"type":"array","items":{"type":"string"},"description":"The details about the locked EIP.\n"},"paymentType":{"type":"string","description":"The billing method of the EIP.\n"},"reservationActiveTime":{"type":"string","description":"The time when the renewal takes effect.\n"},"reservationBandwidth":{"type":"string","description":"The bandwidth after the renewal takes effect.\n"},"reservationInternetChargeType":{"type":"string","description":"The metering method of the renewal.\n"},"reservationOrderType":{"type":"string","description":"The type of the renewal order.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"secondLimited":{"type":"boolean","description":"Indicates whether level-2 throttling is configured.\n"},"segmentInstanceId":{"type":"string","description":"The IDs of the contiguous EIPs.\n"},"status":{"type":"string","description":"The status of the EIP.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object","required":["addressName","allocationId","availableRegions","bandwidth","bandwidthPackageBandwidth","bandwidthPackageId","bandwidthPackageType","createTime","deletionProtection","description","expiredTime","hasReservationData","hdMonitorStatus","id","instanceId","instanceRegionId","instanceType","internetChargeType","ipAddress","isp","operationLocks","paymentType","reservationActiveTime","reservationBandwidth","reservationInternetChargeType","reservationOrderType","resourceGroupId","secondLimited","segmentInstanceId","status","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEipAddressesEip:getEipAddressesEip":{"properties":{"bandwidth":{"type":"string","description":"The maximum bandwidth of the EIP. Unit: Mbit/s.\n"},"creationTime":{"type":"string"},"deletionProtection":{"type":"boolean","description":"Indicates whether deletion protection is enabled.\n"},"id":{"type":"string","description":"The ID of the Address.\n"},"instanceId":{"type":"string","description":"The ID of the instance with which the EIP is associated.\n"},"instanceType":{"type":"string","description":"The type of the instance with which the EIP is associated.\n"},"internetChargeType":{"type":"string","description":"The metering method of the EIP.\n"},"ipAddress":{"type":"string","description":"The eip address.\n"},"status":{"type":"string","description":"The status of the EIP. Valid values:  `Associating`: The EIP is being associated. `Unassociating`: The EIP is being disassociated. `InUse`: The EIP is allocated. `Available`:The EIP is available.\n"}},"type":"object","required":["bandwidth","creationTime","deletionProtection","id","instanceId","instanceType","internetChargeType","ipAddress","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEipsAddress:getEipsAddress":{"properties":{"addressName":{"type":"string"},"allocationId":{"type":"string"},"availableRegions":{"type":"array","items":{"type":"string"}},"bandwidth":{"type":"string","description":"EIP internet max bandwidth in Mbps.\n"},"bandwidthPackageBandwidth":{"type":"string"},"bandwidthPackageId":{"type":"string"},"bandwidthPackageType":{"type":"string"},"createTime":{"type":"string"},"deletionProtection":{"type":"boolean","description":"(Optional, Available in v1.124.4+) Whether enable the deletion protection or not.\n"},"description":{"type":"string"},"expiredTime":{"type":"string"},"hasReservationData":{"type":"string"},"hdMonitorStatus":{"type":"string"},"id":{"type":"string","description":"ID of the EIP.\n"},"instanceId":{"type":"string","description":"The ID of the instance that is being bound.\n"},"instanceRegionId":{"type":"string"},"instanceType":{"type":"string","description":"The instance type of that the EIP is bound.\n"},"internetChargeType":{"type":"string","description":"EIP internet charge type.\n"},"ipAddress":{"type":"string","description":"Public IP Address of the the EIP.\n"},"isp":{"type":"string"},"operationLocks":{"type":"array","items":{"type":"string"}},"paymentType":{"type":"string"},"reservationActiveTime":{"type":"string"},"reservationBandwidth":{"type":"string"},"reservationInternetChargeType":{"type":"string"},"reservationOrderType":{"type":"string"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the eips belongs.\n"},"secondLimited":{"type":"boolean"},"segmentInstanceId":{"type":"string"},"status":{"type":"string","description":"EIP status. Possible values are: `Associating`, `Unassociating`, `InUse` and `Available`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object","required":["addressName","allocationId","availableRegions","bandwidth","bandwidthPackageBandwidth","bandwidthPackageId","bandwidthPackageType","createTime","deletionProtection","description","expiredTime","hasReservationData","hdMonitorStatus","id","instanceId","instanceRegionId","instanceType","internetChargeType","ipAddress","isp","operationLocks","paymentType","reservationActiveTime","reservationBandwidth","reservationInternetChargeType","reservationOrderType","resourceGroupId","secondLimited","segmentInstanceId","status","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getEipsEip:getEipsEip":{"properties":{"bandwidth":{"type":"string","description":"EIP internet max bandwidth in Mbps.\n"},"creationTime":{"type":"string","description":"Time of creation.\n"},"deletionProtection":{"type":"boolean","description":"(Optional, Available in v1.124.4+) Whether enable the deletion protection or not.\n"},"id":{"type":"string","description":"ID of the EIP.\n"},"instanceId":{"type":"string","description":"The ID of the instance that is being bound.\n"},"instanceType":{"type":"string","description":"The instance type of that the EIP is bound.\n"},"internetChargeType":{"type":"string","description":"EIP internet charge type.\n"},"ipAddress":{"type":"string","description":"Public IP Address of the the EIP.\n"},"status":{"type":"string","description":"EIP status. Possible values are: `Associating`, `Unassociating`, `InUse` and `Available`.\n"}},"type":"object","required":["bandwidth","creationTime","deletionProtection","id","instanceId","instanceType","internetChargeType","ipAddress","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getElasticityAssurancesAssurance:getElasticityAssurancesAssurance":{"properties":{"allocatedResources":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getElasticityAssurancesAssuranceAllocatedResource:getElasticityAssurancesAssuranceAllocatedResource"},"description":"Details of resource allocation.\n"},"description":{"type":"string","description":"Description of flexible guarantee service.\n"},"elasticityAssuranceId":{"type":"string","description":"The first ID of the resource\n"},"endTime":{"type":"string","description":"Flexible guarantee service failure time.\n"},"id":{"type":"string","description":"ID of flexible guarantee service.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the instance. Possible value: PostPaid. Currently, only pay-as-you-go is supported.\n"},"privatePoolOptionsId":{"type":"string","description":"The ID of the elasticity assurance.\n"},"privatePoolOptionsMatchCriteria":{"type":"string","description":"The matching mode of flexible guarantee service. Possible values:-Open: flexible guarantee service for Open mode.-Target: specifies the flexible guarantee service of the mode.\n"},"privatePoolOptionsName":{"type":"string","description":"The name of the elasticity assurance.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"startTime":{"type":"string","description":"Flexible guarantee service effective time.\n"},"startTimeType":{"type":"string","description":"Flexible guarantee effective way. Possible values:-Now: Effective immediately.-Later: the specified time takes effect.\n"},"status":{"type":"string","description":"The status of flexible guarantee services. Possible values: `All`, `Preparing`, `Prepared`, `Active`, `Released`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag key-value pair information bound by the elastic guarantee service.\n"},"totalAssuranceTimes":{"type":"string","description":"The total number of flexible guarantee services.\n"},"usedAssuranceTimes":{"type":"integer","description":"This parameter is not yet available.\n"}},"type":"object","required":["allocatedResources","description","elasticityAssuranceId","endTime","id","instanceChargeType","privatePoolOptionsId","privatePoolOptionsMatchCriteria","privatePoolOptionsName","resourceGroupId","startTime","startTimeType","status","totalAssuranceTimes","usedAssuranceTimes"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getElasticityAssurancesAssuranceAllocatedResource:getElasticityAssurancesAssuranceAllocatedResource":{"properties":{"instanceType":{"type":"string","description":"Instance type.\n"},"totalAmount":{"type":"integer","description":"The total number of instances that need to be reserved within an instance type.\n"},"usedAmount":{"type":"integer","description":"The number of instances that have been used.\n"},"zoneId":{"type":"string","description":"The zone ID.\n"}},"type":"object","required":["instanceType","totalAmount","usedAmount","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getHpcClustersCluster:getHpcClustersCluster":{"properties":{"description":{"type":"string","description":"The description of ECS Hpc Cluster.\n"},"hpcClusterId":{"type":"string","description":"The ID of the Hpc Cluster.\n"},"id":{"type":"string","description":"The ID of the Hpc Cluster.\n"},"name":{"type":"string","description":"The name of ECS Hpc Cluster.\n"}},"type":"object","required":["description","hpcClusterId","id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getImagesImage:getImagesImage":{"properties":{"architecture":{"type":"string","description":"The image architecture. Valid values: \u003cspan pulumi-lang-nodejs=\"`i386`\" pulumi-lang-dotnet=\"`I386`\" pulumi-lang-go=\"`i386`\" pulumi-lang-python=\"`i386`\" pulumi-lang-yaml=\"`i386`\" pulumi-lang-java=\"`i386`\"\u003e`i386`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`arm64`\" pulumi-lang-dotnet=\"`Arm64`\" pulumi-lang-go=\"`arm64`\" pulumi-lang-python=\"`arm64`\" pulumi-lang-yaml=\"`arm64`\" pulumi-lang-java=\"`arm64`\"\u003e`arm64`\u003c/span\u003e.\n"},"creationTime":{"type":"string","description":"The creation time.\n"},"description":{"type":"string","description":"The description of the image.\n"},"diskDeviceMappings":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getImagesImageDiskDeviceMapping:getImagesImageDiskDeviceMapping"},"description":"A \u003cspan pulumi-lang-nodejs=\"`diskDeviceMappings`\" pulumi-lang-dotnet=\"`DiskDeviceMappings`\" pulumi-lang-go=\"`diskDeviceMappings`\" pulumi-lang-python=\"`disk_device_mappings`\" pulumi-lang-yaml=\"`diskDeviceMappings`\" pulumi-lang-java=\"`diskDeviceMappings`\"\u003e`disk_device_mappings`\u003c/span\u003e block as defined below. Description of the system with disks and snapshots under the image.\n"},"id":{"type":"string","description":"The ID of the image.\n"},"imageId":{"type":"string","description":"The ID of the image.\n"},"imageOwnerAlias":{"type":"string","description":"The alias of the image owner.\n"},"imageVersion":{"type":"string","description":"Version of the image.\n"},"isCopied":{"type":"boolean"},"isSelfShared":{"type":"string"},"isSubscribed":{"type":"boolean","description":"Whether the user has subscribed to the terms of service for the image product corresponding to the ProductCode.\n"},"isSupportIoOptimized":{"type":"boolean","description":"Specifies whether the image can be used on I/O optimized instances.\n"},"name":{"type":"string"},"osName":{"type":"string","description":"The display Chinese name of the OS.\n"},"osNameEn":{"type":"string","description":"The english name of the OS.\n"},"osType":{"type":"string","description":"The operating system type of the image. Valid values: \u003cspan pulumi-lang-nodejs=\"`windows`\" pulumi-lang-dotnet=\"`Windows`\" pulumi-lang-go=\"`windows`\" pulumi-lang-python=\"`windows`\" pulumi-lang-yaml=\"`windows`\" pulumi-lang-java=\"`windows`\"\u003e`windows`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\"\u003e`linux`\u003c/span\u003e.\n"},"platform":{"type":"string"},"productCode":{"type":"string","description":"The product code of the image on the image market.\n"},"progress":{"type":"string","description":"Progress of image creation, presented in percentages.\n"},"size":{"type":"integer","description":"The size of the created disk.\n"},"state":{"type":"string"},"status":{"type":"string","description":"The status of the image. The following values are available, Separate multiple parameter values by using commas (,). Default value: `Available`. Valid values: \n- `Creating`: The image is being created.\n- `Waiting`: The image is waiting to be processed.\n- `Available`: The image is available.\n- `UnAvailable`: The image is unavailable.\n- `CreateFailed`: The image failed to be created.\n- `Deprecated`: The image is discontinued.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"usage":{"type":"string","description":"Specifies whether to check the validity of the request without actually making the request. Valid values:\n"}},"type":"object","required":["architecture","creationTime","description","diskDeviceMappings","id","imageId","imageOwnerAlias","imageVersion","isCopied","isSelfShared","isSubscribed","isSupportIoOptimized","name","osName","osNameEn","osType","platform","productCode","progress","size","state","status","usage"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getImagesImageDiskDeviceMapping:getImagesImageDiskDeviceMapping":{"properties":{"device":{"type":"string","description":"The device information of the created disk: such as /dev/xvdb.\n"},"size":{"type":"string","description":"The size of the created disk.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot used to create the custom image.\n"}},"type":"object","required":["device","size","snapshotId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getInstanceTypeFamiliesFamily:getInstanceTypeFamiliesFamily":{"properties":{"generation":{"type":"string","description":"The generation of the instance type family, Valid values: `ecs-1`, `ecs-2`, `ecs-3`, `ecs-4`, `ecs-5`, `ecs-6`. For more information, see [Instance type families](https://www.alibabacloud.com/help/doc-detail/25378.htm).\n"},"id":{"type":"string","description":"ID of the instance type family.\n"},"zoneIds":{"type":"array","items":{"type":"string"},"description":"A list of Zone to launch the instance.\n"}},"type":"object","required":["generation","id","zoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getInstanceTypesInstanceType:getInstanceTypesInstanceType":{"properties":{"availabilityZones":{"type":"array","items":{"type":"string"},"description":"List of availability zones that support the instance type.\n"},"burstableInstance":{"$ref":"#/types/alicloud:ecs/getInstanceTypesInstanceTypeBurstableInstance:getInstanceTypesInstanceTypeBurstableInstance","description":"The burstable instance attribution.\n"},"cpuCoreCount":{"type":"integer","description":"Filter the results to a specific number of cpu cores.\n"},"eniAmount":{"type":"integer","description":"Filter the result whose network interface number is no more than \u003cspan pulumi-lang-nodejs=\"`eniAmount`\" pulumi-lang-dotnet=\"`EniAmount`\" pulumi-lang-go=\"`eniAmount`\" pulumi-lang-python=\"`eni_amount`\" pulumi-lang-yaml=\"`eniAmount`\" pulumi-lang-java=\"`eniAmount`\"\u003e`eni_amount`\u003c/span\u003e.\n"},"eniIpv6AddressQuantity":{"type":"integer","description":"(Available since v1.239.0) The maximum number of IPv6 addresses per ENI.\n"},"eniPrivateIpAddressQuantity":{"type":"integer","description":"(Available since v1.239.0) The maximum number of IPv4 addresses per ENI.\n"},"eniQuantity":{"type":"integer","description":"(Available since v1.239.0) The maximum number of ENIs per instance.\n"},"family":{"type":"string","description":"The instance type family.\n"},"gpu":{"$ref":"#/types/alicloud:ecs/getInstanceTypesInstanceTypeGpu:getInstanceTypesInstanceTypeGpu","description":"The GPU attribution of an instance type:\n"},"id":{"type":"string","description":"ID of the instance type.\n"},"localStorage":{"$ref":"#/types/alicloud:ecs/getInstanceTypesInstanceTypeLocalStorage:getInstanceTypesInstanceTypeLocalStorage","description":"Local storage of an instance type.\n"},"maximumQueueNumberPerEni":{"type":"integer","description":"(Available since v1.239.0) The maximum number of queues per ENI, including primary and secondary ENIs.\n"},"memorySize":{"type":"number","description":"Filter the results to a specific memory size in GB.\n"},"nvmeSupport":{"type":"string","description":"Indicates whether the cloud disk can be attached by using the nonvolatile memory express (NVMe) protocol.\n"},"price":{"type":"string","description":"The price of instance type. **Note:** \u003cspan pulumi-lang-nodejs=\"`price`\" pulumi-lang-dotnet=\"`Price`\" pulumi-lang-go=\"`price`\" pulumi-lang-python=\"`price`\" pulumi-lang-yaml=\"`price`\" pulumi-lang-java=\"`price`\"\u003e`price`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`sortedBy`\" pulumi-lang-dotnet=\"`SortedBy`\" pulumi-lang-go=\"`sortedBy`\" pulumi-lang-python=\"`sorted_by`\" pulumi-lang-yaml=\"`sortedBy`\" pulumi-lang-java=\"`sortedBy`\"\u003e`sorted_by`\u003c/span\u003e is set to `Price`.\n"},"primaryEniQueueNumber":{"type":"integer","description":"(Available since v1.239.0) The default number of queues per primary ENI.\n"},"secondaryEniQueueNumber":{"type":"integer","description":"(Available since v1.239.0) The default number of queues per secondary ENI.\n"},"totalEniQueueQuantity":{"type":"integer","description":"(Available since v1.239.0) The maximum number of queues on ENIs that the instance type supports.\n"}},"type":"object","required":["availabilityZones","burstableInstance","cpuCoreCount","eniAmount","eniIpv6AddressQuantity","eniPrivateIpAddressQuantity","eniQuantity","family","gpu","id","localStorage","maximumQueueNumberPerEni","memorySize","nvmeSupport","price","primaryEniQueueNumber","secondaryEniQueueNumber","totalEniQueueQuantity"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getInstanceTypesInstanceTypeBurstableInstance:getInstanceTypesInstanceTypeBurstableInstance":{"properties":{"baselineCredit":{"type":"string","description":"The compute performance benchmark CPU credit of a burstable instance.\n"},"initialCredit":{"type":"string","description":"The initial CPU credit of a burstable instance.\n"}},"type":"object","required":["baselineCredit","initialCredit"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getInstanceTypesInstanceTypeGpu:getInstanceTypesInstanceTypeGpu":{"properties":{"amount":{"type":"string","description":"The number of local storage devices that an instance has been attached to.\n"},"category":{"type":"string","description":"The category of local storage that an instance has been attached to.\n"}},"type":"object","required":["amount","category"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getInstanceTypesInstanceTypeLocalStorage:getInstanceTypesInstanceTypeLocalStorage":{"properties":{"amount":{"type":"string","description":"The number of local storage devices that an instance has been attached to.\n"},"capacity":{"type":"string","description":"The capacity of a local storage in GB.\n"},"category":{"type":"string","description":"The category of local storage that an instance has been attached to.\n"}},"type":"object","required":["amount","capacity","category"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getInstancesInstance:getInstancesInstance":{"properties":{"availabilityZone":{"type":"string","description":"Availability zone where instances are located.\n"},"creationTime":{"type":"string","description":"Instance creation time.\n"},"description":{"type":"string","description":"Instance description.\n"},"diskDeviceMappings":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getInstancesInstanceDiskDeviceMapping:getInstancesInstanceDiskDeviceMapping"},"description":"Description of the attached disks.\n"},"eip":{"type":"string","description":"EIP address the VPC instance is using.\n"},"id":{"type":"string","description":"ID of the instance.\n"},"imageId":{"type":"string","description":"The image ID of some ECS instance used.\n"},"instanceChargeType":{"type":"string","description":"Instance charge type.\n"},"instanceType":{"type":"string","description":"Instance type.\n"},"internetChargeType":{"type":"string","description":"Instance network charge type.\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Max output bandwidth for internet.\n"},"keyName":{"type":"string","description":"Key pair the instance is using.\n"},"name":{"type":"string","description":"Instance name.\n"},"privateIp":{"type":"string","description":"Instance private IP address.\n"},"publicIp":{"type":"string","description":"Instance public IP address.\n"},"ramRoleName":{"type":"string","description":"The RAM role name which the instance attaches.\n"},"regionId":{"type":"string","description":"Region ID the instance belongs to.\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the instance belongs.\n"},"securityGroups":{"type":"array","items":{"type":"string"},"description":"List of security group IDs the instance belongs to.\n"},"spotStrategy":{"type":"string","description":"Spot strategy the instance is using.\n"},"status":{"type":"string","description":"Instance status. Valid values: \"Creating\", \"Starting\", \"Running\", \"Stopping\" and \"Stopped\". If undefined, all statuses are considered.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the ECS instances. It must be in the format:\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst taggedInstances = alicloud.ecs.getInstances({\n    tags: {\n        tagKey1: \"tagValue1\",\n        tagKey2: \"tagValue2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ntagged_instances = alicloud.ecs.get_instances(tags={\n    \"tagKey1\": \"tagValue1\",\n    \"tagKey2\": \"tagValue2\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var taggedInstances = AliCloud.Ecs.GetInstances.Invoke(new()\n    {\n        Tags = \n        {\n            { \"tagKey1\", \"tagValue1\" },\n            { \"tagKey2\", \"tagValue2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.GetInstances(ctx, \u0026ecs.GetInstancesArgs{\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"tagKey1\": \"tagValue1\",\n\t\t\t\t\"tagKey2\": \"tagValue2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var taggedInstances = EcsFunctions.getInstances(GetInstancesArgs.builder()\n            .tags(Map.ofEntries(\n                Map.entry(\"tagKey1\", \"tagValue1\"),\n                Map.entry(\"tagKey2\", \"tagValue2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  taggedInstances:\n    fn::invoke:\n      function: alicloud:ecs:getInstances\n      arguments:\n        tags:\n          tagKey1: tagValue1\n          tagKey2: tagValue2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n"},"vpcId":{"type":"string","description":"ID of the VPC linked to the instances.\n"},"vswitchId":{"type":"string","description":"ID of the vSwitch linked to the instances.\n"}},"type":"object","required":["availabilityZone","creationTime","description","diskDeviceMappings","eip","id","imageId","instanceChargeType","instanceType","internetChargeType","internetMaxBandwidthOut","keyName","name","privateIp","publicIp","ramRoleName","regionId","resourceGroupId","securityGroups","spotStrategy","status","tags","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getInstancesInstanceDiskDeviceMapping:getInstancesInstanceDiskDeviceMapping":{"properties":{"category":{"type":"string","description":"Cloud disk category.\n"},"device":{"type":"string","description":"Device information of the created disk: such as /dev/xvdb.\n"},"diskId":{"type":"string","description":"The ID of the Disk.\n"},"diskName":{"type":"string","description":"The name of the Disk.\n"},"size":{"type":"integer","description":"Size of the created disk.\n"},"type":{"type":"string","description":"Cloud disk type: system disk or data disk.\n"}},"type":"object","required":["category","device","diskId","diskName","size","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getKeyPairsKeyPair:getKeyPairsKeyPair":{"properties":{"fingerPrint":{"type":"string","description":"A finger print used to retrieve specified key pair.\n"},"id":{"type":"string","description":"ID of the key pair.\n"},"instances":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getKeyPairsKeyPairInstance:getKeyPairsKeyPairInstance"},"description":"A list of ECS instances that has been bound this key pair.\n"},"keyName":{"type":"string","description":"Name of the key pair.\n"},"keyPairName":{"type":"string"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the key pair belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object","required":["fingerPrint","id","instances","keyName","keyPairName","resourceGroupId","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getKeyPairsKeyPairInstance:getKeyPairsKeyPairInstance":{"properties":{"availabilityZone":{"type":"string","description":"The ID of the availability zone where the ECS instance is located.\n"},"description":{"type":"string"},"imageId":{"type":"string"},"instanceId":{"type":"string","description":"The ID of the ECS instance.\n"},"instanceName":{"type":"string","description":"The name of the ECS instance.\n"},"instanceType":{"type":"string"},"keyName":{"type":"string","description":"Name of the key pair.\n"},"privateIp":{"type":"string","description":"The private IP address of the ECS instance.\n"},"publicIp":{"type":"string","description":"The public IP address or EIP of the ECS instance.\n"},"regionId":{"type":"string"},"status":{"type":"string"},"vswitchId":{"type":"string","description":"The ID of the vSwitch attached to the ECS instance.\n"}},"type":"object","required":["availabilityZone","description","imageId","instanceId","instanceName","instanceType","keyName","privateIp","publicIp","regionId","status","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getKeyPairsPair:getKeyPairsPair":{"properties":{"fingerPrint":{"type":"string","description":"A finger print used to retrieve specified key pair.\n"},"id":{"type":"string","description":"ID of the key pair.\n"},"instances":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getKeyPairsPairInstance:getKeyPairsPairInstance"},"description":"A list of ECS instances that has been bound this key pair.\n"},"keyName":{"type":"string","description":"Name of the key pair.\n"},"keyPairName":{"type":"string"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the key pair belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object","required":["fingerPrint","id","instances","keyName","keyPairName","resourceGroupId","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getKeyPairsPairInstance:getKeyPairsPairInstance":{"properties":{"availabilityZone":{"type":"string","description":"The ID of the availability zone where the ECS instance is located.\n"},"description":{"type":"string"},"imageId":{"type":"string"},"instanceId":{"type":"string","description":"The ID of the ECS instance.\n"},"instanceName":{"type":"string","description":"The name of the ECS instance.\n"},"instanceType":{"type":"string"},"keyName":{"type":"string","description":"Name of the key pair.\n"},"privateIp":{"type":"string","description":"The private IP address of the ECS instance.\n"},"publicIp":{"type":"string","description":"The public IP address or EIP of the ECS instance.\n"},"regionId":{"type":"string"},"status":{"type":"string"},"vswitchId":{"type":"string","description":"The ID of the vSwitch attached to the ECS instance.\n"}},"type":"object","required":["availabilityZone","description","imageId","instanceId","instanceName","instanceType","keyName","privateIp","publicIp","regionId","status","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getNetworkInterfacesInterface:getNetworkInterfacesInterface":{"properties":{"associatedPublicIps":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getNetworkInterfacesInterfaceAssociatedPublicIp:getNetworkInterfacesInterfaceAssociatedPublicIp"}},"creationTime":{"type":"string","description":"Creation time of the ENI.\n"},"description":{"type":"string","description":"Description of the ENI.\n"},"id":{"type":"string","description":"ID of the ENI.\n"},"instanceId":{"type":"string","description":"ID of the instance that the ENI is attached to.\n"},"ipv6Sets":{"type":"array","items":{"type":"string"}},"mac":{"type":"string","description":"MAC address of the ENI.\n"},"name":{"type":"string","description":"Name of the ENI.\n"},"networkInterfaceId":{"type":"string"},"networkInterfaceName":{"type":"string"},"networkInterfaceTrafficMode":{"type":"string"},"ownerId":{"type":"string"},"primaryIpAddress":{"type":"string"},"privateIp":{"type":"string","description":"Primary private IP of the ENI.\n"},"privateIpAddresses":{"type":"array","items":{"type":"string"}},"privateIps":{"type":"array","items":{"type":"string"},"description":"A list of secondary private IP address that is assigned to the ENI.\n"},"queueNumber":{"type":"integer"},"resourceGroupId":{"type":"string","description":"The Id of resource group.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"}},"securityGroups":{"type":"array","items":{"type":"string"},"description":"A list of security group that the ENI belongs to.\n"},"serviceId":{"type":"integer"},"serviceManaged":{"type":"boolean"},"status":{"type":"string","description":"Current status of the ENI.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the ENI.\n"},"type":{"type":"string"},"vpcId":{"type":"string","description":"ID of the VPC that the ENI belongs to.\n"},"vswitchId":{"type":"string","description":"ID of the vSwitch that the ENI is linked to.\n"},"zoneId":{"type":"string","description":"ID of the availability zone that the ENI belongs to.\n"}},"type":"object","required":["associatedPublicIps","creationTime","description","id","instanceId","ipv6Sets","mac","name","networkInterfaceId","networkInterfaceName","networkInterfaceTrafficMode","ownerId","primaryIpAddress","privateIp","privateIpAddresses","privateIps","queueNumber","resourceGroupId","securityGroupIds","securityGroups","serviceId","serviceManaged","status","tags","type","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getNetworkInterfacesInterfaceAssociatedPublicIp:getNetworkInterfacesInterfaceAssociatedPublicIp":{"properties":{"publicIpAddress":{"type":"string"}},"type":"object","required":["publicIpAddress"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getSecurityGroupRulesRule:getSecurityGroupRulesRule":{"properties":{"description":{"type":"string","description":"The description of the rule.\n"},"destCidrIp":{"type":"string","description":"Target IP address segment for egress authorization.\n"},"destGroupId":{"type":"string","description":"Target security group id for ingress authorization.\n"},"destGroupOwnerAccount":{"type":"string","description":"Alibaba Cloud account of the target security group.\n"},"direction":{"type":"string","description":"Authorization direction. Valid values are: \u003cspan pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\"\u003e`ingress`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\"\u003e`egress`\u003c/span\u003e.\n"},"ipProtocol":{"type":"string","description":"The IP protocol. Valid values are: \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`icmp`\" pulumi-lang-dotnet=\"`Icmp`\" pulumi-lang-go=\"`icmp`\" pulumi-lang-python=\"`icmp`\" pulumi-lang-yaml=\"`icmp`\" pulumi-lang-java=\"`icmp`\"\u003e`icmp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gre`\" pulumi-lang-dotnet=\"`Gre`\" pulumi-lang-go=\"`gre`\" pulumi-lang-python=\"`gre`\" pulumi-lang-yaml=\"`gre`\" pulumi-lang-java=\"`gre`\"\u003e`gre`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"nicType":{"type":"string","description":"Refers to the network type. Can be either \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e. The default value is \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e.\n"},"policy":{"type":"string","description":"Authorization policy. Can be either \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e. The default value is \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e.\n"},"portRange":{"type":"string","description":"The range of port numbers.\n"},"priority":{"type":"integer","description":"Rule priority.\n"},"sourceCidrIp":{"type":"string","description":"Source IP address segment for ingress authorization.\n"},"sourceGroupId":{"type":"string","description":"Source security group ID for ingress authorization.\n"},"sourceGroupOwnerAccount":{"type":"string","description":"Alibaba Cloud account of the source security group.\n"}},"type":"object","required":["description","destCidrIp","destGroupId","destGroupOwnerAccount","direction","ipProtocol","nicType","policy","portRange","priority","sourceCidrIp","sourceGroupId","sourceGroupOwnerAccount"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getSecurityGroupsGroup:getSecurityGroupsGroup":{"properties":{"creationTime":{"type":"string","description":"Creation time of the security group.\n"},"description":{"type":"string","description":"The description of the security group.\n"},"id":{"type":"string","description":"The ID of the security group.\n"},"innerAccess":{"type":"boolean","description":"Whether to allow inner network access.\n"},"name":{"type":"string","description":"The name of the security group.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the\u003cspan pulumi-lang-nodejs=\" securityGroup \" pulumi-lang-dotnet=\" SecurityGroup \" pulumi-lang-go=\" securityGroup \" pulumi-lang-python=\" security_group \" pulumi-lang-yaml=\" securityGroup \" pulumi-lang-java=\" securityGroup \"\u003e security_group \u003c/span\u003ebelongs.\n"},"securityGroupType":{"type":"string","description":"The type of the security group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the ECS instances. It must be in the format:\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst taggedSecurityGroups = alicloud.ecs.getSecurityGroups({\n    tags: {\n        tagKey1: \"tagValue1\",\n        tagKey2: \"tagValue2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ntagged_security_groups = alicloud.ecs.get_security_groups(tags={\n    \"tagKey1\": \"tagValue1\",\n    \"tagKey2\": \"tagValue2\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var taggedSecurityGroups = AliCloud.Ecs.GetSecurityGroups.Invoke(new()\n    {\n        Tags = \n        {\n            { \"tagKey1\", \"tagValue1\" },\n            { \"tagKey2\", \"tagValue2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.GetSecurityGroups(ctx, \u0026ecs.GetSecurityGroupsArgs{\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"tagKey1\": \"tagValue1\",\n\t\t\t\t\"tagKey2\": \"tagValue2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetSecurityGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var taggedSecurityGroups = EcsFunctions.getSecurityGroups(GetSecurityGroupsArgs.builder()\n            .tags(Map.ofEntries(\n                Map.entry(\"tagKey1\", \"tagValue1\"),\n                Map.entry(\"tagKey2\", \"tagValue2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  taggedSecurityGroups:\n    fn::invoke:\n      function: alicloud:ecs:getSecurityGroups\n      arguments:\n        tags:\n          tagKey1: tagValue1\n          tagKey2: tagValue2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n"},"vpcId":{"type":"string","description":"Used to retrieve security groups that belong to the specified VPC ID.\n"}},"type":"object","required":["creationTime","description","id","innerAccess","name","resourceGroupId","securityGroupType","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ecs/getSnapshotsSnapshot:getSnapshotsSnapshot":{"properties":{"category":{"type":"string"},"creationTime":{"type":"string","description":"Creation time. Time of creation. It is represented according to ISO8601, and UTC time is used. Format: YYYY-MM-DDThh:mmZ.\n"},"description":{"type":"string","description":"Description of the snapshot.\n"},"diskId":{"type":"string"},"encrypted":{"type":"boolean","description":"Whether the snapshot is encrypted or not.\n"},"id":{"type":"string","description":"ID of the snapshot.\n"},"instantAccess":{"type":"boolean"},"instantAccessRetentionDays":{"type":"integer"},"name":{"type":"string","description":"Name of the snapshot.\n"},"productCode":{"type":"string","description":"Product code on the image market place.\n"},"progress":{"type":"string","description":"Progress of snapshot creation, presented in percentage.\n"},"remainTime":{"type":"integer","description":"The remaining time of a snapshot creation task, in seconds.\n"},"resourceGroupId":{"type":"string"},"retentionDays":{"type":"integer","description":"The number of days that an automatic snapshot retains in the console for your instance.\n"},"snapshotId":{"type":"string"},"snapshotName":{"type":"string"},"snapshotSn":{"type":"string"},"snapshotType":{"type":"string"},"sourceDiskId":{"type":"string","description":"Source disk ID, which is retained after the source disk of the snapshot is deleted.\n"},"sourceDiskSize":{"type":"string","description":"Size of the source disk, measured in GB.\n"},"sourceDiskType":{"type":"string","description":"Source disk attribute. Value range: `System`,`Data`.\n"},"sourceStorageType":{"type":"string"},"status":{"type":"string","description":"The snapshot status. Value range: \u003cspan pulumi-lang-nodejs=\"`progressing`\" pulumi-lang-dotnet=\"`Progressing`\" pulumi-lang-go=\"`progressing`\" pulumi-lang-python=\"`progressing`\" pulumi-lang-yaml=\"`progressing`\" pulumi-lang-java=\"`progressing`\"\u003e`progressing`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`accomplished`\" pulumi-lang-dotnet=\"`Accomplished`\" pulumi-lang-go=\"`accomplished`\" pulumi-lang-python=\"`accomplished`\" pulumi-lang-yaml=\"`accomplished`\" pulumi-lang-java=\"`accomplished`\"\u003e`accomplished`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`failed`\" pulumi-lang-dotnet=\"`Failed`\" pulumi-lang-go=\"`failed`\" pulumi-lang-python=\"`failed`\" pulumi-lang-yaml=\"`failed`\" pulumi-lang-java=\"`failed`\"\u003e`failed`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the snapshot.\n"},"type":{"type":"string"},"usage":{"type":"string","description":"Whether the snapshots are used to create resources or not. Value range: \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disk`\" pulumi-lang-dotnet=\"`Disk`\" pulumi-lang-go=\"`disk`\" pulumi-lang-python=\"`disk`\" pulumi-lang-yaml=\"`disk`\" pulumi-lang-java=\"`disk`\"\u003e`disk`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`imageDisk`\" pulumi-lang-dotnet=\"`ImageDisk`\" pulumi-lang-go=\"`imageDisk`\" pulumi-lang-python=\"`image_disk`\" pulumi-lang-yaml=\"`imageDisk`\" pulumi-lang-java=\"`imageDisk`\"\u003e`image_disk`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"}},"type":"object","required":["category","creationTime","description","diskId","encrypted","id","instantAccess","instantAccessRetentionDays","name","productCode","progress","remainTime","resourceGroupId","retentionDays","snapshotId","snapshotName","snapshotSn","snapshotType","sourceDiskId","sourceDiskSize","sourceDiskType","sourceStorageType","status","tags","type","usage"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:edas/K8sSlbAttachmentSlbConfig:K8sSlbAttachmentSlbConfig":{"properties":{"name":{"type":"string","description":"The name of this SLB configuration, empty for auto-generated by EDAS server.\n"},"portMappings":{"type":"array","items":{"$ref":"#/types/alicloud:edas/K8sSlbAttachmentSlbConfigPortMapping:K8sSlbAttachmentSlbConfigPortMapping"},"description":"The port configuration for SLB instance, which is supported for multiple configurations. See \u003cspan pulumi-lang-nodejs=\"`portMappings`\" pulumi-lang-dotnet=\"`PortMappings`\" pulumi-lang-go=\"`portMappings`\" pulumi-lang-python=\"`port_mappings`\" pulumi-lang-yaml=\"`portMappings`\" pulumi-lang-java=\"`portMappings`\"\u003e`port_mappings`\u003c/span\u003e below.\n"},"scheduler":{"type":"string","description":"The scheduler policy of SLB configuration, values can be 'rr'(round-robin) or 'wrr'(weighted round-robin).\n"},"slbId":{"type":"string","description":"The ID of your SLB instance, if value is empty which means EDAS will purchase an SLB instance with 'specification' field.\n"},"specification":{"type":"string","description":"The instance specification of SLB, values can be found [here](https://www.alibabacloud.com/help/en/server-load-balancer/latest/createloadbalancer-2#t4182.html), empty for 'slb.s1.small'.\n"},"type":{"type":"string","description":"The type of SLB instance, values can be 'internet' or 'intranet'.\n"}},"type":"object","required":["portMappings","scheduler","type"],"language":{"nodejs":{"requiredOutputs":["name","portMappings","scheduler","slbId","type"]}}},"alicloud:edas/K8sSlbAttachmentSlbConfigPortMapping:K8sSlbAttachmentSlbConfigPortMapping":{"properties":{"certId":{"type":"string","description":"The ID of your tls certification, this is used for 'HTTPS' protocol only.\n"},"loadbalancerProtocol":{"type":"string","description":"The protocol of SLB instance configuration, values can be 'TCP', 'HTTP' or 'HTTPS'.\n"},"servicePort":{"$ref":"#/types/alicloud:edas/K8sSlbAttachmentSlbConfigPortMappingServicePort:K8sSlbAttachmentSlbConfigPortMappingServicePort","description":"The backend k8s service configuration for SLB instance, which is supported for multiple configurations. See \u003cspan pulumi-lang-nodejs=\"`servicePort`\" pulumi-lang-dotnet=\"`ServicePort`\" pulumi-lang-go=\"`servicePort`\" pulumi-lang-python=\"`service_port`\" pulumi-lang-yaml=\"`servicePort`\" pulumi-lang-java=\"`servicePort`\"\u003e`service_port`\u003c/span\u003e below.\n"}},"type":"object","required":["loadbalancerProtocol","servicePort"]},"alicloud:edas/K8sSlbAttachmentSlbConfigPortMappingServicePort:K8sSlbAttachmentSlbConfigPortMappingServicePort":{"properties":{"port":{"type":"integer","description":"The port of k8s service, values should be within range [1, 65535].\n"},"protocol":{"type":"string","description":"The protocol of k8s service, values can be 'TCP' or 'UDP'.\n"},"targetPort":{"type":"integer","description":"The port of k8s pod, values should be within range [1, 65535].\n"}},"type":"object","required":["port","protocol","targetPort"]},"alicloud:edas/getApplicationsApplication:getApplicationsApplication":{"properties":{"appId":{"type":"string","description":"The ID of the application that you want to deploy.\n"},"appName":{"type":"string","description":"The name of your EDAS application. Only letters '-' '_' and numbers are allowed. The length cannot exceed 36 characters.\n"},"applicationType":{"type":"string","description":"The type of the package for the deployment of the application that you want to create. The valid values are: WAR and JAR. We strongly recommend you to set this parameter when creating the application.\n"},"buildPackageId":{"type":"integer","description":"The package ID of Enterprise Distributed Application Service (EDAS) Container.\n"},"clusterId":{"type":"string","description":"The ID of the cluster that you want to create the application.\n"},"clusterType":{"type":"integer","description":"The type of the cluster that you want to create. Valid values: 1: Swarm cluster. 2: ECS cluster. 3: Kubernetes cluster.\n"},"regionId":{"type":"string","description":"The ID of the namespace the application belongs to.\n"}},"type":"object","required":["appId","appName","applicationType","buildPackageId","clusterId","clusterType","regionId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:edas/getClustersCluster:getClustersCluster":{"properties":{"clusterId":{"type":"string","description":"The ID of the cluster that you want to create the application.\n"},"clusterName":{"type":"string","description":"The name of the cluster.\n"},"clusterType":{"type":"integer","description":"The type of the cluster, Valid values: 1: Swarm cluster. 2: ECS cluster. 3: Kubernetes cluster.\n"},"cpu":{"type":"integer","description":"The total number of CPUs in the cluster.\n"},"cpuUsed":{"type":"integer","description":"The number of used CPUs in the cluster.\n"},"createTime":{"type":"integer","description":"Cluster's creation time.\n"},"mem":{"type":"integer","description":"The total amount of memory in the cluser. Unit: MB.\n"},"memUsed":{"type":"integer","description":"The amount of used memory in the cluser. Unit: MB.\n"},"networkMode":{"type":"integer","description":"The network type of the cluster. Valid values: 1: classic network. 2: VPC.\n"},"nodeNum":{"type":"integer","description":"The number of the Elastic Compute Service (ECS) instances that are deployed to the cluster.\n"},"regionId":{"type":"string","description":"The ID of the namespace the application belongs to.\n"},"updateTime":{"type":"integer","description":"The time when the cluster was last updated.\n"},"vpcId":{"type":"string","description":"The ID of the Virtual Private Cloud (VPC) for the cluster.\n"}},"type":"object","required":["clusterId","clusterName","clusterType","cpu","cpuUsed","createTime","mem","memUsed","networkMode","nodeNum","regionId","updateTime","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:edas/getDeployGroupsGroup:getDeployGroupsGroup":{"properties":{"appId":{"type":"string","description":"ID of the EDAS application.\n"},"appVersionId":{"type":"string","description":"The version of the deployment package for the application.\n"},"clusterId":{"type":"string","description":"The ID of the cluster that you want to create the application.\n"},"createTime":{"type":"integer","description":"The time when the instance group was created.\n"},"groupId":{"type":"string","description":"The ID of the instance group.\n"},"groupName":{"type":"string","description":"The name of the instance group. The length cannot exceed 64 characters.\n"},"groupType":{"type":"integer","description":"The type of the instance group. Valid values: 0: Default group. 1: Phased release is disabled for traffic management. 2: Phased release is enabled for traffic management.\n"},"packageVersionId":{"type":"string","description":"The version of the deployment package for the instance group that was created.\n"},"updateTime":{"type":"integer","description":"The time when the instance group was updated.\n"}},"type":"object","required":["appId","appVersionId","clusterId","createTime","groupId","groupName","groupType","packageVersionId","updateTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:edas/getNamespacesNamespace:getNamespacesNamespace":{"properties":{"belongRegion":{"type":"string","description":"The ID of the physical region to which the namespace belongs.\n"},"debugEnable":{"type":"boolean","description":"Indicates whether remote debugging is allowed in this region.\n"},"description":{"type":"string","description":"The description of the namespace.\n"},"id":{"type":"string","description":"The ID of the resource.\n"},"namespaceId":{"type":"string","description":"The unique ID of the namespace generated by Enterprise Distributed Application Service (EDAS).\n"},"namespaceLogicalId":{"type":"string","description":"The ID of the namespace. **Note:** The ID cannot be changed after the namespace is created. The ID is in the format of `Physical region ID:Logical region identifier`.\n"},"namespaceName":{"type":"string","description":"The name of the namespace.\n"},"userId":{"type":"string","description":"The ID of the Alibaba Cloud account to which the namespace belongs.\n"}},"type":"object","required":["belongRegion","debugEnable","description","id","namespaceId","namespaceLogicalId","namespaceName","userId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/CustomPropertyPropertyValue:CustomPropertyPropertyValue":{"properties":{"propertyValue":{"type":"string","description":"The value of an attribute.\n"},"propertyValueId":{"type":"string","description":"The value of an attribute id.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["propertyValueId"]}}},"alicloud:eds/EcdPolicyGroupAuthorizeAccessPolicyRule:EcdPolicyGroupAuthorizeAccessPolicyRule":{"properties":{"cidrIp":{"type":"string","description":"The cidrip of authorize access rule.\n"},"description":{"type":"string","description":"The description of authorize access rule.\n"}},"type":"object"},"alicloud:eds/EcdPolicyGroupAuthorizeSecurityPolicyRule:EcdPolicyGroupAuthorizeSecurityPolicyRule":{"properties":{"cidrIp":{"type":"string","description":"The cidrip of security rules.\n"},"description":{"type":"string","description":"The description of security rules.\n"},"ipProtocol":{"type":"string","description":"The ip protocol of security rules.\n"},"policy":{"type":"string","description":"The policy of security rules.\n"},"portRange":{"type":"string","description":"The port range of security rules.\n"},"priority":{"type":"string","description":"The priority of security rules.\n"},"type":{"type":"string","description":"The type of security rules.\n"}},"type":"object"},"alicloud:eds/getAdConnectorDirectoriesDirectory:getAdConnectorDirectoriesDirectory":{"properties":{"adConnectorDirectoryId":{"type":"string","description":"The ID of the ad connector directory.\n"},"adConnectors":{"type":"array","items":{"$ref":"#/types/alicloud:eds/getAdConnectorDirectoriesDirectoryAdConnector:getAdConnectorDirectoriesDirectoryAdConnector"},"description":"The AD connectors.\n"},"createTime":{"type":"string","description":"The CreateTime of resource.\n"},"customSecurityGroupId":{"type":"string","description":"The ID of the security group.\n"},"directoryName":{"type":"string","description":"The name of directory.\n"},"directoryType":{"type":"string","description":"The name of the domain.\n"},"dnsAddresses":{"type":"array","items":{"type":"string"},"description":"The address of DNSAddress.\n"},"dnsUserName":{"type":"string","description":"The username of DNS.\n"},"domainName":{"type":"string","description":"The name of the domain.\n"},"domainUserName":{"type":"string","description":"domain admin user name.\n"},"enableAdminAccess":{"type":"boolean","description":"Whether to grant local administrator rights to users who use cloud desktops.\n"},"id":{"type":"string","description":"The ID of the Ad Connector Directory.\n"},"mfaEnabled":{"type":"boolean","description":"Whether MFA authentication is enabled. After all AD users in this directory log on to the cloud desktop, enter the correct password and then enter the dynamic verification code generated by the MFA device.\n"},"status":{"type":"string","description":"The status of directory.\n"},"subDnsAddresses":{"type":"array","items":{"type":"string"},"description":"The Enterprise already has the DNS address of the AD subdomain.\n"},"subDomainName":{"type":"string","description":"The Enterprise already has a fully qualified domain name (FQDN) of an AD subdomain, with both a host name and a domain name.\n"},"trustPassword":{"type":"string","description":"The trust password.\n"},"vpcId":{"type":"string","description":"The ID of the vpc.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"List of vSwitch IDs in the directory.\n"}},"type":"object","required":["adConnectorDirectoryId","adConnectors","createTime","customSecurityGroupId","directoryName","directoryType","dnsAddresses","dnsUserName","domainName","domainUserName","enableAdminAccess","id","mfaEnabled","status","subDnsAddresses","subDomainName","trustPassword","vpcId","vswitchIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getAdConnectorDirectoriesDirectoryAdConnector:getAdConnectorDirectoriesDirectoryAdConnector":{"properties":{"adConnectorAddress":{"type":"string","description":"The address of AD connector.\n"},"connectorStatus":{"type":"string","description":"The status of connector.\n"},"networkInterfaceId":{"type":"string","description":"The ID of the network interface.\n"},"specification":{"type":"string","description":"The AD Connector specifications.\n"},"trustKey":{"type":"string","description":"The AD Connector control trust password.\n"},"vswitchId":{"type":"string","description":"The ID of vSwitch.\n"}},"type":"object","required":["adConnectorAddress","connectorStatus","networkInterfaceId","specification","trustKey","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getAdConnectorOfficeSitesSite:getAdConnectorOfficeSitesSite":{"properties":{"adConnectorOfficeSiteName":{"type":"string","description":"The Name of the ad connector office site.\n"},"adConnectors":{"type":"array","items":{"$ref":"#/types/alicloud:eds/getAdConnectorOfficeSitesSiteAdConnector:getAdConnectorOfficeSitesSiteAdConnector"},"description":"AD Connector Collection of Information.\n"},"bandwidth":{"type":"integer","description":"The Internet Bandwidth Peak. Possible Values: 0~200. If This Field Is Set to 0, Indicates That There Is No Open Internet Access.\n"},"cenId":{"type":"string","description":"Cloud Enterprise Network Instance Id.\n"},"cidrBlock":{"type":"string","description":"Workspace Corresponds to the Security Office Network of IPv4 Segment.\n"},"createTime":{"type":"string","description":"Workspace Creation Time.\n"},"customSecurityGroupId":{"type":"string","description":"Security Group ID.\n"},"desktopAccessType":{"type":"string","description":"The method that is used to connect the client to cloud desktops.\n"},"desktopVpcEndpoint":{"type":"string","description":"The endpoint that is used to connect to cloud desktops over a VPC.\n"},"dnsAddresses":{"type":"array","items":{"type":"string"},"description":"Enterprise Ad Corresponding DNS Address.\n"},"dnsUserName":{"type":"string","description":"The Easy-to-Use DNS Name.\n"},"domainName":{"type":"string","description":"Enterprise of Ad Domain Name.\n"},"domainUserName":{"type":"string","description":"The Domain Administrator's Username.\n"},"enableAdminAccess":{"type":"boolean","description":"Whether to Use Cloud Desktop User Empowerment of Local Administrator Permissions.\n"},"enableCrossDesktopAccess":{"type":"boolean","description":"Indicates whether the desktop communication feature is enabled for cloud desktops in the same workspace. After the feature is enabled, the cloud desktops in the same workspace can access each other.\n"},"enableInternetAccess":{"type":"boolean","description":"Whether the Open Internet Access Function.\n"},"fileSystemIds":{"type":"array","items":{"type":"string"},"description":"NAS File System ID.\n"},"id":{"type":"string","description":"The ID of the Ad Connector Office Site.\n"},"logs":{"type":"array","items":{"$ref":"#/types/alicloud:eds/getAdConnectorOfficeSitesSiteLog:getAdConnectorOfficeSitesSiteLog"},"description":"Registered Log Information.\n"},"mfaEnabled":{"type":"boolean","description":"Whether to Enable Multi-Factor Authentication MFA.\n"},"networkPackageId":{"type":"string","description":"The ID of the Internet Access.\n"},"officeSiteId":{"type":"string","description":"The ID of the Workspace.\n"},"officeSiteType":{"type":"string","description":"Workspace Account System Type. Possible Values: Simple: Convenient Account. AD_CONNECTOR: Enterprise Ad Account.\n"},"ssoEnabled":{"type":"boolean","description":"Whether to Enable Single Sign-on (SSO) for User-Based SSO.\n"},"status":{"type":"string","description":"The workspace status.\n"},"subDomainDnsAddresses":{"type":"array","items":{"type":"string"},"description":"Sub-Domain DNS Address.\n"},"subDomainName":{"type":"string","description":"The AD Domain DNS Name.\n"},"trustPassword":{"type":"string","description":"The AD Trust Password.\n"},"vpcId":{"type":"string","description":"Security Office VPC ID.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vswitch ids.\n"}},"type":"object","required":["adConnectorOfficeSiteName","adConnectors","bandwidth","cenId","cidrBlock","createTime","customSecurityGroupId","desktopAccessType","desktopVpcEndpoint","dnsAddresses","dnsUserName","domainName","domainUserName","enableAdminAccess","enableCrossDesktopAccess","enableInternetAccess","fileSystemIds","id","logs","mfaEnabled","networkPackageId","officeSiteId","officeSiteType","ssoEnabled","status","subDomainDnsAddresses","subDomainName","trustPassword","vpcId","vswitchIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getAdConnectorOfficeSitesSiteAdConnector:getAdConnectorOfficeSitesSiteAdConnector":{"properties":{"adConnectorAddress":{"type":"string","description":"AD Connector across Zones, Its Connection Addresses.\n"},"connectorStatus":{"type":"string","description":"AD Connector of the State. Possible Values: Creating: in the Creation of. Connecting: Connection. Requires the User to Your Own Ad Configured on the Domain to Which. Running: Run. Expired: If You Are out-of-Date. CONNECT_ERROR: Connection Error.\n"},"networkInterfaceId":{"type":"string","description":"AD Connector Mount of the Card ID.\n"},"vswitchId":{"type":"string","description":"AD Connector in the Network Corresponding to the ID of the vSwitch in.\n"}},"type":"object","required":["adConnectorAddress","connectorStatus","networkInterfaceId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getAdConnectorOfficeSitesSiteLog:getAdConnectorOfficeSitesSiteLog":{"properties":{"level":{"type":"string","description":"Log Level. Possible Values: Info: Information Error: Error Warn: Warning.\n"},"message":{"type":"string","description":"The Log Details.\n"},"step":{"type":"string","description":"Log Information Corresponding to the Step.\n"},"timeStamp":{"type":"string","description":"Log Print Time.\n"}},"type":"object","required":["level","message","step","timeStamp"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getBundlesBundle:getBundlesBundle":{"properties":{"bundleId":{"type":"string","description":"The bundle id of the bundle.\n"},"bundleName":{"type":"string","description":"The name of the bundle.\n"},"bundleType":{"type":"string","description":"The bundle type of  the bundle. Valid values: `SYSTEM`,`CUSTOM`.\n"},"description":{"type":"string","description":"The description of the bundle.\n"},"desktopType":{"type":"string","description":"The desktop type of the bundle.\n"},"desktopTypeAttributes":{"type":"array","items":{"$ref":"#/types/alicloud:eds/getBundlesBundleDesktopTypeAttribute:getBundlesBundleDesktopTypeAttribute"},"description":"The desktop type attribute of the bundle.\n"},"disks":{"type":"array","items":{"$ref":"#/types/alicloud:eds/getBundlesBundleDisk:getBundlesBundleDisk"},"description":"The disks of the bundle.\n"},"id":{"type":"string","description":"The ID of the bundle.\n"},"imageId":{"type":"string","description":"The image id attribute of the bundle.\n"},"osType":{"type":"string","description":"The os type attribute of the bundle.\n"}},"type":"object","required":["bundleId","bundleName","bundleType","description","desktopType","desktopTypeAttributes","disks","id","imageId","osType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getBundlesBundleDesktopTypeAttribute:getBundlesBundleDesktopTypeAttribute":{"properties":{"cpuCount":{"type":"integer","description":"The cpu count attribute of the bundle.\n"},"gpuCount":{"type":"string","description":"The gpu count attribute of the bundle.\n"},"gpuSpec":{"type":"string","description":"The gpu spec attribute of the bundle.\n"},"memorySize":{"type":"string","description":"The memory size attribute of the bundle.\n"}},"type":"object","required":["cpuCount","gpuCount","gpuSpec","memorySize"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getBundlesBundleDisk:getBundlesBundleDisk":{"properties":{"diskSize":{"type":"string","description":"The disk size attribute of the bundle.\n"},"diskType":{"type":"string","description":"The disk type attribute of the bundle.\n"}},"type":"object","required":["diskSize","diskType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getCommandsCommand:getCommandsCommand":{"properties":{"commandContent":{"type":"string","description":"The Contents of the Script to Base64 Encoded Transmission.\n"},"commandType":{"type":"string","description":"The Script Type. Valid values: `RunBatScript`, `RunPowerShellScript`.\n"},"createTime":{"type":"string","description":"The Task of Creation Time.\n"},"id":{"type":"string","description":"The ID of the Command.\n"},"invokeDesktops":{"type":"array","items":{"$ref":"#/types/alicloud:eds/getCommandsCommandInvokeDesktop:getCommandsCommandInvokeDesktop"},"description":"The Implementation of the Target Cloud Desktop Collection.\n"},"invokeId":{"type":"string","description":"The invoke id of the Command.\n"},"status":{"type":"string","description":"Script Is Executed in the Overall Implementation of the State. Valid values: `Pending`, `Failed`, `PartialFailed`, `Running`, `Stopped`, `Stopping`, `Finished`, `Success`.\n"}},"type":"object","required":["commandContent","commandType","createTime","id","invokeDesktops","invokeId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getCommandsCommandInvokeDesktop:getCommandsCommandInvokeDesktop":{"properties":{"desktopId":{"type":"string","description":"The desktop id of the Desktop.\n"},"dropped":{"type":"integer","description":"Output Field Text Length Exceeds 24 KB of Truncated Discarded Text Length.\n"},"errorCode":{"type":"string","description":"Command of the Failure Or Perform the Reason for the Failure of the Code.\n"},"errorInfo":{"type":"string","description":"Command of the Failure Or Perform the Reason for the Failure of the Details.\n"},"exitCode":{"type":"string","description":"Command of the Failure Or Perform the Reason for the Failure of the Details.\n"},"finishTime":{"type":"string","description":"The Script Process until the End of Time.\n"},"invocationStatus":{"type":"string","description":"A Single Cloud Desktop Script Progress Status.\n"},"output":{"type":"string","description":"Script the Output of the Process.\n"},"repeats":{"type":"integer","description":"Command in the Desktop Implementation.\n"},"startTime":{"type":"string","description":"The Script Process on the Desktop, in the Start Timing of the Execution.\n"},"stopTime":{"type":"string","description":"If You Use the invocation Indicates That the Call of the Time.\n"}},"type":"object","required":["desktopId","dropped","errorCode","errorInfo","exitCode","finishTime","invocationStatus","output","repeats","startTime","stopTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getCustomPropertiesProperty:getCustomPropertiesProperty":{"properties":{"customPropertyId":{"type":"string","description":"The first ID of the resource.\n"},"id":{"type":"string","description":"The ID of the Custom Property.\n"},"propertyKey":{"type":"string","description":"The Custom attribute key.\n"},"propertyValues":{"type":"array","items":{"$ref":"#/types/alicloud:eds/getCustomPropertiesPropertyPropertyValue:getCustomPropertiesPropertyPropertyValue"},"description":"Custom attribute sets the value of.\n"}},"type":"object","required":["customPropertyId","id","propertyKey","propertyValues"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getCustomPropertiesPropertyPropertyValue:getCustomPropertiesPropertyPropertyValue":{"properties":{"propertyValue":{"type":"string","description":"The value of an attribute.\n"},"propertyValueId":{"type":"string","description":"The value of an attribute id.\n"}},"type":"object","required":["propertyValue","propertyValueId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getDesktopTypesType:getDesktopTypesType":{"properties":{"cpuCount":{"type":"string","description":"The CPU cores.\n"},"dataDiskSize":{"type":"string","description":"The size of the data disk. Unit: GiB.\n"},"desktopTypeId":{"type":"string","description":"Specification ID.\n"},"gpuCount":{"type":"number","description":"The GPU cores.\n"},"gpuSpec":{"type":"string","description":"The GPU video memory.\n"},"id":{"type":"string","description":"The ID of the Desktop Type.\n"},"instanceTypeFamily":{"type":"string","description":"The Specification family.\n"},"memorySize":{"type":"string","description":"The Memory size. Unit: MiB.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"systemDiskSize":{"type":"string","description":"The size of the system disk. Unit: GiB.\n"}},"type":"object","required":["cpuCount","dataDiskSize","desktopTypeId","gpuCount","gpuSpec","id","instanceTypeFamily","memorySize","status","systemDiskSize"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getDesktopsDesktop:getDesktopsDesktop":{"properties":{"cpu":{"type":"integer","description":"The number of CPUs.\n"},"createTime":{"type":"string","description":"The creation time of the Desktop.\n"},"desktopId":{"type":"string","description":"The desktop id of the Desktop.\n"},"desktopName":{"type":"string","description":"The desktop name of the Desktop.\n"},"desktopType":{"type":"string","description":"The desktop type of the Desktop.\n"},"directoryId":{"type":"string","description":"The directory id of the Desktop.\n"},"endUserIds":{"type":"array","items":{"type":"string"},"description":"The desktop end user id of the Desktop.\n"},"expiredTime":{"type":"string","description":"The expired time of the Desktop.\n"},"id":{"type":"string","description":"The ID of the Desktop.\n"},"imageId":{"type":"string","description":"The image id of the Desktop.\n"},"memory":{"type":"string","description":"The memory of the Desktop.\n"},"networkInterfaceId":{"type":"string","description":"The network interface id of the Desktop.\n"},"paymentType":{"type":"string","description":"The payment type of the Desktop.\n"},"policyGroupId":{"type":"string","description":"The policy group id of the Desktop.\n"},"status":{"type":"string","description":"The status of the Desktop. Valid values: `Deleted`, `Expired`, `Pending`, `Running`, `Starting`, `Stopped`, `Stopping`.\n"},"systemDiskSize":{"type":"integer","description":"The system disk size of the Desktop.\n"}},"type":"object","required":["cpu","createTime","desktopId","desktopName","desktopType","directoryId","endUserIds","expiredTime","id","imageId","memory","networkInterfaceId","paymentType","policyGroupId","status","systemDiskSize"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getImagesImage:getImagesImage":{"properties":{"createTime":{"type":"string","description":"The creation time of the image.\n"},"dataDiskSize":{"type":"integer","description":"The size of data disk of the image.\n"},"description":{"type":"string","description":"The description of the image.\n"},"gpuCategory":{"type":"boolean","description":"The Gpu Category of the image.\n"},"id":{"type":"string","description":"The ID of the Image.\n"},"imageId":{"type":"string","description":"The image id of the image.\n"},"imageName":{"type":"string","description":"The image name.\n"},"imageType":{"type":"string","description":"The image type of the image. Valid values: `SYSTEM`, `CUSTOM`.\n"},"osType":{"type":"string","description":"The os type of the image.\n"},"progress":{"type":"string","description":"The progress of the image.\n"},"size":{"type":"integer","description":"The size of the image.\n"},"status":{"type":"string","description":"The status of the image. Valid values: `Creating`, `Available`, `CreateFailed`.\n"}},"type":"object","required":["createTime","dataDiskSize","description","gpuCategory","id","imageId","imageName","imageType","osType","progress","size","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getNasFileSystemsSystem:getNasFileSystemsSystem":{"properties":{"capacity":{"type":"string","description":"The capacity of nas file system.\n"},"createTime":{"type":"string","description":"The create time of nas file system.\n"},"description":{"type":"string","description":"The description of nas file system.\n"},"fileSystemId":{"type":"string","description":"The filesystem id of nas file system.\n"},"fileSystemType":{"type":"string","description":"The type of nas file system.\n"},"id":{"type":"string","description":"The ID of the Nas File System.\n"},"meteredSize":{"type":"string","description":"The size of metered.\n"},"mountTargetDomain":{"type":"string","description":"The domain of mount target.\n"},"mountTargetStatus":{"type":"string","description":"The status of mount target. Valid values: `Pending`, `Active`, `Inactive`,`Deleting`,`Invalid`.\n"},"nasFileSystemName":{"type":"string","description":"The name of nas file system.\n"},"officeSiteId":{"type":"string","description":"The ID of office site.\n"},"officeSiteName":{"type":"string","description":"The name of office site.\n"},"status":{"type":"string","description":"The status of nas file system. Valid values: `Pending`, `Running`, `Stopped`,`Deleting`, `Deleted`, `Invalid`.\n"},"storageType":{"type":"string","description":"The storage type of nas file system.\n"},"supportAcl":{"type":"boolean","description":"Whether to support Acl.\n"},"zoneId":{"type":"string","description":"The zone id of nas file system.\n"}},"type":"object","required":["capacity","createTime","description","fileSystemId","fileSystemType","id","meteredSize","mountTargetDomain","mountTargetStatus","nasFileSystemName","officeSiteId","officeSiteName","status","storageType","supportAcl","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getNetworkPackagesPackage:getNetworkPackagesPackage":{"properties":{"bandwidth":{"type":"integer","description":"The bandwidth of package.\n"},"createTime":{"type":"string","description":"The creation time of network package.\n"},"eipAddresses":{"type":"array","items":{"type":"string"},"description":"The public IP address list of the network packet.\n"},"expiredTime":{"type":"string","description":"The expired time of package.\n"},"id":{"type":"string","description":"The ID of the Network Package.\n"},"internetChargeType":{"type":"string","description":"The internet charge type  of  package.\n"},"networkPackageId":{"type":"string","description":"The ID of network package.\n"},"officeSiteId":{"type":"string","description":"The ID of office site.\n"},"officeSiteName":{"type":"string","description":"The name of office site.\n"},"status":{"type":"string","description":"The status of network package. Valid values: `Creating`, `InUse`, `Releasing`,`Released`.\n"}},"type":"object","required":["bandwidth","createTime","eipAddresses","expiredTime","id","internetChargeType","networkPackageId","officeSiteId","officeSiteName","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getPolicyGroupsGroup:getPolicyGroupsGroup":{"properties":{"authorizeAccessPolicyRules":{"type":"array","items":{"$ref":"#/types/alicloud:eds/getPolicyGroupsGroupAuthorizeAccessPolicyRule:getPolicyGroupsGroupAuthorizeAccessPolicyRule"},"description":"The rule of authorize access rule.\n"},"authorizeSecurityPolicyRules":{"type":"array","items":{"$ref":"#/types/alicloud:eds/getPolicyGroupsGroupAuthorizeSecurityPolicyRule:getPolicyGroupsGroupAuthorizeSecurityPolicyRule"},"description":"The policy rule.\n"},"cameraRedirect":{"type":"string","description":"Whether to enable local camera redirection. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"clipboard":{"type":"string","description":"The clipboard policy.\n"},"domainList":{"type":"string","description":"The list of domain.\n"},"edsCount":{"type":"integer","description":"The count of eds.\n"},"htmlAccess":{"type":"string","description":"The access of html5.\n"},"htmlFileTransfer":{"type":"string","description":"The html5 file transfer.\n"},"id":{"type":"string","description":"The ID of the Policy Group.\n"},"localDrive":{"type":"string","description":"Local drive redirect policy.\n"},"policyGroupId":{"type":"string","description":"The policy group id.\n"},"policyGroupName":{"type":"string","description":"The name of policy group.\n"},"policyGroupType":{"type":"string","description":"The type of policy group.\n"},"recording":{"type":"string","description":"Whether to enable screen recording. Valid values: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alltime`\" pulumi-lang-dotnet=\"`Alltime`\" pulumi-lang-go=\"`alltime`\" pulumi-lang-python=\"`alltime`\" pulumi-lang-yaml=\"`alltime`\" pulumi-lang-java=\"`alltime`\"\u003e`alltime`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"},"recordingEndTime":{"type":"string","description":"The end time of recording.\n"},"recordingFps":{"type":"integer","description":"The fps of recording. Valid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e.\n"},"recordingStartTime":{"type":"string","description":"The start time of recording.\n"},"status":{"type":"string","description":"The status of policy.\n"},"usbRedirect":{"type":"string","description":"The usb redirect policy.\n"},"visualQuality":{"type":"string","description":"The quality of visual.sae_ecdsae_nameecd_po\n"},"watermark":{"type":"string","description":"The watermark policy.\n"},"watermarkTransparency":{"type":"string","description":"The watermark transparency.\n"},"watermarkType":{"type":"string","description":"The type of watemark.\n"}},"type":"object","required":["authorizeAccessPolicyRules","authorizeSecurityPolicyRules","cameraRedirect","clipboard","domainList","edsCount","htmlAccess","htmlFileTransfer","id","localDrive","policyGroupId","policyGroupName","policyGroupType","recording","recordingEndTime","recordingFps","recordingStartTime","status","usbRedirect","visualQuality","watermark","watermarkTransparency","watermarkType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getPolicyGroupsGroupAuthorizeAccessPolicyRule:getPolicyGroupsGroupAuthorizeAccessPolicyRule":{"properties":{"cidrIp":{"type":"string","description":"The cidrip of authorize access rule..\n"},"description":{"type":"string","description":"The description of authorize access rule.\n"}},"type":"object","required":["cidrIp","description"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getPolicyGroupsGroupAuthorizeSecurityPolicyRule:getPolicyGroupsGroupAuthorizeSecurityPolicyRule":{"properties":{"cidrIp":{"type":"string","description":"The cidrip of security rules.\n"},"description":{"type":"string","description":"The description of security rules.\n"},"ipProtocol":{"type":"string","description":"The ip protocol of security rules.\n"},"policy":{"type":"string","description":"The policy of security rules.\n"},"portRange":{"type":"string","description":"The port range of security rules.\n"},"priority":{"type":"string","description":"The priority of security rules.\n"},"type":{"type":"string","description":"The type of security rules.\n"}},"type":"object","required":["cidrIp","description","ipProtocol","policy","portRange","priority","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getRamDirectoriesDirectory:getRamDirectoriesDirectory":{"properties":{"adConnectors":{"type":"array","items":{"$ref":"#/types/alicloud:eds/getRamDirectoriesDirectoryAdConnector:getRamDirectoriesDirectoryAdConnector"},"description":"The AD connectors.\n"},"createTime":{"type":"string","description":"The CreateTime of resource.\n"},"customSecurityGroupId":{"type":"string","description":"The id of the custom security group.\n"},"desktopAccessType":{"type":"string","description":"The desktop access type.\n"},"desktopVpcEndpoint":{"type":"string","description":"The desktop vpc endpoint.\n"},"directoryType":{"type":"string","description":"The directory type.\n"},"dnsAddresses":{"type":"array","items":{"type":"string"},"description":"The address of DNSAddress.\n"},"dnsUserName":{"type":"string","description":"The username of DNS.\n"},"domainName":{"type":"string","description":"The name of the domain.\n"},"domainPassword":{"type":"string","description":"The domain password.\n"},"domainUserName":{"type":"string","description":"The username of the domain.\n"},"enableAdminAccess":{"type":"boolean","description":"Whether to enable admin access.\n"},"enableCrossDesktopAccess":{"type":"boolean","description":"Whether to enable cross desktop access.\n"},"enableInternetAccess":{"type":"boolean","description":"Whether enable internet access.\n"},"fileSystemIds":{"type":"array","items":{"type":"string"},"description":"The ids of filesystem.\n"},"id":{"type":"string","description":"The ID of the Ram Directory.\n"},"logs":{"type":"array","items":{"$ref":"#/types/alicloud:eds/getRamDirectoriesDirectoryLog:getRamDirectoriesDirectoryLog"},"description":"The register log information.\n"},"mfaEnabled":{"type":"boolean","description":"Whether to enable MFA.\n"},"ramDirectoryId":{"type":"string","description":"The ID of ram directory.\n"},"ramDirectoryName":{"type":"string","description":"The name of directory.\n"},"ssoEnabled":{"type":"boolean","description":"Whether to enable SSO.\n"},"status":{"type":"string","description":"The status of directory.\n"},"subDnsAddresses":{"type":"array","items":{"type":"string"},"description":"The address of sub DNS.\n"},"subDomainName":{"type":"string","description":"The Name of the sub-domain.\n"},"trustPassword":{"type":"string","description":"The trust password.\n"},"vpcId":{"type":"string","description":"The ID of the vpc.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"List of vSwitch IDs in the directory.\n"}},"type":"object","required":["adConnectors","createTime","customSecurityGroupId","desktopAccessType","desktopVpcEndpoint","directoryType","dnsAddresses","dnsUserName","domainName","domainPassword","domainUserName","enableAdminAccess","enableCrossDesktopAccess","enableInternetAccess","fileSystemIds","id","logs","mfaEnabled","ramDirectoryId","ramDirectoryName","ssoEnabled","status","subDnsAddresses","subDomainName","trustPassword","vpcId","vswitchIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getRamDirectoriesDirectoryAdConnector:getRamDirectoriesDirectoryAdConnector":{"properties":{"adConnectorAddress":{"type":"string","description":"The address of AD connector.\n"},"connectorStatus":{"type":"string","description":"The status of connector.\n"},"networkInterfaceId":{"type":"string","description":"The ID of the network interface.\n"},"vswitchId":{"type":"string","description":"The ID of vSwitch.\n"}},"type":"object","required":["adConnectorAddress","connectorStatus","networkInterfaceId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getRamDirectoriesDirectoryLog:getRamDirectoriesDirectoryLog":{"properties":{"level":{"type":"string","description":"The level of log.\n"},"message":{"type":"string","description":"The message of log.\n"},"step":{"type":"string","description":"The step of log.\n"},"timeStamp":{"type":"string","description":"The time stamp of log.\n"}},"type":"object","required":["level","message","step","timeStamp"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getSimpleOfficeSitesSite:getSimpleOfficeSitesSite":{"properties":{"bandwidth":{"type":"integer","description":"The Internet Bandwidth Peak. It has been deprecated from version 1.142.0 and can be found in the new datasource alicloud_ecd_network_packages.\n","deprecationMessage":"Field 'bandwidth' has been deprecated from provider version 1.142.0."},"cenId":{"type":"string","description":"Cloud Enterprise Network Instance Id.\n"},"cidrBlock":{"type":"string","description":"Workspace Corresponds to the Security Office Network of IPv4 Segment.\n"},"createTime":{"type":"string","description":"Workspace Creation Time.\n"},"customSecurityGroupId":{"type":"string","description":"Security Group ID.\n"},"desktopAccessType":{"type":"string","description":"Connect to the Cloud Desktop Allows the Use of the Access Mode of. Possible Values: the Internet: Only Allows the Client to Public Cloud Desktop. Virtual Private Cloud (VPC): Only Allows in the Virtual Private Cloud (VPC) in the Client to Connect to the Cloud Desktop. Any: Not by Way of Limitation. Use Client to Connect to the Cloud Desktop When It Is Possible to Choose the Connection.\n"},"desktopVpcEndpoint":{"type":"string","description":"The Desktop Vpc Endpoint.\n"},"dnsAddresses":{"type":"array","items":{"type":"string"},"description":"Enterprise Ad Corresponding DNS Address.\n"},"dnsUserName":{"type":"string","description":"Easy-to-Use DNS Name.\n"},"domainName":{"type":"string","description":"Enterprise of Ad Domain Name.\n"},"domainPassword":{"type":"string","description":"Domain of the User Who Will Administer This Target Application Password.\n"},"domainUserName":{"type":"string","description":"The Domain Administrator's Username.\n"},"enableAdminAccess":{"type":"boolean","description":"Whether to Use Cloud Desktop User Empowerment of Local Administrator Permissions.\n"},"enableCrossDesktopAccess":{"type":"boolean","description":"Enable Cross-Desktop Access.\n"},"enableInternetAccess":{"type":"boolean","description":"Whether the Open Internet Access Function.\n","deprecationMessage":"Field 'enable_internet_access' has been deprecated from provider version 1.142.0."},"fileSystemIds":{"type":"array","items":{"type":"string"},"description":"NAS File System ID.\n"},"id":{"type":"string","description":"The ID of the Simple Office Site.\n"},"mfaEnabled":{"type":"boolean","description":"Whether to Enable Multi-Factor Authentication MFA.\n"},"networkPackageId":{"type":"string","description":"Internet Access ID.\n"},"officeSiteId":{"type":"string","description":"The Workspace ID.\n"},"officeSiteType":{"type":"string","description":"Workspace Account System Type. Possible Values: Simple: Convenient Account. AD_CONNECTOR: Enterprise Ad Account.\n"},"simpleOfficeSiteName":{"type":"string","description":"The simple office site name.\n"},"ssoEnabled":{"type":"boolean","description":"Whether to Enable Single Sign-on (SSO) for User-Based SSO.\n"},"ssoStatus":{"type":"boolean","description":"Whether to Enable Single Sign-on (SSO) for User-Based SSO.\n"},"status":{"type":"string","description":"Workspace State. Possible Values: Registering: Registered in the Registered: Registered.\n"},"subDnsAddresses":{"type":"array","items":{"type":"string"},"description":"AD Subdomain of the DNS Address.\n"},"subDomainName":{"type":"string","description":"AD Domain DNS Name.\n"},"trustPassword":{"type":"string","description":"AD Trust Password.\n"},"vpcId":{"type":"string","description":"Security Office VPC ID.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vswitch ids.\n"}},"type":"object","required":["bandwidth","cenId","cidrBlock","createTime","customSecurityGroupId","desktopAccessType","desktopVpcEndpoint","dnsAddresses","dnsUserName","domainName","domainPassword","domainUserName","enableAdminAccess","enableCrossDesktopAccess","enableInternetAccess","fileSystemIds","id","mfaEnabled","networkPackageId","officeSiteId","officeSiteType","simpleOfficeSiteName","ssoEnabled","ssoStatus","status","subDnsAddresses","subDomainName","trustPassword","vpcId","vswitchIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getSnapshotsSnapshot:getSnapshotsSnapshot":{"properties":{"createTime":{"type":"string","description":"The time when the snapshot was created.\n"},"description":{"type":"string","description":"The description of the snapshot.\n"},"desktopId":{"type":"string","description":"The ID of the cloud desktop to which the snapshot belongs.\n"},"id":{"type":"string","description":"The ID of the Snapshot.\n"},"progress":{"type":"string","description":"The progress of creating the snapshot.\n"},"remainTime":{"type":"integer","description":"The remaining time that is required to create the snapshot. Unit: seconds.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot.\n"},"snapshotName":{"type":"string","description":"The name of the snapshot.\n"},"snapshotType":{"type":"string","description":"The type of the snapshot.\n"},"sourceDiskSize":{"type":"string","description":"The capacity of the source disk. Unit: GiB.\n"},"sourceDiskType":{"type":"string","description":"The type of the source disk.\n"},"status":{"type":"string","description":"The status of the snapshot.\n"}},"type":"object","required":["createTime","description","desktopId","id","progress","remainTime","snapshotId","snapshotName","snapshotType","sourceDiskSize","sourceDiskType","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getUsersUser:getUsersUser":{"properties":{"email":{"type":"string","description":"The email of the user email.\n"},"endUserId":{"type":"string","description":"The Username. The custom setting is composed of lowercase letters, numbers and underscores, and the length is 3~24 characters.\n"},"id":{"type":"string","description":"The ID of the user id.\n"},"phone":{"type":"string","description":"The phone of the mobile phone number.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object","required":["email","endUserId","id","phone","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eds/getZonesZone:getZonesZone":{"properties":{"zoneId":{"type":"string","description":"String to filter results by zone id.\n"}},"type":"object","required":["zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eflo/ClusterComponent:ClusterComponent":{"properties":{"componentConfig":{"$ref":"#/types/alicloud:eflo/ClusterComponentComponentConfig:ClusterComponentComponentConfig","description":"Component Configuration See \u003cspan pulumi-lang-nodejs=\"`componentConfig`\" pulumi-lang-dotnet=\"`ComponentConfig`\" pulumi-lang-go=\"`componentConfig`\" pulumi-lang-python=\"`component_config`\" pulumi-lang-yaml=\"`componentConfig`\" pulumi-lang-java=\"`componentConfig`\"\u003e`component_config`\u003c/span\u003e below.\n"},"componentType":{"type":"string","description":"Component Type\n"}},"type":"object"},"alicloud:eflo/ClusterComponentComponentConfig:ClusterComponentComponentConfig":{"properties":{"basicArgs":{"type":"string","description":"Component Basic Parameters\n"},"nodeUnits":{"type":"array","items":{"type":"string"},"description":"Node pool configuration, and is used to establish the corresponding relationship between node groups and node pools. When\nComponentType = \"ACKEdge\" is required. Other values are empty.\n"}},"type":"object"},"alicloud:eflo/ClusterNetworks:ClusterNetworks":{"properties":{"ipAllocationPolicies":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ClusterNetworksIpAllocationPolicy:ClusterNetworksIpAllocationPolicy"},"description":"IP allocation policy See \u003cspan pulumi-lang-nodejs=\"`ipAllocationPolicy`\" pulumi-lang-dotnet=\"`IpAllocationPolicy`\" pulumi-lang-go=\"`ipAllocationPolicy`\" pulumi-lang-python=\"`ip_allocation_policy`\" pulumi-lang-yaml=\"`ipAllocationPolicy`\" pulumi-lang-java=\"`ipAllocationPolicy`\"\u003e`ip_allocation_policy`\u003c/span\u003e below.\n"},"newVpdInfo":{"$ref":"#/types/alicloud:eflo/ClusterNetworksNewVpdInfo:ClusterNetworksNewVpdInfo","description":"Vpd configuration information See \u003cspan pulumi-lang-nodejs=\"`newVpdInfo`\" pulumi-lang-dotnet=\"`NewVpdInfo`\" pulumi-lang-go=\"`newVpdInfo`\" pulumi-lang-python=\"`new_vpd_info`\" pulumi-lang-yaml=\"`newVpdInfo`\" pulumi-lang-java=\"`newVpdInfo`\"\u003e`new_vpd_info`\u003c/span\u003e below.\n"},"securityGroupId":{"type":"string","description":"Security group ID\n"},"tailIpVersion":{"type":"string","description":"IP version\n"},"vpcId":{"type":"string","description":"VPC ID\n"},"vpdInfo":{"$ref":"#/types/alicloud:eflo/ClusterNetworksVpdInfo:ClusterNetworksVpdInfo","description":"Multiplexing VPD information See \u003cspan pulumi-lang-nodejs=\"`vpdInfo`\" pulumi-lang-dotnet=\"`VpdInfo`\" pulumi-lang-go=\"`vpdInfo`\" pulumi-lang-python=\"`vpd_info`\" pulumi-lang-yaml=\"`vpdInfo`\" pulumi-lang-java=\"`vpdInfo`\"\u003e`vpd_info`\u003c/span\u003e below.\n"},"vswitchId":{"type":"string","description":"Switch ID\n"},"vswitchZoneId":{"type":"string","description":"Switch ZoneID\n"}},"type":"object"},"alicloud:eflo/ClusterNetworksIpAllocationPolicy:ClusterNetworksIpAllocationPolicy":{"properties":{"bondPolicy":{"$ref":"#/types/alicloud:eflo/ClusterNetworksIpAllocationPolicyBondPolicy:ClusterNetworksIpAllocationPolicyBondPolicy","description":"Bond policy See \u003cspan pulumi-lang-nodejs=\"`bondPolicy`\" pulumi-lang-dotnet=\"`BondPolicy`\" pulumi-lang-go=\"`bondPolicy`\" pulumi-lang-python=\"`bond_policy`\" pulumi-lang-yaml=\"`bondPolicy`\" pulumi-lang-java=\"`bondPolicy`\"\u003e`bond_policy`\u003c/span\u003e below.\n"},"machineTypePolicies":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ClusterNetworksIpAllocationPolicyMachineTypePolicy:ClusterNetworksIpAllocationPolicyMachineTypePolicy"},"description":"Model Assignment Policy See \u003cspan pulumi-lang-nodejs=\"`machineTypePolicy`\" pulumi-lang-dotnet=\"`MachineTypePolicy`\" pulumi-lang-go=\"`machineTypePolicy`\" pulumi-lang-python=\"`machine_type_policy`\" pulumi-lang-yaml=\"`machineTypePolicy`\" pulumi-lang-java=\"`machineTypePolicy`\"\u003e`machine_type_policy`\u003c/span\u003e below.\n"},"nodePolicies":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ClusterNetworksIpAllocationPolicyNodePolicy:ClusterNetworksIpAllocationPolicyNodePolicy"},"description":"Node allocation policy See \u003cspan pulumi-lang-nodejs=\"`nodePolicy`\" pulumi-lang-dotnet=\"`NodePolicy`\" pulumi-lang-go=\"`nodePolicy`\" pulumi-lang-python=\"`node_policy`\" pulumi-lang-yaml=\"`nodePolicy`\" pulumi-lang-java=\"`nodePolicy`\"\u003e`node_policy`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:eflo/ClusterNetworksIpAllocationPolicyBondPolicy:ClusterNetworksIpAllocationPolicyBondPolicy":{"properties":{"bondDefaultSubnet":{"type":"string","description":"Default bond cluster subnet\n"},"bonds":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ClusterNetworksIpAllocationPolicyBondPolicyBond:ClusterNetworksIpAllocationPolicyBondPolicyBond"},"description":"Bond information See \u003cspan pulumi-lang-nodejs=\"`bonds`\" pulumi-lang-dotnet=\"`Bonds`\" pulumi-lang-go=\"`bonds`\" pulumi-lang-python=\"`bonds`\" pulumi-lang-yaml=\"`bonds`\" pulumi-lang-java=\"`bonds`\"\u003e`bonds`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:eflo/ClusterNetworksIpAllocationPolicyBondPolicyBond:ClusterNetworksIpAllocationPolicyBondPolicyBond":{"properties":{"name":{"type":"string","description":"The bond name\n"},"subnet":{"type":"string","description":"IP source cluster subnet\n"}},"type":"object"},"alicloud:eflo/ClusterNetworksIpAllocationPolicyMachineTypePolicy:ClusterNetworksIpAllocationPolicyMachineTypePolicy":{"properties":{"bonds":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ClusterNetworksIpAllocationPolicyMachineTypePolicyBond:ClusterNetworksIpAllocationPolicyMachineTypePolicyBond"},"description":"Bond information See \u003cspan pulumi-lang-nodejs=\"`bonds`\" pulumi-lang-dotnet=\"`Bonds`\" pulumi-lang-go=\"`bonds`\" pulumi-lang-python=\"`bonds`\" pulumi-lang-yaml=\"`bonds`\" pulumi-lang-java=\"`bonds`\"\u003e`bonds`\u003c/span\u003e below.\n"},"machineType":{"type":"string"}},"type":"object"},"alicloud:eflo/ClusterNetworksIpAllocationPolicyMachineTypePolicyBond:ClusterNetworksIpAllocationPolicyMachineTypePolicyBond":{"properties":{"name":{"type":"string","description":"The bond name\n"},"subnet":{"type":"string","description":"IP source cluster subnet\n"}},"type":"object"},"alicloud:eflo/ClusterNetworksIpAllocationPolicyNodePolicy:ClusterNetworksIpAllocationPolicyNodePolicy":{"properties":{"bonds":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ClusterNetworksIpAllocationPolicyNodePolicyBond:ClusterNetworksIpAllocationPolicyNodePolicyBond"},"description":"Bond information See \u003cspan pulumi-lang-nodejs=\"`bonds`\" pulumi-lang-dotnet=\"`Bonds`\" pulumi-lang-go=\"`bonds`\" pulumi-lang-python=\"`bonds`\" pulumi-lang-yaml=\"`bonds`\" pulumi-lang-java=\"`bonds`\"\u003e`bonds`\u003c/span\u003e below.\n"},"nodeId":{"type":"string"}},"type":"object"},"alicloud:eflo/ClusterNetworksIpAllocationPolicyNodePolicyBond:ClusterNetworksIpAllocationPolicyNodePolicyBond":{"properties":{"name":{"type":"string","description":"The bond name\n"},"subnet":{"type":"string","description":"IP source cluster subnet\n"}},"type":"object"},"alicloud:eflo/ClusterNetworksNewVpdInfo:ClusterNetworksNewVpdInfo":{"properties":{"cenId":{"type":"string","description":"Cloud Enterprise Network ID\n"},"cloudLinkCidr":{"type":"string","description":"Cloud chain cidr\n"},"cloudLinkId":{"type":"string","description":"Cloud chain ID\n"},"monitorVpcId":{"type":"string","description":"Proprietary Network\n"},"monitorVswitchId":{"type":"string","description":"Proprietary network switch\n"},"vpdCidr":{"type":"string","description":"Cluster network segment\n"},"vpdSubnets":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ClusterNetworksNewVpdInfoVpdSubnet:ClusterNetworksNewVpdInfoVpdSubnet"},"description":"List of cluster subnet ID\n"}},"type":"object"},"alicloud:eflo/ClusterNetworksNewVpdInfoVpdSubnet:ClusterNetworksNewVpdInfoVpdSubnet":{"properties":{"subnetCidr":{"type":"string","description":"Subnet cidr\n"},"subnetType":{"type":"string","description":"Subnet Type\n"},"zoneId":{"type":"string"}},"type":"object"},"alicloud:eflo/ClusterNetworksVpdInfo:ClusterNetworksVpdInfo":{"properties":{"vpdId":{"type":"string","description":"VPC ID\n"},"vpdSubnets":{"type":"array","items":{"type":"string"},"description":"List of cluster subnet ID\n"}},"type":"object"},"alicloud:eflo/ClusterNodeGroup:ClusterNodeGroup":{"properties":{"imageId":{"type":"string","description":"System Image ID\n"},"machineType":{"type":"string","description":"Model\n"},"nodeGroupDescription":{"type":"string","description":"Node Group Description\n"},"nodeGroupName":{"type":"string","description":"Node Group Name\n"},"nodes":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ClusterNodeGroupNode:ClusterNodeGroupNode"},"description":"Node List See \u003cspan pulumi-lang-nodejs=\"`nodes`\" pulumi-lang-dotnet=\"`Nodes`\" pulumi-lang-go=\"`nodes`\" pulumi-lang-python=\"`nodes`\" pulumi-lang-yaml=\"`nodes`\" pulumi-lang-java=\"`nodes`\"\u003e`nodes`\u003c/span\u003e below.\n"},"userData":{"type":"string","description":"Instance custom data. It needs to be encoded in Base64 mode, and the original data is at most 16KB.\n"},"zoneId":{"type":"string","description":"Zone ID\n"}},"type":"object"},"alicloud:eflo/ClusterNodeGroupNode:ClusterNodeGroupNode":{"properties":{"hostname":{"type":"string","description":"Host name\n"},"loginPassword":{"type":"string","description":"Login Password\n"},"nodeId":{"type":"string"},"vpcId":{"type":"string"},"vswitchId":{"type":"string"}},"type":"object"},"alicloud:eflo/ExperimentPlanTemplateTemplatePipeline:ExperimentPlanTemplateTemplatePipeline":{"properties":{"envParams":{"$ref":"#/types/alicloud:eflo/ExperimentPlanTemplateTemplatePipelineEnvParams:ExperimentPlanTemplateTemplatePipelineEnvParams","description":"Contains a series of parameters related to the environment. See \u003cspan pulumi-lang-nodejs=\"`envParams`\" pulumi-lang-dotnet=\"`EnvParams`\" pulumi-lang-go=\"`envParams`\" pulumi-lang-python=\"`env_params`\" pulumi-lang-yaml=\"`envParams`\" pulumi-lang-java=\"`envParams`\"\u003e`env_params`\u003c/span\u003e below.\n"},"pipelineOrder":{"type":"integer","description":"Indicates the sequence number of the pipeline node.\n"},"scene":{"type":"string","description":"The use of the template scenario. It can have the following optional parameters:\n- baseline: benchmark evaluation\n"},"settingParams":{"type":"object","additionalProperties":{"type":"string"},"description":"Represents additional parameters for the run.\n"},"workloadId":{"type":"integer","description":"Used to uniquely identify a specific payload.\n"},"workloadName":{"type":"string","description":"The name used to represent a specific payload.\n"}},"type":"object","required":["envParams","pipelineOrder","scene","workloadId","workloadName"],"language":{"nodejs":{"requiredOutputs":["envParams","pipelineOrder","scene","settingParams","workloadId","workloadName"]}}},"alicloud:eflo/ExperimentPlanTemplateTemplatePipelineEnvParams:ExperimentPlanTemplateTemplatePipelineEnvParams":{"properties":{"cpuPerWorker":{"type":"integer","description":"Number of central processing units (CPUs) allocated. This parameter affects the processing power of the computation, especially in tasks that require a large amount of parallel processing.\n"},"cudaVersion":{"type":"string","description":"The version of CUDA(Compute Unified Device Architecture) used. CUDA is a parallel computing platform and programming model provided by NVIDIA. A specific version may affect the available GPU functions and performance optimization.\n"},"gpuDriverVersion":{"type":"string","description":"The version of the GPU driver used. Driver version may affect GPU performance and compatibility, so it is important to ensure that the correct version is used\n"},"gpuPerWorker":{"type":"integer","description":"Number of graphics processing units (GPUs). GPUs are a key component in deep learning and large-scale data processing, so this parameter is very important for tasks that require graphics-accelerated computing.\n"},"memoryPerWorker":{"type":"integer","description":"The amount of memory available. Memory size has an important impact on the performance and stability of the program, especially when dealing with large data sets or high-dimensional data.\n"},"ncclVersion":{"type":"string","description":"The NVIDIA Collective Communications Library(NCCL) version used. NCCL is a library for multi-GPU and multi-node communication. This parameter is particularly important for optimizing data transmission in distributed computing.\n"},"pyTorchVersion":{"type":"string","description":"The version of the PyTorch framework used. PyTorch is a widely used deep learning library, and differences between versions may affect the performance and functional support of model training and inference.\n"},"shareMemory":{"type":"integer","description":"Shared memory GB allocation\n"},"workerNum":{"type":"integer","description":"The total number of nodes. This parameter directly affects the parallelism and computing speed of the task, and a higher number of working nodes usually accelerates the completion of the task.\n"}},"type":"object","required":["cpuPerWorker","gpuPerWorker","memoryPerWorker","shareMemory","workerNum"]},"alicloud:eflo/HyperNodeDataDisk:HyperNodeDataDisk":{"properties":{"burstingEnabled":{"type":"boolean","description":"Whether to enable Burst (performance Burst).\n"},"category":{"type":"string","description":"The disk type. Value range:\n- cloud_essd:ESSD cloud disk.\n"},"deleteWithNode":{"type":"boolean","description":"Whether the data disk is unsubscribed and deleted with the node.\n"},"performanceLevel":{"type":"string","description":"When creating an ESSD cloud disk to use as a system disk, set the performance level of the cloud disk. Value range:\n- PL0: maximum random read/write IOPS 10000 for a single disk.\n- PL1: maximum random read/write IOPS 50000 for a single disk.\n"},"provisionedIops":{"type":"integer","description":"ESSD AutoPL cloud disk (single disk) pre-configuration performance of IOPS.\n"},"size":{"type":"integer","description":"The size of the disk. The unit is GiB.\n"}},"type":"object"},"alicloud:eflo/NodeDataDisk:NodeDataDisk":{"properties":{"category":{"type":"string","description":"Data disk type\n"},"performanceLevel":{"type":"string","description":"Performance level\n"},"size":{"type":"integer","description":"Data disk size\n"}},"type":"object"},"alicloud:eflo/NodeGroupAttachmentDataDisk:NodeGroupAttachmentDataDisk":{"properties":{"category":{"type":"string","description":"Type\n"},"deleteWithNode":{"type":"boolean","description":"Indicate whether the data disk is released with the node. true indicates that the data disk will be released together when the node unsubscribes.\n"},"performanceLevel":{"type":"string","description":"Performance level\n"},"size":{"type":"integer","description":"Data disk size\n"}},"type":"object"},"alicloud:eflo/NodeGroupIpAllocationPolicy:NodeGroupIpAllocationPolicy":{"properties":{"bondPolicy":{"$ref":"#/types/alicloud:eflo/NodeGroupIpAllocationPolicyBondPolicy:NodeGroupIpAllocationPolicyBondPolicy","description":"Specify the cluster subnet ID based on the bond name See \u003cspan pulumi-lang-nodejs=\"`bondPolicy`\" pulumi-lang-dotnet=\"`BondPolicy`\" pulumi-lang-go=\"`bondPolicy`\" pulumi-lang-python=\"`bond_policy`\" pulumi-lang-yaml=\"`bondPolicy`\" pulumi-lang-java=\"`bondPolicy`\"\u003e`bond_policy`\u003c/span\u003e below.\n"},"machineTypePolicies":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeGroupIpAllocationPolicyMachineTypePolicy:NodeGroupIpAllocationPolicyMachineTypePolicy"},"description":"Model Assignment Policy See \u003cspan pulumi-lang-nodejs=\"`machineTypePolicy`\" pulumi-lang-dotnet=\"`MachineTypePolicy`\" pulumi-lang-go=\"`machineTypePolicy`\" pulumi-lang-python=\"`machine_type_policy`\" pulumi-lang-yaml=\"`machineTypePolicy`\" pulumi-lang-java=\"`machineTypePolicy`\"\u003e`machine_type_policy`\u003c/span\u003e below.\n"},"nodePolicies":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeGroupIpAllocationPolicyNodePolicy:NodeGroupIpAllocationPolicyNodePolicy"},"description":"Node allocation policy See \u003cspan pulumi-lang-nodejs=\"`nodePolicy`\" pulumi-lang-dotnet=\"`NodePolicy`\" pulumi-lang-go=\"`nodePolicy`\" pulumi-lang-python=\"`node_policy`\" pulumi-lang-yaml=\"`nodePolicy`\" pulumi-lang-java=\"`nodePolicy`\"\u003e`node_policy`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:eflo/NodeGroupIpAllocationPolicyBondPolicy:NodeGroupIpAllocationPolicyBondPolicy":{"properties":{"bondDefaultSubnet":{"type":"string","description":"Default bond cluster subnet\n"},"bonds":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeGroupIpAllocationPolicyBondPolicyBond:NodeGroupIpAllocationPolicyBondPolicyBond"},"description":"Bond information See \u003cspan pulumi-lang-nodejs=\"`bonds`\" pulumi-lang-dotnet=\"`Bonds`\" pulumi-lang-go=\"`bonds`\" pulumi-lang-python=\"`bonds`\" pulumi-lang-yaml=\"`bonds`\" pulumi-lang-java=\"`bonds`\"\u003e`bonds`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:eflo/NodeGroupIpAllocationPolicyBondPolicyBond:NodeGroupIpAllocationPolicyBondPolicyBond":{"properties":{"name":{"type":"string","description":"The bond name\n"},"subnet":{"type":"string","description":"IP source cluster subnet\n"}},"type":"object"},"alicloud:eflo/NodeGroupIpAllocationPolicyMachineTypePolicy:NodeGroupIpAllocationPolicyMachineTypePolicy":{"properties":{"bonds":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeGroupIpAllocationPolicyMachineTypePolicyBond:NodeGroupIpAllocationPolicyMachineTypePolicyBond"},"description":"Bond information See \u003cspan pulumi-lang-nodejs=\"`bonds`\" pulumi-lang-dotnet=\"`Bonds`\" pulumi-lang-go=\"`bonds`\" pulumi-lang-python=\"`bonds`\" pulumi-lang-yaml=\"`bonds`\" pulumi-lang-java=\"`bonds`\"\u003e`bonds`\u003c/span\u003e below.\n"},"machineType":{"type":"string","description":"Machine type\n"}},"type":"object"},"alicloud:eflo/NodeGroupIpAllocationPolicyMachineTypePolicyBond:NodeGroupIpAllocationPolicyMachineTypePolicyBond":{"properties":{"name":{"type":"string","description":"The bond name\n"},"subnet":{"type":"string","description":"IP source cluster subnet\n"}},"type":"object"},"alicloud:eflo/NodeGroupIpAllocationPolicyNodePolicy:NodeGroupIpAllocationPolicyNodePolicy":{"properties":{"bonds":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeGroupIpAllocationPolicyNodePolicyBond:NodeGroupIpAllocationPolicyNodePolicyBond"},"description":"Bond information See \u003cspan pulumi-lang-nodejs=\"`bonds`\" pulumi-lang-dotnet=\"`Bonds`\" pulumi-lang-go=\"`bonds`\" pulumi-lang-python=\"`bonds`\" pulumi-lang-yaml=\"`bonds`\" pulumi-lang-java=\"`bonds`\"\u003e`bonds`\u003c/span\u003e below.\n"},"nodeId":{"type":"string"}},"type":"object"},"alicloud:eflo/NodeGroupIpAllocationPolicyNodePolicyBond:NodeGroupIpAllocationPolicyNodePolicyBond":{"properties":{"name":{"type":"string","description":"The bond name\n"},"subnet":{"type":"string","description":"IP source cluster subnet\n"}},"type":"object"},"alicloud:eflo/NodeGroupNode:NodeGroupNode":{"properties":{"hostname":{"type":"string","description":"Host name\n"},"loginPassword":{"type":"string","description":"Login Password\n","secret":true},"nodeId":{"type":"string","description":"Node ID\n"},"vpcId":{"type":"string","description":"VPC ID\n"},"vswitchId":{"type":"string","description":"Switch ID\n"}},"type":"object"},"alicloud:eflo/NodeIpAllocationPolicy:NodeIpAllocationPolicy":{"properties":{"bondPolicy":{"$ref":"#/types/alicloud:eflo/NodeIpAllocationPolicyBondPolicy:NodeIpAllocationPolicyBondPolicy","description":"Specify the cluster subnet ID based on the bond name See \u003cspan pulumi-lang-nodejs=\"`bondPolicy`\" pulumi-lang-dotnet=\"`BondPolicy`\" pulumi-lang-go=\"`bondPolicy`\" pulumi-lang-python=\"`bond_policy`\" pulumi-lang-yaml=\"`bondPolicy`\" pulumi-lang-java=\"`bondPolicy`\"\u003e`bond_policy`\u003c/span\u003e below.\n"},"machineTypePolicies":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeIpAllocationPolicyMachineTypePolicy:NodeIpAllocationPolicyMachineTypePolicy"},"description":"Model Assignment Policy See \u003cspan pulumi-lang-nodejs=\"`machineTypePolicy`\" pulumi-lang-dotnet=\"`MachineTypePolicy`\" pulumi-lang-go=\"`machineTypePolicy`\" pulumi-lang-python=\"`machine_type_policy`\" pulumi-lang-yaml=\"`machineTypePolicy`\" pulumi-lang-java=\"`machineTypePolicy`\"\u003e`machine_type_policy`\u003c/span\u003e below.\n"},"nodePolicies":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeIpAllocationPolicyNodePolicy:NodeIpAllocationPolicyNodePolicy"},"description":"Node allocation policy See \u003cspan pulumi-lang-nodejs=\"`nodePolicy`\" pulumi-lang-dotnet=\"`NodePolicy`\" pulumi-lang-go=\"`nodePolicy`\" pulumi-lang-python=\"`node_policy`\" pulumi-lang-yaml=\"`nodePolicy`\" pulumi-lang-java=\"`nodePolicy`\"\u003e`node_policy`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:eflo/NodeIpAllocationPolicyBondPolicy:NodeIpAllocationPolicyBondPolicy":{"properties":{"bondDefaultSubnet":{"type":"string","description":"Default bond cluster subnet\n"},"bonds":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeIpAllocationPolicyBondPolicyBond:NodeIpAllocationPolicyBondPolicyBond"},"description":"Bond information See \u003cspan pulumi-lang-nodejs=\"`bonds`\" pulumi-lang-dotnet=\"`Bonds`\" pulumi-lang-go=\"`bonds`\" pulumi-lang-python=\"`bonds`\" pulumi-lang-yaml=\"`bonds`\" pulumi-lang-java=\"`bonds`\"\u003e`bonds`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:eflo/NodeIpAllocationPolicyBondPolicyBond:NodeIpAllocationPolicyBondPolicyBond":{"properties":{"name":{"type":"string","description":"Bond Name\n"},"subnet":{"type":"string","description":"IP source cluster subnet\n"}},"type":"object"},"alicloud:eflo/NodeIpAllocationPolicyMachineTypePolicy:NodeIpAllocationPolicyMachineTypePolicy":{"properties":{"bonds":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeIpAllocationPolicyMachineTypePolicyBond:NodeIpAllocationPolicyMachineTypePolicyBond"},"description":"Bond information See \u003cspan pulumi-lang-nodejs=\"`bonds`\" pulumi-lang-dotnet=\"`Bonds`\" pulumi-lang-go=\"`bonds`\" pulumi-lang-python=\"`bonds`\" pulumi-lang-yaml=\"`bonds`\" pulumi-lang-java=\"`bonds`\"\u003e`bonds`\u003c/span\u003e below.\n"},"machineType":{"type":"string","description":"Model\n"}},"type":"object"},"alicloud:eflo/NodeIpAllocationPolicyMachineTypePolicyBond:NodeIpAllocationPolicyMachineTypePolicyBond":{"properties":{"name":{"type":"string","description":"Bond Name\n"},"subnet":{"type":"string","description":"IP source cluster subnet\n"}},"type":"object"},"alicloud:eflo/NodeIpAllocationPolicyNodePolicy:NodeIpAllocationPolicyNodePolicy":{"properties":{"bonds":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeIpAllocationPolicyNodePolicyBond:NodeIpAllocationPolicyNodePolicyBond"},"description":"Bond information See \u003cspan pulumi-lang-nodejs=\"`bonds`\" pulumi-lang-dotnet=\"`Bonds`\" pulumi-lang-go=\"`bonds`\" pulumi-lang-python=\"`bonds`\" pulumi-lang-yaml=\"`bonds`\" pulumi-lang-java=\"`bonds`\"\u003e`bonds`\u003c/span\u003e below.\n"},"hostname":{"type":"string","description":"Host name\n"},"nodeId":{"type":"string","description":"Node ID\n"}},"type":"object"},"alicloud:eflo/NodeIpAllocationPolicyNodePolicyBond:NodeIpAllocationPolicyNodePolicyBond":{"properties":{"name":{"type":"string","description":"Bond Name\n"},"subnet":{"type":"string","description":"IP source cluster subnet\n"}},"type":"object"},"alicloud:eflo/ResourceMachineTypes:ResourceMachineTypes":{"properties":{"bondNum":{"type":"integer","description":"This property specifies the number of network bindings, which relates to the number of physical or virtual network cards connected to the network through the network interface card (NIC). Multiple network bindings can increase bandwidth and redundancy and improve network reliability.\n","willReplaceOnChanges":true},"cpuInfo":{"type":"string","description":"Provides CPU details, including the number of cores, number of threads, clock frequency, and architecture type. This information helps to evaluate the processing power and identify whether it can meet the performance requirements of a particular application.\n","willReplaceOnChanges":true},"diskInfo":{"type":"string","description":"Displays information about the storage device, including the disk type (such as SSD or HDD), capacity, and I/O performance. Storage performance is critical in data-intensive applications such as big data processing and databases.\n","willReplaceOnChanges":true},"gpuInfo":{"type":"string","description":"Provides detailed information about the GPU, including the number, model, memory size, and computing capability. This information is particularly important for tasks such as deep learning, scientific computing, and graph processing, helping users understand the graph processing capabilities of nodes.\n","willReplaceOnChanges":true},"memoryInfo":{"type":"string","description":"This property provides memory details, including total memory, available memory, and usage. This helps users understand the memory processing capabilities of compute nodes, especially when running heavy-duty applications.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Specification Name.\n","willReplaceOnChanges":true},"networkInfo":{"type":"string","description":"Contains detailed information about the network interface, such as network bandwidth, latency, protocol types supported by the network, IP addresses, and network topology. Optimizing network information is essential to ensure efficient data transmission and low latency.\n","willReplaceOnChanges":true},"networkMode":{"type":"string","description":"Specifies the network mode, such as bridge mode, NAT mode, or direct connection mode. Different network modes affect the network configuration and data transmission performance of nodes, and affect the network access methods of computing instances.\n","willReplaceOnChanges":true},"nodeCount":{"type":"integer","description":"Specifies the total number of compute nodes. This property is particularly important in distributed computing and cluster environments, because the number of nodes often directly affects the computing power and the ability to parallel processing.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Usually refers to a specific resource type (such as virtual machine, physical server, container, etc.), which is used to distinguish different computing units or resource categories.\n","willReplaceOnChanges":true}},"type":"object","required":["cpuInfo","gpuInfo"]},"alicloud:eflo/ResourceUserAccessParam:ResourceUserAccessParam":{"properties":{"accessId":{"type":"string","description":"Access keys are important credentials for authentication.\n","secret":true},"accessKey":{"type":"string","description":"A Secret Key is a Secret credential paired with an access Key to verify a user's identity and protect the security of an interface.\n","secret":true},"endpoint":{"type":"string","description":"An Endpoint is a network address for accessing a service or API, usually a URL to a specific service instance.\n"},"workspaceId":{"type":"string","description":"A Workspace generally refers to a separate space created by a user on a particular computing environment or platform.\n"}},"type":"object","required":["accessId","accessKey","endpoint","workspaceId"]},"alicloud:eflo/getSubnetsSubnet:getSubnetsSubnet":{"properties":{"cidr":{"type":"string","description":"Network segment\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"gmtModified":{"type":"string","description":"Modification time\n"},"id":{"type":"string","description":"The ID of the resource.\n"},"message":{"type":"string","description":"Error message\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"subnetId":{"type":"string","description":"Primary key ID.\n"},"subnetName":{"type":"string","description":"The Subnet name.\n"},"type":{"type":"string","description":"Eflo subnet usage type, optional value: \n- General type is not filled in\n- OOB:OOB type\n- LB: LB type\n"},"vpdId":{"type":"string","description":"The Eflo VPD ID.\n"},"zoneId":{"type":"string","description":"The zone ID of the resource.\n"}},"type":"object","required":["cidr","createTime","gmtModified","id","message","resourceGroupId","status","subnetId","subnetName","type","vpdId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eflo/getVpdsVpd:getVpdsVpd":{"properties":{"cidr":{"type":"string","description":"CIDR network segment\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"gmtModified":{"type":"string","description":"Modification time\n"},"id":{"type":"string","description":"The id of the vpd.\n"},"resourceGroupId":{"type":"string","description":"The Resource group id\n"},"status":{"type":"string","description":"The Vpd status. Valid values: `Available`, `Not Available`, `Executing`, `Deleting`,\n"},"vpdId":{"type":"string","description":"The id of the vpd.\n"},"vpdName":{"type":"string","description":"The Name of the VPD.\n"}},"type":"object","required":["cidr","createTime","gmtModified","id","resourceGroupId","status","vpdId","vpdName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ehpc/ClusterAdditionalVolume:ClusterAdditionalVolume":{"properties":{"jobQueue":{"type":"string","description":"The queue of the nodes to which the additional file system is attached.\n"},"localDirectory":{"type":"string","description":"The local directory on which the additional file system is mounted.\n"},"location":{"type":"string","description":"The type of the cluster. Valid value: `PublicCloud`.\n"},"remoteDirectory":{"type":"string","description":"The remote directory to which the additional file system is mounted.\n"},"roles":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/ClusterAdditionalVolumeRole:ClusterAdditionalVolumeRole"},"description":"The roles. See \u003cspan pulumi-lang-nodejs=\"`roles`\" pulumi-lang-dotnet=\"`Roles`\" pulumi-lang-go=\"`roles`\" pulumi-lang-python=\"`roles`\" pulumi-lang-yaml=\"`roles`\" pulumi-lang-java=\"`roles`\"\u003e`roles`\u003c/span\u003e below.\n"},"volumeId":{"type":"string","description":"The ID of the additional file system.\n"},"volumeMountOption":{"type":"string","description":"The mount options of the file system.\n"},"volumeMountpoint":{"type":"string","description":"The mount target of the additional file system.\n"},"volumeProtocol":{"type":"string","description":"The type of the protocol that is used by the additional file system. Valid values: `NFS`, `SMB`. Default value: `NFS`\n"},"volumeType":{"type":"string","description":"The type of the additional shared storage. Only NAS file systems are supported.\n"}},"type":"object"},"alicloud:ehpc/ClusterAdditionalVolumeRole:ClusterAdditionalVolumeRole":{"properties":{"name":{"type":"string","description":"The type of the nodes to which the additional file system is attached.\n"}},"type":"object"},"alicloud:ehpc/ClusterApplication:ClusterApplication":{"properties":{"tag":{"type":"string","description":"The tag of the software.\n"}},"type":"object"},"alicloud:ehpc/ClusterPostInstallScript:ClusterPostInstallScript":{"properties":{"args":{"type":"string","description":"The parameter that is used to run the script after the cluster is created.\n"},"url":{"type":"string","description":"The URL that is used to download the script after the cluster is created.\n"}},"type":"object"},"alicloud:ehpc/ClusterV2Addon:ClusterV2Addon":{"properties":{"name":{"type":"string","description":"Customize the specific configuration information of the service component.\n","secret":true,"willReplaceOnChanges":true},"resourcesSpec":{"type":"string","description":"Customize the resource configuration of the service component.\n","secret":true,"willReplaceOnChanges":true},"servicesSpec":{"type":"string","description":"Customize the service configuration of the service component.\n","secret":true,"willReplaceOnChanges":true},"version":{"type":"string","description":"Customize the service component version.\n","secret":true,"willReplaceOnChanges":true}},"type":"object","required":["name","version"]},"alicloud:ehpc/ClusterV2ClusterCredentials:ClusterV2ClusterCredentials":{"properties":{"keyPairName":{"type":"string","description":"The SSH key of root of the cluster node.\n","secret":true,"willReplaceOnChanges":true},"password":{"type":"string","description":"The root password of the cluster node. It is 8 to 20 characters in length and must contain three types of characters: uppercase and lowercase letters, numbers, and special symbols. Special symbols can be: () ~! @ # $ % ^ \u0026 * - = + { } [ ] : ; ',. ? /\n","secret":true,"willReplaceOnChanges":true}},"type":"object"},"alicloud:ehpc/ClusterV2Manager:ClusterV2Manager":{"properties":{"directoryService":{"$ref":"#/types/alicloud:ehpc/ClusterV2ManagerDirectoryService:ClusterV2ManagerDirectoryService","description":"The configurations of the domain account service. See \u003cspan pulumi-lang-nodejs=\"`directoryService`\" pulumi-lang-dotnet=\"`DirectoryService`\" pulumi-lang-go=\"`directoryService`\" pulumi-lang-python=\"`directory_service`\" pulumi-lang-yaml=\"`directoryService`\" pulumi-lang-java=\"`directoryService`\"\u003e`directory_service`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"dns":{"$ref":"#/types/alicloud:ehpc/ClusterV2ManagerDns:ClusterV2ManagerDns","description":"The configurations of the domain name resolution service. See \u003cspan pulumi-lang-nodejs=\"`dns`\" pulumi-lang-dotnet=\"`Dns`\" pulumi-lang-go=\"`dns`\" pulumi-lang-python=\"`dns`\" pulumi-lang-yaml=\"`dns`\" pulumi-lang-java=\"`dns`\"\u003e`dns`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"managerNode":{"$ref":"#/types/alicloud:ehpc/ClusterV2ManagerManagerNode:ClusterV2ManagerManagerNode","description":"The hardware configurations of the management node. See \u003cspan pulumi-lang-nodejs=\"`managerNode`\" pulumi-lang-dotnet=\"`ManagerNode`\" pulumi-lang-go=\"`managerNode`\" pulumi-lang-python=\"`manager_node`\" pulumi-lang-yaml=\"`managerNode`\" pulumi-lang-java=\"`managerNode`\"\u003e`manager_node`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"scheduler":{"$ref":"#/types/alicloud:ehpc/ClusterV2ManagerScheduler:ClusterV2ManagerScheduler","description":"The configurations of the scheduler service. See \u003cspan pulumi-lang-nodejs=\"`scheduler`\" pulumi-lang-dotnet=\"`Scheduler`\" pulumi-lang-go=\"`scheduler`\" pulumi-lang-python=\"`scheduler`\" pulumi-lang-yaml=\"`scheduler`\" pulumi-lang-java=\"`scheduler`\"\u003e`scheduler`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:ehpc/ClusterV2ManagerDirectoryService:ClusterV2ManagerDirectoryService":{"properties":{"type":{"type":"string","description":"The scheduler type. Valid values:\n\n- SLURM\n- PBS\n- OPENGRIDSCHEDULER\n- LSF_PLUGIN\n- PBS_PLUGIN\n","willReplaceOnChanges":true},"version":{"type":"string","willReplaceOnChanges":true}},"type":"object"},"alicloud:ehpc/ClusterV2ManagerDns:ClusterV2ManagerDns":{"properties":{"type":{"type":"string","description":"The scheduler type. Valid values:\n\n- SLURM\n- PBS\n- OPENGRIDSCHEDULER\n- LSF_PLUGIN\n- PBS_PLUGIN\n","willReplaceOnChanges":true},"version":{"type":"string","willReplaceOnChanges":true}},"type":"object"},"alicloud:ehpc/ClusterV2ManagerManagerNode:ClusterV2ManagerManagerNode":{"properties":{"autoRenew":{"type":"boolean","description":"Whether to automatically renew. This parameter takes effect only when the value of InstanceChargeType is PrePaid. Value range:\n- true: Automatic renewal.\n- false: Do not renew automatically (default).\n","willReplaceOnChanges":true},"autoRenewPeriod":{"type":"integer","description":"The renewal duration of a single automatic renewal. Value range:\n- When PeriodUnit = Week: 1, 2, 3.\n- When PeriodUnit = Month: 1, 2, 3, 6, 12, 24, 36, 48, 60.\n\nDefault value: 1.\n","willReplaceOnChanges":true},"duration":{"type":"integer","description":"The duration of the preemptible instance, in hours. Value:\n- : After the instance is created, Alibaba Cloud will ensure that the instance will not be automatically released after one hour of operation. After one hour, the system will compare the bid price with the market price in real time and check the resource inventory to determine the holding and recycling of the instance.\n- 0: After creation, Alibaba Cloud does not guarantee the running time of the instance. The system compares the bid price with the market price in real time and checks the resource inventory to determine the holding and recycling of the instance.\n\nDefault value: 1.\n","willReplaceOnChanges":true},"enableHt":{"type":"boolean","description":"EnableHT\n","willReplaceOnChanges":true},"expiredTime":{"type":"string","description":"The expiration time of the management node.\n"},"imageId":{"type":"string","description":"ImageId\n","willReplaceOnChanges":true},"instanceChargeType":{"type":"string","description":"The instance billing method of the management node. Valid values:\n\n- PostPaid: pay-as-you-go\n- PrePaid: subscription\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The instance ID of the management node.\n"},"instanceType":{"type":"string","description":"The instance type of the management node.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The duration of the resource purchase. The unit is specified by PeriodUnit. The parameter InstanceChargeType takes effect only when the value is PrePaid and is a required value. Once DedicatedHostId is specified, the value range cannot exceed the subscription duration of the DDH. Value range:\n- When PeriodUnit = Week, the values of Period are 1, 2, 3, and 4.\n- When PeriodUnit = Month, the values of Period are 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 48, and 60.\n","willReplaceOnChanges":true},"periodUnit":{"type":"string","description":"The unit of duration of the year-to-month billing method. Value range:\n- Week.\n- Month (default).\n","willReplaceOnChanges":true},"spotPriceLimit":{"type":"number","description":"Set the maximum price per hour for the instance. The maximum number of decimals is 3. It takes effect when the value of the SpotStrategy parameter is SpotWithPriceLimit.\n","willReplaceOnChanges":true},"spotStrategy":{"type":"string","description":"The bidding strategy for pay-as-you-go instances. This parameter takes effect when the value of the InstanceChargeType parameter is PostPaid. Value range:\n- NoSpot: normal pay-as-you-go instances (default).\n- SpotWithPriceLimit: set the upper limit price for the preemptible instance.\n- SpotAsPriceGo: The system automatically bids, following the actual price of the current market.\n","willReplaceOnChanges":true},"systemDisk":{"$ref":"#/types/alicloud:ehpc/ClusterV2ManagerManagerNodeSystemDisk:ClusterV2ManagerManagerNodeSystemDisk","description":"System disk configuration of the management node. See \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["duration","expiredTime","instanceId"]}}},"alicloud:ehpc/ClusterV2ManagerManagerNodeSystemDisk:ClusterV2ManagerManagerNodeSystemDisk":{"properties":{"category":{"type":"string","description":"Manage the system disk configuration of the node. Value range:\n- cloud_efficiency: The Ultra cloud disk.\n- cloud_ssd:SSD cloud disk.\n- cloud_essd:ESSD cloud disk.\n- cloud: ordinary cloud disk.\n","willReplaceOnChanges":true},"level":{"type":"string","description":"When creating an ESSD cloud disk to use as a system disk, set the performance level of the cloud disk. Value range:\n- PL0: maximum random read/write IOPS 10000 for a single disk.\n- PL1 (default): Maximum random read/write IOPS 50000 for a single disk.\n- PL2: maximum random read/write IOPS 100000 for a single disk.\n- PL3: maximum random read/write IOPS 1 million for a single disk.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"The system disk size of the management node. Unit: GiB. Value range:\n- Ordinary cloud tray: 20~500.\n- ESSD cloud disk:\n- PL0:1~2048.\n- PL1:20~2048.\n- PL2:461~2048.\n- PL3:1261~2048.\n- Other cloud disk types: 20~2048.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:ehpc/ClusterV2ManagerScheduler:ClusterV2ManagerScheduler":{"properties":{"type":{"type":"string","description":"The scheduler type. Valid values:\n\n- SLURM\n- PBS\n- OPENGRIDSCHEDULER\n- LSF_PLUGIN\n- PBS_PLUGIN\n","willReplaceOnChanges":true},"version":{"type":"string","willReplaceOnChanges":true}},"type":"object"},"alicloud:ehpc/ClusterV2SharedStorage:ClusterV2SharedStorage":{"properties":{"fileSystemId":{"type":"string","description":"The ID of the mounted file system.\n","willReplaceOnChanges":true},"mountDirectory":{"type":"string","description":"The local Mount directory where the file system is mounted.\n","willReplaceOnChanges":true},"mountOptions":{"type":"string","description":"Storage mount options for the mounted file system.\n","willReplaceOnChanges":true},"mountTargetDomain":{"type":"string","description":"The mount point address of the mounted file system.\n","willReplaceOnChanges":true},"nasDirectory":{"type":"string","description":"The remote directory to which the mounted file system needs to be mounted.\n","willReplaceOnChanges":true},"protocolType":{"type":"string","description":"The protocol type of the mounted file system. Value range:\n- NFS\n- SMB\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:ehpc/QueueComputeNode:QueueComputeNode":{"properties":{"autoRenew":{"type":"boolean","description":"AutoRenew\n"},"autoRenewPeriod":{"type":"integer","description":"AutoRenewPeriod\n"},"duration":{"type":"integer","description":"Duration\n"},"enableHt":{"type":"boolean","description":"Whether HT is enabled for the computing node.\n"},"imageId":{"type":"string","description":"ImageId\n"},"instanceChargeType":{"type":"string","description":"InstanceChargeType\n"},"instanceType":{"type":"string","description":"InstanceTypes\n"},"period":{"type":"integer","description":"Period\n"},"periodUnit":{"type":"string","description":"PeriodUnit\n"},"spotPriceLimit":{"type":"number","description":"SpotPriceLimit\n"},"spotStrategy":{"type":"string","description":"SpotStrategy\n"},"systemDisk":{"$ref":"#/types/alicloud:ehpc/QueueComputeNodeSystemDisk:QueueComputeNodeSystemDisk","description":"SystemDisk See \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableHt","spotStrategy"]}}},"alicloud:ehpc/QueueComputeNodeSystemDisk:QueueComputeNodeSystemDisk":{"properties":{"category":{"type":"string","description":"Category\n"},"level":{"type":"string","description":"Level\n"},"size":{"type":"integer","description":"Size\n"}},"type":"object"},"alicloud:ehpc/getClustersCluster:getClustersCluster":{"properties":{"accountType":{"type":"string","description":"The server type of the account.\n"},"applications":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/getClustersClusterApplication:getClustersClusterApplication"},"description":"A list of clustered applications.\n"},"clientVersion":{"type":"string","description":"The version number of the client used by the cluster.\n"},"clusterId":{"type":"string","description":"The id of E-HPC Cluster.\n"},"clusterName":{"type":"string","description":"The name of E-HPC cluster.\n"},"computeCount":{"type":"integer","description":"The number of compute nodes in the cluster.\n"},"computeInstanceType":{"type":"string","description":"Cluster compute node specifications.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"deployMode":{"type":"string","description":"Cluster deployment mode. Possible values:\n- Standard: separate deployment of account nodes, scheduling nodes, login nodes, and compute nodes.\n- Advanced:HA mode deployment.\n- Simple: the account node and the scheduling node are deployed on one node, and the login node and the compute node are deployed separately.\n- Tiny: account nodes, scheduling nodes, and login nodes are deployed on one node, and compute nodes are deployed separately.\n- OneBox: account node, scheduling node, login node and compute node are deployed on one node.\n"},"description":{"type":"string","description":"The description of E-HPC cluster.\n"},"haEnable":{"type":"boolean","description":"Whether to turn on high availability. \u003e If high availability is enabled, each control role in the cluster will use two primary and secondary instances.\n"},"id":{"type":"string","description":"The ID of the Cluster.\n"},"imageId":{"type":"string","description":"The ID of the Image.\n"},"imageOwnerAlias":{"type":"string","description":"The type of the image.\n"},"loginCount":{"type":"integer","description":"The number of cluster login nodes. Only configuration 1 is supported.\n"},"loginInstanceType":{"type":"string","description":"Cluster login node specifications.\n"},"managerCount":{"type":"integer","description":"The number of control nodes.\n"},"managerInstanceType":{"type":"string","description":"The instance type of manager nodes.\n"},"osTag":{"type":"string","description":"The image tag of the operating system.\n"},"postInstallScripts":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/getClustersClusterPostInstallScript:getClustersClusterPostInstallScript"},"description":"List of post-installation scripts.\n"},"remoteDirectory":{"type":"string","description":"Mount the remote directory of the shared storage.\n"},"sccClusterId":{"type":"string","description":"The SccCluster ID used by the cluster. If the cluster is not an SCC model, it is empty.\n"},"schedulerType":{"type":"string","description":"Dispatch server type.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n"},"status":{"type":"string","description":"The status of the resource. Valid values:\n"},"volumeId":{"type":"string","description":"The ID of the NAS instance. Currently, you cannot automatically create an Alibaba Cloud NAS instance.\n"},"volumeMountpoint":{"type":"string","description":"The mount target of the file system. Mount targets cannot be automatically created for NAS file systems.\n"},"volumeProtocol":{"type":"string","description":"The type of the protocol that is used by the file system.\n"},"volumeType":{"type":"string","description":"The type of the network shared storage. Valid value: NAS.\n"},"vpcId":{"type":"string","description":"The ID of the VPC network.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string","description":"The available zone ID.\n"}},"type":"object","required":["accountType","applications","clientVersion","clusterId","clusterName","computeCount","computeInstanceType","createTime","deployMode","description","haEnable","id","imageId","imageOwnerAlias","loginCount","loginInstanceType","managerCount","managerInstanceType","osTag","postInstallScripts","remoteDirectory","sccClusterId","schedulerType","securityGroupId","status","volumeId","volumeMountpoint","volumeProtocol","volumeType","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ehpc/getClustersClusterApplication:getClustersClusterApplication":{"properties":{"tag":{"type":"string","description":"Application Tags.\n"}},"type":"object","required":["tag"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ehpc/getClustersClusterPostInstallScript:getClustersClusterPostInstallScript":{"properties":{"args":{"type":"string","description":"The parameters of the script.\n"},"url":{"type":"string","description":"The download path of the script.\n"}},"type":"object","required":["args","url"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ehpc/getJobTemplatesTemplate:getJobTemplatesTemplate":{"properties":{"arrayRequest":{"type":"string","description":"Queue Jobs, Is of the Form: 1-10:2.\n"},"clockTime":{"type":"string","description":"Job Maximum Run Time.\n"},"commandLine":{"type":"string","description":"Job Commands.\n"},"gpu":{"type":"integer","description":"A Single Compute Node Using the GPU Number.Possible Values: 1~20000.\n"},"id":{"type":"string","description":"The ID of the Job Template.\n"},"jobTemplateId":{"type":"string","description":"The first ID of the resource.\n"},"jobTemplateName":{"type":"string","description":"A Job Template Name.\n"},"mem":{"type":"string","description":"A Single Compute Node Maximum Memory.\n"},"node":{"type":"integer","description":"Submit a Task Is Required for Computing the Number of Data Nodes to Be. Possible Values: 1~5000 .\n"},"packagePath":{"type":"string","description":"Job Commands the Directory.\n"},"priority":{"type":"integer","description":"The Job Priority.Possible Values: 0~9.\n"},"queue":{"type":"string","description":"The Job Queue.\n"},"reRunable":{"type":"boolean","description":"If the Job Is Support for the Re-Run.\n"},"runasUser":{"type":"string","description":"The name of the user who performed the job.\n"},"stderrRedirectPath":{"type":"string","description":"Error Output Path.\n"},"stdoutRedirectPath":{"type":"string","description":"Standard Output Path and.\n"},"task":{"type":"integer","description":"A Single Compute Node Required Number of Tasks. Possible Values: 1~20000 .\n"},"thread":{"type":"integer","description":"A Single Task and the Number of Required Threads.Possible Values: 1~20000.\n"},"variables":{"type":"string","description":"The Job of the Environment Variable.\n"}},"type":"object","required":["arrayRequest","clockTime","commandLine","gpu","id","jobTemplateId","jobTemplateName","mem","node","packagePath","priority","queue","reRunable","runasUser","stderrRedirectPath","stdoutRedirectPath","task","thread","variables"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eipanycast/AnycastEipAddressAttachmentPopLocation:AnycastEipAddressAttachmentPopLocation":{"properties":{"popLocation":{"type":"string","description":"The access point information of the associated access area when the cloud resource instance is bound.If you are binding for the first time, this parameter does not need to be configured, and the system automatically associates all access areas.\n"}},"type":"object"},"alicloud:eipanycast/getAnycastEipAddressesAddress:getAnycastEipAddressesAddress":{"properties":{"aliUid":{"type":"integer","description":"Anycast EIP instance account ID.\n"},"anycastEipAddressName":{"type":"string","description":"Anycast EIP instance name.\n"},"anycastEipBindInfoLists":{"type":"array","items":{"$ref":"#/types/alicloud:eipanycast/getAnycastEipAddressesAddressAnycastEipBindInfoList:getAnycastEipAddressesAddressAnycastEipBindInfoList"},"description":"AnycastEip binding information.\n"},"anycastId":{"type":"string","description":"Anycast EIP instance ID.\n"},"bandwidth":{"type":"integer","description":"The peak bandwidth of the Anycast EIP instance, in Mbps.\n"},"bid":{"type":"string","description":"Anycast EIP instance account BID.\n"},"businessStatus":{"type":"string","description":"The business status of the Anycast EIP instance. -`Normal`: Normal state. -`FinancialLocked`: The status of arrears locked.\n"},"description":{"type":"string","description":"Anycast EIP instance description.\n"},"id":{"type":"string","description":"The ID of the Anycast Eip Address.\n"},"internetChargeType":{"type":"string","description":"The billing method of Anycast EIP instance. `PayByBandwidth`: refers to the method of billing based on traffic.\n"},"ipAddress":{"type":"string","description":"Anycast EIP instance IP address.\n"},"paymentType":{"type":"string","description":"The payment model of Anycast EIP instance. \"PostPaid\": Refers to the post-paid mode.\n"},"serviceLocation":{"type":"string","description":"Anycast EIP instance access area. \"international\": Refers to areas outside of Mainland China.\n"},"status":{"type":"string","description":"IP status。- `Associating`, `Unassociating`, `Allocated`, `Associated`, `Modifying`, `Releasing`, `Released`.\n"}},"type":"object","required":["aliUid","anycastEipAddressName","anycastEipBindInfoLists","anycastId","bandwidth","bid","businessStatus","description","id","internetChargeType","ipAddress","paymentType","serviceLocation","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eipanycast/getAnycastEipAddressesAddressAnycastEipBindInfoList:getAnycastEipAddressesAddressAnycastEipBindInfoList":{"properties":{"bindInstanceId":{"type":"string","description":"The bound cloud resource instance ID.\n"},"bindInstanceRegionId":{"type":"string","description":"The region ID of the bound cloud resource instance.\n"},"bindInstanceType":{"type":"string","description":"Bind the cloud resource instance type.\n"},"bindTime":{"type":"string","description":"Binding time.\n"}},"type":"object","required":["bindInstanceId","bindInstanceRegionId","bindInstanceType","bindTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:elasticsearch/InstanceClientNodeConfiguration:InstanceClientNodeConfiguration":{"properties":{"amount":{"type":"integer","description":"Number of nodes.\n"},"disk":{"type":"integer","description":"Node storage capacity, in GB.\n","willReplaceOnChanges":true},"diskType":{"type":"string","description":"Storage type of the node. Only ultra disk (cloud_efficiency) is supported.\n","willReplaceOnChanges":true},"spec":{"type":"string","description":"Node specification. You can view specification details in [Product Specifications](https://help.aliyun.com/document_detail/271718.html).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["disk"]}}},"alicloud:elasticsearch/InstanceDataNodeConfiguration:InstanceDataNodeConfiguration":{"properties":{"amount":{"type":"integer","description":"Number of data nodes. Valid values: 2 to 50.\n"},"disk":{"type":"integer","description":"Storage capacity per node, in GB.\n"},"diskEncryption":{"type":"boolean","description":"Whether to enable cloud disk encryption:\n- true: Enabled\n- false: Disabled.\n","willReplaceOnChanges":true},"diskType":{"type":"string","description":"Node disk type. Supported types:\n- cloud_ssd: SSD cloud disk\n- cloud_efficiency: Ultra cloud disk.\n","willReplaceOnChanges":true},"performanceLevel":{"type":"string","description":"Performance level of ESSD cloud disks. This parameter is required when diskType is set to cloud_essd. Supported values: PL1, PL2, PL3.\n"},"spec":{"type":"string","description":"Node specification. For more information about specifications, see [Product Specifications](https://help.aliyun.com/document_detail/271718.html).\n"}},"type":"object","required":["spec"],"language":{"nodejs":{"requiredOutputs":["amount","diskEncryption","diskType","performanceLevel","spec"]}}},"alicloud:elasticsearch/InstanceKibanaConfiguration:InstanceKibanaConfiguration":{"properties":{"amount":{"type":"integer","description":"The number of nodes.\n","willReplaceOnChanges":true},"disk":{"type":"integer","description":"Storage capacity per node, in GB.\n","willReplaceOnChanges":true},"spec":{"type":"string","description":"Node specification. For specification details, see [Product Specifications](https://help.aliyun.com/document_detail/271718.html).\n"}},"type":"object","required":["spec"],"language":{"nodejs":{"requiredOutputs":["amount","disk","spec"]}}},"alicloud:elasticsearch/InstanceMasterConfiguration:InstanceMasterConfiguration":{"properties":{"amount":{"type":"integer","description":"Number of nodes.\n","willReplaceOnChanges":true},"disk":{"type":"integer","description":"Node storage capacity, in GB.\n","willReplaceOnChanges":true},"diskType":{"type":"string","description":"Node storage type. Only\u003cspan pulumi-lang-nodejs=\" cloudSsd \" pulumi-lang-dotnet=\" CloudSsd \" pulumi-lang-go=\" cloudSsd \" pulumi-lang-python=\" cloud_ssd \" pulumi-lang-yaml=\" cloudSsd \" pulumi-lang-java=\" cloudSsd \"\u003e cloud_ssd \u003c/span\u003e(SSD cloud disk) is supported.\n","willReplaceOnChanges":true},"spec":{"type":"string","description":"Node specification. For specifications, see [Product Specifications](https://help.aliyun.com/document_detail/271718.html).\n"}},"type":"object"},"alicloud:elasticsearch/InstanceWarmNodeConfiguration:InstanceWarmNodeConfiguration":{"properties":{"amount":{"type":"integer","description":"Number of nodes.\n"},"disk":{"type":"integer","description":"Storage capacity per node, in GB.\n"},"diskEncryption":{"type":"boolean","description":"Whether to enable disk encryption. The values are as follows:\n- true: Enabled.\n- false: Disabled.\n","willReplaceOnChanges":true},"diskType":{"type":"string","description":"Storage type for the node. Only \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e (ultra disk) is supported.\n","willReplaceOnChanges":true},"spec":{"type":"string","description":"Node specification. For specifications, see [Product Specifications](https://help.aliyun.com/document_detail/271718.html).\n"}},"type":"object"},"alicloud:elasticsearch/getInstancesInstance:getInstancesInstance":{"properties":{"createdAt":{"type":"string"},"dataNodeAmount":{"type":"integer"},"dataNodeDiskSize":{"type":"integer"},"dataNodeDiskType":{"type":"string"},"dataNodeSpec":{"type":"string"},"description":{"type":"string"},"id":{"type":"string"},"instanceChargeType":{"type":"string"},"status":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"}},"updatedAt":{"type":"string"},"version":{"type":"string"},"vswitchId":{"type":"string"}},"type":"object","required":["createdAt","dataNodeAmount","dataNodeDiskSize","dataNodeDiskType","dataNodeSpec","description","id","instanceChargeType","status","tags","updatedAt","version","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:elasticsearch/getZonesZone:getZonesZone":{"properties":{"id":{"type":"string","description":"ID of the zone.\n"},"multiZoneIds":{"type":"array","items":{"type":"string"},"description":"A list of zone ids in which the multi zone.\n"}},"type":"object","required":["id","multiZoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emr/ClusterBootstrapAction:ClusterBootstrapAction":{"properties":{"arg":{"type":"string","description":"bootstrap action args, e.g. \"--a=b\".\n"},"executionFailStrategy":{"type":"string","description":"bootstrap action execution fail strategy, ’FAILED_BLOCKED’ or ‘FAILED_CONTINUE’ . Default value: \"FAILED_BLOCKED\n"},"executionMoment":{"type":"string","description":"bootstrap action execution moment, ’BEFORE_INSTALL’ or ‘AFTER_STARTED’ . Default value: \"BEFORE_INSTALL\".\n"},"executionTarget":{"type":"string","description":"bootstrap action execution target, you can specify the host group name, e.g. \u003cspan pulumi-lang-nodejs=\"\"coreGroup\"\" pulumi-lang-dotnet=\"\"CoreGroup\"\" pulumi-lang-go=\"\"coreGroup\"\" pulumi-lang-python=\"\"core_group\"\" pulumi-lang-yaml=\"\"coreGroup\"\" pulumi-lang-java=\"\"coreGroup\"\"\u003e\"core_group\"\u003c/span\u003e. If this is not specified, the bootstrap action execution target is whole cluster.\n"},"name":{"type":"string","description":"The name of emr cluster. The name length must be less than 64. Supported characters: chinese character, english character, number, \"-\", \"_\".\n"},"path":{"type":"string","description":"bootstrap action path, e.g. \"oss://bucket/path\".\n"}},"type":"object"},"alicloud:emr/ClusterConfig:ClusterConfig":{"properties":{"configKey":{"type":"string","description":"Custom configuration service config key, e.g. ’dfs.replication’.\n"},"configValue":{"type":"string","description":"Custom configuration service config value, e.g. ’3’.\n"},"fileName":{"type":"string","description":"Custom configuration service file name, e.g. ’hdfs-site’.\n"},"serviceName":{"type":"string"}},"type":"object","required":["configKey","configValue","fileName","serviceName"]},"alicloud:emr/ClusterHostGroup:ClusterHostGroup":{"properties":{"autoRenew":{"type":"boolean","description":"Auto renew for prepaid, ’true’ or ‘false’ . Default value: false.\n"},"chargeType":{"type":"string","description":"Charge Type for this cluster. Supported value: PostPaid or PrePaid. Default value: PostPaid.\n"},"decommissionTimeout":{"type":"integer","description":"Graceful decommission timeout, unit: seconds.\n"},"diskCapacity":{"type":"string","description":"Data disk capacity.\n"},"diskCount":{"type":"string","description":"Data disk count.\n"},"diskType":{"type":"string","description":"Data disk type. Supported value: cloud,cloud_efficiency,cloud_ssd,local_disk,cloud_essd.\n"},"enableGracefulDecommission":{"type":"boolean","description":"Enable hadoop cluster of task node graceful decommission, ’true’ or ‘false’ . Default value: false.\n"},"gpuDriver":{"type":"string"},"hostGroupName":{"type":"string","description":"host group name.\n"},"hostGroupType":{"type":"string","description":"host group type, supported value: MASTER, CORE or TASK, supported 'GATEWAY' available in 1.61.0+.\n"},"instanceList":{"type":"string","description":"Instance list for cluster scale down. This value follows the json format, e.g. [\u003cspan pulumi-lang-nodejs=\"\"instanceId1\"\" pulumi-lang-dotnet=\"\"InstanceId1\"\" pulumi-lang-go=\"\"instanceId1\"\" pulumi-lang-python=\"\"instance_id1\"\" pulumi-lang-yaml=\"\"instanceId1\"\" pulumi-lang-java=\"\"instanceId1\"\"\u003e\"instance_id1\"\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"\"instanceId2\"\" pulumi-lang-dotnet=\"\"InstanceId2\"\" pulumi-lang-go=\"\"instanceId2\"\" pulumi-lang-python=\"\"instance_id2\"\" pulumi-lang-yaml=\"\"instanceId2\"\" pulumi-lang-java=\"\"instanceId2\"\"\u003e\"instance_id2\"\u003c/span\u003e]. escape character for \" is \\\".\n"},"instanceType":{"type":"string","description":"Host Ecs instance type.\n"},"nodeCount":{"type":"string","description":"Host number in this group.\n"},"period":{"type":"integer","description":"If charge type is PrePaid, this should be specified, unit is month. Supported value: 1、2、3、4、5、6、7、8、9、12、24、36.\n"},"sysDiskCapacity":{"type":"string","description":"System disk capacity.\n"},"sysDiskType":{"type":"string","description":"System disk type. Supported value: cloud,cloud_efficiency,cloud_ssd,cloud_essd.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["decommissionTimeout","enableGracefulDecommission","period"]}}},"alicloud:emr/ClusterMetaStoreConf:ClusterMetaStoreConf":{"properties":{"dbPassword":{"type":"string","description":"Custom rds database password.\n","secret":true},"dbUrl":{"type":"string","description":"Custom rds database connection url.\n"},"dbUserName":{"type":"string","description":"Custom rds database user name.\n"}},"type":"object","required":["dbPassword","dbUrl","dbUserName"]},"alicloud:emr/ClusterModifyClusterServiceConfig:ClusterModifyClusterServiceConfig":{"properties":{"comment":{"type":"string","description":"Cluster service configuration modification comment, e.g. \"Modify tez configuration\".\n"},"configParams":{"type":"string","description":"Cluster service configuration modification params, e.g. ’{\"hdfs-site\":{\"dfs.replication\":\"3\"}}’.\n"},"configType":{"type":"string","description":"Cluster service configuration modification type.\n"},"customConfigParams":{"type":"string","description":"Cluster service configuration modification custom params, e.g. ’{\"tez-site\":{\"key\":{\"Value\":\"value\"}}}’.\n"},"gatewayClusterIdLists":{"type":"array","items":{"type":"string"},"description":"Cluster service configuration modification related gateway cluster id list.\n"},"groupId":{"type":"string","description":"Cluster service configuration modification node group id, e.g. ’G-XXX’.\n"},"hostInstanceId":{"type":"string","description":"Cluster service configuration modification host instance id, e.g. ’i-bp146tnrkq4tcxxxxx’.\n"},"refreshHostConfig":{"type":"boolean","description":"Cluster service configuration modification refresh host config, ’true’ or ’false’.\n"},"serviceName":{"type":"string"}},"type":"object","required":["configParams","serviceName"]},"alicloud:emr/getClustersCluster:getClustersCluster":{"properties":{"accessInfos":{"type":"array","items":{"$ref":"#/types/alicloud:emr/getClustersClusterAccessInfo:getClustersClusterAccessInfo"},"description":"Cluster connection information.\n"},"autoScalingAllowed":{"type":"boolean","description":"Whether flexible expansion is allowed.\n"},"autoScalingByLoadAllowed":{"type":"boolean","description":"Whether to allow expansion by load.\n"},"autoScalingEnable":{"type":"boolean","description":"Whether to enable elastic expansion.\n"},"autoScalingSpotWithLimitAllowed":{"type":"boolean","description":"Whether to allow the use of elastic scaling bidding instances.\n"},"bootstrapActionLists":{"type":"array","items":{"$ref":"#/types/alicloud:emr/getClustersClusterBootstrapActionList:getClustersClusterBootstrapActionList"},"description":"List of boot actions.\n"},"bootstrapFailed":{"type":"boolean","description":"The result of the boot operation.\n"},"clusterId":{"type":"string","description":"The first ID of the resource.\n"},"clusterName":{"type":"string","description":"The ClusterName.\n"},"createResource":{"type":"string","description":"Cluster tag, no need to pay attention.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"createType":{"type":"string","description":"How to create a cluster.\n"},"depositType":{"type":"string","description":"The hosting type of the cluster.\n"},"easEnable":{"type":"boolean","description":"High security cluster.\n"},"expiredTime":{"type":"string","description":"The expiration time of the cluster.\n"},"extraInfo":{"type":"string","description":"Additional information for Stack.\n"},"hasUncompletedOrder":{"type":"boolean"},"highAvailabilityEnable":{"type":"boolean","description":"High availability cluster.\n"},"hostGroupLists":{"type":"array","items":{"$ref":"#/types/alicloud:emr/getClustersClusterHostGroupList:getClustersClusterHostGroupList"},"description":"List of cluster machine groups.\n"},"hostPoolInfos":{"type":"array","items":{"$ref":"#/types/alicloud:emr/getClustersClusterHostPoolInfo:getClustersClusterHostPoolInfo"},"description":"Machine pool information.\n"},"id":{"type":"string"},"imageId":{"type":"string","description":"The ID of the image used to create the cluster.\n"},"localMetaDb":{"type":"boolean","description":"Whether to use Hive local Metabase.\n"},"machineType":{"type":"string","description":"The host type of the cluster. The default is ECS.\n"},"metaStoreType":{"type":"string","description":"Metadata type:\n"},"netType":{"type":"string","description":"Cluster network type.\n"},"paymentType":{"type":"string","description":"The payment type of the resource.\n"},"period":{"type":"integer","description":"The package year and month time of the machine group. The Valid Values : \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e.\n"},"relateClusterInfos":{"type":"array","items":{"$ref":"#/types/alicloud:emr/getClustersClusterRelateClusterInfo:getClustersClusterRelateClusterInfo"},"description":"The information of the primary cluster associated with the Gateway.\n"},"resizeDiskEnable":{"type":"boolean","description":"Whether to allow disk expansion:\n"},"runningTime":{"type":"integer","description":"The time (in seconds) that has been running.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n"},"securityGroupName":{"type":"string","description":"The name of the security group.\n"},"softwareInfos":{"type":"array","items":{"$ref":"#/types/alicloud:emr/getClustersClusterSoftwareInfo:getClustersClusterSoftwareInfo"},"description":"Service list.\n"},"startTime":{"type":"string","description":"Cluster startup time.\n"},"status":{"type":"string","description":"The cluster status.\n"},"stopTime":{"type":"string","description":"Cluster stop time.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"Disk type.\n"},"userDefinedEmrEcsRole":{"type":"string","description":"The EMR permission name used.\n"},"userId":{"type":"string","description":"The user ID.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string","description":"The zone ID.\n"}},"type":"object","required":["accessInfos","autoScalingAllowed","autoScalingByLoadAllowed","autoScalingEnable","autoScalingSpotWithLimitAllowed","bootstrapActionLists","bootstrapFailed","clusterId","clusterName","createResource","createTime","createType","depositType","easEnable","expiredTime","extraInfo","hasUncompletedOrder","highAvailabilityEnable","hostGroupLists","hostPoolInfos","id","imageId","localMetaDb","machineType","metaStoreType","netType","paymentType","period","relateClusterInfos","resizeDiskEnable","runningTime","securityGroupId","securityGroupName","softwareInfos","startTime","status","stopTime","tags","type","userDefinedEmrEcsRole","userId","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emr/getClustersClusterAccessInfo:getClustersClusterAccessInfo":{"properties":{"zkLinks":{"type":"array","items":{"$ref":"#/types/alicloud:emr/getClustersClusterAccessInfoZkLink:getClustersClusterAccessInfoZkLink"},"description":"Link address information list of ZooKeeper.\n"}},"type":"object","required":["zkLinks"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emr/getClustersClusterAccessInfoZkLink:getClustersClusterAccessInfoZkLink":{"properties":{"link":{"type":"string","description":"The access link address of ZooKeeper.\n"},"port":{"type":"string","description":"The port of ZooKeeper.\n"}},"type":"object","required":["link","port"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emr/getClustersClusterBootstrapActionList:getClustersClusterBootstrapActionList":{"properties":{"arg":{"type":"string","description":"Parameters of the boot operation.\n"},"name":{"type":"string","description":"The name of the boot operation.\n"},"path":{"type":"string","description":"Boot operation script path.\n"}},"type":"object","required":["arg","name","path"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emr/getClustersClusterHostGroupList:getClustersClusterHostGroupList":{"properties":{"bandWidth":{"type":"string","description":"Bandwidth.\n"},"chargeType":{"type":"string","description":"Payment Type.\n"},"cpuCore":{"type":"integer","description":"The number of CPU cores.\n"},"diskCapacity":{"type":"integer","description":"Data disk capacity.\n"},"diskCount":{"type":"integer","description":"The number of data disks.\n"},"diskType":{"type":"string","description":"System disk type:\n"},"hostGroupChangeType":{"type":"string","description":"The current operation type of the machine Group:\n"},"hostGroupId":{"type":"string","description":"The ID of the machine group.\n"},"hostGroupName":{"type":"string","description":"The name of the machine group.\n"},"hostGroupType":{"type":"string","description":"Role of host in cluster:\n"},"instanceType":{"type":"string","description":"Machine Group instance.\n"},"memoryCapacity":{"type":"integer","description":"Memory size.\n"},"nodeCount":{"type":"integer","description":"The number of machine group nodes.\n"},"nodes":{"type":"array","items":{"$ref":"#/types/alicloud:emr/getClustersClusterHostGroupListNode:getClustersClusterHostGroupListNode"},"description":"Machine node.\n"},"period":{"type":"string","description":"Package year and month time (days).\n"}},"type":"object","required":["bandWidth","chargeType","cpuCore","diskCapacity","diskCount","diskType","hostGroupChangeType","hostGroupId","hostGroupName","hostGroupType","instanceType","memoryCapacity","nodeCount","nodes","period"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emr/getClustersClusterHostGroupListNode:getClustersClusterHostGroupListNode":{"properties":{"createTime":{"type":"string","description":"Creation time.\n"},"diskInfos":{"type":"array","items":{"$ref":"#/types/alicloud:emr/getClustersClusterHostGroupListNodeDiskInfo:getClustersClusterHostGroupListNodeDiskInfo"},"description":"Disk information.\n"},"emrExpiredTime":{"type":"string","description":"The timeout of the EMR.\n"},"expiredTime":{"type":"string","description":"Timeout time.\n"},"innerIp":{"type":"string","description":"The Intranet IP of the EMR.\n"},"instanceId":{"type":"string","description":"The ID of the ECS instance.\n"},"pubIp":{"type":"string","description":"Public IP address.\n"},"status":{"type":"string","description":"Status.\n"},"supportIpv6":{"type":"boolean","description":"Whether IPV6 is supported.\n"},"zoneId":{"type":"string","description":"The zone ID.\n"}},"type":"object","required":["createTime","diskInfos","emrExpiredTime","expiredTime","innerIp","instanceId","pubIp","status","supportIpv6","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emr/getClustersClusterHostGroupListNodeDiskInfo:getClustersClusterHostGroupListNodeDiskInfo":{"properties":{"device":{"type":"string","description":"The disk name.\n"},"diskId":{"type":"string","description":"The ID of the disk.\n"},"diskName":{"type":"string","description":"The disk name.\n"},"size":{"type":"integer","description":"Disk capacity.\n"},"type":{"type":"string","description":"Disk type.\n"}},"type":"object","required":["device","diskId","diskName","size","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emr/getClustersClusterHostPoolInfo:getClustersClusterHostPoolInfo":{"properties":{"hpBizId":{"type":"string","description":"Machine pool ID.\n"},"hpName":{"type":"string","description":"The name of the machine pool.\n"}},"type":"object","required":["hpBizId","hpName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emr/getClustersClusterRelateClusterInfo:getClustersClusterRelateClusterInfo":{"properties":{"clusterId":{"type":"string","description":"The ID of the associated cluster.\n"},"clusterName":{"type":"string","description":"The name of the associated cluster.\n"},"clusterType":{"type":"string","description":"The cluster type of the associated cluster.\n"},"status":{"type":"string","description":"The status  of the associated cluster.\n"}},"type":"object","required":["clusterId","clusterName","clusterType","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emr/getClustersClusterSoftwareInfo:getClustersClusterSoftwareInfo":{"properties":{"clusterType":{"type":"string","description":"Cluster type:\n"},"emrVer":{"type":"string","description":"E-MapReduce version number.\n"},"softwares":{"type":"array","items":{"$ref":"#/types/alicloud:emr/getClustersClusterSoftwareInfoSoftware:getClustersClusterSoftwareInfoSoftware"},"description":"Service list.\n"}},"type":"object","required":["clusterType","emrVer","softwares"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emr/getClustersClusterSoftwareInfoSoftware:getClustersClusterSoftwareInfoSoftware":{"properties":{"displayName":{"type":"string","description":"The name of the service.\n"},"name":{"type":"string","description":"The internal name of the service.\n"},"onlyDisplay":{"type":"boolean","description":"Whether it shows.\n"},"startTpe":{"type":"integer","description":"Startup type.\n"},"version":{"type":"string","description":"Service version.\n"}},"type":"object","required":["displayName","name","onlyDisplay","startTpe","version"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emr/getDiskTypesType:getDiskTypesType":{"properties":{"max":{"type":"integer","description":"The maximum value of the data disk to supported the specific instance type\n"},"min":{"type":"integer","description":"The mininum value of the data disk to supported the specific instance type\n"},"value":{"type":"string","description":"The value of the data disk or system disk\n"}},"type":"object","required":["max","min","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emr/getInstanceTypesType:getInstanceTypesType":{"properties":{"id":{"type":"string","description":"The ID of the instance type.\n"},"localStorageCapacity":{"type":"integer","description":"Local capacity of the applied ecs instance for emr cluster. Unit: GB.\n"},"zoneId":{"type":"string","description":"The supported resources of specific zoneId.\n"}},"type":"object","required":["id","localStorageCapacity","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emr/getMainVersionsMainVersion:getMainVersionsMainVersion":{"properties":{"clusterTypes":{"type":"array","items":{"type":"string"},"description":"A list of cluster types the emr cluster supported. Possible values: `HADOOP`, `ZOOKEEPER`, `KAFKA`, `DRUID`.\n"},"emrVersion":{"type":"string","description":"The version of the emr cluster instance. Possible values: `EMR-4.0.0`, `EMR-3.23.0`, `EMR-3.22.0`.\n"},"imageId":{"type":"string","description":"The image id of the emr cluster instance.\n"}},"type":"object","required":["clusterTypes","emrVersion","imageId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emrv2/ClusterApplicationConfig:ClusterApplicationConfig":{"properties":{"applicationName":{"type":"string","description":"The application name of EMR cluster which has installed.\n"},"configDescription":{"type":"string","description":"The configuration description of application installed.\n"},"configFileName":{"type":"string","description":"The configuration file name of application installed.\n"},"configItemKey":{"type":"string","description":"The configuration item key of application installed.\n"},"configItemValue":{"type":"string","description":"The configuration item value of application installed.\n"},"configScope":{"type":"string","description":"The configuration scope of emr cluster. Supported value: CLUSTER or NODEGROUP.\n"},"nodeGroupId":{"type":"string","description":"The configuration effected which node group id of emr cluster.\n"},"nodeGroupName":{"type":"string","description":"The configuration effected which node group name of emr cluster.\n"}},"type":"object","required":["applicationName","configFileName","configItemKey","configItemValue"]},"alicloud:emrv2/ClusterBootstrapScript:ClusterBootstrapScript":{"properties":{"executionFailStrategy":{"type":"string","description":"The bootstrap scripts execution fail strategy, ’FAILED_BLOCK’ or ‘FAILED_CONTINUE’ .\n"},"executionMoment":{"type":"string","description":"The bootstrap scripts execution moment, ’BEFORE_INSTALL’, ‘AFTER_STARTED’ or ‘BEFORE_START’. The execution moment of BEFORE_START is available since v1.243.0.\n"},"nodeSelector":{"$ref":"#/types/alicloud:emrv2/ClusterBootstrapScriptNodeSelector:ClusterBootstrapScriptNodeSelector","description":"The bootstrap scripts execution target. See \u003cspan pulumi-lang-nodejs=\"`nodeSelector`\" pulumi-lang-dotnet=\"`NodeSelector`\" pulumi-lang-go=\"`nodeSelector`\" pulumi-lang-python=\"`node_selector`\" pulumi-lang-yaml=\"`nodeSelector`\" pulumi-lang-java=\"`nodeSelector`\"\u003e`node_selector`\u003c/span\u003e below.\n"},"priority":{"type":"integer","description":"The bootstrap scripts priority.\n","deprecationMessage":"Field 'priority' has been deprecated from provider version 1.227.0."},"scriptArgs":{"type":"string","description":"The bootstrap script args, e.g. \"--a=b\".\n"},"scriptName":{"type":"string","description":"The bootstrap script name.\n"},"scriptPath":{"type":"string","description":"The bootstrap script path, e.g. \"oss://bucket/path\".\n"}},"type":"object","required":["executionFailStrategy","executionMoment","nodeSelector","scriptArgs","scriptName","scriptPath"]},"alicloud:emrv2/ClusterBootstrapScriptNodeSelector:ClusterBootstrapScriptNodeSelector":{"properties":{"nodeGroupId":{"type":"string","deprecationMessage":"Field 'node_group_id' has been deprecated from provider version 1.227.0. New field 'node_group_ids' replaces it."},"nodeGroupIds":{"type":"array","items":{"type":"string"},"description":"The bootstrap scripts execution target node group ids.\n"},"nodeGroupName":{"type":"string","deprecationMessage":"Field 'node_group_name' has been deprecated from provider version 1.227.0. New field 'node_group_names' replaces it."},"nodeGroupNames":{"type":"array","items":{"type":"string"},"description":"The bootstrap scripts execution target node group names.\n"},"nodeGroupTypes":{"type":"array","items":{"type":"string"},"description":"The bootstrap scripts execution target node group types.\n"},"nodeNames":{"type":"array","items":{"type":"string"},"description":"The bootstrap scripts execution target node names.\n"},"nodeSelectType":{"type":"string","description":"The bootstrap scripts execution target node select type. Supported value: NODE, NODEGROUP or CLUSTER.\n"}},"type":"object","required":["nodeSelectType"]},"alicloud:emrv2/ClusterNodeAttribute:ClusterNodeAttribute":{"properties":{"dataDiskEncrypted":{"type":"boolean","description":"Whether to enable data disk encryption.\n","willReplaceOnChanges":true},"dataDiskKmsKeyId":{"type":"string","description":"The kms key id used to encrypt the data disk. It takes effect when\u003cspan pulumi-lang-nodejs=\" dataDiskEncrypted \" pulumi-lang-dotnet=\" DataDiskEncrypted \" pulumi-lang-go=\" dataDiskEncrypted \" pulumi-lang-python=\" data_disk_encrypted \" pulumi-lang-yaml=\" dataDiskEncrypted \" pulumi-lang-java=\" dataDiskEncrypted \"\u003e data_disk_encrypted \u003c/span\u003eis true.\n","willReplaceOnChanges":true},"keyPairName":{"type":"string","description":"The name of the key pair.\n","willReplaceOnChanges":true},"ramRole":{"type":"string","description":"Alicloud EMR uses roles to perform actions on your behalf when provisioning cluster resources, running applications, dynamically scaling resources. EMR uses the following roles when interacting with other Alicloud services. Default value is AliyunEmrEcsDefaultRole.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"Security Group ID for Cluster.\n","willReplaceOnChanges":true},"systemDiskEncrypted":{"type":"boolean","description":"Whether to enable system disk encryption.\n","willReplaceOnChanges":true},"systemDiskKmsKeyId":{"type":"string","description":"The kms key id used to encrypt the system disk. It takes effect when\u003cspan pulumi-lang-nodejs=\" systemDiskEncrypted \" pulumi-lang-dotnet=\" SystemDiskEncrypted \" pulumi-lang-go=\" systemDiskEncrypted \" pulumi-lang-python=\" system_disk_encrypted \" pulumi-lang-yaml=\" systemDiskEncrypted \" pulumi-lang-java=\" systemDiskEncrypted \"\u003e system_disk_encrypted \u003c/span\u003eis true.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"Used to retrieve instances belong to specified VPC.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"Zone ID, e.g. cn-hangzhou-i\n","willReplaceOnChanges":true}},"type":"object","required":["keyPairName","ramRole","securityGroupId","vpcId","zoneId"],"language":{"nodejs":{"requiredOutputs":["dataDiskEncrypted","dataDiskKmsKeyId","keyPairName","ramRole","securityGroupId","vpcId","zoneId"]}}},"alicloud:emrv2/ClusterNodeGroup:ClusterNodeGroup":{"properties":{"ackConfig":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupAckConfig:ClusterNodeGroupAckConfig","description":"The node group of ack configuration for emr cluster to deploying on kubernetes. See \u003cspan pulumi-lang-nodejs=\"`ackConfig`\" pulumi-lang-dotnet=\"`AckConfig`\" pulumi-lang-go=\"`ackConfig`\" pulumi-lang-python=\"`ack_config`\" pulumi-lang-yaml=\"`ackConfig`\" pulumi-lang-java=\"`ackConfig`\"\u003e`ack_config`\u003c/span\u003e below.\n"},"additionalSecurityGroupIds":{"type":"array","items":{"type":"string"},"description":"Additional security Group IDS for Cluster, you can also specify this key for each node group. **NOTE:** From version 1.236.0, \u003cspan pulumi-lang-nodejs=\"`additionalSecurityGroupIds`\" pulumi-lang-dotnet=\"`AdditionalSecurityGroupIds`\" pulumi-lang-go=\"`additionalSecurityGroupIds`\" pulumi-lang-python=\"`additional_security_group_ids`\" pulumi-lang-yaml=\"`additionalSecurityGroupIds`\" pulumi-lang-java=\"`additionalSecurityGroupIds`\"\u003e`additional_security_group_ids`\u003c/span\u003e can be modified.\n"},"autoScalingPolicy":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupAutoScalingPolicy:ClusterNodeGroupAutoScalingPolicy","description":"The node group auto scaling policy for emr cluster. See \u003cspan pulumi-lang-nodejs=\"`autoScalingPolicy`\" pulumi-lang-dotnet=\"`AutoScalingPolicy`\" pulumi-lang-go=\"`autoScalingPolicy`\" pulumi-lang-python=\"`auto_scaling_policy`\" pulumi-lang-yaml=\"`autoScalingPolicy`\" pulumi-lang-java=\"`autoScalingPolicy`\"\u003e`auto_scaling_policy`\u003c/span\u003e below.\n"},"costOptimizedConfig":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupCostOptimizedConfig:ClusterNodeGroupCostOptimizedConfig","description":"The detail cost optimized configuration of emr cluster. See \u003cspan pulumi-lang-nodejs=\"`costOptimizedConfig`\" pulumi-lang-dotnet=\"`CostOptimizedConfig`\" pulumi-lang-go=\"`costOptimizedConfig`\" pulumi-lang-python=\"`cost_optimized_config`\" pulumi-lang-yaml=\"`costOptimizedConfig`\" pulumi-lang-java=\"`costOptimizedConfig`\"\u003e`cost_optimized_config`\u003c/span\u003e below. **NOTE:** From version 1.236.0, \u003cspan pulumi-lang-nodejs=\"`costOptimizedConfig`\" pulumi-lang-dotnet=\"`CostOptimizedConfig`\" pulumi-lang-go=\"`costOptimizedConfig`\" pulumi-lang-python=\"`cost_optimized_config`\" pulumi-lang-yaml=\"`costOptimizedConfig`\" pulumi-lang-java=\"`costOptimizedConfig`\"\u003e`cost_optimized_config`\u003c/span\u003e can be modified.\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupDataDisk:ClusterNodeGroupDataDisk"},"description":"Host Ecs data disks information in this node group. See \u003cspan pulumi-lang-nodejs=\"`dataDisks`\" pulumi-lang-dotnet=\"`DataDisks`\" pulumi-lang-go=\"`dataDisks`\" pulumi-lang-python=\"`data_disks`\" pulumi-lang-yaml=\"`dataDisks`\" pulumi-lang-java=\"`dataDisks`\"\u003e`data_disks`\u003c/span\u003e below.\n"},"deploymentSetStrategy":{"type":"string","description":"Deployment set strategy for this cluster node group. Supported value: NONE, CLUSTER or NODE_GROUP. **NOTE:** From version 1.236.0, \u003cspan pulumi-lang-nodejs=\"`deploymentSetStrategy`\" pulumi-lang-dotnet=\"`DeploymentSetStrategy`\" pulumi-lang-go=\"`deploymentSetStrategy`\" pulumi-lang-python=\"`deployment_set_strategy`\" pulumi-lang-yaml=\"`deploymentSetStrategy`\" pulumi-lang-java=\"`deploymentSetStrategy`\"\u003e`deployment_set_strategy`\u003c/span\u003e can be modified.\n"},"gracefulShutdown":{"type":"boolean","description":"Enable emr cluster of task node graceful decommission, ’true’ or ‘false’ .\n"},"instanceTypes":{"type":"array","items":{"type":"string"},"description":"Host Ecs instance types. **NOTE:** From version 1.236.0, \u003cspan pulumi-lang-nodejs=\"`instanceTypes`\" pulumi-lang-dotnet=\"`InstanceTypes`\" pulumi-lang-go=\"`instanceTypes`\" pulumi-lang-python=\"`instance_types`\" pulumi-lang-yaml=\"`instanceTypes`\" pulumi-lang-java=\"`instanceTypes`\"\u003e`instance_types`\u003c/span\u003e can be modified.\n"},"nodeCount":{"type":"integer","description":"Host Ecs number in this node group.\n"},"nodeGroupName":{"type":"string","description":"The node group name of emr cluster.\n"},"nodeGroupType":{"type":"string","description":"The node group type of emr cluster, supported value: MASTER, CORE or TASK. Node group type of GATEWAY is available since v1.219.0. Node group type of MASTER-EXTEND is available since v1.243.0.\n"},"nodeResizeStrategy":{"type":"string","description":"Node resize strategy for this cluster node group. Supported value: PRIORITY, COST_OPTIMIZED.\n"},"paymentType":{"type":"string","description":"Payment Type for this cluster. Supported value: PayAsYouGo or Subscription.\n"},"privatePoolOptions":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupPrivatePoolOptions:ClusterNodeGroupPrivatePoolOptions","description":"The node group specific private pool resources. See \u003cspan pulumi-lang-nodejs=\"`privatePoolOptions`\" pulumi-lang-dotnet=\"`PrivatePoolOptions`\" pulumi-lang-go=\"`privatePoolOptions`\" pulumi-lang-python=\"`private_pool_options`\" pulumi-lang-yaml=\"`privatePoolOptions`\" pulumi-lang-java=\"`privatePoolOptions`\"\u003e`private_pool_options`\u003c/span\u003e below.\n"},"spotBidPrices":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupSpotBidPrice:ClusterNodeGroupSpotBidPrice"},"description":"The spot bid prices of a PayAsYouGo instance. See \u003cspan pulumi-lang-nodejs=\"`spotBidPrices`\" pulumi-lang-dotnet=\"`SpotBidPrices`\" pulumi-lang-go=\"`spotBidPrices`\" pulumi-lang-python=\"`spot_bid_prices`\" pulumi-lang-yaml=\"`spotBidPrices`\" pulumi-lang-java=\"`spotBidPrices`\"\u003e`spot_bid_prices`\u003c/span\u003e below.\n"},"spotInstanceRemedy":{"type":"boolean","description":"Whether to replace spot instances with newly created spot/onDemand instance when receive a spot recycling message.\n"},"spotStrategy":{"type":"string","description":"The spot strategy configuration of emr cluster. Valid values: `NoSpot`, `SpotWithPriceLimit`, `SpotAsPriceGo`.\n"},"subscriptionConfig":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupSubscriptionConfig:ClusterNodeGroupSubscriptionConfig","description":"The detail configuration of subscription payment type. See \u003cspan pulumi-lang-nodejs=\"`subscriptionConfig`\" pulumi-lang-dotnet=\"`SubscriptionConfig`\" pulumi-lang-go=\"`subscriptionConfig`\" pulumi-lang-python=\"`subscription_config`\" pulumi-lang-yaml=\"`subscriptionConfig`\" pulumi-lang-java=\"`subscriptionConfig`\"\u003e`subscription_config`\u003c/span\u003e below.\n"},"systemDisk":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupSystemDisk:ClusterNodeGroupSystemDisk","description":"Host Ecs system disk information in this node group. See \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e below.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"Global vSwitch ids, you can also specify it in node group. **NOTE:** From version 1.236.0, \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e can be modified.\n"},"withPublicIp":{"type":"boolean","description":"Whether the node has a public IP address enabled. **NOTE:** From version 1.236.0, \u003cspan pulumi-lang-nodejs=\"`withPublicIp`\" pulumi-lang-dotnet=\"`WithPublicIp`\" pulumi-lang-go=\"`withPublicIp`\" pulumi-lang-python=\"`with_public_ip`\" pulumi-lang-yaml=\"`withPublicIp`\" pulumi-lang-java=\"`withPublicIp`\"\u003e`with_public_ip`\u003c/span\u003e can be modified.\n"}},"type":"object","required":["dataDisks","instanceTypes","nodeCount","nodeGroupName","nodeGroupType","systemDisk"],"language":{"nodejs":{"requiredOutputs":["dataDisks","deploymentSetStrategy","gracefulShutdown","instanceTypes","nodeCount","nodeGroupName","nodeGroupType","nodeResizeStrategy","paymentType","spotInstanceRemedy","systemDisk","withPublicIp"]}}},"alicloud:emrv2/ClusterNodeGroupAckConfig:ClusterNodeGroupAckConfig":{"properties":{"ackInstanceId":{"type":"string","description":"The ack cluster instance id.\n"},"customAnnotations":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupAckConfigCustomAnnotation:ClusterNodeGroupAckConfigCustomAnnotation"},"description":"The ack cluster custom annotations. See \u003cspan pulumi-lang-nodejs=\"`customAnnotations`\" pulumi-lang-dotnet=\"`CustomAnnotations`\" pulumi-lang-go=\"`customAnnotations`\" pulumi-lang-python=\"`custom_annotations`\" pulumi-lang-yaml=\"`customAnnotations`\" pulumi-lang-java=\"`customAnnotations`\"\u003e`custom_annotations`\u003c/span\u003e below.\n"},"customLabels":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupAckConfigCustomLabel:ClusterNodeGroupAckConfigCustomLabel"},"description":"The ack cluster custom labels. See \u003cspan pulumi-lang-nodejs=\"`customLabels`\" pulumi-lang-dotnet=\"`CustomLabels`\" pulumi-lang-go=\"`customLabels`\" pulumi-lang-python=\"`custom_labels`\" pulumi-lang-yaml=\"`customLabels`\" pulumi-lang-java=\"`customLabels`\"\u003e`custom_labels`\u003c/span\u003e below.\n"},"limitCpu":{"type":"number","description":"The job pod resource of limit cpu.\n"},"limitMemory":{"type":"number","description":"The job pod resource of limit memory.\n"},"namespace":{"type":"string","description":"The ack cluster namespace.\n"},"nodeAffinity":{"type":"string","description":"The ack cluster node affinity.\n"},"nodeSelectors":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupAckConfigNodeSelector:ClusterNodeGroupAckConfigNodeSelector"},"description":"The ack cluster node selectors for job pods scheduling. See \u003cspan pulumi-lang-nodejs=\"`nodeSelectors`\" pulumi-lang-dotnet=\"`NodeSelectors`\" pulumi-lang-go=\"`nodeSelectors`\" pulumi-lang-python=\"`node_selectors`\" pulumi-lang-yaml=\"`nodeSelectors`\" pulumi-lang-java=\"`nodeSelectors`\"\u003e`node_selectors`\u003c/span\u003e below.\n"},"podAffinity":{"type":"string","description":"The job pod affinity.\n"},"podAntiAffinity":{"type":"string","description":"The job pod anti-affinity.\n"},"preStartCommands":{"type":"array","items":{"type":"string"},"description":"The job pod pre start command.\n"},"pvcs":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupAckConfigPvc:ClusterNodeGroupAckConfigPvc"},"description":"The ack cluster persistent volume claim. See \u003cspan pulumi-lang-nodejs=\"`pvcs`\" pulumi-lang-dotnet=\"`Pvcs`\" pulumi-lang-go=\"`pvcs`\" pulumi-lang-python=\"`pvcs`\" pulumi-lang-yaml=\"`pvcs`\" pulumi-lang-java=\"`pvcs`\"\u003e`pvcs`\u003c/span\u003e below.\n"},"requestCpu":{"type":"number","description":"The job pod resource of request cpu.\n"},"requestMemory":{"type":"number","description":"The job pod resource of request memory.\n"},"tolerations":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupAckConfigToleration:ClusterNodeGroupAckConfigToleration"},"description":"The ack cluster tolerations. See \u003cspan pulumi-lang-nodejs=\"`tolerations`\" pulumi-lang-dotnet=\"`Tolerations`\" pulumi-lang-go=\"`tolerations`\" pulumi-lang-python=\"`tolerations`\" pulumi-lang-yaml=\"`tolerations`\" pulumi-lang-java=\"`tolerations`\"\u003e`tolerations`\u003c/span\u003e below.\n"},"volumeMounts":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupAckConfigVolumeMount:ClusterNodeGroupAckConfigVolumeMount"},"description":"The ack cluster volume mounts. See \u003cspan pulumi-lang-nodejs=\"`volumeMounts`\" pulumi-lang-dotnet=\"`VolumeMounts`\" pulumi-lang-go=\"`volumeMounts`\" pulumi-lang-python=\"`volume_mounts`\" pulumi-lang-yaml=\"`volumeMounts`\" pulumi-lang-java=\"`volumeMounts`\"\u003e`volume_mounts`\u003c/span\u003e below.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupAckConfigVolume:ClusterNodeGroupAckConfigVolume"},"description":"The ack cluster volumes. See \u003cspan pulumi-lang-nodejs=\"`volumes`\" pulumi-lang-dotnet=\"`Volumes`\" pulumi-lang-go=\"`volumes`\" pulumi-lang-python=\"`volumes`\" pulumi-lang-yaml=\"`volumes`\" pulumi-lang-java=\"`volumes`\"\u003e`volumes`\u003c/span\u003e below.\n"}},"type":"object","required":["ackInstanceId","limitCpu","limitMemory","namespace","requestCpu","requestMemory"]},"alicloud:emrv2/ClusterNodeGroupAckConfigCustomAnnotation:ClusterNodeGroupAckConfigCustomAnnotation":{"properties":{"key":{"type":"string","description":"The tag key for this scaling rule specific metrics trigger.\n"},"value":{"type":"string","description":"The tag value for this scaling rule specific metrics trigger.\n"}},"type":"object","required":["key"]},"alicloud:emrv2/ClusterNodeGroupAckConfigCustomLabel:ClusterNodeGroupAckConfigCustomLabel":{"properties":{"key":{"type":"string","description":"The tag key for this scaling rule specific metrics trigger.\n"},"value":{"type":"string","description":"The tag value for this scaling rule specific metrics trigger.\n"}},"type":"object","required":["key"]},"alicloud:emrv2/ClusterNodeGroupAckConfigNodeSelector:ClusterNodeGroupAckConfigNodeSelector":{"properties":{"key":{"type":"string","description":"The tag key for this scaling rule specific metrics trigger.\n"},"value":{"type":"string","description":"The tag value for this scaling rule specific metrics trigger.\n"}},"type":"object","required":["key"]},"alicloud:emrv2/ClusterNodeGroupAckConfigPvc:ClusterNodeGroupAckConfigPvc":{"properties":{"dataDiskSize":{"type":"integer","description":"The ack cluster job pod data disk size of persistent volume claim.\n"},"dataDiskStorageClass":{"type":"string","description":"The ack cluster job pod data disk storage class of persistent volume claim.\n"},"name":{"type":"string","description":"The name of ack cluster job pod volume mounts.\n"},"path":{"type":"string","description":"The path of ack cluster job pod volume mounts.\n"}},"type":"object","required":["dataDiskSize","dataDiskStorageClass","name","path"]},"alicloud:emrv2/ClusterNodeGroupAckConfigToleration:ClusterNodeGroupAckConfigToleration":{"properties":{"effect":{"type":"string","description":"The effect of ack cluster tolerations.\n"},"key":{"type":"string","description":"The tag key for this scaling rule specific metrics trigger.\n"},"operator":{"type":"string","description":"The operator of ack cluster tolerations.\n"},"value":{"type":"string","description":"The tag value for this scaling rule specific metrics trigger.\n"}},"type":"object"},"alicloud:emrv2/ClusterNodeGroupAckConfigVolume:ClusterNodeGroupAckConfigVolume":{"properties":{"name":{"type":"string","description":"The name of ack cluster job pod volume mounts.\n"},"path":{"type":"string","description":"The path of ack cluster job pod volume mounts.\n"},"type":{"type":"string","description":"The ack cluster job pod volumes type.\n"}},"type":"object","required":["name","path","type"]},"alicloud:emrv2/ClusterNodeGroupAckConfigVolumeMount:ClusterNodeGroupAckConfigVolumeMount":{"properties":{"name":{"type":"string","description":"The name of ack cluster job pod volume mounts.\n"},"path":{"type":"string","description":"The path of ack cluster job pod volume mounts.\n"}},"type":"object","required":["name","path"]},"alicloud:emrv2/ClusterNodeGroupAutoScalingPolicy:ClusterNodeGroupAutoScalingPolicy":{"properties":{"constraints":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupAutoScalingPolicyConstraints:ClusterNodeGroupAutoScalingPolicyConstraints","description":"The constraints of auto scaling policy. See \u003cspan pulumi-lang-nodejs=\"`constraints`\" pulumi-lang-dotnet=\"`Constraints`\" pulumi-lang-go=\"`constraints`\" pulumi-lang-python=\"`constraints`\" pulumi-lang-yaml=\"`constraints`\" pulumi-lang-java=\"`constraints`\"\u003e`constraints`\u003c/span\u003e below.\n"},"scalingRules":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupAutoScalingPolicyScalingRule:ClusterNodeGroupAutoScalingPolicyScalingRule"},"description":"The scaling rules of auto scaling policy. See \u003cspan pulumi-lang-nodejs=\"`scalingRules`\" pulumi-lang-dotnet=\"`ScalingRules`\" pulumi-lang-go=\"`scalingRules`\" pulumi-lang-python=\"`scaling_rules`\" pulumi-lang-yaml=\"`scalingRules`\" pulumi-lang-java=\"`scalingRules`\"\u003e`scaling_rules`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:emrv2/ClusterNodeGroupAutoScalingPolicyConstraints:ClusterNodeGroupAutoScalingPolicyConstraints":{"properties":{"maxCapacity":{"type":"integer","description":"The maximum capacity of constraints for emr node group auto scaling policy.\n"},"minCapacity":{"type":"integer","description":"The minimum capacity of constraints for emr node group auto scaling policy.\n"}},"type":"object"},"alicloud:emrv2/ClusterNodeGroupAutoScalingPolicyScalingRule:ClusterNodeGroupAutoScalingPolicyScalingRule":{"properties":{"activityType":{"type":"string","description":"The activity type of auto scaling policy. Valid values: `SCALE_OUT` and `SCALE_IN`.\n"},"adjustmentType":{"type":"string","description":"The adjustment type of auto scaling policy. Valid values: `CHANGE_IN_CAPACITY` and `EXACT_CAPACITY`.\n"},"adjustmentValue":{"type":"integer","description":"The adjustment value of auto scaling policy. The value should between 1 and 5000.\n"},"metricsTrigger":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupAutoScalingPolicyScalingRuleMetricsTrigger:ClusterNodeGroupAutoScalingPolicyScalingRuleMetricsTrigger","description":"The trigger metrics of scaling rules for emr node group auto scaling policy. See \u003cspan pulumi-lang-nodejs=\"`metricsTrigger`\" pulumi-lang-dotnet=\"`MetricsTrigger`\" pulumi-lang-go=\"`metricsTrigger`\" pulumi-lang-python=\"`metrics_trigger`\" pulumi-lang-yaml=\"`metricsTrigger`\" pulumi-lang-java=\"`metricsTrigger`\"\u003e`metrics_trigger`\u003c/span\u003e below.\n"},"minAdjustmentValue":{"type":"integer","description":"The minimum adjustment value of auto scaling policy.\n"},"ruleName":{"type":"string","description":"The rule name of auto scaling policy.\n"},"timeTrigger":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupAutoScalingPolicyScalingRuleTimeTrigger:ClusterNodeGroupAutoScalingPolicyScalingRuleTimeTrigger","description":"The trigger time of scaling rules for emr node group auto scaling policy. See \u003cspan pulumi-lang-nodejs=\"`timeTrigger`\" pulumi-lang-dotnet=\"`TimeTrigger`\" pulumi-lang-go=\"`timeTrigger`\" pulumi-lang-python=\"`time_trigger`\" pulumi-lang-yaml=\"`timeTrigger`\" pulumi-lang-java=\"`timeTrigger`\"\u003e`time_trigger`\u003c/span\u003e below.\n"},"triggerType":{"type":"string","description":"The trigger type of auto scaling policy. Valid values: `TIME_TRIGGER` and `METRICS_TRIGGER`.\n"}},"type":"object","required":["activityType","adjustmentValue","ruleName","triggerType"]},"alicloud:emrv2/ClusterNodeGroupAutoScalingPolicyScalingRuleMetricsTrigger:ClusterNodeGroupAutoScalingPolicyScalingRuleMetricsTrigger":{"properties":{"conditionLogicOperator":{"type":"string","description":"The condition logic operator for this scaling rule specific metrics trigger. Valid values: `And` and `Or`.\n"},"conditions":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupAutoScalingPolicyScalingRuleMetricsTriggerCondition:ClusterNodeGroupAutoScalingPolicyScalingRuleMetricsTriggerCondition"},"description":"The conditions for this scaling rule specific metrics trigger. See \u003cspan pulumi-lang-nodejs=\"`conditions`\" pulumi-lang-dotnet=\"`Conditions`\" pulumi-lang-go=\"`conditions`\" pulumi-lang-python=\"`conditions`\" pulumi-lang-yaml=\"`conditions`\" pulumi-lang-java=\"`conditions`\"\u003e`conditions`\u003c/span\u003e below.\n"},"coolDownInterval":{"type":"integer","description":"The time of cool down interval for this scaling rule specific metrics trigger.\n"},"evaluationCount":{"type":"integer","description":"The evaluation count for this scaling rule specific metrics trigger.\n"},"timeConstraints":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupAutoScalingPolicyScalingRuleMetricsTriggerTimeConstraint:ClusterNodeGroupAutoScalingPolicyScalingRuleMetricsTriggerTimeConstraint"},"description":"The time constraints for this scaling rule specific metrics trigger. See \u003cspan pulumi-lang-nodejs=\"`timeConstraints`\" pulumi-lang-dotnet=\"`TimeConstraints`\" pulumi-lang-go=\"`timeConstraints`\" pulumi-lang-python=\"`time_constraints`\" pulumi-lang-yaml=\"`timeConstraints`\" pulumi-lang-java=\"`timeConstraints`\"\u003e`time_constraints`\u003c/span\u003e below.\n"},"timeWindow":{"type":"integer","description":"The time window for this scaling rule specific metrics trigger.\n"}},"type":"object","required":["evaluationCount","timeWindow"]},"alicloud:emrv2/ClusterNodeGroupAutoScalingPolicyScalingRuleMetricsTriggerCondition:ClusterNodeGroupAutoScalingPolicyScalingRuleMetricsTriggerCondition":{"properties":{"comparisonOperator":{"type":"string","description":"The comparison operator for this scaling rule specific metrics trigger. Invalid values: `EQ`, `NE`, `GT`, `LT`, `GE`, `LE`.\n"},"metricName":{"type":"string","description":"The metric name for this scaling rule specific metrics trigger.\n"},"statistics":{"type":"string","description":"The statistics for this scaling rule specific metrics trigger.\n"},"tags":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroupAutoScalingPolicyScalingRuleMetricsTriggerConditionTag:ClusterNodeGroupAutoScalingPolicyScalingRuleMetricsTriggerConditionTag"},"description":"A mapping of tags to assign to the resource.\n"},"threshold":{"type":"number","description":"The threshold for this scaling rule specific metrics trigger.\n"}},"type":"object","required":["comparisonOperator","metricName","statistics","threshold"]},"alicloud:emrv2/ClusterNodeGroupAutoScalingPolicyScalingRuleMetricsTriggerConditionTag:ClusterNodeGroupAutoScalingPolicyScalingRuleMetricsTriggerConditionTag":{"properties":{"key":{"type":"string","description":"The tag key for this scaling rule specific metrics trigger.\n"},"value":{"type":"string","description":"The tag value for this scaling rule specific metrics trigger.\n"}},"type":"object","required":["key"]},"alicloud:emrv2/ClusterNodeGroupAutoScalingPolicyScalingRuleMetricsTriggerTimeConstraint:ClusterNodeGroupAutoScalingPolicyScalingRuleMetricsTriggerTimeConstraint":{"properties":{"endTime":{"type":"string","description":"The end time for this scaling rule specific metrics trigger.\n"},"startTime":{"type":"string","description":"The start time for this scaling rule specific metrics trigger.\n"}},"type":"object"},"alicloud:emrv2/ClusterNodeGroupAutoScalingPolicyScalingRuleTimeTrigger:ClusterNodeGroupAutoScalingPolicyScalingRuleTimeTrigger":{"properties":{"endTime":{"type":"string","description":"The end time for this scaling rule specific metrics trigger.\n"},"launchExpirationTime":{"type":"integer","description":"The launch expiration time for this scaling rule specific time trigger. The value should between 0 and 3600.\n"},"launchTime":{"type":"string","description":"The launch time for this scaling rule specific time trigger.\n"},"recurrenceType":{"type":"string","description":"The recurrence type for this scaling rule specific time trigger. Valid values: `MINUTELY`, `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`.\n"},"recurrenceValue":{"type":"string","description":"The recurrence value for this scaling rule specific time trigger.\n"},"startTime":{"type":"string","description":"The start time for this scaling rule specific metrics trigger.\n"}},"type":"object","required":["launchTime"]},"alicloud:emrv2/ClusterNodeGroupCostOptimizedConfig:ClusterNodeGroupCostOptimizedConfig":{"properties":{"onDemandBaseCapacity":{"type":"integer","description":"The cost optimized configuration which on demand based capacity.\n"},"onDemandPercentageAboveBaseCapacity":{"type":"integer","description":"The cost optimized configuration which on demand percentage above based capacity.\n"},"spotInstancePools":{"type":"integer","description":"The cost optimized configuration with spot instance pools.\n"}},"type":"object","required":["onDemandBaseCapacity","onDemandPercentageAboveBaseCapacity","spotInstancePools"]},"alicloud:emrv2/ClusterNodeGroupDataDisk:ClusterNodeGroupDataDisk":{"properties":{"category":{"type":"string","description":"The type of the data disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localDisk`\" pulumi-lang-dotnet=\"`LocalDisk`\" pulumi-lang-go=\"`localDisk`\" pulumi-lang-python=\"`local_disk`\" pulumi-lang-yaml=\"`localDisk`\" pulumi-lang-java=\"`localDisk`\"\u003e`local_disk`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e. **NOTE:** Since version v1.230.0, the categories \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localDisk`\" pulumi-lang-dotnet=\"`LocalDisk`\" pulumi-lang-go=\"`localDisk`\" pulumi-lang-python=\"`local_disk`\" pulumi-lang-yaml=\"`localDisk`\" pulumi-lang-java=\"`localDisk`\"\u003e`local_disk`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e are available.\n"},"count":{"type":"integer","description":"The count of a data disk.\n"},"performanceLevel":{"type":"string","description":"Worker node data disk performance level, when \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e values \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, the optional values are `PL0`, `PL1`, `PL2` or `PL3`, but the specific performance level is related to the disk capacity.\n"},"size":{"type":"integer","description":"The size of a data disk, at least 40. Unit: GiB.\n"}},"type":"object","required":["category","size"],"language":{"nodejs":{"requiredOutputs":["category","count","performanceLevel","size"]}}},"alicloud:emrv2/ClusterNodeGroupPrivatePoolOptions:ClusterNodeGroupPrivatePoolOptions":{"properties":{"matchCriteria":{"type":"string","description":"The node group specific private pool resource match criteria. Valid values: `Open`, `Target`, `None`.\n"},"privatePoolIds":{"type":"array","items":{"type":"string"},"description":"The node group specific private pool resource ids.\n"}},"type":"object"},"alicloud:emrv2/ClusterNodeGroupSpotBidPrice:ClusterNodeGroupSpotBidPrice":{"properties":{"bidPrice":{"type":"integer","description":"The spot bid price of a PayAsYouGo instance.\n"},"instanceType":{"type":"string","description":"Host Ecs instance type.\n"}},"type":"object","required":["bidPrice","instanceType"]},"alicloud:emrv2/ClusterNodeGroupSubscriptionConfig:ClusterNodeGroupSubscriptionConfig":{"properties":{"autoPayOrder":{"type":"boolean","description":"Auto pay order for payment type of subscription, ’true’ or ‘false’ .  Default value is ’true’.\n"},"autoRenew":{"type":"boolean","description":"Auto renew for prepaid, ’true’ or ‘false’ . Default value: false.\n"},"autoRenewDuration":{"type":"integer","description":"If paymentType is Subscription, this should be specified. Supported value: 1、2、3、4、5、6、7、8、9、12、24、36、48.\n"},"autoRenewDurationUnit":{"type":"string","description":"If paymentType is Subscription, this should be specified. Supported value: Month or Year.\n"},"paymentDuration":{"type":"integer","description":"If paymentType is Subscription, this should be specified. Supported value: 1、2、3、4、5、6、7、8、9、12、24、36、48.\n"},"paymentDurationUnit":{"type":"string","description":"If paymentType is Subscription, this should be specified. Supported value: Month or Year.\n"}},"type":"object","required":["paymentDuration","paymentDurationUnit"]},"alicloud:emrv2/ClusterNodeGroupSystemDisk:ClusterNodeGroupSystemDisk":{"properties":{"category":{"type":"string","description":"The type of the data disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localDisk`\" pulumi-lang-dotnet=\"`LocalDisk`\" pulumi-lang-go=\"`localDisk`\" pulumi-lang-python=\"`local_disk`\" pulumi-lang-yaml=\"`localDisk`\" pulumi-lang-java=\"`localDisk`\"\u003e`local_disk`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e. **NOTE:** Since version v1.230.0, the categories \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localDisk`\" pulumi-lang-dotnet=\"`LocalDisk`\" pulumi-lang-go=\"`localDisk`\" pulumi-lang-python=\"`local_disk`\" pulumi-lang-yaml=\"`localDisk`\" pulumi-lang-java=\"`localDisk`\"\u003e`local_disk`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e are available.\n"},"count":{"type":"integer","description":"The count of a data disk.\n"},"performanceLevel":{"type":"string","description":"Worker node data disk performance level, when \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e values \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, the optional values are `PL0`, `PL1`, `PL2` or `PL3`, but the specific performance level is related to the disk capacity.\n"},"size":{"type":"integer","description":"The size of a data disk, at least 40. Unit: GiB.\n"}},"type":"object","required":["category","size"],"language":{"nodejs":{"requiredOutputs":["category","count","performanceLevel","size"]}}},"alicloud:emrv2/ClusterSubscriptionConfig:ClusterSubscriptionConfig":{"properties":{"autoPayOrder":{"type":"boolean","description":"Auto pay order for payment type of subscription, ’true’ or ‘false’ .  Default value is ’true’.\n"},"autoRenew":{"type":"boolean","description":"Auto renew for prepaid, ’true’ or ‘false’ . Default value: false.\n"},"autoRenewDuration":{"type":"integer","description":"If paymentType is Subscription, this should be specified. Supported value: 1、2、3、4、5、6、7、8、9、12、24、36、48.\n"},"autoRenewDurationUnit":{"type":"string","description":"If paymentType is Subscription, this should be specified. Supported value: Month or Year.\n"},"paymentDuration":{"type":"integer","description":"If paymentType is Subscription, this should be specified. Supported value: 1、2、3、4、5、6、7、8、9、12、24、36、48.\n"},"paymentDurationUnit":{"type":"string","description":"If paymentType is Subscription, this should be specified. Supported value: Month or Year.\n"}},"type":"object","required":["paymentDuration","paymentDurationUnit"]},"alicloud:emrv2/getClusterInstancesInstance:getClusterInstancesInstance":{"properties":{"autoRenew":{"type":"boolean","description":"The emr cluster node group whether auto renew when payment type is 'Subscription'.\n"},"autoRenewDuration":{"type":"integer","description":"The emr cluster node group auto renew duration when payment type is 'Subscription'.\n"},"autoRenewDurationUnit":{"type":"string","description":"The emr cluster node group auto renew duration unit when payment type is 'Subscription'.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"expireTime":{"type":"string","description":"The expire time of the resource.\n"},"instanceId":{"type":"string","description":"The emr cluster ecs instance ID.\n"},"instanceName":{"type":"string","description":"The emr cluster ecs instance name.\n"},"instanceState":{"type":"string","description":"The emr cluster ecs instance state.\n"},"instanceType":{"type":"string","description":"The emr cluster ecs instance type.\n"},"nodeGroupId":{"type":"string","description":"The emr cluster node group ID.\n"},"nodeGroupType":{"type":"string","description":"The emr cluster node group type.\n"},"privateIp":{"type":"string","description":"The emr cluster ecs instance private ip.\n"},"publicIp":{"type":"string","description":"The emr cluster ecs instance public ip.\n"},"zoneId":{"type":"string","description":"The emr cluster node group zone ID.\n"}},"type":"object","required":["autoRenew","autoRenewDuration","autoRenewDurationUnit","createTime","expireTime","instanceId","instanceName","instanceState","instanceType","nodeGroupId","nodeGroupType","privateIp","publicIp","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emrv2/getClustersCluster:getClustersCluster":{"properties":{"clusterId":{"type":"string","description":"The first ID of the resource.\n"},"clusterName":{"type":"string","description":"The cluster name.\n"},"clusterState":{"type":"string","description":"The state of the emr cluster.\n"},"clusterType":{"type":"string","description":"The type of the emr cluster.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"emrDefaultRole":{"type":"string","description":"The ecs default role belongs to this emr cluster.\n"},"endTime":{"type":"string","description":"The end time of the resource.\n"},"expireTime":{"type":"string","description":"The expire time of the resource.\n"},"paymentType":{"type":"string","description":"The payment type of the emr cluster.\n"},"readyTime":{"type":"string","description":"The ready time of the resource.\n"},"releaseVersion":{"type":"string","description":"The release version of the resource.\n"},"resourceGroupId":{"type":"string","description":"The Resource Group ID.\n"},"stateChangeReason":{"type":"object","additionalProperties":{"type":"string"},"description":"The cluster state change reason.\n"},"tags":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/getClustersClusterTag:getClustersClusterTag"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object","required":["clusterId","clusterName","clusterState","clusterType","createTime","emrDefaultRole","endTime","expireTime","paymentType","readyTime","releaseVersion","resourceGroupId","stateChangeReason","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:emrv2/getClustersClusterTag:getClustersClusterTag":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ens/InstanceDataDisk:InstanceDataDisk":{"properties":{"category":{"type":"string","description":"Data disk type. Optional values:\n- cloud_efficiency: Ultra cloud disk\n- cloud_ssd: Full Flash cloud disk\n- local_hdd: local hdd disk\n- local_ssd: local disk ssd.\n","willReplaceOnChanges":true},"diskId":{"type":"string","description":"Cloud Disk ID.\n"},"encryptKeyId":{"type":"string","description":"The ID of the KMS key used by the cloud disk.\n","willReplaceOnChanges":true},"encrypted":{"type":"boolean","description":"Whether to encrypt the cloud disk. Value range:  true: Yes  false (default): No.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"Data disk size, unit: GB.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["diskId"]}}},"alicloud:ens/InstanceSystemDisk:InstanceSystemDisk":{"properties":{"category":{"type":"string","description":"System disk type. Value\n- cloud_efficiency: Ultra cloud disk\n- cloud_ssd: Full Flash cloud disk\n- local_hdd: local hdd disk\n- local_ssd: local disk ssd.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"System disk size, unit: GB.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["category","size"]}}},"alicloud:ens/LoadBalancerBackendServer:LoadBalancerBackendServer":{"properties":{"ip":{"type":"string","description":"IP address of the backend server  Example value: 192.168.0.5.\n"},"port":{"type":"integer","description":"Port used by the backend server.\n"},"serverId":{"type":"string","description":"Backend server instance ID  Example value: i-5vb5h5njxiuhn48a * * * *.\n"},"type":{"type":"string","description":"Backend server type  Example value: ens.\n"},"weight":{"type":"integer","description":"Weight of the backend server  Example value: 100.\n"}},"type":"object","required":["serverId"],"language":{"nodejs":{"requiredOutputs":["ip","port","serverId","weight"]}}},"alicloud:ens/getKeyPairsPair:getKeyPairsPair":{"properties":{"createTime":{"type":"string","description":"The creation time of the key pair. The date format is in accordance with ISO8601 notation and uses UTC time. The format is yyyy-MM-ddTHH:mm:ssZ.\n"},"id":{"type":"string","description":"The ID of the Key Pair.\n"},"keyPairFingerPrint":{"type":"string","description":"Fingerprint of the key pair.\n"},"keyPairName":{"type":"string","description":"The name of the key pair.\n"},"version":{"type":"string","description":"The version number.\n"}},"type":"object","required":["createTime","id","keyPairFingerPrint","keyPairName","version"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:esa/HttpIncomingRequestHeaderModificationRuleRequestHeaderModification:HttpIncomingRequestHeaderModificationRuleRequestHeaderModification":{"properties":{"name":{"type":"string","description":"Request Header Name.\n"},"operation":{"type":"string","description":"Mode of operation. Value range:\n"},"type":{"type":"string","description":"Value type. Value range:\n"},"value":{"type":"string","description":"Request header value\n"}},"type":"object","required":["name","operation"]},"alicloud:esa/HttpIncomingResponseHeaderModificationRuleResponseHeaderModification:HttpIncomingResponseHeaderModificationRuleResponseHeaderModification":{"properties":{"name":{"type":"string","description":"The response header name.\n"},"operation":{"type":"string","description":"Operation method. Possible values:\n"},"type":{"type":"string","description":"The value type. Value range:\n"},"value":{"type":"string","description":"The response header value.\n"}},"type":"object","required":["name","operation"]},"alicloud:esa/HttpRequestHeaderModificationRuleRequestHeaderModification:HttpRequestHeaderModificationRuleRequestHeaderModification":{"properties":{"name":{"type":"string","description":"Request Header Name.\n"},"operation":{"type":"string","description":"Mode of operation. Value range:\n"},"type":{"type":"string","description":"Value type. Value range:\n"},"value":{"type":"string","description":"Request header value\n"}},"type":"object","required":["name","operation"]},"alicloud:esa/HttpResponseHeaderModificationRuleResponseHeaderModification:HttpResponseHeaderModificationRuleResponseHeaderModification":{"properties":{"name":{"type":"string","description":"The response header name.\n"},"operation":{"type":"string","description":"Operation method. Possible values:\n"},"type":{"type":"string","description":"The value type. Value range:\n"},"value":{"type":"string","description":"The response header value.\n"}},"type":"object","required":["name","operation"],"language":{"nodejs":{"requiredOutputs":["name","operation","type"]}}},"alicloud:esa/LoadBalancerAdaptiveRouting:LoadBalancerAdaptiveRouting":{"properties":{"failoverAcrossPools":{"type":"boolean","description":"Whether to failover across pools.\n"}},"type":"object"},"alicloud:esa/LoadBalancerMonitor:LoadBalancerMonitor":{"properties":{"consecutiveDown":{"type":"integer","description":"The number of consecutive failed health checks before the backend is considered down, for example, 5.\n"},"consecutiveUp":{"type":"integer","description":"The number of consecutive successful probes required to consider the target as up, e.g., 3.\n"},"expectedCodes":{"type":"string","description":"Expected status code, such as 200,202, successful HTTP response.\n"},"followRedirects":{"type":"boolean","description":"Whether to follow the redirect.\n"},"header":{"type":"string","description":"The HTTP headers to be included in the health check request.\n"},"interval":{"type":"integer","description":"The monitoring interval, such as 60 seconds, checks the frequency.\n"},"method":{"type":"string","description":"Monitor request methods, such as GET, methods in the HTTP protocol.\n"},"monitoringRegion":{"type":"string","description":"Probe Point Region, default to Global\n- `Global`: Global.\n- `ChineseMainland`: Chinese mainland.\n- `OutsideChineseMainland`: Global (excluding the Chinese mainland).\n"},"path":{"type":"string","description":"The monitor checks the path, such as/healthcheck, the HTTP request path.\n"},"port":{"type":"integer","description":"The target port.\n"},"timeout":{"type":"integer","description":"The timeout for the health check, in seconds. The value range is 1-10.\n"},"type":{"type":"string","description":"The type of monitor protocol, such as HTTP, used for health checks. When the value is off, it indicates that no check is performed.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["monitoringRegion"]}}},"alicloud:esa/LoadBalancerRandomSteering:LoadBalancerRandomSteering":{"properties":{"defaultWeight":{"type":"integer","description":"The default round-robin weight, used for all pools that do not have individually specified weights. The value range is 0-100.\n"},"poolWeights":{"type":"object","additionalProperties":{"type":"string"},"description":"Weight configuration for each backend server pool, where the key is the pool ID and the value is the weight coefficient. The weight coefficient represents the proportion of relative traffic distribution.\n"}},"type":"object"},"alicloud:esa/LoadBalancerRule:LoadBalancerRule":{"properties":{"fixedResponse":{"$ref":"#/types/alicloud:esa/LoadBalancerRuleFixedResponse:LoadBalancerRuleFixedResponse","description":"Executes a specified response after matching the rule. See \u003cspan pulumi-lang-nodejs=\"`fixedResponse`\" pulumi-lang-dotnet=\"`FixedResponse`\" pulumi-lang-go=\"`fixedResponse`\" pulumi-lang-python=\"`fixed_response`\" pulumi-lang-yaml=\"`fixedResponse`\" pulumi-lang-java=\"`fixedResponse`\"\u003e`fixed_response`\u003c/span\u003e below.\n"},"overrides":{"type":"string","description":"Modifies the load balancer configuration for the corresponding request after matching the rule. The fields in this configuration will override the corresponding fields in the load balancer configuration.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n- on: open.\n- off: close.\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"Order of rule execution. The smaller the value, the higher the priority for execution.\n"},"terminates":{"type":"boolean","description":"Whether to terminate the execution of subsequent rules.\n"}},"type":"object"},"alicloud:esa/LoadBalancerRuleFixedResponse:LoadBalancerRuleFixedResponse":{"properties":{"contentType":{"type":"string","description":"The Content-Type field in the HTTP Header.\n"},"location":{"type":"string","description":"The location field in the http return.\n"},"messageBody":{"type":"string","description":"The body value of the response.\n"},"statusCode":{"type":"integer","description":"Status Code.\n"}},"type":"object"},"alicloud:esa/OriginPoolOrigin:OriginPoolOrigin":{"properties":{"address":{"type":"string","description":"Origin Address.\n"},"authConf":{"$ref":"#/types/alicloud:esa/OriginPoolOriginAuthConf:OriginPoolOriginAuthConf","description":"The authentication information. When the source Station is an OSS or S3 and other source stations need to be authenticated, the authentication-related configuration information needs to be transmitted. See \u003cspan pulumi-lang-nodejs=\"`authConf`\" pulumi-lang-dotnet=\"`AuthConf`\" pulumi-lang-go=\"`authConf`\" pulumi-lang-python=\"`auth_conf`\" pulumi-lang-yaml=\"`authConf`\" pulumi-lang-java=\"`authConf`\"\u003e`auth_conf`\u003c/span\u003e below.\n"},"enabled":{"type":"boolean","description":"Whether the source station is enabled:\n"},"header":{"type":"string","description":"The request header that is sent when returning to the source. Only Host is supported.\n"},"name":{"type":"string","description":"Origin Name.\n"},"originId":{"type":"integer","description":"Origin ID.\n"},"type":{"type":"string","description":"Source station type:\nip_domain: ip or domain name type origin station;\n- `OSS`:OSS address source station;\n- `S3`:AWS S3 Source station.\n"},"weight":{"type":"integer","description":"Weight, 0-100.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["originId"]}}},"alicloud:esa/OriginPoolOriginAuthConf:OriginPoolOriginAuthConf":{"properties":{"accessKey":{"type":"string","description":"The AccessKey to be passed when AuthType is set to\u003cspan pulumi-lang-nodejs=\" privateCrossAccount \" pulumi-lang-dotnet=\" PrivateCrossAccount \" pulumi-lang-go=\" privateCrossAccount \" pulumi-lang-python=\" private_cross_account \" pulumi-lang-yaml=\" privateCrossAccount \" pulumi-lang-java=\" privateCrossAccount \"\u003e private_cross_account \u003c/span\u003eor private.\n"},"authType":{"type":"string","description":"Authentication type.\n"},"region":{"type":"string","description":"The Region of the source station to be transmitted when the source station is AWS S3.\n"},"secretKey":{"type":"string","description":"The SecretKey to be passed when AuthType is set to\u003cspan pulumi-lang-nodejs=\" privateCrossAccount \" pulumi-lang-dotnet=\" PrivateCrossAccount \" pulumi-lang-go=\" privateCrossAccount \" pulumi-lang-python=\" private_cross_account \" pulumi-lang-yaml=\" privateCrossAccount \" pulumi-lang-java=\" privateCrossAccount \"\u003e private_cross_account \u003c/span\u003eor private.\n"},"version":{"type":"string","description":"The signature version to be transmitted when the source station is AWS S3.\n"}},"type":"object"},"alicloud:esa/RecordAuthConf:RecordAuthConf":{"properties":{"accessKey":{"type":"string","description":"The access key of the account to which the origin server belongs. This parameter is required when the SourceType is OSS, and AuthType is private_cross_account, or when the SourceType is S3 and AuthType is private.\n","secret":true},"authType":{"type":"string","description":"The authentication type of the origin server. Different origins support different authentication types. The type of origin refers to the SourceType parameter in this operation. If the type of origin is OSS or S3, you must specify the authentication type of the origin. Valid values:\n"},"region":{"type":"string","description":"The region of the origin. If the origin type is S3, you must specify this value. You can get the region information from the official website of S3.\n"},"secretKey":{"type":"string","description":"The secret access key of the account to which the origin server belongs. This parameter is required when the SourceType is OSS, and AuthType is private_same_account, or when the SourceType is S3 and AuthType is private.\n","secret":true},"version":{"type":"string","description":"The version of the signature algorithm. This parameter is required when the origin type is S3 and AuthType is private. The following two types are supported:\n"}},"type":"object"},"alicloud:esa/RecordData:RecordData":{"properties":{"algorithm":{"type":"integer","description":"The encryption algorithm used for the record, specified within the range from 0 to 255. This parameter is required when you add CERT or SSHFP records.\n"},"certificate":{"type":"string","description":"The public key of the certificate. This parameter is required when you add CERT, SMIMEA, or TLSA records.\n"},"fingerprint":{"type":"string","description":"The public key fingerprint of the record. This parameter is required when you add a SSHFP record.\n"},"flag":{"type":"integer","description":"The flag bit of the record. The Flag for a CAA record indicates its priority and how it is processed, specified within the range of 0 to 255. This parameter is required when you add a CAA record.\n"},"keyTag":{"type":"integer","description":"The public key identification for the record, specified within the range of 0 to 65,535. This parameter is required when you add a CAA record.\n"},"matchingType":{"type":"integer","description":"The algorithm policy used to match or validate the certificate, specified within the range 0 to 255. This parameter is required when you add SMIMEA or TLSA records.\n"},"port":{"type":"integer","description":"The port of the record, specified within the range of 0 to 65,535. This parameter is required when you add an SRV record.\n"},"priority":{"type":"integer","description":"The priority of the record, specified within the range of 0 to 65,535. A smaller value indicates a higher priority. This parameter is required when you add MX, SRV, and URI records.\n"},"selector":{"type":"integer","description":"The type of certificate or public key, specified within the range of 0 to 255. This parameter is required when you add SMIMEA or TLSA records.\n"},"tag":{"type":"string","description":"The label of the record. The Tag of a CAA record indicate its specific type and usage. This parameter is required when you add a CAA record. Valid values:\n"},"type":{"type":"integer","description":"The certificate type of the record (in CERT records), or the public key type (in SSHFP records). This parameter is required when you add CERT or SSHFP records.\n"},"usage":{"type":"integer","description":"The usage identifier of the record, specified within the range of 0 to 255. This parameter is required when you add SMIMEA or TLSA records.\n"},"value":{"type":"string","description":"Record value or part of the record content. This parameter is required when you add A/AAAA, CNAME, NS, MX, TXT, CAA, SRV, and URI records. It has different meanings based on types of records:\n- `A/AAAA`: the IP address(es). Separate IP addresses with commas (,). You must have at least one IPv4 address.\n- `CNAME`: the target domain name.\n- `NS`: the name servers for the domain name.\n- `MX`: a valid domain name of the target mail server.\n- `TXT`: a valid text string.\n- `CAA`: a valid domain name of the certificate authority.\n- `SRV`: a valid domain name of the target host.\n- `URI`: a valid URI string.\n"},"weight":{"type":"integer","description":"The weight of the record, specified within the range of 0 to 65,535. This parameter is required when you add SRV or URI records.\n"}},"type":"object"},"alicloud:esa/SiteDeliveryTaskHttpDelivery:SiteDeliveryTaskHttpDelivery":{"properties":{"compress":{"type":"string"},"destUrl":{"type":"string"},"headerParam":{"type":"object","additionalProperties":{"type":"string"}},"logBodyPrefix":{"type":"string"},"logBodySuffix":{"type":"string"},"maxBatchMb":{"type":"integer"},"maxBatchSize":{"type":"integer"},"maxRetry":{"type":"integer"},"queryParam":{"type":"object","additionalProperties":{"type":"string"}},"standardAuthOn":{"type":"boolean"},"standardAuthParam":{"$ref":"#/types/alicloud:esa/SiteDeliveryTaskHttpDeliveryStandardAuthParam:SiteDeliveryTaskHttpDeliveryStandardAuthParam","description":"See \u003cspan pulumi-lang-nodejs=\"`standardAuthParam`\" pulumi-lang-dotnet=\"`StandardAuthParam`\" pulumi-lang-go=\"`standardAuthParam`\" pulumi-lang-python=\"`standard_auth_param`\" pulumi-lang-yaml=\"`standardAuthParam`\" pulumi-lang-java=\"`standardAuthParam`\"\u003e`standard_auth_param`\u003c/span\u003e below.\n"},"transformTimeout":{"type":"integer"}},"type":"object"},"alicloud:esa/SiteDeliveryTaskHttpDeliveryStandardAuthParam:SiteDeliveryTaskHttpDeliveryStandardAuthParam":{"properties":{"expiredTime":{"type":"integer"},"privateKey":{"type":"string"},"urlPath":{"type":"string"}},"type":"object"},"alicloud:esa/SiteDeliveryTaskKafkaDelivery:SiteDeliveryTaskKafkaDelivery":{"properties":{"balancer":{"type":"string"},"brokers":{"type":"array","items":{"type":"string"}},"compress":{"type":"string","description":"The compression method. By default, data is not compressed.\n"},"machanismType":{"type":"string"},"password":{"type":"string"},"topic":{"type":"string"},"userAuth":{"type":"boolean"},"userName":{"type":"string"}},"type":"object"},"alicloud:esa/SiteDeliveryTaskOssDelivery:SiteDeliveryTaskOssDelivery":{"properties":{"aliuid":{"type":"string"},"bucketName":{"type":"string"},"prefixPath":{"type":"string"},"region":{"type":"string","description":"The region ID of the service.\n"}},"type":"object"},"alicloud:esa/SiteDeliveryTaskS3Delivery:SiteDeliveryTaskS3Delivery":{"properties":{"accessKey":{"type":"string"},"bucketPath":{"type":"string"},"endpoint":{"type":"string"},"prefixPath":{"type":"string"},"region":{"type":"string"},"s3Cmpt":{"type":"boolean"},"secretKey":{"type":"string"},"serverSideEncryption":{"type":"boolean","description":"Server-side encryption\n"},"vertifyType":{"type":"string","description":"Authentication Type\n"}},"type":"object"},"alicloud:esa/SiteDeliveryTaskSlsDelivery:SiteDeliveryTaskSlsDelivery":{"properties":{"slsLogStore":{"type":"string"},"slsProject":{"type":"string"},"slsRegion":{"type":"string"}},"type":"object"},"alicloud:esa/TransportLayerApplicationRule:TransportLayerApplicationRule":{"properties":{"clientIpPassThroughMode":{"type":"string","description":"Client IP pass-through protocol, supporting:\n"},"comment":{"type":"string","description":"Comment information for the rule (optional).\n"},"edgePort":{"type":"string","description":"Edge port. Supports:\n- A single port, such as 80.\n- Port range, such as 81-85, representing ports 81, 82, 83, 84, and 85.\n- Combination of ports and port ranges, separated by commas, such as 80,81-85,90, representing ports 80, 81, 82, 83, 84, 85, and 90.\n\nEdge ports within a single rule and between multiple rules must not overlap.\n"},"protocol":{"type":"string","description":"Forwarding rule protocol, with values:\n- `TCP`: TCP protocol.\n- `UDP`: UDP protocol.\n"},"ruleId":{"type":"integer","description":"Rule ID\n"},"source":{"type":"string","description":"Specific value of the origin, which needs to match the origin type.\n"},"sourcePort":{"type":"string","description":"Source Port\n"},"sourceType":{"type":"string","description":"Origin type, supporting:\n"}},"type":"object","required":["clientIpPassThroughMode","edgePort","protocol","source","sourcePort","sourceType"],"language":{"nodejs":{"requiredOutputs":["clientIpPassThroughMode","edgePort","protocol","ruleId","source","sourcePort","sourceType"]}}},"alicloud:esa/WafRuleConfig:WafRuleConfig":{"properties":{"action":{"type":"string","description":"The action performed on requests that match the managed rule.\n"},"actions":{"$ref":"#/types/alicloud:esa/WafRuleConfigActions:WafRuleConfigActions","description":"Extended action configurations, including custom responses and bypass settings. See \u003cspan pulumi-lang-nodejs=\"`actions`\" pulumi-lang-dotnet=\"`Actions`\" pulumi-lang-go=\"`actions`\" pulumi-lang-python=\"`actions`\" pulumi-lang-yaml=\"`actions`\" pulumi-lang-java=\"`actions`\"\u003e`actions`\u003c/span\u003e below.\n"},"appPackage":{"$ref":"#/types/alicloud:esa/WafRuleConfigAppPackage:WafRuleConfigAppPackage","description":"Security mechanism to prevent apps from being repackaged. See \u003cspan pulumi-lang-nodejs=\"`appPackage`\" pulumi-lang-dotnet=\"`AppPackage`\" pulumi-lang-go=\"`appPackage`\" pulumi-lang-python=\"`app_package`\" pulumi-lang-yaml=\"`appPackage`\" pulumi-lang-java=\"`appPackage`\"\u003e`app_package`\u003c/span\u003e below.\n"},"appSdk":{"$ref":"#/types/alicloud:esa/WafRuleConfigAppSdk:WafRuleConfigAppSdk","description":"Mobile app SDK-related configurations. See \u003cspan pulumi-lang-nodejs=\"`appSdk`\" pulumi-lang-dotnet=\"`AppSdk`\" pulumi-lang-go=\"`appSdk`\" pulumi-lang-python=\"`app_sdk`\" pulumi-lang-yaml=\"`appSdk`\" pulumi-lang-java=\"`appSdk`\"\u003e`app_sdk`\u003c/span\u003e below.\n"},"expression":{"type":"string","description":"The match expression used to evaluate incoming requests.\n"},"id":{"type":"integer","description":"The ID of the custom error page, which can be obtained by calling the ListPages operation.\n"},"managedGroupId":{"type":"integer","description":"The ID of the managed rule group (deprecated).\n"},"managedList":{"type":"string","description":"The name of the managed list applied to this rule.\n"},"managedRulesets":{"type":"array","items":{"$ref":"#/types/alicloud:esa/WafRuleConfigManagedRuleset:WafRuleConfigManagedRuleset"},"description":"The managed rulesets referenced by this rule and their configurations. See \u003cspan pulumi-lang-nodejs=\"`managedRulesets`\" pulumi-lang-dotnet=\"`ManagedRulesets`\" pulumi-lang-go=\"`managedRulesets`\" pulumi-lang-python=\"`managed_rulesets`\" pulumi-lang-yaml=\"`managedRulesets`\" pulumi-lang-java=\"`managedRulesets`\"\u003e`managed_rulesets`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The package name of an authorized application.\n"},"notes":{"type":"string","description":"Additional notes about this rule.\n"},"rateLimit":{"$ref":"#/types/alicloud:esa/WafRuleConfigRateLimit:WafRuleConfigRateLimit","description":"Configuration of the rate limiting rule. See \u003cspan pulumi-lang-nodejs=\"`rateLimit`\" pulumi-lang-dotnet=\"`RateLimit`\" pulumi-lang-go=\"`rateLimit`\" pulumi-lang-python=\"`rate_limit`\" pulumi-lang-yaml=\"`rateLimit`\" pulumi-lang-java=\"`rateLimit`\"\u003e`rate_limit`\u003c/span\u003e below.\n"},"securityLevel":{"$ref":"#/types/alicloud:esa/WafRuleConfigSecurityLevel:WafRuleConfigSecurityLevel","description":"The overall security protection level of WAF.\nValid values:\n- off\n-\u003cspan pulumi-lang-nodejs=\" essentiallyOff\n\" pulumi-lang-dotnet=\" EssentiallyOff\n\" pulumi-lang-go=\" essentiallyOff\n\" pulumi-lang-python=\" essentially_off\n\" pulumi-lang-yaml=\" essentiallyOff\n\" pulumi-lang-java=\" essentiallyOff\n\"\u003e essentially_off\n\u003c/span\u003e- low\n- medium\n- high\n-\u003cspan pulumi-lang-nodejs=\" underAttack \" pulumi-lang-dotnet=\" UnderAttack \" pulumi-lang-go=\" underAttack \" pulumi-lang-python=\" under_attack \" pulumi-lang-yaml=\" underAttack \" pulumi-lang-java=\" underAttack \"\u003e under_attack \u003c/span\u003eSee \u003cspan pulumi-lang-nodejs=\"`securityLevel`\" pulumi-lang-dotnet=\"`SecurityLevel`\" pulumi-lang-go=\"`securityLevel`\" pulumi-lang-python=\"`security_level`\" pulumi-lang-yaml=\"`securityLevel`\" pulumi-lang-java=\"`securityLevel`\"\u003e`security_level`\u003c/span\u003e below.\n"},"sigchls":{"type":"array","items":{"type":"string"},"description":"Configuration items for token verification mechanisms.\n"},"status":{"type":"string","description":"The status of the managed rule: whether it is enabled or disabled.\n"},"timer":{"$ref":"#/types/alicloud:esa/WafRuleConfigTimer:WafRuleConfigTimer","description":"Configuration for the time schedule when the rule takes effect. See \u003cspan pulumi-lang-nodejs=\"`timer`\" pulumi-lang-dotnet=\"`Timer`\" pulumi-lang-go=\"`timer`\" pulumi-lang-python=\"`timer`\" pulumi-lang-yaml=\"`timer`\" pulumi-lang-java=\"`timer`\"\u003e`timer`\u003c/span\u003e below.\n"},"type":{"type":"string","description":"The type category of the WAF rule.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The value of the custom signature field used for validation.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["action","actions","appPackage","id","managedGroupId","name","status","type"]}}},"alicloud:esa/WafRuleConfigActions:WafRuleConfigActions":{"properties":{"bypass":{"$ref":"#/types/alicloud:esa/WafRuleConfigActionsBypass:WafRuleConfigActionsBypass","description":"The skip configuration specified by the whitelist rule. See \u003cspan pulumi-lang-nodejs=\"`bypass`\" pulumi-lang-dotnet=\"`Bypass`\" pulumi-lang-go=\"`bypass`\" pulumi-lang-python=\"`bypass`\" pulumi-lang-yaml=\"`bypass`\" pulumi-lang-java=\"`bypass`\"\u003e`bypass`\u003c/span\u003e below.\n"},"response":{"$ref":"#/types/alicloud:esa/WafRuleConfigActionsResponse:WafRuleConfigActionsResponse"}},"type":"object","language":{"nodejs":{"requiredOutputs":["bypass","response"]}}},"alicloud:esa/WafRuleConfigActionsBypass:WafRuleConfigActionsBypass":{"properties":{"customRules":{"type":"array","items":{"type":"integer"},"description":"The IDs of custom rules to skip.\n"},"regularRules":{"type":"array","items":{"type":"integer"},"description":"The IDs of specific managed rules to skip.\n"},"regularTypes":{"type":"array","items":{"type":"string"},"description":"The types of managed rules to skip.\n"},"skip":{"type":"string","description":"The scope that is skipped when requests match conditions defined in the whitelist rule.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The rule categories that are skipped when requests match conditions defined in the whitelist rule.\n"}},"type":"object"},"alicloud:esa/WafRuleConfigActionsResponse:WafRuleConfigActionsResponse":{"properties":{"code":{"type":"integer"},"id":{"type":"integer","description":"The internal unique ID of the WAF rule.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code"]}}},"alicloud:esa/WafRuleConfigAppPackage:WafRuleConfigAppPackage":{"properties":{"packageSigns":{"type":"array","items":{"$ref":"#/types/alicloud:esa/WafRuleConfigAppPackagePackageSign:WafRuleConfigAppPackagePackageSign"},"description":"Security mechanism to prevent apps from being repackaged. See \u003cspan pulumi-lang-nodejs=\"`packageSigns`\" pulumi-lang-dotnet=\"`PackageSigns`\" pulumi-lang-go=\"`packageSigns`\" pulumi-lang-python=\"`package_signs`\" pulumi-lang-yaml=\"`packageSigns`\" pulumi-lang-java=\"`packageSigns`\"\u003e`package_signs`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:esa/WafRuleConfigAppPackagePackageSign:WafRuleConfigAppPackagePackageSign":{"properties":{"name":{"type":"string"},"sign":{"type":"string","description":"The digital signature of a legitimate app package.\n"}},"type":"object"},"alicloud:esa/WafRuleConfigAppSdk:WafRuleConfigAppSdk":{"properties":{"customSign":{"$ref":"#/types/alicloud:esa/WafRuleConfigAppSdkCustomSign:WafRuleConfigAppSdkCustomSign","description":"Custom fields used for mobile app signature validation. See \u003cspan pulumi-lang-nodejs=\"`customSign`\" pulumi-lang-dotnet=\"`CustomSign`\" pulumi-lang-go=\"`customSign`\" pulumi-lang-python=\"`custom_sign`\" pulumi-lang-yaml=\"`customSign`\" pulumi-lang-java=\"`customSign`\"\u003e`custom_sign`\u003c/span\u003e below.\n"},"customSignStatus":{"type":"string","description":"Indicates whether the custom signature field validation is enabled.\n"},"featureAbnormals":{"type":"array","items":{"type":"string"},"description":"Detected abnormal behaviors of the application.\n"}},"type":"object"},"alicloud:esa/WafRuleConfigAppSdkCustomSign:WafRuleConfigAppSdkCustomSign":{"properties":{"key":{"type":"string","description":"The name of the custom signature field used for validation.\n"},"value":{"type":"string","description":"The value of the custom signature field used for validation.\n"}},"type":"object"},"alicloud:esa/WafRuleConfigManagedRuleset:WafRuleConfigManagedRuleset":{"properties":{"action":{"type":"string"},"attackType":{"type":"integer","description":"The primary attack type targeted by this ruleset.\n"},"managedRules":{"type":"array","items":{"$ref":"#/types/alicloud:esa/WafRuleConfigManagedRulesetManagedRule:WafRuleConfigManagedRulesetManagedRule"},"description":"The individual managed rules included in this ruleset. See \u003cspan pulumi-lang-nodejs=\"`managedRules`\" pulumi-lang-dotnet=\"`ManagedRules`\" pulumi-lang-go=\"`managedRules`\" pulumi-lang-python=\"`managed_rules`\" pulumi-lang-yaml=\"`managedRules`\" pulumi-lang-java=\"`managedRules`\"\u003e`managed_rules`\u003c/span\u003e below.\n"},"numberEnabled":{"type":"integer","description":"Number of rules currently enabled.\n"},"numberTotal":{"type":"integer","description":"Total number of rules in this ruleset.\n"},"protectionLevel":{"type":"integer","description":"The protection strength level assigned to this ruleset.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["numberEnabled","numberTotal"]}}},"alicloud:esa/WafRuleConfigManagedRulesetManagedRule:WafRuleConfigManagedRulesetManagedRule":{"properties":{"action":{"type":"string"},"id":{"type":"integer","description":"The internal unique ID of the WAF rule.\n"},"status":{"type":"string","description":"The status of the managed rule: whether it is enabled or disabled.\n"}},"type":"object"},"alicloud:esa/WafRuleConfigRateLimit:WafRuleConfigRateLimit":{"properties":{"characteristics":{"$ref":"#/types/alicloud:esa/WafRuleConfigRateLimitCharacteristics:WafRuleConfigRateLimitCharacteristics","description":"The statistical dimensions to which the rate limiting rule applies. See \u003cspan pulumi-lang-nodejs=\"`characteristics`\" pulumi-lang-dotnet=\"`Characteristics`\" pulumi-lang-go=\"`characteristics`\" pulumi-lang-python=\"`characteristics`\" pulumi-lang-yaml=\"`characteristics`\" pulumi-lang-java=\"`characteristics`\"\u003e`characteristics`\u003c/span\u003e below.\n"},"interval":{"type":"integer","description":"The statistical interval.\n"},"onHit":{"type":"boolean","description":"Indicates whether the rule applies to requests that hit the cache.\n"},"threshold":{"$ref":"#/types/alicloud:esa/WafRuleConfigRateLimitThreshold:WafRuleConfigRateLimitThreshold","description":"Threshold settings for the rate limiting rule. See \u003cspan pulumi-lang-nodejs=\"`threshold`\" pulumi-lang-dotnet=\"`Threshold`\" pulumi-lang-go=\"`threshold`\" pulumi-lang-python=\"`threshold`\" pulumi-lang-yaml=\"`threshold`\" pulumi-lang-java=\"`threshold`\"\u003e`threshold`\u003c/span\u003e below.\n"},"ttl":{"type":"integer","description":"The timeout period for creating the stack used in rate limiting.\n"}},"type":"object"},"alicloud:esa/WafRuleConfigRateLimitCharacteristics:WafRuleConfigRateLimitCharacteristics":{"properties":{"criterias":{"type":"array","items":{"$ref":"#/types/alicloud:esa/WafRuleConfigRateLimitCharacteristicsCriteria:WafRuleConfigRateLimitCharacteristicsCriteria"}},"logic":{"type":"string"}},"type":"object"},"alicloud:esa/WafRuleConfigRateLimitCharacteristicsCriteria:WafRuleConfigRateLimitCharacteristicsCriteria":{"properties":{"criterias":{"type":"array","items":{"$ref":"#/types/alicloud:esa/WafRuleConfigRateLimitCharacteristicsCriteriaCriteria:WafRuleConfigRateLimitCharacteristicsCriteriaCriteria"}},"logic":{"type":"string"},"matchType":{"type":"string"}},"type":"object"},"alicloud:esa/WafRuleConfigRateLimitCharacteristicsCriteriaCriteria:WafRuleConfigRateLimitCharacteristicsCriteriaCriteria":{"properties":{"criterias":{"type":"array","items":{"$ref":"#/types/alicloud:esa/WafRuleConfigRateLimitCharacteristicsCriteriaCriteriaCriteria:WafRuleConfigRateLimitCharacteristicsCriteriaCriteriaCriteria"}},"logic":{"type":"string"},"matchType":{"type":"string"}},"type":"object"},"alicloud:esa/WafRuleConfigRateLimitCharacteristicsCriteriaCriteriaCriteria:WafRuleConfigRateLimitCharacteristicsCriteriaCriteriaCriteria":{"properties":{"matchType":{"type":"string"}},"type":"object"},"alicloud:esa/WafRuleConfigRateLimitThreshold:WafRuleConfigRateLimitThreshold":{"properties":{"distinctManagedRules":{"type":"integer","description":"The maximum number of distinct managed rules that can be triggered.\n"},"managedRulesBlocked":{"type":"integer","description":"The maximum number of times that managed rules can be triggered.\n"},"request":{"type":"integer","description":"The maximum number of allowed requests within a time interval.\n"},"responseStatus":{"$ref":"#/types/alicloud:esa/WafRuleConfigRateLimitThresholdResponseStatus:WafRuleConfigRateLimitThresholdResponseStatus","description":"Limits on the frequency of returning specific HTTP status codes. See \u003cspan pulumi-lang-nodejs=\"`responseStatus`\" pulumi-lang-dotnet=\"`ResponseStatus`\" pulumi-lang-go=\"`responseStatus`\" pulumi-lang-python=\"`response_status`\" pulumi-lang-yaml=\"`responseStatus`\" pulumi-lang-java=\"`responseStatus`\"\u003e`response_status`\u003c/span\u003e below.\n"},"traffic":{"type":"string","description":"The maximum allowed traffic within a time interval (deprecated).\n"}},"type":"object"},"alicloud:esa/WafRuleConfigRateLimitThresholdResponseStatus:WafRuleConfigRateLimitThresholdResponseStatus":{"properties":{"code":{"type":"integer"},"count":{"type":"integer","description":"The maximum number of times the specified status code can be returned.\n"},"ratio":{"type":"integer","description":"The upper limit of the percentage of occurrences of the specified status code among all responses.\n"}},"type":"object"},"alicloud:esa/WafRuleConfigSecurityLevel:WafRuleConfigSecurityLevel":{"properties":{"value":{"type":"string","description":"The value of the custom signature field used for validation.\n"}},"type":"object"},"alicloud:esa/WafRuleConfigTimer:WafRuleConfigTimer":{"properties":{"periods":{"type":"array","items":{"$ref":"#/types/alicloud:esa/WafRuleConfigTimerPeriod:WafRuleConfigTimerPeriod"}},"scopes":{"type":"string","description":"Timing type:\n"},"weeklyPeriods":{"type":"array","items":{"$ref":"#/types/alicloud:esa/WafRuleConfigTimerWeeklyPeriod:WafRuleConfigTimerWeeklyPeriod"},"description":"Weekly recurring time schedules. See \u003cspan pulumi-lang-nodejs=\"`weeklyPeriods`\" pulumi-lang-dotnet=\"`WeeklyPeriods`\" pulumi-lang-go=\"`weeklyPeriods`\" pulumi-lang-python=\"`weekly_periods`\" pulumi-lang-yaml=\"`weeklyPeriods`\" pulumi-lang-java=\"`weeklyPeriods`\"\u003e`weekly_periods`\u003c/span\u003e below.\n"},"zone":{"type":"integer","description":"The time zone. If it is not specified, the default value is UTC +00:00.  Example: 8 means East Zone 8,-8 means West Zone 8  Range:-12 -+14\n"}},"type":"object"},"alicloud:esa/WafRuleConfigTimerPeriod:WafRuleConfigTimerPeriod":{"properties":{"end":{"type":"string","description":"End time in HH:mm:ss format\n"},"start":{"type":"string","description":"Start time in HH:mm:ss format\n"}},"type":"object"},"alicloud:esa/WafRuleConfigTimerWeeklyPeriod:WafRuleConfigTimerWeeklyPeriod":{"properties":{"dailyPeriods":{"type":"array","items":{"$ref":"#/types/alicloud:esa/WafRuleConfigTimerWeeklyPeriodDailyPeriod:WafRuleConfigTimerWeeklyPeriodDailyPeriod"},"description":"Daily effective time periods within a weekly schedule. See \u003cspan pulumi-lang-nodejs=\"`dailyPeriods`\" pulumi-lang-dotnet=\"`DailyPeriods`\" pulumi-lang-go=\"`dailyPeriods`\" pulumi-lang-python=\"`daily_periods`\" pulumi-lang-yaml=\"`dailyPeriods`\" pulumi-lang-java=\"`dailyPeriods`\"\u003e`daily_periods`\u003c/span\u003e below.\n"},"days":{"type":"string","description":"Cycle, multiple use comma separated, 1-7 respectively represent Monday-Sunday.  Example: Monday, Wednesday value is \"1,3\"\n"}},"type":"object"},"alicloud:esa/WafRuleConfigTimerWeeklyPeriodDailyPeriod:WafRuleConfigTimerWeeklyPeriodDailyPeriod":{"properties":{"end":{"type":"string","description":"End time in HH:mm:ss format\n"},"start":{"type":"string","description":"Start time in HH:mm:ss format\n"}},"type":"object"},"alicloud:esa/WafRuleShared:WafRuleShared":{"properties":{"action":{"type":"string","description":"The default action executed under shared configuration.\n"},"actions":{"$ref":"#/types/alicloud:esa/WafRuleSharedActions:WafRuleSharedActions","description":"Extended action configurations under shared settings. See \u003cspan pulumi-lang-nodejs=\"`actions`\" pulumi-lang-dotnet=\"`Actions`\" pulumi-lang-go=\"`actions`\" pulumi-lang-python=\"`actions`\" pulumi-lang-yaml=\"`actions`\" pulumi-lang-java=\"`actions`\"\u003e`actions`\u003c/span\u003e below.\n"},"crossSiteId":{"type":"integer","description":"Specify the cross-domain site ID.\n"},"expression":{"type":"string","description":"The match expression used in shared configuration.\n"},"match":{"$ref":"#/types/alicloud:esa/WafRuleSharedMatch:WafRuleSharedMatch","description":"Configuration of the request matching logic engine. See \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e below.\n"},"mode":{"type":"string","description":"The integration mode of the Web SDK:\n"},"name":{"type":"string","description":"The display name of the ruleset.\n"},"target":{"type":"string","description":"The target type protected by this rule: web or app.\n"}},"type":"object"},"alicloud:esa/WafRuleSharedActions:WafRuleSharedActions":{"properties":{"response":{"$ref":"#/types/alicloud:esa/WafRuleSharedActionsResponse:WafRuleSharedActionsResponse"}},"type":"object"},"alicloud:esa/WafRuleSharedActionsResponse:WafRuleSharedActionsResponse":{"properties":{"code":{"type":"integer"},"id":{"type":"integer","description":"The internal unique ID of the WAF rule.\n"}},"type":"object"},"alicloud:esa/WafRuleSharedMatch:WafRuleSharedMatch":{"properties":{"criterias":{"type":"array","items":{"$ref":"#/types/alicloud:esa/WafRuleSharedMatchCriteria:WafRuleSharedMatchCriteria"}},"logic":{"type":"string"},"matchType":{"type":"string"}},"type":"object"},"alicloud:esa/WafRuleSharedMatchCriteria:WafRuleSharedMatchCriteria":{"properties":{"criterias":{"type":"array","items":{"$ref":"#/types/alicloud:esa/WafRuleSharedMatchCriteriaCriteria:WafRuleSharedMatchCriteriaCriteria"}},"logic":{"type":"string"},"matchType":{"type":"string"}},"type":"object"},"alicloud:esa/WafRuleSharedMatchCriteriaCriteria:WafRuleSharedMatchCriteriaCriteria":{"properties":{"criterias":{"type":"array","items":{"$ref":"#/types/alicloud:esa/WafRuleSharedMatchCriteriaCriteriaCriteria:WafRuleSharedMatchCriteriaCriteriaCriteria"}},"logic":{"type":"string"},"matchType":{"type":"string"}},"type":"object"},"alicloud:esa/WafRuleSharedMatchCriteriaCriteriaCriteria:WafRuleSharedMatchCriteriaCriteriaCriteria":{"properties":{"matchType":{"type":"string"}},"type":"object"},"alicloud:esa/WaitingRoomHostNameAndPath:WaitingRoomHostNameAndPath":{"properties":{"domain":{"type":"string","description":"The domain name.\n"},"path":{"type":"string","description":"The path.\n"},"subdomain":{"type":"string","description":"The subdomain.\n"}},"type":"object","required":["domain","path","subdomain"]},"alicloud:esa/getSitesSite:getSitesSite":{"properties":{"accessType":{"type":"string","description":"Access type. Value:-**NS**: Managed access via NS.-**CNAME**: access through CNAME.\n"},"coverage":{"type":"string","description":"Acceleration area\n"},"createTime":{"type":"string","description":"Creation time\n"},"id":{"type":"integer","description":"The ID of the resource supplied above.\n"},"instanceId":{"type":"string","description":"The ID of the associated package instance.\n"},"modifyTime":{"type":"string","description":"Modification time\n"},"nameServerList":{"type":"string","description":"Site Resolution Name Server List\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"siteId":{"type":"integer","description":"Site ID\n"},"siteName":{"type":"string","description":"Site Name\n"},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object","required":["accessType","coverage","createTime","id","instanceId","modifyTime","nameServerList","resourceGroupId","siteId","siteName","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ess/AlarmExpression:AlarmExpression":{"properties":{"comparisonOperator":{"type":"string","description":"The arithmetic operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand. Supported value: \u003e=, \u003c=, \u003e, \u003c. Defaults to \u003e=.\n"},"metricName":{"type":"string","description":"The name for the alarm's associated metric. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below for details.\n"},"period":{"type":"integer","description":"The period in seconds over which the specified statistic is applied. Supported value: 60, 120, 300, 900. Defaults to 300.\n"},"statistics":{"type":"string","description":"The statistic to apply to the alarm's associated metric. Supported value: Average, Minimum, Maximum. Defaults to Average.\n"},"threshold":{"type":"number","description":"The value against which the specified statistics is compared.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["comparisonOperator","metricName","period","statistics","threshold"]}}},"alicloud:ess/EciScalingConfigurationAcrRegistryInfo:EciScalingConfigurationAcrRegistryInfo":{"properties":{"domains":{"type":"array","items":{"type":"string"},"description":"Endpoint of Container Registry Enterprise Edition instance. By default, all endpoints of the Container Registry Enterprise Edition instance are displayed. It is required\nwhen \u003cspan pulumi-lang-nodejs=\"`acrRegistryInfo`\" pulumi-lang-dotnet=\"`AcrRegistryInfo`\" pulumi-lang-go=\"`acrRegistryInfo`\" pulumi-lang-python=\"`acr_registry_info`\" pulumi-lang-yaml=\"`acrRegistryInfo`\" pulumi-lang-java=\"`acrRegistryInfo`\"\u003e`acr_registry_info`\u003c/span\u003e is configured.\n"},"instanceId":{"type":"string","description":"The ID of Container Registry Enterprise Edition instance. It is required\nwhen \u003cspan pulumi-lang-nodejs=\"`acrRegistryInfo`\" pulumi-lang-dotnet=\"`AcrRegistryInfo`\" pulumi-lang-go=\"`acrRegistryInfo`\" pulumi-lang-python=\"`acr_registry_info`\" pulumi-lang-yaml=\"`acrRegistryInfo`\" pulumi-lang-java=\"`acrRegistryInfo`\"\u003e`acr_registry_info`\u003c/span\u003e is configured.\n"},"instanceName":{"type":"string","description":"The name of Container Registry Enterprise Edition instance. It is required when \u003cspan pulumi-lang-nodejs=\"`acrRegistryInfo`\" pulumi-lang-dotnet=\"`AcrRegistryInfo`\" pulumi-lang-go=\"`acrRegistryInfo`\" pulumi-lang-python=\"`acr_registry_info`\" pulumi-lang-yaml=\"`acrRegistryInfo`\" pulumi-lang-java=\"`acrRegistryInfo`\"\u003e`acr_registry_info`\u003c/span\u003e is\nconfigured.\n"},"regionId":{"type":"string","description":"The region ID of Container Registry Enterprise Edition instance. It is required\nwhen \u003cspan pulumi-lang-nodejs=\"`acrRegistryInfo`\" pulumi-lang-dotnet=\"`AcrRegistryInfo`\" pulumi-lang-go=\"`acrRegistryInfo`\" pulumi-lang-python=\"`acr_registry_info`\" pulumi-lang-yaml=\"`acrRegistryInfo`\" pulumi-lang-java=\"`acrRegistryInfo`\"\u003e`acr_registry_info`\u003c/span\u003e is configured.\n"}},"type":"object"},"alicloud:ess/EciScalingConfigurationContainer:EciScalingConfigurationContainer":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"The arguments passed to the commands.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"The commands run by the init container.\n"},"cpu":{"type":"number","description":"The amount of CPU resources allocated to the container.\n"},"environmentVars":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationContainerEnvironmentVar:EciScalingConfigurationContainerEnvironmentVar"},"description":"The structure of environmentVars.\nSee \u003cspan pulumi-lang-nodejs=\"`environmentVars`\" pulumi-lang-dotnet=\"`EnvironmentVars`\" pulumi-lang-go=\"`environmentVars`\" pulumi-lang-python=\"`environment_vars`\" pulumi-lang-yaml=\"`environmentVars`\" pulumi-lang-java=\"`environmentVars`\"\u003e`environment_vars`\u003c/span\u003e below for details.\n"},"gpu":{"type":"integer","description":"The number GPUs.\n"},"image":{"type":"string","description":"The image of the container.\n"},"imagePullPolicy":{"type":"string","description":"The restart policy of the image.\n"},"lifecyclePreStopHandlerExecs":{"type":"array","items":{"type":"string"},"description":"The commands to be executed in containers when you use the CLI to specify the preStop callback function.\n"},"livenessProbeExecCommands":{"type":"array","items":{"type":"string"},"description":"Commands that you want to run in containers when you use the CLI to perform liveness probes.\n"},"livenessProbeFailureThreshold":{"type":"integer","description":"The minimum number of consecutive failures for the liveness probe to be considered failed after having been successful. Default value: 3.\n"},"livenessProbeHttpGetPath":{"type":"string","description":"The path to which HTTP GET requests are sent when you use HTTP requests to perform liveness probes.\n"},"livenessProbeHttpGetPort":{"type":"integer","description":"The port to which HTTP GET requests are sent when you use HTTP requests to perform liveness probes.\n"},"livenessProbeHttpGetScheme":{"type":"string","description":"The protocol type of HTTP GET requests when you use HTTP requests for liveness probes.Valid values:HTTP and HTTPS.\n"},"livenessProbeInitialDelaySeconds":{"type":"integer","description":"The number of seconds after container has started before liveness probes are initiated.\n"},"livenessProbePeriodSeconds":{"type":"integer","description":"The interval at which the liveness probe is performed. Unit: seconds. Default value: 10. Minimum value: 1.\n"},"livenessProbeSuccessThreshold":{"type":"integer","description":"The minimum number of consecutive successes for the liveness probe to be considered successful after having failed. Default value: 1. Set the value to 1.\n"},"livenessProbeTcpSocketPort":{"type":"integer","description":"The port detected by TCP sockets when you use TCP sockets to perform liveness probes.\n"},"livenessProbeTimeoutSeconds":{"type":"integer","description":"The timeout period for the liveness probe. Unit: seconds. Default value: 1. Minimum value: 1.\n"},"memory":{"type":"number","description":"The amount of memory resources allocated to the container.\n"},"name":{"type":"string","description":"The name of the mounted volume.\n"},"ports":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationContainerPort:EciScalingConfigurationContainerPort"},"description":"The structure of port. See \u003cspan pulumi-lang-nodejs=\"`ports`\" pulumi-lang-dotnet=\"`Ports`\" pulumi-lang-go=\"`ports`\" pulumi-lang-python=\"`ports`\" pulumi-lang-yaml=\"`ports`\" pulumi-lang-java=\"`ports`\"\u003e`ports`\u003c/span\u003e below for details.\n"},"readinessProbeExecCommands":{"type":"array","items":{"type":"string"},"description":"Commands that you want to run in containers when you use the CLI to perform readiness probes.\n"},"readinessProbeFailureThreshold":{"type":"integer","description":"The minimum number of consecutive failures for the readiness probe to be considered failed after having been successful. Default value: 3.\n"},"readinessProbeHttpGetPath":{"type":"string","description":"The path to which HTTP GET requests are sent when you use HTTP requests to perform readiness probes.\n"},"readinessProbeHttpGetPort":{"type":"integer","description":"The port to which HTTP GET requests are sent when you use HTTP requests to perform readiness probes.\n"},"readinessProbeHttpGetScheme":{"type":"string","description":"The protocol type of HTTP GET requests when you use HTTP requests for readiness probes. Valid values: HTTP and HTTPS.\n"},"readinessProbeInitialDelaySeconds":{"type":"integer","description":"The number of seconds after container N has started before readiness probes are initiated.\n"},"readinessProbePeriodSeconds":{"type":"integer","description":"The interval at which the readiness probe is performed. Unit: seconds. Default value: 10. Minimum value: 1.\n"},"readinessProbeSuccessThreshold":{"type":"integer","description":"The minimum number of consecutive successes for the readiness probe to be considered successful after having failed. Default value: 1. Set the value to 1.\n"},"readinessProbeTcpSocketPort":{"type":"integer","description":"The port detected by Transmission Control Protocol (TCP) sockets when you use TCP sockets to perform readiness probes.\n"},"readinessProbeTimeoutSeconds":{"type":"integer","description":"The timeout period for the readiness probe. Unit: seconds. Default value: 1. Minimum value: 1.\n"},"securityContextCapabilityAdds":{"type":"array","items":{"type":"string"},"description":"Grant certain permissions to processes within container. Optional values:\n- NET_ADMIN: Allow network management tasks to be performed.\n- NET_RAW: Allow raw sockets.\n"},"securityContextReadOnlyRootFileSystem":{"type":"boolean","description":"Mounts the container's root filesystem as read-only.\n"},"securityContextRunAsUser":{"type":"integer","description":"Specifies user ID  under which all processes run.\n"},"stdin":{"type":"boolean","description":"Specifies whether container N allocates buffer resources to standard input streams during its active runtime. If you do not specify this parameter, an end-of-file (EOF) error occurs.\n"},"tty":{"type":"boolean","description":"Specifies whether to enable the Interaction feature. Valid values: true, false.\n"},"volumeMounts":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationContainerVolumeMount:EciScalingConfigurationContainerVolumeMount"},"description":"The structure of volumeMounts. \nSee \u003cspan pulumi-lang-nodejs=\"`volumeMounts`\" pulumi-lang-dotnet=\"`VolumeMounts`\" pulumi-lang-go=\"`volumeMounts`\" pulumi-lang-python=\"`volume_mounts`\" pulumi-lang-yaml=\"`volumeMounts`\" pulumi-lang-java=\"`volumeMounts`\"\u003e`volume_mounts`\u003c/span\u003e below for details.\n"},"workingDir":{"type":"string","description":"The working directory of the container.\n"}},"type":"object"},"alicloud:ess/EciScalingConfigurationContainerEnvironmentVar:EciScalingConfigurationContainerEnvironmentVar":{"properties":{"fieldRefFieldPath":{"type":"string"},"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"alicloud:ess/EciScalingConfigurationContainerPort:EciScalingConfigurationContainerPort":{"properties":{"port":{"type":"integer"},"protocol":{"type":"string"}},"type":"object"},"alicloud:ess/EciScalingConfigurationContainerVolumeMount:EciScalingConfigurationContainerVolumeMount":{"properties":{"mountPath":{"type":"string"},"mountPropagation":{"type":"string"},"name":{"type":"string"},"readOnly":{"type":"boolean"},"subPath":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["mountPropagation"]}}},"alicloud:ess/EciScalingConfigurationDnsConfigOption:EciScalingConfigurationDnsConfigOption":{"properties":{"name":{"type":"string","description":"The option name.\n"},"value":{"type":"string","description":"The option value.\n"}},"type":"object"},"alicloud:ess/EciScalingConfigurationHostAlias:EciScalingConfigurationHostAlias":{"properties":{"hostnames":{"type":"array","items":{"type":"string"},"description":"Adds a host name.\n"},"ip":{"type":"string","description":"Adds an IP address.\n"}},"type":"object"},"alicloud:ess/EciScalingConfigurationImageRegistryCredential:EciScalingConfigurationImageRegistryCredential":{"properties":{"password":{"type":"string","description":"The password used to log on to the image repository. It is required\nwhen \u003cspan pulumi-lang-nodejs=\"`imageRegistryCredential`\" pulumi-lang-dotnet=\"`ImageRegistryCredential`\" pulumi-lang-go=\"`imageRegistryCredential`\" pulumi-lang-python=\"`image_registry_credential`\" pulumi-lang-yaml=\"`imageRegistryCredential`\" pulumi-lang-java=\"`imageRegistryCredential`\"\u003e`image_registry_credential`\u003c/span\u003e is configured.\n"},"server":{"type":"string","description":"The address of the image repository. It is required when \u003cspan pulumi-lang-nodejs=\"`imageRegistryCredential`\" pulumi-lang-dotnet=\"`ImageRegistryCredential`\" pulumi-lang-go=\"`imageRegistryCredential`\" pulumi-lang-python=\"`image_registry_credential`\" pulumi-lang-yaml=\"`imageRegistryCredential`\" pulumi-lang-java=\"`imageRegistryCredential`\"\u003e`image_registry_credential`\u003c/span\u003e is\nconfigured.\n"},"username":{"type":"string","description":"The username used to log on to the image repository. It is required\nwhen \u003cspan pulumi-lang-nodejs=\"`imageRegistryCredential`\" pulumi-lang-dotnet=\"`ImageRegistryCredential`\" pulumi-lang-go=\"`imageRegistryCredential`\" pulumi-lang-python=\"`image_registry_credential`\" pulumi-lang-yaml=\"`imageRegistryCredential`\" pulumi-lang-java=\"`imageRegistryCredential`\"\u003e`image_registry_credential`\u003c/span\u003e is configured.\n"}},"type":"object"},"alicloud:ess/EciScalingConfigurationInitContainer:EciScalingConfigurationInitContainer":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"The arguments passed to the commands.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"The commands run by the init container.\n"},"cpu":{"type":"number","description":"The amount of CPU resources allocated to the container.\n"},"environmentVars":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationInitContainerEnvironmentVar:EciScalingConfigurationInitContainerEnvironmentVar"},"description":"The structure of environmentVars. \nSee \u003cspan pulumi-lang-nodejs=\"`environmentVars`\" pulumi-lang-dotnet=\"`EnvironmentVars`\" pulumi-lang-go=\"`environmentVars`\" pulumi-lang-python=\"`environment_vars`\" pulumi-lang-yaml=\"`environmentVars`\" pulumi-lang-java=\"`environmentVars`\"\u003e`environment_vars`\u003c/span\u003e below for details.\n"},"gpu":{"type":"integer","description":"The number GPUs.\n"},"image":{"type":"string","description":"The image of the container.\n"},"imagePullPolicy":{"type":"string","description":"The restart policy of the image.\n"},"memory":{"type":"number","description":"The amount of memory resources allocated to the container.\n"},"name":{"type":"string","description":"The name of the mounted volume.\n"},"ports":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationInitContainerPort:EciScalingConfigurationInitContainerPort"},"description":"The structure of port. See \u003cspan pulumi-lang-nodejs=\"`ports`\" pulumi-lang-dotnet=\"`Ports`\" pulumi-lang-go=\"`ports`\" pulumi-lang-python=\"`ports`\" pulumi-lang-yaml=\"`ports`\" pulumi-lang-java=\"`ports`\"\u003e`ports`\u003c/span\u003e below for details.\n"},"securityContextCapabilityAdds":{"type":"array","items":{"type":"string"},"description":"Grant certain permissions to processes within container. Optional values:\n- NET_ADMIN: Allow network management tasks to be performed.\n- NET_RAW: Allow raw sockets.\n"},"securityContextReadOnlyRootFileSystem":{"type":"boolean","description":"Mounts the container's root filesystem as read-only.\n"},"securityContextRunAsUser":{"type":"integer","description":"Specifies user ID  under which all processes run.\n"},"volumeMounts":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationInitContainerVolumeMount:EciScalingConfigurationInitContainerVolumeMount"},"description":"The structure of volumeMounts. See \u003cspan pulumi-lang-nodejs=\"`volumeMounts`\" pulumi-lang-dotnet=\"`VolumeMounts`\" pulumi-lang-go=\"`volumeMounts`\" pulumi-lang-python=\"`volume_mounts`\" pulumi-lang-yaml=\"`volumeMounts`\" pulumi-lang-java=\"`volumeMounts`\"\u003e`volume_mounts`\u003c/span\u003e below for details.\n"},"workingDir":{"type":"string","description":"The working directory of the container.\n"}},"type":"object"},"alicloud:ess/EciScalingConfigurationInitContainerEnvironmentVar:EciScalingConfigurationInitContainerEnvironmentVar":{"properties":{"fieldRefFieldPath":{"type":"string"},"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"alicloud:ess/EciScalingConfigurationInitContainerPort:EciScalingConfigurationInitContainerPort":{"properties":{"port":{"type":"integer"},"protocol":{"type":"string"}},"type":"object"},"alicloud:ess/EciScalingConfigurationInitContainerVolumeMount:EciScalingConfigurationInitContainerVolumeMount":{"properties":{"mountPath":{"type":"string"},"mountPropagation":{"type":"string"},"name":{"type":"string"},"readOnly":{"type":"boolean"},"subPath":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["mountPropagation"]}}},"alicloud:ess/EciScalingConfigurationSecurityContextSysctl:EciScalingConfigurationSecurityContextSysctl":{"properties":{"name":{"type":"string","description":"The system name of the security context in which the elastic container instance is run.\n"},"value":{"type":"string","description":"The system value of the security context in which the elastic container instance is run.\n"}},"type":"object"},"alicloud:ess/EciScalingConfigurationVolume:EciScalingConfigurationVolume":{"properties":{"configFileVolumeConfigFileToPaths":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationVolumeConfigFileVolumeConfigFileToPath:EciScalingConfigurationVolumeConfigFileVolumeConfigFileToPath"},"description":"ConfigFileVolumeConfigFileToPaths.\nSee \u003cspan pulumi-lang-nodejs=\"`configFileVolumeConfigFileToPaths`\" pulumi-lang-dotnet=\"`ConfigFileVolumeConfigFileToPaths`\" pulumi-lang-go=\"`configFileVolumeConfigFileToPaths`\" pulumi-lang-python=\"`config_file_volume_config_file_to_paths`\" pulumi-lang-yaml=\"`configFileVolumeConfigFileToPaths`\" pulumi-lang-java=\"`configFileVolumeConfigFileToPaths`\"\u003e`config_file_volume_config_file_to_paths`\u003c/span\u003e below for details.\n"},"configFileVolumeDefaultMode":{"type":"integer","description":"The default permissions on the ConfigFileVolume.\n"},"diskVolumeDiskId":{"type":"string","description":"The ID of DiskVolume.\n"},"diskVolumeDiskSize":{"type":"integer","description":"The disk size of DiskVolume.\n"},"diskVolumeFsType":{"type":"string","description":"The system type of DiskVolume.\n"},"emptyDirVolumeMedium":{"type":"string","description":"The storage medium of the EmptyDirVolume. If you leave this parameter empty, the file system of the node is used as the storage medium. If you set this parameter to memory, the memory is used as the storage medium.\n"},"emptyDirVolumeSizeLimit":{"type":"string","description":"The storage size of the EmptyDirVolume. Unit: GiB or MiB.\n"},"flexVolumeDriver":{"type":"string","description":"The name of the FlexVolume driver.\n"},"flexVolumeFsType":{"type":"string","description":"The type of the mounted file system. The default value is determined by the script\nof FlexVolume.\n"},"flexVolumeOptions":{"type":"string","description":"The list of FlexVolume objects. Each object is a key-value pair contained in a JSON\nstring.\n"},"hostPathVolumePath":{"type":"string","description":"The absolute path on the host.\n"},"hostPathVolumeType":{"type":"string","description":"The type of the host path. Examples: File, Directory, and Socket.\n"},"name":{"type":"string","description":"The name of the volume.\n"},"nfsVolumePath":{"type":"string","description":"The path to the NFS volume.\n"},"nfsVolumeReadOnly":{"type":"boolean","description":"The nfs volume read only. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"nfsVolumeServer":{"type":"string","description":"The address of the NFS server.\n\n\u003e **NOTE:** Every volume mounted must have a name and type attributes.\n"},"type":{"type":"string","description":"The type of the volume.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["emptyDirVolumeMedium"]}}},"alicloud:ess/EciScalingConfigurationVolumeConfigFileVolumeConfigFileToPath:EciScalingConfigurationVolumeConfigFileVolumeConfigFileToPath":{"properties":{"content":{"type":"string","description":"The content of the configuration file. Maximum size: 32 KB.\n"},"mode":{"type":"integer","description":"The permissions on the ConfigFileVolume directory.\n"},"path":{"type":"string","description":"The relative file path.\n"}},"type":"object"},"alicloud:ess/InstanceRefreshCheckpoint:InstanceRefreshCheckpoint":{"properties":{"percentage":{"type":"integer","description":"The percentage of new instances out of the total instances in the scaling group. The task automatically pauses when this percentage is reached.\n"}},"type":"object"},"alicloud:ess/InstanceRefreshDesiredConfigurationContainer:InstanceRefreshDesiredConfigurationContainer":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"The arguments for the container startup command.\n","willReplaceOnChanges":true},"commands":{"type":"array","items":{"type":"string"},"description":"The container startup command.\n","willReplaceOnChanges":true},"environmentVars":{"type":"array","items":{"$ref":"#/types/alicloud:ess/InstanceRefreshDesiredConfigurationContainerEnvironmentVar:InstanceRefreshDesiredConfigurationContainerEnvironmentVar"},"description":"Information about the environment variables. See \u003cspan pulumi-lang-nodejs=\"`environmentVars`\" pulumi-lang-dotnet=\"`EnvironmentVars`\" pulumi-lang-go=\"`environmentVars`\" pulumi-lang-python=\"`environment_vars`\" pulumi-lang-yaml=\"`environmentVars`\" pulumi-lang-java=\"`environmentVars`\"\u003e`environment_vars`\u003c/span\u003e below for details.\n","willReplaceOnChanges":true},"image":{"type":"string","description":"The container image.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The custom name of the container.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:ess/InstanceRefreshDesiredConfigurationContainerEnvironmentVar:InstanceRefreshDesiredConfigurationContainerEnvironmentVar":{"properties":{"fieldRefFieldPath":{"type":"string","description":"This parameter is not available for use.\n"},"key":{"type":"string","description":"The name of the environment variable.\n"},"value":{"type":"string","description":"The value of the environment variable.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["value"]}}},"alicloud:ess/InstanceRefreshDesiredConfigurationLaunchTemplateOverride:InstanceRefreshDesiredConfigurationLaunchTemplateOverride":{"properties":{"instanceType":{"type":"string","description":"The specified instance type, which overwrites the instance type in the launch template.\n"}},"type":"object"},"alicloud:ess/ScalingConfigurationCustomPriority:ScalingConfigurationCustomPriority":{"properties":{"instanceType":{"type":"string","description":"This parameter takes effect only if you set Scaling Policy to Priority Policy and the instance type specified by CustomPriorities.N.InstanceType is contained in the scaling configuration.\n"},"vswitchId":{"type":"string","description":"This parameter takes effect only if you set Scaling Policy to Priority Policy and the vSwitch specified by CustomPriorities.N.VswitchId is included in the vSwitch list of your scaling group.\n"}},"type":"object"},"alicloud:ess/ScalingConfigurationDataDisk:ScalingConfigurationDataDisk":{"properties":{"autoSnapshotPolicyId":{"type":"string","description":"The id of auto snapshot policy for data disk.\n"},"category":{"type":"string","description":"Category of data disk. The parameter value options are \u003cspan pulumi-lang-nodejs=\"`ephemeralSsd`\" pulumi-lang-dotnet=\"`EphemeralSsd`\" pulumi-lang-go=\"`ephemeralSsd`\" pulumi-lang-python=\"`ephemeral_ssd`\" pulumi-lang-yaml=\"`ephemeralSsd`\" pulumi-lang-java=\"`ephemeralSsd`\"\u003e`ephemeral_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e , \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e.\n"},"deleteWithInstance":{"type":"boolean","description":"Whether to delete data disks attached on ecs when release ecs instance. Optional value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The description of data disk N. Valid values of N: 1 to 16. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"device":{"type":"string","description":"The mount point of data disk N. Valid values of N: 1 to 16. If this parameter is not specified, the system automatically allocates a mount point to created ECS instances. The name of the mount point ranges from /dev/xvdb to /dev/xvdz in alphabetical order.\n","deprecationMessage":"Attribute device has been deprecated on disk attachment resource. Suggest to remove it from your template."},"encrypted":{"type":"boolean","description":"Specifies whether data disk N is to be encrypted. Valid values of N: 1 to 16. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: encrypted, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: not encrypted. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"kmsKeyId":{"type":"string","description":"The CMK ID for data disk N. Valid values of N: 1 to 16.\n"},"name":{"type":"string","description":"The name of data disk N. Valid values of N: 1 to 16. It must be 2 to 128 characters in length. It must start with a letter and cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), and hyphens (-). Default value: null.\n"},"performanceLevel":{"type":"string","description":"The performance level of the ESSD used as data disk.\n"},"provisionedIops":{"type":"integer","description":"IOPS measures the number of read and write operations that an Elastic Block Storage (EBS) device can process per second.\n"},"size":{"type":"integer","description":"Size of data disk, in GB. The value ranges [5,2000] for a cloud disk, [5,1024] for an ephemeral disk, [5,800] for an\u003cspan pulumi-lang-nodejs=\" ephemeralSsd \" pulumi-lang-dotnet=\" EphemeralSsd \" pulumi-lang-go=\" ephemeralSsd \" pulumi-lang-python=\" ephemeral_ssd \" pulumi-lang-yaml=\" ephemeralSsd \" pulumi-lang-java=\" ephemeralSsd \"\u003e ephemeral_ssd \u003c/span\u003edisk, [20,32768] for cloud_efficiency, cloud_ssd,\u003cspan pulumi-lang-nodejs=\" cloudEssd \" pulumi-lang-dotnet=\" CloudEssd \" pulumi-lang-go=\" cloudEssd \" pulumi-lang-python=\" cloud_essd \" pulumi-lang-yaml=\" cloudEssd \" pulumi-lang-java=\" cloudEssd \"\u003e cloud_essd \u003c/span\u003edisk.\n"},"snapshotId":{"type":"string","description":"Snapshot used for creating the data disk. If this parameter is specified, the size parameter is neglected, and the size of the created disk is the size of the snapshot.\n"}},"type":"object"},"alicloud:ess/ScalingConfigurationInstancePatternInfo:ScalingConfigurationInstancePatternInfo":{"properties":{"architectures":{"type":"array","items":{"type":"string"},"description":"Architecture N of instance type N. Valid values: X86, Heterogeneous, BareMetal, Arm, SuperComputeCluster.\n"},"burstablePerformance":{"type":"string","description":"Specifies whether to include burstable instance types.  Valid values: Exclude, Include, Required.\n"},"cores":{"type":"integer","description":"The number of vCPUs that are specified for an instance type in instancePatternInfo.\n"},"cpuArchitectures":{"type":"array","items":{"type":"string"},"description":"CPU architecture N of the instance types. Valid values: x86,Arm.\n"},"excludedInstanceTypes":{"type":"array","items":{"type":"string"},"description":"Instance type N that you want to exclude. You can use wildcard characters, such as an asterisk (*), to exclude an instance type or an instance family.\n"},"gpuSpecs":{"type":"array","items":{"type":"string"},"description":"The GPU model.\n"},"instanceCategories":{"type":"array","items":{"type":"string"},"description":"Category N of the instances type. Valid values: General-purpose, Compute-optimized, Memory-optimized, Big data, Local SSDs, Enhanced, Shared, Compute-optimized with GPU, Visual Compute-optimized, Heterogeneous Service, Compute-optimized with FPGA, Compute-optimized with NPU, ECS Bare Metal, High Performance Compute.\n"},"instanceFamilyLevel":{"type":"string","description":"The instance family level in instancePatternInfo.\n"},"instanceTypeFamilies":{"type":"array","items":{"type":"string"},"description":"Instance family N that is queried. Valid values of N: 1 to 10.\n"},"maxPrice":{"type":"number","description":"The maximum hourly price for a pay-as-you-go instance or a preemptible instance in instancePatternInfo.\n"},"maximumCpuCoreCount":{"type":"integer","description":"The maximum number of vCPUs per instance type.\n"},"maximumGpuAmount":{"type":"integer","description":"The maximum number of GPUs per instance. The value must be a positive integer.\n"},"maximumMemorySize":{"type":"number","description":"The maximum memory size per instance. Unit: GiB.\n"},"memory":{"type":"number","description":"The memory size that is specified for an instance type in instancePatternInfo.\n"},"minimumBaselineCredit":{"type":"integer","description":"The minimum baseline vCPU computing performance (overall baseline performance of all vCPUs) per t5 or t6 burstable instance.\n"},"minimumCpuCoreCount":{"type":"integer","description":"The minimum number of vCPUs per instance type.\n"},"minimumEniIpv6AddressQuantity":{"type":"integer","description":"The minimum number of IPv6 addresses per ENI.\n"},"minimumEniPrivateIpAddressQuantity":{"type":"integer","description":"The minimum number of IPv4 addresses per ENI.\n"},"minimumEniQuantity":{"type":"integer","description":"The minimum number of elastic network interfaces (ENIs) per instance.\n"},"minimumGpuAmount":{"type":"integer","description":"The minimum number of GPUs per instance. The value must be a positive integer.\n"},"minimumInitialCredit":{"type":"integer","description":"The initial vCPU credits per t5 or t6 burstable instance.\n"},"minimumMemorySize":{"type":"number","description":"The minimum memory size per instance. Unit: GiB.\n"},"physicalProcessorModels":{"type":"array","items":{"type":"string"},"description":"Processor model N of the ECS instances. Valid values of N: 1 to 10.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["burstablePerformance"]}}},"alicloud:ess/ScalingConfigurationInstanceTypeOverride:ScalingConfigurationInstanceTypeOverride":{"properties":{"instanceType":{"type":"string","description":"The is specified for an instance type in instanceTypeOverride.\n"},"weightedCapacity":{"type":"integer","description":"The weight of instance type in instanceTypeOverride.\n"}},"type":"object"},"alicloud:ess/ScalingConfigurationNetworkInterface:ScalingConfigurationNetworkInterface":{"properties":{"instanceType":{"type":"string","description":"The ENI type. If you specify NetworkInterfaces.N, specify at least one primary ENI. You cannot specify SecurityGroupId or SecurityGroupIds.N. Valid values: Primary, Secondary.\n"},"ipv6AddressCount":{"type":"integer","description":"The number of randomly generated IPv6 addresses that you want to assign to primary ENI N.\n"},"networkInterfaceTrafficMode":{"type":"string","description":"The communication mode of the ENI. Valid values: Standard, HighPerformance.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The ID of security group N to which ENI N belongs.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["instanceType","networkInterfaceTrafficMode"]}}},"alicloud:ess/ScalingConfigurationSpotPriceLimit:ScalingConfigurationSpotPriceLimit":{"properties":{"instanceType":{"type":"string","description":"Resource type of an ECS instance.\n"},"priceLimit":{"type":"number","description":"Price limit hourly of instance type, 2 decimals is allowed at most.\n"}},"type":"object"},"alicloud:ess/ScalingGroupAlbServerGroup:ScalingGroupAlbServerGroup":{"properties":{"albServerGroupId":{"type":"string","description":"The ID of ALB server group.\n"},"port":{"type":"integer","description":"The port number used by an ECS instance after Auto Scaling adds the ECS instance to ALB server group.\n"},"weight":{"type":"integer","description":"The weight of the ECS instance as a backend server after Auto Scaling adds the ECS instance to ALB server group.\n"}},"type":"object"},"alicloud:ess/ScalingGroupLaunchTemplateOverride:ScalingGroupLaunchTemplateOverride":{"properties":{"instanceType":{"type":"string","description":"The instance type in launchTemplateOverride.\n"},"spotPriceLimit":{"type":"number","description":"The maximum bid price of instance type in launchTemplateOverride.\n\n\n\u003e **NOTE:** When detach loadbalancers, instances in group will be remove from loadbalancer's `Default Server Group`; On the contrary, When attach loadbalancers, instances in group will be added to loadbalancer's `Default Server Group`.\n\n\u003e **NOTE:** When detach dbInstances, private ip of instances in group will be remove from dbInstance's `WhiteList`; On the contrary, When attach dbInstances, private ip of instances in group will be added to dbInstance's `WhiteList`.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`onDemandBaseCapacity`\" pulumi-lang-dotnet=\"`OnDemandBaseCapacity`\" pulumi-lang-go=\"`onDemandBaseCapacity`\" pulumi-lang-python=\"`on_demand_base_capacity`\" pulumi-lang-yaml=\"`onDemandBaseCapacity`\" pulumi-lang-java=\"`onDemandBaseCapacity`\"\u003e`on_demand_base_capacity`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`onDemandPercentageAboveBaseCapacity`\" pulumi-lang-dotnet=\"`OnDemandPercentageAboveBaseCapacity`\" pulumi-lang-go=\"`onDemandPercentageAboveBaseCapacity`\" pulumi-lang-python=\"`on_demand_percentage_above_base_capacity`\" pulumi-lang-yaml=\"`onDemandPercentageAboveBaseCapacity`\" pulumi-lang-java=\"`onDemandPercentageAboveBaseCapacity`\"\u003e`on_demand_percentage_above_base_capacity`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`spotInstancePools`\" pulumi-lang-dotnet=\"`SpotInstancePools`\" pulumi-lang-go=\"`spotInstancePools`\" pulumi-lang-python=\"`spot_instance_pools`\" pulumi-lang-yaml=\"`spotInstancePools`\" pulumi-lang-java=\"`spotInstancePools`\"\u003e`spot_instance_pools`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`spotInstanceRemedy`\" pulumi-lang-dotnet=\"`SpotInstanceRemedy`\" pulumi-lang-go=\"`spotInstanceRemedy`\" pulumi-lang-python=\"`spot_instance_remedy`\" pulumi-lang-yaml=\"`spotInstanceRemedy`\" pulumi-lang-java=\"`spotInstanceRemedy`\"\u003e`spot_instance_remedy`\u003c/span\u003e are valid only if \u003cspan pulumi-lang-nodejs=\"`multiAzPolicy`\" pulumi-lang-dotnet=\"`MultiAzPolicy`\" pulumi-lang-go=\"`multiAzPolicy`\" pulumi-lang-python=\"`multi_az_policy`\" pulumi-lang-yaml=\"`multiAzPolicy`\" pulumi-lang-java=\"`multiAzPolicy`\"\u003e`multi_az_policy`\u003c/span\u003e is 'COST_OPTIMIZED'.\n"},"weightedCapacity":{"type":"integer","description":"The weight of the instance type in launchTemplateOverride.\n"}},"type":"object"},"alicloud:ess/ScalingGroupVServerGroupsVserverGroup:ScalingGroupVServerGroupsVserverGroup":{"properties":{"loadbalancerId":{"type":"string","description":"Loadbalancer server ID of VServer Group.\n"},"vserverAttributes":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingGroupVServerGroupsVserverGroupVserverAttribute:ScalingGroupVServerGroupsVserverGroupVserverAttribute"},"description":"A list of VServer Group attributes. See \u003cspan pulumi-lang-nodejs=\"`vserverAttributes`\" pulumi-lang-dotnet=\"`VserverAttributes`\" pulumi-lang-go=\"`vserverAttributes`\" pulumi-lang-python=\"`vserver_attributes`\" pulumi-lang-yaml=\"`vserverAttributes`\" pulumi-lang-java=\"`vserverAttributes`\"\u003e`vserver_attributes`\u003c/span\u003e below.\n"}},"type":"object","required":["loadbalancerId","vserverAttributes"]},"alicloud:ess/ScalingGroupVServerGroupsVserverGroupVserverAttribute:ScalingGroupVServerGroupsVserverGroupVserverAttribute":{"properties":{"port":{"type":"integer","description":"The port will be used for VServer Group backend server.\n"},"vserverGroupId":{"type":"string","description":"ID of VServer Group.\n"},"weight":{"type":"integer","description":"The weight of an ECS instance attached to the VServer Group.\n"}},"type":"object","required":["port","vserverGroupId","weight"]},"alicloud:ess/ScalingRuleAlarmDimension:ScalingRuleAlarmDimension":{"properties":{"dimensionKey":{"type":"string","description":"The dimension key of the metric.\n"},"dimensionValue":{"type":"string","description":"The dimension value of the metric.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:ess/ScalingRuleHybridMetric:ScalingRuleHybridMetric":{"properties":{"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingRuleHybridMetricDimension:ScalingRuleHybridMetricDimension"},"description":"The structure of volumeMounts.\nSee \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below for details.\n"},"expression":{"type":"string","description":"The metric expression that consists of multiple Hybrid Cloud Monitoring metrics. It calculates a result used to trigger scaling events. The expression must comply with the Reverse Polish Notation (RPN) specification, and the operators can only be + - × /.\n"},"id":{"type":"string","description":"The reference ID of the metric in the metric expression.\n"},"metricName":{"type":"string","description":"The name of the Hybrid Cloud Monitoring metric.\n"},"statistic":{"type":"string","description":"The statistical method of the metric value. Valid values: Average, Minimum, Maximum.\n"}},"type":"object"},"alicloud:ess/ScalingRuleHybridMetricDimension:ScalingRuleHybridMetricDimension":{"properties":{"dimensionKey":{"type":"string"},"dimensionValue":{"type":"string"}},"type":"object"},"alicloud:ess/ScalingRuleStepAdjustment:ScalingRuleStepAdjustment":{"properties":{"metricIntervalLowerBound":{"type":"string","description":"The lower bound of step.\n"},"metricIntervalUpperBound":{"type":"string","description":"The upper bound of step.\n"},"scalingAdjustment":{"type":"integer","description":"The adjust value of step.\n"}},"type":"object"},"alicloud:ess/getAlarmsAlarm:getAlarmsAlarm":{"properties":{"alarmActions":{"type":"array","items":{"type":"string"},"description":"The list of actions to execute when this alarm transition into an ALARM state. Each action is specified as ess scaling rule ari.\n"},"cloudMonitorGroupId":{"type":"integer","description":"Defines the application group id defined by CMS which is assigned when you upload custom metric to CMS, only available for custom metirc.\n"},"comparisonOperator":{"type":"string","description":"The arithmetic operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand.\n"},"description":{"type":"string","description":"The description for the alarm.\n"},"dimensions":{"type":"object","additionalProperties":{"type":"string"},"description":"The dimension map for the alarm's associated metric.\n"},"enable":{"type":"boolean","description":"Whether to enable specific ess alarm.\n"},"evaluationCount":{"type":"integer","description":"The number of times that needs to satisfies comparison condition before transition into ALARM state.\n"},"id":{"type":"string","description":"The id of alarm.\n"},"metricName":{"type":"string","description":"The name for the alarm's associated metric.\n"},"metricType":{"type":"string","description":"The type for the alarm's associated metric. Supported value: system, custom. \"system\" means the metric data is collected by Aliyun Cloud Monitor Service(CMS), \"custom\" means the metric data is upload to CMS by users. Defaults to system.\n"},"name":{"type":"string","description":"The name for ess alarm.\n"},"period":{"type":"integer","description":"The period in seconds over which the specified statistic is applied.\n"},"scalingGroupId":{"type":"string","description":"Scaling group id the alarms belong to.\n"},"state":{"type":"string","description":"The state of alarm task.\n"},"statistics":{"type":"string","description":"The statistic to apply to the alarm's associated metric.\n"},"threshold":{"type":"string","description":"The value against which the specified statistics is compared.\n"}},"type":"object","required":["alarmActions","cloudMonitorGroupId","comparisonOperator","description","dimensions","enable","evaluationCount","id","metricName","metricType","name","period","scalingGroupId","state","statistics","threshold"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ess/getLifecycleHooksHook:getLifecycleHooksHook":{"properties":{"defaultResult":{"type":"string","description":"Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses.\n"},"heartbeatTimeout":{"type":"integer","description":"Defines the amount of time, in seconds, that can elapse before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the action defined in the\u003cspan pulumi-lang-nodejs=\" defaultResult \" pulumi-lang-dotnet=\" DefaultResult \" pulumi-lang-go=\" defaultResult \" pulumi-lang-python=\" default_result \" pulumi-lang-yaml=\" defaultResult \" pulumi-lang-java=\" defaultResult \"\u003e default_result \u003c/span\u003eparameter.\n"},"id":{"type":"string","description":"ID of the lifecycle hook.\n"},"lifecycleTransition":{"type":"string","description":"Type of Scaling activity attached to lifecycle hook.\n"},"name":{"type":"string","description":"Name of the lifecycle hook.\n"},"notificationArn":{"type":"string","description":"The Arn of notification target.\n"},"notificationMetadata":{"type":"string","description":"Additional information that you want to include when Auto Scaling sends a message to the notification target.\n"},"scalingGroupId":{"type":"string","description":"Scaling group id the lifecycle hooks belong to.\n"}},"type":"object","required":["defaultResult","heartbeatTimeout","id","lifecycleTransition","name","notificationArn","notificationMetadata","scalingGroupId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ess/getNotificationsNotification:getNotificationsNotification":{"properties":{"id":{"type":"string","description":"ID of the notification.\n"},"notificationArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) for the notification object.\n"},"notificationTypes":{"type":"array","items":{"type":"string"},"description":"The notification types of Auto Scaling events and resource changes.\n"},"scalingGroupId":{"type":"string","description":"Scaling group id the notifications belong to.\n"}},"type":"object","required":["id","notificationArn","notificationTypes","scalingGroupId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ess/getScalingConfigurationsConfiguration:getScalingConfigurationsConfiguration":{"properties":{"creationTime":{"type":"string","description":"Creation time of the scaling configuration.\n"},"creditSpecification":{"type":"string","description":"Performance mode of the t5 burstable instance.\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ess/getScalingConfigurationsConfigurationDataDisk:getScalingConfigurationsConfigurationDataDisk"},"description":"Data disks of the scaling configuration.\n"},"hostName":{"type":"string","description":"(Optional,Available since v1.143.0) Hostname of an ECS instance.\n"},"id":{"type":"string","description":"ID of the scaling rule.\n"},"imageId":{"type":"string","description":"Image ID of the scaling configuration.\n"},"instanceName":{"type":"string","description":"(Optional,Available since v1.143.0) InstanceName of an ECS instance.\n"},"instancePatternInfos":{"type":"array","items":{"$ref":"#/types/alicloud:ess/getScalingConfigurationsConfigurationInstancePatternInfo:getScalingConfigurationsConfigurationInstancePatternInfo"},"description":"(Optional, Available since v1.240.0) intelligent configuration mode. In this mode, you only need to specify the number of vCPUs, memory size, instance family, and maximum price. The system selects an instance type that is provided at the lowest price based on your configurations to create ECS instances. This mode is available only for scaling groups that reside in virtual private clouds (VPCs). This mode helps reduce the failures of scale-out activities caused by insufficient inventory of instance types.\n"},"instanceType":{"type":"string","description":"Resource type of an ECS instance.\n"},"internetChargeType":{"type":"string","description":"Internet charge type of the scaling configuration.\n"},"internetMaxBandwidthIn":{"type":"integer","description":"Internet max bandwidth in of the scaling configuration.\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Internet max bandwidth of the scaling configuration.\n"},"lifecycleState":{"type":"string","description":"Lifecycle state of the scaling configuration.\n"},"name":{"type":"string","description":"Name of the scaling configuration.\n"},"scalingGroupId":{"type":"string","description":"Scaling group id the scaling configurations belong to.\n"},"securityGroupId":{"type":"string","description":"Security group ID of the scaling configuration.\n"},"spotPriceLimits":{"type":"array","items":{"$ref":"#/types/alicloud:ess/getScalingConfigurationsConfigurationSpotPriceLimit:getScalingConfigurationsConfigurationSpotPriceLimit"},"description":"(Optional, Available since v1.151.0) The maximum price hourly for instance types.\n"},"spotStrategy":{"type":"string","description":"(Optional, Available since v1.151.0) The spot strategy for a Pay-As-You-Go instance.\n"},"systemDiskCategory":{"type":"string","description":"System disk category of the scaling configuration.\n"},"systemDiskPerformanceLevel":{"type":"string","description":"The performance level of the ESSD used as the system disk.\n"},"systemDiskSize":{"type":"integer","description":"System disk size of the scaling configuration.\n"}},"type":"object","required":["creationTime","creditSpecification","dataDisks","hostName","id","imageId","instanceName","instancePatternInfos","instanceType","internetChargeType","internetMaxBandwidthIn","internetMaxBandwidthOut","lifecycleState","name","scalingGroupId","securityGroupId","spotPriceLimits","spotStrategy","systemDiskCategory","systemDiskPerformanceLevel","systemDiskSize"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ess/getScalingConfigurationsConfigurationDataDisk:getScalingConfigurationsConfigurationDataDisk":{"properties":{"category":{"type":"string","description":"Category of data disk.\n"},"deleteWithInstance":{"type":"boolean","description":"Delete_with_instance attribute of data disk.\n"},"device":{"type":"string","description":"Device attribute of data disk.\n"},"performanceLevel":{"type":"string","description":"The performance level of the ESSD used as data disk.\n"},"size":{"type":"integer","description":"Size of data disk.\n"},"snapshotId":{"type":"string","description":"Size of data disk.\n"}},"type":"object","required":["category","deleteWithInstance","device","performanceLevel","size","snapshotId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ess/getScalingConfigurationsConfigurationInstancePatternInfo:getScalingConfigurationsConfigurationInstancePatternInfo":{"properties":{"architectures":{"type":"array","items":{"type":"string"},"description":"Architecture N of instance type N. Valid values: X86, Heterogeneous, BareMetal, Arm, SuperComputeCluster.\n"},"burstablePerformance":{"type":"string","description":"Specifies whether to include burstable instance types.  Valid values: Exclude, Include, Required.\n"},"cores":{"type":"integer","description":"The number of vCPUs that are specified for an instance type in instancePatternInfo.\n"},"excludedInstanceTypes":{"type":"array","items":{"type":"string"},"description":"Instance type N that you want to exclude. You can use wildcard characters, such as an asterisk (*), to exclude an instance type or an instance family.\n"},"instanceFamilyLevel":{"type":"string","description":"The instance family level in instancePatternInfo.\n"},"maxPrice":{"type":"number","description":"The maximum hourly price for a pay-as-you-go instance or a preemptible instance in instancePatternInfo.\n"},"memory":{"type":"number","description":"The memory size that is specified for an instance type in instancePatternInfo.\n"}},"type":"object","required":["architectures","burstablePerformance","cores","excludedInstanceTypes","instanceFamilyLevel","maxPrice","memory"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ess/getScalingConfigurationsConfigurationSpotPriceLimit:getScalingConfigurationsConfigurationSpotPriceLimit":{"properties":{"instanceType":{"type":"string","description":"Resource type of an ECS instance.\n"},"priceLimit":{"type":"number","description":"Price limit hourly of instance type.\n"}},"type":"object","required":["instanceType","priceLimit"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ess/getScalingGroupsGroup:getScalingGroupsGroup":{"properties":{"activeCapacity":{"type":"integer","description":"Number of active instances in scaling group.\n"},"activeScalingConfiguration":{"type":"string","description":"Active scaling configuration for scaling group.\n"},"allocationStrategy":{"type":"string","description":"(Available since v1.242.0) The allocation policy of instances. Auto Scaling selects instance types based on the allocation policy to create instances. The allocation policy applies to pay-as-you-go and preemptible instances.\n"},"azBalance":{"type":"boolean","description":"(Available since v1.242.0) Indicates whether instances in the scaling group are evenly distributed across multiple zones.\n"},"capacityOptionsCompensateWithOnDemand":{"type":"boolean","description":"(Available since v1.249.0) Indicates whether pay-as-you-go instances can be automatically created to meet the requirement on the number of ECS instances when the expected capacity of preemptible instances cannot be provided due to reasons such as cost-related issues and insufficient resources. This parameter is available only if you set MultiAZPolicy to COST_OPTIMIZED. Valid values: true, false.\n"},"capacityOptionsOnDemandBaseCapacity":{"type":"integer","description":"(Available since v1.249.0) The minimum number of pay-as-you-go instances required in the scaling group. When the actual number of pay-as-you-go instances drops below the minimum threshold, Auto Scaling preferentially creates pay-as-you-go instances. Valid values: 0 to 1000.\n"},"capacityOptionsOnDemandPercentageAboveBaseCapacity":{"type":"integer","description":"(Available since v1.249.0) The percentage of pay-as-you-go instances in the excess instances when the minimum number of pay-as-you-go instances is reached. OnDemandBaseCapacity specifies the minimum number of pay-as-you-go instances that must be contained in the scaling group. Valid values: 0 to 100.\n"},"capacityOptionsSpotAutoReplaceOnDemand":{"type":"boolean","description":"(Available since v1.249.0) Indicates whether pay-as-you-go instances can be replaced with preemptible instances. If you specify CompensateWithOnDemand, it may result in a higher percentage of pay-as-you-go instances compared to the value of OnDemandPercentageAboveBaseCapacity. If you specify this parameter, Auto Scaling preferentially deploys preemptible instances to replace the surplus pay-as-you-go instances when preemptible instance types are available. If you specify CompensateWithOnDemand, Auto Scaling creates pay-as-you-go instances when preemptible instance types are insufficient. To avoid retaining these pay-as-you-go instances for extended periods, Auto Scaling attempts to replace them with preemptible instances when sufficient preemptible instance types become available. Valid values: true, false.\n"},"compensateWithOnDemand":{"type":"boolean","description":"(Available since v1.249.0) Indicates whether pay-as-you-go instances can be automatically created to meet the requirement on the number of ECS instances when the expected capacity of preemptible instances cannot be provided due to reasons such as cost-related issues and insufficient resources. This parameter is available only if you set MultiAZPolicy to COST_OPTIMIZED. Valid values: true, false.\n"},"cooldownTime":{"type":"integer","description":"Default cooldown time of scaling group.\n"},"creationTime":{"type":"string","description":"Creation time of scaling group.\n"},"dbInstanceIds":{"type":"array","items":{"type":"string"},"description":"Db instances id which the ECS instance attached to.\n"},"desiredCapacity":{"type":"integer","description":"(Available since v1.242.0) The expected number of ECS instances in the scaling group. Auto Scaling automatically maintains the expected number of ECS instances that you specified.\n"},"enableDesiredCapacity":{"type":"boolean","description":"(Available since v1.242.0) Indicates whether the Expected Number of Instances feature is enabled.\n"},"groupDeletionProtection":{"type":"boolean","description":"Whether the scaling group deletion protection is enabled.\n"},"groupType":{"type":"string","description":"(Available since v1.242.0) The type of the instances in the scaling group.\n"},"healthCheckType":{"type":"string","description":"The health check method of the scaling group.\n"},"id":{"type":"string","description":"ID of the scaling group.\n"},"initCapacity":{"type":"integer","description":"(Available since v1.242.0) The number of instances that are in the Initialized state and ready to be scaled out in the scaling group.\n"},"launchTemplateId":{"type":"string","description":"Active launch template ID for scaling group.\n"},"launchTemplateOverrides":{"type":"array","items":{"$ref":"#/types/alicloud:ess/getScalingGroupsGroupLaunchTemplateOverride:getScalingGroupsGroupLaunchTemplateOverride"},"description":"(Available since v1.249.0) The instance types that are specified by using the Extend Launch Template feature.\n"},"launchTemplateVersion":{"type":"string","description":"Version of active launch template.\n"},"lifecycleState":{"type":"string","description":"Lifecycle state of scaling group.\n"},"loadBalancerIds":{"type":"array","items":{"type":"string"},"description":"Slb instances id which the ECS instance attached to.\n"},"maxInstanceLifetime":{"type":"integer","description":"(Available since v1.242.0) The maximum life span of each instance in the scaling group. Unit: seconds.\n"},"maxSize":{"type":"integer","description":"The maximum number of ECS instances.\n"},"minSize":{"type":"integer","description":"The minimum number of ECS instances.\n"},"modificationTime":{"type":"string","description":"The modification time.\n"},"monitorGroupId":{"type":"string","description":"(Available since v1.242.0) The ID of the CloudMonitor application group that is associated with the scaling group.\n"},"multiAzPolicy":{"type":"string","description":"(Available since v1.242.0) The scaling policy of the multi-zone scaling group of the ECS type.\n"},"name":{"type":"string","description":"Name of the scaling group.\n"},"onDemandBaseCapacity":{"type":"integer","description":"(Available since v1.242.0) The lower limit of the number of pay-as-you-go instances in the scaling group.\n"},"onDemandPercentageAboveBaseCapacity":{"type":"integer","description":"(Available since v1.242.0) The percentage of pay-as-you-go instances in the excess instances when the minimum number of pay-as-you-go instances is reached. OnDemandBaseCapacity specifies the minimum number of pay-as-you-go instances that must be contained in the scaling group.\n"},"pendingCapacity":{"type":"integer","description":"(Available since v1.242.0) The number of ECS instances that are being added to the scaling group and still being configured.\n"},"pendingWaitCapacity":{"type":"integer","description":"(Available since v1.242.0) The number of ECS instances that are in the Pending Add state in the scaling group.\n"},"protectedCapacity":{"type":"integer","description":"(Available since v1.242.0) The number of ECS instances that are in the Protected state in the scaling group.\n"},"regionId":{"type":"string","description":"Region ID the scaling group belongs to.\n"},"removalPolicies":{"type":"array","items":{"type":"string"},"description":"Removal policy used to select the ECS instance to remove from the scaling group.\n"},"removingCapacity":{"type":"integer","description":"(Available since v1.242.0) The number of ECS instances that are being removed from the scaling group.\n"},"removingWaitCapacity":{"type":"integer","description":"(Available since v1.242.0) The number of ECS instances that are in the Pending Remove state in the scaling group.\n"},"resourceGroupId":{"type":"string","description":"(Available since v1.242.0) The ID of the resource group to which the scaling group that you want to query belongs.\n"},"scalingPolicy":{"type":"string","description":"(Available since v1.242.0) The reclaim mode of the scaling group.\n"},"spotAllocationStrategy":{"type":"string","description":"(Available since v1.242.0) The allocation policy of preemptible instances. This parameter indicates the method used by Auto Scaling to select instance types to create the required number of preemptible instances. This parameter takes effect only if you set\u003cspan pulumi-lang-nodejs=\" multiAzPolicy \" pulumi-lang-dotnet=\" MultiAzPolicy \" pulumi-lang-go=\" multiAzPolicy \" pulumi-lang-python=\" multi_az_policy \" pulumi-lang-yaml=\" multiAzPolicy \" pulumi-lang-java=\" multiAzPolicy \"\u003e multi_az_policy \u003c/span\u003eto COMPOSABLE.\n"},"spotCapacity":{"type":"integer","description":"(Available since v1.242.0) The number of preemptible instances in the scaling group.\n"},"spotInstancePools":{"type":"integer","description":"(Available since v1.242.0) The number of instance types. Auto Scaling creates preemptible instances of multiple instance types that are provided at the lowest price.\n"},"spotInstanceRemedy":{"type":"boolean","description":"(Available since v1.242.0) Indicates whether supplementation of preemptible instances is enabled. If this parameter is set to true, Auto Scaling creates an instance to replace a preemptible instance when Auto Scaling receives a system message indicating that the preemptible instance is to be reclaimed.\n"},"standbyCapacity":{"type":"integer","description":"(Available since v1.242.0) The number of instances that are in the Standby state in the scaling group.\n"},"stopInstanceTimeout":{"type":"integer","description":"(Available since v1.242.0) The period of time that is required by an ECS instance to enter the Stopped state during the scale-in process. Unit: seconds.\n"},"stoppedCapacity":{"type":"integer","description":"(Available since v1.242.0) The number of instances that are in Economical Mode in the scaling group.\n"},"suspendedProcesses":{"type":"array","items":{"type":"string"},"description":"The Process in suspension.\n"},"systemSuspended":{"type":"boolean","description":"(Available since v1.242.0) Indicates whether Auto Scaling stops executing the scaling operation in the scaling group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"totalCapacity":{"type":"integer","description":"Number of instances in scaling group.\n"},"totalInstanceCount":{"type":"integer","description":"The number of all ECS instances in the scaling group.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the scaling group belongs.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which the scaling group belongs.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"Vswitches id in which the ECS instance launched.\n"}},"type":"object","required":["activeCapacity","activeScalingConfiguration","allocationStrategy","azBalance","capacityOptionsCompensateWithOnDemand","capacityOptionsOnDemandBaseCapacity","capacityOptionsOnDemandPercentageAboveBaseCapacity","capacityOptionsSpotAutoReplaceOnDemand","compensateWithOnDemand","cooldownTime","creationTime","dbInstanceIds","desiredCapacity","enableDesiredCapacity","groupDeletionProtection","groupType","healthCheckType","id","initCapacity","launchTemplateId","launchTemplateOverrides","launchTemplateVersion","lifecycleState","loadBalancerIds","maxInstanceLifetime","maxSize","minSize","modificationTime","monitorGroupId","multiAzPolicy","name","onDemandBaseCapacity","onDemandPercentageAboveBaseCapacity","pendingCapacity","pendingWaitCapacity","protectedCapacity","regionId","removalPolicies","removingCapacity","removingWaitCapacity","resourceGroupId","scalingPolicy","spotAllocationStrategy","spotCapacity","spotInstancePools","spotInstanceRemedy","standbyCapacity","stopInstanceTimeout","stoppedCapacity","suspendedProcesses","systemSuspended","tags","totalCapacity","totalInstanceCount","vpcId","vswitchId","vswitchIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ess/getScalingGroupsGroupLaunchTemplateOverride:getScalingGroupsGroupLaunchTemplateOverride":{"properties":{"instanceType":{"type":"string","description":"(Available since v1.249.0) The instance type. The instance type that is specified by this parameter overwrites the instance type that is specified in the launch template.\n"},"spotPriceLimit":{"type":"number","description":"(Available since v1.249.0) The maximum bid price of instance type N that is specified by LaunchTemplateOverride.N.InstanceType. You can specify N instance types by using the Extend Launch Template feature. Valid values of N: 1 to 10.\n"},"weightedCapacity":{"type":"integer","description":"(Available since v1.249.0) The weight of the instance type. The value of this parameter indicates the capacity of a single instance of the specified instance type in the scaling group. A greater weight indicates that a smaller number of instances of the specified instance type are required to reach the expected capacity.\n"}},"type":"object","required":["instanceType","spotPriceLimit","weightedCapacity"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ess/getScalingRulesRule:getScalingRulesRule":{"properties":{"adjustmentType":{"type":"string","description":"Adjustment type of the scaling rule.\n"},"adjustmentValue":{"type":"integer","description":"Adjustment value of the scaling rule.\n"},"cooldown":{"type":"integer","description":"Cooldown time of the scaling rule.\n"},"disableScaleIn":{"type":"boolean","description":"(Available since v1.250.0) Indicates whether scale-in is disabled. This parameter is available only if you set ScalingRuleType to TargetTrackingScalingRule. Valid values: true, false.\n"},"estimatedInstanceWarmup":{"type":"integer","description":"(Available since v1.250.0) The warm-up period during which a series of preparation measures are taken on new instances. Auto Scaling does not monitor the metric data of instances that are being warmed up.\n"},"hybridMetrics":{"type":"array","items":{"$ref":"#/types/alicloud:ess/getScalingRulesRuleHybridMetric:getScalingRulesRuleHybridMetric"},"description":"(Available since v1.250.0) The Hybrid Cloud Monitoring metrics.\n"},"hybridMonitorNamespace":{"type":"string","description":"(Available since v1.250.0) The ID of the Hybrid Cloud Monitoring namespace.\n"},"id":{"type":"string","description":"(Available since v1.250.0) The reference ID of the metric in the metric expression.\n"},"initialMaxSize":{"type":"integer","description":"(Available since v1.242.0) The maximum number of ECS instances that can be added to the scaling group.\n"},"metricName":{"type":"string","description":"(Available since v1.250.0) The name of the Hybrid Cloud Monitoring metric.\n"},"metricType":{"type":"string","description":"(Available since v1.250.0) The type of the event-triggered task that is associated with the scaling rule.\n"},"minAdjustmentMagnitude":{"type":"integer","description":"Min adjustment magnitude of scaling rule.\n"},"name":{"type":"string","description":"Name of the scaling rule.\n"},"predictiveScalingMode":{"type":"string","description":"(Available since v1.242.0) The mode of the predictive scaling rule.\n"},"predictiveTaskBufferTime":{"type":"integer","description":"(Available since v1.242.0) The amount of buffer time before the prediction task is executed. By default, all prediction tasks that are automatically created by a predictive scaling rule are executed on the hour. You can set a buffer time to execute prediction tasks and prepare resources in advance.\n"},"predictiveValueBehavior":{"type":"string","description":"(Available since v1.242.0) The action on the predicted maximum value.\n"},"predictiveValueBuffer":{"type":"integer","description":"(Available since v1.242.0) The ratio based on which the predicted value is increased if you set\u003cspan pulumi-lang-nodejs=\" predictiveValueBehavior \" pulumi-lang-dotnet=\" PredictiveValueBehavior \" pulumi-lang-go=\" predictiveValueBehavior \" pulumi-lang-python=\" predictive_value_behavior \" pulumi-lang-yaml=\" predictiveValueBehavior \" pulumi-lang-java=\" predictiveValueBehavior \"\u003e predictive_value_behavior \u003c/span\u003eto PredictiveValueOverrideMaxWithBuffer. If the predicted value that is increased by this ratio is greater than the initial maximum capacity, the increased value is used as the maximum value for prediction tasks.\n"},"scaleInEvaluationCount":{"type":"integer","description":"(Available since v1.250.0) After you create a target tracking scaling rule, an event-triggered task is automatically created and associated with the scaling rule. This parameter defines the number of consecutive times the alert condition must be satisfied before the event-triggered task initiates a scale-in operation.\n"},"scaleOutEvaluationCount":{"type":"integer","description":"(Available since v1.250.0) After you create a target tracking scaling rule, an event-triggered task is automatically created and associated with the scaling rule. This parameter defines the number of consecutive times the alert condition must be satisfied before the event-triggered task initiates a scale-out operation.\n"},"scalingGroupId":{"type":"string","description":"Scaling group id the scaling rules belong to.\n"},"scalingRuleAri":{"type":"string","description":"Ari of scaling rule.\n"},"stepAdjustments":{"type":"array","items":{"$ref":"#/types/alicloud:ess/getScalingRulesRuleStepAdjustment:getScalingRulesRuleStepAdjustment"},"description":"(Available since v1.250.0) The step adjustments of the step scaling rule.\n"},"targetValue":{"type":"number","description":"(Available since v1.242.0) The target value of the metric.\n"},"type":{"type":"string","description":"Type of scaling rule.\n"}},"type":"object","required":["adjustmentType","adjustmentValue","cooldown","disableScaleIn","estimatedInstanceWarmup","hybridMetrics","hybridMonitorNamespace","id","initialMaxSize","metricName","metricType","minAdjustmentMagnitude","name","predictiveScalingMode","predictiveTaskBufferTime","predictiveValueBehavior","predictiveValueBuffer","scaleInEvaluationCount","scaleOutEvaluationCount","scalingGroupId","scalingRuleAri","stepAdjustments","targetValue","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ess/getScalingRulesRuleHybridMetric:getScalingRulesRuleHybridMetric":{"properties":{"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:ess/getScalingRulesRuleHybridMetricDimension:getScalingRulesRuleHybridMetricDimension"},"description":"(Available since v1.250.0) The metric dimensions. You can use this parameter to specify the monitored resources.\n"},"expression":{"type":"string","description":"(Available since v1.250.0) The metric expression that consists of multiple Hybrid Cloud Monitoring metrics. It calculates a result used to trigger scaling events. The expression is written in Reverse Polish Notation (RPN) format and includes only the following operators: +, -, *, /.\n"},"id":{"type":"string","description":"(Available since v1.250.0) The reference ID of the metric in the metric expression.\n"},"metricName":{"type":"string","description":"(Available since v1.250.0) The name of the Hybrid Cloud Monitoring metric.\n"},"statistic":{"type":"string","description":"(Available since v1.250.0) The statistical method of the metric data.\n"}},"type":"object","required":["dimensions","expression","id","metricName","statistic"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ess/getScalingRulesRuleHybridMetricDimension:getScalingRulesRuleHybridMetricDimension":{"properties":{"dimensionKey":{"type":"string","description":"(Available since v1.250.0) The dimension key of the metric.\n"},"dimensionValue":{"type":"string","description":"(Available since v1.250.0) The dimension value of the metric.\n"}},"type":"object","required":["dimensionKey","dimensionValue"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ess/getScalingRulesRuleStepAdjustment:getScalingRulesRuleStepAdjustment":{"properties":{"metricIntervalLowerBound":{"type":"string","description":"(Available since v1.250.0) The lower limit of each step adjustment. Valid values: -9.999999E18 to 9.999999E18.\n"},"metricIntervalUpperBound":{"type":"string","description":"(Available since v1.250.0) The upper limit of each step adjustment. Valid values: -9.999999E18 to 9.999999E18.\n"},"scalingAdjustment":{"type":"integer","description":"(Available since v1.250.0) The number of instances that are scaled in each step adjustment.\n"}},"type":"object","required":["metricIntervalLowerBound","metricIntervalUpperBound","scalingAdjustment"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ess/getScheduledTasksTask:getScheduledTasksTask":{"properties":{"description":{"type":"string","description":"Description of the scheduled task.\n"},"id":{"type":"string","description":"ID of the scheduled task id.\n"},"launchExpirationTime":{"type":"integer","description":"The time period during which a failed scheduled task is retried.\n"},"launchTime":{"type":"string","description":"The time at which the scheduled task is triggered.\n"},"maxValue":{"type":"integer"},"minValue":{"type":"integer"},"name":{"type":"string","description":"Name of the scheduled task name.\n"},"recurrenceEndTime":{"type":"string","description":"Specifies the end time after which the scheduled task is no longer repeated.\n"},"recurrenceType":{"type":"string","description":"Specifies the recurrence type of the scheduled task.\n"},"recurrenceValue":{"type":"string","description":"Specifies how often a scheduled task recurs.\n"},"scheduledAction":{"type":"string","description":"The operation to be performed when a scheduled task is triggered.\n"},"taskEnabled":{"type":"boolean"}},"type":"object","required":["description","id","launchExpirationTime","launchTime","maxValue","minValue","name","recurrenceEndTime","recurrenceType","recurrenceValue","scheduledAction","taskEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eventbridge/ApiDestinationHttpApiParameters:ApiDestinationHttpApiParameters":{"properties":{"endpoint":{"type":"string","description":"The endpoint of the API destination.\n"},"method":{"type":"string","description":"The HTTP request method. Valid values: `GET`, `POST`, `HEAD`, `DELETE`, `PUT`, `PATCH`.\n"}},"type":"object","required":["endpoint","method"]},"alicloud:eventbridge/ConnectionAuthParameters:ConnectionAuthParameters":{"properties":{"apiKeyAuthParameters":{"$ref":"#/types/alicloud:eventbridge/ConnectionAuthParametersApiKeyAuthParameters:ConnectionAuthParametersApiKeyAuthParameters","description":"The parameters that are configured for API key authentication. See \u003cspan pulumi-lang-nodejs=\"`apiKeyAuthParameters`\" pulumi-lang-dotnet=\"`ApiKeyAuthParameters`\" pulumi-lang-go=\"`apiKeyAuthParameters`\" pulumi-lang-python=\"`api_key_auth_parameters`\" pulumi-lang-yaml=\"`apiKeyAuthParameters`\" pulumi-lang-java=\"`apiKeyAuthParameters`\"\u003e`api_key_auth_parameters`\u003c/span\u003e below.\n"},"authorizationType":{"type":"string","description":"The type of the authentication. Valid values: `API_KEY_AUTH`, `BASIC_AUTH`, `OAUTH_AUTH`.\n"},"basicAuthParameters":{"$ref":"#/types/alicloud:eventbridge/ConnectionAuthParametersBasicAuthParameters:ConnectionAuthParametersBasicAuthParameters","description":"The parameters that are configured for basic authentication. See \u003cspan pulumi-lang-nodejs=\"`basicAuthParameters`\" pulumi-lang-dotnet=\"`BasicAuthParameters`\" pulumi-lang-go=\"`basicAuthParameters`\" pulumi-lang-python=\"`basic_auth_parameters`\" pulumi-lang-yaml=\"`basicAuthParameters`\" pulumi-lang-java=\"`basicAuthParameters`\"\u003e`basic_auth_parameters`\u003c/span\u003e below.\n"},"oauthParameters":{"$ref":"#/types/alicloud:eventbridge/ConnectionAuthParametersOauthParameters:ConnectionAuthParametersOauthParameters","description":"The parameters that are configured for OAuth authentication. See \u003cspan pulumi-lang-nodejs=\"`oauthParameters`\" pulumi-lang-dotnet=\"`OauthParameters`\" pulumi-lang-go=\"`oauthParameters`\" pulumi-lang-python=\"`oauth_parameters`\" pulumi-lang-yaml=\"`oauthParameters`\" pulumi-lang-java=\"`oauthParameters`\"\u003e`oauth_parameters`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:eventbridge/ConnectionAuthParametersApiKeyAuthParameters:ConnectionAuthParametersApiKeyAuthParameters":{"properties":{"apiKeyName":{"type":"string","description":"The name of the API key.\n"},"apiKeyValue":{"type":"string","description":"The value of the API key.\n","secret":true}},"type":"object"},"alicloud:eventbridge/ConnectionAuthParametersBasicAuthParameters:ConnectionAuthParametersBasicAuthParameters":{"properties":{"password":{"type":"string","description":"The password for basic authentication.\n","secret":true},"username":{"type":"string","description":"The username for basic authentication.\n"}},"type":"object"},"alicloud:eventbridge/ConnectionAuthParametersOauthParameters:ConnectionAuthParametersOauthParameters":{"properties":{"authorizationEndpoint":{"type":"string","description":"The IP address of the authorized endpoint.\n"},"clientParameters":{"$ref":"#/types/alicloud:eventbridge/ConnectionAuthParametersOauthParametersClientParameters:ConnectionAuthParametersOauthParametersClientParameters","description":"The parameters that are configured for the client. See \u003cspan pulumi-lang-nodejs=\"`clientParameters`\" pulumi-lang-dotnet=\"`ClientParameters`\" pulumi-lang-go=\"`clientParameters`\" pulumi-lang-python=\"`client_parameters`\" pulumi-lang-yaml=\"`clientParameters`\" pulumi-lang-java=\"`clientParameters`\"\u003e`client_parameters`\u003c/span\u003e below.\n"},"httpMethod":{"type":"string","description":"The HTTP request method. Valid values: `GET`, `POST`, `HEAD`, `DELETE`, `PUT`, `PATCH`.\n"},"oauthHttpParameters":{"$ref":"#/types/alicloud:eventbridge/ConnectionAuthParametersOauthParametersOauthHttpParameters:ConnectionAuthParametersOauthParametersOauthHttpParameters","description":"The request parameters that are configured for OAuth authentication. See \u003cspan pulumi-lang-nodejs=\"`oauthHttpParameters`\" pulumi-lang-dotnet=\"`OauthHttpParameters`\" pulumi-lang-go=\"`oauthHttpParameters`\" pulumi-lang-python=\"`oauth_http_parameters`\" pulumi-lang-yaml=\"`oauthHttpParameters`\" pulumi-lang-java=\"`oauthHttpParameters`\"\u003e`oauth_http_parameters`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:eventbridge/ConnectionAuthParametersOauthParametersClientParameters:ConnectionAuthParametersOauthParametersClientParameters":{"properties":{"clientId":{"type":"string","description":"The ID of the client.\n"},"clientSecret":{"type":"string","description":"The AccessKey secret of the client.\n","secret":true}},"type":"object"},"alicloud:eventbridge/ConnectionAuthParametersOauthParametersOauthHttpParameters:ConnectionAuthParametersOauthParametersOauthHttpParameters":{"properties":{"bodyParameters":{"type":"array","items":{"$ref":"#/types/alicloud:eventbridge/ConnectionAuthParametersOauthParametersOauthHttpParametersBodyParameter:ConnectionAuthParametersOauthParametersOauthHttpParametersBodyParameter"},"description":"The parameters that are configured for the request body. See \u003cspan pulumi-lang-nodejs=\"`bodyParameters`\" pulumi-lang-dotnet=\"`BodyParameters`\" pulumi-lang-go=\"`bodyParameters`\" pulumi-lang-python=\"`body_parameters`\" pulumi-lang-yaml=\"`bodyParameters`\" pulumi-lang-java=\"`bodyParameters`\"\u003e`body_parameters`\u003c/span\u003e below.\n"},"headerParameters":{"type":"array","items":{"$ref":"#/types/alicloud:eventbridge/ConnectionAuthParametersOauthParametersOauthHttpParametersHeaderParameter:ConnectionAuthParametersOauthParametersOauthHttpParametersHeaderParameter"},"description":"The parameters that are configured for the request header. See \u003cspan pulumi-lang-nodejs=\"`headerParameters`\" pulumi-lang-dotnet=\"`HeaderParameters`\" pulumi-lang-go=\"`headerParameters`\" pulumi-lang-python=\"`header_parameters`\" pulumi-lang-yaml=\"`headerParameters`\" pulumi-lang-java=\"`headerParameters`\"\u003e`header_parameters`\u003c/span\u003e below.\n"},"queryStringParameters":{"type":"array","items":{"$ref":"#/types/alicloud:eventbridge/ConnectionAuthParametersOauthParametersOauthHttpParametersQueryStringParameter:ConnectionAuthParametersOauthParametersOauthHttpParametersQueryStringParameter"},"description":"The parameters that are configured for the request path. See \u003cspan pulumi-lang-nodejs=\"`queryStringParameters`\" pulumi-lang-dotnet=\"`QueryStringParameters`\" pulumi-lang-go=\"`queryStringParameters`\" pulumi-lang-python=\"`query_string_parameters`\" pulumi-lang-yaml=\"`queryStringParameters`\" pulumi-lang-java=\"`queryStringParameters`\"\u003e`query_string_parameters`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:eventbridge/ConnectionAuthParametersOauthParametersOauthHttpParametersBodyParameter:ConnectionAuthParametersOauthParametersOauthHttpParametersBodyParameter":{"properties":{"isValueSecret":{"type":"string","description":"Specifies whether to enable authentication.\n"},"key":{"type":"string","description":"The key of the request path.\n"},"value":{"type":"string","description":"The key of the request path.\n"}},"type":"object"},"alicloud:eventbridge/ConnectionAuthParametersOauthParametersOauthHttpParametersHeaderParameter:ConnectionAuthParametersOauthParametersOauthHttpParametersHeaderParameter":{"properties":{"isValueSecret":{"type":"string","description":"Specifies whether to enable authentication.\n"},"key":{"type":"string","description":"The key of the request path.\n"},"value":{"type":"string","description":"The key of the request path.\n"}},"type":"object"},"alicloud:eventbridge/ConnectionAuthParametersOauthParametersOauthHttpParametersQueryStringParameter:ConnectionAuthParametersOauthParametersOauthHttpParametersQueryStringParameter":{"properties":{"isValueSecret":{"type":"string","description":"Specifies whether to enable authentication.\n"},"key":{"type":"string","description":"The key of the request path.\n"},"value":{"type":"string","description":"The key of the request path.\n"}},"type":"object"},"alicloud:eventbridge/ConnectionNetworkParameters:ConnectionNetworkParameters":{"properties":{"networkType":{"type":"string","description":"The network type. Valid values: `PublicNetwork`, `PrivateNetwork`. **NOTE:** If you set \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e to `PrivateNetwork`, you must configure \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vswitcheId`\" pulumi-lang-dotnet=\"`VswitcheId`\" pulumi-lang-go=\"`vswitcheId`\" pulumi-lang-python=\"`vswitche_id`\" pulumi-lang-yaml=\"`vswitcheId`\" pulumi-lang-java=\"`vswitcheId`\"\u003e`vswitche_id`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitcheId":{"type":"string","description":"The ID of the VSwitch.\n"}},"type":"object","required":["networkType"]},"alicloud:eventbridge/EventSourceV2SourceHttpEventParameters:EventSourceV2SourceHttpEventParameters":{"properties":{"ips":{"type":"array","items":{"type":"string"},"description":"IP segment security configuration. This parameter must be set only when the SecurityConfig value is ip. You can enter an IP address segment or IP address.\n"},"methods":{"type":"array","items":{"type":"string"},"description":"The HTTP request method supported by the generated Webhook. Multiple choices are available, with the following options:\n- GET\n- POST\n- PUT\n- PATCH\n- DELETE\n- HEAD\n- OPTIONS\n- TRACE\n- CONNECT\n"},"publicWebHookUrls":{"type":"array","items":{"type":"string"},"description":"The public network request URL.\n"},"referers":{"type":"array","items":{"type":"string"},"description":"Security domain name configuration. This parameter must be set only when SecurityConfig is set to referer. You can fill in the domain name.\n"},"securityConfig":{"type":"string","description":"Select the type of security configuration. The optional range is as follows:\n- none: No configuration is required.\n- ip:IP segment.\n- referer: Security domain name.\n"},"type":{"type":"string","description":"The protocol type supported by the generated Webhook. The value description is as follows:\n- HTTP\n- HTTPS\n- HTTP\u0026HTTPS\n"},"vpcWebHookUrls":{"type":"array","items":{"type":"string"},"description":"The intranet request URL.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["publicWebHookUrls","vpcWebHookUrls"]}}},"alicloud:eventbridge/EventSourceV2SourceKafkaParameters:EventSourceV2SourceKafkaParameters":{"properties":{"consumerGroup":{"type":"string","description":"The Group ID of the consumer who subscribes to the Topic.\n"},"instanceId":{"type":"string","description":"The instance ID.\n"},"network":{"type":"string","description":"Network configuration: Default (Default network) and public network (self-built network).\n"},"offsetReset":{"type":"string","description":"Consumption sites.\n"},"regionId":{"type":"string","description":"The region ID.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n"},"topic":{"type":"string","description":"The topic name.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n"},"vswitchIds":{"type":"string","description":"The vSwitch ID.\n"}},"type":"object"},"alicloud:eventbridge/EventSourceV2SourceMnsParameters:EventSourceV2SourceMnsParameters":{"properties":{"isBase64Decode":{"type":"boolean","description":"Whether to enable Base64 decoding. By default, it is selected, that is, Base64 decoding is enabled.\n"},"queueName":{"type":"string","description":"The name of the Queue of the lightweight message Queue (formerly MNS).\n"},"regionId":{"type":"string","description":"The region of the lightweight message queue (formerly MNS).\n"}},"type":"object"},"alicloud:eventbridge/EventSourceV2SourceOssEventParameters:EventSourceV2SourceOssEventParameters":{"properties":{"eventTypes":{"type":"array","items":{"type":"string"},"description":"OSS event type list.\n"},"matchRules":{"type":"array","items":{"type":"array","items":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceOssEventParametersMatchRule:EventSourceV2SourceOssEventParametersMatchRule"}},"description":"Matching rules. The event source will deliver OSS events that meet the matching requirements to the bus.\n"},"stsRoleArn":{"type":"string","description":"The ARN of the role. EventBridge will use this role to create MNS resources and deliver events to the corresponding bus.\n"}},"type":"object"},"alicloud:eventbridge/EventSourceV2SourceOssEventParametersMatchRule:EventSourceV2SourceOssEventParametersMatchRule":{"properties":{"matchState":{"type":"string"},"name":{"type":"string"},"prefix":{"type":"string"},"suffix":{"type":"string"}},"type":"object"},"alicloud:eventbridge/EventSourceV2SourceRabbitMqParameters:EventSourceV2SourceRabbitMqParameters":{"properties":{"instanceId":{"type":"string","description":"The ID of the RabbitMQ instance. For more information, see Usage Restrictions (~~ 163289 ~~).\n"},"queueName":{"type":"string","description":"The name of the Queue of the RabbitMQ instance. For more information, see Usage Restrictions (~~ 163289 ~~).\n"},"regionId":{"type":"string","description":"The region of the RabbitMQ instance.\n"},"virtualHostName":{"type":"string","description":"The name of the Vhost of the RabbitMQ instance. For more information, see Usage Restrictions (~~ 163289 ~~).\n"}},"type":"object"},"alicloud:eventbridge/EventSourceV2SourceRocketmqParameters:EventSourceV2SourceRocketmqParameters":{"properties":{"authType":{"type":"string","description":"ACL or not.\n"},"groupId":{"type":"string","description":"The Group ID of the RocketMQ version of message queue.\n"},"instanceEndpoint":{"type":"string","description":"Instance access point.\n"},"instanceId":{"type":"string","description":"The ID of the RocketMQ instance. For more information, see Usage Restrictions (~~ 163289 ~~).\n"},"instanceNetwork":{"type":"string","description":"Instance network.\n"},"instancePassword":{"type":"string","description":"The instance password.\n"},"instanceSecurityGroupId":{"type":"string","description":"The ID of the security group.\n"},"instanceType":{"type":"string","description":"The instance type. Only CLOUD_4 (4.0 instance on the cloud), CLOUD_5 (5.0 instance on the cloud), and SELF_BUILT (user-created MQ).\n"},"instanceUsername":{"type":"string","description":"The instance user name.\n"},"instanceVpcId":{"type":"string","description":"The ID of the VPC.\n"},"instanceVswitchIds":{"type":"string","description":"The vSwitch ID.\n"},"offset":{"type":"string","description":"The consumption point of the message. The value description is as follows:\n- `CONSUME_FROM_LAST_OFFSET`: starts consumption from the latest point.\n- `CONSUME_FROM_FIRST_OFFSET`: starts consumption from the earliest point.\n- `CONSUME_FROM_TIMESTAMP`: starts consumption from the specified time point.\nDefault value: `CONSUME_FROM_LAST_OFFSET`.\n"},"regionId":{"type":"string","description":"The region of the RocketMQ instance.\n"},"tag":{"type":"string","description":"The filter label of the message.\n"},"timestamp":{"type":"number","description":"The timestamp. This parameter is valid only when the value of the Offset parameter is CONSUME_FROM_TIMESTAMP.\n"},"topic":{"type":"string","description":"The Topic name of the RocketMQ instance. For more information, see Usage Restrictions (~~ 163289 ~~).\n"}},"type":"object"},"alicloud:eventbridge/EventSourceV2SourceScheduledEventParameters:EventSourceV2SourceScheduledEventParameters":{"properties":{"schedule":{"type":"string","description":"Cron expression\n"},"timeZone":{"type":"string","description":"The Cron execution time zone.\n"},"userData":{"type":"string","description":"JSON string\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["userData"]}}},"alicloud:eventbridge/EventSourceV2SourceSlsParameters:EventSourceV2SourceSlsParameters":{"properties":{"consumePosition":{"type":"string","description":"Start consumption point, which can be the earliest or latest point corresponding to begin and end respectively, or start consumption from a specified time, measured in seconds.\n","willReplaceOnChanges":true},"logStore":{"type":"string","description":"The logstore of log service SLS.\n","willReplaceOnChanges":true},"project":{"type":"string","description":"The log project of log service SLS.\n","willReplaceOnChanges":true},"roleName":{"type":"string","description":"When authorizing event bus EventBridge to use this role to read SLS log content, the following conditions must be met: when creating the role used by the service in the RAM console, you need to select Alibaba Cloud Service and event bus for trusted service \". For the permissions policy of this role, see custom event source log service SLS.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:eventbridge/RuleTarget:RuleTarget":{"properties":{"deadLetterQueue":{"$ref":"#/types/alicloud:eventbridge/RuleTargetDeadLetterQueue:RuleTargetDeadLetterQueue","description":"The dead letter queue. Events that are not processed or exceed the number of retries will be written to the dead letter. Support message service MNS and message queue RocketMQ. See \u003cspan pulumi-lang-nodejs=\"`deadLetterQueue`\" pulumi-lang-dotnet=\"`DeadLetterQueue`\" pulumi-lang-go=\"`deadLetterQueue`\" pulumi-lang-python=\"`dead_letter_queue`\" pulumi-lang-yaml=\"`deadLetterQueue`\" pulumi-lang-java=\"`deadLetterQueue`\"\u003e`dead_letter_queue`\u003c/span\u003e below.\n"},"endpoint":{"type":"string","description":"The endpoint of the event target.\n"},"paramLists":{"type":"array","items":{"$ref":"#/types/alicloud:eventbridge/RuleTargetParamList:RuleTargetParamList"},"description":"The parameters that are configured for the event target. See \u003cspan pulumi-lang-nodejs=\"`paramList`\" pulumi-lang-dotnet=\"`ParamList`\" pulumi-lang-go=\"`paramList`\" pulumi-lang-python=\"`param_list`\" pulumi-lang-yaml=\"`paramList`\" pulumi-lang-java=\"`paramList`\"\u003e`param_list`\u003c/span\u003e below.\n"},"pushRetryStrategy":{"type":"string","description":"The retry policy that is used to push the event. Valid values:\n- `BACKOFF_RETRY`: Backoff retry. The request can be retried up to three times. The interval between two consecutive retries is a random value between 10 and 20 seconds.\n- `EXPONENTIAL_DECAY_RETRY`: Exponential decay retry. The request can be retried up to 176 times. The interval between two consecutive retries exponentially increases to 512 seconds, and the total retry time is one day. The specific retry intervals are 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 512, ..., and 512 seconds, including a maximum of one hundred and sixty-seven 512 seconds in total.\n"},"targetId":{"type":"string","description":"The ID of the custom event target.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the event target. Valid values: `acs.alikafka`, `acs.api.destination`, `acs.arms.loki`, `acs.datahub`, `acs.dingtalk`, `acs.eventbridge`, `acs.eventbridge.olap`, `acs.eventbus.SLSCloudLens`, `acs.fc.function`, `acs.fnf`, `acs.k8s`, `acs.mail`, `acs.mns.queue`, `acs.mns.topic`, `acs.openapi`, `acs.rabbitmq`, `acs.rds.mysql`, `acs.rocketmq`, `acs.sae`, `acs.sls`, `acs.sms`, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`mysql`\" pulumi-lang-dotnet=\"`Mysql`\" pulumi-lang-go=\"`mysql`\" pulumi-lang-python=\"`mysql`\" pulumi-lang-yaml=\"`mysql`\" pulumi-lang-java=\"`mysql`\"\u003e`mysql`\u003c/span\u003e.\n**NOTE:** From version 1.208.1, \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e can be set to `acs.alikafka`, `acs.api.destination`, `acs.arms.loki`, `acs.datahub`, `acs.eventbridge.olap`, `acs.eventbus.SLSCloudLens`, `acs.fnf`, `acs.k8s`, `acs.openapi`, `acs.rds.mysql`, `acs.sae`, `acs.sls`, \u003cspan pulumi-lang-nodejs=\"`mysql`\" pulumi-lang-dotnet=\"`Mysql`\" pulumi-lang-go=\"`mysql`\" pulumi-lang-python=\"`mysql`\" pulumi-lang-yaml=\"`mysql`\" pulumi-lang-java=\"`mysql`\"\u003e`mysql`\u003c/span\u003e.\n"}},"type":"object","required":["endpoint","paramLists","targetId","type"],"language":{"nodejs":{"requiredOutputs":["endpoint","paramLists","pushRetryStrategy","targetId","type"]}}},"alicloud:eventbridge/RuleTargetDeadLetterQueue:RuleTargetDeadLetterQueue":{"properties":{"arn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the dead letter queue. Events that are not processed or whose maximum retries are exceeded are written to the dead-letter queue. The ARN feature is supported by the following queue types: MNS and Message Queue for Apache RocketMQ.\n"}},"type":"object"},"alicloud:eventbridge/RuleTargetParamList:RuleTargetParamList":{"properties":{"form":{"type":"string","description":"The format of the event target parameter. Valid values: `ORIGINAL`, `TEMPLATE`, `JSONPATH`, `CONSTANT`.\n"},"resourceKey":{"type":"string","description":"The resource parameter of the event target. For more information, see [How to use it](https://www.alibabacloud.com/help/en/eventbridge/latest/event-target-parameters)\n"},"template":{"type":"string","description":"The template of the event target parameter.\n"},"value":{"type":"string","description":"The value of the event target parameter.\n\n\u003e **NOTE:** There exists a potential diff error that the backend service will return a default param as following:\n\n```\nparam_list {\nresource_key = \"IsBase64Encode\"\nform         = \"CONSTANT\"\nvalue        = \"false\"\ntemplate     = \"\"\n}\n```\n\nIn order to fix the diff, from version 1.160.0, this resource has removed the param which \u003cspan pulumi-lang-nodejs=\"`resourceKey \" pulumi-lang-dotnet=\"`ResourceKey \" pulumi-lang-go=\"`resourceKey \" pulumi-lang-python=\"`resource_key \" pulumi-lang-yaml=\"`resourceKey \" pulumi-lang-java=\"`resourceKey \"\u003e`resource_key \u003c/span\u003e= \"IsBase64Encode\"` and `value = \"false\"`.\nIf you want to set \u003cspan pulumi-lang-nodejs=\"`resourceKey \" pulumi-lang-dotnet=\"`ResourceKey \" pulumi-lang-go=\"`resourceKey \" pulumi-lang-python=\"`resource_key \" pulumi-lang-yaml=\"`resourceKey \" pulumi-lang-java=\"`resourceKey \"\u003e`resource_key \u003c/span\u003e= \"IsBase64Encode\"`, please avoid to set `value = \"false\"`.\n"}},"type":"object","required":["form","resourceKey"]},"alicloud:eventbridge/getEventBusesBus:getEventBusesBus":{"properties":{"createTime":{"type":"string","description":"The time of this bus was created.\n"},"description":{"type":"string","description":"The description of event bus.\n"},"eventBusName":{"type":"string","description":"The name of event bus.\n"},"id":{"type":"string","description":"The ID of the Event Bus. Its value is same as Queue Name.\n"}},"type":"object","required":["createTime","description","eventBusName","id"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eventbridge/getEventSourcesSource:getEventSourcesSource":{"properties":{"description":{"type":"string","description":"The detail describe of event source.\n"},"eventSourceName":{"type":"string","description":"The code name of event source.\n"},"externalSourceConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"The config of external data source.\n"},"externalSourceType":{"type":"string","description":"The type of external data source.\n"},"id":{"type":"string","description":"The ID of the Event Source.\n"},"linkedExternalSource":{"type":"boolean","description":"Whether to connect to an external data source.\n"},"type":{"type":"string"}},"type":"object","required":["description","eventSourceName","externalSourceConfig","externalSourceType","id","linkedExternalSource","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eventbridge/getRulesRule:getRulesRule":{"properties":{"description":{"type":"string","description":"The description of rule.\n"},"eventBusName":{"type":"string","description":"The name of event bus.\n"},"filterPattern":{"type":"string","description":"The pattern to match interested events.\n"},"id":{"type":"string","description":"The ID of the Rule.\n"},"ruleName":{"type":"string","description":"The name of rule.\n"},"status":{"type":"string","description":"Rule status, either Enable or Disable.\n"},"targets":{"type":"array","items":{"$ref":"#/types/alicloud:eventbridge/getRulesRuleTarget:getRulesRuleTarget"},"description":"The target for rule.\n"}},"type":"object","required":["description","eventBusName","filterPattern","id","ruleName","status","targets"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:eventbridge/getRulesRuleTarget:getRulesRuleTarget":{"properties":{"endpoint":{"type":"string","description":"The endpoint.\n"},"targetId":{"type":"string","description":"The id of target.\n"},"type":{"type":"string","description":"The type of target.\n"}},"type":"object","required":["endpoint","targetId","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:expressconnect/RouterExpressConnectRouterRegion:RouterExpressConnectRouterRegion":{"properties":{"regionId":{"type":"string","description":"Representative region ID.\n"},"transitMode":{"type":"string","description":"Represents the forwarding mode of the current region.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["transitMode"]}}},"alicloud:expressconnect/getAccessPointsPoint:getAccessPointsPoint":{"properties":{"accessPointFeatureModels":{"type":"array","items":{"$ref":"#/types/alicloud:expressconnect/getAccessPointsPointAccessPointFeatureModel:getAccessPointsPointAccessPointFeatureModel"},"description":"Query to the Access Point Feature Model.\n"},"accessPointId":{"type":"string","description":"The Access Point ID.\n"},"accessPointName":{"type":"string","description":"Access Point Name.\n"},"attachedRegionNo":{"type":"string","description":"The Access Point Is Located an ID.\n"},"description":{"type":"string","description":"The Access Point Description.\n"},"hostOperator":{"type":"string","description":"The Access Point Belongs to the Operator.\n"},"id":{"type":"string","description":"The ID of the Access Point.\n"},"location":{"type":"string","description":"The Location of the Access Point.\n"},"status":{"type":"string","description":"The Physical Connection to Which the Access Point State.\n"},"type":{"type":"string","description":"The Physical Connection to Which the Network Type.\n"}},"type":"object","required":["accessPointFeatureModels","accessPointId","accessPointName","attachedRegionNo","description","hostOperator","id","location","status","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:expressconnect/getAccessPointsPointAccessPointFeatureModel:getAccessPointsPointAccessPointFeatureModel":{"properties":{"featureKey":{"type":"string","description":"The Access Point Properties.\n"},"featureValue":{"type":"string","description":"The Access Point Characteristic Value.\n"}},"type":"object","required":["featureKey","featureValue"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:expressconnect/getGrantRuleToCensCen:getGrantRuleToCensCen":{"properties":{"cenId":{"type":"string","description":"The ID of the authorized CEN instance.\n"},"cenOwnerId":{"type":"integer","description":"The user ID (UID) of the Alibaba Cloud account to which the CEN instance belongs.\n"},"createTime":{"type":"string","description":"The time when the instance was created.\n"},"id":{"type":"string","description":"The ID of the Grant Rule To Cen. It formats as `\u003ccen_id\u003e:\u003ccen_owner_id\u003e:\u003cinstance_id\u003e`.\n"}},"type":"object","required":["cenId","cenOwnerId","createTime","id"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:expressconnect/getPhysicalConnectionsConnection:getPhysicalConnectionsConnection":{"properties":{"accessPointId":{"type":"string","description":"The Physical Leased Line Access Point ID.\n"},"adLocation":{"type":"string","description":"To Connect a Device Physical Location.\n"},"bandwidth":{"type":"string","description":"On the Bandwidth of the ECC Service and Physical Connection.\n"},"businessStatus":{"type":"string","description":"The Physical Connection to Which the Payment Status: Normal, financiallocked, securitylocked.\n"},"circuitCode":{"type":"string","description":"Operators for Physical Connection Circuit Provided Coding.\n"},"createTime":{"type":"string","description":"The Representative of the Creation Time Resources Attribute Field.\n"},"description":{"type":"string","description":"The Physical Connection to Which the Description.\n"},"enabledTime":{"type":"string","description":"The Physical Connection to Which the Activation Time.\n"},"endTime":{"type":"string","description":"The Expiration Time.\n"},"hasReservationData":{"type":"string","description":"HasReservationData.\n"},"id":{"type":"string","description":"The ID of the Physical Connection.\n"},"lineOperator":{"type":"string","description":"Provides Access to the Physical Line Operator Value CT: China Telecom, CU: China Unicom, CM: china Mobile, CO: Other Chinese, Equinix:Equinix, Other: Other Overseas.\n"},"loaStatus":{"type":"string","description":"Loa State.\n"},"paymentType":{"type":"string","description":"on Behalf of the Pay-as-You-Type of Resource Attribute Field.\n"},"peerLocation":{"type":"string","description":"and an on-Premises Data Center Location.\n"},"physicalConnectionId":{"type":"string","description":"on Behalf of the Resource Level Id of the Resources Property Fields.\n"},"physicalConnectionName":{"type":"string","description":"on Behalf of the Resource Name of the Resources-Attribute Field.\n"},"portNumber":{"type":"string","description":"To Connect a Device Port: The Port Number of.\n"},"portType":{"type":"string","description":"The Physical Leased Line Access Port Type Value 100Base-T: Fast Electrical Ports, 1000Base-T (the Default): gigabit Electrical Ports, 1000Base-LX: Gigabit Singlemode Optical Ports (10Km), 10GBase-T: Gigabit Electrical Port, 10GBase-LR: Gigabit Singlemode Optical Ports (10Km).\n"},"redundantPhysicalConnectionId":{"type":"string","description":"Redundant Physical Connection to Which the ID.\n"},"reservationActiveTime":{"type":"string","description":"The Renewal of the Entry into Force of the Time.\n"},"reservationInternetChargeType":{"type":"string","description":"Renewal Type.\n"},"reservationOrderType":{"type":"string","description":"Renewal Order Type.\n"},"spec":{"type":"string","description":"The Physical Connection to Which the Specifications.\n"},"status":{"type":"string","description":"Resources on Behalf of a State of the Resource Attribute Field.\n"},"type":{"type":"string","description":"Physical Private Line of Type. Default Value: VPC.\n"}},"type":"object","required":["accessPointId","adLocation","bandwidth","businessStatus","circuitCode","createTime","description","enabledTime","endTime","hasReservationData","id","lineOperator","loaStatus","paymentType","peerLocation","physicalConnectionId","physicalConnectionName","portNumber","portType","redundantPhysicalConnectionId","reservationActiveTime","reservationInternetChargeType","reservationOrderType","spec","status","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:expressconnect/getRouterInterfacesFilter:getRouterInterfacesFilter":{"properties":{"key":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}},"type":"object"},"alicloud:expressconnect/getRouterInterfacesInterface:getRouterInterfacesInterface":{"properties":{"accessPointId":{"type":"string","description":"The access point ID to which the VBR belongs.\n"},"bandwidth":{"type":"integer","description":"The bandwidth of the resource.\n"},"businessStatus":{"type":"string","description":"The businessStatus of the resource. Valid Values: `Normal`, `FinancialLocked`, `SecurityLocked`.\n"},"connectedTime":{"type":"string","description":"The connected time of the resource.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"crossBorder":{"type":"boolean","description":"The cross border of the resource.\n"},"description":{"type":"string","description":"The description of the router interface.\n"},"endTime":{"type":"string","description":"The end time of the resource.\n"},"hasReservationData":{"type":"string","description":"The has reservation data of the resource.\n"},"hcRate":{"type":"integer","description":"The hc rate of the resource.\n"},"hcThreshold":{"type":"string","description":"The hc threshold of the resource.\n"},"healthCheckSourceIp":{"type":"string","description":"The health check source IP address, must be an unused IP within the local VPC.\n"},"healthCheckTargetIp":{"type":"string","description":"The IP address for health screening purposes.\n"},"id":{"type":"string"},"oppositeAccessPointId":{"type":"string","description":"The Access point ID to which the other end belongs.\n"},"oppositeBandwidth":{"type":"integer","description":"The opposite bandwidth of the router on the other side.\n"},"oppositeInterfaceBusinessStatus":{"type":"string","description":"The opposite interface business status of the router on the other side. Valid Values: `Normal`, `FinancialLocked`, `SecurityLocked`.\n"},"oppositeInterfaceId":{"type":"string","description":"The Interface ID of the router at the other end.\n"},"oppositeInterfaceOwnerId":{"type":"string","description":"The AliCloud account ID of the owner of the router interface on the other end.\n"},"oppositeInterfaceSpec":{"type":"string","description":"The opposite interface spec of the router on the other side. Valid Values: `Mini.2`, `Mini.5`, `Mini.5`, `Small.2`, `Small.5`, `Middle.1`, `Middle.2`, `Middle.5`, `Large.1`, `Large.2`, `Large.5`, `XLarge.1`, `Negative`.\n"},"oppositeInterfaceStatus":{"type":"string","description":"The opposite interface status of the router on the other side. Valid Values: `Idle`, `AcceptingConnecting`, `Connecting`, `Activating`, `Active`, `Modifying`, `Deactivating`, `Inactive`, `Deleting`.\n"},"oppositeRegionId":{"type":"string","description":"The geographical ID of the location of the receiving end of the connection.\n"},"oppositeRouterId":{"type":"string","description":"The id of the router at the other end.\n"},"oppositeRouterType":{"type":"string","description":"The opposite router type of the router on the other side. Valid Values: `VRouter`, `VBR`.\n"},"oppositeVpcInstanceId":{"type":"string","description":"The opposite vpc instance id of the router on the other side.\n"},"paymentType":{"type":"string","description":"The payment methods for router interfaces. Valid Values: `PrePaid`, `PostPaid`.\n"},"reservationActiveTime":{"type":"string","description":"The reservation active time of the resource.\n"},"reservationBandwidth":{"type":"string","description":"The reservation bandwidth of the resource.\n"},"reservationInternetChargeType":{"type":"string","description":"The reservation internet charge type of the resource.\n"},"reservationOrderType":{"type":"string","description":"The reservation order type of the resource.\n"},"role":{"type":"string","description":"The role of the router interface. Valid Values: `InitiatingSide`, `AcceptingSide`.\n"},"routerId":{"type":"string","description":"The router id associated with the router interface.\n"},"routerInterfaceId":{"type":"string","description":"The first ID of the resource.\n"},"routerInterfaceName":{"type":"string","description":"The name of the resource.\n"},"routerType":{"type":"string","description":"The type of router associated with the router interface. Valid Values: `VRouter`, `VBR`.\n"},"spec":{"type":"string","description":"The specification of the router interface. Valid Values: `Mini.2`, `Mini.5`, `Mini.5`, `Small.2`, `Small.5`, `Middle.1`, `Middle.2`, `Middle.5`, `Large.1`, `Large.2`, `Large.5`, `XLarge.1`, `Negative`.\n"},"status":{"type":"string","description":"The status of the resource. Valid Values: `Idle`, `AcceptingConnecting`, `Connecting`, `Activating`, `Active`, `Modifying`, `Deactivating`, `Inactive`, `Deleting`.\n"},"vpcInstanceId":{"type":"string","description":"The vpc instance id of the resource.\n"}},"type":"object","required":["accessPointId","bandwidth","businessStatus","connectedTime","createTime","crossBorder","description","endTime","hasReservationData","hcRate","hcThreshold","healthCheckSourceIp","healthCheckTargetIp","id","oppositeAccessPointId","oppositeBandwidth","oppositeInterfaceBusinessStatus","oppositeInterfaceId","oppositeInterfaceOwnerId","oppositeInterfaceSpec","oppositeInterfaceStatus","oppositeRegionId","oppositeRouterId","oppositeRouterType","oppositeVpcInstanceId","paymentType","reservationActiveTime","reservationBandwidth","reservationInternetChargeType","reservationOrderType","role","routerId","routerInterfaceId","routerInterfaceName","routerType","spec","status","vpcInstanceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:expressconnect/getVbrPconnAssociationsAssociation:getVbrPconnAssociationsAssociation":{"properties":{"circuitCode":{"type":"string","description":"The circuit code provided by the operator for the physical connection.\n"},"enableIpv6":{"type":"boolean","description":"Whether IPv6 is enabled.\n"},"id":{"type":"string","description":"The ID of the Vbr Pconn Association.\n"},"localGatewayIp":{"type":"string","description":"The Alibaba cloud IP address of the VBR instance.\n"},"localIpv6GatewayIp":{"type":"string","description":"The IPv6 address on the Alibaba Cloud side of the VBR instance.\n"},"peerGatewayIp":{"type":"string","description":"The client IP address of the VBR instance.\n"},"peerIpv6GatewayIp":{"type":"string","description":"The IPv6 address of the client side of the VBR instance.\n"},"peeringIpv6SubnetMask":{"type":"string","description":"The subnet mask of the Alibaba Cloud side and the client side of the VBR instance.Two IPv6 addresses must be in the same subnet.\n"},"peeringSubnetMask":{"type":"string","description":"The subnet mask of the Alibaba Cloud side and the client side of the VBR instance.The two IP addresses must be in the same subnet.\n"},"physicalConnectionId":{"type":"string","description":"The ID of the leased line instance.\n"},"status":{"type":"string","description":"The status of the resource\n"},"vbrId":{"type":"string","description":"The ID of the VBR instance.\n"},"vlanId":{"type":"integer","description":"VLAN ID of the VBR.\n"}},"type":"object","required":["circuitCode","enableIpv6","id","localGatewayIp","localIpv6GatewayIp","peerGatewayIp","peerIpv6GatewayIp","peeringIpv6SubnetMask","peeringSubnetMask","physicalConnectionId","status","vbrId","vlanId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:expressconnect/getVirtualBorderRoutersFilter:getVirtualBorderRoutersFilter":{"properties":{"key":{"type":"string","description":"The key of the field to filter by, as defined by\n[Alibaba Cloud API](https://www.alibabacloud.com/help/en/doc-detail/124791.htm).\n"},"values":{"type":"array","items":{"type":"string"},"description":"Set of values that are accepted for the given field.\n"}},"type":"object"},"alicloud:expressconnect/getVirtualBorderRoutersRouter:getVirtualBorderRoutersRouter":{"properties":{"accessPointId":{"type":"string","description":"The physical leased line access point ID.\n"},"activationTime":{"type":"string","description":"The first activation time of VBR.\n"},"circuitCode":{"type":"string","description":"Operators for physical connection circuit provided coding.\n"},"cloudBoxInstanceId":{"type":"string","description":"Box Instance Id.\n"},"createTime":{"type":"string","description":"The representative of the creation time resources attribute field.\n"},"description":{"type":"string","description":"The description of VBR. Length is from 2 to 256 characters, must start with a letter or the Chinese at the beginning, but not at the http:// Or https:// at the beginning.\n"},"detectMultiplier":{"type":"integer","description":"Detection time multiplier that recipient allows the sender to send a message of the maximum allowable connections for the number of packets, used to detect whether the link normal. Value: 3~10.\n"},"eccId":{"type":"string","description":"High Speed Migration Service Instance Id.\n"},"enableIpv6":{"type":"boolean","description":"Whether to Enable IPv6.\n"},"id":{"type":"string","description":"The ID of the Virtual Border Router.\n"},"localGatewayIp":{"type":"string","description":"Alibaba Cloud-Connected IPv4 address.\n"},"localIpv6GatewayIp":{"type":"string","description":"Alibaba Cloud-Connected IPv6 Address.\n"},"minRxInterval":{"type":"integer","description":"Configure BFD packet reception interval of values include: 200~1000, unit: ms.\n"},"minTxInterval":{"type":"integer","description":"Configure BFD packet transmission interval maximum value: 200~1000, unit: ms.\n"},"paymentVbrExpireTime":{"type":"string","description":"The Billing of the Extended Time.\n"},"peerGatewayIp":{"type":"string","description":"The Client-Side Interconnection IPv4 Address.\n"},"peerIpv6GatewayIp":{"type":"string","description":"The Client-Side Interconnection IPv6 Address.\n"},"peeringIpv6SubnetMask":{"type":"string","description":"Alibaba Cloud-Connected IPv6 with Client-Side Interconnection IPv6 of Subnet Mask.\n"},"peeringSubnetMask":{"type":"string","description":"Alibaba Cloud-Connected IPv4 and Client-Side Interconnection IPv4 of Subnet Mask.\n"},"physicalConnectionBusinessStatus":{"type":"string","description":"Physical Private Line Service Status Value Normal: Normal, financiallocked: If You Lock.\n"},"physicalConnectionId":{"type":"string","description":"The ID of the Physical Connection to Which the ID.\n"},"physicalConnectionOwnerUid":{"type":"string","description":"Physical Private Line Where the Account ID.\n"},"physicalConnectionStatus":{"type":"string","description":"Physical Private Line State.\n"},"recoveryTime":{"type":"string","description":"The Last from a Terminated State to the Active State of the Time.\n"},"routeTableId":{"type":"string","description":"Route Table ID.\n"},"status":{"type":"string","description":"The VBR state.\n"},"terminationTime":{"type":"string","description":"The Most Recent Was Aborted by the Time.\n"},"type":{"type":"string","description":"VBR Type.\n"},"virtualBorderRouterId":{"type":"string","description":"The VBR ID.\n"},"virtualBorderRouterName":{"type":"string","description":"The name of VBR. Length is from 2 to 128 characters, must start with a letter or the Chinese at the beginning can contain numbers, the underscore character (_) and dash (-). But do not start with http:// or https:// at the beginning.\n"},"vlanId":{"type":"integer","description":"The VLAN ID of the VBR. Value range: 0~2999.\n"},"vlanInterfaceId":{"type":"string","description":"The ID of the Router Interface.\n"}},"type":"object","required":["accessPointId","activationTime","circuitCode","cloudBoxInstanceId","createTime","description","detectMultiplier","eccId","enableIpv6","id","localGatewayIp","localIpv6GatewayIp","minRxInterval","minTxInterval","paymentVbrExpireTime","peerGatewayIp","peerIpv6GatewayIp","peeringIpv6SubnetMask","peeringSubnetMask","physicalConnectionBusinessStatus","physicalConnectionId","physicalConnectionOwnerUid","physicalConnectionStatus","recoveryTime","routeTableId","status","terminationTime","type","virtualBorderRouterId","virtualBorderRouterName","vlanId","vlanInterfaceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:expressconnect/getVirtualPhysicalConnectionsConnection:getVirtualPhysicalConnectionsConnection":{"properties":{"accessPointId":{"type":"string","description":"The ID of the access point of the physical connection.\n"},"adLocation":{"type":"string","description":"The physical location where the physical connection access device is located.\n"},"bandwidth":{"type":"string","description":"The bandwidth of the physical connection. Unit: Mbps.\n"},"businessStatus":{"type":"string","description":"The commercial status of the physical line. Value:\n- **Normal**: activated.\n- **Financialized**: Arrears locked.\n- **SecurityLocked**: locked for security reasons.\n"},"circuitCode":{"type":"string","description":"The circuit code provided by the operator for the physical connection.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"The description of the physical connection.\n"},"enabledTime":{"type":"string","description":"The opening time of the physical connection.\n"},"endTime":{"type":"string","description":"The expiration time of the shared line.Time is expressed according to ISO8601 standard and UTC time is used. The format is: YYYY-MM-DDThh:mm:ssZ.\n"},"expectSpec":{"type":"string","description":"The estimated bandwidth value of the shared line. The expected bandwidth value will not take effect until the payment is completed.Unit: **M** indicates Mbps,**G** indicates Gbps.\n"},"id":{"type":"string","description":"The ID of the Virtual Physical Connection.\n"},"lineOperator":{"type":"string","description":"Operators that provide access to physical lines. Value:-**CT**: China Telecom.-**CU**: China Unicom.-**CM**: China Mobile.-**CO**: China Other.-**Equinix**:Equinix.-**Other**: Other abroad.\n"},"loaStatus":{"type":"string","description":"The state of LOA. Value:-**Applying**:LOA application.-**Accept**:LOA application passed.-**Available**:LOA is Available.-**Rejected**:LOA application Rejected.-**Completing**: The dedicated line is under construction.-**Complete**: The construction of the dedicated line is completed.-**Deleted**:LOA has been Deleted.\n"},"orderMode":{"type":"string","description":"The payment method of shared dedicated line. Value:-**PayByPhysicalConnectionOwner**: indicates that the owner of the physical line associated with the shared line pays.-**PayByVirtualPhysicalConnectionOwner**: indicates that the owner of the shared line pays.\n"},"parentPhysicalConnectionAliUid":{"type":"string","description":"The ID of the Alibaba Cloud account (primary account) to which the physical connection belongs.\n"},"parentPhysicalConnectionId":{"type":"string","description":"The ID of the instance of the physical connection.\n"},"peerLocation":{"type":"string","description":"The geographic location of the local data center.\n"},"portNumber":{"type":"string","description":"The port number of the physical connection device.\n"},"portType":{"type":"string","description":"Physical connection port type. Value:-**100Base-T**: 100 megabytes port.-**1000Base-T**: Gigabit port.-**1000Base-LX**: Gigabit single mode optical port (10km).-**10GBase-T**: 10 Gigabit port.-**10GBase-LR**: 10 Gigabit single mode optical port (10km).-**40GBase-LR**: 40 megabytes single-mode optical port.-**100GBase-LR**: 100,000 megabytes single-mode optical port.\n"},"redundantPhysicalConnectionId":{"type":"string","description":"The ID of the redundant physical connection.\n"},"resourceGroupId":{"type":"string","description":"The resource group id\n"},"spec":{"type":"string","description":"The bandwidth value of the shared line.Unit: **M** indicates Mbps,**G** indicates Gbps.\n"},"status":{"type":"string","description":"The status of the resource\n"},"virtualPhysicalConnectionId":{"type":"string","description":"The ID of the hosted connection\n"},"virtualPhysicalConnectionName":{"type":"string","description":"The name of the physical connection.\n"},"virtualPhysicalConnectionStatus":{"type":"string","description":"The business status of the shared line. Value:\n- **Confirmed**: The shared line has been Confirmed to receive.\n- **UnConfirmed**: The shared line has not been confirmed to be received.\n- **Deleted**: The shared line has been Deleted.\n"},"vlanId":{"type":"integer","description":"The VLAN ID of the shared leased line.\n"},"vpconnAliUid":{"type":"string","description":"The ID of the Alibaba Cloud account (primary account) of the owner of the shared line.\n"}},"type":"object","required":["accessPointId","adLocation","bandwidth","businessStatus","circuitCode","createTime","description","enabledTime","endTime","expectSpec","id","lineOperator","loaStatus","orderMode","parentPhysicalConnectionAliUid","parentPhysicalConnectionId","peerLocation","portNumber","portType","redundantPhysicalConnectionId","resourceGroupId","spec","status","virtualPhysicalConnectionId","virtualPhysicalConnectionName","virtualPhysicalConnectionStatus","vlanId","vpconnAliUid"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/AliasRoutingConfig:AliasRoutingConfig":{"properties":{"additionalVersionWeights":{"type":"object","additionalProperties":{"type":"number"},"description":"A map that defines the proportion of events that should be sent to different versions of a Function Compute service.\n"}},"type":"object"},"alicloud:fc/CustomDomainCertConfig:CustomDomainCertConfig":{"properties":{"certName":{"type":"string","description":"The name of the certificate, used to distinguish different certificates.\n"},"certificate":{"type":"string","description":"Certificate data of the HTTPS certificates, follow the 'pem' format.\n"},"privateKey":{"type":"string","description":"Private key of the HTTPS certificates, follow the 'pem' format.\n","secret":true}},"type":"object","required":["certName","certificate","privateKey"]},"alicloud:fc/CustomDomainRouteConfig:CustomDomainRouteConfig":{"properties":{"functionName":{"type":"string","description":"The name of the Function Compute function that requests are routed to.\n"},"methods":{"type":"array","items":{"type":"string"},"description":"The requests of the specified HTTP methos are routed from. Valid method: GET, POST, DELETE, HEAD, PUT and PATCH. For example, \"GET, HEAD\" methods indicate that only requests from GET and HEAD methods are routed.\n"},"path":{"type":"string","description":"The path that requests are routed from.\n"},"qualifier":{"type":"string","description":"The version or alias of the Function Compute service that requests are routed to. For example, qualifier v1 indicates that the requests are routed to the version 1 Function Compute service. For detail information about version and alias, please refer to the [developer guide](https://www.alibabacloud.com/help/doc-detail/96464.htm).\n"},"serviceName":{"type":"string","description":"The name of the Function Compute service that requests are routed to.\n"}},"type":"object","required":["functionName","path","serviceName"]},"alicloud:fc/FunctionAsyncInvokeConfigDestinationConfig:FunctionAsyncInvokeConfigDestinationConfig":{"properties":{"onFailure":{"$ref":"#/types/alicloud:fc/FunctionAsyncInvokeConfigDestinationConfigOnFailure:FunctionAsyncInvokeConfigDestinationConfigOnFailure","description":"Configuration block with destination configuration for failed asynchronous invocations. See \u003cspan pulumi-lang-nodejs=\"`onFailure`\" pulumi-lang-dotnet=\"`OnFailure`\" pulumi-lang-go=\"`onFailure`\" pulumi-lang-python=\"`on_failure`\" pulumi-lang-yaml=\"`onFailure`\" pulumi-lang-java=\"`onFailure`\"\u003e`on_failure`\u003c/span\u003e below.\n"},"onSuccess":{"$ref":"#/types/alicloud:fc/FunctionAsyncInvokeConfigDestinationConfigOnSuccess:FunctionAsyncInvokeConfigDestinationConfigOnSuccess","description":"Configuration block with destination configuration for successful asynchronous invocations. See \u003cspan pulumi-lang-nodejs=\"`onSuccess`\" pulumi-lang-dotnet=\"`OnSuccess`\" pulumi-lang-go=\"`onSuccess`\" pulumi-lang-python=\"`on_success`\" pulumi-lang-yaml=\"`onSuccess`\" pulumi-lang-java=\"`onSuccess`\"\u003e`on_success`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:fc/FunctionAsyncInvokeConfigDestinationConfigOnFailure:FunctionAsyncInvokeConfigDestinationConfigOnFailure":{"properties":{"destination":{"type":"string","description":"Alicloud Resource Name (ARN) of the destination resource. See the [Developer Guide](https://www.alibabacloud.com/help/doc-detail/181866.htm) for acceptable resource types and associated RAM permissions.\n"}},"type":"object","required":["destination"]},"alicloud:fc/FunctionAsyncInvokeConfigDestinationConfigOnSuccess:FunctionAsyncInvokeConfigDestinationConfigOnSuccess":{"properties":{"destination":{"type":"string","description":"Alicloud Resource Name (ARN) of the destination resource. See the [Developer Guide](https://www.alibabacloud.com/help/doc-detail/181866.htm) for acceptable resource types and associated RAM permissions.\n"}},"type":"object","required":["destination"]},"alicloud:fc/FunctionCustomContainerConfig:FunctionCustomContainerConfig":{"properties":{"args":{"type":"string","description":"The args field specifies the arguments passed to the command.\n"},"command":{"type":"string","description":"The entry point of the container, which specifies the actual command run by the container.\n"},"image":{"type":"string","description":"The container image address.\n"}},"type":"object","required":["image"]},"alicloud:fc/ServiceLogConfig:ServiceLogConfig":{"properties":{"enableInstanceMetrics":{"type":"boolean","description":"Enable instance level metrics.\n"},"enableRequestMetrics":{"type":"boolean","description":"Enable request level metrics.\n"},"logstore":{"type":"string","description":"The log store name of Alicloud Simple Log Service.\n"},"project":{"type":"string","description":"The project name of the Alicloud Simple Log Service.\n"}},"type":"object","required":["logstore","project"]},"alicloud:fc/ServiceNasConfig:ServiceNasConfig":{"properties":{"groupId":{"type":"integer","description":"The group id of your NAS file system.\n"},"mountPoints":{"type":"array","items":{"$ref":"#/types/alicloud:fc/ServiceNasConfigMountPoint:ServiceNasConfigMountPoint"},"description":"Config the NAS mount points.See \u003cspan pulumi-lang-nodejs=\"`mountPoints`\" pulumi-lang-dotnet=\"`MountPoints`\" pulumi-lang-go=\"`mountPoints`\" pulumi-lang-python=\"`mount_points`\" pulumi-lang-yaml=\"`mountPoints`\" pulumi-lang-java=\"`mountPoints`\"\u003e`mount_points`\u003c/span\u003e below.\n"},"userId":{"type":"integer","description":"The user id of your NAS file system.\n"}},"type":"object","required":["groupId","mountPoints","userId"]},"alicloud:fc/ServiceNasConfigMountPoint:ServiceNasConfigMountPoint":{"properties":{"mountDir":{"type":"string","description":"The local address where to mount your remote NAS directory.\n"},"serverAddr":{"type":"string","description":"The address of the remote NAS directory.\n"}},"type":"object","required":["mountDir","serverAddr"]},"alicloud:fc/ServiceTracingConfig:ServiceTracingConfig":{"properties":{"params":{"type":"object","additionalProperties":{"type":"string"},"description":"Tracing parameters, which type is map[string]string. When the protocol type is Jaeger, the key is \"endpoint\" and the value is your tracing intranet endpoint. For example endpoint: \u003chttp://tracing-analysis-dc-hz.aliyuncs.com/adapt_xxx/api/traces\u003e.\n"},"type":{"type":"string","description":"Tracing protocol type. Currently, only Jaeger is supported.\n"}},"type":"object","required":["params","type"]},"alicloud:fc/ServiceVpcConfig:ServiceVpcConfig":{"properties":{"securityGroupId":{"type":"string","description":"A security group ID associated with the Function Compute Service.\n"},"vpcId":{"type":"string","description":"A vpc ID associated with the Function Compute Service.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"A list of vswitch IDs associated with the Function Compute Service.\n"}},"type":"object","required":["securityGroupId","vswitchIds"],"language":{"nodejs":{"requiredOutputs":["securityGroupId","vpcId","vswitchIds"]}}},"alicloud:fc/V2FunctionCode:V2FunctionCode":{"properties":{"ossBucketName":{"type":"string","description":"The OSS bucket name of the function code package.\n"},"ossObjectName":{"type":"string","description":"The OSS object name of the function code package.\n"},"zipFile":{"type":"string","description":"Upload the base64 encoding of the code zip package directly in the request body.\n"}},"type":"object"},"alicloud:fc/V2FunctionCustomContainerConfig:V2FunctionCustomContainerConfig":{"properties":{"accelerationType":{"type":"string","description":"Image acceleration type. The value Default is to enable acceleration and None is to disable acceleration.\n"},"args":{"type":"string","description":"Container startup parameters.\n"},"command":{"type":"string","description":"Container start command, equivalent to Docker ENTRYPOINT.\n"},"image":{"type":"string","description":"Container Image address. Example value: registry-vpc.cn-hangzhou.aliyuncs.com/fc-demo/helloworld:v1beta1.\n"},"webServerMode":{"type":"boolean","description":"Whether the image is run in Web Server mode. The value of true needs to implement the Web Server in the container image to listen to the port and process the request. The value of false needs to actively exit the process after the container runs, and the ExitCode needs to be 0. Default true.\n"}},"type":"object"},"alicloud:fc/V2FunctionCustomDns:V2FunctionCustomDns":{"properties":{"dnsOptions":{"type":"array","items":{"$ref":"#/types/alicloud:fc/V2FunctionCustomDnsDnsOption:V2FunctionCustomDnsDnsOption"},"description":"DNS resolver configuration parameter list. See \u003cspan pulumi-lang-nodejs=\"`dnsOptions`\" pulumi-lang-dotnet=\"`DnsOptions`\" pulumi-lang-go=\"`dnsOptions`\" pulumi-lang-python=\"`dns_options`\" pulumi-lang-yaml=\"`dnsOptions`\" pulumi-lang-java=\"`dnsOptions`\"\u003e`dns_options`\u003c/span\u003e below.\n"},"nameServers":{"type":"array","items":{"type":"string"},"description":"List of IP addresses of DNS servers.\n"},"searches":{"type":"array","items":{"type":"string"},"description":"List of DNS search domains.\n"}},"type":"object"},"alicloud:fc/V2FunctionCustomDnsDnsOption:V2FunctionCustomDnsDnsOption":{"properties":{"name":{"type":"string","description":"DNS option name.\n"},"value":{"type":"string","description":"DNS option value.\n"}},"type":"object"},"alicloud:fc/V2FunctionCustomHealthCheckConfig:V2FunctionCustomHealthCheckConfig":{"properties":{"failureThreshold":{"type":"integer","description":"The threshold for the number of health check failures. The system considers the check failed after the health check fails.\n"},"httpGetUrl":{"type":"string","description":"Container custom health check URL address.\n"},"initialDelaySeconds":{"type":"integer","description":"Delay from container startup to initiation of health check.\n"},"periodSeconds":{"type":"integer","description":"Health check cycle.\n"},"successThreshold":{"type":"integer","description":"The threshold for the number of successful health checks. After the health check is reached, the system considers the check successful.\n"},"timeoutSeconds":{"type":"integer","description":"Health check timeout.\n"}},"type":"object"},"alicloud:fc/V2FunctionCustomRuntimeConfig:V2FunctionCustomRuntimeConfig":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"Parameters received by the start entry command.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"List of Custom entry commands started by Custom Runtime. When there are multiple commands in the list, they are spliced in sequence.\n"}},"type":"object"},"alicloud:fc/V2FunctionInstanceLifecycleConfig:V2FunctionInstanceLifecycleConfig":{"properties":{"preFreeze":{"$ref":"#/types/alicloud:fc/V2FunctionInstanceLifecycleConfigPreFreeze:V2FunctionInstanceLifecycleConfigPreFreeze","description":"PreFreeze function configuration. See \u003cspan pulumi-lang-nodejs=\"`preFreeze`\" pulumi-lang-dotnet=\"`PreFreeze`\" pulumi-lang-go=\"`preFreeze`\" pulumi-lang-python=\"`pre_freeze`\" pulumi-lang-yaml=\"`preFreeze`\" pulumi-lang-java=\"`preFreeze`\"\u003e`pre_freeze`\u003c/span\u003e below.\n"},"preStop":{"$ref":"#/types/alicloud:fc/V2FunctionInstanceLifecycleConfigPreStop:V2FunctionInstanceLifecycleConfigPreStop","description":"PreStop function configuration. See \u003cspan pulumi-lang-nodejs=\"`preStop`\" pulumi-lang-dotnet=\"`PreStop`\" pulumi-lang-go=\"`preStop`\" pulumi-lang-python=\"`pre_stop`\" pulumi-lang-yaml=\"`preStop`\" pulumi-lang-java=\"`preStop`\"\u003e`pre_stop`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:fc/V2FunctionInstanceLifecycleConfigPreFreeze:V2FunctionInstanceLifecycleConfigPreFreeze":{"properties":{"handler":{"type":"string","description":"entry point of function.\n"},"timeout":{"type":"integer","description":"max running time of function.\n"}},"type":"object"},"alicloud:fc/V2FunctionInstanceLifecycleConfigPreStop:V2FunctionInstanceLifecycleConfigPreStop":{"properties":{"handler":{"type":"string","description":"entry point of function.\n"},"timeout":{"type":"integer","description":"max running time of function.\n"}},"type":"object"},"alicloud:fc/V3AsyncInvokeConfigDestinationConfig:V3AsyncInvokeConfigDestinationConfig":{"properties":{"onFailure":{"$ref":"#/types/alicloud:fc/V3AsyncInvokeConfigDestinationConfigOnFailure:V3AsyncInvokeConfigDestinationConfigOnFailure","description":"Failed callback target structure See \u003cspan pulumi-lang-nodejs=\"`onFailure`\" pulumi-lang-dotnet=\"`OnFailure`\" pulumi-lang-go=\"`onFailure`\" pulumi-lang-python=\"`on_failure`\" pulumi-lang-yaml=\"`onFailure`\" pulumi-lang-java=\"`onFailure`\"\u003e`on_failure`\u003c/span\u003e below.\n"},"onSuccess":{"$ref":"#/types/alicloud:fc/V3AsyncInvokeConfigDestinationConfigOnSuccess:V3AsyncInvokeConfigDestinationConfigOnSuccess","description":"Successful callback target structure See \u003cspan pulumi-lang-nodejs=\"`onSuccess`\" pulumi-lang-dotnet=\"`OnSuccess`\" pulumi-lang-go=\"`onSuccess`\" pulumi-lang-python=\"`on_success`\" pulumi-lang-yaml=\"`onSuccess`\" pulumi-lang-java=\"`onSuccess`\"\u003e`on_success`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:fc/V3AsyncInvokeConfigDestinationConfigOnFailure:V3AsyncInvokeConfigDestinationConfigOnFailure":{"properties":{"destination":{"type":"string","description":"Asynchronous call target Resource Descriptor\n"}},"type":"object"},"alicloud:fc/V3AsyncInvokeConfigDestinationConfigOnSuccess:V3AsyncInvokeConfigDestinationConfigOnSuccess":{"properties":{"destination":{"type":"string","description":"Asynchronous call target Resource Descriptor\n"}},"type":"object"},"alicloud:fc/V3CustomDomainAuthConfig:V3CustomDomainAuthConfig":{"properties":{"authInfo":{"type":"string","description":"Authentication Information\n"},"authType":{"type":"string","description":"Authentication type. anonymous, function, or jwt.\n"}},"type":"object"},"alicloud:fc/V3CustomDomainCertConfig:V3CustomDomainCertConfig":{"properties":{"certName":{"type":"string","description":"Certificate Name\n"},"certificate":{"type":"string","description":"PEM format certificate\n"},"privateKey":{"type":"string","description":"Private Key in PEM format\n","secret":true}},"type":"object"},"alicloud:fc/V3CustomDomainCorsConfig:V3CustomDomainCorsConfig":{"properties":{"allowCredentials":{"type":"boolean","description":"Whether to allow credentials (such as Cookies, Authorization headers, etc.). When AllowCredentials is true, AllowOrigins cannot use the wildcard '*'.\n"},"allowHeaders":{"type":"array","items":{"type":"string"},"description":"List of allowed request headers, such as Content-Type, Authorization, etc.\n"},"allowMethods":{"type":"array","items":{"type":"string"},"description":"List of allowed HTTP methods, such as GET, POST, PUT, DELETE, etc.\n"},"allowOrigins":{"type":"array","items":{"type":"string"},"description":"List of allowed origins. Supports wildcard '*' to allow all origins (when AllowCredentials is false), specific domains like 'https://example.com', or an array of multiple domains.\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"List of response headers that can be exposed to the browser.\n"},"maxAge":{"type":"integer","description":"Cache time (seconds) for preflight request results. Browsers will not resend preflight requests within this time.\n"}},"type":"object"},"alicloud:fc/V3CustomDomainRouteConfig:V3CustomDomainRouteConfig":{"properties":{"routes":{"type":"array","items":{"$ref":"#/types/alicloud:fc/V3CustomDomainRouteConfigRoute:V3CustomDomainRouteConfigRoute"},"description":"Routing Configuration List See \u003cspan pulumi-lang-nodejs=\"`routes`\" pulumi-lang-dotnet=\"`Routes`\" pulumi-lang-go=\"`routes`\" pulumi-lang-python=\"`routes`\" pulumi-lang-yaml=\"`routes`\" pulumi-lang-java=\"`routes`\"\u003e`routes`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:fc/V3CustomDomainRouteConfigRoute:V3CustomDomainRouteConfigRoute":{"properties":{"functionName":{"type":"string","description":"Function name\n"},"methods":{"type":"array","items":{"type":"string"},"description":"List of supported HTTP methods\n"},"path":{"type":"string","description":"Route matching rule\n"},"qualifier":{"type":"string","description":"Version or Alias\n"},"rewriteConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainRouteConfigRouteRewriteConfig:V3CustomDomainRouteConfigRouteRewriteConfig","description":"Override Configuration See \u003cspan pulumi-lang-nodejs=\"`rewriteConfig`\" pulumi-lang-dotnet=\"`RewriteConfig`\" pulumi-lang-go=\"`rewriteConfig`\" pulumi-lang-python=\"`rewrite_config`\" pulumi-lang-yaml=\"`rewriteConfig`\" pulumi-lang-java=\"`rewriteConfig`\"\u003e`rewrite_config`\u003c/span\u003e below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["rewriteConfig"]}}},"alicloud:fc/V3CustomDomainRouteConfigRouteRewriteConfig:V3CustomDomainRouteConfigRouteRewriteConfig":{"properties":{"equalRules":{"type":"array","items":{"$ref":"#/types/alicloud:fc/V3CustomDomainRouteConfigRouteRewriteConfigEqualRule:V3CustomDomainRouteConfigRouteRewriteConfigEqualRule"},"description":"Exact Match Rule List See \u003cspan pulumi-lang-nodejs=\"`equalRules`\" pulumi-lang-dotnet=\"`EqualRules`\" pulumi-lang-go=\"`equalRules`\" pulumi-lang-python=\"`equal_rules`\" pulumi-lang-yaml=\"`equalRules`\" pulumi-lang-java=\"`equalRules`\"\u003e`equal_rules`\u003c/span\u003e below.\n"},"regexRules":{"type":"array","items":{"$ref":"#/types/alicloud:fc/V3CustomDomainRouteConfigRouteRewriteConfigRegexRule:V3CustomDomainRouteConfigRouteRewriteConfigRegexRule"},"description":"Regular match rule list See \u003cspan pulumi-lang-nodejs=\"`regexRules`\" pulumi-lang-dotnet=\"`RegexRules`\" pulumi-lang-go=\"`regexRules`\" pulumi-lang-python=\"`regex_rules`\" pulumi-lang-yaml=\"`regexRules`\" pulumi-lang-java=\"`regexRules`\"\u003e`regex_rules`\u003c/span\u003e below.\n"},"wildcardRules":{"type":"array","items":{"$ref":"#/types/alicloud:fc/V3CustomDomainRouteConfigRouteRewriteConfigWildcardRule:V3CustomDomainRouteConfigRouteRewriteConfigWildcardRule"},"description":"List of wildcard matching rules See \u003cspan pulumi-lang-nodejs=\"`wildcardRules`\" pulumi-lang-dotnet=\"`WildcardRules`\" pulumi-lang-go=\"`wildcardRules`\" pulumi-lang-python=\"`wildcard_rules`\" pulumi-lang-yaml=\"`wildcardRules`\" pulumi-lang-java=\"`wildcardRules`\"\u003e`wildcard_rules`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:fc/V3CustomDomainRouteConfigRouteRewriteConfigEqualRule:V3CustomDomainRouteConfigRouteRewriteConfigEqualRule":{"properties":{"match":{"type":"string","description":"Matching Rules\n"},"replacement":{"type":"string","description":"Replace Rules\n"}},"type":"object"},"alicloud:fc/V3CustomDomainRouteConfigRouteRewriteConfigRegexRule:V3CustomDomainRouteConfigRouteRewriteConfigRegexRule":{"properties":{"match":{"type":"string","description":"Matching Rules\n"},"replacement":{"type":"string","description":"Replace Rules\n"}},"type":"object"},"alicloud:fc/V3CustomDomainRouteConfigRouteRewriteConfigWildcardRule:V3CustomDomainRouteConfigRouteRewriteConfigWildcardRule":{"properties":{"match":{"type":"string","description":"Matching Rules\n"},"replacement":{"type":"string","description":"Replace Rules\n"}},"type":"object"},"alicloud:fc/V3CustomDomainTlsConfig:V3CustomDomainTlsConfig":{"properties":{"cipherSuites":{"type":"array","items":{"type":"string"},"description":"List of TLS cipher suites\n"},"maxVersion":{"type":"string","description":"The maximum version of TLS. Enumeration values: TLSv1.3, TLSv1.2, TLSv1.1, TLSv1.0\n"},"minVersion":{"type":"string","description":"TLS minimum version number. Enumeration values: TLSv1.3, TLSv1.2, TLSv1.1, TLSv1.0\n"}},"type":"object"},"alicloud:fc/V3CustomDomainWafConfig:V3CustomDomainWafConfig":{"properties":{"enableWaf":{"type":"boolean","description":"Enable WAF protection\n"}},"type":"object"},"alicloud:fc/V3FunctionCode:V3FunctionCode":{"properties":{"checksum":{"type":"string","description":"The CRC-64 value of the function code package.\n","secret":true},"ossBucketName":{"type":"string","description":"The name of the OSS Bucket that stores the function code ZIP package.\n"},"ossObjectName":{"type":"string","description":"The name of the OSS Object that stores the function code ZIP package.\n"},"zipFile":{"type":"string","description":"The Base 64 encoding of the function code ZIP package.\n"}},"type":"object"},"alicloud:fc/V3FunctionCustomContainerConfig:V3FunctionCustomContainerConfig":{"properties":{"accelerationInfo":{"$ref":"#/types/alicloud:fc/V3FunctionCustomContainerConfigAccelerationInfo:V3FunctionCustomContainerConfigAccelerationInfo","description":"(Deprecated since v1.242.0) Image Acceleration Information (Obsolete)\n","deprecationMessage":"Field 'acceleration_info' has been deprecated from provider version 1.228.0. Image Acceleration Information (Obsolete)"},"accelerationType":{"type":"string","description":"Whether to enable Image acceleration. Default: The Default value, indicating that image acceleration is enabled. None: indicates that image acceleration is disabled. (Obsolete)\n","deprecationMessage":"Field 'acceleration_type' has been deprecated from provider version 1.228.0. Whether to enable Image acceleration. Default: The Default value, indicating that image acceleration is enabled. None: indicates that image acceleration is disabled. (Obsolete)"},"acrInstanceId":{"type":"string","description":"ACR Enterprise version Image Repository ID, which must be entered when using ACR Enterprise version image. (Obsolete)\n","deprecationMessage":"Field 'acr_instance_id' has been deprecated from provider version 1.228.0. ACR Enterprise version Image Repository ID, which must be entered when using ACR Enterprise version image. (Obsolete)"},"commands":{"type":"array","items":{"type":"string"},"description":"Container startup parameters.\n"},"entrypoints":{"type":"array","items":{"type":"string"},"description":"Container start command.\n"},"healthCheckConfig":{"$ref":"#/types/alicloud:fc/V3FunctionCustomContainerConfigHealthCheckConfig:V3FunctionCustomContainerConfigHealthCheckConfig","description":"Function custom health check configuration See \u003cspan pulumi-lang-nodejs=\"`healthCheckConfig`\" pulumi-lang-dotnet=\"`HealthCheckConfig`\" pulumi-lang-go=\"`healthCheckConfig`\" pulumi-lang-python=\"`health_check_config`\" pulumi-lang-yaml=\"`healthCheckConfig`\" pulumi-lang-java=\"`healthCheckConfig`\"\u003e`health_check_config`\u003c/span\u003e below.\n"},"image":{"type":"string","description":"The container Image address.\n"},"port":{"type":"integer","description":"The listening port of the HTTP Server when the custom container runs.\n"},"resolvedImageUri":{"type":"string","description":"The actual digest version of the deployed Image. The code version specified by this digest is used when the function starts.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["accelerationInfo","healthCheckConfig","resolvedImageUri"]}}},"alicloud:fc/V3FunctionCustomContainerConfigAccelerationInfo:V3FunctionCustomContainerConfigAccelerationInfo":{"properties":{"status":{"type":"string","description":"Image Acceleration Status (Deprecated)\n","deprecationMessage":"Field 'status' has been deprecated from provider version 1.228.0. Image Acceleration Status (Deprecated)"}},"type":"object","language":{"nodejs":{"requiredOutputs":["status"]}}},"alicloud:fc/V3FunctionCustomContainerConfigHealthCheckConfig:V3FunctionCustomContainerConfigHealthCheckConfig":{"properties":{"failureThreshold":{"type":"integer"},"httpGetUrl":{"type":"string"},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}},"type":"object","language":{"nodejs":{"requiredOutputs":["failureThreshold","httpGetUrl","initialDelaySeconds","periodSeconds","successThreshold","timeoutSeconds"]}}},"alicloud:fc/V3FunctionCustomDns:V3FunctionCustomDns":{"properties":{"dnsOptions":{"type":"array","items":{"$ref":"#/types/alicloud:fc/V3FunctionCustomDnsDnsOption:V3FunctionCustomDnsDnsOption"},"description":"List of configuration items in the resolv.conf file. Each item corresponds to a key-value pair in the format of key:value, where the key is required. See \u003cspan pulumi-lang-nodejs=\"`dnsOptions`\" pulumi-lang-dotnet=\"`DnsOptions`\" pulumi-lang-go=\"`dnsOptions`\" pulumi-lang-python=\"`dns_options`\" pulumi-lang-yaml=\"`dnsOptions`\" pulumi-lang-java=\"`dnsOptions`\"\u003e`dns_options`\u003c/span\u003e below.\n"},"nameServers":{"type":"array","items":{"type":"string"},"description":"IP Address List of DNS servers\n"},"searches":{"type":"array","items":{"type":"string"},"description":"DNS search domain list\n"}},"type":"object"},"alicloud:fc/V3FunctionCustomDnsDnsOption:V3FunctionCustomDnsDnsOption":{"properties":{"name":{"type":"string","description":"Configuration Item Name\n"},"value":{"type":"string","description":"Configuration Item Value\n"}},"type":"object"},"alicloud:fc/V3FunctionCustomRuntimeConfig:V3FunctionCustomRuntimeConfig":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"Instance startup parameters.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Instance start command.\n"},"healthCheckConfig":{"$ref":"#/types/alicloud:fc/V3FunctionCustomRuntimeConfigHealthCheckConfig:V3FunctionCustomRuntimeConfigHealthCheckConfig","description":"Function custom health check configuration. See \u003cspan pulumi-lang-nodejs=\"`healthCheckConfig`\" pulumi-lang-dotnet=\"`HealthCheckConfig`\" pulumi-lang-go=\"`healthCheckConfig`\" pulumi-lang-python=\"`health_check_config`\" pulumi-lang-yaml=\"`healthCheckConfig`\" pulumi-lang-java=\"`healthCheckConfig`\"\u003e`health_check_config`\u003c/span\u003e below.\n"},"port":{"type":"integer","description":"The listening port of the HTTP Server.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["healthCheckConfig","port"]}}},"alicloud:fc/V3FunctionCustomRuntimeConfigHealthCheckConfig:V3FunctionCustomRuntimeConfigHealthCheckConfig":{"properties":{"failureThreshold":{"type":"integer"},"httpGetUrl":{"type":"string"},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}},"type":"object","language":{"nodejs":{"requiredOutputs":["failureThreshold","httpGetUrl","initialDelaySeconds","periodSeconds","successThreshold","timeoutSeconds"]}}},"alicloud:fc/V3FunctionGpuConfig:V3FunctionGpuConfig":{"properties":{"gpuMemorySize":{"type":"integer","description":"GPU memory specification, unit: MB, multiple of 1024MB\n"},"gpuType":{"type":"string","description":"GPU card architecture.\n- fc.gpu.tesla.1 indicates the type of the Tesla Architecture Series card of the GPU instance (the same as the NVIDIA T4 card type).\n- fc.gpu.ampere.1 indicates the GPU instance type of Ampere Architecture Series card (same as NVIDIA A10 card type).\n- fc.gpu.ada.1 Indicates the GPU instance Ada Lovelace architecture family card type.\n"}},"type":"object"},"alicloud:fc/V3FunctionInstanceLifecycleConfig:V3FunctionInstanceLifecycleConfig":{"properties":{"initializer":{"$ref":"#/types/alicloud:fc/V3FunctionInstanceLifecycleConfigInitializer:V3FunctionInstanceLifecycleConfigInitializer","description":"Initializer handler method configuration See \u003cspan pulumi-lang-nodejs=\"`initializer`\" pulumi-lang-dotnet=\"`Initializer`\" pulumi-lang-go=\"`initializer`\" pulumi-lang-python=\"`initializer`\" pulumi-lang-yaml=\"`initializer`\" pulumi-lang-java=\"`initializer`\"\u003e`initializer`\u003c/span\u003e below.\n"},"preStop":{"$ref":"#/types/alicloud:fc/V3FunctionInstanceLifecycleConfigPreStop:V3FunctionInstanceLifecycleConfigPreStop","description":"PreStop handler method configuration See \u003cspan pulumi-lang-nodejs=\"`preStop`\" pulumi-lang-dotnet=\"`PreStop`\" pulumi-lang-go=\"`preStop`\" pulumi-lang-python=\"`pre_stop`\" pulumi-lang-yaml=\"`preStop`\" pulumi-lang-java=\"`preStop`\"\u003e`pre_stop`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:fc/V3FunctionInstanceLifecycleConfigInitializer:V3FunctionInstanceLifecycleConfigInitializer":{"properties":{"commands":{"type":"array","items":{"type":"string"}},"handler":{"type":"string","description":"Function Handler: the call entry for the function compute system to run your function.\n"},"timeout":{"type":"integer","description":"The maximum running time of the function, in seconds.\n"}},"type":"object"},"alicloud:fc/V3FunctionInstanceLifecycleConfigPreStop:V3FunctionInstanceLifecycleConfigPreStop":{"properties":{"handler":{"type":"string","description":"Function Handler: the call entry for the function compute system to run your function.\n"},"timeout":{"type":"integer","description":"The maximum running time of the function, in seconds.\n"}},"type":"object"},"alicloud:fc/V3FunctionInvocationRestriction:V3FunctionInvocationRestriction":{"properties":{"disable":{"type":"boolean","description":"Whether invocation is disabled\n"},"lastModifiedTime":{"type":"string","description":"Last time the function was Updated\n"},"reason":{"type":"string","description":"Disable Reason\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["lastModifiedTime"]}}},"alicloud:fc/V3FunctionLogConfig:V3FunctionLogConfig":{"properties":{"enableInstanceMetrics":{"type":"boolean","description":"After this feature is enabled, you can view core metrics such as instance-level CPU usage, memory usage, instance network status, and the number of requests within an instance. false: The default value, which means that instance-level metrics are turned off. true: indicates that instance-level metrics are enabled.\n"},"enableRequestMetrics":{"type":"boolean","description":"After this function is enabled, you can view the time and memory consumed by a call to all functions under this service. false: indicates that request-level metrics are turned off. true: The default value, indicating that request-level metrics are enabled.\n"},"logBeginRule":{"type":"string","description":"Log Line First Matching Rules\n"},"logstore":{"type":"string","description":"The Logstore name of log service.\n"},"project":{"type":"string","description":"The name of the log service Project.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableInstanceMetrics","enableRequestMetrics","logBeginRule"]}}},"alicloud:fc/V3FunctionNasConfig:V3FunctionNasConfig":{"properties":{"groupId":{"type":"integer","description":"Group ID\n"},"mountPoints":{"type":"array","items":{"$ref":"#/types/alicloud:fc/V3FunctionNasConfigMountPoint:V3FunctionNasConfigMountPoint"},"description":"Mount point list See \u003cspan pulumi-lang-nodejs=\"`mountPoints`\" pulumi-lang-dotnet=\"`MountPoints`\" pulumi-lang-go=\"`mountPoints`\" pulumi-lang-python=\"`mount_points`\" pulumi-lang-yaml=\"`mountPoints`\" pulumi-lang-java=\"`mountPoints`\"\u003e`mount_points`\u003c/span\u003e below.\n"},"userId":{"type":"integer","description":"Account ID\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["groupId","userId"]}}},"alicloud:fc/V3FunctionNasConfigMountPoint:V3FunctionNasConfigMountPoint":{"properties":{"enableTls":{"type":"boolean","description":"Use transport encryption to mount. Note: only general-purpose NAS supports transmission encryption.\n"},"mountDir":{"type":"string"},"serverAddr":{"type":"string","description":"NAS server address\n"}},"type":"object"},"alicloud:fc/V3FunctionOssMountConfig:V3FunctionOssMountConfig":{"properties":{"mountPoints":{"type":"array","items":{"$ref":"#/types/alicloud:fc/V3FunctionOssMountConfigMountPoint:V3FunctionOssMountConfigMountPoint"},"description":"OSS mount point list See \u003cspan pulumi-lang-nodejs=\"`mountPoints`\" pulumi-lang-dotnet=\"`MountPoints`\" pulumi-lang-go=\"`mountPoints`\" pulumi-lang-python=\"`mount_points`\" pulumi-lang-yaml=\"`mountPoints`\" pulumi-lang-java=\"`mountPoints`\"\u003e`mount_points`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:fc/V3FunctionOssMountConfigMountPoint:V3FunctionOssMountConfigMountPoint":{"properties":{"bucketName":{"type":"string","description":"OSS Bucket name\n"},"bucketPath":{"type":"string","description":"Path of the mounted OSS Bucket\n"},"endpoint":{"type":"string","description":"OSS access endpoint\n"},"mountDir":{"type":"string"},"readOnly":{"type":"boolean","description":"Read-only\n"}},"type":"object"},"alicloud:fc/V3FunctionTracingConfig:V3FunctionTracingConfig":{"properties":{"params":{"type":"object","additionalProperties":{"type":"string"},"description":"Tracing parameters\n"},"type":{"type":"string","description":"The tracing protocol type. Currently, only Jaeger is supported.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["params","type"]}}},"alicloud:fc/V3FunctionVpcConfig:V3FunctionVpcConfig":{"properties":{"securityGroupId":{"type":"string","description":"Security group ID\n"},"vpcId":{"type":"string","description":"VPC network ID\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"Switch List\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["securityGroupId","vpcId"]}}},"alicloud:fc/V3LayerVersionCode:V3LayerVersionCode":{"properties":{"checksum":{"type":"string","description":"The CRC-64 value of the code package. If checksum is provided, Function Compute checks whether the checksum of the code package is consistent with the provided checksum.\n","willReplaceOnChanges":true},"ossBucketName":{"type":"string","description":"Name of the OSS Bucket where the user stores the Layer Code ZIP package\n","willReplaceOnChanges":true},"ossObjectName":{"type":"string","description":"Name of the OSS Object where the user stores the Layer Code ZIP package\n","willReplaceOnChanges":true},"zipFile":{"type":"string","description":"Base 64 encoding of Layer Code ZIP package\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:fc/V3ProvisionConfigScheduledAction:V3ProvisionConfigScheduledAction":{"properties":{"endTime":{"type":"string","description":"Policy expiration time\n"},"name":{"type":"string","description":"Policy Name\n"},"scheduleExpression":{"type":"string","description":"Timing Configuration\n"},"startTime":{"type":"string","description":"Policy effective time\n"},"target":{"type":"integer","description":"Number of reserved target resources\n"},"timeZone":{"type":"string","description":"Time zone.\n"}},"type":"object"},"alicloud:fc/V3ProvisionConfigTargetTrackingPolicy:V3ProvisionConfigTargetTrackingPolicy":{"properties":{"endTime":{"type":"string","description":"Policy expiration time\n"},"maxCapacity":{"type":"integer","description":"Maximum value of expansion\n"},"metricTarget":{"type":"number","description":"Tracking value of the indicator\n"},"metricType":{"type":"string","description":"Provisionedconcurrency utilization: Concurrency utilization of reserved mode instances. CPU utilization: CPU utilization. GPUMemUtilization:GPU utilization\n"},"minCapacity":{"type":"integer","description":"Minimum Shrinkage\n"},"name":{"type":"string","description":"Policy Name\n"},"startTime":{"type":"string","description":"Policy Effective Time\n"},"timeZone":{"type":"string","description":"Time zone.\n"}},"type":"object"},"alicloud:fc/V3TriggerHttpTrigger:V3TriggerHttpTrigger":{"properties":{"urlInternet":{"type":"string","description":"The public domain name address. On the Internet, you can access the HTTP Trigger through the HTTP protocol or HTTPS protocol.\n"},"urlIntranet":{"type":"string","description":"The private domain name address. In a VPC, you can access the HTTP Trigger through HTTP or HTTPS.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["urlInternet","urlIntranet"]}}},"alicloud:fc/getCustomDomainsDomain:getCustomDomainsDomain":{"properties":{"accountId":{"type":"string","description":"The account id.\n"},"apiVersion":{"type":"string","description":"The API version of the Function Compute service.\n"},"certConfig":{"$ref":"#/types/alicloud:fc/getCustomDomainsDomainCertConfig:getCustomDomainsDomainCertConfig","description":"The configuration of HTTPS certificate.\n"},"createdTime":{"type":"string","description":"The created time of the custom domain.\n"},"domainName":{"type":"string","description":"The custom domain name.\n"},"id":{"type":"string","description":"The custom domain id, same as domain name.\n"},"lastModifiedTime":{"type":"string","description":"The last modified time of the custom domain.\n"},"protocol":{"type":"string","description":"The custom domain protocol.\n"},"routeConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:fc/getCustomDomainsDomainRouteConfig:getCustomDomainsDomainRouteConfig"},"description":"The configuration of domain route, mapping the path and Function Compute function.\n"}},"type":"object","required":["accountId","apiVersion","certConfig","createdTime","domainName","id","lastModifiedTime","protocol","routeConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getCustomDomainsDomainCertConfig:getCustomDomainsDomainCertConfig":{"properties":{"certName":{"type":"string","description":"The name of the certificate.\n"},"certificate":{"type":"string","description":"Certificate data of the HTTPS certificates, follow the 'pem'.\n"}},"type":"object","required":["certName","certificate"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getCustomDomainsDomainRouteConfig:getCustomDomainsDomainRouteConfig":{"properties":{"functionName":{"type":"string","description":"The name of the Function Compute function that requests are routed to.\n"},"methods":{"type":"array","items":{"type":"string"},"description":"The requests of the specified HTTP methos are routed from. Valid method: GET, POST, DELETE, HEAD, PUT and PATCH. For example, \"GET, HEAD\" methods indicate that only requests from GET and HEAD methods are routed.\n"},"path":{"type":"string","description":"The path that requests are routed from.\n"},"qualifier":{"type":"string","description":"The version or alias of the Function Compute service that requests are routed to. For example, qualifier v1 indicates that the requests are routed to the version 1 Function Compute service.\n"},"serviceName":{"type":"string","description":"The name of the Function Compute service that requests are routed to.\n"}},"type":"object","required":["functionName","methods","path","qualifier","serviceName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getFunctionsFunction:getFunctionsFunction":{"properties":{"caPort":{"type":"integer","description":"The port that the function listen to, only valid for [custom runtime](https://www.alibabacloud.com/help/doc-detail/132044.htm) and [custom container runtime](https://www.alibabacloud.com/help/doc-detail/179368.htm).\n"},"codeChecksum":{"type":"string","description":"Checksum (crc64) of the function code.\n"},"codeSize":{"type":"integer","description":"Function code size in bytes.\n"},"creationTime":{"type":"string","description":"Function creation time.\n"},"customContainerConfig":{"$ref":"#/types/alicloud:fc/getFunctionsFunctionCustomContainerConfig:getFunctionsFunctionCustomContainerConfig","description":"The configuration for custom container runtime. It contains following attributes:\n"},"description":{"type":"string","description":"Function description.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"A map that defines environment variables for the function.\n"},"handler":{"type":"string","description":"Function [entry point](https://www.alibabacloud.com/help/doc-detail/62213.htm) in the code.\n"},"id":{"type":"string","description":"Function ID.\n"},"initializationTimeout":{"type":"integer","description":"The maximum length of time, in seconds, that the function's initialization should be run for.\n"},"initializer":{"type":"string","description":"The entry point of the function's [initialization](https://www.alibabacloud.com/help/doc-detail/157704.htm).\n"},"instanceConcurrency":{"type":"integer","description":"The maximum number of requests can be executed concurrently within the single function instance.\n"},"instanceType":{"type":"string","description":"The instance type of the function.\n"},"lastModificationTime":{"type":"string","description":"Function last modification time.\n"},"memorySize":{"type":"integer","description":"Amount of memory in MB the function can use at runtime.\n"},"name":{"type":"string","description":"Function name.\n"},"runtime":{"type":"string","description":"Function runtime. The list of possible values is [available here](https://www.alibabacloud.com/help/doc-detail/52077.htm).\n"},"timeout":{"type":"integer","description":"Maximum amount of time the function can run in seconds.\n"}},"type":"object","required":["caPort","codeChecksum","codeSize","creationTime","description","environmentVariables","handler","id","initializationTimeout","initializer","instanceConcurrency","instanceType","lastModificationTime","memorySize","name","runtime","timeout"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getFunctionsFunctionCustomContainerConfig:getFunctionsFunctionCustomContainerConfig":{"properties":{"args":{"type":"string","description":"The args field specifies the arguments passed to the command.\n"},"command":{"type":"string","description":"The entry point of the container, which specifies the actual command run by the container.\n"},"image":{"type":"string","description":"The container image address.\n"}},"type":"object","required":["args","command","image"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getServicesService:getServicesService":{"properties":{"creationTime":{"type":"string","description":"FC service creation time.\n"},"description":{"type":"string","description":"FC service description.\n"},"id":{"type":"string","description":"FC service ID.\n"},"internetAccess":{"type":"boolean","description":"Indicate whether the service can access to internet or not.\n"},"lastModificationTime":{"type":"string","description":"FC service last modification time.\n"},"logConfig":{"$ref":"#/types/alicloud:fc/getServicesServiceLogConfig:getServicesServiceLogConfig","description":"A list of one element containing information about the associated log store. It contains the following attributes:\n"},"name":{"type":"string","description":"FC service name.\n"},"nasConfig":{"$ref":"#/types/alicloud:fc/getServicesServiceNasConfig:getServicesServiceNasConfig","description":"A list of one element about the nas configuration.\n"},"role":{"type":"string","description":"FC service role ARN.\n"},"vpcConfig":{"$ref":"#/types/alicloud:fc/getServicesServiceVpcConfig:getServicesServiceVpcConfig","description":"A list of one element containing information about accessible VPC resources. It contains the following attributes:\n"}},"type":"object","required":["creationTime","description","id","internetAccess","lastModificationTime","logConfig","name","nasConfig","role","vpcConfig"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getServicesServiceLogConfig:getServicesServiceLogConfig":{"properties":{"logstore":{"type":"string","description":"Log Service store name.\n"},"project":{"type":"string","description":"Log Service project name.\n"}},"type":"object","required":["logstore","project"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getServicesServiceNasConfig:getServicesServiceNasConfig":{"properties":{"groupId":{"type":"integer","description":"The group id of the NAS file system.\n"},"mountPoints":{"type":"array","items":{"$ref":"#/types/alicloud:fc/getServicesServiceNasConfigMountPoint:getServicesServiceNasConfigMountPoint"},"description":"The mount points configuration, including following attributes:\n"},"userId":{"type":"integer","description":"The user id of the NAS file system.\n"}},"type":"object","required":["groupId","mountPoints","userId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getServicesServiceNasConfigMountPoint:getServicesServiceNasConfigMountPoint":{"properties":{"mountDir":{"type":"string","description":"The local address where to mount your remote NAS directory.\n"},"serverAddr":{"type":"string","description":"The address of the remote NAS directory.\n"}},"type":"object","required":["mountDir","serverAddr"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getServicesServiceVpcConfig:getServicesServiceVpcConfig":{"properties":{"securityGroupId":{"type":"string","description":"Associated security group ID.\n"},"vpcId":{"type":"string","description":"Associated VPC ID.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"Associated vSwitch IDs.\n"}},"type":"object","required":["securityGroupId","vpcId","vswitchIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getTriggersTrigger:getTriggersTrigger":{"properties":{"config":{"type":"string","description":"JSON-encoded trigger configuration. See [Configure triggers and events](https://www.alibabacloud.com/help/doc-detail/70140.htm) for more details.\n"},"creationTime":{"type":"string","description":"FC trigger creation time.\n"},"id":{"type":"string","description":"FC trigger ID.\n"},"invocationRole":{"type":"string","description":"RAM role arn attached to the Function Compute trigger. Role used by the event source to call the function. The value format is \"acs:ram::$account-id:role/$role-name\". See [Create a trigger](https://www.alibabacloud.com/help/doc-detail/53102.htm) for more details.\n"},"lastModificationTime":{"type":"string","description":"FC trigger last modification time.\n"},"name":{"type":"string","description":"FC trigger name.\n"},"sourceArn":{"type":"string","description":"Event source resource address. See [Create a trigger](https://www.alibabacloud.com/help/doc-detail/53102.htm) for more details.\n"},"type":{"type":"string","description":"Type of the trigger. Valid values: \u003cspan pulumi-lang-nodejs=\"`oss`\" pulumi-lang-dotnet=\"`Oss`\" pulumi-lang-go=\"`oss`\" pulumi-lang-python=\"`oss`\" pulumi-lang-yaml=\"`oss`\" pulumi-lang-java=\"`oss`\"\u003e`oss`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`log`\" pulumi-lang-dotnet=\"`Log`\" pulumi-lang-go=\"`log`\" pulumi-lang-python=\"`log`\" pulumi-lang-yaml=\"`log`\" pulumi-lang-java=\"`log`\"\u003e`log`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`timer`\" pulumi-lang-dotnet=\"`Timer`\" pulumi-lang-go=\"`timer`\" pulumi-lang-python=\"`timer`\" pulumi-lang-yaml=\"`timer`\" pulumi-lang-java=\"`timer`\"\u003e`timer`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mnsTopic`\" pulumi-lang-dotnet=\"`MnsTopic`\" pulumi-lang-go=\"`mnsTopic`\" pulumi-lang-python=\"`mns_topic`\" pulumi-lang-yaml=\"`mnsTopic`\" pulumi-lang-java=\"`mnsTopic`\"\u003e`mns_topic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cdnEvents`\" pulumi-lang-dotnet=\"`CdnEvents`\" pulumi-lang-go=\"`cdnEvents`\" pulumi-lang-python=\"`cdn_events`\" pulumi-lang-yaml=\"`cdnEvents`\" pulumi-lang-java=\"`cdnEvents`\"\u003e`cdn_events`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`eventbridge`\" pulumi-lang-dotnet=\"`Eventbridge`\" pulumi-lang-go=\"`eventbridge`\" pulumi-lang-python=\"`eventbridge`\" pulumi-lang-yaml=\"`eventbridge`\" pulumi-lang-java=\"`eventbridge`\"\u003e`eventbridge`\u003c/span\u003e.\n"}},"type":"object","required":["config","creationTime","id","invocationRole","lastModificationTime","name","sourceArn","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunction:getV3FunctionsFunction":{"properties":{"codeSize":{"type":"integer","description":"The code package size of the function returned by the system, in byte Example : 1024\n"},"cpu":{"type":"number","description":"The CPU specification of the function. The unit is vCPU, which is a multiple of the 0.05 vCPU.\n"},"createTime":{"type":"string","description":"The creation time of the function.\n"},"customContainerConfig":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionCustomContainerConfig:getV3FunctionsFunctionCustomContainerConfig","description":"The configuration of the custom container runtime. After the configuration is successful, the function can use the custom container image to execute the function. code and customContainerConfig.\n"},"customDns":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionCustomDns:getV3FunctionsFunctionCustomDns","description":"Function custom DNS configuration\n"},"customRuntimeConfig":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionCustomRuntimeConfig:getV3FunctionsFunctionCustomRuntimeConfig","description":"Customize the runtime configuration.\n"},"description":{"type":"string","description":"The description of the function. The function compute system does not use this attribute value, but we recommend that you set a concise and clear description for the function.\n"},"diskSize":{"type":"integer","description":"The disk specification of the function, in MB. The optional value is 512 MB or 10240MB.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variable set for the function, you can get the value of the environment variable in the function.\n"},"functionArn":{"type":"string","description":"ARN of function\n"},"functionId":{"type":"string","description":"The first ID of the resource\n"},"functionName":{"type":"string","description":"The function name. Consists of uppercase and lowercase letters, digits (0 to 9), underscores (_), and dashes (-). It must begin with an English letter (a ~ z), (A ~ Z), or an underscore (_). Case sensitive. The length is 1~128 characters.\n"},"gpuConfig":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionGpuConfig:getV3FunctionsFunctionGpuConfig","description":"Function GPU configuration.\n"},"handler":{"type":"string","description":"The execution entry of the callback method, which is similar to the request handler.\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"idleTimeout":{"type":"integer","description":"Destroy an instance when the instance no-request duration exceeds this attribute. -1 means that the threshold is cleared and the system default behavior is used.\n"},"instanceConcurrency":{"type":"integer","description":"Maximum instance concurrency.\n"},"instanceIsolationMode":{"type":"string","description":"Instance isolation mode\n"},"instanceLifecycleConfig":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionInstanceLifecycleConfig:getV3FunctionsFunctionInstanceLifecycleConfig","description":"Instance lifecycle callback method configuration.\n"},"internetAccess":{"type":"boolean","description":"Allow function to access public network\n"},"invocationRestriction":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionInvocationRestriction:getV3FunctionsFunctionInvocationRestriction","description":"Invocation Restriction Detail\n"},"lastModifiedTime":{"type":"string","description":"Last time the function was Updated\n"},"lastUpdateStatus":{"type":"string","description":"The status of the last function update operation. When the function is created successfully, the value is Successful. Optional values are Successful, Failed, and InProgress.\n"},"lastUpdateStatusReason":{"type":"string","description":"The reason that caused the last function to update the Operation State to the current value\n"},"lastUpdateStatusReasonCode":{"type":"string","description":"Status code of the reason that caused the last function update operation status to the current value\n"},"layers":{"type":"array","items":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionLayer:getV3FunctionsFunctionLayer"},"description":"The list of layers.\n"},"logConfig":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionLogConfig:getV3FunctionsFunctionLogConfig","description":"The logs generated by the function are written to the configured Logstore.\n"},"memorySize":{"type":"integer","description":"The memory specification of the function. The unit is MB. The memory size is a multiple of 64MB. The minimum value is 128MB and the maximum value is 32GB. At the same time, the ratio of cpu to memorySize (calculated by GB) should be between 1:1 and 1:4.\n"},"nasConfig":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionNasConfig:getV3FunctionsFunctionNasConfig","description":"NAS configuration. After this parameter is configured, the function can access the specified NAS resource.\n"},"ossMountConfig":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionOssMountConfig:getV3FunctionsFunctionOssMountConfig","description":"OSS mount configuration\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID\n"},"role":{"type":"string","description":"The user is authorized to the RAM role of function compute. After the configuration, function compute will assume this role to generate temporary access credentials. In the function, you can use the temporary access credentials of the role to access the specified Alibaba cloud service, such as OSS and OTS\n"},"runtime":{"type":"string","description":"Function runtime type\n"},"sessionAffinity":{"type":"string","description":"The affinity policy of the function compute call request. To implement the request affinity of the MCP SSE protocol, set it to MCP_SSE. If Cookie affinity is used, it can be set to GENERATED_COOKIE. If Header affinity is used, it can be set to HEADER_FIELD. If it is not set or set to NONE, the affinity effect is not set, and the request is routed according to the default scheduling policy of the function calculation system.\n"},"sessionAffinityConfig":{"type":"string","description":"When you set the sessionAffinity affinity type, you need to set the relevant affinity configuration. For example, the MCP_SSE affinity needs to fill in the mcpssessionaffinityconfig configuration. The Cookie affinity needs to be filled with the CookieSessionAffinityConfig configuration, and the Header Field affinity needs to be filled with the HeaderFieldSessionAffinityConfig configuration.\n"},"state":{"type":"string","description":"Function Status\n"},"stateReason":{"type":"string","description":"The reason why the function is in the current state\n"},"stateReasonCode":{"type":"string","description":"The status code of the reason the function is in the current state.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"timeout":{"type":"integer","description":"The maximum running time of the function, in seconds.\n"},"tracingConfig":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionTracingConfig:getV3FunctionsFunctionTracingConfig","description":"Tracing configuration\n"},"vpcConfig":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionVpcConfig:getV3FunctionsFunctionVpcConfig","description":"VPC configuration. After this parameter is configured, the function can access the specified VPC resources.\n"}},"type":"object","required":["codeSize","cpu","createTime","customContainerConfig","customDns","customRuntimeConfig","description","diskSize","environmentVariables","functionArn","functionId","functionName","gpuConfig","handler","id","idleTimeout","instanceConcurrency","instanceIsolationMode","instanceLifecycleConfig","internetAccess","invocationRestriction","lastModifiedTime","lastUpdateStatus","lastUpdateStatusReason","lastUpdateStatusReasonCode","layers","logConfig","memorySize","nasConfig","ossMountConfig","resourceGroupId","role","runtime","sessionAffinity","sessionAffinityConfig","state","stateReason","stateReasonCode","tags","timeout","tracingConfig","vpcConfig"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionCustomContainerConfig:getV3FunctionsFunctionCustomContainerConfig":{"properties":{"accelerationInfo":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionCustomContainerConfigAccelerationInfo:getV3FunctionsFunctionCustomContainerConfigAccelerationInfo","description":"Image Acceleration Information (Obsolete).\n"},"accelerationType":{"type":"string","description":"Whether to enable Image acceleration. Default: The Default value, indicating that image acceleration is enabled. None: indicates that image acceleration is disabled. (Obsolete).\n"},"acrInstanceId":{"type":"string","description":"ACR Enterprise version Image Repository ID, which must be entered when using ACR Enterprise version image. (Obsolete).\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Lifecycle Initialization Phase Callback Instructions.\n"},"entrypoints":{"type":"array","items":{"type":"string"},"description":"Container start command.\n"},"healthCheckConfig":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionCustomContainerConfigHealthCheckConfig:getV3FunctionsFunctionCustomContainerConfigHealthCheckConfig","description":"Function custom health check configuration.\n"},"image":{"type":"string","description":"The container Image address.\n"},"port":{"type":"integer","description":"The listening port of the HTTP Server.\n"},"resolvedImageUri":{"type":"string","description":"The actual digest version of the deployed Image. The code version specified by this digest is used when the function starts.\n"}},"type":"object","required":["accelerationInfo","accelerationType","acrInstanceId","commands","entrypoints","healthCheckConfig","image","port","resolvedImageUri"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionCustomContainerConfigAccelerationInfo:getV3FunctionsFunctionCustomContainerConfigAccelerationInfo":{"properties":{"status":{"type":"string","description":"Image Acceleration Status (Deprecated).\n"}},"type":"object","required":["status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionCustomContainerConfigHealthCheckConfig:getV3FunctionsFunctionCustomContainerConfigHealthCheckConfig":{"properties":{"failureThreshold":{"type":"integer","description":"The health check failure threshold. The system considers the health check failure when the health check fails. The value range is 1~120. The default value is 3.\n"},"httpGetUrl":{"type":"string","description":"The URL of the container's custom health check. No more than 2048 characters in length.\n"},"initialDelaySeconds":{"type":"integer","description":"The delay between the start of the container and the initiation of the health check. Value range 0~120. The default value is 0.\n"},"periodSeconds":{"type":"integer","description":"Health check cycle. The value range is 1~120. The default value is 3.\n"},"successThreshold":{"type":"integer","description":"The threshold for the number of successful health checks. When the threshold is reached, the system considers that the health check is successful. The value range is 1~120. The default value is 1.\n"},"timeoutSeconds":{"type":"integer","description":"Health check timeout. Value range 1~3. The default value is 1.\n"}},"type":"object","required":["failureThreshold","httpGetUrl","initialDelaySeconds","periodSeconds","successThreshold","timeoutSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionCustomDns:getV3FunctionsFunctionCustomDns":{"properties":{"dnsOptions":{"type":"array","items":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionCustomDnsDnsOption:getV3FunctionsFunctionCustomDnsDnsOption"},"description":"List of configuration items in the resolv.conf file. Each item corresponds to a key-value pair in the format of key:value, where the key is required.\n"},"nameServers":{"type":"array","items":{"type":"string"},"description":"IP Address List of DNS servers.\n"},"searches":{"type":"array","items":{"type":"string"},"description":"DNS search domain list.\n"}},"type":"object","required":["dnsOptions","nameServers","searches"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionCustomDnsDnsOption:getV3FunctionsFunctionCustomDnsDnsOption":{"properties":{"name":{"type":"string","description":"Configuration Item Name.\n"},"value":{"type":"string","description":"Configuration Item Value.\n"}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionCustomRuntimeConfig:getV3FunctionsFunctionCustomRuntimeConfig":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"Instance startup parameters.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Lifecycle Initialization Phase Callback Instructions.\n"},"healthCheckConfig":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionCustomRuntimeConfigHealthCheckConfig:getV3FunctionsFunctionCustomRuntimeConfigHealthCheckConfig","description":"Function custom health check configuration.\n"},"port":{"type":"integer","description":"The listening port of the HTTP Server.\n"}},"type":"object","required":["args","commands","healthCheckConfig","port"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionCustomRuntimeConfigHealthCheckConfig:getV3FunctionsFunctionCustomRuntimeConfigHealthCheckConfig":{"properties":{"failureThreshold":{"type":"integer","description":"The health check failure threshold. The system considers the health check failure when the health check fails. The value range is 1~120. The default value is 3.\n"},"httpGetUrl":{"type":"string","description":"The URL of the container's custom health check. No more than 2048 characters in length.\n"},"initialDelaySeconds":{"type":"integer","description":"The delay between the start of the container and the initiation of the health check. Value range 0~120. The default value is 0.\n"},"periodSeconds":{"type":"integer","description":"Health check cycle. The value range is 1~120. The default value is 3.\n"},"successThreshold":{"type":"integer","description":"The threshold for the number of successful health checks. When the threshold is reached, the system considers that the health check is successful. The value range is 1~120. The default value is 1.\n"},"timeoutSeconds":{"type":"integer","description":"Health check timeout. Value range 1~3. The default value is 1.\n"}},"type":"object","required":["failureThreshold","httpGetUrl","initialDelaySeconds","periodSeconds","successThreshold","timeoutSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionGpuConfig:getV3FunctionsFunctionGpuConfig":{"properties":{"gpuMemorySize":{"type":"integer","description":"GPU memory specification, unit: MB, multiple of 1024MB.\n"},"gpuType":{"type":"string","description":"GPU card architecture.-fc.gpu.tesla.1 indicates the type of the Tesla Architecture Series card of the GPU instance (the same as the NVIDIA T4 card type).-fc.gpu.ampere.1 indicates the GPU instance type of Ampere Architecture Series card (same as NVIDIA A10 card type).-fc.gpu.ada.1 Indicates the GPU instance Ada Lovelace architecture family card type.\n"}},"type":"object","required":["gpuMemorySize","gpuType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionInstanceLifecycleConfig:getV3FunctionsFunctionInstanceLifecycleConfig":{"properties":{"initializer":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionInstanceLifecycleConfigInitializer:getV3FunctionsFunctionInstanceLifecycleConfigInitializer","description":"Initializer handler method configuration.\n"},"preStop":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionInstanceLifecycleConfigPreStop:getV3FunctionsFunctionInstanceLifecycleConfigPreStop","description":"PreStop handler method configuration.\n"}},"type":"object","required":["initializer","preStop"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionInstanceLifecycleConfigInitializer:getV3FunctionsFunctionInstanceLifecycleConfigInitializer":{"properties":{"commands":{"type":"array","items":{"type":"string"},"description":"Lifecycle Initialization Phase Callback Instructions.\n"},"handler":{"type":"string","description":"The execution entry of the callback method, which is similar to the request handler.\n"},"timeout":{"type":"integer","description":"The maximum running time of the function, in seconds.\n"}},"type":"object","required":["commands","handler","timeout"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionInstanceLifecycleConfigPreStop:getV3FunctionsFunctionInstanceLifecycleConfigPreStop":{"properties":{"handler":{"type":"string","description":"The execution entry of the callback method, which is similar to the request handler.\n"},"timeout":{"type":"integer","description":"The maximum running time of the function, in seconds.\n"}},"type":"object","required":["handler","timeout"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionInvocationRestriction:getV3FunctionsFunctionInvocationRestriction":{"properties":{"disable":{"type":"boolean","description":"Whether invocation is disabled.\n"},"lastModifiedTime":{"type":"string","description":"Last time the function was Updated\n"},"reason":{"type":"string","description":"Disable Reason.\n"}},"type":"object","required":["disable","lastModifiedTime","reason"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionLayer:getV3FunctionsFunctionLayer":{"properties":{"arn":{"type":"string","description":"The resource identifier of the layer version.\n"},"size":{"type":"string","description":"The size of the layer code package. Unit: bytes.\n"}},"type":"object","required":["arn","size"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionLogConfig:getV3FunctionsFunctionLogConfig":{"properties":{"enableInstanceMetrics":{"type":"boolean","description":"After this feature is enabled, you can view core metrics such as instance-level CPU usage, memory usage, instance network status, and the number of requests within an instance. false: The default value, which means that instance-level metrics are turned off. true: indicates that instance-level metrics are enabled.\n"},"enableRequestMetrics":{"type":"boolean","description":"After this function is enabled, you can view the time and memory consumed by a call to all functions under this service. false: indicates that request-level metrics are turned off. true: The default value, indicating that request-level metrics are enabled.\n"},"logBeginRule":{"type":"string","description":"Log Line First Matching Rules.\n"},"logstore":{"type":"string","description":"The Logstore name of log service.\n"},"project":{"type":"string","description":"The name of the log service Project.\n"}},"type":"object","required":["enableInstanceMetrics","enableRequestMetrics","logBeginRule","logstore","project"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionNasConfig:getV3FunctionsFunctionNasConfig":{"properties":{"groupId":{"type":"integer","description":"Group ID.\n"},"mountPoints":{"type":"array","items":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionNasConfigMountPoint:getV3FunctionsFunctionNasConfigMountPoint"},"description":"OSS mount point list.\n"},"userId":{"type":"integer","description":"Account ID.\n"}},"type":"object","required":["groupId","mountPoints","userId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionNasConfigMountPoint:getV3FunctionsFunctionNasConfigMountPoint":{"properties":{"enableTls":{"type":"boolean","description":"Use transport encryption to mount. Note: only general-purpose NAS supports transmission encryption.\n"},"mountDir":{"type":"string","description":"Mount Directory.\n"},"serverAddr":{"type":"string","description":"NAS server address.\n"}},"type":"object","required":["enableTls","mountDir","serverAddr"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionOssMountConfig:getV3FunctionsFunctionOssMountConfig":{"properties":{"mountPoints":{"type":"array","items":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunctionOssMountConfigMountPoint:getV3FunctionsFunctionOssMountConfigMountPoint"},"description":"OSS mount point list.\n"}},"type":"object","required":["mountPoints"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionOssMountConfigMountPoint:getV3FunctionsFunctionOssMountConfigMountPoint":{"properties":{"bucketName":{"type":"string","description":"OSS Bucket name.\n"},"bucketPath":{"type":"string","description":"Path of the mounted OSS Bucket.\n"},"endpoint":{"type":"string","description":"OSS access endpoint.\n"},"mountDir":{"type":"string","description":"Mount Directory.\n"},"readOnly":{"type":"boolean","description":"Read-only.\n"}},"type":"object","required":["bucketName","bucketPath","endpoint","mountDir","readOnly"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionTracingConfig:getV3FunctionsFunctionTracingConfig":{"properties":{"params":{"type":"object","additionalProperties":{"type":"string"},"description":"Tracing parameters.\n"},"type":{"type":"string","description":"The tracing protocol type. Currently, only Jaeger is supported.\n"}},"type":"object","required":["params","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3FunctionsFunctionVpcConfig:getV3FunctionsFunctionVpcConfig":{"properties":{"securityGroupId":{"type":"string","description":"Security group ID.\n"},"vpcId":{"type":"string","description":"VPC network ID.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"Switch List.\n"}},"type":"object","required":["securityGroupId","vpcId","vswitchIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3TriggersTrigger:getV3TriggersTrigger":{"properties":{"createTime":{"type":"string","description":"Creation time\n"},"description":{"type":"string","description":"Description of the trigger\n"},"httpTrigger":{"$ref":"#/types/alicloud:fc/getV3TriggersTriggerHttpTrigger:getV3TriggersTriggerHttpTrigger","description":"HTTP trigger information\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"invocationRole":{"type":"string","description":"The role required by the event source (such as OSS) to call the function.\n"},"lastModifiedTime":{"type":"string","description":"The last modified time of the trigger\n"},"qualifier":{"type":"string","description":"The version or alias of the function\n"},"sourceArn":{"type":"string","description":"Trigger Event source ARN\n"},"status":{"type":"string","description":"The state of the trigger\n"},"targetArn":{"type":"string","description":"Resource identity of the function\n"},"triggerConfig":{"type":"string","description":"Trigger configuration. The configuration varies for different types of triggers.\n"},"triggerId":{"type":"string","description":"Trigger ID\n"},"triggerName":{"type":"string","description":"Trigger Name\n"},"triggerType":{"type":"string","description":"The type of the trigger. Currently, the supported types include oss, log, http, timer, tablestore, cdn_events,\u003cspan pulumi-lang-nodejs=\" mnsTopic \" pulumi-lang-dotnet=\" MnsTopic \" pulumi-lang-go=\" mnsTopic \" pulumi-lang-python=\" mns_topic \" pulumi-lang-yaml=\" mnsTopic \" pulumi-lang-java=\" mnsTopic \"\u003e mns_topic \u003c/span\u003eand eventbridge.\n"}},"type":"object","required":["createTime","description","httpTrigger","id","invocationRole","lastModifiedTime","qualifier","sourceArn","status","targetArn","triggerConfig","triggerId","triggerName","triggerType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getV3TriggersTriggerHttpTrigger:getV3TriggersTriggerHttpTrigger":{"properties":{"urlInternet":{"type":"string","description":"The public domain name address. On the Internet, you can access the HTTP Trigger through the HTTP protocol or HTTPS protocol.\n"},"urlIntranet":{"type":"string","description":"The private domain name address. In a VPC, you can access the HTTP Trigger through HTTP or HTTPS.\n"}},"type":"object","required":["urlInternet","urlIntranet"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fc/getZonesZone:getZonesZone":{"properties":{"id":{"type":"string","description":"ID of the zone.\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fnf/getExecutionsExecution:getExecutionsExecution":{"properties":{"executionName":{"type":"string","description":"The name of the execution.\n"},"flowName":{"type":"string","description":"The name of the flow.\n"},"id":{"type":"string","description":"The ID of the Execution. The value formats as `\u003cflow_name\u003e:\u003cexecution_name\u003e`.\n"},"input":{"type":"string","description":"The Input information for this execution.\n"},"output":{"type":"string","description":"The output of the execution.\n"},"startedTime":{"type":"string","description":"The started time of the execution.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"stoppedTime":{"type":"string","description":"The stopped time of the execution.\n"}},"type":"object","required":["executionName","flowName","id","input","output","startedTime","status","stoppedTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fnf/getFlowsFlow:getFlowsFlow":{"properties":{"definition":{"type":"string","description":"The definition of the flow. It must comply with the Flow Definition Language (FDL) syntax.\n"},"description":{"type":"string","description":"The description of the flow.\n"},"flowId":{"type":"string","description":"The unique ID of the flow.\n"},"id":{"type":"string","description":"The ID of the Flow.\n"},"lastModifiedTime":{"type":"string","description":"The time when the flow was last modified.\n"},"name":{"type":"string","description":"The name of the flow. The name must be unique in an Alibaba Cloud account.\n"},"roleArn":{"type":"string","description":"The ARN of the specified RAM role that Serverless Workflow uses to assume the role when Serverless Workflow executes a flow.\n"},"type":{"type":"string","description":"The type of the flow. Set the value to `FDL`.\n"}},"type":"object","required":["definition","description","flowId","id","lastModifiedTime","name","roleArn","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:fnf/getSchedulesSchedule:getSchedulesSchedule":{"properties":{"cronExpression":{"type":"string","description":"The CRON expression of the time-based schedule to be created.\n"},"description":{"type":"string","description":"The description of the time-based schedule to be created.\n"},"enable":{"type":"boolean","description":"Specifies whether to enable the time-based schedule you want to create.\n"},"id":{"type":"string","description":"The ID of the Schedule.\n"},"lastModifiedTime":{"type":"string","description":"The time when the time-based schedule was last updated.\n"},"payload":{"type":"string","description":"The trigger message of the time-based schedule to be created. It must be in JSON object format.\n"},"scheduleId":{"type":"string","description":"The ID of the time-based schedule.\n"},"scheduleName":{"type":"string","description":"The name of the time-based schedule to be created.\n"}},"type":"object","required":["cronExpression","description","enable","id","lastModifiedTime","payload","scheduleId","scheduleName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/AclAclEntry:AclAclEntry":{"properties":{"entry":{"type":"string","description":"The IP address(192.168.XX.XX) or CIDR(10.0.XX.XX/24) block that you want to add to the network ACL.\n"},"entryDescription":{"type":"string","description":"The description of the IP entry. The description must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.),and underscores (_).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["entry","entryDescription"]}}},"alicloud:ga/CustomRoutingEndpointTrafficPolicyPortRange:CustomRoutingEndpointTrafficPolicyPortRange":{"properties":{"fromPort":{"type":"integer","description":"The start port of the port range of the traffic destination. The specified port must fall within the port range of the specified endpoint group.\n"},"toPort":{"type":"integer","description":"The end port of the port range of the traffic destination. The specified port must fall within the port range of the specified endpoint group.\n"}},"type":"object"},"alicloud:ga/EndpointGroupEndpointConfiguration:EndpointGroupEndpointConfiguration":{"properties":{"enableClientipPreservation":{"type":"boolean","description":"Indicates whether client IP addresses are reserved. Default Value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"enableProxyProtocol":{"type":"boolean","description":"Specifies whether to preserve client IP addresses by using the ProxyProtocol module. Default Value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"endpoint":{"type":"string","description":"The IP address or domain name of Endpoint N in the endpoint group.\n"},"subAddress":{"type":"string","description":"The private IP address of the ENI.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`subAddress`\" pulumi-lang-dotnet=\"`SubAddress`\" pulumi-lang-go=\"`subAddress`\" pulumi-lang-python=\"`sub_address`\" pulumi-lang-yaml=\"`subAddress`\" pulumi-lang-java=\"`subAddress`\"\u003e`sub_address`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is set to `ENI`.\n"},"type":{"type":"string","description":"The type of Endpoint N in the endpoint group. Valid values:\n- `Domain`: A custom domain name.\n- `Ip`: A custom IP address.\n- `IpTarget`: (Available since v1.262.0) An Alibaba Cloud public IP address.\n- `PublicIp`: An Alibaba Cloud public IP address.\n- `ECS`: An Elastic Compute Service (ECS) instance.\n- `SLB`: A Classic Load Balancer (CLB) instance.\n- `ALB`: (Available since v1.232.0) An Application Load Balancer (ALB) instance.\n- `NLB`: (Available since v1.232.0) A Network Load Balancer (NLB) instance.\n- `ENI`: (Available since v1.232.0) An Elastic Network Interface (ENI).\n- `OSS`: (Available since v1.232.0) An Object Storage Service (OSS) bucket.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The IDs of vSwitches that are deployed in the VPC.\n"},"weight":{"type":"integer","description":"The weight of Endpoint N in the endpoint group. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e.\n\u003e **NOTE:** If the weight of a terminal node is set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, global acceleration will terminate the distribution of traffic to the terminal node. Please be careful.\n"}},"type":"object","required":["endpoint","type","weight"],"language":{"nodejs":{"requiredOutputs":["enableClientipPreservation","endpoint","subAddress","type","weight"]}}},"alicloud:ga/EndpointGroupPortOverrides:EndpointGroupPortOverrides":{"properties":{"endpointPort":{"type":"integer","description":"Forwarding port.\n"},"listenerPort":{"type":"integer","description":"Listener port.\n"}},"type":"object"},"alicloud:ga/ForwardingRuleRuleAction:ForwardingRuleRuleAction":{"properties":{"forwardGroupConfig":{"$ref":"#/types/alicloud:ga/ForwardingRuleRuleActionForwardGroupConfig:ForwardingRuleRuleActionForwardGroupConfig","description":"Forwarding configuration. See \u003cspan pulumi-lang-nodejs=\"`forwardGroupConfig`\" pulumi-lang-dotnet=\"`ForwardGroupConfig`\" pulumi-lang-go=\"`forwardGroupConfig`\" pulumi-lang-python=\"`forward_group_config`\" pulumi-lang-yaml=\"`forwardGroupConfig`\" pulumi-lang-java=\"`forwardGroupConfig`\"\u003e`forward_group_config`\u003c/span\u003e below.\n\u003e **NOTE:** From version 1.207.0, We recommend that you do not use \u003cspan pulumi-lang-nodejs=\"`forwardGroupConfig`\" pulumi-lang-dotnet=\"`ForwardGroupConfig`\" pulumi-lang-go=\"`forwardGroupConfig`\" pulumi-lang-python=\"`forward_group_config`\" pulumi-lang-yaml=\"`forwardGroupConfig`\" pulumi-lang-java=\"`forwardGroupConfig`\"\u003e`forward_group_config`\u003c/span\u003e, and we recommend that you use the \u003cspan pulumi-lang-nodejs=\"`ruleActionType`\" pulumi-lang-dotnet=\"`RuleActionType`\" pulumi-lang-go=\"`ruleActionType`\" pulumi-lang-python=\"`rule_action_type`\" pulumi-lang-yaml=\"`ruleActionType`\" pulumi-lang-java=\"`ruleActionType`\"\u003e`rule_action_type`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ruleActionValue`\" pulumi-lang-dotnet=\"`RuleActionValue`\" pulumi-lang-go=\"`ruleActionValue`\" pulumi-lang-python=\"`rule_action_value`\" pulumi-lang-yaml=\"`ruleActionValue`\" pulumi-lang-java=\"`ruleActionValue`\"\u003e`rule_action_value`\u003c/span\u003e to configure forwarding actions.\n"},"order":{"type":"integer","description":"Forwarding priority.\n"},"ruleActionType":{"type":"string","description":"The type of the forwarding action. Valid values: `ForwardGroup`, `Redirect`, `FixResponse`, `Rewrite`, `AddHeader`, `RemoveHeader`, `Drop`.\n"},"ruleActionValue":{"type":"string","description":"The value of the forwarding action type. For more information, see [How to use it](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createforwardingrules).\n"}},"type":"object","required":["order","ruleActionType"]},"alicloud:ga/ForwardingRuleRuleActionForwardGroupConfig:ForwardingRuleRuleActionForwardGroupConfig":{"properties":{"serverGroupTuples":{"type":"array","items":{"$ref":"#/types/alicloud:ga/ForwardingRuleRuleActionForwardGroupConfigServerGroupTuple:ForwardingRuleRuleActionForwardGroupConfigServerGroupTuple"},"description":"The information about the endpoint group. See \u003cspan pulumi-lang-nodejs=\"`serverGroupTuples`\" pulumi-lang-dotnet=\"`ServerGroupTuples`\" pulumi-lang-go=\"`serverGroupTuples`\" pulumi-lang-python=\"`server_group_tuples`\" pulumi-lang-yaml=\"`serverGroupTuples`\" pulumi-lang-java=\"`serverGroupTuples`\"\u003e`server_group_tuples`\u003c/span\u003e below.\n"}},"type":"object","required":["serverGroupTuples"]},"alicloud:ga/ForwardingRuleRuleActionForwardGroupConfigServerGroupTuple:ForwardingRuleRuleActionForwardGroupConfigServerGroupTuple":{"properties":{"endpointGroupId":{"type":"string","description":"The ID of the endpoint group.\n"}},"type":"object","required":["endpointGroupId"]},"alicloud:ga/ForwardingRuleRuleCondition:ForwardingRuleRuleCondition":{"properties":{"hostConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:ga/ForwardingRuleRuleConditionHostConfig:ForwardingRuleRuleConditionHostConfig"},"description":"The configuration of the domain name. See \u003cspan pulumi-lang-nodejs=\"`hostConfig`\" pulumi-lang-dotnet=\"`HostConfig`\" pulumi-lang-go=\"`hostConfig`\" pulumi-lang-python=\"`host_config`\" pulumi-lang-yaml=\"`hostConfig`\" pulumi-lang-java=\"`hostConfig`\"\u003e`host_config`\u003c/span\u003e below.\n\u003e **NOTE:** From version 1.231.0, We recommend that you do not use \u003cspan pulumi-lang-nodejs=\"`pathConfig`\" pulumi-lang-dotnet=\"`PathConfig`\" pulumi-lang-go=\"`pathConfig`\" pulumi-lang-python=\"`path_config`\" pulumi-lang-yaml=\"`pathConfig`\" pulumi-lang-java=\"`pathConfig`\"\u003e`path_config`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`hostConfig`\" pulumi-lang-dotnet=\"`HostConfig`\" pulumi-lang-go=\"`hostConfig`\" pulumi-lang-python=\"`host_config`\" pulumi-lang-yaml=\"`hostConfig`\" pulumi-lang-java=\"`hostConfig`\"\u003e`host_config`\u003c/span\u003e, and we recommend that you use the \u003cspan pulumi-lang-nodejs=\"`ruleConditionType`\" pulumi-lang-dotnet=\"`RuleConditionType`\" pulumi-lang-go=\"`ruleConditionType`\" pulumi-lang-python=\"`rule_condition_type`\" pulumi-lang-yaml=\"`ruleConditionType`\" pulumi-lang-java=\"`ruleConditionType`\"\u003e`rule_condition_type`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ruleConditionValue`\" pulumi-lang-dotnet=\"`RuleConditionValue`\" pulumi-lang-go=\"`ruleConditionValue`\" pulumi-lang-python=\"`rule_condition_value`\" pulumi-lang-yaml=\"`ruleConditionValue`\" pulumi-lang-java=\"`ruleConditionValue`\"\u003e`rule_condition_value`\u003c/span\u003e to configure forwarding conditions.\n"},"pathConfig":{"$ref":"#/types/alicloud:ga/ForwardingRuleRuleConditionPathConfig:ForwardingRuleRuleConditionPathConfig","description":"The configuration of the path. See \u003cspan pulumi-lang-nodejs=\"`pathConfig`\" pulumi-lang-dotnet=\"`PathConfig`\" pulumi-lang-go=\"`pathConfig`\" pulumi-lang-python=\"`path_config`\" pulumi-lang-yaml=\"`pathConfig`\" pulumi-lang-java=\"`pathConfig`\"\u003e`path_config`\u003c/span\u003e below.\n"},"ruleConditionType":{"type":"string","description":"The type of the forwarding conditions. Valid values: `Host`, `Path`, `RequestHeader`, `Query`, `Method`, `Cookie`, `SourceIP`. **NOTE:** From version 1.231.0, \u003cspan pulumi-lang-nodejs=\"`ruleConditionType`\" pulumi-lang-dotnet=\"`RuleConditionType`\" pulumi-lang-go=\"`ruleConditionType`\" pulumi-lang-python=\"`rule_condition_type`\" pulumi-lang-yaml=\"`ruleConditionType`\" pulumi-lang-java=\"`ruleConditionType`\"\u003e`rule_condition_type`\u003c/span\u003e can be set to `RequestHeader`, `Query`, `Method`, `Cookie`, `SourceIP`.\n"},"ruleConditionValue":{"type":"string","description":"The value of the forwarding condition type. For more information, see [How to use it](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createforwardingrules).\n"}},"type":"object","required":["ruleConditionType"]},"alicloud:ga/ForwardingRuleRuleConditionHostConfig:ForwardingRuleRuleConditionHostConfig":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The domain name is 3-128 characters long, which can contain letters, numbers, dashes (-) and width period (.), and supports the use of asterisk (*) and width question mark (?) as wildcard characters.\n"}},"type":"object"},"alicloud:ga/ForwardingRuleRuleConditionPathConfig:ForwardingRuleRuleConditionPathConfig":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The domain name is 3-128 characters long, which can contain letters, numbers, dashes (-) and width period (.), and supports the use of asterisk (*) and width question mark (?) as wildcard characters.\n"}},"type":"object"},"alicloud:ga/ListenerCertificate:ListenerCertificate":{"properties":{"id":{"type":"string","description":"The id of the certificate.\n"}},"type":"object"},"alicloud:ga/ListenerForwardedForConfig:ListenerForwardedForConfig":{"properties":{"forwardedForGaApEnabled":{"type":"boolean","description":"Specifies whether to use the GA-AP header to retrieve the information about acceleration regions. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"forwardedForGaIdEnabled":{"type":"boolean","description":"Specifies whether to use the GA-ID header to retrieve the ID of the GA instance. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"forwardedForPortEnabled":{"type":"boolean","description":"Specifies whether to use the GA-X-Forward-Port header to retrieve the listener ports of the GA instance. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"forwardedForProtoEnabled":{"type":"boolean","description":"Specifies whether to use the GA-X-Forward-Proto header to retrieve the listener protocol of the GA instance. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"realIpEnabled":{"type":"boolean","description":"Specifies whether to use the X-Real-IP header to retrieve client IP addresses. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"}},"type":"object"},"alicloud:ga/ListenerPortRange:ListenerPortRange":{"properties":{"fromPort":{"type":"integer","description":"The initial listening port used to receive requests and forward them to terminal nodes.\n"},"toPort":{"type":"integer","description":"The end listening port used to receive requests and forward them to terminal nodes.\n"}},"type":"object","required":["fromPort","toPort"]},"alicloud:ga/getAcceleratorSpareIpAttachmentsAttachment:getAcceleratorSpareIpAttachmentsAttachment":{"properties":{"acceleratorId":{"type":"string","description":"The ID of the global acceleration instance.\n"},"id":{"type":"string","description":"The ID of the Accelerator Spare Ip Attachment.\n"},"spareIp":{"type":"string","description":"The standby IP address of CNAME. When the acceleration area is abnormal, the traffic is switched to the standby IP address.\n"},"status":{"type":"string","description":"The status of the standby CNAME IP address. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inuse`\" pulumi-lang-dotnet=\"`Inuse`\" pulumi-lang-go=\"`inuse`\" pulumi-lang-python=\"`inuse`\" pulumi-lang-yaml=\"`inuse`\" pulumi-lang-java=\"`inuse`\"\u003e`inuse`\u003c/span\u003e.\n"}},"type":"object","required":["acceleratorId","id","spareIp","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getAcceleratorsAccelerator:getAcceleratorsAccelerator":{"properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance to query.\n"},"acceleratorName":{"type":"string","description":"The Name of the GA instance.\n"},"basicBandwidthPackages":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getAcceleratorsAcceleratorBasicBandwidthPackage:getAcceleratorsAcceleratorBasicBandwidthPackage"},"description":"Details of the basic bandwidth package bound to the global acceleration instance.\n"},"cenId":{"type":"string","description":"The cloud enterprise network instance ID bound to the global acceleration instance.\n"},"crossDomainBandwidthPackages":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getAcceleratorsAcceleratorCrossDomainBandwidthPackage:getAcceleratorsAcceleratorCrossDomainBandwidthPackage"},"description":"Details of the cross-domain acceleration package bound to the global acceleration instance.\n"},"ddosId":{"type":"string","description":"DDoS high-defense instance ID that is unbound from the global acceleration instance.\n"},"description":{"type":"string","description":"Descriptive information of the global acceleration instance.\n"},"dnsName":{"type":"string","description":"CNAME address assigned by Global Acceleration instance.\n"},"expiredTime":{"type":"integer","description":"Time when the global acceleration instance expires.\n"},"id":{"type":"string","description":"The ID of the Accelerator.\n"},"paymentType":{"type":"string","description":"The billing method of the GA instance. Valid values: `POSTPAY`, `PREPAY`.\n"},"secondDnsName":{"type":"string","description":"CNAME of the Global Acceleration Linkage DDoS High Defense Instance.\n"},"spec":{"type":"string","description":"The instance type of the GA instance.\n"},"status":{"type":"string","description":"The status of the GA instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`binding`\" pulumi-lang-dotnet=\"`Binding`\" pulumi-lang-go=\"`binding`\" pulumi-lang-python=\"`binding`\" pulumi-lang-yaml=\"`binding`\" pulumi-lang-java=\"`binding`\"\u003e`binding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e, `finacialLocked`, \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unbinding`\" pulumi-lang-dotnet=\"`Unbinding`\" pulumi-lang-go=\"`unbinding`\" pulumi-lang-python=\"`unbinding`\" pulumi-lang-yaml=\"`unbinding`\" pulumi-lang-java=\"`unbinding`\"\u003e`unbinding`\u003c/span\u003e.\n"}},"type":"object","required":["acceleratorId","acceleratorName","basicBandwidthPackages","cenId","crossDomainBandwidthPackages","ddosId","description","dnsName","expiredTime","id","paymentType","secondDnsName","spec","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getAcceleratorsAcceleratorBasicBandwidthPackage:getAcceleratorsAcceleratorBasicBandwidthPackage":{"properties":{"bandwidth":{"type":"integer","description":"Bandwidth value of cross-domain acceleration package.\n"},"bandwidthType":{"type":"string","description":"The bandwidth type of the basic bandwidth package.\n"},"instanceId":{"type":"string","description":"Instance ID of the cross-domain acceleration package.\n"}},"type":"object","required":["bandwidth","bandwidthType","instanceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getAcceleratorsAcceleratorCrossDomainBandwidthPackage:getAcceleratorsAcceleratorCrossDomainBandwidthPackage":{"properties":{"bandwidth":{"type":"integer","description":"Bandwidth value of cross-domain acceleration package.\n"},"instanceId":{"type":"string","description":"Instance ID of the cross-domain acceleration package.\n"}},"type":"object","required":["bandwidth","instanceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getAclsAcl:getAclsAcl":{"properties":{"aclEntries":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getAclsAclAclEntry:getAclsAclAclEntry"},"description":"The entries of the Acl.\n"},"aclId":{"type":"string","description":"The  ID of the Acl.\n"},"aclName":{"type":"string","description":"The name of the acl.\n"},"addressIpVersion":{"type":"string","description":"The address ip version.\n"},"id":{"type":"string","description":"The ID of the Acl. Its value is same as \u003cspan pulumi-lang-nodejs=\"`aclId`\" pulumi-lang-dotnet=\"`AclId`\" pulumi-lang-go=\"`aclId`\" pulumi-lang-python=\"`acl_id`\" pulumi-lang-yaml=\"`aclId`\" pulumi-lang-java=\"`aclId`\"\u003e`acl_id`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e.\n"}},"type":"object","required":["aclEntries","aclId","aclName","addressIpVersion","id","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getAclsAclAclEntry:getAclsAclAclEntry":{"properties":{"entry":{"type":"string","description":"The IP entry that you want to add to the ACL.\n"},"entryDescription":{"type":"string","description":"The description of the IP entry.\n"}},"type":"object","required":["entry","entryDescription"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getAdditionalCertificatesCertificate:getAdditionalCertificatesCertificate":{"properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n"},"certificateId":{"type":"string","description":"The Certificate ID.\n"},"domain":{"type":"string","description":"The domain name specified by the certificate.\n"},"id":{"type":"string","description":"The ID of the Additional Certificate. The value formats as `\u003caccelerator_id\u003e:\u003clistener_id\u003e:\u003cdomain\u003e`.\n"},"listenerId":{"type":"string","description":"The ID of the listener. Only HTTPS listeners support this parameter.\n"}},"type":"object","required":["acceleratorId","certificateId","domain","id","listenerId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getBandwidthPackagesPackage:getBandwidthPackagesPackage":{"properties":{"bandwidth":{"type":"integer","description":"The bandwidth value of bandwidth packet.\n"},"bandwidthPackageId":{"type":"string","description":"The Resource ID of the bandwidth.\n"},"bandwidthPackageName":{"type":"string","description":"The name of the bandwidth packet.\n"},"bandwidthType":{"type":"string","description":"The bandwidth type of the bandwidth.\n"},"cbnGeographicRegionIda":{"type":"string","description":"Interworking area A of cross domain acceleration package. Only international stations support returning this parameter.\n"},"cbnGeographicRegionIdb":{"type":"string","description":"Interworking area B of cross domain acceleration package. Only international stations support returning this parameter.\n"},"description":{"type":"string","description":"The description of bandwidth package.\n"},"expiredTime":{"type":"string","description":"Bandwidth package expiration time.\n"},"id":{"type":"string","description":"The ID of the Bandwidth Package.\n"},"paymentType":{"type":"string","description":"The payment type of the bandwidth.\n"},"status":{"type":"string","description":"The status of the bandwidth plan. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`binded`\" pulumi-lang-dotnet=\"`Binded`\" pulumi-lang-go=\"`binded`\" pulumi-lang-python=\"`binded`\" pulumi-lang-yaml=\"`binded`\" pulumi-lang-java=\"`binded`\"\u003e`binded`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`binding`\" pulumi-lang-dotnet=\"`Binding`\" pulumi-lang-go=\"`binding`\" pulumi-lang-python=\"`binding`\" pulumi-lang-yaml=\"`binding`\" pulumi-lang-java=\"`binding`\"\u003e`binding`\u003c/span\u003e, `finacialLocked`, \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unbinding`\" pulumi-lang-dotnet=\"`Unbinding`\" pulumi-lang-go=\"`unbinding`\" pulumi-lang-python=\"`unbinding`\" pulumi-lang-yaml=\"`unbinding`\" pulumi-lang-java=\"`unbinding`\"\u003e`unbinding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`updating`\" pulumi-lang-dotnet=\"`Updating`\" pulumi-lang-go=\"`updating`\" pulumi-lang-python=\"`updating`\" pulumi-lang-yaml=\"`updating`\" pulumi-lang-java=\"`updating`\"\u003e`updating`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of the bandwidth plan. Valid values: `Basic`, `CrossDomain`.\n"}},"type":"object","required":["bandwidth","bandwidthPackageId","bandwidthPackageName","bandwidthType","cbnGeographicRegionIda","cbnGeographicRegionIdb","description","expiredTime","id","paymentType","status","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getBasicAccelerateIpEndpointRelationsRelation:getBasicAccelerateIpEndpointRelationsRelation":{"properties":{"accelerateIpId":{"type":"string","description":"The ID of the Basic Accelerate IP.\n"},"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator Basic Accelerator instance.\n"},"basicEndpointName":{"type":"string","description":"The name of the Basic Endpoint.\n"},"endpointAddress":{"type":"string","description":"The address of the Basic Endpoint.\n"},"endpointId":{"type":"string","description":"The ID of the Basic Endpoint.\n"},"endpointSubAddress":{"type":"string","description":"The sub address of the Basic Endpoint.\n"},"endpointSubAddressType":{"type":"string","description":"The sub address type of the Basic Endpoint.\n"},"endpointType":{"type":"string","description":"The type of the Basic Endpoint.\n"},"endpointZoneId":{"type":"string","description":"The zone id of the Basic Endpoint.\n"},"id":{"type":"string","description":"The id of the Global Accelerator Basic Accelerate Ip Endpoint Relation. It formats as `\u003caccelerator_id\u003e:\u003caccelerate_ip_id\u003e:\u003cendpoint_id\u003e`.\n"},"ipAddress":{"type":"string","description":"The address of the Basic Accelerate IP.\n"},"status":{"type":"string","description":"The status of the Global Accelerator Basic Accelerate Ip Endpoint Relation. Valid Value: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e.\n"}},"type":"object","required":["accelerateIpId","acceleratorId","basicEndpointName","endpointAddress","endpointId","endpointSubAddress","endpointSubAddressType","endpointType","endpointZoneId","id","ipAddress","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getBasicAccelerateIpsIp:getBasicAccelerateIpsIp":{"properties":{"accelerateIpAddress":{"type":"string","description":"The address of the Basic Accelerate IP.\n"},"accelerateIpId":{"type":"string","description":"The id of the Basic Accelerate IP.\n"},"acceleratorId":{"type":"string","description":"The id of the Global Accelerator Basic Accelerator instance.\n"},"id":{"type":"string","description":"The id of the Basic Accelerate IP.\n"},"ipSetId":{"type":"string","description":"The ID of the Basic Ip Set.\n"},"status":{"type":"string","description":"The status of the Global Accelerator Basic Accelerate IP instance. Valid Value: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`binding`\" pulumi-lang-dotnet=\"`Binding`\" pulumi-lang-go=\"`binding`\" pulumi-lang-python=\"`binding`\" pulumi-lang-yaml=\"`binding`\" pulumi-lang-java=\"`binding`\"\u003e`binding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bound`\" pulumi-lang-dotnet=\"`Bound`\" pulumi-lang-go=\"`bound`\" pulumi-lang-python=\"`bound`\" pulumi-lang-yaml=\"`bound`\" pulumi-lang-java=\"`bound`\"\u003e`bound`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unbinding`\" pulumi-lang-dotnet=\"`Unbinding`\" pulumi-lang-go=\"`unbinding`\" pulumi-lang-python=\"`unbinding`\" pulumi-lang-yaml=\"`unbinding`\" pulumi-lang-java=\"`unbinding`\"\u003e`unbinding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e.\n"}},"type":"object","required":["accelerateIpAddress","accelerateIpId","acceleratorId","id","ipSetId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getBasicAcceleratorsAccelerator:getBasicAcceleratorsAccelerator":{"properties":{"bandwidthBillingType":{"type":"string","description":"The bandwidth billing method. Valid values:\n- `BandwidthPackage`: billed based on bandwidth plans.\n- `CDT`: billed through Cloud Data Transfer (CDT) and based on data transfer.\n- `CDT95`: billed through CDT and based on the 95th percentile bandwidth. This bandwidth billing method is available only for users that are included in the whitelist.\n"},"basicAcceleratorId":{"type":"string","description":"The id of the Global Accelerator Basic Accelerator instance.\n"},"basicAcceleratorName":{"type":"string","description":"The name of the Global Accelerator Basic Accelerator instance.\n"},"basicBandwidthPackages":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getBasicAcceleratorsAcceleratorBasicBandwidthPackage:getBasicAcceleratorsAcceleratorBasicBandwidthPackage"},"description":"The details about the basic bandwidth plan that is associated with the Global Accelerator Basic Accelerator instance.\n"},"basicEndpointGroupId":{"type":"string","description":"The ID of the endpoint group that is associated with the Global Accelerator Basic Accelerator instance.\n"},"basicIpSetId":{"type":"string","description":"The ID of the acceleration region.\n"},"createTime":{"type":"integer","description":"The timestamp that indicates when the Global Accelerator Basic Accelerator instance was created.\n"},"crossDomainBandwidthPackages":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getBasicAcceleratorsAcceleratorCrossDomainBandwidthPackage:getBasicAcceleratorsAcceleratorCrossDomainBandwidthPackage"},"description":"The details about the cross-region acceleration bandwidth plan that is associated with the Global Accelerator Basic Accelerator instance. **NOTE:** This array is returned only for Global Accelerator Basic Accelerator instances that are created on the International site.\n"},"description":{"type":"string","description":"The description of the Global Accelerator Basic Accelerator instance.\n"},"expiredTime":{"type":"integer","description":"The timestamp that indicates when the Global Accelerator Basic Accelerator instance was expired.\n"},"id":{"type":"string","description":"The id of the Global Accelerator Basic Accelerator.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the Global Accelerator Basic Accelerator instance.\n"},"regionId":{"type":"string","description":"The ID of the region where the Global Accelerator Basic Accelerator instance is deployed.\n"},"status":{"type":"string","description":"The status of the Global Accelerator Basic Accelerator instance. Valid Value: \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`binding`\" pulumi-lang-dotnet=\"`Binding`\" pulumi-lang-go=\"`binding`\" pulumi-lang-python=\"`binding`\" pulumi-lang-yaml=\"`binding`\" pulumi-lang-java=\"`binding`\"\u003e`binding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unbinding`\" pulumi-lang-dotnet=\"`Unbinding`\" pulumi-lang-go=\"`unbinding`\" pulumi-lang-python=\"`unbinding`\" pulumi-lang-yaml=\"`unbinding`\" pulumi-lang-java=\"`unbinding`\"\u003e`unbinding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e, `finacialLocked`.\n"}},"type":"object","required":["bandwidthBillingType","basicAcceleratorId","basicAcceleratorName","basicBandwidthPackages","basicEndpointGroupId","basicIpSetId","createTime","crossDomainBandwidthPackages","description","expiredTime","id","instanceChargeType","regionId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getBasicAcceleratorsAcceleratorBasicBandwidthPackage:getBasicAcceleratorsAcceleratorBasicBandwidthPackage":{"properties":{"bandwidth":{"type":"integer","description":"The bandwidth value of the cross-region acceleration bandwidth plan. Unit: Mbit/s.\n"},"bandwidthType":{"type":"string","description":"The type of the bandwidth that is provided by the basic bandwidth plan.\n"},"instanceId":{"type":"string","description":"The ID of the cross-region acceleration bandwidth plan.\n"}},"type":"object","required":["bandwidth","bandwidthType","instanceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getBasicAcceleratorsAcceleratorCrossDomainBandwidthPackage:getBasicAcceleratorsAcceleratorCrossDomainBandwidthPackage":{"properties":{"bandwidth":{"type":"integer","description":"The bandwidth value of the cross-region acceleration bandwidth plan. Unit: Mbit/s.\n"},"instanceId":{"type":"string","description":"The ID of the cross-region acceleration bandwidth plan.\n"}},"type":"object","required":["bandwidth","instanceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getBasicEndpointsEndpoint:getBasicEndpointsEndpoint":{"properties":{"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator Basic Accelerator instance.\n"},"basicEndpointName":{"type":"string","description":"The name of the Basic Endpoint.\n"},"endpointAddress":{"type":"string","description":"The address of the Basic Endpoint.\n"},"endpointGroupId":{"type":"string","description":"The ID of the Basic Endpoint Group.\n"},"endpointId":{"type":"string","description":"The ID of the Basic Endpoint.\n"},"endpointSubAddress":{"type":"string","description":"The sub address of the Basic Endpoint.\n"},"endpointSubAddressType":{"type":"string","description":"The sub address type of the Basic Endpoint.\n"},"endpointType":{"type":"string","description":"The type of the Basic Endpoint. Valid values: `ENI`, `SLB`, `ECS` and `NLB`.\n"},"endpointZoneId":{"type":"string","description":"The zone id of the Basic Endpoint.\n"},"id":{"type":"string","description":"The id of the Global Accelerator Basic Endpoint. It formats as `\u003cendpoint_group_id\u003e:\u003cendpoint_id\u003e`.\n"},"status":{"type":"string","description":"The status of the Global Accelerator Basic Endpoint. Valid Value: \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`updating`\" pulumi-lang-dotnet=\"`Updating`\" pulumi-lang-go=\"`updating`\" pulumi-lang-python=\"`updating`\" pulumi-lang-yaml=\"`updating`\" pulumi-lang-java=\"`updating`\"\u003e`updating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`binding`\" pulumi-lang-dotnet=\"`Binding`\" pulumi-lang-go=\"`binding`\" pulumi-lang-python=\"`binding`\" pulumi-lang-yaml=\"`binding`\" pulumi-lang-java=\"`binding`\"\u003e`binding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unbinding`\" pulumi-lang-dotnet=\"`Unbinding`\" pulumi-lang-go=\"`unbinding`\" pulumi-lang-python=\"`unbinding`\" pulumi-lang-yaml=\"`unbinding`\" pulumi-lang-java=\"`unbinding`\"\u003e`unbinding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bound`\" pulumi-lang-dotnet=\"`Bound`\" pulumi-lang-go=\"`bound`\" pulumi-lang-python=\"`bound`\" pulumi-lang-yaml=\"`bound`\" pulumi-lang-java=\"`bound`\"\u003e`bound`\u003c/span\u003e.\n"}},"type":"object","required":["acceleratorId","basicEndpointName","endpointAddress","endpointGroupId","endpointId","endpointSubAddress","endpointSubAddressType","endpointType","endpointZoneId","id","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getCustomRoutingEndpointGroupDestinationsCustomRoutingEndpointGroupDestination:getCustomRoutingEndpointGroupDestinationsCustomRoutingEndpointGroupDestination":{"properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n"},"customRoutingEndpointGroupDestinationId":{"type":"string","description":"The ID of the Custom Routing Endpoint Group Destination.\n"},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group.\n"},"fromPort":{"type":"integer","description":"The start port of the backend service port range of the endpoint group. The \u003cspan pulumi-lang-nodejs=\"`fromPort`\" pulumi-lang-dotnet=\"`FromPort`\" pulumi-lang-go=\"`fromPort`\" pulumi-lang-python=\"`from_port`\" pulumi-lang-yaml=\"`fromPort`\" pulumi-lang-java=\"`fromPort`\"\u003e`from_port`\u003c/span\u003e value must be smaller than or equal to the \u003cspan pulumi-lang-nodejs=\"`toPort`\" pulumi-lang-dotnet=\"`ToPort`\" pulumi-lang-go=\"`toPort`\" pulumi-lang-python=\"`to_port`\" pulumi-lang-yaml=\"`toPort`\" pulumi-lang-java=\"`toPort`\"\u003e`to_port`\u003c/span\u003e value. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65499`\" pulumi-lang-dotnet=\"`65499`\" pulumi-lang-go=\"`65499`\" pulumi-lang-python=\"`65499`\" pulumi-lang-yaml=\"`65499`\" pulumi-lang-java=\"`65499`\"\u003e`65499`\u003c/span\u003e.\n"},"id":{"type":"string","description":"The id of the Global Accelerator Custom Routing Endpoint Group Destination. It formats as `\u003cendpoint_group_id\u003e:\u003ccustom_routing_endpoint_group_destination_id\u003e`.\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n"},"protocols":{"type":"array","items":{"type":"string"},"description":"The backend service protocol of the endpoint group. Valid values: `TCP`, `UDP`, `TCP, UDP`.\n"},"toPort":{"type":"integer","description":"The end port of the backend service port range of the endpoint group. The \u003cspan pulumi-lang-nodejs=\"`fromPort`\" pulumi-lang-dotnet=\"`FromPort`\" pulumi-lang-go=\"`fromPort`\" pulumi-lang-python=\"`from_port`\" pulumi-lang-yaml=\"`fromPort`\" pulumi-lang-java=\"`fromPort`\"\u003e`from_port`\u003c/span\u003e value must be smaller than or equal to the \u003cspan pulumi-lang-nodejs=\"`toPort`\" pulumi-lang-dotnet=\"`ToPort`\" pulumi-lang-go=\"`toPort`\" pulumi-lang-python=\"`to_port`\" pulumi-lang-yaml=\"`toPort`\" pulumi-lang-java=\"`toPort`\"\u003e`to_port`\u003c/span\u003e value. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65499`\" pulumi-lang-dotnet=\"`65499`\" pulumi-lang-go=\"`65499`\" pulumi-lang-python=\"`65499`\" pulumi-lang-yaml=\"`65499`\" pulumi-lang-java=\"`65499`\"\u003e`65499`\u003c/span\u003e.\n"}},"type":"object","required":["acceleratorId","customRoutingEndpointGroupDestinationId","endpointGroupId","fromPort","id","listenerId","protocols","toPort"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getCustomRoutingEndpointGroupsGroup:getCustomRoutingEndpointGroupsGroup":{"properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n"},"customRoutingEndpointGroupName":{"type":"string","description":"The name of the endpoint group.\n"},"description":{"type":"string","description":"The description of the endpoint group.\n"},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group.\n"},"endpointGroupIpLists":{"type":"array","items":{"type":"string"},"description":"The list of endpoint group IP addresses.\n"},"endpointGroupRegion":{"type":"string","description":"The ID of the region where the endpoint group is created.\n"},"endpointGroupUnconfirmedIpLists":{"type":"array","items":{"type":"string"},"description":"The endpoint group IP addresses to be confirmed after the GA instance is upgraded.\n"},"id":{"type":"string","description":"The id of the Custom Routing Endpoint Group.\n"},"listenerId":{"type":"string","description":"The ID of the custom routing listener.\n"},"status":{"type":"string","description":"The status of the endpoint group. Valid Values: \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`updating`\" pulumi-lang-dotnet=\"`Updating`\" pulumi-lang-go=\"`updating`\" pulumi-lang-python=\"`updating`\" pulumi-lang-yaml=\"`updating`\" pulumi-lang-java=\"`updating`\"\u003e`updating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e.\n"}},"type":"object","required":["acceleratorId","customRoutingEndpointGroupName","description","endpointGroupId","endpointGroupIpLists","endpointGroupRegion","endpointGroupUnconfirmedIpLists","id","listenerId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getCustomRoutingEndpointTrafficPoliciesCustomRoutingEndpointTrafficPolicy:getCustomRoutingEndpointTrafficPoliciesCustomRoutingEndpointTrafficPolicy":{"properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance to which the traffic policies belong.\n"},"address":{"type":"string","description":"The IP addresses of the traffic policies.\n"},"customRoutingEndpointTrafficPolicyId":{"type":"string","description":"The ID of the Custom Routing Endpoint Traffic Policy.\n"},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group to which the traffic policies belong.\n"},"endpointId":{"type":"string","description":"The ID of the endpoint to which the traffic policies belong.\n"},"id":{"type":"string","description":"The id of the Global Accelerator Custom Routing Endpoint Traffic Policy. It formats as `\u003cendpoint_id\u003e:\u003ccustom_routing_endpoint_traffic_policy_id\u003e`.\n"},"listenerId":{"type":"string","description":"The ID of the listener to which the traffic policies belong.\n"},"portRanges":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getCustomRoutingEndpointTrafficPoliciesCustomRoutingEndpointTrafficPolicyPortRange:getCustomRoutingEndpointTrafficPoliciesCustomRoutingEndpointTrafficPolicyPortRange"},"description":"The port range of the traffic policy.\n"}},"type":"object","required":["acceleratorId","address","customRoutingEndpointTrafficPolicyId","endpointGroupId","endpointId","id","listenerId","portRanges"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getCustomRoutingEndpointTrafficPoliciesCustomRoutingEndpointTrafficPolicyPortRange:getCustomRoutingEndpointTrafficPoliciesCustomRoutingEndpointTrafficPolicyPortRange":{"properties":{"fromPort":{"type":"integer","description":"The first port of the port range.\n"},"toPort":{"type":"integer","description":"The last port of the port range.\n"}},"type":"object","required":["fromPort","toPort"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getCustomRoutingEndpointsCustomRoutingEndpoint:getCustomRoutingEndpointsCustomRoutingEndpoint":{"properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n"},"customRoutingEndpointId":{"type":"string","description":"The ID of the Custom Routing Endpoint.\n"},"endpoint":{"type":"string","description":"The ID of the endpoint (vSwitch).\n"},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group.\n"},"id":{"type":"string","description":"The id of the Global Accelerator Custom Routing Endpoint. It formats as `\u003cendpoint_group_id\u003e:\u003ccustom_routing_endpoint_id\u003e`.\n"},"listenerId":{"type":"string","description":"The ID of the custom routing listener.\n"},"trafficToEndpointPolicy":{"type":"string","description":"The access policy of traffic for the specified endpoint.\n"},"type":{"type":"string","description":"The backend service type of the endpoint.\n"}},"type":"object","required":["acceleratorId","customRoutingEndpointId","endpoint","endpointGroupId","id","listenerId","trafficToEndpointPolicy","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getCustomRoutingPortMappingsCustomRoutingPortMapping:getCustomRoutingPortMappingsCustomRoutingPortMapping":{"properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n"},"acceleratorPort":{"type":"integer","description":"The acceleration port.\n"},"destinationSocketAddresses":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getCustomRoutingPortMappingsCustomRoutingPortMappingDestinationSocketAddress:getCustomRoutingPortMappingsCustomRoutingPortMappingDestinationSocketAddress"},"description":"The service IP address and port of the backend instance.\n"},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group.\n"},"endpointGroupRegion":{"type":"string","description":"The ID of the region in which the endpoint group resides.\n"},"endpointId":{"type":"string","description":"The ID of the endpoint.\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n"},"protocols":{"type":"array","items":{"type":"string"},"description":"The protocol of the backend service.\n"},"status":{"type":"string","description":"The access policy of traffic for the backend instance. Valid Values: \u003cspan pulumi-lang-nodejs=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deny`\" pulumi-lang-dotnet=\"`Deny`\" pulumi-lang-go=\"`deny`\" pulumi-lang-python=\"`deny`\" pulumi-lang-yaml=\"`deny`\" pulumi-lang-java=\"`deny`\"\u003e`deny`\u003c/span\u003e.\n"},"vswitch":{"type":"string","description":"The ID of the endpoint (vSwitch).\n"}},"type":"object","required":["acceleratorId","acceleratorPort","destinationSocketAddresses","endpointGroupId","endpointGroupRegion","endpointId","listenerId","protocols","status","vswitch"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getCustomRoutingPortMappingsCustomRoutingPortMappingDestinationSocketAddress:getCustomRoutingPortMappingsCustomRoutingPortMappingDestinationSocketAddress":{"properties":{"ipAddress":{"type":"string","description":"The service IP address of the backend instance.\n"},"port":{"type":"integer","description":"The service port of the backend instance.\n"}},"type":"object","required":["ipAddress","port"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getDomainsDomain:getDomainsDomain":{"properties":{"acceleratorId":{"type":"string","description":"The ID of the global acceleration instance.\n"},"domain":{"type":"string","description":"The accelerated domain name to be added. only top-level domain names are supported, such as 'example.com'.\n"},"id":{"type":"string","description":"The ID of the Ga Domain.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`illegal`\" pulumi-lang-dotnet=\"`Illegal`\" pulumi-lang-go=\"`illegal`\" pulumi-lang-python=\"`illegal`\" pulumi-lang-yaml=\"`illegal`\" pulumi-lang-java=\"`illegal`\"\u003e`illegal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unknown`\" pulumi-lang-dotnet=\"`Unknown`\" pulumi-lang-go=\"`unknown`\" pulumi-lang-python=\"`unknown`\" pulumi-lang-yaml=\"`unknown`\" pulumi-lang-java=\"`unknown`\"\u003e`unknown`\u003c/span\u003e.\n"}},"type":"object","required":["acceleratorId","domain","id","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getEndpointGroupIpAddressCidrBlocksEndpointGroupIpAddressCidrBlock:getEndpointGroupIpAddressCidrBlocksEndpointGroupIpAddressCidrBlock":{"properties":{"endpointGroupRegion":{"type":"string","description":"The region ID of the endpoint group.\n"},"ipAddressCidrBlocks":{"type":"array","items":{"type":"string"},"description":"The CIDR blocks.\n"},"status":{"type":"string","description":"The status of the list of endpoint group ip address cidr blocks.\n"}},"type":"object","required":["endpointGroupRegion","ipAddressCidrBlocks","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getEndpointGroupsGroup:getEndpointGroupsGroup":{"properties":{"description":{"type":"string","description":"The description of the endpoint group.\n"},"endpointConfigurations":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getEndpointGroupsGroupEndpointConfiguration:getEndpointGroupsGroupEndpointConfiguration"},"description":"The endpointConfigurations of the endpoint group.\n"},"endpointGroupId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" endpointGroupId \" pulumi-lang-dotnet=\" EndpointGroupId \" pulumi-lang-go=\" endpointGroupId \" pulumi-lang-python=\" endpoint_group_id \" pulumi-lang-yaml=\" endpointGroupId \" pulumi-lang-java=\" endpointGroupId \"\u003e endpoint_group_id \u003c/span\u003eof the Endpoint Group.\n"},"endpointGroupIpLists":{"type":"array","items":{"type":"string"},"description":"(Available since v1.213.1) The list of endpoint group IP addresses.\n"},"endpointGroupRegion":{"type":"string","description":"The ID of the region where the endpoint group is deployed.\n"},"healthCheckIntervalSeconds":{"type":"integer","description":"The interval between two consecutive health checks. Unit: seconds.\n"},"healthCheckPath":{"type":"string","description":"The path specified as the destination of the targets for health checks.\n"},"healthCheckPort":{"type":"integer","description":"The port that is used for health checks.\n"},"healthCheckProtocol":{"type":"string","description":"The protocol that is used to connect to the targets for health checks.\n"},"id":{"type":"string","description":"The ID of the Endpoint Group.\n"},"listenerId":{"type":"string","description":"The ID of the listener that is associated with the endpoint group.\n"},"name":{"type":"string","description":"The name of the endpoint group.\n"},"portOverrides":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getEndpointGroupsGroupPortOverride:getEndpointGroupsGroupPortOverride"},"description":"Mapping between listening port and forwarding port of boarding point.\n"},"status":{"type":"string","description":"The status of the endpoint group. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`creating`\" pulumi-lang-dotnet=\"`Creating`\" pulumi-lang-go=\"`creating`\" pulumi-lang-python=\"`creating`\" pulumi-lang-yaml=\"`creating`\" pulumi-lang-java=\"`creating`\"\u003e`creating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e.\n"},"thresholdCount":{"type":"integer","description":"The number of consecutive failed heath checks that must occur before the endpoint is deemed unhealthy.\n"},"trafficPercentage":{"type":"integer","description":"The weight of the endpoint group when the corresponding listener is associated with multiple endpoint groups.\n"}},"type":"object","required":["description","endpointConfigurations","endpointGroupId","endpointGroupIpLists","endpointGroupRegion","healthCheckIntervalSeconds","healthCheckPath","healthCheckPort","healthCheckProtocol","id","listenerId","name","portOverrides","status","thresholdCount","trafficPercentage"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getEndpointGroupsGroupEndpointConfiguration:getEndpointGroupsGroupEndpointConfiguration":{"properties":{"enableClientipPreservation":{"type":"boolean","description":"Indicates whether client IP addresses are reserved.\n"},"endpoint":{"type":"string","description":"The IP address or domain name of Endpoint N in the endpoint group.\n"},"probePort":{"type":"integer","description":"Probe Port.\n"},"probeProtocol":{"type":"string","description":"Probe Protocol.\n"},"type":{"type":"string","description":"The type of Endpoint N in the endpoint group.\n"},"weight":{"type":"integer","description":"The weight of Endpoint N in the endpoint group.\n"}},"type":"object","required":["enableClientipPreservation","endpoint","probePort","probeProtocol","type","weight"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getEndpointGroupsGroupPortOverride:getEndpointGroupsGroupPortOverride":{"properties":{"endpointPort":{"type":"integer","description":"Forwarding port.\n"},"listenerPort":{"type":"integer","description":"Listener port.\n"}},"type":"object","required":["endpointPort","listenerPort"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getForwardingRulesForwardingRule:getForwardingRulesForwardingRule":{"properties":{"forwardingRuleId":{"type":"string","description":"Forwarding Policy ID.\n"},"forwardingRuleName":{"type":"string","description":"Forwarding policy name. The length of the name is 2-128 English or Chinese characters.\n"},"forwardingRuleStatus":{"type":"string","description":"Forwarding Policy Status.\n"},"id":{"type":"string","description":"The resource ID in terraform of Forwarding Rule.\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n"},"priority":{"type":"integer","description":"Forwarding policy priority.\n"},"ruleActions":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getForwardingRulesForwardingRuleRuleAction:getForwardingRulesForwardingRuleRuleAction"},"description":"The IP protocol used by the GA instance.\n"},"ruleConditions":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getForwardingRulesForwardingRuleRuleCondition:getForwardingRulesForwardingRuleRuleCondition"},"description":"Forward action.\n"}},"type":"object","required":["forwardingRuleId","forwardingRuleName","forwardingRuleStatus","id","listenerId","priority","ruleActions","ruleConditions"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getForwardingRulesForwardingRuleRuleAction:getForwardingRulesForwardingRuleRuleAction":{"properties":{"forwardGroupConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getForwardingRulesForwardingRuleRuleActionForwardGroupConfig:getForwardingRulesForwardingRuleRuleActionForwardGroupConfig"},"description":"Forwarding configuration.\n"},"order":{"type":"integer","description":"Forwarding priority.\n"},"ruleActionType":{"type":"string","description":"Forward action type.\n"}},"type":"object","required":["forwardGroupConfigs","order","ruleActionType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getForwardingRulesForwardingRuleRuleActionForwardGroupConfig:getForwardingRulesForwardingRuleRuleActionForwardGroupConfig":{"properties":{"serverGroupTuples":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getForwardingRulesForwardingRuleRuleActionForwardGroupConfigServerGroupTuple:getForwardingRulesForwardingRuleRuleActionForwardGroupConfigServerGroupTuple"},"description":"Terminal node group configuration.\n"}},"type":"object","required":["serverGroupTuples"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getForwardingRulesForwardingRuleRuleActionForwardGroupConfigServerGroupTuple:getForwardingRulesForwardingRuleRuleActionForwardGroupConfigServerGroupTuple":{"properties":{"endpointGroupId":{"type":"string","description":"Terminal node group ID.\n"}},"type":"object","required":["endpointGroupId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getForwardingRulesForwardingRuleRuleCondition:getForwardingRulesForwardingRuleRuleCondition":{"properties":{"hostConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getForwardingRulesForwardingRuleRuleConditionHostConfig:getForwardingRulesForwardingRuleRuleConditionHostConfig"},"description":"Domain name configuration information.\n"},"pathConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getForwardingRulesForwardingRuleRuleConditionPathConfig:getForwardingRulesForwardingRuleRuleConditionPathConfig"},"description":"Path configuration information.\n"},"ruleConditionType":{"type":"string","description":"Forwarding condition type.\n"}},"type":"object","required":["hostConfigs","pathConfigs","ruleConditionType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getForwardingRulesForwardingRuleRuleConditionHostConfig:getForwardingRulesForwardingRuleRuleConditionHostConfig":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The domain name is 3-128 characters long.\n"}},"type":"object","required":["values"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getForwardingRulesForwardingRuleRuleConditionPathConfig:getForwardingRulesForwardingRuleRuleConditionPathConfig":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The domain name is 3-128 characters long.\n"}},"type":"object","required":["values"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getIpSetsSet:getIpSetsSet":{"properties":{"accelerateRegionId":{"type":"string","description":"The ID of an acceleration region.\n"},"bandwidth":{"type":"integer","description":"The bandwidth allocated to the acceleration region.\n"},"id":{"type":"string","description":"The ID of the Ip Set.\n"},"ipAddressLists":{"type":"array","items":{"type":"string"},"description":"The list of accelerated IP addresses in the acceleration region.\n"},"ipSetId":{"type":"string","description":"Accelerated area ID.\n"},"ipVersion":{"type":"string","description":"The IP protocol used by the GA instance.\n"},"status":{"type":"string","description":"The status of the acceleration region. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`updating`\" pulumi-lang-dotnet=\"`Updating`\" pulumi-lang-go=\"`updating`\" pulumi-lang-python=\"`updating`\" pulumi-lang-yaml=\"`updating`\" pulumi-lang-java=\"`updating`\"\u003e`updating`\u003c/span\u003e.\n"}},"type":"object","required":["accelerateRegionId","bandwidth","id","ipAddressLists","ipSetId","ipVersion","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getListenersListener:getListenersListener":{"properties":{"certificates":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getListenersListenerCertificate:getListenersListenerCertificate"},"description":"The certificates of the listener.\n"},"clientAffinity":{"type":"string","description":"The clientAffinity of the listener.\n"},"description":{"type":"string","description":"The description of the listener.\n"},"id":{"type":"string","description":"The ID of the Listener.\n"},"listenerId":{"type":"string","description":"The listenerId of the listener.\n"},"name":{"type":"string","description":"The name of the listener. The length of the name is 2-128 characters. It starts with uppercase and lowercase letters or Chinese characters. It can contain numbers and underscores and dashes.\n"},"portRanges":{"type":"array","items":{"$ref":"#/types/alicloud:ga/getListenersListenerPortRange:getListenersListenerPortRange"},"description":"The portRanges of the listener.\n"},"protocol":{"type":"string","description":"Type of network transport protocol monitored.\n"},"status":{"type":"string","description":"The status of the listener. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`creating`\" pulumi-lang-dotnet=\"`Creating`\" pulumi-lang-go=\"`creating`\" pulumi-lang-python=\"`creating`\" pulumi-lang-yaml=\"`creating`\" pulumi-lang-java=\"`creating`\"\u003e`creating`\u003c/span\u003e.\n"}},"type":"object","required":["certificates","clientAffinity","description","id","listenerId","name","portRanges","protocol","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getListenersListenerCertificate:getListenersListenerCertificate":{"properties":{"id":{"type":"string","description":"The ID of the Listener.\n"},"type":{"type":"string","description":"The type of the certificate.\n"}},"type":"object","required":["id","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ga/getListenersListenerPortRange:getListenersListenerPortRange":{"properties":{"fromPort":{"type":"integer","description":"The initial listening port used to receive requests and forward them to terminal nodes.\n"},"toPort":{"type":"integer","description":"The end listening port used to receive requests and forward them to terminal nodes.\n"}},"type":"object","required":["fromPort","toPort"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:governance/AccountAccountTag:AccountAccountTag":{"properties":{"tagKey":{"type":"string","description":"The key of the tags\n"},"tagValue":{"type":"string","description":"The value of the tags\n"}},"type":"object"},"alicloud:governance/BaselineBaselineItem:BaselineBaselineItem":{"properties":{"config":{"type":"string","description":"Baseline item configuration. The format is a JSON string.\n"},"name":{"type":"string","description":"The baseline item name.\n"},"version":{"type":"string","description":"The baseline item version.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["version"]}}},"alicloud:governance/getBaselinesBaseline:getBaselinesBaseline":{"properties":{"baselineId":{"type":"string","description":"Baseline ID\n"},"baselineName":{"type":"string","description":"Baseline Name.\n"},"description":{"type":"string","description":"Baseline Description.\n"}},"type":"object","required":["baselineId","baselineName","description"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:gpdb/DbInstancePlanPlanConfig:DbInstancePlanPlanConfig":{"properties":{"pause":{"$ref":"#/types/alicloud:gpdb/DbInstancePlanPlanConfigPause:DbInstancePlanPlanConfigPause","description":"Pause instance plan config. See \u003cspan pulumi-lang-nodejs=\"`pause`\" pulumi-lang-dotnet=\"`Pause`\" pulumi-lang-go=\"`pause`\" pulumi-lang-python=\"`pause`\" pulumi-lang-yaml=\"`pause`\" pulumi-lang-java=\"`pause`\"\u003e`pause`\u003c/span\u003e below.\n"},"resume":{"$ref":"#/types/alicloud:gpdb/DbInstancePlanPlanConfigResume:DbInstancePlanPlanConfigResume","description":"Resume instance plan config. See \u003cspan pulumi-lang-nodejs=\"`resume`\" pulumi-lang-dotnet=\"`Resume`\" pulumi-lang-go=\"`resume`\" pulumi-lang-python=\"`resume`\" pulumi-lang-yaml=\"`resume`\" pulumi-lang-java=\"`resume`\"\u003e`resume`\u003c/span\u003e below.\n"},"scaleDown":{"$ref":"#/types/alicloud:gpdb/DbInstancePlanPlanConfigScaleDown:DbInstancePlanPlanConfigScaleDown","description":"Scale down instance plan config. See \u003cspan pulumi-lang-nodejs=\"`scaleDown`\" pulumi-lang-dotnet=\"`ScaleDown`\" pulumi-lang-go=\"`scaleDown`\" pulumi-lang-python=\"`scale_down`\" pulumi-lang-yaml=\"`scaleDown`\" pulumi-lang-java=\"`scaleDown`\"\u003e`scale_down`\u003c/span\u003e below.\n"},"scaleIn":{"$ref":"#/types/alicloud:gpdb/DbInstancePlanPlanConfigScaleIn:DbInstancePlanPlanConfigScaleIn","description":"Scale In instance plan config. See \u003cspan pulumi-lang-nodejs=\"`scaleIn`\" pulumi-lang-dotnet=\"`ScaleIn`\" pulumi-lang-go=\"`scaleIn`\" pulumi-lang-python=\"`scale_in`\" pulumi-lang-yaml=\"`scaleIn`\" pulumi-lang-java=\"`scaleIn`\"\u003e`scale_in`\u003c/span\u003e below.\n"},"scaleOut":{"$ref":"#/types/alicloud:gpdb/DbInstancePlanPlanConfigScaleOut:DbInstancePlanPlanConfigScaleOut","description":"Scale out instance plan config. See \u003cspan pulumi-lang-nodejs=\"`scaleOut`\" pulumi-lang-dotnet=\"`ScaleOut`\" pulumi-lang-go=\"`scaleOut`\" pulumi-lang-python=\"`scale_out`\" pulumi-lang-yaml=\"`scaleOut`\" pulumi-lang-java=\"`scaleOut`\"\u003e`scale_out`\u003c/span\u003e below.\n"},"scaleUp":{"$ref":"#/types/alicloud:gpdb/DbInstancePlanPlanConfigScaleUp:DbInstancePlanPlanConfigScaleUp","description":"Scale up instance plan config. See \u003cspan pulumi-lang-nodejs=\"`scaleUp`\" pulumi-lang-dotnet=\"`ScaleUp`\" pulumi-lang-go=\"`scaleUp`\" pulumi-lang-python=\"`scale_up`\" pulumi-lang-yaml=\"`scaleUp`\" pulumi-lang-java=\"`scaleUp`\"\u003e`scale_up`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:gpdb/DbInstancePlanPlanConfigPause:DbInstancePlanPlanConfigPause":{"properties":{"executeTime":{"type":"string","description":"The executed time of the Plan.\n"},"planCronTime":{"type":"string","description":"The Cron Time of the plan.\n"},"planTaskStatus":{"type":"string","description":"(Available since v1.231.0) The status of the plan task.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["executeTime","planTaskStatus"]}}},"alicloud:gpdb/DbInstancePlanPlanConfigResume:DbInstancePlanPlanConfigResume":{"properties":{"executeTime":{"type":"string","description":"The executed time of the Plan.\n"},"planCronTime":{"type":"string","description":"The Cron Time of the plan.\n"},"planTaskStatus":{"type":"string","description":"(Available since v1.231.0) The status of the plan task.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["executeTime","planTaskStatus"]}}},"alicloud:gpdb/DbInstancePlanPlanConfigScaleDown:DbInstancePlanPlanConfigScaleDown":{"properties":{"executeTime":{"type":"string","description":"The executed time of the Plan.\n"},"instanceSpec":{"type":"string","description":"The specification of segment nodes of the Plan.\n"},"planCronTime":{"type":"string","description":"The Cron Time of the plan.\n"},"planTaskStatus":{"type":"string","description":"(Available since v1.231.0) The status of the plan task.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["executeTime","planTaskStatus"]}}},"alicloud:gpdb/DbInstancePlanPlanConfigScaleIn:DbInstancePlanPlanConfigScaleIn":{"properties":{"executeTime":{"type":"string","description":"The executed time of the Plan.\n"},"planCronTime":{"type":"string","description":"The Cron Time of the plan.\n"},"planTaskStatus":{"type":"string","description":"(Available since v1.231.0) The status of the plan task.\n"},"segmentNodeNum":{"type":"string","description":"The segment Node Num of the Plan.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["executeTime","planTaskStatus"]}}},"alicloud:gpdb/DbInstancePlanPlanConfigScaleOut:DbInstancePlanPlanConfigScaleOut":{"properties":{"executeTime":{"type":"string","description":"The executed time of the Plan.\n"},"planCronTime":{"type":"string","description":"The Cron Time of the plan.\n"},"planTaskStatus":{"type":"string","description":"(Available since v1.231.0) The status of the plan task.\n"},"segmentNodeNum":{"type":"string","description":"The segment Node Num of the Plan.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["executeTime","planTaskStatus"]}}},"alicloud:gpdb/DbInstancePlanPlanConfigScaleUp:DbInstancePlanPlanConfigScaleUp":{"properties":{"executeTime":{"type":"string","description":"The executed time of the Plan.\n"},"instanceSpec":{"type":"string","description":"The specification of segment nodes of the Plan.\n"},"planCronTime":{"type":"string","description":"The Cron Time of the plan.\n"},"planTaskStatus":{"type":"string","description":"(Available since v1.231.0) The status of the plan task.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["executeTime","planTaskStatus"]}}},"alicloud:gpdb/InstanceIpWhitelist:InstanceIpWhitelist":{"properties":{"ipGroupAttribute":{"type":"string","description":"The value of this parameter is empty by default. The attribute of the whitelist group. \nIf the value contains \u003cspan pulumi-lang-nodejs=\"`hidden`\" pulumi-lang-dotnet=\"`Hidden`\" pulumi-lang-go=\"`hidden`\" pulumi-lang-python=\"`hidden`\" pulumi-lang-yaml=\"`hidden`\" pulumi-lang-java=\"`hidden`\"\u003e`hidden`\u003c/span\u003e, this white list item will not output.\n"},"ipGroupName":{"type":"string","description":"IP whitelist group name.\n"},"securityIpList":{"type":"string","description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]). System default to `[\"127.0.0.1\"]`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipGroupAttribute","ipGroupName","securityIpList"]}}},"alicloud:gpdb/InstanceParameter:InstanceParameter":{"properties":{"defaultValue":{"type":"string","description":"(Available since v1.231.0) The default value of the parameter.\n"},"forceRestartInstance":{"type":"string","description":"(Available since v1.231.0) Whether to force restart the instance to config the parameter.\n"},"isChangeableConfig":{"type":"string","description":"(Available since v1.231.0) Whether the parameter is changeable.\n"},"name":{"type":"string","description":"The name of the parameter.\n"},"optionalRange":{"type":"string","description":"(Available since v1.231.0) The optional range of the parameter.\n"},"parameterDescription":{"type":"string","description":"(Available since v1.231.0) The description of the parameter.\n"},"value":{"type":"string","description":"The value of the parameter.\n"}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredOutputs":["defaultValue","forceRestartInstance","isChangeableConfig","name","optionalRange","parameterDescription","value"]}}},"alicloud:gpdb/getAccountsAccount:getAccountsAccount":{"properties":{"accountDescription":{"type":"string","description":"The description of the account.\n"},"accountName":{"type":"string","description":"The name of the account.\n"},"dbInstanceId":{"type":"string","description":"The ID of the instance.\n"},"id":{"type":"string","description":"The ID of the Account. Its value is same as Queue Name.\n"},"status":{"type":"string","description":"The status of the account. Valid values: `Active`, `Creating` and `Deleting`.\n"}},"type":"object","required":["accountDescription","accountName","dbInstanceId","id","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:gpdb/getDataBackupsBackup:getDataBackupsBackup":{"properties":{"backupEndTime":{"type":"string","description":"The backup end time. Format: yyyy-MM-ddTHH:mm:ssZ(UTC time).\n"},"backupEndTimeLocal":{"type":"string","description":"The end time of the backup (local time).\n"},"backupMethod":{"type":"string","description":"Backup method. Value Description:-**Physical**: Physical backup.-**Snapshot**: the Snapshot backup.\n"},"backupMode":{"type":"string","description":"Backup mode.Full Backup Value Description:-**Automated**: The system is automatically backed up.-**Manual**: Manual backup.Recovery point value description:-**Automated**: The recovery point after a full backup.-**Manual**: The recovery point triggered manually by the user.-**Period**: The recovery point triggered periodically because of the backup policy.\n"},"backupSetId":{"type":"string","description":"The ID of the backup set.\n"},"backupSize":{"type":"integer","description":"The size of the backup file. Unit: Byte.\n"},"backupStartTime":{"type":"string","description":"The backup start time. Format: yyyy-MM-ddTHH:mm:ssZ(UTC time).\n"},"backupStartTimeLocal":{"type":"string","description":"The start time of the backup (local time).\n"},"baksetName":{"type":"string","description":"The name of the recovery point or full backup set.\n"},"consistentTime":{"type":"integer","description":"-Full backup: Returns the timestamp of the consistent point in time.-Recoverable point: Returns the timestamp of the recoverable point in time.\n"},"dataType":{"type":"string","description":"The backup type. Value Description:-**DATA**: Full backup.-**RESTOREPOI**: Recoverable point.\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n"},"status":{"type":"string","description":"Backup set status. Value Description:-Success: The backup has been completed.-Failed: Backup Failed.If not, return all.\n"}},"type":"object","required":["backupEndTime","backupEndTimeLocal","backupMethod","backupMode","backupSetId","backupSize","backupStartTime","backupStartTimeLocal","baksetName","consistentTime","dataType","dbInstanceId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:gpdb/getDbInstancePlansPlan:getDbInstancePlansPlan":{"properties":{"dbInstancePlanName":{"type":"string","description":"The name of the Plan.\n"},"id":{"type":"string","description":"The ID of the resource. The value formats as `\u003cdb_instance_id\u003e:\u003cplan_id\u003e`.\n"},"planConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:gpdb/getDbInstancePlansPlanPlanConfig:getDbInstancePlansPlanPlanConfig"},"description":"Plan configuration information.\n"},"planDesc":{"type":"string"},"planEndDate":{"type":"string","description":"The end time of the Plan.\n"},"planId":{"type":"string","description":"The ID of DB Instance Plan.\n"},"planScheduleType":{"type":"string","description":"Plan scheduling type. Valid values: `Postpone`, `Regular`.\n"},"planStartDate":{"type":"string","description":"The start time of the Plan.\n"},"planType":{"type":"string","description":"The type of the Plan. Valid values: `PauseResume`, `Resize`.\n"},"status":{"type":"string","description":"The Status of the Plan.\n"}},"type":"object","required":["dbInstancePlanName","id","planConfigs","planDesc","planEndDate","planId","planScheduleType","planStartDate","planType","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:gpdb/getDbInstancePlansPlanPlanConfig:getDbInstancePlansPlanPlanConfig":{"properties":{"pauses":{"type":"array","items":{"$ref":"#/types/alicloud:gpdb/getDbInstancePlansPlanPlanConfigPause:getDbInstancePlansPlanPlanConfigPause"},"description":"Pause instance plan config.\n"},"resumes":{"type":"array","items":{"$ref":"#/types/alicloud:gpdb/getDbInstancePlansPlanPlanConfigResume:getDbInstancePlansPlanPlanConfigResume"},"description":"Resume instance plan config.\n"},"scaleIns":{"type":"array","items":{"$ref":"#/types/alicloud:gpdb/getDbInstancePlansPlanPlanConfigScaleIn:getDbInstancePlansPlanPlanConfigScaleIn"},"description":"Scale In instance plan config.\n"},"scaleOuts":{"type":"array","items":{"$ref":"#/types/alicloud:gpdb/getDbInstancePlansPlanPlanConfigScaleOut:getDbInstancePlansPlanPlanConfigScaleOut"},"description":"Scale out instance plan config.\n"}},"type":"object","required":["pauses","resumes","scaleIns","scaleOuts"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:gpdb/getDbInstancePlansPlanPlanConfigPause:getDbInstancePlansPlanPlanConfigPause":{"properties":{"executeTime":{"type":"string","description":"The executed time of the Plan.\n"},"planCronTime":{"type":"string","description":"The Cron Time of the plan.\n"},"planTaskStatus":{"type":"string","description":"The Status of the plan Task.\n"}},"type":"object","required":["executeTime","planCronTime","planTaskStatus"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:gpdb/getDbInstancePlansPlanPlanConfigResume:getDbInstancePlansPlanPlanConfigResume":{"properties":{"executeTime":{"type":"string","description":"The executed time of the Plan.\n"},"planCronTime":{"type":"string","description":"The Cron Time of the plan.\n"},"planTaskStatus":{"type":"string","description":"The Status of the plan Task.\n"}},"type":"object","required":["executeTime","planCronTime","planTaskStatus"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:gpdb/getDbInstancePlansPlanPlanConfigScaleIn:getDbInstancePlansPlanPlanConfigScaleIn":{"properties":{"executeTime":{"type":"string","description":"The executed time of the Plan.\n"},"planCronTime":{"type":"string","description":"The Cron Time of the plan.\n"},"planTaskStatus":{"type":"string","description":"The Status of the plan Task.\n"},"segmentNodeNum":{"type":"string","description":"The segment Node Num of the Plan.\n"}},"type":"object","required":["executeTime","planCronTime","planTaskStatus","segmentNodeNum"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:gpdb/getDbInstancePlansPlanPlanConfigScaleOut:getDbInstancePlansPlanPlanConfigScaleOut":{"properties":{"executeTime":{"type":"string","description":"The executed time of the Plan.\n"},"planCronTime":{"type":"string","description":"The Cron Time of the plan.\n"},"planTaskStatus":{"type":"string","description":"The Status of the plan Task.\n"},"segmentNodeNum":{"type":"string","description":"The segment Node Num of the Plan.\n"}},"type":"object","required":["executeTime","planCronTime","planTaskStatus","segmentNodeNum"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:gpdb/getInstancesInstance:getInstancesInstance":{"properties":{"availabilityZone":{"type":"string","description":"Instance availability zone.\n"},"chargeType":{"type":"string"},"connectionString":{"type":"string","description":"The connection string of the instance.\n"},"cpuCores":{"type":"string","description":"The number of CPU cores of the computing node. Unit: Core.\n"},"createTime":{"type":"string","description":"The time when the instance was created. The time is in the YYYY-MM-DDThh:mm:ssZ format, such as 2011-05-30T12:11:4Z.\n"},"creationTime":{"type":"string"},"dbInstanceCategory":{"type":"string","description":"The db instance category. Valid values: `HighAvailability`, `Basic`.\n"},"dbInstanceClass":{"type":"string","description":"The db instance class.\n"},"dbInstanceId":{"type":"string","description":"The db instance id.\n"},"dbInstanceMode":{"type":"string","description":"The db instance mode. Valid values: `StorageElastic`, `Serverless`, `Classic`.\n"},"description":{"type":"string","description":"The description of the instance.\n"},"engine":{"type":"string","description":"The database engine used by the instance.\n"},"engineVersion":{"type":"string","description":"The version of the database engine used by the instance.\n"},"id":{"type":"string","description":"The ID of the db Instance.\n"},"instanceNetworkType":{"type":"string","description":"The network type of the instance.\n"},"ipWhitelists":{"type":"array","items":{"$ref":"#/types/alicloud:gpdb/getInstancesInstanceIpWhitelist:getInstancesInstanceIpWhitelist"},"description":"The ip whitelist.\n"},"maintainEndTime":{"type":"string","description":"The end time of the maintenance window for the instance.\n"},"maintainStartTime":{"type":"string","description":"The start time of the maintenance window for the instance.\n"},"masterNodeNum":{"type":"string","description":"The number of Master nodes. Valid values: 1 to 2. if it is not filled in, the default value is 1 Master node.\n"},"memorySize":{"type":"string","description":"The memory size of the compute node.\n"},"paymentType":{"type":"string","description":"The billing method of the instance. Valid values: `Subscription`, `PayAsYouGo`.\n"},"regionId":{"type":"string","description":"Region ID the instance belongs to.\n"},"segNodeNum":{"type":"string","description":"Calculate the number of nodes. The value range of the high-availability version of the storage elastic mode is 4 to 512, and the value must be a multiple of 4. The value range of the basic version of the storage elastic mode is 2 to 512, and the value must be a multiple of 2. The-Serverless version has a value range of 2 to 512. The value must be a multiple of 2.\n"},"status":{"type":"string","description":"The status of the instance. Valid values: `Creating`, `DBInstanceClassChanging`, `DBInstanceNetTypeChanging`, `Deleting`, `EngineVersionUpgrading`, `GuardDBInstanceCreating`, `GuardSwitching`, `Importing`, `ImportingFromOtherInstance`, `Rebooting`, `Restoring`, `Running`, `Transfering`, `TransferingToOtherInstance`.\n"},"storageSize":{"type":"integer","description":"The storage capacity. Unit: GB. Value: \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\"\u003e`4000`\u003c/span\u003e.\n"},"storageType":{"type":"string","description":"The type of disks. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the instance.\n"},"vpcId":{"type":"string","description":"The ID of the VPC。.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string","description":"The zone ID of the instance.\n"}},"type":"object","required":["availabilityZone","chargeType","connectionString","cpuCores","createTime","creationTime","dbInstanceCategory","dbInstanceClass","dbInstanceId","dbInstanceMode","description","engine","engineVersion","id","instanceNetworkType","ipWhitelists","maintainEndTime","maintainStartTime","masterNodeNum","memorySize","paymentType","regionId","segNodeNum","status","storageSize","storageType","tags","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:gpdb/getInstancesInstanceIpWhitelist:getInstancesInstanceIpWhitelist":{"properties":{"ipGroupAttribute":{"type":"string","description":"The value of this parameter is empty by default. The attribute of the whitelist group. The console does not display the whitelist group whose value of this parameter is hidden.\n"},"ipGroupName":{"type":"string","description":"IP whitelist group name\n"},"securityIpList":{"type":"string","description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]). System default to `[\"127.0.0.1\"]`.\n"}},"type":"object","required":["ipGroupAttribute","ipGroupName","securityIpList"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:gpdb/getLogBackupsLogbackup:getLogBackupsLogbackup":{"properties":{"dbInstanceId":{"type":"string","description":"The ID of the Master node of the instance.\n"},"logBackupId":{"type":"string","description":"The first ID of the resource\n"},"logFileName":{"type":"string","description":"Log file name (OSS path).\n"},"logFileSize":{"type":"integer","description":"Size of the backup log file. Unit: Byte.\n"},"logTime":{"type":"string","description":"The log timestamp.\n"},"recordTotal":{"type":"integer","description":"Total number of records.\n"},"segmentName":{"type":"string","description":"The node name.\n"}},"type":"object","required":["dbInstanceId","logBackupId","logFileName","logFileSize","logTime","recordTotal","segmentName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:gpdb/getZonesZone:getZonesZone":{"properties":{"id":{"type":"string","description":"ID of the zone.\n"},"multiZoneIds":{"type":"array","items":{"type":"string"},"description":"A list of zone ids in which the multi zone.\n"}},"type":"object","required":["id","multiZoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:graphdatabase/DbInstanceDbInstanceIpArray:DbInstanceDbInstanceIpArray":{"properties":{"dbInstanceIpArrayAttribute":{"type":"string","description":"The default is empty. To distinguish between the different property console does not display a \u003cspan pulumi-lang-nodejs=\"`hidden`\" pulumi-lang-dotnet=\"`Hidden`\" pulumi-lang-go=\"`hidden`\" pulumi-lang-python=\"`hidden`\" pulumi-lang-yaml=\"`hidden`\" pulumi-lang-java=\"`hidden`\"\u003e`hidden`\u003c/span\u003e label grouping.\n"},"dbInstanceIpArrayName":{"type":"string","description":"IP ADDRESS whitelist group name.\n"},"securityIps":{"type":"string","description":"IP ADDRESS whitelist addresses in the IP ADDRESS list, and a maximum of 1000 comma-separated format is as follows: `0.0.0.0/0` and `10.23.12.24`(IP) or `10.23.12.24/24`(CIDR mode, CIDR (Classless Inter-Domain Routing)/24 represents the address prefixes in the length of the range [1,32]).\n"}},"type":"object"},"alicloud:graphdatabase/getDbInstancesInstance:getDbInstancesInstance":{"properties":{"connectionString":{"type":"string","description":"Virtual Private Cloud (vpc connection such as a VPN connection or leased line domain name).\n"},"createTime":{"type":"string","description":"Creation time, which follows the format of `YYYY-MM-DD 'T'hh:mm:ssZ`, such as `2011-05-30 T12:11:4Z`.\n"},"currentMinorVersion":{"type":"string","description":"The current kernel image version.\n"},"dbInstanceCategory":{"type":"string","description":"The category of the db instance.\n"},"dbInstanceCpu":{"type":"string","description":"For example, instances can be grouped according to Cpu core count.\n"},"dbInstanceDescription":{"type":"string","description":"According to the practical example or notes.\n"},"dbInstanceId":{"type":"string","description":"The ID of the instance.\n"},"dbInstanceIpArrays":{"type":"array","items":{"$ref":"#/types/alicloud:graphdatabase/getDbInstancesInstanceDbInstanceIpArray:getDbInstancesInstanceDbInstanceIpArray"},"description":"IP ADDRESS whitelist for the instance group list.\n"},"dbInstanceMemory":{"type":"string","description":"Instance memory, which is measured in MB.\n"},"dbInstanceNetworkType":{"type":"string","description":"The network type of the db instance.\n"},"dbInstanceStorageType":{"type":"string","description":"Disk storage type. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e.\n"},"dbInstanceType":{"type":"string","description":"The type of the db instance.\n"},"dbNodeClass":{"type":"string","description":"The class of the db node.\n"},"dbNodeCount":{"type":"string","description":"The count of the db node.\n"},"dbNodeStorage":{"type":"string","description":"Instance storage space, which is measured in GB.\n"},"dbVersion":{"type":"string","description":"Kernel Version. Value range: `1.0` or `1.0-OpenCypher`. `1.0`: represented as gremlin, `1.0-OpenCypher`: said opencypher.\n"},"expireTime":{"type":"string","description":"The instance after it expires time for subscription instance.\n"},"expired":{"type":"string","description":"The expire status of the db instance.\n"},"id":{"type":"string","description":"The ID of the Db Instance.\n"},"latestMinorVersion":{"type":"string","description":"The latest kernel image version.\n"},"lockMode":{"type":"string","description":"Instance lock state. Value range: `Unlock`, `ManualLock`, `LockByExpiration`, `LockByRestoration` and `LockByDiskQuota`. `Unlock`: normal. `ManualLock`: the manual trigger lock. `LockByExpiration`: that represents the instance expires automatically lock. `LockByRestoration`: indicates that the instance rollback before auto-lock. `LockByDiskQuota`: that represents the instance space full automatic lock.\n"},"lockReason":{"type":"string","description":"An instance is locked the reason.\n"},"maintainTime":{"type":"string","description":"Instance maintenance time such as `00:00Z-02:00Z`, 0 to 2 points to carry out routine maintenance.\n"},"masterDbInstanceId":{"type":"string","description":"The master instance ID of the db instance.\n"},"paymentType":{"type":"string","description":"The paymen type of the resource.\n"},"port":{"type":"integer","description":"Application Port.\n"},"publicConnectionString":{"type":"string","description":"The public connection string ID of the resource.\n"},"publicPort":{"type":"integer","description":"The public port ID of the resource.\n"},"readOnlyDbInstanceIds":{"type":"array","items":{"type":"string"},"description":"The array of the readonly db instances.\n"},"status":{"type":"string","description":"Instance status. Value range: `Creating`, `Running`, `Deleting`, `Rebooting`, `DBInstanceClassChanging`, `NetAddressCreating` and `NetAddressDeleting`.\n"},"vpcId":{"type":"string","description":"The vpc id of the db instance.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string","description":"The zone ID of the resource.\n"}},"type":"object","required":["connectionString","createTime","currentMinorVersion","dbInstanceCategory","dbInstanceCpu","dbInstanceDescription","dbInstanceId","dbInstanceIpArrays","dbInstanceMemory","dbInstanceNetworkType","dbInstanceStorageType","dbInstanceType","dbNodeClass","dbNodeCount","dbNodeStorage","dbVersion","expireTime","expired","id","latestMinorVersion","lockMode","lockReason","maintainTime","masterDbInstanceId","paymentType","port","publicConnectionString","publicPort","readOnlyDbInstanceIds","status","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:graphdatabase/getDbInstancesInstanceDbInstanceIpArray:getDbInstancesInstanceDbInstanceIpArray":{"properties":{"dbInstanceIpArrayAttribute":{"type":"string","description":"The default is empty. To distinguish between the different property console does not display a \u003cspan pulumi-lang-nodejs=\"`hidden`\" pulumi-lang-dotnet=\"`Hidden`\" pulumi-lang-go=\"`hidden`\" pulumi-lang-python=\"`hidden`\" pulumi-lang-yaml=\"`hidden`\" pulumi-lang-java=\"`hidden`\"\u003e`hidden`\u003c/span\u003e label grouping.\n"},"dbInstanceIpArrayName":{"type":"string","description":"IP ADDRESS whitelist group name.\n"},"securityIps":{"type":"string","description":"IP ADDRESS whitelist addresses in the IP ADDRESS list, and a maximum of 1000 comma-separated format is as follows: `0.0.0.0/0` and `10.23.12.24`(IP) or `10.23.12.24/24`(CIDR mode, CIDR (Classless Inter-Domain Routing)/24 represents the address prefixes in the length of the range [1,32]).\n"}},"type":"object"},"alicloud:gwlb/LoadBalancerZoneMapping:LoadBalancerZoneMapping":{"properties":{"loadBalancerAddresses":{"type":"array","items":{"$ref":"#/types/alicloud:gwlb/LoadBalancerZoneMappingLoadBalancerAddress:LoadBalancerZoneMappingLoadBalancerAddress"},"description":"The information about the IP addresses used by the GWLB instance.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch in the zone. You can specify only one vSwitch (subnet) in each zone of a GWLB instance.\n"},"zoneId":{"type":"string","description":"The zone ID. You can call the DescribeZones operation to query the most recent zone list.\n"}},"type":"object","required":["vswitchId","zoneId"],"language":{"nodejs":{"requiredOutputs":["loadBalancerAddresses","vswitchId","zoneId"]}}},"alicloud:gwlb/LoadBalancerZoneMappingLoadBalancerAddress:LoadBalancerZoneMappingLoadBalancerAddress":{"properties":{"eniId":{"type":"string","description":"The ID of the elastic network interface (ENI) used by the GWLB instance.\n"},"privateIpv4Address":{"type":"string","description":"The private IPv4 address.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["eniId","privateIpv4Address"]}}},"alicloud:gwlb/ServerGroupConnectionDrainConfig:ServerGroupConnectionDrainConfig":{"properties":{"connectionDrainEnabled":{"type":"boolean","description":"Indicates whether connection draining is enabled. Valid values:\n"},"connectionDrainTimeout":{"type":"integer","description":"The timeout period of connection draining.\n\nUnit: seconds\n\nValid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e.\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["connectionDrainEnabled","connectionDrainTimeout"]}}},"alicloud:gwlb/ServerGroupHealthCheckConfig:ServerGroupHealthCheckConfig":{"properties":{"healthCheckConnectPort":{"type":"integer","description":"The backend server port that is used for health checks.\n\nValid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`80`\" pulumi-lang-dotnet=\"`80`\" pulumi-lang-go=\"`80`\" pulumi-lang-python=\"`80`\" pulumi-lang-yaml=\"`80`\" pulumi-lang-java=\"`80`\"\u003e`80`\u003c/span\u003e.\n"},"healthCheckConnectTimeout":{"type":"integer","description":"The maximum timeout period of a health check response.\n\nUnit: seconds\n\nValid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"healthCheckDomain":{"type":"string","description":"The domain name that you want to use for health checks. Valid values:\n\n*   **$SERVER_IP** (default): the private IP address of a backend server.\n"},"healthCheckEnabled":{"type":"boolean","description":"Specifies whether to enable the health check feature. Valid values:\n"},"healthCheckHttpCodes":{"type":"array","items":{"type":"string"},"description":"The HTTP status codes that the system returns for health checks.\n"},"healthCheckInterval":{"type":"integer","description":"The interval at which health checks are performed.\n\nUnit: seconds\n\nValid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e.\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\n"},"healthCheckPath":{"type":"string","description":"The URL that is used for health checks.\n\nThe URL must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), percent signs (%), question marks (?), number signs (#), and ampersands (\u0026). The URL can also contain the following extended characters: \\_ ; ~ ! ( ) \\* \\[ ] @ $ ^ : ' , + =\n\nThe URL must start with a forward slash (/).\n\n\u003e **NOTE:**  This parameter takes effect only if you set `HealthCheckProtocol` to `HTTP`.\n"},"healthCheckProtocol":{"type":"string","description":"The protocol that is used for health checks. Valid values:\n\n- `TCP`: TCP health checks send TCP SYN packets to a backend server to check whether the port of the backend server is reachable.\n- `HTTP`: HTTP health checks simulate a process that uses a web browser to access resources by sending HEAD or GET requests to an instance. These requests are used to check whether the instance is healthy.\n"},"healthyThreshold":{"type":"integer","description":"The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health status changes from \u003cspan pulumi-lang-nodejs=\"`fail`\" pulumi-lang-dotnet=\"`Fail`\" pulumi-lang-go=\"`fail`\" pulumi-lang-python=\"`fail`\" pulumi-lang-yaml=\"`fail`\" pulumi-lang-java=\"`fail`\"\u003e`fail`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`success`\" pulumi-lang-dotnet=\"`Success`\" pulumi-lang-go=\"`success`\" pulumi-lang-python=\"`success`\" pulumi-lang-yaml=\"`success`\" pulumi-lang-java=\"`success`\"\u003e`success`\u003c/span\u003e.\n\nValid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"},"unhealthyThreshold":{"type":"integer","description":"The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health status changes from \u003cspan pulumi-lang-nodejs=\"`success`\" pulumi-lang-dotnet=\"`Success`\" pulumi-lang-go=\"`success`\" pulumi-lang-python=\"`success`\" pulumi-lang-yaml=\"`success`\" pulumi-lang-java=\"`success`\"\u003e`success`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`fail`\" pulumi-lang-dotnet=\"`Fail`\" pulumi-lang-go=\"`fail`\" pulumi-lang-python=\"`fail`\" pulumi-lang-yaml=\"`fail`\" pulumi-lang-java=\"`fail`\"\u003e`fail`\u003c/span\u003e.\n\nValid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["healthCheckConnectPort","healthCheckConnectTimeout","healthCheckDomain","healthCheckEnabled","healthCheckInterval","healthCheckPath","healthCheckProtocol","healthyThreshold","unhealthyThreshold"]}}},"alicloud:gwlb/ServerGroupServer:ServerGroupServer":{"properties":{"port":{"type":"integer","description":"(Optional, Computed, Int) The port that is used by the backend server.\n"},"serverGroupId":{"type":"string","description":"The server group ID.\n"},"serverId":{"type":"string","description":"The backend server ID.\n\n- If the server group is of the `Instance` type, set this parameter to the IDs of servers of the `Ecs`, `Eni`, or `Eci` type.\n- If the server group is of the `Ip` type, set ServerId to IP addresses.\n"},"serverIp":{"type":"string","description":"The IP address of the backend server.\n"},"serverType":{"type":"string","description":"The type of the backend server. Valid values:\n\n- `Ecs`: Elastic Compute Service (ECS) instance\n- `Eni`: elastic network interface (ENI)\n- `Eci`: elastic container instance\n- `Ip`: IP address\n"},"status":{"type":"string","description":"Indicates the status of the backend server.\n"}},"type":"object","required":["serverId","serverType"],"language":{"nodejs":{"requiredOutputs":["port","serverGroupId","serverId","serverIp","serverType","status"]}}},"alicloud:gwlb/getZonesZone:getZonesZone":{"properties":{"id":{"type":"string","description":"The zone ID.\n"},"localName":{"type":"string","description":"The zone name.\n"},"zoneId":{"type":"string","description":"The zone ID.\n"}},"type":"object","required":["id","localName","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbase/InstanceSlbConnAddr:InstanceSlbConnAddr":{"properties":{"connAddr":{"type":"string","description":"The Phoenix address.\n"},"connAddrPort":{"type":"string","description":"The number of the port over which Phoenix connects to the instance.\n"},"netType":{"type":"string","description":"The type of the network. Valid values:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["connAddr","connAddrPort","netType"]}}},"alicloud:hbase/InstanceUiProxyConnAddr:InstanceUiProxyConnAddr":{"properties":{"connAddr":{"type":"string","description":"The Phoenix address.\n"},"connAddrPort":{"type":"string","description":"The number of the port over which Phoenix connects to the instance.\n"},"netType":{"type":"string","description":"The type of the network. Valid values:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["connAddr","connAddrPort","netType"]}}},"alicloud:hbase/InstanceZkConnAddr:InstanceZkConnAddr":{"properties":{"connAddr":{"type":"string","description":"The Phoenix address.\n"},"connAddrPort":{"type":"string","description":"The number of the port over which Phoenix connects to the instance.\n"},"netType":{"type":"string","description":"The type of the network. Valid values:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["connAddr","connAddrPort","netType"]}}},"alicloud:hbase/getInstanceTypesCoreInstanceType:getInstanceTypesCoreInstanceType":{"properties":{"category":{"type":"string","description":"Name of the category, single or cluster.\n"},"cpuSize":{"type":"integer","description":"Cpu size of the instance type.\n"},"engine":{"type":"string","description":"The engine name, \u003cspan pulumi-lang-nodejs=\"`singlehbase`\" pulumi-lang-dotnet=\"`Singlehbase`\" pulumi-lang-go=\"`singlehbase`\" pulumi-lang-python=\"`singlehbase`\" pulumi-lang-yaml=\"`singlehbase`\" pulumi-lang-java=\"`singlehbase`\"\u003e`singlehbase`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hbase`\" pulumi-lang-dotnet=\"`Hbase`\" pulumi-lang-go=\"`hbase`\" pulumi-lang-python=\"`hbase`\" pulumi-lang-yaml=\"`hbase`\" pulumi-lang-java=\"`hbase`\"\u003e`hbase`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hbaseue`\" pulumi-lang-dotnet=\"`Hbaseue`\" pulumi-lang-go=\"`hbaseue`\" pulumi-lang-python=\"`hbaseue`\" pulumi-lang-yaml=\"`hbaseue`\" pulumi-lang-java=\"`hbaseue`\"\u003e`hbaseue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bds`\" pulumi-lang-dotnet=\"`Bds`\" pulumi-lang-go=\"`bds`\" pulumi-lang-python=\"`bds`\" pulumi-lang-yaml=\"`bds`\" pulumi-lang-java=\"`bds`\"\u003e`bds`\u003c/span\u003e.\n"},"instanceType":{"type":"string","description":"The hbase instance type of create hbase cluster instance.\n"},"maxCoreCount":{"type":"integer","description":"Max count of the core instance nodes.\n"},"memSize":{"type":"integer","description":"Mem size of the instance type.\n"},"storageType":{"type":"string","description":"Name of the storage type.\n"},"version":{"type":"string","description":"The engine version, singlehbase/hbase=1.1/2.0, bds=1.0.\n"},"zone":{"type":"string","description":"Name of zone id.\n"}},"type":"object","required":["category","cpuSize","engine","instanceType","maxCoreCount","memSize","storageType","version","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbase/getInstanceTypesMasterInstanceType:getInstanceTypesMasterInstanceType":{"properties":{"cpuSize":{"type":"integer","description":"Cpu size of the instance type.\n"},"instanceType":{"type":"string","description":"The hbase instance type of create hbase cluster instance.\n"},"memSize":{"type":"integer","description":"Mem size of the instance type.\n"}},"type":"object","required":["cpuSize","instanceType","memSize"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbase/getInstanceTypesType:getInstanceTypesType":{"properties":{"cpuSize":{"type":"integer","description":"Cpu size of the instance type.\n"},"memSize":{"type":"integer","description":"Mem size of the instance type.\n"},"value":{"type":"string","description":"Name of the instance type.\n"}},"type":"object","required":["cpuSize","memSize","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbase/getInstancesInstance:getInstancesInstance":{"properties":{"backupStatus":{"type":"string","description":"The Backup Status of the instance.\n"},"coreDiskSize":{"type":"integer","description":"Core node disk size, unit:GB.\n"},"coreDiskType":{"type":"string","description":"Cloud_ssd or cloud_efficiency\n"},"coreInstanceType":{"type":"string","description":"Like hbase.sn2.2xlarge, hbase.sn2.4xlarge, hbase.sn2.8xlarge and so on.\n"},"coreNodeCount":{"type":"integer","description":"Same with \u003cspan pulumi-lang-nodejs=\"\"coreInstanceQuantity\"\" pulumi-lang-dotnet=\"\"CoreInstanceQuantity\"\" pulumi-lang-go=\"\"coreInstanceQuantity\"\" pulumi-lang-python=\"\"core_instance_quantity\"\" pulumi-lang-yaml=\"\"coreInstanceQuantity\"\" pulumi-lang-java=\"\"coreInstanceQuantity\"\"\u003e\"core_instance_quantity\"\u003c/span\u003e\n"},"createdTime":{"type":"string","description":"The created time of the instance.\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection.\n"},"engine":{"type":"string","description":"The engine of the instance.\n"},"engineVersion":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" engineVersion \" pulumi-lang-dotnet=\" EngineVersion \" pulumi-lang-go=\" engineVersion \" pulumi-lang-python=\" engine_version \" pulumi-lang-yaml=\" engineVersion \" pulumi-lang-java=\" engineVersion \"\u003e engine_version \u003c/span\u003eof the instance.\n"},"expireTime":{"type":"string","description":"The expire time of the instance.\n"},"id":{"type":"string","description":"The ID of the HBase instance.\n"},"masterInstanceType":{"type":"string","description":"Like hbase.sn2.2xlarge, hbase.sn2.4xlarge, hbase.sn2.8xlarge and so on.\n"},"masterNodeCount":{"type":"integer","description":"The node count of master\n"},"name":{"type":"string","description":"The name of the HBase instance.\n"},"networkType":{"type":"string","description":"Classic network or VPC.\n"},"payType":{"type":"string","description":"Billing method. Value options are `PostPaid` for  Pay-As-You-Go and `PrePaid` for yearly or monthly subscription.\n"},"regionId":{"type":"string","description":"Region ID the instance belongs to.\n"},"status":{"type":"string","description":"Status of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"VPC ID the instance belongs to.\n"},"vswitchId":{"type":"string","description":"VSwitch ID the instance belongs to.\n"},"zoneId":{"type":"string","description":"Zone ID the instance belongs to.\n"}},"type":"object","required":["backupStatus","coreDiskSize","coreDiskType","coreInstanceType","coreNodeCount","createdTime","deletionProtection","engine","engineVersion","expireTime","id","masterInstanceType","masterNodeCount","name","networkType","payType","regionId","status","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbase/getZonesZone:getZonesZone":{"properties":{"id":{"type":"string","description":"ID of the zone.\n"},"multiZoneIds":{"type":"array","items":{"type":"string"},"description":"A list of zone ids in which the multi zone. Removed from v1.99.0.\n"}},"type":"object","required":["id","multiZoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/OtsBackupPlanOtsDetail:OtsBackupPlanOtsDetail":{"properties":{"tableNames":{"type":"array","items":{"type":"string"},"description":"The names of the destination tables in the Tablestore instance. **Note:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`.\n"}},"type":"object"},"alicloud:hbr/OtsBackupPlanRule:OtsBackupPlanRule":{"properties":{"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`.\n"},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"ruleName":{"type":"string","description":"The name of the backup rule.**Note:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`. \u003cspan pulumi-lang-nodejs=\"`ruleName`\" pulumi-lang-dotnet=\"`RuleName`\" pulumi-lang-go=\"`ruleName`\" pulumi-lang-python=\"`rule_name`\" pulumi-lang-yaml=\"`ruleName`\" pulumi-lang-java=\"`ruleName`\"\u003e`rule_name`\u003c/span\u003e should be unique for the specific user.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`. It means to execute a backup task every `{interval}` starting from `{startTime}`. The backup task for the elapsed time will not be compensated. If the last backup task has not completed yet, the next backup task will not be triggered.\n- `startTime` Backup start time, UNIX time seconds.\n"}},"type":"object"},"alicloud:hbr/PolicyBindingAdvancedOptions:PolicyBindingAdvancedOptions":{"properties":{"ossDetail":{"$ref":"#/types/alicloud:hbr/PolicyBindingAdvancedOptionsOssDetail:PolicyBindingAdvancedOptionsOssDetail","description":"OSS Backup Advanced options See \u003cspan pulumi-lang-nodejs=\"`ossDetail`\" pulumi-lang-dotnet=\"`OssDetail`\" pulumi-lang-go=\"`ossDetail`\" pulumi-lang-python=\"`oss_detail`\" pulumi-lang-yaml=\"`ossDetail`\" pulumi-lang-java=\"`ossDetail`\"\u003e`oss_detail`\u003c/span\u003e below.\n"},"udmDetail":{"$ref":"#/types/alicloud:hbr/PolicyBindingAdvancedOptionsUdmDetail:PolicyBindingAdvancedOptionsUdmDetail","description":"ECS Backup Advanced options See \u003cspan pulumi-lang-nodejs=\"`udmDetail`\" pulumi-lang-dotnet=\"`UdmDetail`\" pulumi-lang-go=\"`udmDetail`\" pulumi-lang-python=\"`udm_detail`\" pulumi-lang-yaml=\"`udmDetail`\" pulumi-lang-java=\"`udmDetail`\"\u003e`udm_detail`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["udmDetail"]}}},"alicloud:hbr/PolicyBindingAdvancedOptionsOssDetail:PolicyBindingAdvancedOptionsOssDetail":{"properties":{"ignoreArchiveObject":{"type":"boolean","description":"Archived objects are not prompted in task statistics and failed file lists\n"},"inventoryCleanupPolicy":{"type":"string","description":"Whether to delete the inventory file after the backup. Valid only when using the OSS inventory. Supported: NO_CLEANUP: Do not delete. DELETE_CURRENT: Deletes the current file. DELETE_CURRENT_AND_PREVIOUS: Deletes all files.\n"},"inventoryId":{"type":"string","description":"The name of the OSS inventory. If the value is not empty, the OSS inventory will be used for performance tuning. We recommend that you use a list to improve incremental performance when backing up more than 0.1 billion OSS objects. OSS charges the storage fee for the list file separately. It takes time to generate the OSS inventory file. The backup may fail before the OSS inventory file is generated. You can wait for the next cycle.\n"}},"type":"object"},"alicloud:hbr/PolicyBindingAdvancedOptionsUdmDetail:PolicyBindingAdvancedOptionsUdmDetail":{"properties":{"destinationKmsKeyId":{"type":"string","description":"Custom KMS key ID of encrypted copy\n"},"diskIdLists":{"type":"array","items":{"type":"string"},"description":"The list of backup disks. If it is empty, all disks are backed up.\n"},"excludeDiskIdLists":{"type":"array","items":{"type":"string"},"description":"List of cloud disk IDs that are not backed up\n"}},"type":"object"},"alicloud:hbr/PolicyRule:PolicyRule":{"properties":{"archiveDays":{"type":"integer","description":"This parameter is required only when the value of `RuleType` is **TRANSITION. The minimum value is 30, and the Retention-ArchiveDays needs to be greater than or equal to 60\n"},"backupType":{"type":"string","description":"This parameter is required only when the `RuleType` value is **BACKUP. Backup Type\n"},"dataSourceFilters":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/PolicyRuleDataSourceFilter:PolicyRuleDataSourceFilter"},"description":"This parameter is required only when the value of RuleType is TAG. See \u003cspan pulumi-lang-nodejs=\"`dataSourceFilters`\" pulumi-lang-dotnet=\"`DataSourceFilters`\" pulumi-lang-go=\"`dataSourceFilters`\" pulumi-lang-python=\"`data_source_filters`\" pulumi-lang-yaml=\"`dataSourceFilters`\" pulumi-lang-java=\"`dataSourceFilters`\"\u003e`data_source_filters`\u003c/span\u003e below.\n"},"keepLatestSnapshots":{"type":"integer","description":"This parameter is required only when `RuleType` is set to `BACKUP`\n"},"replicationRegionId":{"type":"string","description":"Only when the `RuleType` value is\n"},"retention":{"type":"integer","description":"Retention time, in days\n"},"retentionRules":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/PolicyRuleRetentionRule:PolicyRuleRetentionRule"},"description":"This parameter is required only when the value of `RuleType` is `TRANSITION`. See \u003cspan pulumi-lang-nodejs=\"`retentionRules`\" pulumi-lang-dotnet=\"`RetentionRules`\" pulumi-lang-go=\"`retentionRules`\" pulumi-lang-python=\"`retention_rules`\" pulumi-lang-yaml=\"`retentionRules`\" pulumi-lang-java=\"`retentionRules`\"\u003e`retention_rules`\u003c/span\u003e below.\n"},"ruleId":{"type":"string","description":"Rule ID\n"},"ruleType":{"type":"string","description":"Rule Type\n"},"schedule":{"type":"string","description":"This parameter is required only if you set the `RuleType` parameter to `BACKUP`. This parameter specifies the backup schedule settings. Format: `I|{startTime}|{interval}`. The system runs the first backup job at a point in time that is specified in the {startTime} parameter and the subsequent backup jobs at an interval that is specified in the {interval} parameter. The system does not run a backup job before the specified point in time. Each backup job, except the first one, starts only after the previous backup job is complete. For example, `I|1631685600|P1D` specifies that the system runs the first backup job at 14:00:00 on September 15, 2021 and the subsequent backup jobs once a day.  *   startTime: the time at which the system starts to run a backup job. The time must follow the UNIX time format. Unit: seconds. *   interval: the interval at which the system runs a backup job. The interval must follow the ISO 8601 standard. For example, PT1H specifies an interval of one hour. P1D specifies an interval of one day.\n"},"tagFilters":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/PolicyRuleTagFilter:PolicyRuleTagFilter"},"description":"This parameter is required only when the value of RuleType is TAG. Resource label filtering rules. See \u003cspan pulumi-lang-nodejs=\"`tagFilters`\" pulumi-lang-dotnet=\"`TagFilters`\" pulumi-lang-go=\"`tagFilters`\" pulumi-lang-python=\"`tag_filters`\" pulumi-lang-yaml=\"`tagFilters`\" pulumi-lang-java=\"`tagFilters`\"\u003e`tag_filters`\u003c/span\u003e below.\n"},"vaultId":{"type":"string","description":"Vault ID\n"}},"type":"object","required":["ruleType"],"language":{"nodejs":{"requiredOutputs":["archiveDays","ruleId","ruleType"]}}},"alicloud:hbr/PolicyRuleDataSourceFilter:PolicyRuleDataSourceFilter":{"properties":{"sourceType":{"type":"string","description":"The data source type. Value range: UDM_ECS: indicates that the ECS machine is backed up. This data source type is supported only when PolicyType is set to UDM_ECS_ONLY. OSS: indicates an OSS backup. This data source type is supported only when the PolicyType value is STANDARD. NAS: indicates an Alibaba Cloud NAS backup. This data source type is supported only when the PolicyType value is STANDARD. ECS_FILE: indicates an ECS file backup. This data source type is supported only when the PolicyType value is STANDARD. OTS: indicates the Tablestore backup. This data source type is supported only when the PolicyType value is STANDARD.\n"}},"type":"object"},"alicloud:hbr/PolicyRuleRetentionRule:PolicyRuleRetentionRule":{"properties":{"advancedRetentionType":{"type":"string","description":"Valid values: \u003cspan pulumi-lang-nodejs=\"`annually`\" pulumi-lang-dotnet=\"`Annually`\" pulumi-lang-go=\"`annually`\" pulumi-lang-python=\"`annually`\" pulumi-lang-yaml=\"`annually`\" pulumi-lang-java=\"`annually`\"\u003e`annually`\u003c/span\u003e, `MONTHLY`, and `WEEKLY`:- \u003cspan pulumi-lang-nodejs=\"`annually`\" pulumi-lang-dotnet=\"`Annually`\" pulumi-lang-go=\"`annually`\" pulumi-lang-python=\"`annually`\" pulumi-lang-yaml=\"`annually`\" pulumi-lang-java=\"`annually`\"\u003e`annually`\u003c/span\u003e: the first backup of each year. - `MONTHLY`: The first backup of the month. - `WEEKLY`: The first backup of the week. - `DAILY`: The first backup of the day.\n"},"retention":{"type":"integer","description":"Retention time, in days\n"}},"type":"object"},"alicloud:hbr/PolicyRuleTagFilter:PolicyRuleTagFilter":{"properties":{"key":{"type":"string","description":"The tag key.\n"},"operator":{"type":"string","description":"Tag matching rules, support EQUAL: Match tag key and tag value. NOT: matches the tag key, but does NOT match the tag value.\n"},"value":{"type":"string","description":"The label value, which is empty and represents any value.\n"}},"type":"object"},"alicloud:hbr/RestoreJobOtsDetail:RestoreJobOtsDetail":{"properties":{"overwriteExisting":{"type":"boolean","description":"Whether to overwrite the existing table storage recovery task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["overwriteExisting"]}}},"alicloud:hbr/ServerBackupPlanDetail:ServerBackupPlanDetail":{"properties":{"appConsistent":{"type":"boolean","description":"Whether to turn on application consistency. The application consistency snapshot backs up memory data and ongoing database transactions at the time of snapshot creation to ensure the consistency of application system data and database transactions. By applying consistent snapshots, there is no data damage or loss, so as to avoid log rollback during database startup and ensure that the application is in a consistent startup state. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"destinationRegionId":{"type":"string","description":"Only vaild when DoCopy is true. The destination region ID when replicating to another region. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"destinationRetention":{"type":"integer","description":"Only vaild when DoCopy is true. The retention days of the destination backup. When not specified, the destination backup will be saved permanently. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"diskIdLists":{"type":"array","items":{"type":"string"},"description":"The list of cloud disks to be backed up in the ECS instance. When not specified, a snapshot is executed for all the disks on the ECS instance.\n"},"doCopy":{"type":"boolean","description":"Whether replicate to another region. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enableFsFreeze":{"type":"boolean","description":"Only the Linux system is valid. Whether to use the Linux FsFreeze mechanism to ensure that the file system is read-only consistent before creating a storage snapshot. The default is True. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"postScriptPath":{"type":"string","description":"Only vaild for the linux system when AppConsistent is true. The application thaw script path (e.g. /tmp/postscript.sh). The postscript.sh script must meet the following conditions: in terms of permissions, only the root user as the owner has read, write, and execute permissions, that is, 700 permissions. In terms of content, the script content needs to be customized according to the application itself. This indicates that this parameter must be set when creating an application consistency snapshot for a Linux instance. If the script is set incorrectly (for example, permissions, save path, or file name are set incorrectly), the resulting snapshot is a file system consistency snapshot.\n"},"preScriptPath":{"type":"string","description":"Only vaild for the linux system when AppConsistent is true. Apply the freeze script path (e.g. /tmp/prescript.sh). prescript.sh scripts must meet the following conditions: in terms of permissions, only root, as the owner, has read, write, and execute permissions, that is, 700 permissions. In terms of content, the script content needs to be customized according to the application itself. This indicates that this parameter must be set when creating an application consistency snapshot for a Linux instance. If the script is set incorrectly (for example, permissions, save path, or file name are set incorrectly), the resulting snapshot is a file system consistency snapshot.\n"},"snapshotGroup":{"type":"boolean","description":"Whether to turn on file system consistency. If SnapshotGroup is true, when AppConsistent is true but the relevant conditions are not met or AppConsistent is false, the resulting snapshot will be a file system consistency snapshot. The file system consistency ensures that the file system memory and disk information are synchronized at the time of snapshot creation, and the file system write operation is frozen to make the file system in a consistent state. The file system consistency snapshot can prevent the operating system from performing disk inspection and repair operations such as CHKDSK or fsck after restart. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"timeoutInSeconds":{"type":"integer","description":"Only the Linux system is valid, and the IO freeze timeout period. The default is 30 seconds.\n"}},"type":"object","required":["appConsistent","snapshotGroup"]},"alicloud:hbr/getBackupJobsFilter:getBackupJobsFilter":{"properties":{"key":{"type":"string","description":"The key of the field to filter. Valid values: `PlanId`, `VaultId`, `InstanceId`, `Bucket`, `FileSystemId`, `CompleteTime`.\n"},"operator":{"type":"string","description":"The operator of the field to filter. Valid values: `EQUAL`, `NOT_EQUAL`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL`, `LESS_THAN`, `LESS_THAN_OR_EQUAL`, `BETWEEN`, `IN`.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Set of values that are accepted for the given field.\n\n\u003e **NOTE:** Numeric types such as `CompleteTime` do not support `IN` operations for the time being.\n"}},"type":"object"},"alicloud:hbr/getBackupJobsJob:getBackupJobsJob":{"properties":{"actualBytes":{"type":"string","description":"The actual data volume of the backup task (After deduplication) . Unit byte.\n"},"actualItems":{"type":"string","description":"The actual number of items in the backup task. (Currently only file backup is available).\n"},"backJobName":{"type":"string","description":"The name of backup job.\n"},"backupJobId":{"type":"string","description":"The ID of the backup job.\n"},"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`(full backup).\n"},"bucket":{"type":"string","description":"The name of target OSS bucket.\n"},"bytesDone":{"type":"string","description":"The amount of backup data (Incremental). Unit byte.\n"},"bytesTotal":{"type":"string","description":"The total amount of data sources. Unit byte.\n"},"completeTime":{"type":"string","description":"The completion time of backup job. UNIX time seconds.\n"},"createTime":{"type":"string","description":"The creation time of backup job. UNIX time seconds.\n"},"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sourceType`\" pulumi-lang-dotnet=\"`SourceType`\" pulumi-lang-go=\"`sourceType`\" pulumi-lang-python=\"`source_type`\" pulumi-lang-yaml=\"`sourceType`\" pulumi-lang-java=\"`sourceType`\"\u003e`source_type`\u003c/span\u003e is `ECS_FILE`, `NAS`, `OSS` or `OTS`.\n"},"crossAccountType":{"type":"string","description":"The type of the cross account backup. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sourceType`\" pulumi-lang-dotnet=\"`SourceType`\" pulumi-lang-go=\"`sourceType`\" pulumi-lang-python=\"`source_type`\" pulumi-lang-yaml=\"`sourceType`\" pulumi-lang-java=\"`sourceType`\"\u003e`source_type`\u003c/span\u003e is `ECS_FILE`, `NAS`, `OSS` or `OTS`.\n"},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sourceType`\" pulumi-lang-dotnet=\"`SourceType`\" pulumi-lang-go=\"`sourceType`\" pulumi-lang-python=\"`source_type`\" pulumi-lang-yaml=\"`sourceType`\" pulumi-lang-java=\"`sourceType`\"\u003e`source_type`\u003c/span\u003e is `ECS_FILE`, `NAS`, `OSS` or `OTS`.\n"},"errorMessage":{"type":"string","description":"Error message.\n"},"exclude":{"type":"string","description":"Exclude path. String of Json list. Up to 255 characters. e.g. `\"[\\\"/home/work\\\"]\"`\n"},"fileSystemId":{"type":"string","description":"The ID of destination file system.\n"},"id":{"type":"string","description":"The ID of the backup job.\n"},"include":{"type":"string","description":"Include path. String of Json list. Up to 255 characters. e.g. `\"[\\\"/var\\\"]\"`\n"},"instanceId":{"type":"string","description":"The ID of target ECS instance.\n"},"itemsDone":{"type":"string","description":"The number of items restore job recovered.\n"},"itemsTotal":{"type":"string","description":"The total number of items restore job recovered.\n"},"nasCreateTime":{"type":"string","description":"File system creation time. UNIX time in seconds.\n"},"otsDetails":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/getBackupJobsJobOtsDetail:getBackupJobsJobOtsDetail"}},"paths":{"type":"array","items":{"type":"string"},"description":"List of backup path. e.g. `[\"/home\", \"/var\"]`.\n"},"planId":{"type":"string","description":"The ID of a backup plan.\n"},"prefix":{"type":"string","description":"The prefix of Oss bucket files.\n"},"progress":{"type":"string","description":"Backup progress. The value is 100%*100.\n"},"sourceType":{"type":"string","description":"The type of data source. Valid Values: `ECS_FILE`, `OSS`, `NAS`, `UDM_DISK`.\n"},"startTime":{"type":"string","description":"The scheduled backup start time. UNIX time seconds.\n"},"status":{"type":"string","description":"The status of restore job. Valid values: `COMPLETE` , `PARTIAL_COMPLETE`, `FAILED`.\n"},"updatedTime":{"type":"string","description":"The update time of backup job. UNIX time seconds.\n"},"vaultId":{"type":"string","description":"The ID of backup vault.\n"}},"type":"object","required":["actualBytes","actualItems","backJobName","backupJobId","backupType","bucket","bytesDone","bytesTotal","completeTime","createTime","crossAccountRoleName","crossAccountType","crossAccountUserId","errorMessage","exclude","fileSystemId","id","include","instanceId","itemsDone","itemsTotal","nasCreateTime","otsDetails","paths","planId","prefix","progress","sourceType","startTime","status","updatedTime","vaultId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getBackupJobsJobOtsDetail:getBackupJobsJobOtsDetail":{"properties":{"tableNames":{"type":"array","items":{"type":"string"}}},"type":"object","required":["tableNames"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getEcsBackupClientsClient:getEcsBackupClientsClient":{"properties":{"archType":{"type":"string","description":"The system architecture of client, only the ECS File Backup Client is available. Valid values: `AMD64` , \u003cspan pulumi-lang-nodejs=\"`386`\" pulumi-lang-dotnet=\"`386`\" pulumi-lang-go=\"`386`\" pulumi-lang-python=\"`386`\" pulumi-lang-yaml=\"`386`\" pulumi-lang-java=\"`386`\"\u003e`386`\u003c/span\u003e.\n"},"backupStatus":{"type":"string","description":"Client protected status. Valid values: `UNPROTECTED`, `PROTECTED`.\n"},"clientType":{"type":"string","description":"The type of client. Valid values: `ECS_CLIENT` (ECS File Backup Client).\n"},"clientVersion":{"type":"string","description":"The version of client.\n"},"createTime":{"type":"string","description":"The creation time of client. Unix time in seconds.\n"},"dataNetworkType":{"type":"string","description":"The data plane access point type. Valid Values: `PUBLIC`, `VPC`, `CLASSIC`.\n"},"dataProxySetting":{"type":"string","description":"The data plane proxy settings. Valid Values: `DISABLE`, `USE_CONTROL_PROXY`, `CUSTOM`.\n* `USE_CONTROL_PROXY` (Default, the same with control plane)\n* `CUSTOM` (Custom configuration items for the HTTP protocol).\n"},"ecsBackupClientId":{"type":"string","description":"The first ID of the resource.\n"},"hostname":{"type":"string","description":"The hostname of ECS instance.\n"},"id":{"type":"string","description":"The ID of the Ecs Backup Client.\n"},"instanceId":{"type":"string","description":"The ID of ECS instance. When the client type is ECS file backup client, it indicates the ID of ECS instance. When the client type is a local file backup client, it is a hardware fingerprint generated based on system information.\n"},"instanceName":{"type":"string","description":"The name of ECS instance.\n"},"lastHeartBeatTime":{"type":"string","description":"The last heartbeat time of client. Unix Time Seconds.\n"},"maxClientVersion":{"type":"string","description":"The latest version of client.\n"},"maxCpuCore":{"type":"string","description":"The number of CPU cores used by a single backup task, 0 means no restrictions.\n"},"maxWorker":{"type":"string","description":"The number of concurrent jobs for a single backup task, 0 means no restrictions.\n"},"osType":{"type":"string","description":"The operating system type of client, only the ECS File Backup Client is available. Valid values: \u003cspan pulumi-lang-nodejs=\"`windows`\" pulumi-lang-dotnet=\"`Windows`\" pulumi-lang-go=\"`windows`\" pulumi-lang-python=\"`windows`\" pulumi-lang-yaml=\"`windows`\" pulumi-lang-java=\"`windows`\"\u003e`windows`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\"\u003e`linux`\u003c/span\u003e.\n"},"privateIpv4":{"type":"string","description":"Intranet IP address of the instance, only available for ECS file backup client.\n"},"proxyHost":{"type":"string","description":"Custom data plane proxy server host address.\n"},"proxyPassword":{"type":"string","description":"The password of custom data plane proxy server.\n"},"proxyPort":{"type":"string","description":"Custom data plane proxy server host port.\n"},"proxyUser":{"type":"string","description":"The username of custom data plane proxy server.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"updatedTime":{"type":"string","description":"The update time of client. Unix Time Seconds.\n"},"useHttps":{"type":"boolean","description":"Indicates whether to use the HTTPS protocol. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"zoneId":{"type":"string","description":"The ID of Zone.\n"}},"type":"object","required":["archType","backupStatus","clientType","clientVersion","createTime","dataNetworkType","dataProxySetting","ecsBackupClientId","hostname","id","instanceId","instanceName","lastHeartBeatTime","maxClientVersion","maxCpuCore","maxWorker","osType","privateIpv4","proxyHost","proxyPassword","proxyPort","proxyUser","status","updatedTime","useHttps","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getEcsBackupPlansPlan:getEcsBackupPlansPlan":{"properties":{"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`.\n"},"createTime":{"type":"string"},"createdTime":{"type":"string","description":"The creation time of the backup plan. UNIX time in seconds.\n"},"detail":{"type":"string"},"disabled":{"type":"boolean","description":"Whether to be suspended. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ecsBackupPlanId":{"type":"string","description":"The ID of ecs backup plan.\n"},"ecsBackupPlanName":{"type":"string","description":"The name of the backup plan.\n"},"exclude":{"type":"string","description":"Exclude path. String of Json list. Up to 255 characters. e.g. `\"[\\\"/home/work\\\"]\"`\n"},"id":{"type":"string","description":"The ID of ecs backup plan.\n"},"include":{"type":"string","description":"Include path. String of Json list. Up to 255 characters. e.g. `\"[\\\"/var\\\"]\"`\n"},"instanceId":{"type":"string","description":"The ID of ECS instance.\n"},"options":{"type":"string","description":"Windows operating system with application consistency using VSS. eg: {`UseVSS`:false}.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"Backup path. e.g. `[\"/home\", \"/var\"]`\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`. It means to execute a backup task every `{interval}` starting from `{startTime}`. The backup task for the elapsed time will not be compensated. If the last backup task has not completed yet, the next backup task will not be triggered.\n* `startTime` Backup start time, UNIX time seconds.\n"},"sourceType":{"type":"string","description":"The type of backup source.\n"},"speedLimit":{"type":"string","description":"Flow control. The format is: {start}|{end}|{bandwidth}. Use `|` to separate multiple flow control configurations, multiple flow control configurations not allowed to have overlapping times.\n"},"updatedTime":{"type":"string","description":"The update time of the backup plan. UNIX time in seconds.\n"},"vaultId":{"type":"string","description":"The ID of Backup vault.\n"}},"type":"object","required":["backupType","createTime","createdTime","detail","disabled","ecsBackupPlanId","ecsBackupPlanName","exclude","id","include","instanceId","options","paths","retention","schedule","sourceType","speedLimit","updatedTime","vaultId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getHanaBackupClientsHanaBackupClient:getHanaBackupClientsHanaBackupClient":{"properties":{"alertSetting":{"type":"string","description":"The alert settings.\n"},"clientId":{"type":"string","description":"The ID of the backup client.\n"},"clientName":{"type":"string","description":"The name of the backup client.\n"},"clientType":{"type":"string","description":"The type of the backup client.\n"},"clientVersion":{"type":"string","description":"The version number of the backup client.\n"},"clusterId":{"type":"string","description":"The ID of the SAP HANA instance.\n"},"id":{"type":"string","description":"The id of the Hana Backup Client. It formats as `\u003cvault_id\u003e:\u003cclient_id\u003e`.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"instanceName":{"type":"string","description":"The name of the ECS instance.\n"},"maxVersion":{"type":"string","description":"The maximum version number of the backup client.\n"},"networkType":{"type":"string","description":"The network type.\n"},"status":{"type":"string","description":"The status of the Hana Backup Client. Valid Values: `REGISTERED`, `ACTIVATED`, `DEACTIVATED`, `INSTALLING`, `INSTALL_FAILED`, `NOT_INSTALLED`, `UPGRADING`, `UPGRADE_FAILED`, `UNINSTALLING`, `UNINSTALL_FAILED`, `STOPPED`, `UNKNOWN`.\n"},"statusMessage":{"type":"string","description":"The status information.\n"},"useHttps":{"type":"boolean","description":"Indicates whether data is transmitted over HTTPS.\n"},"vaultId":{"type":"string","description":"The ID of the backup vault.\n"}},"type":"object","required":["alertSetting","clientId","clientName","clientType","clientVersion","clusterId","id","instanceId","instanceName","maxVersion","networkType","status","statusMessage","useHttps","vaultId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getHanaBackupPlansPlan:getHanaBackupPlansPlan":{"properties":{"backupPrefix":{"type":"string","description":"The backup prefix.\n"},"backupType":{"type":"string","description":"The backup type.\n"},"clusterId":{"type":"string","description":"The ID of the SAP HANA instance.\n"},"databaseName":{"type":"string","description":"The name of the database.\n"},"id":{"type":"string","description":"The ID of the resource.\n"},"pageTotal":{"type":"string"},"planId":{"type":"string","description":"The ID of the backup plan.\n"},"planName":{"type":"string","description":"The name of the backup plan.\n"},"schedule":{"type":"string","description":"The backup policy.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"vaultId":{"type":"string","description":"The ID of the backup vault.\n"}},"type":"object","required":["backupPrefix","backupType","clusterId","databaseName","id","pageTotal","planId","planName","schedule","status","vaultId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getHanaInstancesInstance:getHanaInstancesInstance":{"properties":{"alertSetting":{"type":"string","description":"The alert settings. Valid value: `INHERITED`, which indicates that the backup client sends alert notifications in the same way as the backup vault.\n"},"hanaInstanceId":{"type":"string","description":"The ID of the SAP HANA instance.\n"},"hanaName":{"type":"string","description":"The name of the SAP HANA instance.\n"},"host":{"type":"string","description":"The private or internal IP address of the host where the primary node of the SAP HANA instance resides.\n"},"id":{"type":"string","description":"The ID of the Hana Instance. The value formats as `\u003cvault_id\u003e:\u003chana_instance_id\u003e`.\n"},"instanceNumber":{"type":"integer","description":"The instance number of the SAP HANA system.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the SAP HANA instance.\n"},"statusMessage":{"type":"string","description":"The status information.\n"},"useSsl":{"type":"boolean","description":"Indicates whether the SAP HANA instance is connected over Secure Sockets Layer (SSL).\n"},"userName":{"type":"string","description":"The username of the SYSTEMDB database.\n"},"validateCertificate":{"type":"boolean","description":"Indicates whether the SSL certificate of the SAP HANA instance is verified.\n"},"vaultId":{"type":"string","description":"The ID of the backup vault.\n"}},"type":"object","required":["alertSetting","hanaInstanceId","hanaName","host","id","instanceNumber","resourceGroupId","status","statusMessage","useSsl","userName","validateCertificate","vaultId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getNasBackupPlansPlan:getNasBackupPlansPlan":{"properties":{"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`.\n"},"createTime":{"type":"string","description":"File System Creation Time. **Note** The time format of the API adopts the ISO 8601 format, such as `2021-07-09T15:45:30CST`.\n"},"createdTime":{"type":"string","description":"The creation time of the backup plan. UNIX time in seconds.\n"},"disabled":{"type":"boolean","description":"Whether to be suspended. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"fileSystemId":{"type":"string","description":"The File System ID of Nas.\n"},"id":{"type":"string","description":"The ID of Nas backup plan.\n"},"nasBackupPlanId":{"type":"string","description":"The ID of Nas backup plan.\n"},"nasBackupPlanName":{"type":"string","description":"The name of the resource.\n"},"options":{"type":"string","description":"Options field of Nas backup plan.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"List of backup path. Up to 65536 Characters. e.g.`[\"/home\", \"/var\"]`\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`. It means to execute a backup task every `{interval}` starting from `{startTime}`. The backup task for the elapsed time will not be compensated. If the last backup task has not completed yet, the next backup task will not be triggered.\n* `startTime` Backup start time, UNIX time seconds.\n"},"updatedTime":{"type":"string","description":"The update time of the backup plan. UNIX time in seconds.\n"},"vaultId":{"type":"string","description":"The ID of backup vault.\n"}},"type":"object","required":["backupType","createTime","createdTime","disabled","fileSystemId","id","nasBackupPlanId","nasBackupPlanName","options","paths","retention","schedule","updatedTime","vaultId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getOssBackupPlansPlan:getOssBackupPlansPlan":{"properties":{"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`.\n"},"bucket":{"type":"string","description":"The name of OSS bucket.\n"},"createdTime":{"type":"string","description":"The creation time of the backup plan. UNIX time in seconds.\n"},"disabled":{"type":"boolean","description":"Whether to be suspended. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"id":{"type":"string","description":"The ID of Oss backup plan.\n"},"ossBackupPlanId":{"type":"string","description":"The ID of Oss backup plan.\n"},"ossBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"prefix":{"type":"string","description":"Backup prefix.\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: I|{startTime}|{interval}. It means to execute a backup task every {interval} starting from {startTime}. The backup task for the elapsed time will not be compensated. If the last backup task is not completed yet, the next backup task will not be triggered.\n* `startTime` Backup start time, UNIX time seconds.\n"},"updatedTime":{"type":"string","description":"The update time of the backup plan. UNIX time in seconds.\n"},"vaultId":{"type":"string","description":"The ID of backup vault.\n"}},"type":"object","required":["backupType","bucket","createdTime","disabled","id","ossBackupPlanId","ossBackupPlanName","prefix","retention","schedule","updatedTime","vaultId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getOtsBackupPlansPlan:getOtsBackupPlansPlan":{"properties":{"backupType":{"type":"string","description":"The Backup type. Valid values: `COMPLETE`.\n"},"createdTime":{"type":"string","description":"The creation time of the backup plan. UNIX time in seconds.\n"},"disabled":{"type":"boolean","description":"Whether to be suspended. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"id":{"type":"string","description":"The ID of ots backup plan.\n"},"otsBackupPlanId":{"type":"string","description":"The ID of ots backup plan.\n"},"otsBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"otsDetails":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/getOtsBackupPlansPlanOtsDetail:getOtsBackupPlansPlanOtsDetail"}},"retention":{"type":"string","description":"The Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"The Backup strategy. Optional format: I|{startTime}|{interval}. It means to execute a backup task every {interval} starting from {startTime}. The backup task for the elapsed time will not be compensated. If the last backup task is not completed yet, the next backup task will not be triggered.\n* `startTime` Backup start time, UNIX time seconds.\n"},"sourceType":{"type":"string","description":"The type of the data source.\n"},"updatedTime":{"type":"string","description":"The update time of the backup plan. UNIX time in seconds.\n*ots_detail - The details about the Tablestore instance.\n"},"vaultId":{"type":"string","description":"The ID of backup vault.\n"}},"type":"object","required":["backupType","createdTime","disabled","id","otsBackupPlanId","otsBackupPlanName","otsDetails","retention","schedule","sourceType","updatedTime","vaultId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getOtsBackupPlansPlanOtsDetail:getOtsBackupPlansPlanOtsDetail":{"properties":{"tableNames":{"type":"array","items":{"type":"string"}}},"type":"object","required":["tableNames"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getOtsSnapshotsSnapshot:getOtsSnapshotsSnapshot":{"properties":{"actualBytes":{"type":"string","description":"The actual amount of backup snapshots after duplicates are removed. Unit: bytes.\n"},"backupType":{"type":"string","description":"The backup type. Valid value: `COMPLETE`, which indicates full backup.\n"},"bytesTotal":{"type":"string","description":"The total amount of data. Unit: bytes.\n"},"completeTime":{"type":"string","description":"The time when the backup snapshot was completed. This value is a UNIX timestamp. Unit: seconds.\n"},"createTime":{"type":"string","description":"The time when the Table store instance was created. This value is a UNIX timestamp. Unit: seconds.\n"},"createdTime":{"type":"string","description":"The time when the backup snapshot was created. This value is a UNIX timestamp. Unit: seconds.\n"},"id":{"type":"string","description":"The ID of the backup snapshot.\n"},"instanceName":{"type":"string","description":"The name of the Table store instance.\n"},"jobId":{"type":"string","description":"The ID of the backup job.\n"},"parentSnapshotHash":{"type":"string","description":"The hash value of the parent backup snapshot.\n"},"rangeEnd":{"type":"string","description":"The time when the backup job ended. This value is a UNIX timestamp. Unit: milliseconds.\n"},"rangeStart":{"type":"string","description":"The time when the backup job started. This value is a UNIX timestamp. Unit: milliseconds.\n"},"retention":{"type":"string","description":"The retention period of the backup snapshot.\n"},"snapshotHash":{"type":"string","description":"The hash value of the backup snapshot.\n"},"snapshotId":{"type":"string","description":"The ID of the backup snapshot.\n"},"sourceType":{"type":"string","description":"The type of the data source. Valid values: `ECS_FILE`,`PARTIAL_COMPLETE`,`FAILED`\n"},"startTime":{"type":"string","description":"The start time of the backup snapshot. This value is a UNIX timestamp. Unit: seconds.\n"},"status":{"type":"string","description":"The status of the backup job. Valid values: `COMPLETE`,`PARTIAL_COMPLETE`,`FAILED`.\n"},"tableName":{"type":"string","description":"The name of the table in the Table store instance.\n"},"updatedTime":{"type":"string","description":"The time when the backup snapshot was updated. This value is a UNIX timestamp. Unit: seconds.\n"},"vaultId":{"type":"string","description":"The ID of the backup vault that stores the backup snapshot.\n"}},"type":"object","required":["actualBytes","backupType","bytesTotal","completeTime","createTime","createdTime","id","instanceName","jobId","parentSnapshotHash","rangeEnd","rangeStart","retention","snapshotHash","snapshotId","sourceType","startTime","status","tableName","updatedTime","vaultId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getReplicationVaultRegionsRegion:getReplicationVaultRegionsRegion":{"properties":{"replicationRegionId":{"type":"string","description":"The ID of the replication region.\n"}},"type":"object","required":["replicationRegionId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getRestoreJobsJob:getRestoreJobsJob":{"properties":{"actualBytes":{"type":"string","description":"The actual size of Snapshot.\n"},"actualItems":{"type":"string","description":"The actual number of files.\n"},"bytesDone":{"type":"string","description":"The size of restore job recovered.\n"},"bytesTotal":{"type":"string","description":"The total size of restore job recovered.\n"},"completeTime":{"type":"string","description":"The completion time of restore Job.\n"},"createTime":{"type":"string","description":"The creation time of restore job.\n"},"errorFile":{"type":"string"},"errorMessage":{"type":"string","description":"The error message of recovery task execution.\n"},"expireTime":{"type":"string","description":"The expiration time of restore job. Unix Time in seconds.\n"},"id":{"type":"string","description":"The ID of the restore job.\n"},"itemsDone":{"type":"string","description":"The number of items restore job recovered.\n"},"itemsTotal":{"type":"string","description":"The total number of items restore job recovered.\n"},"options":{"type":"string","description":"Recovery Options.\n"},"parentId":{"type":"string"},"progress":{"type":"integer","description":"The recovery progress.\n"},"restoreJobId":{"type":"string","description":"The ID of restore job.\n"},"restoreType":{"type":"string","description":"The type of recovery destination. Valid Values: `ECS_FILE`, `OSS`, `NAS`.\n"},"snapshotHash":{"type":"string","description":"The hashcode of Snapshot.\n"},"snapshotId":{"type":"string","description":"The ID of Snapshot.\n"},"sourceType":{"type":"string","description":"The list of data source types. Valid values: `ECS_FILE`, `NAS`, `OSS`, `OTS_TABLE`,`UDM_ECS_ROLLBACK`.\n"},"startTime":{"type":"string","description":"The start time of restore job. Unix Time in Seconds.\n"},"status":{"type":"string","description":"The status of restore job.\n"},"targetBucket":{"type":"string","description":"The name of target ofo OSS bucket.\n"},"targetClientId":{"type":"string"},"targetCreateTime":{"type":"string","description":"The creation time of destination file system.\n"},"targetDataSourceId":{"type":"string"},"targetFileSystemId":{"type":"string","description":"The ID of destination file system.\n"},"targetInstanceId":{"type":"string","description":"The ID of target ECS instance.\n"},"targetPath":{"type":"string","description":"The target file path of ECS instance.\n"},"targetPrefix":{"type":"string","description":"The file prefix of target OSS object.\n"},"updatedTime":{"type":"string","description":"The update Time of restore job. Unix Time in Seconds.\n"},"vaultId":{"type":"string","description":"The ID of backup vault.\n"}},"type":"object","required":["actualBytes","actualItems","bytesDone","bytesTotal","completeTime","createTime","errorFile","errorMessage","expireTime","id","itemsDone","itemsTotal","options","parentId","progress","restoreJobId","restoreType","snapshotHash","snapshotId","sourceType","startTime","status","targetBucket","targetClientId","targetCreateTime","targetDataSourceId","targetFileSystemId","targetInstanceId","targetPath","targetPrefix","updatedTime","vaultId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getServerBackupPlansFilter:getServerBackupPlansFilter":{"properties":{"key":{"type":"string","description":"The key of the field to filter. Valid values: `planId`, `instanceId`, `planName`.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Set of values that are accepted for the given field.\n"}},"type":"object"},"alicloud:hbr/getServerBackupPlansPlan:getServerBackupPlansPlan":{"properties":{"createTime":{"type":"string","description":"The creation time of backup plan.\n"},"details":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/getServerBackupPlansPlanDetail:getServerBackupPlansPlanDetail"},"description":"ECS server backup plan details.\n"},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ecsServerBackupPlanId":{"type":"string","description":"The ID of the server backup plan.\n"},"ecsServerBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"id":{"type":"string","description":"The ID of the server backup plan.\n"},"instanceId":{"type":"string","description":"The ID of ECS Instance.\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"Backup strategy.\n"}},"type":"object","required":["createTime","details","disabled","ecsServerBackupPlanId","ecsServerBackupPlanName","id","instanceId","retention","schedule"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getServerBackupPlansPlanDetail:getServerBackupPlansPlanDetail":{"properties":{"appConsistent":{"type":"boolean","description":"Whether to turn on application consistency. The application consistency snapshot backs up memory data and ongoing database transactions at the time of snapshot creation to ensure the consistency of application system data and database transactions. By applying consistent snapshots, there is no data damage or loss, so as to avoid log rollback during database startup and ensure that the application is in a consistent startup state. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"destinationRegionId":{"type":"string","description":"Only vaild when DoCopy is true. The destination region ID when replicating to another region. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"destinationRetention":{"type":"integer","description":"Only vaild when DoCopy is true. The retention days of the destination backup. When not specified, the destination backup will be saved permanently. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"diskIdLists":{"type":"array","items":{"type":"string"},"description":"The list of cloud disks to be backed up in the ECS instance. When not specified, a snapshot is executed for all the disks on the ECS instance.\n"},"doCopy":{"type":"boolean","description":"Whether replicate to another region. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enableFsFreeze":{"type":"boolean","description":"Only the Linux system is valid. Whether to use the Linux FsFreeze mechanism to ensure that the file system is read-only consistent before creating a storage snapshot. The default is True. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"postScriptPath":{"type":"string","description":"Only vaild for the linux system when AppConsistent is true. The application thaw script path (e.g. /tmp/postscript.sh). The postscript.sh script must meet the following conditions: in terms of permissions, only the root user as the owner has read, write, and execute permissions, that is, 700 permissions. In terms of content, the script content needs to be customized according to the application itself. This indicates that this parameter must be set when creating an application consistency snapshot for a Linux instance. If the script is set incorrectly (for example, permissions, save path, or file name are set incorrectly), the resulting snapshot is a file system consistency snapshot.\n"},"preScriptPath":{"type":"string","description":"Only vaild for the linux system when AppConsistent is true. Apply the freeze script path (e.g. /tmp/prescript.sh). prescript.sh scripts must meet the following conditions: in terms of permissions, only root, as the owner, has read, write, and execute permissions, that is, 700 permissions. In terms of content, the script content needs to be customized according to the application itself. This indicates that this parameter must be set when creating an application consistency snapshot for a Linux instance. If the script is set incorrectly (for example, permissions, save path, or file name are set incorrectly), the resulting snapshot is a file system consistency snapshot.\n"},"snapshotGroup":{"type":"boolean","description":"Whether to turn on file system consistency. If SnapshotGroup is true, when AppConsistent is true but the relevant conditions are not met or AppConsistent is false, the resulting snapshot will be a file system consistency snapshot. The file system consistency ensures that the file system memory and disk information are synchronized at the time of snapshot creation, and the file system write operation is frozen to make the file system in a consistent state. The file system consistency snapshot can prevent the operating system from performing disk inspection and repair operations such as CHKDSK or fsck after restart. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"timeoutInSeconds":{"type":"integer","description":"Only the Linux system is valid, and the IO freeze timeout period. The default is 30 seconds.\n"}},"type":"object","required":["appConsistent","destinationRegionId","destinationRetention","diskIdLists","doCopy","enableFsFreeze","postScriptPath","preScriptPath","snapshotGroup","timeoutInSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getSnapshotsSnapshot:getSnapshotsSnapshot":{"properties":{"actualBytes":{"type":"string","description":"The actual data volume of the snapshot. Unit byte.\n"},"actualItems":{"type":"string","description":"The actual number of items in the snapshot. (Currently only file backup is available).\n"},"backupType":{"type":"string","description":"Backup type. Possible values: `COMPLETE` (full backup).\n"},"bucket":{"type":"string","description":"The name of OSS bucket.\n"},"bytesDone":{"type":"string","description":"The incremental amount of backup data. Unit byte.\n"},"bytesTotal":{"type":"string","description":"The total amount of data sources. Unit byte.\n"},"clientId":{"type":"string","description":"The ID of ECS backup client.\n"},"completeTime":{"type":"string","description":"The time when the snapshot completed. UNIX time in seconds.\n"},"createTime":{"type":"string","description":"File System Creation Time of Nas. Unix Time Seconds.\n"},"createdTime":{"type":"string","description":"Snapshot creation time. UNIX time in seconds.\n"},"errorFile":{"type":"string"},"fileSystemId":{"type":"string","description":"The ID of NAS File system.\n"},"id":{"type":"string","description":"The ID of the Snapshot.\n"},"instanceId":{"type":"string","description":"The ID of ECS instance.\n"},"itemsDone":{"type":"string","description":"The number of backup items. (Currently only file backup is available).\n"},"itemsTotal":{"type":"string","description":"The total number of data source items. (Currently only file backup is available).\n"},"jobId":{"type":"string","description":"The job ID of backup task.\n"},"parentSnapshotHash":{"type":"string","description":"The hashcode of parent backup snapshot.\n"},"path":{"type":"string","description":"Backup Path.\n"},"prefix":{"type":"string","description":"Backup file prefix.\n"},"retention":{"type":"string","description":"The number of days to keep.\n"},"snapshotHash":{"type":"string","description":"The hashcode of Snapshot.\n"},"snapshotId":{"type":"string","description":"The ID of the Snapshot.\n"},"sourceType":{"type":"string","description":"Data source type, optional values: `ECS_FILE`, `OSS`, `NAS`.\n"},"startTime":{"type":"string","description":"The start time of the snapshot. UNIX time in seconds.\n"},"status":{"type":"string","description":"The status of snapshot execution. Possible values: `COMPLETE`, `PARTIAL_COMPLETE`, `FAILED`.\n"},"updatedTime":{"type":"string","description":"The update time of snapshot. UNIX time in seconds.\n"}},"type":"object","required":["actualBytes","actualItems","backupType","bucket","bytesDone","bytesTotal","clientId","completeTime","createTime","createdTime","errorFile","fileSystemId","id","instanceId","itemsDone","itemsTotal","jobId","parentSnapshotHash","path","prefix","retention","snapshotHash","snapshotId","sourceType","startTime","status","updatedTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getUdmSnapshotsSnapshot:getUdmSnapshotsSnapshot":{"properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"diskId":{"type":"string","description":"Cloud disk ID. This field is valid only when SourceType = UDM_ECS_DISK.\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"instanceId":{"type":"string","description":"ECS instance ID\n"},"jobId":{"type":"string","description":"The ID of the backup job that creates the snapshot.\n"},"sourceType":{"type":"string","description":"Data source type. Only UDM_ECS and UDM_ECS_DISK are supported.\n"},"startTime":{"type":"integer","description":"Start Time\n"},"udmSnapshotId":{"type":"string","description":"The first ID of the resource\n"}},"type":"object","required":["createTime","diskId","id","instanceId","jobId","sourceType","startTime","udmSnapshotId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hbr/getVaultsVault:getVaultsVault":{"properties":{"bucketName":{"type":"string","description":"The name of the OSS bucket of the Vault.\n"},"bytesDone":{"type":"string","description":"The amount of backup data. The unit is Byte.\n"},"createdTime":{"type":"string","description":"The creation time of the Vault. UNIX time in seconds.\n"},"dedup":{"type":"boolean","description":"Whether to enable the deduplication function for the database backup Vault.\n"},"description":{"type":"string","description":"The description of the vault.\n"},"id":{"type":"string","description":"The ID of vault.\n"},"indexAvailable":{"type":"boolean","description":"Index available.\n"},"indexLevel":{"type":"string","description":"Index level.\n"},"indexUpdateTime":{"type":"string","description":"Index update time.\n"},"latestReplicationTime":{"type":"string","description":"The time of the last remote backup synchronization.\n"},"paymentType":{"type":"string","description":"Billing model, possible values:\n* `FREE` is not billed\n* `V1` common vault billing model, including back-end storage capacity, client licenses and other billing items\n* `V2` new version of metering mode\n* `AEGIS` Billing method for cloud security use\n* `UNI_BACKUP` the backup of deduplication database\n* `ARCHIVE` archive library.\n"},"replication":{"type":"boolean","description":"Whether it is a remote backup warehouse. It's a boolean value.\n"},"replicationSourceRegionId":{"type":"string","description":"The region ID to which the remote backup Vault belongs.\n"},"replicationSourceVaultId":{"type":"string","description":"The source vault ID of the remote backup Vault.\n"},"retention":{"type":"string","description":"Warehouse-level data retention days, only valid for archive libraries.\n"},"searchEnabled":{"type":"boolean","description":"Whether to enable the backup search function.\n"},"sourceTypes":{"type":"array","items":{"type":"string"}},"status":{"type":"string","description":"The status of Vault. Valid values: `CREATED`, `ERROR`, `UNKNOWN`.\n"},"storageSize":{"type":"string","description":"Backup vault storage usage. The unit is Byte.\n"},"updatedTime":{"type":"string","description":"The update time of the Vault. UNIX time in seconds.\n"},"vaultId":{"type":"string","description":"The ID of vault, same as \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e.\n"},"vaultName":{"type":"string","description":"The name of vault.\n"},"vaultStatusMessage":{"type":"string","description":"Error status information of Vault. Only valid for remote backup warehouses. Only the remote backup warehouse is valid.\n"},"vaultStorageClass":{"type":"string","description":"The storage class of vault. Valid values: `STANDARD`.\n"},"vaultType":{"type":"string","description":"The type of Vault. Valid values: `STANDARD`,`OTS_BACKUP`.\n"}},"type":"object","required":["bucketName","bytesDone","createdTime","dedup","description","id","indexAvailable","indexLevel","indexUpdateTime","latestReplicationTime","paymentType","replication","replicationSourceRegionId","replicationSourceVaultId","retention","searchEnabled","sourceTypes","status","storageSize","updatedTime","vaultId","vaultName","vaultStatusMessage","vaultStorageClass","vaultType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:hologram/InstanceEndpoint:InstanceEndpoint":{"properties":{"alternativeEndpoints":{"type":"string","description":"Some old instances have both AnyTunnel and SingleTunnel enabled. When switching from AnyTunnel to SingleTunnel, the endpoints of both are retained. Therefore, one more field is required to store the Endpoint.\n"},"enabled":{"type":"boolean","description":"Whether to turn on the network.\n"},"endpoint":{"type":"string","description":"Domain name.\n"},"type":{"type":"string","description":"The network type.\n"},"vpcId":{"type":"string","description":"VPC primary key.\n"},"vpcInstanceId":{"type":"string","description":"The vpc instance ID.\n"},"vswitchId":{"type":"string","description":"The ID of the virtual switch.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["alternativeEndpoints","enabled","endpoint","type","vpcId","vpcInstanceId","vswitchId"]}}},"alicloud:imm/getProjectsProject:getProjectsProject":{"properties":{"billingType":{"type":"string","description":"The billing type. **Note:** This parameter is deprecated from 2021-04-01.\n"},"computeUnit":{"type":"integer","description":"The maximum number of requests that can be processed per second. **Note:** This parameter is deprecated from 2021-04-01.\n"},"createTime":{"type":"string","description":"The creation time of project.\n"},"endpoint":{"type":"string","description":"The service address of project.\n"},"id":{"type":"string","description":"The ID of project.\n"},"modifyTime":{"type":"string","description":"The modification time of project.\n"},"project":{"type":"string","description":"The name of project.\n"},"serviceRole":{"type":"string","description":"The service role authorized to the Intelligent Media Management service to access other cloud resources.\n"},"type":{"type":"string","description":"The type of project.\n"}},"type":"object","required":["billingType","computeUnit","createTime","endpoint","id","modifyTime","project","serviceRole","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:imp/AppTemplateConfigList:AppTemplateConfigList":{"properties":{"key":{"type":"string","description":"Configuration item key. Valid values: [\"config.appCallbackAuthKey\",\"config.appCallbackUrl\",\"config.callbackClass.live\",\"config.callbackClass.user\",\"config.livePullDomain\",\"config.livePushDomain\",\"config.multipleClientsLogin\",\"config.regionId\",\"config.streamChangeCallbackUrl\"].\n"},"value":{"type":"string","description":"Configuration item content.\n\n\u003e **NOTE:**  By default, the attribute \u003cspan pulumi-lang-nodejs=\"`configList`\" pulumi-lang-dotnet=\"`ConfigList`\" pulumi-lang-go=\"`configList`\" pulumi-lang-python=\"`config_list`\" pulumi-lang-yaml=\"`configList`\" pulumi-lang-java=\"`configList`\"\u003e`config_list`\u003c/span\u003e will return all of nine keys with empty value. If you want to set one or more of the key's value, you had better also set other keys, otherwise, there will be a diff.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["key","value"]}}},"alicloud:imp/getAppTemplatesTemplate:getAppTemplatesTemplate":{"properties":{"appTemplateCreator":{"type":"string","description":"Apply template creator.\n"},"appTemplateId":{"type":"string","description":"The first ID of the resource.\n"},"appTemplateName":{"type":"string","description":"The name of the resource.\n"},"componentLists":{"type":"array","items":{"type":"string"},"description":"List of components.\n"},"configLists":{"type":"array","items":{"$ref":"#/types/alicloud:imp/getAppTemplatesTemplateConfigList:getAppTemplatesTemplateConfigList"},"description":"List of config.\n"},"createTime":{"type":"string","description":"Creation time.\n"},"id":{"type":"string","description":"The ID of the App Template.\n"},"integrationMode":{"type":"string","description":"Integration mode (Integrated SDK:paasSDK, Model Room: standardRoom).\n"},"scene":{"type":"string","description":"Application Template scenario, e-commerce business, classroom classroom.\n"},"sdkInfo":{"type":"string","description":"SDK information.\n"},"standardRoomInfo":{"type":"string","description":"Model room information.\n"},"status":{"type":"string","description":"Application template usage status.\n"}},"type":"object","required":["appTemplateCreator","appTemplateId","appTemplateName","componentLists","configLists","createTime","id","integrationMode","scene","sdkInfo","standardRoomInfo","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:imp/getAppTemplatesTemplateConfigList:getAppTemplatesTemplateConfigList":{"properties":{"key":{"type":"string","description":"Config key.\n"},"value":{"type":"string","description":"Config Value.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ims/getOidcProvidersProvider:getOidcProvidersProvider":{"properties":{"arn":{"type":"string","description":"ARN of OIDC identity provider.\n"},"clientIds":{"type":"array","items":{"type":"string"},"description":"Client ID.\n"},"createTime":{"type":"string","description":"Creation Time (UTC time).\n"},"description":{"type":"string","description":"Description of OIDC identity provider.\n"},"fingerprints":{"type":"array","items":{"type":"string"},"description":"The authentication fingerprint of the HTTPS CA certificate.\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"issuanceLimitTime":{"type":"integer","description":"The earliest time when an external IdP is allowed to issue an ID Token. If the iat field in the ID Token is greater than the current time, the request is rejected.Unit: hours. Value range: 1~168.\n"},"issuerUrl":{"type":"string","description":"The issuer URL of the OIDC identity provider.\n"},"oidcProviderName":{"type":"string","description":"The name of the OIDC identity provider.\n"},"updateTime":{"type":"string","description":"Modification Time (UTC time).\n"}},"type":"object","required":["arn","clientIds","createTime","description","fingerprints","id","issuanceLimitTime","issuerUrl","oidcProviderName","updateTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:index/MilvusInstanceComponent:MilvusInstanceComponent":{"properties":{"cuNum":{"type":"integer","description":"The number of CU. For example: 4\n"},"cuType":{"type":"string","description":"The calculation type. The default value is general, and the ram type needs to be opened with a work order.\n- general: Generic\n- ram: Capacity\n"},"diskSizeType":{"type":"string","description":"Default Normal. The Query Node is configured with the capacity type, performance type, and capacity type Large, and the rest are configured with Normal.\n"},"replica":{"type":"integer","description":"The number of component replicas. The number of highly available replicas must be greater than or equal to 2.\n"},"type":{"type":"string","description":"The component type. Different types need to be configured according to different versions.\n- Starter version: Array including standalone\n- Standard Edition: The configuration is different according to the 2.5 version and 2.6 version.\n2.5: proxy ,mix_coordinator,data,query,index\n2.6 need to configure: proxy,mix_coordinator,data,query,streaming\n"}},"type":"object","required":["cuNum","replica","type"],"language":{"nodejs":{"requiredOutputs":["cuNum","cuType","diskSizeType","replica","type"]}}},"alicloud:index/MilvusInstanceVswitchId:MilvusInstanceVswitchId":{"properties":{"vswId":{"type":"string","description":"VSwitch id, which must correspond to the zone id.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The availability zone must correspond to the vswId.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:index/OpenApiExplorerApiMcpServerAdditionalApiDescription:OpenApiExplorerApiMcpServerAdditionalApiDescription":{"properties":{"apiName":{"type":"string","description":"The API name, such as ListApiMcpServers.\n"},"apiOverrideJson":{"type":"string","description":"API structure definition information. You can use this parameter to directly modify the API description and parameter list. You can obtain the API definition information from an API endpoint such as https://api.aliyun.com/meta/v1/products/Ecs/versions/2014-05-26/apis/DescribeInstances/api.json.  \n\n\u003e **NOTE:** Note that required parameters must not be removed; otherwise, calls by the large model will continuously fail due to missing required parameters.\u003e\n"},"apiVersion":{"type":"string","description":"API version information, typically in date format, such as 2014-05-26.\n"},"constParameters":{"type":"array","items":{"$ref":"#/types/alicloud:index/OpenApiExplorerApiMcpServerAdditionalApiDescriptionConstParameter:OpenApiExplorerApiMcpServerAdditionalApiDescriptionConstParameter"},"description":"Constant configuration information. When the MCP Server needs to fix certain tool parameters to specific values, you can configure this parameter to enforce those fixed values.  \nParameters configured as constants will not be returned as tool parameters through the MCP protocol. Large models cannot define these parameters. During execution, the MCP Server merges these constant values into the API call parameters.   See \u003cspan pulumi-lang-nodejs=\"`constParameters`\" pulumi-lang-dotnet=\"`ConstParameters`\" pulumi-lang-go=\"`constParameters`\" pulumi-lang-python=\"`const_parameters`\" pulumi-lang-yaml=\"`constParameters`\" pulumi-lang-java=\"`constParameters`\"\u003e`const_parameters`\u003c/span\u003e below.\n"},"enableOutputSchema":{"type":"boolean","description":"By default, this feature is disabled, and the MCP Server returns only the structure definition of input parameters. When enabled, the MCP Server returns the output parameter structure definition via the MCP protocol.  \n\n\u003e **NOTE:** The output parameter structure may be complex. Enabling this feature significantly increases the MCP context size. Use this feature with caution.\u003e\n"},"executeCliCommand":{"type":"boolean","description":"Call interception. When this parameter is enabled, the MCP Server returns the complete CLI command name instead of directly executing the API call. Use this option when the API call is long-running or requires interaction with local files. The MCP Server enforces theoretical time limits for single-tool invocations:  \n- SSE protocol: up to 30 minutes\n- Streamable HTTP protocol: up to 1 minute\n\nFor tools whose single API execution exceeds 30 minutes, we recommend enabling this parameter. Install the CLI and complete account authentication on the machine initiating the call, then combine it with this tool for optimal results.\n\n\u003e **NOTE:** The identity used to execute the CLI differs from the identity used by the MCP Server. Pay attention to the associated security risks.\u003e\n"},"product":{"type":"string","description":"The name of the cloud product, such as Ecs.\n"}},"type":"object"},"alicloud:index/OpenApiExplorerApiMcpServerAdditionalApiDescriptionConstParameter:OpenApiExplorerApiMcpServerAdditionalApiDescriptionConstParameter":{"properties":{"key":{"type":"string","description":"Parameter location. Currently, except for ROA-style body parameters (which support up to two levels), nested parameter configurations beyond two levels are not supported. If you need to configure a composite data structure, set the Value to a JSON object.  \n\nFor RPC-style APIs, examples include:\n- Name: sets the Name parameter to a fixed value.\n\nFor ROA-style APIs, examples include:\n- Name: sets a query or path parameter named Name to a fixed value;\n- body.Name: sets the Name field within the request body to a fixed value.\n\nConfigurations such as body.Name.Sub are not supported. If you need to set body.Name as a composite structure, specify the Value as a JSON object—for example, {\"Sub\": \"xxx\"}.\n\n\u003e **NOTE:**\u003cspan pulumi-lang-nodejs=\" xMcpRegionId \" pulumi-lang-dotnet=\" XMcpRegionId \" pulumi-lang-go=\" xMcpRegionId \" pulumi-lang-python=\" x_mcp_region_id \" pulumi-lang-yaml=\" xMcpRegionId \" pulumi-lang-java=\" xMcpRegionId \"\u003e x_mcp_region_id \u003c/span\u003eis a built-in MCP parameter used to control the region and can also be configured as a fixed value to invoke services in a specified region.\u003e\n"},"value":{"type":"string","description":"This property does not have a description in the spec, please add it before generating code.\n"}},"type":"object"},"alicloud:index/OpenApiExplorerApiMcpServerApi:OpenApiExplorerApiMcpServerApi":{"properties":{"apiVersion":{"type":"string","description":"API version information, typically in date format—for example, the version for ECS is 2014-05-26.\n"},"product":{"type":"string","description":"Product code, such as Ecs.\n"},"selectors":{"type":"array","items":{"type":"string"},"description":"Selectors in array format, where each item is an API name—for example, GetApiDefinition or ListApiDefinitions. You can obtain the complete list of supported APIs from the Alibaba Cloud Developer Portal.\n"}},"type":"object","required":["apiVersion","product","selectors"]},"alicloud:index/OpenApiExplorerApiMcpServerPrompt:OpenApiExplorerApiMcpServerPrompt":{"properties":{"arguments":{"type":"array","items":{"$ref":"#/types/alicloud:index/OpenApiExplorerApiMcpServerPromptArgument:OpenApiExplorerApiMcpServerPromptArgument"},"description":"Parameters for the prompt. See \u003cspan pulumi-lang-nodejs=\"`arguments`\" pulumi-lang-dotnet=\"`Arguments`\" pulumi-lang-go=\"`arguments`\" pulumi-lang-python=\"`arguments`\" pulumi-lang-yaml=\"`arguments`\" pulumi-lang-java=\"`arguments`\"\u003e`arguments`\u003c/span\u003e below.\n"},"content":{"type":"string","description":"Full content of the prompt, supporting dynamic parameters. Parameters must be defined in Arguments, using the format {{ARG}}, where ARG supports English characters. Example: My name is: {{name}}.\n"},"description":{"type":"string","description":"Description of the prompt parameter.\n"},"name":{"type":"string","description":"Name of the prompt parameter.\n"}},"type":"object"},"alicloud:index/OpenApiExplorerApiMcpServerPromptArgument:OpenApiExplorerApiMcpServerPromptArgument":{"properties":{"description":{"type":"string","description":"Description of the API MCP service.\n"},"name":{"type":"string","description":"Name of the MCP Server. It can contain digits, English letters, and hyphens (-).\n"},"required":{"type":"boolean","description":"Indicates whether the prompt parameter is required.\n"}},"type":"object"},"alicloud:index/OpenApiExplorerApiMcpServerTerraformTool:OpenApiExplorerApiMcpServerTerraformTool":{"properties":{"async":{"type":"boolean","description":"Specifies whether execution is asynchronous. If enabled, the system immediately proceeds to the next task after initiating a task, without waiting for each resource operation to complete.\n"},"code":{"type":"string","description":"Terraform Tool code. Overview of the HCL Language\n"},"description":{"type":"string","description":"Description of the Terraform Tool. This description will be used as the description for the MCP tool.\n"},"destroyPolicy":{"type":"string","description":"The cleanup policy applied to temporary resources after task completion, based on the task execution status:\n- NEVER: Do not delete any created resources, regardless of whether the task succeeds or fails.\n- ALWAYS: Immediately destroy all related resources upon task completion, regardless of success or failure.\n- ON_FAILURE: Delete related resources only if the task fails; retain them if the task succeeds.\n"},"name":{"type":"string","description":"The name of the Terraform Tool, which supports letters (a–z, A–Z) and digits (0–9).\n"}},"type":"object"},"alicloud:index/ProviderAssumeRole:ProviderAssumeRole":{"properties":{"externalId":{"type":"string"},"policy":{"type":"string","description":"The permissions applied when assuming a role. You cannot use, this policy to grant further permissions that are in excess to those of the, role that is being assumed.\n"},"roleArn":{"type":"string","description":"The ARN of a RAM role to assume prior to making API calls.\n"},"sessionExpiration":{"type":"integer","description":"The time after which the established session for assuming role expires. Valid value range: [900-3600] seconds. Default to 0 (in this case Alicloud use own default value).\n"},"sessionName":{"type":"string","description":"The session name to use when assuming the role. If omitted, \u003cspan pulumi-lang-nodejs=\"`terraform`\" pulumi-lang-dotnet=\"`Terraform`\" pulumi-lang-go=\"`terraform`\" pulumi-lang-python=\"`terraform`\" pulumi-lang-yaml=\"`terraform`\" pulumi-lang-java=\"`terraform`\"\u003e`terraform`\u003c/span\u003e is passed to the AssumeRole call as session name.\n"}},"type":"object","required":["roleArn"],"language":{"nodejs":{"requiredOutputs":[]}}},"alicloud:index/ProviderAssumeRoleWithOidc:ProviderAssumeRoleWithOidc":{"properties":{"oidcProviderArn":{"type":"string","description":"ARN of the OIDC IdP.\n"},"oidcToken":{"type":"string"},"oidcTokenFile":{"type":"string","description":"The file path of OIDC token that is issued by the external IdP.\n"},"policy":{"type":"string","description":"The policy that specifies the permissions of the returned STS token. You can use this parameter to grant the STS token fewer permissions than the permissions granted to the RAM role.\n"},"roleArn":{"type":"string","description":"ARN of a RAM role to assume prior to making API calls.\n"},"roleSessionName":{"type":"string","description":"The custom name of the role session. Set this parameter based on your business requirements. In most cases, this parameter is set to the identity of the user who calls the operation, for example, the username.\n"},"sessionExpiration":{"type":"integer","description":"The validity period of the STS token. Unit: seconds. Default value: 3600. Minimum value: 900. Maximum value: the value of the MaxSessionDuration parameter when creating a ram role.\n"}},"type":"object","required":["oidcProviderArn","roleArn"],"language":{"nodejs":{"requiredOutputs":[]}}},"alicloud:index/ProviderEndpoint:ProviderEndpoint":{"properties":{"acr":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom acr endpoints.\n"},"actiontrail":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Actiontrail endpoints.\n"},"adb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom AnalyticDB endpoints.\n"},"aiworkspace":{"type":"string"},"alb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom alb endpoints.\n"},"alidfs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom alidfs endpoints.\n"},"alidns":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom alidns endpoints.\n"},"alikafka":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ALIKAFKA endpoints.\n"},"amqp":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom onsproxy endpoints.\n"},"antiddosPublic":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ddosbasic endpoints.\n"},"apig":{"type":"string"},"apigateway":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Api Gateway endpoints.\n"},"arms":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom arms endpoints.\n"},"bastionhost":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom bastionhost endpoints.\n"},"beebot":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom beebot endpoints.\n"},"bpstudio":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom bpstudio endpoints.\n"},"brainIndustrial":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom\u003cspan pulumi-lang-nodejs=\" brainIndustrial \" pulumi-lang-dotnet=\" BrainIndustrial \" pulumi-lang-go=\" brainIndustrial \" pulumi-lang-python=\" brain_industrial \" pulumi-lang-yaml=\" brainIndustrial \" pulumi-lang-java=\" brainIndustrial \"\u003e brain_industrial \u003c/span\u003eendpoints.\n"},"bssopenapi":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom BSSOPENAPI endpoints.\n"},"cas":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom CAS endpoints.\n"},"cassandra":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cassandra endpoints.\n"},"cbn":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cbn endpoints.\n"},"cbs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cbs endpoints.\n"},"cddc":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cddc endpoints.\n"},"cdn":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom CDN endpoints.\n"},"cds":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cds endpoints.\n"},"chatbot":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom beebot endpoints.\n"},"clickhouse":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom clickhouse endpoints.\n"},"cloudapi":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Api Gateway endpoints.\n"},"cloudauth":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cloudauth endpoints.\n"},"cloudfirewall":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cloudfirewall endpoints.\n"},"cloudfw":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cloudfw endpoints.\n"},"cloudphone":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cloudphone endpoints.\n"},"cloudsso":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cloudsso endpoints.\n"},"cms":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Cloud Monitor endpoints.\n"},"computenest":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom computenest endpoints.\n"},"config":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom config endpoints.\n"},"cr":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Container Registry endpoints.\n"},"cs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Container Service endpoints.\n"},"das":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom das endpoints.\n"},"datahub":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Datahub endpoints.\n"},"dataworksPublic":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dataworkspublic endpoints.\n"},"dataworkspublic":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dataworkspublic endpoints.\n"},"dbfs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dbfs endpoints.\n"},"dbs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom cbs endpoints.\n"},"dcdn":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dcdn endpoints.\n"},"ddosbasic":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ddosbasic endpoints.\n"},"ddosbgp":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom DDOSBGP endpoints.\n"},"ddoscoo":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom DDOSCOO endpoints.\n"},"dds":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom MongoDB endpoints.\n"},"devopsRdc":{"type":"string"},"devopsrdc":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom devopsrdc endpoints.\n"},"dfs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom alidfs endpoints.\n"},"dg":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dg endpoints.\n"},"dm":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dm endpoints.\n"},"dmsEnterprise":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom\u003cspan pulumi-lang-nodejs=\" dmsEnterprise \" pulumi-lang-dotnet=\" DmsEnterprise \" pulumi-lang-go=\" dmsEnterprise \" pulumi-lang-python=\" dms_enterprise \" pulumi-lang-yaml=\" dmsEnterprise \" pulumi-lang-java=\" dmsEnterprise \"\u003e dms_enterprise \u003c/span\u003eendpoints.\n"},"dmsenterprise":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dmsenterprise endpoints.\n"},"dns":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom DNS endpoints.\n"},"drds":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom DRDS endpoints.\n"},"dts":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dts endpoints.\n"},"dysms":{"type":"string"},"dysmsapi":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom dysmsapi endpoints.\n"},"eais":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom eais endpoints.\n"},"ebs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ebs endpoints.\n"},"ecd":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom gwsecd endpoints.\n"},"eci":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom eci endpoints.\n"},"ecs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ECS endpoints.\n"},"edas":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom edas endpoints.\n"},"edasschedulerx":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom edasschedulerx endpoints.\n"},"edsUser":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom edsuser endpoints.\n"},"edsuser":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom edsuser endpoints.\n"},"eflo":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom eflo endpoints.\n"},"efloCnp":{"type":"string"},"efloController":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom efloctrl endpoints.\n"},"ehpc":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ehpc endpoints.\n"},"ehs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ehs endpoints.\n"},"eipanycast":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom eipanycast endpoints.\n"},"elasticsearch":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Elasticsearch endpoints.\n"},"emr":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom EMR endpoints.\n"},"ens":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ens endpoints.\n"},"esa":{"type":"string"},"ess":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Autoscaling endpoints.\n"},"eventbridge":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom\u003cspan pulumi-lang-nodejs=\" eventbridgeShare \" pulumi-lang-dotnet=\" EventbridgeShare \" pulumi-lang-go=\" eventbridgeShare \" pulumi-lang-python=\" eventbridge_share \" pulumi-lang-yaml=\" eventbridgeShare \" pulumi-lang-java=\" eventbridgeShare \"\u003e eventbridge_share \u003c/span\u003eendpoints.\n"},"fc":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Function Computing endpoints.\n"},"fcOpen":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Function Computing endpoints.\n"},"fnf":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom fnf endpoints.\n"},"ga":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ga endpoints.\n"},"gaplus":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom gaplus endpoints.\n"},"gdb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom gds endpoints.\n"},"gds":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom gds endpoints.\n"},"gpdb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom GPDB endpoints.\n"},"gwlb":{"type":"string"},"gwsecd":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom gwsecd endpoints.\n"},"hbr":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom hbr endpoints.\n"},"hcsSgw":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom\u003cspan pulumi-lang-nodejs=\" hcsSgw \" pulumi-lang-dotnet=\" HcsSgw \" pulumi-lang-go=\" hcsSgw \" pulumi-lang-python=\" hcs_sgw \" pulumi-lang-yaml=\" hcsSgw \" pulumi-lang-java=\" hcsSgw \"\u003e hcs_sgw \u003c/span\u003eendpoints.\n"},"hitsdb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom hitsdb endpoints.\n"},"imm":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom imm endpoints.\n"},"imp":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom imp endpoints.\n"},"ims":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ims endpoints.\n"},"iot":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom iot endpoints.\n"},"kms":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom KMS endpoints.\n"},"kvstore":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom R-KVStore endpoints.\n"},"location":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Location Service endpoints.\n"},"log":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Log Service endpoints.\n"},"market":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Market Place endpoints.\n"},"maxcompute":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom MaxCompute endpoints.\n"},"mhub":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom mhub endpoints.\n"},"mns":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom MNS endpoints.\n"},"mnsOpen":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom MNS endpoints.\n"},"mscopensubscription":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom mscopensubscription endpoints.\n"},"mse":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom mse endpoints.\n"},"nas":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom NAS endpoints.\n"},"nlb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom nlb endpoints.\n"},"oceanbase":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom oceanbase endpoints.\n"},"oceanbasepro":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom oceanbase endpoints.\n"},"ons":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ONS endpoints.\n"},"onsproxy":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom onsproxy endpoints.\n"},"oos":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom oos endpoints.\n"},"opensearch":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom opensearch endpoints.\n"},"oss":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom OSS endpoints.\n"},"ots":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Table Store endpoints.\n"},"polardb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom PolarDB endpoints.\n"},"polardbx":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom DRDS endpoints.\n"},"privatelink":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom privatelink endpoints.\n"},"pvtz":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom Private Zone endpoints.\n"},"quickbi":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom quickbi endpoints.\n"},"quickbiPublic":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom quickbi endpoints.\n"},"quotas":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom quotas endpoints.\n"},"rKvstore":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom\u003cspan pulumi-lang-nodejs=\" rKvstore \" pulumi-lang-dotnet=\" RKvstore \" pulumi-lang-go=\" rKvstore \" pulumi-lang-python=\" r_kvstore \" pulumi-lang-yaml=\" rKvstore \" pulumi-lang-java=\" rKvstore \"\u003e r_kvstore \u003c/span\u003eendpoints.\n"},"ram":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom RAM endpoints.\n"},"rds":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom RDS endpoints.\n"},"redisa":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom redisa endpoints.\n"},"resourcemanager":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom resourcemanager endpoints.\n"},"resourcesharing":{"type":"string"},"ressharing":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom resourcesharing endpoints.\n"},"rocketmq":{"type":"string"},"ros":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom ros endpoints.\n"},"sae":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom serverless endpoints.\n"},"sas":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom sas endpoints.\n"},"scdn":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom scdn endpoints.\n"},"schedulerx2":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom edasschedulerx endpoints.\n"},"sddp":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom sddp endpoints.\n"},"selectdb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom selectdb endpoints.\n"},"serverless":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom serverless endpoints.\n"},"servicecatalog":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom srvcatalog endpoints.\n"},"servicemesh":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom servicemesh endpoints.\n"},"sgw":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom sgw endpoints.\n"},"slb":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom SLB endpoints.\n"},"smartag":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom smartag endpoints.\n"},"srvcatalog":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom srvcatalog endpoints.\n"},"sts":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom STS endpoints.\n"},"swas":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom swas endpoints.\n"},"swasOpen":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom swas endpoints.\n"},"tag":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom tag endpoints.\n"},"vod":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom vod endpoints.\n"},"vpc":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom VPC and VPN endpoints.\n"},"vpcipam":{"type":"string"},"vpcpeer":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom vpcpeer endpoints.\n"},"vs":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom vs endpoints.\n"},"waf":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom waf endpoints.\n"},"wafOpenapi":{"type":"string","description":"Use this to override the default endpoint URL constructed from the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e. It's typically used to connect to custom\u003cspan pulumi-lang-nodejs=\" wafOpenapi \" pulumi-lang-dotnet=\" WafOpenapi \" pulumi-lang-go=\" wafOpenapi \" pulumi-lang-python=\" waf_openapi \" pulumi-lang-yaml=\" wafOpenapi \" pulumi-lang-java=\" wafOpenapi \"\u003e waf_openapi \u003c/span\u003eendpoints.\n"}},"type":"object"},"alicloud:index/ProviderSignVersion:ProviderSignVersion":{"properties":{"oss":{"type":"string"},"sls":{"type":"string"}},"type":"object"},"alicloud:index/StarRocksInstanceBackendNodeGroup:StarRocksInstanceBackendNodeGroup":{"properties":{"cu":{"type":"integer","description":"Number of CUs. CU (Compute Unit) is the basic measurement unit of the service, where 1 CU = 1 CPU core + 4 GiB memory.\n","willReplaceOnChanges":true},"diskNumber":{"type":"integer","description":"The number of disks.\n","willReplaceOnChanges":true},"localStorageInstanceType":{"type":"string","description":"Local SSD instance specifications.\n","willReplaceOnChanges":true},"residentNodeNumber":{"type":"integer","description":"Resident node number of node group.\n","willReplaceOnChanges":true},"specType":{"type":"string","description":"Compute group specification types include the following:\n- standard\n- localSSD\n- bigData\n- ramEnhanced\n- networkEnhanced\n","willReplaceOnChanges":true},"storagePerformanceLevel":{"type":"string","description":"Performance levels of cloud disks include the following values:\n- pl0: Maximum random read/write IOPS per disk is 10,000.\n- pl1: Maximum random read/write IOPS per disk is 50,000.\n- pl2: Maximum random read/write IOPS per disk is 100,000.\n- pl3: Maximum random read/write IOPS per disk is 1,000,000.\n","willReplaceOnChanges":true},"storageSize":{"type":"integer","description":"Storage size, measured in GiB.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"Zone ID.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:index/StarRocksInstanceFrontendNodeGroup:StarRocksInstanceFrontendNodeGroup":{"properties":{"cu":{"type":"integer","description":"Number of CUs. CU (Compute Unit) is the basic measurement unit of the service, where 1 CU = 1 CPU core + 4 GiB memory.\n","willReplaceOnChanges":true},"diskNumber":{"type":"integer","description":"DiskNumber\n","willReplaceOnChanges":true},"localStorageInstanceType":{"type":"string","description":"Local SSD instance specifications.\n","willReplaceOnChanges":true},"residentNodeNumber":{"type":"integer","description":"Resident node number of node group.\n","willReplaceOnChanges":true},"specType":{"type":"string","description":"Compute group specification types include the following:\n- standard\n- ramEnhanced\n","willReplaceOnChanges":true},"storagePerformanceLevel":{"type":"string","description":"Performance levels of cloud disks include the following values:\n- pl0: Maximum random read/write IOPS per disk is 10,000.\n- pl1: Maximum random read/write IOPS per disk is 50,000.\n- pl2: Maximum random read/write IOPS per disk is 100,000.\n- pl3: Maximum random read/write IOPS per disk is 1,000,000.\n","willReplaceOnChanges":true},"storageSize":{"type":"integer","description":"Storage size, measured in GiB.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"Zone ID.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:index/StarRocksInstanceObserverNodeGroup:StarRocksInstanceObserverNodeGroup":{"properties":{"cu":{"type":"integer","description":"Number of CUs. CU (Compute Unit) is the basic measurement unit of the service, where 1 CU = 1 CPU core + 4 GiB memory.\n","willReplaceOnChanges":true},"diskNumber":{"type":"integer","description":"DiskNumber\n","willReplaceOnChanges":true},"localStorageInstanceType":{"type":"string","description":"Local SSD instance specifications.\n","willReplaceOnChanges":true},"residentNodeNumber":{"type":"integer","description":"Resident node number of node group.\n","willReplaceOnChanges":true},"specType":{"type":"string","description":"Compute group specification types include the following:\n- standard\n","willReplaceOnChanges":true},"storagePerformanceLevel":{"type":"string","description":"Performance levels of cloud disks include the following values:\n- pl0: Maximum random read/write IOPS per disk is 10,000.\n- pl1: Maximum random read/write IOPS per disk is 50,000.\n- pl2: Maximum random read/write IOPS per disk is 100,000.\n- pl3: Maximum random read/write IOPS per disk is 1,000,000.\n","willReplaceOnChanges":true},"storageSize":{"type":"integer","description":"Storage size, measured in GiB.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"Zone ID.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:index/StarRocksInstanceVswitch:StarRocksInstanceVswitch":{"properties":{"vswitchId":{"type":"string","description":"ID of VSwitch.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"Zone ID of VSwitch.\n","willReplaceOnChanges":true}},"type":"object","required":["vswitchId"]},"alicloud:index/getMscSubContactsContact:getMscSubContactsContact":{"properties":{"accountUid":{"type":"string","description":"UID.\n"},"contactId":{"type":"string","description":"The first ID of the resource.\n"},"contactName":{"type":"string","description":"The User's Contact Name. **Note:** The name must be 2 to 12 characters in length, and can contain uppercase and lowercase letters.\n"},"email":{"type":"string","description":"The User's Contact Email Address.\n"},"id":{"type":"string","description":"The ID of the Contact.\n"},"isAccount":{"type":"boolean","description":"Indicates Whether the BGP Group Is the Account Itself.\n"},"isObsolete":{"type":"boolean","description":"Whether They Have Expired Or Not.\n"},"isVerifiedEmail":{"type":"boolean","description":"Email Validation for.\n"},"isVerifiedMobile":{"type":"boolean","description":"If the Phone Verification.\n"},"lastEmailVerificationTimeStamp":{"type":"string","description":"Last Verification Email Transmission Time.\n"},"lastMobileVerificationTimeStamp":{"type":"string","description":"The Pieces of Authentication SMS Sending Time.\n"},"mobile":{"type":"string","description":"The User's Telephone.\n"},"position":{"type":"string","description":"The User's Position. Valid values: `CEO`, `Technical Director`, `Maintenance Director`, `Project Director`,`Finance Director` and `Other`.\n"}},"type":"object","required":["accountUid","contactId","contactName","email","id","isAccount","isObsolete","isVerifiedEmail","isVerifiedMobile","lastEmailVerificationTimeStamp","lastMobileVerificationTimeStamp","mobile","position"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:index/getMscSubSubscriptionsSubscription:getMscSubSubscriptionsSubscription":{"properties":{"channel":{"type":"string","description":"The channel the Subscription.\n"},"contactIds":{"type":"array","items":{"type":"integer"},"description":"The ids of subscribed contacts.\n"},"description":{"type":"string","description":"The description of the Subscription.\n"},"emailStatus":{"type":"integer","description":"The status of email subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"},"id":{"type":"string","description":"The ID of the Subscription.\n"},"itemId":{"type":"string","description":"The ID of the Subscription.\n"},"itemName":{"type":"string","description":"The name of the Subscription.\n"},"pmsgStatus":{"type":"integer","description":"The status of pmsg subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"},"smsStatus":{"type":"integer","description":"The status of sms subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"},"ttsStatus":{"type":"integer","description":"The status of tts subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"},"webhookIds":{"type":"array","items":{"type":"integer"},"description":"The ids of subscribed webhooks.\n"},"webhookStatus":{"type":"integer","description":"The status of webhook subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"}},"type":"object","required":["channel","contactIds","description","emailStatus","id","itemId","itemName","pmsgStatus","smsStatus","ttsStatus","webhookIds","webhookStatus"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:index/getMscSubWebhooksWebhook:getMscSubWebhooksWebhook":{"properties":{"id":{"type":"string","description":"The ID of the Webhook.\n"},"serverUrl":{"type":"string","description":"The serverUrl of the Subscription.\n"},"webhookId":{"type":"string","description":"The first ID of the resource.\n"},"webhookName":{"type":"string","description":"The name of the Webhook. **Note:** The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e characters in length, and can contain uppercase and lowercase letters.\n"}},"type":"object","required":["id","serverUrl","webhookId","webhookName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:index/getRegionsRegion:getRegionsRegion":{"properties":{"id":{"type":"string","description":"ID of the region.\n"},"localName":{"type":"string","description":"Name of the region in the local language.\n"},"regionId":{"type":"string"}},"type":"object","required":["id","localName","regionId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:index/getZonesZone:getZonesZone":{"properties":{"availableDiskCategories":{"type":"array","items":{"type":"string"},"description":"Set of supported disk categories.\n"},"availableInstanceTypes":{"type":"array","items":{"type":"string"},"description":"Allowed instance types.\n"},"availableResourceCreations":{"type":"array","items":{"type":"string"},"description":"Filter the results by a specific resource type.\nValid values: `Instance`, `Disk`, `VSwitch`, `Rds`, `KVStore`, `FunctionCompute`, `Elasticsearch`, `Slb`.\n\n\u003e **NOTE:** From version 1.134.0, the \u003cspan pulumi-lang-nodejs=\"`availableResourceCreation`\" pulumi-lang-dotnet=\"`AvailableResourceCreation`\" pulumi-lang-go=\"`availableResourceCreation`\" pulumi-lang-python=\"`available_resource_creation`\" pulumi-lang-yaml=\"`availableResourceCreation`\" pulumi-lang-java=\"`availableResourceCreation`\"\u003e`available_resource_creation`\u003c/span\u003e value \"Rds\" has been deprecated.\nIf you want to fetch the available zones for RDS instance, you can use datasource alicloud_db_zones\n"},"id":{"type":"string","description":"ID of the zone.\n"},"localName":{"type":"string","description":"Name of the zone in the local language.\n"},"multiZoneIds":{"type":"array","items":{"type":"string"},"description":"A list of zone ids in which the multi zone.\n"},"slbSlaveZoneIds":{"type":"array","items":{"type":"string"},"description":"A list of slb slave zone ids in which the slb master zone.\n"}},"type":"object","required":["availableDiskCategories","availableInstanceTypes","availableResourceCreations","id","localName","multiZoneIds","slbSlaveZoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:iot/getDeviceGroupsGroup:getDeviceGroupsGroup":{"properties":{"createTime":{"type":"string","description":"The Group CreateTime.\n"},"deviceActive":{"type":"string","description":"The Group Number of activated devices.\n"},"deviceCount":{"type":"string","description":"The Group Total number of devices.\n"},"deviceOnline":{"type":"string","description":"The Group Number of online devices.\n"},"errorMessage":{"type":"string","description":"The Error_Message of the device group.\n"},"groupDesc":{"type":"string","description":"The GroupDesc of the device group.\n"},"groupId":{"type":"string","description":"The GroupId of the device group.\n"},"groupName":{"type":"string","description":"The GroupName of the device group.\n"},"id":{"type":"string","description":"The ID of the device group.\n"},"success":{"type":"boolean","description":"Whether the call is successful.\n"}},"type":"object","required":["createTime","deviceActive","deviceCount","deviceOnline","errorMessage","groupDesc","groupId","groupName","id","success"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:kms/InstanceBindVpc:InstanceBindVpc":{"properties":{"regionId":{"type":"string","description":"region id\n"},"vpcId":{"type":"string","description":"VPC ID\n"},"vpcOwnerId":{"type":"string","description":"VPC owner root user ID\n"},"vswitchId":{"type":"string","description":"vswitch id\n"}},"type":"object"},"alicloud:kms/getAliasesAlias:getAliasesAlias":{"properties":{"aliasName":{"type":"string","description":"The unique identifier of the alias.\n"},"id":{"type":"string","description":"ID of the alias. The value is same as KMS alias_name.\n"},"keyId":{"type":"string","description":"ID of the key.\n"}},"type":"object","required":["aliasName","id","keyId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:kms/getInstancesInstance:getInstancesInstance":{"properties":{"instanceId":{"type":"string","description":"The first ID of the resource\n"}},"type":"object","required":["instanceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:kms/getKeyVersionsVersion:getKeyVersionsVersion":{"properties":{"createTime":{"type":"string","description":"Date and time when the key version was created (UTC time).\n"},"creationDate":{"type":"string","description":"(Removed from v1.124.4) It has been removed and using \u003cspan pulumi-lang-nodejs=\"`createTime`\" pulumi-lang-dotnet=\"`CreateTime`\" pulumi-lang-go=\"`createTime`\" pulumi-lang-python=\"`create_time`\" pulumi-lang-yaml=\"`createTime`\" pulumi-lang-java=\"`createTime`\"\u003e`create_time`\u003c/span\u003e instead.\n"},"id":{"type":"string","description":"ID of the KMS KeyVersion resource.\n"},"keyId":{"type":"string","description":"The id of kms key.\n"},"keyVersionId":{"type":"string","description":"ID of the key version.\n"}},"type":"object","required":["createTime","creationDate","id","keyId","keyVersionId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:kms/getKeysKey:getKeysKey":{"properties":{"arn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the key.\n"},"automaticRotation":{"type":"string","description":"(Available in 1.123.1+) Specifies whether to enable automatic key rotation.\n"},"creationDate":{"type":"string","description":"Creation date of key.\n"},"creator":{"type":"string","description":"The owner of the key.\n"},"deleteDate":{"type":"string","description":"Deletion date of key.\n"},"description":{"type":"string","description":"Description of the key.\n"},"id":{"type":"string","description":"ID of the key.\n"},"keyId":{"type":"string","description":"(Available in 1.123.1+)  ID of the key.\n"},"keySpec":{"type":"string","description":"(Available in 1.123.1+)  The type of the CMK.\n"},"keyUsage":{"type":"string","description":"(Available in 1.123.1+)  The usage of CMK.\n"},"lastRotationDate":{"type":"string","description":"(Available in 1.123.1+)  The date and time the last rotation was performed.\n"},"materialExpireTime":{"type":"string","description":"(Available in 1.123.1+)  The time and date the key material for the CMK expires.\n"},"nextRotationDate":{"type":"string","description":"(Available in 1.123.1+)  The time the next rotation is scheduled for execution.\n"},"origin":{"type":"string","description":"(Available in 1.123.1+)  The source of the key material for the CMK.\n"},"primaryKeyVersion":{"type":"string","description":"(Available in 1.123.1+)  The ID of the current primary key version of the symmetric CMK.\n"},"protectionLevel":{"type":"string","description":"(Available in 1.123.1+)  The protection level of the CMK.\n"},"rotationInterval":{"type":"string","description":"(Available in 1.123.1+)  The period of automatic key rotation.\n"},"status":{"type":"string","description":"Filter the results by status of the KMS keys. Valid values: `Enabled`, `Disabled`, `PendingDeletion`.\n"}},"type":"object","required":["arn","automaticRotation","creationDate","creator","deleteDate","description","id","keyId","keySpec","keyUsage","lastRotationDate","materialExpireTime","nextRotationDate","origin","primaryKeyVersion","protectionLevel","rotationInterval","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:kms/getSecretVersionsVersion:getSecretVersionsVersion":{"properties":{"secretData":{"type":"string","description":"The secret value. Secrets Manager decrypts the stored secret value in ciphertext and returns it. (Returned when \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is true).\n"},"secretDataType":{"type":"string","description":"The type of the secret value. (Returned when \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is true).\n"},"secretName":{"type":"string","description":"The name of the secret.\n"},"versionId":{"type":"string","description":"The version number of the secret value.\n"},"versionStages":{"type":"array","items":{"type":"string"},"description":"Stage labels that mark the secret version.\n"}},"type":"object","required":["secretData","secretDataType","secretName","versionId","versionStages"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:kms/getSecretsSecret:getSecretsSecret":{"properties":{"arn":{"type":"string","description":"(Available since v1.124.0) A mapping of tags to assign to the resource.\n"},"description":{"type":"string","description":"(Available since v1.124.0)  The description of the secret.\n"},"encryptionKeyId":{"type":"string","description":"(Available since v1.124.0)  The ID of the KMS CMK that is used to encrypt the secret value.\n"},"id":{"type":"string","description":"ID of the Kms Secret. The value is same as KMS secret_name.\n"},"plannedDeleteTime":{"type":"string","description":"Schedule deletion time.\n"},"secretData":{"type":"string","description":"(Available since v1.124.0)  The value of the secret that you want to create.\n"},"secretDataType":{"type":"string","description":"(Available since v1.124.0)  The type of the secret data value.\n"},"secretName":{"type":"string","description":"Name of the KMS Secret.\n"},"secretType":{"type":"string","description":"(Available since v1.124.0)  The type of the secret.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource, and can be used to filter secrets.\n"},"versionId":{"type":"string","description":"(Available since v1.124.0)  The version number of the initial version.\n"},"versionStages":{"type":"array","items":{"type":"string"},"description":"(Available since v1.124.0)  The stage labels that mark the new secret version.\n"}},"type":"object","required":["arn","description","encryptionKeyId","id","plannedDeleteTime","secretData","secretDataType","secretName","secretType","tags","versionId","versionStages"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:kvstore/InstanceParameter:InstanceParameter":{"properties":{"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'parameters' has been deprecated from version 1.101.0. Use 'config' instead."},"value":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'parameters' has been deprecated from version 1.101.0. Use 'config' instead."}},"type":"object"},"alicloud:kvstore/getAccountsAccount:getAccountsAccount":{"properties":{"accountName":{"type":"string","description":"The name of the account.\n"},"accountPrivilege":{"type":"string","description":"The privilege of account access database.\n"},"accountType":{"type":"string","description":"Privilege type of account.\n"},"description":{"type":"string","description":"The description of account.\n"},"id":{"type":"string","description":"The ID of the Account.\n"},"instanceId":{"type":"string","description":"The Id of instance in which account belongs.\n"},"status":{"type":"string","description":"The status of account.\n"}},"type":"object","required":["accountName","accountPrivilege","accountType","description","id","instanceId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:kvstore/getConnectionsConnection:getConnectionsConnection":{"properties":{"connectionString":{"type":"string","description":"The connection string of the instance.\n"},"dbInstanceNetType":{"type":"string","description":"The network type of the instance.\n"},"expiredTime":{"type":"string","description":"The expiration time of the classic network address.\n"},"id":{"type":"string"},"instanceId":{"type":"string"},"ipAddress":{"type":"string","description":"The IP address of the instance.\n"},"port":{"type":"string","description":"The port number of the instance.\n"},"upgradeable":{"type":"string","description":"The remaining validity period of the endpoint of the classic network.\n"},"vpcId":{"type":"string","description":"The ID of the VPC where the instance is deployed.\n"},"vpcInstanceId":{"type":"string","description":"The ID of the instance. It is returned only when the value of the DBInstanceNetType parameter is 2 (indicating VPC).\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n"}},"type":"object","required":["connectionString","dbInstanceNetType","expiredTime","id","instanceId","ipAddress","port","upgradeable","vpcId","vpcInstanceId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:kvstore/getInstanceClassesClass:getInstanceClassesClass":{"properties":{"instanceClass":{"type":"string","description":"KVStore available instance class.\n"},"price":{"type":"string"}},"type":"object","required":["instanceClass","price"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:kvstore/getInstanceEnginesInstanceEngine:getInstanceEnginesInstanceEngine":{"properties":{"engine":{"type":"string","description":"Database type. Options are `Redis`, `Memcache`. Default to `Redis`.\n"},"engineVersion":{"type":"string","description":"Database version required by the user. Value options of Redis can refer to the latest docs [detail info](https://www.alibabacloud.com/help/en/redis/developer-reference/api-r-kvstore-2015-01-01-createinstance-redis) `EngineVersion`. Value of Memcache should be empty.\n"},"zoneId":{"type":"string","description":"The Zone to launch the Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance.\n"}},"type":"object","required":["engine","engineVersion","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:kvstore/getInstancesInstance:getInstancesInstance":{"properties":{"architectureType":{"type":"string","description":"The type of the architecture. Valid values: \u003cspan pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\"\u003e`cluster`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e and `SplitRW`.\n"},"autoRenew":{"type":"boolean","description":"Indicates whether auto-renewal is enabled for the instance.\n"},"autoRenewPeriod":{"type":"integer","description":"The duration for which the instance is automatically renewed. Unit: months.\n"},"availabilityZone":{"type":"string","description":"It has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead.\n"},"bandwidth":{"type":"integer","description":"Instance bandwidth limit. Unit: Mbit/s.\n"},"capacity":{"type":"integer","description":"Capacity of the applied Tair (Redis OSS-Compatible) And Memcached (KVStore) Classic Instance. Unit: MB.\n"},"chargeType":{"type":"string","description":"It has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.\n"},"config":{"type":"object","additionalProperties":{"type":"string"},"description":"The parameter configuration of the instance.\n"},"connectionDomain":{"type":"string","description":"Instance connection domain (only Intranet access supported).\n"},"connectionMode":{"type":"string","description":"The connection mode of the instance.\n"},"connections":{"type":"integer","description":"IIt has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`maxConnections`\" pulumi-lang-dotnet=\"`MaxConnections`\" pulumi-lang-go=\"`maxConnections`\" pulumi-lang-python=\"`max_connections`\" pulumi-lang-yaml=\"`maxConnections`\" pulumi-lang-java=\"`maxConnections`\"\u003e`max_connections`\u003c/span\u003e instead.\n"},"createTime":{"type":"string","description":"Creation time of the instance.\n"},"dbInstanceId":{"type":"string","description":"The ID of the instance.\n"},"dbInstanceName":{"type":"string","description":"The name of the instance.\n"},"destroyTime":{"type":"string","description":"The time when the instance was destroyed.\n"},"endTime":{"type":"string","description":"Expiration time. Pay-As-You-Go instances are never expire.\n"},"engineVersion":{"type":"string","description":"The engine version. Valid values: `2.8`, `4.0`, `5.0`, `6.0`, `7.0`.\n"},"expireTime":{"type":"string","description":"It has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e instead.\n"},"hasRenewChangeOrder":{"type":"boolean","description":"Indicates whether there was an order of renewal with configuration change that had not taken effect.\n"},"id":{"type":"string","description":"The ID of the instance.\n"},"instanceClass":{"type":"string","description":"Type of the applied Tair (Redis OSS-Compatible) And Memcache (KVStore) Classic Instance. For more information, see [Instance type table](https://help.aliyun.com/zh/redis/developer-reference/instance-types).\n"},"instanceReleaseProtection":{"type":"boolean","description":"Indicates whether the release protection feature is enabled for the instance.\n"},"instanceType":{"type":"string","description":"The engine type of the KVStore DBInstance. Options are `Memcache`, and `Redis`. If no value is specified, all types are returned.\n"},"isRds":{"type":"boolean","description":"Indicates whether the instance is managed by Relational Database Service (RDS).\n"},"maintainEndTime":{"type":"string","description":"The end time of the maintenance window. The time is in the HH:mmZ format. The time is displayed in UTC.\n"},"maintainStartTime":{"type":"string","description":"The start time of the maintenance window. The time is in the HH:mmZ format. The time is displayed in UTC.\n"},"maxConnections":{"type":"integer","description":"Instance connection quantity limit. Unit: count.\n"},"name":{"type":"string","description":"It has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`dbInstanceName`\" pulumi-lang-dotnet=\"`DbInstanceName`\" pulumi-lang-go=\"`dbInstanceName`\" pulumi-lang-python=\"`db_instance_name`\" pulumi-lang-yaml=\"`dbInstanceName`\" pulumi-lang-java=\"`dbInstanceName`\"\u003e`db_instance_name`\u003c/span\u003e instead.\n"},"networkType":{"type":"string","description":"The type of the network. Valid values: `CLASSIC`, `VPC`.\n"},"nodeType":{"type":"string","description":"The node type of the instance.\n"},"packageType":{"type":"string","description":"The type of the package.\n"},"paymentType":{"type":"string","description":"The payment type. Valid values: `PostPaid`, `PrePaid`.\n"},"port":{"type":"integer","description":"The service port of the instance.\n"},"privateIp":{"type":"string","description":"Private IP address of the instance.\n"},"qps":{"type":"integer","description":"The queries per second (QPS) supported by the instance.\n"},"regionId":{"type":"string","description":"Region ID the instance belongs to.\n"},"replacateId":{"type":"string","description":"The logical ID of the replica instance.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"searchKey":{"type":"string","description":"The name of the instance.\n"},"secondaryZoneId":{"type":"string","description":"The ID of the secondary zone to which you want to migrate the Tair (Redis OSS-Compatible) And Memcache (KVStore) Classic Instance.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group associated with the instance.\n"},"securityIpGroupAttribute":{"type":"string","description":"By default, this parameter is left empty. The attribute of the whitelist. The console does not display the whitelist whose value of this parameter is hidden\n"},"securityIpGroupName":{"type":"string","description":"The name of the IP address whitelist.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"The IP addresses in the whitelist.\n"},"sslEnable":{"type":"string","description":"Indicates whether SSL encryption is enabled.\n"},"status":{"type":"string","description":"The status of the KVStore DBInstance. Valid values: `Changing`, `CleaningUpExpiredData`, `Creating`, `Flushing`, `HASwitching`, `Inactive`, `MajorVersionUpgrading`, `Migrating`, `NetworkModifying`, `Normal`, `Rebooting`, `SSLModifying`, `Transforming`, `ZoneMigrating`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Query the instance bound to the tag. The format of the incoming value is \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e string, including `TagKey` and `TagValue`. `TagKey` cannot be null, and `TagValue` can be empty. Format example `{\"key1\":\"value1\"}`.\n"},"userName":{"type":"string","description":"The username of the instance.\n"},"vpcAuthMode":{"type":"string","description":"Indicates whether password authentication is enabled. Valid values: Open, Close.\n"},"vpcCloudInstanceId":{"type":"string","description":"Connection port of the instance.\n"},"vpcId":{"type":"string","description":"Used to retrieve instances belong to specified VPC.\n"},"vswitchId":{"type":"string","description":"Used to retrieve instances belong to specified \u003cspan pulumi-lang-nodejs=\"`vswitch`\" pulumi-lang-dotnet=\"`Vswitch`\" pulumi-lang-go=\"`vswitch`\" pulumi-lang-python=\"`vswitch`\" pulumi-lang-yaml=\"`vswitch`\" pulumi-lang-java=\"`vswitch`\"\u003e`vswitch`\u003c/span\u003e resources.\n"},"zoneId":{"type":"string","description":"The ID of the zone.\n"}},"type":"object","required":["architectureType","autoRenew","autoRenewPeriod","availabilityZone","bandwidth","capacity","chargeType","config","connectionDomain","connectionMode","connections","createTime","dbInstanceId","dbInstanceName","destroyTime","endTime","engineVersion","expireTime","hasRenewChangeOrder","id","instanceClass","instanceReleaseProtection","instanceType","isRds","maintainEndTime","maintainStartTime","maxConnections","name","networkType","nodeType","packageType","paymentType","port","privateIp","qps","regionId","replacateId","resourceGroupId","searchKey","secondaryZoneId","securityGroupId","securityIpGroupAttribute","securityIpGroupName","securityIps","sslEnable","status","tags","userName","vpcAuthMode","vpcCloudInstanceId","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:kvstore/getZonesZone:getZonesZone":{"properties":{"id":{"type":"string","description":"ID of the zone.\n"},"multiZoneIds":{"type":"array","items":{"type":"string"},"description":"A list of zone ids in which the multi zone.\n"}},"type":"object","required":["id","multiZoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:lindorm/InstanceV2EngineList:InstanceV2EngineList":{"properties":{"connectAddressLists":{"type":"array","items":{"$ref":"#/types/alicloud:lindorm/InstanceV2EngineListConnectAddressList:InstanceV2EngineListConnectAddressList"},"description":"Connect Address List\n"},"engineType":{"type":"string","description":"Engine\n\nEnumeration value:\n- `TABLE`: Wide table engine\n- `TSDB`: Time series Engine\n- `LSEARCH`: Search engine\n- `LTS`: LTS engine\n- `LVECTOR`: Vector engine\n- `LCOLUMN`: Column-store engine\n- `LAI`: AI engine\n- `FILE`: The underlying file engine\n- `LMESSAGE`: Message engine\n- `LROW`: Wide table Engine 3.0\n- `LSTREAM`: Stream engine\n"},"isLastVersion":{"type":"boolean","description":"Whether it is the latest version\n"},"latestVersion":{"type":"string","description":"Latest Version\n"},"nodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:lindorm/InstanceV2EngineListNodeGroup:InstanceV2EngineListNodeGroup"},"description":"Node Group List See \u003cspan pulumi-lang-nodejs=\"`nodeGroup`\" pulumi-lang-dotnet=\"`NodeGroup`\" pulumi-lang-go=\"`nodeGroup`\" pulumi-lang-python=\"`node_group`\" pulumi-lang-yaml=\"`nodeGroup`\" pulumi-lang-java=\"`nodeGroup`\"\u003e`node_group`\u003c/span\u003e below.\n"},"version":{"type":"string","description":"Engine Version\n"}},"type":"object","required":["engineType"],"language":{"nodejs":{"requiredOutputs":["connectAddressLists","engineType","isLastVersion","latestVersion","version"]}}},"alicloud:lindorm/InstanceV2EngineListConnectAddressList:InstanceV2EngineListConnectAddressList":{"properties":{"address":{"type":"string","description":"Connect Address\n"},"port":{"type":"string","description":"Connect Port\n"},"type":{"type":"string","description":"Connect Type:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","port","type"]}}},"alicloud:lindorm/InstanceV2EngineListNodeGroup:InstanceV2EngineListNodeGroup":{"properties":{"category":{"type":"string","description":"Node Type\n"},"cpuCoreCount":{"type":"integer","description":"Number of CPU cores\n"},"enableAttachLocalDisk":{"type":"boolean","description":"Whether to mount  local cloud disks\n"},"memorySizeGiB":{"type":"integer","description":"Node memory size\n"},"nodeCount":{"type":"integer","description":"Number of nodes\n"},"nodeDiskSize":{"type":"integer","description":"Local cloud disk storage capacity\n"},"nodeDiskType":{"type":"string","description":"Node Disk Type\n"},"nodeSpec":{"type":"string","description":"Node Specifications\n- Valid values when selecting cloud storage:\n- **lindorm.c.2xlarge**, 8 cores 16GB\n- **lindorm.g.2xlarge**, 8 cores 32GB\n- **lindorm.c.4xlarge**, 16 cores 32GB\n- **lindorm.g.4xlarge**, 16 cores 64GB\n- **lindorm.c.8xlarge**, 32 core 64GB\n- **lindorm.g.8xlarge**, 32 core 128GB\n- **lindorm.g.8xlarge**, 8 cores 64GB\n- **lindorm.r.4xlarge**, 16 cores 128GB\n- **lindorm.r.8xlarge**, 32 cores 256GB\n- Valid values when local disk storage is selected:\n- **lindorm.d2s.5XLarge**, 20 core 88GB(D2S)\n- **lindorm.d2s.10XLarge**, 40 core 176GB(D2S)\n- **lindorm.d2c.6XLarge**, 24 core 88GB(D2C)\n- **lindorm.d2c.12XLarge**, 48 cores 176GB(D2C)\n- **lindorm.d2C.24XLarge**, 96 core 352GB(D2C)\n- **lindorm.d1.2xlarge**, 8 cores 32GB(D1NE)\n- **lindorm.d1.4xlarge**, 16 cores 64GB(D1NE)\n- **lindorm.d1.6xlarge**, 24 cores 96GB(D1NE)\n- **lindorm.sd3c.3XLarge**, 14 cores 56GB(D3C PRO)\n- **lindorm.sd3c.7XLarge**, 28 core 112GB(D3C PRO)\n- **lindorm.sd3c.14XLarge**, 56 core 224GB(D3C PRO)\n- **lindorm.d3s.2XLarge**, 8 core 32GB(D3S)\n- **lindorm.d3s.4XLarge**, 16 cores 64GB(D3S)\n- **lindorm.d3s.8XLarge**, 32 core 128GB(D3S)\n- **lindorm.d3s.12XLarge**, 48 cores 192GB(D3S)\n- **lindorm.d3s.16XLarge**, 64 cores 256GB(D3S)\n- **lindorm.i4.xlarge**, 4 core 32GB(I4)\n- **lindorm.i4.2xlarge**, 8 core 64GB(I4)\n- **lindorm.i4.4xlarge**, 16 cores 128GB(I4)\n- **lindorm.i4.8xlarge**, 32 cores 256GB(I4)\n- **lindorm.i2.xlarge**, 4 core 32GB(I2)\n- **lindorm.i2.2xlarge**, 8 core 64GB(I2)\n- **lindorm.i2.4xlarge**, 16 cores 128GB(I2)\n- **lindorm.i2.8xlarge**, 32 cores 256GB(I2)\n"},"resourceGroupName":{"type":"string","description":"Resource group name\n"},"specId":{"type":"string","description":"Spec Id\n"},"status":{"type":"string","description":"Node Status\n"}},"type":"object","required":["nodeCount","nodeSpec","resourceGroupName"],"language":{"nodejs":{"requiredOutputs":["category","cpuCoreCount","enableAttachLocalDisk","memorySizeGiB","nodeCount","nodeSpec","resourceGroupName","specId","status"]}}},"alicloud:lindorm/InstanceV2WhiteIpList:InstanceV2WhiteIpList":{"properties":{"groupName":{"type":"string","description":"Group Name\n"},"ipList":{"type":"string","description":"Whitelist information\n"}},"type":"object","required":["groupName","ipList"]},"alicloud:lindorm/getInstancesInstance:getInstancesInstance":{"properties":{"autoRenew":{"type":"string","description":"AutoRenew.\n"},"coldStorage":{"type":"integer","description":"The cold storage capacity of the instance. Unit: GB.\n"},"createTime":{"type":"string","description":"The creation date of Instance.\n"},"deletionProection":{"type":"boolean","description":"The deletion protection of instance.\n"},"diskCategory":{"type":"string","description":"The disk type of instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`capacityCloudStorage`\" pulumi-lang-dotnet=\"`CapacityCloudStorage`\" pulumi-lang-go=\"`capacityCloudStorage`\" pulumi-lang-python=\"`capacity_cloud_storage`\" pulumi-lang-yaml=\"`capacityCloudStorage`\" pulumi-lang-java=\"`capacityCloudStorage`\"\u003e`capacity_cloud_storage`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e.\n"},"diskUsage":{"type":"string","description":"The usage of disk.\n"},"diskWarningThreshold":{"type":"string","description":"The threshold of disk.\n"},"engineType":{"type":"integer","description":"The type of Instance engine .\n"},"expiredTime":{"type":"string","description":"The expiration time of Instance.\n"},"fileEngineNodeCount":{"type":"integer","description":"The count of file engine.\n"},"fileEngineSpecification":{"type":"string","description":"The specification of file engine. Valid values: `lindorm.c.xlarge`.\n"},"id":{"type":"string","description":"The ID of the Instance.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"instanceName":{"type":"string","description":"The name of the instance.\n"},"instanceStorage":{"type":"string","description":"The storage capacity of the instance. Unit: GB. For example, the value 50 indicates 50 GB.\n"},"ipWhiteLists":{"type":"array","items":{"type":"string"},"description":"The ip white list of instance.\n"},"ltsNodeCount":{"type":"integer","description":"The count of lindorm tunnel service.\n"},"ltsNodeSpecification":{"type":"string","description":"The specification of lindorm tunnel service. Valid values: `lindorm.g.2xlarge`, `lindorm.g.xlarge`.\n"},"networkType":{"type":"string","description":"Instance network type, enumerative.VPC.\n"},"paymentType":{"type":"string","description":"The billing method. Valid values: `PayAsYouGo` and `Subscription`.\n"},"phoenixNodeCount":{"type":"integer","description":"The count of phoenix.\n"},"phoenixNodeSpecification":{"type":"string","description":"The specification of phoenix. Valid values: `lindorm.c.2xlarge`, `lindorm.c.4xlarge`, `lindorm.c.8xlarge`, `lindorm.c.xlarge`, `lindorm.g.2xlarge`, `lindorm.g.4xlarge`, `lindorm.g.8xlarge`, `lindorm.g.xlarge`.\n"},"resourceOwnerId":{"type":"string","description":"The owner id of resource.\n"},"searchEngineNodeCount":{"type":"integer","description":"The count of search engine.\n"},"searchEngineSpecification":{"type":"string","description":"The specification of search engine. Valid values: `lindorm.g.2xlarge`, `lindorm.g.4xlarge`, `lindorm.g.8xlarge`, `lindorm.g.xlarge`.\n"},"serviceType":{"type":"string","description":"The service type of Instance, Valid values:  \u003cspan pulumi-lang-nodejs=\"`lindorm`\" pulumi-lang-dotnet=\"`Lindorm`\" pulumi-lang-go=\"`lindorm`\" pulumi-lang-python=\"`lindorm`\" pulumi-lang-yaml=\"`lindorm`\" pulumi-lang-java=\"`lindorm`\"\u003e`lindorm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`serverlessLindorm`\" pulumi-lang-dotnet=\"`ServerlessLindorm`\" pulumi-lang-go=\"`serverlessLindorm`\" pulumi-lang-python=\"`serverless_lindorm`\" pulumi-lang-yaml=\"`serverlessLindorm`\" pulumi-lang-java=\"`serverlessLindorm`\"\u003e`serverless_lindorm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`lindormStandalone`\" pulumi-lang-dotnet=\"`LindormStandalone`\" pulumi-lang-go=\"`lindormStandalone`\" pulumi-lang-python=\"`lindorm_standalone`\" pulumi-lang-yaml=\"`lindormStandalone`\" pulumi-lang-java=\"`lindormStandalone`\"\u003e`lindorm_standalone`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of Instance, enumerative: Valid values: `ACTIVATION`, `DELETED`, `CREATING`, `CLASS_CHANGING`, `LOCKED`, `INSTANCE_LEVEL_MODIFY`, `NET_MODIFYING`, `RESIZING`, `RESTARTING`, `MINOR_VERSION_TRANSING`.\n"},"tableEngineNodeCount":{"type":"integer","description":"The count of table engine.\n"},"tableEngineSpecification":{"type":"string","description":"The specification of  table engine. Valid values: `lindorm.c.2xlarge`, `lindorm.c.4xlarge`, `lindorm.c.8xlarge`, `lindorm.c.xlarge`, `lindorm.g.2xlarge`, `lindorm.g.4xlarge`, `lindorm.g.8xlarge`, `lindorm.g.xlarge`.\n"},"timeSeriesEngineNodeCount":{"type":"integer","description":"The count of time series engine.\n"},"timeSeriresEngineSpecification":{"type":"string","description":"The specification of time series engine. Valid values: `lindorm.g.2xlarge`, `lindorm.g.4xlarge`, `lindorm.g.8xlarge`, `lindorm.g.xlarge`.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) that is connected to the instance.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string","description":"The zone ID of the instance.\n"}},"type":"object","required":["autoRenew","coldStorage","createTime","deletionProection","diskCategory","diskUsage","diskWarningThreshold","engineType","expiredTime","fileEngineNodeCount","fileEngineSpecification","id","instanceId","instanceName","instanceStorage","ipWhiteLists","ltsNodeCount","ltsNodeSpecification","networkType","paymentType","phoenixNodeCount","phoenixNodeSpecification","resourceOwnerId","searchEngineNodeCount","searchEngineSpecification","serviceType","status","tableEngineNodeCount","tableEngineSpecification","timeSeriesEngineNodeCount","timeSeriresEngineSpecification","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:log/AlertAnnotation:AlertAnnotation":{"properties":{"key":{"type":"string","description":"Annotations's key for new alert.\n"},"value":{"type":"string","description":"Annotations's value for new alert.\n"}},"type":"object","required":["key","value"]},"alicloud:log/AlertGroupConfiguration:AlertGroupConfiguration":{"properties":{"fields":{"type":"array","items":{"type":"string"}},"type":{"type":"string","description":"Group configuration type, including no_group, labels_auto, custom.\n"}},"type":"object","required":["type"]},"alicloud:log/AlertJoinConfiguration:AlertJoinConfiguration":{"properties":{"condition":{"type":"string","description":"Join condition.\n"},"type":{"type":"string","description":"Join type, including cross_join, inner_join, left_join, right_join, full_join, left_exclude, right_exclude, concat, no_join.\n"}},"type":"object","required":["condition","type"]},"alicloud:log/AlertLabel:AlertLabel":{"properties":{"key":{"type":"string","description":"Labels's key for new alert.\n"},"value":{"type":"string","description":"Labels's value for new alert.\n"}},"type":"object","required":["key","value"]},"alicloud:log/AlertNotificationList:AlertNotificationList":{"properties":{"content":{"type":"string","description":"Notice content of alarm.\n"},"emailLists":{"type":"array","items":{"type":"string"},"description":"Email address list.\n"},"mobileLists":{"type":"array","items":{"type":"string"},"description":"SMS sending mobile number.\n"},"serviceUri":{"type":"string","description":"Request address.\n"},"type":{"type":"string","description":"Notification type. support Email, SMS, DingTalk, MessageCenter.\n"}},"type":"object","required":["content","type"]},"alicloud:log/AlertPolicyConfiguration:AlertPolicyConfiguration":{"properties":{"actionPolicyId":{"type":"string","description":"Action Policy Id.\n"},"alertPolicyId":{"type":"string","description":"Alert Policy Id.\n"},"repeatInterval":{"type":"string","description":"Repeat interval used by alert policy, 1h, 1m.e.g.\n"}},"type":"object","required":["alertPolicyId","repeatInterval"]},"alicloud:log/AlertQueryList:AlertQueryList":{"properties":{"chartTitle":{"type":"string","description":"Chart title, optional from 1.161.0+.\n"},"dashboardId":{"type":"string","description":"Query dashboard id.\n"},"end":{"type":"string","description":"End time. example: 20s.\n"},"logstore":{"type":"string","description":"Query logstore, use store for new alert, Deprecated from 1.161.0+.\n","deprecationMessage":"Deprecated from 1.161.0+, use store"},"powerSqlMode":{"type":"string","description":"default disable, whether to use power sql. support auto, enable, disable.\n"},"project":{"type":"string","description":"Query project.\n"},"query":{"type":"string","description":"Query corresponding to chart. example: * AND aliyun.\n"},"region":{"type":"string","description":"Query project region.\n"},"roleArn":{"type":"string","description":"Query project store's ARN.\n"},"start":{"type":"string","description":"Begin time. example: -60s.\n"},"store":{"type":"string","description":"Query store for new alert.\n"},"storeType":{"type":"string","description":"Query store type for new alert, including log,metric,meta.\n"},"timeSpanType":{"type":"string","description":"default Custom. No need to configure this parameter.\n"}},"type":"object","required":["end","query","start"]},"alicloud:log/AlertSchedule:AlertSchedule":{"properties":{"cronExpression":{"type":"string","description":"Cron expression when type is Cron.\n"},"dayOfWeek":{"type":"integer","description":"Day of week when type is Weekly, including 0,1,2,3,4,5,6, 0 for Sunday, 1 for Monday\n"},"delay":{"type":"integer"},"hour":{"type":"integer","description":"Hour of day when type is Weekly/Daily.\n"},"interval":{"type":"string","description":"Execution interval. 60 seconds minimum, such as 60s, 1h. used when type is FixedRate.\n"},"runImmediately":{"type":"boolean"},"timeZone":{"type":"string","description":"Time zone for schedule.\n"},"type":{"type":"string","description":"including FixedRate,Hourly,Daily,Weekly,Cron.\n"}},"type":"object","required":["type"]},"alicloud:log/AlertSeverityConfiguration:AlertSeverityConfiguration":{"properties":{"evalCondition":{"type":"object","additionalProperties":{"type":"string"},"description":"Severity when this condition is met.\n"},"severity":{"type":"integer","description":"Severity for new alert, including 2,4,6,8,10 for Report,Low,Medium,High,Critical.\n"}},"type":"object","required":["evalCondition","severity"]},"alicloud:log/AlertTemplateConfiguration:AlertTemplateConfiguration":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Alert template annotations.\n"},"id":{"type":"string","description":"Alert template id.\n"},"lang":{"type":"string","description":"Alert template language including \u003cspan pulumi-lang-nodejs=\"`cn`\" pulumi-lang-dotnet=\"`Cn`\" pulumi-lang-go=\"`cn`\" pulumi-lang-python=\"`cn`\" pulumi-lang-yaml=\"`cn`\" pulumi-lang-java=\"`cn`\"\u003e`cn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"tokens":{"type":"object","additionalProperties":{"type":"string"},"description":"Alert template tokens.\n"},"type":{"type":"string","description":"Alert template type including \u003cspan pulumi-lang-nodejs=\"`sys`\" pulumi-lang-dotnet=\"`Sys`\" pulumi-lang-go=\"`sys`\" pulumi-lang-python=\"`sys`\" pulumi-lang-yaml=\"`sys`\" pulumi-lang-java=\"`sys`\"\u003e`sys`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e.\n"}},"type":"object","required":["id","type"]},"alicloud:log/EtlEtlSink:EtlEtlSink":{"properties":{"accessKeyId":{"type":"string","description":"Delivery target logstore access key id.\n","secret":true},"accessKeySecret":{"type":"string","description":"Delivery target logstore access key secret.\n","secret":true},"datasets":{"type":"array","items":{"type":"string"},"description":"LogETL datasets.\n\n\u003e **Note:** \u003cspan pulumi-lang-nodejs=\"`fromTime`\" pulumi-lang-dotnet=\"`FromTime`\" pulumi-lang-go=\"`fromTime`\" pulumi-lang-python=\"`from_time`\" pulumi-lang-yaml=\"`fromTime`\" pulumi-lang-java=\"`fromTime`\"\u003e`from_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`toTime`\" pulumi-lang-dotnet=\"`ToTime`\" pulumi-lang-go=\"`toTime`\" pulumi-lang-python=\"`to_time`\" pulumi-lang-yaml=\"`toTime`\" pulumi-lang-java=\"`toTime`\"\u003e`to_time`\u003c/span\u003e no modification allowed after successful creation.\n"},"endpoint":{"type":"string","description":"Delivery target logstore region.\n"},"kmsEncryptedAccessKeyId":{"type":"string","description":"An KMS encrypts access key id used to a log etl job. If the \u003cspan pulumi-lang-nodejs=\"`accessKeyId`\" pulumi-lang-dotnet=\"`AccessKeyId`\" pulumi-lang-go=\"`accessKeyId`\" pulumi-lang-python=\"`access_key_id`\" pulumi-lang-yaml=\"`accessKeyId`\" pulumi-lang-java=\"`accessKeyId`\"\u003e`access_key_id`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptedAccessKeySecret":{"type":"string","description":"An KMS encrypts access key secret used to a log etl job. If the \u003cspan pulumi-lang-nodejs=\"`accessKeySecret`\" pulumi-lang-dotnet=\"`AccessKeySecret`\" pulumi-lang-go=\"`accessKeySecret`\" pulumi-lang-python=\"`access_key_secret`\" pulumi-lang-yaml=\"`accessKeySecret`\" pulumi-lang-java=\"`accessKeySecret`\"\u003e`access_key_secret`\u003c/span\u003e is filled in, this field will be ignored.\n"},"logstore":{"type":"string","description":"Delivery target logstore.\n"},"name":{"type":"string","description":"Delivery target name.\n"},"project":{"type":"string","description":"The project where the target logstore is delivered.\n"},"roleArn":{"type":"string","description":"Sts role info under delivery target logstore. \u003cspan pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\"\u003e`role_arn`\u003c/span\u003e and `(access_key_id, access_key_secret)` fill in at most one. If you do not fill in both, then you must fill in `(kms_encrypted_access_key_id, kms_encrypted_access_key_secret)` to use KMS to get the key pair.\n"},"type":{"type":"string","description":"ETL sinks type, the default value is AliyunLOG.\n"}},"type":"object","required":["endpoint","logstore","name","project"]},"alicloud:log/OssExportConfigColumn:OssExportConfigColumn":{"properties":{"name":{"type":"string","description":"The name of the key.\n"},"type":{"type":"string","description":"Type of configuration name.\n"}},"type":"object","required":["name","type"]},"alicloud:log/OssShipperParquetConfig:OssShipperParquetConfig":{"properties":{"name":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["name","type"]},"alicloud:log/StoreEncryptConf:StoreEncryptConf":{"properties":{"enable":{"type":"boolean","description":"Enable encryption. Default false.\n"},"encryptType":{"type":"string","description":"Supported encryption type, only supports \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e(AES), \u003cspan pulumi-lang-nodejs=\"`m4`\" pulumi-lang-dotnet=\"`M4`\" pulumi-lang-go=\"`m4`\" pulumi-lang-python=\"`m4`\" pulumi-lang-yaml=\"`m4`\" pulumi-lang-java=\"`m4`\"\u003e`m4`\u003c/span\u003e.\n","willReplaceOnChanges":true},"userCmkInfo":{"$ref":"#/types/alicloud:log/StoreEncryptConfUserCmkInfo:StoreEncryptConfUserCmkInfo","description":"User bring your own key (BYOK) encryption Refer to details, the format is as follows. See\u003cspan pulumi-lang-nodejs=\" userCmkInfo \" pulumi-lang-dotnet=\" UserCmkInfo \" pulumi-lang-go=\" userCmkInfo \" pulumi-lang-python=\" user_cmk_info \" pulumi-lang-yaml=\" userCmkInfo \" pulumi-lang-java=\" userCmkInfo \"\u003e user_cmk_info \u003c/span\u003ebelow. `{ \u003cspan pulumi-lang-nodejs=\"\"cmkKeyId\"\" pulumi-lang-dotnet=\"\"CmkKeyId\"\" pulumi-lang-go=\"\"cmkKeyId\"\" pulumi-lang-python=\"\"cmk_key_id\"\" pulumi-lang-yaml=\"\"cmkKeyId\"\" pulumi-lang-java=\"\"cmkKeyId\"\"\u003e\"cmk_key_id\"\u003c/span\u003e: \u003cspan pulumi-lang-nodejs=\"\"yourCmkKeyId\"\" pulumi-lang-dotnet=\"\"YourCmkKeyId\"\" pulumi-lang-go=\"\"yourCmkKeyId\"\" pulumi-lang-python=\"\"your_cmk_key_id\"\" pulumi-lang-yaml=\"\"yourCmkKeyId\"\" pulumi-lang-java=\"\"yourCmkKeyId\"\"\u003e\"your_cmk_key_id\"\u003c/span\u003e, \"arn\": \u003cspan pulumi-lang-nodejs=\"\"yourRoleArn\"\" pulumi-lang-dotnet=\"\"YourRoleArn\"\" pulumi-lang-go=\"\"yourRoleArn\"\" pulumi-lang-python=\"\"your_role_arn\"\" pulumi-lang-yaml=\"\"yourRoleArn\"\" pulumi-lang-java=\"\"yourRoleArn\"\"\u003e\"your_role_arn\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"regionId\"\" pulumi-lang-dotnet=\"\"RegionId\"\" pulumi-lang-go=\"\"regionId\"\" pulumi-lang-python=\"\"region_id\"\" pulumi-lang-yaml=\"\"regionId\"\" pulumi-lang-java=\"\"regionId\"\"\u003e\"region_id\"\u003c/span\u003e: \u003cspan pulumi-lang-nodejs=\"\"youCmkRegionId\"\" pulumi-lang-dotnet=\"\"YouCmkRegionId\"\" pulumi-lang-go=\"\"youCmkRegionId\"\" pulumi-lang-python=\"\"you_cmk_region_id\"\" pulumi-lang-yaml=\"\"youCmkRegionId\"\" pulumi-lang-java=\"\"youCmkRegionId\"\"\u003e\"you_cmk_region_id\"\u003c/span\u003e }`. See \u003cspan pulumi-lang-nodejs=\"`userCmkInfo`\" pulumi-lang-dotnet=\"`UserCmkInfo`\" pulumi-lang-go=\"`userCmkInfo`\" pulumi-lang-python=\"`user_cmk_info`\" pulumi-lang-yaml=\"`userCmkInfo`\" pulumi-lang-java=\"`userCmkInfo`\"\u003e`user_cmk_info`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["enable","encryptType","userCmkInfo"]}}},"alicloud:log/StoreEncryptConfUserCmkInfo:StoreEncryptConfUserCmkInfo":{"properties":{"arn":{"type":"string","description":"Role arn.\n","willReplaceOnChanges":true},"cmkKeyId":{"type":"string","description":"User master key id.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"Region id where the user master key id is located.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["arn","cmkKeyId","regionId"]}}},"alicloud:log/StoreIndexFieldSearch:StoreIndexFieldSearch":{"properties":{"alias":{"type":"string","description":"The alias of one field.\n"},"caseSensitive":{"type":"boolean","description":"Whether the case sensitive for the field. Default to false. It is valid when \"type\" is \"text\" or \"json\".\n"},"enableAnalytics":{"type":"boolean","description":"Whether to enable field analytics. Default to true.\n"},"includeChinese":{"type":"boolean","description":"Whether includes the chinese for the field. Default to false. It is valid when \"type\" is \"text\" or \"json\".\n"},"jsonKeys":{"type":"array","items":{"$ref":"#/types/alicloud:log/StoreIndexFieldSearchJsonKey:StoreIndexFieldSearchJsonKey"},"description":"Use nested index when type is json. See \u003cspan pulumi-lang-nodejs=\"`jsonKeys`\" pulumi-lang-dotnet=\"`JsonKeys`\" pulumi-lang-go=\"`jsonKeys`\" pulumi-lang-python=\"`json_keys`\" pulumi-lang-yaml=\"`jsonKeys`\" pulumi-lang-java=\"`jsonKeys`\"\u003e`json_keys`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"When using the\u003cspan pulumi-lang-nodejs=\" jsonKeys \" pulumi-lang-dotnet=\" JsonKeys \" pulumi-lang-go=\" jsonKeys \" pulumi-lang-python=\" json_keys \" pulumi-lang-yaml=\" jsonKeys \" pulumi-lang-java=\" jsonKeys \"\u003e json_keys \u003c/span\u003efield, this field is required.\n"},"token":{"type":"string","description":"The string of several split words, like \"\\r\", \"#\". It is valid when \"type\" is \"text\" or \"json\".\n"},"type":{"type":"string","description":"The type of one field. Valid values: [\"long\", \"text\", \"double\"]. Default to \"long\"\n"}},"type":"object","required":["name"]},"alicloud:log/StoreIndexFieldSearchJsonKey:StoreIndexFieldSearchJsonKey":{"properties":{"alias":{"type":"string","description":"The alias of one field.\n"},"docValue":{"type":"boolean","description":"Whether to enable statistics. default to true.\n\n\u003e **Note:** At least one of the \u003cspan pulumi-lang-nodejs=\"\"fullText\"\" pulumi-lang-dotnet=\"\"FullText\"\" pulumi-lang-go=\"\"fullText\"\" pulumi-lang-python=\"\"full_text\"\" pulumi-lang-yaml=\"\"fullText\"\" pulumi-lang-java=\"\"fullText\"\"\u003e\"full_text\"\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"\"fieldSearch\"\" pulumi-lang-dotnet=\"\"FieldSearch\"\" pulumi-lang-go=\"\"fieldSearch\"\" pulumi-lang-python=\"\"field_search\"\" pulumi-lang-yaml=\"\"fieldSearch\"\" pulumi-lang-java=\"\"fieldSearch\"\"\u003e\"field_search\"\u003c/span\u003e should be specified.\n"},"name":{"type":"string","description":"When using the\u003cspan pulumi-lang-nodejs=\" jsonKeys \" pulumi-lang-dotnet=\" JsonKeys \" pulumi-lang-go=\" jsonKeys \" pulumi-lang-python=\" json_keys \" pulumi-lang-yaml=\" jsonKeys \" pulumi-lang-java=\" jsonKeys \"\u003e json_keys \u003c/span\u003efield, this field is required.\n"},"type":{"type":"string","description":"The type of one field. Valid values: [\"long\", \"text\", \"double\"]. Default to \"long\"\n"}},"type":"object","required":["name"]},"alicloud:log/StoreIndexFullText:StoreIndexFullText":{"properties":{"caseSensitive":{"type":"boolean","description":"Whether the case sensitive. Default to false.\n"},"includeChinese":{"type":"boolean","description":"Whether includes the chinese. Default to false.\n"},"token":{"type":"string","description":"The string of several split words, like \"\\r\", \"#\"\n"}},"type":"object"},"alicloud:log/StoreShard:StoreShard":{"properties":{"beginKey":{"type":"string","description":"The begin value of the shard range(MD5), included in the shard range.\n"},"endKey":{"type":"string","description":"The end value of the shard range(MD5), not included in shard range.\n"},"id":{"type":"integer","description":"The ID of the shard.\n"},"status":{"type":"string","description":"Shard status, only two status of \u003cspan pulumi-lang-nodejs=\"`readwrite`\" pulumi-lang-dotnet=\"`Readwrite`\" pulumi-lang-go=\"`readwrite`\" pulumi-lang-python=\"`readwrite`\" pulumi-lang-yaml=\"`readwrite`\" pulumi-lang-java=\"`readwrite`\"\u003e`readwrite`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`readonly`\" pulumi-lang-dotnet=\"`Readonly`\" pulumi-lang-go=\"`readonly`\" pulumi-lang-python=\"`readonly`\" pulumi-lang-yaml=\"`readonly`\" pulumi-lang-java=\"`readonly`\"\u003e`readonly`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["beginKey","endKey","id","status"]}}},"alicloud:log/getProjectsProject:getProjectsProject":{"properties":{"description":{"type":"string","description":"The description of the project.\n"},"id":{"type":"string","description":"The ID of the project.\n"},"lastModifyTime":{"type":"string","description":"The last modify time of project.\n"},"owner":{"type":"string","description":"The owner of project.\n"},"policy":{"type":"string","description":"The policy of project.\n"},"projectName":{"type":"string","description":"The name of the project.\n"},"region":{"type":"string","description":"The region of project.\n"},"status":{"type":"string","description":"The status of project.\n"}},"type":"object","required":["description","id","lastModifyTime","owner","policy","projectName","region","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:log/getStoresStore:getStoresStore":{"properties":{"id":{"type":"string","description":"The ID of the store.\n"},"storeName":{"type":"string","description":"The name of the store.\n"}},"type":"object","required":["id","storeName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:marketplace/getProductProduct:getProductProduct":{"properties":{"code":{"type":"string","description":"The code of the product.\n"},"description":{"type":"string","description":"The description of the product.\n"},"name":{"type":"string","description":"The name of the product.\n"},"skuses":{"type":"array","items":{"$ref":"#/types/alicloud:marketplace/getProductProductSkus:getProductProductSkus"},"description":"A list of one element containing sku attributes of an object. Each element contains the following attributes:\n"}},"type":"object","required":["code","description","name","skuses"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:marketplace/getProductProductSkus:getProductProductSkus":{"properties":{"images":{"type":"array","items":{"$ref":"#/types/alicloud:marketplace/getProductProductSkusImage:getProductProductSkusImage"},"description":"The list of custom ECS images, Each element contains the following attributes:\n"},"packageVersions":{"type":"array","items":{"$ref":"#/types/alicloud:marketplace/getProductProductSkusPackageVersion:getProductProductSkusPackageVersion"},"description":"The list of package version details of this product sku, Each element contains the following attributes:\n"},"skuCode":{"type":"string","description":"The sku code of this product sku.\n"},"skuName":{"type":"string","description":"The sku name of this product sku.\n"}},"type":"object","required":["images","packageVersions","skuCode","skuName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:marketplace/getProductProductSkusImage:getProductProductSkusImage":{"properties":{"imageId":{"type":"string","description":"The Ecs image id.\n"},"imageName":{"type":"string","description":"The Ecs image display name.\n"},"regionId":{"type":"string","description":"The Ecs image region.\n"}},"type":"object","required":["imageId","imageName","regionId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:marketplace/getProductProductSkusPackageVersion:getProductProductSkusPackageVersion":{"properties":{"packageName":{"type":"string","description":"The package name of this product sku package.\n"},"packageVersion":{"type":"string","description":"The package version of this product sku package. Currently, the API products can return package_version, but others can not for ensure.\n"}},"type":"object","required":["packageName","packageVersion"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:marketplace/getProductsProduct:getProductsProduct":{"properties":{"categoryId":{"type":"integer","description":"The Category ID of products.\n"},"code":{"type":"string","description":"The code of the product.\n"},"deliveryDate":{"type":"string","description":"The delivery date of the product.\n"},"deliveryWay":{"type":"string","description":"The delivery way of the product.\n"},"imageUrl":{"type":"string","description":"The image URL of the product.\n"},"name":{"type":"string","description":"The name of the product.\n"},"operationSystem":{"type":"string","description":"The operation system of the product.\n"},"score":{"type":"string","description":"The rating information of the product.\n"},"shortDescription":{"type":"string","description":"The short description of the product.\n"},"suggestedPrice":{"type":"string","description":"The suggested price of the product.\n"},"supplierId":{"type":"integer","description":"The supplier id of the product.\n"},"supplierName":{"type":"string","description":"The supplier name of the product.\n"},"tags":{"type":"string","description":"The tags of the product.\n"},"targetUrl":{"type":"string","description":"The detail page URL of the product.\n"},"warrantyDate":{"type":"string","description":"The warranty date of the product.\n"}},"type":"object","required":["categoryId","code","deliveryDate","deliveryWay","imageUrl","name","operationSystem","score","shortDescription","suggestedPrice","supplierId","supplierName","tags","targetUrl","warrantyDate"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:maxcompute/ProjectIpWhiteList:ProjectIpWhiteList":{"properties":{"ipList":{"type":"string","description":"Set the IP address whitelist in the classic network. Only devices in the whitelist are allowed to access the project.\n\n\u003e **NOTE:** If you only configure a classic network IP address whitelist, access to the classic network is restricted and all access to the VPC is prohibited.\n"},"vpcIpList":{"type":"string","description":"Set the IP address whitelist in the VPC network to allow only devices in the whitelist to access the project space.\n\n\u003e **NOTE:** If you only configure a VPC network IP address whitelist, access to the VPC network is restricted and access to the classic network is prohibited.\n"}},"type":"object"},"alicloud:maxcompute/ProjectProperties:ProjectProperties":{"properties":{"allowFullScan":{"type":"boolean","description":"Whether to allow full table scan. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enableDecimal2":{"type":"boolean","description":"Whether to turn on Decimal2.0.\n"},"enableDr":{"type":"boolean","description":"Enable multi-AZ storage disaster tolerance. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"encryption":{"$ref":"#/types/alicloud:maxcompute/ProjectPropertiesEncryption:ProjectPropertiesEncryption","description":"Storage encryption. For details, see [Storage Encryption](https://www.alibabacloud.com/help/en/maxcompute/security-and-compliance/storage-encryption)\n\u003e **NOTE :**:\nTo enable storage encryption, you need to modify the parameters of the basic attributes of the MaxCompute project. This operation permission is authenticated by RAM, and you need to have the Super_Administrator role permission of the corresponding project.\n\nTo configure the permissions and IP whitelist parameters of the MaxCompute project, you must have the management permissions (Admin) of the corresponding project, including Super_Administrator, Admin, or custom management permissions. For more information, see the project management permissions list.\n\nYou can turn on storage encryption only for projects that have not turned on storage encryption. For projects that have turned on storage encryption, you cannot turn off storage encryption or change the encryption algorithm. See \u003cspan pulumi-lang-nodejs=\"`encryption`\" pulumi-lang-dotnet=\"`Encryption`\" pulumi-lang-go=\"`encryption`\" pulumi-lang-python=\"`encryption`\" pulumi-lang-yaml=\"`encryption`\" pulumi-lang-java=\"`encryption`\"\u003e`encryption`\u003c/span\u003e below.\n"},"retentionDays":{"type":"integer","description":"Set the number of days to retain backup data. During this time, you can restore the current version to any backup version. The value range of days is [0,30], and the default value is 1. 0 means backup is turned off.\nThe effective policy after adjusting the backup cycle is:\nExtend the backup cycle: The new backup cycle takes effect on the same day.\nShorten the backup cycle: The system will automatically delete backup data that has exceeded the retention cycle.\n"},"sqlMeteringMax":{"type":"string","description":"Set the maximum threshold for single SQL Consumption, that is, set the ODPS. SQL. metering.value.max attribute. For more information, see [Consumption control](https://www.alibabacloud.com/help/en/maxcompute/product-overview/consumption-control).\nUnit: scan volume (GB)* complexity.\n"},"tableLifecycle":{"$ref":"#/types/alicloud:maxcompute/ProjectPropertiesTableLifecycle:ProjectPropertiesTableLifecycle","description":"Set whether the lifecycle of the table in the project needs to be configured, that is, set the ODPS. table.lifecycle property, See \u003cspan pulumi-lang-nodejs=\"`tableLifecycle`\" pulumi-lang-dotnet=\"`TableLifecycle`\" pulumi-lang-go=\"`tableLifecycle`\" pulumi-lang-python=\"`table_lifecycle`\" pulumi-lang-yaml=\"`tableLifecycle`\" pulumi-lang-java=\"`tableLifecycle`\"\u003e`table_lifecycle`\u003c/span\u003e below.\n"},"timezone":{"type":"string","description":"Project time zone, example value: Asia/Shanghai\n"},"typeSystem":{"type":"string","description":"Data type version. Value:(1/2/hive)\n1: The original MaxCompute type system.\n2: New type system introduced by MaxCompute 2.0.\nhive: the type system of the Hive compatibility mode introduced by MaxCompute 2.0.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["tableLifecycle","timezone"]}}},"alicloud:maxcompute/ProjectPropertiesEncryption:ProjectPropertiesEncryption":{"properties":{"algorithm":{"type":"string","description":"The encryption algorithm supported by the key, including AES256, AESCTR, and RC4.\n"},"enable":{"type":"boolean","description":"Only enable function is supported. Value: (true)\n\n\u003e **NOTE:** cannot be turned off after the function is turned on\n"},"key":{"type":"string","description":"The encryption algorithm Key, the Key type used by the project, including the Default Key (MaxCompute Default Key) and the self-contained Key (BYOK). The MaxCompute Default Key is the Default Key created inside MaxCompute.\n"}},"type":"object"},"alicloud:maxcompute/ProjectPropertiesTableLifecycle:ProjectPropertiesTableLifecycle":{"properties":{"type":{"type":"string","description":"Project type\n"},"value":{"type":"string","description":"The value of the life cycle, in days. The value range is 1~37231, and the default value is 37231.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["type","value"]}}},"alicloud:maxcompute/ProjectSecurityProperties:ProjectSecurityProperties":{"properties":{"enableDownloadPrivilege":{"type":"boolean","description":"Set whether to enable the [Download permission control function](https://www.alibabacloud.com/help/en/maxcompute/user-guide/download-control), that is, set the ODPS. security.enabledownloadprivilege property.\n"},"labelSecurity":{"type":"boolean","description":"Set whether to use the [Label permission control function](https://www.alibabacloud.com/help/en/maxcompute/user-guide/label-based-access-control), that is, set the LabelSecurity attribute, which is not used by default.\n"},"objectCreatorHasAccessPermission":{"type":"boolean","description":"Sets whether to allow the creator of the object to have access to the object, I .e. sets the attribute. The default is the allowed state.\n"},"objectCreatorHasGrantPermission":{"type":"boolean","description":"The ObjectCreatorHasGrantPermission attribute is set to allow the object creator to have the authorization permission on the object. The default is the allowed state.\n"},"projectProtection":{"$ref":"#/types/alicloud:maxcompute/ProjectSecurityPropertiesProjectProtection:ProjectSecurityPropertiesProjectProtection","description":"Project protection See \u003cspan pulumi-lang-nodejs=\"`projectProtection`\" pulumi-lang-dotnet=\"`ProjectProtection`\" pulumi-lang-go=\"`projectProtection`\" pulumi-lang-python=\"`project_protection`\" pulumi-lang-yaml=\"`projectProtection`\" pulumi-lang-java=\"`projectProtection`\"\u003e`project_protection`\u003c/span\u003e below.\n"},"usingAcl":{"type":"boolean","description":"Set whether to use the [ACL permission control function](https://www.alibabacloud.com/help/en/maxcompute/user-guide/maxcompute-permissions), that is, set the CheckPermissionUsingACL attribute, which is in use by default.\n"},"usingPolicy":{"type":"boolean","description":"Set whether to use the Policy permission control function (https://www.alibabacloud.com/help/en/maxcompute/user-guide/policy-based-access-control-1), that is, set the CheckPermissionUsingACL attribute, which is in use by default.\n"}},"type":"object"},"alicloud:maxcompute/ProjectSecurityPropertiesProjectProtection:ProjectSecurityPropertiesProjectProtection":{"properties":{"exceptionPolicy":{"type":"string","description":"Set [Exceptions or Trusted Items](https://www.alibabacloud.com/help/en/maxcompute/security-and-compliance/project-data-protection)\n"},"protected":{"type":"boolean","description":"Whether enabled, value:(true/false)\n"}},"type":"object"},"alicloud:maxcompute/QuotaPlanQuota:QuotaPlanQuota":{"properties":{"parameter":{"$ref":"#/types/alicloud:maxcompute/QuotaPlanQuotaParameter:QuotaPlanQuotaParameter","description":"Level 2 Quota CU configuration See \u003cspan pulumi-lang-nodejs=\"`parameter`\" pulumi-lang-dotnet=\"`Parameter`\" pulumi-lang-go=\"`parameter`\" pulumi-lang-python=\"`parameter`\" pulumi-lang-yaml=\"`parameter`\" pulumi-lang-java=\"`parameter`\"\u003e`parameter`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"subQuotaInfoLists":{"type":"array","items":{"$ref":"#/types/alicloud:maxcompute/QuotaPlanQuotaSubQuotaInfoList:QuotaPlanQuotaSubQuotaInfoList"},"description":"Secondary Quota list\n\n\u003e **NOTE:** need to list all secondary Quota\nSee \u003cspan pulumi-lang-nodejs=\"`subQuotaInfoList`\" pulumi-lang-dotnet=\"`SubQuotaInfoList`\" pulumi-lang-go=\"`subQuotaInfoList`\" pulumi-lang-python=\"`sub_quota_info_list`\" pulumi-lang-yaml=\"`subQuotaInfoList`\" pulumi-lang-java=\"`subQuotaInfoList`\"\u003e`sub_quota_info_list`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:maxcompute/QuotaPlanQuotaParameter:QuotaPlanQuotaParameter":{"properties":{"elasticReservedCu":{"type":"integer","description":"The value of elastic Reserved CUs.\n\n\u003e **NOTE:**  The total number of elastically reserved CUs in all the level-2 quotas is equal to the number of elastically reserved CUs in the level-1 quota..\n"},"maxCu":{"type":"integer","description":"The value of maxCU in Reserved CUs.\n"},"minCu":{"type":"integer","description":"The value of minCU in Reserved CUs.\n"}},"type":"object","required":["elasticReservedCu"],"language":{"nodejs":{"requiredOutputs":["elasticReservedCu","maxCu","minCu"]}}},"alicloud:maxcompute/QuotaPlanQuotaSubQuotaInfoList:QuotaPlanQuotaSubQuotaInfoList":{"properties":{"nickName":{"type":"string","description":"The nickname of the level-2 quota.\n","willReplaceOnChanges":true},"parameter":{"$ref":"#/types/alicloud:maxcompute/QuotaPlanQuotaSubQuotaInfoListParameter:QuotaPlanQuotaSubQuotaInfoListParameter","description":"The parameters of level-1 quota.\n"}},"type":"object","required":["nickName"]},"alicloud:maxcompute/QuotaPlanQuotaSubQuotaInfoListParameter:QuotaPlanQuotaSubQuotaInfoListParameter":{"properties":{"elasticReservedCu":{"type":"integer","description":"The value of elastic Reserved CUs.\n\n\u003e **NOTE:**  The total number of elastically reserved CUs in all the level-2 quotas is equal to the number of elastically reserved CUs in the level-1 quota..\n"},"maxCu":{"type":"integer","description":"The value of maxCU in Reserved CUs.\n"},"minCu":{"type":"integer","description":"The value of minCU in Reserved CUs.\n"}},"type":"object","required":["elasticReservedCu","maxCu","minCu"]},"alicloud:maxcompute/QuotaScheduleScheduleList:QuotaScheduleScheduleList":{"properties":{"condition":{"$ref":"#/types/alicloud:maxcompute/QuotaScheduleScheduleListCondition:QuotaScheduleScheduleListCondition","description":"The value of effective condition. See \u003cspan pulumi-lang-nodejs=\"`condition`\" pulumi-lang-dotnet=\"`Condition`\" pulumi-lang-go=\"`condition`\" pulumi-lang-python=\"`condition`\" pulumi-lang-yaml=\"`condition`\" pulumi-lang-java=\"`condition`\"\u003e`condition`\u003c/span\u003e below.\n"},"plan":{"type":"string","description":"The name of the quota plan.\n"},"type":{"type":"string","description":"The type of the quota plan. Valid values: daily \n\n\u003e **NOTE:** Currently, only daily is supported.\n","willReplaceOnChanges":true}},"type":"object","required":["plan","type"]},"alicloud:maxcompute/QuotaScheduleScheduleListCondition:QuotaScheduleScheduleListCondition":{"properties":{"at":{"type":"string","description":"Effective time. The format is HH:mm, sample value: 00:00\n\n\u003e **NOTE:** The configuration must start from the effective time of 00:00. The input time must be either a whole hour or a half hour, and the minimum interval between each schedule is 30 minutes.\n"}},"type":"object","required":["at"]},"alicloud:maxcompute/QuotaSubQuotaInfoList:QuotaSubQuotaInfoList":{"properties":{"nickName":{"type":"string","description":"Secondary Quota nickname.\n\n\u003e **NOTE:** -- Subscription: If you enter partNickName, the first-level QuotaNickName created is os_partNickName_p. Each first-level Quota has a default second-level Quota whose QuotaNickName is os_partNickName . -- The first-level quotanicname created by PayAsYouGo is os_PayAsYouGoQuota_p  by default, the second-level quotanicname is os_PayAsYouGoQuota\n"},"parameter":{"$ref":"#/types/alicloud:maxcompute/QuotaSubQuotaInfoListParameter:QuotaSubQuotaInfoListParameter","description":"Parameter See \u003cspan pulumi-lang-nodejs=\"`parameter`\" pulumi-lang-dotnet=\"`Parameter`\" pulumi-lang-go=\"`parameter`\" pulumi-lang-python=\"`parameter`\" pulumi-lang-yaml=\"`parameter`\" pulumi-lang-java=\"`parameter`\"\u003e`parameter`\u003c/span\u003e below.\n"},"type":{"type":"string","description":"The secondary Quota type. The default value is: FUXI_OFFLINE\n"}},"type":"object","required":["nickName"],"language":{"nodejs":{"requiredOutputs":["nickName","parameter","type"]}}},"alicloud:maxcompute/QuotaSubQuotaInfoListParameter:QuotaSubQuotaInfoListParameter":{"properties":{"enablePriority":{"type":"boolean","description":"Enable priority. Valid values: true/false, default: false\n"},"forceReservedMin":{"type":"boolean","description":"Exclusive or not. Valid values: true/false, default: false\n"},"maxCu":{"type":"integer","description":"The value of maxCU in Reserved CUs.\n\n\u003e **NOTE:**  The value of maxCU must be less than or equal to the value of maxCU in the level-1 quota that you purchased.\n"},"minCu":{"type":"integer","description":"The value of minCU in Reserved CUs.\n\n\u003e **NOTE:**  -- The total value of minCU in all the level-2 quotas is equal to the value of minCU in the level-1 quota.    -- The value of minCU must be less than or equal to the value of maxCU in the level-2 quota and less than or equal to the value of minCU in the level-1 quota that you purchased.\n"},"schedulerType":{"type":"string","description":"Scheduling policy. Valid values: Fifo/Fair, default: Fifo\n"},"singleJobCuLimit":{"type":"integer","description":"Single job CU upper limit. Valid value: greater than or equal to 1\n\n\u003e **NOTE:** -- If you want to not restrict SingleJobCuLimit, please make sure that this parameter is not included in the configuration at all. That is, do not configure SingleJobCuLimit to \"null\" or any other invalid value\n"}},"type":"object","required":["maxCu","minCu"],"language":{"nodejs":{"requiredOutputs":["enablePriority","forceReservedMin","maxCu","minCu","schedulerType","singleJobCuLimit"]}}},"alicloud:maxcompute/TunnelQuotaTimerQuotaTimer:TunnelQuotaTimerQuotaTimer":{"properties":{"beginTime":{"type":"string","description":"The time-sharing configuration start time. Reference value: 00:00\n"},"endTime":{"type":"string","description":"The end time of the timesharing configuration. Reference value: 24:00\n"},"tunnelQuotaParameter":{"$ref":"#/types/alicloud:maxcompute/TunnelQuotaTimerQuotaTimerTunnelQuotaParameter:TunnelQuotaTimerQuotaTimerTunnelQuotaParameter","description":"Time-sharing configuration parameters. See \u003cspan pulumi-lang-nodejs=\"`tunnelQuotaParameter`\" pulumi-lang-dotnet=\"`TunnelQuotaParameter`\" pulumi-lang-go=\"`tunnelQuotaParameter`\" pulumi-lang-python=\"`tunnel_quota_parameter`\" pulumi-lang-yaml=\"`tunnelQuotaParameter`\" pulumi-lang-java=\"`tunnelQuotaParameter`\"\u003e`tunnel_quota_parameter`\u003c/span\u003e below.\n"}},"type":"object","required":["beginTime","endTime"]},"alicloud:maxcompute/TunnelQuotaTimerQuotaTimerTunnelQuotaParameter:TunnelQuotaTimerQuotaTimerTunnelQuotaParameter":{"properties":{"elasticReservedSlotNum":{"type":"integer","description":"The number of elastic reserved concurrency (Slot).\n"},"slotNum":{"type":"integer","description":"The number of reserved concurrency (Slot).\n\n\u003e **NOTE:** The reserved concurrency (Slot) cannot be modified. The number of concurrency slots must be the same as that of the purchased tunnel quota.\n"}},"type":"object","required":["elasticReservedSlotNum","slotNum"]},"alicloud:maxcompute/getProjectsProject:getProjectsProject":{"properties":{"comment":{"type":"string","description":"Project description information. The length is 1 to 256 English or Chinese characters. The default value is blank.\n"},"costStorage":{"type":"string","description":"View the current storage size of the Project. The storage size is the same as the measurement size, that is, the compressed logical storage size collected by the Project.\n"},"createTime":{"type":"string","description":"Represents the creation time of the project\n"},"defaultQuota":{"type":"string","description":"Used to implement computing resource allocation.If the calculation Quota is not specified, the default Quota resource will be consumed by jobs initiated by the project. For more information about computing resource usage, see [Computing Resource Usage](https://www.alibabacloud.com/help/en/maxcompute/user-guide/use-of-computing-resources).\n"},"ipWhiteList":{"$ref":"#/types/alicloud:maxcompute/getProjectsProjectIpWhiteList:getProjectsProjectIpWhiteList","description":"IP whitelist\n"},"owner":{"type":"string","description":"Project owner\n"},"projectName":{"type":"string","description":"The name begins with a letter, containing letters, digits, and underscores (_). It can be 3 to 28 characters in length and is globally unique.\n"},"properties":{"$ref":"#/types/alicloud:maxcompute/getProjectsProjectProperties:getProjectsProjectProperties","description":"Project base attributes\n"},"securityProperties":{"$ref":"#/types/alicloud:maxcompute/getProjectsProjectSecurityProperties:getProjectsProjectSecurityProperties","description":"Security-related attributes\n"},"status":{"type":"string","description":"The project status. Default value: AVAILABLE. Value: (AVAILABLE/READONLY/FROZEN/DELETING)\n"},"type":{"type":"string","description":"Project type\n"}},"type":"object","required":["comment","costStorage","createTime","defaultQuota","ipWhiteList","owner","projectName","properties","securityProperties","status","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:maxcompute/getProjectsProjectIpWhiteList:getProjectsProjectIpWhiteList":{"properties":{"ipList":{"type":"string","description":"Set the IP address whitelist in the classic network. Only devices in the whitelist are allowed to access the project.\u003e **NOTE:** If you only configure a classic network IP address whitelist, access to the classic network is restricted and all access to the VPC is prohibited.\n"},"vpcIpList":{"type":"string","description":"Set the IP address whitelist in the VPC network to allow only devices in the whitelist to access the project space.\u003e **NOTE:** If you only configure a VPC network IP address whitelist, access to the VPC network is restricted and access to the classic network is prohibited.\n"}},"type":"object","required":["ipList","vpcIpList"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:maxcompute/getProjectsProjectProperties:getProjectsProjectProperties":{"properties":{"allowFullScan":{"type":"boolean","description":"Whether to allow full table scan. Default: false.\n"},"enableDecimal2":{"type":"boolean","description":"Whether to turn on Decimal2.0.\n"},"encryption":{"$ref":"#/types/alicloud:maxcompute/getProjectsProjectPropertiesEncryption:getProjectsProjectPropertiesEncryption","description":"Storage encryption. For details, see [Storage Encryption](https://www.alibabacloud.com/help/en/maxcompute/security-and-compliance/storage-encryption)\u003e **NOTE :**:To enable storage encryption, you need to modify the parameters of the basic attributes of the MaxCompute project. This operation permission is authenticated by RAM, and you need to have the Super_Administrator role permission of the corresponding project.To configure the permissions and IP whitelist parameters of the MaxCompute project, you must have the management permissions (Admin) of the corresponding project, including Super_Administrator, Admin, or custom management permissions. For more information, see the project management permissions list.You can turn on storage encryption only for projects that have not turned on storage encryption. For projects that have turned on storage encryption, you cannot turn off storage encryption or change the encryption algorithm.\n"},"retentionDays":{"type":"integer","description":"Set the number of days to retain backup data. During this time, you can restore the current version to any backup version. The value range of days is [0,30], and the default value is 1. 0 means backup is turned off.The effective policy after adjusting the backup cycle is:Extend the backup cycle: The new backup cycle takes effect on the same day.Shorten the backup cycle: The system will automatically delete backup data that has exceeded the retention cycle.\n"},"sqlMeteringMax":{"type":"string","description":"Set the maximum threshold of single SQL consumption, that is, set the ODPS. SQL. metering.value.max attribute. For details, see [Consumption Monitoring Alarm](https://www.alibabacloud.com/help/en/maxcompute/product-overview/consumption-control).Unit: scan volume (GB)* complexity.\n"},"tableLifecycle":{"$ref":"#/types/alicloud:maxcompute/getProjectsProjectPropertiesTableLifecycle:getProjectsProjectPropertiesTableLifecycle","description":"Set whether the lifecycle of the table in the project needs to be configured, that is, set the ODPS. table.lifecycle property,.\n"},"timezone":{"type":"string","description":"Project time zone, example value: Asia/Shanghai.\n"},"typeSystem":{"type":"string","description":"Data type version. Value:(1/2/hive)1: The original MaxCompute type system.2: New type system introduced by MaxCompute 2.0.hive: the type system of the Hive compatibility mode introduced by MaxCompute 2.0.\n"}},"type":"object","required":["allowFullScan","enableDecimal2","encryption","retentionDays","sqlMeteringMax","tableLifecycle","timezone","typeSystem"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:maxcompute/getProjectsProjectPropertiesEncryption:getProjectsProjectPropertiesEncryption":{"properties":{"algorithm":{"type":"string","description":"The encryption algorithm supported by the key, including AES256, AESCTR, and RC4.\n"},"enable":{"type":"boolean","description":"Only enable function is supported. Value: (true).\n"},"key":{"type":"string","description":"The encryption algorithm Key, the Key type used by the project, including the Default Key (MaxCompute Default Key) and the self-contained Key (BYOK). The MaxCompute Default Key is the Default Key created inside MaxCompute.\n"}},"type":"object","required":["algorithm","enable","key"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:maxcompute/getProjectsProjectPropertiesTableLifecycle:getProjectsProjectPropertiesTableLifecycle":{"properties":{"type":{"type":"string","description":"Project type\n"},"value":{"type":"string","description":"The value of the life cycle, in days. The value range is 1~37231, and the default value is 37231.\n"}},"type":"object","required":["type","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:maxcompute/getProjectsProjectSecurityProperties:getProjectsProjectSecurityProperties":{"properties":{"enableDownloadPrivilege":{"type":"boolean","description":"Set whether to enable the [Download permission control function](https://www.alibabacloud.com/help/en/maxcompute/user-guide/download-control), that is, set the ODPS. security.enabledownloadprivilege property.\n"},"labelSecurity":{"type":"boolean","description":"Set whether to use the [Label permission control function](https://www.alibabacloud.com/help/en/maxcompute/user-guide/label-based-access-control), that is, set the LabelSecurity attribute, which is not used by default.\n"},"objectCreatorHasAccessPermission":{"type":"boolean","description":"Sets whether to allow the creator of the object to have access to the object, I .e. sets the attribute. The default is the allowed state.\n"},"objectCreatorHasGrantPermission":{"type":"boolean","description":"The ObjectCreatorHasGrantPermission attribute is set to allow the object creator to have the authorization permission on the object. The default is the allowed state.\n"},"projectProtection":{"$ref":"#/types/alicloud:maxcompute/getProjectsProjectSecurityPropertiesProjectProtection:getProjectsProjectSecurityPropertiesProjectProtection","description":"Project protection.\n"},"usingAcl":{"type":"boolean","description":"Set whether to use the [ACL permission control function](https://www.alibabacloud.com/help/en/maxcompute/user-guide/maxcompute-permissions), that is, set the CheckPermissionUsingACL attribute, which is in use by default.\n"},"usingPolicy":{"type":"boolean","description":"Set whether to use the Policy permission control function (https://www.alibabacloud.com/help/en/maxcompute/user-guide/policy-based-access-control-1), that is, set the CheckPermissionUsingACL attribute, which is in use by default.\n"}},"type":"object","required":["enableDownloadPrivilege","labelSecurity","objectCreatorHasAccessPermission","objectCreatorHasGrantPermission","projectProtection","usingAcl","usingPolicy"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:maxcompute/getProjectsProjectSecurityPropertiesProjectProtection:getProjectsProjectSecurityPropertiesProjectProtection":{"properties":{"exceptionPolicy":{"type":"string","description":"Set [Exceptions or Trusted Items](https://www.alibabacloud.com/help/en/maxcompute/security-and-compliance/project-data-protection).\n"},"protected":{"type":"boolean","description":"Whether enabled, value:(true/false).\n"}},"type":"object","required":["exceptionPolicy","protected"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:message/ServiceEventRuleEndpoint:ServiceEventRuleEndpoint":{"properties":{"endpointType":{"type":"string","description":"Message receiving terminal endpoint type\n","willReplaceOnChanges":true},"endpointValue":{"type":"string","description":"Message Receiving Terminal Endpoint\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:message/ServiceEventRuleMatchRule:ServiceEventRuleMatchRule":{"properties":{"matchState":{"type":"string","description":"Match state. valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"name":{"type":"string","willReplaceOnChanges":true},"prefix":{"type":"string","description":"Prefix matching rule.\n","willReplaceOnChanges":true},"suffix":{"type":"string","description":"Suffix matching rule.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:message/ServiceQueueDlqPolicy:ServiceQueueDlqPolicy":{"properties":{"deadLetterTargetQueue":{"type":"string","description":"The queue to which dead-letter messages are delivered.\n"},"enabled":{"type":"boolean","description":"Specifies whether to enable the dead-letter message delivery. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"maxReceiveCount":{"type":"integer","description":"The maximum number of retries.\n"}},"type":"object"},"alicloud:message/ServiceSubscriptionDlqPolicy:ServiceSubscriptionDlqPolicy":{"properties":{"deadLetterTargetQueue":{"type":"string","description":"The queue to which dead-letter messages are delivered.\n"},"enabled":{"type":"boolean","description":"Specifies whether to enable the dead-letter message delivery. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object"},"alicloud:message/getServiceQueuesQueue:getServiceQueuesQueue":{"properties":{"activeMessages":{"type":"integer","description":"The total number of messages that are in the Active state in the queue. The value is an approximate number.\n"},"createTime":{"type":"integer","description":"The time when the queue was created. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.\n"},"delayMessages":{"type":"integer","description":"The total number of the messages that are in the Delayed state in the queue. The value is an approximate number.\n"},"delaySeconds":{"type":"integer","description":"The delay period after which all messages that are sent to the queue can be consumed. Unit: seconds.\n"},"id":{"type":"string","description":"The ID of the Queue. Its value is same as Queue Name.\n"},"inactiveMessages":{"type":"integer","description":"The total number of the messages that are in the Inactive state in the queue. The value is an approximate number.\n"},"lastModifyTime":{"type":"integer","description":"The time when the queue was last modified. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.\n"},"loggingEnabled":{"type":"boolean","description":"Indicates whether the log management feature is enabled for the queue.\n"},"maximumMessageSize":{"type":"integer","description":"The maximum size of a message body that can be sent to the queue. Unit: bytes.\n"},"messageRetentionPeriod":{"type":"integer","description":"The maximum period for which a message can be retained in the queue. A message that is sent to the queue can be retained for a specified period. After the specified period ends, the message is deleted no matter whether it is consumed. Unit: seconds.\n"},"pollingWaitSeconds":{"type":"integer","description":"The maximum period for which a ReceiveMessage request waits if no message is available in the queue. Unit: seconds.\n"},"queueInternalUrl":{"type":"string","description":"The internal url of the queue.\n"},"queueName":{"type":"string","description":"The name of the queue.\n"},"queueUrl":{"type":"string","description":"The url of the queue.\n"},"visibilityTimeout":{"type":"integer","description":"The invisibility period for which the received message remains the Inactive state. Unit: seconds.\n"}},"type":"object","required":["activeMessages","createTime","delayMessages","delaySeconds","id","inactiveMessages","lastModifyTime","loggingEnabled","maximumMessageSize","messageRetentionPeriod","pollingWaitSeconds","queueInternalUrl","queueName","queueUrl","visibilityTimeout"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:message/getServiceSubscriptionsSubscription:getServiceSubscriptionsSubscription":{"properties":{"createTime":{"type":"integer","description":"The time when the subscription was created. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.\n"},"endpoint":{"type":"string","description":"The endpoint to which the messages are pushed.\n"},"filterTag":{"type":"string","description":"The tag that is used to filter messages. Only the messages that are attached with the specified tag can be pushed.\n"},"id":{"type":"string","description":"The id of the Subscription.\n"},"lastModifyTime":{"type":"integer","description":"The time when the subscription was last modified. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.\n"},"notifyContentFormat":{"type":"string","description":"The content format of the messages that are pushed to the endpoint.\n"},"notifyStrategy":{"type":"string","description":"The retry policy that is applied if an error occurs when MNS pushes messages to the endpoint.\n"},"subscriptionName":{"type":"string","description":"The name of the subscription.\n"},"subscriptionUrl":{"type":"string","description":"The url of the subscription.\n"},"topicName":{"type":"string","description":"The name of the topic.\n"},"topicOwner":{"type":"string","description":"The account ID of the topic owner.\n"}},"type":"object","required":["createTime","endpoint","filterTag","id","lastModifyTime","notifyContentFormat","notifyStrategy","subscriptionName","subscriptionUrl","topicName","topicOwner"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:message/getServiceTopicsTopic:getServiceTopicsTopic":{"properties":{"createTime":{"type":"integer","description":"The time when the topic was created. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.\n"},"id":{"type":"string","description":"The id of the Topic. Its value is same as Topic Name.\n"},"lastModifyTime":{"type":"integer","description":"The time when the topic was last modified. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.\n"},"loggingEnabled":{"type":"boolean","description":"Indicates whether the log management feature is enabled.\n"},"maxMessageSize":{"type":"integer","description":"The maximum size of a message body that can be sent to the topic. Unit: bytes.\n"},"messageCount":{"type":"integer","description":"The number of messages in the topic.\n"},"messageRetentionPeriod":{"type":"integer","description":"The maximum period for which a message can be retained in the topic. A message that is sent to the topic can be retained for a specified period. After the specified period ends, the message is deleted no matter whether it is pushed to the specified endpoints. Unit: seconds.\n"},"topicInnerUrl":{"type":"string","description":"The inner url of the topic.\n"},"topicName":{"type":"string","description":"The name of the topic.\n"},"topicUrl":{"type":"string","description":"The url of the topic.\n"}},"type":"object","required":["createTime","id","lastModifyTime","loggingEnabled","maxMessageSize","messageCount","messageRetentionPeriod","topicInnerUrl","topicName","topicUrl"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mhub/getAppsApp:getAppsApp":{"properties":{"appKey":{"type":"string","description":"Application AppKey, which uniquely identifies an application when requested by the interface\n"},"appName":{"type":"string","description":"The Name of the App.\n"},"bundleId":{"type":"string","description":"iOS application ID. Required when creating an iOS app. **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`bundleId`\" pulumi-lang-dotnet=\"`BundleId`\" pulumi-lang-go=\"`bundleId`\" pulumi-lang-python=\"`bundle_id`\" pulumi-lang-yaml=\"`bundleId`\" pulumi-lang-java=\"`bundleId`\"\u003e`bundle_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`packageName`\" pulumi-lang-dotnet=\"`PackageName`\" pulumi-lang-go=\"`packageName`\" pulumi-lang-python=\"`package_name`\" pulumi-lang-yaml=\"`packageName`\" pulumi-lang-java=\"`packageName`\"\u003e`package_name`\u003c/span\u003e must be set.\n"},"createTime":{"type":"string","description":"The CreateTime of the App.\n"},"encodedIcon":{"type":"string","description":"Base64 string of picture.\n"},"id":{"type":"string","description":"The ID of the App.\n"},"industryId":{"type":"string","description":"The Industry ID of the app. For information about Industry and how to use it, MHUB[Industry](https://help.aliyun.com/document_detail/201638.html).\n"},"packageName":{"type":"string","description":"Android App package name.  **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`bundleId`\" pulumi-lang-dotnet=\"`BundleId`\" pulumi-lang-go=\"`bundleId`\" pulumi-lang-python=\"`bundle_id`\" pulumi-lang-yaml=\"`bundleId`\" pulumi-lang-java=\"`bundleId`\"\u003e`bundle_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`packageName`\" pulumi-lang-dotnet=\"`PackageName`\" pulumi-lang-go=\"`packageName`\" pulumi-lang-python=\"`package_name`\" pulumi-lang-yaml=\"`packageName`\" pulumi-lang-java=\"`packageName`\"\u003e`package_name`\u003c/span\u003e must be set.\n"},"productId":{"type":"string","description":"The ID of the Product.\n"},"type":{"type":"string","description":"The type of the App. Valid values: `Android` and `iOS`.\n"}},"type":"object","required":["appKey","appName","bundleId","createTime","encodedIcon","id","industryId","packageName","productId","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mhub/getProductsProduct:getProductsProduct":{"properties":{"id":{"type":"string","description":"The ID of the Product.\n"},"productId":{"type":"string","description":"The ID of the Product.\n"},"productName":{"type":"string","description":"The name of the Product.\n"}},"type":"object","required":["id","productId","productName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mns/getQueuesQueue:getQueuesQueue":{"properties":{"delaySeconds":{"type":"integer","description":"This attribute defines the length of time, in seconds, after which every message sent to the queue is dequeued.\n"},"id":{"type":"string","description":"The id of the queue, The value is set to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"maximumMessageSize":{"type":"integer","description":"This indicates the maximum length, in bytes, of any message body sent to the queue.\n"},"messageRetentionPeriod":{"type":"integer","description":"Messages are deleted from the queue after a specified length of time, whether they have been activated or not. This attribute defines the viability period, in seconds, for every message in the queue.\n"},"name":{"type":"string","description":"The name of the queue\n"},"pollingWaitSeconds":{"type":"integer","description":"Long polling is measured in seconds. When this attribute is set to 0, long polling is disabled. When it is not set to 0, long polling is enabled and message dequeue requests will be processed only when valid messages are received or when long polling times out.\n"},"visibilityTimeouts":{"type":"integer","description":"Dequeued messages change from active (visible) status to inactive (invisible) status. This attribute defines the length of time, in seconds, that messages remain invisible. Messages return to active status after the set period.\n"}},"type":"object","required":["delaySeconds","id","maximumMessageSize","messageRetentionPeriod","name","pollingWaitSeconds","visibilityTimeouts"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mns/getTopicSubscriptionsSubscription:getTopicSubscriptionsSubscription":{"properties":{"endpoint":{"type":"string","description":"Describe the terminal address of the message received in this subscription.\n"},"filterTag":{"type":"string","description":"A string to filter resulting messages of the topic by their message tag.\n"},"id":{"type":"string","description":"The ID of the topic subscription. The value is set to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the subscription.\n"},"notifyContentFormat":{"type":"string","description":"The NotifyContentFormat attribute of Subscription. This attribute specifies the content format of the messages pushed to users.\n"},"notifyStrategy":{"type":"string","description":"The NotifyStrategy attribute of Subscription. This attribute specifies the retry strategy when message sending fails.\n"},"topicName":{"type":"string","description":"Two topics on a single account in the same region cannot have the same name. A topic name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 256 characters.\n"}},"type":"object","required":["endpoint","filterTag","id","name","notifyContentFormat","notifyStrategy","topicName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mns/getTopicsTopic:getTopicsTopic":{"properties":{"id":{"type":"string","description":"The id of the topic. The value is set to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"loggingEnabled":{"type":"boolean","description":"Whether to enable logging.\n"},"maximumMessageSize":{"type":"integer","description":"This indicates the maximum length, in bytes, of any message body sent to the topic.\n"},"name":{"type":"string","description":"The name of the topic.\n"}},"type":"object","required":["id","loggingEnabled","maximumMessageSize","name"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mongodb/InstanceParameter:InstanceParameter":{"properties":{"name":{"type":"string","description":"The name of the parameter.\n"},"value":{"type":"string","description":"The value of the parameter.\n"}},"type":"object","required":["name","value"]},"alicloud:mongodb/InstanceReplicaSet:InstanceReplicaSet":{"properties":{"connectionDomain":{"type":"string","description":"The connection address of the node.\n"},"connectionPort":{"type":"string","description":"The connection port of the node.\n"},"networkType":{"type":"string","description":"The network type of the instance. Valid values: `VPC`.\n\u003e **NOTE:** From 2022.2.21, \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e cannot be set to `Classic`. For more information, see[Product Notification](https://www.alibabacloud.com/help/en/mongodb/product-overview/eol-notice-for-apsaradb-for-mongodb-instances-in-the-classic-network)\n"},"replicaSetRole":{"type":"string","description":"The role of the node.\n"},"roleId":{"type":"string","description":"The id of the role.\n"},"vpcCloudInstanceId":{"type":"string","description":"VPC instance ID.\n"},"vpcId":{"type":"string","description":"The ID of the VPC. \u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e is set to `VPC`.\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["connectionDomain","connectionPort","networkType","replicaSetRole","roleId","vpcCloudInstanceId","vpcId","vswitchId"]}}},"alicloud:mongodb/InstanceZoneInfo:InstanceZoneInfo":{"properties":{"insName":{"type":"string","description":"The ID of the node.\n"},"nodeType":{"type":"string","description":"The type of the node.\n"},"roleId":{"type":"string","description":"The id of the role.\n"},"roleType":{"type":"string","description":"The role of the node.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB instance. it supports multiple zone.\nIf it is a multi-zone and \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified, the vswitch must in one of them.\nThe multiple zone ID can be retrieved by setting \u003cspan pulumi-lang-nodejs=\"`multi`\" pulumi-lang-dotnet=\"`Multi`\" pulumi-lang-go=\"`multi`\" pulumi-lang-python=\"`multi`\" pulumi-lang-yaml=\"`multi`\" pulumi-lang-java=\"`multi`\"\u003e`multi`\u003c/span\u003e to \"true\" in the data source \u003cspan pulumi-lang-nodejs=\"`alicloud.getZones`\" pulumi-lang-dotnet=\"`alicloud.getZones`\" pulumi-lang-go=\"`getZones`\" pulumi-lang-python=\"`get_zones`\" pulumi-lang-yaml=\"`alicloud.getZones`\" pulumi-lang-java=\"`alicloud.getZones`\"\u003e`alicloud.getZones`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["insName","nodeType","roleId","roleType","zoneId"]}}},"alicloud:mongodb/PublicNetworkAddressReplicaSet:PublicNetworkAddressReplicaSet":{"properties":{"connectionDomain":{"type":"string","description":"The connection address of the node.\n"},"connectionPort":{"type":"string","description":"The connection port of the node.\n"},"connectionType":{"type":"string","description":"The connection type.\n"},"networkType":{"type":"string","description":"The network type, should be always \"Public\".\n"},"replicaSetRole":{"type":"string","description":"The role of the node.\n"},"roleId":{"type":"string","description":"The id of the role.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["connectionDomain","connectionPort","connectionType","networkType","replicaSetRole","roleId"]}}},"alicloud:mongodb/ServerlessInstanceSecurityIpGroup:ServerlessInstanceSecurityIpGroup":{"properties":{"securityIpGroupAttribute":{"type":"string","description":"The attribute of the IP whitelist. This parameter is empty by default.\n"},"securityIpGroupName":{"type":"string","description":"The name of the IP whitelist.\n"},"securityIpList":{"type":"string","description":"The IP addresses in the whitelist.\n"}},"type":"object"},"alicloud:mongodb/ShardingInstanceConfigServerList:ShardingInstanceConfigServerList":{"properties":{"connectString":{"type":"string","description":"The connection address of the Config Server node.\n"},"maxConnections":{"type":"integer","description":"The max connections of the Config Server node.\n"},"maxIops":{"type":"integer","description":"The maximum IOPS of the Config Server node.\n"},"nodeClass":{"type":"string","description":"The instance type of the ConfigServer node. Valid values: `mdb.shard.2x.xlarge.d`, `dds.cs.mid`.\n","willReplaceOnChanges":true},"nodeDescription":{"type":"string","description":"The description of the Config Server node.\n"},"nodeId":{"type":"string","description":"The ID of the Config Server node.\n"},"nodeStorage":{"type":"integer","description":"The storage space of the ConfigServer node.\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"The connection port of the Config Server node.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["connectString","maxConnections","maxIops","nodeClass","nodeDescription","nodeId","nodeStorage","port"]}}},"alicloud:mongodb/ShardingInstanceMongoList:ShardingInstanceMongoList":{"properties":{"connectString":{"type":"string","description":"The connection address of the Config Server node.\n"},"nodeClass":{"type":"string","description":"The instance type of the mongo node. see [Instance specifications](https://www.alibabacloud.com/help/doc-detail/57141.htm).\n"},"nodeId":{"type":"string","description":"The ID of the Config Server node.\n"},"port":{"type":"integer","description":"The connection port of the Config Server node.\n"}},"type":"object","required":["nodeClass"],"language":{"nodejs":{"requiredOutputs":["connectString","nodeClass","nodeId","port"]}}},"alicloud:mongodb/ShardingInstanceParameter:ShardingInstanceParameter":{"properties":{"name":{"type":"string","description":"The name of the parameter.\n"},"value":{"type":"string","description":"The value of the parameter.\n"}},"type":"object","required":["name","value"]},"alicloud:mongodb/ShardingInstanceShardList:ShardingInstanceShardList":{"properties":{"nodeClass":{"type":"string","description":"The instance type of the shard node. see [Instance specifications](https://www.alibabacloud.com/help/doc-detail/57141.htm).\n"},"nodeId":{"type":"string","description":"The ID of the Config Server node.\n"},"nodeStorage":{"type":"integer","description":"The storage space of the shard node.\n- Custom storage space; value range: [10, 1,000]\n- 10-GB increments. Unit: GB.\n"},"readonlyReplicas":{"type":"integer","description":"The number of read-only nodes in shard node Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"}},"type":"object","required":["nodeClass","nodeStorage"],"language":{"nodejs":{"requiredOutputs":["nodeClass","nodeId","nodeStorage","readonlyReplicas"]}}},"alicloud:mongodb/ShardingInstanceZoneInfo:ShardingInstanceZoneInfo":{"properties":{"insName":{"type":"string","description":"The ID of the node.\n"},"nodeType":{"type":"string","description":"The type of the node.\n"},"roleId":{"type":"string","description":"The role ID.\n"},"roleType":{"type":"string","description":"The role of the node.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB instance. MongoDB Sharding Instance does not support multiple-zone.\nIf it is a multi-zone and \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified, the vswitch must in one of them.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["insName","nodeType","roleId","roleType","zoneId"]}}},"alicloud:mongodb/ShardingNetworkPrivateAddressNetworkAddress:ShardingNetworkPrivateAddressNetworkAddress":{"properties":{"expiredTime":{"type":"string","description":"The remaining duration of the classic network endpoint.\n"},"ipAddress":{"type":"string","description":"The IP address of the instance.\n"},"networkAddress":{"type":"string","description":"The connection string of the instance.\n"},"networkType":{"type":"string","description":"The network type of the instance.\n"},"nodeId":{"type":"string","description":"The ID of the Shard node or ConfigServer node.\n"},"nodeType":{"type":"string","description":"The type of the node.\n"},"port":{"type":"string","description":"The port that is used to connect to the instance.\n"},"role":{"type":"string","description":"The role of the node.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch in the VPC.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["expiredTime","ipAddress","networkAddress","networkType","nodeId","nodeType","port","role","vpcId","vswitchId"]}}},"alicloud:mongodb/ShardingNetworkPublicAddressNetworkAddress:ShardingNetworkPublicAddressNetworkAddress":{"properties":{"expiredTime":{"type":"string","description":"The remaining duration of the classic network address. Unit: \u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e.\n"},"ipAddress":{"type":"string","description":"The IP address of the instance.\n"},"networkAddress":{"type":"string","description":"The endpoint of the instance.\n"},"networkType":{"type":"string","description":"The network type.\n"},"nodeId":{"type":"string","description":"The ID of the \u003cspan pulumi-lang-nodejs=\"`mongos`\" pulumi-lang-dotnet=\"`Mongos`\" pulumi-lang-go=\"`mongos`\" pulumi-lang-python=\"`mongos`\" pulumi-lang-yaml=\"`mongos`\" pulumi-lang-java=\"`mongos`\"\u003e`mongos`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`shard`\" pulumi-lang-dotnet=\"`Shard`\" pulumi-lang-go=\"`shard`\" pulumi-lang-python=\"`shard`\" pulumi-lang-yaml=\"`shard`\" pulumi-lang-java=\"`shard`\"\u003e`shard`\u003c/span\u003e, or `Configserver` node in the sharded cluster instance.\n"},"nodeType":{"type":"string","description":"The type of the node.\n"},"port":{"type":"string","description":"The port number.\n"},"role":{"type":"string","description":"The role of the node.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchId":{"type":"string","description":"The vSwitch ID of the VPC.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["expiredTime","ipAddress","networkAddress","networkType","nodeId","nodeType","port","role","vpcId","vswitchId"]}}},"alicloud:mongodb/getAccountsAccount:getAccountsAccount":{"properties":{"accountDescription":{"type":"string","description":"The description of the account.\n"},"accountName":{"type":"string","description":"The name of the account.\n"},"characterType":{"type":"string","description":"The role of the account. Valid values: \u003cspan pulumi-lang-nodejs=\"`db`\" pulumi-lang-dotnet=\"`Db`\" pulumi-lang-go=\"`db`\" pulumi-lang-python=\"`db`\" pulumi-lang-yaml=\"`db`\" pulumi-lang-java=\"`db`\"\u003e`db`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cs`\" pulumi-lang-dotnet=\"`Cs`\" pulumi-lang-go=\"`cs`\" pulumi-lang-python=\"`cs`\" pulumi-lang-yaml=\"`cs`\" pulumi-lang-java=\"`cs`\"\u003e`cs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongos`\" pulumi-lang-dotnet=\"`Mongos`\" pulumi-lang-go=\"`mongos`\" pulumi-lang-python=\"`mongos`\" pulumi-lang-yaml=\"`mongos`\" pulumi-lang-java=\"`mongos`\"\u003e`mongos`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logic`\" pulumi-lang-dotnet=\"`Logic`\" pulumi-lang-go=\"`logic`\" pulumi-lang-python=\"`logic`\" pulumi-lang-yaml=\"`logic`\" pulumi-lang-java=\"`logic`\"\u003e`logic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e.\n"},"id":{"type":"string","description":"The ID of the Account. The value formats as `\u003cinstance_id\u003e:\u003caccount_name\u003e`.\n"},"instanceId":{"type":"string","description":"The id of the instance to which the account belongs.\n"},"status":{"type":"string","description":"The status of the account. Valid values: `Unavailable`, `Available`.\n"}},"type":"object","required":["accountDescription","accountName","characterType","id","instanceId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mongodb/getAuditPoliciesPolicy:getAuditPoliciesPolicy":{"properties":{"auditStatus":{"type":"string","description":"The status of the log audit feature.\n"},"dbInstanceId":{"type":"string","description":"The ID of the instance.\n"},"id":{"type":"string","description":"The ID of the Audit Policy.\n"}},"type":"object","required":["auditStatus","dbInstanceId","id"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mongodb/getInstancesInstance:getInstancesInstance":{"properties":{"availabilityZone":{"type":"string","description":"The zone ID.\n"},"chargeType":{"type":"string","description":"The billing method of the instance.\n"},"creationTime":{"type":"string","description":"The time when the instance was created.\n"},"engine":{"type":"string","description":"The database engine.\n"},"engineVersion":{"type":"string","description":"The database engine version.\n"},"expirationTime":{"type":"string","description":"The time when the instance expires.\n"},"id":{"type":"string","description":"The instance ID.\n"},"instanceClass":{"type":"string","description":"The instance type.\n"},"instanceType":{"type":"string","description":"The instance architecture. Default value: \u003cspan pulumi-lang-nodejs=\"`replicate`\" pulumi-lang-dotnet=\"`Replicate`\" pulumi-lang-go=\"`replicate`\" pulumi-lang-python=\"`replicate`\" pulumi-lang-yaml=\"`replicate`\" pulumi-lang-java=\"`replicate`\"\u003e`replicate`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`replicate`\" pulumi-lang-dotnet=\"`Replicate`\" pulumi-lang-go=\"`replicate`\" pulumi-lang-python=\"`replicate`\" pulumi-lang-yaml=\"`replicate`\" pulumi-lang-java=\"`replicate`\"\u003e`replicate`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sharding`\" pulumi-lang-dotnet=\"`Sharding`\" pulumi-lang-go=\"`sharding`\" pulumi-lang-python=\"`sharding`\" pulumi-lang-yaml=\"`sharding`\" pulumi-lang-java=\"`sharding`\"\u003e`sharding`\u003c/span\u003e.\n"},"lockMode":{"type":"string","description":"The lock status of the instance.\n"},"mongos":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/getInstancesInstanceMongo:getInstancesInstanceMongo"},"description":"The mongo nodes of the instance. **Note:** \u003cspan pulumi-lang-nodejs=\"`mongos`\" pulumi-lang-dotnet=\"`Mongos`\" pulumi-lang-go=\"`mongos`\" pulumi-lang-python=\"`mongos`\" pulumi-lang-yaml=\"`mongos`\" pulumi-lang-java=\"`mongos`\"\u003e`mongos`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`sharding`\" pulumi-lang-dotnet=\"`Sharding`\" pulumi-lang-go=\"`sharding`\" pulumi-lang-python=\"`sharding`\" pulumi-lang-yaml=\"`sharding`\" pulumi-lang-java=\"`sharding`\"\u003e`sharding`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the instance.\n"},"networkType":{"type":"string","description":"The network type of the instance.\n"},"regionId":{"type":"string","description":"The region ID of the instance.\n"},"replication":{"type":"string","description":"The number of nodes in the instance.\n"},"restoreRanges":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/getInstancesInstanceRestoreRange:getInstancesInstanceRestoreRange"},"description":"(Available since v1.271.0) A list of time ranges available for point-in-time recovery. **Note:** \u003cspan pulumi-lang-nodejs=\"`restoreRanges`\" pulumi-lang-dotnet=\"`RestoreRanges`\" pulumi-lang-go=\"`restoreRanges`\" pulumi-lang-python=\"`restore_ranges`\" pulumi-lang-yaml=\"`restoreRanges`\" pulumi-lang-java=\"`restoreRanges`\"\u003e`restore_ranges`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"shards":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/getInstancesInstanceShard:getInstancesInstanceShard"},"description":"The information of the shard node. **Note:** \u003cspan pulumi-lang-nodejs=\"`shards`\" pulumi-lang-dotnet=\"`Shards`\" pulumi-lang-go=\"`shards`\" pulumi-lang-python=\"`shards`\" pulumi-lang-yaml=\"`shards`\" pulumi-lang-java=\"`shards`\"\u003e`shards`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`sharding`\" pulumi-lang-dotnet=\"`Sharding`\" pulumi-lang-go=\"`sharding`\" pulumi-lang-python=\"`sharding`\" pulumi-lang-yaml=\"`sharding`\" pulumi-lang-java=\"`sharding`\"\u003e`sharding`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The instance status.\n"},"storage":{"type":"integer","description":"The storage space of the shard node.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object","required":["availabilityZone","chargeType","creationTime","engine","engineVersion","expirationTime","id","instanceClass","instanceType","lockMode","mongos","name","networkType","regionId","replication","restoreRanges","shards","status","storage","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mongodb/getInstancesInstanceMongo:getInstancesInstanceMongo":{"properties":{"class":{"type":"string","description":"The instance type of the shard node.\n"},"description":{"type":"string","description":"The description of the shard node.\n"},"nodeId":{"type":"string","description":"The ID of the shard node.\n"}},"type":"object","required":["class","description","nodeId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mongodb/getInstancesInstanceRestoreRange:getInstancesInstanceRestoreRange":{"properties":{"restoreBeginTime":{"type":"string","description":"The beginning of the recoverable time range.\n"},"restoreEndTime":{"type":"string","description":"The end of the recoverable time range.\n"},"restoreType":{"type":"string","description":"The restoration method.\n"}},"type":"object","required":["restoreBeginTime","restoreEndTime","restoreType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mongodb/getInstancesInstanceShard:getInstancesInstanceShard":{"properties":{"class":{"type":"string","description":"The instance type of the shard node.\n"},"description":{"type":"string","description":"The description of the shard node.\n"},"nodeId":{"type":"string","description":"The ID of the shard node.\n"},"storage":{"type":"integer","description":"The storage space of the shard node.\n"}},"type":"object","required":["class","description","nodeId","storage"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mongodb/getServerlessInstancesInstance:getServerlessInstancesInstance":{"properties":{"capacityUnit":{"type":"integer","description":"The read/write throughput consumed by the instance.\n"},"dbInstanceClass":{"type":"string","description":"The db instance class.\n"},"dbInstanceDescription":{"type":"string","description":"The db instance description.\n"},"dbInstanceId":{"type":"string","description":"The db instance id.\n"},"dbInstanceReleaseProtection":{"type":"boolean","description":"The db instance release protection.\n"},"dbInstanceStorage":{"type":"integer","description":"The db instance storage.\n"},"engine":{"type":"string","description":"The database engine of the instance.\n"},"engineVersion":{"type":"string","description":"The database version number. Valid values: `4.2`.\n"},"expireTime":{"type":"string","description":"The time when the subscription instance expires. The time is in the `yyyy-MM-ddTHH:mmZ` format. The time is displayed in UTC.\n"},"id":{"type":"string","description":"The ID of the Serverless Instance.\n"},"kindCode":{"type":"string","description":"Indicates the type of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: physical machine. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: ECS. \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: DOCKER. \u003cspan pulumi-lang-nodejs=\"`18`\" pulumi-lang-dotnet=\"`18`\" pulumi-lang-go=\"`18`\" pulumi-lang-python=\"`18`\" pulumi-lang-yaml=\"`18`\" pulumi-lang-java=\"`18`\"\u003e`18`\u003c/span\u003e: k8s new architecture instance.\n"},"lockMode":{"type":"string","description":"The locked status of the instance.\n"},"maintainEndTime":{"type":"string","description":"The start time of the maintenance window. The time is in the `HH:mmZ` format. The time is displayed in UTC.\n"},"maintainStartTime":{"type":"string","description":"The end time of the maintenance window. The time is in the `HH:mmZ` format. The time is displayed in UTC.\n"},"maxConnections":{"type":"integer","description":"Instance maximum connections.\n"},"maxIops":{"type":"integer","description":"The maximum IOPS of the instance.\n"},"networkType":{"type":"string","description":"The network type of the instance.\n"},"paymentType":{"type":"string","description":"The Payment type of the instance.\n"},"protocolType":{"type":"string","description":"The access protocol type of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dynamodb`\" pulumi-lang-dotnet=\"`Dynamodb`\" pulumi-lang-go=\"`dynamodb`\" pulumi-lang-python=\"`dynamodb`\" pulumi-lang-yaml=\"`dynamodb`\" pulumi-lang-java=\"`dynamodb`\"\u003e`dynamodb`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityIpGroups":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/getServerlessInstancesInstanceSecurityIpGroup:getServerlessInstancesInstanceSecurityIpGroup"},"description":"The security ip list.\n"},"status":{"type":"string","description":"The status of the instance.\n"},"storageEngine":{"type":"string","description":"The storage engine used by the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"vpcAuthMode":{"type":"string","description":"Intranet secret free access mode.\n"},"vpcId":{"type":"string","description":"The ID of the VPC network.\n"},"vswitchId":{"type":"string","description":"The id of the vswitch.\n"},"zoneId":{"type":"string","description":"The ID of the zone.\n"}},"type":"object","required":["capacityUnit","dbInstanceClass","dbInstanceDescription","dbInstanceId","dbInstanceReleaseProtection","dbInstanceStorage","engine","engineVersion","expireTime","id","kindCode","lockMode","maintainEndTime","maintainStartTime","maxConnections","maxIops","networkType","paymentType","protocolType","resourceGroupId","securityIpGroups","status","storageEngine","tags","vpcAuthMode","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mongodb/getServerlessInstancesInstanceSecurityIpGroup:getServerlessInstancesInstanceSecurityIpGroup":{"properties":{"securityIpGroupAttribute":{"type":"string","description":"The attribute of the IP whitelist. This parameter is empty by default.\n"},"securityIpGroupName":{"type":"string","description":"The name of the IP whitelist.\n"},"securityIpList":{"type":"string","description":"The IP addresses in the whitelist.\n"}},"type":"object","required":["securityIpGroupAttribute","securityIpGroupName","securityIpList"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mongodb/getShardingNetworkPrivateAddressesAddress:getShardingNetworkPrivateAddressesAddress":{"properties":{"dbInstanceId":{"type":"string","description":"The db instance id.\n"},"expiredTime":{"type":"string","description":"The remaining duration of the classic network address. Unit: \u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e.\n"},"ipAddress":{"type":"string","description":"The IP address of the instance.\n"},"networkAddress":{"type":"string","description":"The endpoint of the instance.\n"},"networkType":{"type":"string","description":"The type of the network.\n"},"nodeId":{"type":"string","description":"The ID of the \u003cspan pulumi-lang-nodejs=\"`mongos`\" pulumi-lang-dotnet=\"`Mongos`\" pulumi-lang-go=\"`mongos`\" pulumi-lang-python=\"`mongos`\" pulumi-lang-yaml=\"`mongos`\" pulumi-lang-java=\"`mongos`\"\u003e`mongos`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`shard`\" pulumi-lang-dotnet=\"`Shard`\" pulumi-lang-go=\"`shard`\" pulumi-lang-python=\"`shard`\" pulumi-lang-yaml=\"`shard`\" pulumi-lang-java=\"`shard`\"\u003e`shard`\u003c/span\u003e, or `Configserver` node in the sharded cluster instance.\n"},"nodeType":{"type":"string","description":"The type of the node.\n"},"port":{"type":"string","description":"The port number.\n"},"role":{"type":"string","description":"The role of the node.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchId":{"type":"string","description":"The vSwitch ID of the VPC.\n"}},"type":"object","required":["dbInstanceId","expiredTime","ipAddress","networkAddress","networkType","nodeId","nodeType","port","role","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mongodb/getShardingNetworkPublicAddressesAddress:getShardingNetworkPublicAddressesAddress":{"properties":{"dbInstanceId":{"type":"string","description":"The db instance id.\n"},"expiredTime":{"type":"string","description":"The remaining duration of the classic network address. Unit: \u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e.\n"},"ipAddress":{"type":"string","description":"The IP address of the instance.\n"},"networkAddress":{"type":"string","description":"The endpoint of the instance.\n"},"networkType":{"type":"string","description":"The network type.\n"},"nodeId":{"type":"string","description":"The ID of the \u003cspan pulumi-lang-nodejs=\"`mongos`\" pulumi-lang-dotnet=\"`Mongos`\" pulumi-lang-go=\"`mongos`\" pulumi-lang-python=\"`mongos`\" pulumi-lang-yaml=\"`mongos`\" pulumi-lang-java=\"`mongos`\"\u003e`mongos`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`shard`\" pulumi-lang-dotnet=\"`Shard`\" pulumi-lang-go=\"`shard`\" pulumi-lang-python=\"`shard`\" pulumi-lang-yaml=\"`shard`\" pulumi-lang-java=\"`shard`\"\u003e`shard`\u003c/span\u003e, or `Configserver` node in the sharded cluster instance.\n"},"nodeType":{"type":"string","description":"The type of the node.\n"},"port":{"type":"string","description":"The port number.\n"},"role":{"type":"string","description":"The role of the node.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchId":{"type":"string","description":"The vSwitch ID of the VPC.\n"}},"type":"object","required":["dbInstanceId","expiredTime","ipAddress","networkAddress","networkType","nodeId","nodeType","port","role","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mongodb/getZonesZone:getZonesZone":{"properties":{"id":{"type":"string","description":"ID of the zone.\n"},"multiZoneIds":{"type":"array","items":{"type":"string"},"description":"A list of zone ids in which the multi zone.\n"}},"type":"object","required":["id","multiZoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mse/GatewaySlbList:GatewaySlbList":{"properties":{"associateId":{"type":"string","description":"The associate id.\n"},"gatewaySlbMode":{"type":"string","description":"The Mode of the gateway slb.\n"},"gatewaySlbStatus":{"type":"string","description":"The Status of the gateway slb.\n"},"gmtCreate":{"type":"string","description":"The creation time of the gateway slb.\n"},"slbId":{"type":"string","description":"The ID of the gateway slb.\n"},"slbIp":{"type":"string","description":"The ip of the gateway slb.\n"},"slbPort":{"type":"string","description":"The port of the gateway slb.\n"},"type":{"type":"string","description":"The type of the gateway slb.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["associateId","gatewaySlbMode","gatewaySlbStatus","gmtCreate","slbId","slbIp","slbPort","type"]}}},"alicloud:mse/getClustersCluster:getClustersCluster":{"properties":{"aclId":{"type":"string","description":"The id of acl.\n"},"appVersion":{"type":"string","description":"The version of app.\n"},"clusterId":{"type":"string","description":"ID of the MSE Cluster.\n"},"clusterName":{"type":"string","description":"ID of the OOS Executions.\n"},"clusterType":{"type":"string","description":"The type of MSE Cluster.\n"},"cpu":{"type":"integer","description":"The num of cpu.\n"},"healthStatus":{"type":"string","description":"The health status of the instance.\n"},"id":{"type":"string","description":"ID of the MSE Cluster.\n"},"initCostTime":{"type":"integer","description":"Time-consuming to create.\n"},"instanceCount":{"type":"integer","description":"The count of instance.\n"},"instanceId":{"type":"string","description":"ID of the MSE Cluster.\n"},"instanceModels":{"type":"array","items":{"$ref":"#/types/alicloud:mse/getClustersClusterInstanceModel:getClustersClusterInstanceModel"},"description":"The list of instance nodes.\n"},"internetAddress":{"type":"string","description":"The address of public network.\n"},"internetDomain":{"type":"string","description":"The domain of public network.\n"},"internetPort":{"type":"string","description":"The port of public network.\n"},"intranetAddress":{"type":"string","description":"The address of private network.\n"},"intranetDomain":{"type":"string","description":"The domain of private network.\n"},"intranetPort":{"type":"string","description":"The port of private network.\n"},"memoryCapacity":{"type":"integer","description":"The memory size.\n"},"payInfo":{"type":"string","description":"The type of payment.\n"},"pubNetworkFlow":{"type":"string","description":"The public network bandwidth.\n"},"status":{"type":"string","description":"The status of MSE Cluster. Valid: `DESTROY_FAILED`, `DESTROY_ING`, `DESTROY_SUCCESS`, `INIT_FAILED`, `INIT_ING`, `INIT_SUCCESS`, `INIT_TIME_OUT`, `RESTART_FAILED`, `RESTART_ING`, `RESTART_SUCCESS`, `SCALE_FAILED`, `SCALE_ING`, `SCALE_SUCCESS`\n"}},"type":"object","required":["aclId","appVersion","clusterId","clusterName","clusterType","cpu","healthStatus","id","initCostTime","instanceCount","instanceId","instanceModels","internetAddress","internetDomain","internetPort","intranetAddress","intranetDomain","intranetPort","memoryCapacity","payInfo","pubNetworkFlow","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mse/getClustersClusterInstanceModel:getClustersClusterInstanceModel":{"properties":{"healthStatus":{"type":"string","description":"The health status of the instance.\n"},"instanceType":{"type":"string","description":"(Deprecated from version 1.232.0)\n"},"internetIp":{"type":"string","description":"The public IP address.\n"},"ip":{"type":"string","description":"The IP address of the instance.\n"},"podName":{"type":"string","description":"The name of the pod.\n"},"role":{"type":"string","description":"The role.\n"},"singleTunnelVip":{"type":"string","description":"The single-thread IP address.\n"},"vip":{"type":"string","description":"(Deprecated from version 1.232.0)\n"}},"type":"object","required":["healthStatus","instanceType","internetIp","ip","podName","role","singleTunnelVip","vip"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mse/getEngineNamespacesNamespace:getEngineNamespacesNamespace":{"properties":{"configCount":{"type":"integer","description":"The Number of Configuration of the Namespace.\n"},"id":{"type":"string","description":"The ID of the Engine Namespace. It is formatted to `\u003cinstance_id\u003e:\u003cnamespace_id\u003e`.\n"},"namespaceDesc":{"type":"string","description":"The description of the Namespace.\n"},"namespaceId":{"type":"string","description":"The id of Namespace.\n"},"namespaceShowName":{"type":"string","description":"The name of the Namespace.\n"},"quota":{"type":"integer","description":"The Quota of the Namespace.\n"},"serviceCount":{"type":"string","description":"The number of active services.\n"},"type":{"type":"integer","description":"The type of the Namespace, the value is as follows:\n- '0': Global Configuration.\n- '1': default namespace.\n- '2': Custom Namespace.\n"}},"type":"object","required":["configCount","id","namespaceDesc","namespaceId","namespaceShowName","quota","serviceCount","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mse/getGatewaysGateway:getGatewaysGateway":{"properties":{"backupVswitchId":{"type":"string","description":"The backup vswitch id.\n"},"gatewayName":{"type":"string","description":"The name of the Gateway.\n"},"gatewayUniqueId":{"type":"string","description":"Gateway unique identification.\n"},"id":{"type":"string","description":"The ID of the Gateway.\n"},"paymentType":{"type":"string","description":"The payment type of the resource.\n"},"replica":{"type":"string","description":"Number of Gateway Nodes.\n"},"slbLists":{"type":"array","items":{"$ref":"#/types/alicloud:mse/getGatewaysGatewaySlbList:getGatewaysGatewaySlbList"},"description":"A list of gateway Slb.\n"},"spec":{"type":"string","description":"Gateway Node Specifications.\n"},"status":{"type":"string","description":"The status of the gateway.\n"},"vpcId":{"type":"string","description":"The ID of the vpc.\n"},"vswitchId":{"type":"string","description":"The ID of the vswitch.\n"}},"type":"object","required":["backupVswitchId","gatewayName","gatewayUniqueId","id","paymentType","replica","slbLists","spec","status","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mse/getGatewaysGatewaySlbList:getGatewaysGatewaySlbList":{"properties":{"associateId":{"type":"string","description":"The associate id.\n"},"gatewaySlbMode":{"type":"string","description":"The Mode of the gateway slb.\n"},"gatewaySlbStatus":{"type":"string","description":"The Status of the gateway slb.\n"},"gmtCreate":{"type":"string","description":"The creation time of the gateway slb.\n"},"slbId":{"type":"string","description":"The ID of the gateway slb.\n"},"slbIp":{"type":"string","description":"The ip of the gateway slb.\n"},"slbPort":{"type":"string","description":"The port of the gateway slb.\n"},"type":{"type":"string","description":"The type of the gateway slb.\n"}},"type":"object","required":["associateId","gatewaySlbMode","gatewaySlbStatus","gmtCreate","slbId","slbIp","slbPort","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mse/getNacosConfigsConfig:getNacosConfigsConfig":{"properties":{"appName":{"type":"string","description":"The name of the application.\n"},"betaIps":{"type":"string","description":"The list of IP addresses where the beta release of the configuration is performed.\n"},"content":{"type":"string","description":"The content of the configuration.\n"},"dataId":{"type":"string","description":"The ID of the data.\n"},"desc":{"type":"string","description":"The description of the configuration.\n"},"encryptedDataKey":{"type":"string","description":"The encryption key.\n"},"group":{"type":"string","description":"The ID of the group.\n"},"id":{"type":"string","description":"The ID of the Nacos Config. It is formatted to `\u003cinstance_id\u003e:\u003cnamespace_id\u003e:\u003cdata_id\u003e:\u003cgroup\u003e`.\n"},"md5":{"type":"string","description":"The message digest of the configuration.\n"},"tags":{"type":"string","description":"The tags of the configuration.\n"},"type":{"type":"string","description":"The format of the configuration. Supported formats include TEXT, JSON, and XML.\n"}},"type":"object","required":["appName","betaIps","content","dataId","desc","encryptedDataKey","group","id","md5","tags","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:mse/getZnodesZnode:getZnodesZnode":{"properties":{"clusterId":{"type":"string","description":"The ID of the Cluster.\n"},"data":{"type":"string","description":"The Node data.\n"},"dir":{"type":"boolean","description":"Node list information, the value is as follows:\n"},"id":{"type":"string","description":"The ID of the Znode. The value formats as `\u003ccluster_id\u003e:\u003cpath\u003e`.\n"},"path":{"type":"string","description":"The Node path.\n"},"znodeName":{"type":"string","description":"The Node name.\n"}},"type":"object","required":["clusterId","data","dir","id","path","znodeName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nas/AccessPointPosixUser:AccessPointPosixUser":{"properties":{"posixGroupId":{"type":"integer","description":"The ID of the Posix user group.\n","willReplaceOnChanges":true},"posixSecondaryGroupIds":{"type":"array","items":{"type":"integer"},"description":"The ID of the second user group.\n"},"posixUserId":{"type":"integer","description":"The Posix user ID.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["posixGroupId","posixSecondaryGroupIds","posixUserId"]}}},"alicloud:nas/AccessPointRootPathPermission:AccessPointRootPathPermission":{"properties":{"ownerGroupId":{"type":"integer","description":"The ID of the primary user group.\n","willReplaceOnChanges":true},"ownerUserId":{"type":"integer","description":"The owner user ID.\n","willReplaceOnChanges":true},"permission":{"type":"string","description":"The Portable Operating System Interface for UNIX (POSIX) permission.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["ownerGroupId","ownerUserId"]}}},"alicloud:nas/FileSystemNfsAcl:FileSystemNfsAcl":{"properties":{"enabled":{"type":"boolean","description":"Whether the NFS ACL function is enabled.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled"]}}},"alicloud:nas/FileSystemOptions:FileSystemOptions":{"properties":{"enableOplock":{"type":"boolean","description":"Whether to enable the OpLock function. Value:\n- true: On.\n- false: does not turn on.\n\n\u003e **NOTE:**  Description Only file systems of the SMB protocol type are supported.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableOplock"]}}},"alicloud:nas/FileSystemRecycleBin:FileSystemRecycleBin":{"properties":{"enableTime":{"type":"string","description":"Recycle Bin open time\n"},"reservedDays":{"type":"integer","description":"Retention time of files in the Recycle Bin. Unit: days.\n"},"secondarySize":{"type":"integer","description":"Amount of low-frequency data stored in the recycle bin. Unit: Byte.\n"},"size":{"type":"integer","description":"The amount of files stored in the Recycle Bin. Unit: Byte.\n"},"status":{"type":"string","description":"Recycle Bin Status\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableTime","reservedDays","secondarySize","size","status"]}}},"alicloud:nas/FileSystemSmbAcl:FileSystemSmbAcl":{"properties":{"enableAnonymousAccess":{"type":"boolean","description":"Whether to allow anonymous access.\n- true: Allow anonymous access.\n- false (default): Anonymous access is not allowed.\n"},"enabled":{"type":"boolean","description":"Whether SMB ACL is enabled\n"},"encryptData":{"type":"boolean","description":"Whether transmission encryption is enabled.\n- true: Enables encryption in transit.\n- false (default): Transport encryption is not enabled.\n"},"homeDirPath":{"type":"string","description":"The user directory home path for each user. The file path format is as follows:\n- A forward slash (/) or backslash (\\) as a separator.\n- Each paragraph cannot contain \":|? *.\n- The length of each segment ranges from 0 to 255.\n- The total length range is 0~32767.\n\nFor example, if the user directory is/home, the file system will automatically create A directory of/home/A when user A logs in. Skip if/home/A already exists.\n\n\u003e **NOTE:**  Explain that user A needs to have the permission to create A directory, otherwise the/home/A directory cannot be created.\n"},"rejectUnencryptedAccess":{"type":"boolean","description":"Whether to reject non-encrypted clients.\n- true: Deny non-encrypted clients.\n- false (default): Non-encrypted clients are not rejected.\n"},"superAdminSid":{"type":"string","description":"The ID of the Super User. The ID rules are as follows:\n- Must start with S and no other letters can appear after the S at the beginning.\n- At least three dashes (-) apart.\n\nSuch as S-1-5-22 or S-1-5-22-23.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableAnonymousAccess","enabled"]}}},"alicloud:nas/getAccessGroupsGroup:getAccessGroupsGroup":{"properties":{"accessGroupName":{"type":"string","description":"The name of access group.\n"},"accessGroupType":{"type":"string","description":"Filter results by a specific AccessGroupType.\n"},"description":{"type":"string","description":"Filter results by a specific Description.\n"},"id":{"type":"string","description":"This ID of this AccessGroup. It is formatted to ``\u003caccess_group_id\u003e:\u003cfile_system_type\u003e``. Before version 1.95.0, the value is \u003cspan pulumi-lang-nodejs=\"`accessGroupName`\" pulumi-lang-dotnet=\"`AccessGroupName`\" pulumi-lang-go=\"`accessGroupName`\" pulumi-lang-python=\"`access_group_name`\" pulumi-lang-yaml=\"`accessGroupName`\" pulumi-lang-java=\"`accessGroupName`\"\u003e`access_group_name`\u003c/span\u003e.\n"},"mountTargetCount":{"type":"integer","description":"MountTargetCount block of the AccessGroup\n"},"ruleCount":{"type":"integer","description":"RuleCount of the AccessGroup.\n"},"type":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e has been deprecated from version 1.95.0. Use \u003cspan pulumi-lang-nodejs=\"`accessGroupType`\" pulumi-lang-dotnet=\"`AccessGroupType`\" pulumi-lang-go=\"`accessGroupType`\" pulumi-lang-python=\"`access_group_type`\" pulumi-lang-yaml=\"`accessGroupType`\" pulumi-lang-java=\"`accessGroupType`\"\u003e`access_group_type`\u003c/span\u003e instead.\n"}},"type":"object","required":["accessGroupName","accessGroupType","description","id","mountTargetCount","ruleCount","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nas/getAccessRulesRule:getAccessRulesRule":{"properties":{"accessRuleId":{"type":"string","description":"AccessRuleId of the AccessRule.\n"},"priority":{"type":"integer","description":"Priority of the AccessRule.\n"},"rwAccess":{"type":"string","description":"Filter results by a specific RWAccess.\n"},"sourceCidrIp":{"type":"string","description":"Filter results by a specific SourceCidrIp.\n"},"userAccess":{"type":"string","description":"Filter results by a specific UserAccess.\n"}},"type":"object","required":["accessRuleId","priority","rwAccess","sourceCidrIp","userAccess"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nas/getAutoSnapshotPoliciesPolicy:getAutoSnapshotPoliciesPolicy":{"properties":{"autoSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy.\n"},"autoSnapshotPolicyName":{"type":"string","description":"The name of the automatic snapshot policy.\n"},"createTime":{"type":"string","description":"The time when the automatic snapshot policy was created.\n"},"fileSystemNums":{"type":"integer","description":"The number of file systems to which the automatic snapshot policy applies.\n"},"id":{"type":"string","description":"ID of the Auto Snapshot Policy.\n"},"repeatWeekdays":{"type":"array","items":{"type":"string"},"description":"The day on which an auto snapshot was created.\n"},"retentionDays":{"type":"integer","description":"The number of days for which you want to retain auto snapshots.\n"},"status":{"type":"string","description":"The status of the automatic snapshot policy. Valid values: `Creating`, `Available`.\n"},"timePoints":{"type":"array","items":{"type":"string"},"description":"The point in time at which an auto snapshot was created. Unit: hours.\n"}},"type":"object","required":["autoSnapshotPolicyId","autoSnapshotPolicyName","createTime","fileSystemNums","id","repeatWeekdays","retentionDays","status","timePoints"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nas/getDataFlowsFlow:getDataFlowsFlow":{"properties":{"createTime":{"type":"string","description":"The time when Fileset was created. Executing the ISO8601 standard means that the return format is: 'yyyy-MM-ddTHH:mm:ssZ'.\n"},"dataFlowId":{"type":"string","description":"The ID of the Data Flow.\n"},"description":{"type":"string","description":"The Description of data flow.\n"},"errorMessage":{"type":"string","description":"Error message.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n"},"fileSystemPath":{"type":"string","description":"The path of Fileset in the CPFS file system.\n"},"fsetDescription":{"type":"string","description":"Description of automatic update.\n"},"fsetId":{"type":"string","description":"The ID of the Fileset.\n"},"id":{"type":"string","description":"The resource ID of the data flow. The value formats as `\u003cfile_system_id\u003e:\u003cdata_flow_id\u003e`.\n"},"sourceSecurityType":{"type":"string","description":"The security protection type of the source storage.\n"},"sourceStorage":{"type":"string","description":"The access path of the source store. Format: `\u003cstorage type\u003e://\u003cpath\u003e`.\n"},"status":{"type":"string","description":"The status of the Data flow.\n"},"throughput":{"type":"integer","description":"The maximum transmission bandwidth of data flow, unit: `MB/s`.\n"}},"type":"object","required":["createTime","dataFlowId","description","errorMessage","fileSystemId","fileSystemPath","fsetDescription","fsetId","id","sourceSecurityType","sourceStorage","status","throughput"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nas/getFileSystemsSystem:getFileSystemsSystem":{"properties":{"capacity":{"type":"integer","description":"(Optional, Available in v1.140.0+) The capacity of the file system.\n"},"createTime":{"type":"string","description":"Time of creation.\n"},"description":{"type":"string","description":"Description of the FileSystem.\n"},"encryptType":{"type":"integer","description":"(Optional, Available in v1.121.2+) Whether the file system is encrypted. \n* Valid values:\n"},"fileSystemType":{"type":"string","description":"The type of the file system.\nValid values:\n\u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e (Default),\n\u003cspan pulumi-lang-nodejs=\"`extreme`\" pulumi-lang-dotnet=\"`Extreme`\" pulumi-lang-go=\"`extreme`\" pulumi-lang-python=\"`extreme`\" pulumi-lang-yaml=\"`extreme`\" pulumi-lang-java=\"`extreme`\"\u003e`extreme`\u003c/span\u003e.\n"},"id":{"type":"string","description":"ID of the FileSystem.\n"},"kmsKeyId":{"type":"string","description":"(Optional, Available in v1.140.0+) The id of the KMS key.\n"},"meteredSize":{"type":"integer","description":"MeteredSize of the FileSystem.\n"},"protocolType":{"type":"string","description":"The protocol type of the file system.\nValid values:\n`NFS`,\n`SMB` (Available when the \u003cspan pulumi-lang-nodejs=\"`fileSystemType`\" pulumi-lang-dotnet=\"`FileSystemType`\" pulumi-lang-go=\"`fileSystemType`\" pulumi-lang-python=\"`file_system_type`\" pulumi-lang-yaml=\"`fileSystemType`\" pulumi-lang-java=\"`fileSystemType`\"\u003e`file_system_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e).\n"},"regionId":{"type":"string","description":"ID of the region where the FileSystem is located.\n"},"storageType":{"type":"string","description":"The storage type of the file system.\n* Valid values:\n* `Performance` (Available when the \u003cspan pulumi-lang-nodejs=\"`fileSystemType`\" pulumi-lang-dotnet=\"`FileSystemType`\" pulumi-lang-go=\"`fileSystemType`\" pulumi-lang-python=\"`file_system_type`\" pulumi-lang-yaml=\"`fileSystemType`\" pulumi-lang-java=\"`fileSystemType`\"\u003e`file_system_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e)\n* `Capacity` (Available when the \u003cspan pulumi-lang-nodejs=\"`fileSystemType`\" pulumi-lang-dotnet=\"`FileSystemType`\" pulumi-lang-go=\"`fileSystemType`\" pulumi-lang-python=\"`file_system_type`\" pulumi-lang-yaml=\"`fileSystemType`\" pulumi-lang-java=\"`fileSystemType`\"\u003e`file_system_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e)\n"},"zoneId":{"type":"string","description":"(Optional, Available in v1.140.0+) The id of the zone. Each region consists of multiple isolated locations known as zones. Each zone has an independent power supply and network.\n"}},"type":"object","required":["capacity","createTime","description","encryptType","fileSystemType","id","kmsKeyId","meteredSize","protocolType","regionId","storageType","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nas/getFilesetsFileset:getFilesetsFileset":{"properties":{"createTime":{"type":"string","description":"The time when Fileset was created.\n"},"description":{"type":"string","description":"Description of Fileset.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n"},"fileSystemPath":{"type":"string","description":"The path of Fileset.\n"},"filesetId":{"type":"string","description":"The first ID of the resource.\n"},"id":{"type":"string","description":"The ID of the Fileset.\n"},"status":{"type":"string","description":"The status of the fileset.\n"},"updateTime":{"type":"string","description":"The latest update time of Fileset.\n"}},"type":"object","required":["createTime","description","fileSystemId","fileSystemPath","filesetId","id","status","updateTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nas/getLifecyclePoliciesPolicy:getLifecyclePoliciesPolicy":{"properties":{"createTime":{"type":"string","description":"The time when the lifecycle management policy was created.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n"},"id":{"type":"string","description":"The ID of the Lifecycle Policy. Its value is same as Queue Name.\n"},"lifecyclePolicyName":{"type":"string","description":"The name of the lifecycle management policy.\n"},"lifecycleRuleName":{"type":"string","description":"The rules in the lifecycle management policy.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"The list of absolute paths for multiple directories. In this case, you can associate a lifecycle management policy with each directory.\n"},"storageType":{"type":"string","description":"The storage type of the data that is dumped to the IA storage medium.\n"}},"type":"object","required":["createTime","fileSystemId","id","lifecyclePolicyName","lifecycleRuleName","paths","storageType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nas/getMountTargetsTarget:getMountTargetsTarget":{"properties":{"accessGroupName":{"type":"string","description":"Filter results by a specific AccessGroupName.\n"},"id":{"type":"string","description":"ID of the MountTargetDomain.\n"},"mountTargetDomain":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`mountTargetDomain`\" pulumi-lang-dotnet=\"`MountTargetDomain`\" pulumi-lang-go=\"`mountTargetDomain`\" pulumi-lang-python=\"`mount_target_domain`\" pulumi-lang-yaml=\"`mountTargetDomain`\" pulumi-lang-java=\"`mountTargetDomain`\"\u003e`mount_target_domain`\u003c/span\u003e has been deprecated from provider version 1.53.0. New field \u003cspan pulumi-lang-nodejs=\"`ids`\" pulumi-lang-dotnet=\"`Ids`\" pulumi-lang-go=\"`ids`\" pulumi-lang-python=\"`ids`\" pulumi-lang-yaml=\"`ids`\" pulumi-lang-java=\"`ids`\"\u003e`ids`\u003c/span\u003e replaces it.\n"},"networkType":{"type":"string","description":"Filter results by a specific NetworkType.\n"},"status":{"type":"string","description":"Filter results by the status of mount target. Valid values: `Active`, `Inactive` and `Pending`.\n"},"type":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e has been deprecated from provider version 1.95.0. New field \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e replaces it.\n"},"vpcId":{"type":"string","description":"Filter results by a specific VpcId.\n"},"vswitchId":{"type":"string","description":"Filter results by a specific VSwitchId.\n"}},"type":"object","required":["accessGroupName","id","mountTargetDomain","networkType","status","type","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nas/getSnapshotsSnapshot:getSnapshotsSnapshot":{"properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"description":{"type":"string","description":"The description of the snapshot.\n"},"encryptType":{"type":"integer","description":"The type of the encryption.\n"},"id":{"type":"string","description":"The ID of the Snapshot.\n"},"progress":{"type":"string","description":"The progress of the snapshot creation. The value of this parameter is expressed as a percentage.\n"},"remainTime":{"type":"integer","description":"The remaining time that is required to create the snapshot. Unit: seconds.\n"},"retentionDays":{"type":"integer","description":"The retention period of the automatic snapshot. Unit: days.\n"},"snapshotId":{"type":"string","description":"The ID of the resource.\n"},"snapshotName":{"type":"string","description":"The name of the snapshot.\n"},"sourceFileSystemId":{"type":"string","description":"The ID of the source file system.\n"},"sourceFileSystemSize":{"type":"string","description":"The capacity of the source file system. Unit: GiB.\n"},"sourceFileSystemVersion":{"type":"string","description":"The version of the source file system.\n"},"status":{"type":"string","description":"The status of the snapshot.\n"}},"type":"object","required":["createTime","description","encryptType","id","progress","remainTime","retentionDays","snapshotId","snapshotName","sourceFileSystemId","sourceFileSystemSize","sourceFileSystemVersion","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nas/getZonesZone:getZonesZone":{"properties":{"instanceTypes":{"type":"array","items":{"$ref":"#/types/alicloud:nas/getZonesZoneInstanceType:getZonesZoneInstanceType"},"description":"A list of instance type information collection\n"},"zoneId":{"type":"string","description":"String to filter results by zone id.\n"}},"type":"object","required":["instanceTypes","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nas/getZonesZoneInstanceType:getZonesZoneInstanceType":{"properties":{"protocolType":{"type":"string","description":"File transfer protocol type. Valid values:\n"},"storageType":{"type":"string","description":"The storage type of the nas zones. Valid values:\n"}},"type":"object","required":["protocolType","storageType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nlb/ListenerProxyProtocolConfig:ListenerProxyProtocolConfig":{"properties":{"proxyProtocolConfigPrivateLinkEpIdEnabled":{"type":"boolean","description":"Whether to enable carrying PrivateLinkEpId to backend servers through Proxy Protocol.\n"},"proxyProtocolConfigPrivateLinkEpsIdEnabled":{"type":"boolean","description":"Whether to enable carrying PrivateLinkEpsId to backend servers through the Proxy Protocol.\n"},"proxyProtocolConfigVpcIdEnabled":{"type":"boolean","description":"Whether to enable carrying VpcId to backend servers through Proxy Protocol.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["proxyProtocolConfigPrivateLinkEpIdEnabled"]}}},"alicloud:nlb/LoadBalancerDeletionProtectionConfig:LoadBalancerDeletionProtectionConfig":{"properties":{"enabled":{"type":"boolean","description":"Specifies whether to enable deletion protection. Valid values:\n"},"enabledTime":{"type":"string","description":"Opening time of the configuration read-only mode.\n"},"reason":{"type":"string","description":"The reason why deletion protection is enabled. The reason must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The reason must start with a letter.\n\n\n\u003e **NOTE:**  This parameter takes effect only when `DeletionProtectionEnabled` is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled","enabledTime","reason"]}}},"alicloud:nlb/LoadBalancerModificationProtectionConfig:LoadBalancerModificationProtectionConfig":{"properties":{"enabledTime":{"type":"string","description":"Opening time of the configuration read-only mode.\n"},"reason":{"type":"string","description":"The reason why the configuration read-only mode is enabled. The value must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The value must start with a letter.\n\n\u003e **NOTE:**   This parameter takes effect only if the \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e parameter is set to `ConsoleProtection`.\n"},"status":{"type":"string","description":"Specifies whether to enable the configuration read-only mode. Valid values:\n- `NonProtection`: disables the configuration read-only mode. In this case, you cannot set the `ModificationProtectionReason` parameter. If you specify `ModificationProtectionReason`, the value is cleared.\n- `ConsoleProtection`: enables the configuration read-only mode. In this case, you can specify `ModificationProtectionReason`.\n\n\u003e **NOTE:**  If you set this parameter to `ConsoleProtection`, you cannot use the NLB console to modify instance configurations. However, you can call API operations to modify instance configurations.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabledTime","status"]}}},"alicloud:nlb/LoadBalancerZoneMapping:LoadBalancerZoneMapping":{"properties":{"allocationId":{"type":"string","description":"The ID of the elastic IP address (EIP) that is associated with the Internet-facing NLB instance. You can specify one EIP for each zone. You must add at least two zones. You can add a maximum of 10 zones.\n"},"eniId":{"type":"string","description":"The ID of the elastic network interface (ENI).\n"},"ipv4LocalAddresses":{"type":"array","items":{"type":"string"},"description":"IPv4 Local address list. The list of addresses that NLB interacts with backend services.\n"},"ipv6Address":{"type":"string","description":"The IPv6 address of the NLB instance.\n"},"ipv6LocalAddresses":{"type":"array","items":{"type":"string"},"description":"IPv6 Local address list. The list of addresses that NLB interacts with backend services.\n"},"privateIpv4Address":{"type":"string","description":"The private IP address. You must add at least two zones. You can add a maximum of 10 zones.\n"},"publicIpv4Address":{"type":"string","description":"The public IPv4 address of the NLB instance.\n"},"status":{"type":"string","description":"Zone Status\n"},"vswitchId":{"type":"string","description":"The vSwitch in the zone. You can specify only one vSwitch (subnet) in each zone of an NLB instance. You must add at least two zones. You can add a maximum of 10 zones.\n"},"zoneId":{"type":"string","description":"The ID of the zone of the NLB instance. You must add at least two zones. You can add a maximum of 10 zones.\nYou can call the [DescribeZones](https://www.alibabacloud.com/help/en/doc-detail/443890.html) operation to query the most recent zone list.\n"}},"type":"object","required":["vswitchId","zoneId"],"language":{"nodejs":{"requiredOutputs":["allocationId","eniId","ipv4LocalAddresses","ipv6Address","ipv6LocalAddresses","privateIpv4Address","publicIpv4Address","status","vswitchId","zoneId"]}}},"alicloud:nlb/ServerGroupHealthCheck:ServerGroupHealthCheck":{"properties":{"healthCheckConnectPort":{"type":"integer","description":"The port that you want to use for health checks on backend servers.\nValid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\nDefault value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. If you set the value to 0, the port of the backend server is used for health checks.\n"},"healthCheckConnectTimeout":{"type":"integer","description":"The maximum timeout period of a health check. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"healthCheckDomain":{"type":"string","description":"The domain name that you want to use for health checks. Valid values:\n- `$SERVER_IP`: the private IP address of a backend server.\n"},"healthCheckEnabled":{"type":"boolean","description":"Specifies whether to enable the health check feature. Valid values:\n"},"healthCheckExp":{"type":"string","description":"health check response character string. The value contains a maximum of 512 characters\n"},"healthCheckHttpCodes":{"type":"array","items":{"type":"string"},"description":"The HTTP status codes to return for health checks. Separate multiple HTTP status codes with commas (,). Valid values: `http\\_2xx` (default), `http\\_3xx`, `http\\_4xx`, and `http\\_5xx`.\n\n\u003e **NOTE:**  This parameter takes effect only when `HealthCheckType` is set to `HTTP`.\n"},"healthCheckInterval":{"type":"integer","description":"The interval at which health checks are performed. Unit: seconds.\nValid values: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e.\nDefault value: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\n"},"healthCheckReq":{"type":"string","description":"UDP healthy check request string, the value is a character string of 512 characters\n"},"healthCheckType":{"type":"string","description":"The protocol that you want to use for health checks. Valid values: `TCP` (default) and `HTTP`.\n"},"healthCheckUrl":{"type":"string","description":"The path to which health check requests are sent.\n\nThe path must be 1 to 80 characters in length, and can contain only letters, digits, and the following special characters: `- / . % ? # \u0026 =`. It can also contain the following extended characters: `_ ; ~ ! ( ) * [ ] @ $ ^ : ' , +`. The path must start with a forward slash (/).\n\n\u003e **NOTE:**  This parameter takes effect only when `HealthCheckType` is set to `HTTP`.\n"},"healthyThreshold":{"type":"integer","description":"The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health status changes from \u003cspan pulumi-lang-nodejs=\"`fail`\" pulumi-lang-dotnet=\"`Fail`\" pulumi-lang-go=\"`fail`\" pulumi-lang-python=\"`fail`\" pulumi-lang-yaml=\"`fail`\" pulumi-lang-java=\"`fail`\"\u003e`fail`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`success`\" pulumi-lang-dotnet=\"`Success`\" pulumi-lang-go=\"`success`\" pulumi-lang-python=\"`success`\" pulumi-lang-yaml=\"`success`\" pulumi-lang-java=\"`success`\"\u003e`success`\u003c/span\u003e.\nValid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\nDefault value: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"},"httpCheckMethod":{"type":"string","description":"The HTTP method that is used for health checks. Valid values: `GET` (default) and `HEAD`.\n\n\u003e **NOTE:**  This parameter takes effect only when `HealthCheckType` is set to `HTTP`.\n"},"unhealthyThreshold":{"type":"integer","description":"The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health status changes from \u003cspan pulumi-lang-nodejs=\"`success`\" pulumi-lang-dotnet=\"`Success`\" pulumi-lang-go=\"`success`\" pulumi-lang-python=\"`success`\" pulumi-lang-yaml=\"`success`\" pulumi-lang-java=\"`success`\"\u003e`success`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`fail`\" pulumi-lang-dotnet=\"`Fail`\" pulumi-lang-go=\"`fail`\" pulumi-lang-python=\"`fail`\" pulumi-lang-yaml=\"`fail`\" pulumi-lang-java=\"`fail`\"\u003e`fail`\u003c/span\u003e.\nValid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\nDefault value: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["healthCheckConnectPort","healthCheckConnectTimeout","healthCheckDomain","healthCheckEnabled","healthCheckHttpCodes","healthCheckInterval","healthCheckType","healthCheckUrl","healthyThreshold","httpCheckMethod","unhealthyThreshold"]}}},"alicloud:nlb/getListenersListener:getListenersListener":{"properties":{"alpnEnabled":{"type":"boolean","description":"ndicates whether Application-Layer Protocol Negotiation (ALPN) is enabled.\n"},"alpnPolicy":{"type":"string","description":"The ALPN policy.\n"},"caCertificateIds":{"type":"array","items":{"type":"string"},"description":"CA certificate list information. Currently, only one CA certificate can be added. **NOTE:** This parameter only takes effect for `TCPSSL` listeners.\n"},"caEnabled":{"type":"boolean","description":"Whether to start two-way authentication.\n"},"certificateIds":{"type":"array","items":{"type":"string"},"description":"Server certificate list information. Currently, only one server certificate can be added. This parameter only takes effect for `TCPSSL` listeners.\n"},"cps":{"type":"integer","description":"The new connection speed limit for a network-based load balancing instance per second. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`1000000`\" pulumi-lang-dotnet=\"`1000000`\" pulumi-lang-go=\"`1000000`\" pulumi-lang-python=\"`1000000`\" pulumi-lang-yaml=\"`1000000`\" pulumi-lang-java=\"`1000000`\"\u003e`1000000`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e indicates unlimited speed.\n"},"endPort":{"type":"string","description":"Full port listening end port. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. The value of the end port is less than the start port.\n"},"id":{"type":"string","description":"The ID of the Nlb Listener.\n"},"idleTimeout":{"type":"integer","description":"Connection idle timeout time. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e.\n"},"listenerDescription":{"type":"string","description":"Custom listener name. The length is limited to 2 to 256 characters, supports Chinese and English letters, and can include numbers, commas (,), half-width periods (.), half-width semicolons (;), forward slashes (/), at(@), underscores (_), and dashes (-).\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n"},"listenerPort":{"type":"integer","description":"Listening port. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: indicates that full port listening is used. When set to 0, you must configure `StartPort` and `EndPort`.\n"},"listenerProtocol":{"type":"string","description":"The listening protocol. Valid values: `TCP`, `UDP`, or `TCPSSL`.\n"},"loadBalancerId":{"type":"string","description":"The ID of the network-based server load balancer instance.\n"},"mss":{"type":"integer","description":"The maximum segment size of the TCP message. Unit: Bytes. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`1500`\" pulumi-lang-dotnet=\"`1500`\" pulumi-lang-go=\"`1500`\" pulumi-lang-python=\"`1500`\" pulumi-lang-yaml=\"`1500`\" pulumi-lang-java=\"`1500`\"\u003e`1500`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e indicates that the MSS value of the TCP message is not modified. only `TCP` and `TCPSSL` listeners support this field value.\n"},"proxyProtocolEnabled":{"type":"boolean","description":"Whether to enable the Proxy Protocol to carry the source address of the client to the backend server.\n"},"secSensorEnabled":{"type":"boolean","description":"Indicates whether fine-grained monitoring is enabled.\n"},"securityPolicyId":{"type":"string","description":"Security policy ID. Support system security policies and custom security policies. Valid values: \u003cspan pulumi-lang-nodejs=\"`tlsCipherPolicy10`\" pulumi-lang-dotnet=\"`TlsCipherPolicy10`\" pulumi-lang-go=\"`tlsCipherPolicy10`\" pulumi-lang-python=\"`tls_cipher_policy_1_0`\" pulumi-lang-yaml=\"`tlsCipherPolicy10`\" pulumi-lang-java=\"`tlsCipherPolicy10`\"\u003e`tls_cipher_policy_1_0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tlsCipherPolicy11`\" pulumi-lang-dotnet=\"`TlsCipherPolicy11`\" pulumi-lang-go=\"`tlsCipherPolicy11`\" pulumi-lang-python=\"`tls_cipher_policy_1_1`\" pulumi-lang-yaml=\"`tlsCipherPolicy11`\" pulumi-lang-java=\"`tlsCipherPolicy11`\"\u003e`tls_cipher_policy_1_1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tlsCipherPolicy12`\" pulumi-lang-dotnet=\"`TlsCipherPolicy12`\" pulumi-lang-go=\"`tlsCipherPolicy12`\" pulumi-lang-python=\"`tls_cipher_policy_1_2`\" pulumi-lang-yaml=\"`tlsCipherPolicy12`\" pulumi-lang-java=\"`tlsCipherPolicy12`\"\u003e`tls_cipher_policy_1_2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tlsCipherPolicy12Strict`\" pulumi-lang-dotnet=\"`TlsCipherPolicy12Strict`\" pulumi-lang-go=\"`tlsCipherPolicy12Strict`\" pulumi-lang-python=\"`tls_cipher_policy_1_2_strict`\" pulumi-lang-yaml=\"`tlsCipherPolicy12Strict`\" pulumi-lang-java=\"`tlsCipherPolicy12Strict`\"\u003e`tls_cipher_policy_1_2_strict`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`tlsCipherPolicy12StrictWith13`\" pulumi-lang-dotnet=\"`TlsCipherPolicy12StrictWith13`\" pulumi-lang-go=\"`tlsCipherPolicy12StrictWith13`\" pulumi-lang-python=\"`tls_cipher_policy_1_2_strict_with_1_3`\" pulumi-lang-yaml=\"`tlsCipherPolicy12StrictWith13`\" pulumi-lang-java=\"`tlsCipherPolicy12StrictWith13`\"\u003e`tls_cipher_policy_1_2_strict_with_1_3`\u003c/span\u003e. **Note:** This parameter only takes effect for `TCPSSL` listeners.\n"},"serverGroupId":{"type":"string","description":"The ID of the server group.\n"},"startPort":{"type":"string","description":"Full Port listens to the starting port. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object","required":["alpnEnabled","alpnPolicy","caCertificateIds","caEnabled","certificateIds","cps","endPort","id","idleTimeout","listenerDescription","listenerId","listenerPort","listenerProtocol","loadBalancerId","mss","proxyProtocolEnabled","secSensorEnabled","securityPolicyId","serverGroupId","startPort","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nlb/getLoadBalancersBalancer:getLoadBalancersBalancer":{"properties":{"addressIpVersion":{"type":"string","description":"The IP version.\n"},"addressType":{"type":"string","description":"The type of IPv4 address used by the NLB instance.\n"},"bandwidthPackageId":{"type":"string","description":"The ID of the EIP bandwidth plan that is associated with the NLB instance if the NLB instance uses a public IP address.\n"},"createTime":{"type":"string","description":"The time when the resource was created. The time is displayed in UTC in `yyyy-MM-ddTHH:mm:ssZ` format.\n"},"crossZoneEnabled":{"type":"boolean","description":"Indicates whether cross-zone load balancing is enabled for the NLB instance.\n"},"dnsName":{"type":"string","description":"The domain name of the NLB instance.\n"},"id":{"type":"string","description":"The ID of the NLB instance.\n"},"ipv6AddressType":{"type":"string","description":"The type of IPv6 address used by the NLB instance.\n"},"loadBalancerBusinessStatus":{"type":"string","description":"The business status of the NLB instance.\n"},"loadBalancerId":{"type":"string","description":"The ID of the NLB instance.\n"},"loadBalancerName":{"type":"string","description":"The name of the NLB instance.\n"},"loadBalancerType":{"type":"string","description":"The type of the SLB instance. Only Network is supported, which indicates NLB.\n"},"operationLocks":{"type":"array","items":{"$ref":"#/types/alicloud:nlb/getLoadBalancersBalancerOperationLock:getLoadBalancersBalancerOperationLock"},"description":"The configuration of the operation lock. This parameter takes effect if LoadBalancerBussinessStatus is Abnormal.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The security group to which the NLB instance belongs.\n"},"status":{"type":"string","description":"The status of the NLB instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC where the NLB instance is deployed.\n"},"zoneMappings":{"type":"array","items":{"$ref":"#/types/alicloud:nlb/getLoadBalancersBalancerZoneMapping:getLoadBalancersBalancerZoneMapping"},"description":"The zones and the vSwitches in the zones. An NLB instance can be deployed across 2 to 10 zones.\n"}},"type":"object","required":["addressIpVersion","addressType","bandwidthPackageId","createTime","crossZoneEnabled","dnsName","id","ipv6AddressType","loadBalancerBusinessStatus","loadBalancerId","loadBalancerName","loadBalancerType","operationLocks","resourceGroupId","securityGroupIds","status","vpcId","zoneMappings"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nlb/getLoadBalancersBalancerOperationLock:getLoadBalancersBalancerOperationLock":{"properties":{"lockReason":{"type":"string","description":"The reason why the NLB instance is locked.\n"},"lockType":{"type":"string","description":"The type of lock.\n"}},"type":"object","required":["lockReason","lockType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nlb/getLoadBalancersBalancerZoneMapping:getLoadBalancersBalancerZoneMapping":{"properties":{"allocationId":{"type":"string","description":"The ID of the elastic IP address (EIP).\n"},"eniId":{"type":"string","description":"The ID of the elastic network interface (ENI) attached to the NLB instance.\n"},"ipv6Address":{"type":"string","description":"The IPv6 address of the NLB instance.\n"},"privateIpv4Address":{"type":"string","description":"The private IPv4 address used by the NLB instance.\n"},"publicIpv4Address":{"type":"string","description":"The public IPv4 address used by the NLB instance.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch. By default, you can specify one vSwitch (subnet) in each zone of the NLB instance.\n"},"zoneId":{"type":"string","description":"The name of the zone.\n"}},"type":"object","required":["allocationId","eniId","ipv6Address","privateIpv4Address","publicIpv4Address","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nlb/getSecurityPoliciesPolicy:getSecurityPoliciesPolicy":{"properties":{"ciphers":{"type":"array","items":{"type":"string"},"description":"The supported cipher suites, which are determined by the TLS protocol version.\n"},"id":{"type":"string","description":"The id of the TLS security policy.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityPolicyName":{"type":"string","description":"The name of the TLS security policy.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"The TLS protocol versions that are supported.\n"}},"type":"object","required":["ciphers","id","resourceGroupId","securityPolicyName","status","tags","tlsVersions"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nlb/getServerGroupServerAttachmentsAttachment:getServerGroupServerAttachmentsAttachment":{"properties":{"description":{"type":"string","description":"The description of the backend server.\n"},"id":{"type":"string","description":"The ID of the server group. The value is formulated as `\u003cserver_group_id\u003e:\u003cserver_id\u003e:\u003cserver_type\u003e:\u003cport\u003e`.\n"},"port":{"type":"integer","description":"The port used by the backend server.\n"},"serverGroupId":{"type":"string","description":"The ID of the server group.\n"},"serverId":{"type":"string","description":"The ID of the server.\n"},"serverIp":{"type":"string","description":"The IP address of the backend server.\n"},"serverType":{"type":"string","description":"The type of the backend server.\n"},"status":{"type":"string","description":"Indicates the status of the backend server.\n"},"weight":{"type":"integer","description":"The weight of the backend server.\n"},"zoneId":{"type":"string","description":"The zone ID of the server.\n"}},"type":"object","required":["description","id","port","serverGroupId","serverId","serverIp","serverType","status","weight","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nlb/getServerGroupsGroup:getServerGroupsGroup":{"properties":{"addressIpVersion":{"type":"string","description":"The protocol version.\n"},"connectionDrain":{"type":"boolean","description":"Indicates whether connection draining is enabled.\n"},"connectionDrainTimeout":{"type":"integer","description":"The timeout period of connection draining. Unit: seconds.\n"},"healthChecks":{"type":"array","items":{"$ref":"#/types/alicloud:nlb/getServerGroupsGroupHealthCheck:getServerGroupsGroupHealthCheck"},"description":"The configurations of health checks.\n"},"id":{"type":"string","description":"The ID of the Server Group.\n"},"preserveClientIpEnabled":{"type":"boolean","description":"Indicates whether client address retention is enabled.\n"},"protocol":{"type":"string","description":"The protocol used to forward requests to the backend servers.\n"},"relatedLoadBalancerIds":{"type":"array","items":{"type":"string"},"description":"The NLB instance.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the security group belongs.\n"},"scheduler":{"type":"string","description":"The routing algorithm.\n"},"serverCount":{"type":"integer","description":"The number of server groups associated with the NLB instance.\n"},"serverGroupName":{"type":"string","description":"The name of the server group.\n"},"serverGroupType":{"type":"string","description":"The type of the server group.\n"},"status":{"type":"string","description":"The status of the server group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the server group belongs.\n"}},"type":"object","required":["addressIpVersion","connectionDrain","connectionDrainTimeout","healthChecks","id","preserveClientIpEnabled","protocol","relatedLoadBalancerIds","resourceGroupId","scheduler","serverCount","serverGroupName","serverGroupType","status","tags","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nlb/getServerGroupsGroupHealthCheck:getServerGroupsGroupHealthCheck":{"properties":{"healthCheckConnectPort":{"type":"integer","description":"The backend port that is used for health checks.\n"},"healthCheckConnectTimeout":{"type":"integer","description":"The maximum timeout period of a health check response.\n"},"healthCheckDomain":{"type":"string","description":"The domain name that is used for health checks.\n"},"healthCheckEnabled":{"type":"boolean","description":"Specifies whether to enable health checks.\n"},"healthCheckHttpCodes":{"type":"array","items":{"type":"string"},"description":"The HTTP status codes returned for health checks.\n"},"healthCheckInterval":{"type":"integer","description":"The interval between two consecutive health checks.\n"},"healthCheckType":{"type":"string","description":"The protocol that is used for health checks.\n"},"healthCheckUrl":{"type":"string","description":"The path to which health check requests are sent.\n"},"healthyThreshold":{"type":"integer","description":"The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy.\n"},"httpCheckMethod":{"type":"string","description":"The HTTP method that is used for health checks.\n"},"unhealthyThreshold":{"type":"integer","description":"The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy.\n"}},"type":"object","required":["healthCheckConnectPort","healthCheckConnectTimeout","healthCheckDomain","healthCheckEnabled","healthCheckHttpCodes","healthCheckInterval","healthCheckType","healthCheckUrl","healthyThreshold","httpCheckMethod","unhealthyThreshold"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:nlb/getZonesZone:getZonesZone":{"properties":{"id":{"type":"string","description":"The ID of zone.\n"},"localName":{"type":"string","description":"The local name.\n"},"zoneId":{"type":"string","description":"The zone ID.\n"}},"type":"object","required":["id","localName","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ocean/getBaseInstancesInstance:getBaseInstancesInstance":{"properties":{"commodityCode":{"type":"string","description":"The product code of the OceanBase cluster.\n"},"cpu":{"type":"integer","description":"The number of CPU cores of the cluster.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"diskSize":{"type":"string","description":"The size of the storage space, in GB.\n"},"id":{"type":"string","description":"The ID of the Instance.\n"},"instanceClass":{"type":"string","description":"Cluster specification information.\n"},"instanceId":{"type":"string","description":"OceanBase cluster ID.\n"},"instanceName":{"type":"string","description":"OceanBase cluster name.\n"},"nodeNum":{"type":"string","description":"The number of nodes in the cluster.\n"},"paymentType":{"type":"string","description":"The payment method of the instance.\n"},"resourceGroupId":{"type":"string","description":"The ID of the enterprise resource group to which the instance resides.\n"},"series":{"type":"string","description":"Series of OceanBase clusters.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"zones":{"type":"array","items":{"type":"string"},"description":"Information about the zone where the cluster is deployed.\n"}},"type":"object","required":["commodityCode","cpu","createTime","diskSize","id","instanceClass","instanceId","instanceName","nodeNum","paymentType","resourceGroupId","series","status","zones"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oos/getApplicationGroupsGroup:getApplicationGroupsGroup":{"properties":{"applicationGroupName":{"type":"string","description":"The name of the Application group.\n"},"applicationName":{"type":"string","description":"The name of the Application.\n"},"cmsGroupId":{"type":"string","description":"The ID of the cloud monitor group.\n"},"createTime":{"type":"string","description":"The Creation time of the resource.\n"},"deployRegionId":{"type":"string","description":"The region ID of the deployment.\n"},"description":{"type":"string","description":"Application group description information.\n"},"id":{"type":"string","description":"The ID of the Application Group. Its value is same as Queue Name.\n"},"importTagKey":{"type":"string","description":"Label key.\n"},"importTagValue":{"type":"string","description":"Label value.\n"},"updateTime":{"type":"string","description":"The Update time of the resource.\n"}},"type":"object","required":["applicationGroupName","applicationName","cmsGroupId","createTime","deployRegionId","description","id","importTagKey","importTagValue","updateTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oos/getApplicationsApplication:getApplicationsApplication":{"properties":{"applicationName":{"type":"string","description":"The name of the application.\n"},"createTime":{"type":"string","description":"The Created time of the application.\n"},"description":{"type":"string","description":"Application group description information.\n"},"id":{"type":"string","description":"The ID of the Application. The value is formate as \u003capplication_name\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"updateTime":{"type":"string","description":"The Updated time of the application.\n"}},"type":"object","required":["applicationName","createTime","description","id","resourceGroupId","tags","updateTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oos/getExecutionsExecution:getExecutionsExecution":{"properties":{"category":{"type":"string","description":"The category of template. Valid: `AlarmTrigger`, `EventTrigger`, `Other` and `TimerTrigger`.\n"},"counters":{"type":"string","description":"The counters of OOS Execution.\n"},"createDate":{"type":"string","description":"The time when the execution was created.\n"},"endDate":{"type":"string","description":"The time when the execution was ended.\n"},"executedBy":{"type":"string","description":"The user who execute the template.\n"},"executionId":{"type":"string","description":"ID of the OOS Executions.\n"},"id":{"type":"string","description":"ID of the OOS Executions.\n"},"isParent":{"type":"boolean","description":"Whether to include subtasks.\n"},"mode":{"type":"string","description":"The mode of OOS Execution. Valid: `Automatic`, `Debug`.\n"},"outputs":{"type":"string","description":"The outputs of OOS Executions.\n"},"parameters":{"type":"string","description":"The parameters required by the template\n"},"parentExecutionId":{"type":"string","description":"The id of parent OOS Execution.\n"},"ramRole":{"type":"string","description":"The role that executes the current template.\n"},"startDate":{"type":"string","description":"The time when the template was started.\n"},"status":{"type":"string","description":"The Status of OOS Execution. Valid: `Cancelled`, `Failed`, `Queued`, `Running`, `Started`, `Success`, `Waiting`.\n"},"statusMessage":{"type":"string","description":"The message of status.\n"},"statusReason":{"type":"string","description":"The reason of status.\n"},"templateId":{"type":"string","description":"The id of execution template.\n"},"templateName":{"type":"string","description":"The name of execution template.\n"},"templateVersion":{"type":"string","description":"The version of execution template.\n"},"updateDate":{"type":"string","description":"The time when the template was updated.\n"}},"type":"object","required":["category","counters","createDate","endDate","executedBy","executionId","id","isParent","mode","outputs","parameters","parentExecutionId","ramRole","startDate","status","statusMessage","statusReason","templateId","templateName","templateVersion","updateDate"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oos/getParametersParameter:getParametersParameter":{"properties":{"constraints":{"type":"string","description":"The constraints of the common parameter. **Note:** \u003cspan pulumi-lang-nodejs=\"`constraints`\" pulumi-lang-dotnet=\"`Constraints`\" pulumi-lang-go=\"`constraints`\" pulumi-lang-python=\"`constraints`\" pulumi-lang-yaml=\"`constraints`\" pulumi-lang-java=\"`constraints`\"\u003e`constraints`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"createTime":{"type":"string","description":"The time when the common parameter was created.\n"},"createdBy":{"type":"string","description":"The user who created the common parameter.\n"},"description":{"type":"string","description":"The description of the common parameter.\n"},"id":{"type":"string","description":"The ID of the Parameter. Its value is same as \u003cspan pulumi-lang-nodejs=\"`parameterName`\" pulumi-lang-dotnet=\"`ParameterName`\" pulumi-lang-go=\"`parameterName`\" pulumi-lang-python=\"`parameter_name`\" pulumi-lang-yaml=\"`parameterName`\" pulumi-lang-java=\"`parameterName`\"\u003e`parameter_name`\u003c/span\u003e.\n"},"parameterId":{"type":"string","description":"The ID of the common parameter.\n"},"parameterName":{"type":"string","description":"The name of the common parameter. You can enter a keyword to query parameter names in fuzzy match mode.\n"},"parameterVersion":{"type":"integer","description":"The version number of the common parameter.\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"shareType":{"type":"string","description":"The share type of the common parameter.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"The data type of the common parameter. Valid values: `String`, `StringList`.\n"},"updatedBy":{"type":"string","description":"The user who updated the common parameter.\n"},"updatedDate":{"type":"string","description":"The time when the common parameter was updated.\n"},"value":{"type":"string","description":"(Available since v1.231.0) The value of the common parameter. **Note:** \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object","required":["constraints","createTime","createdBy","description","id","parameterId","parameterName","parameterVersion","resourceGroupId","shareType","tags","type","updatedBy","updatedDate","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oos/getPatchBaselinesBaseline:getPatchBaselinesBaseline":{"properties":{"approvalRules":{"type":"string","description":"Accept the rules.\n"},"createTime":{"type":"string","description":"The create time of patch baselines.\n"},"createdBy":{"type":"string","description":"The user who created the patch baselines.\n"},"description":{"type":"string","description":"Patches baseline description information.\n"},"id":{"type":"string","description":"The ID of the Patch Baseline. Its value is same as \u003cspan pulumi-lang-nodejs=\"`patchBaselineName`\" pulumi-lang-dotnet=\"`PatchBaselineName`\" pulumi-lang-go=\"`patchBaselineName`\" pulumi-lang-python=\"`patch_baseline_name`\" pulumi-lang-yaml=\"`patchBaselineName`\" pulumi-lang-java=\"`patchBaselineName`\"\u003e`patch_baseline_name`\u003c/span\u003e.\n"},"isDefault":{"type":"boolean","description":"Whether it is the default patch baseline.\n"},"operationSystem":{"type":"string","description":"Operating system type.\n"},"patchBaselineId":{"type":"string","description":"Patch baseline ID.\n"},"patchBaselineName":{"type":"string","description":"The name of the patch baseline.\n"},"shareType":{"type":"string","description":"Patch baseline sharing type.\n"},"updatedBy":{"type":"string","description":"The user who updated the patch baselines.\n"},"updatedDate":{"type":"string","description":"The update time of patch baselines.\n"}},"type":"object","required":["approvalRules","createTime","createdBy","description","id","isDefault","operationSystem","patchBaselineId","patchBaselineName","shareType","updatedBy","updatedDate"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oos/getSecretParametersParameter:getSecretParametersParameter":{"properties":{"constraints":{"type":"string","description":"The constraints of the encryption parameter. **Note:** \u003cspan pulumi-lang-nodejs=\"`constraints`\" pulumi-lang-dotnet=\"`Constraints`\" pulumi-lang-go=\"`constraints`\" pulumi-lang-python=\"`constraints`\" pulumi-lang-yaml=\"`constraints`\" pulumi-lang-java=\"`constraints`\"\u003e`constraints`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"createTime":{"type":"string","description":"The time when the encryption parameter was created.\n"},"createdBy":{"type":"string","description":"The user who created the encryption parameter.\n"},"description":{"type":"string","description":"The description of the encryption parameter.\n"},"id":{"type":"string","description":"The ID of the Secret Parameter.\n"},"keyId":{"type":"string","description":"The ID of the key of Key Management Service (KMS) that is used for encryption.\n"},"parameterVersion":{"type":"integer","description":"The version number of the encryption parameter.\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"secretParameterId":{"type":"string","description":"The ID of the encryption parameter.\n"},"secretParameterName":{"type":"string","description":"The name of the Secret Parameter.\n"},"shareType":{"type":"string","description":"The share type of the encryption parameter.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"The type of the parameter.\n"},"updatedBy":{"type":"string","description":"The user who updated the encryption parameter.\n"},"updatedDate":{"type":"string","description":"The time when the encryption parameter was updated.\n"},"value":{"type":"string","description":"(Available since v1.231.0) The value of the encryption parameter. **Note:** \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`withDecryption`\" pulumi-lang-dotnet=\"`WithDecryption`\" pulumi-lang-go=\"`withDecryption`\" pulumi-lang-python=\"`with_decryption`\" pulumi-lang-yaml=\"`withDecryption`\" pulumi-lang-java=\"`withDecryption`\"\u003e`with_decryption`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object","required":["constraints","createTime","createdBy","description","id","keyId","parameterVersion","resourceGroupId","secretParameterId","secretParameterName","shareType","tags","type","updatedBy","updatedDate","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oos/getStateConfigurationsConfiguration:getStateConfigurationsConfiguration":{"properties":{"configureMode":{"type":"string","description":"The configuration mode.\n"},"createTime":{"type":"string","description":"The creation time.\n"},"description":{"type":"string","description":"The description.\n"},"id":{"type":"string","description":"The ID of the State Configuration.\n"},"parameters":{"type":"string","description":"The parameters.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"scheduleExpression":{"type":"string","description":"The schedule expression.\n"},"scheduleType":{"type":"string","description":"The schedule type.\n"},"stateConfigurationId":{"type":"string","description":"The ID of the final state configuration.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"targets":{"type":"string","description":"The target resource.\n"},"templateId":{"type":"string","description":"The ID of the template.\n"},"templateName":{"type":"string","description":"The name of the template.\n"},"templateVersion":{"type":"string","description":"The version of the template.\n"},"updateTime":{"type":"string","description":"The time when the configuration is updated.\n"}},"type":"object","required":["configureMode","createTime","description","id","parameters","resourceGroupId","scheduleExpression","scheduleType","stateConfigurationId","tags","targets","templateId","templateName","templateVersion","updateTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oos/getTemplatesTemplate:getTemplatesTemplate":{"properties":{"category":{"type":"string","description":"The category of template.\n"},"createdBy":{"type":"string","description":"The creator of the template.\n"},"createdDate":{"type":"string","description":"The template whose creation time is less than or equal to the specified time. The format is: YYYY-MM-DDThh:mm::ssZ.\n"},"description":{"type":"string","description":"Description of the OOS Template.\n"},"hasTrigger":{"type":"boolean","description":"Is it triggered successfully.\n"},"id":{"type":"string","description":"ID of the OOS Template. The value is same as template_name.\n"},"shareType":{"type":"string","description":"The sharing type of the template. Valid values: `Private`, `Public`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"templateFormat":{"type":"string","description":"The format of the template. Valid values: `JSON`, `YAML`.\n"},"templateId":{"type":"string","description":"ID of the OOS Template resource.\n"},"templateName":{"type":"string","description":"Name of the OOS Template.\n"},"templateType":{"type":"string","description":"The type of OOS Template.\n"},"templateVersion":{"type":"string","description":"Version of the OOS Template.\n"},"updatedBy":{"type":"string","description":"The user who updated the template.\n"},"updatedDate":{"type":"string","description":"The time when the template was updated.\n"}},"type":"object","required":["category","createdBy","createdDate","description","hasTrigger","id","shareType","tags","templateFormat","templateId","templateName","templateType","templateVersion","updatedBy","updatedDate"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:opensearch/AppGroupOrder:AppGroupOrder":{"properties":{"autoRenew":{"type":"boolean","description":"Whether to renew automatically. It only takes effect when the parameter\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003etakes the value `Subscription`.\n"},"duration":{"type":"integer","description":"Order cycle. The minimum value is not less than 0.\n"},"pricingCycle":{"type":"string","description":"Order cycle unit. Valid values: `Year` and `Month`.\n"}},"type":"object"},"alicloud:opensearch/AppGroupQuota:AppGroupQuota":{"properties":{"computeResource":{"type":"integer","description":"Computing resources. Unit: LCU.\n"},"docSize":{"type":"integer","description":"Storage Size. Unit: GB.\n"},"qps":{"type":"integer","description":"Search request. Unit: times/second.\n"},"spec":{"type":"string","description":"Specification. Valid values: \n* `opensearch.share.junior`: Entry-level.\n* `opensearch.share.common`: Shared universal.\n* `opensearch.share.compute`: Shared computing.\n* `opensearch.share.storage`: Shared storage type.\n* `opensearch.private.common`: Exclusive universal type.\n* `opensearch.private.compute`: Exclusive computing type.\n* `opensearch.private.storage`: Exclusive storage type\n"}},"type":"object","required":["computeResource","docSize","spec"]},"alicloud:opensearch/getAppGroupsGroup:getAppGroupsGroup":{"properties":{"appGroupId":{"type":"string","description":"The ID of the App Group.\n"},"appGroupName":{"type":"string","description":"Application Group Name.\n"},"chargeWay":{"type":"integer","description":"Billing model. Valid values:\u003cspan pulumi-lang-nodejs=\"`computeResource`\" pulumi-lang-dotnet=\"`ComputeResource`\" pulumi-lang-go=\"`computeResource`\" pulumi-lang-python=\"`compute_resource`\" pulumi-lang-yaml=\"`computeResource`\" pulumi-lang-java=\"`computeResource`\"\u003e`compute_resource`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`qps`\" pulumi-lang-dotnet=\"`Qps`\" pulumi-lang-go=\"`qps`\" pulumi-lang-python=\"`qps`\" pulumi-lang-yaml=\"`qps`\" pulumi-lang-java=\"`qps`\"\u003e`qps`\u003c/span\u003e.\n"},"commodityCode":{"type":"string","description":"The commodity code.\n"},"createTime":{"type":"integer","description":"The time of creation.\n"},"currentVersion":{"type":"string","description":"The version of Application Group Name.\n"},"description":{"type":"string","description":"The description of the resource.\n"},"domain":{"type":"string","description":"Domain name.\n"},"expireOn":{"type":"string","description":"Expiration Time.\n"},"firstRankAlgoDeploymentId":{"type":"integer","description":"Coarse deployment ID.\n"},"hasPendingQuotaReviewTask":{"type":"integer","description":"Whether the quota status is under approval. Valid status:\n"},"id":{"type":"string","description":"The resource ID in terraform of App Group. It is the same as \u003cspan pulumi-lang-nodejs=\"`appGroupName`\" pulumi-lang-dotnet=\"`AppGroupName`\" pulumi-lang-go=\"`appGroupName`\" pulumi-lang-python=\"`app_group_name`\" pulumi-lang-yaml=\"`appGroupName`\" pulumi-lang-java=\"`appGroupName`\"\u003e`app_group_name`\u003c/span\u003e.\n"},"instanceId":{"type":"string","description":"The Instance ID.\n"},"lockMode":{"type":"string","description":"Locked state. Valid status: `Unlock`,`LockByExpiration`,`ManualLock`.\n"},"lockedByExpiration":{"type":"integer","description":"Instance is automatically locked after expiration.\n"},"paymentType":{"type":"string","description":"The billing method of the resource. Valid values: `Subscription` and `PayAsYouGo`.\n"},"pendingSecondRankAlgoDeploymentId":{"type":"integer","description":"Refine deployment ID in deployment.\n"},"processingOrderId":{"type":"string","description":"Unfinished order number.\n"},"produced":{"type":"integer","description":"Whether the production is completed. Valid values:\n"},"projectId":{"type":"string","description":"The Project ID.\n"},"quotas":{"type":"array","items":{"$ref":"#/types/alicloud:opensearch/getAppGroupsGroupQuota:getAppGroupsGroupQuota"},"description":"Quota information.\n"},"resourceGroupId":{"type":"string","description":"The Resource Group ID.\n"},"secondRankAlgoDeploymentId":{"type":"integer","description":"Refine deployment ID.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`producing`\" pulumi-lang-dotnet=\"`Producing`\" pulumi-lang-go=\"`producing`\" pulumi-lang-python=\"`producing`\" pulumi-lang-yaml=\"`producing`\" pulumi-lang-java=\"`producing`\"\u003e`producing`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`reviewPending`\" pulumi-lang-dotnet=\"`ReviewPending`\" pulumi-lang-go=\"`reviewPending`\" pulumi-lang-python=\"`review_pending`\" pulumi-lang-yaml=\"`reviewPending`\" pulumi-lang-java=\"`reviewPending`\"\u003e`review_pending`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`configPending`\" pulumi-lang-dotnet=\"`ConfigPending`\" pulumi-lang-go=\"`configPending`\" pulumi-lang-python=\"`config_pending`\" pulumi-lang-yaml=\"`configPending`\" pulumi-lang-java=\"`configPending`\"\u003e`config_pending`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`frozen`\" pulumi-lang-dotnet=\"`Frozen`\" pulumi-lang-go=\"`frozen`\" pulumi-lang-python=\"`frozen`\" pulumi-lang-yaml=\"`frozen`\" pulumi-lang-java=\"`frozen`\"\u003e`frozen`\u003c/span\u003e.\n"},"switchedTime":{"type":"integer","description":"The Switched time.\n"},"type":{"type":"string","description":"Application type. Valid Values: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enhanced`\" pulumi-lang-dotnet=\"`Enhanced`\" pulumi-lang-go=\"`enhanced`\" pulumi-lang-python=\"`enhanced`\" pulumi-lang-yaml=\"`enhanced`\" pulumi-lang-java=\"`enhanced`\"\u003e`enhanced`\u003c/span\u003e.\n"}},"type":"object","required":["appGroupId","appGroupName","chargeWay","commodityCode","createTime","currentVersion","description","domain","expireOn","firstRankAlgoDeploymentId","hasPendingQuotaReviewTask","id","instanceId","lockMode","lockedByExpiration","paymentType","pendingSecondRankAlgoDeploymentId","processingOrderId","produced","projectId","quotas","resourceGroupId","secondRankAlgoDeploymentId","status","switchedTime","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:opensearch/getAppGroupsGroupQuota:getAppGroupsGroupQuota":{"properties":{"computeResource":{"type":"string","description":"Computing resources. Unit: LCU.\n"},"docSize":{"type":"string","description":"Storage Size. Unit: GB.\n"},"spec":{"type":"string","description":"Specification. Valid values:\n* `opensearch.share.junior`: Entry-level.\n* `opensearch.share.common`: Shared universal.\n* `opensearch.share.compute`: Shared computing.\n* `opensearch.share.storage`: Shared storage type.\n* `opensearch.private.common`: Exclusive universal type.\n* `opensearch.private.compute`: Exclusive computing type.\n* `opensearch.private.storage`: Exclusive storage type\n"}},"type":"object","required":["computeResource","docSize","spec"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oss/AccessPointPublicAccessBlockConfiguration:AccessPointPublicAccessBlockConfiguration":{"properties":{"blockPublicAccess":{"type":"boolean","description":"Block public access enabled for access point\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["blockPublicAccess"]}}},"alicloud:oss/AccessPointVpcConfiguration:AccessPointVpcConfiguration":{"properties":{"vpcId":{"type":"string","description":"The vpc ID is required only when the value of NetworkOrigin is VPC.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:oss/BucketAccessMonitor:BucketAccessMonitor":{"properties":{"status":{"type":"string","description":"The access monitor state of a bucket. If you want to manage objects based on the last access time of the objects, specifies the status to `Enabled`. Valid values: `Enabled` and `Disabled`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["status"]}}},"alicloud:oss/BucketCnameCertificate:BucketCnameCertificate":{"properties":{"certId":{"type":"string","description":"Certificate Identifier\n"},"certificate":{"type":"string","description":"The certificate public key.\n","secret":true},"creationDate":{"type":"string","description":"Certificate creation time\n"},"fingerprint":{"type":"string","description":"Certificate Fingerprint\n"},"privateKey":{"type":"string","description":"The certificate private key.\n","secret":true},"status":{"type":"string","description":"Cname status\n"},"type":{"type":"string","description":"Certificate Type\n"},"validEndDate":{"type":"string","description":"Certificate validity period end time\n"},"validStartDate":{"type":"string","description":"Certificate validity period start time\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["certId","creationDate","fingerprint","status","type","validEndDate","validStartDate"]}}},"alicloud:oss/BucketCorsCorsRule:BucketCorsCorsRule":{"properties":{"allowedHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies whether the headers specified by Access-Control-Request-Headers in the OPTIONS preflight request are allowed. You can use only one asterisk (*) as the wildcard for allowed header. .\n"},"allowedMethods":{"type":"array","items":{"type":"string"},"description":"The cross-origin request method that is allowed. Valid values: GET, PUT, DELETE, POST, and HEAD.\n"},"allowedOrigins":{"type":"array","items":{"type":"string"},"description":"The origins from which cross-origin requests are allowed. .\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"The response headers for allowed access requests from applications, such as an XMLHttpRequest object in JavaScript. .\n"},"maxAgeSeconds":{"type":"integer","description":"The period of time within which the browser can cache the response to an OPTIONS preflight request for the specified resource. Unit: seconds.\n"}},"type":"object","required":["allowedMethods"]},"alicloud:oss/BucketCorsRule:BucketCorsRule":{"properties":{"allowedHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies which headers are allowed.\n"},"allowedMethods":{"type":"array","items":{"type":"string"},"description":"Specifies which methods are allowed. Can be GET, PUT, POST, DELETE or HEAD.\n"},"allowedOrigins":{"type":"array","items":{"type":"string"},"description":"Specifies which origins are allowed.\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies expose header in the response.\n"},"maxAgeSeconds":{"type":"integer","description":"Specifies time in seconds that browser can cache the response for a preflight request.\n"}},"type":"object","required":["allowedMethods","allowedOrigins"]},"alicloud:oss/BucketHttpsConfigCipherSuit:BucketHttpsConfigCipherSuit":{"properties":{"customCipherSuites":{"type":"array","items":{"type":"string"},"description":"This field is used to configure custom encryption algorithm suites for TLS 1.2.\n"},"enable":{"type":"boolean","description":"Configures TLS encryption algorithm suites. Valid values:\ntrue: strong encryption algorithm suites or custom encryption algorithm suites.\nfalse: all encryption algorithm suites (default).\n"},"strongCipherSuite":{"type":"boolean","description":"Specifies whether to use strong encryption algorithm suites. Valid values:\ntrue: uses strong encryption algorithm suites.\nfalse: uses custom encryption algorithm suites.\n"},"tls13CustomCipherSuites":{"type":"array","items":{"type":"string"},"description":"Specifies custom encryption algorithm suites. You can specify multiple suites. This field is used to configure custom encryption algorithm suites for TLS 1.3.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enable"]}}},"alicloud:oss/BucketLifecycleRule:BucketLifecycleRule":{"properties":{"abortMultipartUploads":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketLifecycleRuleAbortMultipartUpload:BucketLifecycleRuleAbortMultipartUpload"},"description":"Specifies the number of days after initiating a multipart upload when the multipart upload must be completed. See \u003cspan pulumi-lang-nodejs=\"`abortMultipartUpload`\" pulumi-lang-dotnet=\"`AbortMultipartUpload`\" pulumi-lang-go=\"`abortMultipartUpload`\" pulumi-lang-python=\"`abort_multipart_upload`\" pulumi-lang-yaml=\"`abortMultipartUpload`\" pulumi-lang-java=\"`abortMultipartUpload`\"\u003e`abort_multipart_upload`\u003c/span\u003e below.\n"},"enabled":{"type":"boolean","description":"Specifies lifecycle rule status.\n"},"expirations":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketLifecycleRuleExpiration:BucketLifecycleRuleExpiration"},"description":"Specifies a period in the object's expire. See \u003cspan pulumi-lang-nodejs=\"`expiration`\" pulumi-lang-dotnet=\"`Expiration`\" pulumi-lang-go=\"`expiration`\" pulumi-lang-python=\"`expiration`\" pulumi-lang-yaml=\"`expiration`\" pulumi-lang-java=\"`expiration`\"\u003e`expiration`\u003c/span\u003e below.\n"},"filter":{"$ref":"#/types/alicloud:oss/BucketLifecycleRuleFilter:BucketLifecycleRuleFilter","description":"Configuration block used to identify objects that a Lifecycle rule applies to. See \u003cspan pulumi-lang-nodejs=\"`filter`\" pulumi-lang-dotnet=\"`Filter`\" pulumi-lang-go=\"`filter`\" pulumi-lang-python=\"`filter`\" pulumi-lang-yaml=\"`filter`\" pulumi-lang-java=\"`filter`\"\u003e`filter`\u003c/span\u003e below.\n\n`NOTE`: At least one of expiration, transitions, abort_multipart_upload,\u003cspan pulumi-lang-nodejs=\" noncurrentVersionExpiration \" pulumi-lang-dotnet=\" NoncurrentVersionExpiration \" pulumi-lang-go=\" noncurrentVersionExpiration \" pulumi-lang-python=\" noncurrent_version_expiration \" pulumi-lang-yaml=\" noncurrentVersionExpiration \" pulumi-lang-java=\" noncurrentVersionExpiration \"\u003e noncurrent_version_expiration \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" noncurrentVersionTransition \" pulumi-lang-dotnet=\" NoncurrentVersionTransition \" pulumi-lang-go=\" noncurrentVersionTransition \" pulumi-lang-python=\" noncurrent_version_transition \" pulumi-lang-yaml=\" noncurrentVersionTransition \" pulumi-lang-java=\" noncurrentVersionTransition \"\u003e noncurrent_version_transition \u003c/span\u003eshould be configured.\n"},"id":{"type":"string","description":"Unique identifier for the rule. If omitted, OSS bucket will assign a unique name.\n"},"noncurrentVersionExpirations":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketLifecycleRuleNoncurrentVersionExpiration:BucketLifecycleRuleNoncurrentVersionExpiration"},"description":"Specifies when noncurrent object versions expire. See \u003cspan pulumi-lang-nodejs=\"`noncurrentVersionExpiration`\" pulumi-lang-dotnet=\"`NoncurrentVersionExpiration`\" pulumi-lang-go=\"`noncurrentVersionExpiration`\" pulumi-lang-python=\"`noncurrent_version_expiration`\" pulumi-lang-yaml=\"`noncurrentVersionExpiration`\" pulumi-lang-java=\"`noncurrentVersionExpiration`\"\u003e`noncurrent_version_expiration`\u003c/span\u003e below.\n"},"noncurrentVersionTransitions":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketLifecycleRuleNoncurrentVersionTransition:BucketLifecycleRuleNoncurrentVersionTransition"},"description":"Specifies when noncurrent object versions transitions. See \u003cspan pulumi-lang-nodejs=\"`noncurrentVersionTransition`\" pulumi-lang-dotnet=\"`NoncurrentVersionTransition`\" pulumi-lang-go=\"`noncurrentVersionTransition`\" pulumi-lang-python=\"`noncurrent_version_transition`\" pulumi-lang-yaml=\"`noncurrentVersionTransition`\" pulumi-lang-java=\"`noncurrentVersionTransition`\"\u003e`noncurrent_version_transition`\u003c/span\u003e below.\n"},"prefix":{"type":"string","description":"The prefix in the names of the objects to which the lifecycle rule does not apply.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value map of resource tags. All of these tags must exist in the object's tag set in order for the rule to apply.\n"},"transitions":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketLifecycleRuleTransition:BucketLifecycleRuleTransition"},"description":"Specifies the time when an object is converted to the IA or archive storage class during a valid life cycle. See \u003cspan pulumi-lang-nodejs=\"`transitions`\" pulumi-lang-dotnet=\"`Transitions`\" pulumi-lang-go=\"`transitions`\" pulumi-lang-python=\"`transitions`\" pulumi-lang-yaml=\"`transitions`\" pulumi-lang-java=\"`transitions`\"\u003e`transitions`\u003c/span\u003e below.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","id"]}}},"alicloud:oss/BucketLifecycleRuleAbortMultipartUpload:BucketLifecycleRuleAbortMultipartUpload":{"properties":{"createdBeforeDate":{"type":"string","description":"Specifies the time before which the rules take effect. The date must conform to the ISO8601 format and always be UTC 00:00. For example: 2002-10-11T00:00:00.000Z indicates that parts created before 2002-10-11T00:00:00.000Z are deleted, and parts created after this time (including this time) are not deleted.\n"},"days":{"type":"integer","description":"Specifies the number of days noncurrent object versions transition.\n"}},"type":"object"},"alicloud:oss/BucketLifecycleRuleExpiration:BucketLifecycleRuleExpiration":{"properties":{"createdBeforeDate":{"type":"string","description":"Specifies the time before which the rules take effect. The date must conform to the ISO8601 format and always be UTC 00:00. For example: 2002-10-11T00:00:00.000Z indicates that parts created before 2002-10-11T00:00:00.000Z are deleted, and parts created after this time (including this time) are not deleted.\n"},"date":{"type":"string","description":"Specifies the date after which you want the corresponding action to take effect. The value obeys ISO8601 format like `2017-03-09`.\n"},"days":{"type":"integer","description":"Specifies the number of days noncurrent object versions transition.\n"},"expiredObjectDeleteMarker":{"type":"boolean","description":"On a versioned bucket (versioning-enabled or versioning-suspended bucket), you can add this element in the lifecycle configuration to direct OSS to delete expired object delete markers. This cannot be specified with Days, Date or CreatedBeforeDate in a Lifecycle Expiration Policy.\n\n`NOTE`: One and only one of \"date\", \"days\", \u003cspan pulumi-lang-nodejs=\"\"createdBeforeDate\"\" pulumi-lang-dotnet=\"\"CreatedBeforeDate\"\" pulumi-lang-go=\"\"createdBeforeDate\"\" pulumi-lang-python=\"\"created_before_date\"\" pulumi-lang-yaml=\"\"createdBeforeDate\"\" pulumi-lang-java=\"\"createdBeforeDate\"\"\u003e\"created_before_date\"\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"\"expiredObjectDeleteMarker\"\" pulumi-lang-dotnet=\"\"ExpiredObjectDeleteMarker\"\" pulumi-lang-go=\"\"expiredObjectDeleteMarker\"\" pulumi-lang-python=\"\"expired_object_delete_marker\"\" pulumi-lang-yaml=\"\"expiredObjectDeleteMarker\"\" pulumi-lang-java=\"\"expiredObjectDeleteMarker\"\"\u003e\"expired_object_delete_marker\"\u003c/span\u003e can be specified in one expiration configuration.\n"}},"type":"object"},"alicloud:oss/BucketLifecycleRuleFilter:BucketLifecycleRuleFilter":{"properties":{"not":{"$ref":"#/types/alicloud:oss/BucketLifecycleRuleFilterNot:BucketLifecycleRuleFilterNot","description":"The condition that is matched by objects to which the lifecycle rule does not apply. See \u003cspan pulumi-lang-nodejs=\"`not`\" pulumi-lang-dotnet=\"`Not`\" pulumi-lang-go=\"`not`\" pulumi-lang-python=\"`not`\" pulumi-lang-yaml=\"`not`\" pulumi-lang-java=\"`not`\"\u003e`not`\u003c/span\u003e below.\n"},"objectSizeGreaterThan":{"type":"integer","description":"Minimum object size (in bytes) to which the rule applies.\n"},"objectSizeLessThan":{"type":"integer","description":"Maximum object size (in bytes) to which the rule applies.\n"}},"type":"object"},"alicloud:oss/BucketLifecycleRuleFilterNot:BucketLifecycleRuleFilterNot":{"properties":{"prefix":{"type":"string","description":"The prefix in the names of the objects to which the lifecycle rule does not apply.\n"},"tag":{"$ref":"#/types/alicloud:oss/BucketLifecycleRuleFilterNotTag:BucketLifecycleRuleFilterNotTag","description":"The tag of the objects to which the lifecycle rule does not apply. See \u003cspan pulumi-lang-nodejs=\"`tag`\" pulumi-lang-dotnet=\"`Tag`\" pulumi-lang-go=\"`tag`\" pulumi-lang-python=\"`tag`\" pulumi-lang-yaml=\"`tag`\" pulumi-lang-java=\"`tag`\"\u003e`tag`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:oss/BucketLifecycleRuleFilterNotTag:BucketLifecycleRuleFilterNotTag":{"properties":{"key":{"type":"string","description":"The key of the tag that is specified for the objects.\n"},"value":{"type":"string","description":"The value of the tag that is specified for the objects.\n"}},"type":"object","required":["key","value"]},"alicloud:oss/BucketLifecycleRuleNoncurrentVersionExpiration:BucketLifecycleRuleNoncurrentVersionExpiration":{"properties":{"days":{"type":"integer","description":"Specifies the number of days noncurrent object versions transition.\n"}},"type":"object","required":["days"]},"alicloud:oss/BucketLifecycleRuleNoncurrentVersionTransition:BucketLifecycleRuleNoncurrentVersionTransition":{"properties":{"days":{"type":"integer","description":"Specifies the number of days noncurrent object versions transition.\n"},"isAccessTime":{"type":"boolean","description":"Specifies whether the lifecycle rule applies to objects based on their last access time. If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the rule applies to objects based on their last access time; if set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the rule applies to objects based on their last modified time. If configure the rule based on the last access time, please enable \u003cspan pulumi-lang-nodejs=\"`accessMonitor`\" pulumi-lang-dotnet=\"`AccessMonitor`\" pulumi-lang-go=\"`accessMonitor`\" pulumi-lang-python=\"`access_monitor`\" pulumi-lang-yaml=\"`accessMonitor`\" pulumi-lang-java=\"`accessMonitor`\"\u003e`access_monitor`\u003c/span\u003e first.\n"},"returnToStdWhenVisit":{"type":"boolean","description":"Specifies whether to convert the storage class of non-Standard objects back to Standard after the objects are accessed. It takes effect only when the IsAccessTime parameter is set to true. If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, converts the storage class of the objects to Standard; if set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, does not convert the storage class of the objects to Standard.\n"},"storageClass":{"type":"string","description":"The [storage class](https://www.alibabacloud.com/help/doc-detail/51374.htm) to apply. Can be \"Standard\", \"IA\", \"Archive\", \"ColdArchive\" and \"DeepColdArchive\". Defaults to \"Standard\". \"ColdArchive\" is available since 1.203.0. \"DeepColdArchive\" is available since 1.209.0.\n"}},"type":"object","required":["days","storageClass"]},"alicloud:oss/BucketLifecycleRuleTransition:BucketLifecycleRuleTransition":{"properties":{"createdBeforeDate":{"type":"string","description":"Specifies the time before which the rules take effect. The date must conform to the ISO8601 format and always be UTC 00:00. For example: 2002-10-11T00:00:00.000Z indicates that parts created before 2002-10-11T00:00:00.000Z are deleted, and parts created after this time (including this time) are not deleted.\n"},"days":{"type":"integer","description":"Specifies the number of days noncurrent object versions transition.\n"},"isAccessTime":{"type":"boolean","description":"Specifies whether the lifecycle rule applies to objects based on their last access time. If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the rule applies to objects based on their last access time; if set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the rule applies to objects based on their last modified time. If configure the rule based on the last access time, please enable \u003cspan pulumi-lang-nodejs=\"`accessMonitor`\" pulumi-lang-dotnet=\"`AccessMonitor`\" pulumi-lang-go=\"`accessMonitor`\" pulumi-lang-python=\"`access_monitor`\" pulumi-lang-yaml=\"`accessMonitor`\" pulumi-lang-java=\"`accessMonitor`\"\u003e`access_monitor`\u003c/span\u003e first.\n"},"returnToStdWhenVisit":{"type":"boolean","description":"Specifies whether to convert the storage class of non-Standard objects back to Standard after the objects are accessed. It takes effect only when the IsAccessTime parameter is set to true. If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, converts the storage class of the objects to Standard; if set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, does not convert the storage class of the objects to Standard.\n"},"storageClass":{"type":"string","description":"The [storage class](https://www.alibabacloud.com/help/doc-detail/51374.htm) to apply. Can be \"Standard\", \"IA\", \"Archive\", \"ColdArchive\" and \"DeepColdArchive\". Defaults to \"Standard\". \"ColdArchive\" is available since 1.203.0. \"DeepColdArchive\" is available since 1.209.0.\n"}},"type":"object","required":["storageClass"]},"alicloud:oss/BucketLogging:BucketLogging":{"properties":{"targetBucket":{"type":"string","description":"The name of the bucket that will receive the log objects.\n"},"targetPrefix":{"type":"string","description":"To specify a key prefix for log objects.\n"}},"type":"object","required":["targetBucket"]},"alicloud:oss/BucketOverwriteConfigRule:BucketOverwriteConfigRule":{"properties":{"action":{"type":"string","description":"The operation type. Currently, only \"forbid\" is supported.\n"},"id":{"type":"string","description":"Rule ID\n"},"prefix":{"type":"string","description":"The prefix of the Object name, which is used to filter objects to be processed.\n"},"principals":{"$ref":"#/types/alicloud:oss/BucketOverwriteConfigRulePrincipals:BucketOverwriteConfigRulePrincipals","description":"A collection of authorized principals. The usage is similar to that of the Principal of the Bucket Policy. You can enter the primary account, sub-account, or role. If this parameter is empty or not configured, overwriting is not allowed for objects that meet the preceding and suffix conditions. See \u003cspan pulumi-lang-nodejs=\"`principals`\" pulumi-lang-dotnet=\"`Principals`\" pulumi-lang-go=\"`principals`\" pulumi-lang-python=\"`principals`\" pulumi-lang-yaml=\"`principals`\" pulumi-lang-java=\"`principals`\"\u003e`principals`\u003c/span\u003e below.\n"},"suffix":{"type":"string","description":"The suffix of the Object name, which is used to filter objects to be processed.\n"}},"type":"object"},"alicloud:oss/BucketOverwriteConfigRulePrincipals:BucketOverwriteConfigRulePrincipals":{"properties":{"principals":{"type":"array","items":{"type":"string"},"description":"Authorized subject. Supports the input of primary accounts, sub-accounts, or roles. Invalid setting if the value is empty.\n"}},"type":"object"},"alicloud:oss/BucketRefererConfig:BucketRefererConfig":{"properties":{"allowEmpty":{"type":"boolean","description":"Allows referer to be empty. Defaults false.\n"},"referers":{"type":"array","items":{"type":"string"},"description":"The list of referer.\n"}},"type":"object","required":["referers"],"language":{"nodejs":{"requiredOutputs":["allowEmpty","referers"]}}},"alicloud:oss/BucketReplicationDestination:BucketReplicationDestination":{"properties":{"bucket":{"type":"string","description":"The destination bucket to which the data is replicated.\n","willReplaceOnChanges":true},"location":{"type":"string","description":"The region in which the destination bucket is located.\n","willReplaceOnChanges":true},"transferType":{"type":"string","description":"The link used to transfer data in data replication.. Can be \u003cspan pulumi-lang-nodejs=\"`internal`\" pulumi-lang-dotnet=\"`Internal`\" pulumi-lang-go=\"`internal`\" pulumi-lang-python=\"`internal`\" pulumi-lang-yaml=\"`internal`\" pulumi-lang-java=\"`internal`\"\u003e`internal`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ossAcc`\" pulumi-lang-dotnet=\"`OssAcc`\" pulumi-lang-go=\"`ossAcc`\" pulumi-lang-python=\"`oss_acc`\" pulumi-lang-yaml=\"`ossAcc`\" pulumi-lang-java=\"`ossAcc`\"\u003e`oss_acc`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`internal`\" pulumi-lang-dotnet=\"`Internal`\" pulumi-lang-go=\"`internal`\" pulumi-lang-python=\"`internal`\" pulumi-lang-yaml=\"`internal`\" pulumi-lang-java=\"`internal`\"\u003e`internal`\u003c/span\u003e.\n\n`NOTE`: You can set\u003cspan pulumi-lang-nodejs=\" transferType \" pulumi-lang-dotnet=\" TransferType \" pulumi-lang-go=\" transferType \" pulumi-lang-python=\" transfer_type \" pulumi-lang-yaml=\" transferType \" pulumi-lang-java=\" transferType \"\u003e transfer_type \u003c/span\u003eto\u003cspan pulumi-lang-nodejs=\" ossAcc \" pulumi-lang-dotnet=\" OssAcc \" pulumi-lang-go=\" ossAcc \" pulumi-lang-python=\" oss_acc \" pulumi-lang-yaml=\" ossAcc \" pulumi-lang-java=\" ossAcc \"\u003e oss_acc \u003c/span\u003eonly when you create cross-region replication (CRR) rules.\n","willReplaceOnChanges":true}},"type":"object","required":["bucket","location"]},"alicloud:oss/BucketReplicationEncryptionConfiguration:BucketReplicationEncryptionConfiguration":{"properties":{"replicaKmsKeyId":{"type":"string","description":"The CMK ID used in SSE-KMS.\n\n`NOTE`: If the status of\u003cspan pulumi-lang-nodejs=\" sseKmsEncryptedObjects \" pulumi-lang-dotnet=\" SseKmsEncryptedObjects \" pulumi-lang-go=\" sseKmsEncryptedObjects \" pulumi-lang-python=\" sse_kms_encrypted_objects \" pulumi-lang-yaml=\" sseKmsEncryptedObjects \" pulumi-lang-java=\" sseKmsEncryptedObjects \"\u003e sse_kms_encrypted_objects \u003c/span\u003eis set to Enabled, you must specify the replica_kms_key_id.\n","willReplaceOnChanges":true}},"type":"object","required":["replicaKmsKeyId"]},"alicloud:oss/BucketReplicationPrefixSet:BucketReplicationPrefixSet":{"properties":{"prefixes":{"type":"array","items":{"type":"string"},"description":"The list of object key name prefix identifying one or more objects to which the rule applies.\n\n`NOTE`: The prefix must be less than or equal to 1024 characters in length.\n","willReplaceOnChanges":true}},"type":"object","required":["prefixes"]},"alicloud:oss/BucketReplicationProgress:BucketReplicationProgress":{"properties":{"historicalObject":{"type":"string","description":"The percentage of the replicated historical data. This element is valid only when\u003cspan pulumi-lang-nodejs=\" historicalObjectReplication \" pulumi-lang-dotnet=\" HistoricalObjectReplication \" pulumi-lang-go=\" historicalObjectReplication \" pulumi-lang-python=\" historical_object_replication \" pulumi-lang-yaml=\" historicalObjectReplication \" pulumi-lang-java=\" historicalObjectReplication \"\u003e historical_object_replication \u003c/span\u003eis set to enabled.\n"},"newObject":{"type":"string","description":"The time used to distinguish new data from historical data. Data that is written to the source bucket before the time is replicated to the destination bucket as new data. The value of this element is in GMT.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["historicalObject","newObject"]}}},"alicloud:oss/BucketReplicationRtc:BucketReplicationRtc":{"properties":{"enabled":{"type":"boolean","description":"Specifies whether to enable the RTC feature. Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to enable or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to disable. This argument is required when the rtc block is defined.\n"},"status":{"type":"string","description":"The current status of the RTC feature. This attribute is read-only and is only populated when \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Possible values are:\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","status"]}}},"alicloud:oss/BucketReplicationSourceSelectionCriteria:BucketReplicationSourceSelectionCriteria":{"properties":{"sseKmsEncryptedObjects":{"$ref":"#/types/alicloud:oss/BucketReplicationSourceSelectionCriteriaSseKmsEncryptedObjects:BucketReplicationSourceSelectionCriteriaSseKmsEncryptedObjects","description":"Filter source objects encrypted by using SSE-KMS. See \u003cspan pulumi-lang-nodejs=\"`sseKmsEncryptedObjects`\" pulumi-lang-dotnet=\"`SseKmsEncryptedObjects`\" pulumi-lang-go=\"`sseKmsEncryptedObjects`\" pulumi-lang-python=\"`sse_kms_encrypted_objects`\" pulumi-lang-yaml=\"`sseKmsEncryptedObjects`\" pulumi-lang-java=\"`sseKmsEncryptedObjects`\"\u003e`sse_kms_encrypted_objects`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:oss/BucketReplicationSourceSelectionCriteriaSseKmsEncryptedObjects:BucketReplicationSourceSelectionCriteriaSseKmsEncryptedObjects":{"properties":{"status":{"type":"string","description":"The status of the data replication task. Can be starting, doing and closing.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:oss/BucketResponseHeaderRule:BucketResponseHeaderRule":{"properties":{"filters":{"$ref":"#/types/alicloud:oss/BucketResponseHeaderRuleFilters:BucketResponseHeaderRuleFilters","description":"The container that holds the operations that need to be apply rules. See \u003cspan pulumi-lang-nodejs=\"`filters`\" pulumi-lang-dotnet=\"`Filters`\" pulumi-lang-go=\"`filters`\" pulumi-lang-python=\"`filters`\" pulumi-lang-yaml=\"`filters`\" pulumi-lang-java=\"`filters`\"\u003e`filters`\u003c/span\u003e below.\n"},"hideHeaders":{"$ref":"#/types/alicloud:oss/BucketResponseHeaderRuleHideHeaders:BucketResponseHeaderRuleHideHeaders","description":"The container that holds the response headers that need to be hidden. See \u003cspan pulumi-lang-nodejs=\"`hideHeaders`\" pulumi-lang-dotnet=\"`HideHeaders`\" pulumi-lang-go=\"`hideHeaders`\" pulumi-lang-python=\"`hide_headers`\" pulumi-lang-yaml=\"`hideHeaders`\" pulumi-lang-java=\"`hideHeaders`\"\u003e`hide_headers`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The response header rule name.\n"}},"type":"object"},"alicloud:oss/BucketResponseHeaderRuleFilters:BucketResponseHeaderRuleFilters":{"properties":{"operations":{"type":"array","items":{"type":"string"},"description":"The operation to which the rule applies.\n"}},"type":"object"},"alicloud:oss/BucketResponseHeaderRuleHideHeaders:BucketResponseHeaderRuleHideHeaders":{"properties":{"headers":{"type":"array","items":{"type":"string"},"description":"The response header needs to be hidden.\n"}},"type":"object"},"alicloud:oss/BucketServerSideEncryptionRule:BucketServerSideEncryptionRule":{"properties":{"kmsDataEncryption":{"type":"string","description":"The algorithm used to encrypt objects. If this element is not specified, objects are encrypted with AES256. This element is valid only when the value of SSEAlgorithm is set to KMS. Valid values: `SM4`.\n"},"kmsMasterKeyId":{"type":"string","description":"The alibaba cloud KMS master key ID used for the SSE-KMS encryption.\n"},"sseAlgorithm":{"type":"string","description":"The server-side encryption algorithm to use. Possible values: `AES256` and `KMS`.\n"}},"type":"object","required":["sseAlgorithm"]},"alicloud:oss/BucketTransferAcceleration:BucketTransferAcceleration":{"properties":{"enabled":{"type":"boolean","description":"Specifies the accelerate status of a bucket.\n"}},"type":"object","required":["enabled"]},"alicloud:oss/BucketVersioning:BucketVersioning":{"properties":{"status":{"type":"string","description":"Specifies the versioning state of a bucket. Valid values: `Enabled` and `Suspended`.\n"}},"type":"object","required":["status"]},"alicloud:oss/BucketWebsite:BucketWebsite":{"properties":{"errorDocument":{"type":"string","description":"An absolute path to the document to return in case of a 4XX error.\n"},"indexDocument":{"type":"string","description":"Alicloud OSS returns this index document when requests are made to the root domain or any of the subfolders.\n"}},"type":"object","required":["indexDocument"]},"alicloud:oss/BucketWebsiteErrorDocument:BucketWebsiteErrorDocument":{"properties":{"httpStatus":{"type":"integer","description":"The HTTP status code when the error page is returned. The default 404.\n"},"key":{"type":"string","description":"The error page file. If the Object accessed does not exist, this error page is returned.\n"}},"type":"object"},"alicloud:oss/BucketWebsiteIndexDocument:BucketWebsiteIndexDocument":{"properties":{"suffix":{"type":"string","description":"The default home page.\n"},"supportSubDir":{"type":"boolean","description":"Whether to jump to the default home page of a subdirectory when accessing a subdirectory.\n"},"type":{"type":"string","description":"After the default homepage is set, the behavior when an Object that ends with a non-forward slash (/) is accessed and the Object does not exist.\n"}},"type":"object"},"alicloud:oss/BucketWebsiteRoutingRules:BucketWebsiteRoutingRules":{"properties":{"routingRules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRulesRoutingRule:BucketWebsiteRoutingRulesRoutingRule"},"description":"Specify a jump rule or a mirroring back-to-origin rule, with a maximum of 20 routing rules. See \u003cspan pulumi-lang-nodejs=\"`routingRule`\" pulumi-lang-dotnet=\"`RoutingRule`\" pulumi-lang-go=\"`routingRule`\" pulumi-lang-python=\"`routing_rule`\" pulumi-lang-yaml=\"`routingRule`\" pulumi-lang-java=\"`routingRule`\"\u003e`routing_rule`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:oss/BucketWebsiteRoutingRulesRoutingRule:BucketWebsiteRoutingRulesRoutingRule":{"properties":{"condition":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleCondition:BucketWebsiteRoutingRulesRoutingRuleCondition","description":"Save the criteria that the rule needs to match. See \u003cspan pulumi-lang-nodejs=\"`condition`\" pulumi-lang-dotnet=\"`Condition`\" pulumi-lang-go=\"`condition`\" pulumi-lang-python=\"`condition`\" pulumi-lang-yaml=\"`condition`\" pulumi-lang-java=\"`condition`\"\u003e`condition`\u003c/span\u003e below.\n"},"luaConfig":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleLuaConfig:BucketWebsiteRoutingRulesRoutingRuleLuaConfig","description":"The Lua script configuration to be executed. See \u003cspan pulumi-lang-nodejs=\"`luaConfig`\" pulumi-lang-dotnet=\"`LuaConfig`\" pulumi-lang-go=\"`luaConfig`\" pulumi-lang-python=\"`lua_config`\" pulumi-lang-yaml=\"`luaConfig`\" pulumi-lang-java=\"`luaConfig`\"\u003e`lua_config`\u003c/span\u003e below.\n"},"redirect":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirect:BucketWebsiteRoutingRulesRoutingRuleRedirect","description":"Specifies the action to perform after this rule is matched. See \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e below.\n"},"ruleNumber":{"type":"integer","description":"The sequence number of the matching and executing jump rules. OSS matches rules according to this sequence number. If the match is successful, the rule is executed and subsequent rules are not executed.\n"}},"type":"object"},"alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleCondition:BucketWebsiteRoutingRulesRoutingRuleCondition":{"properties":{"httpErrorCodeReturnedEquals":{"type":"string","description":"When the specified Object is accessed, this status is returned to match this rule. This field must be 404 when the jump rule is mirrored back to the source.\n"},"includeHeaders":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleConditionIncludeHeader:BucketWebsiteRoutingRulesRoutingRuleConditionIncludeHeader"},"description":"This rule can only be matched if the request contains the specified Header and the value is the specified value. You can specify up to 10 containers. See \u003cspan pulumi-lang-nodejs=\"`includeHeaders`\" pulumi-lang-dotnet=\"`IncludeHeaders`\" pulumi-lang-go=\"`includeHeaders`\" pulumi-lang-python=\"`include_headers`\" pulumi-lang-yaml=\"`includeHeaders`\" pulumi-lang-java=\"`includeHeaders`\"\u003e`include_headers`\u003c/span\u003e below.\n"},"keyPrefixEquals":{"type":"string","description":"Only objects that match this prefix can match this rule.\n"},"keySuffixEquals":{"type":"string","description":"Only objects that match this suffix can match this rule.\n"}},"type":"object"},"alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleConditionIncludeHeader:BucketWebsiteRoutingRulesRoutingRuleConditionIncludeHeader":{"properties":{"endsWith":{"type":"string","description":"This rule can only be matched if the request contains the Header specified by Key and the value ends with this value.\n"},"equals":{"type":"string","description":"This rule can only be matched if the request contains the Header specified by Key and the value is the specified value.\n"},"key":{"type":"string"},"startsWith":{"type":"string","description":"This rule can only be matched if the request contains the Header specified by Key and the value starts with this value.\n"}},"type":"object"},"alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleLuaConfig:BucketWebsiteRoutingRulesRoutingRuleLuaConfig":{"properties":{"script":{"type":"string","description":"The Lua script name.\n"}},"type":"object"},"alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirect:BucketWebsiteRoutingRulesRoutingRuleRedirect":{"properties":{"enableReplacePrefix":{"type":"boolean","description":"If this field is set to true, the prefix of Object is replaced with the value specified by ReplaceKeyPrefixWith. If this field is not specified or is blank, the Object prefix is truncated.\n"},"hostName":{"type":"string","description":"The domain name during the jump. The domain name must comply with the domain name specification.\n"},"httpRedirectCode":{"type":"string","description":"The status code returned during the jump. It takes effect only when the RedirectType is set to External or AliCDN.\n"},"mirrorAllowGetImageInfo":{"type":"boolean","description":"Image back-to-source allows getting Image information\n"},"mirrorAllowHeadObject":{"type":"boolean","description":"Whether to allow HeadObject in image back-to-source\n"},"mirrorAllowVideoSnapshot":{"type":"boolean","description":"Mirror back-to-source allows support for video frame truncation\n"},"mirrorAsyncStatus":{"type":"integer","description":"The status code of the mirror back-to-source trigger asynchronous pull mode.\n"},"mirrorAuth":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorAuth:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorAuth","description":"Image back Source station authentication information See \u003cspan pulumi-lang-nodejs=\"`mirrorAuth`\" pulumi-lang-dotnet=\"`MirrorAuth`\" pulumi-lang-go=\"`mirrorAuth`\" pulumi-lang-python=\"`mirror_auth`\" pulumi-lang-yaml=\"`mirrorAuth`\" pulumi-lang-java=\"`mirrorAuth`\"\u003e`mirror_auth`\u003c/span\u003e below.\n"},"mirrorCheckMd5":{"type":"boolean","description":"Whether to check the MD5 of the source body. It takes effect only when the RedirectType is set to Mirror.\n"},"mirrorDstRegion":{"type":"string","description":"Mirrored back-to-source high-speed Channel vpregion\n"},"mirrorDstSlaveVpcId":{"type":"string","description":"Mirroring back-to-source high-speed Channel standby station VpcId\n"},"mirrorDstVpcId":{"type":"string","description":"Mirror back-to-source high-speed Channel VpcId\n"},"mirrorFollowRedirect":{"type":"boolean","description":"If the result of the image back-to-source acquisition is 3xx, whether to continue to jump to the specified Location to obtain data. It takes effect only when the RedirectType is set to Mirror.\n"},"mirrorHeaders":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorHeaders:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorHeaders","description":"Specifies the Header carried when the image returns to the source. It takes effect only when the RedirectType is set to Mirror. See \u003cspan pulumi-lang-nodejs=\"`mirrorHeaders`\" pulumi-lang-dotnet=\"`MirrorHeaders`\" pulumi-lang-go=\"`mirrorHeaders`\" pulumi-lang-python=\"`mirror_headers`\" pulumi-lang-yaml=\"`mirrorHeaders`\" pulumi-lang-java=\"`mirrorHeaders`\"\u003e`mirror_headers`\u003c/span\u003e below.\n"},"mirrorIsExpressTunnel":{"type":"boolean","description":"Whether it is a mirror back-to-source high-speed Channel\n"},"mirrorMultiAlternates":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorMultiAlternates:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorMultiAlternates","description":"Mirror back-to-source multi-source station configuration container. **NOTE:**: If you want to clean one configuration, you must set the configuration to empty value, removing from code cannot make effect. See \u003cspan pulumi-lang-nodejs=\"`mirrorMultiAlternates`\" pulumi-lang-dotnet=\"`MirrorMultiAlternates`\" pulumi-lang-go=\"`mirrorMultiAlternates`\" pulumi-lang-python=\"`mirror_multi_alternates`\" pulumi-lang-yaml=\"`mirrorMultiAlternates`\" pulumi-lang-java=\"`mirrorMultiAlternates`\"\u003e`mirror_multi_alternates`\u003c/span\u003e below.\n"},"mirrorPassOriginalSlashes":{"type":"boolean","description":"Transparent transmission/to source Station\n"},"mirrorPassQueryString":{"type":"boolean","description":"Same as PassQueryString and takes precedence over PassQueryString. It takes effect only when the RedirectType is set to Mirror.\n"},"mirrorProxyPass":{"type":"boolean","description":"Whether mirroring back to source does not save data\n"},"mirrorReturnHeaders":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorReturnHeaders:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorReturnHeaders","description":"The container that saves the image back to the source and returns the response header rule. **NOTE:**: If you want to clean one configuration, you must set the configuration to empty value, removing from code cannot make effect. See \u003cspan pulumi-lang-nodejs=\"`mirrorReturnHeaders`\" pulumi-lang-dotnet=\"`MirrorReturnHeaders`\" pulumi-lang-go=\"`mirrorReturnHeaders`\" pulumi-lang-python=\"`mirror_return_headers`\" pulumi-lang-yaml=\"`mirrorReturnHeaders`\" pulumi-lang-java=\"`mirrorReturnHeaders`\"\u003e`mirror_return_headers`\u003c/span\u003e below.\n"},"mirrorRole":{"type":"string","description":"Roles used when mirroring back-to-source\n"},"mirrorSaveOssMeta":{"type":"boolean","description":"Mirror back-to-source back-to-source OSS automatically saves user metadata\n"},"mirrorSni":{"type":"boolean","description":"Transparent transmission of SNI\n"},"mirrorSwitchAllErrors":{"type":"boolean","description":"It is used to judge the status of active-standby switching. The judgment logic of active-standby switching is that the source station returns an error. If MirrorSwitchAllErrors is true, it is considered a failure except the following status code: 200,206,301,302,303,307,404; If false, only the source Station Returns 5xx or times out is considered a failure.\n"},"mirrorTaggings":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorTaggings:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorTaggings","description":"Save the label according to the parameters when saving the file from the mirror back to the source. **NOTE:**: If you want to clean one configuration, you must set the configuration to empty value, removing from code cannot make effect. See \u003cspan pulumi-lang-nodejs=\"`mirrorTaggings`\" pulumi-lang-dotnet=\"`MirrorTaggings`\" pulumi-lang-go=\"`mirrorTaggings`\" pulumi-lang-python=\"`mirror_taggings`\" pulumi-lang-yaml=\"`mirrorTaggings`\" pulumi-lang-java=\"`mirrorTaggings`\"\u003e`mirror_taggings`\u003c/span\u003e below.\n"},"mirrorTunnelId":{"type":"string","description":"Mirror back-to-source leased line back-to-source tunnel ID\n"},"mirrorUrl":{"type":"string","description":"The address of the origin of the image. It takes effect only when the RedirectType is set to Mirror. The origin address must start with http:// or https:// and end with a forward slash (/). OSS takes the Object name after the Origin address to form the origin URL.\n"},"mirrorUrlProbe":{"type":"string","description":"Mirror back-to-source Master-backup back-to-source switching decision URL\n"},"mirrorUrlSlave":{"type":"string","description":"Mirror back-to-source primary backup back-to-source backup station URL\n"},"mirrorUserLastModified":{"type":"boolean","description":"Whether the source station LastModifiedTime is used for the image back-to-source save file.\n"},"mirrorUsingRole":{"type":"boolean","description":"Whether to use role for mirroring back to source\n"},"passQueryString":{"type":"boolean","description":"Whether to carry the request parameters when executing the jump or mirror back-to-source rule. Did the user carry the request parameters when requesting OSS? a = B \u0026 c = d, and set PassQueryString to true. If the rule is a 302 jump, this request parameter is added to the Location header of the jump. For example Location:example.com? a = B \u0026 c = d, and the jump type is mirrored back-to-origin, this request parameter is also carried in the back-to-origin request initiated. Values: true, false (default)\n"},"protocol":{"type":"string","description":"The protocol at the time of the jump. It takes effect only when the RedirectType is set to External or AliCDN.\n"},"redirectType":{"type":"string","description":"Specifies the type of jump. The value range is as follows: Mirror: Mirror back to the source. External: External redirects, that is, OSS returns a 3xx request to redirect to another address. AliCDN: Alibaba Cloud CDN jump, mainly used for Alibaba Cloud CDN. Unlike External, OSS adds an additional Header. After recognizing this Header, Alibaba Cloud CDN redirects the data to the specified address and returns the obtained data to the user instead of returning the 3xx Redirection request to the user.\n"},"replaceKeyPrefixWith":{"type":"string","description":"The prefix of the Object name will be replaced with this value during Redirect. If the prefix is empty, this string is inserted in front of the Object name.\n"},"replaceKeyWith":{"type":"string","description":"During redirection, the Object name is replaced with the value specified by ReplaceKeyWith. You can set variables in ReplaceKeyWith. Currently, the supported variable is ${key}, which indicates the name of the Object in the request.\n"},"transparentMirrorResponseCodes":{"type":"string","description":"Mirror back-to-source transparent source station response code list\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["mirrorMultiAlternates","mirrorReturnHeaders","mirrorTaggings"]}}},"alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorAuth:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorAuth":{"properties":{"accessKeyId":{"type":"string","description":"Mirror back-to-source source Station back-to-source AK\n"},"accessKeySecret":{"type":"string","description":"Mirroring back to the source station back to the source SK will be automatically desensitized when obtaining the configuration.\n","secret":true},"authType":{"type":"string","description":"Authentication type of mirror return Source\n"},"region":{"type":"string","description":"Signature Region\n"}},"type":"object"},"alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorHeaders:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorHeaders":{"properties":{"passAll":{"type":"boolean","description":"Indicates whether other headers except the following headers are transmitted to the source site. It takes effect only when the RedirectType is set to Mirror. content-length, authorization2, authorization, range, date, and other headers Headers whose names start with oss-/x-oss-/x-drs-\n"},"passes":{"type":"array","items":{"type":"string"},"description":"Pass through the specified Header to the source site. It takes effect only when the RedirectType is set to Mirror. Each Header is up to 1024 bytes in length and has A character set of 0 to 9, a to Z, A to z, and dashes (-).\n"},"removes":{"type":"array","items":{"type":"string"},"description":"Do not pass the specified Header to the source site. It takes effect only when the RedirectType is set to Mirror. Each Header is up to 1024 bytes in length and has A character set of 0 to 9, a to Z, A to z, and dashes (-).\n"},"sets":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorHeadersSet:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorHeadersSet"},"description":"Set a Header to send to the source site. Regardless of whether the request contains the specified Header, these headers will be set when returning to the source site. It takes effect only when the RedirectType is set to Mirror. See \u003cspan pulumi-lang-nodejs=\"`set`\" pulumi-lang-dotnet=\"`Set`\" pulumi-lang-go=\"`set`\" pulumi-lang-python=\"`set`\" pulumi-lang-yaml=\"`set`\" pulumi-lang-java=\"`set`\"\u003e`set`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorHeadersSet:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorHeadersSet":{"properties":{"key":{"type":"string"},"value":{"type":"string","description":"Set the value of the Header to 1024 bytes at most. \\r\\n. It takes effect only when the RedirectType is set to Mirror.\n"}},"type":"object"},"alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorMultiAlternates:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorMultiAlternates":{"properties":{"mirrorMultiAlternates":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorMultiAlternatesMirrorMultiAlternate:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorMultiAlternatesMirrorMultiAlternate"},"description":"Mirror back-to-source multi-source station configuration list See \u003cspan pulumi-lang-nodejs=\"`mirrorMultiAlternate`\" pulumi-lang-dotnet=\"`MirrorMultiAlternate`\" pulumi-lang-go=\"`mirrorMultiAlternate`\" pulumi-lang-python=\"`mirror_multi_alternate`\" pulumi-lang-yaml=\"`mirrorMultiAlternate`\" pulumi-lang-java=\"`mirrorMultiAlternate`\"\u003e`mirror_multi_alternate`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorMultiAlternatesMirrorMultiAlternate:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorMultiAlternatesMirrorMultiAlternate":{"properties":{"mirrorMultiAlternateDstRegion":{"type":"string","description":"Mirroring back-to-source multi-station Region\n"},"mirrorMultiAlternateNumber":{"type":"integer","description":"Image back-to-source multi-source station serial number\n"},"mirrorMultiAlternateUrl":{"type":"string","description":"Mirroring back-to-source multi-source site URL\n"},"mirrorMultiAlternateVpcId":{"type":"string","description":"Mirroring back-to-source multi-source VpcId\n"}},"type":"object"},"alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorReturnHeaders:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorReturnHeaders":{"properties":{"returnHeaders":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorReturnHeadersReturnHeader:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorReturnHeadersReturnHeader"},"description":"The list of response header rules for mirroring back-to-source return. See \u003cspan pulumi-lang-nodejs=\"`returnHeader`\" pulumi-lang-dotnet=\"`ReturnHeader`\" pulumi-lang-go=\"`returnHeader`\" pulumi-lang-python=\"`return_header`\" pulumi-lang-yaml=\"`returnHeader`\" pulumi-lang-java=\"`returnHeader`\"\u003e`return_header`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorReturnHeadersReturnHeader:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorReturnHeadersReturnHeader":{"properties":{"key":{"type":"string"},"value":{"type":"string","description":"Set the value of the Header to 1024 bytes at most. \\r\\n. It takes effect only when the RedirectType is set to Mirror.\n"}},"type":"object"},"alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorTaggings:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorTaggings":{"properties":{"taggings":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorTaggingsTagging:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorTaggingsTagging"},"description":"Image back-to-source save label rule list See \u003cspan pulumi-lang-nodejs=\"`taggings`\" pulumi-lang-dotnet=\"`Taggings`\" pulumi-lang-go=\"`taggings`\" pulumi-lang-python=\"`taggings`\" pulumi-lang-yaml=\"`taggings`\" pulumi-lang-java=\"`taggings`\"\u003e`taggings`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:oss/BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorTaggingsTagging:BucketWebsiteRoutingRulesRoutingRuleRedirectMirrorTaggingsTagging":{"properties":{"key":{"type":"string"},"value":{"type":"string","description":"Set the value of the Header to 1024 bytes at most. \\r\\n. It takes effect only when the RedirectType is set to Mirror.\n"}},"type":"object"},"alicloud:oss/getBucketObjectsObject:getBucketObjectsObject":{"properties":{"acl":{"type":"string","description":"Object access control list. Possible values: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e, `public-read` and `public-read-write`.\n"},"cacheControl":{"type":"string","description":"Caching behavior along the request/reply chain. Read [RFC2616 Cache-Control](https://www.ietf.org/rfc/rfc2616.txt) for further details.\n"},"contentDisposition":{"type":"string","description":"Presentational information for the object. Read [RFC2616 Content-Disposition](https://www.ietf.org/rfc/rfc2616.txt) for further details.\n"},"contentEncoding":{"type":"string","description":"Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [RFC2616 Content-Encoding](https://www.ietf.org/rfc/rfc2616.txt) for further details.\n"},"contentLength":{"type":"string","description":"Size of the object in bytes.\n"},"contentMd5":{"type":"string","description":"MD5 value of the content. Read [MD5](https://www.alibabacloud.com/help/doc-detail/31978.htm) for computing method.\n"},"contentType":{"type":"string","description":"Standard MIME type describing the format of the object data, e.g. \"application/octet-stream\".\n"},"etag":{"type":"string","description":"ETag generated for the object (MD5 sum of the object content).\n"},"expires":{"type":"string","description":"Expiration date for the the request/response. Read [RFC2616 Expires](https://www.ietf.org/rfc/rfc2616.txt) for further details.\n"},"key":{"type":"string","description":"Object key.\n"},"lastModificationTime":{"type":"string","description":"Last modification time of the object.\n"},"serverSideEncryption":{"type":"string","description":"Server-side encryption of the object in OSS. It can be empty or `AES256`.\n"},"sseKmsKeyId":{"type":"string","description":"If present, specifies the ID of the Key Management Service(KMS) master encryption key that was used for the object.\n"},"storageClass":{"type":"string","description":"Object storage type. Possible values: `Standard`, `IA`, `Archive` and `ColdArchive`.\n"}},"type":"object","required":["acl","cacheControl","contentDisposition","contentEncoding","contentLength","contentMd5","contentType","etag","expires","key","lastModificationTime","serverSideEncryption","sseKmsKeyId","storageClass"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oss/getBucketsBucket:getBucketsBucket":{"properties":{"acl":{"type":"string","description":"Bucket access control list. Possible values: \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e, `public-read` and `public-read-write`.\n"},"corsRules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/getBucketsBucketCorsRule:getBucketsBucketCorsRule"},"description":"A list of CORS rule configurations. Each element contains the following attributes:\n"},"creationDate":{"type":"string","description":"Bucket creation date.\n"},"extranetEndpoint":{"type":"string","description":"Internet domain name for accessing the bucket from outside.\n"},"intranetEndpoint":{"type":"string","description":"Intranet domain name for accessing the bucket from an ECS instance in the same region.\n"},"lifecycleRules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/getBucketsBucketLifecycleRule:getBucketsBucketLifecycleRule"},"description":"A list CORS of lifecycle configurations. When Lifecycle is enabled, OSS automatically deletes the objects or transitions the objects (to another storage class) corresponding the lifecycle rules on a regular basis. Each element contains the following attributes:\n"},"location":{"type":"string","description":"Region of the data center where the bucket is located.\n"},"logging":{"$ref":"#/types/alicloud:oss/getBucketsBucketLogging:getBucketsBucketLogging","description":"A list of one element containing configuration parameters used for storing access log information. It contains the following attributes:\n"},"name":{"type":"string","description":"Bucket name.\n"},"owner":{"type":"string","description":"Bucket owner.\n"},"policy":{"type":"string","description":"The policies configured for a specified bucket.\n"},"redundancyType":{"type":"string","description":"Redundancy type. Possible values: `LRS`, and `ZRS`.\n"},"refererConfig":{"$ref":"#/types/alicloud:oss/getBucketsBucketRefererConfig:getBucketsBucketRefererConfig","description":"A list of one element containing referer configuration. It contains the following attributes:\n"},"serverSideEncryptionRule":{"$ref":"#/types/alicloud:oss/getBucketsBucketServerSideEncryptionRule:getBucketsBucketServerSideEncryptionRule","description":"A configuration of default encryption for a bucket. It contains the following attributes:\n"},"storageClass":{"type":"string","description":"Object storage type. Possible values: `Standard`, `IA`, `Archive` and `ColdArchive`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags.\n"},"versioning":{"$ref":"#/types/alicloud:oss/getBucketsBucketVersioning:getBucketsBucketVersioning","description":"If present , the versioning state has been set on the bucket. It contains the following attribute.\n"},"website":{"$ref":"#/types/alicloud:oss/getBucketsBucketWebsite:getBucketsBucketWebsite","description":"A list of one element containing configuration parameters used when the bucket is used as a website. It contains the following attributes:\n"}},"type":"object","required":["acl","corsRules","creationDate","extranetEndpoint","intranetEndpoint","lifecycleRules","location","logging","name","owner","policy","redundancyType","refererConfig","serverSideEncryptionRule","storageClass","tags","versioning","website"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oss/getBucketsBucketCorsRule:getBucketsBucketCorsRule":{"properties":{"allowedHeaders":{"type":"array","items":{"type":"string"},"description":"Control whether the headers specified by Access-Control-Request-Headers in the OPTIONS prefetch command are allowed. Each header specified by Access-Control-Request-Headers must match a value in AllowedHeader. Each rule allows up to one wildcard “*” .\n"},"allowedMethods":{"type":"array","items":{"type":"string"},"description":"Specify the allowed methods for cross-domain requests. Possible values: `GET`, `PUT`, `DELETE`, `POST` and `HEAD`.\n"},"allowedOrigins":{"type":"array","items":{"type":"string"},"description":"The origins allowed for cross-domain requests. Multiple elements can be used to specify multiple allowed origins. Each rule allows up to one wildcard \"\\*\". If \"\\*\" is specified, cross-domain requests of all origins are allowed.\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"Specify the response headers allowing users to access from an application (for example, a Javascript XMLHttpRequest object). The wildcard \"\\*\" is not allowed.\n"},"maxAgeSeconds":{"type":"integer","description":"Specify the cache time for the returned result of a browser prefetch (OPTIONS) request to a specific resource.\n"}},"type":"object","required":["allowedHeaders","allowedMethods","allowedOrigins","exposeHeaders","maxAgeSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oss/getBucketsBucketLifecycleRule:getBucketsBucketLifecycleRule":{"properties":{"enabled":{"type":"boolean","description":"Indicate whether the rule is enabled or not.\n"},"expiration":{"$ref":"#/types/alicloud:oss/getBucketsBucketLifecycleRuleExpiration:getBucketsBucketLifecycleRuleExpiration","description":"A list of one element containing expiration attributes of an object. It contains the following attributes:\n"},"id":{"type":"string","description":"Unique ID of the rule.\n"},"prefix":{"type":"string","description":"Prefix applicable to a rule. Only those objects with a matching prefix can be affected by the rule.\n"}},"type":"object","required":["enabled","expiration","id","prefix"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oss/getBucketsBucketLifecycleRuleExpiration:getBucketsBucketLifecycleRuleExpiration":{"properties":{"date":{"type":"string","description":"Date after which the rule to take effect. The format is like 2017-03-09.\n"},"days":{"type":"integer","description":"Indicate the number of days after the last object update until the rules take effect.\n"}},"type":"object","required":["date","days"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oss/getBucketsBucketLogging:getBucketsBucketLogging":{"properties":{"targetBucket":{"type":"string","description":"Bucket for storing access logs.\n"},"targetPrefix":{"type":"string","description":"Prefix of the saved access log file paths.\n"}},"type":"object","required":["targetBucket","targetPrefix"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oss/getBucketsBucketRefererConfig:getBucketsBucketRefererConfig":{"properties":{"allowEmpty":{"type":"boolean","description":"Indicate whether the access request referer field can be empty.\n"},"referers":{"type":"array","items":{"type":"string"},"description":"Referer access whitelist.\n"}},"type":"object","required":["allowEmpty","referers"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oss/getBucketsBucketServerSideEncryptionRule:getBucketsBucketServerSideEncryptionRule":{"properties":{"kmsMasterKeyId":{"type":"string","description":"The alibaba cloud KMS master key ID used for the SSE-KMS encryption.\n"},"sseAlgorithm":{"type":"string","description":"The server-side encryption algorithm to use.\n"}},"type":"object","required":["kmsMasterKeyId","sseAlgorithm"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oss/getBucketsBucketVersioning:getBucketsBucketVersioning":{"properties":{"status":{"type":"string","description":"A bucket versioning state. Possible values:`Enabled` and `Suspended`.\n"}},"type":"object","required":["status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oss/getBucketsBucketWebsite:getBucketsBucketWebsite":{"properties":{"errorDocument":{"type":"string","description":"Key of the HTML document containing the error page.\n"},"indexDocument":{"type":"string","description":"Key of the HTML document containing the home page.\n"}},"type":"object","required":["errorDocument","indexDocument"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oss/getInstanceAttachmentsAttachment:getInstanceAttachmentsAttachment":{"properties":{"domain":{"type":"string","description":"The domain of the instance attachment.\n"},"endpoint":{"type":"string","description":"The access endpoint of the instance attachment.\n"},"id":{"type":"string","description":"The resource ID, the value is same as \u003cspan pulumi-lang-nodejs=\"\"instanceName\"\" pulumi-lang-dotnet=\"\"InstanceName\"\" pulumi-lang-go=\"\"instanceName\"\" pulumi-lang-python=\"\"instance_name\"\" pulumi-lang-yaml=\"\"instanceName\"\" pulumi-lang-java=\"\"instanceName\"\"\u003e\"instance_name\"\u003c/span\u003e.\n"},"instanceName":{"type":"string","description":"The name of OTS instance.\n"},"region":{"type":"string","description":"The region of the instance attachment.\n"},"vpcId":{"type":"string","description":"The ID of attaching VPC to instance.\n"},"vpcName":{"type":"string","description":"The name of attaching VPC to instance.\n"}},"type":"object","required":["domain","endpoint","id","instanceName","region","vpcId","vpcName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oss/getInstancesInstance:getInstancesInstance":{"properties":{"clusterType":{"type":"string","description":"The cluster type of the instance. Possible values: `SSD`, `HYBRID`.\n"},"createTime":{"type":"string","description":"The create time of the instance.\n"},"description":{"type":"string","description":"The description of the instance.\n"},"entityQuota":{"type":"integer","description":"(Removed since v1.221.0) The instance quota which indicating the maximum number of tables.\n"},"id":{"type":"string","description":"ID of the instance.\n"},"name":{"type":"string","description":"Instance name.\n"},"network":{"type":"string","description":"(Removed since v1.221.0) The network type of the instance. Possible values: `NORMAL`, `VPC`, `VPC_CONSOLE`.\n"},"networkSourceAcls":{"type":"array","items":{"type":"string"},"description":"(Available since v1.221.0) The set of request sources that are allowed access. Possible values: `TRUST_PROXY`.\n"},"networkTypeAcls":{"type":"array","items":{"type":"string"},"description":"(Available since v1.221.0) The set of network types that are allowed access. Possible values: `CLASSIC`, `VPC`, `INTERNET`.\n"},"policy":{"type":"string","description":"(Available since v1.221.0) instance policy, json string.\n"},"policyVersion":{"type":"integer","description":"(Available since v1.221.0) instance policy version.\n"},"resourceGroupId":{"type":"string","description":"(Available since v1.221.0) The resource group the instance belongs to.\n"},"status":{"type":"string","description":"Instance status. Possible values: `Running`, `Disabled`, `Deleting`.\n"},"tableQuota":{"type":"integer","description":"(Available since v1.221.0) The instance quota which indicating the maximum number of tables.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the instance. It must be in the format:\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst instancesDs = alicloud.ots.getInstances({\n    tags: {\n        tagKey1: \"tagValue1\",\n        tagKey2: \"tagValue2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ninstances_ds = alicloud.ots.get_instances(tags={\n    \"tagKey1\": \"tagValue1\",\n    \"tagKey2\": \"tagValue2\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var instancesDs = AliCloud.Ots.GetInstances.Invoke(new()\n    {\n        Tags = \n        {\n            { \"tagKey1\", \"tagValue1\" },\n            { \"tagKey2\", \"tagValue2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ots.GetInstances(ctx, \u0026ots.GetInstancesArgs{\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"tagKey1\": \"tagValue1\",\n\t\t\t\t\"tagKey2\": \"tagValue2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ots.OtsFunctions;\nimport com.pulumi.alicloud.ots.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var instancesDs = OtsFunctions.getInstances(GetInstancesArgs.builder()\n            .tags(Map.ofEntries(\n                Map.entry(\"tagKey1\", \"tagValue1\"),\n                Map.entry(\"tagKey2\", \"tagValue2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  instancesDs:\n    fn::invoke:\n      function: alicloud:ots:getInstances\n      arguments:\n        tags:\n          tagKey1: tagValue1\n          tagKey2: tagValue2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n"},"userId":{"type":"string","description":"The user id of the instance.\n"}},"type":"object","required":["clusterType","createTime","description","entityQuota","id","name","network","networkSourceAcls","networkTypeAcls","policy","policyVersion","resourceGroupId","status","tableQuota","tags","userId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oss/getTablesTable:getTablesTable":{"properties":{"definedColumns":{"type":"array","items":{"$ref":"#/types/alicloud:oss/getTablesTableDefinedColumn:getTablesTableDefinedColumn"}},"id":{"type":"string","description":"ID of the table. The value is `\u003cinstance_name\u003e:\u003ctable_name\u003e`.\n"},"instanceName":{"type":"string","description":"The name of OTS instance.\n"},"maxVersion":{"type":"integer","description":"The maximum number of versions stored in this table.\n"},"primaryKeys":{"type":"array","items":{"$ref":"#/types/alicloud:oss/getTablesTablePrimaryKey:getTablesTablePrimaryKey"},"description":"The property of `TableMeta` which indicates the structure information of a table.\n"},"tableName":{"type":"string","description":"The table name of the OTS which could not be changed.\n"},"timeToLive":{"type":"integer","description":"The retention time of data stored in this table.\n"}},"type":"object","required":["definedColumns","id","instanceName","maxVersion","primaryKeys","tableName","timeToLive"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oss/getTablesTableDefinedColumn:getTablesTableDefinedColumn":{"properties":{"name":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["name","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:oss/getTablesTablePrimaryKey:getTablesTablePrimaryKey":{"properties":{"name":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["name","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ots/SearchIndexSchema:SearchIndexSchema":{"properties":{"fieldSchemas":{"type":"array","items":{"$ref":"#/types/alicloud:ots/SearchIndexSchemaFieldSchema:SearchIndexSchemaFieldSchema"},"description":"A list of field schemas. See \u003cspan pulumi-lang-nodejs=\"`fieldSchema`\" pulumi-lang-dotnet=\"`FieldSchema`\" pulumi-lang-go=\"`fieldSchema`\" pulumi-lang-python=\"`field_schema`\" pulumi-lang-yaml=\"`fieldSchema`\" pulumi-lang-java=\"`fieldSchema`\"\u003e`field_schema`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"indexSettings":{"type":"array","items":{"$ref":"#/types/alicloud:ots/SearchIndexSchemaIndexSetting:SearchIndexSchemaIndexSetting"},"description":"The settings of the search index, including routingFields. See \u003cspan pulumi-lang-nodejs=\"`indexSetting`\" pulumi-lang-dotnet=\"`IndexSetting`\" pulumi-lang-go=\"`indexSetting`\" pulumi-lang-python=\"`index_setting`\" pulumi-lang-yaml=\"`indexSetting`\" pulumi-lang-java=\"`indexSetting`\"\u003e`index_setting`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"indexSorts":{"type":"array","items":{"$ref":"#/types/alicloud:ots/SearchIndexSchemaIndexSort:SearchIndexSchemaIndexSort"},"description":"The presorting settings of the search index, including sorters. If no value is specified for the indexSort parameter, field values are sorted by primary key by default. See \u003cspan pulumi-lang-nodejs=\"`indexSort`\" pulumi-lang-dotnet=\"`IndexSort`\" pulumi-lang-go=\"`indexSort`\" pulumi-lang-python=\"`index_sort`\" pulumi-lang-yaml=\"`indexSort`\" pulumi-lang-java=\"`indexSort`\"\u003e`index_sort`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object","required":["fieldSchemas"]},"alicloud:ots/SearchIndexSchemaFieldSchema:SearchIndexSchemaFieldSchema":{"properties":{"analyzer":{"type":"string","description":"Specifies the type of the analyzer that you want to use. If fieldType is set to Text, you can configure this parameter. Otherwise, the default analyzer type single-word tokenization is used.\n","willReplaceOnChanges":true},"enableSortAndAgg":{"type":"boolean","description":"Specifies whether to enable sorting and aggregation. Type: Boolean. Sorting can be enabled only for fields for which\u003cspan pulumi-lang-nodejs=\" enableSortAndAgg \" pulumi-lang-dotnet=\" EnableSortAndAgg \" pulumi-lang-go=\" enableSortAndAgg \" pulumi-lang-python=\" enable_sort_and_agg \" pulumi-lang-yaml=\" enableSortAndAgg \" pulumi-lang-java=\" enableSortAndAgg \"\u003e enable_sort_and_agg \u003c/span\u003eis set to true.\n","willReplaceOnChanges":true},"fieldName":{"type":"string","description":"The name of the field that is used to sort data. only required if\u003cspan pulumi-lang-nodejs=\" sorterType \" pulumi-lang-dotnet=\" SorterType \" pulumi-lang-go=\" sorterType \" pulumi-lang-python=\" sorter_type \" pulumi-lang-yaml=\" sorterType \" pulumi-lang-java=\" sorterType \"\u003e sorter_type \u003c/span\u003eis FieldSort.\n","willReplaceOnChanges":true},"fieldType":{"type":"string","description":"Specifies the type of the field. Valid values: Text, Long, Double, Boolean, Keyword, Date, GeoPoint, Nested.\n","willReplaceOnChanges":true},"index":{"type":"boolean","description":"Specifies whether to enable indexing for the column. Type: Boolean.\n","willReplaceOnChanges":true},"isArray":{"type":"boolean","description":"Specifies whether the value is an array. Type: Boolean.\n","willReplaceOnChanges":true},"store":{"type":"boolean","description":"Specifies whether to store the value of the field in the search index. Type: Boolean. If you set store to true, you can read the value of the field from the search index without querying the data table. This improves query performance.\n","willReplaceOnChanges":true}},"type":"object","required":["fieldName","fieldType"]},"alicloud:ots/SearchIndexSchemaIndexSetting:SearchIndexSchemaIndexSetting":{"properties":{"routingFields":{"type":"array","items":{"type":"string"},"description":"Specifies custom routing fields. You can specify some primary key columns as routing fields. Tablestore distributes data that is written to a search index across different partitions based on the specified routing fields. The data whose routing field values are the same is distributed to the same partition.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:ots/SearchIndexSchemaIndexSort:SearchIndexSchemaIndexSort":{"properties":{"sorters":{"type":"array","items":{"$ref":"#/types/alicloud:ots/SearchIndexSchemaIndexSortSorter:SearchIndexSchemaIndexSortSorter"},"description":"Specifies the presorting method for the search index. PrimaryKeySort and FieldSort are supported. See \u003cspan pulumi-lang-nodejs=\"`sorter`\" pulumi-lang-dotnet=\"`Sorter`\" pulumi-lang-go=\"`sorter`\" pulumi-lang-python=\"`sorter`\" pulumi-lang-yaml=\"`sorter`\" pulumi-lang-java=\"`sorter`\"\u003e`sorter`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object","required":["sorters"]},"alicloud:ots/SearchIndexSchemaIndexSortSorter:SearchIndexSchemaIndexSortSorter":{"properties":{"fieldName":{"type":"string","description":"The name of the field that is used to sort data. only required if\u003cspan pulumi-lang-nodejs=\" sorterType \" pulumi-lang-dotnet=\" SorterType \" pulumi-lang-go=\" sorterType \" pulumi-lang-python=\" sorter_type \" pulumi-lang-yaml=\" sorterType \" pulumi-lang-java=\" sorterType \"\u003e sorter_type \u003c/span\u003eis FieldSort.\n","willReplaceOnChanges":true},"mode":{"type":"string","description":"The sorting method that is used when the field contains multiple values. valid values: `Min`, `Max`, `Avg`. only required if\u003cspan pulumi-lang-nodejs=\" sorterType \" pulumi-lang-dotnet=\" SorterType \" pulumi-lang-go=\" sorterType \" pulumi-lang-python=\" sorter_type \" pulumi-lang-yaml=\" sorterType \" pulumi-lang-java=\" sorterType \"\u003e sorter_type \u003c/span\u003eis FieldSort.\n","willReplaceOnChanges":true},"order":{"type":"string","description":"The sort order. Data can be sorted in ascending(`Asc`) or descending(`Desc`) order. Default value: `Asc`.\n","willReplaceOnChanges":true},"sorterType":{"type":"string","description":"Data is sorted by Which fields or keys. valid values: `PrimaryKeySort`, `FieldSort`.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:ots/TableDefinedColumn:TableDefinedColumn":{"properties":{"name":{"type":"string","description":"Name for defined column.\n"},"type":{"type":"string","description":"Type for defined column. `Integer`, `String`, `Binary`, `Double`, `Boolean` is allowed.\n"}},"type":"object","required":["name","type"]},"alicloud:ots/TablePrimaryKey:TablePrimaryKey":{"properties":{"name":{"type":"string","description":"Name for primary key.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Type for primary key. Only `Integer`, `String` or `Binary` is allowed.\n","willReplaceOnChanges":true}},"type":"object","required":["name","type"]},"alicloud:ots/TunnelChannel:TunnelChannel":{"properties":{"channelId":{"type":"string","description":"The id of the channel.\n"},"channelRpo":{"type":"integer","description":"The latest consumption time of the channel, unix time in nanosecond.\n"},"channelStatus":{"type":"string","description":"The status of the channel, valid values: `WAIT`, `OPEN`, `CLOSING`, `CLOSE`, `TERMINATED`.\n"},"channelType":{"type":"string","description":"The type of the channel, valid values: `BaseData`, `Stream`.\n"},"clientId":{"type":"string","description":"The client id of the channel.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["channelId","channelRpo","channelStatus","channelType","clientId"]}}},"alicloud:ots/getInstanceAttachmentsAttachment:getInstanceAttachmentsAttachment":{"properties":{"domain":{"type":"string","description":"The domain of the instance attachment.\n"},"endpoint":{"type":"string","description":"The access endpoint of the instance attachment.\n"},"id":{"type":"string","description":"The resource ID, the value is same as \u003cspan pulumi-lang-nodejs=\"\"instanceName\"\" pulumi-lang-dotnet=\"\"InstanceName\"\" pulumi-lang-go=\"\"instanceName\"\" pulumi-lang-python=\"\"instance_name\"\" pulumi-lang-yaml=\"\"instanceName\"\" pulumi-lang-java=\"\"instanceName\"\"\u003e\"instance_name\"\u003c/span\u003e.\n"},"instanceName":{"type":"string","description":"The name of OTS instance.\n"},"region":{"type":"string","description":"The region of the instance attachment.\n"},"vpcId":{"type":"string","description":"The ID of attaching VPC to instance.\n"},"vpcName":{"type":"string","description":"The name of attaching VPC to instance.\n"}},"type":"object","required":["domain","endpoint","id","instanceName","region","vpcId","vpcName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ots/getInstancesInstance:getInstancesInstance":{"properties":{"clusterType":{"type":"string","description":"The cluster type of the instance. Possible values: `SSD`, `HYBRID`.\n"},"createTime":{"type":"string","description":"The create time of the instance.\n"},"description":{"type":"string","description":"The description of the instance.\n"},"entityQuota":{"type":"integer","description":"(Removed since v1.221.0) The instance quota which indicating the maximum number of tables.\n"},"id":{"type":"string","description":"ID of the instance.\n"},"name":{"type":"string","description":"Instance name.\n"},"network":{"type":"string","description":"(Removed since v1.221.0) The network type of the instance. Possible values: `NORMAL`, `VPC`, `VPC_CONSOLE`.\n"},"networkSourceAcls":{"type":"array","items":{"type":"string"},"description":"(Available since v1.221.0) The set of request sources that are allowed access. Possible values: `TRUST_PROXY`.\n"},"networkTypeAcls":{"type":"array","items":{"type":"string"},"description":"(Available since v1.221.0) The set of network types that are allowed access. Possible values: `CLASSIC`, `VPC`, `INTERNET`.\n"},"policy":{"type":"string","description":"(Available since v1.221.0) instance policy, json string.\n"},"policyVersion":{"type":"integer","description":"(Available since v1.221.0) instance policy version.\n"},"resourceGroupId":{"type":"string","description":"(Available since v1.221.0) The resource group the instance belongs to.\n"},"status":{"type":"string","description":"Instance status. Possible values: `Running`, `Disabled`, `Deleting`.\n"},"tableQuota":{"type":"integer","description":"(Available since v1.221.0) The instance quota which indicating the maximum number of tables.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the instance. It must be in the format:\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst instancesDs = alicloud.ots.getInstances({\n    tags: {\n        tagKey1: \"tagValue1\",\n        tagKey2: \"tagValue2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ninstances_ds = alicloud.ots.get_instances(tags={\n    \"tagKey1\": \"tagValue1\",\n    \"tagKey2\": \"tagValue2\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var instancesDs = AliCloud.Ots.GetInstances.Invoke(new()\n    {\n        Tags = \n        {\n            { \"tagKey1\", \"tagValue1\" },\n            { \"tagKey2\", \"tagValue2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ots.GetInstances(ctx, \u0026ots.GetInstancesArgs{\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"tagKey1\": \"tagValue1\",\n\t\t\t\t\"tagKey2\": \"tagValue2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ots.OtsFunctions;\nimport com.pulumi.alicloud.ots.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var instancesDs = OtsFunctions.getInstances(GetInstancesArgs.builder()\n            .tags(Map.ofEntries(\n                Map.entry(\"tagKey1\", \"tagValue1\"),\n                Map.entry(\"tagKey2\", \"tagValue2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  instancesDs:\n    fn::invoke:\n      function: alicloud:ots:getInstances\n      arguments:\n        tags:\n          tagKey1: tagValue1\n          tagKey2: tagValue2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n"},"userId":{"type":"string","description":"The user id of the instance.\n"}},"type":"object","required":["clusterType","createTime","description","entityQuota","id","name","network","networkSourceAcls","networkTypeAcls","policy","policyVersion","resourceGroupId","status","tableQuota","tags","userId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ots/getSearchIndexesIndex:getSearchIndexesIndex":{"properties":{"createTime":{"type":"integer","description":"The creation time of the index.\n"},"currentSyncTimestamp":{"type":"integer","description":"Timestamp for sync phase.\n"},"id":{"type":"string","description":"The resource ID. The value is `\u003cinstance_name\u003e:\u003ctable_name\u003e:\u003cindexName\u003e:\u003cindexType\u003e`.\n"},"indexName":{"type":"string","description":"The index name of the OTS Table which could not be changed.\n"},"instanceName":{"type":"string","description":"The name of OTS instance.\n"},"meteringLastUpdateTime":{"type":"integer","description":"Last update time for metering data..\n"},"reservedReadCu":{"type":"integer","description":"Reserve related resources for the index.\n"},"rowCount":{"type":"integer","description":"The number of rows of data for index.\n"},"schema":{"type":"string","description":"JSON representation of the schema of index.\n"},"storageSize":{"type":"integer","description":"Storage space occupied by index.\n"},"syncPhase":{"type":"string","description":"The synchronization state of the index.\n"},"tableName":{"type":"string","description":"The name of OTS table.\n"},"timeToLive":{"type":"integer","description":"TTL of index.\n"}},"type":"object","required":["createTime","currentSyncTimestamp","id","indexName","instanceName","meteringLastUpdateTime","reservedReadCu","rowCount","schema","storageSize","syncPhase","tableName","timeToLive"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ots/getSecondaryIndexesIndex:getSecondaryIndexesIndex":{"properties":{"definedColumns":{"type":"array","items":{"type":"string"},"description":"A list of defined column for index, referenced from Table's primary keys or predefined columns.\n"},"id":{"type":"string","description":"The resource ID. The value is `\u003cinstance_name\u003e:\u003ctable_name\u003e:\u003cindexName\u003e:\u003cindexType\u003e`.\n"},"indexName":{"type":"string","description":"The index name of the OTS Table which could not be changed.\n"},"indexType":{"type":"string","description":"The index type of the OTS Table which could not be changed.\n"},"instanceName":{"type":"string","description":"The name of OTS instance.\n"},"primaryKeys":{"type":"array","items":{"type":"string"},"description":"A list of primary keys for index, referenced from Table's primary keys or predefined columns.\n"},"tableName":{"type":"string","description":"The name of OTS table.\n"}},"type":"object","required":["definedColumns","id","indexName","indexType","instanceName","primaryKeys","tableName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ots/getTablesTable:getTablesTable":{"properties":{"definedColumns":{"type":"array","items":{"$ref":"#/types/alicloud:ots/getTablesTableDefinedColumn:getTablesTableDefinedColumn"}},"id":{"type":"string","description":"ID of the table. The value is `\u003cinstance_name\u003e:\u003ctable_name\u003e`.\n"},"instanceName":{"type":"string","description":"The name of OTS instance.\n"},"maxVersion":{"type":"integer","description":"The maximum number of versions stored in this table.\n"},"primaryKeys":{"type":"array","items":{"$ref":"#/types/alicloud:ots/getTablesTablePrimaryKey:getTablesTablePrimaryKey"},"description":"The property of `TableMeta` which indicates the structure information of a table.\n"},"tableName":{"type":"string","description":"The table name of the OTS which could not be changed.\n"},"timeToLive":{"type":"integer","description":"The retention time of data stored in this table.\n"}},"type":"object","required":["definedColumns","id","instanceName","maxVersion","primaryKeys","tableName","timeToLive"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ots/getTablesTableDefinedColumn:getTablesTableDefinedColumn":{"properties":{"name":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["name","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ots/getTablesTablePrimaryKey:getTablesTablePrimaryKey":{"properties":{"name":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["name","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ots/getTunnelsTunnel:getTunnelsTunnel":{"properties":{"channels":{"type":"array","items":{"$ref":"#/types/alicloud:ots/getTunnelsTunnelChannel:getTunnelsTunnelChannel"},"description":"The channels of OTS tunnel. Each element contains the following attributes:\n"},"createTime":{"type":"integer","description":"The creation time of the Tunnel.\n"},"expired":{"type":"boolean","description":"Whether the tunnel has expired.\n"},"id":{"type":"string","description":"The resource ID. The value is `\u003cinstance_name\u003e:\u003ctable_name\u003e:\u003ctunnel_name\u003e`.\n"},"instanceName":{"type":"string","description":"The name of OTS instance.\n"},"tableName":{"type":"string","description":"The name of OTS table.\n"},"tunnelId":{"type":"string","description":"The tunnel id of the OTS which could not be changed.\n"},"tunnelName":{"type":"string","description":"The tunnel name of the OTS which could not be changed.\n"},"tunnelRpo":{"type":"integer","description":"The latest consumption time of the tunnel, unix time in nanosecond.\n"},"tunnelStage":{"type":"string","description":"The stage of OTS tunnel, valid values: `InitBaseDataAndStreamShard`, `ProcessBaseData`, `ProcessStream`.\n"},"tunnelType":{"type":"string","description":"The type of the OTS tunnel, valid values: `BaseAndStream`, `BaseData`, `Stream`.\n"}},"type":"object","required":["channels","createTime","expired","id","instanceName","tableName","tunnelId","tunnelName","tunnelRpo","tunnelStage","tunnelType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ots/getTunnelsTunnelChannel:getTunnelsTunnelChannel":{"properties":{"channelId":{"type":"string","description":"The id of the channel.\n"},"channelRpo":{"type":"integer","description":"The latest consumption time of the channel, unix time in nanosecond\n"},"channelStatus":{"type":"string","description":"The status of the channel, valid values: `WAIT`, `OPEN`, `CLOSING`, `CLOSE`, `TERMINATED`.\n"},"channelType":{"type":"string","description":"The type of the channel, valid values: `BaseData`, `Stream`.\n"},"clientId":{"type":"string","description":"The client id of the channel.\n"}},"type":"object","required":["channelId","channelRpo","channelStatus","channelType","clientId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:pai/WorkspaceDatasetLabel:WorkspaceDatasetLabel":{"properties":{"key":{"type":"string","description":"The key of the tag. The length is limited to 128 bytes. \"=\" and \",\" are not supported.\n"},"value":{"type":"string","description":"The value of the tag. The length is limited to 128 bytes. \"=\" and \",\" are not supported.\n"}},"type":"object"},"alicloud:pai/WorkspaceDatasetversionLabel:WorkspaceDatasetversionLabel":{"properties":{"key":{"type":"string","description":"The key of the tags\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The value of the tags\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:pai/WorkspaceModelLabel:WorkspaceModelLabel":{"properties":{"key":{"type":"string","description":"label key\n"},"value":{"type":"string","description":"label value\n"}},"type":"object"},"alicloud:pai/WorkspaceModelVersionLabel:WorkspaceModelVersionLabel":{"properties":{"key":{"type":"string","description":"label key.\n"},"value":{"type":"string","description":"label value.\n"}},"type":"object"},"alicloud:polardb/ClusterDbClusterIpArray:ClusterDbClusterIpArray":{"properties":{"dbClusterIpArrayName":{"type":"string","description":"The name of the IP whitelist group. The group name must be 2 to 120 characters in length and consists of lowercase letters and digits. It must start with a letter, and end with a letter or a digit.\n**NOTE:** If the specified whitelist group name does not exist, the whitelist group is created. If the specified whitelist group name exists, the whitelist group is modified. If you do not specify this parameter, the default group is modified. You can create a maximum of 50 IP whitelist groups for a cluster.\n"},"modifyMode":{"type":"string","description":"The method for modifying the IP whitelist. Valid values are `Cover`, `Append`, `Delete`.\n**NOTE:** There does not recommend setting\u003cspan pulumi-lang-nodejs=\" modifyMode \" pulumi-lang-dotnet=\" ModifyMode \" pulumi-lang-go=\" modifyMode \" pulumi-lang-python=\" modify_mode \" pulumi-lang-yaml=\" modifyMode \" pulumi-lang-java=\" modifyMode \"\u003e modify_mode \u003c/span\u003eto `Append` or `Delete` and it will bring a potential diff error.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of a cluster. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"}},"type":"object"},"alicloud:polardb/ClusterDbRevisionVersionList:ClusterDbRevisionVersionList":{"properties":{"releaseNote":{"type":"string","description":"(Available since v1.216.0) The revised version Code of the database engine is used to specify the upgrade to the target version.\n"},"releaseType":{"type":"string","description":"(Available since v1.216.0) Database version release status. Valid values are `Stable`, `Old`, `HighRisk`.\n"},"revisionVersionCode":{"type":"string","description":"(Available since v1.216.0) The revised version Code of the database engine is used to specify the upgrade to the target version.\n"},"revisionVersionName":{"type":"string","description":"(Available since v1.216.0) The revision version number of the database engine.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["releaseNote","releaseType","revisionVersionCode","revisionVersionName"]}}},"alicloud:polardb/ClusterParameter:ClusterParameter":{"properties":{"name":{"type":"string","description":"Kernel parameter name.\n"},"value":{"type":"string","description":"Kernel parameter value.\n"}},"type":"object","required":["name","value"]},"alicloud:polardb/ParameterGroupParameter:ParameterGroupParameter":{"properties":{"paramName":{"type":"string","description":"The name of the parameter.\n","willReplaceOnChanges":true},"paramValue":{"type":"string","description":"The value of the parameter.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:polardb/getAccountsAccount:getAccountsAccount":{"properties":{"accountDescription":{"type":"string","description":"Account description.\n"},"accountLockState":{"type":"string","description":"Account lock state, Valid values are `Lock`, `UnLock`.\n"},"accountName":{"type":"string","description":"Account name.\n"},"accountStatus":{"type":"string","description":"Cluster address type.`Cluster`: the default address of the Cluster.`Primary`: Primary address.`Custom`: Custom cluster addresses.\n"},"accountType":{"type":"string","description":"Account type, Valid values are `Normal`, `Super`.\n"},"databasePrivileges":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/getAccountsAccountDatabasePrivilege:getAccountsAccountDatabasePrivilege"},"description":"A list of database privilege. Each element contains the following attributes.\n"}},"type":"object","required":["accountDescription","accountLockState","accountName","accountStatus","accountType","databasePrivileges"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:polardb/getAccountsAccountDatabasePrivilege:getAccountsAccountDatabasePrivilege":{"properties":{"accountPrivilege":{"type":"string","description":"Account privilege of database\n"},"dbName":{"type":"string","description":"The account owned database name\n"}},"type":"object","required":["accountPrivilege","dbName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:polardb/getClustersCluster:getClustersCluster":{"properties":{"chargeType":{"type":"string","description":"Billing method. Value options: `PostPaid` for Pay-As-You-Go and `PrePaid` for subscription.\n"},"connectionString":{"type":"string","description":"PolarDB cluster connection string.\n"},"createTime":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" createTime \" pulumi-lang-dotnet=\" CreateTime \" pulumi-lang-go=\" createTime \" pulumi-lang-python=\" create_time \" pulumi-lang-yaml=\" createTime \" pulumi-lang-java=\" createTime \"\u003e create_time \u003c/span\u003eof the db_nodes.\n"},"dbNodeClass":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eof the db_nodes.\n"},"dbNodeNumber":{"type":"integer","description":"The DBNodeNumber of the PolarDB cluster.\n"},"dbNodes":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/getClustersClusterDbNode:getClustersClusterDbNode"},"description":"The DBNodes of the PolarDB cluster.\n"},"dbType":{"type":"string","description":"Database type. Options are `MySQL`, `Oracle` and `PostgreSQL`. If no value is specified, all types are returned.\n"},"dbVersion":{"type":"string","description":"The DBVersion of the PolarDB cluster.\n"},"deleteLock":{"type":"integer","description":"The DeleteLock of the PolarDB cluster.\n"},"description":{"type":"string","description":"The description of the PolarDB cluster.\n"},"engine":{"type":"string","description":"The database engine of the cluster, example: POLARDB.\n"},"expireTime":{"type":"string","description":"Expiration time. Pay-As-You-Go clusters never expire.\n"},"expired":{"type":"string","description":"The expired of the PolarDB cluster.\n"},"id":{"type":"string","description":"The ID of the PolarDB cluster.\n"},"lockMode":{"type":"string","description":"The LockMode of the PolarDB cluster.\n"},"networkType":{"type":"string","description":"The DBClusterNetworkType of the PolarDB cluster.\n"},"port":{"type":"string","description":"PolarDB cluster connection port.\n"},"regionId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" regionId \" pulumi-lang-dotnet=\" RegionId \" pulumi-lang-go=\" regionId \" pulumi-lang-python=\" region_id \" pulumi-lang-yaml=\" regionId \" pulumi-lang-java=\" regionId \"\u003e region_id \u003c/span\u003eof the db_nodes.\n"},"status":{"type":"string","description":"status of the cluster.\n"},"storageUsed":{"type":"integer","description":"The StorageUsed of the PolarDB cluster.\n"},"vpcId":{"type":"string","description":"ID of the VPC the cluster belongs to.\n"},"zoneId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" zoneId \" pulumi-lang-dotnet=\" ZoneId \" pulumi-lang-go=\" zoneId \" pulumi-lang-python=\" zone_id \" pulumi-lang-yaml=\" zoneId \" pulumi-lang-java=\" zoneId \"\u003e zone_id \u003c/span\u003eof the db_nodes.\n"}},"type":"object","required":["chargeType","connectionString","createTime","dbNodeClass","dbNodeNumber","dbNodes","dbType","dbVersion","deleteLock","description","engine","expireTime","expired","id","lockMode","networkType","port","regionId","status","storageUsed","vpcId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:polardb/getClustersClusterDbNode:getClustersClusterDbNode":{"properties":{"createTime":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" createTime \" pulumi-lang-dotnet=\" CreateTime \" pulumi-lang-go=\" createTime \" pulumi-lang-python=\" create_time \" pulumi-lang-yaml=\" createTime \" pulumi-lang-java=\" createTime \"\u003e create_time \u003c/span\u003eof the db_nodes.\n"},"dbNodeClass":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eof the db_nodes.\n"},"dbNodeId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeId \" pulumi-lang-dotnet=\" DbNodeId \" pulumi-lang-go=\" dbNodeId \" pulumi-lang-python=\" db_node_id \" pulumi-lang-yaml=\" dbNodeId \" pulumi-lang-java=\" dbNodeId \"\u003e db_node_id \u003c/span\u003eof the db_nodes.\n"},"dbNodeRole":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeRole \" pulumi-lang-dotnet=\" DbNodeRole \" pulumi-lang-go=\" dbNodeRole \" pulumi-lang-python=\" db_node_role \" pulumi-lang-yaml=\" dbNodeRole \" pulumi-lang-java=\" dbNodeRole \"\u003e db_node_role \u003c/span\u003eof the db_nodes.\n"},"dbNodeStatus":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeStatus \" pulumi-lang-dotnet=\" DbNodeStatus \" pulumi-lang-go=\" dbNodeStatus \" pulumi-lang-python=\" db_node_status \" pulumi-lang-yaml=\" dbNodeStatus \" pulumi-lang-java=\" dbNodeStatus \"\u003e db_node_status \u003c/span\u003eof the db_nodes.\n"},"maxConnections":{"type":"integer","description":"The\u003cspan pulumi-lang-nodejs=\" maxConnections \" pulumi-lang-dotnet=\" MaxConnections \" pulumi-lang-go=\" maxConnections \" pulumi-lang-python=\" max_connections \" pulumi-lang-yaml=\" maxConnections \" pulumi-lang-java=\" maxConnections \"\u003e max_connections \u003c/span\u003eof the db_nodes.\n"},"maxIops":{"type":"integer","description":"The\u003cspan pulumi-lang-nodejs=\" maxIops \" pulumi-lang-dotnet=\" MaxIops \" pulumi-lang-go=\" maxIops \" pulumi-lang-python=\" max_iops \" pulumi-lang-yaml=\" maxIops \" pulumi-lang-java=\" maxIops \"\u003e max_iops \u003c/span\u003eof the db_nodes.\n"},"regionId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" regionId \" pulumi-lang-dotnet=\" RegionId \" pulumi-lang-go=\" regionId \" pulumi-lang-python=\" region_id \" pulumi-lang-yaml=\" regionId \" pulumi-lang-java=\" regionId \"\u003e region_id \u003c/span\u003eof the db_nodes.\n"},"zoneId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" zoneId \" pulumi-lang-dotnet=\" ZoneId \" pulumi-lang-go=\" zoneId \" pulumi-lang-python=\" zone_id \" pulumi-lang-yaml=\" zoneId \" pulumi-lang-java=\" zoneId \"\u003e zone_id \u003c/span\u003eof the db_nodes.\n"}},"type":"object","required":["createTime","dbNodeClass","dbNodeId","dbNodeRole","dbNodeStatus","maxConnections","maxIops","regionId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:polardb/getDatabasesDatabase:getDatabasesDatabase":{"properties":{"accounts":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/getDatabasesDatabaseAccount:getDatabasesDatabaseAccount"},"description":"A list of accounts of database. Each element contains the following attributes.\n"},"characterSetName":{"type":"string","description":"The character set name of database.\n"},"dbDescription":{"type":"string","description":"Database description.\n"},"dbName":{"type":"string","description":"Database name.\n"},"dbStatus":{"type":"string","description":"The status of database.\n"},"engine":{"type":"string","description":"The engine of database.\n"}},"type":"object","required":["accounts","characterSetName","dbDescription","dbName","dbStatus","engine"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:polardb/getDatabasesDatabaseAccount:getDatabasesDatabaseAccount":{"properties":{"accountName":{"type":"string","description":"Account name.\n"},"accountStatus":{"type":"string","description":"Account status.\n"},"privilegeStatus":{"type":"string","description":"The privilege status of account.\n"}},"type":"object","required":["accountName","accountStatus","privilegeStatus"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:polardb/getEndpointsEndpoint:getEndpointsEndpoint":{"properties":{"addressItems":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/getEndpointsEndpointAddressItem:getEndpointsEndpointAddressItem"},"description":"A list of endpoint addresses. Each element contains the following attributes.\n"},"autoAddNewNodes":{"type":"string","description":"Whether the new node is automatically added to the default cluster address.Options are `Enable` and `Disable`.\n"},"dbEndpointId":{"type":"string","description":"endpoint of the cluster.\n"},"endpointConfig":{"type":"string","description":"The Endpoint configuration. `ConsistLevel`: session consistency level, value:\u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: final consistency,\u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: session consistency;`LoadBalanceStrategy`: load balancing strategy. Based on the automatic scheduling of load, the value is: \u003cspan pulumi-lang-nodejs=\"`load`\" pulumi-lang-dotnet=\"`Load`\" pulumi-lang-go=\"`load`\" pulumi-lang-python=\"`load`\" pulumi-lang-yaml=\"`load`\" pulumi-lang-java=\"`load`\"\u003e`load`\u003c/span\u003e.\n"},"endpointType":{"type":"string","description":"Cluster address type.`Cluster`: the default address of the Cluster.`Primary`: Primary address.`Custom`: Custom cluster addresses.\n"},"nodes":{"type":"string","description":"A list of nodes that connect to the address configuration.\n"},"readWriteMode":{"type":"string","description":"Read-write mode:`ReadWrite`: readable and writable (automatic read-write separation).`ReadOnly`: ReadOnly.\n"}},"type":"object","required":["addressItems","autoAddNewNodes","dbEndpointId","endpointConfig","endpointType","nodes","readWriteMode"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:polardb/getEndpointsEndpointAddressItem:getEndpointsEndpointAddressItem":{"properties":{"connectionString":{"type":"string","description":"Connection instance string.\n"},"ipAddress":{"type":"string","description":"The ip address of connection string.\n"},"netType":{"type":"string","description":"IP network type:`Public` or `Private`.\n"},"port":{"type":"string","description":"Intranet connection port.\n"},"vpcId":{"type":"string","description":"ID of the VPC the instance belongs to.\n"},"vswitchId":{"type":"string","description":"ID of the vSwitch the cluster belongs to.\n"}},"type":"object","required":["connectionString","ipAddress","netType","port","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:polardb/getGlobalDatabaseNetworksNetwork:getGlobalDatabaseNetworksNetwork":{"properties":{"createTime":{"type":"string","description":"The time when the Global Database Network was created. The time is in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.\n"},"dbClusters":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/getGlobalDatabaseNetworksNetworkDbCluster:getGlobalDatabaseNetworksNetworkDbCluster"},"description":"The details of each cluster in the Global Database Network.\n"},"dbType":{"type":"string","description":"The type of the database engine. Only MySQL is supported.\n"},"dbVersion":{"type":"string","description":"The version number of the database engine. Only the 8.0 version is supported.\n"},"description":{"type":"string","description":"The description of the Global Database Network.\n"},"gdnId":{"type":"string","description":"The ID of the Global Database Network.\n"},"id":{"type":"string","description":"The ID of the Global Database Network.\n"},"status":{"type":"string","description":"The status of the Global Database Network. Valid values:\n"}},"type":"object","required":["createTime","dbClusters","dbType","dbVersion","description","gdnId","id","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:polardb/getGlobalDatabaseNetworksNetworkDbCluster:getGlobalDatabaseNetworksNetworkDbCluster":{"properties":{"dbClusterId":{"type":"string","description":"The ID of the cluster.\n"},"regionId":{"type":"string","description":"The region ID of the cluster.\n"},"role":{"type":"string","description":"The role of the cluster.\n"}},"type":"object","required":["dbClusterId","regionId","role"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:polardb/getNodeClassesClass:getNodeClassesClass":{"properties":{"supportedEngines":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/getNodeClassesClassSupportedEngine:getNodeClassesClassSupportedEngine"},"description":"A list of PolarDB node classes in the zone.\n"},"zoneId":{"type":"string","description":"The Zone to launch the PolarDB cluster.\n"}},"type":"object","required":["supportedEngines","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:polardb/getNodeClassesClassSupportedEngine:getNodeClassesClassSupportedEngine":{"properties":{"availableResources":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/getNodeClassesClassSupportedEngineAvailableResource:getNodeClassesClassSupportedEngineAvailableResource"},"description":"A list of PolarDB node available classes.\n"},"engine":{"type":"string","description":"In the zone, the database type supports classes in the following available_resources.\n"}},"type":"object","required":["availableResources","engine"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:polardb/getNodeClassesClassSupportedEngineAvailableResource:getNodeClassesClassSupportedEngineAvailableResource":{"properties":{"dbNodeClass":{"type":"string","description":"The PolarDB node class type by the user.\n"}},"type":"object","required":["dbNodeClass"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:polardb/getParameterGroupsGroup:getParameterGroupsGroup":{"properties":{"createTime":{"type":"string","description":"The time when the parameter template was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"dbType":{"type":"string","description":"The type of the database engine. Only `MySQL` is supported.\n"},"dbVersion":{"type":"string","description":"The version number of the database engine. Valid values: `5.6`, `5.7`, `8.0`.\n"},"forceRestart":{"type":"string","description":"Indicates whether to restart the cluster when this parameter template is applied.\n"},"id":{"type":"string","description":"The ID of the Parameter Group.\n"},"parameterCounts":{"type":"integer","description":"The number of parameters in the parameter template.\n"},"parameterGroupDesc":{"type":"string","description":"The description of the parameter template.\n"},"parameterGroupId":{"type":"string","description":"The ID of the Parameter Group.\n"},"parameterGroupName":{"type":"string","description":"The name of the parameter template.\n"},"parameterGroupType":{"type":"string","description":"The type of the parameter template.\n"}},"type":"object","required":["createTime","dbType","dbVersion","forceRestart","id","parameterCounts","parameterGroupDesc","parameterGroupId","parameterGroupName","parameterGroupType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:polardb/getZonesZone:getZonesZone":{"properties":{"id":{"type":"string","description":"ID of the zone.\n"},"multiZoneIds":{"type":"array","items":{"type":"string"},"description":"A list of zone ids in which the multi zone.\n"}},"type":"object","required":["id","multiZoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:privatelink/getVpcEndpointConnectionsConnection:getVpcEndpointConnectionsConnection":{"properties":{"bandwidth":{"type":"integer","description":"The Bandwidth.\n"},"endpointId":{"type":"string","description":"The ID of the Vpc Endpoint.\n"},"id":{"type":"string","description":"The ID of the Vpc Endpoint Connection.\n"},"status":{"type":"string","description":"The status of Vpc Endpoint Connection. Valid Values: `Connected`, `Connecting`, `Deleted`, `Deleting`, `Disconnected`, `Disconnecting`, `Pending` and `ServiceDeleted`.\n"}},"type":"object","required":["bandwidth","endpointId","id","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:privatelink/getVpcEndpointServiceResourcesResource:getVpcEndpointServiceResourcesResource":{"properties":{"id":{"type":"string","description":"The ID of the Vpc Endpoint Service Resource.\n"},"resourceId":{"type":"string","description":"The ID of Resource.\n"},"resourceType":{"type":"string","description":"The type of Resource.\n"}},"type":"object","required":["id","resourceId","resourceType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:privatelink/getVpcEndpointServiceUsersUser:getVpcEndpointServiceUsersUser":{"properties":{"id":{"type":"string","description":"The ID of the Vpc Endpoint Service User.\n"},"userId":{"type":"string","description":"The Id of Ram User.\n"}},"type":"object","required":["id","userId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:privatelink/getVpcEndpointServicesService:getVpcEndpointServicesService":{"properties":{"autoAcceptConnection":{"type":"boolean","description":"Specifies whether to automatically accept endpoint connection requests. Valid values: : \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"connectBandwidth":{"type":"integer","description":"The default maximum bandwidth of the endpoint connection.\n"},"id":{"type":"string","description":"The ID of the Vpc Endpoint Service.\n"},"serviceBusinessStatus":{"type":"string","description":"The service state of the endpoint service. Default value: `Normal`. Valid values: `Normal`, `FinancialLocked` and `SecurityLocked`.\n"},"serviceDescription":{"type":"string","description":"The description of the endpoint service.\n"},"serviceDomain":{"type":"string","description":"The domain name of the endpoint service.\n"},"serviceId":{"type":"string","description":"The ID of the endpoint service.\n"},"status":{"type":"string","description":"The state of the endpoint service. Valid values: `Active`, `Creating`, `Deleted`, `Deleting` and `Pending`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcEndpointServiceName":{"type":"string","description":"The name of the endpoint service.\n"}},"type":"object","required":["autoAcceptConnection","connectBandwidth","id","serviceBusinessStatus","serviceDescription","serviceDomain","serviceId","status","tags","vpcEndpointServiceName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:privatelink/getVpcEndpointZonesZone:getVpcEndpointZonesZone":{"properties":{"eniId":{"type":"string","description":"Terminal node network card.\n"},"eniIp":{"type":"string","description":"IP address of the terminal node network card.\n"},"id":{"type":"string","description":"The ID of the Vpc Endpoint Zone.\n"},"status":{"type":"string","description":"The Status of Vpc Endpoint Zone. Valid Values: `Connected`, `Connecting`, `Creating`, `Deleted`, `Deleting`, `Disconnected`, `Disconnecting` and `Wait`.\n"},"vswitchId":{"type":"string","description":"The vSwitch id.\n"},"zoneDomain":{"type":"string","description":"The Zone Domain.\n"},"zoneId":{"type":"string","description":"The Zone Id.\n"}},"type":"object","required":["eniId","eniIp","id","status","vswitchId","zoneDomain","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:privatelink/getVpcEndpointsEndpoint:getVpcEndpointsEndpoint":{"properties":{"bandwidth":{"type":"integer","description":"The Bandwidth.\n"},"connectionStatus":{"type":"string","description":"The status of Connection.\n"},"endpointBusinessStatus":{"type":"string","description":"The status of Endpoint Business.\n"},"endpointDescription":{"type":"string","description":"The description of Vpc Endpoint.\n"},"endpointDomain":{"type":"string","description":"The Endpoint Domain.\n"},"endpointId":{"type":"string","description":"The ID of the Vpc Endpoint.\n"},"id":{"type":"string","description":"The ID of the Vpc Endpoint.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The security group associated with the terminal node network card.\n"},"serviceId":{"type":"string","description":"The terminal node service associated with the terminal node.\n"},"serviceName":{"type":"string","description":"The name of the terminal node service associated with the terminal node.\n"},"status":{"type":"string","description":"The status of Vpc Endpoint.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Query the instance bound to the tag. The format of the incoming value is \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e string, including `TagKey` and `TagValue`. `TagKey` cannot be null, and `TagValue` can be empty. Format example `{\"key1\":\"value1\"}`.\n"},"vpcEndpointName":{"type":"string","description":"The name of Vpc Endpoint.\n"},"vpcId":{"type":"string","description":"The private network to which the terminal node belongs..\n"}},"type":"object","required":["bandwidth","connectionStatus","endpointBusinessStatus","endpointDescription","endpointDomain","endpointId","id","securityGroupIds","serviceId","serviceName","status","tags","vpcEndpointName","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:pvtz/EndpointIpConfig:EndpointIpConfig":{"properties":{"cidrBlock":{"type":"string","description":"The Subnet mask.\n"},"ip":{"type":"string","description":"The IP address within the parameter range of the subnet mask.  It is recommended to use the IP address assigned by the system.\n"},"vswitchId":{"type":"string","description":"The Vswitch id.\n"},"zoneId":{"type":"string","description":"The Zone ID.\n"}},"type":"object","required":["cidrBlock","vswitchId","zoneId"],"language":{"nodejs":{"requiredOutputs":["cidrBlock","ip","vswitchId","zoneId"]}}},"alicloud:pvtz/RuleAttachmentVpc:RuleAttachmentVpc":{"properties":{"regionId":{"type":"string","description":"The region of the vpc. If not set, the current region will instead of.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.  **NOTE:** The VPC that can be associated with the forwarding rule must belong to the same region as the Endpoint.\n"}},"type":"object","required":["regionId","vpcId"]},"alicloud:pvtz/RuleForwardIp:RuleForwardIp":{"properties":{"ip":{"type":"string","description":"The ip of the forwarding destination.\n"},"port":{"type":"integer","description":"The port of the forwarding destination.\n"}},"type":"object","required":["ip","port"]},"alicloud:pvtz/ZoneAttachmentVpc:ZoneAttachmentVpc":{"properties":{"regionId":{"type":"string","description":"The region of the vpc. If not set, the current region will instead of.\n"},"vpcId":{"type":"string","description":"The Id of the vpc.\n"}},"type":"object","required":["vpcId"],"language":{"nodejs":{"requiredOutputs":["regionId","vpcId"]}}},"alicloud:pvtz/ZoneUserInfo:ZoneUserInfo":{"properties":{"regionIds":{"type":"array","items":{"type":"string"},"description":"The list of the region IDs.\n"},"userId":{"type":"string","description":"The user ID belonging to the region is used for cross-account synchronization scenarios.\n"}},"type":"object"},"alicloud:pvtz/getEndpointsEndpoint:getEndpointsEndpoint":{"properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"endpointName":{"type":"string","description":"The name of the resource.\n"},"id":{"type":"string"},"ipConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/getEndpointsEndpointIpConfig:getEndpointsEndpointIpConfig"},"description":"The Ip Configs.\n"},"securityGroupId":{"type":"string","description":"The ID of the Security Group.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `CHANGE_FAILED`, `CHANGE_INIT`, `EXCEPTION`, `FAILED`, `INIT`, `SUCCESS`.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n"},"vpcName":{"type":"string","description":"The name of the VPC.\n"},"vpcRegionId":{"type":"string","description":"The Region of the VPC.\n"}},"type":"object","required":["createTime","endpointName","id","ipConfigs","securityGroupId","status","vpcId","vpcName","vpcRegionId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:pvtz/getEndpointsEndpointIpConfig:getEndpointsEndpointIpConfig":{"properties":{"cidrBlock":{"type":"string","description":"The Subnet mask.\n"},"ip":{"type":"string","description":"The IP address within the parameter range of the subnet mask. **NOTE:** It is recommended to use the IP address assigned by the system.\n"},"vswitchId":{"type":"string","description":"The Vswitch id.\n"},"zoneId":{"type":"string","description":"The Zone ID.\n"}},"type":"object","required":["cidrBlock","ip","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:pvtz/getResolverZonesZone:getResolverZonesZone":{"properties":{"status":{"type":"string","description":"The status of the Zone.\n"},"zoneId":{"type":"string","description":"The zone ID.\n"}},"type":"object","required":["status","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:pvtz/getRulesRule:getRulesRule":{"properties":{"bindVpcs":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/getRulesRuleBindVpc:getRulesRuleBindVpc"},"description":"The List of the VPC. See the following `Block\u003cspan pulumi-lang-nodejs=\" bindVpcs`\" pulumi-lang-dotnet=\" BindVpcs`\" pulumi-lang-go=\" bindVpcs`\" pulumi-lang-python=\" bind_vpcs`\" pulumi-lang-yaml=\" bindVpcs`\" pulumi-lang-java=\" bindVpcs`\"\u003e bind_vpcs`\u003c/span\u003e. **NOTE:** Available in v1.158.0+.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"endpointId":{"type":"string","description":"The ID of the Endpoint.\n"},"endpointName":{"type":"string","description":"The Name of the Endpoint.\n"},"forwardIps":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/getRulesRuleForwardIp:getRulesRuleForwardIp"}},"id":{"type":"string","description":"The ID of the Rule.\n"},"ruleId":{"type":"string","description":"The first ID of the resource.\n"},"ruleName":{"type":"string","description":"The name of the resource.\n"},"type":{"type":"string","description":"The type of the rule.\n"},"zoneName":{"type":"string","description":"The name of the forwarding zone.\n"}},"type":"object","required":["bindVpcs","createTime","endpointId","endpointName","forwardIps","id","ruleId","ruleName","type","zoneName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:pvtz/getRulesRuleBindVpc:getRulesRuleBindVpc":{"properties":{"regionId":{"type":"string","description":"The region ID of the vpc.\n"},"regionName":{"type":"string","description":"The Region Name of the vpc.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vpcName":{"type":"string","description":"The Name of the VPC.\n"}},"type":"object","required":["regionId","regionName","vpcId","vpcName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:pvtz/getRulesRuleForwardIp:getRulesRuleForwardIp":{"properties":{"ip":{"type":"string"},"port":{"type":"integer"}},"type":"object","required":["ip","port"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:pvtz/getZoneRecordsRecord:getZoneRecordsRecord":{"properties":{"id":{"type":"string","description":"The ID of the Private Zone Record.\n"},"priority":{"type":"integer","description":"The priority of the MX record.\n"},"recordId":{"type":"string","description":"The ID of the Record.\n"},"remark":{"type":"string","description":"The description of the Private Zone Record.\n"},"resourceRecord":{"type":"string","description":"The hostname of the Private Zone Record.\n"},"rr":{"type":"string","description":"The hostname of the Private Zone Record.\n"},"status":{"type":"string","description":"The status of the Resolve record. Valid values:\n- `ENABLE`: Enable resolution.\n- `DISABLE`: Pause parsing.\n"},"ttl":{"type":"integer","description":"The time to live (TTL) of the Private Zone Record.\n"},"type":{"type":"string","description":"The type of the Private Zone Record.\n"},"value":{"type":"string","description":"The value of the Private Zone Record.\n"}},"type":"object","required":["id","priority","recordId","remark","resourceRecord","rr","status","ttl","type","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:pvtz/getZonesZone:getZonesZone":{"properties":{"bindVpcs":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/getZonesZoneBindVpc:getZonesZoneBindVpc"},"description":"The VPCs associated with the zone. **Note:** \u003cspan pulumi-lang-nodejs=\"`bindVpcs`\" pulumi-lang-dotnet=\"`BindVpcs`\" pulumi-lang-go=\"`bindVpcs`\" pulumi-lang-python=\"`bind_vpcs`\" pulumi-lang-yaml=\"`bindVpcs`\" pulumi-lang-java=\"`bindVpcs`\"\u003e`bind_vpcs`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"createTimestamp":{"type":"integer","description":"The time when the zone was created.\n"},"creationTime":{"type":"string"},"id":{"type":"string","description":"The ID of the Private Zone.\n"},"isPtr":{"type":"boolean","description":"Indicates whether the zone is a reverse lookup zone.\n"},"name":{"type":"string","description":"The Name of the Zone.\n"},"proxyPattern":{"type":"string","description":"Indicates whether the recursive resolution proxy for subdomain names is enabled.\n"},"recordCount":{"type":"integer","description":"The number of Domain Name System (DNS) records added in the zone.\n"},"remark":{"type":"string","description":"The description of the zone.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the zone belongs.\n"},"slaveDns":{"type":"boolean","description":"Indicates whether the secondary Domain Name System (DNS) feature is enabled for the zone. **Note:** \u003cspan pulumi-lang-nodejs=\"`slaveDns`\" pulumi-lang-dotnet=\"`SlaveDns`\" pulumi-lang-go=\"`slaveDns`\" pulumi-lang-python=\"`slave_dns`\" pulumi-lang-yaml=\"`slaveDns`\" pulumi-lang-java=\"`slaveDns`\"\u003e`slave_dns`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"updateTime":{"type":"string"},"updateTimestamp":{"type":"integer","description":"The time when the DNS record was updated.\n"},"zoneId":{"type":"string","description":"The ID of the Zone.\n"},"zoneName":{"type":"string","description":"The Name of the Private Zone.\n"}},"type":"object","required":["bindVpcs","createTimestamp","creationTime","id","isPtr","name","proxyPattern","recordCount","remark","resourceGroupId","slaveDns","updateTime","updateTimestamp","zoneId","zoneName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:pvtz/getZonesZoneBindVpc:getZonesZoneBindVpc":{"properties":{"regionId":{"type":"string","description":"The region ID of the VPC.\n"},"regionName":{"type":"string","description":"The name of the region where the VPC resides.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vpcName":{"type":"string","description":"The Name of the VPC.\n"}},"type":"object","required":["regionId","regionName","vpcId","vpcName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:quickbi/getUsersUser:getUsersUser":{"properties":{"accountId":{"type":"string","description":"Alibaba Cloud account ID.\n"},"accountName":{"type":"string","description":"An Alibaba Cloud account, Alibaba Cloud name.\n"},"adminUser":{"type":"boolean","description":"Whether it is the administrator. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"authAdminUser":{"type":"boolean","description":"Whether this is a permissions administrator. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"email":{"type":"string","description":"The email of the user.\n"},"id":{"type":"string","description":"The ID of the User.\n"},"nickName":{"type":"string","description":"The nickname of the user.\n"},"phone":{"type":"string","description":"The phone number of the user.\n"},"userId":{"type":"string","description":"The ID of the User.\n"},"userType":{"type":"string","description":"The members of the organization of the type of role separately. Valid values: `Analyst`, `Developer` and `Visitor`.\n"}},"type":"object","required":["accountId","accountName","adminUser","authAdminUser","email","id","nickName","phone","userId","userType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:quotas/ApplicationInfoDimension:ApplicationInfoDimension":{"properties":{"key":{"type":"string","willReplaceOnChanges":true},"value":{"type":"string","willReplaceOnChanges":true}},"type":"object"},"alicloud:quotas/QuotaAlarmQuotaDimension:QuotaAlarmQuotaDimension":{"properties":{"key":{"type":"string","description":"The Key of quota_dimensions.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The Value of quota_dimensions.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:quotas/QuotaApplicationDimension:QuotaApplicationDimension":{"properties":{"key":{"type":"string","description":"The key of the dimension. You must configure `dimensions.N.key` and `dimensions.N.value` at the same time. The value range of N varies based on the number of dimensions that are supported by the related Alibaba Cloud service. You can call the [ListProductQuotaDimensions](https://next.api.aliyun.com/document/quotas/2020-05-10/ListProductQuotaDimensions) operation to query the dimensions that are supported by an Alibaba Cloud service. The number of elements in the returned array is N.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The value of the dimension. You must configure `dimensions.N.key` and `dimensions.N.value` at the same time. The value range of N varies based on the number of dimensions that are supported by the related Alibaba Cloud service. You can call the [ListProductQuotaDimensions](https://next.api.aliyun.com/document/quotas/2020-05-10/ListProductQuotaDimensions) operation to query the dimensions that are supported by an Alibaba Cloud service. The number of elements in the returned array is N.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:quotas/TemplateApplicationsDimension:TemplateApplicationsDimension":{"properties":{"key":{"type":"string","description":"Quota dimension Key.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"Quota dimension Value.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:quotas/TemplateApplicationsQuotaApplicationDetail:TemplateApplicationsQuotaApplicationDetail":{"properties":{"aliyunUid":{"type":"string","description":"Alibaba Cloud account (primary account).\n"},"applicationId":{"type":"string","description":"The ID of the quota promotion request.\n"},"approveValue":{"type":"number","description":"The approved quota value of the quota increase request.\n"},"auditReason":{"type":"string","description":"Approval comments on quota increase applications.\n"},"dimensions":{"type":"object","additionalProperties":{"type":"string"},"description":"Quota dimension. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below.\n"},"envLanguage":{"type":"string","description":"The language of the quota application result notification. Value:\n- zh (default): Chinese.\n- en: English.\n"},"noticeType":{"type":"integer","description":"Whether to send notification of quota application result. Value:\n- 0 (default): No.\n- 3: Yes.\n"},"period":{"$ref":"#/types/alicloud:quotas/TemplateApplicationsQuotaApplicationDetailPeriod:TemplateApplicationsQuotaApplicationDetailPeriod","description":"Quota calculation period.\n"},"quotaArn":{"type":"string","description":"Quota ARN.\n"},"quotaDescription":{"type":"string","description":"The quota description.\n"},"quotaName":{"type":"string","description":"The quota name.\n"},"quotaUnit":{"type":"string","description":"Quota unit.\n"},"reason":{"type":"string","description":"Reason for quota application.\n\u003e **NOTE:**  The quota request is approved by the technical support of each cloud service. If you want to increase the chance of passing, please fill in a reasonable application value and detailed application reasons when applying for quota.\n"},"status":{"type":"string","description":"The approval status of the quota promotion application. Value:\n- Disagree: reject.\n- Approve: approved.\n- Process: under review.\n- Cancel: Closed.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["aliyunUid","applicationId","approveValue","auditReason","dimensions","envLanguage","noticeType","period","quotaArn","quotaDescription","quotaName","quotaUnit","reason","status"]}}},"alicloud:quotas/TemplateApplicationsQuotaApplicationDetailPeriod:TemplateApplicationsQuotaApplicationDetailPeriod":{"properties":{"periodUnit":{"type":"string","description":"Quota calculation cycle unit.\n"},"periodValue":{"type":"integer","description":"The quota calculation period value.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["periodUnit","periodValue"]}}},"alicloud:quotas/TemplateQuotaDimension:TemplateQuotaDimension":{"properties":{"key":{"type":"string","description":"The Key of quota_dimensions.\n"},"value":{"type":"string","description":"The Value of quota_dimensions.\n"}},"type":"object"},"alicloud:quotas/getApplicationInfosApplication:getApplicationInfosApplication":{"properties":{"applicationId":{"type":"string"},"approveValue":{"type":"string"},"auditReason":{"type":"string"},"desireValue":{"type":"number"},"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/getApplicationInfosApplicationDimension:getApplicationInfosApplicationDimension"}},"effectiveTime":{"type":"string"},"expireTime":{"type":"string"},"id":{"type":"string"},"noticeType":{"type":"integer"},"productCode":{"type":"string"},"quotaActionCode":{"type":"string"},"quotaDescription":{"type":"string"},"quotaName":{"type":"string"},"quotaUnit":{"type":"string"},"reason":{"type":"string"},"status":{"type":"string"}},"type":"object","required":["applicationId","approveValue","auditReason","desireValue","dimensions","effectiveTime","expireTime","id","noticeType","productCode","quotaActionCode","quotaDescription","quotaName","quotaUnit","reason","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:quotas/getApplicationInfosApplicationDimension:getApplicationInfosApplicationDimension":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:quotas/getApplicationInfosDimension:getApplicationInfosDimension":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"alicloud:quotas/getQuotaAlarmsAlarm:getQuotaAlarmsAlarm":{"properties":{"alarmId":{"type":"string","description":"The first ID of the resource.\n"},"id":{"type":"string","description":"The ID of the Quota Alarm.\n"},"productCode":{"type":"string","description":"The Product Code.\n"},"quotaActionCode":{"type":"string","description":"The Quota Action Code.\n"},"quotaAlarmName":{"type":"string","description":"The name of Quota Alarm.\n"},"quotaDimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/getQuotaAlarmsAlarmQuotaDimension:getQuotaAlarmsAlarmQuotaDimension"},"description":"The Quota Dimensions.\n"},"threshold":{"type":"number","description":"The threshold of Quota Alarm.\n"},"thresholdPercent":{"type":"number","description":"The threshold percent of Quota Alarm.\n"},"webHook":{"type":"string","description":"The WebHook of Quota Alarm.\n"}},"type":"object","required":["alarmId","id","productCode","quotaActionCode","quotaAlarmName","quotaDimensions","threshold","thresholdPercent","webHook"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:quotas/getQuotaAlarmsAlarmQuotaDimension:getQuotaAlarmsAlarmQuotaDimension":{"properties":{"key":{"type":"string","description":"The key of quota_dimensions.\n"},"value":{"type":"string","description":"The value of quota_dimensions.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:quotas/getQuotaAlarmsQuotaDimension:getQuotaAlarmsQuotaDimension":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"alicloud:quotas/getQuotaApplicationsApplication:getQuotaApplicationsApplication":{"properties":{"applicationId":{"type":"string","description":"The first ID of the resource.\n"},"approveValue":{"type":"string","description":"The approve value.\n"},"auditReason":{"type":"string","description":"The audit reason.\n"},"desireValue":{"type":"number","description":"The desire value of the quota application.\n"},"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/getQuotaApplicationsApplicationDimension:getQuotaApplicationsApplicationDimension"},"description":"The quota dimensions.\n"},"effectiveTime":{"type":"string","description":"The effective time.\n"},"expireTime":{"type":"string","description":"The expire time.\n"},"id":{"type":"string","description":"The ID of the Application Info.\n"},"noticeType":{"type":"integer","description":"The notice type.\n"},"productCode":{"type":"string","description":"The product code.\n"},"quotaActionCode":{"type":"string","description":"The ID of quota action..\n"},"quotaDescription":{"type":"string","description":"The description of the quota.\n"},"quotaName":{"type":"string","description":"The name of the quota.\n"},"quotaUnit":{"type":"string","description":"The quota unit.\n"},"reason":{"type":"string","description":"The reason of the quota application.\n"},"status":{"type":"string","description":"The status of the quota application.\n"}},"type":"object","required":["applicationId","approveValue","auditReason","desireValue","dimensions","effectiveTime","expireTime","id","noticeType","productCode","quotaActionCode","quotaDescription","quotaName","quotaUnit","reason","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:quotas/getQuotaApplicationsApplicationDimension:getQuotaApplicationsApplicationDimension":{"properties":{"key":{"type":"string","description":"The key of dimensions.\n"},"value":{"type":"string","description":"The value of dimensions.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:quotas/getQuotaApplicationsDimension:getQuotaApplicationsDimension":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"alicloud:quotas/getQuotasDimension:getQuotasDimension":{"properties":{"key":{"type":"string","description":"The key of dimensions.\n"},"value":{"type":"string","description":"The value of dimensions.\n"}},"type":"object"},"alicloud:quotas/getQuotasQuota:getQuotasQuota":{"properties":{"adjustable":{"type":"boolean","description":"Is the quota adjustable.\n"},"applicableRanges":{"type":"array","items":{"type":"string"},"description":"The range of quota adjustment.\n"},"applicableType":{"type":"string","description":"The type of quota.\n"},"consumable":{"type":"boolean","description":"Show used quota.\n"},"id":{"type":"string","description":"The ID of the Quota.\n"},"quotaActionCode":{"type":"string","description":"The quota action code.\n"},"quotaDescription":{"type":"string","description":"The quota description.\n"},"quotaName":{"type":"string","description":"The quota name.\n"},"quotaType":{"type":"string","description":"The quota type.\n"},"quotaUnit":{"type":"string","description":"The quota unit.\n"},"totalQuota":{"type":"number","description":"TotalQuota.\n"},"totalUsage":{"type":"number","description":"The total of usage.\n"},"unadjustableDetail":{"type":"string","description":"The unadjustable detail.\n"}},"type":"object","required":["adjustable","applicableRanges","applicableType","consumable","id","quotaActionCode","quotaDescription","quotaName","quotaType","quotaUnit","totalQuota","totalUsage","unadjustableDetail"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:quotas/getTemplateApplicationsApplication:getTemplateApplicationsApplication":{"properties":{"aliyunUids":{"type":"array","items":{"type":"string"},"description":"The list of Alibaba Cloud accounts (primary accounts) of the resource directory members to which the quota is applied.\u003e Only 50 members can apply for quota increase in batch at a time. For more information about the members of the resource directory, see Query the list of all members in the resource directory.\n"},"applyTime":{"type":"string","description":"The UTC time of the quota increase application.\n"},"auditStatusVos":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/getTemplateApplicationsApplicationAuditStatusVo:getTemplateApplicationsApplicationAuditStatusVo"},"description":"Quantity of requisitions in different approval statuses.\n"},"batchQuotaApplicationId":{"type":"string","description":"The ID of the quota application batch.\n"},"desireValue":{"type":"number","description":"The value of the quota request.\u003e The quota request is approved by the technical support of each cloud service. If you want to increase the chance of passing, please fill in a reasonable application value and detailed application reasons when applying for quota.\n"},"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/getTemplateApplicationsApplicationDimension:getTemplateApplicationsApplicationDimension"},"description":"Quota dimension.\n"},"effectiveTime":{"type":"string","description":"The UTC time when the quota takes effect. This parameter applies only to the equity quota (WhiteListLabel).\u003e If the current account does not select the effective time, the default is the submission time.\n"},"expireTime":{"type":"string","description":"The UTC time when the quota expires. This parameter applies only to the equity quota (WhiteListLabel).\u003e If No Expiration Time is selected for the current account, the expiration time is 99 years from the effective time of the current quota.\n"},"id":{"type":"string","description":"The ID of the quota application batch.\n"},"productCode":{"type":"string","description":"Cloud service name abbreviation.\u003e For more information about cloud services that support quota centers, see Cloud services that support quota centers.\n"},"quotaActionCode":{"type":"string","description":"The quota ID.\n"},"quotaCategory":{"type":"string","description":"The quota type. Value: `CommonQuota`, `FlowControl` and `WhiteListLabel`.\n"},"reason":{"type":"string","description":"Reason for quota application.\u003e The quota request is approved by the technical support of each cloud service. If you want to increase the chance of passing, please fill in a reasonable application value and detailed application reasons when applying for quota.\n"}},"type":"object","required":["aliyunUids","applyTime","auditStatusVos","batchQuotaApplicationId","desireValue","dimensions","effectiveTime","expireTime","id","productCode","quotaActionCode","quotaCategory","reason"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:quotas/getTemplateApplicationsApplicationAuditStatusVo:getTemplateApplicationsApplicationAuditStatusVo":{"properties":{"count":{"type":"integer","description":"Approval document quantity.\n"},"status":{"type":"string","description":"The approval status of the quota promotion application. Value:-Disagree: reject.-Approve: approved.-Process: under review.-Cancel: Closed.\n"}},"type":"object","required":["count","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:quotas/getTemplateApplicationsApplicationDimension:getTemplateApplicationsApplicationDimension":{"properties":{"key":{"type":"string","description":"Quota dimension Key.\n"},"value":{"type":"string","description":"Quota dimension Value.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ram/PolicyStatement:PolicyStatement":{"properties":{"actions":{"type":"array","items":{"type":"string"},"description":"(It has been deprecated since version 1.49.0, and use field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e to replace.) List of operations for the \u003cspan pulumi-lang-nodejs=\"`resource`\" pulumi-lang-dotnet=\"`Resource`\" pulumi-lang-go=\"`resource`\" pulumi-lang-python=\"`resource`\" pulumi-lang-yaml=\"`resource`\" pulumi-lang-java=\"`resource`\"\u003e`resource`\u003c/span\u003e. The format of each item in this list is `${service}:${action_name}`, such as `oss:ListBuckets` and `ecs:Describe*`. The `${service}` can be \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oss`\" pulumi-lang-dotnet=\"`Oss`\" pulumi-lang-go=\"`oss`\" pulumi-lang-python=\"`oss`\" pulumi-lang-yaml=\"`oss`\" pulumi-lang-java=\"`oss`\"\u003e`oss`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ots`\" pulumi-lang-dotnet=\"`Ots`\" pulumi-lang-go=\"`ots`\" pulumi-lang-python=\"`ots`\" pulumi-lang-yaml=\"`ots`\" pulumi-lang-java=\"`ots`\"\u003e`ots`\u003c/span\u003e and so on, the `${action_name}` refers to the name of an api interface which related to the `${service}`.\n"},"effect":{"type":"string","description":"(It has been deprecated since version 1.49.0, and use field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e to replace.) This parameter indicates whether or not the \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e is allowed. Valid values are `Allow` and `Deny`.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"(It has been deprecated since version 1.49.0, and use field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e to replace.) List of specific objects which will be authorized. The format of each item in this list is `acs:${service}:${region}:${account_id}:${relative_id}`, such as `acs:ecs:*:*:instance/inst-002` and `acs:oss:*:1234567890000:mybucket`. The `${service}` can be \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oss`\" pulumi-lang-dotnet=\"`Oss`\" pulumi-lang-go=\"`oss`\" pulumi-lang-python=\"`oss`\" pulumi-lang-yaml=\"`oss`\" pulumi-lang-java=\"`oss`\"\u003e`oss`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ots`\" pulumi-lang-dotnet=\"`Ots`\" pulumi-lang-go=\"`ots`\" pulumi-lang-python=\"`ots`\" pulumi-lang-yaml=\"`ots`\" pulumi-lang-java=\"`ots`\"\u003e`ots`\u003c/span\u003e and so on, the `${region}` is the region info which can use `*` replace when it is not supplied, the `${account_id}` refers to someone`s Alicloud account id or you can use `*` to replace, the `${relative_id}` is the resource description section which related to the `${service}`.\n"}},"type":"object","required":["actions","effect","resources"]},"alicloud:ram/getGroupsGroup:getGroupsGroup":{"properties":{"comments":{"type":"string","description":"Comments of the group.\n"},"name":{"type":"string","description":"Name of the group.\n"}},"type":"object","required":["comments","name"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ram/getPoliciesPolicy:getPoliciesPolicy":{"properties":{"attachmentCount":{"type":"integer","description":"The number of references to the policy.\n"},"createDate":{"type":"string","description":"The time when the policy was created.\n"},"defaultVersion":{"type":"string","description":"The default version of the policy.\n"},"description":{"type":"string","description":"The description of the policy.\n"},"document":{"type":"string","description":"The document of the policy. **Note:** \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"id":{"type":"string","description":"(Available since v1.114.0) The ID of the Policy.\n"},"name":{"type":"string","description":"The name of the policy.\n"},"policyDocument":{"type":"string","description":"(Available since v1.114.0) The document of the policy. **Note:** \u003cspan pulumi-lang-nodejs=\"`policyDocument`\" pulumi-lang-dotnet=\"`PolicyDocument`\" pulumi-lang-go=\"`policyDocument`\" pulumi-lang-python=\"`policy_document`\" pulumi-lang-yaml=\"`policyDocument`\" pulumi-lang-java=\"`policyDocument`\"\u003e`policy_document`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"policyName":{"type":"string","description":"(Available since v1.114.0) The name of the policy.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"The type of the policy. Valid values: `System` and `Custom`.\n"},"updateDate":{"type":"string","description":"The time when the policy was modified.\n"},"userName":{"type":"string","description":"The name of the RAM user.\n"},"versionId":{"type":"string","description":"(Available since v1.114.0) The ID of the default policy version. **Note:** \u003cspan pulumi-lang-nodejs=\"`versionId`\" pulumi-lang-dotnet=\"`VersionId`\" pulumi-lang-go=\"`versionId`\" pulumi-lang-python=\"`version_id`\" pulumi-lang-yaml=\"`versionId`\" pulumi-lang-java=\"`versionId`\"\u003e`version_id`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object","required":["attachmentCount","createDate","defaultVersion","description","document","id","name","policyDocument","policyName","tags","type","updateDate","userName","versionId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ram/getPolicyDocumentStatement:getPolicyDocumentStatement":{"properties":{"actions":{"type":"array","items":{"type":"string"},"description":"Action of the RAM policy document. If you want to create a RAM role policy document, it must be `[\"sts:AssumeRole\"]`.\n"},"conditions":{"type":"array","items":{"$ref":"#/types/alicloud:ram/getPolicyDocumentStatementCondition:getPolicyDocumentStatementCondition"},"description":"Specifies the condition that are required for a policy to take effect. See \u003cspan pulumi-lang-nodejs=\"`condition`\" pulumi-lang-dotnet=\"`Condition`\" pulumi-lang-go=\"`condition`\" pulumi-lang-python=\"`condition`\" pulumi-lang-yaml=\"`condition`\" pulumi-lang-java=\"`condition`\"\u003e`condition`\u003c/span\u003e below.\n"},"effect":{"type":"string","description":"This parameter indicates whether or not the \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e is allowed. Valid values are `Allow` and `Deny`. Default value is `Allow`. If you want to create a RAM role policy document, it must be `Allow`.\n"},"principals":{"type":"array","items":{"$ref":"#/types/alicloud:ram/getPolicyDocumentStatementPrincipal:getPolicyDocumentStatementPrincipal"},"description":"Principal of the RAM policy document. If you want to create a RAM role policy document, it must be set. See \u003cspan pulumi-lang-nodejs=\"`principal`\" pulumi-lang-dotnet=\"`Principal`\" pulumi-lang-go=\"`principal`\" pulumi-lang-python=\"`principal`\" pulumi-lang-yaml=\"`principal`\" pulumi-lang-java=\"`principal`\"\u003e`principal`\u003c/span\u003e below.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"List of specific objects which will be authorized. If you want to create a RAM policy document, it must be set.\n"}},"type":"object","required":["actions"]},"alicloud:ram/getPolicyDocumentStatementCondition:getPolicyDocumentStatementCondition":{"properties":{"operator":{"type":"string","description":"The operator of the condition.\n"},"values":{"type":"array","items":{"type":"string"},"description":"The values of the condition.\n"},"variable":{"type":"string","description":"The variable of the condition.\n"}},"type":"object","required":["operator","values","variable"]},"alicloud:ram/getPolicyDocumentStatementPrincipal:getPolicyDocumentStatementPrincipal":{"properties":{"entity":{"type":"string","description":"The trusted entity. Valid values: `RAM`, `Service` and `Federated`.\n"},"identifiers":{"type":"array","items":{"type":"string"},"description":"The identifiers of the principal.\n"}},"type":"object","required":["entity","identifiers"]},"alicloud:ram/getRolePolicyAttachmentsAttachment:getRolePolicyAttachmentsAttachment":{"properties":{"attachDate":{"type":"string","description":"The time when the role was attached to the policy.\n"},"description":{"type":"string","description":"The policy description.\n"},"id":{"type":"string","description":"The ID of the resource supplied above. The value is formulated as `role:\u003cpolicy_name\u003e:\u003cpolicy_type\u003e:\u003crole_name\u003e`.\n"},"policyName":{"type":"string","description":"The name of the policy.\n"},"policyType":{"type":"string","description":"Policy type.- Custom: Custom policy.- System: System policy.\n"}},"type":"object","required":["attachDate","description","id","policyName","policyType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ram/getRolesRole:getRolesRole":{"properties":{"arn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the RAM role.\n"},"assumeRolePolicyDocument":{"type":"string","description":"The policy that specifies the trusted entity to assume the RAM role.\n"},"createDate":{"type":"string","description":"The creation time.\n"},"description":{"type":"string","description":"The description of the RAM role.\n"},"document":{"type":"string","description":"The policy that specifies the trusted entity to assume the RAM role.\n"},"id":{"type":"string","description":"The ID of the RAM role.\n"},"name":{"type":"string","description":"The name of the RAM role.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"updateDate":{"type":"string","description":"The update time.\n"}},"type":"object","required":["arn","assumeRolePolicyDocument","createDate","description","document","id","name","tags","updateDate"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ram/getSamlProvidersProvider:getSamlProvidersProvider":{"properties":{"arn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the IdP.\n"},"description":{"type":"string","description":"The description of SAML Provider.\n"},"encodedsamlMetadataDocument":{"type":"string","description":"The encodedsaml metadata document.\n"},"id":{"type":"string","description":"The ID of the SAML Provider.\n"},"samlProviderName":{"type":"string","description":"The saml provider name.\n"},"updateDate":{"type":"string","description":"The update time.\n"}},"type":"object","required":["arn","description","encodedsamlMetadataDocument","id","samlProviderName","updateDate"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ram/getSystemPolicysPolicy:getSystemPolicysPolicy":{"properties":{"attachmentCount":{"type":"integer","description":"Number of references.\n"},"createTime":{"type":"string","description":"Creation time.\n"},"description":{"type":"string","description":"The permission policy description.\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"policyName":{"type":"string","description":"The permission policy name.\n"},"policyType":{"type":"string","description":"Permission policy type.\n"},"updateDate":{"type":"string","description":"Modification time.\n"}},"type":"object","required":["attachmentCount","createTime","description","id","policyName","policyType","updateDate"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ram/getUsersUser:getUsersUser":{"properties":{"createDate":{"type":"string","description":"Creation date of the user.\n"},"id":{"type":"string","description":"The original id is user's name, but it is user id in 1.37.0+.\n"},"lastLoginDate":{"type":"string","description":"(Removed) Last login date of the user. Removed from version 1.79.0.\n"},"name":{"type":"string","description":"Name of the user.\n"}},"type":"object","required":["createDate","id","lastLoginDate","name"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rdc/getOrganizationsOrganization:getOrganizationsOrganization":{"properties":{"id":{"type":"string","description":"The ID of the Organization.\n"},"organizationId":{"type":"string","description":"The first ID of the resource.\n"},"organizationName":{"type":"string","description":"Company name.\n"}},"type":"object","required":["id","organizationId","organizationName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/AiInstanceAuthConfigList:AiInstanceAuthConfigList":{"properties":{"name":{"type":"string","description":"The configuration item name. For more information, see [How to use it](https://www.alibabacloud.com/help/en/rds/apsaradb-rds-for-postgresql/authentication).\n"},"value":{"type":"string","description":"The value of the configuration item.\n"}},"type":"object"},"alicloud:rds/AiInstanceStorageConfigList:AiInstanceStorageConfigList":{"properties":{"name":{"type":"string","description":"The configuration item name. For more information, see [How to use it](https://www.alibabacloud.com/help/en/rds/apsaradb-rds-for-postgresql/storage).\n"},"value":{"type":"string","description":"The value of the configuration item.\n"}},"type":"object"},"alicloud:rds/CustomDataDisk:CustomDataDisk":{"properties":{"category":{"type":"string","description":"Instance storage type\nlocal_ssd: local SSD disk\ncloud_essd:ESSD PL1 cloud disk\n","willReplaceOnChanges":true},"performanceLevel":{"type":"string","description":"Cloud Disk Performance\nCurrently only supports PL1\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"Instance storage space. Unit: GB.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:rds/CustomSystemDisk:CustomSystemDisk":{"properties":{"category":{"type":"string","description":"The cloud disk type of the system disk. Currently, only \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e(ESSD cloud disk) is supported.\n"},"size":{"type":"string","description":"System disk size, unit: GiB. Only ESSD PL1 is supported. Valid values range from 20 to 2048.\n"}},"type":"object"},"alicloud:rds/DbInstanceEndpointNodeItem:DbInstanceEndpointNodeItem":{"properties":{"nodeId":{"type":"string","description":"The ID of the node.\n"},"weight":{"type":"integer","description":"The weight of the node. Read requests are distributed based on the weight.Valid values: 0 to 100.\n"}},"type":"object","required":["nodeId","weight"]},"alicloud:rds/DdrInstanceParameter:DdrInstanceParameter":{"properties":{"name":{"type":"string","description":"The parameter name.\n"},"value":{"type":"string","description":"The parameter value.\n"}},"type":"object","required":["name","value"]},"alicloud:rds/DdrInstancePgHbaConf:DdrInstancePgHbaConf":{"properties":{"address":{"type":"string","description":"The IP addresses from which the specified users can access the specified databases. If you set this parameter to 0.0.0.0/0, the specified users are allowed to access the specified databases from all IP addresses.\n"},"database":{"type":"string","description":"The name of the database that the specified users are allowed to access. If you set this parameter to all, the specified users are allowed to access all databases in the instance. If you specify multiple databases, separate the database names with commas (,).\n"},"mask":{"type":"string","description":"The mask of the instance. If the value of the `Address` parameter is an IP address, you can use this parameter to specify the mask of the IP address.\n"},"method":{"type":"string","description":"The authentication method of Lightweight Directory Access Protocol (LDAP). Valid values: \u003cspan pulumi-lang-nodejs=\"`trust`\" pulumi-lang-dotnet=\"`Trust`\" pulumi-lang-go=\"`trust`\" pulumi-lang-python=\"`trust`\" pulumi-lang-yaml=\"`trust`\" pulumi-lang-java=\"`trust`\"\u003e`trust`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`reject`\" pulumi-lang-dotnet=\"`Reject`\" pulumi-lang-go=\"`reject`\" pulumi-lang-python=\"`reject`\" pulumi-lang-yaml=\"`reject`\" pulumi-lang-java=\"`reject`\"\u003e`reject`\u003c/span\u003e, `scram-sha-256`, \u003cspan pulumi-lang-nodejs=\"`md5`\" pulumi-lang-dotnet=\"`Md5`\" pulumi-lang-go=\"`md5`\" pulumi-lang-python=\"`md5`\" pulumi-lang-yaml=\"`md5`\" pulumi-lang-java=\"`md5`\"\u003e`md5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gss`\" pulumi-lang-dotnet=\"`Gss`\" pulumi-lang-go=\"`gss`\" pulumi-lang-python=\"`gss`\" pulumi-lang-yaml=\"`gss`\" pulumi-lang-java=\"`gss`\"\u003e`gss`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sspi`\" pulumi-lang-dotnet=\"`Sspi`\" pulumi-lang-go=\"`sspi`\" pulumi-lang-python=\"`sspi`\" pulumi-lang-yaml=\"`sspi`\" pulumi-lang-java=\"`sspi`\"\u003e`sspi`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ldap`\" pulumi-lang-dotnet=\"`Ldap`\" pulumi-lang-go=\"`ldap`\" pulumi-lang-python=\"`ldap`\" pulumi-lang-yaml=\"`ldap`\" pulumi-lang-java=\"`ldap`\"\u003e`ldap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`radius`\" pulumi-lang-dotnet=\"`Radius`\" pulumi-lang-go=\"`radius`\" pulumi-lang-python=\"`radius`\" pulumi-lang-yaml=\"`radius`\" pulumi-lang-java=\"`radius`\"\u003e`radius`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pam`\" pulumi-lang-dotnet=\"`Pam`\" pulumi-lang-go=\"`pam`\" pulumi-lang-python=\"`pam`\" pulumi-lang-yaml=\"`pam`\" pulumi-lang-java=\"`pam`\"\u003e`pam`\u003c/span\u003e.\n"},"option":{"type":"string","description":"Optional. The value of this parameter is based on the value of the HbaItem.N.Method parameter. In this topic, LDAP is used as an example. You must configure this parameter. For more information, see [Authentication Methods](https://www.postgresql.org/docs/11/auth-methods.html).\n"},"priorityId":{"type":"integer","description":"The priority of an AD domain. If you set this parameter to 0, the AD domain has the highest priority. Valid values: 0 to 10000. This parameter is used to identify each AD domain. When you add an AD domain, the value of the PriorityId parameter of the new AD domain cannot be the same as the value of the PriorityId parameter for any existing AD domain. When you modify or delete an AD domain, you must also modify or delete the value of the PriorityId parameter for this AD domain.\n"},"type":{"type":"string","description":"The type of connection to the instance. Valid values:\n* **host**: specifies to verify TCP/IP connections, including SSL connections and non-SSL connections.\n* **hostssl**: specifies to verify only TCP/IP connections that are established over SSL connections.\n* **hostnossl**: specifies to verify only TCP/IP connections that are established over non-SSL connections.\n\n\u003e **NOTE:** You can set this parameter to hostssl only when SSL encryption is enabled for the instance. For more information, see [Configure SSL encryption for an ApsaraDB RDS for PostgreSQL instance](https://www.alibabacloud.com/help/en/doc-detail/229518.htm).\n"},"user":{"type":"string","description":"The user that is allowed to access the instance. If you specify multiple users, separate the usernames with commas (,).\n"}},"type":"object","required":["address","database","method","priorityId","type","user"],"language":{"nodejs":{"requiredOutputs":["address","database","mask","method","option","priorityId","type","user"]}}},"alicloud:rds/InstanceBabelfishConfig:InstanceBabelfishConfig":{"properties":{"babelfishEnabled":{"type":"string","description":"specifies whether to enable the Babelfish for the instance. If you set this parameter to **true**, you enable Babelfish for the instance. If you leave this parameter empty, you disable Babelfish for the instance.\n","willReplaceOnChanges":true},"masterUserPassword":{"type":"string","description":"The password of the administrator account. The password must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. It must be 8 to 32 characters in length. The password can contain any of the following characters:! @ # $ % ^ \u0026 * () _ + - =\n","willReplaceOnChanges":true},"masterUsername":{"type":"string","description":"The name of the administrator account. The name can contain lowercase letters, digits, and underscores (_). It must start with a letter and end with a letter or digit. It can be up to 63 characters in length and cannot start with pg.\n","willReplaceOnChanges":true},"migrationMode":{"type":"string","description":"The migration mode of the instance. Valid values: **single-db** and **multi-db**.\n","willReplaceOnChanges":true}},"type":"object","required":["babelfishEnabled","masterUserPassword","masterUsername","migrationMode"]},"alicloud:rds/InstanceParameter:InstanceParameter":{"properties":{"name":{"type":"string","description":"The parameter name.\n"},"value":{"type":"string","description":"The parameter value.\n"}},"type":"object","required":["name","value"]},"alicloud:rds/InstancePgHbaConf:InstancePgHbaConf":{"properties":{"address":{"type":"string","description":"The IP addresses from which the specified users can access the specified databases. If you set this parameter to 0.0.0.0/0, the specified users are allowed to access the specified databases from all IP addresses.\n"},"database":{"type":"string","description":"The name of the database that the specified users are allowed to access. If you set this parameter to all, the specified users are allowed to access all databases in the instance. If you specify multiple databases, separate the database names with commas (,).\n"},"mask":{"type":"string","description":"The mask of the instance. If the value of the `Address` parameter is an IP address, you can use this parameter to specify the mask of the IP address.\n"},"method":{"type":"string","description":"The authentication method of Lightweight Directory Access Protocol (LDAP). Valid values: \u003cspan pulumi-lang-nodejs=\"`trust`\" pulumi-lang-dotnet=\"`Trust`\" pulumi-lang-go=\"`trust`\" pulumi-lang-python=\"`trust`\" pulumi-lang-yaml=\"`trust`\" pulumi-lang-java=\"`trust`\"\u003e`trust`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`reject`\" pulumi-lang-dotnet=\"`Reject`\" pulumi-lang-go=\"`reject`\" pulumi-lang-python=\"`reject`\" pulumi-lang-yaml=\"`reject`\" pulumi-lang-java=\"`reject`\"\u003e`reject`\u003c/span\u003e, `scram-sha-256`, \u003cspan pulumi-lang-nodejs=\"`md5`\" pulumi-lang-dotnet=\"`Md5`\" pulumi-lang-go=\"`md5`\" pulumi-lang-python=\"`md5`\" pulumi-lang-yaml=\"`md5`\" pulumi-lang-java=\"`md5`\"\u003e`md5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gss`\" pulumi-lang-dotnet=\"`Gss`\" pulumi-lang-go=\"`gss`\" pulumi-lang-python=\"`gss`\" pulumi-lang-yaml=\"`gss`\" pulumi-lang-java=\"`gss`\"\u003e`gss`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sspi`\" pulumi-lang-dotnet=\"`Sspi`\" pulumi-lang-go=\"`sspi`\" pulumi-lang-python=\"`sspi`\" pulumi-lang-yaml=\"`sspi`\" pulumi-lang-java=\"`sspi`\"\u003e`sspi`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ldap`\" pulumi-lang-dotnet=\"`Ldap`\" pulumi-lang-go=\"`ldap`\" pulumi-lang-python=\"`ldap`\" pulumi-lang-yaml=\"`ldap`\" pulumi-lang-java=\"`ldap`\"\u003e`ldap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`radius`\" pulumi-lang-dotnet=\"`Radius`\" pulumi-lang-go=\"`radius`\" pulumi-lang-python=\"`radius`\" pulumi-lang-yaml=\"`radius`\" pulumi-lang-java=\"`radius`\"\u003e`radius`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pam`\" pulumi-lang-dotnet=\"`Pam`\" pulumi-lang-go=\"`pam`\" pulumi-lang-python=\"`pam`\" pulumi-lang-yaml=\"`pam`\" pulumi-lang-java=\"`pam`\"\u003e`pam`\u003c/span\u003e.\n"},"option":{"type":"string","description":"Optional. The value of this parameter is based on the value of the HbaItem.N.Method parameter. In this topic, LDAP is used as an example. You must configure this parameter. For more information, see [Authentication Methods](https://www.postgresql.org/docs/11/auth-methods.html).\n"},"priorityId":{"type":"integer","description":"The priority of an AD domain. If you set this parameter to 0, the AD domain has the highest priority. Valid values: 0 to 10000. This parameter is used to identify each AD domain. When you add an AD domain, the value of the PriorityId parameter of the new AD domain cannot be the same as the value of the PriorityId parameter for any existing AD domain. When you modify or delete an AD domain, you must also modify or delete the value of the PriorityId parameter for this AD domain.\n"},"type":{"type":"string","description":"The type of connection to the instance. Valid values:\n* **host**: specifies to verify TCP/IP connections, including SSL connections and non-SSL connections.\n* **hostssl**: specifies to verify only TCP/IP connections that are established over SSL connections.\n* **hostnossl**: specifies to verify only TCP/IP connections that are established over non-SSL connections.\n\n\u003e **NOTE:** You can set this parameter to hostssl only when SSL encryption is enabled for the instance. For more information, see [Configure SSL encryption for an ApsaraDB RDS for PostgreSQL instance](https://www.alibabacloud.com/help/en/doc-detail/229518.htm).\n"},"user":{"type":"string","description":"The user that is allowed to access the instance. If you specify multiple users, separate the usernames with commas (,).\n"}},"type":"object","required":["address","database","method","priorityId","type","user"]},"alicloud:rds/InstanceServerlessConfig:InstanceServerlessConfig":{"properties":{"autoPause":{"type":"boolean","description":"Specifies whether to enable the smart startup and stop feature for the serverless instance. Valid values:\n- true: enables the feature.\n- false: disables the feature. This is the default value.\n\u003e - Only MySQL Serverless instances need to set this parameter. If there is no connection within 10 minutes, it will enter a paused state and automatically wake up when the connection enters.\n\u003e - Terraform does not support automatic start and stop when creating serverless instances, because the instances will automatically become STOPPED after 10 minutes. As a result, the state of the instances will be checked when the apply and other operations are executed. So pass FALSE for the current argument.\n"},"maxCapacity":{"type":"number","description":"The maximum number of RDS Capacity Units (RCUs). The value of this parameter must be greater than or equal to \u003cspan pulumi-lang-nodejs=\"`minCapacity`\" pulumi-lang-dotnet=\"`MinCapacity`\" pulumi-lang-go=\"`minCapacity`\" pulumi-lang-python=\"`min_capacity`\" pulumi-lang-yaml=\"`minCapacity`\" pulumi-lang-java=\"`minCapacity`\"\u003e`min_capacity`\u003c/span\u003e and only supports passing integers. Valid values:\n- MySQL: 1~8\n- SQLServer: 2~8\n- PostgreSQL: 1~12\n"},"minCapacity":{"type":"number","description":"The minimum number of RCUs. The value of this parameter must be less than or equal to \u003cspan pulumi-lang-nodejs=\"`maxCapacity`\" pulumi-lang-dotnet=\"`MaxCapacity`\" pulumi-lang-go=\"`maxCapacity`\" pulumi-lang-python=\"`max_capacity`\" pulumi-lang-yaml=\"`maxCapacity`\" pulumi-lang-java=\"`maxCapacity`\"\u003e`max_capacity`\u003c/span\u003e. Valid values:\n- MySQL: 0.5~8\n- SQLServer: 2~8 \\(Supports integers only\\).\n- PostgreSQL: 0.5~12\n"},"switchForce":{"type":"boolean","description":"Specifies whether to enable the forced scaling feature for the serverless instance. Valid values:\n- true: enables the feature.\n- false: disables the feature. This is the default value.\n\u003e - Only MySQL Serverless instances need to set this parameter. After enabling this parameter, there will be a flash break within 1 minute when the instance is forced to expand or shrink. Please use it with caution according to the actual situation.\n\u003e - The elastic scaling of an instance RCU usually takes effect immediately, but in some special circumstances (such as during large transaction execution), it is not possible to complete scaling immediately. In this case, this parameter can be enabled to force scaling.\n"}},"type":"object","required":["maxCapacity","minCapacity"]},"alicloud:rds/RdsCloneDbInstanceParameter:RdsCloneDbInstanceParameter":{"properties":{"name":{"type":"string","description":"The parameters name.\n"},"value":{"type":"string","description":"The parameters value.\n"}},"type":"object","required":["name","value"]},"alicloud:rds/RdsCloneDbInstancePgHbaConf:RdsCloneDbInstancePgHbaConf":{"properties":{"address":{"type":"string","description":"The IP addresses from which the specified users can access the specified databases. If you set this parameter to 0.0.0.0/0, the specified users are allowed to access the specified databases from all IP addresses.\n"},"database":{"type":"string","description":"The name of the database that the specified users are allowed to access. If you set this parameter to all, the specified users are allowed to access all databases in the instance. If you specify multiple databases, separate the database names with commas (,).\n"},"mask":{"type":"string","description":"The mask of the instance. If the value of the `Address` parameter is an IP address, you can use this parameter to specify the mask of the IP address.\n"},"method":{"type":"string","description":"The authentication method of Lightweight Directory Access Protocol (LDAP). Valid values: \u003cspan pulumi-lang-nodejs=\"`trust`\" pulumi-lang-dotnet=\"`Trust`\" pulumi-lang-go=\"`trust`\" pulumi-lang-python=\"`trust`\" pulumi-lang-yaml=\"`trust`\" pulumi-lang-java=\"`trust`\"\u003e`trust`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`reject`\" pulumi-lang-dotnet=\"`Reject`\" pulumi-lang-go=\"`reject`\" pulumi-lang-python=\"`reject`\" pulumi-lang-yaml=\"`reject`\" pulumi-lang-java=\"`reject`\"\u003e`reject`\u003c/span\u003e, `scram-sha-256`, \u003cspan pulumi-lang-nodejs=\"`md5`\" pulumi-lang-dotnet=\"`Md5`\" pulumi-lang-go=\"`md5`\" pulumi-lang-python=\"`md5`\" pulumi-lang-yaml=\"`md5`\" pulumi-lang-java=\"`md5`\"\u003e`md5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gss`\" pulumi-lang-dotnet=\"`Gss`\" pulumi-lang-go=\"`gss`\" pulumi-lang-python=\"`gss`\" pulumi-lang-yaml=\"`gss`\" pulumi-lang-java=\"`gss`\"\u003e`gss`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sspi`\" pulumi-lang-dotnet=\"`Sspi`\" pulumi-lang-go=\"`sspi`\" pulumi-lang-python=\"`sspi`\" pulumi-lang-yaml=\"`sspi`\" pulumi-lang-java=\"`sspi`\"\u003e`sspi`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ldap`\" pulumi-lang-dotnet=\"`Ldap`\" pulumi-lang-go=\"`ldap`\" pulumi-lang-python=\"`ldap`\" pulumi-lang-yaml=\"`ldap`\" pulumi-lang-java=\"`ldap`\"\u003e`ldap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`radius`\" pulumi-lang-dotnet=\"`Radius`\" pulumi-lang-go=\"`radius`\" pulumi-lang-python=\"`radius`\" pulumi-lang-yaml=\"`radius`\" pulumi-lang-java=\"`radius`\"\u003e`radius`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pam`\" pulumi-lang-dotnet=\"`Pam`\" pulumi-lang-go=\"`pam`\" pulumi-lang-python=\"`pam`\" pulumi-lang-yaml=\"`pam`\" pulumi-lang-java=\"`pam`\"\u003e`pam`\u003c/span\u003e.\n"},"option":{"type":"string","description":"Optional. The value of this parameter is based on the value of the HbaItem.N.Method parameter. In this topic, LDAP is used as an example. You must configure this parameter. For more information, see [Authentication Methods](https://www.postgresql.org/docs/11/auth-methods.html).\n"},"priorityId":{"type":"integer","description":"The priority of an AD domain. If you set this parameter to 0, the AD domain has the highest priority. Valid values: 0 to 10000. This parameter is used to identify each AD domain. When you add an AD domain, the value of the PriorityId parameter of the new AD domain cannot be the same as the value of the PriorityId parameter for any existing AD domain. When you modify or delete an AD domain, you must also modify or delete the value of the PriorityId parameter for this AD domain.\n"},"type":{"type":"string","description":"The type of connection to the instance. Valid values:\n* **host**: specifies to verify TCP/IP connections, including SSL connections and non-SSL connections.\n* **hostssl**: specifies to verify only TCP/IP connections that are established over SSL connections.\n* **hostnossl**: specifies to verify only TCP/IP connections that are established over non-SSL connections.\n\n\u003e **NOTE:** You can set this parameter to hostssl only when SSL encryption is enabled for the instance. For more information, see [Configure SSL encryption for an ApsaraDB RDS for PostgreSQL instance](https://www.alibabacloud.com/help/en/doc-detail/229518.htm).\n"},"user":{"type":"string","description":"The user that is allowed to access the instance. If you specify multiple users, separate the usernames with commas (,).\n"}},"type":"object","required":["address","database","method","priorityId","type","user"]},"alicloud:rds/RdsCloneDbInstanceServerlessConfig:RdsCloneDbInstanceServerlessConfig":{"properties":{"autoPause":{"type":"boolean","description":"Specifies whether to enable the smart startup and stop feature for the serverless instance. Valid values:\n- true: enables the feature.\n- false: disables the feature. This is the default value.\n\u003e - Only MySQL Serverless instances need to set this parameter. If there is no connection within 10 minutes, it will enter a paused state and automatically wake up when the connection enters.\n"},"maxCapacity":{"type":"number","description":"The maximum number of RDS Capacity Units (RCUs). The value of this parameter must be greater than or equal to \u003cspan pulumi-lang-nodejs=\"`minCapacity`\" pulumi-lang-dotnet=\"`MinCapacity`\" pulumi-lang-go=\"`minCapacity`\" pulumi-lang-python=\"`min_capacity`\" pulumi-lang-yaml=\"`minCapacity`\" pulumi-lang-java=\"`minCapacity`\"\u003e`min_capacity`\u003c/span\u003e and only supports passing integers. Valid values:\n- MySQL: 1~8\n- SQLServer: 2~8\n- PostgreSQL: 1~12\n"},"minCapacity":{"type":"number","description":"The minimum number of RCUs. The value of this parameter must be less than or equal to \u003cspan pulumi-lang-nodejs=\"`maxCapacity`\" pulumi-lang-dotnet=\"`MaxCapacity`\" pulumi-lang-go=\"`maxCapacity`\" pulumi-lang-python=\"`max_capacity`\" pulumi-lang-yaml=\"`maxCapacity`\" pulumi-lang-java=\"`maxCapacity`\"\u003e`max_capacity`\u003c/span\u003e. Valid values:\n- MySQL: 0.5~8\n- SQLServer: 2~8 \\(Supports integers only\\).\n- PostgreSQL: 0.5~12\n"},"switchForce":{"type":"boolean","description":"Specifies whether to enable the forced scaling feature for the serverless instance. Valid values:\n- true: enables the feature.\n- false: disables the feature. This is the default value.\n\u003e - Only MySQL Serverless instances need to set this parameter. After enabling this parameter, there will be a flash break within 1 minute when the instance is forced to expand or shrink. Please use it with caution according to the actual situation.\n\u003e - The elastic scaling of an instance RCU usually takes effect immediately, but in some special circumstances (such as during large transaction execution), it is not possible to complete scaling immediately. In this case, this parameter can be enabled to force scaling.\n"}},"type":"object","required":["maxCapacity","minCapacity"]},"alicloud:rds/RdsDbProxyReadOnlyInstanceWeight:RdsDbProxyReadOnlyInstanceWeight":{"properties":{"instanceId":{"type":"string","description":"The Id of the instance and its read-only instances that can run database.\n"},"weight":{"type":"string","description":"Weight of instances that can run the database and their read-only instances. Read weights increase in increments of 100, and the maximum read weight is 10000.\n"}},"type":"object","required":["instanceId","weight"]},"alicloud:rds/RdsParameterGroupParamDetail:RdsParameterGroupParamDetail":{"properties":{"paramName":{"type":"string","description":"The name of a parameter.\n"},"paramValue":{"type":"string","description":"The value of a parameter.\n"}},"type":"object","required":["paramName","paramValue"]},"alicloud:rds/RdsUpgradeDbInstanceParameter:RdsUpgradeDbInstanceParameter":{"properties":{"name":{"type":"string","description":"The parameter name.\n"},"value":{"type":"string","description":"The parameter value.\n"}},"type":"object","required":["name","value"]},"alicloud:rds/RdsUpgradeDbInstancePgHbaConf:RdsUpgradeDbInstancePgHbaConf":{"properties":{"address":{"type":"string","description":"The IP addresses from which the specified users can access the specified databases. If you set this parameter to 0.0.0.0/0, the specified users are allowed to access the specified databases from all IP addresses.\n"},"database":{"type":"string","description":"The name of the database that the specified users are allowed to access. If you set this parameter to all, the specified users are allowed to access all databases in the instance. If you specify multiple databases, separate the database names with commas (,).\n"},"mask":{"type":"string","description":"The mask of the instance. If the value of the `Address` parameter is an IP address, you can use this parameter to specify the mask of the IP address.\n"},"method":{"type":"string","description":"The authentication method of Lightweight Directory Access Protocol (LDAP). Valid values: \u003cspan pulumi-lang-nodejs=\"`trust`\" pulumi-lang-dotnet=\"`Trust`\" pulumi-lang-go=\"`trust`\" pulumi-lang-python=\"`trust`\" pulumi-lang-yaml=\"`trust`\" pulumi-lang-java=\"`trust`\"\u003e`trust`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`reject`\" pulumi-lang-dotnet=\"`Reject`\" pulumi-lang-go=\"`reject`\" pulumi-lang-python=\"`reject`\" pulumi-lang-yaml=\"`reject`\" pulumi-lang-java=\"`reject`\"\u003e`reject`\u003c/span\u003e, `scram-sha-256`, \u003cspan pulumi-lang-nodejs=\"`md5`\" pulumi-lang-dotnet=\"`Md5`\" pulumi-lang-go=\"`md5`\" pulumi-lang-python=\"`md5`\" pulumi-lang-yaml=\"`md5`\" pulumi-lang-java=\"`md5`\"\u003e`md5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gss`\" pulumi-lang-dotnet=\"`Gss`\" pulumi-lang-go=\"`gss`\" pulumi-lang-python=\"`gss`\" pulumi-lang-yaml=\"`gss`\" pulumi-lang-java=\"`gss`\"\u003e`gss`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sspi`\" pulumi-lang-dotnet=\"`Sspi`\" pulumi-lang-go=\"`sspi`\" pulumi-lang-python=\"`sspi`\" pulumi-lang-yaml=\"`sspi`\" pulumi-lang-java=\"`sspi`\"\u003e`sspi`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ldap`\" pulumi-lang-dotnet=\"`Ldap`\" pulumi-lang-go=\"`ldap`\" pulumi-lang-python=\"`ldap`\" pulumi-lang-yaml=\"`ldap`\" pulumi-lang-java=\"`ldap`\"\u003e`ldap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`radius`\" pulumi-lang-dotnet=\"`Radius`\" pulumi-lang-go=\"`radius`\" pulumi-lang-python=\"`radius`\" pulumi-lang-yaml=\"`radius`\" pulumi-lang-java=\"`radius`\"\u003e`radius`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pam`\" pulumi-lang-dotnet=\"`Pam`\" pulumi-lang-go=\"`pam`\" pulumi-lang-python=\"`pam`\" pulumi-lang-yaml=\"`pam`\" pulumi-lang-java=\"`pam`\"\u003e`pam`\u003c/span\u003e.\n"},"option":{"type":"string","description":"Optional. The value of this parameter is based on the value of the HbaItem.N.Method parameter. In this topic, LDAP is used as an example. You must configure this parameter. For more information, see [Authentication Methods](https://www.postgresql.org/docs/11/auth-methods.html).\n"},"priorityId":{"type":"integer","description":"The priority of an AD domain. If you set this parameter to 0, the AD domain has the highest priority. Valid values: 0 to 10000. This parameter is used to identify each AD domain. When you add an AD domain, the value of the PriorityId parameter of the new AD domain cannot be the same as the value of the PriorityId parameter for any existing AD domain. When you modify or delete an AD domain, you must also modify or delete the value of the PriorityId parameter for this AD domain.\n"},"type":{"type":"string","description":"The type of connection to the instance. Valid values:\n* **host**: specifies to verify TCP/IP connections, including SSL connections and non-SSL connections.\n* **hostssl**: specifies to verify only TCP/IP connections that are established over SSL connections.\n* **hostnossl**: specifies to verify only TCP/IP connections that are established over non-SSL connections.\n\n\u003e **NOTE:** You can set this parameter to hostssl only when SSL encryption is enabled for the instance. For more information, see [Configure SSL encryption for an ApsaraDB RDS for PostgreSQL instance](https://www.alibabacloud.com/help/en/doc-detail/229518.htm).\n"},"user":{"type":"string","description":"The user that is allowed to access the instance. If you specify multiple users, separate the usernames with commas (,).\n"}},"type":"object","required":["address","database","method","priorityId","type","user"]},"alicloud:rds/ReadOnlyInstanceParameter:ReadOnlyInstanceParameter":{"properties":{"name":{"type":"string","description":"The parameter name.\n"},"value":{"type":"string","description":"The parameter value.\n"}},"type":"object","required":["name","value"]},"alicloud:rds/getAccountsAccount:getAccountsAccount":{"properties":{"accountDescription":{"type":"string","description":"Database description.\n"},"accountName":{"type":"string","description":"Name of database account.\n"},"accountType":{"type":"string","description":"Privilege type of account.\n"},"databasePrivileges":{"type":"array","items":{"$ref":"#/types/alicloud:rds/getAccountsAccountDatabasePrivilege:getAccountsAccountDatabasePrivilege"},"description":"A list of database permissions the account has.\n"},"id":{"type":"string","description":"The ID of the Account.\n"},"privExceeded":{"type":"string","description":"Whether the maximum number of databases managed by the account is exceeded.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object","required":["accountDescription","accountName","accountType","databasePrivileges","id","privExceeded","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getAccountsAccountDatabasePrivilege:getAccountsAccountDatabasePrivilege":{"properties":{"accountPrivilege":{"type":"string","description":"The type of permission for the account.\n"},"accountPrivilegeDetail":{"type":"string","description":"The specific permissions corresponding to the type of account permissions.\n"},"dbName":{"type":"string","description":"Database name.\n"}},"type":"object","required":["accountPrivilege","accountPrivilegeDetail","dbName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getCollationTimeZonesCollationTimeZone:getCollationTimeZonesCollationTimeZone":{"properties":{"description":{"type":"string","description":"The code of the instance type.\n"},"standardTimeOffset":{"type":"string","description":"The offset of the UTC time. The offset is in the following format: (UTC+\u003ci\u003eHH:mm\u003c/i\u003e).\n"},"timeZone":{"type":"string","description":"The time zone that is available for use in ApsaraDB RDS.\n"}},"type":"object"},"alicloud:rds/getCrossRegionBackupsBackup:getCrossRegionBackupsBackup":{"properties":{"backupEndTime":{"type":"string","description":"The time when the cross-region data backup file was generated.\n"},"backupMethod":{"type":"string","description":"The method that is used to generate the cross-region data backup file. Valid values:\n`L` - logical backup.\n`P` - physical backup.\n"},"backupSetScale":{"type":"string","description":"The level at which the cross-region data backup file is generated.\n\u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e - instance-level backup.\n\u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e - database-level backup.\n"},"backupSetStatus":{"type":"integer","description":"TThe status of the cross-region data backup. Valid values:\n\u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e - The cross-region data backup is successful.\n\u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e - The cross-region data backup failed.\n"},"backupStartTime":{"type":"string","description":"The time when the cross-region data backup started.\n"},"backupType":{"type":"string","description":"The type of the cross-region data backup. Valid values:F: full data backup\n`F` - full data backup.\n`I` - incremental data backup.\n"},"category":{"type":"string","description":"The RDS edition of the instance. Valid values:\n`Basic` - Basic Edition.\n`HighAvailability` - High-availability Edition.\n`Finance` - Enterprise Edition. This edition is supported only by the China site (aliyun.com).\n"},"consistentTime":{"type":"string","description":"The point in time that is indicated by the data in the cross-region data backup file.\n"},"crossBackupDownloadLink":{"type":"string","description":"The external URL from which you can download the cross-region data backup file.\n"},"crossBackupId":{"type":"string","description":"The ID of the cross-region data backup file.\n"},"crossBackupRegion":{"type":"string","description":"The ID of the destination region where the cross-region data backup file of the instance is stored.\n"},"crossBackupSetFile":{"type":"string","description":"The name of the compressed package that contains the cross-region data backup file.\n"},"crossBackupSetLocation":{"type":"string","description":"The location where the cross-region data backup file is stored.\n"},"crossBackupSetSize":{"type":"integer","description":"The size of the cross-region data backup file. Unit: bytes.\n"},"dbInstanceStorageType":{"type":"string","description":"The storage type.\n"},"engine":{"type":"string","description":"The engine of the database.\n"},"engineVersion":{"type":"string","description":"The version of the database engine.\n"},"id":{"type":"string","description":"The ID of the cross-region data backup file.\n"},"instanceId":{"type":"integer","description":"The ID of the instance. This parameter is used to determine whether the instance that generates the cross-region data backup file is a primary or secondary instance.\n"},"recoveryBeginTime":{"type":"string","description":"The start time to which data can be restored. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"recoveryEndTime":{"type":"string","description":"The end time to which data can be restored. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"restoreRegions":{"type":"array","items":{"type":"string"},"description":"An array that consists of the regions to which the cross-region data backup file can be restored.\n"}},"type":"object","required":["backupEndTime","backupMethod","backupSetScale","backupSetStatus","backupStartTime","backupType","category","consistentTime","crossBackupDownloadLink","crossBackupId","crossBackupRegion","crossBackupSetFile","crossBackupSetLocation","crossBackupSetSize","dbInstanceStorageType","engine","engineVersion","id","instanceId","recoveryBeginTime","recoveryEndTime","restoreRegions"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getCrossRegionsRegion:getCrossRegionsRegion":{"properties":{"id":{"type":"string","description":"ID of the region.\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getInstanceClassInfosInfo:getInstanceClassInfosInfo":{"properties":{"classCode":{"type":"string","description":"The code of the instance type.\n"},"classGroup":{"type":"string","description":"The instance family of the instance.\n"},"cpu":{"type":"string","description":"The number of cores that are supported by the instance type. Unit: cores.\n"},"instructionSetArch":{"type":"string","description":"The architecture of the instance type.\n"},"maxConnections":{"type":"string","description":"The maximum number of connections that are supported by the instance type. Unit: connections.\n"},"maxIombps":{"type":"string","description":"The maximum I/O bandwidth that is supported by the instance type. Unit: Mbit/s.\n"},"maxIops":{"type":"string","description":"The maximum input/output operations per second (IOPS) that is supported by the instance type. Unit: operations per second.\n"},"memoryClass":{"type":"string","description":"The memory capacity that is supported by the instance type. Unit: GB.\n"},"referencePrice":{"type":"string","description":"The fee that you must pay for the instance type. Unit: cent (USD).\n"}},"type":"object"},"alicloud:rds/getInstanceClassesInstanceClass:getInstanceClassesInstanceClass":{"properties":{"instanceClass":{"type":"string","description":"DB Instance available class.\n"},"price":{"type":"string","description":"Unit price of instance specifications.\n"},"storageRange":{"$ref":"#/types/alicloud:rds/getInstanceClassesInstanceClassStorageRange:getInstanceClassesInstanceClassStorageRange","description":"DB Instance available storage range.\n"},"zoneIds":{"type":"array","items":{"$ref":"#/types/alicloud:rds/getInstanceClassesInstanceClassZoneId:getInstanceClassesInstanceClassZoneId"},"description":"A list of Zone to launch the DB instance.\n"}},"type":"object","required":["instanceClass","price","storageRange","zoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getInstanceClassesInstanceClassStorageRange:getInstanceClassesInstanceClassStorageRange":{"properties":{"max":{"type":"string","description":"DB Instance available storage max value.\n"},"min":{"type":"string","description":"DB Instance available storage min value.\n"},"step":{"type":"string","description":"DB Instance available storage increase step.\n"}},"type":"object","required":["max","min","step"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getInstanceClassesInstanceClassZoneId:getInstanceClassesInstanceClassZoneId":{"properties":{"id":{"type":"string","description":"The Zone to launch the DB instance\n"},"subZoneIds":{"type":"array","items":{"type":"string"},"description":"A list of sub zone ids which in the id - e.g If \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e is `cn-beijing-MAZ5(a,b)`, \u003cspan pulumi-lang-nodejs=\"`subZoneIds`\" pulumi-lang-dotnet=\"`SubZoneIds`\" pulumi-lang-go=\"`subZoneIds`\" pulumi-lang-python=\"`sub_zone_ids`\" pulumi-lang-yaml=\"`subZoneIds`\" pulumi-lang-java=\"`subZoneIds`\"\u003e`sub_zone_ids`\u003c/span\u003e will be `[\"cn-beijing-a\", \"cn-beijing-b\"]`.\n"}},"type":"object","required":["id","subZoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getInstanceEnginesInstanceEngine:getInstanceEnginesInstanceEngine":{"properties":{"category":{"type":"string","description":"DB Instance category. the value like [`Basic`, `HighAvailability`, `Finance`, `AlwaysOn`], [detail info](https://www.alibabacloud.com/help/doc-detail/69795.htm).\n"},"engine":{"type":"string","description":"Database type. Valid values: \"MySQL\", \"SQLServer\", \"PostgreSQL\", \"MariaDB\". If not set, it will match all of engines.\n"},"engineVersion":{"type":"string","description":"Database version required by the user. Value options can refer to the latest docs [detail info](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.\n"},"zoneIds":{"type":"array","items":{"$ref":"#/types/alicloud:rds/getInstanceEnginesInstanceEngineZoneId:getInstanceEnginesInstanceEngineZoneId"},"description":"A list of Zone to launch the DB instance.\n"}},"type":"object","required":["category","engine","engineVersion","zoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getInstanceEnginesInstanceEngineZoneId:getInstanceEnginesInstanceEngineZoneId":{"properties":{"id":{"type":"string","description":"The Zone to launch the DB instance\n"},"subZoneIds":{"type":"array","items":{"type":"string"},"description":"A list of sub zone ids which in the id - e.g If \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e is `cn-beijing-MAZ5(a,b)`, \u003cspan pulumi-lang-nodejs=\"`subZoneIds`\" pulumi-lang-dotnet=\"`SubZoneIds`\" pulumi-lang-go=\"`subZoneIds`\" pulumi-lang-python=\"`sub_zone_ids`\" pulumi-lang-yaml=\"`subZoneIds`\" pulumi-lang-java=\"`subZoneIds`\"\u003e`sub_zone_ids`\u003c/span\u003e will be `[\"cn-beijing-a\", \"cn-beijing-b\"]`.\n"}},"type":"object","required":["id","subZoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getInstancesInstance:getInstancesInstance":{"properties":{"acl":{"type":"string","description":"(Available in 1.124.1+) The method that is used to verify the identities of clients. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"availabilityZone":{"type":"string","description":"Availability zone.\n"},"caType":{"type":"string","description":"(Available in 1.124.1+) The type of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. Valid values:\n- aliyun: a cloud certificate\n- custom: a custom certificate\n"},"chargeType":{"type":"string","description":"Billing method. Value options: `Postpaid` for Pay-As-You-Go and `Prepaid` for subscription.\n"},"clientCaCert":{"type":"string","description":"(Available in 1.124.1+) The public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs.\n"},"clientCaCertExpireTime":{"type":"string","description":"(Available in 1.124.1+) The content of the server certificate. This parameter is supported only when the instance runs PostgreSQL with cloud disks. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC. This parameter is not supported now.\n"},"clientCertRevocationList":{"type":"string","description":"(Available in 1.124.1+) The certificate revocation list (CRL) that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs.\n"},"connectionMode":{"type":"string","description":"`Standard` for standard access mode and `Safe` for high security access mode.\n"},"connectionString":{"type":"string","description":"(Available in 1.70.3+) RDS database connection string.\n"},"createTime":{"type":"string","description":"Creation time of the instance.\n"},"creator":{"type":"string","description":"(Available in 1.124.3+) The creator of the encryption key.\n"},"dbInstanceStorageType":{"type":"string","description":"(Available in 1.70.3+) The storage type of the instance.\n"},"dbInstanceType":{"type":"string","description":"(Available in 1.197.0+) The type of instance.\n"},"dbType":{"type":"string","description":"`Primary` for primary instance, `Readonly` for read-only instance, `Guard` for disaster recovery instance, and `Temp` for temporary instance.\n"},"deleteDate":{"type":"string","description":"(Available in 1.124.3+) The estimated time when the encryption key will be deleted. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"deletionProtection":{"type":"boolean","description":"(Available in 1.167.0+) Indicates whether the release protection feature is enabled for the instance. Valid values:\n* **true**: The release protection feature is enabled.\n* **false**: The release protection feature is disabled.\n"},"description":{"type":"string","description":"(Available in 1.124.3+) The description of the encryption key.\n"},"encryptionKey":{"type":"string","description":"(Available in 1.124.3+) The ID of the encryption key.\n"},"encryptionKeyStatus":{"type":"string","description":"(Available in 1.124.3+) The status of the encryption key. Valid values:\n- Enabled\n- Disabled\n"},"engine":{"type":"string","description":"Database type. Options are `MySQL`, `SQLServer`, `PostgreSQL`, `MariaDB`. If no value is specified, all types are returned.\n"},"engineVersion":{"type":"string","description":"Database version.\n"},"expireTime":{"type":"string","description":"Expiration time. Pay-As-You-Go instances never expire.\n"},"guardInstanceId":{"type":"string","description":"If a disaster recovery instance is attached to the current instance, the ID of the disaster recovery instance applies.\n"},"haMode":{"type":"string","description":"(Available since v1.209.1) The high availability mode of the instance.\n"},"hostInstanceInfos":{"type":"array","items":{"$ref":"#/types/alicloud:rds/getInstancesInstanceHostInstanceInfo:getInstancesInstanceHostInstanceInfo"},"description":"(Available since v1.209.1) An array that consists of the information of the primary and secondary instances.\n"},"id":{"type":"string","description":"The ID of the RDS instance.\n"},"instanceStorage":{"type":"integer","description":"(Available in 1.70.3+) User-defined DB instance storage space.\n"},"instanceType":{"type":"string","description":"Sizing of the RDS instance.\n"},"keyUsage":{"type":"string","description":"(Available in 1.124.3+) The purpose of the encryption key.\n"},"lastModifyStatus":{"type":"string","description":"(Available in 1.124.1+) The status of the SSL link. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. Valid values:\n- success\n- setting\n- failed\n"},"masterInstanceId":{"type":"string","description":"ID of the primary instance. If this parameter is not returned, the current instance is a primary instance.\n"},"masterZone":{"type":"string","description":"(Available in 1.101.0+) The master zone of the instance.\n"},"materialExpireTime":{"type":"string","description":"(Available in 1.124.3+) The time when the encryption key expires. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"modifyStatusReason":{"type":"string","description":"(Available in 1.124.1+) The reason why the SSL link stays in the current state. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs.\n"},"name":{"type":"string","description":"The name of the RDS instance.\n"},"netType":{"type":"string","description":"`Internet` for public network or `Intranet` for private network.\n"},"origin":{"type":"string","description":"(Available in 1.124.3+) The source of the encryption key.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:rds/getInstancesInstanceParameter:getInstancesInstanceParameter"},"description":"(Available in 1.135.0+) Parameter list.\n"},"port":{"type":"string","description":"(Available in 1.70.3+) RDS database connection port.\n"},"readonlyInstanceIds":{"type":"array","items":{"type":"string"},"description":"A list of IDs of read-only instances attached to the primary instance.\n"},"regionId":{"type":"string","description":"The region ID of the instance.\n"},"replicationAcl":{"type":"string","description":"(Available in 1.124.1+) The method that is used to verify the replication permission. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"requireUpdate":{"type":"string","description":"(Available in 1.124.1+) Indicates whether the server certificate needs to be updated.\n- Valid values for ApsaraDB RDS for MySQL and ApsaraDB RDS for SQL Server:\n- No\n- Yes\n- Valid values for ApsaraDB RDS for PostgreSQL:\n- 0: no\n- 1: yes\n"},"requireUpdateItem":{"type":"string","description":"(Available in 1.124.1+) The server certificate that needs to be updated. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs.\n"},"requireUpdateReason":{"type":"string","description":"(Available in 1.124.1+) The reason why the server certificate needs to be updated. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs.\n"},"serverCaUrl":{"type":"string","description":"(Available in 1.124.1+) The URL of the CA that issues the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs.\n"},"serverCert":{"type":"string","description":"(Available in 1.124.1+) The content of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs.\n"},"serverKey":{"type":"string","description":"(Available in 1.124.1+) The private key of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs.\n"},"sslCreateTime":{"type":"string","description":"(Available in 1.124.1+) The time when the server certificate was created. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is valid only when the CAType parameter is set to aliyun.\n"},"sslEnabled":{"type":"string","description":"(Available in 1.124.1+) Indicates whether SSL encryption is enabled. Valid values:\n- on: enabled\n- off: disabled\n"},"sslExpireTime":{"type":"string","description":"(Available in 1.124.1+) The time when the server certificate expires. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"status":{"type":"string","description":"Status of the instance.\n"},"syncMode":{"type":"string","description":"(Available since v1.209.1) The data replication mode of the instance.\n"},"tempInstanceId":{"type":"string","description":"If a temporary instance is attached to the current instance, the ID of the temporary instance applies.\n"},"vpcId":{"type":"string","description":"Used to retrieve instances belong to specified VPC.\n"},"vswitchId":{"type":"string","description":"Used to retrieve instances belong to specified \u003cspan pulumi-lang-nodejs=\"`vswitch`\" pulumi-lang-dotnet=\"`Vswitch`\" pulumi-lang-go=\"`vswitch`\" pulumi-lang-python=\"`vswitch`\" pulumi-lang-yaml=\"`vswitch`\" pulumi-lang-java=\"`vswitch`\"\u003e`vswitch`\u003c/span\u003e resources.\n"},"zoneIdSlaveA":{"type":"string","description":"(Available in 1.101.0+) The region ID of the secondary instance if you create a secondary instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.\n"},"zoneIdSlaveB":{"type":"string","description":"(Available in 1.101.0+) The region ID of the log instance if you create a log instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.\n"}},"type":"object","required":["acl","availabilityZone","caType","chargeType","clientCaCert","clientCaCertExpireTime","clientCertRevocationList","connectionMode","connectionString","createTime","creator","dbInstanceStorageType","dbInstanceType","dbType","deleteDate","deletionProtection","description","encryptionKey","encryptionKeyStatus","engine","engineVersion","expireTime","guardInstanceId","haMode","hostInstanceInfos","id","instanceStorage","instanceType","keyUsage","lastModifyStatus","masterInstanceId","masterZone","materialExpireTime","modifyStatusReason","name","netType","origin","parameters","port","readonlyInstanceIds","regionId","replicationAcl","requireUpdate","requireUpdateItem","requireUpdateReason","serverCaUrl","serverCert","serverKey","sslCreateTime","sslEnabled","sslExpireTime","status","syncMode","tempInstanceId","vpcId","vswitchId","zoneIdSlaveA","zoneIdSlaveB"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getInstancesInstanceHostInstanceInfo:getInstancesInstanceHostInstanceInfo":{"properties":{"dataSyncTime":{"type":"string","description":"The time when the secondary instance completed the synchronization of data from the primary instance. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"logSyncTime":{"type":"string","description":"The time when the secondary instance received logs from the primary instance. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"nodeId":{"type":"string","description":"The ID of the instance.\n"},"nodeType":{"type":"string","description":"The type of the node.\n"},"regionId":{"type":"string","description":"The region ID of the instance.\n"},"syncStatus":{"type":"string","description":"The synchronization status.\n"},"zoneId":{"type":"string","description":"The ID of the zone.\n"}},"type":"object","required":["dataSyncTime","logSyncTime","nodeId","nodeType","regionId","syncStatus","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getInstancesInstanceParameter:getInstancesInstanceParameter":{"properties":{"checkingCode":{"type":"string","description":"The value range of the parameter.\n"},"forceModify":{"type":"string","description":"Indicates whether the parameter can be modified. Valid values: true | false\n"},"forceRestart":{"type":"string","description":"Indicates whether the modified parameter takes effect only after a database restart. Valid values: true | false\n"},"parameterDescription":{"type":"string","description":"The description of the parameter.\n"},"parameterName":{"type":"string","description":"The name of the parameter.\n"},"parameterValue":{"type":"string","description":"The default value of the parameter.\n"}},"type":"object","required":["checkingCode","forceModify","forceRestart","parameterDescription","parameterName","parameterValue"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getModifyParameterLogsLog:getModifyParameterLogsLog":{"properties":{"modifyTime":{"type":"string","description":"The time when the parameter was reconfigured. This value is a UNIX timestamp. Unit: milliseconds.\n"},"newParameterValue":{"type":"string","description":"The new value of the parameter.\n"},"oldParameterValue":{"type":"string","description":"The original value of the parameter.\n"},"parameterName":{"type":"string","description":"The name of the parameter.\n"},"status":{"type":"string","description":"The status of the new value specified for the parameter. Valid values:\n* **Applied**: The new value has taken effect.\n* **Syncing**: The new value is being applied and has not taken effect.\n"}},"type":"object","required":["modifyTime","newParameterValue","oldParameterValue","parameterName","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getRdsBackupsBackup:getRdsBackupsBackup":{"properties":{"backupDownloadUrl":{"type":"string","description":"The backup download url.\n"},"backupEndTime":{"type":"string","description":"BackupEndTime.\n"},"backupId":{"type":"string","description":"BackupId.\n"},"backupInitiator":{"type":"string","description":"The initiator of the backup task. Value:\n* **System**: automatically initiated by the System\n* **User**: manually initiated by the User.\n"},"backupIntranetDownloadUrl":{"type":"string","description":"The backup intranet download url.\n"},"backupMethod":{"type":"string","description":"BackupMethod.\n"},"backupMode":{"type":"string","description":"BackupMode.\n"},"backupSize":{"type":"string","description":"BackupSize.\n"},"backupStartTime":{"type":"string","description":"BackupStartTime.\n"},"backupStatus":{"type":"string","description":"Backup task status. **NOTE:** This parameter will only be returned when a task is executed. Value:\n* **NoStart**: Not started\n* **Checking**: check the backup\n* **Preparing**: Prepare a backup\n* **Waiting**: Waiting for backup\n* **Uploading**: Upload backup\n* **Finished**: Complete backup\n* **Failed**: backup Failed\n"},"backupType":{"type":"string","description":"BackupType.\n"},"consistentTime":{"type":"string","description":"The consistency point of the backup set. The return value is a timestamp. **NOTE:** only MySQL 5.6 returns this parameter, and other versions return 0.\n"},"copyOnlyBackup":{"type":"string","description":"The backup mode is divided into the normal backup mode (full and incremental recovery is supported) and the replication-only mode (full recovery is supported only). **NOTE:** Only SQL Server returns this parameter. Valid values:\n* **0**: General Backup Mode\n* **1**: Copy only mode\n"},"dbInstanceId":{"type":"string","description":"The db instance id.\n"},"encryption":{"type":"string","description":"The encrypted information of the backup set.\n"},"hostInstanceId":{"type":"string","description":"HostInstanceID.\n"},"id":{"type":"string","description":"The ID of the Backup.\n"},"isAvail":{"type":"integer","description":"Whether the backup set is available, the value is:\n* **0**: Not available\n* **1**: Available.\n"},"metaStatus":{"type":"string","description":"The backup set status of the database table. **NOTE:** an empty string indicates that the backup set for database table recovery is not enabled. Valid values:\n* **OK**: normal.\n* **LARGE**: There are too many tables that cannot be used for database and table recovery.\n* **EMPTY**: The backup set that failed to be backed up.\n"},"storageClass":{"type":"string","description":"The storage medium for the backup set. Valid values:\n* **0**: Regular storage\n* **1**: Archive storage.\n"},"storeStatus":{"type":"string","description":"StoreStatus.\n"}},"type":"object","required":["backupDownloadUrl","backupEndTime","backupId","backupInitiator","backupIntranetDownloadUrl","backupMethod","backupMode","backupSize","backupStartTime","backupStatus","backupType","consistentTime","copyOnlyBackup","dbInstanceId","encryption","hostInstanceId","id","isAvail","metaStatus","storageClass","storeStatus"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getRdsParameterGroupsGroup:getRdsParameterGroupsGroup":{"properties":{"engine":{"type":"string"},"engineVersion":{"type":"string"},"forceRestart":{"type":"integer"},"id":{"type":"string"},"paramCounts":{"type":"integer"},"paramDetails":{"type":"array","items":{"$ref":"#/types/alicloud:rds/getRdsParameterGroupsGroupParamDetail:getRdsParameterGroupsGroupParamDetail"}},"parameterGroupDesc":{"type":"string"},"parameterGroupId":{"type":"string"},"parameterGroupName":{"type":"string"},"parameterGroupType":{"type":"integer"}},"type":"object","required":["engine","engineVersion","forceRestart","id","paramCounts","paramDetails","parameterGroupDesc","parameterGroupId","parameterGroupName","parameterGroupType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getRdsParameterGroupsGroupParamDetail:getRdsParameterGroupsGroupParamDetail":{"properties":{"paramName":{"type":"string"},"paramValue":{"type":"string"}},"type":"object","required":["paramName","paramValue"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getSlotsSlot:getSlotsSlot":{"properties":{"database":{"type":"string","description":"The name of the database where Replication Slot is located.\n"},"plugin":{"type":"string","description":"The plugin used by Replication Slot.\n"},"slotName":{"type":"string","description":"The Replication Slot name.\n"},"slotStatus":{"type":"string","description":"The Replication Slot status.\n"},"slotType":{"type":"string","description":"The Replication Slot type.\n"},"temporary":{"type":"string","description":"Is the Replication Slot temporary.\n"},"walDelay":{"type":"string","description":"The amount of logs accumulated by Replication Slot.\n"}},"type":"object","required":["database","plugin","slotName","slotStatus","slotType","temporary","walDelay"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rds/getZonesZone:getZonesZone":{"properties":{"id":{"type":"string","description":"ID of the zone.\n"},"multiZoneIds":{"type":"array","items":{"type":"string"},"description":"A list of zone ids in which the multi zone.\n"}},"type":"object","required":["id","multiZoneIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:realtimecompute/DeploymentArtifact:DeploymentArtifact":{"properties":{"jarArtifact":{"$ref":"#/types/alicloud:realtimecompute/DeploymentArtifactJarArtifact:DeploymentArtifactJarArtifact","description":"JarArtifact See \u003cspan pulumi-lang-nodejs=\"`jarArtifact`\" pulumi-lang-dotnet=\"`JarArtifact`\" pulumi-lang-go=\"`jarArtifact`\" pulumi-lang-python=\"`jar_artifact`\" pulumi-lang-yaml=\"`jarArtifact`\" pulumi-lang-java=\"`jarArtifact`\"\u003e`jar_artifact`\u003c/span\u003e below.\n"},"kind":{"type":"string","description":"Artifact type\n","willReplaceOnChanges":true},"pythonArtifact":{"$ref":"#/types/alicloud:realtimecompute/DeploymentArtifactPythonArtifact:DeploymentArtifactPythonArtifact","description":"PythonArtifact See \u003cspan pulumi-lang-nodejs=\"`pythonArtifact`\" pulumi-lang-dotnet=\"`PythonArtifact`\" pulumi-lang-go=\"`pythonArtifact`\" pulumi-lang-python=\"`python_artifact`\" pulumi-lang-yaml=\"`pythonArtifact`\" pulumi-lang-java=\"`pythonArtifact`\"\u003e`python_artifact`\u003c/span\u003e below.\n"},"sqlArtifact":{"$ref":"#/types/alicloud:realtimecompute/DeploymentArtifactSqlArtifact:DeploymentArtifactSqlArtifact","description":"SqlArtifact See \u003cspan pulumi-lang-nodejs=\"`sqlArtifact`\" pulumi-lang-dotnet=\"`SqlArtifact`\" pulumi-lang-go=\"`sqlArtifact`\" pulumi-lang-python=\"`sql_artifact`\" pulumi-lang-yaml=\"`sqlArtifact`\" pulumi-lang-java=\"`sqlArtifact`\"\u003e`sql_artifact`\u003c/span\u003e below.\n"}},"type":"object","required":["kind"]},"alicloud:realtimecompute/DeploymentArtifactJarArtifact:DeploymentArtifactJarArtifact":{"properties":{"additionalDependencies":{"type":"array","items":{"type":"string"},"description":"Full URL path of additional files. If you need to use dependencies such as UDFs, connectors, or formats that are not registered on the VVP platform, you must add them using this method. Dependencies already registered on the platform do not require this approach.\n"},"entryClass":{"type":"string","description":"Main class; you must specify the fully qualified class name\n"},"jarUri":{"type":"string","description":"Full URL path of the JAR job\n"},"mainArgs":{"type":"string","description":"Startup arguments\n"}},"type":"object"},"alicloud:realtimecompute/DeploymentArtifactPythonArtifact:DeploymentArtifactPythonArtifact":{"properties":{"additionalDependencies":{"type":"array","items":{"type":"string"},"description":"Full URL path of additional files. If you need to use dependencies such as UDFs, connectors, or formats that are not registered on the VVP platform, you must add them using this method. Dependencies already registered on the platform do not require this approach.\n"},"additionalPythonArchives":{"type":"array","items":{"type":"string"},"description":"URL paths of dependent Python archive files\n"},"additionalPythonLibraries":{"type":"array","items":{"type":"string"},"description":"URL paths of dependent Python library files\n"},"entryModule":{"type":"string","description":"Entry module for Python\n"},"mainArgs":{"type":"string","description":"Startup arguments\n"},"pythonArtifactUri":{"type":"string","description":"Full URL path of the Python job\n"}},"type":"object"},"alicloud:realtimecompute/DeploymentArtifactSqlArtifact:DeploymentArtifactSqlArtifact":{"properties":{"additionalDependencies":{"type":"array","items":{"type":"string"},"description":"Full URL path of additional files. If you need to use dependencies such as UDFs, connectors, or formats that are not registered on the VVP platform, you must add them using this method. Dependencies already registered on the platform do not require this approach.\n"},"sqlScript":{"type":"string","description":"Text content of the SQL job\n"}},"type":"object"},"alicloud:realtimecompute/DeploymentBatchResourceSetting:DeploymentBatchResourceSetting":{"properties":{"basicResourceSetting":{"$ref":"#/types/alicloud:realtimecompute/DeploymentBatchResourceSettingBasicResourceSetting:DeploymentBatchResourceSettingBasicResourceSetting","description":"Resource settings for basic mode See \u003cspan pulumi-lang-nodejs=\"`basicResourceSetting`\" pulumi-lang-dotnet=\"`BasicResourceSetting`\" pulumi-lang-go=\"`basicResourceSetting`\" pulumi-lang-python=\"`basic_resource_setting`\" pulumi-lang-yaml=\"`basicResourceSetting`\" pulumi-lang-java=\"`basicResourceSetting`\"\u003e`basic_resource_setting`\u003c/span\u003e below.\n"},"maxSlot":{"type":"integer","description":"Maximum number of slots\n"}},"type":"object"},"alicloud:realtimecompute/DeploymentBatchResourceSettingBasicResourceSetting:DeploymentBatchResourceSettingBasicResourceSetting":{"properties":{"jobmanagerResourceSettingSpec":{"$ref":"#/types/alicloud:realtimecompute/DeploymentBatchResourceSettingBasicResourceSettingJobmanagerResourceSettingSpec:DeploymentBatchResourceSettingBasicResourceSettingJobmanagerResourceSettingSpec"},"parallelism":{"type":"integer"},"taskmanagerResourceSettingSpec":{"$ref":"#/types/alicloud:realtimecompute/DeploymentBatchResourceSettingBasicResourceSettingTaskmanagerResourceSettingSpec:DeploymentBatchResourceSettingBasicResourceSettingTaskmanagerResourceSettingSpec"}},"type":"object"},"alicloud:realtimecompute/DeploymentBatchResourceSettingBasicResourceSettingJobmanagerResourceSettingSpec:DeploymentBatchResourceSettingBasicResourceSettingJobmanagerResourceSettingSpec":{"properties":{"cpu":{"type":"number"},"memory":{"type":"string"}},"type":"object"},"alicloud:realtimecompute/DeploymentBatchResourceSettingBasicResourceSettingTaskmanagerResourceSettingSpec:DeploymentBatchResourceSettingBasicResourceSettingTaskmanagerResourceSettingSpec":{"properties":{"cpu":{"type":"number"},"memory":{"type":"string"}},"type":"object"},"alicloud:realtimecompute/DeploymentDeploymentTarget:DeploymentDeploymentTarget":{"properties":{"mode":{"type":"string","description":"Deployment mode, valid values: PER_JOB or SESSION\n"},"name":{"type":"string","description":"Deployment target name\n"}},"type":"object","required":["mode","name"]},"alicloud:realtimecompute/DeploymentLocalVariable:DeploymentLocalVariable":{"properties":{"name":{"type":"string","description":"Job variable name\n"},"value":{"type":"string","description":"Job variable value\n"}},"type":"object"},"alicloud:realtimecompute/DeploymentLogging:DeploymentLogging":{"properties":{"log4j2ConfigurationTemplate":{"type":"string","description":"Custom log template\n"},"log4jLoggers":{"type":"array","items":{"$ref":"#/types/alicloud:realtimecompute/DeploymentLoggingLog4jLogger:DeploymentLoggingLog4jLogger"},"description":"log4j configuration   See \u003cspan pulumi-lang-nodejs=\"`log4jLoggers`\" pulumi-lang-dotnet=\"`Log4jLoggers`\" pulumi-lang-go=\"`log4jLoggers`\" pulumi-lang-python=\"`log4j_loggers`\" pulumi-lang-yaml=\"`log4jLoggers`\" pulumi-lang-java=\"`log4jLoggers`\"\u003e`log4j_loggers`\u003c/span\u003e below.\n"},"logReservePolicy":{"$ref":"#/types/alicloud:realtimecompute/DeploymentLoggingLogReservePolicy:DeploymentLoggingLogReservePolicy","description":"Log retention policy   See \u003cspan pulumi-lang-nodejs=\"`logReservePolicy`\" pulumi-lang-dotnet=\"`LogReservePolicy`\" pulumi-lang-go=\"`logReservePolicy`\" pulumi-lang-python=\"`log_reserve_policy`\" pulumi-lang-yaml=\"`logReservePolicy`\" pulumi-lang-java=\"`logReservePolicy`\"\u003e`log_reserve_policy`\u003c/span\u003e below.\n"},"loggingProfile":{"type":"string","description":"Default system log template\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["log4j2ConfigurationTemplate","log4jLoggers","logReservePolicy","loggingProfile"]}}},"alicloud:realtimecompute/DeploymentLoggingLog4jLogger:DeploymentLoggingLog4jLogger":{"properties":{"loggerLevel":{"type":"string","description":"Log output level\n"},"loggerName":{"type":"string","description":"Class name for log output\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["loggerLevel","loggerName"]}}},"alicloud:realtimecompute/DeploymentLoggingLogReservePolicy:DeploymentLoggingLogReservePolicy":{"properties":{"expirationDays":{"type":"integer","description":"Number of days to retain logs after log retention is enabled\n"},"openHistory":{"type":"boolean","description":"Whether to enable log retention\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["expirationDays","openHistory"]}}},"alicloud:realtimecompute/DeploymentStreamingResourceSetting:DeploymentStreamingResourceSetting":{"properties":{"basicResourceSetting":{"$ref":"#/types/alicloud:realtimecompute/DeploymentStreamingResourceSettingBasicResourceSetting:DeploymentStreamingResourceSettingBasicResourceSetting","description":"Resource settings for basic mode See \u003cspan pulumi-lang-nodejs=\"`basicResourceSetting`\" pulumi-lang-dotnet=\"`BasicResourceSetting`\" pulumi-lang-go=\"`basicResourceSetting`\" pulumi-lang-python=\"`basic_resource_setting`\" pulumi-lang-yaml=\"`basicResourceSetting`\" pulumi-lang-java=\"`basicResourceSetting`\"\u003e`basic_resource_setting`\u003c/span\u003e below.\n"},"expertResourceSetting":{"$ref":"#/types/alicloud:realtimecompute/DeploymentStreamingResourceSettingExpertResourceSetting:DeploymentStreamingResourceSettingExpertResourceSetting","description":"Expert mode resource settings See \u003cspan pulumi-lang-nodejs=\"`expertResourceSetting`\" pulumi-lang-dotnet=\"`ExpertResourceSetting`\" pulumi-lang-go=\"`expertResourceSetting`\" pulumi-lang-python=\"`expert_resource_setting`\" pulumi-lang-yaml=\"`expertResourceSetting`\" pulumi-lang-java=\"`expertResourceSetting`\"\u003e`expert_resource_setting`\u003c/span\u003e below.\n"},"resourceSettingMode":{"type":"string","description":"Resource mode used in streaming mode, valid values: BASIC or EXPERT\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["basicResourceSetting","expertResourceSetting","resourceSettingMode"]}}},"alicloud:realtimecompute/DeploymentStreamingResourceSettingBasicResourceSetting:DeploymentStreamingResourceSettingBasicResourceSetting":{"properties":{"jobmanagerResourceSettingSpec":{"$ref":"#/types/alicloud:realtimecompute/DeploymentStreamingResourceSettingBasicResourceSettingJobmanagerResourceSettingSpec:DeploymentStreamingResourceSettingBasicResourceSettingJobmanagerResourceSettingSpec"},"parallelism":{"type":"integer"},"taskmanagerResourceSettingSpec":{"$ref":"#/types/alicloud:realtimecompute/DeploymentStreamingResourceSettingBasicResourceSettingTaskmanagerResourceSettingSpec:DeploymentStreamingResourceSettingBasicResourceSettingTaskmanagerResourceSettingSpec"}},"type":"object","language":{"nodejs":{"requiredOutputs":["jobmanagerResourceSettingSpec","parallelism","taskmanagerResourceSettingSpec"]}}},"alicloud:realtimecompute/DeploymentStreamingResourceSettingBasicResourceSettingJobmanagerResourceSettingSpec:DeploymentStreamingResourceSettingBasicResourceSettingJobmanagerResourceSettingSpec":{"properties":{"cpu":{"type":"number"},"memory":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cpu","memory"]}}},"alicloud:realtimecompute/DeploymentStreamingResourceSettingBasicResourceSettingTaskmanagerResourceSettingSpec:DeploymentStreamingResourceSettingBasicResourceSettingTaskmanagerResourceSettingSpec":{"properties":{"cpu":{"type":"number"},"memory":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cpu","memory"]}}},"alicloud:realtimecompute/DeploymentStreamingResourceSettingExpertResourceSetting:DeploymentStreamingResourceSettingExpertResourceSetting":{"properties":{"jobmanagerResourceSettingSpec":{"$ref":"#/types/alicloud:realtimecompute/DeploymentStreamingResourceSettingExpertResourceSettingJobmanagerResourceSettingSpec:DeploymentStreamingResourceSettingExpertResourceSettingJobmanagerResourceSettingSpec"},"resourcePlan":{"type":"string","description":"Resource plan for expert mode\n"}},"type":"object"},"alicloud:realtimecompute/DeploymentStreamingResourceSettingExpertResourceSettingJobmanagerResourceSettingSpec:DeploymentStreamingResourceSettingExpertResourceSettingJobmanagerResourceSettingSpec":{"properties":{"cpu":{"type":"number"},"memory":{"type":"string"}},"type":"object"},"alicloud:realtimecompute/JobLocalVariable:JobLocalVariable":{"properties":{"name":{"type":"string","description":"Local variables name\n","willReplaceOnChanges":true},"value":{"type":"string","description":"Local variables value\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:realtimecompute/JobRestoreStrategy:JobRestoreStrategy":{"properties":{"allowNonRestoredState":{"type":"boolean","description":"Stateless startup\n","willReplaceOnChanges":true},"jobStartTimeInMs":{"type":"integer","description":"Stateless start time. When stateless start is selected, you can set this parameter to enable all source tables that support startTime to read data from this time.\n","willReplaceOnChanges":true},"kind":{"type":"string","description":"Restore type\n","willReplaceOnChanges":true},"savepointId":{"type":"string","description":"SavepointId\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:realtimecompute/JobStatus:JobStatus":{"properties":{"currentJobStatus":{"type":"string","description":"Job current status\n"},"failure":{"$ref":"#/types/alicloud:realtimecompute/JobStatusFailure:JobStatusFailure","description":"Job failure information\n"},"healthScore":{"type":"integer","description":"Job Run Health Score\n"},"riskLevel":{"type":"string","description":"Risk level, which indicates the risk level of the operation status of the job.\n"},"running":{"$ref":"#/types/alicloud:realtimecompute/JobStatusRunning:JobStatusRunning","description":"job running status, which has value when the job is Running.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["currentJobStatus","failure","healthScore","riskLevel","running"]}}},"alicloud:realtimecompute/JobStatusFailure:JobStatusFailure":{"properties":{"failedAt":{"type":"integer","description":"Job failure time\n"},"message":{"type":"string","description":"Failure Information Details\n"},"reason":{"type":"string","description":"Failure Reason\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["failedAt","message","reason"]}}},"alicloud:realtimecompute/JobStatusRunning:JobStatusRunning":{"properties":{"observedFlinkJobRestarts":{"type":"integer","description":"Number of job restarts\n"},"observedFlinkJobStatus":{"type":"string","description":"Flink job status\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["observedFlinkJobRestarts","observedFlinkJobStatus"]}}},"alicloud:realtimecompute/VvpInstanceResourceSpec:VvpInstanceResourceSpec":{"properties":{"cpu":{"type":"integer","description":"CPU number.\n"},"memoryGb":{"type":"integer","description":"Memory size.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cpu","memoryGb"]}}},"alicloud:realtimecompute/VvpInstanceStorage:VvpInstanceStorage":{"properties":{"oss":{"$ref":"#/types/alicloud:realtimecompute/VvpInstanceStorageOss:VvpInstanceStorageOss","description":"OSS stores information. See \u003cspan pulumi-lang-nodejs=\"`oss`\" pulumi-lang-dotnet=\"`Oss`\" pulumi-lang-go=\"`oss`\" pulumi-lang-python=\"`oss`\" pulumi-lang-yaml=\"`oss`\" pulumi-lang-java=\"`oss`\"\u003e`oss`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object","required":["oss"]},"alicloud:realtimecompute/VvpInstanceStorageOss:VvpInstanceStorageOss":{"properties":{"bucket":{"type":"string","description":"OSS Bucket name.\n","willReplaceOnChanges":true}},"type":"object","required":["bucket"]},"alicloud:resourcemanager/AutoGroupingRuleRuleContent:AutoGroupingRuleRuleContent":{"properties":{"autoGroupingScopeCondition":{"type":"string","description":"The condition for the range of resources to be automatically transferred.\n"},"targetResourceGroupCondition":{"type":"string","description":"The condition for the destination resource group.\n"}},"type":"object","required":["targetResourceGroupCondition"],"language":{"nodejs":{"requiredOutputs":["autoGroupingScopeCondition","targetResourceGroupCondition"]}}},"alicloud:resourcemanager/DeliveryChannelDeliveryChannelFilter:DeliveryChannelDeliveryChannelFilter":{"properties":{"resourceTypes":{"type":"array","items":{"type":"string"},"description":"An array of effective resource types for the delivery channel.\n- Example: [\"ACS::VPC::VPC\", \"ACS::ECS::Instance\"].\n- If you want to deliver items of all resource types supported by Resource Center, set this parameter to [\"ALL\"].\n"}},"type":"object"},"alicloud:resourcemanager/DeliveryChannelResourceChangeDelivery:DeliveryChannelResourceChangeDelivery":{"properties":{"enabled":{"type":"boolean","description":"Specifies whether to enable delivery of resource configuration change events. Valid values:\n- true\n- false\n"},"slsProperties":{"$ref":"#/types/alicloud:resourcemanager/DeliveryChannelResourceChangeDeliverySlsProperties:DeliveryChannelResourceChangeDeliverySlsProperties","description":"The Simple Log Service configurations. See \u003cspan pulumi-lang-nodejs=\"`slsProperties`\" pulumi-lang-dotnet=\"`SlsProperties`\" pulumi-lang-go=\"`slsProperties`\" pulumi-lang-python=\"`sls_properties`\" pulumi-lang-yaml=\"`slsProperties`\" pulumi-lang-java=\"`slsProperties`\"\u003e`sls_properties`\u003c/span\u003e below.\n"},"targetArn":{"type":"string","description":"The ARN of the delivery destination.\n- If you set TargetType to`OSS`, you must set TargetArn to the ARN of a bucket whose name is prefixed with `resourcecenter-`.\n- If you set TargetType to`SLS`, you must set TargetArn to the ARN of a Logstore whose name is prefixed with `resourcecenter-`.\n"},"targetType":{"type":"string","description":"The type of the delivery destination.\n\nValid values:\n- SLS\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled"]}}},"alicloud:resourcemanager/DeliveryChannelResourceChangeDeliverySlsProperties:DeliveryChannelResourceChangeDeliverySlsProperties":{"properties":{"oversizedDataOssTargetArn":{"type":"string"}},"type":"object"},"alicloud:resourcemanager/DeliveryChannelResourceSnapshotDelivery:DeliveryChannelResourceSnapshotDelivery":{"properties":{"customExpression":{"type":"string","description":"The custom expression.\n"},"deliveryTime":{"type":"string","description":"The delivery time.\n"},"enabled":{"type":"boolean","description":"Specifies whether to enable delivery of scheduled resource snapshots. Valid values:\n- true\n- false\n"},"slsProperties":{"$ref":"#/types/alicloud:resourcemanager/DeliveryChannelResourceSnapshotDeliverySlsProperties:DeliveryChannelResourceSnapshotDeliverySlsProperties","description":"The Simple Log Service configurations. See \u003cspan pulumi-lang-nodejs=\"`slsProperties`\" pulumi-lang-dotnet=\"`SlsProperties`\" pulumi-lang-go=\"`slsProperties`\" pulumi-lang-python=\"`sls_properties`\" pulumi-lang-yaml=\"`slsProperties`\" pulumi-lang-java=\"`slsProperties`\"\u003e`sls_properties`\u003c/span\u003e below.\n"},"targetArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the delivery destination.\n- If you set TargetType to`OSS`, you must set TargetArn to the ARN of a bucket whose name is prefixed with `resourcecenter-`.\n- If you set TargetType to `SLS`, you must set TargetArn to the ARN of a Logstore whose name is prefixed with `resourcecenter-`.\n"},"targetType":{"type":"string","description":"The type of the delivery destination.\n\nValid values:\n- `OSS` for standard delivery\n- `OSS` or `SLS` for custom delivery\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled"]}}},"alicloud:resourcemanager/DeliveryChannelResourceSnapshotDeliverySlsProperties:DeliveryChannelResourceSnapshotDeliverySlsProperties":{"properties":{"oversizedDataOssTargetArn":{"type":"string"}},"type":"object"},"alicloud:resourcemanager/MultiAccountDeliveryChannelDeliveryChannelFilter:MultiAccountDeliveryChannelDeliveryChannelFilter":{"properties":{"accountScopes":{"type":"array","items":{"type":"string"},"description":"The account scopes of the delivery channel.\n"},"resourceTypes":{"type":"array","items":{"type":"string"},"description":"An array of effective resource types for the delivery channel.\n- Example: [\"ACS::VPC::VPC\", \"ACS::ECS::Instance\"].\n- If you want to deliver items of all resource types supported by Resource Center, set this parameter to [\"ALL\"].\n"}},"type":"object","required":["accountScopes"]},"alicloud:resourcemanager/MultiAccountDeliveryChannelResourceChangeDelivery:MultiAccountDeliveryChannelResourceChangeDelivery":{"properties":{"enabled":{"type":"boolean","description":"Specifies whether to enable delivery of resource configuration change events. Valid values:\n- true\n- false\n"},"slsProperties":{"$ref":"#/types/alicloud:resourcemanager/MultiAccountDeliveryChannelResourceChangeDeliverySlsProperties:MultiAccountDeliveryChannelResourceChangeDeliverySlsProperties","description":"The Simple Log Service configurations. See \u003cspan pulumi-lang-nodejs=\"`slsProperties`\" pulumi-lang-dotnet=\"`SlsProperties`\" pulumi-lang-go=\"`slsProperties`\" pulumi-lang-python=\"`sls_properties`\" pulumi-lang-yaml=\"`slsProperties`\" pulumi-lang-java=\"`slsProperties`\"\u003e`sls_properties`\u003c/span\u003e below.\n"},"targetArn":{"type":"string","description":"The ARN of the delivery destination.\n- If you set TargetType to`OSS`, you must set TargetArn to the ARN of a bucket whose name is prefixed with `resourcecenter-`.\n- If you set TargetType to`SLS`, you must set TargetArn to the ARN of a Logstore whose name is prefixed with `resourcecenter-`.\n"},"targetType":{"type":"string","description":"The type of the delivery destination.\n\nValid values:\n- SLS\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled","targetType"]}}},"alicloud:resourcemanager/MultiAccountDeliveryChannelResourceChangeDeliverySlsProperties:MultiAccountDeliveryChannelResourceChangeDeliverySlsProperties":{"properties":{"oversizedDataOssTargetArn":{"type":"string"}},"type":"object"},"alicloud:resourcemanager/MultiAccountDeliveryChannelResourceSnapshotDelivery:MultiAccountDeliveryChannelResourceSnapshotDelivery":{"properties":{"customExpression":{"type":"string","description":"The custom expression.\n"},"deliveryTime":{"type":"string","description":"The delivery time.\n"},"enabled":{"type":"boolean","description":"Specifies whether to enable delivery of scheduled resource snapshots. Valid values:\n- true\n- false\n"},"slsProperties":{"$ref":"#/types/alicloud:resourcemanager/MultiAccountDeliveryChannelResourceSnapshotDeliverySlsProperties:MultiAccountDeliveryChannelResourceSnapshotDeliverySlsProperties","description":"The Simple Log Service configurations. See \u003cspan pulumi-lang-nodejs=\"`slsProperties`\" pulumi-lang-dotnet=\"`SlsProperties`\" pulumi-lang-go=\"`slsProperties`\" pulumi-lang-python=\"`sls_properties`\" pulumi-lang-yaml=\"`slsProperties`\" pulumi-lang-java=\"`slsProperties`\"\u003e`sls_properties`\u003c/span\u003e below.\n"},"targetArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the delivery destination.\n- If you set TargetType to`OSS`, you must set TargetArn to the ARN of a bucket whose name is prefixed with `resourcecenter-`.\n- If you set TargetType to `SLS`, you must set TargetArn to the ARN of a Logstore whose name is prefixed with `resourcecenter-`.\n"},"targetType":{"type":"string","description":"The type of the delivery destination.\n\nValid values:\n- `OSS` for standard delivery\n- `OSS` or `SLS` for custom delivery\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled"]}}},"alicloud:resourcemanager/MultiAccountDeliveryChannelResourceSnapshotDeliverySlsProperties:MultiAccountDeliveryChannelResourceSnapshotDeliverySlsProperties":{"properties":{"oversizedDataOssTargetArn":{"type":"string"}},"type":"object"},"alicloud:resourcemanager/ResourceGroupRegionStatus:ResourceGroupRegionStatus":{"properties":{"regionId":{"type":"string","description":"The status of the region.\n"},"status":{"type":"string","description":"The status of the resource group.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["regionId","status"]}}},"alicloud:resourcemanager/ResourceShareResource:ResourceShareResource":{"properties":{"resourceId":{"type":"string","description":"The ID of the shared resource.\n\nThe value range of N: 1 to 5, that is, a maximum of 5 shared resources are added at a time.\n\n\u003e **NOTE:**  'Resources.N.ResourceId' and'resources. N.ResourceType' appear in pairs and need to be set at the same time.\n"},"resourceType":{"type":"string","description":"Shared resource type.\n\nThe value range of N: 1 to 5, that is, a maximum of 5 shared resources are added at a time.\n\nFor the types of resources that support sharing, see [Cloud services that support sharing](https://www.alibabacloud.com/help/en/resource-management/resource-sharing/product-overview/services-that-work-with-resource-sharing).\n\n\u003e **NOTE:**  'Resources.N.ResourceId' and'resources. N.ResourceType' appear in pairs and need to be set at the same time.\n"}},"type":"object"},"alicloud:resourcemanager/getAccountDeletionCheckTaskAbandonAbleCheck:getAccountDeletionCheckTaskAbandonAbleCheck":{"properties":{"checkId":{"type":"string","description":"The ID of the check item.\n"},"checkName":{"type":"string","description":"The name of the cloud service to which the check item belongs.\n"},"description":{"type":"string","description":"The description of the check item.\n"}},"type":"object","required":["checkId","checkName","description"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getAccountDeletionCheckTaskNotAllowReason:getAccountDeletionCheckTaskNotAllowReason":{"properties":{"checkId":{"type":"string","description":"The ID of the check item.\n"},"checkName":{"type":"string","description":"The name of the cloud service to which the check item belongs.\n"},"description":{"type":"string","description":"The description of the check item.\n"}},"type":"object","required":["checkId","checkName","description"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getAccountsAccount:getAccountsAccount":{"properties":{"accountId":{"type":"string","description":"The Alibaba Cloud account ID of the member.\n"},"accountName":{"type":"string","description":"(Available since v1.125.0) The Alibaba Cloud account name of the member. **Note:** \u003cspan pulumi-lang-nodejs=\"`accountName`\" pulumi-lang-dotnet=\"`AccountName`\" pulumi-lang-go=\"`accountName`\" pulumi-lang-python=\"`account_name`\" pulumi-lang-yaml=\"`accountName`\" pulumi-lang-java=\"`accountName`\"\u003e`account_name`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"deletionStatus":{"type":"string","description":"(Available since v1.264.0) The deletion status of the member.\n"},"displayName":{"type":"string","description":"The display name of the member.\n"},"folderId":{"type":"string","description":"The ID of the folder.\n"},"id":{"type":"string","description":"The ID of the Account.\n"},"joinMethod":{"type":"string","description":"The way in which the member joins the resource directory.\n"},"joinTime":{"type":"string","description":"The time when the member joined the resource directory.\n"},"modifyTime":{"type":"string","description":"The time when the member was modified.\n"},"payerAccountId":{"type":"string","description":"(Available since v1.124.3) The ID of the settlement account. **Note:** \u003cspan pulumi-lang-nodejs=\"`payerAccountId`\" pulumi-lang-dotnet=\"`PayerAccountId`\" pulumi-lang-go=\"`payerAccountId`\" pulumi-lang-python=\"`payer_account_id`\" pulumi-lang-yaml=\"`payerAccountId`\" pulumi-lang-java=\"`payerAccountId`\"\u003e`payer_account_id`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"resourceDirectoryId":{"type":"string","description":"The ID of the resource directory.\n"},"status":{"type":"string","description":"The status of account. Valid values: `CreateCancelled`, `CreateExpired`, `CreateFailed`, `CreateSuccess`, `CreateVerifying`, `InviteSuccess`, `PromoteCancelled`, `PromoteExpired`, `PromoteFailed`, `PromoteSuccess`, `PromoteVerifying`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"The type of the member.\n"}},"type":"object","required":["accountId","accountName","deletionStatus","displayName","folderId","id","joinMethod","joinTime","modifyTime","payerAccountId","resourceDirectoryId","status","tags","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getControlPoliciesPolicy:getControlPoliciesPolicy":{"properties":{"attachmentCount":{"type":"integer","description":"The count of policy attachment.\n"},"controlPolicyName":{"type":"string","description":"The name of policy.\n"},"description":{"type":"string","description":"The description of policy.\n"},"effectScope":{"type":"string","description":"The effect scope.\n"},"id":{"type":"string","description":"The ID of the Control Policy.\n"},"policyDocument":{"type":"string","description":"The policy document.\n"},"policyId":{"type":"string","description":"The ID of policy.\n"},"policyType":{"type":"string","description":"The type of policy.\n"}},"type":"object","required":["attachmentCount","controlPolicyName","description","effectScope","id","policyDocument","policyId","policyType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getControlPolicyAttachmentsAttachment:getControlPolicyAttachmentsAttachment":{"properties":{"attachDate":{"type":"string","description":"The attach date.\n"},"description":{"type":"string","description":"The description of policy.\n"},"id":{"type":"string","description":"The ID of the Control Policy Attachment.\n"},"policyId":{"type":"string","description":"The ID of policy.\n"},"policyName":{"type":"string","description":"The name of policy.\n"},"policyType":{"type":"string","description":"The type of policy.\n"}},"type":"object","required":["attachDate","description","id","policyId","policyName","policyType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getDelegatedAdministratorsAdministrator:getDelegatedAdministratorsAdministrator":{"properties":{"accountId":{"type":"string","description":"The ID of the member account.\n"},"delegationEnabledTime":{"type":"string","description":"The time when the member was specified as a delegated administrator account.\n"},"id":{"type":"string","description":"The ID of the Delegated Administrator.\n"},"servicePrincipal":{"type":"string","description":"The identity of the trusted service.\n"}},"type":"object","required":["accountId","delegationEnabledTime","id","servicePrincipal"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getFoldersFolder:getFoldersFolder":{"properties":{"folderId":{"type":"string","description":"The ID of the Folder.\n"},"folderName":{"type":"string","description":"The Name of the Folder.\n"},"id":{"type":"string","description":"The ID of the Resource Manager Folder.\n"},"parentFolderId":{"type":"string","description":"The ID of the parent folder. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`parentFolderId`\" pulumi-lang-dotnet=\"`ParentFolderId`\" pulumi-lang-go=\"`parentFolderId`\" pulumi-lang-python=\"`parent_folder_id`\" pulumi-lang-yaml=\"`parentFolderId`\" pulumi-lang-java=\"`parentFolderId`\"\u003e`parent_folder_id`\u003c/span\u003e is not set, the information of the first-level subfolders of the Root folder is queried.\n"}},"type":"object","required":["folderId","folderName","id","parentFolderId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getHandshakesHandshake:getHandshakesHandshake":{"properties":{"expireTime":{"type":"string","description":"The time when the invitation expires.\n"},"handshakeId":{"type":"string","description":"The ID of the invitation.\n"},"id":{"type":"string","description":"The ID of the resource.\n"},"invitedAccountRealName":{"type":"string","description":"(Available in v1.114.0+) The real name of the invited account.\n"},"masterAccountId":{"type":"string","description":"The ID of the master account of the resource directory.\n"},"masterAccountName":{"type":"string","description":"The name of the master account of the resource directory.\n"},"masterAccountRealName":{"type":"string","description":"(Available in v1.114.0+) The real name of the master account of the resource directory.\n"},"modifyTime":{"type":"string","description":"The time when the invitation was modified.\n"},"note":{"type":"string","description":"The invitation note.\n"},"resourceDirectoryId":{"type":"string","description":"The ID of the resource directory.\n"},"status":{"type":"string","description":"The status of handshake, valid values: `Accepted`, `Cancelled`, `Declined`, `Deleted`, `Expired` and `Pending`.\n"},"targetEntity":{"type":"string","description":"The ID or logon email address of the invited account.\n"},"targetType":{"type":"string","description":"The type of the invited account.\n"}},"type":"object","required":["expireTime","handshakeId","id","invitedAccountRealName","masterAccountId","masterAccountName","masterAccountRealName","modifyTime","note","resourceDirectoryId","status","targetEntity","targetType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getPoliciesPolicy:getPoliciesPolicy":{"properties":{"attachmentCount":{"type":"integer","description":"The number of times the policy is referenced.\n"},"defaultVersion":{"type":"string","description":"The default version of the policy.\n"},"description":{"type":"string","description":"The description of the policy.\n"},"id":{"type":"string","description":"The ID of the policy.\n"},"policyName":{"type":"string","description":"The name of the policy.\n"},"policyType":{"type":"string","description":"The type of the policy. If you do not specify this parameter, the system lists all types of policies. Valid values: `Custom` and `System`.\n"},"updateDate":{"type":"string","description":"The time when the policy was updated.\n"}},"type":"object","required":["attachmentCount","defaultVersion","description","id","policyName","policyType","updateDate"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getPolicyAttachmentsAttachment:getPolicyAttachmentsAttachment":{"properties":{"attachDate":{"type":"string","description":"The time when the policy was attached.\n"},"description":{"type":"string","description":"The description of the policy.\n"},"id":{"type":"string","description":"The ID of the Resource Manager Policy Attachment.\n"},"policyName":{"type":"string","description":"The name of the policy. The name must be 1 to 128 characters in length and can contain letters, digits, and hyphens (-).\n"},"policyType":{"type":"string","description":"The type of the policy. Valid values: `Custom` and `System`.\n"},"principalName":{"type":"string","description":"The name of the object to which the policy is attached.\n"},"principalType":{"type":"string","description":"The type of the object to which the policy is attached. If you do not specify this parameter, the system lists all types of objects. Valid values: `IMSUser`: RAM user, `IMSGroup`: RAM user group, `ServiceRole`: RAM role.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group or the ID of the Alibaba Cloud account to which the resource group belongs. If you do not specify this parameter, the system lists all policy attachment records under the current account.\n"}},"type":"object","required":["attachDate","description","id","policyName","policyType","principalName","principalType","resourceGroupId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getPolicyVersionsVersion:getPolicyVersionsVersion":{"properties":{"id":{"type":"string","description":"The ID of the resource, the value is `\u003cpolicy_name\u003e`:`\u003cversion_id\u003e`.\n"},"isDefaultVersion":{"type":"boolean","description":"Indicates whether the policy version is the default version.\n"},"policyDocument":{"type":"string","description":"(Available in v1.114.0+) The policy document of the policy version.\n"},"versionId":{"type":"string","description":"The ID of the policy version.\n"}},"type":"object","required":["id","isDefaultVersion","policyDocument","versionId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getResourceDirectoriesDirectory:getResourceDirectoriesDirectory":{"properties":{"id":{"type":"string","description":"The ID of resource directory.\n"},"masterAccountId":{"type":"string","description":"The ID of the master account.\n"},"masterAccountName":{"type":"string","description":"The name of the master account.\n"},"resourceDirectoryId":{"type":"string","description":"The ID of the resource directory.\n"},"rootFolderId":{"type":"string","description":"The ID of the root folder.\n"},"status":{"type":"string","description":"(Available in 1.120.0+.) The status of the control policy.\n"}},"type":"object","required":["id","masterAccountId","masterAccountName","resourceDirectoryId","rootFolderId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getResourceGroupsGroup:getResourceGroupsGroup":{"properties":{"accountId":{"type":"string","description":"The ID of the Alibaba Cloud account to which the resource group belongs.\n"},"displayName":{"type":"string","description":"The display name of the resource group.\n"},"id":{"type":"string","description":"The ID of the resource group.\n"},"name":{"type":"string","description":"The unique identifier of the resource group.\n"},"regionStatuses":{"type":"array","items":{"$ref":"#/types/alicloud:resourcemanager/getResourceGroupsGroupRegionStatus:getResourceGroupsGroupRegionStatus"},"description":"(Available since v1.114.0) The status of the resource group in all regions.\n"},"resourceGroupName":{"type":"string","description":"(Available since v1.114.0) The unique identifier of the resource group.\n"},"status":{"type":"string","description":"The status of the resource group. Valid values: `Creating`, `Deleted`, `Deleting`, `OK` and `PendingDelete`. **NOTE:** From version 1.114.0, \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e can be set to `Deleting`.\n"}},"type":"object","required":["accountId","displayName","id","name","regionStatuses","resourceGroupName","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getResourceGroupsGroupRegionStatus:getResourceGroupsGroupRegionStatus":{"properties":{"regionId":{"type":"string","description":"The region ID.\n"},"status":{"type":"string","description":"The status of the resource group. Valid values: `Creating`, `Deleted`, `Deleting`, `OK` and `PendingDelete`. **NOTE:** From version 1.114.0, \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e can be set to `Deleting`.\n"}},"type":"object","required":["regionId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getResourceSharesShare:getResourceSharesShare":{"properties":{"id":{"type":"string","description":"The ID of the Resource Share.\n"},"resourceShareId":{"type":"string","description":"The ID of the resource share.\n"},"resourceShareName":{"type":"string","description":"The name of resource share.\n"},"resourceShareOwner":{"type":"string","description":"The owner of resource share.\n"},"status":{"type":"string","description":"The status of resource share.\n"}},"type":"object","required":["id","resourceShareId","resourceShareName","resourceShareOwner","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getRolesRole:getRolesRole":{"properties":{"arn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the RAM role.\n"},"assumeRolePolicyDocument":{"type":"string","description":"(Available in v1.114.0+) The assume role policy document.\n"},"description":{"type":"string","description":"The description of the RAM role.\n"},"id":{"type":"string","description":"The ID of the role.\n"},"maxSessionDuration":{"type":"integer","description":"The maximum session duration of the RAM role.\n"},"roleId":{"type":"string","description":"The ID of the role.\n"},"roleName":{"type":"string","description":"The name of the role.\n"},"updateDate":{"type":"string","description":"The time when the RAM role was updated.\n"}},"type":"object","required":["arn","assumeRolePolicyDocument","description","id","maxSessionDuration","roleId","roleName","updateDate"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getSharedResourcesResource:getSharedResourcesResource":{"properties":{"id":{"type":"string","description":"The ID of the Shared Resource. It formats as `\u003cresource_id\u003e:\u003cresource_type\u003e`.\n"},"resourceId":{"type":"string","description":"The ID of the shared resource.\n"},"resourceShareId":{"type":"string","description":"The resource share ID of resource manager.\n"},"resourceType":{"type":"string","description":"The type of shared resource.\n"},"status":{"type":"string","description":"The status of share resource. Valid values: `Associated`, `Associating`, `Disassociated`, `Disassociating` and `Failed`.\n"}},"type":"object","required":["id","resourceId","resourceShareId","resourceType","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:resourcemanager/getSharedTargetsTarget:getSharedTargetsTarget":{"properties":{"id":{"type":"string","description":"The ID of the Shared Target.\n"},"resourceShareId":{"type":"string","description":"The resource share ID of resource manager.\n"},"status":{"type":"string","description":"The status of share resource. Valid values: `Associated`, `Associating`, `Disassociated`, `Disassociating` and `Failed`.\n"},"targetId":{"type":"string","description":"The ID of the Shared Target.\n"}},"type":"object","required":["id","resourceShareId","status","targetId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rocketmq/ConsumerGroupConsumeRetryPolicy:ConsumerGroupConsumeRetryPolicy":{"properties":{"deadLetterTargetTopic":{"type":"string","description":"The dead-letter topic. If the consumer fails to consume a message in an abnormal situation and the message is still unsuccessful after retrying, the message will be delivered to the dead letter Topic for subsequent business recovery or backtracking.\n"},"maxRetryTimes":{"type":"integer","description":"Maximum number of retries.\n"},"retryPolicy":{"type":"string","description":"Consume retry policy.\n"}},"type":"object"},"alicloud:rocketmq/RocketMQInstanceAclInfo:RocketMQInstanceAclInfo":{"properties":{"aclTypes":{"type":"array","items":{"type":"string"},"description":"The authentication type of the instance. Valid values:\n"},"defaultVpcAuthFree":{"type":"boolean","description":"Indicates whether the authentication-free in VPCs feature is enabled. Indicates whether the authentication-free in VPCs feature is enabled. Valid values:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["aclTypes","defaultVpcAuthFree"]}}},"alicloud:rocketmq/RocketMQInstanceNetworkInfo:RocketMQInstanceNetworkInfo":{"properties":{"endpoints":{"type":"array","items":{"$ref":"#/types/alicloud:rocketmq/RocketMQInstanceNetworkInfoEndpoint:RocketMQInstanceNetworkInfoEndpoint"},"description":"Access point list.\n"},"internetInfo":{"$ref":"#/types/alicloud:rocketmq/RocketMQInstanceNetworkInfoInternetInfo:RocketMQInstanceNetworkInfoInternetInfo","description":"instance internet info. See \u003cspan pulumi-lang-nodejs=\"`internetInfo`\" pulumi-lang-dotnet=\"`InternetInfo`\" pulumi-lang-go=\"`internetInfo`\" pulumi-lang-python=\"`internet_info`\" pulumi-lang-yaml=\"`internetInfo`\" pulumi-lang-java=\"`internetInfo`\"\u003e`internet_info`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"vpcInfo":{"$ref":"#/types/alicloud:rocketmq/RocketMQInstanceNetworkInfoVpcInfo:RocketMQInstanceNetworkInfoVpcInfo","description":"Proprietary network information. See \u003cspan pulumi-lang-nodejs=\"`vpcInfo`\" pulumi-lang-dotnet=\"`VpcInfo`\" pulumi-lang-go=\"`vpcInfo`\" pulumi-lang-python=\"`vpc_info`\" pulumi-lang-yaml=\"`vpcInfo`\" pulumi-lang-java=\"`vpcInfo`\"\u003e`vpc_info`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object","required":["internetInfo","vpcInfo"],"language":{"nodejs":{"requiredOutputs":["endpoints","internetInfo","vpcInfo"]}}},"alicloud:rocketmq/RocketMQInstanceNetworkInfoEndpoint:RocketMQInstanceNetworkInfoEndpoint":{"properties":{"endpointType":{"type":"string","description":"Access point type.\n"},"endpointUrl":{"type":"string","description":"Access point address.\n"},"ipWhiteLists":{"type":"array","items":{"type":"string"},"description":"White list of access addresses.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endpointType","endpointUrl","ipWhiteLists"]}}},"alicloud:rocketmq/RocketMQInstanceNetworkInfoInternetInfo:RocketMQInstanceNetworkInfoInternetInfo":{"properties":{"flowOutBandwidth":{"type":"integer","description":"Public network bandwidth specification. Unit: Mb/s.  This field should only be filled when the public network billing type is set to payByBandwidth.  The value range is [1 - 1000].\n","willReplaceOnChanges":true},"flowOutType":{"type":"string","description":"Public network billing type.  Parameter values are as follows:\n- payByBandwidth: Fixed bandwidth billing. This parameter must be set to the value when public network access is enabled.\n- uninvolved: Not involved. This parameter must be set to the value when public network access is disabled.\n","willReplaceOnChanges":true},"internetSpec":{"type":"string","description":"Whether to enable public network access.  The parameter values are as follows:\n- enable: Enable public network access\n- disable: Disable public network access   Instances by default support VPC access. If public network access is enabled, Alibaba Cloud Message Queue RocketMQ version will incur charges for public network outbound bandwidth. For specific billing information, please refer to [Public Network Access Fees](https://help.aliyun.com/zh/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/product-overview/internet-access-fee).\n","willReplaceOnChanges":true},"ipWhitelists":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`ipWhitelist`\" pulumi-lang-dotnet=\"`IpWhitelist`\" pulumi-lang-go=\"`ipWhitelist`\" pulumi-lang-python=\"`ip_whitelist`\" pulumi-lang-yaml=\"`ipWhitelist`\" pulumi-lang-java=\"`ipWhitelist`\"\u003e`ip_whitelist`\u003c/span\u003e has been deprecated from provider version 1.245.0. New field \u003cspan pulumi-lang-nodejs=\"`ipWhitelists`\" pulumi-lang-dotnet=\"`IpWhitelists`\" pulumi-lang-go=\"`ipWhitelists`\" pulumi-lang-python=\"`ip_whitelists`\" pulumi-lang-yaml=\"`ipWhitelists`\" pulumi-lang-java=\"`ipWhitelists`\"\u003e`ip_whitelists`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'ip_whitelist' has been deprecated from provider version 1.245.0. New field 'ip_whitelists' instead."}},"type":"object","required":["flowOutType","internetSpec"]},"alicloud:rocketmq/RocketMQInstanceNetworkInfoVpcInfo:RocketMQInstanceNetworkInfoVpcInfo":{"properties":{"securityGroupIds":{"type":"string","description":"Security group id.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"Proprietary Network.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"VPC switch id.\n","deprecationMessage":"Field 'vswitch_id' has been deprecated from provider version 1.231.0. New field 'vswitches' instead.","willReplaceOnChanges":true},"vswitches":{"type":"array","items":{"$ref":"#/types/alicloud:rocketmq/RocketMQInstanceNetworkInfoVpcInfoVswitch:RocketMQInstanceNetworkInfoVpcInfoVswitch"},"description":"Multiple VSwitches. At least two VSwitches are required for a serverless instance. See \u003cspan pulumi-lang-nodejs=\"`vswitches`\" pulumi-lang-dotnet=\"`Vswitches`\" pulumi-lang-go=\"`vswitches`\" pulumi-lang-python=\"`vswitches`\" pulumi-lang-yaml=\"`vswitches`\" pulumi-lang-java=\"`vswitches`\"\u003e`vswitches`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object","required":["vpcId"],"language":{"nodejs":{"requiredOutputs":["vpcId","vswitchId","vswitches"]}}},"alicloud:rocketmq/RocketMQInstanceNetworkInfoVpcInfoVswitch:RocketMQInstanceNetworkInfoVpcInfoVswitch":{"properties":{"vswitchId":{"type":"string","description":"VPC switch id.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["vswitchId"]}}},"alicloud:rocketmq/RocketMQInstanceProductInfo:RocketMQInstanceProductInfo":{"properties":{"autoScaling":{"type":"boolean","description":"is open auto scaling.\n"},"messageRetentionTime":{"type":"integer","description":"Duration of message retention. Unit: hours.  For the range of values, please refer to [Usage Limits](https://help.aliyun.com/zh/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/product-overview/usage-limits)\u003eResource Quotas\u003eLimitations on Message Retention.  The message storage in AlibabaCloud RocketMQ is fully implemented in a serverless and elastic manner, with charges based on the actual storage space. You can control the storage capacity of messages by adjusting the duration of message retention. For more information, please see [Storage Fees](https://help.aliyun.com/zh/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/product-overview/storage-fees).\n"},"msgProcessSpec":{"type":"string","description":"Message sending and receiving calculation specifications. For details about the upper limit for sending and receiving messages, see [Instance Specifications](https://help.aliyun.com/zh/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/product-overview/instance-specifications).\n","willReplaceOnChanges":true},"sendReceiveRatio":{"type":"number","description":"message send receive ratio.  Value range: [0.2, 0.5].\n"},"storageEncryption":{"type":"boolean","description":"Specifies whether to enable the encryption at rest feature. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"storageSecretKey":{"type":"string","description":"The key for encryption at rest.\n","willReplaceOnChanges":true},"supportAutoScaling":{"type":"boolean","description":"is support auto scaling.\n"},"traceOn":{"type":"boolean","description":"Whether to enable the message trace function. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object","required":["msgProcessSpec"],"language":{"nodejs":{"requiredOutputs":["msgProcessSpec","sendReceiveRatio","supportAutoScaling","traceOn"]}}},"alicloud:rocketmq/RocketMQInstanceSoftware:RocketMQInstanceSoftware":{"properties":{"maintainTime":{"type":"string","description":"Upgrade time period.\n"},"softwareVersion":{"type":"string","description":"Software version.\n"},"upgradeMethod":{"type":"string","description":"Upgrade method.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maintainTime","softwareVersion","upgradeMethod"]}}},"alicloud:rocketmq/getGroupsGroup:getGroupsGroup":{"properties":{"groupName":{"type":"string","description":"The name of the group.\n"},"groupType":{"type":"string","description":"Specify the protocol applicable to the created Group ID. Valid values: \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e.\n"},"id":{"type":"string","description":"The name of the group.\n"},"independentNaming":{"type":"boolean","description":"Indicates whether namespaces are available. Read [Fields in SubscribeInfoDo](https://www.alibabacloud.com/help/doc-detail/29619.html) for further details.\n"},"instanceId":{"type":"string","description":"ID of the ONS Instance that owns the groups.\n"},"owner":{"type":"string","description":"The ID of the group owner, which is the Alibaba Cloud UID.\n"},"remark":{"type":"string","description":"Remark of the group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the Ons instance.\n"}},"type":"object","required":["groupName","groupType","id","independentNaming","instanceId","owner","remark","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rocketmq/getInstancesInstance:getInstancesInstance":{"properties":{"httpInternalEndpoint":{"type":"string","description":"The internal HTTP endpoint for the Message Queue for Apache RocketMQ instance.\n"},"httpInternetEndpoint":{"type":"string","description":"The public HTTP endpoint for the Message Queue for Apache RocketMQ instance.\n"},"httpInternetSecureEndpoint":{"type":"string","description":"The public HTTPS endpoint for the Message Queue for Apache RocketMQ instance.\n"},"id":{"type":"string","description":"ID of the instance.\n"},"independentNaming":{"type":"boolean","description":"Indicates whether any namespace is configured for the Message Queue for Apache RocketMQ instance.\n"},"instanceId":{"type":"string","description":"ID of the instance.\n"},"instanceName":{"type":"string","description":"Name of the instance.\n"},"instanceStatus":{"type":"integer","description":"The status of the instance. Read [Fields in InstanceVO](https://www.alibabacloud.com/help/doc-detail/106351.html) for further details.\n"},"instanceType":{"type":"integer","description":"The type of the instance. Read [Fields in InstanceVO](https://www.alibabacloud.com/help/doc-detail/106351.html) for further details.\n"},"releaseTime":{"type":"string","description":"The automatic release time of an Enterprise Platinum Edition instance.\n"},"remark":{"type":"string","description":"This attribute is a concise description of instance.\n"},"status":{"type":"integer","description":"The status of Ons instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e deploying, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e arrears, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e running, \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e upgrading.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the Ons instance.\n"},"tcpEndpoint":{"type":"string","description":"The TCP endpoint for the Message Queue for Apache RocketMQ instance.\n"}},"type":"object","required":["httpInternalEndpoint","httpInternetEndpoint","httpInternetSecureEndpoint","id","independentNaming","instanceId","instanceName","instanceStatus","instanceType","releaseTime","remark","status","tags","tcpEndpoint"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:rocketmq/getTopicsTopic:getTopicsTopic":{"properties":{"id":{"type":"string","description":"The id of the topic.\n"},"independentNaming":{"type":"boolean","description":"Indicates whether namespaces are available. Read [Fields in PublishInfoDo](https://www.alibabacloud.com/help/doc-detail/29590.html) for further details.\n"},"instanceId":{"type":"string","description":"ID of the ONS Instance that owns the topics.\n"},"messageType":{"type":"integer","description":"The type of the message. Read [Fields in PublishInfoDo](https://www.alibabacloud.com/help/doc-detail/29590.html) for further details.\n"},"owner":{"type":"string","description":"The ID of the topic owner, which is the Alibaba Cloud UID.\n"},"perm":{"type":"integer","description":"This attribute is used to set the read-write mode for the topic.\n"},"relation":{"type":"integer","description":"The relation ID. Read [Fields in PublishInfoDo](https://www.alibabacloud.com/help/doc-detail/29590.html) for further details.\n"},"relationName":{"type":"string","description":"The name of the relation, for example, owner, publishable, subscribable, and publishable and subscribable.\n"},"remark":{"type":"string","description":"Remark of the topic.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the Ons instance.\n"},"topic":{"type":"string","description":"The name of the topic.\n"},"topicName":{"type":"string","description":"The name of the topic.\n"}},"type":"object","required":["id","independentNaming","instanceId","messageType","owner","perm","relation","relationName","remark","tags","topic","topicName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ros/ChangeSetParameter:ChangeSetParameter":{"properties":{"parameterKey":{"type":"string","description":"The parameter key.\n"},"parameterValue":{"type":"string","description":"The parameter value.\n"}},"type":"object","required":["parameterKey","parameterValue"]},"alicloud:ros/StackGroupAutoDeployment:StackGroupAutoDeployment":{"properties":{"enabled":{"type":"boolean","description":"Enable or disable automatic deployment. Valid Values:\n"},"retainStacksOnAccountRemoval":{"type":"boolean","description":"Whether to retain the stack in the member account when the member account is deleted from the target folder. Valid values:\n"}},"type":"object"},"alicloud:ros/StackGroupParameter:StackGroupParameter":{"properties":{"parameterKey":{"type":"string","description":"The key of parameter N. If you do not specify the key and value of the parameter, ROS uses the default key and value in the template.\n"},"parameterValue":{"type":"string","description":"The value of parameter N.\n"}},"type":"object","required":["parameterKey","parameterValue"]},"alicloud:ros/StackInstanceParameterOverride:StackInstanceParameterOverride":{"properties":{"parameterKey":{"type":"string","description":"The key of override parameter. If you do not specify the key and value of the parameter, ROS uses the key and value that you specified when you created the stack group.\n","secret":true},"parameterValue":{"type":"string","description":"The value of override parameter. If you do not specify the key and value of the parameter, ROS uses the key and value that you specified when you created the stack group.\n","secret":true}},"type":"object"},"alicloud:ros/StackParameter:StackParameter":{"properties":{"parameterKey":{"type":"string","description":"The parameter key.\n"},"parameterValue":{"type":"string","description":"The parameter value.\n"}},"type":"object","required":["parameterValue"]},"alicloud:ros/TemplateScratchPreferenceParameter:TemplateScratchPreferenceParameter":{"properties":{"parameterKey":{"type":"string","description":"Priority parameter key. For more information about values, see [supplementary instructions for request parameters](https://www.alibabacloud.com/help/zh/doc-detail/358846.html#h2-url-4).\n"},"parameterValue":{"type":"string","description":"Priority parameter value. For more information about values, see [supplementary instructions for request parameters](https://www.alibabacloud.com/help/zh/doc-detail/358846.html#h2-url-4).\n"}},"type":"object","required":["parameterKey","parameterValue"]},"alicloud:ros/TemplateScratchSourceResource:TemplateScratchSourceResource":{"properties":{"resourceId":{"type":"string","description":"The ID of the Source Resource.\n"},"resourceType":{"type":"string","description":"The type of the Source resource.\n"}},"type":"object","required":["resourceId","resourceType"]},"alicloud:ros/TemplateScratchSourceResourceGroup:TemplateScratchSourceResourceGroup":{"properties":{"resourceGroupId":{"type":"string","description":"The ID of the Source Resource Group.\n"},"resourceTypeFilters":{"type":"array","items":{"type":"string"}}},"type":"object","required":["resourceGroupId"]},"alicloud:ros/TemplateScratchSourceTag:TemplateScratchSourceTag":{"properties":{"resourceTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Source label. **NOTE:** A maximum of 10 source labels can be configured.\n"},"resourceTypeFilters":{"type":"array","items":{"type":"string"}}},"type":"object","required":["resourceTags"]},"alicloud:ros/getChangeSetsSet:getChangeSetsSet":{"properties":{"changeSetId":{"type":"string","description":"The ID of the change set.\n"},"changeSetName":{"type":"string","description":"The name of the change set.  The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.\n"},"changeSetType":{"type":"string","description":"The type of the change set. Valid values:  CREATE: creates a change set for a new stack. UPDATE: creates a change set for an existing stack. IMPORT: creates a change set for a new stack or an existing stack to import non-ROS-managed resources. If you create a change set for a new stack, ROS creates a stack that has a unique stack ID. The stack is in the REVIEW_IN_PROGRESS state until you execute the change set.  You cannot use the UPDATE type to create a change set for a new stack or the CREATE type to create a change set for an existing stack.\n"},"description":{"type":"string","description":"The description of the change set. The description can be up to 1,024 bytes in length.\n"},"disableRollback":{"type":"boolean","description":"Specifies whether to disable rollback on stack creation failure. Default value: false.  Valid values:  true: disables rollback on stack creation failure. false: enables rollback on stack creation failure. Note This parameter takes effect only when ChangeSetType is set to CREATE or IMPORT.\n"},"executionStatus":{"type":"string","description":"The execution status of change set N. Maximum value of N: 5. Valid values:  UNAVAILABLE AVAILABLE EXECUTE_IN_PROGRESS EXECUTE_COMPLETE EXECUTE_FAILED OBSOLETE.\n"},"id":{"type":"string","description":"The ID of the Change Set.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:ros/getChangeSetsSetParameter:getChangeSetsSetParameter"},"description":"Parameters.\n"},"stackId":{"type":"string","description":"The ID of the stack for which you want to create the change set. ROS generates the change set by comparing the stack information with the information that you submit, such as a modified template or different inputs.\n"},"stackName":{"type":"string","description":"The name of the stack for which you want to create the change set.  The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.  Note This parameter takes effect only when ChangeSetType is set to CREATE or IMPORT.\n"},"status":{"type":"string","description":"The status of the change set.\n"},"templateBody":{"type":"string","description":"The structure that contains the template body. The template body must be 1 to 524,288 bytes in length.  If the length of the template body is longer than required, we recommend that you add parameters to the HTTP POST request body to avoid request failures due to excessive length of URLs.  You can specify one of TemplateBody or TemplateURL parameters, but you cannot specify both of them.\n"},"timeoutInMinutes":{"type":"integer","description":"Timeout In Minutes.\n"}},"type":"object","required":["changeSetId","changeSetName","changeSetType","description","disableRollback","executionStatus","id","parameters","stackId","stackName","status","templateBody","timeoutInMinutes"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ros/getChangeSetsSetParameter:getChangeSetsSetParameter":{"properties":{"parameterKey":{"type":"string","description":"The parameters.\n"},"parameterValue":{"type":"string","description":"The parameters.\n"}},"type":"object","required":["parameterKey","parameterValue"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ros/getRegionsRegion:getRegionsRegion":{"properties":{"localName":{"type":"string","description":"The name of the region.\n"},"regionEndpoint":{"type":"string","description":"The endpoint of the region.\n"},"regionId":{"type":"string","description":"The ID of the region.\n"}},"type":"object","required":["localName","regionEndpoint","regionId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ros/getStackGroupsGroup:getStackGroupsGroup":{"properties":{"administrationRoleName":{"type":"string","description":"The name of the RAM administrator role assumed by ROS.\n"},"description":{"type":"string","description":"The description of the stack group.\n"},"executionRoleName":{"type":"string","description":"The name of the RAM execution role assumed by the administrator role.\n"},"id":{"type":"string","description":"The ID of the Stack Group.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:ros/getStackGroupsGroupParameter:getStackGroupsGroupParameter"},"description":"The parameters.\n"},"stackGroupId":{"type":"string","description":"The id of Stack Group.\n"},"stackGroupName":{"type":"string","description":"The name of the stack group..\n"},"status":{"type":"string","description":"The status of Stack Group.\n"},"templateBody":{"type":"string","description":"The structure that contains the template body.\n"}},"type":"object","required":["administrationRoleName","description","executionRoleName","id","parameters","stackGroupId","stackGroupName","status","templateBody"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ros/getStackGroupsGroupParameter:getStackGroupsGroupParameter":{"properties":{"parameterKey":{"type":"string","description":"The parameter key.\n"},"parameterValue":{"type":"string","description":"The parameter value.\n"}},"type":"object","required":["parameterKey","parameterValue"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ros/getStackInstancesInstance:getStackInstancesInstance":{"properties":{"id":{"type":"string","description":"The ID of the Stack Instance. The value formats as `\u003cstack_group_name\u003e:\u003cstack_instance_account_id\u003e:\u003cstack_instance_region_id\u003e`.\n"},"parameterOverrides":{"type":"array","items":{"$ref":"#/types/alicloud:ros/getStackInstancesInstanceParameterOverride:getStackInstancesInstanceParameterOverride"},"description":"ParameterOverrides.\n"},"stackGroupId":{"type":"string","description":"The ID of the stack group.\n"},"stackGroupName":{"type":"string","description":"The name of the stack group.\n"},"stackId":{"type":"string","description":"The ID of the stack corresponding to the stack instance.\n"},"stackInstanceAccountId":{"type":"string","description":"The account to which the stack instance belongs.\n"},"stackInstanceRegionId":{"type":"string","description":"The region of the stack instance.\n"},"status":{"type":"string","description":"The status of the stack instance. Valid values: `CURRENT` or `OUTDATED`. \n* `CURRENT`: The stack corresponding to the stack instance is up to date with the stack group.\n* `OUTDATED`: The stack corresponding to the stack instance is not up to date with the stack group. The `OUTDATED` state has the following possible causes:\n* When the CreateStackInstances operation is called to create stack instances, the corresponding stacks fail to be created.\n* When the UpdateStackInstances or UpdateStackGroup operation is called to update stack instances, the corresponding stacks fail to be updated, or only some of the stack instances are updated.\n* The create or update operation is not complete.\n"},"statusReason":{"type":"string","description":"The reason why the stack is in its current state.\n"}},"type":"object","required":["id","parameterOverrides","stackGroupId","stackGroupName","stackId","stackInstanceAccountId","stackInstanceRegionId","status","statusReason"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ros/getStackInstancesInstanceParameterOverride:getStackInstancesInstanceParameterOverride":{"properties":{"parameterKey":{"type":"string","description":"The key of override parameter.\n"},"parameterValue":{"type":"string","description":"The value of override parameter.\n"}},"type":"object","required":["parameterKey","parameterValue"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ros/getStacksStack:getStacksStack":{"properties":{"deletionProtection":{"type":"string","description":"Specifies whether to enable deletion protection on the stack.\n"},"description":{"type":"string","description":"The Description of the Stack.\n"},"disableRollback":{"type":"boolean","description":"Specifies whether to disable rollback on stack creation failure..\n"},"driftDetectionTime":{"type":"string","description":"Drift DetectionTime.\n"},"id":{"type":"string","description":"The ID of the Stack.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:ros/getStacksStackParameter:getStacksStackParameter"},"description":"The parameters.\n"},"parentStackId":{"type":"string","description":"Parent Stack Id.\n"},"ramRoleName":{"type":"string","description":"The RamRoleName.\n"},"rootStackId":{"type":"string","description":"Root Stack Id.\n"},"stackDriftStatus":{"type":"string","description":"Stack DriftStatus.\n"},"stackId":{"type":"string","description":"Stack Id.\n"},"stackName":{"type":"string","description":"Stack Name.\n"},"stackPolicyBody":{"type":"string","description":"The structure that contains the stack policy body.\n"},"status":{"type":"string","description":"The status of Stack. Valid Values: `CREATE_COMPLETE`, `CREATE_FAILED`, `CREATE_IN_PROGRESS`, `DELETE_COMPLETE`, `DELETE_FAILED`, `DELETE_IN_PROGRESS`, `ROLLBACK_COMPLETE`, `ROLLBACK_FAILED`, `ROLLBACK_IN_PROGRESS`.\n"},"statusReason":{"type":"string","description":"Status Reason.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Query the instance bound to the tag. The format of the incoming value is \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e string, including `TagKey` and `TagValue`. `TagKey` cannot be null, and `TagValue` can be empty. Format example `{\"key1\":\"value1\"}`.\n"},"templateDescription":{"type":"string","description":"Template Description.\n"},"timeoutInMinutes":{"type":"integer","description":"Specifies whether to use the values that were passed last time for the parameters that you do not specify in the current request.\n"}},"type":"object","required":["deletionProtection","description","disableRollback","driftDetectionTime","id","parameters","parentStackId","ramRoleName","rootStackId","stackDriftStatus","stackId","stackName","stackPolicyBody","status","statusReason","tags","templateDescription","timeoutInMinutes"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ros/getStacksStackParameter:getStacksStackParameter":{"properties":{"parameterKey":{"type":"string","description":"The key of parameters.\n"},"parameterValue":{"type":"string","description":"The value of parameters.\n"}},"type":"object","required":["parameterKey","parameterValue"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ros/getTemplateScratchesScratch:getTemplateScratchesScratch":{"properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"description":{"type":"string","description":"The description of the Template Scratch.\n"},"id":{"type":"string","description":"The ID of the Template Scratch.\n"},"logicalIdStrategy":{"type":"string","description":"The Logical ID generation strategy of the Template Scratch.\n"},"preferenceParameters":{"type":"array","items":{"$ref":"#/types/alicloud:ros/getTemplateScratchesScratchPreferenceParameter:getTemplateScratchesScratchPreferenceParameter"},"description":"Priority parameter.\n"},"sourceResourceGroups":{"type":"array","items":{"$ref":"#/types/alicloud:ros/getTemplateScratchesScratchSourceResourceGroup:getTemplateScratchesScratchSourceResourceGroup"},"description":"Source resource grouping.\n"},"sourceResources":{"type":"array","items":{"$ref":"#/types/alicloud:ros/getTemplateScratchesScratchSourceResource:getTemplateScratchesScratchSourceResource"},"description":"Source resource.\n"},"sourceTags":{"type":"array","items":{"$ref":"#/types/alicloud:ros/getTemplateScratchesScratchSourceTag:getTemplateScratchesScratchSourceTag"},"description":"The Source label list.\n"},"stacks":{"type":"array","items":{"$ref":"#/types/alicloud:ros/getTemplateScratchesScratchStack:getTemplateScratchesScratchStack"},"description":"A list of resource stacks associated with the resource scene.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"templateScratchId":{"type":"string","description":"The ID of the Template Scratch.\n"},"templateScratchType":{"type":"string","description":"The type of the Template Scratch.\n"}},"type":"object","required":["createTime","description","id","logicalIdStrategy","preferenceParameters","sourceResourceGroups","sourceResources","sourceTags","stacks","status","templateScratchId","templateScratchType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ros/getTemplateScratchesScratchPreferenceParameter:getTemplateScratchesScratchPreferenceParameter":{"properties":{"parameterKey":{"type":"string","description":"Priority parameter key.\n"},"parameterValue":{"type":"string","description":"Priority parameter value.\n"}},"type":"object","required":["parameterKey","parameterValue"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ros/getTemplateScratchesScratchSourceResource:getTemplateScratchesScratchSourceResource":{"properties":{"resourceId":{"type":"string","description":"The ID of the Source Resource.\n"},"resourceType":{"type":"string","description":"The type of the Source resource.\n"}},"type":"object","required":["resourceId","resourceType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ros/getTemplateScratchesScratchSourceResourceGroup:getTemplateScratchesScratchSourceResourceGroup":{"properties":{"resourceGroupId":{"type":"string","description":"The ID of the Source Resource Group.\n"},"resourceTypeFilters":{"type":"array","items":{"type":"string"},"description":"Source resource type filter list.\n"}},"type":"object","required":["resourceGroupId","resourceTypeFilters"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ros/getTemplateScratchesScratchSourceTag:getTemplateScratchesScratchSourceTag":{"properties":{"resourceTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Source label.\n"},"resourceTypeFilters":{"type":"array","items":{"type":"string"},"description":"Source resource type filter list.\n"}},"type":"object","required":["resourceTags","resourceTypeFilters"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ros/getTemplateScratchesScratchStack:getTemplateScratchesScratchStack":{"properties":{"stackId":{"type":"string","description":"The ID of the Resource stack.\n"}},"type":"object","required":["stackId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:ros/getTemplatesTemplate:getTemplatesTemplate":{"properties":{"changeSetId":{"type":"string","description":"The ID of the change set.\n"},"description":{"type":"string","description":"The description of the template. The description can be up to 256 characters in length.\n"},"id":{"type":"string","description":"The ID of the Template.\n"},"shareType":{"type":"string","description":"Share Type.\n"},"stackGroupName":{"type":"string","description":"The name of the stack group. The name must be unique in a region.  The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.\n"},"stackId":{"type":"string","description":"The ID of the stack.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags.\n"},"templateBody":{"type":"string","description":"The structure that contains the template body. The template body must be 1 to 524,288 bytes in length.  If the length of the template body is longer than required, we recommend that you add parameters to the HTTP POST request body to avoid request failures due to excessive length of URLs.  You must specify one of the TemplateBody and TemplateURL parameters, but you cannot specify both of them.\n"},"templateId":{"type":"string","description":"The ID of the template.\n"},"templateName":{"type":"string","description":"The name of the template.  The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.\n"},"templateVersion":{"type":"string","description":"Template Version.\n"}},"type":"object","required":["changeSetId","description","id","shareType","stackGroupName","stackId","tags","templateBody","templateId","templateName","templateVersion"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/ApplicationConfigMapMountDescV2:ApplicationConfigMapMountDescV2":{"properties":{"configMapId":{"type":"string","description":"The ID of the ConfigMap.\n"},"key":{"type":"string","description":"The key.\n"},"mountPath":{"type":"string","description":"The mount path.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["configMapId","key","mountPath"]}}},"alicloud:sae/ApplicationCustomHostAliasV2:ApplicationCustomHostAliasV2":{"properties":{"hostName":{"type":"string","description":"The domain name or hostname.\n"},"ip":{"type":"string","description":"The IP address.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["hostName","ip"]}}},"alicloud:sae/ApplicationKafkaConfigs:ApplicationKafkaConfigs":{"properties":{"kafkaConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:sae/ApplicationKafkaConfigsKafkaConfig:ApplicationKafkaConfigsKafkaConfig"},"description":"One or more logging configurations of ApsaraMQ for Kafka. See \u003cspan pulumi-lang-nodejs=\"`kafkaConfigs`\" pulumi-lang-dotnet=\"`KafkaConfigs`\" pulumi-lang-go=\"`kafkaConfigs`\" pulumi-lang-python=\"`kafka_configs`\" pulumi-lang-yaml=\"`kafkaConfigs`\" pulumi-lang-java=\"`kafkaConfigs`\"\u003e`kafka_configs`\u003c/span\u003e below.\n"},"kafkaEndpoint":{"type":"string","description":"The endpoint of the ApsaraMQ for Kafka API.\n"},"kafkaInstanceId":{"type":"string","description":"The  ID of the ApsaraMQ for Kafka instance.\n"}},"type":"object"},"alicloud:sae/ApplicationKafkaConfigsKafkaConfig:ApplicationKafkaConfigsKafkaConfig":{"properties":{"kafkaTopic":{"type":"string","description":"The topic of the Kafka.\n"},"logDir":{"type":"string","description":"The path in which logs are stored.\n"},"logType":{"type":"string","description":"The type of the log.\n"}},"type":"object"},"alicloud:sae/ApplicationLivenessV2:ApplicationLivenessV2":{"properties":{"exec":{"$ref":"#/types/alicloud:sae/ApplicationLivenessV2Exec:ApplicationLivenessV2Exec","description":"Execute. See \u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e below.\n"},"failureThreshold":{"type":"integer","description":"The number of consecutive failures required before considering the container as unhealthy. Increasing this value makes the container more tolerant to transient failures.\n"},"httpGet":{"$ref":"#/types/alicloud:sae/ApplicationLivenessV2HttpGet:ApplicationLivenessV2HttpGet","description":"The liveness check settings of the container. See \u003cspan pulumi-lang-nodejs=\"`httpGet`\" pulumi-lang-dotnet=\"`HttpGet`\" pulumi-lang-go=\"`httpGet`\" pulumi-lang-python=\"`http_get`\" pulumi-lang-yaml=\"`httpGet`\" pulumi-lang-java=\"`httpGet`\"\u003e`http_get`\u003c/span\u003e below.\n"},"initialDelaySeconds":{"type":"integer","description":"The delay of the health check.\n"},"periodSeconds":{"type":"integer","description":"The interval at which the health check is performed.\n"},"tcpSocket":{"$ref":"#/types/alicloud:sae/ApplicationLivenessV2TcpSocket:ApplicationLivenessV2TcpSocket","description":"The liveness check settings of the container. See \u003cspan pulumi-lang-nodejs=\"`tcpSocket`\" pulumi-lang-dotnet=\"`TcpSocket`\" pulumi-lang-go=\"`tcpSocket`\" pulumi-lang-python=\"`tcp_socket`\" pulumi-lang-yaml=\"`tcpSocket`\" pulumi-lang-java=\"`tcpSocket`\"\u003e`tcp_socket`\u003c/span\u003e below.\n"},"timeoutSeconds":{"type":"integer","description":"The timeout period of the health check.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["exec","failureThreshold","httpGet","initialDelaySeconds","periodSeconds","tcpSocket","timeoutSeconds"]}}},"alicloud:sae/ApplicationLivenessV2Exec:ApplicationLivenessV2Exec":{"properties":{"commands":{"type":"array","items":{"type":"string"},"description":"Mirror start command. The command must be an executable object in the container. For example: sleep. Setting this command will cause the original startup command of the mirror to become invalid.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["commands"]}}},"alicloud:sae/ApplicationLivenessV2HttpGet:ApplicationLivenessV2HttpGet":{"properties":{"isContainKeyWord":{"type":"boolean"},"keyWord":{"type":"string"},"path":{"type":"string"},"port":{"type":"integer"},"scheme":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["isContainKeyWord","keyWord","path","port","scheme"]}}},"alicloud:sae/ApplicationLivenessV2TcpSocket:ApplicationLivenessV2TcpSocket":{"properties":{"port":{"type":"integer"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"alicloud:sae/ApplicationNasConfig:ApplicationNasConfig":{"properties":{"mountDomain":{"type":"string","description":"The domain name of the mount target.\n"},"mountPath":{"type":"string","description":"The mount path of the container.\n"},"nasId":{"type":"string","description":"The ID of the NAS file system.\n"},"nasPath":{"type":"string","description":"The directory in the NAS file system.\n"},"readOnly":{"type":"boolean","description":"Specifies whether the application can read data from or write data to resources in the directory of the NAS. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. If you set \u003cspan pulumi-lang-nodejs=\"`readOnly`\" pulumi-lang-dotnet=\"`ReadOnly`\" pulumi-lang-go=\"`readOnly`\" pulumi-lang-python=\"`read_only`\" pulumi-lang-yaml=\"`readOnly`\" pulumi-lang-java=\"`readOnly`\"\u003e`read_only`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the application has the read and write permissions.\n"}},"type":"object"},"alicloud:sae/ApplicationOssMountDescsV2:ApplicationOssMountDescsV2":{"properties":{"bucketName":{"type":"string","description":"The name of the OSS bucket.\n"},"bucketPath":{"type":"string","description":"The directory or object in OSS.\n"},"mountPath":{"type":"string","description":"The path of the container in SAE.\n"},"readOnly":{"type":"boolean","description":"Specifies whether the application can use the container path to read data from or write data to resources in the directory of the OSS bucket. Valid values:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["bucketName","bucketPath","mountPath","readOnly"]}}},"alicloud:sae/ApplicationPostStartV2:ApplicationPostStartV2":{"properties":{"exec":{"$ref":"#/types/alicloud:sae/ApplicationPostStartV2Exec:ApplicationPostStartV2Exec","description":"Execute. See \u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["exec"]}}},"alicloud:sae/ApplicationPostStartV2Exec:ApplicationPostStartV2Exec":{"properties":{"commands":{"type":"array","items":{"type":"string"},"description":"Mirror start command. The command must be an executable object in the container. For example: sleep. Setting this command will cause the original startup command of the mirror to become invalid.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["commands"]}}},"alicloud:sae/ApplicationPreStopV2:ApplicationPreStopV2":{"properties":{"exec":{"$ref":"#/types/alicloud:sae/ApplicationPreStopV2Exec:ApplicationPreStopV2Exec","description":"Execute. See \u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["exec"]}}},"alicloud:sae/ApplicationPreStopV2Exec:ApplicationPreStopV2Exec":{"properties":{"commands":{"type":"array","items":{"type":"string"},"description":"Mirror start command. The command must be an executable object in the container. For example: sleep. Setting this command will cause the original startup command of the mirror to become invalid.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["commands"]}}},"alicloud:sae/ApplicationPvtzDiscoverySvc:ApplicationPvtzDiscoverySvc":{"properties":{"enable":{"type":"boolean","description":"Enables the Kubernetes Service-based registration and discovery feature.\n"},"namespaceId":{"type":"string","description":"The ID of the namespace.\n","willReplaceOnChanges":true},"portProtocols":{"type":"array","items":{"$ref":"#/types/alicloud:sae/ApplicationPvtzDiscoverySvcPortProtocol:ApplicationPvtzDiscoverySvcPortProtocol"},"description":"The port number and protocol. See \u003cspan pulumi-lang-nodejs=\"`portProtocols`\" pulumi-lang-dotnet=\"`PortProtocols`\" pulumi-lang-go=\"`portProtocols`\" pulumi-lang-python=\"`port_protocols`\" pulumi-lang-yaml=\"`portProtocols`\" pulumi-lang-java=\"`portProtocols`\"\u003e`port_protocols`\u003c/span\u003e below.\n"},"serviceName":{"type":"string","description":"The name of the Service.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:sae/ApplicationPvtzDiscoverySvcPortProtocol:ApplicationPvtzDiscoverySvcPortProtocol":{"properties":{"port":{"type":"integer"},"protocol":{"type":"string","description":"The protocol. Valid values: `TCP` and `UDP`.\n"}},"type":"object"},"alicloud:sae/ApplicationReadinessV2:ApplicationReadinessV2":{"properties":{"exec":{"$ref":"#/types/alicloud:sae/ApplicationReadinessV2Exec:ApplicationReadinessV2Exec","description":"Execute. See \u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e below.\n"},"failureThreshold":{"type":"integer","description":"The number of consecutive failures required before considering the container as unhealthy. Increasing this value makes the container more tolerant to transient failures.\n"},"httpGet":{"$ref":"#/types/alicloud:sae/ApplicationReadinessV2HttpGet:ApplicationReadinessV2HttpGet","description":"The liveness check settings of the container. See \u003cspan pulumi-lang-nodejs=\"`httpGet`\" pulumi-lang-dotnet=\"`HttpGet`\" pulumi-lang-go=\"`httpGet`\" pulumi-lang-python=\"`http_get`\" pulumi-lang-yaml=\"`httpGet`\" pulumi-lang-java=\"`httpGet`\"\u003e`http_get`\u003c/span\u003e below.\n"},"initialDelaySeconds":{"type":"integer","description":"The delay of the health check.\n"},"periodSeconds":{"type":"integer","description":"The interval at which the health check is performed.\n"},"successThreshold":{"type":"integer","description":"The number of consecutive successes required before considering the container as healthy. Increasing this value makes the container more tolerant to transient successes during recovery.\n"},"tcpSocket":{"$ref":"#/types/alicloud:sae/ApplicationReadinessV2TcpSocket:ApplicationReadinessV2TcpSocket","description":"The liveness check settings of the container. See \u003cspan pulumi-lang-nodejs=\"`tcpSocket`\" pulumi-lang-dotnet=\"`TcpSocket`\" pulumi-lang-go=\"`tcpSocket`\" pulumi-lang-python=\"`tcp_socket`\" pulumi-lang-yaml=\"`tcpSocket`\" pulumi-lang-java=\"`tcpSocket`\"\u003e`tcp_socket`\u003c/span\u003e below.\n"},"timeoutSeconds":{"type":"integer","description":"The timeout period of the health check.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["exec","failureThreshold","httpGet","initialDelaySeconds","periodSeconds","successThreshold","tcpSocket","timeoutSeconds"]}}},"alicloud:sae/ApplicationReadinessV2Exec:ApplicationReadinessV2Exec":{"properties":{"commands":{"type":"array","items":{"type":"string"},"description":"Mirror start command. The command must be an executable object in the container. For example: sleep. Setting this command will cause the original startup command of the mirror to become invalid.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["commands"]}}},"alicloud:sae/ApplicationReadinessV2HttpGet:ApplicationReadinessV2HttpGet":{"properties":{"isContainKeyWord":{"type":"boolean"},"keyWord":{"type":"string"},"path":{"type":"string"},"port":{"type":"integer"},"scheme":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["isContainKeyWord","keyWord","path","port","scheme"]}}},"alicloud:sae/ApplicationReadinessV2TcpSocket:ApplicationReadinessV2TcpSocket":{"properties":{"port":{"type":"integer"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"alicloud:sae/ApplicationScalingRuleScalingRuleMetric:ApplicationScalingRuleScalingRuleMetric":{"properties":{"maxReplicas":{"type":"integer","description":"Maximum number of instances applied.\n"},"metrics":{"type":"array","items":{"$ref":"#/types/alicloud:sae/ApplicationScalingRuleScalingRuleMetricMetric:ApplicationScalingRuleScalingRuleMetricMetric"},"description":"Indicator rule configuration. See \u003cspan pulumi-lang-nodejs=\"`metrics`\" pulumi-lang-dotnet=\"`Metrics`\" pulumi-lang-go=\"`metrics`\" pulumi-lang-python=\"`metrics`\" pulumi-lang-yaml=\"`metrics`\" pulumi-lang-java=\"`metrics`\"\u003e`metrics`\u003c/span\u003e below.\n"},"minReplicas":{"type":"integer","description":"Minimum number of instances applied.\n"},"scaleDownRules":{"$ref":"#/types/alicloud:sae/ApplicationScalingRuleScalingRuleMetricScaleDownRules:ApplicationScalingRuleScalingRuleMetricScaleDownRules","description":"Apply shrink rules. See \u003cspan pulumi-lang-nodejs=\"`scaleDownRules`\" pulumi-lang-dotnet=\"`ScaleDownRules`\" pulumi-lang-go=\"`scaleDownRules`\" pulumi-lang-python=\"`scale_down_rules`\" pulumi-lang-yaml=\"`scaleDownRules`\" pulumi-lang-java=\"`scaleDownRules`\"\u003e`scale_down_rules`\u003c/span\u003e below.\n"},"scaleUpRules":{"$ref":"#/types/alicloud:sae/ApplicationScalingRuleScalingRuleMetricScaleUpRules:ApplicationScalingRuleScalingRuleMetricScaleUpRules","description":"Apply expansion rules. See \u003cspan pulumi-lang-nodejs=\"`scaleUpRules`\" pulumi-lang-dotnet=\"`ScaleUpRules`\" pulumi-lang-go=\"`scaleUpRules`\" pulumi-lang-python=\"`scale_up_rules`\" pulumi-lang-yaml=\"`scaleUpRules`\" pulumi-lang-java=\"`scaleUpRules`\"\u003e`scale_up_rules`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:sae/ApplicationScalingRuleScalingRuleMetricMetric:ApplicationScalingRuleScalingRuleMetricMetric":{"properties":{"metricTargetAverageUtilization":{"type":"integer","description":"According to different \u003cspan pulumi-lang-nodejs=\"`metricType`\" pulumi-lang-dotnet=\"`MetricType`\" pulumi-lang-go=\"`metricType`\" pulumi-lang-python=\"`metric_type`\" pulumi-lang-yaml=\"`metricType`\" pulumi-lang-java=\"`metricType`\"\u003e`metric_type`\u003c/span\u003e, set the target value of the corresponding monitoring index.\n"},"metricType":{"type":"string","description":"Monitoring indicator trigger condition. Valid values: `CPU`, `MEMORY`, `tcpActiveConn`, `QPS`, `RT`, `SLB_QPS`, `SLB_RT`, `INTRANET_SLB_QPS` and `INTRANET_SLB_RT`. The values are described as follows:\n- CPU: CPU usage.\n- MEMORY: MEMORY usage.\n- tcpActiveConn: The average number of TCP active connections for a single instance in 30 seconds.\n- QPS: The average QPS of a single instance within 1 minute of JAVA application.\n- RT: The average response time of all service interfaces within 1 minute of JAVA application.\n- SLB_QPS: The average public network SLB QPS of a single instance within 15 seconds.\n- SLB_RT: The average response time of public network SLB within 15 seconds.\n- INTRANET_SLB_QPS: The average private network SLB QPS of a single instance within 15 seconds.\n- INTRANET_SLB_RT: The average response time of private network SLB within 15 seconds.\n**NOTE:** From version 1.206.0, \u003cspan pulumi-lang-nodejs=\"`metricType`\" pulumi-lang-dotnet=\"`MetricType`\" pulumi-lang-go=\"`metricType`\" pulumi-lang-python=\"`metric_type`\" pulumi-lang-yaml=\"`metricType`\" pulumi-lang-java=\"`metricType`\"\u003e`metric_type`\u003c/span\u003e can be set to `QPS`, `RT`, `INTRANET_SLB_QPS`, `INTRANET_SLB_RT`.\n"},"slbId":{"type":"string","description":"SLB ID.\n"},"slbLogStore":{"type":"string","description":"The log store of the Log Service.\n"},"slbProject":{"type":"string","description":"The project of the Log Service.\n"},"vport":{"type":"string","description":"SLB listening port.\n"}},"type":"object"},"alicloud:sae/ApplicationScalingRuleScalingRuleMetricScaleDownRules:ApplicationScalingRuleScalingRuleMetricScaleDownRules":{"properties":{"disabled":{"type":"boolean","description":"Whether shrinkage is prohibited.\n"},"stabilizationWindowSeconds":{"type":"integer","description":"Cooling time for expansion or contraction. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e. Unit: seconds. The default is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e seconds.\n"},"step":{"type":"integer","description":"Elastic expansion or contraction step size. the maximum number of instances to be scaled in per unit time.\n"}},"type":"object"},"alicloud:sae/ApplicationScalingRuleScalingRuleMetricScaleUpRules:ApplicationScalingRuleScalingRuleMetricScaleUpRules":{"properties":{"disabled":{"type":"boolean","description":"Whether shrinkage is prohibited.\n"},"stabilizationWindowSeconds":{"type":"integer","description":"Cooling time for expansion or contraction. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e. Unit: seconds. The default is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e seconds.\n"},"step":{"type":"integer","description":"Elastic expansion or contraction step size. the maximum number of instances to be scaled in per unit time.\n"}},"type":"object"},"alicloud:sae/ApplicationScalingRuleScalingRuleTimer:ApplicationScalingRuleScalingRuleTimer":{"properties":{"beginDate":{"type":"string","description":"The Start date. When the \u003cspan pulumi-lang-nodejs=\"`beginDate`\" pulumi-lang-dotnet=\"`BeginDate`\" pulumi-lang-go=\"`beginDate`\" pulumi-lang-python=\"`begin_date`\" pulumi-lang-yaml=\"`beginDate`\" pulumi-lang-java=\"`beginDate`\"\u003e`begin_date`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endDate`\" pulumi-lang-dotnet=\"`EndDate`\" pulumi-lang-go=\"`endDate`\" pulumi-lang-python=\"`end_date`\" pulumi-lang-yaml=\"`endDate`\" pulumi-lang-java=\"`endDate`\"\u003e`end_date`\u003c/span\u003e values are empty. it indicates long-term execution and is the default value.\n"},"endDate":{"type":"string","description":"The End Date. When the \u003cspan pulumi-lang-nodejs=\"`beginDate`\" pulumi-lang-dotnet=\"`BeginDate`\" pulumi-lang-go=\"`beginDate`\" pulumi-lang-python=\"`begin_date`\" pulumi-lang-yaml=\"`beginDate`\" pulumi-lang-java=\"`beginDate`\"\u003e`begin_date`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endDate`\" pulumi-lang-dotnet=\"`EndDate`\" pulumi-lang-go=\"`endDate`\" pulumi-lang-python=\"`end_date`\" pulumi-lang-yaml=\"`endDate`\" pulumi-lang-java=\"`endDate`\"\u003e`end_date`\u003c/span\u003e values are empty. it indicates long-term execution and is the default value.\n"},"period":{"type":"string","description":"The period in which a timed elastic scaling strategy is executed.\n"},"schedules":{"type":"array","items":{"$ref":"#/types/alicloud:sae/ApplicationScalingRuleScalingRuleTimerSchedule:ApplicationScalingRuleScalingRuleTimerSchedule"},"description":"Resilient Scaling Strategy Trigger Timing. See \u003cspan pulumi-lang-nodejs=\"`schedules`\" pulumi-lang-dotnet=\"`Schedules`\" pulumi-lang-go=\"`schedules`\" pulumi-lang-python=\"`schedules`\" pulumi-lang-yaml=\"`schedules`\" pulumi-lang-java=\"`schedules`\"\u003e`schedules`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:sae/ApplicationScalingRuleScalingRuleTimerSchedule:ApplicationScalingRuleScalingRuleTimerSchedule":{"properties":{"atTime":{"type":"string","description":"Trigger point in time. When supporting format: minutes, for example: `08:00`.\n"},"maxReplicas":{"type":"integer"},"minReplicas":{"type":"integer"},"targetReplicas":{"type":"integer","description":"This parameter can specify the number of instances to be applied or the minimum number of surviving instances per deployment. value range [1,50]. \u003e **NOTE:** The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`scalingRuleType`\" pulumi-lang-dotnet=\"`ScalingRuleType`\" pulumi-lang-go=\"`scalingRuleType`\" pulumi-lang-python=\"`scaling_rule_type`\" pulumi-lang-yaml=\"`scalingRuleType`\" pulumi-lang-java=\"`scalingRuleType`\"\u003e`scaling_rule_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`timing`\" pulumi-lang-dotnet=\"`Timing`\" pulumi-lang-go=\"`timing`\" pulumi-lang-python=\"`timing`\" pulumi-lang-yaml=\"`timing`\" pulumi-lang-java=\"`timing`\"\u003e`timing`\u003c/span\u003e.\n"}},"type":"object"},"alicloud:sae/ApplicationTomcatConfigV2:ApplicationTomcatConfigV2":{"properties":{"contextPath":{"type":"string","description":"The path.\n"},"maxThreads":{"type":"integer","description":"The maximum number of connections in the connection pool.\n"},"port":{"type":"integer","description":"The port.\n"},"uriEncoding":{"type":"string","description":"The URI encoding scheme in the Tomcat container.\n"},"useBodyEncodingForUri":{"type":"string","description":"Specifies whether to use the encoding scheme that is specified by BodyEncoding for URL.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["contextPath","maxThreads","port","uriEncoding","useBodyEncodingForUri"]}}},"alicloud:sae/ApplicationUpdateStrategyV2:ApplicationUpdateStrategyV2":{"properties":{"batchUpdate":{"$ref":"#/types/alicloud:sae/ApplicationUpdateStrategyV2BatchUpdate:ApplicationUpdateStrategyV2BatchUpdate","description":"The phased release policy. See \u003cspan pulumi-lang-nodejs=\"`batchUpdate`\" pulumi-lang-dotnet=\"`BatchUpdate`\" pulumi-lang-go=\"`batchUpdate`\" pulumi-lang-python=\"`batch_update`\" pulumi-lang-yaml=\"`batchUpdate`\" pulumi-lang-java=\"`batchUpdate`\"\u003e`batch_update`\u003c/span\u003e below.\n"},"type":{"type":"string","description":"The type of the release policy. Valid values: `GrayBatchUpdate` and `BatchUpdate`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["batchUpdate","type"]}}},"alicloud:sae/ApplicationUpdateStrategyV2BatchUpdate:ApplicationUpdateStrategyV2BatchUpdate":{"properties":{"batch":{"type":"integer","description":"The number of batches in which you want to release the instances.\n"},"batchWaitTime":{"type":"integer","description":"The batch wait time.\n"},"releaseType":{"type":"string","description":"The processing method for the batches. Valid values: \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`manual`\" pulumi-lang-dotnet=\"`Manual`\" pulumi-lang-go=\"`manual`\" pulumi-lang-python=\"`manual`\" pulumi-lang-yaml=\"`manual`\" pulumi-lang-java=\"`manual`\"\u003e`manual`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["batch","batchWaitTime","releaseType"]}}},"alicloud:sae/GreyTagRouteDubboRule:GreyTagRouteDubboRule":{"properties":{"condition":{"type":"string","description":"The Conditional Patterns for Grayscale Rules. Valid values: `AND`, `OR`.\n"},"group":{"type":"string","description":"The service group.\n"},"items":{"type":"array","items":{"$ref":"#/types/alicloud:sae/GreyTagRouteDubboRuleItem:GreyTagRouteDubboRuleItem"},"description":"A list of conditions items. See \u003cspan pulumi-lang-nodejs=\"`items`\" pulumi-lang-dotnet=\"`Items`\" pulumi-lang-go=\"`items`\" pulumi-lang-python=\"`items`\" pulumi-lang-yaml=\"`items`\" pulumi-lang-java=\"`items`\"\u003e`items`\u003c/span\u003e below.\n"},"methodName":{"type":"string","description":"The method name\n"},"serviceName":{"type":"string","description":"The service name.\n"},"version":{"type":"string","description":"The service version.\n"}},"type":"object"},"alicloud:sae/GreyTagRouteDubboRuleItem:GreyTagRouteDubboRuleItem":{"properties":{"cond":{"type":"string"},"expr":{"type":"string","description":"The parameter value gets the expression.\n"},"index":{"type":"integer","description":"The parameter number.\n"},"operator":{"type":"string"},"value":{"type":"string"}},"type":"object"},"alicloud:sae/GreyTagRouteScRule:GreyTagRouteScRule":{"properties":{"condition":{"type":"string","description":"The conditional Patterns for Grayscale Rules. Valid values: `AND`, `OR`.\n"},"items":{"type":"array","items":{"$ref":"#/types/alicloud:sae/GreyTagRouteScRuleItem:GreyTagRouteScRuleItem"},"description":"A list of conditions items. See \u003cspan pulumi-lang-nodejs=\"`items`\" pulumi-lang-dotnet=\"`Items`\" pulumi-lang-go=\"`items`\" pulumi-lang-python=\"`items`\" pulumi-lang-yaml=\"`items`\" pulumi-lang-java=\"`items`\"\u003e`items`\u003c/span\u003e below.\n"},"path":{"type":"string","description":"The path corresponding to the grayscale rule.\n"}},"type":"object"},"alicloud:sae/GreyTagRouteScRuleItem:GreyTagRouteScRuleItem":{"properties":{"cond":{"type":"string"},"name":{"type":"string","description":"The name of the parameter.\n"},"operator":{"type":"string"},"type":{"type":"string","description":"The compare types. Valid values: \u003cspan pulumi-lang-nodejs=\"`param`\" pulumi-lang-dotnet=\"`Param`\" pulumi-lang-go=\"`param`\" pulumi-lang-python=\"`param`\" pulumi-lang-yaml=\"`param`\" pulumi-lang-java=\"`param`\"\u003e`param`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cookie`\" pulumi-lang-dotnet=\"`Cookie`\" pulumi-lang-go=\"`cookie`\" pulumi-lang-python=\"`cookie`\" pulumi-lang-yaml=\"`cookie`\" pulumi-lang-java=\"`cookie`\"\u003e`cookie`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`header`\" pulumi-lang-dotnet=\"`Header`\" pulumi-lang-go=\"`header`\" pulumi-lang-python=\"`header`\" pulumi-lang-yaml=\"`header`\" pulumi-lang-java=\"`header`\"\u003e`header`\u003c/span\u003e.\n"},"value":{"type":"string"}},"type":"object"},"alicloud:sae/IngressDefaultRule:IngressDefaultRule":{"properties":{"appId":{"type":"string","description":"Target application ID.\n"},"appName":{"type":"string","description":"Target application name.\n"},"containerPort":{"type":"integer","description":"Application backend port.\n"}},"type":"object"},"alicloud:sae/IngressRule:IngressRule":{"properties":{"appId":{"type":"string","description":"Target application ID.\n"},"appName":{"type":"string","description":"Target application name.\n"},"backendProtocol":{"type":"string","description":"The backend protocol.\n"},"containerPort":{"type":"integer","description":"Application backend port.\n"},"domain":{"type":"string","description":"Application domain name.\n"},"path":{"type":"string","description":"URL path.\n"},"rewritePath":{"type":"string","description":"The rewrite path.\n"}},"type":"object","required":["appId","appName","containerPort","domain","path"]},"alicloud:sae/LoadBalancerInternetInternet:LoadBalancerInternetInternet":{"properties":{"httpsCertId":{"type":"string","description":"The SSL certificate. \u003cspan pulumi-lang-nodejs=\"`httpsCertId`\" pulumi-lang-dotnet=\"`HttpsCertId`\" pulumi-lang-go=\"`httpsCertId`\" pulumi-lang-python=\"`https_cert_id`\" pulumi-lang-yaml=\"`httpsCertId`\" pulumi-lang-java=\"`httpsCertId`\"\u003e`https_cert_id`\u003c/span\u003e is required when HTTPS is selected\n"},"port":{"type":"integer","description":"The SLB Port.\n"},"protocol":{"type":"string","description":"The Network protocol. Valid values: `TCP` ,`HTTP`,`HTTPS`.\n"},"targetPort":{"type":"integer","description":"The Container port.\n"}},"type":"object"},"alicloud:sae/LoadBalancerIntranetIntranet:LoadBalancerIntranetIntranet":{"properties":{"httpsCertId":{"type":"string","description":"The SSL certificate. \u003cspan pulumi-lang-nodejs=\"`httpsCertId`\" pulumi-lang-dotnet=\"`HttpsCertId`\" pulumi-lang-go=\"`httpsCertId`\" pulumi-lang-python=\"`https_cert_id`\" pulumi-lang-yaml=\"`httpsCertId`\" pulumi-lang-java=\"`httpsCertId`\"\u003e`https_cert_id`\u003c/span\u003e is required when HTTPS is selected\n"},"port":{"type":"integer","description":"The SLB Port.\n"},"protocol":{"type":"string","description":"The Network protocol. Valid values: `TCP` ,`HTTP`,`HTTPS`.\n"},"targetPort":{"type":"integer","description":"The Container port.\n"}},"type":"object"},"alicloud:sae/getApplicationScalingRulesRule:getApplicationScalingRulesRule":{"properties":{"appId":{"type":"string","description":"The ID of the Application.\n"},"createTime":{"type":"string","description":"The CreateTime of the Application Scaling Rule.\n"},"id":{"type":"string","description":"The ID of the Application Scaling Rule.\n"},"scalingRuleEnable":{"type":"boolean","description":"Whether to enable the auto scaling policy.\n"},"scalingRuleMetrics":{"type":"array","items":{"$ref":"#/types/alicloud:sae/getApplicationScalingRulesRuleScalingRuleMetric:getApplicationScalingRulesRuleScalingRuleMetric"},"description":"Monitoring indicators for elastic scaling.\n"},"scalingRuleName":{"type":"string","description":"The name of the scaling rule.\n"},"scalingRuleTimers":{"type":"array","items":{"$ref":"#/types/alicloud:sae/getApplicationScalingRulesRuleScalingRuleTimer:getApplicationScalingRulesRuleScalingRuleTimer"},"description":"Timing elastic expansion.\n"},"scalingRuleType":{"type":"string","description":"Flexible strategy type.\n"}},"type":"object","required":["appId","createTime","id","scalingRuleEnable","scalingRuleMetrics","scalingRuleName","scalingRuleTimers","scalingRuleType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getApplicationScalingRulesRuleScalingRuleMetric:getApplicationScalingRulesRuleScalingRuleMetric":{"properties":{"maxReplicas":{"type":"integer","description":"The maximum number of instances.\n"},"metrics":{"type":"array","items":{"$ref":"#/types/alicloud:sae/getApplicationScalingRulesRuleScalingRuleMetricMetric:getApplicationScalingRulesRuleScalingRuleMetricMetric"},"description":"The auto scaling list of monitoring indicators.\n"},"metricsStatuses":{"type":"array","items":{"$ref":"#/types/alicloud:sae/getApplicationScalingRulesRuleScalingRuleMetricMetricsStatus:getApplicationScalingRulesRuleScalingRuleMetricMetricsStatus"},"description":"Monitor indicator elasticity status.\n"},"minReplicas":{"type":"integer","description":"The minimum number of instances.\n"},"scaleDownRules":{"type":"array","items":{"$ref":"#/types/alicloud:sae/getApplicationScalingRulesRuleScalingRuleMetricScaleDownRule:getApplicationScalingRulesRuleScalingRuleMetricScaleDownRule"},"description":"The shrink rule.\n"},"scaleUpRules":{"type":"array","items":{"$ref":"#/types/alicloud:sae/getApplicationScalingRulesRuleScalingRuleMetricScaleUpRule:getApplicationScalingRulesRuleScalingRuleMetricScaleUpRule"},"description":"The expansion rules.\n"}},"type":"object","required":["maxReplicas","metrics","metricsStatuses","minReplicas","scaleDownRules","scaleUpRules"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getApplicationScalingRulesRuleScalingRuleMetricMetric:getApplicationScalingRulesRuleScalingRuleMetricMetric":{"properties":{"metricTargetAverageUtilization":{"type":"integer","description":"The target value of the monitoring indicator.\n"},"metricType":{"type":"string","description":"The metric type of the Application Scaling Rule.\n"}},"type":"object","required":["metricTargetAverageUtilization","metricType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getApplicationScalingRulesRuleScalingRuleMetricMetricsStatus:getApplicationScalingRulesRuleScalingRuleMetricMetricsStatus":{"properties":{"currentMetrics":{"type":"array","items":{"$ref":"#/types/alicloud:sae/getApplicationScalingRulesRuleScalingRuleMetricMetricsStatusCurrentMetric:getApplicationScalingRulesRuleScalingRuleMetricMetricsStatusCurrentMetric"},"description":"The current monitoring indicator elasticity list.\n"},"currentReplicas":{"type":"integer","description":"The number of current instances.\n"},"desiredReplicas":{"type":"integer","description":"The number of target instances.\n"},"lastScaleTime":{"type":"string","description":"The time of the last elastic expansion.\n"},"maxReplicas":{"type":"integer","description":"The maximum number of instances.\n"},"minReplicas":{"type":"integer","description":"The minimum number of instances.\n"},"nextScaleMetrics":{"type":"array","items":{"$ref":"#/types/alicloud:sae/getApplicationScalingRulesRuleScalingRuleMetricMetricsStatusNextScaleMetric:getApplicationScalingRulesRuleScalingRuleMetricMetricsStatusNextScaleMetric"},"description":"Next monitoring indicator elasticity list\n"},"nextScaleTimePeriod":{"type":"integer","description":"The next cycle of monitoring indicator elasticity.\n"}},"type":"object","required":["currentMetrics","currentReplicas","desiredReplicas","lastScaleTime","maxReplicas","minReplicas","nextScaleMetrics","nextScaleTimePeriod"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getApplicationScalingRulesRuleScalingRuleMetricMetricsStatusCurrentMetric:getApplicationScalingRulesRuleScalingRuleMetricMetricsStatusCurrentMetric":{"properties":{"currentValue":{"type":"integer","description":"The current value.\n"},"name":{"type":"string","description":"The name of the trigger condition.\n"},"type":{"type":"string","description":"The metric type. Associated with monitoring indicators.\n"}},"type":"object","required":["currentValue","name","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getApplicationScalingRulesRuleScalingRuleMetricMetricsStatusNextScaleMetric:getApplicationScalingRulesRuleScalingRuleMetricMetricsStatusNextScaleMetric":{"properties":{"name":{"type":"string","description":"The name of the trigger condition.\n"},"nextScaleInAverageUtilization":{"type":"integer","description":"The percentage value of the monitoring indicator elasticity that triggers the shrinkage condition next time.\n"},"nextScaleOutAverageUtilization":{"type":"integer","description":"The percentage value of the monitoring indicator elasticity that triggers the expansion condition next time.\n"}},"type":"object","required":["name","nextScaleInAverageUtilization","nextScaleOutAverageUtilization"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getApplicationScalingRulesRuleScalingRuleMetricScaleDownRule:getApplicationScalingRulesRuleScalingRuleMetricScaleDownRule":{"properties":{"disabled":{"type":"boolean","description":"Whether shrinkage is prohibited.\n"},"stabilizationWindowSeconds":{"type":"integer","description":"Shrinkage cooling time.\n"},"step":{"type":"integer","description":"Elastic shrinkage step. The maximum number of instances per unit time.\n"}},"type":"object","required":["disabled","stabilizationWindowSeconds","step"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getApplicationScalingRulesRuleScalingRuleMetricScaleUpRule:getApplicationScalingRulesRuleScalingRuleMetricScaleUpRule":{"properties":{"disabled":{"type":"boolean","description":"Whether shrinkage is prohibited. The values are described as follows:\n"},"stabilizationWindowSeconds":{"type":"integer","description":"Expansion cooling time.\n"},"step":{"type":"integer","description":"Flexible expansion step. The maximum number of instances per unit time.\n"}},"type":"object","required":["disabled","stabilizationWindowSeconds","step"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getApplicationScalingRulesRuleScalingRuleTimer:getApplicationScalingRulesRuleScalingRuleTimer":{"properties":{"beginDate":{"type":"string","description":"The short-term start date of the timed elastic scaling strategy.\n"},"endDate":{"type":"string","description":"The short-term end date of the timed elastic scaling strategy.\n"},"period":{"type":"string","description":"The period in which a timed elastic scaling strategy is executed.\n"},"schedules":{"type":"array","items":{"$ref":"#/types/alicloud:sae/getApplicationScalingRulesRuleScalingRuleTimerSchedule:getApplicationScalingRulesRuleScalingRuleTimerSchedule"},"description":"Trigger point in time within a single day.\n"}},"type":"object","required":["beginDate","endDate","period","schedules"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getApplicationScalingRulesRuleScalingRuleTimerSchedule:getApplicationScalingRulesRuleScalingRuleTimerSchedule":{"properties":{"atTime":{"type":"string","description":"Time point. Format: `hours:minutes`.\n"},"maxReplicas":{"type":"integer","description":"The maximum number of instances.\n"},"minReplicas":{"type":"integer","description":"The minimum number of instances.\n"},"targetReplicas":{"type":"integer","description":"The number of target instances.\n"}},"type":"object","required":["atTime","maxReplicas","minReplicas","targetReplicas"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getApplicationsApplication:getApplicationsApplication":{"properties":{"acrAssumeRoleArn":{"type":"string","description":"The ARN of the RAM role required when pulling images across accounts.\n"},"acrInstanceId":{"type":"string","description":"The ID of the ACR EE instance.\n"},"appDescription":{"type":"string","description":"Application description information. No more than 1024 characters.\n"},"appName":{"type":"string","description":"Application Name. Combinations of numbers, letters, and dashes (-) are allowed. It must start with a letter and the maximum length is 36 characters.\n"},"applicationId":{"type":"string","description":"The first ID of the resource.\n"},"command":{"type":"string","description":"Mirror start command. The command must be an executable object in the container. For example: sleep. Setting this command will cause the original startup command of the mirror to become invalid.\n"},"commandArgs":{"type":"string","description":"Mirror startup command parameters. The parameters required for the above start command. For example: 1d.\n"},"configMapMountDesc":{"type":"string","description":"ConfigMap mount description.\n"},"cpu":{"type":"integer","description":"The CPU required for each instance, in millicores, cannot be 0.\n"},"createTime":{"type":"string","description":"Indicates That the Application of the Creation Time.\n"},"customHostAlias":{"type":"string","description":"Custom host mapping in the container. For example: [{\"hostName\":\"samplehost\",\"ip\":\"127.0.0.1\"}].\n"},"edasContainerVersion":{"type":"string","description":"The operating environment used by the Pandora application.\n"},"envs":{"type":"string","description":"The virtual switch where the elastic network card of the application instance is located. The switch must be located in the aforementioned VPC. The switch also has a binding relationship with the SAE namespace. If it is left blank, the default is the vSwitch ID bound to the namespace.\n"},"id":{"type":"string","description":"The ID of the Application.\n"},"imageUrl":{"type":"string","description":"Mirror address. Only Image type applications can configure the mirror address.\n"},"jarStartArgs":{"type":"string","description":"The JAR package starts application parameters. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS \"$package_path\" $JarStartArgs.\n"},"jarStartOptions":{"type":"string","description":"The JAR package starts the application option. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS \"$package_path\" $JarStartArgs.\n"},"jdk":{"type":"string","description":"The JDK version that the deployment package depends on. Image type applications are not supported.\n"},"liveness":{"type":"string","description":"Container health check. Containers that fail the health check will be shut down and restored. Currently, only the method of issuing commands in the container is supported.\n"},"memory":{"type":"integer","description":"The memory required for each instance, in MB, cannot be 0. One-to-one correspondence with CPU.\n"},"minReadyInstances":{"type":"integer","description":"The Minimum Available Instance. On the Change Had Promised during the Available Number of Instances to Be.\n"},"mountDescs":{"type":"array","items":{"$ref":"#/types/alicloud:sae/getApplicationsApplicationMountDesc:getApplicationsApplicationMountDesc"},"description":"Mount description information.\n"},"mountHost":{"type":"string","description":"Mount point of NAS in application VPC.\n"},"namespaceId":{"type":"string","description":"SAE namespace ID. Only namespaces whose names are lowercase letters and dashes (-) are supported, and must start with a letter. The namespace can be obtained by calling the DescribeNamespaceList interface.\n"},"nasId":{"type":"string","description":"ID of the mounted NAS, Must be in the same region as the cluster. It must have an available mount point creation quota, or its mount point must be on a switch in the VPC. If it is not filled in and the mountDescs field is present, a NAS will be automatically purchased and mounted on the switch in the VPC by default.\n"},"ossAkId":{"type":"string","description":"OSS AccessKey ID.\n"},"ossAkSecret":{"type":"string","description":"OSS  AccessKey Secret.\n"},"ossMountDescs":{"type":"string","description":"OSS mount description information.\n"},"ossMountDetails":{"type":"array","items":{"$ref":"#/types/alicloud:sae/getApplicationsApplicationOssMountDetail:getApplicationsApplicationOssMountDetail"},"description":"The OSS mount detail.\n"},"packageType":{"type":"string","description":"Application package type. Support FatJar, War and Image.\n"},"packageUrl":{"type":"string","description":"Deployment package address. Only FatJar or War type applications can configure the deployment package address.\n"},"packageVersion":{"type":"string","description":"The version number of the deployment package. Required when the Package Type is War and FatJar.\n"},"phpArmsConfigLocation":{"type":"string","description":"The PHP application monitors the mount path, and you need to ensure that the PHP server will load the configuration file of this path. You don't need to pay attention to the configuration content, SAE will automatically render the correct configuration file.\n"},"phpConfig":{"type":"string","description":"PHP configuration file content.\n"},"phpConfigLocation":{"type":"string","description":"PHP application startup configuration mount path, you need to ensure that the PHP server will start using this configuration file.\n"},"postStart":{"type":"string","description":"Execute the script after startup, the format is like: {\"exec\":{\"command\":[\"cat\",\"/etc/group\"]}}.\n"},"preStop":{"type":"string","description":"Execute the script before stopping, the format is like: {\"exec\":{\"command\":[\"cat\",\"/etc/group\"]}}.\n"},"readiness":{"type":"string","description":"Application startup status checks, containers that fail multiple health checks will be shut down and restarted. Containers that do not pass the health check will not receive SLB traffic. For example: {\"exec\":{\"command\":[\"sh\",\"-c\",\"cat /home/admin/start.sh\"]},\"initialDelaySeconds\":30,\"periodSeconds\":30,\"timeoutSeconds \":2}.\n"},"regionId":{"type":"string"},"replicas":{"type":"integer","description":"Initial number of instances.\n"},"repoName":{"type":"string"},"repoNamespace":{"type":"string"},"repoOriginType":{"type":"string"},"securityGroupId":{"type":"string","description":"Security group ID.\n"},"slsConfigs":{"type":"string","description":"SLS  configuration.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"terminationGracePeriodSeconds":{"type":"integer","description":"Graceful offline timeout, the default is 30, the unit is seconds. The value range is 1~60.\n"},"timezone":{"type":"string","description":"Time zone, the default value is Asia/Shanghai.\n"},"tomcatConfig":{"type":"string","description":"Tomcat file configuration, set to \"\" or \"{}\" means to delete the configuration:  useDefaultConfig: Whether to use a custom configuration, if it is true, it means that the custom configuration is not used; if it is false, it means that the custom configuration is used. If you do not use custom configuration, the following parameter configuration will not take effect.  contextInputType: Select the access path of the application.  war: No need to fill in the custom path, the access path of the application is the WAR package name. root: No need to fill in the custom path, the access path of the application is /. custom: You need to fill in the custom path in the custom path below. contextPath: custom path, this parameter only needs to be configured when the contextInputType type is custom.  httpPort: The port range is 1024~65535. Ports less than 1024 need Root permission to operate. Because the container is configured with Admin permissions, please fill in a port greater than 1024. If not configured, the default is 8080. maxThreads: Configure the number of connections in the connection pool, the default size is 400. uriEncoding: Tomcat encoding format, including UTF-8, ISO-8859-1, GBK and GB2312. If not set, the default is ISO-8859-1. useBodyEncoding: Whether to use BodyEncoding for URL.\n"},"vpcId":{"type":"string","description":"The VPC corresponding to the SAE namespace. In SAE, a namespace can only correspond to one VPC and cannot be modified. Creating a SAE application in the namespace for the first time will form a binding relationship. Multiple namespaces can correspond to a VPC. If you leave it blank, it will default to the VPC ID bound to the namespace.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"warStartOptions":{"type":"string","description":"WAR package launch application option. Application default startup command: java $JAVA_OPTS $CATALINA_OPTS [-Options] org.apache.catalina.startup.Bootstrap \"$@\" start.\n"},"webContainer":{"type":"string","description":"The version of tomcat that the deployment package depends on. Image type applications are not supported.\n"}},"type":"object","required":["acrAssumeRoleArn","acrInstanceId","appDescription","appName","applicationId","command","commandArgs","configMapMountDesc","cpu","createTime","customHostAlias","edasContainerVersion","envs","id","imageUrl","jarStartArgs","jarStartOptions","jdk","liveness","memory","minReadyInstances","mountDescs","mountHost","namespaceId","nasId","ossAkId","ossAkSecret","ossMountDescs","ossMountDetails","packageType","packageUrl","packageVersion","phpArmsConfigLocation","phpConfig","phpConfigLocation","postStart","preStop","readiness","regionId","replicas","repoName","repoNamespace","repoOriginType","securityGroupId","slsConfigs","status","tags","terminationGracePeriodSeconds","timezone","tomcatConfig","vpcId","vswitchId","warStartOptions","webContainer"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getApplicationsApplicationMountDesc:getApplicationsApplicationMountDesc":{"properties":{"mountPath":{"type":"string","description":"Container mount path.\n"},"nasPath":{"type":"string","description":"NAS relative file directory.\n"}},"type":"object","required":["mountPath","nasPath"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getApplicationsApplicationOssMountDetail:getApplicationsApplicationOssMountDetail":{"properties":{"bucketName":{"type":"string","description":"The name of the bucket.\n"},"bucketPath":{"type":"string","description":"The path of the bucket.\n"},"mountPath":{"type":"string","description":"The Container mount path.\n"},"readOnly":{"type":"boolean","description":"Whether the container path has readable permission to mount directory resources.\n"}},"type":"object","required":["bucketName","bucketPath","mountPath","readOnly"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getConfigMapsMap:getConfigMapsMap":{"properties":{"configMapId":{"type":"string","description":"The first ID of the resource.\n"},"createTime":{"type":"string","description":"The Creation Time of the ConfigMap.\n"},"data":{"type":"string","description":"ConfigMap instance data. The value's format is a \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e string\n"},"description":{"type":"string","description":"The Description of Config Map.\n"},"id":{"type":"string","description":"The ID of the Config Map.\n"},"name":{"type":"string","description":"ConfigMap instance name.\n"},"namespaceId":{"type":"string","description":"The NamespaceId of Config Maps.\n"}},"type":"object","required":["configMapId","createTime","data","description","id","name","namespaceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getGreyTagRoutesRoute:getGreyTagRoutesRoute":{"properties":{"description":{"type":"string","description":"The description of GreyTagRoute.\n"},"dubboRules":{"type":"array","items":{"$ref":"#/types/alicloud:sae/getGreyTagRoutesRouteDubboRule:getGreyTagRoutesRouteDubboRule"},"description":"The grayscale rule created for Dubbo Application.\n"},"greyTagRouteName":{"type":"string","description":"The name of GreyTagRoute.\n"},"id":{"type":"string","description":"The ID of the GreyTagRoute.\n"},"scRules":{"type":"array","items":{"$ref":"#/types/alicloud:sae/getGreyTagRoutesRouteScRule:getGreyTagRoutesRouteScRule"},"description":"The grayscale rule created for SpringCloud Application.\n"}},"type":"object","required":["description","dubboRules","greyTagRouteName","id","scRules"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getGreyTagRoutesRouteDubboRule:getGreyTagRoutesRouteDubboRule":{"properties":{"condition":{"type":"string","description":"The conditional Patterns for Grayscale Rules.\n"},"group":{"type":"string","description":"The service group.\n"},"items":{"type":"array","items":{"$ref":"#/types/alicloud:sae/getGreyTagRoutesRouteDubboRuleItem:getGreyTagRoutesRouteDubboRuleItem"},"description":"A list of conditions items.\n"},"methodName":{"type":"string","description":"The method name\n"},"serviceName":{"type":"string","description":"The service name.\n"},"version":{"type":"string","description":"The service version.\n"}},"type":"object","required":["condition","group","items","methodName","serviceName","version"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getGreyTagRoutesRouteDubboRuleItem:getGreyTagRoutesRouteDubboRuleItem":{"properties":{"cond":{"type":"string","description":"The comparison operator.\n"},"expr":{"type":"string","description":"The parameter value gets the expression.\n"},"index":{"type":"integer","description":"The parameter number.\n"},"operator":{"type":"string","description":"The operator.\n"},"value":{"type":"string","description":"The value of the parameter.\n"}},"type":"object","required":["cond","expr","index","operator","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getGreyTagRoutesRouteScRule:getGreyTagRoutesRouteScRule":{"properties":{"condition":{"type":"string","description":"The Conditional Patterns for Grayscale Rules.\n"},"items":{"type":"array","items":{"$ref":"#/types/alicloud:sae/getGreyTagRoutesRouteScRuleItem:getGreyTagRoutesRouteScRuleItem"},"description":"A list of conditions items.\n"},"path":{"type":"string","description":"The path corresponding to the grayscale rule.\n"}},"type":"object","required":["condition","items","path"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getGreyTagRoutesRouteScRuleItem:getGreyTagRoutesRouteScRuleItem":{"properties":{"cond":{"type":"string","description":"The comparison operator.\n"},"name":{"type":"string","description":"The name of the parameter.\n"},"operator":{"type":"string","description":"The operator.\n"},"type":{"type":"string","description":"The Compare types.\n"},"value":{"type":"string","description":"The value of the parameter.\n"}},"type":"object","required":["cond","name","operator","type","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getIngressesIngress:getIngressesIngress":{"properties":{"certId":{"type":"string","description":"Cert Id.\n"},"defaultRule":{"type":"string","description":"Default Rule.\n"},"description":{"type":"string","description":"Description.\n"},"id":{"type":"string","description":"The ID of the Ingress.\n"},"ingressId":{"type":"string","description":"The first ID of the resource.\n"},"listenerPort":{"type":"integer","description":"SLB listening port.\n"},"namespaceId":{"type":"string","description":"The Id of Namespace.It can contain 2 to 32 characters.The value is in format {RegionId}:{namespace}.\n"},"slbId":{"type":"string","description":"SLB ID.\n"}},"type":"object","required":["certId","defaultRule","description","id","ingressId","listenerPort","namespaceId","slbId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getInstanceSpecificationsSpecification:getInstanceSpecificationsSpecification":{"properties":{"cpu":{"type":"integer","description":"CPU Size, Specifications for Micronucleus.\n"},"enable":{"type":"boolean","description":"Whether the instance is available. The value description is as follows:\n"},"id":{"type":"string","description":"The ID of the Instance Specification.\n"},"instanceSpecificationId":{"type":"string","description":"The first ID of the resource.\n"},"memory":{"type":"integer","description":"The Memory specifications for the MB.\n"},"specInfo":{"type":"string","description":"The specification configuration name.\n"},"version":{"type":"integer","description":"The specification configuration version.\n"}},"type":"object","required":["cpu","enable","id","instanceSpecificationId","memory","specInfo","version"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sae/getNamespacesNamespace:getNamespacesNamespace":{"properties":{"id":{"type":"string","description":"The ID of the Namespace.\n"},"namespaceDescription":{"type":"string","description":"The Description of Namespace.\n"},"namespaceId":{"type":"string","description":"The Id of Namespace.It can contain 2 to 32 characters.The value is in format {RegionId}:{namespace}.\n"},"namespaceName":{"type":"string","description":"The Name of Namespace.\n"}},"type":"object","required":["id","namespaceDescription","namespaceId","namespaceName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sag/getAclsAcl:getAclsAcl":{"properties":{"id":{"type":"string","description":"The ID of the ACL. For example \"acl-xxx\".\n"},"name":{"type":"string","description":"The name of the Acl.\n"}},"type":"object","required":["id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sag/getSmartagFlowLogsLog:getSmartagFlowLogsLog":{"properties":{"activeAging":{"type":"integer","description":"The time interval at which log data of active connections is collected. Valid values: 60 to 6000. Default value: 300. Unit: second.\n"},"description":{"type":"string","description":"The description of the flow log.\n"},"flowLogId":{"type":"string","description":"The ID of the flow log.\n"},"flowLogName":{"type":"string","description":"The name of the flow log.\n"},"id":{"type":"string","description":"The ID of the Flow Log.\n"},"inactiveAging":{"type":"integer","description":"The time interval at which log data of inactive connections is connected. Valid values: 10 to 600. Default value: 15. Unit: second.\n"},"logstoreName":{"type":"string","description":"The name of the Log Service Logstore.\n"},"netflowServerIp":{"type":"string","description":"The IP address of the NetFlow collector where the flow log is stored.\n"},"netflowServerPort":{"type":"integer","description":"The port of the NetFlow collector. Default value: 9995.\n"},"netflowVersion":{"type":"string","description":"The NetFlow version. Default value: V9.\n"},"outputType":{"type":"string","description":"The location where the flow log is stored. Valid values:  sls: The flow log is stored in Log Service. netflow: The flow log is stored on a NetFlow collector. all: The flow log is stored both in Log Service and on a NetFlow collector.\n"},"projectName":{"type":"string","description":"The name of the Log Service project.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"slsRegionId":{"type":"string","description":"The ID of the region where Log Service is deployed.\n"},"status":{"type":"string","description":"The status of the flow log. Valid values:  `Active`: The flow log is enabled. `Inactive`: The flow log is disabled.\n"},"totalSagNum":{"type":"integer","description":"The number of Smart Access gateway (SAG) instances with which the flow log is associated.\n"}},"type":"object","required":["activeAging","description","flowLogId","flowLogName","id","inactiveAging","logstoreName","netflowServerIp","netflowServerPort","netflowVersion","outputType","projectName","resourceGroupId","slsRegionId","status","totalSagNum"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:scdn/DomainCertInfo:DomainCertInfo":{"properties":{"certName":{"type":"string","description":"If You Enable HTTPS Here Certificate Name.\n"},"certType":{"type":"string","description":"Certificate Type. Value Range: \n* upload: Certificate\n* cas: Certificate Authority Certificate.\n* free: Free Certificate.\n"},"sslPri":{"type":"string","description":"Private Key. Do Not Enable Certificate without Entering a User Name and Configure Certificates Enter Private Key.\n","secret":true},"sslProtocol":{"type":"string","description":"Whether to Enable SSL Certificate. Valid Values: on, off. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"sslPub":{"type":"string","description":"If You Enable HTTPS Here Key.\n"}},"type":"object"},"alicloud:scdn/DomainConfigFunctionArg:DomainConfigFunctionArg":{"properties":{"argName":{"type":"string","description":"The name of arg.\n"},"argValue":{"type":"string","description":"The value of arg.\n"}},"type":"object","required":["argName","argValue"]},"alicloud:scdn/DomainSource:DomainSource":{"properties":{"content":{"type":"string","description":"The Back-to-Source Address.\n"},"enabled":{"type":"string","description":"The source status. Valid values: online, offline.\n"},"port":{"type":"integer","description":"Port.\n"},"priority":{"type":"string","description":"Priority.\n"},"type":{"type":"string","description":"The Origin Server Type. Valid Values: \n* ipaddr: IP Source Station\n* domain: the Domain Name\n* oss: OSS Bucket as a Source Station.\n"}},"type":"object","required":["content","port","priority","type"],"language":{"nodejs":{"requiredOutputs":["content","enabled","port","priority","type"]}}},"alicloud:scdn/getDomainsDomain:getDomainsDomain":{"properties":{"certInfos":{"type":"array","items":{"$ref":"#/types/alicloud:scdn/getDomainsDomainCertInfo:getDomainsDomainCertInfo"},"description":"Certificate Information.\n"},"cname":{"type":"string","description":"In Order to Link the CDN Domain Name to Generate a CNAME Domain Name, in the Domain Name Resolution Service Provider at the Acceleration Domain Name CNAME Resolution to the Domain.\n"},"createTime":{"type":"string","description":"Creation Time.\n"},"description":{"type":"string","description":"Review the Reason for the Failure Is Displayed.\n"},"domainName":{"type":"string","description":"Your Domain Name.\n"},"gmtModified":{"type":"string","description":"Last Modified Date.\n"},"id":{"type":"string","description":"The ID of the Domain. Its value is same as Queue Name.\n"},"resourceGroupId":{"type":"string","description":"The Resource Group ID.\n"},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:scdn/getDomainsDomainSource:getDomainsDomainSource"},"description":"the Origin Server Information.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object","required":["certInfos","cname","createTime","description","domainName","gmtModified","id","resourceGroupId","sources","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:scdn/getDomainsDomainCertInfo:getDomainsDomainCertInfo":{"properties":{"certName":{"type":"string","description":"If You Enable HTTPS Here Certificate Name.\n"},"certType":{"type":"string","description":"Certificate Type. Value Range: Upload: Certificate. CAS: Certificate Authority Certificate. Free: Free Certificate.\n"},"sslProtocol":{"type":"string","description":"Whether to Enable SSL Certificate. Valid Values: on, off.\n"},"sslPub":{"type":"string","description":"If You Enable HTTPS Here Key.\n"}},"type":"object","required":["certName","certType","sslProtocol","sslPub"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:scdn/getDomainsDomainSource:getDomainsDomainSource":{"properties":{"content":{"type":"string","description":"The Back-to-Source Address.\n"},"enabled":{"type":"string","description":"State.\n"},"port":{"type":"integer","description":"Port.\n"},"priority":{"type":"string","description":"Priority.\n"},"type":{"type":"string","description":"the Origin Server Type. Valid Values: Ipaddr: IP Source Station Domain: the Domain Name, See Extra Domain Quota OSS: OSS Bucket as a Source Station.\n"}},"type":"object","required":["content","enabled","port","priority","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:schedulerx/JobJobMonitorInfo:JobJobMonitorInfo":{"properties":{"contactInfos":{"type":"array","items":{"$ref":"#/types/alicloud:schedulerx/JobJobMonitorInfoContactInfo:JobJobMonitorInfoContactInfo"},"description":"Contact information. See \u003cspan pulumi-lang-nodejs=\"`contactInfo`\" pulumi-lang-dotnet=\"`ContactInfo`\" pulumi-lang-go=\"`contactInfo`\" pulumi-lang-python=\"`contact_info`\" pulumi-lang-yaml=\"`contactInfo`\" pulumi-lang-java=\"`contactInfo`\"\u003e`contact_info`\u003c/span\u003e below.\n"},"monitorConfig":{"$ref":"#/types/alicloud:schedulerx/JobJobMonitorInfoMonitorConfig:JobJobMonitorInfoMonitorConfig","description":"Alarm switch and threshold configuration. See \u003cspan pulumi-lang-nodejs=\"`monitorConfig`\" pulumi-lang-dotnet=\"`MonitorConfig`\" pulumi-lang-go=\"`monitorConfig`\" pulumi-lang-python=\"`monitor_config`\" pulumi-lang-yaml=\"`monitorConfig`\" pulumi-lang-java=\"`monitorConfig`\"\u003e`monitor_config`\u003c/span\u003e below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["monitorConfig"]}}},"alicloud:schedulerx/JobJobMonitorInfoContactInfo:JobJobMonitorInfoContactInfo":{"properties":{"ding":{"type":"string","description":"DingTalk swarm robot webhook address\n"},"userMail":{"type":"string","description":"User Email Address\n"},"userName":{"type":"string","description":"The user name\n"},"userPhone":{"type":"string","description":"The user's mobile phone number\n"}},"type":"object"},"alicloud:schedulerx/JobJobMonitorInfoMonitorConfig:JobJobMonitorInfoMonitorConfig":{"properties":{"failEnable":{"type":"boolean","description":"Enable failure alarm\n"},"missWorkerEnable":{"type":"boolean","description":"Whether no available Machine alarm is on\n"},"sendChannel":{"type":"string","description":"Alarm sending form\n- sms: sms alarm\n- phone: phone alarm\n- mail: mail alarm\n- webhook:webhook alarm\n"},"timeout":{"type":"integer","description":"Timeout threshold, unit s, default 7200.\n"},"timeoutEnable":{"type":"boolean","description":"Time-out alarm switch. The values are as follows:\n"},"timeoutKillEnable":{"type":"boolean","description":"The trigger switch is terminated by timeout and is turned off by default.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["failEnable","missWorkerEnable","sendChannel","timeout","timeoutEnable","timeoutKillEnable"]}}},"alicloud:schedulerx/JobMapTaskXattrs:JobMapTaskXattrs":{"properties":{"consumerSize":{"type":"integer","description":"The number of threads to execute a single trigger. The default value is 5.\n"},"dispatcherSize":{"type":"integer","description":"The number of subtask distribution threads. The default value is 5.\n"},"pageSize":{"type":"integer","description":"The number of sub-tasks pulled by a parallel task at a time. The default value is 100.\n"},"queueSize":{"type":"integer","description":"The upper limit of the sub-task queue cache. The default value is 10000.\n"},"taskAttemptInterval":{"type":"integer","description":"Subtask failure retry interval.\n"},"taskMaxAttempt":{"type":"integer","description":"The number of failed sub-task retries.\n"}},"type":"object"},"alicloud:schedulerx/JobTimeConfig:JobTimeConfig":{"properties":{"calendar":{"type":"string","description":"The cron type can optionally fill in a custom calendar.\n"},"dataOffset":{"type":"integer","description":"Cron type can choose time offset, unit s.\n"},"timeExpression":{"type":"string","description":"Time expressions. Currently, the following types of time expressions are supported:\n"},"timeType":{"type":"integer","description":"Time configuration type. Currently, the following time types are supported:\n"}},"type":"object","required":["timeType"],"language":{"nodejs":{"requiredOutputs":["timeExpression","timeType"]}}},"alicloud:schedulerx/getNamespacesNamespace:getNamespacesNamespace":{"properties":{"description":{"type":"string","description":"The description of the resource.\n"},"id":{"type":"string","description":"The ID of the resource.\n"},"namespaceId":{"type":"string","description":"The ID of the Namespace.\n"},"namespaceName":{"type":"string","description":"The name of the resource.\n"}},"type":"object","required":["description","id","namespaceId","namespaceName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sddp/getConfigsConfig:getConfigsConfig":{"properties":{"code":{"type":"string","description":"Abnormal Alarm General Configuration Module by Using the Encoding.Valid values: \u003cspan pulumi-lang-nodejs=\"`accessFailedCnt`\" pulumi-lang-dotnet=\"`AccessFailedCnt`\" pulumi-lang-go=\"`accessFailedCnt`\" pulumi-lang-python=\"`access_failed_cnt`\" pulumi-lang-yaml=\"`accessFailedCnt`\" pulumi-lang-java=\"`accessFailedCnt`\"\u003e`access_failed_cnt`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`accessPermissionExprieMaxDays`\" pulumi-lang-dotnet=\"`AccessPermissionExprieMaxDays`\" pulumi-lang-go=\"`accessPermissionExprieMaxDays`\" pulumi-lang-python=\"`access_permission_exprie_max_days`\" pulumi-lang-yaml=\"`accessPermissionExprieMaxDays`\" pulumi-lang-java=\"`accessPermissionExprieMaxDays`\"\u003e`access_permission_exprie_max_days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logDatasizeAvgDays`\" pulumi-lang-dotnet=\"`LogDatasizeAvgDays`\" pulumi-lang-go=\"`logDatasizeAvgDays`\" pulumi-lang-python=\"`log_datasize_avg_days`\" pulumi-lang-yaml=\"`logDatasizeAvgDays`\" pulumi-lang-java=\"`logDatasizeAvgDays`\"\u003e`log_datasize_avg_days`\u003c/span\u003e.\n"},"configId":{"type":"string","description":"Configure the Number.\n"},"defaultValue":{"type":"string","description":"Default Value.\n"},"description":{"type":"string","description":"Abnormal Alarm General Description of the Configuration Item.\n"},"id":{"type":"string","description":"The ID of the Config.\n"},"value":{"type":"string","description":"The Specified Exception Alarm Generic by Using the Value. Code Different Values for This Parameter the Specific Meaning of Different.\n"}},"type":"object","required":["code","configId","defaultValue","description","id","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sddp/getDataLimitsLimit:getDataLimitsLimit":{"properties":{"auditStatus":{"type":"integer","description":"Whether to enable the log auditing feature.\n"},"checkStatus":{"type":"integer","description":"The status of the connectivity test between the data asset and SDDP.\n"},"dataLimitId":{"type":"string","description":"The first ID of the resource.\n"},"engineType":{"type":"string","description":"The type of the database.\n"},"id":{"type":"string","description":"The ID of the Data Limit.\n"},"localName":{"type":"string","description":"The name of the service to which the data asset belongs.\n"},"logStoreDay":{"type":"integer","description":"The retention period of raw logs after you enable the log auditing feature.\n"},"parentId":{"type":"string","description":"The parent asset ID of the data asset.\n"},"port":{"type":"integer","description":"The port that is used to connect to the database.\n"},"resourceType":{"type":"string","description":"The type of the service to which the data asset belongs. Valid values: `MaxCompute`, `OSS`, `RDS`.\n"},"userName":{"type":"string","description":"The name of the user who owns the data asset.\n"}},"type":"object","required":["auditStatus","checkStatus","dataLimitId","engineType","id","localName","logStoreDay","parentId","port","resourceType","userName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sddp/getInstancesInstance:getInstancesInstance":{"properties":{"authed":{"type":"boolean","description":"Whether the required RAM authorization is configured.\n"},"id":{"type":"string"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"instanceNum":{"type":"string","description":"The number of instances.\n"},"odpsSet":{"type":"boolean","description":"Whether the authorized MaxCompute (ODPS) assets.\n"},"ossBucketSet":{"type":"boolean","description":"Whether the authorized oss assets.\n"},"ossSize":{"type":"string","description":"The OSS size of the instance.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`.\n"},"rdsSet":{"type":"boolean","description":"Whether the authorized rds assets.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object","required":["authed","id","instanceId","instanceNum","odpsSet","ossBucketSet","ossSize","paymentType","rdsSet","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sddp/getRulesRule:getRulesRule":{"properties":{"category":{"type":"integer","description":"Sensitive Data Identification Rules for the Type of. Valid values:\n"},"categoryName":{"type":"string","description":"Sensitive Data Identification Rules Belongs Type Name.\n"},"content":{"type":"string","description":"Sensitive Data Identification Rules the Content.\n"},"contentCategory":{"type":"string","description":"The Content Classification.\n"},"createTime":{"type":"string","description":"Sensitive Data Identification Rules the Creation Time of the Number of Milliseconds.\n"},"customType":{"type":"integer","description":"Sensitive Data Identification Rules of Type. Valid values:\n"},"description":{"type":"string","description":"Sensitive Data Identification a Description of the Rule Information.\n"},"displayName":{"type":"string","description":"Sensitive Data Identification Rules, Founder of Account Display Name.\n"},"gmtModified":{"type":"string","description":"Sensitive Data Identification Rules to the Modified Time of the Number of Milliseconds.\n"},"id":{"type":"string","description":"The ID of the Rule.\n"},"loginName":{"type":"string","description":"Sensitive Data Identification Rules, Founder Of Account Login.\n"},"majorKey":{"type":"string","description":"The Primary Key.\n"},"name":{"type":"string","description":"The name of rule.\n"},"productCode":{"type":"string","description":"Product Code.\n"},"productId":{"type":"string","description":"Product ID. Valid values:\n"},"riskLevelId":{"type":"string","description":"Sensitive Data Identification Rules of Risk Level ID. Valid values:\n"},"riskLevelName":{"type":"string","description":"Sensitive Data Identification Rules the Risk Level of. S1: Weak Risk Level S2: Moderate Risk Level S3: High Risk Level S4: the Highest Risk Level.\n"},"ruleId":{"type":"string","description":"The first ID of the resource.\n"},"statExpress":{"type":"string","description":"Triggered the Alarm Conditions.\n"},"status":{"type":"integer","description":"Sensitive Data Identification Rules Detection State of.\n"},"target":{"type":"string","description":"The Target.\n"},"userId":{"type":"string","description":"The User ID.\n"},"warnLevel":{"type":"integer","description":"The Level of Risk. Valid values:\n"}},"type":"object","required":["category","categoryName","content","contentCategory","createTime","customType","description","displayName","gmtModified","id","loginName","majorKey","name","productCode","productId","riskLevelId","riskLevelName","ruleId","statExpress","status","target","userId","warnLevel"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:securitycenter/getGroupsGroup:getGroupsGroup":{"properties":{"groupFlag":{"type":"integer","description":"GroupFlag, '0' mean default group(created by system), '1' means customer defined group.\n"},"groupId":{"type":"string","description":"The ID of Group.\n"},"groupName":{"type":"string","description":"The name of Group.\n"},"id":{"type":"string","description":"The ID of the Group(same as the group_id).\n"}},"type":"object","required":["groupFlag","groupId","groupName","id"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:selectdb/DbClusterDesiredParam:DbClusterDesiredParam":{"properties":{"name":{"type":"string","description":"Parameter name.\n"},"value":{"type":"string","description":"The new value of Parameter.\n"}},"type":"object"},"alicloud:selectdb/DbClusterParamChangeLog:DbClusterParamChangeLog":{"properties":{"configId":{"type":"integer","description":"The id of parameter change.\n"},"gmtCreated":{"type":"string","description":"When the parameter change is created.\n"},"gmtModified":{"type":"string","description":"When the parameter change is modified.\n"},"isApplied":{"type":"boolean","description":"Whether the parameter changing is applied.\n"},"name":{"type":"string","description":"Changed parameter name.\n"},"newValue":{"type":"string","description":"The new value of parameter.\n"},"oldValue":{"type":"string","description":"The old value of parameter.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["configId","gmtCreated","gmtModified","isApplied","name","newValue","oldValue"]}}},"alicloud:selectdb/DbInstanceDesiredSecurityIpList:DbInstanceDesiredSecurityIpList":{"properties":{"groupName":{"type":"string","description":"Security group name.\n"},"securityIpList":{"type":"string","description":"The IP list of Security group. Each single IP value should be Separated by comma.\n"}},"type":"object"},"alicloud:selectdb/DbInstanceInstanceNetInfo:DbInstanceInstanceNetInfo":{"properties":{"connectionString":{"type":"string","description":"The connection string of the instance.\n"},"dbIp":{"type":"string","description":"The IP address of the instance.\n"},"netType":{"type":"string","description":"The network type of the instance.\n"},"portLists":{"type":"array","items":{"$ref":"#/types/alicloud:selectdb/DbInstanceInstanceNetInfoPortList:DbInstanceInstanceNetInfoPortList"},"description":"A list for port provides SelectDB service.\n"},"vpcInstanceId":{"type":"string","description":"The VPC ID.\n"},"vswitchId":{"type":"string","description":"The ID of vswitch for DBInstance.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["connectionString","dbIp","netType","portLists","vpcInstanceId","vswitchId"]}}},"alicloud:selectdb/DbInstanceInstanceNetInfoPortList:DbInstanceInstanceNetInfoPortList":{"properties":{"port":{"type":"string","description":"The port that is used to connect.\n"},"protocol":{"type":"string","description":"The protocol of the port.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port","protocol"]}}},"alicloud:selectdb/DbInstanceSecurityIpList:DbInstanceSecurityIpList":{"properties":{"groupName":{"type":"string","description":"Security group name.\n"},"groupTag":{"type":"string","description":"The tag of Security group.\n"},"listNetType":{"type":"string","description":"The network type of Security group.\n"},"securityIpList":{"type":"string","description":"The IP list of Security group. Each single IP value should be Separated by comma.\n"},"securityIpType":{"type":"string","description":"The IP address type. Valid values: \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e (not supported).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["groupName","groupTag","listNetType","securityIpList","securityIpType"]}}},"alicloud:selectdb/getDbClustersCluster:getDbClustersCluster":{"properties":{"cacheSize":{"type":"integer","description":"The cache size for DBCluster.\n"},"cpu":{"type":"integer","description":"The cpu resource amount of DBCluster. Depends on \u003cspan pulumi-lang-nodejs=\"`dbClusterClass`\" pulumi-lang-dotnet=\"`DbClusterClass`\" pulumi-lang-go=\"`dbClusterClass`\" pulumi-lang-python=\"`db_cluster_class`\" pulumi-lang-yaml=\"`dbClusterClass`\" pulumi-lang-java=\"`dbClusterClass`\"\u003e`db_cluster_class`\u003c/span\u003e.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"dbClusterClass":{"type":"string","description":"The DBCluster class.\u003cspan pulumi-lang-nodejs=\" dbClusterClass \" pulumi-lang-dotnet=\" DbClusterClass \" pulumi-lang-go=\" dbClusterClass \" pulumi-lang-python=\" db_cluster_class \" pulumi-lang-yaml=\" dbClusterClass \" pulumi-lang-java=\" dbClusterClass \"\u003e db_cluster_class \u003c/span\u003ehas a range of class from `selectdb.xlarge` to `selectdb.256xlarge`.\n"},"dbClusterDescription":{"type":"string","description":"The DBCluster description.\n"},"dbClusterId":{"type":"string","description":"The cluster ID.\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n"},"engine":{"type":"string","description":"The Engine of the DBCluster.\n"},"engineVersion":{"type":"string","description":"The engine version of the DBCluster.\n"},"id":{"type":"string","description":"The resource ID in terraform of DBCluster. It formats as \u003cdb_instance_id\u003e:\u003cdb_cluster_id\u003e.\n"},"memory":{"type":"integer","description":"The memory resource amount of DBCluster. Depends on \u003cspan pulumi-lang-nodejs=\"`dbClusterClass`\" pulumi-lang-dotnet=\"`DbClusterClass`\" pulumi-lang-go=\"`dbClusterClass`\" pulumi-lang-python=\"`db_cluster_class`\" pulumi-lang-yaml=\"`dbClusterClass`\" pulumi-lang-java=\"`dbClusterClass`\"\u003e`db_cluster_class`\u003c/span\u003e.\n"},"paramChangeLogs":{"type":"array","items":{"$ref":"#/types/alicloud:selectdb/getDbClustersClusterParamChangeLog:getDbClustersClusterParamChangeLog"},"description":"The configuration change logs of parameters.\n"},"params":{"type":"array","items":{"$ref":"#/types/alicloud:selectdb/getDbClustersClusterParam:getDbClustersClusterParam"},"description":"The details about each parameter in DBCluster returned.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`,`Subscription`.\n"},"regionId":{"type":"string","description":"The ID of region for the cluster.\n"},"status":{"type":"string","description":"The status of the DBCluster. Valid values: `ACTIVATION`,`CREATING`,`DELETING`,`RESTARTING`,`ORDER_PREPARING`.\n"},"vpcId":{"type":"string","description":"The ID of the VPC for the cluster.\n"},"zoneId":{"type":"string","description":"The ID of zone for the cluster.\n"}},"type":"object","required":["cacheSize","cpu","createTime","dbClusterClass","dbClusterDescription","dbClusterId","dbInstanceId","engine","engineVersion","id","memory","paramChangeLogs","params","paymentType","regionId","status","vpcId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:selectdb/getDbClustersClusterParam:getDbClustersClusterParam":{"properties":{"comment":{"type":"string","description":"The comments on the parameter.\n"},"defaultValue":{"type":"string","description":"The default value of the parameter.\n"},"isDynamic":{"type":"integer","description":"Indicates whether the parameter immediately takes effect without requiring a restart.\n"},"isUserModifiable":{"type":"integer","description":"Indicates whether the parameter is modifiable.\n"},"name":{"type":"string","description":"Changed parameter name.\n"},"optional":{"type":"string","description":"The value range of the parameter.\n"},"paramCategory":{"type":"string","description":"The category of the parameter.\n"},"value":{"type":"string","description":"The new value of Parameter.\n"}},"type":"object","required":["comment","defaultValue","isDynamic","isUserModifiable","name","optional","paramCategory","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:selectdb/getDbClustersClusterParamChangeLog:getDbClustersClusterParamChangeLog":{"properties":{"configId":{"type":"integer","description":"The id of parameter change.\n"},"gmtCreated":{"type":"string","description":"When the parameter change is created.\n"},"gmtModified":{"type":"string","description":"When the parameter change is modified.\n"},"isApplied":{"type":"integer","description":"Whether the parameter changing is applied.\n"},"name":{"type":"string","description":"Changed parameter name.\n"},"newValue":{"type":"string","description":"The new value of parameter.\n"},"oldValue":{"type":"string","description":"The old value of parameter.\n"}},"type":"object","required":["configId","gmtCreated","gmtModified","isApplied","name","newValue","oldValue"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:selectdb/getDbInstancesInstance:getDbInstancesInstance":{"properties":{"cacheSizePostpaid":{"type":"integer","description":"The sum of cache size for every `PayAsYouGo` clusters in DBInstance.\n"},"cacheSizePrepaid":{"type":"integer","description":"The sum of cache size for every `Subscription` clusters in DBInstance.\n"},"clusterCountPostpaid":{"type":"integer","description":"The sum of cluster counts for `PayAsYouGo` clusters in DBInstance.\n"},"clusterCountPrepaid":{"type":"integer","description":"The sum of cluster counts for `Subscription` clusters in DBInstance.\n"},"cpuPostpaid":{"type":"integer","description":"The sum of cpu resource amount for every `PayAsYouGo` clusters in DBInstance.\n"},"cpuPrepaid":{"type":"integer","description":"The sum of cpu resource amount for every `Subscription` clusters in DBInstance.\n"},"dbInstanceDescription":{"type":"string","description":"The DBInstance description.\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n"},"engine":{"type":"string","description":"The Engine of the DBInstance.\n"},"engineMinorVersion":{"type":"string","description":"The engine minor version of the DBInstance.\n"},"engineVersion":{"type":"string","description":"The engine version of the DBInstance.\n"},"gmtCreated":{"type":"string","description":"The time when DBInstance is created.\n"},"gmtExpired":{"type":"string","description":"The time when DBInstance will be expired. Available on `Subscription` DBInstance.\n"},"gmtModified":{"type":"string","description":"The time when DBInstance is modified.\n"},"id":{"type":"string","description":"The resource ID in terraform of DBInstance.\n"},"lockMode":{"type":"string","description":"The lock mode of the instance. Set the value to lock, which specifies that the instance is locked when it automatically expires or has an overdue payment.\n"},"lockReason":{"type":"string","description":"The reason why the instance is locked.\n"},"memoryPostpaid":{"type":"integer","description":"The sum of memory resource amount offor every `PayAsYouGo` clusters in DBInstance.\n"},"memoryPrepaid":{"type":"integer","description":"The sum of memory resource amount offor every `Subscription` clusters in DBInstance.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`,`Subscription`.\n"},"regionId":{"type":"string","description":"The ID of region for DBInstance.\n"},"status":{"type":"string","description":"The status of the DBInstance. Valid values: `ACTIVATION`,`CREATING`,`DELETING`,`RESTARTING`,`ORDER_PREPARING`.\n"},"subDomain":{"type":"string","description":"The sub domain of DBInstance.\n"},"vpcId":{"type":"string","description":"The ID of the VPC for DBInstance.\n"},"vswitchId":{"type":"string","description":"The ID of vswitch for DBInstance.\n"},"zoneId":{"type":"string","description":"The ID of zone for DBInstance.\n"}},"type":"object","required":["cacheSizePostpaid","cacheSizePrepaid","clusterCountPostpaid","clusterCountPrepaid","cpuPostpaid","cpuPrepaid","dbInstanceDescription","dbInstanceId","engine","engineMinorVersion","engineVersion","gmtCreated","gmtExpired","gmtModified","id","lockMode","lockReason","memoryPostpaid","memoryPrepaid","paymentType","regionId","status","subDomain","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicecatalog/ProvisionedProductOutput:ProvisionedProductOutput":{"properties":{"description":{"type":"string","description":"Description of the output value defined in the template.\n"},"outputKey":{"type":"string","description":"The name of the output value defined in the template.\n"},"outputValue":{"type":"string","description":"The content of the output value defined in the template.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","outputKey","outputValue"]}}},"alicloud:servicecatalog/ProvisionedProductParameter:ProvisionedProductParameter":{"properties":{"parameterKey":{"type":"string","description":"The name of the parameter defined in the template.\n"},"parameterValue":{"type":"string","description":"The Template parameter value entered by the user.\n"}},"type":"object"},"alicloud:servicecatalog/getEndUserProductsEndUserProduct:getEndUserProductsEndUserProduct":{"properties":{"createTime":{"type":"string","description":"Product creation time.According to ISO8601 standard, UTC time is used in the format: YYYY-MM-DDThh:mm:ssZ.\n"},"description":{"type":"string","description":"Product description.\n"},"hasDefaultLaunchOption":{"type":"boolean","description":"Whether there is a default Startup option. Value:-true: There is a default Startup option, and there is no need to fill in the portfolio when starting the product or updating the instance.-false: there is no default Startup option. You must fill in the portfolio when starting the product or updating the instance. For more information about how to obtain the portfolio, see ListLaunchOptions.\u003e If the product is added to only one product portfolio, there will be a default Startup option. If the product is added to multiple product combinations, there will be multiple startup options at the same time, but there is no default Startup option at this time.\n"},"id":{"type":"string","description":"ID of product, Its value is the same as \u003cspan pulumi-lang-nodejs=\"`productId`\" pulumi-lang-dotnet=\"`ProductId`\" pulumi-lang-go=\"`productId`\" pulumi-lang-python=\"`product_id`\" pulumi-lang-yaml=\"`productId`\" pulumi-lang-java=\"`productId`\"\u003e`product_id`\u003c/span\u003e.\n"},"productArn":{"type":"string","description":"Product ARN.\n"},"productId":{"type":"string","description":"Product ID.\n"},"productName":{"type":"string","description":"Product name.\n"},"productType":{"type":"string","description":"Type of product.The value is Ros, which indicates the resource orchestration service (ROS).\n"},"providerName":{"type":"string","description":"Product provider.\n"}},"type":"object","required":["createTime","description","hasDefaultLaunchOption","id","productArn","productId","productName","productType","providerName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicecatalog/getLaunchOptionsLaunchOption:getLaunchOptionsLaunchOption":{"properties":{"constraintSummaries":{"type":"array","items":{"$ref":"#/types/alicloud:servicecatalog/getLaunchOptionsLaunchOptionConstraintSummary:getLaunchOptionsLaunchOptionConstraintSummary"},"description":"List of constraints.\n"},"id":{"type":"string","description":"ID of Service Catalog Launch Option.\n"},"portfolioId":{"type":"string","description":"Product mix ID.\n"},"portfolioName":{"type":"string","description":"Product portfolio name.\n"}},"type":"object","required":["constraintSummaries","id","portfolioId","portfolioName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicecatalog/getLaunchOptionsLaunchOptionConstraintSummary:getLaunchOptionsLaunchOptionConstraintSummary":{"properties":{"constraintType":{"type":"string","description":"Constraint type.The value is Launch, which indicates that the constraint is started.\n"},"description":{"type":"string","description":"Constraint description.\n"}},"type":"object","required":["constraintType","description"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicecatalog/getLaunchOptionsOption:getLaunchOptionsOption":{"properties":{"constraintSummaries":{"type":"array","items":{"$ref":"#/types/alicloud:servicecatalog/getLaunchOptionsOptionConstraintSummary:getLaunchOptionsOptionConstraintSummary"},"description":"List of constraints.\n"},"id":{"type":"string","description":"ID of Service Catalog Launch Option.\n"},"portfolioId":{"type":"string","description":"Product mix ID.\n"},"portfolioName":{"type":"string","description":"Product portfolio name.\n"}},"type":"object","required":["constraintSummaries","id","portfolioId","portfolioName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicecatalog/getLaunchOptionsOptionConstraintSummary:getLaunchOptionsOptionConstraintSummary":{"properties":{"constraintType":{"type":"string","description":"Constraint type.The value is Launch, which indicates that the constraint is started.\n"},"description":{"type":"string","description":"Constraint description.\n"}},"type":"object","required":["constraintType","description"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicecatalog/getPortfoliosPortfolio:getPortfoliosPortfolio":{"properties":{"createTime":{"type":"string","description":"The creation time of the portfolio\n"},"description":{"type":"string","description":"The description of the portfolio\n"},"id":{"type":"string","description":"The ID of the portfolio\n"},"portfolioArn":{"type":"string","description":"The ARN of the portfolio\n"},"portfolioId":{"type":"string","description":"The ID of the portfolio\n"},"portfolioName":{"type":"string","description":"The name of the portfolio\n"},"providerName":{"type":"string","description":"The provider name of the portfolio\n"}},"type":"object","required":["createTime","description","id","portfolioArn","portfolioId","portfolioName","providerName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicecatalog/getProductAsEndUsersUser:getProductAsEndUsersUser":{"properties":{"createTime":{"type":"string","description":"Product creation time.According to ISO8601 standard, UTC time is used in the format: YYYY-MM-DDThh:mm:ssZ.\n"},"description":{"type":"string","description":"Product description.\n"},"hasDefaultLaunchOption":{"type":"boolean","description":"Whether there is a default Startup option. Value:-true: There is a default Startup option, and there is no need to fill in the portfolio when starting the product or updating the instance.-false: there is no default Startup option. You must fill in the portfolio when starting the product or updating the instance. \u003e If the product is added to only one product portfolio, there will be a default Startup option. If the product is added to multiple product combinations, there will be multiple startup options at the same time, but there is no default Startup option at this time.\n"},"id":{"type":"string","description":"ID of product, Its value is the same as \u003cspan pulumi-lang-nodejs=\"`productId`\" pulumi-lang-dotnet=\"`ProductId`\" pulumi-lang-go=\"`productId`\" pulumi-lang-python=\"`product_id`\" pulumi-lang-yaml=\"`productId`\" pulumi-lang-java=\"`productId`\"\u003e`product_id`\u003c/span\u003e.\n"},"productArn":{"type":"string","description":"Product ARN.\n"},"productId":{"type":"string","description":"Product ID.\n"},"productName":{"type":"string","description":"Product name.\n"},"productType":{"type":"string","description":"Type of product.The value is Ros, which indicates the resource orchestration service (ROS).\n"},"providerName":{"type":"string","description":"Product provider.\n"}},"type":"object","required":["createTime","description","hasDefaultLaunchOption","id","productArn","productId","productName","productType","providerName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicecatalog/getProductVersionsProductVersion:getProductVersionsProductVersion":{"properties":{"active":{"type":"boolean","description":"Whether the version is activated\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Version description\n"},"guidance":{"type":"string","description":"Administrator guidance\n"},"id":{"type":"string","description":"ID of product version.\n"},"productId":{"type":"string","description":"Product ID\n"},"productVersionId":{"type":"string","description":"The first ID of the resource\n"},"productVersionName":{"type":"string","description":"The name of the resource\n"},"templateType":{"type":"string","description":"Template Type\n"},"templateUrl":{"type":"string","description":"Template URL\n"}},"type":"object","required":["active","createTime","description","guidance","id","productId","productVersionId","productVersionName","templateType","templateUrl"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicecatalog/getProductVersionsVersion:getProductVersionsVersion":{"properties":{"active":{"type":"boolean","description":"Whether the version is activated\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Version description\n"},"guidance":{"type":"string","description":"Administrator guidance\n"},"id":{"type":"string","description":"ID of product version.\n"},"productId":{"type":"string","description":"Product ID\n"},"productVersionId":{"type":"string","description":"The first ID of the resource\n"},"productVersionName":{"type":"string","description":"The name of the resource\n"},"templateType":{"type":"string","description":"Template Type\n"},"templateUrl":{"type":"string","description":"Template URL\n"}},"type":"object","required":["active","createTime","description","guidance","id","productId","productVersionId","productVersionName","templateType","templateUrl"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicecatalog/getProvisionedProductsProduct:getProvisionedProductsProduct":{"properties":{"createTime":{"type":"string","description":"The creation time of the product instance\n"},"id":{"type":"string"},"lastProvisioningTaskId":{"type":"string","description":"The ID of the last instance operation task\n"},"lastSuccessfulProvisioningTaskId":{"type":"string","description":"The ID of the last successful instance operation task\n"},"lastTaskId":{"type":"string","description":"The ID of the last task\n"},"outputs":{"type":"array","items":{"$ref":"#/types/alicloud:servicecatalog/getProvisionedProductsProductOutput:getProvisionedProductsProductOutput"}},"ownerPrincipalId":{"type":"string","description":"The RAM entity ID of the owner\n"},"ownerPrincipalType":{"type":"string","description":"The RAM entity type of the owner\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:servicecatalog/getProvisionedProductsProductParameter:getProvisionedProductsProductParameter"}},"portfolioId":{"type":"string","description":"Product mix ID.\u003e When there is a default Startup option, there is no need to fill in the portfolio. When there is no default Startup option, you must fill in the portfolio.\n"},"productId":{"type":"string","description":"Product ID.\n"},"productName":{"type":"string","description":"The name of the product\n"},"productVersionId":{"type":"string","description":"Product version ID.\n"},"productVersionName":{"type":"string","description":"The name of the product version\n"},"provisionedProductArn":{"type":"string","description":"The ARN of the product instance\n"},"provisionedProductId":{"type":"string","description":"The ID of the instance.\n"},"provisionedProductName":{"type":"string","description":"The name of the instance.The length is 1~128 characters.\n"},"provisionedProductType":{"type":"string","description":"Instance type.The value is RosStack, which indicates the stack of Alibaba Cloud resource orchestration service (ROS).\n"},"stackId":{"type":"string","description":"The ID of the ROS stack\n"},"stackRegionId":{"type":"string","description":"The ID of the region to which the resource stack of the Alibaba Cloud resource orchestration service (ROS) belongs.\n"},"status":{"type":"string","description":"Instance status\n"},"statusMessage":{"type":"string","description":"The status message of the product instance\n"},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"type":"object","required":["createTime","id","lastProvisioningTaskId","lastSuccessfulProvisioningTaskId","lastTaskId","outputs","ownerPrincipalId","ownerPrincipalType","parameters","portfolioId","productId","productName","productVersionId","productVersionName","provisionedProductArn","provisionedProductId","provisionedProductName","provisionedProductType","stackId","stackRegionId","status","statusMessage"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicecatalog/getProvisionedProductsProductOutput:getProvisionedProductsProductOutput":{"properties":{"description":{"type":"string"},"outputKey":{"type":"string"},"outputValue":{"type":"string"}},"type":"object","required":["description","outputKey","outputValue"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicecatalog/getProvisionedProductsProductParameter:getProvisionedProductsProductParameter":{"properties":{"parameterKey":{"type":"string"},"parameterValue":{"type":"string"}},"type":"object","required":["parameterKey","parameterValue"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicecatalog/getProvisionedProductsProvisionedProduct:getProvisionedProductsProvisionedProduct":{"properties":{"createTime":{"type":"string","description":"The creation time of the product instance\n"},"id":{"type":"string"},"lastProvisioningTaskId":{"type":"string","description":"The ID of the last instance operation task\n"},"lastSuccessfulProvisioningTaskId":{"type":"string","description":"The ID of the last successful instance operation task\n"},"lastTaskId":{"type":"string","description":"The ID of the last task\n"},"outputs":{"type":"array","items":{"$ref":"#/types/alicloud:servicecatalog/getProvisionedProductsProvisionedProductOutput:getProvisionedProductsProvisionedProductOutput"}},"ownerPrincipalId":{"type":"string","description":"The RAM entity ID of the owner\n"},"ownerPrincipalType":{"type":"string","description":"The RAM entity type of the owner\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:servicecatalog/getProvisionedProductsProvisionedProductParameter:getProvisionedProductsProvisionedProductParameter"}},"portfolioId":{"type":"string","description":"Product mix ID.\u003e When there is a default Startup option, there is no need to fill in the portfolio. When there is no default Startup option, you must fill in the portfolio.\n"},"productId":{"type":"string","description":"Product ID.\n"},"productName":{"type":"string","description":"The name of the product\n"},"productVersionId":{"type":"string","description":"Product version ID.\n"},"productVersionName":{"type":"string","description":"The name of the product version\n"},"provisionedProductArn":{"type":"string","description":"The ARN of the product instance\n"},"provisionedProductId":{"type":"string","description":"The ID of the instance.\n"},"provisionedProductName":{"type":"string","description":"The name of the instance.The length is 1~128 characters.\n"},"provisionedProductType":{"type":"string","description":"Instance type.The value is RosStack, which indicates the stack of Alibaba Cloud resource orchestration service (ROS).\n"},"stackId":{"type":"string","description":"The ID of the ROS stack\n"},"stackRegionId":{"type":"string","description":"The ID of the region to which the resource stack of the Alibaba Cloud resource orchestration service (ROS) belongs.\n"},"status":{"type":"string","description":"Instance status\n"},"statusMessage":{"type":"string","description":"The status message of the product instance\n"},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"type":"object","required":["createTime","id","lastProvisioningTaskId","lastSuccessfulProvisioningTaskId","lastTaskId","outputs","ownerPrincipalId","ownerPrincipalType","parameters","portfolioId","productId","productName","productVersionId","productVersionName","provisionedProductArn","provisionedProductId","provisionedProductName","provisionedProductType","stackId","stackRegionId","status","statusMessage"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicecatalog/getProvisionedProductsProvisionedProductOutput:getProvisionedProductsProvisionedProductOutput":{"properties":{"description":{"type":"string"},"outputKey":{"type":"string"},"outputValue":{"type":"string"}},"type":"object","required":["description","outputKey","outputValue"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicecatalog/getProvisionedProductsProvisionedProductParameter:getProvisionedProductsProvisionedProductParameter":{"properties":{"parameterKey":{"type":"string"},"parameterValue":{"type":"string"}},"type":"object","required":["parameterKey","parameterValue"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/ServiceMeshExtraConfiguration:ServiceMeshExtraConfiguration":{"properties":{"crAggregationEnabled":{"type":"boolean","description":"Whether the data plane KubeAPI access capability is enabled.\n"}},"type":"object"},"alicloud:servicemesh/ServiceMeshLoadBalancer:ServiceMeshLoadBalancer":{"properties":{"apiServerLoadbalancerId":{"type":"string","description":"The Instance ID of APIServer Load Balancer\n"},"apiServerPublicEip":{"type":"boolean","description":"Indicates whether to use the IP address of a public network exposed API Server\n","willReplaceOnChanges":true},"pilotPublicEip":{"type":"boolean","description":"Indicates whether to use the IP address of a public network exposure Istio Pilot. **Note**: This field has been deprecated and is readonly as of 1.232.0. Use\u003cspan pulumi-lang-nodejs=\" pilotPublicEipId \" pulumi-lang-dotnet=\" PilotPublicEipId \" pulumi-lang-go=\" pilotPublicEipId \" pulumi-lang-python=\" pilot_public_eip_id \" pulumi-lang-yaml=\" pilotPublicEipId \" pulumi-lang-java=\" pilotPublicEipId \"\u003e pilot_public_eip_id \u003c/span\u003einstead.\n","willReplaceOnChanges":true},"pilotPublicEipId":{"type":"string","description":"the EIP instance id of Pilot load balancer.\n"},"pilotPublicLoadbalancerId":{"type":"string","description":"The Instance ID of Pilot Load Balancer\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["apiServerLoadbalancerId","pilotPublicEip","pilotPublicLoadbalancerId"]}}},"alicloud:servicemesh/ServiceMeshMeshConfig:ServiceMeshMeshConfig":{"properties":{"accessLog":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshMeshConfigAccessLog:ServiceMeshMeshConfigAccessLog","description":"The access logging configuration See \u003cspan pulumi-lang-nodejs=\"`accessLog`\" pulumi-lang-dotnet=\"`AccessLog`\" pulumi-lang-go=\"`accessLog`\" pulumi-lang-python=\"`access_log`\" pulumi-lang-yaml=\"`accessLog`\" pulumi-lang-java=\"`accessLog`\"\u003e`access_log`\u003c/span\u003e below.\n"},"audit":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshMeshConfigAudit:ServiceMeshMeshConfigAudit","description":"Audit information See \u003cspan pulumi-lang-nodejs=\"`audit`\" pulumi-lang-dotnet=\"`Audit`\" pulumi-lang-go=\"`audit`\" pulumi-lang-python=\"`audit`\" pulumi-lang-yaml=\"`audit`\" pulumi-lang-java=\"`audit`\"\u003e`audit`\u003c/span\u003e below.\n"},"controlPlaneLog":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshMeshConfigControlPlaneLog:ServiceMeshMeshConfigControlPlaneLog","description":"Control plane log collection configuration. See \u003cspan pulumi-lang-nodejs=\"`controlPlaneLog`\" pulumi-lang-dotnet=\"`ControlPlaneLog`\" pulumi-lang-go=\"`controlPlaneLog`\" pulumi-lang-python=\"`control_plane_log`\" pulumi-lang-yaml=\"`controlPlaneLog`\" pulumi-lang-java=\"`controlPlaneLog`\"\u003e`control_plane_log`\u003c/span\u003e below.\n"},"customizedZipkin":{"type":"boolean","description":"Whether or not to enable the use of a custom zipkin\n"},"enableLocalityLb":{"type":"boolean","description":"Whether to enable service can access the service through the nearest node access\n","willReplaceOnChanges":true},"includeIpRanges":{"type":"string","description":"The IP ADDRESS range\n"},"kiali":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshMeshConfigKiali:ServiceMeshMeshConfigKiali","description":"Kiali configuration See \u003cspan pulumi-lang-nodejs=\"`kiali`\" pulumi-lang-dotnet=\"`Kiali`\" pulumi-lang-go=\"`kiali`\" pulumi-lang-python=\"`kiali`\" pulumi-lang-yaml=\"`kiali`\" pulumi-lang-java=\"`kiali`\"\u003e`kiali`\u003c/span\u003e below.\n"},"opa":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshMeshConfigOpa:ServiceMeshMeshConfigOpa","description":"The open-door policy of agent (OPA) plug-in information See \u003cspan pulumi-lang-nodejs=\"`opa`\" pulumi-lang-dotnet=\"`Opa`\" pulumi-lang-go=\"`opa`\" pulumi-lang-python=\"`opa`\" pulumi-lang-yaml=\"`opa`\" pulumi-lang-java=\"`opa`\"\u003e`opa`\u003c/span\u003e below.\n"},"outboundTrafficPolicy":{"type":"string","description":"Out to the traffic policy\n"},"pilot":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshMeshConfigPilot:ServiceMeshMeshConfigPilot","description":"Link trace sampling information See \u003cspan pulumi-lang-nodejs=\"`pilot`\" pulumi-lang-dotnet=\"`Pilot`\" pulumi-lang-go=\"`pilot`\" pulumi-lang-python=\"`pilot`\" pulumi-lang-yaml=\"`pilot`\" pulumi-lang-java=\"`pilot`\"\u003e`pilot`\u003c/span\u003e below.\n"},"prometheus":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshMeshConfigPrometheus:ServiceMeshMeshConfigPrometheus","description":"Prometheus configuration\n"},"proxy":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshMeshConfigProxy:ServiceMeshMeshConfigProxy","description":"Proxy configuration, the fields under this structure have service segment default values, if not explicitly specified, you need to manually add them based on the return value of the server after the instance is created. See \u003cspan pulumi-lang-nodejs=\"`proxy`\" pulumi-lang-dotnet=\"`Proxy`\" pulumi-lang-go=\"`proxy`\" pulumi-lang-python=\"`proxy`\" pulumi-lang-yaml=\"`proxy`\" pulumi-lang-java=\"`proxy`\"\u003e`proxy`\u003c/span\u003e below.\n"},"sidecarInjector":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshMeshConfigSidecarInjector:ServiceMeshMeshConfigSidecarInjector","description":"Sidecar injector configuration See \u003cspan pulumi-lang-nodejs=\"`sidecarInjector`\" pulumi-lang-dotnet=\"`SidecarInjector`\" pulumi-lang-go=\"`sidecarInjector`\" pulumi-lang-python=\"`sidecar_injector`\" pulumi-lang-yaml=\"`sidecarInjector`\" pulumi-lang-java=\"`sidecarInjector`\"\u003e`sidecar_injector`\u003c/span\u003e below.\n"},"telemetry":{"type":"boolean","description":"Whether to enable acquisition Prometheus metrics (it is recommended that you use [Alibaba Cloud Prometheus monitoring](https://arms.console.aliyun.com/)\n"},"tracing":{"type":"boolean","description":"Whether to enable link trace (you need to have [Alibaba Cloud link tracking service](https://tracing-analysis.console.aliyun.com/)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["audit","includeIpRanges","prometheus"]}}},"alicloud:servicemesh/ServiceMeshMeshConfigAccessLog:ServiceMeshMeshConfigAccessLog":{"properties":{"enabled":{"type":"boolean","description":"Enable CNI\n"},"gatewayEnabled":{"type":"boolean","description":"Whether collect AccessLog of ASM Gateway to Alibaba Cloud SLS\n"},"gatewayLifecycle":{"type":"integer","description":"Lifecycle of AccessLog of ASM Gateways which have been collected to Alibaba Cloud SLS\n"},"project":{"type":"string","description":"The name of the SLS Project to which the control plane logs are collected.\n"},"sidecarEnabled":{"type":"boolean","description":"Whether collect AccessLog of ASM Gateway to Alibaba Cloud SLS\n"},"sidecarLifecycle":{"type":"integer","description":"Lifecycle of AccessLog of ASM Sidecars which have been collected to Alibaba Cloud SLS\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["gatewayLifecycle","sidecarLifecycle"]}}},"alicloud:servicemesh/ServiceMeshMeshConfigAudit:ServiceMeshMeshConfigAudit":{"properties":{"enabled":{"type":"boolean","description":"Enable CNI\n"},"project":{"type":"string","description":"The name of the SLS Project to which the control plane logs are collected.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled","project"]}}},"alicloud:servicemesh/ServiceMeshMeshConfigControlPlaneLog:ServiceMeshMeshConfigControlPlaneLog":{"properties":{"enabled":{"type":"boolean","description":"Enable CNI\n"},"logTtlInDay":{"type":"integer","description":"Lifecycle of logs has been collected to Alibaba Cloud SLS\n"},"project":{"type":"string","description":"The name of the SLS Project to which the control plane logs are collected.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","logTtlInDay"]}}},"alicloud:servicemesh/ServiceMeshMeshConfigKiali:ServiceMeshMeshConfigKiali":{"properties":{"aggregatedKialiAddress":{"type":"string","description":"When the mesh topology is deployed in managed mode and integrated with CLB to provide external access, the external access address is automatically generated.\n"},"authStrategy":{"type":"string","description":"The authentication strategy used when logging into the mesh topology. In data plane deployment mode, the mesh topology can use token, openid, or ramoauth authentication strategies; in managed mode, the mesh topology can use openid or ramoauth authentication strategies.\n"},"customPrometheusUrl":{"type":"string","description":"When the mesh topology cannot automatically use the integrated ARMS Prometheus, you need to use this property to specify a custom Prometheus HTTP API Url. The corresponding Prometheus instance needs to have been configured to collect Istio metrics in the cluster within the service mesh.\n"},"distributedKialiAccessTokens":{"type":"string","description":"The login token provided when the mesh topology is deployed in data plane deployment mode. When the mesh topology authentication strategy is token, this token can be used to log in to the mesh topology service. The key of the property is the Kubernetes cluster id, and the value of the property is the login token of the mesh topology service in the cluster.\n"},"distributedKialiAddresses":{"type":"string","description":"When the mesh topology is deployed in data plane deployment mode and integrated with CLB to provide external access, the external access address is automatically generated. The key of the attribute is the Kubernetes cluster id, and the value is the external access address of the mesh topology service in the cluster.\n"},"enabled":{"type":"boolean","description":"Enable CNI\n"},"integrateClb":{"type":"boolean","description":"Whether to integrate CLB for mesh topology services to provide external access.\n"},"kialiArmsAuthTokens":{"type":"string","description":"When the mesh topology automatically uses the integrated ARMS Prometheus, if the ARMS Prometheus instance in the cluster has token authentication enabled, you need to use this property to provide the corresponding authentication token for the mesh topology. The key of the property is the Kubernetes cluster id, and the value is the authentication token of the ARMS Prometheus instance corresponding to the cluster. (Service mesh instance version 1.15.3.113 or above is required)\n"},"kialiServiceAnnotations":{"type":"string","description":"Annotations for the Service corresponding to the mesh topology service. When the mesh topology service integrates CLB, annotations can be used to control the CLB specifications. The attribute type is map, the key is the Kubernetes cluster id, and the value is the mesh topology service annotation map under the corresponding Kubernetes cluster. When using the managed mode mesh topology, the key is the service mesh instance id. For annotation content, refer to [Configuring traditional load balancing CLB through Annotation](https://www.alibabacloud.com/help/en/ack/serverless-kubernetes/user-guide/use-annotations-to-configure-load-balancing).(Service mesh instance version 1.17.2.19 or above is required)\n"},"openIdConfig":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshMeshConfigKialiOpenIdConfig:ServiceMeshMeshConfigKialiOpenIdConfig","description":"When the mesh topology's authentication policy is openid, the configuration used when the mesh topology and OIDC application are connected. If the authentication policy is openid, this configuration must be provided. See \u003cspan pulumi-lang-nodejs=\"`openIdConfig`\" pulumi-lang-dotnet=\"`OpenIdConfig`\" pulumi-lang-go=\"`openIdConfig`\" pulumi-lang-python=\"`open_id_config`\" pulumi-lang-yaml=\"`openIdConfig`\" pulumi-lang-java=\"`openIdConfig`\"\u003e`open_id_config`\u003c/span\u003e below.\n"},"ramOauthConfig":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshMeshConfigKialiRamOauthConfig:ServiceMeshMeshConfigKialiRamOauthConfig","description":"When the authentication strategy of the mesh topology is ramoauth, the mesh topology will be connected to the RAM OAuth application to log in with the Alibaba Cloud account. In this case, this attribute must be provided to configure the connection with the RAM OAuth application. See \u003cspan pulumi-lang-nodejs=\"`ramOauthConfig`\" pulumi-lang-dotnet=\"`RamOauthConfig`\" pulumi-lang-go=\"`ramOauthConfig`\" pulumi-lang-python=\"`ram_oauth_config`\" pulumi-lang-yaml=\"`ramOauthConfig`\" pulumi-lang-java=\"`ramOauthConfig`\"\u003e`ram_oauth_config`\u003c/span\u003e below.\n"},"serverConfig":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshMeshConfigKialiServerConfig:ServiceMeshMeshConfigKialiServerConfig","description":"When you need to configure external access to the mesh topology through ASM gateway or other means, and access the mesh topology through a custom domain name or address, you need to specify this property. (The service mesh instance version must be 1.16.4.5 or above) See \u003cspan pulumi-lang-nodejs=\"`serverConfig`\" pulumi-lang-dotnet=\"`ServerConfig`\" pulumi-lang-go=\"`serverConfig`\" pulumi-lang-python=\"`server_config`\" pulumi-lang-yaml=\"`serverConfig`\" pulumi-lang-java=\"`serverConfig`\"\u003e`server_config`\u003c/span\u003e below.\n"},"url":{"type":"string","description":"Kiali service address\n"},"usePopulatedArmsPrometheus":{"type":"boolean","description":"Whether the mesh topology automatically uses the integrated ARMS Prometheus. When the integrated ARMS Prometheus is automatically used, there is no need to specify the dependent Prometheus HTTP API Url.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["aggregatedKialiAddress","authStrategy","customPrometheusUrl","distributedKialiAccessTokens","distributedKialiAddresses","url","usePopulatedArmsPrometheus"]}}},"alicloud:servicemesh/ServiceMeshMeshConfigKialiOpenIdConfig:ServiceMeshMeshConfigKialiOpenIdConfig":{"properties":{"clientId":{"type":"string","description":"The client id provided by the OIDC application\n"},"clientSecret":{"type":"string","description":"The client secret provided by the OIDC application\n"},"issuerUri":{"type":"string","description":"OIDC应用的Issuer URI\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"The scope of the mesh topology request to the OIDC application\n"}},"type":"object"},"alicloud:servicemesh/ServiceMeshMeshConfigKialiRamOauthConfig:ServiceMeshMeshConfigKialiRamOauthConfig":{"properties":{"redirectUris":{"type":"string","description":"The redirect Uri provided to the RAM OAuth application. This needs to be the access address of the mesh topology service. When not provided, the redirect Uri will be automatically inferred based on the ServerConfig or the CLB address of the mesh topology integration.\n"}},"type":"object"},"alicloud:servicemesh/ServiceMeshMeshConfigKialiServerConfig:ServiceMeshMeshConfigKialiServerConfig":{"properties":{"webFqdn":{"type":"string","description":"The domain name or address used when accessing the mesh topology in a custom way\n"},"webPort":{"type":"integer","description":"The port used when accessing the mesh topology in a custom way\n"},"webRoot":{"type":"string","description":"The root path of the service when accessing the mesh topology in a custom way\n"},"webSchema":{"type":"string","description":"The protocol used when accessing the mesh topology in a custom way. Can only be http or https\n"}},"type":"object"},"alicloud:servicemesh/ServiceMeshMeshConfigOpa:ServiceMeshMeshConfigOpa":{"properties":{"enabled":{"type":"boolean","description":"Enable CNI\n"},"limitCpu":{"type":"string","description":"Sidecar injector Pods on the throttle\n"},"limitMemory":{"type":"string","description":"Sidecar injector Pods on the throttle\n"},"logLevel":{"type":"string","description":"OPA proxy container log level\n"},"requestCpu":{"type":"string","description":"Sidecar injector Pods on the requested resource\n"},"requestMemory":{"type":"string","description":"Sidecar injector Pods on the requested resource\n"}},"type":"object"},"alicloud:servicemesh/ServiceMeshMeshConfigPilot:ServiceMeshMeshConfigPilot":{"properties":{"http10Enabled":{"type":"boolean","description":"Whether to support the HTTP1.0\n"},"traceSampling":{"type":"number","description":"Link trace sampling percentage\n"}},"type":"object"},"alicloud:servicemesh/ServiceMeshMeshConfigPrometheus:ServiceMeshMeshConfigPrometheus":{"properties":{"externalUrl":{"type":"string","description":"Prometheus service addresses (enabled external Prometheus when the system automatically populates)\n"},"useExternal":{"type":"boolean","description":"Whether to enable external Prometheus\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["externalUrl","useExternal"]}}},"alicloud:servicemesh/ServiceMeshMeshConfigProxy:ServiceMeshMeshConfigProxy":{"properties":{"clusterDomain":{"type":"string","description":"Cluster domain name\n","willReplaceOnChanges":true},"limitCpu":{"type":"string","description":"Sidecar injector Pods on the throttle\n"},"limitMemory":{"type":"string","description":"Sidecar injector Pods on the throttle\n"},"requestCpu":{"type":"string","description":"Sidecar injector Pods on the requested resource\n"},"requestMemory":{"type":"string","description":"Sidecar injector Pods on the requested resource\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clusterDomain"]}}},"alicloud:servicemesh/ServiceMeshMeshConfigSidecarInjector:ServiceMeshMeshConfigSidecarInjector":{"properties":{"autoInjectionPolicyEnabled":{"type":"boolean","description":"Whether to enable by Pod Annotations automatic injection Sidecar\n"},"enableNamespacesByDefault":{"type":"boolean","description":"Whether it is the all namespaces you turn on the auto injection capabilities\n"},"initCniConfiguration":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshMeshConfigSidecarInjectorInitCniConfiguration:ServiceMeshMeshConfigSidecarInjectorInitCniConfiguration","description":"CNI configuration See \u003cspan pulumi-lang-nodejs=\"`initCniConfiguration`\" pulumi-lang-dotnet=\"`InitCniConfiguration`\" pulumi-lang-go=\"`initCniConfiguration`\" pulumi-lang-python=\"`init_cni_configuration`\" pulumi-lang-yaml=\"`initCniConfiguration`\" pulumi-lang-java=\"`initCniConfiguration`\"\u003e`init_cni_configuration`\u003c/span\u003e below.\n"},"limitCpu":{"type":"string","description":"Sidecar injector Pods on the throttle\n"},"limitMemory":{"type":"string","description":"Sidecar injector Pods on the throttle\n"},"requestCpu":{"type":"string","description":"Sidecar injector Pods on the requested resource\n"},"requestMemory":{"type":"string","description":"Sidecar injector Pods on the requested resource\n"},"sidecarInjectorWebhookAsYaml":{"type":"string","description":"Other automatic injection Sidecar configuration (in YAML format)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["initCniConfiguration","sidecarInjectorWebhookAsYaml"]}}},"alicloud:servicemesh/ServiceMeshMeshConfigSidecarInjectorInitCniConfiguration:ServiceMeshMeshConfigSidecarInjectorInitCniConfiguration":{"properties":{"enabled":{"type":"boolean","description":"Enable CNI\n"},"excludeNamespaces":{"type":"string","description":"The excluded namespace\n"}},"type":"object"},"alicloud:servicemesh/ServiceMeshNetwork:ServiceMeshNetwork":{"properties":{"securityGroupId":{"type":"string","description":"Security group ID\n"},"vpcId":{"type":"string","description":"VPC ID\n","willReplaceOnChanges":true},"vswitcheList":{"type":"string","description":"Virtual Switch ID\n","willReplaceOnChanges":true}},"type":"object","required":["vpcId","vswitcheList"],"language":{"nodejs":{"requiredOutputs":["securityGroupId","vpcId","vswitcheList"]}}},"alicloud:servicemesh/UserPermissionPermission:UserPermissionPermission":{"properties":{"isCustom":{"type":"boolean","description":"Whether the grant object is a RAM role.\n"},"isRamRole":{"type":"boolean","description":"Whether the grant object is an entity.\n"},"roleName":{"type":"string","description":"The permission name. Valid values: `istio-admin`, `istio-ops`, `istio-readonly`.\n- `istio-admin`:  The administrator.\n- `istio-ops`: The administrator of the service mesh resource.\n- `istio-readonly`: The read only permission.\n"},"roleType":{"type":"string","description":"The role type. Valid Value: \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"serviceMeshId":{"type":"string","description":"The service mesh id.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["isCustom","isRamRole","roleName","roleType","serviceMeshId"]}}},"alicloud:servicemesh/getExtensionProvidersProvider:getExtensionProvidersProvider":{"properties":{"config":{"type":"string","description":"The config of the Service Mesh Extension Provider.\n"},"extensionProviderName":{"type":"string","description":"The name of the Service Mesh Extension Provider.\n"},"id":{"type":"string","description":"The ID of the Service Mesh Extension Provider. It formats as `\u003cservice_mesh_id\u003e:\u003ctype\u003e:\u003cextension_provider_name\u003e`.\n"},"serviceMeshId":{"type":"string","description":"The ID of the Service Mesh.\n"},"type":{"type":"string","description":"The type of the Service Mesh Extension Provider. Valid values: \u003cspan pulumi-lang-nodejs=\"`httpextauth`\" pulumi-lang-dotnet=\"`Httpextauth`\" pulumi-lang-go=\"`httpextauth`\" pulumi-lang-python=\"`httpextauth`\" pulumi-lang-yaml=\"`httpextauth`\" pulumi-lang-java=\"`httpextauth`\"\u003e`httpextauth`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`grpcextauth`\" pulumi-lang-dotnet=\"`Grpcextauth`\" pulumi-lang-go=\"`grpcextauth`\" pulumi-lang-python=\"`grpcextauth`\" pulumi-lang-yaml=\"`grpcextauth`\" pulumi-lang-java=\"`grpcextauth`\"\u003e`grpcextauth`\u003c/span\u003e.\n"}},"type":"object","required":["config","extensionProviderName","id","serviceMeshId","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/getServiceMeshesMesh:getServiceMeshesMesh":{"properties":{"clusters":{"type":"array","items":{"type":"string"},"description":"The Cluster List.\n"},"createTime":{"type":"string","description":"The created time of the Service Mesh instance.\n"},"edition":{"type":"string","description":"Grid instance version type. **Note:** \u003cspan pulumi-lang-nodejs=\"`edition`\" pulumi-lang-dotnet=\"`Edition`\" pulumi-lang-go=\"`edition`\" pulumi-lang-python=\"`edition`\" pulumi-lang-yaml=\"`edition`\" pulumi-lang-java=\"`edition`\"\u003e`edition`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"endpoints":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/getServiceMeshesMeshEndpoint:getServiceMeshesMeshEndpoint"},"description":"The endpoint details. **Note:** \u003cspan pulumi-lang-nodejs=\"`endpoints`\" pulumi-lang-dotnet=\"`Endpoints`\" pulumi-lang-go=\"`endpoints`\" pulumi-lang-python=\"`endpoints`\" pulumi-lang-yaml=\"`endpoints`\" pulumi-lang-java=\"`endpoints`\"\u003e`endpoints`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"errorMessage":{"type":"string","description":"The returned error message.\n"},"id":{"type":"string","description":"The ID of the Service Mesh instance.\n"},"istioOperatorVersion":{"type":"string","description":"(Available since v1.170.0) The Istio Operator Version. **Note:** \u003cspan pulumi-lang-nodejs=\"`istioOperatorVersion`\" pulumi-lang-dotnet=\"`IstioOperatorVersion`\" pulumi-lang-go=\"`istioOperatorVersion`\" pulumi-lang-python=\"`istio_operator_version`\" pulumi-lang-yaml=\"`istioOperatorVersion`\" pulumi-lang-java=\"`istioOperatorVersion`\"\u003e`istio_operator_version`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"kubeConfig":{"type":"string","description":"The content of Kube config. **Note:** \u003cspan pulumi-lang-nodejs=\"`kubeConfig`\" pulumi-lang-dotnet=\"`KubeConfig`\" pulumi-lang-go=\"`kubeConfig`\" pulumi-lang-python=\"`kube_config`\" pulumi-lang-yaml=\"`kubeConfig`\" pulumi-lang-java=\"`kubeConfig`\"\u003e`kube_config`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"loadBalancers":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/getServiceMeshesMeshLoadBalancer:getServiceMeshesMeshLoadBalancer"},"description":"The configuration of the Load Balancer. **Note:** \u003cspan pulumi-lang-nodejs=\"`loadBalancer`\" pulumi-lang-dotnet=\"`LoadBalancer`\" pulumi-lang-go=\"`loadBalancer`\" pulumi-lang-python=\"`load_balancer`\" pulumi-lang-yaml=\"`loadBalancer`\" pulumi-lang-java=\"`loadBalancer`\"\u003e`load_balancer`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"meshConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/getServiceMeshesMeshMeshConfig:getServiceMeshesMeshMeshConfig"},"description":"The configuration of the Service grid. **Note:** \u003cspan pulumi-lang-nodejs=\"`meshConfig`\" pulumi-lang-dotnet=\"`MeshConfig`\" pulumi-lang-go=\"`meshConfig`\" pulumi-lang-python=\"`mesh_config`\" pulumi-lang-yaml=\"`meshConfig`\" pulumi-lang-java=\"`meshConfig`\"\u003e`mesh_config`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"networks":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/getServiceMeshesMeshNetwork:getServiceMeshesMeshNetwork"},"description":"The configuration of the Service grid network. **Note:** \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"serviceMeshId":{"type":"string","description":"The ID of the Service Mesh instance.\n"},"serviceMeshName":{"type":"string","description":"The name of the Service Mesh instance.\n"},"sidecarVersion":{"type":"string","description":"(Available since v1.170.0) The SideCar Version. **Note:** \u003cspan pulumi-lang-nodejs=\"`sidecarVersion`\" pulumi-lang-dotnet=\"`SidecarVersion`\" pulumi-lang-go=\"`sidecarVersion`\" pulumi-lang-python=\"`sidecar_version`\" pulumi-lang-yaml=\"`sidecarVersion`\" pulumi-lang-java=\"`sidecarVersion`\"\u003e`sidecar_version`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the Service Mesh. Valid values: \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`initial`\" pulumi-lang-dotnet=\"`Initial`\" pulumi-lang-go=\"`initial`\" pulumi-lang-python=\"`initial`\" pulumi-lang-yaml=\"`initial`\" pulumi-lang-java=\"`initial`\"\u003e`initial`\u003c/span\u003e.\n"},"version":{"type":"string","description":"The version of the Service Mesh instance.\n"}},"type":"object","required":["clusters","createTime","edition","endpoints","errorMessage","id","istioOperatorVersion","kubeConfig","loadBalancers","meshConfigs","networks","serviceMeshId","serviceMeshName","sidecarVersion","status","version"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/getServiceMeshesMeshEndpoint:getServiceMeshesMeshEndpoint":{"properties":{"intranetApiServerEndpoint":{"type":"string","description":"The internal address of the API Server.\n"},"intranetPilotEndpoint":{"type":"string","description":"The internal address of the Istio Pilot.\n"},"publicApiServerEndpoint":{"type":"string","description":"The public address of the API Server.\n"},"publicPilotEndpoint":{"type":"string","description":"The public address of the Istio Pilot.\n"}},"type":"object","required":["intranetApiServerEndpoint","intranetPilotEndpoint","publicApiServerEndpoint","publicPilotEndpoint"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/getServiceMeshesMeshLoadBalancer:getServiceMeshesMeshLoadBalancer":{"properties":{"apiServerLoadbalancerId":{"type":"string","description":"The IP address of a public network exposed API Server corresponding to the Load Balance.\n"},"apiServerPublicEip":{"type":"boolean","description":"Whether to use the IP address of a public network exposed the API Server.\n"},"pilotPublicEip":{"type":"boolean","description":"Whether to use the IP address of a public network exposure the Istio Pilot.\n"},"pilotPublicLoadbalancerId":{"type":"string","description":"The IP address of a public network exposure Istio Pilot corresponds to the Load Balance.\n"}},"type":"object","required":["apiServerLoadbalancerId","apiServerPublicEip","pilotPublicEip","pilotPublicLoadbalancerId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/getServiceMeshesMeshMeshConfig:getServiceMeshesMeshMeshConfig":{"properties":{"accessLogs":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/getServiceMeshesMeshMeshConfigAccessLog:getServiceMeshesMeshMeshConfigAccessLog"},"description":"The configuration of the access logging.\n"},"audits":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/getServiceMeshesMeshMeshConfigAudit:getServiceMeshesMeshMeshConfigAudit"},"description":"The configuration of the Service grid audit.\n"},"controlPlaneLogs":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/getServiceMeshesMeshMeshConfigControlPlaneLog:getServiceMeshesMeshMeshConfigControlPlaneLog"},"description":"(Available since v1.174.0) The configuration of the control plane logging.\n"},"customizedZipkin":{"type":"boolean","description":"Whether or not to enable the use of a custom zipkin.\n"},"enableLocalityLb":{"type":"boolean","description":"Whether to enable service can access the service through the nearest node access.\n"},"includeIpRanges":{"type":"string","description":"The IP ADDRESS range.\n"},"kialis":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/getServiceMeshesMeshMeshConfigKiali:getServiceMeshesMeshMeshConfigKiali"},"description":"The configuration of the Kiali.\n"},"opas":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/getServiceMeshesMeshMeshConfigOpa:getServiceMeshesMeshMeshConfigOpa"},"description":"The open-door policy of agent (OPA) plug-in information.\n"},"outboundTrafficPolicy":{"type":"string","description":"The policy of the Out to the traffic.\n"},"pilots":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/getServiceMeshesMeshMeshConfigPilot:getServiceMeshesMeshMeshConfigPilot"},"description":"The configuration of the Link trace sampling.\n"},"prometheuses":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/getServiceMeshesMeshMeshConfigPrometheus:getServiceMeshesMeshMeshConfigPrometheus"},"description":"the configuration of the Prometheus.\n"},"proxies":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/getServiceMeshesMeshMeshConfigProxy:getServiceMeshesMeshMeshConfigProxy"},"description":"The configuration of the Proxy.\n"},"sidecarInjectors":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/getServiceMeshesMeshMeshConfigSidecarInjector:getServiceMeshesMeshMeshConfigSidecarInjector"},"description":"The configuration of the Sidecar injector.\n"},"telemetry":{"type":"boolean","description":"Whether to enable acquisition Prometheus metrics.\n"},"tracing":{"type":"boolean","description":"Whether to enable link trace.\n"}},"type":"object","required":["accessLogs","audits","controlPlaneLogs","customizedZipkin","enableLocalityLb","includeIpRanges","kialis","opas","outboundTrafficPolicy","pilots","prometheuses","proxies","sidecarInjectors","telemetry","tracing"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/getServiceMeshesMeshMeshConfigAccessLog:getServiceMeshesMeshMeshConfigAccessLog":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable CNI.\n"},"project":{"type":"string","description":"The Service grid audit that to the project.\n"}},"type":"object","required":["enabled","project"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/getServiceMeshesMeshMeshConfigAudit:getServiceMeshesMeshMeshConfigAudit":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable CNI.\n"},"project":{"type":"string","description":"The Service grid audit that to the project.\n"}},"type":"object","required":["enabled","project"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/getServiceMeshesMeshMeshConfigControlPlaneLog:getServiceMeshesMeshMeshConfigControlPlaneLog":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable CNI.\n"},"project":{"type":"string","description":"The Service grid audit that to the project.\n"}},"type":"object","required":["enabled","project"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/getServiceMeshesMeshMeshConfigKiali:getServiceMeshesMeshMeshConfigKiali":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable CNI.\n"},"url":{"type":"string","description":"The service address of the Kiali.\n"}},"type":"object","required":["enabled","url"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/getServiceMeshesMeshMeshConfigOpa:getServiceMeshesMeshMeshConfigOpa":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable CNI.\n"},"limitCpu":{"type":"string","description":"Sidecar injector Pods on the throttle.\n"},"limitMemory":{"type":"string","description":"The memory limit  of the Sidecar injector Pods.\n"},"logLevel":{"type":"string","description":"The log level of the OPA proxy container .\n"},"requestCpu":{"type":"string","description":"The requested cpu the Sidecar injector Pods.\n"},"requestMemory":{"type":"string","description":"The requested memory the Sidecar injector Pods.\n"}},"type":"object","required":["enabled","limitCpu","limitMemory","logLevel","requestCpu","requestMemory"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/getServiceMeshesMeshMeshConfigPilot:getServiceMeshesMeshMeshConfigPilot":{"properties":{"http10Enabled":{"type":"boolean","description":"Whether to support the HTTP1.0.\n"},"traceSampling":{"type":"number","description":"The  percentage of the Link trace sampling.\n"}},"type":"object","required":["http10Enabled","traceSampling"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/getServiceMeshesMeshMeshConfigPrometheus:getServiceMeshesMeshMeshConfigPrometheus":{"properties":{"externalUrl":{"type":"string","description":"The  service addresses of the Prometheus.\n"},"useExternal":{"type":"boolean","description":"Whether to enable external Prometheus.\n"}},"type":"object","required":["externalUrl","useExternal"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/getServiceMeshesMeshMeshConfigProxy:getServiceMeshesMeshMeshConfigProxy":{"properties":{"clusterDomain":{"type":"string","description":"The domain name of the Cluster.\n"},"limitCpu":{"type":"string","description":"Sidecar injector Pods on the throttle.\n"},"limitMemory":{"type":"string","description":"The memory limit  of the Sidecar injector Pods.\n"},"requestCpu":{"type":"string","description":"The requested cpu the Sidecar injector Pods.\n"},"requestMemory":{"type":"string","description":"The requested memory the Sidecar injector Pods.\n"}},"type":"object","required":["clusterDomain","limitCpu","limitMemory","requestCpu","requestMemory"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/getServiceMeshesMeshMeshConfigSidecarInjector:getServiceMeshesMeshMeshConfigSidecarInjector":{"properties":{"autoInjectionPolicyEnabled":{"type":"boolean","description":"Whether to enable by Pod Annotations automatic injection Sidecar.\n"},"enableNamespacesByDefault":{"type":"boolean","description":"Whether it is the all namespaces you turn on the auto injection capabilities.\n"},"initCniConfigurations":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/getServiceMeshesMeshMeshConfigSidecarInjectorInitCniConfiguration:getServiceMeshesMeshMeshConfigSidecarInjectorInitCniConfiguration"},"description":"The configuration of the CNI\n"},"limitCpu":{"type":"string","description":"Sidecar injector Pods on the throttle.\n"},"limitMemory":{"type":"string","description":"The memory limit  of the Sidecar injector Pods.\n"},"requestCpu":{"type":"string","description":"The requested cpu the Sidecar injector Pods.\n"},"requestMemory":{"type":"string","description":"The requested memory the Sidecar injector Pods.\n"},"sidecarInjectorWebhookAsYaml":{"type":"string","description":"Other automatic injection Sidecar configuration (in YAML format).\n"}},"type":"object","required":["autoInjectionPolicyEnabled","enableNamespacesByDefault","initCniConfigurations","limitCpu","limitMemory","requestCpu","requestMemory","sidecarInjectorWebhookAsYaml"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/getServiceMeshesMeshMeshConfigSidecarInjectorInitCniConfiguration:getServiceMeshesMeshMeshConfigSidecarInjectorInitCniConfiguration":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable CNI.\n"},"excludeNamespaces":{"type":"string","description":"The excluded namespace of the CNI.\n"}},"type":"object","required":["enabled","excludeNamespaces"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/getServiceMeshesMeshNetwork:getServiceMeshesMeshNetwork":{"properties":{"securityGroupId":{"type":"string","description":"The ID of the Security group\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitcheLists":{"type":"array","items":{"type":"string"},"description":"The list of Virtual Switch.\n"}},"type":"object","required":["securityGroupId","vpcId","vswitcheLists"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:servicemesh/getVersionsVersion:getVersionsVersion":{"properties":{"edition":{"type":"string","description":"The edition of the ASM instance. Valid values:\n- Default: Standard Edition\n- Pro: Professional Edition\n"},"id":{"type":"string","description":"The ASM version id. It formats as `\u003cedition\u003e:\u003cversion\u003e`.\n"},"version":{"type":"string","description":"A list of Service Mesh Service Meshes. Each element contains the following attributes:\n"}},"type":"object","required":["edition","id","version"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:simpleapplicationserver/getImagesImage:getImagesImage":{"properties":{"description":{"type":"string","description":"The description of the image.\n"},"id":{"type":"string","description":"The ID of the Instance Image.\n"},"imageId":{"type":"string","description":"The ID of the image.\n"},"imageName":{"type":"string","description":"The name of the resource.\n"},"imageType":{"type":"string","description":"The type of the image. Valid values: \u003cspan pulumi-lang-nodejs=\"`app`\" pulumi-lang-dotnet=\"`App`\" pulumi-lang-go=\"`app`\" pulumi-lang-python=\"`app`\" pulumi-lang-yaml=\"`app`\" pulumi-lang-java=\"`app`\"\u003e`app`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e.\n"},"platform":{"type":"string","description":"The platform of Plan supported.\n"}},"type":"object","required":["description","id","imageId","imageName","imageType","platform"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:simpleapplicationserver/getInstancesInstance:getInstancesInstance":{"properties":{"businessStatus":{"type":"string","description":"The billing status of the simple application server. Valid values: `Normal`, `Expired` and `Overdue`.\n"},"createTime":{"type":"string","description":"The time when the simple application server was created.\n"},"ddosStatus":{"type":"string","description":"The DDoS protection status. Valid values: `Normal`, `BlackHole`, and `Defense`.\n"},"expiredTime":{"type":"string","description":"The time when the simple application server expires.\n"},"id":{"type":"string","description":"The ID of the Instance.\n"},"imageId":{"type":"string","description":"The ID of the simple application server Image.\n"},"innerIpAddress":{"type":"string","description":"The internal IP address of the simple application server.\n"},"instanceId":{"type":"string","description":"The ID of the simple application server.\n"},"instanceName":{"type":"string","description":"The name of the resource.\n"},"paymentType":{"type":"string","description":"The billing method of the simple application server.\n"},"planId":{"type":"string","description":"The ID of the simple application server plan.\n"},"publicIpAddress":{"type":"string","description":"The public IP address of the simple application server.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object","required":["businessStatus","createTime","ddosStatus","expiredTime","id","imageId","innerIpAddress","instanceId","instanceName","paymentType","planId","publicIpAddress","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:simpleapplicationserver/getServerCustomImagesImage:getServerCustomImagesImage":{"properties":{"customImageId":{"type":"string","description":"The first ID of the resource.\n"},"customImageName":{"type":"string","description":"The name of the resource.\n"},"description":{"type":"string","description":"Image description information.\n"},"id":{"type":"string","description":"The ID of the Custom Image.\n"},"platform":{"type":"string","description":"The type of operating system used by the Mirror. Valid values: `Linux`, `Windows`.\n"}},"type":"object","required":["customImageId","customImageName","description","id","platform"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:simpleapplicationserver/getServerDisksDisk:getServerDisksDisk":{"properties":{"category":{"type":"string","description":"Disk type. Possible values: `ESSD`, `SSD`.\n"},"createTime":{"type":"string","description":"The time when the disk was created. The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.\n"},"device":{"type":"string","description":"The device name of the disk on the simple application server.\n"},"diskId":{"type":"string","description":"The first ID of the resource.\n"},"diskName":{"type":"string","description":"The name of the resource.\n"},"diskType":{"type":"string","description":"The type of the disk. Possible values: `System`, `Data`.\n"},"id":{"type":"string","description":"The ID of the Disk.\n"},"instanceId":{"type":"string","description":"Alibaba Cloud simple application server instance ID.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`, `Subscription`.\n"},"size":{"type":"integer","description":"The size of the disk. Unit: `GB`.\n"},"status":{"type":"string","description":"The status of the disk. Valid values: `ReIniting`, `Creating`, `In_Use`, `Available`, `Attaching`, `Detaching`.\n"}},"type":"object","required":["category","createTime","device","diskId","diskName","diskType","id","instanceId","paymentType","size","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:simpleapplicationserver/getServerFirewallRulesRule:getServerFirewallRulesRule":{"properties":{"firewallRuleId":{"type":"string","description":"The ID of the firewall rule.\n"},"id":{"type":"string","description":"The ID of the Firewall Rule. The value formats as `\u003cinstance_id\u003e:\u003cfirewall_rule_id\u003e`.\n"},"instanceId":{"type":"string","description":"Alibaba Cloud simple application server instance ID.\n"},"port":{"type":"string","description":"The port range of the firewall rule.\n"},"remark":{"type":"string","description":"The remarks of the firewall rule.\n"},"ruleProtocol":{"type":"string","description":"The transport layer protocol. Valid values: `Tcp`, `Udp`, `TcpAndUdp`.\n"}},"type":"object","required":["firewallRuleId","id","instanceId","port","remark","ruleProtocol"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:simpleapplicationserver/getServerPlansPlan:getServerPlansPlan":{"properties":{"bandwidth":{"type":"integer","description":"The peak bandwidth. Unit: Mbit/s.\n"},"core":{"type":"integer","description":"The number of CPU cores.\n"},"diskSize":{"type":"integer","description":"The size of the enhanced SSD (ESSD). Unit: GB.\n"},"flow":{"type":"integer","description":"The monthly data transfer quota. Unit: GB.\n"},"id":{"type":"string","description":"The ID of the Instance Plan.\n"},"memory":{"type":"number","description":"The memory size. Unit: GB.\n"},"planId":{"type":"string","description":"The ID of the Instance Plan.\n"},"supportPlatform":{"type":"string","description":"The platform of Plan supported.\n"}},"type":"object","required":["bandwidth","core","diskSize","flow","id","memory","planId","supportPlatform"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:simpleapplicationserver/getServerSnapshotsSnapshot:getServerSnapshotsSnapshot":{"properties":{"createTime":{"type":"string","description":"The time when the snapshot was created. The time follows the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.\n"},"diskId":{"type":"string","description":"The ID of the source disk. This parameter has a value even after the source disk is released.\n"},"id":{"type":"string","description":"The ID of the Snapshot.\n"},"progress":{"type":"string","description":"The progress of snapshot creation.\n"},"remark":{"type":"string","description":"The remarks of the snapshot.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot.\n"},"snapshotName":{"type":"string","description":"The name of the snapshot.\n"},"sourceDiskType":{"type":"string","description":"A snapshot of the source of a disk type. Possible values: `System`, `Data`.\n"},"status":{"type":"string","description":"The status of the snapshots. Valid values: `Progressing`, `Accomplished` and `Failed`.\n"}},"type":"object","required":["createTime","diskId","id","progress","remark","snapshotId","snapshotName","sourceDiskType","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/AclEntryList:AclEntryList":{"properties":{"comment":{"type":"string"},"entry":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["comment","entry"]}}},"alicloud:slb/BackendServerBackendServer:BackendServerBackendServer":{"properties":{"serverId":{"type":"string"},"serverIp":{"type":"string"},"type":{"type":"string"},"weight":{"type":"integer"}},"type":"object","required":["serverId","weight"],"language":{"nodejs":{"requiredOutputs":["serverId","serverIp","weight"]}}},"alicloud:slb/ListenerXForwardedFor:ListenerXForwardedFor":{"properties":{"retriveClientIp":{"type":"boolean","description":"Whether to retrieve the client ip.\n"},"retriveSlbId":{"type":"boolean","description":"Indicates whether the SLB-ID header is used to retrieve the ID of the CLB instance. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"retriveSlbIp":{"type":"boolean","description":"Indicates whether the SLB-IP header is used to retrieve the virtual IP address (VIP) requested by the client. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"retriveSlbProto":{"type":"boolean","description":"Specifies whether to use the X-Forwarded-Proto header to retrieve the listener protocol. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["retriveClientIp"]}}},"alicloud:slb/MasterSlaveServerGroupServer:MasterSlaveServerGroupServer":{"properties":{"isBackup":{"type":"integer","description":"Determine if the server is executing. Valid value 0, 1.\n"},"port":{"type":"integer","description":"The port used by the backend server. Valid value range: [1-65535].\n"},"serverId":{"type":"string","description":"A list backend server ID (ECS instance ID).\n"},"serverType":{"type":"string","description":"The server type of the backend server. Valid value Master, Slave.\n"},"type":{"type":"string","description":"Type of the backend server. Valid value ecs, eni. Default to eni.\n"},"weight":{"type":"integer","description":"Weight of the backend server. Valid value range: [0-100]. Default to 100.\n"}},"type":"object","required":["port","serverId"]},"alicloud:slb/ServerGroupServer:ServerGroupServer":{"properties":{"port":{"type":"integer","description":"The port used by the backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n"},"serverIds":{"type":"array","items":{"type":"string"},"description":"The list of Elastic Compute Service (ECS) Ids or Elastic Network Interface (ENI) Ids.\n"},"type":{"type":"string","description":"Specify the type of the backend server. Default value: \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`eni`\" pulumi-lang-dotnet=\"`Eni`\" pulumi-lang-go=\"`eni`\" pulumi-lang-python=\"`eni`\" pulumi-lang-yaml=\"`eni`\" pulumi-lang-java=\"`eni`\"\u003e`eni`\u003c/span\u003e.\n"},"weight":{"type":"integer","description":"Weight of the backend server. Default value: \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"}},"type":"object","required":["port","serverIds"]},"alicloud:slb/getAclsAcl:getAclsAcl":{"properties":{"entryLists":{"type":"array","items":{"$ref":"#/types/alicloud:slb/getAclsAclEntryList:getAclsAclEntryList"},"description":"A list of entry (IP addresses or CIDR blocks).  Each entry contains two sub-fields as `Entry Block` follows.\n"},"id":{"type":"string","description":"Acl ID.\n"},"ipVersion":{"type":"string"},"name":{"type":"string","description":"Acl name.\n"},"relatedListeners":{"type":"array","items":{"$ref":"#/types/alicloud:slb/getAclsAclRelatedListener:getAclsAclRelatedListener"},"description":"A list of listener are attached by the acl.  Each listener contains four sub-fields as `Listener Block` follows.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which acl belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object","required":["entryLists","id","ipVersion","name","relatedListeners","resourceGroupId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getAclsAclEntryList:getAclsAclEntryList":{"properties":{"comment":{"type":"string"},"entry":{"type":"string"}},"type":"object","required":["comment","entry"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getAclsAclRelatedListener:getAclsAclRelatedListener":{"properties":{"aclType":{"type":"string"},"frontendPort":{"type":"integer"},"loadBalancerId":{"type":"string"},"protocol":{"type":"string"}},"type":"object","required":["aclType","frontendPort","loadBalancerId","protocol"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getApplicationLoadBalancersBalancer:getApplicationLoadBalancersBalancer":{"properties":{"address":{"type":"string","description":"Service address of the SLBs.\n"},"addressIpVersion":{"type":"string","description":"The address ip version. Valid values \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e.\n"},"addressType":{"type":"string","description":"The address type of the SLB. Valid values \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e.\n"},"autoReleaseTime":{"type":"integer","description":"The auto release time.\n"},"backendServers":{"type":"array","items":{"$ref":"#/types/alicloud:slb/getApplicationLoadBalancersBalancerBackendServer:getApplicationLoadBalancersBalancerBackendServer"},"description":"The backend servers of the SLB.\n"},"bandwidth":{"type":"integer","description":"The bandwidth of the SLB.\n"},"createTimeStamp":{"type":"integer","description":"The create time stamp of the SLB.\n"},"deleteProtection":{"type":"string","description":"Whether the SLB should delete protection.\n"},"endTime":{"type":"string","description":"The end time of the SLB.\n"},"endTimeStamp":{"type":"integer","description":"The end time stamp of the SLB.\n"},"id":{"type":"string","description":"ID of the SLB.\n"},"internetChargeType":{"type":"string","description":"The internet charge type. Valid values `PayByBandwidth` and `PayByTraffic`.\n"},"listenerPortsAndProtocals":{"type":"array","items":{"$ref":"#/types/alicloud:slb/getApplicationLoadBalancersBalancerListenerPortsAndProtocal:getApplicationLoadBalancersBalancerListenerPortsAndProtocal"},"description":"The listener ports and protocal of the SLB.\n"},"listenerPortsAndProtocols":{"type":"array","items":{"$ref":"#/types/alicloud:slb/getApplicationLoadBalancersBalancerListenerPortsAndProtocol:getApplicationLoadBalancersBalancerListenerPortsAndProtocol"},"description":"The listener ports and protocol of the SLB.\n"},"loadBalancerId":{"type":"string","description":"Thd ID of the SLB.\n"},"loadBalancerName":{"type":"string","description":"The name of the SLB.\n"},"loadBalancerSpec":{"type":"string","description":"The specification of the SLB.\n"},"masterZoneId":{"type":"string","description":"The master zone id of the SLB.\n"},"modificationProtectionReason":{"type":"string","description":"The reason of modification protection.\n"},"modificationProtectionStatus":{"type":"string","description":"The status of modification protection.\n"},"networkType":{"type":"string","description":"Network type of the SLBs. Valid values: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e.\n"},"paymentType":{"type":"string","description":"The payment type of SLB. Valid values `PayAsYouGo` and `Subscription`.\n"},"regionIdAlias":{"type":"string","description":"Region ID the SLB belongs to.\n"},"renewalCycUnit":{"type":"string","description":"The renewal cyc unit of the SLB.\n"},"renewalDuration":{"type":"integer","description":"The renewal duration of the SLB.\n"},"renewalStatus":{"type":"string","description":"The renewal status of the SLB.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which SLB belongs.\n"},"slaveZoneId":{"type":"string","description":"The slave zone id of the SLB.\n"},"status":{"type":"string","description":"SLB current status. Possible values: \u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`locked`\" pulumi-lang-dotnet=\"`Locked`\" pulumi-lang-go=\"`locked`\" pulumi-lang-python=\"`locked`\" pulumi-lang-yaml=\"`locked`\" pulumi-lang-java=\"`locked`\"\u003e`locked`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the SLB instances. The \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e can have a maximum of 5 tag. It must be in the format:\n"},"vpcId":{"type":"string","description":"ID of the VPC linked to the SLBs.\n"},"vswitchId":{"type":"string","description":"ID of the vSwitch linked to the SLBs.\n"}},"type":"object","required":["address","addressIpVersion","addressType","autoReleaseTime","backendServers","bandwidth","createTimeStamp","deleteProtection","endTime","endTimeStamp","id","internetChargeType","listenerPortsAndProtocals","listenerPortsAndProtocols","loadBalancerId","loadBalancerName","loadBalancerSpec","masterZoneId","modificationProtectionReason","modificationProtectionStatus","networkType","paymentType","regionIdAlias","renewalCycUnit","renewalDuration","renewalStatus","resourceGroupId","slaveZoneId","status","tags","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getApplicationLoadBalancersBalancerBackendServer:getApplicationLoadBalancersBalancerBackendServer":{"properties":{"description":{"type":"string","description":"The description of protocol.\n"},"serverId":{"type":"string","description":"The server ID.\n"},"type":{"type":"string","description":"The type of servers.\n"},"weight":{"type":"integer","description":"The weight of servers.\n"}},"type":"object","required":["description","serverId","type","weight"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getApplicationLoadBalancersBalancerListenerPortsAndProtocal:getApplicationLoadBalancersBalancerListenerPortsAndProtocal":{"properties":{"listenerPort":{"type":"integer","description":"The listener port.\n"},"listenerProtocal":{"type":"string","description":"The listener protoal.\n"}},"type":"object","required":["listenerPort","listenerProtocal"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getApplicationLoadBalancersBalancerListenerPortsAndProtocol:getApplicationLoadBalancersBalancerListenerPortsAndProtocol":{"properties":{"description":{"type":"string","description":"The description of protocol.\n"},"forwardPort":{"type":"integer","description":"The forward port.\n"},"listenerForward":{"type":"string","description":"The listener forward.\n"},"listenerPort":{"type":"integer","description":"The listener port.\n"},"listenerProtocol":{"type":"string","description":"The listener protocol.\n"}},"type":"object","required":["description","forwardPort","listenerForward","listenerPort","listenerProtocol"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getApplicationLoadBalancersSlb:getApplicationLoadBalancersSlb":{"properties":{"address":{"type":"string","description":"Service address of the SLBs.\n"},"creationTime":{"type":"string"},"id":{"type":"string","description":"ID of the SLB.\n"},"internet":{"type":"boolean"},"masterAvailabilityZone":{"type":"string"},"name":{"type":"string"},"networkType":{"type":"string","description":"Network type of the SLBs. Valid values: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e.\n"},"regionId":{"type":"string"},"slaveAvailabilityZone":{"type":"string"},"status":{"type":"string","description":"SLB current status. Possible values: \u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`locked`\" pulumi-lang-dotnet=\"`Locked`\" pulumi-lang-go=\"`locked`\" pulumi-lang-python=\"`locked`\" pulumi-lang-yaml=\"`locked`\" pulumi-lang-java=\"`locked`\"\u003e`locked`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the SLB instances. The \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e can have a maximum of 5 tag. It must be in the format:\n"},"vpcId":{"type":"string","description":"ID of the VPC linked to the SLBs.\n"},"vswitchId":{"type":"string","description":"ID of the vSwitch linked to the SLBs.\n"}},"type":"object","required":["address","creationTime","id","internet","masterAvailabilityZone","name","networkType","regionId","slaveAvailabilityZone","status","tags","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getAttachmentsSlbAttachment:getAttachmentsSlbAttachment":{"properties":{"instanceId":{"type":"string","description":"ID of the attached ECS instance.\n"},"weight":{"type":"integer","description":"Weight associated to the ECS instance.\n"}},"type":"object","required":["instanceId","weight"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getBackendServersBackendServer:getBackendServersBackendServer":{"properties":{"id":{"type":"string","description":"backend server ID.\n"},"serverType":{"type":"string","description":"Type of the backend server.\n"},"weight":{"type":"integer","description":"Weight associated to the ECS instance.\n"}},"type":"object","required":["id","serverType","weight"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getCaCertificatesCertificate:getCaCertificatesCertificate":{"properties":{"caCertificateId":{"type":"string","description":"(Available in v1.123.1+) CA certificate ID.\n"},"caCertificateName":{"type":"string","description":"(Available in v1.123.1+) CA certificate name.\n"},"commonName":{"type":"string","description":"CA certificate common name.\n"},"createdTimestamp":{"type":"integer","description":"CA certificate created timestamp.\n"},"expiredTime":{"type":"string","description":"CA certificate expired time.\n"},"expiredTimestamp":{"type":"integer","description":"CA certificate expired timestamp.\n"},"fingerprint":{"type":"string","description":"CA certificate fingerprint.\n"},"id":{"type":"string","description":"CA certificate ID.\n"},"name":{"type":"string","description":"(Deprecated from v1.123.1) Deprecated and replace by \u003cspan pulumi-lang-nodejs=\"`caCertificateName`\" pulumi-lang-dotnet=\"`CaCertificateName`\" pulumi-lang-go=\"`caCertificateName`\" pulumi-lang-python=\"`ca_certificate_name`\" pulumi-lang-yaml=\"`caCertificateName`\" pulumi-lang-java=\"`caCertificateName`\"\u003e`ca_certificate_name`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which ca certificates belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object","required":["caCertificateId","caCertificateName","commonName","createdTimestamp","expiredTime","expiredTimestamp","fingerprint","id","name","resourceGroupId","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getDomainExtensionsExtension:getDomainExtensionsExtension":{"properties":{"domain":{"type":"string","description":"The domain name.\n"},"id":{"type":"string","description":"The ID of the domain extension.\n"},"serverCertificateId":{"type":"string","description":"The ID of the certificate used by the domain name.\n"}},"type":"object","required":["domain","id","serverCertificateId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getListenersSlbListener:getListenersSlbListener":{"properties":{"backendPort":{"type":"integer","description":"Port opened on the backend server to receive requests.\n"},"bandwidth":{"type":"integer","description":"Peak bandwidth. If the value is set to -1, the listener is not limited by bandwidth.\n"},"caCertificateId":{"type":"string","description":"ID of the CA certificate (only required when two-way authentication is used). Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e.\n"},"cookie":{"type":"string","description":"Cookie configured by the backend server. Only available when the\u003cspan pulumi-lang-nodejs=\" stickySessionType \" pulumi-lang-dotnet=\" StickySessionType \" pulumi-lang-go=\" stickySessionType \" pulumi-lang-python=\" sticky_session_type \" pulumi-lang-yaml=\" stickySessionType \" pulumi-lang-java=\" stickySessionType \"\u003e sticky_session_type \u003c/span\u003eis \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e.\n"},"cookieTimeout":{"type":"integer","description":"Cookie timeout in seconds. Only available when the\u003cspan pulumi-lang-nodejs=\" stickySessionType \" pulumi-lang-dotnet=\" StickySessionType \" pulumi-lang-go=\" stickySessionType \" pulumi-lang-python=\" sticky_session_type \" pulumi-lang-yaml=\" stickySessionType \" pulumi-lang-java=\" stickySessionType \"\u003e sticky_session_type \u003c/span\u003eis \u003cspan pulumi-lang-nodejs=\"`insert`\" pulumi-lang-dotnet=\"`Insert`\" pulumi-lang-go=\"`insert`\" pulumi-lang-python=\"`insert`\" pulumi-lang-yaml=\"`insert`\" pulumi-lang-java=\"`insert`\"\u003e`insert`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The description of slb listener.\n"},"enableHttp2":{"type":"string","description":"Whether to enable https listener support http2 or not. Valid values are \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e.\n"},"establishedTimeout":{"type":"integer","description":"Connection timeout in seconds for the Layer 4 TCP listener. Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e.\n"},"frontendPort":{"type":"integer","description":"Filter listeners by the specified frontend port.\n"},"gzip":{"type":"string","description":"Indicate whether Gzip compression is enabled or not. Possible values are \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e.\n"},"healthCheck":{"type":"string","description":"Indicate whether health check is enabled of not. Possible values are \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"healthCheckConnectPort":{"type":"integer","description":"Port used for health check.\n"},"healthCheckConnectTimeout":{"type":"integer","description":"Amount of time in seconds to wait for the response for a health check.\n"},"healthCheckDomain":{"type":"string","description":"Domain name used for health check. The SLB sends HTTP head requests to the backend server, the domain is useful when the backend server verifies the host field in the requests. Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e (in this case\u003cspan pulumi-lang-nodejs=\" healthCheckType \" pulumi-lang-dotnet=\" HealthCheckType \" pulumi-lang-go=\" healthCheckType \" pulumi-lang-python=\" health_check_type \" pulumi-lang-yaml=\" healthCheckType \" pulumi-lang-java=\" healthCheckType \"\u003e health_check_type \u003c/span\u003emust be \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e).\n"},"healthCheckHttpCode":{"type":"string","description":"HTTP status codes indicating that the health check is normal. It can contain several comma-separated values such as \"http_2xx,http_3xx\". Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e (in this case\u003cspan pulumi-lang-nodejs=\" healthCheckType \" pulumi-lang-dotnet=\" HealthCheckType \" pulumi-lang-go=\" healthCheckType \" pulumi-lang-python=\" health_check_type \" pulumi-lang-yaml=\" healthCheckType \" pulumi-lang-java=\" healthCheckType \"\u003e health_check_type \u003c/span\u003emust be \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e).\n"},"healthCheckInterval":{"type":"integer","description":"Time interval between two consecutive health checks.\n"},"healthCheckTimeout":{"type":"integer","description":"Amount of time in seconds to wait for the response from a health check. If an ECS instance sends no response within the specified timeout period, the health check fails. Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e.\n"},"healthCheckType":{"type":"string","description":"Health check method. Possible values are \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e. Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e.\n"},"healthCheckUri":{"type":"string","description":"URI used for health check. Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e (in this case\u003cspan pulumi-lang-nodejs=\" healthCheckType \" pulumi-lang-dotnet=\" HealthCheckType \" pulumi-lang-go=\" healthCheckType \" pulumi-lang-python=\" health_check_type \" pulumi-lang-yaml=\" healthCheckType \" pulumi-lang-java=\" healthCheckType \"\u003e health_check_type \u003c/span\u003emust be \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e).\n"},"healthyThreshold":{"type":"integer","description":"Number of consecutive successes of health check performed on the same ECS instance (from failure to success).\n"},"idleTimeout":{"type":"integer","description":"Timeout of http or https listener established connection idle timeout. Valid value range: [1-60] in seconds. Default to 15.\n"},"masterSlaveServerGroupId":{"type":"string","description":"ID of the active/standby server group.\n"},"persistenceTimeout":{"type":"integer","description":"Timeout value of the TCP connection in seconds. If the value is 0, the session persistence function is disabled. Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e.\n"},"protocol":{"type":"string","description":"Filter listeners by the specified protocol. Valid values: \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e.\n"},"proxyProtocolV2Enabled":{"type":"boolean","description":"Whether to support carrying the client source address to the backend server through the Proxy Protocol. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"requestTimeout":{"type":"integer","description":"Timeout of http or https listener request (which does not get response from backend) timeout. Valid value range: [1-180] in seconds. Default to 60.\n"},"scheduler":{"type":"string","description":"Algorithm used to distribute traffic. Possible values: \u003cspan pulumi-lang-nodejs=\"`wrr`\" pulumi-lang-dotnet=\"`Wrr`\" pulumi-lang-go=\"`wrr`\" pulumi-lang-python=\"`wrr`\" pulumi-lang-yaml=\"`wrr`\" pulumi-lang-java=\"`wrr`\"\u003e`wrr`\u003c/span\u003e (weighted round robin), \u003cspan pulumi-lang-nodejs=\"`wlc`\" pulumi-lang-dotnet=\"`Wlc`\" pulumi-lang-go=\"`wlc`\" pulumi-lang-python=\"`wlc`\" pulumi-lang-yaml=\"`wlc`\" pulumi-lang-java=\"`wlc`\"\u003e`wlc`\u003c/span\u003e (weighted least connection) and \u003cspan pulumi-lang-nodejs=\"`rr`\" pulumi-lang-dotnet=\"`Rr`\" pulumi-lang-go=\"`rr`\" pulumi-lang-python=\"`rr`\" pulumi-lang-yaml=\"`rr`\" pulumi-lang-java=\"`rr`\"\u003e`rr`\u003c/span\u003e (round robin).\n"},"securityStatus":{"type":"string","description":"Security status. Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e.\n"},"serverCertificateId":{"type":"string"},"serverGroupId":{"type":"string","description":"ID of the linked VServer group.\n"},"sslCertificateId":{"type":"string","description":"ID of the server certificate. Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e.\n"},"status":{"type":"string","description":"Listener status.\n"},"stickySession":{"type":"string","description":"Indicate whether session persistence is enabled or not. If enabled, all session requests from the same client are sent to the same backend server. Possible values are \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e.\n"},"stickySessionType":{"type":"string","description":"Method used to handle the cookie. Possible values are \u003cspan pulumi-lang-nodejs=\"`insert`\" pulumi-lang-dotnet=\"`Insert`\" pulumi-lang-go=\"`insert`\" pulumi-lang-python=\"`insert`\" pulumi-lang-yaml=\"`insert`\" pulumi-lang-java=\"`insert`\"\u003e`insert`\u003c/span\u003e (cookie added to the response) and \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e (cookie set by the backend server). Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e and\u003cspan pulumi-lang-nodejs=\" stickySession \" pulumi-lang-dotnet=\" StickySession \" pulumi-lang-go=\" stickySession \" pulumi-lang-python=\" sticky_session \" pulumi-lang-yaml=\" stickySession \" pulumi-lang-java=\" stickySession \"\u003e sticky_session \u003c/span\u003eis \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e.\n"},"tlsCipherPolicy":{"type":"string","description":"Https listener TLS cipher policy. Valid values are \u003cspan pulumi-lang-nodejs=\"`tlsCipherPolicy10`\" pulumi-lang-dotnet=\"`TlsCipherPolicy10`\" pulumi-lang-go=\"`tlsCipherPolicy10`\" pulumi-lang-python=\"`tls_cipher_policy_1_0`\" pulumi-lang-yaml=\"`tlsCipherPolicy10`\" pulumi-lang-java=\"`tlsCipherPolicy10`\"\u003e`tls_cipher_policy_1_0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tlsCipherPolicy11`\" pulumi-lang-dotnet=\"`TlsCipherPolicy11`\" pulumi-lang-go=\"`tlsCipherPolicy11`\" pulumi-lang-python=\"`tls_cipher_policy_1_1`\" pulumi-lang-yaml=\"`tlsCipherPolicy11`\" pulumi-lang-java=\"`tlsCipherPolicy11`\"\u003e`tls_cipher_policy_1_1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tlsCipherPolicy12`\" pulumi-lang-dotnet=\"`TlsCipherPolicy12`\" pulumi-lang-go=\"`tlsCipherPolicy12`\" pulumi-lang-python=\"`tls_cipher_policy_1_2`\" pulumi-lang-yaml=\"`tlsCipherPolicy12`\" pulumi-lang-java=\"`tlsCipherPolicy12`\"\u003e`tls_cipher_policy_1_2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tlsCipherPolicy12Strict`\" pulumi-lang-dotnet=\"`TlsCipherPolicy12Strict`\" pulumi-lang-go=\"`tlsCipherPolicy12Strict`\" pulumi-lang-python=\"`tls_cipher_policy_1_2_strict`\" pulumi-lang-yaml=\"`tlsCipherPolicy12Strict`\" pulumi-lang-java=\"`tlsCipherPolicy12Strict`\"\u003e`tls_cipher_policy_1_2_strict`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`tlsCipherPolicy10`\" pulumi-lang-dotnet=\"`TlsCipherPolicy10`\" pulumi-lang-go=\"`tlsCipherPolicy10`\" pulumi-lang-python=\"`tls_cipher_policy_1_0`\" pulumi-lang-yaml=\"`tlsCipherPolicy10`\" pulumi-lang-java=\"`tlsCipherPolicy10`\"\u003e`tls_cipher_policy_1_0`\u003c/span\u003e.\n"},"unhealthyThreshold":{"type":"integer","description":"Number of consecutive failures of health check performed on the same ECS instance (from success to failure).\n"},"xForwardedFor":{"type":"string","description":"Indicate whether the HTTP header field \"X-Forwarded-For\" is added or not; it allows the backend server to know about the user's IP address. Possible values are \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e.\n"},"xForwardedForSlbId":{"type":"string","description":"Indicate whether the HTTP header field \"X-Forwarded-For_SLBID\" is added or not; it allows the backend server to know about the SLB ID. Possible values are \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e.\n"},"xForwardedForSlbIp":{"type":"string","description":"Indicate whether the HTTP header field \"X-Forwarded-For_SLBIP\" is added or not; it allows the backend server to know about the SLB IP address. Possible values are \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e.\n"},"xForwardedForSlbProto":{"type":"string","description":"Indicate whether the HTTP header field \"X-Forwarded-For_proto\" is added or not; it allows the backend server to know about the user's protocol. Possible values are \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Only available when the protocol is \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e.\n"}},"type":"object","required":["backendPort","bandwidth","caCertificateId","cookie","cookieTimeout","description","enableHttp2","establishedTimeout","frontendPort","gzip","healthCheck","healthCheckConnectPort","healthCheckConnectTimeout","healthCheckDomain","healthCheckHttpCode","healthCheckInterval","healthCheckTimeout","healthCheckType","healthCheckUri","healthyThreshold","idleTimeout","masterSlaveServerGroupId","persistenceTimeout","protocol","proxyProtocolV2Enabled","requestTimeout","scheduler","securityStatus","serverCertificateId","serverGroupId","sslCertificateId","status","stickySession","stickySessionType","tlsCipherPolicy","unhealthyThreshold","xForwardedFor","xForwardedForSlbId","xForwardedForSlbIp","xForwardedForSlbProto"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getLoadBalancersBalancer:getLoadBalancersBalancer":{"properties":{"address":{"type":"string","description":"Service address of the SLBs.\n"},"addressIpVersion":{"type":"string"},"addressType":{"type":"string"},"autoReleaseTime":{"type":"integer"},"backendServers":{"type":"array","items":{"$ref":"#/types/alicloud:slb/getLoadBalancersBalancerBackendServer:getLoadBalancersBalancerBackendServer"}},"bandwidth":{"type":"integer"},"createTimeStamp":{"type":"integer"},"deleteProtection":{"type":"string"},"endTime":{"type":"string"},"endTimeStamp":{"type":"integer"},"id":{"type":"string","description":"ID of the SLB.\n"},"internetChargeType":{"type":"string"},"listenerPortsAndProtocals":{"type":"array","items":{"$ref":"#/types/alicloud:slb/getLoadBalancersBalancerListenerPortsAndProtocal:getLoadBalancersBalancerListenerPortsAndProtocal"}},"listenerPortsAndProtocols":{"type":"array","items":{"$ref":"#/types/alicloud:slb/getLoadBalancersBalancerListenerPortsAndProtocol:getLoadBalancersBalancerListenerPortsAndProtocol"}},"loadBalancerId":{"type":"string"},"loadBalancerName":{"type":"string"},"loadBalancerSpec":{"type":"string"},"masterZoneId":{"type":"string"},"modificationProtectionReason":{"type":"string"},"modificationProtectionStatus":{"type":"string"},"networkType":{"type":"string","description":"Network type of the SLBs. Valid values: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e.\n"},"paymentType":{"type":"string"},"regionIdAlias":{"type":"string"},"renewalCycUnit":{"type":"string"},"renewalDuration":{"type":"integer"},"renewalStatus":{"type":"string"},"resourceGroupId":{"type":"string","description":"The Id of resource group which SLB belongs.\n"},"slaveZoneId":{"type":"string"},"status":{"type":"string","description":"SLB current status. Possible values: \u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`locked`\" pulumi-lang-dotnet=\"`Locked`\" pulumi-lang-go=\"`locked`\" pulumi-lang-python=\"`locked`\" pulumi-lang-yaml=\"`locked`\" pulumi-lang-java=\"`locked`\"\u003e`locked`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the SLB instances. The \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e can have a maximum of 5 tag. It must be in the format:\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst taggedInstances = alicloud.slb.getLoadBalancers({\n    tags: {\n        tagKey1: \"tagValue1\",\n        tagKey2: \"tagValue2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ntagged_instances = alicloud.slb.get_load_balancers(tags={\n    \"tagKey1\": \"tagValue1\",\n    \"tagKey2\": \"tagValue2\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var taggedInstances = AliCloud.Slb.GetLoadBalancers.Invoke(new()\n    {\n        Tags = \n        {\n            { \"tagKey1\", \"tagValue1\" },\n            { \"tagKey2\", \"tagValue2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := slb.GetLoadBalancers(ctx, \u0026slb.GetLoadBalancersArgs{\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"tagKey1\": \"tagValue1\",\n\t\t\t\t\"tagKey2\": \"tagValue2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetLoadBalancersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var taggedInstances = SlbFunctions.getLoadBalancers(GetLoadBalancersArgs.builder()\n            .tags(Map.ofEntries(\n                Map.entry(\"tagKey1\", \"tagValue1\"),\n                Map.entry(\"tagKey2\", \"tagValue2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  taggedInstances:\n    fn::invoke:\n      function: alicloud:slb:getLoadBalancers\n      arguments:\n        tags:\n          tagKey1: tagValue1\n          tagKey2: tagValue2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n"},"vpcId":{"type":"string","description":"ID of the VPC linked to the SLBs.\n"},"vswitchId":{"type":"string","description":"ID of the vSwitch linked to the SLBs.\n"}},"type":"object","required":["address","addressIpVersion","addressType","autoReleaseTime","backendServers","bandwidth","createTimeStamp","deleteProtection","endTime","endTimeStamp","id","internetChargeType","listenerPortsAndProtocals","listenerPortsAndProtocols","loadBalancerId","loadBalancerName","loadBalancerSpec","masterZoneId","modificationProtectionReason","modificationProtectionStatus","networkType","paymentType","regionIdAlias","renewalCycUnit","renewalDuration","renewalStatus","resourceGroupId","slaveZoneId","status","tags","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getLoadBalancersBalancerBackendServer:getLoadBalancersBalancerBackendServer":{"properties":{"description":{"type":"string"},"serverId":{"type":"string"},"type":{"type":"string"},"weight":{"type":"integer"}},"type":"object","required":["description","serverId","type","weight"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getLoadBalancersBalancerListenerPortsAndProtocal:getLoadBalancersBalancerListenerPortsAndProtocal":{"properties":{"listenerPort":{"type":"integer"},"listenerProtocal":{"type":"string"}},"type":"object","required":["listenerPort","listenerProtocal"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getLoadBalancersBalancerListenerPortsAndProtocol:getLoadBalancersBalancerListenerPortsAndProtocol":{"properties":{"description":{"type":"string"},"forwardPort":{"type":"integer"},"listenerForward":{"type":"string"},"listenerPort":{"type":"integer"},"listenerProtocol":{"type":"string"}},"type":"object","required":["description","forwardPort","listenerForward","listenerPort","listenerProtocol"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getLoadBalancersSlb:getLoadBalancersSlb":{"properties":{"address":{"type":"string","description":"Service address of the SLBs.\n"},"creationTime":{"type":"string","description":"SLB creation time.\n"},"id":{"type":"string","description":"ID of the SLB.\n"},"internet":{"type":"boolean","description":"SLB addressType: internet if \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, intranet if \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Must be \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e when \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n"},"masterAvailabilityZone":{"type":"string","description":"Master availability zone of the SLBs.\n"},"name":{"type":"string","description":"SLB name.\n"},"networkType":{"type":"string","description":"Network type of the SLBs. Valid values: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e.\n"},"regionId":{"type":"string","description":"Region ID the SLB belongs to.\n"},"slaveAvailabilityZone":{"type":"string","description":"Slave availability zone of the SLBs.\n"},"status":{"type":"string","description":"SLB current status. Possible values: \u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`locked`\" pulumi-lang-dotnet=\"`Locked`\" pulumi-lang-go=\"`locked`\" pulumi-lang-python=\"`locked`\" pulumi-lang-yaml=\"`locked`\" pulumi-lang-java=\"`locked`\"\u003e`locked`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the SLB instances. The \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e can have a maximum of 5 tag. It must be in the format:\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst taggedInstances = alicloud.slb.getLoadBalancers({\n    tags: {\n        tagKey1: \"tagValue1\",\n        tagKey2: \"tagValue2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ntagged_instances = alicloud.slb.get_load_balancers(tags={\n    \"tagKey1\": \"tagValue1\",\n    \"tagKey2\": \"tagValue2\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var taggedInstances = AliCloud.Slb.GetLoadBalancers.Invoke(new()\n    {\n        Tags = \n        {\n            { \"tagKey1\", \"tagValue1\" },\n            { \"tagKey2\", \"tagValue2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := slb.GetLoadBalancers(ctx, \u0026slb.GetLoadBalancersArgs{\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"tagKey1\": \"tagValue1\",\n\t\t\t\t\"tagKey2\": \"tagValue2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetLoadBalancersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var taggedInstances = SlbFunctions.getLoadBalancers(GetLoadBalancersArgs.builder()\n            .tags(Map.ofEntries(\n                Map.entry(\"tagKey1\", \"tagValue1\"),\n                Map.entry(\"tagKey2\", \"tagValue2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  taggedInstances:\n    fn::invoke:\n      function: alicloud:slb:getLoadBalancers\n      arguments:\n        tags:\n          tagKey1: tagValue1\n          tagKey2: tagValue2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n"},"vpcId":{"type":"string","description":"ID of the VPC linked to the SLBs.\n"},"vswitchId":{"type":"string","description":"ID of the vSwitch linked to the SLBs.\n"}},"type":"object","required":["address","creationTime","id","internet","masterAvailabilityZone","name","networkType","regionId","slaveAvailabilityZone","status","tags","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getMasterSlaveServerGroupsGroup:getMasterSlaveServerGroupsGroup":{"properties":{"id":{"type":"string","description":"master slave server group ID.\n"},"name":{"type":"string","description":"master slave server group name.\n"},"servers":{"type":"array","items":{"$ref":"#/types/alicloud:slb/getMasterSlaveServerGroupsGroupServer:getMasterSlaveServerGroupsGroupServer"},"description":"ECS instances associated to the group. Each element contains the following attributes:\n"}},"type":"object","required":["id","name","servers"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getMasterSlaveServerGroupsGroupServer:getMasterSlaveServerGroupsGroupServer":{"properties":{"instanceId":{"type":"string","description":"ID of the attached ECS instance.\n"},"isBackup":{"type":"integer","description":"(Removed from v1.63.0) Determine if the server is executing.\n"},"port":{"type":"integer","description":"The port used by the master slave server group.\n"},"serverType":{"type":"string","description":"The server type of the attached ECS instance.\n"},"weight":{"type":"integer","description":"Weight associated to the ECS instance.\n"}},"type":"object","required":["instanceId","isBackup","port","serverType","weight"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getRulesSlbRule:getRulesSlbRule":{"properties":{"domain":{"type":"string","description":"Domain name in the HTTP request where the rule applies (e.g. \"*.aliyun.com\").\n"},"id":{"type":"string","description":"Rule ID.\n"},"name":{"type":"string","description":"Rule name.\n"},"serverGroupId":{"type":"string","description":"ID of the linked VServer group.\n"},"url":{"type":"string","description":"Path in the HTTP request where the rule applies (e.g. \"/image\").\n"}},"type":"object","required":["domain","id","name","serverGroupId","url"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getServerCertificatesCertificate:getServerCertificatesCertificate":{"properties":{"alicloudCertificateId":{"type":"string","description":"Id of server certificate issued by alibaba cloud.\n"},"alicloudCertificateName":{"type":"string","description":"Name of server certificate issued by alibaba cloud.\n"},"commonName":{"type":"string","description":"Server certificate common name.\n"},"createdTime":{"type":"string","description":"Server certificate created time.\n"},"createdTimestamp":{"type":"integer","description":"Server certificate created timestamp.\n"},"expiredTime":{"type":"string","description":"Server certificate expired time.\n"},"expiredTimestamp":{"type":"integer","description":"Server certificate expired timestamp.\n"},"fingerprint":{"type":"string","description":"Server certificate fingerprint.\n"},"id":{"type":"string","description":"Server certificate ID.\n"},"isAlicloudCertificate":{"type":"boolean","description":"Is server certificate issued by alibaba cloud or not.\n"},"name":{"type":"string","description":"Server certificate name.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the slb server certificates belongs.\n"},"subjectAlternativeNames":{"type":"array","items":{"type":"string"},"description":"Server certificate subject alternative name list.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object","required":["alicloudCertificateId","alicloudCertificateName","commonName","createdTime","createdTimestamp","expiredTime","expiredTimestamp","fingerprint","id","isAlicloudCertificate","name","subjectAlternativeNames"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getServerGroupsSlbServerGroup:getServerGroupsSlbServerGroup":{"properties":{"id":{"type":"string","description":"VServer group ID.\n"},"name":{"type":"string","description":"VServer group name.\n"},"servers":{"type":"array","items":{"$ref":"#/types/alicloud:slb/getServerGroupsSlbServerGroupServer:getServerGroupsSlbServerGroupServer"},"description":"ECS instances associated to the group. Each element contains the following attributes:\n"}},"type":"object","required":["id","name","servers"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getServerGroupsSlbServerGroupServer:getServerGroupsSlbServerGroupServer":{"properties":{"instanceId":{"type":"string","description":"ID of the attached ECS instance.\n"},"weight":{"type":"integer","description":"Weight associated to the ECS instance.\n"}},"type":"object","required":["instanceId","weight"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getTlsCipherPoliciesPolicy:getTlsCipherPoliciesPolicy":{"properties":{"ciphers":{"type":"array","items":{"type":"string"},"description":"The encryption algorithms supported. It depends on the value of \u003cspan pulumi-lang-nodejs=\"`tlsVersions`\" pulumi-lang-dotnet=\"`TlsVersions`\" pulumi-lang-go=\"`tlsVersions`\" pulumi-lang-python=\"`tls_versions`\" pulumi-lang-yaml=\"`tlsVersions`\" pulumi-lang-java=\"`tlsVersions`\"\u003e`tls_versions`\u003c/span\u003e.\n"},"createTime":{"type":"string","description":"The creation time timestamp.\n"},"id":{"type":"string","description":"The ID of the Tls Cipher Policy.\n"},"relateListeners":{"type":"array","items":{"$ref":"#/types/alicloud:slb/getTlsCipherPoliciesPolicyRelateListener:getTlsCipherPoliciesPolicyRelateListener"},"description":"Array of Relate Listeners.\n"},"status":{"type":"string","description":"TLS policy instance state.\n"},"tlsCipherPolicyId":{"type":"string","description":"The ID of TLS cipher policy.\n"},"tlsCipherPolicyName":{"type":"string","description":"TLS policy name. Length is from 2 to 128, or in both the English and Chinese characters must be with an uppercase/lowercase letter or a Chinese character and the beginning, may contain numbers, in dot `.`, underscore `_` or dash `-`.\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"The version of TLS protocol.\n"}},"type":"object","required":["ciphers","createTime","id","relateListeners","status","tlsCipherPolicyId","tlsCipherPolicyName","tlsVersions"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getTlsCipherPoliciesPolicyRelateListener:getTlsCipherPoliciesPolicyRelateListener":{"properties":{"loadBalancerId":{"type":"string","description":"The ID of SLB instance.\n"},"port":{"type":"integer","description":"Listening port. Valid value: 1 to 65535.\n"},"protocol":{"type":"string","description":"Snooping protocols. Valid values: `TCP`, `UDP`, `HTTP`, or `HTTPS`.\n"}},"type":"object","required":["loadBalancerId","port","protocol"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getZonesZone:getZonesZone":{"properties":{"id":{"type":"string","description":"ID of the zone. It is same as \u003cspan pulumi-lang-nodejs=\"`masterZoneId`\" pulumi-lang-dotnet=\"`MasterZoneId`\" pulumi-lang-go=\"`masterZoneId`\" pulumi-lang-python=\"`master_zone_id`\" pulumi-lang-yaml=\"`masterZoneId`\" pulumi-lang-java=\"`masterZoneId`\"\u003e`master_zone_id`\u003c/span\u003e.\n"},"masterZoneId":{"type":"string","description":"The primary zone.\n"},"slaveZoneId":{"type":"string","description":"The secondary zone.\n"},"slbSlaveZoneIds":{"type":"array","items":{"type":"string"},"description":"(Deprecated from 1.157.0) A list of slb slave zone ids in which the slb master zone. \nIt has been deprecated from v1.157.0 and use \u003cspan pulumi-lang-nodejs=\"`slaveZoneId`\" pulumi-lang-dotnet=\"`SlaveZoneId`\" pulumi-lang-go=\"`slaveZoneId`\" pulumi-lang-python=\"`slave_zone_id`\" pulumi-lang-yaml=\"`slaveZoneId`\" pulumi-lang-java=\"`slaveZoneId`\"\u003e`slave_zone_id`\u003c/span\u003e instead.\n","deprecationMessage":"the attribute\u003cspan pulumi-lang-nodejs=\" slbSlaveZoneIds \" pulumi-lang-dotnet=\" SlbSlaveZoneIds \" pulumi-lang-go=\" slbSlaveZoneIds \" pulumi-lang-python=\" slb_slave_zone_ids \" pulumi-lang-yaml=\" slbSlaveZoneIds \" pulumi-lang-java=\" slbSlaveZoneIds \"\u003e slb_slave_zone_ids \u003c/span\u003ehas been deprecated from version 1.157.0 and use\u003cspan pulumi-lang-nodejs=\" slaveZoneId \" pulumi-lang-dotnet=\" SlaveZoneId \" pulumi-lang-go=\" slaveZoneId \" pulumi-lang-python=\" slave_zone_id \" pulumi-lang-yaml=\" slaveZoneId \" pulumi-lang-java=\" slaveZoneId \"\u003e slave_zone_id \u003c/span\u003einstead."},"supportedResources":{"type":"array","items":{"$ref":"#/types/alicloud:slb/getZonesZoneSupportedResource:getZonesZoneSupportedResource"},"description":"(Available in 1.154.0+)A list of available resource which the slb master zone supported.\n"}},"type":"object","required":["id","masterZoneId","slaveZoneId","slbSlaveZoneIds","supportedResources"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:slb/getZonesZoneSupportedResource:getZonesZoneSupportedResource":{"properties":{"addressIpVersion":{"type":"string","description":"The type of IP address.\n"},"addressType":{"type":"string","description":"The type of network.\n"}},"type":"object","required":["addressIpVersion","addressType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/AlertConfiguration:AlertConfiguration":{"properties":{"annotations":{"type":"array","items":{"$ref":"#/types/alicloud:sls/AlertConfigurationAnnotation:AlertConfigurationAnnotation"},"description":"Template Annotations.\n"},"autoAnnotation":{"type":"boolean","description":"Whether to turn on automatic labeling. true (default): The automatic annotation function is enabled, and the system automatically adds information such as__county__to the alarm. For more information, see Automatic Labeling. false: Turn off the automatic annotation function.\n"},"conditionConfiguration":{"$ref":"#/types/alicloud:sls/AlertConfigurationConditionConfiguration:AlertConfigurationConditionConfiguration","description":"Alarm trigger condition. See \u003cspan pulumi-lang-nodejs=\"`conditionConfiguration`\" pulumi-lang-dotnet=\"`ConditionConfiguration`\" pulumi-lang-go=\"`conditionConfiguration`\" pulumi-lang-python=\"`condition_configuration`\" pulumi-lang-yaml=\"`conditionConfiguration`\" pulumi-lang-java=\"`conditionConfiguration`\"\u003e`condition_configuration`\u003c/span\u003e below.\n"},"dashboard":{"type":"string","description":"The instrument cluster associated with the alarm. It is recommended to set to internal-alert-analysis.\n"},"groupConfiguration":{"$ref":"#/types/alicloud:sls/AlertConfigurationGroupConfiguration:AlertConfigurationGroupConfiguration","description":"Group evaluation configuration. See \u003cspan pulumi-lang-nodejs=\"`groupConfiguration`\" pulumi-lang-dotnet=\"`GroupConfiguration`\" pulumi-lang-go=\"`groupConfiguration`\" pulumi-lang-python=\"`group_configuration`\" pulumi-lang-yaml=\"`groupConfiguration`\" pulumi-lang-java=\"`groupConfiguration`\"\u003e`group_configuration`\u003c/span\u003e below.\n"},"joinConfigurations":{"type":"array","items":{"$ref":"#/types/alicloud:sls/AlertConfigurationJoinConfiguration:AlertConfigurationJoinConfiguration"},"description":"Set operation configuration. See \u003cspan pulumi-lang-nodejs=\"`joinConfigurations`\" pulumi-lang-dotnet=\"`JoinConfigurations`\" pulumi-lang-go=\"`joinConfigurations`\" pulumi-lang-python=\"`join_configurations`\" pulumi-lang-yaml=\"`joinConfigurations`\" pulumi-lang-java=\"`joinConfigurations`\"\u003e`join_configurations`\u003c/span\u003e below.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:sls/AlertConfigurationLabel:AlertConfigurationLabel"},"description":"Label. See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"muteUntil":{"type":"integer","description":"Second-level timestamp representing the temporary shutdown deadline.\n"},"noDataFire":{"type":"boolean","description":"Whether no data triggers an alarm. true: If the number of times the query and analysis results (if there are multiple results, the result after the collection operation) is no data exceeds the continuous trigger threshold, an alarm is generated. false (default): Turn off the no data alarm function.\n"},"noDataSeverity":{"type":"integer","description":"Alarm severity when no data triggers an alarm.\n"},"policyConfiguration":{"$ref":"#/types/alicloud:sls/AlertConfigurationPolicyConfiguration:AlertConfigurationPolicyConfiguration","description":"Alert policy configuration. See \u003cspan pulumi-lang-nodejs=\"`policyConfiguration`\" pulumi-lang-dotnet=\"`PolicyConfiguration`\" pulumi-lang-go=\"`policyConfiguration`\" pulumi-lang-python=\"`policy_configuration`\" pulumi-lang-yaml=\"`policyConfiguration`\" pulumi-lang-java=\"`policyConfiguration`\"\u003e`policy_configuration`\u003c/span\u003e below.\n"},"queryLists":{"type":"array","items":{"$ref":"#/types/alicloud:sls/AlertConfigurationQueryList:AlertConfigurationQueryList"},"description":"Query the statistical list. See \u003cspan pulumi-lang-nodejs=\"`queryList`\" pulumi-lang-dotnet=\"`QueryList`\" pulumi-lang-go=\"`queryList`\" pulumi-lang-python=\"`query_list`\" pulumi-lang-yaml=\"`queryList`\" pulumi-lang-java=\"`queryList`\"\u003e`query_list`\u003c/span\u003e below.\n"},"sendResolved":{"type":"boolean","description":"Whether to send a recovery notification. true: A recovery alarm is triggered when the alarm is restored. false (default): Turn off the alarm recovery notification function.\n"},"severityConfigurations":{"type":"array","items":{"$ref":"#/types/alicloud:sls/AlertConfigurationSeverityConfiguration:AlertConfigurationSeverityConfiguration"},"description":"Trigger condition, set at least one trigger condition. See \u003cspan pulumi-lang-nodejs=\"`severityConfigurations`\" pulumi-lang-dotnet=\"`SeverityConfigurations`\" pulumi-lang-go=\"`severityConfigurations`\" pulumi-lang-python=\"`severity_configurations`\" pulumi-lang-yaml=\"`severityConfigurations`\" pulumi-lang-java=\"`severityConfigurations`\"\u003e`severity_configurations`\u003c/span\u003e below.\n"},"sinkAlerthub":{"$ref":"#/types/alicloud:sls/AlertConfigurationSinkAlerthub:AlertConfigurationSinkAlerthub","description":"Configuration of Alerts Sent to Alerthub. See \u003cspan pulumi-lang-nodejs=\"`sinkAlerthub`\" pulumi-lang-dotnet=\"`SinkAlerthub`\" pulumi-lang-go=\"`sinkAlerthub`\" pulumi-lang-python=\"`sink_alerthub`\" pulumi-lang-yaml=\"`sinkAlerthub`\" pulumi-lang-java=\"`sinkAlerthub`\"\u003e`sink_alerthub`\u003c/span\u003e below.\n"},"sinkCms":{"$ref":"#/types/alicloud:sls/AlertConfigurationSinkCms:AlertConfigurationSinkCms","description":"Configure alerts sent to CloudMonitor. See \u003cspan pulumi-lang-nodejs=\"`sinkCms`\" pulumi-lang-dotnet=\"`SinkCms`\" pulumi-lang-go=\"`sinkCms`\" pulumi-lang-python=\"`sink_cms`\" pulumi-lang-yaml=\"`sinkCms`\" pulumi-lang-java=\"`sinkCms`\"\u003e`sink_cms`\u003c/span\u003e below.\n"},"sinkEventStore":{"$ref":"#/types/alicloud:sls/AlertConfigurationSinkEventStore:AlertConfigurationSinkEventStore","description":"Configuration of sending alarms to EventStore. See \u003cspan pulumi-lang-nodejs=\"`sinkEventStore`\" pulumi-lang-dotnet=\"`SinkEventStore`\" pulumi-lang-go=\"`sinkEventStore`\" pulumi-lang-python=\"`sink_event_store`\" pulumi-lang-yaml=\"`sinkEventStore`\" pulumi-lang-java=\"`sinkEventStore`\"\u003e`sink_event_store`\u003c/span\u003e below.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Customize the category of alarm monitoring rules.\n"},"templateConfiguration":{"$ref":"#/types/alicloud:sls/AlertConfigurationTemplateConfiguration:AlertConfigurationTemplateConfiguration","description":"Alarm rule template configuration. See \u003cspan pulumi-lang-nodejs=\"`templateConfiguration`\" pulumi-lang-dotnet=\"`TemplateConfiguration`\" pulumi-lang-go=\"`templateConfiguration`\" pulumi-lang-python=\"`template_configuration`\" pulumi-lang-yaml=\"`templateConfiguration`\" pulumi-lang-java=\"`templateConfiguration`\"\u003e`template_configuration`\u003c/span\u003e below.\n"},"threshold":{"type":"integer","description":"Set the continuous trigger threshold. When the cumulative number of triggers reaches this value, an alarm is generated. The statistics are not counted when the trigger condition is not met.\n"},"type":{"type":"string","description":"Template Type.\n"},"version":{"type":"string","description":"Template Version.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["autoAnnotation","noDataFire","sendResolved","type"]}}},"alicloud:sls/AlertConfigurationAnnotation:AlertConfigurationAnnotation":{"properties":{"key":{"type":"string","description":"Field name.\n"},"value":{"type":"string","description":"Field value.\n"}},"type":"object"},"alicloud:sls/AlertConfigurationConditionConfiguration:AlertConfigurationConditionConfiguration":{"properties":{"condition":{"type":"string","description":"Data matching expression. When the data content does not need to be determined, set it to an empty string. In other cases, it needs to be set as an expression, for example, errCnt\u003e 10.\n"},"countCondition":{"type":"string","description":"The number of pieces of data to determine the number of pieces of data to indicate how many pieces of data meet the conditions. If data exists, it is satisfied. Set it to an empty string. In other cases, it needs to be set as an expression, such as__count__\u003e 3.\n"}},"type":"object"},"alicloud:sls/AlertConfigurationGroupConfiguration:AlertConfigurationGroupConfiguration":{"properties":{"fields":{"type":"array","items":{"type":"string"},"description":"The field used for grouping evaluation. When type is set to custom, fields must be set.\n"},"type":{"type":"string"}},"type":"object"},"alicloud:sls/AlertConfigurationJoinConfiguration:AlertConfigurationJoinConfiguration":{"properties":{"condition":{"type":"string","description":"Data matching expression. When the data content does not need to be determined, set it to an empty string. In other cases, it needs to be set as an expression, for example, errCnt\u003e 10.\n"},"type":{"type":"string"}},"type":"object"},"alicloud:sls/AlertConfigurationLabel:AlertConfigurationLabel":{"properties":{"key":{"type":"string","description":"Field name.\n"},"value":{"type":"string","description":"Field value.\n"}},"type":"object"},"alicloud:sls/AlertConfigurationPolicyConfiguration:AlertConfigurationPolicyConfiguration":{"properties":{"actionPolicyId":{"type":"string","description":"The ID of the action policy used. If the alert policy is in advanced mode and the selected alert policy is not configured with a dynamic action policy, set the actionPolicyId to an empty string.\n"},"alertPolicyId":{"type":"string","description":"Alarm policy ID. If it is in simple mode or normal mode, set it to sls.builtin.dynamic (dynamic alarm policy built into the system). For advanced mode, set it to the specified alarm policy ID.\n"},"repeatInterval":{"type":"string","description":"Repeat the waiting time. For example, 5m, 1H, etc.\n"}},"type":"object"},"alicloud:sls/AlertConfigurationQueryList:AlertConfigurationQueryList":{"properties":{"chartTitle":{"type":"string","description":"Chart Name.\n"},"dashboardId":{"type":"string","description":"Dashboard ID.\n"},"end":{"type":"string","description":"End time. When storeType is set to log or metric, end must be set.\n"},"powerSqlMode":{"type":"string","description":"Whether to use exclusive SQL. The value is as follows: auto: automatic switching. enable: Starts. disable: disable.\n"},"project":{"type":"string","description":"Project Name.\n"},"query":{"type":"string","description":"Query and analysis statements. When storeType is set to log or metric, query is set to the query analysis statement. When storeType is set to meta, set query to an empty string.\n"},"region":{"type":"string","description":"Region of the target Project.\n"},"roleArn":{"type":"string","description":"Roles used to write alarm data to the event Library.\n"},"start":{"type":"string","description":"Start time. When storeType is set to log or metric, start must be set.\n"},"store":{"type":"string","description":"Query the Logstore, Metricstore, or resource data associated with the statistics. When storeType is set to log, store is set to the target Logstore. When storeType is set to metric, store is set to the target Metricstore. When storeType is set to meta, store is set to the target resource data name.\n"},"storeType":{"type":"string","description":"Query the data source type. The value is as follows: log: Logstore. metric: Time series Library. meta: resource data.\n"},"timeSpanType":{"type":"string","description":"Time Type.\n"},"ui":{"type":"string","description":"Use of specific scene alarm front end.\n"}},"type":"object"},"alicloud:sls/AlertConfigurationSeverityConfiguration:AlertConfigurationSeverityConfiguration":{"properties":{"evalCondition":{"$ref":"#/types/alicloud:sls/AlertConfigurationSeverityConfigurationEvalCondition:AlertConfigurationSeverityConfigurationEvalCondition","description":"Trigger condition. See \u003cspan pulumi-lang-nodejs=\"`evalCondition`\" pulumi-lang-dotnet=\"`EvalCondition`\" pulumi-lang-go=\"`evalCondition`\" pulumi-lang-python=\"`eval_condition`\" pulumi-lang-yaml=\"`evalCondition`\" pulumi-lang-java=\"`evalCondition`\"\u003e`eval_condition`\u003c/span\u003e below.\n"},"severity":{"type":"integer","description":"Alarm severity.\n"}},"type":"object"},"alicloud:sls/AlertConfigurationSeverityConfigurationEvalCondition:AlertConfigurationSeverityConfigurationEvalCondition":{"properties":{"condition":{"type":"string","description":"Data matching expression. When the data content does not need to be determined, set it to an empty string. In other cases, it needs to be set as an expression, for example, errCnt\u003e 10.\n"},"countCondition":{"type":"string","description":"The number of pieces of data to determine the number of pieces of data to indicate how many pieces of data meet the conditions. If data exists, it is satisfied. Set it to an empty string. In other cases, it needs to be set as an expression, such as__count__\u003e 3.\n"}},"type":"object"},"alicloud:sls/AlertConfigurationSinkAlerthub:AlertConfigurationSinkAlerthub":{"properties":{"enabled":{"type":"boolean","description":"Open.\n"}},"type":"object"},"alicloud:sls/AlertConfigurationSinkCms:AlertConfigurationSinkCms":{"properties":{"enabled":{"type":"boolean","description":"Open.\n"}},"type":"object"},"alicloud:sls/AlertConfigurationSinkEventStore:AlertConfigurationSinkEventStore":{"properties":{"enabled":{"type":"boolean","description":"Open.\n"},"endpoint":{"type":"string","description":"SLS service endpoint.\n"},"eventStore":{"type":"string","description":"Event Library Name.\n"},"project":{"type":"string","description":"Project Name.\n"},"roleArn":{"type":"string","description":"Roles used to write alarm data to the event Library.\n"}},"type":"object"},"alicloud:sls/AlertConfigurationTemplateConfiguration:AlertConfigurationTemplateConfiguration":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Template Annotations.\n"},"lang":{"type":"string","description":"Template Language.\n"},"templateId":{"type":"string","description":"Template ID.\n"},"tokens":{"type":"object","additionalProperties":{"type":"string"},"description":"Template Variables.\n"},"type":{"type":"string"},"version":{"type":"string","description":"Template Version.\n"}},"type":"object"},"alicloud:sls/AlertSchedule:AlertSchedule":{"properties":{"cronExpression":{"type":"string","description":"Cron expression, the minimum accuracy is minutes, 24 hours. For example, 0 0/1 * * * means that the check is conducted every 1 hour from 00:00. When type is set to Cron, cronExpression must be set.\n"},"delay":{"type":"integer","description":"Timed task execution delay (unit: s).\n"},"interval":{"type":"string","description":"Fixed interval for scheduling.\n"},"runImmdiately":{"type":"boolean","description":"Dispatch immediately.\n"},"timeZone":{"type":"string","description":"The time zone where the Cron expression is located. The default value is null, indicating the eighth zone in the east.\n"},"type":{"type":"string","description":"Check the frequency type. Log Service checks the query and analysis results according to the frequency you configured. The values are as follows: Fixedate: checks query and analysis results at regular intervals. Cron: specifies the time interval by using the Cron expression, and checks the query and analysis results at the specified time interval.\n"}},"type":"object"},"alicloud:sls/CollectionPolicyCentralizeConfig:CollectionPolicyCentralizeConfig":{"properties":{"destLogstore":{"type":"string","description":"Destination Logstore for centralized forwarding. Its region must match destRegion and it must belong to destProject.\n"},"destProject":{"type":"string","description":"Destination project for centralized forwarding. Its region must match destRegion.\n"},"destRegion":{"type":"string","description":"Destination region for centralized forwarding.\n"},"destTtl":{"type":"integer","description":"Retention period (in days) for the destination Logstore in centralized forwarding. This setting takes effect only when the destination Logstore is created for the first time.\n"}},"type":"object"},"alicloud:sls/CollectionPolicyDataConfig:CollectionPolicyDataConfig":{"properties":{"dataProject":{"type":"string","description":"This setting is valid only when the log type is a global log type—for example, when productCode is sls.\n"},"dataRegion":{"type":"string","description":"This parameter can be configured only when the log type is a global log type—for example, when productCode is sls. It indicates that global logs will be collected to the specified region upon initial configuration.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["dataProject"]}}},"alicloud:sls/CollectionPolicyPolicyConfig:CollectionPolicyPolicyConfig":{"properties":{"instanceIds":{"type":"array","items":{"type":"string"},"description":"The set of instance IDs. This parameter is valid only when resourceMode is set to instanceMode. Only instances whose IDs are included in this set are collected.\n"},"regions":{"type":"array","items":{"type":"string"},"description":"The set of regions to which instances belong. This parameter is valid only when resourceMode is set to attributeMode and supports wildcards. If the region set filter is an empty array, no region-based filtering is applied, and all instances satisfy the region condition. Otherwise, only instances whose region attribute is included in this region set are collected. The region set and resource tags work together. An instance is collected only if it satisfies both conditions.\n"},"resourceMode":{"type":"string","description":"Resource collection mode. If set to all, all instances under the account are collected into the default Logstore. If set to attributeMode, instances are filtered based on their region attributes and resource tags. If set to instanceMode, instances are filtered by their instance IDs.\n"},"resourceTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags. This parameter is valid only when resourceMode is set to attributeMode.  \nIf the resource tag filter is empty, no filtering by resource tags is applied, and all instances satisfy the resource tag condition. Otherwise, only instances whose resource tag attributes fully match the specified resource tag configuration are collected.\nResource tags and the region set of the instance work together. An instance is collected only if it satisfies both conditions.\n"}},"type":"object","required":["resourceMode"]},"alicloud:sls/CollectionPolicyResourceDirectory:CollectionPolicyResourceDirectory":{"properties":{"accountGroupType":{"type":"string","description":"Supports the all (select all) mode and custom mode under this Resource Directory.\n"},"members":{"type":"array","items":{"type":"string"},"description":"The list of member accounts when the Resource Directory is configured in custom mode.\n"}},"type":"object"},"alicloud:sls/EtlConfiguration:EtlConfiguration":{"properties":{"fromTime":{"type":"integer","description":"The start timestamp of the processing time (accurate to the second). Enter 0 to start consuming from the first log received in the source Logstore.\n","willReplaceOnChanges":true},"lang":{"type":"string","description":"The syntax type used for data transformation.\n"},"logstore":{"type":"string","description":"The name of the destination Logstore.\n","willReplaceOnChanges":true},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Advanced parameter configuration.\n"},"roleArn":{"type":"string","description":"The ARN of the role authorized to write to the destination Logstore.\n"},"script":{"type":"string","description":"Processing script.\n"},"sinks":{"type":"array","items":{"$ref":"#/types/alicloud:sls/EtlConfigurationSink:EtlConfigurationSink"},"description":"List of output destinations for processing results.   See \u003cspan pulumi-lang-nodejs=\"`sink`\" pulumi-lang-dotnet=\"`Sink`\" pulumi-lang-go=\"`sink`\" pulumi-lang-python=\"`sink`\" pulumi-lang-yaml=\"`sink`\" pulumi-lang-java=\"`sink`\"\u003e`sink`\u003c/span\u003e below.\n"},"toTime":{"type":"integer","description":"End timestamp of the processing time (accurate to the second). Enter 0 if processing continues until manually stopped.\n","willReplaceOnChanges":true}},"type":"object","required":["fromTime","lang","logstore","roleArn","script","sinks","toTime"]},"alicloud:sls/EtlConfigurationSink:EtlConfigurationSink":{"properties":{"datasets":{"type":"array","items":{"type":"string"},"description":"Result datasets to write to.\n"},"endpoint":{"type":"string","description":"The endpoint of the region where the destination project resides.\n"},"logstore":{"type":"string","description":"The name of the destination Logstore.\n"},"name":{"type":"string","description":"The name of the output destination.\n","willReplaceOnChanges":true},"project":{"type":"string","description":"Project name.\n"},"roleArn":{"type":"string","description":"The ARN of the role authorized to write to the destination Logstore.\n"}},"type":"object","required":["datasets","endpoint","logstore","name","project","roleArn"]},"alicloud:sls/IndexLine:IndexLine":{"properties":{"caseSensitive":{"type":"boolean","description":"Is case sensitive\n"},"chn":{"type":"boolean","description":"Does it include Chinese\n"},"excludeKeys":{"type":"array","items":{"type":"string"},"description":"List of excluded fields\n"},"includeKeys":{"type":"array","items":{"type":"string"},"description":"Include field list\n"},"tokens":{"type":"array","items":{"type":"string"},"description":"Delimiter\n"}},"type":"object","required":["caseSensitive","chn","tokens"]},"alicloud:sls/LogtailConfigOutputDetail:LogtailConfigOutputDetail":{"properties":{"endpoint":{"type":"string","description":"The endpoint of the log project.\n","willReplaceOnChanges":true},"logstoreName":{"type":"string","description":"The name of the output target logstore.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Region\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:sls/MachineGroupGroupAttribute:MachineGroupGroupAttribute":{"properties":{"externalName":{"type":"string","description":"The identifier of the external management system on which the machine group depends. This parameter is empty by default.\n","willReplaceOnChanges":true},"groupTopic":{"type":"string","description":"The log topic of the machine group.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:sls/OssExportSinkConfiguration:OssExportSinkConfiguration":{"properties":{"fromTime":{"type":"integer","description":"The beginning of the time range to ship data. The value 1 specifies that the data shipping job ships data from the first log in the Logstore. Example value: 1718380800\n"},"logstore":{"type":"string","description":"The name of the Logstore.\n"},"roleArn":{"type":"string","description":"The ARN of the RAM role that is used to write data to OSS. Example value: acs:ram::xxxxxxx\n"},"sink":{"$ref":"#/types/alicloud:sls/OssExportSinkConfigurationSink:OssExportSinkConfigurationSink","description":"The configurations of the Object Storage Service (OSS) data shipping job. See \u003cspan pulumi-lang-nodejs=\"`sink`\" pulumi-lang-dotnet=\"`Sink`\" pulumi-lang-go=\"`sink`\" pulumi-lang-python=\"`sink`\" pulumi-lang-yaml=\"`sink`\" pulumi-lang-java=\"`sink`\"\u003e`sink`\u003c/span\u003e below.\n"},"toTime":{"type":"integer","description":"The end of the time range to ship data. The value 0 specifies that the data shipping job continuously ships data until the job is manually stopped. Example value: 1718380800\n"}},"type":"object","required":["fromTime","logstore","roleArn","sink","toTime"]},"alicloud:sls/OssExportSinkConfigurationSink:OssExportSinkConfigurationSink":{"properties":{"bucket":{"type":"string","description":"The OSS bucket.\n"},"bufferInterval":{"type":"string","description":"The interval between two data shipping operations. Valid values: 300 to 900. Unit: seconds.\n"},"bufferSize":{"type":"string","description":"The size of the OSS object to which data is shipped. Valid values: 5 to 256. Unit: MB.\n"},"compressionType":{"type":"string","description":"Supports four compression types, such as snappy, gzip, zstd, and none.\n"},"contentDetail":{"type":"string","description":"The OSS file content details. Note: the value of this parameter should be updated based on the value of the contentType parameter.\n\nIf the contentType value is JSON, the parameters of the contentDetail value are as follows:\n\nIf the tag is allowed to be posted, the value of the parameter enableTag is true. Example:{\"enableTag\": true}\n\nYou are not allowed to post tags. The value of the parameter enableTag is false. Example:{\"enableTag\": false}\n\nIf the contentType value is csv, the parameters of the contentDetail value are as follows:\n\nThe parameter columns is the key of the log in the source logstore.\n\nThe delimiter parameter, which can be \",\",\"|\",\"\", or \"\\t\".\n\nThe header parameter determines whether the OSS file retains the header. The optional value is true or false.\n\nThe lineFeed parameter. Optional values are \"\\t\", \"\\n\", or \"\".\n\nThe invalid field content parameter is null to specify the delivery content when the field name does not exist.\n\nThe escape character parameter \"quote\". Optional values are \"\" \",\" '\", or\" \".\n\nExample:{\"null\": \"-\", \"header\": false, \"lineFeed\": \"\\n\", \"quote\": \"\", \"delimiter\": \",\", \"columns\": [\"a\", \"B\", \"c\", \"d\"]}\n\nWhen the contentType value is parquet, the parameters of the contentDetail value are as follows:\n\nThe columns parameter is the key of the log in the source Logstore and must carry the data type of the key, for example:{\"columns\": [{\"name\": \"a\", \"type\": \"string\"}, {\"name\": \"B\", \"type\": \"string\"}, {\"name\": \"c\", \"type\": \"string\": \"string\"}]}\n\nWhen the contentType value is set to orc, the parameters of the contentDetail value are as follows:\n\nThe columns parameter is the key of the log in the source Logstore and must carry the data type of the key, for example:{\"columns\": [{\"name\": \"a\", \"type\": \"string\"}, {\"name\": \"B\", \"type\": \"string\"}, {\"name\": \"c\", \"type\": \"string\": \"string\"}]}\n"},"contentType":{"type":"string","description":"The storage format of the OSS object. Valid values: json, parquet, csv, and orc.\n"},"delaySeconds":{"type":"integer","description":"The latency of data shipping. The value of this parameter cannot exceed the data retention period of the source Logstore.\n"},"endpoint":{"type":"string","description":"The OSS Endpoint can only be an OSS intranet Endpoint and only supports the same region. Example value: https://oss-cn-hangzhou-internal.aliyuncs.com\n"},"pathFormat":{"type":"string","description":"The directory is dynamically generated according to the time. The default value is% Y/%m/%d/%H/%M. The corresponding generated directory is, for example, 2017/01/23/12/00. Note that the partition format cannot start and end. Example values:%Y/%m/%d\n"},"pathFormatType":{"type":"string","description":"The partition format type. only support time\n"},"prefix":{"type":"string","description":"The prefix of the OSS object.\n"},"roleArn":{"type":"string","description":"The ARN of the RAM role that is used to write data to OSS. Example value: acs:ram::xxxxxxx\n"},"suffix":{"type":"string","description":"The suffix of the OSS object.\n"},"timeZone":{"type":"string","description":"The time zone. Example value: +0800\n"}},"type":"object","required":["bucket","bufferInterval","bufferSize","compressionType","contentDetail","contentType","endpoint","roleArn","timeZone"]},"alicloud:sls/ScheduledSqlSchedule:ScheduledSqlSchedule":{"properties":{"cronExpression":{"type":"string","description":"Cron expression with a minimum precision of minutes in 24-hour format. For example, 0 0/1 * * * means checking once every hour starting from 00:00. When type is set to Cron, cronExpression must be specified.\n"},"delay":{"type":"integer","description":"Delay duration.\n"},"interval":{"type":"string","description":"Time interval, such as 5m or 1h.\n"},"runImmediately":{"type":"boolean","description":"Specifies whether to run the OSS import job immediately after it is created.\n"},"timeZone":{"type":"string","description":"Time zone.\n"},"type":{"type":"string","description":"The check frequency type. Log Service checks query and analysis results based on the frequency you configure. Valid values:\nFixedRate: Checks query and analysis results at fixed intervals.\nCron: Uses a cron expression to specify the interval and checks query and analysis results accordingly.\nWeekly: Checks query and analysis results once at a fixed time on a specific day of the week.\nDaily: Checks query and analysis results once at a fixed time each day.\nHourly: Checks query and analysis results once every hour.\n"}},"type":"object"},"alicloud:sls/ScheduledSqlScheduledSqlConfiguration:ScheduledSqlScheduledSqlConfiguration":{"properties":{"dataFormat":{"type":"string","description":"Write mode.\n","willReplaceOnChanges":true},"destEndpoint":{"type":"string","description":"The destination endpoint.\n"},"destLogstore":{"type":"string","description":"The destination Logstore.\n"},"destProject":{"type":"string","description":"The destination project.\n"},"destRoleArn":{"type":"string","description":"Destination write role ARN.\n"},"fromTime":{"type":"integer","description":"The start time of the schedule.\n","willReplaceOnChanges":true},"fromTimeExpr":{"type":"string","description":"SQL time window - start.\n"},"maxRetries":{"type":"integer","description":"Maximum number of retries.\n"},"maxRunTimeInSeconds":{"type":"integer","description":"SQL timeout.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Parameter configuration.\n"},"resourcePool":{"type":"string","description":"Resource pool.\n"},"roleArn":{"type":"string","description":"Source read role ARN.\n"},"script":{"type":"string","description":"SQL statement.\n"},"sourceLogstore":{"type":"string","description":"The source Logstore.\n","willReplaceOnChanges":true},"sqlType":{"type":"string","description":"SQL type.\n"},"toTime":{"type":"integer","description":"Scheduled end time.\n","willReplaceOnChanges":true},"toTimeExpr":{"type":"string","description":"End of the SQL time window.\n"}},"type":"object"},"alicloud:sls/getAlertsAlert:getAlertsAlert":{"properties":{"alertName":{"type":"string","description":"Alert rule ID, unique under Project\n"},"configuration":{"$ref":"#/types/alicloud:sls/getAlertsAlertConfiguration:getAlertsAlertConfiguration","description":"Detailed configuration of alarm monitoring rules\n"},"description":{"type":"string","description":"Compatible fields, set to empty strings.\n"},"displayName":{"type":"string","description":"Display name of the alarm rule\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"schedule":{"$ref":"#/types/alicloud:sls/getAlertsAlertSchedule:getAlertsAlertSchedule","description":"Check the frequency-dependent configuration\n"}},"type":"object","required":["alertName","configuration","description","displayName","id","schedule"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getAlertsAlertConfiguration:getAlertsAlertConfiguration":{"properties":{"annotations":{"type":"array","items":{"$ref":"#/types/alicloud:sls/getAlertsAlertConfigurationAnnotation:getAlertsAlertConfigurationAnnotation"},"description":"Template Annotations.\n"},"autoAnnotation":{"type":"boolean","description":"Whether to turn on automatic labeling.true (default): The automatic annotation function is enabled, and the system automatically adds information such as__county__to the alarm. For more information, see Automatic Labeling.false: Turn off the automatic annotation function.\n"},"conditionConfiguration":{"$ref":"#/types/alicloud:sls/getAlertsAlertConfigurationConditionConfiguration:getAlertsAlertConfigurationConditionConfiguration","description":"Alarm trigger condition.\n"},"dashboard":{"type":"string","description":"The instrument cluster associated with the alarm. It is recommended to set to internal-alert-analysis.\n"},"groupConfiguration":{"$ref":"#/types/alicloud:sls/getAlertsAlertConfigurationGroupConfiguration:getAlertsAlertConfigurationGroupConfiguration","description":"Group evaluation configuration.\n"},"joinConfigurations":{"type":"array","items":{"$ref":"#/types/alicloud:sls/getAlertsAlertConfigurationJoinConfiguration:getAlertsAlertConfigurationJoinConfiguration"},"description":"Set operation configuration.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:sls/getAlertsAlertConfigurationLabel:getAlertsAlertConfigurationLabel"},"description":"Label.\n"},"muteUntil":{"type":"integer","description":"Second-level timestamp representing the temporary shutdown deadline.\n"},"noDataFire":{"type":"boolean","description":"Whether no data triggers an alarm.true: If the number of times the query and analysis results (if there are multiple results, the result after the collection operation) is no data exceeds the continuous trigger threshold, an alarm is generated.false (default): Turn off the no data alarm function.\n"},"noDataSeverity":{"type":"integer","description":"Alarm severity when no data triggers an alarm.\n"},"policyConfiguration":{"$ref":"#/types/alicloud:sls/getAlertsAlertConfigurationPolicyConfiguration:getAlertsAlertConfigurationPolicyConfiguration","description":"Alert policy configuration.\n"},"queryLists":{"type":"array","items":{"$ref":"#/types/alicloud:sls/getAlertsAlertConfigurationQueryList:getAlertsAlertConfigurationQueryList"},"description":"Query the statistical list.\n"},"sendResolved":{"type":"boolean","description":"Whether to send a recovery notification.true: A recovery alarm is triggered when the alarm is restored.false (default): Turn off the alarm recovery notification function.\n"},"severityConfigurations":{"type":"array","items":{"$ref":"#/types/alicloud:sls/getAlertsAlertConfigurationSeverityConfiguration:getAlertsAlertConfigurationSeverityConfiguration"},"description":"Trigger condition, set at least one trigger condition.\n"},"sinkAlerthub":{"$ref":"#/types/alicloud:sls/getAlertsAlertConfigurationSinkAlerthub:getAlertsAlertConfigurationSinkAlerthub","description":"Configuration of Alerts Sent to Alerthub.\n"},"sinkCms":{"$ref":"#/types/alicloud:sls/getAlertsAlertConfigurationSinkCms:getAlertsAlertConfigurationSinkCms","description":"Configure alerts sent to CloudMonitor.\n"},"sinkEventStore":{"$ref":"#/types/alicloud:sls/getAlertsAlertConfigurationSinkEventStore:getAlertsAlertConfigurationSinkEventStore","description":"Configuration of sending alarms to EventStore.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Customize the category of alarm monitoring rules.\n"},"templateConfiguration":{"$ref":"#/types/alicloud:sls/getAlertsAlertConfigurationTemplateConfiguration:getAlertsAlertConfigurationTemplateConfiguration","description":"Alarm rule template configuration.\n"},"threshold":{"type":"integer","description":"Set the continuous trigger threshold. When the cumulative number of triggers reaches this value, an alarm is generated. The statistics are not counted when the trigger condition is not met.\n"},"type":{"type":"string","description":"Check the frequency type. Log Service checks the query and analysis results according to the frequency you configured. The values are as follows:Fixedate: checks query and analysis results at regular intervals.Cron: specifies the time interval by using the Cron expression, and checks the query and analysis results at the specified time interval.\n"},"version":{"type":"string","description":"Fixed as 2.0.\n"}},"type":"object","required":["annotations","autoAnnotation","conditionConfiguration","dashboard","groupConfiguration","joinConfigurations","labels","muteUntil","noDataFire","noDataSeverity","policyConfiguration","queryLists","sendResolved","severityConfigurations","sinkAlerthub","sinkCms","sinkEventStore","tags","templateConfiguration","threshold","type","version"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getAlertsAlertConfigurationAnnotation:getAlertsAlertConfigurationAnnotation":{"properties":{"key":{"type":"string","description":"Field name.\n"},"value":{"type":"string","description":"Field value.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getAlertsAlertConfigurationConditionConfiguration:getAlertsAlertConfigurationConditionConfiguration":{"properties":{"condition":{"type":"string","description":"Data matching expression.When the data content does not need to be determined, set it to an empty string.In other cases, it needs to be set as an expression, for example, errCnt\u003e 10.\n"},"countCondition":{"type":"string","description":"The number of pieces of data to determine the number of pieces of data to indicate how many pieces of data meet the conditions.If data exists, it is satisfied. Set it to an empty string.In other cases, it needs to be set as an expression, such as__count__\u003e 3.\n"}},"type":"object","required":["condition","countCondition"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getAlertsAlertConfigurationGroupConfiguration:getAlertsAlertConfigurationGroupConfiguration":{"properties":{"fields":{"type":"array","items":{"type":"string"},"description":"The field used for grouping evaluation.When type is set to custom, fields must be set.\n"},"type":{"type":"string","description":"Check the frequency type. Log Service checks the query and analysis results according to the frequency you configured. The values are as follows:Fixedate: checks query and analysis results at regular intervals.Cron: specifies the time interval by using the Cron expression, and checks the query and analysis results at the specified time interval.\n"}},"type":"object","required":["fields","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getAlertsAlertConfigurationJoinConfiguration:getAlertsAlertConfigurationJoinConfiguration":{"properties":{"condition":{"type":"string","description":"Data matching expression.When the data content does not need to be determined, set it to an empty string.In other cases, it needs to be set as an expression, for example, errCnt\u003e 10.\n"},"type":{"type":"string","description":"Check the frequency type. Log Service checks the query and analysis results according to the frequency you configured. The values are as follows:Fixedate: checks query and analysis results at regular intervals.Cron: specifies the time interval by using the Cron expression, and checks the query and analysis results at the specified time interval.\n"}},"type":"object","required":["condition","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getAlertsAlertConfigurationLabel:getAlertsAlertConfigurationLabel":{"properties":{"key":{"type":"string","description":"Field name.\n"},"value":{"type":"string","description":"Field value.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getAlertsAlertConfigurationPolicyConfiguration:getAlertsAlertConfigurationPolicyConfiguration":{"properties":{"actionPolicyId":{"type":"string","description":"The ID of the action policy used.If the alert policy is in advanced mode and the selected alert policy is not configured with a dynamic action policy, set the actionPolicyId to an empty string.\n"},"alertPolicyId":{"type":"string","description":"Alarm policy ID.If it is in simple mode or normal mode, set it to sls.builtin.dynamic (dynamic alarm policy built into the system).For advanced mode, set it to the specified alarm policy ID.\n"},"repeatInterval":{"type":"string","description":"Repeat the waiting time. For example, 5m, 1H, etc.\n"}},"type":"object","required":["actionPolicyId","alertPolicyId","repeatInterval"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getAlertsAlertConfigurationQueryList:getAlertsAlertConfigurationQueryList":{"properties":{"chartTitle":{"type":"string","description":"Chart Name.\n"},"dashboardId":{"type":"string","description":"Dashboard ID.\n"},"end":{"type":"string","description":"End time. When storeType is set to log or metric, end must be set.\n"},"powerSqlMode":{"type":"string","description":"Whether to use exclusive SQL. The value is as follows: auto: automatic switching. enable: Starts. disable: disable.\n"},"project":{"type":"string","description":"Project Name.\n"},"query":{"type":"string","description":"Query and analysis statements. When storeType is set to log or metric, query is set to the query analysis statement. When storeType is set to meta, set query to an empty string.\n"},"region":{"type":"string","description":"Region of the target Project.\n"},"roleArn":{"type":"string","description":"Roles used to write alarm data to the event Library.\n"},"start":{"type":"string","description":"Start time. When storeType is set to log or metric, start must be set.\n"},"store":{"type":"string","description":"Query the Logstore, Metricstore, or resource data associated with the statistics. When storeType is set to log, store is set to the target Logstore. When storeType is set to metric, store is set to the target Metricstore. When storeType is set to meta, store is set to the target resource data name.\n"},"storeType":{"type":"string","description":"Query the data source type. The value is as follows: log: Logstore. metric: Time series Library. meta: resource data.\n"},"timeSpanType":{"type":"string","description":"Time Type.\n"},"ui":{"type":"string","description":"Use of specific scene alarm front end.\n"}},"type":"object","required":["chartTitle","dashboardId","end","powerSqlMode","project","query","region","roleArn","start","store","storeType","timeSpanType","ui"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getAlertsAlertConfigurationSeverityConfiguration:getAlertsAlertConfigurationSeverityConfiguration":{"properties":{"evalCondition":{"$ref":"#/types/alicloud:sls/getAlertsAlertConfigurationSeverityConfigurationEvalCondition:getAlertsAlertConfigurationSeverityConfigurationEvalCondition","description":"Trigger condition.\n"},"severity":{"type":"integer","description":"Alarm severity.\n"}},"type":"object","required":["evalCondition","severity"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getAlertsAlertConfigurationSeverityConfigurationEvalCondition:getAlertsAlertConfigurationSeverityConfigurationEvalCondition":{"properties":{"condition":{"type":"string","description":"Data matching expression.When the data content does not need to be determined, set it to an empty string.In other cases, it needs to be set as an expression, for example, errCnt\u003e 10.\n"},"countCondition":{"type":"string","description":"The number of pieces of data to determine the number of pieces of data to indicate how many pieces of data meet the conditions.If data exists, it is satisfied. Set it to an empty string.In other cases, it needs to be set as an expression, such as__count__\u003e 3.\n"}},"type":"object","required":["condition","countCondition"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getAlertsAlertConfigurationSinkAlerthub:getAlertsAlertConfigurationSinkAlerthub":{"properties":{"enabled":{"type":"boolean","description":"Open.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getAlertsAlertConfigurationSinkCms:getAlertsAlertConfigurationSinkCms":{"properties":{"enabled":{"type":"boolean","description":"Open.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getAlertsAlertConfigurationSinkEventStore:getAlertsAlertConfigurationSinkEventStore":{"properties":{"enabled":{"type":"boolean","description":"Open.\n"},"endpoint":{"type":"string","description":"SLS service endpoint.\n"},"eventStore":{"type":"string","description":"Event Library Name.\n"},"project":{"type":"string","description":"Project Name.\n"},"roleArn":{"type":"string","description":"Roles used to write alarm data to the event Library.\n"}},"type":"object","required":["enabled","endpoint","eventStore","project","roleArn"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getAlertsAlertConfigurationTemplateConfiguration:getAlertsAlertConfigurationTemplateConfiguration":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Template Annotations.\n"},"lang":{"type":"string","description":"Template Language.\n"},"templateId":{"type":"string","description":"Template ID.\n"},"tokens":{"type":"object","additionalProperties":{"type":"string"},"description":"Template Variables.\n"},"type":{"type":"string","description":"Check the frequency type. Log Service checks the query and analysis results according to the frequency you configured. The values are as follows:Fixedate: checks query and analysis results at regular intervals.Cron: specifies the time interval by using the Cron expression, and checks the query and analysis results at the specified time interval.\n"},"version":{"type":"string","description":"Fixed as 2.0.\n"}},"type":"object","required":["annotations","lang","templateId","tokens","type","version"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getAlertsAlertSchedule:getAlertsAlertSchedule":{"properties":{"cronExpression":{"type":"string","description":"Cron expression, the minimum accuracy is minutes, 24 hours. For example, 0 0/1 * * * means that the check is conducted every 1 hour from 00:00.When type is set to Cron, cronExpression must be set.\n"},"delay":{"type":"integer","description":"Timed task execution delay (unit: s).\n"},"interval":{"type":"string","description":"Fixed interval for scheduling.\n"},"runImmdiately":{"type":"boolean","description":"Dispatch immediately.\n"},"timeZone":{"type":"string","description":"The time zone where the Cron expression is located. The default value is null, indicating the eighth zone in the east.\n"},"type":{"type":"string","description":"Check the frequency type. Log Service checks the query and analysis results according to the frequency you configured. The values are as follows:Fixedate: checks query and analysis results at regular intervals.Cron: specifies the time interval by using the Cron expression, and checks the query and analysis results at the specified time interval.\n"}},"type":"object","required":["cronExpression","delay","interval","runImmdiately","timeZone","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getEtlsEtl:getEtlsEtl":{"properties":{"configuration":{"$ref":"#/types/alicloud:sls/getEtlsEtlConfiguration:getEtlsEtlConfiguration","description":"Detailed configuration of data processing tasks\n"},"createTime":{"type":"integer","description":"Task creation time. Example value: 1718787534\n"},"description":{"type":"string","description":"Data Processing Task Description\n"},"displayName":{"type":"string","description":"Data processing task display name\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"jobName":{"type":"string","description":"Unique identification of data processing task\n"},"lastModifiedTime":{"type":"integer","description":"The time when the task was last modified. Example value: 1718787681\n"},"scheduleId":{"type":"string","description":"The task ID. Example values:\n"},"status":{"type":"string","description":"Task Status\n"}},"type":"object","required":["configuration","createTime","description","displayName","id","jobName","lastModifiedTime","scheduleId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getEtlsEtlConfiguration:getEtlsEtlConfiguration":{"properties":{"fromTime":{"type":"integer","description":"Processing time start timestamp (accurate to the second). Enter 0 when the first log received from the source Logstore is consumed.\n"},"lang":{"type":"string","description":"Data processing syntax type.\n"},"logstore":{"type":"string","description":"Source Logstore Name.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Advanced parameter configuration.\n"},"roleArn":{"type":"string","description":"The ARN role that authorizes writing to the target Logstore.\n"},"script":{"type":"string","description":"Processing script.\n"},"sinks":{"type":"array","items":{"$ref":"#/types/alicloud:sls/getEtlsEtlConfigurationSink:getEtlsEtlConfigurationSink"},"description":"Processing result output target list.\n"},"toTime":{"type":"integer","description":"Processing time end timestamp (accurate to seconds). When continuous consumption is stopped manually, fill in 0.\n"}},"type":"object","required":["fromTime","lang","logstore","parameters","roleArn","script","sinks","toTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getEtlsEtlConfigurationSink:getEtlsEtlConfigurationSink":{"properties":{"datasets":{"type":"array","items":{"type":"string"},"description":"Write Result Set.\n"},"endpoint":{"type":"string","description":"The endpoint of the region where the target Project is located.\n"},"logstore":{"type":"string","description":"Source Logstore Name.\n"},"name":{"type":"string","description":"Output Destination Name.\n"},"project":{"type":"string","description":"Project Name\n"},"roleArn":{"type":"string","description":"The ARN role that authorizes writing to the target Logstore.\n"}},"type":"object","required":["datasets","endpoint","logstore","name","project","roleArn"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getIndexsIndex:getIndexsIndex":{"properties":{"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"keys":{"type":"string","description":"Field index\n"},"line":{"$ref":"#/types/alicloud:sls/getIndexsIndexLine:getIndexsIndexLine","description":"Full-text index\n"},"logReduceBlackLists":{"type":"array","items":{"type":"string"},"description":"The blacklist of the cluster fields of log clustering is filtered only when log clustering is enabled.\n"},"logReduceWhiteLists":{"type":"array","items":{"type":"string"},"description":"The whitelist of the cluster fields for log clustering. This filter is valid only when log clustering is enabled.\n"},"maxTextLen":{"type":"integer","description":"Maximum length of statistical field\n"},"ttl":{"type":"integer","description":"Log index storage time\n"}},"type":"object","required":["id","keys","line","logReduceBlackLists","logReduceWhiteLists","maxTextLen","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getIndexsIndexLine:getIndexsIndexLine":{"properties":{"caseSensitive":{"type":"boolean","description":"Is case sensitive.\n"},"chn":{"type":"boolean","description":"Does it include Chinese.\n"},"excludeKeys":{"type":"array","items":{"type":"string"},"description":"List of excluded fields.\n"},"includeKeys":{"type":"array","items":{"type":"string"},"description":"Include field list.\n"},"tokens":{"type":"array","items":{"type":"string"},"description":"Delimiter.\n"}},"type":"object","required":["caseSensitive","chn","excludeKeys","includeKeys","tokens"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getLogtailConfigsConfig:getLogtailConfigsConfig":{"properties":{"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"logtailConfigName":{"type":"string","description":"The name of the resource\n"}},"type":"object","required":["id","logtailConfigName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:sls/getMachineGroupsGroup:getMachineGroupsGroup":{"properties":{"groupName":{"type":"string","description":"Machine Group name\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"}},"type":"object","required":["groupName","id"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:starrocks/InstanceBackendNodeGroup:InstanceBackendNodeGroup":{"properties":{"cu":{"type":"integer","description":"Number of CUs. CU (Compute Unit) is the basic measurement unit of the service, where 1 CU = 1 CPU core + 4 GiB memory.\n","willReplaceOnChanges":true},"diskNumber":{"type":"integer","description":"The number of disks.\n","willReplaceOnChanges":true},"localStorageInstanceType":{"type":"string","description":"Local SSD instance specifications.\n","willReplaceOnChanges":true},"residentNodeNumber":{"type":"integer","description":"Resident node number of node group.\n","willReplaceOnChanges":true},"specType":{"type":"string","description":"Compute group specification types include the following:\n- standard\n- localSSD\n- bigData\n- ramEnhanced\n- networkEnhanced\n","willReplaceOnChanges":true},"storagePerformanceLevel":{"type":"string","description":"Performance levels of cloud disks include the following values:\n- pl0: Maximum random read/write IOPS per disk is 10,000.\n- pl1: Maximum random read/write IOPS per disk is 50,000.\n- pl2: Maximum random read/write IOPS per disk is 100,000.\n- pl3: Maximum random read/write IOPS per disk is 1,000,000.\n","willReplaceOnChanges":true},"storageSize":{"type":"integer","description":"Storage size, measured in GiB.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"Zone ID.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:starrocks/InstanceFrontendNodeGroup:InstanceFrontendNodeGroup":{"properties":{"cu":{"type":"integer","description":"Number of CUs. CU (Compute Unit) is the basic measurement unit of the service, where 1 CU = 1 CPU core + 4 GiB memory.\n","willReplaceOnChanges":true},"diskNumber":{"type":"integer","description":"DiskNumber\n","willReplaceOnChanges":true},"localStorageInstanceType":{"type":"string","description":"Local SSD instance specifications.\n","willReplaceOnChanges":true},"residentNodeNumber":{"type":"integer","description":"Resident node number of node group.\n","willReplaceOnChanges":true},"specType":{"type":"string","description":"Compute group specification types include the following:\n- standard\n- ramEnhanced\n","willReplaceOnChanges":true},"storagePerformanceLevel":{"type":"string","description":"Performance levels of cloud disks include the following values:\n- pl0: Maximum random read/write IOPS per disk is 10,000.\n- pl1: Maximum random read/write IOPS per disk is 50,000.\n- pl2: Maximum random read/write IOPS per disk is 100,000.\n- pl3: Maximum random read/write IOPS per disk is 1,000,000.\n","willReplaceOnChanges":true},"storageSize":{"type":"integer","description":"Storage size, measured in GiB.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"Zone ID.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:starrocks/InstanceObserverNodeGroup:InstanceObserverNodeGroup":{"properties":{"cu":{"type":"integer","description":"Number of CUs. CU (Compute Unit) is the basic measurement unit of the service, where 1 CU = 1 CPU core + 4 GiB memory.\n","willReplaceOnChanges":true},"diskNumber":{"type":"integer","description":"DiskNumber\n","willReplaceOnChanges":true},"localStorageInstanceType":{"type":"string","description":"Local SSD instance specifications.\n","willReplaceOnChanges":true},"residentNodeNumber":{"type":"integer","description":"Resident node number of node group.\n","willReplaceOnChanges":true},"specType":{"type":"string","description":"Compute group specification types include the following:\n- standard\n","willReplaceOnChanges":true},"storagePerformanceLevel":{"type":"string","description":"Performance levels of cloud disks include the following values:\n- pl0: Maximum random read/write IOPS per disk is 10,000.\n- pl1: Maximum random read/write IOPS per disk is 50,000.\n- pl2: Maximum random read/write IOPS per disk is 100,000.\n- pl3: Maximum random read/write IOPS per disk is 1,000,000.\n","willReplaceOnChanges":true},"storageSize":{"type":"integer","description":"Storage size, measured in GiB.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"Zone ID.\n","willReplaceOnChanges":true}},"type":"object"},"alicloud:starrocks/InstanceVswitch:InstanceVswitch":{"properties":{"vswitchId":{"type":"string","description":"ID of VSwitch.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"Zone ID of VSwitch.\n","willReplaceOnChanges":true}},"type":"object","required":["vswitchId"]},"alicloud:tag/getMetaTagsTag:getMetaTagsTag":{"properties":{"category":{"type":"string","description":"The type of the resource tags.\n"},"keyName":{"type":"string","description":"The name of the key.\n"},"valueName":{"type":"string","description":"The name of the value.\n"}},"type":"object","required":["category","keyName","valueName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/AntiBruteForceRuleProtocolType:AntiBruteForceRuleProtocolType":{"properties":{"rdp":{"type":"string","description":"Whether to enable RDP interception. Default value: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"sqlServer":{"type":"string","description":"Whether to enable the SqlServer interception method. Default value: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"ssh":{"type":"string","description":"Whether to enable SSH interception. Default value: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["rdp","sqlServer","ssh"]}}},"alicloud:threatdetection/AttackPathSensitiveAssetConfigAttackPathAssetList:AttackPathSensitiveAssetConfigAttackPathAssetList":{"properties":{"assetSubType":{"type":"integer","description":"Cloud product asset subtype.\n"},"assetType":{"type":"integer","description":"The asset type of the cloud product asset.\n"},"instanceId":{"type":"string","description":"The ID of the cloud product instance.\n"},"regionId":{"type":"string","description":"The region ID of the cloud product.\n"},"vendor":{"type":"integer","description":"Cloud product asset vendor. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"}},"type":"object","required":["assetSubType","assetType","instanceId","regionId","vendor"]},"alicloud:threatdetection/CheckConfigSelectedCheck:CheckConfigSelectedCheck":{"properties":{"checkId":{"type":"integer","description":"The ID of the check item.\n"},"sectionId":{"type":"integer","description":"The section ID of the check item.\n"}},"type":"object"},"alicloud:threatdetection/HoneypotPresetMeta:HoneypotPresetMeta":{"properties":{"burp":{"type":"string","description":"Burp counter.\n"},"portraitOption":{"type":"boolean","description":"Social traceability.\n"},"trojanGit":{"type":"string","description":"Git countered.\n"}},"type":"object","required":["burp"]},"alicloud:threatdetection/HoneypotProbeHoneypotBindList:HoneypotProbeHoneypotBindList":{"properties":{"bindPortLists":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/HoneypotProbeHoneypotBindListBindPortList:HoneypotProbeHoneypotBindListBindPortList"},"description":"List of listening ports.See the following `Block BindPortList`.\n"},"honeypotId":{"type":"string","description":"Honeypot ID.\n"}},"type":"object"},"alicloud:threatdetection/HoneypotProbeHoneypotBindListBindPortList:HoneypotProbeHoneypotBindListBindPortList":{"properties":{"bindPort":{"type":"boolean","description":"Whether to bind the port.\n"},"endPort":{"type":"integer","description":"End port.\n"},"fixed":{"type":"boolean","description":"Whether the port is fixed.\n"},"startPort":{"type":"integer","description":"Start port.\n"},"targetPort":{"type":"integer","description":"Destination port.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["bindPort","endPort","fixed","startPort","targetPort"]}}},"alicloud:threatdetection/InstancePostPayModuleSwitchObj:InstancePostPayModuleSwitchObj":{"properties":{"agentless":{"type":"integer","description":"Agentless Detection Module. Valid values:\n"},"antiRansomware":{"type":"integer","description":"Anti-Ransomware Module. Valid values:\n"},"basicService":{"type":"integer","description":"Basic service module. Valid values:\n"},"cspm":{"type":"integer","description":"Cloud Security Configuration Check Module. Valid values:\n"},"ctdr":{"type":"integer","description":"Threat Analysis and Response Module. Valid values:\n"},"ctdrStorage":{"type":"integer","description":"Log Management Module. Valid values:\n"},"postHost":{"type":"integer","description":"Host and Container Security Module. Valid values:\n"},"rasp":{"type":"integer","description":"Application Protection Module. Valid values:\n"},"sdk":{"type":"integer","description":"Malicious File Detection SDK Module. Valid values:\n"},"serverless":{"type":"integer","description":"Serverless Security Module. Valid values:\n"},"vul":{"type":"integer","description":"Vulnerability Repair Module. Valid values:\n"},"webLock":{"type":"integer","description":"File Tamper Protection Module. Valid values:\n"}},"type":"object"},"alicloud:threatdetection/SasTrailServiceTrail:SasTrailServiceTrail":{"properties":{"config":{"type":"string","description":"Service tracking on status. The value is:\n- **on:** Open\n- **off:** off.\n"},"updateTime":{"type":"integer","description":"The timestamp of the last service update. Unit: milliseconds.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["config","updateTime"]}}},"alicloud:threatdetection/getAntiBruteForceRulesRule:getAntiBruteForceRulesRule":{"properties":{"antiBruteForceRuleId":{"type":"string","description":"The ID of the defense rule.\n"},"antiBruteForceRuleName":{"type":"string","description":"The name of the defense rule.\n"},"defaultRule":{"type":"boolean","description":"Specifies whether to set the defense rule as the default rule.\n"},"failCount":{"type":"integer","description":"The threshold for the number of failed user logins when the brute-force defense rule takes effect.\n"},"forbiddenTime":{"type":"integer","description":"The period of time during which logons from an account are not allowed. Unit: minutes.\n"},"id":{"type":"string","description":"The ID of the defense rule.\n"},"span":{"type":"integer","description":"The period of time during which logon failures from an account are measured. Unit: minutes. If Span is set to 10, the defense rule takes effect when the logon failures measured within 10 minutes reaches the specified threshold. The IP address of attackers cannot be used to log on to the server in the specified period of time.\n"},"uuidLists":{"type":"array","items":{"type":"string"},"description":"An array consisting of the UUIDs of servers to which the defense rule is applied.\n"}},"type":"object","required":["antiBruteForceRuleId","antiBruteForceRuleName","defaultRule","failCount","forbiddenTime","id","span","uuidLists"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getAssetsAsset:getAssetsAsset":{"properties":{"clusterId":{"type":"string","description":"The ID of the cluster.\n"},"clusterName":{"type":"string","description":"The name of the cluster.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"id":{"type":"string","description":"The UUID of the asset.\n"},"instanceId":{"type":"string","description":"The ID of the asset.\n"},"instanceName":{"type":"string","description":"The name of the asset.\n"},"internetIp":{"type":"string","description":"The public IP address of the asset.\n"},"intranetIp":{"type":"string","description":"The private IP address of the asset.\n"},"status":{"type":"string","description":"The status of the asset. Valid values:\n- **Running**: running\n- **notRunning**: stopped\n"},"uuid":{"type":"string","description":"The UUID of the asset. Same as \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e.\n"},"vpcInstanceId":{"type":"string","description":"The ID of the VPC to which the asset belongs.\n"}},"type":"object","required":["clusterId","clusterName","createTime","id","instanceId","instanceName","internetIp","intranetIp","status","uuid","vpcInstanceId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getBackupPoliciesPolicy:getBackupPoliciesPolicy":{"properties":{"backupPolicyId":{"type":"integer","description":"The ID of the anti-ransomware policy.\n"},"backupPolicyName":{"type":"string","description":"The name of the anti-ransomware policy.\n"},"id":{"type":"integer","description":"The ID of the anti-ransomware policy.\n"},"policy":{"type":"string","description":"The configurations of the anti-ransomware policy.\n"},"policyRegionId":{"type":"string","description":"The ID of the region that you specified for data backup when you installed the anti-ransomware agent for the server not deployed on Alibaba Cloud.\n"},"policyVersion":{"type":"string","description":"The version of the anti-ransomware policy.\n"},"status":{"type":"string","description":"The status of the anti-ransomware policy. Valid Value: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`closed`\" pulumi-lang-dotnet=\"`Closed`\" pulumi-lang-go=\"`closed`\" pulumi-lang-python=\"`closed`\" pulumi-lang-yaml=\"`closed`\" pulumi-lang-java=\"`closed`\"\u003e`closed`\u003c/span\u003e.\n"},"uuidLists":{"type":"array","items":{"type":"string"},"description":"The UUIDs of the servers to which the anti-ransomware policy is applied.\n"}},"type":"object","required":["backupPolicyId","backupPolicyName","id","policy","policyRegionId","policyVersion","status","uuidLists"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getBaselineStrategiesStrategy:getBaselineStrategiesStrategy":{"properties":{"baselineStrategyId":{"type":"string","description":"The ID of the baseline check policy.\n"},"baselineStrategyName":{"type":"string","description":"Policy name.\n"},"customType":{"type":"string","description":"The type of policy. Value:-**common**: standard policy-**custom**: custom policy\n"},"cycleDays":{"type":"integer","description":"The detection period of the policy.\n"},"cycleStartTime":{"type":"integer","description":"The detection period of the policy. Value:\n* **0**: 0:00~06:00\n* **6**: 6:00~12:00\n* *12**: 12:00~18:00\n* **18**: 18:00~24:00\n"},"endTime":{"type":"string","description":"The baseline check policy execution end time.\n"},"id":{"type":"string","description":"The ID of the baseline check policy.\n"},"riskSubTypeName":{"type":"string"},"startTime":{"type":"string","description":"The baseline check policy start time.\n"},"targetType":{"type":"string"}},"type":"object","required":["baselineStrategyId","baselineStrategyName","customType","cycleDays","cycleStartTime","endTime","id","riskSubTypeName","startTime","targetType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getCheckItemConfigsConfig:getCheckItemConfigsConfig":{"properties":{"checkId":{"type":"integer","description":"The ID of the check item\n"},"checkShowName":{"type":"string","description":"The name of the check item.\n"},"checkType":{"type":"string","description":"The source type of the Situation Awareness check item. Value:- **CUSTOM**: user-defined- **SYSTEM**: Predefined by the situational awareness platform\n"},"customConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/getCheckItemConfigsConfigCustomConfig:getCheckItemConfigsConfigCustomConfig"},"description":"The custom configuration items of the check item.\n"},"description":{"$ref":"#/types/alicloud:threatdetection/getCheckItemConfigsConfigDescription:getCheckItemConfigsConfigDescription","description":"The description of the check item.\n"},"estimatedCount":{"type":"integer","description":"The estimated quota that will be consumed by this check item.\n"},"instanceSubType":{"type":"string","description":"The asset subtype of the cloud service. Valid values:*   If **InstanceType** is set to **ECS**, this parameter supports the following valid values:    *   **INSTANCE**    *   **DISK**    *   **SECURITY_GROUP***   If **InstanceType** is set to **ACR**, this parameter supports the following valid values:    *   **REPOSITORY_ENTERPRISE**    *   **REPOSITORY_PERSON***   If **InstanceType** is set to **RAM**, this parameter supports the following valid values:    *   **ALIAS**    *   **USER**    *   **POLICY**    *   **GROUP***   If **InstanceType** is set to **WAF**, this parameter supports the following valid value:    *   **DOMAIN***   If **InstanceType** is set to other values, this parameter supports the following valid values:    *   **INSTANCE**\n"},"instanceType":{"type":"string","description":"The asset type of the cloud service. Valid values:*   **ECS**: Elastic Compute Service (ECS).*   **SLB**: Server Load Balancer (SLB).*   **RDS**: ApsaraDB RDS.*   **MONGODB**: ApsaraDB for MongoDB (MongoDB).*   **KVSTORE**: ApsaraDB for Redis (Redis).*   **ACR**: Container Registry.*   **CSK**: Container Service for Kubernetes (ACK).*   **VPC**: Virtual Private Cloud (VPC).*   **ACTIONTRAIL**: ActionTrail.*   **CDN**: Alibaba Cloud CDN (CDN).*   **CAS**: Certificate Management Service (formerly SSL Certificates Service).*   **RDC**: Apsara Devops.*   **RAM**: Resource Access Management (RAM).*   **DDOS**: Anti-DDoS.*   **WAF**: Web Application Firewall (WAF).*   **OSS**: Object Storage Service (OSS).*   **POLARDB**: PolarDB.*   **POSTGRESQL**: ApsaraDB RDS for PostgreSQL.*   **MSE**: Microservices Engine (MSE).*   **NAS**: File Storage NAS (NAS).*   **SDDP**: Sensitive Data Discovery and Protection (SDDP).*   **EIP**: Elastic IP Address (EIP).\n"},"riskLevel":{"type":"string","description":"The risk level of the check item. Valid values:*   **HIGH***   **MEDIUM***   **LOW**\n"},"sectionIds":{"type":"array","items":{"type":"integer"},"description":"The IDs of the sections associated with the check items.\n"},"vendor":{"type":"string","description":"The type of the cloud asset. Valid values:*   **0**: an asset provided by Alibaba Cloud.*   **1**: an asset outside Alibaba Cloud.*   **2**: an asset in a data center.*   **3**, **4**, **5**, and **7**: other cloud asset.*   **8**: a simple application server.\n"}},"type":"object","required":["checkId","checkShowName","checkType","customConfigs","description","estimatedCount","instanceSubType","instanceType","riskLevel","sectionIds","vendor"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getCheckItemConfigsConfigCustomConfig:getCheckItemConfigsConfigCustomConfig":{"properties":{"defaultValue":{"type":"string","description":"The default value of the custom configuration item. The value is a string.\n"},"name":{"type":"string","description":"The name of the custom configuration item, which is unique in a check item.\n"},"showName":{"type":"string","description":"The display name of the custom configuration item for internationalization.\n"},"typeDefine":{"type":"string","description":"The type of the custom configuration item. The value is a JSON string.\n"},"value":{"type":"string","description":"The content of the description for the check item when the Type parameter is text.\n"}},"type":"object","required":["defaultValue","name","showName","typeDefine","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getCheckItemConfigsConfigDescription:getCheckItemConfigsConfigDescription":{"properties":{"type":{"type":"string","description":"The type of the description of the check item. Valid value:*   **text**.\n"},"value":{"type":"string","description":"The content of the description for the check item when the Type parameter is text.\n"}},"type":"object","required":["type","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getCheckStructuresStructure:getCheckStructuresStructure":{"properties":{"standardType":{"type":"string","description":"The type of the check item.- **RISK**: security risk.- **IDENTITY_PERMISSION**: Cloud Infrastructure Entitlement Management (CIEM).- **COMPLIANCE**: security compliance.\n"},"standards":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/getCheckStructuresStructureStandard:getCheckStructuresStructureStandard"},"description":"The structure information about the check items of the business type.\n"}},"type":"object","required":["standardType","standards"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getCheckStructuresStructureStandard:getCheckStructuresStructureStandard":{"properties":{"id":{"type":"integer","description":"The ID of the section for the check item.\n"},"requirements":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/getCheckStructuresStructureStandardRequirement:getCheckStructuresStructureStandardRequirement"},"description":"The standards of the check items.\n"},"showName":{"type":"string","description":"The display name of the standard for the check item.\n"},"type":{"type":"string","description":"The standard type of the check item. Valid values:- **RISK**: security risk.- **IDENTITY_PERMISSION**: CIEM.- **COMPLIANCE**: security compliance.\n"}},"type":"object","required":["id","requirements","showName","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getCheckStructuresStructureStandardRequirement:getCheckStructuresStructureStandardRequirement":{"properties":{"id":{"type":"integer","description":"The ID of the section for the check item.\n"},"sections":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/getCheckStructuresStructureStandardRequirementSection:getCheckStructuresStructureStandardRequirementSection"},"description":"The information about the sections of check items.\n"},"showName":{"type":"string","description":"The display name of the standard for the check item.\n"},"totalCheckCount":{"type":"integer","description":"The total number of check items for the requirement.\n"}},"type":"object","required":["id","sections","showName","totalCheckCount"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getCheckStructuresStructureStandardRequirementSection:getCheckStructuresStructureStandardRequirementSection":{"properties":{"id":{"type":"integer","description":"The ID of the section for the check item.\n"},"showName":{"type":"string","description":"The display name of the standard for the check item.\n"}},"type":"object","required":["id","showName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getHoneyPotsPot:getHoneyPotsPot":{"properties":{"honeypotId":{"type":"string","description":"Honeypot ID.\n"},"honeypotImageId":{"type":"string","description":"The image ID of the honeypot.\n"},"honeypotImageName":{"type":"string","description":"Honeypot mirror name.\n"},"honeypotName":{"type":"string","description":"Honeypot custom name.\n"},"id":{"type":"string","description":"Honeypot ID. The value is the same as \u003cspan pulumi-lang-nodejs=\"`honeypotId`\" pulumi-lang-dotnet=\"`HoneypotId`\" pulumi-lang-go=\"`honeypotId`\" pulumi-lang-python=\"`honeypot_id`\" pulumi-lang-yaml=\"`honeypotId`\" pulumi-lang-java=\"`honeypotId`\"\u003e`honeypot_id`\u003c/span\u003e.\n"},"nodeId":{"type":"string","description":"The ID of the honeypot management node.\n"},"presetId":{"type":"string","description":"The custom parameter ID of honeypot.\n"},"states":{"type":"array","items":{"type":"string"},"description":"Honeypot status.\n"},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object","required":["honeypotId","honeypotImageId","honeypotImageName","honeypotName","id","nodeId","presetId","states","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getHoneypotImagesImage:getHoneypotImagesImage":{"properties":{"honeypotImageDisplayName":{"type":"string","description":"The name of the honeypot image display.\n"},"honeypotImageId":{"type":"string","description":"The image ID of the honeypot.\n"},"honeypotImageName":{"type":"string","description":"Honeypot mirror name.\n"},"honeypotImageType":{"type":"string","description":"Honeypot mirror type.\n"},"honeypotImageVersion":{"type":"string","description":"Honeypot Mirror version.\n"},"id":{"type":"string","description":"The image ID of the honeypot.The value is the same as \u003cspan pulumi-lang-nodejs=\"`honeypotImageId`\" pulumi-lang-dotnet=\"`HoneypotImageId`\" pulumi-lang-go=\"`honeypotImageId`\" pulumi-lang-python=\"`honeypot_image_id`\" pulumi-lang-yaml=\"`honeypotImageId`\" pulumi-lang-java=\"`honeypotImageId`\"\u003e`honeypot_image_id`\u003c/span\u003e.\n"},"multiports":{"type":"string","description":"Ports supported by honeypots. In JSON format. Contains the following fields:-**log_type**: log type-**proto**: Support Protocol-**description**: description-**ports**: supports Port collection-**port_str**: supports port strings-**type**: type\n"},"proto":{"type":"string","description":"Honeypot-supported protocols.\n"},"servicePort":{"type":"string","description":"Honeypot service port.\n"},"template":{"type":"string","description":"Honeypot configuration parameter template.\n"}},"type":"object","required":["honeypotImageDisplayName","honeypotImageId","honeypotImageName","honeypotImageType","honeypotImageVersion","id","multiports","proto","servicePort","template"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getHoneypotNodesNode:getHoneypotNodesNode":{"properties":{"allowHoneypotAccessInternet":{"type":"boolean","description":"Whether to allow honeypot access to the external network. Value:-**true**: Allow-**false**: Disabled\n"},"availableProbeNum":{"type":"integer","description":"Number of probes available.\n"},"createTime":{"type":"string"},"id":{"type":"string","description":"The ID of the Honeypot management node.\n"},"nodeId":{"type":"string","description":"Honeypot management node id.\n"},"nodeName":{"type":"string","description":"The name of the management node.\n"},"securityGroupProbeIpLists":{"type":"array","items":{"type":"string"},"description":"Release the collection of network segments.\n"},"status":{"type":"integer"}},"type":"object","required":["allowHoneypotAccessInternet","availableProbeNum","createTime","id","nodeId","nodeName","securityGroupProbeIpLists","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getHoneypotPresetsPreset:getHoneypotPresetsPreset":{"properties":{"honeypotImageName":{"type":"string","description":"Honeypot mirror name\n"},"honeypotPresetId":{"type":"string","description":"Unique ID of honeypot Template.\n"},"id":{"type":"string","description":"The id of the Honeypot template.\n"},"metas":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/getHoneypotPresetsPresetMeta:getHoneypotPresetsPresetMeta"},"description":"Honeypot template custom parameters.\n"},"nodeId":{"type":"string","description":"Unique id of management node\n"},"presetName":{"type":"string","description":"Honeypot template custom name\n"}},"type":"object","required":["honeypotImageName","honeypotPresetId","id","metas","nodeId","presetName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getHoneypotPresetsPresetMeta:getHoneypotPresetsPresetMeta":{"properties":{"burp":{"type":"string","description":"Burp counter.\n"},"portraitOption":{"type":"boolean","description":"Social traceability.\n"},"trojanGit":{"type":"string","description":"Git countered.\n"}},"type":"object","required":["burp","portraitOption","trojanGit"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getHoneypotProbesProbe:getHoneypotProbesProbe":{"properties":{"arp":{"type":"boolean","description":"ARP spoofing detection.-**true**: Enable-**false**: Disabled. Available when \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is on.\n"},"controlNodeId":{"type":"string","description":"The ID of the management node.\n"},"displayName":{"type":"string","description":"Probe name\n"},"honeypotBindLists":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/getHoneypotProbesProbeHoneypotBindList:getHoneypotProbesProbeHoneypotBindList"}},"honeypotProbeId":{"type":"string","description":"The first ID of the resource\n"},"id":{"type":"string","description":"The ID of the honeypot probe. Its value is the same as \u003cspan pulumi-lang-nodejs=\"`honeypotProbeId`\" pulumi-lang-dotnet=\"`HoneypotProbeId`\" pulumi-lang-go=\"`honeypotProbeId`\" pulumi-lang-python=\"`honeypot_probe_id`\" pulumi-lang-yaml=\"`honeypotProbeId`\" pulumi-lang-java=\"`honeypotProbeId`\"\u003e`honeypot_probe_id`\u003c/span\u003e.\n"},"ping":{"type":"boolean","description":"Ping scan detection. Value:**true**: Enable **false**: Disabled. Available when \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is on.\n"},"probeType":{"type":"string","description":"Probe type\n"},"serviceIpLists":{"type":"array","items":{"type":"string"},"description":"Listen to the IP address list. Available when \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is on.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"uuid":{"type":"string","description":"Machine uuid. Has a value when the type is \u003cspan pulumi-lang-nodejs=\"`hostProbe`\" pulumi-lang-dotnet=\"`HostProbe`\" pulumi-lang-go=\"`hostProbe`\" pulumi-lang-python=\"`host_probe`\" pulumi-lang-yaml=\"`hostProbe`\" pulumi-lang-java=\"`hostProbe`\"\u003e`host_probe`\u003c/span\u003e.\n"},"vpcId":{"type":"string","description":"The ID of the VPC. Has a value when the type is \u003cspan pulumi-lang-nodejs=\"`vpcBlackHoleProbe`\" pulumi-lang-dotnet=\"`VpcBlackHoleProbe`\" pulumi-lang-go=\"`vpcBlackHoleProbe`\" pulumi-lang-python=\"`vpc_black_hole_probe`\" pulumi-lang-yaml=\"`vpcBlackHoleProbe`\" pulumi-lang-java=\"`vpcBlackHoleProbe`\"\u003e`vpc_black_hole_probe`\u003c/span\u003e.\n"}},"type":"object","required":["arp","controlNodeId","displayName","honeypotBindLists","honeypotProbeId","id","ping","probeType","serviceIpLists","status","uuid","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getHoneypotProbesProbeHoneypotBindList:getHoneypotProbesProbeHoneypotBindList":{"properties":{"bindPortLists":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/getHoneypotProbesProbeHoneypotBindListBindPortList:getHoneypotProbesProbeHoneypotBindListBindPortList"},"description":"List of listening ports. Available when \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is on.\n"},"honeypotId":{"type":"string"}},"type":"object","required":["bindPortLists","honeypotId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getHoneypotProbesProbeHoneypotBindListBindPortList:getHoneypotProbesProbeHoneypotBindListBindPortList":{"properties":{"bindPort":{"type":"boolean","description":"Whether to bind the port.\n"},"endPort":{"type":"integer","description":"End port.\n"},"fixed":{"type":"boolean","description":"Whether the port is fixed.\n"},"startPort":{"type":"integer","description":"Start port.\n"},"targetPort":{"type":"integer","description":"Destination port.\n"}},"type":"object","required":["bindPort","endPort","fixed","startPort","targetPort"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getInstancesInstance:getInstancesInstance":{"properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"id":{"type":"string","description":"ID of the instance.\n"},"instanceId":{"type":"string","description":"The first ID of the resource\n"},"paymentType":{"type":"string","description":"The payment type of the resource.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object","required":["createTime","id","instanceId","paymentType","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getVulWhitelistsWhitelist:getVulWhitelistsWhitelist":{"properties":{"id":{"type":"string","description":"The ID of the Vul Whitelist.\n"},"reason":{"type":"string","description":"Reason for adding whitelist.\n"},"targetInfo":{"type":"string","description":"Set the effective range of the whitelist.\n"},"vulWhitelistId":{"type":"string","description":"The ID of the Vul Whitelist.\n"},"whitelist":{"type":"string","description":"Information about the vulnerability to be added to the whitelist.\n"}},"type":"object","required":["id","reason","targetInfo","vulWhitelistId","whitelist"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:threatdetection/getWebLockConfigsConfig:getWebLockConfigsConfig":{"properties":{"defenceMode":{"type":"string","description":"The prevention mode.\n"},"dir":{"type":"string","description":"The directory that has web tamper proofing enabled.\n"},"exclusiveDir":{"type":"string","description":"The directory that has web tamper proofing disabled.\n"},"exclusiveFile":{"type":"string","description":"The file that has web tamper proofing disabled. **Note:** If the value of \u003cspan pulumi-lang-nodejs=\"`mode`\" pulumi-lang-dotnet=\"`Mode`\" pulumi-lang-go=\"`mode`\" pulumi-lang-python=\"`mode`\" pulumi-lang-yaml=\"`mode`\" pulumi-lang-java=\"`mode`\"\u003e`mode`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`blacklist`\" pulumi-lang-dotnet=\"`Blacklist`\" pulumi-lang-go=\"`blacklist`\" pulumi-lang-python=\"`blacklist`\" pulumi-lang-yaml=\"`blacklist`\" pulumi-lang-java=\"`blacklist`\"\u003e`blacklist`\u003c/span\u003e, this parameter is returned.\n"},"exclusiveFileType":{"type":"string","description":"The type of the file that has web tamper proofing disabled. **Note:** If the value of \u003cspan pulumi-lang-nodejs=\"`mode`\" pulumi-lang-dotnet=\"`Mode`\" pulumi-lang-go=\"`mode`\" pulumi-lang-python=\"`mode`\" pulumi-lang-yaml=\"`mode`\" pulumi-lang-java=\"`mode`\"\u003e`mode`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`blacklist`\" pulumi-lang-dotnet=\"`Blacklist`\" pulumi-lang-go=\"`blacklist`\" pulumi-lang-python=\"`blacklist`\" pulumi-lang-yaml=\"`blacklist`\" pulumi-lang-java=\"`blacklist`\"\u003e`blacklist`\u003c/span\u003e, this parameter is returned.\n"},"id":{"type":"string","description":"The ID of the resource.\n"},"inclusiveFileType":{"type":"string","description":"The type of the file that has web tamper proofing enabled. **Note:** If the value of \u003cspan pulumi-lang-nodejs=\"`mode`\" pulumi-lang-dotnet=\"`Mode`\" pulumi-lang-go=\"`mode`\" pulumi-lang-python=\"`mode`\" pulumi-lang-yaml=\"`mode`\" pulumi-lang-java=\"`mode`\"\u003e`mode`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`whitelist`\" pulumi-lang-dotnet=\"`Whitelist`\" pulumi-lang-go=\"`whitelist`\" pulumi-lang-python=\"`whitelist`\" pulumi-lang-yaml=\"`whitelist`\" pulumi-lang-java=\"`whitelist`\"\u003e`whitelist`\u003c/span\u003e, this parameter is returned.\n"},"localBackupDir":{"type":"string","description":"The local path to the backup files of the protected directory.\n"},"mode":{"type":"string","description":"The protection mode of web tamper proofing.\n"},"uuid":{"type":"string","description":"The UUID of the server that has web tamper proofing enabled.\n"}},"type":"object","required":["defenceMode","dir","exclusiveDir","exclusiveFile","exclusiveFileType","id","inclusiveFileType","localBackupDir","mode","uuid"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:tsdb/getInstancesInstance:getInstancesInstance":{"properties":{"autoRenew":{"type":"string","description":"Auto renew.\n"},"cpuNumber":{"type":"string","description":"The cpu core number of instance.\n"},"diskCategory":{"type":"string","description":"The disk type of instance. \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e refers to SSD disk, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e refers to efficiency disk,cloud_essd refers to ESSD PL1 disk.\n"},"engineType":{"type":"string","description":"The engine type of instance. Enumerative: \u003cspan pulumi-lang-nodejs=\"`tsdbTsdb`\" pulumi-lang-dotnet=\"`TsdbTsdb`\" pulumi-lang-go=\"`tsdbTsdb`\" pulumi-lang-python=\"`tsdb_tsdb`\" pulumi-lang-yaml=\"`tsdbTsdb`\" pulumi-lang-java=\"`tsdbTsdb`\"\u003e`tsdb_tsdb`\u003c/span\u003e refers to TSDB, \u003cspan pulumi-lang-nodejs=\"`tsdbInfluxdb`\" pulumi-lang-dotnet=\"`TsdbInfluxdb`\" pulumi-lang-go=\"`tsdbInfluxdb`\" pulumi-lang-python=\"`tsdb_influxdb`\" pulumi-lang-yaml=\"`tsdbInfluxdb`\" pulumi-lang-java=\"`tsdbInfluxdb`\"\u003e`tsdb_influxdb`\u003c/span\u003e refers to TSDB for InfluxDB️.\n"},"expiredTime":{"type":"integer","description":"Instance expiration time.\n"},"id":{"type":"string","description":"The ID of the Instance.\n"},"instanceAlias":{"type":"string","description":"The alias of the instance.\n"},"instanceClass":{"type":"string","description":"The specification of the instance.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"instanceStorage":{"type":"string","description":"The storage capacity of the instance. Unit: GB. For example, the value 50 indicates 50 GB.\n"},"memorySize":{"type":"string","description":"The memory size of instance.\n"},"networkType":{"type":"string","description":"Instance network type.\n"},"paymentType":{"type":"string","description":"The billing method. Valid values: `PayAsYouGo` and `Subscription`. The `PayAsYouGo` value indicates the pay-as-you-go method, and the `Subscription` value indicates the subscription method.\n"},"status":{"type":"string","description":"Instance status, enumerative: ACTIVATION,DELETED, CREATING,CLASS_CHANGING,LOCKED.\n"},"vpcConnectionAddress":{"type":"string","description":"The vpc connection address of instance.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) that is connected to the instance.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string","description":"The zone ID of the instance.\n"}},"type":"object","required":["autoRenew","cpuNumber","diskCategory","engineType","expiredTime","id","instanceAlias","instanceClass","instanceId","instanceStorage","memorySize","networkType","paymentType","status","vpcConnectionAddress","vpcId","vswitchId","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:tsdb/getZonesZone:getZonesZone":{"properties":{"id":{"type":"string","description":"The ID of zone.\n"},"localName":{"type":"string","description":"The local name.\n"},"zoneId":{"type":"string","description":"The zone ID.\n"}},"type":"object","required":["id","localName","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:videosurveillance/getSystemGroupsGroup:getSystemGroupsGroup":{"properties":{"app":{"type":"string","description":"The App Name of Group.\n"},"callback":{"type":"string","description":"The space within the device status update of the callback, need to start with http:// or https:// at the beginning.\n"},"createTime":{"type":"string","description":"The creation time of the Group.\n"},"description":{"type":"string","description":"The description of the Group.\n"},"enabled":{"type":"boolean","description":"Whether to open Group.\n"},"gbId":{"type":"string","description":"Space of national standard ID. **NOTE:** Available only in the national standard access space.\n"},"gbIp":{"type":"string","description":"Space of national standard signaling server address. **NOTE:** Available only in the national standard access space.\n"},"groupId":{"type":"string","description":"The ID of Group.\n"},"groupName":{"type":"string","description":"The name of Group.\n"},"id":{"type":"string","description":"The ID of the Group.\n"},"inProtocol":{"type":"string","description":"The use of the access protocol support \u003cspan pulumi-lang-nodejs=\"`gb28181`\" pulumi-lang-dotnet=\"`Gb28181`\" pulumi-lang-go=\"`gb28181`\" pulumi-lang-python=\"`gb28181`\" pulumi-lang-yaml=\"`gb28181`\" pulumi-lang-java=\"`gb28181`\"\u003e`gb28181`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`rtmp`\" pulumi-lang-dotnet=\"`Rtmp`\" pulumi-lang-go=\"`rtmp`\" pulumi-lang-python=\"`rtmp`\" pulumi-lang-yaml=\"`rtmp`\" pulumi-lang-java=\"`rtmp`\"\u003e`rtmp`\u003c/span\u003e(Real Time Messaging Protocol).\n"},"outProtocol":{"type":"string","description":"The use of space play Protocol multi-valued separate them with commas (,). Valid values: \u003cspan pulumi-lang-nodejs=\"`flv`\" pulumi-lang-dotnet=\"`Flv`\" pulumi-lang-go=\"`flv`\" pulumi-lang-python=\"`flv`\" pulumi-lang-yaml=\"`flv`\" pulumi-lang-java=\"`flv`\"\u003e`flv`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`hls`\" pulumi-lang-dotnet=\"`Hls`\" pulumi-lang-go=\"`hls`\" pulumi-lang-python=\"`hls`\" pulumi-lang-yaml=\"`hls`\" pulumi-lang-java=\"`hls`\"\u003e`hls`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rtmp`\" pulumi-lang-dotnet=\"`Rtmp`\" pulumi-lang-go=\"`rtmp`\" pulumi-lang-python=\"`rtmp`\" pulumi-lang-yaml=\"`rtmp`\" pulumi-lang-java=\"`rtmp`\"\u003e`rtmp`\u003c/span\u003e(Real Time Messaging Protocol).\n"},"playDomain":{"type":"string","description":"The domain name of plan streaming used by the group.\n"},"pushDomain":{"type":"string","description":"The domain name of push streaming used by the group.\n"},"stats":{"type":"array","items":{"$ref":"#/types/alicloud:videosurveillance/getSystemGroupsGroupStat:getSystemGroupsGroupStat"},"description":"The Device statistics of Group.\n"}},"type":"object","required":["app","callback","createTime","description","enabled","gbId","gbIp","groupId","groupName","id","inProtocol","outProtocol","playDomain","pushDomain","stats"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:videosurveillance/getSystemGroupsGroupStat:getSystemGroupsGroupStat":{"properties":{"deviceNum":{"type":"string","description":"The total number of devices in the group.\n"},"iedNum":{"type":"string","description":"The total number of smart devices in the group.\n"},"ipcNum":{"type":"string","description":"The total number of cameras in the group.\n"},"platformNum":{"type":"string","description":"The total number of platforms in the group.\n"}},"type":"object","required":["deviceNum","iedNum","ipcNum","platformNum"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vod/DomainSource:DomainSource":{"properties":{"sourceContent":{"type":"string","description":"The address of the origin server. You can specify an IP address or a domain name.\n"},"sourcePort":{"type":"string","description":"The port number. You can specify port 443 or 80. **Default value: 80**. If you specify port 443, Alibaba Cloud CDN communicates with the origin server over HTTPS. You can also customize a port.\n"},"sourcePriority":{"type":"string","description":"The priority of the origin server if multiple origin servers are specified. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e. **Default value: 20**. A value of 20 indicates that the origin server is the primary origin server. A value of 30 indicates that the origin server is a secondary origin server.\n"},"sourceType":{"type":"string","description":"The type of the origin server. Valid values:\n"}},"type":"object","required":["sourceContent","sourcePort","sourceType"],"language":{"nodejs":{"requiredOutputs":["sourceContent","sourcePort","sourcePriority","sourceType"]}}},"alicloud:vod/getDomainsDomain:getDomainsDomain":{"properties":{"cname":{"type":"string","description":"The CNAME that is assigned to the domain name for CDN. You must add a CNAME record in the system of your Domain Name System (DNS) service provider to map the domain name for CDN to the CNAME.\n"},"description":{"type":"string","description":"The description of the domain name for CDN.\n"},"domainName":{"type":"string","description":"The domain name for CDN.\n"},"gmtCreated":{"type":"string","description":"The time when the domain name for CDN was added. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"gmtModified":{"type":"string","description":"The last time when the domain name for CDN was modified. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"id":{"type":"string","description":"The ID of the Domain. Its value is same as Queue Name.\n"},"sandBox":{"type":"string","description":"Indicates whether the domain name for CDN is in a sandbox environment.\n"},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:vod/getDomainsDomainSource:getDomainsDomainSource"},"description":"The information about the address of the origin server. For more information about the Sources parameter, See the following `Block sources`.\n"},"sslProtocol":{"type":"string","description":"Indicates whether the Secure Sockets Layer (SSL) certificate is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object","required":["cname","description","domainName","gmtCreated","gmtModified","id","sandBox","sources","sslProtocol","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vod/getDomainsDomainSource:getDomainsDomainSource":{"properties":{"sourceContent":{"type":"string"},"sourcePort":{"type":"string"},"sourcePriority":{"type":"string"},"sourceType":{"type":"string"}},"type":"object","required":["sourceContent","sourcePort","sourcePriority","sourceType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/DhcpOptionsSetAssociateVpc:DhcpOptionsSetAssociateVpc":{"properties":{"associateStatus":{"type":"string","description":"The status of the VPC associated with the DHCP option set.\n"},"vpcId":{"type":"string","description":"The ID of the VPC network that is associated with the DHCP options set.\n"}},"type":"object","required":["vpcId"],"language":{"nodejs":{"requiredOutputs":["associateStatus","vpcId"]}}},"alicloud:vpc/NatGatewayAccessMode:NatGatewayAccessMode":{"properties":{"modeValue":{"type":"string","description":"The mode of Access. Valid values:\n","willReplaceOnChanges":true},"tunnelType":{"type":"string","description":"The type of Tunnel. Valid values: \u003cspan pulumi-lang-nodejs=\"`geneve`\" pulumi-lang-dotnet=\"`Geneve`\" pulumi-lang-go=\"`geneve`\" pulumi-lang-python=\"`geneve`\" pulumi-lang-yaml=\"`geneve`\" pulumi-lang-java=\"`geneve`\"\u003e`geneve`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`tunnelType`\" pulumi-lang-dotnet=\"`TunnelType`\" pulumi-lang-go=\"`tunnelType`\" pulumi-lang-python=\"`tunnel_type`\" pulumi-lang-yaml=\"`tunnelType`\" pulumi-lang-java=\"`tunnelType`\"\u003e`tunnel_type`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`modeValue`\" pulumi-lang-dotnet=\"`ModeValue`\" pulumi-lang-go=\"`modeValue`\" pulumi-lang-python=\"`mode_value`\" pulumi-lang-yaml=\"`modeValue`\" pulumi-lang-java=\"`modeValue`\"\u003e`mode_value`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`tunnel`\" pulumi-lang-dotnet=\"`Tunnel`\" pulumi-lang-go=\"`tunnel`\" pulumi-lang-python=\"`tunnel`\" pulumi-lang-yaml=\"`tunnel`\" pulumi-lang-java=\"`tunnel`\"\u003e`tunnel`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["modeValue","tunnelType"]}}},"alicloud:vpc/NetworkAclAttachmentResource:NetworkAclAttachmentResource":{"properties":{"resourceId":{"type":"string","description":"The resource id that the network acl will associate with.\n"},"resourceType":{"type":"string","description":"The resource id that the network acl will associate with. Only support `VSwitch` now.\n"}},"type":"object","required":["resourceId","resourceType"]},"alicloud:vpc/NetworkAclEgressAclEntry:NetworkAclEgressAclEntry":{"properties":{"description":{"type":"string","description":"The description of the outbound rule.\nThe description must be 1 to 256 characters in length and cannot start with http:// or https.\n"},"destinationCidrIp":{"type":"string","description":"The destination CIDR block.\n"},"entryType":{"type":"string","description":"The route entry type. Value\ncustom custom rule\nsystem system rules\nservice Cloud service rules\n"},"ipVersion":{"type":"string","description":"The IP protocol version of the route entry. Valid values: \"Ipv4\" and \"ipv6'\n"},"networkAclEntryName":{"type":"string","description":"Name of the outbound rule entry.\nThe name must be 1 to 128 characters in length and cannot start with http:// or https.\n"},"policy":{"type":"string","description":"The action to be performed on network traffic that matches the rule. Valid values:\n- accept\n- drop\n"},"port":{"type":"string","description":"The destination port range of the outbound rule.\nWhen the Protocol type of the outbound rule is all, icmp, or gre, the port range is - 1/-1, indicating that the port is not restricted.\nWhen the Protocol type of the outbound rule is tcp or udp, the port range is 1 to 65535, and the format is 1/200 or 80/80, indicating port 1 to port 200 or port 80.\n"},"protocol":{"type":"string","description":"The protocol type. Value:\n- icmp: Network Control Message Protocol.\n- gre: Generic Routing Encapsulation Protocol.\n- tcp: Transmission Control Protocol.\n- udp: User Datagram Protocol.\n- all: Supports all protocols.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["entryType","ipVersion"]}}},"alicloud:vpc/NetworkAclEntriesEgress:NetworkAclEntriesEgress":{"properties":{"description":{"type":"string","description":"The description of the egress entry.\n"},"destinationCidrIp":{"type":"string","description":"The destination ip of the egress entry.\n"},"entryType":{"type":"string","description":"The entry type of the egress entry. It must be \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the egress entry.\n"},"policy":{"type":"string","description":"The policy of the egress entry. It must be \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"port":{"type":"string","description":"The port of the egress entry.\n"},"protocol":{"type":"string","description":"The protocol of the egress entry.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","destinationCidrIp","entryType","name","policy","port","protocol"]}}},"alicloud:vpc/NetworkAclEntriesIngress:NetworkAclEntriesIngress":{"properties":{"description":{"type":"string","description":"The description of the ingress entry.\n"},"entryType":{"type":"string","description":"The entry type of the ingress entry. It must be \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the ingress entry.\n"},"policy":{"type":"string","description":"The policy of the ingress entry. It must be \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"port":{"type":"string","description":"The port of the ingress entry.\n"},"protocol":{"type":"string","description":"The protocol of the ingress entry.\n"},"sourceCidrIp":{"type":"string","description":"The source ip of the ingress entry.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","entryType","name","policy","port","protocol","sourceCidrIp"]}}},"alicloud:vpc/NetworkAclIngressAclEntry:NetworkAclIngressAclEntry":{"properties":{"description":{"type":"string","description":"Description of the inbound rule.\nThe description must be 1 to 256 characters in length and cannot start with http:// or https.\n"},"entryType":{"type":"string","description":"The route entry type. Value\n"},"ipVersion":{"type":"string","description":"The IP protocol version of the route entry. Valid values: \"Ipv4\" and \"ipv6'\n"},"networkAclEntryName":{"type":"string","description":"The name of the inbound rule entry.\nThe name must be 1 to 128 characters in length and cannot start with http:// or https.\n"},"policy":{"type":"string","description":"The action to be performed on network traffic that matches the rule. Valid values:\n- accept\n- drop\n"},"port":{"type":"string","description":"The source port range of the inbound rule.\nWhen the Protocol type of the inbound rule is all, icmp, or gre, the port range is - 1/-1, indicating that the port is not restricted.\nWhen the Protocol type of the inbound rule is tcp or udp, the port range is 1 to 65535, and the format is 1/200 or 80/80, indicating port 1 to port 200 or port 80.\n"},"protocol":{"type":"string","description":"The protocol type. Value:\n- icmp: Network Control Message Protocol.\n- gre: Generic Routing Encapsulation Protocol.\n- tcp: Transmission Control Protocol.\n- udp: User Datagram Protocol.\n- all: Supports all protocols.\n"},"sourceCidrIp":{"type":"string","description":"The source CIDR block.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["entryType","ipVersion"]}}},"alicloud:vpc/NetworkAclResource:NetworkAclResource":{"properties":{"resourceId":{"type":"string","description":"The ID of the associated resource.\n"},"resourceType":{"type":"string","description":"The type of the associated resource.\n"},"status":{"type":"string","description":"The state of the network ACL.\n"}},"type":"object","required":["resourceId","resourceType"],"language":{"nodejs":{"requiredOutputs":["resourceId","resourceType","status"]}}},"alicloud:vpc/NetworkIpv6CidrBlock:NetworkIpv6CidrBlock":{"properties":{"ipv6CidrBlock":{"type":"string","description":"The IPv6 CIDR block of the default VPC.\n\n\u003e **NOTE:**  When `EnableIpv6` is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this parameter is required.\n"},"ipv6Isp":{"type":"string","description":"The IPv6 address segment type of the VPC. Value:\n- `BGP` (default): Alibaba Cloud BGP IPv6.\n- `ChinaMobile`: China Mobile (single line).\n- `ChinaUnicom`: China Unicom (single line).\n- `ChinaTelecom`: China Telecom (single line).\n\n\u003e **NOTE:**  If a single-line bandwidth whitelist is enabled, this field can be set to `ChinaTelecom` (China Telecom), `ChinaUnicom` (China Unicom), or `ChinaMobile` (China Mobile).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipv6CidrBlock","ipv6Isp"]}}},"alicloud:vpc/PrefixListEntry:PrefixListEntry":{"properties":{"cidr":{"type":"string","description":"The CIDR address block of the prefix list.\n"},"description":{"type":"string","description":"The description of the cidr entry. It must be 2 to 256 characters in length and must start with a letter or Chinese, but cannot start with `http://` or `https://`.\n"}},"type":"object"},"alicloud:vpc/PrefixListPrefixListAssociation:PrefixListPrefixListAssociation":{"properties":{"ownerId":{"type":"string","description":"The ID of the Alibaba Cloud account (primary account) to which the prefix list belongs.\n"},"prefixListId":{"type":"string","description":"The ID of the query Prefix List.\n"},"reason":{"type":"string","description":"Reason when the association fails.\n"},"regionId":{"type":"string","description":"The region ID of the prefix list to be queried.\n"},"resourceId":{"type":"string","description":"The ID of the associated resource.\n"},"resourceType":{"type":"string","description":"The associated resource type. Value:-**vpcRouteTable**: The VPC route table.-**trRouteTable**: the routing table of the forwarding router.\n"},"resourceUid":{"type":"string","description":"The ID of the Alibaba Cloud account (primary account) to which the resource bound to the prefix list belongs.\n"},"status":{"type":"string","description":"Resource attribute fields that represent the status of the resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ownerId","prefixListId","reason","regionId","resourceId","resourceType","resourceUid","status"]}}},"alicloud:vpc/TrafficMirrorFilterEgressRule:TrafficMirrorFilterEgressRule":{"properties":{"action":{"type":"string","willReplaceOnChanges":true},"destinationCidrBlock":{"type":"string","willReplaceOnChanges":true},"destinationPortRange":{"type":"string","willReplaceOnChanges":true},"priority":{"type":"integer","willReplaceOnChanges":true},"protocol":{"type":"string","willReplaceOnChanges":true},"sourceCidrBlock":{"type":"string","willReplaceOnChanges":true},"sourcePortRange":{"type":"string","willReplaceOnChanges":true},"trafficMirrorFilterRuleStatus":{"type":"string"}},"type":"object","required":["action","protocol"],"language":{"nodejs":{"requiredOutputs":["action","protocol","trafficMirrorFilterRuleStatus"]}}},"alicloud:vpc/TrafficMirrorFilterIngressRule:TrafficMirrorFilterIngressRule":{"properties":{"action":{"type":"string","willReplaceOnChanges":true},"destinationCidrBlock":{"type":"string","willReplaceOnChanges":true},"destinationPortRange":{"type":"string","willReplaceOnChanges":true},"priority":{"type":"integer","willReplaceOnChanges":true},"protocol":{"type":"string","willReplaceOnChanges":true},"sourceCidrBlock":{"type":"string","willReplaceOnChanges":true},"sourcePortRange":{"type":"string","willReplaceOnChanges":true},"trafficMirrorFilterRuleStatus":{"type":"string"}},"type":"object","required":["action","protocol"],"language":{"nodejs":{"requiredOutputs":["action","protocol","trafficMirrorFilterRuleStatus"]}}},"alicloud:vpc/VPCRouteEntryNextHop:VPCRouteEntryNextHop":{"properties":{"enabled":{"type":"integer","description":"Whether the route is available.\n"},"nextHopRegionId":{"type":"string","description":"The region of the next instance.\n"},"nextHopRelatedInfo":{"$ref":"#/types/alicloud:vpc/VPCRouteEntryNextHopNextHopRelatedInfo:VPCRouteEntryNextHopNextHopRelatedInfo","description":"Next hop information.\n"},"nexthopId":{"type":"string","description":"ID of next hop\n","willReplaceOnChanges":true},"nexthopType":{"type":"string","description":"type of next hop\n","willReplaceOnChanges":true},"weight":{"type":"integer","description":"The weight of the route entry.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled","nextHopRegionId","nextHopRelatedInfo","nexthopId","nexthopType"]}}},"alicloud:vpc/VPCRouteEntryNextHopNextHopRelatedInfo:VPCRouteEntryNextHopNextHopRelatedInfo":{"properties":{"instanceId":{"type":"string","description":"InstanceId\n"},"instanceType":{"type":"string","description":"InstanceType\n"},"regionId":{"type":"string","description":"The region of the instance associated with the next hop.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["instanceId","instanceType","regionId"]}}},"alicloud:vpc/VPCRouteEntryRoutePublishTarget:VPCRouteEntryRoutePublishTarget":{"properties":{"publishStatus":{"type":"string","description":"Route Publish Status\n"},"targetInstanceId":{"type":"string","description":"Route publish target instance id.\n"},"targetType":{"type":"string","description":"Route publish target type\n"}},"type":"object","required":["targetType"],"language":{"nodejs":{"requiredOutputs":["publishStatus","targetInstanceId","targetType"]}}},"alicloud:vpc/getBgpGroupsGroup:getBgpGroupsGroup":{"properties":{"authKey":{"type":"string","description":"The key used by the BGP group.\n"},"bgpGroupName":{"type":"string","description":"The name of the BGP group.\n"},"description":{"type":"string","description":"Description of the BGP group.\n"},"hold":{"type":"string","description":"The hold time to wait for the incoming BGP message. If no message has been passed in after the hold time, the BGP neighbor is considered disconnected.\n"},"id":{"type":"string","description":"The ID of the Bgp Group.\n"},"ipVersion":{"type":"string","description":"IP version.\n"},"isFakeAsn":{"type":"boolean","description":"Whether the AS number is false.\n"},"keepalive":{"type":"string","description":"The keepalive time.\n"},"localAsn":{"type":"integer","description":"The local AS number.\n"},"peerAsn":{"type":"integer","description":"The autonomous system (AS) number of the BGP peer.\n"},"routeLimit":{"type":"string","description":"Routing limits.\n"},"routerId":{"type":"string","description":"The ID of the VBR.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object","required":["authKey","bgpGroupName","description","hold","id","ipVersion","isFakeAsn","keepalive","localAsn","peerAsn","routeLimit","routerId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getBgpNetworksNetwork:getBgpNetworksNetwork":{"properties":{"dstCidrBlock":{"type":"string","description":"Advertised BGP networks.\n"},"id":{"type":"string","description":"The ID of the Bgp Network. The value formats as `\u003crouter_id\u003e:\u003cdst_cidr_block\u003e`.\n"},"routerId":{"type":"string","description":"The ID of the vRouter.\n"},"status":{"type":"string","description":"The state of the advertised BGP network.\n"}},"type":"object","required":["dstCidrBlock","id","routerId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getBgpPeersPeer:getBgpPeersPeer":{"properties":{"authKey":{"type":"string","description":"The authentication key of the BGP group.\n"},"bfdMultiHop":{"type":"integer","description":"The BFD hop count.\n"},"bgpGroupId":{"type":"string","description":"The ID of the BGP group.\n"},"bgpPeerId":{"type":"string","description":"The ID of the BGP neighbor.\n"},"bgpPeerName":{"type":"string","description":"The name of the BGP neighbor.\n"},"bgpStatus":{"type":"string","description":"The status of the BGP connection.\n"},"description":{"type":"string","description":"The description of the BGP group.\n"},"enableBfd":{"type":"boolean","description":"Indicates whether the Bidirectional Forwarding Detection (BFD) protocol is enabled.\n"},"hold":{"type":"string","description":"The hold time.\n"},"id":{"type":"string","description":"The ID of the Bgp Peer.\n"},"ipVersion":{"type":"string","description":"The IP version.\n"},"isFake":{"type":"boolean","description":"Indicates whether a fake AS number is used.\n"},"keepalive":{"type":"string","description":"The keepalive time.\n"},"localAsn":{"type":"string","description":"The AS number of the device on the Alibaba Cloud side.\n"},"peerAsn":{"type":"string","description":"The autonomous system (AS) number of the BGP peer.\n"},"peerIpAddress":{"type":"string","description":"The IP address of the BGP neighbor.\n"},"routeLimit":{"type":"string","description":"The limit on routes.\n"},"routerId":{"type":"string","description":"The ID of the router.\n"},"status":{"type":"string","description":"The status of the BGP peer.\n"}},"type":"object","required":["authKey","bfdMultiHop","bgpGroupId","bgpPeerId","bgpPeerName","bgpStatus","description","enableBfd","hold","id","ipVersion","isFake","keepalive","localAsn","peerAsn","peerIpAddress","routeLimit","routerId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getCommonBandwidthPackagesPackage:getCommonBandwidthPackagesPackage":{"properties":{"bandwidth":{"type":"string","description":"The peak bandwidth of the Internet Shared Bandwidth instance.\n"},"bandwidthPackageId":{"type":"string","description":"The resource ID of bandwidth package.\n"},"bandwidthPackageName":{"type":"string","description":"The name of bandwidth package.\n"},"businessStatus":{"type":"string","description":"The business status of the Common Bandwidth Package instance.\n"},"deletionProtection":{"type":"boolean","description":"The deletion protection of bandwidth package.\n"},"description":{"type":"string","description":"The description of the Common Bandwidth Package instance.\n"},"expiredTime":{"type":"string","description":"The expired time of bandwidth package.\n"},"hasReservationData":{"type":"boolean","description":"Is has reservation data.\n"},"id":{"type":"string","description":"ID of the Common Bandwidth Package.\n"},"internetChargeType":{"type":"string","description":"The internet charge type of bandwidth package.\n"},"isp":{"type":"string","description":"ISP of the Common Bandwidth Package.\n"},"name":{"type":"string","description":"Name of the Common Bandwidth Package.\n"},"paymentType":{"type":"string","description":"The payment type of bandwidth package.\n"},"publicIpAddresses":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/getCommonBandwidthPackagesPackagePublicIpAddress:getCommonBandwidthPackagesPackagePublicIpAddress"},"description":"Public ip addresses that in the Common Bandwidth Pakcage.\n"},"ratio":{"type":"integer","description":"The ratio of bandwidth package.\n"},"reservationActiveTime":{"type":"string","description":"The active time of reservation.\n"},"reservationBandwidth":{"type":"string","description":"The bandwidth of reservation.\n"},"reservationInternetChargeType":{"type":"string","description":"The charge type of reservation internet.\n"},"reservationOrderType":{"type":"string","description":"The type of reservation order.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the common bandwidth package belongs.\n"},"serviceManaged":{"type":"integer","description":"The service managed.\n"},"status":{"type":"string","description":"The status of bandwidth package. Valid values: `Available` and `Pending`.\n"}},"type":"object","required":["bandwidth","bandwidthPackageId","bandwidthPackageName","businessStatus","deletionProtection","description","expiredTime","hasReservationData","id","internetChargeType","isp","name","paymentType","publicIpAddresses","ratio","reservationActiveTime","reservationBandwidth","reservationInternetChargeType","reservationOrderType","resourceGroupId","serviceManaged","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getCommonBandwidthPackagesPackagePublicIpAddress:getCommonBandwidthPackagesPackagePublicIpAddress":{"properties":{"allocationId":{"type":"string"},"bandwidthPackageIpRelationStatus":{"type":"string"},"ipAddress":{"type":"string"}},"type":"object","required":["allocationId","bandwidthPackageIpRelationStatus","ipAddress"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getDhcpOptionsSetsSet:getDhcpOptionsSetsSet":{"properties":{"associateVpcCount":{"type":"integer","description":"The Number of VPCs bound by the DHCP option set.\n"},"dhcpOptionsSetDescription":{"type":"string","description":"The description of the DHCP options set. The description must be 2 to 256\ncharacters in length and cannot start with `http://` or `https://`.\n"},"dhcpOptionsSetId":{"type":"string","description":"The resource ID in terraform of Dhcp Options Set.\n"},"dhcpOptionsSetName":{"type":"string","description":"The root domain, for example, example.com. After a DHCP options set is associated with a\nVirtual Private Cloud (VPC) network, the root domain in the DHCP options set is automatically synchronized to the\nECS instances in the VPC network.\n"},"domainName":{"type":"string","description":"The root domain, for example, example.com. After a DHCP options set is associated with a Virtual\nPrivate Cloud (VPC) network, the root domain in the DHCP options set is automatically synchronized to the ECS\ninstances in the VPC network.\n"},"domainNameServers":{"type":"string","description":"The DNS server IP addresses. Up to four DNS server IP addresses can be specified. IP\naddresses must be separated with commas (,).\n"},"id":{"type":"string","description":"The resource ID in terraform of Dhcp Options Set.\n"},"ownerId":{"type":"string","description":"The ID of the account to which the DHCP options set belongs.\n"},"status":{"type":"string","description":"The status of the DHCP options set. Valid values: `Available`, `InUse` or `Pending`. `Available`: The DHCP options set is available for use. `InUse`: The DHCP options set is in use. `Pending`: The DHCP options set is being configured.\n"}},"type":"object","required":["associateVpcCount","dhcpOptionsSetDescription","dhcpOptionsSetId","dhcpOptionsSetName","domainName","domainNameServers","id","ownerId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getEnhancedNatAvailableZonesZone:getEnhancedNatAvailableZonesZone":{"properties":{"localName":{"type":"string","description":"Name of the available zone.\n"},"zoneId":{"type":"string","description":"The ID of the available zone.\n"}},"type":"object","required":["localName","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getForwardEntriesEntry:getForwardEntriesEntry":{"properties":{"externalIp":{"type":"string","description":"The public IP address.\n"},"externalPort":{"type":"string","description":"The public port.\n"},"forwardEntryId":{"type":"string","description":"The forward entry ID.\n"},"forwardEntryName":{"type":"string","description":"The name of forward entry.\n"},"id":{"type":"string","description":"The ID of the Forward Entry.\n"},"internalIp":{"type":"string","description":"The private IP address.\n"},"internalPort":{"type":"string","description":"The internal port.\n"},"ipProtocol":{"type":"string","description":"The ip protocol. Valid values: \u003cspan pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\"\u003e`any`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The forward entry name.\n"},"status":{"type":"string","description":"The status of farward entry. Valid value `Available`, `Deleting` and `Pending`.\n"}},"type":"object","required":["externalIp","externalPort","forwardEntryId","forwardEntryName","id","internalIp","internalPort","ipProtocol","name","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getHavipsHavip:getHavipsHavip":{"properties":{"associatedEipAddresses":{"type":"array","items":{"type":"string"},"description":"EIP bound to HaVip.\n"},"associatedInstances":{"type":"array","items":{"type":"string"},"description":"An ECS instance that is bound to HaVip.\n"},"description":{"type":"string","description":"Dependence of a HaVip instance.\n"},"havipId":{"type":"string","description":"The  ID of the resource.\n"},"havipName":{"type":"string","description":"The name of the HaVip instance.\n"},"id":{"type":"string","description":"The ID of the Ha Vip.\n"},"ipAddress":{"type":"string","description":"IP address of private network.\n"},"masterInstanceId":{"type":"string","description":"The primary instance ID bound to HaVip.\n"},"status":{"type":"string","description":"The status.\n"},"vpcId":{"type":"string","description":"The VPC ID to which the HaVip instance belongs.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"}},"type":"object","required":["associatedEipAddresses","associatedInstances","description","havipId","havipName","id","ipAddress","masterInstanceId","status","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getIpamIpamPoolAllocationsAllocation:getIpamIpamPoolAllocationsAllocation":{"properties":{"cidr":{"type":"string","description":"The allocated address segment.\n"},"createTime":{"type":"string","description":"Instance creation time.\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"ipamPoolAllocationDescription":{"type":"string","description":"The description of the ipam pool alloctaion.It must be 1 to 256 characters in length and must start with an English letter or Chinese character, but cannot start with 'http:// 'or 'https. If it is not filled in, it is empty. The default value is empty.\n"},"ipamPoolAllocationId":{"type":"string","description":"The instance ID of the ipam pool allocation.\n"},"ipamPoolAllocationName":{"type":"string","description":"The name of the ipam pool allocation.It must be 1 to 128 characters in length and cannot start with 'http:// 'or 'https.\n"},"ipamPoolId":{"type":"string","description":"The ID of the IPAM Pool.\n"},"regionId":{"type":"string","description":"When the IPAM Pool to which CIDR is allocated has the region attribute, this attribute is the IPAM Pool region.When the IPAM Pool to which CIDR is allocated does not have the region attribute, this attribute is the IPAM region.\n"},"resourceId":{"type":"string","description":"The ID of the resource.\n"},"resourceOwnerId":{"type":"integer","description":"The ID of the Alibaba Cloud account (primary account) to which the resource belongs.\n"},"resourceRegionId":{"type":"string","description":"The region of the resource.\n"},"resourceType":{"type":"string","description":"The type of resource. Value:-**VPC**: indicates that the resource type is VPC.-**IpamPool**: indicates that the resource type is a child address pool.-**Custom**: indicates that the resource type is a Custom reserved CIDR block.\n"},"sourceCidr":{"type":"string","description":"The source address segment.\n"},"status":{"type":"string","description":"The status of the instance. Value:-**Created**: indicates that the creation is complete.\n"},"totalCount":{"type":"integer","description":"Total number of records.\n"}},"type":"object","required":["cidr","createTime","id","ipamPoolAllocationDescription","ipamPoolAllocationId","ipamPoolAllocationName","ipamPoolId","regionId","resourceId","resourceOwnerId","resourceRegionId","resourceType","sourceCidr","status","totalCount"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getIpamIpamPoolCidrsCidr:getIpamIpamPoolCidrsCidr":{"properties":{"cidr":{"type":"string","description":"The CIDR address segment to be preset.\u003e currently, only IPv4 address segments are supported.\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"ipamPoolId":{"type":"string","description":"The ID of the IPAM pool instance.\n"},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object","required":["cidr","id","ipamPoolId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getIpamIpamPoolsPool:getIpamIpamPoolsPool":{"properties":{"allocationDefaultCidrMask":{"type":"integer","description":"The default network mask assigned by the IPAM address pool.IPv4 network mask value range: **0 to 32** bits.\n"},"allocationMaxCidrMask":{"type":"integer","description":"The maximum network mask assigned by the IPAM address pool.IPv4 network mask value range: **0 to 32** bits.\n"},"allocationMinCidrMask":{"type":"integer","description":"The minimum Network mask assigned by the IPAM address pool.IPv4 network mask value range: **0 to 32** bits.\n"},"autoImport":{"type":"boolean","description":"Whether the automatic import function is enabled for the address pool.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"hasSubPool":{"type":"boolean","description":"Whether it is a child address pool. Value:-**true**: Yes.-**false**: No.\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"ipVersion":{"type":"string","description":"The IP protocol version. Currently, only **IPv4** is supported * *.\n"},"ipamId":{"type":"string","description":"Ipam id.\n"},"ipamPoolDescription":{"type":"string","description":"The description of the IPAM address pool.It must be 2 to 256 characters in length and must start with an English letter or a Chinese character, but cannot start with 'http:// 'or 'https. If it is not filled in, it is empty. The default value is empty.\n"},"ipamPoolId":{"type":"string","description":"The first ID of the resource.\n"},"ipamPoolName":{"type":"string","description":"The name of the resource.\n"},"ipamScopeId":{"type":"string","description":"Ipam scope id.\n"},"poolDepth":{"type":"integer","description":"The depth of the IPAM address pool. Value range: **0 to 10 * *.\n"},"poolRegionId":{"type":"string","description":"The effective region of the IPAM address pool.\n"},"regionId":{"type":"string","description":"The region ID of the resource.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sourceIpamPoolId":{"type":"string","description":"The instance ID of the source IPAM address pool.\u003e If this parameter is not entered, the created address pool is the parent address pool.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object","required":["allocationDefaultCidrMask","allocationMaxCidrMask","allocationMinCidrMask","autoImport","createTime","hasSubPool","id","ipVersion","ipamId","ipamPoolDescription","ipamPoolId","ipamPoolName","ipamScopeId","poolDepth","poolRegionId","regionId","resourceGroupId","sourceIpamPoolId","status","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getIpamIpamScopesScope:getIpamIpamScopesScope":{"properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"ipamId":{"type":"string","description":"The id of the Ipam instance.\n"},"ipamScopeDescription":{"type":"string","description":"The description of the IPAM's scope of action.It must be 2 to 256 characters in length and must start with a lowercase letter, but cannot start with 'http:// 'or 'https. If it is not filled in, it is empty. The default value is empty.\n"},"ipamScopeId":{"type":"string","description":"The first ID of the resource.\n"},"ipamScopeName":{"type":"string","description":"The name of the resource.\n"},"ipamScopeType":{"type":"string","description":"IPAM scope of action type:**private**.\u003e Currently, only the role scope of the private network is supported.\n"},"regionId":{"type":"string","description":"The region ID of the resource.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object","required":["createTime","id","ipamId","ipamScopeDescription","ipamScopeId","ipamScopeName","ipamScopeType","regionId","resourceGroupId","status","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getIpamIpamsIpam:getIpamIpamsIpam":{"properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"defaultResourceDiscoveryAssociationId":{"type":"string","description":"After an IPAM is created, the association between the resource discovery created by the system by default and the IPAM.\n"},"defaultResourceDiscoveryId":{"type":"string","description":"After IPAM is created, the system creates resource discovery by default.\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"ipamDescription":{"type":"string","description":"The description of IPAM.It must be 2 to 256 characters in length and must start with an uppercase letter or a Chinese character, but cannot start with 'http: // 'or 'https. If the description is not filled in, it is blank. The default value is blank.\n"},"ipamId":{"type":"string","description":"The first ID of the resource.\n"},"ipamName":{"type":"string","description":"The name of the resource.\n"},"privateDefaultScopeId":{"type":"string","description":"After an IPAM is created, the scope of the private network IPAM created by the system by default.\n"},"publicDefaultScopeId":{"type":"string","description":"After an IPAM is created, the public network IPAM is created by default.\n"},"regionId":{"type":"string","description":"The region ID of the resource.\n"},"resourceDiscoveryAssociationCount":{"type":"integer","description":"The number of resource discovery objects associated with IPAM.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object","required":["createTime","defaultResourceDiscoveryAssociationId","defaultResourceDiscoveryId","id","ipamDescription","ipamId","ipamName","privateDefaultScopeId","publicDefaultScopeId","regionId","resourceDiscoveryAssociationCount","resourceGroupId","status","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getIpsecServersServer:getIpsecServersServer":{"properties":{"clientIpPool":{"type":"string","description":"The CIDR block of the client, which is assigned an access address to the virtual NIC of the client.\n"},"createTime":{"type":"string","description":"The creation time of the IPsec server. T represents the delimiter, and Z represents UTC, which is World Standard Time.\n"},"effectImmediately":{"type":"boolean","description":"Indicates whether the current IPsec tunnel is deleted and negotiations are reinitiated.\n"},"id":{"type":"string","description":"The ID of the Ipsec Server.\n"},"idaasInstanceId":{"type":"string","description":"The ID of the Identity as a Service (IDaaS) instance.\n"},"ikeConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/getIpsecServersServerIkeConfig:getIpsecServersServerIkeConfig"},"description":"The configurations of Phase 1 negotiations.\n"},"internetIp":{"type":"string","description":"The public IP address of the VPN gateway.\n"},"ipsecConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/getIpsecServersServerIpsecConfig:getIpsecServersServerIpsecConfig"},"description":"The configuration of Phase 2 negotiations.\n"},"ipsecServerId":{"type":"string","description":"The ID of the IPsec server.\n"},"ipsecServerName":{"type":"string","description":"The name of the IPsec server.\n"},"localSubnet":{"type":"string","description":"Local network segment: the network segment on The VPC side that needs to be interconnected with the client network segment.\n"},"maxConnections":{"type":"integer","description":"The number of SSL connections of the VPN gateway. SSL-VPN the number of SSL connections shared with the IPsec server. For example, if the number of SSL connections is 5 and you have three SSL clients connected to the SSL-VPN, you can also use two clients to connect to the IPsec server.\n"},"multiFactorAuthEnabled":{"type":"boolean","description":"Whether the two-factor authentication function has been turned on.\n"},"onlineClientCount":{"type":"integer","description":"The number of clients that have connected to the IPsec server.\n"},"psk":{"type":"string","description":"The pre-shared key.\n"},"pskEnabled":{"type":"boolean","description":"Whether to enable the pre-shared key authentication method. The value is only \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, which indicates that the pre-shared key authentication method is enabled.\n"},"vpnGatewayId":{"type":"string","description":"The ID of the VPN gateway.\n"}},"type":"object","required":["clientIpPool","createTime","effectImmediately","id","idaasInstanceId","ikeConfigs","internetIp","ipsecConfigs","ipsecServerId","ipsecServerName","localSubnet","maxConnections","multiFactorAuthEnabled","onlineClientCount","psk","pskEnabled","vpnGatewayId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getIpsecServersServerIkeConfig:getIpsecServersServerIkeConfig":{"properties":{"ikeAuthAlg":{"type":"string","description":"The IKE authentication algorithm.\n"},"ikeEncAlg":{"type":"string","description":"The IKE encryption algorithm.\n"},"ikeLifetime":{"type":"integer","description":"The IKE lifetime. Unit: seconds.\n"},"ikeMode":{"type":"string","description":"The IKE negotiation mode.\n"},"ikePfs":{"type":"string","description":"Diffie-Hellman key exchange algorithm.\n"},"ikeVersion":{"type":"string","description":"The IKE version.\n"},"localId":{"type":"string","description":"IPsec server identifier. Supports the format of FQDN and IP address. The public IP address of the VPN gateway is selected by default.\n"},"remoteId":{"type":"string","description":"The peer identifier. Supports the format of FQDN and IP address, which is empty by default.\n"}},"type":"object","required":["ikeAuthAlg","ikeEncAlg","ikeLifetime","ikeMode","ikePfs","ikeVersion","localId","remoteId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getIpsecServersServerIpsecConfig:getIpsecServersServerIpsecConfig":{"properties":{"ipsecAuthAlg":{"type":"string","description":"IPsec authentication algorithm.\n"},"ipsecEncAlg":{"type":"string","description":"IPsec encryption algorithm.\n"},"ipsecLifetime":{"type":"integer","description":"IPsec survival time. Unit: seconds.\n"},"ipsecPfs":{"type":"string","description":"Diffie-Hellman key exchange algorithm.\n"}},"type":"object","required":["ipsecAuthAlg","ipsecEncAlg","ipsecLifetime","ipsecPfs"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getIpv4GatewaysGateway:getIpv4GatewaysGateway":{"properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"enabled":{"type":"boolean","description":"Indicates whether the IPv4 gateway is activated.\n"},"id":{"type":"string","description":"The ID of the Ipv4 Gateway.\n"},"ipv4GatewayDescription":{"type":"string","description":"The description of the IPv4 gateway.\n"},"ipv4GatewayId":{"type":"string","description":"The resource attribute field that represents the resource level 1 ID.\n"},"ipv4GatewayName":{"type":"string","description":"The name of the IPv4 gateway.\n"},"ipv4GatewayRouteTableId":{"type":"string","description":"ID of the route table associated with IPv4 Gateway.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC associated with the IPv4 Gateway.\n"}},"type":"object","required":["createTime","enabled","id","ipv4GatewayDescription","ipv4GatewayId","ipv4GatewayName","ipv4GatewayRouteTableId","status","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getIpv6AddressesAddress:getIpv6AddressesAddress":{"properties":{"associatedInstanceId":{"type":"string","description":"The ID of the instance that is assigned the IPv6 address.\n"},"associatedInstanceType":{"type":"string","description":"The type of the instance that is assigned the IPv6 address.\n"},"createTime":{"type":"string","description":"The time when the IPv6 address was created.\n"},"id":{"type":"string","description":"The ID of the Ipv6 Address.\n"},"ipv6Address":{"type":"string","description":"The address of the Ipv6 Address.\n"},"ipv6AddressId":{"type":"string","description":"The ID of the IPv6 address.\n"},"ipv6AddressName":{"type":"string","description":"The name of the IPv6 address.\n"},"ipv6GatewayId":{"type":"string","description":"The ID of the IPv6 gateway to which the IPv6 address belongs.\n"},"networkType":{"type":"string","description":"The type of communication supported by the IPv6 address. Valid values:`Private` or `Public`. `Private`: communication within the private network. `Public`: communication over the public network\n"},"status":{"type":"string","description":"The status of the IPv6 address. Valid values:`Pending` or `Available`.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the IPv6 address belongs.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which the IPv6 address belongs.\n"}},"type":"object","required":["associatedInstanceId","associatedInstanceType","createTime","id","ipv6Address","ipv6AddressId","ipv6AddressName","ipv6GatewayId","networkType","status","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getIpv6EgressRulesRule:getIpv6EgressRulesRule":{"properties":{"description":{"type":"string","description":"The description of the egress-only rule.\n"},"id":{"type":"string","description":"The ID of the Ipv6 Egress Rule. The value formats as `\u003cipv6_gateway_id\u003e:\u003cipv6_egress_rule_id\u003e`.\n"},"instanceId":{"type":"string","description":"The ID of the instance to which the egress-only rule is applied.\n"},"instanceType":{"type":"string","description":"The type of the instance to which the egress-only rule is applied.\n"},"ipv6EgressRuleId":{"type":"string","description":"The first ID of the resource.\n"},"ipv6EgressRuleName":{"type":"string","description":"The name of the resource.\n"},"ipv6GatewayId":{"type":"string","description":"The ID of the IPv6 gateway.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Available`, `Pending` and `Deleting`.\n"}},"type":"object","required":["description","id","instanceId","instanceType","ipv6EgressRuleId","ipv6EgressRuleName","ipv6GatewayId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getIpv6GatewaysGateway:getIpv6GatewaysGateway":{"properties":{"businessStatus":{"type":"string","description":"The status of the IPv6 gateway. Valid values:`Normal`, `FinancialLocked` and `SecurityLocked`. `Normal`: working as expected. `FinancialLocked`: locked due to overdue payments. `SecurityLocked`: locked due to security reasons.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"description":{"type":"string","description":"The description of the IPv6 gateway.\n"},"expiredTime":{"type":"string","description":"The time when the IPv6 gateway expires.\n"},"id":{"type":"string","description":"The ID of the Ipv6 Gateway.\n"},"instanceChargeType":{"type":"string","description":"The metering method of the IPv6 gateway. Valid values: `PayAsYouGo`.\n"},"ipv6GatewayId":{"type":"string","description":"The first ID of the resource.\n"},"ipv6GatewayName":{"type":"string","description":"The name of the IPv6 gateway.\n"},"spec":{"type":"string","description":"The specification of the IPv6 gateway. Valid values: `Large`, `Medium` and `Small`. `Small` (default): Free Edition. `Medium`: Enterprise Edition . `Large`: Enhanced Enterprise Edition. The throughput capacity of an IPv6 gateway varies based on the edition. For more information, see [Editions of IPv6 gateways](https://www.alibabacloud.com/help/doc-detail/98926.htm).\n"},"status":{"type":"string","description":"The status of the IPv6 gateway. Valid values: `Available`, `Deleting`, `Pending`.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) to which the IPv6 gateway belongs.\n"}},"type":"object","required":["businessStatus","createTime","description","expiredTime","id","instanceChargeType","ipv6GatewayId","ipv6GatewayName","spec","status","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getIpv6InternetBandwidthsBandwidth:getIpv6InternetBandwidthsBandwidth":{"properties":{"bandwidth":{"type":"integer","description":"The amount of Internet bandwidth resources of the IPv6 address, Unit: `Mbit/s`.\n"},"id":{"type":"string","description":"The ID of the Ipv6 Internet Bandwidth.\n"},"internetChargeType":{"type":"string","description":"The metering method of the Internet bandwidth resources of the IPv6 gateway.\n"},"ipv6AddressId":{"type":"string","description":"The ID of the IPv6 address.\n"},"ipv6GatewayId":{"type":"string","description":"The ID of the IPv6 gateway.\n"},"ipv6InternetBandwidthId":{"type":"string","description":"The ID of the Ipv6 Internet Bandwidth.\n"},"paymentType":{"type":"string","description":"The payment type of the resource.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Normal`, `FinancialLocked` and `SecurityLocked`.\n"}},"type":"object","required":["bandwidth","id","internetChargeType","ipv6AddressId","ipv6GatewayId","ipv6InternetBandwidthId","paymentType","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getNatGatewaysGateway:getNatGatewaysGateway":{"properties":{"businessStatus":{"type":"string","description":"The state of the NAT gateway.\n"},"deletionProtection":{"type":"boolean","description":"Indicates whether deletion protection is enabled.\n"},"description":{"type":"string","description":"The description of the NAT gateway.\n"},"ecsMetricEnabled":{"type":"boolean","description":"Indicates whether the traffic monitoring feature is enabled.\n"},"expiredTime":{"type":"string","description":"The time when the NAT gateway expires.\n"},"forwardTableIds":{"type":"array","items":{"type":"string"},"description":"The ID of the DNAT table.\n"},"id":{"type":"string","description":"The ID of the NAT gateway.\n"},"internetChargeType":{"type":"string","description":"The metering method of the NAT gateway.\n"},"ipLists":{"type":"array","items":{"type":"string"},"description":"The ip address of the bind eip.\n"},"name":{"type":"string","description":"Name of the NAT gateway.\n"},"natGatewayId":{"type":"string","description":"The ID of the NAT gateway.\n"},"natGatewayName":{"type":"string","description":"The name of NAT gateway.\n"},"natType":{"type":"string","description":"The nat type of NAT gateway. Valid values `Enhanced` and `Normal`.\n"},"networkType":{"type":"string","description":"(Available in 1.137.0+) Indicates the type of the created NAT gateway. Valid values \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e.\n"},"paymentType":{"type":"string","description":"The payment type of NAT gateway. Valid values `PayAsYouGo` and `Subscription`.\n"},"resourceGroupId":{"type":"string","description":"The resource group id of NAT gateway.\n"},"snatTableIds":{"type":"array","items":{"type":"string"},"description":"The ID of the SNAT table that is associated with the NAT gateway.\n"},"spec":{"type":"string","description":"The specification of the NAT gateway.\n"},"specification":{"type":"string","description":"The specification of NAT gateway. Valid values `Middle`, `Large`, `Small` and `XLarge.1`. Default value is `Small`.\n"},"status":{"type":"string","description":"The status of NAT gateway. Valid values `Available`, `Converting`, `Creating`, `Deleting` and `Modifying`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of NAT gateway.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which the NAT gateway belongs.\n"}},"type":"object","required":["businessStatus","deletionProtection","description","ecsMetricEnabled","expiredTime","forwardTableIds","id","internetChargeType","ipLists","name","natGatewayId","natGatewayName","natType","networkType","paymentType","resourceGroupId","snatTableIds","spec","specification","status","tags","vpcId","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getNatIpCidrsCidr:getNatIpCidrsCidr":{"properties":{"createTime":{"type":"string","description":"The time when the CIDR block was created.\n"},"id":{"type":"string","description":"The ID of the Nat Ip Cidr.\n"},"isDefault":{"type":"boolean","description":"Whether it is the default NAT IP ADDRESS. Valid values:\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: is the default NAT IP ADDRESS. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: it is not the default NAT IP ADDRESS.\n"},"natGatewayId":{"type":"string","description":"The ID of the VPC NAT gateway.\n"},"natIpCidr":{"type":"string","description":"The NAT CIDR block to be created. The CIDR block must meet the following conditions: It must be `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`, or one of their subnets. The subnet mask must be \u003cspan pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\"\u003e`16`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e bits in lengths. To use a public CIDR block as the NAT CIDR block, the VPC to which the VPC NAT gateway belongs must be authorized to use public CIDR blocks. For more information, see [Create a VPC NAT gateway](https://www.alibabacloud.com/help/doc-detail/268230.htm).\n"},"natIpCidrDescription":{"type":"string","description":"NAT IP ADDRESS range to the description of. Length is from \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters, must start with a letter or the Chinese at the beginning, but not at the` http://` Or `https://` at the beginning.\n"},"natIpCidrId":{"type":"string","description":"NAT IP ADDRESS instance ID.\n"},"natIpCidrName":{"type":"string","description":"NAT IP ADDRESS the name of the root directory. Length is from \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters, must start with a letter or the Chinese at the beginning can contain numbers, half a period (.), underscore (_) and dash (-). But do not start with `http://` or `https://` at the beginning.\n"},"status":{"type":"string","description":"The status of the CIDR block of the NAT gateway. If the value is `Available`, the CIDR block is available.\n"}},"type":"object","required":["createTime","id","isDefault","natGatewayId","natIpCidr","natIpCidrDescription","natIpCidrId","natIpCidrName","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getNatIpsIp:getNatIpsIp":{"properties":{"id":{"type":"string","description":"The ID of the Nat Ip.\n"},"isDefault":{"type":"boolean","description":"Indicates whether the BGP Group is the default NAT IP ADDRESS. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: is the default NAT IP ADDRESS. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: it is not the default NAT IP ADDRESS.\n"},"natGatewayId":{"type":"string","description":"The ID of the Virtual Private Cloud (VPC) NAT gateway to which the NAT IP address belongs.\n"},"natIp":{"type":"string","description":"The NAT IP address that is queried.\n"},"natIpCidr":{"type":"string","description":"The CIDR block to which the NAT IP address belongs.\n"},"natIpDescription":{"type":"string","description":"The description of the NAT IP address.\n"},"natIpId":{"type":"string","description":"The ID of the NAT IP address.\n"},"natIpName":{"type":"string","description":"The name of the NAT IP address.\n"},"status":{"type":"string","description":"The status of the NAT IP address. Valid values: `Available`, `Deleting` and `Creating`.\n"}},"type":"object","required":["id","isDefault","natGatewayId","natIp","natIpCidr","natIpDescription","natIpId","natIpName","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getNetworkAclsAcl:getNetworkAclsAcl":{"properties":{"description":{"type":"string","description":"Description of network ACL information.\n"},"egressAclEntries":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/getNetworkAclsAclEgressAclEntry:getNetworkAclsAclEgressAclEntry"},"description":"Output direction rule information.\n"},"id":{"type":"string","description":"The ID of the Network Acl.\n"},"ingressAclEntries":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/getNetworkAclsAclIngressAclEntry:getNetworkAclsAclIngressAclEntry"},"description":"Entry direction rule information.\n"},"networkAclId":{"type":"string","description":"The first ID of the resource.\n"},"networkAclName":{"type":"string","description":"The name of the network ACL.\n"},"resources":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/getNetworkAclsAclResource:getNetworkAclsAclResource"},"description":"The associated resource.\n"},"status":{"type":"string","description":"The state of the network ACL.\n"},"vpcId":{"type":"string","description":"The ID of the associated VPC.\n"}},"type":"object","required":["description","egressAclEntries","id","ingressAclEntries","networkAclId","networkAclName","resources","status","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getNetworkAclsAclEgressAclEntry:getNetworkAclsAclEgressAclEntry":{"properties":{"description":{"type":"string","description":"Give the description information of the direction rule.\n"},"destinationCidrIp":{"type":"string","description":"The destination address segment.\n"},"networkAclEntryName":{"type":"string","description":"The name of the entry for the direction rule.\n"},"policy":{"type":"string","description":"The  authorization policy.\n"},"port":{"type":"string","description":"Destination port range.\n"},"protocol":{"type":"string","description":"Transport  layer protocol.\n"}},"type":"object","required":["description","destinationCidrIp","networkAclEntryName","policy","port","protocol"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getNetworkAclsAclIngressAclEntry:getNetworkAclsAclIngressAclEntry":{"properties":{"description":{"type":"string","description":"Description of the entry direction rule.\n"},"networkAclEntryName":{"type":"string","description":"The name of the entry direction rule entry.\n"},"policy":{"type":"string","description":"The authorization policy.\n"},"port":{"type":"string","description":"Source port range.\n"},"protocol":{"type":"string","description":"Transport layer protocol.\n"},"sourceCidrIp":{"type":"string","description":"The source address field.\n"}},"type":"object","required":["description","networkAclEntryName","policy","port","protocol","sourceCidrIp"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getNetworkAclsAclResource:getNetworkAclsAclResource":{"properties":{"resourceId":{"type":"string","description":"The ID of the associated resource.\n"},"resourceType":{"type":"string","description":"The type of the associated resource.\n"},"status":{"type":"string","description":"The state of the associated resource.\n"}},"type":"object","required":["resourceId","resourceType","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getNetworksVpc:getNetworksVpc":{"properties":{"cidrBlock":{"type":"string","description":"Filter results by a specific CIDR block. For example: \"172.16.0.0/12\".\n"},"creationTime":{"type":"string","description":"Time of creation.\n"},"description":{"type":"string","description":"Description of the VPC\n"},"dhcpOptionsSetId":{"type":"string","description":"The ID of dhcp options set.\n"},"dhcpOptionsSetStatus":{"type":"string","description":"The status of the DHCP options set. Valid values: `Available`, `InUse`, `Deleted`, `Pending`.\n"},"dnsHostnameStatus":{"type":"string","description":"Indicates whether the Domain Name System (DNS) feature is enabled.\n"},"id":{"type":"string","description":"ID of the VPC.\n"},"ipv6CidrBlock":{"type":"string","description":"The IPv6 CIDR block of the VPC.\n"},"isDefault":{"type":"boolean","description":"Indicate whether the VPC is the default one in the specified region.\n"},"regionId":{"type":"string","description":"ID of the region where the VPC is located.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which VPC belongs.\n"},"routeTableId":{"type":"string","description":"Route table ID of the VRouter.\n"},"routerId":{"type":"string","description":"The ID of the VRouter.\n"},"secondaryCidrBlocks":{"type":"array","items":{"type":"string"},"description":"A list of secondary IPv4 CIDR blocks of the VPC.\n"},"status":{"type":"string","description":"Filter results by a specific status. Valid value are `Pending` and `Available`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"userCidrs":{"type":"array","items":{"type":"string"},"description":"A list of user CIDRs.\n"},"vpcId":{"type":"string","description":"ID of the VPC.\n"},"vpcName":{"type":"string","description":"The name of the VPC.\n"},"vrouterId":{"type":"string","description":"ID of the VRouter.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"List of vSwitch IDs in the specified VPC\n"}},"type":"object","required":["cidrBlock","creationTime","description","dhcpOptionsSetId","dhcpOptionsSetStatus","dnsHostnameStatus","id","ipv6CidrBlock","isDefault","regionId","resourceGroupId","routeTableId","routerId","secondaryCidrBlocks","status","tags","userCidrs","vpcId","vpcName","vrouterId","vswitchIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getPbrRouteEntriesEntry:getPbrRouteEntriesEntry":{"properties":{"createTime":{"type":"string","description":"The creation time of the VPN Pbr Route Entry.\n"},"id":{"type":"string","description":"The id of the vpn pbr route entry. The value formats as `\u003cvpn_gateway_id\u003e:\u003cnext_hop\u003e:\u003croute_source\u003e:\u003croute_dest\u003e`.\n"},"nextHop":{"type":"string","description":"The next hop of the policy-based route.\n"},"routeDest":{"type":"string","description":"The destination CIDR block of the policy-based route.\n"},"routeSource":{"type":"string","description":"The source CIDR block of the policy-based route.\n"},"status":{"type":"string","description":"The status of the VPN Pbr Route Entry.\n"},"vpnGatewayId":{"type":"string","description":"The ID of the VPN gateway.\n"},"weight":{"type":"integer","description":"The weight of the policy-based route. Valid values: 0 and 100.\n"}},"type":"object","required":["createTime","id","nextHop","routeDest","routeSource","status","vpnGatewayId","weight"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getPeerConnectionsConnection:getPeerConnectionsConnection":{"properties":{"acceptingAliUid":{"type":"integer","description":"The ID of the Alibaba Cloud account (primary account) of the receiving end of the VPC peering connection to be created.\n"},"acceptingRegionId":{"type":"string","description":"The region ID of the recipient of the VPC peering connection to be created.\n"},"acceptingVpcId":{"type":"string","description":"The VPC ID of the receiving end of the VPC peer connection.\n"},"bandwidth":{"type":"integer","description":"The bandwidth of the VPC peering connection to be modified. Unit: Mbps.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"description":{"type":"string","description":"The description of the VPC peer connection to be created.\n"},"id":{"type":"string","description":"The ID of the PeerConnection.\n"},"peerConnectionId":{"type":"string","description":"The first ID of the resource.\n"},"peerConnectionName":{"type":"string","description":"The name of the resource.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Accepting`, `Activated`, `Creating`, `Deleted`, `Deleting`, `Expired`, `Rejected`, `Updating`.\n"},"vpcId":{"type":"string","description":"The ID of the requester VPC.\n"}},"type":"object","required":["acceptingAliUid","acceptingRegionId","acceptingVpcId","bandwidth","createTime","description","id","peerConnectionId","peerConnectionName","status","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getPrefixListsList:getPrefixListsList":{"properties":{"createTime":{"type":"string","description":"The time when the prefix list was created.\n"},"entrys":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/getPrefixListsListEntry:getPrefixListsListEntry"},"description":"The CIDR address block list of the prefix list.\n"},"id":{"type":"string","description":"The ID of the Prefix List.\n"},"ipVersion":{"type":"string","description":"The IP version of the prefix list.\n"},"maxEntries":{"type":"integer","description":"The maximum number of entries for CIDR address blocks in the prefix list.\n"},"prefixListDescription":{"type":"string","description":"The description of the prefix list.\n"},"prefixListId":{"type":"string","description":"The ID of the query Prefix List.\n"},"prefixListName":{"type":"string","description":"The name of the prefix list.\n"},"shareType":{"type":"string","description":"The share type of the prefix list.\n"}},"type":"object","required":["createTime","entrys","id","ipVersion","maxEntries","prefixListDescription","prefixListId","prefixListName","shareType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getPrefixListsListEntry:getPrefixListsListEntry":{"properties":{"cidr":{"type":"string","description":"The CIDR address block of the prefix list.\n"},"description":{"type":"string","description":"The description of the cidr entry.\n"}},"type":"object","required":["cidr","description"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getPublicIpAddressPoolCidrBlocksBlock:getPublicIpAddressPoolCidrBlocksBlock":{"properties":{"cidrBlock":{"type":"string","description":"The CIDR block.\n"},"createTime":{"type":"string","description":"The time when the CIDR block was created. The time is displayed in YYYY-MM-DDThh:mm:ssZ format.\n"},"id":{"type":"string","description":"The ID of the Public Ip Address Pool Cidr Block.\n"},"publicIpAddressPoolId":{"type":"string","description":"The ID of the Vpc Public IP address pool.\n"},"status":{"type":"string","description":"The status of the CIDR block in the Vpc Public IP address pool. Valid values: `Created`, `Modifying`, `Deleting`.\n"},"totalIpNum":{"type":"integer","description":"The number of occupied IP addresses in the CIDR block.\n"},"usedIpNum":{"type":"integer","description":"The total number of available IP addresses in the CIDR block.\n"}},"type":"object","required":["cidrBlock","createTime","id","publicIpAddressPoolId","status","totalIpNum","usedIpNum"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getPublicIpAddressPoolsPool:getPublicIpAddressPoolsPool":{"properties":{"createTime":{"type":"string","description":"The time when the Vpc Public Ip Address Pool was created. The time is displayed in YYYY-MM-DDThh:mm:ssZ format.\n"},"description":{"type":"string","description":"The description of the Vpc Public Ip Address Pool.\n"},"id":{"type":"string","description":"The ID of the Vpc Public Ip Address Pool.\n"},"ipAddressRemaining":{"type":"boolean","description":"Indicates whether the Vpc Public Ip Address Pool has idle IP addresses.\n"},"isp":{"type":"string","description":"The Internet service provider.\n"},"publicIpAddressPoolId":{"type":"string","description":"The ID of the Vpc Public Ip Address Pool.\n"},"publicIpAddressPoolName":{"type":"string","description":"The name of the Vpc Public Ip Address Pool.\n"},"regionId":{"type":"string","description":"The region ID of the Vpc Public Ip Address Pool.\n"},"status":{"type":"string","description":"The status of the Vpc Public Ip Address Pool.\n"},"totalIpNum":{"type":"integer","description":"The total number of IP addresses in the Vpc Public Ip Address Pool.\n"},"usedIpNum":{"type":"integer","description":"The number of occupied IP addresses in the Vpc Public Ip Address Pool.\n"},"userType":{"type":"string","description":"The user type.\n"}},"type":"object","required":["createTime","description","id","ipAddressRemaining","isp","publicIpAddressPoolId","publicIpAddressPoolName","regionId","status","totalIpNum","usedIpNum","userType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getRouteEntriesEntry:getRouteEntriesEntry":{"properties":{"cidrBlock":{"type":"string","description":"The destination CIDR block of the route entry.\n"},"instanceId":{"type":"string","description":"The instance ID of the next hop.\n"},"nextHopType":{"type":"string","description":"The type of the next hop.\n"},"routeTableId":{"type":"string","description":"The ID of the router table to which the route entry belongs.\n"},"status":{"type":"string","description":"The status of the route entry.\n"},"type":{"type":"string","description":"The type of the route entry.\n"}},"type":"object","required":["cidrBlock","instanceId","nextHopType","routeTableId","status","type"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getRouteTablesTable:getRouteTablesTable":{"properties":{"description":{"type":"string","description":"The description of the route table instance.\n"},"id":{"type":"string","description":"ID of the Route Table.\n"},"name":{"type":"string","description":"Name of the route table.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which route tables belongs.\n"},"routeTableId":{"type":"string","description":"The route table id.\n"},"routeTableName":{"type":"string","description":"The route table name.\n"},"routeTableType":{"type":"string","description":"The route table type.\n"},"routerId":{"type":"string","description":"The router ID.\n"},"routerType":{"type":"string","description":"The route type of route table. Valid values: `VRouter` and `VBR`.\n"},"status":{"type":"string","description":"The status of resource. Valid values: `Available` and `Pending`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"Vpc id of the route table.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"A list of vswitch id.\n"}},"type":"object","required":["description","id","name","resourceGroupId","routeTableId","routeTableName","routeTableType","routerId","routerType","status","tags","vpcId","vswitchIds"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getRouterInterfacesInterface:getRouterInterfacesInterface":{"properties":{"accessPointId":{"type":"string","description":"ID of the access point used by the VBR.\n"},"creationTime":{"type":"string","description":"Router interface creation time.\n"},"description":{"type":"string","description":"Router interface description.\n"},"healthCheckSourceIp":{"type":"string","description":"Source IP address used to perform health check on the physical connection.\n"},"healthCheckTargetIp":{"type":"string","description":"Destination IP address used to perform health check on the physical connection.\n"},"id":{"type":"string","description":"Router interface ID.\n"},"name":{"type":"string","description":"Router interface name.\n"},"oppositeInterfaceId":{"type":"string","description":"ID of the peer router interface.\n"},"oppositeInterfaceOwnerId":{"type":"string","description":"Account ID of the owner of the peer router interface.\n"},"oppositeRegionId":{"type":"string","description":"Peer router region ID.\n"},"oppositeRouterId":{"type":"string","description":"Peer router ID.\n"},"oppositeRouterType":{"type":"string","description":"Router type in the peer region. Possible values: `VRouter` and `VBR`.\n"},"role":{"type":"string","description":"Role of the router interface. Valid values are `InitiatingSide` (connection initiator) and \n`AcceptingSide` (connection receiver). The value of this parameter must be `InitiatingSide` if the \u003cspan pulumi-lang-nodejs=\"`routerType`\" pulumi-lang-dotnet=\"`RouterType`\" pulumi-lang-go=\"`routerType`\" pulumi-lang-python=\"`router_type`\" pulumi-lang-yaml=\"`routerType`\" pulumi-lang-java=\"`routerType`\"\u003e`router_type`\u003c/span\u003e is set to `VBR`.\n"},"routerId":{"type":"string","description":"ID of the VRouter located in the local region.\n"},"routerType":{"type":"string","description":"Router type in the local region. Valid values are `VRouter` and `VBR` (physical connection).\n"},"specification":{"type":"string","description":"Specification of the link, such as `Small.1` (10Mb), `Middle.1` (100Mb), `Large.2` (2Gb), ...etc.\n"},"status":{"type":"string","description":"Expected status. Valid values are `Active`, `Inactive` and `Idle`.\n"},"vpcId":{"type":"string","description":"ID of the VPC that owns the router in the local region.\n"}},"type":"object","required":["accessPointId","creationTime","description","healthCheckSourceIp","healthCheckTargetIp","id","name","oppositeInterfaceId","oppositeInterfaceOwnerId","oppositeRegionId","oppositeRouterId","oppositeRouterType","role","routerId","routerType","specification","status","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getSnatEntriesEntry:getSnatEntriesEntry":{"properties":{"id":{"type":"string","description":"The ID of the Snat Entry.\n"},"snatEntryId":{"type":"string","description":"The ID of snat entry.\n"},"snatEntryName":{"type":"string","description":"The name of snat entry.\n"},"snatIp":{"type":"string","description":"The public IP of the Snat Entry.\n"},"sourceCidr":{"type":"string","description":"The source CIDR block of the Snat Entry.\n"},"sourceVswitchId":{"type":"string","description":"The source vswitch ID.\n"},"status":{"type":"string","description":"The status of the Snat Entry. Valid values: `Available`, `Deleting` and `Pending`.\n"}},"type":"object","required":["id","snatEntryId","snatEntryName","snatIp","sourceCidr","sourceVswitchId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getSslVpnClientCertsCert:getSslVpnClientCertsCert":{"properties":{"createTime":{"type":"string","description":"The time of creation.\n"},"endTime":{"type":"integer","description":"The expiration time of the client certificate.\n"},"id":{"type":"string","description":"ID of the SSL-VPN client certificate.\n"},"name":{"type":"string","description":"The name of the SSL-VPN client certificate.\n"},"sslVpnServerId":{"type":"string","description":"Use the SSL-VPN server ID as the search key.\n"},"status":{"type":"string","description":"The status of the client certificate. valid value:expiring-soon, normal, expired.\n"}},"type":"object","required":["createTime","endTime","id","name","sslVpnServerId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getSslVpnServersServer:getSslVpnServersServer":{"properties":{"cipher":{"type":"string","description":"The encryption algorithm used.\n"},"clientIpPool":{"type":"string","description":"The IP address pool of the client.\n"},"compress":{"type":"boolean","description":"Whether to compress.\n"},"connections":{"type":"integer","description":"The number of current connections.\n"},"createTime":{"type":"string","description":"The time of creation.\n"},"id":{"type":"string","description":"The ID of the SSL-VPN server.\n"},"internetIp":{"type":"string","description":"The public IP.\n"},"localSubnet":{"type":"string","description":"The local subnet of the VPN connection.\n"},"maxConnections":{"type":"integer","description":"The maximum number of connections.\n"},"name":{"type":"string","description":"The name of the SSL-VPN server.\n"},"port":{"type":"integer","description":"The port used by the SSL-VPN server.\n"},"proto":{"type":"string","description":"The protocol used by the SSL-VPN server.\n"},"vpnGatewayId":{"type":"string","description":"Use the VPN gateway ID as the search key.\n"}},"type":"object","required":["cipher","clientIpPool","compress","connections","createTime","id","internetIp","localSubnet","maxConnections","name","port","proto","vpnGatewayId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getSwitchesVswitch:getSwitchesVswitch":{"properties":{"availableIpAddressCount":{"type":"integer","description":"The available ip address count of the vSwitch.\n"},"cidrBlock":{"type":"string","description":"Filter results by a specific CIDR block. For example: \"172.16.0.0/12\".\n"},"creationTime":{"type":"string","description":"Time of creation.\n"},"description":{"type":"string","description":"Description of the vSwitch.\n"},"id":{"type":"string","description":"ID of the vSwitch.\n"},"ipv6CidrBlock":{"type":"string","description":"The IPv6 CIDR block of the switch.\n"},"isDefault":{"type":"boolean","description":"Indicate whether the vSwitch is created by the system.\n"},"name":{"type":"string","description":"Name of the vSwitch.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which VSWitch belongs.\n"},"routeTableId":{"type":"string","description":"The route table ID of the vSwitch.\n"},"status":{"type":"string","description":"The status of the vSwitch. Valid values: `Available` and `Pending`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"ID of the VPC that owns the vSwitch.\n"},"vswitchId":{"type":"string","description":"ID of the vSwitch.\n"},"vswitchName":{"type":"string","description":"The name of the vSwitch.\n"},"zoneId":{"type":"string","description":"The availability zone of the vSwitch.\n"}},"type":"object","required":["availableIpAddressCount","cidrBlock","creationTime","description","id","ipv6CidrBlock","isDefault","name","resourceGroupId","routeTableId","status","tags","vpcId","vswitchId","vswitchName","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getTrafficMirrorFilterEgressRulesRule:getTrafficMirrorFilterEgressRulesRule":{"properties":{"destinationCidrBlock":{"type":"string","description":"The destination CIDR block of the outbound traffic.\n"},"destinationPortRange":{"type":"string","description":"The destination port range of the outbound traffic.\n"},"id":{"type":"string","description":"The ID of the Traffic Mirror Filter Egress Rule.\n"},"priority":{"type":"integer","description":"The priority of the outbound rule. A smaller value indicates a higher priority. The maximum value is \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e, which indicates that you can configure at most 10 inbound rules for a filter.\n"},"protocol":{"type":"string","description":"The transport protocol used by outbound traffic that needs to be mirrored. Valid values: `ALL`, `ICMP`, `TCP`, `UDP`.\n"},"ruleAction":{"type":"string","description":"The collection policy of the inbound rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e: collects network traffic. \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e: does not collect network traffic.\n"},"sourceCidrBlock":{"type":"string","description":"The source CIDR block of the outbound traffic.\n"},"sourcePortRange":{"type":"string","description":"The source port range of the outbound traffic.\n"},"status":{"type":"string","description":"The status of the resource. Valid values:`Creating`, `Created`, `Modifying` and `Deleting`.\n"},"trafficMirrorFilterId":{"type":"string","description":"The ID of the filter associated with the outbound rule.\n"},"trafficMirrorFilterRuleId":{"type":"string","description":"The first ID of the resource.\n"}},"type":"object","required":["destinationCidrBlock","destinationPortRange","id","priority","protocol","ruleAction","sourceCidrBlock","sourcePortRange","status","trafficMirrorFilterId","trafficMirrorFilterRuleId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getTrafficMirrorFilterIngressRulesRule:getTrafficMirrorFilterIngressRulesRule":{"properties":{"destinationCidrBlock":{"type":"string","description":"The destination CIDR block of the inbound traffic.\n"},"destinationPortRange":{"type":"string","description":"The destination port range of the inbound traffic.\n"},"id":{"type":"string","description":"The ID of the Traffic Mirror Filter Egress Rule.\n"},"priority":{"type":"integer","description":"The priority of the inbound rule. A smaller value indicates a higher priority. The maximum value is \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e, which indicates that you can configure at most 10 inbound rules for a filter.\n"},"protocol":{"type":"string","description":"The transport protocol used by inbound traffic that needs to be mirrored. Valid values: `ALL`, `ICMP`, `TCP`, `UDP`.\n"},"ruleAction":{"type":"string","description":"The collection policy of the inbound rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e: collects network traffic. \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e: does not collect network traffic.\n"},"sourceCidrBlock":{"type":"string","description":"The source CIDR block of the inbound traffic.\n"},"sourcePortRange":{"type":"string","description":"The source port range of the inbound traffic.\n"},"status":{"type":"string","description":"The status of the resource. Valid values:`Creating`, `Created`, `Modifying` and `Deleting`.\n"},"trafficMirrorFilterId":{"type":"string","description":"The ID of the filter associated with the inbound rule.\n"},"trafficMirrorFilterRuleId":{"type":"string","description":"The first ID of the resource.\n"}},"type":"object","required":["destinationCidrBlock","destinationPortRange","id","priority","protocol","ruleAction","sourceCidrBlock","sourcePortRange","status","trafficMirrorFilterId","trafficMirrorFilterRuleId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getTrafficMirrorFiltersFilter:getTrafficMirrorFiltersFilter":{"properties":{"id":{"type":"string","description":"The ID of the Traffic Mirror Filter.\n"},"status":{"type":"string","description":"The state of the filter. Valid values:`Creating`, `Created`, `Modifying` and `Deleting`. `Creating`: The filter is being created. `Created`: The filter is created. `Modifying`: The filter is being modified. `Deleting`: The filter is being deleted.\n"},"trafficMirrorFilterDescription":{"type":"string","description":"The description of the filter.\n"},"trafficMirrorFilterId":{"type":"string","description":"The ID of the filter.\n"},"trafficMirrorFilterName":{"type":"string","description":"The name of the filter. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain digits, periods (.), underscores (_), and hyphens (-). It must start with a letter and cannot start with `http://` or `https://`.\n"}},"type":"object","required":["id","status","trafficMirrorFilterDescription","trafficMirrorFilterId","trafficMirrorFilterName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getTrafficMirrorSessionsSession:getTrafficMirrorSessionsSession":{"properties":{"enabled":{"type":"boolean","description":"Indicates whether traffic mirror sessions are enabled. default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"id":{"type":"string","description":"The ID of the Traffic Mirror Session.\n"},"packetLength":{"type":"integer","description":"The maximum transmission unit (MTU).\n"},"priority":{"type":"integer","description":"The priority of the traffic mirror session. A smaller value indicates a higher priority.\n"},"status":{"type":"string","description":"The state of the traffic mirror session. Valid values: `Creating`, `Created`, `Modifying` and `Deleting`.\n"},"trafficMirrorFilterId":{"type":"string","description":"The ID of the filter.\n"},"trafficMirrorSessionBusinessStatus":{"type":"string","description":"The state of the traffic mirror session. Valid values: `Normal` or `FinancialLocked`. `Normal`: working as expected. `FinancialLocked`: locked due to overdue payments.\n"},"trafficMirrorSessionDescription":{"type":"string","description":"The description of the traffic mirror session.\n"},"trafficMirrorSessionId":{"type":"string","description":"The first ID of the resource.\n"},"trafficMirrorSessionName":{"type":"string","description":"The name of the traffic mirror session.\n"},"trafficMirrorSourceIds":{"type":"array","items":{"type":"string"},"description":"The ID of the mirror source.\n"},"trafficMirrorTargetId":{"type":"string","description":"The ID of the mirror destination. You can specify only an ENI or a Server Load Balancer (SLB) instance as a mirror destination.\n"},"trafficMirrorTargetType":{"type":"string","description":"The type of the mirror destination. Valid values: `NetworkInterface` or `SLB`. `NetworkInterface`: an ENI. `SLB`: an internal-facing SLB instance\n"},"virtualNetworkId":{"type":"integer","description":"You can specify VNIs to distinguish different mirrored traffic.\n"}},"type":"object","required":["enabled","id","packetLength","priority","status","trafficMirrorFilterId","trafficMirrorSessionBusinessStatus","trafficMirrorSessionDescription","trafficMirrorSessionId","trafficMirrorSessionName","trafficMirrorSourceIds","trafficMirrorTargetId","trafficMirrorTargetType","virtualNetworkId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpc/getVpcFlowLogsLog:getVpcFlowLogsLog":{"properties":{"description":{"type":"string","description":"The Description of flow log.\n"},"flowLogId":{"type":"string","description":"The flow log ID.\n"},"flowLogName":{"type":"string","description":"The flow log name.\n"},"id":{"type":"string","description":"The ID of the Flow Log.\n"},"logStoreName":{"type":"string","description":"The log store name.\n"},"projectName":{"type":"string","description":"The project name.\n"},"resourceId":{"type":"string","description":"The resource id.\n"},"resourceType":{"type":"string","description":"The resource type.\n"},"status":{"type":"string","description":"The status of flow log.\n"},"trafficType":{"type":"string","description":"The traffic type.\n"}},"type":"object","required":["description","flowLogId","flowLogName","id","logStoreName","projectName","resourceId","resourceType","status","trafficType"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/ConnectionBgpConfig:ConnectionBgpConfig":{"properties":{"enable":{"type":"boolean","description":"specifies whether to enable BGP. Valid values: true and false (default).\n"},"localAsn":{"type":"string","description":"the autonomous system number (ASN) on the Alibaba Cloud side. \nValid values: 1 to 4294967295. Default value: 45104. You can enter a value in two segments separated by a period (.).\nEach segment is 16 bits in length. Enter the number in each segment in decimal format.\nFor example, if you enter 123.456, the ASN is 8061384. The ASN is calculated by using the following formula: 123 × 65536 + 456 = 8061384.\n"},"localBgpIp":{"type":"string","description":"the BGP address on the Alibaba Cloud side. It must be an IP address that falls within the CIDR block of the IPsec tunnel.\n"},"status":{"type":"string","description":"The negotiation status of Tunnel.\n"},"tunnelCidr":{"type":"string","description":"The CIDR block of the IPsec tunnel. The CIDR block must belong to 169.254.0.0/16 and the subnet mask is 30 bits in length.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enable","localAsn","localBgpIp","status","tunnelCidr"]}}},"alicloud:vpn/ConnectionHealthCheckConfig:ConnectionHealthCheckConfig":{"properties":{"dip":{"type":"string","description":"the destination IP address configured for health checks.\n"},"enable":{"type":"boolean","description":"specifies whether to enable health checks. Valid values: true and false. Default value: false.\n"},"interval":{"type":"integer","description":"the time interval of health check retries. Unit: seconds. Default value: 3.\n"},"retry":{"type":"integer","description":"the maximum number of health check retries. Default value: 3.\n"},"sip":{"type":"string","description":"the source IP address that is used for health checks.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dip","enable","interval","retry","sip"]}}},"alicloud:vpn/ConnectionIkeConfig:ConnectionIkeConfig":{"properties":{"ikeAuthAlg":{"type":"string","description":"the authentication algorithm that is used in Phase 1 negotiations. Valid values: md5, sha1, sha2\n"},"ikeEncAlg":{"type":"string","description":"the encryption algorithm that is used in Phase 1 negotiations. Valid values: aes, aes192, aes256, des, and 3des. Default value: aes.\n"},"ikeLifetime":{"type":"integer","description":"the SA lifetime as a result of Phase 1 negotiations. Unit: seconds. Valid values: 0 to 86400. Default value: 86400.\n"},"ikeLocalId":{"type":"string","description":"the identifier of the VPN gateway. It can contain at most 100 characters. The default value is the IP address of the VPN gateway.\n"},"ikeMode":{"type":"string","description":"the negotiation mode of IKE. Valid values: main and aggressive. Default value: main.\n- main: This mode offers higher security during negotiations.\n- aggressive: This mode supports faster negotiations and a higher success rate.\n"},"ikePfs":{"type":"string","description":"the Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Valid values: group1, group2, group5, and group14. Default value: group2.\n"},"ikeRemoteId":{"type":"string","description":"the identifier of the customer gateway. It can contain at most 100 characters. The default value is the IP address of the customer gateway.\n"},"ikeVersion":{"type":"string","description":"the version of the Internet Key Exchange (IKE) protocol. Valid values: ikev1 and ikev2. Default value: ikev1.\nCompared with IKEv1, IKEv2 simplifies the security association (SA) negotiation process and provides better support for scenarios with multiple CIDR blocks.\n"},"psk":{"type":"string","description":"the pre-shared key that is used for identity authentication between the VPN gateway and the on-premises data center. The key must be 1 to 100 characters in length and can contain digits, letters, and the following special characters: ~!\\`@#$%^\u0026*()_-+={}[]|;:',.\u003c\u003e/? If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the DescribeVpnConnection operation to query the pre-shared key that is automatically generated by the system.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ikeAuthAlg","ikeEncAlg","ikeLifetime","ikeLocalId","ikeMode","ikePfs","ikeRemoteId","ikeVersion","psk"]}}},"alicloud:vpn/ConnectionIpsecConfig:ConnectionIpsecConfig":{"properties":{"ipsecAuthAlg":{"type":"string","description":"the authentication algorithm that is used in Phase 2 negotiations. Valid values: md5, sha1, sha256, sha384, and sha512. Default value: md5.\n"},"ipsecEncAlg":{"type":"string","description":"the encryption algorithm that is used in Phase 2 negotiations. Valid values: aes, aes192, aes256, des, and 3des. Default value: aes.\n"},"ipsecLifetime":{"type":"integer","description":"the SA lifetime that is determined by Phase 2 negotiations. Unit: seconds. Valid values: 0 to 86400. Default value: 86400.\n"},"ipsecPfs":{"type":"string","description":"the DH key exchange algorithm that is used in Phase 2 negotiations. Valid values: disabled, group1, group2, group5, and group14. Default value: group2.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipsecAuthAlg","ipsecEncAlg","ipsecLifetime","ipsecPfs"]}}},"alicloud:vpn/ConnectionTunnelOptionsSpecification:ConnectionTunnelOptionsSpecification":{"properties":{"customerGatewayId":{"type":"string","description":"The ID of the customer gateway in Tunnel.\n","willReplaceOnChanges":true},"enableDpd":{"type":"boolean","description":"Wether enable Dpd detection.\n"},"enableNatTraversal":{"type":"boolean","description":"enable nat traversal.\n"},"internetIp":{"type":"string","description":"The local internet IP in Tunnel.\n"},"role":{"type":"string","description":"The role of Tunnel.\n"},"state":{"type":"string","description":"The state of Tunnel.\n"},"status":{"type":"string","description":"The negotiation status of Tunnel.\n"},"tunnelBgpConfig":{"$ref":"#/types/alicloud:vpn/ConnectionTunnelOptionsSpecificationTunnelBgpConfig:ConnectionTunnelOptionsSpecificationTunnelBgpConfig","description":"The bgp config of Tunnel. See \u003cspan pulumi-lang-nodejs=\"`tunnelBgpConfig`\" pulumi-lang-dotnet=\"`TunnelBgpConfig`\" pulumi-lang-go=\"`tunnelBgpConfig`\" pulumi-lang-python=\"`tunnel_bgp_config`\" pulumi-lang-yaml=\"`tunnelBgpConfig`\" pulumi-lang-java=\"`tunnelBgpConfig`\"\u003e`tunnel_bgp_config`\u003c/span\u003e below.\n"},"tunnelId":{"type":"string","description":"The tunnel ID of IPsec-VPN connection.\n"},"tunnelIkeConfig":{"$ref":"#/types/alicloud:vpn/ConnectionTunnelOptionsSpecificationTunnelIkeConfig:ConnectionTunnelOptionsSpecificationTunnelIkeConfig","description":"The configuration of Phase 1 negotiations in Tunnel. See \u003cspan pulumi-lang-nodejs=\"`tunnelIkeConfig`\" pulumi-lang-dotnet=\"`TunnelIkeConfig`\" pulumi-lang-go=\"`tunnelIkeConfig`\" pulumi-lang-python=\"`tunnel_ike_config`\" pulumi-lang-yaml=\"`tunnelIkeConfig`\" pulumi-lang-java=\"`tunnelIkeConfig`\"\u003e`tunnel_ike_config`\u003c/span\u003e below.\n"},"tunnelIpsecConfig":{"$ref":"#/types/alicloud:vpn/ConnectionTunnelOptionsSpecificationTunnelIpsecConfig:ConnectionTunnelOptionsSpecificationTunnelIpsecConfig","description":"IPsec configuration in Tunnel. See \u003cspan pulumi-lang-nodejs=\"`tunnelIpsecConfig`\" pulumi-lang-dotnet=\"`TunnelIpsecConfig`\" pulumi-lang-go=\"`tunnelIpsecConfig`\" pulumi-lang-python=\"`tunnel_ipsec_config`\" pulumi-lang-yaml=\"`tunnelIpsecConfig`\" pulumi-lang-java=\"`tunnelIpsecConfig`\"\u003e`tunnel_ipsec_config`\u003c/span\u003e below.\n"},"zoneNo":{"type":"string","description":"The zoneNo of tunnel.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["internetIp","role","state","status","tunnelId","zoneNo"]}}},"alicloud:vpn/ConnectionTunnelOptionsSpecificationTunnelBgpConfig:ConnectionTunnelOptionsSpecificationTunnelBgpConfig":{"properties":{"bgpStatus":{"type":"string","description":"Whether BGP function is turned on.\n"},"localAsn":{"type":"string"},"localBgpIp":{"type":"string"},"peerAsn":{"type":"string","description":"Peer asn.\n"},"peerBgpIp":{"type":"string","description":"Peer bgp ip.\n"},"tunnelCidr":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["bgpStatus","peerAsn","peerBgpIp"]}}},"alicloud:vpn/ConnectionTunnelOptionsSpecificationTunnelIkeConfig:ConnectionTunnelOptionsSpecificationTunnelIkeConfig":{"properties":{"ikeAuthAlg":{"type":"string"},"ikeEncAlg":{"type":"string"},"ikeLifetime":{"type":"integer"},"ikeMode":{"type":"string"},"ikePfs":{"type":"string"},"ikeVersion":{"type":"string"},"localId":{"type":"string","description":"The identifier of the tunnel on the Alibaba Cloud side, which is used in Phase 1 negotiations. It can contain at most 100 characters. The default value is the IP address of the tunnel.\nLocalId supports fully qualified domain names (FQDNs). If you use an FQDN, we recommend that you set the negotiation mode to aggressive.\n"},"psk":{"type":"string"},"remoteId":{"type":"string","description":"The identifier of the tunnel peer, which is used in Phase 1 negotiations. It can contain at most 100 characters. The default value is the IP address of the customer gateway that is associated with the tunnel.\nRemoteId supports FQDNs. If you use an FQDN, we recommend that you set the negotiation mode to aggressive.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["localId","remoteId"]}}},"alicloud:vpn/ConnectionTunnelOptionsSpecificationTunnelIpsecConfig:ConnectionTunnelOptionsSpecificationTunnelIpsecConfig":{"properties":{"ipsecAuthAlg":{"type":"string"},"ipsecEncAlg":{"type":"string"},"ipsecLifetime":{"type":"integer"},"ipsecPfs":{"type":"string"}},"type":"object"},"alicloud:vpn/GatewayVpnAttachmentBgpConfig:GatewayVpnAttachmentBgpConfig":{"properties":{"enable":{"type":"boolean","description":"Whether to enable the BGP function. Valid values: true or false (default).\n"},"localAsn":{"type":"integer","description":"The autonomous system number on the Alibaba Cloud side. The value range of autonomous system number is 1~4294967295. Default value: 45104\n"},"localBgpIp":{"type":"string","description":"The BGP address on the Alibaba Cloud side. This address is an IP address in the IPsec tunnel network segment.\n- Before adding the BGP configuration, we recommend that you understand the working mechanism and usage restrictions of the BGP dynamic routing function. For more information, see BGP Dynamic Routing Bulletin.\n- We recommend that you use the private number of the autonomous system number to establish a BGP connection with Alibaba Cloud. Please refer to the documentation for the private number range of the autonomous system number.\n"},"status":{"type":"string","description":"The negotiation status of Tunnel.\n"},"tunnelCidr":{"type":"string","description":"IPsec tunnel network segment. This network segment must be a network segment with a mask length of 30 within 169.254.0.0/16\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enable","localAsn","localBgpIp","status","tunnelCidr"]}}},"alicloud:vpn/GatewayVpnAttachmentHealthCheckConfig:GatewayVpnAttachmentHealthCheckConfig":{"properties":{"dip":{"type":"string","description":"Target IP.\n"},"enable":{"type":"boolean","description":"Whether health check is enabled:-\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: not enabled. - \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: enabled.\n"},"interval":{"type":"integer","description":"The health check retry interval, in seconds.\n"},"policy":{"type":"string","description":"Whether to revoke the published route when the health check fails\n"},"retry":{"type":"integer","description":"Number of retries for health check.\n"},"sip":{"type":"string","description":"SOURCE IP.\n"},"status":{"type":"string","description":"The negotiation status of Tunnel.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dip","enable","interval","policy","retry","sip","status"]}}},"alicloud:vpn/GatewayVpnAttachmentIkeConfig:GatewayVpnAttachmentIkeConfig":{"properties":{"ikeAuthAlg":{"type":"string","description":"The authentication algorithm negotiated in the first stage. Valid values: md5, sha1, sha256, sha384, sha512. Default value: md5.\n"},"ikeEncAlg":{"type":"string","description":"The encryption algorithm that is used in Phase 1 negotiations. Valid values: aes, aes192, aes256, des, and 3des. Default value: aes.\n"},"ikeLifetime":{"type":"integer","description":"The SA lifetime as a result of Phase 1 negotiations. Unit: seconds. Valid values: 0 to 86400. Default value: 86400.\n"},"ikeMode":{"type":"string","description":"IKE mode, the negotiation mode. Valid values: main and aggressive. Default value: main.\n"},"ikePfs":{"type":"string","description":"The Diffie-Hellman key exchange algorithm used in the first stage negotiation. Valid values: group1, group2, group5, or group14. Default value: group2.\n"},"ikeVersion":{"type":"string","description":"The version of the IKE protocol. Value: ikev1 or ikev2. Default value: ikev1.\n"},"localId":{"type":"string","description":"The identifier on the Alibaba Cloud side of the IPsec connection. The length is limited to 100 characters. The default value is leftId-not-exist\n"},"psk":{"type":"string","description":"A pre-shared key for authentication between the VPN gateway and the local data center. The key length is 1~100 characters.\n- If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key.\n- The pre-shared key of the IPsec-VPN connection must be the same as the authentication key of the on-premises data center. Otherwise, connections between the on-premises data center and the VPN gateway cannot be established.\n"},"remoteId":{"type":"string","description":"The identifier of the IPsec connection to the local data center. The length is limited to 100 characters. The default value is the IP address of the user gateway.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ikeAuthAlg","ikeEncAlg","ikeLifetime","ikeMode","ikePfs","ikeVersion","localId","psk","remoteId"]}}},"alicloud:vpn/GatewayVpnAttachmentIpsecConfig:GatewayVpnAttachmentIpsecConfig":{"properties":{"ipsecAuthAlg":{"type":"string","description":"The authentication algorithm negotiated in the second stage. Valid values: md5, sha1, sha256, sha384, sha512. Default value: MD5.\n"},"ipsecEncAlg":{"type":"string","description":"The encryption algorithm negotiated in the second stage. Valid values: aes, aes192, aes256, des, or 3des. Default value: aes.\n"},"ipsecLifetime":{"type":"integer","description":"The life cycle of SA negotiated in the second stage. Unit: seconds. Value range: 0~86400. Default value: 86400.\n"},"ipsecPfs":{"type":"string","description":"Diffie-Hellman Key Exchange Algorithm Used in Second Stage Negotiation\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipsecAuthAlg","ipsecEncAlg","ipsecLifetime","ipsecPfs"]}}},"alicloud:vpn/GatewayVpnAttachmentTunnelOptionsSpecification:GatewayVpnAttachmentTunnelOptionsSpecification":{"properties":{"customerGatewayId":{"type":"string","description":"The ID of the user gateway associated with the tunnel.\n\n\u003e **NOTE:**  This parameter is required when creating a dual-tunnel mode IPsec-VPN connection.\n"},"enableDpd":{"type":"boolean","description":"Whether the DPD (peer alive detection) function is enabled for the tunnel. Value:\n"},"enableNatTraversal":{"type":"boolean","description":"Whether the NAT crossing function is enabled for the tunnel. Value:\n"},"internetIp":{"type":"string","description":"The local internet IP in Tunnel.\n"},"role":{"type":"string","description":"The role of Tunnel.\n"},"state":{"type":"string","description":"The state of Tunnel.\n"},"status":{"type":"string","description":"The negotiation status of Tunnel.\n"},"tunnelBgpConfig":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentTunnelOptionsSpecificationTunnelBgpConfig:GatewayVpnAttachmentTunnelOptionsSpecificationTunnelBgpConfig","description":"Add the BGP configuration for the tunnel.\n\n\u003e **NOTE:**  After you enable the BGP function for IPsec connections (that is, specify `EnableTunnelsBgp` as \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e), you must configure this parameter.\nSee \u003cspan pulumi-lang-nodejs=\"`tunnelBgpConfig`\" pulumi-lang-dotnet=\"`TunnelBgpConfig`\" pulumi-lang-go=\"`tunnelBgpConfig`\" pulumi-lang-python=\"`tunnel_bgp_config`\" pulumi-lang-yaml=\"`tunnelBgpConfig`\" pulumi-lang-java=\"`tunnelBgpConfig`\"\u003e`tunnel_bgp_config`\u003c/span\u003e below.\n"},"tunnelId":{"type":"string","description":"The tunnel ID of IPsec-VPN connection.\n"},"tunnelIkeConfig":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfig:GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfig","description":"Configuration information for the first phase negotiation. See \u003cspan pulumi-lang-nodejs=\"`tunnelIkeConfig`\" pulumi-lang-dotnet=\"`TunnelIkeConfig`\" pulumi-lang-go=\"`tunnelIkeConfig`\" pulumi-lang-python=\"`tunnel_ike_config`\" pulumi-lang-yaml=\"`tunnelIkeConfig`\" pulumi-lang-java=\"`tunnelIkeConfig`\"\u003e`tunnel_ike_config`\u003c/span\u003e below.\n"},"tunnelIndex":{"type":"integer","description":"The order in which the tunnel was created.\n"},"tunnelIpsecConfig":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfig:GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfig","description":"Configuration information for the second-stage negotiation. See \u003cspan pulumi-lang-nodejs=\"`tunnelIpsecConfig`\" pulumi-lang-dotnet=\"`TunnelIpsecConfig`\" pulumi-lang-go=\"`tunnelIpsecConfig`\" pulumi-lang-python=\"`tunnel_ipsec_config`\" pulumi-lang-yaml=\"`tunnelIpsecConfig`\" pulumi-lang-java=\"`tunnelIpsecConfig`\"\u003e`tunnel_ipsec_config`\u003c/span\u003e below.\n"},"zoneNo":{"type":"string","description":"The zoneNo of tunnel.\n"}},"type":"object","required":["customerGatewayId","tunnelIndex"],"language":{"nodejs":{"requiredOutputs":["customerGatewayId","enableDpd","enableNatTraversal","internetIp","role","state","status","tunnelBgpConfig","tunnelId","tunnelIkeConfig","tunnelIndex","tunnelIpsecConfig","zoneNo"]}}},"alicloud:vpn/GatewayVpnAttachmentTunnelOptionsSpecificationTunnelBgpConfig:GatewayVpnAttachmentTunnelOptionsSpecificationTunnelBgpConfig":{"properties":{"bgpStatus":{"type":"string","description":"BGP status.\n"},"localAsn":{"type":"integer"},"localBgpIp":{"type":"string"},"peerAsn":{"type":"string","description":"Peer asn.\n"},"peerBgpIp":{"type":"string","description":"Peer bgp ip.\n"},"tunnelCidr":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["bgpStatus","localAsn","localBgpIp","peerAsn","peerBgpIp","tunnelCidr"]}}},"alicloud:vpn/GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfig:GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfig":{"properties":{"ikeAuthAlg":{"type":"string"},"ikeEncAlg":{"type":"string"},"ikeLifetime":{"type":"integer"},"ikeMode":{"type":"string"},"ikePfs":{"type":"string"},"ikeVersion":{"type":"string"},"localId":{"type":"string"},"psk":{"type":"string"},"remoteId":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ikeAuthAlg","ikeEncAlg","ikeLifetime","ikeMode","ikePfs","ikeVersion","localId","psk","remoteId"]}}},"alicloud:vpn/GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfig:GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfig":{"properties":{"ipsecAuthAlg":{"type":"string"},"ipsecEncAlg":{"type":"string"},"ipsecLifetime":{"type":"integer"},"ipsecPfs":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipsecAuthAlg","ipsecEncAlg","ipsecLifetime","ipsecPfs"]}}},"alicloud:vpn/IpsecServerIkeConfig:IpsecServerIkeConfig":{"properties":{"ikeAuthAlg":{"type":"string","description":"The authentication algorithm that is used in Phase 1 negotiations. Default value: \u003cspan pulumi-lang-nodejs=\"`sha1`\" pulumi-lang-dotnet=\"`Sha1`\" pulumi-lang-go=\"`sha1`\" pulumi-lang-python=\"`sha1`\" pulumi-lang-yaml=\"`sha1`\" pulumi-lang-java=\"`sha1`\"\u003e`sha1`\u003c/span\u003e.\n"},"ikeEncAlg":{"type":"string","description":"The encryption algorithm that is used in Phase 1 negotiations. Default value: \u003cspan pulumi-lang-nodejs=\"`aes`\" pulumi-lang-dotnet=\"`Aes`\" pulumi-lang-go=\"`aes`\" pulumi-lang-python=\"`aes`\" pulumi-lang-yaml=\"`aes`\" pulumi-lang-java=\"`aes`\"\u003e`aes`\u003c/span\u003e.\n"},"ikeLifetime":{"type":"integer","description":"IkeLifetime: the SA lifetime determined by Phase 1 negotiations. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e. Unit: \u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e.\n"},"ikeMode":{"type":"string","description":"The IKE negotiation mode. Default value: \u003cspan pulumi-lang-nodejs=\"`main`\" pulumi-lang-dotnet=\"`Main`\" pulumi-lang-go=\"`main`\" pulumi-lang-python=\"`main`\" pulumi-lang-yaml=\"`main`\" pulumi-lang-java=\"`main`\"\u003e`main`\u003c/span\u003e.\n"},"ikePfs":{"type":"string","description":"The Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Default value: \u003cspan pulumi-lang-nodejs=\"`group2`\" pulumi-lang-dotnet=\"`Group2`\" pulumi-lang-go=\"`group2`\" pulumi-lang-python=\"`group2`\" pulumi-lang-yaml=\"`group2`\" pulumi-lang-java=\"`group2`\"\u003e`group2`\u003c/span\u003e.\n"},"ikeVersion":{"type":"string","description":"The IKE version. Valid values: \u003cspan pulumi-lang-nodejs=\"`ikev1`\" pulumi-lang-dotnet=\"`Ikev1`\" pulumi-lang-go=\"`ikev1`\" pulumi-lang-python=\"`ikev1`\" pulumi-lang-yaml=\"`ikev1`\" pulumi-lang-java=\"`ikev1`\"\u003e`ikev1`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ikev2`\" pulumi-lang-dotnet=\"`Ikev2`\" pulumi-lang-go=\"`ikev2`\" pulumi-lang-python=\"`ikev2`\" pulumi-lang-yaml=\"`ikev2`\" pulumi-lang-java=\"`ikev2`\"\u003e`ikev2`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`ikev2`\" pulumi-lang-dotnet=\"`Ikev2`\" pulumi-lang-go=\"`ikev2`\" pulumi-lang-python=\"`ikev2`\" pulumi-lang-yaml=\"`ikev2`\" pulumi-lang-java=\"`ikev2`\"\u003e`ikev2`\u003c/span\u003e.\n"},"localId":{"type":"string","description":"The identifier of the IPsec server. The value can be a fully qualified domain name (FQDN) or an IP address. The default value is the public IP address of the VPN gateway.\n"},"remoteId":{"type":"string","description":"The identifier of the customer gateway. The value can be an FQDN or an IP address. By default, this parameter is not specified.\n"}},"type":"object"},"alicloud:vpn/IpsecServerIpsecConfig:IpsecServerIpsecConfig":{"properties":{"ipsecAuthAlg":{"type":"string","description":"The authentication algorithm that is used in Phase 2 negotiations. Default value: \u003cspan pulumi-lang-nodejs=\"`sha1`\" pulumi-lang-dotnet=\"`Sha1`\" pulumi-lang-go=\"`sha1`\" pulumi-lang-python=\"`sha1`\" pulumi-lang-yaml=\"`sha1`\" pulumi-lang-java=\"`sha1`\"\u003e`sha1`\u003c/span\u003e.\n"},"ipsecEncAlg":{"type":"string","description":"The encryption algorithm that is used in Phase 2 negotiations. Default value: \u003cspan pulumi-lang-nodejs=\"`aes`\" pulumi-lang-dotnet=\"`Aes`\" pulumi-lang-go=\"`aes`\" pulumi-lang-python=\"`aes`\" pulumi-lang-yaml=\"`aes`\" pulumi-lang-java=\"`aes`\"\u003e`aes`\u003c/span\u003e.\n"},"ipsecLifetime":{"type":"integer","description":"The SA lifetime determined by Phase 2 negotiations. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e. Unit: \u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e.\n"},"ipsecPfs":{"type":"string","description":"Forwards packets of all protocols. The Diffie-Hellman key exchange algorithm used in Phase 2 negotiations. Default value: \u003cspan pulumi-lang-nodejs=\"`group2`\" pulumi-lang-dotnet=\"`Group2`\" pulumi-lang-go=\"`group2`\" pulumi-lang-python=\"`group2`\" pulumi-lang-yaml=\"`group2`\" pulumi-lang-java=\"`group2`\"\u003e`group2`\u003c/span\u003e.\n"}},"type":"object"},"alicloud:vpn/getConnectionsConnection:getConnectionsConnection":{"properties":{"createTime":{"type":"string"},"customerGatewayId":{"type":"string","description":"Use the VPN customer gateway ID as the search key.\n"},"effectImmediately":{"type":"boolean"},"enableDpd":{"type":"boolean","description":"Wether enable Dpd detection.\n"},"enableNatTraversal":{"type":"boolean","description":"enable nat traversal.\n"},"enableTunnelsBgp":{"type":"boolean","description":"Enable tunnel bgp.\n"},"id":{"type":"string","description":"ID of the VPN connection.\n"},"ikeConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/getConnectionsConnectionIkeConfig:getConnectionsConnectionIkeConfig"},"description":"The\u003cspan pulumi-lang-nodejs=\" ikeConfig \" pulumi-lang-dotnet=\" IkeConfig \" pulumi-lang-go=\" ikeConfig \" pulumi-lang-python=\" ike_config \" pulumi-lang-yaml=\" ikeConfig \" pulumi-lang-java=\" ikeConfig \"\u003e ike_config \u003c/span\u003emapping supports the following:\n"},"ipsecConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/getConnectionsConnectionIpsecConfig:getConnectionsConnectionIpsecConfig"},"description":"The\u003cspan pulumi-lang-nodejs=\" ipsecConfig \" pulumi-lang-dotnet=\" IpsecConfig \" pulumi-lang-go=\" ipsecConfig \" pulumi-lang-python=\" ipsec_config \" pulumi-lang-yaml=\" ipsecConfig \" pulumi-lang-java=\" ipsecConfig \"\u003e ipsec_config \u003c/span\u003emapping supports the following:\n"},"localSubnet":{"type":"string","description":"The local subnet of the VPN connection.\n"},"name":{"type":"string","description":"The name of the VPN connection.\n"},"remoteSubnet":{"type":"string","description":"The remote subnet of the VPN connection.\n"},"status":{"type":"string","description":"The negotiation status of the BGP routing protocol. Valid values: \u003cspan pulumi-lang-nodejs=\"`success`\" pulumi-lang-dotnet=\"`Success`\" pulumi-lang-go=\"`success`\" pulumi-lang-python=\"`success`\" pulumi-lang-yaml=\"`success`\" pulumi-lang-java=\"`success`\"\u003e`success`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"tunnelOptionsSpecifications":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/getConnectionsConnectionTunnelOptionsSpecification:getConnectionsConnectionTunnelOptionsSpecification"},"description":"The\u003cspan pulumi-lang-nodejs=\" tunnelOptionsSpecification \" pulumi-lang-dotnet=\" TunnelOptionsSpecification \" pulumi-lang-go=\" tunnelOptionsSpecification \" pulumi-lang-python=\" tunnel_options_specification \" pulumi-lang-yaml=\" tunnelOptionsSpecification \" pulumi-lang-java=\" tunnelOptionsSpecification \"\u003e tunnel_options_specification \u003c/span\u003esupports the following:\n"},"vcoHealthChecks":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/getConnectionsConnectionVcoHealthCheck:getConnectionsConnectionVcoHealthCheck"}},"vpnBgpConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/getConnectionsConnectionVpnBgpConfig:getConnectionsConnectionVpnBgpConfig"},"description":"The\u003cspan pulumi-lang-nodejs=\" vpnBgpConfig \" pulumi-lang-dotnet=\" VpnBgpConfig \" pulumi-lang-go=\" vpnBgpConfig \" pulumi-lang-python=\" vpn_bgp_config \" pulumi-lang-yaml=\" vpnBgpConfig \" pulumi-lang-java=\" vpnBgpConfig \"\u003e vpn_bgp_config \u003c/span\u003emapping supports the following:\n"},"vpnGatewayId":{"type":"string","description":"Use the VPN gateway ID as the search key.\n"}},"type":"object","required":["createTime","customerGatewayId","effectImmediately","enableDpd","enableNatTraversal","enableTunnelsBgp","id","localSubnet","name","remoteSubnet","status","tunnelOptionsSpecifications","vpnGatewayId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getConnectionsConnectionIkeConfig:getConnectionsConnectionIkeConfig":{"properties":{"ikeAuthAlg":{"type":"string","description":"IKE auth Algorithm.\n"},"ikeEncAlg":{"type":"string","description":"IKE encript algorithm.\n"},"ikeLifetime":{"type":"integer","description":"IKE lifetime.\n"},"ikeLocalId":{"type":"string","description":"The identification of the VPN gateway.\n"},"ikeMode":{"type":"string","description":"IKE Mode.\n"},"ikePfs":{"type":"string","description":"DH Group.\n"},"ikeRemoteId":{"type":"string","description":"The identification of the customer gateway.\n"},"ikeVersion":{"type":"string","description":"IKE Version.\n"},"psk":{"type":"string","description":"Preshared secret key.\n"}},"type":"object"},"alicloud:vpn/getConnectionsConnectionIpsecConfig:getConnectionsConnectionIpsecConfig":{"properties":{"ipsecAuthAlg":{"type":"string","description":"IPsec Auth algorithm.\n"},"ipsecEncAlg":{"type":"string","description":"IPsec Encript algorithm.\n"},"ipsecLifetime":{"type":"integer","description":"IPsec lifetime.\n"},"ipsecPfs":{"type":"string","description":"DH Group.\n"}},"type":"object"},"alicloud:vpn/getConnectionsConnectionTunnelOptionsSpecification:getConnectionsConnectionTunnelOptionsSpecification":{"properties":{"customerGatewayId":{"type":"string","description":"Use the VPN customer gateway ID as the search key.\n"},"enableDpd":{"type":"boolean","description":"Wether enable Dpd detection.\n"},"enableNatTraversal":{"type":"boolean","description":"enable nat traversal.\n"},"internetIp":{"type":"string"},"role":{"type":"string","description":"The role of Tunnel.\n"},"state":{"type":"string"},"status":{"type":"string","description":"The negotiation status of the BGP routing protocol. Valid values: \u003cspan pulumi-lang-nodejs=\"`success`\" pulumi-lang-dotnet=\"`Success`\" pulumi-lang-go=\"`success`\" pulumi-lang-python=\"`success`\" pulumi-lang-yaml=\"`success`\" pulumi-lang-java=\"`success`\"\u003e`success`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"tunnelBgpConfig":{"$ref":"#/types/alicloud:vpn/getConnectionsConnectionTunnelOptionsSpecificationTunnelBgpConfig:getConnectionsConnectionTunnelOptionsSpecificationTunnelBgpConfig","description":"The bgp config of Tunnel.\n"},"tunnelId":{"type":"string"},"tunnelIkeConfig":{"$ref":"#/types/alicloud:vpn/getConnectionsConnectionTunnelOptionsSpecificationTunnelIkeConfig:getConnectionsConnectionTunnelOptionsSpecificationTunnelIkeConfig","description":"The configuration of Phase 1 negotiations in Tunnel.\n"},"tunnelIpsecConfig":{"$ref":"#/types/alicloud:vpn/getConnectionsConnectionTunnelOptionsSpecificationTunnelIpsecConfig:getConnectionsConnectionTunnelOptionsSpecificationTunnelIpsecConfig","description":"IPsec configuration in Tunnel.\n"},"zoneNo":{"type":"string"}},"type":"object","required":["customerGatewayId","enableDpd","enableNatTraversal","internetIp","role","state","status","tunnelBgpConfig","tunnelId","tunnelIkeConfig","tunnelIpsecConfig","zoneNo"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getConnectionsConnectionTunnelOptionsSpecificationTunnelBgpConfig:getConnectionsConnectionTunnelOptionsSpecificationTunnelBgpConfig":{"properties":{"bgpStatus":{"type":"string"},"localAsn":{"type":"string","description":"Local asn.\n"},"localBgpIp":{"type":"string","description":"Local bgp IP.\n"},"peerAsn":{"type":"string","description":"The counterpart autonomous system number.\n"},"peerBgpIp":{"type":"string","description":"The BGP address on the other side.\n"},"tunnelCidr":{"type":"string","description":"BGP Tunnel CIDR.\n"}},"type":"object","required":["bgpStatus","localAsn","localBgpIp","peerAsn","peerBgpIp","tunnelCidr"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getConnectionsConnectionTunnelOptionsSpecificationTunnelIkeConfig:getConnectionsConnectionTunnelOptionsSpecificationTunnelIkeConfig":{"properties":{"ikeAuthAlg":{"type":"string","description":"IKE auth Algorithm.\n"},"ikeEncAlg":{"type":"string","description":"IKE encript algorithm.\n"},"ikeLifetime":{"type":"integer","description":"IKE lifetime.\n"},"ikeMode":{"type":"string","description":"IKE Mode.\n"},"ikePfs":{"type":"string","description":"DH Group.\n"},"ikeVersion":{"type":"string","description":"IKE Version.\n"},"localId":{"type":"string","description":"The local Id.\n"},"psk":{"type":"string","description":"Preshared secret key.\n"},"remoteId":{"type":"string","description":"Remote ID.\n"}},"type":"object","required":["ikeAuthAlg","ikeEncAlg","ikeLifetime","ikeMode","ikePfs","ikeVersion","localId","psk","remoteId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getConnectionsConnectionTunnelOptionsSpecificationTunnelIpsecConfig:getConnectionsConnectionTunnelOptionsSpecificationTunnelIpsecConfig":{"properties":{"ipsecAuthAlg":{"type":"string","description":"IPsec Auth algorithm.\n"},"ipsecEncAlg":{"type":"string","description":"IPsec Encript algorithm.\n"},"ipsecLifetime":{"type":"integer","description":"IPsec lifetime.\n"},"ipsecPfs":{"type":"string","description":"DH Group.\n"}},"type":"object","required":["ipsecAuthAlg","ipsecEncAlg","ipsecLifetime","ipsecPfs"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getConnectionsConnectionVcoHealthCheck:getConnectionsConnectionVcoHealthCheck":{"properties":{"dip":{"type":"string","description":"The destination ip address.\n"},"enable":{"type":"string","description":"The health check on status. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"interval":{"type":"integer","description":"The time interval between health checks.\n"},"retry":{"type":"integer","description":"The number of retries for health checks issued.\n"},"sip":{"type":"string","description":"The source ip address.\n"},"status":{"type":"string","description":"The negotiation status of the BGP routing protocol. Valid values: \u003cspan pulumi-lang-nodejs=\"`success`\" pulumi-lang-dotnet=\"`Success`\" pulumi-lang-go=\"`success`\" pulumi-lang-python=\"`success`\" pulumi-lang-yaml=\"`success`\" pulumi-lang-java=\"`success`\"\u003e`success`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object"},"alicloud:vpn/getConnectionsConnectionVpnBgpConfig:getConnectionsConnectionVpnBgpConfig":{"properties":{"authKey":{"type":"string","description":"The authentication keys for BGP routing protocols.\n"},"localAsn":{"type":"integer","description":"Local asn.\n"},"localBgpIp":{"type":"string","description":"Local bgp IP.\n"},"peerAsn":{"type":"integer","description":"The counterpart autonomous system number.\n"},"peerBgpIp":{"type":"string","description":"The BGP address on the other side.\n"},"status":{"type":"string","description":"The negotiation status of the BGP routing protocol. Valid values: \u003cspan pulumi-lang-nodejs=\"`success`\" pulumi-lang-dotnet=\"`Success`\" pulumi-lang-go=\"`success`\" pulumi-lang-python=\"`success`\" pulumi-lang-yaml=\"`success`\" pulumi-lang-java=\"`success`\"\u003e`success`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"tunnelCidr":{"type":"string","description":"BGP Tunnel CIDR.\n"}},"type":"object"},"alicloud:vpn/getCustomerGatewaysGateway:getCustomerGatewaysGateway":{"properties":{"asn":{"type":"integer","description":"The autonomous system number of the local data center gateway device of the VPN customer gateway.\n"},"createTime":{"type":"string","description":"The creation time of the VPN customer gateway.\n"},"description":{"type":"string","description":"The description of the VPN customer gateway.\n"},"id":{"type":"string","description":"ID of the VPN customer gateway .\n"},"ipAddress":{"type":"string","description":"The ip address of the VPN customer gateway.\n"},"name":{"type":"string","description":"The name of the VPN customer gateway.\n"}},"type":"object","required":["asn","createTime","description","id","ipAddress","name"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getGatewayVcoRoutesRoute:getGatewayVcoRoutesRoute":{"properties":{"asPath":{"type":"string","description":"List of autonomous system numbers through which BGP routing entries pass.\n"},"createTime":{"type":"string","description":"The creation time of the VPN destination route.\n"},"id":{"type":"string","description":"The ID of the Vpn Gateway Vco Routes.\n"},"nextHop":{"type":"string","description":"The next hop of the destination route.\n"},"routeDest":{"type":"string","description":"The destination network segment of the destination route.\n"},"source":{"type":"string","description":"The source CIDR block of the destination route.\n"},"status":{"type":"string","description":"The status of the vpn route entry. Valid values: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`published`\" pulumi-lang-dotnet=\"`Published`\" pulumi-lang-go=\"`published`\" pulumi-lang-python=\"`published`\" pulumi-lang-yaml=\"`published`\" pulumi-lang-java=\"`published`\"\u003e`published`\u003c/span\u003e.\n"},"vpnConnectionId":{"type":"string","description":"The id of the vpn connection.\n"},"weight":{"type":"integer","description":"The weight value of the destination route.\n"}},"type":"object","required":["asPath","createTime","id","nextHop","routeDest","source","status","vpnConnectionId","weight"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getGatewayVpnAttachmentsAttachment:getGatewayVpnAttachmentsAttachment":{"properties":{"attachType":{"type":"string","description":"attach type- **CEN**: indicates that the IPsec-VPN connection is associated with a transit router of a Cloud Enterprise Network (CEN) instance.- **NO_ASSOCIATED**: indicates that the IPsec-VPN connection is not associated with any resource.\n"},"bgpConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/getGatewayVpnAttachmentsAttachmentBgpConfig:getGatewayVpnAttachmentsAttachmentBgpConfig"},"description":"Bgp configuration information.- This parameter is supported when you create an vpn attachment in single-tunnel mode.\n"},"connectionStatus":{"type":"string","description":"IPsec connection status- **ike_sa_not_established**: Phase 1 negotiations failed.- **ike_sa_established**: Phase 1 negotiations succeeded.- **ipsec_sa_not_established**: Phase 2 negotiations failed.- **ipsec_sa_established**: Phase 2 negotiations succeeded.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"customerGatewayId":{"type":"string","description":"The ID of the user gateway associated with the tunnel.\u003e This parameter is required when creating a dual-tunnel mode IPsec-VPN connection.\n"},"effectImmediately":{"type":"boolean","description":"Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:- **true**: immediately starts IPsec negotiations after the configuration is complete.- **false** (default): starts IPsec negotiations when inbound traffic is received.\n"},"enableDpd":{"type":"boolean","description":"Whether the DPD (peer alive detection) function is enabled for the tunnel. Value:-**true** (default): enable the DPD function. IPsec initiator will send DPD message to check whether the peer device is alive. If the peer device does not receive a correct response within the set time, it is considered that the peer has been disconnected. IPsec will delete ISAKMP SA and the corresponding IPsec SA, and the security tunnel will also be deleted.-**false**: If the DPD function is disabled, the IPsec initiator does not send DPD detection packets.\n"},"enableNatTraversal":{"type":"boolean","description":"Whether the NAT crossing function is enabled for the tunnel. Value:-**true** (default): Enables the NAT Traversal function. When enabled, the IKE negotiation process deletes the verification process of the UDP port number and realizes the discovery function of the NAT gateway device in the tunnel.-**false**: does not enable the NAT Traversal function.\n"},"enableTunnelsBgp":{"type":"boolean","description":"You can configure this parameter when you create a vpn attachment in dual-tunnel mode.Whether to enable the BGP function for the tunnel. Value: **true** or **false** (default).\u003e before adding BGP configuration, we recommend that you understand the working mechanism and usage restrictions of the BGP dynamic routing function.\n"},"healthCheckConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/getGatewayVpnAttachmentsAttachmentHealthCheckConfig:getGatewayVpnAttachmentsAttachmentHealthCheckConfig"},"description":"This parameter is supported if you create an vpn attachment in single-tunnel mode.Health check configuration information.\n"},"id":{"type":"string","description":"The ID of the resource supplied above.\n"},"ikeConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/getGatewayVpnAttachmentsAttachmentIkeConfig:getGatewayVpnAttachmentsAttachmentIkeConfig"},"description":"The configurations of Phase 1 negotiations. - This parameter is supported if you create an vpn attachment in single-tunnel mode.\n"},"internetIp":{"type":"string","description":"The local internet IP in Tunnel.\n"},"ipsecConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/getGatewayVpnAttachmentsAttachmentIpsecConfig:getGatewayVpnAttachmentsAttachmentIpsecConfig"},"description":"Configuration negotiated in the second stage. - This parameter is supported if you create an vpn attachment in single-tunnel mode.\n"},"localSubnet":{"type":"string","description":"The CIDR block on the VPC side. The CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.The following routing modes are supported:- If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.- If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.\n"},"networkType":{"type":"string","description":"network type- **public** (default)- **private**\n"},"remoteSubnet":{"type":"string","description":"The CIDR block on the data center side. This CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.The following routing modes are supported:- If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.- If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`attaching`\" pulumi-lang-dotnet=\"`Attaching`\" pulumi-lang-go=\"`attaching`\" pulumi-lang-python=\"`attaching`\" pulumi-lang-yaml=\"`attaching`\" pulumi-lang-java=\"`attaching`\"\u003e`attaching`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`attached`\" pulumi-lang-dotnet=\"`Attached`\" pulumi-lang-go=\"`attached`\" pulumi-lang-python=\"`attached`\" pulumi-lang-yaml=\"`attached`\" pulumi-lang-java=\"`attached`\"\u003e`attached`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`detaching`\" pulumi-lang-dotnet=\"`Detaching`\" pulumi-lang-go=\"`detaching`\" pulumi-lang-python=\"`detaching`\" pulumi-lang-yaml=\"`detaching`\" pulumi-lang-java=\"`detaching`\"\u003e`detaching`\u003c/span\u003e, `financialLocked`, \u003cspan pulumi-lang-nodejs=\"`provisioning`\" pulumi-lang-dotnet=\"`Provisioning`\" pulumi-lang-go=\"`provisioning`\" pulumi-lang-python=\"`provisioning`\" pulumi-lang-yaml=\"`provisioning`\" pulumi-lang-java=\"`provisioning`\"\u003e`provisioning`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`updating`\" pulumi-lang-dotnet=\"`Updating`\" pulumi-lang-go=\"`updating`\" pulumi-lang-python=\"`updating`\" pulumi-lang-yaml=\"`updating`\" pulumi-lang-java=\"`updating`\"\u003e`updating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`upgrading`\" pulumi-lang-dotnet=\"`Upgrading`\" pulumi-lang-go=\"`upgrading`\" pulumi-lang-python=\"`upgrading`\" pulumi-lang-yaml=\"`upgrading`\" pulumi-lang-java=\"`upgrading`\"\u003e`upgrading`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleted`\" pulumi-lang-dotnet=\"`Deleted`\" pulumi-lang-go=\"`deleted`\" pulumi-lang-python=\"`deleted`\" pulumi-lang-yaml=\"`deleted`\" pulumi-lang-java=\"`deleted`\"\u003e`deleted`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags\n"},"tunnelOptionsSpecifications":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/getGatewayVpnAttachmentsAttachmentTunnelOptionsSpecification:getGatewayVpnAttachmentsAttachmentTunnelOptionsSpecification"},"description":"Configure the tunnel.-You can configure parameters in the **tunnel_options_specification** array when you create a vpn attachment in dual-tunnel mode.-When creating a vpn attachment in dual-tunnel mode, you must add both tunnels for the vpn attachment to ensure that the vpn attachment has link redundancy. Only two tunnels can be added to a vpn attachment.\n"},"vpnAttachmentName":{"type":"string","description":"vpn attachment name\n"},"vpnConnectionId":{"type":"string","description":"The first ID of the resource\n"}},"type":"object","required":["attachType","bgpConfigs","connectionStatus","createTime","customerGatewayId","effectImmediately","enableDpd","enableNatTraversal","enableTunnelsBgp","healthCheckConfigs","id","ikeConfigs","internetIp","ipsecConfigs","localSubnet","networkType","remoteSubnet","resourceGroupId","status","tags","tunnelOptionsSpecifications","vpnAttachmentName","vpnConnectionId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getGatewayVpnAttachmentsAttachmentBgpConfig:getGatewayVpnAttachmentsAttachmentBgpConfig":{"properties":{"localAsn":{"type":"integer","description":"The number of the local (Alibaba Cloud) autonomous system of the tunnel. The value range of the autonomous system number is **1** to **4294967295**. Default value: **45104**.\u003e We recommend that you use the private number of the autonomous system number to establish a BGP connection with Alibaba Cloud. The private number range of the autonomous system number please consult the document yourself.\n"},"localBgpIp":{"type":"string","description":"The local BGP address of the tunnel (on the Alibaba Cloud side). This address is an IP address in the BGP network segment.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`attaching`\" pulumi-lang-dotnet=\"`Attaching`\" pulumi-lang-go=\"`attaching`\" pulumi-lang-python=\"`attaching`\" pulumi-lang-yaml=\"`attaching`\" pulumi-lang-java=\"`attaching`\"\u003e`attaching`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`attached`\" pulumi-lang-dotnet=\"`Attached`\" pulumi-lang-go=\"`attached`\" pulumi-lang-python=\"`attached`\" pulumi-lang-yaml=\"`attached`\" pulumi-lang-java=\"`attached`\"\u003e`attached`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`detaching`\" pulumi-lang-dotnet=\"`Detaching`\" pulumi-lang-go=\"`detaching`\" pulumi-lang-python=\"`detaching`\" pulumi-lang-yaml=\"`detaching`\" pulumi-lang-java=\"`detaching`\"\u003e`detaching`\u003c/span\u003e, `financialLocked`, \u003cspan pulumi-lang-nodejs=\"`provisioning`\" pulumi-lang-dotnet=\"`Provisioning`\" pulumi-lang-go=\"`provisioning`\" pulumi-lang-python=\"`provisioning`\" pulumi-lang-yaml=\"`provisioning`\" pulumi-lang-java=\"`provisioning`\"\u003e`provisioning`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`updating`\" pulumi-lang-dotnet=\"`Updating`\" pulumi-lang-go=\"`updating`\" pulumi-lang-python=\"`updating`\" pulumi-lang-yaml=\"`updating`\" pulumi-lang-java=\"`updating`\"\u003e`updating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`upgrading`\" pulumi-lang-dotnet=\"`Upgrading`\" pulumi-lang-go=\"`upgrading`\" pulumi-lang-python=\"`upgrading`\" pulumi-lang-yaml=\"`upgrading`\" pulumi-lang-java=\"`upgrading`\"\u003e`upgrading`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleted`\" pulumi-lang-dotnet=\"`Deleted`\" pulumi-lang-go=\"`deleted`\" pulumi-lang-python=\"`deleted`\" pulumi-lang-yaml=\"`deleted`\" pulumi-lang-java=\"`deleted`\"\u003e`deleted`\u003c/span\u003e.\n"},"tunnelCidr":{"type":"string","description":"The BGP network segment of the tunnel. The network segment must be a network segment with a mask length of 30 in 169.254.0.0/16, and cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, and 169.254.169.252/30.\u003e the network segments of two tunnels under an IPsec connection cannot be the same.\n"}},"type":"object","required":["localAsn","localBgpIp","status","tunnelCidr"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getGatewayVpnAttachmentsAttachmentHealthCheckConfig:getGatewayVpnAttachmentsAttachmentHealthCheckConfig":{"properties":{"dip":{"type":"string","description":"Target IP.\n"},"enable":{"type":"boolean","description":"Whether health check is enabled:-**false**: not enabled. -**true**: enabled.\n"},"interval":{"type":"integer","description":"The health check retry interval, in seconds.\n"},"policy":{"type":"string","description":"Whether to revoke the published route when the health check fails- **revoke_route**(default): withdraws published routes.- **reserve_route**: does not withdraw published routes.\n"},"retry":{"type":"integer","description":"Number of retries for health check.\n"},"sip":{"type":"string","description":"SOURCE IP.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`attaching`\" pulumi-lang-dotnet=\"`Attaching`\" pulumi-lang-go=\"`attaching`\" pulumi-lang-python=\"`attaching`\" pulumi-lang-yaml=\"`attaching`\" pulumi-lang-java=\"`attaching`\"\u003e`attaching`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`attached`\" pulumi-lang-dotnet=\"`Attached`\" pulumi-lang-go=\"`attached`\" pulumi-lang-python=\"`attached`\" pulumi-lang-yaml=\"`attached`\" pulumi-lang-java=\"`attached`\"\u003e`attached`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`detaching`\" pulumi-lang-dotnet=\"`Detaching`\" pulumi-lang-go=\"`detaching`\" pulumi-lang-python=\"`detaching`\" pulumi-lang-yaml=\"`detaching`\" pulumi-lang-java=\"`detaching`\"\u003e`detaching`\u003c/span\u003e, `financialLocked`, \u003cspan pulumi-lang-nodejs=\"`provisioning`\" pulumi-lang-dotnet=\"`Provisioning`\" pulumi-lang-go=\"`provisioning`\" pulumi-lang-python=\"`provisioning`\" pulumi-lang-yaml=\"`provisioning`\" pulumi-lang-java=\"`provisioning`\"\u003e`provisioning`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`updating`\" pulumi-lang-dotnet=\"`Updating`\" pulumi-lang-go=\"`updating`\" pulumi-lang-python=\"`updating`\" pulumi-lang-yaml=\"`updating`\" pulumi-lang-java=\"`updating`\"\u003e`updating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`upgrading`\" pulumi-lang-dotnet=\"`Upgrading`\" pulumi-lang-go=\"`upgrading`\" pulumi-lang-python=\"`upgrading`\" pulumi-lang-yaml=\"`upgrading`\" pulumi-lang-java=\"`upgrading`\"\u003e`upgrading`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleted`\" pulumi-lang-dotnet=\"`Deleted`\" pulumi-lang-go=\"`deleted`\" pulumi-lang-python=\"`deleted`\" pulumi-lang-yaml=\"`deleted`\" pulumi-lang-java=\"`deleted`\"\u003e`deleted`\u003c/span\u003e.\n"}},"type":"object","required":["dip","enable","interval","policy","retry","sip","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getGatewayVpnAttachmentsAttachmentIkeConfig:getGatewayVpnAttachmentsAttachmentIkeConfig":{"properties":{"ikeAuthAlg":{"type":"string","description":"The authentication algorithm negotiated in the first stage. Values: **md5**, **sha1**, **sha256**, **sha384**, **sha512**. Default value: **sha1**.\n"},"ikeEncAlg":{"type":"string","description":"The encryption algorithm negotiated in the first stage. Value: **aes**, **aes192**, **aes256**, **des**, or **3des**. Default value: **aes**.\n"},"ikeLifetime":{"type":"integer","description":"The life cycle of SA negotiated in the first stage. Unit: seconds.Value range: **0** to **86400**. Default value: **86400**.\n"},"ikeMode":{"type":"string","description":"IKE version of the negotiation mode. Value: **main** or **aggressive**. Default value: **main**.-**main**: main mode, high security during negotiation.-**aggressive**: Savage mode, fast negotiation and high negotiation success rate.\n"},"ikePfs":{"type":"string","description":"The first stage negotiates the Diffie-Hellman key exchange algorithm used. Default value: **group2**.Values: **group1**, **group2**, **group5**, **group14**.\n"},"ikeVersion":{"type":"string","description":"Version of the IKE protocol. Value: **ikev1** or **ikev2**. Default value: **ikev2**.Compared with IKEv1, IKEv2 simplifies the SA negotiation process and provides better support for multiple network segments.\n"},"localId":{"type":"string","description":"The identifier of the local end of the tunnel (Alibaba Cloud side), which is used for the first phase of negotiation. The length is limited to 100 characters and cannot contain spaces. The default value is the IP address of the tunnel.**LocalId** supports the FQDN format. If you use the FQDN format, we recommend that you select **aggressive** (barbaric mode) as the negotiation mode.\n"},"psk":{"type":"string","description":"The pre-shared key is used for identity authentication between the tunnel and the tunnel peer.-The key can be 1 to 100 characters in length. It supports numbers, upper and lower case English letters, and characters on the right. It cannot contain spaces. '''~! \\'@#$%^\u0026 *()_-+ ={}[]|;:',./? '''-If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. \u003e The pre-shared key of the tunnel and the tunnel peer must be the same, otherwise the system cannot establish the tunnel normally.\n"},"remoteId":{"type":"string","description":"Identifier of the tunnel peer, which is used for the first-stage negotiation. The length is limited to 100 characters and cannot contain spaces. The default value is the IP address of the user gateway associated with the tunnel.- **RemoteId** supports the FQDN format. If you use the FQDN format, we recommend that you select **aggressive** (barbaric mode) as the negotiation mode.\n"}},"type":"object","required":["ikeAuthAlg","ikeEncAlg","ikeLifetime","ikeMode","ikePfs","ikeVersion","localId","psk","remoteId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getGatewayVpnAttachmentsAttachmentIpsecConfig:getGatewayVpnAttachmentsAttachmentIpsecConfig":{"properties":{"ipsecAuthAlg":{"type":"string","description":"The second stage negotiated authentication algorithm.Values: **md5**, **sha1**, **sha256**, **sha384**, **sha512**. Default value: **sha1**.\n"},"ipsecEncAlg":{"type":"string","description":"The encryption algorithm negotiated in the second stage. Value: **aes**, **aes192**, **aes256**, **des**, or **3des**. Default value: **aes**.\n"},"ipsecLifetime":{"type":"integer","description":"The life cycle of SA negotiated in the second stage. Unit: seconds.Value range: **0** to **86400**. Default value: **86400**.\n"},"ipsecPfs":{"type":"string","description":"The second stage negotiates the Diffie-Hellman key exchange algorithm used. Default value: **group2**.Values: **disabled**, **group1**, **group2**, **group5**, **group14**.\n"}},"type":"object","required":["ipsecAuthAlg","ipsecEncAlg","ipsecLifetime","ipsecPfs"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getGatewayVpnAttachmentsAttachmentTunnelOptionsSpecification:getGatewayVpnAttachmentsAttachmentTunnelOptionsSpecification":{"properties":{"customerGatewayId":{"type":"string","description":"The ID of the user gateway associated with the tunnel.\u003e This parameter is required when creating a dual-tunnel mode IPsec-VPN connection.\n"},"enableDpd":{"type":"boolean","description":"Whether the DPD (peer alive detection) function is enabled for the tunnel. Value:-**true** (default): enable the DPD function. IPsec initiator will send DPD message to check whether the peer device is alive. If the peer device does not receive a correct response within the set time, it is considered that the peer has been disconnected. IPsec will delete ISAKMP SA and the corresponding IPsec SA, and the security tunnel will also be deleted.-**false**: If the DPD function is disabled, the IPsec initiator does not send DPD detection packets.\n"},"enableNatTraversal":{"type":"boolean","description":"Whether the NAT crossing function is enabled for the tunnel. Value:-**true** (default): Enables the NAT Traversal function. When enabled, the IKE negotiation process deletes the verification process of the UDP port number and realizes the discovery function of the NAT gateway device in the tunnel.-**false**: does not enable the NAT Traversal function.\n"},"internetIp":{"type":"string","description":"The local internet IP in Tunnel.\n"},"role":{"type":"string","description":"The role of Tunnel.\n"},"state":{"type":"string","description":"The state of Tunnel.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`attaching`\" pulumi-lang-dotnet=\"`Attaching`\" pulumi-lang-go=\"`attaching`\" pulumi-lang-python=\"`attaching`\" pulumi-lang-yaml=\"`attaching`\" pulumi-lang-java=\"`attaching`\"\u003e`attaching`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`attached`\" pulumi-lang-dotnet=\"`Attached`\" pulumi-lang-go=\"`attached`\" pulumi-lang-python=\"`attached`\" pulumi-lang-yaml=\"`attached`\" pulumi-lang-java=\"`attached`\"\u003e`attached`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`detaching`\" pulumi-lang-dotnet=\"`Detaching`\" pulumi-lang-go=\"`detaching`\" pulumi-lang-python=\"`detaching`\" pulumi-lang-yaml=\"`detaching`\" pulumi-lang-java=\"`detaching`\"\u003e`detaching`\u003c/span\u003e, `financialLocked`, \u003cspan pulumi-lang-nodejs=\"`provisioning`\" pulumi-lang-dotnet=\"`Provisioning`\" pulumi-lang-go=\"`provisioning`\" pulumi-lang-python=\"`provisioning`\" pulumi-lang-yaml=\"`provisioning`\" pulumi-lang-java=\"`provisioning`\"\u003e`provisioning`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`updating`\" pulumi-lang-dotnet=\"`Updating`\" pulumi-lang-go=\"`updating`\" pulumi-lang-python=\"`updating`\" pulumi-lang-yaml=\"`updating`\" pulumi-lang-java=\"`updating`\"\u003e`updating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`upgrading`\" pulumi-lang-dotnet=\"`Upgrading`\" pulumi-lang-go=\"`upgrading`\" pulumi-lang-python=\"`upgrading`\" pulumi-lang-yaml=\"`upgrading`\" pulumi-lang-java=\"`upgrading`\"\u003e`upgrading`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleted`\" pulumi-lang-dotnet=\"`Deleted`\" pulumi-lang-go=\"`deleted`\" pulumi-lang-python=\"`deleted`\" pulumi-lang-yaml=\"`deleted`\" pulumi-lang-java=\"`deleted`\"\u003e`deleted`\u003c/span\u003e.\n"},"tunnelBgpConfig":{"$ref":"#/types/alicloud:vpn/getGatewayVpnAttachmentsAttachmentTunnelOptionsSpecificationTunnelBgpConfig:getGatewayVpnAttachmentsAttachmentTunnelOptionsSpecificationTunnelBgpConfig","description":"Add the BGP configuration for the tunnel.\u003e After you enable the BGP function for IPsec connections (that is, specify **EnableTunnelsBgp** as **true**), you must configure this parameter.\n"},"tunnelId":{"type":"string","description":"The tunnel ID of IPsec-VPN connection.\n"},"tunnelIkeConfig":{"$ref":"#/types/alicloud:vpn/getGatewayVpnAttachmentsAttachmentTunnelOptionsSpecificationTunnelIkeConfig:getGatewayVpnAttachmentsAttachmentTunnelOptionsSpecificationTunnelIkeConfig","description":"Configuration information for the first phase negotiation.\n"},"tunnelIndex":{"type":"integer","description":"The order in which the tunnel was created.-**1**: First tunnel.-**2**: The second tunnel.\n"},"tunnelIpsecConfig":{"$ref":"#/types/alicloud:vpn/getGatewayVpnAttachmentsAttachmentTunnelOptionsSpecificationTunnelIpsecConfig:getGatewayVpnAttachmentsAttachmentTunnelOptionsSpecificationTunnelIpsecConfig","description":"Configuration information for the second-stage negotiation.\n"},"zoneNo":{"type":"string","description":"The zoneNo of tunnel.\n"}},"type":"object","required":["customerGatewayId","enableDpd","enableNatTraversal","internetIp","role","state","status","tunnelBgpConfig","tunnelId","tunnelIkeConfig","tunnelIndex","tunnelIpsecConfig","zoneNo"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getGatewayVpnAttachmentsAttachmentTunnelOptionsSpecificationTunnelBgpConfig:getGatewayVpnAttachmentsAttachmentTunnelOptionsSpecificationTunnelBgpConfig":{"properties":{"bgpStatus":{"type":"string","description":"BGP status.\n"},"localAsn":{"type":"integer","description":"The number of the local (Alibaba Cloud) autonomous system of the tunnel. The value range of the autonomous system number is **1** to **4294967295**. Default value: **45104**.\u003e We recommend that you use the private number of the autonomous system number to establish a BGP connection with Alibaba Cloud. The private number range of the autonomous system number please consult the document yourself.\n"},"localBgpIp":{"type":"string","description":"The local BGP address of the tunnel (on the Alibaba Cloud side). This address is an IP address in the BGP network segment.\n"},"peerAsn":{"type":"string","description":"Peer asn.\n"},"peerBgpIp":{"type":"string","description":"Peer bgp ip.\n"},"tunnelCidr":{"type":"string","description":"The BGP network segment of the tunnel. The network segment must be a network segment with a mask length of 30 in 169.254.0.0/16, and cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, and 169.254.169.252/30.\u003e the network segments of two tunnels under an IPsec connection cannot be the same.\n"}},"type":"object","required":["bgpStatus","localAsn","localBgpIp","peerAsn","peerBgpIp","tunnelCidr"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getGatewayVpnAttachmentsAttachmentTunnelOptionsSpecificationTunnelIkeConfig:getGatewayVpnAttachmentsAttachmentTunnelOptionsSpecificationTunnelIkeConfig":{"properties":{"ikeAuthAlg":{"type":"string","description":"The authentication algorithm negotiated in the first stage. Values: **md5**, **sha1**, **sha256**, **sha384**, **sha512**. Default value: **sha1**.\n"},"ikeEncAlg":{"type":"string","description":"The encryption algorithm negotiated in the first stage. Value: **aes**, **aes192**, **aes256**, **des**, or **3des**. Default value: **aes**.\n"},"ikeLifetime":{"type":"integer","description":"The life cycle of SA negotiated in the first stage. Unit: seconds.Value range: **0** to **86400**. Default value: **86400**.\n"},"ikeMode":{"type":"string","description":"IKE version of the negotiation mode. Value: **main** or **aggressive**. Default value: **main**.-**main**: main mode, high security during negotiation.-**aggressive**: Savage mode, fast negotiation and high negotiation success rate.\n"},"ikePfs":{"type":"string","description":"The first stage negotiates the Diffie-Hellman key exchange algorithm used. Default value: **group2**.Values: **group1**, **group2**, **group5**, **group14**.\n"},"ikeVersion":{"type":"string","description":"Version of the IKE protocol. Value: **ikev1** or **ikev2**. Default value: **ikev2**.Compared with IKEv1, IKEv2 simplifies the SA negotiation process and provides better support for multiple network segments.\n"},"localId":{"type":"string","description":"The identifier of the local end of the tunnel (Alibaba Cloud side), which is used for the first phase of negotiation. The length is limited to 100 characters and cannot contain spaces. The default value is the IP address of the tunnel.**LocalId** supports the FQDN format. If you use the FQDN format, we recommend that you select **aggressive** (barbaric mode) as the negotiation mode.\n"},"psk":{"type":"string","description":"The pre-shared key is used for identity authentication between the tunnel and the tunnel peer.-The key can be 1 to 100 characters in length. It supports numbers, upper and lower case English letters, and characters on the right. It cannot contain spaces. '''~! \\'@#$%^\u0026 *()_-+ ={}[]|;:',./? '''-If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. \u003e The pre-shared key of the tunnel and the tunnel peer must be the same, otherwise the system cannot establish the tunnel normally.\n"},"remoteId":{"type":"string","description":"Identifier of the tunnel peer, which is used for the first-stage negotiation. The length is limited to 100 characters and cannot contain spaces. The default value is the IP address of the user gateway associated with the tunnel.- **RemoteId** supports the FQDN format. If you use the FQDN format, we recommend that you select **aggressive** (barbaric mode) as the negotiation mode.\n"}},"type":"object","required":["ikeAuthAlg","ikeEncAlg","ikeLifetime","ikeMode","ikePfs","ikeVersion","localId","psk","remoteId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getGatewayVpnAttachmentsAttachmentTunnelOptionsSpecificationTunnelIpsecConfig:getGatewayVpnAttachmentsAttachmentTunnelOptionsSpecificationTunnelIpsecConfig":{"properties":{"ipsecAuthAlg":{"type":"string","description":"The second stage negotiated authentication algorithm.Values: **md5**, **sha1**, **sha256**, **sha384**, **sha512**. Default value: **sha1**.\n"},"ipsecEncAlg":{"type":"string","description":"The encryption algorithm negotiated in the second stage. Value: **aes**, **aes192**, **aes256**, **des**, or **3des**. Default value: **aes**.\n"},"ipsecLifetime":{"type":"integer","description":"The life cycle of SA negotiated in the second stage. Unit: seconds.Value range: **0** to **86400**. Default value: **86400**.\n"},"ipsecPfs":{"type":"string","description":"The second stage negotiates the Diffie-Hellman key exchange algorithm used. Default value: **group2**.Values: **disabled**, **group1**, **group2**, **group5**, **group14**.\n"}},"type":"object","required":["ipsecAuthAlg","ipsecEncAlg","ipsecLifetime","ipsecPfs"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getGatewayZonesZone:getGatewayZonesZone":{"properties":{"zoneId":{"type":"string","description":"The zone ID.\n"},"zoneName":{"type":"string","description":"The zone name.\n"}},"type":"object","required":["zoneId","zoneName"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:vpn/getGatewaysGateway:getGatewaysGateway":{"properties":{"autoPropagate":{"type":"string","description":"Whether to automatically propagate BGP routes to the VPC. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"businessStatus":{"type":"string","description":"Limit search to specific business status - valid value is \"Normal\", \"FinancialLocked\".\n"},"createTime":{"type":"string","description":"The creation time of the VPN gateway.\n"},"description":{"type":"string","description":"The description of the VPN\n"},"disasterRecoveryInternetIp":{"type":"string","description":"The backup public IP address of the VPN gateway. The second IP address assigned by the system to create an IPsec-VPN connection. This parameter is returned only when the VPN gateway supports the dual-tunnel mode.\n"},"disasterRecoveryVswitchId":{"type":"string","description":"- The ID of the backup vSwitch to which the VPN gateway is attached.\n"},"enableIpsec":{"type":"string","description":"Indicates whether the IPsec-VPN feature is enabled.\n"},"enableSsl":{"type":"string","description":"Whether the ssl function is enabled. It has been deprecated from provider version 1.243.0, and using \u003cspan pulumi-lang-nodejs=\"`sslVpn`\" pulumi-lang-dotnet=\"`SslVpn`\" pulumi-lang-go=\"`sslVpn`\" pulumi-lang-python=\"`ssl_vpn`\" pulumi-lang-yaml=\"`sslVpn`\" pulumi-lang-java=\"`sslVpn`\"\u003e`ssl_vpn`\u003c/span\u003e instead.\n"},"endTime":{"type":"string","description":"The expiration time of the VPN gateway.\n"},"id":{"type":"string","description":"ID of the VPN.\n"},"instanceChargeType":{"type":"string","description":"The charge type of the VPN gateway.\n"},"internetIp":{"type":"string","description":"The internet ip of the VPN.\n"},"name":{"type":"string","description":"The name of the VPN.\n"},"networkType":{"type":"string","description":"The network type of the VPN gateway.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"specification":{"type":"string","description":"The Specification of the VPN\n"},"sslConnections":{"type":"integer","description":"Total count of ssl vpn connections.\n"},"sslVpn":{"type":"string","description":"Indicates whether the SSL-VPN feature is enabled. Valid value is \u003cspan pulumi-lang-nodejs=\"`enable`\" pulumi-lang-dotnet=\"`Enable`\" pulumi-lang-go=\"`enable`\" pulumi-lang-python=\"`enable`\" pulumi-lang-yaml=\"`enable`\" pulumi-lang-java=\"`enable`\"\u003e`enable`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\"\u003e`disable`\u003c/span\u003e.\n"},"sslVpnInternetIp":{"type":"string","description":"The IP address of the SSL-VPN connection. This parameter is returned only when the VPN gateway is a public VPN gateway and supports only the single-tunnel mode. In addition, the VPN gateway must have the SSL-VPN feature enabled.\n"},"status":{"type":"string","description":"Limit search to specific status - valid value is \"Init\", \"Provisioning\", \"Active\", \"Updating\", \"Deleting\".\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The Tag of.\n"},"vpcId":{"type":"string","description":"Use the VPC ID as the search key.\n"},"vpnType":{"type":"string","description":"- The VPN gateway type. Value:  Normal (default): Normal type. NationalStandard: National Secret type.\n"},"vswitchId":{"type":"string","description":"- The ID of the vSwitch to which the VPN gateway is attached.\n"}},"type":"object","required":["autoPropagate","businessStatus","createTime","description","disasterRecoveryInternetIp","disasterRecoveryVswitchId","enableIpsec","enableSsl","endTime","id","instanceChargeType","internetIp","name","networkType","resourceGroupId","specification","sslConnections","sslVpn","sslVpnInternetIp","status","tags","vpcId","vpnType","vswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:waf/DomainLogHeader:DomainLogHeader":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"alicloud:waf/getCertificatesCertificate:getCertificatesCertificate":{"properties":{"certificateId":{"type":"string","description":"Certificate recording ID.\n"},"certificateName":{"type":"string","description":"Your certificate name.\n"},"commonName":{"type":"string","description":"Certificate bound to the domain name.\n"},"domain":{"type":"string","description":"WAF domain name.\n"},"id":{"type":"string","description":"The ID of the Certificate.\n"},"instanceId":{"type":"string","description":"WAF instance ID.\n"},"isUsing":{"type":"boolean"},"sans":{"type":"array","items":{"type":"string"}}},"type":"object","required":["certificateId","certificateName","commonName","domain","id","instanceId","isUsing","sans"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:waf/getDomainsDomain:getDomainsDomain":{"properties":{"clusterType":{"type":"string","description":"The type of the WAF cluster.\n"},"cname":{"type":"string","description":"The CNAME record assigned by the WAF instance to the specified domain.\n"},"connectionTime":{"type":"integer","description":"The connection timeout for WAF exclusive clusters. Valid values: `PhysicalCluster` and `VirtualCluster`. Default to `PhysicalCluster`.\n"},"domain":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e has been deprecated from version 1.94.0. Use \u003cspan pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\"\u003e`domain_name`\u003c/span\u003e instead.\n"},"domainName":{"type":"string","description":"Name of the domain.\n"},"http2Ports":{"type":"array","items":{"type":"string"},"description":"List of the HTTP 2.0 ports.\n"},"httpPorts":{"type":"array","items":{"type":"string"},"description":"List of the HTTP ports.\n"},"httpToUserIp":{"type":"string","description":"Specifies whether to enable the HTTP back-to-origin feature. After this feature is enabled, the WAF instance can use HTTP to forward HTTPS requests to the origin server.\n"},"httpsPorts":{"type":"array","items":{"type":"string"},"description":"List of the HTTPS ports.\n"},"httpsRedirect":{"type":"string","description":"Specifies whether to redirect HTTP requests as HTTPS requests. Valid values: `On` and `Off`. Default to `Off`.\n"},"id":{"type":"string","description":"The ID of domain self ID, value as \u003cspan pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\"\u003e`domain_name`\u003c/span\u003e.\n"},"isAccessProduct":{"type":"string","description":"Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: `On` and \"Off\". Default to `Off`.\n"},"loadBalancing":{"type":"string","description":"The load balancing algorithm that is used to forward requests to the origin. Valid values: `IpHash` and `RoundRobin`. Default to `IpHash`.\n"},"logHeaders":{"type":"array","items":{"$ref":"#/types/alicloud:waf/getDomainsDomainLogHeader:getDomainsDomainLogHeader"},"description":"The key-value pair that is used to mark the traffic that flows through WAF to the domain. Each item contains two field:\n"},"readTime":{"type":"integer","description":"The read timeout of a WAF exclusive cluster. Unit: seconds.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the queried domain belongs in Resource Management.\n"},"sourceIps":{"type":"array","items":{"type":"string"},"description":"List of the IP address or domain of the origin server to which the specified domain points.\n"},"version":{"type":"integer","description":"The system data identifier that is used to control optimistic locking.\n"},"writeTime":{"type":"integer","description":"The timeout period for a WAF exclusive cluster write connection. Unit: seconds.\n"}},"type":"object","required":["clusterType","cname","connectionTime","domain","domainName","http2Ports","httpPorts","httpToUserIp","httpsPorts","httpsRedirect","id","isAccessProduct","loadBalancing","logHeaders","readTime","resourceGroupId","sourceIps","version","writeTime"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:waf/getDomainsDomainLogHeader:getDomainsDomainLogHeader":{"properties":{"key":{"type":"string","description":"The key of label.\n"},"value":{"type":"string","description":"The value of label.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:waf/getInstancesInstance:getInstancesInstance":{"properties":{"endDate":{"type":"integer","description":"The timestamp (in seconds) indicating when the WAF instance expires.\n"},"id":{"type":"string","description":"The ID of the WAF instance.\n"},"inDebt":{"type":"integer","description":"Indicates whether the WAF instance has overdue payments.\n"},"instanceId":{"type":"string","description":"The ID of WAF the instance.\n"},"remainDay":{"type":"integer","description":"The number of days before the trial period of the WAF instance expires.\n"},"status":{"type":"integer","description":"The status of WAF instance to filter results. Optional value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: The instance has expired, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e : The instance has not expired and is working properly.\n"},"subscriptionType":{"type":"string"},"trial":{"type":"integer","description":"Indicates whether this is a trial instance.\n"}},"type":"object","required":["endDate","id","inDebt","instanceId","remainDay","status","subscriptionType","trial"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:wafv3/DefenseRuleConfig:DefenseRuleConfig":{"properties":{"abroadRegions":{"type":"string","description":"The regions outside China from which you want to block requests. Separate multiple region codes with commas (,). You can call the DescribeIpAbroadCountryInfos operation to query the countries and regions outside China that can be blocked.\n"},"accountIdentifiers":{"type":"array","items":{"$ref":"#/types/alicloud:wafv3/DefenseRuleConfigAccountIdentifier:DefenseRuleConfigAccountIdentifier"},"description":"The policies for account extraction. Up to five policies are supported. Each policy is a JSON string. For more information, see accountIdentifiers description. See \u003cspan pulumi-lang-nodejs=\"`accountIdentifiers`\" pulumi-lang-dotnet=\"`AccountIdentifiers`\" pulumi-lang-go=\"`accountIdentifiers`\" pulumi-lang-python=\"`account_identifiers`\" pulumi-lang-yaml=\"`accountIdentifiers`\" pulumi-lang-java=\"`accountIdentifiers`\"\u003e`account_identifiers`\u003c/span\u003e below.\n"},"autoUpdate":{"type":"boolean","description":"Whether the new Web core protection rules are automatically updated. Values:\n"},"bypassRegularRules":{"type":"array","items":{"type":"string"},"description":"The list of regular rule IDs that are not detected. The value is in the [\"XX1\", \"XX2\",...] format. This parameter is required only when the module to which the whitelist applies is set to specific regular rules in basic protection (BypassTags is set to regular_rule).\n"},"bypassRegularTypes":{"type":"array","items":{"type":"string"},"description":"The regular rule type is not detected. This parameter is configured only when the whitelist module is configured as the Web application regular type (the value of the BypassTags parameter is regular_type). Value:\n- sqli: Indicates SQL injection.\n- xss: Indicates cross-site scripting (XSS).\n- cmdi: Indicates OS command injection.\n- expression_injection: Indicates expression injection.\n- java_deserialization: indicates Java deserialization.\n- dot_net_deserialization: Represents. net deserialization.\n- php_deserialization: indicates PHP deserialization.\n- code_exec: Indicates code execution.\n- ssrf: indicates SSRF (server-side request forgery).\n- path_traversal: indicates a Path Traversal.\n- arbitrary_file_uploading: Indicates to upload any file.\n- webshell: Represents a webshell.\n- rfilei: Indicates the remote file contains (RFI).\n- lfilei: Indicates that the local file contains (LFI).\n- protocol_violation: indicates a protocol violation.\n- scanner_behavior: Indicates scanner behavior.\n- logic_flaw: Indicates a business logic defect.\n- arbitrary_file_reading: Indicates arbitrary file reading.\n- arbitrary_file_download: Indicates an arbitrary file download.\n- xxe: Indicates external entity injection.\n- csrf: indicates cross-site request forgery.\n- crlf: indicates CRLF.\n- other: indicates other.\n"},"bypassTags":{"type":"array","items":{"type":"string"},"description":"The modules to which the whitelist applies. The value is in the [\"XX1\", \"XX2\",...] format. Valid values:\n- waf: indicates all modules.\n- customrule: indicates custom rules.\n- blacklist: indicates IP blacklist.\n- antiscan: indicates scan protection.\n- regular: indicates basic protection rules.\n- regular_rule: indicates specific regular rules in basic protection.\n- regular_type: indicates specific regular rule types in basic protection.\n- major_protection: indicates major event support protection.\n- cc: indicates CC protection.\n- region_block: indicates Location Blacklist.\n- antibot_scene: indicates BOT scenario protection.\n- dlp: indicates information leakage prevention.\n- tamperproof: indicates web tamper-proofing.\n- spike_throttle: indicates peak traffic throttling.\n"},"ccEffect":{"type":"string","description":"Set the effective range of the speed limit. This information is configured only when ccStatus is set to 1. Value:\n- service: indicates that the effective object is a protected object.\n- rule: indicates that the effective object is a single rule.\n"},"ccStatus":{"type":"integer","description":"Whether to open the speed limit. Value:\n- 0: indicates that the speed limit is off.\n- 1: Indicates that the speed limit is on.\n"},"cnRegions":{"type":"string","description":"The regions in China from which you want to block requests. If you specify \"CN\", requests from the Chinese mainland (excluding Hong Kong, Macao, and Taiwan) are blocked. Separate multiple regions with commas (,). For more information about region codes, see Description of region codes in China.\n"},"codecLists":{"type":"array","items":{"type":"string"},"description":"The type to enable decoding. Value:\n"},"conditions":{"type":"array","items":{"$ref":"#/types/alicloud:wafv3/DefenseRuleConfigCondition:DefenseRuleConfigCondition"},"description":"The traffic characteristics of ACL, which are described in JSON format. You can enter up to five matching conditions. For specific configuration information, see detailed configuration of conditions. See \u003cspan pulumi-lang-nodejs=\"`conditions`\" pulumi-lang-dotnet=\"`Conditions`\" pulumi-lang-go=\"`conditions`\" pulumi-lang-python=\"`conditions`\" pulumi-lang-yaml=\"`conditions`\" pulumi-lang-java=\"`conditions`\"\u003e`conditions`\u003c/span\u003e below.\n"},"grayConfig":{"$ref":"#/types/alicloud:wafv3/DefenseRuleConfigGrayConfig:DefenseRuleConfigGrayConfig","description":"The canary release configuration for the rule. The value is a JSON. This parameter is required only when you set `GrayStatus` to 1. See \u003cspan pulumi-lang-nodejs=\"`grayConfig`\" pulumi-lang-dotnet=\"`GrayConfig`\" pulumi-lang-go=\"`grayConfig`\" pulumi-lang-python=\"`gray_config`\" pulumi-lang-yaml=\"`grayConfig`\" pulumi-lang-java=\"`grayConfig`\"\u003e`gray_config`\u003c/span\u003e below.\n"},"grayStatus":{"type":"integer","description":"Specifies whether to enable canary release for the rule. Valid values:\n- 0 (default): disables canary release.\n- 1: enables canary release.\n"},"mode":{"type":"integer","description":"The HTTP flood protection mode. Valid values:\n- 0 (default): indicates normal protection.\n- 1: indicates emergency protection.\n"},"protocol":{"type":"string","description":"The protocol type of the cached page address. Valid values: http, https.\n"},"rateLimit":{"$ref":"#/types/alicloud:wafv3/DefenseRuleConfigRateLimit:DefenseRuleConfigRateLimit","description":"The detailed speed limit configuration, which is described in the JSON string format. This information is configured only when CcStatus is set to 1. For specific configuration information, see detailed configuration of Ratelimit. See \u003cspan pulumi-lang-nodejs=\"`rateLimit`\" pulumi-lang-dotnet=\"`RateLimit`\" pulumi-lang-go=\"`rateLimit`\" pulumi-lang-python=\"`rate_limit`\" pulumi-lang-yaml=\"`rateLimit`\" pulumi-lang-java=\"`rateLimit`\"\u003e`rate_limit`\u003c/span\u003e below.\n"},"remoteAddrs":{"type":"array","items":{"type":"string"},"description":"The IP addresses that you want to add to the blacklist. Specify the value of this parameter in the [\"ip1\",\"ip2\",...] format.\n"},"ruleAction":{"type":"string","description":"Web core protection rule action. Valid values:\n"},"throttleThrehold":{"type":"integer","description":"The throttling threshold. Valid values:\n- The QPS throttling threshold ranges from 1 to 5000000. If you select QPS throttling (such as 500 QPS), traffic that meets the throttling conditions and exceeds 500 QPS will be blocked.\n- The percentage throttling threshold ranges from 1 to 99. If you select percentage throttling (such as 80%), only 80% of the traffic that meets the throttling conditions will be allowed.\n"},"throttleType":{"type":"string","description":"The throttling method. Valid values:\n- qps: indicates throttling based on queries per second (QPS).\n- ratio (default): indicates throttling based on percentage.\n"},"timeConfig":{"$ref":"#/types/alicloud:wafv3/DefenseRuleConfigTimeConfig:DefenseRuleConfigTimeConfig","description":"The scheduled rule configuration. The value is a JSON.  See \u003cspan pulumi-lang-nodejs=\"`timeConfig`\" pulumi-lang-dotnet=\"`TimeConfig`\" pulumi-lang-go=\"`timeConfig`\" pulumi-lang-python=\"`time_config`\" pulumi-lang-yaml=\"`timeConfig`\" pulumi-lang-java=\"`timeConfig`\"\u003e`time_config`\u003c/span\u003e below.\n"},"ua":{"type":"string","description":"The User-Agent string that is allowed for access to the address.\n"},"url":{"type":"string","description":"The address of the cached page.\n"},"wafBaseConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:wafv3/DefenseRuleConfigWafBaseConfig:DefenseRuleConfigWafBaseConfig"},"description":"The configuration of the Web core protection rules to be modified. See \u003cspan pulumi-lang-nodejs=\"`wafBaseConfig`\" pulumi-lang-dotnet=\"`WafBaseConfig`\" pulumi-lang-go=\"`wafBaseConfig`\" pulumi-lang-python=\"`waf_base_config`\" pulumi-lang-yaml=\"`wafBaseConfig`\" pulumi-lang-java=\"`wafBaseConfig`\"\u003e`waf_base_config`\u003c/span\u003e below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ccEffect","timeConfig"]}}},"alicloud:wafv3/DefenseRuleConfigAccountIdentifier:DefenseRuleConfigAccountIdentifier":{"properties":{"decodeType":{"type":"string","description":"The authentication mode. Valid values:\n- plain: indicates plaintext.\n- basic: indicates Basic authentication.\n- jwt: indicates JWT authentication. For JWT authentication, you must specify the field that stores the decoded account information (position).\n"},"key":{"type":"string","description":"Match field. Valid values: URL, URLPath, IP, Referer, User-Agent, Params, Cookie, Content-Type, Content-Length, X-Forwarded-For, Post-Body, Http-Method, Header, Host, HttpCode, and SensitiveInfo.\n\n\u003e **NOTE:**  Support for matching fields is based on the display in the WAF console. HttpCode and SensitiveInfo are the matching fields supported by the information leakage prevention rule (dlp).\n"},"position":{"type":"string","description":"The field that stores the decoded account information.\n"},"priority":{"type":"integer","description":"The priority of the current extraction configuration. Each traffic can match at most one extraction policy. Valid values: [0,20]. A smaller value indicates a higher priority. The priority value must be unique.\n"},"subKey":{"type":"string","description":"The characteristics of the statistical object. When the Target parameter is set to cookie, header, or queryarg, you must specify the corresponding information in the Subkey parameter.\n"}},"type":"object"},"alicloud:wafv3/DefenseRuleConfigCondition:DefenseRuleConfigCondition":{"properties":{"key":{"type":"string","description":"Match field. Valid values: URL, URLPath, IP, Referer, User-Agent, Params, Cookie, Content-Type, Content-Length, X-Forwarded-For, Post-Body, Http-Method, Header, Host, HttpCode, and SensitiveInfo.\n\n\u003e **NOTE:**  Support for matching fields is based on the display in the WAF console. HttpCode and SensitiveInfo are the matching fields supported by the information leakage prevention rule (dlp).\n"},"opValue":{"type":"string","description":"Logical character. Value:\n- not-contain: does not contain.\n- contain: Indicates to contain.\n- none: It does not exist.\n- ne: means not equal.\n- eq: means equal.\n- lt: indicates that the value is less.\n- gt: indicates that the value is greater.\n- len-lt: indicates that the length is less.\n- len-eq: indicates that the length is equal.\n- len-gt: indicates that the length is greater.\n- not-match: indicates a mismatch.\n- match-one: means equal to one of the multiple values.\n- all-not-match: means not equal to any value.\n- all-not-contain: does not contain any value.\n- contain-one: Indicates that one of the multiple values is contained.\n- not-regex: Indicates a regular mismatch.\n- regex: Indicates a regular match.\n- all-not-regex: indicates that the regular expressions do not match.\n- regex-one: Represents a regular match for one of them.\n- prefix-match: Indicates a prefix match.\n- suffix-match: indicates a suffix match.\n- mpty: Indicates that the content is empty.\n- exists: Indicates that the field exists.\n- inl: indicates in the list.\n\n\u003e **NOTE:**  Not all logical characters (opvalues) can be configured for the match field (key) of each custom rule. For the logical characters supported by different matching fields, please refer to the association relationship between the matching fields and the logical characters in the custom rules of the WAF console.\n"},"subKey":{"type":"string","description":"The characteristics of the statistical object. When the Target parameter is set to cookie, header, or queryarg, you must specify the corresponding information in the Subkey parameter.\n"},"values":{"type":"string","description":"Match the content and fill in the corresponding content as needed.\n\n\u003e **NOTE:**  The value range of the logical (opValue) and matching content (values) parameters in the matching condition parameter is related to the specified matching field (key).\n"}},"type":"object"},"alicloud:wafv3/DefenseRuleConfigGrayConfig:DefenseRuleConfigGrayConfig":{"properties":{"grayRate":{"type":"integer","description":"The percentage of traffic for which the canary release takes effect. The value must be in the range of 1 to 100.\n"},"graySubKey":{"type":"string","description":"The sub-feature of the statistical object. This parameter is required when you set the `GrayTarget` parameter to \u003cspan pulumi-lang-nodejs=\"`cookie`\" pulumi-lang-dotnet=\"`Cookie`\" pulumi-lang-go=\"`cookie`\" pulumi-lang-python=\"`cookie`\" pulumi-lang-yaml=\"`cookie`\" pulumi-lang-java=\"`cookie`\"\u003e`cookie`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`header`\" pulumi-lang-dotnet=\"`Header`\" pulumi-lang-go=\"`header`\" pulumi-lang-python=\"`header`\" pulumi-lang-yaml=\"`header`\" pulumi-lang-java=\"`header`\"\u003e`header`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`queryarg`\" pulumi-lang-dotnet=\"`Queryarg`\" pulumi-lang-go=\"`queryarg`\" pulumi-lang-python=\"`queryarg`\" pulumi-lang-yaml=\"`queryarg`\" pulumi-lang-java=\"`queryarg`\"\u003e`queryarg`\u003c/span\u003e.\n"},"grayTarget":{"type":"string","description":"The type of the canary release object. Valid values:\n"}},"type":"object"},"alicloud:wafv3/DefenseRuleConfigRateLimit:DefenseRuleConfigRateLimit":{"properties":{"interval":{"type":"integer","description":"The statistical period, in seconds. This parameter specifies the period during which access counts are collected, and works with the Threshold parameter.\nValid values: 1 to 1800 seconds.\n"},"status":{"$ref":"#/types/alicloud:wafv3/DefenseRuleConfigRateLimitStatus:DefenseRuleConfigRateLimitStatus","description":"Response code frequency setting. The description is in the JSON string format. See \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e below.\n"},"subKey":{"type":"string","description":"The characteristics of the statistical object. When the Target parameter is set to cookie, header, or queryarg, you must specify the corresponding information in the Subkey parameter.\n"},"target":{"type":"string","description":"The type of the statistical object. Valid values:\n-\u003cspan pulumi-lang-nodejs=\" remoteAddr \" pulumi-lang-dotnet=\" RemoteAddr \" pulumi-lang-go=\" remoteAddr \" pulumi-lang-python=\" remote_addr \" pulumi-lang-yaml=\" remoteAddr \" pulumi-lang-java=\" remoteAddr \"\u003e remote_addr \u003c/span\u003e(default): indicates IP.\n- cookie.acw_tc: indicates session.\n- header: indicates custom header. If you use custom headers, you must specify the headers in subkey.\n- queryarg: indicates custom parameters. If you use custom parameters, you must specify the parameters in subkey.\n- cookie: indicates custom cookies. If you use custom cookies, you must specify the cookies in subkey.\n"},"threshold":{"type":"integer","description":"The maximum number of requests that can be sent from a statistical object.\n"},"ttl":{"type":"integer","description":"The period of time during which you want the specified action to be valid. Unit: seconds.\nValid values: 60 to 86400.\n"}},"type":"object"},"alicloud:wafv3/DefenseRuleConfigRateLimitStatus:DefenseRuleConfigRateLimitStatus":{"properties":{"code":{"type":"integer","description":"Required. Specifies the response code.\n"},"count":{"type":"integer","description":"The threshold for the number of occurrences. When the number of occurrences of the specified HTTP status code exceeds this threshold, the protection rule is triggered. Valid values: 2 to 50000. You can specify Count or Ratio. You cannot specify the two parameters at the same time.\n"},"ratio":{"type":"integer","description":"The threshold for the proportion of occurrences (percentage). When the proportion of occurrences of the specified HTTP status code exceeds this threshold, the protection rule is triggered. Valid values: 1 to 100. You can specify Count or Ratio. You cannot specify the two parameters at the same time.\n"}},"type":"object"},"alicloud:wafv3/DefenseRuleConfigTimeConfig:DefenseRuleConfigTimeConfig":{"properties":{"timePeriods":{"type":"array","items":{"$ref":"#/types/alicloud:wafv3/DefenseRuleConfigTimeConfigTimePeriod:DefenseRuleConfigTimeConfigTimePeriod"},"description":"The time period during which the rule is effective. This parameter is required when you set the `TimeScope` parameter to \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e. A maximum of five time periods can be set. See \u003cspan pulumi-lang-nodejs=\"`timePeriods`\" pulumi-lang-dotnet=\"`TimePeriods`\" pulumi-lang-go=\"`timePeriods`\" pulumi-lang-python=\"`time_periods`\" pulumi-lang-yaml=\"`timePeriods`\" pulumi-lang-java=\"`timePeriods`\"\u003e`time_periods`\u003c/span\u003e below.\n"},"timeScope":{"type":"string","description":"The effective period of the rule. Valid values:\n"},"timeZone":{"type":"integer","description":"The time zone in which the rule is effective. The default value is \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e. The value must be in the range of - 12 to 12. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e indicates UTC. \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e indicates UTC+8. **-8** indicates UTC-8.\n"},"weekTimePeriods":{"type":"array","items":{"$ref":"#/types/alicloud:wafv3/DefenseRuleConfigTimeConfigWeekTimePeriod:DefenseRuleConfigTimeConfigWeekTimePeriod"},"description":"The periodic time period during which the rule is effective. This parameter is required when you set the `TimeScope` parameter to \u003cspan pulumi-lang-nodejs=\"`cycle`\" pulumi-lang-dotnet=\"`Cycle`\" pulumi-lang-go=\"`cycle`\" pulumi-lang-python=\"`cycle`\" pulumi-lang-yaml=\"`cycle`\" pulumi-lang-java=\"`cycle`\"\u003e`cycle`\u003c/span\u003e. A maximum of five time periods can be set. See \u003cspan pulumi-lang-nodejs=\"`weekTimePeriods`\" pulumi-lang-dotnet=\"`WeekTimePeriods`\" pulumi-lang-go=\"`weekTimePeriods`\" pulumi-lang-python=\"`week_time_periods`\" pulumi-lang-yaml=\"`weekTimePeriods`\" pulumi-lang-java=\"`weekTimePeriods`\"\u003e`week_time_periods`\u003c/span\u003e below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["timeScope","timeZone"]}}},"alicloud:wafv3/DefenseRuleConfigTimeConfigTimePeriod:DefenseRuleConfigTimeConfigTimePeriod":{"properties":{"end":{"type":"integer","description":"The end time of each day when the rule is effective. This is a millisecond-level timestamp relative to 00:00 of the day. The value must be in the range of 0-86400000).\n"},"start":{"type":"integer","description":"The start time of each day when the rule is effective. This is a millisecond-level timestamp relative to 00:00 of the day. The value must be in the range of [0-86400000).\n"}},"type":"object"},"alicloud:wafv3/DefenseRuleConfigTimeConfigWeekTimePeriod:DefenseRuleConfigTimeConfigWeekTimePeriod":{"properties":{"day":{"type":"string","description":"The time period of each day when the rule is effective. It includes the start time start and end time end. You can specify multiple time periods.\n"},"dayPeriods":{"type":"array","items":{"$ref":"#/types/alicloud:wafv3/DefenseRuleConfigTimeConfigWeekTimePeriodDayPeriod:DefenseRuleConfigTimeConfigWeekTimePeriodDayPeriod"},"description":"The time period of each day when the rule is effective.  See \u003cspan pulumi-lang-nodejs=\"`dayPeriods`\" pulumi-lang-dotnet=\"`DayPeriods`\" pulumi-lang-go=\"`dayPeriods`\" pulumi-lang-python=\"`day_periods`\" pulumi-lang-yaml=\"`dayPeriods`\" pulumi-lang-java=\"`dayPeriods`\"\u003e`day_periods`\u003c/span\u003e below.\n"}},"type":"object"},"alicloud:wafv3/DefenseRuleConfigTimeConfigWeekTimePeriodDayPeriod:DefenseRuleConfigTimeConfigWeekTimePeriodDayPeriod":{"properties":{"end":{"type":"integer","description":"The end time of each day when the rule is effective. This is a millisecond-level timestamp relative to 00:00 of the day. The value must be in the range of 0-86400000).\n"},"start":{"type":"integer","description":"The start time of each day when the rule is effective. This is a millisecond-level timestamp relative to 00:00 of the day. The value must be in the range of [0-86400000).\n"}},"type":"object"},"alicloud:wafv3/DefenseRuleConfigWafBaseConfig:DefenseRuleConfigWafBaseConfig":{"properties":{"ruleBatchOperationConfig":{"type":"string","description":"The batch operation on rules. If this parameter is not empty, the RuleDetail parameter must be empty. Valid values:\n"},"ruleDetails":{"type":"array","items":{"$ref":"#/types/alicloud:wafv3/DefenseRuleConfigWafBaseConfigRuleDetail:DefenseRuleConfigWafBaseConfigRuleDetail"},"description":"The configuration of the Web core protection rules to be modified. See \u003cspan pulumi-lang-nodejs=\"`ruleDetail`\" pulumi-lang-dotnet=\"`RuleDetail`\" pulumi-lang-go=\"`ruleDetail`\" pulumi-lang-python=\"`rule_detail`\" pulumi-lang-yaml=\"`ruleDetail`\" pulumi-lang-java=\"`ruleDetail`\"\u003e`rule_detail`\u003c/span\u003e below.\n"},"ruleType":{"type":"string","description":"The type of the rule. Valid values:\n"}},"type":"object"},"alicloud:wafv3/DefenseRuleConfigWafBaseConfigRuleDetail:DefenseRuleConfigWafBaseConfigRuleDetail":{"properties":{"ruleAction":{"type":"string","description":"Web core protection rule action. Valid values:\n"},"ruleId":{"type":"string","description":"The protection rule ID.\n"},"ruleStatus":{"type":"integer","description":"Protection rule status.\n"}},"type":"object"},"alicloud:wafv3/DomainListen:DomainListen":{"properties":{"certId":{"type":"string","description":"The ID of the certificate to be added. This parameter is used only if the value of `HttpsPorts` is not empty (indicating that the domain name uses the HTTPS protocol).\n"},"cipherSuite":{"type":"integer","description":"The type of the cipher suites that you want to add. This parameter is available only if you specify `HttpsPorts`. Valid values:\n"},"customCiphers":{"type":"array","items":{"type":"string"},"description":"The specific custom encryption suite to add.\n"},"enableTlsv3":{"type":"boolean","description":"Whether TSL1.3 version is supported. This parameter is used only if the value of `HttpsPorts` is not empty (indicating that the domain name uses the HTTPS protocol). Value:\n"},"exclusiveIp":{"type":"boolean","description":"Specifies whether to enable the exclusive IP address feature. This parameter is available only if you set `IPv6Enabled` to false and `ProtectionResource` to \u003cspan pulumi-lang-nodejs=\"`share`\" pulumi-lang-dotnet=\"`Share`\" pulumi-lang-go=\"`share`\" pulumi-lang-python=\"`share`\" pulumi-lang-yaml=\"`share`\" pulumi-lang-java=\"`share`\"\u003e`share`\u003c/span\u003e. Valid values:\n"},"focusHttps":{"type":"boolean","description":"Specifies whether to enable force redirect from HTTP to HTTPS for received requests. This parameter is available only if you specify `HttpsPorts` and leave `HttpPorts` empty. Valid values:\n"},"http2Enabled":{"type":"boolean","description":"Specifies whether to enable HTTP/2. This parameter is available only if you specify `HttpsPorts`. Valid values:\n"},"httpPorts":{"type":"array","items":{"type":"integer"},"description":"The HTTP listener ports. Specify the value in the \\[**port1,port2,...**] format.\n"},"httpsPorts":{"type":"array","items":{"type":"integer"},"description":"The HTTPS listener ports. Specify the value in the \\[**port1,port2,...**] format.\n"},"ipv6Enabled":{"type":"boolean","description":"Specifies whether to enable IPv6 protection. Valid values:\n"},"protectionResource":{"type":"string","description":"The type of the protection resource. Valid values:\n"},"sm2AccessOnly":{"type":"boolean","description":"Specifies whether to allow access only from SM certificate-based clients. This parameter is available only if you set SM2Enabled to true.\n\n- true\n- false\n"},"sm2CertId":{"type":"string","description":"The ID of the SM certificate that you want to add. This parameter is available only if you set SM2Enabled to true.\n"},"sm2Enabled":{"type":"boolean","description":"Specifies whether to add an SM certificate.\n"},"tlsVersion":{"type":"string","description":"The version of TLS to add. This parameter is used only if the value of `HttpsPorts` is not empty (indicating that the domain name uses the HTTPS protocol). Value:\n"},"xffHeaderMode":{"type":"integer","description":"The method that is used to obtain the originating IP address of a client. Valid values:\n"},"xffHeaders":{"type":"array","items":{"type":"string"},"description":"The custom header fields that are used to obtain the originating IP address of a client. Specify the value in the **\\[\"header1\",\"header2\",...]** format.\n\n\u003e **NOTE:**   This parameter is required only if you set `XffHeaderMode` to 2.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["protectionResource","sm2Enabled"]}}},"alicloud:wafv3/DomainRedirect:DomainRedirect":{"properties":{"backends":{"type":"array","items":{"type":"string"},"description":"The IP addresses or domain names of the origin server. You cannot specify both IP addresses and domain names. If you specify domain names, the domain names can be resolved only to IPv4 addresses.\n\n- If you specify IP addresses, specify the value in the **\\[\"ip1\",\"ip2\",...]** format. You can enter up to 20 IP addresses.\n- If you specify domain names, specify the value in the **\\[\"domain\"]** format. You can enter up to 20 domain names.\n"},"backupBackends":{"type":"array","items":{"type":"string"},"description":"The secondary IP address or domain name of the origin server.\n"},"connectTimeout":{"type":"integer","description":"Connection timeout duration. Unit: seconds.\nValue range: 1~3600. Default value: 5.\n"},"focusHttpBackend":{"type":"boolean","description":"Specifies whether to enable force redirect from HTTPS to HTTP for back-to-origin requests. This parameter is available only if you specify `HttpsPorts`. Valid values:\n"},"http2Origin":{"type":"boolean","description":"Specifies whether to enable HTTP/2 for back-to-origin traffic. Valid values:\n"},"http2OriginMaxConcurrency":{"type":"integer","description":"The maximum number of concurrent HTTP/2 back-to-origin requests. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\"\u003e`512`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e.\n"},"keepalive":{"type":"boolean","description":"Specifies whether to enable the persistent connection feature. Valid values:\n"},"keepaliveRequests":{"type":"integer","description":"The number of reused persistent connections. Valid values: 60 to 1000. Default value: 1000\n\n\n\u003e **NOTE:**   This parameter specifies the number of persistent connections that can be reused after you enable the persistent connection feature.\n"},"keepaliveTimeout":{"type":"integer","description":"Idle long connection timeout, value range: 1~60, default 15, unit: seconds.\n\n\u003e **NOTE:**  How long the multiplexed long connection is idle and then released.\n"},"loadbalance":{"type":"string","description":"The load balancing algorithm that you want to use to forward requests to the origin server. Valid values:\n"},"maxBodySize":{"type":"integer","description":"The maximum size of a request body. Valid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e. Unit: GB.\n\u003e **NOTE:** This parameter is supported only by the Ultimate edition.\n"},"readTimeout":{"type":"integer","description":"The timeout period of write connections. Unit: seconds. Valid values: 1 to 3600. Default value: 120.\n"},"requestHeaders":{"type":"array","items":{"$ref":"#/types/alicloud:wafv3/DomainRedirectRequestHeader:DomainRedirectRequestHeader"},"description":"The traffic marking field and value of the domain name, which is used to mark the traffic processed by WAF.\nBy specifying custom request header fields and corresponding values, when the access traffic of the domain name passes through WAF, WAF automatically adds the set custom field value to the request header as a traffic mark, which facilitates the statistics of back-end services. See \u003cspan pulumi-lang-nodejs=\"`requestHeaders`\" pulumi-lang-dotnet=\"`RequestHeaders`\" pulumi-lang-go=\"`requestHeaders`\" pulumi-lang-python=\"`request_headers`\" pulumi-lang-yaml=\"`requestHeaders`\" pulumi-lang-java=\"`requestHeaders`\"\u003e`request_headers`\u003c/span\u003e below.\n"},"retry":{"type":"boolean","description":"Specifies whether WAF retries if WAF fails to forward requests to the origin server. Valid values:\n"},"sniEnabled":{"type":"boolean","description":"Specifies whether to enable the Server Name Indication (SNI) feature for back-to-origin requests. This parameter is available only if you specify `HttpsPorts`. Valid values:\n"},"sniHost":{"type":"string","description":"The custom value of the SNI field. If you do not specify this parameter, the value of the `Host` header field is automatically used. In most cases, you do not need to specify a custom value for the SNI field. However, if you want WAF to use an SNI field whose value is different from the value of the Host header field in back-to-origin requests, you can specify a custom value for the SNI field.\n\n\u003e **NOTE:**   This parameter is required only if you set `SniEnabled` to true.\n"},"writeTimeout":{"type":"integer","description":"The timeout period of write connections. Unit: seconds. Valid values: 1 to 3600. Default value: 120.\n"},"xffProto":{"type":"boolean","description":"Specifies whether to use the X-Forward-For-Proto header field to pass the protocol used by WAF to forward requests to the origin server. Valid values:\n"}},"type":"object","required":["loadbalance"],"language":{"nodejs":{"requiredOutputs":["backends","backupBackends","keepaliveRequests","keepaliveTimeout","loadbalance","maxBodySize"]}}},"alicloud:wafv3/DomainRedirectRequestHeader:DomainRedirectRequestHeader":{"properties":{"key":{"type":"string","description":"Specified custom request header fields\n"},"value":{"type":"string","description":"Customize the value of the request header field.\n"}},"type":"object"},"alicloud:wafv3/getDomainsDomain:getDomainsDomain":{"properties":{"cname":{"type":"string","description":"The CNAME assigned by WAF to the domain name.\n"},"domain":{"type":"string","description":"The name of the domain name to query.\n"},"id":{"type":"string","description":"The ID of the domain. It formats as `\u003cinstance_id\u003e:\u003cdomain\u003e`.\n"},"listens":{"type":"array","items":{"$ref":"#/types/alicloud:wafv3/getDomainsDomainListen:getDomainsDomainListen"},"description":"Configure listening information\n"},"redirects":{"type":"array","items":{"$ref":"#/types/alicloud:wafv3/getDomainsDomainRedirect:getDomainsDomainRedirect"},"description":"Configure forwarding information.\n"},"resourceManagerResourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the domain.\n"}},"type":"object","required":["cname","domain","id","listens","redirects","resourceManagerResourceGroupId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:wafv3/getDomainsDomainListen:getDomainsDomainListen":{"properties":{"certId":{"type":"string","description":"The ID of the certificate to be added. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol).\n"},"cipherSuite":{"type":"integer","description":"The type of encryption suite to add. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol).\n"},"customCiphers":{"type":"array","items":{"type":"string"},"description":"The specific custom encryption suite to add.\n"},"enableTlsv3":{"type":"boolean","description":"Whether TSL1.3 version is supported. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol).\n"},"exclusiveIp":{"type":"boolean","description":"Whether to enable exclusive IP address. This parameter is used only when the value of **ipv6_enabled** is **false** (indicating that IPv6 is not enabled) and the value of **protection_resource** is **share** (indicating that a shared cluster is used).\n"},"focusHttps":{"type":"boolean","description":"Whether to enable the forced jump of HTTPS. This parameter is used only when the value of \u003cspan pulumi-lang-nodejs=\"`httpsPorts`\" pulumi-lang-dotnet=\"`HttpsPorts`\" pulumi-lang-go=\"`httpsPorts`\" pulumi-lang-python=\"`https_ports`\" pulumi-lang-yaml=\"`httpsPorts`\" pulumi-lang-java=\"`httpsPorts`\"\u003e`https_ports`\u003c/span\u003e is not empty (indicating that the domain name uses HTTPS protocol) and the value of httports is empty (indicating that the domain name does not use HTTP protocol).\n"},"http2Enabled":{"type":"boolean","description":"Whether to turn on http2. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol).\n"},"httpPorts":{"type":"array","items":{"type":"integer"},"description":"The listening port of the HTTP protocol.\n"},"httpsPorts":{"type":"array","items":{"type":"integer"},"description":"The listening port of the HTTPS protocol.\n"},"ipv6Enabled":{"type":"boolean","description":"Whether IPv6 is turned on.\n"},"protectionResource":{"type":"string","description":"The type of protection resource to use.\n"},"tlsVersion":{"type":"string","description":"The version of TLS to add. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol).\n"},"xffHeaderMode":{"type":"integer","description":"WAF obtains the real IP address of the client.\n"},"xffHeaders":{"type":"array","items":{"type":"string"},"description":"Set the list of custom fields used to obtain the client IP address.\n"}},"type":"object","required":["certId","cipherSuite","customCiphers","enableTlsv3","exclusiveIp","focusHttps","http2Enabled","httpPorts","httpsPorts","ipv6Enabled","protectionResource","tlsVersion","xffHeaderMode","xffHeaders"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:wafv3/getDomainsDomainRedirect:getDomainsDomainRedirect":{"properties":{"backends":{"type":"array","items":{"type":"string"},"description":"The IP address of the origin server corresponding to the domain name or the back-to-origin domain name of the server.\n"},"connectTimeout":{"type":"integer","description":"Connection timeout, Unit: seconds, value range: 5~120.\n"},"focusHttpBackend":{"type":"boolean","description":"Whether to enable forced HTTP back-to-origin. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol).\n"},"keepalive":{"type":"boolean","description":"Open long connection, default true.\n"},"keepaliveRequests":{"type":"integer","description":"Number of long connections, default: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e. range :60-1000.\n"},"keepaliveTimeout":{"type":"integer","description":"Long connection over time, default: \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e. Range: 1-60.\n"},"loadbalance":{"type":"string","description":"The load balancing algorithm used when returning to the source.\n"},"readTimeout":{"type":"integer","description":"Read timeout duration. Unit: seconds, Value range: 5~1800.\n"},"requestHeaders":{"type":"array","items":{"$ref":"#/types/alicloud:wafv3/getDomainsDomainRedirectRequestHeader:getDomainsDomainRedirectRequestHeader"},"description":"The traffic tag field and value of the domain name, which is used to mark the traffic processed by WAF. the format of this parameter value is **[{\" k \":\"_key_\",\" v \":\"_value_\"}]**.\u003cspan pulumi-lang-nodejs=\" whereKeyRepresents \" pulumi-lang-dotnet=\" WhereKeyRepresents \" pulumi-lang-go=\" whereKeyRepresents \" pulumi-lang-python=\" where_key_represents \" pulumi-lang-yaml=\" whereKeyRepresents \" pulumi-lang-java=\" whereKeyRepresents \"\u003e where_key_represents \u003c/span\u003ethe specified custom request header field,\u003cspan pulumi-lang-nodejs=\" andValueRepresents \" pulumi-lang-dotnet=\" AndValueRepresents \" pulumi-lang-go=\" andValueRepresents \" pulumi-lang-python=\" and_value_represents \" pulumi-lang-yaml=\" andValueRepresents \" pulumi-lang-java=\" andValueRepresents \"\u003e and_value_represents \u003c/span\u003ethe value set for this field.By specifying the custom request header field and the corresponding value, when the access traffic of the domain name passes through WAF, WAF automatically adds the specified custom field value to the request header as the traffic mark, which is convenient for backend service statistics.Explain that if the custom header field already exists in the request, the system will overwrite the value of the custom field in the request with the set traffic tag value.\n"},"retry":{"type":"boolean","description":"Back to Source Retry. default \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, retry 3 times by default.\n"},"sniEnabled":{"type":"boolean","description":"Whether to enable back-to-source SNI. This parameter is used only if the value of **https_ports** is not empty (indicating that the domain name uses the HTTPS protocol).\n"},"sniHost":{"type":"string","description":"Sets the value of the custom SNI extension field. If this parameter is not set, the value of the **Host** field in the request header is used as the value of the SNI extension field by default.In general, you do not need to customize SNI unless your business has special configuration requirements. You want WAF to use SNI that is inconsistent with the actual request Host in the back-to-origin request (that is, the custom SNI set here).\u003e This parameter is required only when **sni_enalbed** is set to **true** (indicating that back-to-source SNI is enabled).\n"},"writeTimeout":{"type":"integer","description":"Write timeout duration. **Unit**: seconds, **Value range**:5~1800.\n"}},"type":"object","required":["backends","connectTimeout","focusHttpBackend","keepalive","keepaliveRequests","keepaliveTimeout","loadbalance","readTimeout","requestHeaders","retry","sniEnabled","sniHost","writeTimeout"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:wafv3/getDomainsDomainRedirectRequestHeader:getDomainsDomainRedirectRequestHeader":{"properties":{"key":{"type":"string","description":"The traffic tag field and value of the domain name, which is used to mark the traffic processed by WAF. the format of this parameter value is **[{\" k \":\"_key_\",\" v \":\"_value_\"}]**.\u003cspan pulumi-lang-nodejs=\" whereKeyRepresents \" pulumi-lang-dotnet=\" WhereKeyRepresents \" pulumi-lang-go=\" whereKeyRepresents \" pulumi-lang-python=\" where_key_represents \" pulumi-lang-yaml=\" whereKeyRepresents \" pulumi-lang-java=\" whereKeyRepresents \"\u003e where_key_represents \u003c/span\u003ethe specified custom request header field,\u003cspan pulumi-lang-nodejs=\" andValueRepresents \" pulumi-lang-dotnet=\" AndValueRepresents \" pulumi-lang-go=\" andValueRepresents \" pulumi-lang-python=\" and_value_represents \" pulumi-lang-yaml=\" andValueRepresents \" pulumi-lang-java=\" andValueRepresents \"\u003e and_value_represents \u003c/span\u003ethe value set for this field.By specifying the custom request header field and the corresponding value, when the access traffic of the domain name passes through WAF, WAF automatically adds the specified custom field value to the request header as the traffic mark, which is convenient for backend service statistics.Explain that if the custom header field already exists in the request, the system will overwrite the value of the custom field in the request with the set traffic tag value.\n"},"value":{"type":"string","description":"The traffic tag field and value of the domain name, which is used to mark the traffic processed by WAF. the format of this parameter value is **[{\" k \":\"_key_\",\" v \":\"_value_\"}]**.\u003cspan pulumi-lang-nodejs=\" whereKeyRepresents \" pulumi-lang-dotnet=\" WhereKeyRepresents \" pulumi-lang-go=\" whereKeyRepresents \" pulumi-lang-python=\" where_key_represents \" pulumi-lang-yaml=\" whereKeyRepresents \" pulumi-lang-java=\" whereKeyRepresents \"\u003e where_key_represents \u003c/span\u003ethe specified custom request header field,\u003cspan pulumi-lang-nodejs=\" andValueRepresents \" pulumi-lang-dotnet=\" AndValueRepresents \" pulumi-lang-go=\" andValueRepresents \" pulumi-lang-python=\" and_value_represents \" pulumi-lang-yaml=\" andValueRepresents \" pulumi-lang-java=\" andValueRepresents \"\u003e and_value_represents \u003c/span\u003ethe value set for this field.By specifying the custom request header field and the corresponding value, when the access traffic of the domain name passes through WAF, WAF automatically adds the specified custom field value to the request header as the traffic mark, which is convenient for backend service statistics.Explain that if the custom header field already exists in the request, the system will overwrite the value of the custom field in the request with the set traffic tag value.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:wafv3/getInstancesInstance:getInstancesInstance":{"properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"id":{"type":"string","description":"The ID of the resource.\n"},"instanceId":{"type":"string","description":"The first ID of the resource.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object","required":["createTime","id","instanceId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:yundun/BastionHostInstanceAdAuthServer:BastionHostInstanceAdAuthServer":{"properties":{"account":{"type":"string"},"baseDn":{"type":"string"},"domain":{"type":"string"},"emailMapping":{"type":"string"},"filter":{"type":"string"},"isSsl":{"type":"boolean"},"mobileMapping":{"type":"string"},"nameMapping":{"type":"string"},"password":{"type":"string","secret":true},"port":{"type":"integer"},"server":{"type":"string"},"standbyServer":{"type":"string"}},"type":"object","required":["account","baseDn","domain","isSsl","port","server"]},"alicloud:yundun/BastionHostInstanceLdapAuthServer:BastionHostInstanceLdapAuthServer":{"properties":{"account":{"type":"string"},"baseDn":{"type":"string"},"emailMapping":{"type":"string"},"filter":{"type":"string"},"isSsl":{"type":"boolean"},"loginNameMapping":{"type":"string"},"mobileMapping":{"type":"string"},"nameMapping":{"type":"string"},"password":{"type":"string","secret":true},"port":{"type":"integer"},"server":{"type":"string"},"standbyServer":{"type":"string"}},"type":"object","required":["account","baseDn","port","server"]},"alicloud:yundun/getBastionHostInstancesInstance:getBastionHostInstancesInstance":{"properties":{"bandwidth":{"type":"string"},"description":{"type":"string"},"id":{"type":"string"},"instanceStatus":{"type":"string"},"licenseCode":{"type":"string"},"privateDomain":{"type":"string"},"publicDomain":{"type":"string"},"publicNetworkAccess":{"type":"boolean"},"securityGroupIds":{"type":"array","items":{"type":"string"}},"storage":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"}},"userVswitchId":{"type":"string"}},"type":"object","required":["bandwidth","description","id","instanceStatus","licenseCode","privateDomain","publicDomain","publicNetworkAccess","securityGroupIds","storage","tags","userVswitchId"],"language":{"nodejs":{"requiredInputs":[]}}},"alicloud:yundun/getDBAuditInstanceInstance:getDBAuditInstanceInstance":{"properties":{"description":{"type":"string"},"id":{"type":"string"},"instanceStatus":{"type":"string"},"licenseCode":{"type":"string"},"privateDomain":{"type":"string"},"publicDomain":{"type":"string"},"publicNetworkAccess":{"type":"boolean"},"tags":{"type":"object","additionalProperties":{"type":"string"}},"userVswitchId":{"type":"string"}},"type":"object","required":["description","id","instanceStatus","licenseCode","privateDomain","publicDomain","publicNetworkAccess","userVswitchId"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the alicloud package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n","properties":{"accessKey":{"type":"string","description":"The access key for API operations. You can retrieve this from the 'Security Management' section of the Alibaba Cloud console."},"accountId":{"type":"string","description":"The account ID for some service API operations. You can retrieve this from the 'Security Settings' section of the Alibaba Cloud console."},"accountType":{"type":"string"},"assumeRole":{"$ref":"#/types/alicloud:index/ProviderAssumeRole:ProviderAssumeRole"},"assumeRoleWithOidc":{"$ref":"#/types/alicloud:index/ProviderAssumeRoleWithOidc:ProviderAssumeRoleWithOidc"},"clientConnectTimeout":{"type":"integer","description":"The maximum timeout of the client connection server."},"clientReadTimeout":{"type":"integer","description":"The maximum timeout of the client read request."},"configurationSource":{"type":"string","description":"Use this to mark a terraform configuration file source."},"credentialsUri":{"type":"string","description":"The URI of sidecar credentials service."},"ecsRoleName":{"type":"string","description":"The RAM Role Name attached on a ECS instance for API operations. You can retrieve this from the 'Access Control' section of the Alibaba Cloud console."},"endpoints":{"type":"array","items":{"$ref":"#/types/alicloud:index/ProviderEndpoint:ProviderEndpoint"}},"fc":{"type":"string","deprecationMessage":"Field 'fc' has been deprecated from provider version 1.28.0. New field 'fc' which in nested endpoints instead."},"logEndpoint":{"type":"string","deprecationMessage":"Field 'log_endpoint' has been deprecated from provider version 1.28.0. New field 'log' which in nested endpoints instead."},"maxRetryTimeout":{"type":"integer","description":"The maximum retry timeout of the request."},"mnsEndpoint":{"type":"string","deprecationMessage":"Field 'mns_endpoint' has been deprecated from provider version 1.28.0. New field 'mns' which in nested endpoints instead."},"otsInstanceName":{"type":"string","deprecationMessage":"Field 'ots_instance_name' has been deprecated from provider version 1.10.0. New field 'instance_name' of resource 'alicloud_ots_table' instead."},"profile":{"type":"string","description":"The profile for API operations. If not set, the default profile created with `aliyun configure` will be used."},"protocol":{"type":"string"},"region":{"type":"string","description":"The region where Alibaba Cloud operations will take place. Examples are cn-beijing, cn-hangzhou, eu-central-1, etc."},"secretKey":{"type":"string","description":"The secret key for API operations. You can retrieve this from the 'Security Management' section of the Alibaba Cloud console."},"secureTransport":{"type":"string","description":"The security transport for the assume role invoking."},"securityToken":{"type":"string","description":"security token. A security token is only required if you are using Security Token Service."},"securityTransport":{"type":"string"},"sharedCredentialsFile":{"type":"string","description":"The path to the shared credentials file. If not set this defaults to ~/.aliyun/config.json"},"signVersion":{"$ref":"#/types/alicloud:index/ProviderSignVersion:ProviderSignVersion"},"skipRegionValidation":{"type":"boolean","description":"Skip static validation of region ID. Used by users of alternative AlibabaCloud-like APIs or users w/ access to regions that are not public (yet)."},"sourceIp":{"type":"string","description":"The source ip for the assume role invoking."}},"inputProperties":{"accessKey":{"type":"string","description":"The access key for API operations. You can retrieve this from the 'Security Management' section of the Alibaba Cloud console."},"accountId":{"type":"string","description":"The account ID for some service API operations. You can retrieve this from the 'Security Settings' section of the Alibaba Cloud console."},"accountType":{"type":"string"},"assumeRole":{"$ref":"#/types/alicloud:index/ProviderAssumeRole:ProviderAssumeRole"},"assumeRoleWithOidc":{"$ref":"#/types/alicloud:index/ProviderAssumeRoleWithOidc:ProviderAssumeRoleWithOidc"},"clientConnectTimeout":{"type":"integer","description":"The maximum timeout of the client connection server."},"clientReadTimeout":{"type":"integer","description":"The maximum timeout of the client read request."},"configurationSource":{"type":"string","description":"Use this to mark a terraform configuration file source."},"credentialsUri":{"type":"string","description":"The URI of sidecar credentials service."},"ecsRoleName":{"type":"string","description":"The RAM Role Name attached on a ECS instance for API operations. You can retrieve this from the 'Access Control' section of the Alibaba Cloud console.","defaultInfo":{"environment":["ALICLOUD_ECS_ROLE_NAME"]}},"endpoints":{"type":"array","items":{"$ref":"#/types/alicloud:index/ProviderEndpoint:ProviderEndpoint"}},"fc":{"type":"string","deprecationMessage":"Field 'fc' has been deprecated from provider version 1.28.0. New field 'fc' which in nested endpoints instead."},"logEndpoint":{"type":"string","deprecationMessage":"Field 'log_endpoint' has been deprecated from provider version 1.28.0. New field 'log' which in nested endpoints instead."},"maxRetryTimeout":{"type":"integer","description":"The maximum retry timeout of the request."},"mnsEndpoint":{"type":"string","deprecationMessage":"Field 'mns_endpoint' has been deprecated from provider version 1.28.0. New field 'mns' which in nested endpoints instead."},"otsInstanceName":{"type":"string","deprecationMessage":"Field 'ots_instance_name' has been deprecated from provider version 1.10.0. New field 'instance_name' of resource 'alicloud_ots_table' instead."},"profile":{"type":"string","description":"The profile for API operations. If not set, the default profile created with `aliyun configure` will be used.","defaultInfo":{"environment":["ALICLOUD_PROFILE"]}},"protocol":{"type":"string"},"region":{"type":"string","description":"The region where Alibaba Cloud operations will take place. Examples are cn-beijing, cn-hangzhou, eu-central-1, etc.","defaultInfo":{"environment":["ALICLOUD_REGION"]}},"secretKey":{"type":"string","description":"The secret key for API operations. You can retrieve this from the 'Security Management' section of the Alibaba Cloud console."},"secureTransport":{"type":"string","description":"The security transport for the assume role invoking."},"securityToken":{"type":"string","description":"security token. A security token is only required if you are using Security Token Service."},"securityTransport":{"type":"string"},"sharedCredentialsFile":{"type":"string","description":"The path to the shared credentials file. If not set this defaults to ~/.aliyun/config.json"},"signVersion":{"$ref":"#/types/alicloud:index/ProviderSignVersion:ProviderSignVersion"},"skipRegionValidation":{"type":"boolean","description":"Skip static validation of region ID. Used by users of alternative AlibabaCloud-like APIs or users w/ access to regions that are not public (yet)."},"sourceIp":{"type":"string","description":"The source ip for the assume role invoking."}},"methods":{"terraformConfig":"pulumi:providers:alicloud/terraformConfig"}},"resources":{"alicloud:ackone/cluster:Cluster":{"description":"Provides a Ack One Cluster resource. Fleet Manager Cluster.\n\nFor information about Ack One Cluster and how to use it, see [What is Cluster](https://www.alibabacloud.com/help/en/ack/distributed-cloud-container-platform-for-kubernetes/developer-reference/api-adcp-2022-01-01-createhubcluster).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultVpc = new alicloud.vpc.Network(\"defaultVpc\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: name,\n});\nconst defaultyVSwitch = new alicloud.vpc.Switch(\"defaultyVSwitch\", {\n    vpcId: defaultVpc.id,\n    cidrBlock: \"172.16.2.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultCluster = new alicloud.ackone.Cluster(\"default\", {\n    network: {\n        vpcId: defaultVpc.id,\n        vswitches: [defaultyVSwitch.id],\n    },\n    profile: \"XFlow\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_vpc = alicloud.vpc.Network(\"defaultVpc\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=name)\ndefaulty_v_switch = alicloud.vpc.Switch(\"defaultyVSwitch\",\n    vpc_id=default_vpc.id,\n    cidr_block=\"172.16.2.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_cluster = alicloud.ackone.Cluster(\"default\",\n    network={\n        \"vpc_id\": default_vpc.id,\n        \"vswitches\": [defaulty_v_switch.id],\n    },\n    profile=\"XFlow\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultVpc = new AliCloud.Vpc.Network(\"defaultVpc\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = name,\n    });\n\n    var defaultyVSwitch = new AliCloud.Vpc.Switch(\"defaultyVSwitch\", new()\n    {\n        VpcId = defaultVpc.Id,\n        CidrBlock = \"172.16.2.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultCluster = new AliCloud.AckOne.Cluster(\"default\", new()\n    {\n        Network = new AliCloud.AckOne.Inputs.ClusterNetworkArgs\n        {\n            VpcId = defaultVpc.Id,\n            Vswitches = new[]\n            {\n                defaultyVSwitch.Id,\n            },\n        },\n        Profile = \"XFlow\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ackone\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVpc, err := vpc.NewNetwork(ctx, \"defaultVpc\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultyVSwitch, err := vpc.NewSwitch(ctx, \"defaultyVSwitch\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultVpc.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.2.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ackone.NewCluster(ctx, \"default\", \u0026ackone.ClusterArgs{\n\t\t\tNetwork: \u0026ackone.ClusterNetworkArgs{\n\t\t\t\tVpcId: defaultVpc.ID(),\n\t\t\t\tVswitches: pulumi.StringArray{\n\t\t\t\t\tdefaultyVSwitch.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProfile: pulumi.String(\"XFlow\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ackone.Cluster;\nimport com.pulumi.alicloud.ackone.ClusterArgs;\nimport com.pulumi.alicloud.ackone.inputs.ClusterNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultVpc = new Network(\"defaultVpc\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(name)\n            .build());\n\n        var defaultyVSwitch = new Switch(\"defaultyVSwitch\", SwitchArgs.builder()\n            .vpcId(defaultVpc.id())\n            .cidrBlock(\"172.16.2.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .network(ClusterNetworkArgs.builder()\n                .vpcId(defaultVpc.id())\n                .vswitches(defaultyVSwitch.id())\n                .build())\n            .profile(\"XFlow\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultVpc:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName: ${name}\n  defaultyVSwitch:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultVpc.id}\n      cidrBlock: 172.16.2.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultCluster:\n    type: alicloud:ackone:Cluster\n    name: default\n    properties:\n      network:\n        vpcId: ${defaultVpc.id}\n        vswitches:\n          - ${defaultyVSwitch.id}\n      profile: XFlow\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAck One Cluster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ackone/cluster:Cluster example \u003cid\u003e\n```\n\n","properties":{"argocdEnabled":{"type":"boolean","description":"(Available since v1.243.0) Whether to enable ArgoCD. Default to true. Only valid when \u003cspan pulumi-lang-nodejs=\"`profile`\" pulumi-lang-dotnet=\"`Profile`\" pulumi-lang-go=\"`profile`\" pulumi-lang-python=\"`profile`\" pulumi-lang-yaml=\"`profile`\" pulumi-lang-java=\"`profile`\"\u003e`profile`\u003c/span\u003e is 'Default'. It has to be false when cluster is deleted.\n"},"clusterName":{"type":"string","description":"Cluster name.\n"},"createTime":{"type":"string","description":"Cluster creation time.\n"},"network":{"$ref":"#/types/alicloud:ackone/ClusterNetwork:ClusterNetwork","description":"Cluster network information. See \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e below.\n"},"profile":{"type":"string","description":"Cluster attributes. Valid values: 'Default', 'XFlow'.\n\n**Note**: When profile is Default, vswitches might not be deleted when cluster is deleted because there are some remaining resources in the vswitches. We are still fixing this problem.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"required":["argocdEnabled","clusterName","createTime","network","profile","status"],"inputProperties":{"argocdEnabled":{"type":"boolean","description":"(Available since v1.243.0) Whether to enable ArgoCD. Default to true. Only valid when \u003cspan pulumi-lang-nodejs=\"`profile`\" pulumi-lang-dotnet=\"`Profile`\" pulumi-lang-go=\"`profile`\" pulumi-lang-python=\"`profile`\" pulumi-lang-yaml=\"`profile`\" pulumi-lang-java=\"`profile`\"\u003e`profile`\u003c/span\u003e is 'Default'. It has to be false when cluster is deleted.\n"},"clusterName":{"type":"string","description":"Cluster name.\n","willReplaceOnChanges":true},"network":{"$ref":"#/types/alicloud:ackone/ClusterNetwork:ClusterNetwork","description":"Cluster network information. See \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"profile":{"type":"string","description":"Cluster attributes. Valid values: 'Default', 'XFlow'.\n\n**Note**: When profile is Default, vswitches might not be deleted when cluster is deleted because there are some remaining resources in the vswitches. We are still fixing this problem.\n","willReplaceOnChanges":true}},"requiredInputs":["network"],"stateInputs":{"description":"Input properties used for looking up and filtering Cluster resources.\n","properties":{"argocdEnabled":{"type":"boolean","description":"(Available since v1.243.0) Whether to enable ArgoCD. Default to true. Only valid when \u003cspan pulumi-lang-nodejs=\"`profile`\" pulumi-lang-dotnet=\"`Profile`\" pulumi-lang-go=\"`profile`\" pulumi-lang-python=\"`profile`\" pulumi-lang-yaml=\"`profile`\" pulumi-lang-java=\"`profile`\"\u003e`profile`\u003c/span\u003e is 'Default'. It has to be false when cluster is deleted.\n"},"clusterName":{"type":"string","description":"Cluster name.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"Cluster creation time.\n"},"network":{"$ref":"#/types/alicloud:ackone/ClusterNetwork:ClusterNetwork","description":"Cluster network information. See \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"profile":{"type":"string","description":"Cluster attributes. Valid values: 'Default', 'XFlow'.\n\n**Note**: When profile is Default, vswitches might not be deleted when cluster is deleted because there are some remaining resources in the vswitches. We are still fixing this problem.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object"}},"alicloud:ackone/membershipAttachment:MembershipAttachment":{"description":"Provides an Ack One Membership Attachment resource. Fleet Manager Membership Attachment.\n\nFor information about Ack One Membership Attachment and how to use it, see [How to attach cluster tp hub](https://www.alibabacloud.com/help/en/ack/distributed-cloud-container-platform-for-kubernetes/developer-reference/api-adcp-2022-01-01-attachclustertohub).\n\n\u003e **NOTE:** Available since v1.243.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst keyName = config.get(\"keyName\") || \"%s\";\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst cloudEfficiency = enhanced.then(enhanced =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: enhanced.zones?.[0]?.zoneId,\n    cpuCoreCount: 4,\n    memorySize: 8,\n    kubernetesNodeRole: \"Worker\",\n    systemDiskCategory: \"cloud_efficiency\",\n}));\nconst _default = new alicloud.vpc.Network(\"default\", {cidrBlock: \"10.4.0.0/16\"});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: _default.id,\n    zoneId: enhanced.then(enhanced =\u003e enhanced.zones?.[0]?.zoneId),\n});\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    clusterSpec: \"ack.pro.small\",\n    vswitchIds: [defaultSwitch.id],\n    newNatGateway: true,\n    podCidr: std.cidrsubnet({\n        input: \"10.0.0.0/8\",\n        newbits: 8,\n        netnum: 36,\n    }).then(invoke =\u003e invoke.result),\n    serviceCidr: std.cidrsubnet({\n        input: \"172.16.0.0/16\",\n        newbits: 4,\n        netnum: 7,\n    }).then(invoke =\u003e invoke.result),\n    slbInternetEnabled: true,\n    isEnterpriseSecurityGroup: true,\n});\nconst defaultKeyPair = new alicloud.ecs.KeyPair(\"default\", {keyPairName: keyName});\nconst defaultNodePool = new alicloud.cs.NodePool(\"default\", {\n    nodePoolName: name,\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [defaultSwitch.id],\n    instanceTypes: [cloudEfficiency.then(cloudEfficiency =\u003e cloudEfficiency.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyPairName,\n    desiredSize: \"1\",\n});\nconst defaultCluster = new alicloud.ackone.Cluster(\"default\", {\n    network: {\n        vpcId: _default.id,\n        vswitches: [defaultSwitch.id],\n    },\n    argocdEnabled: false,\n}, {\n    dependsOn: [defaultManagedKubernetes],\n});\nconst defaultMembershipAttachment = new alicloud.ackone.MembershipAttachment(\"default\", {\n    clusterId: defaultCluster.id,\n    subClusterId: defaultManagedKubernetes.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nkey_name = config.get(\"keyName\")\nif key_name is None:\n    key_name = \"%s\"\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\ncloud_efficiency = alicloud.ecs.get_instance_types(availability_zone=enhanced.zones[0].zone_id,\n    cpu_core_count=4,\n    memory_size=8,\n    kubernetes_node_role=\"Worker\",\n    system_disk_category=\"cloud_efficiency\")\ndefault = alicloud.vpc.Network(\"default\", cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default.id,\n    zone_id=enhanced.zones[0].zone_id)\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    cluster_spec=\"ack.pro.small\",\n    vswitch_ids=[default_switch.id],\n    new_nat_gateway=True,\n    pod_cidr=std.cidrsubnet(input=\"10.0.0.0/8\",\n        newbits=8,\n        netnum=36).result,\n    service_cidr=std.cidrsubnet(input=\"172.16.0.0/16\",\n        newbits=4,\n        netnum=7).result,\n    slb_internet_enabled=True,\n    is_enterprise_security_group=True)\ndefault_key_pair = alicloud.ecs.KeyPair(\"default\", key_pair_name=key_name)\ndefault_node_pool = alicloud.cs.NodePool(\"default\",\n    node_pool_name=name,\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[default_switch.id],\n    instance_types=[cloud_efficiency.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_pair_name,\n    desired_size=\"1\")\ndefault_cluster = alicloud.ackone.Cluster(\"default\",\n    network={\n        \"vpc_id\": default.id,\n        \"vswitches\": [default_switch.id],\n    },\n    argocd_enabled=False,\n    opts = pulumi.ResourceOptions(depends_on=[default_managed_kubernetes]))\ndefault_membership_attachment = alicloud.ackone.MembershipAttachment(\"default\",\n    cluster_id=default_cluster.id,\n    sub_cluster_id=default_managed_kubernetes.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var keyName = config.Get(\"keyName\") ?? \"%s\";\n    var enhanced = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var cloudEfficiency = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId),\n        CpuCoreCount = 4,\n        MemorySize = 8,\n        KubernetesNodeRole = \"Worker\",\n        SystemDiskCategory = \"cloud_efficiency\",\n    });\n\n    var @default = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = @default.Id,\n        ZoneId = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId),\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        ClusterSpec = \"ack.pro.small\",\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        NewNatGateway = true,\n        PodCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"10.0.0.0/8\",\n            Newbits = 8,\n            Netnum = 36,\n        }).Apply(invoke =\u003e invoke.Result),\n        ServiceCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"172.16.0.0/16\",\n            Newbits = 4,\n            Netnum = 7,\n        }).Apply(invoke =\u003e invoke.Result),\n        SlbInternetEnabled = true,\n        IsEnterpriseSecurityGroup = true,\n    });\n\n    var defaultKeyPair = new AliCloud.Ecs.KeyPair(\"default\", new()\n    {\n        KeyPairName = keyName,\n    });\n\n    var defaultNodePool = new AliCloud.CS.NodePool(\"default\", new()\n    {\n        NodePoolName = name,\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            cloudEfficiency.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyPairName,\n        DesiredSize = \"1\",\n    });\n\n    var defaultCluster = new AliCloud.AckOne.Cluster(\"default\", new()\n    {\n        Network = new AliCloud.AckOne.Inputs.ClusterNetworkArgs\n        {\n            VpcId = @default.Id,\n            Vswitches = new[]\n            {\n                defaultSwitch.Id,\n            },\n        },\n        ArgocdEnabled = false,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            defaultManagedKubernetes,\n        },\n    });\n\n    var defaultMembershipAttachment = new AliCloud.AckOne.MembershipAttachment(\"default\", new()\n    {\n        ClusterId = defaultCluster.Id,\n        SubClusterId = defaultManagedKubernetes.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ackone\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tkeyName := \"%s\"\n\t\tif param := cfg.Get(\"keyName\"); param != \"\" {\n\t\t\tkeyName = param\n\t\t}\n\t\tenhanced, err := vpc.GetEnhancedNatAvailableZones(ctx, \u0026vpc.GetEnhancedNatAvailableZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcloudEfficiency, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone:   pulumi.StringRef(enhanced.Zones[0].ZoneId),\n\t\t\tCpuCoreCount:       pulumi.IntRef(4),\n\t\t\tMemorySize:         pulumi.Float64Ref(8),\n\t\t\tKubernetesNodeRole: pulumi.StringRef(\"Worker\"),\n\t\t\tSystemDiskCategory: pulumi.StringRef(\"cloud_efficiency\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:     _default.ID(),\n\t\t\tZoneId:    pulumi.String(enhanced.Zones[0].ZoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"10.0.0.0/8\",\n\t\t\tNewbits: 8,\n\t\t\tNetnum:  36,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet1, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"172.16.0.0/16\",\n\t\t\tNewbits: 4,\n\t\t\tNetnum:  7,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\n\t\t\tClusterSpec: pulumi.String(\"ack.pro.small\"),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tNewNatGateway:             pulumi.Bool(true),\n\t\t\tPodCidr:                   pulumi.String(invokeCidrsubnet.Result),\n\t\t\tServiceCidr:               pulumi.String(invokeCidrsubnet1.Result),\n\t\t\tSlbInternetEnabled:        pulumi.Bool(true),\n\t\t\tIsEnterpriseSecurityGroup: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultKeyPair, err := ecs.NewKeyPair(ctx, \"default\", \u0026ecs.KeyPairArgs{\n\t\t\tKeyPairName: pulumi.String(keyName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cs.NewNodePool(ctx, \"default\", \u0026cs.NodePoolArgs{\n\t\t\tNodePoolName: pulumi.String(name),\n\t\t\tClusterId:    defaultManagedKubernetes.ID(),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(cloudEfficiency.InstanceTypes[0].Id),\n\t\t\t},\n\t\t\tSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tSystemDiskSize:     pulumi.Int(40),\n\t\t\tKeyName:            defaultKeyPair.KeyPairName,\n\t\t\tDesiredSize:        pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := ackone.NewCluster(ctx, \"default\", \u0026ackone.ClusterArgs{\n\t\t\tNetwork: \u0026ackone.ClusterNetworkArgs{\n\t\t\t\tVpcId: _default.ID(),\n\t\t\t\tVswitches: pulumi.StringArray{\n\t\t\t\t\tdefaultSwitch.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tArgocdEnabled: pulumi.Bool(false),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdefaultManagedKubernetes,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ackone.NewMembershipAttachment(ctx, \"default\", \u0026ackone.MembershipAttachmentArgs{\n\t\t\tClusterId:    defaultCluster.ID(),\n\t\t\tSubClusterId: defaultManagedKubernetes.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.KeyPair;\nimport com.pulumi.alicloud.ecs.KeyPairArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.ackone.Cluster;\nimport com.pulumi.alicloud.ackone.ClusterArgs;\nimport com.pulumi.alicloud.ackone.inputs.ClusterNetworkArgs;\nimport com.pulumi.alicloud.ackone.MembershipAttachment;\nimport com.pulumi.alicloud.ackone.MembershipAttachmentArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var keyName = config.get(\"keyName\").orElse(\"%s\");\n        final var enhanced = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        final var cloudEfficiency = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(enhanced.zones()[0].zoneId())\n            .cpuCoreCount(4)\n            .memorySize(8)\n            .kubernetesNodeRole(\"Worker\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .build());\n\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(default_.id())\n            .zoneId(enhanced.zones()[0].zoneId())\n            .build());\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .clusterSpec(\"ack.pro.small\")\n            .vswitchIds(defaultSwitch.id())\n            .newNatGateway(true)\n            .podCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"10.0.0.0/8\")\n                .newbits(8)\n                .netnum(36)\n                .build()).result())\n            .serviceCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"172.16.0.0/16\")\n                .newbits(4)\n                .netnum(7)\n                .build()).result())\n            .slbInternetEnabled(true)\n            .isEnterpriseSecurityGroup(true)\n            .build());\n\n        var defaultKeyPair = new KeyPair(\"defaultKeyPair\", KeyPairArgs.builder()\n            .keyPairName(keyName)\n            .build());\n\n        var defaultNodePool = new NodePool(\"defaultNodePool\", NodePoolArgs.builder()\n            .nodePoolName(name)\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(defaultSwitch.id())\n            .instanceTypes(cloudEfficiency.instanceTypes()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyPairName())\n            .desiredSize(\"1\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .network(ClusterNetworkArgs.builder()\n                .vpcId(default_.id())\n                .vswitches(defaultSwitch.id())\n                .build())\n            .argocdEnabled(false)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(defaultManagedKubernetes)\n                .build());\n\n        var defaultMembershipAttachment = new MembershipAttachment(\"defaultMembershipAttachment\", MembershipAttachmentArgs.builder()\n            .clusterId(defaultCluster.id())\n            .subClusterId(defaultManagedKubernetes.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  keyName:\n    type: string\n    default: '%s'\nresources:\n  default:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${default.id}\n      zoneId: ${enhanced.zones[0].zoneId}\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      clusterSpec: ack.pro.small\n      vswitchIds:\n        - ${defaultSwitch.id}\n      newNatGateway: true\n      podCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 10.0.0.0/8\n            newbits: 8\n            netnum: 36\n          return: result\n      serviceCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 172.16.0.0/16\n            newbits: 4\n            netnum: 7\n          return: result\n      slbInternetEnabled: true\n      isEnterpriseSecurityGroup: true\n  defaultKeyPair:\n    type: alicloud:ecs:KeyPair\n    name: default\n    properties:\n      keyPairName: ${keyName}\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      nodePoolName: ${name}\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      instanceTypes:\n        - ${cloudEfficiency.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyPairName}\n      desiredSize: 1\n  defaultCluster:\n    type: alicloud:ackone:Cluster\n    name: default\n    properties:\n      network:\n        vpcId: ${default.id}\n        vswitches:\n          - ${defaultSwitch.id}\n      argocdEnabled: false\n    options:\n      dependsOn:\n        - ${defaultManagedKubernetes}\n  defaultMembershipAttachment:\n    type: alicloud:ackone:MembershipAttachment\n    name: default\n    properties:\n      clusterId: ${defaultCluster.id}\n      subClusterId: ${defaultManagedKubernetes.id}\nvariables:\n  enhanced:\n    fn::invoke:\n      function: alicloud:vpc:getEnhancedNatAvailableZones\n      arguments: {}\n  cloudEfficiency:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${enhanced.zones[0].zoneId}\n        cpuCoreCount: 4\n        memorySize: 8\n        kubernetesNodeRole: Worker\n        systemDiskCategory: cloud_efficiency\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAck One Membership Attachment can be imported using the id, which consists of\u003cspan pulumi-lang-nodejs=\" clusterId \" pulumi-lang-dotnet=\" ClusterId \" pulumi-lang-go=\" clusterId \" pulumi-lang-python=\" cluster_id \" pulumi-lang-yaml=\" clusterId \" pulumi-lang-java=\" clusterId \"\u003e cluster_id \u003c/span\u003eand sub_cluster_id, e.g.\n\n```sh\n$ pulumi import alicloud:ackone/membershipAttachment:MembershipAttachment example \u003ccluster_id\u003e:\u003csub_cluster_id\u003e\n```\n\n","properties":{"clusterId":{"type":"string","description":"The ID of the cluster to which the membership is being attached.\n"},"subClusterId":{"type":"string","description":"The ID of the member being attached to the cluster.\n"}},"required":["clusterId","subClusterId"],"inputProperties":{"clusterId":{"type":"string","description":"The ID of the cluster to which the membership is being attached.\n","willReplaceOnChanges":true},"subClusterId":{"type":"string","description":"The ID of the member being attached to the cluster.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","subClusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering MembershipAttachment resources.\n","properties":{"clusterId":{"type":"string","description":"The ID of the cluster to which the membership is being attached.\n","willReplaceOnChanges":true},"subClusterId":{"type":"string","description":"The ID of the member being attached to the cluster.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:actiontrail/advancedQueryTemplate:AdvancedQueryTemplate":{"description":"Provides a Actiontrail Advanced Query Template resource.\n\nsql template of advanced query.\n\nFor information about Actiontrail Advanced Query Template and how to use it, see [What is Advanced Query Template](https://next.api.alibabacloud.com/document/Actiontrail/2020-07-06/CreateAdvancedQueryTemplate).\n\n\u003e **NOTE:** Available since v1.255.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.actiontrail.AdvancedQueryTemplate(\"default\", {\n    simpleQuery: true,\n    templateName: \"exampleTemplateName\",\n    templateSql: \"*\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.actiontrail.AdvancedQueryTemplate(\"default\",\n    simple_query=True,\n    template_name=\"exampleTemplateName\",\n    template_sql=\"*\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ActionTrail.AdvancedQueryTemplate(\"default\", new()\n    {\n        SimpleQuery = true,\n        TemplateName = \"exampleTemplateName\",\n        TemplateSql = \"*\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/actiontrail\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := actiontrail.NewAdvancedQueryTemplate(ctx, \"default\", \u0026actiontrail.AdvancedQueryTemplateArgs{\n\t\t\tSimpleQuery:  pulumi.Bool(true),\n\t\t\tTemplateName: pulumi.String(\"exampleTemplateName\"),\n\t\t\tTemplateSql:  pulumi.String(\"*\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.actiontrail.AdvancedQueryTemplate;\nimport com.pulumi.alicloud.actiontrail.AdvancedQueryTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new AdvancedQueryTemplate(\"default\", AdvancedQueryTemplateArgs.builder()\n            .simpleQuery(true)\n            .templateName(\"exampleTemplateName\")\n            .templateSql(\"*\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:actiontrail:AdvancedQueryTemplate\n    properties:\n      simpleQuery: true\n      templateName: exampleTemplateName\n      templateSql: '*'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nActiontrail Advanced Query Template can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:actiontrail/advancedQueryTemplate:AdvancedQueryTemplate example \u003cid\u003e\n```\n\n","properties":{"simpleQuery":{"type":"boolean","description":"Distinguish whether the current template is a simple query\n"},"templateName":{"type":"string","description":"The name of the resource\n"},"templateSql":{"type":"string","description":"SQL content saved on behalf of the current template\n"}},"required":["simpleQuery","templateSql"],"inputProperties":{"simpleQuery":{"type":"boolean","description":"Distinguish whether the current template is a simple query\n"},"templateName":{"type":"string","description":"The name of the resource\n"},"templateSql":{"type":"string","description":"SQL content saved on behalf of the current template\n"}},"requiredInputs":["simpleQuery","templateSql"],"stateInputs":{"description":"Input properties used for looking up and filtering AdvancedQueryTemplate resources.\n","properties":{"simpleQuery":{"type":"boolean","description":"Distinguish whether the current template is a simple query\n"},"templateName":{"type":"string","description":"The name of the resource\n"},"templateSql":{"type":"string","description":"SQL content saved on behalf of the current template\n"}},"type":"object"}},"alicloud:actiontrail/globalEventsStorageRegion:GlobalEventsStorageRegion":{"description":"Provides a Global events storage region resource.\n\nFor information about global events storage region and how to use it, see [What is Global Events Storage Region](https://next.api.alibabacloud.com/api/Actiontrail/2020-07-06/UpdateGlobalEventsStorageRegion).\n\n\u003e **NOTE:** Available since v1.201.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst foo = new alicloud.actiontrail.GlobalEventsStorageRegion(\"foo\", {storageRegion: \"cn-hangzhou\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfoo = alicloud.actiontrail.GlobalEventsStorageRegion(\"foo\", storage_region=\"cn-hangzhou\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = new AliCloud.ActionTrail.GlobalEventsStorageRegion(\"foo\", new()\n    {\n        StorageRegion = \"cn-hangzhou\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/actiontrail\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := actiontrail.NewGlobalEventsStorageRegion(ctx, \"foo\", \u0026actiontrail.GlobalEventsStorageRegionArgs{\n\t\t\tStorageRegion: pulumi.String(\"cn-hangzhou\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.actiontrail.GlobalEventsStorageRegion;\nimport com.pulumi.alicloud.actiontrail.GlobalEventsStorageRegionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var foo = new GlobalEventsStorageRegion(\"foo\", GlobalEventsStorageRegionArgs.builder()\n            .storageRegion(\"cn-hangzhou\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  foo:\n    type: alicloud:actiontrail:GlobalEventsStorageRegion\n    properties:\n      storageRegion: cn-hangzhou\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal events storage region not can be imported.\n\n","properties":{"storageRegion":{"type":"string","description":"Global Events Storage Region.\n"}},"required":["storageRegion"],"inputProperties":{"storageRegion":{"type":"string","description":"Global Events Storage Region.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering GlobalEventsStorageRegion resources.\n","properties":{"storageRegion":{"type":"string","description":"Global Events Storage Region.\n"}},"type":"object"}},"alicloud:actiontrail/historyDeliveryJob:HistoryDeliveryJob":{"description":"Provides a Action Trail History Delivery Job resource.\n\nDelivery History Tasks.\n\nFor information about Action Trail History Delivery Job and how to use it, see [What is History Delivery Job](https://www.alibabacloud.com/help/en/actiontrail/latest/api-actiontrail-2020-07-06-createdeliveryhistoryjob).\n\n\u003e **NOTE:** Available since v1.139.0.\n\n\u003e **NOTE:** You are authorized to use the historical event delivery task feature. To use this feature, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=a2c63.p38356.0.0.e29f552bb6odNZ#/ticket/createIndex) or ask the sales manager to add you to the whitelist.\n\n\u003e **NOTE:** Make sure that you have called the \u003cspan pulumi-lang-nodejs=\"`alicloud.actiontrail.Trail`\" pulumi-lang-dotnet=\"`alicloud.actiontrail.Trail`\" pulumi-lang-go=\"`actiontrail.Trail`\" pulumi-lang-python=\"`actiontrail.Trail`\" pulumi-lang-yaml=\"`alicloud.actiontrail.Trail`\" pulumi-lang-java=\"`alicloud.actiontrail.Trail`\"\u003e`alicloud.actiontrail.Trail`\u003c/span\u003e to create a single-account or multi-account trace that delivered to Log Service SLS.\n\n\u003e **NOTE:** An Alibaba cloud account can only have one running delivery history job at the same time.\n\n\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultGetAccount = alicloud.getAccount({});\nconst defaultGetRoles = alicloud.ram.getRoles({\n    nameRegex: \"AliyunServiceRoleForActionTrail\",\n});\nconst defaultProject = new alicloud.log.Project(\"default\", {\n    description: name,\n    projectName: name,\n});\nconst defaultTrail = new alicloud.actiontrail.Trail(\"default\", {\n    eventRw: \"Write\",\n    slsProjectArn: pulumi.all([_default, defaultGetAccount, defaultProject.projectName]).apply(([_default, defaultGetAccount, projectName]) =\u003e `acs:log:${_default.regions?.[0]?.id}:${defaultGetAccount.id}:project/${projectName}`),\n    trailName: name,\n    slsWriteRoleArn: defaultGetRoles.then(defaultGetRoles =\u003e defaultGetRoles.roles?.[0]?.arn),\n    trailRegion: \"All\",\n    isOrganizationTrail: false,\n    status: \"Enable\",\n    eventSelectors: JSON.stringify([{\n        ServiceName: \"PDS\",\n    }]),\n    dataEventTrailRegion: \"cn-hangzhou\",\n});\nconst defaultHistoryDeliveryJob = new alicloud.actiontrail.HistoryDeliveryJob(\"default\", {trailName: defaultTrail.id});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_get_account = alicloud.get_account()\ndefault_get_roles = alicloud.ram.get_roles(name_regex=\"AliyunServiceRoleForActionTrail\")\ndefault_project = alicloud.log.Project(\"default\",\n    description=name,\n    project_name=name)\ndefault_trail = alicloud.actiontrail.Trail(\"default\",\n    event_rw=\"Write\",\n    sls_project_arn=default_project.project_name.apply(lambda project_name: f\"acs:log:{default.regions[0].id}:{default_get_account.id}:project/{project_name}\"),\n    trail_name=name,\n    sls_write_role_arn=default_get_roles.roles[0].arn,\n    trail_region=\"All\",\n    is_organization_trail=False,\n    status=\"Enable\",\n    event_selectors=json.dumps([{\n        \"ServiceName\": \"PDS\",\n    }]),\n    data_event_trail_region=\"cn-hangzhou\")\ndefault_history_delivery_job = alicloud.actiontrail.HistoryDeliveryJob(\"default\", trail_name=default_trail.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultGetAccount = AliCloud.GetAccount.Invoke();\n\n    var defaultGetRoles = AliCloud.Ram.GetRoles.Invoke(new()\n    {\n        NameRegex = \"AliyunServiceRoleForActionTrail\",\n    });\n\n    var defaultProject = new AliCloud.Log.Project(\"default\", new()\n    {\n        Description = name,\n        ProjectName = name,\n    });\n\n    var defaultTrail = new AliCloud.ActionTrail.Trail(\"default\", new()\n    {\n        EventRw = \"Write\",\n        SlsProjectArn = Output.Tuple(@default, defaultGetAccount, defaultProject.ProjectName).Apply(values =\u003e\n        {\n            var @default = values.Item1;\n            var defaultGetAccount = values.Item2;\n            var projectName = values.Item3;\n            return $\"acs:log:{@default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}:{defaultGetAccount.Apply(getAccountResult =\u003e getAccountResult.Id)}:project/{projectName}\";\n        }),\n        TrailName = name,\n        SlsWriteRoleArn = defaultGetRoles.Apply(getRolesResult =\u003e getRolesResult.Roles[0]?.Arn),\n        TrailRegion = \"All\",\n        IsOrganizationTrail = false,\n        Status = \"Enable\",\n        EventSelectors = JsonSerializer.Serialize(new[]\n        {\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"ServiceName\"] = \"PDS\",\n            },\n        }),\n        DataEventTrailRegion = \"cn-hangzhou\",\n    });\n\n    var defaultHistoryDeliveryJob = new AliCloud.ActionTrail.HistoryDeliveryJob(\"default\", new()\n    {\n        TrailName = defaultTrail.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/actiontrail\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetAccount, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRoles, err := ram.GetRoles(ctx, \u0026ram.GetRolesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"AliyunServiceRoleForActionTrail\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultProject, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tProjectName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal([]map[string]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"ServiceName\": \"PDS\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tdefaultTrail, err := actiontrail.NewTrail(ctx, \"default\", \u0026actiontrail.TrailArgs{\n\t\t\tEventRw: pulumi.String(\"Write\"),\n\t\t\tSlsProjectArn: defaultProject.ProjectName.ApplyT(func(projectName string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"acs:log:%v:%v:project/%v\", _default.Regions[0].Id, defaultGetAccount.Id, projectName), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tTrailName:            pulumi.String(name),\n\t\t\tSlsWriteRoleArn:      pulumi.String(defaultGetRoles.Roles[0].Arn),\n\t\t\tTrailRegion:          pulumi.String(\"All\"),\n\t\t\tIsOrganizationTrail:  pulumi.Bool(false),\n\t\t\tStatus:               pulumi.String(\"Enable\"),\n\t\t\tEventSelectors:       pulumi.String(json0),\n\t\t\tDataEventTrailRegion: pulumi.String(\"cn-hangzhou\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = actiontrail.NewHistoryDeliveryJob(ctx, \"default\", \u0026actiontrail.HistoryDeliveryJobArgs{\n\t\t\tTrailName: defaultTrail.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetRolesArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.actiontrail.Trail;\nimport com.pulumi.alicloud.actiontrail.TrailArgs;\nimport com.pulumi.alicloud.actiontrail.HistoryDeliveryJob;\nimport com.pulumi.alicloud.actiontrail.HistoryDeliveryJobArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var defaultGetAccount = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var defaultGetRoles = RamFunctions.getRoles(GetRolesArgs.builder()\n            .nameRegex(\"AliyunServiceRoleForActionTrail\")\n            .build());\n\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .description(name)\n            .projectName(name)\n            .build());\n\n        var defaultTrail = new Trail(\"defaultTrail\", TrailArgs.builder()\n            .eventRw(\"Write\")\n            .slsProjectArn(defaultProject.projectName().applyValue(_projectName -\u003e String.format(\"acs:log:%s:%s:project/%s\", default_.regions()[0].id(),defaultGetAccount.id(),_projectName)))\n            .trailName(name)\n            .slsWriteRoleArn(defaultGetRoles.roles()[0].arn())\n            .trailRegion(\"All\")\n            .isOrganizationTrail(false)\n            .status(\"Enable\")\n            .eventSelectors(serializeJson(\n                jsonArray(jsonObject(\n                    jsonProperty(\"ServiceName\", \"PDS\")\n                ))))\n            .dataEventTrailRegion(\"cn-hangzhou\")\n            .build());\n\n        var defaultHistoryDeliveryJob = new HistoryDeliveryJob(\"defaultHistoryDeliveryJob\", HistoryDeliveryJobArgs.builder()\n            .trailName(defaultTrail.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultProject:\n    type: alicloud:log:Project\n    name: default\n    properties:\n      description: ${name}\n      projectName: ${name}\n  defaultTrail:\n    type: alicloud:actiontrail:Trail\n    name: default\n    properties:\n      eventRw: Write\n      slsProjectArn: acs:log:${default.regions[0].id}:${defaultGetAccount.id}:project/${defaultProject.projectName}\n      trailName: ${name}\n      slsWriteRoleArn: ${defaultGetRoles.roles[0].arn}\n      trailRegion: All\n      isOrganizationTrail: false\n      status: Enable\n      eventSelectors:\n        fn::toJSON:\n          - ServiceName: PDS\n      dataEventTrailRegion: cn-hangzhou\n  defaultHistoryDeliveryJob:\n    type: alicloud:actiontrail:HistoryDeliveryJob\n    name: default\n    properties:\n      trailName: ${defaultTrail.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetAccount:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  defaultGetRoles:\n    fn::invoke:\n      function: alicloud:ram:getRoles\n      arguments:\n        nameRegex: AliyunServiceRoleForActionTrail\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAction Trail History Delivery Job can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:actiontrail/historyDeliveryJob:HistoryDeliveryJob example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"status":{"type":"integer","description":"The status of the resource\n"},"trailName":{"type":"string","description":"The Track Name.\n"}},"required":["createTime","status","trailName"],"inputProperties":{"trailName":{"type":"string","description":"The Track Name.\n","willReplaceOnChanges":true}},"requiredInputs":["trailName"],"stateInputs":{"description":"Input properties used for looking up and filtering HistoryDeliveryJob resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"status":{"type":"integer","description":"The status of the resource\n"},"trailName":{"type":"string","description":"The Track Name.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:actiontrail/trail:Trail":{"description":"Provides a Actiontrail Trail resource.\n\nTrail of ActionTrail. After creating a trail, you need to enable the trail through StartLogging.\n\nFor information about Actiontrail Trail and how to use it, see [What is Trail](https://www.alibabacloud.com/help/en/actiontrail/latest/api-actiontrail-2020-07-06-createtrail).\n\n\u003e **NOTE:** Available since v1.95.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultGetAccount = alicloud.getAccount({});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultProject = new alicloud.log.Project(\"default\", {\n    projectName: `${name}-${defaultInteger.result}`,\n    description: \"tf actiontrail example\",\n});\nconst defaultGetRoles = alicloud.ram.getRoles({\n    nameRegex: \"AliyunServiceRoleForActionTrail\",\n});\nconst defaultTrail = new alicloud.actiontrail.Trail(\"default\", {\n    trailName: name,\n    slsWriteRoleArn: defaultGetRoles.then(defaultGetRoles =\u003e defaultGetRoles.roles?.[0]?.arn),\n    slsProjectArn: pulumi.all([_default, defaultGetAccount, defaultProject.projectName]).apply(([_default, defaultGetAccount, projectName]) =\u003e `acs:log:${_default.regions?.[0]?.id}:${defaultGetAccount.id}:project/${projectName}`),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_get_account = alicloud.get_account()\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_project = alicloud.log.Project(\"default\",\n    project_name=f\"{name}-{default_integer['result']}\",\n    description=\"tf actiontrail example\")\ndefault_get_roles = alicloud.ram.get_roles(name_regex=\"AliyunServiceRoleForActionTrail\")\ndefault_trail = alicloud.actiontrail.Trail(\"default\",\n    trail_name=name,\n    sls_write_role_arn=default_get_roles.roles[0].arn,\n    sls_project_arn=default_project.project_name.apply(lambda project_name: f\"acs:log:{default.regions[0].id}:{default_get_account.id}:project/{project_name}\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultGetAccount = AliCloud.GetAccount.Invoke();\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultProject = new AliCloud.Log.Project(\"default\", new()\n    {\n        ProjectName = $\"{name}-{defaultInteger.Result}\",\n        Description = \"tf actiontrail example\",\n    });\n\n    var defaultGetRoles = AliCloud.Ram.GetRoles.Invoke(new()\n    {\n        NameRegex = \"AliyunServiceRoleForActionTrail\",\n    });\n\n    var defaultTrail = new AliCloud.ActionTrail.Trail(\"default\", new()\n    {\n        TrailName = name,\n        SlsWriteRoleArn = defaultGetRoles.Apply(getRolesResult =\u003e getRolesResult.Roles[0]?.Arn),\n        SlsProjectArn = Output.Tuple(@default, defaultGetAccount, defaultProject.ProjectName).Apply(values =\u003e\n        {\n            var @default = values.Item1;\n            var defaultGetAccount = values.Item2;\n            var projectName = values.Item3;\n            return $\"acs:log:{@default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}:{defaultGetAccount.Apply(getAccountResult =\u003e getAccountResult.Id)}:project/{projectName}\";\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/actiontrail\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetAccount, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultProject, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tDescription: pulumi.String(\"tf actiontrail example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRoles, err := ram.GetRoles(ctx, \u0026ram.GetRolesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"AliyunServiceRoleForActionTrail\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = actiontrail.NewTrail(ctx, \"default\", \u0026actiontrail.TrailArgs{\n\t\t\tTrailName:       pulumi.String(name),\n\t\t\tSlsWriteRoleArn: pulumi.String(defaultGetRoles.Roles[0].Arn),\n\t\t\tSlsProjectArn: defaultProject.ProjectName.ApplyT(func(projectName string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"acs:log:%v:%v:project/%v\", _default.Regions[0].Id, defaultGetAccount.Id, projectName), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetRolesArgs;\nimport com.pulumi.alicloud.actiontrail.Trail;\nimport com.pulumi.alicloud.actiontrail.TrailArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var defaultGetAccount = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .projectName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .description(\"tf actiontrail example\")\n            .build());\n\n        final var defaultGetRoles = RamFunctions.getRoles(GetRolesArgs.builder()\n            .nameRegex(\"AliyunServiceRoleForActionTrail\")\n            .build());\n\n        var defaultTrail = new Trail(\"defaultTrail\", TrailArgs.builder()\n            .trailName(name)\n            .slsWriteRoleArn(defaultGetRoles.roles()[0].arn())\n            .slsProjectArn(defaultProject.projectName().applyValue(_projectName -\u003e String.format(\"acs:log:%s:%s:project/%s\", default_.regions()[0].id(),defaultGetAccount.id(),_projectName)))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultProject:\n    type: alicloud:log:Project\n    name: default\n    properties:\n      projectName: ${name}-${defaultInteger.result}\n      description: tf actiontrail example\n  defaultTrail:\n    type: alicloud:actiontrail:Trail\n    name: default\n    properties:\n      trailName: ${name}\n      slsWriteRoleArn: ${defaultGetRoles.roles[0].arn}\n      slsProjectArn: acs:log:${default.regions[0].id}:${defaultGetAccount.id}:project/${defaultProject.projectName}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetAccount:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  defaultGetRoles:\n    fn::invoke:\n      function: alicloud:ram:getRoles\n      arguments:\n        nameRegex: AliyunServiceRoleForActionTrail\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nActiontrail Trail can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:actiontrail/trail:Trail example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"(Available since v1.256.0) The time when the trail was created.\n"},"dataEventTrailRegion":{"type":"string","description":"The regions where the trail tracks data events. The value is a comma-separated list of region IDs.\n"},"eventRw":{"type":"string","description":"The read/write type of the events to be delivered. Default value: `All`. Valid values: `Read`, `Write`, `All`.\n"},"eventSelectors":{"type":"string","description":"The configuration of the data event selector. This parameter is a JSON array that can contain a maximum of 20 elements.\n"},"isOrganizationTrail":{"type":"boolean","description":"Specifies whether to create a multi-account trail. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"maxComputeProjectArn":{"type":"string","description":"The ARN of the MaxCompute project to which you want to deliver events.\n"},"maxComputeWriteRoleArn":{"type":"string","description":"The ARN of the role that is assumed by ActionTrail to deliver events to the MaxCompute project.\n"},"mnsTopicArn":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`mnsTopicArn`\" pulumi-lang-dotnet=\"`MnsTopicArn`\" pulumi-lang-go=\"`mnsTopicArn`\" pulumi-lang-python=\"`mns_topic_arn`\" pulumi-lang-yaml=\"`mnsTopicArn`\" pulumi-lang-java=\"`mnsTopicArn`\"\u003e`mns_topic_arn`\u003c/span\u003e has been deprecated from provider version 1.118.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`mnsTopicArn`\" pulumi-lang-dotnet=\"`MnsTopicArn`\" pulumi-lang-go=\"`mnsTopicArn`\" pulumi-lang-python=\"`mns_topic_arn`\" pulumi-lang-yaml=\"`mnsTopicArn`\" pulumi-lang-java=\"`mnsTopicArn`\"\u003e`mns_topic_arn`\u003c/span\u003e has been deprecated from version 1.118.0"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.95.0. New field \u003cspan pulumi-lang-nodejs=\"`trailName`\" pulumi-lang-dotnet=\"`TrailName`\" pulumi-lang-go=\"`trailName`\" pulumi-lang-python=\"`trail_name`\" pulumi-lang-yaml=\"`trailName`\" pulumi-lang-java=\"`trailName`\"\u003e`trail_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.95.0. New field 'trail_name' instead."},"ossBucketName":{"type":"string","description":"The OSS bucket to which the trail delivers logs.\n"},"ossKeyPrefix":{"type":"string","description":"The prefix of the file name in the OSS bucket to which the trail delivers logs.\n"},"ossWriteRoleArn":{"type":"string","description":"The name of the RAM role that the user allows ActionTrail to access OSS service.\n"},"regionId":{"type":"string","description":"(Available since v1.256.0) The home region of the trail.\n"},"roleName":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e has been deprecated from provider version 1.118.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e has been deprecated from version 1.118.0"},"slsProjectArn":{"type":"string","description":"The ARN of the Simple Log Service project to which the trail delivers logs.\n"},"slsWriteRoleArn":{"type":"string","description":"The ARN of the role that ActionTrail assumes to deliver operation events to the Simple Log Service project.\n"},"status":{"type":"string","description":"The status of the trail. Default value: `Enable`. Valid values: `Enable`, `Disable`.\n"},"trailName":{"type":"string","description":"The name of the trail to be created.\n"},"trailRegion":{"type":"string","description":"The region of the trail.\n"}},"required":["createTime","eventRw","maxComputeWriteRoleArn","name","regionId","slsWriteRoleArn","status","trailName","trailRegion"],"inputProperties":{"dataEventTrailRegion":{"type":"string","description":"The regions where the trail tracks data events. The value is a comma-separated list of region IDs.\n"},"eventRw":{"type":"string","description":"The read/write type of the events to be delivered. Default value: `All`. Valid values: `Read`, `Write`, `All`.\n"},"eventSelectors":{"type":"string","description":"The configuration of the data event selector. This parameter is a JSON array that can contain a maximum of 20 elements.\n"},"isOrganizationTrail":{"type":"boolean","description":"Specifies whether to create a multi-account trail. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"maxComputeProjectArn":{"type":"string","description":"The ARN of the MaxCompute project to which you want to deliver events.\n"},"maxComputeWriteRoleArn":{"type":"string","description":"The ARN of the role that is assumed by ActionTrail to deliver events to the MaxCompute project.\n"},"mnsTopicArn":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`mnsTopicArn`\" pulumi-lang-dotnet=\"`MnsTopicArn`\" pulumi-lang-go=\"`mnsTopicArn`\" pulumi-lang-python=\"`mns_topic_arn`\" pulumi-lang-yaml=\"`mnsTopicArn`\" pulumi-lang-java=\"`mnsTopicArn`\"\u003e`mns_topic_arn`\u003c/span\u003e has been deprecated from provider version 1.118.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`mnsTopicArn`\" pulumi-lang-dotnet=\"`MnsTopicArn`\" pulumi-lang-go=\"`mnsTopicArn`\" pulumi-lang-python=\"`mns_topic_arn`\" pulumi-lang-yaml=\"`mnsTopicArn`\" pulumi-lang-java=\"`mnsTopicArn`\"\u003e`mns_topic_arn`\u003c/span\u003e has been deprecated from version 1.118.0"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.95.0. New field \u003cspan pulumi-lang-nodejs=\"`trailName`\" pulumi-lang-dotnet=\"`TrailName`\" pulumi-lang-go=\"`trailName`\" pulumi-lang-python=\"`trail_name`\" pulumi-lang-yaml=\"`trailName`\" pulumi-lang-java=\"`trailName`\"\u003e`trail_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.95.0. New field 'trail_name' instead.","willReplaceOnChanges":true},"ossBucketName":{"type":"string","description":"The OSS bucket to which the trail delivers logs.\n"},"ossKeyPrefix":{"type":"string","description":"The prefix of the file name in the OSS bucket to which the trail delivers logs.\n"},"ossWriteRoleArn":{"type":"string","description":"The name of the RAM role that the user allows ActionTrail to access OSS service.\n"},"roleName":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e has been deprecated from provider version 1.118.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e has been deprecated from version 1.118.0"},"slsProjectArn":{"type":"string","description":"The ARN of the Simple Log Service project to which the trail delivers logs.\n"},"slsWriteRoleArn":{"type":"string","description":"The ARN of the role that ActionTrail assumes to deliver operation events to the Simple Log Service project.\n"},"status":{"type":"string","description":"The status of the trail. Default value: `Enable`. Valid values: `Enable`, `Disable`.\n"},"trailName":{"type":"string","description":"The name of the trail to be created.\n","willReplaceOnChanges":true},"trailRegion":{"type":"string","description":"The region of the trail.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Trail resources.\n","properties":{"createTime":{"type":"string","description":"(Available since v1.256.0) The time when the trail was created.\n"},"dataEventTrailRegion":{"type":"string","description":"The regions where the trail tracks data events. The value is a comma-separated list of region IDs.\n"},"eventRw":{"type":"string","description":"The read/write type of the events to be delivered. Default value: `All`. Valid values: `Read`, `Write`, `All`.\n"},"eventSelectors":{"type":"string","description":"The configuration of the data event selector. This parameter is a JSON array that can contain a maximum of 20 elements.\n"},"isOrganizationTrail":{"type":"boolean","description":"Specifies whether to create a multi-account trail. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"maxComputeProjectArn":{"type":"string","description":"The ARN of the MaxCompute project to which you want to deliver events.\n"},"maxComputeWriteRoleArn":{"type":"string","description":"The ARN of the role that is assumed by ActionTrail to deliver events to the MaxCompute project.\n"},"mnsTopicArn":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`mnsTopicArn`\" pulumi-lang-dotnet=\"`MnsTopicArn`\" pulumi-lang-go=\"`mnsTopicArn`\" pulumi-lang-python=\"`mns_topic_arn`\" pulumi-lang-yaml=\"`mnsTopicArn`\" pulumi-lang-java=\"`mnsTopicArn`\"\u003e`mns_topic_arn`\u003c/span\u003e has been deprecated from provider version 1.118.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`mnsTopicArn`\" pulumi-lang-dotnet=\"`MnsTopicArn`\" pulumi-lang-go=\"`mnsTopicArn`\" pulumi-lang-python=\"`mns_topic_arn`\" pulumi-lang-yaml=\"`mnsTopicArn`\" pulumi-lang-java=\"`mnsTopicArn`\"\u003e`mns_topic_arn`\u003c/span\u003e has been deprecated from version 1.118.0"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.95.0. New field \u003cspan pulumi-lang-nodejs=\"`trailName`\" pulumi-lang-dotnet=\"`TrailName`\" pulumi-lang-go=\"`trailName`\" pulumi-lang-python=\"`trail_name`\" pulumi-lang-yaml=\"`trailName`\" pulumi-lang-java=\"`trailName`\"\u003e`trail_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.95.0. New field 'trail_name' instead.","willReplaceOnChanges":true},"ossBucketName":{"type":"string","description":"The OSS bucket to which the trail delivers logs.\n"},"ossKeyPrefix":{"type":"string","description":"The prefix of the file name in the OSS bucket to which the trail delivers logs.\n"},"ossWriteRoleArn":{"type":"string","description":"The name of the RAM role that the user allows ActionTrail to access OSS service.\n"},"regionId":{"type":"string","description":"(Available since v1.256.0) The home region of the trail.\n"},"roleName":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e has been deprecated from provider version 1.118.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e has been deprecated from version 1.118.0"},"slsProjectArn":{"type":"string","description":"The ARN of the Simple Log Service project to which the trail delivers logs.\n"},"slsWriteRoleArn":{"type":"string","description":"The ARN of the role that ActionTrail assumes to deliver operation events to the Simple Log Service project.\n"},"status":{"type":"string","description":"The status of the trail. Default value: `Enable`. Valid values: `Enable`, `Disable`.\n"},"trailName":{"type":"string","description":"The name of the trail to be created.\n","willReplaceOnChanges":true},"trailRegion":{"type":"string","description":"The region of the trail.\n"}},"type":"object"}},"alicloud:actiontrail/trailDeprecated:TrailDeprecated":{"description":"\u003e **DEPRECATED:**  This resource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.actiontrail.Trail \" pulumi-lang-dotnet=\" alicloud.actiontrail.Trail \" pulumi-lang-go=\" actiontrail.Trail \" pulumi-lang-python=\" actiontrail.Trail \" pulumi-lang-yaml=\" alicloud.actiontrail.Trail \" pulumi-lang-java=\" alicloud.actiontrail.Trail \"\u003e alicloud.actiontrail.Trail \u003c/span\u003efrom version 1.95.0.\n\nProvides a new resource to manage [Action Trail](https://www.alibabacloud.com/help/doc-detail/28804.htm).\n\n\u003e **NOTE:** Available in 1.35.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Create a new action trail.\nconst foo = new alicloud.actiontrail.TrailDeprecated(\"foo\", {\n    name: \"action-trail\",\n    eventRw: \"Write-test\",\n    ossBucketName: bucket.id,\n    roleName: attach.roleName,\n    ossKeyPrefix: \"at-product-account-audit-B\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Create a new action trail.\nfoo = alicloud.actiontrail.TrailDeprecated(\"foo\",\n    name=\"action-trail\",\n    event_rw=\"Write-test\",\n    oss_bucket_name=bucket[\"id\"],\n    role_name=attach[\"roleName\"],\n    oss_key_prefix=\"at-product-account-audit-B\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new action trail.\n    var foo = new AliCloud.ActionTrail.TrailDeprecated(\"foo\", new()\n    {\n        Name = \"action-trail\",\n        EventRw = \"Write-test\",\n        OssBucketName = bucket.Id,\n        RoleName = attach.RoleName,\n        OssKeyPrefix = \"at-product-account-audit-B\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/actiontrail\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new action trail.\n\t\t_, err := actiontrail.NewTrailDeprecated(ctx, \"foo\", \u0026actiontrail.TrailDeprecatedArgs{\n\t\t\tName:          pulumi.String(\"action-trail\"),\n\t\t\tEventRw:       pulumi.String(\"Write-test\"),\n\t\t\tOssBucketName: pulumi.Any(bucket.Id),\n\t\t\tRoleName:      pulumi.Any(attach.RoleName),\n\t\t\tOssKeyPrefix:  pulumi.String(\"at-product-account-audit-B\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.actiontrail.TrailDeprecated;\nimport com.pulumi.alicloud.actiontrail.TrailDeprecatedArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new action trail.\n        var foo = new TrailDeprecated(\"foo\", TrailDeprecatedArgs.builder()\n            .name(\"action-trail\")\n            .eventRw(\"Write-test\")\n            .ossBucketName(bucket.id())\n            .roleName(attach.roleName())\n            .ossKeyPrefix(\"at-product-account-audit-B\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new action trail.\n  foo:\n    type: alicloud:actiontrail:TrailDeprecated\n    properties:\n      name: action-trail\n      eventRw: Write-test\n      ossBucketName: ${bucket.id}\n      roleName: ${attach.roleName}\n      ossKeyPrefix: at-product-account-audit-B\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAction trail can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:actiontrail/trailDeprecated:TrailDeprecated foo abc12345678\n```\n\n","properties":{"createTime":{"type":"string"},"dataEventTrailRegion":{"type":"string"},"eventRw":{"type":"string","description":"Indicates whether the event is a read or a write event. Valid values: Read, Write, and All. Default value: Write.\n"},"eventSelectors":{"type":"string"},"isOrganizationTrail":{"type":"boolean"},"maxComputeProjectArn":{"type":"string"},"maxComputeWriteRoleArn":{"type":"string"},"mnsTopicArn":{"type":"string","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`mnsTopicArn`\" pulumi-lang-dotnet=\"`MnsTopicArn`\" pulumi-lang-go=\"`mnsTopicArn`\" pulumi-lang-python=\"`mns_topic_arn`\" pulumi-lang-yaml=\"`mnsTopicArn`\" pulumi-lang-java=\"`mnsTopicArn`\"\u003e`mns_topic_arn`\u003c/span\u003e has been deprecated from version 1.118.0"},"name":{"type":"string","description":"The name of the trail to be created, which must be unique for an account.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.95.0. New field 'trail_name' instead."},"ossBucketName":{"type":"string","description":"The OSS bucket to which the trail delivers logs. Ensure that this is an existing OSS bucket.\n"},"ossKeyPrefix":{"type":"string","description":"The prefix of the specified OSS bucket name. This parameter can be left empty.\n"},"ossWriteRoleArn":{"type":"string"},"regionId":{"type":"string"},"roleName":{"type":"string","description":"The RAM role in ActionTrail permitted by the user.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e has been deprecated from version 1.118.0"},"slsProjectArn":{"type":"string","description":"The unique ARN of the Log Service project.\n"},"slsWriteRoleArn":{"type":"string","description":"The unique ARN of the Log Service role.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`slsProjectArn`\" pulumi-lang-dotnet=\"`SlsProjectArn`\" pulumi-lang-go=\"`slsProjectArn`\" pulumi-lang-python=\"`sls_project_arn`\" pulumi-lang-yaml=\"`slsProjectArn`\" pulumi-lang-java=\"`slsProjectArn`\"\u003e`sls_project_arn`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`slsWriteRoleArn`\" pulumi-lang-dotnet=\"`SlsWriteRoleArn`\" pulumi-lang-go=\"`slsWriteRoleArn`\" pulumi-lang-python=\"`sls_write_role_arn`\" pulumi-lang-yaml=\"`slsWriteRoleArn`\" pulumi-lang-java=\"`slsWriteRoleArn`\"\u003e`sls_write_role_arn`\u003c/span\u003e should be set or not set at the same time when actiontrail delivers logs.\n"},"status":{"type":"string"},"trailName":{"type":"string"},"trailRegion":{"type":"string"}},"required":["createTime","eventRw","maxComputeWriteRoleArn","name","regionId","slsWriteRoleArn","status","trailName","trailRegion"],"inputProperties":{"dataEventTrailRegion":{"type":"string"},"eventRw":{"type":"string","description":"Indicates whether the event is a read or a write event. Valid values: Read, Write, and All. Default value: Write.\n"},"eventSelectors":{"type":"string"},"isOrganizationTrail":{"type":"boolean","willReplaceOnChanges":true},"maxComputeProjectArn":{"type":"string"},"maxComputeWriteRoleArn":{"type":"string"},"mnsTopicArn":{"type":"string","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`mnsTopicArn`\" pulumi-lang-dotnet=\"`MnsTopicArn`\" pulumi-lang-go=\"`mnsTopicArn`\" pulumi-lang-python=\"`mns_topic_arn`\" pulumi-lang-yaml=\"`mnsTopicArn`\" pulumi-lang-java=\"`mnsTopicArn`\"\u003e`mns_topic_arn`\u003c/span\u003e has been deprecated from version 1.118.0"},"name":{"type":"string","description":"The name of the trail to be created, which must be unique for an account.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.95.0. New field 'trail_name' instead.","willReplaceOnChanges":true},"ossBucketName":{"type":"string","description":"The OSS bucket to which the trail delivers logs. Ensure that this is an existing OSS bucket.\n"},"ossKeyPrefix":{"type":"string","description":"The prefix of the specified OSS bucket name. This parameter can be left empty.\n"},"ossWriteRoleArn":{"type":"string"},"roleName":{"type":"string","description":"The RAM role in ActionTrail permitted by the user.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e has been deprecated from version 1.118.0"},"slsProjectArn":{"type":"string","description":"The unique ARN of the Log Service project.\n"},"slsWriteRoleArn":{"type":"string","description":"The unique ARN of the Log Service role.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`slsProjectArn`\" pulumi-lang-dotnet=\"`SlsProjectArn`\" pulumi-lang-go=\"`slsProjectArn`\" pulumi-lang-python=\"`sls_project_arn`\" pulumi-lang-yaml=\"`slsProjectArn`\" pulumi-lang-java=\"`slsProjectArn`\"\u003e`sls_project_arn`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`slsWriteRoleArn`\" pulumi-lang-dotnet=\"`SlsWriteRoleArn`\" pulumi-lang-go=\"`slsWriteRoleArn`\" pulumi-lang-python=\"`sls_write_role_arn`\" pulumi-lang-yaml=\"`slsWriteRoleArn`\" pulumi-lang-java=\"`slsWriteRoleArn`\"\u003e`sls_write_role_arn`\u003c/span\u003e should be set or not set at the same time when actiontrail delivers logs.\n"},"status":{"type":"string"},"trailName":{"type":"string","willReplaceOnChanges":true},"trailRegion":{"type":"string"}},"stateInputs":{"description":"Input properties used for looking up and filtering TrailDeprecated resources.\n","properties":{"createTime":{"type":"string"},"dataEventTrailRegion":{"type":"string"},"eventRw":{"type":"string","description":"Indicates whether the event is a read or a write event. Valid values: Read, Write, and All. Default value: Write.\n"},"eventSelectors":{"type":"string"},"isOrganizationTrail":{"type":"boolean","willReplaceOnChanges":true},"maxComputeProjectArn":{"type":"string"},"maxComputeWriteRoleArn":{"type":"string"},"mnsTopicArn":{"type":"string","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`mnsTopicArn`\" pulumi-lang-dotnet=\"`MnsTopicArn`\" pulumi-lang-go=\"`mnsTopicArn`\" pulumi-lang-python=\"`mns_topic_arn`\" pulumi-lang-yaml=\"`mnsTopicArn`\" pulumi-lang-java=\"`mnsTopicArn`\"\u003e`mns_topic_arn`\u003c/span\u003e has been deprecated from version 1.118.0"},"name":{"type":"string","description":"The name of the trail to be created, which must be unique for an account.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.95.0. New field 'trail_name' instead.","willReplaceOnChanges":true},"ossBucketName":{"type":"string","description":"The OSS bucket to which the trail delivers logs. Ensure that this is an existing OSS bucket.\n"},"ossKeyPrefix":{"type":"string","description":"The prefix of the specified OSS bucket name. This parameter can be left empty.\n"},"ossWriteRoleArn":{"type":"string"},"regionId":{"type":"string"},"roleName":{"type":"string","description":"The RAM role in ActionTrail permitted by the user.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e has been deprecated from version 1.118.0"},"slsProjectArn":{"type":"string","description":"The unique ARN of the Log Service project.\n"},"slsWriteRoleArn":{"type":"string","description":"The unique ARN of the Log Service role.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`slsProjectArn`\" pulumi-lang-dotnet=\"`SlsProjectArn`\" pulumi-lang-go=\"`slsProjectArn`\" pulumi-lang-python=\"`sls_project_arn`\" pulumi-lang-yaml=\"`slsProjectArn`\" pulumi-lang-java=\"`slsProjectArn`\"\u003e`sls_project_arn`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`slsWriteRoleArn`\" pulumi-lang-dotnet=\"`SlsWriteRoleArn`\" pulumi-lang-go=\"`slsWriteRoleArn`\" pulumi-lang-python=\"`sls_write_role_arn`\" pulumi-lang-yaml=\"`slsWriteRoleArn`\" pulumi-lang-java=\"`slsWriteRoleArn`\"\u003e`sls_write_role_arn`\u003c/span\u003e should be set or not set at the same time when actiontrail delivers logs.\n"},"status":{"type":"string"},"trailName":{"type":"string","willReplaceOnChanges":true},"trailRegion":{"type":"string"}},"type":"object"},"deprecationMessage":"Resource renamed to `Trail`"},"alicloud:adb/account:Account":{"description":"Provides a AnalyticDB for MySQL (ADB) Account resource.\n\n\n\nFor information about AnalyticDB for MySQL (ADB) Account and how to use it, see [What is Account](https://www.alibabacloud.com/help/en/analyticdb-for-mysql/latest/api-doc-adb-2019-03-15-api-doc-createaccount).\n\n\u003e **NOTE:** Available since v1.71.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst _default = alicloud.adb.getZones({});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[0],\n}));\nconst cluster = new alicloud.adb.DBCluster(\"cluster\", {\n    dbClusterCategory: \"MixedStorage\",\n    mode: \"flexible\",\n    computeResource: \"8Core32GB\",\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    description: name,\n});\nconst defaultAccount = new alicloud.adb.Account(\"default\", {\n    dbClusterId: cluster.id,\n    accountName: name,\n    accountPassword: \"tf_example123\",\n    accountDescription: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault = alicloud.adb.get_zones()\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[0])\ncluster = alicloud.adb.DBCluster(\"cluster\",\n    db_cluster_category=\"MixedStorage\",\n    mode=\"flexible\",\n    compute_resource=\"8Core32GB\",\n    vswitch_id=default_get_switches.ids[0],\n    description=name)\ndefault_account = alicloud.adb.Account(\"default\",\n    db_cluster_id=cluster.id,\n    account_name=name,\n    account_password=\"tf_example123\",\n    account_description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var @default = AliCloud.Adb.GetZones.Invoke();\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n    });\n\n    var cluster = new AliCloud.Adb.DBCluster(\"cluster\", new()\n    {\n        DbClusterCategory = \"MixedStorage\",\n        Mode = \"flexible\",\n        ComputeResource = \"8Core32GB\",\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        Description = name,\n    });\n\n    var defaultAccount = new AliCloud.Adb.Account(\"default\", new()\n    {\n        DbClusterId = cluster.Id,\n        AccountName = name,\n        AccountPassword = \"tf_example123\",\n        AccountDescription = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/adb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := adb.GetZones(ctx, \u0026adb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := adb.NewDBCluster(ctx, \"cluster\", \u0026adb.DBClusterArgs{\n\t\t\tDbClusterCategory: pulumi.String(\"MixedStorage\"),\n\t\t\tMode:              pulumi.String(\"flexible\"),\n\t\t\tComputeResource:   pulumi.String(\"8Core32GB\"),\n\t\t\tVswitchId:         pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tDescription:       pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = adb.NewAccount(ctx, \"default\", \u0026adb.AccountArgs{\n\t\t\tDbClusterId:        cluster.ID(),\n\t\t\tAccountName:        pulumi.String(name),\n\t\t\tAccountPassword:    pulumi.String(\"tf_example123\"),\n\t\t\tAccountDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.adb.AdbFunctions;\nimport com.pulumi.alicloud.adb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.adb.DBCluster;\nimport com.pulumi.alicloud.adb.DBClusterArgs;\nimport com.pulumi.alicloud.adb.Account;\nimport com.pulumi.alicloud.adb.AccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        final var default = AdbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[0])\n            .build());\n\n        var cluster = new DBCluster(\"cluster\", DBClusterArgs.builder()\n            .dbClusterCategory(\"MixedStorage\")\n            .mode(\"flexible\")\n            .computeResource(\"8Core32GB\")\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .description(name)\n            .build());\n\n        var defaultAccount = new Account(\"defaultAccount\", AccountArgs.builder()\n            .dbClusterId(cluster.id())\n            .accountName(name)\n            .accountPassword(\"tf_example123\")\n            .accountDescription(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  cluster:\n    type: alicloud:adb:DBCluster\n    properties:\n      dbClusterCategory: MixedStorage\n      mode: flexible\n      computeResource: 8Core32GB\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      description: ${name}\n  defaultAccount:\n    type: alicloud:adb:Account\n    name: default\n    properties:\n      dbClusterId: ${cluster.id}\n      accountName: ${name}\n      accountPassword: tf_example123\n      accountDescription: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:adb:getZones\n      arguments: {}\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAnalyticDB for MySQL (ADB) Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:adb/account:Account example \u003cdb_cluster_id\u003e:\u003caccount_name\u003e\n```\n\n","properties":{"accountDescription":{"type":"string","description":"The description of the account.\n"},"accountName":{"type":"string","description":"The name of the database account. The name must meet the following requirements:\n- Start with a lowercase letter and end with a lowercase letter or a digit.\n- Contain only lowercase letters, digits, and underscores (_).\n- Its length must be between 2 and 16 characters.\n- Cannot be a reserved name, such as root, admin, or opsadmin.\n"},"accountPassword":{"type":"string","description":"The password of the database account. The password must meet the following requirements:\n- It must consist of uppercase letters, lowercase letters, digits, and special characters.\n- The allowed special characters are: (!), (@), (#), ($), (%), (^), (\u0026), (*), (()), (_), (+), (-), (=).\n- Its length must be between 8 and 32 characters.\n","secret":true},"accountType":{"type":"string","description":"The type of the account. Valid values:\n- `Super` (default): A privileged account. You can create only one privileged account for a cluster.\n"},"dbClusterId":{"type":"string","description":"The cluster ID of the data warehouse edition.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a db account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"status":{"type":"string","description":"(Available since v1.273.0) The status of the account.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"required":["accountName","accountType","dbClusterId","status"],"inputProperties":{"accountDescription":{"type":"string","description":"The description of the account.\n"},"accountName":{"type":"string","description":"The name of the database account. The name must meet the following requirements:\n- Start with a lowercase letter and end with a lowercase letter or a digit.\n- Contain only lowercase letters, digits, and underscores (_).\n- Its length must be between 2 and 16 characters.\n- Cannot be a reserved name, such as root, admin, or opsadmin.\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"The password of the database account. The password must meet the following requirements:\n- It must consist of uppercase letters, lowercase letters, digits, and special characters.\n- The allowed special characters are: (!), (@), (#), ($), (%), (^), (\u0026), (*), (()), (_), (+), (-), (=).\n- Its length must be between 8 and 32 characters.\n","secret":true},"accountType":{"type":"string","description":"The type of the account. Valid values:\n- `Super` (default): A privileged account. You can create only one privileged account for a cluster.\n","willReplaceOnChanges":true},"dbClusterId":{"type":"string","description":"The cluster ID of the data warehouse edition.\n","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a db account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n","willReplaceOnChanges":true}},"requiredInputs":["accountName","dbClusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering Account resources.\n","properties":{"accountDescription":{"type":"string","description":"The description of the account.\n"},"accountName":{"type":"string","description":"The name of the database account. The name must meet the following requirements:\n- Start with a lowercase letter and end with a lowercase letter or a digit.\n- Contain only lowercase letters, digits, and underscores (_).\n- Its length must be between 2 and 16 characters.\n- Cannot be a reserved name, such as root, admin, or opsadmin.\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"The password of the database account. The password must meet the following requirements:\n- It must consist of uppercase letters, lowercase letters, digits, and special characters.\n- The allowed special characters are: (!), (@), (#), ($), (%), (^), (\u0026), (*), (()), (_), (+), (-), (=).\n- Its length must be between 8 and 32 characters.\n","secret":true},"accountType":{"type":"string","description":"The type of the account. Valid values:\n- `Super` (default): A privileged account. You can create only one privileged account for a cluster.\n","willReplaceOnChanges":true},"dbClusterId":{"type":"string","description":"The cluster ID of the data warehouse edition.\n","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a db account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"status":{"type":"string","description":"(Available since v1.273.0) The status of the account.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:adb/backupPolicy:BackupPolicy":{"description":"Provides a [ADB](https://www.alibabacloud.com/help/en/analyticdb-for-mysql/latest/api-doc-adb-2019-03-15-api-doc-modifybackuppolicy) cluster backup policy resource and used to configure cluster backup policy.\n\n\u003e **NOTE:** Available since v1.71.0.\n\n\u003e Each DB cluster has a backup policy and it will be set default values when destroying the resource.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.adb.getZones({});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[0],\n}));\nconst vswitchId = defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]);\nconst cluster = new alicloud.adb.DBCluster(\"cluster\", {\n    dbClusterCategory: \"MixedStorage\",\n    mode: \"flexible\",\n    computeResource: \"8Core32GB\",\n    vswitchId: vswitchId,\n    description: name,\n});\nconst defaultBackupPolicy = new alicloud.adb.BackupPolicy(\"default\", {\n    dbClusterId: cluster.id,\n    preferredBackupPeriods: [\n        \"Tuesday\",\n        \"Wednesday\",\n    ],\n    preferredBackupTime: \"10:00Z-11:00Z\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.adb.get_zones()\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[0])\nvswitch_id = default_get_switches.ids[0]\ncluster = alicloud.adb.DBCluster(\"cluster\",\n    db_cluster_category=\"MixedStorage\",\n    mode=\"flexible\",\n    compute_resource=\"8Core32GB\",\n    vswitch_id=vswitch_id,\n    description=name)\ndefault_backup_policy = alicloud.adb.BackupPolicy(\"default\",\n    db_cluster_id=cluster.id,\n    preferred_backup_periods=[\n        \"Tuesday\",\n        \"Wednesday\",\n    ],\n    preferred_backup_time=\"10:00Z-11:00Z\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Adb.GetZones.Invoke();\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n    });\n\n    var vswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]);\n\n    var cluster = new AliCloud.Adb.DBCluster(\"cluster\", new()\n    {\n        DbClusterCategory = \"MixedStorage\",\n        Mode = \"flexible\",\n        ComputeResource = \"8Core32GB\",\n        VswitchId = vswitchId,\n        Description = name,\n    });\n\n    var defaultBackupPolicy = new AliCloud.Adb.BackupPolicy(\"default\", new()\n    {\n        DbClusterId = cluster.Id,\n        PreferredBackupPeriods = new[]\n        {\n            \"Tuesday\",\n            \"Wednesday\",\n        },\n        PreferredBackupTime = \"10:00Z-11:00Z\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/adb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := adb.GetZones(ctx, \u0026adb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvswitchId := defaultGetSwitches.Ids[0]\n\t\tcluster, err := adb.NewDBCluster(ctx, \"cluster\", \u0026adb.DBClusterArgs{\n\t\t\tDbClusterCategory: pulumi.String(\"MixedStorage\"),\n\t\t\tMode:              pulumi.String(\"flexible\"),\n\t\t\tComputeResource:   pulumi.String(\"8Core32GB\"),\n\t\t\tVswitchId:         pulumi.String(vswitchId),\n\t\t\tDescription:       pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = adb.NewBackupPolicy(ctx, \"default\", \u0026adb.BackupPolicyArgs{\n\t\t\tDbClusterId: cluster.ID(),\n\t\t\tPreferredBackupPeriods: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Tuesday\"),\n\t\t\t\tpulumi.String(\"Wednesday\"),\n\t\t\t},\n\t\t\tPreferredBackupTime: pulumi.String(\"10:00Z-11:00Z\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.adb.AdbFunctions;\nimport com.pulumi.alicloud.adb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.adb.DBCluster;\nimport com.pulumi.alicloud.adb.DBClusterArgs;\nimport com.pulumi.alicloud.adb.BackupPolicy;\nimport com.pulumi.alicloud.adb.BackupPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AdbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[0])\n            .build());\n\n        final var vswitchId = defaultGetSwitches.ids()[0];\n\n        var cluster = new DBCluster(\"cluster\", DBClusterArgs.builder()\n            .dbClusterCategory(\"MixedStorage\")\n            .mode(\"flexible\")\n            .computeResource(\"8Core32GB\")\n            .vswitchId(vswitchId)\n            .description(name)\n            .build());\n\n        var defaultBackupPolicy = new BackupPolicy(\"defaultBackupPolicy\", BackupPolicyArgs.builder()\n            .dbClusterId(cluster.id())\n            .preferredBackupPeriods(            \n                \"Tuesday\",\n                \"Wednesday\")\n            .preferredBackupTime(\"10:00Z-11:00Z\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  cluster:\n    type: alicloud:adb:DBCluster\n    properties:\n      dbClusterCategory: MixedStorage\n      mode: flexible\n      computeResource: 8Core32GB\n      vswitchId: ${vswitchId}\n      description: ${name}\n  defaultBackupPolicy:\n    type: alicloud:adb:BackupPolicy\n    name: default\n    properties:\n      dbClusterId: ${cluster.id}\n      preferredBackupPeriods:\n        - Tuesday\n        - Wednesday\n      preferredBackupTime: 10:00Z-11:00Z\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:adb:getZones\n      arguments: {}\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[0]}\n  vswitchId: ${defaultGetSwitches.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Removing\u003cspan pulumi-lang-nodejs=\" alicloud.adb.Cluster \" pulumi-lang-dotnet=\" alicloud.adb.Cluster \" pulumi-lang-go=\" adb.Cluster \" pulumi-lang-python=\" adb.Cluster \" pulumi-lang-yaml=\" alicloud.adb.Cluster \" pulumi-lang-java=\" alicloud.adb.Cluster \"\u003e alicloud.adb.Cluster \u003c/span\u003efrom your configuration\n \nThe\u003cspan pulumi-lang-nodejs=\" alicloud.adb.BackupPolicy \" pulumi-lang-dotnet=\" alicloud.adb.BackupPolicy \" pulumi-lang-go=\" adb.BackupPolicy \" pulumi-lang-python=\" adb.BackupPolicy \" pulumi-lang-yaml=\" alicloud.adb.BackupPolicy \" pulumi-lang-java=\" alicloud.adb.BackupPolicy \"\u003e alicloud.adb.BackupPolicy \u003c/span\u003eresource allows you to manage your adb cluster policy, but Terraform cannot destroy it. Removing this resource from your configuration will remove it from your statefile and management, but will not destroy the cluster policy. You can resume managing the cluster via the adb Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nADB backup policy can be imported using the id or cluster id, e.g.\n\n```sh\n$ pulumi import alicloud:adb/backupPolicy:BackupPolicy example \"am-12345678\"\n```\n\n","properties":{"backupRetentionPeriod":{"type":"string","description":"Cluster backup retention days, Fixed for 7 days, not modified.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n"},"preferredBackupPeriods":{"type":"array","items":{"type":"string"},"description":"ADB Cluster backup period. Valid values: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday].\n"},"preferredBackupTime":{"type":"string","description":"ADB Cluster backup time, in the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. China time is 8 hours behind it.\n"}},"required":["backupRetentionPeriod","dbClusterId","preferredBackupPeriods","preferredBackupTime"],"inputProperties":{"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n","willReplaceOnChanges":true},"preferredBackupPeriods":{"type":"array","items":{"type":"string"},"description":"ADB Cluster backup period. Valid values: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday].\n"},"preferredBackupTime":{"type":"string","description":"ADB Cluster backup time, in the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. China time is 8 hours behind it.\n"}},"requiredInputs":["dbClusterId","preferredBackupPeriods","preferredBackupTime"],"stateInputs":{"description":"Input properties used for looking up and filtering BackupPolicy resources.\n","properties":{"backupRetentionPeriod":{"type":"string","description":"Cluster backup retention days, Fixed for 7 days, not modified.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n","willReplaceOnChanges":true},"preferredBackupPeriods":{"type":"array","items":{"type":"string"},"description":"ADB Cluster backup period. Valid values: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday].\n"},"preferredBackupTime":{"type":"string","description":"ADB Cluster backup time, in the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. China time is 8 hours behind it.\n"}},"type":"object"}},"alicloud:adb/cluster:Cluster":{"description":"Provides a ADB cluster resource. An ADB cluster is an isolated database\nenvironment in the cloud. An ADB cluster can contain multiple user-created\ndatabases.\n\n\u003e **NOTE:** Deprecated since v1.121.0.\n\n\u003e **DEPRECATED:** This resource  has been deprecated from version `1.121.0`. Please use new resource alicloud_adb_db_cluster.\n\n## Example Usage\n\n### Create a ADB MySQL cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"adbClusterconfig\";\nconst creation = config.get(\"creation\") || \"ADB\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: creation,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultCluster = new alicloud.adb.Cluster(\"default\", {\n    dbClusterVersion: \"3.0\",\n    dbClusterCategory: \"Cluster\",\n    dbNodeClass: \"C8\",\n    dbNodeCount: 2,\n    dbNodeStorage: 200,\n    payType: \"PostPaid\",\n    description: name,\n    vswitchId: defaultSwitch.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"adbClusterconfig\"\ncreation = config.get(\"creation\")\nif creation is None:\n    creation = \"ADB\"\ndefault = alicloud.get_zones(available_resource_creation=creation)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_cluster = alicloud.adb.Cluster(\"default\",\n    db_cluster_version=\"3.0\",\n    db_cluster_category=\"Cluster\",\n    db_node_class=\"C8\",\n    db_node_count=2,\n    db_node_storage=200,\n    pay_type=\"PostPaid\",\n    description=name,\n    vswitch_id=default_switch.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"adbClusterconfig\";\n    var creation = config.Get(\"creation\") ?? \"ADB\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = creation,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultCluster = new AliCloud.Adb.Cluster(\"default\", new()\n    {\n        DbClusterVersion = \"3.0\",\n        DbClusterCategory = \"Cluster\",\n        DbNodeClass = \"C8\",\n        DbNodeCount = 2,\n        DbNodeStorage = 200,\n        PayType = \"PostPaid\",\n        Description = name,\n        VswitchId = defaultSwitch.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/adb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"adbClusterconfig\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcreation := \"ADB\"\n\t\tif param := cfg.Get(\"creation\"); param != \"\" {\n\t\t\tcreation = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(creation),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = adb.NewCluster(ctx, \"default\", \u0026adb.ClusterArgs{\n\t\t\tDbClusterVersion:  pulumi.String(\"3.0\"),\n\t\t\tDbClusterCategory: pulumi.String(\"Cluster\"),\n\t\t\tDbNodeClass:       pulumi.String(\"C8\"),\n\t\t\tDbNodeCount:       pulumi.Int(2),\n\t\t\tDbNodeStorage:     pulumi.Int(200),\n\t\t\tPayType:           pulumi.String(\"PostPaid\"),\n\t\t\tDescription:       pulumi.String(name),\n\t\t\tVswitchId:         defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.adb.Cluster;\nimport com.pulumi.alicloud.adb.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"adbClusterconfig\");\n        final var creation = config.get(\"creation\").orElse(\"ADB\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(creation)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .dbClusterVersion(\"3.0\")\n            .dbClusterCategory(\"Cluster\")\n            .dbNodeClass(\"C8\")\n            .dbNodeCount(2)\n            .dbNodeStorage(200)\n            .payType(\"PostPaid\")\n            .description(name)\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: adbClusterconfig\n  creation:\n    type: string\n    default: ADB\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultCluster:\n    type: alicloud:adb:Cluster\n    name: default\n    properties:\n      dbClusterVersion: '3.0'\n      dbClusterCategory: Cluster\n      dbNodeClass: C8\n      dbNodeCount: 2\n      dbNodeStorage: 200\n      payType: PostPaid\n      description: ${name}\n      vswitchId: ${defaultSwitch.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: ${creation}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nADB cluster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:adb/cluster:Cluster example am-abc12345678\n```\n\n","properties":{"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an cluster, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid value:1, 2, 3, 6, 12, 24, 36, Default to 1.\n"},"computeResource":{"type":"string"},"connectionString":{"type":"string","description":"(Available since v1.93.0) The connection string of the ADB cluster.\n"},"dbClusterCategory":{"type":"string","description":"Cluster category. Value options: `Basic`, `Cluster`.\n"},"dbClusterClass":{"type":"string","deprecationMessage":"It duplicates with attribute\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eand is deprecated from 1.121.2."},"dbClusterVersion":{"type":"string","description":"Cluster version. Value options: `3.0`, Default to `3.0`.\n"},"dbNodeClass":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eof cluster node.\n"},"dbNodeCount":{"type":"integer","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeCount \" pulumi-lang-dotnet=\" DbNodeCount \" pulumi-lang-go=\" dbNodeCount \" pulumi-lang-python=\" db_node_count \" pulumi-lang-yaml=\" dbNodeCount \" pulumi-lang-java=\" dbNodeCount \"\u003e db_node_count \u003c/span\u003eof cluster node.\n"},"dbNodeStorage":{"type":"integer","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeStorage \" pulumi-lang-dotnet=\" DbNodeStorage \" pulumi-lang-go=\" dbNodeStorage \" pulumi-lang-python=\" db_node_storage \" pulumi-lang-yaml=\" dbNodeStorage \" pulumi-lang-java=\" dbNodeStorage \"\u003e db_node_storage \u003c/span\u003eof cluster node.\n"},"description":{"type":"string","description":"The description of cluster.\n"},"diskEncryption":{"type":"boolean"},"diskPerformanceLevel":{"type":"string"},"elasticIoResource":{"type":"integer"},"elasticIoResourceSize":{"type":"string"},"enableSsl":{"type":"boolean"},"kernelVersion":{"type":"string"},"kmsId":{"type":"string"},"maintainTime":{"type":"string","description":"Maintainable time period format of the instance: HH:MMZ-HH:MMZ (UTC time)\n"},"mode":{"type":"string"},"modifyType":{"type":"string"},"payType":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`payType`\" pulumi-lang-dotnet=\"`PayType`\" pulumi-lang-go=\"`payType`\" pulumi-lang-python=\"`pay_type`\" pulumi-lang-yaml=\"`payType`\" pulumi-lang-java=\"`payType`\"\u003e`pay_type`\u003c/span\u003e has been deprecated. New field \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.\n","deprecationMessage":"Attribute 'pay_type' has been deprecated from the provider version 1.166.0 and it will be remove in the future version. Please use the new attribute 'payment_type' instead."},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`. **Note:** The \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e supports updating from v1.166.0+.\n"},"period":{"type":"integer","description":"The duration that you will buy DB cluster (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid values: [1~9], 12, 24, 36. Default to 1.\n"},"port":{"type":"string","description":"(Available since v1.196.0) The connection port of the ADB cluster.\n"},"renewalStatus":{"type":"string","description":"Valid values are `AutoRenewal`, `Normal`, `NotRenewal`, Default to `NotRenewal`.\n"},"resourceGroupId":{"type":"string"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an cluster. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"status":{"type":"string"},"switchMode":{"type":"integer"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n\n\u003e **NOTE:** Because of data backup and migration, change DB cluster type and storage would cost 15~30 minutes. Please make full preparation before changing them.\n"},"vpcId":{"type":"string"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB cluster.\n"}},"required":["autoRenewPeriod","connectionString","dbClusterCategory","dbNodeClass","dbNodeCount","dbNodeStorage","description","diskPerformanceLevel","elasticIoResource","elasticIoResourceSize","kernelVersion","maintainTime","mode","payType","paymentType","port","renewalStatus","resourceGroupId","securityIps","status","vpcId","zoneId"],"inputProperties":{"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an cluster, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid value:1, 2, 3, 6, 12, 24, 36, Default to 1.\n"},"computeResource":{"type":"string"},"dbClusterCategory":{"type":"string","description":"Cluster category. Value options: `Basic`, `Cluster`.\n"},"dbClusterClass":{"type":"string","deprecationMessage":"It duplicates with attribute\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eand is deprecated from 1.121.2."},"dbClusterVersion":{"type":"string","description":"Cluster version. Value options: `3.0`, Default to `3.0`.\n","willReplaceOnChanges":true},"dbNodeClass":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eof cluster node.\n"},"dbNodeCount":{"type":"integer","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeCount \" pulumi-lang-dotnet=\" DbNodeCount \" pulumi-lang-go=\" dbNodeCount \" pulumi-lang-python=\" db_node_count \" pulumi-lang-yaml=\" dbNodeCount \" pulumi-lang-java=\" dbNodeCount \"\u003e db_node_count \u003c/span\u003eof cluster node.\n"},"dbNodeStorage":{"type":"integer","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeStorage \" pulumi-lang-dotnet=\" DbNodeStorage \" pulumi-lang-go=\" dbNodeStorage \" pulumi-lang-python=\" db_node_storage \" pulumi-lang-yaml=\" dbNodeStorage \" pulumi-lang-java=\" dbNodeStorage \"\u003e db_node_storage \u003c/span\u003eof cluster node.\n"},"description":{"type":"string","description":"The description of cluster.\n"},"diskEncryption":{"type":"boolean","willReplaceOnChanges":true},"diskPerformanceLevel":{"type":"string"},"elasticIoResource":{"type":"integer"},"elasticIoResourceSize":{"type":"string"},"enableSsl":{"type":"boolean"},"kernelVersion":{"type":"string"},"kmsId":{"type":"string","willReplaceOnChanges":true},"maintainTime":{"type":"string","description":"Maintainable time period format of the instance: HH:MMZ-HH:MMZ (UTC time)\n"},"mode":{"type":"string"},"modifyType":{"type":"string"},"payType":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`payType`\" pulumi-lang-dotnet=\"`PayType`\" pulumi-lang-go=\"`payType`\" pulumi-lang-python=\"`pay_type`\" pulumi-lang-yaml=\"`payType`\" pulumi-lang-java=\"`payType`\"\u003e`pay_type`\u003c/span\u003e has been deprecated. New field \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.\n","deprecationMessage":"Attribute 'pay_type' has been deprecated from the provider version 1.166.0 and it will be remove in the future version. Please use the new attribute 'payment_type' instead."},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`. **Note:** The \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e supports updating from v1.166.0+.\n"},"period":{"type":"integer","description":"The duration that you will buy DB cluster (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid values: [1~9], 12, 24, 36. Default to 1.\n"},"renewalStatus":{"type":"string","description":"Valid values are `AutoRenewal`, `Normal`, `NotRenewal`, Default to `NotRenewal`.\n"},"resourceGroupId":{"type":"string"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an cluster. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"switchMode":{"type":"integer"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n\n\u003e **NOTE:** Because of data backup and migration, change DB cluster type and storage would cost 15~30 minutes. Please make full preparation before changing them.\n"},"vpcId":{"type":"string","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the DB cluster.\n","willReplaceOnChanges":true}},"requiredInputs":["dbClusterCategory","mode"],"stateInputs":{"description":"Input properties used for looking up and filtering Cluster resources.\n","properties":{"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an cluster, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid value:1, 2, 3, 6, 12, 24, 36, Default to 1.\n"},"computeResource":{"type":"string"},"connectionString":{"type":"string","description":"(Available since v1.93.0) The connection string of the ADB cluster.\n"},"dbClusterCategory":{"type":"string","description":"Cluster category. Value options: `Basic`, `Cluster`.\n"},"dbClusterClass":{"type":"string","deprecationMessage":"It duplicates with attribute\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eand is deprecated from 1.121.2."},"dbClusterVersion":{"type":"string","description":"Cluster version. Value options: `3.0`, Default to `3.0`.\n","willReplaceOnChanges":true},"dbNodeClass":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eof cluster node.\n"},"dbNodeCount":{"type":"integer","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeCount \" pulumi-lang-dotnet=\" DbNodeCount \" pulumi-lang-go=\" dbNodeCount \" pulumi-lang-python=\" db_node_count \" pulumi-lang-yaml=\" dbNodeCount \" pulumi-lang-java=\" dbNodeCount \"\u003e db_node_count \u003c/span\u003eof cluster node.\n"},"dbNodeStorage":{"type":"integer","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeStorage \" pulumi-lang-dotnet=\" DbNodeStorage \" pulumi-lang-go=\" dbNodeStorage \" pulumi-lang-python=\" db_node_storage \" pulumi-lang-yaml=\" dbNodeStorage \" pulumi-lang-java=\" dbNodeStorage \"\u003e db_node_storage \u003c/span\u003eof cluster node.\n"},"description":{"type":"string","description":"The description of cluster.\n"},"diskEncryption":{"type":"boolean","willReplaceOnChanges":true},"diskPerformanceLevel":{"type":"string"},"elasticIoResource":{"type":"integer"},"elasticIoResourceSize":{"type":"string"},"enableSsl":{"type":"boolean"},"kernelVersion":{"type":"string"},"kmsId":{"type":"string","willReplaceOnChanges":true},"maintainTime":{"type":"string","description":"Maintainable time period format of the instance: HH:MMZ-HH:MMZ (UTC time)\n"},"mode":{"type":"string"},"modifyType":{"type":"string"},"payType":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`payType`\" pulumi-lang-dotnet=\"`PayType`\" pulumi-lang-go=\"`payType`\" pulumi-lang-python=\"`pay_type`\" pulumi-lang-yaml=\"`payType`\" pulumi-lang-java=\"`payType`\"\u003e`pay_type`\u003c/span\u003e has been deprecated. New field \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.\n","deprecationMessage":"Attribute 'pay_type' has been deprecated from the provider version 1.166.0 and it will be remove in the future version. Please use the new attribute 'payment_type' instead."},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`. **Note:** The \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e supports updating from v1.166.0+.\n"},"period":{"type":"integer","description":"The duration that you will buy DB cluster (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid values: [1~9], 12, 24, 36. Default to 1.\n"},"port":{"type":"string","description":"(Available since v1.196.0) The connection port of the ADB cluster.\n"},"renewalStatus":{"type":"string","description":"Valid values are `AutoRenewal`, `Normal`, `NotRenewal`, Default to `NotRenewal`.\n"},"resourceGroupId":{"type":"string"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an cluster. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"status":{"type":"string"},"switchMode":{"type":"integer"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n\n\u003e **NOTE:** Because of data backup and migration, change DB cluster type and storage would cost 15~30 minutes. Please make full preparation before changing them.\n"},"vpcId":{"type":"string","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the DB cluster.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:adb/connection:Connection":{"description":"Provides an ADB connection resource to allocate an Internet connection string for ADB cluster.\n\n\u003e **NOTE:** Each ADB instance will allocate a intranet connnection string automatically and its prifix is ADB instance ID.\n To avoid unnecessary conflict, please specified a internet connection prefix before applying the resource.\n\n\u003e **NOTE:** Available since v1.81.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.adb.getZones({});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[0],\n}));\nconst vswitchId = defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]);\nconst cluster = new alicloud.adb.DBCluster(\"cluster\", {\n    dbClusterCategory: \"MixedStorage\",\n    mode: \"flexible\",\n    computeResource: \"8Core32GB\",\n    vswitchId: vswitchId,\n    description: name,\n});\nconst defaultConnection = new alicloud.adb.Connection(\"default\", {\n    dbClusterId: cluster.id,\n    connectionPrefix: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.adb.get_zones()\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[0])\nvswitch_id = default_get_switches.ids[0]\ncluster = alicloud.adb.DBCluster(\"cluster\",\n    db_cluster_category=\"MixedStorage\",\n    mode=\"flexible\",\n    compute_resource=\"8Core32GB\",\n    vswitch_id=vswitch_id,\n    description=name)\ndefault_connection = alicloud.adb.Connection(\"default\",\n    db_cluster_id=cluster.id,\n    connection_prefix=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Adb.GetZones.Invoke();\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n    });\n\n    var vswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]);\n\n    var cluster = new AliCloud.Adb.DBCluster(\"cluster\", new()\n    {\n        DbClusterCategory = \"MixedStorage\",\n        Mode = \"flexible\",\n        ComputeResource = \"8Core32GB\",\n        VswitchId = vswitchId,\n        Description = name,\n    });\n\n    var defaultConnection = new AliCloud.Adb.Connection(\"default\", new()\n    {\n        DbClusterId = cluster.Id,\n        ConnectionPrefix = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/adb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := adb.GetZones(ctx, \u0026adb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvswitchId := defaultGetSwitches.Ids[0]\n\t\tcluster, err := adb.NewDBCluster(ctx, \"cluster\", \u0026adb.DBClusterArgs{\n\t\t\tDbClusterCategory: pulumi.String(\"MixedStorage\"),\n\t\t\tMode:              pulumi.String(\"flexible\"),\n\t\t\tComputeResource:   pulumi.String(\"8Core32GB\"),\n\t\t\tVswitchId:         pulumi.String(vswitchId),\n\t\t\tDescription:       pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = adb.NewConnection(ctx, \"default\", \u0026adb.ConnectionArgs{\n\t\t\tDbClusterId:      cluster.ID(),\n\t\t\tConnectionPrefix: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.adb.AdbFunctions;\nimport com.pulumi.alicloud.adb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.adb.DBCluster;\nimport com.pulumi.alicloud.adb.DBClusterArgs;\nimport com.pulumi.alicloud.adb.Connection;\nimport com.pulumi.alicloud.adb.ConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AdbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[0])\n            .build());\n\n        final var vswitchId = defaultGetSwitches.ids()[0];\n\n        var cluster = new DBCluster(\"cluster\", DBClusterArgs.builder()\n            .dbClusterCategory(\"MixedStorage\")\n            .mode(\"flexible\")\n            .computeResource(\"8Core32GB\")\n            .vswitchId(vswitchId)\n            .description(name)\n            .build());\n\n        var defaultConnection = new Connection(\"defaultConnection\", ConnectionArgs.builder()\n            .dbClusterId(cluster.id())\n            .connectionPrefix(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  cluster:\n    type: alicloud:adb:DBCluster\n    properties:\n      dbClusterCategory: MixedStorage\n      mode: flexible\n      computeResource: 8Core32GB\n      vswitchId: ${vswitchId}\n      description: ${name}\n  defaultConnection:\n    type: alicloud:adb:Connection\n    name: default\n    properties:\n      dbClusterId: ${cluster.id}\n      connectionPrefix: example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:adb:getZones\n      arguments: {}\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[0]}\n  vswitchId: ${defaultGetSwitches.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nADB connection can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:adb/connection:Connection example am-12345678\n```\n\n","properties":{"connectionPrefix":{"type":"string","description":"Prefix of the cluster public endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter. Default to `\u003cdb_cluster_id\u003e + tf`.\n"},"connectionString":{"type":"string","description":"Connection cluster string.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n"},"ipAddress":{"type":"string","description":"The ip address of connection string.\n"},"port":{"type":"string","description":"Connection cluster port.\n"}},"required":["connectionPrefix","connectionString","dbClusterId","ipAddress","port"],"inputProperties":{"connectionPrefix":{"type":"string","description":"Prefix of the cluster public endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter. Default to `\u003cdb_cluster_id\u003e + tf`.\n","willReplaceOnChanges":true},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n","willReplaceOnChanges":true}},"requiredInputs":["dbClusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering Connection resources.\n","properties":{"connectionPrefix":{"type":"string","description":"Prefix of the cluster public endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter. Default to `\u003cdb_cluster_id\u003e + tf`.\n","willReplaceOnChanges":true},"connectionString":{"type":"string","description":"Connection cluster string.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n","willReplaceOnChanges":true},"ipAddress":{"type":"string","description":"The ip address of connection string.\n"},"port":{"type":"string","description":"Connection cluster port.\n"}},"type":"object"}},"alicloud:adb/dBCluster:DBCluster":{"description":"Provides a AnalyticDB for MySQL (ADB) DBCluster resource.\n\nFor information about AnalyticDB for MySQL (ADB) DBCluster and how to use it, see [What is DBCluster](https://www.alibabacloud.com/help/en/analyticdb/analyticdb-for-mysql/product-overview/what-is-analyticdb-for-mysql).\n\n\u003e **NOTE:** Available since v1.121.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.adb.getZones({});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[0],\n}));\nconst vswitchId = defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]);\nconst cluster = new alicloud.adb.DBCluster(\"cluster\", {\n    dbClusterCategory: \"MixedStorage\",\n    mode: \"flexible\",\n    computeResource: \"8Core32GB\",\n    vswitchId: vswitchId,\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.adb.get_zones()\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[0])\nvswitch_id = default_get_switches.ids[0]\ncluster = alicloud.adb.DBCluster(\"cluster\",\n    db_cluster_category=\"MixedStorage\",\n    mode=\"flexible\",\n    compute_resource=\"8Core32GB\",\n    vswitch_id=vswitch_id,\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Adb.GetZones.Invoke();\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n    });\n\n    var vswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]);\n\n    var cluster = new AliCloud.Adb.DBCluster(\"cluster\", new()\n    {\n        DbClusterCategory = \"MixedStorage\",\n        Mode = \"flexible\",\n        ComputeResource = \"8Core32GB\",\n        VswitchId = vswitchId,\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/adb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := adb.GetZones(ctx, \u0026adb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvswitchId := defaultGetSwitches.Ids[0]\n\t\t_, err = adb.NewDBCluster(ctx, \"cluster\", \u0026adb.DBClusterArgs{\n\t\t\tDbClusterCategory: pulumi.String(\"MixedStorage\"),\n\t\t\tMode:              pulumi.String(\"flexible\"),\n\t\t\tComputeResource:   pulumi.String(\"8Core32GB\"),\n\t\t\tVswitchId:         pulumi.String(vswitchId),\n\t\t\tDescription:       pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.adb.AdbFunctions;\nimport com.pulumi.alicloud.adb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.adb.DBCluster;\nimport com.pulumi.alicloud.adb.DBClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AdbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[0])\n            .build());\n\n        final var vswitchId = defaultGetSwitches.ids()[0];\n\n        var cluster = new DBCluster(\"cluster\", DBClusterArgs.builder()\n            .dbClusterCategory(\"MixedStorage\")\n            .mode(\"flexible\")\n            .computeResource(\"8Core32GB\")\n            .vswitchId(vswitchId)\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  cluster:\n    type: alicloud:adb:DBCluster\n    properties:\n      dbClusterCategory: MixedStorage\n      mode: flexible\n      computeResource: 8Core32GB\n      vswitchId: ${vswitchId}\n      description: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:adb:getZones\n      arguments: {}\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[0]}\n  vswitchId: ${defaultGetSwitches.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Removing\u003cspan pulumi-lang-nodejs=\" alicloud.adb.Cluster \" pulumi-lang-dotnet=\" alicloud.adb.Cluster \" pulumi-lang-go=\" adb.Cluster \" pulumi-lang-python=\" adb.Cluster \" pulumi-lang-yaml=\" alicloud.adb.Cluster \" pulumi-lang-java=\" alicloud.adb.Cluster \"\u003e alicloud.adb.Cluster \u003c/span\u003efrom your configuration\n\nThe\u003cspan pulumi-lang-nodejs=\" alicloud.adb.Cluster \" pulumi-lang-dotnet=\" alicloud.adb.Cluster \" pulumi-lang-go=\" adb.Cluster \" pulumi-lang-python=\" adb.Cluster \" pulumi-lang-yaml=\" alicloud.adb.Cluster \" pulumi-lang-java=\" alicloud.adb.Cluster \"\u003e alicloud.adb.Cluster \u003c/span\u003eresource allows you to manage your adb cluster, but Terraform cannot destroy it if your cluster type is PrePaid(PostPaid type can destroy normally). Removing this resource from your configuration will remove it from your state file and management, but will not destroy the cluster. You can resume managing the cluster via the adb Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAnalyticDB for MySQL (ADB) DBCluster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:adb/dBCluster:DBCluster example \u003cid\u003e\n```\n\n","properties":{"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an cluster, in the unit of the month. It is valid when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. Default Value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"computeResource":{"type":"string","description":"The specifications of computing resources in elastic mode. The increase of resources can speed up queries. AnalyticDB for MySQL automatically scales computing resources. For more information, see [ComputeResource](https://www.alibabacloud.com/help/en/analyticdb-for-mysql/developer-reference/api-adb-2019-03-15-describecomputeresource)\n"},"connectionString":{"type":"string","description":"The connection string of the cluster.\n"},"dbClusterCategory":{"type":"string","description":"The db cluster category. Valid values: `Basic`, `Cluster`, `MixedStorage`.\n"},"dbClusterClass":{"type":"string","description":"It duplicates with attribute\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eand is deprecated from 1.121.2.\n","deprecationMessage":"It duplicates with attribute\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eand is deprecated from 1.121.2."},"dbClusterVersion":{"type":"string","description":"The db cluster version. Valid values: `3.0`. Default Value: `3.0`.\n"},"dbNodeClass":{"type":"string","description":"The db node class. For more information, see [DBClusterClass](https://help.aliyun.com/document_detail/190519.html)\n"},"dbNodeCount":{"type":"integer","description":"The db node count.\n"},"dbNodeStorage":{"type":"integer","description":"The db node storage.\n"},"description":{"type":"string","description":"The description of DBCluster.\n"},"diskEncryption":{"type":"boolean","description":"Specifies whether to enable disk encryption. Default Value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"diskPerformanceLevel":{"type":"string","description":"The ESSD performance level. Default Value: `PL1`. Valid values: `PL1`, `PL2`, `PL3`.\n"},"elasticIoResource":{"type":"integer","description":"The elastic io resource.\n"},"elasticIoResourceSize":{"type":"string","description":"The specifications of a single elastic resource node. Default Value: `8Core64GB`. Valid values:\n- `8Core64GB`: If you set \u003cspan pulumi-lang-nodejs=\"`elasticIoResourceSize`\" pulumi-lang-dotnet=\"`ElasticIoResourceSize`\" pulumi-lang-go=\"`elasticIoResourceSize`\" pulumi-lang-python=\"`elastic_io_resource_size`\" pulumi-lang-yaml=\"`elasticIoResourceSize`\" pulumi-lang-java=\"`elasticIoResourceSize`\"\u003e`elastic_io_resource_size`\u003c/span\u003e to `8Core64GB`, the specifications of an EIU are 24 cores and 192 GB memory.\n- `12Core96GB`: If you set \u003cspan pulumi-lang-nodejs=\"`elasticIoResourceSize`\" pulumi-lang-dotnet=\"`ElasticIoResourceSize`\" pulumi-lang-go=\"`elasticIoResourceSize`\" pulumi-lang-python=\"`elastic_io_resource_size`\" pulumi-lang-yaml=\"`elasticIoResourceSize`\" pulumi-lang-java=\"`elasticIoResourceSize`\"\u003e`elastic_io_resource_size`\u003c/span\u003e to `12Core96GB`, the specifications of an EIU are 36 cores and 288 GB memory.\n- `16Core128GB`: (Available since v1.237.0)If you set \u003cspan pulumi-lang-nodejs=\"`elasticIoResourceSize`\" pulumi-lang-dotnet=\"`ElasticIoResourceSize`\" pulumi-lang-go=\"`elasticIoResourceSize`\" pulumi-lang-python=\"`elastic_io_resource_size`\" pulumi-lang-yaml=\"`elasticIoResourceSize`\" pulumi-lang-java=\"`elasticIoResourceSize`\"\u003e`elastic_io_resource_size`\u003c/span\u003e to `16Core128GB`, the specifications of an EIU are 48 cores and 384 GB memory.\n"},"enableSsl":{"type":"boolean","description":"Specifies whether to enable SSL encryption. Default Value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"kernelVersion":{"type":"string","description":"The minor version to which you want to update.\n"},"kmsId":{"type":"string","description":"The Key Management Service (KMS) ID that is used for disk encryption. \u003cspan pulumi-lang-nodejs=\"`kmsId`\" pulumi-lang-dotnet=\"`KmsId`\" pulumi-lang-go=\"`kmsId`\" pulumi-lang-python=\"`kms_id`\" pulumi-lang-yaml=\"`kmsId`\" pulumi-lang-java=\"`kmsId`\"\u003e`kms_id`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`diskEncryption`\" pulumi-lang-dotnet=\"`DiskEncryption`\" pulumi-lang-go=\"`diskEncryption`\" pulumi-lang-python=\"`disk_encryption`\" pulumi-lang-yaml=\"`diskEncryption`\" pulumi-lang-java=\"`diskEncryption`\"\u003e`disk_encryption`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"maintainTime":{"type":"string","description":"The maintenance window of the cluster. Format: hh:mmZ-hh:mmZ.\n"},"mode":{"type":"string","description":"The mode of the cluster. Valid values: \u003cspan pulumi-lang-nodejs=\"`reserver`\" pulumi-lang-dotnet=\"`Reserver`\" pulumi-lang-go=\"`reserver`\" pulumi-lang-python=\"`reserver`\" pulumi-lang-yaml=\"`reserver`\" pulumi-lang-java=\"`reserver`\"\u003e`reserver`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`flexible`\" pulumi-lang-dotnet=\"`Flexible`\" pulumi-lang-go=\"`flexible`\" pulumi-lang-python=\"`flexible`\" pulumi-lang-yaml=\"`flexible`\" pulumi-lang-java=\"`flexible`\"\u003e`flexible`\u003c/span\u003e.\n"},"modifyType":{"type":"string","description":"The modify type.\n"},"payType":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`payType`\" pulumi-lang-dotnet=\"`PayType`\" pulumi-lang-go=\"`payType`\" pulumi-lang-python=\"`pay_type`\" pulumi-lang-yaml=\"`payType`\" pulumi-lang-java=\"`payType`\"\u003e`pay_type`\u003c/span\u003e has been deprecated. New field \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.\n","deprecationMessage":"Attribute 'pay_type' has been deprecated from the provider version 1.166.0 and it will be remove in the future version. Please use the new attribute 'payment_type' instead."},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo` and `Subscription`. Default Value: `PayAsYouGo`. **Note:** The \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e supports updating from v1.166.0+.\n"},"period":{"type":"integer","description":"The duration that you will buy DB cluster (in month). It is valid when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`. Valid values: [1~9], 12, 24, 36.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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 affect the resource.\n"},"port":{"type":"string","description":"(Available since v1.196.0) The connection port of the ADB cluster.\n"},"renewalStatus":{"type":"string","description":"Valid values are `AutoRenewal`, `Normal`, `NotRenewal`, Default to `NotRenewal`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an cluster. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"status":{"type":"string","description":"The status of the resource.\n"},"switchMode":{"type":"integer","description":"The time when to perform the update. Valid values:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n\n\u003e **NOTE:** Because of data backup and migration, change DB cluster type and storage would cost 15~30 minutes. Please make full preparation before changing them.\n"},"vpcId":{"type":"string","description":"The vpc ID of the resource.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string","description":"The zone ID of the resource.\n"}},"required":["autoRenewPeriod","connectionString","dbClusterCategory","dbNodeClass","dbNodeCount","dbNodeStorage","description","diskPerformanceLevel","elasticIoResource","elasticIoResourceSize","kernelVersion","maintainTime","mode","payType","paymentType","port","renewalStatus","resourceGroupId","securityIps","status","vpcId","zoneId"],"inputProperties":{"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an cluster, in the unit of the month. It is valid when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. Default Value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"computeResource":{"type":"string","description":"The specifications of computing resources in elastic mode. The increase of resources can speed up queries. AnalyticDB for MySQL automatically scales computing resources. For more information, see [ComputeResource](https://www.alibabacloud.com/help/en/analyticdb-for-mysql/developer-reference/api-adb-2019-03-15-describecomputeresource)\n"},"dbClusterCategory":{"type":"string","description":"The db cluster category. Valid values: `Basic`, `Cluster`, `MixedStorage`.\n"},"dbClusterClass":{"type":"string","description":"It duplicates with attribute\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eand is deprecated from 1.121.2.\n","deprecationMessage":"It duplicates with attribute\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eand is deprecated from 1.121.2."},"dbClusterVersion":{"type":"string","description":"The db cluster version. Valid values: `3.0`. Default Value: `3.0`.\n","willReplaceOnChanges":true},"dbNodeClass":{"type":"string","description":"The db node class. For more information, see [DBClusterClass](https://help.aliyun.com/document_detail/190519.html)\n"},"dbNodeCount":{"type":"integer","description":"The db node count.\n"},"dbNodeStorage":{"type":"integer","description":"The db node storage.\n"},"description":{"type":"string","description":"The description of DBCluster.\n"},"diskEncryption":{"type":"boolean","description":"Specifies whether to enable disk encryption. Default Value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"diskPerformanceLevel":{"type":"string","description":"The ESSD performance level. Default Value: `PL1`. Valid values: `PL1`, `PL2`, `PL3`.\n"},"elasticIoResource":{"type":"integer","description":"The elastic io resource.\n"},"elasticIoResourceSize":{"type":"string","description":"The specifications of a single elastic resource node. Default Value: `8Core64GB`. Valid values:\n- `8Core64GB`: If you set \u003cspan pulumi-lang-nodejs=\"`elasticIoResourceSize`\" pulumi-lang-dotnet=\"`ElasticIoResourceSize`\" pulumi-lang-go=\"`elasticIoResourceSize`\" pulumi-lang-python=\"`elastic_io_resource_size`\" pulumi-lang-yaml=\"`elasticIoResourceSize`\" pulumi-lang-java=\"`elasticIoResourceSize`\"\u003e`elastic_io_resource_size`\u003c/span\u003e to `8Core64GB`, the specifications of an EIU are 24 cores and 192 GB memory.\n- `12Core96GB`: If you set \u003cspan pulumi-lang-nodejs=\"`elasticIoResourceSize`\" pulumi-lang-dotnet=\"`ElasticIoResourceSize`\" pulumi-lang-go=\"`elasticIoResourceSize`\" pulumi-lang-python=\"`elastic_io_resource_size`\" pulumi-lang-yaml=\"`elasticIoResourceSize`\" pulumi-lang-java=\"`elasticIoResourceSize`\"\u003e`elastic_io_resource_size`\u003c/span\u003e to `12Core96GB`, the specifications of an EIU are 36 cores and 288 GB memory.\n- `16Core128GB`: (Available since v1.237.0)If you set \u003cspan pulumi-lang-nodejs=\"`elasticIoResourceSize`\" pulumi-lang-dotnet=\"`ElasticIoResourceSize`\" pulumi-lang-go=\"`elasticIoResourceSize`\" pulumi-lang-python=\"`elastic_io_resource_size`\" pulumi-lang-yaml=\"`elasticIoResourceSize`\" pulumi-lang-java=\"`elasticIoResourceSize`\"\u003e`elastic_io_resource_size`\u003c/span\u003e to `16Core128GB`, the specifications of an EIU are 48 cores and 384 GB memory.\n"},"enableSsl":{"type":"boolean","description":"Specifies whether to enable SSL encryption. Default Value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"kernelVersion":{"type":"string","description":"The minor version to which you want to update.\n"},"kmsId":{"type":"string","description":"The Key Management Service (KMS) ID that is used for disk encryption. \u003cspan pulumi-lang-nodejs=\"`kmsId`\" pulumi-lang-dotnet=\"`KmsId`\" pulumi-lang-go=\"`kmsId`\" pulumi-lang-python=\"`kms_id`\" pulumi-lang-yaml=\"`kmsId`\" pulumi-lang-java=\"`kmsId`\"\u003e`kms_id`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`diskEncryption`\" pulumi-lang-dotnet=\"`DiskEncryption`\" pulumi-lang-go=\"`diskEncryption`\" pulumi-lang-python=\"`disk_encryption`\" pulumi-lang-yaml=\"`diskEncryption`\" pulumi-lang-java=\"`diskEncryption`\"\u003e`disk_encryption`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"maintainTime":{"type":"string","description":"The maintenance window of the cluster. Format: hh:mmZ-hh:mmZ.\n"},"mode":{"type":"string","description":"The mode of the cluster. Valid values: \u003cspan pulumi-lang-nodejs=\"`reserver`\" pulumi-lang-dotnet=\"`Reserver`\" pulumi-lang-go=\"`reserver`\" pulumi-lang-python=\"`reserver`\" pulumi-lang-yaml=\"`reserver`\" pulumi-lang-java=\"`reserver`\"\u003e`reserver`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`flexible`\" pulumi-lang-dotnet=\"`Flexible`\" pulumi-lang-go=\"`flexible`\" pulumi-lang-python=\"`flexible`\" pulumi-lang-yaml=\"`flexible`\" pulumi-lang-java=\"`flexible`\"\u003e`flexible`\u003c/span\u003e.\n"},"modifyType":{"type":"string","description":"The modify type.\n"},"payType":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`payType`\" pulumi-lang-dotnet=\"`PayType`\" pulumi-lang-go=\"`payType`\" pulumi-lang-python=\"`pay_type`\" pulumi-lang-yaml=\"`payType`\" pulumi-lang-java=\"`payType`\"\u003e`pay_type`\u003c/span\u003e has been deprecated. New field \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.\n","deprecationMessage":"Attribute 'pay_type' has been deprecated from the provider version 1.166.0 and it will be remove in the future version. Please use the new attribute 'payment_type' instead."},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo` and `Subscription`. Default Value: `PayAsYouGo`. **Note:** The \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e supports updating from v1.166.0+.\n"},"period":{"type":"integer","description":"The duration that you will buy DB cluster (in month). It is valid when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`. Valid values: [1~9], 12, 24, 36.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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 affect the resource.\n"},"renewalStatus":{"type":"string","description":"Valid values are `AutoRenewal`, `Normal`, `NotRenewal`, Default to `NotRenewal`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an cluster. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"switchMode":{"type":"integer","description":"The time when to perform the update. Valid values:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n\n\u003e **NOTE:** Because of data backup and migration, change DB cluster type and storage would cost 15~30 minutes. Please make full preparation before changing them.\n"},"vpcId":{"type":"string","description":"The vpc ID of the resource.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vswitch id.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the resource.\n","willReplaceOnChanges":true}},"requiredInputs":["dbClusterCategory","mode"],"stateInputs":{"description":"Input properties used for looking up and filtering DBCluster resources.\n","properties":{"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an cluster, in the unit of the month. It is valid when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. Default Value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"computeResource":{"type":"string","description":"The specifications of computing resources in elastic mode. The increase of resources can speed up queries. AnalyticDB for MySQL automatically scales computing resources. For more information, see [ComputeResource](https://www.alibabacloud.com/help/en/analyticdb-for-mysql/developer-reference/api-adb-2019-03-15-describecomputeresource)\n"},"connectionString":{"type":"string","description":"The connection string of the cluster.\n"},"dbClusterCategory":{"type":"string","description":"The db cluster category. Valid values: `Basic`, `Cluster`, `MixedStorage`.\n"},"dbClusterClass":{"type":"string","description":"It duplicates with attribute\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eand is deprecated from 1.121.2.\n","deprecationMessage":"It duplicates with attribute\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eand is deprecated from 1.121.2."},"dbClusterVersion":{"type":"string","description":"The db cluster version. Valid values: `3.0`. Default Value: `3.0`.\n","willReplaceOnChanges":true},"dbNodeClass":{"type":"string","description":"The db node class. For more information, see [DBClusterClass](https://help.aliyun.com/document_detail/190519.html)\n"},"dbNodeCount":{"type":"integer","description":"The db node count.\n"},"dbNodeStorage":{"type":"integer","description":"The db node storage.\n"},"description":{"type":"string","description":"The description of DBCluster.\n"},"diskEncryption":{"type":"boolean","description":"Specifies whether to enable disk encryption. Default Value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"diskPerformanceLevel":{"type":"string","description":"The ESSD performance level. Default Value: `PL1`. Valid values: `PL1`, `PL2`, `PL3`.\n"},"elasticIoResource":{"type":"integer","description":"The elastic io resource.\n"},"elasticIoResourceSize":{"type":"string","description":"The specifications of a single elastic resource node. Default Value: `8Core64GB`. Valid values:\n- `8Core64GB`: If you set \u003cspan pulumi-lang-nodejs=\"`elasticIoResourceSize`\" pulumi-lang-dotnet=\"`ElasticIoResourceSize`\" pulumi-lang-go=\"`elasticIoResourceSize`\" pulumi-lang-python=\"`elastic_io_resource_size`\" pulumi-lang-yaml=\"`elasticIoResourceSize`\" pulumi-lang-java=\"`elasticIoResourceSize`\"\u003e`elastic_io_resource_size`\u003c/span\u003e to `8Core64GB`, the specifications of an EIU are 24 cores and 192 GB memory.\n- `12Core96GB`: If you set \u003cspan pulumi-lang-nodejs=\"`elasticIoResourceSize`\" pulumi-lang-dotnet=\"`ElasticIoResourceSize`\" pulumi-lang-go=\"`elasticIoResourceSize`\" pulumi-lang-python=\"`elastic_io_resource_size`\" pulumi-lang-yaml=\"`elasticIoResourceSize`\" pulumi-lang-java=\"`elasticIoResourceSize`\"\u003e`elastic_io_resource_size`\u003c/span\u003e to `12Core96GB`, the specifications of an EIU are 36 cores and 288 GB memory.\n- `16Core128GB`: (Available since v1.237.0)If you set \u003cspan pulumi-lang-nodejs=\"`elasticIoResourceSize`\" pulumi-lang-dotnet=\"`ElasticIoResourceSize`\" pulumi-lang-go=\"`elasticIoResourceSize`\" pulumi-lang-python=\"`elastic_io_resource_size`\" pulumi-lang-yaml=\"`elasticIoResourceSize`\" pulumi-lang-java=\"`elasticIoResourceSize`\"\u003e`elastic_io_resource_size`\u003c/span\u003e to `16Core128GB`, the specifications of an EIU are 48 cores and 384 GB memory.\n"},"enableSsl":{"type":"boolean","description":"Specifies whether to enable SSL encryption. Default Value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"kernelVersion":{"type":"string","description":"The minor version to which you want to update.\n"},"kmsId":{"type":"string","description":"The Key Management Service (KMS) ID that is used for disk encryption. \u003cspan pulumi-lang-nodejs=\"`kmsId`\" pulumi-lang-dotnet=\"`KmsId`\" pulumi-lang-go=\"`kmsId`\" pulumi-lang-python=\"`kms_id`\" pulumi-lang-yaml=\"`kmsId`\" pulumi-lang-java=\"`kmsId`\"\u003e`kms_id`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`diskEncryption`\" pulumi-lang-dotnet=\"`DiskEncryption`\" pulumi-lang-go=\"`diskEncryption`\" pulumi-lang-python=\"`disk_encryption`\" pulumi-lang-yaml=\"`diskEncryption`\" pulumi-lang-java=\"`diskEncryption`\"\u003e`disk_encryption`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"maintainTime":{"type":"string","description":"The maintenance window of the cluster. Format: hh:mmZ-hh:mmZ.\n"},"mode":{"type":"string","description":"The mode of the cluster. Valid values: \u003cspan pulumi-lang-nodejs=\"`reserver`\" pulumi-lang-dotnet=\"`Reserver`\" pulumi-lang-go=\"`reserver`\" pulumi-lang-python=\"`reserver`\" pulumi-lang-yaml=\"`reserver`\" pulumi-lang-java=\"`reserver`\"\u003e`reserver`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`flexible`\" pulumi-lang-dotnet=\"`Flexible`\" pulumi-lang-go=\"`flexible`\" pulumi-lang-python=\"`flexible`\" pulumi-lang-yaml=\"`flexible`\" pulumi-lang-java=\"`flexible`\"\u003e`flexible`\u003c/span\u003e.\n"},"modifyType":{"type":"string","description":"The modify type.\n"},"payType":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`payType`\" pulumi-lang-dotnet=\"`PayType`\" pulumi-lang-go=\"`payType`\" pulumi-lang-python=\"`pay_type`\" pulumi-lang-yaml=\"`payType`\" pulumi-lang-java=\"`payType`\"\u003e`pay_type`\u003c/span\u003e has been deprecated. New field \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.\n","deprecationMessage":"Attribute 'pay_type' has been deprecated from the provider version 1.166.0 and it will be remove in the future version. Please use the new attribute 'payment_type' instead."},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo` and `Subscription`. Default Value: `PayAsYouGo`. **Note:** The \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e supports updating from v1.166.0+.\n"},"period":{"type":"integer","description":"The duration that you will buy DB cluster (in month). It is valid when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`. Valid values: [1~9], 12, 24, 36.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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 affect the resource.\n"},"port":{"type":"string","description":"(Available since v1.196.0) The connection port of the ADB cluster.\n"},"renewalStatus":{"type":"string","description":"Valid values are `AutoRenewal`, `Normal`, `NotRenewal`, Default to `NotRenewal`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an cluster. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"status":{"type":"string","description":"The status of the resource.\n"},"switchMode":{"type":"integer","description":"The time when to perform the update. Valid values:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n\n\u003e **NOTE:** Because of data backup and migration, change DB cluster type and storage would cost 15~30 minutes. Please make full preparation before changing them.\n"},"vpcId":{"type":"string","description":"The vpc ID of the resource.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vswitch id.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the resource.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:adb/dBClusterLakeVersion:DBClusterLakeVersion":{"description":"Provides a AnalyticDB for MySQL (ADB) DB Cluster Lake Version resource.\n\nFor information about AnalyticDB for MySQL (ADB) DB Cluster Lake Version and how to use it, see [What is DB Cluster Lake Version](https://www.alibabacloud.com/help/en/analyticdb-for-mysql/developer-reference/api-adb-2021-12-01-createdbcluster).\n\n\u003e **NOTE:** Available since v1.190.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.adb.getZones({});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[0],\n}));\nconst defaultDBClusterLakeVersion = new alicloud.adb.DBClusterLakeVersion(\"default\", {\n    dbClusterVersion: \"5.0\",\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n    computeResource: \"16ACU\",\n    storageResource: \"0ACU\",\n    paymentType: \"PayAsYouGo\",\n    enableDefaultResourceGroup: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.adb.get_zones()\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[0])\ndefault_db_cluster_lake_version = alicloud.adb.DBClusterLakeVersion(\"default\",\n    db_cluster_version=\"5.0\",\n    vpc_id=default_get_networks.ids[0],\n    vswitch_id=default_get_switches.ids[0],\n    zone_id=default.ids[0],\n    compute_resource=\"16ACU\",\n    storage_resource=\"0ACU\",\n    payment_type=\"PayAsYouGo\",\n    enable_default_resource_group=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Adb.GetZones.Invoke();\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n    });\n\n    var defaultDBClusterLakeVersion = new AliCloud.Adb.DBClusterLakeVersion(\"default\", new()\n    {\n        DbClusterVersion = \"5.0\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n        ComputeResource = \"16ACU\",\n        StorageResource = \"0ACU\",\n        PaymentType = \"PayAsYouGo\",\n        EnableDefaultResourceGroup = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/adb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := adb.GetZones(ctx, \u0026adb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = adb.NewDBClusterLakeVersion(ctx, \"default\", \u0026adb.DBClusterLakeVersionArgs{\n\t\t\tDbClusterVersion:           pulumi.String(\"5.0\"),\n\t\t\tVpcId:                      pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tVswitchId:                  pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tZoneId:                     pulumi.String(_default.Ids[0]),\n\t\t\tComputeResource:            pulumi.String(\"16ACU\"),\n\t\t\tStorageResource:            pulumi.String(\"0ACU\"),\n\t\t\tPaymentType:                pulumi.String(\"PayAsYouGo\"),\n\t\t\tEnableDefaultResourceGroup: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.adb.AdbFunctions;\nimport com.pulumi.alicloud.adb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.adb.DBClusterLakeVersion;\nimport com.pulumi.alicloud.adb.DBClusterLakeVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AdbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[0])\n            .build());\n\n        var defaultDBClusterLakeVersion = new DBClusterLakeVersion(\"defaultDBClusterLakeVersion\", DBClusterLakeVersionArgs.builder()\n            .dbClusterVersion(\"5.0\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .zoneId(default_.ids()[0])\n            .computeResource(\"16ACU\")\n            .storageResource(\"0ACU\")\n            .paymentType(\"PayAsYouGo\")\n            .enableDefaultResourceGroup(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultDBClusterLakeVersion:\n    type: alicloud:adb:DBClusterLakeVersion\n    name: default\n    properties:\n      dbClusterVersion: '5.0'\n      vpcId: ${defaultGetNetworks.ids[0]}\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      zoneId: ${default.ids[0]}\n      computeResource: 16ACU\n      storageResource: 0ACU\n      paymentType: PayAsYouGo\n      enableDefaultResourceGroup: false\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:adb:getZones\n      arguments: {}\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAnalyticDB for MySQL (ADB) DB Cluster Lake Version can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:adb/dBClusterLakeVersion:DBClusterLakeVersion example \u003cid\u003e\n```\n\n","properties":{"backupSetId":{"type":"string","description":"The ID of the backup set that you want to use to restore data.\n"},"commodityCode":{"type":"string","description":"The name of the service.\n"},"computeResource":{"type":"string","description":"The computing resources of the cluster.\n"},"connectionString":{"type":"string","description":"The endpoint of the cluster.\n"},"createTime":{"type":"string","description":"The createTime of the cluster.\n"},"dbClusterDescription":{"type":"string","description":"The description of the cluster.\n"},"dbClusterVersion":{"type":"string","description":"The version of the cluster. Valid values: `5.0`.\n"},"diskEncryption":{"type":"boolean","description":"Specifies whether to enable disk encryption. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enableDefaultResourceGroup":{"type":"boolean","description":"Whether to enable default allocation of resources to\u003cspan pulumi-lang-nodejs=\" userDefault \" pulumi-lang-dotnet=\" UserDefault \" pulumi-lang-go=\" userDefault \" pulumi-lang-python=\" user_default \" pulumi-lang-yaml=\" userDefault \" pulumi-lang-java=\" userDefault \"\u003e user_default \u003c/span\u003eresource groups.\n"},"enableSsl":{"type":"boolean","description":"Specifies whether to enable SSL encryption. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"engine":{"type":"string","description":"The engine of the database.\n"},"engineVersion":{"type":"string","description":"The engine version of the database.\n"},"expireTime":{"type":"string","description":"The time when the cluster expires.\n"},"expired":{"type":"boolean","description":"Indicates whether the cluster has expired.\n"},"kmsId":{"type":"string","description":"The ID of the key that is used to encrypt disk data. \u003cspan pulumi-lang-nodejs=\"`kmsId`\" pulumi-lang-dotnet=\"`KmsId`\" pulumi-lang-go=\"`kmsId`\" pulumi-lang-python=\"`kms_id`\" pulumi-lang-yaml=\"`kmsId`\" pulumi-lang-java=\"`kmsId`\"\u003e`kms_id`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`diskEncryption`\" pulumi-lang-dotnet=\"`DiskEncryption`\" pulumi-lang-go=\"`diskEncryption`\" pulumi-lang-python=\"`disk_encryption`\" pulumi-lang-yaml=\"`diskEncryption`\" pulumi-lang-java=\"`diskEncryption`\"\u003e`disk_encryption`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"lockMode":{"type":"string","description":"The lock mode of the cluster.\n"},"lockReason":{"type":"string","description":"The reason why the cluster is locked.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`, `Subscription`. **NOTE:** From version 1.245.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e can be set to `Subscription`. From version 1.272.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e can be modified.\n"},"period":{"type":"integer","description":"The subscription period of the subscription cluster. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e.\n"},"port":{"type":"string","description":"The port that is used to access the cluster.\n"},"productForm":{"type":"string","description":"The product form of the cluster. Valid values:\n- `IntegrationForm`: Integrated.\n- `LegacyForm`: Data Lakehouse Edition.\n"},"productVersion":{"type":"string","description":"The edition of the cluster. Valid values:\n- `BasicVersion`: Basic Edition.\n- `EnterpriseVersion`: Enterprise Edition.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`productVersion`\" pulumi-lang-dotnet=\"`ProductVersion`\" pulumi-lang-go=\"`productVersion`\" pulumi-lang-python=\"`product_version`\" pulumi-lang-yaml=\"`productVersion`\" pulumi-lang-java=\"`productVersion`\"\u003e`product_version`\u003c/span\u003e must be specified only when \u003cspan pulumi-lang-nodejs=\"`productForm`\" pulumi-lang-dotnet=\"`ProductForm`\" pulumi-lang-go=\"`productForm`\" pulumi-lang-python=\"`product_form`\" pulumi-lang-yaml=\"`productForm`\" pulumi-lang-java=\"`productForm`\"\u003e`product_form`\u003c/span\u003e is set to `IntegrationForm`.\n"},"reservedNodeCount":{"type":"integer","description":"The number of reserved resource nodes.\n"},"reservedNodeSize":{"type":"string","description":"The specifications of reserved resource nodes.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"restoreToTime":{"type":"string","description":"The point in time to which you want to restore data from the backup set.\n"},"restoreType":{"type":"string","description":"The method that you want to use to restore data. Valid values:\n"},"secondaryVswitchId":{"type":"string","description":"The ID of the secondary zone.\n"},"secondaryZoneId":{"type":"string","description":"The ID of the secondary vSwitch.\n"},"securityIps":{"type":"string","description":"The IP addresses in an IP address whitelist of a cluster. Separate multiple IP addresses with commas (,). You can add a maximum of 500 different IP addresses to a whitelist. The entries in the IP address whitelist must be in one of the following formats:\n- IP addresses, such as 10.23.XX.XX.\n- CIDR blocks, such as 10.23.xx.xx/24. In this example, 24 indicates that the prefix of each IP address in the IP whitelist is 24 bits in length. You can replace 24 with a value within the range of 1 to 32.\n"},"sourceDbClusterId":{"type":"string","description":"The ID of the source AnalyticDB for MySQL Data Warehouse Edition cluster.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"storageResource":{"type":"string","description":"The storage resources of the cluster.\n"},"vpcId":{"type":"string","description":"The vpc ID of the resource.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n"},"zoneId":{"type":"string","description":"The zone ID of the resource.\n"}},"required":["commodityCode","computeResource","connectionString","createTime","dbClusterDescription","dbClusterVersion","engine","engineVersion","expireTime","expired","lockMode","lockReason","paymentType","port","productForm","productVersion","reservedNodeCount","reservedNodeSize","resourceGroupId","securityIps","status","storageResource","vpcId","vswitchId","zoneId"],"inputProperties":{"backupSetId":{"type":"string","description":"The ID of the backup set that you want to use to restore data.\n"},"computeResource":{"type":"string","description":"The computing resources of the cluster.\n"},"dbClusterDescription":{"type":"string","description":"The description of the cluster.\n"},"dbClusterVersion":{"type":"string","description":"The version of the cluster. Valid values: `5.0`.\n","willReplaceOnChanges":true},"diskEncryption":{"type":"boolean","description":"Specifies whether to enable disk encryption. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"enableDefaultResourceGroup":{"type":"boolean","description":"Whether to enable default allocation of resources to\u003cspan pulumi-lang-nodejs=\" userDefault \" pulumi-lang-dotnet=\" UserDefault \" pulumi-lang-go=\" userDefault \" pulumi-lang-python=\" user_default \" pulumi-lang-yaml=\" userDefault \" pulumi-lang-java=\" userDefault \"\u003e user_default \u003c/span\u003eresource groups.\n"},"enableSsl":{"type":"boolean","description":"Specifies whether to enable SSL encryption. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"kmsId":{"type":"string","description":"The ID of the key that is used to encrypt disk data. \u003cspan pulumi-lang-nodejs=\"`kmsId`\" pulumi-lang-dotnet=\"`KmsId`\" pulumi-lang-go=\"`kmsId`\" pulumi-lang-python=\"`kms_id`\" pulumi-lang-yaml=\"`kmsId`\" pulumi-lang-java=\"`kmsId`\"\u003e`kms_id`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`diskEncryption`\" pulumi-lang-dotnet=\"`DiskEncryption`\" pulumi-lang-go=\"`diskEncryption`\" pulumi-lang-python=\"`disk_encryption`\" pulumi-lang-yaml=\"`diskEncryption`\" pulumi-lang-java=\"`diskEncryption`\"\u003e`disk_encryption`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`, `Subscription`. **NOTE:** From version 1.245.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e can be set to `Subscription`. From version 1.272.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e can be modified.\n"},"period":{"type":"integer","description":"The subscription period of the subscription cluster. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e.\n"},"productForm":{"type":"string","description":"The product form of the cluster. Valid values:\n- `IntegrationForm`: Integrated.\n- `LegacyForm`: Data Lakehouse Edition.\n","willReplaceOnChanges":true},"productVersion":{"type":"string","description":"The edition of the cluster. Valid values:\n- `BasicVersion`: Basic Edition.\n- `EnterpriseVersion`: Enterprise Edition.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`productVersion`\" pulumi-lang-dotnet=\"`ProductVersion`\" pulumi-lang-go=\"`productVersion`\" pulumi-lang-python=\"`product_version`\" pulumi-lang-yaml=\"`productVersion`\" pulumi-lang-java=\"`productVersion`\"\u003e`product_version`\u003c/span\u003e must be specified only when \u003cspan pulumi-lang-nodejs=\"`productForm`\" pulumi-lang-dotnet=\"`ProductForm`\" pulumi-lang-go=\"`productForm`\" pulumi-lang-python=\"`product_form`\" pulumi-lang-yaml=\"`productForm`\" pulumi-lang-java=\"`productForm`\"\u003e`product_form`\u003c/span\u003e is set to `IntegrationForm`.\n","willReplaceOnChanges":true},"reservedNodeCount":{"type":"integer","description":"The number of reserved resource nodes.\n"},"reservedNodeSize":{"type":"string","description":"The specifications of reserved resource nodes.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"restoreToTime":{"type":"string","description":"The point in time to which you want to restore data from the backup set.\n"},"restoreType":{"type":"string","description":"The method that you want to use to restore data. Valid values:\n"},"secondaryVswitchId":{"type":"string","description":"The ID of the secondary zone.\n","willReplaceOnChanges":true},"secondaryZoneId":{"type":"string","description":"The ID of the secondary vSwitch.\n","willReplaceOnChanges":true},"securityIps":{"type":"string","description":"The IP addresses in an IP address whitelist of a cluster. Separate multiple IP addresses with commas (,). You can add a maximum of 500 different IP addresses to a whitelist. The entries in the IP address whitelist must be in one of the following formats:\n- IP addresses, such as 10.23.XX.XX.\n- CIDR blocks, such as 10.23.xx.xx/24. In this example, 24 indicates that the prefix of each IP address in the IP whitelist is 24 bits in length. You can replace 24 with a value within the range of 1 to 32.\n"},"sourceDbClusterId":{"type":"string","description":"The ID of the source AnalyticDB for MySQL Data Warehouse Edition cluster.\n"},"storageResource":{"type":"string","description":"The storage resources of the cluster.\n"},"vpcId":{"type":"string","description":"The vpc ID of the resource.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the resource.\n","willReplaceOnChanges":true}},"requiredInputs":["dbClusterVersion","paymentType","vpcId","vswitchId","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering DBClusterLakeVersion resources.\n","properties":{"backupSetId":{"type":"string","description":"The ID of the backup set that you want to use to restore data.\n"},"commodityCode":{"type":"string","description":"The name of the service.\n"},"computeResource":{"type":"string","description":"The computing resources of the cluster.\n"},"connectionString":{"type":"string","description":"The endpoint of the cluster.\n"},"createTime":{"type":"string","description":"The createTime of the cluster.\n"},"dbClusterDescription":{"type":"string","description":"The description of the cluster.\n"},"dbClusterVersion":{"type":"string","description":"The version of the cluster. Valid values: `5.0`.\n","willReplaceOnChanges":true},"diskEncryption":{"type":"boolean","description":"Specifies whether to enable disk encryption. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"enableDefaultResourceGroup":{"type":"boolean","description":"Whether to enable default allocation of resources to\u003cspan pulumi-lang-nodejs=\" userDefault \" pulumi-lang-dotnet=\" UserDefault \" pulumi-lang-go=\" userDefault \" pulumi-lang-python=\" user_default \" pulumi-lang-yaml=\" userDefault \" pulumi-lang-java=\" userDefault \"\u003e user_default \u003c/span\u003eresource groups.\n"},"enableSsl":{"type":"boolean","description":"Specifies whether to enable SSL encryption. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"engine":{"type":"string","description":"The engine of the database.\n"},"engineVersion":{"type":"string","description":"The engine version of the database.\n"},"expireTime":{"type":"string","description":"The time when the cluster expires.\n"},"expired":{"type":"boolean","description":"Indicates whether the cluster has expired.\n"},"kmsId":{"type":"string","description":"The ID of the key that is used to encrypt disk data. \u003cspan pulumi-lang-nodejs=\"`kmsId`\" pulumi-lang-dotnet=\"`KmsId`\" pulumi-lang-go=\"`kmsId`\" pulumi-lang-python=\"`kms_id`\" pulumi-lang-yaml=\"`kmsId`\" pulumi-lang-java=\"`kmsId`\"\u003e`kms_id`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`diskEncryption`\" pulumi-lang-dotnet=\"`DiskEncryption`\" pulumi-lang-go=\"`diskEncryption`\" pulumi-lang-python=\"`disk_encryption`\" pulumi-lang-yaml=\"`diskEncryption`\" pulumi-lang-java=\"`diskEncryption`\"\u003e`disk_encryption`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"lockMode":{"type":"string","description":"The lock mode of the cluster.\n"},"lockReason":{"type":"string","description":"The reason why the cluster is locked.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`, `Subscription`. **NOTE:** From version 1.245.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e can be set to `Subscription`. From version 1.272.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e can be modified.\n"},"period":{"type":"integer","description":"The subscription period of the subscription cluster. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e.\n"},"port":{"type":"string","description":"The port that is used to access the cluster.\n"},"productForm":{"type":"string","description":"The product form of the cluster. Valid values:\n- `IntegrationForm`: Integrated.\n- `LegacyForm`: Data Lakehouse Edition.\n","willReplaceOnChanges":true},"productVersion":{"type":"string","description":"The edition of the cluster. Valid values:\n- `BasicVersion`: Basic Edition.\n- `EnterpriseVersion`: Enterprise Edition.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`productVersion`\" pulumi-lang-dotnet=\"`ProductVersion`\" pulumi-lang-go=\"`productVersion`\" pulumi-lang-python=\"`product_version`\" pulumi-lang-yaml=\"`productVersion`\" pulumi-lang-java=\"`productVersion`\"\u003e`product_version`\u003c/span\u003e must be specified only when \u003cspan pulumi-lang-nodejs=\"`productForm`\" pulumi-lang-dotnet=\"`ProductForm`\" pulumi-lang-go=\"`productForm`\" pulumi-lang-python=\"`product_form`\" pulumi-lang-yaml=\"`productForm`\" pulumi-lang-java=\"`productForm`\"\u003e`product_form`\u003c/span\u003e is set to `IntegrationForm`.\n","willReplaceOnChanges":true},"reservedNodeCount":{"type":"integer","description":"The number of reserved resource nodes.\n"},"reservedNodeSize":{"type":"string","description":"The specifications of reserved resource nodes.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"restoreToTime":{"type":"string","description":"The point in time to which you want to restore data from the backup set.\n"},"restoreType":{"type":"string","description":"The method that you want to use to restore data. Valid values:\n"},"secondaryVswitchId":{"type":"string","description":"The ID of the secondary zone.\n","willReplaceOnChanges":true},"secondaryZoneId":{"type":"string","description":"The ID of the secondary vSwitch.\n","willReplaceOnChanges":true},"securityIps":{"type":"string","description":"The IP addresses in an IP address whitelist of a cluster. Separate multiple IP addresses with commas (,). You can add a maximum of 500 different IP addresses to a whitelist. The entries in the IP address whitelist must be in one of the following formats:\n- IP addresses, such as 10.23.XX.XX.\n- CIDR blocks, such as 10.23.xx.xx/24. In this example, 24 indicates that the prefix of each IP address in the IP whitelist is 24 bits in length. You can replace 24 with a value within the range of 1 to 32.\n"},"sourceDbClusterId":{"type":"string","description":"The ID of the source AnalyticDB for MySQL Data Warehouse Edition cluster.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"storageResource":{"type":"string","description":"The storage resources of the cluster.\n"},"vpcId":{"type":"string","description":"The vpc ID of the resource.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the resource.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:adb/lakeAccount:LakeAccount":{"description":"Provides a ADB Lake Account resource. Account of the DBClusterLakeVesion.\n\nFor information about ADB Lake Account and how to use it, see [What is Lake Account](https://www.alibabacloud.com/help/en/analyticdb-for-mysql/developer-reference/api-adb-2021-12-01-createaccount).\nFor information about ADB Lake Account Privileges and how to use it, see [What are Lake Account Privileges](https://www.alibabacloud.com/help/en/analyticdb-for-mysql/developer-reference/api-adb-2021-12-01-modifyaccountprivileges/).\n\n\u003e **NOTE:** Available since v1.214.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst VPCID = new alicloud.vpc.Network(\"VPCID\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst VSWITCHID = new alicloud.vpc.Switch(\"VSWITCHID\", {\n    vpcId: VPCID.id,\n    zoneId: \"cn-hangzhou-k\",\n    vswitchName: name,\n    cidrBlock: \"172.16.0.0/24\",\n});\nconst createInstance = new alicloud.adb.DBClusterLakeVersion(\"CreateInstance\", {\n    storageResource: \"0ACU\",\n    zoneId: \"cn-hangzhou-k\",\n    vpcId: VPCID.id,\n    vswitchId: VSWITCHID.id,\n    dbClusterDescription: name,\n    computeResource: \"16ACU\",\n    dbClusterVersion: \"5.0\",\n    paymentType: \"PayAsYouGo\",\n    securityIps: \"127.0.0.1\",\n});\nconst defaultLakeAccount = new alicloud.adb.LakeAccount(\"default\", {\n    dbClusterId: createInstance.id,\n    accountType: \"Super\",\n    accountName: \"tfnormal\",\n    accountPassword: \"normal@2023\",\n    accountPrivileges: [\n        {\n            privilegeType: \"Database\",\n            privilegeObject: {\n                database: \"MYSQL\",\n            },\n            privileges: [\n                \"select\",\n                \"update\",\n            ],\n        },\n        {\n            privilegeType: \"Table\",\n            privilegeObject: {\n                database: \"INFORMATION_SCHEMA\",\n                table: \"ENGINES\",\n            },\n            privileges: [\"update\"],\n        },\n        {\n            privilegeType: \"Column\",\n            privilegeObject: {\n                table: \"COLUMNS\",\n                column: \"PRIVILEGES\",\n                database: \"INFORMATION_SCHEMA\",\n            },\n            privileges: [\"update\"],\n        },\n    ],\n    accountDescription: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nvpcid = alicloud.vpc.Network(\"VPCID\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\nvswitchid = alicloud.vpc.Switch(\"VSWITCHID\",\n    vpc_id=vpcid.id,\n    zone_id=\"cn-hangzhou-k\",\n    vswitch_name=name,\n    cidr_block=\"172.16.0.0/24\")\ncreate_instance = alicloud.adb.DBClusterLakeVersion(\"CreateInstance\",\n    storage_resource=\"0ACU\",\n    zone_id=\"cn-hangzhou-k\",\n    vpc_id=vpcid.id,\n    vswitch_id=vswitchid.id,\n    db_cluster_description=name,\n    compute_resource=\"16ACU\",\n    db_cluster_version=\"5.0\",\n    payment_type=\"PayAsYouGo\",\n    security_ips=\"127.0.0.1\")\ndefault_lake_account = alicloud.adb.LakeAccount(\"default\",\n    db_cluster_id=create_instance.id,\n    account_type=\"Super\",\n    account_name=\"tfnormal\",\n    account_password=\"normal@2023\",\n    account_privileges=[\n        {\n            \"privilege_type\": \"Database\",\n            \"privilege_object\": {\n                \"database\": \"MYSQL\",\n            },\n            \"privileges\": [\n                \"select\",\n                \"update\",\n            ],\n        },\n        {\n            \"privilege_type\": \"Table\",\n            \"privilege_object\": {\n                \"database\": \"INFORMATION_SCHEMA\",\n                \"table\": \"ENGINES\",\n            },\n            \"privileges\": [\"update\"],\n        },\n        {\n            \"privilege_type\": \"Column\",\n            \"privilege_object\": {\n                \"table\": \"COLUMNS\",\n                \"column\": \"PRIVILEGES\",\n                \"database\": \"INFORMATION_SCHEMA\",\n            },\n            \"privileges\": [\"update\"],\n        },\n    ],\n    account_description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var VPCID = new AliCloud.Vpc.Network(\"VPCID\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var VSWITCHID = new AliCloud.Vpc.Switch(\"VSWITCHID\", new()\n    {\n        VpcId = VPCID.Id,\n        ZoneId = \"cn-hangzhou-k\",\n        VswitchName = name,\n        CidrBlock = \"172.16.0.0/24\",\n    });\n\n    var createInstance = new AliCloud.Adb.DBClusterLakeVersion(\"CreateInstance\", new()\n    {\n        StorageResource = \"0ACU\",\n        ZoneId = \"cn-hangzhou-k\",\n        VpcId = VPCID.Id,\n        VswitchId = VSWITCHID.Id,\n        DbClusterDescription = name,\n        ComputeResource = \"16ACU\",\n        DbClusterVersion = \"5.0\",\n        PaymentType = \"PayAsYouGo\",\n        SecurityIps = \"127.0.0.1\",\n    });\n\n    var defaultLakeAccount = new AliCloud.Adb.LakeAccount(\"default\", new()\n    {\n        DbClusterId = createInstance.Id,\n        AccountType = \"Super\",\n        AccountName = \"tfnormal\",\n        AccountPassword = \"normal@2023\",\n        AccountPrivileges = new[]\n        {\n            new AliCloud.Adb.Inputs.LakeAccountAccountPrivilegeArgs\n            {\n                PrivilegeType = \"Database\",\n                PrivilegeObject = new AliCloud.Adb.Inputs.LakeAccountAccountPrivilegePrivilegeObjectArgs\n                {\n                    Database = \"MYSQL\",\n                },\n                Privileges = new[]\n                {\n                    \"select\",\n                    \"update\",\n                },\n            },\n            new AliCloud.Adb.Inputs.LakeAccountAccountPrivilegeArgs\n            {\n                PrivilegeType = \"Table\",\n                PrivilegeObject = new AliCloud.Adb.Inputs.LakeAccountAccountPrivilegePrivilegeObjectArgs\n                {\n                    Database = \"INFORMATION_SCHEMA\",\n                    Table = \"ENGINES\",\n                },\n                Privileges = new[]\n                {\n                    \"update\",\n                },\n            },\n            new AliCloud.Adb.Inputs.LakeAccountAccountPrivilegeArgs\n            {\n                PrivilegeType = \"Column\",\n                PrivilegeObject = new AliCloud.Adb.Inputs.LakeAccountAccountPrivilegePrivilegeObjectArgs\n                {\n                    Table = \"COLUMNS\",\n                    Column = \"PRIVILEGES\",\n                    Database = \"INFORMATION_SCHEMA\",\n                },\n                Privileges = new[]\n                {\n                    \"update\",\n                },\n            },\n        },\n        AccountDescription = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/adb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tVPCID, err := vpc.NewNetwork(ctx, \"VPCID\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tVSWITCHID, err := vpc.NewSwitch(ctx, \"VSWITCHID\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       VPCID.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-k\"),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateInstance, err := adb.NewDBClusterLakeVersion(ctx, \"CreateInstance\", \u0026adb.DBClusterLakeVersionArgs{\n\t\t\tStorageResource:      pulumi.String(\"0ACU\"),\n\t\t\tZoneId:               pulumi.String(\"cn-hangzhou-k\"),\n\t\t\tVpcId:                VPCID.ID(),\n\t\t\tVswitchId:            VSWITCHID.ID(),\n\t\t\tDbClusterDescription: pulumi.String(name),\n\t\t\tComputeResource:      pulumi.String(\"16ACU\"),\n\t\t\tDbClusterVersion:     pulumi.String(\"5.0\"),\n\t\t\tPaymentType:          pulumi.String(\"PayAsYouGo\"),\n\t\t\tSecurityIps:          pulumi.String(\"127.0.0.1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = adb.NewLakeAccount(ctx, \"default\", \u0026adb.LakeAccountArgs{\n\t\t\tDbClusterId:     createInstance.ID(),\n\t\t\tAccountType:     pulumi.String(\"Super\"),\n\t\t\tAccountName:     pulumi.String(\"tfnormal\"),\n\t\t\tAccountPassword: pulumi.String(\"normal@2023\"),\n\t\t\tAccountPrivileges: adb.LakeAccountAccountPrivilegeArray{\n\t\t\t\t\u0026adb.LakeAccountAccountPrivilegeArgs{\n\t\t\t\t\tPrivilegeType: pulumi.String(\"Database\"),\n\t\t\t\t\tPrivilegeObject: \u0026adb.LakeAccountAccountPrivilegePrivilegeObjectArgs{\n\t\t\t\t\t\tDatabase: pulumi.String(\"MYSQL\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"select\"),\n\t\t\t\t\t\tpulumi.String(\"update\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026adb.LakeAccountAccountPrivilegeArgs{\n\t\t\t\t\tPrivilegeType: pulumi.String(\"Table\"),\n\t\t\t\t\tPrivilegeObject: \u0026adb.LakeAccountAccountPrivilegePrivilegeObjectArgs{\n\t\t\t\t\t\tDatabase: pulumi.String(\"INFORMATION_SCHEMA\"),\n\t\t\t\t\t\tTable:    pulumi.String(\"ENGINES\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"update\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026adb.LakeAccountAccountPrivilegeArgs{\n\t\t\t\t\tPrivilegeType: pulumi.String(\"Column\"),\n\t\t\t\t\tPrivilegeObject: \u0026adb.LakeAccountAccountPrivilegePrivilegeObjectArgs{\n\t\t\t\t\t\tTable:    pulumi.String(\"COLUMNS\"),\n\t\t\t\t\t\tColumn:   pulumi.String(\"PRIVILEGES\"),\n\t\t\t\t\t\tDatabase: pulumi.String(\"INFORMATION_SCHEMA\"),\n\t\t\t\t\t},\n\t\t\t\t\tPrivileges: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"update\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAccountDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.adb.DBClusterLakeVersion;\nimport com.pulumi.alicloud.adb.DBClusterLakeVersionArgs;\nimport com.pulumi.alicloud.adb.LakeAccount;\nimport com.pulumi.alicloud.adb.LakeAccountArgs;\nimport com.pulumi.alicloud.adb.inputs.LakeAccountAccountPrivilegeArgs;\nimport com.pulumi.alicloud.adb.inputs.LakeAccountAccountPrivilegePrivilegeObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var vPCID = new Network(\"VPCID\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var vSWITCHID = new Switch(\"VSWITCHID\", SwitchArgs.builder()\n            .vpcId(VPCID.id())\n            .zoneId(\"cn-hangzhou-k\")\n            .vswitchName(name)\n            .cidrBlock(\"172.16.0.0/24\")\n            .build());\n\n        var createInstance = new DBClusterLakeVersion(\"createInstance\", DBClusterLakeVersionArgs.builder()\n            .storageResource(\"0ACU\")\n            .zoneId(\"cn-hangzhou-k\")\n            .vpcId(VPCID.id())\n            .vswitchId(VSWITCHID.id())\n            .dbClusterDescription(name)\n            .computeResource(\"16ACU\")\n            .dbClusterVersion(\"5.0\")\n            .paymentType(\"PayAsYouGo\")\n            .securityIps(\"127.0.0.1\")\n            .build());\n\n        var defaultLakeAccount = new LakeAccount(\"defaultLakeAccount\", LakeAccountArgs.builder()\n            .dbClusterId(createInstance.id())\n            .accountType(\"Super\")\n            .accountName(\"tfnormal\")\n            .accountPassword(\"normal@2023\")\n            .accountPrivileges(            \n                LakeAccountAccountPrivilegeArgs.builder()\n                    .privilegeType(\"Database\")\n                    .privilegeObject(LakeAccountAccountPrivilegePrivilegeObjectArgs.builder()\n                        .database(\"MYSQL\")\n                        .build())\n                    .privileges(                    \n                        \"select\",\n                        \"update\")\n                    .build(),\n                LakeAccountAccountPrivilegeArgs.builder()\n                    .privilegeType(\"Table\")\n                    .privilegeObject(LakeAccountAccountPrivilegePrivilegeObjectArgs.builder()\n                        .database(\"INFORMATION_SCHEMA\")\n                        .table(\"ENGINES\")\n                        .build())\n                    .privileges(\"update\")\n                    .build(),\n                LakeAccountAccountPrivilegeArgs.builder()\n                    .privilegeType(\"Column\")\n                    .privilegeObject(LakeAccountAccountPrivilegePrivilegeObjectArgs.builder()\n                        .table(\"COLUMNS\")\n                        .column(\"PRIVILEGES\")\n                        .database(\"INFORMATION_SCHEMA\")\n                        .build())\n                    .privileges(\"update\")\n                    .build())\n            .accountDescription(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  VPCID:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  VSWITCHID:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${VPCID.id}\n      zoneId: cn-hangzhou-k\n      vswitchName: ${name}\n      cidrBlock: 172.16.0.0/24\n  createInstance:\n    type: alicloud:adb:DBClusterLakeVersion\n    name: CreateInstance\n    properties:\n      storageResource: 0ACU\n      zoneId: cn-hangzhou-k\n      vpcId: ${VPCID.id}\n      vswitchId: ${VSWITCHID.id}\n      dbClusterDescription: ${name}\n      computeResource: 16ACU\n      dbClusterVersion: '5.0'\n      paymentType: PayAsYouGo\n      securityIps: 127.0.0.1\n  defaultLakeAccount:\n    type: alicloud:adb:LakeAccount\n    name: default\n    properties:\n      dbClusterId: ${createInstance.id}\n      accountType: Super\n      accountName: tfnormal\n      accountPassword: normal@2023\n      accountPrivileges:\n        - privilegeType: Database\n          privilegeObject:\n            database: MYSQL\n          privileges:\n            - select\n            - update\n        - privilegeType: Table\n          privilegeObject:\n            database: INFORMATION_SCHEMA\n            table: ENGINES\n          privileges:\n            - update\n        - privilegeType: Column\n          privilegeObject:\n            table: COLUMNS\n            column: PRIVILEGES\n            database: INFORMATION_SCHEMA\n          privileges:\n            - update\n      accountDescription: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nADB Lake Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:adb/lakeAccount:LakeAccount example \u003cdb_cluster_id\u003e:\u003caccount_name\u003e\n```\n\n","properties":{"accountDescription":{"type":"string","description":"The description of the account.\n"},"accountName":{"type":"string","description":"The name of the account.\n"},"accountPassword":{"type":"string","description":"AccountPassword.\n","secret":true},"accountPrivileges":{"type":"array","items":{"$ref":"#/types/alicloud:adb/LakeAccountAccountPrivilege:LakeAccountAccountPrivilege"},"description":"List of permissions granted. See \u003cspan pulumi-lang-nodejs=\"`accountPrivileges`\" pulumi-lang-dotnet=\"`AccountPrivileges`\" pulumi-lang-go=\"`accountPrivileges`\" pulumi-lang-python=\"`account_privileges`\" pulumi-lang-yaml=\"`accountPrivileges`\" pulumi-lang-java=\"`accountPrivileges`\"\u003e`account_privileges`\u003c/span\u003e below.\n"},"accountType":{"type":"string","description":"The type of the account.\n"},"dbClusterId":{"type":"string","description":"The DBCluster ID.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"required":["accountName","accountPassword","accountPrivileges","dbClusterId","status"],"inputProperties":{"accountDescription":{"type":"string","description":"The description of the account.\n"},"accountName":{"type":"string","description":"The name of the account.\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"AccountPassword.\n","secret":true},"accountPrivileges":{"type":"array","items":{"$ref":"#/types/alicloud:adb/LakeAccountAccountPrivilege:LakeAccountAccountPrivilege"},"description":"List of permissions granted. See \u003cspan pulumi-lang-nodejs=\"`accountPrivileges`\" pulumi-lang-dotnet=\"`AccountPrivileges`\" pulumi-lang-go=\"`accountPrivileges`\" pulumi-lang-python=\"`account_privileges`\" pulumi-lang-yaml=\"`accountPrivileges`\" pulumi-lang-java=\"`accountPrivileges`\"\u003e`account_privileges`\u003c/span\u003e below.\n"},"accountType":{"type":"string","description":"The type of the account.\n","willReplaceOnChanges":true},"dbClusterId":{"type":"string","description":"The DBCluster ID.\n","willReplaceOnChanges":true}},"requiredInputs":["accountName","accountPassword","dbClusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering LakeAccount resources.\n","properties":{"accountDescription":{"type":"string","description":"The description of the account.\n"},"accountName":{"type":"string","description":"The name of the account.\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"AccountPassword.\n","secret":true},"accountPrivileges":{"type":"array","items":{"$ref":"#/types/alicloud:adb/LakeAccountAccountPrivilege:LakeAccountAccountPrivilege"},"description":"List of permissions granted. See \u003cspan pulumi-lang-nodejs=\"`accountPrivileges`\" pulumi-lang-dotnet=\"`AccountPrivileges`\" pulumi-lang-go=\"`accountPrivileges`\" pulumi-lang-python=\"`account_privileges`\" pulumi-lang-yaml=\"`accountPrivileges`\" pulumi-lang-java=\"`accountPrivileges`\"\u003e`account_privileges`\u003c/span\u003e below.\n"},"accountType":{"type":"string","description":"The type of the account.\n","willReplaceOnChanges":true},"dbClusterId":{"type":"string","description":"The DBCluster ID.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object"}},"alicloud:adb/resourceGroup:ResourceGroup":{"description":"Provides a AnalyticDB for MySQL (ADB) Resource Group resource.\n\nFor information about AnalyticDB for MySQL (ADB) Resource Group and how to use it, see [What is Resource Group](https://www.alibabacloud.com/help/en/analyticdb-for-mysql/latest/api-doc-adb-2019-03-15-api-doc-createdbresourcegroup).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.adb.getZones({});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"10.4.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultDBCluster = new alicloud.adb.DBCluster(\"default\", {\n    computeResource: \"48Core192GB\",\n    dbClusterCategory: \"MixedStorage\",\n    dbClusterVersion: \"3.0\",\n    dbNodeClass: \"E32\",\n    dbNodeStorage: 100,\n    description: name,\n    elasticIoResource: 1,\n    maintainTime: \"04:00Z-05:00Z\",\n    mode: \"flexible\",\n    paymentType: \"PayAsYouGo\",\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.ids?.[0]),\n    securityIps: [\n        \"10.168.1.12\",\n        \"10.168.1.11\",\n    ],\n    vpcId: defaultNetwork.id,\n    vswitchId: defaultSwitch.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst defaultResourceGroup = new alicloud.adb.ResourceGroup(\"default\", {\n    groupName: \"TF_EXAMPLE\",\n    groupType: \"batch\",\n    nodeNum: 0,\n    dbClusterId: defaultDBCluster.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.adb.get_zones()\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"10.4.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_db_cluster = alicloud.adb.DBCluster(\"default\",\n    compute_resource=\"48Core192GB\",\n    db_cluster_category=\"MixedStorage\",\n    db_cluster_version=\"3.0\",\n    db_node_class=\"E32\",\n    db_node_storage=100,\n    description=name,\n    elastic_io_resource=1,\n    maintain_time=\"04:00Z-05:00Z\",\n    mode=\"flexible\",\n    payment_type=\"PayAsYouGo\",\n    resource_group_id=default_get_resource_groups.ids[0],\n    security_ips=[\n        \"10.168.1.12\",\n        \"10.168.1.11\",\n    ],\n    vpc_id=default_network.id,\n    vswitch_id=default_switch.id,\n    zone_id=default.zones[0].id,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\ndefault_resource_group = alicloud.adb.ResourceGroup(\"default\",\n    group_name=\"TF_EXAMPLE\",\n    group_type=\"batch\",\n    node_num=0,\n    db_cluster_id=default_db_cluster.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Adb.GetZones.Invoke();\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"10.4.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultDBCluster = new AliCloud.Adb.DBCluster(\"default\", new()\n    {\n        ComputeResource = \"48Core192GB\",\n        DbClusterCategory = \"MixedStorage\",\n        DbClusterVersion = \"3.0\",\n        DbNodeClass = \"E32\",\n        DbNodeStorage = 100,\n        Description = name,\n        ElasticIoResource = 1,\n        MaintainTime = \"04:00Z-05:00Z\",\n        Mode = \"flexible\",\n        PaymentType = \"PayAsYouGo\",\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0]),\n        SecurityIps = new[]\n        {\n            \"10.168.1.12\",\n            \"10.168.1.11\",\n        },\n        VpcId = defaultNetwork.Id,\n        VswitchId = defaultSwitch.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var defaultResourceGroup = new AliCloud.Adb.ResourceGroup(\"default\", new()\n    {\n        GroupName = \"TF_EXAMPLE\",\n        GroupType = \"batch\",\n        NodeNum = 0,\n        DbClusterId = defaultDBCluster.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/adb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := adb.GetZones(ctx, \u0026adb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDBCluster, err := adb.NewDBCluster(ctx, \"default\", \u0026adb.DBClusterArgs{\n\t\t\tComputeResource:   pulumi.String(\"48Core192GB\"),\n\t\t\tDbClusterCategory: pulumi.String(\"MixedStorage\"),\n\t\t\tDbClusterVersion:  pulumi.String(\"3.0\"),\n\t\t\tDbNodeClass:       pulumi.String(\"E32\"),\n\t\t\tDbNodeStorage:     pulumi.Int(100),\n\t\t\tDescription:       pulumi.String(name),\n\t\t\tElasticIoResource: pulumi.Int(1),\n\t\t\tMaintainTime:      pulumi.String(\"04:00Z-05:00Z\"),\n\t\t\tMode:              pulumi.String(\"flexible\"),\n\t\t\tPaymentType:       pulumi.String(\"PayAsYouGo\"),\n\t\t\tResourceGroupId:   pulumi.String(defaultGetResourceGroups.Ids[0]),\n\t\t\tSecurityIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.168.1.12\"),\n\t\t\t\tpulumi.String(\"10.168.1.11\"),\n\t\t\t},\n\t\t\tVpcId:     defaultNetwork.ID(),\n\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = adb.NewResourceGroup(ctx, \"default\", \u0026adb.ResourceGroupArgs{\n\t\t\tGroupName:   pulumi.String(\"TF_EXAMPLE\"),\n\t\t\tGroupType:   pulumi.String(\"batch\"),\n\t\t\tNodeNum:     pulumi.Int(0),\n\t\t\tDbClusterId: defaultDBCluster.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.adb.AdbFunctions;\nimport com.pulumi.alicloud.adb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.adb.DBCluster;\nimport com.pulumi.alicloud.adb.DBClusterArgs;\nimport com.pulumi.alicloud.adb.ResourceGroup;\nimport com.pulumi.alicloud.adb.ResourceGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AdbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"10.4.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultDBCluster = new DBCluster(\"defaultDBCluster\", DBClusterArgs.builder()\n            .computeResource(\"48Core192GB\")\n            .dbClusterCategory(\"MixedStorage\")\n            .dbClusterVersion(\"3.0\")\n            .dbNodeClass(\"E32\")\n            .dbNodeStorage(100)\n            .description(name)\n            .elasticIoResource(1)\n            .maintainTime(\"04:00Z-05:00Z\")\n            .mode(\"flexible\")\n            .paymentType(\"PayAsYouGo\")\n            .resourceGroupId(defaultGetResourceGroups.ids()[0])\n            .securityIps(            \n                \"10.168.1.12\",\n                \"10.168.1.11\")\n            .vpcId(defaultNetwork.id())\n            .vswitchId(defaultSwitch.id())\n            .zoneId(default_.zones()[0].id())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var defaultResourceGroup = new ResourceGroup(\"defaultResourceGroup\", ResourceGroupArgs.builder()\n            .groupName(\"TF_EXAMPLE\")\n            .groupType(\"batch\")\n            .nodeNum(0)\n            .dbClusterId(defaultDBCluster.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 10.4.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultDBCluster:\n    type: alicloud:adb:DBCluster\n    name: default\n    properties:\n      computeResource: 48Core192GB\n      dbClusterCategory: MixedStorage\n      dbClusterVersion: '3.0'\n      dbNodeClass: E32\n      dbNodeStorage: 100\n      description: ${name}\n      elasticIoResource: 1\n      maintainTime: 04:00Z-05:00Z\n      mode: flexible\n      paymentType: PayAsYouGo\n      resourceGroupId: ${defaultGetResourceGroups.ids[0]}\n      securityIps:\n        - 10.168.1.12\n        - 10.168.1.11\n      vpcId: ${defaultNetwork.id}\n      vswitchId: ${defaultSwitch.id}\n      zoneId: ${default.zones[0].id}\n      tags:\n        Created: TF\n        For: example\n  defaultResourceGroup:\n    type: alicloud:adb:ResourceGroup\n    name: default\n    properties:\n      groupName: TF_EXAMPLE\n      groupType: batch\n      nodeNum: 0\n      dbClusterId: ${defaultDBCluster.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:adb:getZones\n      arguments: {}\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAdb Resource Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:adb/resourceGroup:ResourceGroup example \u003cdb_cluster_id\u003e:\u003cgroup_name\u003e\n```\n\n","properties":{"clusterMode":{"type":"string","description":"The working mode of the resource group. Default value: `Disable`. Valid values: `Disable`, `AutoScale`.\n"},"clusterSizeResource":{"type":"string","description":"The resource specifications of a single compute cluster. Unit: ACU.\n"},"connectionString":{"type":"string","description":"(Available since v1.261.0) The endpoint of the resource group.\n"},"createTime":{"type":"string","description":"The time when the resource group was created.\n"},"dbClusterId":{"type":"string","description":"The ID of the DBCluster.\n"},"engine":{"type":"string","description":"The engine of the resource group. Default value: `AnalyticDB`. Valid values: `AnalyticDB`, `SparkWarehouse`.\n"},"engineParams":{"type":"object","additionalProperties":{"type":"string"},"description":"The Spark application configuration parameters that can be applied to all Spark jobs executed in the resource group.\n"},"groupName":{"type":"string","description":"The name of the resource group. The \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e can be up to 255 characters in length and can contain digits, uppercase letters, hyphens (-), and underscores (_). It must start with a digit or uppercase letter.\n"},"groupType":{"type":"string","description":"The query execution mode. Default value: \u003cspan pulumi-lang-nodejs=\"`interactive`\" pulumi-lang-dotnet=\"`Interactive`\" pulumi-lang-go=\"`interactive`\" pulumi-lang-python=\"`interactive`\" pulumi-lang-yaml=\"`interactive`\" pulumi-lang-java=\"`interactive`\"\u003e`interactive`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`interactive`\" pulumi-lang-dotnet=\"`Interactive`\" pulumi-lang-go=\"`interactive`\" pulumi-lang-python=\"`interactive`\" pulumi-lang-yaml=\"`interactive`\" pulumi-lang-java=\"`interactive`\"\u003e`interactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`batch`\" pulumi-lang-dotnet=\"`Batch`\" pulumi-lang-go=\"`batch`\" pulumi-lang-python=\"`batch`\" pulumi-lang-yaml=\"`batch`\" pulumi-lang-java=\"`batch`\"\u003e`batch`\u003c/span\u003e.\n"},"maxClusterCount":{"type":"integer","description":"The maximum number of compute clusters that are allowed in the resource group.\n"},"maxComputeResource":{"type":"string","description":"The maximum amount of reserved computing resources, which refers to the amount of resources that are not allocated in the cluster.\n"},"minClusterCount":{"type":"integer","description":"The minimum number of compute clusters that are required in the resource group.\n"},"minComputeResource":{"type":"string","description":"The minimum amount of reserved computing resources. Unit: AnalyticDB compute unit (ACU).\n"},"nodeNum":{"type":"integer","description":"The number of nodes.\n"},"port":{"type":"string","description":"(Available since v1.261.0) The port number of the resource group.\n"},"status":{"type":"string","description":"(Available since v1.261.0) The status of the resource group.\n"},"updateTime":{"type":"string","description":"The time when the resource group was updated.\n"},"user":{"type":"string","description":"The database accounts that are associated with the resource group.\n"},"users":{"type":"array","items":{"type":"string"},"description":"The database accounts with which to associate the resource group.\n"}},"required":["clusterMode","clusterSizeResource","connectionString","createTime","dbClusterId","engine","groupName","groupType","maxComputeResource","minComputeResource","nodeNum","port","status","updateTime","user"],"inputProperties":{"clusterMode":{"type":"string","description":"The working mode of the resource group. Default value: `Disable`. Valid values: `Disable`, `AutoScale`.\n"},"clusterSizeResource":{"type":"string","description":"The resource specifications of a single compute cluster. Unit: ACU.\n"},"dbClusterId":{"type":"string","description":"The ID of the DBCluster.\n","willReplaceOnChanges":true},"engine":{"type":"string","description":"The engine of the resource group. Default value: `AnalyticDB`. Valid values: `AnalyticDB`, `SparkWarehouse`.\n","willReplaceOnChanges":true},"engineParams":{"type":"object","additionalProperties":{"type":"string"},"description":"The Spark application configuration parameters that can be applied to all Spark jobs executed in the resource group.\n"},"groupName":{"type":"string","description":"The name of the resource group. The \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e can be up to 255 characters in length and can contain digits, uppercase letters, hyphens (-), and underscores (_). It must start with a digit or uppercase letter.\n","willReplaceOnChanges":true},"groupType":{"type":"string","description":"The query execution mode. Default value: \u003cspan pulumi-lang-nodejs=\"`interactive`\" pulumi-lang-dotnet=\"`Interactive`\" pulumi-lang-go=\"`interactive`\" pulumi-lang-python=\"`interactive`\" pulumi-lang-yaml=\"`interactive`\" pulumi-lang-java=\"`interactive`\"\u003e`interactive`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`interactive`\" pulumi-lang-dotnet=\"`Interactive`\" pulumi-lang-go=\"`interactive`\" pulumi-lang-python=\"`interactive`\" pulumi-lang-yaml=\"`interactive`\" pulumi-lang-java=\"`interactive`\"\u003e`interactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`batch`\" pulumi-lang-dotnet=\"`Batch`\" pulumi-lang-go=\"`batch`\" pulumi-lang-python=\"`batch`\" pulumi-lang-yaml=\"`batch`\" pulumi-lang-java=\"`batch`\"\u003e`batch`\u003c/span\u003e.\n"},"maxClusterCount":{"type":"integer","description":"The maximum number of compute clusters that are allowed in the resource group.\n"},"maxComputeResource":{"type":"string","description":"The maximum amount of reserved computing resources, which refers to the amount of resources that are not allocated in the cluster.\n"},"minClusterCount":{"type":"integer","description":"The minimum number of compute clusters that are required in the resource group.\n"},"minComputeResource":{"type":"string","description":"The minimum amount of reserved computing resources. Unit: AnalyticDB compute unit (ACU).\n"},"nodeNum":{"type":"integer","description":"The number of nodes.\n"},"users":{"type":"array","items":{"type":"string"},"description":"The database accounts with which to associate the resource group.\n"}},"requiredInputs":["dbClusterId","groupName"],"stateInputs":{"description":"Input properties used for looking up and filtering ResourceGroup resources.\n","properties":{"clusterMode":{"type":"string","description":"The working mode of the resource group. Default value: `Disable`. Valid values: `Disable`, `AutoScale`.\n"},"clusterSizeResource":{"type":"string","description":"The resource specifications of a single compute cluster. Unit: ACU.\n"},"connectionString":{"type":"string","description":"(Available since v1.261.0) The endpoint of the resource group.\n"},"createTime":{"type":"string","description":"The time when the resource group was created.\n"},"dbClusterId":{"type":"string","description":"The ID of the DBCluster.\n","willReplaceOnChanges":true},"engine":{"type":"string","description":"The engine of the resource group. Default value: `AnalyticDB`. Valid values: `AnalyticDB`, `SparkWarehouse`.\n","willReplaceOnChanges":true},"engineParams":{"type":"object","additionalProperties":{"type":"string"},"description":"The Spark application configuration parameters that can be applied to all Spark jobs executed in the resource group.\n"},"groupName":{"type":"string","description":"The name of the resource group. The \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e can be up to 255 characters in length and can contain digits, uppercase letters, hyphens (-), and underscores (_). It must start with a digit or uppercase letter.\n","willReplaceOnChanges":true},"groupType":{"type":"string","description":"The query execution mode. Default value: \u003cspan pulumi-lang-nodejs=\"`interactive`\" pulumi-lang-dotnet=\"`Interactive`\" pulumi-lang-go=\"`interactive`\" pulumi-lang-python=\"`interactive`\" pulumi-lang-yaml=\"`interactive`\" pulumi-lang-java=\"`interactive`\"\u003e`interactive`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`interactive`\" pulumi-lang-dotnet=\"`Interactive`\" pulumi-lang-go=\"`interactive`\" pulumi-lang-python=\"`interactive`\" pulumi-lang-yaml=\"`interactive`\" pulumi-lang-java=\"`interactive`\"\u003e`interactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`batch`\" pulumi-lang-dotnet=\"`Batch`\" pulumi-lang-go=\"`batch`\" pulumi-lang-python=\"`batch`\" pulumi-lang-yaml=\"`batch`\" pulumi-lang-java=\"`batch`\"\u003e`batch`\u003c/span\u003e.\n"},"maxClusterCount":{"type":"integer","description":"The maximum number of compute clusters that are allowed in the resource group.\n"},"maxComputeResource":{"type":"string","description":"The maximum amount of reserved computing resources, which refers to the amount of resources that are not allocated in the cluster.\n"},"minClusterCount":{"type":"integer","description":"The minimum number of compute clusters that are required in the resource group.\n"},"minComputeResource":{"type":"string","description":"The minimum amount of reserved computing resources. Unit: AnalyticDB compute unit (ACU).\n"},"nodeNum":{"type":"integer","description":"The number of nodes.\n"},"port":{"type":"string","description":"(Available since v1.261.0) The port number of the resource group.\n"},"status":{"type":"string","description":"(Available since v1.261.0) The status of the resource group.\n"},"updateTime":{"type":"string","description":"The time when the resource group was updated.\n"},"user":{"type":"string","description":"The database accounts that are associated with the resource group.\n"},"users":{"type":"array","items":{"type":"string"},"description":"The database accounts with which to associate the resource group.\n"}},"type":"object"}},"alicloud:alb/aScript:AScript":{"description":"Provides a Application Load Balancer (ALB) A Script resource.\n\n\n\nFor information about Application Load Balancer (ALB) A Script and how to use it, see [What is A Script](https://www.alibabacloud.com/help/en/slb/application-load-balancer/developer-reference/api-alb-2020-06-16-createascripts).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.alb.getZones({});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultSwitch.push(new alicloud.vpc.Switch(`default-${range.value}`, {\n        vpcId: defaultNetwork.id,\n        cidrBlock: std.format({\n            input: \"10.4.%d.0/24\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        zoneId: _default.then(_default =\u003e _default.zones[range.value].id),\n        vswitchName: std.format({\n            input: `${name}_%d`,\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst defaultLoadBalancer = new alicloud.alb.LoadBalancer(\"default\", {\n    vpcId: defaultNetwork.id,\n    addressType: \"Internet\",\n    addressAllocatedMode: \"Fixed\",\n    loadBalancerName: name,\n    loadBalancerEdition: \"Standard\",\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    loadBalancerBillingConfig: {\n        payType: \"PayAsYouGo\",\n    },\n    tags: {\n        Created: \"TF\",\n    },\n    zoneMappings: [\n        {\n            vswitchId: defaultSwitch[0].id,\n            zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n        },\n        {\n            vswitchId: defaultSwitch[1].id,\n            zoneId: _default.then(_default =\u003e _default.zones?.[1]?.id),\n        },\n    ],\n});\nconst defaultServerGroup = new alicloud.alb.ServerGroup(\"default\", {\n    protocol: \"HTTP\",\n    vpcId: defaultNetwork.id,\n    serverGroupName: name,\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    healthCheckConfig: {\n        healthCheckEnabled: false,\n    },\n    stickySessionConfig: {\n        stickySessionEnabled: false,\n    },\n    tags: {\n        Created: \"TF\",\n    },\n});\nconst defaultListener = new alicloud.alb.Listener(\"default\", {\n    loadBalancerId: defaultLoadBalancer.id,\n    listenerProtocol: \"HTTP\",\n    listenerPort: 8081,\n    listenerDescription: name,\n    defaultActions: [{\n        type: \"ForwardGroup\",\n        forwardGroupConfig: {\n            serverGroupTuples: [{\n                serverGroupId: defaultServerGroup.id,\n            }],\n        },\n    }],\n});\nconst defaultAScript = new alicloud.alb.AScript(\"default\", {\n    scriptContent: \"time()\",\n    position: \"RequestHead\",\n    ascriptName: name,\n    enabled: true,\n    listenerId: defaultListener.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.alb.get_zones()\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_switch.append(alicloud.vpc.Switch(f\"default-{range['value']}\",\n        vpc_id=default_network.id,\n        cidr_block=std.format(input=\"10.4.%d.0/24\",\n            args=[range[\"value\"] + 1]).result,\n        zone_id=default.zones[range[\"value\"]].id,\n        vswitch_name=std.format(input=f\"{name}_%d\",\n            args=[range[\"value\"] + 1]).result))\ndefault_load_balancer = alicloud.alb.LoadBalancer(\"default\",\n    vpc_id=default_network.id,\n    address_type=\"Internet\",\n    address_allocated_mode=\"Fixed\",\n    load_balancer_name=name,\n    load_balancer_edition=\"Standard\",\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    load_balancer_billing_config={\n        \"pay_type\": \"PayAsYouGo\",\n    },\n    tags={\n        \"Created\": \"TF\",\n    },\n    zone_mappings=[\n        {\n            \"vswitch_id\": default_switch[0].id,\n            \"zone_id\": default.zones[0].id,\n        },\n        {\n            \"vswitch_id\": default_switch[1].id,\n            \"zone_id\": default.zones[1].id,\n        },\n    ])\ndefault_server_group = alicloud.alb.ServerGroup(\"default\",\n    protocol=\"HTTP\",\n    vpc_id=default_network.id,\n    server_group_name=name,\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    health_check_config={\n        \"health_check_enabled\": False,\n    },\n    sticky_session_config={\n        \"sticky_session_enabled\": False,\n    },\n    tags={\n        \"Created\": \"TF\",\n    })\ndefault_listener = alicloud.alb.Listener(\"default\",\n    load_balancer_id=default_load_balancer.id,\n    listener_protocol=\"HTTP\",\n    listener_port=8081,\n    listener_description=name,\n    default_actions=[{\n        \"type\": \"ForwardGroup\",\n        \"forward_group_config\": {\n            \"server_group_tuples\": [{\n                \"server_group_id\": default_server_group.id,\n            }],\n        },\n    }])\ndefault_a_script = alicloud.alb.AScript(\"default\",\n    script_content=\"time()\",\n    position=\"RequestHead\",\n    ascript_name=name,\n    enabled=True,\n    listener_id=default_listener.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.Alb.GetZones.Invoke();\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSwitch.Add(new AliCloud.Vpc.Switch($\"default-{range.Value}\", new()\n        {\n            VpcId = defaultNetwork.Id,\n            CidrBlock = Std.Format.Invoke(new()\n            {\n                Input = \"10.4.%d.0/24\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[range.Value].Id),\n            VswitchName = Std.Format.Invoke(new()\n            {\n                Input = $\"{name}_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var defaultLoadBalancer = new AliCloud.Alb.LoadBalancer(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        AddressType = \"Internet\",\n        AddressAllocatedMode = \"Fixed\",\n        LoadBalancerName = name,\n        LoadBalancerEdition = \"Standard\",\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        LoadBalancerBillingConfig = new AliCloud.Alb.Inputs.LoadBalancerLoadBalancerBillingConfigArgs\n        {\n            PayType = \"PayAsYouGo\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n        ZoneMappings = new[]\n        {\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch[0].Id,\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n            },\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch[1].Id,\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id)),\n            },\n        },\n    });\n\n    var defaultServerGroup = new AliCloud.Alb.ServerGroup(\"default\", new()\n    {\n        Protocol = \"HTTP\",\n        VpcId = defaultNetwork.Id,\n        ServerGroupName = name,\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        HealthCheckConfig = new AliCloud.Alb.Inputs.ServerGroupHealthCheckConfigArgs\n        {\n            HealthCheckEnabled = false,\n        },\n        StickySessionConfig = new AliCloud.Alb.Inputs.ServerGroupStickySessionConfigArgs\n        {\n            StickySessionEnabled = false,\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n    });\n\n    var defaultListener = new AliCloud.Alb.Listener(\"default\", new()\n    {\n        LoadBalancerId = defaultLoadBalancer.Id,\n        ListenerProtocol = \"HTTP\",\n        ListenerPort = 8081,\n        ListenerDescription = name,\n        DefaultActions = new[]\n        {\n            new AliCloud.Alb.Inputs.ListenerDefaultActionArgs\n            {\n                Type = \"ForwardGroup\",\n                ForwardGroupConfig = new AliCloud.Alb.Inputs.ListenerDefaultActionForwardGroupConfigArgs\n                {\n                    ServerGroupTuples = new[]\n                    {\n                        new AliCloud.Alb.Inputs.ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs\n                        {\n                            ServerGroupId = defaultServerGroup.Id,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var defaultAScript = new AliCloud.Alb.AScript(\"default\", new()\n    {\n        ScriptContent = \"time()\",\n        Position = \"RequestHead\",\n        AscriptName = name,\n        Enabled = true,\n        ListenerId = defaultListener.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alb.GetZones(ctx, \u0026alb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"10.4.%d.0/24\",\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: fmt.Sprintf(\"%v%v\", name, \"_%d\"),\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar defaultSwitch []*vpc.Switch\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026vpc.SwitchArgs{\n\t\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\t\tCidrBlock:   pulumi.String(invokeFormat.Result),\n\t\t\t\tZoneId:      _default.Zones[val0].Id,\n\t\t\t\tVswitchName: pulumi.String(invokeFormat1.Result),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultSwitch = append(defaultSwitch, __res)\n\t\t}\n\t\tdefaultLoadBalancer, err := alb.NewLoadBalancer(ctx, \"default\", \u0026alb.LoadBalancerArgs{\n\t\t\tVpcId:                defaultNetwork.ID(),\n\t\t\tAddressType:          pulumi.String(\"Internet\"),\n\t\t\tAddressAllocatedMode: pulumi.String(\"Fixed\"),\n\t\t\tLoadBalancerName:     pulumi.String(name),\n\t\t\tLoadBalancerEdition:  pulumi.String(\"Standard\"),\n\t\t\tResourceGroupId:      pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tLoadBalancerBillingConfig: \u0026alb.LoadBalancerLoadBalancerBillingConfigArgs{\n\t\t\t\tPayType: pulumi.String(\"PayAsYouGo\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t\tZoneMappings: alb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch[0].ID(),\n\t\t\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t\t\t},\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch[1].ID(),\n\t\t\t\t\tZoneId:    pulumi.String(_default.Zones[1].Id),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultServerGroup, err := alb.NewServerGroup(ctx, \"default\", \u0026alb.ServerGroupArgs{\n\t\t\tProtocol:        pulumi.String(\"HTTP\"),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t\tServerGroupName: pulumi.String(name),\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tHealthCheckConfig: \u0026alb.ServerGroupHealthCheckConfigArgs{\n\t\t\t\tHealthCheckEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tStickySessionConfig: \u0026alb.ServerGroupStickySessionConfigArgs{\n\t\t\t\tStickySessionEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultListener, err := alb.NewListener(ctx, \"default\", \u0026alb.ListenerArgs{\n\t\t\tLoadBalancerId:      defaultLoadBalancer.ID(),\n\t\t\tListenerProtocol:    pulumi.String(\"HTTP\"),\n\t\t\tListenerPort:        pulumi.Int(8081),\n\t\t\tListenerDescription: pulumi.String(name),\n\t\t\tDefaultActions: alb.ListenerDefaultActionArray{\n\t\t\t\t\u0026alb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"ForwardGroup\"),\n\t\t\t\t\tForwardGroupConfig: \u0026alb.ListenerDefaultActionForwardGroupConfigArgs{\n\t\t\t\t\t\tServerGroupTuples: alb.ListenerDefaultActionForwardGroupConfigServerGroupTupleArray{\n\t\t\t\t\t\t\t\u0026alb.ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs{\n\t\t\t\t\t\t\t\tServerGroupId: defaultServerGroup.ID(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alb.NewAScript(ctx, \"default\", \u0026alb.AScriptArgs{\n\t\t\tScriptContent: pulumi.String(\"time()\"),\n\t\t\tPosition:      pulumi.String(\"RequestHead\"),\n\t\t\tAscriptName:   pulumi.String(name),\n\t\t\tEnabled:       pulumi.Bool(true),\n\t\t\tListenerId:    defaultListener.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.alb.LoadBalancer;\nimport com.pulumi.alicloud.alb.LoadBalancerArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerLoadBalancerBillingConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.alb.ServerGroup;\nimport com.pulumi.alicloud.alb.ServerGroupArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupHealthCheckConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupStickySessionConfigArgs;\nimport com.pulumi.alicloud.alb.Listener;\nimport com.pulumi.alicloud.alb.ListenerArgs;\nimport com.pulumi.alicloud.alb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.alicloud.alb.inputs.ListenerDefaultActionForwardGroupConfigArgs;\nimport com.pulumi.alicloud.alb.AScript;\nimport com.pulumi.alicloud.alb.AScriptArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Switch(\"defaultSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(defaultNetwork.id())\n                .cidrBlock(StdFunctions.format(FormatArgs.builder()\n                    .input(\"10.4.%d.0/24\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .zoneId(default_.zones()[range.value()].id())\n                .vswitchName(StdFunctions.format(FormatArgs.builder()\n                    .input(String.format(\"%s_%d\", name))\n                    .args(range.value() + 1)\n                    .build()).result())\n                .build());\n\n        \n}\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .addressType(\"Internet\")\n            .addressAllocatedMode(\"Fixed\")\n            .loadBalancerName(name)\n            .loadBalancerEdition(\"Standard\")\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .loadBalancerBillingConfig(LoadBalancerLoadBalancerBillingConfigArgs.builder()\n                .payType(\"PayAsYouGo\")\n                .build())\n            .tags(Map.of(\"Created\", \"TF\"))\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch[0].id())\n                    .zoneId(default_.zones()[0].id())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch[1].id())\n                    .zoneId(default_.zones()[1].id())\n                    .build())\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .protocol(\"HTTP\")\n            .vpcId(defaultNetwork.id())\n            .serverGroupName(name)\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .healthCheckConfig(ServerGroupHealthCheckConfigArgs.builder()\n                .healthCheckEnabled(false)\n                .build())\n            .stickySessionConfig(ServerGroupStickySessionConfigArgs.builder()\n                .stickySessionEnabled(false)\n                .build())\n            .tags(Map.of(\"Created\", \"TF\"))\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .loadBalancerId(defaultLoadBalancer.id())\n            .listenerProtocol(\"HTTP\")\n            .listenerPort(8081)\n            .listenerDescription(name)\n            .defaultActions(ListenerDefaultActionArgs.builder()\n                .type(\"ForwardGroup\")\n                .forwardGroupConfig(ListenerDefaultActionForwardGroupConfigArgs.builder()\n                    .serverGroupTuples(ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs.builder()\n                        .serverGroupId(defaultServerGroup.id())\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var defaultAScript = new AScript(\"defaultAScript\", AScriptArgs.builder()\n            .scriptContent(\"time()\")\n            .position(\"RequestHead\")\n            .ascriptName(name)\n            .enabled(true)\n            .listenerId(defaultListener.id())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Load Balancer (ALB) A Script can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alb/aScript:AScript example \u003cid\u003e\n```\n\n","properties":{"ascriptName":{"type":"string","description":"AScript name.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request\n"},"enabled":{"type":"boolean","description":"Whether AScript is enabled.\n"},"extAttributeEnabled":{"type":"boolean","description":"Whether extension parameters are enabled. When ExtAttributeEnabled is true, ExtAttributes must be set.\n"},"extAttributes":{"type":"array","items":{"$ref":"#/types/alicloud:alb/AScriptExtAttribute:AScriptExtAttribute"},"description":"Expand the list of attributes. When ExtAttributeEnabled is true, ExtAttributes must be set. See \u003cspan pulumi-lang-nodejs=\"`extAttributes`\" pulumi-lang-dotnet=\"`ExtAttributes`\" pulumi-lang-go=\"`extAttributes`\" pulumi-lang-python=\"`ext_attributes`\" pulumi-lang-yaml=\"`extAttributes`\" pulumi-lang-java=\"`extAttributes`\"\u003e`ext_attributes`\u003c/span\u003e below.\n"},"listenerId":{"type":"string","description":"Listener ID of script attribution\n"},"position":{"type":"string","description":"Script execution location.\n"},"scriptContent":{"type":"string","description":"AScript script content.\n"},"status":{"type":"string","description":"Script status\n"}},"required":["ascriptName","listenerId","position","scriptContent","status"],"inputProperties":{"ascriptName":{"type":"string","description":"AScript name.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request\n"},"enabled":{"type":"boolean","description":"Whether AScript is enabled.\n"},"extAttributeEnabled":{"type":"boolean","description":"Whether extension parameters are enabled. When ExtAttributeEnabled is true, ExtAttributes must be set.\n"},"extAttributes":{"type":"array","items":{"$ref":"#/types/alicloud:alb/AScriptExtAttribute:AScriptExtAttribute"},"description":"Expand the list of attributes. When ExtAttributeEnabled is true, ExtAttributes must be set. See \u003cspan pulumi-lang-nodejs=\"`extAttributes`\" pulumi-lang-dotnet=\"`ExtAttributes`\" pulumi-lang-go=\"`extAttributes`\" pulumi-lang-python=\"`ext_attributes`\" pulumi-lang-yaml=\"`extAttributes`\" pulumi-lang-java=\"`extAttributes`\"\u003e`ext_attributes`\u003c/span\u003e below.\n"},"listenerId":{"type":"string","description":"Listener ID of script attribution\n","willReplaceOnChanges":true},"position":{"type":"string","description":"Script execution location.\n","willReplaceOnChanges":true},"scriptContent":{"type":"string","description":"AScript script content.\n"}},"requiredInputs":["ascriptName","listenerId","position","scriptContent"],"stateInputs":{"description":"Input properties used for looking up and filtering AScript resources.\n","properties":{"ascriptName":{"type":"string","description":"AScript name.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request\n"},"enabled":{"type":"boolean","description":"Whether AScript is enabled.\n"},"extAttributeEnabled":{"type":"boolean","description":"Whether extension parameters are enabled. When ExtAttributeEnabled is true, ExtAttributes must be set.\n"},"extAttributes":{"type":"array","items":{"$ref":"#/types/alicloud:alb/AScriptExtAttribute:AScriptExtAttribute"},"description":"Expand the list of attributes. When ExtAttributeEnabled is true, ExtAttributes must be set. See \u003cspan pulumi-lang-nodejs=\"`extAttributes`\" pulumi-lang-dotnet=\"`ExtAttributes`\" pulumi-lang-go=\"`extAttributes`\" pulumi-lang-python=\"`ext_attributes`\" pulumi-lang-yaml=\"`extAttributes`\" pulumi-lang-java=\"`extAttributes`\"\u003e`ext_attributes`\u003c/span\u003e below.\n"},"listenerId":{"type":"string","description":"Listener ID of script attribution\n","willReplaceOnChanges":true},"position":{"type":"string","description":"Script execution location.\n","willReplaceOnChanges":true},"scriptContent":{"type":"string","description":"AScript script content.\n"},"status":{"type":"string","description":"Script status\n"}},"type":"object"}},"alicloud:alb/acl:Acl":{"description":"Provides a Application Load Balancer (ALB) Acl resource.\n\nFor information about ALB Acl and how to use it, see [What is Acl](https://www.alibabacloud.com/help/en/slb/application-load-balancer/developer-reference/api-alb-2020-06-16-createacl).\n\n\u003e **NOTE:** Available since v1.133.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultAcl = new alicloud.alb.Acl(\"default\", {\n    aclName: \"tf_example\",\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_acl = alicloud.alb.Acl(\"default\",\n    acl_name=\"tf_example\",\n    resource_group_id=default.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultAcl = new AliCloud.Alb.Acl(\"default\", new()\n    {\n        AclName = \"tf_example\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alb.NewAcl(ctx, \"default\", \u0026alb.AclArgs{\n\t\t\tAclName:         pulumi.String(\"tf_example\"),\n\t\t\tResourceGroupId: pulumi.String(_default.Groups[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.alb.Acl;\nimport com.pulumi.alicloud.alb.AclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultAcl = new Acl(\"defaultAcl\", AclArgs.builder()\n            .aclName(\"tf_example\")\n            .resourceGroupId(default_.groups()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultAcl:\n    type: alicloud:alb:Acl\n    name: default\n    properties:\n      aclName: tf_example\n      resourceGroupId: ${default.groups[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nALB Acl can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alb/acl:Acl example \u003cid\u003e\n```\n\n","properties":{"aclEntries":{"type":"array","items":{"$ref":"#/types/alicloud:alb/AclAclEntry:AclAclEntry"},"description":"The list of the ACL entries. You can add up to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e entries in each call.  See \u003cspan pulumi-lang-nodejs=\"`aclEntries`\" pulumi-lang-dotnet=\"`AclEntries`\" pulumi-lang-go=\"`aclEntries`\" pulumi-lang-python=\"`acl_entries`\" pulumi-lang-yaml=\"`aclEntries`\" pulumi-lang-java=\"`aclEntries`\"\u003e`acl_entries`\u003c/span\u003e below for details.\n**NOTE:** \"Field 'acl_entries' has been deprecated from provider version 1.166.0 and it will be removed in the future version. Please use the new resource 'alicloud_alb_acl_entry_attachment'.\",\n","deprecationMessage":"Field 'acl_entries' has been deprecated from provider version 1.166.0 and it will be removed in the future version. Please use the new resource 'alicloud_alb_acl_entry_attachment'."},"aclName":{"type":"string","description":"The name of the ACL. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain letters, digits, hyphens (-) and underscores (_). It must start with a letter.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to precheck the API request.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The state of the ACL. Valid values:`Provisioning`, `Available` and `Configuring`. `Provisioning`: The ACL is being created. `Available`: The ACL is available. `Configuring`: The ACL is being configured.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["aclEntries","resourceGroupId","status"],"inputProperties":{"aclEntries":{"type":"array","items":{"$ref":"#/types/alicloud:alb/AclAclEntry:AclAclEntry"},"description":"The list of the ACL entries. You can add up to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e entries in each call.  See \u003cspan pulumi-lang-nodejs=\"`aclEntries`\" pulumi-lang-dotnet=\"`AclEntries`\" pulumi-lang-go=\"`aclEntries`\" pulumi-lang-python=\"`acl_entries`\" pulumi-lang-yaml=\"`aclEntries`\" pulumi-lang-java=\"`aclEntries`\"\u003e`acl_entries`\u003c/span\u003e below for details.\n**NOTE:** \"Field 'acl_entries' has been deprecated from provider version 1.166.0 and it will be removed in the future version. Please use the new resource 'alicloud_alb_acl_entry_attachment'.\",\n","deprecationMessage":"Field 'acl_entries' has been deprecated from provider version 1.166.0 and it will be removed in the future version. Please use the new resource 'alicloud_alb_acl_entry_attachment'."},"aclName":{"type":"string","description":"The name of the ACL. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain letters, digits, hyphens (-) and underscores (_). It must start with a letter.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to precheck the API request.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Acl resources.\n","properties":{"aclEntries":{"type":"array","items":{"$ref":"#/types/alicloud:alb/AclAclEntry:AclAclEntry"},"description":"The list of the ACL entries. You can add up to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e entries in each call.  See \u003cspan pulumi-lang-nodejs=\"`aclEntries`\" pulumi-lang-dotnet=\"`AclEntries`\" pulumi-lang-go=\"`aclEntries`\" pulumi-lang-python=\"`acl_entries`\" pulumi-lang-yaml=\"`aclEntries`\" pulumi-lang-java=\"`aclEntries`\"\u003e`acl_entries`\u003c/span\u003e below for details.\n**NOTE:** \"Field 'acl_entries' has been deprecated from provider version 1.166.0 and it will be removed in the future version. Please use the new resource 'alicloud_alb_acl_entry_attachment'.\",\n","deprecationMessage":"Field 'acl_entries' has been deprecated from provider version 1.166.0 and it will be removed in the future version. Please use the new resource 'alicloud_alb_acl_entry_attachment'."},"aclName":{"type":"string","description":"The name of the ACL. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain letters, digits, hyphens (-) and underscores (_). It must start with a letter.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to precheck the API request.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The state of the ACL. Valid values:`Provisioning`, `Available` and `Configuring`. `Provisioning`: The ACL is being created. `Available`: The ACL is available. `Configuring`: The ACL is being configured.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:alb/aclEntryAttachment:AclEntryAttachment":{"description":"For information about acl entry attachment and how to use it, see [Configure an acl entry](https://www.alibabacloud.com/help/en/slb/application-load-balancer/developer-reference/api-alb-2020-06-16-addentriestoacl).\n\n\u003e **NOTE:** Available since v1.166.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultAcl = new alicloud.alb.Acl(\"default\", {\n    aclName: name,\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n});\nconst defaultAclEntryAttachment = new alicloud.alb.AclEntryAttachment(\"default\", {\n    aclId: defaultAcl.id,\n    entry: \"168.10.10.0/24\",\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_acl = alicloud.alb.Acl(\"default\",\n    acl_name=name,\n    resource_group_id=default.groups[0].id)\ndefault_acl_entry_attachment = alicloud.alb.AclEntryAttachment(\"default\",\n    acl_id=default_acl.id,\n    entry=\"168.10.10.0/24\",\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultAcl = new AliCloud.Alb.Acl(\"default\", new()\n    {\n        AclName = name,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n    });\n\n    var defaultAclEntryAttachment = new AliCloud.Alb.AclEntryAttachment(\"default\", new()\n    {\n        AclId = defaultAcl.Id,\n        Entry = \"168.10.10.0/24\",\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAcl, err := alb.NewAcl(ctx, \"default\", \u0026alb.AclArgs{\n\t\t\tAclName:         pulumi.String(name),\n\t\t\tResourceGroupId: pulumi.String(_default.Groups[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alb.NewAclEntryAttachment(ctx, \"default\", \u0026alb.AclEntryAttachmentArgs{\n\t\t\tAclId:       defaultAcl.ID(),\n\t\t\tEntry:       pulumi.String(\"168.10.10.0/24\"),\n\t\t\tDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.alb.Acl;\nimport com.pulumi.alicloud.alb.AclArgs;\nimport com.pulumi.alicloud.alb.AclEntryAttachment;\nimport com.pulumi.alicloud.alb.AclEntryAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultAcl = new Acl(\"defaultAcl\", AclArgs.builder()\n            .aclName(name)\n            .resourceGroupId(default_.groups()[0].id())\n            .build());\n\n        var defaultAclEntryAttachment = new AclEntryAttachment(\"defaultAclEntryAttachment\", AclEntryAttachmentArgs.builder()\n            .aclId(defaultAcl.id())\n            .entry(\"168.10.10.0/24\")\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultAcl:\n    type: alicloud:alb:Acl\n    name: default\n    properties:\n      aclName: ${name}\n      resourceGroupId: ${default.groups[0].id}\n  defaultAclEntryAttachment:\n    type: alicloud:alb:AclEntryAttachment\n    name: default\n    properties:\n      aclId: ${defaultAcl.id}\n      entry: 168.10.10.0/24\n      description: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAcl entry attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alb/aclEntryAttachment:AclEntryAttachment example \u003cacl_id\u003e:\u003centry\u003e\n```\n\n","properties":{"aclId":{"type":"string","description":"The ID of the Acl.\n"},"description":{"type":"string","description":"The description of the entry.\n"},"entry":{"type":"string","description":"The CIDR blocks.\n"},"status":{"type":"string","description":"The Status of the resource.\n"}},"required":["aclId","entry","status"],"inputProperties":{"aclId":{"type":"string","description":"The ID of the Acl.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the entry.\n","willReplaceOnChanges":true},"entry":{"type":"string","description":"The CIDR blocks.\n","willReplaceOnChanges":true}},"requiredInputs":["aclId","entry"],"stateInputs":{"description":"Input properties used for looking up and filtering AclEntryAttachment resources.\n","properties":{"aclId":{"type":"string","description":"The ID of the Acl.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the entry.\n","willReplaceOnChanges":true},"entry":{"type":"string","description":"The CIDR blocks.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The Status of the resource.\n"}},"type":"object"}},"alicloud:alb/healthCheckTemplate:HealthCheckTemplate":{"description":"Provides a Application Load Balancer (ALB) Health Check Template resource.\n\nHealth check template.\n\nFor information about Application Load Balancer (ALB) Health Check Template and how to use it, see [What is Health Check Template](https://www.alibabacloud.com/help/en/slb/application-load-balancer/developer-reference/api-alb-2020-06-16-createhealthchecktemplate).\n\n\u003e **NOTE:** Available since v1.134.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = new alicloud.alb.HealthCheckTemplate(\"example\", {healthCheckTemplateName: name});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.alb.HealthCheckTemplate(\"example\", health_check_template_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = new AliCloud.Alb.HealthCheckTemplate(\"example\", new()\n    {\n        HealthCheckTemplateName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := alb.NewHealthCheckTemplate(ctx, \"example\", \u0026alb.HealthCheckTemplateArgs{\n\t\t\tHealthCheckTemplateName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.alb.HealthCheckTemplate;\nimport com.pulumi.alicloud.alb.HealthCheckTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var example = new HealthCheckTemplate(\"example\", HealthCheckTemplateArgs.builder()\n            .healthCheckTemplateName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  example:\n    type: alicloud:alb:HealthCheckTemplate\n    properties:\n      healthCheckTemplateName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Load Balancer (ALB) Health Check Template can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alb/healthCheckTemplate:HealthCheckTemplate example \u003cid\u003e\n```\n\n","properties":{"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request, value:\ntrue: sends a check request and does not create a resource. Check items include whether required parameters, request format, and business restrictions have been filled in. If the check fails, the corresponding error is returned. If the check passes, the error code DryRunOperation is returned.\nfalse (default): Sends a normal request, returns the\u003cspan pulumi-lang-nodejs=\" http2xx \" pulumi-lang-dotnet=\" Http2xx \" pulumi-lang-go=\" http2xx \" pulumi-lang-python=\" http_2xx \" pulumi-lang-yaml=\" http2xx \" pulumi-lang-java=\" http2xx \"\u003e http_2xx \u003c/span\u003estatus code after the check, and directly performs the operation.\n"},"healthCheckCodes":{"type":"array","items":{"type":"string"},"description":"The HTTP code of the health check. The default value is http_2xx. The normal HTTP code for health check. Separate multiple codes with commas (,). Valid values: http_2xx, http_3xx, http_4xx, or http_5xx.\n"},"healthCheckConnectPort":{"type":"integer","description":"The number of the port that is used for health checks.  Valid values: 0 to 65535.  Default value: 0. This value indicates that the backend server is used for health checks.\n"},"healthCheckHost":{"type":"string","description":"The domain name that is used for health checks. Valid values:  $SERVER_IP (default value): The private IP addresses of backend servers. If the $_ip parameter is set or the HealthCheckHost parameter is not set, SLB uses the private IP addresses of backend servers as the domain names for health checks.  domain: The domain name must be 1 to 80 characters in length, and can contain only letters, digits, periods (.),and hyphens (-).\n"},"healthCheckHttpVersion":{"type":"string","description":"The version of the HTTP protocol.  Valid values: HTTP 1.0 and HTTP 1.1.  Default value: HTTP 1.1.\n"},"healthCheckInterval":{"type":"integer","description":"The time interval between two consecutive health checks.  Valid values: 1 to 50. Unit: seconds.  Default value: 2.\n"},"healthCheckMethod":{"type":"string","description":"The health check method.  Valid values: GET and HEAD.  Default value: HEAD.\n"},"healthCheckPath":{"type":"string","description":"The URL that is used for health checks.  The URL must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), percent signs (%), question marks (?), number signs (#), and ampersands (\u0026). The URL can also contain the following extended characters: _ ; ~ ! ( )* [ ] @ $ ^ : ' , +. The URL must start with a forward slash (/).\n"},"healthCheckProtocol":{"type":"string","description":"The protocol used for the health check. Value:\nHTTP (default): Sends a HEAD or GET request to simulate the browser's access behavior to check whether the server application is healthy.\nHTTPS: Sends a HEAD or GET request to simulate the browser's access behavior to check whether the server application is healthy. (Data encryption is more secure than HTTP.)\nTCP: Sends a SYN handshake packet to check whether the server port is alive.\ngRPC: Check whether the server application is healthy by sending a POST or GET request.\n"},"healthCheckTemplateName":{"type":"string","description":"The name of the health check template.  The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (_), and hyphens (-). The name must start with a letter.\n"},"healthCheckTimeout":{"type":"integer","description":"The timeout period of a health check response. If the backend Elastic Compute Service (ECS) instance does not send an expected response within the specified period of time, the health check fails.  Valid values: 1 to 300. Unit: seconds.  Default value: 5.\n"},"healthyThreshold":{"type":"integer","description":"The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy (from fail to success).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"unhealthyThreshold":{"type":"integer","description":"Specifies the number of times that an healthy backend server must consecutively fail health checks before it is declared unhealthy (from success to fail).\n"}},"required":["healthCheckCodes","healthCheckConnectPort","healthCheckHost","healthCheckHttpVersion","healthCheckInterval","healthCheckMethod","healthCheckPath","healthCheckProtocol","healthCheckTemplateName","healthCheckTimeout","healthyThreshold","resourceGroupId","unhealthyThreshold"],"inputProperties":{"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request, value:\ntrue: sends a check request and does not create a resource. Check items include whether required parameters, request format, and business restrictions have been filled in. If the check fails, the corresponding error is returned. If the check passes, the error code DryRunOperation is returned.\nfalse (default): Sends a normal request, returns the\u003cspan pulumi-lang-nodejs=\" http2xx \" pulumi-lang-dotnet=\" Http2xx \" pulumi-lang-go=\" http2xx \" pulumi-lang-python=\" http_2xx \" pulumi-lang-yaml=\" http2xx \" pulumi-lang-java=\" http2xx \"\u003e http_2xx \u003c/span\u003estatus code after the check, and directly performs the operation.\n"},"healthCheckCodes":{"type":"array","items":{"type":"string"},"description":"The HTTP code of the health check. The default value is http_2xx. The normal HTTP code for health check. Separate multiple codes with commas (,). Valid values: http_2xx, http_3xx, http_4xx, or http_5xx.\n"},"healthCheckConnectPort":{"type":"integer","description":"The number of the port that is used for health checks.  Valid values: 0 to 65535.  Default value: 0. This value indicates that the backend server is used for health checks.\n"},"healthCheckHost":{"type":"string","description":"The domain name that is used for health checks. Valid values:  $SERVER_IP (default value): The private IP addresses of backend servers. If the $_ip parameter is set or the HealthCheckHost parameter is not set, SLB uses the private IP addresses of backend servers as the domain names for health checks.  domain: The domain name must be 1 to 80 characters in length, and can contain only letters, digits, periods (.),and hyphens (-).\n"},"healthCheckHttpVersion":{"type":"string","description":"The version of the HTTP protocol.  Valid values: HTTP 1.0 and HTTP 1.1.  Default value: HTTP 1.1.\n"},"healthCheckInterval":{"type":"integer","description":"The time interval between two consecutive health checks.  Valid values: 1 to 50. Unit: seconds.  Default value: 2.\n"},"healthCheckMethod":{"type":"string","description":"The health check method.  Valid values: GET and HEAD.  Default value: HEAD.\n"},"healthCheckPath":{"type":"string","description":"The URL that is used for health checks.  The URL must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), percent signs (%), question marks (?), number signs (#), and ampersands (\u0026). The URL can also contain the following extended characters: _ ; ~ ! ( )* [ ] @ $ ^ : ' , +. The URL must start with a forward slash (/).\n"},"healthCheckProtocol":{"type":"string","description":"The protocol used for the health check. Value:\nHTTP (default): Sends a HEAD or GET request to simulate the browser's access behavior to check whether the server application is healthy.\nHTTPS: Sends a HEAD or GET request to simulate the browser's access behavior to check whether the server application is healthy. (Data encryption is more secure than HTTP.)\nTCP: Sends a SYN handshake packet to check whether the server port is alive.\ngRPC: Check whether the server application is healthy by sending a POST or GET request.\n"},"healthCheckTemplateName":{"type":"string","description":"The name of the health check template.  The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (_), and hyphens (-). The name must start with a letter.\n"},"healthCheckTimeout":{"type":"integer","description":"The timeout period of a health check response. If the backend Elastic Compute Service (ECS) instance does not send an expected response within the specified period of time, the health check fails.  Valid values: 1 to 300. Unit: seconds.  Default value: 5.\n"},"healthyThreshold":{"type":"integer","description":"The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy (from fail to success).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"unhealthyThreshold":{"type":"integer","description":"Specifies the number of times that an healthy backend server must consecutively fail health checks before it is declared unhealthy (from success to fail).\n"}},"requiredInputs":["healthCheckTemplateName"],"stateInputs":{"description":"Input properties used for looking up and filtering HealthCheckTemplate resources.\n","properties":{"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request, value:\ntrue: sends a check request and does not create a resource. Check items include whether required parameters, request format, and business restrictions have been filled in. If the check fails, the corresponding error is returned. If the check passes, the error code DryRunOperation is returned.\nfalse (default): Sends a normal request, returns the\u003cspan pulumi-lang-nodejs=\" http2xx \" pulumi-lang-dotnet=\" Http2xx \" pulumi-lang-go=\" http2xx \" pulumi-lang-python=\" http_2xx \" pulumi-lang-yaml=\" http2xx \" pulumi-lang-java=\" http2xx \"\u003e http_2xx \u003c/span\u003estatus code after the check, and directly performs the operation.\n"},"healthCheckCodes":{"type":"array","items":{"type":"string"},"description":"The HTTP code of the health check. The default value is http_2xx. The normal HTTP code for health check. Separate multiple codes with commas (,). Valid values: http_2xx, http_3xx, http_4xx, or http_5xx.\n"},"healthCheckConnectPort":{"type":"integer","description":"The number of the port that is used for health checks.  Valid values: 0 to 65535.  Default value: 0. This value indicates that the backend server is used for health checks.\n"},"healthCheckHost":{"type":"string","description":"The domain name that is used for health checks. Valid values:  $SERVER_IP (default value): The private IP addresses of backend servers. If the $_ip parameter is set or the HealthCheckHost parameter is not set, SLB uses the private IP addresses of backend servers as the domain names for health checks.  domain: The domain name must be 1 to 80 characters in length, and can contain only letters, digits, periods (.),and hyphens (-).\n"},"healthCheckHttpVersion":{"type":"string","description":"The version of the HTTP protocol.  Valid values: HTTP 1.0 and HTTP 1.1.  Default value: HTTP 1.1.\n"},"healthCheckInterval":{"type":"integer","description":"The time interval between two consecutive health checks.  Valid values: 1 to 50. Unit: seconds.  Default value: 2.\n"},"healthCheckMethod":{"type":"string","description":"The health check method.  Valid values: GET and HEAD.  Default value: HEAD.\n"},"healthCheckPath":{"type":"string","description":"The URL that is used for health checks.  The URL must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), percent signs (%), question marks (?), number signs (#), and ampersands (\u0026). The URL can also contain the following extended characters: _ ; ~ ! ( )* [ ] @ $ ^ : ' , +. The URL must start with a forward slash (/).\n"},"healthCheckProtocol":{"type":"string","description":"The protocol used for the health check. Value:\nHTTP (default): Sends a HEAD or GET request to simulate the browser's access behavior to check whether the server application is healthy.\nHTTPS: Sends a HEAD or GET request to simulate the browser's access behavior to check whether the server application is healthy. (Data encryption is more secure than HTTP.)\nTCP: Sends a SYN handshake packet to check whether the server port is alive.\ngRPC: Check whether the server application is healthy by sending a POST or GET request.\n"},"healthCheckTemplateName":{"type":"string","description":"The name of the health check template.  The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (_), and hyphens (-). The name must start with a letter.\n"},"healthCheckTimeout":{"type":"integer","description":"The timeout period of a health check response. If the backend Elastic Compute Service (ECS) instance does not send an expected response within the specified period of time, the health check fails.  Valid values: 1 to 300. Unit: seconds.  Default value: 5.\n"},"healthyThreshold":{"type":"integer","description":"The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy (from fail to success).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"unhealthyThreshold":{"type":"integer","description":"Specifies the number of times that an healthy backend server must consecutively fail health checks before it is declared unhealthy (from success to fail).\n"}},"type":"object"}},"alicloud:alb/listener:Listener":{"description":"Provides a Application Load Balancer (ALB) Listener resource.\n\n\n\nFor information about Application Load Balancer (ALB) Listener and how to use it, see [What is Listener](https://www.alibabacloud.com/help/en/slb/application-load-balancer/developer-reference/api-alb-2020-06-16-createlistener).\n\n\u003e **NOTE:** Available since v1.133.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.alb.getZones({});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultSwitch.push(new alicloud.vpc.Switch(`default-${range.value}`, {\n        vpcId: defaultNetwork.id,\n        cidrBlock: std.format({\n            input: \"10.4.%d.0/24\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        zoneId: _default.then(_default =\u003e _default.zones[range.value].id),\n        vswitchName: std.format({\n            input: `${name}_%d`,\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    securityGroupName: name,\n    description: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultLoadBalancer = new alicloud.alb.LoadBalancer(\"default\", {\n    vpcId: defaultNetwork.id,\n    addressType: \"Internet\",\n    addressAllocatedMode: \"Fixed\",\n    loadBalancerName: name,\n    loadBalancerEdition: \"Basic\",\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    loadBalancerBillingConfig: {\n        payType: \"PayAsYouGo\",\n    },\n    tags: {\n        Created: \"TF\",\n    },\n    zoneMappings: [\n        {\n            vswitchId: defaultSwitch[0].id,\n            zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n        },\n        {\n            vswitchId: defaultSwitch[1].id,\n            zoneId: _default.then(_default =\u003e _default.zones?.[1]?.id),\n        },\n    ],\n    modificationProtectionConfig: {\n        status: \"NonProtection\",\n    },\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceName: name,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup.id],\n    vswitchId: defaultSwitch[0].id,\n});\nconst defaultServerGroup = new alicloud.alb.ServerGroup(\"default\", {\n    protocol: \"HTTP\",\n    vpcId: defaultNetwork.id,\n    serverGroupName: name,\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    healthCheckConfig: {\n        healthCheckConnectPort: 46325,\n        healthCheckEnabled: true,\n        healthCheckHost: \"tf-example.com\",\n        healthCheckCodes: [\n            \"http_2xx\",\n            \"http_3xx\",\n            \"http_4xx\",\n        ],\n        healthCheckHttpVersion: \"HTTP1.1\",\n        healthCheckInterval: 2,\n        healthCheckMethod: \"HEAD\",\n        healthCheckPath: \"/tf-example\",\n        healthCheckProtocol: \"HTTP\",\n        healthCheckTimeout: 5,\n        healthyThreshold: 3,\n        unhealthyThreshold: 3,\n    },\n    stickySessionConfig: {\n        stickySessionEnabled: true,\n        cookie: \"tf-example\",\n        stickySessionType: \"Server\",\n    },\n    servers: [{\n        description: name,\n        port: 80,\n        serverId: defaultInstance.id,\n        serverIp: defaultInstance.privateIp,\n        serverType: \"Ecs\",\n        weight: 10,\n    }],\n});\nconst defaultListener = new alicloud.alb.Listener(\"default\", {\n    loadBalancerId: defaultLoadBalancer.id,\n    listenerProtocol: \"HTTP\",\n    listenerPort: 443,\n    listenerDescription: name,\n    defaultActions: [{\n        type: \"ForwardGroup\",\n        forwardGroupConfig: {\n            serverGroupTuples: [{\n                serverGroupId: defaultServerGroup.id,\n            }],\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.alb.get_zones()\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_switch.append(alicloud.vpc.Switch(f\"default-{range['value']}\",\n        vpc_id=default_network.id,\n        cidr_block=std.format(input=\"10.4.%d.0/24\",\n            args=[range[\"value\"] + 1]).result,\n        zone_id=default.zones[range[\"value\"]].id,\n        vswitch_name=std.format(input=f\"{name}_%d\",\n            args=[range[\"value\"] + 1]).result))\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    security_group_name=name,\n    description=name,\n    vpc_id=default_network.id)\ndefault_load_balancer = alicloud.alb.LoadBalancer(\"default\",\n    vpc_id=default_network.id,\n    address_type=\"Internet\",\n    address_allocated_mode=\"Fixed\",\n    load_balancer_name=name,\n    load_balancer_edition=\"Basic\",\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    load_balancer_billing_config={\n        \"pay_type\": \"PayAsYouGo\",\n    },\n    tags={\n        \"Created\": \"TF\",\n    },\n    zone_mappings=[\n        {\n            \"vswitch_id\": default_switch[0].id,\n            \"zone_id\": default.zones[0].id,\n        },\n        {\n            \"vswitch_id\": default_switch[1].id,\n            \"zone_id\": default.zones[1].id,\n        },\n    ],\n    modification_protection_config={\n        \"status\": \"NonProtection\",\n    })\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    availability_zone=default.zones[0].id,\n    instance_name=name,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[default_security_group.id],\n    vswitch_id=default_switch[0].id)\ndefault_server_group = alicloud.alb.ServerGroup(\"default\",\n    protocol=\"HTTP\",\n    vpc_id=default_network.id,\n    server_group_name=name,\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    health_check_config={\n        \"health_check_connect_port\": 46325,\n        \"health_check_enabled\": True,\n        \"health_check_host\": \"tf-example.com\",\n        \"health_check_codes\": [\n            \"http_2xx\",\n            \"http_3xx\",\n            \"http_4xx\",\n        ],\n        \"health_check_http_version\": \"HTTP1.1\",\n        \"health_check_interval\": 2,\n        \"health_check_method\": \"HEAD\",\n        \"health_check_path\": \"/tf-example\",\n        \"health_check_protocol\": \"HTTP\",\n        \"health_check_timeout\": 5,\n        \"healthy_threshold\": 3,\n        \"unhealthy_threshold\": 3,\n    },\n    sticky_session_config={\n        \"sticky_session_enabled\": True,\n        \"cookie\": \"tf-example\",\n        \"sticky_session_type\": \"Server\",\n    },\n    servers=[{\n        \"description\": name,\n        \"port\": 80,\n        \"server_id\": default_instance.id,\n        \"server_ip\": default_instance.private_ip,\n        \"server_type\": \"Ecs\",\n        \"weight\": 10,\n    }])\ndefault_listener = alicloud.alb.Listener(\"default\",\n    load_balancer_id=default_load_balancer.id,\n    listener_protocol=\"HTTP\",\n    listener_port=443,\n    listener_description=name,\n    default_actions=[{\n        \"type\": \"ForwardGroup\",\n        \"forward_group_config\": {\n            \"server_group_tuples\": [{\n                \"server_group_id\": default_server_group.id,\n            }],\n        },\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.Alb.GetZones.Invoke();\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSwitch.Add(new AliCloud.Vpc.Switch($\"default-{range.Value}\", new()\n        {\n            VpcId = defaultNetwork.Id,\n            CidrBlock = Std.Format.Invoke(new()\n            {\n                Input = \"10.4.%d.0/24\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[range.Value].Id),\n            VswitchName = Std.Format.Invoke(new()\n            {\n                Input = $\"{name}_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = name,\n        Description = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultLoadBalancer = new AliCloud.Alb.LoadBalancer(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        AddressType = \"Internet\",\n        AddressAllocatedMode = \"Fixed\",\n        LoadBalancerName = name,\n        LoadBalancerEdition = \"Basic\",\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        LoadBalancerBillingConfig = new AliCloud.Alb.Inputs.LoadBalancerLoadBalancerBillingConfigArgs\n        {\n            PayType = \"PayAsYouGo\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n        ZoneMappings = new[]\n        {\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch[0].Id,\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n            },\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch[1].Id,\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id)),\n            },\n        },\n        ModificationProtectionConfig = new AliCloud.Alb.Inputs.LoadBalancerModificationProtectionConfigArgs\n        {\n            Status = \"NonProtection\",\n        },\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceName = name,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        VswitchId = defaultSwitch[0].Id,\n    });\n\n    var defaultServerGroup = new AliCloud.Alb.ServerGroup(\"default\", new()\n    {\n        Protocol = \"HTTP\",\n        VpcId = defaultNetwork.Id,\n        ServerGroupName = name,\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        HealthCheckConfig = new AliCloud.Alb.Inputs.ServerGroupHealthCheckConfigArgs\n        {\n            HealthCheckConnectPort = 46325,\n            HealthCheckEnabled = true,\n            HealthCheckHost = \"tf-example.com\",\n            HealthCheckCodes = new[]\n            {\n                \"http_2xx\",\n                \"http_3xx\",\n                \"http_4xx\",\n            },\n            HealthCheckHttpVersion = \"HTTP1.1\",\n            HealthCheckInterval = 2,\n            HealthCheckMethod = \"HEAD\",\n            HealthCheckPath = \"/tf-example\",\n            HealthCheckProtocol = \"HTTP\",\n            HealthCheckTimeout = 5,\n            HealthyThreshold = 3,\n            UnhealthyThreshold = 3,\n        },\n        StickySessionConfig = new AliCloud.Alb.Inputs.ServerGroupStickySessionConfigArgs\n        {\n            StickySessionEnabled = true,\n            Cookie = \"tf-example\",\n            StickySessionType = \"Server\",\n        },\n        Servers = new[]\n        {\n            new AliCloud.Alb.Inputs.ServerGroupServerArgs\n            {\n                Description = name,\n                Port = 80,\n                ServerId = defaultInstance.Id,\n                ServerIp = defaultInstance.PrivateIp,\n                ServerType = \"Ecs\",\n                Weight = 10,\n            },\n        },\n    });\n\n    var defaultListener = new AliCloud.Alb.Listener(\"default\", new()\n    {\n        LoadBalancerId = defaultLoadBalancer.Id,\n        ListenerProtocol = \"HTTP\",\n        ListenerPort = 443,\n        ListenerDescription = name,\n        DefaultActions = new[]\n        {\n            new AliCloud.Alb.Inputs.ListenerDefaultActionArgs\n            {\n                Type = \"ForwardGroup\",\n                ForwardGroupConfig = new AliCloud.Alb.Inputs.ListenerDefaultActionForwardGroupConfigArgs\n                {\n                    ServerGroupTuples = new[]\n                    {\n                        new AliCloud.Alb.Inputs.ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs\n                        {\n                            ServerGroupId = defaultServerGroup.Id,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alb.GetZones(ctx, \u0026alb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"10.4.%d.0/24\",\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: fmt.Sprintf(\"%v%v\", name, \"_%d\"),\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar defaultSwitch []*vpc.Switch\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026vpc.SwitchArgs{\n\t\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\t\tCidrBlock:   pulumi.String(invokeFormat.Result),\n\t\t\t\tZoneId:      _default.Zones[val0].Id,\n\t\t\t\tVswitchName: pulumi.String(invokeFormat1.Result),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultSwitch = append(defaultSwitch, __res)\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(name),\n\t\t\tDescription:       pulumi.String(name),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultLoadBalancer, err := alb.NewLoadBalancer(ctx, \"default\", \u0026alb.LoadBalancerArgs{\n\t\t\tVpcId:                defaultNetwork.ID(),\n\t\t\tAddressType:          pulumi.String(\"Internet\"),\n\t\t\tAddressAllocatedMode: pulumi.String(\"Fixed\"),\n\t\t\tLoadBalancerName:     pulumi.String(name),\n\t\t\tLoadBalancerEdition:  pulumi.String(\"Basic\"),\n\t\t\tResourceGroupId:      pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tLoadBalancerBillingConfig: \u0026alb.LoadBalancerLoadBalancerBillingConfigArgs{\n\t\t\t\tPayType: pulumi.String(\"PayAsYouGo\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t\tZoneMappings: alb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch[0].ID(),\n\t\t\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t\t\t},\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch[1].ID(),\n\t\t\t\t\tZoneId:    pulumi.String(_default.Zones[1].Id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tModificationProtectionConfig: \u0026alb.LoadBalancerModificationProtectionConfigArgs{\n\t\t\t\tStatus: pulumi.String(\"NonProtection\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(_default.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(name),\n\t\t\tImageId:          pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId: defaultSwitch[0].ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultServerGroup, err := alb.NewServerGroup(ctx, \"default\", \u0026alb.ServerGroupArgs{\n\t\t\tProtocol:        pulumi.String(\"HTTP\"),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t\tServerGroupName: pulumi.String(name),\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tHealthCheckConfig: \u0026alb.ServerGroupHealthCheckConfigArgs{\n\t\t\t\tHealthCheckConnectPort: pulumi.Int(46325),\n\t\t\t\tHealthCheckEnabled:     pulumi.Bool(true),\n\t\t\t\tHealthCheckHost:        pulumi.String(\"tf-example.com\"),\n\t\t\t\tHealthCheckCodes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"http_2xx\"),\n\t\t\t\t\tpulumi.String(\"http_3xx\"),\n\t\t\t\t\tpulumi.String(\"http_4xx\"),\n\t\t\t\t},\n\t\t\t\tHealthCheckHttpVersion: pulumi.String(\"HTTP1.1\"),\n\t\t\t\tHealthCheckInterval:    pulumi.Int(2),\n\t\t\t\tHealthCheckMethod:      pulumi.String(\"HEAD\"),\n\t\t\t\tHealthCheckPath:        pulumi.String(\"/tf-example\"),\n\t\t\t\tHealthCheckProtocol:    pulumi.String(\"HTTP\"),\n\t\t\t\tHealthCheckTimeout:     pulumi.Int(5),\n\t\t\t\tHealthyThreshold:       pulumi.Int(3),\n\t\t\t\tUnhealthyThreshold:     pulumi.Int(3),\n\t\t\t},\n\t\t\tStickySessionConfig: \u0026alb.ServerGroupStickySessionConfigArgs{\n\t\t\t\tStickySessionEnabled: pulumi.Bool(true),\n\t\t\t\tCookie:               pulumi.String(\"tf-example\"),\n\t\t\t\tStickySessionType:    pulumi.String(\"Server\"),\n\t\t\t},\n\t\t\tServers: alb.ServerGroupServerArray{\n\t\t\t\t\u0026alb.ServerGroupServerArgs{\n\t\t\t\t\tDescription: pulumi.String(name),\n\t\t\t\t\tPort:        pulumi.Int(80),\n\t\t\t\t\tServerId:    defaultInstance.ID(),\n\t\t\t\t\tServerIp:    defaultInstance.PrivateIp,\n\t\t\t\t\tServerType:  pulumi.String(\"Ecs\"),\n\t\t\t\t\tWeight:      pulumi.Int(10),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alb.NewListener(ctx, \"default\", \u0026alb.ListenerArgs{\n\t\t\tLoadBalancerId:      defaultLoadBalancer.ID(),\n\t\t\tListenerProtocol:    pulumi.String(\"HTTP\"),\n\t\t\tListenerPort:        pulumi.Int(443),\n\t\t\tListenerDescription: pulumi.String(name),\n\t\t\tDefaultActions: alb.ListenerDefaultActionArray{\n\t\t\t\t\u0026alb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"ForwardGroup\"),\n\t\t\t\t\tForwardGroupConfig: \u0026alb.ListenerDefaultActionForwardGroupConfigArgs{\n\t\t\t\t\t\tServerGroupTuples: alb.ListenerDefaultActionForwardGroupConfigServerGroupTupleArray{\n\t\t\t\t\t\t\t\u0026alb.ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs{\n\t\t\t\t\t\t\t\tServerGroupId: defaultServerGroup.ID(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.alb.LoadBalancer;\nimport com.pulumi.alicloud.alb.LoadBalancerArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerLoadBalancerBillingConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerModificationProtectionConfigArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.alb.ServerGroup;\nimport com.pulumi.alicloud.alb.ServerGroupArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupHealthCheckConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupStickySessionConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupServerArgs;\nimport com.pulumi.alicloud.alb.Listener;\nimport com.pulumi.alicloud.alb.ListenerArgs;\nimport com.pulumi.alicloud.alb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.alicloud.alb.inputs.ListenerDefaultActionForwardGroupConfigArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Switch(\"defaultSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(defaultNetwork.id())\n                .cidrBlock(StdFunctions.format(FormatArgs.builder()\n                    .input(\"10.4.%d.0/24\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .zoneId(default_.zones()[range.value()].id())\n                .vswitchName(StdFunctions.format(FormatArgs.builder()\n                    .input(String.format(\"%s_%d\", name))\n                    .args(range.value() + 1)\n                    .build()).result())\n                .build());\n\n        \n}\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(name)\n            .description(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .addressType(\"Internet\")\n            .addressAllocatedMode(\"Fixed\")\n            .loadBalancerName(name)\n            .loadBalancerEdition(\"Basic\")\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .loadBalancerBillingConfig(LoadBalancerLoadBalancerBillingConfigArgs.builder()\n                .payType(\"PayAsYouGo\")\n                .build())\n            .tags(Map.of(\"Created\", \"TF\"))\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch[0].id())\n                    .zoneId(default_.zones()[0].id())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch[1].id())\n                    .zoneId(default_.zones()[1].id())\n                    .build())\n            .modificationProtectionConfig(LoadBalancerModificationProtectionConfigArgs.builder()\n                .status(\"NonProtection\")\n                .build())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .instanceName(name)\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.id())\n            .vswitchId(defaultSwitch[0].id())\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .protocol(\"HTTP\")\n            .vpcId(defaultNetwork.id())\n            .serverGroupName(name)\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .healthCheckConfig(ServerGroupHealthCheckConfigArgs.builder()\n                .healthCheckConnectPort(46325)\n                .healthCheckEnabled(true)\n                .healthCheckHost(\"tf-example.com\")\n                .healthCheckCodes(                \n                    \"http_2xx\",\n                    \"http_3xx\",\n                    \"http_4xx\")\n                .healthCheckHttpVersion(\"HTTP1.1\")\n                .healthCheckInterval(2)\n                .healthCheckMethod(\"HEAD\")\n                .healthCheckPath(\"/tf-example\")\n                .healthCheckProtocol(\"HTTP\")\n                .healthCheckTimeout(5)\n                .healthyThreshold(3)\n                .unhealthyThreshold(3)\n                .build())\n            .stickySessionConfig(ServerGroupStickySessionConfigArgs.builder()\n                .stickySessionEnabled(true)\n                .cookie(\"tf-example\")\n                .stickySessionType(\"Server\")\n                .build())\n            .servers(ServerGroupServerArgs.builder()\n                .description(name)\n                .port(80)\n                .serverId(defaultInstance.id())\n                .serverIp(defaultInstance.privateIp())\n                .serverType(\"Ecs\")\n                .weight(10)\n                .build())\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .loadBalancerId(defaultLoadBalancer.id())\n            .listenerProtocol(\"HTTP\")\n            .listenerPort(443)\n            .listenerDescription(name)\n            .defaultActions(ListenerDefaultActionArgs.builder()\n                .type(\"ForwardGroup\")\n                .forwardGroupConfig(ListenerDefaultActionForwardGroupConfigArgs.builder()\n                    .serverGroupTuples(ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs.builder()\n                        .serverGroupId(defaultServerGroup.id())\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Load Balancer (ALB) Listener can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alb/listener:Listener example \u003cid\u003e\n```\n\n","properties":{"accessLogRecordCustomizedHeadersEnabled":{"type":"boolean","description":"Access Log Whether to Enable Carry Custom Header Field. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default Value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n\u003e **NOTE:**  Only Instances outside the Security Group to Access the Log Switch \u003cspan pulumi-lang-nodejs=\"`accesslogenabled`\" pulumi-lang-dotnet=\"`Accesslogenabled`\" pulumi-lang-go=\"`accesslogenabled`\" pulumi-lang-python=\"`accesslogenabled`\" pulumi-lang-yaml=\"`accesslogenabled`\" pulumi-lang-java=\"`accesslogenabled`\"\u003e`accesslogenabled`\u003c/span\u003e Open, in Order to Set This Parameter to the \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"accessLogTracingConfig":{"$ref":"#/types/alicloud:alb/ListenerAccessLogTracingConfig:ListenerAccessLogTracingConfig","description":"Xtrace Configuration Information. See \u003cspan pulumi-lang-nodejs=\"`accessLogTracingConfig`\" pulumi-lang-dotnet=\"`AccessLogTracingConfig`\" pulumi-lang-go=\"`accessLogTracingConfig`\" pulumi-lang-python=\"`access_log_tracing_config`\" pulumi-lang-yaml=\"`accessLogTracingConfig`\" pulumi-lang-java=\"`accessLogTracingConfig`\"\u003e`access_log_tracing_config`\u003c/span\u003e below.\n"},"aclConfig":{"$ref":"#/types/alicloud:alb/ListenerAclConfig:ListenerAclConfig","description":"The configurations of the access control lists (ACLs). See \u003cspan pulumi-lang-nodejs=\"`aclConfig`\" pulumi-lang-dotnet=\"`AclConfig`\" pulumi-lang-go=\"`aclConfig`\" pulumi-lang-python=\"`acl_config`\" pulumi-lang-yaml=\"`aclConfig`\" pulumi-lang-java=\"`aclConfig`\"\u003e`acl_config`\u003c/span\u003e below for details. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`aclConfig`\" pulumi-lang-dotnet=\"`AclConfig`\" pulumi-lang-go=\"`aclConfig`\" pulumi-lang-python=\"`acl_config`\" pulumi-lang-yaml=\"`aclConfig`\" pulumi-lang-java=\"`aclConfig`\"\u003e`acl_config`\u003c/span\u003e has been deprecated from provider version 1.163.0, and it will be removed in the future version. Please use the new resource \u003cspan pulumi-lang-nodejs=\"`alicloud.alb.ListenerAclAttachment`\" pulumi-lang-dotnet=\"`alicloud.alb.ListenerAclAttachment`\" pulumi-lang-go=\"`alb.ListenerAclAttachment`\" pulumi-lang-python=\"`alb.ListenerAclAttachment`\" pulumi-lang-yaml=\"`alicloud.alb.ListenerAclAttachment`\" pulumi-lang-java=\"`alicloud.alb.ListenerAclAttachment`\"\u003e`alicloud.alb.ListenerAclAttachment`\u003c/span\u003e.,\n","deprecationMessage":"Field 'acl_config' has been deprecated from provider version 1.163.0 and it will be removed in the future version. Please use the new resource 'alicloud_alb_listener_acl_attachment'."},"caCertificates":{"type":"array","items":{"$ref":"#/types/alicloud:alb/ListenerCaCertificate:ListenerCaCertificate"},"description":"The list of certificates. See \u003cspan pulumi-lang-nodejs=\"`caCertificates`\" pulumi-lang-dotnet=\"`CaCertificates`\" pulumi-lang-go=\"`caCertificates`\" pulumi-lang-python=\"`ca_certificates`\" pulumi-lang-yaml=\"`caCertificates`\" pulumi-lang-java=\"`caCertificates`\"\u003e`ca_certificates`\u003c/span\u003e below.\n"},"caEnabled":{"type":"boolean","description":"Whether to turn on two-way authentication. Value:\n"},"certificates":{"$ref":"#/types/alicloud:alb/ListenerCertificates:ListenerCertificates","description":"The list of certificates. See \u003cspan pulumi-lang-nodejs=\"`certificates`\" pulumi-lang-dotnet=\"`Certificates`\" pulumi-lang-go=\"`certificates`\" pulumi-lang-python=\"`certificates`\" pulumi-lang-yaml=\"`certificates`\" pulumi-lang-java=\"`certificates`\"\u003e`certificates`\u003c/span\u003e below.\n"},"defaultActions":{"type":"array","items":{"$ref":"#/types/alicloud:alb/ListenerDefaultAction:ListenerDefaultAction"},"description":"The Default Rule Action List See \u003cspan pulumi-lang-nodejs=\"`defaultActions`\" pulumi-lang-dotnet=\"`DefaultActions`\" pulumi-lang-go=\"`defaultActions`\" pulumi-lang-python=\"`default_actions`\" pulumi-lang-yaml=\"`defaultActions`\" pulumi-lang-java=\"`defaultActions`\"\u003e`default_actions`\u003c/span\u003e below.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\n"},"gzipEnabled":{"type":"boolean","description":"Whether to Enable Gzip Compression, as a Specific File Type on a Compression. Valid Values: True Or False. Default Value: TRUE.\n"},"http2Enabled":{"type":"boolean","description":"Whether to Enable HTTP/2 Features. Valid Values: True Or False. Default Value: TRUE.\n"},"idleTimeout":{"type":"integer","description":"Specify the Connection Idle Timeout Value: 1 to 60 seconds.\n"},"listenerDescription":{"type":"string","description":"Set the IP Address of the Listened Description. Length Is from 2 to 256 Characters.\n"},"listenerPort":{"type":"integer","description":"The SLB Instance Front-End, and Those of the Ports Used. Value: 1~65535.\n"},"listenerProtocol":{"type":"string","description":"Snooping Protocols. Valid Values: HTTP, HTTPS Or QuIC.\n"},"loadBalancerId":{"type":"string","description":"The SLB Instance Id.\n"},"quicConfig":{"$ref":"#/types/alicloud:alb/ListenerQuicConfig:ListenerQuicConfig","description":"Configuration Associated with the QuIC Listening See \u003cspan pulumi-lang-nodejs=\"`quicConfig`\" pulumi-lang-dotnet=\"`QuicConfig`\" pulumi-lang-go=\"`quicConfig`\" pulumi-lang-python=\"`quic_config`\" pulumi-lang-yaml=\"`quicConfig`\" pulumi-lang-java=\"`quicConfig`\"\u003e`quic_config`\u003c/span\u003e below.\n"},"requestTimeout":{"type":"integer","description":"The Specified Request Timeout Time. Value: 1~180 Seconds. Default Value: 60 seconds. If the Timeout Time Within the Back-End Server Has Not Answered the SLB Will Give up Waiting, the Client Returns the HTTP 504 Error Code.\n"},"securityPolicyId":{"type":"string","description":"Security Policy\n"},"status":{"type":"string","description":"The Current IP Address of the Listened State\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"xForwardedForConfig":{"$ref":"#/types/alicloud:alb/ListenerXForwardedForConfig:ListenerXForwardedForConfig","description":"xforwardfor Related Attribute Configuration See \u003cspan pulumi-lang-nodejs=\"`xForwardedForConfig`\" pulumi-lang-dotnet=\"`XForwardedForConfig`\" pulumi-lang-go=\"`xForwardedForConfig`\" pulumi-lang-python=\"`x_forwarded_for_config`\" pulumi-lang-yaml=\"`xForwardedForConfig`\" pulumi-lang-java=\"`xForwardedForConfig`\"\u003e`x_forwarded_for_config`\u003c/span\u003e below.\n"}},"required":["aclConfig","defaultActions","gzipEnabled","http2Enabled","idleTimeout","listenerPort","listenerProtocol","loadBalancerId","quicConfig","requestTimeout","securityPolicyId","status","xForwardedForConfig"],"inputProperties":{"accessLogRecordCustomizedHeadersEnabled":{"type":"boolean","description":"Access Log Whether to Enable Carry Custom Header Field. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default Value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n\u003e **NOTE:**  Only Instances outside the Security Group to Access the Log Switch \u003cspan pulumi-lang-nodejs=\"`accesslogenabled`\" pulumi-lang-dotnet=\"`Accesslogenabled`\" pulumi-lang-go=\"`accesslogenabled`\" pulumi-lang-python=\"`accesslogenabled`\" pulumi-lang-yaml=\"`accesslogenabled`\" pulumi-lang-java=\"`accesslogenabled`\"\u003e`accesslogenabled`\u003c/span\u003e Open, in Order to Set This Parameter to the \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"accessLogTracingConfig":{"$ref":"#/types/alicloud:alb/ListenerAccessLogTracingConfig:ListenerAccessLogTracingConfig","description":"Xtrace Configuration Information. See \u003cspan pulumi-lang-nodejs=\"`accessLogTracingConfig`\" pulumi-lang-dotnet=\"`AccessLogTracingConfig`\" pulumi-lang-go=\"`accessLogTracingConfig`\" pulumi-lang-python=\"`access_log_tracing_config`\" pulumi-lang-yaml=\"`accessLogTracingConfig`\" pulumi-lang-java=\"`accessLogTracingConfig`\"\u003e`access_log_tracing_config`\u003c/span\u003e below.\n"},"aclConfig":{"$ref":"#/types/alicloud:alb/ListenerAclConfig:ListenerAclConfig","description":"The configurations of the access control lists (ACLs). See \u003cspan pulumi-lang-nodejs=\"`aclConfig`\" pulumi-lang-dotnet=\"`AclConfig`\" pulumi-lang-go=\"`aclConfig`\" pulumi-lang-python=\"`acl_config`\" pulumi-lang-yaml=\"`aclConfig`\" pulumi-lang-java=\"`aclConfig`\"\u003e`acl_config`\u003c/span\u003e below for details. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`aclConfig`\" pulumi-lang-dotnet=\"`AclConfig`\" pulumi-lang-go=\"`aclConfig`\" pulumi-lang-python=\"`acl_config`\" pulumi-lang-yaml=\"`aclConfig`\" pulumi-lang-java=\"`aclConfig`\"\u003e`acl_config`\u003c/span\u003e has been deprecated from provider version 1.163.0, and it will be removed in the future version. Please use the new resource \u003cspan pulumi-lang-nodejs=\"`alicloud.alb.ListenerAclAttachment`\" pulumi-lang-dotnet=\"`alicloud.alb.ListenerAclAttachment`\" pulumi-lang-go=\"`alb.ListenerAclAttachment`\" pulumi-lang-python=\"`alb.ListenerAclAttachment`\" pulumi-lang-yaml=\"`alicloud.alb.ListenerAclAttachment`\" pulumi-lang-java=\"`alicloud.alb.ListenerAclAttachment`\"\u003e`alicloud.alb.ListenerAclAttachment`\u003c/span\u003e.,\n","deprecationMessage":"Field 'acl_config' has been deprecated from provider version 1.163.0 and it will be removed in the future version. Please use the new resource 'alicloud_alb_listener_acl_attachment'."},"caCertificates":{"type":"array","items":{"$ref":"#/types/alicloud:alb/ListenerCaCertificate:ListenerCaCertificate"},"description":"The list of certificates. See \u003cspan pulumi-lang-nodejs=\"`caCertificates`\" pulumi-lang-dotnet=\"`CaCertificates`\" pulumi-lang-go=\"`caCertificates`\" pulumi-lang-python=\"`ca_certificates`\" pulumi-lang-yaml=\"`caCertificates`\" pulumi-lang-java=\"`caCertificates`\"\u003e`ca_certificates`\u003c/span\u003e below.\n"},"caEnabled":{"type":"boolean","description":"Whether to turn on two-way authentication. Value:\n"},"certificates":{"$ref":"#/types/alicloud:alb/ListenerCertificates:ListenerCertificates","description":"The list of certificates. See \u003cspan pulumi-lang-nodejs=\"`certificates`\" pulumi-lang-dotnet=\"`Certificates`\" pulumi-lang-go=\"`certificates`\" pulumi-lang-python=\"`certificates`\" pulumi-lang-yaml=\"`certificates`\" pulumi-lang-java=\"`certificates`\"\u003e`certificates`\u003c/span\u003e below.\n"},"defaultActions":{"type":"array","items":{"$ref":"#/types/alicloud:alb/ListenerDefaultAction:ListenerDefaultAction"},"description":"The Default Rule Action List See \u003cspan pulumi-lang-nodejs=\"`defaultActions`\" pulumi-lang-dotnet=\"`DefaultActions`\" pulumi-lang-go=\"`defaultActions`\" pulumi-lang-python=\"`default_actions`\" pulumi-lang-yaml=\"`defaultActions`\" pulumi-lang-java=\"`defaultActions`\"\u003e`default_actions`\u003c/span\u003e below.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\n"},"gzipEnabled":{"type":"boolean","description":"Whether to Enable Gzip Compression, as a Specific File Type on a Compression. Valid Values: True Or False. Default Value: TRUE.\n"},"http2Enabled":{"type":"boolean","description":"Whether to Enable HTTP/2 Features. Valid Values: True Or False. Default Value: TRUE.\n"},"idleTimeout":{"type":"integer","description":"Specify the Connection Idle Timeout Value: 1 to 60 seconds.\n"},"listenerDescription":{"type":"string","description":"Set the IP Address of the Listened Description. Length Is from 2 to 256 Characters.\n"},"listenerPort":{"type":"integer","description":"The SLB Instance Front-End, and Those of the Ports Used. Value: 1~65535.\n","willReplaceOnChanges":true},"listenerProtocol":{"type":"string","description":"Snooping Protocols. Valid Values: HTTP, HTTPS Or QuIC.\n","willReplaceOnChanges":true},"loadBalancerId":{"type":"string","description":"The SLB Instance Id.\n","willReplaceOnChanges":true},"quicConfig":{"$ref":"#/types/alicloud:alb/ListenerQuicConfig:ListenerQuicConfig","description":"Configuration Associated with the QuIC Listening See \u003cspan pulumi-lang-nodejs=\"`quicConfig`\" pulumi-lang-dotnet=\"`QuicConfig`\" pulumi-lang-go=\"`quicConfig`\" pulumi-lang-python=\"`quic_config`\" pulumi-lang-yaml=\"`quicConfig`\" pulumi-lang-java=\"`quicConfig`\"\u003e`quic_config`\u003c/span\u003e below.\n"},"requestTimeout":{"type":"integer","description":"The Specified Request Timeout Time. Value: 1~180 Seconds. Default Value: 60 seconds. If the Timeout Time Within the Back-End Server Has Not Answered the SLB Will Give up Waiting, the Client Returns the HTTP 504 Error Code.\n"},"securityPolicyId":{"type":"string","description":"Security Policy\n"},"status":{"type":"string","description":"The Current IP Address of the Listened State\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"xForwardedForConfig":{"$ref":"#/types/alicloud:alb/ListenerXForwardedForConfig:ListenerXForwardedForConfig","description":"xforwardfor Related Attribute Configuration See \u003cspan pulumi-lang-nodejs=\"`xForwardedForConfig`\" pulumi-lang-dotnet=\"`XForwardedForConfig`\" pulumi-lang-go=\"`xForwardedForConfig`\" pulumi-lang-python=\"`x_forwarded_for_config`\" pulumi-lang-yaml=\"`xForwardedForConfig`\" pulumi-lang-java=\"`xForwardedForConfig`\"\u003e`x_forwarded_for_config`\u003c/span\u003e below.\n"}},"requiredInputs":["defaultActions","listenerPort","listenerProtocol","loadBalancerId"],"stateInputs":{"description":"Input properties used for looking up and filtering Listener resources.\n","properties":{"accessLogRecordCustomizedHeadersEnabled":{"type":"boolean","description":"Access Log Whether to Enable Carry Custom Header Field. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default Value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n\u003e **NOTE:**  Only Instances outside the Security Group to Access the Log Switch \u003cspan pulumi-lang-nodejs=\"`accesslogenabled`\" pulumi-lang-dotnet=\"`Accesslogenabled`\" pulumi-lang-go=\"`accesslogenabled`\" pulumi-lang-python=\"`accesslogenabled`\" pulumi-lang-yaml=\"`accesslogenabled`\" pulumi-lang-java=\"`accesslogenabled`\"\u003e`accesslogenabled`\u003c/span\u003e Open, in Order to Set This Parameter to the \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"accessLogTracingConfig":{"$ref":"#/types/alicloud:alb/ListenerAccessLogTracingConfig:ListenerAccessLogTracingConfig","description":"Xtrace Configuration Information. See \u003cspan pulumi-lang-nodejs=\"`accessLogTracingConfig`\" pulumi-lang-dotnet=\"`AccessLogTracingConfig`\" pulumi-lang-go=\"`accessLogTracingConfig`\" pulumi-lang-python=\"`access_log_tracing_config`\" pulumi-lang-yaml=\"`accessLogTracingConfig`\" pulumi-lang-java=\"`accessLogTracingConfig`\"\u003e`access_log_tracing_config`\u003c/span\u003e below.\n"},"aclConfig":{"$ref":"#/types/alicloud:alb/ListenerAclConfig:ListenerAclConfig","description":"The configurations of the access control lists (ACLs). See \u003cspan pulumi-lang-nodejs=\"`aclConfig`\" pulumi-lang-dotnet=\"`AclConfig`\" pulumi-lang-go=\"`aclConfig`\" pulumi-lang-python=\"`acl_config`\" pulumi-lang-yaml=\"`aclConfig`\" pulumi-lang-java=\"`aclConfig`\"\u003e`acl_config`\u003c/span\u003e below for details. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`aclConfig`\" pulumi-lang-dotnet=\"`AclConfig`\" pulumi-lang-go=\"`aclConfig`\" pulumi-lang-python=\"`acl_config`\" pulumi-lang-yaml=\"`aclConfig`\" pulumi-lang-java=\"`aclConfig`\"\u003e`acl_config`\u003c/span\u003e has been deprecated from provider version 1.163.0, and it will be removed in the future version. Please use the new resource \u003cspan pulumi-lang-nodejs=\"`alicloud.alb.ListenerAclAttachment`\" pulumi-lang-dotnet=\"`alicloud.alb.ListenerAclAttachment`\" pulumi-lang-go=\"`alb.ListenerAclAttachment`\" pulumi-lang-python=\"`alb.ListenerAclAttachment`\" pulumi-lang-yaml=\"`alicloud.alb.ListenerAclAttachment`\" pulumi-lang-java=\"`alicloud.alb.ListenerAclAttachment`\"\u003e`alicloud.alb.ListenerAclAttachment`\u003c/span\u003e.,\n","deprecationMessage":"Field 'acl_config' has been deprecated from provider version 1.163.0 and it will be removed in the future version. Please use the new resource 'alicloud_alb_listener_acl_attachment'."},"caCertificates":{"type":"array","items":{"$ref":"#/types/alicloud:alb/ListenerCaCertificate:ListenerCaCertificate"},"description":"The list of certificates. See \u003cspan pulumi-lang-nodejs=\"`caCertificates`\" pulumi-lang-dotnet=\"`CaCertificates`\" pulumi-lang-go=\"`caCertificates`\" pulumi-lang-python=\"`ca_certificates`\" pulumi-lang-yaml=\"`caCertificates`\" pulumi-lang-java=\"`caCertificates`\"\u003e`ca_certificates`\u003c/span\u003e below.\n"},"caEnabled":{"type":"boolean","description":"Whether to turn on two-way authentication. Value:\n"},"certificates":{"$ref":"#/types/alicloud:alb/ListenerCertificates:ListenerCertificates","description":"The list of certificates. See \u003cspan pulumi-lang-nodejs=\"`certificates`\" pulumi-lang-dotnet=\"`Certificates`\" pulumi-lang-go=\"`certificates`\" pulumi-lang-python=\"`certificates`\" pulumi-lang-yaml=\"`certificates`\" pulumi-lang-java=\"`certificates`\"\u003e`certificates`\u003c/span\u003e below.\n"},"defaultActions":{"type":"array","items":{"$ref":"#/types/alicloud:alb/ListenerDefaultAction:ListenerDefaultAction"},"description":"The Default Rule Action List See \u003cspan pulumi-lang-nodejs=\"`defaultActions`\" pulumi-lang-dotnet=\"`DefaultActions`\" pulumi-lang-go=\"`defaultActions`\" pulumi-lang-python=\"`default_actions`\" pulumi-lang-yaml=\"`defaultActions`\" pulumi-lang-java=\"`defaultActions`\"\u003e`default_actions`\u003c/span\u003e below.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\n"},"gzipEnabled":{"type":"boolean","description":"Whether to Enable Gzip Compression, as a Specific File Type on a Compression. Valid Values: True Or False. Default Value: TRUE.\n"},"http2Enabled":{"type":"boolean","description":"Whether to Enable HTTP/2 Features. Valid Values: True Or False. Default Value: TRUE.\n"},"idleTimeout":{"type":"integer","description":"Specify the Connection Idle Timeout Value: 1 to 60 seconds.\n"},"listenerDescription":{"type":"string","description":"Set the IP Address of the Listened Description. Length Is from 2 to 256 Characters.\n"},"listenerPort":{"type":"integer","description":"The SLB Instance Front-End, and Those of the Ports Used. Value: 1~65535.\n","willReplaceOnChanges":true},"listenerProtocol":{"type":"string","description":"Snooping Protocols. Valid Values: HTTP, HTTPS Or QuIC.\n","willReplaceOnChanges":true},"loadBalancerId":{"type":"string","description":"The SLB Instance Id.\n","willReplaceOnChanges":true},"quicConfig":{"$ref":"#/types/alicloud:alb/ListenerQuicConfig:ListenerQuicConfig","description":"Configuration Associated with the QuIC Listening See \u003cspan pulumi-lang-nodejs=\"`quicConfig`\" pulumi-lang-dotnet=\"`QuicConfig`\" pulumi-lang-go=\"`quicConfig`\" pulumi-lang-python=\"`quic_config`\" pulumi-lang-yaml=\"`quicConfig`\" pulumi-lang-java=\"`quicConfig`\"\u003e`quic_config`\u003c/span\u003e below.\n"},"requestTimeout":{"type":"integer","description":"The Specified Request Timeout Time. Value: 1~180 Seconds. Default Value: 60 seconds. If the Timeout Time Within the Back-End Server Has Not Answered the SLB Will Give up Waiting, the Client Returns the HTTP 504 Error Code.\n"},"securityPolicyId":{"type":"string","description":"Security Policy\n"},"status":{"type":"string","description":"The Current IP Address of the Listened State\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"xForwardedForConfig":{"$ref":"#/types/alicloud:alb/ListenerXForwardedForConfig:ListenerXForwardedForConfig","description":"xforwardfor Related Attribute Configuration See \u003cspan pulumi-lang-nodejs=\"`xForwardedForConfig`\" pulumi-lang-dotnet=\"`XForwardedForConfig`\" pulumi-lang-go=\"`xForwardedForConfig`\" pulumi-lang-python=\"`x_forwarded_for_config`\" pulumi-lang-yaml=\"`xForwardedForConfig`\" pulumi-lang-java=\"`xForwardedForConfig`\"\u003e`x_forwarded_for_config`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:alb/listenerAclAttachment:ListenerAclAttachment":{"description":"Provides a ALB Listener Acl Attachment resource. Associating ACL to listening.\n\nFor information about ALB Listener Acl Attachment and how to use it, see [What is Listener Acl Attachment](https://www.alibabacloud.com/help/en/slb/application-load-balancer/developer-reference/api-alb-2020-06-16-associateaclswithlistener).\n\n\u003e **NOTE:** Available since v1.163.0.\n\n\u003e **NOTE:** You can associate at most three ACLs with a listener.\n\n\u003e **NOTE:** You can only configure either a whitelist or a blacklist for listener, not at the same time.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.alb.getZones({});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultSwitch.push(new alicloud.vpc.Switch(`default-${range.value}`, {\n        vpcId: defaultNetwork.id,\n        cidrBlock: std.format({\n            input: \"10.4.%d.0/24\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        zoneId: _default.then(_default =\u003e _default.zones[range.value + 3].id),\n        vswitchName: std.format({\n            input: `${name}_%d`,\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst defaultLoadBalancer = new alicloud.alb.LoadBalancer(\"default\", {\n    vpcId: defaultNetwork.id,\n    addressType: \"Internet\",\n    addressAllocatedMode: \"Fixed\",\n    loadBalancerName: name,\n    loadBalancerEdition: \"Standard\",\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    loadBalancerBillingConfig: {\n        payType: \"PayAsYouGo\",\n    },\n    tags: {\n        Created: \"TF\",\n    },\n    zoneMappings: [\n        {\n            vswitchId: defaultSwitch[0].id,\n            zoneId: defaultSwitch[0].zoneId,\n        },\n        {\n            vswitchId: defaultSwitch[1].id,\n            zoneId: defaultSwitch[1].zoneId,\n        },\n    ],\n});\nconst defaultServerGroup = new alicloud.alb.ServerGroup(\"default\", {\n    protocol: \"HTTP\",\n    vpcId: defaultNetwork.id,\n    serverGroupName: name,\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    healthCheckConfig: {\n        healthCheckEnabled: false,\n    },\n    stickySessionConfig: {\n        stickySessionEnabled: false,\n    },\n    tags: {\n        Created: \"TF\",\n    },\n});\nconst defaultListener = new alicloud.alb.Listener(\"default\", {\n    loadBalancerId: defaultLoadBalancer.id,\n    listenerProtocol: \"HTTP\",\n    listenerPort: 80,\n    listenerDescription: name,\n    defaultActions: [{\n        type: \"ForwardGroup\",\n        forwardGroupConfig: {\n            serverGroupTuples: [{\n                serverGroupId: defaultServerGroup.id,\n            }],\n        },\n    }],\n});\nconst defaultAcl = new alicloud.alb.Acl(\"default\", {\n    aclName: name,\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n});\nconst defaultAclEntryAttachment = new alicloud.alb.AclEntryAttachment(\"default\", {\n    aclId: defaultAcl.id,\n    entry: \"10.0.0.0/24\",\n    description: name,\n});\nconst defaultListenerAclAttachment = new alicloud.alb.ListenerAclAttachment(\"default\", {\n    aclId: defaultAcl.id,\n    listenerId: defaultListener.id,\n    aclType: \"White\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.alb.get_zones()\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_switch.append(alicloud.vpc.Switch(f\"default-{range['value']}\",\n        vpc_id=default_network.id,\n        cidr_block=std.format(input=\"10.4.%d.0/24\",\n            args=[range[\"value\"] + 1]).result,\n        zone_id=default.zones[range[\"value\"] + 3].id,\n        vswitch_name=std.format(input=f\"{name}_%d\",\n            args=[range[\"value\"] + 1]).result))\ndefault_load_balancer = alicloud.alb.LoadBalancer(\"default\",\n    vpc_id=default_network.id,\n    address_type=\"Internet\",\n    address_allocated_mode=\"Fixed\",\n    load_balancer_name=name,\n    load_balancer_edition=\"Standard\",\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    load_balancer_billing_config={\n        \"pay_type\": \"PayAsYouGo\",\n    },\n    tags={\n        \"Created\": \"TF\",\n    },\n    zone_mappings=[\n        {\n            \"vswitch_id\": default_switch[0].id,\n            \"zone_id\": default_switch[0].zone_id,\n        },\n        {\n            \"vswitch_id\": default_switch[1].id,\n            \"zone_id\": default_switch[1].zone_id,\n        },\n    ])\ndefault_server_group = alicloud.alb.ServerGroup(\"default\",\n    protocol=\"HTTP\",\n    vpc_id=default_network.id,\n    server_group_name=name,\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    health_check_config={\n        \"health_check_enabled\": False,\n    },\n    sticky_session_config={\n        \"sticky_session_enabled\": False,\n    },\n    tags={\n        \"Created\": \"TF\",\n    })\ndefault_listener = alicloud.alb.Listener(\"default\",\n    load_balancer_id=default_load_balancer.id,\n    listener_protocol=\"HTTP\",\n    listener_port=80,\n    listener_description=name,\n    default_actions=[{\n        \"type\": \"ForwardGroup\",\n        \"forward_group_config\": {\n            \"server_group_tuples\": [{\n                \"server_group_id\": default_server_group.id,\n            }],\n        },\n    }])\ndefault_acl = alicloud.alb.Acl(\"default\",\n    acl_name=name,\n    resource_group_id=default_get_resource_groups.groups[0].id)\ndefault_acl_entry_attachment = alicloud.alb.AclEntryAttachment(\"default\",\n    acl_id=default_acl.id,\n    entry=\"10.0.0.0/24\",\n    description=name)\ndefault_listener_acl_attachment = alicloud.alb.ListenerAclAttachment(\"default\",\n    acl_id=default_acl.id,\n    listener_id=default_listener.id,\n    acl_type=\"White\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.Alb.GetZones.Invoke();\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSwitch.Add(new AliCloud.Vpc.Switch($\"default-{range.Value}\", new()\n        {\n            VpcId = defaultNetwork.Id,\n            CidrBlock = Std.Format.Invoke(new()\n            {\n                Input = \"10.4.%d.0/24\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[range.Value + 3].Id),\n            VswitchName = Std.Format.Invoke(new()\n            {\n                Input = $\"{name}_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var defaultLoadBalancer = new AliCloud.Alb.LoadBalancer(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        AddressType = \"Internet\",\n        AddressAllocatedMode = \"Fixed\",\n        LoadBalancerName = name,\n        LoadBalancerEdition = \"Standard\",\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        LoadBalancerBillingConfig = new AliCloud.Alb.Inputs.LoadBalancerLoadBalancerBillingConfigArgs\n        {\n            PayType = \"PayAsYouGo\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n        ZoneMappings = new[]\n        {\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch[0].Id,\n                ZoneId = defaultSwitch[0].ZoneId,\n            },\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch[1].Id,\n                ZoneId = defaultSwitch[1].ZoneId,\n            },\n        },\n    });\n\n    var defaultServerGroup = new AliCloud.Alb.ServerGroup(\"default\", new()\n    {\n        Protocol = \"HTTP\",\n        VpcId = defaultNetwork.Id,\n        ServerGroupName = name,\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        HealthCheckConfig = new AliCloud.Alb.Inputs.ServerGroupHealthCheckConfigArgs\n        {\n            HealthCheckEnabled = false,\n        },\n        StickySessionConfig = new AliCloud.Alb.Inputs.ServerGroupStickySessionConfigArgs\n        {\n            StickySessionEnabled = false,\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n    });\n\n    var defaultListener = new AliCloud.Alb.Listener(\"default\", new()\n    {\n        LoadBalancerId = defaultLoadBalancer.Id,\n        ListenerProtocol = \"HTTP\",\n        ListenerPort = 80,\n        ListenerDescription = name,\n        DefaultActions = new[]\n        {\n            new AliCloud.Alb.Inputs.ListenerDefaultActionArgs\n            {\n                Type = \"ForwardGroup\",\n                ForwardGroupConfig = new AliCloud.Alb.Inputs.ListenerDefaultActionForwardGroupConfigArgs\n                {\n                    ServerGroupTuples = new[]\n                    {\n                        new AliCloud.Alb.Inputs.ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs\n                        {\n                            ServerGroupId = defaultServerGroup.Id,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var defaultAcl = new AliCloud.Alb.Acl(\"default\", new()\n    {\n        AclName = name,\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n    });\n\n    var defaultAclEntryAttachment = new AliCloud.Alb.AclEntryAttachment(\"default\", new()\n    {\n        AclId = defaultAcl.Id,\n        Entry = \"10.0.0.0/24\",\n        Description = name,\n    });\n\n    var defaultListenerAclAttachment = new AliCloud.Alb.ListenerAclAttachment(\"default\", new()\n    {\n        AclId = defaultAcl.Id,\n        ListenerId = defaultListener.Id,\n        AclType = \"White\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alb.GetZones(ctx, \u0026alb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"10.4.%d.0/24\",\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: fmt.Sprintf(\"%v%v\", name, \"_%d\"),\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar defaultSwitch []*vpc.Switch\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026vpc.SwitchArgs{\n\t\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\t\tCidrBlock:   pulumi.String(invokeFormat.Result),\n\t\t\t\tZoneId:      _default.Zones[val0+3].Id,\n\t\t\t\tVswitchName: pulumi.String(invokeFormat1.Result),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultSwitch = append(defaultSwitch, __res)\n\t\t}\n\t\tdefaultLoadBalancer, err := alb.NewLoadBalancer(ctx, \"default\", \u0026alb.LoadBalancerArgs{\n\t\t\tVpcId:                defaultNetwork.ID(),\n\t\t\tAddressType:          pulumi.String(\"Internet\"),\n\t\t\tAddressAllocatedMode: pulumi.String(\"Fixed\"),\n\t\t\tLoadBalancerName:     pulumi.String(name),\n\t\t\tLoadBalancerEdition:  pulumi.String(\"Standard\"),\n\t\t\tResourceGroupId:      pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tLoadBalancerBillingConfig: \u0026alb.LoadBalancerLoadBalancerBillingConfigArgs{\n\t\t\t\tPayType: pulumi.String(\"PayAsYouGo\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t\tZoneMappings: alb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch[0].ID(),\n\t\t\t\t\tZoneId:    defaultSwitch[0].ZoneId,\n\t\t\t\t},\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch[1].ID(),\n\t\t\t\t\tZoneId:    defaultSwitch[1].ZoneId,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultServerGroup, err := alb.NewServerGroup(ctx, \"default\", \u0026alb.ServerGroupArgs{\n\t\t\tProtocol:        pulumi.String(\"HTTP\"),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t\tServerGroupName: pulumi.String(name),\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tHealthCheckConfig: \u0026alb.ServerGroupHealthCheckConfigArgs{\n\t\t\t\tHealthCheckEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tStickySessionConfig: \u0026alb.ServerGroupStickySessionConfigArgs{\n\t\t\t\tStickySessionEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultListener, err := alb.NewListener(ctx, \"default\", \u0026alb.ListenerArgs{\n\t\t\tLoadBalancerId:      defaultLoadBalancer.ID(),\n\t\t\tListenerProtocol:    pulumi.String(\"HTTP\"),\n\t\t\tListenerPort:        pulumi.Int(80),\n\t\t\tListenerDescription: pulumi.String(name),\n\t\t\tDefaultActions: alb.ListenerDefaultActionArray{\n\t\t\t\t\u0026alb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"ForwardGroup\"),\n\t\t\t\t\tForwardGroupConfig: \u0026alb.ListenerDefaultActionForwardGroupConfigArgs{\n\t\t\t\t\t\tServerGroupTuples: alb.ListenerDefaultActionForwardGroupConfigServerGroupTupleArray{\n\t\t\t\t\t\t\t\u0026alb.ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs{\n\t\t\t\t\t\t\t\tServerGroupId: defaultServerGroup.ID(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAcl, err := alb.NewAcl(ctx, \"default\", \u0026alb.AclArgs{\n\t\t\tAclName:         pulumi.String(name),\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alb.NewAclEntryAttachment(ctx, \"default\", \u0026alb.AclEntryAttachmentArgs{\n\t\t\tAclId:       defaultAcl.ID(),\n\t\t\tEntry:       pulumi.String(\"10.0.0.0/24\"),\n\t\t\tDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alb.NewListenerAclAttachment(ctx, \"default\", \u0026alb.ListenerAclAttachmentArgs{\n\t\t\tAclId:      defaultAcl.ID(),\n\t\t\tListenerId: defaultListener.ID(),\n\t\t\tAclType:    pulumi.String(\"White\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.alb.LoadBalancer;\nimport com.pulumi.alicloud.alb.LoadBalancerArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerLoadBalancerBillingConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.alb.ServerGroup;\nimport com.pulumi.alicloud.alb.ServerGroupArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupHealthCheckConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupStickySessionConfigArgs;\nimport com.pulumi.alicloud.alb.Listener;\nimport com.pulumi.alicloud.alb.ListenerArgs;\nimport com.pulumi.alicloud.alb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.alicloud.alb.inputs.ListenerDefaultActionForwardGroupConfigArgs;\nimport com.pulumi.alicloud.alb.Acl;\nimport com.pulumi.alicloud.alb.AclArgs;\nimport com.pulumi.alicloud.alb.AclEntryAttachment;\nimport com.pulumi.alicloud.alb.AclEntryAttachmentArgs;\nimport com.pulumi.alicloud.alb.ListenerAclAttachment;\nimport com.pulumi.alicloud.alb.ListenerAclAttachmentArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Switch(\"defaultSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(defaultNetwork.id())\n                .cidrBlock(StdFunctions.format(FormatArgs.builder()\n                    .input(\"10.4.%d.0/24\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .zoneId(default_.zones()[range.value() + 3].id())\n                .vswitchName(StdFunctions.format(FormatArgs.builder()\n                    .input(String.format(\"%s_%d\", name))\n                    .args(range.value() + 1)\n                    .build()).result())\n                .build());\n\n        \n}\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .addressType(\"Internet\")\n            .addressAllocatedMode(\"Fixed\")\n            .loadBalancerName(name)\n            .loadBalancerEdition(\"Standard\")\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .loadBalancerBillingConfig(LoadBalancerLoadBalancerBillingConfigArgs.builder()\n                .payType(\"PayAsYouGo\")\n                .build())\n            .tags(Map.of(\"Created\", \"TF\"))\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch[0].id())\n                    .zoneId(defaultSwitch[0].zoneId())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch[1].id())\n                    .zoneId(defaultSwitch[1].zoneId())\n                    .build())\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .protocol(\"HTTP\")\n            .vpcId(defaultNetwork.id())\n            .serverGroupName(name)\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .healthCheckConfig(ServerGroupHealthCheckConfigArgs.builder()\n                .healthCheckEnabled(false)\n                .build())\n            .stickySessionConfig(ServerGroupStickySessionConfigArgs.builder()\n                .stickySessionEnabled(false)\n                .build())\n            .tags(Map.of(\"Created\", \"TF\"))\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .loadBalancerId(defaultLoadBalancer.id())\n            .listenerProtocol(\"HTTP\")\n            .listenerPort(80)\n            .listenerDescription(name)\n            .defaultActions(ListenerDefaultActionArgs.builder()\n                .type(\"ForwardGroup\")\n                .forwardGroupConfig(ListenerDefaultActionForwardGroupConfigArgs.builder()\n                    .serverGroupTuples(ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs.builder()\n                        .serverGroupId(defaultServerGroup.id())\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var defaultAcl = new Acl(\"defaultAcl\", AclArgs.builder()\n            .aclName(name)\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .build());\n\n        var defaultAclEntryAttachment = new AclEntryAttachment(\"defaultAclEntryAttachment\", AclEntryAttachmentArgs.builder()\n            .aclId(defaultAcl.id())\n            .entry(\"10.0.0.0/24\")\n            .description(name)\n            .build());\n\n        var defaultListenerAclAttachment = new ListenerAclAttachment(\"defaultListenerAclAttachment\", ListenerAclAttachmentArgs.builder()\n            .aclId(defaultAcl.id())\n            .listenerId(defaultListener.id())\n            .aclType(\"White\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nALB Listener Acl Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alb/listenerAclAttachment:ListenerAclAttachment example \u003clistener_id\u003e:\u003cacl_id\u003e\n```\n\n","properties":{"aclId":{"type":"string","description":"The ID list of the access policy group bound by the listener.\n"},"aclType":{"type":"string","description":"Access control type:\n- **White**: only requests from IP addresses or address segments in the selected access control list are forwarded. The whitelist applies to scenarios where only specific IP addresses are allowed to access. There are certain business risks in setting up a whitelist. Once the whitelist is set, only the IP addresses in the whitelist can access the load balancer listener. If whitelist access is enabled but no IP addresses are added to the access policy group, the server load balancer listener forwards all requests.\n- **Black**: All requests from IP addresses or address segments in the selected access control list are not forwarded. Blacklists are applicable to scenarios where only certain IP addresses are restricted. If blacklist access is enabled and no IP is added to the access policy group, the server load balancer listener forwards all requests.\n"},"listenerId":{"type":"string","description":"Listener instance ID.\n"},"status":{"type":"string","description":"Listener Status.\n"}},"required":["aclId","aclType","listenerId","status"],"inputProperties":{"aclId":{"type":"string","description":"The ID list of the access policy group bound by the listener.\n","willReplaceOnChanges":true},"aclType":{"type":"string","description":"Access control type:\n- **White**: only requests from IP addresses or address segments in the selected access control list are forwarded. The whitelist applies to scenarios where only specific IP addresses are allowed to access. There are certain business risks in setting up a whitelist. Once the whitelist is set, only the IP addresses in the whitelist can access the load balancer listener. If whitelist access is enabled but no IP addresses are added to the access policy group, the server load balancer listener forwards all requests.\n- **Black**: All requests from IP addresses or address segments in the selected access control list are not forwarded. Blacklists are applicable to scenarios where only certain IP addresses are restricted. If blacklist access is enabled and no IP is added to the access policy group, the server load balancer listener forwards all requests.\n","willReplaceOnChanges":true},"listenerId":{"type":"string","description":"Listener instance ID.\n","willReplaceOnChanges":true}},"requiredInputs":["aclId","aclType","listenerId"],"stateInputs":{"description":"Input properties used for looking up and filtering ListenerAclAttachment resources.\n","properties":{"aclId":{"type":"string","description":"The ID list of the access policy group bound by the listener.\n","willReplaceOnChanges":true},"aclType":{"type":"string","description":"Access control type:\n- **White**: only requests from IP addresses or address segments in the selected access control list are forwarded. The whitelist applies to scenarios where only specific IP addresses are allowed to access. There are certain business risks in setting up a whitelist. Once the whitelist is set, only the IP addresses in the whitelist can access the load balancer listener. If whitelist access is enabled but no IP addresses are added to the access policy group, the server load balancer listener forwards all requests.\n- **Black**: All requests from IP addresses or address segments in the selected access control list are not forwarded. Blacklists are applicable to scenarios where only certain IP addresses are restricted. If blacklist access is enabled and no IP is added to the access policy group, the server load balancer listener forwards all requests.\n","willReplaceOnChanges":true},"listenerId":{"type":"string","description":"Listener instance ID.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Listener Status.\n"}},"type":"object"}},"alicloud:alb/listenerAdditionalCertificateAttachment:ListenerAdditionalCertificateAttachment":{"description":"Provides a Application Load Balancer (ALB) Listener Additional Certificate Attachment resource.\n\nFor information about Application Load Balancer (ALB) Listener Additional Certificate Attachment and how to use it, see [What is Listener Additional Certificate Attachment](https://www.alibabacloud.com/help/en/slb/application-load-balancer/developer-reference/api-alb-2020-06-16-associateadditionalcertificateswithlistener).\n\n\u003e **NOTE:** Available since v1.161.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.alb.getZones({});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultSwitch.push(new alicloud.vpc.Switch(`default-${range.value}`, {\n        vpcId: defaultNetwork.id,\n        cidrBlock: std.format({\n            input: \"10.4.%d.0/24\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        zoneId: _default.then(_default =\u003e _default.zones[range.value].id),\n        vswitchName: std.format({\n            input: `${name}_%d`,\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst defaultLoadBalancer = new alicloud.alb.LoadBalancer(\"default\", {\n    vpcId: defaultNetwork.id,\n    addressType: \"Internet\",\n    addressAllocatedMode: \"Fixed\",\n    loadBalancerName: name,\n    loadBalancerEdition: \"Standard\",\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    loadBalancerBillingConfig: {\n        payType: \"PayAsYouGo\",\n    },\n    tags: {\n        Created: \"TF\",\n    },\n    zoneMappings: [\n        {\n            vswitchId: defaultSwitch[0].id,\n            zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n        },\n        {\n            vswitchId: defaultSwitch[1].id,\n            zoneId: _default.then(_default =\u003e _default.zones?.[1]?.id),\n        },\n    ],\n});\nconst defaultServerGroup = new alicloud.alb.ServerGroup(\"default\", {\n    protocol: \"HTTP\",\n    vpcId: defaultNetwork.id,\n    serverGroupName: name,\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    healthCheckConfig: {\n        healthCheckEnabled: false,\n    },\n    stickySessionConfig: {\n        stickySessionEnabled: false,\n    },\n    tags: {\n        Created: \"TF\",\n    },\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultServiceCertificate: alicloud.cas.ServiceCertificate[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultServiceCertificate.push(new alicloud.cas.ServiceCertificate(`default-${range.value}`, {\n        certificateName: std.join({\n            separator: \"-\",\n            input: [\n                name,\n                defaultInteger.result,\n                range.value,\n            ],\n        }).then(invoke =\u003e invoke.result),\n        cert: `-----BEGIN CERTIFICATE-----\nMIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\nTjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\nVQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\nMjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\nEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\nY5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\nN4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\nHAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\nrkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n+arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\nZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\nBBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\nS7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\nAC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\nTTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\nDPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n-----END CERTIFICATE-----\n`,\n        key: `-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\nrhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\nBpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\np2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n+axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\nn8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n/1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\ndIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\nYmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\nLfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\nGOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\nncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\nXWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\ni9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\nrNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\ng1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\nAvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\nZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\nAMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\nCIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\nLILJ+e7bLw8RrM0HfgFnl8c=\n-----END PRIVATE KEY-----\n`,\n    }));\n}\nconst defaultListener = new alicloud.alb.Listener(\"default\", {\n    loadBalancerId: defaultLoadBalancer.id,\n    listenerProtocol: \"HTTPS\",\n    listenerPort: 8081,\n    listenerDescription: name,\n    defaultActions: [{\n        type: \"ForwardGroup\",\n        forwardGroupConfig: {\n            serverGroupTuples: [{\n                serverGroupId: defaultServerGroup.id,\n            }],\n        },\n    }],\n    certificates: {\n        certificateId: std.joinOutput({\n            separator: \"\",\n            input: [\n                defaultServiceCertificate[0].id,\n                \"-cn-hangzhou\",\n            ],\n        }).apply(invoke =\u003e invoke.result),\n    },\n});\nconst defaultListenerAdditionalCertificateAttachment = new alicloud.alb.ListenerAdditionalCertificateAttachment(\"default\", {\n    certificateId: std.joinOutput({\n        separator: \"\",\n        input: [\n            defaultServiceCertificate[1].id,\n            \"-cn-hangzhou\",\n        ],\n    }).apply(invoke =\u003e invoke.result),\n    listenerId: defaultListener.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.alb.get_zones()\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_switch.append(alicloud.vpc.Switch(f\"default-{range['value']}\",\n        vpc_id=default_network.id,\n        cidr_block=std.format(input=\"10.4.%d.0/24\",\n            args=[range[\"value\"] + 1]).result,\n        zone_id=default.zones[range[\"value\"]].id,\n        vswitch_name=std.format(input=f\"{name}_%d\",\n            args=[range[\"value\"] + 1]).result))\ndefault_load_balancer = alicloud.alb.LoadBalancer(\"default\",\n    vpc_id=default_network.id,\n    address_type=\"Internet\",\n    address_allocated_mode=\"Fixed\",\n    load_balancer_name=name,\n    load_balancer_edition=\"Standard\",\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    load_balancer_billing_config={\n        \"pay_type\": \"PayAsYouGo\",\n    },\n    tags={\n        \"Created\": \"TF\",\n    },\n    zone_mappings=[\n        {\n            \"vswitch_id\": default_switch[0].id,\n            \"zone_id\": default.zones[0].id,\n        },\n        {\n            \"vswitch_id\": default_switch[1].id,\n            \"zone_id\": default.zones[1].id,\n        },\n    ])\ndefault_server_group = alicloud.alb.ServerGroup(\"default\",\n    protocol=\"HTTP\",\n    vpc_id=default_network.id,\n    server_group_name=name,\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    health_check_config={\n        \"health_check_enabled\": False,\n    },\n    sticky_session_config={\n        \"sticky_session_enabled\": False,\n    },\n    tags={\n        \"Created\": \"TF\",\n    })\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_service_certificate = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_service_certificate.append(alicloud.cas.ServiceCertificate(f\"default-{range['value']}\",\n        certificate_name=std.join(separator=\"-\",\n            input=[\n                name,\n                default_integer[\"result\"],\n                range[\"value\"],\n            ]).result,\n        cert=\"\"\"-----BEGIN CERTIFICATE-----\nMIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\nTjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\nVQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\nMjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\nEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\nY5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\nN4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\nHAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\nrkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n+arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\nZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\nBBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\nS7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\nAC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\nTTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\nDPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n-----END CERTIFICATE-----\n\"\"\",\n        key=\"\"\"-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\nrhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\nBpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\np2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n+axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\nn8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n/1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\ndIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\nYmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\nLfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\nGOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\nncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\nXWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\ni9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\nrNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\ng1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\nAvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\nZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\nAMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\nCIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\nLILJ+e7bLw8RrM0HfgFnl8c=\n-----END PRIVATE KEY-----\n\"\"\"))\ndefault_listener = alicloud.alb.Listener(\"default\",\n    load_balancer_id=default_load_balancer.id,\n    listener_protocol=\"HTTPS\",\n    listener_port=8081,\n    listener_description=name,\n    default_actions=[{\n        \"type\": \"ForwardGroup\",\n        \"forward_group_config\": {\n            \"server_group_tuples\": [{\n                \"server_group_id\": default_server_group.id,\n            }],\n        },\n    }],\n    certificates={\n        \"certificate_id\": std.join_output(separator=\"\",\n            input=[\n                default_service_certificate[0].id,\n                \"-cn-hangzhou\",\n            ]).apply(lambda invoke: invoke.result),\n    })\ndefault_listener_additional_certificate_attachment = alicloud.alb.ListenerAdditionalCertificateAttachment(\"default\",\n    certificate_id=std.join_output(separator=\"\",\n        input=[\n            default_service_certificate[1].id,\n            \"-cn-hangzhou\",\n        ]).apply(lambda invoke: invoke.result),\n    listener_id=default_listener.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.Alb.GetZones.Invoke();\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSwitch.Add(new AliCloud.Vpc.Switch($\"default-{range.Value}\", new()\n        {\n            VpcId = defaultNetwork.Id,\n            CidrBlock = Std.Format.Invoke(new()\n            {\n                Input = \"10.4.%d.0/24\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[range.Value].Id),\n            VswitchName = Std.Format.Invoke(new()\n            {\n                Input = $\"{name}_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var defaultLoadBalancer = new AliCloud.Alb.LoadBalancer(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        AddressType = \"Internet\",\n        AddressAllocatedMode = \"Fixed\",\n        LoadBalancerName = name,\n        LoadBalancerEdition = \"Standard\",\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        LoadBalancerBillingConfig = new AliCloud.Alb.Inputs.LoadBalancerLoadBalancerBillingConfigArgs\n        {\n            PayType = \"PayAsYouGo\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n        ZoneMappings = new[]\n        {\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch[0].Id,\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n            },\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch[1].Id,\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id)),\n            },\n        },\n    });\n\n    var defaultServerGroup = new AliCloud.Alb.ServerGroup(\"default\", new()\n    {\n        Protocol = \"HTTP\",\n        VpcId = defaultNetwork.Id,\n        ServerGroupName = name,\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        HealthCheckConfig = new AliCloud.Alb.Inputs.ServerGroupHealthCheckConfigArgs\n        {\n            HealthCheckEnabled = false,\n        },\n        StickySessionConfig = new AliCloud.Alb.Inputs.ServerGroupStickySessionConfigArgs\n        {\n            StickySessionEnabled = false,\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultServiceCertificate = new List\u003cAliCloud.Cas.ServiceCertificate\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultServiceCertificate.Add(new AliCloud.Cas.ServiceCertificate($\"default-{range.Value}\", new()\n        {\n            CertificateName = Std.Join.Invoke(new()\n            {\n                Separator = \"-\",\n                Input = new[]\n                {\n                    name,\n                    defaultInteger.Result,\n                    range.Value,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            Cert = @\"-----BEGIN CERTIFICATE-----\nMIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\nTjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\nVQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\nMjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\nEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\nY5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\nN4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\nHAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\nrkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n+arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\nZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\nBBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\nS7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\nAC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\nTTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\nDPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n-----END CERTIFICATE-----\n\",\n            Key = @\"-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\nrhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\nBpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\np2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n+axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\nn8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n/1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\ndIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\nYmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\nLfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\nGOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\nncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\nXWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\ni9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\nrNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\ng1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\nAvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\nZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\nAMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\nCIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\nLILJ+e7bLw8RrM0HfgFnl8c=\n-----END PRIVATE KEY-----\n\",\n        }));\n    }\n    var defaultListener = new AliCloud.Alb.Listener(\"default\", new()\n    {\n        LoadBalancerId = defaultLoadBalancer.Id,\n        ListenerProtocol = \"HTTPS\",\n        ListenerPort = 8081,\n        ListenerDescription = name,\n        DefaultActions = new[]\n        {\n            new AliCloud.Alb.Inputs.ListenerDefaultActionArgs\n            {\n                Type = \"ForwardGroup\",\n                ForwardGroupConfig = new AliCloud.Alb.Inputs.ListenerDefaultActionForwardGroupConfigArgs\n                {\n                    ServerGroupTuples = new[]\n                    {\n                        new AliCloud.Alb.Inputs.ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs\n                        {\n                            ServerGroupId = defaultServerGroup.Id,\n                        },\n                    },\n                },\n            },\n        },\n        Certificates = new AliCloud.Alb.Inputs.ListenerCertificatesArgs\n        {\n            CertificateId = Std.Join.Invoke(new()\n            {\n                Separator = \"\",\n                Input = new[]\n                {\n                    defaultServiceCertificate[0].Id,\n                    \"-cn-hangzhou\",\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        },\n    });\n\n    var defaultListenerAdditionalCertificateAttachment = new AliCloud.Alb.ListenerAdditionalCertificateAttachment(\"default\", new()\n    {\n        CertificateId = Std.Join.Invoke(new()\n        {\n            Separator = \"\",\n            Input = new[]\n            {\n                defaultServiceCertificate[1].Id,\n                \"-cn-hangzhou\",\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        ListenerId = defaultListener.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alb.GetZones(ctx, \u0026alb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"10.4.%d.0/24\",\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: fmt.Sprintf(\"%v%v\", name, \"_%d\"),\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar defaultSwitch []*vpc.Switch\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026vpc.SwitchArgs{\n\t\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\t\tCidrBlock:   pulumi.String(invokeFormat.Result),\n\t\t\t\tZoneId:      _default.Zones[val0].Id,\n\t\t\t\tVswitchName: pulumi.String(invokeFormat1.Result),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultSwitch = append(defaultSwitch, __res)\n\t\t}\n\t\tdefaultLoadBalancer, err := alb.NewLoadBalancer(ctx, \"default\", \u0026alb.LoadBalancerArgs{\n\t\t\tVpcId:                defaultNetwork.ID(),\n\t\t\tAddressType:          pulumi.String(\"Internet\"),\n\t\t\tAddressAllocatedMode: pulumi.String(\"Fixed\"),\n\t\t\tLoadBalancerName:     pulumi.String(name),\n\t\t\tLoadBalancerEdition:  pulumi.String(\"Standard\"),\n\t\t\tResourceGroupId:      pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tLoadBalancerBillingConfig: \u0026alb.LoadBalancerLoadBalancerBillingConfigArgs{\n\t\t\t\tPayType: pulumi.String(\"PayAsYouGo\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t\tZoneMappings: alb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch[0].ID(),\n\t\t\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t\t\t},\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch[1].ID(),\n\t\t\t\t\tZoneId:    pulumi.String(_default.Zones[1].Id),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultServerGroup, err := alb.NewServerGroup(ctx, \"default\", \u0026alb.ServerGroupArgs{\n\t\t\tProtocol:        pulumi.String(\"HTTP\"),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t\tServerGroupName: pulumi.String(name),\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tHealthCheckConfig: \u0026alb.ServerGroupHealthCheckConfigArgs{\n\t\t\t\tHealthCheckEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tStickySessionConfig: \u0026alb.ServerGroupStickySessionConfigArgs{\n\t\t\t\tStickySessionEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeJoin2, err := std.Join(ctx, \u0026std.JoinArgs{\n\t\t\tSeparator: \"-\",\n\t\t\tInput: []interface{}{\n\t\t\t\tname,\n\t\t\t\tdefaultInteger.Result,\n\t\t\t\tval0,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar defaultServiceCertificate []*cas.ServiceCertificate\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := cas.NewServiceCertificate(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026cas.ServiceCertificateArgs{\n\t\t\t\tCertificateName: pulumi.String(invokeJoin2.Result),\n\t\t\t\tCert: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\nTjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\nVQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\nMjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\nEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\nY5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\nN4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\nHAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\nrkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n+arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\nZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\nBBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\nS7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\nAC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\nTTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\nDPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n-----END CERTIFICATE-----\n`),\n\t\t\t\tKey: pulumi.String(`-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\nrhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\nBpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\np2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n+axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\nn8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n/1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\ndIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\nYmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\nLfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\nGOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\nncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\nXWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\ni9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\nrNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\ng1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\nAvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\nZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\nAMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\nCIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\nLILJ+e7bLw8RrM0HfgFnl8c=\n-----END PRIVATE KEY-----\n`),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultServiceCertificate = append(defaultServiceCertificate, __res)\n\t\t}\n\t\tdefaultListener, err := alb.NewListener(ctx, \"default\", \u0026alb.ListenerArgs{\n\t\t\tLoadBalancerId:      defaultLoadBalancer.ID(),\n\t\t\tListenerProtocol:    pulumi.String(\"HTTPS\"),\n\t\t\tListenerPort:        pulumi.Int(8081),\n\t\t\tListenerDescription: pulumi.String(name),\n\t\t\tDefaultActions: alb.ListenerDefaultActionArray{\n\t\t\t\t\u0026alb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"ForwardGroup\"),\n\t\t\t\t\tForwardGroupConfig: \u0026alb.ListenerDefaultActionForwardGroupConfigArgs{\n\t\t\t\t\t\tServerGroupTuples: alb.ListenerDefaultActionForwardGroupConfigServerGroupTupleArray{\n\t\t\t\t\t\t\t\u0026alb.ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs{\n\t\t\t\t\t\t\t\tServerGroupId: defaultServerGroup.ID(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCertificates: \u0026alb.ListenerCertificatesArgs{\n\t\t\t\tCertificateId: std.JoinOutput(ctx, std.JoinOutputArgs{\n\t\t\t\t\tSeparator: pulumi.String(\"\"),\n\t\t\t\t\tInput: pulumi.StringArray{\n\t\t\t\t\t\tdefaultServiceCertificate[0].ID(),\n\t\t\t\t\t\tpulumi.String(\"-cn-hangzhou\"),\n\t\t\t\t\t},\n\t\t\t\t}, nil).ApplyT(func(invoke std.JoinResult) (*string, error) {\n\t\t\t\t\treturn invoke.Result, nil\n\t\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alb.NewListenerAdditionalCertificateAttachment(ctx, \"default\", \u0026alb.ListenerAdditionalCertificateAttachmentArgs{\n\t\t\tCertificateId: pulumi.String(std.JoinOutput(ctx, std.JoinOutputArgs{\n\t\t\t\tSeparator: pulumi.String(\"\"),\n\t\t\t\tInput: pulumi.StringArray{\n\t\t\t\t\tdefaultServiceCertificate[1].ID(),\n\t\t\t\t\tpulumi.String(\"-cn-hangzhou\"),\n\t\t\t\t},\n\t\t\t}, nil).ApplyT(func(invoke std.JoinResult) (*string, error) {\n\t\t\t\treturn invoke.Result, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tListenerId: defaultListener.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.alb.LoadBalancer;\nimport com.pulumi.alicloud.alb.LoadBalancerArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerLoadBalancerBillingConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.alb.ServerGroup;\nimport com.pulumi.alicloud.alb.ServerGroupArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupHealthCheckConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupStickySessionConfigArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cas.ServiceCertificate;\nimport com.pulumi.alicloud.cas.ServiceCertificateArgs;\nimport com.pulumi.std.inputs.JoinArgs;\nimport com.pulumi.alicloud.alb.Listener;\nimport com.pulumi.alicloud.alb.ListenerArgs;\nimport com.pulumi.alicloud.alb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.alicloud.alb.inputs.ListenerDefaultActionForwardGroupConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.ListenerCertificatesArgs;\nimport com.pulumi.alicloud.alb.ListenerAdditionalCertificateAttachment;\nimport com.pulumi.alicloud.alb.ListenerAdditionalCertificateAttachmentArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Switch(\"defaultSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(defaultNetwork.id())\n                .cidrBlock(StdFunctions.format(FormatArgs.builder()\n                    .input(\"10.4.%d.0/24\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .zoneId(default_.zones()[range.value()].id())\n                .vswitchName(StdFunctions.format(FormatArgs.builder()\n                    .input(String.format(\"%s_%d\", name))\n                    .args(range.value() + 1)\n                    .build()).result())\n                .build());\n\n        \n}\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .addressType(\"Internet\")\n            .addressAllocatedMode(\"Fixed\")\n            .loadBalancerName(name)\n            .loadBalancerEdition(\"Standard\")\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .loadBalancerBillingConfig(LoadBalancerLoadBalancerBillingConfigArgs.builder()\n                .payType(\"PayAsYouGo\")\n                .build())\n            .tags(Map.of(\"Created\", \"TF\"))\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch[0].id())\n                    .zoneId(default_.zones()[0].id())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch[1].id())\n                    .zoneId(default_.zones()[1].id())\n                    .build())\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .protocol(\"HTTP\")\n            .vpcId(defaultNetwork.id())\n            .serverGroupName(name)\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .healthCheckConfig(ServerGroupHealthCheckConfigArgs.builder()\n                .healthCheckEnabled(false)\n                .build())\n            .stickySessionConfig(ServerGroupStickySessionConfigArgs.builder()\n                .stickySessionEnabled(false)\n                .build())\n            .tags(Map.of(\"Created\", \"TF\"))\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new ServiceCertificate(\"defaultServiceCertificate-\" + i, ServiceCertificateArgs.builder()\n                .certificateName(StdFunctions.join(JoinArgs.builder()\n                    .separator(\"-\")\n                    .input(                    \n                        name,\n                        defaultInteger.result(),\n                        range.value())\n                    .build()).result())\n                .cert(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\nTjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\nVQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\nMjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\nEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\nY5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\nN4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\nHAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\nrkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n+arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\nZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\nBBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\nS7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\nAC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\nTTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\nDPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n-----END CERTIFICATE-----\n                \"\"\")\n                .key(\"\"\"\n-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\nrhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\nBpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\np2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n+axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\nn8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n/1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\ndIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\nYmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\nLfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\nGOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\nncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\nXWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\ni9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\nrNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\ng1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\nAvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\nZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\nAMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\nCIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\nLILJ+e7bLw8RrM0HfgFnl8c=\n-----END PRIVATE KEY-----\n                \"\"\")\n                .build());\n\n        \n}\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .loadBalancerId(defaultLoadBalancer.id())\n            .listenerProtocol(\"HTTPS\")\n            .listenerPort(8081)\n            .listenerDescription(name)\n            .defaultActions(ListenerDefaultActionArgs.builder()\n                .type(\"ForwardGroup\")\n                .forwardGroupConfig(ListenerDefaultActionForwardGroupConfigArgs.builder()\n                    .serverGroupTuples(ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs.builder()\n                        .serverGroupId(defaultServerGroup.id())\n                        .build())\n                    .build())\n                .build())\n            .certificates(ListenerCertificatesArgs.builder()\n                .certificateId(StdFunctions.join(JoinArgs.builder()\n                    .separator(\"\")\n                    .input(                    \n                        defaultServiceCertificate[0].id(),\n                        \"-cn-hangzhou\")\n                    .build()).applyValue(_invoke -\u003e _invoke.result()))\n                .build())\n            .build());\n\n        var defaultListenerAdditionalCertificateAttachment = new ListenerAdditionalCertificateAttachment(\"defaultListenerAdditionalCertificateAttachment\", ListenerAdditionalCertificateAttachmentArgs.builder()\n            .certificateId(StdFunctions.join(JoinArgs.builder()\n                .separator(\"\")\n                .input(                \n                    defaultServiceCertificate[1].id(),\n                    \"-cn-hangzhou\")\n                .build()).applyValue(_invoke -\u003e _invoke.result()))\n            .listenerId(defaultListener.id())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Load Balancer (ALB) Listener Additional Certificate Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alb/listenerAdditionalCertificateAttachment:ListenerAdditionalCertificateAttachment example \u003clistener_id\u003e:\u003ccertificate_id\u003e\n```\n\n","properties":{"certificateId":{"type":"string","description":"The Certificate ID.\n"},"certificateType":{"type":"string","description":"The type of the certificate.\n"},"listenerId":{"type":"string","description":"The ID of the ALB listener.\n"},"status":{"type":"string","description":"The status of the certificate.\n"}},"required":["certificateId","certificateType","listenerId","status"],"inputProperties":{"certificateId":{"type":"string","description":"The Certificate ID.\n","willReplaceOnChanges":true},"listenerId":{"type":"string","description":"The ID of the ALB listener.\n","willReplaceOnChanges":true}},"requiredInputs":["certificateId","listenerId"],"stateInputs":{"description":"Input properties used for looking up and filtering ListenerAdditionalCertificateAttachment resources.\n","properties":{"certificateId":{"type":"string","description":"The Certificate ID.\n","willReplaceOnChanges":true},"certificateType":{"type":"string","description":"The type of the certificate.\n"},"listenerId":{"type":"string","description":"The ID of the ALB listener.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the certificate.\n"}},"type":"object"}},"alicloud:alb/loadBalancer:LoadBalancer":{"description":"Provides a Application Load Balancer (ALB) Load Balancer resource.\n\nLoad Balancer Instance.\n\nFor information about Application Load Balancer (ALB) Load Balancer and how to use it, see [What is Load Balancer](https://www.alibabacloud.com/help/en/slb/application-load-balancer/developer-reference/api-alb-2020-06-16-createloadbalancer).\n\n\u003e **NOTE:** Available since v1.132.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultGetZones = alicloud.alb.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst default1 = new alicloud.vpc.Switch(\"default1\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"10.4.1.0/24\",\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n    vswitchName: `${name}_1`,\n});\nconst default2 = new alicloud.vpc.Switch(\"default2\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"10.4.2.0/24\",\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[1]?.id),\n    vswitchName: `${name}_2`,\n});\nconst defaultLoadBalancer = new alicloud.alb.LoadBalancer(\"default\", {\n    loadBalancerEdition: \"Basic\",\n    addressType: \"Internet\",\n    vpcId: defaultNetwork.id,\n    addressAllocatedMode: \"Fixed\",\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n    loadBalancerName: name,\n    loadBalancerBillingConfig: {\n        payType: \"PayAsYouGo\",\n    },\n    modificationProtectionConfig: {\n        status: \"NonProtection\",\n    },\n    zoneMappings: [\n        {\n            vswitchId: default1.id,\n            zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n        },\n        {\n            vswitchId: default2.id,\n            zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[1]?.id),\n        },\n    ],\n    tags: {\n        Created: \"TF\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_get_zones = alicloud.alb.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault1 = alicloud.vpc.Switch(\"default1\",\n    vpc_id=default_network.id,\n    cidr_block=\"10.4.1.0/24\",\n    zone_id=default_get_zones.zones[0].id,\n    vswitch_name=f\"{name}_1\")\ndefault2 = alicloud.vpc.Switch(\"default2\",\n    vpc_id=default_network.id,\n    cidr_block=\"10.4.2.0/24\",\n    zone_id=default_get_zones.zones[1].id,\n    vswitch_name=f\"{name}_2\")\ndefault_load_balancer = alicloud.alb.LoadBalancer(\"default\",\n    load_balancer_edition=\"Basic\",\n    address_type=\"Internet\",\n    vpc_id=default_network.id,\n    address_allocated_mode=\"Fixed\",\n    resource_group_id=default.groups[0].id,\n    load_balancer_name=name,\n    load_balancer_billing_config={\n        \"pay_type\": \"PayAsYouGo\",\n    },\n    modification_protection_config={\n        \"status\": \"NonProtection\",\n    },\n    zone_mappings=[\n        {\n            \"vswitch_id\": default1.id,\n            \"zone_id\": default_get_zones.zones[0].id,\n        },\n        {\n            \"vswitch_id\": default2.id,\n            \"zone_id\": default_get_zones.zones[1].id,\n        },\n    ],\n    tags={\n        \"Created\": \"TF\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultGetZones = AliCloud.Alb.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var default1 = new AliCloud.Vpc.Switch(\"default1\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"10.4.1.0/24\",\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = $\"{name}_1\",\n    });\n\n    var default2 = new AliCloud.Vpc.Switch(\"default2\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"10.4.2.0/24\",\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n        VswitchName = $\"{name}_2\",\n    });\n\n    var defaultLoadBalancer = new AliCloud.Alb.LoadBalancer(\"default\", new()\n    {\n        LoadBalancerEdition = \"Basic\",\n        AddressType = \"Internet\",\n        VpcId = defaultNetwork.Id,\n        AddressAllocatedMode = \"Fixed\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n        LoadBalancerName = name,\n        LoadBalancerBillingConfig = new AliCloud.Alb.Inputs.LoadBalancerLoadBalancerBillingConfigArgs\n        {\n            PayType = \"PayAsYouGo\",\n        },\n        ModificationProtectionConfig = new AliCloud.Alb.Inputs.LoadBalancerModificationProtectionConfigArgs\n        {\n            Status = \"NonProtection\",\n        },\n        ZoneMappings = new[]\n        {\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = default1.Id,\n                ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n            },\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = default2.Id,\n                ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n            },\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alb.GetZones(ctx, \u0026alb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1, err := vpc.NewSwitch(ctx, \"default1\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.1.0/24\"),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\tVswitchName: pulumi.Sprintf(\"%v_1\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault2, err := vpc.NewSwitch(ctx, \"default2\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.2.0/24\"),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[1].Id),\n\t\t\tVswitchName: pulumi.Sprintf(\"%v_2\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alb.NewLoadBalancer(ctx, \"default\", \u0026alb.LoadBalancerArgs{\n\t\t\tLoadBalancerEdition:  pulumi.String(\"Basic\"),\n\t\t\tAddressType:          pulumi.String(\"Internet\"),\n\t\t\tVpcId:                defaultNetwork.ID(),\n\t\t\tAddressAllocatedMode: pulumi.String(\"Fixed\"),\n\t\t\tResourceGroupId:      pulumi.String(_default.Groups[0].Id),\n\t\t\tLoadBalancerName:     pulumi.String(name),\n\t\t\tLoadBalancerBillingConfig: \u0026alb.LoadBalancerLoadBalancerBillingConfigArgs{\n\t\t\t\tPayType: pulumi.String(\"PayAsYouGo\"),\n\t\t\t},\n\t\t\tModificationProtectionConfig: \u0026alb.LoadBalancerModificationProtectionConfigArgs{\n\t\t\t\tStatus: pulumi.String(\"NonProtection\"),\n\t\t\t},\n\t\t\tZoneMappings: alb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: default1.ID(),\n\t\t\t\t\tZoneId:    pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\t\t},\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: default2.ID(),\n\t\t\t\t\tZoneId:    pulumi.String(defaultGetZones.Zones[1].Id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.alb.LoadBalancer;\nimport com.pulumi.alicloud.alb.LoadBalancerArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerLoadBalancerBillingConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerModificationProtectionConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerZoneMappingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var defaultGetZones = AlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var default1 = new Switch(\"default1\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"10.4.1.0/24\")\n            .zoneId(defaultGetZones.zones()[0].id())\n            .vswitchName(String.format(\"%s_1\", name))\n            .build());\n\n        var default2 = new Switch(\"default2\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"10.4.2.0/24\")\n            .zoneId(defaultGetZones.zones()[1].id())\n            .vswitchName(String.format(\"%s_2\", name))\n            .build());\n\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .loadBalancerEdition(\"Basic\")\n            .addressType(\"Internet\")\n            .vpcId(defaultNetwork.id())\n            .addressAllocatedMode(\"Fixed\")\n            .resourceGroupId(default_.groups()[0].id())\n            .loadBalancerName(name)\n            .loadBalancerBillingConfig(LoadBalancerLoadBalancerBillingConfigArgs.builder()\n                .payType(\"PayAsYouGo\")\n                .build())\n            .modificationProtectionConfig(LoadBalancerModificationProtectionConfigArgs.builder()\n                .status(\"NonProtection\")\n                .build())\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(default1.id())\n                    .zoneId(defaultGetZones.zones()[0].id())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(default2.id())\n                    .zoneId(defaultGetZones.zones()[1].id())\n                    .build())\n            .tags(Map.of(\"Created\", \"TF\"))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  default1:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 10.4.1.0/24\n      zoneId: ${defaultGetZones.zones[0].id}\n      vswitchName: ${name}_1\n  default2:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 10.4.2.0/24\n      zoneId: ${defaultGetZones.zones[1].id}\n      vswitchName: ${name}_2\n  defaultLoadBalancer:\n    type: alicloud:alb:LoadBalancer\n    name: default\n    properties:\n      loadBalancerEdition: Basic\n      addressType: Internet\n      vpcId: ${defaultNetwork.id}\n      addressAllocatedMode: Fixed\n      resourceGroupId: ${default.groups[0].id}\n      loadBalancerName: ${name}\n      loadBalancerBillingConfig:\n        payType: PayAsYouGo\n      modificationProtectionConfig:\n        status: NonProtection\n      zoneMappings:\n        - vswitchId: ${default1.id}\n          zoneId: ${defaultGetZones.zones[0].id}\n        - vswitchId: ${default2.id}\n          zoneId: ${defaultGetZones.zones[1].id}\n      tags:\n        Created: TF\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:alb:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Load Balancer (ALB) Load Balancer can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alb/loadBalancer:LoadBalancer example \u003cid\u003e\n```\n\n","properties":{"accessLogConfig":{"$ref":"#/types/alicloud:alb/LoadBalancerAccessLogConfig:LoadBalancerAccessLogConfig","description":"The configuration of the access log. See \u003cspan pulumi-lang-nodejs=\"`accessLogConfig`\" pulumi-lang-dotnet=\"`AccessLogConfig`\" pulumi-lang-go=\"`accessLogConfig`\" pulumi-lang-python=\"`access_log_config`\" pulumi-lang-yaml=\"`accessLogConfig`\" pulumi-lang-java=\"`accessLogConfig`\"\u003e`access_log_config`\u003c/span\u003e below.\n"},"addressAllocatedMode":{"type":"string","description":"The method in which IP addresses are assigned. Valid values:  Fixed: The ALB instance uses a fixed IP address. Dynamic (default): An IP address is dynamically assigned to each zone of the ALB instance.\n"},"addressIpVersion":{"type":"string","description":"The protocol version. Value:\n- `IPv4`:IPv4 type.\n- `DualStack`: the dual-stack type.\n"},"addressType":{"type":"string","description":"The type of IP address that the SLB instance uses to provide services.\n"},"bandwidthPackageId":{"type":"string","description":"The ID of the EIP bandwidth plan which is associated with an ALB instance that uses a public IP address.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"deletionProtectionConfig":{"$ref":"#/types/alicloud:alb/LoadBalancerDeletionProtectionConfig:LoadBalancerDeletionProtectionConfig","description":"The Protection Configuration See \u003cspan pulumi-lang-nodejs=\"`deletionProtectionConfig`\" pulumi-lang-dotnet=\"`DeletionProtectionConfig`\" pulumi-lang-go=\"`deletionProtectionConfig`\" pulumi-lang-python=\"`deletion_protection_config`\" pulumi-lang-yaml=\"`deletionProtectionConfig`\" pulumi-lang-java=\"`deletionProtectionConfig`\"\u003e`deletion_protection_config`\u003c/span\u003e below.\n"},"deletionProtectionEnabled":{"type":"boolean","description":"Specifies whether to enable deletion protection. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"dnsName":{"type":"string","description":"DNS Domain Name\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request, value:\n"},"ipv6AddressType":{"type":"string","description":"The address type of Ipv6\n"},"loadBalancerBillingConfig":{"$ref":"#/types/alicloud:alb/LoadBalancerLoadBalancerBillingConfig:LoadBalancerLoadBalancerBillingConfig","description":"The configuration of the billing method. See \u003cspan pulumi-lang-nodejs=\"`loadBalancerBillingConfig`\" pulumi-lang-dotnet=\"`LoadBalancerBillingConfig`\" pulumi-lang-go=\"`loadBalancerBillingConfig`\" pulumi-lang-python=\"`load_balancer_billing_config`\" pulumi-lang-yaml=\"`loadBalancerBillingConfig`\" pulumi-lang-java=\"`loadBalancerBillingConfig`\"\u003e`load_balancer_billing_config`\u003c/span\u003e below.\n"},"loadBalancerEdition":{"type":"string","description":"The edition of the ALB instance.\n"},"loadBalancerName":{"type":"string","description":"The name of the resource\n"},"modificationProtectionConfig":{"$ref":"#/types/alicloud:alb/LoadBalancerModificationProtectionConfig:LoadBalancerModificationProtectionConfig","description":"Modify the Protection Configuration See \u003cspan pulumi-lang-nodejs=\"`modificationProtectionConfig`\" pulumi-lang-dotnet=\"`ModificationProtectionConfig`\" pulumi-lang-go=\"`modificationProtectionConfig`\" pulumi-lang-python=\"`modification_protection_config`\" pulumi-lang-yaml=\"`modificationProtectionConfig`\" pulumi-lang-java=\"`modificationProtectionConfig`\"\u003e`modification_protection_config`\u003c/span\u003e below.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"Server Load Balancer Instance Status:, indicating that the instance listener will no longer forward traffic.(default).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) where the SLB instance is deployed.\n"},"zoneMappings":{"type":"array","items":{"$ref":"#/types/alicloud:alb/LoadBalancerZoneMapping:LoadBalancerZoneMapping"},"description":"The zones and vSwitches. You must specify at least two zones. See \u003cspan pulumi-lang-nodejs=\"`zoneMappings`\" pulumi-lang-dotnet=\"`ZoneMappings`\" pulumi-lang-go=\"`zoneMappings`\" pulumi-lang-python=\"`zone_mappings`\" pulumi-lang-yaml=\"`zoneMappings`\" pulumi-lang-java=\"`zoneMappings`\"\u003e`zone_mappings`\u003c/span\u003e below.\n"}},"required":["addressIpVersion","addressType","createTime","deletionProtectionConfig","deletionProtectionEnabled","dnsName","ipv6AddressType","loadBalancerBillingConfig","loadBalancerEdition","modificationProtectionConfig","regionId","resourceGroupId","status","vpcId","zoneMappings"],"inputProperties":{"accessLogConfig":{"$ref":"#/types/alicloud:alb/LoadBalancerAccessLogConfig:LoadBalancerAccessLogConfig","description":"The configuration of the access log. See \u003cspan pulumi-lang-nodejs=\"`accessLogConfig`\" pulumi-lang-dotnet=\"`AccessLogConfig`\" pulumi-lang-go=\"`accessLogConfig`\" pulumi-lang-python=\"`access_log_config`\" pulumi-lang-yaml=\"`accessLogConfig`\" pulumi-lang-java=\"`accessLogConfig`\"\u003e`access_log_config`\u003c/span\u003e below.\n"},"addressAllocatedMode":{"type":"string","description":"The method in which IP addresses are assigned. Valid values:  Fixed: The ALB instance uses a fixed IP address. Dynamic (default): An IP address is dynamically assigned to each zone of the ALB instance.\n","willReplaceOnChanges":true},"addressIpVersion":{"type":"string","description":"The protocol version. Value:\n- `IPv4`:IPv4 type.\n- `DualStack`: the dual-stack type.\n","willReplaceOnChanges":true},"addressType":{"type":"string","description":"The type of IP address that the SLB instance uses to provide services.\n"},"bandwidthPackageId":{"type":"string","description":"The ID of the EIP bandwidth plan which is associated with an ALB instance that uses a public IP address.\n","willReplaceOnChanges":true},"deletionProtectionConfig":{"$ref":"#/types/alicloud:alb/LoadBalancerDeletionProtectionConfig:LoadBalancerDeletionProtectionConfig","description":"The Protection Configuration See \u003cspan pulumi-lang-nodejs=\"`deletionProtectionConfig`\" pulumi-lang-dotnet=\"`DeletionProtectionConfig`\" pulumi-lang-go=\"`deletionProtectionConfig`\" pulumi-lang-python=\"`deletion_protection_config`\" pulumi-lang-yaml=\"`deletionProtectionConfig`\" pulumi-lang-java=\"`deletionProtectionConfig`\"\u003e`deletion_protection_config`\u003c/span\u003e below.\n"},"deletionProtectionEnabled":{"type":"boolean","description":"Specifies whether to enable deletion protection. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request, value:\n"},"ipv6AddressType":{"type":"string","description":"The address type of Ipv6\n"},"loadBalancerBillingConfig":{"$ref":"#/types/alicloud:alb/LoadBalancerLoadBalancerBillingConfig:LoadBalancerLoadBalancerBillingConfig","description":"The configuration of the billing method. See \u003cspan pulumi-lang-nodejs=\"`loadBalancerBillingConfig`\" pulumi-lang-dotnet=\"`LoadBalancerBillingConfig`\" pulumi-lang-go=\"`loadBalancerBillingConfig`\" pulumi-lang-python=\"`load_balancer_billing_config`\" pulumi-lang-yaml=\"`loadBalancerBillingConfig`\" pulumi-lang-java=\"`loadBalancerBillingConfig`\"\u003e`load_balancer_billing_config`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"loadBalancerEdition":{"type":"string","description":"The edition of the ALB instance.\n"},"loadBalancerName":{"type":"string","description":"The name of the resource\n"},"modificationProtectionConfig":{"$ref":"#/types/alicloud:alb/LoadBalancerModificationProtectionConfig:LoadBalancerModificationProtectionConfig","description":"Modify the Protection Configuration See \u003cspan pulumi-lang-nodejs=\"`modificationProtectionConfig`\" pulumi-lang-dotnet=\"`ModificationProtectionConfig`\" pulumi-lang-go=\"`modificationProtectionConfig`\" pulumi-lang-python=\"`modification_protection_config`\" pulumi-lang-yaml=\"`modificationProtectionConfig`\" pulumi-lang-java=\"`modificationProtectionConfig`\"\u003e`modification_protection_config`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) where the SLB instance is deployed.\n","willReplaceOnChanges":true},"zoneMappings":{"type":"array","items":{"$ref":"#/types/alicloud:alb/LoadBalancerZoneMapping:LoadBalancerZoneMapping"},"description":"The zones and vSwitches. You must specify at least two zones. See \u003cspan pulumi-lang-nodejs=\"`zoneMappings`\" pulumi-lang-dotnet=\"`ZoneMappings`\" pulumi-lang-go=\"`zoneMappings`\" pulumi-lang-python=\"`zone_mappings`\" pulumi-lang-yaml=\"`zoneMappings`\" pulumi-lang-java=\"`zoneMappings`\"\u003e`zone_mappings`\u003c/span\u003e below.\n"}},"requiredInputs":["addressType","loadBalancerBillingConfig","loadBalancerEdition","vpcId","zoneMappings"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancer resources.\n","properties":{"accessLogConfig":{"$ref":"#/types/alicloud:alb/LoadBalancerAccessLogConfig:LoadBalancerAccessLogConfig","description":"The configuration of the access log. See \u003cspan pulumi-lang-nodejs=\"`accessLogConfig`\" pulumi-lang-dotnet=\"`AccessLogConfig`\" pulumi-lang-go=\"`accessLogConfig`\" pulumi-lang-python=\"`access_log_config`\" pulumi-lang-yaml=\"`accessLogConfig`\" pulumi-lang-java=\"`accessLogConfig`\"\u003e`access_log_config`\u003c/span\u003e below.\n"},"addressAllocatedMode":{"type":"string","description":"The method in which IP addresses are assigned. Valid values:  Fixed: The ALB instance uses a fixed IP address. Dynamic (default): An IP address is dynamically assigned to each zone of the ALB instance.\n","willReplaceOnChanges":true},"addressIpVersion":{"type":"string","description":"The protocol version. Value:\n- `IPv4`:IPv4 type.\n- `DualStack`: the dual-stack type.\n","willReplaceOnChanges":true},"addressType":{"type":"string","description":"The type of IP address that the SLB instance uses to provide services.\n"},"bandwidthPackageId":{"type":"string","description":"The ID of the EIP bandwidth plan which is associated with an ALB instance that uses a public IP address.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource\n"},"deletionProtectionConfig":{"$ref":"#/types/alicloud:alb/LoadBalancerDeletionProtectionConfig:LoadBalancerDeletionProtectionConfig","description":"The Protection Configuration See \u003cspan pulumi-lang-nodejs=\"`deletionProtectionConfig`\" pulumi-lang-dotnet=\"`DeletionProtectionConfig`\" pulumi-lang-go=\"`deletionProtectionConfig`\" pulumi-lang-python=\"`deletion_protection_config`\" pulumi-lang-yaml=\"`deletionProtectionConfig`\" pulumi-lang-java=\"`deletionProtectionConfig`\"\u003e`deletion_protection_config`\u003c/span\u003e below.\n"},"deletionProtectionEnabled":{"type":"boolean","description":"Specifies whether to enable deletion protection. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"dnsName":{"type":"string","description":"DNS Domain Name\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request, value:\n"},"ipv6AddressType":{"type":"string","description":"The address type of Ipv6\n"},"loadBalancerBillingConfig":{"$ref":"#/types/alicloud:alb/LoadBalancerLoadBalancerBillingConfig:LoadBalancerLoadBalancerBillingConfig","description":"The configuration of the billing method. See \u003cspan pulumi-lang-nodejs=\"`loadBalancerBillingConfig`\" pulumi-lang-dotnet=\"`LoadBalancerBillingConfig`\" pulumi-lang-go=\"`loadBalancerBillingConfig`\" pulumi-lang-python=\"`load_balancer_billing_config`\" pulumi-lang-yaml=\"`loadBalancerBillingConfig`\" pulumi-lang-java=\"`loadBalancerBillingConfig`\"\u003e`load_balancer_billing_config`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"loadBalancerEdition":{"type":"string","description":"The edition of the ALB instance.\n"},"loadBalancerName":{"type":"string","description":"The name of the resource\n"},"modificationProtectionConfig":{"$ref":"#/types/alicloud:alb/LoadBalancerModificationProtectionConfig:LoadBalancerModificationProtectionConfig","description":"Modify the Protection Configuration See \u003cspan pulumi-lang-nodejs=\"`modificationProtectionConfig`\" pulumi-lang-dotnet=\"`ModificationProtectionConfig`\" pulumi-lang-go=\"`modificationProtectionConfig`\" pulumi-lang-python=\"`modification_protection_config`\" pulumi-lang-yaml=\"`modificationProtectionConfig`\" pulumi-lang-java=\"`modificationProtectionConfig`\"\u003e`modification_protection_config`\u003c/span\u003e below.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"Server Load Balancer Instance Status:, indicating that the instance listener will no longer forward traffic.(default).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) where the SLB instance is deployed.\n","willReplaceOnChanges":true},"zoneMappings":{"type":"array","items":{"$ref":"#/types/alicloud:alb/LoadBalancerZoneMapping:LoadBalancerZoneMapping"},"description":"The zones and vSwitches. You must specify at least two zones. See \u003cspan pulumi-lang-nodejs=\"`zoneMappings`\" pulumi-lang-dotnet=\"`ZoneMappings`\" pulumi-lang-go=\"`zoneMappings`\" pulumi-lang-python=\"`zone_mappings`\" pulumi-lang-yaml=\"`zoneMappings`\" pulumi-lang-java=\"`zoneMappings`\"\u003e`zone_mappings`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:alb/loadBalancerAccessLogConfigAttachment:LoadBalancerAccessLogConfigAttachment":{"description":"Provides a Application Load Balancer (ALB) Load Balancer Access Log Config Attachment resource.\n\nAttachment between ALB and AccessLog.\n\nFor information about Application Load Balancer (ALB) Load Balancer Access Log Config Attachment and how to use it, see [What is Load Balancer Access Log Config Attachment](https://www.alibabacloud.com/help/en/slb/application-load-balancer/developer-reference/api-alb-2020-06-16-enableloadbalanceraccesslog).\n\n\u003e **NOTE:** Available since v1.241.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 100000,\n    max: 999999,\n});\nconst albExampleTfVpc = new alicloud.vpc.Network(\"alb_example_tf_vpc\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst albExampleTfJ = new alicloud.vpc.Switch(\"alb_example_tf_j\", {\n    vpcId: albExampleTfVpc.id,\n    zoneId: \"cn-beijing-j\",\n    cidrBlock: \"192.168.1.0/24\",\n    vswitchName: std.format({\n        input: \"%s1\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst albExampleTfK = new alicloud.vpc.Switch(\"alb_example_tf_k\", {\n    vpcId: albExampleTfVpc.id,\n    zoneId: \"cn-beijing-k\",\n    cidrBlock: \"192.168.2.0/24\",\n    vswitchName: std.format({\n        input: \"%s2\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst defaultDSY0JJ = new alicloud.vpc.Switch(\"defaultDSY0JJ\", {\n    vpcId: albExampleTfVpc.id,\n    zoneId: \"cn-beijing-f\",\n    cidrBlock: \"192.168.3.0/24\",\n    vswitchName: std.format({\n        input: \"%s3\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst defaultDYswYo = new alicloud.alb.LoadBalancer(\"defaultDYswYo\", {\n    loadBalancerName: std.format({\n        input: \"%s4\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    loadBalancerEdition: \"Standard\",\n    vpcId: albExampleTfVpc.id,\n    loadBalancerBillingConfig: {\n        payType: \"PayAsYouGo\",\n    },\n    addressType: \"Intranet\",\n    addressAllocatedMode: \"Fixed\",\n    zoneMappings: [\n        {\n            vswitchId: defaultDSY0JJ.id,\n            zoneId: defaultDSY0JJ.zoneId,\n        },\n        {\n            vswitchId: albExampleTfJ.id,\n            zoneId: albExampleTfJ.zoneId,\n        },\n        {\n            vswitchId: albExampleTfK.id,\n            zoneId: albExampleTfK.zoneId,\n        },\n    ],\n});\nconst defaultLoadBalancerAccessLogConfigAttachment = new alicloud.alb.LoadBalancerAccessLogConfigAttachment(\"default\", {\n    logStore: `${name}-${_default.result}`,\n    loadBalancerId: defaultDYswYo.id,\n    logProject: `${name}-${_default.result}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=100000,\n    max=999999)\nalb_example_tf_vpc = alicloud.vpc.Network(\"alb_example_tf_vpc\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\nalb_example_tf_j = alicloud.vpc.Switch(\"alb_example_tf_j\",\n    vpc_id=alb_example_tf_vpc.id,\n    zone_id=\"cn-beijing-j\",\n    cidr_block=\"192.168.1.0/24\",\n    vswitch_name=std.format(input=\"%s1\",\n        args=[name]).result)\nalb_example_tf_k = alicloud.vpc.Switch(\"alb_example_tf_k\",\n    vpc_id=alb_example_tf_vpc.id,\n    zone_id=\"cn-beijing-k\",\n    cidr_block=\"192.168.2.0/24\",\n    vswitch_name=std.format(input=\"%s2\",\n        args=[name]).result)\ndefault_dsy0_jj = alicloud.vpc.Switch(\"defaultDSY0JJ\",\n    vpc_id=alb_example_tf_vpc.id,\n    zone_id=\"cn-beijing-f\",\n    cidr_block=\"192.168.3.0/24\",\n    vswitch_name=std.format(input=\"%s3\",\n        args=[name]).result)\ndefault_dysw_yo = alicloud.alb.LoadBalancer(\"defaultDYswYo\",\n    load_balancer_name=std.format(input=\"%s4\",\n        args=[name]).result,\n    load_balancer_edition=\"Standard\",\n    vpc_id=alb_example_tf_vpc.id,\n    load_balancer_billing_config={\n        \"pay_type\": \"PayAsYouGo\",\n    },\n    address_type=\"Intranet\",\n    address_allocated_mode=\"Fixed\",\n    zone_mappings=[\n        {\n            \"vswitch_id\": default_dsy0_jj.id,\n            \"zone_id\": default_dsy0_jj.zone_id,\n        },\n        {\n            \"vswitch_id\": alb_example_tf_j.id,\n            \"zone_id\": alb_example_tf_j.zone_id,\n        },\n        {\n            \"vswitch_id\": alb_example_tf_k.id,\n            \"zone_id\": alb_example_tf_k.zone_id,\n        },\n    ])\ndefault_load_balancer_access_log_config_attachment = alicloud.alb.LoadBalancerAccessLogConfigAttachment(\"default\",\n    log_store=f\"{name}-{default['result']}\",\n    load_balancer_id=default_dysw_yo.id,\n    log_project=f\"{name}-{default['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 100000,\n        Max = 999999,\n    });\n\n    var albExampleTfVpc = new AliCloud.Vpc.Network(\"alb_example_tf_vpc\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var albExampleTfJ = new AliCloud.Vpc.Switch(\"alb_example_tf_j\", new()\n    {\n        VpcId = albExampleTfVpc.Id,\n        ZoneId = \"cn-beijing-j\",\n        CidrBlock = \"192.168.1.0/24\",\n        VswitchName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var albExampleTfK = new AliCloud.Vpc.Switch(\"alb_example_tf_k\", new()\n    {\n        VpcId = albExampleTfVpc.Id,\n        ZoneId = \"cn-beijing-k\",\n        CidrBlock = \"192.168.2.0/24\",\n        VswitchName = Std.Format.Invoke(new()\n        {\n            Input = \"%s2\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultDSY0JJ = new AliCloud.Vpc.Switch(\"defaultDSY0JJ\", new()\n    {\n        VpcId = albExampleTfVpc.Id,\n        ZoneId = \"cn-beijing-f\",\n        CidrBlock = \"192.168.3.0/24\",\n        VswitchName = Std.Format.Invoke(new()\n        {\n            Input = \"%s3\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultDYswYo = new AliCloud.Alb.LoadBalancer(\"defaultDYswYo\", new()\n    {\n        LoadBalancerName = Std.Format.Invoke(new()\n        {\n            Input = \"%s4\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        LoadBalancerEdition = \"Standard\",\n        VpcId = albExampleTfVpc.Id,\n        LoadBalancerBillingConfig = new AliCloud.Alb.Inputs.LoadBalancerLoadBalancerBillingConfigArgs\n        {\n            PayType = \"PayAsYouGo\",\n        },\n        AddressType = \"Intranet\",\n        AddressAllocatedMode = \"Fixed\",\n        ZoneMappings = new[]\n        {\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultDSY0JJ.Id,\n                ZoneId = defaultDSY0JJ.ZoneId,\n            },\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = albExampleTfJ.Id,\n                ZoneId = albExampleTfJ.ZoneId,\n            },\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = albExampleTfK.Id,\n                ZoneId = albExampleTfK.ZoneId,\n            },\n        },\n    });\n\n    var defaultLoadBalancerAccessLogConfigAttachment = new AliCloud.Alb.LoadBalancerAccessLogConfigAttachment(\"default\", new()\n    {\n        LogStore = $\"{name}-{@default.Result}\",\n        LoadBalancerId = defaultDYswYo.Id,\n        LogProject = $\"{name}-{@default.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 100000,\n\t\t\tMax: 999999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\talbExampleTfVpc, err := vpc.NewNetwork(ctx, \"alb_example_tf_vpc\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\talbExampleTfJ, err := vpc.NewSwitch(ctx, \"alb_example_tf_j\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       albExampleTfVpc.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-beijing-j\"),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.1.0/24\"),\n\t\t\tVswitchName: pulumi.String(invokeFormat.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s2\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\talbExampleTfK, err := vpc.NewSwitch(ctx, \"alb_example_tf_k\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       albExampleTfVpc.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-beijing-k\"),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.2.0/24\"),\n\t\t\tVswitchName: pulumi.String(invokeFormat1.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat2, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s3\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDSY0JJ, err := vpc.NewSwitch(ctx, \"defaultDSY0JJ\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       albExampleTfVpc.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-beijing-f\"),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.3.0/24\"),\n\t\t\tVswitchName: pulumi.String(invokeFormat2.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat3, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s4\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDYswYo, err := alb.NewLoadBalancer(ctx, \"defaultDYswYo\", \u0026alb.LoadBalancerArgs{\n\t\t\tLoadBalancerName:    pulumi.String(invokeFormat3.Result),\n\t\t\tLoadBalancerEdition: pulumi.String(\"Standard\"),\n\t\t\tVpcId:               albExampleTfVpc.ID(),\n\t\t\tLoadBalancerBillingConfig: \u0026alb.LoadBalancerLoadBalancerBillingConfigArgs{\n\t\t\t\tPayType: pulumi.String(\"PayAsYouGo\"),\n\t\t\t},\n\t\t\tAddressType:          pulumi.String(\"Intranet\"),\n\t\t\tAddressAllocatedMode: pulumi.String(\"Fixed\"),\n\t\t\tZoneMappings: alb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultDSY0JJ.ID(),\n\t\t\t\t\tZoneId:    defaultDSY0JJ.ZoneId,\n\t\t\t\t},\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: albExampleTfJ.ID(),\n\t\t\t\t\tZoneId:    albExampleTfJ.ZoneId,\n\t\t\t\t},\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: albExampleTfK.ID(),\n\t\t\t\t\tZoneId:    albExampleTfK.ZoneId,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alb.NewLoadBalancerAccessLogConfigAttachment(ctx, \"default\", \u0026alb.LoadBalancerAccessLogConfigAttachmentArgs{\n\t\t\tLogStore:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tLoadBalancerId: defaultDYswYo.ID(),\n\t\t\tLogProject:     pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.alb.LoadBalancer;\nimport com.pulumi.alicloud.alb.LoadBalancerArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerLoadBalancerBillingConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.alb.LoadBalancerAccessLogConfigAttachment;\nimport com.pulumi.alicloud.alb.LoadBalancerAccessLogConfigAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(100000)\n            .max(999999)\n            .build());\n\n        var albExampleTfVpc = new Network(\"albExampleTfVpc\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var albExampleTfJ = new Switch(\"albExampleTfJ\", SwitchArgs.builder()\n            .vpcId(albExampleTfVpc.id())\n            .zoneId(\"cn-beijing-j\")\n            .cidrBlock(\"192.168.1.0/24\")\n            .vswitchName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var albExampleTfK = new Switch(\"albExampleTfK\", SwitchArgs.builder()\n            .vpcId(albExampleTfVpc.id())\n            .zoneId(\"cn-beijing-k\")\n            .cidrBlock(\"192.168.2.0/24\")\n            .vswitchName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s2\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var defaultDSY0JJ = new Switch(\"defaultDSY0JJ\", SwitchArgs.builder()\n            .vpcId(albExampleTfVpc.id())\n            .zoneId(\"cn-beijing-f\")\n            .cidrBlock(\"192.168.3.0/24\")\n            .vswitchName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s3\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var defaultDYswYo = new LoadBalancer(\"defaultDYswYo\", LoadBalancerArgs.builder()\n            .loadBalancerName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s4\")\n                .args(name)\n                .build()).result())\n            .loadBalancerEdition(\"Standard\")\n            .vpcId(albExampleTfVpc.id())\n            .loadBalancerBillingConfig(LoadBalancerLoadBalancerBillingConfigArgs.builder()\n                .payType(\"PayAsYouGo\")\n                .build())\n            .addressType(\"Intranet\")\n            .addressAllocatedMode(\"Fixed\")\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultDSY0JJ.id())\n                    .zoneId(defaultDSY0JJ.zoneId())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(albExampleTfJ.id())\n                    .zoneId(albExampleTfJ.zoneId())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(albExampleTfK.id())\n                    .zoneId(albExampleTfK.zoneId())\n                    .build())\n            .build());\n\n        var defaultLoadBalancerAccessLogConfigAttachment = new LoadBalancerAccessLogConfigAttachment(\"defaultLoadBalancerAccessLogConfigAttachment\", LoadBalancerAccessLogConfigAttachmentArgs.builder()\n            .logStore(String.format(\"%s-%s\", name,default_.result()))\n            .loadBalancerId(defaultDYswYo.id())\n            .logProject(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 100000\n      max: 999999\n  albExampleTfVpc:\n    type: alicloud:vpc:Network\n    name: alb_example_tf_vpc\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  albExampleTfJ:\n    type: alicloud:vpc:Switch\n    name: alb_example_tf_j\n    properties:\n      vpcId: ${albExampleTfVpc.id}\n      zoneId: cn-beijing-j\n      cidrBlock: 192.168.1.0/24\n      vswitchName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1'\n            args:\n              - ${name}\n          return: result\n  albExampleTfK:\n    type: alicloud:vpc:Switch\n    name: alb_example_tf_k\n    properties:\n      vpcId: ${albExampleTfVpc.id}\n      zoneId: cn-beijing-k\n      cidrBlock: 192.168.2.0/24\n      vswitchName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s2'\n            args:\n              - ${name}\n          return: result\n  defaultDSY0JJ:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${albExampleTfVpc.id}\n      zoneId: cn-beijing-f\n      cidrBlock: 192.168.3.0/24\n      vswitchName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s3'\n            args:\n              - ${name}\n          return: result\n  defaultDYswYo:\n    type: alicloud:alb:LoadBalancer\n    properties:\n      loadBalancerName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s4'\n            args:\n              - ${name}\n          return: result\n      loadBalancerEdition: Standard\n      vpcId: ${albExampleTfVpc.id}\n      loadBalancerBillingConfig:\n        payType: PayAsYouGo\n      addressType: Intranet\n      addressAllocatedMode: Fixed\n      zoneMappings:\n        - vswitchId: ${defaultDSY0JJ.id}\n          zoneId: ${defaultDSY0JJ.zoneId}\n        - vswitchId: ${albExampleTfJ.id}\n          zoneId: ${albExampleTfJ.zoneId}\n        - vswitchId: ${albExampleTfK.id}\n          zoneId: ${albExampleTfK.zoneId}\n  defaultLoadBalancerAccessLogConfigAttachment:\n    type: alicloud:alb:LoadBalancerAccessLogConfigAttachment\n    name: default\n    properties:\n      logStore: ${name}-${default.result}\n      loadBalancerId: ${defaultDYswYo.id}\n      logProject: ${name}-${default.result}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Load Balancer (ALB) Load Balancer Access Log Config Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alb/loadBalancerAccessLogConfigAttachment:LoadBalancerAccessLogConfigAttachment example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"loadBalancerId":{"type":"string","description":"The ID of the load balancing instance.\n"},"logProject":{"type":"string","description":"The log items shipped by the access log.\n"},"logStore":{"type":"string","description":"Logstore for log delivery.\n"}},"required":["createTime","loadBalancerId","logProject","logStore"],"inputProperties":{"loadBalancerId":{"type":"string","description":"The ID of the load balancing instance.\n","willReplaceOnChanges":true},"logProject":{"type":"string","description":"The log items shipped by the access log.\n","willReplaceOnChanges":true},"logStore":{"type":"string","description":"Logstore for log delivery.\n","willReplaceOnChanges":true}},"requiredInputs":["loadBalancerId","logProject","logStore"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancerAccessLogConfigAttachment resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"loadBalancerId":{"type":"string","description":"The ID of the load balancing instance.\n","willReplaceOnChanges":true},"logProject":{"type":"string","description":"The log items shipped by the access log.\n","willReplaceOnChanges":true},"logStore":{"type":"string","description":"Logstore for log delivery.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:alb/loadBalancerCommonBandwidthPackageAttachment:LoadBalancerCommonBandwidthPackageAttachment":{"description":"Provides a Alb Load Balancer Common Bandwidth Package Attachment resource.\n\nFor information about Alb Load Balancer Common Bandwidth Package Attachment and how to use it, see [What is Load Balancer Common Bandwidth Package Attachment](https://www.alibabacloud.com/help/en/slb/application-load-balancer/developer-reference/api-alb-2020-06-16-attachcommonbandwidthpackagetoloadbalancer).\n\n\u003e **NOTE:** Available since v1.200.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.alb.getZones({});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultSwitch.push(new alicloud.vpc.Switch(`default-${range.value}`, {\n        vpcId: defaultNetwork.id,\n        cidrBlock: std.format({\n            input: \"10.4.%d.0/24\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        zoneId: _default.then(_default =\u003e _default.zones[range.value].id),\n        vswitchName: std.format({\n            input: `${name}_%d`,\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst defaultLoadBalancer = new alicloud.alb.LoadBalancer(\"default\", {\n    vpcId: defaultNetwork.id,\n    addressType: \"Internet\",\n    addressAllocatedMode: \"Fixed\",\n    loadBalancerName: name,\n    loadBalancerEdition: \"Basic\",\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    loadBalancerBillingConfig: {\n        payType: \"PayAsYouGo\",\n    },\n    tags: {\n        Created: \"TF\",\n    },\n    zoneMappings: [\n        {\n            vswitchId: defaultSwitch[0].id,\n            zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n        },\n        {\n            vswitchId: defaultSwitch[1].id,\n            zoneId: _default.then(_default =\u003e _default.zones?.[1]?.id),\n        },\n    ],\n    modificationProtectionConfig: {\n        status: \"NonProtection\",\n    },\n});\nconst defaultCommonBandwithPackage = new alicloud.vpc.CommonBandwithPackage(\"default\", {\n    bandwidth: \"3\",\n    internetChargeType: \"PayByBandwidth\",\n});\nconst defaultLoadBalancerCommonBandwidthPackageAttachment = new alicloud.alb.LoadBalancerCommonBandwidthPackageAttachment(\"default\", {\n    bandwidthPackageId: defaultCommonBandwithPackage.id,\n    loadBalancerId: defaultLoadBalancer.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.alb.get_zones()\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_switch.append(alicloud.vpc.Switch(f\"default-{range['value']}\",\n        vpc_id=default_network.id,\n        cidr_block=std.format(input=\"10.4.%d.0/24\",\n            args=[range[\"value\"] + 1]).result,\n        zone_id=default.zones[range[\"value\"]].id,\n        vswitch_name=std.format(input=f\"{name}_%d\",\n            args=[range[\"value\"] + 1]).result))\ndefault_load_balancer = alicloud.alb.LoadBalancer(\"default\",\n    vpc_id=default_network.id,\n    address_type=\"Internet\",\n    address_allocated_mode=\"Fixed\",\n    load_balancer_name=name,\n    load_balancer_edition=\"Basic\",\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    load_balancer_billing_config={\n        \"pay_type\": \"PayAsYouGo\",\n    },\n    tags={\n        \"Created\": \"TF\",\n    },\n    zone_mappings=[\n        {\n            \"vswitch_id\": default_switch[0].id,\n            \"zone_id\": default.zones[0].id,\n        },\n        {\n            \"vswitch_id\": default_switch[1].id,\n            \"zone_id\": default.zones[1].id,\n        },\n    ],\n    modification_protection_config={\n        \"status\": \"NonProtection\",\n    })\ndefault_common_bandwith_package = alicloud.vpc.CommonBandwithPackage(\"default\",\n    bandwidth=\"3\",\n    internet_charge_type=\"PayByBandwidth\")\ndefault_load_balancer_common_bandwidth_package_attachment = alicloud.alb.LoadBalancerCommonBandwidthPackageAttachment(\"default\",\n    bandwidth_package_id=default_common_bandwith_package.id,\n    load_balancer_id=default_load_balancer.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.Alb.GetZones.Invoke();\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSwitch.Add(new AliCloud.Vpc.Switch($\"default-{range.Value}\", new()\n        {\n            VpcId = defaultNetwork.Id,\n            CidrBlock = Std.Format.Invoke(new()\n            {\n                Input = \"10.4.%d.0/24\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[range.Value].Id),\n            VswitchName = Std.Format.Invoke(new()\n            {\n                Input = $\"{name}_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var defaultLoadBalancer = new AliCloud.Alb.LoadBalancer(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        AddressType = \"Internet\",\n        AddressAllocatedMode = \"Fixed\",\n        LoadBalancerName = name,\n        LoadBalancerEdition = \"Basic\",\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        LoadBalancerBillingConfig = new AliCloud.Alb.Inputs.LoadBalancerLoadBalancerBillingConfigArgs\n        {\n            PayType = \"PayAsYouGo\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n        ZoneMappings = new[]\n        {\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch[0].Id,\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n            },\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch[1].Id,\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id)),\n            },\n        },\n        ModificationProtectionConfig = new AliCloud.Alb.Inputs.LoadBalancerModificationProtectionConfigArgs\n        {\n            Status = \"NonProtection\",\n        },\n    });\n\n    var defaultCommonBandwithPackage = new AliCloud.Vpc.CommonBandwithPackage(\"default\", new()\n    {\n        Bandwidth = \"3\",\n        InternetChargeType = \"PayByBandwidth\",\n    });\n\n    var defaultLoadBalancerCommonBandwidthPackageAttachment = new AliCloud.Alb.LoadBalancerCommonBandwidthPackageAttachment(\"default\", new()\n    {\n        BandwidthPackageId = defaultCommonBandwithPackage.Id,\n        LoadBalancerId = defaultLoadBalancer.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alb.GetZones(ctx, \u0026alb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"10.4.%d.0/24\",\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: fmt.Sprintf(\"%v%v\", name, \"_%d\"),\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar defaultSwitch []*vpc.Switch\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026vpc.SwitchArgs{\n\t\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\t\tCidrBlock:   pulumi.String(invokeFormat.Result),\n\t\t\t\tZoneId:      _default.Zones[val0].Id,\n\t\t\t\tVswitchName: pulumi.String(invokeFormat1.Result),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultSwitch = append(defaultSwitch, __res)\n\t\t}\n\t\tdefaultLoadBalancer, err := alb.NewLoadBalancer(ctx, \"default\", \u0026alb.LoadBalancerArgs{\n\t\t\tVpcId:                defaultNetwork.ID(),\n\t\t\tAddressType:          pulumi.String(\"Internet\"),\n\t\t\tAddressAllocatedMode: pulumi.String(\"Fixed\"),\n\t\t\tLoadBalancerName:     pulumi.String(name),\n\t\t\tLoadBalancerEdition:  pulumi.String(\"Basic\"),\n\t\t\tResourceGroupId:      pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tLoadBalancerBillingConfig: \u0026alb.LoadBalancerLoadBalancerBillingConfigArgs{\n\t\t\t\tPayType: pulumi.String(\"PayAsYouGo\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t\tZoneMappings: alb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch[0].ID(),\n\t\t\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t\t\t},\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch[1].ID(),\n\t\t\t\t\tZoneId:    pulumi.String(_default.Zones[1].Id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tModificationProtectionConfig: \u0026alb.LoadBalancerModificationProtectionConfigArgs{\n\t\t\t\tStatus: pulumi.String(\"NonProtection\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCommonBandwithPackage, err := vpc.NewCommonBandwithPackage(ctx, \"default\", \u0026vpc.CommonBandwithPackageArgs{\n\t\t\tBandwidth:          pulumi.String(\"3\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByBandwidth\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alb.NewLoadBalancerCommonBandwidthPackageAttachment(ctx, \"default\", \u0026alb.LoadBalancerCommonBandwidthPackageAttachmentArgs{\n\t\t\tBandwidthPackageId: defaultCommonBandwithPackage.ID(),\n\t\t\tLoadBalancerId:     defaultLoadBalancer.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.alb.LoadBalancer;\nimport com.pulumi.alicloud.alb.LoadBalancerArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerLoadBalancerBillingConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerModificationProtectionConfigArgs;\nimport com.pulumi.alicloud.vpc.CommonBandwithPackage;\nimport com.pulumi.alicloud.vpc.CommonBandwithPackageArgs;\nimport com.pulumi.alicloud.alb.LoadBalancerCommonBandwidthPackageAttachment;\nimport com.pulumi.alicloud.alb.LoadBalancerCommonBandwidthPackageAttachmentArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Switch(\"defaultSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(defaultNetwork.id())\n                .cidrBlock(StdFunctions.format(FormatArgs.builder()\n                    .input(\"10.4.%d.0/24\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .zoneId(default_.zones()[range.value()].id())\n                .vswitchName(StdFunctions.format(FormatArgs.builder()\n                    .input(String.format(\"%s_%d\", name))\n                    .args(range.value() + 1)\n                    .build()).result())\n                .build());\n\n        \n}\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .addressType(\"Internet\")\n            .addressAllocatedMode(\"Fixed\")\n            .loadBalancerName(name)\n            .loadBalancerEdition(\"Basic\")\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .loadBalancerBillingConfig(LoadBalancerLoadBalancerBillingConfigArgs.builder()\n                .payType(\"PayAsYouGo\")\n                .build())\n            .tags(Map.of(\"Created\", \"TF\"))\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch[0].id())\n                    .zoneId(default_.zones()[0].id())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch[1].id())\n                    .zoneId(default_.zones()[1].id())\n                    .build())\n            .modificationProtectionConfig(LoadBalancerModificationProtectionConfigArgs.builder()\n                .status(\"NonProtection\")\n                .build())\n            .build());\n\n        var defaultCommonBandwithPackage = new CommonBandwithPackage(\"defaultCommonBandwithPackage\", CommonBandwithPackageArgs.builder()\n            .bandwidth(\"3\")\n            .internetChargeType(\"PayByBandwidth\")\n            .build());\n\n        var defaultLoadBalancerCommonBandwidthPackageAttachment = new LoadBalancerCommonBandwidthPackageAttachment(\"defaultLoadBalancerCommonBandwidthPackageAttachment\", LoadBalancerCommonBandwidthPackageAttachmentArgs.builder()\n            .bandwidthPackageId(defaultCommonBandwithPackage.id())\n            .loadBalancerId(defaultLoadBalancer.id())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAlb Load Balancer Common Bandwidth Package Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alb/loadBalancerCommonBandwidthPackageAttachment:LoadBalancerCommonBandwidthPackageAttachment example \u003cload_balancer_id\u003e:\u003cbandwidth_package_id\u003e\n```\n\n","properties":{"bandwidthPackageId":{"type":"string","description":"The ID of the bound shared bandwidth package.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck this request only. Value:-**true**: sends a check request and does not bind the shared bandwidth package to the load balancing instance. Check items include whether required parameters, request format, and business restrictions have been filled in. If the check fails, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.-**false** (default): Sends a normal request, returns the HTTP 2xx status code after the check, and directly performs the operation.\n"},"loadBalancerId":{"type":"string","description":"The ID of the applied server load balancer instance.\n"},"status":{"type":"string","description":"The status of the Application Load balancing instance. Value:-**Inactive**: Stopped, indicating that the instance listener will no longer forward traffic.-**Active**: running.-**Provisioning**: The project is being created.-**Configuring**: The configuration is being changed.-**CreateFailed**: The instance cannot be deleted without any charge.\n"}},"required":["bandwidthPackageId","loadBalancerId","status"],"inputProperties":{"bandwidthPackageId":{"type":"string","description":"The ID of the bound shared bandwidth package.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Whether to PreCheck this request only. Value:-**true**: sends a check request and does not bind the shared bandwidth package to the load balancing instance. Check items include whether required parameters, request format, and business restrictions have been filled in. If the check fails, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.-**false** (default): Sends a normal request, returns the HTTP 2xx status code after the check, and directly performs the operation.\n"},"loadBalancerId":{"type":"string","description":"The ID of the applied server load balancer instance.\n","willReplaceOnChanges":true}},"requiredInputs":["bandwidthPackageId","loadBalancerId"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancerCommonBandwidthPackageAttachment resources.\n","properties":{"bandwidthPackageId":{"type":"string","description":"The ID of the bound shared bandwidth package.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Whether to PreCheck this request only. Value:-**true**: sends a check request and does not bind the shared bandwidth package to the load balancing instance. Check items include whether required parameters, request format, and business restrictions have been filled in. If the check fails, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.-**false** (default): Sends a normal request, returns the HTTP 2xx status code after the check, and directly performs the operation.\n"},"loadBalancerId":{"type":"string","description":"The ID of the applied server load balancer instance.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Application Load balancing instance. Value:-**Inactive**: Stopped, indicating that the instance listener will no longer forward traffic.-**Active**: running.-**Provisioning**: The project is being created.-**Configuring**: The configuration is being changed.-**CreateFailed**: The instance cannot be deleted without any charge.\n"}},"type":"object"}},"alicloud:alb/loadBalancerSecurityGroupAttachment:LoadBalancerSecurityGroupAttachment":{"description":"Provides a Application Load Balancer (ALB) Load Balancer Security Group Attachment resource.\n\nAttachment between Application Load Balancer and Security Group.\n\nFor information about Application Load Balancer (ALB) Load Balancer Security Group Attachment and how to use it, see [What is Load Balancer Security Group Attachment](https://next.api.alibabacloud.com/document/Alb/2020-06-16/LoadBalancerJoinSecurityGroup).\n\n\u003e **NOTE:** Available since v1.226.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst createVpc = new alicloud.vpc.Network(\"create_vpc\", {\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: name,\n});\nconst createVsw1 = new alicloud.vpc.Switch(\"create_vsw_1\", {\n    vpcId: createVpc.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    cidrBlock: \"192.168.1.0/24\",\n    vswitchName: name,\n});\nconst createVsw2 = new alicloud.vpc.Switch(\"create_vsw_2\", {\n    vpcId: createVpc.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[1]?.id),\n    cidrBlock: \"192.168.2.0/24\",\n    vswitchName: name,\n});\nconst createSecurityGroup = new alicloud.ecs.SecurityGroup(\"create_security_group\", {\n    name: name,\n    vpcId: createVpc.id,\n});\nconst createAlb = new alicloud.alb.LoadBalancer(\"create_alb\", {\n    loadBalancerName: name,\n    loadBalancerEdition: \"Standard\",\n    vpcId: createVpc.id,\n    loadBalancerBillingConfig: {\n        payType: \"PayAsYouGo\",\n    },\n    addressType: \"Intranet\",\n    addressAllocatedMode: \"Fixed\",\n    zoneMappings: [\n        {\n            vswitchId: createVsw2.id,\n            zoneId: createVsw2.zoneId,\n        },\n        {\n            vswitchId: createVsw1.id,\n            zoneId: createVsw1.zoneId,\n        },\n    ],\n});\nconst defaultLoadBalancerSecurityGroupAttachment = new alicloud.alb.LoadBalancerSecurityGroupAttachment(\"default\", {\n    securityGroupId: createSecurityGroup.id,\n    loadBalancerId: createAlb.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ncreate_vpc = alicloud.vpc.Network(\"create_vpc\",\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=name)\ncreate_vsw1 = alicloud.vpc.Switch(\"create_vsw_1\",\n    vpc_id=create_vpc.id,\n    zone_id=default.zones[0].id,\n    cidr_block=\"192.168.1.0/24\",\n    vswitch_name=name)\ncreate_vsw2 = alicloud.vpc.Switch(\"create_vsw_2\",\n    vpc_id=create_vpc.id,\n    zone_id=default.zones[1].id,\n    cidr_block=\"192.168.2.0/24\",\n    vswitch_name=name)\ncreate_security_group = alicloud.ecs.SecurityGroup(\"create_security_group\",\n    name=name,\n    vpc_id=create_vpc.id)\ncreate_alb = alicloud.alb.LoadBalancer(\"create_alb\",\n    load_balancer_name=name,\n    load_balancer_edition=\"Standard\",\n    vpc_id=create_vpc.id,\n    load_balancer_billing_config={\n        \"pay_type\": \"PayAsYouGo\",\n    },\n    address_type=\"Intranet\",\n    address_allocated_mode=\"Fixed\",\n    zone_mappings=[\n        {\n            \"vswitch_id\": create_vsw2.id,\n            \"zone_id\": create_vsw2.zone_id,\n        },\n        {\n            \"vswitch_id\": create_vsw1.id,\n            \"zone_id\": create_vsw1.zone_id,\n        },\n    ])\ndefault_load_balancer_security_group_attachment = alicloud.alb.LoadBalancerSecurityGroupAttachment(\"default\",\n    security_group_id=create_security_group.id,\n    load_balancer_id=create_alb.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var createVpc = new AliCloud.Vpc.Network(\"create_vpc\", new()\n    {\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = name,\n    });\n\n    var createVsw1 = new AliCloud.Vpc.Switch(\"create_vsw_1\", new()\n    {\n        VpcId = createVpc.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        CidrBlock = \"192.168.1.0/24\",\n        VswitchName = name,\n    });\n\n    var createVsw2 = new AliCloud.Vpc.Switch(\"create_vsw_2\", new()\n    {\n        VpcId = createVpc.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id)),\n        CidrBlock = \"192.168.2.0/24\",\n        VswitchName = name,\n    });\n\n    var createSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"create_security_group\", new()\n    {\n        Name = name,\n        VpcId = createVpc.Id,\n    });\n\n    var createAlb = new AliCloud.Alb.LoadBalancer(\"create_alb\", new()\n    {\n        LoadBalancerName = name,\n        LoadBalancerEdition = \"Standard\",\n        VpcId = createVpc.Id,\n        LoadBalancerBillingConfig = new AliCloud.Alb.Inputs.LoadBalancerLoadBalancerBillingConfigArgs\n        {\n            PayType = \"PayAsYouGo\",\n        },\n        AddressType = \"Intranet\",\n        AddressAllocatedMode = \"Fixed\",\n        ZoneMappings = new[]\n        {\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = createVsw2.Id,\n                ZoneId = createVsw2.ZoneId,\n            },\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = createVsw1.Id,\n                ZoneId = createVsw1.ZoneId,\n            },\n        },\n    });\n\n    var defaultLoadBalancerSecurityGroupAttachment = new AliCloud.Alb.LoadBalancerSecurityGroupAttachment(\"default\", new()\n    {\n        SecurityGroupId = createSecurityGroup.Id,\n        LoadBalancerId = createAlb.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateVpc, err := vpc.NewNetwork(ctx, \"create_vpc\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateVsw1, err := vpc.NewSwitch(ctx, \"create_vsw_1\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       createVpc.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.1.0/24\"),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateVsw2, err := vpc.NewSwitch(ctx, \"create_vsw_2\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       createVpc.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[1].Id),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.2.0/24\"),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"create_security_group\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: createVpc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateAlb, err := alb.NewLoadBalancer(ctx, \"create_alb\", \u0026alb.LoadBalancerArgs{\n\t\t\tLoadBalancerName:    pulumi.String(name),\n\t\t\tLoadBalancerEdition: pulumi.String(\"Standard\"),\n\t\t\tVpcId:               createVpc.ID(),\n\t\t\tLoadBalancerBillingConfig: \u0026alb.LoadBalancerLoadBalancerBillingConfigArgs{\n\t\t\t\tPayType: pulumi.String(\"PayAsYouGo\"),\n\t\t\t},\n\t\t\tAddressType:          pulumi.String(\"Intranet\"),\n\t\t\tAddressAllocatedMode: pulumi.String(\"Fixed\"),\n\t\t\tZoneMappings: alb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: createVsw2.ID(),\n\t\t\t\t\tZoneId:    createVsw2.ZoneId,\n\t\t\t\t},\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: createVsw1.ID(),\n\t\t\t\t\tZoneId:    createVsw1.ZoneId,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alb.NewLoadBalancerSecurityGroupAttachment(ctx, \"default\", \u0026alb.LoadBalancerSecurityGroupAttachmentArgs{\n\t\t\tSecurityGroupId: createSecurityGroup.ID(),\n\t\t\tLoadBalancerId:  createAlb.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.alb.LoadBalancer;\nimport com.pulumi.alicloud.alb.LoadBalancerArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerLoadBalancerBillingConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.alb.LoadBalancerSecurityGroupAttachment;\nimport com.pulumi.alicloud.alb.LoadBalancerSecurityGroupAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var createVpc = new Network(\"createVpc\", NetworkArgs.builder()\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(name)\n            .build());\n\n        var createVsw1 = new Switch(\"createVsw1\", SwitchArgs.builder()\n            .vpcId(createVpc.id())\n            .zoneId(default_.zones()[0].id())\n            .cidrBlock(\"192.168.1.0/24\")\n            .vswitchName(name)\n            .build());\n\n        var createVsw2 = new Switch(\"createVsw2\", SwitchArgs.builder()\n            .vpcId(createVpc.id())\n            .zoneId(default_.zones()[1].id())\n            .cidrBlock(\"192.168.2.0/24\")\n            .vswitchName(name)\n            .build());\n\n        var createSecurityGroup = new SecurityGroup(\"createSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(createVpc.id())\n            .build());\n\n        var createAlb = new LoadBalancer(\"createAlb\", LoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .loadBalancerEdition(\"Standard\")\n            .vpcId(createVpc.id())\n            .loadBalancerBillingConfig(LoadBalancerLoadBalancerBillingConfigArgs.builder()\n                .payType(\"PayAsYouGo\")\n                .build())\n            .addressType(\"Intranet\")\n            .addressAllocatedMode(\"Fixed\")\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(createVsw2.id())\n                    .zoneId(createVsw2.zoneId())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(createVsw1.id())\n                    .zoneId(createVsw1.zoneId())\n                    .build())\n            .build());\n\n        var defaultLoadBalancerSecurityGroupAttachment = new LoadBalancerSecurityGroupAttachment(\"defaultLoadBalancerSecurityGroupAttachment\", LoadBalancerSecurityGroupAttachmentArgs.builder()\n            .securityGroupId(createSecurityGroup.id())\n            .loadBalancerId(createAlb.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createVpc:\n    type: alicloud:vpc:Network\n    name: create_vpc\n    properties:\n      cidrBlock: 192.168.0.0/16\n      vpcName: ${name}\n  createVsw1:\n    type: alicloud:vpc:Switch\n    name: create_vsw_1\n    properties:\n      vpcId: ${createVpc.id}\n      zoneId: ${default.zones[0].id}\n      cidrBlock: 192.168.1.0/24\n      vswitchName: ${name}\n  createVsw2:\n    type: alicloud:vpc:Switch\n    name: create_vsw_2\n    properties:\n      vpcId: ${createVpc.id}\n      zoneId: ${default.zones[1].id}\n      cidrBlock: 192.168.2.0/24\n      vswitchName: ${name}\n  createSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: create_security_group\n    properties:\n      name: ${name}\n      vpcId: ${createVpc.id}\n  createAlb:\n    type: alicloud:alb:LoadBalancer\n    name: create_alb\n    properties:\n      loadBalancerName: ${name}\n      loadBalancerEdition: Standard\n      vpcId: ${createVpc.id}\n      loadBalancerBillingConfig:\n        payType: PayAsYouGo\n      addressType: Intranet\n      addressAllocatedMode: Fixed\n      zoneMappings:\n        - vswitchId: ${createVsw2.id}\n          zoneId: ${createVsw2.zoneId}\n        - vswitchId: ${createVsw1.id}\n          zoneId: ${createVsw1.zoneId}\n  defaultLoadBalancerSecurityGroupAttachment:\n    type: alicloud:alb:LoadBalancerSecurityGroupAttachment\n    name: default\n    properties:\n      securityGroupId: ${createSecurityGroup.id}\n      loadBalancerId: ${createAlb.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Load Balancer (ALB) Load Balancer Security Group Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alb/loadBalancerSecurityGroupAttachment:LoadBalancerSecurityGroupAttachment example \u003cload_balancer_id\u003e:\u003csecurity_group_id\u003e\n```\n\n","properties":{"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\n"},"loadBalancerId":{"type":"string","description":"The ID of the Application Load Balancer.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n"}},"required":["loadBalancerId","securityGroupId"],"inputProperties":{"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\n"},"loadBalancerId":{"type":"string","description":"The ID of the Application Load Balancer.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group.\n","willReplaceOnChanges":true}},"requiredInputs":["loadBalancerId"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancerSecurityGroupAttachment resources.\n","properties":{"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\n"},"loadBalancerId":{"type":"string","description":"The ID of the Application Load Balancer.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:alb/loadBalancerZoneShiftedAttachment:LoadBalancerZoneShiftedAttachment":{"description":"Provides a Application Load Balancer (ALB) Load Balancer Zone Shifted Attachment resource.\n\nApplication load balancer start-stop zone.\n\nFor information about Application Load Balancer (ALB) Load Balancer Zone Shifted Attachment and how to use it, see [What is Load Balancer Zone Shifted Attachment](https://www.alibabacloud.com/help/en/).\n\n\u003e **NOTE:** Available since v1.242.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst albExampleTfVpc = new alicloud.vpc.Network(\"alb_example_tf_vpc\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst albExampleTfJ = new alicloud.vpc.Switch(\"alb_example_tf_j\", {\n    vpcId: albExampleTfVpc.id,\n    zoneId: \"cn-beijing-j\",\n    cidrBlock: \"192.168.1.0/24\",\n    vswitchName: std.format({\n        input: \"%s1\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst albExampleTfK = new alicloud.vpc.Switch(\"alb_example_tf_k\", {\n    vpcId: albExampleTfVpc.id,\n    zoneId: \"cn-beijing-k\",\n    cidrBlock: \"192.168.2.0/24\",\n    vswitchName: std.format({\n        input: \"%s2\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst defaultDSY0JJ = new alicloud.vpc.Switch(\"defaultDSY0JJ\", {\n    vpcId: albExampleTfVpc.id,\n    zoneId: \"cn-beijing-f\",\n    cidrBlock: \"192.168.3.0/24\",\n    vswitchName: std.format({\n        input: \"%s3\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst default78TIYG = new alicloud.alb.LoadBalancer(\"default78TIYG\", {\n    loadBalancerEdition: \"Standard\",\n    vpcId: albExampleTfVpc.id,\n    loadBalancerBillingConfig: {\n        payType: \"PayAsYouGo\",\n    },\n    addressType: \"Intranet\",\n    addressAllocatedMode: \"Fixed\",\n    zoneMappings: [\n        {\n            vswitchId: albExampleTfJ.id,\n            zoneId: albExampleTfJ.zoneId,\n        },\n        {\n            vswitchId: albExampleTfK.id,\n            zoneId: albExampleTfK.zoneId,\n        },\n        {\n            vswitchId: defaultDSY0JJ.id,\n            zoneId: defaultDSY0JJ.zoneId,\n        },\n    ],\n});\nconst _default = new alicloud.alb.LoadBalancerZoneShiftedAttachment(\"default\", {\n    zoneId: defaultDSY0JJ.zoneId,\n    vswitchId: defaultDSY0JJ.id,\n    loadBalancerId: default78TIYG.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nalb_example_tf_vpc = alicloud.vpc.Network(\"alb_example_tf_vpc\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\nalb_example_tf_j = alicloud.vpc.Switch(\"alb_example_tf_j\",\n    vpc_id=alb_example_tf_vpc.id,\n    zone_id=\"cn-beijing-j\",\n    cidr_block=\"192.168.1.0/24\",\n    vswitch_name=std.format(input=\"%s1\",\n        args=[name]).result)\nalb_example_tf_k = alicloud.vpc.Switch(\"alb_example_tf_k\",\n    vpc_id=alb_example_tf_vpc.id,\n    zone_id=\"cn-beijing-k\",\n    cidr_block=\"192.168.2.0/24\",\n    vswitch_name=std.format(input=\"%s2\",\n        args=[name]).result)\ndefault_dsy0_jj = alicloud.vpc.Switch(\"defaultDSY0JJ\",\n    vpc_id=alb_example_tf_vpc.id,\n    zone_id=\"cn-beijing-f\",\n    cidr_block=\"192.168.3.0/24\",\n    vswitch_name=std.format(input=\"%s3\",\n        args=[name]).result)\ndefault78_tiyg = alicloud.alb.LoadBalancer(\"default78TIYG\",\n    load_balancer_edition=\"Standard\",\n    vpc_id=alb_example_tf_vpc.id,\n    load_balancer_billing_config={\n        \"pay_type\": \"PayAsYouGo\",\n    },\n    address_type=\"Intranet\",\n    address_allocated_mode=\"Fixed\",\n    zone_mappings=[\n        {\n            \"vswitch_id\": alb_example_tf_j.id,\n            \"zone_id\": alb_example_tf_j.zone_id,\n        },\n        {\n            \"vswitch_id\": alb_example_tf_k.id,\n            \"zone_id\": alb_example_tf_k.zone_id,\n        },\n        {\n            \"vswitch_id\": default_dsy0_jj.id,\n            \"zone_id\": default_dsy0_jj.zone_id,\n        },\n    ])\ndefault = alicloud.alb.LoadBalancerZoneShiftedAttachment(\"default\",\n    zone_id=default_dsy0_jj.zone_id,\n    vswitch_id=default_dsy0_jj.id,\n    load_balancer_id=default78_tiyg.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var albExampleTfVpc = new AliCloud.Vpc.Network(\"alb_example_tf_vpc\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var albExampleTfJ = new AliCloud.Vpc.Switch(\"alb_example_tf_j\", new()\n    {\n        VpcId = albExampleTfVpc.Id,\n        ZoneId = \"cn-beijing-j\",\n        CidrBlock = \"192.168.1.0/24\",\n        VswitchName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var albExampleTfK = new AliCloud.Vpc.Switch(\"alb_example_tf_k\", new()\n    {\n        VpcId = albExampleTfVpc.Id,\n        ZoneId = \"cn-beijing-k\",\n        CidrBlock = \"192.168.2.0/24\",\n        VswitchName = Std.Format.Invoke(new()\n        {\n            Input = \"%s2\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultDSY0JJ = new AliCloud.Vpc.Switch(\"defaultDSY0JJ\", new()\n    {\n        VpcId = albExampleTfVpc.Id,\n        ZoneId = \"cn-beijing-f\",\n        CidrBlock = \"192.168.3.0/24\",\n        VswitchName = Std.Format.Invoke(new()\n        {\n            Input = \"%s3\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var default78TIYG = new AliCloud.Alb.LoadBalancer(\"default78TIYG\", new()\n    {\n        LoadBalancerEdition = \"Standard\",\n        VpcId = albExampleTfVpc.Id,\n        LoadBalancerBillingConfig = new AliCloud.Alb.Inputs.LoadBalancerLoadBalancerBillingConfigArgs\n        {\n            PayType = \"PayAsYouGo\",\n        },\n        AddressType = \"Intranet\",\n        AddressAllocatedMode = \"Fixed\",\n        ZoneMappings = new[]\n        {\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = albExampleTfJ.Id,\n                ZoneId = albExampleTfJ.ZoneId,\n            },\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = albExampleTfK.Id,\n                ZoneId = albExampleTfK.ZoneId,\n            },\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultDSY0JJ.Id,\n                ZoneId = defaultDSY0JJ.ZoneId,\n            },\n        },\n    });\n\n    var @default = new AliCloud.Alb.LoadBalancerZoneShiftedAttachment(\"default\", new()\n    {\n        ZoneId = defaultDSY0JJ.ZoneId,\n        VswitchId = defaultDSY0JJ.Id,\n        LoadBalancerId = default78TIYG.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\talbExampleTfVpc, err := vpc.NewNetwork(ctx, \"alb_example_tf_vpc\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\talbExampleTfJ, err := vpc.NewSwitch(ctx, \"alb_example_tf_j\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       albExampleTfVpc.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-beijing-j\"),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.1.0/24\"),\n\t\t\tVswitchName: pulumi.String(invokeFormat.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s2\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\talbExampleTfK, err := vpc.NewSwitch(ctx, \"alb_example_tf_k\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       albExampleTfVpc.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-beijing-k\"),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.2.0/24\"),\n\t\t\tVswitchName: pulumi.String(invokeFormat1.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat2, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s3\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDSY0JJ, err := vpc.NewSwitch(ctx, \"defaultDSY0JJ\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       albExampleTfVpc.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-beijing-f\"),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.3.0/24\"),\n\t\t\tVswitchName: pulumi.String(invokeFormat2.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault78TIYG, err := alb.NewLoadBalancer(ctx, \"default78TIYG\", \u0026alb.LoadBalancerArgs{\n\t\t\tLoadBalancerEdition: pulumi.String(\"Standard\"),\n\t\t\tVpcId:               albExampleTfVpc.ID(),\n\t\t\tLoadBalancerBillingConfig: \u0026alb.LoadBalancerLoadBalancerBillingConfigArgs{\n\t\t\t\tPayType: pulumi.String(\"PayAsYouGo\"),\n\t\t\t},\n\t\t\tAddressType:          pulumi.String(\"Intranet\"),\n\t\t\tAddressAllocatedMode: pulumi.String(\"Fixed\"),\n\t\t\tZoneMappings: alb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: albExampleTfJ.ID(),\n\t\t\t\t\tZoneId:    albExampleTfJ.ZoneId,\n\t\t\t\t},\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: albExampleTfK.ID(),\n\t\t\t\t\tZoneId:    albExampleTfK.ZoneId,\n\t\t\t\t},\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultDSY0JJ.ID(),\n\t\t\t\t\tZoneId:    defaultDSY0JJ.ZoneId,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alb.NewLoadBalancerZoneShiftedAttachment(ctx, \"default\", \u0026alb.LoadBalancerZoneShiftedAttachmentArgs{\n\t\t\tZoneId:         defaultDSY0JJ.ZoneId,\n\t\t\tVswitchId:      defaultDSY0JJ.ID(),\n\t\t\tLoadBalancerId: default78TIYG.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.alb.LoadBalancer;\nimport com.pulumi.alicloud.alb.LoadBalancerArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerLoadBalancerBillingConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.alb.LoadBalancerZoneShiftedAttachment;\nimport com.pulumi.alicloud.alb.LoadBalancerZoneShiftedAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var albExampleTfVpc = new Network(\"albExampleTfVpc\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var albExampleTfJ = new Switch(\"albExampleTfJ\", SwitchArgs.builder()\n            .vpcId(albExampleTfVpc.id())\n            .zoneId(\"cn-beijing-j\")\n            .cidrBlock(\"192.168.1.0/24\")\n            .vswitchName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var albExampleTfK = new Switch(\"albExampleTfK\", SwitchArgs.builder()\n            .vpcId(albExampleTfVpc.id())\n            .zoneId(\"cn-beijing-k\")\n            .cidrBlock(\"192.168.2.0/24\")\n            .vswitchName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s2\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var defaultDSY0JJ = new Switch(\"defaultDSY0JJ\", SwitchArgs.builder()\n            .vpcId(albExampleTfVpc.id())\n            .zoneId(\"cn-beijing-f\")\n            .cidrBlock(\"192.168.3.0/24\")\n            .vswitchName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s3\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var default78TIYG = new LoadBalancer(\"default78TIYG\", LoadBalancerArgs.builder()\n            .loadBalancerEdition(\"Standard\")\n            .vpcId(albExampleTfVpc.id())\n            .loadBalancerBillingConfig(LoadBalancerLoadBalancerBillingConfigArgs.builder()\n                .payType(\"PayAsYouGo\")\n                .build())\n            .addressType(\"Intranet\")\n            .addressAllocatedMode(\"Fixed\")\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(albExampleTfJ.id())\n                    .zoneId(albExampleTfJ.zoneId())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(albExampleTfK.id())\n                    .zoneId(albExampleTfK.zoneId())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultDSY0JJ.id())\n                    .zoneId(defaultDSY0JJ.zoneId())\n                    .build())\n            .build());\n\n        var default_ = new LoadBalancerZoneShiftedAttachment(\"default\", LoadBalancerZoneShiftedAttachmentArgs.builder()\n            .zoneId(defaultDSY0JJ.zoneId())\n            .vswitchId(defaultDSY0JJ.id())\n            .loadBalancerId(default78TIYG.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  albExampleTfVpc:\n    type: alicloud:vpc:Network\n    name: alb_example_tf_vpc\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  albExampleTfJ:\n    type: alicloud:vpc:Switch\n    name: alb_example_tf_j\n    properties:\n      vpcId: ${albExampleTfVpc.id}\n      zoneId: cn-beijing-j\n      cidrBlock: 192.168.1.0/24\n      vswitchName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1'\n            args:\n              - ${name}\n          return: result\n  albExampleTfK:\n    type: alicloud:vpc:Switch\n    name: alb_example_tf_k\n    properties:\n      vpcId: ${albExampleTfVpc.id}\n      zoneId: cn-beijing-k\n      cidrBlock: 192.168.2.0/24\n      vswitchName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s2'\n            args:\n              - ${name}\n          return: result\n  defaultDSY0JJ:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${albExampleTfVpc.id}\n      zoneId: cn-beijing-f\n      cidrBlock: 192.168.3.0/24\n      vswitchName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s3'\n            args:\n              - ${name}\n          return: result\n  default78TIYG:\n    type: alicloud:alb:LoadBalancer\n    properties:\n      loadBalancerEdition: Standard\n      vpcId: ${albExampleTfVpc.id}\n      loadBalancerBillingConfig:\n        payType: PayAsYouGo\n      addressType: Intranet\n      addressAllocatedMode: Fixed\n      zoneMappings:\n        - vswitchId: ${albExampleTfJ.id}\n          zoneId: ${albExampleTfJ.zoneId}\n        - vswitchId: ${albExampleTfK.id}\n          zoneId: ${albExampleTfK.zoneId}\n        - vswitchId: ${defaultDSY0JJ.id}\n          zoneId: ${defaultDSY0JJ.zoneId}\n  default:\n    type: alicloud:alb:LoadBalancerZoneShiftedAttachment\n    properties:\n      zoneId: ${defaultDSY0JJ.zoneId}\n      vswitchId: ${defaultDSY0JJ.id}\n      loadBalancerId: ${default78TIYG.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Load Balancer (ALB) Load Balancer Zone Shifted Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alb/loadBalancerZoneShiftedAttachment:LoadBalancerZoneShiftedAttachment example \u003cload_balancer_id\u003e:\u003cvswitch_id\u003e:\u003czone_id\u003e\n```\n\n","properties":{"loadBalancerId":{"type":"string","description":"The ID of the load balancing instance.\n"},"status":{"type":"string","description":"Availability zone status. Value:\n"},"vswitchId":{"type":"string","description":"The VSwitch corresponding to the zone. By default, each zone uses one VSwitch and one subnet.\n"},"zoneId":{"type":"string","description":"The ID of the zone.\n"}},"required":["loadBalancerId","status","vswitchId","zoneId"],"inputProperties":{"loadBalancerId":{"type":"string","description":"The ID of the load balancing instance.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The VSwitch corresponding to the zone. By default, each zone uses one VSwitch and one subnet.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The ID of the zone.\n","willReplaceOnChanges":true}},"requiredInputs":["loadBalancerId","vswitchId","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancerZoneShiftedAttachment resources.\n","properties":{"loadBalancerId":{"type":"string","description":"The ID of the load balancing instance.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Availability zone status. Value:\n"},"vswitchId":{"type":"string","description":"The VSwitch corresponding to the zone. By default, each zone uses one VSwitch and one subnet.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The ID of the zone.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:alb/rule:Rule":{"description":"Provides a Application Load Balancer (ALB) Rule resource.\n\nFor information about Application Load Balancer (ALB) Rule and how to use it, see [What is Rule](https://www.alibabacloud.com/help/en/slb/application-load-balancer/developer-reference/api-alb-2020-06-16-createrule).\n\n\u003e **NOTE:** Available since v1.133.0.\n\n\u003e **NOTE:** This version only supports forwarding rules in the request direction.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.alb.getZones({});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultSwitch.push(new alicloud.vpc.Switch(`default-${range.value}`, {\n        vpcId: defaultNetwork.id,\n        cidrBlock: std.format({\n            input: \"10.4.%d.0/24\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        zoneId: _default.then(_default =\u003e _default.zones[range.value].id),\n        vswitchName: std.format({\n            input: `${name}_%d`,\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst defaultLoadBalancer = new alicloud.alb.LoadBalancer(\"default\", {\n    vpcId: defaultNetwork.id,\n    addressType: \"Internet\",\n    addressAllocatedMode: \"Fixed\",\n    loadBalancerName: name,\n    loadBalancerEdition: \"Standard\",\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    loadBalancerBillingConfig: {\n        payType: \"PayAsYouGo\",\n    },\n    tags: {\n        Created: \"TF\",\n    },\n    zoneMappings: [\n        {\n            vswitchId: defaultSwitch[0].id,\n            zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n        },\n        {\n            vswitchId: defaultSwitch[1].id,\n            zoneId: _default.then(_default =\u003e _default.zones?.[1]?.id),\n        },\n    ],\n});\nconst defaultServerGroup = new alicloud.alb.ServerGroup(\"default\", {\n    protocol: \"HTTP\",\n    vpcId: defaultNetwork.id,\n    serverGroupName: name,\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    healthCheckConfig: {\n        healthCheckEnabled: false,\n    },\n    stickySessionConfig: {\n        stickySessionEnabled: false,\n    },\n    tags: {\n        Created: \"TF\",\n    },\n});\nconst defaultListener = new alicloud.alb.Listener(\"default\", {\n    loadBalancerId: defaultLoadBalancer.id,\n    listenerProtocol: \"HTTP\",\n    listenerPort: 80,\n    listenerDescription: name,\n    defaultActions: [{\n        type: \"ForwardGroup\",\n        forwardGroupConfig: {\n            serverGroupTuples: [{\n                serverGroupId: defaultServerGroup.id,\n            }],\n        },\n    }],\n});\nconst defaultRule = new alicloud.alb.Rule(\"default\", {\n    ruleName: name,\n    listenerId: defaultListener.id,\n    priority: 555,\n    ruleConditions: [{\n        cookieConfig: {\n            values: [{\n                key: \"created\",\n                value: \"tf\",\n            }],\n        },\n        type: \"Cookie\",\n    }],\n    ruleActions: [{\n        forwardGroupConfig: {\n            serverGroupTuples: [{\n                serverGroupId: defaultServerGroup.id,\n            }],\n        },\n        order: 9,\n        type: \"ForwardGroup\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.alb.get_zones()\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_switch.append(alicloud.vpc.Switch(f\"default-{range['value']}\",\n        vpc_id=default_network.id,\n        cidr_block=std.format(input=\"10.4.%d.0/24\",\n            args=[range[\"value\"] + 1]).result,\n        zone_id=default.zones[range[\"value\"]].id,\n        vswitch_name=std.format(input=f\"{name}_%d\",\n            args=[range[\"value\"] + 1]).result))\ndefault_load_balancer = alicloud.alb.LoadBalancer(\"default\",\n    vpc_id=default_network.id,\n    address_type=\"Internet\",\n    address_allocated_mode=\"Fixed\",\n    load_balancer_name=name,\n    load_balancer_edition=\"Standard\",\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    load_balancer_billing_config={\n        \"pay_type\": \"PayAsYouGo\",\n    },\n    tags={\n        \"Created\": \"TF\",\n    },\n    zone_mappings=[\n        {\n            \"vswitch_id\": default_switch[0].id,\n            \"zone_id\": default.zones[0].id,\n        },\n        {\n            \"vswitch_id\": default_switch[1].id,\n            \"zone_id\": default.zones[1].id,\n        },\n    ])\ndefault_server_group = alicloud.alb.ServerGroup(\"default\",\n    protocol=\"HTTP\",\n    vpc_id=default_network.id,\n    server_group_name=name,\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    health_check_config={\n        \"health_check_enabled\": False,\n    },\n    sticky_session_config={\n        \"sticky_session_enabled\": False,\n    },\n    tags={\n        \"Created\": \"TF\",\n    })\ndefault_listener = alicloud.alb.Listener(\"default\",\n    load_balancer_id=default_load_balancer.id,\n    listener_protocol=\"HTTP\",\n    listener_port=80,\n    listener_description=name,\n    default_actions=[{\n        \"type\": \"ForwardGroup\",\n        \"forward_group_config\": {\n            \"server_group_tuples\": [{\n                \"server_group_id\": default_server_group.id,\n            }],\n        },\n    }])\ndefault_rule = alicloud.alb.Rule(\"default\",\n    rule_name=name,\n    listener_id=default_listener.id,\n    priority=555,\n    rule_conditions=[{\n        \"cookie_config\": {\n            \"values\": [{\n                \"key\": \"created\",\n                \"value\": \"tf\",\n            }],\n        },\n        \"type\": \"Cookie\",\n    }],\n    rule_actions=[{\n        \"forward_group_config\": {\n            \"server_group_tuples\": [{\n                \"server_group_id\": default_server_group.id,\n            }],\n        },\n        \"order\": 9,\n        \"type\": \"ForwardGroup\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.Alb.GetZones.Invoke();\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSwitch.Add(new AliCloud.Vpc.Switch($\"default-{range.Value}\", new()\n        {\n            VpcId = defaultNetwork.Id,\n            CidrBlock = Std.Format.Invoke(new()\n            {\n                Input = \"10.4.%d.0/24\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[range.Value].Id),\n            VswitchName = Std.Format.Invoke(new()\n            {\n                Input = $\"{name}_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var defaultLoadBalancer = new AliCloud.Alb.LoadBalancer(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        AddressType = \"Internet\",\n        AddressAllocatedMode = \"Fixed\",\n        LoadBalancerName = name,\n        LoadBalancerEdition = \"Standard\",\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        LoadBalancerBillingConfig = new AliCloud.Alb.Inputs.LoadBalancerLoadBalancerBillingConfigArgs\n        {\n            PayType = \"PayAsYouGo\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n        ZoneMappings = new[]\n        {\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch[0].Id,\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n            },\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch[1].Id,\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id)),\n            },\n        },\n    });\n\n    var defaultServerGroup = new AliCloud.Alb.ServerGroup(\"default\", new()\n    {\n        Protocol = \"HTTP\",\n        VpcId = defaultNetwork.Id,\n        ServerGroupName = name,\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        HealthCheckConfig = new AliCloud.Alb.Inputs.ServerGroupHealthCheckConfigArgs\n        {\n            HealthCheckEnabled = false,\n        },\n        StickySessionConfig = new AliCloud.Alb.Inputs.ServerGroupStickySessionConfigArgs\n        {\n            StickySessionEnabled = false,\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n    });\n\n    var defaultListener = new AliCloud.Alb.Listener(\"default\", new()\n    {\n        LoadBalancerId = defaultLoadBalancer.Id,\n        ListenerProtocol = \"HTTP\",\n        ListenerPort = 80,\n        ListenerDescription = name,\n        DefaultActions = new[]\n        {\n            new AliCloud.Alb.Inputs.ListenerDefaultActionArgs\n            {\n                Type = \"ForwardGroup\",\n                ForwardGroupConfig = new AliCloud.Alb.Inputs.ListenerDefaultActionForwardGroupConfigArgs\n                {\n                    ServerGroupTuples = new[]\n                    {\n                        new AliCloud.Alb.Inputs.ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs\n                        {\n                            ServerGroupId = defaultServerGroup.Id,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var defaultRule = new AliCloud.Alb.Rule(\"default\", new()\n    {\n        RuleName = name,\n        ListenerId = defaultListener.Id,\n        Priority = 555,\n        RuleConditions = new[]\n        {\n            new AliCloud.Alb.Inputs.RuleRuleConditionArgs\n            {\n                CookieConfig = new AliCloud.Alb.Inputs.RuleRuleConditionCookieConfigArgs\n                {\n                    Values = new[]\n                    {\n                        new AliCloud.Alb.Inputs.RuleRuleConditionCookieConfigValueArgs\n                        {\n                            Key = \"created\",\n                            Value = \"tf\",\n                        },\n                    },\n                },\n                Type = \"Cookie\",\n            },\n        },\n        RuleActions = new[]\n        {\n            new AliCloud.Alb.Inputs.RuleRuleActionArgs\n            {\n                ForwardGroupConfig = new AliCloud.Alb.Inputs.RuleRuleActionForwardGroupConfigArgs\n                {\n                    ServerGroupTuples = new[]\n                    {\n                        new AliCloud.Alb.Inputs.RuleRuleActionForwardGroupConfigServerGroupTupleArgs\n                        {\n                            ServerGroupId = defaultServerGroup.Id,\n                        },\n                    },\n                },\n                Order = 9,\n                Type = \"ForwardGroup\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alb.GetZones(ctx, \u0026alb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"10.4.%d.0/24\",\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: fmt.Sprintf(\"%v%v\", name, \"_%d\"),\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar defaultSwitch []*vpc.Switch\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026vpc.SwitchArgs{\n\t\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\t\tCidrBlock:   pulumi.String(invokeFormat.Result),\n\t\t\t\tZoneId:      _default.Zones[val0].Id,\n\t\t\t\tVswitchName: pulumi.String(invokeFormat1.Result),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultSwitch = append(defaultSwitch, __res)\n\t\t}\n\t\tdefaultLoadBalancer, err := alb.NewLoadBalancer(ctx, \"default\", \u0026alb.LoadBalancerArgs{\n\t\t\tVpcId:                defaultNetwork.ID(),\n\t\t\tAddressType:          pulumi.String(\"Internet\"),\n\t\t\tAddressAllocatedMode: pulumi.String(\"Fixed\"),\n\t\t\tLoadBalancerName:     pulumi.String(name),\n\t\t\tLoadBalancerEdition:  pulumi.String(\"Standard\"),\n\t\t\tResourceGroupId:      pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tLoadBalancerBillingConfig: \u0026alb.LoadBalancerLoadBalancerBillingConfigArgs{\n\t\t\t\tPayType: pulumi.String(\"PayAsYouGo\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t\tZoneMappings: alb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch[0].ID(),\n\t\t\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t\t\t},\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch[1].ID(),\n\t\t\t\t\tZoneId:    pulumi.String(_default.Zones[1].Id),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultServerGroup, err := alb.NewServerGroup(ctx, \"default\", \u0026alb.ServerGroupArgs{\n\t\t\tProtocol:        pulumi.String(\"HTTP\"),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t\tServerGroupName: pulumi.String(name),\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tHealthCheckConfig: \u0026alb.ServerGroupHealthCheckConfigArgs{\n\t\t\t\tHealthCheckEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tStickySessionConfig: \u0026alb.ServerGroupStickySessionConfigArgs{\n\t\t\t\tStickySessionEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultListener, err := alb.NewListener(ctx, \"default\", \u0026alb.ListenerArgs{\n\t\t\tLoadBalancerId:      defaultLoadBalancer.ID(),\n\t\t\tListenerProtocol:    pulumi.String(\"HTTP\"),\n\t\t\tListenerPort:        pulumi.Int(80),\n\t\t\tListenerDescription: pulumi.String(name),\n\t\t\tDefaultActions: alb.ListenerDefaultActionArray{\n\t\t\t\t\u0026alb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"ForwardGroup\"),\n\t\t\t\t\tForwardGroupConfig: \u0026alb.ListenerDefaultActionForwardGroupConfigArgs{\n\t\t\t\t\t\tServerGroupTuples: alb.ListenerDefaultActionForwardGroupConfigServerGroupTupleArray{\n\t\t\t\t\t\t\t\u0026alb.ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs{\n\t\t\t\t\t\t\t\tServerGroupId: defaultServerGroup.ID(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alb.NewRule(ctx, \"default\", \u0026alb.RuleArgs{\n\t\t\tRuleName:   pulumi.String(name),\n\t\t\tListenerId: defaultListener.ID(),\n\t\t\tPriority:   pulumi.Int(555),\n\t\t\tRuleConditions: alb.RuleRuleConditionArray{\n\t\t\t\t\u0026alb.RuleRuleConditionArgs{\n\t\t\t\t\tCookieConfig: \u0026alb.RuleRuleConditionCookieConfigArgs{\n\t\t\t\t\t\tValues: alb.RuleRuleConditionCookieConfigValueArray{\n\t\t\t\t\t\t\t\u0026alb.RuleRuleConditionCookieConfigValueArgs{\n\t\t\t\t\t\t\t\tKey:   pulumi.String(\"created\"),\n\t\t\t\t\t\t\t\tValue: pulumi.String(\"tf\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tType: pulumi.String(\"Cookie\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRuleActions: alb.RuleRuleActionArray{\n\t\t\t\t\u0026alb.RuleRuleActionArgs{\n\t\t\t\t\tForwardGroupConfig: \u0026alb.RuleRuleActionForwardGroupConfigArgs{\n\t\t\t\t\t\tServerGroupTuples: alb.RuleRuleActionForwardGroupConfigServerGroupTupleArray{\n\t\t\t\t\t\t\t\u0026alb.RuleRuleActionForwardGroupConfigServerGroupTupleArgs{\n\t\t\t\t\t\t\t\tServerGroupId: defaultServerGroup.ID(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tOrder: pulumi.Int(9),\n\t\t\t\t\tType:  pulumi.String(\"ForwardGroup\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.alb.LoadBalancer;\nimport com.pulumi.alicloud.alb.LoadBalancerArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerLoadBalancerBillingConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.alb.ServerGroup;\nimport com.pulumi.alicloud.alb.ServerGroupArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupHealthCheckConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupStickySessionConfigArgs;\nimport com.pulumi.alicloud.alb.Listener;\nimport com.pulumi.alicloud.alb.ListenerArgs;\nimport com.pulumi.alicloud.alb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.alicloud.alb.inputs.ListenerDefaultActionForwardGroupConfigArgs;\nimport com.pulumi.alicloud.alb.Rule;\nimport com.pulumi.alicloud.alb.RuleArgs;\nimport com.pulumi.alicloud.alb.inputs.RuleRuleConditionArgs;\nimport com.pulumi.alicloud.alb.inputs.RuleRuleConditionCookieConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.RuleRuleActionArgs;\nimport com.pulumi.alicloud.alb.inputs.RuleRuleActionForwardGroupConfigArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Switch(\"defaultSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(defaultNetwork.id())\n                .cidrBlock(StdFunctions.format(FormatArgs.builder()\n                    .input(\"10.4.%d.0/24\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .zoneId(default_.zones()[range.value()].id())\n                .vswitchName(StdFunctions.format(FormatArgs.builder()\n                    .input(String.format(\"%s_%d\", name))\n                    .args(range.value() + 1)\n                    .build()).result())\n                .build());\n\n        \n}\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .addressType(\"Internet\")\n            .addressAllocatedMode(\"Fixed\")\n            .loadBalancerName(name)\n            .loadBalancerEdition(\"Standard\")\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .loadBalancerBillingConfig(LoadBalancerLoadBalancerBillingConfigArgs.builder()\n                .payType(\"PayAsYouGo\")\n                .build())\n            .tags(Map.of(\"Created\", \"TF\"))\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch[0].id())\n                    .zoneId(default_.zones()[0].id())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch[1].id())\n                    .zoneId(default_.zones()[1].id())\n                    .build())\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .protocol(\"HTTP\")\n            .vpcId(defaultNetwork.id())\n            .serverGroupName(name)\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .healthCheckConfig(ServerGroupHealthCheckConfigArgs.builder()\n                .healthCheckEnabled(false)\n                .build())\n            .stickySessionConfig(ServerGroupStickySessionConfigArgs.builder()\n                .stickySessionEnabled(false)\n                .build())\n            .tags(Map.of(\"Created\", \"TF\"))\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .loadBalancerId(defaultLoadBalancer.id())\n            .listenerProtocol(\"HTTP\")\n            .listenerPort(80)\n            .listenerDescription(name)\n            .defaultActions(ListenerDefaultActionArgs.builder()\n                .type(\"ForwardGroup\")\n                .forwardGroupConfig(ListenerDefaultActionForwardGroupConfigArgs.builder()\n                    .serverGroupTuples(ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs.builder()\n                        .serverGroupId(defaultServerGroup.id())\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var defaultRule = new Rule(\"defaultRule\", RuleArgs.builder()\n            .ruleName(name)\n            .listenerId(defaultListener.id())\n            .priority(555)\n            .ruleConditions(RuleRuleConditionArgs.builder()\n                .cookieConfig(RuleRuleConditionCookieConfigArgs.builder()\n                    .values(RuleRuleConditionCookieConfigValueArgs.builder()\n                        .key(\"created\")\n                        .value(\"tf\")\n                        .build())\n                    .build())\n                .type(\"Cookie\")\n                .build())\n            .ruleActions(RuleRuleActionArgs.builder()\n                .forwardGroupConfig(RuleRuleActionForwardGroupConfigArgs.builder()\n                    .serverGroupTuples(RuleRuleActionForwardGroupConfigServerGroupTupleArgs.builder()\n                        .serverGroupId(defaultServerGroup.id())\n                        .build())\n                    .build())\n                .order(9)\n                .type(\"ForwardGroup\")\n                .build())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Load Balancer (ALB) Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alb/rule:Rule example \u003cid\u003e\n```\n\n","properties":{"direction":{"type":"string","description":"The direction to which the forwarding rule is applied. Default value: `Request`. Valid values:\n- `Request`: The forwarding rule is applied to the client requests received by ALB.\n- `Response`: The forwarding rule is applied to the responses returned by backend servers.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to precheck this request.\n"},"listenerId":{"type":"string","description":"The ID of the listener to which the forwarding rule belongs.\n"},"priority":{"type":"integer","description":"The priority of the rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10000`\" pulumi-lang-dotnet=\"`10000`\" pulumi-lang-go=\"`10000`\" pulumi-lang-python=\"`10000`\" pulumi-lang-yaml=\"`10000`\" pulumi-lang-java=\"`10000`\"\u003e`10000`\u003c/span\u003e. A smaller value indicates a higher priority. **Note*:* The priority of each rule within the same listener must be unique.\n"},"ruleActions":{"type":"array","items":{"$ref":"#/types/alicloud:alb/RuleRuleAction:RuleRuleAction"},"description":"The actions of the forwarding rules. See \u003cspan pulumi-lang-nodejs=\"`ruleActions`\" pulumi-lang-dotnet=\"`RuleActions`\" pulumi-lang-go=\"`ruleActions`\" pulumi-lang-python=\"`rule_actions`\" pulumi-lang-yaml=\"`ruleActions`\" pulumi-lang-java=\"`ruleActions`\"\u003e`rule_actions`\u003c/span\u003e below.\n"},"ruleConditions":{"type":"array","items":{"$ref":"#/types/alicloud:alb/RuleRuleCondition:RuleRuleCondition"},"description":"The conditions of the forwarding rule. See \u003cspan pulumi-lang-nodejs=\"`ruleConditions`\" pulumi-lang-dotnet=\"`RuleConditions`\" pulumi-lang-go=\"`ruleConditions`\" pulumi-lang-python=\"`rule_conditions`\" pulumi-lang-yaml=\"`ruleConditions`\" pulumi-lang-java=\"`ruleConditions`\"\u003e`rule_conditions`\u003c/span\u003e below.\n"},"ruleName":{"type":"string","description":"The name of the forwarding rule. The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (_), and hyphens (-). The name must start with a letter.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"required":["direction","listenerId","priority","ruleActions","ruleConditions","ruleName","status"],"inputProperties":{"direction":{"type":"string","description":"The direction to which the forwarding rule is applied. Default value: `Request`. Valid values:\n- `Request`: The forwarding rule is applied to the client requests received by ALB.\n- `Response`: The forwarding rule is applied to the responses returned by backend servers.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Specifies whether to precheck this request.\n"},"listenerId":{"type":"string","description":"The ID of the listener to which the forwarding rule belongs.\n","willReplaceOnChanges":true},"priority":{"type":"integer","description":"The priority of the rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10000`\" pulumi-lang-dotnet=\"`10000`\" pulumi-lang-go=\"`10000`\" pulumi-lang-python=\"`10000`\" pulumi-lang-yaml=\"`10000`\" pulumi-lang-java=\"`10000`\"\u003e`10000`\u003c/span\u003e. A smaller value indicates a higher priority. **Note*:* The priority of each rule within the same listener must be unique.\n"},"ruleActions":{"type":"array","items":{"$ref":"#/types/alicloud:alb/RuleRuleAction:RuleRuleAction"},"description":"The actions of the forwarding rules. See \u003cspan pulumi-lang-nodejs=\"`ruleActions`\" pulumi-lang-dotnet=\"`RuleActions`\" pulumi-lang-go=\"`ruleActions`\" pulumi-lang-python=\"`rule_actions`\" pulumi-lang-yaml=\"`ruleActions`\" pulumi-lang-java=\"`ruleActions`\"\u003e`rule_actions`\u003c/span\u003e below.\n"},"ruleConditions":{"type":"array","items":{"$ref":"#/types/alicloud:alb/RuleRuleCondition:RuleRuleCondition"},"description":"The conditions of the forwarding rule. See \u003cspan pulumi-lang-nodejs=\"`ruleConditions`\" pulumi-lang-dotnet=\"`RuleConditions`\" pulumi-lang-go=\"`ruleConditions`\" pulumi-lang-python=\"`rule_conditions`\" pulumi-lang-yaml=\"`ruleConditions`\" pulumi-lang-java=\"`ruleConditions`\"\u003e`rule_conditions`\u003c/span\u003e below.\n"},"ruleName":{"type":"string","description":"The name of the forwarding rule. The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (_), and hyphens (-). The name must start with a letter.\n"}},"requiredInputs":["listenerId","priority","ruleActions","ruleConditions","ruleName"],"stateInputs":{"description":"Input properties used for looking up and filtering Rule resources.\n","properties":{"direction":{"type":"string","description":"The direction to which the forwarding rule is applied. Default value: `Request`. Valid values:\n- `Request`: The forwarding rule is applied to the client requests received by ALB.\n- `Response`: The forwarding rule is applied to the responses returned by backend servers.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Specifies whether to precheck this request.\n"},"listenerId":{"type":"string","description":"The ID of the listener to which the forwarding rule belongs.\n","willReplaceOnChanges":true},"priority":{"type":"integer","description":"The priority of the rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10000`\" pulumi-lang-dotnet=\"`10000`\" pulumi-lang-go=\"`10000`\" pulumi-lang-python=\"`10000`\" pulumi-lang-yaml=\"`10000`\" pulumi-lang-java=\"`10000`\"\u003e`10000`\u003c/span\u003e. A smaller value indicates a higher priority. **Note*:* The priority of each rule within the same listener must be unique.\n"},"ruleActions":{"type":"array","items":{"$ref":"#/types/alicloud:alb/RuleRuleAction:RuleRuleAction"},"description":"The actions of the forwarding rules. See \u003cspan pulumi-lang-nodejs=\"`ruleActions`\" pulumi-lang-dotnet=\"`RuleActions`\" pulumi-lang-go=\"`ruleActions`\" pulumi-lang-python=\"`rule_actions`\" pulumi-lang-yaml=\"`ruleActions`\" pulumi-lang-java=\"`ruleActions`\"\u003e`rule_actions`\u003c/span\u003e below.\n"},"ruleConditions":{"type":"array","items":{"$ref":"#/types/alicloud:alb/RuleRuleCondition:RuleRuleCondition"},"description":"The conditions of the forwarding rule. See \u003cspan pulumi-lang-nodejs=\"`ruleConditions`\" pulumi-lang-dotnet=\"`RuleConditions`\" pulumi-lang-go=\"`ruleConditions`\" pulumi-lang-python=\"`rule_conditions`\" pulumi-lang-yaml=\"`ruleConditions`\" pulumi-lang-java=\"`ruleConditions`\"\u003e`rule_conditions`\u003c/span\u003e below.\n"},"ruleName":{"type":"string","description":"The name of the forwarding rule. The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (_), and hyphens (-). The name must start with a letter.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object"}},"alicloud:alb/securityPolicy:SecurityPolicy":{"description":"Provides a ALB Security Policy resource.\n\nFor information about ALB Security Policy and how to use it, see [What is Security Policy](https://www.alibabacloud.com/help/en/slb/application-load-balancer/developer-reference/api-alb-2020-06-16-createsecuritypolicy).\n\n\u003e **NOTE:** Available since v1.130.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.alb.SecurityPolicy(\"default\", {\n    securityPolicyName: \"tf_example\",\n    tlsVersions: [\"TLSv1.0\"],\n    ciphers: [\n        \"ECDHE-ECDSA-AES128-SHA\",\n        \"AES256-SHA\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.alb.SecurityPolicy(\"default\",\n    security_policy_name=\"tf_example\",\n    tls_versions=[\"TLSv1.0\"],\n    ciphers=[\n        \"ECDHE-ECDSA-AES128-SHA\",\n        \"AES256-SHA\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Alb.SecurityPolicy(\"default\", new()\n    {\n        SecurityPolicyName = \"tf_example\",\n        TlsVersions = new[]\n        {\n            \"TLSv1.0\",\n        },\n        Ciphers = new[]\n        {\n            \"ECDHE-ECDSA-AES128-SHA\",\n            \"AES256-SHA\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := alb.NewSecurityPolicy(ctx, \"default\", \u0026alb.SecurityPolicyArgs{\n\t\t\tSecurityPolicyName: pulumi.String(\"tf_example\"),\n\t\t\tTlsVersions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"TLSv1.0\"),\n\t\t\t},\n\t\t\tCiphers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ECDHE-ECDSA-AES128-SHA\"),\n\t\t\t\tpulumi.String(\"AES256-SHA\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.alb.SecurityPolicy;\nimport com.pulumi.alicloud.alb.SecurityPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new SecurityPolicy(\"default\", SecurityPolicyArgs.builder()\n            .securityPolicyName(\"tf_example\")\n            .tlsVersions(\"TLSv1.0\")\n            .ciphers(            \n                \"ECDHE-ECDSA-AES128-SHA\",\n                \"AES256-SHA\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:alb:SecurityPolicy\n    properties:\n      securityPolicyName: tf_example\n      tlsVersions:\n        - TLSv1.0\n      ciphers:\n        - ECDHE-ECDSA-AES128-SHA\n        - AES256-SHA\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nALB Security Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alb/securityPolicy:SecurityPolicy example \u003cid\u003e\n```\n\n","properties":{"ciphers":{"type":"array","items":{"type":"string"},"description":"The supported cipher suites, which are determined by the TLS protocol version.The specified cipher suites must be supported by at least one TLS protocol version that you select.\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityPolicyName":{"type":"string","description":"The name of the resource. The name must be 2 to 128 characters in length and must start with a letter. It can contain digits, periods (.), underscores (_), and hyphens (-).\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"The TLS protocol versions that are supported. Valid values: TLSv1.0, TLSv1.1, TLSv1.2 and TLSv1.3.\n"}},"required":["ciphers","resourceGroupId","securityPolicyName","status","tlsVersions"],"inputProperties":{"ciphers":{"type":"array","items":{"type":"string"},"description":"The supported cipher suites, which are determined by the TLS protocol version.The specified cipher suites must be supported by at least one TLS protocol version that you select.\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityPolicyName":{"type":"string","description":"The name of the resource. The name must be 2 to 128 characters in length and must start with a letter. It can contain digits, periods (.), underscores (_), and hyphens (-).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"The TLS protocol versions that are supported. Valid values: TLSv1.0, TLSv1.1, TLSv1.2 and TLSv1.3.\n"}},"requiredInputs":["ciphers","securityPolicyName","tlsVersions"],"stateInputs":{"description":"Input properties used for looking up and filtering SecurityPolicy resources.\n","properties":{"ciphers":{"type":"array","items":{"type":"string"},"description":"The supported cipher suites, which are determined by the TLS protocol version.The specified cipher suites must be supported by at least one TLS protocol version that you select.\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityPolicyName":{"type":"string","description":"The name of the resource. The name must be 2 to 128 characters in length and must start with a letter. It can contain digits, periods (.), underscores (_), and hyphens (-).\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"The TLS protocol versions that are supported. Valid values: TLSv1.0, TLSv1.1, TLSv1.2 and TLSv1.3.\n"}},"type":"object"}},"alicloud:alb/serverGroup:ServerGroup":{"description":"Provides a Application Load Balancer (ALB) Server Group resource.\n\n\n\nFor information about Application Load Balancer (ALB) Server Group and how to use it, see [What is Server Group](https://www.alibabacloud.com/help/en/slb/application-load-balancer/developer-reference/api-alb-2020-06-16-createservergroup).\n\n\u003e **NOTE:** Available since v1.131.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = alicloud.resourcemanager.getResourceGroups({});\nconst exampleGetZones = alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n});\nconst exampleGetInstanceTypes = exampleGetZones.then(exampleGetZones =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: exampleGetZones.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst exampleGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/16\",\n    vpcId: exampleNetwork.id,\n    zoneId: exampleGetZones.then(exampleGetZones =\u003e exampleGetZones.zones?.[0]?.id),\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: name,\n    description: name,\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.ecs.Instance(\"example\", {\n    availabilityZone: exampleGetZones.then(exampleGetZones =\u003e exampleGetZones.zones?.[0]?.id),\n    instanceName: name,\n    imageId: exampleGetImages.then(exampleGetImages =\u003e exampleGetImages.images?.[0]?.id),\n    instanceType: exampleGetInstanceTypes.then(exampleGetInstanceTypes =\u003e exampleGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [exampleSecurityGroup.id],\n    vswitchId: exampleSwitch.id,\n});\nconst exampleServerGroup = new alicloud.alb.ServerGroup(\"example\", {\n    protocol: \"HTTP\",\n    vpcId: exampleNetwork.id,\n    serverGroupName: name,\n    resourceGroupId: example.then(example =\u003e example.groups?.[0]?.id),\n    stickySessionConfig: {\n        stickySessionEnabled: true,\n        cookie: \"tf-example\",\n        stickySessionType: \"Server\",\n    },\n    healthCheckConfig: {\n        healthCheckConnectPort: 46325,\n        healthCheckEnabled: true,\n        healthCheckHost: \"tf-example.com\",\n        healthCheckCodes: [\n            \"http_2xx\",\n            \"http_3xx\",\n            \"http_4xx\",\n        ],\n        healthCheckHttpVersion: \"HTTP1.1\",\n        healthCheckInterval: 2,\n        healthCheckMethod: \"HEAD\",\n        healthCheckPath: \"/tf-example\",\n        healthCheckProtocol: \"HTTP\",\n        healthCheckTimeout: 5,\n        healthyThreshold: 3,\n        unhealthyThreshold: 3,\n    },\n    servers: [{\n        description: name,\n        port: 80,\n        serverId: exampleInstance.id,\n        serverIp: exampleInstance.privateIp,\n        serverType: \"Ecs\",\n        weight: 10,\n    }],\n    tags: {\n        Created: \"TF\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.resourcemanager.get_resource_groups()\nexample_get_zones = alicloud.get_zones(available_resource_creation=\"Instance\")\nexample_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=example_get_zones.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\nexample_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/16\",\n    vpc_id=example_network.id,\n    zone_id=example_get_zones.zones[0].id)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=name,\n    description=name,\n    vpc_id=example_network.id)\nexample_instance = alicloud.ecs.Instance(\"example\",\n    availability_zone=example_get_zones.zones[0].id,\n    instance_name=name,\n    image_id=example_get_images.images[0].id,\n    instance_type=example_get_instance_types.instance_types[0].id,\n    security_groups=[example_security_group.id],\n    vswitch_id=example_switch.id)\nexample_server_group = alicloud.alb.ServerGroup(\"example\",\n    protocol=\"HTTP\",\n    vpc_id=example_network.id,\n    server_group_name=name,\n    resource_group_id=example.groups[0].id,\n    sticky_session_config={\n        \"sticky_session_enabled\": True,\n        \"cookie\": \"tf-example\",\n        \"sticky_session_type\": \"Server\",\n    },\n    health_check_config={\n        \"health_check_connect_port\": 46325,\n        \"health_check_enabled\": True,\n        \"health_check_host\": \"tf-example.com\",\n        \"health_check_codes\": [\n            \"http_2xx\",\n            \"http_3xx\",\n            \"http_4xx\",\n        ],\n        \"health_check_http_version\": \"HTTP1.1\",\n        \"health_check_interval\": 2,\n        \"health_check_method\": \"HEAD\",\n        \"health_check_path\": \"/tf-example\",\n        \"health_check_protocol\": \"HTTP\",\n        \"health_check_timeout\": 5,\n        \"healthy_threshold\": 3,\n        \"unhealthy_threshold\": 3,\n    },\n    servers=[{\n        \"description\": name,\n        \"port\": 80,\n        \"server_id\": example_instance.id,\n        \"server_ip\": example_instance.private_ip,\n        \"server_type\": \"Ecs\",\n        \"weight\": 10,\n    }],\n    tags={\n        \"Created\": \"TF\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var exampleGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n    });\n\n    var exampleGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = exampleGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var exampleGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/16\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = exampleGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = name,\n        Description = name,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Ecs.Instance(\"example\", new()\n    {\n        AvailabilityZone = exampleGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceName = name,\n        ImageId = exampleGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = exampleGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n        VswitchId = exampleSwitch.Id,\n    });\n\n    var exampleServerGroup = new AliCloud.Alb.ServerGroup(\"example\", new()\n    {\n        Protocol = \"HTTP\",\n        VpcId = exampleNetwork.Id,\n        ServerGroupName = name,\n        ResourceGroupId = example.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        StickySessionConfig = new AliCloud.Alb.Inputs.ServerGroupStickySessionConfigArgs\n        {\n            StickySessionEnabled = true,\n            Cookie = \"tf-example\",\n            StickySessionType = \"Server\",\n        },\n        HealthCheckConfig = new AliCloud.Alb.Inputs.ServerGroupHealthCheckConfigArgs\n        {\n            HealthCheckConnectPort = 46325,\n            HealthCheckEnabled = true,\n            HealthCheckHost = \"tf-example.com\",\n            HealthCheckCodes = new[]\n            {\n                \"http_2xx\",\n                \"http_3xx\",\n                \"http_4xx\",\n            },\n            HealthCheckHttpVersion = \"HTTP1.1\",\n            HealthCheckInterval = 2,\n            HealthCheckMethod = \"HEAD\",\n            HealthCheckPath = \"/tf-example\",\n            HealthCheckProtocol = \"HTTP\",\n            HealthCheckTimeout = 5,\n            HealthyThreshold = 3,\n            UnhealthyThreshold = 3,\n        },\n        Servers = new[]\n        {\n            new AliCloud.Alb.Inputs.ServerGroupServerArgs\n            {\n                Description = name,\n                Port = 80,\n                ServerId = exampleInstance.Id,\n                ServerIp = exampleInstance.PrivateIp,\n                ServerType = \"Ecs\",\n                Weight = 10,\n            },\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(exampleGetZones.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/16\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(exampleGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := ecs.NewInstance(ctx, \"example\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(exampleGetZones.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(name),\n\t\t\tImageId:          pulumi.String(exampleGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(exampleGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId: exampleSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alb.NewServerGroup(ctx, \"example\", \u0026alb.ServerGroupArgs{\n\t\t\tProtocol:        pulumi.String(\"HTTP\"),\n\t\t\tVpcId:           exampleNetwork.ID(),\n\t\t\tServerGroupName: pulumi.String(name),\n\t\t\tResourceGroupId: pulumi.String(example.Groups[0].Id),\n\t\t\tStickySessionConfig: \u0026alb.ServerGroupStickySessionConfigArgs{\n\t\t\t\tStickySessionEnabled: pulumi.Bool(true),\n\t\t\t\tCookie:               pulumi.String(\"tf-example\"),\n\t\t\t\tStickySessionType:    pulumi.String(\"Server\"),\n\t\t\t},\n\t\t\tHealthCheckConfig: \u0026alb.ServerGroupHealthCheckConfigArgs{\n\t\t\t\tHealthCheckConnectPort: pulumi.Int(46325),\n\t\t\t\tHealthCheckEnabled:     pulumi.Bool(true),\n\t\t\t\tHealthCheckHost:        pulumi.String(\"tf-example.com\"),\n\t\t\t\tHealthCheckCodes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"http_2xx\"),\n\t\t\t\t\tpulumi.String(\"http_3xx\"),\n\t\t\t\t\tpulumi.String(\"http_4xx\"),\n\t\t\t\t},\n\t\t\t\tHealthCheckHttpVersion: pulumi.String(\"HTTP1.1\"),\n\t\t\t\tHealthCheckInterval:    pulumi.Int(2),\n\t\t\t\tHealthCheckMethod:      pulumi.String(\"HEAD\"),\n\t\t\t\tHealthCheckPath:        pulumi.String(\"/tf-example\"),\n\t\t\t\tHealthCheckProtocol:    pulumi.String(\"HTTP\"),\n\t\t\t\tHealthCheckTimeout:     pulumi.Int(5),\n\t\t\t\tHealthyThreshold:       pulumi.Int(3),\n\t\t\t\tUnhealthyThreshold:     pulumi.Int(3),\n\t\t\t},\n\t\t\tServers: alb.ServerGroupServerArray{\n\t\t\t\t\u0026alb.ServerGroupServerArgs{\n\t\t\t\t\tDescription: pulumi.String(name),\n\t\t\t\t\tPort:        pulumi.Int(80),\n\t\t\t\t\tServerId:    exampleInstance.ID(),\n\t\t\t\t\tServerIp:    exampleInstance.PrivateIp,\n\t\t\t\t\tServerType:  pulumi.String(\"Ecs\"),\n\t\t\t\t\tWeight:      pulumi.Int(10),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.alb.ServerGroup;\nimport com.pulumi.alicloud.alb.ServerGroupArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupStickySessionConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupHealthCheckConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var example = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var exampleGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .build());\n\n        final var exampleGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(exampleGetZones.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        final var exampleGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(exampleGetZones.zones()[0].id())\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .description(name)\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .availabilityZone(exampleGetZones.zones()[0].id())\n            .instanceName(name)\n            .imageId(exampleGetImages.images()[0].id())\n            .instanceType(exampleGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(exampleSecurityGroup.id())\n            .vswitchId(exampleSwitch.id())\n            .build());\n\n        var exampleServerGroup = new ServerGroup(\"exampleServerGroup\", ServerGroupArgs.builder()\n            .protocol(\"HTTP\")\n            .vpcId(exampleNetwork.id())\n            .serverGroupName(name)\n            .resourceGroupId(example.groups()[0].id())\n            .stickySessionConfig(ServerGroupStickySessionConfigArgs.builder()\n                .stickySessionEnabled(true)\n                .cookie(\"tf-example\")\n                .stickySessionType(\"Server\")\n                .build())\n            .healthCheckConfig(ServerGroupHealthCheckConfigArgs.builder()\n                .healthCheckConnectPort(46325)\n                .healthCheckEnabled(true)\n                .healthCheckHost(\"tf-example.com\")\n                .healthCheckCodes(                \n                    \"http_2xx\",\n                    \"http_3xx\",\n                    \"http_4xx\")\n                .healthCheckHttpVersion(\"HTTP1.1\")\n                .healthCheckInterval(2)\n                .healthCheckMethod(\"HEAD\")\n                .healthCheckPath(\"/tf-example\")\n                .healthCheckProtocol(\"HTTP\")\n                .healthCheckTimeout(5)\n                .healthyThreshold(3)\n                .unhealthyThreshold(3)\n                .build())\n            .servers(ServerGroupServerArgs.builder()\n                .description(name)\n                .port(80)\n                .serverId(exampleInstance.id())\n                .serverIp(exampleInstance.privateIp())\n                .serverType(\"Ecs\")\n                .weight(10)\n                .build())\n            .tags(Map.of(\"Created\", \"TF\"))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/16\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${exampleGetZones.zones[0].id}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: ${name}\n      description: ${name}\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:ecs:Instance\n    name: example\n    properties:\n      availabilityZone: ${exampleGetZones.zones[0].id}\n      instanceName: ${name}\n      imageId: ${exampleGetImages.images[0].id}\n      instanceType: ${exampleGetInstanceTypes.instanceTypes[0].id}\n      securityGroups:\n        - ${exampleSecurityGroup.id}\n      vswitchId: ${exampleSwitch.id}\n  exampleServerGroup:\n    type: alicloud:alb:ServerGroup\n    name: example\n    properties:\n      protocol: HTTP\n      vpcId: ${exampleNetwork.id}\n      serverGroupName: ${name}\n      resourceGroupId: ${example.groups[0].id}\n      stickySessionConfig:\n        stickySessionEnabled: true\n        cookie: tf-example\n        stickySessionType: Server\n      healthCheckConfig:\n        healthCheckConnectPort: '46325'\n        healthCheckEnabled: true\n        healthCheckHost: tf-example.com\n        healthCheckCodes:\n          - http_2xx\n          - http_3xx\n          - http_4xx\n        healthCheckHttpVersion: HTTP1.1\n        healthCheckInterval: '2'\n        healthCheckMethod: HEAD\n        healthCheckPath: /tf-example\n        healthCheckProtocol: HTTP\n        healthCheckTimeout: 5\n        healthyThreshold: 3\n        unhealthyThreshold: 3\n      servers:\n        - description: ${name}\n          port: 80\n          serverId: ${exampleInstance.id}\n          serverIp: ${exampleInstance.privateIp}\n          serverType: Ecs\n          weight: 10\n      tags:\n        Created: TF\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  exampleGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n  exampleGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${exampleGetZones.zones[0].id}\n        cpuCoreCount: 1\n        memorySize: 2\n  exampleGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Load Balancer (ALB) Server Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alb/serverGroup:ServerGroup example \u003cid\u003e\n```\n\n","properties":{"connectionDrainConfig":{"$ref":"#/types/alicloud:alb/ServerGroupConnectionDrainConfig:ServerGroupConnectionDrainConfig","description":"Elegant interrupt configuration. See \u003cspan pulumi-lang-nodejs=\"`connectionDrainConfig`\" pulumi-lang-dotnet=\"`ConnectionDrainConfig`\" pulumi-lang-go=\"`connectionDrainConfig`\" pulumi-lang-python=\"`connection_drain_config`\" pulumi-lang-yaml=\"`connectionDrainConfig`\" pulumi-lang-java=\"`connectionDrainConfig`\"\u003e`connection_drain_config`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"crossZoneEnabled":{"type":"boolean","description":"Indicates whether cross-zone load balancing is enabled for the server group. Valid values:\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\ntrue: Send a check request,\nfalse (default): Send a normal request.\n"},"healthCheckConfig":{"$ref":"#/types/alicloud:alb/ServerGroupHealthCheckConfig:ServerGroupHealthCheckConfig","description":"The configuration of health checks See \u003cspan pulumi-lang-nodejs=\"`healthCheckConfig`\" pulumi-lang-dotnet=\"`HealthCheckConfig`\" pulumi-lang-go=\"`healthCheckConfig`\" pulumi-lang-python=\"`health_check_config`\" pulumi-lang-yaml=\"`healthCheckConfig`\" pulumi-lang-java=\"`healthCheckConfig`\"\u003e`health_check_config`\u003c/span\u003e below.\n"},"healthCheckTemplateId":{"type":"string","description":"The ID of the resource group to which you want to transfer the cloud resource.\n\n\u003e **NOTE:**   You can use resource groups to manage resources within your Alibaba Cloud account by group. This helps you resolve issues such as resource grouping and permission management for your Alibaba Cloud account. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"ipv6Enabled":{"type":"boolean","description":"Enable Ipv6\n"},"protocol":{"type":"string","description":"The backend protocol. Valid values:\n\n*   `HTTP`: allows you to associate an HTTPS, HTTP, or QUIC listener with the server group. This is the default value.\n\n*   `HTTPS`: allows you to associate HTTPS listeners with backend servers.\n\n*   `gRPC`: allows you to associate an HTTPS or QUIC listener with the server group.\n\n\u003e **NOTE:**   You do not need to specify a backend protocol if you set `ServerGroupType` to `Fc`.\n"},"resourceGroupId":{"type":"string","description":"Elegant interrupt configuration.\n"},"scheduler":{"type":"string","description":"The scheduling algorithm. Valid values:\n\n*   `Wrr` (default): The weighted round-robin algorithm is used. Backend servers that have higher weights receive more requests than those that have lower weights.\n\n*   `Wlc`: The weighted least connections algorithm is used. Requests are distributed based on the weights and the number of connections to backend servers. If two backend servers have the same weight, the backend server that has fewer connections is expected to receive more requests.\n\n*   `Sch`: The consistent hashing algorithm is used. Requests from the same source IP address are distributed to the same backend server.\n\n\u003e **NOTE:**  This parameter takes effect when the `ServerGroupType` parameter is set to `Instance` or `Ip`.\n"},"serverGroupName":{"type":"string","description":"The name of the server group. The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.\n"},"serverGroupType":{"type":"string","description":"The type of server group. Valid values:\n\n- `Instance` (default): allows you to add servers by specifying `Ecs`, `Eni`, or `Eci`.\n- `Ip`: allows you to add servers by specifying IP addresses.\n- `Fc`: allows you to add servers by specifying functions of Function Compute.\n"},"servers":{"type":"array","items":{"$ref":"#/types/alicloud:alb/ServerGroupServer:ServerGroupServer"},"description":"List of servers. See \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e below.\n"},"serviceName":{"type":"string","description":"Only applicable to the ALB Ingress scenario, indicating the K8s Service name corresponding to the server group.\n"},"slowStartConfig":{"$ref":"#/types/alicloud:alb/ServerGroupSlowStartConfig:ServerGroupSlowStartConfig","description":"Slow start configuration. See \u003cspan pulumi-lang-nodejs=\"`slowStartConfig`\" pulumi-lang-dotnet=\"`SlowStartConfig`\" pulumi-lang-go=\"`slowStartConfig`\" pulumi-lang-python=\"`slow_start_config`\" pulumi-lang-yaml=\"`slowStartConfig`\" pulumi-lang-java=\"`slowStartConfig`\"\u003e`slow_start_config`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the resource\n"},"stickySessionConfig":{"$ref":"#/types/alicloud:alb/ServerGroupStickySessionConfig:ServerGroupStickySessionConfig","description":"The configuration of health checks See \u003cspan pulumi-lang-nodejs=\"`stickySessionConfig`\" pulumi-lang-dotnet=\"`StickySessionConfig`\" pulumi-lang-go=\"`stickySessionConfig`\" pulumi-lang-python=\"`sticky_session_config`\" pulumi-lang-yaml=\"`stickySessionConfig`\" pulumi-lang-java=\"`stickySessionConfig`\"\u003e`sticky_session_config`\u003c/span\u003e below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The creation time of the resource\n"},"uchConfig":{"$ref":"#/types/alicloud:alb/ServerGroupUchConfig:ServerGroupUchConfig","description":"Url consistency hash parameter configuration See \u003cspan pulumi-lang-nodejs=\"`uchConfig`\" pulumi-lang-dotnet=\"`UchConfig`\" pulumi-lang-go=\"`uchConfig`\" pulumi-lang-python=\"`uch_config`\" pulumi-lang-yaml=\"`uchConfig`\" pulumi-lang-java=\"`uchConfig`\"\u003e`uch_config`\u003c/span\u003e below.\n"},"upstreamKeepaliveEnabled":{"type":"boolean","description":"Specifies whether to enable persistent TCP connections.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC). You can add only servers that are deployed in the specified VPC to the server group.\n\n\u003e **NOTE:**   This parameter takes effect when the `ServerGroupType` parameter is set to `Instance` or `Ip`.\n"}},"required":["connectionDrainConfig","createTime","crossZoneEnabled","healthCheckConfig","protocol","resourceGroupId","scheduler","serverGroupName","serverGroupType","slowStartConfig","status"],"inputProperties":{"connectionDrainConfig":{"$ref":"#/types/alicloud:alb/ServerGroupConnectionDrainConfig:ServerGroupConnectionDrainConfig","description":"Elegant interrupt configuration. See \u003cspan pulumi-lang-nodejs=\"`connectionDrainConfig`\" pulumi-lang-dotnet=\"`ConnectionDrainConfig`\" pulumi-lang-go=\"`connectionDrainConfig`\" pulumi-lang-python=\"`connection_drain_config`\" pulumi-lang-yaml=\"`connectionDrainConfig`\" pulumi-lang-java=\"`connectionDrainConfig`\"\u003e`connection_drain_config`\u003c/span\u003e below.\n"},"crossZoneEnabled":{"type":"boolean","description":"Indicates whether cross-zone load balancing is enabled for the server group. Valid values:\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\ntrue: Send a check request,\nfalse (default): Send a normal request.\n"},"healthCheckConfig":{"$ref":"#/types/alicloud:alb/ServerGroupHealthCheckConfig:ServerGroupHealthCheckConfig","description":"The configuration of health checks See \u003cspan pulumi-lang-nodejs=\"`healthCheckConfig`\" pulumi-lang-dotnet=\"`HealthCheckConfig`\" pulumi-lang-go=\"`healthCheckConfig`\" pulumi-lang-python=\"`health_check_config`\" pulumi-lang-yaml=\"`healthCheckConfig`\" pulumi-lang-java=\"`healthCheckConfig`\"\u003e`health_check_config`\u003c/span\u003e below.\n"},"healthCheckTemplateId":{"type":"string","description":"The ID of the resource group to which you want to transfer the cloud resource.\n\n\u003e **NOTE:**   You can use resource groups to manage resources within your Alibaba Cloud account by group. This helps you resolve issues such as resource grouping and permission management for your Alibaba Cloud account. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"ipv6Enabled":{"type":"boolean","description":"Enable Ipv6\n","willReplaceOnChanges":true},"protocol":{"type":"string","description":"The backend protocol. Valid values:\n\n*   `HTTP`: allows you to associate an HTTPS, HTTP, or QUIC listener with the server group. This is the default value.\n\n*   `HTTPS`: allows you to associate HTTPS listeners with backend servers.\n\n*   `gRPC`: allows you to associate an HTTPS or QUIC listener with the server group.\n\n\u003e **NOTE:**   You do not need to specify a backend protocol if you set `ServerGroupType` to `Fc`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"Elegant interrupt configuration.\n"},"scheduler":{"type":"string","description":"The scheduling algorithm. Valid values:\n\n*   `Wrr` (default): The weighted round-robin algorithm is used. Backend servers that have higher weights receive more requests than those that have lower weights.\n\n*   `Wlc`: The weighted least connections algorithm is used. Requests are distributed based on the weights and the number of connections to backend servers. If two backend servers have the same weight, the backend server that has fewer connections is expected to receive more requests.\n\n*   `Sch`: The consistent hashing algorithm is used. Requests from the same source IP address are distributed to the same backend server.\n\n\u003e **NOTE:**  This parameter takes effect when the `ServerGroupType` parameter is set to `Instance` or `Ip`.\n"},"serverGroupName":{"type":"string","description":"The name of the server group. The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.\n"},"serverGroupType":{"type":"string","description":"The type of server group. Valid values:\n\n- `Instance` (default): allows you to add servers by specifying `Ecs`, `Eni`, or `Eci`.\n- `Ip`: allows you to add servers by specifying IP addresses.\n- `Fc`: allows you to add servers by specifying functions of Function Compute.\n","willReplaceOnChanges":true},"servers":{"type":"array","items":{"$ref":"#/types/alicloud:alb/ServerGroupServer:ServerGroupServer"},"description":"List of servers. See \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e below.\n"},"serviceName":{"type":"string","description":"Only applicable to the ALB Ingress scenario, indicating the K8s Service name corresponding to the server group.\n"},"slowStartConfig":{"$ref":"#/types/alicloud:alb/ServerGroupSlowStartConfig:ServerGroupSlowStartConfig","description":"Slow start configuration. See \u003cspan pulumi-lang-nodejs=\"`slowStartConfig`\" pulumi-lang-dotnet=\"`SlowStartConfig`\" pulumi-lang-go=\"`slowStartConfig`\" pulumi-lang-python=\"`slow_start_config`\" pulumi-lang-yaml=\"`slowStartConfig`\" pulumi-lang-java=\"`slowStartConfig`\"\u003e`slow_start_config`\u003c/span\u003e below.\n"},"stickySessionConfig":{"$ref":"#/types/alicloud:alb/ServerGroupStickySessionConfig:ServerGroupStickySessionConfig","description":"The configuration of health checks See \u003cspan pulumi-lang-nodejs=\"`stickySessionConfig`\" pulumi-lang-dotnet=\"`StickySessionConfig`\" pulumi-lang-go=\"`stickySessionConfig`\" pulumi-lang-python=\"`sticky_session_config`\" pulumi-lang-yaml=\"`stickySessionConfig`\" pulumi-lang-java=\"`stickySessionConfig`\"\u003e`sticky_session_config`\u003c/span\u003e below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The creation time of the resource\n"},"uchConfig":{"$ref":"#/types/alicloud:alb/ServerGroupUchConfig:ServerGroupUchConfig","description":"Url consistency hash parameter configuration See \u003cspan pulumi-lang-nodejs=\"`uchConfig`\" pulumi-lang-dotnet=\"`UchConfig`\" pulumi-lang-go=\"`uchConfig`\" pulumi-lang-python=\"`uch_config`\" pulumi-lang-yaml=\"`uchConfig`\" pulumi-lang-java=\"`uchConfig`\"\u003e`uch_config`\u003c/span\u003e below.\n"},"upstreamKeepaliveEnabled":{"type":"boolean","description":"Specifies whether to enable persistent TCP connections.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC). You can add only servers that are deployed in the specified VPC to the server group.\n\n\u003e **NOTE:**   This parameter takes effect when the `ServerGroupType` parameter is set to `Instance` or `Ip`.\n","willReplaceOnChanges":true}},"requiredInputs":["healthCheckConfig","serverGroupName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServerGroup resources.\n","properties":{"connectionDrainConfig":{"$ref":"#/types/alicloud:alb/ServerGroupConnectionDrainConfig:ServerGroupConnectionDrainConfig","description":"Elegant interrupt configuration. See \u003cspan pulumi-lang-nodejs=\"`connectionDrainConfig`\" pulumi-lang-dotnet=\"`ConnectionDrainConfig`\" pulumi-lang-go=\"`connectionDrainConfig`\" pulumi-lang-python=\"`connection_drain_config`\" pulumi-lang-yaml=\"`connectionDrainConfig`\" pulumi-lang-java=\"`connectionDrainConfig`\"\u003e`connection_drain_config`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"crossZoneEnabled":{"type":"boolean","description":"Indicates whether cross-zone load balancing is enabled for the server group. Valid values:\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\ntrue: Send a check request,\nfalse (default): Send a normal request.\n"},"healthCheckConfig":{"$ref":"#/types/alicloud:alb/ServerGroupHealthCheckConfig:ServerGroupHealthCheckConfig","description":"The configuration of health checks See \u003cspan pulumi-lang-nodejs=\"`healthCheckConfig`\" pulumi-lang-dotnet=\"`HealthCheckConfig`\" pulumi-lang-go=\"`healthCheckConfig`\" pulumi-lang-python=\"`health_check_config`\" pulumi-lang-yaml=\"`healthCheckConfig`\" pulumi-lang-java=\"`healthCheckConfig`\"\u003e`health_check_config`\u003c/span\u003e below.\n"},"healthCheckTemplateId":{"type":"string","description":"The ID of the resource group to which you want to transfer the cloud resource.\n\n\u003e **NOTE:**   You can use resource groups to manage resources within your Alibaba Cloud account by group. This helps you resolve issues such as resource grouping and permission management for your Alibaba Cloud account. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"ipv6Enabled":{"type":"boolean","description":"Enable Ipv6\n","willReplaceOnChanges":true},"protocol":{"type":"string","description":"The backend protocol. Valid values:\n\n*   `HTTP`: allows you to associate an HTTPS, HTTP, or QUIC listener with the server group. This is the default value.\n\n*   `HTTPS`: allows you to associate HTTPS listeners with backend servers.\n\n*   `gRPC`: allows you to associate an HTTPS or QUIC listener with the server group.\n\n\u003e **NOTE:**   You do not need to specify a backend protocol if you set `ServerGroupType` to `Fc`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"Elegant interrupt configuration.\n"},"scheduler":{"type":"string","description":"The scheduling algorithm. Valid values:\n\n*   `Wrr` (default): The weighted round-robin algorithm is used. Backend servers that have higher weights receive more requests than those that have lower weights.\n\n*   `Wlc`: The weighted least connections algorithm is used. Requests are distributed based on the weights and the number of connections to backend servers. If two backend servers have the same weight, the backend server that has fewer connections is expected to receive more requests.\n\n*   `Sch`: The consistent hashing algorithm is used. Requests from the same source IP address are distributed to the same backend server.\n\n\u003e **NOTE:**  This parameter takes effect when the `ServerGroupType` parameter is set to `Instance` or `Ip`.\n"},"serverGroupName":{"type":"string","description":"The name of the server group. The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.\n"},"serverGroupType":{"type":"string","description":"The type of server group. Valid values:\n\n- `Instance` (default): allows you to add servers by specifying `Ecs`, `Eni`, or `Eci`.\n- `Ip`: allows you to add servers by specifying IP addresses.\n- `Fc`: allows you to add servers by specifying functions of Function Compute.\n","willReplaceOnChanges":true},"servers":{"type":"array","items":{"$ref":"#/types/alicloud:alb/ServerGroupServer:ServerGroupServer"},"description":"List of servers. See \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e below.\n"},"serviceName":{"type":"string","description":"Only applicable to the ALB Ingress scenario, indicating the K8s Service name corresponding to the server group.\n"},"slowStartConfig":{"$ref":"#/types/alicloud:alb/ServerGroupSlowStartConfig:ServerGroupSlowStartConfig","description":"Slow start configuration. See \u003cspan pulumi-lang-nodejs=\"`slowStartConfig`\" pulumi-lang-dotnet=\"`SlowStartConfig`\" pulumi-lang-go=\"`slowStartConfig`\" pulumi-lang-python=\"`slow_start_config`\" pulumi-lang-yaml=\"`slowStartConfig`\" pulumi-lang-java=\"`slowStartConfig`\"\u003e`slow_start_config`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the resource\n"},"stickySessionConfig":{"$ref":"#/types/alicloud:alb/ServerGroupStickySessionConfig:ServerGroupStickySessionConfig","description":"The configuration of health checks See \u003cspan pulumi-lang-nodejs=\"`stickySessionConfig`\" pulumi-lang-dotnet=\"`StickySessionConfig`\" pulumi-lang-go=\"`stickySessionConfig`\" pulumi-lang-python=\"`sticky_session_config`\" pulumi-lang-yaml=\"`stickySessionConfig`\" pulumi-lang-java=\"`stickySessionConfig`\"\u003e`sticky_session_config`\u003c/span\u003e below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The creation time of the resource\n"},"uchConfig":{"$ref":"#/types/alicloud:alb/ServerGroupUchConfig:ServerGroupUchConfig","description":"Url consistency hash parameter configuration See \u003cspan pulumi-lang-nodejs=\"`uchConfig`\" pulumi-lang-dotnet=\"`UchConfig`\" pulumi-lang-go=\"`uchConfig`\" pulumi-lang-python=\"`uch_config`\" pulumi-lang-yaml=\"`uchConfig`\" pulumi-lang-java=\"`uchConfig`\"\u003e`uch_config`\u003c/span\u003e below.\n"},"upstreamKeepaliveEnabled":{"type":"boolean","description":"Specifies whether to enable persistent TCP connections.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC). You can add only servers that are deployed in the specified VPC to the server group.\n\n\u003e **NOTE:**   This parameter takes effect when the `ServerGroupType` parameter is set to `Instance` or `Ip`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:aligreen/auditCallback:AuditCallback":{"description":"Provides a Aligreen Audit Callback resource.\n\nCallback notification after detection is completed.\n\nFor information about Aligreen Audit Callback and how to use it, see [What is Audit Callback](https://next.api.alibabacloud.com/document/Green/2017-08-23/CreateAuditCallback).\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst _default = new alicloud.aligreen.AuditCallback(\"default\", {\n    cryptType: \"SM3\",\n    auditCallbackName: name,\n    url: \"https://www.aliyun.com/\",\n    callbackTypes: [\n        \"aliyunAudit\",\n        \"selfAduit\",\n        \"example\",\n    ],\n    callbackSuggestions: [\n        \"block\",\n        \"review\",\n        \"pass\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault = alicloud.aligreen.AuditCallback(\"default\",\n    crypt_type=\"SM3\",\n    audit_callback_name=name,\n    url=\"https://www.aliyun.com/\",\n    callback_types=[\n        \"aliyunAudit\",\n        \"selfAduit\",\n        \"example\",\n    ],\n    callback_suggestions=[\n        \"block\",\n        \"review\",\n        \"pass\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var @default = new AliCloud.Aligreen.AuditCallback(\"default\", new()\n    {\n        CryptType = \"SM3\",\n        AuditCallbackName = name,\n        Url = \"https://www.aliyun.com/\",\n        CallbackTypes = new[]\n        {\n            \"aliyunAudit\",\n            \"selfAduit\",\n            \"example\",\n        },\n        CallbackSuggestions = new[]\n        {\n            \"block\",\n            \"review\",\n            \"pass\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/aligreen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := aligreen.NewAuditCallback(ctx, \"default\", \u0026aligreen.AuditCallbackArgs{\n\t\t\tCryptType:         pulumi.String(\"SM3\"),\n\t\t\tAuditCallbackName: pulumi.String(name),\n\t\t\tUrl:               pulumi.String(\"https://www.aliyun.com/\"),\n\t\t\tCallbackTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aliyunAudit\"),\n\t\t\t\tpulumi.String(\"selfAduit\"),\n\t\t\t\tpulumi.String(\"example\"),\n\t\t\t},\n\t\t\tCallbackSuggestions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"block\"),\n\t\t\t\tpulumi.String(\"review\"),\n\t\t\t\tpulumi.String(\"pass\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.aligreen.AuditCallback;\nimport com.pulumi.alicloud.aligreen.AuditCallbackArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var default_ = new AuditCallback(\"default\", AuditCallbackArgs.builder()\n            .cryptType(\"SM3\")\n            .auditCallbackName(name)\n            .url(\"https://www.aliyun.com/\")\n            .callbackTypes(            \n                \"aliyunAudit\",\n                \"selfAduit\",\n                \"example\")\n            .callbackSuggestions(            \n                \"block\",\n                \"review\",\n                \"pass\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  default:\n    type: alicloud:aligreen:AuditCallback\n    properties:\n      cryptType: SM3\n      auditCallbackName: ${name}\n      url: https://www.aliyun.com/\n      callbackTypes:\n        - aliyunAudit\n        - selfAduit\n        - example\n      callbackSuggestions:\n        - block\n        - review\n        - pass\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAligreen Audit Callback can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:aligreen/auditCallback:AuditCallback example \u003cid\u003e\n```\n\n","properties":{"auditCallbackName":{"type":"string","description":"The AuditCallback name defined by the customer. It can contain no more than 20 characters in Chinese, English, underscore (_), and digits.\n"},"callbackSuggestions":{"type":"array","items":{"type":"string"},"description":"List of audit results supported by message notification. Value: block: confirmed violation, review: Suspected violation, review: normal.\n"},"callbackTypes":{"type":"array","items":{"type":"string"},"description":"A list of Callback types. Value: machineScan: Machine audit result notification, selfAudit: self-service audit notification.\n"},"cryptType":{"type":"string","description":"The encryption algorithm is used to verify that the callback request is sent by the content security service to your business service. The value is SHA256:SHA256 encryption algorithm and SM3: SM3 encryption algorithm.\n"},"url":{"type":"string","description":"The detection result will be called back to the url.\n"}},"required":["auditCallbackName","callbackSuggestions","callbackTypes","cryptType","url"],"inputProperties":{"auditCallbackName":{"type":"string","description":"The AuditCallback name defined by the customer. It can contain no more than 20 characters in Chinese, English, underscore (_), and digits.\n","willReplaceOnChanges":true},"callbackSuggestions":{"type":"array","items":{"type":"string"},"description":"List of audit results supported by message notification. Value: block: confirmed violation, review: Suspected violation, review: normal.\n"},"callbackTypes":{"type":"array","items":{"type":"string"},"description":"A list of Callback types. Value: machineScan: Machine audit result notification, selfAudit: self-service audit notification.\n"},"cryptType":{"type":"string","description":"The encryption algorithm is used to verify that the callback request is sent by the content security service to your business service. The value is SHA256:SHA256 encryption algorithm and SM3: SM3 encryption algorithm.\n"},"url":{"type":"string","description":"The detection result will be called back to the url.\n"}},"requiredInputs":["auditCallbackName","callbackSuggestions","callbackTypes","cryptType","url"],"stateInputs":{"description":"Input properties used for looking up and filtering AuditCallback resources.\n","properties":{"auditCallbackName":{"type":"string","description":"The AuditCallback name defined by the customer. It can contain no more than 20 characters in Chinese, English, underscore (_), and digits.\n","willReplaceOnChanges":true},"callbackSuggestions":{"type":"array","items":{"type":"string"},"description":"List of audit results supported by message notification. Value: block: confirmed violation, review: Suspected violation, review: normal.\n"},"callbackTypes":{"type":"array","items":{"type":"string"},"description":"A list of Callback types. Value: machineScan: Machine audit result notification, selfAudit: self-service audit notification.\n"},"cryptType":{"type":"string","description":"The encryption algorithm is used to verify that the callback request is sent by the content security service to your business service. The value is SHA256:SHA256 encryption algorithm and SM3: SM3 encryption algorithm.\n"},"url":{"type":"string","description":"The detection result will be called back to the url.\n"}},"type":"object"}},"alicloud:aligreen/bizType:BizType":{"description":"Provides a Aligreen Biz Type resource.\n\n\n\nFor information about Aligreen Biz Type and how to use it, see [What is Biz Type](https://next.api.alibabacloud.com/document/Green/2017-08-23/CreateBizType).\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst _default = new alicloud.aligreen.BizType(\"default\", {\n    bizTypeName: name,\n    description: name,\n    citeTemplate: true,\n    industryInfo: \"社交-注册信息-昵称\",\n    bizTypeImport: \"1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault = alicloud.aligreen.BizType(\"default\",\n    biz_type_name=name,\n    description=name,\n    cite_template=True,\n    industry_info=\"社交-注册信息-昵称\",\n    biz_type_import=\"1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var @default = new AliCloud.Aligreen.BizType(\"default\", new()\n    {\n        BizTypeName = name,\n        Description = name,\n        CiteTemplate = true,\n        IndustryInfo = \"社交-注册信息-昵称\",\n        BizTypeImport = \"1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/aligreen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := aligreen.NewBizType(ctx, \"default\", \u0026aligreen.BizTypeArgs{\n\t\t\tBizTypeName:   pulumi.String(name),\n\t\t\tDescription:   pulumi.String(name),\n\t\t\tCiteTemplate:  pulumi.Bool(true),\n\t\t\tIndustryInfo:  pulumi.String(\"社交-注册信息-昵称\"),\n\t\t\tBizTypeImport: pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.aligreen.BizType;\nimport com.pulumi.alicloud.aligreen.BizTypeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var default_ = new BizType(\"default\", BizTypeArgs.builder()\n            .bizTypeName(name)\n            .description(name)\n            .citeTemplate(true)\n            .industryInfo(\"社交-注册信息-昵称\")\n            .bizTypeImport(\"1\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  default:\n    type: alicloud:aligreen:BizType\n    properties:\n      bizTypeName: ${name}\n      description: ${name}\n      citeTemplate: true\n      industryInfo: 社交-注册信息-昵称\n      bizTypeImport: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAligreen Biz Type can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:aligreen/bizType:BizType example \u003cid\u003e\n```\n\n","properties":{"bizTypeImport":{"type":"string","description":"The name of the existing business scenario that was imported from when the business scenario was created.\n"},"bizTypeName":{"type":"string","description":"The name of the business scenario defined by the customer. It can contain no more than 32 characters in English, numbers, and underscores.\n"},"citeTemplate":{"type":"boolean","description":"Specifies whether to import the configuration of an industry template. Default value: false. Valid values: true: imports the configuration of an industry template. false: does not import the configuration of an industry template. If the value is true, you must specify the industryInfo parameter.\n"},"description":{"type":"string","description":"The description of the business scenario defined by the customer, which is a combination of Chinese and English, numbers, and underscores, and cannot exceed 32 characters.\n"},"industryInfo":{"type":"string","description":"The industry classification. Valid values: Social-Registration information-Profile picture Social-Registration information-Nickname Social-Registration information-Bio Social-Instant messaging-Chat Social-Instant messaging-Group chat Social-Instant messaging-Chat room Social-Forums\u0026Communities-Post Social-Forums\u0026Communities-Comment Social-Forums\u0026Communities-Tag Social-Forums\u0026Communities-Recommendation Multimedia-Registration information-Profile picture Multimedia-Registration information-Nickname Multimedia-Registration information-Bio Multimedia-Instant messaging-Chat Multimedia-Live streaming-Heading Multimedia-Live streaming-Cover Multimedia-Live streaming-Content Multimedia-Live streaming-Comment Multimedia-Online storage-Storage content Multimedia-Online storage-Shared content Gaming-Registration information-Nickname Gaming-Registration information-Profile picture Gaming-Registration information-Signature Gaming-Instant messaging-Chat Gaming-Instant messaging-Group chat Gaming-Instant messaging-Chat room Gaming-Forums\u0026Communities-Post Gaming-Forums\u0026Communities-Comment Gaming-Forums\u0026Communities-Tag Gaming-Forums\u0026Communities-Recommendation New retail-Goods-Heading New retail-Goods-Description Reading-Books-Title Reading-Books-Heading Reading-Books-Cover Reading-Books-Content Media-News content-News content Education-Registration information-Nickname Education-Registration information-Profile picture Education-Registration information-Bio Gaming-Instant messaging-Chat Gaming-Forums\u0026Communities-Post Education-Forums\u0026Communities-Comment Education-Forums\u0026Communities-Tag Education-Forums\u0026Communities-Recommendation Education-Customer service-Voice call Others\n"}},"required":["bizTypeName"],"inputProperties":{"bizTypeImport":{"type":"string","description":"The name of the existing business scenario that was imported from when the business scenario was created.\n"},"bizTypeName":{"type":"string","description":"The name of the business scenario defined by the customer. It can contain no more than 32 characters in English, numbers, and underscores.\n","willReplaceOnChanges":true},"citeTemplate":{"type":"boolean","description":"Specifies whether to import the configuration of an industry template. Default value: false. Valid values: true: imports the configuration of an industry template. false: does not import the configuration of an industry template. If the value is true, you must specify the industryInfo parameter.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the business scenario defined by the customer, which is a combination of Chinese and English, numbers, and underscores, and cannot exceed 32 characters.\n"},"industryInfo":{"type":"string","description":"The industry classification. Valid values: Social-Registration information-Profile picture Social-Registration information-Nickname Social-Registration information-Bio Social-Instant messaging-Chat Social-Instant messaging-Group chat Social-Instant messaging-Chat room Social-Forums\u0026Communities-Post Social-Forums\u0026Communities-Comment Social-Forums\u0026Communities-Tag Social-Forums\u0026Communities-Recommendation Multimedia-Registration information-Profile picture Multimedia-Registration information-Nickname Multimedia-Registration information-Bio Multimedia-Instant messaging-Chat Multimedia-Live streaming-Heading Multimedia-Live streaming-Cover Multimedia-Live streaming-Content Multimedia-Live streaming-Comment Multimedia-Online storage-Storage content Multimedia-Online storage-Shared content Gaming-Registration information-Nickname Gaming-Registration information-Profile picture Gaming-Registration information-Signature Gaming-Instant messaging-Chat Gaming-Instant messaging-Group chat Gaming-Instant messaging-Chat room Gaming-Forums\u0026Communities-Post Gaming-Forums\u0026Communities-Comment Gaming-Forums\u0026Communities-Tag Gaming-Forums\u0026Communities-Recommendation New retail-Goods-Heading New retail-Goods-Description Reading-Books-Title Reading-Books-Heading Reading-Books-Cover Reading-Books-Content Media-News content-News content Education-Registration information-Nickname Education-Registration information-Profile picture Education-Registration information-Bio Gaming-Instant messaging-Chat Gaming-Forums\u0026Communities-Post Education-Forums\u0026Communities-Comment Education-Forums\u0026Communities-Tag Education-Forums\u0026Communities-Recommendation Education-Customer service-Voice call Others\n","willReplaceOnChanges":true}},"requiredInputs":["bizTypeName"],"stateInputs":{"description":"Input properties used for looking up and filtering BizType resources.\n","properties":{"bizTypeImport":{"type":"string","description":"The name of the existing business scenario that was imported from when the business scenario was created.\n"},"bizTypeName":{"type":"string","description":"The name of the business scenario defined by the customer. It can contain no more than 32 characters in English, numbers, and underscores.\n","willReplaceOnChanges":true},"citeTemplate":{"type":"boolean","description":"Specifies whether to import the configuration of an industry template. Default value: false. Valid values: true: imports the configuration of an industry template. false: does not import the configuration of an industry template. If the value is true, you must specify the industryInfo parameter.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the business scenario defined by the customer, which is a combination of Chinese and English, numbers, and underscores, and cannot exceed 32 characters.\n"},"industryInfo":{"type":"string","description":"The industry classification. Valid values: Social-Registration information-Profile picture Social-Registration information-Nickname Social-Registration information-Bio Social-Instant messaging-Chat Social-Instant messaging-Group chat Social-Instant messaging-Chat room Social-Forums\u0026Communities-Post Social-Forums\u0026Communities-Comment Social-Forums\u0026Communities-Tag Social-Forums\u0026Communities-Recommendation Multimedia-Registration information-Profile picture Multimedia-Registration information-Nickname Multimedia-Registration information-Bio Multimedia-Instant messaging-Chat Multimedia-Live streaming-Heading Multimedia-Live streaming-Cover Multimedia-Live streaming-Content Multimedia-Live streaming-Comment Multimedia-Online storage-Storage content Multimedia-Online storage-Shared content Gaming-Registration information-Nickname Gaming-Registration information-Profile picture Gaming-Registration information-Signature Gaming-Instant messaging-Chat Gaming-Instant messaging-Group chat Gaming-Instant messaging-Chat room Gaming-Forums\u0026Communities-Post Gaming-Forums\u0026Communities-Comment Gaming-Forums\u0026Communities-Tag Gaming-Forums\u0026Communities-Recommendation New retail-Goods-Heading New retail-Goods-Description Reading-Books-Title Reading-Books-Heading Reading-Books-Cover Reading-Books-Content Media-News content-News content Education-Registration information-Nickname Education-Registration information-Profile picture Education-Registration information-Bio Gaming-Instant messaging-Chat Gaming-Forums\u0026Communities-Post Education-Forums\u0026Communities-Comment Education-Forums\u0026Communities-Tag Education-Forums\u0026Communities-Recommendation Education-Customer service-Voice call Others\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:aligreen/callback:Callback":{"description":"Provides a Aligreen Callback resource.\n\nDetection Result Callback.\n\nFor information about Aligreen Callback and how to use it, see [What is Callback](https://next.api.alibabacloud.com/document/Green/2017-08-23/CreateCallback).\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst _default = new alicloud.aligreen.Callback(\"default\", {\n    callbackUrl: \"https://www.aliyun.com\",\n    cryptType: 0,\n    callbackName: name,\n    callbackTypes: [\n        \"machineScan\",\n        \"selfAudit\",\n        \"example\",\n    ],\n    callbackSuggestions: [\n        \"block\",\n        \"review\",\n        \"pass\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault = alicloud.aligreen.Callback(\"default\",\n    callback_url=\"https://www.aliyun.com\",\n    crypt_type=0,\n    callback_name=name,\n    callback_types=[\n        \"machineScan\",\n        \"selfAudit\",\n        \"example\",\n    ],\n    callback_suggestions=[\n        \"block\",\n        \"review\",\n        \"pass\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var @default = new AliCloud.Aligreen.Callback(\"default\", new()\n    {\n        CallbackUrl = \"https://www.aliyun.com\",\n        CryptType = 0,\n        CallbackName = name,\n        CallbackTypes = new[]\n        {\n            \"machineScan\",\n            \"selfAudit\",\n            \"example\",\n        },\n        CallbackSuggestions = new[]\n        {\n            \"block\",\n            \"review\",\n            \"pass\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/aligreen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := aligreen.NewCallback(ctx, \"default\", \u0026aligreen.CallbackArgs{\n\t\t\tCallbackUrl:  pulumi.String(\"https://www.aliyun.com\"),\n\t\t\tCryptType:    pulumi.Int(0),\n\t\t\tCallbackName: pulumi.String(name),\n\t\t\tCallbackTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"machineScan\"),\n\t\t\t\tpulumi.String(\"selfAudit\"),\n\t\t\t\tpulumi.String(\"example\"),\n\t\t\t},\n\t\t\tCallbackSuggestions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"block\"),\n\t\t\t\tpulumi.String(\"review\"),\n\t\t\t\tpulumi.String(\"pass\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.aligreen.Callback;\nimport com.pulumi.alicloud.aligreen.CallbackArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var default_ = new Callback(\"default\", CallbackArgs.builder()\n            .callbackUrl(\"https://www.aliyun.com\")\n            .cryptType(0)\n            .callbackName(name)\n            .callbackTypes(            \n                \"machineScan\",\n                \"selfAudit\",\n                \"example\")\n            .callbackSuggestions(            \n                \"block\",\n                \"review\",\n                \"pass\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  default:\n    type: alicloud:aligreen:Callback\n    properties:\n      callbackUrl: https://www.aliyun.com\n      cryptType: '0'\n      callbackName: ${name}\n      callbackTypes:\n        - machineScan\n        - selfAudit\n        - example\n      callbackSuggestions:\n        - block\n        - review\n        - pass\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAligreen Callback can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:aligreen/callback:Callback example \u003cid\u003e\n```\n\n","properties":{"callbackName":{"type":"string","description":"The Callback name defined by the customer. It can contain no more than 20 characters in Chinese, English, underscore (_), and digits.\n"},"callbackSuggestions":{"type":"array","items":{"type":"string"},"description":"List of audit results supported by message notification. Value: block: confirmed violation, review: Suspected violation, review: normal.\n"},"callbackTypes":{"type":"array","items":{"type":"string"},"description":"A list of Callback types. Value: machineScan: Machine audit result notification, selfAudit: self-service audit notification.\n"},"callbackUrl":{"type":"string","description":"The detection result will be called back to the url.\n"},"createTime":{"type":"string","description":"The creation time of the Callback.\n"},"cryptType":{"type":"integer","description":"The encryption algorithm is used to verify that the callback request is sent by the Aliyun Green Service to your business service. Value: 0:SHA256,1: SM3.\n"}},"required":["callbackName","callbackSuggestions","callbackTypes","callbackUrl","createTime"],"inputProperties":{"callbackName":{"type":"string","description":"The Callback name defined by the customer. It can contain no more than 20 characters in Chinese, English, underscore (_), and digits.\n"},"callbackSuggestions":{"type":"array","items":{"type":"string"},"description":"List of audit results supported by message notification. Value: block: confirmed violation, review: Suspected violation, review: normal.\n"},"callbackTypes":{"type":"array","items":{"type":"string"},"description":"A list of Callback types. Value: machineScan: Machine audit result notification, selfAudit: self-service audit notification.\n"},"callbackUrl":{"type":"string","description":"The detection result will be called back to the url.\n"},"cryptType":{"type":"integer","description":"The encryption algorithm is used to verify that the callback request is sent by the Aliyun Green Service to your business service. Value: 0:SHA256,1: SM3.\n","willReplaceOnChanges":true}},"requiredInputs":["callbackName","callbackSuggestions","callbackTypes","callbackUrl"],"stateInputs":{"description":"Input properties used for looking up and filtering Callback resources.\n","properties":{"callbackName":{"type":"string","description":"The Callback name defined by the customer. It can contain no more than 20 characters in Chinese, English, underscore (_), and digits.\n"},"callbackSuggestions":{"type":"array","items":{"type":"string"},"description":"List of audit results supported by message notification. Value: block: confirmed violation, review: Suspected violation, review: normal.\n"},"callbackTypes":{"type":"array","items":{"type":"string"},"description":"A list of Callback types. Value: machineScan: Machine audit result notification, selfAudit: self-service audit notification.\n"},"callbackUrl":{"type":"string","description":"The detection result will be called back to the url.\n"},"createTime":{"type":"string","description":"The creation time of the Callback.\n"},"cryptType":{"type":"integer","description":"The encryption algorithm is used to verify that the callback request is sent by the Aliyun Green Service to your business service. Value: 0:SHA256,1: SM3.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:aligreen/imageLib:ImageLib":{"description":"Provides a Aligreen Image Lib resource.\n\nImage library for image detection.\n\nFor information about Aligreen Image Lib and how to use it, see [What is Image Lib](https://next.api.alibabacloud.com/document/Green/2017-08-23/CreateImageLib).\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform\";\nconst defaultUalunB = new alicloud.aligreen.BizType(\"defaultUalunB\", {bizTypeName: name});\nconst _default = new alicloud.aligreen.ImageLib(\"default\", {\n    category: \"BLACK\",\n    enable: true,\n    scene: \"PORN\",\n    imageLibName: name,\n    bizTypes: [defaultUalunB.bizTypeName],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform\"\ndefault_ualun_b = alicloud.aligreen.BizType(\"defaultUalunB\", biz_type_name=name)\ndefault = alicloud.aligreen.ImageLib(\"default\",\n    category=\"BLACK\",\n    enable=True,\n    scene=\"PORN\",\n    image_lib_name=name,\n    biz_types=[default_ualun_b.biz_type_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform\";\n    var defaultUalunB = new AliCloud.Aligreen.BizType(\"defaultUalunB\", new()\n    {\n        BizTypeName = name,\n    });\n\n    var @default = new AliCloud.Aligreen.ImageLib(\"default\", new()\n    {\n        Category = \"BLACK\",\n        Enable = true,\n        Scene = \"PORN\",\n        ImageLibName = name,\n        BizTypes = new[]\n        {\n            defaultUalunB.BizTypeName,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/aligreen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultUalunB, err := aligreen.NewBizType(ctx, \"defaultUalunB\", \u0026aligreen.BizTypeArgs{\n\t\t\tBizTypeName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aligreen.NewImageLib(ctx, \"default\", \u0026aligreen.ImageLibArgs{\n\t\t\tCategory:     pulumi.String(\"BLACK\"),\n\t\t\tEnable:       pulumi.Bool(true),\n\t\t\tScene:        pulumi.String(\"PORN\"),\n\t\t\tImageLibName: pulumi.String(name),\n\t\t\tBizTypes: pulumi.StringArray{\n\t\t\t\tdefaultUalunB.BizTypeName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.aligreen.BizType;\nimport com.pulumi.alicloud.aligreen.BizTypeArgs;\nimport com.pulumi.alicloud.aligreen.ImageLib;\nimport com.pulumi.alicloud.aligreen.ImageLibArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform\");\n        var defaultUalunB = new BizType(\"defaultUalunB\", BizTypeArgs.builder()\n            .bizTypeName(name)\n            .build());\n\n        var default_ = new ImageLib(\"default\", ImageLibArgs.builder()\n            .category(\"BLACK\")\n            .enable(true)\n            .scene(\"PORN\")\n            .imageLibName(name)\n            .bizTypes(defaultUalunB.bizTypeName())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform\nresources:\n  defaultUalunB:\n    type: alicloud:aligreen:BizType\n    properties:\n      bizTypeName: ${name}\n  default:\n    type: alicloud:aligreen:ImageLib\n    properties:\n      category: BLACK\n      enable: true\n      scene: PORN\n      imageLibName: ${name}\n      bizTypes:\n        - ${defaultUalunB.bizTypeName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAligreen Image Lib can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:aligreen/imageLib:ImageLib example \u003cid\u003e\n```\n\n","properties":{"bizTypes":{"type":"array","items":{"type":"string"},"description":"List of business scenarios. For example: [\"bizTypeA\", \"bizTypeB\", \"bizTypeC\"]\n"},"category":{"type":"string","description":"The category of the image library. Valid values: BLACK: a blacklist, WHITE: a whitelist, REVIEW: a review list\n"},"enable":{"type":"boolean","description":"Specifies whether to enable the image library. Valid values: true: Enable the image library. This is the default value. false: Disable the image library.\n"},"imageLibName":{"type":"string","description":"The name of the image library defined by the customer. It can contain no more than 20 characters in Chinese, English, and underscore (_).\n"},"scene":{"type":"string","description":"The moderation scenario to which the custom image library applies. Valid values: PORN: pornography detection, AD: ad detection, ILLEGAL: terrorist content detection\n"}},"required":["category","enable","imageLibName","scene"],"inputProperties":{"bizTypes":{"type":"array","items":{"type":"string"},"description":"List of business scenarios. For example: [\"bizTypeA\", \"bizTypeB\", \"bizTypeC\"]\n"},"category":{"type":"string","description":"The category of the image library. Valid values: BLACK: a blacklist, WHITE: a whitelist, REVIEW: a review list\n","willReplaceOnChanges":true},"enable":{"type":"boolean","description":"Specifies whether to enable the image library. Valid values: true: Enable the image library. This is the default value. false: Disable the image library.\n"},"imageLibName":{"type":"string","description":"The name of the image library defined by the customer. It can contain no more than 20 characters in Chinese, English, and underscore (_).\n"},"scene":{"type":"string","description":"The moderation scenario to which the custom image library applies. Valid values: PORN: pornography detection, AD: ad detection, ILLEGAL: terrorist content detection\n","willReplaceOnChanges":true}},"requiredInputs":["category","imageLibName","scene"],"stateInputs":{"description":"Input properties used for looking up and filtering ImageLib resources.\n","properties":{"bizTypes":{"type":"array","items":{"type":"string"},"description":"List of business scenarios. For example: [\"bizTypeA\", \"bizTypeB\", \"bizTypeC\"]\n"},"category":{"type":"string","description":"The category of the image library. Valid values: BLACK: a blacklist, WHITE: a whitelist, REVIEW: a review list\n","willReplaceOnChanges":true},"enable":{"type":"boolean","description":"Specifies whether to enable the image library. Valid values: true: Enable the image library. This is the default value. false: Disable the image library.\n"},"imageLibName":{"type":"string","description":"The name of the image library defined by the customer. It can contain no more than 20 characters in Chinese, English, and underscore (_).\n"},"scene":{"type":"string","description":"The moderation scenario to which the custom image library applies. Valid values: PORN: pornography detection, AD: ad detection, ILLEGAL: terrorist content detection\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:aligreen/keywordLib:KeywordLib":{"description":"Provides a Aligreen Keyword Lib resource.\n\nKeyword library for text detection.\n\nFor information about Aligreen Keyword Lib and how to use it, see [What is Keyword Lib](https://next.api.alibabacloud.com/document/Green/2017-08-23/CreateKeywordLib).\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultMn8sVK = new alicloud.aligreen.BizType(\"defaultMn8sVK\", {\n    bizTypeName: `${name}${_default.result}`,\n    citeTemplate: true,\n    industryInfo: \"社交-注册信息-昵称\",\n});\nconst defaultKeywordLib = new alicloud.aligreen.KeywordLib(\"default\", {\n    category: \"BLACK\",\n    resourceType: \"TEXT\",\n    libType: \"textKeyword\",\n    keywordLibName: name,\n    matchMode: \"fuzzy\",\n    language: \"cn\",\n    bizTypes: [\"example_007\"],\n    lang: \"cn\",\n    enable: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_mn8s_vk = alicloud.aligreen.BizType(\"defaultMn8sVK\",\n    biz_type_name=f\"{name}{default['result']}\",\n    cite_template=True,\n    industry_info=\"社交-注册信息-昵称\")\ndefault_keyword_lib = alicloud.aligreen.KeywordLib(\"default\",\n    category=\"BLACK\",\n    resource_type=\"TEXT\",\n    lib_type=\"textKeyword\",\n    keyword_lib_name=name,\n    match_mode=\"fuzzy\",\n    language=\"cn\",\n    biz_types=[\"example_007\"],\n    lang=\"cn\",\n    enable=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultMn8sVK = new AliCloud.Aligreen.BizType(\"defaultMn8sVK\", new()\n    {\n        BizTypeName = $\"{name}{@default.Result}\",\n        CiteTemplate = true,\n        IndustryInfo = \"社交-注册信息-昵称\",\n    });\n\n    var defaultKeywordLib = new AliCloud.Aligreen.KeywordLib(\"default\", new()\n    {\n        Category = \"BLACK\",\n        ResourceType = \"TEXT\",\n        LibType = \"textKeyword\",\n        KeywordLibName = name,\n        MatchMode = \"fuzzy\",\n        Language = \"cn\",\n        BizTypes = new[]\n        {\n            \"example_007\",\n        },\n        Lang = \"cn\",\n        Enable = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/aligreen\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aligreen.NewBizType(ctx, \"defaultMn8sVK\", \u0026aligreen.BizTypeArgs{\n\t\t\tBizTypeName:  pulumi.Sprintf(\"%v%v\", name, _default.Result),\n\t\t\tCiteTemplate: pulumi.Bool(true),\n\t\t\tIndustryInfo: pulumi.String(\"社交-注册信息-昵称\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aligreen.NewKeywordLib(ctx, \"default\", \u0026aligreen.KeywordLibArgs{\n\t\t\tCategory:       pulumi.String(\"BLACK\"),\n\t\t\tResourceType:   pulumi.String(\"TEXT\"),\n\t\t\tLibType:        pulumi.String(\"textKeyword\"),\n\t\t\tKeywordLibName: pulumi.String(name),\n\t\t\tMatchMode:      pulumi.String(\"fuzzy\"),\n\t\t\tLanguage:       pulumi.String(\"cn\"),\n\t\t\tBizTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"example_007\"),\n\t\t\t},\n\t\t\tLang:   pulumi.String(\"cn\"),\n\t\t\tEnable: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.aligreen.BizType;\nimport com.pulumi.alicloud.aligreen.BizTypeArgs;\nimport com.pulumi.alicloud.aligreen.KeywordLib;\nimport com.pulumi.alicloud.aligreen.KeywordLibArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultMn8sVK = new BizType(\"defaultMn8sVK\", BizTypeArgs.builder()\n            .bizTypeName(String.format(\"%s%s\", name,default_.result()))\n            .citeTemplate(true)\n            .industryInfo(\"社交-注册信息-昵称\")\n            .build());\n\n        var defaultKeywordLib = new KeywordLib(\"defaultKeywordLib\", KeywordLibArgs.builder()\n            .category(\"BLACK\")\n            .resourceType(\"TEXT\")\n            .libType(\"textKeyword\")\n            .keywordLibName(name)\n            .matchMode(\"fuzzy\")\n            .language(\"cn\")\n            .bizTypes(\"example_007\")\n            .lang(\"cn\")\n            .enable(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultMn8sVK:\n    type: alicloud:aligreen:BizType\n    properties:\n      bizTypeName: ${name}${default.result}\n      citeTemplate: true\n      industryInfo: 社交-注册信息-昵称\n  defaultKeywordLib:\n    type: alicloud:aligreen:KeywordLib\n    name: default\n    properties:\n      category: BLACK\n      resourceType: TEXT\n      libType: textKeyword\n      keywordLibName: ${name}\n      matchMode: fuzzy\n      language: cn\n      bizTypes:\n        - example_007\n      lang: cn\n      enable: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAligreen Keyword Lib can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:aligreen/keywordLib:KeywordLib example \u003cid\u003e\n```\n\n","properties":{"bizTypes":{"type":"array","items":{"type":"string"},"description":"The business scenario. Example:[\"bizTypeA\",\"bizTypeB\"]\n"},"category":{"type":"string","description":"The category of the text library. Valid values: BLACK: a blacklist. WHITE: a whitelist. REVIEW: a review list\n"},"enable":{"type":"boolean","description":"Specifies whether to enable text library.true: Enable the text library. This is the default value.false: Disable the text library.\n"},"keywordLibName":{"type":"string","description":"The name of the keyword library defined by the customer. It can contain no more than 20 characters in Chinese, English, and underscore (_).\n"},"lang":{"type":"string","description":"Language.\n"},"language":{"type":"string","description":"Language used by the text Library\n"},"libType":{"type":"string","description":"The category of the text library in each moderation scenario. Valid values: textKeyword: a text library against which terms in text are matched. similarText: a text library against which text patterns are matched. textKeyword: a text library against which terms extracted from images are matched. voiceText: a text library against which terms converted from audio are matched.\n"},"matchMode":{"type":"string","description":"The matching method. Valid values:fuzzy: fuzzy match precise: exact match\n"},"resourceType":{"type":"string","description":"The moderation scenario to which the text library applies. Valid values:TEXT: text anti-spam、IMAGE: ad violation detection、VOICE: audio anti-spam\n"}},"required":["category","enable","keywordLibName","language","libType","matchMode","resourceType"],"inputProperties":{"bizTypes":{"type":"array","items":{"type":"string"},"description":"The business scenario. Example:[\"bizTypeA\",\"bizTypeB\"]\n","willReplaceOnChanges":true},"category":{"type":"string","description":"The category of the text library. Valid values: BLACK: a blacklist. WHITE: a whitelist. REVIEW: a review list\n","willReplaceOnChanges":true},"enable":{"type":"boolean","description":"Specifies whether to enable text library.true: Enable the text library. This is the default value.false: Disable the text library.\n","willReplaceOnChanges":true},"keywordLibName":{"type":"string","description":"The name of the keyword library defined by the customer. It can contain no more than 20 characters in Chinese, English, and underscore (_).\n"},"lang":{"type":"string","description":"Language.\n"},"language":{"type":"string","description":"Language used by the text Library\n","willReplaceOnChanges":true},"libType":{"type":"string","description":"The category of the text library in each moderation scenario. Valid values: textKeyword: a text library against which terms in text are matched. similarText: a text library against which text patterns are matched. textKeyword: a text library against which terms extracted from images are matched. voiceText: a text library against which terms converted from audio are matched.\n","willReplaceOnChanges":true},"matchMode":{"type":"string","description":"The matching method. Valid values:fuzzy: fuzzy match precise: exact match\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"The moderation scenario to which the text library applies. Valid values:TEXT: text anti-spam、IMAGE: ad violation detection、VOICE: audio anti-spam\n","willReplaceOnChanges":true}},"requiredInputs":["keywordLibName","resourceType"],"stateInputs":{"description":"Input properties used for looking up and filtering KeywordLib resources.\n","properties":{"bizTypes":{"type":"array","items":{"type":"string"},"description":"The business scenario. Example:[\"bizTypeA\",\"bizTypeB\"]\n","willReplaceOnChanges":true},"category":{"type":"string","description":"The category of the text library. Valid values: BLACK: a blacklist. WHITE: a whitelist. REVIEW: a review list\n","willReplaceOnChanges":true},"enable":{"type":"boolean","description":"Specifies whether to enable text library.true: Enable the text library. This is the default value.false: Disable the text library.\n","willReplaceOnChanges":true},"keywordLibName":{"type":"string","description":"The name of the keyword library defined by the customer. It can contain no more than 20 characters in Chinese, English, and underscore (_).\n"},"lang":{"type":"string","description":"Language.\n"},"language":{"type":"string","description":"Language used by the text Library\n","willReplaceOnChanges":true},"libType":{"type":"string","description":"The category of the text library in each moderation scenario. Valid values: textKeyword: a text library against which terms in text are matched. similarText: a text library against which text patterns are matched. textKeyword: a text library against which terms extracted from images are matched. voiceText: a text library against which terms converted from audio are matched.\n","willReplaceOnChanges":true},"matchMode":{"type":"string","description":"The matching method. Valid values:fuzzy: fuzzy match precise: exact match\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"The moderation scenario to which the text library applies. Valid values:TEXT: text anti-spam、IMAGE: ad violation detection、VOICE: audio anti-spam\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:aligreen/ossStockTask:OssStockTask":{"description":"Provides a Aligreen Oss Stock Task resource.\n\nOSS stock file scanning task.\n\nFor information about Aligreen Oss Stock Task and how to use it, see [What is Oss Stock Task](https://next.api.alibabacloud.com/document/Green/2017-08-23/CreateOssStockTask).\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultPyhXOV = new alicloud.oss.Bucket(\"defaultPyhXOV\", {\n    storageClass: \"Standard\",\n    bucket: `${name}-${_default.result}`,\n});\nconst defaultJnW8Na = new alicloud.aligreen.Callback(\"defaultJnW8Na\", {\n    callbackUrl: \"https://www.aliyun.com/\",\n    cryptType: 0,\n    callbackName: `${name}${_default.result}`,\n    callbackTypes: [\"machineScan\"],\n    callbackSuggestions: [\"block\"],\n});\nconst defaultOssStockTask = new alicloud.aligreen.OssStockTask(\"default\", {\n    imageOpened: true,\n    autoFreezeType: \"acl\",\n    audioMaxSize: 200,\n    imageScanLimit: 1,\n    videoFrameInterval: 1,\n    videoScanLimit: 1000,\n    audioScanLimit: 1000,\n    videoMaxFrames: 200,\n    videoMaxSize: 500,\n    startDate: \"2024-08-01 00:00:00 +0800\",\n    endDate: \"2024-12-31 09:06:42 +0800\",\n    buckets: pulumi.jsonStringify([{\n        Bucket: defaultPyhXOV.bucket,\n        Selected: true,\n        Prefixes: [],\n    }]),\n    imageScenes: [\"porn\"],\n    audioAntispamFreezeConfig: JSON.stringify({\n        Type: \"suggestion\",\n        Value: \"block\",\n    }),\n    imageLiveFreezeConfig: JSON.stringify({\n        Type: \"suggestion\",\n        Value: \"block\",\n    }),\n    videoTerrorismFreezeConfig: JSON.stringify({\n        Type: \"suggestion\",\n        Value: \"block\",\n    }),\n    imageTerrorismFreezeConfig: JSON.stringify({\n        Type: \"suggestion\",\n        Value: \"block\",\n    }),\n    callbackId: defaultJnW8Na.id,\n    imageAdFreezeConfig: JSON.stringify({\n        Type: \"suggestion\",\n        Value: \"block\",\n    }),\n    bizType: \"recommend_massmedia_template_01\",\n    audioScenes: JSON.stringify([\"antispam\"]),\n    imagePornFreezeConfig: JSON.stringify({\n        Type: \"suggestion\",\n        Value: \"block\",\n    }),\n    videoLiveFreezeConfig: JSON.stringify({\n        Type: \"suggestion\",\n        Value: \"block\",\n    }),\n    videoPornFreezeConfig: JSON.stringify({\n        Type: \"suggestion\",\n        Value: \"block\",\n    }),\n    videoVoiceAntispamFreezeConfig: JSON.stringify({\n        Type: \"suggestion\",\n        Value: \"block\",\n    }),\n    videoScenes: JSON.stringify([\n        \"ad\",\n        \"terrorism\",\n        \"live\",\n        \"porn\",\n        \"antispam\",\n    ]),\n    videoAdFreezeConfig: JSON.stringify({\n        Type: \"suggestion\",\n        Value: \"block\",\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_pyh_xov = alicloud.oss.Bucket(\"defaultPyhXOV\",\n    storage_class=\"Standard\",\n    bucket=f\"{name}-{default['result']}\")\ndefault_jn_w8_na = alicloud.aligreen.Callback(\"defaultJnW8Na\",\n    callback_url=\"https://www.aliyun.com/\",\n    crypt_type=0,\n    callback_name=f\"{name}{default['result']}\",\n    callback_types=[\"machineScan\"],\n    callback_suggestions=[\"block\"])\ndefault_oss_stock_task = alicloud.aligreen.OssStockTask(\"default\",\n    image_opened=True,\n    auto_freeze_type=\"acl\",\n    audio_max_size=200,\n    image_scan_limit=1,\n    video_frame_interval=1,\n    video_scan_limit=1000,\n    audio_scan_limit=1000,\n    video_max_frames=200,\n    video_max_size=500,\n    start_date=\"2024-08-01 00:00:00 +0800\",\n    end_date=\"2024-12-31 09:06:42 +0800\",\n    buckets=pulumi.Output.json_dumps([{\n        \"Bucket\": default_pyh_xov.bucket,\n        \"Selected\": True,\n        \"Prefixes\": [],\n    }]),\n    image_scenes=[\"porn\"],\n    audio_antispam_freeze_config=json.dumps({\n        \"Type\": \"suggestion\",\n        \"Value\": \"block\",\n    }),\n    image_live_freeze_config=json.dumps({\n        \"Type\": \"suggestion\",\n        \"Value\": \"block\",\n    }),\n    video_terrorism_freeze_config=json.dumps({\n        \"Type\": \"suggestion\",\n        \"Value\": \"block\",\n    }),\n    image_terrorism_freeze_config=json.dumps({\n        \"Type\": \"suggestion\",\n        \"Value\": \"block\",\n    }),\n    callback_id=default_jn_w8_na.id,\n    image_ad_freeze_config=json.dumps({\n        \"Type\": \"suggestion\",\n        \"Value\": \"block\",\n    }),\n    biz_type=\"recommend_massmedia_template_01\",\n    audio_scenes=json.dumps([\"antispam\"]),\n    image_porn_freeze_config=json.dumps({\n        \"Type\": \"suggestion\",\n        \"Value\": \"block\",\n    }),\n    video_live_freeze_config=json.dumps({\n        \"Type\": \"suggestion\",\n        \"Value\": \"block\",\n    }),\n    video_porn_freeze_config=json.dumps({\n        \"Type\": \"suggestion\",\n        \"Value\": \"block\",\n    }),\n    video_voice_antispam_freeze_config=json.dumps({\n        \"Type\": \"suggestion\",\n        \"Value\": \"block\",\n    }),\n    video_scenes=json.dumps([\n        \"ad\",\n        \"terrorism\",\n        \"live\",\n        \"porn\",\n        \"antispam\",\n    ]),\n    video_ad_freeze_config=json.dumps({\n        \"Type\": \"suggestion\",\n        \"Value\": \"block\",\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultPyhXOV = new AliCloud.Oss.Bucket(\"defaultPyhXOV\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultJnW8Na = new AliCloud.Aligreen.Callback(\"defaultJnW8Na\", new()\n    {\n        CallbackUrl = \"https://www.aliyun.com/\",\n        CryptType = 0,\n        CallbackName = $\"{name}{@default.Result}\",\n        CallbackTypes = new[]\n        {\n            \"machineScan\",\n        },\n        CallbackSuggestions = new[]\n        {\n            \"block\",\n        },\n    });\n\n    var defaultOssStockTask = new AliCloud.Aligreen.OssStockTask(\"default\", new()\n    {\n        ImageOpened = true,\n        AutoFreezeType = \"acl\",\n        AudioMaxSize = 200,\n        ImageScanLimit = 1,\n        VideoFrameInterval = 1,\n        VideoScanLimit = 1000,\n        AudioScanLimit = 1000,\n        VideoMaxFrames = 200,\n        VideoMaxSize = 500,\n        StartDate = \"2024-08-01 00:00:00 +0800\",\n        EndDate = \"2024-12-31 09:06:42 +0800\",\n        Buckets = Output.JsonSerialize(Output.Create(new[]\n        {\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"Bucket\"] = defaultPyhXOV.BucketName,\n                [\"Selected\"] = true,\n                [\"Prefixes\"] = new[]\n                {\n                },\n            },\n        })),\n        ImageScenes = new[]\n        {\n            \"porn\",\n        },\n        AudioAntispamFreezeConfig = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Type\"] = \"suggestion\",\n            [\"Value\"] = \"block\",\n        }),\n        ImageLiveFreezeConfig = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Type\"] = \"suggestion\",\n            [\"Value\"] = \"block\",\n        }),\n        VideoTerrorismFreezeConfig = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Type\"] = \"suggestion\",\n            [\"Value\"] = \"block\",\n        }),\n        ImageTerrorismFreezeConfig = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Type\"] = \"suggestion\",\n            [\"Value\"] = \"block\",\n        }),\n        CallbackId = defaultJnW8Na.Id,\n        ImageAdFreezeConfig = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Type\"] = \"suggestion\",\n            [\"Value\"] = \"block\",\n        }),\n        BizType = \"recommend_massmedia_template_01\",\n        AudioScenes = JsonSerializer.Serialize(new[]\n        {\n            \"antispam\",\n        }),\n        ImagePornFreezeConfig = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Type\"] = \"suggestion\",\n            [\"Value\"] = \"block\",\n        }),\n        VideoLiveFreezeConfig = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Type\"] = \"suggestion\",\n            [\"Value\"] = \"block\",\n        }),\n        VideoPornFreezeConfig = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Type\"] = \"suggestion\",\n            [\"Value\"] = \"block\",\n        }),\n        VideoVoiceAntispamFreezeConfig = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Type\"] = \"suggestion\",\n            [\"Value\"] = \"block\",\n        }),\n        VideoScenes = JsonSerializer.Serialize(new[]\n        {\n            \"ad\",\n            \"terrorism\",\n            \"live\",\n            \"porn\",\n            \"antispam\",\n        }),\n        VideoAdFreezeConfig = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Type\"] = \"suggestion\",\n            [\"Value\"] = \"block\",\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/aligreen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultPyhXOV, err := oss.NewBucket(ctx, \"defaultPyhXOV\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultJnW8Na, err := aligreen.NewCallback(ctx, \"defaultJnW8Na\", \u0026aligreen.CallbackArgs{\n\t\t\tCallbackUrl:  pulumi.String(\"https://www.aliyun.com/\"),\n\t\t\tCryptType:    pulumi.Int(0),\n\t\t\tCallbackName: pulumi.Sprintf(\"%v%v\", name, _default.Result),\n\t\t\tCallbackTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"machineScan\"),\n\t\t\t},\n\t\t\tCallbackSuggestions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"block\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Type\":  \"suggestion\",\n\t\t\t\"Value\": \"block\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Type\":  \"suggestion\",\n\t\t\t\"Value\": \"block\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\ttmpJSON2, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Type\":  \"suggestion\",\n\t\t\t\"Value\": \"block\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson2 := string(tmpJSON2)\n\t\ttmpJSON3, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Type\":  \"suggestion\",\n\t\t\t\"Value\": \"block\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson3 := string(tmpJSON3)\n\t\ttmpJSON4, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Type\":  \"suggestion\",\n\t\t\t\"Value\": \"block\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson4 := string(tmpJSON4)\n\t\ttmpJSON5, err := json.Marshal([]string{\n\t\t\t\"antispam\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson5 := string(tmpJSON5)\n\t\ttmpJSON6, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Type\":  \"suggestion\",\n\t\t\t\"Value\": \"block\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson6 := string(tmpJSON6)\n\t\ttmpJSON7, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Type\":  \"suggestion\",\n\t\t\t\"Value\": \"block\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson7 := string(tmpJSON7)\n\t\ttmpJSON8, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Type\":  \"suggestion\",\n\t\t\t\"Value\": \"block\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson8 := string(tmpJSON8)\n\t\ttmpJSON9, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Type\":  \"suggestion\",\n\t\t\t\"Value\": \"block\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson9 := string(tmpJSON9)\n\t\ttmpJSON10, err := json.Marshal([]string{\n\t\t\t\"ad\",\n\t\t\t\"terrorism\",\n\t\t\t\"live\",\n\t\t\t\"porn\",\n\t\t\t\"antispam\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson10 := string(tmpJSON10)\n\t\ttmpJSON11, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Type\":  \"suggestion\",\n\t\t\t\"Value\": \"block\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson11 := string(tmpJSON11)\n\t\t_, err = aligreen.NewOssStockTask(ctx, \"default\", \u0026aligreen.OssStockTaskArgs{\n\t\t\tImageOpened:        pulumi.Bool(true),\n\t\t\tAutoFreezeType:     pulumi.String(\"acl\"),\n\t\t\tAudioMaxSize:       pulumi.Int(200),\n\t\t\tImageScanLimit:     pulumi.Int(1),\n\t\t\tVideoFrameInterval: pulumi.Int(1),\n\t\t\tVideoScanLimit:     pulumi.Int(1000),\n\t\t\tAudioScanLimit:     pulumi.Int(1000),\n\t\t\tVideoMaxFrames:     pulumi.Int(200),\n\t\t\tVideoMaxSize:       pulumi.Int(500),\n\t\t\tStartDate:          pulumi.String(\"2024-08-01 00:00:00 +0800\"),\n\t\t\tEndDate:            pulumi.String(\"2024-12-31 09:06:42 +0800\"),\n\t\t\tBuckets: defaultPyhXOV.Bucket.ApplyT(func(bucket string) (pulumi.String, error) {\n\t\t\t\tvar _zero pulumi.String\n\t\t\t\ttmpJSON12, err := json.Marshal([]map[string]interface{}{\n\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\"Bucket\":   bucket,\n\t\t\t\t\t\t\"Selected\": true,\n\t\t\t\t\t\t\"Prefixes\": []interface{}{},\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson12 := string(tmpJSON12)\n\t\t\t\treturn pulumi.String(json12), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tImageScenes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"porn\"),\n\t\t\t},\n\t\t\tAudioAntispamFreezeConfig:      pulumi.String(json0),\n\t\t\tImageLiveFreezeConfig:          pulumi.String(json1),\n\t\t\tVideoTerrorismFreezeConfig:     pulumi.String(json2),\n\t\t\tImageTerrorismFreezeConfig:     pulumi.String(json3),\n\t\t\tCallbackId:                     defaultJnW8Na.ID(),\n\t\t\tImageAdFreezeConfig:            pulumi.String(json4),\n\t\t\tBizType:                        pulumi.String(\"recommend_massmedia_template_01\"),\n\t\t\tAudioScenes:                    pulumi.String(json5),\n\t\t\tImagePornFreezeConfig:          pulumi.String(json6),\n\t\t\tVideoLiveFreezeConfig:          pulumi.String(json7),\n\t\t\tVideoPornFreezeConfig:          pulumi.String(json8),\n\t\t\tVideoVoiceAntispamFreezeConfig: pulumi.String(json9),\n\t\t\tVideoScenes:                    pulumi.String(json10),\n\t\t\tVideoAdFreezeConfig:            pulumi.String(json11),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.aligreen.Callback;\nimport com.pulumi.alicloud.aligreen.CallbackArgs;\nimport com.pulumi.alicloud.aligreen.OssStockTask;\nimport com.pulumi.alicloud.aligreen.OssStockTaskArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultPyhXOV = new Bucket(\"defaultPyhXOV\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultJnW8Na = new Callback(\"defaultJnW8Na\", CallbackArgs.builder()\n            .callbackUrl(\"https://www.aliyun.com/\")\n            .cryptType(0)\n            .callbackName(String.format(\"%s%s\", name,default_.result()))\n            .callbackTypes(\"machineScan\")\n            .callbackSuggestions(\"block\")\n            .build());\n\n        var defaultOssStockTask = new OssStockTask(\"defaultOssStockTask\", OssStockTaskArgs.builder()\n            .imageOpened(true)\n            .autoFreezeType(\"acl\")\n            .audioMaxSize(200)\n            .imageScanLimit(1)\n            .videoFrameInterval(1)\n            .videoScanLimit(1000)\n            .audioScanLimit(1000)\n            .videoMaxFrames(200)\n            .videoMaxSize(500)\n            .startDate(\"2024-08-01 00:00:00 +0800\")\n            .endDate(\"2024-12-31 09:06:42 +0800\")\n            .buckets(defaultPyhXOV.bucket().applyValue(_bucket -\u003e serializeJson(\n                jsonArray(jsonObject(\n                    jsonProperty(\"Bucket\", _bucket),\n                    jsonProperty(\"Selected\", true),\n                    jsonProperty(\"Prefixes\", jsonArray(\n                    ))\n                )))))\n            .imageScenes(\"porn\")\n            .audioAntispamFreezeConfig(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Type\", \"suggestion\"),\n                    jsonProperty(\"Value\", \"block\")\n                )))\n            .imageLiveFreezeConfig(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Type\", \"suggestion\"),\n                    jsonProperty(\"Value\", \"block\")\n                )))\n            .videoTerrorismFreezeConfig(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Type\", \"suggestion\"),\n                    jsonProperty(\"Value\", \"block\")\n                )))\n            .imageTerrorismFreezeConfig(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Type\", \"suggestion\"),\n                    jsonProperty(\"Value\", \"block\")\n                )))\n            .callbackId(defaultJnW8Na.id())\n            .imageAdFreezeConfig(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Type\", \"suggestion\"),\n                    jsonProperty(\"Value\", \"block\")\n                )))\n            .bizType(\"recommend_massmedia_template_01\")\n            .audioScenes(serializeJson(\n                jsonArray(\"antispam\")))\n            .imagePornFreezeConfig(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Type\", \"suggestion\"),\n                    jsonProperty(\"Value\", \"block\")\n                )))\n            .videoLiveFreezeConfig(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Type\", \"suggestion\"),\n                    jsonProperty(\"Value\", \"block\")\n                )))\n            .videoPornFreezeConfig(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Type\", \"suggestion\"),\n                    jsonProperty(\"Value\", \"block\")\n                )))\n            .videoVoiceAntispamFreezeConfig(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Type\", \"suggestion\"),\n                    jsonProperty(\"Value\", \"block\")\n                )))\n            .videoScenes(serializeJson(\n                jsonArray(\n                    \"ad\", \n                    \"terrorism\", \n                    \"live\", \n                    \"porn\", \n                    \"antispam\"\n                )))\n            .videoAdFreezeConfig(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Type\", \"suggestion\"),\n                    jsonProperty(\"Value\", \"block\")\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultPyhXOV:\n    type: alicloud:oss:Bucket\n    properties:\n      storageClass: Standard\n      bucket: ${name}-${default.result}\n  defaultJnW8Na:\n    type: alicloud:aligreen:Callback\n    properties:\n      callbackUrl: https://www.aliyun.com/\n      cryptType: '0'\n      callbackName: ${name}${default.result}\n      callbackTypes:\n        - machineScan\n      callbackSuggestions:\n        - block\n  defaultOssStockTask:\n    type: alicloud:aligreen:OssStockTask\n    name: default\n    properties:\n      imageOpened: true\n      autoFreezeType: acl\n      audioMaxSize: '200'\n      imageScanLimit: '1'\n      videoFrameInterval: '1'\n      videoScanLimit: '1000'\n      audioScanLimit: '1000'\n      videoMaxFrames: '200'\n      videoMaxSize: '500'\n      startDate: 2024-08-01 00:00:00 +0800\n      endDate: 2024-12-31 09:06:42 +0800\n      buckets:\n        fn::toJSON:\n          - Bucket: ${defaultPyhXOV.bucket}\n            Selected: true\n            Prefixes: []\n      imageScenes:\n        - porn\n      audioAntispamFreezeConfig:\n        fn::toJSON:\n          Type: suggestion\n          Value: block\n      imageLiveFreezeConfig:\n        fn::toJSON:\n          Type: suggestion\n          Value: block\n      videoTerrorismFreezeConfig:\n        fn::toJSON:\n          Type: suggestion\n          Value: block\n      imageTerrorismFreezeConfig:\n        fn::toJSON:\n          Type: suggestion\n          Value: block\n      callbackId: ${defaultJnW8Na.id}\n      imageAdFreezeConfig:\n        fn::toJSON:\n          Type: suggestion\n          Value: block\n      bizType: recommend_massmedia_template_01\n      audioScenes:\n        fn::toJSON:\n          - antispam\n      imagePornFreezeConfig:\n        fn::toJSON:\n          Type: suggestion\n          Value: block\n      videoLiveFreezeConfig:\n        fn::toJSON:\n          Type: suggestion\n          Value: block\n      videoPornFreezeConfig:\n        fn::toJSON:\n          Type: suggestion\n          Value: block\n      videoVoiceAntispamFreezeConfig:\n        fn::toJSON:\n          Type: suggestion\n          Value: block\n      videoScenes:\n        fn::toJSON:\n          - ad\n          - terrorism\n          - live\n          - porn\n          - antispam\n      videoAdFreezeConfig:\n        fn::toJSON:\n          Type: suggestion\n          Value: block\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.aligreen.OssStockTask`\" pulumi-lang-dotnet=\"`alicloud.aligreen.OssStockTask`\" pulumi-lang-go=\"`aligreen.OssStockTask`\" pulumi-lang-python=\"`aligreen.OssStockTask`\" pulumi-lang-yaml=\"`alicloud.aligreen.OssStockTask`\" pulumi-lang-java=\"`alicloud.aligreen.OssStockTask`\"\u003e`alicloud.aligreen.OssStockTask`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.aligreen.OssStockTask`\" pulumi-lang-dotnet=\"`alicloud.aligreen.OssStockTask`\" pulumi-lang-go=\"`aligreen.OssStockTask`\" pulumi-lang-python=\"`aligreen.OssStockTask`\" pulumi-lang-yaml=\"`alicloud.aligreen.OssStockTask`\" pulumi-lang-java=\"`alicloud.aligreen.OssStockTask`\"\u003e`alicloud.aligreen.OssStockTask`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAligreen Oss Stock Task can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:aligreen/ossStockTask:OssStockTask example \u003cid\u003e\n```\n\n","properties":{"audioAntispamFreezeConfig":{"type":"string","description":"Voice auto freeze configuration. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The results are frozen according to the suggestion in the speech detection results.\n"},"audioAutoFreezeOpened":{"type":"boolean","description":"Audio detection auto freeze switch. Value: true: automatically freeze, false: not automatically freeze.\n"},"audioMaxSize":{"type":"integer","description":"Resource property field representing the maximum size of a single audio. 1~2048MB, the default is 200MB, more than not detected.\n"},"audioOpened":{"type":"boolean","description":"oss stock scan task detect audio. true: scan audio, false: do not scan audio\n"},"audioScanLimit":{"type":"integer","description":"The upper limit of voice scan in the oss stock scan task. The default value is 1000/Bucket.\n"},"audioScenes":{"type":"string","description":"The audio detection scenarios included in the oss stock scan task. Set the value to antispam.\n"},"autoFreezeType":{"type":"string","description":"Automatic freeze type. Value: acl: modify permissions, copy: Move files\n"},"bizType":{"type":"string","description":"Business scenarios used by the oss stock scan task\n"},"buckets":{"type":"string","description":"The bucket configuration list of the oss stock scan task. Example:[{\"Bucket\":\u003cspan pulumi-lang-nodejs=\"\"bucket01\"\" pulumi-lang-dotnet=\"\"Bucket01\"\" pulumi-lang-go=\"\"bucket01\"\" pulumi-lang-python=\"\"bucket_01\"\" pulumi-lang-yaml=\"\"bucket01\"\" pulumi-lang-java=\"\"bucket01\"\"\u003e\"bucket_01\"\u003c/span\u003e,\"Selected\":true,\"Prefixes\":[\"img/test_\"],\"Type\":\"exclude\"}]\n"},"callbackId":{"type":"integer","description":"The ID of the primary key of the notification message bound to the oss stock scan task.\n"},"endDate":{"type":"string","description":"The end time of the file upload time range indicates the scanning of files uploaded before this time point.\n"},"imageAdFreezeConfig":{"type":"string","description":"Picture automatically freezes the configuration of ad scenes. Example: {\"type\": \"suggestion\", \"value\": \"block,review\"}. The result will be frozen according to the suggestion in the picture detection result.\n"},"imageAutoFreezeOpened":{"type":"boolean","description":"Picture detection auto freeze switch. Value: true: auto freeze, false: not auto freeze.\n"},"imageLiveFreezeConfig":{"type":"string","description":"Picture automatic freezing live scene configuration. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The result will be frozen according to the suggestion in the picture detection result.\n"},"imageOpened":{"type":"boolean","description":"oss stock scan task detect images. true: scan images, false: do not scan images\n"},"imagePornFreezeConfig":{"type":"string","description":"Picture automatic freezing porn scene configuration. Example: {\"type\": \"suggestion\", \"value\": \"block,review\"}. The result will be frozen according to the suggestion in the picture detection result.\n"},"imageScanLimit":{"type":"integer","description":"The upper limit for scanning images in the oss stock scan task. The default value is 10000 images per Bucket.\n"},"imageScenes":{"type":"array","items":{"type":"string"},"description":"The image moderation scenario included in the oss stock scan task.Valid values:\nporn: pornography detection\nterrorism: terrorist content detection\nad: ad violation detection\nlive: undesirable scene detection\n"},"imageTerrorismFreezeConfig":{"type":"string","description":"The picture automatically freezes the configuration of terrorism scenes. Example: {\"type\": \"suggestion\", \"value\": \"block,review\"}. The result will be frozen according to the suggestion in the picture detection result.\n"},"scanImageNoFileType":{"type":"boolean","description":"Whether the oss stock scan task detects images with file names without suffixes. true: Detect pictures with file names without suffixes, false: Do not detect pictures with file names without suffixes\n"},"startDate":{"type":"string","description":"The start time of the file upload time range represents the files uploaded after scanning this time point.\n"},"videoAdFreezeConfig":{"type":"string","description":"The video automatically freezes the configuration of ad scenarios. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The results will be frozen according to the suggestion in the video detection results.\n"},"videoAutoFreezeOpened":{"type":"boolean","description":"Video detection auto freeze switch. Value: true: automatically freeze, false: not automatically freeze.\n"},"videoFrameInterval":{"type":"integer","description":"Resource attribute field representing the framing frequency. 1~60 seconds/frame, the default is 1 second/frame\n"},"videoLiveFreezeConfig":{"type":"string","description":"Video automatic freeze live scene configuration. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The results will be frozen according to the suggestion in the video detection results.\n"},"videoMaxFrames":{"type":"integer","description":"A resource attribute field that represents the upper limit of a single video frame cut. 5 to 20000 frames, the default is 200 frames\n"},"videoMaxSize":{"type":"integer","description":"Resource property field representing the maximum size of a single video. 1~2048MB, the default is 500MB, more than not detected.\n"},"videoOpened":{"type":"boolean","description":"oss stock scan task detect video. true: scan video, false: do not scan video\n"},"videoPornFreezeConfig":{"type":"string","description":"Video automatic freezing porn scene configuration. Example: {\"type\": \"suggestion\", \"value\": \"block,review\"}. The result will be frozen according to the suggestion in the video detection result.\n"},"videoScanLimit":{"type":"integer","description":"The upper limit of video scanning in the oss stock scan task. The default value is 1000/Bucket.\n"},"videoScenes":{"type":"string","description":"The video detection scenarios included in the oss stock scan task.\nporn: pornography detection\nterrorism: terrorist content detection\nad: ad violation detection\nlive: undesirable scene detection\nantispam: Video voice antispam\n"},"videoTerrorismFreezeConfig":{"type":"string","description":"The video automatically freezes the configuration of terrorism scenes. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The results will be frozen according to the suggestion in the video detection results.\n"},"videoVoiceAntispamFreezeConfig":{"type":"string","description":"Voice auto freeze configuration in video. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The results will be frozen according to the suggestion in the video detection results.\n"}},"inputProperties":{"audioAntispamFreezeConfig":{"type":"string","description":"Voice auto freeze configuration. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The results are frozen according to the suggestion in the speech detection results.\n","willReplaceOnChanges":true},"audioAutoFreezeOpened":{"type":"boolean","description":"Audio detection auto freeze switch. Value: true: automatically freeze, false: not automatically freeze.\n","willReplaceOnChanges":true},"audioMaxSize":{"type":"integer","description":"Resource property field representing the maximum size of a single audio. 1~2048MB, the default is 200MB, more than not detected.\n","willReplaceOnChanges":true},"audioOpened":{"type":"boolean","description":"oss stock scan task detect audio. true: scan audio, false: do not scan audio\n","willReplaceOnChanges":true},"audioScanLimit":{"type":"integer","description":"The upper limit of voice scan in the oss stock scan task. The default value is 1000/Bucket.\n","willReplaceOnChanges":true},"audioScenes":{"type":"string","description":"The audio detection scenarios included in the oss stock scan task. Set the value to antispam.\n","willReplaceOnChanges":true},"autoFreezeType":{"type":"string","description":"Automatic freeze type. Value: acl: modify permissions, copy: Move files\n","willReplaceOnChanges":true},"bizType":{"type":"string","description":"Business scenarios used by the oss stock scan task\n","willReplaceOnChanges":true},"buckets":{"type":"string","description":"The bucket configuration list of the oss stock scan task. Example:[{\"Bucket\":\u003cspan pulumi-lang-nodejs=\"\"bucket01\"\" pulumi-lang-dotnet=\"\"Bucket01\"\" pulumi-lang-go=\"\"bucket01\"\" pulumi-lang-python=\"\"bucket_01\"\" pulumi-lang-yaml=\"\"bucket01\"\" pulumi-lang-java=\"\"bucket01\"\"\u003e\"bucket_01\"\u003c/span\u003e,\"Selected\":true,\"Prefixes\":[\"img/test_\"],\"Type\":\"exclude\"}]\n","willReplaceOnChanges":true},"callbackId":{"type":"integer","description":"The ID of the primary key of the notification message bound to the oss stock scan task.\n","willReplaceOnChanges":true},"endDate":{"type":"string","description":"The end time of the file upload time range indicates the scanning of files uploaded before this time point.\n","willReplaceOnChanges":true},"imageAdFreezeConfig":{"type":"string","description":"Picture automatically freezes the configuration of ad scenes. Example: {\"type\": \"suggestion\", \"value\": \"block,review\"}. The result will be frozen according to the suggestion in the picture detection result.\n","willReplaceOnChanges":true},"imageAutoFreezeOpened":{"type":"boolean","description":"Picture detection auto freeze switch. Value: true: auto freeze, false: not auto freeze.\n","willReplaceOnChanges":true},"imageLiveFreezeConfig":{"type":"string","description":"Picture automatic freezing live scene configuration. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The result will be frozen according to the suggestion in the picture detection result.\n","willReplaceOnChanges":true},"imageOpened":{"type":"boolean","description":"oss stock scan task detect images. true: scan images, false: do not scan images\n","willReplaceOnChanges":true},"imagePornFreezeConfig":{"type":"string","description":"Picture automatic freezing porn scene configuration. Example: {\"type\": \"suggestion\", \"value\": \"block,review\"}. The result will be frozen according to the suggestion in the picture detection result.\n","willReplaceOnChanges":true},"imageScanLimit":{"type":"integer","description":"The upper limit for scanning images in the oss stock scan task. The default value is 10000 images per Bucket.\n","willReplaceOnChanges":true},"imageScenes":{"type":"array","items":{"type":"string"},"description":"The image moderation scenario included in the oss stock scan task.Valid values:\nporn: pornography detection\nterrorism: terrorist content detection\nad: ad violation detection\nlive: undesirable scene detection\n","willReplaceOnChanges":true},"imageTerrorismFreezeConfig":{"type":"string","description":"The picture automatically freezes the configuration of terrorism scenes. Example: {\"type\": \"suggestion\", \"value\": \"block,review\"}. The result will be frozen according to the suggestion in the picture detection result.\n","willReplaceOnChanges":true},"scanImageNoFileType":{"type":"boolean","description":"Whether the oss stock scan task detects images with file names without suffixes. true: Detect pictures with file names without suffixes, false: Do not detect pictures with file names without suffixes\n","willReplaceOnChanges":true},"startDate":{"type":"string","description":"The start time of the file upload time range represents the files uploaded after scanning this time point.\n","willReplaceOnChanges":true},"videoAdFreezeConfig":{"type":"string","description":"The video automatically freezes the configuration of ad scenarios. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The results will be frozen according to the suggestion in the video detection results.\n","willReplaceOnChanges":true},"videoAutoFreezeOpened":{"type":"boolean","description":"Video detection auto freeze switch. Value: true: automatically freeze, false: not automatically freeze.\n","willReplaceOnChanges":true},"videoFrameInterval":{"type":"integer","description":"Resource attribute field representing the framing frequency. 1~60 seconds/frame, the default is 1 second/frame\n","willReplaceOnChanges":true},"videoLiveFreezeConfig":{"type":"string","description":"Video automatic freeze live scene configuration. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The results will be frozen according to the suggestion in the video detection results.\n","willReplaceOnChanges":true},"videoMaxFrames":{"type":"integer","description":"A resource attribute field that represents the upper limit of a single video frame cut. 5 to 20000 frames, the default is 200 frames\n","willReplaceOnChanges":true},"videoMaxSize":{"type":"integer","description":"Resource property field representing the maximum size of a single video. 1~2048MB, the default is 500MB, more than not detected.\n","willReplaceOnChanges":true},"videoOpened":{"type":"boolean","description":"oss stock scan task detect video. true: scan video, false: do not scan video\n","willReplaceOnChanges":true},"videoPornFreezeConfig":{"type":"string","description":"Video automatic freezing porn scene configuration. Example: {\"type\": \"suggestion\", \"value\": \"block,review\"}. The result will be frozen according to the suggestion in the video detection result.\n","willReplaceOnChanges":true},"videoScanLimit":{"type":"integer","description":"The upper limit of video scanning in the oss stock scan task. The default value is 1000/Bucket.\n","willReplaceOnChanges":true},"videoScenes":{"type":"string","description":"The video detection scenarios included in the oss stock scan task.\nporn: pornography detection\nterrorism: terrorist content detection\nad: ad violation detection\nlive: undesirable scene detection\nantispam: Video voice antispam\n","willReplaceOnChanges":true},"videoTerrorismFreezeConfig":{"type":"string","description":"The video automatically freezes the configuration of terrorism scenes. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The results will be frozen according to the suggestion in the video detection results.\n","willReplaceOnChanges":true},"videoVoiceAntispamFreezeConfig":{"type":"string","description":"Voice auto freeze configuration in video. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The results will be frozen according to the suggestion in the video detection results.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering OssStockTask resources.\n","properties":{"audioAntispamFreezeConfig":{"type":"string","description":"Voice auto freeze configuration. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The results are frozen according to the suggestion in the speech detection results.\n","willReplaceOnChanges":true},"audioAutoFreezeOpened":{"type":"boolean","description":"Audio detection auto freeze switch. Value: true: automatically freeze, false: not automatically freeze.\n","willReplaceOnChanges":true},"audioMaxSize":{"type":"integer","description":"Resource property field representing the maximum size of a single audio. 1~2048MB, the default is 200MB, more than not detected.\n","willReplaceOnChanges":true},"audioOpened":{"type":"boolean","description":"oss stock scan task detect audio. true: scan audio, false: do not scan audio\n","willReplaceOnChanges":true},"audioScanLimit":{"type":"integer","description":"The upper limit of voice scan in the oss stock scan task. The default value is 1000/Bucket.\n","willReplaceOnChanges":true},"audioScenes":{"type":"string","description":"The audio detection scenarios included in the oss stock scan task. Set the value to antispam.\n","willReplaceOnChanges":true},"autoFreezeType":{"type":"string","description":"Automatic freeze type. Value: acl: modify permissions, copy: Move files\n","willReplaceOnChanges":true},"bizType":{"type":"string","description":"Business scenarios used by the oss stock scan task\n","willReplaceOnChanges":true},"buckets":{"type":"string","description":"The bucket configuration list of the oss stock scan task. Example:[{\"Bucket\":\u003cspan pulumi-lang-nodejs=\"\"bucket01\"\" pulumi-lang-dotnet=\"\"Bucket01\"\" pulumi-lang-go=\"\"bucket01\"\" pulumi-lang-python=\"\"bucket_01\"\" pulumi-lang-yaml=\"\"bucket01\"\" pulumi-lang-java=\"\"bucket01\"\"\u003e\"bucket_01\"\u003c/span\u003e,\"Selected\":true,\"Prefixes\":[\"img/test_\"],\"Type\":\"exclude\"}]\n","willReplaceOnChanges":true},"callbackId":{"type":"integer","description":"The ID of the primary key of the notification message bound to the oss stock scan task.\n","willReplaceOnChanges":true},"endDate":{"type":"string","description":"The end time of the file upload time range indicates the scanning of files uploaded before this time point.\n","willReplaceOnChanges":true},"imageAdFreezeConfig":{"type":"string","description":"Picture automatically freezes the configuration of ad scenes. Example: {\"type\": \"suggestion\", \"value\": \"block,review\"}. The result will be frozen according to the suggestion in the picture detection result.\n","willReplaceOnChanges":true},"imageAutoFreezeOpened":{"type":"boolean","description":"Picture detection auto freeze switch. Value: true: auto freeze, false: not auto freeze.\n","willReplaceOnChanges":true},"imageLiveFreezeConfig":{"type":"string","description":"Picture automatic freezing live scene configuration. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The result will be frozen according to the suggestion in the picture detection result.\n","willReplaceOnChanges":true},"imageOpened":{"type":"boolean","description":"oss stock scan task detect images. true: scan images, false: do not scan images\n","willReplaceOnChanges":true},"imagePornFreezeConfig":{"type":"string","description":"Picture automatic freezing porn scene configuration. Example: {\"type\": \"suggestion\", \"value\": \"block,review\"}. The result will be frozen according to the suggestion in the picture detection result.\n","willReplaceOnChanges":true},"imageScanLimit":{"type":"integer","description":"The upper limit for scanning images in the oss stock scan task. The default value is 10000 images per Bucket.\n","willReplaceOnChanges":true},"imageScenes":{"type":"array","items":{"type":"string"},"description":"The image moderation scenario included in the oss stock scan task.Valid values:\nporn: pornography detection\nterrorism: terrorist content detection\nad: ad violation detection\nlive: undesirable scene detection\n","willReplaceOnChanges":true},"imageTerrorismFreezeConfig":{"type":"string","description":"The picture automatically freezes the configuration of terrorism scenes. Example: {\"type\": \"suggestion\", \"value\": \"block,review\"}. The result will be frozen according to the suggestion in the picture detection result.\n","willReplaceOnChanges":true},"scanImageNoFileType":{"type":"boolean","description":"Whether the oss stock scan task detects images with file names without suffixes. true: Detect pictures with file names without suffixes, false: Do not detect pictures with file names without suffixes\n","willReplaceOnChanges":true},"startDate":{"type":"string","description":"The start time of the file upload time range represents the files uploaded after scanning this time point.\n","willReplaceOnChanges":true},"videoAdFreezeConfig":{"type":"string","description":"The video automatically freezes the configuration of ad scenarios. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The results will be frozen according to the suggestion in the video detection results.\n","willReplaceOnChanges":true},"videoAutoFreezeOpened":{"type":"boolean","description":"Video detection auto freeze switch. Value: true: automatically freeze, false: not automatically freeze.\n","willReplaceOnChanges":true},"videoFrameInterval":{"type":"integer","description":"Resource attribute field representing the framing frequency. 1~60 seconds/frame, the default is 1 second/frame\n","willReplaceOnChanges":true},"videoLiveFreezeConfig":{"type":"string","description":"Video automatic freeze live scene configuration. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The results will be frozen according to the suggestion in the video detection results.\n","willReplaceOnChanges":true},"videoMaxFrames":{"type":"integer","description":"A resource attribute field that represents the upper limit of a single video frame cut. 5 to 20000 frames, the default is 200 frames\n","willReplaceOnChanges":true},"videoMaxSize":{"type":"integer","description":"Resource property field representing the maximum size of a single video. 1~2048MB, the default is 500MB, more than not detected.\n","willReplaceOnChanges":true},"videoOpened":{"type":"boolean","description":"oss stock scan task detect video. true: scan video, false: do not scan video\n","willReplaceOnChanges":true},"videoPornFreezeConfig":{"type":"string","description":"Video automatic freezing porn scene configuration. Example: {\"type\": \"suggestion\", \"value\": \"block,review\"}. The result will be frozen according to the suggestion in the video detection result.\n","willReplaceOnChanges":true},"videoScanLimit":{"type":"integer","description":"The upper limit of video scanning in the oss stock scan task. The default value is 1000/Bucket.\n","willReplaceOnChanges":true},"videoScenes":{"type":"string","description":"The video detection scenarios included in the oss stock scan task.\nporn: pornography detection\nterrorism: terrorist content detection\nad: ad violation detection\nlive: undesirable scene detection\nantispam: Video voice antispam\n","willReplaceOnChanges":true},"videoTerrorismFreezeConfig":{"type":"string","description":"The video automatically freezes the configuration of terrorism scenes. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The results will be frozen according to the suggestion in the video detection results.\n","willReplaceOnChanges":true},"videoVoiceAntispamFreezeConfig":{"type":"string","description":"Voice auto freeze configuration in video. Example:{\"type\":\"suggestion\",\"value\":\"block,review\"}. The results will be frozen according to the suggestion in the video detection results.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:alikafka/consumerGroup:ConsumerGroup":{"description":"Provides a Ali Kafka Consumer Group resource.\n\nGroup in kafka.\n\nFor information about Ali Kafka Consumer Group and how to use it, see [What is Consumer Group](https://next.api.alibabacloud.com/document/alikafka/2019-09-16/CreateConsumerGroup).\n\n\u003e **NOTE:** Available since v1.56.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.actiontrail.getInstances({});\nconst defaultConsumerGroup = new alicloud.alikafka.ConsumerGroup(\"default\", {\n    instanceId: _default.then(_default =\u003e _default.instances?.[0]?.id),\n    consumerId: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.actiontrail.get_instances()\ndefault_consumer_group = alicloud.alikafka.ConsumerGroup(\"default\",\n    instance_id=default.instances[0].id,\n    consumer_id=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ActionTrail.GetInstances.Invoke();\n\n    var defaultConsumerGroup = new AliCloud.Alikafka.ConsumerGroup(\"default\", new()\n    {\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id)),\n        ConsumerId = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/actiontrail\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alikafka\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := actiontrail.GetInstances(ctx, \u0026actiontrail.GetInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alikafka.NewConsumerGroup(ctx, \"default\", \u0026alikafka.ConsumerGroupArgs{\n\t\t\tInstanceId: pulumi.String(_default.Instances[0].Id),\n\t\t\tConsumerId: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.actiontrail.ActiontrailFunctions;\nimport com.pulumi.alicloud.actiontrail.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.alikafka.ConsumerGroup;\nimport com.pulumi.alicloud.alikafka.ConsumerGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ActiontrailFunctions.getInstances(GetInstancesArgs.builder()\n            .build());\n\n        var defaultConsumerGroup = new ConsumerGroup(\"defaultConsumerGroup\", ConsumerGroupArgs.builder()\n            .instanceId(default_.instances()[0].id())\n            .consumerId(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultConsumerGroup:\n    type: alicloud:alikafka:ConsumerGroup\n    name: default\n    properties:\n      instanceId: ${default.instances[0].id}\n      consumerId: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:actiontrail:getInstances\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAliKafka Consumer Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alikafka/consumerGroup:ConsumerGroup example \u003cinstance_id\u003e:\u003cconsumer_id\u003e\n```\n\n","properties":{"consumerId":{"type":"string","description":"ID of the consumer group.\n"},"createTime":{"type":"integer","description":"(Available since v1.268.0) The timestamp of when the group was created.\n"},"description":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e has been deprecated from provider version 1.268.0. New field \u003cspan pulumi-lang-nodejs=\"`remark`\" pulumi-lang-dotnet=\"`Remark`\" pulumi-lang-go=\"`remark`\" pulumi-lang-python=\"`remark`\" pulumi-lang-yaml=\"`remark`\" pulumi-lang-java=\"`remark`\"\u003e`remark`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e has been deprecated from provider version 1.268.0. New field \u003cspan pulumi-lang-nodejs=\"`remark`\" pulumi-lang-dotnet=\"`Remark`\" pulumi-lang-go=\"`remark`\" pulumi-lang-python=\"`remark`\" pulumi-lang-yaml=\"`remark`\" pulumi-lang-java=\"`remark`\"\u003e`remark`\u003c/span\u003e instead."},"instanceId":{"type":"string","description":"ID of the ALIKAFKA Instance that owns the groups.\n"},"regionId":{"type":"string","description":"(Available since v1.268.0) The region ID.\n"},"remark":{"type":"string","description":"The remark of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["consumerId","createTime","description","instanceId","regionId","remark"],"inputProperties":{"consumerId":{"type":"string","description":"ID of the consumer group.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e has been deprecated from provider version 1.268.0. New field \u003cspan pulumi-lang-nodejs=\"`remark`\" pulumi-lang-dotnet=\"`Remark`\" pulumi-lang-go=\"`remark`\" pulumi-lang-python=\"`remark`\" pulumi-lang-yaml=\"`remark`\" pulumi-lang-java=\"`remark`\"\u003e`remark`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e has been deprecated from provider version 1.268.0. New field \u003cspan pulumi-lang-nodejs=\"`remark`\" pulumi-lang-dotnet=\"`Remark`\" pulumi-lang-go=\"`remark`\" pulumi-lang-python=\"`remark`\" pulumi-lang-yaml=\"`remark`\" pulumi-lang-java=\"`remark`\"\u003e`remark`\u003c/span\u003e instead.","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"ID of the ALIKAFKA Instance that owns the groups.\n","willReplaceOnChanges":true},"remark":{"type":"string","description":"The remark of the resource.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"requiredInputs":["consumerId","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering ConsumerGroup resources.\n","properties":{"consumerId":{"type":"string","description":"ID of the consumer group.\n","willReplaceOnChanges":true},"createTime":{"type":"integer","description":"(Available since v1.268.0) The timestamp of when the group was created.\n"},"description":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e has been deprecated from provider version 1.268.0. New field \u003cspan pulumi-lang-nodejs=\"`remark`\" pulumi-lang-dotnet=\"`Remark`\" pulumi-lang-go=\"`remark`\" pulumi-lang-python=\"`remark`\" pulumi-lang-yaml=\"`remark`\" pulumi-lang-java=\"`remark`\"\u003e`remark`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e has been deprecated from provider version 1.268.0. New field \u003cspan pulumi-lang-nodejs=\"`remark`\" pulumi-lang-dotnet=\"`Remark`\" pulumi-lang-go=\"`remark`\" pulumi-lang-python=\"`remark`\" pulumi-lang-yaml=\"`remark`\" pulumi-lang-java=\"`remark`\"\u003e`remark`\u003c/span\u003e instead.","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"ID of the ALIKAFKA Instance that owns the groups.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"(Available since v1.268.0) The region ID.\n"},"remark":{"type":"string","description":"The remark of the resource.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:alikafka/instance:Instance":{"description":"Provides an AliKafka instance resource.\n\nFor information about Kafka instance and how to use it, see [What is alikafka instance](https://www.alibabacloud.com/help/en/message-queue-for-apache-kafka/latest/api-alikafka-2019-09-16-startinstance).\n\n\u003e **NOTE:** Available since v1.59.0.\n\n\u003e **NOTE:** Creation or modification may took about 10-40 minutes.\n\n\u003e **NOTE:** Only the following regions support create alikafka pre paid instance.\n[`cn-hangzhou`,`cn-beijing`,`cn-shenzhen`,`cn-shanghai`,`cn-qingdao`,`cn-hongkong`,`cn-huhehaote`,`cn-zhangjiakou`,`cn-chengdu`,`cn-heyuan`,`ap-southeast-1`,`ap-southeast-3`,`ap-southeast-5`,`ap-northeast-1`,`eu-central-1`,`eu-west-1`,`us-west-1`,`us-east-1`]\n\n\u003e **NOTE:** Only the following regions support create alikafka post paid instance. \n[`cn-hangzhou`,`cn-beijing`,`cn-shenzhen`,`cn-shanghai`,`cn-qingdao`,`cn-hongkong`,`cn-huhehaote`,`cn-zhangjiakou`,`cn-chengdu`,`cn-heyuan`,`ap-southeast-1`,`ap-southeast-3`,`ap-southeast-5`,`ap-northeast-1`,`eu-central-1`,`eu-west-1`,`us-west-1`,`us-east-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst instanceName = config.get(\"instanceName\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {cidrBlock: \"172.16.0.0/12\"});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultInstance = new alicloud.alikafka.Instance(\"default\", {\n    name: `${instanceName}-${defaultInteger.result}`,\n    partitionNum: 50,\n    diskType: 1,\n    diskSize: 500,\n    deployType: 5,\n    ioMax: 20,\n    specType: \"professional\",\n    vswitchId: defaultSwitch.id,\n    securityGroup: defaultSecurityGroup.id,\n    config: JSON.stringify({\n        \"kafka.log.retention.hours\": \"96\",\n        \"kafka.message.max.bytes\": \"1048576\",\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\ninstance_name = config.get(\"instanceName\")\nif instance_name is None:\n    instance_name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\", cidr_block=\"172.16.0.0/12\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_instance = alicloud.alikafka.Instance(\"default\",\n    name=f\"{instance_name}-{default_integer['result']}\",\n    partition_num=50,\n    disk_type=1,\n    disk_size=500,\n    deploy_type=5,\n    io_max=20,\n    spec_type=\"professional\",\n    vswitch_id=default_switch.id,\n    security_group=default_security_group.id,\n    config=json.dumps({\n        \"kafka.log.retention.hours\": \"96\",\n        \"kafka.message.max.bytes\": \"1048576\",\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var instanceName = config.Get(\"instanceName\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Alikafka.Instance(\"default\", new()\n    {\n        Name = $\"{instanceName}-{defaultInteger.Result}\",\n        PartitionNum = 50,\n        DiskType = 1,\n        DiskSize = 500,\n        DeployType = 5,\n        IoMax = 20,\n        SpecType = \"professional\",\n        VswitchId = defaultSwitch.Id,\n        SecurityGroup = defaultSecurityGroup.Id,\n        Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"kafka.log.retention.hours\"] = \"96\",\n            [\"kafka.message.max.bytes\"] = \"1048576\",\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alikafka\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceName := \"terraform-example\"\n\t\tif param := cfg.Get(\"instanceName\"); param != \"\" {\n\t\t\tinstanceName = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultNetwork.ID(),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"kafka.log.retention.hours\": \"96\",\n\t\t\t\"kafka.message.max.bytes\":   \"1048576\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = alikafka.NewInstance(ctx, \"default\", \u0026alikafka.InstanceArgs{\n\t\t\tName:          pulumi.Sprintf(\"%v-%v\", instanceName, defaultInteger.Result),\n\t\t\tPartitionNum:  pulumi.Int(50),\n\t\t\tDiskType:      pulumi.Int(1),\n\t\t\tDiskSize:      pulumi.Int(500),\n\t\t\tDeployType:    pulumi.Int(5),\n\t\t\tIoMax:         pulumi.Int(20),\n\t\t\tSpecType:      pulumi.String(\"professional\"),\n\t\t\tVswitchId:     defaultSwitch.ID(),\n\t\t\tSecurityGroup: defaultSecurityGroup.ID(),\n\t\t\tConfig:        pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.alikafka.Instance;\nimport com.pulumi.alicloud.alikafka.InstanceArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceName = config.get(\"instanceName\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .name(String.format(\"%s-%s\", instanceName,defaultInteger.result()))\n            .partitionNum(50)\n            .diskType(1)\n            .diskSize(500)\n            .deployType(5)\n            .ioMax(20)\n            .specType(\"professional\")\n            .vswitchId(defaultSwitch.id())\n            .securityGroup(defaultSecurityGroup.id())\n            .config(serializeJson(\n                jsonObject(\n                    jsonProperty(\"kafka.log.retention.hours\", \"96\"),\n                    jsonProperty(\"kafka.message.max.bytes\", \"1048576\")\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceName:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:alikafka:Instance\n    name: default\n    properties:\n      name: ${instanceName}-${defaultInteger.result}\n      partitionNum: 50\n      diskType: 1\n      diskSize: 500\n      deployType: 5\n      ioMax: 20\n      specType: professional\n      vswitchId: ${defaultSwitch.id}\n      securityGroup: ${defaultSecurityGroup.id}\n      config:\n        fn::toJSON:\n          kafka.log.retention.hours: '96'\n          kafka.message.max.bytes: '1048576'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Removing\u003cspan pulumi-lang-nodejs=\" alicloud.alikafka.Instance \" pulumi-lang-dotnet=\" alicloud.alikafka.Instance \" pulumi-lang-go=\" alikafka.Instance \" pulumi-lang-python=\" alikafka.Instance \" pulumi-lang-yaml=\" alicloud.alikafka.Instance \" pulumi-lang-java=\" alicloud.alikafka.Instance \"\u003e alicloud.alikafka.Instance \u003c/span\u003efrom your configuration\n\nThe\u003cspan pulumi-lang-nodejs=\" alicloud.alikafka.Instance \" pulumi-lang-dotnet=\" alicloud.alikafka.Instance \" pulumi-lang-go=\" alikafka.Instance \" pulumi-lang-python=\" alikafka.Instance \" pulumi-lang-yaml=\" alicloud.alikafka.Instance \" pulumi-lang-java=\" alicloud.alikafka.Instance \"\u003e alicloud.alikafka.Instance \u003c/span\u003eresource allows you to manage your alikafka instance, but Terraform cannot destroy it if your instance type is pre paid(post paid type can destroy normally). Removing this resource from your configuration will remove it from your statefile and management, but will not destroy the instance. You can resume managing the instance via the alikafka Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAliKafka instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alikafka/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"config":{"type":"string","description":"The initial configurations of the ApsaraMQ for Kafka instance. The values must be valid JSON strings.\n"},"confluentConfig":{"$ref":"#/types/alicloud:alikafka/InstanceConfluentConfig:InstanceConfluentConfig","description":"The configurations of Confluent. See \u003cspan pulumi-lang-nodejs=\"`confluentConfig`\" pulumi-lang-dotnet=\"`ConfluentConfig`\" pulumi-lang-go=\"`confluentConfig`\" pulumi-lang-python=\"`confluent_config`\" pulumi-lang-yaml=\"`confluentConfig`\" pulumi-lang-java=\"`confluentConfig`\"\u003e`confluent_config`\u003c/span\u003e below.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaConfluent`\" pulumi-lang-dotnet=\"`AlikafkaConfluent`\" pulumi-lang-go=\"`alikafkaConfluent`\" pulumi-lang-python=\"`alikafka_confluent`\" pulumi-lang-yaml=\"`alikafkaConfluent`\" pulumi-lang-java=\"`alikafkaConfluent`\"\u003e`alikafka_confluent`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`confluentConfig`\" pulumi-lang-dotnet=\"`ConfluentConfig`\" pulumi-lang-go=\"`confluentConfig`\" pulumi-lang-python=\"`confluent_config`\" pulumi-lang-yaml=\"`confluentConfig`\" pulumi-lang-java=\"`confluentConfig`\"\u003e`confluent_config`\u003c/span\u003e is required.\n"},"defaultTopicPartitionNum":{"type":"integer","description":"The number of partitions in a topic that is automatically created.\n"},"deployType":{"type":"integer","description":"The deployment type of the instance. **NOTE:** From version 1.161.0, this attribute supports to be updated. Valid values:\n"},"diskSize":{"type":"integer","description":"The disk size of the instance. When modify this value, it only supports adjust to a greater value.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafka`\" pulumi-lang-dotnet=\"`Alikafka`\" pulumi-lang-go=\"`alikafka`\" pulumi-lang-python=\"`alikafka`\" pulumi-lang-yaml=\"`alikafka`\" pulumi-lang-java=\"`alikafka`\"\u003e`alikafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`diskSize`\" pulumi-lang-dotnet=\"`DiskSize`\" pulumi-lang-go=\"`diskSize`\" pulumi-lang-python=\"`disk_size`\" pulumi-lang-yaml=\"`diskSize`\" pulumi-lang-java=\"`diskSize`\"\u003e`disk_size`\u003c/span\u003e is required.\n"},"diskType":{"type":"integer","description":"The disk type of the instance. Valid values:\n"},"domainEndpoint":{"type":"string","description":"(Available since v1.234.0) The default endpoint of the instance in domain name mode.\n"},"eipMax":{"type":"integer","description":"The max bandwidth of the instance. It will be ignored when \u003cspan pulumi-lang-nodejs=\"`deployType \" pulumi-lang-dotnet=\"`DeployType \" pulumi-lang-go=\"`deployType \" pulumi-lang-python=\"`deploy_type \" pulumi-lang-yaml=\"`deployType \" pulumi-lang-java=\"`deployType \"\u003e`deploy_type \u003c/span\u003e= 5`. When modify this value, it only supports adjust to a greater value.\n"},"enableAutoGroup":{"type":"boolean","description":"Specify whether to enable the flexible group creation feature. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"enableAutoTopic":{"type":"string","description":"Specify whether to enable the automatic topic creation feature. Default value: \u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\"\u003e`disable`\u003c/span\u003e. Valid values:\n"},"endPoint":{"type":"string","description":"The EndPoint to access the kafka instance.\n"},"groupLeft":{"type":"integer","description":"(Available since v1.214.1) The number of available groups.\n"},"groupUsed":{"type":"integer","description":"(Available since v1.214.1) The number of used groups.\n"},"instanceType":{"type":"string","description":"The type of the Instance. Default value: \u003cspan pulumi-lang-nodejs=\"`alikafka`\" pulumi-lang-dotnet=\"`Alikafka`\" pulumi-lang-go=\"`alikafka`\" pulumi-lang-python=\"`alikafka`\" pulumi-lang-yaml=\"`alikafka`\" pulumi-lang-java=\"`alikafka`\"\u003e`alikafka`\u003c/span\u003e. Valid values:\n"},"ioMax":{"type":"integer","description":"The max value of io of the instance. When modify this value, it only support adjust to a greater value.\n"},"ioMaxSpec":{"type":"string","description":"The traffic specification of the instance. We recommend that you configure this parameter.\n- You should specify one of the \u003cspan pulumi-lang-nodejs=\"`ioMax`\" pulumi-lang-dotnet=\"`IoMax`\" pulumi-lang-go=\"`ioMax`\" pulumi-lang-python=\"`io_max`\" pulumi-lang-yaml=\"`ioMax`\" pulumi-lang-java=\"`ioMax`\"\u003e`io_max`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ioMaxSpec`\" pulumi-lang-dotnet=\"`IoMaxSpec`\" pulumi-lang-go=\"`ioMaxSpec`\" pulumi-lang-python=\"`io_max_spec`\" pulumi-lang-yaml=\"`ioMaxSpec`\" pulumi-lang-java=\"`ioMaxSpec`\"\u003e`io_max_spec`\u003c/span\u003e parameters, and \u003cspan pulumi-lang-nodejs=\"`ioMaxSpec`\" pulumi-lang-dotnet=\"`IoMaxSpec`\" pulumi-lang-go=\"`ioMaxSpec`\" pulumi-lang-python=\"`io_max_spec`\" pulumi-lang-yaml=\"`ioMaxSpec`\" pulumi-lang-java=\"`ioMaxSpec`\"\u003e`io_max_spec`\u003c/span\u003e is recommended.\n- For more information about the valid values, see [Billing](https://www.alibabacloud.com/help/en/message-queue-for-apache-kafka/latest/billing-overview).\n"},"isPartitionBuy":{"type":"integer","description":"(Available since v1.214.1) The method that you use to purchase partitions.\n"},"kmsKeyId":{"type":"string","description":"The ID of the key that is used to encrypt data on standard SSDs in the region of the instance. For more information, see [How to use it](https://www.alibabacloud.com/help/en/apsaramq-for-kafka/cloud-message-queue-for-kafka/developer-reference/api-alikafka-2019-09-16-updateinstanceconfig).\n"},"name":{"type":"string","description":"Name of your Kafka instance. The length should between 3 and 64 characters. If not set, will use instance id as instance name.\n"},"paidType":{"type":"string","description":"The billing method of the instance. Default value: `PostPaid`. Valid values: `PostPaid`, `PrePaid`. When modify this value, it only support adjust from `PostPaid` to `PrePaid`.\n"},"partitionLeft":{"type":"integer","description":"(Available since v1.214.1) The number of available partitions.\n"},"partitionNum":{"type":"integer","description":"The number of partitions.\n"},"partitionUsed":{"type":"integer","description":"(Available since v1.214.1) The number of used partitions.\n"},"password":{"type":"string","description":"The instance password. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaConfluent`\" pulumi-lang-dotnet=\"`AlikafkaConfluent`\" pulumi-lang-go=\"`alikafkaConfluent`\" pulumi-lang-python=\"`alikafka_confluent`\" pulumi-lang-yaml=\"`alikafkaConfluent`\" pulumi-lang-java=\"`alikafkaConfluent`\"\u003e`alikafka_confluent`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is required.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"saslDomainEndpoint":{"type":"string","description":"(Available since v1.234.0) The Simple Authentication and Security Layer (SASL) endpoint of the instance in domain name mode.\n"},"securityGroup":{"type":"string","description":"The ID of security group for this instance. If the security group is empty, system will create a default one.\n"},"selectedZones":{"type":"array","items":{"type":"string"},"description":"The zones among which you want to deploy the instance. For more information, see [How to use it](https://www.alibabacloud.com/help/en/apsaramq-for-kafka/cloud-message-queue-for-kafka/developer-reference/api-alikafka-2019-09-16-startinstance).\n"},"serverlessConfig":{"$ref":"#/types/alicloud:alikafka/InstanceServerlessConfig:InstanceServerlessConfig","description":"The parameters configured for the serverless ApsaraMQ for Kafka instance. See \u003cspan pulumi-lang-nodejs=\"`serverlessConfig`\" pulumi-lang-dotnet=\"`ServerlessConfig`\" pulumi-lang-go=\"`serverlessConfig`\" pulumi-lang-python=\"`serverless_config`\" pulumi-lang-yaml=\"`serverlessConfig`\" pulumi-lang-java=\"`serverlessConfig`\"\u003e`serverless_config`\u003c/span\u003e below.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaServerless`\" pulumi-lang-dotnet=\"`AlikafkaServerless`\" pulumi-lang-go=\"`alikafkaServerless`\" pulumi-lang-python=\"`alikafka_serverless`\" pulumi-lang-yaml=\"`alikafkaServerless`\" pulumi-lang-java=\"`alikafkaServerless`\"\u003e`alikafka_serverless`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`serverlessConfig`\" pulumi-lang-dotnet=\"`ServerlessConfig`\" pulumi-lang-go=\"`serverlessConfig`\" pulumi-lang-python=\"`serverless_config`\" pulumi-lang-yaml=\"`serverlessConfig`\" pulumi-lang-java=\"`serverlessConfig`\"\u003e`serverless_config`\u003c/span\u003e is required.\n"},"serviceVersion":{"type":"string","description":"The version of the Instance. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafka`\" pulumi-lang-dotnet=\"`Alikafka`\" pulumi-lang-go=\"`alikafka`\" pulumi-lang-python=\"`alikafka`\" pulumi-lang-yaml=\"`alikafka`\" pulumi-lang-java=\"`alikafka`\"\u003e`alikafka`\u003c/span\u003e. Default value: `2.2.0`. Valid values: `2.2.0`, `2.6.2`.\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaServerless`\" pulumi-lang-dotnet=\"`AlikafkaServerless`\" pulumi-lang-go=\"`alikafkaServerless`\" pulumi-lang-python=\"`alikafka_serverless`\" pulumi-lang-yaml=\"`alikafkaServerless`\" pulumi-lang-java=\"`alikafkaServerless`\"\u003e`alikafka_serverless`\u003c/span\u003e. Default value: `3.3.1`. Valid values: `3.3.1`.\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaConfluent`\" pulumi-lang-dotnet=\"`AlikafkaConfluent`\" pulumi-lang-go=\"`alikafkaConfluent`\" pulumi-lang-python=\"`alikafka_confluent`\" pulumi-lang-yaml=\"`alikafkaConfluent`\" pulumi-lang-java=\"`alikafkaConfluent`\"\u003e`alikafka_confluent`\u003c/span\u003e. Default value: `7.4.0`. Valid values: `7.4.0`.\n"},"specType":{"type":"string","description":"The instance edition. Default value: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafka`\" pulumi-lang-dotnet=\"`Alikafka`\" pulumi-lang-go=\"`alikafka`\" pulumi-lang-python=\"`alikafka`\" pulumi-lang-yaml=\"`alikafka`\" pulumi-lang-java=\"`alikafka`\"\u003e`alikafka`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`professional`\" pulumi-lang-dotnet=\"`Professional`\" pulumi-lang-go=\"`professional`\" pulumi-lang-python=\"`professional`\" pulumi-lang-yaml=\"`professional`\" pulumi-lang-java=\"`professional`\"\u003e`professional`\u003c/span\u003e, `professionalForHighRead`.\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaServerless`\" pulumi-lang-dotnet=\"`AlikafkaServerless`\" pulumi-lang-go=\"`alikafkaServerless`\" pulumi-lang-python=\"`alikafka_serverless`\" pulumi-lang-yaml=\"`alikafkaServerless`\" pulumi-lang-java=\"`alikafkaServerless`\"\u003e`alikafka_serverless`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaConfluent`\" pulumi-lang-dotnet=\"`AlikafkaConfluent`\" pulumi-lang-go=\"`alikafkaConfluent`\" pulumi-lang-python=\"`alikafka_confluent`\" pulumi-lang-yaml=\"`alikafkaConfluent`\" pulumi-lang-java=\"`alikafkaConfluent`\"\u003e`alikafka_confluent`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`professional`\" pulumi-lang-dotnet=\"`Professional`\" pulumi-lang-go=\"`professional`\" pulumi-lang-python=\"`professional`\" pulumi-lang-yaml=\"`professional`\" pulumi-lang-java=\"`professional`\"\u003e`professional`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enterprise`\" pulumi-lang-dotnet=\"`Enterprise`\" pulumi-lang-go=\"`enterprise`\" pulumi-lang-python=\"`enterprise`\" pulumi-lang-yaml=\"`enterprise`\" pulumi-lang-java=\"`enterprise`\"\u003e`enterprise`\u003c/span\u003e.\n"},"sslDomainEndpoint":{"type":"string","description":"(Available since v1.234.0) The SSL endpoint of the instance in domain name mode.\n"},"sslEndpoint":{"type":"string","description":"(Available since v1.234.0) The Secure Sockets Layer (SSL) endpoint of the instance in IP address mode.\n"},"status":{"type":"integer","description":"The status of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"topicLeft":{"type":"integer","description":"(Available since v1.214.1) The number of available topics.\n"},"topicNumOfBuy":{"type":"integer","description":"(Available since v1.214.1) The number of purchased topics.\n"},"topicQuota":{"type":"integer","description":"The max num of topic can be creation of the instance.\nIt has been deprecated since version 1.194.0 and using \u003cspan pulumi-lang-nodejs=\"`partitionNum`\" pulumi-lang-dotnet=\"`PartitionNum`\" pulumi-lang-go=\"`partitionNum`\" pulumi-lang-python=\"`partition_num`\" pulumi-lang-yaml=\"`partitionNum`\" pulumi-lang-java=\"`partitionNum`\"\u003e`partition_num`\u003c/span\u003e instead.\nCurrently, its value only can be set to 50 when creating it, and finally depends on \u003cspan pulumi-lang-nodejs=\"`partitionNum`\" pulumi-lang-dotnet=\"`PartitionNum`\" pulumi-lang-go=\"`partitionNum`\" pulumi-lang-python=\"`partition_num`\" pulumi-lang-yaml=\"`partitionNum`\" pulumi-lang-java=\"`partitionNum`\"\u003e`partition_num`\u003c/span\u003e value: \u003c\u003cspan pulumi-lang-nodejs=\"`topicQuota`\" pulumi-lang-dotnet=\"`TopicQuota`\" pulumi-lang-go=\"`topicQuota`\" pulumi-lang-python=\"`topic_quota`\" pulumi-lang-yaml=\"`topicQuota`\" pulumi-lang-java=\"`topicQuota`\"\u003e`topic_quota`\u003c/span\u003e\u003e = 1000 + \u003c\u003cspan pulumi-lang-nodejs=\"`partitionNum`\" pulumi-lang-dotnet=\"`PartitionNum`\" pulumi-lang-go=\"`partitionNum`\" pulumi-lang-python=\"`partition_num`\" pulumi-lang-yaml=\"`partitionNum`\" pulumi-lang-java=\"`partitionNum`\"\u003e`partition_num`\u003c/span\u003e\u003e.\nTherefore, you can update it by updating the \u003cspan pulumi-lang-nodejs=\"`partitionNum`\" pulumi-lang-dotnet=\"`PartitionNum`\" pulumi-lang-go=\"`partitionNum`\" pulumi-lang-python=\"`partition_num`\" pulumi-lang-yaml=\"`partitionNum`\" pulumi-lang-java=\"`partitionNum`\"\u003e`partition_num`\u003c/span\u003e, and it is the only updating path.\n","deprecationMessage":"Attribute \u003cspan pulumi-lang-nodejs=\"`topicQuota`\" pulumi-lang-dotnet=\"`TopicQuota`\" pulumi-lang-go=\"`topicQuota`\" pulumi-lang-python=\"`topic_quota`\" pulumi-lang-yaml=\"`topicQuota`\" pulumi-lang-java=\"`topicQuota`\"\u003e`topic_quota`\u003c/span\u003e has been deprecated since 1.194.0 and it will be removed in the next future. Using new attribute \u003cspan pulumi-lang-nodejs=\"`partitionNum`\" pulumi-lang-dotnet=\"`PartitionNum`\" pulumi-lang-go=\"`partitionNum`\" pulumi-lang-python=\"`partition_num`\" pulumi-lang-yaml=\"`partitionNum`\" pulumi-lang-java=\"`partitionNum`\"\u003e`partition_num`\u003c/span\u003e instead."},"topicUsed":{"type":"integer","description":"(Available since v1.214.1) The number of used topics.\n"},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n"},"vswitchId":{"type":"string","description":"The ID of attaching vswitch to instance.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the vSwitches with which the instance is associated.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafka`\" pulumi-lang-dotnet=\"`Alikafka`\" pulumi-lang-go=\"`alikafka`\" pulumi-lang-python=\"`alikafka`\" pulumi-lang-yaml=\"`alikafka`\" pulumi-lang-java=\"`alikafka`\"\u003e`alikafka`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`alikafkaServerless`\" pulumi-lang-dotnet=\"`AlikafkaServerless`\" pulumi-lang-go=\"`alikafkaServerless`\" pulumi-lang-python=\"`alikafka_serverless`\" pulumi-lang-yaml=\"`alikafkaServerless`\" pulumi-lang-java=\"`alikafkaServerless`\"\u003e`alikafka_serverless`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e is required. When \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaConfluent`\" pulumi-lang-dotnet=\"`AlikafkaConfluent`\" pulumi-lang-go=\"`alikafkaConfluent`\" pulumi-lang-python=\"`alikafka_confluent`\" pulumi-lang-yaml=\"`alikafkaConfluent`\" pulumi-lang-java=\"`alikafkaConfluent`\"\u003e`alikafka_confluent`\u003c/span\u003e, you must specify at least one of the \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e, and if you specify both \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e, only the \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e takes effect.\n"},"zoneId":{"type":"string","description":"The zone ID of the instance. The value can be in zone x or region id-x format. **NOTE**: When the available zone is insufficient, another availability zone may be deployed.\n"}},"required":["config","confluentConfig","defaultTopicPartitionNum","deployType","domainEndpoint","eipMax","enableAutoTopic","endPoint","groupLeft","groupUsed","instanceType","ioMax","ioMaxSpec","isPartitionBuy","name","partitionLeft","partitionUsed","resourceGroupId","saslDomainEndpoint","securityGroup","serverlessConfig","serviceVersion","sslDomainEndpoint","sslEndpoint","status","topicLeft","topicNumOfBuy","topicQuota","topicUsed","vpcId","vswitchId","vswitchIds","zoneId"],"inputProperties":{"config":{"type":"string","description":"The initial configurations of the ApsaraMQ for Kafka instance. The values must be valid JSON strings.\n"},"confluentConfig":{"$ref":"#/types/alicloud:alikafka/InstanceConfluentConfig:InstanceConfluentConfig","description":"The configurations of Confluent. See \u003cspan pulumi-lang-nodejs=\"`confluentConfig`\" pulumi-lang-dotnet=\"`ConfluentConfig`\" pulumi-lang-go=\"`confluentConfig`\" pulumi-lang-python=\"`confluent_config`\" pulumi-lang-yaml=\"`confluentConfig`\" pulumi-lang-java=\"`confluentConfig`\"\u003e`confluent_config`\u003c/span\u003e below.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaConfluent`\" pulumi-lang-dotnet=\"`AlikafkaConfluent`\" pulumi-lang-go=\"`alikafkaConfluent`\" pulumi-lang-python=\"`alikafka_confluent`\" pulumi-lang-yaml=\"`alikafkaConfluent`\" pulumi-lang-java=\"`alikafkaConfluent`\"\u003e`alikafka_confluent`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`confluentConfig`\" pulumi-lang-dotnet=\"`ConfluentConfig`\" pulumi-lang-go=\"`confluentConfig`\" pulumi-lang-python=\"`confluent_config`\" pulumi-lang-yaml=\"`confluentConfig`\" pulumi-lang-java=\"`confluentConfig`\"\u003e`confluent_config`\u003c/span\u003e is required.\n"},"defaultTopicPartitionNum":{"type":"integer","description":"The number of partitions in a topic that is automatically created.\n"},"deployType":{"type":"integer","description":"The deployment type of the instance. **NOTE:** From version 1.161.0, this attribute supports to be updated. Valid values:\n"},"diskSize":{"type":"integer","description":"The disk size of the instance. When modify this value, it only supports adjust to a greater value.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafka`\" pulumi-lang-dotnet=\"`Alikafka`\" pulumi-lang-go=\"`alikafka`\" pulumi-lang-python=\"`alikafka`\" pulumi-lang-yaml=\"`alikafka`\" pulumi-lang-java=\"`alikafka`\"\u003e`alikafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`diskSize`\" pulumi-lang-dotnet=\"`DiskSize`\" pulumi-lang-go=\"`diskSize`\" pulumi-lang-python=\"`disk_size`\" pulumi-lang-yaml=\"`diskSize`\" pulumi-lang-java=\"`diskSize`\"\u003e`disk_size`\u003c/span\u003e is required.\n"},"diskType":{"type":"integer","description":"The disk type of the instance. Valid values:\n","willReplaceOnChanges":true},"eipMax":{"type":"integer","description":"The max bandwidth of the instance. It will be ignored when \u003cspan pulumi-lang-nodejs=\"`deployType \" pulumi-lang-dotnet=\"`DeployType \" pulumi-lang-go=\"`deployType \" pulumi-lang-python=\"`deploy_type \" pulumi-lang-yaml=\"`deployType \" pulumi-lang-java=\"`deployType \"\u003e`deploy_type \u003c/span\u003e= 5`. When modify this value, it only supports adjust to a greater value.\n"},"enableAutoGroup":{"type":"boolean","description":"Specify whether to enable the flexible group creation feature. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"enableAutoTopic":{"type":"string","description":"Specify whether to enable the automatic topic creation feature. Default value: \u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\"\u003e`disable`\u003c/span\u003e. Valid values:\n"},"instanceType":{"type":"string","description":"The type of the Instance. Default value: \u003cspan pulumi-lang-nodejs=\"`alikafka`\" pulumi-lang-dotnet=\"`Alikafka`\" pulumi-lang-go=\"`alikafka`\" pulumi-lang-python=\"`alikafka`\" pulumi-lang-yaml=\"`alikafka`\" pulumi-lang-java=\"`alikafka`\"\u003e`alikafka`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"ioMax":{"type":"integer","description":"The max value of io of the instance. When modify this value, it only support adjust to a greater value.\n"},"ioMaxSpec":{"type":"string","description":"The traffic specification of the instance. We recommend that you configure this parameter.\n- You should specify one of the \u003cspan pulumi-lang-nodejs=\"`ioMax`\" pulumi-lang-dotnet=\"`IoMax`\" pulumi-lang-go=\"`ioMax`\" pulumi-lang-python=\"`io_max`\" pulumi-lang-yaml=\"`ioMax`\" pulumi-lang-java=\"`ioMax`\"\u003e`io_max`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ioMaxSpec`\" pulumi-lang-dotnet=\"`IoMaxSpec`\" pulumi-lang-go=\"`ioMaxSpec`\" pulumi-lang-python=\"`io_max_spec`\" pulumi-lang-yaml=\"`ioMaxSpec`\" pulumi-lang-java=\"`ioMaxSpec`\"\u003e`io_max_spec`\u003c/span\u003e parameters, and \u003cspan pulumi-lang-nodejs=\"`ioMaxSpec`\" pulumi-lang-dotnet=\"`IoMaxSpec`\" pulumi-lang-go=\"`ioMaxSpec`\" pulumi-lang-python=\"`io_max_spec`\" pulumi-lang-yaml=\"`ioMaxSpec`\" pulumi-lang-java=\"`ioMaxSpec`\"\u003e`io_max_spec`\u003c/span\u003e is recommended.\n- For more information about the valid values, see [Billing](https://www.alibabacloud.com/help/en/message-queue-for-apache-kafka/latest/billing-overview).\n"},"kmsKeyId":{"type":"string","description":"The ID of the key that is used to encrypt data on standard SSDs in the region of the instance. For more information, see [How to use it](https://www.alibabacloud.com/help/en/apsaramq-for-kafka/cloud-message-queue-for-kafka/developer-reference/api-alikafka-2019-09-16-updateinstanceconfig).\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of your Kafka instance. The length should between 3 and 64 characters. If not set, will use instance id as instance name.\n"},"paidType":{"type":"string","description":"The billing method of the instance. Default value: `PostPaid`. Valid values: `PostPaid`, `PrePaid`. When modify this value, it only support adjust from `PostPaid` to `PrePaid`.\n"},"partitionNum":{"type":"integer","description":"The number of partitions.\n"},"password":{"type":"string","description":"The instance password. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaConfluent`\" pulumi-lang-dotnet=\"`AlikafkaConfluent`\" pulumi-lang-go=\"`alikafkaConfluent`\" pulumi-lang-python=\"`alikafka_confluent`\" pulumi-lang-yaml=\"`alikafkaConfluent`\" pulumi-lang-java=\"`alikafkaConfluent`\"\u003e`alikafka_confluent`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is required.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"securityGroup":{"type":"string","description":"The ID of security group for this instance. If the security group is empty, system will create a default one.\n","willReplaceOnChanges":true},"selectedZones":{"type":"array","items":{"type":"string"},"description":"The zones among which you want to deploy the instance. For more information, see [How to use it](https://www.alibabacloud.com/help/en/apsaramq-for-kafka/cloud-message-queue-for-kafka/developer-reference/api-alikafka-2019-09-16-startinstance).\n"},"serverlessConfig":{"$ref":"#/types/alicloud:alikafka/InstanceServerlessConfig:InstanceServerlessConfig","description":"The parameters configured for the serverless ApsaraMQ for Kafka instance. See \u003cspan pulumi-lang-nodejs=\"`serverlessConfig`\" pulumi-lang-dotnet=\"`ServerlessConfig`\" pulumi-lang-go=\"`serverlessConfig`\" pulumi-lang-python=\"`serverless_config`\" pulumi-lang-yaml=\"`serverlessConfig`\" pulumi-lang-java=\"`serverlessConfig`\"\u003e`serverless_config`\u003c/span\u003e below.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaServerless`\" pulumi-lang-dotnet=\"`AlikafkaServerless`\" pulumi-lang-go=\"`alikafkaServerless`\" pulumi-lang-python=\"`alikafka_serverless`\" pulumi-lang-yaml=\"`alikafkaServerless`\" pulumi-lang-java=\"`alikafkaServerless`\"\u003e`alikafka_serverless`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`serverlessConfig`\" pulumi-lang-dotnet=\"`ServerlessConfig`\" pulumi-lang-go=\"`serverlessConfig`\" pulumi-lang-python=\"`serverless_config`\" pulumi-lang-yaml=\"`serverlessConfig`\" pulumi-lang-java=\"`serverlessConfig`\"\u003e`serverless_config`\u003c/span\u003e is required.\n"},"serviceVersion":{"type":"string","description":"The version of the Instance. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafka`\" pulumi-lang-dotnet=\"`Alikafka`\" pulumi-lang-go=\"`alikafka`\" pulumi-lang-python=\"`alikafka`\" pulumi-lang-yaml=\"`alikafka`\" pulumi-lang-java=\"`alikafka`\"\u003e`alikafka`\u003c/span\u003e. Default value: `2.2.0`. Valid values: `2.2.0`, `2.6.2`.\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaServerless`\" pulumi-lang-dotnet=\"`AlikafkaServerless`\" pulumi-lang-go=\"`alikafkaServerless`\" pulumi-lang-python=\"`alikafka_serverless`\" pulumi-lang-yaml=\"`alikafkaServerless`\" pulumi-lang-java=\"`alikafkaServerless`\"\u003e`alikafka_serverless`\u003c/span\u003e. Default value: `3.3.1`. Valid values: `3.3.1`.\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaConfluent`\" pulumi-lang-dotnet=\"`AlikafkaConfluent`\" pulumi-lang-go=\"`alikafkaConfluent`\" pulumi-lang-python=\"`alikafka_confluent`\" pulumi-lang-yaml=\"`alikafkaConfluent`\" pulumi-lang-java=\"`alikafkaConfluent`\"\u003e`alikafka_confluent`\u003c/span\u003e. Default value: `7.4.0`. Valid values: `7.4.0`.\n"},"specType":{"type":"string","description":"The instance edition. Default value: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafka`\" pulumi-lang-dotnet=\"`Alikafka`\" pulumi-lang-go=\"`alikafka`\" pulumi-lang-python=\"`alikafka`\" pulumi-lang-yaml=\"`alikafka`\" pulumi-lang-java=\"`alikafka`\"\u003e`alikafka`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`professional`\" pulumi-lang-dotnet=\"`Professional`\" pulumi-lang-go=\"`professional`\" pulumi-lang-python=\"`professional`\" pulumi-lang-yaml=\"`professional`\" pulumi-lang-java=\"`professional`\"\u003e`professional`\u003c/span\u003e, `professionalForHighRead`.\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaServerless`\" pulumi-lang-dotnet=\"`AlikafkaServerless`\" pulumi-lang-go=\"`alikafkaServerless`\" pulumi-lang-python=\"`alikafka_serverless`\" pulumi-lang-yaml=\"`alikafkaServerless`\" pulumi-lang-java=\"`alikafkaServerless`\"\u003e`alikafka_serverless`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaConfluent`\" pulumi-lang-dotnet=\"`AlikafkaConfluent`\" pulumi-lang-go=\"`alikafkaConfluent`\" pulumi-lang-python=\"`alikafka_confluent`\" pulumi-lang-yaml=\"`alikafkaConfluent`\" pulumi-lang-java=\"`alikafkaConfluent`\"\u003e`alikafka_confluent`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`professional`\" pulumi-lang-dotnet=\"`Professional`\" pulumi-lang-go=\"`professional`\" pulumi-lang-python=\"`professional`\" pulumi-lang-yaml=\"`professional`\" pulumi-lang-java=\"`professional`\"\u003e`professional`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enterprise`\" pulumi-lang-dotnet=\"`Enterprise`\" pulumi-lang-go=\"`enterprise`\" pulumi-lang-python=\"`enterprise`\" pulumi-lang-yaml=\"`enterprise`\" pulumi-lang-java=\"`enterprise`\"\u003e`enterprise`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"topicQuota":{"type":"integer","description":"The max num of topic can be creation of the instance.\nIt has been deprecated since version 1.194.0 and using \u003cspan pulumi-lang-nodejs=\"`partitionNum`\" pulumi-lang-dotnet=\"`PartitionNum`\" pulumi-lang-go=\"`partitionNum`\" pulumi-lang-python=\"`partition_num`\" pulumi-lang-yaml=\"`partitionNum`\" pulumi-lang-java=\"`partitionNum`\"\u003e`partition_num`\u003c/span\u003e instead.\nCurrently, its value only can be set to 50 when creating it, and finally depends on \u003cspan pulumi-lang-nodejs=\"`partitionNum`\" pulumi-lang-dotnet=\"`PartitionNum`\" pulumi-lang-go=\"`partitionNum`\" pulumi-lang-python=\"`partition_num`\" pulumi-lang-yaml=\"`partitionNum`\" pulumi-lang-java=\"`partitionNum`\"\u003e`partition_num`\u003c/span\u003e value: \u003c\u003cspan pulumi-lang-nodejs=\"`topicQuota`\" pulumi-lang-dotnet=\"`TopicQuota`\" pulumi-lang-go=\"`topicQuota`\" pulumi-lang-python=\"`topic_quota`\" pulumi-lang-yaml=\"`topicQuota`\" pulumi-lang-java=\"`topicQuota`\"\u003e`topic_quota`\u003c/span\u003e\u003e = 1000 + \u003c\u003cspan pulumi-lang-nodejs=\"`partitionNum`\" pulumi-lang-dotnet=\"`PartitionNum`\" pulumi-lang-go=\"`partitionNum`\" pulumi-lang-python=\"`partition_num`\" pulumi-lang-yaml=\"`partitionNum`\" pulumi-lang-java=\"`partitionNum`\"\u003e`partition_num`\u003c/span\u003e\u003e.\nTherefore, you can update it by updating the \u003cspan pulumi-lang-nodejs=\"`partitionNum`\" pulumi-lang-dotnet=\"`PartitionNum`\" pulumi-lang-go=\"`partitionNum`\" pulumi-lang-python=\"`partition_num`\" pulumi-lang-yaml=\"`partitionNum`\" pulumi-lang-java=\"`partitionNum`\"\u003e`partition_num`\u003c/span\u003e, and it is the only updating path.\n","deprecationMessage":"Attribute \u003cspan pulumi-lang-nodejs=\"`topicQuota`\" pulumi-lang-dotnet=\"`TopicQuota`\" pulumi-lang-go=\"`topicQuota`\" pulumi-lang-python=\"`topic_quota`\" pulumi-lang-yaml=\"`topicQuota`\" pulumi-lang-java=\"`topicQuota`\"\u003e`topic_quota`\u003c/span\u003e has been deprecated since 1.194.0 and it will be removed in the next future. Using new attribute \u003cspan pulumi-lang-nodejs=\"`partitionNum`\" pulumi-lang-dotnet=\"`PartitionNum`\" pulumi-lang-go=\"`partitionNum`\" pulumi-lang-python=\"`partition_num`\" pulumi-lang-yaml=\"`partitionNum`\" pulumi-lang-java=\"`partitionNum`\"\u003e`partition_num`\u003c/span\u003e instead."},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of attaching vswitch to instance.\n","willReplaceOnChanges":true},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the vSwitches with which the instance is associated.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafka`\" pulumi-lang-dotnet=\"`Alikafka`\" pulumi-lang-go=\"`alikafka`\" pulumi-lang-python=\"`alikafka`\" pulumi-lang-yaml=\"`alikafka`\" pulumi-lang-java=\"`alikafka`\"\u003e`alikafka`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`alikafkaServerless`\" pulumi-lang-dotnet=\"`AlikafkaServerless`\" pulumi-lang-go=\"`alikafkaServerless`\" pulumi-lang-python=\"`alikafka_serverless`\" pulumi-lang-yaml=\"`alikafkaServerless`\" pulumi-lang-java=\"`alikafkaServerless`\"\u003e`alikafka_serverless`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e is required. When \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaConfluent`\" pulumi-lang-dotnet=\"`AlikafkaConfluent`\" pulumi-lang-go=\"`alikafkaConfluent`\" pulumi-lang-python=\"`alikafka_confluent`\" pulumi-lang-yaml=\"`alikafkaConfluent`\" pulumi-lang-java=\"`alikafkaConfluent`\"\u003e`alikafka_confluent`\u003c/span\u003e, you must specify at least one of the \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e, and if you specify both \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e, only the \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e takes effect.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the instance. The value can be in zone x or region id-x format. **NOTE**: When the available zone is insufficient, another availability zone may be deployed.\n","willReplaceOnChanges":true}},"requiredInputs":["deployType"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"config":{"type":"string","description":"The initial configurations of the ApsaraMQ for Kafka instance. The values must be valid JSON strings.\n"},"confluentConfig":{"$ref":"#/types/alicloud:alikafka/InstanceConfluentConfig:InstanceConfluentConfig","description":"The configurations of Confluent. See \u003cspan pulumi-lang-nodejs=\"`confluentConfig`\" pulumi-lang-dotnet=\"`ConfluentConfig`\" pulumi-lang-go=\"`confluentConfig`\" pulumi-lang-python=\"`confluent_config`\" pulumi-lang-yaml=\"`confluentConfig`\" pulumi-lang-java=\"`confluentConfig`\"\u003e`confluent_config`\u003c/span\u003e below.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaConfluent`\" pulumi-lang-dotnet=\"`AlikafkaConfluent`\" pulumi-lang-go=\"`alikafkaConfluent`\" pulumi-lang-python=\"`alikafka_confluent`\" pulumi-lang-yaml=\"`alikafkaConfluent`\" pulumi-lang-java=\"`alikafkaConfluent`\"\u003e`alikafka_confluent`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`confluentConfig`\" pulumi-lang-dotnet=\"`ConfluentConfig`\" pulumi-lang-go=\"`confluentConfig`\" pulumi-lang-python=\"`confluent_config`\" pulumi-lang-yaml=\"`confluentConfig`\" pulumi-lang-java=\"`confluentConfig`\"\u003e`confluent_config`\u003c/span\u003e is required.\n"},"defaultTopicPartitionNum":{"type":"integer","description":"The number of partitions in a topic that is automatically created.\n"},"deployType":{"type":"integer","description":"The deployment type of the instance. **NOTE:** From version 1.161.0, this attribute supports to be updated. Valid values:\n"},"diskSize":{"type":"integer","description":"The disk size of the instance. When modify this value, it only supports adjust to a greater value.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafka`\" pulumi-lang-dotnet=\"`Alikafka`\" pulumi-lang-go=\"`alikafka`\" pulumi-lang-python=\"`alikafka`\" pulumi-lang-yaml=\"`alikafka`\" pulumi-lang-java=\"`alikafka`\"\u003e`alikafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`diskSize`\" pulumi-lang-dotnet=\"`DiskSize`\" pulumi-lang-go=\"`diskSize`\" pulumi-lang-python=\"`disk_size`\" pulumi-lang-yaml=\"`diskSize`\" pulumi-lang-java=\"`diskSize`\"\u003e`disk_size`\u003c/span\u003e is required.\n"},"diskType":{"type":"integer","description":"The disk type of the instance. Valid values:\n","willReplaceOnChanges":true},"domainEndpoint":{"type":"string","description":"(Available since v1.234.0) The default endpoint of the instance in domain name mode.\n"},"eipMax":{"type":"integer","description":"The max bandwidth of the instance. It will be ignored when \u003cspan pulumi-lang-nodejs=\"`deployType \" pulumi-lang-dotnet=\"`DeployType \" pulumi-lang-go=\"`deployType \" pulumi-lang-python=\"`deploy_type \" pulumi-lang-yaml=\"`deployType \" pulumi-lang-java=\"`deployType \"\u003e`deploy_type \u003c/span\u003e= 5`. When modify this value, it only supports adjust to a greater value.\n"},"enableAutoGroup":{"type":"boolean","description":"Specify whether to enable the flexible group creation feature. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"enableAutoTopic":{"type":"string","description":"Specify whether to enable the automatic topic creation feature. Default value: \u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\"\u003e`disable`\u003c/span\u003e. Valid values:\n"},"endPoint":{"type":"string","description":"The EndPoint to access the kafka instance.\n"},"groupLeft":{"type":"integer","description":"(Available since v1.214.1) The number of available groups.\n"},"groupUsed":{"type":"integer","description":"(Available since v1.214.1) The number of used groups.\n"},"instanceType":{"type":"string","description":"The type of the Instance. Default value: \u003cspan pulumi-lang-nodejs=\"`alikafka`\" pulumi-lang-dotnet=\"`Alikafka`\" pulumi-lang-go=\"`alikafka`\" pulumi-lang-python=\"`alikafka`\" pulumi-lang-yaml=\"`alikafka`\" pulumi-lang-java=\"`alikafka`\"\u003e`alikafka`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"ioMax":{"type":"integer","description":"The max value of io of the instance. When modify this value, it only support adjust to a greater value.\n"},"ioMaxSpec":{"type":"string","description":"The traffic specification of the instance. We recommend that you configure this parameter.\n- You should specify one of the \u003cspan pulumi-lang-nodejs=\"`ioMax`\" pulumi-lang-dotnet=\"`IoMax`\" pulumi-lang-go=\"`ioMax`\" pulumi-lang-python=\"`io_max`\" pulumi-lang-yaml=\"`ioMax`\" pulumi-lang-java=\"`ioMax`\"\u003e`io_max`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ioMaxSpec`\" pulumi-lang-dotnet=\"`IoMaxSpec`\" pulumi-lang-go=\"`ioMaxSpec`\" pulumi-lang-python=\"`io_max_spec`\" pulumi-lang-yaml=\"`ioMaxSpec`\" pulumi-lang-java=\"`ioMaxSpec`\"\u003e`io_max_spec`\u003c/span\u003e parameters, and \u003cspan pulumi-lang-nodejs=\"`ioMaxSpec`\" pulumi-lang-dotnet=\"`IoMaxSpec`\" pulumi-lang-go=\"`ioMaxSpec`\" pulumi-lang-python=\"`io_max_spec`\" pulumi-lang-yaml=\"`ioMaxSpec`\" pulumi-lang-java=\"`ioMaxSpec`\"\u003e`io_max_spec`\u003c/span\u003e is recommended.\n- For more information about the valid values, see [Billing](https://www.alibabacloud.com/help/en/message-queue-for-apache-kafka/latest/billing-overview).\n"},"isPartitionBuy":{"type":"integer","description":"(Available since v1.214.1) The method that you use to purchase partitions.\n"},"kmsKeyId":{"type":"string","description":"The ID of the key that is used to encrypt data on standard SSDs in the region of the instance. For more information, see [How to use it](https://www.alibabacloud.com/help/en/apsaramq-for-kafka/cloud-message-queue-for-kafka/developer-reference/api-alikafka-2019-09-16-updateinstanceconfig).\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of your Kafka instance. The length should between 3 and 64 characters. If not set, will use instance id as instance name.\n"},"paidType":{"type":"string","description":"The billing method of the instance. Default value: `PostPaid`. Valid values: `PostPaid`, `PrePaid`. When modify this value, it only support adjust from `PostPaid` to `PrePaid`.\n"},"partitionLeft":{"type":"integer","description":"(Available since v1.214.1) The number of available partitions.\n"},"partitionNum":{"type":"integer","description":"The number of partitions.\n"},"partitionUsed":{"type":"integer","description":"(Available since v1.214.1) The number of used partitions.\n"},"password":{"type":"string","description":"The instance password. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaConfluent`\" pulumi-lang-dotnet=\"`AlikafkaConfluent`\" pulumi-lang-go=\"`alikafkaConfluent`\" pulumi-lang-python=\"`alikafka_confluent`\" pulumi-lang-yaml=\"`alikafkaConfluent`\" pulumi-lang-java=\"`alikafkaConfluent`\"\u003e`alikafka_confluent`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is required.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"saslDomainEndpoint":{"type":"string","description":"(Available since v1.234.0) The Simple Authentication and Security Layer (SASL) endpoint of the instance in domain name mode.\n"},"securityGroup":{"type":"string","description":"The ID of security group for this instance. If the security group is empty, system will create a default one.\n","willReplaceOnChanges":true},"selectedZones":{"type":"array","items":{"type":"string"},"description":"The zones among which you want to deploy the instance. For more information, see [How to use it](https://www.alibabacloud.com/help/en/apsaramq-for-kafka/cloud-message-queue-for-kafka/developer-reference/api-alikafka-2019-09-16-startinstance).\n"},"serverlessConfig":{"$ref":"#/types/alicloud:alikafka/InstanceServerlessConfig:InstanceServerlessConfig","description":"The parameters configured for the serverless ApsaraMQ for Kafka instance. See \u003cspan pulumi-lang-nodejs=\"`serverlessConfig`\" pulumi-lang-dotnet=\"`ServerlessConfig`\" pulumi-lang-go=\"`serverlessConfig`\" pulumi-lang-python=\"`serverless_config`\" pulumi-lang-yaml=\"`serverlessConfig`\" pulumi-lang-java=\"`serverlessConfig`\"\u003e`serverless_config`\u003c/span\u003e below.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaServerless`\" pulumi-lang-dotnet=\"`AlikafkaServerless`\" pulumi-lang-go=\"`alikafkaServerless`\" pulumi-lang-python=\"`alikafka_serverless`\" pulumi-lang-yaml=\"`alikafkaServerless`\" pulumi-lang-java=\"`alikafkaServerless`\"\u003e`alikafka_serverless`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`serverlessConfig`\" pulumi-lang-dotnet=\"`ServerlessConfig`\" pulumi-lang-go=\"`serverlessConfig`\" pulumi-lang-python=\"`serverless_config`\" pulumi-lang-yaml=\"`serverlessConfig`\" pulumi-lang-java=\"`serverlessConfig`\"\u003e`serverless_config`\u003c/span\u003e is required.\n"},"serviceVersion":{"type":"string","description":"The version of the Instance. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafka`\" pulumi-lang-dotnet=\"`Alikafka`\" pulumi-lang-go=\"`alikafka`\" pulumi-lang-python=\"`alikafka`\" pulumi-lang-yaml=\"`alikafka`\" pulumi-lang-java=\"`alikafka`\"\u003e`alikafka`\u003c/span\u003e. Default value: `2.2.0`. Valid values: `2.2.0`, `2.6.2`.\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaServerless`\" pulumi-lang-dotnet=\"`AlikafkaServerless`\" pulumi-lang-go=\"`alikafkaServerless`\" pulumi-lang-python=\"`alikafka_serverless`\" pulumi-lang-yaml=\"`alikafkaServerless`\" pulumi-lang-java=\"`alikafkaServerless`\"\u003e`alikafka_serverless`\u003c/span\u003e. Default value: `3.3.1`. Valid values: `3.3.1`.\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaConfluent`\" pulumi-lang-dotnet=\"`AlikafkaConfluent`\" pulumi-lang-go=\"`alikafkaConfluent`\" pulumi-lang-python=\"`alikafka_confluent`\" pulumi-lang-yaml=\"`alikafkaConfluent`\" pulumi-lang-java=\"`alikafkaConfluent`\"\u003e`alikafka_confluent`\u003c/span\u003e. Default value: `7.4.0`. Valid values: `7.4.0`.\n"},"specType":{"type":"string","description":"The instance edition. Default value: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafka`\" pulumi-lang-dotnet=\"`Alikafka`\" pulumi-lang-go=\"`alikafka`\" pulumi-lang-python=\"`alikafka`\" pulumi-lang-yaml=\"`alikafka`\" pulumi-lang-java=\"`alikafka`\"\u003e`alikafka`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`professional`\" pulumi-lang-dotnet=\"`Professional`\" pulumi-lang-go=\"`professional`\" pulumi-lang-python=\"`professional`\" pulumi-lang-yaml=\"`professional`\" pulumi-lang-java=\"`professional`\"\u003e`professional`\u003c/span\u003e, `professionalForHighRead`.\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaServerless`\" pulumi-lang-dotnet=\"`AlikafkaServerless`\" pulumi-lang-go=\"`alikafkaServerless`\" pulumi-lang-python=\"`alikafka_serverless`\" pulumi-lang-yaml=\"`alikafkaServerless`\" pulumi-lang-java=\"`alikafkaServerless`\"\u003e`alikafka_serverless`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaConfluent`\" pulumi-lang-dotnet=\"`AlikafkaConfluent`\" pulumi-lang-go=\"`alikafkaConfluent`\" pulumi-lang-python=\"`alikafka_confluent`\" pulumi-lang-yaml=\"`alikafkaConfluent`\" pulumi-lang-java=\"`alikafkaConfluent`\"\u003e`alikafka_confluent`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`professional`\" pulumi-lang-dotnet=\"`Professional`\" pulumi-lang-go=\"`professional`\" pulumi-lang-python=\"`professional`\" pulumi-lang-yaml=\"`professional`\" pulumi-lang-java=\"`professional`\"\u003e`professional`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enterprise`\" pulumi-lang-dotnet=\"`Enterprise`\" pulumi-lang-go=\"`enterprise`\" pulumi-lang-python=\"`enterprise`\" pulumi-lang-yaml=\"`enterprise`\" pulumi-lang-java=\"`enterprise`\"\u003e`enterprise`\u003c/span\u003e.\n"},"sslDomainEndpoint":{"type":"string","description":"(Available since v1.234.0) The SSL endpoint of the instance in domain name mode.\n"},"sslEndpoint":{"type":"string","description":"(Available since v1.234.0) The Secure Sockets Layer (SSL) endpoint of the instance in IP address mode.\n"},"status":{"type":"integer","description":"The status of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"topicLeft":{"type":"integer","description":"(Available since v1.214.1) The number of available topics.\n"},"topicNumOfBuy":{"type":"integer","description":"(Available since v1.214.1) The number of purchased topics.\n"},"topicQuota":{"type":"integer","description":"The max num of topic can be creation of the instance.\nIt has been deprecated since version 1.194.0 and using \u003cspan pulumi-lang-nodejs=\"`partitionNum`\" pulumi-lang-dotnet=\"`PartitionNum`\" pulumi-lang-go=\"`partitionNum`\" pulumi-lang-python=\"`partition_num`\" pulumi-lang-yaml=\"`partitionNum`\" pulumi-lang-java=\"`partitionNum`\"\u003e`partition_num`\u003c/span\u003e instead.\nCurrently, its value only can be set to 50 when creating it, and finally depends on \u003cspan pulumi-lang-nodejs=\"`partitionNum`\" pulumi-lang-dotnet=\"`PartitionNum`\" pulumi-lang-go=\"`partitionNum`\" pulumi-lang-python=\"`partition_num`\" pulumi-lang-yaml=\"`partitionNum`\" pulumi-lang-java=\"`partitionNum`\"\u003e`partition_num`\u003c/span\u003e value: \u003c\u003cspan pulumi-lang-nodejs=\"`topicQuota`\" pulumi-lang-dotnet=\"`TopicQuota`\" pulumi-lang-go=\"`topicQuota`\" pulumi-lang-python=\"`topic_quota`\" pulumi-lang-yaml=\"`topicQuota`\" pulumi-lang-java=\"`topicQuota`\"\u003e`topic_quota`\u003c/span\u003e\u003e = 1000 + \u003c\u003cspan pulumi-lang-nodejs=\"`partitionNum`\" pulumi-lang-dotnet=\"`PartitionNum`\" pulumi-lang-go=\"`partitionNum`\" pulumi-lang-python=\"`partition_num`\" pulumi-lang-yaml=\"`partitionNum`\" pulumi-lang-java=\"`partitionNum`\"\u003e`partition_num`\u003c/span\u003e\u003e.\nTherefore, you can update it by updating the \u003cspan pulumi-lang-nodejs=\"`partitionNum`\" pulumi-lang-dotnet=\"`PartitionNum`\" pulumi-lang-go=\"`partitionNum`\" pulumi-lang-python=\"`partition_num`\" pulumi-lang-yaml=\"`partitionNum`\" pulumi-lang-java=\"`partitionNum`\"\u003e`partition_num`\u003c/span\u003e, and it is the only updating path.\n","deprecationMessage":"Attribute \u003cspan pulumi-lang-nodejs=\"`topicQuota`\" pulumi-lang-dotnet=\"`TopicQuota`\" pulumi-lang-go=\"`topicQuota`\" pulumi-lang-python=\"`topic_quota`\" pulumi-lang-yaml=\"`topicQuota`\" pulumi-lang-java=\"`topicQuota`\"\u003e`topic_quota`\u003c/span\u003e has been deprecated since 1.194.0 and it will be removed in the next future. Using new attribute \u003cspan pulumi-lang-nodejs=\"`partitionNum`\" pulumi-lang-dotnet=\"`PartitionNum`\" pulumi-lang-go=\"`partitionNum`\" pulumi-lang-python=\"`partition_num`\" pulumi-lang-yaml=\"`partitionNum`\" pulumi-lang-java=\"`partitionNum`\"\u003e`partition_num`\u003c/span\u003e instead."},"topicUsed":{"type":"integer","description":"(Available since v1.214.1) The number of used topics.\n"},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of attaching vswitch to instance.\n","willReplaceOnChanges":true},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the vSwitches with which the instance is associated.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafka`\" pulumi-lang-dotnet=\"`Alikafka`\" pulumi-lang-go=\"`alikafka`\" pulumi-lang-python=\"`alikafka`\" pulumi-lang-yaml=\"`alikafka`\" pulumi-lang-java=\"`alikafka`\"\u003e`alikafka`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`alikafkaServerless`\" pulumi-lang-dotnet=\"`AlikafkaServerless`\" pulumi-lang-go=\"`alikafkaServerless`\" pulumi-lang-python=\"`alikafka_serverless`\" pulumi-lang-yaml=\"`alikafkaServerless`\" pulumi-lang-java=\"`alikafkaServerless`\"\u003e`alikafka_serverless`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e is required. When \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alikafkaConfluent`\" pulumi-lang-dotnet=\"`AlikafkaConfluent`\" pulumi-lang-go=\"`alikafkaConfluent`\" pulumi-lang-python=\"`alikafka_confluent`\" pulumi-lang-yaml=\"`alikafkaConfluent`\" pulumi-lang-java=\"`alikafkaConfluent`\"\u003e`alikafka_confluent`\u003c/span\u003e, you must specify at least one of the \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e, and if you specify both \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e, only the \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e takes effect.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the instance. The value can be in zone x or region id-x format. **NOTE**: When the available zone is insufficient, another availability zone may be deployed.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:alikafka/instanceAllowedIpAttachment:InstanceAllowedIpAttachment":{"description":"Provides a AliKafka Instance Allowed Ip Attachment resource.\n\nFor information about AliKafka Instance Allowed Ip Attachment and how to use it, see [What is Instance Allowed Ip Attachment](https://www.alibabacloud.com/help/en/message-queue-for-apache-kafka/latest/api-alikafka-2019-09-16-updateallowedip).\n\n\u003e **NOTE:** Available since v1.163.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultInstance = new alicloud.alikafka.Instance(\"default\", {\n    name: `${name}-${defaultInteger.result}`,\n    partitionNum: 50,\n    diskType: 1,\n    diskSize: 500,\n    deployType: 5,\n    ioMax: 20,\n    vswitchId: defaultSwitch.id,\n    securityGroup: defaultSecurityGroup.id,\n});\nconst defaultInstanceAllowedIpAttachment = new alicloud.alikafka.InstanceAllowedIpAttachment(\"default\", {\n    instanceId: defaultInstance.id,\n    allowedType: \"vpc\",\n    portRange: \"9092/9092\",\n    allowedIp: \"114.237.9.78/32\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_instance = alicloud.alikafka.Instance(\"default\",\n    name=f\"{name}-{default_integer['result']}\",\n    partition_num=50,\n    disk_type=1,\n    disk_size=500,\n    deploy_type=5,\n    io_max=20,\n    vswitch_id=default_switch.id,\n    security_group=default_security_group.id)\ndefault_instance_allowed_ip_attachment = alicloud.alikafka.InstanceAllowedIpAttachment(\"default\",\n    instance_id=default_instance.id,\n    allowed_type=\"vpc\",\n    port_range=\"9092/9092\",\n    allowed_ip=\"114.237.9.78/32\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Alikafka.Instance(\"default\", new()\n    {\n        Name = $\"{name}-{defaultInteger.Result}\",\n        PartitionNum = 50,\n        DiskType = 1,\n        DiskSize = 500,\n        DeployType = 5,\n        IoMax = 20,\n        VswitchId = defaultSwitch.Id,\n        SecurityGroup = defaultSecurityGroup.Id,\n    });\n\n    var defaultInstanceAllowedIpAttachment = new AliCloud.Alikafka.InstanceAllowedIpAttachment(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        AllowedType = \"vpc\",\n        PortRange = \"9092/9092\",\n        AllowedIp = \"114.237.9.78/32\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alikafka\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := alikafka.NewInstance(ctx, \"default\", \u0026alikafka.InstanceArgs{\n\t\t\tName:          pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tPartitionNum:  pulumi.Int(50),\n\t\t\tDiskType:      pulumi.Int(1),\n\t\t\tDiskSize:      pulumi.Int(500),\n\t\t\tDeployType:    pulumi.Int(5),\n\t\t\tIoMax:         pulumi.Int(20),\n\t\t\tVswitchId:     defaultSwitch.ID(),\n\t\t\tSecurityGroup: defaultSecurityGroup.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alikafka.NewInstanceAllowedIpAttachment(ctx, \"default\", \u0026alikafka.InstanceAllowedIpAttachmentArgs{\n\t\t\tInstanceId:  defaultInstance.ID(),\n\t\t\tAllowedType: pulumi.String(\"vpc\"),\n\t\t\tPortRange:   pulumi.String(\"9092/9092\"),\n\t\t\tAllowedIp:   pulumi.String(\"114.237.9.78/32\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.alikafka.Instance;\nimport com.pulumi.alicloud.alikafka.InstanceArgs;\nimport com.pulumi.alicloud.alikafka.InstanceAllowedIpAttachment;\nimport com.pulumi.alicloud.alikafka.InstanceAllowedIpAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .partitionNum(50)\n            .diskType(1)\n            .diskSize(500)\n            .deployType(5)\n            .ioMax(20)\n            .vswitchId(defaultSwitch.id())\n            .securityGroup(defaultSecurityGroup.id())\n            .build());\n\n        var defaultInstanceAllowedIpAttachment = new InstanceAllowedIpAttachment(\"defaultInstanceAllowedIpAttachment\", InstanceAllowedIpAttachmentArgs.builder()\n            .instanceId(defaultInstance.id())\n            .allowedType(\"vpc\")\n            .portRange(\"9092/9092\")\n            .allowedIp(\"114.237.9.78/32\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:alikafka:Instance\n    name: default\n    properties:\n      name: ${name}-${defaultInteger.result}\n      partitionNum: 50\n      diskType: 1\n      diskSize: 500\n      deployType: 5\n      ioMax: 20\n      vswitchId: ${defaultSwitch.id}\n      securityGroup: ${defaultSecurityGroup.id}\n  defaultInstanceAllowedIpAttachment:\n    type: alicloud:alikafka:InstanceAllowedIpAttachment\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      allowedType: vpc\n      portRange: 9092/9092\n      allowedIp: 114.237.9.78/32\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAliKafka Instance Allowed Ip Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alikafka/instanceAllowedIpAttachment:InstanceAllowedIpAttachment example \u003cinstance_id\u003e:\u003callowed_type\u003e:\u003cport_range\u003e:\u003callowed_ip\u003e\n```\n\n","properties":{"allowedIp":{"type":"string","description":"The IP address whitelist. It can be a CIDR block.\n"},"allowedType":{"type":"string","description":"The type of the whitelist. Valid Value: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e. **NOTE:** From version 1.179.0, \u003cspan pulumi-lang-nodejs=\"`allowedType`\" pulumi-lang-dotnet=\"`AllowedType`\" pulumi-lang-go=\"`allowedType`\" pulumi-lang-python=\"`allowed_type`\" pulumi-lang-yaml=\"`allowedType`\" pulumi-lang-java=\"`allowedType`\"\u003e`allowed_type`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"portRange":{"type":"string","description":"The Port range. Valid Value: `9092/9092`, `9093/9093`, `9094/9094`, `9095/9095`. **NOTE:** From version 1.179.0, \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e can be set to `9093/9093`. From version 1.219.0, \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e can be set to `9094/9094`, `9095/9095`.\n- `9092/9092`: The port range for access from virtual private clouds (VPCs) by using the default endpoint.\n- `9093/9093`: The port range for access from the Internet.\n- `9094/9094`: The port range for access from VPCs by using the Simple Authentication and Security Layer (SASL) endpoint.\n- `9095/9095`: The port range for access from VPCs by using the Secure Sockets Layer (SSL) endpoint.\n"}},"required":["allowedIp","allowedType","instanceId","portRange"],"inputProperties":{"allowedIp":{"type":"string","description":"The IP address whitelist. It can be a CIDR block.\n","willReplaceOnChanges":true},"allowedType":{"type":"string","description":"The type of the whitelist. Valid Value: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e. **NOTE:** From version 1.179.0, \u003cspan pulumi-lang-nodejs=\"`allowedType`\" pulumi-lang-dotnet=\"`AllowedType`\" pulumi-lang-go=\"`allowedType`\" pulumi-lang-python=\"`allowed_type`\" pulumi-lang-yaml=\"`allowedType`\" pulumi-lang-java=\"`allowedType`\"\u003e`allowed_type`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"portRange":{"type":"string","description":"The Port range. Valid Value: `9092/9092`, `9093/9093`, `9094/9094`, `9095/9095`. **NOTE:** From version 1.179.0, \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e can be set to `9093/9093`. From version 1.219.0, \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e can be set to `9094/9094`, `9095/9095`.\n- `9092/9092`: The port range for access from virtual private clouds (VPCs) by using the default endpoint.\n- `9093/9093`: The port range for access from the Internet.\n- `9094/9094`: The port range for access from VPCs by using the Simple Authentication and Security Layer (SASL) endpoint.\n- `9095/9095`: The port range for access from VPCs by using the Secure Sockets Layer (SSL) endpoint.\n","willReplaceOnChanges":true}},"requiredInputs":["allowedIp","allowedType","instanceId","portRange"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceAllowedIpAttachment resources.\n","properties":{"allowedIp":{"type":"string","description":"The IP address whitelist. It can be a CIDR block.\n","willReplaceOnChanges":true},"allowedType":{"type":"string","description":"The type of the whitelist. Valid Value: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e. **NOTE:** From version 1.179.0, \u003cspan pulumi-lang-nodejs=\"`allowedType`\" pulumi-lang-dotnet=\"`AllowedType`\" pulumi-lang-go=\"`allowedType`\" pulumi-lang-python=\"`allowed_type`\" pulumi-lang-yaml=\"`allowedType`\" pulumi-lang-java=\"`allowedType`\"\u003e`allowed_type`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"portRange":{"type":"string","description":"The Port range. Valid Value: `9092/9092`, `9093/9093`, `9094/9094`, `9095/9095`. **NOTE:** From version 1.179.0, \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e can be set to `9093/9093`. From version 1.219.0, \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e can be set to `9094/9094`, `9095/9095`.\n- `9092/9092`: The port range for access from virtual private clouds (VPCs) by using the default endpoint.\n- `9093/9093`: The port range for access from the Internet.\n- `9094/9094`: The port range for access from VPCs by using the Simple Authentication and Security Layer (SASL) endpoint.\n- `9095/9095`: The port range for access from VPCs by using the Secure Sockets Layer (SSL) endpoint.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:alikafka/saslAcl:SaslAcl":{"description":"Provides a Alikafka Sasl Acl resource.\n\nKafka access control.\n\nFor information about Alikafka Sasl Acl and how to use it, see [What is Sasl Acl](https://next.api.alibabacloud.com/document/alikafka/2019-09-16/CreateAcl).\n\n\u003e **NOTE:** Available since v1.66.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultInstance = new alicloud.alikafka.Instance(\"default\", {\n    name: `${name}-${defaultInteger.result}`,\n    partitionNum: 50,\n    diskType: 1,\n    diskSize: 500,\n    deployType: 5,\n    ioMax: 20,\n    specType: \"professional\",\n    serviceVersion: \"2.2.0\",\n    config: \"{\\\"enable.acl\\\":\\\"true\\\"}\",\n    vswitchId: defaultSwitch.id,\n    securityGroup: defaultSecurityGroup.id,\n});\nconst defaultTopic = new alicloud.alikafka.Topic(\"default\", {\n    instanceId: defaultInstance.id,\n    topic: \"example-topic\",\n    remark: \"topic-remark\",\n});\nconst defaultSaslUser = new alicloud.alikafka.SaslUser(\"default\", {\n    instanceId: defaultInstance.id,\n    username: name,\n    password: \"tf_example123\",\n});\nconst defaultSaslAcl = new alicloud.alikafka.SaslAcl(\"default\", {\n    instanceId: defaultInstance.id,\n    username: defaultSaslUser.username,\n    aclResourceType: \"Topic\",\n    aclResourceName: defaultTopic.topic,\n    aclResourcePatternType: \"LITERAL\",\n    aclOperationType: \"Write\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_instance = alicloud.alikafka.Instance(\"default\",\n    name=f\"{name}-{default_integer['result']}\",\n    partition_num=50,\n    disk_type=1,\n    disk_size=500,\n    deploy_type=5,\n    io_max=20,\n    spec_type=\"professional\",\n    service_version=\"2.2.0\",\n    config=\"{\\\"enable.acl\\\":\\\"true\\\"}\",\n    vswitch_id=default_switch.id,\n    security_group=default_security_group.id)\ndefault_topic = alicloud.alikafka.Topic(\"default\",\n    instance_id=default_instance.id,\n    topic=\"example-topic\",\n    remark=\"topic-remark\")\ndefault_sasl_user = alicloud.alikafka.SaslUser(\"default\",\n    instance_id=default_instance.id,\n    username=name,\n    password=\"tf_example123\")\ndefault_sasl_acl = alicloud.alikafka.SaslAcl(\"default\",\n    instance_id=default_instance.id,\n    username=default_sasl_user.username,\n    acl_resource_type=\"Topic\",\n    acl_resource_name=default_topic.topic,\n    acl_resource_pattern_type=\"LITERAL\",\n    acl_operation_type=\"Write\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Alikafka.Instance(\"default\", new()\n    {\n        Name = $\"{name}-{defaultInteger.Result}\",\n        PartitionNum = 50,\n        DiskType = 1,\n        DiskSize = 500,\n        DeployType = 5,\n        IoMax = 20,\n        SpecType = \"professional\",\n        ServiceVersion = \"2.2.0\",\n        Config = \"{\\\"enable.acl\\\":\\\"true\\\"}\",\n        VswitchId = defaultSwitch.Id,\n        SecurityGroup = defaultSecurityGroup.Id,\n    });\n\n    var defaultTopic = new AliCloud.Alikafka.Topic(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        TopicName = \"example-topic\",\n        Remark = \"topic-remark\",\n    });\n\n    var defaultSaslUser = new AliCloud.Alikafka.SaslUser(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        Username = name,\n        Password = \"tf_example123\",\n    });\n\n    var defaultSaslAcl = new AliCloud.Alikafka.SaslAcl(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        Username = defaultSaslUser.Username,\n        AclResourceType = \"Topic\",\n        AclResourceName = defaultTopic.TopicName,\n        AclResourcePatternType = \"LITERAL\",\n        AclOperationType = \"Write\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alikafka\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := alikafka.NewInstance(ctx, \"default\", \u0026alikafka.InstanceArgs{\n\t\t\tName:           pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tPartitionNum:   pulumi.Int(50),\n\t\t\tDiskType:       pulumi.Int(1),\n\t\t\tDiskSize:       pulumi.Int(500),\n\t\t\tDeployType:     pulumi.Int(5),\n\t\t\tIoMax:          pulumi.Int(20),\n\t\t\tSpecType:       pulumi.String(\"professional\"),\n\t\t\tServiceVersion: pulumi.String(\"2.2.0\"),\n\t\t\tConfig:         pulumi.String(\"{\\\"enable.acl\\\":\\\"true\\\"}\"),\n\t\t\tVswitchId:      defaultSwitch.ID(),\n\t\t\tSecurityGroup:  defaultSecurityGroup.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTopic, err := alikafka.NewTopic(ctx, \"default\", \u0026alikafka.TopicArgs{\n\t\t\tInstanceId: defaultInstance.ID(),\n\t\t\tTopic:      pulumi.String(\"example-topic\"),\n\t\t\tRemark:     pulumi.String(\"topic-remark\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSaslUser, err := alikafka.NewSaslUser(ctx, \"default\", \u0026alikafka.SaslUserArgs{\n\t\t\tInstanceId: defaultInstance.ID(),\n\t\t\tUsername:   pulumi.String(name),\n\t\t\tPassword:   pulumi.String(\"tf_example123\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alikafka.NewSaslAcl(ctx, \"default\", \u0026alikafka.SaslAclArgs{\n\t\t\tInstanceId:             defaultInstance.ID(),\n\t\t\tUsername:               defaultSaslUser.Username,\n\t\t\tAclResourceType:        pulumi.String(\"Topic\"),\n\t\t\tAclResourceName:        defaultTopic.Topic,\n\t\t\tAclResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tAclOperationType:       pulumi.String(\"Write\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.alikafka.Instance;\nimport com.pulumi.alicloud.alikafka.InstanceArgs;\nimport com.pulumi.alicloud.alikafka.Topic;\nimport com.pulumi.alicloud.alikafka.TopicArgs;\nimport com.pulumi.alicloud.alikafka.SaslUser;\nimport com.pulumi.alicloud.alikafka.SaslUserArgs;\nimport com.pulumi.alicloud.alikafka.SaslAcl;\nimport com.pulumi.alicloud.alikafka.SaslAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .partitionNum(50)\n            .diskType(1)\n            .diskSize(500)\n            .deployType(5)\n            .ioMax(20)\n            .specType(\"professional\")\n            .serviceVersion(\"2.2.0\")\n            .config(\"{\\\"enable.acl\\\":\\\"true\\\"}\")\n            .vswitchId(defaultSwitch.id())\n            .securityGroup(defaultSecurityGroup.id())\n            .build());\n\n        var defaultTopic = new Topic(\"defaultTopic\", TopicArgs.builder()\n            .instanceId(defaultInstance.id())\n            .topic(\"example-topic\")\n            .remark(\"topic-remark\")\n            .build());\n\n        var defaultSaslUser = new SaslUser(\"defaultSaslUser\", SaslUserArgs.builder()\n            .instanceId(defaultInstance.id())\n            .username(name)\n            .password(\"tf_example123\")\n            .build());\n\n        var defaultSaslAcl = new SaslAcl(\"defaultSaslAcl\", SaslAclArgs.builder()\n            .instanceId(defaultInstance.id())\n            .username(defaultSaslUser.username())\n            .aclResourceType(\"Topic\")\n            .aclResourceName(defaultTopic.topic())\n            .aclResourcePatternType(\"LITERAL\")\n            .aclOperationType(\"Write\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:alikafka:Instance\n    name: default\n    properties:\n      name: ${name}-${defaultInteger.result}\n      partitionNum: 50\n      diskType: '1'\n      diskSize: '500'\n      deployType: '5'\n      ioMax: '20'\n      specType: professional\n      serviceVersion: 2.2.0\n      config: '{\"enable.acl\":\"true\"}'\n      vswitchId: ${defaultSwitch.id}\n      securityGroup: ${defaultSecurityGroup.id}\n  defaultTopic:\n    type: alicloud:alikafka:Topic\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      topic: example-topic\n      remark: topic-remark\n  defaultSaslUser:\n    type: alicloud:alikafka:SaslUser\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      username: ${name}\n      password: tf_example123\n  defaultSaslAcl:\n    type: alicloud:alikafka:SaslAcl\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      username: ${defaultSaslUser.username}\n      aclResourceType: Topic\n      aclResourceName: ${defaultTopic.topic}\n      aclResourcePatternType: LITERAL\n      aclOperationType: Write\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAlikafka Sasl Acl can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alikafka/saslAcl:SaslAcl example \u003cinstance_id\u003e:\u003cusername\u003e:\u003cacl_resource_type\u003e:\u003cacl_resource_name\u003e:\u003cacl_resource_pattern_type\u003e:\u003cacl_operation_type\u003e\n```\n\n","properties":{"aclOperationType":{"type":"string","description":"Operation type. Valid values:\n- `Write`: write\n- `Read`: read\n- `Describe`: read TransactionalId\n- `IdempotentWrite`: idempotent write to Cluster\n- `IDEMPOTENT_WRITE`: idempotent write to Cluster, only available for Serverless instances.\n- `DESCRIBE_CONFIGS`: query configuration, only available for Serverless instances.\n"},"aclOperationTypes":{"type":"string","description":"Batch authorization operation types. Multiple operations are separated by commas (,). Valid values:\n- `Write`: write\n- `Read`: read\n- `Describe`: read TransactionalId\n- `IdempotentWrite`: idempotent write to Cluster\n- `IDEMPOTENT_WRITE`: idempotent write to Cluster, only available for Serverless instances.\n- `DESCRIBE_CONFIGS`: query configuration, only available for Serverless instances.\n\u003e **NOTE:**  \u003cspan pulumi-lang-nodejs=\"`aclOperationTypes`\" pulumi-lang-dotnet=\"`AclOperationTypes`\" pulumi-lang-go=\"`aclOperationTypes`\" pulumi-lang-python=\"`acl_operation_types`\" pulumi-lang-yaml=\"`aclOperationTypes`\" pulumi-lang-java=\"`aclOperationTypes`\"\u003e`acl_operation_types`\u003c/span\u003e is only supported for Serverless instances.\n"},"aclPermissionType":{"type":"string","description":"Authorization method. Value:\n- `DENY`: deny.\n- `ALLOW`: allow.\n\u003e **NOTE:**  \u003cspan pulumi-lang-nodejs=\"`aclPermissionType`\" pulumi-lang-dotnet=\"`AclPermissionType`\" pulumi-lang-go=\"`aclPermissionType`\" pulumi-lang-python=\"`acl_permission_type`\" pulumi-lang-yaml=\"`aclPermissionType`\" pulumi-lang-java=\"`aclPermissionType`\"\u003e`acl_permission_type`\u003c/span\u003e is only supported for Serverless instances.\n"},"aclResourceName":{"type":"string","description":"The resource name.\n- The name of the resource, which can be a topic name, Group ID, cluster name, or transaction ID.\n- You can use an asterisk (*) to represent all resources of this type.\n"},"aclResourcePatternType":{"type":"string","description":"Match the pattern. Valid values:\n- `LITERAL`: exact match\n- `PREFIXED`: prefix matching\n"},"aclResourceType":{"type":"string","description":"The resource type. Valid values:\n- `Topic`: the message Topic.\n- `Group`: consumer Group.\n- `Cluster`: the instance.\n- `TransactionalId`: transaction ID.\n"},"host":{"type":"string","description":"The host of the acl.\n\u003e **NOTE:** From version 1.270.0, \u003cspan pulumi-lang-nodejs=\"`host`\" pulumi-lang-dotnet=\"`Host`\" pulumi-lang-go=\"`host`\" pulumi-lang-python=\"`host`\" pulumi-lang-yaml=\"`host`\" pulumi-lang-java=\"`host`\"\u003e`host`\u003c/span\u003e can be set.\n"},"instanceId":{"type":"string","description":"The instance ID.\n"},"username":{"type":"string","description":"The user name.\n"}},"required":["aclOperationType","aclPermissionType","aclResourceName","aclResourcePatternType","aclResourceType","host","instanceId","username"],"inputProperties":{"aclOperationType":{"type":"string","description":"Operation type. Valid values:\n- `Write`: write\n- `Read`: read\n- `Describe`: read TransactionalId\n- `IdempotentWrite`: idempotent write to Cluster\n- `IDEMPOTENT_WRITE`: idempotent write to Cluster, only available for Serverless instances.\n- `DESCRIBE_CONFIGS`: query configuration, only available for Serverless instances.\n","willReplaceOnChanges":true},"aclOperationTypes":{"type":"string","description":"Batch authorization operation types. Multiple operations are separated by commas (,). Valid values:\n- `Write`: write\n- `Read`: read\n- `Describe`: read TransactionalId\n- `IdempotentWrite`: idempotent write to Cluster\n- `IDEMPOTENT_WRITE`: idempotent write to Cluster, only available for Serverless instances.\n- `DESCRIBE_CONFIGS`: query configuration, only available for Serverless instances.\n\u003e **NOTE:**  \u003cspan pulumi-lang-nodejs=\"`aclOperationTypes`\" pulumi-lang-dotnet=\"`AclOperationTypes`\" pulumi-lang-go=\"`aclOperationTypes`\" pulumi-lang-python=\"`acl_operation_types`\" pulumi-lang-yaml=\"`aclOperationTypes`\" pulumi-lang-java=\"`aclOperationTypes`\"\u003e`acl_operation_types`\u003c/span\u003e is only supported for Serverless instances.\n"},"aclPermissionType":{"type":"string","description":"Authorization method. Value:\n- `DENY`: deny.\n- `ALLOW`: allow.\n\u003e **NOTE:**  \u003cspan pulumi-lang-nodejs=\"`aclPermissionType`\" pulumi-lang-dotnet=\"`AclPermissionType`\" pulumi-lang-go=\"`aclPermissionType`\" pulumi-lang-python=\"`acl_permission_type`\" pulumi-lang-yaml=\"`aclPermissionType`\" pulumi-lang-java=\"`aclPermissionType`\"\u003e`acl_permission_type`\u003c/span\u003e is only supported for Serverless instances.\n","willReplaceOnChanges":true},"aclResourceName":{"type":"string","description":"The resource name.\n- The name of the resource, which can be a topic name, Group ID, cluster name, or transaction ID.\n- You can use an asterisk (*) to represent all resources of this type.\n","willReplaceOnChanges":true},"aclResourcePatternType":{"type":"string","description":"Match the pattern. Valid values:\n- `LITERAL`: exact match\n- `PREFIXED`: prefix matching\n","willReplaceOnChanges":true},"aclResourceType":{"type":"string","description":"The resource type. Valid values:\n- `Topic`: the message Topic.\n- `Group`: consumer Group.\n- `Cluster`: the instance.\n- `TransactionalId`: transaction ID.\n","willReplaceOnChanges":true},"host":{"type":"string","description":"The host of the acl.\n\u003e **NOTE:** From version 1.270.0, \u003cspan pulumi-lang-nodejs=\"`host`\" pulumi-lang-dotnet=\"`Host`\" pulumi-lang-go=\"`host`\" pulumi-lang-python=\"`host`\" pulumi-lang-yaml=\"`host`\" pulumi-lang-java=\"`host`\"\u003e`host`\u003c/span\u003e can be set.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"username":{"type":"string","description":"The user name.\n","willReplaceOnChanges":true}},"requiredInputs":["aclOperationType","aclResourceName","aclResourcePatternType","aclResourceType","instanceId","username"],"stateInputs":{"description":"Input properties used for looking up and filtering SaslAcl resources.\n","properties":{"aclOperationType":{"type":"string","description":"Operation type. Valid values:\n- `Write`: write\n- `Read`: read\n- `Describe`: read TransactionalId\n- `IdempotentWrite`: idempotent write to Cluster\n- `IDEMPOTENT_WRITE`: idempotent write to Cluster, only available for Serverless instances.\n- `DESCRIBE_CONFIGS`: query configuration, only available for Serverless instances.\n","willReplaceOnChanges":true},"aclOperationTypes":{"type":"string","description":"Batch authorization operation types. Multiple operations are separated by commas (,). Valid values:\n- `Write`: write\n- `Read`: read\n- `Describe`: read TransactionalId\n- `IdempotentWrite`: idempotent write to Cluster\n- `IDEMPOTENT_WRITE`: idempotent write to Cluster, only available for Serverless instances.\n- `DESCRIBE_CONFIGS`: query configuration, only available for Serverless instances.\n\u003e **NOTE:**  \u003cspan pulumi-lang-nodejs=\"`aclOperationTypes`\" pulumi-lang-dotnet=\"`AclOperationTypes`\" pulumi-lang-go=\"`aclOperationTypes`\" pulumi-lang-python=\"`acl_operation_types`\" pulumi-lang-yaml=\"`aclOperationTypes`\" pulumi-lang-java=\"`aclOperationTypes`\"\u003e`acl_operation_types`\u003c/span\u003e is only supported for Serverless instances.\n"},"aclPermissionType":{"type":"string","description":"Authorization method. Value:\n- `DENY`: deny.\n- `ALLOW`: allow.\n\u003e **NOTE:**  \u003cspan pulumi-lang-nodejs=\"`aclPermissionType`\" pulumi-lang-dotnet=\"`AclPermissionType`\" pulumi-lang-go=\"`aclPermissionType`\" pulumi-lang-python=\"`acl_permission_type`\" pulumi-lang-yaml=\"`aclPermissionType`\" pulumi-lang-java=\"`aclPermissionType`\"\u003e`acl_permission_type`\u003c/span\u003e is only supported for Serverless instances.\n","willReplaceOnChanges":true},"aclResourceName":{"type":"string","description":"The resource name.\n- The name of the resource, which can be a topic name, Group ID, cluster name, or transaction ID.\n- You can use an asterisk (*) to represent all resources of this type.\n","willReplaceOnChanges":true},"aclResourcePatternType":{"type":"string","description":"Match the pattern. Valid values:\n- `LITERAL`: exact match\n- `PREFIXED`: prefix matching\n","willReplaceOnChanges":true},"aclResourceType":{"type":"string","description":"The resource type. Valid values:\n- `Topic`: the message Topic.\n- `Group`: consumer Group.\n- `Cluster`: the instance.\n- `TransactionalId`: transaction ID.\n","willReplaceOnChanges":true},"host":{"type":"string","description":"The host of the acl.\n\u003e **NOTE:** From version 1.270.0, \u003cspan pulumi-lang-nodejs=\"`host`\" pulumi-lang-dotnet=\"`Host`\" pulumi-lang-go=\"`host`\" pulumi-lang-python=\"`host`\" pulumi-lang-yaml=\"`host`\" pulumi-lang-java=\"`host`\"\u003e`host`\u003c/span\u003e can be set.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"username":{"type":"string","description":"The user name.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:alikafka/saslUser:SaslUser":{"description":"Provides an AliKafka Sasl User resource.\n\n\n\nFor information about AliKafka Sasl User and how to use it, see [What is Sasl User](https://www.alibabacloud.com/help/en/message-queue-for-apache-kafka/latest/api-alikafka-2019-09-16-createsasluser).\n\n\u003e **NOTE:** Available since v1.66.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultInstance = new alicloud.alikafka.Instance(\"default\", {\n    name: `${name}-${defaultInteger.result}`,\n    partitionNum: 50,\n    diskType: 1,\n    diskSize: 500,\n    deployType: 5,\n    ioMax: 20,\n    specType: \"professional\",\n    serviceVersion: \"2.2.0\",\n    vswitchId: defaultSwitch.id,\n    securityGroup: defaultSecurityGroup.id,\n    config: `  {\n    \\\\\"enable.acl\\\\\": \\\\\"true\\\\\"\n  }\n`,\n});\nconst defaultSaslUser = new alicloud.alikafka.SaslUser(\"default\", {\n    instanceId: defaultInstance.id,\n    username: name,\n    password: \"tf_example123\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_instance = alicloud.alikafka.Instance(\"default\",\n    name=f\"{name}-{default_integer['result']}\",\n    partition_num=50,\n    disk_type=1,\n    disk_size=500,\n    deploy_type=5,\n    io_max=20,\n    spec_type=\"professional\",\n    service_version=\"2.2.0\",\n    vswitch_id=default_switch.id,\n    security_group=default_security_group.id,\n    config=\"\"\"  {\n    \\\"enable.acl\\\": \\\"true\\\"\n  }\n\"\"\")\ndefault_sasl_user = alicloud.alikafka.SaslUser(\"default\",\n    instance_id=default_instance.id,\n    username=name,\n    password=\"tf_example123\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultInstance = new AliCloud.Alikafka.Instance(\"default\", new()\n    {\n        Name = $\"{name}-{defaultInteger.Result}\",\n        PartitionNum = 50,\n        DiskType = 1,\n        DiskSize = 500,\n        DeployType = 5,\n        IoMax = 20,\n        SpecType = \"professional\",\n        ServiceVersion = \"2.2.0\",\n        VswitchId = defaultSwitch.Id,\n        SecurityGroup = defaultSecurityGroup.Id,\n        Config = @\"  {\n    \\\"\"enable.acl\\\"\": \\\"\"true\\\"\"\n  }\n\",\n    });\n\n    var defaultSaslUser = new AliCloud.Alikafka.SaslUser(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        Username = name,\n        Password = \"tf_example123\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alikafka\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := alikafka.NewInstance(ctx, \"default\", \u0026alikafka.InstanceArgs{\n\t\t\tName:           pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tPartitionNum:   pulumi.Int(50),\n\t\t\tDiskType:       pulumi.Int(1),\n\t\t\tDiskSize:       pulumi.Int(500),\n\t\t\tDeployType:     pulumi.Int(5),\n\t\t\tIoMax:          pulumi.Int(20),\n\t\t\tSpecType:       pulumi.String(\"professional\"),\n\t\t\tServiceVersion: pulumi.String(\"2.2.0\"),\n\t\t\tVswitchId:      defaultSwitch.ID(),\n\t\t\tSecurityGroup:  defaultSecurityGroup.ID(),\n\t\t\tConfig:         pulumi.String(\"  {\\n    \\\\\\\"enable.acl\\\\\\\": \\\\\\\"true\\\\\\\"\\n  }\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alikafka.NewSaslUser(ctx, \"default\", \u0026alikafka.SaslUserArgs{\n\t\t\tInstanceId: defaultInstance.ID(),\n\t\t\tUsername:   pulumi.String(name),\n\t\t\tPassword:   pulumi.String(\"tf_example123\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.alikafka.Instance;\nimport com.pulumi.alicloud.alikafka.InstanceArgs;\nimport com.pulumi.alicloud.alikafka.SaslUser;\nimport com.pulumi.alicloud.alikafka.SaslUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .partitionNum(50)\n            .diskType(1)\n            .diskSize(500)\n            .deployType(5)\n            .ioMax(20)\n            .specType(\"professional\")\n            .serviceVersion(\"2.2.0\")\n            .vswitchId(defaultSwitch.id())\n            .securityGroup(defaultSecurityGroup.id())\n            .config(\"\"\"\n  {\n    \\\"enable.acl\\\": \\\"true\\\"\n  }\n            \"\"\")\n            .build());\n\n        var defaultSaslUser = new SaslUser(\"defaultSaslUser\", SaslUserArgs.builder()\n            .instanceId(defaultInstance.id())\n            .username(name)\n            .password(\"tf_example123\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultInstance:\n    type: alicloud:alikafka:Instance\n    name: default\n    properties:\n      name: ${name}-${defaultInteger.result}\n      partitionNum: 50\n      diskType: '1'\n      diskSize: '500'\n      deployType: '5'\n      ioMax: '20'\n      specType: professional\n      serviceVersion: 2.2.0\n      vswitchId: ${defaultSwitch.id}\n      securityGroup: ${defaultSecurityGroup.id}\n      config: |2\n          {\n            \\\"enable.acl\\\": \\\"true\\\"\n          }\n  defaultSaslUser:\n    type: alicloud:alikafka:SaslUser\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      username: ${name}\n      password: tf_example123\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAliKafka Sasl User can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alikafka/saslUser:SaslUser example \u003cinstance_id\u003e:\u003cusername\u003e\n```\n\n","properties":{"instanceId":{"type":"string","description":"The instance ID.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a user with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"mechanism":{"type":"string","description":"The encryption method. Valid values:\n- SCRAM-SHA-512. This is the default value.\n- SCRAM-SHA-256\n\u003e **NOTE:**   This parameter is available only for serverless ApsaraMQ for Kafka instances.\n"},"password":{"type":"string","description":"The password of the SASL user. It may consist of letters, digits, or underlines, with a length of 1 to 64 characters. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","secret":true},"type":{"type":"string","description":"The authentication mechanism. Default value: \u003cspan pulumi-lang-nodejs=\"`plain`\" pulumi-lang-dotnet=\"`Plain`\" pulumi-lang-go=\"`plain`\" pulumi-lang-python=\"`plain`\" pulumi-lang-yaml=\"`plain`\" pulumi-lang-java=\"`plain`\"\u003e`plain`\u003c/span\u003e. Valid values:\n"},"username":{"type":"string","description":"The name of the SASL user. The length should between \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters. The characters can only contain \u003cspan pulumi-lang-nodejs=\"`a`\" pulumi-lang-dotnet=\"`A`\" pulumi-lang-go=\"`a`\" pulumi-lang-python=\"`a`\" pulumi-lang-yaml=\"`a`\" pulumi-lang-java=\"`a`\"\u003e`a`\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\"`z`\" pulumi-lang-dotnet=\"`Z`\" pulumi-lang-go=\"`z`\" pulumi-lang-python=\"`z`\" pulumi-lang-yaml=\"`z`\" pulumi-lang-java=\"`z`\"\u003e`z`\u003c/span\u003e, `A`-`Z`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, `_` and `-`.\n"}},"required":["instanceId","mechanism","password","type","username"],"inputProperties":{"instanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a user with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"mechanism":{"type":"string","description":"The encryption method. Valid values:\n- SCRAM-SHA-512. This is the default value.\n- SCRAM-SHA-256\n\u003e **NOTE:**   This parameter is available only for serverless ApsaraMQ for Kafka instances.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of the SASL user. It may consist of letters, digits, or underlines, with a length of 1 to 64 characters. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","secret":true},"type":{"type":"string","description":"The authentication mechanism. Default value: \u003cspan pulumi-lang-nodejs=\"`plain`\" pulumi-lang-dotnet=\"`Plain`\" pulumi-lang-go=\"`plain`\" pulumi-lang-python=\"`plain`\" pulumi-lang-yaml=\"`plain`\" pulumi-lang-java=\"`plain`\"\u003e`plain`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"username":{"type":"string","description":"The name of the SASL user. The length should between \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters. The characters can only contain \u003cspan pulumi-lang-nodejs=\"`a`\" pulumi-lang-dotnet=\"`A`\" pulumi-lang-go=\"`a`\" pulumi-lang-python=\"`a`\" pulumi-lang-yaml=\"`a`\" pulumi-lang-java=\"`a`\"\u003e`a`\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\"`z`\" pulumi-lang-dotnet=\"`Z`\" pulumi-lang-go=\"`z`\" pulumi-lang-python=\"`z`\" pulumi-lang-yaml=\"`z`\" pulumi-lang-java=\"`z`\"\u003e`z`\u003c/span\u003e, `A`-`Z`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, `_` and `-`.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId","username"],"stateInputs":{"description":"Input properties used for looking up and filtering SaslUser resources.\n","properties":{"instanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a user with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"mechanism":{"type":"string","description":"The encryption method. Valid values:\n- SCRAM-SHA-512. This is the default value.\n- SCRAM-SHA-256\n\u003e **NOTE:**   This parameter is available only for serverless ApsaraMQ for Kafka instances.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of the SASL user. It may consist of letters, digits, or underlines, with a length of 1 to 64 characters. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","secret":true},"type":{"type":"string","description":"The authentication mechanism. Default value: \u003cspan pulumi-lang-nodejs=\"`plain`\" pulumi-lang-dotnet=\"`Plain`\" pulumi-lang-go=\"`plain`\" pulumi-lang-python=\"`plain`\" pulumi-lang-yaml=\"`plain`\" pulumi-lang-java=\"`plain`\"\u003e`plain`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"username":{"type":"string","description":"The name of the SASL user. The length should between \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters. The characters can only contain \u003cspan pulumi-lang-nodejs=\"`a`\" pulumi-lang-dotnet=\"`A`\" pulumi-lang-go=\"`a`\" pulumi-lang-python=\"`a`\" pulumi-lang-yaml=\"`a`\" pulumi-lang-java=\"`a`\"\u003e`a`\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\"`z`\" pulumi-lang-dotnet=\"`Z`\" pulumi-lang-go=\"`z`\" pulumi-lang-python=\"`z`\" pulumi-lang-yaml=\"`z`\" pulumi-lang-java=\"`z`\"\u003e`z`\u003c/span\u003e, `A`-`Z`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, `_` and `-`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:alikafka/scheduledScalingRule:ScheduledScalingRule":{"description":"Provides a Alikafka Scheduled Scaling Rule resource.\n\nElastic timing strategy.\n\nFor information about Alikafka Scheduled Scaling Rule and how to use it, see [What is Scheduled Scaling Rule](https://next.api.alibabacloud.com/document/alikafka/2019-09-16/CreateScheduledScalingRule).\n\n\u003e **NOTE:** Available since v1.269.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"10.4.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultInstance = new alicloud.alikafka.Instance(\"default\", {\n    deployType: 4,\n    instanceType: \"alikafka_serverless\",\n    vswitchId: defaultSwitch.id,\n    specType: \"normal\",\n    serviceVersion: \"3.3.1\",\n    securityGroup: defaultSecurityGroup.id,\n    config: \"{\\\"enable.acl\\\":\\\"true\\\"}\",\n    serverlessConfig: {\n        reservedPublishCapacity: 60,\n        reservedSubscribeCapacity: 60,\n    },\n});\nconst defaultScheduledScalingRule = new alicloud.alikafka.ScheduledScalingRule(\"default\", {\n    scheduleType: \"repeat\",\n    reservedSubFlow: 200,\n    reservedPubFlow: 200,\n    timeZone: \"GMT+8\",\n    durationMinutes: 100,\n    firstScheduledTime: 1769578000000,\n    enable: false,\n    repeatType: \"Weekly\",\n    weeklyTypes: [\n        \"Monday\",\n        \"Tuesday\",\n        \"Wednesday\",\n        \"Thursday\",\n        \"Friday\",\n    ],\n    ruleName: name,\n    instanceId: defaultInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"10.4.0.0/24\",\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_instance = alicloud.alikafka.Instance(\"default\",\n    deploy_type=4,\n    instance_type=\"alikafka_serverless\",\n    vswitch_id=default_switch.id,\n    spec_type=\"normal\",\n    service_version=\"3.3.1\",\n    security_group=default_security_group.id,\n    config=\"{\\\"enable.acl\\\":\\\"true\\\"}\",\n    serverless_config={\n        \"reserved_publish_capacity\": 60,\n        \"reserved_subscribe_capacity\": 60,\n    })\ndefault_scheduled_scaling_rule = alicloud.alikafka.ScheduledScalingRule(\"default\",\n    schedule_type=\"repeat\",\n    reserved_sub_flow=200,\n    reserved_pub_flow=200,\n    time_zone=\"GMT+8\",\n    duration_minutes=100,\n    first_scheduled_time=1769578000000,\n    enable=False,\n    repeat_type=\"Weekly\",\n    weekly_types=[\n        \"Monday\",\n        \"Tuesday\",\n        \"Wednesday\",\n        \"Thursday\",\n        \"Friday\",\n    ],\n    rule_name=name,\n    instance_id=default_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"10.4.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Alikafka.Instance(\"default\", new()\n    {\n        DeployType = 4,\n        InstanceType = \"alikafka_serverless\",\n        VswitchId = defaultSwitch.Id,\n        SpecType = \"normal\",\n        ServiceVersion = \"3.3.1\",\n        SecurityGroup = defaultSecurityGroup.Id,\n        Config = \"{\\\"enable.acl\\\":\\\"true\\\"}\",\n        ServerlessConfig = new AliCloud.alikafka.Inputs.InstanceServerlessConfigArgs\n        {\n            ReservedPublishCapacity = 60,\n            ReservedSubscribeCapacity = 60,\n        },\n    });\n\n    var defaultScheduledScalingRule = new AliCloud.Alikafka.ScheduledScalingRule(\"default\", new()\n    {\n        ScheduleType = \"repeat\",\n        ReservedSubFlow = 200,\n        ReservedPubFlow = 200,\n        TimeZone = \"GMT+8\",\n        DurationMinutes = 100,\n        FirstScheduledTime = 1769578000000,\n        Enable = false,\n        RepeatType = \"Weekly\",\n        WeeklyTypes = new[]\n        {\n            \"Monday\",\n            \"Tuesday\",\n            \"Wednesday\",\n            \"Thursday\",\n            \"Friday\",\n        },\n        RuleName = name,\n        InstanceId = defaultInstance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alikafka\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := alikafka.NewInstance(ctx, \"default\", \u0026alikafka.InstanceArgs{\n\t\t\tDeployType:     pulumi.Int(4),\n\t\t\tInstanceType:   pulumi.String(\"alikafka_serverless\"),\n\t\t\tVswitchId:      defaultSwitch.ID(),\n\t\t\tSpecType:       pulumi.String(\"normal\"),\n\t\t\tServiceVersion: pulumi.String(\"3.3.1\"),\n\t\t\tSecurityGroup:  defaultSecurityGroup.ID(),\n\t\t\tConfig:         pulumi.String(\"{\\\"enable.acl\\\":\\\"true\\\"}\"),\n\t\t\tServerlessConfig: \u0026alikafka.InstanceServerlessConfigArgs{\n\t\t\t\tReservedPublishCapacity:   pulumi.Int(60),\n\t\t\t\tReservedSubscribeCapacity: pulumi.Int(60),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alikafka.NewScheduledScalingRule(ctx, \"default\", \u0026alikafka.ScheduledScalingRuleArgs{\n\t\t\tScheduleType:       pulumi.String(\"repeat\"),\n\t\t\tReservedSubFlow:    pulumi.Int(200),\n\t\t\tReservedPubFlow:    pulumi.Int(200),\n\t\t\tTimeZone:           pulumi.String(\"GMT+8\"),\n\t\t\tDurationMinutes:    pulumi.Int(100),\n\t\t\tFirstScheduledTime: pulumi.Int(1769578000000),\n\t\t\tEnable:             pulumi.Bool(false),\n\t\t\tRepeatType:         pulumi.String(\"Weekly\"),\n\t\t\tWeeklyTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Monday\"),\n\t\t\t\tpulumi.String(\"Tuesday\"),\n\t\t\t\tpulumi.String(\"Wednesday\"),\n\t\t\t\tpulumi.String(\"Thursday\"),\n\t\t\t\tpulumi.String(\"Friday\"),\n\t\t\t},\n\t\t\tRuleName:   pulumi.String(name),\n\t\t\tInstanceId: defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.alikafka.Instance;\nimport com.pulumi.alicloud.alikafka.InstanceArgs;\nimport com.pulumi.alicloud.alikafka.inputs.InstanceServerlessConfigArgs;\nimport com.pulumi.alicloud.alikafka.ScheduledScalingRule;\nimport com.pulumi.alicloud.alikafka.ScheduledScalingRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"10.4.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .deployType(4)\n            .instanceType(\"alikafka_serverless\")\n            .vswitchId(defaultSwitch.id())\n            .specType(\"normal\")\n            .serviceVersion(\"3.3.1\")\n            .securityGroup(defaultSecurityGroup.id())\n            .config(\"{\\\"enable.acl\\\":\\\"true\\\"}\")\n            .serverlessConfig(InstanceServerlessConfigArgs.builder()\n                .reservedPublishCapacity(60)\n                .reservedSubscribeCapacity(60)\n                .build())\n            .build());\n\n        var defaultScheduledScalingRule = new ScheduledScalingRule(\"defaultScheduledScalingRule\", ScheduledScalingRuleArgs.builder()\n            .scheduleType(\"repeat\")\n            .reservedSubFlow(200)\n            .reservedPubFlow(200)\n            .timeZone(\"GMT+8\")\n            .durationMinutes(100)\n            .firstScheduledTime(1769578000000)\n            .enable(false)\n            .repeatType(\"Weekly\")\n            .weeklyTypes(            \n                \"Monday\",\n                \"Tuesday\",\n                \"Wednesday\",\n                \"Thursday\",\n                \"Friday\")\n            .ruleName(name)\n            .instanceId(defaultInstance.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 10.4.0.0/24\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:alikafka:Instance\n    name: default\n    properties:\n      deployType: '4'\n      instanceType: alikafka_serverless\n      vswitchId: ${defaultSwitch.id}\n      specType: normal\n      serviceVersion: 3.3.1\n      securityGroup: ${defaultSecurityGroup.id}\n      config: '{\"enable.acl\":\"true\"}'\n      serverlessConfig:\n        reservedPublishCapacity: 60\n        reservedSubscribeCapacity: 60\n  defaultScheduledScalingRule:\n    type: alicloud:alikafka:ScheduledScalingRule\n    name: default\n    properties:\n      scheduleType: repeat\n      reservedSubFlow: '200'\n      reservedPubFlow: '200'\n      timeZone: GMT+8\n      durationMinutes: '100'\n      firstScheduledTime: '1769578000000'\n      enable: false\n      repeatType: Weekly\n      weeklyTypes:\n        - Monday\n        - Tuesday\n        - Wednesday\n        - Thursday\n        - Friday\n      ruleName: ${name}\n      instanceId: ${defaultInstance.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAlikafka Scheduled Scaling Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alikafka/scheduledScalingRule:ScheduledScalingRule example \u003cinstance_id\u003e:\u003crule_name\u003e\n```\n\n","properties":{"durationMinutes":{"type":"integer","description":"The duration (unit: minutes) of a scheduled elastic task.\n\n\u003e **NOTE:** The parameter value must be at least 15 minutes.\n"},"enable":{"type":"boolean","description":"Enables or disables the scheduled task policy. Valid values:\n"},"firstScheduledTime":{"type":"integer","description":"The time when the scheduled policy starts to execute.\n"},"instanceId":{"type":"string","description":"The instance ID.\n"},"repeatType":{"type":"string","description":"When \u003cspan pulumi-lang-nodejs=\"`scheduleType`\" pulumi-lang-dotnet=\"`ScheduleType`\" pulumi-lang-go=\"`scheduleType`\" pulumi-lang-python=\"`schedule_type`\" pulumi-lang-yaml=\"`scheduleType`\" pulumi-lang-java=\"`scheduleType`\"\u003e`schedule_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`repeat`\" pulumi-lang-dotnet=\"`Repeat`\" pulumi-lang-go=\"`repeat`\" pulumi-lang-python=\"`repeat`\" pulumi-lang-yaml=\"`repeat`\" pulumi-lang-java=\"`repeat`\"\u003e`repeat`\u003c/span\u003e, the parameter is required. Valid values:\n-`Daily`: Daily scheduled task.\n-`Weekly`: Weekly scheduled task.\n"},"reservedPubFlow":{"type":"integer","description":"The scheduled elastic reserved production specification (unit: MB/s).\n"},"reservedSubFlow":{"type":"integer","description":"The scheduled elastic reserved consumption specification (unit: MB/s).\n"},"ruleName":{"type":"string","description":"The name of the scheduled policy rule.\n"},"scheduleType":{"type":"string","description":"The schedule type. Valid values:\n"},"timeZone":{"type":"string","description":"The time zone (Coordinated Universal Time).\n"},"weeklyTypes":{"type":"array","items":{"type":"string"},"description":"The weekly types. Supports execution on multiple days. When \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Weekly`, you need to input this parameter. Valid values: `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday`.\n"}},"required":["durationMinutes","firstScheduledTime","instanceId","reservedPubFlow","reservedSubFlow","ruleName","scheduleType","timeZone"],"inputProperties":{"durationMinutes":{"type":"integer","description":"The duration (unit: minutes) of a scheduled elastic task.\n\n\u003e **NOTE:** The parameter value must be at least 15 minutes.\n","willReplaceOnChanges":true},"enable":{"type":"boolean","description":"Enables or disables the scheduled task policy. Valid values:\n"},"firstScheduledTime":{"type":"integer","description":"The time when the scheduled policy starts to execute.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"repeatType":{"type":"string","description":"When \u003cspan pulumi-lang-nodejs=\"`scheduleType`\" pulumi-lang-dotnet=\"`ScheduleType`\" pulumi-lang-go=\"`scheduleType`\" pulumi-lang-python=\"`schedule_type`\" pulumi-lang-yaml=\"`scheduleType`\" pulumi-lang-java=\"`scheduleType`\"\u003e`schedule_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`repeat`\" pulumi-lang-dotnet=\"`Repeat`\" pulumi-lang-go=\"`repeat`\" pulumi-lang-python=\"`repeat`\" pulumi-lang-yaml=\"`repeat`\" pulumi-lang-java=\"`repeat`\"\u003e`repeat`\u003c/span\u003e, the parameter is required. Valid values:\n-`Daily`: Daily scheduled task.\n-`Weekly`: Weekly scheduled task.\n","willReplaceOnChanges":true},"reservedPubFlow":{"type":"integer","description":"The scheduled elastic reserved production specification (unit: MB/s).\n","willReplaceOnChanges":true},"reservedSubFlow":{"type":"integer","description":"The scheduled elastic reserved consumption specification (unit: MB/s).\n","willReplaceOnChanges":true},"ruleName":{"type":"string","description":"The name of the scheduled policy rule.\n","willReplaceOnChanges":true},"scheduleType":{"type":"string","description":"The schedule type. Valid values:\n","willReplaceOnChanges":true},"timeZone":{"type":"string","description":"The time zone (Coordinated Universal Time).\n","willReplaceOnChanges":true},"weeklyTypes":{"type":"array","items":{"type":"string"},"description":"The weekly types. Supports execution on multiple days. When \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Weekly`, you need to input this parameter. Valid values: `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday`.\n","willReplaceOnChanges":true}},"requiredInputs":["durationMinutes","firstScheduledTime","instanceId","reservedPubFlow","reservedSubFlow","ruleName","scheduleType","timeZone"],"stateInputs":{"description":"Input properties used for looking up and filtering ScheduledScalingRule resources.\n","properties":{"durationMinutes":{"type":"integer","description":"The duration (unit: minutes) of a scheduled elastic task.\n\n\u003e **NOTE:** The parameter value must be at least 15 minutes.\n","willReplaceOnChanges":true},"enable":{"type":"boolean","description":"Enables or disables the scheduled task policy. Valid values:\n"},"firstScheduledTime":{"type":"integer","description":"The time when the scheduled policy starts to execute.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"repeatType":{"type":"string","description":"When \u003cspan pulumi-lang-nodejs=\"`scheduleType`\" pulumi-lang-dotnet=\"`ScheduleType`\" pulumi-lang-go=\"`scheduleType`\" pulumi-lang-python=\"`schedule_type`\" pulumi-lang-yaml=\"`scheduleType`\" pulumi-lang-java=\"`scheduleType`\"\u003e`schedule_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`repeat`\" pulumi-lang-dotnet=\"`Repeat`\" pulumi-lang-go=\"`repeat`\" pulumi-lang-python=\"`repeat`\" pulumi-lang-yaml=\"`repeat`\" pulumi-lang-java=\"`repeat`\"\u003e`repeat`\u003c/span\u003e, the parameter is required. Valid values:\n-`Daily`: Daily scheduled task.\n-`Weekly`: Weekly scheduled task.\n","willReplaceOnChanges":true},"reservedPubFlow":{"type":"integer","description":"The scheduled elastic reserved production specification (unit: MB/s).\n","willReplaceOnChanges":true},"reservedSubFlow":{"type":"integer","description":"The scheduled elastic reserved consumption specification (unit: MB/s).\n","willReplaceOnChanges":true},"ruleName":{"type":"string","description":"The name of the scheduled policy rule.\n","willReplaceOnChanges":true},"scheduleType":{"type":"string","description":"The schedule type. Valid values:\n","willReplaceOnChanges":true},"timeZone":{"type":"string","description":"The time zone (Coordinated Universal Time).\n","willReplaceOnChanges":true},"weeklyTypes":{"type":"array","items":{"type":"string"},"description":"The weekly types. Supports execution on multiple days. When \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Weekly`, you need to input this parameter. Valid values: `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:alikafka/topic:Topic":{"description":"Provides a Alikafka Topic resource.\n\nTopic in kafka.\n\nFor information about Alikafka Topic and how to use it, see [What is Topic](https://www.alibabacloud.com/help/en/message-queue-for-apache-kafka/latest/api-alikafka-2019-09-16-createtopic).\n\n\u003e **NOTE:** Available since v1.56.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultInstance = new alicloud.alikafka.Instance(\"default\", {\n    name: name,\n    partitionNum: 50,\n    diskType: 1,\n    diskSize: 500,\n    deployType: 5,\n    ioMax: 20,\n    specType: \"professional\",\n    serviceVersion: \"2.2.0\",\n    vswitchId: defaultSwitch.id,\n    securityGroup: defaultSecurityGroup.id,\n    config: JSON.stringify({\n        \"enable.acl\": \"true\",\n    }),\n});\nconst defaultTopic = new alicloud.alikafka.Topic(\"default\", {\n    instanceId: defaultInstance.id,\n    topic: name,\n    remark: name,\n    localTopic: true,\n    compactTopic: true,\n    partitionNum: 18,\n    configs: JSON.stringify({\n        \"message.format.version\": \"2.2.0\",\n        \"max.message.bytes\": \"10485760\",\n        \"min.insync.replicas\": \"1\",\n        \"replication-factor\": \"2\",\n        \"retention.ms\": \"3600000\",\n    }),\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_instance = alicloud.alikafka.Instance(\"default\",\n    name=name,\n    partition_num=50,\n    disk_type=1,\n    disk_size=500,\n    deploy_type=5,\n    io_max=20,\n    spec_type=\"professional\",\n    service_version=\"2.2.0\",\n    vswitch_id=default_switch.id,\n    security_group=default_security_group.id,\n    config=json.dumps({\n        \"enable.acl\": \"true\",\n    }))\ndefault_topic = alicloud.alikafka.Topic(\"default\",\n    instance_id=default_instance.id,\n    topic=name,\n    remark=name,\n    local_topic=True,\n    compact_topic=True,\n    partition_num=18,\n    configs=json.dumps({\n        \"message.format.version\": \"2.2.0\",\n        \"max.message.bytes\": \"10485760\",\n        \"min.insync.replicas\": \"1\",\n        \"replication-factor\": \"2\",\n        \"retention.ms\": \"3600000\",\n    }),\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Alikafka.Instance(\"default\", new()\n    {\n        Name = name,\n        PartitionNum = 50,\n        DiskType = 1,\n        DiskSize = 500,\n        DeployType = 5,\n        IoMax = 20,\n        SpecType = \"professional\",\n        ServiceVersion = \"2.2.0\",\n        VswitchId = defaultSwitch.Id,\n        SecurityGroup = defaultSecurityGroup.Id,\n        Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"enable.acl\"] = \"true\",\n        }),\n    });\n\n    var defaultTopic = new AliCloud.Alikafka.Topic(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        TopicName = name,\n        Remark = name,\n        LocalTopic = true,\n        CompactTopic = true,\n        PartitionNum = 18,\n        Configs = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"message.format.version\"] = \"2.2.0\",\n            [\"max.message.bytes\"] = \"10485760\",\n            [\"min.insync.replicas\"] = \"1\",\n            [\"replication-factor\"] = \"2\",\n            [\"retention.ms\"] = \"3600000\",\n        }),\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alikafka\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"enable.acl\": \"true\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tdefaultInstance, err := alikafka.NewInstance(ctx, \"default\", \u0026alikafka.InstanceArgs{\n\t\t\tName:           pulumi.String(name),\n\t\t\tPartitionNum:   pulumi.Int(50),\n\t\t\tDiskType:       pulumi.Int(1),\n\t\t\tDiskSize:       pulumi.Int(500),\n\t\t\tDeployType:     pulumi.Int(5),\n\t\t\tIoMax:          pulumi.Int(20),\n\t\t\tSpecType:       pulumi.String(\"professional\"),\n\t\t\tServiceVersion: pulumi.String(\"2.2.0\"),\n\t\t\tVswitchId:      defaultSwitch.ID(),\n\t\t\tSecurityGroup:  defaultSecurityGroup.ID(),\n\t\t\tConfig:         pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"message.format.version\": \"2.2.0\",\n\t\t\t\"max.message.bytes\":      \"10485760\",\n\t\t\t\"min.insync.replicas\":    \"1\",\n\t\t\t\"replication-factor\":     \"2\",\n\t\t\t\"retention.ms\":           \"3600000\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_, err = alikafka.NewTopic(ctx, \"default\", \u0026alikafka.TopicArgs{\n\t\t\tInstanceId:   defaultInstance.ID(),\n\t\t\tTopic:        pulumi.String(name),\n\t\t\tRemark:       pulumi.String(name),\n\t\t\tLocalTopic:   pulumi.Bool(true),\n\t\t\tCompactTopic: pulumi.Bool(true),\n\t\t\tPartitionNum: pulumi.Int(18),\n\t\t\tConfigs:      pulumi.String(json1),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.alikafka.Instance;\nimport com.pulumi.alicloud.alikafka.InstanceArgs;\nimport com.pulumi.alicloud.alikafka.Topic;\nimport com.pulumi.alicloud.alikafka.TopicArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .name(name)\n            .partitionNum(50)\n            .diskType(1)\n            .diskSize(500)\n            .deployType(5)\n            .ioMax(20)\n            .specType(\"professional\")\n            .serviceVersion(\"2.2.0\")\n            .vswitchId(defaultSwitch.id())\n            .securityGroup(defaultSecurityGroup.id())\n            .config(serializeJson(\n                jsonObject(\n                    jsonProperty(\"enable.acl\", \"true\")\n                )))\n            .build());\n\n        var defaultTopic = new Topic(\"defaultTopic\", TopicArgs.builder()\n            .instanceId(defaultInstance.id())\n            .topic(name)\n            .remark(name)\n            .localTopic(true)\n            .compactTopic(true)\n            .partitionNum(18)\n            .configs(serializeJson(\n                jsonObject(\n                    jsonProperty(\"message.format.version\", \"2.2.0\"),\n                    jsonProperty(\"max.message.bytes\", \"10485760\"),\n                    jsonProperty(\"min.insync.replicas\", \"1\"),\n                    jsonProperty(\"replication-factor\", \"2\"),\n                    jsonProperty(\"retention.ms\", \"3600000\")\n                )))\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:alikafka:Instance\n    name: default\n    properties:\n      name: ${name}\n      partitionNum: 50\n      diskType: '1'\n      diskSize: '500'\n      deployType: '5'\n      ioMax: '20'\n      specType: professional\n      serviceVersion: 2.2.0\n      vswitchId: ${defaultSwitch.id}\n      securityGroup: ${defaultSecurityGroup.id}\n      config:\n        fn::toJSON:\n          enable.acl: 'true'\n  defaultTopic:\n    type: alicloud:alikafka:Topic\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      topic: ${name}\n      remark: ${name}\n      localTopic: 'true'\n      compactTopic: 'true'\n      partitionNum: '18'\n      configs:\n        fn::toJSON:\n          message.format.version: 2.2.0\n          max.message.bytes: '10485760'\n          min.insync.replicas: '1'\n          replication-factor: '2'\n          retention.ms: '3600000'\n      tags:\n        Created: TF\n        For: example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAlikafka Topic can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:alikafka/topic:Topic example \u003cinstance_id\u003e:\u003ctopic\u003e\n```\n\n","properties":{"compactTopic":{"type":"boolean","description":"The cleanup policy for the topic. This parameter is available only if you set the storage engine of the topic to Local storage. Valid values:\n- false: The delete cleanup policy is used.\n- true: The compact cleanup policy is used.\n"},"configs":{"type":"string","description":"The advanced configurations.\n"},"createTime":{"type":"integer","description":"(Available since v1.262.1) The time when the topic was created.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"localTopic":{"type":"boolean","description":"The storage engine of the topic. Valid values:\n- false: Cloud storage.\n- true: Local storage.\n"},"partitionNum":{"type":"integer","description":"The number of partitions in the topic.\n"},"regionId":{"type":"string","description":"(Available since v1.262.1) The ID of the region where the instance resides.\n"},"remark":{"type":"string","description":"The description of the topic.\n"},"status":{"type":"string","description":"(Available since v1.262.1) The status of the service.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"topic":{"type":"string","description":"The topic name.\n","language":{"csharp":{"name":"TopicName"}}}},"required":["configs","createTime","instanceId","partitionNum","regionId","remark","status","topic"],"inputProperties":{"compactTopic":{"type":"boolean","description":"The cleanup policy for the topic. This parameter is available only if you set the storage engine of the topic to Local storage. Valid values:\n- false: The delete cleanup policy is used.\n- true: The compact cleanup policy is used.\n","willReplaceOnChanges":true},"configs":{"type":"string","description":"The advanced configurations.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"localTopic":{"type":"boolean","description":"The storage engine of the topic. Valid values:\n- false: Cloud storage.\n- true: Local storage.\n","willReplaceOnChanges":true},"partitionNum":{"type":"integer","description":"The number of partitions in the topic.\n"},"remark":{"type":"string","description":"The description of the topic.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"topic":{"type":"string","description":"The topic name.\n","language":{"csharp":{"name":"TopicName"}},"willReplaceOnChanges":true}},"requiredInputs":["instanceId","remark","topic"],"stateInputs":{"description":"Input properties used for looking up and filtering Topic resources.\n","properties":{"compactTopic":{"type":"boolean","description":"The cleanup policy for the topic. This parameter is available only if you set the storage engine of the topic to Local storage. Valid values:\n- false: The delete cleanup policy is used.\n- true: The compact cleanup policy is used.\n","willReplaceOnChanges":true},"configs":{"type":"string","description":"The advanced configurations.\n"},"createTime":{"type":"integer","description":"(Available since v1.262.1) The time when the topic was created.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"localTopic":{"type":"boolean","description":"The storage engine of the topic. Valid values:\n- false: Cloud storage.\n- true: Local storage.\n","willReplaceOnChanges":true},"partitionNum":{"type":"integer","description":"The number of partitions in the topic.\n"},"regionId":{"type":"string","description":"(Available since v1.262.1) The ID of the region where the instance resides.\n"},"remark":{"type":"string","description":"The description of the topic.\n"},"status":{"type":"string","description":"(Available since v1.262.1) The status of the service.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"topic":{"type":"string","description":"The topic name.\n","language":{"csharp":{"name":"TopicName"}},"willReplaceOnChanges":true}},"type":"object"}},"alicloud:amqp/binding:Binding":{"description":"Provides a RabbitMQ (AMQP) Binding resource.\n\nFor information about RabbitMQ (AMQP) Binding and how to use it, see [What is Binding](https://www.alibabacloud.com/help/en/message-queue-for-rabbitmq/latest/createbinding).\n\n\u003e **NOTE:** Available since v1.135.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.amqp.Instance(\"default\", {\n    instanceType: \"enterprise\",\n    maxTps: \"3000\",\n    queueCapacity: \"200\",\n    storageSize: \"700\",\n    supportEip: false,\n    maxEipTps: \"128\",\n    paymentType: \"Subscription\",\n    period: 1,\n});\nconst defaultVirtualHost = new alicloud.amqp.VirtualHost(\"default\", {\n    instanceId: _default.id,\n    virtualHostName: \"tf-example\",\n});\nconst defaultExchange = new alicloud.amqp.Exchange(\"default\", {\n    autoDeleteState: false,\n    exchangeName: \"tf-example\",\n    exchangeType: \"HEADERS\",\n    instanceId: _default.id,\n    internal: false,\n    virtualHostName: defaultVirtualHost.virtualHostName,\n});\nconst defaultQueue = new alicloud.amqp.Queue(\"default\", {\n    instanceId: _default.id,\n    queueName: \"tf-example\",\n    virtualHostName: defaultVirtualHost.virtualHostName,\n});\nconst defaultBinding = new alicloud.amqp.Binding(\"default\", {\n    argument: \"x-match:all\",\n    bindingKey: defaultQueue.queueName,\n    bindingType: \"QUEUE\",\n    destinationName: \"tf-example\",\n    instanceId: _default.id,\n    sourceExchange: defaultExchange.exchangeName,\n    virtualHostName: defaultVirtualHost.virtualHostName,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.amqp.Instance(\"default\",\n    instance_type=\"enterprise\",\n    max_tps=\"3000\",\n    queue_capacity=\"200\",\n    storage_size=\"700\",\n    support_eip=False,\n    max_eip_tps=\"128\",\n    payment_type=\"Subscription\",\n    period=1)\ndefault_virtual_host = alicloud.amqp.VirtualHost(\"default\",\n    instance_id=default.id,\n    virtual_host_name=\"tf-example\")\ndefault_exchange = alicloud.amqp.Exchange(\"default\",\n    auto_delete_state=False,\n    exchange_name=\"tf-example\",\n    exchange_type=\"HEADERS\",\n    instance_id=default.id,\n    internal=False,\n    virtual_host_name=default_virtual_host.virtual_host_name)\ndefault_queue = alicloud.amqp.Queue(\"default\",\n    instance_id=default.id,\n    queue_name=\"tf-example\",\n    virtual_host_name=default_virtual_host.virtual_host_name)\ndefault_binding = alicloud.amqp.Binding(\"default\",\n    argument=\"x-match:all\",\n    binding_key=default_queue.queue_name,\n    binding_type=\"QUEUE\",\n    destination_name=\"tf-example\",\n    instance_id=default.id,\n    source_exchange=default_exchange.exchange_name,\n    virtual_host_name=default_virtual_host.virtual_host_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Amqp.Instance(\"default\", new()\n    {\n        InstanceType = \"enterprise\",\n        MaxTps = \"3000\",\n        QueueCapacity = \"200\",\n        StorageSize = \"700\",\n        SupportEip = false,\n        MaxEipTps = \"128\",\n        PaymentType = \"Subscription\",\n        Period = 1,\n    });\n\n    var defaultVirtualHost = new AliCloud.Amqp.VirtualHost(\"default\", new()\n    {\n        InstanceId = @default.Id,\n        VirtualHostName = \"tf-example\",\n    });\n\n    var defaultExchange = new AliCloud.Amqp.Exchange(\"default\", new()\n    {\n        AutoDeleteState = false,\n        ExchangeName = \"tf-example\",\n        ExchangeType = \"HEADERS\",\n        InstanceId = @default.Id,\n        Internal = false,\n        VirtualHostName = defaultVirtualHost.VirtualHostName,\n    });\n\n    var defaultQueue = new AliCloud.Amqp.Queue(\"default\", new()\n    {\n        InstanceId = @default.Id,\n        QueueName = \"tf-example\",\n        VirtualHostName = defaultVirtualHost.VirtualHostName,\n    });\n\n    var defaultBinding = new AliCloud.Amqp.Binding(\"default\", new()\n    {\n        Argument = \"x-match:all\",\n        BindingKey = defaultQueue.QueueName,\n        BindingType = \"QUEUE\",\n        DestinationName = \"tf-example\",\n        InstanceId = @default.Id,\n        SourceExchange = defaultExchange.ExchangeName,\n        VirtualHostName = defaultVirtualHost.VirtualHostName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/amqp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := amqp.NewInstance(ctx, \"default\", \u0026amqp.InstanceArgs{\n\t\t\tInstanceType:  pulumi.String(\"enterprise\"),\n\t\t\tMaxTps:        pulumi.String(\"3000\"),\n\t\t\tQueueCapacity: pulumi.String(\"200\"),\n\t\t\tStorageSize:   pulumi.String(\"700\"),\n\t\t\tSupportEip:    pulumi.Bool(false),\n\t\t\tMaxEipTps:     pulumi.String(\"128\"),\n\t\t\tPaymentType:   pulumi.String(\"Subscription\"),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVirtualHost, err := amqp.NewVirtualHost(ctx, \"default\", \u0026amqp.VirtualHostArgs{\n\t\t\tInstanceId:      _default.ID(),\n\t\t\tVirtualHostName: pulumi.String(\"tf-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultExchange, err := amqp.NewExchange(ctx, \"default\", \u0026amqp.ExchangeArgs{\n\t\t\tAutoDeleteState: pulumi.Bool(false),\n\t\t\tExchangeName:    pulumi.String(\"tf-example\"),\n\t\t\tExchangeType:    pulumi.String(\"HEADERS\"),\n\t\t\tInstanceId:      _default.ID(),\n\t\t\tInternal:        pulumi.Bool(false),\n\t\t\tVirtualHostName: defaultVirtualHost.VirtualHostName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultQueue, err := amqp.NewQueue(ctx, \"default\", \u0026amqp.QueueArgs{\n\t\t\tInstanceId:      _default.ID(),\n\t\t\tQueueName:       pulumi.String(\"tf-example\"),\n\t\t\tVirtualHostName: defaultVirtualHost.VirtualHostName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = amqp.NewBinding(ctx, \"default\", \u0026amqp.BindingArgs{\n\t\t\tArgument:        pulumi.String(\"x-match:all\"),\n\t\t\tBindingKey:      defaultQueue.QueueName,\n\t\t\tBindingType:     pulumi.String(\"QUEUE\"),\n\t\t\tDestinationName: pulumi.String(\"tf-example\"),\n\t\t\tInstanceId:      _default.ID(),\n\t\t\tSourceExchange:  defaultExchange.ExchangeName,\n\t\t\tVirtualHostName: defaultVirtualHost.VirtualHostName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.amqp.Instance;\nimport com.pulumi.alicloud.amqp.InstanceArgs;\nimport com.pulumi.alicloud.amqp.VirtualHost;\nimport com.pulumi.alicloud.amqp.VirtualHostArgs;\nimport com.pulumi.alicloud.amqp.Exchange;\nimport com.pulumi.alicloud.amqp.ExchangeArgs;\nimport com.pulumi.alicloud.amqp.Queue;\nimport com.pulumi.alicloud.amqp.QueueArgs;\nimport com.pulumi.alicloud.amqp.Binding;\nimport com.pulumi.alicloud.amqp.BindingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .instanceType(\"enterprise\")\n            .maxTps(\"3000\")\n            .queueCapacity(\"200\")\n            .storageSize(\"700\")\n            .supportEip(false)\n            .maxEipTps(\"128\")\n            .paymentType(\"Subscription\")\n            .period(1)\n            .build());\n\n        var defaultVirtualHost = new VirtualHost(\"defaultVirtualHost\", VirtualHostArgs.builder()\n            .instanceId(default_.id())\n            .virtualHostName(\"tf-example\")\n            .build());\n\n        var defaultExchange = new Exchange(\"defaultExchange\", ExchangeArgs.builder()\n            .autoDeleteState(false)\n            .exchangeName(\"tf-example\")\n            .exchangeType(\"HEADERS\")\n            .instanceId(default_.id())\n            .internal(false)\n            .virtualHostName(defaultVirtualHost.virtualHostName())\n            .build());\n\n        var defaultQueue = new Queue(\"defaultQueue\", QueueArgs.builder()\n            .instanceId(default_.id())\n            .queueName(\"tf-example\")\n            .virtualHostName(defaultVirtualHost.virtualHostName())\n            .build());\n\n        var defaultBinding = new Binding(\"defaultBinding\", BindingArgs.builder()\n            .argument(\"x-match:all\")\n            .bindingKey(defaultQueue.queueName())\n            .bindingType(\"QUEUE\")\n            .destinationName(\"tf-example\")\n            .instanceId(default_.id())\n            .sourceExchange(defaultExchange.exchangeName())\n            .virtualHostName(defaultVirtualHost.virtualHostName())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:amqp:Instance\n    properties:\n      instanceType: enterprise\n      maxTps: 3000\n      queueCapacity: 200\n      storageSize: 700\n      supportEip: false\n      maxEipTps: 128\n      paymentType: Subscription\n      period: 1\n  defaultVirtualHost:\n    type: alicloud:amqp:VirtualHost\n    name: default\n    properties:\n      instanceId: ${default.id}\n      virtualHostName: tf-example\n  defaultExchange:\n    type: alicloud:amqp:Exchange\n    name: default\n    properties:\n      autoDeleteState: false\n      exchangeName: tf-example\n      exchangeType: HEADERS\n      instanceId: ${default.id}\n      internal: false\n      virtualHostName: ${defaultVirtualHost.virtualHostName}\n  defaultQueue:\n    type: alicloud:amqp:Queue\n    name: default\n    properties:\n      instanceId: ${default.id}\n      queueName: tf-example\n      virtualHostName: ${defaultVirtualHost.virtualHostName}\n  defaultBinding:\n    type: alicloud:amqp:Binding\n    name: default\n    properties:\n      argument: x-match:all\n      bindingKey: ${defaultQueue.queueName}\n      bindingType: QUEUE\n      destinationName: tf-example\n      instanceId: ${default.id}\n      sourceExchange: ${defaultExchange.exchangeName}\n      virtualHostName: ${defaultVirtualHost.virtualHostName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRabbitMQ (AMQP) Binding can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:amqp/binding:Binding example \u003cinstance_id\u003e:\u003cvirtual_host_name\u003e:\u003csource_exchange\u003e:\u003cdestination_name\u003e\n```\n\n","properties":{"argument":{"type":"string","description":"The key-value pairs that are configured for the headers attributes of a message. Default value: `x-match:all`. Valid values:\n- `x-match:all`: A headers exchange routes a message to a queue only if all binding attributes of the queue except for x-match match the headers attributes of the message.\n- `x-match:any`: A headers exchange routes a message to a queue if one or more binding attributes of the queue except for x-match match the headers attributes of the message.\n- \u003e **NOTE:** If the exchange type is not 'HEADERS', the \u003cspan pulumi-lang-nodejs=\"`argument`\" pulumi-lang-dotnet=\"`Argument`\" pulumi-lang-go=\"`argument`\" pulumi-lang-python=\"`argument`\" pulumi-lang-yaml=\"`argument`\" pulumi-lang-java=\"`argument`\"\u003e`argument`\u003c/span\u003e should not been set, otherwise, there are always \"forces replacement\" changes.\n"},"bindingKey":{"type":"string","description":"The Binding Key.\n* For a non-topic source exchange: The binding key can contain only letters, digits, hyphens (-), underscores (_), periods (.), and at signs (@).\nThe binding key must be 1 to 255 characters in length.\n* For a topic source exchange: The binding key can contain letters, digits, hyphens (-), underscores (_), periods (.), and at signs (@).\nIf the binding key contains a number sign (#), the binding key must start with a number sign (#) followed by a period (.) or end with a number sign (#) that follows a period (.).\nThe binding key must be 1 to 255 characters in length.\n"},"bindingType":{"type":"string","description":"The type of the object that you want to bind to the source exchange. Valid values: `EXCHANGE`, `QUEUE`.\n"},"destinationName":{"type":"string","description":"The name of the object that you want to bind to the source exchange.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"sourceExchange":{"type":"string","description":"The name of the source exchange.\n"},"virtualHostName":{"type":"string","description":"The name of the vhost.\n"}},"required":["argument","bindingKey","bindingType","destinationName","instanceId","sourceExchange","virtualHostName"],"inputProperties":{"argument":{"type":"string","description":"The key-value pairs that are configured for the headers attributes of a message. Default value: `x-match:all`. Valid values:\n- `x-match:all`: A headers exchange routes a message to a queue only if all binding attributes of the queue except for x-match match the headers attributes of the message.\n- `x-match:any`: A headers exchange routes a message to a queue if one or more binding attributes of the queue except for x-match match the headers attributes of the message.\n- \u003e **NOTE:** If the exchange type is not 'HEADERS', the \u003cspan pulumi-lang-nodejs=\"`argument`\" pulumi-lang-dotnet=\"`Argument`\" pulumi-lang-go=\"`argument`\" pulumi-lang-python=\"`argument`\" pulumi-lang-yaml=\"`argument`\" pulumi-lang-java=\"`argument`\"\u003e`argument`\u003c/span\u003e should not been set, otherwise, there are always \"forces replacement\" changes.\n","willReplaceOnChanges":true},"bindingKey":{"type":"string","description":"The Binding Key.\n* For a non-topic source exchange: The binding key can contain only letters, digits, hyphens (-), underscores (_), periods (.), and at signs (@).\nThe binding key must be 1 to 255 characters in length.\n* For a topic source exchange: The binding key can contain letters, digits, hyphens (-), underscores (_), periods (.), and at signs (@).\nIf the binding key contains a number sign (#), the binding key must start with a number sign (#) followed by a period (.) or end with a number sign (#) that follows a period (.).\nThe binding key must be 1 to 255 characters in length.\n","willReplaceOnChanges":true},"bindingType":{"type":"string","description":"The type of the object that you want to bind to the source exchange. Valid values: `EXCHANGE`, `QUEUE`.\n","willReplaceOnChanges":true},"destinationName":{"type":"string","description":"The name of the object that you want to bind to the source exchange.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"sourceExchange":{"type":"string","description":"The name of the source exchange.\n","willReplaceOnChanges":true},"virtualHostName":{"type":"string","description":"The name of the vhost.\n","willReplaceOnChanges":true}},"requiredInputs":["bindingKey","bindingType","destinationName","instanceId","sourceExchange","virtualHostName"],"stateInputs":{"description":"Input properties used for looking up and filtering Binding resources.\n","properties":{"argument":{"type":"string","description":"The key-value pairs that are configured for the headers attributes of a message. Default value: `x-match:all`. Valid values:\n- `x-match:all`: A headers exchange routes a message to a queue only if all binding attributes of the queue except for x-match match the headers attributes of the message.\n- `x-match:any`: A headers exchange routes a message to a queue if one or more binding attributes of the queue except for x-match match the headers attributes of the message.\n- \u003e **NOTE:** If the exchange type is not 'HEADERS', the \u003cspan pulumi-lang-nodejs=\"`argument`\" pulumi-lang-dotnet=\"`Argument`\" pulumi-lang-go=\"`argument`\" pulumi-lang-python=\"`argument`\" pulumi-lang-yaml=\"`argument`\" pulumi-lang-java=\"`argument`\"\u003e`argument`\u003c/span\u003e should not been set, otherwise, there are always \"forces replacement\" changes.\n","willReplaceOnChanges":true},"bindingKey":{"type":"string","description":"The Binding Key.\n* For a non-topic source exchange: The binding key can contain only letters, digits, hyphens (-), underscores (_), periods (.), and at signs (@).\nThe binding key must be 1 to 255 characters in length.\n* For a topic source exchange: The binding key can contain letters, digits, hyphens (-), underscores (_), periods (.), and at signs (@).\nIf the binding key contains a number sign (#), the binding key must start with a number sign (#) followed by a period (.) or end with a number sign (#) that follows a period (.).\nThe binding key must be 1 to 255 characters in length.\n","willReplaceOnChanges":true},"bindingType":{"type":"string","description":"The type of the object that you want to bind to the source exchange. Valid values: `EXCHANGE`, `QUEUE`.\n","willReplaceOnChanges":true},"destinationName":{"type":"string","description":"The name of the object that you want to bind to the source exchange.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"sourceExchange":{"type":"string","description":"The name of the source exchange.\n","willReplaceOnChanges":true},"virtualHostName":{"type":"string","description":"The name of the vhost.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:amqp/exchange:Exchange":{"description":"Provides a RabbitMQ (AMQP) Exchange resource.\n\n\n\nFor information about RabbitMQ (AMQP) Exchange and how to use it, see [What is Exchange](https://www.alibabacloud.com/help/en/message-queue-for-rabbitmq/latest/createexchange).\n\n\u003e **NOTE:** Available since v1.128.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst virtualHostName = config.get(\"virtualHostName\") || \"/\";\nconst createInstance = new alicloud.amqp.Instance(\"CreateInstance\", {\n    renewalDuration: 1,\n    maxTps: \"3000\",\n    periodCycle: \"Month\",\n    maxConnections: 2000,\n    supportEip: true,\n    autoRenew: false,\n    renewalStatus: \"AutoRenewal\",\n    period: 12,\n    instanceName: name,\n    supportTracing: false,\n    paymentType: \"Subscription\",\n    renewalDurationUnit: \"Month\",\n    instanceType: \"enterprise\",\n    queueCapacity: \"200\",\n    maxEipTps: \"128\",\n    storageSize: \"0\",\n});\nconst _default = new alicloud.amqp.Exchange(\"default\", {\n    virtualHostName: virtualHostName,\n    instanceId: createInstance.id,\n    internal: true,\n    autoDeleteState: false,\n    exchangeName: name,\n    exchangeType: \"X_CONSISTENT_HASH\",\n    alternateExchange: \"bakExchange\",\n    xDelayedType: \"DIRECT\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nvirtual_host_name = config.get(\"virtualHostName\")\nif virtual_host_name is None:\n    virtual_host_name = \"/\"\ncreate_instance = alicloud.amqp.Instance(\"CreateInstance\",\n    renewal_duration=1,\n    max_tps=\"3000\",\n    period_cycle=\"Month\",\n    max_connections=2000,\n    support_eip=True,\n    auto_renew=False,\n    renewal_status=\"AutoRenewal\",\n    period=12,\n    instance_name=name,\n    support_tracing=False,\n    payment_type=\"Subscription\",\n    renewal_duration_unit=\"Month\",\n    instance_type=\"enterprise\",\n    queue_capacity=\"200\",\n    max_eip_tps=\"128\",\n    storage_size=\"0\")\ndefault = alicloud.amqp.Exchange(\"default\",\n    virtual_host_name=virtual_host_name,\n    instance_id=create_instance.id,\n    internal=True,\n    auto_delete_state=False,\n    exchange_name=name,\n    exchange_type=\"X_CONSISTENT_HASH\",\n    alternate_exchange=\"bakExchange\",\n    x_delayed_type=\"DIRECT\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var virtualHostName = config.Get(\"virtualHostName\") ?? \"/\";\n    var createInstance = new AliCloud.Amqp.Instance(\"CreateInstance\", new()\n    {\n        RenewalDuration = 1,\n        MaxTps = \"3000\",\n        PeriodCycle = \"Month\",\n        MaxConnections = 2000,\n        SupportEip = true,\n        AutoRenew = false,\n        RenewalStatus = \"AutoRenewal\",\n        Period = 12,\n        InstanceName = name,\n        SupportTracing = false,\n        PaymentType = \"Subscription\",\n        RenewalDurationUnit = \"Month\",\n        InstanceType = \"enterprise\",\n        QueueCapacity = \"200\",\n        MaxEipTps = \"128\",\n        StorageSize = \"0\",\n    });\n\n    var @default = new AliCloud.Amqp.Exchange(\"default\", new()\n    {\n        VirtualHostName = virtualHostName,\n        InstanceId = createInstance.Id,\n        Internal = true,\n        AutoDeleteState = false,\n        ExchangeName = name,\n        ExchangeType = \"X_CONSISTENT_HASH\",\n        AlternateExchange = \"bakExchange\",\n        XDelayedType = \"DIRECT\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/amqp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tvirtualHostName := \"/\"\n\t\tif param := cfg.Get(\"virtualHostName\"); param != \"\" {\n\t\t\tvirtualHostName = param\n\t\t}\n\t\tcreateInstance, err := amqp.NewInstance(ctx, \"CreateInstance\", \u0026amqp.InstanceArgs{\n\t\t\tRenewalDuration:     pulumi.Int(1),\n\t\t\tMaxTps:              pulumi.String(\"3000\"),\n\t\t\tPeriodCycle:         pulumi.String(\"Month\"),\n\t\t\tMaxConnections:      pulumi.Int(2000),\n\t\t\tSupportEip:          pulumi.Bool(true),\n\t\t\tAutoRenew:           pulumi.Bool(false),\n\t\t\tRenewalStatus:       pulumi.String(\"AutoRenewal\"),\n\t\t\tPeriod:              pulumi.Int(12),\n\t\t\tInstanceName:        pulumi.String(name),\n\t\t\tSupportTracing:      pulumi.Bool(false),\n\t\t\tPaymentType:         pulumi.String(\"Subscription\"),\n\t\t\tRenewalDurationUnit: pulumi.String(\"Month\"),\n\t\t\tInstanceType:        pulumi.String(\"enterprise\"),\n\t\t\tQueueCapacity:       pulumi.String(\"200\"),\n\t\t\tMaxEipTps:           pulumi.String(\"128\"),\n\t\t\tStorageSize:         pulumi.String(\"0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = amqp.NewExchange(ctx, \"default\", \u0026amqp.ExchangeArgs{\n\t\t\tVirtualHostName:   pulumi.String(virtualHostName),\n\t\t\tInstanceId:        createInstance.ID(),\n\t\t\tInternal:          pulumi.Bool(true),\n\t\t\tAutoDeleteState:   pulumi.Bool(false),\n\t\t\tExchangeName:      pulumi.String(name),\n\t\t\tExchangeType:      pulumi.String(\"X_CONSISTENT_HASH\"),\n\t\t\tAlternateExchange: pulumi.String(\"bakExchange\"),\n\t\t\tXDelayedType:      pulumi.String(\"DIRECT\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.amqp.Instance;\nimport com.pulumi.alicloud.amqp.InstanceArgs;\nimport com.pulumi.alicloud.amqp.Exchange;\nimport com.pulumi.alicloud.amqp.ExchangeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var virtualHostName = config.get(\"virtualHostName\").orElse(\"/\");\n        var createInstance = new Instance(\"createInstance\", InstanceArgs.builder()\n            .renewalDuration(1)\n            .maxTps(\"3000\")\n            .periodCycle(\"Month\")\n            .maxConnections(2000)\n            .supportEip(true)\n            .autoRenew(false)\n            .renewalStatus(\"AutoRenewal\")\n            .period(12)\n            .instanceName(name)\n            .supportTracing(false)\n            .paymentType(\"Subscription\")\n            .renewalDurationUnit(\"Month\")\n            .instanceType(\"enterprise\")\n            .queueCapacity(\"200\")\n            .maxEipTps(\"128\")\n            .storageSize(\"0\")\n            .build());\n\n        var default_ = new Exchange(\"default\", ExchangeArgs.builder()\n            .virtualHostName(virtualHostName)\n            .instanceId(createInstance.id())\n            .internal(true)\n            .autoDeleteState(false)\n            .exchangeName(name)\n            .exchangeType(\"X_CONSISTENT_HASH\")\n            .alternateExchange(\"bakExchange\")\n            .xDelayedType(\"DIRECT\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\n  virtualHostName:\n    type: string\n    default: /\nresources:\n  createInstance:\n    type: alicloud:amqp:Instance\n    name: CreateInstance\n    properties:\n      renewalDuration: '1'\n      maxTps: '3000'\n      periodCycle: Month\n      maxConnections: '2000'\n      supportEip: true\n      autoRenew: false\n      renewalStatus: AutoRenewal\n      period: '12'\n      instanceName: ${name}\n      supportTracing: false\n      paymentType: Subscription\n      renewalDurationUnit: Month\n      instanceType: enterprise\n      queueCapacity: '200'\n      maxEipTps: '128'\n      storageSize: '0'\n  default:\n    type: alicloud:amqp:Exchange\n    properties:\n      virtualHostName: ${virtualHostName}\n      instanceId: ${createInstance.id}\n      internal: 'true'\n      autoDeleteState: 'false'\n      exchangeName: ${name}\n      exchangeType: X_CONSISTENT_HASH\n      alternateExchange: bakExchange\n      xDelayedType: DIRECT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRabbitMQ (AMQP) Exchange can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:amqp/exchange:Exchange example \u003cinstance_id\u003e:\u003cvirtual_host_name\u003e:\u003cexchange_name\u003e\n```\n\n","properties":{"alternateExchange":{"type":"string","description":"The alternate exchange. An alternate exchange is used to receive messages that fail to be routed to queues from the current exchange.\n"},"autoDeleteState":{"type":"boolean","description":"Specifies whether to automatically delete the exchange. Valid values:\n"},"createTime":{"type":"integer","description":"CreateTime\n"},"exchangeName":{"type":"string","description":"The name of the exchange that you want to create. The exchange name must meet the following conventions:\n\n- The name must be 1 to 255 characters in length, and can contain only letters, digits, hyphens (-), underscores (\\_), periods (.), number signs (#), forward slashes (/), and at signs (@).\n- After the exchange is created, you cannot change its name. If you want to change its name, delete the exchange and create another exchange.\n"},"exchangeType":{"type":"string","description":"The Exchange type. Value:\n- `DIRECT`: This type of Routing rule routes messages to a Queue whose Binding Key matches the Routing Key.\n- `TOPIC`: This type is similar to the DIRECT type. It uses Routing Key pattern matching and string comparison to route messages to the bound Queue.\n- `FANOUT`: This type of routing rule is very simple. It routes all messages sent to the Exchange to all queues bound to it, which is equivalent to the broadcast function.\n- `HEADERS`: This type is similar to the DIRECT type. Headers Exchange uses the Headers attribute instead of Routing Key for route matching. When binding Headers Exchange and Queue, the Key-value pair of the bound attribute is set. When sending a message to Headers Exchange, the Headers attribute Key-value pair of the message is set, and the message is routed to the bound Queue by comparing the Headers attribute Key-value pair with the bound attribute Key-value pair.\n- `X_delayed_message`: By declaring this type of Exchange, you can customize the Header attribute x-delay of the message to specify the delivery delay time period, in milliseconds. Messages will be delivered to the corresponding Queue after the time period defined in the x-delay according to the routing rules. The routing rule depends on the Exchange route type specified in the x-delayed-type.\n- `X_CONSISTENT_HASH`: The x-consistent-hash Exchange allows you to Hash the Routing Key or Header value and use the consistent hashing algorithm to route messages to different queues.\n"},"instanceId":{"type":"string","description":"The ID of the ApsaraMQ for RabbitMQ instance whose exchange you want to delete.\n"},"internal":{"type":"boolean","description":"Specifies whether the exchange is an internal exchange. Valid values:\n"},"virtualHostName":{"type":"string","description":"The name of the vhost to which the exchange that you want to create belongs.\n"},"xDelayedType":{"type":"string","description":"RabbitMQ supports the x-delayed-message Exchange. By declaring this type of Exchange, you can customize the x-delay header attribute to specify the delay period for message delivery, measured in milliseconds. The message will be delivered to the corresponding Queue after the period defined in x-delay. The routing rules are determined by the type of Exchange specified in x-delayed-type.\n"}},"required":["autoDeleteState","createTime","exchangeName","exchangeType","instanceId","internal","virtualHostName"],"inputProperties":{"alternateExchange":{"type":"string","description":"The alternate exchange. An alternate exchange is used to receive messages that fail to be routed to queues from the current exchange.\n"},"autoDeleteState":{"type":"boolean","description":"Specifies whether to automatically delete the exchange. Valid values:\n","willReplaceOnChanges":true},"exchangeName":{"type":"string","description":"The name of the exchange that you want to create. The exchange name must meet the following conventions:\n\n- The name must be 1 to 255 characters in length, and can contain only letters, digits, hyphens (-), underscores (\\_), periods (.), number signs (#), forward slashes (/), and at signs (@).\n- After the exchange is created, you cannot change its name. If you want to change its name, delete the exchange and create another exchange.\n","willReplaceOnChanges":true},"exchangeType":{"type":"string","description":"The Exchange type. Value:\n- `DIRECT`: This type of Routing rule routes messages to a Queue whose Binding Key matches the Routing Key.\n- `TOPIC`: This type is similar to the DIRECT type. It uses Routing Key pattern matching and string comparison to route messages to the bound Queue.\n- `FANOUT`: This type of routing rule is very simple. It routes all messages sent to the Exchange to all queues bound to it, which is equivalent to the broadcast function.\n- `HEADERS`: This type is similar to the DIRECT type. Headers Exchange uses the Headers attribute instead of Routing Key for route matching. When binding Headers Exchange and Queue, the Key-value pair of the bound attribute is set. When sending a message to Headers Exchange, the Headers attribute Key-value pair of the message is set, and the message is routed to the bound Queue by comparing the Headers attribute Key-value pair with the bound attribute Key-value pair.\n- `X_delayed_message`: By declaring this type of Exchange, you can customize the Header attribute x-delay of the message to specify the delivery delay time period, in milliseconds. Messages will be delivered to the corresponding Queue after the time period defined in the x-delay according to the routing rules. The routing rule depends on the Exchange route type specified in the x-delayed-type.\n- `X_CONSISTENT_HASH`: The x-consistent-hash Exchange allows you to Hash the Routing Key or Header value and use the consistent hashing algorithm to route messages to different queues.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the ApsaraMQ for RabbitMQ instance whose exchange you want to delete.\n","willReplaceOnChanges":true},"internal":{"type":"boolean","description":"Specifies whether the exchange is an internal exchange. Valid values:\n"},"virtualHostName":{"type":"string","description":"The name of the vhost to which the exchange that you want to create belongs.\n","willReplaceOnChanges":true},"xDelayedType":{"type":"string","description":"RabbitMQ supports the x-delayed-message Exchange. By declaring this type of Exchange, you can customize the x-delay header attribute to specify the delay period for message delivery, measured in milliseconds. The message will be delivered to the corresponding Queue after the period defined in x-delay. The routing rules are determined by the type of Exchange specified in x-delayed-type.\n"}},"requiredInputs":["autoDeleteState","exchangeName","exchangeType","instanceId","internal","virtualHostName"],"stateInputs":{"description":"Input properties used for looking up and filtering Exchange resources.\n","properties":{"alternateExchange":{"type":"string","description":"The alternate exchange. An alternate exchange is used to receive messages that fail to be routed to queues from the current exchange.\n"},"autoDeleteState":{"type":"boolean","description":"Specifies whether to automatically delete the exchange. Valid values:\n","willReplaceOnChanges":true},"createTime":{"type":"integer","description":"CreateTime\n"},"exchangeName":{"type":"string","description":"The name of the exchange that you want to create. The exchange name must meet the following conventions:\n\n- The name must be 1 to 255 characters in length, and can contain only letters, digits, hyphens (-), underscores (\\_), periods (.), number signs (#), forward slashes (/), and at signs (@).\n- After the exchange is created, you cannot change its name. If you want to change its name, delete the exchange and create another exchange.\n","willReplaceOnChanges":true},"exchangeType":{"type":"string","description":"The Exchange type. Value:\n- `DIRECT`: This type of Routing rule routes messages to a Queue whose Binding Key matches the Routing Key.\n- `TOPIC`: This type is similar to the DIRECT type. It uses Routing Key pattern matching and string comparison to route messages to the bound Queue.\n- `FANOUT`: This type of routing rule is very simple. It routes all messages sent to the Exchange to all queues bound to it, which is equivalent to the broadcast function.\n- `HEADERS`: This type is similar to the DIRECT type. Headers Exchange uses the Headers attribute instead of Routing Key for route matching. When binding Headers Exchange and Queue, the Key-value pair of the bound attribute is set. When sending a message to Headers Exchange, the Headers attribute Key-value pair of the message is set, and the message is routed to the bound Queue by comparing the Headers attribute Key-value pair with the bound attribute Key-value pair.\n- `X_delayed_message`: By declaring this type of Exchange, you can customize the Header attribute x-delay of the message to specify the delivery delay time period, in milliseconds. Messages will be delivered to the corresponding Queue after the time period defined in the x-delay according to the routing rules. The routing rule depends on the Exchange route type specified in the x-delayed-type.\n- `X_CONSISTENT_HASH`: The x-consistent-hash Exchange allows you to Hash the Routing Key or Header value and use the consistent hashing algorithm to route messages to different queues.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the ApsaraMQ for RabbitMQ instance whose exchange you want to delete.\n","willReplaceOnChanges":true},"internal":{"type":"boolean","description":"Specifies whether the exchange is an internal exchange. Valid values:\n"},"virtualHostName":{"type":"string","description":"The name of the vhost to which the exchange that you want to create belongs.\n","willReplaceOnChanges":true},"xDelayedType":{"type":"string","description":"RabbitMQ supports the x-delayed-message Exchange. By declaring this type of Exchange, you can customize the x-delay header attribute to specify the delay period for message delivery, measured in milliseconds. The message will be delivered to the corresponding Queue after the period defined in x-delay. The routing rules are determined by the type of Exchange specified in x-delayed-type.\n"}},"type":"object"}},"alicloud:amqp/instance:Instance":{"description":"Provides a RabbitMQ (AMQP) Instance resource.\n\nThe instance of Amqp.\n\nFor information about RabbitMQ (AMQP) Instance and how to use it, see [What is Instance](https://www.alibabacloud.com/help/en/message-queue-for-rabbitmq/latest/createinstance).\n\n\u003e **NOTE:** Available since v1.128.0.\n\n## Example Usage\n\nCreate a RabbitMQ (AMQP) enterprise edition Instance.\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.amqp.Instance(\"default\", {\n    instanceName: name,\n    instanceType: \"enterprise\",\n    maxTps: \"1000\",\n    queueCapacity: \"50\",\n    periodCycle: \"Year\",\n    supportEip: false,\n    period: 1,\n    autoRenew: true,\n    paymentType: \"Subscription\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.amqp.Instance(\"default\",\n    instance_name=name,\n    instance_type=\"enterprise\",\n    max_tps=\"1000\",\n    queue_capacity=\"50\",\n    period_cycle=\"Year\",\n    support_eip=False,\n    period=1,\n    auto_renew=True,\n    payment_type=\"Subscription\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Amqp.Instance(\"default\", new()\n    {\n        InstanceName = name,\n        InstanceType = \"enterprise\",\n        MaxTps = \"1000\",\n        QueueCapacity = \"50\",\n        PeriodCycle = \"Year\",\n        SupportEip = false,\n        Period = 1,\n        AutoRenew = true,\n        PaymentType = \"Subscription\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/amqp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := amqp.NewInstance(ctx, \"default\", \u0026amqp.InstanceArgs{\n\t\t\tInstanceName:  pulumi.String(name),\n\t\t\tInstanceType:  pulumi.String(\"enterprise\"),\n\t\t\tMaxTps:        pulumi.String(\"1000\"),\n\t\t\tQueueCapacity: pulumi.String(\"50\"),\n\t\t\tPeriodCycle:   pulumi.String(\"Year\"),\n\t\t\tSupportEip:    pulumi.Bool(false),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t\tAutoRenew:     pulumi.Bool(true),\n\t\t\tPaymentType:   pulumi.String(\"Subscription\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.amqp.Instance;\nimport com.pulumi.alicloud.amqp.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .instanceName(name)\n            .instanceType(\"enterprise\")\n            .maxTps(\"1000\")\n            .queueCapacity(\"50\")\n            .periodCycle(\"Year\")\n            .supportEip(false)\n            .period(1)\n            .autoRenew(true)\n            .paymentType(\"Subscription\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:amqp:Instance\n    properties:\n      instanceName: ${name}\n      instanceType: enterprise\n      maxTps: '1000'\n      queueCapacity: '50'\n      periodCycle: Year\n      supportEip: 'false'\n      period: '1'\n      autoRenew: 'true'\n      paymentType: Subscription\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nCreate a RabbitMQ (AMQP) serverless edition Instance.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.amqp.Instance(\"default\", {\n    instanceName: name,\n    paymentType: \"PayAsYouGo\",\n    serverlessChargeType: \"onDemand\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.amqp.Instance(\"default\",\n    instance_name=name,\n    payment_type=\"PayAsYouGo\",\n    serverless_charge_type=\"onDemand\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Amqp.Instance(\"default\", new()\n    {\n        InstanceName = name,\n        PaymentType = \"PayAsYouGo\",\n        ServerlessChargeType = \"onDemand\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/amqp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := amqp.NewInstance(ctx, \"default\", \u0026amqp.InstanceArgs{\n\t\t\tInstanceName:         pulumi.String(name),\n\t\t\tPaymentType:          pulumi.String(\"PayAsYouGo\"),\n\t\t\tServerlessChargeType: pulumi.String(\"onDemand\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.amqp.Instance;\nimport com.pulumi.alicloud.amqp.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .instanceName(name)\n            .paymentType(\"PayAsYouGo\")\n            .serverlessChargeType(\"onDemand\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:amqp:Instance\n    properties:\n      instanceName: ${name}\n      paymentType: PayAsYouGo\n      serverlessChargeType: onDemand\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.amqp.Instance`\" pulumi-lang-dotnet=\"`alicloud.amqp.Instance`\" pulumi-lang-go=\"`amqp.Instance`\" pulumi-lang-python=\"`amqp.Instance`\" pulumi-lang-yaml=\"`alicloud.amqp.Instance`\" pulumi-lang-java=\"`alicloud.amqp.Instance`\"\u003e`alicloud.amqp.Instance`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.amqp.Instance`\" pulumi-lang-dotnet=\"`alicloud.amqp.Instance`\" pulumi-lang-go=\"`amqp.Instance`\" pulumi-lang-python=\"`amqp.Instance`\" pulumi-lang-yaml=\"`alicloud.amqp.Instance`\" pulumi-lang-java=\"`alicloud.amqp.Instance`\"\u003e`alicloud.amqp.Instance`\u003c/span\u003e resource allows you to manage  \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"PayAsYouGo\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAmqp Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:amqp/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"autoRenew":{"type":"boolean","description":"Renewal method. Automatic renewal: true; Manual renewal: false. When RenewalStatus has a value, the value of RenewalStatus shall prevail.\n"},"createTime":{"type":"integer","description":"OrderCreateTime.\n"},"edition":{"type":"string","description":"The deployment architecture for Serverless instances. Valid values:\n"},"instanceName":{"type":"string","description":"The instance name.\n"},"instanceType":{"type":"string","description":"Instance type. Valid values: \n- professional: professional Edition\n- enterprise: enterprise Edition\n- vip: Platinum Edition.\n- serverless: Serverless Edition.\n\u003e **NOTE:** There should not set the \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e parameter when creating a serverless instance. Only need to set \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"PayAsYouGo\"` and \u003cspan pulumi-lang-nodejs=\"`serverlessChargeType \" pulumi-lang-dotnet=\"`ServerlessChargeType \" pulumi-lang-go=\"`serverlessChargeType \" pulumi-lang-python=\"`serverless_charge_type \" pulumi-lang-yaml=\"`serverlessChargeType \" pulumi-lang-java=\"`serverlessChargeType \"\u003e`serverless_charge_type \u003c/span\u003e= \"onDemand\"`.\n"},"maxConnections":{"type":"integer","description":"The maximum number of connections, according to the value given on the purchase page of the cloud message queue RabbitMQ version console.\n"},"maxEipTps":{"type":"string","description":"Peak TPS traffic of the public network, which must be a multiple of 128, unit: times per second.\n"},"maxTps":{"type":"string","description":"Configure the private network TPS traffic peak, please set the value according to the cloud message queue RabbitMQ version of the console purchase page given.\n"},"modifyType":{"type":"string","description":"This parameter must be provided while you change the instance specification. Type of instance lifting and lowering:\n- Upgrade: Upgrade\n- Downgrade: Downgrading.\n"},"paymentType":{"type":"string","description":"The Payment type. Valid value: \n- Subscription: Pre-paid.\n- PayAsYouGo: Post-paid, and for serverless Edition.\n"},"period":{"type":"integer","description":"Prepayment cycle, unit: periodCycle. This parameter is valid when PaymentType is set to Subscription.\n"},"periodCycle":{"type":"string","description":"Prepaid cycle units. Value: Month, Year.\n"},"provisionedCapacity":{"type":"integer","description":"The provisioned TPS capacity for reserved + elastic instances.\n"},"queueCapacity":{"type":"string","description":"Configure the maximum number of queues. The value range is as follows:  Professional version:[50,1000], minimum modification step size is 5  Enterprise Edition:[200,6000], minimum modification step size is 100  Platinum version:[10000,80000], minimum modification step size is 100.\n"},"renewalDuration":{"type":"integer","description":"The number of automatic renewal cycles.\n"},"renewalDurationUnit":{"type":"string","description":"Auto-Renewal Cycle Unit Values Include: Month: Month. Year: Years.\n"},"renewalStatus":{"type":"string","description":"The renewal status. Value: AutoRenewal: automatic renewal. ManualRenewal: manual renewal. NotRenewal: no renewal.\n"},"serverlessChargeType":{"type":"string","description":"The billing type of the serverless instance. Value: onDemand.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"storageSize":{"type":"string","description":"Configure the message storage space. Unit: GB. The value is as follows:  Professional Edition and Enterprise Edition: Fixed to 0. Description A value of 0 indicates that the Professional Edition and Enterprise Edition instances do not charge storage fees, but do not have storage space. Platinum version example: m × 100, where the value range of m is [7,28].\n"},"supportEip":{"type":"boolean","description":"Whether to support public network.\n"},"supportTracing":{"type":"boolean","description":"Whether to activate the message trace function. The values are as follows:  true: Enable message trace function false: message trace function is not enabled Description The Platinum Edition instance provides the 15-day message trace function free of charge. The trace function can only be enabled and the trace storage duration can only be set to 15 days. For instances of other specifications, you can enable or disable the trace function.\n"},"tracingStorageTime":{"type":"integer","description":"Configure the storage duration of message traces. Unit: Days. The value is as follows:  3:3 days 7:7 days 15:15 days This parameter is valid when SupportTracing is true.\n"}},"required":["createTime","edition","instanceName","instanceType","maxConnections","maxEipTps","maxTps","paymentType","queueCapacity","renewalDuration","renewalDurationUnit","renewalStatus","status","storageSize","tracingStorageTime"],"inputProperties":{"autoRenew":{"type":"boolean","description":"Renewal method. Automatic renewal: true; Manual renewal: false. When RenewalStatus has a value, the value of RenewalStatus shall prevail.\n"},"edition":{"type":"string","description":"The deployment architecture for Serverless instances. Valid values:\n"},"instanceName":{"type":"string","description":"The instance name.\n"},"instanceType":{"type":"string","description":"Instance type. Valid values: \n- professional: professional Edition\n- enterprise: enterprise Edition\n- vip: Platinum Edition.\n- serverless: Serverless Edition.\n\u003e **NOTE:** There should not set the \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e parameter when creating a serverless instance. Only need to set \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"PayAsYouGo\"` and \u003cspan pulumi-lang-nodejs=\"`serverlessChargeType \" pulumi-lang-dotnet=\"`ServerlessChargeType \" pulumi-lang-go=\"`serverlessChargeType \" pulumi-lang-python=\"`serverless_charge_type \" pulumi-lang-yaml=\"`serverlessChargeType \" pulumi-lang-java=\"`serverlessChargeType \"\u003e`serverless_charge_type \u003c/span\u003e= \"onDemand\"`.\n"},"maxConnections":{"type":"integer","description":"The maximum number of connections, according to the value given on the purchase page of the cloud message queue RabbitMQ version console.\n"},"maxEipTps":{"type":"string","description":"Peak TPS traffic of the public network, which must be a multiple of 128, unit: times per second.\n"},"maxTps":{"type":"string","description":"Configure the private network TPS traffic peak, please set the value according to the cloud message queue RabbitMQ version of the console purchase page given.\n"},"modifyType":{"type":"string","description":"This parameter must be provided while you change the instance specification. Type of instance lifting and lowering:\n- Upgrade: Upgrade\n- Downgrade: Downgrading.\n"},"paymentType":{"type":"string","description":"The Payment type. Valid value: \n- Subscription: Pre-paid.\n- PayAsYouGo: Post-paid, and for serverless Edition.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Prepayment cycle, unit: periodCycle. This parameter is valid when PaymentType is set to Subscription.\n"},"periodCycle":{"type":"string","description":"Prepaid cycle units. Value: Month, Year.\n"},"provisionedCapacity":{"type":"integer","description":"The provisioned TPS capacity for reserved + elastic instances.\n"},"queueCapacity":{"type":"string","description":"Configure the maximum number of queues. The value range is as follows:  Professional version:[50,1000], minimum modification step size is 5  Enterprise Edition:[200,6000], minimum modification step size is 100  Platinum version:[10000,80000], minimum modification step size is 100.\n"},"renewalDuration":{"type":"integer","description":"The number of automatic renewal cycles.\n"},"renewalDurationUnit":{"type":"string","description":"Auto-Renewal Cycle Unit Values Include: Month: Month. Year: Years.\n"},"renewalStatus":{"type":"string","description":"The renewal status. Value: AutoRenewal: automatic renewal. ManualRenewal: manual renewal. NotRenewal: no renewal.\n"},"serverlessChargeType":{"type":"string","description":"The billing type of the serverless instance. Value: onDemand.\n"},"storageSize":{"type":"string","description":"Configure the message storage space. Unit: GB. The value is as follows:  Professional Edition and Enterprise Edition: Fixed to 0. Description A value of 0 indicates that the Professional Edition and Enterprise Edition instances do not charge storage fees, but do not have storage space. Platinum version example: m × 100, where the value range of m is [7,28].\n"},"supportEip":{"type":"boolean","description":"Whether to support public network.\n"},"supportTracing":{"type":"boolean","description":"Whether to activate the message trace function. The values are as follows:  true: Enable message trace function false: message trace function is not enabled Description The Platinum Edition instance provides the 15-day message trace function free of charge. The trace function can only be enabled and the trace storage duration can only be set to 15 days. For instances of other specifications, you can enable or disable the trace function.\n"},"tracingStorageTime":{"type":"integer","description":"Configure the storage duration of message traces. Unit: Days. The value is as follows:  3:3 days 7:7 days 15:15 days This parameter is valid when SupportTracing is true.\n"}},"requiredInputs":["paymentType"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"autoRenew":{"type":"boolean","description":"Renewal method. Automatic renewal: true; Manual renewal: false. When RenewalStatus has a value, the value of RenewalStatus shall prevail.\n"},"createTime":{"type":"integer","description":"OrderCreateTime.\n"},"edition":{"type":"string","description":"The deployment architecture for Serverless instances. Valid values:\n"},"instanceName":{"type":"string","description":"The instance name.\n"},"instanceType":{"type":"string","description":"Instance type. Valid values: \n- professional: professional Edition\n- enterprise: enterprise Edition\n- vip: Platinum Edition.\n- serverless: Serverless Edition.\n\u003e **NOTE:** There should not set the \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e parameter when creating a serverless instance. Only need to set \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"PayAsYouGo\"` and \u003cspan pulumi-lang-nodejs=\"`serverlessChargeType \" pulumi-lang-dotnet=\"`ServerlessChargeType \" pulumi-lang-go=\"`serverlessChargeType \" pulumi-lang-python=\"`serverless_charge_type \" pulumi-lang-yaml=\"`serverlessChargeType \" pulumi-lang-java=\"`serverlessChargeType \"\u003e`serverless_charge_type \u003c/span\u003e= \"onDemand\"`.\n"},"maxConnections":{"type":"integer","description":"The maximum number of connections, according to the value given on the purchase page of the cloud message queue RabbitMQ version console.\n"},"maxEipTps":{"type":"string","description":"Peak TPS traffic of the public network, which must be a multiple of 128, unit: times per second.\n"},"maxTps":{"type":"string","description":"Configure the private network TPS traffic peak, please set the value according to the cloud message queue RabbitMQ version of the console purchase page given.\n"},"modifyType":{"type":"string","description":"This parameter must be provided while you change the instance specification. Type of instance lifting and lowering:\n- Upgrade: Upgrade\n- Downgrade: Downgrading.\n"},"paymentType":{"type":"string","description":"The Payment type. Valid value: \n- Subscription: Pre-paid.\n- PayAsYouGo: Post-paid, and for serverless Edition.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Prepayment cycle, unit: periodCycle. This parameter is valid when PaymentType is set to Subscription.\n"},"periodCycle":{"type":"string","description":"Prepaid cycle units. Value: Month, Year.\n"},"provisionedCapacity":{"type":"integer","description":"The provisioned TPS capacity for reserved + elastic instances.\n"},"queueCapacity":{"type":"string","description":"Configure the maximum number of queues. The value range is as follows:  Professional version:[50,1000], minimum modification step size is 5  Enterprise Edition:[200,6000], minimum modification step size is 100  Platinum version:[10000,80000], minimum modification step size is 100.\n"},"renewalDuration":{"type":"integer","description":"The number of automatic renewal cycles.\n"},"renewalDurationUnit":{"type":"string","description":"Auto-Renewal Cycle Unit Values Include: Month: Month. Year: Years.\n"},"renewalStatus":{"type":"string","description":"The renewal status. Value: AutoRenewal: automatic renewal. ManualRenewal: manual renewal. NotRenewal: no renewal.\n"},"serverlessChargeType":{"type":"string","description":"The billing type of the serverless instance. Value: onDemand.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"storageSize":{"type":"string","description":"Configure the message storage space. Unit: GB. The value is as follows:  Professional Edition and Enterprise Edition: Fixed to 0. Description A value of 0 indicates that the Professional Edition and Enterprise Edition instances do not charge storage fees, but do not have storage space. Platinum version example: m × 100, where the value range of m is [7,28].\n"},"supportEip":{"type":"boolean","description":"Whether to support public network.\n"},"supportTracing":{"type":"boolean","description":"Whether to activate the message trace function. The values are as follows:  true: Enable message trace function false: message trace function is not enabled Description The Platinum Edition instance provides the 15-day message trace function free of charge. The trace function can only be enabled and the trace storage duration can only be set to 15 days. For instances of other specifications, you can enable or disable the trace function.\n"},"tracingStorageTime":{"type":"integer","description":"Configure the storage duration of message traces. Unit: Days. The value is as follows:  3:3 days 7:7 days 15:15 days This parameter is valid when SupportTracing is true.\n"}},"type":"object"}},"alicloud:amqp/queue:Queue":{"description":"Provides a RabbitMQ (AMQP) Queue resource.\n\nFor information about RabbitMQ (AMQP) Queue and how to use it, see [What is Queue](https://www.alibabacloud.com/help/en/message-queue-for-rabbitmq/latest/createqueue).\n\n\u003e **NOTE:** Available since v1.127.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultInstance = new alicloud.amqp.Instance(\"default\", {\n    instanceName: `${name}-${_default.result}`,\n    instanceType: \"enterprise\",\n    maxTps: \"3000\",\n    maxConnections: 2000,\n    queueCapacity: \"200\",\n    paymentType: \"Subscription\",\n    renewalStatus: \"AutoRenewal\",\n    renewalDuration: 1,\n    renewalDurationUnit: \"Year\",\n    supportEip: true,\n});\nconst defaultVirtualHost = new alicloud.amqp.VirtualHost(\"default\", {\n    instanceId: defaultInstance.id,\n    virtualHostName: `${name}-${_default.result}`,\n});\nconst defaultQueue = new alicloud.amqp.Queue(\"default\", {\n    instanceId: defaultInstance.id,\n    virtualHostName: defaultVirtualHost.virtualHostName,\n    queueName: `${name}-${_default.result}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_instance = alicloud.amqp.Instance(\"default\",\n    instance_name=f\"{name}-{default['result']}\",\n    instance_type=\"enterprise\",\n    max_tps=\"3000\",\n    max_connections=2000,\n    queue_capacity=\"200\",\n    payment_type=\"Subscription\",\n    renewal_status=\"AutoRenewal\",\n    renewal_duration=1,\n    renewal_duration_unit=\"Year\",\n    support_eip=True)\ndefault_virtual_host = alicloud.amqp.VirtualHost(\"default\",\n    instance_id=default_instance.id,\n    virtual_host_name=f\"{name}-{default['result']}\")\ndefault_queue = alicloud.amqp.Queue(\"default\",\n    instance_id=default_instance.id,\n    virtual_host_name=default_virtual_host.virtual_host_name,\n    queue_name=f\"{name}-{default['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultInstance = new AliCloud.Amqp.Instance(\"default\", new()\n    {\n        InstanceName = $\"{name}-{@default.Result}\",\n        InstanceType = \"enterprise\",\n        MaxTps = \"3000\",\n        MaxConnections = 2000,\n        QueueCapacity = \"200\",\n        PaymentType = \"Subscription\",\n        RenewalStatus = \"AutoRenewal\",\n        RenewalDuration = 1,\n        RenewalDurationUnit = \"Year\",\n        SupportEip = true,\n    });\n\n    var defaultVirtualHost = new AliCloud.Amqp.VirtualHost(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        VirtualHostName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultQueue = new AliCloud.Amqp.Queue(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        VirtualHostName = defaultVirtualHost.VirtualHostName,\n        QueueName = $\"{name}-{@default.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/amqp\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := amqp.NewInstance(ctx, \"default\", \u0026amqp.InstanceArgs{\n\t\t\tInstanceName:        pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tInstanceType:        pulumi.String(\"enterprise\"),\n\t\t\tMaxTps:              pulumi.String(\"3000\"),\n\t\t\tMaxConnections:      pulumi.Int(2000),\n\t\t\tQueueCapacity:       pulumi.String(\"200\"),\n\t\t\tPaymentType:         pulumi.String(\"Subscription\"),\n\t\t\tRenewalStatus:       pulumi.String(\"AutoRenewal\"),\n\t\t\tRenewalDuration:     pulumi.Int(1),\n\t\t\tRenewalDurationUnit: pulumi.String(\"Year\"),\n\t\t\tSupportEip:          pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVirtualHost, err := amqp.NewVirtualHost(ctx, \"default\", \u0026amqp.VirtualHostArgs{\n\t\t\tInstanceId:      defaultInstance.ID(),\n\t\t\tVirtualHostName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = amqp.NewQueue(ctx, \"default\", \u0026amqp.QueueArgs{\n\t\t\tInstanceId:      defaultInstance.ID(),\n\t\t\tVirtualHostName: defaultVirtualHost.VirtualHostName,\n\t\t\tQueueName:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.amqp.Instance;\nimport com.pulumi.alicloud.amqp.InstanceArgs;\nimport com.pulumi.alicloud.amqp.VirtualHost;\nimport com.pulumi.alicloud.amqp.VirtualHostArgs;\nimport com.pulumi.alicloud.amqp.Queue;\nimport com.pulumi.alicloud.amqp.QueueArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .instanceName(String.format(\"%s-%s\", name,default_.result()))\n            .instanceType(\"enterprise\")\n            .maxTps(\"3000\")\n            .maxConnections(2000)\n            .queueCapacity(\"200\")\n            .paymentType(\"Subscription\")\n            .renewalStatus(\"AutoRenewal\")\n            .renewalDuration(1)\n            .renewalDurationUnit(\"Year\")\n            .supportEip(true)\n            .build());\n\n        var defaultVirtualHost = new VirtualHost(\"defaultVirtualHost\", VirtualHostArgs.builder()\n            .instanceId(defaultInstance.id())\n            .virtualHostName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultQueue = new Queue(\"defaultQueue\", QueueArgs.builder()\n            .instanceId(defaultInstance.id())\n            .virtualHostName(defaultVirtualHost.virtualHostName())\n            .queueName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultInstance:\n    type: alicloud:amqp:Instance\n    name: default\n    properties:\n      instanceName: ${name}-${default.result}\n      instanceType: enterprise\n      maxTps: 3000\n      maxConnections: 2000\n      queueCapacity: 200\n      paymentType: Subscription\n      renewalStatus: AutoRenewal\n      renewalDuration: 1\n      renewalDurationUnit: Year\n      supportEip: true\n  defaultVirtualHost:\n    type: alicloud:amqp:VirtualHost\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      virtualHostName: ${name}-${default.result}\n  defaultQueue:\n    type: alicloud:amqp:Queue\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      virtualHostName: ${defaultVirtualHost.virtualHostName}\n      queueName: ${name}-${default.result}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRabbitMQ (AMQP) Queue can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:amqp/queue:Queue example \u003cinstance_id\u003e:\u003cvirtual_host_name\u003e:\u003cqueue_name\u003e\n```\n\n","properties":{"autoDeleteState":{"type":"boolean","description":"Specifies whether to automatically delete the queue. Valid values:\n"},"autoExpireState":{"type":"string","description":"The auto-expiration time for the queue.\n"},"deadLetterExchange":{"type":"string","description":"The dead-letter exchange.\n"},"deadLetterRoutingKey":{"type":"string","description":"The dead-letter routing key.\n"},"instanceId":{"type":"string","description":"The ID of the ApsaraMQ for RabbitMQ instance to which the queue belongs.\n"},"maxLength":{"type":"string","description":"The maximum number of messages that can be stored in the queue.\n"},"maximumPriority":{"type":"integer","description":"The priority of the queue.\n"},"messageTtl":{"type":"string","description":"The time to live (TTL) of a message in the queue.\n"},"queueName":{"type":"string","description":"The name of the queue to create.\n"},"virtualHostName":{"type":"string","description":"The name of the vhost to which the queue belongs. The name can contain only letters, digits, hyphens (-), underscores (_), periods (.), number signs (#), forward slashes (/), and at signs (@). The name must be 1 to 255 characters in length.\n"}},"required":["instanceId","queueName","virtualHostName"],"inputProperties":{"autoDeleteState":{"type":"boolean","description":"Specifies whether to automatically delete the queue. Valid values:\n","willReplaceOnChanges":true},"autoExpireState":{"type":"string","description":"The auto-expiration time for the queue.\n"},"deadLetterExchange":{"type":"string","description":"The dead-letter exchange.\n"},"deadLetterRoutingKey":{"type":"string","description":"The dead-letter routing key.\n"},"instanceId":{"type":"string","description":"The ID of the ApsaraMQ for RabbitMQ instance to which the queue belongs.\n","willReplaceOnChanges":true},"maxLength":{"type":"string","description":"The maximum number of messages that can be stored in the queue.\n"},"maximumPriority":{"type":"integer","description":"The priority of the queue.\n"},"messageTtl":{"type":"string","description":"The time to live (TTL) of a message in the queue.\n"},"queueName":{"type":"string","description":"The name of the queue to create.\n","willReplaceOnChanges":true},"virtualHostName":{"type":"string","description":"The name of the vhost to which the queue belongs. The name can contain only letters, digits, hyphens (-), underscores (_), periods (.), number signs (#), forward slashes (/), and at signs (@). The name must be 1 to 255 characters in length.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId","queueName","virtualHostName"],"stateInputs":{"description":"Input properties used for looking up and filtering Queue resources.\n","properties":{"autoDeleteState":{"type":"boolean","description":"Specifies whether to automatically delete the queue. Valid values:\n","willReplaceOnChanges":true},"autoExpireState":{"type":"string","description":"The auto-expiration time for the queue.\n"},"deadLetterExchange":{"type":"string","description":"The dead-letter exchange.\n"},"deadLetterRoutingKey":{"type":"string","description":"The dead-letter routing key.\n"},"instanceId":{"type":"string","description":"The ID of the ApsaraMQ for RabbitMQ instance to which the queue belongs.\n","willReplaceOnChanges":true},"maxLength":{"type":"string","description":"The maximum number of messages that can be stored in the queue.\n"},"maximumPriority":{"type":"integer","description":"The priority of the queue.\n"},"messageTtl":{"type":"string","description":"The time to live (TTL) of a message in the queue.\n"},"queueName":{"type":"string","description":"The name of the queue to create.\n","willReplaceOnChanges":true},"virtualHostName":{"type":"string","description":"The name of the vhost to which the queue belongs. The name can contain only letters, digits, hyphens (-), underscores (_), periods (.), number signs (#), forward slashes (/), and at signs (@). The name must be 1 to 255 characters in length.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:amqp/staticAccount:StaticAccount":{"description":"Provides a Amqp Static Account resource.\n\nFor information about Amqp Static Account and how to use it, see [What is Static Account](https://www.alibabacloud.com/help/en/message-queue-for-rabbitmq/latest/create-a-pair-of-static-username-and-password).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst accessKey = config.get(\"accessKey\") || \"access_key\";\nconst secretKey = config.get(\"secretKey\") || \"secret_key\";\nconst _default = new alicloud.amqp.Instance(\"default\", {\n    instanceType: \"enterprise\",\n    maxTps: \"3000\",\n    queueCapacity: \"200\",\n    storageSize: \"700\",\n    supportEip: false,\n    maxEipTps: \"128\",\n    paymentType: \"Subscription\",\n    period: 1,\n});\nconst defaultStaticAccount = new alicloud.amqp.StaticAccount(\"default\", {\n    instanceId: _default.id,\n    accessKey: accessKey,\n    secretKey: secretKey,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\naccess_key = config.get(\"accessKey\")\nif access_key is None:\n    access_key = \"access_key\"\nsecret_key = config.get(\"secretKey\")\nif secret_key is None:\n    secret_key = \"secret_key\"\ndefault = alicloud.amqp.Instance(\"default\",\n    instance_type=\"enterprise\",\n    max_tps=\"3000\",\n    queue_capacity=\"200\",\n    storage_size=\"700\",\n    support_eip=False,\n    max_eip_tps=\"128\",\n    payment_type=\"Subscription\",\n    period=1)\ndefault_static_account = alicloud.amqp.StaticAccount(\"default\",\n    instance_id=default.id,\n    access_key=access_key,\n    secret_key=secret_key)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var accessKey = config.Get(\"accessKey\") ?? \"access_key\";\n    var secretKey = config.Get(\"secretKey\") ?? \"secret_key\";\n    var @default = new AliCloud.Amqp.Instance(\"default\", new()\n    {\n        InstanceType = \"enterprise\",\n        MaxTps = \"3000\",\n        QueueCapacity = \"200\",\n        StorageSize = \"700\",\n        SupportEip = false,\n        MaxEipTps = \"128\",\n        PaymentType = \"Subscription\",\n        Period = 1,\n    });\n\n    var defaultStaticAccount = new AliCloud.Amqp.StaticAccount(\"default\", new()\n    {\n        InstanceId = @default.Id,\n        AccessKey = accessKey,\n        SecretKey = secretKey,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/amqp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\taccessKey := \"access_key\"\n\t\tif param := cfg.Get(\"accessKey\"); param != \"\" {\n\t\t\taccessKey = param\n\t\t}\n\t\tsecretKey := \"secret_key\"\n\t\tif param := cfg.Get(\"secretKey\"); param != \"\" {\n\t\t\tsecretKey = param\n\t\t}\n\t\t_default, err := amqp.NewInstance(ctx, \"default\", \u0026amqp.InstanceArgs{\n\t\t\tInstanceType:  pulumi.String(\"enterprise\"),\n\t\t\tMaxTps:        pulumi.String(\"3000\"),\n\t\t\tQueueCapacity: pulumi.String(\"200\"),\n\t\t\tStorageSize:   pulumi.String(\"700\"),\n\t\t\tSupportEip:    pulumi.Bool(false),\n\t\t\tMaxEipTps:     pulumi.String(\"128\"),\n\t\t\tPaymentType:   pulumi.String(\"Subscription\"),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = amqp.NewStaticAccount(ctx, \"default\", \u0026amqp.StaticAccountArgs{\n\t\t\tInstanceId: _default.ID(),\n\t\t\tAccessKey:  pulumi.String(accessKey),\n\t\t\tSecretKey:  pulumi.String(secretKey),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.amqp.Instance;\nimport com.pulumi.alicloud.amqp.InstanceArgs;\nimport com.pulumi.alicloud.amqp.StaticAccount;\nimport com.pulumi.alicloud.amqp.StaticAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var accessKey = config.get(\"accessKey\").orElse(\"access_key\");\n        final var secretKey = config.get(\"secretKey\").orElse(\"secret_key\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .instanceType(\"enterprise\")\n            .maxTps(\"3000\")\n            .queueCapacity(\"200\")\n            .storageSize(\"700\")\n            .supportEip(false)\n            .maxEipTps(\"128\")\n            .paymentType(\"Subscription\")\n            .period(1)\n            .build());\n\n        var defaultStaticAccount = new StaticAccount(\"defaultStaticAccount\", StaticAccountArgs.builder()\n            .instanceId(default_.id())\n            .accessKey(accessKey)\n            .secretKey(secretKey)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  accessKey:\n    type: string\n    default: access_key\n  secretKey:\n    type: string\n    default: secret_key\nresources:\n  default:\n    type: alicloud:amqp:Instance\n    properties:\n      instanceType: enterprise\n      maxTps: 3000\n      queueCapacity: 200\n      storageSize: 700\n      supportEip: false\n      maxEipTps: 128\n      paymentType: Subscription\n      period: 1\n  defaultStaticAccount:\n    type: alicloud:amqp:StaticAccount\n    name: default\n    properties:\n      instanceId: ${default.id}\n      accessKey: ${accessKey}\n      secretKey: ${secretKey}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAmqp Static Account can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_amqp_static_account.example \u003cinstance_id\u003e:\u003caccess_key\u003e\n```\n\n","properties":{"accessKey":{"type":"string","description":"Access key.\n"},"createTime":{"type":"integer","description":"The timestamp that indicates when the pair of static username and password was created.\n"},"instanceId":{"type":"string","description":"Amqp instance ID.\n"},"masterUid":{"type":"string","description":"The ID of the user's primary account.\n"},"password":{"type":"string","description":"The static password.\n"},"secretKey":{"type":"string","description":"Secret key.\n","secret":true},"userName":{"type":"string","description":"The static username.\n"}},"required":["accessKey","createTime","instanceId","masterUid","password","secretKey","userName"],"inputProperties":{"accessKey":{"type":"string","description":"Access key.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"Amqp instance ID.\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"Secret key.\n","secret":true,"willReplaceOnChanges":true}},"requiredInputs":["accessKey","instanceId","secretKey"],"stateInputs":{"description":"Input properties used for looking up and filtering StaticAccount resources.\n","properties":{"accessKey":{"type":"string","description":"Access key.\n","willReplaceOnChanges":true},"createTime":{"type":"integer","description":"The timestamp that indicates when the pair of static username and password was created.\n"},"instanceId":{"type":"string","description":"Amqp instance ID.\n","willReplaceOnChanges":true},"masterUid":{"type":"string","description":"The ID of the user's primary account.\n"},"password":{"type":"string","description":"The static password.\n"},"secretKey":{"type":"string","description":"Secret key.\n","secret":true,"willReplaceOnChanges":true},"userName":{"type":"string","description":"The static username.\n"}},"type":"object"}},"alicloud:amqp/virtualHost:VirtualHost":{"description":"Amqp Virtual Host.\n\nProvides a RabbitMQ (AMQP) Virtual Host resource.\n\nFor information about RabbitMQ (AMQP) Virtual Host and how to use it, see [What is Virtual Host](https://www.alibabacloud.com/help/en/message-queue-for-rabbitmq/latest/createvirtualhost).\n\n\u003e **NOTE:** Available since v1.126.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultInstance = new alicloud.amqp.Instance(\"default\", {\n    instanceName: `${name}-${_default.result}`,\n    instanceType: \"enterprise\",\n    maxTps: \"3000\",\n    maxConnections: 2000,\n    queueCapacity: \"200\",\n    paymentType: \"Subscription\",\n    renewalStatus: \"AutoRenewal\",\n    renewalDuration: 1,\n    renewalDurationUnit: \"Year\",\n    supportEip: true,\n});\nconst defaultVirtualHost = new alicloud.amqp.VirtualHost(\"default\", {\n    instanceId: defaultInstance.id,\n    virtualHostName: `${name}-${_default.result}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_instance = alicloud.amqp.Instance(\"default\",\n    instance_name=f\"{name}-{default['result']}\",\n    instance_type=\"enterprise\",\n    max_tps=\"3000\",\n    max_connections=2000,\n    queue_capacity=\"200\",\n    payment_type=\"Subscription\",\n    renewal_status=\"AutoRenewal\",\n    renewal_duration=1,\n    renewal_duration_unit=\"Year\",\n    support_eip=True)\ndefault_virtual_host = alicloud.amqp.VirtualHost(\"default\",\n    instance_id=default_instance.id,\n    virtual_host_name=f\"{name}-{default['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultInstance = new AliCloud.Amqp.Instance(\"default\", new()\n    {\n        InstanceName = $\"{name}-{@default.Result}\",\n        InstanceType = \"enterprise\",\n        MaxTps = \"3000\",\n        MaxConnections = 2000,\n        QueueCapacity = \"200\",\n        PaymentType = \"Subscription\",\n        RenewalStatus = \"AutoRenewal\",\n        RenewalDuration = 1,\n        RenewalDurationUnit = \"Year\",\n        SupportEip = true,\n    });\n\n    var defaultVirtualHost = new AliCloud.Amqp.VirtualHost(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        VirtualHostName = $\"{name}-{@default.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/amqp\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := amqp.NewInstance(ctx, \"default\", \u0026amqp.InstanceArgs{\n\t\t\tInstanceName:        pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tInstanceType:        pulumi.String(\"enterprise\"),\n\t\t\tMaxTps:              pulumi.String(\"3000\"),\n\t\t\tMaxConnections:      pulumi.Int(2000),\n\t\t\tQueueCapacity:       pulumi.String(\"200\"),\n\t\t\tPaymentType:         pulumi.String(\"Subscription\"),\n\t\t\tRenewalStatus:       pulumi.String(\"AutoRenewal\"),\n\t\t\tRenewalDuration:     pulumi.Int(1),\n\t\t\tRenewalDurationUnit: pulumi.String(\"Year\"),\n\t\t\tSupportEip:          pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = amqp.NewVirtualHost(ctx, \"default\", \u0026amqp.VirtualHostArgs{\n\t\t\tInstanceId:      defaultInstance.ID(),\n\t\t\tVirtualHostName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.amqp.Instance;\nimport com.pulumi.alicloud.amqp.InstanceArgs;\nimport com.pulumi.alicloud.amqp.VirtualHost;\nimport com.pulumi.alicloud.amqp.VirtualHostArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .instanceName(String.format(\"%s-%s\", name,default_.result()))\n            .instanceType(\"enterprise\")\n            .maxTps(\"3000\")\n            .maxConnections(2000)\n            .queueCapacity(\"200\")\n            .paymentType(\"Subscription\")\n            .renewalStatus(\"AutoRenewal\")\n            .renewalDuration(1)\n            .renewalDurationUnit(\"Year\")\n            .supportEip(true)\n            .build());\n\n        var defaultVirtualHost = new VirtualHost(\"defaultVirtualHost\", VirtualHostArgs.builder()\n            .instanceId(defaultInstance.id())\n            .virtualHostName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultInstance:\n    type: alicloud:amqp:Instance\n    name: default\n    properties:\n      instanceName: ${name}-${default.result}\n      instanceType: enterprise\n      maxTps: 3000\n      maxConnections: 2000\n      queueCapacity: 200\n      paymentType: Subscription\n      renewalStatus: AutoRenewal\n      renewalDuration: 1\n      renewalDurationUnit: Year\n      supportEip: true\n  defaultVirtualHost:\n    type: alicloud:amqp:VirtualHost\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      virtualHostName: ${name}-${default.result}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRabbitMQ (AMQP) Virtual Host can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:amqp/virtualHost:VirtualHost example \u003cinstance_id\u003e:\u003cvirtual_host_name\u003e\n```\n\n","properties":{"instanceId":{"type":"string","description":"InstanceId.\n"},"virtualHostName":{"type":"string","description":"VirtualHostName.\n"}},"required":["instanceId","virtualHostName"],"inputProperties":{"instanceId":{"type":"string","description":"InstanceId.\n","willReplaceOnChanges":true},"virtualHostName":{"type":"string","description":"VirtualHostName.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId","virtualHostName"],"stateInputs":{"description":"Input properties used for looking up and filtering VirtualHost resources.\n","properties":{"instanceId":{"type":"string","description":"InstanceId.\n","willReplaceOnChanges":true},"virtualHostName":{"type":"string","description":"VirtualHostName.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:apig/environment:Environment":{"description":"Provides a APIG Environment resource.\n\n\n\nFor information about APIG Environment and how to use it, see [What is Environment](https://next.api.aliyun.com/api/APIG/2024-03-27/CreateEnvironment).\n\n\u003e **NOTE:** Available since v1.240.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = defaultGetNetworks.then(defaultGetNetworks =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n}));\nconst defaultgateway = new alicloud.apig.Gateway(\"defaultgateway\", {\n    networkAccessConfig: {\n        type: \"Intranet\",\n    },\n    vswitch: {\n        vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    },\n    zoneConfig: {\n        selectOption: \"Auto\",\n    },\n    vpc: {\n        vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    },\n    paymentType: \"PayAsYouGo\",\n    gatewayName: std.format({\n        input: \"%s2\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    spec: \"apigw.small.x1\",\n    logConfig: {\n        sls: {},\n    },\n});\nconst defaultEnvironment = new alicloud.apig.Environment(\"default\", {\n    description: name,\n    environmentName: name,\n    gatewayId: defaultgateway.id,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[1]),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0])\ndefaultgateway = alicloud.apig.Gateway(\"defaultgateway\",\n    network_access_config={\n        \"type\": \"Intranet\",\n    },\n    vswitch={\n        \"vswitch_id\": default_get_switches.ids[0],\n    },\n    zone_config={\n        \"select_option\": \"Auto\",\n    },\n    vpc={\n        \"vpc_id\": default_get_networks.ids[0],\n    },\n    payment_type=\"PayAsYouGo\",\n    gateway_name=std.format(input=\"%s2\",\n        args=[name]).result,\n    spec=\"apigw.small.x1\",\n    log_config={\n        \"sls\": {},\n    })\ndefault_environment = alicloud.apig.Environment(\"default\",\n    description=name,\n    environment_name=name,\n    gateway_id=defaultgateway.id,\n    resource_group_id=default.ids[1])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultgateway = new AliCloud.Apig.Gateway(\"defaultgateway\", new()\n    {\n        NetworkAccessConfig = new AliCloud.Apig.Inputs.GatewayNetworkAccessConfigArgs\n        {\n            Type = \"Intranet\",\n        },\n        Vswitch = new AliCloud.Apig.Inputs.GatewayVswitchArgs\n        {\n            VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        },\n        ZoneConfig = new AliCloud.Apig.Inputs.GatewayZoneConfigArgs\n        {\n            SelectOption = \"Auto\",\n        },\n        Vpc = new AliCloud.Apig.Inputs.GatewayVpcArgs\n        {\n            VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        },\n        PaymentType = \"PayAsYouGo\",\n        GatewayName = Std.Format.Invoke(new()\n        {\n            Input = \"%s2\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        Spec = \"apigw.small.x1\",\n        LogConfig = new AliCloud.Apig.Inputs.GatewayLogConfigArgs\n        {\n            Sls = null,\n        },\n    });\n\n    var defaultEnvironment = new AliCloud.Apig.Environment(\"default\", new()\n    {\n        Description = name,\n        EnvironmentName = name,\n        GatewayId = defaultgateway.Id,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[1])),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apig\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId: pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s2\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultgateway, err := apig.NewGateway(ctx, \"defaultgateway\", \u0026apig.GatewayArgs{\n\t\t\tNetworkAccessConfig: \u0026apig.GatewayNetworkAccessConfigArgs{\n\t\t\t\tType: pulumi.String(\"Intranet\"),\n\t\t\t},\n\t\t\tVswitch: \u0026apig.GatewayVswitchArgs{\n\t\t\t\tVswitchId: pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\t},\n\t\t\tZoneConfig: \u0026apig.GatewayZoneConfigArgs{\n\t\t\t\tSelectOption: pulumi.String(\"Auto\"),\n\t\t\t},\n\t\t\tVpc: \u0026apig.GatewayVpcArgs{\n\t\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\t},\n\t\t\tPaymentType: pulumi.String(\"PayAsYouGo\"),\n\t\t\tGatewayName: pulumi.String(invokeFormat.Result),\n\t\t\tSpec:        pulumi.String(\"apigw.small.x1\"),\n\t\t\tLogConfig: \u0026apig.GatewayLogConfigArgs{\n\t\t\t\tSls: \u0026apig.GatewayLogConfigSlsArgs{},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apig.NewEnvironment(ctx, \"default\", \u0026apig.EnvironmentArgs{\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tEnvironmentName: pulumi.String(name),\n\t\t\tGatewayId:       defaultgateway.ID(),\n\t\t\tResourceGroupId: pulumi.String(_default.Ids[1]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.apig.Gateway;\nimport com.pulumi.alicloud.apig.GatewayArgs;\nimport com.pulumi.alicloud.apig.inputs.GatewayNetworkAccessConfigArgs;\nimport com.pulumi.alicloud.apig.inputs.GatewayVswitchArgs;\nimport com.pulumi.alicloud.apig.inputs.GatewayZoneConfigArgs;\nimport com.pulumi.alicloud.apig.inputs.GatewayVpcArgs;\nimport com.pulumi.alicloud.apig.inputs.GatewayLogConfigArgs;\nimport com.pulumi.alicloud.apig.inputs.GatewayLogConfigSlsArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.apig.Environment;\nimport com.pulumi.alicloud.apig.EnvironmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultgateway = new Gateway(\"defaultgateway\", GatewayArgs.builder()\n            .networkAccessConfig(GatewayNetworkAccessConfigArgs.builder()\n                .type(\"Intranet\")\n                .build())\n            .vswitch(GatewayVswitchArgs.builder()\n                .vswitchId(defaultGetSwitches.ids()[0])\n                .build())\n            .zoneConfig(GatewayZoneConfigArgs.builder()\n                .selectOption(\"Auto\")\n                .build())\n            .vpc(GatewayVpcArgs.builder()\n                .vpcId(defaultGetNetworks.ids()[0])\n                .build())\n            .paymentType(\"PayAsYouGo\")\n            .gatewayName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s2\")\n                .args(name)\n                .build()).result())\n            .spec(\"apigw.small.x1\")\n            .logConfig(GatewayLogConfigArgs.builder()\n                .sls(GatewayLogConfigSlsArgs.builder()\n                    .build())\n                .build())\n            .build());\n\n        var defaultEnvironment = new Environment(\"defaultEnvironment\", EnvironmentArgs.builder()\n            .description(name)\n            .environmentName(name)\n            .gatewayId(defaultgateway.id())\n            .resourceGroupId(default_.ids()[1])\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultgateway:\n    type: alicloud:apig:Gateway\n    properties:\n      networkAccessConfig:\n        type: Intranet\n      vswitch:\n        vswitchId: ${defaultGetSwitches.ids[0]}\n      zoneConfig:\n        selectOption: Auto\n      vpc:\n        vpcId: ${defaultGetNetworks.ids[0]}\n      paymentType: PayAsYouGo\n      gatewayName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s2'\n            args:\n              - ${name}\n          return: result\n      spec: apigw.small.x1\n      logConfig:\n        sls: {}\n  defaultEnvironment:\n    type: alicloud:apig:Environment\n    name: default\n    properties:\n      description: ${name}\n      environmentName: ${name}\n      gatewayId: ${defaultgateway.id}\n      resourceGroupId: ${default.ids[1]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAPIG Environment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:apig/environment:Environment example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"Description\n"},"environmentName":{"type":"string","description":"The name of the resource\n"},"gatewayId":{"type":"string","description":"Gateway id\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"}},"required":["environmentName","gatewayId","resourceGroupId"],"inputProperties":{"description":{"type":"string","description":"Description\n"},"environmentName":{"type":"string","description":"The name of the resource\n","willReplaceOnChanges":true},"gatewayId":{"type":"string","description":"Gateway id\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"}},"requiredInputs":["environmentName","gatewayId"],"stateInputs":{"description":"Input properties used for looking up and filtering Environment resources.\n","properties":{"description":{"type":"string","description":"Description\n"},"environmentName":{"type":"string","description":"The name of the resource\n","willReplaceOnChanges":true},"gatewayId":{"type":"string","description":"Gateway id\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"}},"type":"object"}},"alicloud:apig/gateway:Gateway":{"description":"Provides a APIG Gateway resource.\n\n\n\nFor information about APIG Gateway and how to use it, see [What is Gateway](https://www.alibabacloud.com/help/en/).\n\n\u003e **NOTE:** Available since v1.240.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = defaultGetNetworks.then(defaultGetNetworks =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n}));\nconst defaultGateway = new alicloud.apig.Gateway(\"default\", {\n    networkAccessConfig: {\n        type: \"Intranet\",\n    },\n    logConfig: {\n        sls: {\n            enable: false,\n        },\n    },\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[1]),\n    spec: \"apigw.small.x1\",\n    vpc: {\n        vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    },\n    zoneConfig: {\n        selectOption: \"Auto\",\n    },\n    vswitch: {\n        vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    },\n    paymentType: \"PayAsYouGo\",\n    gatewayName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0])\ndefault_gateway = alicloud.apig.Gateway(\"default\",\n    network_access_config={\n        \"type\": \"Intranet\",\n    },\n    log_config={\n        \"sls\": {\n            \"enable\": False,\n        },\n    },\n    resource_group_id=default.ids[1],\n    spec=\"apigw.small.x1\",\n    vpc={\n        \"vpc_id\": default_get_networks.ids[0],\n    },\n    zone_config={\n        \"select_option\": \"Auto\",\n    },\n    vswitch={\n        \"vswitch_id\": default_get_switches.ids[0],\n    },\n    payment_type=\"PayAsYouGo\",\n    gateway_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultGateway = new AliCloud.Apig.Gateway(\"default\", new()\n    {\n        NetworkAccessConfig = new AliCloud.Apig.Inputs.GatewayNetworkAccessConfigArgs\n        {\n            Type = \"Intranet\",\n        },\n        LogConfig = new AliCloud.Apig.Inputs.GatewayLogConfigArgs\n        {\n            Sls = new AliCloud.Apig.Inputs.GatewayLogConfigSlsArgs\n            {\n                Enable = false,\n            },\n        },\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[1])),\n        Spec = \"apigw.small.x1\",\n        Vpc = new AliCloud.Apig.Inputs.GatewayVpcArgs\n        {\n            VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        },\n        ZoneConfig = new AliCloud.Apig.Inputs.GatewayZoneConfigArgs\n        {\n            SelectOption = \"Auto\",\n        },\n        Vswitch = new AliCloud.Apig.Inputs.GatewayVswitchArgs\n        {\n            VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        },\n        PaymentType = \"PayAsYouGo\",\n        GatewayName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apig\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId: pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apig.NewGateway(ctx, \"default\", \u0026apig.GatewayArgs{\n\t\t\tNetworkAccessConfig: \u0026apig.GatewayNetworkAccessConfigArgs{\n\t\t\t\tType: pulumi.String(\"Intranet\"),\n\t\t\t},\n\t\t\tLogConfig: \u0026apig.GatewayLogConfigArgs{\n\t\t\t\tSls: \u0026apig.GatewayLogConfigSlsArgs{\n\t\t\t\t\tEnable: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupId: pulumi.String(_default.Ids[1]),\n\t\t\tSpec:            pulumi.String(\"apigw.small.x1\"),\n\t\t\tVpc: \u0026apig.GatewayVpcArgs{\n\t\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\t},\n\t\t\tZoneConfig: \u0026apig.GatewayZoneConfigArgs{\n\t\t\t\tSelectOption: pulumi.String(\"Auto\"),\n\t\t\t},\n\t\t\tVswitch: \u0026apig.GatewayVswitchArgs{\n\t\t\t\tVswitchId: pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\t},\n\t\t\tPaymentType: pulumi.String(\"PayAsYouGo\"),\n\t\t\tGatewayName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.apig.Gateway;\nimport com.pulumi.alicloud.apig.GatewayArgs;\nimport com.pulumi.alicloud.apig.inputs.GatewayNetworkAccessConfigArgs;\nimport com.pulumi.alicloud.apig.inputs.GatewayLogConfigArgs;\nimport com.pulumi.alicloud.apig.inputs.GatewayLogConfigSlsArgs;\nimport com.pulumi.alicloud.apig.inputs.GatewayVpcArgs;\nimport com.pulumi.alicloud.apig.inputs.GatewayZoneConfigArgs;\nimport com.pulumi.alicloud.apig.inputs.GatewayVswitchArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultGateway = new Gateway(\"defaultGateway\", GatewayArgs.builder()\n            .networkAccessConfig(GatewayNetworkAccessConfigArgs.builder()\n                .type(\"Intranet\")\n                .build())\n            .logConfig(GatewayLogConfigArgs.builder()\n                .sls(GatewayLogConfigSlsArgs.builder()\n                    .enable(false)\n                    .build())\n                .build())\n            .resourceGroupId(default_.ids()[1])\n            .spec(\"apigw.small.x1\")\n            .vpc(GatewayVpcArgs.builder()\n                .vpcId(defaultGetNetworks.ids()[0])\n                .build())\n            .zoneConfig(GatewayZoneConfigArgs.builder()\n                .selectOption(\"Auto\")\n                .build())\n            .vswitch(GatewayVswitchArgs.builder()\n                .vswitchId(defaultGetSwitches.ids()[0])\n                .build())\n            .paymentType(\"PayAsYouGo\")\n            .gatewayName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultGateway:\n    type: alicloud:apig:Gateway\n    name: default\n    properties:\n      networkAccessConfig:\n        type: Intranet\n      logConfig:\n        sls:\n          enable: 'false'\n      resourceGroupId: ${default.ids[1]}\n      spec: apigw.small.x1\n      vpc:\n        vpcId: ${defaultGetNetworks.ids[0]}\n      zoneConfig:\n        selectOption: Auto\n      vswitch:\n        vswitchId: ${defaultGetSwitches.ids[0]}\n      paymentType: PayAsYouGo\n      gatewayName: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.apig.Gateway`\" pulumi-lang-dotnet=\"`alicloud.apig.Gateway`\" pulumi-lang-go=\"`apig.Gateway`\" pulumi-lang-python=\"`apig.Gateway`\" pulumi-lang-yaml=\"`alicloud.apig.Gateway`\" pulumi-lang-java=\"`alicloud.apig.Gateway`\"\u003e`alicloud.apig.Gateway`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.apig.Gateway`\" pulumi-lang-dotnet=\"`alicloud.apig.Gateway`\" pulumi-lang-go=\"`apig.Gateway`\" pulumi-lang-python=\"`apig.Gateway`\" pulumi-lang-yaml=\"`alicloud.apig.Gateway`\" pulumi-lang-java=\"`alicloud.apig.Gateway`\"\u003e`alicloud.apig.Gateway`\u003c/span\u003e resource allows you to manage  \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"Subscription\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAPIG Gateway can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:apig/gateway:Gateway example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"integer","description":"The creation timestamp. Unit: milliseconds.\n"},"gatewayName":{"type":"string","description":"The name of the resource\n"},"gatewayType":{"type":"string","description":"Describes the gateway type, which is categorized into the following two types:\n- API: indicates an API gateway\n- AI: Indicates an AI gateway\n"},"logConfig":{"$ref":"#/types/alicloud:apig/GatewayLogConfig:GatewayLogConfig","description":"Log Configuration See \u003cspan pulumi-lang-nodejs=\"`logConfig`\" pulumi-lang-dotnet=\"`LogConfig`\" pulumi-lang-go=\"`logConfig`\" pulumi-lang-python=\"`log_config`\" pulumi-lang-yaml=\"`logConfig`\" pulumi-lang-java=\"`logConfig`\"\u003e`log_config`\u003c/span\u003e below.\n"},"networkAccessConfig":{"$ref":"#/types/alicloud:apig/GatewayNetworkAccessConfig:GatewayNetworkAccessConfig","description":"Network Access Configuration See \u003cspan pulumi-lang-nodejs=\"`networkAccessConfig`\" pulumi-lang-dotnet=\"`NetworkAccessConfig`\" pulumi-lang-go=\"`networkAccessConfig`\" pulumi-lang-python=\"`network_access_config`\" pulumi-lang-yaml=\"`networkAccessConfig`\" pulumi-lang-java=\"`networkAccessConfig`\"\u003e`network_access_config`\u003c/span\u003e below.\n"},"paymentType":{"type":"string","description":"The payment type of the resource\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"spec":{"type":"string","description":"Gateway instance specifications\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"vpc":{"$ref":"#/types/alicloud:apig/GatewayVpc:GatewayVpc","description":"The VPC associated with the Gateway. See \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e below.\n"},"vswitch":{"$ref":"#/types/alicloud:apig/GatewayVswitch:GatewayVswitch","description":"The virtual switch associated with the Gateway. See \u003cspan pulumi-lang-nodejs=\"`vswitch`\" pulumi-lang-dotnet=\"`Vswitch`\" pulumi-lang-go=\"`vswitch`\" pulumi-lang-python=\"`vswitch`\" pulumi-lang-yaml=\"`vswitch`\" pulumi-lang-java=\"`vswitch`\"\u003e`vswitch`\u003c/span\u003e below.\n"},"zoneConfig":{"$ref":"#/types/alicloud:apig/GatewayZoneConfig:GatewayZoneConfig","description":"Availability Zone Configuration See \u003cspan pulumi-lang-nodejs=\"`zoneConfig`\" pulumi-lang-dotnet=\"`ZoneConfig`\" pulumi-lang-go=\"`zoneConfig`\" pulumi-lang-python=\"`zone_config`\" pulumi-lang-yaml=\"`zoneConfig`\" pulumi-lang-java=\"`zoneConfig`\"\u003e`zone_config`\u003c/span\u003e below.\n"},"zones":{"type":"array","items":{"$ref":"#/types/alicloud:apig/GatewayZone:GatewayZone"},"description":"The List of zones associated with the Gateway. See \u003cspan pulumi-lang-nodejs=\"`zones`\" pulumi-lang-dotnet=\"`Zones`\" pulumi-lang-go=\"`zones`\" pulumi-lang-python=\"`zones`\" pulumi-lang-yaml=\"`zones`\" pulumi-lang-java=\"`zones`\"\u003e`zones`\u003c/span\u003e below.\n"}},"required":["createTime","gatewayType","paymentType","resourceGroupId","status","zoneConfig","zones"],"inputProperties":{"gatewayName":{"type":"string","description":"The name of the resource\n"},"gatewayType":{"type":"string","description":"Describes the gateway type, which is categorized into the following two types:\n- API: indicates an API gateway\n- AI: Indicates an AI gateway\n","willReplaceOnChanges":true},"logConfig":{"$ref":"#/types/alicloud:apig/GatewayLogConfig:GatewayLogConfig","description":"Log Configuration See \u003cspan pulumi-lang-nodejs=\"`logConfig`\" pulumi-lang-dotnet=\"`LogConfig`\" pulumi-lang-go=\"`logConfig`\" pulumi-lang-python=\"`log_config`\" pulumi-lang-yaml=\"`logConfig`\" pulumi-lang-java=\"`logConfig`\"\u003e`log_config`\u003c/span\u003e below.\n"},"networkAccessConfig":{"$ref":"#/types/alicloud:apig/GatewayNetworkAccessConfig:GatewayNetworkAccessConfig","description":"Network Access Configuration See \u003cspan pulumi-lang-nodejs=\"`networkAccessConfig`\" pulumi-lang-dotnet=\"`NetworkAccessConfig`\" pulumi-lang-go=\"`networkAccessConfig`\" pulumi-lang-python=\"`network_access_config`\" pulumi-lang-yaml=\"`networkAccessConfig`\" pulumi-lang-java=\"`networkAccessConfig`\"\u003e`network_access_config`\u003c/span\u003e below.\n"},"paymentType":{"type":"string","description":"The payment type of the resource\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"spec":{"type":"string","description":"Gateway instance specifications\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"vpc":{"$ref":"#/types/alicloud:apig/GatewayVpc:GatewayVpc","description":"The VPC associated with the Gateway. See \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"vswitch":{"$ref":"#/types/alicloud:apig/GatewayVswitch:GatewayVswitch","description":"The virtual switch associated with the Gateway. See \u003cspan pulumi-lang-nodejs=\"`vswitch`\" pulumi-lang-dotnet=\"`Vswitch`\" pulumi-lang-go=\"`vswitch`\" pulumi-lang-python=\"`vswitch`\" pulumi-lang-yaml=\"`vswitch`\" pulumi-lang-java=\"`vswitch`\"\u003e`vswitch`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"zoneConfig":{"$ref":"#/types/alicloud:apig/GatewayZoneConfig:GatewayZoneConfig","description":"Availability Zone Configuration See \u003cspan pulumi-lang-nodejs=\"`zoneConfig`\" pulumi-lang-dotnet=\"`ZoneConfig`\" pulumi-lang-go=\"`zoneConfig`\" pulumi-lang-python=\"`zone_config`\" pulumi-lang-yaml=\"`zoneConfig`\" pulumi-lang-java=\"`zoneConfig`\"\u003e`zone_config`\u003c/span\u003e below.\n"},"zones":{"type":"array","items":{"$ref":"#/types/alicloud:apig/GatewayZone:GatewayZone"},"description":"The List of zones associated with the Gateway. See \u003cspan pulumi-lang-nodejs=\"`zones`\" pulumi-lang-dotnet=\"`Zones`\" pulumi-lang-go=\"`zones`\" pulumi-lang-python=\"`zones`\" pulumi-lang-yaml=\"`zones`\" pulumi-lang-java=\"`zones`\"\u003e`zones`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"requiredInputs":["paymentType","zoneConfig"],"stateInputs":{"description":"Input properties used for looking up and filtering Gateway resources.\n","properties":{"createTime":{"type":"integer","description":"The creation timestamp. Unit: milliseconds.\n"},"gatewayName":{"type":"string","description":"The name of the resource\n"},"gatewayType":{"type":"string","description":"Describes the gateway type, which is categorized into the following two types:\n- API: indicates an API gateway\n- AI: Indicates an AI gateway\n","willReplaceOnChanges":true},"logConfig":{"$ref":"#/types/alicloud:apig/GatewayLogConfig:GatewayLogConfig","description":"Log Configuration See \u003cspan pulumi-lang-nodejs=\"`logConfig`\" pulumi-lang-dotnet=\"`LogConfig`\" pulumi-lang-go=\"`logConfig`\" pulumi-lang-python=\"`log_config`\" pulumi-lang-yaml=\"`logConfig`\" pulumi-lang-java=\"`logConfig`\"\u003e`log_config`\u003c/span\u003e below.\n"},"networkAccessConfig":{"$ref":"#/types/alicloud:apig/GatewayNetworkAccessConfig:GatewayNetworkAccessConfig","description":"Network Access Configuration See \u003cspan pulumi-lang-nodejs=\"`networkAccessConfig`\" pulumi-lang-dotnet=\"`NetworkAccessConfig`\" pulumi-lang-go=\"`networkAccessConfig`\" pulumi-lang-python=\"`network_access_config`\" pulumi-lang-yaml=\"`networkAccessConfig`\" pulumi-lang-java=\"`networkAccessConfig`\"\u003e`network_access_config`\u003c/span\u003e below.\n"},"paymentType":{"type":"string","description":"The payment type of the resource\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"spec":{"type":"string","description":"Gateway instance specifications\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"vpc":{"$ref":"#/types/alicloud:apig/GatewayVpc:GatewayVpc","description":"The VPC associated with the Gateway. See \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"vswitch":{"$ref":"#/types/alicloud:apig/GatewayVswitch:GatewayVswitch","description":"The virtual switch associated with the Gateway. See \u003cspan pulumi-lang-nodejs=\"`vswitch`\" pulumi-lang-dotnet=\"`Vswitch`\" pulumi-lang-go=\"`vswitch`\" pulumi-lang-python=\"`vswitch`\" pulumi-lang-yaml=\"`vswitch`\" pulumi-lang-java=\"`vswitch`\"\u003e`vswitch`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"zoneConfig":{"$ref":"#/types/alicloud:apig/GatewayZoneConfig:GatewayZoneConfig","description":"Availability Zone Configuration See \u003cspan pulumi-lang-nodejs=\"`zoneConfig`\" pulumi-lang-dotnet=\"`ZoneConfig`\" pulumi-lang-go=\"`zoneConfig`\" pulumi-lang-python=\"`zone_config`\" pulumi-lang-yaml=\"`zoneConfig`\" pulumi-lang-java=\"`zoneConfig`\"\u003e`zone_config`\u003c/span\u003e below.\n"},"zones":{"type":"array","items":{"$ref":"#/types/alicloud:apig/GatewayZone:GatewayZone"},"description":"The List of zones associated with the Gateway. See \u003cspan pulumi-lang-nodejs=\"`zones`\" pulumi-lang-dotnet=\"`Zones`\" pulumi-lang-go=\"`zones`\" pulumi-lang-python=\"`zones`\" pulumi-lang-yaml=\"`zones`\" pulumi-lang-java=\"`zones`\"\u003e`zones`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:apig/httpApi:HttpApi":{"description":"Provides a APIG Http Api resource.\n\n\n\nFor information about APIG Http Api and how to use it, see [What is Http Api](https://next.api.aliyun.com/api/APIG/2024-03-27/CreateHttpApi).\n\n\u003e **NOTE:** Available since v1.240.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst protocol = config.get(\"protocol\") || \"HTTP\";\nconst protocolHttps = config.get(\"protocolHttps\") || \"HTTPS\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultHttpApi = new alicloud.apig.HttpApi(\"default\", {\n    httpApiName: name,\n    protocols: [protocol],\n    basePath: \"/v1\",\n    description: \"zhiwei_pop_examplecase\",\n    type: \"Rest\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nprotocol = config.get(\"protocol\")\nif protocol is None:\n    protocol = \"HTTP\"\nprotocol_https = config.get(\"protocolHttps\")\nif protocol_https is None:\n    protocol_https = \"HTTPS\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_http_api = alicloud.apig.HttpApi(\"default\",\n    http_api_name=name,\n    protocols=[protocol],\n    base_path=\"/v1\",\n    description=\"zhiwei_pop_examplecase\",\n    type=\"Rest\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var protocol = config.Get(\"protocol\") ?? \"HTTP\";\n    var protocolHttps = config.Get(\"protocolHttps\") ?? \"HTTPS\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultHttpApi = new AliCloud.Apig.HttpApi(\"default\", new()\n    {\n        HttpApiName = name,\n        Protocols = new[]\n        {\n            protocol,\n        },\n        BasePath = \"/v1\",\n        Description = \"zhiwei_pop_examplecase\",\n        Type = \"Rest\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apig\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tprotocol := \"HTTP\"\n\t\tif param := cfg.Get(\"protocol\"); param != \"\" {\n\t\t\tprotocol = param\n\t\t}\n\t\tprotocolHttps := \"HTTPS\"\n\t\tif param := cfg.Get(\"protocolHttps\"); param != \"\" {\n\t\t\tprotocolHttps = param\n\t\t}\n\t\t_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apig.NewHttpApi(ctx, \"default\", \u0026apig.HttpApiArgs{\n\t\t\tHttpApiName: pulumi.String(name),\n\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\tpulumi.String(protocol),\n\t\t\t},\n\t\t\tBasePath:    pulumi.String(\"/v1\"),\n\t\t\tDescription: pulumi.String(\"zhiwei_pop_examplecase\"),\n\t\t\tType:        pulumi.String(\"Rest\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.apig.HttpApi;\nimport com.pulumi.alicloud.apig.HttpApiArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var protocol = config.get(\"protocol\").orElse(\"HTTP\");\n        final var protocolHttps = config.get(\"protocolHttps\").orElse(\"HTTPS\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultHttpApi = new HttpApi(\"defaultHttpApi\", HttpApiArgs.builder()\n            .httpApiName(name)\n            .protocols(protocol)\n            .basePath(\"/v1\")\n            .description(\"zhiwei_pop_examplecase\")\n            .type(\"Rest\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  protocol:\n    type: string\n    default: HTTP\n  protocolHttps:\n    type: string\n    default: HTTPS\nresources:\n  defaultHttpApi:\n    type: alicloud:apig:HttpApi\n    name: default\n    properties:\n      httpApiName: ${name}\n      protocols:\n        - ${protocol}\n      basePath: /v1\n      description: zhiwei_pop_examplecase\n      type: Rest\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAPIG Http Api can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:apig/httpApi:HttpApi example \u003cid\u003e\n```\n\n","properties":{"basePath":{"type":"string","description":"API path\n"},"description":{"type":"string","description":"Description of API\n"},"httpApiName":{"type":"string","description":"The name of the resource\n"},"protocols":{"type":"array","items":{"type":"string"},"description":"API protocol\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"type":{"type":"string","description":"API type\n"}},"required":["httpApiName","protocols","resourceGroupId"],"inputProperties":{"basePath":{"type":"string","description":"API path\n"},"description":{"type":"string","description":"Description of API\n"},"httpApiName":{"type":"string","description":"The name of the resource\n","willReplaceOnChanges":true},"protocols":{"type":"array","items":{"type":"string"},"description":"API protocol\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"type":{"type":"string","description":"API type\n","willReplaceOnChanges":true}},"requiredInputs":["httpApiName","protocols"],"stateInputs":{"description":"Input properties used for looking up and filtering HttpApi resources.\n","properties":{"basePath":{"type":"string","description":"API path\n"},"description":{"type":"string","description":"Description of API\n"},"httpApiName":{"type":"string","description":"The name of the resource\n","willReplaceOnChanges":true},"protocols":{"type":"array","items":{"type":"string"},"description":"API protocol\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"type":{"type":"string","description":"API type\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:apigateway/accessControlList:AccessControlList":{"description":"Provides a Api Gateway Access Control List resource. Access control list.\n\nFor information about Api Gateway Access Control List and how to use it, see [What is Access Control List](https://www.alibabacloud.com/help/en/api-gateway/developer-reference/api-cloudapi-2016-07-14-createaccesscontrollist).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst defaultxywS8c = new alicloud.apigateway.Instance(\"defaultxywS8c\", {\n    instanceName: name,\n    instanceSpec: \"api.s1.small\",\n    httpsPolicy: \"HTTPS2_TLS1_0\",\n    zoneId: \"cn-hangzhou-MAZ6\",\n    paymentType: \"PayAsYouGo\",\n});\nconst _default = new alicloud.apigateway.AccessControlList(\"default\", {\n    accessControlListName: name,\n    addressIpVersion: \"ipv4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefaultxyw_s8c = alicloud.apigateway.Instance(\"defaultxywS8c\",\n    instance_name=name,\n    instance_spec=\"api.s1.small\",\n    https_policy=\"HTTPS2_TLS1_0\",\n    zone_id=\"cn-hangzhou-MAZ6\",\n    payment_type=\"PayAsYouGo\")\ndefault = alicloud.apigateway.AccessControlList(\"default\",\n    access_control_list_name=name,\n    address_ip_version=\"ipv4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var defaultxywS8c = new AliCloud.ApiGateway.Instance(\"defaultxywS8c\", new()\n    {\n        InstanceName = name,\n        InstanceSpec = \"api.s1.small\",\n        HttpsPolicy = \"HTTPS2_TLS1_0\",\n        ZoneId = \"cn-hangzhou-MAZ6\",\n        PaymentType = \"PayAsYouGo\",\n    });\n\n    var @default = new AliCloud.ApiGateway.AccessControlList(\"default\", new()\n    {\n        AccessControlListName = name,\n        AddressIpVersion = \"ipv4\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := apigateway.NewInstance(ctx, \"defaultxywS8c\", \u0026apigateway.InstanceArgs{\n\t\t\tInstanceName: pulumi.String(name),\n\t\t\tInstanceSpec: pulumi.String(\"api.s1.small\"),\n\t\t\tHttpsPolicy:  pulumi.String(\"HTTPS2_TLS1_0\"),\n\t\t\tZoneId:       pulumi.String(\"cn-hangzhou-MAZ6\"),\n\t\t\tPaymentType:  pulumi.String(\"PayAsYouGo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewAccessControlList(ctx, \"default\", \u0026apigateway.AccessControlListArgs{\n\t\t\tAccessControlListName: pulumi.String(name),\n\t\t\tAddressIpVersion:      pulumi.String(\"ipv4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.Instance;\nimport com.pulumi.alicloud.apigateway.InstanceArgs;\nimport com.pulumi.alicloud.apigateway.AccessControlList;\nimport com.pulumi.alicloud.apigateway.AccessControlListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var defaultxywS8c = new Instance(\"defaultxywS8c\", InstanceArgs.builder()\n            .instanceName(name)\n            .instanceSpec(\"api.s1.small\")\n            .httpsPolicy(\"HTTPS2_TLS1_0\")\n            .zoneId(\"cn-hangzhou-MAZ6\")\n            .paymentType(\"PayAsYouGo\")\n            .build());\n\n        var default_ = new AccessControlList(\"default\", AccessControlListArgs.builder()\n            .accessControlListName(name)\n            .addressIpVersion(\"ipv4\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  defaultxywS8c:\n    type: alicloud:apigateway:Instance\n    properties:\n      instanceName: ${name}\n      instanceSpec: api.s1.small\n      httpsPolicy: HTTPS2_TLS1_0\n      zoneId: cn-hangzhou-MAZ6\n      paymentType: PayAsYouGo\n  default:\n    type: alicloud:apigateway:AccessControlList\n    properties:\n      accessControlListName: ${name}\n      addressIpVersion: ipv4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApi Gateway Access Control List can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:apigateway/accessControlList:AccessControlList example \u003cid\u003e\n```\n\n","properties":{"accessControlListName":{"type":"string","description":"Access control list name.\n"},"aclEntrys":{"type":"array","items":{"$ref":"#/types/alicloud:apigateway/AccessControlListAclEntry:AccessControlListAclEntry"},"description":"Information list of access control policies. You can add at most 50 IP addresses or CIDR blocks to an ACL in each call. If the IP address or CIDR block that you want to add to an ACL already exists, the IP address or CIDR block is not added. The entries that you add must be CIDR blocks. See \u003cspan pulumi-lang-nodejs=\"`aclEntrys`\" pulumi-lang-dotnet=\"`AclEntrys`\" pulumi-lang-go=\"`aclEntrys`\" pulumi-lang-python=\"`acl_entrys`\" pulumi-lang-yaml=\"`aclEntrys`\" pulumi-lang-java=\"`aclEntrys`\"\u003e`acl_entrys`\u003c/span\u003e below.\n**NOTE:** Field 'acl_entrys' has been deprecated from provider version 1.228.0, and it will be removed in the future version. Please use the new resource 'alicloud_api_gateway_acl_entry_attachment'.\n","deprecationMessage":"Field 'acl_entrys' has been deprecated from provider version v1.228.0, and it will be removed in the future version. Please use the new resource 'alicloud_api_gateway_acl_entry_attachment'.","secret":true},"addressIpVersion":{"type":"string","description":"The IP version. Valid values: ipv4 and ipv6.\n"}},"required":["accessControlListName","aclEntrys","addressIpVersion"],"inputProperties":{"accessControlListName":{"type":"string","description":"Access control list name.\n","willReplaceOnChanges":true},"aclEntrys":{"type":"array","items":{"$ref":"#/types/alicloud:apigateway/AccessControlListAclEntry:AccessControlListAclEntry"},"description":"Information list of access control policies. You can add at most 50 IP addresses or CIDR blocks to an ACL in each call. If the IP address or CIDR block that you want to add to an ACL already exists, the IP address or CIDR block is not added. The entries that you add must be CIDR blocks. See \u003cspan pulumi-lang-nodejs=\"`aclEntrys`\" pulumi-lang-dotnet=\"`AclEntrys`\" pulumi-lang-go=\"`aclEntrys`\" pulumi-lang-python=\"`acl_entrys`\" pulumi-lang-yaml=\"`aclEntrys`\" pulumi-lang-java=\"`aclEntrys`\"\u003e`acl_entrys`\u003c/span\u003e below.\n**NOTE:** Field 'acl_entrys' has been deprecated from provider version 1.228.0, and it will be removed in the future version. Please use the new resource 'alicloud_api_gateway_acl_entry_attachment'.\n","deprecationMessage":"Field 'acl_entrys' has been deprecated from provider version v1.228.0, and it will be removed in the future version. Please use the new resource 'alicloud_api_gateway_acl_entry_attachment'.","secret":true},"addressIpVersion":{"type":"string","description":"The IP version. Valid values: ipv4 and ipv6.\n","willReplaceOnChanges":true}},"requiredInputs":["accessControlListName"],"stateInputs":{"description":"Input properties used for looking up and filtering AccessControlList resources.\n","properties":{"accessControlListName":{"type":"string","description":"Access control list name.\n","willReplaceOnChanges":true},"aclEntrys":{"type":"array","items":{"$ref":"#/types/alicloud:apigateway/AccessControlListAclEntry:AccessControlListAclEntry"},"description":"Information list of access control policies. You can add at most 50 IP addresses or CIDR blocks to an ACL in each call. If the IP address or CIDR block that you want to add to an ACL already exists, the IP address or CIDR block is not added. The entries that you add must be CIDR blocks. See \u003cspan pulumi-lang-nodejs=\"`aclEntrys`\" pulumi-lang-dotnet=\"`AclEntrys`\" pulumi-lang-go=\"`aclEntrys`\" pulumi-lang-python=\"`acl_entrys`\" pulumi-lang-yaml=\"`aclEntrys`\" pulumi-lang-java=\"`aclEntrys`\"\u003e`acl_entrys`\u003c/span\u003e below.\n**NOTE:** Field 'acl_entrys' has been deprecated from provider version 1.228.0, and it will be removed in the future version. Please use the new resource 'alicloud_api_gateway_acl_entry_attachment'.\n","deprecationMessage":"Field 'acl_entrys' has been deprecated from provider version v1.228.0, and it will be removed in the future version. Please use the new resource 'alicloud_api_gateway_acl_entry_attachment'.","secret":true},"addressIpVersion":{"type":"string","description":"The IP version. Valid values: ipv4 and ipv6.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:apigateway/aclEntryAttachment:AclEntryAttachment":{"description":"Provides an ACL entry attachment resource for attaching ACL entry to an API Gateway ACL.\n\n\u003e **NOTE:** Available since v1.228.0\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst _default = new alicloud.apigateway.AccessControlList(\"default\", {\n    accessControlListName: name,\n    addressIpVersion: \"ipv4\",\n});\nconst defaultAclEntryAttachment = new alicloud.apigateway.AclEntryAttachment(\"default\", {\n    aclId: _default.id,\n    entry: \"128.0.0.1/32\",\n    comment: \"test comment\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault = alicloud.apigateway.AccessControlList(\"default\",\n    access_control_list_name=name,\n    address_ip_version=\"ipv4\")\ndefault_acl_entry_attachment = alicloud.apigateway.AclEntryAttachment(\"default\",\n    acl_id=default.id,\n    entry=\"128.0.0.1/32\",\n    comment=\"test comment\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var @default = new AliCloud.ApiGateway.AccessControlList(\"default\", new()\n    {\n        AccessControlListName = name,\n        AddressIpVersion = \"ipv4\",\n    });\n\n    var defaultAclEntryAttachment = new AliCloud.ApiGateway.AclEntryAttachment(\"default\", new()\n    {\n        AclId = @default.Id,\n        Entry = \"128.0.0.1/32\",\n        Comment = \"test comment\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := apigateway.NewAccessControlList(ctx, \"default\", \u0026apigateway.AccessControlListArgs{\n\t\t\tAccessControlListName: pulumi.String(name),\n\t\t\tAddressIpVersion:      pulumi.String(\"ipv4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewAclEntryAttachment(ctx, \"default\", \u0026apigateway.AclEntryAttachmentArgs{\n\t\t\tAclId:   _default.ID(),\n\t\t\tEntry:   pulumi.String(\"128.0.0.1/32\"),\n\t\t\tComment: pulumi.String(\"test comment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.AccessControlList;\nimport com.pulumi.alicloud.apigateway.AccessControlListArgs;\nimport com.pulumi.alicloud.apigateway.AclEntryAttachment;\nimport com.pulumi.alicloud.apigateway.AclEntryAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var default_ = new AccessControlList(\"default\", AccessControlListArgs.builder()\n            .accessControlListName(name)\n            .addressIpVersion(\"ipv4\")\n            .build());\n\n        var defaultAclEntryAttachment = new AclEntryAttachment(\"defaultAclEntryAttachment\", AclEntryAttachmentArgs.builder()\n            .aclId(default_.id())\n            .entry(\"128.0.0.1/32\")\n            .comment(\"test comment\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  default:\n    type: alicloud:apigateway:AccessControlList\n    properties:\n      accessControlListName: ${name}\n      addressIpVersion: ipv4\n  defaultAclEntryAttachment:\n    type: alicloud:apigateway:AclEntryAttachment\n    name: default\n    properties:\n      aclId: ${default.id}\n      entry: 128.0.0.1/32\n      comment: test comment\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApi Gateway Acl Entry Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:apigateway/aclEntryAttachment:AclEntryAttachment example \u003cacl_id\u003e:\u003centry\u003e\n```\n\n","properties":{"aclId":{"type":"string","description":"The ID of the ACL that the entry will be attached to.\n"},"comment":{"type":"string","description":"The comment for the entry.\n"},"entry":{"type":"string","description":"The CIDR block of the entry to attach.\n"}},"required":["aclId","entry"],"inputProperties":{"aclId":{"type":"string","description":"The ID of the ACL that the entry will be attached to.\n","willReplaceOnChanges":true},"comment":{"type":"string","description":"The comment for the entry.\n","willReplaceOnChanges":true},"entry":{"type":"string","description":"The CIDR block of the entry to attach.\n","willReplaceOnChanges":true}},"requiredInputs":["aclId","entry"],"stateInputs":{"description":"Input properties used for looking up and filtering AclEntryAttachment resources.\n","properties":{"aclId":{"type":"string","description":"The ID of the ACL that the entry will be attached to.\n","willReplaceOnChanges":true},"comment":{"type":"string","description":"The comment for the entry.\n","willReplaceOnChanges":true},"entry":{"type":"string","description":"The CIDR block of the entry to attach.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:apigateway/api:Api":{"description":"Provides an api resource.When you create an API, you must enter the basic information about the API, and define the API request information, the API backend service and response information.\n\nFor information about Api Gateway Api and how to use it, see [Create an API](https://www.alibabacloud.com/help/en/api-gateway/latest/api-cloudapi-2016-07-14-createapi)\n\n\u003e **NOTE:** Available since v1.22.0.\n\n\u003e **NOTE:** Terraform will auto build api while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.apigateway.Api`\" pulumi-lang-dotnet=\"`alicloud.apigateway.Api`\" pulumi-lang-go=\"`apigateway.Api`\" pulumi-lang-python=\"`apigateway.Api`\" pulumi-lang-yaml=\"`alicloud.apigateway.Api`\" pulumi-lang-java=\"`alicloud.apigateway.Api`\"\u003e`alicloud.apigateway.Api`\u003c/span\u003e to build api.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.apigateway.Group(\"example\", {\n    name: \"tf-example\",\n    description: \"tf-example\",\n    basePath: \"/\",\n});\nconst exampleApi = new alicloud.apigateway.Api(\"example\", {\n    groupId: example.id,\n    name: \"tf-example\",\n    description: \"tf-example\",\n    authType: \"APP\",\n    forceNonceCheck: false,\n    requestConfig: {\n        protocol: \"HTTP\",\n        method: \"GET\",\n        path: \"/example/path\",\n        mode: \"MAPPING\",\n    },\n    serviceType: \"HTTP\",\n    httpServiceConfig: {\n        address: \"http://apigateway-backend.alicloudapi.com:8080\",\n        method: \"GET\",\n        path: \"/web/cloudapi\",\n        timeout: 12,\n        aoneName: \"cloudapi-openapi\",\n    },\n    requestParameters: [{\n        name: \"example\",\n        type: \"STRING\",\n        required: \"OPTIONAL\",\n        \"in\": \"QUERY\",\n        inService: \"QUERY\",\n        nameService: \"exampleservice\",\n    }],\n    stageNames: [\n        \"RELEASE\",\n        \"TEST\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.apigateway.Group(\"example\",\n    name=\"tf-example\",\n    description=\"tf-example\",\n    base_path=\"/\")\nexample_api = alicloud.apigateway.Api(\"example\",\n    group_id=example.id,\n    name=\"tf-example\",\n    description=\"tf-example\",\n    auth_type=\"APP\",\n    force_nonce_check=False,\n    request_config={\n        \"protocol\": \"HTTP\",\n        \"method\": \"GET\",\n        \"path\": \"/example/path\",\n        \"mode\": \"MAPPING\",\n    },\n    service_type=\"HTTP\",\n    http_service_config={\n        \"address\": \"http://apigateway-backend.alicloudapi.com:8080\",\n        \"method\": \"GET\",\n        \"path\": \"/web/cloudapi\",\n        \"timeout\": 12,\n        \"aone_name\": \"cloudapi-openapi\",\n    },\n    request_parameters=[{\n        \"name\": \"example\",\n        \"type\": \"STRING\",\n        \"required\": \"OPTIONAL\",\n        \"in_\": \"QUERY\",\n        \"in_service\": \"QUERY\",\n        \"name_service\": \"exampleservice\",\n    }],\n    stage_names=[\n        \"RELEASE\",\n        \"TEST\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.ApiGateway.Group(\"example\", new()\n    {\n        Name = \"tf-example\",\n        Description = \"tf-example\",\n        BasePath = \"/\",\n    });\n\n    var exampleApi = new AliCloud.ApiGateway.Api(\"example\", new()\n    {\n        GroupId = example.Id,\n        Name = \"tf-example\",\n        Description = \"tf-example\",\n        AuthType = \"APP\",\n        ForceNonceCheck = false,\n        RequestConfig = new AliCloud.ApiGateway.Inputs.ApiRequestConfigArgs\n        {\n            Protocol = \"HTTP\",\n            Method = \"GET\",\n            Path = \"/example/path\",\n            Mode = \"MAPPING\",\n        },\n        ServiceType = \"HTTP\",\n        HttpServiceConfig = new AliCloud.ApiGateway.Inputs.ApiHttpServiceConfigArgs\n        {\n            Address = \"http://apigateway-backend.alicloudapi.com:8080\",\n            Method = \"GET\",\n            Path = \"/web/cloudapi\",\n            Timeout = 12,\n            AoneName = \"cloudapi-openapi\",\n        },\n        RequestParameters = new[]\n        {\n            new AliCloud.ApiGateway.Inputs.ApiRequestParameterArgs\n            {\n                Name = \"example\",\n                Type = \"STRING\",\n                Required = \"OPTIONAL\",\n                In = \"QUERY\",\n                InService = \"QUERY\",\n                NameService = \"exampleservice\",\n            },\n        },\n        StageNames = new[]\n        {\n            \"RELEASE\",\n            \"TEST\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := apigateway.NewGroup(ctx, \"example\", \u0026apigateway.GroupArgs{\n\t\t\tName:        pulumi.String(\"tf-example\"),\n\t\t\tDescription: pulumi.String(\"tf-example\"),\n\t\t\tBasePath:    pulumi.String(\"/\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewApi(ctx, \"example\", \u0026apigateway.ApiArgs{\n\t\t\tGroupId:         example.ID(),\n\t\t\tName:            pulumi.String(\"tf-example\"),\n\t\t\tDescription:     pulumi.String(\"tf-example\"),\n\t\t\tAuthType:        pulumi.String(\"APP\"),\n\t\t\tForceNonceCheck: pulumi.Bool(false),\n\t\t\tRequestConfig: \u0026apigateway.ApiRequestConfigArgs{\n\t\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\t\tMethod:   pulumi.String(\"GET\"),\n\t\t\t\tPath:     pulumi.String(\"/example/path\"),\n\t\t\t\tMode:     pulumi.String(\"MAPPING\"),\n\t\t\t},\n\t\t\tServiceType: pulumi.String(\"HTTP\"),\n\t\t\tHttpServiceConfig: \u0026apigateway.ApiHttpServiceConfigArgs{\n\t\t\t\tAddress:  pulumi.String(\"http://apigateway-backend.alicloudapi.com:8080\"),\n\t\t\t\tMethod:   pulumi.String(\"GET\"),\n\t\t\t\tPath:     pulumi.String(\"/web/cloudapi\"),\n\t\t\t\tTimeout:  pulumi.Int(12),\n\t\t\t\tAoneName: pulumi.String(\"cloudapi-openapi\"),\n\t\t\t},\n\t\t\tRequestParameters: apigateway.ApiRequestParameterArray{\n\t\t\t\t\u0026apigateway.ApiRequestParameterArgs{\n\t\t\t\t\tName:        pulumi.String(\"example\"),\n\t\t\t\t\tType:        pulumi.String(\"STRING\"),\n\t\t\t\t\tRequired:    pulumi.String(\"OPTIONAL\"),\n\t\t\t\t\tIn:          pulumi.String(\"QUERY\"),\n\t\t\t\t\tInService:   pulumi.String(\"QUERY\"),\n\t\t\t\t\tNameService: pulumi.String(\"exampleservice\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tStageNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"RELEASE\"),\n\t\t\t\tpulumi.String(\"TEST\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.Group;\nimport com.pulumi.alicloud.apigateway.GroupArgs;\nimport com.pulumi.alicloud.apigateway.Api;\nimport com.pulumi.alicloud.apigateway.ApiArgs;\nimport com.pulumi.alicloud.apigateway.inputs.ApiRequestConfigArgs;\nimport com.pulumi.alicloud.apigateway.inputs.ApiHttpServiceConfigArgs;\nimport com.pulumi.alicloud.apigateway.inputs.ApiRequestParameterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Group(\"example\", GroupArgs.builder()\n            .name(\"tf-example\")\n            .description(\"tf-example\")\n            .basePath(\"/\")\n            .build());\n\n        var exampleApi = new Api(\"exampleApi\", ApiArgs.builder()\n            .groupId(example.id())\n            .name(\"tf-example\")\n            .description(\"tf-example\")\n            .authType(\"APP\")\n            .forceNonceCheck(false)\n            .requestConfig(ApiRequestConfigArgs.builder()\n                .protocol(\"HTTP\")\n                .method(\"GET\")\n                .path(\"/example/path\")\n                .mode(\"MAPPING\")\n                .build())\n            .serviceType(\"HTTP\")\n            .httpServiceConfig(ApiHttpServiceConfigArgs.builder()\n                .address(\"http://apigateway-backend.alicloudapi.com:8080\")\n                .method(\"GET\")\n                .path(\"/web/cloudapi\")\n                .timeout(12)\n                .aoneName(\"cloudapi-openapi\")\n                .build())\n            .requestParameters(ApiRequestParameterArgs.builder()\n                .name(\"example\")\n                .type(\"STRING\")\n                .required(\"OPTIONAL\")\n                .in(\"QUERY\")\n                .inService(\"QUERY\")\n                .nameService(\"exampleservice\")\n                .build())\n            .stageNames(            \n                \"RELEASE\",\n                \"TEST\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:apigateway:Group\n    properties:\n      name: tf-example\n      description: tf-example\n      basePath: /\n  exampleApi:\n    type: alicloud:apigateway:Api\n    name: example\n    properties:\n      groupId: ${example.id}\n      name: tf-example\n      description: tf-example\n      authType: APP\n      forceNonceCheck: false\n      requestConfig:\n        protocol: HTTP\n        method: GET\n        path: /example/path\n        mode: MAPPING\n      serviceType: HTTP\n      httpServiceConfig:\n        address: http://apigateway-backend.alicloudapi.com:8080\n        method: GET\n        path: /web/cloudapi\n        timeout: 12\n        aoneName: cloudapi-openapi\n      requestParameters:\n        - name: example\n          type: STRING\n          required: OPTIONAL\n          in: QUERY\n          inService: QUERY\n          nameService: exampleservice\n      stageNames:\n        - RELEASE\n        - TEST\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApi gateway api can be imported using the id.Format to `\u003cAPI Group Id\u003e:\u003cAPI Id\u003e` e.g.\n\n```sh\n$ pulumi import alicloud:apigateway/api:Api example \"ab2351f2ce904edaa8d92a0510832b91:e4f728fca5a94148b023b99a3e5d0b62\"\n```\n\n","properties":{"apiId":{"type":"string","description":"The ID of the api of api gateway.\n"},"authType":{"type":"string","description":"The authorization Type including APP and ANONYMOUS. Defaults to null.\n"},"constantParameters":{"type":"array","items":{"$ref":"#/types/alicloud:apigateway/ApiConstantParameter:ApiConstantParameter"},"description":"constant_parameters defines the constant parameters of the api. See \u003cspan pulumi-lang-nodejs=\"`constantParameters`\" pulumi-lang-dotnet=\"`ConstantParameters`\" pulumi-lang-go=\"`constantParameters`\" pulumi-lang-python=\"`constant_parameters`\" pulumi-lang-yaml=\"`constantParameters`\" pulumi-lang-java=\"`constantParameters`\"\u003e`constant_parameters`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"The description of the api. Defaults to null.\n"},"fcServiceConfig":{"$ref":"#/types/alicloud:apigateway/ApiFcServiceConfig:ApiFcServiceConfig","description":"fc_service_config defines the config when\u003cspan pulumi-lang-nodejs=\" serviceType \" pulumi-lang-dotnet=\" ServiceType \" pulumi-lang-go=\" serviceType \" pulumi-lang-python=\" service_type \" pulumi-lang-yaml=\" serviceType \" pulumi-lang-java=\" serviceType \"\u003e service_type \u003c/span\u003eselected 'FunctionCompute'. See \u003cspan pulumi-lang-nodejs=\"`fcServiceConfig`\" pulumi-lang-dotnet=\"`FcServiceConfig`\" pulumi-lang-go=\"`fcServiceConfig`\" pulumi-lang-python=\"`fc_service_config`\" pulumi-lang-yaml=\"`fcServiceConfig`\" pulumi-lang-java=\"`fcServiceConfig`\"\u003e`fc_service_config`\u003c/span\u003e below.\n"},"forceNonceCheck":{"type":"boolean","description":"Whether to prevent API replay attack. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"groupId":{"type":"string","description":"The api gateway that the api belongs to. Defaults to null.\n"},"httpServiceConfig":{"$ref":"#/types/alicloud:apigateway/ApiHttpServiceConfig:ApiHttpServiceConfig","description":"http_service_config defines the config when\u003cspan pulumi-lang-nodejs=\" serviceType \" pulumi-lang-dotnet=\" ServiceType \" pulumi-lang-go=\" serviceType \" pulumi-lang-python=\" service_type \" pulumi-lang-yaml=\" serviceType \" pulumi-lang-java=\" serviceType \"\u003e service_type \u003c/span\u003eselected 'HTTP'. See \u003cspan pulumi-lang-nodejs=\"`httpServiceConfig`\" pulumi-lang-dotnet=\"`HttpServiceConfig`\" pulumi-lang-go=\"`httpServiceConfig`\" pulumi-lang-python=\"`http_service_config`\" pulumi-lang-yaml=\"`httpServiceConfig`\" pulumi-lang-java=\"`httpServiceConfig`\"\u003e`http_service_config`\u003c/span\u003e below.\n"},"httpVpcServiceConfig":{"$ref":"#/types/alicloud:apigateway/ApiHttpVpcServiceConfig:ApiHttpVpcServiceConfig","description":"http_vpc_service_config defines the config when\u003cspan pulumi-lang-nodejs=\" serviceType \" pulumi-lang-dotnet=\" ServiceType \" pulumi-lang-go=\" serviceType \" pulumi-lang-python=\" service_type \" pulumi-lang-yaml=\" serviceType \" pulumi-lang-java=\" serviceType \"\u003e service_type \u003c/span\u003eselected 'HTTP-VPC'. See \u003cspan pulumi-lang-nodejs=\"`httpVpcServiceConfig`\" pulumi-lang-dotnet=\"`HttpVpcServiceConfig`\" pulumi-lang-go=\"`httpVpcServiceConfig`\" pulumi-lang-python=\"`http_vpc_service_config`\" pulumi-lang-yaml=\"`httpVpcServiceConfig`\" pulumi-lang-java=\"`httpVpcServiceConfig`\"\u003e`http_vpc_service_config`\u003c/span\u003e below.\n"},"mockServiceConfig":{"$ref":"#/types/alicloud:apigateway/ApiMockServiceConfig:ApiMockServiceConfig","description":"http_service_config defines the config when\u003cspan pulumi-lang-nodejs=\" serviceType \" pulumi-lang-dotnet=\" ServiceType \" pulumi-lang-go=\" serviceType \" pulumi-lang-python=\" service_type \" pulumi-lang-yaml=\" serviceType \" pulumi-lang-java=\" serviceType \"\u003e service_type \u003c/span\u003eselected 'MOCK'. See \u003cspan pulumi-lang-nodejs=\"`mockServiceConfig`\" pulumi-lang-dotnet=\"`MockServiceConfig`\" pulumi-lang-go=\"`mockServiceConfig`\" pulumi-lang-python=\"`mock_service_config`\" pulumi-lang-yaml=\"`mockServiceConfig`\" pulumi-lang-java=\"`mockServiceConfig`\"\u003e`mock_service_config`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The name of the api gateway api. Defaults to null.\n"},"requestConfig":{"$ref":"#/types/alicloud:apigateway/ApiRequestConfig:ApiRequestConfig","description":"Request_config defines how users can send requests to your API. See \u003cspan pulumi-lang-nodejs=\"`requestConfig`\" pulumi-lang-dotnet=\"`RequestConfig`\" pulumi-lang-go=\"`requestConfig`\" pulumi-lang-python=\"`request_config`\" pulumi-lang-yaml=\"`requestConfig`\" pulumi-lang-java=\"`requestConfig`\"\u003e`request_config`\u003c/span\u003e below.\n"},"requestParameters":{"type":"array","items":{"$ref":"#/types/alicloud:apigateway/ApiRequestParameter:ApiRequestParameter"},"description":"request_parameters defines the request parameters of the api. See \u003cspan pulumi-lang-nodejs=\"`requestParameters`\" pulumi-lang-dotnet=\"`RequestParameters`\" pulumi-lang-go=\"`requestParameters`\" pulumi-lang-python=\"`request_parameters`\" pulumi-lang-yaml=\"`requestParameters`\" pulumi-lang-java=\"`requestParameters`\"\u003e`request_parameters`\u003c/span\u003e below.\n"},"serviceType":{"type":"string","description":"The type of backend service. Type including HTTP, VPC, FunctionCompute and MOCK. Defaults to null.\n"},"stageNames":{"type":"array","items":{"type":"string"},"description":"Stages that the api need to be deployed. Valid value: `RELEASE`,`PRE`,`TEST`.\n"},"systemParameters":{"type":"array","items":{"$ref":"#/types/alicloud:apigateway/ApiSystemParameter:ApiSystemParameter"},"description":"system_parameters defines the system parameters of the api. See \u003cspan pulumi-lang-nodejs=\"`systemParameters`\" pulumi-lang-dotnet=\"`SystemParameters`\" pulumi-lang-go=\"`systemParameters`\" pulumi-lang-python=\"`system_parameters`\" pulumi-lang-yaml=\"`systemParameters`\" pulumi-lang-java=\"`systemParameters`\"\u003e`system_parameters`\u003c/span\u003e below.\n"}},"required":["apiId","authType","description","forceNonceCheck","groupId","name","requestConfig","serviceType"],"inputProperties":{"authType":{"type":"string","description":"The authorization Type including APP and ANONYMOUS. Defaults to null.\n"},"constantParameters":{"type":"array","items":{"$ref":"#/types/alicloud:apigateway/ApiConstantParameter:ApiConstantParameter"},"description":"constant_parameters defines the constant parameters of the api. See \u003cspan pulumi-lang-nodejs=\"`constantParameters`\" pulumi-lang-dotnet=\"`ConstantParameters`\" pulumi-lang-go=\"`constantParameters`\" pulumi-lang-python=\"`constant_parameters`\" pulumi-lang-yaml=\"`constantParameters`\" pulumi-lang-java=\"`constantParameters`\"\u003e`constant_parameters`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"The description of the api. Defaults to null.\n"},"fcServiceConfig":{"$ref":"#/types/alicloud:apigateway/ApiFcServiceConfig:ApiFcServiceConfig","description":"fc_service_config defines the config when\u003cspan pulumi-lang-nodejs=\" serviceType \" pulumi-lang-dotnet=\" ServiceType \" pulumi-lang-go=\" serviceType \" pulumi-lang-python=\" service_type \" pulumi-lang-yaml=\" serviceType \" pulumi-lang-java=\" serviceType \"\u003e service_type \u003c/span\u003eselected 'FunctionCompute'. See \u003cspan pulumi-lang-nodejs=\"`fcServiceConfig`\" pulumi-lang-dotnet=\"`FcServiceConfig`\" pulumi-lang-go=\"`fcServiceConfig`\" pulumi-lang-python=\"`fc_service_config`\" pulumi-lang-yaml=\"`fcServiceConfig`\" pulumi-lang-java=\"`fcServiceConfig`\"\u003e`fc_service_config`\u003c/span\u003e below.\n"},"forceNonceCheck":{"type":"boolean","description":"Whether to prevent API replay attack. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"groupId":{"type":"string","description":"The api gateway that the api belongs to. Defaults to null.\n","willReplaceOnChanges":true},"httpServiceConfig":{"$ref":"#/types/alicloud:apigateway/ApiHttpServiceConfig:ApiHttpServiceConfig","description":"http_service_config defines the config when\u003cspan pulumi-lang-nodejs=\" serviceType \" pulumi-lang-dotnet=\" ServiceType \" pulumi-lang-go=\" serviceType \" pulumi-lang-python=\" service_type \" pulumi-lang-yaml=\" serviceType \" pulumi-lang-java=\" serviceType \"\u003e service_type \u003c/span\u003eselected 'HTTP'. See \u003cspan pulumi-lang-nodejs=\"`httpServiceConfig`\" pulumi-lang-dotnet=\"`HttpServiceConfig`\" pulumi-lang-go=\"`httpServiceConfig`\" pulumi-lang-python=\"`http_service_config`\" pulumi-lang-yaml=\"`httpServiceConfig`\" pulumi-lang-java=\"`httpServiceConfig`\"\u003e`http_service_config`\u003c/span\u003e below.\n"},"httpVpcServiceConfig":{"$ref":"#/types/alicloud:apigateway/ApiHttpVpcServiceConfig:ApiHttpVpcServiceConfig","description":"http_vpc_service_config defines the config when\u003cspan pulumi-lang-nodejs=\" serviceType \" pulumi-lang-dotnet=\" ServiceType \" pulumi-lang-go=\" serviceType \" pulumi-lang-python=\" service_type \" pulumi-lang-yaml=\" serviceType \" pulumi-lang-java=\" serviceType \"\u003e service_type \u003c/span\u003eselected 'HTTP-VPC'. See \u003cspan pulumi-lang-nodejs=\"`httpVpcServiceConfig`\" pulumi-lang-dotnet=\"`HttpVpcServiceConfig`\" pulumi-lang-go=\"`httpVpcServiceConfig`\" pulumi-lang-python=\"`http_vpc_service_config`\" pulumi-lang-yaml=\"`httpVpcServiceConfig`\" pulumi-lang-java=\"`httpVpcServiceConfig`\"\u003e`http_vpc_service_config`\u003c/span\u003e below.\n"},"mockServiceConfig":{"$ref":"#/types/alicloud:apigateway/ApiMockServiceConfig:ApiMockServiceConfig","description":"http_service_config defines the config when\u003cspan pulumi-lang-nodejs=\" serviceType \" pulumi-lang-dotnet=\" ServiceType \" pulumi-lang-go=\" serviceType \" pulumi-lang-python=\" service_type \" pulumi-lang-yaml=\" serviceType \" pulumi-lang-java=\" serviceType \"\u003e service_type \u003c/span\u003eselected 'MOCK'. See \u003cspan pulumi-lang-nodejs=\"`mockServiceConfig`\" pulumi-lang-dotnet=\"`MockServiceConfig`\" pulumi-lang-go=\"`mockServiceConfig`\" pulumi-lang-python=\"`mock_service_config`\" pulumi-lang-yaml=\"`mockServiceConfig`\" pulumi-lang-java=\"`mockServiceConfig`\"\u003e`mock_service_config`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The name of the api gateway api. Defaults to null.\n"},"requestConfig":{"$ref":"#/types/alicloud:apigateway/ApiRequestConfig:ApiRequestConfig","description":"Request_config defines how users can send requests to your API. See \u003cspan pulumi-lang-nodejs=\"`requestConfig`\" pulumi-lang-dotnet=\"`RequestConfig`\" pulumi-lang-go=\"`requestConfig`\" pulumi-lang-python=\"`request_config`\" pulumi-lang-yaml=\"`requestConfig`\" pulumi-lang-java=\"`requestConfig`\"\u003e`request_config`\u003c/span\u003e below.\n"},"requestParameters":{"type":"array","items":{"$ref":"#/types/alicloud:apigateway/ApiRequestParameter:ApiRequestParameter"},"description":"request_parameters defines the request parameters of the api. See \u003cspan pulumi-lang-nodejs=\"`requestParameters`\" pulumi-lang-dotnet=\"`RequestParameters`\" pulumi-lang-go=\"`requestParameters`\" pulumi-lang-python=\"`request_parameters`\" pulumi-lang-yaml=\"`requestParameters`\" pulumi-lang-java=\"`requestParameters`\"\u003e`request_parameters`\u003c/span\u003e below.\n"},"serviceType":{"type":"string","description":"The type of backend service. Type including HTTP, VPC, FunctionCompute and MOCK. Defaults to null.\n"},"stageNames":{"type":"array","items":{"type":"string"},"description":"Stages that the api need to be deployed. Valid value: `RELEASE`,`PRE`,`TEST`.\n"},"systemParameters":{"type":"array","items":{"$ref":"#/types/alicloud:apigateway/ApiSystemParameter:ApiSystemParameter"},"description":"system_parameters defines the system parameters of the api. See \u003cspan pulumi-lang-nodejs=\"`systemParameters`\" pulumi-lang-dotnet=\"`SystemParameters`\" pulumi-lang-go=\"`systemParameters`\" pulumi-lang-python=\"`system_parameters`\" pulumi-lang-yaml=\"`systemParameters`\" pulumi-lang-java=\"`systemParameters`\"\u003e`system_parameters`\u003c/span\u003e below.\n"}},"requiredInputs":["authType","description","groupId","requestConfig","serviceType"],"stateInputs":{"description":"Input properties used for looking up and filtering Api resources.\n","properties":{"apiId":{"type":"string","description":"The ID of the api of api gateway.\n"},"authType":{"type":"string","description":"The authorization Type including APP and ANONYMOUS. Defaults to null.\n"},"constantParameters":{"type":"array","items":{"$ref":"#/types/alicloud:apigateway/ApiConstantParameter:ApiConstantParameter"},"description":"constant_parameters defines the constant parameters of the api. See \u003cspan pulumi-lang-nodejs=\"`constantParameters`\" pulumi-lang-dotnet=\"`ConstantParameters`\" pulumi-lang-go=\"`constantParameters`\" pulumi-lang-python=\"`constant_parameters`\" pulumi-lang-yaml=\"`constantParameters`\" pulumi-lang-java=\"`constantParameters`\"\u003e`constant_parameters`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"The description of the api. Defaults to null.\n"},"fcServiceConfig":{"$ref":"#/types/alicloud:apigateway/ApiFcServiceConfig:ApiFcServiceConfig","description":"fc_service_config defines the config when\u003cspan pulumi-lang-nodejs=\" serviceType \" pulumi-lang-dotnet=\" ServiceType \" pulumi-lang-go=\" serviceType \" pulumi-lang-python=\" service_type \" pulumi-lang-yaml=\" serviceType \" pulumi-lang-java=\" serviceType \"\u003e service_type \u003c/span\u003eselected 'FunctionCompute'. See \u003cspan pulumi-lang-nodejs=\"`fcServiceConfig`\" pulumi-lang-dotnet=\"`FcServiceConfig`\" pulumi-lang-go=\"`fcServiceConfig`\" pulumi-lang-python=\"`fc_service_config`\" pulumi-lang-yaml=\"`fcServiceConfig`\" pulumi-lang-java=\"`fcServiceConfig`\"\u003e`fc_service_config`\u003c/span\u003e below.\n"},"forceNonceCheck":{"type":"boolean","description":"Whether to prevent API replay attack. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"groupId":{"type":"string","description":"The api gateway that the api belongs to. Defaults to null.\n","willReplaceOnChanges":true},"httpServiceConfig":{"$ref":"#/types/alicloud:apigateway/ApiHttpServiceConfig:ApiHttpServiceConfig","description":"http_service_config defines the config when\u003cspan pulumi-lang-nodejs=\" serviceType \" pulumi-lang-dotnet=\" ServiceType \" pulumi-lang-go=\" serviceType \" pulumi-lang-python=\" service_type \" pulumi-lang-yaml=\" serviceType \" pulumi-lang-java=\" serviceType \"\u003e service_type \u003c/span\u003eselected 'HTTP'. See \u003cspan pulumi-lang-nodejs=\"`httpServiceConfig`\" pulumi-lang-dotnet=\"`HttpServiceConfig`\" pulumi-lang-go=\"`httpServiceConfig`\" pulumi-lang-python=\"`http_service_config`\" pulumi-lang-yaml=\"`httpServiceConfig`\" pulumi-lang-java=\"`httpServiceConfig`\"\u003e`http_service_config`\u003c/span\u003e below.\n"},"httpVpcServiceConfig":{"$ref":"#/types/alicloud:apigateway/ApiHttpVpcServiceConfig:ApiHttpVpcServiceConfig","description":"http_vpc_service_config defines the config when\u003cspan pulumi-lang-nodejs=\" serviceType \" pulumi-lang-dotnet=\" ServiceType \" pulumi-lang-go=\" serviceType \" pulumi-lang-python=\" service_type \" pulumi-lang-yaml=\" serviceType \" pulumi-lang-java=\" serviceType \"\u003e service_type \u003c/span\u003eselected 'HTTP-VPC'. See \u003cspan pulumi-lang-nodejs=\"`httpVpcServiceConfig`\" pulumi-lang-dotnet=\"`HttpVpcServiceConfig`\" pulumi-lang-go=\"`httpVpcServiceConfig`\" pulumi-lang-python=\"`http_vpc_service_config`\" pulumi-lang-yaml=\"`httpVpcServiceConfig`\" pulumi-lang-java=\"`httpVpcServiceConfig`\"\u003e`http_vpc_service_config`\u003c/span\u003e below.\n"},"mockServiceConfig":{"$ref":"#/types/alicloud:apigateway/ApiMockServiceConfig:ApiMockServiceConfig","description":"http_service_config defines the config when\u003cspan pulumi-lang-nodejs=\" serviceType \" pulumi-lang-dotnet=\" ServiceType \" pulumi-lang-go=\" serviceType \" pulumi-lang-python=\" service_type \" pulumi-lang-yaml=\" serviceType \" pulumi-lang-java=\" serviceType \"\u003e service_type \u003c/span\u003eselected 'MOCK'. See \u003cspan pulumi-lang-nodejs=\"`mockServiceConfig`\" pulumi-lang-dotnet=\"`MockServiceConfig`\" pulumi-lang-go=\"`mockServiceConfig`\" pulumi-lang-python=\"`mock_service_config`\" pulumi-lang-yaml=\"`mockServiceConfig`\" pulumi-lang-java=\"`mockServiceConfig`\"\u003e`mock_service_config`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The name of the api gateway api. Defaults to null.\n"},"requestConfig":{"$ref":"#/types/alicloud:apigateway/ApiRequestConfig:ApiRequestConfig","description":"Request_config defines how users can send requests to your API. See \u003cspan pulumi-lang-nodejs=\"`requestConfig`\" pulumi-lang-dotnet=\"`RequestConfig`\" pulumi-lang-go=\"`requestConfig`\" pulumi-lang-python=\"`request_config`\" pulumi-lang-yaml=\"`requestConfig`\" pulumi-lang-java=\"`requestConfig`\"\u003e`request_config`\u003c/span\u003e below.\n"},"requestParameters":{"type":"array","items":{"$ref":"#/types/alicloud:apigateway/ApiRequestParameter:ApiRequestParameter"},"description":"request_parameters defines the request parameters of the api. See \u003cspan pulumi-lang-nodejs=\"`requestParameters`\" pulumi-lang-dotnet=\"`RequestParameters`\" pulumi-lang-go=\"`requestParameters`\" pulumi-lang-python=\"`request_parameters`\" pulumi-lang-yaml=\"`requestParameters`\" pulumi-lang-java=\"`requestParameters`\"\u003e`request_parameters`\u003c/span\u003e below.\n"},"serviceType":{"type":"string","description":"The type of backend service. Type including HTTP, VPC, FunctionCompute and MOCK. Defaults to null.\n"},"stageNames":{"type":"array","items":{"type":"string"},"description":"Stages that the api need to be deployed. Valid value: `RELEASE`,`PRE`,`TEST`.\n"},"systemParameters":{"type":"array","items":{"$ref":"#/types/alicloud:apigateway/ApiSystemParameter:ApiSystemParameter"},"description":"system_parameters defines the system parameters of the api. See \u003cspan pulumi-lang-nodejs=\"`systemParameters`\" pulumi-lang-dotnet=\"`SystemParameters`\" pulumi-lang-go=\"`systemParameters`\" pulumi-lang-python=\"`system_parameters`\" pulumi-lang-yaml=\"`systemParameters`\" pulumi-lang-java=\"`systemParameters`\"\u003e`system_parameters`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:apigateway/app:App":{"description":"Provides an app resource.It must create an app before calling a third-party API because the app is the identity used to call the third-party API.\n\nFor information about Api Gateway App and how to use it, see [Create An APP](https://www.alibabacloud.com/help/en/api-gateway/latest/api-cloudapi-2016-07-14-createapp)\n\n\u003e **NOTE:** Available since v1.22.0.\n\n\u003e **NOTE:** Terraform will auto build api app while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.apigateway.App`\" pulumi-lang-dotnet=\"`alicloud.apigateway.App`\" pulumi-lang-go=\"`apigateway.App`\" pulumi-lang-python=\"`apigateway.App`\" pulumi-lang-yaml=\"`alicloud.apigateway.App`\" pulumi-lang-java=\"`alicloud.apigateway.App`\"\u003e`alicloud.apigateway.App`\u003c/span\u003e to build api app.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.apigateway.App(\"example\", {\n    name: \"tf_example\",\n    description: \"tf_example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.apigateway.App(\"example\",\n    name=\"tf_example\",\n    description=\"tf_example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.ApiGateway.App(\"example\", new()\n    {\n        Name = \"tf_example\",\n        Description = \"tf_example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := apigateway.NewApp(ctx, \"example\", \u0026apigateway.AppArgs{\n\t\t\tName:        pulumi.String(\"tf_example\"),\n\t\t\tDescription: pulumi.String(\"tf_example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.App;\nimport com.pulumi.alicloud.apigateway.AppArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new App(\"example\", AppArgs.builder()\n            .name(\"tf_example\")\n            .description(\"tf_example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:apigateway:App\n    properties:\n      name: tf_example\n      description: tf_example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApi gateway app can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:apigateway/app:App example \"7379660\"\n```\n\n","properties":{"description":{"type":"string","description":"The description of the app. Defaults to null.\n"},"name":{"type":"string","description":"The name of the app.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["name"],"inputProperties":{"description":{"type":"string","description":"The description of the app. Defaults to null.\n"},"name":{"type":"string","description":"The name of the app.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering App resources.\n","properties":{"description":{"type":"string","description":"The description of the app. Defaults to null.\n"},"name":{"type":"string","description":"The name of the app.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:apigateway/appAttachment:AppAttachment":{"description":"Provides an app attachment resource.It is used for authorizing a specific api to an app accessing. \n\nFor information about Api Gateway App attachment and how to use it, see [Add specified API access authorities](https://www.alibabacloud.com/help/en/api-gateway/latest/api-cloudapi-2016-07-14-setappsauthorities)\n\n\u003e **NOTE:** Available since v1.23.0.\n\n\u003e **NOTE:** Terraform will auto build app attachment while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.apigateway.AppAttachment`\" pulumi-lang-dotnet=\"`alicloud.apigateway.AppAttachment`\" pulumi-lang-go=\"`apigateway.AppAttachment`\" pulumi-lang-python=\"`apigateway.AppAttachment`\" pulumi-lang-yaml=\"`alicloud.apigateway.AppAttachment`\" pulumi-lang-java=\"`alicloud.apigateway.AppAttachment`\"\u003e`alicloud.apigateway.AppAttachment`\u003c/span\u003e to build.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst example = new alicloud.apigateway.Group(\"example\", {\n    name: name,\n    description: name,\n});\nconst exampleApi = new alicloud.apigateway.Api(\"example\", {\n    groupId: example.id,\n    name: name,\n    description: name,\n    authType: \"APP\",\n    forceNonceCheck: false,\n    requestConfig: {\n        protocol: \"HTTP\",\n        method: \"GET\",\n        path: \"/example/path\",\n        mode: \"MAPPING\",\n    },\n    serviceType: \"HTTP\",\n    httpServiceConfig: {\n        address: \"http://apigateway-backend.alicloudapi.com:8080\",\n        method: \"GET\",\n        path: \"/web/cloudapi\",\n        timeout: 12,\n        aoneName: \"cloudapi-openapi\",\n    },\n    requestParameters: [{\n        name: \"example\",\n        type: \"STRING\",\n        required: \"OPTIONAL\",\n        \"in\": \"QUERY\",\n        inService: \"QUERY\",\n        nameService: \"exampleservice\",\n    }],\n    stageNames: [\n        \"RELEASE\",\n        \"TEST\",\n    ],\n});\nconst exampleApp = new alicloud.apigateway.App(\"example\", {\n    name: name,\n    description: name,\n});\nconst exampleAppAttachment = new alicloud.apigateway.AppAttachment(\"example\", {\n    apiId: exampleApi.apiId,\n    groupId: example.id,\n    appId: exampleApp.id,\n    stageName: \"PRE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\nexample = alicloud.apigateway.Group(\"example\",\n    name=name,\n    description=name)\nexample_api = alicloud.apigateway.Api(\"example\",\n    group_id=example.id,\n    name=name,\n    description=name,\n    auth_type=\"APP\",\n    force_nonce_check=False,\n    request_config={\n        \"protocol\": \"HTTP\",\n        \"method\": \"GET\",\n        \"path\": \"/example/path\",\n        \"mode\": \"MAPPING\",\n    },\n    service_type=\"HTTP\",\n    http_service_config={\n        \"address\": \"http://apigateway-backend.alicloudapi.com:8080\",\n        \"method\": \"GET\",\n        \"path\": \"/web/cloudapi\",\n        \"timeout\": 12,\n        \"aone_name\": \"cloudapi-openapi\",\n    },\n    request_parameters=[{\n        \"name\": \"example\",\n        \"type\": \"STRING\",\n        \"required\": \"OPTIONAL\",\n        \"in_\": \"QUERY\",\n        \"in_service\": \"QUERY\",\n        \"name_service\": \"exampleservice\",\n    }],\n    stage_names=[\n        \"RELEASE\",\n        \"TEST\",\n    ])\nexample_app = alicloud.apigateway.App(\"example\",\n    name=name,\n    description=name)\nexample_app_attachment = alicloud.apigateway.AppAttachment(\"example\",\n    api_id=example_api.api_id,\n    group_id=example.id,\n    app_id=example_app.id,\n    stage_name=\"PRE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var example = new AliCloud.ApiGateway.Group(\"example\", new()\n    {\n        Name = name,\n        Description = name,\n    });\n\n    var exampleApi = new AliCloud.ApiGateway.Api(\"example\", new()\n    {\n        GroupId = example.Id,\n        Name = name,\n        Description = name,\n        AuthType = \"APP\",\n        ForceNonceCheck = false,\n        RequestConfig = new AliCloud.ApiGateway.Inputs.ApiRequestConfigArgs\n        {\n            Protocol = \"HTTP\",\n            Method = \"GET\",\n            Path = \"/example/path\",\n            Mode = \"MAPPING\",\n        },\n        ServiceType = \"HTTP\",\n        HttpServiceConfig = new AliCloud.ApiGateway.Inputs.ApiHttpServiceConfigArgs\n        {\n            Address = \"http://apigateway-backend.alicloudapi.com:8080\",\n            Method = \"GET\",\n            Path = \"/web/cloudapi\",\n            Timeout = 12,\n            AoneName = \"cloudapi-openapi\",\n        },\n        RequestParameters = new[]\n        {\n            new AliCloud.ApiGateway.Inputs.ApiRequestParameterArgs\n            {\n                Name = \"example\",\n                Type = \"STRING\",\n                Required = \"OPTIONAL\",\n                In = \"QUERY\",\n                InService = \"QUERY\",\n                NameService = \"exampleservice\",\n            },\n        },\n        StageNames = new[]\n        {\n            \"RELEASE\",\n            \"TEST\",\n        },\n    });\n\n    var exampleApp = new AliCloud.ApiGateway.App(\"example\", new()\n    {\n        Name = name,\n        Description = name,\n    });\n\n    var exampleAppAttachment = new AliCloud.ApiGateway.AppAttachment(\"example\", new()\n    {\n        ApiId = exampleApi.ApiId,\n        GroupId = example.Id,\n        AppId = exampleApp.Id,\n        StageName = \"PRE\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := apigateway.NewGroup(ctx, \"example\", \u0026apigateway.GroupArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleApi, err := apigateway.NewApi(ctx, \"example\", \u0026apigateway.ApiArgs{\n\t\t\tGroupId:         example.ID(),\n\t\t\tName:            pulumi.String(name),\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tAuthType:        pulumi.String(\"APP\"),\n\t\t\tForceNonceCheck: pulumi.Bool(false),\n\t\t\tRequestConfig: \u0026apigateway.ApiRequestConfigArgs{\n\t\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\t\tMethod:   pulumi.String(\"GET\"),\n\t\t\t\tPath:     pulumi.String(\"/example/path\"),\n\t\t\t\tMode:     pulumi.String(\"MAPPING\"),\n\t\t\t},\n\t\t\tServiceType: pulumi.String(\"HTTP\"),\n\t\t\tHttpServiceConfig: \u0026apigateway.ApiHttpServiceConfigArgs{\n\t\t\t\tAddress:  pulumi.String(\"http://apigateway-backend.alicloudapi.com:8080\"),\n\t\t\t\tMethod:   pulumi.String(\"GET\"),\n\t\t\t\tPath:     pulumi.String(\"/web/cloudapi\"),\n\t\t\t\tTimeout:  pulumi.Int(12),\n\t\t\t\tAoneName: pulumi.String(\"cloudapi-openapi\"),\n\t\t\t},\n\t\t\tRequestParameters: apigateway.ApiRequestParameterArray{\n\t\t\t\t\u0026apigateway.ApiRequestParameterArgs{\n\t\t\t\t\tName:        pulumi.String(\"example\"),\n\t\t\t\t\tType:        pulumi.String(\"STRING\"),\n\t\t\t\t\tRequired:    pulumi.String(\"OPTIONAL\"),\n\t\t\t\t\tIn:          pulumi.String(\"QUERY\"),\n\t\t\t\t\tInService:   pulumi.String(\"QUERY\"),\n\t\t\t\t\tNameService: pulumi.String(\"exampleservice\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tStageNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"RELEASE\"),\n\t\t\t\tpulumi.String(\"TEST\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleApp, err := apigateway.NewApp(ctx, \"example\", \u0026apigateway.AppArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewAppAttachment(ctx, \"example\", \u0026apigateway.AppAttachmentArgs{\n\t\t\tApiId:     exampleApi.ApiId,\n\t\t\tGroupId:   example.ID(),\n\t\t\tAppId:     exampleApp.ID(),\n\t\t\tStageName: pulumi.String(\"PRE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.Group;\nimport com.pulumi.alicloud.apigateway.GroupArgs;\nimport com.pulumi.alicloud.apigateway.Api;\nimport com.pulumi.alicloud.apigateway.ApiArgs;\nimport com.pulumi.alicloud.apigateway.inputs.ApiRequestConfigArgs;\nimport com.pulumi.alicloud.apigateway.inputs.ApiHttpServiceConfigArgs;\nimport com.pulumi.alicloud.apigateway.inputs.ApiRequestParameterArgs;\nimport com.pulumi.alicloud.apigateway.App;\nimport com.pulumi.alicloud.apigateway.AppArgs;\nimport com.pulumi.alicloud.apigateway.AppAttachment;\nimport com.pulumi.alicloud.apigateway.AppAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var example = new Group(\"example\", GroupArgs.builder()\n            .name(name)\n            .description(name)\n            .build());\n\n        var exampleApi = new Api(\"exampleApi\", ApiArgs.builder()\n            .groupId(example.id())\n            .name(name)\n            .description(name)\n            .authType(\"APP\")\n            .forceNonceCheck(false)\n            .requestConfig(ApiRequestConfigArgs.builder()\n                .protocol(\"HTTP\")\n                .method(\"GET\")\n                .path(\"/example/path\")\n                .mode(\"MAPPING\")\n                .build())\n            .serviceType(\"HTTP\")\n            .httpServiceConfig(ApiHttpServiceConfigArgs.builder()\n                .address(\"http://apigateway-backend.alicloudapi.com:8080\")\n                .method(\"GET\")\n                .path(\"/web/cloudapi\")\n                .timeout(12)\n                .aoneName(\"cloudapi-openapi\")\n                .build())\n            .requestParameters(ApiRequestParameterArgs.builder()\n                .name(\"example\")\n                .type(\"STRING\")\n                .required(\"OPTIONAL\")\n                .in(\"QUERY\")\n                .inService(\"QUERY\")\n                .nameService(\"exampleservice\")\n                .build())\n            .stageNames(            \n                \"RELEASE\",\n                \"TEST\")\n            .build());\n\n        var exampleApp = new App(\"exampleApp\", AppArgs.builder()\n            .name(name)\n            .description(name)\n            .build());\n\n        var exampleAppAttachment = new AppAttachment(\"exampleAppAttachment\", AppAttachmentArgs.builder()\n            .apiId(exampleApi.apiId())\n            .groupId(example.id())\n            .appId(exampleApp.id())\n            .stageName(\"PRE\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  example:\n    type: alicloud:apigateway:Group\n    properties:\n      name: ${name}\n      description: ${name}\n  exampleApi:\n    type: alicloud:apigateway:Api\n    name: example\n    properties:\n      groupId: ${example.id}\n      name: ${name}\n      description: ${name}\n      authType: APP\n      forceNonceCheck: false\n      requestConfig:\n        protocol: HTTP\n        method: GET\n        path: /example/path\n        mode: MAPPING\n      serviceType: HTTP\n      httpServiceConfig:\n        address: http://apigateway-backend.alicloudapi.com:8080\n        method: GET\n        path: /web/cloudapi\n        timeout: 12\n        aoneName: cloudapi-openapi\n      requestParameters:\n        - name: example\n          type: STRING\n          required: OPTIONAL\n          in: QUERY\n          inService: QUERY\n          nameService: exampleservice\n      stageNames:\n        - RELEASE\n        - TEST\n  exampleApp:\n    type: alicloud:apigateway:App\n    name: example\n    properties:\n      name: ${name}\n      description: ${name}\n  exampleAppAttachment:\n    type: alicloud:apigateway:AppAttachment\n    name: example\n    properties:\n      apiId: ${exampleApi.apiId}\n      groupId: ${example.id}\n      appId: ${exampleApp.id}\n      stageName: PRE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"apiId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" apiId \" pulumi-lang-dotnet=\" ApiId \" pulumi-lang-go=\" apiId \" pulumi-lang-python=\" api_id \" pulumi-lang-yaml=\" apiId \" pulumi-lang-java=\" apiId \"\u003e api_id \u003c/span\u003ethat app apply to access.\n"},"appId":{"type":"string","description":"The app that apply to the authorization.\n"},"groupId":{"type":"string","description":"The group that the api belongs to.\n"},"stageName":{"type":"string","description":"Stage that the app apply to access.\n"}},"required":["apiId","appId","groupId","stageName"],"inputProperties":{"apiId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" apiId \" pulumi-lang-dotnet=\" ApiId \" pulumi-lang-go=\" apiId \" pulumi-lang-python=\" api_id \" pulumi-lang-yaml=\" apiId \" pulumi-lang-java=\" apiId \"\u003e api_id \u003c/span\u003ethat app apply to access.\n","willReplaceOnChanges":true},"appId":{"type":"string","description":"The app that apply to the authorization.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"The group that the api belongs to.\n","willReplaceOnChanges":true},"stageName":{"type":"string","description":"Stage that the app apply to access.\n","willReplaceOnChanges":true}},"requiredInputs":["apiId","appId","groupId","stageName"],"stateInputs":{"description":"Input properties used for looking up and filtering AppAttachment resources.\n","properties":{"apiId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" apiId \" pulumi-lang-dotnet=\" ApiId \" pulumi-lang-go=\" apiId \" pulumi-lang-python=\" api_id \" pulumi-lang-yaml=\" apiId \" pulumi-lang-java=\" apiId \"\u003e api_id \u003c/span\u003ethat app apply to access.\n","willReplaceOnChanges":true},"appId":{"type":"string","description":"The app that apply to the authorization.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"The group that the api belongs to.\n","willReplaceOnChanges":true},"stageName":{"type":"string","description":"Stage that the app apply to access.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:apigateway/backend:Backend":{"description":"Provides a Api Gateway Backend resource.\n\nFor information about Api Gateway Backend and how to use it, see [What is Backend](https://www.alibabacloud.com/help/en/api-gateway/developer-reference/api-cloudapi-2016-07-14-createbackend).\n\n\u003e **NOTE:** Available since v1.181.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = new alicloud.apigateway.Backend(\"default\", {\n    backendName: name,\n    description: name,\n    backendType: \"HTTP\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.apigateway.Backend(\"default\",\n    backend_name=name,\n    description=name,\n    backend_type=\"HTTP\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = new AliCloud.ApiGateway.Backend(\"default\", new()\n    {\n        BackendName = name,\n        Description = name,\n        BackendType = \"HTTP\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := apigateway.NewBackend(ctx, \"default\", \u0026apigateway.BackendArgs{\n\t\t\tBackendName: pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tBackendType: pulumi.String(\"HTTP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.Backend;\nimport com.pulumi.alicloud.apigateway.BackendArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var default_ = new Backend(\"default\", BackendArgs.builder()\n            .backendName(name)\n            .description(name)\n            .backendType(\"HTTP\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  default:\n    type: alicloud:apigateway:Backend\n    properties:\n      backendName: ${name}\n      description: ${name}\n      backendType: HTTP\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApi Gateway Backend can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:apigateway/backend:Backend example \u003cid\u003e\n```\n\n","properties":{"backendName":{"type":"string","description":"The name of the Backend.\n"},"backendType":{"type":"string","description":"The type of the Backend. Valid values: `HTTP`, `VPC`, `FC_EVENT`, `FC_EVENT_V3`, `FC_HTTP`, `FC_HTTP_V3`, `OSS`, `MOCK`.\n"},"createEventBridgeServiceLinkedRole":{"type":"boolean","description":"Whether to create an Event bus service association role.\n"},"description":{"type":"string","description":"The description of the Backend.\n"}},"required":["backendName","backendType","createEventBridgeServiceLinkedRole"],"inputProperties":{"backendName":{"type":"string","description":"The name of the Backend.\n"},"backendType":{"type":"string","description":"The type of the Backend. Valid values: `HTTP`, `VPC`, `FC_EVENT`, `FC_EVENT_V3`, `FC_HTTP`, `FC_HTTP_V3`, `OSS`, `MOCK`.\n","willReplaceOnChanges":true},"createEventBridgeServiceLinkedRole":{"type":"boolean","description":"Whether to create an Event bus service association role.\n"},"description":{"type":"string","description":"The description of the Backend.\n"}},"requiredInputs":["backendName","backendType"],"stateInputs":{"description":"Input properties used for looking up and filtering Backend resources.\n","properties":{"backendName":{"type":"string","description":"The name of the Backend.\n"},"backendType":{"type":"string","description":"The type of the Backend. Valid values: `HTTP`, `VPC`, `FC_EVENT`, `FC_EVENT_V3`, `FC_HTTP`, `FC_HTTP_V3`, `OSS`, `MOCK`.\n","willReplaceOnChanges":true},"createEventBridgeServiceLinkedRole":{"type":"boolean","description":"Whether to create an Event bus service association role.\n"},"description":{"type":"string","description":"The description of the Backend.\n"}},"type":"object"}},"alicloud:apigateway/group:Group":{"description":"Provides an api group resource.To create an API, you must firstly create a group which is a basic attribute of the API.\n\nFor information about Api Gateway Group and how to use it, see [Create An Api Group](https://www.alibabacloud.com/help/en/api-gateway/latest/api-cloudapi-2016-07-14-createapigroup)\n\n\u003e **NOTE:** Available since v1.19.0.\n\n\u003e **NOTE:** Terraform will auto build api group while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.apigateway.Group`\" pulumi-lang-dotnet=\"`alicloud.apigateway.Group`\" pulumi-lang-go=\"`apigateway.Group`\" pulumi-lang-python=\"`apigateway.Group`\" pulumi-lang-yaml=\"`alicloud.apigateway.Group`\" pulumi-lang-java=\"`alicloud.apigateway.Group`\"\u003e`alicloud.apigateway.Group`\u003c/span\u003e to build api group.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.apigateway.Group(\"default\", {\n    name: \"tf_example\",\n    description: \"tf_example\",\n    basePath: \"/\",\n    userLogConfig: {\n        requestBody: true,\n        responseBody: true,\n        queryString: \"*\",\n        requestHeaders: \"*\",\n        responseHeaders: \"*\",\n        jwtClaims: \"*\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.apigateway.Group(\"default\",\n    name=\"tf_example\",\n    description=\"tf_example\",\n    base_path=\"/\",\n    user_log_config={\n        \"request_body\": True,\n        \"response_body\": True,\n        \"query_string\": \"*\",\n        \"request_headers\": \"*\",\n        \"response_headers\": \"*\",\n        \"jwt_claims\": \"*\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.ApiGateway.Group(\"default\", new()\n    {\n        Name = \"tf_example\",\n        Description = \"tf_example\",\n        BasePath = \"/\",\n        UserLogConfig = new AliCloud.ApiGateway.Inputs.GroupUserLogConfigArgs\n        {\n            RequestBody = true,\n            ResponseBody = true,\n            QueryString = \"*\",\n            RequestHeaders = \"*\",\n            ResponseHeaders = \"*\",\n            JwtClaims = \"*\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := apigateway.NewGroup(ctx, \"default\", \u0026apigateway.GroupArgs{\n\t\t\tName:        pulumi.String(\"tf_example\"),\n\t\t\tDescription: pulumi.String(\"tf_example\"),\n\t\t\tBasePath:    pulumi.String(\"/\"),\n\t\t\tUserLogConfig: \u0026apigateway.GroupUserLogConfigArgs{\n\t\t\t\tRequestBody:     pulumi.Bool(true),\n\t\t\t\tResponseBody:    pulumi.Bool(true),\n\t\t\t\tQueryString:     pulumi.String(\"*\"),\n\t\t\t\tRequestHeaders:  pulumi.String(\"*\"),\n\t\t\t\tResponseHeaders: pulumi.String(\"*\"),\n\t\t\t\tJwtClaims:       pulumi.String(\"*\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.Group;\nimport com.pulumi.alicloud.apigateway.GroupArgs;\nimport com.pulumi.alicloud.apigateway.inputs.GroupUserLogConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Group(\"default\", GroupArgs.builder()\n            .name(\"tf_example\")\n            .description(\"tf_example\")\n            .basePath(\"/\")\n            .userLogConfig(GroupUserLogConfigArgs.builder()\n                .requestBody(true)\n                .responseBody(true)\n                .queryString(\"*\")\n                .requestHeaders(\"*\")\n                .responseHeaders(\"*\")\n                .jwtClaims(\"*\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:apigateway:Group\n    properties:\n      name: tf_example\n      description: tf_example\n      basePath: /\n      userLogConfig:\n        requestBody: true\n        responseBody: true\n        queryString: '*'\n        requestHeaders: '*'\n        responseHeaders: '*'\n        jwtClaims: '*'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApi gateway group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:apigateway/group:Group example \"ab2351f2ce904edaa8d92a0510832b91\"\n```\n\n","properties":{"basePath":{"type":"string","description":"The base path of the api gateway group. Defaults to `/`.\n"},"description":{"type":"string","description":"The description of the api gateway group. Defaults to null.\n"},"instanceId":{"type":"string","description":"The id of the api gateway.\n"},"name":{"type":"string","description":"The name of the api gateway group. Defaults to null.\n"},"subDomain":{"type":"string","description":"(Available in 1.69.0+)\tSecond-level domain name automatically assigned to the API group.\n"},"userLogConfig":{"$ref":"#/types/alicloud:apigateway/GroupUserLogConfig:GroupUserLogConfig","description":"user_log_config defines the config of user log of the group. See \u003cspan pulumi-lang-nodejs=\"`userLogConfig`\" pulumi-lang-dotnet=\"`UserLogConfig`\" pulumi-lang-go=\"`userLogConfig`\" pulumi-lang-python=\"`user_log_config`\" pulumi-lang-yaml=\"`userLogConfig`\" pulumi-lang-java=\"`userLogConfig`\"\u003e`user_log_config`\u003c/span\u003e below.\n"},"vpcDomain":{"type":"string","description":"(Available in 1.69.0+)\tSecond-level VPC domain name automatically assigned to the API group.\n"},"vpcIntranetEnable":{"type":"boolean","description":"Whether to enable \u003cspan pulumi-lang-nodejs=\"`vpcDomain`\" pulumi-lang-dotnet=\"`VpcDomain`\" pulumi-lang-go=\"`vpcDomain`\" pulumi-lang-python=\"`vpc_domain`\" pulumi-lang-yaml=\"`vpcDomain`\" pulumi-lang-java=\"`vpcDomain`\"\u003e`vpc_domain`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"required":["basePath","instanceId","name","subDomain","vpcDomain"],"inputProperties":{"basePath":{"type":"string","description":"The base path of the api gateway group. Defaults to `/`.\n"},"description":{"type":"string","description":"The description of the api gateway group. Defaults to null.\n"},"instanceId":{"type":"string","description":"The id of the api gateway.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the api gateway group. Defaults to null.\n"},"userLogConfig":{"$ref":"#/types/alicloud:apigateway/GroupUserLogConfig:GroupUserLogConfig","description":"user_log_config defines the config of user log of the group. See \u003cspan pulumi-lang-nodejs=\"`userLogConfig`\" pulumi-lang-dotnet=\"`UserLogConfig`\" pulumi-lang-go=\"`userLogConfig`\" pulumi-lang-python=\"`user_log_config`\" pulumi-lang-yaml=\"`userLogConfig`\" pulumi-lang-java=\"`userLogConfig`\"\u003e`user_log_config`\u003c/span\u003e below.\n"},"vpcIntranetEnable":{"type":"boolean","description":"Whether to enable \u003cspan pulumi-lang-nodejs=\"`vpcDomain`\" pulumi-lang-dotnet=\"`VpcDomain`\" pulumi-lang-go=\"`vpcDomain`\" pulumi-lang-python=\"`vpc_domain`\" pulumi-lang-yaml=\"`vpcDomain`\" pulumi-lang-java=\"`vpcDomain`\"\u003e`vpc_domain`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Group resources.\n","properties":{"basePath":{"type":"string","description":"The base path of the api gateway group. Defaults to `/`.\n"},"description":{"type":"string","description":"The description of the api gateway group. Defaults to null.\n"},"instanceId":{"type":"string","description":"The id of the api gateway.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the api gateway group. Defaults to null.\n"},"subDomain":{"type":"string","description":"(Available in 1.69.0+)\tSecond-level domain name automatically assigned to the API group.\n"},"userLogConfig":{"$ref":"#/types/alicloud:apigateway/GroupUserLogConfig:GroupUserLogConfig","description":"user_log_config defines the config of user log of the group. See \u003cspan pulumi-lang-nodejs=\"`userLogConfig`\" pulumi-lang-dotnet=\"`UserLogConfig`\" pulumi-lang-go=\"`userLogConfig`\" pulumi-lang-python=\"`user_log_config`\" pulumi-lang-yaml=\"`userLogConfig`\" pulumi-lang-java=\"`userLogConfig`\"\u003e`user_log_config`\u003c/span\u003e below.\n"},"vpcDomain":{"type":"string","description":"(Available in 1.69.0+)\tSecond-level VPC domain name automatically assigned to the API group.\n"},"vpcIntranetEnable":{"type":"boolean","description":"Whether to enable \u003cspan pulumi-lang-nodejs=\"`vpcDomain`\" pulumi-lang-dotnet=\"`VpcDomain`\" pulumi-lang-go=\"`vpcDomain`\" pulumi-lang-python=\"`vpc_domain`\" pulumi-lang-yaml=\"`vpcDomain`\" pulumi-lang-java=\"`vpcDomain`\"\u003e`vpc_domain`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:apigateway/instance:Instance":{"description":"Provides a Api Gateway Instance resource. \n\nFor information about Api Gateway Instance and how to use it, see [What is Instance](https://www.alibabacloud.com/help/en/api-gateway/product-overview/dedicated-instances).\n\n\u003e **NOTE:** Available since v1.218.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.apigateway.Instance(\"default\", {\n    instanceName: name,\n    instanceSpec: \"api.s1.small\",\n    httpsPolicy: \"HTTPS2_TLS1_0\",\n    zoneId: \"cn-hangzhou-MAZ6(i,j,k)\",\n    paymentType: \"PayAsYouGo\",\n    instanceType: \"normal\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.apigateway.Instance(\"default\",\n    instance_name=name,\n    instance_spec=\"api.s1.small\",\n    https_policy=\"HTTPS2_TLS1_0\",\n    zone_id=\"cn-hangzhou-MAZ6(i,j,k)\",\n    payment_type=\"PayAsYouGo\",\n    instance_type=\"normal\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ApiGateway.Instance(\"default\", new()\n    {\n        InstanceName = name,\n        InstanceSpec = \"api.s1.small\",\n        HttpsPolicy = \"HTTPS2_TLS1_0\",\n        ZoneId = \"cn-hangzhou-MAZ6(i,j,k)\",\n        PaymentType = \"PayAsYouGo\",\n        InstanceType = \"normal\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := apigateway.NewInstance(ctx, \"default\", \u0026apigateway.InstanceArgs{\n\t\t\tInstanceName: pulumi.String(name),\n\t\t\tInstanceSpec: pulumi.String(\"api.s1.small\"),\n\t\t\tHttpsPolicy:  pulumi.String(\"HTTPS2_TLS1_0\"),\n\t\t\tZoneId:       pulumi.String(\"cn-hangzhou-MAZ6(i,j,k)\"),\n\t\t\tPaymentType:  pulumi.String(\"PayAsYouGo\"),\n\t\t\tInstanceType: pulumi.String(\"normal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.Instance;\nimport com.pulumi.alicloud.apigateway.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .instanceName(name)\n            .instanceSpec(\"api.s1.small\")\n            .httpsPolicy(\"HTTPS2_TLS1_0\")\n            .zoneId(\"cn-hangzhou-MAZ6(i,j,k)\")\n            .paymentType(\"PayAsYouGo\")\n            .instanceType(\"normal\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:apigateway:Instance\n    properties:\n      instanceName: ${name}\n      instanceSpec: api.s1.small\n      httpsPolicy: HTTPS2_TLS1_0\n      zoneId: cn-hangzhou-MAZ6(i,j,k)\n      paymentType: PayAsYouGo\n      instanceType: normal\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: name,\n});\nconst vswitch1 = new alicloud.vpc.Switch(\"vswitch_1\", {\n    vpcId: vpc.id,\n    cidrBlock: \"172.16.0.0/16\",\n    zoneId: \"cn-hangzhou-j\",\n    vswitchName: `${name}_1`,\n});\nconst vswitch2 = new alicloud.vpc.Switch(\"vswitch_2\", {\n    vpcId: vpc.id,\n    cidrBlock: \"172.17.0.0/16\",\n    zoneId: \"cn-hangzhou-k\",\n    vswitchName: `${name}_2`,\n});\nconst securityGroup = new alicloud.ecs.SecurityGroup(\"security_group\", {\n    vpcId: vpc.id,\n    securityGroupName: name,\n});\nconst vpcIntegrationInstance = new alicloud.apigateway.Instance(\"vpc_integration_instance\", {\n    instanceName: name,\n    httpsPolicy: \"HTTPS2_TLS1_0\",\n    instanceSpec: \"api.s1.small\",\n    instanceType: \"vpc_connect\",\n    paymentType: \"PayAsYouGo\",\n    userVpcId: vpc.id,\n    instanceCidr: \"192.168.0.0/16\",\n    zoneVswitchSecurityGroups: [\n        {\n            zoneId: vswitch1.zoneId,\n            vswitchId: vswitch1.id,\n            cidrBlock: vswitch1.cidrBlock,\n            securityGroup: securityGroup.id,\n        },\n        {\n            zoneId: vswitch2.zoneId,\n            vswitchId: vswitch2.id,\n            cidrBlock: vswitch2.cidrBlock,\n            securityGroup: securityGroup.id,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nvpc = alicloud.vpc.Network(\"vpc\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=name)\nvswitch1 = alicloud.vpc.Switch(\"vswitch_1\",\n    vpc_id=vpc.id,\n    cidr_block=\"172.16.0.0/16\",\n    zone_id=\"cn-hangzhou-j\",\n    vswitch_name=f\"{name}_1\")\nvswitch2 = alicloud.vpc.Switch(\"vswitch_2\",\n    vpc_id=vpc.id,\n    cidr_block=\"172.17.0.0/16\",\n    zone_id=\"cn-hangzhou-k\",\n    vswitch_name=f\"{name}_2\")\nsecurity_group = alicloud.ecs.SecurityGroup(\"security_group\",\n    vpc_id=vpc.id,\n    security_group_name=name)\nvpc_integration_instance = alicloud.apigateway.Instance(\"vpc_integration_instance\",\n    instance_name=name,\n    https_policy=\"HTTPS2_TLS1_0\",\n    instance_spec=\"api.s1.small\",\n    instance_type=\"vpc_connect\",\n    payment_type=\"PayAsYouGo\",\n    user_vpc_id=vpc.id,\n    instance_cidr=\"192.168.0.0/16\",\n    zone_vswitch_security_groups=[\n        {\n            \"zone_id\": vswitch1.zone_id,\n            \"vswitch_id\": vswitch1.id,\n            \"cidr_block\": vswitch1.cidr_block,\n            \"security_group\": security_group.id,\n        },\n        {\n            \"zone_id\": vswitch2.zone_id,\n            \"vswitch_id\": vswitch2.id,\n            \"cidr_block\": vswitch2.cidr_block,\n            \"security_group\": security_group.id,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = name,\n    });\n\n    var vswitch1 = new AliCloud.Vpc.Switch(\"vswitch_1\", new()\n    {\n        VpcId = vpc.Id,\n        CidrBlock = \"172.16.0.0/16\",\n        ZoneId = \"cn-hangzhou-j\",\n        VswitchName = $\"{name}_1\",\n    });\n\n    var vswitch2 = new AliCloud.Vpc.Switch(\"vswitch_2\", new()\n    {\n        VpcId = vpc.Id,\n        CidrBlock = \"172.17.0.0/16\",\n        ZoneId = \"cn-hangzhou-k\",\n        VswitchName = $\"{name}_2\",\n    });\n\n    var securityGroup = new AliCloud.Ecs.SecurityGroup(\"security_group\", new()\n    {\n        VpcId = vpc.Id,\n        SecurityGroupName = name,\n    });\n\n    var vpcIntegrationInstance = new AliCloud.ApiGateway.Instance(\"vpc_integration_instance\", new()\n    {\n        InstanceName = name,\n        HttpsPolicy = \"HTTPS2_TLS1_0\",\n        InstanceSpec = \"api.s1.small\",\n        InstanceType = \"vpc_connect\",\n        PaymentType = \"PayAsYouGo\",\n        UserVpcId = vpc.Id,\n        InstanceCidr = \"192.168.0.0/16\",\n        ZoneVswitchSecurityGroups = new[]\n        {\n            new AliCloud.ApiGateway.Inputs.InstanceZoneVswitchSecurityGroupArgs\n            {\n                ZoneId = vswitch1.ZoneId,\n                VswitchId = vswitch1.Id,\n                CidrBlock = vswitch1.CidrBlock,\n                SecurityGroup = securityGroup.Id,\n            },\n            new AliCloud.ApiGateway.Inputs.InstanceZoneVswitchSecurityGroupArgs\n            {\n                ZoneId = vswitch2.ZoneId,\n                VswitchId = vswitch2.Id,\n                CidrBlock = vswitch2.CidrBlock,\n                SecurityGroup = securityGroup.Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvswitch1, err := vpc.NewSwitch(ctx, \"vswitch_1\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       vpc.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/16\"),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-j\"),\n\t\t\tVswitchName: pulumi.Sprintf(\"%v_1\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvswitch2, err := vpc.NewSwitch(ctx, \"vswitch_2\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       vpc.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.0.0/16\"),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-k\"),\n\t\t\tVswitchName: pulumi.Sprintf(\"%v_2\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecurityGroup, err := ecs.NewSecurityGroup(ctx, \"security_group\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId:             vpc.ID(),\n\t\t\tSecurityGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewInstance(ctx, \"vpc_integration_instance\", \u0026apigateway.InstanceArgs{\n\t\t\tInstanceName: pulumi.String(name),\n\t\t\tHttpsPolicy:  pulumi.String(\"HTTPS2_TLS1_0\"),\n\t\t\tInstanceSpec: pulumi.String(\"api.s1.small\"),\n\t\t\tInstanceType: pulumi.String(\"vpc_connect\"),\n\t\t\tPaymentType:  pulumi.String(\"PayAsYouGo\"),\n\t\t\tUserVpcId:    vpc.ID(),\n\t\t\tInstanceCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t\tZoneVswitchSecurityGroups: apigateway.InstanceZoneVswitchSecurityGroupArray{\n\t\t\t\t\u0026apigateway.InstanceZoneVswitchSecurityGroupArgs{\n\t\t\t\t\tZoneId:        vswitch1.ZoneId,\n\t\t\t\t\tVswitchId:     vswitch1.ID(),\n\t\t\t\t\tCidrBlock:     vswitch1.CidrBlock,\n\t\t\t\t\tSecurityGroup: securityGroup.ID(),\n\t\t\t\t},\n\t\t\t\t\u0026apigateway.InstanceZoneVswitchSecurityGroupArgs{\n\t\t\t\t\tZoneId:        vswitch2.ZoneId,\n\t\t\t\t\tVswitchId:     vswitch2.ID(),\n\t\t\t\t\tCidrBlock:     vswitch2.CidrBlock,\n\t\t\t\t\tSecurityGroup: securityGroup.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.apigateway.Instance;\nimport com.pulumi.alicloud.apigateway.InstanceArgs;\nimport com.pulumi.alicloud.apigateway.inputs.InstanceZoneVswitchSecurityGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(name)\n            .build());\n\n        var vswitch1 = new Switch(\"vswitch1\", SwitchArgs.builder()\n            .vpcId(vpc.id())\n            .cidrBlock(\"172.16.0.0/16\")\n            .zoneId(\"cn-hangzhou-j\")\n            .vswitchName(String.format(\"%s_1\", name))\n            .build());\n\n        var vswitch2 = new Switch(\"vswitch2\", SwitchArgs.builder()\n            .vpcId(vpc.id())\n            .cidrBlock(\"172.17.0.0/16\")\n            .zoneId(\"cn-hangzhou-k\")\n            .vswitchName(String.format(\"%s_2\", name))\n            .build());\n\n        var securityGroup = new SecurityGroup(\"securityGroup\", SecurityGroupArgs.builder()\n            .vpcId(vpc.id())\n            .securityGroupName(name)\n            .build());\n\n        var vpcIntegrationInstance = new Instance(\"vpcIntegrationInstance\", InstanceArgs.builder()\n            .instanceName(name)\n            .httpsPolicy(\"HTTPS2_TLS1_0\")\n            .instanceSpec(\"api.s1.small\")\n            .instanceType(\"vpc_connect\")\n            .paymentType(\"PayAsYouGo\")\n            .userVpcId(vpc.id())\n            .instanceCidr(\"192.168.0.0/16\")\n            .zoneVswitchSecurityGroups(            \n                InstanceZoneVswitchSecurityGroupArgs.builder()\n                    .zoneId(vswitch1.zoneId())\n                    .vswitchId(vswitch1.id())\n                    .cidrBlock(vswitch1.cidrBlock())\n                    .securityGroup(securityGroup.id())\n                    .build(),\n                InstanceZoneVswitchSecurityGroupArgs.builder()\n                    .zoneId(vswitch2.zoneId())\n                    .vswitchId(vswitch2.id())\n                    .cidrBlock(vswitch2.cidrBlock())\n                    .securityGroup(securityGroup.id())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName: ${name}\n  vswitch1:\n    type: alicloud:vpc:Switch\n    name: vswitch_1\n    properties:\n      vpcId: ${vpc.id}\n      cidrBlock: 172.16.0.0/16\n      zoneId: cn-hangzhou-j\n      vswitchName: ${name}_1\n  vswitch2:\n    type: alicloud:vpc:Switch\n    name: vswitch_2\n    properties:\n      vpcId: ${vpc.id}\n      cidrBlock: 172.17.0.0/16\n      zoneId: cn-hangzhou-k\n      vswitchName: ${name}_2\n  securityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: security_group\n    properties:\n      vpcId: ${vpc.id}\n      securityGroupName: ${name}\n  vpcIntegrationInstance:\n    type: alicloud:apigateway:Instance\n    name: vpc_integration_instance\n    properties:\n      instanceName: ${name}\n      httpsPolicy: HTTPS2_TLS1_0\n      instanceSpec: api.s1.small\n      instanceType: vpc_connect\n      paymentType: PayAsYouGo\n      userVpcId: ${vpc.id}\n      instanceCidr: 192.168.0.0/16\n      zoneVswitchSecurityGroups:\n        - zoneId: ${vswitch1.zoneId}\n          vswitchId: ${vswitch1.id}\n          cidrBlock: ${vswitch1.cidrBlock}\n          securityGroup: ${securityGroup.id}\n        - zoneId: ${vswitch2.zoneId}\n          vswitchId: ${vswitch2.id}\n          cidrBlock: ${vswitch2.cidrBlock}\n          securityGroup: ${securityGroup.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApi Gateway Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:apigateway/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"connectCidrBlocks":{"type":"string","description":"(Available since v1.228.0) The CIDR blocks that can be accessed by the Vpc integration instance.\n"},"createTime":{"type":"string","description":"Creation time.\n"},"deleteVpcIpBlock":{"type":"string","description":"Indicates whether to delete the IP block that the VPC can access, conflict with \u003cspan pulumi-lang-nodejs=\"`toConnectVpcIpBlock`\" pulumi-lang-dotnet=\"`ToConnectVpcIpBlock`\" pulumi-lang-go=\"`toConnectVpcIpBlock`\" pulumi-lang-python=\"`to_connect_vpc_ip_block`\" pulumi-lang-yaml=\"`toConnectVpcIpBlock`\" pulumi-lang-java=\"`toConnectVpcIpBlock`\"\u003e`to_connect_vpc_ip_block`\u003c/span\u003e.\n"},"duration":{"type":"integer","description":"The time of the instance package. Valid values:\n- PricingCycle is **Month**, indicating monthly payment. The value range is **1** to **9**.\n- PricingCycle is **Year**, indicating annual payment. The value range is **1** to **3**.\n\nWhen the value of\u003e ChargeType is **PrePaid**, this parameter is available and must be passed in.\n"},"egressIpv6Enable":{"type":"boolean","description":"Specifies whether IPv6 egress capability is enabled.\n"},"httpsPolicy":{"type":"string","description":"Https policy.\n"},"ingressVpcId":{"type":"string","description":"The VpcID which the client at.\n"},"ingressVpcOwnerId":{"type":"string","description":"The user ID that the VpcID of \u003cspan pulumi-lang-nodejs=\"`ingressVpcId`\" pulumi-lang-dotnet=\"`IngressVpcId`\" pulumi-lang-go=\"`ingressVpcId`\" pulumi-lang-python=\"`ingress_vpc_id`\" pulumi-lang-yaml=\"`ingressVpcId`\" pulumi-lang-java=\"`ingressVpcId`\"\u003e`ingress_vpc_id`\u003c/span\u003e belongs to.\n"},"ingressVswitchId":{"type":"string","description":"The VSwitch ID that belongs to the Vpc of \u003cspan pulumi-lang-nodejs=\"`ingressVpcId`\" pulumi-lang-dotnet=\"`IngressVpcId`\" pulumi-lang-go=\"`ingressVpcId`\" pulumi-lang-python=\"`ingress_vpc_id`\" pulumi-lang-yaml=\"`ingressVpcId`\" pulumi-lang-java=\"`ingressVpcId`\"\u003e`ingress_vpc_id`\u003c/span\u003e. Required when \u003cspan pulumi-lang-nodejs=\"`ingressVpcId`\" pulumi-lang-dotnet=\"`IngressVpcId`\" pulumi-lang-go=\"`ingressVpcId`\" pulumi-lang-python=\"`ingress_vpc_id`\" pulumi-lang-yaml=\"`ingressVpcId`\" pulumi-lang-java=\"`ingressVpcId`\"\u003e`ingress_vpc_id`\u003c/span\u003e is set.\n"},"instanceCidr":{"type":"string","description":"The CIDR block for the instance deployment. Valid values are:\n- `192.168.0.0/16`.\n- `172.16.0.0/12`.\n"},"instanceName":{"type":"string","description":"Instance name.\n"},"instanceSpec":{"type":"string","description":"Instance spec.\n"},"instanceType":{"type":"string","description":"The type of the instance. Valid values are:\n"},"ipv6Enabled":{"type":"boolean","description":"Specifies whether IPv6 ingress capability is enabled.\n"},"paymentType":{"type":"string","description":"The payment type of the resource.\n"},"pricingCycle":{"type":"string","description":"The subscription instance is of the subscription year or month type. This parameter is required when the Payment type is PrePaid. The value range is as follows:\n"},"skipWaitSwitch":{"type":"boolean","description":"Specifies whether to skip the WAIT_SWITCH status of instance when modifying instance spec. Works only when instance spec change.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"supportIpv6":{"type":"boolean","description":"Does ipv6 support.\n"},"toConnectVpcIpBlock":{"$ref":"#/types/alicloud:apigateway/InstanceToConnectVpcIpBlock:InstanceToConnectVpcIpBlock","description":"The additional IP block that the VPC integration instance can access, conflict with \u003cspan pulumi-lang-nodejs=\"`deleteVpcIpBlock`\" pulumi-lang-dotnet=\"`DeleteVpcIpBlock`\" pulumi-lang-go=\"`deleteVpcIpBlock`\" pulumi-lang-python=\"`delete_vpc_ip_block`\" pulumi-lang-yaml=\"`deleteVpcIpBlock`\" pulumi-lang-java=\"`deleteVpcIpBlock`\"\u003e`delete_vpc_ip_block`\u003c/span\u003e. See \u003cspan pulumi-lang-nodejs=\"`toConnectVpcIpBlock`\" pulumi-lang-dotnet=\"`ToConnectVpcIpBlock`\" pulumi-lang-go=\"`toConnectVpcIpBlock`\" pulumi-lang-python=\"`to_connect_vpc_ip_block`\" pulumi-lang-yaml=\"`toConnectVpcIpBlock`\" pulumi-lang-java=\"`toConnectVpcIpBlock`\"\u003e`to_connect_vpc_ip_block`\u003c/span\u003e below.\n"},"userVpcId":{"type":"string","description":"User's VpcID.\n"},"vpcSlbIntranetEnable":{"type":"boolean","description":"Whether the slb of the Vpc supports.\n"},"zoneId":{"type":"string","description":"The zone where the instance is deployed.\n"},"zoneVswitchSecurityGroups":{"type":"array","items":{"$ref":"#/types/alicloud:apigateway/InstanceZoneVswitchSecurityGroup:InstanceZoneVswitchSecurityGroup"},"description":"Network configuration details for Vpc integration instance which includes the availability zone, VSwitch, and security group information. See \u003cspan pulumi-lang-nodejs=\"`zoneVswitchSecurityGroup`\" pulumi-lang-dotnet=\"`ZoneVswitchSecurityGroup`\" pulumi-lang-go=\"`zoneVswitchSecurityGroup`\" pulumi-lang-python=\"`zone_vswitch_security_group`\" pulumi-lang-yaml=\"`zoneVswitchSecurityGroup`\" pulumi-lang-java=\"`zoneVswitchSecurityGroup`\"\u003e`zone_vswitch_security_group`\u003c/span\u003e below.\n"}},"required":["connectCidrBlocks","createTime","httpsPolicy","instanceCidr","instanceName","instanceSpec","instanceType","paymentType","status","supportIpv6","zoneId"],"inputProperties":{"deleteVpcIpBlock":{"type":"string","description":"Indicates whether to delete the IP block that the VPC can access, conflict with \u003cspan pulumi-lang-nodejs=\"`toConnectVpcIpBlock`\" pulumi-lang-dotnet=\"`ToConnectVpcIpBlock`\" pulumi-lang-go=\"`toConnectVpcIpBlock`\" pulumi-lang-python=\"`to_connect_vpc_ip_block`\" pulumi-lang-yaml=\"`toConnectVpcIpBlock`\" pulumi-lang-java=\"`toConnectVpcIpBlock`\"\u003e`to_connect_vpc_ip_block`\u003c/span\u003e.\n"},"duration":{"type":"integer","description":"The time of the instance package. Valid values:\n- PricingCycle is **Month**, indicating monthly payment. The value range is **1** to **9**.\n- PricingCycle is **Year**, indicating annual payment. The value range is **1** to **3**.\n\nWhen the value of\u003e ChargeType is **PrePaid**, this parameter is available and must be passed in.\n"},"egressIpv6Enable":{"type":"boolean","description":"Specifies whether IPv6 egress capability is enabled.\n"},"httpsPolicy":{"type":"string","description":"Https policy.\n"},"ingressVpcId":{"type":"string","description":"The VpcID which the client at.\n"},"ingressVpcOwnerId":{"type":"string","description":"The user ID that the VpcID of \u003cspan pulumi-lang-nodejs=\"`ingressVpcId`\" pulumi-lang-dotnet=\"`IngressVpcId`\" pulumi-lang-go=\"`ingressVpcId`\" pulumi-lang-python=\"`ingress_vpc_id`\" pulumi-lang-yaml=\"`ingressVpcId`\" pulumi-lang-java=\"`ingressVpcId`\"\u003e`ingress_vpc_id`\u003c/span\u003e belongs to.\n"},"ingressVswitchId":{"type":"string","description":"The VSwitch ID that belongs to the Vpc of \u003cspan pulumi-lang-nodejs=\"`ingressVpcId`\" pulumi-lang-dotnet=\"`IngressVpcId`\" pulumi-lang-go=\"`ingressVpcId`\" pulumi-lang-python=\"`ingress_vpc_id`\" pulumi-lang-yaml=\"`ingressVpcId`\" pulumi-lang-java=\"`ingressVpcId`\"\u003e`ingress_vpc_id`\u003c/span\u003e. Required when \u003cspan pulumi-lang-nodejs=\"`ingressVpcId`\" pulumi-lang-dotnet=\"`IngressVpcId`\" pulumi-lang-go=\"`ingressVpcId`\" pulumi-lang-python=\"`ingress_vpc_id`\" pulumi-lang-yaml=\"`ingressVpcId`\" pulumi-lang-java=\"`ingressVpcId`\"\u003e`ingress_vpc_id`\u003c/span\u003e is set.\n"},"instanceCidr":{"type":"string","description":"The CIDR block for the instance deployment. Valid values are:\n- `192.168.0.0/16`.\n- `172.16.0.0/12`.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"Instance name.\n"},"instanceSpec":{"type":"string","description":"Instance spec.\n"},"instanceType":{"type":"string","description":"The type of the instance. Valid values are:\n","willReplaceOnChanges":true},"ipv6Enabled":{"type":"boolean","description":"Specifies whether IPv6 ingress capability is enabled.\n"},"paymentType":{"type":"string","description":"The payment type of the resource.\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The subscription instance is of the subscription year or month type. This parameter is required when the Payment type is PrePaid. The value range is as follows:\n"},"skipWaitSwitch":{"type":"boolean","description":"Specifies whether to skip the WAIT_SWITCH status of instance when modifying instance spec. Works only when instance spec change.\n"},"toConnectVpcIpBlock":{"$ref":"#/types/alicloud:apigateway/InstanceToConnectVpcIpBlock:InstanceToConnectVpcIpBlock","description":"The additional IP block that the VPC integration instance can access, conflict with \u003cspan pulumi-lang-nodejs=\"`deleteVpcIpBlock`\" pulumi-lang-dotnet=\"`DeleteVpcIpBlock`\" pulumi-lang-go=\"`deleteVpcIpBlock`\" pulumi-lang-python=\"`delete_vpc_ip_block`\" pulumi-lang-yaml=\"`deleteVpcIpBlock`\" pulumi-lang-java=\"`deleteVpcIpBlock`\"\u003e`delete_vpc_ip_block`\u003c/span\u003e. See \u003cspan pulumi-lang-nodejs=\"`toConnectVpcIpBlock`\" pulumi-lang-dotnet=\"`ToConnectVpcIpBlock`\" pulumi-lang-go=\"`toConnectVpcIpBlock`\" pulumi-lang-python=\"`to_connect_vpc_ip_block`\" pulumi-lang-yaml=\"`toConnectVpcIpBlock`\" pulumi-lang-java=\"`toConnectVpcIpBlock`\"\u003e`to_connect_vpc_ip_block`\u003c/span\u003e below.\n"},"userVpcId":{"type":"string","description":"User's VpcID.\n","willReplaceOnChanges":true},"vpcSlbIntranetEnable":{"type":"boolean","description":"Whether the slb of the Vpc supports.\n"},"zoneId":{"type":"string","description":"The zone where the instance is deployed.\n","willReplaceOnChanges":true},"zoneVswitchSecurityGroups":{"type":"array","items":{"$ref":"#/types/alicloud:apigateway/InstanceZoneVswitchSecurityGroup:InstanceZoneVswitchSecurityGroup"},"description":"Network configuration details for Vpc integration instance which includes the availability zone, VSwitch, and security group information. See \u003cspan pulumi-lang-nodejs=\"`zoneVswitchSecurityGroup`\" pulumi-lang-dotnet=\"`ZoneVswitchSecurityGroup`\" pulumi-lang-go=\"`zoneVswitchSecurityGroup`\" pulumi-lang-python=\"`zone_vswitch_security_group`\" pulumi-lang-yaml=\"`zoneVswitchSecurityGroup`\" pulumi-lang-java=\"`zoneVswitchSecurityGroup`\"\u003e`zone_vswitch_security_group`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"requiredInputs":["httpsPolicy","instanceName","instanceSpec","paymentType"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"connectCidrBlocks":{"type":"string","description":"(Available since v1.228.0) The CIDR blocks that can be accessed by the Vpc integration instance.\n"},"createTime":{"type":"string","description":"Creation time.\n"},"deleteVpcIpBlock":{"type":"string","description":"Indicates whether to delete the IP block that the VPC can access, conflict with \u003cspan pulumi-lang-nodejs=\"`toConnectVpcIpBlock`\" pulumi-lang-dotnet=\"`ToConnectVpcIpBlock`\" pulumi-lang-go=\"`toConnectVpcIpBlock`\" pulumi-lang-python=\"`to_connect_vpc_ip_block`\" pulumi-lang-yaml=\"`toConnectVpcIpBlock`\" pulumi-lang-java=\"`toConnectVpcIpBlock`\"\u003e`to_connect_vpc_ip_block`\u003c/span\u003e.\n"},"duration":{"type":"integer","description":"The time of the instance package. Valid values:\n- PricingCycle is **Month**, indicating monthly payment. The value range is **1** to **9**.\n- PricingCycle is **Year**, indicating annual payment. The value range is **1** to **3**.\n\nWhen the value of\u003e ChargeType is **PrePaid**, this parameter is available and must be passed in.\n"},"egressIpv6Enable":{"type":"boolean","description":"Specifies whether IPv6 egress capability is enabled.\n"},"httpsPolicy":{"type":"string","description":"Https policy.\n"},"ingressVpcId":{"type":"string","description":"The VpcID which the client at.\n"},"ingressVpcOwnerId":{"type":"string","description":"The user ID that the VpcID of \u003cspan pulumi-lang-nodejs=\"`ingressVpcId`\" pulumi-lang-dotnet=\"`IngressVpcId`\" pulumi-lang-go=\"`ingressVpcId`\" pulumi-lang-python=\"`ingress_vpc_id`\" pulumi-lang-yaml=\"`ingressVpcId`\" pulumi-lang-java=\"`ingressVpcId`\"\u003e`ingress_vpc_id`\u003c/span\u003e belongs to.\n"},"ingressVswitchId":{"type":"string","description":"The VSwitch ID that belongs to the Vpc of \u003cspan pulumi-lang-nodejs=\"`ingressVpcId`\" pulumi-lang-dotnet=\"`IngressVpcId`\" pulumi-lang-go=\"`ingressVpcId`\" pulumi-lang-python=\"`ingress_vpc_id`\" pulumi-lang-yaml=\"`ingressVpcId`\" pulumi-lang-java=\"`ingressVpcId`\"\u003e`ingress_vpc_id`\u003c/span\u003e. Required when \u003cspan pulumi-lang-nodejs=\"`ingressVpcId`\" pulumi-lang-dotnet=\"`IngressVpcId`\" pulumi-lang-go=\"`ingressVpcId`\" pulumi-lang-python=\"`ingress_vpc_id`\" pulumi-lang-yaml=\"`ingressVpcId`\" pulumi-lang-java=\"`ingressVpcId`\"\u003e`ingress_vpc_id`\u003c/span\u003e is set.\n"},"instanceCidr":{"type":"string","description":"The CIDR block for the instance deployment. Valid values are:\n- `192.168.0.0/16`.\n- `172.16.0.0/12`.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"Instance name.\n"},"instanceSpec":{"type":"string","description":"Instance spec.\n"},"instanceType":{"type":"string","description":"The type of the instance. Valid values are:\n","willReplaceOnChanges":true},"ipv6Enabled":{"type":"boolean","description":"Specifies whether IPv6 ingress capability is enabled.\n"},"paymentType":{"type":"string","description":"The payment type of the resource.\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The subscription instance is of the subscription year or month type. This parameter is required when the Payment type is PrePaid. The value range is as follows:\n"},"skipWaitSwitch":{"type":"boolean","description":"Specifies whether to skip the WAIT_SWITCH status of instance when modifying instance spec. Works only when instance spec change.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"supportIpv6":{"type":"boolean","description":"Does ipv6 support.\n"},"toConnectVpcIpBlock":{"$ref":"#/types/alicloud:apigateway/InstanceToConnectVpcIpBlock:InstanceToConnectVpcIpBlock","description":"The additional IP block that the VPC integration instance can access, conflict with \u003cspan pulumi-lang-nodejs=\"`deleteVpcIpBlock`\" pulumi-lang-dotnet=\"`DeleteVpcIpBlock`\" pulumi-lang-go=\"`deleteVpcIpBlock`\" pulumi-lang-python=\"`delete_vpc_ip_block`\" pulumi-lang-yaml=\"`deleteVpcIpBlock`\" pulumi-lang-java=\"`deleteVpcIpBlock`\"\u003e`delete_vpc_ip_block`\u003c/span\u003e. See \u003cspan pulumi-lang-nodejs=\"`toConnectVpcIpBlock`\" pulumi-lang-dotnet=\"`ToConnectVpcIpBlock`\" pulumi-lang-go=\"`toConnectVpcIpBlock`\" pulumi-lang-python=\"`to_connect_vpc_ip_block`\" pulumi-lang-yaml=\"`toConnectVpcIpBlock`\" pulumi-lang-java=\"`toConnectVpcIpBlock`\"\u003e`to_connect_vpc_ip_block`\u003c/span\u003e below.\n"},"userVpcId":{"type":"string","description":"User's VpcID.\n","willReplaceOnChanges":true},"vpcSlbIntranetEnable":{"type":"boolean","description":"Whether the slb of the Vpc supports.\n"},"zoneId":{"type":"string","description":"The zone where the instance is deployed.\n","willReplaceOnChanges":true},"zoneVswitchSecurityGroups":{"type":"array","items":{"$ref":"#/types/alicloud:apigateway/InstanceZoneVswitchSecurityGroup:InstanceZoneVswitchSecurityGroup"},"description":"Network configuration details for Vpc integration instance which includes the availability zone, VSwitch, and security group information. See \u003cspan pulumi-lang-nodejs=\"`zoneVswitchSecurityGroup`\" pulumi-lang-dotnet=\"`ZoneVswitchSecurityGroup`\" pulumi-lang-go=\"`zoneVswitchSecurityGroup`\" pulumi-lang-python=\"`zone_vswitch_security_group`\" pulumi-lang-yaml=\"`zoneVswitchSecurityGroup`\" pulumi-lang-java=\"`zoneVswitchSecurityGroup`\"\u003e`zone_vswitch_security_group`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:apigateway/instanceAclAttachment:InstanceAclAttachment":{"description":"Provides an Instance ACL attachment resource for attaching an ACL to a specific API Gateway instance.\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst _default = new alicloud.apigateway.Instance(\"default\", {\n    instanceName: name,\n    instanceSpec: \"api.s1.small\",\n    httpsPolicy: \"HTTPS2_TLS1_0\",\n    zoneId: \"cn-hangzhou-MAZ6\",\n    paymentType: \"PayAsYouGo\",\n    instanceType: \"normal\",\n});\nconst defaultAccessControlList = new alicloud.apigateway.AccessControlList(\"default\", {\n    accessControlListName: name,\n    addressIpVersion: \"ipv4\",\n});\nconst defaultAclEntryAttachment = new alicloud.apigateway.AclEntryAttachment(\"default\", {\n    aclId: defaultAccessControlList.id,\n    entry: \"128.0.0.1/32\",\n    comment: \"test comment\",\n});\nconst defaultInstanceAclAttachment = new alicloud.apigateway.InstanceAclAttachment(\"default\", {\n    instanceId: _default.id,\n    aclId: defaultAccessControlList.id,\n    aclType: \"white\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault = alicloud.apigateway.Instance(\"default\",\n    instance_name=name,\n    instance_spec=\"api.s1.small\",\n    https_policy=\"HTTPS2_TLS1_0\",\n    zone_id=\"cn-hangzhou-MAZ6\",\n    payment_type=\"PayAsYouGo\",\n    instance_type=\"normal\")\ndefault_access_control_list = alicloud.apigateway.AccessControlList(\"default\",\n    access_control_list_name=name,\n    address_ip_version=\"ipv4\")\ndefault_acl_entry_attachment = alicloud.apigateway.AclEntryAttachment(\"default\",\n    acl_id=default_access_control_list.id,\n    entry=\"128.0.0.1/32\",\n    comment=\"test comment\")\ndefault_instance_acl_attachment = alicloud.apigateway.InstanceAclAttachment(\"default\",\n    instance_id=default.id,\n    acl_id=default_access_control_list.id,\n    acl_type=\"white\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var @default = new AliCloud.ApiGateway.Instance(\"default\", new()\n    {\n        InstanceName = name,\n        InstanceSpec = \"api.s1.small\",\n        HttpsPolicy = \"HTTPS2_TLS1_0\",\n        ZoneId = \"cn-hangzhou-MAZ6\",\n        PaymentType = \"PayAsYouGo\",\n        InstanceType = \"normal\",\n    });\n\n    var defaultAccessControlList = new AliCloud.ApiGateway.AccessControlList(\"default\", new()\n    {\n        AccessControlListName = name,\n        AddressIpVersion = \"ipv4\",\n    });\n\n    var defaultAclEntryAttachment = new AliCloud.ApiGateway.AclEntryAttachment(\"default\", new()\n    {\n        AclId = defaultAccessControlList.Id,\n        Entry = \"128.0.0.1/32\",\n        Comment = \"test comment\",\n    });\n\n    var defaultInstanceAclAttachment = new AliCloud.ApiGateway.InstanceAclAttachment(\"default\", new()\n    {\n        InstanceId = @default.Id,\n        AclId = defaultAccessControlList.Id,\n        AclType = \"white\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := apigateway.NewInstance(ctx, \"default\", \u0026apigateway.InstanceArgs{\n\t\t\tInstanceName: pulumi.String(name),\n\t\t\tInstanceSpec: pulumi.String(\"api.s1.small\"),\n\t\t\tHttpsPolicy:  pulumi.String(\"HTTPS2_TLS1_0\"),\n\t\t\tZoneId:       pulumi.String(\"cn-hangzhou-MAZ6\"),\n\t\t\tPaymentType:  pulumi.String(\"PayAsYouGo\"),\n\t\t\tInstanceType: pulumi.String(\"normal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAccessControlList, err := apigateway.NewAccessControlList(ctx, \"default\", \u0026apigateway.AccessControlListArgs{\n\t\t\tAccessControlListName: pulumi.String(name),\n\t\t\tAddressIpVersion:      pulumi.String(\"ipv4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewAclEntryAttachment(ctx, \"default\", \u0026apigateway.AclEntryAttachmentArgs{\n\t\t\tAclId:   defaultAccessControlList.ID(),\n\t\t\tEntry:   pulumi.String(\"128.0.0.1/32\"),\n\t\t\tComment: pulumi.String(\"test comment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewInstanceAclAttachment(ctx, \"default\", \u0026apigateway.InstanceAclAttachmentArgs{\n\t\t\tInstanceId: _default.ID(),\n\t\t\tAclId:      defaultAccessControlList.ID(),\n\t\t\tAclType:    pulumi.String(\"white\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.Instance;\nimport com.pulumi.alicloud.apigateway.InstanceArgs;\nimport com.pulumi.alicloud.apigateway.AccessControlList;\nimport com.pulumi.alicloud.apigateway.AccessControlListArgs;\nimport com.pulumi.alicloud.apigateway.AclEntryAttachment;\nimport com.pulumi.alicloud.apigateway.AclEntryAttachmentArgs;\nimport com.pulumi.alicloud.apigateway.InstanceAclAttachment;\nimport com.pulumi.alicloud.apigateway.InstanceAclAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .instanceName(name)\n            .instanceSpec(\"api.s1.small\")\n            .httpsPolicy(\"HTTPS2_TLS1_0\")\n            .zoneId(\"cn-hangzhou-MAZ6\")\n            .paymentType(\"PayAsYouGo\")\n            .instanceType(\"normal\")\n            .build());\n\n        var defaultAccessControlList = new AccessControlList(\"defaultAccessControlList\", AccessControlListArgs.builder()\n            .accessControlListName(name)\n            .addressIpVersion(\"ipv4\")\n            .build());\n\n        var defaultAclEntryAttachment = new AclEntryAttachment(\"defaultAclEntryAttachment\", AclEntryAttachmentArgs.builder()\n            .aclId(defaultAccessControlList.id())\n            .entry(\"128.0.0.1/32\")\n            .comment(\"test comment\")\n            .build());\n\n        var defaultInstanceAclAttachment = new InstanceAclAttachment(\"defaultInstanceAclAttachment\", InstanceAclAttachmentArgs.builder()\n            .instanceId(default_.id())\n            .aclId(defaultAccessControlList.id())\n            .aclType(\"white\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  default:\n    type: alicloud:apigateway:Instance\n    properties:\n      instanceName: ${name}\n      instanceSpec: api.s1.small\n      httpsPolicy: HTTPS2_TLS1_0\n      zoneId: cn-hangzhou-MAZ6\n      paymentType: PayAsYouGo\n      instanceType: normal\n  defaultAccessControlList:\n    type: alicloud:apigateway:AccessControlList\n    name: default\n    properties:\n      accessControlListName: ${name}\n      addressIpVersion: ipv4\n  defaultAclEntryAttachment:\n    type: alicloud:apigateway:AclEntryAttachment\n    name: default\n    properties:\n      aclId: ${defaultAccessControlList.id}\n      entry: 128.0.0.1/32\n      comment: test comment\n  defaultInstanceAclAttachment:\n    type: alicloud:apigateway:InstanceAclAttachment\n    name: default\n    properties:\n      instanceId: ${default.id}\n      aclId: ${defaultAccessControlList.id}\n      aclType: white\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApi Gateway Instance Acl Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:apigateway/instanceAclAttachment:InstanceAclAttachment example \u003cinstance_id\u003e:\u003cacl_id\u003e:\u003cacl_type\u003e\n```\n\n","properties":{"aclId":{"type":"string","description":"The ID of the ACL to attach.\n"},"aclType":{"type":"string","description":"The type of the ACL. Valid values: \u003cspan pulumi-lang-nodejs=\"`white`\" pulumi-lang-dotnet=\"`White`\" pulumi-lang-go=\"`white`\" pulumi-lang-python=\"`white`\" pulumi-lang-yaml=\"`white`\" pulumi-lang-java=\"`white`\"\u003e`white`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`black`\" pulumi-lang-dotnet=\"`Black`\" pulumi-lang-go=\"`black`\" pulumi-lang-python=\"`black`\" pulumi-lang-yaml=\"`black`\" pulumi-lang-java=\"`black`\"\u003e`black`\u003c/span\u003e.\n"},"instanceId":{"type":"string","description":"The ID of the API Gateway instance that the ACL will be attached to.\n"}},"required":["aclId","aclType","instanceId"],"inputProperties":{"aclId":{"type":"string","description":"The ID of the ACL to attach.\n","willReplaceOnChanges":true},"aclType":{"type":"string","description":"The type of the ACL. Valid values: \u003cspan pulumi-lang-nodejs=\"`white`\" pulumi-lang-dotnet=\"`White`\" pulumi-lang-go=\"`white`\" pulumi-lang-python=\"`white`\" pulumi-lang-yaml=\"`white`\" pulumi-lang-java=\"`white`\"\u003e`white`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`black`\" pulumi-lang-dotnet=\"`Black`\" pulumi-lang-go=\"`black`\" pulumi-lang-python=\"`black`\" pulumi-lang-yaml=\"`black`\" pulumi-lang-java=\"`black`\"\u003e`black`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the API Gateway instance that the ACL will be attached to.\n","willReplaceOnChanges":true}},"requiredInputs":["aclId","aclType","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceAclAttachment resources.\n","properties":{"aclId":{"type":"string","description":"The ID of the ACL to attach.\n","willReplaceOnChanges":true},"aclType":{"type":"string","description":"The type of the ACL. Valid values: \u003cspan pulumi-lang-nodejs=\"`white`\" pulumi-lang-dotnet=\"`White`\" pulumi-lang-go=\"`white`\" pulumi-lang-python=\"`white`\" pulumi-lang-yaml=\"`white`\" pulumi-lang-java=\"`white`\"\u003e`white`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`black`\" pulumi-lang-dotnet=\"`Black`\" pulumi-lang-go=\"`black`\" pulumi-lang-python=\"`black`\" pulumi-lang-yaml=\"`black`\" pulumi-lang-java=\"`black`\"\u003e`black`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the API Gateway instance that the ACL will be attached to.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:apigateway/logConfig:LogConfig":{"description":"Provides a Api Gateway Log Config resource.\n\nFor information about Api Gateway Log Config and how to use it, see [What is Log Config](https://www.alibabacloud.com/help/en/api-gateway/latest/api-cloudapi-2016-07-14-createlogconfig).\n\n\u003e **NOTE:** Available since v1.185.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.log.Project(\"example\", {\n    projectName: `${name}-${_default.result}`,\n    description: name,\n});\nconst exampleStore = new alicloud.log.Store(\"example\", {\n    projectName: example.projectName,\n    logstoreName: `${name}-${_default.result}`,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst exampleLogConfig = new alicloud.apigateway.LogConfig(\"example\", {\n    slsProject: example.projectName,\n    slsLogStore: exampleStore.logstoreName,\n    logType: \"PROVIDER\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.log.Project(\"example\",\n    project_name=f\"{name}-{default['result']}\",\n    description=name)\nexample_store = alicloud.log.Store(\"example\",\n    project_name=example.project_name,\n    logstore_name=f\"{name}-{default['result']}\",\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\nexample_log_config = alicloud.apigateway.LogConfig(\"example\",\n    sls_project=example.project_name,\n    sls_log_store=example_store.logstore_name,\n    log_type=\"PROVIDER\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Log.Project(\"example\", new()\n    {\n        ProjectName = $\"{name}-{@default.Result}\",\n        Description = name,\n    });\n\n    var exampleStore = new AliCloud.Log.Store(\"example\", new()\n    {\n        ProjectName = example.ProjectName,\n        LogstoreName = $\"{name}-{@default.Result}\",\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var exampleLogConfig = new AliCloud.ApiGateway.LogConfig(\"example\", new()\n    {\n        SlsProject = example.ProjectName,\n        SlsLogStore = exampleStore.LogstoreName,\n        LogType = \"PROVIDER\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := log.NewStore(ctx, \"example\", \u0026log.StoreArgs{\n\t\t\tProjectName:        example.ProjectName,\n\t\t\tLogstoreName:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewLogConfig(ctx, \"example\", \u0026apigateway.LogConfigArgs{\n\t\t\tSlsProject:  example.ProjectName,\n\t\t\tSlsLogStore: exampleStore.LogstoreName,\n\t\t\tLogType:     pulumi.String(\"PROVIDER\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.apigateway.LogConfig;\nimport com.pulumi.alicloud.apigateway.LogConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .projectName(String.format(\"%s-%s\", name,default_.result()))\n            .description(name)\n            .build());\n\n        var exampleStore = new Store(\"exampleStore\", StoreArgs.builder()\n            .projectName(example.projectName())\n            .logstoreName(String.format(\"%s-%s\", name,default_.result()))\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var exampleLogConfig = new LogConfig(\"exampleLogConfig\", LogConfigArgs.builder()\n            .slsProject(example.projectName())\n            .slsLogStore(exampleStore.logstoreName())\n            .logType(\"PROVIDER\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:log:Project\n    properties:\n      projectName: ${name}-${default.result}\n      description: ${name}\n  exampleStore:\n    type: alicloud:log:Store\n    name: example\n    properties:\n      projectName: ${example.projectName}\n      logstoreName: ${name}-${default.result}\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  exampleLogConfig:\n    type: alicloud:apigateway:LogConfig\n    name: example\n    properties:\n      slsProject: ${example.projectName}\n      slsLogStore: ${exampleStore.logstoreName}\n      logType: PROVIDER\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApi Gateway Log Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:apigateway/logConfig:LogConfig example \u003clog_type\u003e\n```\n\n","properties":{"logType":{"type":"string","description":"The type the of log. Valid values: `PROVIDER`.\n"},"slsLogStore":{"type":"string","description":"The name of the Log Store.\n"},"slsProject":{"type":"string","description":"The name of the Project.\n"}},"required":["logType","slsLogStore","slsProject"],"inputProperties":{"logType":{"type":"string","description":"The type the of log. Valid values: `PROVIDER`.\n","willReplaceOnChanges":true},"slsLogStore":{"type":"string","description":"The name of the Log Store.\n"},"slsProject":{"type":"string","description":"The name of the Project.\n"}},"requiredInputs":["logType","slsLogStore","slsProject"],"stateInputs":{"description":"Input properties used for looking up and filtering LogConfig resources.\n","properties":{"logType":{"type":"string","description":"The type the of log. Valid values: `PROVIDER`.\n","willReplaceOnChanges":true},"slsLogStore":{"type":"string","description":"The name of the Log Store.\n"},"slsProject":{"type":"string","description":"The name of the Project.\n"}},"type":"object"}},"alicloud:apigateway/model:Model":{"description":"Provides a Api Gateway Model resource.\n\nFor information about Api Gateway Model and how to use it, see [What is Model](https://www.alibabacloud.com/help/en/api-gateway/latest/api-cloudapi-2016-07-14-createmodel).\n\n\u003e **NOTE:** Available since v1.187.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.apigateway.Group(\"default\", {\n    name: \"example_value\",\n    description: \"example_value\",\n});\nconst defaultModel = new alicloud.apigateway.Model(\"default\", {\n    groupId: _default.id,\n    modelName: \"example_value\",\n    schema: \"{\\\"type\\\":\\\"object\\\",\\\"properties\\\":{\\\"id\\\":{\\\"format\\\":\\\"int64\\\",\\\"maximum\\\":100,\\\"exclusiveMaximum\\\":true,\\\"type\\\":\\\"integer\\\"},\\\"name\\\":{\\\"maxLength\\\":10,\\\"type\\\":\\\"string\\\"}}}\",\n    description: \"example_value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.apigateway.Group(\"default\",\n    name=\"example_value\",\n    description=\"example_value\")\ndefault_model = alicloud.apigateway.Model(\"default\",\n    group_id=default.id,\n    model_name=\"example_value\",\n    schema=\"{\\\"type\\\":\\\"object\\\",\\\"properties\\\":{\\\"id\\\":{\\\"format\\\":\\\"int64\\\",\\\"maximum\\\":100,\\\"exclusiveMaximum\\\":true,\\\"type\\\":\\\"integer\\\"},\\\"name\\\":{\\\"maxLength\\\":10,\\\"type\\\":\\\"string\\\"}}}\",\n    description=\"example_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.ApiGateway.Group(\"default\", new()\n    {\n        Name = \"example_value\",\n        Description = \"example_value\",\n    });\n\n    var defaultModel = new AliCloud.ApiGateway.Model(\"default\", new()\n    {\n        GroupId = @default.Id,\n        ModelName = \"example_value\",\n        Schema = \"{\\\"type\\\":\\\"object\\\",\\\"properties\\\":{\\\"id\\\":{\\\"format\\\":\\\"int64\\\",\\\"maximum\\\":100,\\\"exclusiveMaximum\\\":true,\\\"type\\\":\\\"integer\\\"},\\\"name\\\":{\\\"maxLength\\\":10,\\\"type\\\":\\\"string\\\"}}}\",\n        Description = \"example_value\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := apigateway.NewGroup(ctx, \"default\", \u0026apigateway.GroupArgs{\n\t\t\tName:        pulumi.String(\"example_value\"),\n\t\t\tDescription: pulumi.String(\"example_value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewModel(ctx, \"default\", \u0026apigateway.ModelArgs{\n\t\t\tGroupId:     _default.ID(),\n\t\t\tModelName:   pulumi.String(\"example_value\"),\n\t\t\tSchema:      pulumi.String(\"{\\\"type\\\":\\\"object\\\",\\\"properties\\\":{\\\"id\\\":{\\\"format\\\":\\\"int64\\\",\\\"maximum\\\":100,\\\"exclusiveMaximum\\\":true,\\\"type\\\":\\\"integer\\\"},\\\"name\\\":{\\\"maxLength\\\":10,\\\"type\\\":\\\"string\\\"}}}\"),\n\t\t\tDescription: pulumi.String(\"example_value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.Group;\nimport com.pulumi.alicloud.apigateway.GroupArgs;\nimport com.pulumi.alicloud.apigateway.Model;\nimport com.pulumi.alicloud.apigateway.ModelArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Group(\"default\", GroupArgs.builder()\n            .name(\"example_value\")\n            .description(\"example_value\")\n            .build());\n\n        var defaultModel = new Model(\"defaultModel\", ModelArgs.builder()\n            .groupId(default_.id())\n            .modelName(\"example_value\")\n            .schema(\"{\\\"type\\\":\\\"object\\\",\\\"properties\\\":{\\\"id\\\":{\\\"format\\\":\\\"int64\\\",\\\"maximum\\\":100,\\\"exclusiveMaximum\\\":true,\\\"type\\\":\\\"integer\\\"},\\\"name\\\":{\\\"maxLength\\\":10,\\\"type\\\":\\\"string\\\"}}}\")\n            .description(\"example_value\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:apigateway:Group\n    properties:\n      name: example_value\n      description: example_value\n  defaultModel:\n    type: alicloud:apigateway:Model\n    name: default\n    properties:\n      groupId: ${default.id}\n      modelName: example_value\n      schema: '{\"type\":\"object\",\"properties\":{\"id\":{\"format\":\"int64\",\"maximum\":100,\"exclusiveMaximum\":true,\"type\":\"integer\"},\"name\":{\"maxLength\":10,\"type\":\"string\"}}}'\n      description: example_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApi Gateway Model can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:apigateway/model:Model example \u003cgroup_id\u003e:\u003cmodel_name\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the model.\n"},"groupId":{"type":"string","description":"The group of the model belongs to.\n"},"modelName":{"type":"string","description":"The name of the model.\n"},"schema":{"type":"string","description":"The schema of the model.\n"}},"required":["groupId","modelName","schema"],"inputProperties":{"description":{"type":"string","description":"The description of the model.\n"},"groupId":{"type":"string","description":"The group of the model belongs to.\n","willReplaceOnChanges":true},"modelName":{"type":"string","description":"The name of the model.\n","willReplaceOnChanges":true},"schema":{"type":"string","description":"The schema of the model.\n"}},"requiredInputs":["groupId","modelName","schema"],"stateInputs":{"description":"Input properties used for looking up and filtering Model resources.\n","properties":{"description":{"type":"string","description":"The description of the model.\n"},"groupId":{"type":"string","description":"The group of the model belongs to.\n","willReplaceOnChanges":true},"modelName":{"type":"string","description":"The name of the model.\n","willReplaceOnChanges":true},"schema":{"type":"string","description":"The schema of the model.\n"}},"type":"object"}},"alicloud:apigateway/plugin:Plugin":{"description":"Provides a Api Gateway Plugin resource. \n\nFor information about Api Gateway Plugin and how to use it, see [What is Plugin](https://www.alibabacloud.com/help/en/api-gateway/developer-reference/api-cloudapi-2016-07-14-createplugin).\n\n\u003e **NOTE:** Available since v1.187.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst _default = new alicloud.apigateway.Plugin(\"default\", {\n    description: name,\n    pluginName: name,\n    pluginData: JSON.stringify({\n        routes: [\n            {\n                name: \"Vip\",\n                condition: \"$CaAppId = 123456\",\n                backend: {\n                    type: \"HTTP-VPC\",\n                    vpcAccessName: \"slbAccessForVip\",\n                },\n            },\n            {\n                name: \"MockForOldClient\",\n                condition: \"$ClientVersion \u003c '2.0.5'\",\n                backend: {\n                    type: \"MOCK\",\n                    statusCode: 400,\n                    mockBody: \"This version is not supported!!!\",\n                },\n            },\n            {\n                name: \"BlueGreenPercent05\",\n                condition: \"1 = 1\",\n                backend: {\n                    type: \"HTTP\",\n                    address: \"https://beta-version.api.foo.com\",\n                },\n                \"constant-parameters\": [{\n                    name: \"x-route-blue-green\",\n                    location: \"header\",\n                    value: \"route-blue-green\",\n                }],\n            },\n        ],\n    }),\n    pluginType: \"routing\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault = alicloud.apigateway.Plugin(\"default\",\n    description=name,\n    plugin_name=name,\n    plugin_data=json.dumps({\n        \"routes\": [\n            {\n                \"name\": \"Vip\",\n                \"condition\": \"$CaAppId = 123456\",\n                \"backend\": {\n                    \"type\": \"HTTP-VPC\",\n                    \"vpcAccessName\": \"slbAccessForVip\",\n                },\n            },\n            {\n                \"name\": \"MockForOldClient\",\n                \"condition\": \"$ClientVersion \u003c '2.0.5'\",\n                \"backend\": {\n                    \"type\": \"MOCK\",\n                    \"statusCode\": 400,\n                    \"mockBody\": \"This version is not supported!!!\",\n                },\n            },\n            {\n                \"name\": \"BlueGreenPercent05\",\n                \"condition\": \"1 = 1\",\n                \"backend\": {\n                    \"type\": \"HTTP\",\n                    \"address\": \"https://beta-version.api.foo.com\",\n                },\n                \"constant-parameters\": [{\n                    \"name\": \"x-route-blue-green\",\n                    \"location\": \"header\",\n                    \"value\": \"route-blue-green\",\n                }],\n            },\n        ],\n    }),\n    plugin_type=\"routing\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var @default = new AliCloud.ApiGateway.Plugin(\"default\", new()\n    {\n        Description = name,\n        PluginName = name,\n        PluginData = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"routes\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"name\"] = \"Vip\",\n                    [\"condition\"] = \"$CaAppId = 123456\",\n                    [\"backend\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"type\"] = \"HTTP-VPC\",\n                        [\"vpcAccessName\"] = \"slbAccessForVip\",\n                    },\n                },\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"name\"] = \"MockForOldClient\",\n                    [\"condition\"] = \"$ClientVersion \u003c '2.0.5'\",\n                    [\"backend\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"type\"] = \"MOCK\",\n                        [\"statusCode\"] = 400,\n                        [\"mockBody\"] = \"This version is not supported!!!\",\n                    },\n                },\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"name\"] = \"BlueGreenPercent05\",\n                    [\"condition\"] = \"1 = 1\",\n                    [\"backend\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"type\"] = \"HTTP\",\n                        [\"address\"] = \"https://beta-version.api.foo.com\",\n                    },\n                    [\"constant-parameters\"] = new[]\n                    {\n                        new Dictionary\u003cstring, object?\u003e\n                        {\n                            [\"name\"] = \"x-route-blue-green\",\n                            [\"location\"] = \"header\",\n                            [\"value\"] = \"route-blue-green\",\n                        },\n                    },\n                },\n            },\n        }),\n        PluginType = \"routing\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"routes\": []interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":      \"Vip\",\n\t\t\t\t\t\"condition\": \"$CaAppId = 123456\",\n\t\t\t\t\t\"backend\": map[string]interface{}{\n\t\t\t\t\t\t\"type\":          \"HTTP-VPC\",\n\t\t\t\t\t\t\"vpcAccessName\": \"slbAccessForVip\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":      \"MockForOldClient\",\n\t\t\t\t\t\"condition\": \"$ClientVersion \u003c '2.0.5'\",\n\t\t\t\t\t\"backend\": map[string]interface{}{\n\t\t\t\t\t\t\"type\":       \"MOCK\",\n\t\t\t\t\t\t\"statusCode\": 400,\n\t\t\t\t\t\t\"mockBody\":   \"This version is not supported!!!\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":      \"BlueGreenPercent05\",\n\t\t\t\t\t\"condition\": \"1 = 1\",\n\t\t\t\t\t\"backend\": map[string]interface{}{\n\t\t\t\t\t\t\"type\":    \"HTTP\",\n\t\t\t\t\t\t\"address\": \"https://beta-version.api.foo.com\",\n\t\t\t\t\t},\n\t\t\t\t\t\"constant-parameters\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"name\":     \"x-route-blue-green\",\n\t\t\t\t\t\t\t\"location\": \"header\",\n\t\t\t\t\t\t\t\"value\":    \"route-blue-green\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = apigateway.NewPlugin(ctx, \"default\", \u0026apigateway.PluginArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tPluginName:  pulumi.String(name),\n\t\t\tPluginData:  pulumi.String(json0),\n\t\t\tPluginType:  pulumi.String(\"routing\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.Plugin;\nimport com.pulumi.alicloud.apigateway.PluginArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var default_ = new Plugin(\"default\", PluginArgs.builder()\n            .description(name)\n            .pluginName(name)\n            .pluginData(serializeJson(\n                jsonObject(\n                    jsonProperty(\"routes\", jsonArray(\n                        jsonObject(\n                            jsonProperty(\"name\", \"Vip\"),\n                            jsonProperty(\"condition\", \"$CaAppId = 123456\"),\n                            jsonProperty(\"backend\", jsonObject(\n                                jsonProperty(\"type\", \"HTTP-VPC\"),\n                                jsonProperty(\"vpcAccessName\", \"slbAccessForVip\")\n                            ))\n                        ), \n                        jsonObject(\n                            jsonProperty(\"name\", \"MockForOldClient\"),\n                            jsonProperty(\"condition\", \"$ClientVersion \u003c '2.0.5'\"),\n                            jsonProperty(\"backend\", jsonObject(\n                                jsonProperty(\"type\", \"MOCK\"),\n                                jsonProperty(\"statusCode\", 400),\n                                jsonProperty(\"mockBody\", \"This version is not supported!!!\")\n                            ))\n                        ), \n                        jsonObject(\n                            jsonProperty(\"name\", \"BlueGreenPercent05\"),\n                            jsonProperty(\"condition\", \"1 = 1\"),\n                            jsonProperty(\"backend\", jsonObject(\n                                jsonProperty(\"type\", \"HTTP\"),\n                                jsonProperty(\"address\", \"https://beta-version.api.foo.com\")\n                            )),\n                            jsonProperty(\"constant-parameters\", jsonArray(jsonObject(\n                                jsonProperty(\"name\", \"x-route-blue-green\"),\n                                jsonProperty(\"location\", \"header\"),\n                                jsonProperty(\"value\", \"route-blue-green\")\n                            )))\n                        )\n                    ))\n                )))\n            .pluginType(\"routing\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  default:\n    type: alicloud:apigateway:Plugin\n    properties:\n      description: ${name}\n      pluginName: ${name}\n      pluginData:\n        fn::toJSON:\n          routes:\n            - name: Vip\n              condition: $CaAppId = 123456\n              backend:\n                type: HTTP-VPC\n                vpcAccessName: slbAccessForVip\n            - name: MockForOldClient\n              condition: $ClientVersion \u003c '2.0.5'\n              backend:\n                type: MOCK\n                statusCode: 400\n                mockBody: This version is not supported!!!\n            - name: BlueGreenPercent05\n              condition: 1 = 1\n              backend:\n                type: HTTP\n                address: https://beta-version.api.foo.com\n              constant-parameters:\n                - name: x-route-blue-green\n                  location: header\n                  value: route-blue-green\n      pluginType: routing\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApi Gateway Plugin can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:apigateway/plugin:Plugin example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"Create time.\n"},"description":{"type":"string","description":"The description of the plug-in, which cannot exceed 200 characters.\n"},"pluginData":{"type":"string","description":"The definition statement of the plug-in. Plug-in definition statements in the JSON and YAML formats are supported.\n"},"pluginName":{"type":"string","description":"The name of the plug-in that you want to create. It can contain uppercase English letters, lowercase English letters, Chinese characters, numbers, and underscores (_). It must be 4 to 50 characters in length and cannot start with an underscore (_).\n"},"pluginType":{"type":"string","description":"The type of the plug-in. Valid values:\n- \"trafficControl\"\n- \"ipControl\"\n- \"backendSignature\"\n- \"jwtAuth\"\n- \"basicAuth\"\n- \"cors\"\n- \"caching\"\n- \"routing\"\n- \"accessControl\"\n- \"errorMapping\"\n- \"circuitBreaker\"\n- \"remoteAuth\"\n- \"logMask\"\n- \"transformer\".\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"required":["createTime","pluginData","pluginName","pluginType"],"inputProperties":{"description":{"type":"string","description":"The description of the plug-in, which cannot exceed 200 characters.\n"},"pluginData":{"type":"string","description":"The definition statement of the plug-in. Plug-in definition statements in the JSON and YAML formats are supported.\n"},"pluginName":{"type":"string","description":"The name of the plug-in that you want to create. It can contain uppercase English letters, lowercase English letters, Chinese characters, numbers, and underscores (_). It must be 4 to 50 characters in length and cannot start with an underscore (_).\n"},"pluginType":{"type":"string","description":"The type of the plug-in. Valid values:\n- \"trafficControl\"\n- \"ipControl\"\n- \"backendSignature\"\n- \"jwtAuth\"\n- \"basicAuth\"\n- \"cors\"\n- \"caching\"\n- \"routing\"\n- \"accessControl\"\n- \"errorMapping\"\n- \"circuitBreaker\"\n- \"remoteAuth\"\n- \"logMask\"\n- \"transformer\".\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"requiredInputs":["pluginData","pluginName","pluginType"],"stateInputs":{"description":"Input properties used for looking up and filtering Plugin resources.\n","properties":{"createTime":{"type":"string","description":"Create time.\n"},"description":{"type":"string","description":"The description of the plug-in, which cannot exceed 200 characters.\n"},"pluginData":{"type":"string","description":"The definition statement of the plug-in. Plug-in definition statements in the JSON and YAML formats are supported.\n"},"pluginName":{"type":"string","description":"The name of the plug-in that you want to create. It can contain uppercase English letters, lowercase English letters, Chinese characters, numbers, and underscores (_). It must be 4 to 50 characters in length and cannot start with an underscore (_).\n"},"pluginType":{"type":"string","description":"The type of the plug-in. Valid values:\n- \"trafficControl\"\n- \"ipControl\"\n- \"backendSignature\"\n- \"jwtAuth\"\n- \"basicAuth\"\n- \"cors\"\n- \"caching\"\n- \"routing\"\n- \"accessControl\"\n- \"errorMapping\"\n- \"circuitBreaker\"\n- \"remoteAuth\"\n- \"logMask\"\n- \"transformer\".\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object"}},"alicloud:apigateway/pluginAttachment:PluginAttachment":{"description":"Provides a plugin attachment resource.It is used for attaching a specific plugin to an api. \n\nFor information about Api Gateway Plugin attachment and how to use it, see [Attach Plugin to specified API](https://www.alibabacloud.com/help/en/api-gateway/developer-reference/api-cloudapi-2016-07-14-attachplugin)\n\n\u003e **NOTE:** Available since v1.219.0.\n\n\u003e **NOTE:** Terraform will auto build plugin attachment while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.apigateway.PluginAttachment`\" pulumi-lang-dotnet=\"`alicloud.apigateway.PluginAttachment`\" pulumi-lang-go=\"`apigateway.PluginAttachment`\" pulumi-lang-python=\"`apigateway.PluginAttachment`\" pulumi-lang-yaml=\"`alicloud.apigateway.PluginAttachment`\" pulumi-lang-java=\"`alicloud.apigateway.PluginAttachment`\"\u003e`alicloud.apigateway.PluginAttachment`\u003c/span\u003e to build.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst example = new alicloud.apigateway.Group(\"example\", {\n    name: name,\n    description: name,\n});\nconst exampleApi = new alicloud.apigateway.Api(\"example\", {\n    groupId: example.id,\n    name: name,\n    description: name,\n    authType: \"APP\",\n    forceNonceCheck: false,\n    requestConfig: {\n        protocol: \"HTTP\",\n        method: \"GET\",\n        path: \"/example/path\",\n        mode: \"MAPPING\",\n    },\n    serviceType: \"HTTP\",\n    httpServiceConfig: {\n        address: \"http://apigateway-backend.alicloudapi.com:8080\",\n        method: \"GET\",\n        path: \"/web/cloudapi\",\n        timeout: 12,\n        aoneName: \"cloudapi-openapi\",\n    },\n    requestParameters: [{\n        name: \"example\",\n        type: \"STRING\",\n        required: \"OPTIONAL\",\n        \"in\": \"QUERY\",\n        inService: \"QUERY\",\n        nameService: \"exampleservice\",\n    }],\n    stageNames: [\n        \"RELEASE\",\n        \"TEST\",\n    ],\n});\nconst examplePlugin = new alicloud.apigateway.Plugin(\"example\", {\n    description: \"tf_example\",\n    pluginName: \"tf_example\",\n    pluginData: JSON.stringify({\n        allowOrigins: \"api.foo.com\",\n        allowMethods: \"GET,POST,PUT,DELETE,HEAD,OPTIONS,PATCH\",\n        allowHeaders: \"Authorization,Accept,Accept-Ranges,Cache-Control,Range,Date,Content-Type,Content-Length,Content-MD5,User-Agent,X-Ca-Signature,X-Ca-Signature-Headers,X-Ca-Signature-Method,X-Ca-Key,X-Ca-Timestamp,X-Ca-Nonce,X-Ca-Stage,X-Ca-Request-Mode,x-ca-deviceid\",\n        exposeHeaders: \"Content-MD5,Server,Date,Latency,X-Ca-Request-Id,X-Ca-Error-Code,X-Ca-Error-Message\",\n        maxAge: 172800,\n        allowCredentials: true,\n    }),\n    pluginType: \"cors\",\n});\nconst examplePluginAttachment = new alicloud.apigateway.PluginAttachment(\"example\", {\n    apiId: exampleApi.apiId,\n    groupId: example.id,\n    pluginId: examplePlugin.id,\n    stageName: \"RELEASE\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\nexample = alicloud.apigateway.Group(\"example\",\n    name=name,\n    description=name)\nexample_api = alicloud.apigateway.Api(\"example\",\n    group_id=example.id,\n    name=name,\n    description=name,\n    auth_type=\"APP\",\n    force_nonce_check=False,\n    request_config={\n        \"protocol\": \"HTTP\",\n        \"method\": \"GET\",\n        \"path\": \"/example/path\",\n        \"mode\": \"MAPPING\",\n    },\n    service_type=\"HTTP\",\n    http_service_config={\n        \"address\": \"http://apigateway-backend.alicloudapi.com:8080\",\n        \"method\": \"GET\",\n        \"path\": \"/web/cloudapi\",\n        \"timeout\": 12,\n        \"aone_name\": \"cloudapi-openapi\",\n    },\n    request_parameters=[{\n        \"name\": \"example\",\n        \"type\": \"STRING\",\n        \"required\": \"OPTIONAL\",\n        \"in_\": \"QUERY\",\n        \"in_service\": \"QUERY\",\n        \"name_service\": \"exampleservice\",\n    }],\n    stage_names=[\n        \"RELEASE\",\n        \"TEST\",\n    ])\nexample_plugin = alicloud.apigateway.Plugin(\"example\",\n    description=\"tf_example\",\n    plugin_name=\"tf_example\",\n    plugin_data=json.dumps({\n        \"allowOrigins\": \"api.foo.com\",\n        \"allowMethods\": \"GET,POST,PUT,DELETE,HEAD,OPTIONS,PATCH\",\n        \"allowHeaders\": \"Authorization,Accept,Accept-Ranges,Cache-Control,Range,Date,Content-Type,Content-Length,Content-MD5,User-Agent,X-Ca-Signature,X-Ca-Signature-Headers,X-Ca-Signature-Method,X-Ca-Key,X-Ca-Timestamp,X-Ca-Nonce,X-Ca-Stage,X-Ca-Request-Mode,x-ca-deviceid\",\n        \"exposeHeaders\": \"Content-MD5,Server,Date,Latency,X-Ca-Request-Id,X-Ca-Error-Code,X-Ca-Error-Message\",\n        \"maxAge\": 172800,\n        \"allowCredentials\": True,\n    }),\n    plugin_type=\"cors\")\nexample_plugin_attachment = alicloud.apigateway.PluginAttachment(\"example\",\n    api_id=example_api.api_id,\n    group_id=example.id,\n    plugin_id=example_plugin.id,\n    stage_name=\"RELEASE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var example = new AliCloud.ApiGateway.Group(\"example\", new()\n    {\n        Name = name,\n        Description = name,\n    });\n\n    var exampleApi = new AliCloud.ApiGateway.Api(\"example\", new()\n    {\n        GroupId = example.Id,\n        Name = name,\n        Description = name,\n        AuthType = \"APP\",\n        ForceNonceCheck = false,\n        RequestConfig = new AliCloud.ApiGateway.Inputs.ApiRequestConfigArgs\n        {\n            Protocol = \"HTTP\",\n            Method = \"GET\",\n            Path = \"/example/path\",\n            Mode = \"MAPPING\",\n        },\n        ServiceType = \"HTTP\",\n        HttpServiceConfig = new AliCloud.ApiGateway.Inputs.ApiHttpServiceConfigArgs\n        {\n            Address = \"http://apigateway-backend.alicloudapi.com:8080\",\n            Method = \"GET\",\n            Path = \"/web/cloudapi\",\n            Timeout = 12,\n            AoneName = \"cloudapi-openapi\",\n        },\n        RequestParameters = new[]\n        {\n            new AliCloud.ApiGateway.Inputs.ApiRequestParameterArgs\n            {\n                Name = \"example\",\n                Type = \"STRING\",\n                Required = \"OPTIONAL\",\n                In = \"QUERY\",\n                InService = \"QUERY\",\n                NameService = \"exampleservice\",\n            },\n        },\n        StageNames = new[]\n        {\n            \"RELEASE\",\n            \"TEST\",\n        },\n    });\n\n    var examplePlugin = new AliCloud.ApiGateway.Plugin(\"example\", new()\n    {\n        Description = \"tf_example\",\n        PluginName = \"tf_example\",\n        PluginData = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"allowOrigins\"] = \"api.foo.com\",\n            [\"allowMethods\"] = \"GET,POST,PUT,DELETE,HEAD,OPTIONS,PATCH\",\n            [\"allowHeaders\"] = \"Authorization,Accept,Accept-Ranges,Cache-Control,Range,Date,Content-Type,Content-Length,Content-MD5,User-Agent,X-Ca-Signature,X-Ca-Signature-Headers,X-Ca-Signature-Method,X-Ca-Key,X-Ca-Timestamp,X-Ca-Nonce,X-Ca-Stage,X-Ca-Request-Mode,x-ca-deviceid\",\n            [\"exposeHeaders\"] = \"Content-MD5,Server,Date,Latency,X-Ca-Request-Id,X-Ca-Error-Code,X-Ca-Error-Message\",\n            [\"maxAge\"] = 172800,\n            [\"allowCredentials\"] = true,\n        }),\n        PluginType = \"cors\",\n    });\n\n    var examplePluginAttachment = new AliCloud.ApiGateway.PluginAttachment(\"example\", new()\n    {\n        ApiId = exampleApi.ApiId,\n        GroupId = example.Id,\n        PluginId = examplePlugin.Id,\n        StageName = \"RELEASE\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := apigateway.NewGroup(ctx, \"example\", \u0026apigateway.GroupArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleApi, err := apigateway.NewApi(ctx, \"example\", \u0026apigateway.ApiArgs{\n\t\t\tGroupId:         example.ID(),\n\t\t\tName:            pulumi.String(name),\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tAuthType:        pulumi.String(\"APP\"),\n\t\t\tForceNonceCheck: pulumi.Bool(false),\n\t\t\tRequestConfig: \u0026apigateway.ApiRequestConfigArgs{\n\t\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\t\tMethod:   pulumi.String(\"GET\"),\n\t\t\t\tPath:     pulumi.String(\"/example/path\"),\n\t\t\t\tMode:     pulumi.String(\"MAPPING\"),\n\t\t\t},\n\t\t\tServiceType: pulumi.String(\"HTTP\"),\n\t\t\tHttpServiceConfig: \u0026apigateway.ApiHttpServiceConfigArgs{\n\t\t\t\tAddress:  pulumi.String(\"http://apigateway-backend.alicloudapi.com:8080\"),\n\t\t\t\tMethod:   pulumi.String(\"GET\"),\n\t\t\t\tPath:     pulumi.String(\"/web/cloudapi\"),\n\t\t\t\tTimeout:  pulumi.Int(12),\n\t\t\t\tAoneName: pulumi.String(\"cloudapi-openapi\"),\n\t\t\t},\n\t\t\tRequestParameters: apigateway.ApiRequestParameterArray{\n\t\t\t\t\u0026apigateway.ApiRequestParameterArgs{\n\t\t\t\t\tName:        pulumi.String(\"example\"),\n\t\t\t\t\tType:        pulumi.String(\"STRING\"),\n\t\t\t\t\tRequired:    pulumi.String(\"OPTIONAL\"),\n\t\t\t\t\tIn:          pulumi.String(\"QUERY\"),\n\t\t\t\t\tInService:   pulumi.String(\"QUERY\"),\n\t\t\t\t\tNameService: pulumi.String(\"exampleservice\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tStageNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"RELEASE\"),\n\t\t\t\tpulumi.String(\"TEST\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"allowOrigins\":     \"api.foo.com\",\n\t\t\t\"allowMethods\":     \"GET,POST,PUT,DELETE,HEAD,OPTIONS,PATCH\",\n\t\t\t\"allowHeaders\":     \"Authorization,Accept,Accept-Ranges,Cache-Control,Range,Date,Content-Type,Content-Length,Content-MD5,User-Agent,X-Ca-Signature,X-Ca-Signature-Headers,X-Ca-Signature-Method,X-Ca-Key,X-Ca-Timestamp,X-Ca-Nonce,X-Ca-Stage,X-Ca-Request-Mode,x-ca-deviceid\",\n\t\t\t\"exposeHeaders\":    \"Content-MD5,Server,Date,Latency,X-Ca-Request-Id,X-Ca-Error-Code,X-Ca-Error-Message\",\n\t\t\t\"maxAge\":           172800,\n\t\t\t\"allowCredentials\": true,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\texamplePlugin, err := apigateway.NewPlugin(ctx, \"example\", \u0026apigateway.PluginArgs{\n\t\t\tDescription: pulumi.String(\"tf_example\"),\n\t\t\tPluginName:  pulumi.String(\"tf_example\"),\n\t\t\tPluginData:  pulumi.String(json0),\n\t\t\tPluginType:  pulumi.String(\"cors\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewPluginAttachment(ctx, \"example\", \u0026apigateway.PluginAttachmentArgs{\n\t\t\tApiId:     exampleApi.ApiId,\n\t\t\tGroupId:   example.ID(),\n\t\t\tPluginId:  examplePlugin.ID(),\n\t\t\tStageName: pulumi.String(\"RELEASE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.Group;\nimport com.pulumi.alicloud.apigateway.GroupArgs;\nimport com.pulumi.alicloud.apigateway.Api;\nimport com.pulumi.alicloud.apigateway.ApiArgs;\nimport com.pulumi.alicloud.apigateway.inputs.ApiRequestConfigArgs;\nimport com.pulumi.alicloud.apigateway.inputs.ApiHttpServiceConfigArgs;\nimport com.pulumi.alicloud.apigateway.inputs.ApiRequestParameterArgs;\nimport com.pulumi.alicloud.apigateway.Plugin;\nimport com.pulumi.alicloud.apigateway.PluginArgs;\nimport com.pulumi.alicloud.apigateway.PluginAttachment;\nimport com.pulumi.alicloud.apigateway.PluginAttachmentArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var example = new Group(\"example\", GroupArgs.builder()\n            .name(name)\n            .description(name)\n            .build());\n\n        var exampleApi = new Api(\"exampleApi\", ApiArgs.builder()\n            .groupId(example.id())\n            .name(name)\n            .description(name)\n            .authType(\"APP\")\n            .forceNonceCheck(false)\n            .requestConfig(ApiRequestConfigArgs.builder()\n                .protocol(\"HTTP\")\n                .method(\"GET\")\n                .path(\"/example/path\")\n                .mode(\"MAPPING\")\n                .build())\n            .serviceType(\"HTTP\")\n            .httpServiceConfig(ApiHttpServiceConfigArgs.builder()\n                .address(\"http://apigateway-backend.alicloudapi.com:8080\")\n                .method(\"GET\")\n                .path(\"/web/cloudapi\")\n                .timeout(12)\n                .aoneName(\"cloudapi-openapi\")\n                .build())\n            .requestParameters(ApiRequestParameterArgs.builder()\n                .name(\"example\")\n                .type(\"STRING\")\n                .required(\"OPTIONAL\")\n                .in(\"QUERY\")\n                .inService(\"QUERY\")\n                .nameService(\"exampleservice\")\n                .build())\n            .stageNames(            \n                \"RELEASE\",\n                \"TEST\")\n            .build());\n\n        var examplePlugin = new Plugin(\"examplePlugin\", PluginArgs.builder()\n            .description(\"tf_example\")\n            .pluginName(\"tf_example\")\n            .pluginData(serializeJson(\n                jsonObject(\n                    jsonProperty(\"allowOrigins\", \"api.foo.com\"),\n                    jsonProperty(\"allowMethods\", \"GET,POST,PUT,DELETE,HEAD,OPTIONS,PATCH\"),\n                    jsonProperty(\"allowHeaders\", \"Authorization,Accept,Accept-Ranges,Cache-Control,Range,Date,Content-Type,Content-Length,Content-MD5,User-Agent,X-Ca-Signature,X-Ca-Signature-Headers,X-Ca-Signature-Method,X-Ca-Key,X-Ca-Timestamp,X-Ca-Nonce,X-Ca-Stage,X-Ca-Request-Mode,x-ca-deviceid\"),\n                    jsonProperty(\"exposeHeaders\", \"Content-MD5,Server,Date,Latency,X-Ca-Request-Id,X-Ca-Error-Code,X-Ca-Error-Message\"),\n                    jsonProperty(\"maxAge\", 172800),\n                    jsonProperty(\"allowCredentials\", true)\n                )))\n            .pluginType(\"cors\")\n            .build());\n\n        var examplePluginAttachment = new PluginAttachment(\"examplePluginAttachment\", PluginAttachmentArgs.builder()\n            .apiId(exampleApi.apiId())\n            .groupId(example.id())\n            .pluginId(examplePlugin.id())\n            .stageName(\"RELEASE\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  example:\n    type: alicloud:apigateway:Group\n    properties:\n      name: ${name}\n      description: ${name}\n  exampleApi:\n    type: alicloud:apigateway:Api\n    name: example\n    properties:\n      groupId: ${example.id}\n      name: ${name}\n      description: ${name}\n      authType: APP\n      forceNonceCheck: false\n      requestConfig:\n        protocol: HTTP\n        method: GET\n        path: /example/path\n        mode: MAPPING\n      serviceType: HTTP\n      httpServiceConfig:\n        address: http://apigateway-backend.alicloudapi.com:8080\n        method: GET\n        path: /web/cloudapi\n        timeout: 12\n        aoneName: cloudapi-openapi\n      requestParameters:\n        - name: example\n          type: STRING\n          required: OPTIONAL\n          in: QUERY\n          inService: QUERY\n          nameService: exampleservice\n      stageNames:\n        - RELEASE\n        - TEST\n  examplePlugin:\n    type: alicloud:apigateway:Plugin\n    name: example\n    properties:\n      description: tf_example\n      pluginName: tf_example\n      pluginData:\n        fn::toJSON:\n          allowOrigins: api.foo.com\n          allowMethods: GET,POST,PUT,DELETE,HEAD,OPTIONS,PATCH\n          allowHeaders: Authorization,Accept,Accept-Ranges,Cache-Control,Range,Date,Content-Type,Content-Length,Content-MD5,User-Agent,X-Ca-Signature,X-Ca-Signature-Headers,X-Ca-Signature-Method,X-Ca-Key,X-Ca-Timestamp,X-Ca-Nonce,X-Ca-Stage,X-Ca-Request-Mode,x-ca-deviceid\n          exposeHeaders: Content-MD5,Server,Date,Latency,X-Ca-Request-Id,X-Ca-Error-Code,X-Ca-Error-Message\n          maxAge: 172800\n          allowCredentials: true\n      pluginType: cors\n  examplePluginAttachment:\n    type: alicloud:apigateway:PluginAttachment\n    name: example\n    properties:\n      apiId: ${exampleApi.apiId}\n      groupId: ${example.id}\n      pluginId: ${examplePlugin.id}\n      stageName: RELEASE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"apiId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" apiId \" pulumi-lang-dotnet=\" ApiId \" pulumi-lang-go=\" apiId \" pulumi-lang-python=\" api_id \" pulumi-lang-yaml=\" apiId \" pulumi-lang-java=\" apiId \"\u003e api_id \u003c/span\u003ethat plugin attaches to.\n"},"groupId":{"type":"string","description":"The group that the api belongs to.\n"},"pluginId":{"type":"string","description":"The plugin that attaches to the api.\n"},"stageName":{"type":"string","description":"Stage that the plugin attaches to.\n"}},"required":["apiId","groupId","pluginId","stageName"],"inputProperties":{"apiId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" apiId \" pulumi-lang-dotnet=\" ApiId \" pulumi-lang-go=\" apiId \" pulumi-lang-python=\" api_id \" pulumi-lang-yaml=\" apiId \" pulumi-lang-java=\" apiId \"\u003e api_id \u003c/span\u003ethat plugin attaches to.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"The group that the api belongs to.\n","willReplaceOnChanges":true},"pluginId":{"type":"string","description":"The plugin that attaches to the api.\n","willReplaceOnChanges":true},"stageName":{"type":"string","description":"Stage that the plugin attaches to.\n","willReplaceOnChanges":true}},"requiredInputs":["apiId","groupId","pluginId","stageName"],"stateInputs":{"description":"Input properties used for looking up and filtering PluginAttachment resources.\n","properties":{"apiId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" apiId \" pulumi-lang-dotnet=\" ApiId \" pulumi-lang-go=\" apiId \" pulumi-lang-python=\" api_id \" pulumi-lang-yaml=\" apiId \" pulumi-lang-java=\" apiId \"\u003e api_id \u003c/span\u003ethat plugin attaches to.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"The group that the api belongs to.\n","willReplaceOnChanges":true},"pluginId":{"type":"string","description":"The plugin that attaches to the api.\n","willReplaceOnChanges":true},"stageName":{"type":"string","description":"Stage that the plugin attaches to.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:apigateway/vpcAccess:VpcAccess":{"description":"Provides an Api Gateway Vpc Access resource.\n\nFor information about Api Gateway Vpc Access and how to use it, see [What is Vpc Access](https://www.alibabacloud.com/help/en/api-gateway/latest/api-cloudapi-2016-07-14-setvpcaccess)\n\n\u003e **NOTE:** Available since v1.23.0.\n\n\u003e **NOTE:** Terraform will auto build vpc authorization while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.apigateway.VpcAccess`\" pulumi-lang-dotnet=\"`alicloud.apigateway.VpcAccess`\" pulumi-lang-go=\"`apigateway.VpcAccess`\" pulumi-lang-python=\"`apigateway.VpcAccess`\" pulumi-lang-yaml=\"`alicloud.apigateway.VpcAccess`\" pulumi-lang-java=\"`alicloud.apigateway.VpcAccess`\"\u003e`alicloud.apigateway.VpcAccess`\u003c/span\u003e to build vpc.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_[0-9]+_[0-9]+_x64*\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = Promise.all([_default, defaultGetImages]).then(([_default, defaultGetImages]) =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    imageId: defaultGetImages.images?.[0]?.id,\n    systemDiskCategory: \"cloud_efficiency\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"192.168.192.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup].map(__item =\u003e __item.id),\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 10,\n    availabilityZone: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.availabilityZones?.[0]),\n    instanceChargeType: \"PostPaid\",\n    systemDiskCategory: \"cloud_efficiency\",\n    vswitchId: defaultSwitch.id,\n    instanceName: name,\n    description: name,\n});\nconst defaultVpcAccess = new alicloud.apigateway.VpcAccess(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n    instanceId: defaultInstance.id,\n    port: 8080,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_[0-9]+_[0-9]+_x64*\",\n    most_recent=True,\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    image_id=default_get_images.images[0].id,\n    system_disk_category=\"cloud_efficiency\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"192.168.192.0/24\",\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[__item.id for __item in [default_security_group]],\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=10,\n    availability_zone=default_get_instance_types.instance_types[0].availability_zones[0],\n    instance_charge_type=\"PostPaid\",\n    system_disk_category=\"cloud_efficiency\",\n    vswitch_id=default_switch.id,\n    instance_name=name,\n    description=name)\ndefault_vpc_access = alicloud.apigateway.VpcAccess(\"default\",\n    name=name,\n    vpc_id=default_network.id,\n    instance_id=default_instance.id,\n    port=8080)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_[0-9]+_[0-9]+_x64*\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        SystemDiskCategory = \"cloud_efficiency\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"192.168.192.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup,\n        }.Select(__item =\u003e __item.Id).ToList(),\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 10,\n        AvailabilityZone = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.AvailabilityZones[0]),\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskCategory = \"cloud_efficiency\",\n        VswitchId = defaultSwitch.Id,\n        InstanceName = name,\n        Description = name,\n    });\n\n    var defaultVpcAccess = new AliCloud.ApiGateway.VpcAccess(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n        InstanceId = defaultInstance.Id,\n        Port = 8080,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableDiskCategory: pulumi.StringRef(\"cloud_efficiency\"),\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nNameRegex: pulumi.StringRef(\"^ubuntu_[0-9]+_[0-9]+_x64*\"),\nMostRecent: pulumi.BoolRef(true),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\nImageId: pulumi.StringRef(defaultGetImages.Images[0].Id),\nSystemDiskCategory: pulumi.StringRef(\"cloud_efficiency\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"192.168.192.0/24\"),\nZoneId: pulumi.String(_default.Zones[0].Id),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\ndefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\nImageId: pulumi.String(defaultGetImages.Images[0].Id),\nInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\nSecurityGroups: splat0,\nInternetChargeType: pulumi.String(\"PayByTraffic\"),\nInternetMaxBandwidthOut: pulumi.Int(10),\nAvailabilityZone: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].AvailabilityZones[0]),\nInstanceChargeType: pulumi.String(\"PostPaid\"),\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nVswitchId: defaultSwitch.ID(),\nInstanceName: pulumi.String(name),\nDescription: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\n_, err = apigateway.NewVpcAccess(ctx, \"default\", \u0026apigateway.VpcAccessArgs{\nName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\nInstanceId: defaultInstance.ID(),\nPort: pulumi.Int(8080),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.apigateway.VpcAccess;\nimport com.pulumi.alicloud.apigateway.VpcAccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_[0-9]+_[0-9]+_x64*\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .imageId(defaultGetImages.images()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"192.168.192.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.stream().map(element -\u003e element.id()).collect(toList()))\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(10)\n            .availabilityZone(defaultGetInstanceTypes.instanceTypes()[0].availabilityZones()[0])\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .vswitchId(defaultSwitch.id())\n            .instanceName(name)\n            .description(name)\n            .build());\n\n        var defaultVpcAccess = new VpcAccess(\"defaultVpcAccess\", VpcAccessArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .instanceId(defaultInstance.id())\n            .port(8080)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApi Gateway Vpc Access can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:apigateway/vpcAccess:VpcAccess example \u003cname\u003e:\u003cvpc_id\u003e:\u003cinstance_id\u003e:\u003cport\u003e\n```\n\n","properties":{"instanceId":{"type":"string","description":"The ID of an ECS or SLB instance in the VPC.\n"},"name":{"type":"string","description":"The name of the authorization. The name must be unique.\n"},"port":{"type":"integer","description":"The port number that corresponds to the instance.\n"},"vpcId":{"type":"string","description":"The ID of the VPC. The VPC must be an available one that belongs to the same account as the API.\n"}},"required":["instanceId","name","port","vpcId"],"inputProperties":{"instanceId":{"type":"string","description":"The ID of an ECS or SLB instance in the VPC.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the authorization. The name must be unique.\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"The port number that corresponds to the instance.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the VPC. The VPC must be an available one that belongs to the same account as the API.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId","port","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcAccess resources.\n","properties":{"instanceId":{"type":"string","description":"The ID of an ECS or SLB instance in the VPC.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the authorization. The name must be unique.\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"The port number that corresponds to the instance.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the VPC. The VPC must be an available one that belongs to the same account as the API.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:arms/addonRelease:AddonRelease":{"description":"Provides a ARMS Addon Release resource. Release package of observability addon.\n\nFor information about ARMS Addon Release and how to use it, see [What is Addon Release](https://www.alibabacloud.com/help/en/arms/developer-reference/api-arms-2019-08-08-installaddon).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    description: name,\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: name,\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    description: name,\n    vpcId: vpc.id,\n    vswitchName: name,\n    zoneId: enhanced.then(enhanced =\u003e enhanced.zones?.[0]?.zoneId),\n    cidrBlock: vpc.cidrBlock.apply(cidrBlock =\u003e std.cidrsubnetOutput({\n        input: cidrBlock,\n        newbits: 8,\n        netnum: 8,\n    })).apply(invoke =\u003e invoke.result),\n});\nconst defaultSnapshotPolicy = new alicloud.ecs.SnapshotPolicy(\"default\", {\n    name: name,\n    repeatWeekdays: [\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retentionDays: -1,\n    timePoints: [\n        \"1\",\n        \"22\",\n        \"23\",\n    ],\n});\nconst _default = vswitch.zoneId.apply(zoneId =\u003e alicloud.ecs.getInstanceTypesOutput({\n    availabilityZone: zoneId,\n    cpuCoreCount: 2,\n    memorySize: 4,\n    kubernetesNodeRole: \"Worker\",\n    instanceTypeFamily: \"ecs.sn1ne\",\n}));\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    name: `terraform-example-${defaultInteger.result}`,\n    clusterSpec: \"ack.pro.small\",\n    version: \"1.24.6-aliyun.1\",\n    newNatGateway: true,\n    nodeCidrMask: 26,\n    proxyMode: \"ipvs\",\n    serviceCidr: \"172.23.0.0/16\",\n    podCidr: \"10.95.0.0/16\",\n    workerVswitchIds: [vswitch.id],\n});\nconst defaultKeyPair = new alicloud.ecs.KeyPair(\"default\", {keyPairName: `terraform-example-${defaultInteger.result}`});\nconst defaultNodePool = new alicloud.cs.NodePool(\"default\", {\n    nodePoolName: \"desired_size\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [vswitch.id],\n    instanceTypes: [_default.apply(_default =\u003e _default.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyPairName,\n    desiredSize: \"2\",\n});\nconst defaultEnvironment = new alicloud.arms.Environment(\"default\", {\n    bindResourceId: defaultNodePool.clusterId,\n    environmentSubType: \"ManagedKubernetes\",\n    environmentType: \"CS\",\n    environmentName: `terraform-example-${defaultInteger.result}`,\n});\nconst defaultAddonRelease = new alicloud.arms.AddonRelease(\"default\", {\n    aliyunLang: \"zh\",\n    addonName: \"mysql\",\n    environmentId: defaultEnvironment.id,\n    addonVersion: \"0.0.1\",\n    values: JSON.stringify({\n        host: \"mysql-service.default\",\n        password: \"roots\",\n        port: 3306,\n        username: \"root\",\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\nvpc = alicloud.vpc.Network(\"vpc\",\n    description=name,\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=name)\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    description=name,\n    vpc_id=vpc.id,\n    vswitch_name=name,\n    zone_id=enhanced.zones[0].zone_id,\n    cidr_block=vpc.cidr_block.apply(lambda cidr_block: std.cidrsubnet_output(input=cidr_block,\n        newbits=8,\n        netnum=8)).apply(lambda invoke: invoke.result))\ndefault_snapshot_policy = alicloud.ecs.SnapshotPolicy(\"default\",\n    name=name,\n    repeat_weekdays=[\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retention_days=-1,\n    time_points=[\n        \"1\",\n        \"22\",\n        \"23\",\n    ])\ndefault = vswitch.zone_id.apply(lambda zone_id: alicloud.ecs.get_instance_types_output(availability_zone=zone_id,\n    cpu_core_count=2,\n    memory_size=4,\n    kubernetes_node_role=\"Worker\",\n    instance_type_family=\"ecs.sn1ne\"))\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name=f\"terraform-example-{default_integer['result']}\",\n    cluster_spec=\"ack.pro.small\",\n    version=\"1.24.6-aliyun.1\",\n    new_nat_gateway=True,\n    node_cidr_mask=26,\n    proxy_mode=\"ipvs\",\n    service_cidr=\"172.23.0.0/16\",\n    pod_cidr=\"10.95.0.0/16\",\n    worker_vswitch_ids=[vswitch.id])\ndefault_key_pair = alicloud.ecs.KeyPair(\"default\", key_pair_name=f\"terraform-example-{default_integer['result']}\")\ndefault_node_pool = alicloud.cs.NodePool(\"default\",\n    node_pool_name=\"desired_size\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[vswitch.id],\n    instance_types=[default.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_pair_name,\n    desired_size=\"2\")\ndefault_environment = alicloud.arms.Environment(\"default\",\n    bind_resource_id=default_node_pool.cluster_id,\n    environment_sub_type=\"ManagedKubernetes\",\n    environment_type=\"CS\",\n    environment_name=f\"terraform-example-{default_integer['result']}\")\ndefault_addon_release = alicloud.arms.AddonRelease(\"default\",\n    aliyun_lang=\"zh\",\n    addon_name=\"mysql\",\n    environment_id=default_environment.id,\n    addon_version=\"0.0.1\",\n    values=json.dumps({\n        \"host\": \"mysql-service.default\",\n        \"password\": \"roots\",\n        \"port\": 3306,\n        \"username\": \"root\",\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var enhanced = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        Description = name,\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = name,\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        Description = name,\n        VpcId = vpc.Id,\n        VswitchName = name,\n        ZoneId = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId),\n        CidrBlock = vpc.CidrBlock.Apply(cidrBlock =\u003e Std.Cidrsubnet.Invoke(new()\n        {\n            Input = cidrBlock,\n            Newbits = 8,\n            Netnum = 8,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultSnapshotPolicy = new AliCloud.Ecs.SnapshotPolicy(\"default\", new()\n    {\n        Name = name,\n        RepeatWeekdays = new[]\n        {\n            \"1\",\n            \"2\",\n            \"3\",\n        },\n        RetentionDays = -1,\n        TimePoints = new[]\n        {\n            \"1\",\n            \"22\",\n            \"23\",\n        },\n    });\n\n    var @default = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = vswitch.ZoneId,\n        CpuCoreCount = 2,\n        MemorySize = 4,\n        KubernetesNodeRole = \"Worker\",\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        Name = $\"terraform-example-{defaultInteger.Result}\",\n        ClusterSpec = \"ack.pro.small\",\n        Version = \"1.24.6-aliyun.1\",\n        NewNatGateway = true,\n        NodeCidrMask = 26,\n        ProxyMode = \"ipvs\",\n        ServiceCidr = \"172.23.0.0/16\",\n        PodCidr = \"10.95.0.0/16\",\n        WorkerVswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n    });\n\n    var defaultKeyPair = new AliCloud.Ecs.KeyPair(\"default\", new()\n    {\n        KeyPairName = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n    var defaultNodePool = new AliCloud.CS.NodePool(\"default\", new()\n    {\n        NodePoolName = \"desired_size\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            @default.Apply(@default =\u003e @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id)),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyPairName,\n        DesiredSize = \"2\",\n    });\n\n    var defaultEnvironment = new AliCloud.Arms.Environment(\"default\", new()\n    {\n        BindResourceId = defaultNodePool.ClusterId,\n        EnvironmentSubType = \"ManagedKubernetes\",\n        EnvironmentType = \"CS\",\n        EnvironmentName = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n    var defaultAddonRelease = new AliCloud.Arms.AddonRelease(\"default\", new()\n    {\n        AliyunLang = \"zh\",\n        AddonName = \"mysql\",\n        EnvironmentId = defaultEnvironment.Id,\n        AddonVersion = \"0.0.1\",\n        Values = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"host\"] = \"mysql-service.default\",\n            [\"password\"] = \"roots\",\n            [\"port\"] = 3306,\n            [\"username\"] = \"root\",\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMax: 99999,\nMin: 10000,\n})\nif err != nil {\nreturn err\n}\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nenhanced, err := vpc.GetEnhancedNatAvailableZones(ctx, \u0026vpc.GetEnhancedNatAvailableZonesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\nvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\nDescription: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\nVpcName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: cidrBlock,\nNewbits: 8,\nNetnum: 8,\n}, nil)\nif err != nil {\nreturn err\n}\nvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\nDescription: pulumi.String(name),\nVpcId: vpc.ID(),\nVswitchName: pulumi.String(name),\nZoneId: pulumi.String(enhanced.Zones[0].ZoneId),\nCidrBlock: pulumi.String(vpc.CidrBlock.ApplyT(func(cidrBlock string) (std.CidrsubnetResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrsubnetResultOutput).ApplyT(func(invoke std.CidrsubnetResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\n})\nif err != nil {\nreturn err\n}\n_, err = ecs.NewSnapshotPolicy(ctx, \"default\", \u0026ecs.SnapshotPolicyArgs{\nName: pulumi.String(name),\nRepeatWeekdays: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"2\"),\npulumi.String(\"3\"),\n},\nRetentionDays: pulumi.Int(-1),\nTimePoints: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"22\"),\npulumi.String(\"23\"),\n},\n})\nif err != nil {\nreturn err\n}\n_default := vswitch.ZoneId.ApplyT(func(zoneId string) (ecs.GetInstanceTypesResult, error) {\nreturn ecs.GetInstanceTypesResult(interface{}(ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(pulumi.StringRef(zoneId)),\nCpuCoreCount: pulumi.IntRef(pulumi.IntRef(int(2))),\nMemorySize: pulumi.Float64Ref(pulumi.Float64Ref(4)),\nKubernetesNodeRole: pulumi.StringRef(pulumi.StringRef(\"Worker\")),\nInstanceTypeFamily: pulumi.StringRef(pulumi.StringRef(\"ecs.sn1ne\")),\n}, nil))), nil\n}).(ecs.GetInstanceTypesResultOutput)\ndefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\nName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\nClusterSpec: pulumi.String(\"ack.pro.small\"),\nVersion: pulumi.String(\"1.24.6-aliyun.1\"),\nNewNatGateway: pulumi.Bool(true),\nNodeCidrMask: pulumi.Int(26),\nProxyMode: pulumi.String(\"ipvs\"),\nServiceCidr: pulumi.String(\"172.23.0.0/16\"),\nPodCidr: pulumi.String(\"10.95.0.0/16\"),\nWorkerVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\n})\nif err != nil {\nreturn err\n}\ndefaultKeyPair, err := ecs.NewKeyPair(ctx, \"default\", \u0026ecs.KeyPairArgs{\nKeyPairName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ndefaultNodePool, err := cs.NewNodePool(ctx, \"default\", \u0026cs.NodePoolArgs{\nNodePoolName: pulumi.String(\"desired_size\"),\nClusterId: defaultManagedKubernetes.ID(),\nVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\nInstanceTypes: pulumi.StringArray{\npulumi.String(_default.ApplyT(func(_default ecs.GetInstanceTypesResult) (*string, error) {\nreturn \u0026default.InstanceTypes[0].Id, nil\n}).(pulumi.StringPtrOutput)),\n},\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nSystemDiskSize: pulumi.Int(40),\nKeyName: defaultKeyPair.KeyPairName,\nDesiredSize: pulumi.String(\"2\"),\n})\nif err != nil {\nreturn err\n}\ndefaultEnvironment, err := arms.NewEnvironment(ctx, \"default\", \u0026arms.EnvironmentArgs{\nBindResourceId: defaultNodePool.ClusterId,\nEnvironmentSubType: pulumi.String(\"ManagedKubernetes\"),\nEnvironmentType: pulumi.String(\"CS\"),\nEnvironmentName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ntmpJSON0, err := json.Marshal(map[string]interface{}{\n\"host\": \"mysql-service.default\",\n\"password\": \"roots\",\n\"port\": 3306,\n\"username\": \"root\",\n})\nif err != nil {\nreturn err\n}\njson0 := string(tmpJSON0)\n_, err = arms.NewAddonRelease(ctx, \"default\", \u0026arms.AddonReleaseArgs{\nAliyunLang: pulumi.String(\"zh\"),\nAddonName: pulumi.String(\"mysql\"),\nEnvironmentId: defaultEnvironment.ID(),\nAddonVersion: pulumi.String(\"0.0.1\"),\nValues: pulumi.String(json0),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.SnapshotPolicy;\nimport com.pulumi.alicloud.ecs.SnapshotPolicyArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.alicloud.ecs.KeyPair;\nimport com.pulumi.alicloud.ecs.KeyPairArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.arms.Environment;\nimport com.pulumi.alicloud.arms.EnvironmentArgs;\nimport com.pulumi.alicloud.arms.AddonRelease;\nimport com.pulumi.alicloud.arms.AddonReleaseArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var enhanced = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .description(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(name)\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .description(name)\n            .vpcId(vpc.id())\n            .vswitchName(name)\n            .zoneId(enhanced.zones()[0].zoneId())\n            .cidrBlock(vpc.cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(_cidrBlock)\n                .newbits(8)\n                .netnum(8)\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .build());\n\n        var defaultSnapshotPolicy = new SnapshotPolicy(\"defaultSnapshotPolicy\", SnapshotPolicyArgs.builder()\n            .name(name)\n            .repeatWeekdays(            \n                \"1\",\n                \"2\",\n                \"3\")\n            .retentionDays(-1)\n            .timePoints(            \n                \"1\",\n                \"22\",\n                \"23\")\n            .build());\n\n        final var default = vswitch.zoneId().applyValue(_zoneId -\u003e EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(_zoneId)\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .kubernetesNodeRole(\"Worker\")\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build()));\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .name(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .clusterSpec(\"ack.pro.small\")\n            .version(\"1.24.6-aliyun.1\")\n            .newNatGateway(true)\n            .nodeCidrMask(26)\n            .proxyMode(\"ipvs\")\n            .serviceCidr(\"172.23.0.0/16\")\n            .podCidr(\"10.95.0.0/16\")\n            .workerVswitchIds(vswitch.id())\n            .build());\n\n        var defaultKeyPair = new KeyPair(\"defaultKeyPair\", KeyPairArgs.builder()\n            .keyPairName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n        var defaultNodePool = new NodePool(\"defaultNodePool\", NodePoolArgs.builder()\n            .nodePoolName(\"desired_size\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(vswitch.id())\n            .instanceTypes(default_.applyValue(_default_ -\u003e _default_.instanceTypes()[0].id()))\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyPairName())\n            .desiredSize(\"2\")\n            .build());\n\n        var defaultEnvironment = new Environment(\"defaultEnvironment\", EnvironmentArgs.builder()\n            .bindResourceId(defaultNodePool.clusterId())\n            .environmentSubType(\"ManagedKubernetes\")\n            .environmentType(\"CS\")\n            .environmentName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n        var defaultAddonRelease = new AddonRelease(\"defaultAddonRelease\", AddonReleaseArgs.builder()\n            .aliyunLang(\"zh\")\n            .addonName(\"mysql\")\n            .environmentId(defaultEnvironment.id())\n            .addonVersion(\"0.0.1\")\n            .values(serializeJson(\n                jsonObject(\n                    jsonProperty(\"host\", \"mysql-service.default\"),\n                    jsonProperty(\"password\", \"roots\"),\n                    jsonProperty(\"port\", 3306),\n                    jsonProperty(\"username\", \"root\")\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: ${name}\n      cidrBlock: 192.168.0.0/16\n      vpcName: ${name}\n  vswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      description: ${name}\n      vpcId: ${vpc.id}\n      vswitchName: ${name}\n      zoneId: ${enhanced.zones[0].zoneId}\n      cidrBlock:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: ${vpc.cidrBlock}\n            newbits: 8\n            netnum: 8\n          return: result\n  defaultSnapshotPolicy:\n    type: alicloud:ecs:SnapshotPolicy\n    name: default\n    properties:\n      name: ${name}\n      repeatWeekdays:\n        - '1'\n        - '2'\n        - '3'\n      retentionDays: -1\n      timePoints:\n        - '1'\n        - '22'\n        - '23'\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      name: terraform-example-${defaultInteger.result}\n      clusterSpec: ack.pro.small\n      version: 1.24.6-aliyun.1\n      newNatGateway: true\n      nodeCidrMask: 26\n      proxyMode: ipvs\n      serviceCidr: 172.23.0.0/16\n      podCidr: 10.95.0.0/16\n      workerVswitchIds:\n        - ${vswitch.id}\n  defaultKeyPair:\n    type: alicloud:ecs:KeyPair\n    name: default\n    properties:\n      keyPairName: terraform-example-${defaultInteger.result}\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      nodePoolName: desired_size\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${vswitch.id}\n      instanceTypes:\n        - ${default.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyPairName}\n      desiredSize: 2\n  defaultEnvironment:\n    type: alicloud:arms:Environment\n    name: default\n    properties:\n      bindResourceId: ${defaultNodePool.clusterId}\n      environmentSubType: ManagedKubernetes\n      environmentType: CS\n      environmentName: terraform-example-${defaultInteger.result}\n  defaultAddonRelease:\n    type: alicloud:arms:AddonRelease\n    name: default\n    properties:\n      aliyunLang: zh\n      addonName: mysql\n      environmentId: ${defaultEnvironment.id}\n      addonVersion: 0.0.1\n      values:\n        fn::toJSON:\n          host: mysql-service.default\n          password: roots\n          port: 3306\n          username: root\nvariables:\n  enhanced:\n    fn::invoke:\n      function: alicloud:vpc:getEnhancedNatAvailableZones\n      arguments: {}\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${vswitch.zoneId}\n        cpuCoreCount: 2\n        memorySize: 4\n        kubernetesNodeRole: Worker\n        instanceTypeFamily: ecs.sn1ne\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nARMS Addon Release can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/addonRelease:AddonRelease example \u003cenvironment_id\u003e:\u003caddon_release_name\u003e\n```\n\n","properties":{"addonName":{"type":"string","description":"Addon Name.\n"},"addonReleaseName":{"type":"string","description":"The name of the resource.\n"},"addonVersion":{"type":"string","description":"Version number of Addon. Addon information can be obtained through ListAddons.\n"},"aliyunLang":{"type":"string","description":"The installed locale.\n"},"createTime":{"type":"string","description":"Creation time.\n"},"environmentId":{"type":"string","description":"Environment id.\n"},"values":{"type":"string","description":"Configuration information for installing Addon. Obtain the configuration template from ListAddonSchema, for example, {\"host\":\"mysql-service.default\",\"port\":3306,\"username\":\"root\",\"password\":\"roots\"}.\n"}},"required":["addonName","addonReleaseName","addonVersion","aliyunLang","createTime","environmentId"],"inputProperties":{"addonName":{"type":"string","description":"Addon Name.\n","willReplaceOnChanges":true},"addonReleaseName":{"type":"string","description":"The name of the resource.\n","willReplaceOnChanges":true},"addonVersion":{"type":"string","description":"Version number of Addon. Addon information can be obtained through ListAddons.\n"},"aliyunLang":{"type":"string","description":"The installed locale.\n","willReplaceOnChanges":true},"environmentId":{"type":"string","description":"Environment id.\n","willReplaceOnChanges":true},"values":{"type":"string","description":"Configuration information for installing Addon. Obtain the configuration template from ListAddonSchema, for example, {\"host\":\"mysql-service.default\",\"port\":3306,\"username\":\"root\",\"password\":\"roots\"}.\n"}},"requiredInputs":["addonName","addonVersion","environmentId"],"stateInputs":{"description":"Input properties used for looking up and filtering AddonRelease resources.\n","properties":{"addonName":{"type":"string","description":"Addon Name.\n","willReplaceOnChanges":true},"addonReleaseName":{"type":"string","description":"The name of the resource.\n","willReplaceOnChanges":true},"addonVersion":{"type":"string","description":"Version number of Addon. Addon information can be obtained through ListAddons.\n"},"aliyunLang":{"type":"string","description":"The installed locale.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"Creation time.\n"},"environmentId":{"type":"string","description":"Environment id.\n","willReplaceOnChanges":true},"values":{"type":"string","description":"Configuration information for installing Addon. Obtain the configuration template from ListAddonSchema, for example, {\"host\":\"mysql-service.default\",\"port\":3306,\"username\":\"root\",\"password\":\"roots\"}.\n"}},"type":"object"}},"alicloud:arms/alertContact:AlertContact":{"description":"Provides a Application Real-Time Monitoring Service (ARMS) Alert Contact resource.\n\nFor information about Application Real-Time Monitoring Service (ARMS) Alert Contact and how to use it, see [What is Alert Contact](https://next.api.aliyun.com/api/ARMS/2019-08-08/CreateAlertContact).\n\n\u003e **NOTE:** Available since v1.129.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.arms.AlertContact(\"example\", {\n    alertContactName: \"example_value\",\n    dingRobotWebhookUrl: \"https://oapi.dingtalk.com/robot/send?access_token=91f2f6****\",\n    email: \"someone@example.com\",\n    phoneNum: \"1381111****\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.arms.AlertContact(\"example\",\n    alert_contact_name=\"example_value\",\n    ding_robot_webhook_url=\"https://oapi.dingtalk.com/robot/send?access_token=91f2f6****\",\n    email=\"someone@example.com\",\n    phone_num=\"1381111****\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Arms.AlertContact(\"example\", new()\n    {\n        AlertContactName = \"example_value\",\n        DingRobotWebhookUrl = \"https://oapi.dingtalk.com/robot/send?access_token=91f2f6****\",\n        Email = \"someone@example.com\",\n        PhoneNum = \"1381111****\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := arms.NewAlertContact(ctx, \"example\", \u0026arms.AlertContactArgs{\n\t\t\tAlertContactName:    pulumi.String(\"example_value\"),\n\t\t\tDingRobotWebhookUrl: pulumi.String(\"https://oapi.dingtalk.com/robot/send?access_token=91f2f6****\"),\n\t\t\tEmail:               pulumi.String(\"someone@example.com\"),\n\t\t\tPhoneNum:            pulumi.String(\"1381111****\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.arms.AlertContact;\nimport com.pulumi.alicloud.arms.AlertContactArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new AlertContact(\"example\", AlertContactArgs.builder()\n            .alertContactName(\"example_value\")\n            .dingRobotWebhookUrl(\"https://oapi.dingtalk.com/robot/send?access_token=91f2f6****\")\n            .email(\"someone@example.com\")\n            .phoneNum(\"1381111****\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:arms:AlertContact\n    properties:\n      alertContactName: example_value\n      dingRobotWebhookUrl: https://oapi.dingtalk.com/robot/send?access_token=91f2f6****\n      email: someone@example.com\n      phoneNum: 1381111****\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Real-Time Monitoring Service (ARMS) Alert Contact can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/alertContact:AlertContact example \u003cid\u003e\n```\n\n","properties":{"alertContactName":{"type":"string","description":"The name of the alert contact.\n"},"dingRobotWebhookUrl":{"type":"string","description":"The webhook URL of the DingTalk chatbot. For more information about how to obtain the URL, see Configure a DingTalk chatbot to send alert notifications: https://www.alibabacloud.com/help/en/doc-detail/106247.htm. You must specify at least one of the following parameters: PhoneNum, Email, and DingRobotWebhookUrl.\n"},"email":{"type":"string","description":"The email address of the alert contact. You must specify at least one of the following parameters: PhoneNum, Email, and DingRobotWebhookUrl.\n"},"phoneNum":{"type":"string","description":"The mobile number of the alert contact. You must specify at least one of the following parameters: PhoneNum, Email, and DingRobotWebhookUrl.\n"},"systemNoc":{"type":"boolean","description":"Specifies whether the alert contact receives system notifications. Valid values:  true: receives system notifications. false: does not receive system notifications.\n"}},"inputProperties":{"alertContactName":{"type":"string","description":"The name of the alert contact.\n"},"dingRobotWebhookUrl":{"type":"string","description":"The webhook URL of the DingTalk chatbot. For more information about how to obtain the URL, see Configure a DingTalk chatbot to send alert notifications: https://www.alibabacloud.com/help/en/doc-detail/106247.htm. You must specify at least one of the following parameters: PhoneNum, Email, and DingRobotWebhookUrl.\n"},"email":{"type":"string","description":"The email address of the alert contact. You must specify at least one of the following parameters: PhoneNum, Email, and DingRobotWebhookUrl.\n"},"phoneNum":{"type":"string","description":"The mobile number of the alert contact. You must specify at least one of the following parameters: PhoneNum, Email, and DingRobotWebhookUrl.\n"},"systemNoc":{"type":"boolean","description":"Specifies whether the alert contact receives system notifications. Valid values:  true: receives system notifications. false: does not receive system notifications.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering AlertContact resources.\n","properties":{"alertContactName":{"type":"string","description":"The name of the alert contact.\n"},"dingRobotWebhookUrl":{"type":"string","description":"The webhook URL of the DingTalk chatbot. For more information about how to obtain the URL, see Configure a DingTalk chatbot to send alert notifications: https://www.alibabacloud.com/help/en/doc-detail/106247.htm. You must specify at least one of the following parameters: PhoneNum, Email, and DingRobotWebhookUrl.\n"},"email":{"type":"string","description":"The email address of the alert contact. You must specify at least one of the following parameters: PhoneNum, Email, and DingRobotWebhookUrl.\n"},"phoneNum":{"type":"string","description":"The mobile number of the alert contact. You must specify at least one of the following parameters: PhoneNum, Email, and DingRobotWebhookUrl.\n"},"systemNoc":{"type":"boolean","description":"Specifies whether the alert contact receives system notifications. Valid values:  true: receives system notifications. false: does not receive system notifications.\n"}},"type":"object"}},"alicloud:arms/alertContactGroup:AlertContactGroup":{"description":"Provides a Application Real-Time Monitoring Service (ARMS) Alert Contact Group resource.\n\nFor information about Application Real-Time Monitoring Service (ARMS) Alert Contact Group and how to use it, see [What is Alert Contact Group](https://next.api.aliyun.com/api/ARMS/2019-08-08/CreateAlertContactGroup).\n\n\u003e **NOTE:** Available since v1.131.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.arms.AlertContact(\"example\", {\n    alertContactName: \"example_value\",\n    dingRobotWebhookUrl: \"https://oapi.dingtalk.com/robot/send?access_token=91f2f6****\",\n    email: \"someone@example.com\",\n    phoneNum: \"1381111****\",\n});\nconst exampleAlertContactGroup = new alicloud.arms.AlertContactGroup(\"example\", {\n    alertContactGroupName: \"example_value\",\n    contactIds: [example.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.arms.AlertContact(\"example\",\n    alert_contact_name=\"example_value\",\n    ding_robot_webhook_url=\"https://oapi.dingtalk.com/robot/send?access_token=91f2f6****\",\n    email=\"someone@example.com\",\n    phone_num=\"1381111****\")\nexample_alert_contact_group = alicloud.arms.AlertContactGroup(\"example\",\n    alert_contact_group_name=\"example_value\",\n    contact_ids=[example.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Arms.AlertContact(\"example\", new()\n    {\n        AlertContactName = \"example_value\",\n        DingRobotWebhookUrl = \"https://oapi.dingtalk.com/robot/send?access_token=91f2f6****\",\n        Email = \"someone@example.com\",\n        PhoneNum = \"1381111****\",\n    });\n\n    var exampleAlertContactGroup = new AliCloud.Arms.AlertContactGroup(\"example\", new()\n    {\n        AlertContactGroupName = \"example_value\",\n        ContactIds = new[]\n        {\n            example.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := arms.NewAlertContact(ctx, \"example\", \u0026arms.AlertContactArgs{\n\t\t\tAlertContactName:    pulumi.String(\"example_value\"),\n\t\t\tDingRobotWebhookUrl: pulumi.String(\"https://oapi.dingtalk.com/robot/send?access_token=91f2f6****\"),\n\t\t\tEmail:               pulumi.String(\"someone@example.com\"),\n\t\t\tPhoneNum:            pulumi.String(\"1381111****\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = arms.NewAlertContactGroup(ctx, \"example\", \u0026arms.AlertContactGroupArgs{\n\t\t\tAlertContactGroupName: pulumi.String(\"example_value\"),\n\t\t\tContactIds: pulumi.StringArray{\n\t\t\t\texample.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.arms.AlertContact;\nimport com.pulumi.alicloud.arms.AlertContactArgs;\nimport com.pulumi.alicloud.arms.AlertContactGroup;\nimport com.pulumi.alicloud.arms.AlertContactGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new AlertContact(\"example\", AlertContactArgs.builder()\n            .alertContactName(\"example_value\")\n            .dingRobotWebhookUrl(\"https://oapi.dingtalk.com/robot/send?access_token=91f2f6****\")\n            .email(\"someone@example.com\")\n            .phoneNum(\"1381111****\")\n            .build());\n\n        var exampleAlertContactGroup = new AlertContactGroup(\"exampleAlertContactGroup\", AlertContactGroupArgs.builder()\n            .alertContactGroupName(\"example_value\")\n            .contactIds(example.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:arms:AlertContact\n    properties:\n      alertContactName: example_value\n      dingRobotWebhookUrl: https://oapi.dingtalk.com/robot/send?access_token=91f2f6****\n      email: someone@example.com\n      phoneNum: 1381111****\n  exampleAlertContactGroup:\n    type: alicloud:arms:AlertContactGroup\n    name: example\n    properties:\n      alertContactGroupName: example_value\n      contactIds:\n        - ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Real-Time Monitoring Service (ARMS) Alert Contact Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/alertContactGroup:AlertContactGroup example \u003cid\u003e\n```\n\n","properties":{"alertContactGroupName":{"type":"string","description":"The name of the resource.\n"},"contactIds":{"type":"array","items":{"type":"string"},"description":"The list id of alert contact.\n"}},"required":["alertContactGroupName"],"inputProperties":{"alertContactGroupName":{"type":"string","description":"The name of the resource.\n"},"contactIds":{"type":"array","items":{"type":"string"},"description":"The list id of alert contact.\n"}},"requiredInputs":["alertContactGroupName"],"stateInputs":{"description":"Input properties used for looking up and filtering AlertContactGroup resources.\n","properties":{"alertContactGroupName":{"type":"string","description":"The name of the resource.\n"},"contactIds":{"type":"array","items":{"type":"string"},"description":"The list id of alert contact.\n"}},"type":"object"}},"alicloud:arms/alertRobot:AlertRobot":{"description":"Provides a Application Real-Time Monitoring Service (ARMS) Alert Robot resource.\n\nFor information about Application Real-Time Monitoring Service (ARMS) Alert Robot and how to use it, see [What is Alert Robot](https://next.api.alibabacloud.com/document/ARMS/2019-08-08/CreateOrUpdateIMRobot).\n\n\u003e **NOTE:** Available since v1.237.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst wechat = new alicloud.arms.AlertRobot(\"wechat\", {\n    alertRobotName: \"example_wechat\",\n    robotType: \"wechat\",\n    robotAddr: \"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1c704e23\",\n    dailyNoc: true,\n    dailyNocTime: \"09:30,17:00\",\n});\nconst dingding = new alicloud.arms.AlertRobot(\"dingding\", {\n    alertRobotName: \"example_dingding\",\n    robotType: \"dingding\",\n    robotAddr: \"https://oapi.dingtalk.com/robot/send?access_token=1c704e23\",\n    dailyNoc: true,\n    dailyNocTime: \"09:30,17:00\",\n});\nconst feishu = new alicloud.arms.AlertRobot(\"feishu\", {\n    alertRobotName: \"example_feishu\",\n    robotType: \"feishu\",\n    robotAddr: \"https://open.feishu.cn/open-apis/bot/v2/hook/a48efa01\",\n    dailyNoc: true,\n    dailyNocTime: \"09:30,17:00\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nwechat = alicloud.arms.AlertRobot(\"wechat\",\n    alert_robot_name=\"example_wechat\",\n    robot_type=\"wechat\",\n    robot_addr=\"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1c704e23\",\n    daily_noc=True,\n    daily_noc_time=\"09:30,17:00\")\ndingding = alicloud.arms.AlertRobot(\"dingding\",\n    alert_robot_name=\"example_dingding\",\n    robot_type=\"dingding\",\n    robot_addr=\"https://oapi.dingtalk.com/robot/send?access_token=1c704e23\",\n    daily_noc=True,\n    daily_noc_time=\"09:30,17:00\")\nfeishu = alicloud.arms.AlertRobot(\"feishu\",\n    alert_robot_name=\"example_feishu\",\n    robot_type=\"feishu\",\n    robot_addr=\"https://open.feishu.cn/open-apis/bot/v2/hook/a48efa01\",\n    daily_noc=True,\n    daily_noc_time=\"09:30,17:00\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var wechat = new AliCloud.Arms.AlertRobot(\"wechat\", new()\n    {\n        AlertRobotName = \"example_wechat\",\n        RobotType = \"wechat\",\n        RobotAddr = \"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1c704e23\",\n        DailyNoc = true,\n        DailyNocTime = \"09:30,17:00\",\n    });\n\n    var dingding = new AliCloud.Arms.AlertRobot(\"dingding\", new()\n    {\n        AlertRobotName = \"example_dingding\",\n        RobotType = \"dingding\",\n        RobotAddr = \"https://oapi.dingtalk.com/robot/send?access_token=1c704e23\",\n        DailyNoc = true,\n        DailyNocTime = \"09:30,17:00\",\n    });\n\n    var feishu = new AliCloud.Arms.AlertRobot(\"feishu\", new()\n    {\n        AlertRobotName = \"example_feishu\",\n        RobotType = \"feishu\",\n        RobotAddr = \"https://open.feishu.cn/open-apis/bot/v2/hook/a48efa01\",\n        DailyNoc = true,\n        DailyNocTime = \"09:30,17:00\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := arms.NewAlertRobot(ctx, \"wechat\", \u0026arms.AlertRobotArgs{\n\t\t\tAlertRobotName: pulumi.String(\"example_wechat\"),\n\t\t\tRobotType:      pulumi.String(\"wechat\"),\n\t\t\tRobotAddr:      pulumi.String(\"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1c704e23\"),\n\t\t\tDailyNoc:       pulumi.Bool(true),\n\t\t\tDailyNocTime:   pulumi.String(\"09:30,17:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = arms.NewAlertRobot(ctx, \"dingding\", \u0026arms.AlertRobotArgs{\n\t\t\tAlertRobotName: pulumi.String(\"example_dingding\"),\n\t\t\tRobotType:      pulumi.String(\"dingding\"),\n\t\t\tRobotAddr:      pulumi.String(\"https://oapi.dingtalk.com/robot/send?access_token=1c704e23\"),\n\t\t\tDailyNoc:       pulumi.Bool(true),\n\t\t\tDailyNocTime:   pulumi.String(\"09:30,17:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = arms.NewAlertRobot(ctx, \"feishu\", \u0026arms.AlertRobotArgs{\n\t\t\tAlertRobotName: pulumi.String(\"example_feishu\"),\n\t\t\tRobotType:      pulumi.String(\"feishu\"),\n\t\t\tRobotAddr:      pulumi.String(\"https://open.feishu.cn/open-apis/bot/v2/hook/a48efa01\"),\n\t\t\tDailyNoc:       pulumi.Bool(true),\n\t\t\tDailyNocTime:   pulumi.String(\"09:30,17:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.arms.AlertRobot;\nimport com.pulumi.alicloud.arms.AlertRobotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var wechat = new AlertRobot(\"wechat\", AlertRobotArgs.builder()\n            .alertRobotName(\"example_wechat\")\n            .robotType(\"wechat\")\n            .robotAddr(\"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1c704e23\")\n            .dailyNoc(true)\n            .dailyNocTime(\"09:30,17:00\")\n            .build());\n\n        var dingding = new AlertRobot(\"dingding\", AlertRobotArgs.builder()\n            .alertRobotName(\"example_dingding\")\n            .robotType(\"dingding\")\n            .robotAddr(\"https://oapi.dingtalk.com/robot/send?access_token=1c704e23\")\n            .dailyNoc(true)\n            .dailyNocTime(\"09:30,17:00\")\n            .build());\n\n        var feishu = new AlertRobot(\"feishu\", AlertRobotArgs.builder()\n            .alertRobotName(\"example_feishu\")\n            .robotType(\"feishu\")\n            .robotAddr(\"https://open.feishu.cn/open-apis/bot/v2/hook/a48efa01\")\n            .dailyNoc(true)\n            .dailyNocTime(\"09:30,17:00\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  wechat:\n    type: alicloud:arms:AlertRobot\n    properties:\n      alertRobotName: example_wechat\n      robotType: wechat\n      robotAddr: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1c704e23\n      dailyNoc: true\n      dailyNocTime: 09:30,17:00\n  dingding:\n    type: alicloud:arms:AlertRobot\n    properties:\n      alertRobotName: example_dingding\n      robotType: dingding\n      robotAddr: https://oapi.dingtalk.com/robot/send?access_token=1c704e23\n      dailyNoc: true\n      dailyNocTime: 09:30,17:00\n  feishu:\n    type: alicloud:arms:AlertRobot\n    properties:\n      alertRobotName: example_feishu\n      robotType: feishu\n      robotAddr: https://open.feishu.cn/open-apis/bot/v2/hook/a48efa01\n      dailyNoc: true\n      dailyNocTime: 09:30,17:00\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Real-Time Monitoring Service (ARMS) Alert Robot can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/alertRobot:AlertRobot example \u003cid\u003e\n```\n\n","properties":{"alertRobotName":{"type":"string","description":"The name of the resource.\n"},"dailyNoc":{"type":"boolean","description":"Specifies whether the alert robot receives daily notifications. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: receives daily notifications. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: does not receive daily notifications, default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dailyNocTime":{"type":"string","description":"The time of the daily notification.\n"},"robotAddr":{"type":"string","description":"The webhook url of the robot.\n"},"robotType":{"type":"string","description":"The type of the robot, Valid values: \u003cspan pulumi-lang-nodejs=\"`wechat`\" pulumi-lang-dotnet=\"`Wechat`\" pulumi-lang-go=\"`wechat`\" pulumi-lang-python=\"`wechat`\" pulumi-lang-yaml=\"`wechat`\" pulumi-lang-java=\"`wechat`\"\u003e`wechat`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dingding`\" pulumi-lang-dotnet=\"`Dingding`\" pulumi-lang-go=\"`dingding`\" pulumi-lang-python=\"`dingding`\" pulumi-lang-yaml=\"`dingding`\" pulumi-lang-java=\"`dingding`\"\u003e`dingding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`feishu`\" pulumi-lang-dotnet=\"`Feishu`\" pulumi-lang-go=\"`feishu`\" pulumi-lang-python=\"`feishu`\" pulumi-lang-yaml=\"`feishu`\" pulumi-lang-java=\"`feishu`\"\u003e`feishu`\u003c/span\u003e.\n"}},"required":["alertRobotName","robotAddr","robotType"],"inputProperties":{"alertRobotName":{"type":"string","description":"The name of the resource.\n"},"dailyNoc":{"type":"boolean","description":"Specifies whether the alert robot receives daily notifications. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: receives daily notifications. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: does not receive daily notifications, default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dailyNocTime":{"type":"string","description":"The time of the daily notification.\n"},"robotAddr":{"type":"string","description":"The webhook url of the robot.\n"},"robotType":{"type":"string","description":"The type of the robot, Valid values: \u003cspan pulumi-lang-nodejs=\"`wechat`\" pulumi-lang-dotnet=\"`Wechat`\" pulumi-lang-go=\"`wechat`\" pulumi-lang-python=\"`wechat`\" pulumi-lang-yaml=\"`wechat`\" pulumi-lang-java=\"`wechat`\"\u003e`wechat`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dingding`\" pulumi-lang-dotnet=\"`Dingding`\" pulumi-lang-go=\"`dingding`\" pulumi-lang-python=\"`dingding`\" pulumi-lang-yaml=\"`dingding`\" pulumi-lang-java=\"`dingding`\"\u003e`dingding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`feishu`\" pulumi-lang-dotnet=\"`Feishu`\" pulumi-lang-go=\"`feishu`\" pulumi-lang-python=\"`feishu`\" pulumi-lang-yaml=\"`feishu`\" pulumi-lang-java=\"`feishu`\"\u003e`feishu`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["alertRobotName","robotAddr","robotType"],"stateInputs":{"description":"Input properties used for looking up and filtering AlertRobot resources.\n","properties":{"alertRobotName":{"type":"string","description":"The name of the resource.\n"},"dailyNoc":{"type":"boolean","description":"Specifies whether the alert robot receives daily notifications. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: receives daily notifications. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: does not receive daily notifications, default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dailyNocTime":{"type":"string","description":"The time of the daily notification.\n"},"robotAddr":{"type":"string","description":"The webhook url of the robot.\n"},"robotType":{"type":"string","description":"The type of the robot, Valid values: \u003cspan pulumi-lang-nodejs=\"`wechat`\" pulumi-lang-dotnet=\"`Wechat`\" pulumi-lang-go=\"`wechat`\" pulumi-lang-python=\"`wechat`\" pulumi-lang-yaml=\"`wechat`\" pulumi-lang-java=\"`wechat`\"\u003e`wechat`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dingding`\" pulumi-lang-dotnet=\"`Dingding`\" pulumi-lang-go=\"`dingding`\" pulumi-lang-python=\"`dingding`\" pulumi-lang-yaml=\"`dingding`\" pulumi-lang-java=\"`dingding`\"\u003e`dingding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`feishu`\" pulumi-lang-dotnet=\"`Feishu`\" pulumi-lang-go=\"`feishu`\" pulumi-lang-python=\"`feishu`\" pulumi-lang-yaml=\"`feishu`\" pulumi-lang-java=\"`feishu`\"\u003e`feishu`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:arms/dispatchRule:DispatchRule":{"description":"Provides a Application Real-Time Monitoring Service (ARMS) Alert Dispatch Rule resource.\n\nFor information about Application Real-Time Monitoring Service (ARMS) Alert Dispatch Rule and how to use it, see [What is Alert Dispatch_Rule](https://next.api.alibabacloud.com/document/ARMS/2019-08-08/CreateDispatchRule).\n\n\u003e **NOTE:** Available since v1.136.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.arms.AlertContact(\"default\", {\n    alertContactName: \"example_value\",\n    email: \"example_value@aaa.com\",\n});\nconst defaultAlertContactGroup = new alicloud.arms.AlertContactGroup(\"default\", {\n    alertContactGroupName: \"example_value\",\n    contactIds: [_default.id],\n});\nconst defaultDispatchRule = new alicloud.arms.DispatchRule(\"default\", {\n    dispatchRuleName: \"example_value\",\n    dispatchType: \"CREATE_ALERT\",\n    groupRules: [{\n        groupWaitTime: 5,\n        groupInterval: 15,\n        repeatInterval: 100,\n        groupingFields: [\"alertname\"],\n    }],\n    labelMatchExpressionGrids: [{\n        labelMatchExpressionGroups: [{\n            labelMatchExpressions: [{\n                key: \"_aliyun_arms_involvedObject_kind\",\n                value: \"app\",\n                operator: \"eq\",\n            }],\n        }],\n    }],\n    notifyRules: [{\n        notifyObjects: [\n            {\n                notifyObjectId: _default.id,\n                notifyType: \"ARMS_CONTACT\",\n                name: \"example_value\",\n            },\n            {\n                notifyObjectId: defaultAlertContactGroup.id,\n                notifyType: \"ARMS_CONTACT_GROUP\",\n                name: \"example_value\",\n            },\n        ],\n        notifyChannels: [\n            \"dingTalk\",\n            \"wechat\",\n        ],\n        notifyStartTime: \"10:00\",\n        notifyEndTime: \"23:00\",\n    }],\n    notifyTemplates: [{\n        emailTitle: \"example_email_title\",\n        emailContent: \"example_email_content\",\n        emailRecoverTitle: \"example_email_recover_title\",\n        emailRecoverContent: \"example_email_recover_content\",\n        smsContent: \"example_sms_content\",\n        smsRecoverContent: \"example_sms_recover_content\",\n        ttsContent: \"example_tts_content\",\n        ttsRecoverContent: \"example_tts_recover_content\",\n        robotContent: \"example_robot_content\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.arms.AlertContact(\"default\",\n    alert_contact_name=\"example_value\",\n    email=\"example_value@aaa.com\")\ndefault_alert_contact_group = alicloud.arms.AlertContactGroup(\"default\",\n    alert_contact_group_name=\"example_value\",\n    contact_ids=[default.id])\ndefault_dispatch_rule = alicloud.arms.DispatchRule(\"default\",\n    dispatch_rule_name=\"example_value\",\n    dispatch_type=\"CREATE_ALERT\",\n    group_rules=[{\n        \"group_wait_time\": 5,\n        \"group_interval\": 15,\n        \"repeat_interval\": 100,\n        \"grouping_fields\": [\"alertname\"],\n    }],\n    label_match_expression_grids=[{\n        \"label_match_expression_groups\": [{\n            \"label_match_expressions\": [{\n                \"key\": \"_aliyun_arms_involvedObject_kind\",\n                \"value\": \"app\",\n                \"operator\": \"eq\",\n            }],\n        }],\n    }],\n    notify_rules=[{\n        \"notify_objects\": [\n            {\n                \"notify_object_id\": default.id,\n                \"notify_type\": \"ARMS_CONTACT\",\n                \"name\": \"example_value\",\n            },\n            {\n                \"notify_object_id\": default_alert_contact_group.id,\n                \"notify_type\": \"ARMS_CONTACT_GROUP\",\n                \"name\": \"example_value\",\n            },\n        ],\n        \"notify_channels\": [\n            \"dingTalk\",\n            \"wechat\",\n        ],\n        \"notify_start_time\": \"10:00\",\n        \"notify_end_time\": \"23:00\",\n    }],\n    notify_templates=[{\n        \"email_title\": \"example_email_title\",\n        \"email_content\": \"example_email_content\",\n        \"email_recover_title\": \"example_email_recover_title\",\n        \"email_recover_content\": \"example_email_recover_content\",\n        \"sms_content\": \"example_sms_content\",\n        \"sms_recover_content\": \"example_sms_recover_content\",\n        \"tts_content\": \"example_tts_content\",\n        \"tts_recover_content\": \"example_tts_recover_content\",\n        \"robot_content\": \"example_robot_content\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Arms.AlertContact(\"default\", new()\n    {\n        AlertContactName = \"example_value\",\n        Email = \"example_value@aaa.com\",\n    });\n\n    var defaultAlertContactGroup = new AliCloud.Arms.AlertContactGroup(\"default\", new()\n    {\n        AlertContactGroupName = \"example_value\",\n        ContactIds = new[]\n        {\n            @default.Id,\n        },\n    });\n\n    var defaultDispatchRule = new AliCloud.Arms.DispatchRule(\"default\", new()\n    {\n        DispatchRuleName = \"example_value\",\n        DispatchType = \"CREATE_ALERT\",\n        GroupRules = new[]\n        {\n            new AliCloud.Arms.Inputs.DispatchRuleGroupRuleArgs\n            {\n                GroupWaitTime = 5,\n                GroupInterval = 15,\n                RepeatInterval = 100,\n                GroupingFields = new[]\n                {\n                    \"alertname\",\n                },\n            },\n        },\n        LabelMatchExpressionGrids = new[]\n        {\n            new AliCloud.Arms.Inputs.DispatchRuleLabelMatchExpressionGridArgs\n            {\n                LabelMatchExpressionGroups = new[]\n                {\n                    new AliCloud.Arms.Inputs.DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupArgs\n                    {\n                        LabelMatchExpressions = new[]\n                        {\n                            new AliCloud.Arms.Inputs.DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupLabelMatchExpressionArgs\n                            {\n                                Key = \"_aliyun_arms_involvedObject_kind\",\n                                Value = \"app\",\n                                Operator = \"eq\",\n                            },\n                        },\n                    },\n                },\n            },\n        },\n        NotifyRules = new[]\n        {\n            new AliCloud.Arms.Inputs.DispatchRuleNotifyRuleArgs\n            {\n                NotifyObjects = new[]\n                {\n                    new AliCloud.Arms.Inputs.DispatchRuleNotifyRuleNotifyObjectArgs\n                    {\n                        NotifyObjectId = @default.Id,\n                        NotifyType = \"ARMS_CONTACT\",\n                        Name = \"example_value\",\n                    },\n                    new AliCloud.Arms.Inputs.DispatchRuleNotifyRuleNotifyObjectArgs\n                    {\n                        NotifyObjectId = defaultAlertContactGroup.Id,\n                        NotifyType = \"ARMS_CONTACT_GROUP\",\n                        Name = \"example_value\",\n                    },\n                },\n                NotifyChannels = new[]\n                {\n                    \"dingTalk\",\n                    \"wechat\",\n                },\n                NotifyStartTime = \"10:00\",\n                NotifyEndTime = \"23:00\",\n            },\n        },\n        NotifyTemplates = new[]\n        {\n            new AliCloud.Arms.Inputs.DispatchRuleNotifyTemplateArgs\n            {\n                EmailTitle = \"example_email_title\",\n                EmailContent = \"example_email_content\",\n                EmailRecoverTitle = \"example_email_recover_title\",\n                EmailRecoverContent = \"example_email_recover_content\",\n                SmsContent = \"example_sms_content\",\n                SmsRecoverContent = \"example_sms_recover_content\",\n                TtsContent = \"example_tts_content\",\n                TtsRecoverContent = \"example_tts_recover_content\",\n                RobotContent = \"example_robot_content\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := arms.NewAlertContact(ctx, \"default\", \u0026arms.AlertContactArgs{\n\t\t\tAlertContactName: pulumi.String(\"example_value\"),\n\t\t\tEmail:            pulumi.String(\"example_value@aaa.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAlertContactGroup, err := arms.NewAlertContactGroup(ctx, \"default\", \u0026arms.AlertContactGroupArgs{\n\t\t\tAlertContactGroupName: pulumi.String(\"example_value\"),\n\t\t\tContactIds: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = arms.NewDispatchRule(ctx, \"default\", \u0026arms.DispatchRuleArgs{\n\t\t\tDispatchRuleName: pulumi.String(\"example_value\"),\n\t\t\tDispatchType:     pulumi.String(\"CREATE_ALERT\"),\n\t\t\tGroupRules: arms.DispatchRuleGroupRuleArray{\n\t\t\t\t\u0026arms.DispatchRuleGroupRuleArgs{\n\t\t\t\t\tGroupWaitTime:  pulumi.Int(5),\n\t\t\t\t\tGroupInterval:  pulumi.Int(15),\n\t\t\t\t\tRepeatInterval: pulumi.Int(100),\n\t\t\t\t\tGroupingFields: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"alertname\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabelMatchExpressionGrids: arms.DispatchRuleLabelMatchExpressionGridArray{\n\t\t\t\t\u0026arms.DispatchRuleLabelMatchExpressionGridArgs{\n\t\t\t\t\tLabelMatchExpressionGroups: arms.DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupArray{\n\t\t\t\t\t\t\u0026arms.DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupArgs{\n\t\t\t\t\t\t\tLabelMatchExpressions: arms.DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupLabelMatchExpressionArray{\n\t\t\t\t\t\t\t\t\u0026arms.DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupLabelMatchExpressionArgs{\n\t\t\t\t\t\t\t\t\tKey:      pulumi.String(\"_aliyun_arms_involvedObject_kind\"),\n\t\t\t\t\t\t\t\t\tValue:    pulumi.String(\"app\"),\n\t\t\t\t\t\t\t\t\tOperator: pulumi.String(\"eq\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tNotifyRules: arms.DispatchRuleNotifyRuleArray{\n\t\t\t\t\u0026arms.DispatchRuleNotifyRuleArgs{\n\t\t\t\t\tNotifyObjects: arms.DispatchRuleNotifyRuleNotifyObjectArray{\n\t\t\t\t\t\t\u0026arms.DispatchRuleNotifyRuleNotifyObjectArgs{\n\t\t\t\t\t\t\tNotifyObjectId: _default.ID(),\n\t\t\t\t\t\t\tNotifyType:     pulumi.String(\"ARMS_CONTACT\"),\n\t\t\t\t\t\t\tName:           pulumi.String(\"example_value\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026arms.DispatchRuleNotifyRuleNotifyObjectArgs{\n\t\t\t\t\t\t\tNotifyObjectId: defaultAlertContactGroup.ID(),\n\t\t\t\t\t\t\tNotifyType:     pulumi.String(\"ARMS_CONTACT_GROUP\"),\n\t\t\t\t\t\t\tName:           pulumi.String(\"example_value\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tNotifyChannels: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"dingTalk\"),\n\t\t\t\t\t\tpulumi.String(\"wechat\"),\n\t\t\t\t\t},\n\t\t\t\t\tNotifyStartTime: pulumi.String(\"10:00\"),\n\t\t\t\t\tNotifyEndTime:   pulumi.String(\"23:00\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNotifyTemplates: arms.DispatchRuleNotifyTemplateArray{\n\t\t\t\t\u0026arms.DispatchRuleNotifyTemplateArgs{\n\t\t\t\t\tEmailTitle:          pulumi.String(\"example_email_title\"),\n\t\t\t\t\tEmailContent:        pulumi.String(\"example_email_content\"),\n\t\t\t\t\tEmailRecoverTitle:   pulumi.String(\"example_email_recover_title\"),\n\t\t\t\t\tEmailRecoverContent: pulumi.String(\"example_email_recover_content\"),\n\t\t\t\t\tSmsContent:          pulumi.String(\"example_sms_content\"),\n\t\t\t\t\tSmsRecoverContent:   pulumi.String(\"example_sms_recover_content\"),\n\t\t\t\t\tTtsContent:          pulumi.String(\"example_tts_content\"),\n\t\t\t\t\tTtsRecoverContent:   pulumi.String(\"example_tts_recover_content\"),\n\t\t\t\t\tRobotContent:        pulumi.String(\"example_robot_content\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.arms.AlertContact;\nimport com.pulumi.alicloud.arms.AlertContactArgs;\nimport com.pulumi.alicloud.arms.AlertContactGroup;\nimport com.pulumi.alicloud.arms.AlertContactGroupArgs;\nimport com.pulumi.alicloud.arms.DispatchRule;\nimport com.pulumi.alicloud.arms.DispatchRuleArgs;\nimport com.pulumi.alicloud.arms.inputs.DispatchRuleGroupRuleArgs;\nimport com.pulumi.alicloud.arms.inputs.DispatchRuleLabelMatchExpressionGridArgs;\nimport com.pulumi.alicloud.arms.inputs.DispatchRuleNotifyRuleArgs;\nimport com.pulumi.alicloud.arms.inputs.DispatchRuleNotifyTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new AlertContact(\"default\", AlertContactArgs.builder()\n            .alertContactName(\"example_value\")\n            .email(\"example_value@aaa.com\")\n            .build());\n\n        var defaultAlertContactGroup = new AlertContactGroup(\"defaultAlertContactGroup\", AlertContactGroupArgs.builder()\n            .alertContactGroupName(\"example_value\")\n            .contactIds(default_.id())\n            .build());\n\n        var defaultDispatchRule = new DispatchRule(\"defaultDispatchRule\", DispatchRuleArgs.builder()\n            .dispatchRuleName(\"example_value\")\n            .dispatchType(\"CREATE_ALERT\")\n            .groupRules(DispatchRuleGroupRuleArgs.builder()\n                .groupWaitTime(5)\n                .groupInterval(15)\n                .repeatInterval(100)\n                .groupingFields(\"alertname\")\n                .build())\n            .labelMatchExpressionGrids(DispatchRuleLabelMatchExpressionGridArgs.builder()\n                .labelMatchExpressionGroups(DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupArgs.builder()\n                    .labelMatchExpressions(DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupLabelMatchExpressionArgs.builder()\n                        .key(\"_aliyun_arms_involvedObject_kind\")\n                        .value(\"app\")\n                        .operator(\"eq\")\n                        .build())\n                    .build())\n                .build())\n            .notifyRules(DispatchRuleNotifyRuleArgs.builder()\n                .notifyObjects(                \n                    DispatchRuleNotifyRuleNotifyObjectArgs.builder()\n                        .notifyObjectId(default_.id())\n                        .notifyType(\"ARMS_CONTACT\")\n                        .name(\"example_value\")\n                        .build(),\n                    DispatchRuleNotifyRuleNotifyObjectArgs.builder()\n                        .notifyObjectId(defaultAlertContactGroup.id())\n                        .notifyType(\"ARMS_CONTACT_GROUP\")\n                        .name(\"example_value\")\n                        .build())\n                .notifyChannels(                \n                    \"dingTalk\",\n                    \"wechat\")\n                .notifyStartTime(\"10:00\")\n                .notifyEndTime(\"23:00\")\n                .build())\n            .notifyTemplates(DispatchRuleNotifyTemplateArgs.builder()\n                .emailTitle(\"example_email_title\")\n                .emailContent(\"example_email_content\")\n                .emailRecoverTitle(\"example_email_recover_title\")\n                .emailRecoverContent(\"example_email_recover_content\")\n                .smsContent(\"example_sms_content\")\n                .smsRecoverContent(\"example_sms_recover_content\")\n                .ttsContent(\"example_tts_content\")\n                .ttsRecoverContent(\"example_tts_recover_content\")\n                .robotContent(\"example_robot_content\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:arms:AlertContact\n    properties:\n      alertContactName: example_value\n      email: example_value@aaa.com\n  defaultAlertContactGroup:\n    type: alicloud:arms:AlertContactGroup\n    name: default\n    properties:\n      alertContactGroupName: example_value\n      contactIds:\n        - ${default.id}\n  defaultDispatchRule:\n    type: alicloud:arms:DispatchRule\n    name: default\n    properties:\n      dispatchRuleName: example_value\n      dispatchType: CREATE_ALERT\n      groupRules:\n        - groupWaitTime: 5\n          groupInterval: 15\n          repeatInterval: 100\n          groupingFields:\n            - alertname\n      labelMatchExpressionGrids:\n        - labelMatchExpressionGroups:\n            - labelMatchExpressions:\n                - key: _aliyun_arms_involvedObject_kind\n                  value: app\n                  operator: eq\n      notifyRules:\n        - notifyObjects:\n            - notifyObjectId: ${default.id}\n              notifyType: ARMS_CONTACT\n              name: example_value\n            - notifyObjectId: ${defaultAlertContactGroup.id}\n              notifyType: ARMS_CONTACT_GROUP\n              name: example_value\n          notifyChannels:\n            - dingTalk\n            - wechat\n          notifyStartTime: 10:00\n          notifyEndTime: 23:00\n      notifyTemplates:\n        - emailTitle: example_email_title\n          emailContent: example_email_content\n          emailRecoverTitle: example_email_recover_title\n          emailRecoverContent: example_email_recover_content\n          smsContent: example_sms_content\n          smsRecoverContent: example_sms_recover_content\n          ttsContent: example_tts_content\n          ttsRecoverContent: example_tts_recover_content\n          robotContent: example_robot_content\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Real-Time Monitoring Service (ARMS) Alert Contact can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/dispatchRule:DispatchRule example \u003cid\u003e\n```\n\n","properties":{"dispatchRuleName":{"type":"string","description":"The name of the dispatch policy.\n"},"dispatchType":{"type":"string","description":"The alert handling method. Valid values: CREATE_ALERT: generates an alert. DISCARD_ALERT: discards the alert event and generates no alert.\n"},"groupRules":{"type":"array","items":{"$ref":"#/types/alicloud:arms/DispatchRuleGroupRule:DispatchRuleGroupRule"},"description":"Sets the event group. See \u003cspan pulumi-lang-nodejs=\"`groupRules`\" pulumi-lang-dotnet=\"`GroupRules`\" pulumi-lang-go=\"`groupRules`\" pulumi-lang-python=\"`group_rules`\" pulumi-lang-yaml=\"`groupRules`\" pulumi-lang-java=\"`groupRules`\"\u003e`group_rules`\u003c/span\u003e below. It will be ignored  when \u003cspan pulumi-lang-nodejs=\"`dispatchType \" pulumi-lang-dotnet=\"`DispatchType \" pulumi-lang-go=\"`dispatchType \" pulumi-lang-python=\"`dispatch_type \" pulumi-lang-yaml=\"`dispatchType \" pulumi-lang-java=\"`dispatchType \"\u003e`dispatch_type \u003c/span\u003e= \"DISCARD_ALERT\"`.\n"},"isRecover":{"type":"boolean","description":"Specifies whether to send the restored alert. Valid values: true: sends the alert. false: does not send the alert.\n"},"labelMatchExpressionGrids":{"type":"array","items":{"$ref":"#/types/alicloud:arms/DispatchRuleLabelMatchExpressionGrid:DispatchRuleLabelMatchExpressionGrid"},"description":"Sets the dispatch rule. See \u003cspan pulumi-lang-nodejs=\"`labelMatchExpressionGrid`\" pulumi-lang-dotnet=\"`LabelMatchExpressionGrid`\" pulumi-lang-go=\"`labelMatchExpressionGrid`\" pulumi-lang-python=\"`label_match_expression_grid`\" pulumi-lang-yaml=\"`labelMatchExpressionGrid`\" pulumi-lang-java=\"`labelMatchExpressionGrid`\"\u003e`label_match_expression_grid`\u003c/span\u003e below.\n"},"notifyRules":{"type":"array","items":{"$ref":"#/types/alicloud:arms/DispatchRuleNotifyRule:DispatchRuleNotifyRule"},"description":"Sets the notification rule. See \u003cspan pulumi-lang-nodejs=\"`notifyRules`\" pulumi-lang-dotnet=\"`NotifyRules`\" pulumi-lang-go=\"`notifyRules`\" pulumi-lang-python=\"`notify_rules`\" pulumi-lang-yaml=\"`notifyRules`\" pulumi-lang-java=\"`notifyRules`\"\u003e`notify_rules`\u003c/span\u003e below. It will be ignored  when \u003cspan pulumi-lang-nodejs=\"`dispatchType \" pulumi-lang-dotnet=\"`DispatchType \" pulumi-lang-go=\"`dispatchType \" pulumi-lang-python=\"`dispatch_type \" pulumi-lang-yaml=\"`dispatchType \" pulumi-lang-java=\"`dispatchType \"\u003e`dispatch_type \u003c/span\u003e= \"DISCARD_ALERT\"`.\n"},"notifyTemplates":{"type":"array","items":{"$ref":"#/types/alicloud:arms/DispatchRuleNotifyTemplate:DispatchRuleNotifyTemplate"},"description":"Sets the notification template. See \u003cspan pulumi-lang-nodejs=\"`notifyTemplate`\" pulumi-lang-dotnet=\"`NotifyTemplate`\" pulumi-lang-go=\"`notifyTemplate`\" pulumi-lang-python=\"`notify_template`\" pulumi-lang-yaml=\"`notifyTemplate`\" pulumi-lang-java=\"`notifyTemplate`\"\u003e`notify_template`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The resource status of Alert Dispatch Rule.\n"}},"required":["dispatchRuleName","groupRules","labelMatchExpressionGrids","notifyRules","status"],"inputProperties":{"dispatchRuleName":{"type":"string","description":"The name of the dispatch policy.\n"},"dispatchType":{"type":"string","description":"The alert handling method. Valid values: CREATE_ALERT: generates an alert. DISCARD_ALERT: discards the alert event and generates no alert.\n"},"groupRules":{"type":"array","items":{"$ref":"#/types/alicloud:arms/DispatchRuleGroupRule:DispatchRuleGroupRule"},"description":"Sets the event group. See \u003cspan pulumi-lang-nodejs=\"`groupRules`\" pulumi-lang-dotnet=\"`GroupRules`\" pulumi-lang-go=\"`groupRules`\" pulumi-lang-python=\"`group_rules`\" pulumi-lang-yaml=\"`groupRules`\" pulumi-lang-java=\"`groupRules`\"\u003e`group_rules`\u003c/span\u003e below. It will be ignored  when \u003cspan pulumi-lang-nodejs=\"`dispatchType \" pulumi-lang-dotnet=\"`DispatchType \" pulumi-lang-go=\"`dispatchType \" pulumi-lang-python=\"`dispatch_type \" pulumi-lang-yaml=\"`dispatchType \" pulumi-lang-java=\"`dispatchType \"\u003e`dispatch_type \u003c/span\u003e= \"DISCARD_ALERT\"`.\n"},"isRecover":{"type":"boolean","description":"Specifies whether to send the restored alert. Valid values: true: sends the alert. false: does not send the alert.\n"},"labelMatchExpressionGrids":{"type":"array","items":{"$ref":"#/types/alicloud:arms/DispatchRuleLabelMatchExpressionGrid:DispatchRuleLabelMatchExpressionGrid"},"description":"Sets the dispatch rule. See \u003cspan pulumi-lang-nodejs=\"`labelMatchExpressionGrid`\" pulumi-lang-dotnet=\"`LabelMatchExpressionGrid`\" pulumi-lang-go=\"`labelMatchExpressionGrid`\" pulumi-lang-python=\"`label_match_expression_grid`\" pulumi-lang-yaml=\"`labelMatchExpressionGrid`\" pulumi-lang-java=\"`labelMatchExpressionGrid`\"\u003e`label_match_expression_grid`\u003c/span\u003e below.\n"},"notifyRules":{"type":"array","items":{"$ref":"#/types/alicloud:arms/DispatchRuleNotifyRule:DispatchRuleNotifyRule"},"description":"Sets the notification rule. See \u003cspan pulumi-lang-nodejs=\"`notifyRules`\" pulumi-lang-dotnet=\"`NotifyRules`\" pulumi-lang-go=\"`notifyRules`\" pulumi-lang-python=\"`notify_rules`\" pulumi-lang-yaml=\"`notifyRules`\" pulumi-lang-java=\"`notifyRules`\"\u003e`notify_rules`\u003c/span\u003e below. It will be ignored  when \u003cspan pulumi-lang-nodejs=\"`dispatchType \" pulumi-lang-dotnet=\"`DispatchType \" pulumi-lang-go=\"`dispatchType \" pulumi-lang-python=\"`dispatch_type \" pulumi-lang-yaml=\"`dispatchType \" pulumi-lang-java=\"`dispatchType \"\u003e`dispatch_type \u003c/span\u003e= \"DISCARD_ALERT\"`.\n"},"notifyTemplates":{"type":"array","items":{"$ref":"#/types/alicloud:arms/DispatchRuleNotifyTemplate:DispatchRuleNotifyTemplate"},"description":"Sets the notification template. See \u003cspan pulumi-lang-nodejs=\"`notifyTemplate`\" pulumi-lang-dotnet=\"`NotifyTemplate`\" pulumi-lang-go=\"`notifyTemplate`\" pulumi-lang-python=\"`notify_template`\" pulumi-lang-yaml=\"`notifyTemplate`\" pulumi-lang-java=\"`notifyTemplate`\"\u003e`notify_template`\u003c/span\u003e below.\n"}},"requiredInputs":["dispatchRuleName","groupRules","labelMatchExpressionGrids","notifyRules"],"stateInputs":{"description":"Input properties used for looking up and filtering DispatchRule resources.\n","properties":{"dispatchRuleName":{"type":"string","description":"The name of the dispatch policy.\n"},"dispatchType":{"type":"string","description":"The alert handling method. Valid values: CREATE_ALERT: generates an alert. DISCARD_ALERT: discards the alert event and generates no alert.\n"},"groupRules":{"type":"array","items":{"$ref":"#/types/alicloud:arms/DispatchRuleGroupRule:DispatchRuleGroupRule"},"description":"Sets the event group. See \u003cspan pulumi-lang-nodejs=\"`groupRules`\" pulumi-lang-dotnet=\"`GroupRules`\" pulumi-lang-go=\"`groupRules`\" pulumi-lang-python=\"`group_rules`\" pulumi-lang-yaml=\"`groupRules`\" pulumi-lang-java=\"`groupRules`\"\u003e`group_rules`\u003c/span\u003e below. It will be ignored  when \u003cspan pulumi-lang-nodejs=\"`dispatchType \" pulumi-lang-dotnet=\"`DispatchType \" pulumi-lang-go=\"`dispatchType \" pulumi-lang-python=\"`dispatch_type \" pulumi-lang-yaml=\"`dispatchType \" pulumi-lang-java=\"`dispatchType \"\u003e`dispatch_type \u003c/span\u003e= \"DISCARD_ALERT\"`.\n"},"isRecover":{"type":"boolean","description":"Specifies whether to send the restored alert. Valid values: true: sends the alert. false: does not send the alert.\n"},"labelMatchExpressionGrids":{"type":"array","items":{"$ref":"#/types/alicloud:arms/DispatchRuleLabelMatchExpressionGrid:DispatchRuleLabelMatchExpressionGrid"},"description":"Sets the dispatch rule. See \u003cspan pulumi-lang-nodejs=\"`labelMatchExpressionGrid`\" pulumi-lang-dotnet=\"`LabelMatchExpressionGrid`\" pulumi-lang-go=\"`labelMatchExpressionGrid`\" pulumi-lang-python=\"`label_match_expression_grid`\" pulumi-lang-yaml=\"`labelMatchExpressionGrid`\" pulumi-lang-java=\"`labelMatchExpressionGrid`\"\u003e`label_match_expression_grid`\u003c/span\u003e below.\n"},"notifyRules":{"type":"array","items":{"$ref":"#/types/alicloud:arms/DispatchRuleNotifyRule:DispatchRuleNotifyRule"},"description":"Sets the notification rule. See \u003cspan pulumi-lang-nodejs=\"`notifyRules`\" pulumi-lang-dotnet=\"`NotifyRules`\" pulumi-lang-go=\"`notifyRules`\" pulumi-lang-python=\"`notify_rules`\" pulumi-lang-yaml=\"`notifyRules`\" pulumi-lang-java=\"`notifyRules`\"\u003e`notify_rules`\u003c/span\u003e below. It will be ignored  when \u003cspan pulumi-lang-nodejs=\"`dispatchType \" pulumi-lang-dotnet=\"`DispatchType \" pulumi-lang-go=\"`dispatchType \" pulumi-lang-python=\"`dispatch_type \" pulumi-lang-yaml=\"`dispatchType \" pulumi-lang-java=\"`dispatchType \"\u003e`dispatch_type \u003c/span\u003e= \"DISCARD_ALERT\"`.\n"},"notifyTemplates":{"type":"array","items":{"$ref":"#/types/alicloud:arms/DispatchRuleNotifyTemplate:DispatchRuleNotifyTemplate"},"description":"Sets the notification template. See \u003cspan pulumi-lang-nodejs=\"`notifyTemplate`\" pulumi-lang-dotnet=\"`NotifyTemplate`\" pulumi-lang-go=\"`notifyTemplate`\" pulumi-lang-python=\"`notify_template`\" pulumi-lang-yaml=\"`notifyTemplate`\" pulumi-lang-java=\"`notifyTemplate`\"\u003e`notify_template`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The resource status of Alert Dispatch Rule.\n"}},"type":"object"}},"alicloud:arms/envCustomJob:EnvCustomJob":{"description":"Provides a ARMS Env Custom Job resource. Custom jobs in the arms environment.\n\nFor information about ARMS Env Custom Job and how to use it, see [What is Env Custom Job](https://www.alibabacloud.com/help/en/arms/developer-reference/api-arms-2019-08-08-createenvcustomjob).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    description: name,\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: name,\n});\nconst env_ecs = new alicloud.arms.Environment(\"env-ecs\", {\n    environmentType: \"ECS\",\n    environmentName: `terraform-example-${_default.result}`,\n    bindResourceId: vpc.id,\n    environmentSubType: \"ECS\",\n});\nconst defaultEnvCustomJob = new alicloud.arms.EnvCustomJob(\"default\", {\n    status: \"run\",\n    environmentId: env_ecs.id,\n    envCustomJobName: name,\n    configYaml: `scrape_configs:\n- job_name: job-demo1\n  honor_timestamps: false\n  honor_labels: false\n  scrape_interval: 30s\n  scheme: http\n  metrics_path: /metric\n  static_configs:\n  - targets:\n    - 127.0.0.1:9090\n`,\n    aliyunLang: \"en\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nvpc = alicloud.vpc.Network(\"vpc\",\n    description=name,\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=name)\nenv_ecs = alicloud.arms.Environment(\"env-ecs\",\n    environment_type=\"ECS\",\n    environment_name=f\"terraform-example-{default['result']}\",\n    bind_resource_id=vpc.id,\n    environment_sub_type=\"ECS\")\ndefault_env_custom_job = alicloud.arms.EnvCustomJob(\"default\",\n    status=\"run\",\n    environment_id=env_ecs.id,\n    env_custom_job_name=name,\n    config_yaml=\"\"\"scrape_configs:\n- job_name: job-demo1\n  honor_timestamps: false\n  honor_labels: false\n  scrape_interval: 30s\n  scheme: http\n  metrics_path: /metric\n  static_configs:\n  - targets:\n    - 127.0.0.1:9090\n\"\"\",\n    aliyun_lang=\"en\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        Description = name,\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = name,\n    });\n\n    var env_ecs = new AliCloud.Arms.Environment(\"env-ecs\", new()\n    {\n        EnvironmentType = \"ECS\",\n        EnvironmentName = $\"terraform-example-{@default.Result}\",\n        BindResourceId = vpc.Id,\n        EnvironmentSubType = \"ECS\",\n    });\n\n    var defaultEnvCustomJob = new AliCloud.Arms.EnvCustomJob(\"default\", new()\n    {\n        Status = \"run\",\n        EnvironmentId = env_ecs.Id,\n        EnvCustomJobName = name,\n        ConfigYaml = @\"scrape_configs:\n- job_name: job-demo1\n  honor_timestamps: false\n  honor_labels: false\n  scrape_interval: 30s\n  scheme: http\n  metrics_path: /metric\n  static_configs:\n  - targets:\n    - 127.0.0.1:9090\n\",\n        AliyunLang = \"en\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:     pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tenv_ecs, err := arms.NewEnvironment(ctx, \"env-ecs\", \u0026arms.EnvironmentArgs{\n\t\t\tEnvironmentType:    pulumi.String(\"ECS\"),\n\t\t\tEnvironmentName:    pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tBindResourceId:     vpc.ID(),\n\t\t\tEnvironmentSubType: pulumi.String(\"ECS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = arms.NewEnvCustomJob(ctx, \"default\", \u0026arms.EnvCustomJobArgs{\n\t\t\tStatus:           pulumi.String(\"run\"),\n\t\t\tEnvironmentId:    env_ecs.ID(),\n\t\t\tEnvCustomJobName: pulumi.String(name),\n\t\t\tConfigYaml: pulumi.String(`scrape_configs:\n- job_name: job-demo1\n  honor_timestamps: false\n  honor_labels: false\n  scrape_interval: 30s\n  scheme: http\n  metrics_path: /metric\n  static_configs:\n  - targets:\n    - 127.0.0.1:9090\n`),\n\t\t\tAliyunLang: pulumi.String(\"en\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.arms.Environment;\nimport com.pulumi.alicloud.arms.EnvironmentArgs;\nimport com.pulumi.alicloud.arms.EnvCustomJob;\nimport com.pulumi.alicloud.arms.EnvCustomJobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .description(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(name)\n            .build());\n\n        var env_ecs = new Environment(\"env-ecs\", EnvironmentArgs.builder()\n            .environmentType(\"ECS\")\n            .environmentName(String.format(\"terraform-example-%s\", default_.result()))\n            .bindResourceId(vpc.id())\n            .environmentSubType(\"ECS\")\n            .build());\n\n        var defaultEnvCustomJob = new EnvCustomJob(\"defaultEnvCustomJob\", EnvCustomJobArgs.builder()\n            .status(\"run\")\n            .environmentId(env_ecs.id())\n            .envCustomJobName(name)\n            .configYaml(\"\"\"\nscrape_configs:\n- job_name: job-demo1\n  honor_timestamps: false\n  honor_labels: false\n  scrape_interval: 30s\n  scheme: http\n  metrics_path: /metric\n  static_configs:\n  - targets:\n    - 127.0.0.1:9090\n            \"\"\")\n            .aliyunLang(\"en\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: ${name}\n      cidrBlock: 172.16.0.0/12\n      vpcName: ${name}\n  env-ecs:\n    type: alicloud:arms:Environment\n    properties:\n      environmentType: ECS\n      environmentName: terraform-example-${default.result}\n      bindResourceId: ${vpc.id}\n      environmentSubType: ECS\n  defaultEnvCustomJob:\n    type: alicloud:arms:EnvCustomJob\n    name: default\n    properties:\n      status: run\n      environmentId: ${[\"env-ecs\"].id}\n      envCustomJobName: ${name}\n      configYaml: |\n        scrape_configs:\n        - job_name: job-demo1\n          honor_timestamps: false\n          honor_labels: false\n          scrape_interval: 30s\n          scheme: http\n          metrics_path: /metric\n          static_configs:\n          - targets:\n            - 127.0.0.1:9090\n      aliyunLang: en\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nARMS Env Custom Job can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/envCustomJob:EnvCustomJob example \u003cenvironment_id\u003e:\u003cenv_custom_job_name\u003e\n```\n\n","properties":{"aliyunLang":{"type":"string","description":"The locale. The default is Chinese zh | en.\n"},"configYaml":{"type":"string","description":"Yaml configuration string.\n"},"envCustomJobName":{"type":"string","description":"Custom job name.\n"},"environmentId":{"type":"string","description":"Environment id.\n"},"status":{"type":"string","description":"Status: run, stop.\n"}},"required":["configYaml","envCustomJobName","environmentId","status"],"inputProperties":{"aliyunLang":{"type":"string","description":"The locale. The default is Chinese zh | en.\n"},"configYaml":{"type":"string","description":"Yaml configuration string.\n"},"envCustomJobName":{"type":"string","description":"Custom job name.\n","willReplaceOnChanges":true},"environmentId":{"type":"string","description":"Environment id.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Status: run, stop.\n"}},"requiredInputs":["configYaml","envCustomJobName","environmentId"],"stateInputs":{"description":"Input properties used for looking up and filtering EnvCustomJob resources.\n","properties":{"aliyunLang":{"type":"string","description":"The locale. The default is Chinese zh | en.\n"},"configYaml":{"type":"string","description":"Yaml configuration string.\n"},"envCustomJobName":{"type":"string","description":"Custom job name.\n","willReplaceOnChanges":true},"environmentId":{"type":"string","description":"Environment id.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Status: run, stop.\n"}},"type":"object"}},"alicloud:arms/envFeature:EnvFeature":{"description":"Provides a ARMS Env Feature resource. Feature of the arms environment.\n\nFor information about ARMS Env Feature and how to use it, see [What is Env Feature](https://www.alibabacloud.com/help/en/arms/developer-reference/api-arms-2019-08-08-installenvironmentfeature).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    description: name,\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: name,\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    description: name,\n    vpcId: vpc.id,\n    vswitchName: name,\n    zoneId: enhanced.then(enhanced =\u003e enhanced.zones?.[0]?.zoneId),\n    cidrBlock: vpc.cidrBlock.apply(cidrBlock =\u003e std.cidrsubnetOutput({\n        input: cidrBlock,\n        newbits: 8,\n        netnum: 8,\n    })).apply(invoke =\u003e invoke.result),\n});\nconst defaultSnapshotPolicy = new alicloud.ecs.SnapshotPolicy(\"default\", {\n    name: name,\n    repeatWeekdays: [\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retentionDays: -1,\n    timePoints: [\n        \"1\",\n        \"22\",\n        \"23\",\n    ],\n});\nconst _default = vswitch.zoneId.apply(zoneId =\u003e alicloud.ecs.getInstanceTypesOutput({\n    availabilityZone: zoneId,\n    cpuCoreCount: 2,\n    memorySize: 4,\n    kubernetesNodeRole: \"Worker\",\n    instanceTypeFamily: \"ecs.sn1ne\",\n}));\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    name: `terraform-example-${defaultInteger.result}`,\n    clusterSpec: \"ack.pro.small\",\n    version: \"1.24.6-aliyun.1\",\n    newNatGateway: true,\n    nodeCidrMask: 26,\n    proxyMode: \"ipvs\",\n    serviceCidr: \"172.23.0.0/16\",\n    podCidr: \"10.95.0.0/16\",\n    workerVswitchIds: [vswitch.id],\n});\nconst defaultKeyPair = new alicloud.ecs.KeyPair(\"default\", {keyPairName: `${name}-${defaultInteger.result}`});\nconst defaultNodePool = new alicloud.cs.NodePool(\"default\", {\n    nodePoolName: \"desired_size\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [vswitch.id],\n    instanceTypes: [_default.apply(_default =\u003e _default.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyPairName,\n    desiredSize: \"2\",\n});\nconst defaultEnvironment = new alicloud.arms.Environment(\"default\", {\n    bindResourceId: defaultNodePool.clusterId,\n    environmentSubType: \"ManagedKubernetes\",\n    environmentType: \"CS\",\n    environmentName: `terraform-example-${defaultInteger.result}`,\n});\nconst defaultEnvFeature = new alicloud.arms.EnvFeature(\"default\", {\n    envFeatureName: \"metric-agent\",\n    environmentId: defaultEnvironment.id,\n    featureVersion: \"1.1.17\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\nvpc = alicloud.vpc.Network(\"vpc\",\n    description=name,\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=name)\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    description=name,\n    vpc_id=vpc.id,\n    vswitch_name=name,\n    zone_id=enhanced.zones[0].zone_id,\n    cidr_block=vpc.cidr_block.apply(lambda cidr_block: std.cidrsubnet_output(input=cidr_block,\n        newbits=8,\n        netnum=8)).apply(lambda invoke: invoke.result))\ndefault_snapshot_policy = alicloud.ecs.SnapshotPolicy(\"default\",\n    name=name,\n    repeat_weekdays=[\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retention_days=-1,\n    time_points=[\n        \"1\",\n        \"22\",\n        \"23\",\n    ])\ndefault = vswitch.zone_id.apply(lambda zone_id: alicloud.ecs.get_instance_types_output(availability_zone=zone_id,\n    cpu_core_count=2,\n    memory_size=4,\n    kubernetes_node_role=\"Worker\",\n    instance_type_family=\"ecs.sn1ne\"))\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name=f\"terraform-example-{default_integer['result']}\",\n    cluster_spec=\"ack.pro.small\",\n    version=\"1.24.6-aliyun.1\",\n    new_nat_gateway=True,\n    node_cidr_mask=26,\n    proxy_mode=\"ipvs\",\n    service_cidr=\"172.23.0.0/16\",\n    pod_cidr=\"10.95.0.0/16\",\n    worker_vswitch_ids=[vswitch.id])\ndefault_key_pair = alicloud.ecs.KeyPair(\"default\", key_pair_name=f\"{name}-{default_integer['result']}\")\ndefault_node_pool = alicloud.cs.NodePool(\"default\",\n    node_pool_name=\"desired_size\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[vswitch.id],\n    instance_types=[default.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_pair_name,\n    desired_size=\"2\")\ndefault_environment = alicloud.arms.Environment(\"default\",\n    bind_resource_id=default_node_pool.cluster_id,\n    environment_sub_type=\"ManagedKubernetes\",\n    environment_type=\"CS\",\n    environment_name=f\"terraform-example-{default_integer['result']}\")\ndefault_env_feature = alicloud.arms.EnvFeature(\"default\",\n    env_feature_name=\"metric-agent\",\n    environment_id=default_environment.id,\n    feature_version=\"1.1.17\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var enhanced = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        Description = name,\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = name,\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        Description = name,\n        VpcId = vpc.Id,\n        VswitchName = name,\n        ZoneId = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId),\n        CidrBlock = vpc.CidrBlock.Apply(cidrBlock =\u003e Std.Cidrsubnet.Invoke(new()\n        {\n            Input = cidrBlock,\n            Newbits = 8,\n            Netnum = 8,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultSnapshotPolicy = new AliCloud.Ecs.SnapshotPolicy(\"default\", new()\n    {\n        Name = name,\n        RepeatWeekdays = new[]\n        {\n            \"1\",\n            \"2\",\n            \"3\",\n        },\n        RetentionDays = -1,\n        TimePoints = new[]\n        {\n            \"1\",\n            \"22\",\n            \"23\",\n        },\n    });\n\n    var @default = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = vswitch.ZoneId,\n        CpuCoreCount = 2,\n        MemorySize = 4,\n        KubernetesNodeRole = \"Worker\",\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        Name = $\"terraform-example-{defaultInteger.Result}\",\n        ClusterSpec = \"ack.pro.small\",\n        Version = \"1.24.6-aliyun.1\",\n        NewNatGateway = true,\n        NodeCidrMask = 26,\n        ProxyMode = \"ipvs\",\n        ServiceCidr = \"172.23.0.0/16\",\n        PodCidr = \"10.95.0.0/16\",\n        WorkerVswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n    });\n\n    var defaultKeyPair = new AliCloud.Ecs.KeyPair(\"default\", new()\n    {\n        KeyPairName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultNodePool = new AliCloud.CS.NodePool(\"default\", new()\n    {\n        NodePoolName = \"desired_size\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            @default.Apply(@default =\u003e @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id)),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyPairName,\n        DesiredSize = \"2\",\n    });\n\n    var defaultEnvironment = new AliCloud.Arms.Environment(\"default\", new()\n    {\n        BindResourceId = defaultNodePool.ClusterId,\n        EnvironmentSubType = \"ManagedKubernetes\",\n        EnvironmentType = \"CS\",\n        EnvironmentName = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n    var defaultEnvFeature = new AliCloud.Arms.EnvFeature(\"default\", new()\n    {\n        EnvFeatureName = \"metric-agent\",\n        EnvironmentId = defaultEnvironment.Id,\n        FeatureVersion = \"1.1.17\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMax: 99999,\nMin: 10000,\n})\nif err != nil {\nreturn err\n}\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nenhanced, err := vpc.GetEnhancedNatAvailableZones(ctx, \u0026vpc.GetEnhancedNatAvailableZonesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\nvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\nDescription: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\nVpcName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: cidrBlock,\nNewbits: 8,\nNetnum: 8,\n}, nil)\nif err != nil {\nreturn err\n}\nvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\nDescription: pulumi.String(name),\nVpcId: vpc.ID(),\nVswitchName: pulumi.String(name),\nZoneId: pulumi.String(enhanced.Zones[0].ZoneId),\nCidrBlock: pulumi.String(vpc.CidrBlock.ApplyT(func(cidrBlock string) (std.CidrsubnetResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrsubnetResultOutput).ApplyT(func(invoke std.CidrsubnetResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\n})\nif err != nil {\nreturn err\n}\n_, err = ecs.NewSnapshotPolicy(ctx, \"default\", \u0026ecs.SnapshotPolicyArgs{\nName: pulumi.String(name),\nRepeatWeekdays: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"2\"),\npulumi.String(\"3\"),\n},\nRetentionDays: pulumi.Int(-1),\nTimePoints: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"22\"),\npulumi.String(\"23\"),\n},\n})\nif err != nil {\nreturn err\n}\n_default := vswitch.ZoneId.ApplyT(func(zoneId string) (ecs.GetInstanceTypesResult, error) {\nreturn ecs.GetInstanceTypesResult(interface{}(ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(pulumi.StringRef(zoneId)),\nCpuCoreCount: pulumi.IntRef(pulumi.IntRef(int(2))),\nMemorySize: pulumi.Float64Ref(pulumi.Float64Ref(4)),\nKubernetesNodeRole: pulumi.StringRef(pulumi.StringRef(\"Worker\")),\nInstanceTypeFamily: pulumi.StringRef(pulumi.StringRef(\"ecs.sn1ne\")),\n}, nil))), nil\n}).(ecs.GetInstanceTypesResultOutput)\ndefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\nName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\nClusterSpec: pulumi.String(\"ack.pro.small\"),\nVersion: pulumi.String(\"1.24.6-aliyun.1\"),\nNewNatGateway: pulumi.Bool(true),\nNodeCidrMask: pulumi.Int(26),\nProxyMode: pulumi.String(\"ipvs\"),\nServiceCidr: pulumi.String(\"172.23.0.0/16\"),\nPodCidr: pulumi.String(\"10.95.0.0/16\"),\nWorkerVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\n})\nif err != nil {\nreturn err\n}\ndefaultKeyPair, err := ecs.NewKeyPair(ctx, \"default\", \u0026ecs.KeyPairArgs{\nKeyPairName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ndefaultNodePool, err := cs.NewNodePool(ctx, \"default\", \u0026cs.NodePoolArgs{\nNodePoolName: pulumi.String(\"desired_size\"),\nClusterId: defaultManagedKubernetes.ID(),\nVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\nInstanceTypes: pulumi.StringArray{\npulumi.String(_default.ApplyT(func(_default ecs.GetInstanceTypesResult) (*string, error) {\nreturn \u0026default.InstanceTypes[0].Id, nil\n}).(pulumi.StringPtrOutput)),\n},\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nSystemDiskSize: pulumi.Int(40),\nKeyName: defaultKeyPair.KeyPairName,\nDesiredSize: pulumi.String(\"2\"),\n})\nif err != nil {\nreturn err\n}\ndefaultEnvironment, err := arms.NewEnvironment(ctx, \"default\", \u0026arms.EnvironmentArgs{\nBindResourceId: defaultNodePool.ClusterId,\nEnvironmentSubType: pulumi.String(\"ManagedKubernetes\"),\nEnvironmentType: pulumi.String(\"CS\"),\nEnvironmentName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\n_, err = arms.NewEnvFeature(ctx, \"default\", \u0026arms.EnvFeatureArgs{\nEnvFeatureName: pulumi.String(\"metric-agent\"),\nEnvironmentId: defaultEnvironment.ID(),\nFeatureVersion: pulumi.String(\"1.1.17\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.SnapshotPolicy;\nimport com.pulumi.alicloud.ecs.SnapshotPolicyArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.alicloud.ecs.KeyPair;\nimport com.pulumi.alicloud.ecs.KeyPairArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.arms.Environment;\nimport com.pulumi.alicloud.arms.EnvironmentArgs;\nimport com.pulumi.alicloud.arms.EnvFeature;\nimport com.pulumi.alicloud.arms.EnvFeatureArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var enhanced = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .description(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(name)\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .description(name)\n            .vpcId(vpc.id())\n            .vswitchName(name)\n            .zoneId(enhanced.zones()[0].zoneId())\n            .cidrBlock(vpc.cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(_cidrBlock)\n                .newbits(8)\n                .netnum(8)\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .build());\n\n        var defaultSnapshotPolicy = new SnapshotPolicy(\"defaultSnapshotPolicy\", SnapshotPolicyArgs.builder()\n            .name(name)\n            .repeatWeekdays(            \n                \"1\",\n                \"2\",\n                \"3\")\n            .retentionDays(-1)\n            .timePoints(            \n                \"1\",\n                \"22\",\n                \"23\")\n            .build());\n\n        final var default = vswitch.zoneId().applyValue(_zoneId -\u003e EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(_zoneId)\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .kubernetesNodeRole(\"Worker\")\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build()));\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .name(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .clusterSpec(\"ack.pro.small\")\n            .version(\"1.24.6-aliyun.1\")\n            .newNatGateway(true)\n            .nodeCidrMask(26)\n            .proxyMode(\"ipvs\")\n            .serviceCidr(\"172.23.0.0/16\")\n            .podCidr(\"10.95.0.0/16\")\n            .workerVswitchIds(vswitch.id())\n            .build());\n\n        var defaultKeyPair = new KeyPair(\"defaultKeyPair\", KeyPairArgs.builder()\n            .keyPairName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultNodePool = new NodePool(\"defaultNodePool\", NodePoolArgs.builder()\n            .nodePoolName(\"desired_size\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(vswitch.id())\n            .instanceTypes(default_.applyValue(_default_ -\u003e _default_.instanceTypes()[0].id()))\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyPairName())\n            .desiredSize(\"2\")\n            .build());\n\n        var defaultEnvironment = new Environment(\"defaultEnvironment\", EnvironmentArgs.builder()\n            .bindResourceId(defaultNodePool.clusterId())\n            .environmentSubType(\"ManagedKubernetes\")\n            .environmentType(\"CS\")\n            .environmentName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n        var defaultEnvFeature = new EnvFeature(\"defaultEnvFeature\", EnvFeatureArgs.builder()\n            .envFeatureName(\"metric-agent\")\n            .environmentId(defaultEnvironment.id())\n            .featureVersion(\"1.1.17\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: ${name}\n      cidrBlock: 192.168.0.0/16\n      vpcName: ${name}\n  vswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      description: ${name}\n      vpcId: ${vpc.id}\n      vswitchName: ${name}\n      zoneId: ${enhanced.zones[0].zoneId}\n      cidrBlock:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: ${vpc.cidrBlock}\n            newbits: 8\n            netnum: 8\n          return: result\n  defaultSnapshotPolicy:\n    type: alicloud:ecs:SnapshotPolicy\n    name: default\n    properties:\n      name: ${name}\n      repeatWeekdays:\n        - '1'\n        - '2'\n        - '3'\n      retentionDays: -1\n      timePoints:\n        - '1'\n        - '22'\n        - '23'\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      name: terraform-example-${defaultInteger.result}\n      clusterSpec: ack.pro.small\n      version: 1.24.6-aliyun.1\n      newNatGateway: true\n      nodeCidrMask: 26\n      proxyMode: ipvs\n      serviceCidr: 172.23.0.0/16\n      podCidr: 10.95.0.0/16\n      workerVswitchIds:\n        - ${vswitch.id}\n  defaultKeyPair:\n    type: alicloud:ecs:KeyPair\n    name: default\n    properties:\n      keyPairName: ${name}-${defaultInteger.result}\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      nodePoolName: desired_size\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${vswitch.id}\n      instanceTypes:\n        - ${default.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyPairName}\n      desiredSize: 2\n  defaultEnvironment:\n    type: alicloud:arms:Environment\n    name: default\n    properties:\n      bindResourceId: ${defaultNodePool.clusterId}\n      environmentSubType: ManagedKubernetes\n      environmentType: CS\n      environmentName: terraform-example-${defaultInteger.result}\n  defaultEnvFeature:\n    type: alicloud:arms:EnvFeature\n    name: default\n    properties:\n      envFeatureName: metric-agent\n      environmentId: ${defaultEnvironment.id}\n      featureVersion: 1.1.17\nvariables:\n  enhanced:\n    fn::invoke:\n      function: alicloud:vpc:getEnhancedNatAvailableZones\n      arguments: {}\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${vswitch.zoneId}\n        cpuCoreCount: 2\n        memorySize: 4\n        kubernetesNodeRole: Worker\n        instanceTypeFamily: ecs.sn1ne\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nARMS Env Feature can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/envFeature:EnvFeature example \u003cenvironment_id\u003e:\u003cenv_feature_name\u003e\n```\n\n","properties":{"envFeatureName":{"type":"string","description":"The name of the resource.\n"},"environmentId":{"type":"string","description":"The first ID of the resource.\n"},"featureVersion":{"type":"string","description":"Version information of the Feature. You can query Feature information by using ListEnvironmentFeatures.\n"},"namespace":{"type":"string","description":"Namespace.\n"},"status":{"type":"string","description":"Status.\n"}},"required":["envFeatureName","environmentId","featureVersion","namespace","status"],"inputProperties":{"envFeatureName":{"type":"string","description":"The name of the resource.\n","willReplaceOnChanges":true},"environmentId":{"type":"string","description":"The first ID of the resource.\n","willReplaceOnChanges":true},"featureVersion":{"type":"string","description":"Version information of the Feature. You can query Feature information by using ListEnvironmentFeatures.\n"}},"requiredInputs":["envFeatureName","environmentId","featureVersion"],"stateInputs":{"description":"Input properties used for looking up and filtering EnvFeature resources.\n","properties":{"envFeatureName":{"type":"string","description":"The name of the resource.\n","willReplaceOnChanges":true},"environmentId":{"type":"string","description":"The first ID of the resource.\n","willReplaceOnChanges":true},"featureVersion":{"type":"string","description":"Version information of the Feature. You can query Feature information by using ListEnvironmentFeatures.\n"},"namespace":{"type":"string","description":"Namespace.\n"},"status":{"type":"string","description":"Status.\n"}},"type":"object"}},"alicloud:arms/envPodMonitor:EnvPodMonitor":{"description":"Provides a ARMS Env Pod Monitor resource. PodMonitor for the arms environment.\n\nFor information about ARMS Env Pod Monitor and how to use it, see [What is Env Pod Monitor](https://www.alibabacloud.com/help/en/arms/developer-reference/api-arms-2019-08-08-createenvpodmonitor).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    description: name,\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: name,\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    description: name,\n    vpcId: vpc.id,\n    vswitchName: name,\n    zoneId: enhanced.then(enhanced =\u003e enhanced.zones?.[0]?.zoneId),\n    cidrBlock: vpc.cidrBlock.apply(cidrBlock =\u003e std.cidrsubnetOutput({\n        input: cidrBlock,\n        newbits: 8,\n        netnum: 8,\n    })).apply(invoke =\u003e invoke.result),\n});\nconst defaultSnapshotPolicy = new alicloud.ecs.SnapshotPolicy(\"default\", {\n    name: name,\n    repeatWeekdays: [\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retentionDays: -1,\n    timePoints: [\n        \"1\",\n        \"22\",\n        \"23\",\n    ],\n});\nconst _default = vswitch.zoneId.apply(zoneId =\u003e alicloud.ecs.getInstanceTypesOutput({\n    availabilityZone: zoneId,\n    cpuCoreCount: 2,\n    memorySize: 4,\n    kubernetesNodeRole: \"Worker\",\n    instanceTypeFamily: \"ecs.n1\",\n}));\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    name: `terraform-example-${defaultInteger.result}`,\n    clusterSpec: \"ack.pro.small\",\n    version: \"1.24.6-aliyun.1\",\n    newNatGateway: true,\n    nodeCidrMask: 26,\n    proxyMode: \"ipvs\",\n    serviceCidr: \"172.23.0.0/16\",\n    podCidr: \"10.95.0.0/16\",\n    workerVswitchIds: [vswitch.id],\n});\nconst defaultKeyPair = new alicloud.ecs.KeyPair(\"default\", {keyPairName: `terraform-example-${defaultInteger.result}`});\nconst defaultNodePool = new alicloud.cs.NodePool(\"default\", {\n    name: \"desired_size\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [vswitch.id],\n    instanceTypes: [_default.apply(_default =\u003e _default.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyName,\n    desiredSize: \"2\",\n});\nconst environment_cs = new alicloud.arms.Environment(\"environment-cs\", {\n    environmentType: \"CS\",\n    environmentName: `terraform-example-${defaultInteger.result}`,\n    bindResourceId: defaultNodePool.clusterId,\n    environmentSubType: \"ACK\",\n});\nconst defaultEnvPodMonitor = new alicloud.arms.EnvPodMonitor(\"default\", {\n    aliyunLang: \"en\",\n    environmentId: environment_cs.id,\n    configYaml: `apiVersion: monitoring.coreos.com/v1\nkind: PodMonitor\nmetadata:\n  name: arms-admin-pm1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.2\n    o11y.aliyun.com/release-name: mysql2\nspec:\n  selector:\n    matchLabels:\n      app: arms-prometheus-ack-arms-prometheus\n      release: arms-prometheus\n  namespaceSelector:\n    any: true    \n  podMetricsEndpoints:\n  - interval: 30s\n    targetPort: 9335\n    path: /metrics\n  - interval: 11s\n    targetPort: 9335\n    path: /metric\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\nvpc = alicloud.vpc.Network(\"vpc\",\n    description=name,\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=name)\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    description=name,\n    vpc_id=vpc.id,\n    vswitch_name=name,\n    zone_id=enhanced.zones[0].zone_id,\n    cidr_block=vpc.cidr_block.apply(lambda cidr_block: std.cidrsubnet_output(input=cidr_block,\n        newbits=8,\n        netnum=8)).apply(lambda invoke: invoke.result))\ndefault_snapshot_policy = alicloud.ecs.SnapshotPolicy(\"default\",\n    name=name,\n    repeat_weekdays=[\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retention_days=-1,\n    time_points=[\n        \"1\",\n        \"22\",\n        \"23\",\n    ])\ndefault = vswitch.zone_id.apply(lambda zone_id: alicloud.ecs.get_instance_types_output(availability_zone=zone_id,\n    cpu_core_count=2,\n    memory_size=4,\n    kubernetes_node_role=\"Worker\",\n    instance_type_family=\"ecs.n1\"))\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name=f\"terraform-example-{default_integer['result']}\",\n    cluster_spec=\"ack.pro.small\",\n    version=\"1.24.6-aliyun.1\",\n    new_nat_gateway=True,\n    node_cidr_mask=26,\n    proxy_mode=\"ipvs\",\n    service_cidr=\"172.23.0.0/16\",\n    pod_cidr=\"10.95.0.0/16\",\n    worker_vswitch_ids=[vswitch.id])\ndefault_key_pair = alicloud.ecs.KeyPair(\"default\", key_pair_name=f\"terraform-example-{default_integer['result']}\")\ndefault_node_pool = alicloud.cs.NodePool(\"default\",\n    name=\"desired_size\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[vswitch.id],\n    instance_types=[default.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_name,\n    desired_size=\"2\")\nenvironment_cs = alicloud.arms.Environment(\"environment-cs\",\n    environment_type=\"CS\",\n    environment_name=f\"terraform-example-{default_integer['result']}\",\n    bind_resource_id=default_node_pool.cluster_id,\n    environment_sub_type=\"ACK\")\ndefault_env_pod_monitor = alicloud.arms.EnvPodMonitor(\"default\",\n    aliyun_lang=\"en\",\n    environment_id=environment_cs.id,\n    config_yaml=\"\"\"apiVersion: monitoring.coreos.com/v1\nkind: PodMonitor\nmetadata:\n  name: arms-admin-pm1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.2\n    o11y.aliyun.com/release-name: mysql2\nspec:\n  selector:\n    matchLabels:\n      app: arms-prometheus-ack-arms-prometheus\n      release: arms-prometheus\n  namespaceSelector:\n    any: true    \n  podMetricsEndpoints:\n  - interval: 30s\n    targetPort: 9335\n    path: /metrics\n  - interval: 11s\n    targetPort: 9335\n    path: /metric\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var enhanced = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        Description = name,\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = name,\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        Description = name,\n        VpcId = vpc.Id,\n        VswitchName = name,\n        ZoneId = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId),\n        CidrBlock = vpc.CidrBlock.Apply(cidrBlock =\u003e Std.Cidrsubnet.Invoke(new()\n        {\n            Input = cidrBlock,\n            Newbits = 8,\n            Netnum = 8,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultSnapshotPolicy = new AliCloud.Ecs.SnapshotPolicy(\"default\", new()\n    {\n        Name = name,\n        RepeatWeekdays = new[]\n        {\n            \"1\",\n            \"2\",\n            \"3\",\n        },\n        RetentionDays = -1,\n        TimePoints = new[]\n        {\n            \"1\",\n            \"22\",\n            \"23\",\n        },\n    });\n\n    var @default = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = vswitch.ZoneId,\n        CpuCoreCount = 2,\n        MemorySize = 4,\n        KubernetesNodeRole = \"Worker\",\n        InstanceTypeFamily = \"ecs.n1\",\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        Name = $\"terraform-example-{defaultInteger.Result}\",\n        ClusterSpec = \"ack.pro.small\",\n        Version = \"1.24.6-aliyun.1\",\n        NewNatGateway = true,\n        NodeCidrMask = 26,\n        ProxyMode = \"ipvs\",\n        ServiceCidr = \"172.23.0.0/16\",\n        PodCidr = \"10.95.0.0/16\",\n        WorkerVswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n    });\n\n    var defaultKeyPair = new AliCloud.Ecs.KeyPair(\"default\", new()\n    {\n        KeyPairName = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n    var defaultNodePool = new AliCloud.CS.NodePool(\"default\", new()\n    {\n        Name = \"desired_size\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            @default.Apply(@default =\u003e @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id)),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyName,\n        DesiredSize = \"2\",\n    });\n\n    var environment_cs = new AliCloud.Arms.Environment(\"environment-cs\", new()\n    {\n        EnvironmentType = \"CS\",\n        EnvironmentName = $\"terraform-example-{defaultInteger.Result}\",\n        BindResourceId = defaultNodePool.ClusterId,\n        EnvironmentSubType = \"ACK\",\n    });\n\n    var defaultEnvPodMonitor = new AliCloud.Arms.EnvPodMonitor(\"default\", new()\n    {\n        AliyunLang = \"en\",\n        EnvironmentId = environment_cs.Id,\n        ConfigYaml = @\"apiVersion: monitoring.coreos.com/v1\nkind: PodMonitor\nmetadata:\n  name: arms-admin-pm1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.2\n    o11y.aliyun.com/release-name: mysql2\nspec:\n  selector:\n    matchLabels:\n      app: arms-prometheus-ack-arms-prometheus\n      release: arms-prometheus\n  namespaceSelector:\n    any: true    \n  podMetricsEndpoints:\n  - interval: 30s\n    targetPort: 9335\n    path: /metrics\n  - interval: 11s\n    targetPort: 9335\n    path: /metric\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMax: 99999,\nMin: 10000,\n})\nif err != nil {\nreturn err\n}\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nenhanced, err := vpc.GetEnhancedNatAvailableZones(ctx, \u0026vpc.GetEnhancedNatAvailableZonesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\nvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\nDescription: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\nVpcName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: cidrBlock,\nNewbits: 8,\nNetnum: 8,\n}, nil)\nif err != nil {\nreturn err\n}\nvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\nDescription: pulumi.String(name),\nVpcId: vpc.ID(),\nVswitchName: pulumi.String(name),\nZoneId: pulumi.String(enhanced.Zones[0].ZoneId),\nCidrBlock: pulumi.String(vpc.CidrBlock.ApplyT(func(cidrBlock string) (std.CidrsubnetResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrsubnetResultOutput).ApplyT(func(invoke std.CidrsubnetResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\n})\nif err != nil {\nreturn err\n}\n_, err = ecs.NewSnapshotPolicy(ctx, \"default\", \u0026ecs.SnapshotPolicyArgs{\nName: pulumi.String(name),\nRepeatWeekdays: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"2\"),\npulumi.String(\"3\"),\n},\nRetentionDays: pulumi.Int(-1),\nTimePoints: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"22\"),\npulumi.String(\"23\"),\n},\n})\nif err != nil {\nreturn err\n}\n_default := vswitch.ZoneId.ApplyT(func(zoneId string) (ecs.GetInstanceTypesResult, error) {\nreturn ecs.GetInstanceTypesResult(interface{}(ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(pulumi.StringRef(zoneId)),\nCpuCoreCount: pulumi.IntRef(pulumi.IntRef(int(2))),\nMemorySize: pulumi.Float64Ref(pulumi.Float64Ref(4)),\nKubernetesNodeRole: pulumi.StringRef(pulumi.StringRef(\"Worker\")),\nInstanceTypeFamily: pulumi.StringRef(pulumi.StringRef(\"ecs.n1\")),\n}, nil))), nil\n}).(ecs.GetInstanceTypesResultOutput)\ndefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\nName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\nClusterSpec: pulumi.String(\"ack.pro.small\"),\nVersion: pulumi.String(\"1.24.6-aliyun.1\"),\nNewNatGateway: pulumi.Bool(true),\nNodeCidrMask: pulumi.Int(26),\nProxyMode: pulumi.String(\"ipvs\"),\nServiceCidr: pulumi.String(\"172.23.0.0/16\"),\nPodCidr: pulumi.String(\"10.95.0.0/16\"),\nWorkerVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\n})\nif err != nil {\nreturn err\n}\ndefaultKeyPair, err := ecs.NewKeyPair(ctx, \"default\", \u0026ecs.KeyPairArgs{\nKeyPairName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ndefaultNodePool, err := cs.NewNodePool(ctx, \"default\", \u0026cs.NodePoolArgs{\nName: pulumi.String(\"desired_size\"),\nClusterId: defaultManagedKubernetes.ID(),\nVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\nInstanceTypes: pulumi.StringArray{\npulumi.String(_default.ApplyT(func(_default ecs.GetInstanceTypesResult) (*string, error) {\nreturn \u0026default.InstanceTypes[0].Id, nil\n}).(pulumi.StringPtrOutput)),\n},\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nSystemDiskSize: pulumi.Int(40),\nKeyName: defaultKeyPair.KeyName,\nDesiredSize: pulumi.String(\"2\"),\n})\nif err != nil {\nreturn err\n}\nenvironment_cs, err := arms.NewEnvironment(ctx, \"environment-cs\", \u0026arms.EnvironmentArgs{\nEnvironmentType: pulumi.String(\"CS\"),\nEnvironmentName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\nBindResourceId: defaultNodePool.ClusterId,\nEnvironmentSubType: pulumi.String(\"ACK\"),\n})\nif err != nil {\nreturn err\n}\n_, err = arms.NewEnvPodMonitor(ctx, \"default\", \u0026arms.EnvPodMonitorArgs{\nAliyunLang: pulumi.String(\"en\"),\nEnvironmentId: environment_cs.ID(),\nConfigYaml: pulumi.String(`apiVersion: monitoring.coreos.com/v1\nkind: PodMonitor\nmetadata:\n  name: arms-admin-pm1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.2\n    o11y.aliyun.com/release-name: mysql2\nspec:\n  selector:\n    matchLabels:\n      app: arms-prometheus-ack-arms-prometheus\n      release: arms-prometheus\n  namespaceSelector:\n    any: true    \n  podMetricsEndpoints:\n  - interval: 30s\n    targetPort: 9335\n    path: /metrics\n  - interval: 11s\n    targetPort: 9335\n    path: /metric\n`),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.SnapshotPolicy;\nimport com.pulumi.alicloud.ecs.SnapshotPolicyArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.alicloud.ecs.KeyPair;\nimport com.pulumi.alicloud.ecs.KeyPairArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.arms.Environment;\nimport com.pulumi.alicloud.arms.EnvironmentArgs;\nimport com.pulumi.alicloud.arms.EnvPodMonitor;\nimport com.pulumi.alicloud.arms.EnvPodMonitorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var enhanced = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .description(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(name)\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .description(name)\n            .vpcId(vpc.id())\n            .vswitchName(name)\n            .zoneId(enhanced.zones()[0].zoneId())\n            .cidrBlock(vpc.cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(_cidrBlock)\n                .newbits(8)\n                .netnum(8)\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .build());\n\n        var defaultSnapshotPolicy = new SnapshotPolicy(\"defaultSnapshotPolicy\", SnapshotPolicyArgs.builder()\n            .name(name)\n            .repeatWeekdays(            \n                \"1\",\n                \"2\",\n                \"3\")\n            .retentionDays(-1)\n            .timePoints(            \n                \"1\",\n                \"22\",\n                \"23\")\n            .build());\n\n        final var default = vswitch.zoneId().applyValue(_zoneId -\u003e EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(_zoneId)\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .kubernetesNodeRole(\"Worker\")\n            .instanceTypeFamily(\"ecs.n1\")\n            .build()));\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .name(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .clusterSpec(\"ack.pro.small\")\n            .version(\"1.24.6-aliyun.1\")\n            .newNatGateway(true)\n            .nodeCidrMask(26)\n            .proxyMode(\"ipvs\")\n            .serviceCidr(\"172.23.0.0/16\")\n            .podCidr(\"10.95.0.0/16\")\n            .workerVswitchIds(vswitch.id())\n            .build());\n\n        var defaultKeyPair = new KeyPair(\"defaultKeyPair\", KeyPairArgs.builder()\n            .keyPairName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n        var defaultNodePool = new NodePool(\"defaultNodePool\", NodePoolArgs.builder()\n            .name(\"desired_size\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(vswitch.id())\n            .instanceTypes(default_.applyValue(_default_ -\u003e _default_.instanceTypes()[0].id()))\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyName())\n            .desiredSize(\"2\")\n            .build());\n\n        var environment_cs = new Environment(\"environment-cs\", EnvironmentArgs.builder()\n            .environmentType(\"CS\")\n            .environmentName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .bindResourceId(defaultNodePool.clusterId())\n            .environmentSubType(\"ACK\")\n            .build());\n\n        var defaultEnvPodMonitor = new EnvPodMonitor(\"defaultEnvPodMonitor\", EnvPodMonitorArgs.builder()\n            .aliyunLang(\"en\")\n            .environmentId(environment_cs.id())\n            .configYaml(\"\"\"\napiVersion: monitoring.coreos.com/v1\nkind: PodMonitor\nmetadata:\n  name: arms-admin-pm1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.2\n    o11y.aliyun.com/release-name: mysql2\nspec:\n  selector:\n    matchLabels:\n      app: arms-prometheus-ack-arms-prometheus\n      release: arms-prometheus\n  namespaceSelector:\n    any: true    \n  podMetricsEndpoints:\n  - interval: 30s\n    targetPort: 9335\n    path: /metrics\n  - interval: 11s\n    targetPort: 9335\n    path: /metric\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: ${name}\n      cidrBlock: 192.168.0.0/16\n      vpcName: ${name}\n  vswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      description: ${name}\n      vpcId: ${vpc.id}\n      vswitchName: ${name}\n      zoneId: ${enhanced.zones[0].zoneId}\n      cidrBlock:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: ${vpc.cidrBlock}\n            newbits: 8\n            netnum: 8\n          return: result\n  defaultSnapshotPolicy:\n    type: alicloud:ecs:SnapshotPolicy\n    name: default\n    properties:\n      name: ${name}\n      repeatWeekdays:\n        - '1'\n        - '2'\n        - '3'\n      retentionDays: -1\n      timePoints:\n        - '1'\n        - '22'\n        - '23'\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      name: terraform-example-${defaultInteger.result}\n      clusterSpec: ack.pro.small\n      version: 1.24.6-aliyun.1\n      newNatGateway: true\n      nodeCidrMask: 26\n      proxyMode: ipvs\n      serviceCidr: 172.23.0.0/16\n      podCidr: 10.95.0.0/16\n      workerVswitchIds:\n        - ${vswitch.id}\n  defaultKeyPair:\n    type: alicloud:ecs:KeyPair\n    name: default\n    properties:\n      keyPairName: terraform-example-${defaultInteger.result}\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      name: desired_size\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${vswitch.id}\n      instanceTypes:\n        - ${default.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyName}\n      desiredSize: 2\n  environment-cs:\n    type: alicloud:arms:Environment\n    properties:\n      environmentType: CS\n      environmentName: terraform-example-${defaultInteger.result}\n      bindResourceId: ${defaultNodePool.clusterId}\n      environmentSubType: ACK\n  defaultEnvPodMonitor:\n    type: alicloud:arms:EnvPodMonitor\n    name: default\n    properties:\n      aliyunLang: en\n      environmentId: ${[\"environment-cs\"].id}\n      configYaml: \"apiVersion: monitoring.coreos.com/v1\\nkind: PodMonitor\\nmetadata:\\n  name: arms-admin-pm1\\n  namespace: arms-prom\\n  annotations:\\n    arms.prometheus.io/discovery: 'true'\\n    o11y.aliyun.com/addon-name: mysql\\n    o11y.aliyun.com/addon-version: 1.0.2\\n    o11y.aliyun.com/release-name: mysql2\\nspec:\\n  selector:\\n    matchLabels:\\n      app: arms-prometheus-ack-arms-prometheus\\n      release: arms-prometheus\\n  namespaceSelector:\\n    any: true    \\n  podMetricsEndpoints:\\n  - interval: 30s\\n    targetPort: 9335\\n    path: /metrics\\n  - interval: 11s\\n    targetPort: 9335\\n    path: /metric\\n\"\nvariables:\n  enhanced:\n    fn::invoke:\n      function: alicloud:vpc:getEnhancedNatAvailableZones\n      arguments: {}\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${vswitch.zoneId}\n        cpuCoreCount: 2\n        memorySize: 4\n        kubernetesNodeRole: Worker\n        instanceTypeFamily: ecs.n1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nARMS Env Pod Monitor can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/envPodMonitor:EnvPodMonitor example \u003cenvironment_id\u003e:\u003cnamespace\u003e:\u003cenv_pod_monitor_name\u003e\n```\n\n","properties":{"aliyunLang":{"type":"string","description":"Language environment, default is Chinese zh | en.\n"},"configYaml":{"type":"string","description":"Yaml configuration string.\n"},"envPodMonitorName":{"type":"string","description":"The name of the resource.\n"},"environmentId":{"type":"string","description":"Environment id.\n"},"namespace":{"type":"string","description":"Resource namespace.\n"},"status":{"type":"string","description":"PodMonitor status.\n"}},"required":["configYaml","envPodMonitorName","environmentId","namespace","status"],"inputProperties":{"aliyunLang":{"type":"string","description":"Language environment, default is Chinese zh | en.\n"},"configYaml":{"type":"string","description":"Yaml configuration string.\n"},"environmentId":{"type":"string","description":"Environment id.\n","willReplaceOnChanges":true}},"requiredInputs":["configYaml","environmentId"],"stateInputs":{"description":"Input properties used for looking up and filtering EnvPodMonitor resources.\n","properties":{"aliyunLang":{"type":"string","description":"Language environment, default is Chinese zh | en.\n"},"configYaml":{"type":"string","description":"Yaml configuration string.\n"},"envPodMonitorName":{"type":"string","description":"The name of the resource.\n"},"environmentId":{"type":"string","description":"Environment id.\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"Resource namespace.\n"},"status":{"type":"string","description":"PodMonitor status.\n"}},"type":"object"}},"alicloud:arms/envServiceMonitor:EnvServiceMonitor":{"description":"Provides a ARMS Env Service Monitor resource. ServiceMonitor for the arms environment.\n\nFor information about ARMS Env Service Monitor and how to use it, see [What is Env Service Monitor](https://www.alibabacloud.com/help/en/arms/developer-reference/api-arms-2019-08-08-createenvservicemonitor).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    description: name,\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: name,\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    description: name,\n    vpcId: vpc.id,\n    vswitchName: name,\n    zoneId: enhanced.then(enhanced =\u003e enhanced.zones?.[0]?.zoneId),\n    cidrBlock: vpc.cidrBlock.apply(cidrBlock =\u003e std.cidrsubnetOutput({\n        input: cidrBlock,\n        newbits: 8,\n        netnum: 8,\n    })).apply(invoke =\u003e invoke.result),\n});\nconst defaultSnapshotPolicy = new alicloud.ecs.SnapshotPolicy(\"default\", {\n    name: name,\n    repeatWeekdays: [\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retentionDays: -1,\n    timePoints: [\n        \"1\",\n        \"22\",\n        \"23\",\n    ],\n});\nconst _default = vswitch.zoneId.apply(zoneId =\u003e alicloud.ecs.getInstanceTypesOutput({\n    availabilityZone: zoneId,\n    cpuCoreCount: 2,\n    memorySize: 4,\n    kubernetesNodeRole: \"Worker\",\n    instanceTypeFamily: \"ecs.n1\",\n}));\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    name: `terraform-example-${defaultInteger.result}`,\n    clusterSpec: \"ack.pro.small\",\n    version: \"1.24.6-aliyun.1\",\n    newNatGateway: true,\n    nodeCidrMask: 26,\n    proxyMode: \"ipvs\",\n    serviceCidr: \"172.23.0.0/16\",\n    podCidr: \"10.95.0.0/16\",\n    workerVswitchIds: [vswitch.id],\n});\nconst defaultKeyPair = new alicloud.ecs.KeyPair(\"default\", {keyPairName: `terraform-example-${defaultInteger.result}`});\nconst defaultNodePool = new alicloud.cs.NodePool(\"default\", {\n    nodePoolName: \"desired_size\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [vswitch.id],\n    instanceTypes: [_default.apply(_default =\u003e _default.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyPairName,\n    desiredSize: \"2\",\n});\nconst defaultEnvironment = new alicloud.arms.Environment(\"default\", {\n    bindResourceId: defaultNodePool.clusterId,\n    environmentSubType: \"ManagedKubernetes\",\n    environmentType: \"CS\",\n    environmentName: `terraform-example-${defaultInteger.result}`,\n});\nconst defaultEnvServiceMonitor = new alicloud.arms.EnvServiceMonitor(\"default\", {\n    environmentId: defaultEnvironment.id,\n    configYaml: `apiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name: arms-admin1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.1\n    o11y.aliyun.com/release-name: mysql1\nspec:\n  endpoints:\n  - interval: 30s\n    port: operator\n    path: /metrics\n  - interval: 10s\n    port: operator1\n    path: /metrics\n  namespaceSelector:\n    any: true\n  selector:\n    matchLabels:\n     app: arms-prometheus-ack-arms-prometheus\n`,\n    aliyunLang: \"zh\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\nvpc = alicloud.vpc.Network(\"vpc\",\n    description=name,\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=name)\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    description=name,\n    vpc_id=vpc.id,\n    vswitch_name=name,\n    zone_id=enhanced.zones[0].zone_id,\n    cidr_block=vpc.cidr_block.apply(lambda cidr_block: std.cidrsubnet_output(input=cidr_block,\n        newbits=8,\n        netnum=8)).apply(lambda invoke: invoke.result))\ndefault_snapshot_policy = alicloud.ecs.SnapshotPolicy(\"default\",\n    name=name,\n    repeat_weekdays=[\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retention_days=-1,\n    time_points=[\n        \"1\",\n        \"22\",\n        \"23\",\n    ])\ndefault = vswitch.zone_id.apply(lambda zone_id: alicloud.ecs.get_instance_types_output(availability_zone=zone_id,\n    cpu_core_count=2,\n    memory_size=4,\n    kubernetes_node_role=\"Worker\",\n    instance_type_family=\"ecs.n1\"))\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name=f\"terraform-example-{default_integer['result']}\",\n    cluster_spec=\"ack.pro.small\",\n    version=\"1.24.6-aliyun.1\",\n    new_nat_gateway=True,\n    node_cidr_mask=26,\n    proxy_mode=\"ipvs\",\n    service_cidr=\"172.23.0.0/16\",\n    pod_cidr=\"10.95.0.0/16\",\n    worker_vswitch_ids=[vswitch.id])\ndefault_key_pair = alicloud.ecs.KeyPair(\"default\", key_pair_name=f\"terraform-example-{default_integer['result']}\")\ndefault_node_pool = alicloud.cs.NodePool(\"default\",\n    node_pool_name=\"desired_size\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[vswitch.id],\n    instance_types=[default.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_pair_name,\n    desired_size=\"2\")\ndefault_environment = alicloud.arms.Environment(\"default\",\n    bind_resource_id=default_node_pool.cluster_id,\n    environment_sub_type=\"ManagedKubernetes\",\n    environment_type=\"CS\",\n    environment_name=f\"terraform-example-{default_integer['result']}\")\ndefault_env_service_monitor = alicloud.arms.EnvServiceMonitor(\"default\",\n    environment_id=default_environment.id,\n    config_yaml=\"\"\"apiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name: arms-admin1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.1\n    o11y.aliyun.com/release-name: mysql1\nspec:\n  endpoints:\n  - interval: 30s\n    port: operator\n    path: /metrics\n  - interval: 10s\n    port: operator1\n    path: /metrics\n  namespaceSelector:\n    any: true\n  selector:\n    matchLabels:\n     app: arms-prometheus-ack-arms-prometheus\n\"\"\",\n    aliyun_lang=\"zh\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var enhanced = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        Description = name,\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = name,\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        Description = name,\n        VpcId = vpc.Id,\n        VswitchName = name,\n        ZoneId = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId),\n        CidrBlock = vpc.CidrBlock.Apply(cidrBlock =\u003e Std.Cidrsubnet.Invoke(new()\n        {\n            Input = cidrBlock,\n            Newbits = 8,\n            Netnum = 8,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultSnapshotPolicy = new AliCloud.Ecs.SnapshotPolicy(\"default\", new()\n    {\n        Name = name,\n        RepeatWeekdays = new[]\n        {\n            \"1\",\n            \"2\",\n            \"3\",\n        },\n        RetentionDays = -1,\n        TimePoints = new[]\n        {\n            \"1\",\n            \"22\",\n            \"23\",\n        },\n    });\n\n    var @default = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = vswitch.ZoneId,\n        CpuCoreCount = 2,\n        MemorySize = 4,\n        KubernetesNodeRole = \"Worker\",\n        InstanceTypeFamily = \"ecs.n1\",\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        Name = $\"terraform-example-{defaultInteger.Result}\",\n        ClusterSpec = \"ack.pro.small\",\n        Version = \"1.24.6-aliyun.1\",\n        NewNatGateway = true,\n        NodeCidrMask = 26,\n        ProxyMode = \"ipvs\",\n        ServiceCidr = \"172.23.0.0/16\",\n        PodCidr = \"10.95.0.0/16\",\n        WorkerVswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n    });\n\n    var defaultKeyPair = new AliCloud.Ecs.KeyPair(\"default\", new()\n    {\n        KeyPairName = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n    var defaultNodePool = new AliCloud.CS.NodePool(\"default\", new()\n    {\n        NodePoolName = \"desired_size\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            @default.Apply(@default =\u003e @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id)),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyPairName,\n        DesiredSize = \"2\",\n    });\n\n    var defaultEnvironment = new AliCloud.Arms.Environment(\"default\", new()\n    {\n        BindResourceId = defaultNodePool.ClusterId,\n        EnvironmentSubType = \"ManagedKubernetes\",\n        EnvironmentType = \"CS\",\n        EnvironmentName = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n    var defaultEnvServiceMonitor = new AliCloud.Arms.EnvServiceMonitor(\"default\", new()\n    {\n        EnvironmentId = defaultEnvironment.Id,\n        ConfigYaml = @\"apiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name: arms-admin1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.1\n    o11y.aliyun.com/release-name: mysql1\nspec:\n  endpoints:\n  - interval: 30s\n    port: operator\n    path: /metrics\n  - interval: 10s\n    port: operator1\n    path: /metrics\n  namespaceSelector:\n    any: true\n  selector:\n    matchLabels:\n     app: arms-prometheus-ack-arms-prometheus\n\",\n        AliyunLang = \"zh\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMax: 99999,\nMin: 10000,\n})\nif err != nil {\nreturn err\n}\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nenhanced, err := vpc.GetEnhancedNatAvailableZones(ctx, \u0026vpc.GetEnhancedNatAvailableZonesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\nvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\nDescription: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\nVpcName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: cidrBlock,\nNewbits: 8,\nNetnum: 8,\n}, nil)\nif err != nil {\nreturn err\n}\nvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\nDescription: pulumi.String(name),\nVpcId: vpc.ID(),\nVswitchName: pulumi.String(name),\nZoneId: pulumi.String(enhanced.Zones[0].ZoneId),\nCidrBlock: pulumi.String(vpc.CidrBlock.ApplyT(func(cidrBlock string) (std.CidrsubnetResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrsubnetResultOutput).ApplyT(func(invoke std.CidrsubnetResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\n})\nif err != nil {\nreturn err\n}\n_, err = ecs.NewSnapshotPolicy(ctx, \"default\", \u0026ecs.SnapshotPolicyArgs{\nName: pulumi.String(name),\nRepeatWeekdays: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"2\"),\npulumi.String(\"3\"),\n},\nRetentionDays: pulumi.Int(-1),\nTimePoints: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"22\"),\npulumi.String(\"23\"),\n},\n})\nif err != nil {\nreturn err\n}\n_default := vswitch.ZoneId.ApplyT(func(zoneId string) (ecs.GetInstanceTypesResult, error) {\nreturn ecs.GetInstanceTypesResult(interface{}(ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(pulumi.StringRef(zoneId)),\nCpuCoreCount: pulumi.IntRef(pulumi.IntRef(int(2))),\nMemorySize: pulumi.Float64Ref(pulumi.Float64Ref(4)),\nKubernetesNodeRole: pulumi.StringRef(pulumi.StringRef(\"Worker\")),\nInstanceTypeFamily: pulumi.StringRef(pulumi.StringRef(\"ecs.n1\")),\n}, nil))), nil\n}).(ecs.GetInstanceTypesResultOutput)\ndefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\nName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\nClusterSpec: pulumi.String(\"ack.pro.small\"),\nVersion: pulumi.String(\"1.24.6-aliyun.1\"),\nNewNatGateway: pulumi.Bool(true),\nNodeCidrMask: pulumi.Int(26),\nProxyMode: pulumi.String(\"ipvs\"),\nServiceCidr: pulumi.String(\"172.23.0.0/16\"),\nPodCidr: pulumi.String(\"10.95.0.0/16\"),\nWorkerVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\n})\nif err != nil {\nreturn err\n}\ndefaultKeyPair, err := ecs.NewKeyPair(ctx, \"default\", \u0026ecs.KeyPairArgs{\nKeyPairName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ndefaultNodePool, err := cs.NewNodePool(ctx, \"default\", \u0026cs.NodePoolArgs{\nNodePoolName: pulumi.String(\"desired_size\"),\nClusterId: defaultManagedKubernetes.ID(),\nVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\nInstanceTypes: pulumi.StringArray{\npulumi.String(_default.ApplyT(func(_default ecs.GetInstanceTypesResult) (*string, error) {\nreturn \u0026default.InstanceTypes[0].Id, nil\n}).(pulumi.StringPtrOutput)),\n},\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nSystemDiskSize: pulumi.Int(40),\nKeyName: defaultKeyPair.KeyPairName,\nDesiredSize: pulumi.String(\"2\"),\n})\nif err != nil {\nreturn err\n}\ndefaultEnvironment, err := arms.NewEnvironment(ctx, \"default\", \u0026arms.EnvironmentArgs{\nBindResourceId: defaultNodePool.ClusterId,\nEnvironmentSubType: pulumi.String(\"ManagedKubernetes\"),\nEnvironmentType: pulumi.String(\"CS\"),\nEnvironmentName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\n_, err = arms.NewEnvServiceMonitor(ctx, \"default\", \u0026arms.EnvServiceMonitorArgs{\nEnvironmentId: defaultEnvironment.ID(),\nConfigYaml: pulumi.String(`apiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name: arms-admin1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.1\n    o11y.aliyun.com/release-name: mysql1\nspec:\n  endpoints:\n  - interval: 30s\n    port: operator\n    path: /metrics\n  - interval: 10s\n    port: operator1\n    path: /metrics\n  namespaceSelector:\n    any: true\n  selector:\n    matchLabels:\n     app: arms-prometheus-ack-arms-prometheus\n`),\nAliyunLang: pulumi.String(\"zh\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.SnapshotPolicy;\nimport com.pulumi.alicloud.ecs.SnapshotPolicyArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.alicloud.ecs.KeyPair;\nimport com.pulumi.alicloud.ecs.KeyPairArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.arms.Environment;\nimport com.pulumi.alicloud.arms.EnvironmentArgs;\nimport com.pulumi.alicloud.arms.EnvServiceMonitor;\nimport com.pulumi.alicloud.arms.EnvServiceMonitorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var enhanced = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .description(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(name)\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .description(name)\n            .vpcId(vpc.id())\n            .vswitchName(name)\n            .zoneId(enhanced.zones()[0].zoneId())\n            .cidrBlock(vpc.cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(_cidrBlock)\n                .newbits(8)\n                .netnum(8)\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .build());\n\n        var defaultSnapshotPolicy = new SnapshotPolicy(\"defaultSnapshotPolicy\", SnapshotPolicyArgs.builder()\n            .name(name)\n            .repeatWeekdays(            \n                \"1\",\n                \"2\",\n                \"3\")\n            .retentionDays(-1)\n            .timePoints(            \n                \"1\",\n                \"22\",\n                \"23\")\n            .build());\n\n        final var default = vswitch.zoneId().applyValue(_zoneId -\u003e EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(_zoneId)\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .kubernetesNodeRole(\"Worker\")\n            .instanceTypeFamily(\"ecs.n1\")\n            .build()));\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .name(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .clusterSpec(\"ack.pro.small\")\n            .version(\"1.24.6-aliyun.1\")\n            .newNatGateway(true)\n            .nodeCidrMask(26)\n            .proxyMode(\"ipvs\")\n            .serviceCidr(\"172.23.0.0/16\")\n            .podCidr(\"10.95.0.0/16\")\n            .workerVswitchIds(vswitch.id())\n            .build());\n\n        var defaultKeyPair = new KeyPair(\"defaultKeyPair\", KeyPairArgs.builder()\n            .keyPairName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n        var defaultNodePool = new NodePool(\"defaultNodePool\", NodePoolArgs.builder()\n            .nodePoolName(\"desired_size\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(vswitch.id())\n            .instanceTypes(default_.applyValue(_default_ -\u003e _default_.instanceTypes()[0].id()))\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyPairName())\n            .desiredSize(\"2\")\n            .build());\n\n        var defaultEnvironment = new Environment(\"defaultEnvironment\", EnvironmentArgs.builder()\n            .bindResourceId(defaultNodePool.clusterId())\n            .environmentSubType(\"ManagedKubernetes\")\n            .environmentType(\"CS\")\n            .environmentName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n        var defaultEnvServiceMonitor = new EnvServiceMonitor(\"defaultEnvServiceMonitor\", EnvServiceMonitorArgs.builder()\n            .environmentId(defaultEnvironment.id())\n            .configYaml(\"\"\"\napiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name: arms-admin1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.1\n    o11y.aliyun.com/release-name: mysql1\nspec:\n  endpoints:\n  - interval: 30s\n    port: operator\n    path: /metrics\n  - interval: 10s\n    port: operator1\n    path: /metrics\n  namespaceSelector:\n    any: true\n  selector:\n    matchLabels:\n     app: arms-prometheus-ack-arms-prometheus\n            \"\"\")\n            .aliyunLang(\"zh\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: ${name}\n      cidrBlock: 192.168.0.0/16\n      vpcName: ${name}\n  vswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      description: ${name}\n      vpcId: ${vpc.id}\n      vswitchName: ${name}\n      zoneId: ${enhanced.zones[0].zoneId}\n      cidrBlock:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: ${vpc.cidrBlock}\n            newbits: 8\n            netnum: 8\n          return: result\n  defaultSnapshotPolicy:\n    type: alicloud:ecs:SnapshotPolicy\n    name: default\n    properties:\n      name: ${name}\n      repeatWeekdays:\n        - '1'\n        - '2'\n        - '3'\n      retentionDays: -1\n      timePoints:\n        - '1'\n        - '22'\n        - '23'\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      name: terraform-example-${defaultInteger.result}\n      clusterSpec: ack.pro.small\n      version: 1.24.6-aliyun.1\n      newNatGateway: true\n      nodeCidrMask: 26\n      proxyMode: ipvs\n      serviceCidr: 172.23.0.0/16\n      podCidr: 10.95.0.0/16\n      workerVswitchIds:\n        - ${vswitch.id}\n  defaultKeyPair:\n    type: alicloud:ecs:KeyPair\n    name: default\n    properties:\n      keyPairName: terraform-example-${defaultInteger.result}\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      nodePoolName: desired_size\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${vswitch.id}\n      instanceTypes:\n        - ${default.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyPairName}\n      desiredSize: 2\n  defaultEnvironment:\n    type: alicloud:arms:Environment\n    name: default\n    properties:\n      bindResourceId: ${defaultNodePool.clusterId}\n      environmentSubType: ManagedKubernetes\n      environmentType: CS\n      environmentName: terraform-example-${defaultInteger.result}\n  defaultEnvServiceMonitor:\n    type: alicloud:arms:EnvServiceMonitor\n    name: default\n    properties:\n      environmentId: ${defaultEnvironment.id}\n      configYaml: |\n        apiVersion: monitoring.coreos.com/v1\n        kind: ServiceMonitor\n        metadata:\n          name: arms-admin1\n          namespace: arms-prom\n          annotations:\n            arms.prometheus.io/discovery: 'true'\n            o11y.aliyun.com/addon-name: mysql\n            o11y.aliyun.com/addon-version: 1.0.1\n            o11y.aliyun.com/release-name: mysql1\n        spec:\n          endpoints:\n          - interval: 30s\n            port: operator\n            path: /metrics\n          - interval: 10s\n            port: operator1\n            path: /metrics\n          namespaceSelector:\n            any: true\n          selector:\n            matchLabels:\n             app: arms-prometheus-ack-arms-prometheus\n      aliyunLang: zh\nvariables:\n  enhanced:\n    fn::invoke:\n      function: alicloud:vpc:getEnhancedNatAvailableZones\n      arguments: {}\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${vswitch.zoneId}\n        cpuCoreCount: 2\n        memorySize: 4\n        kubernetesNodeRole: Worker\n        instanceTypeFamily: ecs.n1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nARMS Env Service Monitor can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/envServiceMonitor:EnvServiceMonitor example \u003cenvironment_id\u003e:\u003cnamespace\u003e:\u003cenv_service_monitor_name\u003e\n```\n\n","properties":{"aliyunLang":{"type":"string","description":"Language environment, default is Chinese zh | en.\n"},"configYaml":{"type":"string","description":"Yaml configuration string.\n"},"envServiceMonitorName":{"type":"string","description":"The name of the resource.\n"},"environmentId":{"type":"string","description":"Environment id.\n"},"namespace":{"type":"string","description":"The namespace where the resource is located.\n"},"status":{"type":"string","description":"Status: run, stop.\n"}},"required":["configYaml","envServiceMonitorName","environmentId","namespace","status"],"inputProperties":{"aliyunLang":{"type":"string","description":"Language environment, default is Chinese zh | en.\n"},"configYaml":{"type":"string","description":"Yaml configuration string.\n"},"environmentId":{"type":"string","description":"Environment id.\n","willReplaceOnChanges":true}},"requiredInputs":["configYaml","environmentId"],"stateInputs":{"description":"Input properties used for looking up and filtering EnvServiceMonitor resources.\n","properties":{"aliyunLang":{"type":"string","description":"Language environment, default is Chinese zh | en.\n"},"configYaml":{"type":"string","description":"Yaml configuration string.\n"},"envServiceMonitorName":{"type":"string","description":"The name of the resource.\n"},"environmentId":{"type":"string","description":"Environment id.\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"The namespace where the resource is located.\n"},"status":{"type":"string","description":"Status: run, stop.\n"}},"type":"object"}},"alicloud:arms/environment:Environment":{"description":"Provides a ARMS Environment resource. The arms environment.\n\nFor information about ARMS Environment and how to use it, see [What is Environment](https://www.alibabacloud.com/help/en/arms/developer-reference/api-arms-2019-08-08-createenvironment).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    description: name,\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: name,\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    description: name,\n    vpcId: vpc.id,\n    vswitchName: name,\n    zoneId: enhanced.then(enhanced =\u003e enhanced.zones?.[0]?.zoneId),\n    cidrBlock: vpc.cidrBlock.apply(cidrBlock =\u003e std.cidrsubnetOutput({\n        input: cidrBlock,\n        newbits: 8,\n        netnum: 8,\n    })).apply(invoke =\u003e invoke.result),\n});\nconst defaultSnapshotPolicy = new alicloud.ecs.SnapshotPolicy(\"default\", {\n    name: name,\n    repeatWeekdays: [\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retentionDays: -1,\n    timePoints: [\n        \"1\",\n        \"22\",\n        \"23\",\n    ],\n});\nconst _default = vswitch.zoneId.apply(zoneId =\u003e alicloud.ecs.getInstanceTypesOutput({\n    availabilityZone: zoneId,\n    cpuCoreCount: 2,\n    memorySize: 4,\n    kubernetesNodeRole: \"Worker\",\n    instanceTypeFamily: \"ecs.sn1ne\",\n}));\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    name: `terraform-example-${defaultInteger.result}`,\n    clusterSpec: \"ack.pro.small\",\n    version: \"1.24.6-aliyun.1\",\n    newNatGateway: true,\n    nodeCidrMask: 26,\n    proxyMode: \"ipvs\",\n    serviceCidr: \"172.23.0.0/16\",\n    podCidr: \"10.95.0.0/16\",\n    workerVswitchIds: [vswitch.id],\n});\nconst defaultKeyPair = new alicloud.ecs.KeyPair(\"default\", {keyPairName: `terraform-example-${defaultInteger.result}`});\nconst defaultNodePool = new alicloud.cs.NodePool(\"default\", {\n    nodePoolName: \"desired_size\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [vswitch.id],\n    instanceTypes: [_default.apply(_default =\u003e _default.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyPairName,\n    desiredSize: \"2\",\n});\nconst defaultEnvironment = new alicloud.arms.Environment(\"default\", {\n    bindResourceId: defaultNodePool.clusterId,\n    environmentSubType: \"ManagedKubernetes\",\n    environmentType: \"CS\",\n    environmentName: `terraform-example-${defaultInteger.result}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\nvpc = alicloud.vpc.Network(\"vpc\",\n    description=name,\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=name)\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    description=name,\n    vpc_id=vpc.id,\n    vswitch_name=name,\n    zone_id=enhanced.zones[0].zone_id,\n    cidr_block=vpc.cidr_block.apply(lambda cidr_block: std.cidrsubnet_output(input=cidr_block,\n        newbits=8,\n        netnum=8)).apply(lambda invoke: invoke.result))\ndefault_snapshot_policy = alicloud.ecs.SnapshotPolicy(\"default\",\n    name=name,\n    repeat_weekdays=[\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retention_days=-1,\n    time_points=[\n        \"1\",\n        \"22\",\n        \"23\",\n    ])\ndefault = vswitch.zone_id.apply(lambda zone_id: alicloud.ecs.get_instance_types_output(availability_zone=zone_id,\n    cpu_core_count=2,\n    memory_size=4,\n    kubernetes_node_role=\"Worker\",\n    instance_type_family=\"ecs.sn1ne\"))\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name=f\"terraform-example-{default_integer['result']}\",\n    cluster_spec=\"ack.pro.small\",\n    version=\"1.24.6-aliyun.1\",\n    new_nat_gateway=True,\n    node_cidr_mask=26,\n    proxy_mode=\"ipvs\",\n    service_cidr=\"172.23.0.0/16\",\n    pod_cidr=\"10.95.0.0/16\",\n    worker_vswitch_ids=[vswitch.id])\ndefault_key_pair = alicloud.ecs.KeyPair(\"default\", key_pair_name=f\"terraform-example-{default_integer['result']}\")\ndefault_node_pool = alicloud.cs.NodePool(\"default\",\n    node_pool_name=\"desired_size\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[vswitch.id],\n    instance_types=[default.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_pair_name,\n    desired_size=\"2\")\ndefault_environment = alicloud.arms.Environment(\"default\",\n    bind_resource_id=default_node_pool.cluster_id,\n    environment_sub_type=\"ManagedKubernetes\",\n    environment_type=\"CS\",\n    environment_name=f\"terraform-example-{default_integer['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var enhanced = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        Description = name,\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = name,\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        Description = name,\n        VpcId = vpc.Id,\n        VswitchName = name,\n        ZoneId = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId),\n        CidrBlock = vpc.CidrBlock.Apply(cidrBlock =\u003e Std.Cidrsubnet.Invoke(new()\n        {\n            Input = cidrBlock,\n            Newbits = 8,\n            Netnum = 8,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultSnapshotPolicy = new AliCloud.Ecs.SnapshotPolicy(\"default\", new()\n    {\n        Name = name,\n        RepeatWeekdays = new[]\n        {\n            \"1\",\n            \"2\",\n            \"3\",\n        },\n        RetentionDays = -1,\n        TimePoints = new[]\n        {\n            \"1\",\n            \"22\",\n            \"23\",\n        },\n    });\n\n    var @default = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = vswitch.ZoneId,\n        CpuCoreCount = 2,\n        MemorySize = 4,\n        KubernetesNodeRole = \"Worker\",\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        Name = $\"terraform-example-{defaultInteger.Result}\",\n        ClusterSpec = \"ack.pro.small\",\n        Version = \"1.24.6-aliyun.1\",\n        NewNatGateway = true,\n        NodeCidrMask = 26,\n        ProxyMode = \"ipvs\",\n        ServiceCidr = \"172.23.0.0/16\",\n        PodCidr = \"10.95.0.0/16\",\n        WorkerVswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n    });\n\n    var defaultKeyPair = new AliCloud.Ecs.KeyPair(\"default\", new()\n    {\n        KeyPairName = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n    var defaultNodePool = new AliCloud.CS.NodePool(\"default\", new()\n    {\n        NodePoolName = \"desired_size\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            @default.Apply(@default =\u003e @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id)),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyPairName,\n        DesiredSize = \"2\",\n    });\n\n    var defaultEnvironment = new AliCloud.Arms.Environment(\"default\", new()\n    {\n        BindResourceId = defaultNodePool.ClusterId,\n        EnvironmentSubType = \"ManagedKubernetes\",\n        EnvironmentType = \"CS\",\n        EnvironmentName = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMax: 99999,\nMin: 10000,\n})\nif err != nil {\nreturn err\n}\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nenhanced, err := vpc.GetEnhancedNatAvailableZones(ctx, \u0026vpc.GetEnhancedNatAvailableZonesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\nvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\nDescription: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\nVpcName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: cidrBlock,\nNewbits: 8,\nNetnum: 8,\n}, nil)\nif err != nil {\nreturn err\n}\nvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\nDescription: pulumi.String(name),\nVpcId: vpc.ID(),\nVswitchName: pulumi.String(name),\nZoneId: pulumi.String(enhanced.Zones[0].ZoneId),\nCidrBlock: pulumi.String(vpc.CidrBlock.ApplyT(func(cidrBlock string) (std.CidrsubnetResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrsubnetResultOutput).ApplyT(func(invoke std.CidrsubnetResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\n})\nif err != nil {\nreturn err\n}\n_, err = ecs.NewSnapshotPolicy(ctx, \"default\", \u0026ecs.SnapshotPolicyArgs{\nName: pulumi.String(name),\nRepeatWeekdays: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"2\"),\npulumi.String(\"3\"),\n},\nRetentionDays: pulumi.Int(-1),\nTimePoints: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"22\"),\npulumi.String(\"23\"),\n},\n})\nif err != nil {\nreturn err\n}\n_default := vswitch.ZoneId.ApplyT(func(zoneId string) (ecs.GetInstanceTypesResult, error) {\nreturn ecs.GetInstanceTypesResult(interface{}(ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(pulumi.StringRef(zoneId)),\nCpuCoreCount: pulumi.IntRef(pulumi.IntRef(int(2))),\nMemorySize: pulumi.Float64Ref(pulumi.Float64Ref(4)),\nKubernetesNodeRole: pulumi.StringRef(pulumi.StringRef(\"Worker\")),\nInstanceTypeFamily: pulumi.StringRef(pulumi.StringRef(\"ecs.sn1ne\")),\n}, nil))), nil\n}).(ecs.GetInstanceTypesResultOutput)\ndefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\nName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\nClusterSpec: pulumi.String(\"ack.pro.small\"),\nVersion: pulumi.String(\"1.24.6-aliyun.1\"),\nNewNatGateway: pulumi.Bool(true),\nNodeCidrMask: pulumi.Int(26),\nProxyMode: pulumi.String(\"ipvs\"),\nServiceCidr: pulumi.String(\"172.23.0.0/16\"),\nPodCidr: pulumi.String(\"10.95.0.0/16\"),\nWorkerVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\n})\nif err != nil {\nreturn err\n}\ndefaultKeyPair, err := ecs.NewKeyPair(ctx, \"default\", \u0026ecs.KeyPairArgs{\nKeyPairName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ndefaultNodePool, err := cs.NewNodePool(ctx, \"default\", \u0026cs.NodePoolArgs{\nNodePoolName: pulumi.String(\"desired_size\"),\nClusterId: defaultManagedKubernetes.ID(),\nVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\nInstanceTypes: pulumi.StringArray{\npulumi.String(_default.ApplyT(func(_default ecs.GetInstanceTypesResult) (*string, error) {\nreturn \u0026default.InstanceTypes[0].Id, nil\n}).(pulumi.StringPtrOutput)),\n},\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nSystemDiskSize: pulumi.Int(40),\nKeyName: defaultKeyPair.KeyPairName,\nDesiredSize: pulumi.String(\"2\"),\n})\nif err != nil {\nreturn err\n}\n_, err = arms.NewEnvironment(ctx, \"default\", \u0026arms.EnvironmentArgs{\nBindResourceId: defaultNodePool.ClusterId,\nEnvironmentSubType: pulumi.String(\"ManagedKubernetes\"),\nEnvironmentType: pulumi.String(\"CS\"),\nEnvironmentName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.SnapshotPolicy;\nimport com.pulumi.alicloud.ecs.SnapshotPolicyArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.alicloud.ecs.KeyPair;\nimport com.pulumi.alicloud.ecs.KeyPairArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.arms.Environment;\nimport com.pulumi.alicloud.arms.EnvironmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var enhanced = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .description(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(name)\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .description(name)\n            .vpcId(vpc.id())\n            .vswitchName(name)\n            .zoneId(enhanced.zones()[0].zoneId())\n            .cidrBlock(vpc.cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(_cidrBlock)\n                .newbits(8)\n                .netnum(8)\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .build());\n\n        var defaultSnapshotPolicy = new SnapshotPolicy(\"defaultSnapshotPolicy\", SnapshotPolicyArgs.builder()\n            .name(name)\n            .repeatWeekdays(            \n                \"1\",\n                \"2\",\n                \"3\")\n            .retentionDays(-1)\n            .timePoints(            \n                \"1\",\n                \"22\",\n                \"23\")\n            .build());\n\n        final var default = vswitch.zoneId().applyValue(_zoneId -\u003e EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(_zoneId)\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .kubernetesNodeRole(\"Worker\")\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build()));\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .name(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .clusterSpec(\"ack.pro.small\")\n            .version(\"1.24.6-aliyun.1\")\n            .newNatGateway(true)\n            .nodeCidrMask(26)\n            .proxyMode(\"ipvs\")\n            .serviceCidr(\"172.23.0.0/16\")\n            .podCidr(\"10.95.0.0/16\")\n            .workerVswitchIds(vswitch.id())\n            .build());\n\n        var defaultKeyPair = new KeyPair(\"defaultKeyPair\", KeyPairArgs.builder()\n            .keyPairName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n        var defaultNodePool = new NodePool(\"defaultNodePool\", NodePoolArgs.builder()\n            .nodePoolName(\"desired_size\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(vswitch.id())\n            .instanceTypes(default_.applyValue(_default_ -\u003e _default_.instanceTypes()[0].id()))\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyPairName())\n            .desiredSize(\"2\")\n            .build());\n\n        var defaultEnvironment = new Environment(\"defaultEnvironment\", EnvironmentArgs.builder()\n            .bindResourceId(defaultNodePool.clusterId())\n            .environmentSubType(\"ManagedKubernetes\")\n            .environmentType(\"CS\")\n            .environmentName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: ${name}\n      cidrBlock: 192.168.0.0/16\n      vpcName: ${name}\n  vswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      description: ${name}\n      vpcId: ${vpc.id}\n      vswitchName: ${name}\n      zoneId: ${enhanced.zones[0].zoneId}\n      cidrBlock:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: ${vpc.cidrBlock}\n            newbits: 8\n            netnum: 8\n          return: result\n  defaultSnapshotPolicy:\n    type: alicloud:ecs:SnapshotPolicy\n    name: default\n    properties:\n      name: ${name}\n      repeatWeekdays:\n        - '1'\n        - '2'\n        - '3'\n      retentionDays: -1\n      timePoints:\n        - '1'\n        - '22'\n        - '23'\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      name: terraform-example-${defaultInteger.result}\n      clusterSpec: ack.pro.small\n      version: 1.24.6-aliyun.1\n      newNatGateway: true\n      nodeCidrMask: 26\n      proxyMode: ipvs\n      serviceCidr: 172.23.0.0/16\n      podCidr: 10.95.0.0/16\n      workerVswitchIds:\n        - ${vswitch.id}\n  defaultKeyPair:\n    type: alicloud:ecs:KeyPair\n    name: default\n    properties:\n      keyPairName: terraform-example-${defaultInteger.result}\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      nodePoolName: desired_size\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${vswitch.id}\n      instanceTypes:\n        - ${default.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyPairName}\n      desiredSize: 2\n  defaultEnvironment:\n    type: alicloud:arms:Environment\n    name: default\n    properties:\n      bindResourceId: ${defaultNodePool.clusterId}\n      environmentSubType: ManagedKubernetes\n      environmentType: CS\n      environmentName: terraform-example-${defaultInteger.result}\nvariables:\n  enhanced:\n    fn::invoke:\n      function: alicloud:vpc:getEnhancedNatAvailableZones\n      arguments: {}\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${vswitch.zoneId}\n        cpuCoreCount: 2\n        memorySize: 4\n        kubernetesNodeRole: Worker\n        instanceTypeFamily: ecs.sn1ne\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nARMS Environment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/environment:Environment example \u003cid\u003e\n```\n\n","properties":{"aliyunLang":{"type":"string","description":"The locale. The default is Chinese zh | en.\n"},"bindResourceId":{"type":"string","description":"The id or vpcId of the bound container instance.\n"},"dropMetrics":{"type":"string","description":"List of abandoned indicators.\n"},"environmentId":{"type":"string","description":"The first ID of the resource.\n"},"environmentName":{"type":"string","description":"The name of the resource.\n"},"environmentSubType":{"type":"string","description":"Subtype of environment:\n- Type of CS: ACK is currently supported. ManagedKubernetes, Kubernetes, ExternalKubernetes, and One are also supported.\n- Type of ECS: currently supports ECS.\n- Type of Cloud: currently supports Cloud.\n"},"environmentType":{"type":"string","description":"Type of environment.\n"},"managedType":{"type":"string","description":"Hosting type:\n- none: unmanaged. The default value of the ACK cluster.\n- agent: Managed agent (including ksm). Default values of ASK, ACS, and Acone clusters.\n- agent-exproter: Managed agent and exporter. The default value of the cloud service type.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"required":["environmentId","environmentSubType","environmentType","managedType","resourceGroupId"],"inputProperties":{"aliyunLang":{"type":"string","description":"The locale. The default is Chinese zh | en.\n"},"bindResourceId":{"type":"string","description":"The id or vpcId of the bound container instance.\n","willReplaceOnChanges":true},"dropMetrics":{"type":"string","description":"List of abandoned indicators.\n"},"environmentName":{"type":"string","description":"The name of the resource.\n"},"environmentSubType":{"type":"string","description":"Subtype of environment:\n- Type of CS: ACK is currently supported. ManagedKubernetes, Kubernetes, ExternalKubernetes, and One are also supported.\n- Type of ECS: currently supports ECS.\n- Type of Cloud: currently supports Cloud.\n","willReplaceOnChanges":true},"environmentType":{"type":"string","description":"Type of environment.\n","willReplaceOnChanges":true},"managedType":{"type":"string","description":"Hosting type:\n- none: unmanaged. The default value of the ACK cluster.\n- agent: Managed agent (including ksm). Default values of ASK, ACS, and Acone clusters.\n- agent-exproter: Managed agent and exporter. The default value of the cloud service type.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"requiredInputs":["environmentSubType","environmentType"],"stateInputs":{"description":"Input properties used for looking up and filtering Environment resources.\n","properties":{"aliyunLang":{"type":"string","description":"The locale. The default is Chinese zh | en.\n"},"bindResourceId":{"type":"string","description":"The id or vpcId of the bound container instance.\n","willReplaceOnChanges":true},"dropMetrics":{"type":"string","description":"List of abandoned indicators.\n"},"environmentId":{"type":"string","description":"The first ID of the resource.\n"},"environmentName":{"type":"string","description":"The name of the resource.\n"},"environmentSubType":{"type":"string","description":"Subtype of environment:\n- Type of CS: ACK is currently supported. ManagedKubernetes, Kubernetes, ExternalKubernetes, and One are also supported.\n- Type of ECS: currently supports ECS.\n- Type of Cloud: currently supports Cloud.\n","willReplaceOnChanges":true},"environmentType":{"type":"string","description":"Type of environment.\n","willReplaceOnChanges":true},"managedType":{"type":"string","description":"Hosting type:\n- none: unmanaged. The default value of the ACK cluster.\n- agent: Managed agent (including ksm). Default values of ASK, ACS, and Acone clusters.\n- agent-exproter: Managed agent and exporter. The default value of the cloud service type.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object"}},"alicloud:arms/grafanaWorkspace:GrafanaWorkspace":{"description":"Provides a Application Real-Time Monitoring Service (ARMS) Grafana Workspace resource.\n\n\n\nFor information about Application Real-Time Monitoring Service (ARMS) Grafana Workspace and how to use it, see [What is Grafana Workspace](https://next.api.alibabacloud.com/document/ARMS/2019-08-08/ListGrafanaWorkspace).\n\n\u003e **NOTE:** Available since v1.215.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultGrafanaWorkspace = new alicloud.arms.GrafanaWorkspace(\"default\", {\n    grafanaVersion: \"9.0.x\",\n    description: name,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    grafanaWorkspaceEdition: \"standard\",\n    grafanaWorkspaceName: name,\n    tags: {\n        Created: \"tf\",\n        For: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_grafana_workspace = alicloud.arms.GrafanaWorkspace(\"default\",\n    grafana_version=\"9.0.x\",\n    description=name,\n    resource_group_id=default.ids[0],\n    grafana_workspace_edition=\"standard\",\n    grafana_workspace_name=name,\n    tags={\n        \"Created\": \"tf\",\n        \"For\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultGrafanaWorkspace = new AliCloud.Arms.GrafanaWorkspace(\"default\", new()\n    {\n        GrafanaVersion = \"9.0.x\",\n        Description = name,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        GrafanaWorkspaceEdition = \"standard\",\n        GrafanaWorkspaceName = name,\n        Tags = \n        {\n            { \"Created\", \"tf\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = arms.NewGrafanaWorkspace(ctx, \"default\", \u0026arms.GrafanaWorkspaceArgs{\n\t\t\tGrafanaVersion:          pulumi.String(\"9.0.x\"),\n\t\t\tDescription:             pulumi.String(name),\n\t\t\tResourceGroupId:         pulumi.String(_default.Ids[0]),\n\t\t\tGrafanaWorkspaceEdition: pulumi.String(\"standard\"),\n\t\t\tGrafanaWorkspaceName:    pulumi.String(name),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"tf\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.arms.GrafanaWorkspace;\nimport com.pulumi.alicloud.arms.GrafanaWorkspaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultGrafanaWorkspace = new GrafanaWorkspace(\"defaultGrafanaWorkspace\", GrafanaWorkspaceArgs.builder()\n            .grafanaVersion(\"9.0.x\")\n            .description(name)\n            .resourceGroupId(default_.ids()[0])\n            .grafanaWorkspaceEdition(\"standard\")\n            .grafanaWorkspaceName(name)\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"tf\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultGrafanaWorkspace:\n    type: alicloud:arms:GrafanaWorkspace\n    name: default\n    properties:\n      grafanaVersion: 9.0.x\n      description: ${name}\n      resourceGroupId: ${default.ids[0]}\n      grafanaWorkspaceEdition: standard\n      grafanaWorkspaceName: ${name}\n      tags:\n        Created: tf\n        For: example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Real-Time Monitoring Service (ARMS) Grafana Workspace can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/grafanaWorkspace:GrafanaWorkspace example \u003cid\u003e\n```\n\n","properties":{"accountNumber":{"type":"string","description":"Value Description:\nGrafanaWorkspaceEdition is standard, this parameter is invalid.\nGrafanaWorkspaceEdition is personal_edition. This parameter is invalid. Default value: 1.\nThe value of GrafanaWorkspaceEdition is experts_edition. The values are respectively 10, 30, and 50. The default value is 10.\nThe value of GrafanaWorkspaceEdition is advanced_edition. This parameter is invalid. The default value is 100.\n"},"aliyunLang":{"type":"string","description":"Language environment (if not filled in, default is zh):\n- zh\n- en\n"},"autoRenew":{"type":"boolean","description":"Whether to automatically renew. Value range:\n- true: Automatic renewal. Default value: true.\n- false: Do not renew automatically.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"customAccountNumber":{"type":"string","description":"The number of additional user-defined accounts. Value Description:\n- GrafanaWorkspaceEdition is standard, this parameter is invalid.\n- GrafanaWorkspaceEdition is personal_edition, this parameter is invalid.\n- GrafanaWorkspaceEdition is experts_edition, this parameter is invalid.\n- GrafanaWorkspaceEdition is advanced_edition. The value range is 0 to 2000 and is a multiple of 10. The default value is 0.\n"},"description":{"type":"string","description":"Description\n"},"duration":{"type":"string","description":"The time of the instance package. Valid values:\n- PricingCycle is Month, indicating monthly payment. The value range is 1 to 9.\n- PricingCycle is set to Year, indicating annual payment. The value range is 1 to 3. Default value: 1.\n"},"grafanaVersion":{"type":"string","description":"Grafana version\n"},"grafanaWorkspaceEdition":{"type":"string","description":"The edition. **Valid values:**\n- standard: `Beta Edition(For internal testing only) `\n- personal_edition: Developer Edition\n- experts_edition: Pro Edition\n- advanced_edition: Advanced Edition\n"},"grafanaWorkspaceName":{"type":"string","description":"The name of the resource\n"},"password":{"type":"string","description":"The password of the instance. It is 8 to 30 characters in length and must contain three types of characters: uppercase and lowercase letters, numbers, and special symbols. Special symbols can be:()'~! @#$%^\u0026 *-_+ =\n"},"pricingCycle":{"type":"string","description":"The billing cycle of the package year and Month. Value: Month (default): purchase by Month. Year: Purchased by Year.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"}},"required":["createTime","grafanaWorkspaceName","regionId","resourceGroupId","status"],"inputProperties":{"accountNumber":{"type":"string","description":"Value Description:\nGrafanaWorkspaceEdition is standard, this parameter is invalid.\nGrafanaWorkspaceEdition is personal_edition. This parameter is invalid. Default value: 1.\nThe value of GrafanaWorkspaceEdition is experts_edition. The values are respectively 10, 30, and 50. The default value is 10.\nThe value of GrafanaWorkspaceEdition is advanced_edition. This parameter is invalid. The default value is 100.\n"},"aliyunLang":{"type":"string","description":"Language environment (if not filled in, default is zh):\n- zh\n- en\n"},"autoRenew":{"type":"boolean","description":"Whether to automatically renew. Value range:\n- true: Automatic renewal. Default value: true.\n- false: Do not renew automatically.\n"},"customAccountNumber":{"type":"string","description":"The number of additional user-defined accounts. Value Description:\n- GrafanaWorkspaceEdition is standard, this parameter is invalid.\n- GrafanaWorkspaceEdition is personal_edition, this parameter is invalid.\n- GrafanaWorkspaceEdition is experts_edition, this parameter is invalid.\n- GrafanaWorkspaceEdition is advanced_edition. The value range is 0 to 2000 and is a multiple of 10. The default value is 0.\n"},"description":{"type":"string","description":"Description\n"},"duration":{"type":"string","description":"The time of the instance package. Valid values:\n- PricingCycle is Month, indicating monthly payment. The value range is 1 to 9.\n- PricingCycle is set to Year, indicating annual payment. The value range is 1 to 3. Default value: 1.\n"},"grafanaVersion":{"type":"string","description":"Grafana version\n"},"grafanaWorkspaceEdition":{"type":"string","description":"The edition. **Valid values:**\n- standard: `Beta Edition(For internal testing only) `\n- personal_edition: Developer Edition\n- experts_edition: Pro Edition\n- advanced_edition: Advanced Edition\n","willReplaceOnChanges":true},"grafanaWorkspaceName":{"type":"string","description":"The name of the resource\n"},"password":{"type":"string","description":"The password of the instance. It is 8 to 30 characters in length and must contain three types of characters: uppercase and lowercase letters, numbers, and special symbols. Special symbols can be:()'~! @#$%^\u0026 *-_+ =\n"},"pricingCycle":{"type":"string","description":"The billing cycle of the package year and Month. Value: Month (default): purchase by Month. Year: Purchased by Year.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"}},"requiredInputs":["grafanaWorkspaceName"],"stateInputs":{"description":"Input properties used for looking up and filtering GrafanaWorkspace resources.\n","properties":{"accountNumber":{"type":"string","description":"Value Description:\nGrafanaWorkspaceEdition is standard, this parameter is invalid.\nGrafanaWorkspaceEdition is personal_edition. This parameter is invalid. Default value: 1.\nThe value of GrafanaWorkspaceEdition is experts_edition. The values are respectively 10, 30, and 50. The default value is 10.\nThe value of GrafanaWorkspaceEdition is advanced_edition. This parameter is invalid. The default value is 100.\n"},"aliyunLang":{"type":"string","description":"Language environment (if not filled in, default is zh):\n- zh\n- en\n"},"autoRenew":{"type":"boolean","description":"Whether to automatically renew. Value range:\n- true: Automatic renewal. Default value: true.\n- false: Do not renew automatically.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"customAccountNumber":{"type":"string","description":"The number of additional user-defined accounts. Value Description:\n- GrafanaWorkspaceEdition is standard, this parameter is invalid.\n- GrafanaWorkspaceEdition is personal_edition, this parameter is invalid.\n- GrafanaWorkspaceEdition is experts_edition, this parameter is invalid.\n- GrafanaWorkspaceEdition is advanced_edition. The value range is 0 to 2000 and is a multiple of 10. The default value is 0.\n"},"description":{"type":"string","description":"Description\n"},"duration":{"type":"string","description":"The time of the instance package. Valid values:\n- PricingCycle is Month, indicating monthly payment. The value range is 1 to 9.\n- PricingCycle is set to Year, indicating annual payment. The value range is 1 to 3. Default value: 1.\n"},"grafanaVersion":{"type":"string","description":"Grafana version\n"},"grafanaWorkspaceEdition":{"type":"string","description":"The edition. **Valid values:**\n- standard: `Beta Edition(For internal testing only) `\n- personal_edition: Developer Edition\n- experts_edition: Pro Edition\n- advanced_edition: Advanced Edition\n","willReplaceOnChanges":true},"grafanaWorkspaceName":{"type":"string","description":"The name of the resource\n"},"password":{"type":"string","description":"The password of the instance. It is 8 to 30 characters in length and must contain three types of characters: uppercase and lowercase letters, numbers, and special symbols. Special symbols can be:()'~! @#$%^\u0026 *-_+ =\n"},"pricingCycle":{"type":"string","description":"The billing cycle of the package year and Month. Value: Month (default): purchase by Month. Year: Purchased by Year.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"}},"type":"object"}},"alicloud:arms/integrationExporter:IntegrationExporter":{"description":"Provides a Application Real-Time Monitoring Service (ARMS) Integration Exporter resource.\n\nFor information about Application Real-Time Monitoring Service (ARMS) Integration Exporter and how to use it, see [What is Integration Exporter](https://www.alibabacloud.com/help/en/arms/developer-reference/api-arms-2019-08-08-addprometheusintegration).\n\n\u003e **NOTE:** Available since v1.203.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: pulumi.all([_default, _default.then(_default =\u003e _default.zones).length]).apply(([_default, length]) =\u003e _default.zones[length - 1].id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultPrometheus = new alicloud.arms.Prometheus(\"default\", {\n    clusterType: \"ecs\",\n    grafanaInstanceId: \"free\",\n    vpcId: defaultNetwork.id,\n    vswitchId: defaultSwitch.id,\n    securityGroupId: defaultSecurityGroup.id,\n    clusterName: pulumi.interpolate`${name}-${defaultNetwork.id}`,\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    tags: {\n        Created: \"TF\",\n        For: \"Prometheus\",\n    },\n});\nconst defaultIntegrationExporter = new alicloud.arms.IntegrationExporter(\"default\", {\n    clusterId: defaultPrometheus.id,\n    integrationType: \"kafka\",\n    param: \"{\\\"tls_insecure-skip-tls-verify\\\":\\\"none=tls.insecure-skip-tls-verify\\\",\\\"tls_enabled\\\":\\\"none=tls.enabled\\\",\\\"sasl_mechanism\\\":\\\"\\\",\\\"name\\\":\\\"kafka1\\\",\\\"sasl_enabled\\\":\\\"none=sasl.enabled\\\",\\\"ip_ports\\\":\\\"abc:888\\\",\\\"scrape_interval\\\":30,\\\"version\\\":\\\"0.10.1.0\\\"}\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=len(default.zones).apply(lambda length: default.zones[length - 1]).apply(lambda obj: obj.id))\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_prometheus = alicloud.arms.Prometheus(\"default\",\n    cluster_type=\"ecs\",\n    grafana_instance_id=\"free\",\n    vpc_id=default_network.id,\n    vswitch_id=default_switch.id,\n    security_group_id=default_security_group.id,\n    cluster_name=default_network.id.apply(lambda id: f\"{name}-{id}\"),\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Prometheus\",\n    })\ndefault_integration_exporter = alicloud.arms.IntegrationExporter(\"default\",\n    cluster_id=default_prometheus.id,\n    integration_type=\"kafka\",\n    param=\"{\\\"tls_insecure-skip-tls-verify\\\":\\\"none=tls.insecure-skip-tls-verify\\\",\\\"tls_enabled\\\":\\\"none=tls.enabled\\\",\\\"sasl_mechanism\\\":\\\"\\\",\\\"name\\\":\\\"kafka1\\\",\\\"sasl_enabled\\\":\\\"none=sasl.enabled\\\",\\\"ip_ports\\\":\\\"abc:888\\\",\\\"scrape_interval\\\":30,\\\"version\\\":\\\"0.10.1.0\\\"}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = Output.Tuple(@default, @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)).Length).Apply(values =\u003e\n        {\n            var @default = values.Item1;\n            var length = values.Item2;\n            return @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[length - 1].Id;\n        }),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultPrometheus = new AliCloud.Arms.Prometheus(\"default\", new()\n    {\n        ClusterType = \"ecs\",\n        GrafanaInstanceId = \"free\",\n        VpcId = defaultNetwork.Id,\n        VswitchId = defaultSwitch.Id,\n        SecurityGroupId = defaultSecurityGroup.Id,\n        ClusterName = defaultNetwork.Id.Apply(id =\u003e $\"{name}-{id}\"),\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Prometheus\" },\n        },\n    });\n\n    var defaultIntegrationExporter = new AliCloud.Arms.IntegrationExporter(\"default\", new()\n    {\n        ClusterId = defaultPrometheus.Id,\n        IntegrationType = \"kafka\",\n        Param = \"{\\\"tls_insecure-skip-tls-verify\\\":\\\"none=tls.insecure-skip-tls-verify\\\",\\\"tls_enabled\\\":\\\"none=tls.enabled\\\",\\\"sasl_mechanism\\\":\\\"\\\",\\\"name\\\":\\\"kafka1\\\",\\\"sasl_enabled\\\":\\\"none=sasl.enabled\\\",\\\"ip_ports\\\":\\\"abc:888\\\",\\\"scrape_interval\\\":30,\\\"version\\\":\\\"0.10.1.0\\\"}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId: pulumi.String(len(_default.Zones).ApplyT(func(length int) (alicloud.GetZonesZone, error) {\n\t\t\t\treturn alicloud.GetZonesZone(_default.Zones[float64(length.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\t\treturn __convert - 1, nil\n\t\t\t\t}).(pulumi.Float64Output))]), nil\n\t\t\t}).(alicloud.GetZonesZoneOutput).ApplyT(func(obj alicloud.GetZonesZone) (*string, error) {\n\t\t\t\treturn obj.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultPrometheus, err := arms.NewPrometheus(ctx, \"default\", \u0026arms.PrometheusArgs{\n\t\t\tClusterType:       pulumi.String(\"ecs\"),\n\t\t\tGrafanaInstanceId: pulumi.String(\"free\"),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t\tVswitchId:         defaultSwitch.ID(),\n\t\t\tSecurityGroupId:   defaultSecurityGroup.ID(),\n\t\t\tClusterName: defaultNetwork.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v-%v\", name, id), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"Prometheus\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = arms.NewIntegrationExporter(ctx, \"default\", \u0026arms.IntegrationExporterArgs{\n\t\t\tClusterId:       defaultPrometheus.ID(),\n\t\t\tIntegrationType: pulumi.String(\"kafka\"),\n\t\t\tParam:           pulumi.String(\"{\\\"tls_insecure-skip-tls-verify\\\":\\\"none=tls.insecure-skip-tls-verify\\\",\\\"tls_enabled\\\":\\\"none=tls.enabled\\\",\\\"sasl_mechanism\\\":\\\"\\\",\\\"name\\\":\\\"kafka1\\\",\\\"sasl_enabled\\\":\\\"none=sasl.enabled\\\",\\\"ip_ports\\\":\\\"abc:888\\\",\\\"scrape_interval\\\":30,\\\"version\\\":\\\"0.10.1.0\\\"}\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.arms.Prometheus;\nimport com.pulumi.alicloud.arms.PrometheusArgs;\nimport com.pulumi.alicloud.arms.IntegrationExporter;\nimport com.pulumi.alicloud.arms.IntegrationExporterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones().length().applyValue(_length -\u003e default_.zones()[_length - 1]).applyValue(_obj -\u003e _obj.id()))\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultPrometheus = new Prometheus(\"defaultPrometheus\", PrometheusArgs.builder()\n            .clusterType(\"ecs\")\n            .grafanaInstanceId(\"free\")\n            .vpcId(defaultNetwork.id())\n            .vswitchId(defaultSwitch.id())\n            .securityGroupId(defaultSecurityGroup.id())\n            .clusterName(defaultNetwork.id().applyValue(_id -\u003e String.format(\"%s-%s\", name,_id)))\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Prometheus\")\n            ))\n            .build());\n\n        var defaultIntegrationExporter = new IntegrationExporter(\"defaultIntegrationExporter\", IntegrationExporterArgs.builder()\n            .clusterId(defaultPrometheus.id())\n            .integrationType(\"kafka\")\n            .param(\"{\\\"tls_insecure-skip-tls-verify\\\":\\\"none=tls.insecure-skip-tls-verify\\\",\\\"tls_enabled\\\":\\\"none=tls.enabled\\\",\\\"sasl_mechanism\\\":\\\"\\\",\\\"name\\\":\\\"kafka1\\\",\\\"sasl_enabled\\\":\\\"none=sasl.enabled\\\",\\\"ip_ports\\\":\\\"abc:888\\\",\\\"scrape_interval\\\":30,\\\"version\\\":\\\"0.10.1.0\\\"}\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Real-Time Monitoring Service (ARMS) Integration Exporter can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/integrationExporter:IntegrationExporter example \u003ccluster_id\u003e:\u003cintegration_type\u003e:\u003cinstance_id\u003e\n```\n\n","properties":{"clusterId":{"type":"string","description":"The ID of the Prometheus instance.\n"},"instanceId":{"type":"integer","description":"The ID of the Integration Exporter instance.\n"},"integrationType":{"type":"string","description":"The type of prometheus integration.\n"},"param":{"type":"string","description":"Exporter configuration parameter json string.\n"}},"required":["clusterId","instanceId","integrationType","param"],"inputProperties":{"clusterId":{"type":"string","description":"The ID of the Prometheus instance.\n","willReplaceOnChanges":true},"integrationType":{"type":"string","description":"The type of prometheus integration.\n","willReplaceOnChanges":true},"param":{"type":"string","description":"Exporter configuration parameter json string.\n"}},"requiredInputs":["clusterId","integrationType","param"],"stateInputs":{"description":"Input properties used for looking up and filtering IntegrationExporter resources.\n","properties":{"clusterId":{"type":"string","description":"The ID of the Prometheus instance.\n","willReplaceOnChanges":true},"instanceId":{"type":"integer","description":"The ID of the Integration Exporter instance.\n"},"integrationType":{"type":"string","description":"The type of prometheus integration.\n","willReplaceOnChanges":true},"param":{"type":"string","description":"Exporter configuration parameter json string.\n"}},"type":"object"}},"alicloud:arms/prometheus:Prometheus":{"description":"Provides a Application Real-Time Monitoring Service (ARMS) Prometheus resource.\n\nFor information about Application Real-Time Monitoring Service (ARMS) Prometheus and how to use it, see [What is Prometheus](https://www.alibabacloud.com/help/en/arms/developer-reference/api-arms-2019-08-08-createprometheusinstance).\n\n\u003e **NOTE:** Available since v1.203.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: pulumi.all([_default, _default.then(_default =\u003e _default.zones).length]).apply(([_default, length]) =\u003e _default.zones[length - 1].id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultPrometheus = new alicloud.arms.Prometheus(\"default\", {\n    clusterType: \"ecs\",\n    grafanaInstanceId: \"free\",\n    vpcId: defaultNetwork.id,\n    vswitchId: defaultSwitch.id,\n    securityGroupId: defaultSecurityGroup.id,\n    clusterName: pulumi.interpolate`${name}-${defaultNetwork.id}`,\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    tags: {\n        Created: \"TF\",\n        For: \"Prometheus\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=len(default.zones).apply(lambda length: default.zones[length - 1]).apply(lambda obj: obj.id))\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_prometheus = alicloud.arms.Prometheus(\"default\",\n    cluster_type=\"ecs\",\n    grafana_instance_id=\"free\",\n    vpc_id=default_network.id,\n    vswitch_id=default_switch.id,\n    security_group_id=default_security_group.id,\n    cluster_name=default_network.id.apply(lambda id: f\"{name}-{id}\"),\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Prometheus\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = Output.Tuple(@default, @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)).Length).Apply(values =\u003e\n        {\n            var @default = values.Item1;\n            var length = values.Item2;\n            return @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[length - 1].Id;\n        }),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultPrometheus = new AliCloud.Arms.Prometheus(\"default\", new()\n    {\n        ClusterType = \"ecs\",\n        GrafanaInstanceId = \"free\",\n        VpcId = defaultNetwork.Id,\n        VswitchId = defaultSwitch.Id,\n        SecurityGroupId = defaultSecurityGroup.Id,\n        ClusterName = defaultNetwork.Id.Apply(id =\u003e $\"{name}-{id}\"),\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Prometheus\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId: pulumi.String(len(_default.Zones).ApplyT(func(length int) (alicloud.GetZonesZone, error) {\n\t\t\t\treturn alicloud.GetZonesZone(_default.Zones[float64(length.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\t\treturn __convert - 1, nil\n\t\t\t\t}).(pulumi.Float64Output))]), nil\n\t\t\t}).(alicloud.GetZonesZoneOutput).ApplyT(func(obj alicloud.GetZonesZone) (*string, error) {\n\t\t\t\treturn obj.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = arms.NewPrometheus(ctx, \"default\", \u0026arms.PrometheusArgs{\n\t\t\tClusterType:       pulumi.String(\"ecs\"),\n\t\t\tGrafanaInstanceId: pulumi.String(\"free\"),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t\tVswitchId:         defaultSwitch.ID(),\n\t\t\tSecurityGroupId:   defaultSecurityGroup.ID(),\n\t\t\tClusterName: defaultNetwork.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v-%v\", name, id), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"Prometheus\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.arms.Prometheus;\nimport com.pulumi.alicloud.arms.PrometheusArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones().length().applyValue(_length -\u003e default_.zones()[_length - 1]).applyValue(_obj -\u003e _obj.id()))\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultPrometheus = new Prometheus(\"defaultPrometheus\", PrometheusArgs.builder()\n            .clusterType(\"ecs\")\n            .grafanaInstanceId(\"free\")\n            .vpcId(defaultNetwork.id())\n            .vswitchId(defaultSwitch.id())\n            .securityGroupId(defaultSecurityGroup.id())\n            .clusterName(defaultNetwork.id().applyValue(_id -\u003e String.format(\"%s-%s\", name,_id)))\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Prometheus\")\n            ))\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Real-Time Monitoring Service (ARMS) Prometheus can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/prometheus:Prometheus example \u003cid\u003e\n```\n\n","properties":{"clusterId":{"type":"string","description":"The ID of the Kubernetes cluster. This parameter is required, if you set \u003cspan pulumi-lang-nodejs=\"`clusterType`\" pulumi-lang-dotnet=\"`ClusterType`\" pulumi-lang-go=\"`clusterType`\" pulumi-lang-python=\"`cluster_type`\" pulumi-lang-yaml=\"`clusterType`\" pulumi-lang-java=\"`clusterType`\"\u003e`cluster_type`\u003c/span\u003e to `aliyun-cs`.\n"},"clusterName":{"type":"string","description":"The name of the created cluster. This parameter is required, if you set \u003cspan pulumi-lang-nodejs=\"`clusterType`\" pulumi-lang-dotnet=\"`ClusterType`\" pulumi-lang-go=\"`clusterType`\" pulumi-lang-python=\"`cluster_type`\" pulumi-lang-yaml=\"`clusterType`\" pulumi-lang-java=\"`clusterType`\"\u003e`cluster_type`\u003c/span\u003e to `remote-write`, \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e or `global-view`.\n"},"clusterType":{"type":"string","description":"The type of the Prometheus instance. Valid values: `remote-write`, \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e, `global-view`, `aliyun-cs`.\n"},"grafanaInstanceId":{"type":"string","description":"The ID of the Grafana dedicated instance. When using the shared version of Grafana, you can set \u003cspan pulumi-lang-nodejs=\"`grafanaInstanceId`\" pulumi-lang-dotnet=\"`GrafanaInstanceId`\" pulumi-lang-go=\"`grafanaInstanceId`\" pulumi-lang-python=\"`grafana_instance_id`\" pulumi-lang-yaml=\"`grafanaInstanceId`\" pulumi-lang-java=\"`grafanaInstanceId`\"\u003e`grafana_instance_id`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`free`\" pulumi-lang-dotnet=\"`Free`\" pulumi-lang-go=\"`free`\" pulumi-lang-python=\"`free`\" pulumi-lang-yaml=\"`free`\" pulumi-lang-java=\"`free`\"\u003e`free`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group. This parameter is required, if you set \u003cspan pulumi-lang-nodejs=\"`clusterType`\" pulumi-lang-dotnet=\"`ClusterType`\" pulumi-lang-go=\"`clusterType`\" pulumi-lang-python=\"`cluster_type`\" pulumi-lang-yaml=\"`clusterType`\" pulumi-lang-java=\"`clusterType`\"\u003e`cluster_type`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e or `aliyun-cs`(ASK instance).\n"},"subClustersJson":{"type":"string","description":"The child instance json string of the globalView instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC. This parameter is required, if you set \u003cspan pulumi-lang-nodejs=\"`clusterType`\" pulumi-lang-dotnet=\"`ClusterType`\" pulumi-lang-go=\"`clusterType`\" pulumi-lang-python=\"`cluster_type`\" pulumi-lang-yaml=\"`clusterType`\" pulumi-lang-java=\"`clusterType`\"\u003e`cluster_type`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e or `aliyun-cs`(ASK instance).\n"},"vswitchId":{"type":"string","description":"The ID of the VSwitch. This parameter is required, if you set \u003cspan pulumi-lang-nodejs=\"`clusterType`\" pulumi-lang-dotnet=\"`ClusterType`\" pulumi-lang-go=\"`clusterType`\" pulumi-lang-python=\"`cluster_type`\" pulumi-lang-yaml=\"`clusterType`\" pulumi-lang-java=\"`clusterType`\"\u003e`cluster_type`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e or `aliyun-cs`(ASK instance).\n"}},"required":["clusterId","clusterName","clusterType","grafanaInstanceId","resourceGroupId"],"inputProperties":{"clusterId":{"type":"string","description":"The ID of the Kubernetes cluster. This parameter is required, if you set \u003cspan pulumi-lang-nodejs=\"`clusterType`\" pulumi-lang-dotnet=\"`ClusterType`\" pulumi-lang-go=\"`clusterType`\" pulumi-lang-python=\"`cluster_type`\" pulumi-lang-yaml=\"`clusterType`\" pulumi-lang-java=\"`clusterType`\"\u003e`cluster_type`\u003c/span\u003e to `aliyun-cs`.\n","willReplaceOnChanges":true},"clusterName":{"type":"string","description":"The name of the created cluster. This parameter is required, if you set \u003cspan pulumi-lang-nodejs=\"`clusterType`\" pulumi-lang-dotnet=\"`ClusterType`\" pulumi-lang-go=\"`clusterType`\" pulumi-lang-python=\"`cluster_type`\" pulumi-lang-yaml=\"`clusterType`\" pulumi-lang-java=\"`clusterType`\"\u003e`cluster_type`\u003c/span\u003e to `remote-write`, \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e or `global-view`.\n","willReplaceOnChanges":true},"clusterType":{"type":"string","description":"The type of the Prometheus instance. Valid values: `remote-write`, \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e, `global-view`, `aliyun-cs`.\n","willReplaceOnChanges":true},"grafanaInstanceId":{"type":"string","description":"The ID of the Grafana dedicated instance. When using the shared version of Grafana, you can set \u003cspan pulumi-lang-nodejs=\"`grafanaInstanceId`\" pulumi-lang-dotnet=\"`GrafanaInstanceId`\" pulumi-lang-go=\"`grafanaInstanceId`\" pulumi-lang-python=\"`grafana_instance_id`\" pulumi-lang-yaml=\"`grafanaInstanceId`\" pulumi-lang-java=\"`grafanaInstanceId`\"\u003e`grafana_instance_id`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`free`\" pulumi-lang-dotnet=\"`Free`\" pulumi-lang-go=\"`free`\" pulumi-lang-python=\"`free`\" pulumi-lang-yaml=\"`free`\" pulumi-lang-java=\"`free`\"\u003e`free`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group. This parameter is required, if you set \u003cspan pulumi-lang-nodejs=\"`clusterType`\" pulumi-lang-dotnet=\"`ClusterType`\" pulumi-lang-go=\"`clusterType`\" pulumi-lang-python=\"`cluster_type`\" pulumi-lang-yaml=\"`clusterType`\" pulumi-lang-java=\"`clusterType`\"\u003e`cluster_type`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e or `aliyun-cs`(ASK instance).\n","willReplaceOnChanges":true},"subClustersJson":{"type":"string","description":"The child instance json string of the globalView instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC. This parameter is required, if you set \u003cspan pulumi-lang-nodejs=\"`clusterType`\" pulumi-lang-dotnet=\"`ClusterType`\" pulumi-lang-go=\"`clusterType`\" pulumi-lang-python=\"`cluster_type`\" pulumi-lang-yaml=\"`clusterType`\" pulumi-lang-java=\"`clusterType`\"\u003e`cluster_type`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e or `aliyun-cs`(ASK instance).\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the VSwitch. This parameter is required, if you set \u003cspan pulumi-lang-nodejs=\"`clusterType`\" pulumi-lang-dotnet=\"`ClusterType`\" pulumi-lang-go=\"`clusterType`\" pulumi-lang-python=\"`cluster_type`\" pulumi-lang-yaml=\"`clusterType`\" pulumi-lang-java=\"`clusterType`\"\u003e`cluster_type`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e or `aliyun-cs`(ASK instance).\n","willReplaceOnChanges":true}},"requiredInputs":["clusterType","grafanaInstanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Prometheus resources.\n","properties":{"clusterId":{"type":"string","description":"The ID of the Kubernetes cluster. This parameter is required, if you set \u003cspan pulumi-lang-nodejs=\"`clusterType`\" pulumi-lang-dotnet=\"`ClusterType`\" pulumi-lang-go=\"`clusterType`\" pulumi-lang-python=\"`cluster_type`\" pulumi-lang-yaml=\"`clusterType`\" pulumi-lang-java=\"`clusterType`\"\u003e`cluster_type`\u003c/span\u003e to `aliyun-cs`.\n","willReplaceOnChanges":true},"clusterName":{"type":"string","description":"The name of the created cluster. This parameter is required, if you set \u003cspan pulumi-lang-nodejs=\"`clusterType`\" pulumi-lang-dotnet=\"`ClusterType`\" pulumi-lang-go=\"`clusterType`\" pulumi-lang-python=\"`cluster_type`\" pulumi-lang-yaml=\"`clusterType`\" pulumi-lang-java=\"`clusterType`\"\u003e`cluster_type`\u003c/span\u003e to `remote-write`, \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e or `global-view`.\n","willReplaceOnChanges":true},"clusterType":{"type":"string","description":"The type of the Prometheus instance. Valid values: `remote-write`, \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e, `global-view`, `aliyun-cs`.\n","willReplaceOnChanges":true},"grafanaInstanceId":{"type":"string","description":"The ID of the Grafana dedicated instance. When using the shared version of Grafana, you can set \u003cspan pulumi-lang-nodejs=\"`grafanaInstanceId`\" pulumi-lang-dotnet=\"`GrafanaInstanceId`\" pulumi-lang-go=\"`grafanaInstanceId`\" pulumi-lang-python=\"`grafana_instance_id`\" pulumi-lang-yaml=\"`grafanaInstanceId`\" pulumi-lang-java=\"`grafanaInstanceId`\"\u003e`grafana_instance_id`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`free`\" pulumi-lang-dotnet=\"`Free`\" pulumi-lang-go=\"`free`\" pulumi-lang-python=\"`free`\" pulumi-lang-yaml=\"`free`\" pulumi-lang-java=\"`free`\"\u003e`free`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group. This parameter is required, if you set \u003cspan pulumi-lang-nodejs=\"`clusterType`\" pulumi-lang-dotnet=\"`ClusterType`\" pulumi-lang-go=\"`clusterType`\" pulumi-lang-python=\"`cluster_type`\" pulumi-lang-yaml=\"`clusterType`\" pulumi-lang-java=\"`clusterType`\"\u003e`cluster_type`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e or `aliyun-cs`(ASK instance).\n","willReplaceOnChanges":true},"subClustersJson":{"type":"string","description":"The child instance json string of the globalView instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC. This parameter is required, if you set \u003cspan pulumi-lang-nodejs=\"`clusterType`\" pulumi-lang-dotnet=\"`ClusterType`\" pulumi-lang-go=\"`clusterType`\" pulumi-lang-python=\"`cluster_type`\" pulumi-lang-yaml=\"`clusterType`\" pulumi-lang-java=\"`clusterType`\"\u003e`cluster_type`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e or `aliyun-cs`(ASK instance).\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the VSwitch. This parameter is required, if you set \u003cspan pulumi-lang-nodejs=\"`clusterType`\" pulumi-lang-dotnet=\"`ClusterType`\" pulumi-lang-go=\"`clusterType`\" pulumi-lang-python=\"`cluster_type`\" pulumi-lang-yaml=\"`clusterType`\" pulumi-lang-java=\"`clusterType`\"\u003e`cluster_type`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e or `aliyun-cs`(ASK instance).\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:arms/prometheusAlertRule:PrometheusAlertRule":{"description":"Provides a Application Real-Time Monitoring Service (ARMS) Prometheus Alert Rule resource.\n\nFor information about Application Real-Time Monitoring Service (ARMS) Prometheus Alert Rule and how to use it, see [What is Prometheus Alert Rule](https://www.alibabacloud.com/help/en/arms/prometheus-monitoring/api-arms-2019-08-08-createprometheusalertrule).\n\n\u003e **NOTE:** Available since v1.136.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultPrometheus = new alicloud.arms.Prometheus(\"default\", {\n    clusterType: \"remote-write\",\n    clusterName: `${name}-${_default.result}`,\n    grafanaInstanceId: \"free\",\n});\nconst example = new alicloud.arms.PrometheusAlertRule(\"example\", {\n    clusterId: defaultPrometheus.clusterId,\n    duration: \"1\",\n    expression: \"node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 \u003c 10\",\n    message: \"node available memory is less than 10%\",\n    prometheusAlertRuleName: name,\n    notifyType: \"ALERT_MANAGER\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_prometheus = alicloud.arms.Prometheus(\"default\",\n    cluster_type=\"remote-write\",\n    cluster_name=f\"{name}-{default['result']}\",\n    grafana_instance_id=\"free\")\nexample = alicloud.arms.PrometheusAlertRule(\"example\",\n    cluster_id=default_prometheus.cluster_id,\n    duration=\"1\",\n    expression=\"node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 \u003c 10\",\n    message=\"node available memory is less than 10%\",\n    prometheus_alert_rule_name=name,\n    notify_type=\"ALERT_MANAGER\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultPrometheus = new AliCloud.Arms.Prometheus(\"default\", new()\n    {\n        ClusterType = \"remote-write\",\n        ClusterName = $\"{name}-{@default.Result}\",\n        GrafanaInstanceId = \"free\",\n    });\n\n    var example = new AliCloud.Arms.PrometheusAlertRule(\"example\", new()\n    {\n        ClusterId = defaultPrometheus.ClusterId,\n        Duration = \"1\",\n        Expression = \"node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 \u003c 10\",\n        Message = \"node available memory is less than 10%\",\n        PrometheusAlertRuleName = name,\n        NotifyType = \"ALERT_MANAGER\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultPrometheus, err := arms.NewPrometheus(ctx, \"default\", \u0026arms.PrometheusArgs{\n\t\t\tClusterType:       pulumi.String(\"remote-write\"),\n\t\t\tClusterName:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tGrafanaInstanceId: pulumi.String(\"free\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = arms.NewPrometheusAlertRule(ctx, \"example\", \u0026arms.PrometheusAlertRuleArgs{\n\t\t\tClusterId:               defaultPrometheus.ClusterId,\n\t\t\tDuration:                pulumi.String(\"1\"),\n\t\t\tExpression:              pulumi.String(\"node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 \u003c 10\"),\n\t\t\tMessage:                 pulumi.String(\"node available memory is less than 10%\"),\n\t\t\tPrometheusAlertRuleName: pulumi.String(name),\n\t\t\tNotifyType:              pulumi.String(\"ALERT_MANAGER\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.arms.Prometheus;\nimport com.pulumi.alicloud.arms.PrometheusArgs;\nimport com.pulumi.alicloud.arms.PrometheusAlertRule;\nimport com.pulumi.alicloud.arms.PrometheusAlertRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultPrometheus = new Prometheus(\"defaultPrometheus\", PrometheusArgs.builder()\n            .clusterType(\"remote-write\")\n            .clusterName(String.format(\"%s-%s\", name,default_.result()))\n            .grafanaInstanceId(\"free\")\n            .build());\n\n        var example = new PrometheusAlertRule(\"example\", PrometheusAlertRuleArgs.builder()\n            .clusterId(defaultPrometheus.clusterId())\n            .duration(\"1\")\n            .expression(\"node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 \u003c 10\")\n            .message(\"node available memory is less than 10%\")\n            .prometheusAlertRuleName(name)\n            .notifyType(\"ALERT_MANAGER\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultPrometheus:\n    type: alicloud:arms:Prometheus\n    name: default\n    properties:\n      clusterType: remote-write\n      clusterName: ${name}-${default.result}\n      grafanaInstanceId: free\n  example:\n    type: alicloud:arms:PrometheusAlertRule\n    properties:\n      clusterId: ${defaultPrometheus.clusterId}\n      duration: 1\n      expression: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 \u003c 10\n      message: node available memory is less than 10%\n      prometheusAlertRuleName: ${name}\n      notifyType: ALERT_MANAGER\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Real-Time Monitoring Service (ARMS) Prometheus Alert Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/prometheusAlertRule:PrometheusAlertRule example \u003ccluster_id\u003e:\u003cprometheus_alert_rule_id\u003e\n```\n\n","properties":{"annotations":{"type":"array","items":{"$ref":"#/types/alicloud:arms/PrometheusAlertRuleAnnotation:PrometheusAlertRuleAnnotation"},"description":"The annotations of the alert rule. See \u003cspan pulumi-lang-nodejs=\"`annotations`\" pulumi-lang-dotnet=\"`Annotations`\" pulumi-lang-go=\"`annotations`\" pulumi-lang-python=\"`annotations`\" pulumi-lang-yaml=\"`annotations`\" pulumi-lang-java=\"`annotations`\"\u003e`annotations`\u003c/span\u003e below.\n"},"clusterId":{"type":"string","description":"The ID of the cluster.\n"},"dispatchRuleId":{"type":"string","description":"The ID of the notification policy. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`notifyType`\" pulumi-lang-dotnet=\"`NotifyType`\" pulumi-lang-go=\"`notifyType`\" pulumi-lang-python=\"`notify_type`\" pulumi-lang-yaml=\"`notifyType`\" pulumi-lang-java=\"`notifyType`\"\u003e`notify_type`\u003c/span\u003e parameter is set to `DISPATCH_RULE`.\n"},"duration":{"type":"string","description":"The duration of the alert.\n"},"expression":{"type":"string","description":"The alert rule expression that follows the PromQL syntax.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:arms/PrometheusAlertRuleLabel:PrometheusAlertRuleLabel"},"description":"The labels of the resource. See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"message":{"type":"string","description":"The message of the alert notification.\n"},"notifyType":{"type":"string","description":"The method of sending the alert notification. Valid values: `ALERT_MANAGER`, `DISPATCH_RULE`.\n"},"prometheusAlertRuleId":{"type":"integer","description":"The first ID of the resource.\n"},"prometheusAlertRuleName":{"type":"string","description":"The name of the resource.\n"},"status":{"type":"integer","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of the alert rule.\n"}},"required":["clusterId","duration","expression","message","prometheusAlertRuleId","prometheusAlertRuleName","status","type"],"inputProperties":{"annotations":{"type":"array","items":{"$ref":"#/types/alicloud:arms/PrometheusAlertRuleAnnotation:PrometheusAlertRuleAnnotation"},"description":"The annotations of the alert rule. See \u003cspan pulumi-lang-nodejs=\"`annotations`\" pulumi-lang-dotnet=\"`Annotations`\" pulumi-lang-go=\"`annotations`\" pulumi-lang-python=\"`annotations`\" pulumi-lang-yaml=\"`annotations`\" pulumi-lang-java=\"`annotations`\"\u003e`annotations`\u003c/span\u003e below.\n"},"clusterId":{"type":"string","description":"The ID of the cluster.\n","willReplaceOnChanges":true},"dispatchRuleId":{"type":"string","description":"The ID of the notification policy. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`notifyType`\" pulumi-lang-dotnet=\"`NotifyType`\" pulumi-lang-go=\"`notifyType`\" pulumi-lang-python=\"`notify_type`\" pulumi-lang-yaml=\"`notifyType`\" pulumi-lang-java=\"`notifyType`\"\u003e`notify_type`\u003c/span\u003e parameter is set to `DISPATCH_RULE`.\n"},"duration":{"type":"string","description":"The duration of the alert.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"The alert rule expression that follows the PromQL syntax.\n","willReplaceOnChanges":true},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:arms/PrometheusAlertRuleLabel:PrometheusAlertRuleLabel"},"description":"The labels of the resource. See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"message":{"type":"string","description":"The message of the alert notification.\n","willReplaceOnChanges":true},"notifyType":{"type":"string","description":"The method of sending the alert notification. Valid values: `ALERT_MANAGER`, `DISPATCH_RULE`.\n"},"prometheusAlertRuleName":{"type":"string","description":"The name of the resource.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the alert rule.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","duration","expression","message","prometheusAlertRuleName"],"stateInputs":{"description":"Input properties used for looking up and filtering PrometheusAlertRule resources.\n","properties":{"annotations":{"type":"array","items":{"$ref":"#/types/alicloud:arms/PrometheusAlertRuleAnnotation:PrometheusAlertRuleAnnotation"},"description":"The annotations of the alert rule. See \u003cspan pulumi-lang-nodejs=\"`annotations`\" pulumi-lang-dotnet=\"`Annotations`\" pulumi-lang-go=\"`annotations`\" pulumi-lang-python=\"`annotations`\" pulumi-lang-yaml=\"`annotations`\" pulumi-lang-java=\"`annotations`\"\u003e`annotations`\u003c/span\u003e below.\n"},"clusterId":{"type":"string","description":"The ID of the cluster.\n","willReplaceOnChanges":true},"dispatchRuleId":{"type":"string","description":"The ID of the notification policy. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`notifyType`\" pulumi-lang-dotnet=\"`NotifyType`\" pulumi-lang-go=\"`notifyType`\" pulumi-lang-python=\"`notify_type`\" pulumi-lang-yaml=\"`notifyType`\" pulumi-lang-java=\"`notifyType`\"\u003e`notify_type`\u003c/span\u003e parameter is set to `DISPATCH_RULE`.\n"},"duration":{"type":"string","description":"The duration of the alert.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"The alert rule expression that follows the PromQL syntax.\n","willReplaceOnChanges":true},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:arms/PrometheusAlertRuleLabel:PrometheusAlertRuleLabel"},"description":"The labels of the resource. See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"message":{"type":"string","description":"The message of the alert notification.\n","willReplaceOnChanges":true},"notifyType":{"type":"string","description":"The method of sending the alert notification. Valid values: `ALERT_MANAGER`, `DISPATCH_RULE`.\n"},"prometheusAlertRuleId":{"type":"integer","description":"The first ID of the resource.\n"},"prometheusAlertRuleName":{"type":"string","description":"The name of the resource.\n","willReplaceOnChanges":true},"status":{"type":"integer","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of the alert rule.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:arms/prometheusMonitoring:PrometheusMonitoring":{"description":"Provides a ARMS Prometheus Monitoring resource. Including serviceMonitor, podMonitor, customJob, probe and other four types of monitoring.\n\nFor information about ARMS Prometheus Monitoring and how to use it, see [What is Prometheus Monitoring](https://www.alibabacloud.com/help/en/arms/prometheus-monitoring/api-arms-2019-08-08-createprometheusmonitoring).\n\n\u003e **NOTE:** Available since v1.209.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: name,\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: defaultNetwork.cidrBlock.apply(cidrBlock =\u003e std.cidrsubnetOutput({\n        input: cidrBlock,\n        newbits: 8,\n        netnum: 8,\n    })).apply(invoke =\u003e invoke.result),\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultSnapshotPolicy = new alicloud.ecs.SnapshotPolicy(\"default\", {\n    name: name,\n    repeatWeekdays: [\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retentionDays: -1,\n    timePoints: [\n        \"1\",\n        \"22\",\n        \"23\",\n    ],\n});\nconst defaultGetInstanceTypes = vswitch.zoneId.apply(zoneId =\u003e alicloud.ecs.getInstanceTypesOutput({\n    availabilityZone: zoneId,\n    cpuCoreCount: 2,\n    memorySize: 4,\n    kubernetesNodeRole: \"Worker\",\n    instanceTypeFamily: \"ecs.sn1ne\",\n}));\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    name: name,\n    clusterSpec: \"ack.pro.small\",\n    version: \"1.24.6-aliyun.1\",\n    newNatGateway: true,\n    nodeCidrMask: 26,\n    proxyMode: \"ipvs\",\n    serviceCidr: \"172.23.0.0/16\",\n    podCidr: \"10.95.0.0/16\",\n    workerVswitchIds: [vswitch.id],\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultKeyPair = new alicloud.ecs.KeyPair(\"default\", {keyPairName: `${name}-${defaultInteger.result}`});\nconst defaultNodePool = new alicloud.cs.NodePool(\"default\", {\n    nodePoolName: \"desired_size\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [vswitch.id],\n    instanceTypes: [defaultGetInstanceTypes.apply(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyPairName,\n    desiredSize: \"2\",\n});\nconst defaultPrometheus = new alicloud.arms.Prometheus(\"default\", {\n    clusterType: \"aliyun-cs\",\n    grafanaInstanceId: \"free\",\n    clusterId: defaultNodePool.clusterId,\n});\nconst defaultPrometheusMonitoring = new alicloud.arms.PrometheusMonitoring(\"default\", {\n    status: \"run\",\n    type: \"serviceMonitor\",\n    clusterId: defaultPrometheus.clusterId,\n    configYaml: `apiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name: tomcat-demo\n  namespace: default\nspec:\n  endpoints:\n  - bearerTokenSecret:\n      key: ''\n    interval: 30s\n    path: /metrics\n    port: tomcat-monitor\n  namespaceSelector:\n    any: true\n  selector:\n    matchLabels:\n      app: tomcat\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_network = alicloud.vpc.Network(\"default\",\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=name)\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    vpc_id=default_network.id,\n    cidr_block=default_network.cidr_block.apply(lambda cidr_block: std.cidrsubnet_output(input=cidr_block,\n        newbits=8,\n        netnum=8)).apply(lambda invoke: invoke.result),\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_snapshot_policy = alicloud.ecs.SnapshotPolicy(\"default\",\n    name=name,\n    repeat_weekdays=[\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retention_days=-1,\n    time_points=[\n        \"1\",\n        \"22\",\n        \"23\",\n    ])\ndefault_get_instance_types = vswitch.zone_id.apply(lambda zone_id: alicloud.ecs.get_instance_types_output(availability_zone=zone_id,\n    cpu_core_count=2,\n    memory_size=4,\n    kubernetes_node_role=\"Worker\",\n    instance_type_family=\"ecs.sn1ne\"))\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name=name,\n    cluster_spec=\"ack.pro.small\",\n    version=\"1.24.6-aliyun.1\",\n    new_nat_gateway=True,\n    node_cidr_mask=26,\n    proxy_mode=\"ipvs\",\n    service_cidr=\"172.23.0.0/16\",\n    pod_cidr=\"10.95.0.0/16\",\n    worker_vswitch_ids=[vswitch.id])\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_key_pair = alicloud.ecs.KeyPair(\"default\", key_pair_name=f\"{name}-{default_integer['result']}\")\ndefault_node_pool = alicloud.cs.NodePool(\"default\",\n    node_pool_name=\"desired_size\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[vswitch.id],\n    instance_types=[default_get_instance_types.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_pair_name,\n    desired_size=\"2\")\ndefault_prometheus = alicloud.arms.Prometheus(\"default\",\n    cluster_type=\"aliyun-cs\",\n    grafana_instance_id=\"free\",\n    cluster_id=default_node_pool.cluster_id)\ndefault_prometheus_monitoring = alicloud.arms.PrometheusMonitoring(\"default\",\n    status=\"run\",\n    type=\"serviceMonitor\",\n    cluster_id=default_prometheus.cluster_id,\n    config_yaml=\"\"\"apiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name: tomcat-demo\n  namespace: default\nspec:\n  endpoints:\n  - bearerTokenSecret:\n      key: ''\n    interval: 30s\n    path: /metrics\n    port: tomcat-monitor\n  namespaceSelector:\n    any: true\n  selector:\n    matchLabels:\n      app: tomcat\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = name,\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = defaultNetwork.CidrBlock.Apply(cidrBlock =\u003e Std.Cidrsubnet.Invoke(new()\n        {\n            Input = cidrBlock,\n            Newbits = 8,\n            Netnum = 8,\n        })).Apply(invoke =\u003e invoke.Result),\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultSnapshotPolicy = new AliCloud.Ecs.SnapshotPolicy(\"default\", new()\n    {\n        Name = name,\n        RepeatWeekdays = new[]\n        {\n            \"1\",\n            \"2\",\n            \"3\",\n        },\n        RetentionDays = -1,\n        TimePoints = new[]\n        {\n            \"1\",\n            \"22\",\n            \"23\",\n        },\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = vswitch.ZoneId,\n        CpuCoreCount = 2,\n        MemorySize = 4,\n        KubernetesNodeRole = \"Worker\",\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        Name = name,\n        ClusterSpec = \"ack.pro.small\",\n        Version = \"1.24.6-aliyun.1\",\n        NewNatGateway = true,\n        NodeCidrMask = 26,\n        ProxyMode = \"ipvs\",\n        ServiceCidr = \"172.23.0.0/16\",\n        PodCidr = \"10.95.0.0/16\",\n        WorkerVswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultKeyPair = new AliCloud.Ecs.KeyPair(\"default\", new()\n    {\n        KeyPairName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultNodePool = new AliCloud.CS.NodePool(\"default\", new()\n    {\n        NodePoolName = \"desired_size\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyPairName,\n        DesiredSize = \"2\",\n    });\n\n    var defaultPrometheus = new AliCloud.Arms.Prometheus(\"default\", new()\n    {\n        ClusterType = \"aliyun-cs\",\n        GrafanaInstanceId = \"free\",\n        ClusterId = defaultNodePool.ClusterId,\n    });\n\n    var defaultPrometheusMonitoring = new AliCloud.Arms.PrometheusMonitoring(\"default\", new()\n    {\n        Status = \"run\",\n        Type = \"serviceMonitor\",\n        ClusterId = defaultPrometheus.ClusterId,\n        ConfigYaml = @\"apiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name: tomcat-demo\n  namespace: default\nspec:\n  endpoints:\n  - bearerTokenSecret:\n      key: ''\n    interval: 30s\n    path: /metrics\n    port: tomcat-monitor\n  namespaceSelector:\n    any: true\n  selector:\n    matchLabels:\n      app: tomcat\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\n_, err = resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\nVpcName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: cidrBlock,\nNewbits: 8,\nNetnum: 8,\n}, nil)\nif err != nil {\nreturn err\n}\nvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(defaultNetwork.CidrBlock.ApplyT(func(cidrBlock string) (std.CidrsubnetResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrsubnetResultOutput).ApplyT(func(invoke std.CidrsubnetResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\nZoneId: pulumi.String(_default.Zones[0].Id),\nVswitchName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\n_, err = ecs.NewSnapshotPolicy(ctx, \"default\", \u0026ecs.SnapshotPolicyArgs{\nName: pulumi.String(name),\nRepeatWeekdays: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"2\"),\npulumi.String(\"3\"),\n},\nRetentionDays: pulumi.Int(-1),\nTimePoints: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"22\"),\npulumi.String(\"23\"),\n},\n})\nif err != nil {\nreturn err\n}\ndefaultGetInstanceTypes := vswitch.ZoneId.ApplyT(func(zoneId string) (ecs.GetInstanceTypesResult, error) {\nreturn ecs.GetInstanceTypesResult(interface{}(ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(pulumi.StringRef(zoneId)),\nCpuCoreCount: pulumi.IntRef(pulumi.IntRef(int(2))),\nMemorySize: pulumi.Float64Ref(pulumi.Float64Ref(4)),\nKubernetesNodeRole: pulumi.StringRef(pulumi.StringRef(\"Worker\")),\nInstanceTypeFamily: pulumi.StringRef(pulumi.StringRef(\"ecs.sn1ne\")),\n}, nil))), nil\n}).(ecs.GetInstanceTypesResultOutput)\ndefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\nName: pulumi.String(name),\nClusterSpec: pulumi.String(\"ack.pro.small\"),\nVersion: pulumi.String(\"1.24.6-aliyun.1\"),\nNewNatGateway: pulumi.Bool(true),\nNodeCidrMask: pulumi.Int(26),\nProxyMode: pulumi.String(\"ipvs\"),\nServiceCidr: pulumi.String(\"172.23.0.0/16\"),\nPodCidr: pulumi.String(\"10.95.0.0/16\"),\nWorkerVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\n})\nif err != nil {\nreturn err\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMax: 99999,\nMin: 10000,\n})\nif err != nil {\nreturn err\n}\ndefaultKeyPair, err := ecs.NewKeyPair(ctx, \"default\", \u0026ecs.KeyPairArgs{\nKeyPairName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ndefaultNodePool, err := cs.NewNodePool(ctx, \"default\", \u0026cs.NodePoolArgs{\nNodePoolName: pulumi.String(\"desired_size\"),\nClusterId: defaultManagedKubernetes.ID(),\nVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\nInstanceTypes: pulumi.StringArray{\npulumi.String(defaultGetInstanceTypes.ApplyT(func(defaultGetInstanceTypes ecs.GetInstanceTypesResult) (*string, error) {\nreturn \u0026defaultGetInstanceTypes.InstanceTypes[0].Id, nil\n}).(pulumi.StringPtrOutput)),\n},\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nSystemDiskSize: pulumi.Int(40),\nKeyName: defaultKeyPair.KeyPairName,\nDesiredSize: pulumi.String(\"2\"),\n})\nif err != nil {\nreturn err\n}\ndefaultPrometheus, err := arms.NewPrometheus(ctx, \"default\", \u0026arms.PrometheusArgs{\nClusterType: pulumi.String(\"aliyun-cs\"),\nGrafanaInstanceId: pulumi.String(\"free\"),\nClusterId: defaultNodePool.ClusterId,\n})\nif err != nil {\nreturn err\n}\n_, err = arms.NewPrometheusMonitoring(ctx, \"default\", \u0026arms.PrometheusMonitoringArgs{\nStatus: pulumi.String(\"run\"),\nType: pulumi.String(\"serviceMonitor\"),\nClusterId: defaultPrometheus.ClusterId,\nConfigYaml: pulumi.String(`apiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name: tomcat-demo\n  namespace: default\nspec:\n  endpoints:\n  - bearerTokenSecret:\n      key: ''\n    interval: 30s\n    path: /metrics\n    port: tomcat-monitor\n  namespaceSelector:\n    any: true\n  selector:\n    matchLabels:\n      app: tomcat\n`),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.SnapshotPolicy;\nimport com.pulumi.alicloud.ecs.SnapshotPolicyArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ecs.KeyPair;\nimport com.pulumi.alicloud.ecs.KeyPairArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.arms.Prometheus;\nimport com.pulumi.alicloud.arms.PrometheusArgs;\nimport com.pulumi.alicloud.arms.PrometheusMonitoring;\nimport com.pulumi.alicloud.arms.PrometheusMonitoringArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(name)\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(defaultNetwork.cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(_cidrBlock)\n                .newbits(8)\n                .netnum(8)\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultSnapshotPolicy = new SnapshotPolicy(\"defaultSnapshotPolicy\", SnapshotPolicyArgs.builder()\n            .name(name)\n            .repeatWeekdays(            \n                \"1\",\n                \"2\",\n                \"3\")\n            .retentionDays(-1)\n            .timePoints(            \n                \"1\",\n                \"22\",\n                \"23\")\n            .build());\n\n        final var defaultGetInstanceTypes = vswitch.zoneId().applyValue(_zoneId -\u003e EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(_zoneId)\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .kubernetesNodeRole(\"Worker\")\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build()));\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .name(name)\n            .clusterSpec(\"ack.pro.small\")\n            .version(\"1.24.6-aliyun.1\")\n            .newNatGateway(true)\n            .nodeCidrMask(26)\n            .proxyMode(\"ipvs\")\n            .serviceCidr(\"172.23.0.0/16\")\n            .podCidr(\"10.95.0.0/16\")\n            .workerVswitchIds(vswitch.id())\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultKeyPair = new KeyPair(\"defaultKeyPair\", KeyPairArgs.builder()\n            .keyPairName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultNodePool = new NodePool(\"defaultNodePool\", NodePoolArgs.builder()\n            .nodePoolName(\"desired_size\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(vswitch.id())\n            .instanceTypes(defaultGetInstanceTypes.applyValue(_defaultGetInstanceTypes -\u003e _defaultGetInstanceTypes.instanceTypes()[0].id()))\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyPairName())\n            .desiredSize(\"2\")\n            .build());\n\n        var defaultPrometheus = new Prometheus(\"defaultPrometheus\", PrometheusArgs.builder()\n            .clusterType(\"aliyun-cs\")\n            .grafanaInstanceId(\"free\")\n            .clusterId(defaultNodePool.clusterId())\n            .build());\n\n        var defaultPrometheusMonitoring = new PrometheusMonitoring(\"defaultPrometheusMonitoring\", PrometheusMonitoringArgs.builder()\n            .status(\"run\")\n            .type(\"serviceMonitor\")\n            .clusterId(defaultPrometheus.clusterId())\n            .configYaml(\"\"\"\napiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name: tomcat-demo\n  namespace: default\nspec:\n  endpoints:\n  - bearerTokenSecret:\n      key: ''\n    interval: 30s\n    path: /metrics\n    port: tomcat-monitor\n  namespaceSelector:\n    any: true\n  selector:\n    matchLabels:\n      app: tomcat\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      cidrBlock: 192.168.0.0/16\n      vpcName: ${name}\n  vswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: ${defaultNetwork.cidrBlock}\n            newbits: 8\n            netnum: 8\n          return: result\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultSnapshotPolicy:\n    type: alicloud:ecs:SnapshotPolicy\n    name: default\n    properties:\n      name: ${name}\n      repeatWeekdays:\n        - '1'\n        - '2'\n        - '3'\n      retentionDays: -1\n      timePoints:\n        - '1'\n        - '22'\n        - '23'\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      name: ${name}\n      clusterSpec: ack.pro.small\n      version: 1.24.6-aliyun.1\n      newNatGateway: true\n      nodeCidrMask: 26\n      proxyMode: ipvs\n      serviceCidr: 172.23.0.0/16\n      podCidr: 10.95.0.0/16\n      workerVswitchIds:\n        - ${vswitch.id}\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultKeyPair:\n    type: alicloud:ecs:KeyPair\n    name: default\n    properties:\n      keyPairName: ${name}-${defaultInteger.result}\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      nodePoolName: desired_size\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${vswitch.id}\n      instanceTypes:\n        - ${defaultGetInstanceTypes.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyPairName}\n      desiredSize: 2\n  defaultPrometheus:\n    type: alicloud:arms:Prometheus\n    name: default\n    properties:\n      clusterType: aliyun-cs\n      grafanaInstanceId: free\n      clusterId: ${defaultNodePool.clusterId}\n  defaultPrometheusMonitoring:\n    type: alicloud:arms:PrometheusMonitoring\n    name: default\n    properties:\n      status: run\n      type: serviceMonitor\n      clusterId: ${defaultPrometheus.clusterId}\n      configYaml: |\n        apiVersion: monitoring.coreos.com/v1\n        kind: ServiceMonitor\n        metadata:\n          name: tomcat-demo\n          namespace: default\n        spec:\n          endpoints:\n          - bearerTokenSecret:\n              key: ''\n            interval: 30s\n            path: /metrics\n            port: tomcat-monitor\n          namespaceSelector:\n            any: true\n          selector:\n            matchLabels:\n              app: tomcat\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${vswitch.zoneId}\n        cpuCoreCount: 2\n        memorySize: 4\n        kubernetesNodeRole: Worker\n        instanceTypeFamily: ecs.sn1ne\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nARMS Prometheus Monitoring can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/prometheusMonitoring:PrometheusMonitoring example \u003ccluster_id\u003e:\u003cmonitoring_name\u003e:\u003ctype\u003e\n```\n\n","properties":{"clusterId":{"type":"string","description":"The ID of the prometheus instance.\n"},"configYaml":{"type":"string","description":"Yaml configuration for monitoring.\n"},"monitoringName":{"type":"string","description":"The name of the resource.\n"},"status":{"type":"string","description":"Valid values: \u003cspan pulumi-lang-nodejs=\"`stop`\" pulumi-lang-dotnet=\"`Stop`\" pulumi-lang-go=\"`stop`\" pulumi-lang-python=\"`stop`\" pulumi-lang-yaml=\"`stop`\" pulumi-lang-java=\"`stop`\"\u003e`stop`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`run`\" pulumi-lang-dotnet=\"`Run`\" pulumi-lang-go=\"`run`\" pulumi-lang-python=\"`run`\" pulumi-lang-yaml=\"`run`\" pulumi-lang-java=\"`run`\"\u003e`run`\u003c/span\u003e.\n"},"type":{"type":"string","description":"Monitoring type: `serviceMonitor`, `podMonitor`, `customJob`, \u003cspan pulumi-lang-nodejs=\"`probe`\" pulumi-lang-dotnet=\"`Probe`\" pulumi-lang-go=\"`probe`\" pulumi-lang-python=\"`probe`\" pulumi-lang-yaml=\"`probe`\" pulumi-lang-java=\"`probe`\"\u003e`probe`\u003c/span\u003e.\n"}},"required":["clusterId","configYaml","monitoringName","status","type"],"inputProperties":{"clusterId":{"type":"string","description":"The ID of the prometheus instance.\n","willReplaceOnChanges":true},"configYaml":{"type":"string","description":"Yaml configuration for monitoring.\n"},"status":{"type":"string","description":"Valid values: \u003cspan pulumi-lang-nodejs=\"`stop`\" pulumi-lang-dotnet=\"`Stop`\" pulumi-lang-go=\"`stop`\" pulumi-lang-python=\"`stop`\" pulumi-lang-yaml=\"`stop`\" pulumi-lang-java=\"`stop`\"\u003e`stop`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`run`\" pulumi-lang-dotnet=\"`Run`\" pulumi-lang-go=\"`run`\" pulumi-lang-python=\"`run`\" pulumi-lang-yaml=\"`run`\" pulumi-lang-java=\"`run`\"\u003e`run`\u003c/span\u003e.\n"},"type":{"type":"string","description":"Monitoring type: `serviceMonitor`, `podMonitor`, `customJob`, \u003cspan pulumi-lang-nodejs=\"`probe`\" pulumi-lang-dotnet=\"`Probe`\" pulumi-lang-go=\"`probe`\" pulumi-lang-python=\"`probe`\" pulumi-lang-yaml=\"`probe`\" pulumi-lang-java=\"`probe`\"\u003e`probe`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","configYaml","type"],"stateInputs":{"description":"Input properties used for looking up and filtering PrometheusMonitoring resources.\n","properties":{"clusterId":{"type":"string","description":"The ID of the prometheus instance.\n","willReplaceOnChanges":true},"configYaml":{"type":"string","description":"Yaml configuration for monitoring.\n"},"monitoringName":{"type":"string","description":"The name of the resource.\n"},"status":{"type":"string","description":"Valid values: \u003cspan pulumi-lang-nodejs=\"`stop`\" pulumi-lang-dotnet=\"`Stop`\" pulumi-lang-go=\"`stop`\" pulumi-lang-python=\"`stop`\" pulumi-lang-yaml=\"`stop`\" pulumi-lang-java=\"`stop`\"\u003e`stop`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`run`\" pulumi-lang-dotnet=\"`Run`\" pulumi-lang-go=\"`run`\" pulumi-lang-python=\"`run`\" pulumi-lang-yaml=\"`run`\" pulumi-lang-java=\"`run`\"\u003e`run`\u003c/span\u003e.\n"},"type":{"type":"string","description":"Monitoring type: `serviceMonitor`, `podMonitor`, `customJob`, \u003cspan pulumi-lang-nodejs=\"`probe`\" pulumi-lang-dotnet=\"`Probe`\" pulumi-lang-go=\"`probe`\" pulumi-lang-python=\"`probe`\" pulumi-lang-yaml=\"`probe`\" pulumi-lang-java=\"`probe`\"\u003e`probe`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:arms/remoteWrite:RemoteWrite":{"description":"Provides a Application Real-Time Monitoring Service (ARMS) Remote Write resource.\n\nFor information about Application Real-Time Monitoring Service (ARMS) Remote Write and how to use it, see [What is Remote Write](https://next.api.aliyun.com/api/ARMS/2019-08-08/AddPrometheusInstance).\n\n\u003e **NOTE:** Available since v1.204.0.\n\n\u003e **DEPRECATED:** This resource has been deprecated since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: pulumi.all([_default, _default.then(_default =\u003e _default.zones).length]).apply(([_default, length]) =\u003e _default.zones[length - 1].id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultPrometheus = new alicloud.arms.Prometheus(\"default\", {\n    clusterType: \"ecs\",\n    grafanaInstanceId: \"free\",\n    vpcId: defaultNetwork.id,\n    vswitchId: defaultSwitch.id,\n    securityGroupId: defaultSecurityGroup.id,\n    clusterName: pulumi.interpolate`${name}-${defaultNetwork.id}`,\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    tags: {\n        Created: \"TF\",\n        For: \"Prometheus\",\n    },\n});\nconst defaultRemoteWrite = new alicloud.arms.RemoteWrite(\"default\", {\n    clusterId: defaultPrometheus.id,\n    remoteWriteYaml: `remote_write:\n- name: ArmsRemoteWrite\n  url: http://47.96.227.137:8080/prometheus/xxx/yyy/cn-hangzhou/api/v3/write\n  basic_auth: {username: 666, password: '******'}\n  write_relabel_configs:\n  - source_labels: [instance_id]\n    separator: ;\n    regex: si-6e2ca86444db4e55a7c1\n    replacement: 1\n    action: keep\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=len(default.zones).apply(lambda length: default.zones[length - 1]).apply(lambda obj: obj.id))\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_prometheus = alicloud.arms.Prometheus(\"default\",\n    cluster_type=\"ecs\",\n    grafana_instance_id=\"free\",\n    vpc_id=default_network.id,\n    vswitch_id=default_switch.id,\n    security_group_id=default_security_group.id,\n    cluster_name=default_network.id.apply(lambda id: f\"{name}-{id}\"),\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Prometheus\",\n    })\ndefault_remote_write = alicloud.arms.RemoteWrite(\"default\",\n    cluster_id=default_prometheus.id,\n    remote_write_yaml=\"\"\"remote_write:\n- name: ArmsRemoteWrite\n  url: http://47.96.227.137:8080/prometheus/xxx/yyy/cn-hangzhou/api/v3/write\n  basic_auth: {username: 666, password: '******'}\n  write_relabel_configs:\n  - source_labels: [instance_id]\n    separator: ;\n    regex: si-6e2ca86444db4e55a7c1\n    replacement: $1\n    action: keep\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = Output.Tuple(@default, @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)).Length).Apply(values =\u003e\n        {\n            var @default = values.Item1;\n            var length = values.Item2;\n            return @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[length - 1].Id;\n        }),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultPrometheus = new AliCloud.Arms.Prometheus(\"default\", new()\n    {\n        ClusterType = \"ecs\",\n        GrafanaInstanceId = \"free\",\n        VpcId = defaultNetwork.Id,\n        VswitchId = defaultSwitch.Id,\n        SecurityGroupId = defaultSecurityGroup.Id,\n        ClusterName = defaultNetwork.Id.Apply(id =\u003e $\"{name}-{id}\"),\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Prometheus\" },\n        },\n    });\n\n    var defaultRemoteWrite = new AliCloud.Arms.RemoteWrite(\"default\", new()\n    {\n        ClusterId = defaultPrometheus.Id,\n        RemoteWriteYaml = @\"remote_write:\n- name: ArmsRemoteWrite\n  url: http://47.96.227.137:8080/prometheus/xxx/yyy/cn-hangzhou/api/v3/write\n  basic_auth: {username: 666, password: '******'}\n  write_relabel_configs:\n  - source_labels: [instance_id]\n    separator: ;\n    regex: si-6e2ca86444db4e55a7c1\n    replacement: $1\n    action: keep\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId: pulumi.String(len(_default.Zones).ApplyT(func(length int) (alicloud.GetZonesZone, error) {\n\t\t\t\treturn alicloud.GetZonesZone(_default.Zones[float64(length.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\t\treturn __convert - 1, nil\n\t\t\t\t}).(pulumi.Float64Output))]), nil\n\t\t\t}).(alicloud.GetZonesZoneOutput).ApplyT(func(obj alicloud.GetZonesZone) (*string, error) {\n\t\t\t\treturn obj.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultPrometheus, err := arms.NewPrometheus(ctx, \"default\", \u0026arms.PrometheusArgs{\n\t\t\tClusterType:       pulumi.String(\"ecs\"),\n\t\t\tGrafanaInstanceId: pulumi.String(\"free\"),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t\tVswitchId:         defaultSwitch.ID(),\n\t\t\tSecurityGroupId:   defaultSecurityGroup.ID(),\n\t\t\tClusterName: defaultNetwork.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v-%v\", name, id), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"Prometheus\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = arms.NewRemoteWrite(ctx, \"default\", \u0026arms.RemoteWriteArgs{\n\t\t\tClusterId: defaultPrometheus.ID(),\n\t\t\tRemoteWriteYaml: pulumi.String(`remote_write:\n- name: ArmsRemoteWrite\n  url: http://47.96.227.137:8080/prometheus/xxx/yyy/cn-hangzhou/api/v3/write\n  basic_auth: {username: 666, password: '******'}\n  write_relabel_configs:\n  - source_labels: [instance_id]\n    separator: ;\n    regex: si-6e2ca86444db4e55a7c1\n    replacement: $1\n    action: keep\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.arms.Prometheus;\nimport com.pulumi.alicloud.arms.PrometheusArgs;\nimport com.pulumi.alicloud.arms.RemoteWrite;\nimport com.pulumi.alicloud.arms.RemoteWriteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones().length().applyValue(_length -\u003e default_.zones()[_length - 1]).applyValue(_obj -\u003e _obj.id()))\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultPrometheus = new Prometheus(\"defaultPrometheus\", PrometheusArgs.builder()\n            .clusterType(\"ecs\")\n            .grafanaInstanceId(\"free\")\n            .vpcId(defaultNetwork.id())\n            .vswitchId(defaultSwitch.id())\n            .securityGroupId(defaultSecurityGroup.id())\n            .clusterName(defaultNetwork.id().applyValue(_id -\u003e String.format(\"%s-%s\", name,_id)))\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Prometheus\")\n            ))\n            .build());\n\n        var defaultRemoteWrite = new RemoteWrite(\"defaultRemoteWrite\", RemoteWriteArgs.builder()\n            .clusterId(defaultPrometheus.id())\n            .remoteWriteYaml(\"\"\"\nremote_write:\n- name: ArmsRemoteWrite\n  url: http://47.96.227.137:8080/prometheus/xxx/yyy/cn-hangzhou/api/v3/write\n  basic_auth: {username: 666, password: '******'}\n  write_relabel_configs:\n  - source_labels: [instance_id]\n    separator: ;\n    regex: si-6e2ca86444db4e55a7c1\n    replacement: $1\n    action: keep\n            \"\"\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApplication Real-Time Monitoring Service (ARMS) Remote Write can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/remoteWrite:RemoteWrite example \u003ccluster_id\u003e:\u003cremote_write_name\u003e\n```\n\n","properties":{"clusterId":{"type":"string","description":"The ID of the Prometheus instance.\n"},"remoteWriteName":{"type":"string","description":"The name of the Remote Write configuration item.\n"},"remoteWriteYaml":{"type":"string","description":"The details of the Remote Write configuration item. Specify the value in the YAML format.\n"}},"required":["clusterId","remoteWriteName","remoteWriteYaml"],"inputProperties":{"clusterId":{"type":"string","description":"The ID of the Prometheus instance.\n","willReplaceOnChanges":true},"remoteWriteYaml":{"type":"string","description":"The details of the Remote Write configuration item. Specify the value in the YAML format.\n"}},"requiredInputs":["clusterId","remoteWriteYaml"],"stateInputs":{"description":"Input properties used for looking up and filtering RemoteWrite resources.\n","properties":{"clusterId":{"type":"string","description":"The ID of the Prometheus instance.\n","willReplaceOnChanges":true},"remoteWriteName":{"type":"string","description":"The name of the Remote Write configuration item.\n"},"remoteWriteYaml":{"type":"string","description":"The details of the Remote Write configuration item. Specify the value in the YAML format.\n"}},"type":"object"}},"alicloud:arms/syntheticTask:SyntheticTask":{"description":"Provides a ARMS Synthetic Task resource. Cloud Synthetic task resources.\n\nFor information about ARMS Synthetic Task and how to use it, see [What is Synthetic Task](https://next.api.alibabacloud.com/document/ARMS/2019-08-08/CreateTimingSyntheticTask).\n\n\u003e **NOTE:** Available since v1.215.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultSyntheticTask = new alicloud.arms.SyntheticTask(\"default\", {\n    monitors: [{\n        cityCode: \"1200101\",\n        operatorCode: \"246\",\n        clientType: 4,\n    }],\n    syntheticTaskName: name,\n    customPeriod: {\n        endHour: 12,\n        startHour: 11,\n    },\n    availableAssertions: [\n        {\n            type: \"IcmpPackLoss\",\n            operator: \"neq\",\n            expect: \"200\",\n            target: \"example\",\n        },\n        {\n            type: \"IcmpPackAvgLatency\",\n            operator: \"lte\",\n            expect: \"1000\",\n        },\n        {\n            type: \"IcmpPackMaxLatency\",\n            operator: \"lte\",\n            expect: \"10000\",\n        },\n    ],\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    status: \"RUNNING\",\n    monitorConf: {\n        netTcp: {\n            tracertTimeout: 1050,\n            targetUrl: \"www.aliyun.com\",\n            connectTimes: 6,\n            interval: 300,\n            timeout: 3000,\n            tracertNumMax: 2,\n        },\n        netDns: {\n            queryMethod: 1,\n            timeout: 5050,\n            targetUrl: \"www.aliyun.com\",\n            dnsServerIpType: 1,\n            nsServer: \"61.128.114.167\",\n        },\n        apiHttp: {\n            timeout: 10050,\n            targetUrl: \"https://www.aliyun.com\",\n            method: \"POST\",\n            requestHeaders: {\n                key1: \"value1\",\n            },\n            requestBody: {\n                content: \"example2\",\n                type: \"text/html\",\n            },\n            connectTimeout: 6000,\n        },\n        website: {\n            slowElementThreshold: 5005,\n            verifyStringBlacklist: \"Failed\",\n            elementBlacklist: \"a.jpg\",\n            disableCompression: 1,\n            ignoreCertificateError: 0,\n            monitorTimeout: 20000,\n            redirection: 0,\n            dnsHijackWhitelist: \"www.aliyun.com:203.0.3.55\",\n            pageTamper: \"www.aliyun.com:|/cc/bb/a.gif\",\n            flowHijackJumpTimes: 10,\n            customHeader: 1,\n            disableCache: 1,\n            verifyStringWhitelist: \"Senyuan\",\n            targetUrl: \"http://www.aliyun.com\",\n            automaticScrolling: 1,\n            waitCompletionTime: 5005,\n            flowHijackLogo: \"senyuan1\",\n            customHeaderContent: {\n                key1: \"value1\",\n            },\n            filterInvalidIp: 0,\n        },\n        fileDownload: {\n            whiteList: \"www.aliyun.com:203.0.3.55\",\n            monitorTimeout: 1050,\n            ignoreCertificateUntrustworthyError: 0,\n            redirection: 0,\n            ignoreCertificateCanceledError: 0,\n            ignoreCertificateAuthError: 0,\n            ignoreCertificateOutOfDateError: 0,\n            ignoreCertificateUsingError: 0,\n            connectionTimeout: 6090,\n            ignoreInvalidHostError: 0,\n            verifyWay: 0,\n            customHeaderContent: {\n                key1: \"value1\",\n            },\n            targetUrl: \"https://www.aliyun.com\",\n            downloadKernel: 0,\n            quickProtocol: 2,\n            ignoreCertificateStatusError: 1,\n            transmissionSize: 128,\n            validateKeywords: \"senyuan1\",\n        },\n        stream: {\n            streamMonitorTimeout: 10,\n            streamAddressType: 0,\n            playerType: 2,\n            customHeaderContent: {\n                key1: \"value1\",\n            },\n            whiteList: \"www.aliyun.com:203.0.3.55\",\n            targetUrl: \"https://acd-assets.alicdn.com:443/2021productweek/week1_s.mp4\",\n            streamType: 1,\n        },\n        netIcmp: {\n            targetUrl: \"www.aliyun.com\",\n            interval: 200,\n            packageNum: 36,\n            packageSize: 512,\n            timeout: 1000,\n            tracertEnable: true,\n            tracertNumMax: 1,\n            tracertTimeout: 1200,\n        },\n    },\n    taskType: 1,\n    frequency: \"1h\",\n    monitorCategory: 1,\n    commonSetting: {\n        xtraceRegion: \"cn-beijing\",\n        customHost: {\n            hosts: [\n                {\n                    domain: \"www.a.aliyun.com\",\n                    ips: [\"153.3.238.102\"],\n                    ipType: 0,\n                },\n                {\n                    domain: \"www.shifen.com\",\n                    ips: [\n                        \"153.3.238.110\",\n                        \"114.114.114.114\",\n                        \"127.0.0.1\",\n                    ],\n                    ipType: 1,\n                },\n                {\n                    domain: \"www.aliyun.com\",\n                    ips: [\n                        \"153.3.238.110\",\n                        \"180.101.50.242\",\n                        \"180.101.50.188\",\n                    ],\n                    ipType: 0,\n                },\n            ],\n            selectType: 1,\n        },\n        monitorSamples: 1,\n        ipType: 1,\n        isOpenTrace: true,\n        traceClientType: 1,\n    },\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_synthetic_task = alicloud.arms.SyntheticTask(\"default\",\n    monitors=[{\n        \"city_code\": \"1200101\",\n        \"operator_code\": \"246\",\n        \"client_type\": 4,\n    }],\n    synthetic_task_name=name,\n    custom_period={\n        \"end_hour\": 12,\n        \"start_hour\": 11,\n    },\n    available_assertions=[\n        {\n            \"type\": \"IcmpPackLoss\",\n            \"operator\": \"neq\",\n            \"expect\": \"200\",\n            \"target\": \"example\",\n        },\n        {\n            \"type\": \"IcmpPackAvgLatency\",\n            \"operator\": \"lte\",\n            \"expect\": \"1000\",\n        },\n        {\n            \"type\": \"IcmpPackMaxLatency\",\n            \"operator\": \"lte\",\n            \"expect\": \"10000\",\n        },\n    ],\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    status=\"RUNNING\",\n    monitor_conf={\n        \"net_tcp\": {\n            \"tracert_timeout\": 1050,\n            \"target_url\": \"www.aliyun.com\",\n            \"connect_times\": 6,\n            \"interval\": 300,\n            \"timeout\": 3000,\n            \"tracert_num_max\": 2,\n        },\n        \"net_dns\": {\n            \"query_method\": 1,\n            \"timeout\": 5050,\n            \"target_url\": \"www.aliyun.com\",\n            \"dns_server_ip_type\": 1,\n            \"ns_server\": \"61.128.114.167\",\n        },\n        \"api_http\": {\n            \"timeout\": 10050,\n            \"target_url\": \"https://www.aliyun.com\",\n            \"method\": \"POST\",\n            \"request_headers\": {\n                \"key1\": \"value1\",\n            },\n            \"request_body\": {\n                \"content\": \"example2\",\n                \"type\": \"text/html\",\n            },\n            \"connect_timeout\": 6000,\n        },\n        \"website\": {\n            \"slow_element_threshold\": 5005,\n            \"verify_string_blacklist\": \"Failed\",\n            \"element_blacklist\": \"a.jpg\",\n            \"disable_compression\": 1,\n            \"ignore_certificate_error\": 0,\n            \"monitor_timeout\": 20000,\n            \"redirection\": 0,\n            \"dns_hijack_whitelist\": \"www.aliyun.com:203.0.3.55\",\n            \"page_tamper\": \"www.aliyun.com:|/cc/bb/a.gif\",\n            \"flow_hijack_jump_times\": 10,\n            \"custom_header\": 1,\n            \"disable_cache\": 1,\n            \"verify_string_whitelist\": \"Senyuan\",\n            \"target_url\": \"http://www.aliyun.com\",\n            \"automatic_scrolling\": 1,\n            \"wait_completion_time\": 5005,\n            \"flow_hijack_logo\": \"senyuan1\",\n            \"custom_header_content\": {\n                \"key1\": \"value1\",\n            },\n            \"filter_invalid_ip\": 0,\n        },\n        \"file_download\": {\n            \"white_list\": \"www.aliyun.com:203.0.3.55\",\n            \"monitor_timeout\": 1050,\n            \"ignore_certificate_untrustworthy_error\": 0,\n            \"redirection\": 0,\n            \"ignore_certificate_canceled_error\": 0,\n            \"ignore_certificate_auth_error\": 0,\n            \"ignore_certificate_out_of_date_error\": 0,\n            \"ignore_certificate_using_error\": 0,\n            \"connection_timeout\": 6090,\n            \"ignore_invalid_host_error\": 0,\n            \"verify_way\": 0,\n            \"custom_header_content\": {\n                \"key1\": \"value1\",\n            },\n            \"target_url\": \"https://www.aliyun.com\",\n            \"download_kernel\": 0,\n            \"quick_protocol\": 2,\n            \"ignore_certificate_status_error\": 1,\n            \"transmission_size\": 128,\n            \"validate_keywords\": \"senyuan1\",\n        },\n        \"stream\": {\n            \"stream_monitor_timeout\": 10,\n            \"stream_address_type\": 0,\n            \"player_type\": 2,\n            \"custom_header_content\": {\n                \"key1\": \"value1\",\n            },\n            \"white_list\": \"www.aliyun.com:203.0.3.55\",\n            \"target_url\": \"https://acd-assets.alicdn.com:443/2021productweek/week1_s.mp4\",\n            \"stream_type\": 1,\n        },\n        \"net_icmp\": {\n            \"target_url\": \"www.aliyun.com\",\n            \"interval\": 200,\n            \"package_num\": 36,\n            \"package_size\": 512,\n            \"timeout\": 1000,\n            \"tracert_enable\": True,\n            \"tracert_num_max\": 1,\n            \"tracert_timeout\": 1200,\n        },\n    },\n    task_type=1,\n    frequency=\"1h\",\n    monitor_category=1,\n    common_setting={\n        \"xtrace_region\": \"cn-beijing\",\n        \"custom_host\": {\n            \"hosts\": [\n                {\n                    \"domain\": \"www.a.aliyun.com\",\n                    \"ips\": [\"153.3.238.102\"],\n                    \"ip_type\": 0,\n                },\n                {\n                    \"domain\": \"www.shifen.com\",\n                    \"ips\": [\n                        \"153.3.238.110\",\n                        \"114.114.114.114\",\n                        \"127.0.0.1\",\n                    ],\n                    \"ip_type\": 1,\n                },\n                {\n                    \"domain\": \"www.aliyun.com\",\n                    \"ips\": [\n                        \"153.3.238.110\",\n                        \"180.101.50.242\",\n                        \"180.101.50.188\",\n                    ],\n                    \"ip_type\": 0,\n                },\n            ],\n            \"select_type\": 1,\n        },\n        \"monitor_samples\": 1,\n        \"ip_type\": 1,\n        \"is_open_trace\": True,\n        \"trace_client_type\": 1,\n    },\n    resource_group_id=default.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultSyntheticTask = new AliCloud.Arms.SyntheticTask(\"default\", new()\n    {\n        Monitors = new[]\n        {\n            new AliCloud.Arms.Inputs.SyntheticTaskMonitorArgs\n            {\n                CityCode = \"1200101\",\n                OperatorCode = \"246\",\n                ClientType = 4,\n            },\n        },\n        SyntheticTaskName = name,\n        CustomPeriod = new AliCloud.Arms.Inputs.SyntheticTaskCustomPeriodArgs\n        {\n            EndHour = 12,\n            StartHour = 11,\n        },\n        AvailableAssertions = new[]\n        {\n            new AliCloud.Arms.Inputs.SyntheticTaskAvailableAssertionArgs\n            {\n                Type = \"IcmpPackLoss\",\n                Operator = \"neq\",\n                Expect = \"200\",\n                Target = \"example\",\n            },\n            new AliCloud.Arms.Inputs.SyntheticTaskAvailableAssertionArgs\n            {\n                Type = \"IcmpPackAvgLatency\",\n                Operator = \"lte\",\n                Expect = \"1000\",\n            },\n            new AliCloud.Arms.Inputs.SyntheticTaskAvailableAssertionArgs\n            {\n                Type = \"IcmpPackMaxLatency\",\n                Operator = \"lte\",\n                Expect = \"10000\",\n            },\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        Status = \"RUNNING\",\n        MonitorConf = new AliCloud.Arms.Inputs.SyntheticTaskMonitorConfArgs\n        {\n            NetTcp = new AliCloud.Arms.Inputs.SyntheticTaskMonitorConfNetTcpArgs\n            {\n                TracertTimeout = 1050,\n                TargetUrl = \"www.aliyun.com\",\n                ConnectTimes = 6,\n                Interval = 300,\n                Timeout = 3000,\n                TracertNumMax = 2,\n            },\n            NetDns = new AliCloud.Arms.Inputs.SyntheticTaskMonitorConfNetDnsArgs\n            {\n                QueryMethod = 1,\n                Timeout = 5050,\n                TargetUrl = \"www.aliyun.com\",\n                DnsServerIpType = 1,\n                NsServer = \"61.128.114.167\",\n            },\n            ApiHttp = new AliCloud.Arms.Inputs.SyntheticTaskMonitorConfApiHttpArgs\n            {\n                Timeout = 10050,\n                TargetUrl = \"https://www.aliyun.com\",\n                Method = \"POST\",\n                RequestHeaders = \n                {\n                    { \"key1\", \"value1\" },\n                },\n                RequestBody = new AliCloud.Arms.Inputs.SyntheticTaskMonitorConfApiHttpRequestBodyArgs\n                {\n                    Content = \"example2\",\n                    Type = \"text/html\",\n                },\n                ConnectTimeout = 6000,\n            },\n            Website = new AliCloud.Arms.Inputs.SyntheticTaskMonitorConfWebsiteArgs\n            {\n                SlowElementThreshold = 5005,\n                VerifyStringBlacklist = \"Failed\",\n                ElementBlacklist = \"a.jpg\",\n                DisableCompression = 1,\n                IgnoreCertificateError = 0,\n                MonitorTimeout = 20000,\n                Redirection = 0,\n                DnsHijackWhitelist = \"www.aliyun.com:203.0.3.55\",\n                PageTamper = \"www.aliyun.com:|/cc/bb/a.gif\",\n                FlowHijackJumpTimes = 10,\n                CustomHeader = 1,\n                DisableCache = 1,\n                VerifyStringWhitelist = \"Senyuan\",\n                TargetUrl = \"http://www.aliyun.com\",\n                AutomaticScrolling = 1,\n                WaitCompletionTime = 5005,\n                FlowHijackLogo = \"senyuan1\",\n                CustomHeaderContent = \n                {\n                    { \"key1\", \"value1\" },\n                },\n                FilterInvalidIp = 0,\n            },\n            FileDownload = new AliCloud.Arms.Inputs.SyntheticTaskMonitorConfFileDownloadArgs\n            {\n                WhiteList = \"www.aliyun.com:203.0.3.55\",\n                MonitorTimeout = 1050,\n                IgnoreCertificateUntrustworthyError = 0,\n                Redirection = 0,\n                IgnoreCertificateCanceledError = 0,\n                IgnoreCertificateAuthError = 0,\n                IgnoreCertificateOutOfDateError = 0,\n                IgnoreCertificateUsingError = 0,\n                ConnectionTimeout = 6090,\n                IgnoreInvalidHostError = 0,\n                VerifyWay = 0,\n                CustomHeaderContent = \n                {\n                    { \"key1\", \"value1\" },\n                },\n                TargetUrl = \"https://www.aliyun.com\",\n                DownloadKernel = 0,\n                QuickProtocol = 2,\n                IgnoreCertificateStatusError = 1,\n                TransmissionSize = 128,\n                ValidateKeywords = \"senyuan1\",\n            },\n            Stream = new AliCloud.Arms.Inputs.SyntheticTaskMonitorConfStreamArgs\n            {\n                StreamMonitorTimeout = 10,\n                StreamAddressType = 0,\n                PlayerType = 2,\n                CustomHeaderContent = \n                {\n                    { \"key1\", \"value1\" },\n                },\n                WhiteList = \"www.aliyun.com:203.0.3.55\",\n                TargetUrl = \"https://acd-assets.alicdn.com:443/2021productweek/week1_s.mp4\",\n                StreamType = 1,\n            },\n            NetIcmp = new AliCloud.Arms.Inputs.SyntheticTaskMonitorConfNetIcmpArgs\n            {\n                TargetUrl = \"www.aliyun.com\",\n                Interval = 200,\n                PackageNum = 36,\n                PackageSize = 512,\n                Timeout = 1000,\n                TracertEnable = true,\n                TracertNumMax = 1,\n                TracertTimeout = 1200,\n            },\n        },\n        TaskType = 1,\n        Frequency = \"1h\",\n        MonitorCategory = 1,\n        CommonSetting = new AliCloud.Arms.Inputs.SyntheticTaskCommonSettingArgs\n        {\n            XtraceRegion = \"cn-beijing\",\n            CustomHost = new AliCloud.Arms.Inputs.SyntheticTaskCommonSettingCustomHostArgs\n            {\n                Hosts = new[]\n                {\n                    new AliCloud.Arms.Inputs.SyntheticTaskCommonSettingCustomHostHostArgs\n                    {\n                        Domain = \"www.a.aliyun.com\",\n                        Ips = new[]\n                        {\n                            \"153.3.238.102\",\n                        },\n                        IpType = 0,\n                    },\n                    new AliCloud.Arms.Inputs.SyntheticTaskCommonSettingCustomHostHostArgs\n                    {\n                        Domain = \"www.shifen.com\",\n                        Ips = new[]\n                        {\n                            \"153.3.238.110\",\n                            \"114.114.114.114\",\n                            \"127.0.0.1\",\n                        },\n                        IpType = 1,\n                    },\n                    new AliCloud.Arms.Inputs.SyntheticTaskCommonSettingCustomHostHostArgs\n                    {\n                        Domain = \"www.aliyun.com\",\n                        Ips = new[]\n                        {\n                            \"153.3.238.110\",\n                            \"180.101.50.242\",\n                            \"180.101.50.188\",\n                        },\n                        IpType = 0,\n                    },\n                },\n                SelectType = 1,\n            },\n            MonitorSamples = 1,\n            IpType = 1,\n            IsOpenTrace = true,\n            TraceClientType = 1,\n        },\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = arms.NewSyntheticTask(ctx, \"default\", \u0026arms.SyntheticTaskArgs{\n\t\t\tMonitors: arms.SyntheticTaskMonitorArray{\n\t\t\t\t\u0026arms.SyntheticTaskMonitorArgs{\n\t\t\t\t\tCityCode:     pulumi.String(\"1200101\"),\n\t\t\t\t\tOperatorCode: pulumi.String(\"246\"),\n\t\t\t\t\tClientType:   pulumi.Int(4),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSyntheticTaskName: pulumi.String(name),\n\t\t\tCustomPeriod: \u0026arms.SyntheticTaskCustomPeriodArgs{\n\t\t\t\tEndHour:   pulumi.Int(12),\n\t\t\t\tStartHour: pulumi.Int(11),\n\t\t\t},\n\t\t\tAvailableAssertions: arms.SyntheticTaskAvailableAssertionArray{\n\t\t\t\t\u0026arms.SyntheticTaskAvailableAssertionArgs{\n\t\t\t\t\tType:     pulumi.String(\"IcmpPackLoss\"),\n\t\t\t\t\tOperator: pulumi.String(\"neq\"),\n\t\t\t\t\tExpect:   pulumi.String(\"200\"),\n\t\t\t\t\tTarget:   pulumi.String(\"example\"),\n\t\t\t\t},\n\t\t\t\t\u0026arms.SyntheticTaskAvailableAssertionArgs{\n\t\t\t\t\tType:     pulumi.String(\"IcmpPackAvgLatency\"),\n\t\t\t\t\tOperator: pulumi.String(\"lte\"),\n\t\t\t\t\tExpect:   pulumi.String(\"1000\"),\n\t\t\t\t},\n\t\t\t\t\u0026arms.SyntheticTaskAvailableAssertionArgs{\n\t\t\t\t\tType:     pulumi.String(\"IcmpPackMaxLatency\"),\n\t\t\t\t\tOperator: pulumi.String(\"lte\"),\n\t\t\t\t\tExpect:   pulumi.String(\"10000\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tStatus: pulumi.String(\"RUNNING\"),\n\t\t\tMonitorConf: \u0026arms.SyntheticTaskMonitorConfArgs{\n\t\t\t\tNetTcp: \u0026arms.SyntheticTaskMonitorConfNetTcpArgs{\n\t\t\t\t\tTracertTimeout: pulumi.Int(1050),\n\t\t\t\t\tTargetUrl:      pulumi.String(\"www.aliyun.com\"),\n\t\t\t\t\tConnectTimes:   pulumi.Int(6),\n\t\t\t\t\tInterval:       pulumi.Int(300),\n\t\t\t\t\tTimeout:        pulumi.Int(3000),\n\t\t\t\t\tTracertNumMax:  pulumi.Int(2),\n\t\t\t\t},\n\t\t\t\tNetDns: \u0026arms.SyntheticTaskMonitorConfNetDnsArgs{\n\t\t\t\t\tQueryMethod:     pulumi.Int(1),\n\t\t\t\t\tTimeout:         pulumi.Int(5050),\n\t\t\t\t\tTargetUrl:       pulumi.String(\"www.aliyun.com\"),\n\t\t\t\t\tDnsServerIpType: pulumi.Int(1),\n\t\t\t\t\tNsServer:        pulumi.String(\"61.128.114.167\"),\n\t\t\t\t},\n\t\t\t\tApiHttp: \u0026arms.SyntheticTaskMonitorConfApiHttpArgs{\n\t\t\t\t\tTimeout:   pulumi.Int(10050),\n\t\t\t\t\tTargetUrl: pulumi.String(\"https://www.aliyun.com\"),\n\t\t\t\t\tMethod:    pulumi.String(\"POST\"),\n\t\t\t\t\tRequestHeaders: pulumi.StringMap{\n\t\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\n\t\t\t\t\tRequestBody: \u0026arms.SyntheticTaskMonitorConfApiHttpRequestBodyArgs{\n\t\t\t\t\t\tContent: pulumi.String(\"example2\"),\n\t\t\t\t\t\tType:    pulumi.String(\"text/html\"),\n\t\t\t\t\t},\n\t\t\t\t\tConnectTimeout: pulumi.Int(6000),\n\t\t\t\t},\n\t\t\t\tWebsite: \u0026arms.SyntheticTaskMonitorConfWebsiteArgs{\n\t\t\t\t\tSlowElementThreshold:   pulumi.Int(5005),\n\t\t\t\t\tVerifyStringBlacklist:  pulumi.String(\"Failed\"),\n\t\t\t\t\tElementBlacklist:       pulumi.String(\"a.jpg\"),\n\t\t\t\t\tDisableCompression:     pulumi.Int(1),\n\t\t\t\t\tIgnoreCertificateError: pulumi.Int(0),\n\t\t\t\t\tMonitorTimeout:         pulumi.Int(20000),\n\t\t\t\t\tRedirection:            pulumi.Int(0),\n\t\t\t\t\tDnsHijackWhitelist:     pulumi.String(\"www.aliyun.com:203.0.3.55\"),\n\t\t\t\t\tPageTamper:             pulumi.String(\"www.aliyun.com:|/cc/bb/a.gif\"),\n\t\t\t\t\tFlowHijackJumpTimes:    pulumi.Int(10),\n\t\t\t\t\tCustomHeader:           pulumi.Int(1),\n\t\t\t\t\tDisableCache:           pulumi.Int(1),\n\t\t\t\t\tVerifyStringWhitelist:  pulumi.String(\"Senyuan\"),\n\t\t\t\t\tTargetUrl:              pulumi.String(\"http://www.aliyun.com\"),\n\t\t\t\t\tAutomaticScrolling:     pulumi.Int(1),\n\t\t\t\t\tWaitCompletionTime:     pulumi.Int(5005),\n\t\t\t\t\tFlowHijackLogo:         pulumi.String(\"senyuan1\"),\n\t\t\t\t\tCustomHeaderContent: pulumi.StringMap{\n\t\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\n\t\t\t\t\tFilterInvalidIp: pulumi.Int(0),\n\t\t\t\t},\n\t\t\t\tFileDownload: \u0026arms.SyntheticTaskMonitorConfFileDownloadArgs{\n\t\t\t\t\tWhiteList:                           pulumi.String(\"www.aliyun.com:203.0.3.55\"),\n\t\t\t\t\tMonitorTimeout:                      pulumi.Int(1050),\n\t\t\t\t\tIgnoreCertificateUntrustworthyError: pulumi.Int(0),\n\t\t\t\t\tRedirection:                         pulumi.Int(0),\n\t\t\t\t\tIgnoreCertificateCanceledError:      pulumi.Int(0),\n\t\t\t\t\tIgnoreCertificateAuthError:          pulumi.Int(0),\n\t\t\t\t\tIgnoreCertificateOutOfDateError:     pulumi.Int(0),\n\t\t\t\t\tIgnoreCertificateUsingError:         pulumi.Int(0),\n\t\t\t\t\tConnectionTimeout:                   pulumi.Int(6090),\n\t\t\t\t\tIgnoreInvalidHostError:              pulumi.Int(0),\n\t\t\t\t\tVerifyWay:                           pulumi.Int(0),\n\t\t\t\t\tCustomHeaderContent: pulumi.StringMap{\n\t\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\n\t\t\t\t\tTargetUrl:                    pulumi.String(\"https://www.aliyun.com\"),\n\t\t\t\t\tDownloadKernel:               pulumi.Int(0),\n\t\t\t\t\tQuickProtocol:                pulumi.Int(2),\n\t\t\t\t\tIgnoreCertificateStatusError: pulumi.Int(1),\n\t\t\t\t\tTransmissionSize:             pulumi.Int(128),\n\t\t\t\t\tValidateKeywords:             pulumi.String(\"senyuan1\"),\n\t\t\t\t},\n\t\t\t\tStream: \u0026arms.SyntheticTaskMonitorConfStreamArgs{\n\t\t\t\t\tStreamMonitorTimeout: pulumi.Int(10),\n\t\t\t\t\tStreamAddressType:    pulumi.Int(0),\n\t\t\t\t\tPlayerType:           pulumi.Int(2),\n\t\t\t\t\tCustomHeaderContent: pulumi.StringMap{\n\t\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\n\t\t\t\t\tWhiteList:  pulumi.String(\"www.aliyun.com:203.0.3.55\"),\n\t\t\t\t\tTargetUrl:  pulumi.String(\"https://acd-assets.alicdn.com:443/2021productweek/week1_s.mp4\"),\n\t\t\t\t\tStreamType: pulumi.Int(1),\n\t\t\t\t},\n\t\t\t\tNetIcmp: \u0026arms.SyntheticTaskMonitorConfNetIcmpArgs{\n\t\t\t\t\tTargetUrl:      pulumi.String(\"www.aliyun.com\"),\n\t\t\t\t\tInterval:       pulumi.Int(200),\n\t\t\t\t\tPackageNum:     pulumi.Int(36),\n\t\t\t\t\tPackageSize:    pulumi.Int(512),\n\t\t\t\t\tTimeout:        pulumi.Int(1000),\n\t\t\t\t\tTracertEnable:  pulumi.Bool(true),\n\t\t\t\t\tTracertNumMax:  pulumi.Int(1),\n\t\t\t\t\tTracertTimeout: pulumi.Int(1200),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTaskType:        pulumi.Int(1),\n\t\t\tFrequency:       pulumi.String(\"1h\"),\n\t\t\tMonitorCategory: pulumi.Int(1),\n\t\t\tCommonSetting: \u0026arms.SyntheticTaskCommonSettingArgs{\n\t\t\t\tXtraceRegion: pulumi.String(\"cn-beijing\"),\n\t\t\t\tCustomHost: \u0026arms.SyntheticTaskCommonSettingCustomHostArgs{\n\t\t\t\t\tHosts: arms.SyntheticTaskCommonSettingCustomHostHostArray{\n\t\t\t\t\t\t\u0026arms.SyntheticTaskCommonSettingCustomHostHostArgs{\n\t\t\t\t\t\t\tDomain: pulumi.String(\"www.a.aliyun.com\"),\n\t\t\t\t\t\t\tIps: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"153.3.238.102\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tIpType: pulumi.Int(0),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026arms.SyntheticTaskCommonSettingCustomHostHostArgs{\n\t\t\t\t\t\t\tDomain: pulumi.String(\"www.shifen.com\"),\n\t\t\t\t\t\t\tIps: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"153.3.238.110\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"114.114.114.114\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"127.0.0.1\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tIpType: pulumi.Int(1),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026arms.SyntheticTaskCommonSettingCustomHostHostArgs{\n\t\t\t\t\t\t\tDomain: pulumi.String(\"www.aliyun.com\"),\n\t\t\t\t\t\t\tIps: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"153.3.238.110\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"180.101.50.242\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"180.101.50.188\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tIpType: pulumi.Int(0),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tSelectType: pulumi.Int(1),\n\t\t\t\t},\n\t\t\t\tMonitorSamples:  pulumi.Int(1),\n\t\t\t\tIpType:          pulumi.Int(1),\n\t\t\t\tIsOpenTrace:     pulumi.Bool(true),\n\t\t\t\tTraceClientType: pulumi.Int(1),\n\t\t\t},\n\t\t\tResourceGroupId: pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.arms.SyntheticTask;\nimport com.pulumi.alicloud.arms.SyntheticTaskArgs;\nimport com.pulumi.alicloud.arms.inputs.SyntheticTaskMonitorArgs;\nimport com.pulumi.alicloud.arms.inputs.SyntheticTaskCustomPeriodArgs;\nimport com.pulumi.alicloud.arms.inputs.SyntheticTaskAvailableAssertionArgs;\nimport com.pulumi.alicloud.arms.inputs.SyntheticTaskMonitorConfArgs;\nimport com.pulumi.alicloud.arms.inputs.SyntheticTaskMonitorConfNetTcpArgs;\nimport com.pulumi.alicloud.arms.inputs.SyntheticTaskMonitorConfNetDnsArgs;\nimport com.pulumi.alicloud.arms.inputs.SyntheticTaskMonitorConfApiHttpArgs;\nimport com.pulumi.alicloud.arms.inputs.SyntheticTaskMonitorConfApiHttpRequestBodyArgs;\nimport com.pulumi.alicloud.arms.inputs.SyntheticTaskMonitorConfWebsiteArgs;\nimport com.pulumi.alicloud.arms.inputs.SyntheticTaskMonitorConfFileDownloadArgs;\nimport com.pulumi.alicloud.arms.inputs.SyntheticTaskMonitorConfStreamArgs;\nimport com.pulumi.alicloud.arms.inputs.SyntheticTaskMonitorConfNetIcmpArgs;\nimport com.pulumi.alicloud.arms.inputs.SyntheticTaskCommonSettingArgs;\nimport com.pulumi.alicloud.arms.inputs.SyntheticTaskCommonSettingCustomHostArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultSyntheticTask = new SyntheticTask(\"defaultSyntheticTask\", SyntheticTaskArgs.builder()\n            .monitors(SyntheticTaskMonitorArgs.builder()\n                .cityCode(\"1200101\")\n                .operatorCode(\"246\")\n                .clientType(4)\n                .build())\n            .syntheticTaskName(name)\n            .customPeriod(SyntheticTaskCustomPeriodArgs.builder()\n                .endHour(12)\n                .startHour(11)\n                .build())\n            .availableAssertions(            \n                SyntheticTaskAvailableAssertionArgs.builder()\n                    .type(\"IcmpPackLoss\")\n                    .operator(\"neq\")\n                    .expect(\"200\")\n                    .target(\"example\")\n                    .build(),\n                SyntheticTaskAvailableAssertionArgs.builder()\n                    .type(\"IcmpPackAvgLatency\")\n                    .operator(\"lte\")\n                    .expect(\"1000\")\n                    .build(),\n                SyntheticTaskAvailableAssertionArgs.builder()\n                    .type(\"IcmpPackMaxLatency\")\n                    .operator(\"lte\")\n                    .expect(\"10000\")\n                    .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .status(\"RUNNING\")\n            .monitorConf(SyntheticTaskMonitorConfArgs.builder()\n                .netTcp(SyntheticTaskMonitorConfNetTcpArgs.builder()\n                    .tracertTimeout(1050)\n                    .targetUrl(\"www.aliyun.com\")\n                    .connectTimes(6)\n                    .interval(300)\n                    .timeout(3000)\n                    .tracertNumMax(2)\n                    .build())\n                .netDns(SyntheticTaskMonitorConfNetDnsArgs.builder()\n                    .queryMethod(1)\n                    .timeout(5050)\n                    .targetUrl(\"www.aliyun.com\")\n                    .dnsServerIpType(1)\n                    .nsServer(\"61.128.114.167\")\n                    .build())\n                .apiHttp(SyntheticTaskMonitorConfApiHttpArgs.builder()\n                    .timeout(10050)\n                    .targetUrl(\"https://www.aliyun.com\")\n                    .method(\"POST\")\n                    .requestHeaders(Map.of(\"key1\", \"value1\"))\n                    .requestBody(SyntheticTaskMonitorConfApiHttpRequestBodyArgs.builder()\n                        .content(\"example2\")\n                        .type(\"text/html\")\n                        .build())\n                    .connectTimeout(6000)\n                    .build())\n                .website(SyntheticTaskMonitorConfWebsiteArgs.builder()\n                    .slowElementThreshold(5005)\n                    .verifyStringBlacklist(\"Failed\")\n                    .elementBlacklist(\"a.jpg\")\n                    .disableCompression(1)\n                    .ignoreCertificateError(0)\n                    .monitorTimeout(20000)\n                    .redirection(0)\n                    .dnsHijackWhitelist(\"www.aliyun.com:203.0.3.55\")\n                    .pageTamper(\"www.aliyun.com:|/cc/bb/a.gif\")\n                    .flowHijackJumpTimes(10)\n                    .customHeader(1)\n                    .disableCache(1)\n                    .verifyStringWhitelist(\"Senyuan\")\n                    .targetUrl(\"http://www.aliyun.com\")\n                    .automaticScrolling(1)\n                    .waitCompletionTime(5005)\n                    .flowHijackLogo(\"senyuan1\")\n                    .customHeaderContent(Map.of(\"key1\", \"value1\"))\n                    .filterInvalidIp(0)\n                    .build())\n                .fileDownload(SyntheticTaskMonitorConfFileDownloadArgs.builder()\n                    .whiteList(\"www.aliyun.com:203.0.3.55\")\n                    .monitorTimeout(1050)\n                    .ignoreCertificateUntrustworthyError(0)\n                    .redirection(0)\n                    .ignoreCertificateCanceledError(0)\n                    .ignoreCertificateAuthError(0)\n                    .ignoreCertificateOutOfDateError(0)\n                    .ignoreCertificateUsingError(0)\n                    .connectionTimeout(6090)\n                    .ignoreInvalidHostError(0)\n                    .verifyWay(0)\n                    .customHeaderContent(Map.of(\"key1\", \"value1\"))\n                    .targetUrl(\"https://www.aliyun.com\")\n                    .downloadKernel(0)\n                    .quickProtocol(2)\n                    .ignoreCertificateStatusError(1)\n                    .transmissionSize(128)\n                    .validateKeywords(\"senyuan1\")\n                    .build())\n                .stream(SyntheticTaskMonitorConfStreamArgs.builder()\n                    .streamMonitorTimeout(10)\n                    .streamAddressType(0)\n                    .playerType(2)\n                    .customHeaderContent(Map.of(\"key1\", \"value1\"))\n                    .whiteList(\"www.aliyun.com:203.0.3.55\")\n                    .targetUrl(\"https://acd-assets.alicdn.com:443/2021productweek/week1_s.mp4\")\n                    .streamType(1)\n                    .build())\n                .netIcmp(SyntheticTaskMonitorConfNetIcmpArgs.builder()\n                    .targetUrl(\"www.aliyun.com\")\n                    .interval(200)\n                    .packageNum(36)\n                    .packageSize(512)\n                    .timeout(1000)\n                    .tracertEnable(true)\n                    .tracertNumMax(1)\n                    .tracertTimeout(1200)\n                    .build())\n                .build())\n            .taskType(1)\n            .frequency(\"1h\")\n            .monitorCategory(1)\n            .commonSetting(SyntheticTaskCommonSettingArgs.builder()\n                .xtraceRegion(\"cn-beijing\")\n                .customHost(SyntheticTaskCommonSettingCustomHostArgs.builder()\n                    .hosts(                    \n                        SyntheticTaskCommonSettingCustomHostHostArgs.builder()\n                            .domain(\"www.a.aliyun.com\")\n                            .ips(\"153.3.238.102\")\n                            .ipType(0)\n                            .build(),\n                        SyntheticTaskCommonSettingCustomHostHostArgs.builder()\n                            .domain(\"www.shifen.com\")\n                            .ips(                            \n                                \"153.3.238.110\",\n                                \"114.114.114.114\",\n                                \"127.0.0.1\")\n                            .ipType(1)\n                            .build(),\n                        SyntheticTaskCommonSettingCustomHostHostArgs.builder()\n                            .domain(\"www.aliyun.com\")\n                            .ips(                            \n                                \"153.3.238.110\",\n                                \"180.101.50.242\",\n                                \"180.101.50.188\")\n                            .ipType(0)\n                            .build())\n                    .selectType(1)\n                    .build())\n                .monitorSamples(1)\n                .ipType(1)\n                .isOpenTrace(true)\n                .traceClientType(1)\n                .build())\n            .resourceGroupId(default_.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultSyntheticTask:\n    type: alicloud:arms:SyntheticTask\n    name: default\n    properties:\n      monitors:\n        - cityCode: '1200101'\n          operatorCode: '246'\n          clientType: '4'\n      syntheticTaskName: ${name}\n      customPeriod:\n        endHour: '12'\n        startHour: '11'\n      availableAssertions:\n        - type: IcmpPackLoss\n          operator: neq\n          expect: '200'\n          target: example\n        - type: IcmpPackAvgLatency\n          operator: lte\n          expect: '1000'\n        - type: IcmpPackMaxLatency\n          operator: lte\n          expect: '10000'\n      tags:\n        Created: TF\n        For: example\n      status: RUNNING\n      monitorConf:\n        netTcp:\n          tracertTimeout: '1050'\n          targetUrl: www.aliyun.com\n          connectTimes: '6'\n          interval: '300'\n          timeout: '3000'\n          tracertNumMax: '2'\n        netDns:\n          queryMethod: '1'\n          timeout: '5050'\n          targetUrl: www.aliyun.com\n          dnsServerIpType: '1'\n          nsServer: 61.128.114.167\n        apiHttp:\n          timeout: '10050'\n          targetUrl: https://www.aliyun.com\n          method: POST\n          requestHeaders:\n            key1: value1\n          requestBody:\n            content: example2\n            type: text/html\n          connectTimeout: '6000'\n        website:\n          slowElementThreshold: '5005'\n          verifyStringBlacklist: Failed\n          elementBlacklist: a.jpg\n          disableCompression: '1'\n          ignoreCertificateError: '0'\n          monitorTimeout: '20000'\n          redirection: '0'\n          dnsHijackWhitelist: www.aliyun.com:203.0.3.55\n          pageTamper: www.aliyun.com:|/cc/bb/a.gif\n          flowHijackJumpTimes: '10'\n          customHeader: '1'\n          disableCache: '1'\n          verifyStringWhitelist: Senyuan\n          targetUrl: http://www.aliyun.com\n          automaticScrolling: '1'\n          waitCompletionTime: '5005'\n          flowHijackLogo: senyuan1\n          customHeaderContent:\n            key1: value1\n          filterInvalidIp: '0'\n        fileDownload:\n          whiteList: www.aliyun.com:203.0.3.55\n          monitorTimeout: '1050'\n          ignoreCertificateUntrustworthyError: '0'\n          redirection: '0'\n          ignoreCertificateCanceledError: '0'\n          ignoreCertificateAuthError: '0'\n          ignoreCertificateOutOfDateError: '0'\n          ignoreCertificateUsingError: '0'\n          connectionTimeout: '6090'\n          ignoreInvalidHostError: '0'\n          verifyWay: '0'\n          customHeaderContent:\n            key1: value1\n          targetUrl: https://www.aliyun.com\n          downloadKernel: '0'\n          quickProtocol: '2'\n          ignoreCertificateStatusError: '1'\n          transmissionSize: '128'\n          validateKeywords: senyuan1\n        stream:\n          streamMonitorTimeout: '10'\n          streamAddressType: '0'\n          playerType: '2'\n          customHeaderContent:\n            key1: value1\n          whiteList: www.aliyun.com:203.0.3.55\n          targetUrl: https://acd-assets.alicdn.com:443/2021productweek/week1_s.mp4\n          streamType: '1'\n        netIcmp:\n          targetUrl: www.aliyun.com\n          interval: '200'\n          packageNum: '36'\n          packageSize: '512'\n          timeout: '1000'\n          tracertEnable: 'true'\n          tracertNumMax: '1'\n          tracertTimeout: '1200'\n      taskType: '1'\n      frequency: 1h\n      monitorCategory: '1'\n      commonSetting:\n        xtraceRegion: cn-beijing\n        customHost:\n          hosts:\n            - domain: www.a.aliyun.com\n              ips:\n                - 153.3.238.102\n              ipType: '0'\n            - domain: www.shifen.com\n              ips:\n                - 153.3.238.110\n                - 114.114.114.114\n                - 127.0.0.1\n              ipType: '1'\n            - domain: www.aliyun.com\n              ips:\n                - 153.3.238.110\n                - 180.101.50.242\n                - 180.101.50.188\n              ipType: '0'\n          selectType: '1'\n        monitorSamples: '1'\n        ipType: '1'\n        isOpenTrace: 'true'\n        traceClientType: '1'\n      resourceGroupId: ${default.ids[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nARMS Synthetic Task can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:arms/syntheticTask:SyntheticTask example \u003cid\u003e\n```\n\n","properties":{"availableAssertions":{"type":"array","items":{"$ref":"#/types/alicloud:arms/SyntheticTaskAvailableAssertion:SyntheticTaskAvailableAssertion"},"description":"Assertion List. See \u003cspan pulumi-lang-nodejs=\"`availableAssertions`\" pulumi-lang-dotnet=\"`AvailableAssertions`\" pulumi-lang-go=\"`availableAssertions`\" pulumi-lang-python=\"`available_assertions`\" pulumi-lang-yaml=\"`availableAssertions`\" pulumi-lang-java=\"`availableAssertions`\"\u003e`available_assertions`\u003c/span\u003e below.\n"},"commonSetting":{"$ref":"#/types/alicloud:arms/SyntheticTaskCommonSetting:SyntheticTaskCommonSetting","description":"Common settings. See \u003cspan pulumi-lang-nodejs=\"`commonSetting`\" pulumi-lang-dotnet=\"`CommonSetting`\" pulumi-lang-go=\"`commonSetting`\" pulumi-lang-python=\"`common_setting`\" pulumi-lang-yaml=\"`commonSetting`\" pulumi-lang-java=\"`commonSetting`\"\u003e`common_setting`\u003c/span\u003e below.\n"},"customPeriod":{"$ref":"#/types/alicloud:arms/SyntheticTaskCustomPeriod:SyntheticTaskCustomPeriod","description":"Custom Cycle. See \u003cspan pulumi-lang-nodejs=\"`customPeriod`\" pulumi-lang-dotnet=\"`CustomPeriod`\" pulumi-lang-go=\"`customPeriod`\" pulumi-lang-python=\"`custom_period`\" pulumi-lang-yaml=\"`customPeriod`\" pulumi-lang-java=\"`customPeriod`\"\u003e`custom_period`\u003c/span\u003e below.\n"},"frequency":{"type":"string","description":"Frequency.\n"},"monitorCategory":{"type":"integer","description":"Classification of selected monitors.\n"},"monitorConf":{"$ref":"#/types/alicloud:arms/SyntheticTaskMonitorConf:SyntheticTaskMonitorConf","description":"Monitoring configuration. See \u003cspan pulumi-lang-nodejs=\"`monitorConf`\" pulumi-lang-dotnet=\"`MonitorConf`\" pulumi-lang-go=\"`monitorConf`\" pulumi-lang-python=\"`monitor_conf`\" pulumi-lang-yaml=\"`monitorConf`\" pulumi-lang-java=\"`monitorConf`\"\u003e`monitor_conf`\u003c/span\u003e below.\n"},"monitors":{"type":"array","items":{"$ref":"#/types/alicloud:arms/SyntheticTaskMonitor:SyntheticTaskMonitor"},"description":"List of selected monitors. See \u003cspan pulumi-lang-nodejs=\"`monitors`\" pulumi-lang-dotnet=\"`Monitors`\" pulumi-lang-go=\"`monitors`\" pulumi-lang-python=\"`monitors`\" pulumi-lang-yaml=\"`monitors`\" pulumi-lang-java=\"`monitors`\"\u003e`monitors`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"Describes which resource group the resource belongs.\n"},"status":{"type":"string","description":"task status.\n"},"syntheticTaskName":{"type":"string","description":"The name of synthetic task.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags.\n"},"taskType":{"type":"integer","description":"The type of synthetic task.\n"}},"required":["commonSetting","frequency","monitorCategory","monitorConf","monitors","resourceGroupId","status","syntheticTaskName","taskType"],"inputProperties":{"availableAssertions":{"type":"array","items":{"$ref":"#/types/alicloud:arms/SyntheticTaskAvailableAssertion:SyntheticTaskAvailableAssertion"},"description":"Assertion List. See \u003cspan pulumi-lang-nodejs=\"`availableAssertions`\" pulumi-lang-dotnet=\"`AvailableAssertions`\" pulumi-lang-go=\"`availableAssertions`\" pulumi-lang-python=\"`available_assertions`\" pulumi-lang-yaml=\"`availableAssertions`\" pulumi-lang-java=\"`availableAssertions`\"\u003e`available_assertions`\u003c/span\u003e below.\n"},"commonSetting":{"$ref":"#/types/alicloud:arms/SyntheticTaskCommonSetting:SyntheticTaskCommonSetting","description":"Common settings. See \u003cspan pulumi-lang-nodejs=\"`commonSetting`\" pulumi-lang-dotnet=\"`CommonSetting`\" pulumi-lang-go=\"`commonSetting`\" pulumi-lang-python=\"`common_setting`\" pulumi-lang-yaml=\"`commonSetting`\" pulumi-lang-java=\"`commonSetting`\"\u003e`common_setting`\u003c/span\u003e below.\n"},"customPeriod":{"$ref":"#/types/alicloud:arms/SyntheticTaskCustomPeriod:SyntheticTaskCustomPeriod","description":"Custom Cycle. See \u003cspan pulumi-lang-nodejs=\"`customPeriod`\" pulumi-lang-dotnet=\"`CustomPeriod`\" pulumi-lang-go=\"`customPeriod`\" pulumi-lang-python=\"`custom_period`\" pulumi-lang-yaml=\"`customPeriod`\" pulumi-lang-java=\"`customPeriod`\"\u003e`custom_period`\u003c/span\u003e below.\n"},"frequency":{"type":"string","description":"Frequency.\n"},"monitorCategory":{"type":"integer","description":"Classification of selected monitors.\n","willReplaceOnChanges":true},"monitorConf":{"$ref":"#/types/alicloud:arms/SyntheticTaskMonitorConf:SyntheticTaskMonitorConf","description":"Monitoring configuration. See \u003cspan pulumi-lang-nodejs=\"`monitorConf`\" pulumi-lang-dotnet=\"`MonitorConf`\" pulumi-lang-go=\"`monitorConf`\" pulumi-lang-python=\"`monitor_conf`\" pulumi-lang-yaml=\"`monitorConf`\" pulumi-lang-java=\"`monitorConf`\"\u003e`monitor_conf`\u003c/span\u003e below.\n"},"monitors":{"type":"array","items":{"$ref":"#/types/alicloud:arms/SyntheticTaskMonitor:SyntheticTaskMonitor"},"description":"List of selected monitors. See \u003cspan pulumi-lang-nodejs=\"`monitors`\" pulumi-lang-dotnet=\"`Monitors`\" pulumi-lang-go=\"`monitors`\" pulumi-lang-python=\"`monitors`\" pulumi-lang-yaml=\"`monitors`\" pulumi-lang-java=\"`monitors`\"\u003e`monitors`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"Describes which resource group the resource belongs.\n"},"status":{"type":"string","description":"task status.\n"},"syntheticTaskName":{"type":"string","description":"The name of synthetic task.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags.\n"},"taskType":{"type":"integer","description":"The type of synthetic task.\n","willReplaceOnChanges":true}},"requiredInputs":["frequency","monitorCategory","monitorConf","monitors","syntheticTaskName","taskType"],"stateInputs":{"description":"Input properties used for looking up and filtering SyntheticTask resources.\n","properties":{"availableAssertions":{"type":"array","items":{"$ref":"#/types/alicloud:arms/SyntheticTaskAvailableAssertion:SyntheticTaskAvailableAssertion"},"description":"Assertion List. See \u003cspan pulumi-lang-nodejs=\"`availableAssertions`\" pulumi-lang-dotnet=\"`AvailableAssertions`\" pulumi-lang-go=\"`availableAssertions`\" pulumi-lang-python=\"`available_assertions`\" pulumi-lang-yaml=\"`availableAssertions`\" pulumi-lang-java=\"`availableAssertions`\"\u003e`available_assertions`\u003c/span\u003e below.\n"},"commonSetting":{"$ref":"#/types/alicloud:arms/SyntheticTaskCommonSetting:SyntheticTaskCommonSetting","description":"Common settings. See \u003cspan pulumi-lang-nodejs=\"`commonSetting`\" pulumi-lang-dotnet=\"`CommonSetting`\" pulumi-lang-go=\"`commonSetting`\" pulumi-lang-python=\"`common_setting`\" pulumi-lang-yaml=\"`commonSetting`\" pulumi-lang-java=\"`commonSetting`\"\u003e`common_setting`\u003c/span\u003e below.\n"},"customPeriod":{"$ref":"#/types/alicloud:arms/SyntheticTaskCustomPeriod:SyntheticTaskCustomPeriod","description":"Custom Cycle. See \u003cspan pulumi-lang-nodejs=\"`customPeriod`\" pulumi-lang-dotnet=\"`CustomPeriod`\" pulumi-lang-go=\"`customPeriod`\" pulumi-lang-python=\"`custom_period`\" pulumi-lang-yaml=\"`customPeriod`\" pulumi-lang-java=\"`customPeriod`\"\u003e`custom_period`\u003c/span\u003e below.\n"},"frequency":{"type":"string","description":"Frequency.\n"},"monitorCategory":{"type":"integer","description":"Classification of selected monitors.\n","willReplaceOnChanges":true},"monitorConf":{"$ref":"#/types/alicloud:arms/SyntheticTaskMonitorConf:SyntheticTaskMonitorConf","description":"Monitoring configuration. See \u003cspan pulumi-lang-nodejs=\"`monitorConf`\" pulumi-lang-dotnet=\"`MonitorConf`\" pulumi-lang-go=\"`monitorConf`\" pulumi-lang-python=\"`monitor_conf`\" pulumi-lang-yaml=\"`monitorConf`\" pulumi-lang-java=\"`monitorConf`\"\u003e`monitor_conf`\u003c/span\u003e below.\n"},"monitors":{"type":"array","items":{"$ref":"#/types/alicloud:arms/SyntheticTaskMonitor:SyntheticTaskMonitor"},"description":"List of selected monitors. See \u003cspan pulumi-lang-nodejs=\"`monitors`\" pulumi-lang-dotnet=\"`Monitors`\" pulumi-lang-go=\"`monitors`\" pulumi-lang-python=\"`monitors`\" pulumi-lang-yaml=\"`monitors`\" pulumi-lang-java=\"`monitors`\"\u003e`monitors`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"Describes which resource group the resource belongs.\n"},"status":{"type":"string","description":"task status.\n"},"syntheticTaskName":{"type":"string","description":"The name of synthetic task.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags.\n"},"taskType":{"type":"integer","description":"The type of synthetic task.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:bastionhost/host:Host":{"description":"Provides a Bastion Host Host resource.\n\nFor information about Bastion Host Host and how to use it, see [What is Host](https://www.alibabacloud.com/help/en/doc-detail/201330.htm).\n\n\u003e **NOTE:** Available since v1.135.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0])});\nconst defaultInstance = new alicloud.bastionhost.Instance(\"default\", {\n    description: name,\n    licenseCode: \"bhah_ent_50_asset\",\n    planCode: \"cloudbastion\",\n    storage: \"5\",\n    bandwidth: \"5\",\n    period: 1,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    securityGroupIds: [defaultSecurityGroup.id],\n});\nconst defaultHost = new alicloud.bastionhost.Host(\"default\", {\n    instanceId: defaultInstance.id,\n    hostName: name,\n    activeAddressType: \"Private\",\n    hostPrivateAddress: \"172.16.0.10\",\n    osType: \"Linux\",\n    source: \"Local\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_get_switches = alicloud.vpc.get_switches(cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.bastionhost.Instance(\"default\",\n    description=name,\n    license_code=\"bhah_ent_50_asset\",\n    plan_code=\"cloudbastion\",\n    storage=\"5\",\n    bandwidth=\"5\",\n    period=1,\n    vswitch_id=default_get_switches.ids[0],\n    security_group_ids=[default_security_group.id])\ndefault_host = alicloud.bastionhost.Host(\"default\",\n    instance_id=default_instance.id,\n    host_name=name,\n    active_address_type=\"Private\",\n    host_private_address=\"172.16.0.10\",\n    os_type=\"Linux\",\n    source=\"Local\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.BastionHost.Instance(\"default\", new()\n    {\n        Description = name,\n        LicenseCode = \"bhah_ent_50_asset\",\n        PlanCode = \"cloudbastion\",\n        Storage = \"5\",\n        Bandwidth = \"5\",\n        Period = 1,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var defaultHost = new AliCloud.BastionHost.Host(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        HostName = name,\n        ActiveAddressType = \"Private\",\n        HostPrivateAddress = \"172.16.0.10\",\n        OsType = \"Linux\",\n        Source = \"Local\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/24\"),\n\t\t\tVpcId:     pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:    pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := bastionhost.NewInstance(ctx, \"default\", \u0026bastionhost.InstanceArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tLicenseCode: pulumi.String(\"bhah_ent_50_asset\"),\n\t\t\tPlanCode:    pulumi.String(\"cloudbastion\"),\n\t\t\tStorage:     pulumi.String(\"5\"),\n\t\t\tBandwidth:   pulumi.String(\"5\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tVswitchId:   pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bastionhost.NewHost(ctx, \"default\", \u0026bastionhost.HostArgs{\n\t\t\tInstanceId:         defaultInstance.ID(),\n\t\t\tHostName:           pulumi.String(name),\n\t\t\tActiveAddressType:  pulumi.String(\"Private\"),\n\t\t\tHostPrivateAddress: pulumi.String(\"172.16.0.10\"),\n\t\t\tOsType:             pulumi.String(\"Linux\"),\n\t\t\tSource:             pulumi.String(\"Local\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.bastionhost.Instance;\nimport com.pulumi.alicloud.bastionhost.InstanceArgs;\nimport com.pulumi.alicloud.bastionhost.Host;\nimport com.pulumi.alicloud.bastionhost.HostArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .description(name)\n            .licenseCode(\"bhah_ent_50_asset\")\n            .planCode(\"cloudbastion\")\n            .storage(\"5\")\n            .bandwidth(\"5\")\n            .period(1)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n        var defaultHost = new Host(\"defaultHost\", HostArgs.builder()\n            .instanceId(defaultInstance.id())\n            .hostName(name)\n            .activeAddressType(\"Private\")\n            .hostPrivateAddress(\"172.16.0.10\")\n            .osType(\"Linux\")\n            .source(\"Local\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultInstance:\n    type: alicloud:bastionhost:Instance\n    name: default\n    properties:\n      description: ${name}\n      licenseCode: bhah_ent_50_asset\n      planCode: cloudbastion\n      storage: '5'\n      bandwidth: '5'\n      period: '1'\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n  defaultHost:\n    type: alicloud:bastionhost:Host\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      hostName: ${name}\n      activeAddressType: Private\n      hostPrivateAddress: 172.16.0.10\n      osType: Linux\n      source: Local\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 10.4.0.0/16\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        cidrBlock: 10.4.0.0/24\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nBastion Host Host can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:bastionhost/host:Host example \u003cinstance_id\u003e:\u003chost_id\u003e\n```\n\n","properties":{"activeAddressType":{"type":"string","description":"Specify the new create a host of address types. Valid values: `Public`: the IP address of a Public network. `Private`: Private network address.\n"},"comment":{"type":"string","description":"Specify a host of notes, supports up to 500 characters.\n"},"hostId":{"type":"string","description":"The host ID.\n"},"hostName":{"type":"string","description":"Specify the new create a host name of the supports up to 128 characters.\n"},"hostPrivateAddress":{"type":"string","description":"Specify the new create a host of the private network address, it is possible to use the domain name or IP ADDRESS. **NOTE:**  This parameter is required if the \u003cspan pulumi-lang-nodejs=\"`activeAddressType`\" pulumi-lang-dotnet=\"`ActiveAddressType`\" pulumi-lang-go=\"`activeAddressType`\" pulumi-lang-python=\"`active_address_type`\" pulumi-lang-yaml=\"`activeAddressType`\" pulumi-lang-java=\"`activeAddressType`\"\u003e`active_address_type`\u003c/span\u003e parameter is set to `Private`.\n"},"hostPublicAddress":{"type":"string","description":"Specify the new create a host of the IP address of a public network, it is possible to use the domain name or IP ADDRESS.\n"},"instanceId":{"type":"string","description":"Specify the new create a host where the Bastion host ID of.\n"},"instanceRegionId":{"type":"string","description":"The instance region id.\n"},"osType":{"type":"string","description":"Specify the new create the host's operating system. Valid values: `Linux`,`Windows`.\n"},"source":{"type":"string","description":"Specify the new create a host of source. Valid values: \n* `Local`: localhost\n* `Ecs`:ECS instance\n* `Rds`:RDS exclusive cluster host.\n"},"sourceInstanceId":{"type":"string","description":"Specify the newly created ECS instance ID or dedicated cluster host ID. **NOTE:** This parameter is required if the \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e parameter is set to `Ecs` or `Rds`.\n"}},"required":["activeAddressType","hostId","hostName","instanceId","osType","source"],"inputProperties":{"activeAddressType":{"type":"string","description":"Specify the new create a host of address types. Valid values: `Public`: the IP address of a Public network. `Private`: Private network address.\n"},"comment":{"type":"string","description":"Specify a host of notes, supports up to 500 characters.\n"},"hostName":{"type":"string","description":"Specify the new create a host name of the supports up to 128 characters.\n"},"hostPrivateAddress":{"type":"string","description":"Specify the new create a host of the private network address, it is possible to use the domain name or IP ADDRESS. **NOTE:**  This parameter is required if the \u003cspan pulumi-lang-nodejs=\"`activeAddressType`\" pulumi-lang-dotnet=\"`ActiveAddressType`\" pulumi-lang-go=\"`activeAddressType`\" pulumi-lang-python=\"`active_address_type`\" pulumi-lang-yaml=\"`activeAddressType`\" pulumi-lang-java=\"`activeAddressType`\"\u003e`active_address_type`\u003c/span\u003e parameter is set to `Private`.\n"},"hostPublicAddress":{"type":"string","description":"Specify the new create a host of the IP address of a public network, it is possible to use the domain name or IP ADDRESS.\n"},"instanceId":{"type":"string","description":"Specify the new create a host where the Bastion host ID of.\n","willReplaceOnChanges":true},"instanceRegionId":{"type":"string","description":"The instance region id.\n"},"osType":{"type":"string","description":"Specify the new create the host's operating system. Valid values: `Linux`,`Windows`.\n"},"source":{"type":"string","description":"Specify the new create a host of source. Valid values: \n* `Local`: localhost\n* `Ecs`:ECS instance\n* `Rds`:RDS exclusive cluster host.\n","willReplaceOnChanges":true},"sourceInstanceId":{"type":"string","description":"Specify the newly created ECS instance ID or dedicated cluster host ID. **NOTE:** This parameter is required if the \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e parameter is set to `Ecs` or `Rds`.\n","willReplaceOnChanges":true}},"requiredInputs":["activeAddressType","hostName","instanceId","osType","source"],"stateInputs":{"description":"Input properties used for looking up and filtering Host resources.\n","properties":{"activeAddressType":{"type":"string","description":"Specify the new create a host of address types. Valid values: `Public`: the IP address of a Public network. `Private`: Private network address.\n"},"comment":{"type":"string","description":"Specify a host of notes, supports up to 500 characters.\n"},"hostId":{"type":"string","description":"The host ID.\n"},"hostName":{"type":"string","description":"Specify the new create a host name of the supports up to 128 characters.\n"},"hostPrivateAddress":{"type":"string","description":"Specify the new create a host of the private network address, it is possible to use the domain name or IP ADDRESS. **NOTE:**  This parameter is required if the \u003cspan pulumi-lang-nodejs=\"`activeAddressType`\" pulumi-lang-dotnet=\"`ActiveAddressType`\" pulumi-lang-go=\"`activeAddressType`\" pulumi-lang-python=\"`active_address_type`\" pulumi-lang-yaml=\"`activeAddressType`\" pulumi-lang-java=\"`activeAddressType`\"\u003e`active_address_type`\u003c/span\u003e parameter is set to `Private`.\n"},"hostPublicAddress":{"type":"string","description":"Specify the new create a host of the IP address of a public network, it is possible to use the domain name or IP ADDRESS.\n"},"instanceId":{"type":"string","description":"Specify the new create a host where the Bastion host ID of.\n","willReplaceOnChanges":true},"instanceRegionId":{"type":"string","description":"The instance region id.\n"},"osType":{"type":"string","description":"Specify the new create the host's operating system. Valid values: `Linux`,`Windows`.\n"},"source":{"type":"string","description":"Specify the new create a host of source. Valid values: \n* `Local`: localhost\n* `Ecs`:ECS instance\n* `Rds`:RDS exclusive cluster host.\n","willReplaceOnChanges":true},"sourceInstanceId":{"type":"string","description":"Specify the newly created ECS instance ID or dedicated cluster host ID. **NOTE:** This parameter is required if the \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e parameter is set to `Ecs` or `Rds`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:bastionhost/hostAccount:HostAccount":{"description":"Provides a Bastion Host Host Account resource.\n\nFor information about Bastion Host Host Account and how to use it, see [What is Host Account](https://www.alibabacloud.com/help/en/doc-detail/204377.htm).\n\n\u003e **NOTE:** Available since v1.135.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0])});\nconst defaultInstance = new alicloud.bastionhost.Instance(\"default\", {\n    description: name,\n    licenseCode: \"bhah_ent_50_asset\",\n    planCode: \"cloudbastion\",\n    storage: \"5\",\n    bandwidth: \"5\",\n    period: 1,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    securityGroupIds: [defaultSecurityGroup.id],\n});\nconst defaultHost = new alicloud.bastionhost.Host(\"default\", {\n    instanceId: defaultInstance.id,\n    hostName: name,\n    activeAddressType: \"Private\",\n    hostPrivateAddress: \"172.16.0.10\",\n    osType: \"Linux\",\n    source: \"Local\",\n});\nconst defaultHostAccount = new alicloud.bastionhost.HostAccount(\"default\", {\n    hostAccountName: name,\n    hostId: defaultHost.hostId,\n    instanceId: defaultHost.instanceId,\n    protocolName: \"SSH\",\n    password: \"YourPassword12345\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_get_switches = alicloud.vpc.get_switches(cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.bastionhost.Instance(\"default\",\n    description=name,\n    license_code=\"bhah_ent_50_asset\",\n    plan_code=\"cloudbastion\",\n    storage=\"5\",\n    bandwidth=\"5\",\n    period=1,\n    vswitch_id=default_get_switches.ids[0],\n    security_group_ids=[default_security_group.id])\ndefault_host = alicloud.bastionhost.Host(\"default\",\n    instance_id=default_instance.id,\n    host_name=name,\n    active_address_type=\"Private\",\n    host_private_address=\"172.16.0.10\",\n    os_type=\"Linux\",\n    source=\"Local\")\ndefault_host_account = alicloud.bastionhost.HostAccount(\"default\",\n    host_account_name=name,\n    host_id=default_host.host_id,\n    instance_id=default_host.instance_id,\n    protocol_name=\"SSH\",\n    password=\"YourPassword12345\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.BastionHost.Instance(\"default\", new()\n    {\n        Description = name,\n        LicenseCode = \"bhah_ent_50_asset\",\n        PlanCode = \"cloudbastion\",\n        Storage = \"5\",\n        Bandwidth = \"5\",\n        Period = 1,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var defaultHost = new AliCloud.BastionHost.Host(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        HostName = name,\n        ActiveAddressType = \"Private\",\n        HostPrivateAddress = \"172.16.0.10\",\n        OsType = \"Linux\",\n        Source = \"Local\",\n    });\n\n    var defaultHostAccount = new AliCloud.BastionHost.HostAccount(\"default\", new()\n    {\n        HostAccountName = name,\n        HostId = defaultHost.HostId,\n        InstanceId = defaultHost.InstanceId,\n        ProtocolName = \"SSH\",\n        Password = \"YourPassword12345\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/24\"),\n\t\t\tVpcId:     pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:    pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := bastionhost.NewInstance(ctx, \"default\", \u0026bastionhost.InstanceArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tLicenseCode: pulumi.String(\"bhah_ent_50_asset\"),\n\t\t\tPlanCode:    pulumi.String(\"cloudbastion\"),\n\t\t\tStorage:     pulumi.String(\"5\"),\n\t\t\tBandwidth:   pulumi.String(\"5\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tVswitchId:   pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHost, err := bastionhost.NewHost(ctx, \"default\", \u0026bastionhost.HostArgs{\n\t\t\tInstanceId:         defaultInstance.ID(),\n\t\t\tHostName:           pulumi.String(name),\n\t\t\tActiveAddressType:  pulumi.String(\"Private\"),\n\t\t\tHostPrivateAddress: pulumi.String(\"172.16.0.10\"),\n\t\t\tOsType:             pulumi.String(\"Linux\"),\n\t\t\tSource:             pulumi.String(\"Local\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bastionhost.NewHostAccount(ctx, \"default\", \u0026bastionhost.HostAccountArgs{\n\t\t\tHostAccountName: pulumi.String(name),\n\t\t\tHostId:          defaultHost.HostId,\n\t\t\tInstanceId:      defaultHost.InstanceId,\n\t\t\tProtocolName:    pulumi.String(\"SSH\"),\n\t\t\tPassword:        pulumi.String(\"YourPassword12345\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.bastionhost.Instance;\nimport com.pulumi.alicloud.bastionhost.InstanceArgs;\nimport com.pulumi.alicloud.bastionhost.Host;\nimport com.pulumi.alicloud.bastionhost.HostArgs;\nimport com.pulumi.alicloud.bastionhost.HostAccount;\nimport com.pulumi.alicloud.bastionhost.HostAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .description(name)\n            .licenseCode(\"bhah_ent_50_asset\")\n            .planCode(\"cloudbastion\")\n            .storage(\"5\")\n            .bandwidth(\"5\")\n            .period(1)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n        var defaultHost = new Host(\"defaultHost\", HostArgs.builder()\n            .instanceId(defaultInstance.id())\n            .hostName(name)\n            .activeAddressType(\"Private\")\n            .hostPrivateAddress(\"172.16.0.10\")\n            .osType(\"Linux\")\n            .source(\"Local\")\n            .build());\n\n        var defaultHostAccount = new HostAccount(\"defaultHostAccount\", HostAccountArgs.builder()\n            .hostAccountName(name)\n            .hostId(defaultHost.hostId())\n            .instanceId(defaultHost.instanceId())\n            .protocolName(\"SSH\")\n            .password(\"YourPassword12345\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultInstance:\n    type: alicloud:bastionhost:Instance\n    name: default\n    properties:\n      description: ${name}\n      licenseCode: bhah_ent_50_asset\n      planCode: cloudbastion\n      storage: '5'\n      bandwidth: '5'\n      period: '1'\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n  defaultHost:\n    type: alicloud:bastionhost:Host\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      hostName: ${name}\n      activeAddressType: Private\n      hostPrivateAddress: 172.16.0.10\n      osType: Linux\n      source: Local\n  defaultHostAccount:\n    type: alicloud:bastionhost:HostAccount\n    name: default\n    properties:\n      hostAccountName: ${name}\n      hostId: ${defaultHost.hostId}\n      instanceId: ${defaultHost.instanceId}\n      protocolName: SSH\n      password: YourPassword12345\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 10.4.0.0/16\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        cidrBlock: 10.4.0.0/24\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nBastion Host Host Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:bastionhost/hostAccount:HostAccount example \u003cinstance_id\u003e:\u003chost_account_id\u003e\n```\n\n","properties":{"hostAccountId":{"type":"string","description":"Hosting account ID.\n"},"hostAccountName":{"type":"string","description":"The name of the host account. The name can be up to 128 characters in length.\n"},"hostId":{"type":"string","description":"The ID of the host for which you want to create an account.\n"},"instanceId":{"type":"string","description":"The ID of the Bastionhost instance where you want to create an account for the host.\n"},"passPhrase":{"type":"string","description":"The passphrase of the private key for the host account. **NOTE:** It is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocolName`\" pulumi-lang-dotnet=\"`ProtocolName`\" pulumi-lang-go=\"`protocolName`\" pulumi-lang-python=\"`protocol_name`\" pulumi-lang-yaml=\"`protocolName`\" pulumi-lang-java=\"`protocolName`\"\u003e`protocol_name`\u003c/span\u003e is `SSH`.\n","secret":true},"password":{"type":"string","description":"The password of the host account.\n","secret":true},"privateKey":{"type":"string","description":"The private key of the host account. The value is a Base64-encoded string. **NOTE:** It is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocolName`\" pulumi-lang-dotnet=\"`ProtocolName`\" pulumi-lang-go=\"`protocolName`\" pulumi-lang-python=\"`protocol_name`\" pulumi-lang-yaml=\"`protocolName`\" pulumi-lang-java=\"`protocolName`\"\u003e`protocol_name`\u003c/span\u003e is `SSH`\n","secret":true},"protocolName":{"type":"string","description":"The protocol used by the host account. Valid values: SSH,RDP\n"}},"required":["hostAccountId","hostAccountName","hostId","instanceId","protocolName"],"inputProperties":{"hostAccountName":{"type":"string","description":"The name of the host account. The name can be up to 128 characters in length.\n"},"hostId":{"type":"string","description":"The ID of the host for which you want to create an account.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Bastionhost instance where you want to create an account for the host.\n","willReplaceOnChanges":true},"passPhrase":{"type":"string","description":"The passphrase of the private key for the host account. **NOTE:** It is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocolName`\" pulumi-lang-dotnet=\"`ProtocolName`\" pulumi-lang-go=\"`protocolName`\" pulumi-lang-python=\"`protocol_name`\" pulumi-lang-yaml=\"`protocolName`\" pulumi-lang-java=\"`protocolName`\"\u003e`protocol_name`\u003c/span\u003e is `SSH`.\n","secret":true},"password":{"type":"string","description":"The password of the host account.\n","secret":true},"privateKey":{"type":"string","description":"The private key of the host account. The value is a Base64-encoded string. **NOTE:** It is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocolName`\" pulumi-lang-dotnet=\"`ProtocolName`\" pulumi-lang-go=\"`protocolName`\" pulumi-lang-python=\"`protocol_name`\" pulumi-lang-yaml=\"`protocolName`\" pulumi-lang-java=\"`protocolName`\"\u003e`protocol_name`\u003c/span\u003e is `SSH`\n","secret":true},"protocolName":{"type":"string","description":"The protocol used by the host account. Valid values: SSH,RDP\n","willReplaceOnChanges":true}},"requiredInputs":["hostAccountName","hostId","instanceId","protocolName"],"stateInputs":{"description":"Input properties used for looking up and filtering HostAccount resources.\n","properties":{"hostAccountId":{"type":"string","description":"Hosting account ID.\n"},"hostAccountName":{"type":"string","description":"The name of the host account. The name can be up to 128 characters in length.\n"},"hostId":{"type":"string","description":"The ID of the host for which you want to create an account.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Bastionhost instance where you want to create an account for the host.\n","willReplaceOnChanges":true},"passPhrase":{"type":"string","description":"The passphrase of the private key for the host account. **NOTE:** It is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocolName`\" pulumi-lang-dotnet=\"`ProtocolName`\" pulumi-lang-go=\"`protocolName`\" pulumi-lang-python=\"`protocol_name`\" pulumi-lang-yaml=\"`protocolName`\" pulumi-lang-java=\"`protocolName`\"\u003e`protocol_name`\u003c/span\u003e is `SSH`.\n","secret":true},"password":{"type":"string","description":"The password of the host account.\n","secret":true},"privateKey":{"type":"string","description":"The private key of the host account. The value is a Base64-encoded string. **NOTE:** It is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocolName`\" pulumi-lang-dotnet=\"`ProtocolName`\" pulumi-lang-go=\"`protocolName`\" pulumi-lang-python=\"`protocol_name`\" pulumi-lang-yaml=\"`protocolName`\" pulumi-lang-java=\"`protocolName`\"\u003e`protocol_name`\u003c/span\u003e is `SSH`\n","secret":true},"protocolName":{"type":"string","description":"The protocol used by the host account. Valid values: SSH,RDP\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:bastionhost/hostAccountShareKeyAttachment:HostAccountShareKeyAttachment":{"description":"Provides a Bastion Host Account Share Key Attachment resource.\n\nFor information about Bastion Host Host Account Share Key Attachment and how to use it, see [What is Host Account Share Key Attachment](https://www.alibabacloud.com/help/en/bastion-host/latest/attachhostaccountstohostsharekey).\n\n\u003e **NOTE:** Available since v1.165.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0])});\nconst defaultInstance = new alicloud.bastionhost.Instance(\"default\", {\n    description: name,\n    licenseCode: \"bhah_ent_50_asset\",\n    planCode: \"cloudbastion\",\n    storage: \"5\",\n    bandwidth: \"5\",\n    period: 1,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    securityGroupIds: [defaultSecurityGroup.id],\n});\nconst defaultHost = new alicloud.bastionhost.Host(\"default\", {\n    instanceId: defaultInstance.id,\n    hostName: name,\n    activeAddressType: \"Private\",\n    hostPrivateAddress: \"172.16.0.10\",\n    osType: \"Linux\",\n    source: \"Local\",\n});\nconst defaultHostAccount = new alicloud.bastionhost.HostAccount(\"default\", {\n    hostAccountName: name,\n    hostId: defaultHost.hostId,\n    instanceId: defaultHost.instanceId,\n    protocolName: \"SSH\",\n    password: \"YourPassword12345\",\n});\nconst privateKey = config.get(\"privateKey\") || \"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBc25oc29SSVVwVXltSG1FVHJXUGxDbkhMa3c3N0JYTm44ZHcvbDg3eG10SUhjd2syCkRybjFDZk5jZkpJV0tSdkFaYkdKMlZTS1RiRDhPTmcyT3JvUHFGUHBLOHJ5QjJRb1NYQVRsaUVHWFhNeW1tRm8KeDBmem12THFscUxpNGZnOExhcTc5UC85aGxLU1djTWhJU0pYVTNHMS9KdEFBUmEyQXc4cXEzSVQvMkZ5NktrdwowMU9MdDdLN2pGUFRPaHhtdmNoSkZ1SVo1YXI0cW5HUlFHQnpCL2hoRHVIWEMwRlhJZ2ozd0NXMDZ4R2V2WjJyCmNCWWwwN1luL2lvZk95MU0wRjZZN0JrMU95N21vYndzM1JsalUyL2FpZlhLMmNOUlk2Qjl5WXNvd1RBZmQ5OTQKQ2YxSlF3TlhsaUZCeTZueEJLQk1YbDhIU1grS1o3L29PUlIwVXdJREFRQUJBb0lCQVFDbU5JSXR5ckhSY3oxdApJMGo0L0FQc295ZE1EL0owRkJMa2FoSUxKWjFaYW1tbmx4ZHh4WHBQUndXRnVXTEw2OTFVbDI5aUoxb1ptazU1Ci9ka2EvZlhnOUN3OUxXWVN2aExLdVlaMEZOTmhxZ3VoUEVBZy9uLytlR1ZCM2ZYZkxaZVZpK0E0L1VHMG15ZFMKVXVlQ2ZRSElZeWh4VkgvWnc3WER5WmNhVFVZVVdMUWlYcVN0Y2JRbnZFOXpwOGc5TWh5UkhBcWYwbEt2UTRqdwphUnNKTnlob3lhZWcvUXlFeHVYNGdBR1lIc1lTSDRFVmtXOHl5WE1aOHpRdk1OSUNiYXhmUkRuSngybUh6a09rCnFHczVXbFp5L3VrQk5jWTQwd2Y0eTY2bEVJaVpKbiswaFhtSTF4Tk5SdHRwMjZnY3ROOXZWbmVicTdLTnpjTDgKeFQrMXZJaEpBb0dCQU9iMVM1YlE4NVRFWDBoZTRmdXc2R3ExbnhRLzJUSU03emZhK2VhZThPQlh2eVNFV3JpdwpPZzM3RFhVUDFNVU1iTEJRenE0STl1dE5YSVZadEFLR0h6ZDR6WmtQeGxORjZPN0FyWnJEWElDNEdKZHdmSEhxCjJZcDkxUDlWekJlOVhkTVdZVGFCNkMzWVdtYzQwM08vYWdyRCtNb2JnL0hqMSt0d2xZR2hjdlV2QW9HQkFNWFMKT2VnWHc5VUF3VEZabFBtZzZKeDI3TzNXUFBHd1E3QzRnYitFZzZkR1pLRnJVR1ZId2VUUG1HaGtwN1BmYU5ESwplaFVoUWFnNm9XOTF4dkE2YldZZ29SQmczUWkxc01MblRWeTExeVN1UEVFSCtMT2s1N3d2akNLSk5XZnM0SjVyCmg1NGw0QXZ6UVhyWWN0UlZkSmYrNjFacGFnTkdZMVBvWVJMTHJMSWRBb0dBTndydzErRzJtNWJ0YW04S2hwU1QKMzVLbmRnajlkM3N6cStrcE03aGZpZWYvcXZGTU9jWHVJQlRjRVRFVHNWNlRyTFdsZkQ2d3NrVitybDFCbEhSbwpqaXpoT3dCU2NOZ3hlbTA3TXE0cXBwYTViYVltVW5QNUlwTjRwdDNJeFVPaFQ4UitxS0h2TnJYZ1hjZGlSYXl4CjFoejhkeFoxckxselpTNHd3M001MVlzQ2dZRUFpUDEwTEUySXg5Q2wrTTdZWTZZU2I0Zkx1MGhKRy9XOGFuemIKSFExZlBrOTVFRytJVlJyRUl2ZS95MHNvOTE4VzdyL0lteWxVbG5ORHFEUWZkK3grSmVNaXBuenRsRUorRGZxdgprQ3c4dUtJUUI5akZXV0l4T0JpVktyVnB6bll6ZG9Gd2dRd3BneDBKazFDZzlIblpMQWpVWUJyUDEwUy9ORFFRClJUdldjK0VDZ1lBeGRIZWxQNG1RdkJaS1oxMlNKbHlLbFVLeW43aHhzSHVkMkphMVNtS3FWeHBERDNlR0w0Y3QKZXA1QTZ5NkF4eGViZkI0aDdYNEZ0QTBBRURPdkZDR0J1QlRvZ3ZBdUNDVUtqK2JIUG1SNG53UVYzcWZ2M3loRAp0TGkwU2FHVElta2wvbUNCUDhZaW9JUys2N0xjby9kbHphUTNGVDlxTnJieFdFWjJlaS9LVlE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==\";\nconst defaultHostShareKey = new alicloud.bastionhost.HostShareKey(\"default\", {\n    hostShareKeyName: name,\n    instanceId: defaultInstance.id,\n    privateKey: privateKey,\n});\nconst defaultHostAccountShareKeyAttachment = new alicloud.bastionhost.HostAccountShareKeyAttachment(\"default\", {\n    instanceId: defaultInstance.id,\n    hostShareKeyId: defaultHostShareKey.hostShareKeyId,\n    hostAccountId: defaultHostAccount.hostAccountId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_get_switches = alicloud.vpc.get_switches(cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.bastionhost.Instance(\"default\",\n    description=name,\n    license_code=\"bhah_ent_50_asset\",\n    plan_code=\"cloudbastion\",\n    storage=\"5\",\n    bandwidth=\"5\",\n    period=1,\n    vswitch_id=default_get_switches.ids[0],\n    security_group_ids=[default_security_group.id])\ndefault_host = alicloud.bastionhost.Host(\"default\",\n    instance_id=default_instance.id,\n    host_name=name,\n    active_address_type=\"Private\",\n    host_private_address=\"172.16.0.10\",\n    os_type=\"Linux\",\n    source=\"Local\")\ndefault_host_account = alicloud.bastionhost.HostAccount(\"default\",\n    host_account_name=name,\n    host_id=default_host.host_id,\n    instance_id=default_host.instance_id,\n    protocol_name=\"SSH\",\n    password=\"YourPassword12345\")\nprivate_key = config.get(\"privateKey\")\nif private_key is None:\n    private_key = \"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBc25oc29SSVVwVXltSG1FVHJXUGxDbkhMa3c3N0JYTm44ZHcvbDg3eG10SUhjd2syCkRybjFDZk5jZkpJV0tSdkFaYkdKMlZTS1RiRDhPTmcyT3JvUHFGUHBLOHJ5QjJRb1NYQVRsaUVHWFhNeW1tRm8KeDBmem12THFscUxpNGZnOExhcTc5UC85aGxLU1djTWhJU0pYVTNHMS9KdEFBUmEyQXc4cXEzSVQvMkZ5NktrdwowMU9MdDdLN2pGUFRPaHhtdmNoSkZ1SVo1YXI0cW5HUlFHQnpCL2hoRHVIWEMwRlhJZ2ozd0NXMDZ4R2V2WjJyCmNCWWwwN1luL2lvZk95MU0wRjZZN0JrMU95N21vYndzM1JsalUyL2FpZlhLMmNOUlk2Qjl5WXNvd1RBZmQ5OTQKQ2YxSlF3TlhsaUZCeTZueEJLQk1YbDhIU1grS1o3L29PUlIwVXdJREFRQUJBb0lCQVFDbU5JSXR5ckhSY3oxdApJMGo0L0FQc295ZE1EL0owRkJMa2FoSUxKWjFaYW1tbmx4ZHh4WHBQUndXRnVXTEw2OTFVbDI5aUoxb1ptazU1Ci9ka2EvZlhnOUN3OUxXWVN2aExLdVlaMEZOTmhxZ3VoUEVBZy9uLytlR1ZCM2ZYZkxaZVZpK0E0L1VHMG15ZFMKVXVlQ2ZRSElZeWh4VkgvWnc3WER5WmNhVFVZVVdMUWlYcVN0Y2JRbnZFOXpwOGc5TWh5UkhBcWYwbEt2UTRqdwphUnNKTnlob3lhZWcvUXlFeHVYNGdBR1lIc1lTSDRFVmtXOHl5WE1aOHpRdk1OSUNiYXhmUkRuSngybUh6a09rCnFHczVXbFp5L3VrQk5jWTQwd2Y0eTY2bEVJaVpKbiswaFhtSTF4Tk5SdHRwMjZnY3ROOXZWbmVicTdLTnpjTDgKeFQrMXZJaEpBb0dCQU9iMVM1YlE4NVRFWDBoZTRmdXc2R3ExbnhRLzJUSU03emZhK2VhZThPQlh2eVNFV3JpdwpPZzM3RFhVUDFNVU1iTEJRenE0STl1dE5YSVZadEFLR0h6ZDR6WmtQeGxORjZPN0FyWnJEWElDNEdKZHdmSEhxCjJZcDkxUDlWekJlOVhkTVdZVGFCNkMzWVdtYzQwM08vYWdyRCtNb2JnL0hqMSt0d2xZR2hjdlV2QW9HQkFNWFMKT2VnWHc5VUF3VEZabFBtZzZKeDI3TzNXUFBHd1E3QzRnYitFZzZkR1pLRnJVR1ZId2VUUG1HaGtwN1BmYU5ESwplaFVoUWFnNm9XOTF4dkE2YldZZ29SQmczUWkxc01MblRWeTExeVN1UEVFSCtMT2s1N3d2akNLSk5XZnM0SjVyCmg1NGw0QXZ6UVhyWWN0UlZkSmYrNjFacGFnTkdZMVBvWVJMTHJMSWRBb0dBTndydzErRzJtNWJ0YW04S2hwU1QKMzVLbmRnajlkM3N6cStrcE03aGZpZWYvcXZGTU9jWHVJQlRjRVRFVHNWNlRyTFdsZkQ2d3NrVitybDFCbEhSbwpqaXpoT3dCU2NOZ3hlbTA3TXE0cXBwYTViYVltVW5QNUlwTjRwdDNJeFVPaFQ4UitxS0h2TnJYZ1hjZGlSYXl4CjFoejhkeFoxckxselpTNHd3M001MVlzQ2dZRUFpUDEwTEUySXg5Q2wrTTdZWTZZU2I0Zkx1MGhKRy9XOGFuemIKSFExZlBrOTVFRytJVlJyRUl2ZS95MHNvOTE4VzdyL0lteWxVbG5ORHFEUWZkK3grSmVNaXBuenRsRUorRGZxdgprQ3c4dUtJUUI5akZXV0l4T0JpVktyVnB6bll6ZG9Gd2dRd3BneDBKazFDZzlIblpMQWpVWUJyUDEwUy9ORFFRClJUdldjK0VDZ1lBeGRIZWxQNG1RdkJaS1oxMlNKbHlLbFVLeW43aHhzSHVkMkphMVNtS3FWeHBERDNlR0w0Y3QKZXA1QTZ5NkF4eGViZkI0aDdYNEZ0QTBBRURPdkZDR0J1QlRvZ3ZBdUNDVUtqK2JIUG1SNG53UVYzcWZ2M3loRAp0TGkwU2FHVElta2wvbUNCUDhZaW9JUys2N0xjby9kbHphUTNGVDlxTnJieFdFWjJlaS9LVlE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==\"\ndefault_host_share_key = alicloud.bastionhost.HostShareKey(\"default\",\n    host_share_key_name=name,\n    instance_id=default_instance.id,\n    private_key=private_key)\ndefault_host_account_share_key_attachment = alicloud.bastionhost.HostAccountShareKeyAttachment(\"default\",\n    instance_id=default_instance.id,\n    host_share_key_id=default_host_share_key.host_share_key_id,\n    host_account_id=default_host_account.host_account_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.BastionHost.Instance(\"default\", new()\n    {\n        Description = name,\n        LicenseCode = \"bhah_ent_50_asset\",\n        PlanCode = \"cloudbastion\",\n        Storage = \"5\",\n        Bandwidth = \"5\",\n        Period = 1,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var defaultHost = new AliCloud.BastionHost.Host(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        HostName = name,\n        ActiveAddressType = \"Private\",\n        HostPrivateAddress = \"172.16.0.10\",\n        OsType = \"Linux\",\n        Source = \"Local\",\n    });\n\n    var defaultHostAccount = new AliCloud.BastionHost.HostAccount(\"default\", new()\n    {\n        HostAccountName = name,\n        HostId = defaultHost.HostId,\n        InstanceId = defaultHost.InstanceId,\n        ProtocolName = \"SSH\",\n        Password = \"YourPassword12345\",\n    });\n\n    var privateKey = config.Get(\"privateKey\") ?? \"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBc25oc29SSVVwVXltSG1FVHJXUGxDbkhMa3c3N0JYTm44ZHcvbDg3eG10SUhjd2syCkRybjFDZk5jZkpJV0tSdkFaYkdKMlZTS1RiRDhPTmcyT3JvUHFGUHBLOHJ5QjJRb1NYQVRsaUVHWFhNeW1tRm8KeDBmem12THFscUxpNGZnOExhcTc5UC85aGxLU1djTWhJU0pYVTNHMS9KdEFBUmEyQXc4cXEzSVQvMkZ5NktrdwowMU9MdDdLN2pGUFRPaHhtdmNoSkZ1SVo1YXI0cW5HUlFHQnpCL2hoRHVIWEMwRlhJZ2ozd0NXMDZ4R2V2WjJyCmNCWWwwN1luL2lvZk95MU0wRjZZN0JrMU95N21vYndzM1JsalUyL2FpZlhLMmNOUlk2Qjl5WXNvd1RBZmQ5OTQKQ2YxSlF3TlhsaUZCeTZueEJLQk1YbDhIU1grS1o3L29PUlIwVXdJREFRQUJBb0lCQVFDbU5JSXR5ckhSY3oxdApJMGo0L0FQc295ZE1EL0owRkJMa2FoSUxKWjFaYW1tbmx4ZHh4WHBQUndXRnVXTEw2OTFVbDI5aUoxb1ptazU1Ci9ka2EvZlhnOUN3OUxXWVN2aExLdVlaMEZOTmhxZ3VoUEVBZy9uLytlR1ZCM2ZYZkxaZVZpK0E0L1VHMG15ZFMKVXVlQ2ZRSElZeWh4VkgvWnc3WER5WmNhVFVZVVdMUWlYcVN0Y2JRbnZFOXpwOGc5TWh5UkhBcWYwbEt2UTRqdwphUnNKTnlob3lhZWcvUXlFeHVYNGdBR1lIc1lTSDRFVmtXOHl5WE1aOHpRdk1OSUNiYXhmUkRuSngybUh6a09rCnFHczVXbFp5L3VrQk5jWTQwd2Y0eTY2bEVJaVpKbiswaFhtSTF4Tk5SdHRwMjZnY3ROOXZWbmVicTdLTnpjTDgKeFQrMXZJaEpBb0dCQU9iMVM1YlE4NVRFWDBoZTRmdXc2R3ExbnhRLzJUSU03emZhK2VhZThPQlh2eVNFV3JpdwpPZzM3RFhVUDFNVU1iTEJRenE0STl1dE5YSVZadEFLR0h6ZDR6WmtQeGxORjZPN0FyWnJEWElDNEdKZHdmSEhxCjJZcDkxUDlWekJlOVhkTVdZVGFCNkMzWVdtYzQwM08vYWdyRCtNb2JnL0hqMSt0d2xZR2hjdlV2QW9HQkFNWFMKT2VnWHc5VUF3VEZabFBtZzZKeDI3TzNXUFBHd1E3QzRnYitFZzZkR1pLRnJVR1ZId2VUUG1HaGtwN1BmYU5ESwplaFVoUWFnNm9XOTF4dkE2YldZZ29SQmczUWkxc01MblRWeTExeVN1UEVFSCtMT2s1N3d2akNLSk5XZnM0SjVyCmg1NGw0QXZ6UVhyWWN0UlZkSmYrNjFacGFnTkdZMVBvWVJMTHJMSWRBb0dBTndydzErRzJtNWJ0YW04S2hwU1QKMzVLbmRnajlkM3N6cStrcE03aGZpZWYvcXZGTU9jWHVJQlRjRVRFVHNWNlRyTFdsZkQ2d3NrVitybDFCbEhSbwpqaXpoT3dCU2NOZ3hlbTA3TXE0cXBwYTViYVltVW5QNUlwTjRwdDNJeFVPaFQ4UitxS0h2TnJYZ1hjZGlSYXl4CjFoejhkeFoxckxselpTNHd3M001MVlzQ2dZRUFpUDEwTEUySXg5Q2wrTTdZWTZZU2I0Zkx1MGhKRy9XOGFuemIKSFExZlBrOTVFRytJVlJyRUl2ZS95MHNvOTE4VzdyL0lteWxVbG5ORHFEUWZkK3grSmVNaXBuenRsRUorRGZxdgprQ3c4dUtJUUI5akZXV0l4T0JpVktyVnB6bll6ZG9Gd2dRd3BneDBKazFDZzlIblpMQWpVWUJyUDEwUy9ORFFRClJUdldjK0VDZ1lBeGRIZWxQNG1RdkJaS1oxMlNKbHlLbFVLeW43aHhzSHVkMkphMVNtS3FWeHBERDNlR0w0Y3QKZXA1QTZ5NkF4eGViZkI0aDdYNEZ0QTBBRURPdkZDR0J1QlRvZ3ZBdUNDVUtqK2JIUG1SNG53UVYzcWZ2M3loRAp0TGkwU2FHVElta2wvbUNCUDhZaW9JUys2N0xjby9kbHphUTNGVDlxTnJieFdFWjJlaS9LVlE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==\";\n    var defaultHostShareKey = new AliCloud.BastionHost.HostShareKey(\"default\", new()\n    {\n        HostShareKeyName = name,\n        InstanceId = defaultInstance.Id,\n        PrivateKey = privateKey,\n    });\n\n    var defaultHostAccountShareKeyAttachment = new AliCloud.BastionHost.HostAccountShareKeyAttachment(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        HostShareKeyId = defaultHostShareKey.HostShareKeyId,\n        HostAccountId = defaultHostAccount.HostAccountId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/24\"),\n\t\t\tVpcId:     pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:    pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := bastionhost.NewInstance(ctx, \"default\", \u0026bastionhost.InstanceArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tLicenseCode: pulumi.String(\"bhah_ent_50_asset\"),\n\t\t\tPlanCode:    pulumi.String(\"cloudbastion\"),\n\t\t\tStorage:     pulumi.String(\"5\"),\n\t\t\tBandwidth:   pulumi.String(\"5\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tVswitchId:   pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHost, err := bastionhost.NewHost(ctx, \"default\", \u0026bastionhost.HostArgs{\n\t\t\tInstanceId:         defaultInstance.ID(),\n\t\t\tHostName:           pulumi.String(name),\n\t\t\tActiveAddressType:  pulumi.String(\"Private\"),\n\t\t\tHostPrivateAddress: pulumi.String(\"172.16.0.10\"),\n\t\t\tOsType:             pulumi.String(\"Linux\"),\n\t\t\tSource:             pulumi.String(\"Local\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHostAccount, err := bastionhost.NewHostAccount(ctx, \"default\", \u0026bastionhost.HostAccountArgs{\n\t\t\tHostAccountName: pulumi.String(name),\n\t\t\tHostId:          defaultHost.HostId,\n\t\t\tInstanceId:      defaultHost.InstanceId,\n\t\t\tProtocolName:    pulumi.String(\"SSH\"),\n\t\t\tPassword:        pulumi.String(\"YourPassword12345\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateKey := \"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBc25oc29SSVVwVXltSG1FVHJXUGxDbkhMa3c3N0JYTm44ZHcvbDg3eG10SUhjd2syCkRybjFDZk5jZkpJV0tSdkFaYkdKMlZTS1RiRDhPTmcyT3JvUHFGUHBLOHJ5QjJRb1NYQVRsaUVHWFhNeW1tRm8KeDBmem12THFscUxpNGZnOExhcTc5UC85aGxLU1djTWhJU0pYVTNHMS9KdEFBUmEyQXc4cXEzSVQvMkZ5NktrdwowMU9MdDdLN2pGUFRPaHhtdmNoSkZ1SVo1YXI0cW5HUlFHQnpCL2hoRHVIWEMwRlhJZ2ozd0NXMDZ4R2V2WjJyCmNCWWwwN1luL2lvZk95MU0wRjZZN0JrMU95N21vYndzM1JsalUyL2FpZlhLMmNOUlk2Qjl5WXNvd1RBZmQ5OTQKQ2YxSlF3TlhsaUZCeTZueEJLQk1YbDhIU1grS1o3L29PUlIwVXdJREFRQUJBb0lCQVFDbU5JSXR5ckhSY3oxdApJMGo0L0FQc295ZE1EL0owRkJMa2FoSUxKWjFaYW1tbmx4ZHh4WHBQUndXRnVXTEw2OTFVbDI5aUoxb1ptazU1Ci9ka2EvZlhnOUN3OUxXWVN2aExLdVlaMEZOTmhxZ3VoUEVBZy9uLytlR1ZCM2ZYZkxaZVZpK0E0L1VHMG15ZFMKVXVlQ2ZRSElZeWh4VkgvWnc3WER5WmNhVFVZVVdMUWlYcVN0Y2JRbnZFOXpwOGc5TWh5UkhBcWYwbEt2UTRqdwphUnNKTnlob3lhZWcvUXlFeHVYNGdBR1lIc1lTSDRFVmtXOHl5WE1aOHpRdk1OSUNiYXhmUkRuSngybUh6a09rCnFHczVXbFp5L3VrQk5jWTQwd2Y0eTY2bEVJaVpKbiswaFhtSTF4Tk5SdHRwMjZnY3ROOXZWbmVicTdLTnpjTDgKeFQrMXZJaEpBb0dCQU9iMVM1YlE4NVRFWDBoZTRmdXc2R3ExbnhRLzJUSU03emZhK2VhZThPQlh2eVNFV3JpdwpPZzM3RFhVUDFNVU1iTEJRenE0STl1dE5YSVZadEFLR0h6ZDR6WmtQeGxORjZPN0FyWnJEWElDNEdKZHdmSEhxCjJZcDkxUDlWekJlOVhkTVdZVGFCNkMzWVdtYzQwM08vYWdyRCtNb2JnL0hqMSt0d2xZR2hjdlV2QW9HQkFNWFMKT2VnWHc5VUF3VEZabFBtZzZKeDI3TzNXUFBHd1E3QzRnYitFZzZkR1pLRnJVR1ZId2VUUG1HaGtwN1BmYU5ESwplaFVoUWFnNm9XOTF4dkE2YldZZ29SQmczUWkxc01MblRWeTExeVN1UEVFSCtMT2s1N3d2akNLSk5XZnM0SjVyCmg1NGw0QXZ6UVhyWWN0UlZkSmYrNjFacGFnTkdZMVBvWVJMTHJMSWRBb0dBTndydzErRzJtNWJ0YW04S2hwU1QKMzVLbmRnajlkM3N6cStrcE03aGZpZWYvcXZGTU9jWHVJQlRjRVRFVHNWNlRyTFdsZkQ2d3NrVitybDFCbEhSbwpqaXpoT3dCU2NOZ3hlbTA3TXE0cXBwYTViYVltVW5QNUlwTjRwdDNJeFVPaFQ4UitxS0h2TnJYZ1hjZGlSYXl4CjFoejhkeFoxckxselpTNHd3M001MVlzQ2dZRUFpUDEwTEUySXg5Q2wrTTdZWTZZU2I0Zkx1MGhKRy9XOGFuemIKSFExZlBrOTVFRytJVlJyRUl2ZS95MHNvOTE4VzdyL0lteWxVbG5ORHFEUWZkK3grSmVNaXBuenRsRUorRGZxdgprQ3c4dUtJUUI5akZXV0l4T0JpVktyVnB6bll6ZG9Gd2dRd3BneDBKazFDZzlIblpMQWpVWUJyUDEwUy9ORFFRClJUdldjK0VDZ1lBeGRIZWxQNG1RdkJaS1oxMlNKbHlLbFVLeW43aHhzSHVkMkphMVNtS3FWeHBERDNlR0w0Y3QKZXA1QTZ5NkF4eGViZkI0aDdYNEZ0QTBBRURPdkZDR0J1QlRvZ3ZBdUNDVUtqK2JIUG1SNG53UVYzcWZ2M3loRAp0TGkwU2FHVElta2wvbUNCUDhZaW9JUys2N0xjby9kbHphUTNGVDlxTnJieFdFWjJlaS9LVlE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==\"\n\t\tif param := cfg.Get(\"privateKey\"); param != \"\" {\n\t\t\tprivateKey = param\n\t\t}\n\t\tdefaultHostShareKey, err := bastionhost.NewHostShareKey(ctx, \"default\", \u0026bastionhost.HostShareKeyArgs{\n\t\t\tHostShareKeyName: pulumi.String(name),\n\t\t\tInstanceId:       defaultInstance.ID(),\n\t\t\tPrivateKey:       pulumi.String(privateKey),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bastionhost.NewHostAccountShareKeyAttachment(ctx, \"default\", \u0026bastionhost.HostAccountShareKeyAttachmentArgs{\n\t\t\tInstanceId:     defaultInstance.ID(),\n\t\t\tHostShareKeyId: defaultHostShareKey.HostShareKeyId,\n\t\t\tHostAccountId:  defaultHostAccount.HostAccountId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.bastionhost.Instance;\nimport com.pulumi.alicloud.bastionhost.InstanceArgs;\nimport com.pulumi.alicloud.bastionhost.Host;\nimport com.pulumi.alicloud.bastionhost.HostArgs;\nimport com.pulumi.alicloud.bastionhost.HostAccount;\nimport com.pulumi.alicloud.bastionhost.HostAccountArgs;\nimport com.pulumi.alicloud.bastionhost.HostShareKey;\nimport com.pulumi.alicloud.bastionhost.HostShareKeyArgs;\nimport com.pulumi.alicloud.bastionhost.HostAccountShareKeyAttachment;\nimport com.pulumi.alicloud.bastionhost.HostAccountShareKeyAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .description(name)\n            .licenseCode(\"bhah_ent_50_asset\")\n            .planCode(\"cloudbastion\")\n            .storage(\"5\")\n            .bandwidth(\"5\")\n            .period(1)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n        var defaultHost = new Host(\"defaultHost\", HostArgs.builder()\n            .instanceId(defaultInstance.id())\n            .hostName(name)\n            .activeAddressType(\"Private\")\n            .hostPrivateAddress(\"172.16.0.10\")\n            .osType(\"Linux\")\n            .source(\"Local\")\n            .build());\n\n        var defaultHostAccount = new HostAccount(\"defaultHostAccount\", HostAccountArgs.builder()\n            .hostAccountName(name)\n            .hostId(defaultHost.hostId())\n            .instanceId(defaultHost.instanceId())\n            .protocolName(\"SSH\")\n            .password(\"YourPassword12345\")\n            .build());\n\n        final var privateKey = config.get(\"privateKey\").orElse(\"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBc25oc29SSVVwVXltSG1FVHJXUGxDbkhMa3c3N0JYTm44ZHcvbDg3eG10SUhjd2syCkRybjFDZk5jZkpJV0tSdkFaYkdKMlZTS1RiRDhPTmcyT3JvUHFGUHBLOHJ5QjJRb1NYQVRsaUVHWFhNeW1tRm8KeDBmem12THFscUxpNGZnOExhcTc5UC85aGxLU1djTWhJU0pYVTNHMS9KdEFBUmEyQXc4cXEzSVQvMkZ5NktrdwowMU9MdDdLN2pGUFRPaHhtdmNoSkZ1SVo1YXI0cW5HUlFHQnpCL2hoRHVIWEMwRlhJZ2ozd0NXMDZ4R2V2WjJyCmNCWWwwN1luL2lvZk95MU0wRjZZN0JrMU95N21vYndzM1JsalUyL2FpZlhLMmNOUlk2Qjl5WXNvd1RBZmQ5OTQKQ2YxSlF3TlhsaUZCeTZueEJLQk1YbDhIU1grS1o3L29PUlIwVXdJREFRQUJBb0lCQVFDbU5JSXR5ckhSY3oxdApJMGo0L0FQc295ZE1EL0owRkJMa2FoSUxKWjFaYW1tbmx4ZHh4WHBQUndXRnVXTEw2OTFVbDI5aUoxb1ptazU1Ci9ka2EvZlhnOUN3OUxXWVN2aExLdVlaMEZOTmhxZ3VoUEVBZy9uLytlR1ZCM2ZYZkxaZVZpK0E0L1VHMG15ZFMKVXVlQ2ZRSElZeWh4VkgvWnc3WER5WmNhVFVZVVdMUWlYcVN0Y2JRbnZFOXpwOGc5TWh5UkhBcWYwbEt2UTRqdwphUnNKTnlob3lhZWcvUXlFeHVYNGdBR1lIc1lTSDRFVmtXOHl5WE1aOHpRdk1OSUNiYXhmUkRuSngybUh6a09rCnFHczVXbFp5L3VrQk5jWTQwd2Y0eTY2bEVJaVpKbiswaFhtSTF4Tk5SdHRwMjZnY3ROOXZWbmVicTdLTnpjTDgKeFQrMXZJaEpBb0dCQU9iMVM1YlE4NVRFWDBoZTRmdXc2R3ExbnhRLzJUSU03emZhK2VhZThPQlh2eVNFV3JpdwpPZzM3RFhVUDFNVU1iTEJRenE0STl1dE5YSVZadEFLR0h6ZDR6WmtQeGxORjZPN0FyWnJEWElDNEdKZHdmSEhxCjJZcDkxUDlWekJlOVhkTVdZVGFCNkMzWVdtYzQwM08vYWdyRCtNb2JnL0hqMSt0d2xZR2hjdlV2QW9HQkFNWFMKT2VnWHc5VUF3VEZabFBtZzZKeDI3TzNXUFBHd1E3QzRnYitFZzZkR1pLRnJVR1ZId2VUUG1HaGtwN1BmYU5ESwplaFVoUWFnNm9XOTF4dkE2YldZZ29SQmczUWkxc01MblRWeTExeVN1UEVFSCtMT2s1N3d2akNLSk5XZnM0SjVyCmg1NGw0QXZ6UVhyWWN0UlZkSmYrNjFacGFnTkdZMVBvWVJMTHJMSWRBb0dBTndydzErRzJtNWJ0YW04S2hwU1QKMzVLbmRnajlkM3N6cStrcE03aGZpZWYvcXZGTU9jWHVJQlRjRVRFVHNWNlRyTFdsZkQ2d3NrVitybDFCbEhSbwpqaXpoT3dCU2NOZ3hlbTA3TXE0cXBwYTViYVltVW5QNUlwTjRwdDNJeFVPaFQ4UitxS0h2TnJYZ1hjZGlSYXl4CjFoejhkeFoxckxselpTNHd3M001MVlzQ2dZRUFpUDEwTEUySXg5Q2wrTTdZWTZZU2I0Zkx1MGhKRy9XOGFuemIKSFExZlBrOTVFRytJVlJyRUl2ZS95MHNvOTE4VzdyL0lteWxVbG5ORHFEUWZkK3grSmVNaXBuenRsRUorRGZxdgprQ3c4dUtJUUI5akZXV0l4T0JpVktyVnB6bll6ZG9Gd2dRd3BneDBKazFDZzlIblpMQWpVWUJyUDEwUy9ORFFRClJUdldjK0VDZ1lBeGRIZWxQNG1RdkJaS1oxMlNKbHlLbFVLeW43aHhzSHVkMkphMVNtS3FWeHBERDNlR0w0Y3QKZXA1QTZ5NkF4eGViZkI0aDdYNEZ0QTBBRURPdkZDR0J1QlRvZ3ZBdUNDVUtqK2JIUG1SNG53UVYzcWZ2M3loRAp0TGkwU2FHVElta2wvbUNCUDhZaW9JUys2N0xjby9kbHphUTNGVDlxTnJieFdFWjJlaS9LVlE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==\");\n        var defaultHostShareKey = new HostShareKey(\"defaultHostShareKey\", HostShareKeyArgs.builder()\n            .hostShareKeyName(name)\n            .instanceId(defaultInstance.id())\n            .privateKey(privateKey)\n            .build());\n\n        var defaultHostAccountShareKeyAttachment = new HostAccountShareKeyAttachment(\"defaultHostAccountShareKeyAttachment\", HostAccountShareKeyAttachmentArgs.builder()\n            .instanceId(defaultInstance.id())\n            .hostShareKeyId(defaultHostShareKey.hostShareKeyId())\n            .hostAccountId(defaultHostAccount.hostAccountId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\n  privateKey:\n    type: string\n    default: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBc25oc29SSVVwVXltSG1FVHJXUGxDbkhMa3c3N0JYTm44ZHcvbDg3eG10SUhjd2syCkRybjFDZk5jZkpJV0tSdkFaYkdKMlZTS1RiRDhPTmcyT3JvUHFGUHBLOHJ5QjJRb1NYQVRsaUVHWFhNeW1tRm8KeDBmem12THFscUxpNGZnOExhcTc5UC85aGxLU1djTWhJU0pYVTNHMS9KdEFBUmEyQXc4cXEzSVQvMkZ5NktrdwowMU9MdDdLN2pGUFRPaHhtdmNoSkZ1SVo1YXI0cW5HUlFHQnpCL2hoRHVIWEMwRlhJZ2ozd0NXMDZ4R2V2WjJyCmNCWWwwN1luL2lvZk95MU0wRjZZN0JrMU95N21vYndzM1JsalUyL2FpZlhLMmNOUlk2Qjl5WXNvd1RBZmQ5OTQKQ2YxSlF3TlhsaUZCeTZueEJLQk1YbDhIU1grS1o3L29PUlIwVXdJREFRQUJBb0lCQVFDbU5JSXR5ckhSY3oxdApJMGo0L0FQc295ZE1EL0owRkJMa2FoSUxKWjFaYW1tbmx4ZHh4WHBQUndXRnVXTEw2OTFVbDI5aUoxb1ptazU1Ci9ka2EvZlhnOUN3OUxXWVN2aExLdVlaMEZOTmhxZ3VoUEVBZy9uLytlR1ZCM2ZYZkxaZVZpK0E0L1VHMG15ZFMKVXVlQ2ZRSElZeWh4VkgvWnc3WER5WmNhVFVZVVdMUWlYcVN0Y2JRbnZFOXpwOGc5TWh5UkhBcWYwbEt2UTRqdwphUnNKTnlob3lhZWcvUXlFeHVYNGdBR1lIc1lTSDRFVmtXOHl5WE1aOHpRdk1OSUNiYXhmUkRuSngybUh6a09rCnFHczVXbFp5L3VrQk5jWTQwd2Y0eTY2bEVJaVpKbiswaFhtSTF4Tk5SdHRwMjZnY3ROOXZWbmVicTdLTnpjTDgKeFQrMXZJaEpBb0dCQU9iMVM1YlE4NVRFWDBoZTRmdXc2R3ExbnhRLzJUSU03emZhK2VhZThPQlh2eVNFV3JpdwpPZzM3RFhVUDFNVU1iTEJRenE0STl1dE5YSVZadEFLR0h6ZDR6WmtQeGxORjZPN0FyWnJEWElDNEdKZHdmSEhxCjJZcDkxUDlWekJlOVhkTVdZVGFCNkMzWVdtYzQwM08vYWdyRCtNb2JnL0hqMSt0d2xZR2hjdlV2QW9HQkFNWFMKT2VnWHc5VUF3VEZabFBtZzZKeDI3TzNXUFBHd1E3QzRnYitFZzZkR1pLRnJVR1ZId2VUUG1HaGtwN1BmYU5ESwplaFVoUWFnNm9XOTF4dkE2YldZZ29SQmczUWkxc01MblRWeTExeVN1UEVFSCtMT2s1N3d2akNLSk5XZnM0SjVyCmg1NGw0QXZ6UVhyWWN0UlZkSmYrNjFacGFnTkdZMVBvWVJMTHJMSWRBb0dBTndydzErRzJtNWJ0YW04S2hwU1QKMzVLbmRnajlkM3N6cStrcE03aGZpZWYvcXZGTU9jWHVJQlRjRVRFVHNWNlRyTFdsZkQ2d3NrVitybDFCbEhSbwpqaXpoT3dCU2NOZ3hlbTA3TXE0cXBwYTViYVltVW5QNUlwTjRwdDNJeFVPaFQ4UitxS0h2TnJYZ1hjZGlSYXl4CjFoejhkeFoxckxselpTNHd3M001MVlzQ2dZRUFpUDEwTEUySXg5Q2wrTTdZWTZZU2I0Zkx1MGhKRy9XOGFuemIKSFExZlBrOTVFRytJVlJyRUl2ZS95MHNvOTE4VzdyL0lteWxVbG5ORHFEUWZkK3grSmVNaXBuenRsRUorRGZxdgprQ3c4dUtJUUI5akZXV0l4T0JpVktyVnB6bll6ZG9Gd2dRd3BneDBKazFDZzlIblpMQWpVWUJyUDEwUy9ORFFRClJUdldjK0VDZ1lBeGRIZWxQNG1RdkJaS1oxMlNKbHlLbFVLeW43aHhzSHVkMkphMVNtS3FWeHBERDNlR0w0Y3QKZXA1QTZ5NkF4eGViZkI0aDdYNEZ0QTBBRURPdkZDR0J1QlRvZ3ZBdUNDVUtqK2JIUG1SNG53UVYzcWZ2M3loRAp0TGkwU2FHVElta2wvbUNCUDhZaW9JUys2N0xjby9kbHphUTNGVDlxTnJieFdFWjJlaS9LVlE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultInstance:\n    type: alicloud:bastionhost:Instance\n    name: default\n    properties:\n      description: ${name}\n      licenseCode: bhah_ent_50_asset\n      planCode: cloudbastion\n      storage: '5'\n      bandwidth: '5'\n      period: '1'\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n  defaultHost:\n    type: alicloud:bastionhost:Host\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      hostName: ${name}\n      activeAddressType: Private\n      hostPrivateAddress: 172.16.0.10\n      osType: Linux\n      source: Local\n  defaultHostAccount:\n    type: alicloud:bastionhost:HostAccount\n    name: default\n    properties:\n      hostAccountName: ${name}\n      hostId: ${defaultHost.hostId}\n      instanceId: ${defaultHost.instanceId}\n      protocolName: SSH\n      password: YourPassword12345\n  defaultHostShareKey:\n    type: alicloud:bastionhost:HostShareKey\n    name: default\n    properties:\n      hostShareKeyName: ${name}\n      instanceId: ${defaultInstance.id}\n      privateKey: ${privateKey}\n  defaultHostAccountShareKeyAttachment:\n    type: alicloud:bastionhost:HostAccountShareKeyAttachment\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      hostShareKeyId: ${defaultHostShareKey.hostShareKeyId}\n      hostAccountId: ${defaultHostAccount.hostAccountId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 10.4.0.0/16\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        cidrBlock: 10.4.0.0/24\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nBastion Host Account Share Key Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:bastionhost/hostAccountShareKeyAttachment:HostAccountShareKeyAttachment example \u003cinstance_id\u003e:\u003chost_share_key_id\u003e:\u003chost_account_id\u003e\n```\n\n","properties":{"hostAccountId":{"type":"string","description":"The ID list of the host account.\n"},"hostShareKeyId":{"type":"string","description":"The ID of the host shared key.\n"},"instanceId":{"type":"string","description":"The ID of the Bastion machine instance.\n"}},"required":["hostAccountId","hostShareKeyId","instanceId"],"inputProperties":{"hostAccountId":{"type":"string","description":"The ID list of the host account.\n","willReplaceOnChanges":true},"hostShareKeyId":{"type":"string","description":"The ID of the host shared key.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Bastion machine instance.\n","willReplaceOnChanges":true}},"requiredInputs":["hostAccountId","hostShareKeyId","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering HostAccountShareKeyAttachment resources.\n","properties":{"hostAccountId":{"type":"string","description":"The ID list of the host account.\n","willReplaceOnChanges":true},"hostShareKeyId":{"type":"string","description":"The ID of the host shared key.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Bastion machine instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:bastionhost/hostAccountUserAttachment:HostAccountUserAttachment":{"description":"Provides a Bastion Host Host Account Attachment resource to add list host accounts into one user.\n\n\u003e **NOTE:** Available since v1.135.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0])});\nconst defaultInstance = new alicloud.bastionhost.Instance(\"default\", {\n    description: name,\n    licenseCode: \"bhah_ent_50_asset\",\n    planCode: \"cloudbastion\",\n    storage: \"5\",\n    bandwidth: \"5\",\n    period: 1,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    securityGroupIds: [defaultSecurityGroup.id],\n});\nconst defaultHost = new alicloud.bastionhost.Host(\"default\", {\n    instanceId: defaultInstance.id,\n    hostName: name,\n    activeAddressType: \"Private\",\n    hostPrivateAddress: \"172.16.0.10\",\n    osType: \"Linux\",\n    source: \"Local\",\n});\nconst defaultHostAccount = new alicloud.bastionhost.HostAccount(\"default\", {\n    hostAccountName: name,\n    hostId: defaultHost.hostId,\n    instanceId: defaultHost.instanceId,\n    protocolName: \"SSH\",\n    password: \"YourPassword12345\",\n});\nconst localUser = new alicloud.bastionhost.User(\"local_user\", {\n    instanceId: defaultInstance.id,\n    mobileCountryCode: \"CN\",\n    mobile: \"13312345678\",\n    password: \"YourPassword-123\",\n    source: \"Local\",\n    userName: `${name}_local_user`,\n});\nconst defaultHostAccountUserAttachment = new alicloud.bastionhost.HostAccountUserAttachment(\"default\", {\n    instanceId: defaultHost.instanceId,\n    userId: localUser.userId,\n    hostId: defaultHost.hostId,\n    hostAccountIds: [defaultHostAccount.hostAccountId],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_get_switches = alicloud.vpc.get_switches(cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.bastionhost.Instance(\"default\",\n    description=name,\n    license_code=\"bhah_ent_50_asset\",\n    plan_code=\"cloudbastion\",\n    storage=\"5\",\n    bandwidth=\"5\",\n    period=1,\n    vswitch_id=default_get_switches.ids[0],\n    security_group_ids=[default_security_group.id])\ndefault_host = alicloud.bastionhost.Host(\"default\",\n    instance_id=default_instance.id,\n    host_name=name,\n    active_address_type=\"Private\",\n    host_private_address=\"172.16.0.10\",\n    os_type=\"Linux\",\n    source=\"Local\")\ndefault_host_account = alicloud.bastionhost.HostAccount(\"default\",\n    host_account_name=name,\n    host_id=default_host.host_id,\n    instance_id=default_host.instance_id,\n    protocol_name=\"SSH\",\n    password=\"YourPassword12345\")\nlocal_user = alicloud.bastionhost.User(\"local_user\",\n    instance_id=default_instance.id,\n    mobile_country_code=\"CN\",\n    mobile=\"13312345678\",\n    password=\"YourPassword-123\",\n    source=\"Local\",\n    user_name=f\"{name}_local_user\")\ndefault_host_account_user_attachment = alicloud.bastionhost.HostAccountUserAttachment(\"default\",\n    instance_id=default_host.instance_id,\n    user_id=local_user.user_id,\n    host_id=default_host.host_id,\n    host_account_ids=[default_host_account.host_account_id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.BastionHost.Instance(\"default\", new()\n    {\n        Description = name,\n        LicenseCode = \"bhah_ent_50_asset\",\n        PlanCode = \"cloudbastion\",\n        Storage = \"5\",\n        Bandwidth = \"5\",\n        Period = 1,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var defaultHost = new AliCloud.BastionHost.Host(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        HostName = name,\n        ActiveAddressType = \"Private\",\n        HostPrivateAddress = \"172.16.0.10\",\n        OsType = \"Linux\",\n        Source = \"Local\",\n    });\n\n    var defaultHostAccount = new AliCloud.BastionHost.HostAccount(\"default\", new()\n    {\n        HostAccountName = name,\n        HostId = defaultHost.HostId,\n        InstanceId = defaultHost.InstanceId,\n        ProtocolName = \"SSH\",\n        Password = \"YourPassword12345\",\n    });\n\n    var localUser = new AliCloud.BastionHost.User(\"local_user\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        MobileCountryCode = \"CN\",\n        Mobile = \"13312345678\",\n        Password = \"YourPassword-123\",\n        Source = \"Local\",\n        UserName = $\"{name}_local_user\",\n    });\n\n    var defaultHostAccountUserAttachment = new AliCloud.BastionHost.HostAccountUserAttachment(\"default\", new()\n    {\n        InstanceId = defaultHost.InstanceId,\n        UserId = localUser.UserId,\n        HostId = defaultHost.HostId,\n        HostAccountIds = new[]\n        {\n            defaultHostAccount.HostAccountId,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/24\"),\n\t\t\tVpcId:     pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:    pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := bastionhost.NewInstance(ctx, \"default\", \u0026bastionhost.InstanceArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tLicenseCode: pulumi.String(\"bhah_ent_50_asset\"),\n\t\t\tPlanCode:    pulumi.String(\"cloudbastion\"),\n\t\t\tStorage:     pulumi.String(\"5\"),\n\t\t\tBandwidth:   pulumi.String(\"5\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tVswitchId:   pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHost, err := bastionhost.NewHost(ctx, \"default\", \u0026bastionhost.HostArgs{\n\t\t\tInstanceId:         defaultInstance.ID(),\n\t\t\tHostName:           pulumi.String(name),\n\t\t\tActiveAddressType:  pulumi.String(\"Private\"),\n\t\t\tHostPrivateAddress: pulumi.String(\"172.16.0.10\"),\n\t\t\tOsType:             pulumi.String(\"Linux\"),\n\t\t\tSource:             pulumi.String(\"Local\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHostAccount, err := bastionhost.NewHostAccount(ctx, \"default\", \u0026bastionhost.HostAccountArgs{\n\t\t\tHostAccountName: pulumi.String(name),\n\t\t\tHostId:          defaultHost.HostId,\n\t\t\tInstanceId:      defaultHost.InstanceId,\n\t\t\tProtocolName:    pulumi.String(\"SSH\"),\n\t\t\tPassword:        pulumi.String(\"YourPassword12345\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlocalUser, err := bastionhost.NewUser(ctx, \"local_user\", \u0026bastionhost.UserArgs{\n\t\t\tInstanceId:        defaultInstance.ID(),\n\t\t\tMobileCountryCode: pulumi.String(\"CN\"),\n\t\t\tMobile:            pulumi.String(\"13312345678\"),\n\t\t\tPassword:          pulumi.String(\"YourPassword-123\"),\n\t\t\tSource:            pulumi.String(\"Local\"),\n\t\t\tUserName:          pulumi.Sprintf(\"%v_local_user\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bastionhost.NewHostAccountUserAttachment(ctx, \"default\", \u0026bastionhost.HostAccountUserAttachmentArgs{\n\t\t\tInstanceId: defaultHost.InstanceId,\n\t\t\tUserId:     localUser.UserId,\n\t\t\tHostId:     defaultHost.HostId,\n\t\t\tHostAccountIds: pulumi.StringArray{\n\t\t\t\tdefaultHostAccount.HostAccountId,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.bastionhost.Instance;\nimport com.pulumi.alicloud.bastionhost.InstanceArgs;\nimport com.pulumi.alicloud.bastionhost.Host;\nimport com.pulumi.alicloud.bastionhost.HostArgs;\nimport com.pulumi.alicloud.bastionhost.HostAccount;\nimport com.pulumi.alicloud.bastionhost.HostAccountArgs;\nimport com.pulumi.alicloud.bastionhost.User;\nimport com.pulumi.alicloud.bastionhost.UserArgs;\nimport com.pulumi.alicloud.bastionhost.HostAccountUserAttachment;\nimport com.pulumi.alicloud.bastionhost.HostAccountUserAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .description(name)\n            .licenseCode(\"bhah_ent_50_asset\")\n            .planCode(\"cloudbastion\")\n            .storage(\"5\")\n            .bandwidth(\"5\")\n            .period(1)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n        var defaultHost = new Host(\"defaultHost\", HostArgs.builder()\n            .instanceId(defaultInstance.id())\n            .hostName(name)\n            .activeAddressType(\"Private\")\n            .hostPrivateAddress(\"172.16.0.10\")\n            .osType(\"Linux\")\n            .source(\"Local\")\n            .build());\n\n        var defaultHostAccount = new HostAccount(\"defaultHostAccount\", HostAccountArgs.builder()\n            .hostAccountName(name)\n            .hostId(defaultHost.hostId())\n            .instanceId(defaultHost.instanceId())\n            .protocolName(\"SSH\")\n            .password(\"YourPassword12345\")\n            .build());\n\n        var localUser = new User(\"localUser\", UserArgs.builder()\n            .instanceId(defaultInstance.id())\n            .mobileCountryCode(\"CN\")\n            .mobile(\"13312345678\")\n            .password(\"YourPassword-123\")\n            .source(\"Local\")\n            .userName(String.format(\"%s_local_user\", name))\n            .build());\n\n        var defaultHostAccountUserAttachment = new HostAccountUserAttachment(\"defaultHostAccountUserAttachment\", HostAccountUserAttachmentArgs.builder()\n            .instanceId(defaultHost.instanceId())\n            .userId(localUser.userId())\n            .hostId(defaultHost.hostId())\n            .hostAccountIds(defaultHostAccount.hostAccountId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultInstance:\n    type: alicloud:bastionhost:Instance\n    name: default\n    properties:\n      description: ${name}\n      licenseCode: bhah_ent_50_asset\n      planCode: cloudbastion\n      storage: '5'\n      bandwidth: '5'\n      period: '1'\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n  defaultHost:\n    type: alicloud:bastionhost:Host\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      hostName: ${name}\n      activeAddressType: Private\n      hostPrivateAddress: 172.16.0.10\n      osType: Linux\n      source: Local\n  defaultHostAccount:\n    type: alicloud:bastionhost:HostAccount\n    name: default\n    properties:\n      hostAccountName: ${name}\n      hostId: ${defaultHost.hostId}\n      instanceId: ${defaultHost.instanceId}\n      protocolName: SSH\n      password: YourPassword12345\n  localUser:\n    type: alicloud:bastionhost:User\n    name: local_user\n    properties:\n      instanceId: ${defaultInstance.id}\n      mobileCountryCode: CN\n      mobile: '13312345678'\n      password: YourPassword-123\n      source: Local\n      userName: ${name}_local_user\n  defaultHostAccountUserAttachment:\n    type: alicloud:bastionhost:HostAccountUserAttachment\n    name: default\n    properties:\n      instanceId: ${defaultHost.instanceId}\n      userId: ${localUser.userId}\n      hostId: ${defaultHost.hostId}\n      hostAccountIds:\n        - ${defaultHostAccount.hostAccountId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 10.4.0.0/16\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        cidrBlock: 10.4.0.0/24\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nBastion Host Host Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:bastionhost/hostAccountUserAttachment:HostAccountUserAttachment example \u003cinstance_id\u003e:\u003cuser_id\u003e:\u003chost_id\u003e\n```\n\n","properties":{"hostAccountIds":{"type":"array","items":{"type":"string"},"description":"A list IDs of the host account.\n"},"hostId":{"type":"string","description":"The ID of the host.\n"},"instanceId":{"type":"string","description":"The ID of the Bastionhost instance where you want to authorize the user to manage the specified hosts and host accounts.\n"},"userId":{"type":"string","description":"The ID of the user that you want to authorize to manage the specified hosts and host accounts.\n"}},"required":["hostAccountIds","hostId","instanceId","userId"],"inputProperties":{"hostAccountIds":{"type":"array","items":{"type":"string"},"description":"A list IDs of the host account.\n"},"hostId":{"type":"string","description":"The ID of the host.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Bastionhost instance where you want to authorize the user to manage the specified hosts and host accounts.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of the user that you want to authorize to manage the specified hosts and host accounts.\n","willReplaceOnChanges":true}},"requiredInputs":["hostAccountIds","hostId","instanceId","userId"],"stateInputs":{"description":"Input properties used for looking up and filtering HostAccountUserAttachment resources.\n","properties":{"hostAccountIds":{"type":"array","items":{"type":"string"},"description":"A list IDs of the host account.\n"},"hostId":{"type":"string","description":"The ID of the host.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Bastionhost instance where you want to authorize the user to manage the specified hosts and host accounts.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of the user that you want to authorize to manage the specified hosts and host accounts.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:bastionhost/hostAccountUserGroupAttachment:HostAccountUserGroupAttachment":{"description":"Provides a Bastion Host Host Account Attachment resource to add list host accounts into one user group.\n\n\u003e **NOTE:** Available since v1.135.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0])});\nconst defaultInstance = new alicloud.bastionhost.Instance(\"default\", {\n    description: name,\n    licenseCode: \"bhah_ent_50_asset\",\n    planCode: \"cloudbastion\",\n    storage: \"5\",\n    bandwidth: \"5\",\n    period: 1,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    securityGroupIds: [defaultSecurityGroup.id],\n});\nconst defaultHost = new alicloud.bastionhost.Host(\"default\", {\n    instanceId: defaultInstance.id,\n    hostName: name,\n    activeAddressType: \"Private\",\n    hostPrivateAddress: \"172.16.0.10\",\n    osType: \"Linux\",\n    source: \"Local\",\n});\nconst defaultHostAccount = new alicloud.bastionhost.HostAccount(\"default\", {\n    hostAccountName: name,\n    hostId: defaultHost.hostId,\n    instanceId: defaultHost.instanceId,\n    protocolName: \"SSH\",\n    password: \"YourPassword12345\",\n});\nconst defaultUserGroup = new alicloud.bastionhost.UserGroup(\"default\", {\n    instanceId: defaultHost.instanceId,\n    userGroupName: name,\n});\nconst defaultHostAccountUserGroupAttachment = new alicloud.bastionhost.HostAccountUserGroupAttachment(\"default\", {\n    instanceId: defaultHost.instanceId,\n    userGroupId: defaultUserGroup.userGroupId,\n    hostId: defaultHost.hostId,\n    hostAccountIds: [defaultHostAccount.hostAccountId],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_get_switches = alicloud.vpc.get_switches(cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.bastionhost.Instance(\"default\",\n    description=name,\n    license_code=\"bhah_ent_50_asset\",\n    plan_code=\"cloudbastion\",\n    storage=\"5\",\n    bandwidth=\"5\",\n    period=1,\n    vswitch_id=default_get_switches.ids[0],\n    security_group_ids=[default_security_group.id])\ndefault_host = alicloud.bastionhost.Host(\"default\",\n    instance_id=default_instance.id,\n    host_name=name,\n    active_address_type=\"Private\",\n    host_private_address=\"172.16.0.10\",\n    os_type=\"Linux\",\n    source=\"Local\")\ndefault_host_account = alicloud.bastionhost.HostAccount(\"default\",\n    host_account_name=name,\n    host_id=default_host.host_id,\n    instance_id=default_host.instance_id,\n    protocol_name=\"SSH\",\n    password=\"YourPassword12345\")\ndefault_user_group = alicloud.bastionhost.UserGroup(\"default\",\n    instance_id=default_host.instance_id,\n    user_group_name=name)\ndefault_host_account_user_group_attachment = alicloud.bastionhost.HostAccountUserGroupAttachment(\"default\",\n    instance_id=default_host.instance_id,\n    user_group_id=default_user_group.user_group_id,\n    host_id=default_host.host_id,\n    host_account_ids=[default_host_account.host_account_id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.BastionHost.Instance(\"default\", new()\n    {\n        Description = name,\n        LicenseCode = \"bhah_ent_50_asset\",\n        PlanCode = \"cloudbastion\",\n        Storage = \"5\",\n        Bandwidth = \"5\",\n        Period = 1,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var defaultHost = new AliCloud.BastionHost.Host(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        HostName = name,\n        ActiveAddressType = \"Private\",\n        HostPrivateAddress = \"172.16.0.10\",\n        OsType = \"Linux\",\n        Source = \"Local\",\n    });\n\n    var defaultHostAccount = new AliCloud.BastionHost.HostAccount(\"default\", new()\n    {\n        HostAccountName = name,\n        HostId = defaultHost.HostId,\n        InstanceId = defaultHost.InstanceId,\n        ProtocolName = \"SSH\",\n        Password = \"YourPassword12345\",\n    });\n\n    var defaultUserGroup = new AliCloud.BastionHost.UserGroup(\"default\", new()\n    {\n        InstanceId = defaultHost.InstanceId,\n        UserGroupName = name,\n    });\n\n    var defaultHostAccountUserGroupAttachment = new AliCloud.BastionHost.HostAccountUserGroupAttachment(\"default\", new()\n    {\n        InstanceId = defaultHost.InstanceId,\n        UserGroupId = defaultUserGroup.UserGroupId,\n        HostId = defaultHost.HostId,\n        HostAccountIds = new[]\n        {\n            defaultHostAccount.HostAccountId,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/24\"),\n\t\t\tVpcId:     pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:    pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := bastionhost.NewInstance(ctx, \"default\", \u0026bastionhost.InstanceArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tLicenseCode: pulumi.String(\"bhah_ent_50_asset\"),\n\t\t\tPlanCode:    pulumi.String(\"cloudbastion\"),\n\t\t\tStorage:     pulumi.String(\"5\"),\n\t\t\tBandwidth:   pulumi.String(\"5\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tVswitchId:   pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHost, err := bastionhost.NewHost(ctx, \"default\", \u0026bastionhost.HostArgs{\n\t\t\tInstanceId:         defaultInstance.ID(),\n\t\t\tHostName:           pulumi.String(name),\n\t\t\tActiveAddressType:  pulumi.String(\"Private\"),\n\t\t\tHostPrivateAddress: pulumi.String(\"172.16.0.10\"),\n\t\t\tOsType:             pulumi.String(\"Linux\"),\n\t\t\tSource:             pulumi.String(\"Local\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHostAccount, err := bastionhost.NewHostAccount(ctx, \"default\", \u0026bastionhost.HostAccountArgs{\n\t\t\tHostAccountName: pulumi.String(name),\n\t\t\tHostId:          defaultHost.HostId,\n\t\t\tInstanceId:      defaultHost.InstanceId,\n\t\t\tProtocolName:    pulumi.String(\"SSH\"),\n\t\t\tPassword:        pulumi.String(\"YourPassword12345\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultUserGroup, err := bastionhost.NewUserGroup(ctx, \"default\", \u0026bastionhost.UserGroupArgs{\n\t\t\tInstanceId:    defaultHost.InstanceId,\n\t\t\tUserGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bastionhost.NewHostAccountUserGroupAttachment(ctx, \"default\", \u0026bastionhost.HostAccountUserGroupAttachmentArgs{\n\t\t\tInstanceId:  defaultHost.InstanceId,\n\t\t\tUserGroupId: defaultUserGroup.UserGroupId,\n\t\t\tHostId:      defaultHost.HostId,\n\t\t\tHostAccountIds: pulumi.StringArray{\n\t\t\t\tdefaultHostAccount.HostAccountId,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.bastionhost.Instance;\nimport com.pulumi.alicloud.bastionhost.InstanceArgs;\nimport com.pulumi.alicloud.bastionhost.Host;\nimport com.pulumi.alicloud.bastionhost.HostArgs;\nimport com.pulumi.alicloud.bastionhost.HostAccount;\nimport com.pulumi.alicloud.bastionhost.HostAccountArgs;\nimport com.pulumi.alicloud.bastionhost.UserGroup;\nimport com.pulumi.alicloud.bastionhost.UserGroupArgs;\nimport com.pulumi.alicloud.bastionhost.HostAccountUserGroupAttachment;\nimport com.pulumi.alicloud.bastionhost.HostAccountUserGroupAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .description(name)\n            .licenseCode(\"bhah_ent_50_asset\")\n            .planCode(\"cloudbastion\")\n            .storage(\"5\")\n            .bandwidth(\"5\")\n            .period(1)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n        var defaultHost = new Host(\"defaultHost\", HostArgs.builder()\n            .instanceId(defaultInstance.id())\n            .hostName(name)\n            .activeAddressType(\"Private\")\n            .hostPrivateAddress(\"172.16.0.10\")\n            .osType(\"Linux\")\n            .source(\"Local\")\n            .build());\n\n        var defaultHostAccount = new HostAccount(\"defaultHostAccount\", HostAccountArgs.builder()\n            .hostAccountName(name)\n            .hostId(defaultHost.hostId())\n            .instanceId(defaultHost.instanceId())\n            .protocolName(\"SSH\")\n            .password(\"YourPassword12345\")\n            .build());\n\n        var defaultUserGroup = new UserGroup(\"defaultUserGroup\", UserGroupArgs.builder()\n            .instanceId(defaultHost.instanceId())\n            .userGroupName(name)\n            .build());\n\n        var defaultHostAccountUserGroupAttachment = new HostAccountUserGroupAttachment(\"defaultHostAccountUserGroupAttachment\", HostAccountUserGroupAttachmentArgs.builder()\n            .instanceId(defaultHost.instanceId())\n            .userGroupId(defaultUserGroup.userGroupId())\n            .hostId(defaultHost.hostId())\n            .hostAccountIds(defaultHostAccount.hostAccountId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultInstance:\n    type: alicloud:bastionhost:Instance\n    name: default\n    properties:\n      description: ${name}\n      licenseCode: bhah_ent_50_asset\n      planCode: cloudbastion\n      storage: '5'\n      bandwidth: '5'\n      period: '1'\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n  defaultHost:\n    type: alicloud:bastionhost:Host\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      hostName: ${name}\n      activeAddressType: Private\n      hostPrivateAddress: 172.16.0.10\n      osType: Linux\n      source: Local\n  defaultHostAccount:\n    type: alicloud:bastionhost:HostAccount\n    name: default\n    properties:\n      hostAccountName: ${name}\n      hostId: ${defaultHost.hostId}\n      instanceId: ${defaultHost.instanceId}\n      protocolName: SSH\n      password: YourPassword12345\n  defaultUserGroup:\n    type: alicloud:bastionhost:UserGroup\n    name: default\n    properties:\n      instanceId: ${defaultHost.instanceId}\n      userGroupName: ${name}\n  defaultHostAccountUserGroupAttachment:\n    type: alicloud:bastionhost:HostAccountUserGroupAttachment\n    name: default\n    properties:\n      instanceId: ${defaultHost.instanceId}\n      userGroupId: ${defaultUserGroup.userGroupId}\n      hostId: ${defaultHost.hostId}\n      hostAccountIds:\n        - ${defaultHostAccount.hostAccountId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 10.4.0.0/16\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        cidrBlock: 10.4.0.0/24\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nBastion Host Host Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:bastionhost/hostAccountUserGroupAttachment:HostAccountUserGroupAttachment example \u003cinstance_id\u003e:\u003cuser_group_id\u003e:\u003chost_id\u003e\n```\n\n","properties":{"hostAccountIds":{"type":"array","items":{"type":"string"},"description":"A list IDs of the host account.\n"},"hostId":{"type":"string","description":"The ID of the host.\n"},"instanceId":{"type":"string","description":"The ID of the Bastionhost instance where you want to authorize the user group to manage the specified hosts and host accounts.\n"},"userGroupId":{"type":"string","description":"The ID of the user group that you want to authorize to manage the specified hosts and host accounts.\n"}},"required":["hostAccountIds","hostId","instanceId","userGroupId"],"inputProperties":{"hostAccountIds":{"type":"array","items":{"type":"string"},"description":"A list IDs of the host account.\n"},"hostId":{"type":"string","description":"The ID of the host.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Bastionhost instance where you want to authorize the user group to manage the specified hosts and host accounts.\n","willReplaceOnChanges":true},"userGroupId":{"type":"string","description":"The ID of the user group that you want to authorize to manage the specified hosts and host accounts.\n","willReplaceOnChanges":true}},"requiredInputs":["hostAccountIds","hostId","instanceId","userGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering HostAccountUserGroupAttachment resources.\n","properties":{"hostAccountIds":{"type":"array","items":{"type":"string"},"description":"A list IDs of the host account.\n"},"hostId":{"type":"string","description":"The ID of the host.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Bastionhost instance where you want to authorize the user group to manage the specified hosts and host accounts.\n","willReplaceOnChanges":true},"userGroupId":{"type":"string","description":"The ID of the user group that you want to authorize to manage the specified hosts and host accounts.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:bastionhost/hostAttachment:HostAttachment":{"description":"Provides a Bastion Host Host Attachment resource to add host into one host group.\n\n\u003e **NOTE:** Available since v1.135.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0])});\nconst defaultInstance = new alicloud.bastionhost.Instance(\"default\", {\n    description: name,\n    licenseCode: \"bhah_ent_50_asset\",\n    planCode: \"cloudbastion\",\n    storage: \"5\",\n    bandwidth: \"5\",\n    period: 1,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    securityGroupIds: [defaultSecurityGroup.id],\n});\nconst defaultHostGroup = new alicloud.bastionhost.HostGroup(\"default\", {\n    hostGroupName: name,\n    instanceId: defaultInstance.id,\n});\nconst defaultHost = new alicloud.bastionhost.Host(\"default\", {\n    instanceId: defaultInstance.id,\n    hostName: name,\n    activeAddressType: \"Private\",\n    hostPrivateAddress: \"172.16.0.10\",\n    osType: \"Linux\",\n    source: \"Local\",\n});\nconst defaultHostAttachment = new alicloud.bastionhost.HostAttachment(\"default\", {\n    hostGroupId: defaultHostGroup.hostGroupId,\n    hostId: defaultHost.hostId,\n    instanceId: defaultInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_get_switches = alicloud.vpc.get_switches(cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.bastionhost.Instance(\"default\",\n    description=name,\n    license_code=\"bhah_ent_50_asset\",\n    plan_code=\"cloudbastion\",\n    storage=\"5\",\n    bandwidth=\"5\",\n    period=1,\n    vswitch_id=default_get_switches.ids[0],\n    security_group_ids=[default_security_group.id])\ndefault_host_group = alicloud.bastionhost.HostGroup(\"default\",\n    host_group_name=name,\n    instance_id=default_instance.id)\ndefault_host = alicloud.bastionhost.Host(\"default\",\n    instance_id=default_instance.id,\n    host_name=name,\n    active_address_type=\"Private\",\n    host_private_address=\"172.16.0.10\",\n    os_type=\"Linux\",\n    source=\"Local\")\ndefault_host_attachment = alicloud.bastionhost.HostAttachment(\"default\",\n    host_group_id=default_host_group.host_group_id,\n    host_id=default_host.host_id,\n    instance_id=default_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.BastionHost.Instance(\"default\", new()\n    {\n        Description = name,\n        LicenseCode = \"bhah_ent_50_asset\",\n        PlanCode = \"cloudbastion\",\n        Storage = \"5\",\n        Bandwidth = \"5\",\n        Period = 1,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var defaultHostGroup = new AliCloud.BastionHost.HostGroup(\"default\", new()\n    {\n        HostGroupName = name,\n        InstanceId = defaultInstance.Id,\n    });\n\n    var defaultHost = new AliCloud.BastionHost.Host(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        HostName = name,\n        ActiveAddressType = \"Private\",\n        HostPrivateAddress = \"172.16.0.10\",\n        OsType = \"Linux\",\n        Source = \"Local\",\n    });\n\n    var defaultHostAttachment = new AliCloud.BastionHost.HostAttachment(\"default\", new()\n    {\n        HostGroupId = defaultHostGroup.HostGroupId,\n        HostId = defaultHost.HostId,\n        InstanceId = defaultInstance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/24\"),\n\t\t\tVpcId:     pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:    pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := bastionhost.NewInstance(ctx, \"default\", \u0026bastionhost.InstanceArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tLicenseCode: pulumi.String(\"bhah_ent_50_asset\"),\n\t\t\tPlanCode:    pulumi.String(\"cloudbastion\"),\n\t\t\tStorage:     pulumi.String(\"5\"),\n\t\t\tBandwidth:   pulumi.String(\"5\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tVswitchId:   pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHostGroup, err := bastionhost.NewHostGroup(ctx, \"default\", \u0026bastionhost.HostGroupArgs{\n\t\t\tHostGroupName: pulumi.String(name),\n\t\t\tInstanceId:    defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHost, err := bastionhost.NewHost(ctx, \"default\", \u0026bastionhost.HostArgs{\n\t\t\tInstanceId:         defaultInstance.ID(),\n\t\t\tHostName:           pulumi.String(name),\n\t\t\tActiveAddressType:  pulumi.String(\"Private\"),\n\t\t\tHostPrivateAddress: pulumi.String(\"172.16.0.10\"),\n\t\t\tOsType:             pulumi.String(\"Linux\"),\n\t\t\tSource:             pulumi.String(\"Local\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bastionhost.NewHostAttachment(ctx, \"default\", \u0026bastionhost.HostAttachmentArgs{\n\t\t\tHostGroupId: defaultHostGroup.HostGroupId,\n\t\t\tHostId:      defaultHost.HostId,\n\t\t\tInstanceId:  defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.bastionhost.Instance;\nimport com.pulumi.alicloud.bastionhost.InstanceArgs;\nimport com.pulumi.alicloud.bastionhost.HostGroup;\nimport com.pulumi.alicloud.bastionhost.HostGroupArgs;\nimport com.pulumi.alicloud.bastionhost.Host;\nimport com.pulumi.alicloud.bastionhost.HostArgs;\nimport com.pulumi.alicloud.bastionhost.HostAttachment;\nimport com.pulumi.alicloud.bastionhost.HostAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .description(name)\n            .licenseCode(\"bhah_ent_50_asset\")\n            .planCode(\"cloudbastion\")\n            .storage(\"5\")\n            .bandwidth(\"5\")\n            .period(1)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n        var defaultHostGroup = new HostGroup(\"defaultHostGroup\", HostGroupArgs.builder()\n            .hostGroupName(name)\n            .instanceId(defaultInstance.id())\n            .build());\n\n        var defaultHost = new Host(\"defaultHost\", HostArgs.builder()\n            .instanceId(defaultInstance.id())\n            .hostName(name)\n            .activeAddressType(\"Private\")\n            .hostPrivateAddress(\"172.16.0.10\")\n            .osType(\"Linux\")\n            .source(\"Local\")\n            .build());\n\n        var defaultHostAttachment = new HostAttachment(\"defaultHostAttachment\", HostAttachmentArgs.builder()\n            .hostGroupId(defaultHostGroup.hostGroupId())\n            .hostId(defaultHost.hostId())\n            .instanceId(defaultInstance.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultInstance:\n    type: alicloud:bastionhost:Instance\n    name: default\n    properties:\n      description: ${name}\n      licenseCode: bhah_ent_50_asset\n      planCode: cloudbastion\n      storage: '5'\n      bandwidth: '5'\n      period: '1'\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n  defaultHostGroup:\n    type: alicloud:bastionhost:HostGroup\n    name: default\n    properties:\n      hostGroupName: ${name}\n      instanceId: ${defaultInstance.id}\n  defaultHost:\n    type: alicloud:bastionhost:Host\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      hostName: ${name}\n      activeAddressType: Private\n      hostPrivateAddress: 172.16.0.10\n      osType: Linux\n      source: Local\n  defaultHostAttachment:\n    type: alicloud:bastionhost:HostAttachment\n    name: default\n    properties:\n      hostGroupId: ${defaultHostGroup.hostGroupId}\n      hostId: ${defaultHost.hostId}\n      instanceId: ${defaultInstance.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 10.4.0.0/16\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        cidrBlock: 10.4.0.0/24\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nBastion Host Host Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:bastionhost/hostAttachment:HostAttachment example \u003cinstance_id\u003e:\u003chost_group_id\u003e:\u003chost_id\u003e\n```\n\n","properties":{"hostGroupId":{"type":"string","description":"Specifies the added to the host group ID.\n"},"hostId":{"type":"string","description":"Specified to be part of a host group of host ID.\n"},"instanceId":{"type":"string","description":"The bastion host instance id.\n"}},"required":["hostGroupId","hostId","instanceId"],"inputProperties":{"hostGroupId":{"type":"string","description":"Specifies the added to the host group ID.\n","willReplaceOnChanges":true},"hostId":{"type":"string","description":"Specified to be part of a host group of host ID.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The bastion host instance id.\n","willReplaceOnChanges":true}},"requiredInputs":["hostGroupId","hostId","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering HostAttachment resources.\n","properties":{"hostGroupId":{"type":"string","description":"Specifies the added to the host group ID.\n","willReplaceOnChanges":true},"hostId":{"type":"string","description":"Specified to be part of a host group of host ID.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The bastion host instance id.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:bastionhost/hostGroup:HostGroup":{"description":"Provides a Bastion Host Host Group resource.\n\nFor information about Bastion Host Host Group and how to use it, see [What is Host Group](https://www.alibabacloud.com/help/en/doc-detail/204307.htm).\n\n\u003e **NOTE:** Available since v1.134.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0])});\nconst defaultInstance = new alicloud.bastionhost.Instance(\"default\", {\n    description: name,\n    licenseCode: \"bhah_ent_50_asset\",\n    planCode: \"cloudbastion\",\n    storage: \"5\",\n    bandwidth: \"5\",\n    period: 1,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    securityGroupIds: [defaultSecurityGroup.id],\n});\nconst defaultHostGroup = new alicloud.bastionhost.HostGroup(\"default\", {\n    hostGroupName: name,\n    instanceId: defaultInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_get_switches = alicloud.vpc.get_switches(cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.bastionhost.Instance(\"default\",\n    description=name,\n    license_code=\"bhah_ent_50_asset\",\n    plan_code=\"cloudbastion\",\n    storage=\"5\",\n    bandwidth=\"5\",\n    period=1,\n    vswitch_id=default_get_switches.ids[0],\n    security_group_ids=[default_security_group.id])\ndefault_host_group = alicloud.bastionhost.HostGroup(\"default\",\n    host_group_name=name,\n    instance_id=default_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.BastionHost.Instance(\"default\", new()\n    {\n        Description = name,\n        LicenseCode = \"bhah_ent_50_asset\",\n        PlanCode = \"cloudbastion\",\n        Storage = \"5\",\n        Bandwidth = \"5\",\n        Period = 1,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var defaultHostGroup = new AliCloud.BastionHost.HostGroup(\"default\", new()\n    {\n        HostGroupName = name,\n        InstanceId = defaultInstance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/24\"),\n\t\t\tVpcId:     pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:    pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := bastionhost.NewInstance(ctx, \"default\", \u0026bastionhost.InstanceArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tLicenseCode: pulumi.String(\"bhah_ent_50_asset\"),\n\t\t\tPlanCode:    pulumi.String(\"cloudbastion\"),\n\t\t\tStorage:     pulumi.String(\"5\"),\n\t\t\tBandwidth:   pulumi.String(\"5\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tVswitchId:   pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bastionhost.NewHostGroup(ctx, \"default\", \u0026bastionhost.HostGroupArgs{\n\t\t\tHostGroupName: pulumi.String(name),\n\t\t\tInstanceId:    defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.bastionhost.Instance;\nimport com.pulumi.alicloud.bastionhost.InstanceArgs;\nimport com.pulumi.alicloud.bastionhost.HostGroup;\nimport com.pulumi.alicloud.bastionhost.HostGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .description(name)\n            .licenseCode(\"bhah_ent_50_asset\")\n            .planCode(\"cloudbastion\")\n            .storage(\"5\")\n            .bandwidth(\"5\")\n            .period(1)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n        var defaultHostGroup = new HostGroup(\"defaultHostGroup\", HostGroupArgs.builder()\n            .hostGroupName(name)\n            .instanceId(defaultInstance.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultInstance:\n    type: alicloud:bastionhost:Instance\n    name: default\n    properties:\n      description: ${name}\n      licenseCode: bhah_ent_50_asset\n      planCode: cloudbastion\n      storage: '5'\n      bandwidth: '5'\n      period: '1'\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n  defaultHostGroup:\n    type: alicloud:bastionhost:HostGroup\n    name: default\n    properties:\n      hostGroupName: ${name}\n      instanceId: ${defaultInstance.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 10.4.0.0/16\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        cidrBlock: 10.4.0.0/24\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nBastion Host Host Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:bastionhost/hostGroup:HostGroup example \u003cinstance_id\u003e:\u003chost_group_id\u003e\n```\n\n","properties":{"comment":{"type":"string","description":"Specify the New Host Group of Notes, Supports up to 500 Characters.\n"},"hostGroupId":{"type":"string","description":"Host Group ID.\n"},"hostGroupName":{"type":"string","description":"Specify the New Host Group Name, Supports up to 128 Characters.\n"},"instanceId":{"type":"string","description":"Specify the New Host Group Where the Bastion Host ID of.\n"}},"required":["hostGroupId","hostGroupName","instanceId"],"inputProperties":{"comment":{"type":"string","description":"Specify the New Host Group of Notes, Supports up to 500 Characters.\n"},"hostGroupName":{"type":"string","description":"Specify the New Host Group Name, Supports up to 128 Characters.\n"},"instanceId":{"type":"string","description":"Specify the New Host Group Where the Bastion Host ID of.\n","willReplaceOnChanges":true}},"requiredInputs":["hostGroupName","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering HostGroup resources.\n","properties":{"comment":{"type":"string","description":"Specify the New Host Group of Notes, Supports up to 500 Characters.\n"},"hostGroupId":{"type":"string","description":"Host Group ID.\n"},"hostGroupName":{"type":"string","description":"Specify the New Host Group Name, Supports up to 128 Characters.\n"},"instanceId":{"type":"string","description":"Specify the New Host Group Where the Bastion Host ID of.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:bastionhost/hostGroupAccountUserAttachment:HostGroupAccountUserAttachment":{"description":"Provides a Bastion Host Host Account Attachment resource to add list host accounts into one user and one host group.\n\n\u003e **NOTE:** Available since v1.135.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0])});\nconst defaultInstance = new alicloud.bastionhost.Instance(\"default\", {\n    description: name,\n    licenseCode: \"bhah_ent_50_asset\",\n    planCode: \"cloudbastion\",\n    storage: \"5\",\n    bandwidth: \"5\",\n    period: 1,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    securityGroupIds: [defaultSecurityGroup.id],\n});\nconst localUser = new alicloud.bastionhost.User(\"local_user\", {\n    instanceId: defaultInstance.id,\n    mobileCountryCode: \"CN\",\n    mobile: \"13312345678\",\n    password: \"YourPassword-123\",\n    source: \"Local\",\n    userName: `${name}_local_user`,\n});\nconst defaultHost = new alicloud.bastionhost.Host(\"default\", {\n    instanceId: defaultInstance.id,\n    hostName: name,\n    activeAddressType: \"Private\",\n    hostPrivateAddress: \"172.16.0.10\",\n    osType: \"Linux\",\n    source: \"Local\",\n});\nconst defaultHostAccount = new alicloud.bastionhost.HostAccount(\"default\", {\n    hostAccountName: name,\n    hostId: defaultHost.hostId,\n    instanceId: defaultHost.instanceId,\n    protocolName: \"SSH\",\n    password: \"YourPassword12345\",\n});\nconst defaultHostGroup = new alicloud.bastionhost.HostGroup(\"default\", {\n    hostGroupName: name,\n    instanceId: defaultInstance.id,\n});\nconst defaultHostGroupAccountUserAttachment = new alicloud.bastionhost.HostGroupAccountUserAttachment(\"default\", {\n    instanceId: defaultHost.instanceId,\n    userId: localUser.userId,\n    hostGroupId: defaultHostGroup.hostGroupId,\n    hostAccountNames: [defaultHostAccount.hostAccountName],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_get_switches = alicloud.vpc.get_switches(cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.bastionhost.Instance(\"default\",\n    description=name,\n    license_code=\"bhah_ent_50_asset\",\n    plan_code=\"cloudbastion\",\n    storage=\"5\",\n    bandwidth=\"5\",\n    period=1,\n    vswitch_id=default_get_switches.ids[0],\n    security_group_ids=[default_security_group.id])\nlocal_user = alicloud.bastionhost.User(\"local_user\",\n    instance_id=default_instance.id,\n    mobile_country_code=\"CN\",\n    mobile=\"13312345678\",\n    password=\"YourPassword-123\",\n    source=\"Local\",\n    user_name=f\"{name}_local_user\")\ndefault_host = alicloud.bastionhost.Host(\"default\",\n    instance_id=default_instance.id,\n    host_name=name,\n    active_address_type=\"Private\",\n    host_private_address=\"172.16.0.10\",\n    os_type=\"Linux\",\n    source=\"Local\")\ndefault_host_account = alicloud.bastionhost.HostAccount(\"default\",\n    host_account_name=name,\n    host_id=default_host.host_id,\n    instance_id=default_host.instance_id,\n    protocol_name=\"SSH\",\n    password=\"YourPassword12345\")\ndefault_host_group = alicloud.bastionhost.HostGroup(\"default\",\n    host_group_name=name,\n    instance_id=default_instance.id)\ndefault_host_group_account_user_attachment = alicloud.bastionhost.HostGroupAccountUserAttachment(\"default\",\n    instance_id=default_host.instance_id,\n    user_id=local_user.user_id,\n    host_group_id=default_host_group.host_group_id,\n    host_account_names=[default_host_account.host_account_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.BastionHost.Instance(\"default\", new()\n    {\n        Description = name,\n        LicenseCode = \"bhah_ent_50_asset\",\n        PlanCode = \"cloudbastion\",\n        Storage = \"5\",\n        Bandwidth = \"5\",\n        Period = 1,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var localUser = new AliCloud.BastionHost.User(\"local_user\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        MobileCountryCode = \"CN\",\n        Mobile = \"13312345678\",\n        Password = \"YourPassword-123\",\n        Source = \"Local\",\n        UserName = $\"{name}_local_user\",\n    });\n\n    var defaultHost = new AliCloud.BastionHost.Host(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        HostName = name,\n        ActiveAddressType = \"Private\",\n        HostPrivateAddress = \"172.16.0.10\",\n        OsType = \"Linux\",\n        Source = \"Local\",\n    });\n\n    var defaultHostAccount = new AliCloud.BastionHost.HostAccount(\"default\", new()\n    {\n        HostAccountName = name,\n        HostId = defaultHost.HostId,\n        InstanceId = defaultHost.InstanceId,\n        ProtocolName = \"SSH\",\n        Password = \"YourPassword12345\",\n    });\n\n    var defaultHostGroup = new AliCloud.BastionHost.HostGroup(\"default\", new()\n    {\n        HostGroupName = name,\n        InstanceId = defaultInstance.Id,\n    });\n\n    var defaultHostGroupAccountUserAttachment = new AliCloud.BastionHost.HostGroupAccountUserAttachment(\"default\", new()\n    {\n        InstanceId = defaultHost.InstanceId,\n        UserId = localUser.UserId,\n        HostGroupId = defaultHostGroup.HostGroupId,\n        HostAccountNames = new[]\n        {\n            defaultHostAccount.HostAccountName,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/24\"),\n\t\t\tVpcId:     pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:    pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := bastionhost.NewInstance(ctx, \"default\", \u0026bastionhost.InstanceArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tLicenseCode: pulumi.String(\"bhah_ent_50_asset\"),\n\t\t\tPlanCode:    pulumi.String(\"cloudbastion\"),\n\t\t\tStorage:     pulumi.String(\"5\"),\n\t\t\tBandwidth:   pulumi.String(\"5\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tVswitchId:   pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlocalUser, err := bastionhost.NewUser(ctx, \"local_user\", \u0026bastionhost.UserArgs{\n\t\t\tInstanceId:        defaultInstance.ID(),\n\t\t\tMobileCountryCode: pulumi.String(\"CN\"),\n\t\t\tMobile:            pulumi.String(\"13312345678\"),\n\t\t\tPassword:          pulumi.String(\"YourPassword-123\"),\n\t\t\tSource:            pulumi.String(\"Local\"),\n\t\t\tUserName:          pulumi.Sprintf(\"%v_local_user\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHost, err := bastionhost.NewHost(ctx, \"default\", \u0026bastionhost.HostArgs{\n\t\t\tInstanceId:         defaultInstance.ID(),\n\t\t\tHostName:           pulumi.String(name),\n\t\t\tActiveAddressType:  pulumi.String(\"Private\"),\n\t\t\tHostPrivateAddress: pulumi.String(\"172.16.0.10\"),\n\t\t\tOsType:             pulumi.String(\"Linux\"),\n\t\t\tSource:             pulumi.String(\"Local\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHostAccount, err := bastionhost.NewHostAccount(ctx, \"default\", \u0026bastionhost.HostAccountArgs{\n\t\t\tHostAccountName: pulumi.String(name),\n\t\t\tHostId:          defaultHost.HostId,\n\t\t\tInstanceId:      defaultHost.InstanceId,\n\t\t\tProtocolName:    pulumi.String(\"SSH\"),\n\t\t\tPassword:        pulumi.String(\"YourPassword12345\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHostGroup, err := bastionhost.NewHostGroup(ctx, \"default\", \u0026bastionhost.HostGroupArgs{\n\t\t\tHostGroupName: pulumi.String(name),\n\t\t\tInstanceId:    defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bastionhost.NewHostGroupAccountUserAttachment(ctx, \"default\", \u0026bastionhost.HostGroupAccountUserAttachmentArgs{\n\t\t\tInstanceId:  defaultHost.InstanceId,\n\t\t\tUserId:      localUser.UserId,\n\t\t\tHostGroupId: defaultHostGroup.HostGroupId,\n\t\t\tHostAccountNames: pulumi.StringArray{\n\t\t\t\tdefaultHostAccount.HostAccountName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.bastionhost.Instance;\nimport com.pulumi.alicloud.bastionhost.InstanceArgs;\nimport com.pulumi.alicloud.bastionhost.User;\nimport com.pulumi.alicloud.bastionhost.UserArgs;\nimport com.pulumi.alicloud.bastionhost.Host;\nimport com.pulumi.alicloud.bastionhost.HostArgs;\nimport com.pulumi.alicloud.bastionhost.HostAccount;\nimport com.pulumi.alicloud.bastionhost.HostAccountArgs;\nimport com.pulumi.alicloud.bastionhost.HostGroup;\nimport com.pulumi.alicloud.bastionhost.HostGroupArgs;\nimport com.pulumi.alicloud.bastionhost.HostGroupAccountUserAttachment;\nimport com.pulumi.alicloud.bastionhost.HostGroupAccountUserAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .description(name)\n            .licenseCode(\"bhah_ent_50_asset\")\n            .planCode(\"cloudbastion\")\n            .storage(\"5\")\n            .bandwidth(\"5\")\n            .period(1)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n        var localUser = new User(\"localUser\", UserArgs.builder()\n            .instanceId(defaultInstance.id())\n            .mobileCountryCode(\"CN\")\n            .mobile(\"13312345678\")\n            .password(\"YourPassword-123\")\n            .source(\"Local\")\n            .userName(String.format(\"%s_local_user\", name))\n            .build());\n\n        var defaultHost = new Host(\"defaultHost\", HostArgs.builder()\n            .instanceId(defaultInstance.id())\n            .hostName(name)\n            .activeAddressType(\"Private\")\n            .hostPrivateAddress(\"172.16.0.10\")\n            .osType(\"Linux\")\n            .source(\"Local\")\n            .build());\n\n        var defaultHostAccount = new HostAccount(\"defaultHostAccount\", HostAccountArgs.builder()\n            .hostAccountName(name)\n            .hostId(defaultHost.hostId())\n            .instanceId(defaultHost.instanceId())\n            .protocolName(\"SSH\")\n            .password(\"YourPassword12345\")\n            .build());\n\n        var defaultHostGroup = new HostGroup(\"defaultHostGroup\", HostGroupArgs.builder()\n            .hostGroupName(name)\n            .instanceId(defaultInstance.id())\n            .build());\n\n        var defaultHostGroupAccountUserAttachment = new HostGroupAccountUserAttachment(\"defaultHostGroupAccountUserAttachment\", HostGroupAccountUserAttachmentArgs.builder()\n            .instanceId(defaultHost.instanceId())\n            .userId(localUser.userId())\n            .hostGroupId(defaultHostGroup.hostGroupId())\n            .hostAccountNames(defaultHostAccount.hostAccountName())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultInstance:\n    type: alicloud:bastionhost:Instance\n    name: default\n    properties:\n      description: ${name}\n      licenseCode: bhah_ent_50_asset\n      planCode: cloudbastion\n      storage: '5'\n      bandwidth: '5'\n      period: '1'\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n  localUser:\n    type: alicloud:bastionhost:User\n    name: local_user\n    properties:\n      instanceId: ${defaultInstance.id}\n      mobileCountryCode: CN\n      mobile: '13312345678'\n      password: YourPassword-123\n      source: Local\n      userName: ${name}_local_user\n  defaultHost:\n    type: alicloud:bastionhost:Host\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      hostName: ${name}\n      activeAddressType: Private\n      hostPrivateAddress: 172.16.0.10\n      osType: Linux\n      source: Local\n  defaultHostAccount:\n    type: alicloud:bastionhost:HostAccount\n    name: default\n    properties:\n      hostAccountName: ${name}\n      hostId: ${defaultHost.hostId}\n      instanceId: ${defaultHost.instanceId}\n      protocolName: SSH\n      password: YourPassword12345\n  defaultHostGroup:\n    type: alicloud:bastionhost:HostGroup\n    name: default\n    properties:\n      hostGroupName: ${name}\n      instanceId: ${defaultInstance.id}\n  defaultHostGroupAccountUserAttachment:\n    type: alicloud:bastionhost:HostGroupAccountUserAttachment\n    name: default\n    properties:\n      instanceId: ${defaultHost.instanceId}\n      userId: ${localUser.userId}\n      hostGroupId: ${defaultHostGroup.hostGroupId}\n      hostAccountNames:\n        - ${defaultHostAccount.hostAccountName}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 10.4.0.0/16\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        cidrBlock: 10.4.0.0/24\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nBastion Host Host Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:bastionhost/hostGroupAccountUserAttachment:HostGroupAccountUserAttachment example \u003cinstance_id\u003e:\u003cuser_id\u003e:\u003chost_group_id\u003e\n```\n\n","properties":{"hostAccountNames":{"type":"array","items":{"type":"string"},"description":"A list names of the host account.\n"},"hostGroupId":{"type":"string","description":"The ID of the host group.\n"},"instanceId":{"type":"string","description":"The ID of the Bastionhost instance where you want to authorize the user to manage the specified hosts and host accounts.\n"},"userId":{"type":"string","description":"The ID of the user that you want to authorize to manage the specified hosts and host accounts.\n"}},"required":["hostAccountNames","hostGroupId","instanceId","userId"],"inputProperties":{"hostAccountNames":{"type":"array","items":{"type":"string"},"description":"A list names of the host account.\n"},"hostGroupId":{"type":"string","description":"The ID of the host group.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Bastionhost instance where you want to authorize the user to manage the specified hosts and host accounts.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of the user that you want to authorize to manage the specified hosts and host accounts.\n","willReplaceOnChanges":true}},"requiredInputs":["hostAccountNames","hostGroupId","instanceId","userId"],"stateInputs":{"description":"Input properties used for looking up and filtering HostGroupAccountUserAttachment resources.\n","properties":{"hostAccountNames":{"type":"array","items":{"type":"string"},"description":"A list names of the host account.\n"},"hostGroupId":{"type":"string","description":"The ID of the host group.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Bastionhost instance where you want to authorize the user to manage the specified hosts and host accounts.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of the user that you want to authorize to manage the specified hosts and host accounts.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:bastionhost/hostGroupAccountUserGroupAttachment:HostGroupAccountUserGroupAttachment":{"description":"Provides a Bastion Host Host Account Attachment resource to add list host accounts into one user group and one host group.\n\n\u003e **NOTE:** Available since v1.135.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0])});\nconst defaultInstance = new alicloud.bastionhost.Instance(\"default\", {\n    description: name,\n    licenseCode: \"bhah_ent_50_asset\",\n    planCode: \"cloudbastion\",\n    storage: \"5\",\n    bandwidth: \"5\",\n    period: 1,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    securityGroupIds: [defaultSecurityGroup.id],\n});\nconst defaultHost = new alicloud.bastionhost.Host(\"default\", {\n    instanceId: defaultInstance.id,\n    hostName: name,\n    activeAddressType: \"Private\",\n    hostPrivateAddress: \"172.16.0.10\",\n    osType: \"Linux\",\n    source: \"Local\",\n});\nconst defaultHostAccount = new alicloud.bastionhost.HostAccount(\"default\", {\n    hostAccountName: name,\n    hostId: defaultHost.hostId,\n    instanceId: defaultHost.instanceId,\n    protocolName: \"SSH\",\n    password: \"YourPassword12345\",\n});\nconst defaultHostGroup = new alicloud.bastionhost.HostGroup(\"default\", {\n    hostGroupName: name,\n    instanceId: defaultInstance.id,\n});\nconst defaultUserGroup = new alicloud.bastionhost.UserGroup(\"default\", {\n    instanceId: defaultHost.instanceId,\n    userGroupName: name,\n});\nconst defaultHostGroupAccountUserGroupAttachment = new alicloud.bastionhost.HostGroupAccountUserGroupAttachment(\"default\", {\n    instanceId: defaultHost.instanceId,\n    userGroupId: defaultUserGroup.userGroupId,\n    hostGroupId: defaultHostGroup.hostGroupId,\n    hostAccountNames: [defaultHostAccount.hostAccountName],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_get_switches = alicloud.vpc.get_switches(cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.bastionhost.Instance(\"default\",\n    description=name,\n    license_code=\"bhah_ent_50_asset\",\n    plan_code=\"cloudbastion\",\n    storage=\"5\",\n    bandwidth=\"5\",\n    period=1,\n    vswitch_id=default_get_switches.ids[0],\n    security_group_ids=[default_security_group.id])\ndefault_host = alicloud.bastionhost.Host(\"default\",\n    instance_id=default_instance.id,\n    host_name=name,\n    active_address_type=\"Private\",\n    host_private_address=\"172.16.0.10\",\n    os_type=\"Linux\",\n    source=\"Local\")\ndefault_host_account = alicloud.bastionhost.HostAccount(\"default\",\n    host_account_name=name,\n    host_id=default_host.host_id,\n    instance_id=default_host.instance_id,\n    protocol_name=\"SSH\",\n    password=\"YourPassword12345\")\ndefault_host_group = alicloud.bastionhost.HostGroup(\"default\",\n    host_group_name=name,\n    instance_id=default_instance.id)\ndefault_user_group = alicloud.bastionhost.UserGroup(\"default\",\n    instance_id=default_host.instance_id,\n    user_group_name=name)\ndefault_host_group_account_user_group_attachment = alicloud.bastionhost.HostGroupAccountUserGroupAttachment(\"default\",\n    instance_id=default_host.instance_id,\n    user_group_id=default_user_group.user_group_id,\n    host_group_id=default_host_group.host_group_id,\n    host_account_names=[default_host_account.host_account_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.BastionHost.Instance(\"default\", new()\n    {\n        Description = name,\n        LicenseCode = \"bhah_ent_50_asset\",\n        PlanCode = \"cloudbastion\",\n        Storage = \"5\",\n        Bandwidth = \"5\",\n        Period = 1,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var defaultHost = new AliCloud.BastionHost.Host(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        HostName = name,\n        ActiveAddressType = \"Private\",\n        HostPrivateAddress = \"172.16.0.10\",\n        OsType = \"Linux\",\n        Source = \"Local\",\n    });\n\n    var defaultHostAccount = new AliCloud.BastionHost.HostAccount(\"default\", new()\n    {\n        HostAccountName = name,\n        HostId = defaultHost.HostId,\n        InstanceId = defaultHost.InstanceId,\n        ProtocolName = \"SSH\",\n        Password = \"YourPassword12345\",\n    });\n\n    var defaultHostGroup = new AliCloud.BastionHost.HostGroup(\"default\", new()\n    {\n        HostGroupName = name,\n        InstanceId = defaultInstance.Id,\n    });\n\n    var defaultUserGroup = new AliCloud.BastionHost.UserGroup(\"default\", new()\n    {\n        InstanceId = defaultHost.InstanceId,\n        UserGroupName = name,\n    });\n\n    var defaultHostGroupAccountUserGroupAttachment = new AliCloud.BastionHost.HostGroupAccountUserGroupAttachment(\"default\", new()\n    {\n        InstanceId = defaultHost.InstanceId,\n        UserGroupId = defaultUserGroup.UserGroupId,\n        HostGroupId = defaultHostGroup.HostGroupId,\n        HostAccountNames = new[]\n        {\n            defaultHostAccount.HostAccountName,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/24\"),\n\t\t\tVpcId:     pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:    pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := bastionhost.NewInstance(ctx, \"default\", \u0026bastionhost.InstanceArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tLicenseCode: pulumi.String(\"bhah_ent_50_asset\"),\n\t\t\tPlanCode:    pulumi.String(\"cloudbastion\"),\n\t\t\tStorage:     pulumi.String(\"5\"),\n\t\t\tBandwidth:   pulumi.String(\"5\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tVswitchId:   pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHost, err := bastionhost.NewHost(ctx, \"default\", \u0026bastionhost.HostArgs{\n\t\t\tInstanceId:         defaultInstance.ID(),\n\t\t\tHostName:           pulumi.String(name),\n\t\t\tActiveAddressType:  pulumi.String(\"Private\"),\n\t\t\tHostPrivateAddress: pulumi.String(\"172.16.0.10\"),\n\t\t\tOsType:             pulumi.String(\"Linux\"),\n\t\t\tSource:             pulumi.String(\"Local\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHostAccount, err := bastionhost.NewHostAccount(ctx, \"default\", \u0026bastionhost.HostAccountArgs{\n\t\t\tHostAccountName: pulumi.String(name),\n\t\t\tHostId:          defaultHost.HostId,\n\t\t\tInstanceId:      defaultHost.InstanceId,\n\t\t\tProtocolName:    pulumi.String(\"SSH\"),\n\t\t\tPassword:        pulumi.String(\"YourPassword12345\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHostGroup, err := bastionhost.NewHostGroup(ctx, \"default\", \u0026bastionhost.HostGroupArgs{\n\t\t\tHostGroupName: pulumi.String(name),\n\t\t\tInstanceId:    defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultUserGroup, err := bastionhost.NewUserGroup(ctx, \"default\", \u0026bastionhost.UserGroupArgs{\n\t\t\tInstanceId:    defaultHost.InstanceId,\n\t\t\tUserGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bastionhost.NewHostGroupAccountUserGroupAttachment(ctx, \"default\", \u0026bastionhost.HostGroupAccountUserGroupAttachmentArgs{\n\t\t\tInstanceId:  defaultHost.InstanceId,\n\t\t\tUserGroupId: defaultUserGroup.UserGroupId,\n\t\t\tHostGroupId: defaultHostGroup.HostGroupId,\n\t\t\tHostAccountNames: pulumi.StringArray{\n\t\t\t\tdefaultHostAccount.HostAccountName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.bastionhost.Instance;\nimport com.pulumi.alicloud.bastionhost.InstanceArgs;\nimport com.pulumi.alicloud.bastionhost.Host;\nimport com.pulumi.alicloud.bastionhost.HostArgs;\nimport com.pulumi.alicloud.bastionhost.HostAccount;\nimport com.pulumi.alicloud.bastionhost.HostAccountArgs;\nimport com.pulumi.alicloud.bastionhost.HostGroup;\nimport com.pulumi.alicloud.bastionhost.HostGroupArgs;\nimport com.pulumi.alicloud.bastionhost.UserGroup;\nimport com.pulumi.alicloud.bastionhost.UserGroupArgs;\nimport com.pulumi.alicloud.bastionhost.HostGroupAccountUserGroupAttachment;\nimport com.pulumi.alicloud.bastionhost.HostGroupAccountUserGroupAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .description(name)\n            .licenseCode(\"bhah_ent_50_asset\")\n            .planCode(\"cloudbastion\")\n            .storage(\"5\")\n            .bandwidth(\"5\")\n            .period(1)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n        var defaultHost = new Host(\"defaultHost\", HostArgs.builder()\n            .instanceId(defaultInstance.id())\n            .hostName(name)\n            .activeAddressType(\"Private\")\n            .hostPrivateAddress(\"172.16.0.10\")\n            .osType(\"Linux\")\n            .source(\"Local\")\n            .build());\n\n        var defaultHostAccount = new HostAccount(\"defaultHostAccount\", HostAccountArgs.builder()\n            .hostAccountName(name)\n            .hostId(defaultHost.hostId())\n            .instanceId(defaultHost.instanceId())\n            .protocolName(\"SSH\")\n            .password(\"YourPassword12345\")\n            .build());\n\n        var defaultHostGroup = new HostGroup(\"defaultHostGroup\", HostGroupArgs.builder()\n            .hostGroupName(name)\n            .instanceId(defaultInstance.id())\n            .build());\n\n        var defaultUserGroup = new UserGroup(\"defaultUserGroup\", UserGroupArgs.builder()\n            .instanceId(defaultHost.instanceId())\n            .userGroupName(name)\n            .build());\n\n        var defaultHostGroupAccountUserGroupAttachment = new HostGroupAccountUserGroupAttachment(\"defaultHostGroupAccountUserGroupAttachment\", HostGroupAccountUserGroupAttachmentArgs.builder()\n            .instanceId(defaultHost.instanceId())\n            .userGroupId(defaultUserGroup.userGroupId())\n            .hostGroupId(defaultHostGroup.hostGroupId())\n            .hostAccountNames(defaultHostAccount.hostAccountName())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultInstance:\n    type: alicloud:bastionhost:Instance\n    name: default\n    properties:\n      description: ${name}\n      licenseCode: bhah_ent_50_asset\n      planCode: cloudbastion\n      storage: '5'\n      bandwidth: '5'\n      period: '1'\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n  defaultHost:\n    type: alicloud:bastionhost:Host\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      hostName: ${name}\n      activeAddressType: Private\n      hostPrivateAddress: 172.16.0.10\n      osType: Linux\n      source: Local\n  defaultHostAccount:\n    type: alicloud:bastionhost:HostAccount\n    name: default\n    properties:\n      hostAccountName: ${name}\n      hostId: ${defaultHost.hostId}\n      instanceId: ${defaultHost.instanceId}\n      protocolName: SSH\n      password: YourPassword12345\n  defaultHostGroup:\n    type: alicloud:bastionhost:HostGroup\n    name: default\n    properties:\n      hostGroupName: ${name}\n      instanceId: ${defaultInstance.id}\n  defaultUserGroup:\n    type: alicloud:bastionhost:UserGroup\n    name: default\n    properties:\n      instanceId: ${defaultHost.instanceId}\n      userGroupName: ${name}\n  defaultHostGroupAccountUserGroupAttachment:\n    type: alicloud:bastionhost:HostGroupAccountUserGroupAttachment\n    name: default\n    properties:\n      instanceId: ${defaultHost.instanceId}\n      userGroupId: ${defaultUserGroup.userGroupId}\n      hostGroupId: ${defaultHostGroup.hostGroupId}\n      hostAccountNames:\n        - ${defaultHostAccount.hostAccountName}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 10.4.0.0/16\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        cidrBlock: 10.4.0.0/24\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nBastion Host Host Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:bastionhost/hostGroupAccountUserGroupAttachment:HostGroupAccountUserGroupAttachment example \u003cinstance_id\u003e:\u003cuser_group_id\u003e:\u003chost_group_id\u003e\n```\n\n","properties":{"hostAccountNames":{"type":"array","items":{"type":"string"},"description":"A list names of the host account.\n"},"hostGroupId":{"type":"string","description":"The ID of the host group.\n"},"instanceId":{"type":"string","description":"The ID of the Bastionhost instance where you want to authorize the user to manage the specified hosts and host accounts.\n"},"userGroupId":{"type":"string","description":"The ID of the user group that you want to authorize to manage the specified hosts and host accounts.\n"}},"required":["hostAccountNames","hostGroupId","instanceId","userGroupId"],"inputProperties":{"hostAccountNames":{"type":"array","items":{"type":"string"},"description":"A list names of the host account.\n"},"hostGroupId":{"type":"string","description":"The ID of the host group.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Bastionhost instance where you want to authorize the user to manage the specified hosts and host accounts.\n","willReplaceOnChanges":true},"userGroupId":{"type":"string","description":"The ID of the user group that you want to authorize to manage the specified hosts and host accounts.\n","willReplaceOnChanges":true}},"requiredInputs":["hostAccountNames","hostGroupId","instanceId","userGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering HostGroupAccountUserGroupAttachment resources.\n","properties":{"hostAccountNames":{"type":"array","items":{"type":"string"},"description":"A list names of the host account.\n"},"hostGroupId":{"type":"string","description":"The ID of the host group.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Bastionhost instance where you want to authorize the user to manage the specified hosts and host accounts.\n","willReplaceOnChanges":true},"userGroupId":{"type":"string","description":"The ID of the user group that you want to authorize to manage the specified hosts and host accounts.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:bastionhost/hostShareKey:HostShareKey":{"description":"Provides a Bastion Host Share Key resource.\n\nFor information about Bastion Host Host Share Key and how to use it, see [What is Host Share Key](https://www.alibabacloud.com/help/en/bastion-host/latest/createhostsharekey).\n\n\u003e **NOTE:** Available since v1.165.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.bastionhost.getInstances({});\nconst defaultGetZones = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, defaultGetZones]).then(([defaultGetNetworks, defaultGetZones]) =\u003e alicloud.vpc.getSwitches({\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: defaultGetZones.zones?.[0]?.id,\n}));\nconst defaultSecurityGroup: alicloud.ecs.SecurityGroup[] = [];\n_default.then(_default =\u003e _default.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultSecurityGroup.push(new alicloud.ecs.SecurityGroup(`default-${range.value}`, {vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0])}));\n    }\n});\nconst defaultInstance: alicloud.bastionhost.Instance[] = [];\n_default.then(_default =\u003e _default.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultInstance.push(new alicloud.bastionhost.Instance(`default-${range.value}`, {\n            description: name,\n            licenseCode: \"bhah_ent_50_asset\",\n            planCode: \"cloudbastion\",\n            storage: \"5\",\n            bandwidth: \"5\",\n            period: 1,\n            vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n            securityGroupIds: [defaultSecurityGroup[0].id],\n        }));\n    }\n});\nconst instanceId = pulumi.all([_default.then(_default =\u003e _default.ids).length, _default, defaultInstance[0].id]).apply(([length, _default, id]) =\u003e length \u003e 0 ? _default.ids?.[0] : id);\nconst privateKey = config.get(\"privateKey\") || \"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBc25oc29SSVVwVXltSG1FVHJXUGxDbkhMa3c3N0JYTm44ZHcvbDg3eG10SUhjd2syCkRybjFDZk5jZkpJV0tSdkFaYkdKMlZTS1RiRDhPTmcyT3JvUHFGUHBLOHJ5QjJRb1NYQVRsaUVHWFhNeW1tRm8KeDBmem12THFscUxpNGZnOExhcTc5UC85aGxLU1djTWhJU0pYVTNHMS9KdEFBUmEyQXc4cXEzSVQvMkZ5NktrdwowMU9MdDdLN2pGUFRPaHhtdmNoSkZ1SVo1YXI0cW5HUlFHQnpCL2hoRHVIWEMwRlhJZ2ozd0NXMDZ4R2V2WjJyCmNCWWwwN1luL2lvZk95MU0wRjZZN0JrMU95N21vYndzM1JsalUyL2FpZlhLMmNOUlk2Qjl5WXNvd1RBZmQ5OTQKQ2YxSlF3TlhsaUZCeTZueEJLQk1YbDhIU1grS1o3L29PUlIwVXdJREFRQUJBb0lCQVFDbU5JSXR5ckhSY3oxdApJMGo0L0FQc295ZE1EL0owRkJMa2FoSUxKWjFaYW1tbmx4ZHh4WHBQUndXRnVXTEw2OTFVbDI5aUoxb1ptazU1Ci9ka2EvZlhnOUN3OUxXWVN2aExLdVlaMEZOTmhxZ3VoUEVBZy9uLytlR1ZCM2ZYZkxaZVZpK0E0L1VHMG15ZFMKVXVlQ2ZRSElZeWh4VkgvWnc3WER5WmNhVFVZVVdMUWlYcVN0Y2JRbnZFOXpwOGc5TWh5UkhBcWYwbEt2UTRqdwphUnNKTnlob3lhZWcvUXlFeHVYNGdBR1lIc1lTSDRFVmtXOHl5WE1aOHpRdk1OSUNiYXhmUkRuSngybUh6a09rCnFHczVXbFp5L3VrQk5jWTQwd2Y0eTY2bEVJaVpKbiswaFhtSTF4Tk5SdHRwMjZnY3ROOXZWbmVicTdLTnpjTDgKeFQrMXZJaEpBb0dCQU9iMVM1YlE4NVRFWDBoZTRmdXc2R3ExbnhRLzJUSU03emZhK2VhZThPQlh2eVNFV3JpdwpPZzM3RFhVUDFNVU1iTEJRenE0STl1dE5YSVZadEFLR0h6ZDR6WmtQeGxORjZPN0FyWnJEWElDNEdKZHdmSEhxCjJZcDkxUDlWekJlOVhkTVdZVGFCNkMzWVdtYzQwM08vYWdyRCtNb2JnL0hqMSt0d2xZR2hjdlV2QW9HQkFNWFMKT2VnWHc5VUF3VEZabFBtZzZKeDI3TzNXUFBHd1E3QzRnYitFZzZkR1pLRnJVR1ZId2VUUG1HaGtwN1BmYU5ESwplaFVoUWFnNm9XOTF4dkE2YldZZ29SQmczUWkxc01MblRWeTExeVN1UEVFSCtMT2s1N3d2akNLSk5XZnM0SjVyCmg1NGw0QXZ6UVhyWWN0UlZkSmYrNjFacGFnTkdZMVBvWVJMTHJMSWRBb0dBTndydzErRzJtNWJ0YW04S2hwU1QKMzVLbmRnajlkM3N6cStrcE03aGZpZWYvcXZGTU9jWHVJQlRjRVRFVHNWNlRyTFdsZkQ2d3NrVitybDFCbEhSbwpqaXpoT3dCU2NOZ3hlbTA3TXE0cXBwYTViYVltVW5QNUlwTjRwdDNJeFVPaFQ4UitxS0h2TnJYZ1hjZGlSYXl4CjFoejhkeFoxckxselpTNHd3M001MVlzQ2dZRUFpUDEwTEUySXg5Q2wrTTdZWTZZU2I0Zkx1MGhKRy9XOGFuemIKSFExZlBrOTVFRytJVlJyRUl2ZS95MHNvOTE4VzdyL0lteWxVbG5ORHFEUWZkK3grSmVNaXBuenRsRUorRGZxdgprQ3c4dUtJUUI5akZXV0l4T0JpVktyVnB6bll6ZG9Gd2dRd3BneDBKazFDZzlIblpMQWpVWUJyUDEwUy9ORFFRClJUdldjK0VDZ1lBeGRIZWxQNG1RdkJaS1oxMlNKbHlLbFVLeW43aHhzSHVkMkphMVNtS3FWeHBERDNlR0w0Y3QKZXA1QTZ5NkF4eGViZkI0aDdYNEZ0QTBBRURPdkZDR0J1QlRvZ3ZBdUNDVUtqK2JIUG1SNG53UVYzcWZ2M3loRAp0TGkwU2FHVElta2wvbUNCUDhZaW9JUys2N0xjby9kbHphUTNGVDlxTnJieFdFWjJlaS9LVlE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==\";\nconst defaultHostShareKey = new alicloud.bastionhost.HostShareKey(\"default\", {\n    hostShareKeyName: name,\n    instanceId: instanceId,\n    privateKey: privateKey,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.bastionhost.get_instances()\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_get_switches = alicloud.vpc.get_switches(cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default_get_zones.zones[0].id)\ndefault_security_group = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_security_group.append(alicloud.ecs.SecurityGroup(f\"default-{range['value']}\", vpc_id=default_get_networks.ids[0]))\n\nlen(default.ids).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\ndefault_instance = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_instance.append(alicloud.bastionhost.Instance(f\"default-{range['value']}\",\n            description=name,\n            license_code=\"bhah_ent_50_asset\",\n            plan_code=\"cloudbastion\",\n            storage=\"5\",\n            bandwidth=\"5\",\n            period=1,\n            vswitch_id=default_get_switches.ids[0],\n            security_group_ids=[default_security_group[0].id]))\n\nlen(default.ids).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\ninstance_id = pulumi.Output.all(\n    length=len(default.ids),\n    id=default_instance[0].id\n).apply(lambda resolved_outputs: default.ids[0] if resolved_outputs['length'] \u003e 0 else resolved_outputs['id'])\n\nprivate_key = config.get(\"privateKey\")\nif private_key is None:\n    private_key = \"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBc25oc29SSVVwVXltSG1FVHJXUGxDbkhMa3c3N0JYTm44ZHcvbDg3eG10SUhjd2syCkRybjFDZk5jZkpJV0tSdkFaYkdKMlZTS1RiRDhPTmcyT3JvUHFGUHBLOHJ5QjJRb1NYQVRsaUVHWFhNeW1tRm8KeDBmem12THFscUxpNGZnOExhcTc5UC85aGxLU1djTWhJU0pYVTNHMS9KdEFBUmEyQXc4cXEzSVQvMkZ5NktrdwowMU9MdDdLN2pGUFRPaHhtdmNoSkZ1SVo1YXI0cW5HUlFHQnpCL2hoRHVIWEMwRlhJZ2ozd0NXMDZ4R2V2WjJyCmNCWWwwN1luL2lvZk95MU0wRjZZN0JrMU95N21vYndzM1JsalUyL2FpZlhLMmNOUlk2Qjl5WXNvd1RBZmQ5OTQKQ2YxSlF3TlhsaUZCeTZueEJLQk1YbDhIU1grS1o3L29PUlIwVXdJREFRQUJBb0lCQVFDbU5JSXR5ckhSY3oxdApJMGo0L0FQc295ZE1EL0owRkJMa2FoSUxKWjFaYW1tbmx4ZHh4WHBQUndXRnVXTEw2OTFVbDI5aUoxb1ptazU1Ci9ka2EvZlhnOUN3OUxXWVN2aExLdVlaMEZOTmhxZ3VoUEVBZy9uLytlR1ZCM2ZYZkxaZVZpK0E0L1VHMG15ZFMKVXVlQ2ZRSElZeWh4VkgvWnc3WER5WmNhVFVZVVdMUWlYcVN0Y2JRbnZFOXpwOGc5TWh5UkhBcWYwbEt2UTRqdwphUnNKTnlob3lhZWcvUXlFeHVYNGdBR1lIc1lTSDRFVmtXOHl5WE1aOHpRdk1OSUNiYXhmUkRuSngybUh6a09rCnFHczVXbFp5L3VrQk5jWTQwd2Y0eTY2bEVJaVpKbiswaFhtSTF4Tk5SdHRwMjZnY3ROOXZWbmVicTdLTnpjTDgKeFQrMXZJaEpBb0dCQU9iMVM1YlE4NVRFWDBoZTRmdXc2R3ExbnhRLzJUSU03emZhK2VhZThPQlh2eVNFV3JpdwpPZzM3RFhVUDFNVU1iTEJRenE0STl1dE5YSVZadEFLR0h6ZDR6WmtQeGxORjZPN0FyWnJEWElDNEdKZHdmSEhxCjJZcDkxUDlWekJlOVhkTVdZVGFCNkMzWVdtYzQwM08vYWdyRCtNb2JnL0hqMSt0d2xZR2hjdlV2QW9HQkFNWFMKT2VnWHc5VUF3VEZabFBtZzZKeDI3TzNXUFBHd1E3QzRnYitFZzZkR1pLRnJVR1ZId2VUUG1HaGtwN1BmYU5ESwplaFVoUWFnNm9XOTF4dkE2YldZZ29SQmczUWkxc01MblRWeTExeVN1UEVFSCtMT2s1N3d2akNLSk5XZnM0SjVyCmg1NGw0QXZ6UVhyWWN0UlZkSmYrNjFacGFnTkdZMVBvWVJMTHJMSWRBb0dBTndydzErRzJtNWJ0YW04S2hwU1QKMzVLbmRnajlkM3N6cStrcE03aGZpZWYvcXZGTU9jWHVJQlRjRVRFVHNWNlRyTFdsZkQ2d3NrVitybDFCbEhSbwpqaXpoT3dCU2NOZ3hlbTA3TXE0cXBwYTViYVltVW5QNUlwTjRwdDNJeFVPaFQ4UitxS0h2TnJYZ1hjZGlSYXl4CjFoejhkeFoxckxselpTNHd3M001MVlzQ2dZRUFpUDEwTEUySXg5Q2wrTTdZWTZZU2I0Zkx1MGhKRy9XOGFuemIKSFExZlBrOTVFRytJVlJyRUl2ZS95MHNvOTE4VzdyL0lteWxVbG5ORHFEUWZkK3grSmVNaXBuenRsRUorRGZxdgprQ3c4dUtJUUI5akZXV0l4T0JpVktyVnB6bll6ZG9Gd2dRd3BneDBKazFDZzlIblpMQWpVWUJyUDEwUy9ORFFRClJUdldjK0VDZ1lBeGRIZWxQNG1RdkJaS1oxMlNKbHlLbFVLeW43aHhzSHVkMkphMVNtS3FWeHBERDNlR0w0Y3QKZXA1QTZ5NkF4eGViZkI0aDdYNEZ0QTBBRURPdkZDR0J1QlRvZ3ZBdUNDVUtqK2JIUG1SNG53UVYzcWZ2M3loRAp0TGkwU2FHVElta2wvbUNCUDhZaW9JUys2N0xjby9kbHphUTNGVDlxTnJieFdFWjJlaS9LVlE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==\"\ndefault_host_share_key = alicloud.bastionhost.HostShareKey(\"default\",\n    host_share_key_name=name,\n    instance_id=instance_id,\n    private_key=private_key)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.BastionHost.GetInstances.Invoke();\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new List\u003cAliCloud.Ecs.SecurityGroup\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Ids)).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSecurityGroup.Add(new AliCloud.Ecs.SecurityGroup($\"default-{range.Value}\", new()\n        {\n            VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        }));\n    }\n    var defaultInstance = new List\u003cAliCloud.BastionHost.Instance\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Ids)).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultInstance.Add(new AliCloud.BastionHost.Instance($\"default-{range.Value}\", new()\n        {\n            Description = name,\n            LicenseCode = \"bhah_ent_50_asset\",\n            PlanCode = \"cloudbastion\",\n            Storage = \"5\",\n            Bandwidth = \"5\",\n            Period = 1,\n            VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n            SecurityGroupIds = new[]\n            {\n                defaultSecurityGroup[0].Id,\n            },\n        }));\n    }\n    var instanceId = Output.Tuple(@default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Ids)).Length, @default, defaultInstance[0].Id).Apply(values =\u003e\n    {\n        var length = values.Item1;\n        var @default = values.Item2;\n        var id = values.Item3;\n        return length \u003e 0 ? @default.Apply(getInstancesResult =\u003e getInstancesResult.Ids[0]) : id;\n    });\n\n    var privateKey = config.Get(\"privateKey\") ?? \"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBc25oc29SSVVwVXltSG1FVHJXUGxDbkhMa3c3N0JYTm44ZHcvbDg3eG10SUhjd2syCkRybjFDZk5jZkpJV0tSdkFaYkdKMlZTS1RiRDhPTmcyT3JvUHFGUHBLOHJ5QjJRb1NYQVRsaUVHWFhNeW1tRm8KeDBmem12THFscUxpNGZnOExhcTc5UC85aGxLU1djTWhJU0pYVTNHMS9KdEFBUmEyQXc4cXEzSVQvMkZ5NktrdwowMU9MdDdLN2pGUFRPaHhtdmNoSkZ1SVo1YXI0cW5HUlFHQnpCL2hoRHVIWEMwRlhJZ2ozd0NXMDZ4R2V2WjJyCmNCWWwwN1luL2lvZk95MU0wRjZZN0JrMU95N21vYndzM1JsalUyL2FpZlhLMmNOUlk2Qjl5WXNvd1RBZmQ5OTQKQ2YxSlF3TlhsaUZCeTZueEJLQk1YbDhIU1grS1o3L29PUlIwVXdJREFRQUJBb0lCQVFDbU5JSXR5ckhSY3oxdApJMGo0L0FQc295ZE1EL0owRkJMa2FoSUxKWjFaYW1tbmx4ZHh4WHBQUndXRnVXTEw2OTFVbDI5aUoxb1ptazU1Ci9ka2EvZlhnOUN3OUxXWVN2aExLdVlaMEZOTmhxZ3VoUEVBZy9uLytlR1ZCM2ZYZkxaZVZpK0E0L1VHMG15ZFMKVXVlQ2ZRSElZeWh4VkgvWnc3WER5WmNhVFVZVVdMUWlYcVN0Y2JRbnZFOXpwOGc5TWh5UkhBcWYwbEt2UTRqdwphUnNKTnlob3lhZWcvUXlFeHVYNGdBR1lIc1lTSDRFVmtXOHl5WE1aOHpRdk1OSUNiYXhmUkRuSngybUh6a09rCnFHczVXbFp5L3VrQk5jWTQwd2Y0eTY2bEVJaVpKbiswaFhtSTF4Tk5SdHRwMjZnY3ROOXZWbmVicTdLTnpjTDgKeFQrMXZJaEpBb0dCQU9iMVM1YlE4NVRFWDBoZTRmdXc2R3ExbnhRLzJUSU03emZhK2VhZThPQlh2eVNFV3JpdwpPZzM3RFhVUDFNVU1iTEJRenE0STl1dE5YSVZadEFLR0h6ZDR6WmtQeGxORjZPN0FyWnJEWElDNEdKZHdmSEhxCjJZcDkxUDlWekJlOVhkTVdZVGFCNkMzWVdtYzQwM08vYWdyRCtNb2JnL0hqMSt0d2xZR2hjdlV2QW9HQkFNWFMKT2VnWHc5VUF3VEZabFBtZzZKeDI3TzNXUFBHd1E3QzRnYitFZzZkR1pLRnJVR1ZId2VUUG1HaGtwN1BmYU5ESwplaFVoUWFnNm9XOTF4dkE2YldZZ29SQmczUWkxc01MblRWeTExeVN1UEVFSCtMT2s1N3d2akNLSk5XZnM0SjVyCmg1NGw0QXZ6UVhyWWN0UlZkSmYrNjFacGFnTkdZMVBvWVJMTHJMSWRBb0dBTndydzErRzJtNWJ0YW04S2hwU1QKMzVLbmRnajlkM3N6cStrcE03aGZpZWYvcXZGTU9jWHVJQlRjRVRFVHNWNlRyTFdsZkQ2d3NrVitybDFCbEhSbwpqaXpoT3dCU2NOZ3hlbTA3TXE0cXBwYTViYVltVW5QNUlwTjRwdDNJeFVPaFQ4UitxS0h2TnJYZ1hjZGlSYXl4CjFoejhkeFoxckxselpTNHd3M001MVlzQ2dZRUFpUDEwTEUySXg5Q2wrTTdZWTZZU2I0Zkx1MGhKRy9XOGFuemIKSFExZlBrOTVFRytJVlJyRUl2ZS95MHNvOTE4VzdyL0lteWxVbG5ORHFEUWZkK3grSmVNaXBuenRsRUorRGZxdgprQ3c4dUtJUUI5akZXV0l4T0JpVktyVnB6bll6ZG9Gd2dRd3BneDBKazFDZzlIblpMQWpVWUJyUDEwUy9ORFFRClJUdldjK0VDZ1lBeGRIZWxQNG1RdkJaS1oxMlNKbHlLbFVLeW43aHhzSHVkMkphMVNtS3FWeHBERDNlR0w0Y3QKZXA1QTZ5NkF4eGViZkI0aDdYNEZ0QTBBRURPdkZDR0J1QlRvZ3ZBdUNDVUtqK2JIUG1SNG53UVYzcWZ2M3loRAp0TGkwU2FHVElta2wvbUNCUDhZaW9JUys2N0xjby9kbHphUTNGVDlxTnJieFdFWjJlaS9LVlE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==\";\n    var defaultHostShareKey = new AliCloud.BastionHost.HostShareKey(\"default\", new()\n    {\n        HostShareKeyName = name,\n        InstanceId = instanceId,\n        PrivateKey = privateKey,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := bastionhost.GetInstances(ctx, \u0026bastionhost.GetInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/24\"),\n\t\t\tVpcId:     pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:    pulumi.StringRef(defaultGetZones.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp0 float64\n\t\tif length \u003e 0 {\n\t\t\ttmp0 = 0\n\t\t} else {\n\t\t\ttmp0 = 1\n\t\t}\n\t\tvar defaultSecurityGroup []*ecs.SecurityGroup\n\t\tfor index := 0; index \u003c float64(len(_default.Ids).ApplyT(func(length int) (float64, error) {\n\t\t\treturn tmp0, nil\n\t\t}).(pulumi.Float64Output)); index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := ecs.NewSecurityGroup(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026ecs.SecurityGroupArgs{\n\t\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultSecurityGroup = append(defaultSecurityGroup, __res)\n\t\t}\n\t\tvar tmp1 float64\n\t\tif length \u003e 0 {\n\t\t\ttmp1 = 0\n\t\t} else {\n\t\t\ttmp1 = 1\n\t\t}\n\t\tvar defaultInstance []*bastionhost.Instance\n\t\tfor index := 0; index \u003c float64(len(_default.Ids).ApplyT(func(length int) (float64, error) {\n\t\t\treturn tmp1, nil\n\t\t}).(pulumi.Float64Output)); index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := bastionhost.NewInstance(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026bastionhost.InstanceArgs{\n\t\t\t\tDescription: pulumi.String(name),\n\t\t\t\tLicenseCode: pulumi.String(\"bhah_ent_50_asset\"),\n\t\t\t\tPlanCode:    pulumi.String(\"cloudbastion\"),\n\t\t\t\tStorage:     pulumi.String(\"5\"),\n\t\t\t\tBandwidth:   pulumi.String(\"5\"),\n\t\t\t\tPeriod:      pulumi.Int(1),\n\t\t\t\tVswitchId:   pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\tdefaultSecurityGroup[0].ID(),\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultInstance = append(defaultInstance, __res)\n\t\t}\n\t\tvar tmp2 *string\n\t\tif length \u003e 0 {\n\t\t\ttmp2 = _default.Ids[0]\n\t\t} else {\n\t\t\ttmp2 = id\n\t\t}\n\t\tinstanceId := pulumi.All(len(_default.Ids), defaultInstance[0].ID()).ApplyT(func(_args []interface{}) (*string, error) {\n\t\t\tlength := _args[0].(int)\n\t\t\tid := _args[1].(string)\n\t\t\treturn \u0026tmp2, nil\n\t\t}).(pulumi.StringPtrOutput)\n\t\tprivateKey := \"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBc25oc29SSVVwVXltSG1FVHJXUGxDbkhMa3c3N0JYTm44ZHcvbDg3eG10SUhjd2syCkRybjFDZk5jZkpJV0tSdkFaYkdKMlZTS1RiRDhPTmcyT3JvUHFGUHBLOHJ5QjJRb1NYQVRsaUVHWFhNeW1tRm8KeDBmem12THFscUxpNGZnOExhcTc5UC85aGxLU1djTWhJU0pYVTNHMS9KdEFBUmEyQXc4cXEzSVQvMkZ5NktrdwowMU9MdDdLN2pGUFRPaHhtdmNoSkZ1SVo1YXI0cW5HUlFHQnpCL2hoRHVIWEMwRlhJZ2ozd0NXMDZ4R2V2WjJyCmNCWWwwN1luL2lvZk95MU0wRjZZN0JrMU95N21vYndzM1JsalUyL2FpZlhLMmNOUlk2Qjl5WXNvd1RBZmQ5OTQKQ2YxSlF3TlhsaUZCeTZueEJLQk1YbDhIU1grS1o3L29PUlIwVXdJREFRQUJBb0lCQVFDbU5JSXR5ckhSY3oxdApJMGo0L0FQc295ZE1EL0owRkJMa2FoSUxKWjFaYW1tbmx4ZHh4WHBQUndXRnVXTEw2OTFVbDI5aUoxb1ptazU1Ci9ka2EvZlhnOUN3OUxXWVN2aExLdVlaMEZOTmhxZ3VoUEVBZy9uLytlR1ZCM2ZYZkxaZVZpK0E0L1VHMG15ZFMKVXVlQ2ZRSElZeWh4VkgvWnc3WER5WmNhVFVZVVdMUWlYcVN0Y2JRbnZFOXpwOGc5TWh5UkhBcWYwbEt2UTRqdwphUnNKTnlob3lhZWcvUXlFeHVYNGdBR1lIc1lTSDRFVmtXOHl5WE1aOHpRdk1OSUNiYXhmUkRuSngybUh6a09rCnFHczVXbFp5L3VrQk5jWTQwd2Y0eTY2bEVJaVpKbiswaFhtSTF4Tk5SdHRwMjZnY3ROOXZWbmVicTdLTnpjTDgKeFQrMXZJaEpBb0dCQU9iMVM1YlE4NVRFWDBoZTRmdXc2R3ExbnhRLzJUSU03emZhK2VhZThPQlh2eVNFV3JpdwpPZzM3RFhVUDFNVU1iTEJRenE0STl1dE5YSVZadEFLR0h6ZDR6WmtQeGxORjZPN0FyWnJEWElDNEdKZHdmSEhxCjJZcDkxUDlWekJlOVhkTVdZVGFCNkMzWVdtYzQwM08vYWdyRCtNb2JnL0hqMSt0d2xZR2hjdlV2QW9HQkFNWFMKT2VnWHc5VUF3VEZabFBtZzZKeDI3TzNXUFBHd1E3QzRnYitFZzZkR1pLRnJVR1ZId2VUUG1HaGtwN1BmYU5ESwplaFVoUWFnNm9XOTF4dkE2YldZZ29SQmczUWkxc01MblRWeTExeVN1UEVFSCtMT2s1N3d2akNLSk5XZnM0SjVyCmg1NGw0QXZ6UVhyWWN0UlZkSmYrNjFacGFnTkdZMVBvWVJMTHJMSWRBb0dBTndydzErRzJtNWJ0YW04S2hwU1QKMzVLbmRnajlkM3N6cStrcE03aGZpZWYvcXZGTU9jWHVJQlRjRVRFVHNWNlRyTFdsZkQ2d3NrVitybDFCbEhSbwpqaXpoT3dCU2NOZ3hlbTA3TXE0cXBwYTViYVltVW5QNUlwTjRwdDNJeFVPaFQ4UitxS0h2TnJYZ1hjZGlSYXl4CjFoejhkeFoxckxselpTNHd3M001MVlzQ2dZRUFpUDEwTEUySXg5Q2wrTTdZWTZZU2I0Zkx1MGhKRy9XOGFuemIKSFExZlBrOTVFRytJVlJyRUl2ZS95MHNvOTE4VzdyL0lteWxVbG5ORHFEUWZkK3grSmVNaXBuenRsRUorRGZxdgprQ3c4dUtJUUI5akZXV0l4T0JpVktyVnB6bll6ZG9Gd2dRd3BneDBKazFDZzlIblpMQWpVWUJyUDEwUy9ORFFRClJUdldjK0VDZ1lBeGRIZWxQNG1RdkJaS1oxMlNKbHlLbFVLeW43aHhzSHVkMkphMVNtS3FWeHBERDNlR0w0Y3QKZXA1QTZ5NkF4eGViZkI0aDdYNEZ0QTBBRURPdkZDR0J1QlRvZ3ZBdUNDVUtqK2JIUG1SNG53UVYzcWZ2M3loRAp0TGkwU2FHVElta2wvbUNCUDhZaW9JUys2N0xjby9kbHphUTNGVDlxTnJieFdFWjJlaS9LVlE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==\"\n\t\tif param := cfg.Get(\"privateKey\"); param != \"\" {\n\t\t\tprivateKey = param\n\t\t}\n\t\t_, err = bastionhost.NewHostShareKey(ctx, \"default\", \u0026bastionhost.HostShareKeyArgs{\n\t\t\tHostShareKeyName: pulumi.String(name),\n\t\t\tInstanceId:       pulumi.String(instanceId),\n\t\t\tPrivateKey:       pulumi.String(privateKey),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.bastionhost.BastionhostFunctions;\nimport com.pulumi.alicloud.bastionhost.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.bastionhost.Instance;\nimport com.pulumi.alicloud.bastionhost.InstanceArgs;\nimport com.pulumi.alicloud.bastionhost.HostShareKey;\nimport com.pulumi.alicloud.bastionhost.HostShareKeyArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = BastionhostFunctions.getInstances(GetInstancesArgs.builder()\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        for (var i = 0; i \u003c default_.ids().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new SecurityGroup(\"defaultSecurityGroup-\" + i, SecurityGroupArgs.builder()\n                .vpcId(defaultGetNetworks.ids()[0])\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c default_.ids().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new Instance(\"defaultInstance-\" + i, InstanceArgs.builder()\n                .description(name)\n                .licenseCode(\"bhah_ent_50_asset\")\n                .planCode(\"cloudbastion\")\n                .storage(\"5\")\n                .bandwidth(\"5\")\n                .period(1)\n                .vswitchId(defaultGetSwitches.ids()[0])\n                .securityGroupIds(defaultSecurityGroup[0].id())\n                .build());\n\n        \n}\n        final var instanceId = Output.tuple(default_.ids().length(), defaultInstance[0].id()).applyValue(values -\u003e {\n            var length = values.t1;\n            var id = values.t2;\n            return length \u003e 0 ? default_.ids()[0] : id;\n        });\n\n        final var privateKey = config.get(\"privateKey\").orElse(\"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBc25oc29SSVVwVXltSG1FVHJXUGxDbkhMa3c3N0JYTm44ZHcvbDg3eG10SUhjd2syCkRybjFDZk5jZkpJV0tSdkFaYkdKMlZTS1RiRDhPTmcyT3JvUHFGUHBLOHJ5QjJRb1NYQVRsaUVHWFhNeW1tRm8KeDBmem12THFscUxpNGZnOExhcTc5UC85aGxLU1djTWhJU0pYVTNHMS9KdEFBUmEyQXc4cXEzSVQvMkZ5NktrdwowMU9MdDdLN2pGUFRPaHhtdmNoSkZ1SVo1YXI0cW5HUlFHQnpCL2hoRHVIWEMwRlhJZ2ozd0NXMDZ4R2V2WjJyCmNCWWwwN1luL2lvZk95MU0wRjZZN0JrMU95N21vYndzM1JsalUyL2FpZlhLMmNOUlk2Qjl5WXNvd1RBZmQ5OTQKQ2YxSlF3TlhsaUZCeTZueEJLQk1YbDhIU1grS1o3L29PUlIwVXdJREFRQUJBb0lCQVFDbU5JSXR5ckhSY3oxdApJMGo0L0FQc295ZE1EL0owRkJMa2FoSUxKWjFaYW1tbmx4ZHh4WHBQUndXRnVXTEw2OTFVbDI5aUoxb1ptazU1Ci9ka2EvZlhnOUN3OUxXWVN2aExLdVlaMEZOTmhxZ3VoUEVBZy9uLytlR1ZCM2ZYZkxaZVZpK0E0L1VHMG15ZFMKVXVlQ2ZRSElZeWh4VkgvWnc3WER5WmNhVFVZVVdMUWlYcVN0Y2JRbnZFOXpwOGc5TWh5UkhBcWYwbEt2UTRqdwphUnNKTnlob3lhZWcvUXlFeHVYNGdBR1lIc1lTSDRFVmtXOHl5WE1aOHpRdk1OSUNiYXhmUkRuSngybUh6a09rCnFHczVXbFp5L3VrQk5jWTQwd2Y0eTY2bEVJaVpKbiswaFhtSTF4Tk5SdHRwMjZnY3ROOXZWbmVicTdLTnpjTDgKeFQrMXZJaEpBb0dCQU9iMVM1YlE4NVRFWDBoZTRmdXc2R3ExbnhRLzJUSU03emZhK2VhZThPQlh2eVNFV3JpdwpPZzM3RFhVUDFNVU1iTEJRenE0STl1dE5YSVZadEFLR0h6ZDR6WmtQeGxORjZPN0FyWnJEWElDNEdKZHdmSEhxCjJZcDkxUDlWekJlOVhkTVdZVGFCNkMzWVdtYzQwM08vYWdyRCtNb2JnL0hqMSt0d2xZR2hjdlV2QW9HQkFNWFMKT2VnWHc5VUF3VEZabFBtZzZKeDI3TzNXUFBHd1E3QzRnYitFZzZkR1pLRnJVR1ZId2VUUG1HaGtwN1BmYU5ESwplaFVoUWFnNm9XOTF4dkE2YldZZ29SQmczUWkxc01MblRWeTExeVN1UEVFSCtMT2s1N3d2akNLSk5XZnM0SjVyCmg1NGw0QXZ6UVhyWWN0UlZkSmYrNjFacGFnTkdZMVBvWVJMTHJMSWRBb0dBTndydzErRzJtNWJ0YW04S2hwU1QKMzVLbmRnajlkM3N6cStrcE03aGZpZWYvcXZGTU9jWHVJQlRjRVRFVHNWNlRyTFdsZkQ2d3NrVitybDFCbEhSbwpqaXpoT3dCU2NOZ3hlbTA3TXE0cXBwYTViYVltVW5QNUlwTjRwdDNJeFVPaFQ4UitxS0h2TnJYZ1hjZGlSYXl4CjFoejhkeFoxckxselpTNHd3M001MVlzQ2dZRUFpUDEwTEUySXg5Q2wrTTdZWTZZU2I0Zkx1MGhKRy9XOGFuemIKSFExZlBrOTVFRytJVlJyRUl2ZS95MHNvOTE4VzdyL0lteWxVbG5ORHFEUWZkK3grSmVNaXBuenRsRUorRGZxdgprQ3c4dUtJUUI5akZXV0l4T0JpVktyVnB6bll6ZG9Gd2dRd3BneDBKazFDZzlIblpMQWpVWUJyUDEwUy9ORFFRClJUdldjK0VDZ1lBeGRIZWxQNG1RdkJaS1oxMlNKbHlLbFVLeW43aHhzSHVkMkphMVNtS3FWeHBERDNlR0w0Y3QKZXA1QTZ5NkF4eGViZkI0aDdYNEZ0QTBBRURPdkZDR0J1QlRvZ3ZBdUNDVUtqK2JIUG1SNG53UVYzcWZ2M3loRAp0TGkwU2FHVElta2wvbUNCUDhZaW9JUys2N0xjby9kbHphUTNGVDlxTnJieFdFWjJlaS9LVlE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==\");\n        var defaultHostShareKey = new HostShareKey(\"defaultHostShareKey\", HostShareKeyArgs.builder()\n            .hostShareKeyName(name)\n            .instanceId(instanceId)\n            .privateKey(privateKey)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nBastion Host Share Key can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:bastionhost/hostShareKey:HostShareKey example \u003cinstance_id\u003e:\u003chost_share_key_id\u003e\n```\n\n","properties":{"hostShareKeyId":{"type":"string","description":"The first ID of the resource.\n"},"hostShareKeyName":{"type":"string","description":"The name of the host shared key to be added. The name can be a maximum of 128 characters in length.\n"},"instanceId":{"type":"string","description":"The ID of the Bastion instance.\n"},"passPhrase":{"type":"string","description":"The password of the private key. The value is a Base64-encoded string.\n","secret":true},"privateKey":{"type":"string","description":"The private key. The value is a Base64-encoded string.\n","secret":true},"privateKeyFingerPrint":{"type":"string","description":"The fingerprint of the private key.\n"}},"required":["hostShareKeyId","hostShareKeyName","instanceId","privateKey","privateKeyFingerPrint"],"inputProperties":{"hostShareKeyName":{"type":"string","description":"The name of the host shared key to be added. The name can be a maximum of 128 characters in length.\n"},"instanceId":{"type":"string","description":"The ID of the Bastion instance.\n","willReplaceOnChanges":true},"passPhrase":{"type":"string","description":"The password of the private key. The value is a Base64-encoded string.\n","secret":true},"privateKey":{"type":"string","description":"The private key. The value is a Base64-encoded string.\n","secret":true}},"requiredInputs":["hostShareKeyName","instanceId","privateKey"],"stateInputs":{"description":"Input properties used for looking up and filtering HostShareKey resources.\n","properties":{"hostShareKeyId":{"type":"string","description":"The first ID of the resource.\n"},"hostShareKeyName":{"type":"string","description":"The name of the host shared key to be added. The name can be a maximum of 128 characters in length.\n"},"instanceId":{"type":"string","description":"The ID of the Bastion instance.\n","willReplaceOnChanges":true},"passPhrase":{"type":"string","description":"The password of the private key. The value is a Base64-encoded string.\n","secret":true},"privateKey":{"type":"string","description":"The private key. The value is a Base64-encoded string.\n","secret":true},"privateKeyFingerPrint":{"type":"string","description":"The fingerprint of the private key.\n"}},"type":"object"}},"alicloud:bastionhost/instance:Instance":{"description":"\u003e **NOTE:** Since the version 1.132.0, the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.yundun.BastionHostInstance`\" pulumi-lang-dotnet=\"`alicloud.yundun.BastionHostInstance`\" pulumi-lang-go=\"`yundun.BastionHostInstance`\" pulumi-lang-python=\"`yundun.BastionHostInstance`\" pulumi-lang-yaml=\"`alicloud.yundun.BastionHostInstance`\" pulumi-lang-java=\"`alicloud.yundun.BastionHostInstance`\"\u003e`alicloud.yundun.BastionHostInstance`\u003c/span\u003e has been renamed to \u003cspan pulumi-lang-nodejs=\"`alicloud.bastionhost.Instance`\" pulumi-lang-dotnet=\"`alicloud.bastionhost.Instance`\" pulumi-lang-go=\"`bastionhost.Instance`\" pulumi-lang-python=\"`bastionhost.Instance`\" pulumi-lang-yaml=\"`alicloud.bastionhost.Instance`\" pulumi-lang-java=\"`alicloud.bastionhost.Instance`\"\u003e`alicloud.bastionhost.Instance`\u003c/span\u003e.\n\nCloud Bastion Host instance resource (\"Yundun_bastionhost\" is the short term of this product). \nFor information about Resource Manager Resource Directory and how to use it, see [What is Bastionhost](https://www.alibabacloud.com/help/en/doc-detail/52922.htm).\n\n\u003e **NOTE:** The endpoint of bssopenapi used only support \"business.aliyuncs.com\" at present.\n\n\u003e **NOTE:** Available since v1.132.0.\n\n\u003e **NOTE:** In order to destroy Cloud Bastionhost instance , users are required to apply for white list first\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0])});\nconst defaultInstance = new alicloud.bastionhost.Instance(\"default\", {\n    description: name,\n    licenseCode: \"bhah_ent_50_asset\",\n    planCode: \"cloudbastion\",\n    storage: \"5\",\n    bandwidth: \"5\",\n    period: 1,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    securityGroupIds: [defaultSecurityGroup.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_get_switches = alicloud.vpc.get_switches(cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.bastionhost.Instance(\"default\",\n    description=name,\n    license_code=\"bhah_ent_50_asset\",\n    plan_code=\"cloudbastion\",\n    storage=\"5\",\n    bandwidth=\"5\",\n    period=1,\n    vswitch_id=default_get_switches.ids[0],\n    security_group_ids=[default_security_group.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.BastionHost.Instance(\"default\", new()\n    {\n        Description = name,\n        LicenseCode = \"bhah_ent_50_asset\",\n        PlanCode = \"cloudbastion\",\n        Storage = \"5\",\n        Bandwidth = \"5\",\n        Period = 1,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/24\"),\n\t\t\tVpcId:     pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:    pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bastionhost.NewInstance(ctx, \"default\", \u0026bastionhost.InstanceArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tLicenseCode: pulumi.String(\"bhah_ent_50_asset\"),\n\t\t\tPlanCode:    pulumi.String(\"cloudbastion\"),\n\t\t\tStorage:     pulumi.String(\"5\"),\n\t\t\tBandwidth:   pulumi.String(\"5\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tVswitchId:   pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.bastionhost.Instance;\nimport com.pulumi.alicloud.bastionhost.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .description(name)\n            .licenseCode(\"bhah_ent_50_asset\")\n            .planCode(\"cloudbastion\")\n            .storage(\"5\")\n            .bandwidth(\"5\")\n            .period(1)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultInstance:\n    type: alicloud:bastionhost:Instance\n    name: default\n    properties:\n      description: ${name}\n      licenseCode: bhah_ent_50_asset\n      planCode: cloudbastion\n      storage: '5'\n      bandwidth: '5'\n      period: '1'\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 10.4.0.0/16\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        cidrBlock: 10.4.0.0/24\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0])});\nconst defaultInstance = new alicloud.bastionhost.Instance(\"default\", {\n    description: name,\n    licenseCode: \"bhah_ent_50_asset\",\n    planCode: \"cloudbastion\",\n    storage: \"5\",\n    bandwidth: \"5\",\n    period: 1,\n    securityGroupIds: [defaultSecurityGroup.id],\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    adAuthServers: [{\n        server: \"192.168.1.1\",\n        standbyServer: \"192.168.1.3\",\n        port: 80,\n        domain: \"domain\",\n        account: \"cn=Manager,dc=test,dc=com\",\n        password: \"YouPassword123\",\n        filter: \"objectClass=person\",\n        nameMapping: \"nameAttr\",\n        emailMapping: \"emailAttr\",\n        mobileMapping: \"mobileAttr\",\n        isSsl: false,\n        baseDn: \"dc=test,dc=com\",\n    }],\n    ldapAuthServers: [{\n        server: \"192.168.1.1\",\n        standbyServer: \"192.168.1.3\",\n        port: 80,\n        loginNameMapping: \"uid\",\n        account: \"cn=Manager,dc=test,dc=com\",\n        password: \"YouPassword123\",\n        filter: \"objectClass=person\",\n        nameMapping: \"nameAttr\",\n        emailMapping: \"emailAttr\",\n        mobileMapping: \"mobileAttr\",\n        isSsl: false,\n        baseDn: \"dc=test,dc=com\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_get_switches = alicloud.vpc.get_switches(cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.bastionhost.Instance(\"default\",\n    description=name,\n    license_code=\"bhah_ent_50_asset\",\n    plan_code=\"cloudbastion\",\n    storage=\"5\",\n    bandwidth=\"5\",\n    period=1,\n    security_group_ids=[default_security_group.id],\n    vswitch_id=default_get_switches.ids[0],\n    ad_auth_servers=[{\n        \"server\": \"192.168.1.1\",\n        \"standby_server\": \"192.168.1.3\",\n        \"port\": 80,\n        \"domain\": \"domain\",\n        \"account\": \"cn=Manager,dc=test,dc=com\",\n        \"password\": \"YouPassword123\",\n        \"filter\": \"objectClass=person\",\n        \"name_mapping\": \"nameAttr\",\n        \"email_mapping\": \"emailAttr\",\n        \"mobile_mapping\": \"mobileAttr\",\n        \"is_ssl\": False,\n        \"base_dn\": \"dc=test,dc=com\",\n    }],\n    ldap_auth_servers=[{\n        \"server\": \"192.168.1.1\",\n        \"standby_server\": \"192.168.1.3\",\n        \"port\": 80,\n        \"login_name_mapping\": \"uid\",\n        \"account\": \"cn=Manager,dc=test,dc=com\",\n        \"password\": \"YouPassword123\",\n        \"filter\": \"objectClass=person\",\n        \"name_mapping\": \"nameAttr\",\n        \"email_mapping\": \"emailAttr\",\n        \"mobile_mapping\": \"mobileAttr\",\n        \"is_ssl\": False,\n        \"base_dn\": \"dc=test,dc=com\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.BastionHost.Instance(\"default\", new()\n    {\n        Description = name,\n        LicenseCode = \"bhah_ent_50_asset\",\n        PlanCode = \"cloudbastion\",\n        Storage = \"5\",\n        Bandwidth = \"5\",\n        Period = 1,\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        AdAuthServers = new[]\n        {\n            new AliCloud.BastionHost.Inputs.InstanceAdAuthServerArgs\n            {\n                Server = \"192.168.1.1\",\n                StandbyServer = \"192.168.1.3\",\n                Port = 80,\n                Domain = \"domain\",\n                Account = \"cn=Manager,dc=test,dc=com\",\n                Password = \"YouPassword123\",\n                Filter = \"objectClass=person\",\n                NameMapping = \"nameAttr\",\n                EmailMapping = \"emailAttr\",\n                MobileMapping = \"mobileAttr\",\n                IsSsl = false,\n                BaseDn = \"dc=test,dc=com\",\n            },\n        },\n        LdapAuthServers = new[]\n        {\n            new AliCloud.BastionHost.Inputs.InstanceLdapAuthServerArgs\n            {\n                Server = \"192.168.1.1\",\n                StandbyServer = \"192.168.1.3\",\n                Port = 80,\n                LoginNameMapping = \"uid\",\n                Account = \"cn=Manager,dc=test,dc=com\",\n                Password = \"YouPassword123\",\n                Filter = \"objectClass=person\",\n                NameMapping = \"nameAttr\",\n                EmailMapping = \"emailAttr\",\n                MobileMapping = \"mobileAttr\",\n                IsSsl = false,\n                BaseDn = \"dc=test,dc=com\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/24\"),\n\t\t\tVpcId:     pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:    pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bastionhost.NewInstance(ctx, \"default\", \u0026bastionhost.InstanceArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tLicenseCode: pulumi.String(\"bhah_ent_50_asset\"),\n\t\t\tPlanCode:    pulumi.String(\"cloudbastion\"),\n\t\t\tStorage:     pulumi.String(\"5\"),\n\t\t\tBandwidth:   pulumi.String(\"5\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId: pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tAdAuthServers: bastionhost.InstanceAdAuthServerArray{\n\t\t\t\t\u0026bastionhost.InstanceAdAuthServerArgs{\n\t\t\t\t\tServer:        pulumi.String(\"192.168.1.1\"),\n\t\t\t\t\tStandbyServer: pulumi.String(\"192.168.1.3\"),\n\t\t\t\t\tPort:          pulumi.Int(80),\n\t\t\t\t\tDomain:        pulumi.String(\"domain\"),\n\t\t\t\t\tAccount:       pulumi.String(\"cn=Manager,dc=test,dc=com\"),\n\t\t\t\t\tPassword:      pulumi.String(\"YouPassword123\"),\n\t\t\t\t\tFilter:        pulumi.String(\"objectClass=person\"),\n\t\t\t\t\tNameMapping:   pulumi.String(\"nameAttr\"),\n\t\t\t\t\tEmailMapping:  pulumi.String(\"emailAttr\"),\n\t\t\t\t\tMobileMapping: pulumi.String(\"mobileAttr\"),\n\t\t\t\t\tIsSsl:         pulumi.Bool(false),\n\t\t\t\t\tBaseDn:        pulumi.String(\"dc=test,dc=com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLdapAuthServers: bastionhost.InstanceLdapAuthServerArray{\n\t\t\t\t\u0026bastionhost.InstanceLdapAuthServerArgs{\n\t\t\t\t\tServer:           pulumi.String(\"192.168.1.1\"),\n\t\t\t\t\tStandbyServer:    pulumi.String(\"192.168.1.3\"),\n\t\t\t\t\tPort:             pulumi.Int(80),\n\t\t\t\t\tLoginNameMapping: pulumi.String(\"uid\"),\n\t\t\t\t\tAccount:          pulumi.String(\"cn=Manager,dc=test,dc=com\"),\n\t\t\t\t\tPassword:         pulumi.String(\"YouPassword123\"),\n\t\t\t\t\tFilter:           pulumi.String(\"objectClass=person\"),\n\t\t\t\t\tNameMapping:      pulumi.String(\"nameAttr\"),\n\t\t\t\t\tEmailMapping:     pulumi.String(\"emailAttr\"),\n\t\t\t\t\tMobileMapping:    pulumi.String(\"mobileAttr\"),\n\t\t\t\t\tIsSsl:            pulumi.Bool(false),\n\t\t\t\t\tBaseDn:           pulumi.String(\"dc=test,dc=com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.bastionhost.Instance;\nimport com.pulumi.alicloud.bastionhost.InstanceArgs;\nimport com.pulumi.alicloud.bastionhost.inputs.InstanceAdAuthServerArgs;\nimport com.pulumi.alicloud.bastionhost.inputs.InstanceLdapAuthServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .description(name)\n            .licenseCode(\"bhah_ent_50_asset\")\n            .planCode(\"cloudbastion\")\n            .storage(\"5\")\n            .bandwidth(\"5\")\n            .period(1)\n            .securityGroupIds(defaultSecurityGroup.id())\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .adAuthServers(InstanceAdAuthServerArgs.builder()\n                .server(\"192.168.1.1\")\n                .standbyServer(\"192.168.1.3\")\n                .port(80)\n                .domain(\"domain\")\n                .account(\"cn=Manager,dc=test,dc=com\")\n                .password(\"YouPassword123\")\n                .filter(\"objectClass=person\")\n                .nameMapping(\"nameAttr\")\n                .emailMapping(\"emailAttr\")\n                .mobileMapping(\"mobileAttr\")\n                .isSsl(false)\n                .baseDn(\"dc=test,dc=com\")\n                .build())\n            .ldapAuthServers(InstanceLdapAuthServerArgs.builder()\n                .server(\"192.168.1.1\")\n                .standbyServer(\"192.168.1.3\")\n                .port(80)\n                .loginNameMapping(\"uid\")\n                .account(\"cn=Manager,dc=test,dc=com\")\n                .password(\"YouPassword123\")\n                .filter(\"objectClass=person\")\n                .nameMapping(\"nameAttr\")\n                .emailMapping(\"emailAttr\")\n                .mobileMapping(\"mobileAttr\")\n                .isSsl(false)\n                .baseDn(\"dc=test,dc=com\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultInstance:\n    type: alicloud:bastionhost:Instance\n    name: default\n    properties:\n      description: ${name}\n      licenseCode: bhah_ent_50_asset\n      planCode: cloudbastion\n      storage: '5'\n      bandwidth: '5'\n      period: 1\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      adAuthServers:\n        - server: 192.168.1.1\n          standbyServer: 192.168.1.3\n          port: '80'\n          domain: domain\n          account: cn=Manager,dc=test,dc=com\n          password: YouPassword123\n          filter: objectClass=person\n          nameMapping: nameAttr\n          emailMapping: emailAttr\n          mobileMapping: mobileAttr\n          isSsl: false\n          baseDn: dc=test,dc=com\n      ldapAuthServers:\n        - server: 192.168.1.1\n          standbyServer: 192.168.1.3\n          port: '80'\n          loginNameMapping: uid\n          account: cn=Manager,dc=test,dc=com\n          password: YouPassword123\n          filter: objectClass=person\n          nameMapping: nameAttr\n          emailMapping: emailAttr\n          mobileMapping: mobileAttr\n          isSsl: false\n          baseDn: dc=test,dc=com\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 10.4.0.0/16\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        cidrBlock: 10.4.0.0/24\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.bastionhost.Instance`\" pulumi-lang-dotnet=\"`alicloud.bastionhost.Instance`\" pulumi-lang-go=\"`bastionhost.Instance`\" pulumi-lang-python=\"`bastionhost.Instance`\" pulumi-lang-yaml=\"`alicloud.bastionhost.Instance`\" pulumi-lang-java=\"`alicloud.bastionhost.Instance`\"\u003e`alicloud.bastionhost.Instance`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.bastionhost.Instance`\" pulumi-lang-dotnet=\"`alicloud.bastionhost.Instance`\" pulumi-lang-go=\"`bastionhost.Instance`\" pulumi-lang-python=\"`bastionhost.Instance`\" pulumi-lang-yaml=\"`alicloud.bastionhost.Instance`\" pulumi-lang-java=\"`alicloud.bastionhost.Instance`\"\u003e`alicloud.bastionhost.Instance`\u003c/span\u003e resource allows you to manage bastionhost instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration\nwill remove it from your state file and management, but will not destroy the bastionhost instance.\nYou can resume managing the subscription bastionhost instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nYundun_bastionhost instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:bastionhost/instance:Instance example bastionhost-exampe123456\n```\n\n","properties":{"adAuthServers":{"type":"array","items":{"$ref":"#/types/alicloud:bastionhost/InstanceAdAuthServer:InstanceAdAuthServer"},"description":"The AD auth server of the Instance. See \u003cspan pulumi-lang-nodejs=\"`adAuthServer`\" pulumi-lang-dotnet=\"`AdAuthServer`\" pulumi-lang-go=\"`adAuthServer`\" pulumi-lang-python=\"`ad_auth_server`\" pulumi-lang-yaml=\"`adAuthServer`\" pulumi-lang-java=\"`adAuthServer`\"\u003e`ad_auth_server`\u003c/span\u003e below.\n"},"bandwidth":{"type":"string","description":"The bandwidth of Cloud Bastionhost instance. **NOTE:** From version 1.263.0, \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e can be modified.\nIf China-Site Account, its valid values: 0 to 150. Unit: Mbit/s. The value must be a multiple of 5.\nIf International-Site Account, its valid values: 0 to 200. Unit: Mbit/s. The value must be a multiple of 10.\n"},"description":{"type":"string","description":"Description of the instance. This name can have a string of 1 to 63 characters.\n"},"enablePublicAccess":{"type":"boolean","description":"Whether to Enable the public internet access to a specified Bastionhost instance. The valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ldapAuthServers":{"type":"array","items":{"$ref":"#/types/alicloud:bastionhost/InstanceLdapAuthServer:InstanceLdapAuthServer"},"description":"The LDAP auth server of the Instance. See \u003cspan pulumi-lang-nodejs=\"`ldapAuthServer`\" pulumi-lang-dotnet=\"`LdapAuthServer`\" pulumi-lang-go=\"`ldapAuthServer`\" pulumi-lang-python=\"`ldap_auth_server`\" pulumi-lang-yaml=\"`ldapAuthServer`\" pulumi-lang-java=\"`ldapAuthServer`\"\u003e`ldap_auth_server`\u003c/span\u003e below.\n"},"licenseCode":{"type":"string","description":"The package type of Cloud Bastionhost instance. You can query more supported types through the [DescribePricingModule](https://help.aliyun.com/document_detail/96469.html).\n"},"period":{"type":"integer","description":"Duration for initially producing the instance. Valid values: [1~9], 12, 24, 36. At present, the provider does not support modify \"period\".\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"planCode":{"type":"string","description":"The plan code of Cloud Bastionhost instance. Valid values:\n"},"publicWhiteLists":{"type":"array","items":{"type":"string"},"description":"The public IP address that you want to add to the whitelist.\n\n\u003e **NOTE:** You can utilize the generic Terraform resource lifecycle configuration block with \u003cspan pulumi-lang-nodejs=\"`adAuthServer`\" pulumi-lang-dotnet=\"`AdAuthServer`\" pulumi-lang-go=\"`adAuthServer`\" pulumi-lang-python=\"`ad_auth_server`\" pulumi-lang-yaml=\"`adAuthServer`\" pulumi-lang-java=\"`adAuthServer`\"\u003e`ad_auth_server`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ldapAuthServer`\" pulumi-lang-dotnet=\"`LdapAuthServer`\" pulumi-lang-go=\"`ldapAuthServer`\" pulumi-lang-python=\"`ldap_auth_server`\" pulumi-lang-yaml=\"`ldapAuthServer`\" pulumi-lang-java=\"`ldapAuthServer`\"\u003e`ldap_auth_server`\u003c/span\u003e to configure auth server, then ignore any changes to that \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e caused externally (e.g. Application Autoscaling).\n```\n# ... ignore the change about ad_auth_server.0.password and ldap_auth_server.0.password in alicloud_bastionhost_instance\nlifecycle {\nignore_changes = [ad_auth_server.0.password,ldap_auth_server.0.password]\n}\n```\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`renewPeriod`\" pulumi-lang-dotnet=\"`RenewPeriod`\" pulumi-lang-go=\"`renewPeriod`\" pulumi-lang-python=\"`renew_period`\" pulumi-lang-yaml=\"`renewPeriod`\" pulumi-lang-java=\"`renewPeriod`\"\u003e`renew_period`\u003c/span\u003e is required under the condition that \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is `AutoRenewal`. From version 1.193.0, \u003cspan pulumi-lang-nodejs=\"`renewPeriod`\" pulumi-lang-dotnet=\"`RenewPeriod`\" pulumi-lang-go=\"`renewPeriod`\" pulumi-lang-python=\"`renew_period`\" pulumi-lang-yaml=\"`renewPeriod`\" pulumi-lang-java=\"`renewPeriod`\"\u003e`renew_period`\u003c/span\u003e can be modified.\n"},"renewalPeriodUnit":{"type":"string","description":"The unit of the auto-renewal period. Valid values:  **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`renewalPeriodUnit`\" pulumi-lang-dotnet=\"`RenewalPeriodUnit`\" pulumi-lang-go=\"`renewalPeriodUnit`\" pulumi-lang-python=\"`renewal_period_unit`\" pulumi-lang-yaml=\"`renewalPeriodUnit`\" pulumi-lang-java=\"`renewalPeriodUnit`\"\u003e`renewal_period_unit`\u003c/span\u003e is required under the condition that \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is `AutoRenewal`.\n- `M`: months.\n- `Y`: years.\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`, `ManualRenewal`, `NotRenewal`. From version 1.193.0, \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e can be modified.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the Bastionhost Instance belongs. If not set, the resource is created in the default resource group.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"security group IDs configured to Bastionhost. \n**NOTE:** There is a potential diff error because of the order of \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e values indefinite.\nSo, from version 1.160.0, \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e type has been updated as \u003cspan pulumi-lang-nodejs=\"`set`\" pulumi-lang-dotnet=\"`Set`\" pulumi-lang-go=\"`set`\" pulumi-lang-python=\"`set`\" pulumi-lang-yaml=\"`set`\" pulumi-lang-java=\"`set`\"\u003e`set`\u003c/span\u003e from \u003cspan pulumi-lang-nodejs=\"`list`\" pulumi-lang-dotnet=\"`List`\" pulumi-lang-go=\"`list`\" pulumi-lang-python=\"`list`\" pulumi-lang-yaml=\"`list`\" pulumi-lang-java=\"`list`\"\u003e`list`\u003c/span\u003e,\nand you can use tolist to convert it to a list.\n"},"slaveVswitchId":{"type":"string","description":"Slave VSwitch ID configured to Bastionhost.\n"},"storage":{"type":"string","description":"The storage of Cloud Bastionhost instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e. Unit: TB. **NOTE:** From version 1.251.0, \u003cspan pulumi-lang-nodejs=\"`storage`\" pulumi-lang-dotnet=\"`Storage`\" pulumi-lang-go=\"`storage`\" pulumi-lang-python=\"`storage`\" pulumi-lang-yaml=\"`storage`\" pulumi-lang-java=\"`storage`\"\u003e`storage`\u003c/span\u003e can be modified.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"VSwitch ID configured to Bastionhost.\n"}},"required":["adAuthServers","bandwidth","description","enablePublicAccess","ldapAuthServers","licenseCode","planCode","renewalPeriodUnit","renewalStatus","resourceGroupId","securityGroupIds","storage","vswitchId"],"inputProperties":{"adAuthServers":{"type":"array","items":{"$ref":"#/types/alicloud:bastionhost/InstanceAdAuthServer:InstanceAdAuthServer"},"description":"The AD auth server of the Instance. See \u003cspan pulumi-lang-nodejs=\"`adAuthServer`\" pulumi-lang-dotnet=\"`AdAuthServer`\" pulumi-lang-go=\"`adAuthServer`\" pulumi-lang-python=\"`ad_auth_server`\" pulumi-lang-yaml=\"`adAuthServer`\" pulumi-lang-java=\"`adAuthServer`\"\u003e`ad_auth_server`\u003c/span\u003e below.\n"},"bandwidth":{"type":"string","description":"The bandwidth of Cloud Bastionhost instance. **NOTE:** From version 1.263.0, \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e can be modified.\nIf China-Site Account, its valid values: 0 to 150. Unit: Mbit/s. The value must be a multiple of 5.\nIf International-Site Account, its valid values: 0 to 200. Unit: Mbit/s. The value must be a multiple of 10.\n"},"description":{"type":"string","description":"Description of the instance. This name can have a string of 1 to 63 characters.\n"},"enablePublicAccess":{"type":"boolean","description":"Whether to Enable the public internet access to a specified Bastionhost instance. The valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ldapAuthServers":{"type":"array","items":{"$ref":"#/types/alicloud:bastionhost/InstanceLdapAuthServer:InstanceLdapAuthServer"},"description":"The LDAP auth server of the Instance. See \u003cspan pulumi-lang-nodejs=\"`ldapAuthServer`\" pulumi-lang-dotnet=\"`LdapAuthServer`\" pulumi-lang-go=\"`ldapAuthServer`\" pulumi-lang-python=\"`ldap_auth_server`\" pulumi-lang-yaml=\"`ldapAuthServer`\" pulumi-lang-java=\"`ldapAuthServer`\"\u003e`ldap_auth_server`\u003c/span\u003e below.\n"},"licenseCode":{"type":"string","description":"The package type of Cloud Bastionhost instance. You can query more supported types through the [DescribePricingModule](https://help.aliyun.com/document_detail/96469.html).\n"},"period":{"type":"integer","description":"Duration for initially producing the instance. Valid values: [1~9], 12, 24, 36. At present, the provider does not support modify \"period\".\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"planCode":{"type":"string","description":"The plan code of Cloud Bastionhost instance. Valid values:\n","willReplaceOnChanges":true},"publicWhiteLists":{"type":"array","items":{"type":"string"},"description":"The public IP address that you want to add to the whitelist.\n\n\u003e **NOTE:** You can utilize the generic Terraform resource lifecycle configuration block with \u003cspan pulumi-lang-nodejs=\"`adAuthServer`\" pulumi-lang-dotnet=\"`AdAuthServer`\" pulumi-lang-go=\"`adAuthServer`\" pulumi-lang-python=\"`ad_auth_server`\" pulumi-lang-yaml=\"`adAuthServer`\" pulumi-lang-java=\"`adAuthServer`\"\u003e`ad_auth_server`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ldapAuthServer`\" pulumi-lang-dotnet=\"`LdapAuthServer`\" pulumi-lang-go=\"`ldapAuthServer`\" pulumi-lang-python=\"`ldap_auth_server`\" pulumi-lang-yaml=\"`ldapAuthServer`\" pulumi-lang-java=\"`ldapAuthServer`\"\u003e`ldap_auth_server`\u003c/span\u003e to configure auth server, then ignore any changes to that \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e caused externally (e.g. Application Autoscaling).\n```\n# ... ignore the change about ad_auth_server.0.password and ldap_auth_server.0.password in alicloud_bastionhost_instance\nlifecycle {\nignore_changes = [ad_auth_server.0.password,ldap_auth_server.0.password]\n}\n```\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`renewPeriod`\" pulumi-lang-dotnet=\"`RenewPeriod`\" pulumi-lang-go=\"`renewPeriod`\" pulumi-lang-python=\"`renew_period`\" pulumi-lang-yaml=\"`renewPeriod`\" pulumi-lang-java=\"`renewPeriod`\"\u003e`renew_period`\u003c/span\u003e is required under the condition that \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is `AutoRenewal`. From version 1.193.0, \u003cspan pulumi-lang-nodejs=\"`renewPeriod`\" pulumi-lang-dotnet=\"`RenewPeriod`\" pulumi-lang-go=\"`renewPeriod`\" pulumi-lang-python=\"`renew_period`\" pulumi-lang-yaml=\"`renewPeriod`\" pulumi-lang-java=\"`renewPeriod`\"\u003e`renew_period`\u003c/span\u003e can be modified.\n"},"renewalPeriodUnit":{"type":"string","description":"The unit of the auto-renewal period. Valid values:  **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`renewalPeriodUnit`\" pulumi-lang-dotnet=\"`RenewalPeriodUnit`\" pulumi-lang-go=\"`renewalPeriodUnit`\" pulumi-lang-python=\"`renewal_period_unit`\" pulumi-lang-yaml=\"`renewalPeriodUnit`\" pulumi-lang-java=\"`renewalPeriodUnit`\"\u003e`renewal_period_unit`\u003c/span\u003e is required under the condition that \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is `AutoRenewal`.\n- `M`: months.\n- `Y`: years.\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`, `ManualRenewal`, `NotRenewal`. From version 1.193.0, \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e can be modified.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the Bastionhost Instance belongs. If not set, the resource is created in the default resource group.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"security group IDs configured to Bastionhost. \n**NOTE:** There is a potential diff error because of the order of \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e values indefinite.\nSo, from version 1.160.0, \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e type has been updated as \u003cspan pulumi-lang-nodejs=\"`set`\" pulumi-lang-dotnet=\"`Set`\" pulumi-lang-go=\"`set`\" pulumi-lang-python=\"`set`\" pulumi-lang-yaml=\"`set`\" pulumi-lang-java=\"`set`\"\u003e`set`\u003c/span\u003e from \u003cspan pulumi-lang-nodejs=\"`list`\" pulumi-lang-dotnet=\"`List`\" pulumi-lang-go=\"`list`\" pulumi-lang-python=\"`list`\" pulumi-lang-yaml=\"`list`\" pulumi-lang-java=\"`list`\"\u003e`list`\u003c/span\u003e,\nand you can use tolist to convert it to a list.\n"},"slaveVswitchId":{"type":"string","description":"Slave VSwitch ID configured to Bastionhost.\n","willReplaceOnChanges":true},"storage":{"type":"string","description":"The storage of Cloud Bastionhost instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e. Unit: TB. **NOTE:** From version 1.251.0, \u003cspan pulumi-lang-nodejs=\"`storage`\" pulumi-lang-dotnet=\"`Storage`\" pulumi-lang-go=\"`storage`\" pulumi-lang-python=\"`storage`\" pulumi-lang-yaml=\"`storage`\" pulumi-lang-java=\"`storage`\"\u003e`storage`\u003c/span\u003e can be modified.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"VSwitch ID configured to Bastionhost.\n","willReplaceOnChanges":true}},"requiredInputs":["bandwidth","description","licenseCode","planCode","securityGroupIds","storage","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"adAuthServers":{"type":"array","items":{"$ref":"#/types/alicloud:bastionhost/InstanceAdAuthServer:InstanceAdAuthServer"},"description":"The AD auth server of the Instance. See \u003cspan pulumi-lang-nodejs=\"`adAuthServer`\" pulumi-lang-dotnet=\"`AdAuthServer`\" pulumi-lang-go=\"`adAuthServer`\" pulumi-lang-python=\"`ad_auth_server`\" pulumi-lang-yaml=\"`adAuthServer`\" pulumi-lang-java=\"`adAuthServer`\"\u003e`ad_auth_server`\u003c/span\u003e below.\n"},"bandwidth":{"type":"string","description":"The bandwidth of Cloud Bastionhost instance. **NOTE:** From version 1.263.0, \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e can be modified.\nIf China-Site Account, its valid values: 0 to 150. Unit: Mbit/s. The value must be a multiple of 5.\nIf International-Site Account, its valid values: 0 to 200. Unit: Mbit/s. The value must be a multiple of 10.\n"},"description":{"type":"string","description":"Description of the instance. This name can have a string of 1 to 63 characters.\n"},"enablePublicAccess":{"type":"boolean","description":"Whether to Enable the public internet access to a specified Bastionhost instance. The valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ldapAuthServers":{"type":"array","items":{"$ref":"#/types/alicloud:bastionhost/InstanceLdapAuthServer:InstanceLdapAuthServer"},"description":"The LDAP auth server of the Instance. See \u003cspan pulumi-lang-nodejs=\"`ldapAuthServer`\" pulumi-lang-dotnet=\"`LdapAuthServer`\" pulumi-lang-go=\"`ldapAuthServer`\" pulumi-lang-python=\"`ldap_auth_server`\" pulumi-lang-yaml=\"`ldapAuthServer`\" pulumi-lang-java=\"`ldapAuthServer`\"\u003e`ldap_auth_server`\u003c/span\u003e below.\n"},"licenseCode":{"type":"string","description":"The package type of Cloud Bastionhost instance. You can query more supported types through the [DescribePricingModule](https://help.aliyun.com/document_detail/96469.html).\n"},"period":{"type":"integer","description":"Duration for initially producing the instance. Valid values: [1~9], 12, 24, 36. At present, the provider does not support modify \"period\".\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"planCode":{"type":"string","description":"The plan code of Cloud Bastionhost instance. Valid values:\n","willReplaceOnChanges":true},"publicWhiteLists":{"type":"array","items":{"type":"string"},"description":"The public IP address that you want to add to the whitelist.\n\n\u003e **NOTE:** You can utilize the generic Terraform resource lifecycle configuration block with \u003cspan pulumi-lang-nodejs=\"`adAuthServer`\" pulumi-lang-dotnet=\"`AdAuthServer`\" pulumi-lang-go=\"`adAuthServer`\" pulumi-lang-python=\"`ad_auth_server`\" pulumi-lang-yaml=\"`adAuthServer`\" pulumi-lang-java=\"`adAuthServer`\"\u003e`ad_auth_server`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ldapAuthServer`\" pulumi-lang-dotnet=\"`LdapAuthServer`\" pulumi-lang-go=\"`ldapAuthServer`\" pulumi-lang-python=\"`ldap_auth_server`\" pulumi-lang-yaml=\"`ldapAuthServer`\" pulumi-lang-java=\"`ldapAuthServer`\"\u003e`ldap_auth_server`\u003c/span\u003e to configure auth server, then ignore any changes to that \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e caused externally (e.g. Application Autoscaling).\n```\n# ... ignore the change about ad_auth_server.0.password and ldap_auth_server.0.password in alicloud_bastionhost_instance\nlifecycle {\nignore_changes = [ad_auth_server.0.password,ldap_auth_server.0.password]\n}\n```\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`renewPeriod`\" pulumi-lang-dotnet=\"`RenewPeriod`\" pulumi-lang-go=\"`renewPeriod`\" pulumi-lang-python=\"`renew_period`\" pulumi-lang-yaml=\"`renewPeriod`\" pulumi-lang-java=\"`renewPeriod`\"\u003e`renew_period`\u003c/span\u003e is required under the condition that \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is `AutoRenewal`. From version 1.193.0, \u003cspan pulumi-lang-nodejs=\"`renewPeriod`\" pulumi-lang-dotnet=\"`RenewPeriod`\" pulumi-lang-go=\"`renewPeriod`\" pulumi-lang-python=\"`renew_period`\" pulumi-lang-yaml=\"`renewPeriod`\" pulumi-lang-java=\"`renewPeriod`\"\u003e`renew_period`\u003c/span\u003e can be modified.\n"},"renewalPeriodUnit":{"type":"string","description":"The unit of the auto-renewal period. Valid values:  **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`renewalPeriodUnit`\" pulumi-lang-dotnet=\"`RenewalPeriodUnit`\" pulumi-lang-go=\"`renewalPeriodUnit`\" pulumi-lang-python=\"`renewal_period_unit`\" pulumi-lang-yaml=\"`renewalPeriodUnit`\" pulumi-lang-java=\"`renewalPeriodUnit`\"\u003e`renewal_period_unit`\u003c/span\u003e is required under the condition that \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is `AutoRenewal`.\n- `M`: months.\n- `Y`: years.\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`, `ManualRenewal`, `NotRenewal`. From version 1.193.0, \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e can be modified.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the Bastionhost Instance belongs. If not set, the resource is created in the default resource group.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"security group IDs configured to Bastionhost. \n**NOTE:** There is a potential diff error because of the order of \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e values indefinite.\nSo, from version 1.160.0, \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e type has been updated as \u003cspan pulumi-lang-nodejs=\"`set`\" pulumi-lang-dotnet=\"`Set`\" pulumi-lang-go=\"`set`\" pulumi-lang-python=\"`set`\" pulumi-lang-yaml=\"`set`\" pulumi-lang-java=\"`set`\"\u003e`set`\u003c/span\u003e from \u003cspan pulumi-lang-nodejs=\"`list`\" pulumi-lang-dotnet=\"`List`\" pulumi-lang-go=\"`list`\" pulumi-lang-python=\"`list`\" pulumi-lang-yaml=\"`list`\" pulumi-lang-java=\"`list`\"\u003e`list`\u003c/span\u003e,\nand you can use tolist to convert it to a list.\n"},"slaveVswitchId":{"type":"string","description":"Slave VSwitch ID configured to Bastionhost.\n","willReplaceOnChanges":true},"storage":{"type":"string","description":"The storage of Cloud Bastionhost instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e. Unit: TB. **NOTE:** From version 1.251.0, \u003cspan pulumi-lang-nodejs=\"`storage`\" pulumi-lang-dotnet=\"`Storage`\" pulumi-lang-go=\"`storage`\" pulumi-lang-python=\"`storage`\" pulumi-lang-yaml=\"`storage`\" pulumi-lang-java=\"`storage`\"\u003e`storage`\u003c/span\u003e can be modified.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"VSwitch ID configured to Bastionhost.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:bastionhost/user:User":{"description":"Provides a Bastion Host User resource.\n\nFor information about Bastion Host User and how to use it, see [What is User](https://www.alibabacloud.com/help/en/bastion-host/latest/api-yundun-bastionhost-2019-12-09-createuser).\n\n\u003e **NOTE:** Available since v1.133.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0])});\nconst defaultInstance = new alicloud.bastionhost.Instance(\"default\", {\n    description: name,\n    licenseCode: \"bhah_ent_50_asset\",\n    planCode: \"cloudbastion\",\n    storage: \"5\",\n    bandwidth: \"5\",\n    period: 1,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    securityGroupIds: [defaultSecurityGroup.id],\n});\nconst localUser = new alicloud.bastionhost.User(\"local_user\", {\n    instanceId: defaultInstance.id,\n    mobileCountryCode: \"CN\",\n    mobile: \"13312345678\",\n    password: \"YourPassword-123\",\n    source: \"Local\",\n    userName: `${name}_local_user`,\n});\nconst user = new alicloud.ram.User(\"user\", {\n    name: `${name}_bastionhost_user`,\n    displayName: `${name}_bastionhost_user`,\n    mobile: \"86-18688888888\",\n    email: \"hello.uuu@aaa.com\",\n    comments: \"yoyoyo\",\n    force: true,\n});\nconst defaultGetAccount = alicloud.getAccount({});\nconst ramUser = new alicloud.bastionhost.User(\"ram_user\", {\n    instanceId: defaultInstance.id,\n    source: \"Ram\",\n    sourceUserId: defaultGetAccount.then(defaultGetAccount =\u003e defaultGetAccount.id),\n    userName: user.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_get_switches = alicloud.vpc.get_switches(cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.bastionhost.Instance(\"default\",\n    description=name,\n    license_code=\"bhah_ent_50_asset\",\n    plan_code=\"cloudbastion\",\n    storage=\"5\",\n    bandwidth=\"5\",\n    period=1,\n    vswitch_id=default_get_switches.ids[0],\n    security_group_ids=[default_security_group.id])\nlocal_user = alicloud.bastionhost.User(\"local_user\",\n    instance_id=default_instance.id,\n    mobile_country_code=\"CN\",\n    mobile=\"13312345678\",\n    password=\"YourPassword-123\",\n    source=\"Local\",\n    user_name=f\"{name}_local_user\")\nuser = alicloud.ram.User(\"user\",\n    name=f\"{name}_bastionhost_user\",\n    display_name=f\"{name}_bastionhost_user\",\n    mobile=\"86-18688888888\",\n    email=\"hello.uuu@aaa.com\",\n    comments=\"yoyoyo\",\n    force=True)\ndefault_get_account = alicloud.get_account()\nram_user = alicloud.bastionhost.User(\"ram_user\",\n    instance_id=default_instance.id,\n    source=\"Ram\",\n    source_user_id=default_get_account.id,\n    user_name=user.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.BastionHost.Instance(\"default\", new()\n    {\n        Description = name,\n        LicenseCode = \"bhah_ent_50_asset\",\n        PlanCode = \"cloudbastion\",\n        Storage = \"5\",\n        Bandwidth = \"5\",\n        Period = 1,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var localUser = new AliCloud.BastionHost.User(\"local_user\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        MobileCountryCode = \"CN\",\n        Mobile = \"13312345678\",\n        Password = \"YourPassword-123\",\n        Source = \"Local\",\n        UserName = $\"{name}_local_user\",\n    });\n\n    var user = new AliCloud.Ram.User(\"user\", new()\n    {\n        Name = $\"{name}_bastionhost_user\",\n        DisplayName = $\"{name}_bastionhost_user\",\n        Mobile = \"86-18688888888\",\n        Email = \"hello.uuu@aaa.com\",\n        Comments = \"yoyoyo\",\n        Force = true,\n    });\n\n    var defaultGetAccount = AliCloud.GetAccount.Invoke();\n\n    var ramUser = new AliCloud.BastionHost.User(\"ram_user\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        Source = \"Ram\",\n        SourceUserId = defaultGetAccount.Apply(getAccountResult =\u003e getAccountResult.Id),\n        UserName = user.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/24\"),\n\t\t\tVpcId:     pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:    pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := bastionhost.NewInstance(ctx, \"default\", \u0026bastionhost.InstanceArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tLicenseCode: pulumi.String(\"bhah_ent_50_asset\"),\n\t\t\tPlanCode:    pulumi.String(\"cloudbastion\"),\n\t\t\tStorage:     pulumi.String(\"5\"),\n\t\t\tBandwidth:   pulumi.String(\"5\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tVswitchId:   pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bastionhost.NewUser(ctx, \"local_user\", \u0026bastionhost.UserArgs{\n\t\t\tInstanceId:        defaultInstance.ID(),\n\t\t\tMobileCountryCode: pulumi.String(\"CN\"),\n\t\t\tMobile:            pulumi.String(\"13312345678\"),\n\t\t\tPassword:          pulumi.String(\"YourPassword-123\"),\n\t\t\tSource:            pulumi.String(\"Local\"),\n\t\t\tUserName:          pulumi.Sprintf(\"%v_local_user\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser, err := ram.NewUser(ctx, \"user\", \u0026ram.UserArgs{\n\t\t\tName:        pulumi.Sprintf(\"%v_bastionhost_user\", name),\n\t\t\tDisplayName: pulumi.Sprintf(\"%v_bastionhost_user\", name),\n\t\t\tMobile:      pulumi.String(\"86-18688888888\"),\n\t\t\tEmail:       pulumi.String(\"hello.uuu@aaa.com\"),\n\t\t\tComments:    pulumi.String(\"yoyoyo\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetAccount, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bastionhost.NewUser(ctx, \"ram_user\", \u0026bastionhost.UserArgs{\n\t\t\tInstanceId:   defaultInstance.ID(),\n\t\t\tSource:       pulumi.String(\"Ram\"),\n\t\t\tSourceUserId: pulumi.String(defaultGetAccount.Id),\n\t\t\tUserName:     user.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.bastionhost.Instance;\nimport com.pulumi.alicloud.bastionhost.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .description(name)\n            .licenseCode(\"bhah_ent_50_asset\")\n            .planCode(\"cloudbastion\")\n            .storage(\"5\")\n            .bandwidth(\"5\")\n            .period(1)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n        var localUser = new com.pulumi.alicloud.bastionhost.User(\"localUser\", com.pulumi.alicloud.bastionhost.UserArgs.builder()\n            .instanceId(defaultInstance.id())\n            .mobileCountryCode(\"CN\")\n            .mobile(\"13312345678\")\n            .password(\"YourPassword-123\")\n            .source(\"Local\")\n            .userName(String.format(\"%s_local_user\", name))\n            .build());\n\n        var user = new com.pulumi.alicloud.ram.User(\"user\", com.pulumi.alicloud.ram.UserArgs.builder()\n            .name(String.format(\"%s_bastionhost_user\", name))\n            .displayName(String.format(\"%s_bastionhost_user\", name))\n            .mobile(\"86-18688888888\")\n            .email(\"hello.uuu@aaa.com\")\n            .comments(\"yoyoyo\")\n            .force(true)\n            .build());\n\n        final var defaultGetAccount = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var ramUser = new com.pulumi.alicloud.bastionhost.User(\"ramUser\", com.pulumi.alicloud.bastionhost.UserArgs.builder()\n            .instanceId(defaultInstance.id())\n            .source(\"Ram\")\n            .sourceUserId(defaultGetAccount.id())\n            .userName(user.name())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultInstance:\n    type: alicloud:bastionhost:Instance\n    name: default\n    properties:\n      description: ${name}\n      licenseCode: bhah_ent_50_asset\n      planCode: cloudbastion\n      storage: '5'\n      bandwidth: '5'\n      period: '1'\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n  localUser:\n    type: alicloud:bastionhost:User\n    name: local_user\n    properties:\n      instanceId: ${defaultInstance.id}\n      mobileCountryCode: CN\n      mobile: '13312345678'\n      password: YourPassword-123\n      source: Local\n      userName: ${name}_local_user\n  user:\n    type: alicloud:ram:User\n    properties:\n      name: ${name}_bastionhost_user\n      displayName: ${name}_bastionhost_user\n      mobile: 86-18688888888\n      email: hello.uuu@aaa.com\n      comments: yoyoyo\n      force: true\n  ramUser:\n    type: alicloud:bastionhost:User\n    name: ram_user\n    properties:\n      instanceId: ${defaultInstance.id}\n      source: Ram\n      sourceUserId: ${defaultGetAccount.id}\n      userName: ${user.name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 10.4.0.0/16\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        cidrBlock: 10.4.0.0/24\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n  defaultGetAccount:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nBastion Host User can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:bastionhost/user:User example \u003cinstance_id\u003e:\u003cuser_id\u003e\n```\n\n","properties":{"comment":{"type":"string","description":"Specify the New of the User That Created the Remark Information. Supports up to 500 Characters.\n"},"displayName":{"type":"string","description":"Specify the New Created the User's Display Name. Supports up to 128 Characters.\n"},"email":{"type":"string","description":"Specify the New User's Mailbox.\n"},"instanceId":{"type":"string","description":"You Want to Query the User the Bastion Host ID of.\n"},"mobile":{"type":"string","description":"Specify the New of the User That Created a Different Mobile Phone Number from Your.\n"},"mobileCountryCode":{"type":"string","description":"Specify the New Create User Mobile Phone Number of the International Domain Name. The Default Value Is the CN. Valid Values:\n* CN: Mainland China (+86)\n* HK: hong Kong, China (+852)\n* MO: Macau, China (+853)\n* TW: Taiwan, China (+886)\n* RU: Russian (+7)\n* SG: Singapore (+65)\n* MY: malaysia (+60)\n* ID: Indonesia (+62)\n* DE: Germany (+49)\n* AU: Australia (+61)\n* US: United States (+1)\n* AE: dubai (+971)\n* JP: Japan (+81) Introducing the Long-Range\n* GB: United Kingdom (+44)\n* IN: India (+91)\n* KR: South Korea (+82)\n* PH: philippines (+63)\n* CH: Switzerland (+41)\n* SE: Sweden (+46)\n"},"password":{"type":"string","description":"Specify the New User's Password. Supports up to 128 Characters. Description of the New User as the Source of the Local User That Is, Source Value for Local, this Parameter Is Required.\n","secret":true},"source":{"type":"string","description":"Specify the New of the User That Created the Source. Valid Values:\n* Local: Local User\n* Ram: Ram User\n* AD: AD-authenticated User\n* LDAP: LDAP-authenticated User\n\u003e **NOTE:** From version 1.199.0, \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e can be set to `AD`, `LDAP`.\n"},"sourceUserId":{"type":"string","description":"Specify the Newly Created User Is Uniquely Identified. Indicates That the Parameter Is a Bastion Host Corresponding to the User with the Ram User's Unique Identifier. The Newly Created User Source Grant Permission to a RAM User (That Is, Source Used as a Ram), this Parameter Is Required. You Can Call Access Control of Listusers Interface from the Return Data Userid to Obtain the Parameters.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Frozen`, `Normal`.\n"},"userId":{"type":"string","description":"The User ID.\n"},"userName":{"type":"string","description":"Specify the New User Name. This Parameter Is Only by Letters, Lowercase Letters, Numbers, and Underscores (_), Supports up to 128 Characters.\n"}},"required":["displayName","instanceId","mobileCountryCode","source","status","userId","userName"],"inputProperties":{"comment":{"type":"string","description":"Specify the New of the User That Created the Remark Information. Supports up to 500 Characters.\n"},"displayName":{"type":"string","description":"Specify the New Created the User's Display Name. Supports up to 128 Characters.\n"},"email":{"type":"string","description":"Specify the New User's Mailbox.\n"},"instanceId":{"type":"string","description":"You Want to Query the User the Bastion Host ID of.\n","willReplaceOnChanges":true},"mobile":{"type":"string","description":"Specify the New of the User That Created a Different Mobile Phone Number from Your.\n"},"mobileCountryCode":{"type":"string","description":"Specify the New Create User Mobile Phone Number of the International Domain Name. The Default Value Is the CN. Valid Values:\n* CN: Mainland China (+86)\n* HK: hong Kong, China (+852)\n* MO: Macau, China (+853)\n* TW: Taiwan, China (+886)\n* RU: Russian (+7)\n* SG: Singapore (+65)\n* MY: malaysia (+60)\n* ID: Indonesia (+62)\n* DE: Germany (+49)\n* AU: Australia (+61)\n* US: United States (+1)\n* AE: dubai (+971)\n* JP: Japan (+81) Introducing the Long-Range\n* GB: United Kingdom (+44)\n* IN: India (+91)\n* KR: South Korea (+82)\n* PH: philippines (+63)\n* CH: Switzerland (+41)\n* SE: Sweden (+46)\n"},"password":{"type":"string","description":"Specify the New User's Password. Supports up to 128 Characters. Description of the New User as the Source of the Local User That Is, Source Value for Local, this Parameter Is Required.\n","secret":true},"source":{"type":"string","description":"Specify the New of the User That Created the Source. Valid Values:\n* Local: Local User\n* Ram: Ram User\n* AD: AD-authenticated User\n* LDAP: LDAP-authenticated User\n\u003e **NOTE:** From version 1.199.0, \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e can be set to `AD`, `LDAP`.\n","willReplaceOnChanges":true},"sourceUserId":{"type":"string","description":"Specify the Newly Created User Is Uniquely Identified. Indicates That the Parameter Is a Bastion Host Corresponding to the User with the Ram User's Unique Identifier. The Newly Created User Source Grant Permission to a RAM User (That Is, Source Used as a Ram), this Parameter Is Required. You Can Call Access Control of Listusers Interface from the Return Data Userid to Obtain the Parameters.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `Frozen`, `Normal`.\n"},"userName":{"type":"string","description":"Specify the New User Name. This Parameter Is Only by Letters, Lowercase Letters, Numbers, and Underscores (_), Supports up to 128 Characters.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId","source","userName"],"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"comment":{"type":"string","description":"Specify the New of the User That Created the Remark Information. Supports up to 500 Characters.\n"},"displayName":{"type":"string","description":"Specify the New Created the User's Display Name. Supports up to 128 Characters.\n"},"email":{"type":"string","description":"Specify the New User's Mailbox.\n"},"instanceId":{"type":"string","description":"You Want to Query the User the Bastion Host ID of.\n","willReplaceOnChanges":true},"mobile":{"type":"string","description":"Specify the New of the User That Created a Different Mobile Phone Number from Your.\n"},"mobileCountryCode":{"type":"string","description":"Specify the New Create User Mobile Phone Number of the International Domain Name. The Default Value Is the CN. Valid Values:\n* CN: Mainland China (+86)\n* HK: hong Kong, China (+852)\n* MO: Macau, China (+853)\n* TW: Taiwan, China (+886)\n* RU: Russian (+7)\n* SG: Singapore (+65)\n* MY: malaysia (+60)\n* ID: Indonesia (+62)\n* DE: Germany (+49)\n* AU: Australia (+61)\n* US: United States (+1)\n* AE: dubai (+971)\n* JP: Japan (+81) Introducing the Long-Range\n* GB: United Kingdom (+44)\n* IN: India (+91)\n* KR: South Korea (+82)\n* PH: philippines (+63)\n* CH: Switzerland (+41)\n* SE: Sweden (+46)\n"},"password":{"type":"string","description":"Specify the New User's Password. Supports up to 128 Characters. Description of the New User as the Source of the Local User That Is, Source Value for Local, this Parameter Is Required.\n","secret":true},"source":{"type":"string","description":"Specify the New of the User That Created the Source. Valid Values:\n* Local: Local User\n* Ram: Ram User\n* AD: AD-authenticated User\n* LDAP: LDAP-authenticated User\n\u003e **NOTE:** From version 1.199.0, \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e can be set to `AD`, `LDAP`.\n","willReplaceOnChanges":true},"sourceUserId":{"type":"string","description":"Specify the Newly Created User Is Uniquely Identified. Indicates That the Parameter Is a Bastion Host Corresponding to the User with the Ram User's Unique Identifier. The Newly Created User Source Grant Permission to a RAM User (That Is, Source Used as a Ram), this Parameter Is Required. You Can Call Access Control of Listusers Interface from the Return Data Userid to Obtain the Parameters.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `Frozen`, `Normal`.\n"},"userId":{"type":"string","description":"The User ID.\n"},"userName":{"type":"string","description":"Specify the New User Name. This Parameter Is Only by Letters, Lowercase Letters, Numbers, and Underscores (_), Supports up to 128 Characters.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:bastionhost/userAttachment:UserAttachment":{"description":"Provides a Bastion Host User Attachment resource to add user to one user group.\n\n\u003e **NOTE:** Available since v1.134.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0])});\nconst defaultInstance = new alicloud.bastionhost.Instance(\"default\", {\n    description: name,\n    licenseCode: \"bhah_ent_50_asset\",\n    planCode: \"cloudbastion\",\n    storage: \"5\",\n    bandwidth: \"5\",\n    period: 1,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    securityGroupIds: [defaultSecurityGroup.id],\n});\nconst defaultUserGroup = new alicloud.bastionhost.UserGroup(\"default\", {\n    instanceId: defaultInstance.id,\n    userGroupName: name,\n});\nconst localUser = new alicloud.bastionhost.User(\"local_user\", {\n    instanceId: defaultInstance.id,\n    mobileCountryCode: \"CN\",\n    mobile: \"13312345678\",\n    password: \"YourPassword-123\",\n    source: \"Local\",\n    userName: `${name}_local_user`,\n});\nconst defaultUserAttachment = new alicloud.bastionhost.UserAttachment(\"default\", {\n    instanceId: defaultInstance.id,\n    userGroupId: defaultUserGroup.userGroupId,\n    userId: localUser.userId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_get_switches = alicloud.vpc.get_switches(cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.bastionhost.Instance(\"default\",\n    description=name,\n    license_code=\"bhah_ent_50_asset\",\n    plan_code=\"cloudbastion\",\n    storage=\"5\",\n    bandwidth=\"5\",\n    period=1,\n    vswitch_id=default_get_switches.ids[0],\n    security_group_ids=[default_security_group.id])\ndefault_user_group = alicloud.bastionhost.UserGroup(\"default\",\n    instance_id=default_instance.id,\n    user_group_name=name)\nlocal_user = alicloud.bastionhost.User(\"local_user\",\n    instance_id=default_instance.id,\n    mobile_country_code=\"CN\",\n    mobile=\"13312345678\",\n    password=\"YourPassword-123\",\n    source=\"Local\",\n    user_name=f\"{name}_local_user\")\ndefault_user_attachment = alicloud.bastionhost.UserAttachment(\"default\",\n    instance_id=default_instance.id,\n    user_group_id=default_user_group.user_group_id,\n    user_id=local_user.user_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.BastionHost.Instance(\"default\", new()\n    {\n        Description = name,\n        LicenseCode = \"bhah_ent_50_asset\",\n        PlanCode = \"cloudbastion\",\n        Storage = \"5\",\n        Bandwidth = \"5\",\n        Period = 1,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var defaultUserGroup = new AliCloud.BastionHost.UserGroup(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        UserGroupName = name,\n    });\n\n    var localUser = new AliCloud.BastionHost.User(\"local_user\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        MobileCountryCode = \"CN\",\n        Mobile = \"13312345678\",\n        Password = \"YourPassword-123\",\n        Source = \"Local\",\n        UserName = $\"{name}_local_user\",\n    });\n\n    var defaultUserAttachment = new AliCloud.BastionHost.UserAttachment(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        UserGroupId = defaultUserGroup.UserGroupId,\n        UserId = localUser.UserId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/24\"),\n\t\t\tVpcId:     pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:    pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := bastionhost.NewInstance(ctx, \"default\", \u0026bastionhost.InstanceArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tLicenseCode: pulumi.String(\"bhah_ent_50_asset\"),\n\t\t\tPlanCode:    pulumi.String(\"cloudbastion\"),\n\t\t\tStorage:     pulumi.String(\"5\"),\n\t\t\tBandwidth:   pulumi.String(\"5\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tVswitchId:   pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultUserGroup, err := bastionhost.NewUserGroup(ctx, \"default\", \u0026bastionhost.UserGroupArgs{\n\t\t\tInstanceId:    defaultInstance.ID(),\n\t\t\tUserGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlocalUser, err := bastionhost.NewUser(ctx, \"local_user\", \u0026bastionhost.UserArgs{\n\t\t\tInstanceId:        defaultInstance.ID(),\n\t\t\tMobileCountryCode: pulumi.String(\"CN\"),\n\t\t\tMobile:            pulumi.String(\"13312345678\"),\n\t\t\tPassword:          pulumi.String(\"YourPassword-123\"),\n\t\t\tSource:            pulumi.String(\"Local\"),\n\t\t\tUserName:          pulumi.Sprintf(\"%v_local_user\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bastionhost.NewUserAttachment(ctx, \"default\", \u0026bastionhost.UserAttachmentArgs{\n\t\t\tInstanceId:  defaultInstance.ID(),\n\t\t\tUserGroupId: defaultUserGroup.UserGroupId,\n\t\t\tUserId:      localUser.UserId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.bastionhost.Instance;\nimport com.pulumi.alicloud.bastionhost.InstanceArgs;\nimport com.pulumi.alicloud.bastionhost.UserGroup;\nimport com.pulumi.alicloud.bastionhost.UserGroupArgs;\nimport com.pulumi.alicloud.bastionhost.User;\nimport com.pulumi.alicloud.bastionhost.UserArgs;\nimport com.pulumi.alicloud.bastionhost.UserAttachment;\nimport com.pulumi.alicloud.bastionhost.UserAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .description(name)\n            .licenseCode(\"bhah_ent_50_asset\")\n            .planCode(\"cloudbastion\")\n            .storage(\"5\")\n            .bandwidth(\"5\")\n            .period(1)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n        var defaultUserGroup = new UserGroup(\"defaultUserGroup\", UserGroupArgs.builder()\n            .instanceId(defaultInstance.id())\n            .userGroupName(name)\n            .build());\n\n        var localUser = new User(\"localUser\", UserArgs.builder()\n            .instanceId(defaultInstance.id())\n            .mobileCountryCode(\"CN\")\n            .mobile(\"13312345678\")\n            .password(\"YourPassword-123\")\n            .source(\"Local\")\n            .userName(String.format(\"%s_local_user\", name))\n            .build());\n\n        var defaultUserAttachment = new UserAttachment(\"defaultUserAttachment\", UserAttachmentArgs.builder()\n            .instanceId(defaultInstance.id())\n            .userGroupId(defaultUserGroup.userGroupId())\n            .userId(localUser.userId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultInstance:\n    type: alicloud:bastionhost:Instance\n    name: default\n    properties:\n      description: ${name}\n      licenseCode: bhah_ent_50_asset\n      planCode: cloudbastion\n      storage: '5'\n      bandwidth: '5'\n      period: '1'\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n  defaultUserGroup:\n    type: alicloud:bastionhost:UserGroup\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      userGroupName: ${name}\n  localUser:\n    type: alicloud:bastionhost:User\n    name: local_user\n    properties:\n      instanceId: ${defaultInstance.id}\n      mobileCountryCode: CN\n      mobile: '13312345678'\n      password: YourPassword-123\n      source: Local\n      userName: ${name}_local_user\n  defaultUserAttachment:\n    type: alicloud:bastionhost:UserAttachment\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      userGroupId: ${defaultUserGroup.userGroupId}\n      userId: ${localUser.userId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 10.4.0.0/16\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        cidrBlock: 10.4.0.0/24\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nBastion Host User Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:bastionhost/userAttachment:UserAttachment example \u003cinstance_id\u003e:\u003cuser_group_id\u003e:\u003cuser_id\u003e\n```\n\n","properties":{"instanceId":{"type":"string","description":"Specifies the user group to add the user's bastion host ID of.\n"},"userGroupId":{"type":"string","description":"Specifies the user group to which you want to add the user ID.\n"},"userId":{"type":"string","description":"Specify that you want to add to the policy attached to the user group ID. This includes response parameters in a Json-formatted string supports up to set up 100 USER ID.\n"}},"required":["instanceId","userGroupId","userId"],"inputProperties":{"instanceId":{"type":"string","description":"Specifies the user group to add the user's bastion host ID of.\n","willReplaceOnChanges":true},"userGroupId":{"type":"string","description":"Specifies the user group to which you want to add the user ID.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"Specify that you want to add to the policy attached to the user group ID. This includes response parameters in a Json-formatted string supports up to set up 100 USER ID.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId","userGroupId","userId"],"stateInputs":{"description":"Input properties used for looking up and filtering UserAttachment resources.\n","properties":{"instanceId":{"type":"string","description":"Specifies the user group to add the user's bastion host ID of.\n","willReplaceOnChanges":true},"userGroupId":{"type":"string","description":"Specifies the user group to which you want to add the user ID.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"Specify that you want to add to the policy attached to the user group ID. This includes response parameters in a Json-formatted string supports up to set up 100 USER ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:bastionhost/userGroup:UserGroup":{"description":"Provides a Bastion Host User Group resource.\n\nFor information about Bastion Host User Group and how to use it, see [What is User Group](https://www.alibabacloud.com/help/doc-detail/204596.htm).\n\n\u003e **NOTE:** Available since v1.132.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0])});\nconst defaultInstance = new alicloud.bastionhost.Instance(\"default\", {\n    description: name,\n    licenseCode: \"bhah_ent_50_asset\",\n    planCode: \"cloudbastion\",\n    storage: \"5\",\n    bandwidth: \"5\",\n    period: 1,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    securityGroupIds: [defaultSecurityGroup.id],\n});\nconst defaultUserGroup = new alicloud.bastionhost.UserGroup(\"default\", {\n    instanceId: defaultInstance.id,\n    userGroupName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_get_switches = alicloud.vpc.get_switches(cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.bastionhost.Instance(\"default\",\n    description=name,\n    license_code=\"bhah_ent_50_asset\",\n    plan_code=\"cloudbastion\",\n    storage=\"5\",\n    bandwidth=\"5\",\n    period=1,\n    vswitch_id=default_get_switches.ids[0],\n    security_group_ids=[default_security_group.id])\ndefault_user_group = alicloud.bastionhost.UserGroup(\"default\",\n    instance_id=default_instance.id,\n    user_group_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.BastionHost.Instance(\"default\", new()\n    {\n        Description = name,\n        LicenseCode = \"bhah_ent_50_asset\",\n        PlanCode = \"cloudbastion\",\n        Storage = \"5\",\n        Bandwidth = \"5\",\n        Period = 1,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var defaultUserGroup = new AliCloud.BastionHost.UserGroup(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        UserGroupName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/24\"),\n\t\t\tVpcId:     pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:    pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := bastionhost.NewInstance(ctx, \"default\", \u0026bastionhost.InstanceArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tLicenseCode: pulumi.String(\"bhah_ent_50_asset\"),\n\t\t\tPlanCode:    pulumi.String(\"cloudbastion\"),\n\t\t\tStorage:     pulumi.String(\"5\"),\n\t\t\tBandwidth:   pulumi.String(\"5\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tVswitchId:   pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bastionhost.NewUserGroup(ctx, \"default\", \u0026bastionhost.UserGroupArgs{\n\t\t\tInstanceId:    defaultInstance.ID(),\n\t\t\tUserGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.bastionhost.Instance;\nimport com.pulumi.alicloud.bastionhost.InstanceArgs;\nimport com.pulumi.alicloud.bastionhost.UserGroup;\nimport com.pulumi.alicloud.bastionhost.UserGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .description(name)\n            .licenseCode(\"bhah_ent_50_asset\")\n            .planCode(\"cloudbastion\")\n            .storage(\"5\")\n            .bandwidth(\"5\")\n            .period(1)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n        var defaultUserGroup = new UserGroup(\"defaultUserGroup\", UserGroupArgs.builder()\n            .instanceId(defaultInstance.id())\n            .userGroupName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultInstance:\n    type: alicloud:bastionhost:Instance\n    name: default\n    properties:\n      description: ${name}\n      licenseCode: bhah_ent_50_asset\n      planCode: cloudbastion\n      storage: '5'\n      bandwidth: '5'\n      period: '1'\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n  defaultUserGroup:\n    type: alicloud:bastionhost:UserGroup\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      userGroupName: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 10.4.0.0/16\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        cidrBlock: 10.4.0.0/24\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nBastion Host User Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:bastionhost/userGroup:UserGroup example \u003cinstance_id\u003e:\u003cuser_group_id\u003e\n```\n\n","properties":{"comment":{"type":"string","description":"Specify the New Group of Remark Information. Supports up to 500 Characters.\n"},"instanceId":{"type":"string","description":"Specify the New Group of the Bastion Host of Instance Id.\n"},"userGroupId":{"type":"string","description":"The User Group self ID.\n"},"userGroupName":{"type":"string","description":"Specify the New Group Name. Supports up to 128 Characters.\n"}},"required":["instanceId","userGroupId","userGroupName"],"inputProperties":{"comment":{"type":"string","description":"Specify the New Group of Remark Information. Supports up to 500 Characters.\n"},"instanceId":{"type":"string","description":"Specify the New Group of the Bastion Host of Instance Id.\n","willReplaceOnChanges":true},"userGroupName":{"type":"string","description":"Specify the New Group Name. Supports up to 128 Characters.\n"}},"requiredInputs":["instanceId","userGroupName"],"stateInputs":{"description":"Input properties used for looking up and filtering UserGroup resources.\n","properties":{"comment":{"type":"string","description":"Specify the New Group of Remark Information. Supports up to 500 Characters.\n"},"instanceId":{"type":"string","description":"Specify the New Group of the Bastion Host of Instance Id.\n","willReplaceOnChanges":true},"userGroupId":{"type":"string","description":"The User Group self ID.\n"},"userGroupName":{"type":"string","description":"Specify the New Group Name. Supports up to 128 Characters.\n"}},"type":"object"}},"alicloud:bp/studioApplication:StudioApplication":{"description":"Provides a Cloud Architect Design Tools Application resource.\n\nFor information about Cloud Architect Design Tools Application and how to use it, see [What is Application](https://help.aliyun.com/document_detail/428263.html).\n\n\u003e **NOTE:** Available since v1.192.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultGetInstances = alicloud.ecs.getInstances({\n    status: \"Running\",\n});\nconst defaultStudioApplication = new alicloud.bp.StudioApplication(\"default\", {\n    applicationName: name,\n    templateId: \"YAUUQIYRSV1CMFGX\",\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n    areaId: \"cn-hangzhou\",\n    instances: [{\n        id: \"data.alicloud_instances.default.instances.0.id\",\n        nodeName: \"data.alicloud_instances.default.instances.0.name\",\n        nodeType: \"ecs\",\n    }],\n    configuration: {\n        enableMonitor: \"1\",\n    },\n    variables: {\n        test: \"1\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_get_instances = alicloud.ecs.get_instances(status=\"Running\")\ndefault_studio_application = alicloud.bp.StudioApplication(\"default\",\n    application_name=name,\n    template_id=\"YAUUQIYRSV1CMFGX\",\n    resource_group_id=default.groups[0].id,\n    area_id=\"cn-hangzhou\",\n    instances=[{\n        \"id\": \"data.alicloud_instances.default.instances.0.id\",\n        \"node_name\": \"data.alicloud_instances.default.instances.0.name\",\n        \"node_type\": \"ecs\",\n    }],\n    configuration={\n        \"enableMonitor\": \"1\",\n    },\n    variables={\n        \"test\": \"1\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultGetInstances = AliCloud.Ecs.GetInstances.Invoke(new()\n    {\n        Status = \"Running\",\n    });\n\n    var defaultStudioApplication = new AliCloud.Bp.StudioApplication(\"default\", new()\n    {\n        ApplicationName = name,\n        TemplateId = \"YAUUQIYRSV1CMFGX\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n        AreaId = \"cn-hangzhou\",\n        Instances = new[]\n        {\n            new AliCloud.Bp.Inputs.StudioApplicationInstanceArgs\n            {\n                Id = \"data.alicloud_instances.default.instances.0.id\",\n                NodeName = \"data.alicloud_instances.default.instances.0.name\",\n                NodeType = \"ecs\",\n            },\n        },\n        Configuration = \n        {\n            { \"enableMonitor\", \"1\" },\n        },\n        Variables = \n        {\n            { \"test\", \"1\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bp\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.GetInstances(ctx, \u0026ecs.GetInstancesArgs{\n\t\t\tStatus: pulumi.StringRef(\"Running\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bp.NewStudioApplication(ctx, \"default\", \u0026bp.StudioApplicationArgs{\n\t\t\tApplicationName: pulumi.String(name),\n\t\t\tTemplateId:      pulumi.String(\"YAUUQIYRSV1CMFGX\"),\n\t\t\tResourceGroupId: pulumi.String(_default.Groups[0].Id),\n\t\t\tAreaId:          pulumi.String(\"cn-hangzhou\"),\n\t\t\tInstances: bp.StudioApplicationInstanceArray{\n\t\t\t\t\u0026bp.StudioApplicationInstanceArgs{\n\t\t\t\t\tId:       pulumi.String(\"data.alicloud_instances.default.instances.0.id\"),\n\t\t\t\t\tNodeName: pulumi.String(\"data.alicloud_instances.default.instances.0.name\"),\n\t\t\t\t\tNodeType: pulumi.String(\"ecs\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tConfiguration: pulumi.StringMap{\n\t\t\t\t\"enableMonitor\": pulumi.String(\"1\"),\n\t\t\t},\n\t\t\tVariables: pulumi.StringMap{\n\t\t\t\t\"test\": pulumi.String(\"1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.bp.StudioApplication;\nimport com.pulumi.alicloud.bp.StudioApplicationArgs;\nimport com.pulumi.alicloud.bp.inputs.StudioApplicationInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var defaultGetInstances = EcsFunctions.getInstances(GetInstancesArgs.builder()\n            .status(\"Running\")\n            .build());\n\n        var defaultStudioApplication = new StudioApplication(\"defaultStudioApplication\", StudioApplicationArgs.builder()\n            .applicationName(name)\n            .templateId(\"YAUUQIYRSV1CMFGX\")\n            .resourceGroupId(default_.groups()[0].id())\n            .areaId(\"cn-hangzhou\")\n            .instances(StudioApplicationInstanceArgs.builder()\n                .id(\"data.alicloud_instances.default.instances.0.id\")\n                .nodeName(\"data.alicloud_instances.default.instances.0.name\")\n                .nodeType(\"ecs\")\n                .build())\n            .configuration(Map.of(\"enableMonitor\", \"1\"))\n            .variables(Map.of(\"test\", \"1\"))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultStudioApplication:\n    type: alicloud:bp:StudioApplication\n    name: default\n    properties:\n      applicationName: ${name}\n      templateId: YAUUQIYRSV1CMFGX\n      resourceGroupId: ${default.groups[0].id}\n      areaId: cn-hangzhou\n      instances:\n        - id: data.alicloud_instances.default.instances.0.id\n          nodeName: data.alicloud_instances.default.instances.0.name\n          nodeType: ecs\n      configuration:\n        enableMonitor: '1'\n      variables:\n        test: '1'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetInstances:\n    fn::invoke:\n      function: alicloud:ecs:getInstances\n      arguments:\n        status: Running\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Architect Design Tools Application can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:bp/studioApplication:StudioApplication example \u003cid\u003e\n```\n\n","properties":{"applicationName":{"type":"string","description":"The name of the application.\n"},"areaId":{"type":"string","description":"The id of the area.\n"},"configuration":{"type":"object","additionalProperties":{"type":"string"},"description":"The configuration of the application.\n"},"instances":{"type":"array","items":{"$ref":"#/types/alicloud:bp/StudioApplicationInstance:StudioApplicationInstance"},"description":"The instance list. Support the creation of instances in the existing vpc under the application. See the following `Block instances`.\n"},"resourceGroupId":{"type":"string","description":"The id of the resource group.\n"},"status":{"type":"string","description":"The status of the Application.\n"},"templateId":{"type":"string","description":"The id of the template.\n"},"variables":{"type":"object","additionalProperties":{"type":"string"},"description":"The variables of the application.\n"}},"required":["applicationName","resourceGroupId","status","templateId"],"inputProperties":{"applicationName":{"type":"string","description":"The name of the application.\n","willReplaceOnChanges":true},"areaId":{"type":"string","description":"The id of the area.\n","willReplaceOnChanges":true},"configuration":{"type":"object","additionalProperties":{"type":"string"},"description":"The configuration of the application.\n","willReplaceOnChanges":true},"instances":{"type":"array","items":{"$ref":"#/types/alicloud:bp/StudioApplicationInstance:StudioApplicationInstance"},"description":"The instance list. Support the creation of instances in the existing vpc under the application. See the following `Block instances`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The id of the resource group.\n","willReplaceOnChanges":true},"templateId":{"type":"string","description":"The id of the template.\n","willReplaceOnChanges":true},"variables":{"type":"object","additionalProperties":{"type":"string"},"description":"The variables of the application.\n","willReplaceOnChanges":true}},"requiredInputs":["applicationName","templateId"],"stateInputs":{"description":"Input properties used for looking up and filtering StudioApplication resources.\n","properties":{"applicationName":{"type":"string","description":"The name of the application.\n","willReplaceOnChanges":true},"areaId":{"type":"string","description":"The id of the area.\n","willReplaceOnChanges":true},"configuration":{"type":"object","additionalProperties":{"type":"string"},"description":"The configuration of the application.\n","willReplaceOnChanges":true},"instances":{"type":"array","items":{"$ref":"#/types/alicloud:bp/StudioApplicationInstance:StudioApplicationInstance"},"description":"The instance list. Support the creation of instances in the existing vpc under the application. See the following `Block instances`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The id of the resource group.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Application.\n"},"templateId":{"type":"string","description":"The id of the template.\n","willReplaceOnChanges":true},"variables":{"type":"object","additionalProperties":{"type":"string"},"description":"The variables of the application.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:brain/industrialPidLoop:IndustrialPidLoop":{"description":"Provides a Brain Industrial Pid Loop resource.\n\n\u003e **NOTE:** Available since v1.117.0.\n\n\u003e **DEPRECATED:**  This resource has been deprecated from version `1.229.1`.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.brain.IndustrialPidLoop(\"example\", {\n    pidLoopConfiguration: \"YourLoopConfiguration\",\n    pidLoopDcsType: \"standard\",\n    pidLoopIsCrucial: true,\n    pidLoopName: \"tf-testAcc\",\n    pidLoopType: \"0\",\n    pidProjectId: \"856c6b8f-ca63-40a4-xxxx-xxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.brain.IndustrialPidLoop(\"example\",\n    pid_loop_configuration=\"YourLoopConfiguration\",\n    pid_loop_dcs_type=\"standard\",\n    pid_loop_is_crucial=True,\n    pid_loop_name=\"tf-testAcc\",\n    pid_loop_type=\"0\",\n    pid_project_id=\"856c6b8f-ca63-40a4-xxxx-xxxx\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Brain.IndustrialPidLoop(\"example\", new()\n    {\n        PidLoopConfiguration = \"YourLoopConfiguration\",\n        PidLoopDcsType = \"standard\",\n        PidLoopIsCrucial = true,\n        PidLoopName = \"tf-testAcc\",\n        PidLoopType = \"0\",\n        PidProjectId = \"856c6b8f-ca63-40a4-xxxx-xxxx\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/brain\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := brain.NewIndustrialPidLoop(ctx, \"example\", \u0026brain.IndustrialPidLoopArgs{\n\t\t\tPidLoopConfiguration: pulumi.String(\"YourLoopConfiguration\"),\n\t\t\tPidLoopDcsType:       pulumi.String(\"standard\"),\n\t\t\tPidLoopIsCrucial:     pulumi.Bool(true),\n\t\t\tPidLoopName:          pulumi.String(\"tf-testAcc\"),\n\t\t\tPidLoopType:          pulumi.String(\"0\"),\n\t\t\tPidProjectId:         pulumi.String(\"856c6b8f-ca63-40a4-xxxx-xxxx\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.brain.IndustrialPidLoop;\nimport com.pulumi.alicloud.brain.IndustrialPidLoopArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new IndustrialPidLoop(\"example\", IndustrialPidLoopArgs.builder()\n            .pidLoopConfiguration(\"YourLoopConfiguration\")\n            .pidLoopDcsType(\"standard\")\n            .pidLoopIsCrucial(true)\n            .pidLoopName(\"tf-testAcc\")\n            .pidLoopType(\"0\")\n            .pidProjectId(\"856c6b8f-ca63-40a4-xxxx-xxxx\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:brain:IndustrialPidLoop\n    properties:\n      pidLoopConfiguration: YourLoopConfiguration\n      pidLoopDcsType: standard\n      pidLoopIsCrucial: true\n      pidLoopName: tf-testAcc\n      pidLoopType: '0'\n      pidProjectId: 856c6b8f-ca63-40a4-xxxx-xxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nBrain Industrial Pid Loop can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:brain/industrialPidLoop:IndustrialPidLoop example \u003cid\u003e\n```\n\n","properties":{"pidLoopConfiguration":{"type":"string","description":"The Pid Loop Configuration.\n"},"pidLoopDcsType":{"type":"string","description":"The dcs type of Pid Loop. Valid values: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e.\n"},"pidLoopDesc":{"type":"string","description":"The desc of Pid Loop.\n"},"pidLoopIsCrucial":{"type":"boolean","description":"Whether is crucial Pid Loop.\n"},"pidLoopName":{"type":"string","description":"The name of Pid Loop.\n"},"pidLoopType":{"type":"string","description":"The type of Pid Loop. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"pidProjectId":{"type":"string","description":"The pid project id.\n"},"status":{"type":"string","description":"The status of Pid Loop.\n"}},"required":["pidLoopConfiguration","pidLoopDcsType","pidLoopIsCrucial","pidLoopName","pidLoopType","pidProjectId","status"],"inputProperties":{"pidLoopConfiguration":{"type":"string","description":"The Pid Loop Configuration.\n"},"pidLoopDcsType":{"type":"string","description":"The dcs type of Pid Loop. Valid values: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e.\n","willReplaceOnChanges":true},"pidLoopDesc":{"type":"string","description":"The desc of Pid Loop.\n"},"pidLoopIsCrucial":{"type":"boolean","description":"Whether is crucial Pid Loop.\n"},"pidLoopName":{"type":"string","description":"The name of Pid Loop.\n"},"pidLoopType":{"type":"string","description":"The type of Pid Loop. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"pidProjectId":{"type":"string","description":"The pid project id.\n"}},"requiredInputs":["pidLoopConfiguration","pidLoopDcsType","pidLoopIsCrucial","pidLoopName","pidLoopType","pidProjectId"],"stateInputs":{"description":"Input properties used for looking up and filtering IndustrialPidLoop resources.\n","properties":{"pidLoopConfiguration":{"type":"string","description":"The Pid Loop Configuration.\n"},"pidLoopDcsType":{"type":"string","description":"The dcs type of Pid Loop. Valid values: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e.\n","willReplaceOnChanges":true},"pidLoopDesc":{"type":"string","description":"The desc of Pid Loop.\n"},"pidLoopIsCrucial":{"type":"boolean","description":"Whether is crucial Pid Loop.\n"},"pidLoopName":{"type":"string","description":"The name of Pid Loop.\n"},"pidLoopType":{"type":"string","description":"The type of Pid Loop. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"pidProjectId":{"type":"string","description":"The pid project id.\n"},"status":{"type":"string","description":"The status of Pid Loop.\n"}},"type":"object"}},"alicloud:brain/industrialPidOrganization:IndustrialPidOrganization":{"description":"Provides a Brain Industrial Pid Organization resource.\n\n\u003e **NOTE:** Available since v1.113.0.\n\n\u003e **DEPRECATED:**  This resource has been deprecated from version `1.222.0`.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.brain.IndustrialPidOrganization(\"example\", {pidOrganizationName: \"tf-testAcc\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.brain.IndustrialPidOrganization(\"example\", pid_organization_name=\"tf-testAcc\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Brain.IndustrialPidOrganization(\"example\", new()\n    {\n        PidOrganizationName = \"tf-testAcc\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/brain\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := brain.NewIndustrialPidOrganization(ctx, \"example\", \u0026brain.IndustrialPidOrganizationArgs{\n\t\t\tPidOrganizationName: pulumi.String(\"tf-testAcc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.brain.IndustrialPidOrganization;\nimport com.pulumi.alicloud.brain.IndustrialPidOrganizationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new IndustrialPidOrganization(\"example\", IndustrialPidOrganizationArgs.builder()\n            .pidOrganizationName(\"tf-testAcc\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:brain:IndustrialPidOrganization\n    properties:\n      pidOrganizationName: tf-testAcc\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nBrain Industrial Pid Organization can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:brain/industrialPidOrganization:IndustrialPidOrganization example \u003cid\u003e\n```\n\n","properties":{"parentPidOrganizationId":{"type":"string","description":"The ID of parent pid organization.\n"},"pidOrganizationName":{"type":"string","description":"The name of pid organization.\n"}},"required":["pidOrganizationName"],"inputProperties":{"parentPidOrganizationId":{"type":"string","description":"The ID of parent pid organization.\n","willReplaceOnChanges":true},"pidOrganizationName":{"type":"string","description":"The name of pid organization.\n"}},"requiredInputs":["pidOrganizationName"],"stateInputs":{"description":"Input properties used for looking up and filtering IndustrialPidOrganization resources.\n","properties":{"parentPidOrganizationId":{"type":"string","description":"The ID of parent pid organization.\n","willReplaceOnChanges":true},"pidOrganizationName":{"type":"string","description":"The name of pid organization.\n"}},"type":"object"}},"alicloud:brain/industrialPidProject:IndustrialPidProject":{"description":"Provides a Brain Industrial Pid Project resource.\n\n\u003e **NOTE:** Available since v1.113.0.\n\n\u003e **DEPRECATED:**  This resource has been deprecated from version `1.222.0`.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.brain.IndustrialPidProject(\"example\", {\n    pidOrganizationId: \"3e74e684-cbb5-xxxx\",\n    pidProjectName: \"tf-testAcc\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.brain.IndustrialPidProject(\"example\",\n    pid_organization_id=\"3e74e684-cbb5-xxxx\",\n    pid_project_name=\"tf-testAcc\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Brain.IndustrialPidProject(\"example\", new()\n    {\n        PidOrganizationId = \"3e74e684-cbb5-xxxx\",\n        PidProjectName = \"tf-testAcc\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/brain\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := brain.NewIndustrialPidProject(ctx, \"example\", \u0026brain.IndustrialPidProjectArgs{\n\t\t\tPidOrganizationId: pulumi.String(\"3e74e684-cbb5-xxxx\"),\n\t\t\tPidProjectName:    pulumi.String(\"tf-testAcc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.brain.IndustrialPidProject;\nimport com.pulumi.alicloud.brain.IndustrialPidProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new IndustrialPidProject(\"example\", IndustrialPidProjectArgs.builder()\n            .pidOrganizationId(\"3e74e684-cbb5-xxxx\")\n            .pidProjectName(\"tf-testAcc\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:brain:IndustrialPidProject\n    properties:\n      pidOrganizationId: 3e74e684-cbb5-xxxx\n      pidProjectName: tf-testAcc\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nBrain Industrial Pid Project can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:brain/industrialPidProject:IndustrialPidProject example \u003cid\u003e\n```\n\n","properties":{"pidOrganizationId":{"type":"string","description":"The ID of Pid Organization.\n"},"pidProjectDesc":{"type":"string","description":"The description of Pid Project.\n"},"pidProjectName":{"type":"string","description":"The name of Pid Project.\n"}},"required":["pidOrganizationId","pidProjectName"],"inputProperties":{"pidOrganizationId":{"type":"string","description":"The ID of Pid Organization.\n"},"pidProjectDesc":{"type":"string","description":"The description of Pid Project.\n"},"pidProjectName":{"type":"string","description":"The name of Pid Project.\n"}},"requiredInputs":["pidOrganizationId","pidProjectName"],"stateInputs":{"description":"Input properties used for looking up and filtering IndustrialPidProject resources.\n","properties":{"pidOrganizationId":{"type":"string","description":"The ID of Pid Organization.\n"},"pidProjectDesc":{"type":"string","description":"The description of Pid Project.\n"},"pidProjectName":{"type":"string","description":"The name of Pid Project.\n"}},"type":"object"}},"alicloud:cas/certificate:Certificate":{"description":"Provides a CAS Certificate resource.\n\nFor information about SSL Certificates Certificate and how to use it, see [What is Certificate](https://www.alibabacloud.com/help/product/28533.html).\n\n\u003e **NOTE:** Available since v1.35.0.\n\n\u003e **NOTE:** Deprecated since v1.129.0.\n\n\u003e **NOTE:** The Certificate name which you want to add must be already registered and had not added by another account. Every Certificate name can only exist in a unique group.\n\n\u003e **NOTE:** The Cas Certificate region only support cn-hangzhou, me-east-1, eu-central-1, ap-northeast-1.\n\n\u003e **DEPRECATED:** This resource has been deprecated from version `1.129.0`. Please use new resource alicloud_ssl_certificates_service_certificate.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultCertificate = new alicloud.cas.Certificate(\"default\", {\n    name: `tf-example-${_default.result}`,\n    cert: `-----BEGIN CERTIFICATE-----\nMIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\nTjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\nVQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\nMjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\nEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\nY5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\nN4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\nHAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\nrkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n+arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\nZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\nBBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\nS7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\nAC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\nTTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\nDPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n-----END CERTIFICATE-----\n`,\n    key: `-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\nrhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\nBpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\np2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n+axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\nn8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n/1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\ndIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\nYmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\nLfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\nGOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\nncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\nXWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\ni9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\nrNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\ng1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\nAvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\nZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\nAMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\nCIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\nLILJ+e7bLw8RrM0HfgFnl8c=\n-----END PRIVATE KEY-----\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_certificate = alicloud.cas.Certificate(\"default\",\n    name=f\"tf-example-{default['result']}\",\n    cert=\"\"\"-----BEGIN CERTIFICATE-----\nMIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\nTjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\nVQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\nMjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\nEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\nY5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\nN4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\nHAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\nrkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n+arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\nZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\nBBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\nS7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\nAC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\nTTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\nDPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n-----END CERTIFICATE-----\n\"\"\",\n    key=\"\"\"-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\nrhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\nBpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\np2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n+axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\nn8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n/1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\ndIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\nYmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\nLfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\nGOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\nncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\nXWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\ni9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\nrNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\ng1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\nAvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\nZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\nAMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\nCIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\nLILJ+e7bLw8RrM0HfgFnl8c=\n-----END PRIVATE KEY-----\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultCertificate = new AliCloud.Cas.Certificate(\"default\", new()\n    {\n        Name = $\"tf-example-{@default.Result}\",\n        Cert = @\"-----BEGIN CERTIFICATE-----\nMIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\nTjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\nVQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\nMjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\nEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\nY5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\nN4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\nHAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\nrkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n+arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\nZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\nBBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\nS7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\nAC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\nTTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\nDPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n-----END CERTIFICATE-----\n\",\n        Key = @\"-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\nrhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\nBpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\np2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n+axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\nn8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n/1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\ndIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\nYmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\nLfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\nGOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\nncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\nXWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\ni9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\nrNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\ng1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\nAvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\nZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\nAMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\nCIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\nLILJ+e7bLw8RrM0HfgFnl8c=\n-----END PRIVATE KEY-----\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cas\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cas.NewCertificate(ctx, \"default\", \u0026cas.CertificateArgs{\n\t\t\tName: pulumi.Sprintf(\"tf-example-%v\", _default.Result),\n\t\t\tCert: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\nTjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\nVQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\nMjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\nEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\nY5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\nN4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\nHAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\nrkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n+arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\nZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\nBBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\nS7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\nAC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\nTTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\nDPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n-----END CERTIFICATE-----\n`),\n\t\t\tKey: pulumi.String(`-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\nrhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\nBpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\np2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n+axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\nn8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n/1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\ndIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\nYmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\nLfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\nGOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\nncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\nXWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\ni9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\nrNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\ng1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\nAvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\nZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\nAMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\nCIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\nLILJ+e7bLw8RrM0HfgFnl8c=\n-----END PRIVATE KEY-----\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cas.Certificate;\nimport com.pulumi.alicloud.cas.CertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultCertificate = new Certificate(\"defaultCertificate\", CertificateArgs.builder()\n            .name(String.format(\"tf-example-%s\", default_.result()))\n            .cert(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\nTjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\nVQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\nMjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\nEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\nY5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\nN4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\nHAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\nrkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n+arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\nZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\nBBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\nS7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\nAC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\nTTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\nDPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n-----END CERTIFICATE-----\n            \"\"\")\n            .key(\"\"\"\n-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\nrhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\nBpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\np2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n+axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\nn8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n/1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\ndIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\nYmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\nLfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\nGOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\nncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\nXWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\ni9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\nrNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\ng1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\nAvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\nZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\nAMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\nCIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\nLILJ+e7bLw8RrM0HfgFnl8c=\n-----END PRIVATE KEY-----\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultCertificate:\n    type: alicloud:cas:Certificate\n    name: default\n    properties:\n      name: tf-example-${default.result}\n      cert: |\n        -----BEGIN CERTIFICATE-----\n        MIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\n        TjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\n        VQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\n        MjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\n        EDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\n        MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\n        Y5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\n        N4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\n        HAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\n        rkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n        +arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\n        ZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\n        BBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n        9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n        9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\n        S7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\n        AC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\n        TTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\n        DPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n        -----END CERTIFICATE-----\n      key: |\n        -----BEGIN PRIVATE KEY-----\n        MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\n        rhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\n        BpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\n        p2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n        +axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n        4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\n        n8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n        /1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n        6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\n        dIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\n        YmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\n        LfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\n        GOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\n        ncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\n        XWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\n        i9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\n        rNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n        2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\n        g1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\n        AvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\n        ZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\n        AMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n        2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n        9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\n        CIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\n        LILJ+e7bLw8RrM0HfgFnl8c=\n        -----END PRIVATE KEY-----\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"cert":{"type":"string","description":"Cert of the Certificate in which the Certificate will add.\n"},"certificateName":{"type":"string"},"encryptCert":{"type":"string"},"encryptPrivateKey":{"type":"string","secret":true},"key":{"type":"string","description":"Key of the Certificate in which the Certificate will add.\n","secret":true},"lang":{"type":"string","deprecationMessage":"Field 'lang' has been deprecated from provider version 1.260.1 and it will be removed in the future version."},"name":{"type":"string","description":"Name of the Certificate. This name must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.129.0 and it will be removed in the future version. Please use the new attribute 'certificate_name' instead."},"resourceGroupId":{"type":"string"},"signCert":{"type":"string"},"signPrivateKey":{"type":"string","secret":true},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"required":["certificateName","name","resourceGroupId"],"inputProperties":{"cert":{"type":"string","description":"Cert of the Certificate in which the Certificate will add.\n","willReplaceOnChanges":true},"certificateName":{"type":"string"},"encryptCert":{"type":"string","willReplaceOnChanges":true},"encryptPrivateKey":{"type":"string","secret":true,"willReplaceOnChanges":true},"key":{"type":"string","description":"Key of the Certificate in which the Certificate will add.\n","secret":true,"willReplaceOnChanges":true},"lang":{"type":"string","deprecationMessage":"Field 'lang' has been deprecated from provider version 1.260.1 and it will be removed in the future version."},"name":{"type":"string","description":"Name of the Certificate. This name must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.129.0 and it will be removed in the future version. Please use the new attribute 'certificate_name' instead."},"resourceGroupId":{"type":"string"},"signCert":{"type":"string","willReplaceOnChanges":true},"signPrivateKey":{"type":"string","secret":true,"willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"stateInputs":{"description":"Input properties used for looking up and filtering Certificate resources.\n","properties":{"cert":{"type":"string","description":"Cert of the Certificate in which the Certificate will add.\n","willReplaceOnChanges":true},"certificateName":{"type":"string"},"encryptCert":{"type":"string","willReplaceOnChanges":true},"encryptPrivateKey":{"type":"string","secret":true,"willReplaceOnChanges":true},"key":{"type":"string","description":"Key of the Certificate in which the Certificate will add.\n","secret":true,"willReplaceOnChanges":true},"lang":{"type":"string","deprecationMessage":"Field 'lang' has been deprecated from provider version 1.260.1 and it will be removed in the future version."},"name":{"type":"string","description":"Name of the Certificate. This name must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.129.0 and it will be removed in the future version. Please use the new attribute 'certificate_name' instead."},"resourceGroupId":{"type":"string"},"signCert":{"type":"string","willReplaceOnChanges":true},"signPrivateKey":{"type":"string","secret":true,"willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"type":"object"},"deprecationMessage":"This resource has been deprecated in favour of ServiceCertificate"},"alicloud:cas/serviceCertificate:ServiceCertificate":{"description":"Provides a SSL Certificates Certificate resource.\n\n\n\nFor information about SSL Certificates Certificate and how to use it, see [What is Certificate](https://www.alibabacloud.com/help/product/28533.html).\n\n\u003e **NOTE:** Available since v1.129.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultServiceCertificate = new alicloud.cas.ServiceCertificate(\"default\", {\n    certificateName: `terraform-example-${_default.result}`,\n    cert: `-----BEGIN CERTIFICATE-----\nMIID1jCCAr6gAwIBAgIQQ7/8/QOOTbywxdgSX9aMqDANBgkqhkiG9w0BAQsFADBe\nMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFTXlTU0wxKzApBgNVBAsTIk15U1NMIFRl\nc3QgUlNBIC0gRm9yIHRlc3QgdXNlIG9ubHkxEjAQBgNVBAMTCU15U1NMLmNvbTAe\nFw0yNTA5MjIwNTU3NDVaFw0zMDA5MjEwNTU3NDVaMCAxCzAJBgNVBAYTAkNOMREw\nDwYDVQQDEwgxNjg4LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nAMEl04gKBqJxV+8KideZb7S4mPysehPzr/cXu4i1RXT7UFtNVZuqc4IdIzOja2SU\n6uNn8mY6Pfc5FNybg98bYx0ADbub55TUaw2Pz1CFEbiMvLpzMkp4EZadvmJWZk8t\ndNb+ClKqdXUWhxApS3Lz+wjCNYQnlODk4KmxmM8/U/CyQS7lgWS/1G72UFB09Skg\nsfvWdoHLrFfIlbVkp9XVELCtOkjj8Nn/rPOhc31NbstrwV4Whl6jngGAkaEtImJ7\n//sL+sPPsutefCgfZPrC+Zwru2En1BuIo5KW02NYLdjXbABH8xjkUobqRoro7eY3\nVySBr7adD6QmNv5hWohOuykCAwEAAaOBzTCByjAOBgNVHQ8BAf8EBAMCBaAwHQYD\nVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFCiBJgXRNBo/\nwXMPu5PPFRw/A79/MGMGCCsGAQUFBwEBBFcwVTAhBggrBgEFBQcwAYYVaHR0cDov\nL29jc3AubXlzc2wuY29tMDAGCCsGAQUFBzAChiRodHRwOi8vY2EubXlzc2wuY29t\nL215c3NsdGVzdHJzYS5jcnQwEwYDVR0RBAwwCoIIMTY4OC5jb20wDQYJKoZIhvcN\nAQELBQADggEBAHa0ATVeHtPPw1+a6kajlW6OQUjhiJg+Sk9fVA1eJ2Hzl1yDDw3K\nyAyl1gkxGI6BwWdX/C8IE6PuPYcG2CmJGoFoEAAIbAE76AKABvHoA8I6wyDruxFz\n06bNM8104TxAHTxe2zaHgBQnYIRk07uA8gxjZKFp1//eYbxj8HiP0Q9zXqYjF79G\nLe4PDw7Q6U22CP+cT9Sz5ZEoJCzmUtx3uQWhLzNxvyISrXeSqAFJzjtL0KKSR1cr\n8he6FoeU37oKdmrnweLeBe+no3OMChETa2JN4VAzXj/nPpQcyB7nXDfLUHe01+BB\nZBXKFLD2H38e97mFl/7mgNP5Nc1sycI5Sp4=\n-----END CERTIFICATE-----\n`,\n    key: `-----BEGIN PRIVATE KEY-----\nMIIEowIBAAKCAQEAwSXTiAoGonFX7wqJ15lvtLiY/Kx6E/Ov9xe7iLVFdPtQW01V\nm6pzgh0jM6NrZJTq42fyZjo99zkU3JuD3xtjHQANu5vnlNRrDY/PUIURuIy8unMy\nSngRlp2+YlZmTy101v4KUqp1dRaHEClLcvP7CMI1hCeU4OTgqbGYzz9T8LJBLuWB\nZL/UbvZQUHT1KSCx+9Z2gcusV8iVtWSn1dUQsK06SOPw2f+s86FzfU1uy2vBXhaG\nXqOeAYCRoS0iYnv/+wv6w8+y6158KB9k+sL5nCu7YSfUG4ijkpbTY1gt2NdsAEfz\nGORShupGiujt5jdXJIGvtp0PpCY2/mFaiE67KQIDAQABAoIBAAKF9CZTUd8zvDKE\nazo/Ur0Zf5omxgOBC/vzj0DLyXKr89KgMdhHmPG1YBKFIIU0XYCHXkclR05LAcbu\nBdeCJpXS5zBbwDdAB9P/XHXQqeNvfJRc++ZgJ4QAXzkuqBssXK87ALcwFeUShxot\ncphiWpW0inlwVkVn3WLUzfUV0+ARljn8VOf+aAmfCiQMl4gsBpvD3dxF84aihS+1\nblqar5dE1GCJWHW67R1uSaAqHf7nwbBkZY8nTWF8n4+ELAAtlOgQKZlrQ+JxB3Ar\nrWzgMj4M6F1/man1y/XPR56px9Xv3DwBZHuLufsqPr10q/nI9VIIQHe49sFgnN4+\n48Q7wIECgYEAwxlrgBJI8gua4mJZxJRT8gBv2Mb1Kk1k7HVX11I+yF4eXr+cm+24\nCq7MjqmBXSnqvdQkwGFZ+C3cTKXJBPONWGF8NgiXaHSKjPEoFuHLdKBpgZMAax/L\naZBQRw6g12nz3XUCK0DE0wGgPkoDxc65s4NEWS+ua43LZ4TUOzWwwWECgYEA/XB1\nARNHyARy+P3iTeebh3t7qJoNoptLWHMlKjSjIZ1VZ4+9ilKsi5ZKVkPaLIjo8MGv\nAnk3vzSrFSYhId0XfmSqoWySWc0eBkc6NERvopxuIV1WwRKf/18lLhxiEjHIcgds\nG2KmfeiXdCKSgGlWvJmLITY4gJpOYMjpEDxipskCgYAdxnljmGbNmfvPZRcyKzkM\njAiF2wd7p0gp1lbLo9+1ELgt2ax7F7Ko3riVZUU7BLSwt/nL6o+iks02XW7qdIkz\n3dzpGjKRXIfwrrVhmKBGclzny5mav8V5nO7DiXX+qkrvl3X3R/FCCtN77ivZOo2Y\n2gXKXr6N55wNdnY1eyI4wQKBgQDXjZo2O+vFVuNimqyrjd1eMcxO7hfCwUooBGcL\nqpFEucg1uK+Awig24LCBBly9nARjIJh1Bhw/58/KwQ9U+fJNcdkeSnV/I1HyDQqY\nAczhBSM2BWkP9YNXc9jvivxudSECuwVblV/9nqGSCQWJag53gjAvIyqTVqpq7vYq\n9PEC4QKBgGY2pj0ZNqGkq16jD3iS+DDBpX+TPnoHzu5GZCM/1GLZ6xXbpNWtZQt4\n/m+6koRWeGvNAULnp8RSnhBzm+ZglpbwYcvsqRNDqIPGhJ2JruVA/bY3S0ebkRlD\nxDn0dJVMvNyRR83ZpjTQhxoq5l56TN5xk1vdJ9nZdwJMmXiz2TrA\n-----END PRIVATE KEY-----\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_service_certificate = alicloud.cas.ServiceCertificate(\"default\",\n    certificate_name=f\"terraform-example-{default['result']}\",\n    cert=\"\"\"-----BEGIN CERTIFICATE-----\nMIID1jCCAr6gAwIBAgIQQ7/8/QOOTbywxdgSX9aMqDANBgkqhkiG9w0BAQsFADBe\nMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFTXlTU0wxKzApBgNVBAsTIk15U1NMIFRl\nc3QgUlNBIC0gRm9yIHRlc3QgdXNlIG9ubHkxEjAQBgNVBAMTCU15U1NMLmNvbTAe\nFw0yNTA5MjIwNTU3NDVaFw0zMDA5MjEwNTU3NDVaMCAxCzAJBgNVBAYTAkNOMREw\nDwYDVQQDEwgxNjg4LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nAMEl04gKBqJxV+8KideZb7S4mPysehPzr/cXu4i1RXT7UFtNVZuqc4IdIzOja2SU\n6uNn8mY6Pfc5FNybg98bYx0ADbub55TUaw2Pz1CFEbiMvLpzMkp4EZadvmJWZk8t\ndNb+ClKqdXUWhxApS3Lz+wjCNYQnlODk4KmxmM8/U/CyQS7lgWS/1G72UFB09Skg\nsfvWdoHLrFfIlbVkp9XVELCtOkjj8Nn/rPOhc31NbstrwV4Whl6jngGAkaEtImJ7\n//sL+sPPsutefCgfZPrC+Zwru2En1BuIo5KW02NYLdjXbABH8xjkUobqRoro7eY3\nVySBr7adD6QmNv5hWohOuykCAwEAAaOBzTCByjAOBgNVHQ8BAf8EBAMCBaAwHQYD\nVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFCiBJgXRNBo/\nwXMPu5PPFRw/A79/MGMGCCsGAQUFBwEBBFcwVTAhBggrBgEFBQcwAYYVaHR0cDov\nL29jc3AubXlzc2wuY29tMDAGCCsGAQUFBzAChiRodHRwOi8vY2EubXlzc2wuY29t\nL215c3NsdGVzdHJzYS5jcnQwEwYDVR0RBAwwCoIIMTY4OC5jb20wDQYJKoZIhvcN\nAQELBQADggEBAHa0ATVeHtPPw1+a6kajlW6OQUjhiJg+Sk9fVA1eJ2Hzl1yDDw3K\nyAyl1gkxGI6BwWdX/C8IE6PuPYcG2CmJGoFoEAAIbAE76AKABvHoA8I6wyDruxFz\n06bNM8104TxAHTxe2zaHgBQnYIRk07uA8gxjZKFp1//eYbxj8HiP0Q9zXqYjF79G\nLe4PDw7Q6U22CP+cT9Sz5ZEoJCzmUtx3uQWhLzNxvyISrXeSqAFJzjtL0KKSR1cr\n8he6FoeU37oKdmrnweLeBe+no3OMChETa2JN4VAzXj/nPpQcyB7nXDfLUHe01+BB\nZBXKFLD2H38e97mFl/7mgNP5Nc1sycI5Sp4=\n-----END CERTIFICATE-----\n\"\"\",\n    key=\"\"\"-----BEGIN PRIVATE KEY-----\nMIIEowIBAAKCAQEAwSXTiAoGonFX7wqJ15lvtLiY/Kx6E/Ov9xe7iLVFdPtQW01V\nm6pzgh0jM6NrZJTq42fyZjo99zkU3JuD3xtjHQANu5vnlNRrDY/PUIURuIy8unMy\nSngRlp2+YlZmTy101v4KUqp1dRaHEClLcvP7CMI1hCeU4OTgqbGYzz9T8LJBLuWB\nZL/UbvZQUHT1KSCx+9Z2gcusV8iVtWSn1dUQsK06SOPw2f+s86FzfU1uy2vBXhaG\nXqOeAYCRoS0iYnv/+wv6w8+y6158KB9k+sL5nCu7YSfUG4ijkpbTY1gt2NdsAEfz\nGORShupGiujt5jdXJIGvtp0PpCY2/mFaiE67KQIDAQABAoIBAAKF9CZTUd8zvDKE\nazo/Ur0Zf5omxgOBC/vzj0DLyXKr89KgMdhHmPG1YBKFIIU0XYCHXkclR05LAcbu\nBdeCJpXS5zBbwDdAB9P/XHXQqeNvfJRc++ZgJ4QAXzkuqBssXK87ALcwFeUShxot\ncphiWpW0inlwVkVn3WLUzfUV0+ARljn8VOf+aAmfCiQMl4gsBpvD3dxF84aihS+1\nblqar5dE1GCJWHW67R1uSaAqHf7nwbBkZY8nTWF8n4+ELAAtlOgQKZlrQ+JxB3Ar\nrWzgMj4M6F1/man1y/XPR56px9Xv3DwBZHuLufsqPr10q/nI9VIIQHe49sFgnN4+\n48Q7wIECgYEAwxlrgBJI8gua4mJZxJRT8gBv2Mb1Kk1k7HVX11I+yF4eXr+cm+24\nCq7MjqmBXSnqvdQkwGFZ+C3cTKXJBPONWGF8NgiXaHSKjPEoFuHLdKBpgZMAax/L\naZBQRw6g12nz3XUCK0DE0wGgPkoDxc65s4NEWS+ua43LZ4TUOzWwwWECgYEA/XB1\nARNHyARy+P3iTeebh3t7qJoNoptLWHMlKjSjIZ1VZ4+9ilKsi5ZKVkPaLIjo8MGv\nAnk3vzSrFSYhId0XfmSqoWySWc0eBkc6NERvopxuIV1WwRKf/18lLhxiEjHIcgds\nG2KmfeiXdCKSgGlWvJmLITY4gJpOYMjpEDxipskCgYAdxnljmGbNmfvPZRcyKzkM\njAiF2wd7p0gp1lbLo9+1ELgt2ax7F7Ko3riVZUU7BLSwt/nL6o+iks02XW7qdIkz\n3dzpGjKRXIfwrrVhmKBGclzny5mav8V5nO7DiXX+qkrvl3X3R/FCCtN77ivZOo2Y\n2gXKXr6N55wNdnY1eyI4wQKBgQDXjZo2O+vFVuNimqyrjd1eMcxO7hfCwUooBGcL\nqpFEucg1uK+Awig24LCBBly9nARjIJh1Bhw/58/KwQ9U+fJNcdkeSnV/I1HyDQqY\nAczhBSM2BWkP9YNXc9jvivxudSECuwVblV/9nqGSCQWJag53gjAvIyqTVqpq7vYq\n9PEC4QKBgGY2pj0ZNqGkq16jD3iS+DDBpX+TPnoHzu5GZCM/1GLZ6xXbpNWtZQt4\n/m+6koRWeGvNAULnp8RSnhBzm+ZglpbwYcvsqRNDqIPGhJ2JruVA/bY3S0ebkRlD\nxDn0dJVMvNyRR83ZpjTQhxoq5l56TN5xk1vdJ9nZdwJMmXiz2TrA\n-----END PRIVATE KEY-----\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultServiceCertificate = new AliCloud.Cas.ServiceCertificate(\"default\", new()\n    {\n        CertificateName = $\"terraform-example-{@default.Result}\",\n        Cert = @\"-----BEGIN CERTIFICATE-----\nMIID1jCCAr6gAwIBAgIQQ7/8/QOOTbywxdgSX9aMqDANBgkqhkiG9w0BAQsFADBe\nMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFTXlTU0wxKzApBgNVBAsTIk15U1NMIFRl\nc3QgUlNBIC0gRm9yIHRlc3QgdXNlIG9ubHkxEjAQBgNVBAMTCU15U1NMLmNvbTAe\nFw0yNTA5MjIwNTU3NDVaFw0zMDA5MjEwNTU3NDVaMCAxCzAJBgNVBAYTAkNOMREw\nDwYDVQQDEwgxNjg4LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nAMEl04gKBqJxV+8KideZb7S4mPysehPzr/cXu4i1RXT7UFtNVZuqc4IdIzOja2SU\n6uNn8mY6Pfc5FNybg98bYx0ADbub55TUaw2Pz1CFEbiMvLpzMkp4EZadvmJWZk8t\ndNb+ClKqdXUWhxApS3Lz+wjCNYQnlODk4KmxmM8/U/CyQS7lgWS/1G72UFB09Skg\nsfvWdoHLrFfIlbVkp9XVELCtOkjj8Nn/rPOhc31NbstrwV4Whl6jngGAkaEtImJ7\n//sL+sPPsutefCgfZPrC+Zwru2En1BuIo5KW02NYLdjXbABH8xjkUobqRoro7eY3\nVySBr7adD6QmNv5hWohOuykCAwEAAaOBzTCByjAOBgNVHQ8BAf8EBAMCBaAwHQYD\nVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFCiBJgXRNBo/\nwXMPu5PPFRw/A79/MGMGCCsGAQUFBwEBBFcwVTAhBggrBgEFBQcwAYYVaHR0cDov\nL29jc3AubXlzc2wuY29tMDAGCCsGAQUFBzAChiRodHRwOi8vY2EubXlzc2wuY29t\nL215c3NsdGVzdHJzYS5jcnQwEwYDVR0RBAwwCoIIMTY4OC5jb20wDQYJKoZIhvcN\nAQELBQADggEBAHa0ATVeHtPPw1+a6kajlW6OQUjhiJg+Sk9fVA1eJ2Hzl1yDDw3K\nyAyl1gkxGI6BwWdX/C8IE6PuPYcG2CmJGoFoEAAIbAE76AKABvHoA8I6wyDruxFz\n06bNM8104TxAHTxe2zaHgBQnYIRk07uA8gxjZKFp1//eYbxj8HiP0Q9zXqYjF79G\nLe4PDw7Q6U22CP+cT9Sz5ZEoJCzmUtx3uQWhLzNxvyISrXeSqAFJzjtL0KKSR1cr\n8he6FoeU37oKdmrnweLeBe+no3OMChETa2JN4VAzXj/nPpQcyB7nXDfLUHe01+BB\nZBXKFLD2H38e97mFl/7mgNP5Nc1sycI5Sp4=\n-----END CERTIFICATE-----\n\",\n        Key = @\"-----BEGIN PRIVATE KEY-----\nMIIEowIBAAKCAQEAwSXTiAoGonFX7wqJ15lvtLiY/Kx6E/Ov9xe7iLVFdPtQW01V\nm6pzgh0jM6NrZJTq42fyZjo99zkU3JuD3xtjHQANu5vnlNRrDY/PUIURuIy8unMy\nSngRlp2+YlZmTy101v4KUqp1dRaHEClLcvP7CMI1hCeU4OTgqbGYzz9T8LJBLuWB\nZL/UbvZQUHT1KSCx+9Z2gcusV8iVtWSn1dUQsK06SOPw2f+s86FzfU1uy2vBXhaG\nXqOeAYCRoS0iYnv/+wv6w8+y6158KB9k+sL5nCu7YSfUG4ijkpbTY1gt2NdsAEfz\nGORShupGiujt5jdXJIGvtp0PpCY2/mFaiE67KQIDAQABAoIBAAKF9CZTUd8zvDKE\nazo/Ur0Zf5omxgOBC/vzj0DLyXKr89KgMdhHmPG1YBKFIIU0XYCHXkclR05LAcbu\nBdeCJpXS5zBbwDdAB9P/XHXQqeNvfJRc++ZgJ4QAXzkuqBssXK87ALcwFeUShxot\ncphiWpW0inlwVkVn3WLUzfUV0+ARljn8VOf+aAmfCiQMl4gsBpvD3dxF84aihS+1\nblqar5dE1GCJWHW67R1uSaAqHf7nwbBkZY8nTWF8n4+ELAAtlOgQKZlrQ+JxB3Ar\nrWzgMj4M6F1/man1y/XPR56px9Xv3DwBZHuLufsqPr10q/nI9VIIQHe49sFgnN4+\n48Q7wIECgYEAwxlrgBJI8gua4mJZxJRT8gBv2Mb1Kk1k7HVX11I+yF4eXr+cm+24\nCq7MjqmBXSnqvdQkwGFZ+C3cTKXJBPONWGF8NgiXaHSKjPEoFuHLdKBpgZMAax/L\naZBQRw6g12nz3XUCK0DE0wGgPkoDxc65s4NEWS+ua43LZ4TUOzWwwWECgYEA/XB1\nARNHyARy+P3iTeebh3t7qJoNoptLWHMlKjSjIZ1VZ4+9ilKsi5ZKVkPaLIjo8MGv\nAnk3vzSrFSYhId0XfmSqoWySWc0eBkc6NERvopxuIV1WwRKf/18lLhxiEjHIcgds\nG2KmfeiXdCKSgGlWvJmLITY4gJpOYMjpEDxipskCgYAdxnljmGbNmfvPZRcyKzkM\njAiF2wd7p0gp1lbLo9+1ELgt2ax7F7Ko3riVZUU7BLSwt/nL6o+iks02XW7qdIkz\n3dzpGjKRXIfwrrVhmKBGclzny5mav8V5nO7DiXX+qkrvl3X3R/FCCtN77ivZOo2Y\n2gXKXr6N55wNdnY1eyI4wQKBgQDXjZo2O+vFVuNimqyrjd1eMcxO7hfCwUooBGcL\nqpFEucg1uK+Awig24LCBBly9nARjIJh1Bhw/58/KwQ9U+fJNcdkeSnV/I1HyDQqY\nAczhBSM2BWkP9YNXc9jvivxudSECuwVblV/9nqGSCQWJag53gjAvIyqTVqpq7vYq\n9PEC4QKBgGY2pj0ZNqGkq16jD3iS+DDBpX+TPnoHzu5GZCM/1GLZ6xXbpNWtZQt4\n/m+6koRWeGvNAULnp8RSnhBzm+ZglpbwYcvsqRNDqIPGhJ2JruVA/bY3S0ebkRlD\nxDn0dJVMvNyRR83ZpjTQhxoq5l56TN5xk1vdJ9nZdwJMmXiz2TrA\n-----END PRIVATE KEY-----\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cas\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cas.NewServiceCertificate(ctx, \"default\", \u0026cas.ServiceCertificateArgs{\n\t\t\tCertificateName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tCert: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIID1jCCAr6gAwIBAgIQQ7/8/QOOTbywxdgSX9aMqDANBgkqhkiG9w0BAQsFADBe\nMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFTXlTU0wxKzApBgNVBAsTIk15U1NMIFRl\nc3QgUlNBIC0gRm9yIHRlc3QgdXNlIG9ubHkxEjAQBgNVBAMTCU15U1NMLmNvbTAe\nFw0yNTA5MjIwNTU3NDVaFw0zMDA5MjEwNTU3NDVaMCAxCzAJBgNVBAYTAkNOMREw\nDwYDVQQDEwgxNjg4LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nAMEl04gKBqJxV+8KideZb7S4mPysehPzr/cXu4i1RXT7UFtNVZuqc4IdIzOja2SU\n6uNn8mY6Pfc5FNybg98bYx0ADbub55TUaw2Pz1CFEbiMvLpzMkp4EZadvmJWZk8t\ndNb+ClKqdXUWhxApS3Lz+wjCNYQnlODk4KmxmM8/U/CyQS7lgWS/1G72UFB09Skg\nsfvWdoHLrFfIlbVkp9XVELCtOkjj8Nn/rPOhc31NbstrwV4Whl6jngGAkaEtImJ7\n//sL+sPPsutefCgfZPrC+Zwru2En1BuIo5KW02NYLdjXbABH8xjkUobqRoro7eY3\nVySBr7adD6QmNv5hWohOuykCAwEAAaOBzTCByjAOBgNVHQ8BAf8EBAMCBaAwHQYD\nVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFCiBJgXRNBo/\nwXMPu5PPFRw/A79/MGMGCCsGAQUFBwEBBFcwVTAhBggrBgEFBQcwAYYVaHR0cDov\nL29jc3AubXlzc2wuY29tMDAGCCsGAQUFBzAChiRodHRwOi8vY2EubXlzc2wuY29t\nL215c3NsdGVzdHJzYS5jcnQwEwYDVR0RBAwwCoIIMTY4OC5jb20wDQYJKoZIhvcN\nAQELBQADggEBAHa0ATVeHtPPw1+a6kajlW6OQUjhiJg+Sk9fVA1eJ2Hzl1yDDw3K\nyAyl1gkxGI6BwWdX/C8IE6PuPYcG2CmJGoFoEAAIbAE76AKABvHoA8I6wyDruxFz\n06bNM8104TxAHTxe2zaHgBQnYIRk07uA8gxjZKFp1//eYbxj8HiP0Q9zXqYjF79G\nLe4PDw7Q6U22CP+cT9Sz5ZEoJCzmUtx3uQWhLzNxvyISrXeSqAFJzjtL0KKSR1cr\n8he6FoeU37oKdmrnweLeBe+no3OMChETa2JN4VAzXj/nPpQcyB7nXDfLUHe01+BB\nZBXKFLD2H38e97mFl/7mgNP5Nc1sycI5Sp4=\n-----END CERTIFICATE-----\n`),\n\t\t\tKey: pulumi.String(`-----BEGIN PRIVATE KEY-----\nMIIEowIBAAKCAQEAwSXTiAoGonFX7wqJ15lvtLiY/Kx6E/Ov9xe7iLVFdPtQW01V\nm6pzgh0jM6NrZJTq42fyZjo99zkU3JuD3xtjHQANu5vnlNRrDY/PUIURuIy8unMy\nSngRlp2+YlZmTy101v4KUqp1dRaHEClLcvP7CMI1hCeU4OTgqbGYzz9T8LJBLuWB\nZL/UbvZQUHT1KSCx+9Z2gcusV8iVtWSn1dUQsK06SOPw2f+s86FzfU1uy2vBXhaG\nXqOeAYCRoS0iYnv/+wv6w8+y6158KB9k+sL5nCu7YSfUG4ijkpbTY1gt2NdsAEfz\nGORShupGiujt5jdXJIGvtp0PpCY2/mFaiE67KQIDAQABAoIBAAKF9CZTUd8zvDKE\nazo/Ur0Zf5omxgOBC/vzj0DLyXKr89KgMdhHmPG1YBKFIIU0XYCHXkclR05LAcbu\nBdeCJpXS5zBbwDdAB9P/XHXQqeNvfJRc++ZgJ4QAXzkuqBssXK87ALcwFeUShxot\ncphiWpW0inlwVkVn3WLUzfUV0+ARljn8VOf+aAmfCiQMl4gsBpvD3dxF84aihS+1\nblqar5dE1GCJWHW67R1uSaAqHf7nwbBkZY8nTWF8n4+ELAAtlOgQKZlrQ+JxB3Ar\nrWzgMj4M6F1/man1y/XPR56px9Xv3DwBZHuLufsqPr10q/nI9VIIQHe49sFgnN4+\n48Q7wIECgYEAwxlrgBJI8gua4mJZxJRT8gBv2Mb1Kk1k7HVX11I+yF4eXr+cm+24\nCq7MjqmBXSnqvdQkwGFZ+C3cTKXJBPONWGF8NgiXaHSKjPEoFuHLdKBpgZMAax/L\naZBQRw6g12nz3XUCK0DE0wGgPkoDxc65s4NEWS+ua43LZ4TUOzWwwWECgYEA/XB1\nARNHyARy+P3iTeebh3t7qJoNoptLWHMlKjSjIZ1VZ4+9ilKsi5ZKVkPaLIjo8MGv\nAnk3vzSrFSYhId0XfmSqoWySWc0eBkc6NERvopxuIV1WwRKf/18lLhxiEjHIcgds\nG2KmfeiXdCKSgGlWvJmLITY4gJpOYMjpEDxipskCgYAdxnljmGbNmfvPZRcyKzkM\njAiF2wd7p0gp1lbLo9+1ELgt2ax7F7Ko3riVZUU7BLSwt/nL6o+iks02XW7qdIkz\n3dzpGjKRXIfwrrVhmKBGclzny5mav8V5nO7DiXX+qkrvl3X3R/FCCtN77ivZOo2Y\n2gXKXr6N55wNdnY1eyI4wQKBgQDXjZo2O+vFVuNimqyrjd1eMcxO7hfCwUooBGcL\nqpFEucg1uK+Awig24LCBBly9nARjIJh1Bhw/58/KwQ9U+fJNcdkeSnV/I1HyDQqY\nAczhBSM2BWkP9YNXc9jvivxudSECuwVblV/9nqGSCQWJag53gjAvIyqTVqpq7vYq\n9PEC4QKBgGY2pj0ZNqGkq16jD3iS+DDBpX+TPnoHzu5GZCM/1GLZ6xXbpNWtZQt4\n/m+6koRWeGvNAULnp8RSnhBzm+ZglpbwYcvsqRNDqIPGhJ2JruVA/bY3S0ebkRlD\nxDn0dJVMvNyRR83ZpjTQhxoq5l56TN5xk1vdJ9nZdwJMmXiz2TrA\n-----END PRIVATE KEY-----\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cas.ServiceCertificate;\nimport com.pulumi.alicloud.cas.ServiceCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultServiceCertificate = new ServiceCertificate(\"defaultServiceCertificate\", ServiceCertificateArgs.builder()\n            .certificateName(String.format(\"terraform-example-%s\", default_.result()))\n            .cert(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIID1jCCAr6gAwIBAgIQQ7/8/QOOTbywxdgSX9aMqDANBgkqhkiG9w0BAQsFADBe\nMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFTXlTU0wxKzApBgNVBAsTIk15U1NMIFRl\nc3QgUlNBIC0gRm9yIHRlc3QgdXNlIG9ubHkxEjAQBgNVBAMTCU15U1NMLmNvbTAe\nFw0yNTA5MjIwNTU3NDVaFw0zMDA5MjEwNTU3NDVaMCAxCzAJBgNVBAYTAkNOMREw\nDwYDVQQDEwgxNjg4LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nAMEl04gKBqJxV+8KideZb7S4mPysehPzr/cXu4i1RXT7UFtNVZuqc4IdIzOja2SU\n6uNn8mY6Pfc5FNybg98bYx0ADbub55TUaw2Pz1CFEbiMvLpzMkp4EZadvmJWZk8t\ndNb+ClKqdXUWhxApS3Lz+wjCNYQnlODk4KmxmM8/U/CyQS7lgWS/1G72UFB09Skg\nsfvWdoHLrFfIlbVkp9XVELCtOkjj8Nn/rPOhc31NbstrwV4Whl6jngGAkaEtImJ7\n//sL+sPPsutefCgfZPrC+Zwru2En1BuIo5KW02NYLdjXbABH8xjkUobqRoro7eY3\nVySBr7adD6QmNv5hWohOuykCAwEAAaOBzTCByjAOBgNVHQ8BAf8EBAMCBaAwHQYD\nVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFCiBJgXRNBo/\nwXMPu5PPFRw/A79/MGMGCCsGAQUFBwEBBFcwVTAhBggrBgEFBQcwAYYVaHR0cDov\nL29jc3AubXlzc2wuY29tMDAGCCsGAQUFBzAChiRodHRwOi8vY2EubXlzc2wuY29t\nL215c3NsdGVzdHJzYS5jcnQwEwYDVR0RBAwwCoIIMTY4OC5jb20wDQYJKoZIhvcN\nAQELBQADggEBAHa0ATVeHtPPw1+a6kajlW6OQUjhiJg+Sk9fVA1eJ2Hzl1yDDw3K\nyAyl1gkxGI6BwWdX/C8IE6PuPYcG2CmJGoFoEAAIbAE76AKABvHoA8I6wyDruxFz\n06bNM8104TxAHTxe2zaHgBQnYIRk07uA8gxjZKFp1//eYbxj8HiP0Q9zXqYjF79G\nLe4PDw7Q6U22CP+cT9Sz5ZEoJCzmUtx3uQWhLzNxvyISrXeSqAFJzjtL0KKSR1cr\n8he6FoeU37oKdmrnweLeBe+no3OMChETa2JN4VAzXj/nPpQcyB7nXDfLUHe01+BB\nZBXKFLD2H38e97mFl/7mgNP5Nc1sycI5Sp4=\n-----END CERTIFICATE-----\n            \"\"\")\n            .key(\"\"\"\n-----BEGIN PRIVATE KEY-----\nMIIEowIBAAKCAQEAwSXTiAoGonFX7wqJ15lvtLiY/Kx6E/Ov9xe7iLVFdPtQW01V\nm6pzgh0jM6NrZJTq42fyZjo99zkU3JuD3xtjHQANu5vnlNRrDY/PUIURuIy8unMy\nSngRlp2+YlZmTy101v4KUqp1dRaHEClLcvP7CMI1hCeU4OTgqbGYzz9T8LJBLuWB\nZL/UbvZQUHT1KSCx+9Z2gcusV8iVtWSn1dUQsK06SOPw2f+s86FzfU1uy2vBXhaG\nXqOeAYCRoS0iYnv/+wv6w8+y6158KB9k+sL5nCu7YSfUG4ijkpbTY1gt2NdsAEfz\nGORShupGiujt5jdXJIGvtp0PpCY2/mFaiE67KQIDAQABAoIBAAKF9CZTUd8zvDKE\nazo/Ur0Zf5omxgOBC/vzj0DLyXKr89KgMdhHmPG1YBKFIIU0XYCHXkclR05LAcbu\nBdeCJpXS5zBbwDdAB9P/XHXQqeNvfJRc++ZgJ4QAXzkuqBssXK87ALcwFeUShxot\ncphiWpW0inlwVkVn3WLUzfUV0+ARljn8VOf+aAmfCiQMl4gsBpvD3dxF84aihS+1\nblqar5dE1GCJWHW67R1uSaAqHf7nwbBkZY8nTWF8n4+ELAAtlOgQKZlrQ+JxB3Ar\nrWzgMj4M6F1/man1y/XPR56px9Xv3DwBZHuLufsqPr10q/nI9VIIQHe49sFgnN4+\n48Q7wIECgYEAwxlrgBJI8gua4mJZxJRT8gBv2Mb1Kk1k7HVX11I+yF4eXr+cm+24\nCq7MjqmBXSnqvdQkwGFZ+C3cTKXJBPONWGF8NgiXaHSKjPEoFuHLdKBpgZMAax/L\naZBQRw6g12nz3XUCK0DE0wGgPkoDxc65s4NEWS+ua43LZ4TUOzWwwWECgYEA/XB1\nARNHyARy+P3iTeebh3t7qJoNoptLWHMlKjSjIZ1VZ4+9ilKsi5ZKVkPaLIjo8MGv\nAnk3vzSrFSYhId0XfmSqoWySWc0eBkc6NERvopxuIV1WwRKf/18lLhxiEjHIcgds\nG2KmfeiXdCKSgGlWvJmLITY4gJpOYMjpEDxipskCgYAdxnljmGbNmfvPZRcyKzkM\njAiF2wd7p0gp1lbLo9+1ELgt2ax7F7Ko3riVZUU7BLSwt/nL6o+iks02XW7qdIkz\n3dzpGjKRXIfwrrVhmKBGclzny5mav8V5nO7DiXX+qkrvl3X3R/FCCtN77ivZOo2Y\n2gXKXr6N55wNdnY1eyI4wQKBgQDXjZo2O+vFVuNimqyrjd1eMcxO7hfCwUooBGcL\nqpFEucg1uK+Awig24LCBBly9nARjIJh1Bhw/58/KwQ9U+fJNcdkeSnV/I1HyDQqY\nAczhBSM2BWkP9YNXc9jvivxudSECuwVblV/9nqGSCQWJag53gjAvIyqTVqpq7vYq\n9PEC4QKBgGY2pj0ZNqGkq16jD3iS+DDBpX+TPnoHzu5GZCM/1GLZ6xXbpNWtZQt4\n/m+6koRWeGvNAULnp8RSnhBzm+ZglpbwYcvsqRNDqIPGhJ2JruVA/bY3S0ebkRlD\nxDn0dJVMvNyRR83ZpjTQhxoq5l56TN5xk1vdJ9nZdwJMmXiz2TrA\n-----END PRIVATE KEY-----\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultServiceCertificate:\n    type: alicloud:cas:ServiceCertificate\n    name: default\n    properties:\n      certificateName: terraform-example-${default.result}\n      cert: |\n        -----BEGIN CERTIFICATE-----\n        MIID1jCCAr6gAwIBAgIQQ7/8/QOOTbywxdgSX9aMqDANBgkqhkiG9w0BAQsFADBe\n        MQswCQYDVQQGEwJDTjEOMAwGA1UEChMFTXlTU0wxKzApBgNVBAsTIk15U1NMIFRl\n        c3QgUlNBIC0gRm9yIHRlc3QgdXNlIG9ubHkxEjAQBgNVBAMTCU15U1NMLmNvbTAe\n        Fw0yNTA5MjIwNTU3NDVaFw0zMDA5MjEwNTU3NDVaMCAxCzAJBgNVBAYTAkNOMREw\n        DwYDVQQDEwgxNjg4LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\n        AMEl04gKBqJxV+8KideZb7S4mPysehPzr/cXu4i1RXT7UFtNVZuqc4IdIzOja2SU\n        6uNn8mY6Pfc5FNybg98bYx0ADbub55TUaw2Pz1CFEbiMvLpzMkp4EZadvmJWZk8t\n        dNb+ClKqdXUWhxApS3Lz+wjCNYQnlODk4KmxmM8/U/CyQS7lgWS/1G72UFB09Skg\n        sfvWdoHLrFfIlbVkp9XVELCtOkjj8Nn/rPOhc31NbstrwV4Whl6jngGAkaEtImJ7\n        //sL+sPPsutefCgfZPrC+Zwru2En1BuIo5KW02NYLdjXbABH8xjkUobqRoro7eY3\n        VySBr7adD6QmNv5hWohOuykCAwEAAaOBzTCByjAOBgNVHQ8BAf8EBAMCBaAwHQYD\n        VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFCiBJgXRNBo/\n        wXMPu5PPFRw/A79/MGMGCCsGAQUFBwEBBFcwVTAhBggrBgEFBQcwAYYVaHR0cDov\n        L29jc3AubXlzc2wuY29tMDAGCCsGAQUFBzAChiRodHRwOi8vY2EubXlzc2wuY29t\n        L215c3NsdGVzdHJzYS5jcnQwEwYDVR0RBAwwCoIIMTY4OC5jb20wDQYJKoZIhvcN\n        AQELBQADggEBAHa0ATVeHtPPw1+a6kajlW6OQUjhiJg+Sk9fVA1eJ2Hzl1yDDw3K\n        yAyl1gkxGI6BwWdX/C8IE6PuPYcG2CmJGoFoEAAIbAE76AKABvHoA8I6wyDruxFz\n        06bNM8104TxAHTxe2zaHgBQnYIRk07uA8gxjZKFp1//eYbxj8HiP0Q9zXqYjF79G\n        Le4PDw7Q6U22CP+cT9Sz5ZEoJCzmUtx3uQWhLzNxvyISrXeSqAFJzjtL0KKSR1cr\n        8he6FoeU37oKdmrnweLeBe+no3OMChETa2JN4VAzXj/nPpQcyB7nXDfLUHe01+BB\n        ZBXKFLD2H38e97mFl/7mgNP5Nc1sycI5Sp4=\n        -----END CERTIFICATE-----\n      key: |\n        -----BEGIN PRIVATE KEY-----\n        MIIEowIBAAKCAQEAwSXTiAoGonFX7wqJ15lvtLiY/Kx6E/Ov9xe7iLVFdPtQW01V\n        m6pzgh0jM6NrZJTq42fyZjo99zkU3JuD3xtjHQANu5vnlNRrDY/PUIURuIy8unMy\n        SngRlp2+YlZmTy101v4KUqp1dRaHEClLcvP7CMI1hCeU4OTgqbGYzz9T8LJBLuWB\n        ZL/UbvZQUHT1KSCx+9Z2gcusV8iVtWSn1dUQsK06SOPw2f+s86FzfU1uy2vBXhaG\n        XqOeAYCRoS0iYnv/+wv6w8+y6158KB9k+sL5nCu7YSfUG4ijkpbTY1gt2NdsAEfz\n        GORShupGiujt5jdXJIGvtp0PpCY2/mFaiE67KQIDAQABAoIBAAKF9CZTUd8zvDKE\n        azo/Ur0Zf5omxgOBC/vzj0DLyXKr89KgMdhHmPG1YBKFIIU0XYCHXkclR05LAcbu\n        BdeCJpXS5zBbwDdAB9P/XHXQqeNvfJRc++ZgJ4QAXzkuqBssXK87ALcwFeUShxot\n        cphiWpW0inlwVkVn3WLUzfUV0+ARljn8VOf+aAmfCiQMl4gsBpvD3dxF84aihS+1\n        blqar5dE1GCJWHW67R1uSaAqHf7nwbBkZY8nTWF8n4+ELAAtlOgQKZlrQ+JxB3Ar\n        rWzgMj4M6F1/man1y/XPR56px9Xv3DwBZHuLufsqPr10q/nI9VIIQHe49sFgnN4+\n        48Q7wIECgYEAwxlrgBJI8gua4mJZxJRT8gBv2Mb1Kk1k7HVX11I+yF4eXr+cm+24\n        Cq7MjqmBXSnqvdQkwGFZ+C3cTKXJBPONWGF8NgiXaHSKjPEoFuHLdKBpgZMAax/L\n        aZBQRw6g12nz3XUCK0DE0wGgPkoDxc65s4NEWS+ua43LZ4TUOzWwwWECgYEA/XB1\n        ARNHyARy+P3iTeebh3t7qJoNoptLWHMlKjSjIZ1VZ4+9ilKsi5ZKVkPaLIjo8MGv\n        Ank3vzSrFSYhId0XfmSqoWySWc0eBkc6NERvopxuIV1WwRKf/18lLhxiEjHIcgds\n        G2KmfeiXdCKSgGlWvJmLITY4gJpOYMjpEDxipskCgYAdxnljmGbNmfvPZRcyKzkM\n        jAiF2wd7p0gp1lbLo9+1ELgt2ax7F7Ko3riVZUU7BLSwt/nL6o+iks02XW7qdIkz\n        3dzpGjKRXIfwrrVhmKBGclzny5mav8V5nO7DiXX+qkrvl3X3R/FCCtN77ivZOo2Y\n        2gXKXr6N55wNdnY1eyI4wQKBgQDXjZo2O+vFVuNimqyrjd1eMcxO7hfCwUooBGcL\n        qpFEucg1uK+Awig24LCBBly9nARjIJh1Bhw/58/KwQ9U+fJNcdkeSnV/I1HyDQqY\n        AczhBSM2BWkP9YNXc9jvivxudSECuwVblV/9nqGSCQWJag53gjAvIyqTVqpq7vYq\n        9PEC4QKBgGY2pj0ZNqGkq16jD3iS+DDBpX+TPnoHzu5GZCM/1GLZ6xXbpNWtZQt4\n        /m+6koRWeGvNAULnp8RSnhBzm+ZglpbwYcvsqRNDqIPGhJ2JruVA/bY3S0ebkRlD\n        xDn0dJVMvNyRR83ZpjTQhxoq5l56TN5xk1vdJ9nZdwJMmXiz2TrA\n        -----END PRIVATE KEY-----\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSSL Certificates Certificate can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cas/serviceCertificate:ServiceCertificate example \u003cid\u003e\n```\n\n","properties":{"cert":{"type":"string","description":"The content of a non-SM certificate in PEM format.\n"},"certificateName":{"type":"string","description":"A custom name for the certificate. The name can be up to 64 characters long and can contain any character type, such as letters, numbers, and underscores. **NOTE:** From version 1.260.1, \u003cspan pulumi-lang-nodejs=\"`certificateName`\" pulumi-lang-dotnet=\"`CertificateName`\" pulumi-lang-go=\"`certificateName`\" pulumi-lang-python=\"`certificate_name`\" pulumi-lang-yaml=\"`certificateName`\" pulumi-lang-java=\"`certificateName`\"\u003e`certificate_name`\u003c/span\u003e can be modified.\n"},"encryptCert":{"type":"string","description":"The content of an SM encryption certificate in PEM format.\n"},"encryptPrivateKey":{"type":"string","description":"The private key of an SM encryption certificate in PEM format.\n","secret":true},"key":{"type":"string","description":"The private key of a non-SM certificate in PEM format.\n","secret":true},"lang":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`lang`\" pulumi-lang-dotnet=\"`Lang`\" pulumi-lang-go=\"`lang`\" pulumi-lang-python=\"`lang`\" pulumi-lang-yaml=\"`lang`\" pulumi-lang-java=\"`lang`\"\u003e`lang`\u003c/span\u003e has been deprecated from provider version 1.260.1 and it will be removed in the future version.\n","deprecationMessage":"Field 'lang' has been deprecated from provider version 1.260.1 and it will be removed in the future version."},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.129.0 and it will be removed in the future version. Please use the new attribute \u003cspan pulumi-lang-nodejs=\"`certificateName`\" pulumi-lang-dotnet=\"`CertificateName`\" pulumi-lang-go=\"`certificateName`\" pulumi-lang-python=\"`certificate_name`\" pulumi-lang-yaml=\"`certificateName`\" pulumi-lang-java=\"`certificateName`\"\u003e`certificate_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.129.0 and it will be removed in the future version. Please use the new attribute 'certificate_name' instead."},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"signCert":{"type":"string","description":"The content of an SM signing certificate in PEM format.\n"},"signPrivateKey":{"type":"string","description":"The private key of an SM signing certificate in PEM format.\n","secret":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"required":["certificateName","name","resourceGroupId"],"inputProperties":{"cert":{"type":"string","description":"The content of a non-SM certificate in PEM format.\n","willReplaceOnChanges":true},"certificateName":{"type":"string","description":"A custom name for the certificate. The name can be up to 64 characters long and can contain any character type, such as letters, numbers, and underscores. **NOTE:** From version 1.260.1, \u003cspan pulumi-lang-nodejs=\"`certificateName`\" pulumi-lang-dotnet=\"`CertificateName`\" pulumi-lang-go=\"`certificateName`\" pulumi-lang-python=\"`certificate_name`\" pulumi-lang-yaml=\"`certificateName`\" pulumi-lang-java=\"`certificateName`\"\u003e`certificate_name`\u003c/span\u003e can be modified.\n"},"encryptCert":{"type":"string","description":"The content of an SM encryption certificate in PEM format.\n","willReplaceOnChanges":true},"encryptPrivateKey":{"type":"string","description":"The private key of an SM encryption certificate in PEM format.\n","secret":true,"willReplaceOnChanges":true},"key":{"type":"string","description":"The private key of a non-SM certificate in PEM format.\n","secret":true,"willReplaceOnChanges":true},"lang":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`lang`\" pulumi-lang-dotnet=\"`Lang`\" pulumi-lang-go=\"`lang`\" pulumi-lang-python=\"`lang`\" pulumi-lang-yaml=\"`lang`\" pulumi-lang-java=\"`lang`\"\u003e`lang`\u003c/span\u003e has been deprecated from provider version 1.260.1 and it will be removed in the future version.\n","deprecationMessage":"Field 'lang' has been deprecated from provider version 1.260.1 and it will be removed in the future version."},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.129.0 and it will be removed in the future version. Please use the new attribute \u003cspan pulumi-lang-nodejs=\"`certificateName`\" pulumi-lang-dotnet=\"`CertificateName`\" pulumi-lang-go=\"`certificateName`\" pulumi-lang-python=\"`certificate_name`\" pulumi-lang-yaml=\"`certificateName`\" pulumi-lang-java=\"`certificateName`\"\u003e`certificate_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.129.0 and it will be removed in the future version. Please use the new attribute 'certificate_name' instead."},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"signCert":{"type":"string","description":"The content of an SM signing certificate in PEM format.\n","willReplaceOnChanges":true},"signPrivateKey":{"type":"string","description":"The private key of an SM signing certificate in PEM format.\n","secret":true,"willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ServiceCertificate resources.\n","properties":{"cert":{"type":"string","description":"The content of a non-SM certificate in PEM format.\n","willReplaceOnChanges":true},"certificateName":{"type":"string","description":"A custom name for the certificate. The name can be up to 64 characters long and can contain any character type, such as letters, numbers, and underscores. **NOTE:** From version 1.260.1, \u003cspan pulumi-lang-nodejs=\"`certificateName`\" pulumi-lang-dotnet=\"`CertificateName`\" pulumi-lang-go=\"`certificateName`\" pulumi-lang-python=\"`certificate_name`\" pulumi-lang-yaml=\"`certificateName`\" pulumi-lang-java=\"`certificateName`\"\u003e`certificate_name`\u003c/span\u003e can be modified.\n"},"encryptCert":{"type":"string","description":"The content of an SM encryption certificate in PEM format.\n","willReplaceOnChanges":true},"encryptPrivateKey":{"type":"string","description":"The private key of an SM encryption certificate in PEM format.\n","secret":true,"willReplaceOnChanges":true},"key":{"type":"string","description":"The private key of a non-SM certificate in PEM format.\n","secret":true,"willReplaceOnChanges":true},"lang":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`lang`\" pulumi-lang-dotnet=\"`Lang`\" pulumi-lang-go=\"`lang`\" pulumi-lang-python=\"`lang`\" pulumi-lang-yaml=\"`lang`\" pulumi-lang-java=\"`lang`\"\u003e`lang`\u003c/span\u003e has been deprecated from provider version 1.260.1 and it will be removed in the future version.\n","deprecationMessage":"Field 'lang' has been deprecated from provider version 1.260.1 and it will be removed in the future version."},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.129.0 and it will be removed in the future version. Please use the new attribute \u003cspan pulumi-lang-nodejs=\"`certificateName`\" pulumi-lang-dotnet=\"`CertificateName`\" pulumi-lang-go=\"`certificateName`\" pulumi-lang-python=\"`certificate_name`\" pulumi-lang-yaml=\"`certificateName`\" pulumi-lang-java=\"`certificateName`\"\u003e`certificate_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.129.0 and it will be removed in the future version. Please use the new attribute 'certificate_name' instead."},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"signCert":{"type":"string","description":"The content of an SM signing certificate in PEM format.\n","willReplaceOnChanges":true},"signPrivateKey":{"type":"string","description":"The private key of an SM signing certificate in PEM format.\n","secret":true,"willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object"}},"alicloud:cassandra/backupPlan:BackupPlan":{"description":"Provides a Cassandra Backup Plan resource.\n\nFor information about Cassandra Backup Plan and how to use it, see [What is Backup Plan](https://www.alibabacloud.com/help/doc-detail/157522.htm).\n\n\u003e **NOTE:** Available in v1.128.0+.\n\n\u003e **DEPRECATED:**  This resource has been [deprecated](https://www.alibabacloud.com/help/en/apsaradb-for-cassandra/latest/cassandra-delisting-notice) from version `1.220.0`.\n\n## Import\n\nCassandra Backup Plan can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cassandra/backupPlan:BackupPlan example \u003ccluster_id\u003e:\u003cdata_center_id\u003e\n```\n\n","properties":{"active":{"type":"boolean","description":"Specifies whether to activate the backup plan. Valid values: `True`, `False`. Default value: `True`.\n"},"backupPeriod":{"type":"string","description":"The backup cycle. Valid values: `Friday`, `Monday`, `Saturday`, `Sunday`, `Thursday`, `Tuesday`, `Wednesday`.\n"},"backupTime":{"type":"string","description":"The start time of the backup task each day. The time is displayed in UTC and denoted by Z.\n"},"clusterId":{"type":"string","description":"The ID of the cluster for the backup.\n"},"dataCenterId":{"type":"string","description":"The ID of the data center for the backup in the cluster.\n"},"retentionPeriod":{"type":"integer","description":"The duration for which you want to retain the backup. Valid values: 1 to 30. Unit: days. Default value: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n"}},"required":["active","backupPeriod","backupTime","clusterId","dataCenterId","retentionPeriod"],"inputProperties":{"active":{"type":"boolean","description":"Specifies whether to activate the backup plan. Valid values: `True`, `False`. Default value: `True`.\n"},"backupPeriod":{"type":"string","description":"The backup cycle. Valid values: `Friday`, `Monday`, `Saturday`, `Sunday`, `Thursday`, `Tuesday`, `Wednesday`.\n"},"backupTime":{"type":"string","description":"The start time of the backup task each day. The time is displayed in UTC and denoted by Z.\n"},"clusterId":{"type":"string","description":"The ID of the cluster for the backup.\n","willReplaceOnChanges":true},"dataCenterId":{"type":"string","description":"The ID of the data center for the backup in the cluster.\n","willReplaceOnChanges":true},"retentionPeriod":{"type":"integer","description":"The duration for which you want to retain the backup. Valid values: 1 to 30. Unit: days. Default value: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n"}},"requiredInputs":["backupTime","clusterId","dataCenterId"],"stateInputs":{"description":"Input properties used for looking up and filtering BackupPlan resources.\n","properties":{"active":{"type":"boolean","description":"Specifies whether to activate the backup plan. Valid values: `True`, `False`. Default value: `True`.\n"},"backupPeriod":{"type":"string","description":"The backup cycle. Valid values: `Friday`, `Monday`, `Saturday`, `Sunday`, `Thursday`, `Tuesday`, `Wednesday`.\n"},"backupTime":{"type":"string","description":"The start time of the backup task each day. The time is displayed in UTC and denoted by Z.\n"},"clusterId":{"type":"string","description":"The ID of the cluster for the backup.\n","willReplaceOnChanges":true},"dataCenterId":{"type":"string","description":"The ID of the data center for the backup in the cluster.\n","willReplaceOnChanges":true},"retentionPeriod":{"type":"integer","description":"The duration for which you want to retain the backup. Valid values: 1 to 30. Unit: days. Default value: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:cassandra/cluster:Cluster":{"description":"Provides a Cassandra cluster resource supports replica set clusters only. The Cassandra provides stable, reliable, and automatic scalable database services. \nIt offers a full range of database solutions, such as disaster recovery, backup, recovery, monitoring, and alarms.\nYou can see detail product introduction [here](https://www.alibabacloud.com/help/product/49055.htm).\n\n\u003e **NOTE:** Available since v1.88.0.\n\n\u003e **NOTE:**  The following regions support create Vpc network Cassandra cluster.\nThe official website mark more regions. Or you can call [DescribeRegions](https://help.aliyun.com/document_detail/157540.html).\n\n\u003e **NOTE:**  Create Cassandra cluster or change cluster type and storage would cost 30 minutes. Please make full preparation.\n\n\u003e **DEPRECATED:**  This resource has been [deprecated](https://www.alibabacloud.com/help/en/apsaradb-for-cassandra/latest/cassandra-delisting-notice) from version `1.220.0`.\n\n## Example Usage\n\n### Create a cassandra cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.cassandra.Cluster(\"default\", {\n    clusterName: \"cassandra-cluster-name-tf\",\n    dataCenterName: \"dc-1\",\n    autoRenew: false,\n    instanceType: \"cassandra.c.large\",\n    majorVersion: \"3.11\",\n    nodeCount: 2,\n    payType: \"PayAsYouGo\",\n    vswitchId: \"vsw-xxxx\",\n    diskSize: 160,\n    diskType: \"cloud_ssd\",\n    maintainStartTime: \"18:00Z\",\n    maintainEndTime: \"20:00Z\",\n    ipWhite: \"127.0.0.1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cassandra.Cluster(\"default\",\n    cluster_name=\"cassandra-cluster-name-tf\",\n    data_center_name=\"dc-1\",\n    auto_renew=False,\n    instance_type=\"cassandra.c.large\",\n    major_version=\"3.11\",\n    node_count=2,\n    pay_type=\"PayAsYouGo\",\n    vswitch_id=\"vsw-xxxx\",\n    disk_size=160,\n    disk_type=\"cloud_ssd\",\n    maintain_start_time=\"18:00Z\",\n    maintain_end_time=\"20:00Z\",\n    ip_white=\"127.0.0.1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Cassandra.Cluster(\"default\", new()\n    {\n        ClusterName = \"cassandra-cluster-name-tf\",\n        DataCenterName = \"dc-1\",\n        AutoRenew = false,\n        InstanceType = \"cassandra.c.large\",\n        MajorVersion = \"3.11\",\n        NodeCount = 2,\n        PayType = \"PayAsYouGo\",\n        VswitchId = \"vsw-xxxx\",\n        DiskSize = 160,\n        DiskType = \"cloud_ssd\",\n        MaintainStartTime = \"18:00Z\",\n        MaintainEndTime = \"20:00Z\",\n        IpWhite = \"127.0.0.1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cassandra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cassandra.NewCluster(ctx, \"default\", \u0026cassandra.ClusterArgs{\n\t\t\tClusterName:       pulumi.String(\"cassandra-cluster-name-tf\"),\n\t\t\tDataCenterName:    pulumi.String(\"dc-1\"),\n\t\t\tAutoRenew:         pulumi.Bool(false),\n\t\t\tInstanceType:      pulumi.String(\"cassandra.c.large\"),\n\t\t\tMajorVersion:      pulumi.String(\"3.11\"),\n\t\t\tNodeCount:         pulumi.Int(2),\n\t\t\tPayType:           pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:         pulumi.String(\"vsw-xxxx\"),\n\t\t\tDiskSize:          pulumi.Int(160),\n\t\t\tDiskType:          pulumi.String(\"cloud_ssd\"),\n\t\t\tMaintainStartTime: pulumi.String(\"18:00Z\"),\n\t\t\tMaintainEndTime:   pulumi.String(\"20:00Z\"),\n\t\t\tIpWhite:           pulumi.String(\"127.0.0.1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cassandra.Cluster;\nimport com.pulumi.alicloud.cassandra.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Cluster(\"default\", ClusterArgs.builder()\n            .clusterName(\"cassandra-cluster-name-tf\")\n            .dataCenterName(\"dc-1\")\n            .autoRenew(false)\n            .instanceType(\"cassandra.c.large\")\n            .majorVersion(\"3.11\")\n            .nodeCount(2)\n            .payType(\"PayAsYouGo\")\n            .vswitchId(\"vsw-xxxx\")\n            .diskSize(160)\n            .diskType(\"cloud_ssd\")\n            .maintainStartTime(\"18:00Z\")\n            .maintainEndTime(\"20:00Z\")\n            .ipWhite(\"127.0.0.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:cassandra:Cluster\n    properties:\n      clusterName: cassandra-cluster-name-tf\n      dataCenterName: dc-1\n      autoRenew: 'false'\n      instanceType: cassandra.c.large\n      majorVersion: '3.11'\n      nodeCount: '2'\n      payType: PayAsYouGo\n      vswitchId: vsw-xxxx\n      diskSize: '160'\n      diskType: cloud_ssd\n      maintainStartTime: 18:00Z\n      maintainEndTime: 20:00Z\n      ipWhite: 127.0.0.1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nThis is a example for class netType cluster. You can find more detail with the examples/cassandra_cluster dir.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCassandra cluster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cassandra/cluster:Cluster example cds-wz9sr400dd7xxxxx\n```\n\n","properties":{"autoRenew":{"type":"boolean","description":"Auto renew of dataCenter-1,\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. System default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= PrePaid.\n"},"autoRenewPeriod":{"type":"integer","description":"Period of dataCenter-1 auto renew, if auto renew is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, one of `1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 60`, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= Subscription. Unit: month.\n"},"clusterName":{"type":"string","description":"Cassandra cluster name. Length must be 2~128 characters long. Only Chinese characters, English letters, numbers, period `.`, underline `_`, or dash `-` are permitted.\n"},"dataCenterName":{"type":"string","description":"Cassandra dataCenter-1 name. Length must be 2~128 characters long. Only Chinese characters, English letters, numbers, period `.`, underline `_`, or dash `-` are permitted.\n"},"diskSize":{"type":"integer","description":"User-defined Cassandra dataCenter-1 one node's storage space.Unit: GB. Value range:\n- Custom storage space; value range: [160, 2000].\n- 80-GB increments.\n"},"diskType":{"type":"string","description":"The disk type of Cassandra dataCenter-1. Valid values are \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\" localDisk \" pulumi-lang-dotnet=\" LocalDisk \" pulumi-lang-go=\" localDisk \" pulumi-lang-python=\" local_disk \" pulumi-lang-yaml=\" localDisk \" pulumi-lang-java=\" localDisk \"\u003e local_disk \u003c/span\u003esize is fixed.\n"},"enablePublic":{"type":"boolean"},"instanceType":{"type":"string","description":"Instance specification. See [Instance specifications](https://help.aliyun.com/document_detail/157445.html). Or you can call describeInstanceType api.\n"},"ipWhite":{"type":"string","description":"Set the instance's IP whitelist in VPC network.\n"},"maintainEndTime":{"type":"string","description":"The end time of the operation and maintenance time period of the cluster, in the format of HH:mmZ (UTC time).\n"},"maintainStartTime":{"type":"string","description":"The start time of the operation and maintenance time period of the cluster, in the format of HH:mmZ (UTC time).\n"},"majorVersion":{"type":"string","description":"Cassandra major version. Now only support version `3.11`.\n"},"nodeCount":{"type":"integer","description":"The node count of Cassandra dataCenter-1 default to 2.\n"},"password":{"type":"string","secret":true},"payType":{"type":"string","description":"The pay type of Cassandra dataCenter-1. Valid values are `Subscription`, `PayAsYouGo`,System default to `PayAsYouGo`.\n"},"period":{"type":"integer"},"periodUnit":{"type":"string"},"publicPoints":{"type":"array","items":{"type":"string"}},"securityGroups":{"type":"array","items":{"type":"string"},"description":"A list of security group ids to associate with.\n\n\u003e **NOTE:** Now cluster_name,data_center_name,instance_type,node_count,disk_type,disk_size,maintain_start_time,maintain_end_time,tags,ip_white,security_groups can be change. The others(auto_renew,\u003cspan pulumi-lang-nodejs=\" autoRenewPeriod \" pulumi-lang-dotnet=\" AutoRenewPeriod \" pulumi-lang-go=\" autoRenewPeriod \" pulumi-lang-python=\" auto_renew_period \" pulumi-lang-yaml=\" autoRenewPeriod \" pulumi-lang-java=\" autoRenewPeriod \"\u003e auto_renew_period \u003c/span\u003eand so on) will be supported in the furture.\n"},"status":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eof dataCenter-1, can not empty.\n"},"zoneId":{"type":"string","description":"The Zone to launch the Cassandra cluster. If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis not empty, this\u003cspan pulumi-lang-nodejs=\" zoneId \" pulumi-lang-dotnet=\" ZoneId \" pulumi-lang-go=\" zoneId \" pulumi-lang-python=\" zone_id \" pulumi-lang-yaml=\" zoneId \" pulumi-lang-java=\" zoneId \"\u003e zone_id \u003c/span\u003ecan be \"\" or consistent.\n"}},"required":["instanceType","ipWhite","majorVersion","nodeCount","payType","publicPoints","securityGroups","status","vswitchId","zoneId"],"inputProperties":{"autoRenew":{"type":"boolean","description":"Auto renew of dataCenter-1,\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. System default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= PrePaid.\n","willReplaceOnChanges":true},"autoRenewPeriod":{"type":"integer","description":"Period of dataCenter-1 auto renew, if auto renew is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, one of `1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 60`, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= Subscription. Unit: month.\n","willReplaceOnChanges":true},"clusterName":{"type":"string","description":"Cassandra cluster name. Length must be 2~128 characters long. Only Chinese characters, English letters, numbers, period `.`, underline `_`, or dash `-` are permitted.\n"},"dataCenterName":{"type":"string","description":"Cassandra dataCenter-1 name. Length must be 2~128 characters long. Only Chinese characters, English letters, numbers, period `.`, underline `_`, or dash `-` are permitted.\n"},"diskSize":{"type":"integer","description":"User-defined Cassandra dataCenter-1 one node's storage space.Unit: GB. Value range:\n- Custom storage space; value range: [160, 2000].\n- 80-GB increments.\n"},"diskType":{"type":"string","description":"The disk type of Cassandra dataCenter-1. Valid values are \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\" localDisk \" pulumi-lang-dotnet=\" LocalDisk \" pulumi-lang-go=\" localDisk \" pulumi-lang-python=\" local_disk \" pulumi-lang-yaml=\" localDisk \" pulumi-lang-java=\" localDisk \"\u003e local_disk \u003c/span\u003esize is fixed.\n","willReplaceOnChanges":true},"enablePublic":{"type":"boolean"},"instanceType":{"type":"string","description":"Instance specification. See [Instance specifications](https://help.aliyun.com/document_detail/157445.html). Or you can call describeInstanceType api.\n"},"ipWhite":{"type":"string","description":"Set the instance's IP whitelist in VPC network.\n"},"maintainEndTime":{"type":"string","description":"The end time of the operation and maintenance time period of the cluster, in the format of HH:mmZ (UTC time).\n"},"maintainStartTime":{"type":"string","description":"The start time of the operation and maintenance time period of the cluster, in the format of HH:mmZ (UTC time).\n"},"majorVersion":{"type":"string","description":"Cassandra major version. Now only support version `3.11`.\n","willReplaceOnChanges":true},"nodeCount":{"type":"integer","description":"The node count of Cassandra dataCenter-1 default to 2.\n"},"password":{"type":"string","secret":true},"payType":{"type":"string","description":"The pay type of Cassandra dataCenter-1. Valid values are `Subscription`, `PayAsYouGo`,System default to `PayAsYouGo`.\n","willReplaceOnChanges":true},"period":{"type":"integer"},"periodUnit":{"type":"string","willReplaceOnChanges":true},"securityGroups":{"type":"array","items":{"type":"string"},"description":"A list of security group ids to associate with.\n\n\u003e **NOTE:** Now cluster_name,data_center_name,instance_type,node_count,disk_type,disk_size,maintain_start_time,maintain_end_time,tags,ip_white,security_groups can be change. The others(auto_renew,\u003cspan pulumi-lang-nodejs=\" autoRenewPeriod \" pulumi-lang-dotnet=\" AutoRenewPeriod \" pulumi-lang-go=\" autoRenewPeriod \" pulumi-lang-python=\" auto_renew_period \" pulumi-lang-yaml=\" autoRenewPeriod \" pulumi-lang-java=\" autoRenewPeriod \"\u003e auto_renew_period \u003c/span\u003eand so on) will be supported in the furture.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eof dataCenter-1, can not empty.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the Cassandra cluster. If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis not empty, this\u003cspan pulumi-lang-nodejs=\" zoneId \" pulumi-lang-dotnet=\" ZoneId \" pulumi-lang-go=\" zoneId \" pulumi-lang-python=\" zone_id \" pulumi-lang-yaml=\" zoneId \" pulumi-lang-java=\" zoneId \"\u003e zone_id \u003c/span\u003ecan be \"\" or consistent.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceType","majorVersion","nodeCount","payType","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering Cluster resources.\n","properties":{"autoRenew":{"type":"boolean","description":"Auto renew of dataCenter-1,\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. System default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= PrePaid.\n","willReplaceOnChanges":true},"autoRenewPeriod":{"type":"integer","description":"Period of dataCenter-1 auto renew, if auto renew is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, one of `1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 60`, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= Subscription. Unit: month.\n","willReplaceOnChanges":true},"clusterName":{"type":"string","description":"Cassandra cluster name. Length must be 2~128 characters long. Only Chinese characters, English letters, numbers, period `.`, underline `_`, or dash `-` are permitted.\n"},"dataCenterName":{"type":"string","description":"Cassandra dataCenter-1 name. Length must be 2~128 characters long. Only Chinese characters, English letters, numbers, period `.`, underline `_`, or dash `-` are permitted.\n"},"diskSize":{"type":"integer","description":"User-defined Cassandra dataCenter-1 one node's storage space.Unit: GB. Value range:\n- Custom storage space; value range: [160, 2000].\n- 80-GB increments.\n"},"diskType":{"type":"string","description":"The disk type of Cassandra dataCenter-1. Valid values are \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\" localDisk \" pulumi-lang-dotnet=\" LocalDisk \" pulumi-lang-go=\" localDisk \" pulumi-lang-python=\" local_disk \" pulumi-lang-yaml=\" localDisk \" pulumi-lang-java=\" localDisk \"\u003e local_disk \u003c/span\u003esize is fixed.\n","willReplaceOnChanges":true},"enablePublic":{"type":"boolean"},"instanceType":{"type":"string","description":"Instance specification. See [Instance specifications](https://help.aliyun.com/document_detail/157445.html). Or you can call describeInstanceType api.\n"},"ipWhite":{"type":"string","description":"Set the instance's IP whitelist in VPC network.\n"},"maintainEndTime":{"type":"string","description":"The end time of the operation and maintenance time period of the cluster, in the format of HH:mmZ (UTC time).\n"},"maintainStartTime":{"type":"string","description":"The start time of the operation and maintenance time period of the cluster, in the format of HH:mmZ (UTC time).\n"},"majorVersion":{"type":"string","description":"Cassandra major version. Now only support version `3.11`.\n","willReplaceOnChanges":true},"nodeCount":{"type":"integer","description":"The node count of Cassandra dataCenter-1 default to 2.\n"},"password":{"type":"string","secret":true},"payType":{"type":"string","description":"The pay type of Cassandra dataCenter-1. Valid values are `Subscription`, `PayAsYouGo`,System default to `PayAsYouGo`.\n","willReplaceOnChanges":true},"period":{"type":"integer"},"periodUnit":{"type":"string","willReplaceOnChanges":true},"publicPoints":{"type":"array","items":{"type":"string"}},"securityGroups":{"type":"array","items":{"type":"string"},"description":"A list of security group ids to associate with.\n\n\u003e **NOTE:** Now cluster_name,data_center_name,instance_type,node_count,disk_type,disk_size,maintain_start_time,maintain_end_time,tags,ip_white,security_groups can be change. The others(auto_renew,\u003cspan pulumi-lang-nodejs=\" autoRenewPeriod \" pulumi-lang-dotnet=\" AutoRenewPeriod \" pulumi-lang-go=\" autoRenewPeriod \" pulumi-lang-python=\" auto_renew_period \" pulumi-lang-yaml=\" autoRenewPeriod \" pulumi-lang-java=\" autoRenewPeriod \"\u003e auto_renew_period \u003c/span\u003eand so on) will be supported in the furture.\n"},"status":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eof dataCenter-1, can not empty.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the Cassandra cluster. If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis not empty, this\u003cspan pulumi-lang-nodejs=\" zoneId \" pulumi-lang-dotnet=\" ZoneId \" pulumi-lang-go=\" zoneId \" pulumi-lang-python=\" zone_id \" pulumi-lang-yaml=\" zoneId \" pulumi-lang-java=\" zoneId \"\u003e zone_id \u003c/span\u003ecan be \"\" or consistent.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cassandra/dataCenter:DataCenter":{"description":"Provides a Cassandra dataCenter resource supports replica set dataCenters only. The Cassandra provides stable, reliable, and automatic scalable database services. \nIt offers a full range of database solutions, such as disaster recovery, backup, recovery, monitoring, and alarms.\nYou can see detail product introduction [here](https://www.alibabacloud.com/help/product/49055.htm).\n\n\u003e **NOTE:** Available since v1.88.0.\n\n\u003e **NOTE:**  Create a cassandra dataCenter need a clusterId,so need create a cassandra cluster first.\n\n\u003e **NOTE:**  The following regions support create Vpc network Cassandra cluster.\nThe official website mark  more regions. Or you can call [DescribeRegions](https://help.aliyun.com/document_detail/157540.html).\n\n\u003e **NOTE:**  Create Cassandra dataCenter or change dataCenter type and storage would cost 30 minutes. Please make full preparation.\n\n\u003e **DEPRECATED:**  This resource has been [deprecated](https://www.alibabacloud.com/help/en/apsaradb-for-cassandra/latest/cassandra-delisting-notice) from version `1.220.0`.\n\n## Example Usage\n\n### Create a cassandra dataCenter\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.cassandra.Cluster(\"default\", {\n    clusterName: \"cassandra-cluster-name-tf\",\n    dataCenterName: \"dc-1\",\n    autoRenew: false,\n    instanceType: \"cassandra.c.large\",\n    majorVersion: \"3.11\",\n    nodeCount: 2,\n    payType: \"PayAsYouGo\",\n    vswitchId: \"vsw-xxxx1\",\n    diskSize: 160,\n    diskType: \"cloud_ssd\",\n    maintainStartTime: \"18:00Z\",\n    maintainEndTime: \"20:00Z\",\n    ipWhite: \"127.0.0.1\",\n});\nconst defaultDataCenter = new alicloud.cassandra.DataCenter(\"default\", {\n    clusterId: _default.id,\n    dataCenterName: \"dc-2\",\n    autoRenew: false,\n    instanceType: \"cassandra.c.large\",\n    nodeCount: 2,\n    payType: \"PayAsYouGo\",\n    vswitchId: \"vsw-xxxx2\",\n    diskSize: 160,\n    diskType: \"cloud_ssd\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cassandra.Cluster(\"default\",\n    cluster_name=\"cassandra-cluster-name-tf\",\n    data_center_name=\"dc-1\",\n    auto_renew=False,\n    instance_type=\"cassandra.c.large\",\n    major_version=\"3.11\",\n    node_count=2,\n    pay_type=\"PayAsYouGo\",\n    vswitch_id=\"vsw-xxxx1\",\n    disk_size=160,\n    disk_type=\"cloud_ssd\",\n    maintain_start_time=\"18:00Z\",\n    maintain_end_time=\"20:00Z\",\n    ip_white=\"127.0.0.1\")\ndefault_data_center = alicloud.cassandra.DataCenter(\"default\",\n    cluster_id=default.id,\n    data_center_name=\"dc-2\",\n    auto_renew=False,\n    instance_type=\"cassandra.c.large\",\n    node_count=2,\n    pay_type=\"PayAsYouGo\",\n    vswitch_id=\"vsw-xxxx2\",\n    disk_size=160,\n    disk_type=\"cloud_ssd\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Cassandra.Cluster(\"default\", new()\n    {\n        ClusterName = \"cassandra-cluster-name-tf\",\n        DataCenterName = \"dc-1\",\n        AutoRenew = false,\n        InstanceType = \"cassandra.c.large\",\n        MajorVersion = \"3.11\",\n        NodeCount = 2,\n        PayType = \"PayAsYouGo\",\n        VswitchId = \"vsw-xxxx1\",\n        DiskSize = 160,\n        DiskType = \"cloud_ssd\",\n        MaintainStartTime = \"18:00Z\",\n        MaintainEndTime = \"20:00Z\",\n        IpWhite = \"127.0.0.1\",\n    });\n\n    var defaultDataCenter = new AliCloud.Cassandra.DataCenter(\"default\", new()\n    {\n        ClusterId = @default.Id,\n        DataCenterName = \"dc-2\",\n        AutoRenew = false,\n        InstanceType = \"cassandra.c.large\",\n        NodeCount = 2,\n        PayType = \"PayAsYouGo\",\n        VswitchId = \"vsw-xxxx2\",\n        DiskSize = 160,\n        DiskType = \"cloud_ssd\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cassandra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := cassandra.NewCluster(ctx, \"default\", \u0026cassandra.ClusterArgs{\n\t\t\tClusterName:       pulumi.String(\"cassandra-cluster-name-tf\"),\n\t\t\tDataCenterName:    pulumi.String(\"dc-1\"),\n\t\t\tAutoRenew:         pulumi.Bool(false),\n\t\t\tInstanceType:      pulumi.String(\"cassandra.c.large\"),\n\t\t\tMajorVersion:      pulumi.String(\"3.11\"),\n\t\t\tNodeCount:         pulumi.Int(2),\n\t\t\tPayType:           pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:         pulumi.String(\"vsw-xxxx1\"),\n\t\t\tDiskSize:          pulumi.Int(160),\n\t\t\tDiskType:          pulumi.String(\"cloud_ssd\"),\n\t\t\tMaintainStartTime: pulumi.String(\"18:00Z\"),\n\t\t\tMaintainEndTime:   pulumi.String(\"20:00Z\"),\n\t\t\tIpWhite:           pulumi.String(\"127.0.0.1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cassandra.NewDataCenter(ctx, \"default\", \u0026cassandra.DataCenterArgs{\n\t\t\tClusterId:      _default.ID(),\n\t\t\tDataCenterName: pulumi.String(\"dc-2\"),\n\t\t\tAutoRenew:      pulumi.Bool(false),\n\t\t\tInstanceType:   pulumi.String(\"cassandra.c.large\"),\n\t\t\tNodeCount:      pulumi.Int(2),\n\t\t\tPayType:        pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:      pulumi.String(\"vsw-xxxx2\"),\n\t\t\tDiskSize:       pulumi.Int(160),\n\t\t\tDiskType:       pulumi.String(\"cloud_ssd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cassandra.Cluster;\nimport com.pulumi.alicloud.cassandra.ClusterArgs;\nimport com.pulumi.alicloud.cassandra.DataCenter;\nimport com.pulumi.alicloud.cassandra.DataCenterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Cluster(\"default\", ClusterArgs.builder()\n            .clusterName(\"cassandra-cluster-name-tf\")\n            .dataCenterName(\"dc-1\")\n            .autoRenew(false)\n            .instanceType(\"cassandra.c.large\")\n            .majorVersion(\"3.11\")\n            .nodeCount(2)\n            .payType(\"PayAsYouGo\")\n            .vswitchId(\"vsw-xxxx1\")\n            .diskSize(160)\n            .diskType(\"cloud_ssd\")\n            .maintainStartTime(\"18:00Z\")\n            .maintainEndTime(\"20:00Z\")\n            .ipWhite(\"127.0.0.1\")\n            .build());\n\n        var defaultDataCenter = new DataCenter(\"defaultDataCenter\", DataCenterArgs.builder()\n            .clusterId(default_.id())\n            .dataCenterName(\"dc-2\")\n            .autoRenew(false)\n            .instanceType(\"cassandra.c.large\")\n            .nodeCount(2)\n            .payType(\"PayAsYouGo\")\n            .vswitchId(\"vsw-xxxx2\")\n            .diskSize(160)\n            .diskType(\"cloud_ssd\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:cassandra:Cluster\n    properties:\n      clusterName: cassandra-cluster-name-tf\n      dataCenterName: dc-1\n      autoRenew: 'false'\n      instanceType: cassandra.c.large\n      majorVersion: '3.11'\n      nodeCount: '2'\n      payType: PayAsYouGo\n      vswitchId: vsw-xxxx1\n      diskSize: '160'\n      diskType: cloud_ssd\n      maintainStartTime: 18:00Z\n      maintainEndTime: 20:00Z\n      ipWhite: 127.0.0.1\n  defaultDataCenter:\n    type: alicloud:cassandra:DataCenter\n    name: default\n    properties:\n      clusterId: ${default.id}\n      dataCenterName: dc-2\n      autoRenew: 'false'\n      instanceType: cassandra.c.large\n      nodeCount: '2'\n      payType: PayAsYouGo\n      vswitchId: vsw-xxxx2\n      diskSize: '160'\n      diskType: cloud_ssd\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nThis is a example for class netType dataCenter. You can find more detail with the examples/cassandra_data_center dir.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nIf you need full function, please import Cassandra cluster first.\nCassandra dataCenter can be imported using the dcId:clusterId, e.g.\n\n```sh\n$ pulumi import alicloud:cassandra/dataCenter:DataCenter dc_2 cn-shenxxxx-x:cds-wz933ryoaurxxxxx\n```\n\n","properties":{"autoRenew":{"type":"boolean","description":"Auto renew of dataCenter-2,\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. System default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= Subscription.\n"},"autoRenewPeriod":{"type":"integer","description":"Period of dataCenter-2 auto renew, if auto renew is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, one of `1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 60`, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= Subscription. Unit: month.\n"},"clusterId":{"type":"string","description":"Cassandra cluster id of dataCenter-2 belongs to.\n"},"dataCenterId":{"type":"string"},"dataCenterName":{"type":"string","description":"Cassandra dataCenter-2 name. Length must be 2~128 characters long. Only Chinese characters, English letters, numbers, period `.`, underline `_`, or dash `-` are permitted.\n"},"diskSize":{"type":"integer","description":"User-defined Cassandra dataCenter one core node's storage space.Unit: GB. Value range:\n- Custom storage space; value range: [160, 2000].\n- 80-GB increments.\n"},"diskType":{"type":"string","description":"The disk type of Cassandra dataCenter-2. Valid values are \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\" localDisk \" pulumi-lang-dotnet=\" LocalDisk \" pulumi-lang-go=\" localDisk \" pulumi-lang-python=\" local_disk \" pulumi-lang-yaml=\" localDisk \" pulumi-lang-java=\" localDisk \"\u003e local_disk \u003c/span\u003esize is fixed.\n"},"enablePublic":{"type":"boolean"},"instanceType":{"type":"string","description":"Instance specification. See [Instance specifications](https://help.aliyun.com/document_detail/157445.html). Or you can call describeInstanceType api.\n"},"nodeCount":{"type":"integer","description":"The node count of Cassandra dataCenter-2, default to 2.\n"},"payType":{"type":"string","description":"The pay type of Cassandra dataCenter-2. Valid values are `Subscription`, `PayAsYouGo`. System default to `PayAsYouGo`.\n"},"period":{"type":"integer"},"periodUnit":{"type":"string"},"publicPoints":{"type":"array","items":{"type":"string"}},"status":{"type":"string"},"vswitchId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eof dataCenter-2, mast different of vswitch_id(dc-1), can not empty.\n\n\u003e **NOTE:** Now data_center_name,instance_type,node_count,disk_type,disk_size can be change. The others(auto_renew,\u003cspan pulumi-lang-nodejs=\" autoRenewPeriod \" pulumi-lang-dotnet=\" AutoRenewPeriod \" pulumi-lang-go=\" autoRenewPeriod \" pulumi-lang-python=\" auto_renew_period \" pulumi-lang-yaml=\" autoRenewPeriod \" pulumi-lang-java=\" autoRenewPeriod \"\u003e auto_renew_period \u003c/span\u003eand so on) will be supported in the furture.\n"},"zoneId":{"type":"string","description":"The Zone to launch the Cassandra dataCenter-2. If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis not empty, this\u003cspan pulumi-lang-nodejs=\" zoneId \" pulumi-lang-dotnet=\" ZoneId \" pulumi-lang-go=\" zoneId \" pulumi-lang-python=\" zone_id \" pulumi-lang-yaml=\" zoneId \" pulumi-lang-java=\" zoneId \"\u003e zone_id \u003c/span\u003ecan be \"\" or consistent.\n"}},"required":["clusterId","dataCenterId","instanceType","nodeCount","payType","publicPoints","status","vswitchId","zoneId"],"inputProperties":{"autoRenew":{"type":"boolean","description":"Auto renew of dataCenter-2,\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. System default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= Subscription.\n","willReplaceOnChanges":true},"autoRenewPeriod":{"type":"integer","description":"Period of dataCenter-2 auto renew, if auto renew is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, one of `1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 60`, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= Subscription. Unit: month.\n","willReplaceOnChanges":true},"clusterId":{"type":"string","description":"Cassandra cluster id of dataCenter-2 belongs to.\n","willReplaceOnChanges":true},"dataCenterName":{"type":"string","description":"Cassandra dataCenter-2 name. Length must be 2~128 characters long. Only Chinese characters, English letters, numbers, period `.`, underline `_`, or dash `-` are permitted.\n"},"diskSize":{"type":"integer","description":"User-defined Cassandra dataCenter one core node's storage space.Unit: GB. Value range:\n- Custom storage space; value range: [160, 2000].\n- 80-GB increments.\n"},"diskType":{"type":"string","description":"The disk type of Cassandra dataCenter-2. Valid values are \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\" localDisk \" pulumi-lang-dotnet=\" LocalDisk \" pulumi-lang-go=\" localDisk \" pulumi-lang-python=\" local_disk \" pulumi-lang-yaml=\" localDisk \" pulumi-lang-java=\" localDisk \"\u003e local_disk \u003c/span\u003esize is fixed.\n","willReplaceOnChanges":true},"enablePublic":{"type":"boolean"},"instanceType":{"type":"string","description":"Instance specification. See [Instance specifications](https://help.aliyun.com/document_detail/157445.html). Or you can call describeInstanceType api.\n"},"nodeCount":{"type":"integer","description":"The node count of Cassandra dataCenter-2, default to 2.\n"},"payType":{"type":"string","description":"The pay type of Cassandra dataCenter-2. Valid values are `Subscription`, `PayAsYouGo`. System default to `PayAsYouGo`.\n","willReplaceOnChanges":true},"period":{"type":"integer","willReplaceOnChanges":true},"periodUnit":{"type":"string","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eof dataCenter-2, mast different of vswitch_id(dc-1), can not empty.\n\n\u003e **NOTE:** Now data_center_name,instance_type,node_count,disk_type,disk_size can be change. The others(auto_renew,\u003cspan pulumi-lang-nodejs=\" autoRenewPeriod \" pulumi-lang-dotnet=\" AutoRenewPeriod \" pulumi-lang-go=\" autoRenewPeriod \" pulumi-lang-python=\" auto_renew_period \" pulumi-lang-yaml=\" autoRenewPeriod \" pulumi-lang-java=\" autoRenewPeriod \"\u003e auto_renew_period \u003c/span\u003eand so on) will be supported in the furture.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the Cassandra dataCenter-2. If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis not empty, this\u003cspan pulumi-lang-nodejs=\" zoneId \" pulumi-lang-dotnet=\" ZoneId \" pulumi-lang-go=\" zoneId \" pulumi-lang-python=\" zone_id \" pulumi-lang-yaml=\" zoneId \" pulumi-lang-java=\" zoneId \"\u003e zone_id \u003c/span\u003ecan be \"\" or consistent.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","instanceType","nodeCount","payType","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering DataCenter resources.\n","properties":{"autoRenew":{"type":"boolean","description":"Auto renew of dataCenter-2,\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. System default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= Subscription.\n","willReplaceOnChanges":true},"autoRenewPeriod":{"type":"integer","description":"Period of dataCenter-2 auto renew, if auto renew is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, one of `1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 60`, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= Subscription. Unit: month.\n","willReplaceOnChanges":true},"clusterId":{"type":"string","description":"Cassandra cluster id of dataCenter-2 belongs to.\n","willReplaceOnChanges":true},"dataCenterId":{"type":"string"},"dataCenterName":{"type":"string","description":"Cassandra dataCenter-2 name. Length must be 2~128 characters long. Only Chinese characters, English letters, numbers, period `.`, underline `_`, or dash `-` are permitted.\n"},"diskSize":{"type":"integer","description":"User-defined Cassandra dataCenter one core node's storage space.Unit: GB. Value range:\n- Custom storage space; value range: [160, 2000].\n- 80-GB increments.\n"},"diskType":{"type":"string","description":"The disk type of Cassandra dataCenter-2. Valid values are \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\" localDisk \" pulumi-lang-dotnet=\" LocalDisk \" pulumi-lang-go=\" localDisk \" pulumi-lang-python=\" local_disk \" pulumi-lang-yaml=\" localDisk \" pulumi-lang-java=\" localDisk \"\u003e local_disk \u003c/span\u003esize is fixed.\n","willReplaceOnChanges":true},"enablePublic":{"type":"boolean"},"instanceType":{"type":"string","description":"Instance specification. See [Instance specifications](https://help.aliyun.com/document_detail/157445.html). Or you can call describeInstanceType api.\n"},"nodeCount":{"type":"integer","description":"The node count of Cassandra dataCenter-2, default to 2.\n"},"payType":{"type":"string","description":"The pay type of Cassandra dataCenter-2. Valid values are `Subscription`, `PayAsYouGo`. System default to `PayAsYouGo`.\n","willReplaceOnChanges":true},"period":{"type":"integer","willReplaceOnChanges":true},"periodUnit":{"type":"string","willReplaceOnChanges":true},"publicPoints":{"type":"array","items":{"type":"string"}},"status":{"type":"string"},"vswitchId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eof dataCenter-2, mast different of vswitch_id(dc-1), can not empty.\n\n\u003e **NOTE:** Now data_center_name,instance_type,node_count,disk_type,disk_size can be change. The others(auto_renew,\u003cspan pulumi-lang-nodejs=\" autoRenewPeriod \" pulumi-lang-dotnet=\" AutoRenewPeriod \" pulumi-lang-go=\" autoRenewPeriod \" pulumi-lang-python=\" auto_renew_period \" pulumi-lang-yaml=\" autoRenewPeriod \" pulumi-lang-java=\" autoRenewPeriod \"\u003e auto_renew_period \u003c/span\u003eand so on) will be supported in the furture.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the Cassandra dataCenter-2. If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis not empty, this\u003cspan pulumi-lang-nodejs=\" zoneId \" pulumi-lang-dotnet=\" ZoneId \" pulumi-lang-go=\" zoneId \" pulumi-lang-python=\" zone_id \" pulumi-lang-yaml=\" zoneId \" pulumi-lang-java=\" zoneId \"\u003e zone_id \u003c/span\u003ecan be \"\" or consistent.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cddc/dedicatedHost:DedicatedHost":{"description":"Provides a ApsaraDB for MyBase Dedicated Host resource.\n\nFor information about ApsaraDB for MyBase Dedicated Host and how to use it, see [What is Dedicated Host](https://www.alibabacloud.com/help/en/apsaradb-for-mybase/latest/creatededicatedhost).\n\n\u003e **NOTE:** Available since v1.147.0.\n\n\u003e **DEPRECATED:**  This resource has been [deprecated](https://www.alibabacloud.com/help/en/apsaradb-for-mybase/latest/notice-stop-selling-mybase-hosted-instances-from-august-31-2023) from version `1.225.1`. \n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.cddc.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n});\nconst defaultDedicatedHostGroup = new alicloud.cddc.DedicatedHostGroup(\"default\", {\n    engine: \"MySQL\",\n    vpcId: defaultNetwork.id,\n    cpuAllocationRatio: 101,\n    memAllocationRatio: 50,\n    diskAllocationRatio: 200,\n    allocationPolicy: \"Evenly\",\n    hostReplacePolicy: \"Manual\",\n    dedicatedHostGroupDesc: name,\n});\nconst defaultGetHostEcsLevelInfos = _default.then(_default =\u003e alicloud.cddc.getHostEcsLevelInfos({\n    dbType: \"mysql\",\n    zoneId: _default.ids?.[0],\n    storageType: \"cloud_essd\",\n}));\nconst defaultDedicatedHost = new alicloud.cddc.DedicatedHost(\"default\", {\n    hostName: name,\n    dedicatedHostGroupId: defaultDedicatedHostGroup.id,\n    hostClass: defaultGetHostEcsLevelInfos.then(defaultGetHostEcsLevelInfos =\u003e defaultGetHostEcsLevelInfos.infos?.[0]?.resClassCode),\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n    vswitchId: defaultSwitch.id,\n    paymentType: \"Subscription\",\n    tags: {\n        Created: \"TF\",\n        For: \"CDDC_DEDICATED\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.cddc.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.ids[0])\ndefault_dedicated_host_group = alicloud.cddc.DedicatedHostGroup(\"default\",\n    engine=\"MySQL\",\n    vpc_id=default_network.id,\n    cpu_allocation_ratio=101,\n    mem_allocation_ratio=50,\n    disk_allocation_ratio=200,\n    allocation_policy=\"Evenly\",\n    host_replace_policy=\"Manual\",\n    dedicated_host_group_desc=name)\ndefault_get_host_ecs_level_infos = alicloud.cddc.get_host_ecs_level_infos(db_type=\"mysql\",\n    zone_id=default.ids[0],\n    storage_type=\"cloud_essd\")\ndefault_dedicated_host = alicloud.cddc.DedicatedHost(\"default\",\n    host_name=name,\n    dedicated_host_group_id=default_dedicated_host_group.id,\n    host_class=default_get_host_ecs_level_infos.infos[0].res_class_code,\n    zone_id=default.ids[0],\n    vswitch_id=default_switch.id,\n    payment_type=\"Subscription\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"CDDC_DEDICATED\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Cddc.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n    });\n\n    var defaultDedicatedHostGroup = new AliCloud.Cddc.DedicatedHostGroup(\"default\", new()\n    {\n        Engine = \"MySQL\",\n        VpcId = defaultNetwork.Id,\n        CpuAllocationRatio = 101,\n        MemAllocationRatio = 50,\n        DiskAllocationRatio = 200,\n        AllocationPolicy = \"Evenly\",\n        HostReplacePolicy = \"Manual\",\n        DedicatedHostGroupDesc = name,\n    });\n\n    var defaultGetHostEcsLevelInfos = AliCloud.Cddc.GetHostEcsLevelInfos.Invoke(new()\n    {\n        DbType = \"mysql\",\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n        StorageType = \"cloud_essd\",\n    });\n\n    var defaultDedicatedHost = new AliCloud.Cddc.DedicatedHost(\"default\", new()\n    {\n        HostName = name,\n        DedicatedHostGroupId = defaultDedicatedHostGroup.Id,\n        HostClass = defaultGetHostEcsLevelInfos.Apply(getHostEcsLevelInfosResult =\u003e getHostEcsLevelInfosResult.Infos[0]?.ResClassCode),\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n        VswitchId = defaultSwitch.Id,\n        PaymentType = \"Subscription\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"CDDC_DEDICATED\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cddc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cddc.GetZones(ctx, \u0026cddc.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDedicatedHostGroup, err := cddc.NewDedicatedHostGroup(ctx, \"default\", \u0026cddc.DedicatedHostGroupArgs{\n\t\t\tEngine:                 pulumi.String(\"MySQL\"),\n\t\t\tVpcId:                  defaultNetwork.ID(),\n\t\t\tCpuAllocationRatio:     pulumi.Int(101),\n\t\t\tMemAllocationRatio:     pulumi.Int(50),\n\t\t\tDiskAllocationRatio:    pulumi.Int(200),\n\t\t\tAllocationPolicy:       pulumi.String(\"Evenly\"),\n\t\t\tHostReplacePolicy:      pulumi.String(\"Manual\"),\n\t\t\tDedicatedHostGroupDesc: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetHostEcsLevelInfos, err := cddc.GetHostEcsLevelInfos(ctx, \u0026cddc.GetHostEcsLevelInfosArgs{\n\t\t\tDbType:      \"mysql\",\n\t\t\tZoneId:      _default.Ids[0],\n\t\t\tStorageType: \"cloud_essd\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cddc.NewDedicatedHost(ctx, \"default\", \u0026cddc.DedicatedHostArgs{\n\t\t\tHostName:             pulumi.String(name),\n\t\t\tDedicatedHostGroupId: defaultDedicatedHostGroup.ID(),\n\t\t\tHostClass:            pulumi.String(defaultGetHostEcsLevelInfos.Infos[0].ResClassCode),\n\t\t\tZoneId:               pulumi.String(_default.Ids[0]),\n\t\t\tVswitchId:            defaultSwitch.ID(),\n\t\t\tPaymentType:          pulumi.String(\"Subscription\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"CDDC_DEDICATED\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cddc.CddcFunctions;\nimport com.pulumi.alicloud.cddc.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cddc.DedicatedHostGroup;\nimport com.pulumi.alicloud.cddc.DedicatedHostGroupArgs;\nimport com.pulumi.alicloud.cddc.inputs.GetHostEcsLevelInfosArgs;\nimport com.pulumi.alicloud.cddc.DedicatedHost;\nimport com.pulumi.alicloud.cddc.DedicatedHostArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = CddcFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.ids()[0])\n            .build());\n\n        var defaultDedicatedHostGroup = new DedicatedHostGroup(\"defaultDedicatedHostGroup\", DedicatedHostGroupArgs.builder()\n            .engine(\"MySQL\")\n            .vpcId(defaultNetwork.id())\n            .cpuAllocationRatio(101)\n            .memAllocationRatio(50)\n            .diskAllocationRatio(200)\n            .allocationPolicy(\"Evenly\")\n            .hostReplacePolicy(\"Manual\")\n            .dedicatedHostGroupDesc(name)\n            .build());\n\n        final var defaultGetHostEcsLevelInfos = CddcFunctions.getHostEcsLevelInfos(GetHostEcsLevelInfosArgs.builder()\n            .dbType(\"mysql\")\n            .zoneId(default_.ids()[0])\n            .storageType(\"cloud_essd\")\n            .build());\n\n        var defaultDedicatedHost = new DedicatedHost(\"defaultDedicatedHost\", DedicatedHostArgs.builder()\n            .hostName(name)\n            .dedicatedHostGroupId(defaultDedicatedHostGroup.id())\n            .hostClass(defaultGetHostEcsLevelInfos.infos()[0].resClassCode())\n            .zoneId(default_.ids()[0])\n            .vswitchId(defaultSwitch.id())\n            .paymentType(\"Subscription\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"CDDC_DEDICATED\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.ids[0]}\n  defaultDedicatedHostGroup:\n    type: alicloud:cddc:DedicatedHostGroup\n    name: default\n    properties:\n      engine: MySQL\n      vpcId: ${defaultNetwork.id}\n      cpuAllocationRatio: 101\n      memAllocationRatio: 50\n      diskAllocationRatio: 200\n      allocationPolicy: Evenly\n      hostReplacePolicy: Manual\n      dedicatedHostGroupDesc: ${name}\n  defaultDedicatedHost:\n    type: alicloud:cddc:DedicatedHost\n    name: default\n    properties:\n      hostName: ${name}\n      dedicatedHostGroupId: ${defaultDedicatedHostGroup.id}\n      hostClass: ${defaultGetHostEcsLevelInfos.infos[0].resClassCode}\n      zoneId: ${default.ids[0]}\n      vswitchId: ${defaultSwitch.id}\n      paymentType: Subscription\n      tags:\n        Created: TF\n        For: CDDC_DEDICATED\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cddc:getZones\n      arguments: {}\n  defaultGetHostEcsLevelInfos:\n    fn::invoke:\n      function: alicloud:cddc:getHostEcsLevelInfos\n      arguments:\n        dbType: mysql\n        zoneId: ${default.ids[0]}\n        storageType: cloud_essd\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.cddc.DedicatedHost`\" pulumi-lang-dotnet=\"`alicloud.cddc.DedicatedHost`\" pulumi-lang-go=\"`cddc.DedicatedHost`\" pulumi-lang-python=\"`cddc.DedicatedHost`\" pulumi-lang-yaml=\"`alicloud.cddc.DedicatedHost`\" pulumi-lang-java=\"`alicloud.cddc.DedicatedHost`\"\u003e`alicloud.cddc.DedicatedHost`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.cddc.DedicatedHost`\" pulumi-lang-dotnet=\"`alicloud.cddc.DedicatedHost`\" pulumi-lang-go=\"`cddc.DedicatedHost`\" pulumi-lang-python=\"`cddc.DedicatedHost`\" pulumi-lang-yaml=\"`alicloud.cddc.DedicatedHost`\" pulumi-lang-java=\"`alicloud.cddc.DedicatedHost`\"\u003e`alicloud.cddc.DedicatedHost`\u003c/span\u003e resource allows you to manage \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"Subscription\"` host instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Host Instance.\nYou can resume managing the subscription host instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApsaraDB for MyBase Dedicated Host can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cddc/dedicatedHost:DedicatedHost example \u003cdedicated_host_group_id\u003e:\u003cdedicated_host_id\u003e\n```\n\n","properties":{"allocationStatus":{"type":"string","description":"Specifies whether instances can be created on the host. Valid values: `Allocatable` or `Suspended`. `Allocatable`: Instances can be created on the host. `Suspended`: Instances cannot be created on the host.\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to enable the auto-renewal feature.\n"},"dedicatedHostGroupId":{"type":"string","description":"The ID of the dedicated cluster.\n"},"dedicatedHostId":{"type":"string","description":"The ID of the host.\n"},"hostClass":{"type":"string","description":"The instance type of the host. For more information about the supported instance types of hosts, see [Host specification details](https://www.alibabacloud.com/help/doc-detail/206343.htm).\n"},"hostName":{"type":"string","description":"The name of the host. The name must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters in length and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter.\n"},"imageCategory":{"type":"string","description":"Host Image Category. Valid values: `WindowsWithMssqlEntAlwaysonLicense`, `WindowsWithMssqlStdLicense`, `WindowsWithMssqlEntLicense`, `WindowsWithMssqlWebLicense`, `AliLinux`.\n"},"osPassword":{"type":"string","description":"Host password. **NOTE:** The creation of a host password is supported only when the database type is `Tair-PMem`.\n","secret":true},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`.\n"},"period":{"type":"string","description":"The unit of the subscription duration. Valid values: `Year`, `Month`, `Week`.\n"},"status":{"type":"string","description":"The state of the host. Valid values: `0:` The host is being created. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: The host is running. \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: The host is faulty. \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: The host is ready for deactivation. \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e: The host is being maintained. \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e: The host is deactivated. \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e: The host is restarting. \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e: The host is locked.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"usedTime":{"type":"integer","description":"The subscription duration of the host. Valid values: \n* If the Period parameter is set to `Year`, the value of the UsedTime parameter ranges from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n* If the Period parameter is set to `Month`, the value of the UsedTime parameter ranges from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n* If the Period parameter is set to `Week`, the value of the UsedTime parameter ranges from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which the host is connected.\n"},"zoneId":{"type":"string","description":"The ID of the zone.\n"}},"required":["allocationStatus","dedicatedHostGroupId","dedicatedHostId","hostClass","hostName","paymentType","status","vswitchId","zoneId"],"inputProperties":{"allocationStatus":{"type":"string","description":"Specifies whether instances can be created on the host. Valid values: `Allocatable` or `Suspended`. `Allocatable`: Instances can be created on the host. `Suspended`: Instances cannot be created on the host.\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to enable the auto-renewal feature.\n"},"dedicatedHostGroupId":{"type":"string","description":"The ID of the dedicated cluster.\n","willReplaceOnChanges":true},"hostClass":{"type":"string","description":"The instance type of the host. For more information about the supported instance types of hosts, see [Host specification details](https://www.alibabacloud.com/help/doc-detail/206343.htm).\n"},"hostName":{"type":"string","description":"The name of the host. The name must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters in length and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter.\n"},"imageCategory":{"type":"string","description":"Host Image Category. Valid values: `WindowsWithMssqlEntAlwaysonLicense`, `WindowsWithMssqlStdLicense`, `WindowsWithMssqlEntLicense`, `WindowsWithMssqlWebLicense`, `AliLinux`.\n"},"osPassword":{"type":"string","description":"Host password. **NOTE:** The creation of a host password is supported only when the database type is `Tair-PMem`.\n","secret":true},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`.\n"},"period":{"type":"string","description":"The unit of the subscription duration. Valid values: `Year`, `Month`, `Week`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"usedTime":{"type":"integer","description":"The subscription duration of the host. Valid values: \n* If the Period parameter is set to `Year`, the value of the UsedTime parameter ranges from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n* If the Period parameter is set to `Month`, the value of the UsedTime parameter ranges from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n* If the Period parameter is set to `Week`, the value of the UsedTime parameter ranges from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which the host is connected.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The ID of the zone.\n","willReplaceOnChanges":true}},"requiredInputs":["dedicatedHostGroupId","hostClass","paymentType","vswitchId","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering DedicatedHost resources.\n","properties":{"allocationStatus":{"type":"string","description":"Specifies whether instances can be created on the host. Valid values: `Allocatable` or `Suspended`. `Allocatable`: Instances can be created on the host. `Suspended`: Instances cannot be created on the host.\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to enable the auto-renewal feature.\n"},"dedicatedHostGroupId":{"type":"string","description":"The ID of the dedicated cluster.\n","willReplaceOnChanges":true},"dedicatedHostId":{"type":"string","description":"The ID of the host.\n"},"hostClass":{"type":"string","description":"The instance type of the host. For more information about the supported instance types of hosts, see [Host specification details](https://www.alibabacloud.com/help/doc-detail/206343.htm).\n"},"hostName":{"type":"string","description":"The name of the host. The name must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters in length and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter.\n"},"imageCategory":{"type":"string","description":"Host Image Category. Valid values: `WindowsWithMssqlEntAlwaysonLicense`, `WindowsWithMssqlStdLicense`, `WindowsWithMssqlEntLicense`, `WindowsWithMssqlWebLicense`, `AliLinux`.\n"},"osPassword":{"type":"string","description":"Host password. **NOTE:** The creation of a host password is supported only when the database type is `Tair-PMem`.\n","secret":true},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`.\n"},"period":{"type":"string","description":"The unit of the subscription duration. Valid values: `Year`, `Month`, `Week`.\n"},"status":{"type":"string","description":"The state of the host. Valid values: `0:` The host is being created. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: The host is running. \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: The host is faulty. \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: The host is ready for deactivation. \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e: The host is being maintained. \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e: The host is deactivated. \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e: The host is restarting. \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e: The host is locked.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"usedTime":{"type":"integer","description":"The subscription duration of the host. Valid values: \n* If the Period parameter is set to `Year`, the value of the UsedTime parameter ranges from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n* If the Period parameter is set to `Month`, the value of the UsedTime parameter ranges from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n* If the Period parameter is set to `Week`, the value of the UsedTime parameter ranges from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which the host is connected.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The ID of the zone.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cddc/dedicatedHostAccount:DedicatedHostAccount":{"description":"Provides a ApsaraDB for MyBase Dedicated Host Account resource.\n\nFor information about ApsaraDB for MyBase Dedicated Host Account and how to use it, see [What is Dedicated Host Account](https://www.alibabacloud.com/help/en/apsaradb-for-mybase/latest/creatededicatedhostaccount).\n\n\u003e **NOTE:** Available since v1.148.0.\n\n\u003e **NOTE:** Each Dedicated host can have only one account. Before you create an account for a host, make sure that the existing account is deleted.\n\n\u003e **DEPRECATED:**  This resource has been [deprecated](https://www.alibabacloud.com/help/en/apsaradb-for-mybase/latest/notice-stop-selling-mybase-hosted-instances-from-august-31-2023) from version `1.225.1`. \n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.cddc.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n});\nconst defaultDedicatedHostGroup = new alicloud.cddc.DedicatedHostGroup(\"default\", {\n    engine: \"MySQL\",\n    vpcId: defaultNetwork.id,\n    cpuAllocationRatio: 101,\n    memAllocationRatio: 50,\n    diskAllocationRatio: 200,\n    allocationPolicy: \"Evenly\",\n    hostReplacePolicy: \"Manual\",\n    dedicatedHostGroupDesc: name,\n    openPermission: true,\n});\nconst defaultGetHostEcsLevelInfos = _default.then(_default =\u003e alicloud.cddc.getHostEcsLevelInfos({\n    dbType: \"mysql\",\n    zoneId: _default.ids?.[0],\n    storageType: \"cloud_essd\",\n}));\nconst defaultDedicatedHost = new alicloud.cddc.DedicatedHost(\"default\", {\n    hostName: name,\n    dedicatedHostGroupId: defaultDedicatedHostGroup.id,\n    hostClass: defaultGetHostEcsLevelInfos.then(defaultGetHostEcsLevelInfos =\u003e defaultGetHostEcsLevelInfos.infos?.[0]?.resClassCode),\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n    vswitchId: defaultSwitch.id,\n    paymentType: \"Subscription\",\n    tags: {\n        Created: \"TF\",\n        For: \"CDDC_DEDICATED\",\n    },\n});\nconst defaultDedicatedHostAccount = new alicloud.cddc.DedicatedHostAccount(\"default\", {\n    accountName: name,\n    accountPassword: \"Password1234\",\n    dedicatedHostId: defaultDedicatedHost.dedicatedHostId,\n    accountType: \"Normal\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.cddc.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.ids[0])\ndefault_dedicated_host_group = alicloud.cddc.DedicatedHostGroup(\"default\",\n    engine=\"MySQL\",\n    vpc_id=default_network.id,\n    cpu_allocation_ratio=101,\n    mem_allocation_ratio=50,\n    disk_allocation_ratio=200,\n    allocation_policy=\"Evenly\",\n    host_replace_policy=\"Manual\",\n    dedicated_host_group_desc=name,\n    open_permission=True)\ndefault_get_host_ecs_level_infos = alicloud.cddc.get_host_ecs_level_infos(db_type=\"mysql\",\n    zone_id=default.ids[0],\n    storage_type=\"cloud_essd\")\ndefault_dedicated_host = alicloud.cddc.DedicatedHost(\"default\",\n    host_name=name,\n    dedicated_host_group_id=default_dedicated_host_group.id,\n    host_class=default_get_host_ecs_level_infos.infos[0].res_class_code,\n    zone_id=default.ids[0],\n    vswitch_id=default_switch.id,\n    payment_type=\"Subscription\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"CDDC_DEDICATED\",\n    })\ndefault_dedicated_host_account = alicloud.cddc.DedicatedHostAccount(\"default\",\n    account_name=name,\n    account_password=\"Password1234\",\n    dedicated_host_id=default_dedicated_host.dedicated_host_id,\n    account_type=\"Normal\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.Cddc.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n    });\n\n    var defaultDedicatedHostGroup = new AliCloud.Cddc.DedicatedHostGroup(\"default\", new()\n    {\n        Engine = \"MySQL\",\n        VpcId = defaultNetwork.Id,\n        CpuAllocationRatio = 101,\n        MemAllocationRatio = 50,\n        DiskAllocationRatio = 200,\n        AllocationPolicy = \"Evenly\",\n        HostReplacePolicy = \"Manual\",\n        DedicatedHostGroupDesc = name,\n        OpenPermission = true,\n    });\n\n    var defaultGetHostEcsLevelInfos = AliCloud.Cddc.GetHostEcsLevelInfos.Invoke(new()\n    {\n        DbType = \"mysql\",\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n        StorageType = \"cloud_essd\",\n    });\n\n    var defaultDedicatedHost = new AliCloud.Cddc.DedicatedHost(\"default\", new()\n    {\n        HostName = name,\n        DedicatedHostGroupId = defaultDedicatedHostGroup.Id,\n        HostClass = defaultGetHostEcsLevelInfos.Apply(getHostEcsLevelInfosResult =\u003e getHostEcsLevelInfosResult.Infos[0]?.ResClassCode),\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n        VswitchId = defaultSwitch.Id,\n        PaymentType = \"Subscription\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"CDDC_DEDICATED\" },\n        },\n    });\n\n    var defaultDedicatedHostAccount = new AliCloud.Cddc.DedicatedHostAccount(\"default\", new()\n    {\n        AccountName = name,\n        AccountPassword = \"Password1234\",\n        DedicatedHostId = defaultDedicatedHost.DedicatedHostId,\n        AccountType = \"Normal\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cddc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cddc.GetZones(ctx, \u0026cddc.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDedicatedHostGroup, err := cddc.NewDedicatedHostGroup(ctx, \"default\", \u0026cddc.DedicatedHostGroupArgs{\n\t\t\tEngine:                 pulumi.String(\"MySQL\"),\n\t\t\tVpcId:                  defaultNetwork.ID(),\n\t\t\tCpuAllocationRatio:     pulumi.Int(101),\n\t\t\tMemAllocationRatio:     pulumi.Int(50),\n\t\t\tDiskAllocationRatio:    pulumi.Int(200),\n\t\t\tAllocationPolicy:       pulumi.String(\"Evenly\"),\n\t\t\tHostReplacePolicy:      pulumi.String(\"Manual\"),\n\t\t\tDedicatedHostGroupDesc: pulumi.String(name),\n\t\t\tOpenPermission:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetHostEcsLevelInfos, err := cddc.GetHostEcsLevelInfos(ctx, \u0026cddc.GetHostEcsLevelInfosArgs{\n\t\t\tDbType:      \"mysql\",\n\t\t\tZoneId:      _default.Ids[0],\n\t\t\tStorageType: \"cloud_essd\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDedicatedHost, err := cddc.NewDedicatedHost(ctx, \"default\", \u0026cddc.DedicatedHostArgs{\n\t\t\tHostName:             pulumi.String(name),\n\t\t\tDedicatedHostGroupId: defaultDedicatedHostGroup.ID(),\n\t\t\tHostClass:            pulumi.String(defaultGetHostEcsLevelInfos.Infos[0].ResClassCode),\n\t\t\tZoneId:               pulumi.String(_default.Ids[0]),\n\t\t\tVswitchId:            defaultSwitch.ID(),\n\t\t\tPaymentType:          pulumi.String(\"Subscription\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"CDDC_DEDICATED\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cddc.NewDedicatedHostAccount(ctx, \"default\", \u0026cddc.DedicatedHostAccountArgs{\n\t\t\tAccountName:     pulumi.String(name),\n\t\t\tAccountPassword: pulumi.String(\"Password1234\"),\n\t\t\tDedicatedHostId: defaultDedicatedHost.DedicatedHostId,\n\t\t\tAccountType:     pulumi.String(\"Normal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cddc.CddcFunctions;\nimport com.pulumi.alicloud.cddc.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cddc.DedicatedHostGroup;\nimport com.pulumi.alicloud.cddc.DedicatedHostGroupArgs;\nimport com.pulumi.alicloud.cddc.inputs.GetHostEcsLevelInfosArgs;\nimport com.pulumi.alicloud.cddc.DedicatedHost;\nimport com.pulumi.alicloud.cddc.DedicatedHostArgs;\nimport com.pulumi.alicloud.cddc.DedicatedHostAccount;\nimport com.pulumi.alicloud.cddc.DedicatedHostAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = CddcFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.ids()[0])\n            .build());\n\n        var defaultDedicatedHostGroup = new DedicatedHostGroup(\"defaultDedicatedHostGroup\", DedicatedHostGroupArgs.builder()\n            .engine(\"MySQL\")\n            .vpcId(defaultNetwork.id())\n            .cpuAllocationRatio(101)\n            .memAllocationRatio(50)\n            .diskAllocationRatio(200)\n            .allocationPolicy(\"Evenly\")\n            .hostReplacePolicy(\"Manual\")\n            .dedicatedHostGroupDesc(name)\n            .openPermission(true)\n            .build());\n\n        final var defaultGetHostEcsLevelInfos = CddcFunctions.getHostEcsLevelInfos(GetHostEcsLevelInfosArgs.builder()\n            .dbType(\"mysql\")\n            .zoneId(default_.ids()[0])\n            .storageType(\"cloud_essd\")\n            .build());\n\n        var defaultDedicatedHost = new DedicatedHost(\"defaultDedicatedHost\", DedicatedHostArgs.builder()\n            .hostName(name)\n            .dedicatedHostGroupId(defaultDedicatedHostGroup.id())\n            .hostClass(defaultGetHostEcsLevelInfos.infos()[0].resClassCode())\n            .zoneId(default_.ids()[0])\n            .vswitchId(defaultSwitch.id())\n            .paymentType(\"Subscription\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"CDDC_DEDICATED\")\n            ))\n            .build());\n\n        var defaultDedicatedHostAccount = new DedicatedHostAccount(\"defaultDedicatedHostAccount\", DedicatedHostAccountArgs.builder()\n            .accountName(name)\n            .accountPassword(\"Password1234\")\n            .dedicatedHostId(defaultDedicatedHost.dedicatedHostId())\n            .accountType(\"Normal\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.ids[0]}\n  defaultDedicatedHostGroup:\n    type: alicloud:cddc:DedicatedHostGroup\n    name: default\n    properties:\n      engine: MySQL\n      vpcId: ${defaultNetwork.id}\n      cpuAllocationRatio: 101\n      memAllocationRatio: 50\n      diskAllocationRatio: 200\n      allocationPolicy: Evenly\n      hostReplacePolicy: Manual\n      dedicatedHostGroupDesc: ${name}\n      openPermission: true\n  defaultDedicatedHost:\n    type: alicloud:cddc:DedicatedHost\n    name: default\n    properties:\n      hostName: ${name}\n      dedicatedHostGroupId: ${defaultDedicatedHostGroup.id}\n      hostClass: ${defaultGetHostEcsLevelInfos.infos[0].resClassCode}\n      zoneId: ${default.ids[0]}\n      vswitchId: ${defaultSwitch.id}\n      paymentType: Subscription\n      tags:\n        Created: TF\n        For: CDDC_DEDICATED\n  defaultDedicatedHostAccount:\n    type: alicloud:cddc:DedicatedHostAccount\n    name: default\n    properties:\n      accountName: ${name}\n      accountPassword: Password1234\n      dedicatedHostId: ${defaultDedicatedHost.dedicatedHostId}\n      accountType: Normal\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cddc:getZones\n      arguments: {}\n  defaultGetHostEcsLevelInfos:\n    fn::invoke:\n      function: alicloud:cddc:getHostEcsLevelInfos\n      arguments:\n        dbType: mysql\n        zoneId: ${default.ids[0]}\n        storageType: cloud_essd\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApsaraDB for MyBase Dedicated Host Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cddc/dedicatedHostAccount:DedicatedHostAccount example \u003cdedicated_host_id\u003e:\u003caccount_name\u003e\n```\n\n","properties":{"accountName":{"type":"string","description":"The name of the Dedicated host account. The account name must be 2 to 16 characters in length, contain lower case letters, digits, and underscore(_). At the same time, the name must start with a letter and end with a letter or number.\n"},"accountPassword":{"type":"string","description":"The password of the Dedicated host account. The account password must be 6 to 32 characters in length, and can contain letters, digits, and special characters `!@#$%^\u0026*()_+-=`.\n","secret":true},"accountType":{"type":"string","description":"The type of the Dedicated host account. Valid values: `Admin`, `Normal`.\n"},"dedicatedHostId":{"type":"string","description":"The ID of Dedicated the host.\n"}},"required":["accountName","accountPassword","dedicatedHostId"],"inputProperties":{"accountName":{"type":"string","description":"The name of the Dedicated host account. The account name must be 2 to 16 characters in length, contain lower case letters, digits, and underscore(_). At the same time, the name must start with a letter and end with a letter or number.\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"The password of the Dedicated host account. The account password must be 6 to 32 characters in length, and can contain letters, digits, and special characters `!@#$%^\u0026*()_+-=`.\n","secret":true},"accountType":{"type":"string","description":"The type of the Dedicated host account. Valid values: `Admin`, `Normal`.\n","willReplaceOnChanges":true},"dedicatedHostId":{"type":"string","description":"The ID of Dedicated the host.\n","willReplaceOnChanges":true}},"requiredInputs":["accountName","accountPassword","dedicatedHostId"],"stateInputs":{"description":"Input properties used for looking up and filtering DedicatedHostAccount resources.\n","properties":{"accountName":{"type":"string","description":"The name of the Dedicated host account. The account name must be 2 to 16 characters in length, contain lower case letters, digits, and underscore(_). At the same time, the name must start with a letter and end with a letter or number.\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"The password of the Dedicated host account. The account password must be 6 to 32 characters in length, and can contain letters, digits, and special characters `!@#$%^\u0026*()_+-=`.\n","secret":true},"accountType":{"type":"string","description":"The type of the Dedicated host account. Valid values: `Admin`, `Normal`.\n","willReplaceOnChanges":true},"dedicatedHostId":{"type":"string","description":"The ID of Dedicated the host.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cddc/dedicatedHostGroup:DedicatedHostGroup":{"description":"Provides a ApsaraDB for MyBase Dedicated Host Group resource.\n\nFor information about ApsaraDB for MyBase Dedicated Host Group and how to use it, see [What is Dedicated Host Group](https://www.alibabacloud.com/help/en/apsaradb-for-mybase/latest/creatededicatedhostgroup).\n\n\u003e **NOTE:** Available since v1.132.0.\n\n\u003e **DEPRECATED:**  This resource has been [deprecated](https://www.alibabacloud.com/help/en/apsaradb-for-mybase/latest/notice-stop-selling-mybase-hosted-instances-from-august-31-2023) from version `1.225.1`. \n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultDedicatedHostGroup = new alicloud.cddc.DedicatedHostGroup(\"default\", {\n    engine: \"MySQL\",\n    vpcId: _default.id,\n    cpuAllocationRatio: 101,\n    memAllocationRatio: 50,\n    diskAllocationRatio: 200,\n    allocationPolicy: \"Evenly\",\n    hostReplacePolicy: \"Manual\",\n    dedicatedHostGroupDesc: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_dedicated_host_group = alicloud.cddc.DedicatedHostGroup(\"default\",\n    engine=\"MySQL\",\n    vpc_id=default.id,\n    cpu_allocation_ratio=101,\n    mem_allocation_ratio=50,\n    disk_allocation_ratio=200,\n    allocation_policy=\"Evenly\",\n    host_replace_policy=\"Manual\",\n    dedicated_host_group_desc=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultDedicatedHostGroup = new AliCloud.Cddc.DedicatedHostGroup(\"default\", new()\n    {\n        Engine = \"MySQL\",\n        VpcId = @default.Id,\n        CpuAllocationRatio = 101,\n        MemAllocationRatio = 50,\n        DiskAllocationRatio = 200,\n        AllocationPolicy = \"Evenly\",\n        HostReplacePolicy = \"Manual\",\n        DedicatedHostGroupDesc = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cddc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cddc.NewDedicatedHostGroup(ctx, \"default\", \u0026cddc.DedicatedHostGroupArgs{\n\t\t\tEngine:                 pulumi.String(\"MySQL\"),\n\t\t\tVpcId:                  _default.ID(),\n\t\t\tCpuAllocationRatio:     pulumi.Int(101),\n\t\t\tMemAllocationRatio:     pulumi.Int(50),\n\t\t\tDiskAllocationRatio:    pulumi.Int(200),\n\t\t\tAllocationPolicy:       pulumi.String(\"Evenly\"),\n\t\t\tHostReplacePolicy:      pulumi.String(\"Manual\"),\n\t\t\tDedicatedHostGroupDesc: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.cddc.DedicatedHostGroup;\nimport com.pulumi.alicloud.cddc.DedicatedHostGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultDedicatedHostGroup = new DedicatedHostGroup(\"defaultDedicatedHostGroup\", DedicatedHostGroupArgs.builder()\n            .engine(\"MySQL\")\n            .vpcId(default_.id())\n            .cpuAllocationRatio(101)\n            .memAllocationRatio(50)\n            .diskAllocationRatio(200)\n            .allocationPolicy(\"Evenly\")\n            .hostReplacePolicy(\"Manual\")\n            .dedicatedHostGroupDesc(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultDedicatedHostGroup:\n    type: alicloud:cddc:DedicatedHostGroup\n    name: default\n    properties:\n      engine: MySQL\n      vpcId: ${default.id}\n      cpuAllocationRatio: 101\n      memAllocationRatio: 50\n      diskAllocationRatio: 200\n      allocationPolicy: Evenly\n      hostReplacePolicy: Manual\n      dedicatedHostGroupDesc: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApsaraDB for MyBase Dedicated Host Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cddc/dedicatedHostGroup:DedicatedHostGroup example \u003cid\u003e\n```\n\n","properties":{"allocationPolicy":{"type":"string","description":"AThe policy that is used to allocate resources in the dedicated cluster. Valid values:`Evenly`,`Intensively`\n"},"cpuAllocationRatio":{"type":"integer","description":"The CPU overcommitment ratio of the dedicated cluster.Valid values: 100 to 300. Default value: 200.\n"},"dedicatedHostGroupDesc":{"type":"string","description":"The name of the dedicated cluster. The name must be 1 to 64 characters in length and can contain letters, digits, underscores (_), and hyphens (-). It must start with a letter.\n"},"diskAllocationRatio":{"type":"integer","description":"The Disk Allocation Ratio of the Dedicated Host Group. **NOTE:** When `engine = SQLServer`, this attribute does not support to set.\n"},"engine":{"type":"string","description":"Database Engine Type.The database engine of the dedicated cluster. Valid values:`Redis`, `SQLServer`, `MySQL`, `PostgreSQL`, `MongoDB`, \u003cspan pulumi-lang-nodejs=\"`alisql`\" pulumi-lang-dotnet=\"`Alisql`\" pulumi-lang-go=\"`alisql`\" pulumi-lang-python=\"`alisql`\" pulumi-lang-yaml=\"`alisql`\" pulumi-lang-java=\"`alisql`\"\u003e`alisql`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tair`\" pulumi-lang-dotnet=\"`Tair`\" pulumi-lang-go=\"`tair`\" pulumi-lang-python=\"`tair`\" pulumi-lang-yaml=\"`tair`\" pulumi-lang-java=\"`tair`\"\u003e`tair`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mssql`\" pulumi-lang-dotnet=\"`Mssql`\" pulumi-lang-go=\"`mssql`\" pulumi-lang-python=\"`mssql`\" pulumi-lang-yaml=\"`mssql`\" pulumi-lang-java=\"`mssql`\"\u003e`mssql`\u003c/span\u003e. **NOTE:** Since v1.210.0., the `engine = SQLServer` was deprecated.\n"},"hostReplacePolicy":{"type":"string","description":"The policy based on which the system handles host failures. Valid values:`Auto`,`Manual`\n"},"memAllocationRatio":{"type":"integer","description":"The Memory Allocation Ratio of the Dedicated Host Group.\n"},"openPermission":{"type":"boolean","description":"Whether to enable the feature that allows you to have OS permissions on the hosts in the dedicated cluster. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`openPermission`\" pulumi-lang-dotnet=\"`OpenPermission`\" pulumi-lang-go=\"`openPermission`\" pulumi-lang-python=\"`open_permission`\" pulumi-lang-yaml=\"`openPermission`\" pulumi-lang-java=\"`openPermission`\"\u003e`open_permission`\u003c/span\u003e should be \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e when `engine = \"SQLServer\"`\n"},"vpcId":{"type":"string","description":"The virtual private cloud (VPC) ID of the dedicated cluster.\n"}},"required":["allocationPolicy","cpuAllocationRatio","diskAllocationRatio","engine","hostReplacePolicy","memAllocationRatio","openPermission","vpcId"],"inputProperties":{"allocationPolicy":{"type":"string","description":"AThe policy that is used to allocate resources in the dedicated cluster. Valid values:`Evenly`,`Intensively`\n"},"cpuAllocationRatio":{"type":"integer","description":"The CPU overcommitment ratio of the dedicated cluster.Valid values: 100 to 300. Default value: 200.\n"},"dedicatedHostGroupDesc":{"type":"string","description":"The name of the dedicated cluster. The name must be 1 to 64 characters in length and can contain letters, digits, underscores (_), and hyphens (-). It must start with a letter.\n"},"diskAllocationRatio":{"type":"integer","description":"The Disk Allocation Ratio of the Dedicated Host Group. **NOTE:** When `engine = SQLServer`, this attribute does not support to set.\n"},"engine":{"type":"string","description":"Database Engine Type.The database engine of the dedicated cluster. Valid values:`Redis`, `SQLServer`, `MySQL`, `PostgreSQL`, `MongoDB`, \u003cspan pulumi-lang-nodejs=\"`alisql`\" pulumi-lang-dotnet=\"`Alisql`\" pulumi-lang-go=\"`alisql`\" pulumi-lang-python=\"`alisql`\" pulumi-lang-yaml=\"`alisql`\" pulumi-lang-java=\"`alisql`\"\u003e`alisql`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tair`\" pulumi-lang-dotnet=\"`Tair`\" pulumi-lang-go=\"`tair`\" pulumi-lang-python=\"`tair`\" pulumi-lang-yaml=\"`tair`\" pulumi-lang-java=\"`tair`\"\u003e`tair`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mssql`\" pulumi-lang-dotnet=\"`Mssql`\" pulumi-lang-go=\"`mssql`\" pulumi-lang-python=\"`mssql`\" pulumi-lang-yaml=\"`mssql`\" pulumi-lang-java=\"`mssql`\"\u003e`mssql`\u003c/span\u003e. **NOTE:** Since v1.210.0., the `engine = SQLServer` was deprecated.\n","willReplaceOnChanges":true},"hostReplacePolicy":{"type":"string","description":"The policy based on which the system handles host failures. Valid values:`Auto`,`Manual`\n"},"memAllocationRatio":{"type":"integer","description":"The Memory Allocation Ratio of the Dedicated Host Group.\n"},"openPermission":{"type":"boolean","description":"Whether to enable the feature that allows you to have OS permissions on the hosts in the dedicated cluster. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`openPermission`\" pulumi-lang-dotnet=\"`OpenPermission`\" pulumi-lang-go=\"`openPermission`\" pulumi-lang-python=\"`open_permission`\" pulumi-lang-yaml=\"`openPermission`\" pulumi-lang-java=\"`openPermission`\"\u003e`open_permission`\u003c/span\u003e should be \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e when `engine = \"SQLServer\"`\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The virtual private cloud (VPC) ID of the dedicated cluster.\n","willReplaceOnChanges":true}},"requiredInputs":["engine","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering DedicatedHostGroup resources.\n","properties":{"allocationPolicy":{"type":"string","description":"AThe policy that is used to allocate resources in the dedicated cluster. Valid values:`Evenly`,`Intensively`\n"},"cpuAllocationRatio":{"type":"integer","description":"The CPU overcommitment ratio of the dedicated cluster.Valid values: 100 to 300. Default value: 200.\n"},"dedicatedHostGroupDesc":{"type":"string","description":"The name of the dedicated cluster. The name must be 1 to 64 characters in length and can contain letters, digits, underscores (_), and hyphens (-). It must start with a letter.\n"},"diskAllocationRatio":{"type":"integer","description":"The Disk Allocation Ratio of the Dedicated Host Group. **NOTE:** When `engine = SQLServer`, this attribute does not support to set.\n"},"engine":{"type":"string","description":"Database Engine Type.The database engine of the dedicated cluster. Valid values:`Redis`, `SQLServer`, `MySQL`, `PostgreSQL`, `MongoDB`, \u003cspan pulumi-lang-nodejs=\"`alisql`\" pulumi-lang-dotnet=\"`Alisql`\" pulumi-lang-go=\"`alisql`\" pulumi-lang-python=\"`alisql`\" pulumi-lang-yaml=\"`alisql`\" pulumi-lang-java=\"`alisql`\"\u003e`alisql`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tair`\" pulumi-lang-dotnet=\"`Tair`\" pulumi-lang-go=\"`tair`\" pulumi-lang-python=\"`tair`\" pulumi-lang-yaml=\"`tair`\" pulumi-lang-java=\"`tair`\"\u003e`tair`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mssql`\" pulumi-lang-dotnet=\"`Mssql`\" pulumi-lang-go=\"`mssql`\" pulumi-lang-python=\"`mssql`\" pulumi-lang-yaml=\"`mssql`\" pulumi-lang-java=\"`mssql`\"\u003e`mssql`\u003c/span\u003e. **NOTE:** Since v1.210.0., the `engine = SQLServer` was deprecated.\n","willReplaceOnChanges":true},"hostReplacePolicy":{"type":"string","description":"The policy based on which the system handles host failures. Valid values:`Auto`,`Manual`\n"},"memAllocationRatio":{"type":"integer","description":"The Memory Allocation Ratio of the Dedicated Host Group.\n"},"openPermission":{"type":"boolean","description":"Whether to enable the feature that allows you to have OS permissions on the hosts in the dedicated cluster. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`openPermission`\" pulumi-lang-dotnet=\"`OpenPermission`\" pulumi-lang-go=\"`openPermission`\" pulumi-lang-python=\"`open_permission`\" pulumi-lang-yaml=\"`openPermission`\" pulumi-lang-java=\"`openPermission`\"\u003e`open_permission`\u003c/span\u003e should be \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e when `engine = \"SQLServer\"`\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The virtual private cloud (VPC) ID of the dedicated cluster.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cddc/dedicatedPropreHost:DedicatedPropreHost":{"description":"Provides a CDDC Dedicated Propre Host resource. MyBase proprietary cluster host resources, you need to add a whitelist to purchase a proprietary version of the cluster.\n\nFor information about CDDC Dedicated Propre Host and how to use it, see [What is Dedicated Propre Host](https://www.alibabacloud.com/help/en/apsaradb-for-mybase/latest/api-cddc-2020-03-20-creatededicatedhostgroup).\n\n\u003e **NOTE:** Available since v1.210.0.\n\n\u003e **DEPRECATED:**  This resource has been [deprecated](https://www.alibabacloud.com/help/en/apsaradb-for-mybase/latest/notice-stop-selling-mybase-hosted-instances-from-august-31-2023) from version `1.225.1`. \n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.ecs.getInstanceTypes({\n    instanceTypeFamily: \"ecs.g6e\",\n    networkType: \"Vpc\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^aliyun_3_x64_20G_scc*\",\n    owners: \"system\",\n});\nconst essd = alicloud.ecs.getInstanceTypes({\n    cpuCoreCount: 2,\n    memorySize: 4,\n    systemDiskCategory: \"cloud_essd\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = defaultGetNetworks.then(defaultGetNetworks =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: \"cn-hangzhou-i\",\n}));\nconst defaultGetSecurityGroups = alicloud.ecs.getSecurityGroups({\n    nameRegex: \"tf-exampleacc-cddc-dedicated_propre_host\",\n});\nconst defaultSecurityGroup: alicloud.ecs.SecurityGroup[] = [];\ndefaultGetSecurityGroups.then(defaultGetSecurityGroups =\u003e defaultGetSecurityGroups.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultSecurityGroup.push(new alicloud.ecs.SecurityGroup(`default-${range.value}`, {\n            vpcId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.vpcId),\n            name: \"tf-exampleacc-cddc-dedicated_propre_host\",\n        }));\n    }\n});\nconst defaultGetEcsDeploymentSets = alicloud.ecs.getEcsDeploymentSets({\n    nameRegex: \"tf-exampleacc-cddc-dedicated_propre_host\",\n});\nconst defaultEcsDeploymentSet: alicloud.ecs.EcsDeploymentSet[] = [];\ndefaultGetEcsDeploymentSets.then(defaultGetEcsDeploymentSets =\u003e defaultGetEcsDeploymentSets.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultEcsDeploymentSet.push(new alicloud.ecs.EcsDeploymentSet(`default-${range.value}`, {\n            strategy: \"Availability\",\n            domain: \"Default\",\n            granularity: \"Host\",\n            deploymentSetName: \"tf-exampleacc-cddc-dedicated_propre_host\",\n            description: \"tf-exampleacc-cddc-dedicated_propre_host\",\n        }));\n    }\n});\nconst defaultGetKeyPairs = alicloud.ecs.getKeyPairs({\n    nameRegex: \"tf-exampleacc-cddc-dedicated_propre_host\",\n});\nconst defaultKeyPair: alicloud.ecs.KeyPair[] = [];\ndefaultGetKeyPairs.then(defaultGetKeyPairs =\u003e defaultGetKeyPairs.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultKeyPair.push(new alicloud.ecs.KeyPair(`default-${range.value}`, {keyPairName: \"tf-exampleacc-cddc-dedicated_propre_host\"}));\n    }\n});\nconst defaultGetDedicatedHostGroups = alicloud.cddc.getDedicatedHostGroups({\n    engine: \"MySQL\",\n    nameRegex: \"tf-exampleacc-cddc-dedicated_propre_host\",\n});\nconst defaultDedicatedHostGroup: alicloud.cddc.DedicatedHostGroup[] = [];\ndefaultGetDedicatedHostGroups.then(defaultGetDedicatedHostGroups =\u003e defaultGetDedicatedHostGroups.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultDedicatedHostGroup.push(new alicloud.cddc.DedicatedHostGroup(`default-${range.value}`, {\n            engine: \"MySQL\",\n            vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n            cpuAllocationRatio: 101,\n            memAllocationRatio: 50,\n            diskAllocationRatio: 200,\n            allocationPolicy: \"Evenly\",\n            hostReplacePolicy: \"Manual\",\n            dedicatedHostGroupDesc: \"tf-exampleacc-cddc-dedicated_propre_host\",\n            openPermission: true,\n        }));\n    }\n});\nconst alicloudSecurityGroupId = pulumi.all([defaultGetSecurityGroups.then(defaultGetSecurityGroups =\u003e defaultGetSecurityGroups.ids).length, defaultGetSecurityGroups, std.concat({\n    input: [\n        defaultSecurityGroup.map(__item =\u003e __item.id),\n        [\"\"],\n    ],\n})]).apply(([length, defaultGetSecurityGroups, invoke]) =\u003e length \u003e 0 ? defaultGetSecurityGroups.ids?.[0] : invoke.result?.[0]);\nconst alicloudEcsDeploymentSetId = pulumi.all([defaultGetEcsDeploymentSets.then(defaultGetEcsDeploymentSets =\u003e defaultGetEcsDeploymentSets.ids).length, defaultGetEcsDeploymentSets, std.concat({\n    input: [\n        defaultEcsDeploymentSet.map(__item =\u003e __item.id),\n        [\"\"],\n    ],\n})]).apply(([length, defaultGetEcsDeploymentSets, invoke]) =\u003e length \u003e 0 ? defaultGetEcsDeploymentSets.sets?.[0]?.deploymentSetId : invoke.result?.[0]);\nconst alicloudKeyPairId = pulumi.all([defaultGetKeyPairs.then(defaultGetKeyPairs =\u003e defaultGetKeyPairs.ids).length, defaultGetKeyPairs, std.concat({\n    input: [\n        defaultKeyPair.map(__item =\u003e __item.id),\n        [\"\"],\n    ],\n})]).apply(([length, defaultGetKeyPairs, invoke]) =\u003e length \u003e 0 ? defaultGetKeyPairs.ids?.[0] : invoke.result?.[0]);\nconst dedicatedHostGroupId = pulumi.all([defaultGetDedicatedHostGroups.then(defaultGetDedicatedHostGroups =\u003e defaultGetDedicatedHostGroups.ids).length, defaultGetDedicatedHostGroups, std.concat({\n    input: [\n        defaultDedicatedHostGroup.map(__item =\u003e __item.id),\n        [\"\"],\n    ],\n})]).apply(([length, defaultGetDedicatedHostGroups, invoke]) =\u003e length \u003e 0 ? defaultGetDedicatedHostGroups.ids?.[0] : invoke.result?.[0]);\nconst defaultDedicatedPropreHost = new alicloud.cddc.DedicatedPropreHost(\"default\", {\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    ecsInstanceName: \"exampleTf\",\n    ecsDeploymentSetId: alicloudEcsDeploymentSetId,\n    autoRenew: \"false\",\n    securityGroupId: alicloudSecurityGroupId,\n    dedicatedHostGroupId: dedicatedHostGroupId,\n    ecsHostName: \"exampleTf\",\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    ecsUniqueSuffix: \"false\",\n    passwordInherit: \"false\",\n    engine: \"mysql\",\n    period: \"1\",\n    osPassword: \"YourPassword123!\",\n    ecsZoneId: \"cn-hangzhou-i\",\n    ecsClassLists: [{\n        diskType: \"cloud_essd\",\n        sysDiskType: \"cloud_essd\",\n        diskCount: 1,\n        systemDiskPerformanceLevel: \"PL1\",\n        dataDiskPerformanceLevel: \"PL1\",\n        diskCapacity: 40,\n        instanceType: \"ecs.c6a.large\",\n        sysDiskCapacity: 40,\n    }],\n    paymentType: \"Subscription\",\n    imageId: \"m-bp1d13fxs1ymbvw1dk5g\",\n    periodType: \"Monthly\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ecs.get_instance_types(instance_type_family=\"ecs.g6e\",\n    network_type=\"Vpc\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^aliyun_3_x64_20G_scc*\",\n    owners=\"system\")\nessd = alicloud.ecs.get_instance_types(cpu_core_count=2,\n    memory_size=4,\n    system_disk_category=\"cloud_essd\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=\"cn-hangzhou-i\")\ndefault_get_security_groups = alicloud.ecs.get_security_groups(name_regex=\"tf-exampleacc-cddc-dedicated_propre_host\")\ndefault_security_group = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_security_group.append(alicloud.ecs.SecurityGroup(f\"default-{range['value']}\",\n            vpc_id=default_get_switches.vswitches[0].vpc_id,\n            name=\"tf-exampleacc-cddc-dedicated_propre_host\"))\n\nlen(default_get_security_groups.ids).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\ndefault_get_ecs_deployment_sets = alicloud.ecs.get_ecs_deployment_sets(name_regex=\"tf-exampleacc-cddc-dedicated_propre_host\")\ndefault_ecs_deployment_set = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_ecs_deployment_set.append(alicloud.ecs.EcsDeploymentSet(f\"default-{range['value']}\",\n            strategy=\"Availability\",\n            domain=\"Default\",\n            granularity=\"Host\",\n            deployment_set_name=\"tf-exampleacc-cddc-dedicated_propre_host\",\n            description=\"tf-exampleacc-cddc-dedicated_propre_host\"))\n\nlen(default_get_ecs_deployment_sets.ids).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\ndefault_get_key_pairs = alicloud.ecs.get_key_pairs(name_regex=\"tf-exampleacc-cddc-dedicated_propre_host\")\ndefault_key_pair = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_key_pair.append(alicloud.ecs.KeyPair(f\"default-{range['value']}\", key_pair_name=\"tf-exampleacc-cddc-dedicated_propre_host\"))\n\nlen(default_get_key_pairs.ids).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\ndefault_get_dedicated_host_groups = alicloud.cddc.get_dedicated_host_groups(engine=\"MySQL\",\n    name_regex=\"tf-exampleacc-cddc-dedicated_propre_host\")\ndefault_dedicated_host_group = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_dedicated_host_group.append(alicloud.cddc.DedicatedHostGroup(f\"default-{range['value']}\",\n            engine=\"MySQL\",\n            vpc_id=default_get_networks.ids[0],\n            cpu_allocation_ratio=101,\n            mem_allocation_ratio=50,\n            disk_allocation_ratio=200,\n            allocation_policy=\"Evenly\",\n            host_replace_policy=\"Manual\",\n            dedicated_host_group_desc=\"tf-exampleacc-cddc-dedicated_propre_host\",\n            open_permission=True))\n\nlen(default_get_dedicated_host_groups.ids).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\nalicloud_security_group_id = len(default_get_security_groups.ids).apply(lambda length: default_get_security_groups.ids[0] if length \u003e 0 else std.concat(input=[\n    [__item.id for __item in default_security_group],\n    [\"\"],\n]).result[0])\nalicloud_ecs_deployment_set_id = len(default_get_ecs_deployment_sets.ids).apply(lambda length: default_get_ecs_deployment_sets.sets[0].deployment_set_id if length \u003e 0 else std.concat(input=[\n    [__item.id for __item in default_ecs_deployment_set],\n    [\"\"],\n]).result[0])\nalicloud_key_pair_id = len(default_get_key_pairs.ids).apply(lambda length: default_get_key_pairs.ids[0] if length \u003e 0 else std.concat(input=[\n    [__item.id for __item in default_key_pair],\n    [\"\"],\n]).result[0])\ndedicated_host_group_id = len(default_get_dedicated_host_groups.ids).apply(lambda length: default_get_dedicated_host_groups.ids[0] if length \u003e 0 else std.concat(input=[\n    [__item.id for __item in default_dedicated_host_group],\n    [\"\"],\n]).result[0])\ndefault_dedicated_propre_host = alicloud.cddc.DedicatedPropreHost(\"default\",\n    vswitch_id=default_get_switches.ids[0],\n    ecs_instance_name=\"exampleTf\",\n    ecs_deployment_set_id=alicloud_ecs_deployment_set_id,\n    auto_renew=\"false\",\n    security_group_id=alicloud_security_group_id,\n    dedicated_host_group_id=dedicated_host_group_id,\n    ecs_host_name=\"exampleTf\",\n    vpc_id=default_get_networks.ids[0],\n    ecs_unique_suffix=\"false\",\n    password_inherit=\"false\",\n    engine=\"mysql\",\n    period=\"1\",\n    os_password=\"YourPassword123!\",\n    ecs_zone_id=\"cn-hangzhou-i\",\n    ecs_class_lists=[{\n        \"disk_type\": \"cloud_essd\",\n        \"sys_disk_type\": \"cloud_essd\",\n        \"disk_count\": 1,\n        \"system_disk_performance_level\": \"PL1\",\n        \"data_disk_performance_level\": \"PL1\",\n        \"disk_capacity\": 40,\n        \"instance_type\": \"ecs.c6a.large\",\n        \"sys_disk_capacity\": 40,\n    }],\n    payment_type=\"Subscription\",\n    image_id=\"m-bp1d13fxs1ymbvw1dk5g\",\n    period_type=\"Monthly\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        InstanceTypeFamily = \"ecs.g6e\",\n        NetworkType = \"Vpc\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^aliyun_3_x64_20G_scc*\",\n        Owners = \"system\",\n    });\n\n    var essd = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        CpuCoreCount = 2,\n        MemorySize = 4,\n        SystemDiskCategory = \"cloud_essd\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = \"cn-hangzhou-i\",\n    });\n\n    var defaultGetSecurityGroups = AliCloud.Ecs.GetSecurityGroups.Invoke(new()\n    {\n        NameRegex = \"tf-exampleacc-cddc-dedicated_propre_host\",\n    });\n\n    var defaultSecurityGroup = new List\u003cAliCloud.Ecs.SecurityGroup\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c defaultGetSecurityGroups.Apply(getSecurityGroupsResult =\u003e getSecurityGroupsResult.Ids).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSecurityGroup.Add(new AliCloud.Ecs.SecurityGroup($\"default-{range.Value}\", new()\n        {\n            VpcId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.VpcId),\n            Name = \"tf-exampleacc-cddc-dedicated_propre_host\",\n        }));\n    }\n    var defaultGetEcsDeploymentSets = AliCloud.Ecs.GetEcsDeploymentSets.Invoke(new()\n    {\n        NameRegex = \"tf-exampleacc-cddc-dedicated_propre_host\",\n    });\n\n    var defaultEcsDeploymentSet = new List\u003cAliCloud.Ecs.EcsDeploymentSet\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c defaultGetEcsDeploymentSets.Apply(getEcsDeploymentSetsResult =\u003e getEcsDeploymentSetsResult.Ids).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultEcsDeploymentSet.Add(new AliCloud.Ecs.EcsDeploymentSet($\"default-{range.Value}\", new()\n        {\n            Strategy = \"Availability\",\n            Domain = \"Default\",\n            Granularity = \"Host\",\n            DeploymentSetName = \"tf-exampleacc-cddc-dedicated_propre_host\",\n            Description = \"tf-exampleacc-cddc-dedicated_propre_host\",\n        }));\n    }\n    var defaultGetKeyPairs = AliCloud.Ecs.GetKeyPairs.Invoke(new()\n    {\n        NameRegex = \"tf-exampleacc-cddc-dedicated_propre_host\",\n    });\n\n    var defaultKeyPair = new List\u003cAliCloud.Ecs.KeyPair\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c defaultGetKeyPairs.Apply(getKeyPairsResult =\u003e getKeyPairsResult.Ids).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultKeyPair.Add(new AliCloud.Ecs.KeyPair($\"default-{range.Value}\", new()\n        {\n            KeyPairName = \"tf-exampleacc-cddc-dedicated_propre_host\",\n        }));\n    }\n    var defaultGetDedicatedHostGroups = AliCloud.Cddc.GetDedicatedHostGroups.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        NameRegex = \"tf-exampleacc-cddc-dedicated_propre_host\",\n    });\n\n    var defaultDedicatedHostGroup = new List\u003cAliCloud.Cddc.DedicatedHostGroup\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c defaultGetDedicatedHostGroups.Apply(getDedicatedHostGroupsResult =\u003e getDedicatedHostGroupsResult.Ids).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultDedicatedHostGroup.Add(new AliCloud.Cddc.DedicatedHostGroup($\"default-{range.Value}\", new()\n        {\n            Engine = \"MySQL\",\n            VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n            CpuAllocationRatio = 101,\n            MemAllocationRatio = 50,\n            DiskAllocationRatio = 200,\n            AllocationPolicy = \"Evenly\",\n            HostReplacePolicy = \"Manual\",\n            DedicatedHostGroupDesc = \"tf-exampleacc-cddc-dedicated_propre_host\",\n            OpenPermission = true,\n        }));\n    }\n    var alicloudSecurityGroupId = Output.Tuple(defaultGetSecurityGroups.Apply(getSecurityGroupsResult =\u003e getSecurityGroupsResult.Ids).Length, defaultGetSecurityGroups, Std.Concat.Invoke(new()\n    {\n        Input = new[]\n        {\n            defaultSecurityGroup.Select(__item =\u003e __item.Id).ToList(),\n            new[]\n            {\n                \"\",\n            },\n        },\n    })).Apply(values =\u003e\n    {\n        var length = values.Item1;\n        var defaultGetSecurityGroups = values.Item2;\n        var invoke = values.Item3;\n        return length \u003e 0 ? defaultGetSecurityGroups.Apply(getSecurityGroupsResult =\u003e getSecurityGroupsResult.Ids[0]) : invoke.Result[0];\n    });\n\n    var alicloudEcsDeploymentSetId = Output.Tuple(defaultGetEcsDeploymentSets.Apply(getEcsDeploymentSetsResult =\u003e getEcsDeploymentSetsResult.Ids).Length, defaultGetEcsDeploymentSets, Std.Concat.Invoke(new()\n    {\n        Input = new[]\n        {\n            defaultEcsDeploymentSet.Select(__item =\u003e __item.Id).ToList(),\n            new[]\n            {\n                \"\",\n            },\n        },\n    })).Apply(values =\u003e\n    {\n        var length = values.Item1;\n        var defaultGetEcsDeploymentSets = values.Item2;\n        var invoke = values.Item3;\n        return length \u003e 0 ? defaultGetEcsDeploymentSets.Apply(getEcsDeploymentSetsResult =\u003e getEcsDeploymentSetsResult.Sets[0]?.DeploymentSetId) : invoke.Result[0];\n    });\n\n    var alicloudKeyPairId = Output.Tuple(defaultGetKeyPairs.Apply(getKeyPairsResult =\u003e getKeyPairsResult.Ids).Length, defaultGetKeyPairs, Std.Concat.Invoke(new()\n    {\n        Input = new[]\n        {\n            defaultKeyPair.Select(__item =\u003e __item.Id).ToList(),\n            new[]\n            {\n                \"\",\n            },\n        },\n    })).Apply(values =\u003e\n    {\n        var length = values.Item1;\n        var defaultGetKeyPairs = values.Item2;\n        var invoke = values.Item3;\n        return length \u003e 0 ? defaultGetKeyPairs.Apply(getKeyPairsResult =\u003e getKeyPairsResult.Ids[0]) : invoke.Result[0];\n    });\n\n    var dedicatedHostGroupId = Output.Tuple(defaultGetDedicatedHostGroups.Apply(getDedicatedHostGroupsResult =\u003e getDedicatedHostGroupsResult.Ids).Length, defaultGetDedicatedHostGroups, Std.Concat.Invoke(new()\n    {\n        Input = new[]\n        {\n            defaultDedicatedHostGroup.Select(__item =\u003e __item.Id).ToList(),\n            new[]\n            {\n                \"\",\n            },\n        },\n    })).Apply(values =\u003e\n    {\n        var length = values.Item1;\n        var defaultGetDedicatedHostGroups = values.Item2;\n        var invoke = values.Item3;\n        return length \u003e 0 ? defaultGetDedicatedHostGroups.Apply(getDedicatedHostGroupsResult =\u003e getDedicatedHostGroupsResult.Ids[0]) : invoke.Result[0];\n    });\n\n    var defaultDedicatedPropreHost = new AliCloud.Cddc.DedicatedPropreHost(\"default\", new()\n    {\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        EcsInstanceName = \"exampleTf\",\n        EcsDeploymentSetId = alicloudEcsDeploymentSetId,\n        AutoRenew = \"false\",\n        SecurityGroupId = alicloudSecurityGroupId,\n        DedicatedHostGroupId = dedicatedHostGroupId,\n        EcsHostName = \"exampleTf\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        EcsUniqueSuffix = \"false\",\n        PasswordInherit = \"false\",\n        Engine = \"mysql\",\n        Period = \"1\",\n        OsPassword = \"YourPassword123!\",\n        EcsZoneId = \"cn-hangzhou-i\",\n        EcsClassLists = new[]\n        {\n            new AliCloud.Cddc.Inputs.DedicatedPropreHostEcsClassListArgs\n            {\n                DiskType = \"cloud_essd\",\n                SysDiskType = \"cloud_essd\",\n                DiskCount = 1,\n                SystemDiskPerformanceLevel = \"PL1\",\n                DataDiskPerformanceLevel = \"PL1\",\n                DiskCapacity = 40,\n                InstanceType = \"ecs.c6a.large\",\n                SysDiskCapacity = 40,\n            },\n        },\n        PaymentType = \"Subscription\",\n        ImageId = \"m-bp1d13fxs1ymbvw1dk5g\",\n        PeriodType = \"Monthly\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cddc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nInstanceTypeFamily: pulumi.StringRef(\"ecs.g6e\"),\nNetworkType: pulumi.StringRef(\"Vpc\"),\n}, nil);\nif err != nil {\nreturn err\n}\n_, err = ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nNameRegex: pulumi.StringRef(\"^aliyun_3_x64_20G_scc*\"),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\n_, err = ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nCpuCoreCount: pulumi.IntRef(2),\nMemorySize: pulumi.Float64Ref(4),\nSystemDiskCategory: pulumi.StringRef(\"cloud_essd\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\nNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\nVpcId: pulumi.StringRef(defaultGetNetworks.Ids[0]),\nZoneId: pulumi.StringRef(\"cn-hangzhou-i\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetSecurityGroups, err := ecs.GetSecurityGroups(ctx, \u0026ecs.GetSecurityGroupsArgs{\nNameRegex: pulumi.StringRef(\"tf-exampleacc-cddc-dedicated_propre_host\"),\n}, nil);\nif err != nil {\nreturn err\n}\nvar tmp0 float64\nif length \u003e 0 {\ntmp0 = 0\n} else {\ntmp0 = 1\n}\nvar defaultSecurityGroup []*ecs.SecurityGroup\nfor index := 0; index \u003c float64(len(defaultGetSecurityGroups.Ids).ApplyT(func(length int) (float64, error) {\nreturn tmp0, nil\n}).(pulumi.Float64Output)); index++ {\n    key0 := index\n    _ := index\n__res, err := ecs.NewSecurityGroup(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026ecs.SecurityGroupArgs{\nVpcId: pulumi.String(defaultGetSwitches.Vswitches[0].VpcId),\nName: pulumi.String(\"tf-exampleacc-cddc-dedicated_propre_host\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup = append(defaultSecurityGroup, __res)\n}\ndefaultGetEcsDeploymentSets, err := ecs.GetEcsDeploymentSets(ctx, \u0026ecs.GetEcsDeploymentSetsArgs{\nNameRegex: pulumi.StringRef(\"tf-exampleacc-cddc-dedicated_propre_host\"),\n}, nil);\nif err != nil {\nreturn err\n}\nvar tmp1 float64\nif length \u003e 0 {\ntmp1 = 0\n} else {\ntmp1 = 1\n}\nvar defaultEcsDeploymentSet []*ecs.EcsDeploymentSet\nfor index := 0; index \u003c float64(len(defaultGetEcsDeploymentSets.Ids).ApplyT(func(length int) (float64, error) {\nreturn tmp1, nil\n}).(pulumi.Float64Output)); index++ {\n    key0 := index\n    _ := index\n__res, err := ecs.NewEcsDeploymentSet(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026ecs.EcsDeploymentSetArgs{\nStrategy: pulumi.String(\"Availability\"),\nDomain: pulumi.String(\"Default\"),\nGranularity: pulumi.String(\"Host\"),\nDeploymentSetName: pulumi.String(\"tf-exampleacc-cddc-dedicated_propre_host\"),\nDescription: pulumi.String(\"tf-exampleacc-cddc-dedicated_propre_host\"),\n})\nif err != nil {\nreturn err\n}\ndefaultEcsDeploymentSet = append(defaultEcsDeploymentSet, __res)\n}\ndefaultGetKeyPairs, err := ecs.GetKeyPairs(ctx, \u0026ecs.GetKeyPairsArgs{\nNameRegex: pulumi.StringRef(\"tf-exampleacc-cddc-dedicated_propre_host\"),\n}, nil);\nif err != nil {\nreturn err\n}\nvar tmp2 float64\nif length \u003e 0 {\ntmp2 = 0\n} else {\ntmp2 = 1\n}\nvar defaultKeyPair []*ecs.KeyPair\nfor index := 0; index \u003c float64(len(defaultGetKeyPairs.Ids).ApplyT(func(length int) (float64, error) {\nreturn tmp2, nil\n}).(pulumi.Float64Output)); index++ {\n    key0 := index\n    _ := index\n__res, err := ecs.NewKeyPair(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026ecs.KeyPairArgs{\nKeyPairName: pulumi.String(\"tf-exampleacc-cddc-dedicated_propre_host\"),\n})\nif err != nil {\nreturn err\n}\ndefaultKeyPair = append(defaultKeyPair, __res)\n}\ndefaultGetDedicatedHostGroups, err := cddc.GetDedicatedHostGroups(ctx, \u0026cddc.GetDedicatedHostGroupsArgs{\nEngine: pulumi.StringRef(\"MySQL\"),\nNameRegex: pulumi.StringRef(\"tf-exampleacc-cddc-dedicated_propre_host\"),\n}, nil);\nif err != nil {\nreturn err\n}\nvar tmp3 float64\nif length \u003e 0 {\ntmp3 = 0\n} else {\ntmp3 = 1\n}\nvar defaultDedicatedHostGroup []*cddc.DedicatedHostGroup\nfor index := 0; index \u003c float64(len(defaultGetDedicatedHostGroups.Ids).ApplyT(func(length int) (float64, error) {\nreturn tmp3, nil\n}).(pulumi.Float64Output)); index++ {\n    key0 := index\n    _ := index\n__res, err := cddc.NewDedicatedHostGroup(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026cddc.DedicatedHostGroupArgs{\nEngine: pulumi.String(\"MySQL\"),\nVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\nCpuAllocationRatio: pulumi.Int(101),\nMemAllocationRatio: pulumi.Int(50),\nDiskAllocationRatio: pulumi.Int(200),\nAllocationPolicy: pulumi.String(\"Evenly\"),\nHostReplacePolicy: pulumi.String(\"Manual\"),\nDedicatedHostGroupDesc: pulumi.String(\"tf-exampleacc-cddc-dedicated_propre_host\"),\nOpenPermission: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\ndefaultDedicatedHostGroup = append(defaultDedicatedHostGroup, __res)\n}\nvar tmp4 *interface{}\nif length \u003e 0 {\ntmp4 = defaultGetSecurityGroups.Ids[0]\n} else {\ntmp4 = std.Concat(ctx, \u0026std.ConcatArgs{\nInput: pulumi.StringArrayArray{\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:91,12-38),\n[]string{\n\"\",\n},\n},\n}, nil).Result[0]\n}\nalicloudSecurityGroupId := len(defaultGetSecurityGroups.Ids).ApplyT(func(length int) (*interface{}, error) {\nreturn \u0026tmp4, nil\n}).(pulumi.Interface{}PtrOutput)\nvar tmp5 *interface{}\nif length \u003e 0 {\ntmp5 = defaultGetEcsDeploymentSets.Sets[0].DeploymentSetId\n} else {\ntmp5 = std.Concat(ctx, \u0026std.ConcatArgs{\nInput: pulumi.StringArrayArray{\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:94,12-41),\n[]string{\n\"\",\n},\n},\n}, nil).Result[0]\n}\nalicloudEcsDeploymentSetId := len(defaultGetEcsDeploymentSets.Ids).ApplyT(func(length int) (*interface{}, error) {\nreturn \u0026tmp5, nil\n}).(pulumi.Interface{}PtrOutput)\nvar tmp6 *interface{}\nif length \u003e 0 {\ntmp6 = defaultGetKeyPairs.Ids[0]\n} else {\ntmp6 = std.Concat(ctx, \u0026std.ConcatArgs{\nInput: pulumi.StringArrayArray{\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:97,12-32),\n[]string{\n\"\",\n},\n},\n}, nil).Result[0]\n}\n_ = len(defaultGetKeyPairs.Ids).ApplyT(func(length int) (*interface{}, error) {\nreturn \u0026tmp6, nil\n}).(pulumi.Interface{}PtrOutput)\nvar tmp7 *interface{}\nif length \u003e 0 {\ntmp7 = defaultGetDedicatedHostGroups.Ids[0]\n} else {\ntmp7 = std.Concat(ctx, \u0026std.ConcatArgs{\nInput: pulumi.StringArrayArray{\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:100,12-43),\n[]string{\n\"\",\n},\n},\n}, nil).Result[0]\n}\ndedicatedHostGroupId := len(defaultGetDedicatedHostGroups.Ids).ApplyT(func(length int) (*interface{}, error) {\nreturn \u0026tmp7, nil\n}).(pulumi.Interface{}PtrOutput)\n_, err = cddc.NewDedicatedPropreHost(ctx, \"default\", \u0026cddc.DedicatedPropreHostArgs{\nVswitchId: pulumi.String(defaultGetSwitches.Ids[0]),\nEcsInstanceName: pulumi.String(\"exampleTf\"),\nEcsDeploymentSetId: pulumi.Any(alicloudEcsDeploymentSetId),\nAutoRenew: pulumi.String(\"false\"),\nSecurityGroupId: pulumi.Any(alicloudSecurityGroupId),\nDedicatedHostGroupId: pulumi.Any(dedicatedHostGroupId),\nEcsHostName: pulumi.String(\"exampleTf\"),\nVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\nEcsUniqueSuffix: pulumi.String(\"false\"),\nPasswordInherit: pulumi.String(\"false\"),\nEngine: pulumi.String(\"mysql\"),\nPeriod: pulumi.String(\"1\"),\nOsPassword: pulumi.String(\"YourPassword123!\"),\nEcsZoneId: pulumi.String(\"cn-hangzhou-i\"),\nEcsClassLists: cddc.DedicatedPropreHostEcsClassListArray{\n\u0026cddc.DedicatedPropreHostEcsClassListArgs{\nDiskType: pulumi.String(\"cloud_essd\"),\nSysDiskType: pulumi.String(\"cloud_essd\"),\nDiskCount: pulumi.Int(1),\nSystemDiskPerformanceLevel: pulumi.String(\"PL1\"),\nDataDiskPerformanceLevel: pulumi.String(\"PL1\"),\nDiskCapacity: pulumi.Int(40),\nInstanceType: pulumi.String(\"ecs.c6a.large\"),\nSysDiskCapacity: pulumi.Int(40),\n},\n},\nPaymentType: pulumi.String(\"Subscription\"),\nImageId: pulumi.String(\"m-bp1d13fxs1ymbvw1dk5g\"),\nPeriodType: pulumi.String(\"Monthly\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetSecurityGroupsArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetEcsDeploymentSetsArgs;\nimport com.pulumi.alicloud.ecs.EcsDeploymentSet;\nimport com.pulumi.alicloud.ecs.EcsDeploymentSetArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetKeyPairsArgs;\nimport com.pulumi.alicloud.ecs.KeyPair;\nimport com.pulumi.alicloud.ecs.KeyPairArgs;\nimport com.pulumi.alicloud.cddc.CddcFunctions;\nimport com.pulumi.alicloud.cddc.inputs.GetDedicatedHostGroupsArgs;\nimport com.pulumi.alicloud.cddc.DedicatedHostGroup;\nimport com.pulumi.alicloud.cddc.DedicatedHostGroupArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ConcatArgs;\nimport com.pulumi.alicloud.cddc.DedicatedPropreHost;\nimport com.pulumi.alicloud.cddc.DedicatedPropreHostArgs;\nimport com.pulumi.alicloud.cddc.inputs.DedicatedPropreHostEcsClassListArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .instanceTypeFamily(\"ecs.g6e\")\n            .networkType(\"Vpc\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^aliyun_3_x64_20G_scc*\")\n            .owners(\"system\")\n            .build());\n\n        final var essd = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .systemDiskCategory(\"cloud_essd\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(\"cn-hangzhou-i\")\n            .build());\n\n        final var defaultGetSecurityGroups = EcsFunctions.getSecurityGroups(GetSecurityGroupsArgs.builder()\n            .nameRegex(\"tf-exampleacc-cddc-dedicated_propre_host\")\n            .build());\n\n        for (var i = 0; i \u003c defaultGetSecurityGroups.ids().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new SecurityGroup(\"defaultSecurityGroup-\" + i, SecurityGroupArgs.builder()\n                .vpcId(defaultGetSwitches.vswitches()[0].vpcId())\n                .name(\"tf-exampleacc-cddc-dedicated_propre_host\")\n                .build());\n\n        \n}\n        final var defaultGetEcsDeploymentSets = EcsFunctions.getEcsDeploymentSets(GetEcsDeploymentSetsArgs.builder()\n            .nameRegex(\"tf-exampleacc-cddc-dedicated_propre_host\")\n            .build());\n\n        for (var i = 0; i \u003c defaultGetEcsDeploymentSets.ids().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new EcsDeploymentSet(\"defaultEcsDeploymentSet-\" + i, EcsDeploymentSetArgs.builder()\n                .strategy(\"Availability\")\n                .domain(\"Default\")\n                .granularity(\"Host\")\n                .deploymentSetName(\"tf-exampleacc-cddc-dedicated_propre_host\")\n                .description(\"tf-exampleacc-cddc-dedicated_propre_host\")\n                .build());\n\n        \n}\n        final var defaultGetKeyPairs = EcsFunctions.getKeyPairs(GetKeyPairsArgs.builder()\n            .nameRegex(\"tf-exampleacc-cddc-dedicated_propre_host\")\n            .build());\n\n        for (var i = 0; i \u003c defaultGetKeyPairs.ids().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new KeyPair(\"defaultKeyPair-\" + i, KeyPairArgs.builder()\n                .keyPairName(\"tf-exampleacc-cddc-dedicated_propre_host\")\n                .build());\n\n        \n}\n        final var defaultGetDedicatedHostGroups = CddcFunctions.getDedicatedHostGroups(GetDedicatedHostGroupsArgs.builder()\n            .engine(\"MySQL\")\n            .nameRegex(\"tf-exampleacc-cddc-dedicated_propre_host\")\n            .build());\n\n        for (var i = 0; i \u003c defaultGetDedicatedHostGroups.ids().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new DedicatedHostGroup(\"defaultDedicatedHostGroup-\" + i, DedicatedHostGroupArgs.builder()\n                .engine(\"MySQL\")\n                .vpcId(defaultGetNetworks.ids()[0])\n                .cpuAllocationRatio(101)\n                .memAllocationRatio(50)\n                .diskAllocationRatio(200)\n                .allocationPolicy(\"Evenly\")\n                .hostReplacePolicy(\"Manual\")\n                .dedicatedHostGroupDesc(\"tf-exampleacc-cddc-dedicated_propre_host\")\n                .openPermission(true)\n                .build());\n\n        \n}\n        final var alicloudSecurityGroupId = defaultGetSecurityGroups.ids().length().applyValue(_length -\u003e _length \u003e 0 ? defaultGetSecurityGroups.ids()[0] : StdFunctions.concat(ConcatArgs.builder()\n            .input(            \n                defaultSecurityGroup.stream().map(element -\u003e element.id()).collect(toList()),\n                \"\")\n            .build()).result()[0]);\n\n        final var alicloudEcsDeploymentSetId = defaultGetEcsDeploymentSets.ids().length().applyValue(_length -\u003e _length \u003e 0 ? defaultGetEcsDeploymentSets.sets()[0].deploymentSetId() : StdFunctions.concat(ConcatArgs.builder()\n            .input(            \n                defaultEcsDeploymentSet.stream().map(element -\u003e element.id()).collect(toList()),\n                \"\")\n            .build()).result()[0]);\n\n        final var alicloudKeyPairId = defaultGetKeyPairs.ids().length().applyValue(_length -\u003e _length \u003e 0 ? defaultGetKeyPairs.ids()[0] : StdFunctions.concat(ConcatArgs.builder()\n            .input(            \n                defaultKeyPair.stream().map(element -\u003e element.id()).collect(toList()),\n                \"\")\n            .build()).result()[0]);\n\n        final var dedicatedHostGroupId = defaultGetDedicatedHostGroups.ids().length().applyValue(_length -\u003e _length \u003e 0 ? defaultGetDedicatedHostGroups.ids()[0] : StdFunctions.concat(ConcatArgs.builder()\n            .input(            \n                defaultDedicatedHostGroup.stream().map(element -\u003e element.id()).collect(toList()),\n                \"\")\n            .build()).result()[0]);\n\n        var defaultDedicatedPropreHost = new DedicatedPropreHost(\"defaultDedicatedPropreHost\", DedicatedPropreHostArgs.builder()\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .ecsInstanceName(\"exampleTf\")\n            .ecsDeploymentSetId(alicloudEcsDeploymentSetId)\n            .autoRenew(\"false\")\n            .securityGroupId(alicloudSecurityGroupId)\n            .dedicatedHostGroupId(dedicatedHostGroupId)\n            .ecsHostName(\"exampleTf\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .ecsUniqueSuffix(\"false\")\n            .passwordInherit(\"false\")\n            .engine(\"mysql\")\n            .period(\"1\")\n            .osPassword(\"YourPassword123!\")\n            .ecsZoneId(\"cn-hangzhou-i\")\n            .ecsClassLists(DedicatedPropreHostEcsClassListArgs.builder()\n                .diskType(\"cloud_essd\")\n                .sysDiskType(\"cloud_essd\")\n                .diskCount(1)\n                .systemDiskPerformanceLevel(\"PL1\")\n                .dataDiskPerformanceLevel(\"PL1\")\n                .diskCapacity(40)\n                .instanceType(\"ecs.c6a.large\")\n                .sysDiskCapacity(40)\n                .build())\n            .paymentType(\"Subscription\")\n            .imageId(\"m-bp1d13fxs1ymbvw1dk5g\")\n            .periodType(\"Monthly\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.cddc.DedicatedPropreHost`\" pulumi-lang-dotnet=\"`alicloud.cddc.DedicatedPropreHost`\" pulumi-lang-go=\"`cddc.DedicatedPropreHost`\" pulumi-lang-python=\"`cddc.DedicatedPropreHost`\" pulumi-lang-yaml=\"`alicloud.cddc.DedicatedPropreHost`\" pulumi-lang-java=\"`alicloud.cddc.DedicatedPropreHost`\"\u003e`alicloud.cddc.DedicatedPropreHost`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cddc.DedicatedPropreHost`\" pulumi-lang-dotnet=\"`alicloud.cddc.DedicatedPropreHost`\" pulumi-lang-go=\"`cddc.DedicatedPropreHost`\" pulumi-lang-python=\"`cddc.DedicatedPropreHost`\" pulumi-lang-yaml=\"`alicloud.cddc.DedicatedPropreHost`\" pulumi-lang-java=\"`alicloud.cddc.DedicatedPropreHost`\"\u003e`alicloud.cddc.DedicatedPropreHost`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCDDC Dedicated Propre Host can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cddc/dedicatedPropreHost:DedicatedPropreHost example \u003cdedicated_host_group_id\u003e:\u003cecs_instance_id\u003e\n```\n\n","properties":{"autoPay":{"type":"boolean","description":"Whether to pay automatically when the host is created.\n"},"autoRenew":{"type":"string","description":"Whether to enable automatic renewal. Valid values:\n- **true**: On\n- **false** (default): Off\n"},"dedicatedHostGroupId":{"type":"string","description":"You have a dedicated cluster ID.\n"},"ecsClassLists":{"type":"array","items":{"$ref":"#/types/alicloud:cddc/DedicatedPropreHostEcsClassList:DedicatedPropreHostEcsClassList"},"description":"ECS specifications. See \u003cspan pulumi-lang-nodejs=\"`ecsClassList`\" pulumi-lang-dotnet=\"`EcsClassList`\" pulumi-lang-go=\"`ecsClassList`\" pulumi-lang-python=\"`ecs_class_list`\" pulumi-lang-yaml=\"`ecsClassList`\" pulumi-lang-java=\"`ecsClassList`\"\u003e`ecs_class_list`\u003c/span\u003e below.\n"},"ecsDeploymentSetId":{"type":"string","description":"The ID of the cloud server deployment set.\n"},"ecsHostName":{"type":"string","description":"Windows system: length of 2 to 15 characters, allowing the use of upper and lower case letters, numbers. You cannot use only numbers. Other operating systems (such as Linux): the length of 2 to 64 characters, allowing the use of dot (.) to separate characters into multiple segments, each segment allows the use of upper and lower case letters, numbers, but can not use continuous dot (.). Cannot start or end with a dot (.).\n"},"ecsInstanceId":{"type":"string","description":"ECS instance ID.\n"},"ecsInstanceName":{"type":"string","description":"The instance name. It must be 2 to 128 characters in length and must start with an uppercase or lowercase letter or a Chinese character. It cannot start with http:// or https. Can contain Chinese, English, numbers, half-width colons (:), underscores (_), half-width periods (.), or dashes (-). The default value is the InstanceId of the instance.\n"},"ecsUniqueSuffix":{"type":"string","description":"Whether to automatically add an ordered suffix for HostName and InstanceName when creating multiple instances. The ordered suffix starts from 001 and cannot exceed 999. Value Description:\n- **true**: added.\n- **false** (default): Do not add.\nWhen the HostName or InstanceName is set according to the specified sorting format, and the naming suffix\u003cspan pulumi-lang-nodejs=\" nameSuffix \" pulumi-lang-dotnet=\" NameSuffix \" pulumi-lang-go=\" nameSuffix \" pulumi-lang-python=\" name_suffix \" pulumi-lang-yaml=\" nameSuffix \" pulumi-lang-java=\" nameSuffix \"\u003e name_suffix \u003c/span\u003eis not set, that is, when the naming format is name_prefix[begin_number,bits], the UniqueSuffix does not take effect, and the names are only sorted according to the specified order.\n"},"ecsZoneId":{"type":"string","description":"The ID of the zone.\n"},"engine":{"type":"string","description":"Database type, value:\n- **alisql**\n- **tair**\n- **mssql**\nMust be consistent with the parent resource cluster engine attributes.\n"},"imageId":{"type":"string","description":"The ID of the custom image.\n\u003e **NOTE:**  If you need to use the default image, you do not need to fill it in.\n"},"internetChargeType":{"type":"string","description":"Network billing type. Value range: PayByBandwidth: Billing based on fixed bandwidth. PayByTraffic: charges by using the flow meter.\n"},"internetMaxBandwidthOut":{"type":"integer","description":"The maximum outbound bandwidth of the public network, in Mbit/s. Value range: 0~100.  Default value: 0. When set to greater than 0, a public IP is automatically created.\n"},"keyPairName":{"type":"string","description":"The key pair name.\n"},"osPassword":{"type":"string","description":"Host login password, which can be set later. The password must meet the following requirements:\n- Length is 8~30 characters.\n- Must contain at least three items: uppercase letters, lowercase letters, numbers, and special characters.\n- Special symbol '()\\' ~! @#$%^\u0026 *-_+ =|{}[]:;',.? /'\n\u003e **NOTE:** - If you need to set the host login password later, fill in an empty string for this parameter. If you need to set a host login password, we recommend that you use the HTTPS protocol to send requests to avoid password leakage.\n"},"passwordInherit":{"type":"string","description":"Whether to use the default password of the image.\n- **false**: (default)Do not use\n- **true**: Use\n\u003e **NOTE:**  If the default password of the image is used, the **OSPassword** parameter is not required.\n"},"paymentType":{"type":"string","description":"The Payment type. Currently, only **Subscription** is supported.\n"},"period":{"type":"string","description":"Duration of purchase.\n"},"periodType":{"type":"string","description":"The subscription type. Currently, only **Monthly** (subscription) is supported.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Host tag information.\n"},"userData":{"type":"string","description":"User-defined script data. The maximum size of the original data is 16kB.\n"},"userDataEncoded":{"type":"boolean","description":"Whether custom data is encoded in Base64 format.\n"},"vpcId":{"type":"string","description":"VPCID of the VPC.\n"},"vswitchId":{"type":"string","description":"The ID of the virtual switch.\n"}},"required":["dedicatedHostGroupId","ecsClassLists","ecsInstanceId","ecsZoneId","engine","paymentType","resourceGroupId","securityGroupId","vpcId","vswitchId"],"inputProperties":{"autoPay":{"type":"boolean","description":"Whether to pay automatically when the host is created.\n"},"autoRenew":{"type":"string","description":"Whether to enable automatic renewal. Valid values:\n- **true**: On\n- **false** (default): Off\n"},"dedicatedHostGroupId":{"type":"string","description":"You have a dedicated cluster ID.\n","willReplaceOnChanges":true},"ecsClassLists":{"type":"array","items":{"$ref":"#/types/alicloud:cddc/DedicatedPropreHostEcsClassList:DedicatedPropreHostEcsClassList"},"description":"ECS specifications. See \u003cspan pulumi-lang-nodejs=\"`ecsClassList`\" pulumi-lang-dotnet=\"`EcsClassList`\" pulumi-lang-go=\"`ecsClassList`\" pulumi-lang-python=\"`ecs_class_list`\" pulumi-lang-yaml=\"`ecsClassList`\" pulumi-lang-java=\"`ecsClassList`\"\u003e`ecs_class_list`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"ecsDeploymentSetId":{"type":"string","description":"The ID of the cloud server deployment set.\n","willReplaceOnChanges":true},"ecsHostName":{"type":"string","description":"Windows system: length of 2 to 15 characters, allowing the use of upper and lower case letters, numbers. You cannot use only numbers. Other operating systems (such as Linux): the length of 2 to 64 characters, allowing the use of dot (.) to separate characters into multiple segments, each segment allows the use of upper and lower case letters, numbers, but can not use continuous dot (.). Cannot start or end with a dot (.).\n","willReplaceOnChanges":true},"ecsInstanceName":{"type":"string","description":"The instance name. It must be 2 to 128 characters in length and must start with an uppercase or lowercase letter or a Chinese character. It cannot start with http:// or https. Can contain Chinese, English, numbers, half-width colons (:), underscores (_), half-width periods (.), or dashes (-). The default value is the InstanceId of the instance.\n","willReplaceOnChanges":true},"ecsUniqueSuffix":{"type":"string","description":"Whether to automatically add an ordered suffix for HostName and InstanceName when creating multiple instances. The ordered suffix starts from 001 and cannot exceed 999. Value Description:\n- **true**: added.\n- **false** (default): Do not add.\nWhen the HostName or InstanceName is set according to the specified sorting format, and the naming suffix\u003cspan pulumi-lang-nodejs=\" nameSuffix \" pulumi-lang-dotnet=\" NameSuffix \" pulumi-lang-go=\" nameSuffix \" pulumi-lang-python=\" name_suffix \" pulumi-lang-yaml=\" nameSuffix \" pulumi-lang-java=\" nameSuffix \"\u003e name_suffix \u003c/span\u003eis not set, that is, when the naming format is name_prefix[begin_number,bits], the UniqueSuffix does not take effect, and the names are only sorted according to the specified order.\n"},"ecsZoneId":{"type":"string","description":"The ID of the zone.\n","willReplaceOnChanges":true},"engine":{"type":"string","description":"Database type, value:\n- **alisql**\n- **tair**\n- **mssql**\nMust be consistent with the parent resource cluster engine attributes.\n","willReplaceOnChanges":true},"imageId":{"type":"string","description":"The ID of the custom image.\n\u003e **NOTE:**  If you need to use the default image, you do not need to fill it in.\n","willReplaceOnChanges":true},"internetChargeType":{"type":"string","description":"Network billing type. Value range: PayByBandwidth: Billing based on fixed bandwidth. PayByTraffic: charges by using the flow meter.\n"},"internetMaxBandwidthOut":{"type":"integer","description":"The maximum outbound bandwidth of the public network, in Mbit/s. Value range: 0~100.  Default value: 0. When set to greater than 0, a public IP is automatically created.\n"},"keyPairName":{"type":"string","description":"The key pair name.\n","willReplaceOnChanges":true},"osPassword":{"type":"string","description":"Host login password, which can be set later. The password must meet the following requirements:\n- Length is 8~30 characters.\n- Must contain at least three items: uppercase letters, lowercase letters, numbers, and special characters.\n- Special symbol '()\\' ~! @#$%^\u0026 *-_+ =|{}[]:;',.? /'\n\u003e **NOTE:** - If you need to set the host login password later, fill in an empty string for this parameter. If you need to set a host login password, we recommend that you use the HTTPS protocol to send requests to avoid password leakage.\n"},"passwordInherit":{"type":"string","description":"Whether to use the default password of the image.\n- **false**: (default)Do not use\n- **true**: Use\n\u003e **NOTE:**  If the default password of the image is used, the **OSPassword** parameter is not required.\n"},"paymentType":{"type":"string","description":"The Payment type. Currently, only **Subscription** is supported.\n","willReplaceOnChanges":true},"period":{"type":"string","description":"Duration of purchase.\n"},"periodType":{"type":"string","description":"The subscription type. Currently, only **Monthly** (subscription) is supported.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Host tag information.\n","willReplaceOnChanges":true},"userData":{"type":"string","description":"User-defined script data. The maximum size of the original data is 16kB.\n"},"userDataEncoded":{"type":"boolean","description":"Whether custom data is encoded in Base64 format.\n"},"vpcId":{"type":"string","description":"VPCID of the VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the virtual switch.\n","willReplaceOnChanges":true}},"requiredInputs":["ecsClassLists","ecsZoneId","engine","paymentType","securityGroupId","vpcId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering DedicatedPropreHost resources.\n","properties":{"autoPay":{"type":"boolean","description":"Whether to pay automatically when the host is created.\n"},"autoRenew":{"type":"string","description":"Whether to enable automatic renewal. Valid values:\n- **true**: On\n- **false** (default): Off\n"},"dedicatedHostGroupId":{"type":"string","description":"You have a dedicated cluster ID.\n","willReplaceOnChanges":true},"ecsClassLists":{"type":"array","items":{"$ref":"#/types/alicloud:cddc/DedicatedPropreHostEcsClassList:DedicatedPropreHostEcsClassList"},"description":"ECS specifications. See \u003cspan pulumi-lang-nodejs=\"`ecsClassList`\" pulumi-lang-dotnet=\"`EcsClassList`\" pulumi-lang-go=\"`ecsClassList`\" pulumi-lang-python=\"`ecs_class_list`\" pulumi-lang-yaml=\"`ecsClassList`\" pulumi-lang-java=\"`ecsClassList`\"\u003e`ecs_class_list`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"ecsDeploymentSetId":{"type":"string","description":"The ID of the cloud server deployment set.\n","willReplaceOnChanges":true},"ecsHostName":{"type":"string","description":"Windows system: length of 2 to 15 characters, allowing the use of upper and lower case letters, numbers. You cannot use only numbers. Other operating systems (such as Linux): the length of 2 to 64 characters, allowing the use of dot (.) to separate characters into multiple segments, each segment allows the use of upper and lower case letters, numbers, but can not use continuous dot (.). Cannot start or end with a dot (.).\n","willReplaceOnChanges":true},"ecsInstanceId":{"type":"string","description":"ECS instance ID.\n"},"ecsInstanceName":{"type":"string","description":"The instance name. It must be 2 to 128 characters in length and must start with an uppercase or lowercase letter or a Chinese character. It cannot start with http:// or https. Can contain Chinese, English, numbers, half-width colons (:), underscores (_), half-width periods (.), or dashes (-). The default value is the InstanceId of the instance.\n","willReplaceOnChanges":true},"ecsUniqueSuffix":{"type":"string","description":"Whether to automatically add an ordered suffix for HostName and InstanceName when creating multiple instances. The ordered suffix starts from 001 and cannot exceed 999. Value Description:\n- **true**: added.\n- **false** (default): Do not add.\nWhen the HostName or InstanceName is set according to the specified sorting format, and the naming suffix\u003cspan pulumi-lang-nodejs=\" nameSuffix \" pulumi-lang-dotnet=\" NameSuffix \" pulumi-lang-go=\" nameSuffix \" pulumi-lang-python=\" name_suffix \" pulumi-lang-yaml=\" nameSuffix \" pulumi-lang-java=\" nameSuffix \"\u003e name_suffix \u003c/span\u003eis not set, that is, when the naming format is name_prefix[begin_number,bits], the UniqueSuffix does not take effect, and the names are only sorted according to the specified order.\n"},"ecsZoneId":{"type":"string","description":"The ID of the zone.\n","willReplaceOnChanges":true},"engine":{"type":"string","description":"Database type, value:\n- **alisql**\n- **tair**\n- **mssql**\nMust be consistent with the parent resource cluster engine attributes.\n","willReplaceOnChanges":true},"imageId":{"type":"string","description":"The ID of the custom image.\n\u003e **NOTE:**  If you need to use the default image, you do not need to fill it in.\n","willReplaceOnChanges":true},"internetChargeType":{"type":"string","description":"Network billing type. Value range: PayByBandwidth: Billing based on fixed bandwidth. PayByTraffic: charges by using the flow meter.\n"},"internetMaxBandwidthOut":{"type":"integer","description":"The maximum outbound bandwidth of the public network, in Mbit/s. Value range: 0~100.  Default value: 0. When set to greater than 0, a public IP is automatically created.\n"},"keyPairName":{"type":"string","description":"The key pair name.\n","willReplaceOnChanges":true},"osPassword":{"type":"string","description":"Host login password, which can be set later. The password must meet the following requirements:\n- Length is 8~30 characters.\n- Must contain at least three items: uppercase letters, lowercase letters, numbers, and special characters.\n- Special symbol '()\\' ~! @#$%^\u0026 *-_+ =|{}[]:;',.? /'\n\u003e **NOTE:** - If you need to set the host login password later, fill in an empty string for this parameter. If you need to set a host login password, we recommend that you use the HTTPS protocol to send requests to avoid password leakage.\n"},"passwordInherit":{"type":"string","description":"Whether to use the default password of the image.\n- **false**: (default)Do not use\n- **true**: Use\n\u003e **NOTE:**  If the default password of the image is used, the **OSPassword** parameter is not required.\n"},"paymentType":{"type":"string","description":"The Payment type. Currently, only **Subscription** is supported.\n","willReplaceOnChanges":true},"period":{"type":"string","description":"Duration of purchase.\n"},"periodType":{"type":"string","description":"The subscription type. Currently, only **Monthly** (subscription) is supported.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Host tag information.\n","willReplaceOnChanges":true},"userData":{"type":"string","description":"User-defined script data. The maximum size of the original data is 16kB.\n"},"userDataEncoded":{"type":"boolean","description":"Whether custom data is encoded in Base64 format.\n"},"vpcId":{"type":"string","description":"VPCID of the VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the virtual switch.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cdn/domain:Domain":{"properties":{"authConfig":{"$ref":"#/types/alicloud:cdn/DomainAuthConfig:DomainAuthConfig","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"blockIps":{"type":"array","items":{"type":"string"},"deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"cacheConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cdn/DomainCacheConfig:DomainCacheConfig"},"deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"cdnType":{"type":"string"},"certificateConfig":{"$ref":"#/types/alicloud:cdn/DomainCertificateConfig:DomainCertificateConfig","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"domainName":{"type":"string"},"httpHeaderConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cdn/DomainHttpHeaderConfig:DomainHttpHeaderConfig"},"deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"optimizeEnable":{"type":"string","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"page404Config":{"$ref":"#/types/alicloud:cdn/DomainPage404Config:DomainPage404Config","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"pageCompressEnable":{"type":"string","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"parameterFilterConfig":{"$ref":"#/types/alicloud:cdn/DomainParameterFilterConfig:DomainParameterFilterConfig","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"rangeEnable":{"type":"string","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"referConfig":{"$ref":"#/types/alicloud:cdn/DomainReferConfig:DomainReferConfig","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"scope":{"type":"string"},"sourcePort":{"type":"integer","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainNew`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainNew`\" pulumi-lang-go=\"`cdn.DomainNew`\" pulumi-lang-python=\"`cdn.DomainNew`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainNew`\" pulumi-lang-java=\"`alicloud.cdn.DomainNew`\"\u003e`alicloud.cdn.DomainNew`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e block \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e argument instead."},"sourceType":{"type":"string","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainNew`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainNew`\" pulumi-lang-go=\"`cdn.DomainNew`\" pulumi-lang-python=\"`cdn.DomainNew`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainNew`\" pulumi-lang-java=\"`alicloud.cdn.DomainNew`\"\u003e`alicloud.cdn.DomainNew`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e block \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e argument instead."},"sources":{"type":"array","items":{"type":"string"},"deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainNew`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainNew`\" pulumi-lang-go=\"`cdn.DomainNew`\" pulumi-lang-python=\"`cdn.DomainNew`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainNew`\" pulumi-lang-java=\"`alicloud.cdn.DomainNew`\"\u003e`alicloud.cdn.DomainNew`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e argument instead."},"videoSeekEnable":{"type":"string","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."}},"required":["cdnType","domainName","scope"],"inputProperties":{"authConfig":{"$ref":"#/types/alicloud:cdn/DomainAuthConfig:DomainAuthConfig","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"blockIps":{"type":"array","items":{"type":"string"},"deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"cacheConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cdn/DomainCacheConfig:DomainCacheConfig"},"deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"cdnType":{"type":"string"},"certificateConfig":{"$ref":"#/types/alicloud:cdn/DomainCertificateConfig:DomainCertificateConfig","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"domainName":{"type":"string"},"httpHeaderConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cdn/DomainHttpHeaderConfig:DomainHttpHeaderConfig"},"deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"optimizeEnable":{"type":"string","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"page404Config":{"$ref":"#/types/alicloud:cdn/DomainPage404Config:DomainPage404Config","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"pageCompressEnable":{"type":"string","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"parameterFilterConfig":{"$ref":"#/types/alicloud:cdn/DomainParameterFilterConfig:DomainParameterFilterConfig","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"rangeEnable":{"type":"string","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"referConfig":{"$ref":"#/types/alicloud:cdn/DomainReferConfig:DomainReferConfig","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"scope":{"type":"string"},"sourcePort":{"type":"integer","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainNew`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainNew`\" pulumi-lang-go=\"`cdn.DomainNew`\" pulumi-lang-python=\"`cdn.DomainNew`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainNew`\" pulumi-lang-java=\"`alicloud.cdn.DomainNew`\"\u003e`alicloud.cdn.DomainNew`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e block \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e argument instead."},"sourceType":{"type":"string","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainNew`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainNew`\" pulumi-lang-go=\"`cdn.DomainNew`\" pulumi-lang-python=\"`cdn.DomainNew`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainNew`\" pulumi-lang-java=\"`alicloud.cdn.DomainNew`\"\u003e`alicloud.cdn.DomainNew`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e block \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e argument instead."},"sources":{"type":"array","items":{"type":"string"},"deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainNew`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainNew`\" pulumi-lang-go=\"`cdn.DomainNew`\" pulumi-lang-python=\"`cdn.DomainNew`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainNew`\" pulumi-lang-java=\"`alicloud.cdn.DomainNew`\"\u003e`alicloud.cdn.DomainNew`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e argument instead."},"videoSeekEnable":{"type":"string","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."}},"requiredInputs":["cdnType","domainName"],"stateInputs":{"description":"Input properties used for looking up and filtering Domain resources.\n","properties":{"authConfig":{"$ref":"#/types/alicloud:cdn/DomainAuthConfig:DomainAuthConfig","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"blockIps":{"type":"array","items":{"type":"string"},"deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"cacheConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cdn/DomainCacheConfig:DomainCacheConfig"},"deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"cdnType":{"type":"string"},"certificateConfig":{"$ref":"#/types/alicloud:cdn/DomainCertificateConfig:DomainCertificateConfig","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"domainName":{"type":"string"},"httpHeaderConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cdn/DomainHttpHeaderConfig:DomainHttpHeaderConfig"},"deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"optimizeEnable":{"type":"string","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"page404Config":{"$ref":"#/types/alicloud:cdn/DomainPage404Config:DomainPage404Config","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"pageCompressEnable":{"type":"string","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"parameterFilterConfig":{"$ref":"#/types/alicloud:cdn/DomainParameterFilterConfig:DomainParameterFilterConfig","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"rangeEnable":{"type":"string","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"referConfig":{"$ref":"#/types/alicloud:cdn/DomainReferConfig:DomainReferConfig","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."},"scope":{"type":"string"},"sourcePort":{"type":"integer","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainNew`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainNew`\" pulumi-lang-go=\"`cdn.DomainNew`\" pulumi-lang-python=\"`cdn.DomainNew`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainNew`\" pulumi-lang-java=\"`alicloud.cdn.DomainNew`\"\u003e`alicloud.cdn.DomainNew`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e block \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e argument instead."},"sourceType":{"type":"string","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainNew`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainNew`\" pulumi-lang-go=\"`cdn.DomainNew`\" pulumi-lang-python=\"`cdn.DomainNew`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainNew`\" pulumi-lang-java=\"`alicloud.cdn.DomainNew`\"\u003e`alicloud.cdn.DomainNew`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e block \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e argument instead."},"sources":{"type":"array","items":{"type":"string"},"deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainNew`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainNew`\" pulumi-lang-go=\"`cdn.DomainNew`\" pulumi-lang-python=\"`cdn.DomainNew`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainNew`\" pulumi-lang-java=\"`alicloud.cdn.DomainNew`\"\u003e`alicloud.cdn.DomainNew`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e argument instead."},"videoSeekEnable":{"type":"string","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-dotnet=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-go=\"`cdn.DomainConfig`\" pulumi-lang-python=\"`cdn.DomainConfig`\" pulumi-lang-yaml=\"`alicloud.cdn.DomainConfig`\" pulumi-lang-java=\"`alicloud.cdn.DomainConfig`\"\u003e`alicloud.cdn.DomainConfig`\u003c/span\u003e configuration \u003cspan pulumi-lang-nodejs=\"`functionName`\" pulumi-lang-dotnet=\"`FunctionName`\" pulumi-lang-go=\"`functionName`\" pulumi-lang-python=\"`function_name`\" pulumi-lang-yaml=\"`functionName`\" pulumi-lang-java=\"`functionName`\"\u003e`function_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e arguments instead."}},"type":"object"}},"alicloud:cdn/domainConfig:DomainConfig":{"description":"Provides a Cdn Domain Config resource.\n\nFor information about Cdn Domain Config and how to use it, see [What is Domain Config](https://www.alibabacloud.com/help/en/doc-detail/90915.htm)\n\n\u003e **NOTE:** Available since v1.34.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\n// Create a new Domain config.\nconst domain = new alicloud.cdn.DomainNew(\"domain\", {\n    domainName: `mycdndomain-${_default.result}.alicloud-provider.cn`,\n    cdnType: \"web\",\n    scope: \"overseas\",\n    sources: [{\n        content: \"1.1.1.1\",\n        type: \"ipaddr\",\n        priority: 20,\n        port: 80,\n        weight: 15,\n    }],\n});\nconst config = new alicloud.cdn.DomainConfig(\"config\", {\n    domainName: domain.domainName,\n    functionName: \"ip_allow_list_set\",\n    functionArgs: [{\n        argName: \"ip_list\",\n        argValue: \"110.110.110.110\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\n# Create a new Domain config.\ndomain = alicloud.cdn.DomainNew(\"domain\",\n    domain_name=f\"mycdndomain-{default['result']}.alicloud-provider.cn\",\n    cdn_type=\"web\",\n    scope=\"overseas\",\n    sources=[{\n        \"content\": \"1.1.1.1\",\n        \"type\": \"ipaddr\",\n        \"priority\": 20,\n        \"port\": 80,\n        \"weight\": 15,\n    }])\nconfig = alicloud.cdn.DomainConfig(\"config\",\n    domain_name=domain.domain_name,\n    function_name=\"ip_allow_list_set\",\n    function_args=[{\n        \"arg_name\": \"ip_list\",\n        \"arg_value\": \"110.110.110.110\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    // Create a new Domain config.\n    var domain = new AliCloud.Cdn.DomainNew(\"domain\", new()\n    {\n        DomainName = $\"mycdndomain-{@default.Result}.alicloud-provider.cn\",\n        CdnType = \"web\",\n        Scope = \"overseas\",\n        Sources = new[]\n        {\n            new AliCloud.Cdn.Inputs.DomainNewSourceArgs\n            {\n                Content = \"1.1.1.1\",\n                Type = \"ipaddr\",\n                Priority = 20,\n                Port = 80,\n                Weight = 15,\n            },\n        },\n    });\n\n    var config = new AliCloud.Cdn.DomainConfig(\"config\", new()\n    {\n        DomainName = domain.DomainName,\n        FunctionName = \"ip_allow_list_set\",\n        FunctionArgs = new[]\n        {\n            new AliCloud.Cdn.Inputs.DomainConfigFunctionArgArgs\n            {\n                ArgName = \"ip_list\",\n                ArgValue = \"110.110.110.110\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cdn\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new Domain config.\n\t\tdomain, err := cdn.NewDomainNew(ctx, \"domain\", \u0026cdn.DomainNewArgs{\n\t\t\tDomainName: pulumi.Sprintf(\"mycdndomain-%v.alicloud-provider.cn\", _default.Result),\n\t\t\tCdnType:    pulumi.String(\"web\"),\n\t\t\tScope:      pulumi.String(\"overseas\"),\n\t\t\tSources: cdn.DomainNewSourceArray{\n\t\t\t\t\u0026cdn.DomainNewSourceArgs{\n\t\t\t\t\tContent:  pulumi.String(\"1.1.1.1\"),\n\t\t\t\t\tType:     pulumi.String(\"ipaddr\"),\n\t\t\t\t\tPriority: pulumi.Int(20),\n\t\t\t\t\tPort:     pulumi.Int(80),\n\t\t\t\t\tWeight:   pulumi.Int(15),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cdn.NewDomainConfig(ctx, \"config\", \u0026cdn.DomainConfigArgs{\n\t\t\tDomainName:   domain.DomainName,\n\t\t\tFunctionName: pulumi.String(\"ip_allow_list_set\"),\n\t\t\tFunctionArgs: cdn.DomainConfigFunctionArgArray{\n\t\t\t\t\u0026cdn.DomainConfigFunctionArgArgs{\n\t\t\t\t\tArgName:  pulumi.String(\"ip_list\"),\n\t\t\t\t\tArgValue: pulumi.String(\"110.110.110.110\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cdn.DomainNew;\nimport com.pulumi.alicloud.cdn.DomainNewArgs;\nimport com.pulumi.alicloud.cdn.inputs.DomainNewSourceArgs;\nimport com.pulumi.alicloud.cdn.DomainConfig;\nimport com.pulumi.alicloud.cdn.DomainConfigArgs;\nimport com.pulumi.alicloud.cdn.inputs.DomainConfigFunctionArgArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        // Create a new Domain config.\n        var domain = new DomainNew(\"domain\", DomainNewArgs.builder()\n            .domainName(String.format(\"mycdndomain-%s.alicloud-provider.cn\", default_.result()))\n            .cdnType(\"web\")\n            .scope(\"overseas\")\n            .sources(DomainNewSourceArgs.builder()\n                .content(\"1.1.1.1\")\n                .type(\"ipaddr\")\n                .priority(20)\n                .port(80)\n                .weight(15)\n                .build())\n            .build());\n\n        var config = new DomainConfig(\"config\", DomainConfigArgs.builder()\n            .domainName(domain.domainName())\n            .functionName(\"ip_allow_list_set\")\n            .functionArgs(DomainConfigFunctionArgArgs.builder()\n                .argName(\"ip_list\")\n                .argValue(\"110.110.110.110\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  # Create a new Domain config.\n  domain:\n    type: alicloud:cdn:DomainNew\n    properties:\n      domainName: mycdndomain-${default.result}.alicloud-provider.cn\n      cdnType: web\n      scope: overseas\n      sources:\n        - content: 1.1.1.1\n          type: ipaddr\n          priority: '20'\n          port: 80\n          weight: '15'\n  config:\n    type: alicloud:cdn:DomainConfig\n    properties:\n      domainName: ${domain.domainName}\n      functionName: ip_allow_list_set\n      functionArgs:\n        - argName: ip_list\n          argValue: 110.110.110.110\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCDN domain config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cdn/domainConfig:DomainConfig example \u003cdomain_name\u003e:\u003cfunction_name\u003e:\u003cconfig_id\u003e\n```\n\n**NOTE:** Before provider version 1.132.0, CDN domain config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cdn/domainConfig:DomainConfig example \u003cdomain_name\u003e:\u003cfunction_name\u003e\n```\n\n","properties":{"configId":{"type":"string","description":"(Available since v1.132.0) The ID of the domain config function.\n"},"domainName":{"type":"string","description":"Name of the accelerated domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n"},"functionArgs":{"type":"array","items":{"$ref":"#/types/alicloud:cdn/DomainConfigFunctionArg:DomainConfigFunctionArg"},"description":"The args of the domain config. See \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e below.\n"},"functionName":{"type":"string","description":"The name of the domain config.\n"},"parentId":{"type":"string","description":"By configuring the function condition (rule engine) in the domain name configuration function parameters, Rule conditions can be created (Rule conditions can match and filter user requests by identifying various parameters carried in user requests). After each rule condition is created, a corresponding ConfigId will be generated, and the ConfigId can be referenced by other functions as a ParentId parameter, in this way, the rule conditions can be combined with the functional configuration to form a more flexible configuration.\n"},"status":{"type":"string","description":"(Available since v1.132.0) The Status of the function.\n"}},"required":["configId","domainName","functionArgs","functionName","parentId","status"],"inputProperties":{"domainName":{"type":"string","description":"Name of the accelerated domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","willReplaceOnChanges":true},"functionArgs":{"type":"array","items":{"$ref":"#/types/alicloud:cdn/DomainConfigFunctionArg:DomainConfigFunctionArg"},"description":"The args of the domain config. See \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e below.\n"},"functionName":{"type":"string","description":"The name of the domain config.\n","willReplaceOnChanges":true},"parentId":{"type":"string","description":"By configuring the function condition (rule engine) in the domain name configuration function parameters, Rule conditions can be created (Rule conditions can match and filter user requests by identifying various parameters carried in user requests). After each rule condition is created, a corresponding ConfigId will be generated, and the ConfigId can be referenced by other functions as a ParentId parameter, in this way, the rule conditions can be combined with the functional configuration to form a more flexible configuration.\n"}},"requiredInputs":["domainName","functionArgs","functionName"],"stateInputs":{"description":"Input properties used for looking up and filtering DomainConfig resources.\n","properties":{"configId":{"type":"string","description":"(Available since v1.132.0) The ID of the domain config function.\n"},"domainName":{"type":"string","description":"Name of the accelerated domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","willReplaceOnChanges":true},"functionArgs":{"type":"array","items":{"$ref":"#/types/alicloud:cdn/DomainConfigFunctionArg:DomainConfigFunctionArg"},"description":"The args of the domain config. See \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e below.\n"},"functionName":{"type":"string","description":"The name of the domain config.\n","willReplaceOnChanges":true},"parentId":{"type":"string","description":"By configuring the function condition (rule engine) in the domain name configuration function parameters, Rule conditions can be created (Rule conditions can match and filter user requests by identifying various parameters carried in user requests). After each rule condition is created, a corresponding ConfigId will be generated, and the ConfigId can be referenced by other functions as a ParentId parameter, in this way, the rule conditions can be combined with the functional configuration to form a more flexible configuration.\n"},"status":{"type":"string","description":"(Available since v1.132.0) The Status of the function.\n"}},"type":"object"}},"alicloud:cdn/domainNew:DomainNew":{"description":"Provides a CDN Domain resource.\n\nCDN domain name.\n\nFor information about CDN Domain and how to use it, see [What is Domain](https://www.alibabacloud.com/help/en/cdn/developer-reference/api-cdn-2018-05-10-addcdndomain).\n\n\u003e **NOTE:** Available since v1.34.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultDomainNew = new alicloud.cdn.DomainNew(\"default\", {\n    scope: \"overseas\",\n    domainName: `mycdndomain-${_default.result}.alicloud-provider.cn`,\n    cdnType: \"web\",\n    sources: [{\n        type: \"ipaddr\",\n        content: \"1.1.1.1\",\n        priority: 20,\n        port: 80,\n        weight: 15,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_domain_new = alicloud.cdn.DomainNew(\"default\",\n    scope=\"overseas\",\n    domain_name=f\"mycdndomain-{default['result']}.alicloud-provider.cn\",\n    cdn_type=\"web\",\n    sources=[{\n        \"type\": \"ipaddr\",\n        \"content\": \"1.1.1.1\",\n        \"priority\": 20,\n        \"port\": 80,\n        \"weight\": 15,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultDomainNew = new AliCloud.Cdn.DomainNew(\"default\", new()\n    {\n        Scope = \"overseas\",\n        DomainName = $\"mycdndomain-{@default.Result}.alicloud-provider.cn\",\n        CdnType = \"web\",\n        Sources = new[]\n        {\n            new AliCloud.Cdn.Inputs.DomainNewSourceArgs\n            {\n                Type = \"ipaddr\",\n                Content = \"1.1.1.1\",\n                Priority = 20,\n                Port = 80,\n                Weight = 15,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cdn\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cdn.NewDomainNew(ctx, \"default\", \u0026cdn.DomainNewArgs{\n\t\t\tScope:      pulumi.String(\"overseas\"),\n\t\t\tDomainName: pulumi.Sprintf(\"mycdndomain-%v.alicloud-provider.cn\", _default.Result),\n\t\t\tCdnType:    pulumi.String(\"web\"),\n\t\t\tSources: cdn.DomainNewSourceArray{\n\t\t\t\t\u0026cdn.DomainNewSourceArgs{\n\t\t\t\t\tType:     pulumi.String(\"ipaddr\"),\n\t\t\t\t\tContent:  pulumi.String(\"1.1.1.1\"),\n\t\t\t\t\tPriority: pulumi.Int(20),\n\t\t\t\t\tPort:     pulumi.Int(80),\n\t\t\t\t\tWeight:   pulumi.Int(15),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cdn.DomainNew;\nimport com.pulumi.alicloud.cdn.DomainNewArgs;\nimport com.pulumi.alicloud.cdn.inputs.DomainNewSourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultDomainNew = new DomainNew(\"defaultDomainNew\", DomainNewArgs.builder()\n            .scope(\"overseas\")\n            .domainName(String.format(\"mycdndomain-%s.alicloud-provider.cn\", default_.result()))\n            .cdnType(\"web\")\n            .sources(DomainNewSourceArgs.builder()\n                .type(\"ipaddr\")\n                .content(\"1.1.1.1\")\n                .priority(20)\n                .port(80)\n                .weight(15)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultDomainNew:\n    type: alicloud:cdn:DomainNew\n    name: default\n    properties:\n      scope: overseas\n      domainName: mycdndomain-${default.result}.alicloud-provider.cn\n      cdnType: web\n      sources:\n        - type: ipaddr\n          content: 1.1.1.1\n          priority: 20\n          port: 80\n          weight: 15\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCDN Domain can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cdn/domainNew:DomainNew example \u003cid\u003e\n```\n\n","properties":{"cdnType":{"type":"string","description":"Cdn type of the accelerated domain. Valid values are \u003cspan pulumi-lang-nodejs=\"`web`\" pulumi-lang-dotnet=\"`Web`\" pulumi-lang-go=\"`web`\" pulumi-lang-python=\"`web`\" pulumi-lang-yaml=\"`web`\" pulumi-lang-java=\"`web`\"\u003e`web`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`download`\" pulumi-lang-dotnet=\"`Download`\" pulumi-lang-go=\"`download`\" pulumi-lang-python=\"`download`\" pulumi-lang-yaml=\"`download`\" pulumi-lang-java=\"`download`\"\u003e`download`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`video`\" pulumi-lang-dotnet=\"`Video`\" pulumi-lang-go=\"`video`\" pulumi-lang-python=\"`video`\" pulumi-lang-yaml=\"`video`\" pulumi-lang-java=\"`video`\"\u003e`video`\u003c/span\u003e.\n"},"certificateConfig":{"$ref":"#/types/alicloud:cdn/DomainNewCertificateConfig:DomainNewCertificateConfig","description":"Certificate configuration See \u003cspan pulumi-lang-nodejs=\"`certificateConfig`\" pulumi-lang-dotnet=\"`CertificateConfig`\" pulumi-lang-go=\"`certificateConfig`\" pulumi-lang-python=\"`certificate_config`\" pulumi-lang-yaml=\"`certificateConfig`\" pulumi-lang-java=\"`certificateConfig`\"\u003e`certificate_config`\u003c/span\u003e below.\n"},"checkUrl":{"type":"string","description":"Health test URL.\n"},"cname":{"type":"string","description":"The CNAME domain name corresponding to the accelerated domain name.\n"},"domainName":{"type":"string","description":"Name of the accelerated domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n"},"env":{"type":"string","description":"Whether to issue a certificate in grayscale. Value: staging: issued certificate in grayscale. Not passing or passing any other value is a formal certificate.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"scope":{"type":"string","description":"Scope of the accelerated domain. Valid values are \u003cspan pulumi-lang-nodejs=\"`domestic`\" pulumi-lang-dotnet=\"`Domestic`\" pulumi-lang-go=\"`domestic`\" pulumi-lang-python=\"`domestic`\" pulumi-lang-yaml=\"`domestic`\" pulumi-lang-java=\"`domestic`\"\u003e`domestic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`overseas`\" pulumi-lang-dotnet=\"`Overseas`\" pulumi-lang-go=\"`overseas`\" pulumi-lang-python=\"`overseas`\" pulumi-lang-yaml=\"`overseas`\" pulumi-lang-java=\"`overseas`\"\u003e`overseas`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`global`\" pulumi-lang-dotnet=\"`Global`\" pulumi-lang-go=\"`global`\" pulumi-lang-python=\"`global`\" pulumi-lang-yaml=\"`global`\" pulumi-lang-java=\"`global`\"\u003e`global`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`domestic`\" pulumi-lang-dotnet=\"`Domestic`\" pulumi-lang-go=\"`domestic`\" pulumi-lang-python=\"`domestic`\" pulumi-lang-yaml=\"`domestic`\" pulumi-lang-java=\"`domestic`\"\u003e`domestic`\u003c/span\u003e. This parameter's setting is valid Only for the international users and domestic L3 and above users. Value:\n"},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:cdn/DomainNewSource:DomainNewSource"},"description":"The source address list of the accelerated domain. Defaults to null. See \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the resource, valid values: \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"}},"required":["cdnType","certificateConfig","cname","domainName","resourceGroupId","scope","sources","status"],"inputProperties":{"cdnType":{"type":"string","description":"Cdn type of the accelerated domain. Valid values are \u003cspan pulumi-lang-nodejs=\"`web`\" pulumi-lang-dotnet=\"`Web`\" pulumi-lang-go=\"`web`\" pulumi-lang-python=\"`web`\" pulumi-lang-yaml=\"`web`\" pulumi-lang-java=\"`web`\"\u003e`web`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`download`\" pulumi-lang-dotnet=\"`Download`\" pulumi-lang-go=\"`download`\" pulumi-lang-python=\"`download`\" pulumi-lang-yaml=\"`download`\" pulumi-lang-java=\"`download`\"\u003e`download`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`video`\" pulumi-lang-dotnet=\"`Video`\" pulumi-lang-go=\"`video`\" pulumi-lang-python=\"`video`\" pulumi-lang-yaml=\"`video`\" pulumi-lang-java=\"`video`\"\u003e`video`\u003c/span\u003e.\n","willReplaceOnChanges":true},"certificateConfig":{"$ref":"#/types/alicloud:cdn/DomainNewCertificateConfig:DomainNewCertificateConfig","description":"Certificate configuration See \u003cspan pulumi-lang-nodejs=\"`certificateConfig`\" pulumi-lang-dotnet=\"`CertificateConfig`\" pulumi-lang-go=\"`certificateConfig`\" pulumi-lang-python=\"`certificate_config`\" pulumi-lang-yaml=\"`certificateConfig`\" pulumi-lang-java=\"`certificateConfig`\"\u003e`certificate_config`\u003c/span\u003e below.\n"},"checkUrl":{"type":"string","description":"Health test URL.\n"},"domainName":{"type":"string","description":"Name of the accelerated domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","willReplaceOnChanges":true},"env":{"type":"string","description":"Whether to issue a certificate in grayscale. Value: staging: issued certificate in grayscale. Not passing or passing any other value is a formal certificate.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"scope":{"type":"string","description":"Scope of the accelerated domain. Valid values are \u003cspan pulumi-lang-nodejs=\"`domestic`\" pulumi-lang-dotnet=\"`Domestic`\" pulumi-lang-go=\"`domestic`\" pulumi-lang-python=\"`domestic`\" pulumi-lang-yaml=\"`domestic`\" pulumi-lang-java=\"`domestic`\"\u003e`domestic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`overseas`\" pulumi-lang-dotnet=\"`Overseas`\" pulumi-lang-go=\"`overseas`\" pulumi-lang-python=\"`overseas`\" pulumi-lang-yaml=\"`overseas`\" pulumi-lang-java=\"`overseas`\"\u003e`overseas`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`global`\" pulumi-lang-dotnet=\"`Global`\" pulumi-lang-go=\"`global`\" pulumi-lang-python=\"`global`\" pulumi-lang-yaml=\"`global`\" pulumi-lang-java=\"`global`\"\u003e`global`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`domestic`\" pulumi-lang-dotnet=\"`Domestic`\" pulumi-lang-go=\"`domestic`\" pulumi-lang-python=\"`domestic`\" pulumi-lang-yaml=\"`domestic`\" pulumi-lang-java=\"`domestic`\"\u003e`domestic`\u003c/span\u003e. This parameter's setting is valid Only for the international users and domestic L3 and above users. Value:\n"},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:cdn/DomainNewSource:DomainNewSource"},"description":"The source address list of the accelerated domain. Defaults to null. See \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the resource, valid values: \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"}},"requiredInputs":["cdnType","domainName","sources"],"stateInputs":{"description":"Input properties used for looking up and filtering DomainNew resources.\n","properties":{"cdnType":{"type":"string","description":"Cdn type of the accelerated domain. Valid values are \u003cspan pulumi-lang-nodejs=\"`web`\" pulumi-lang-dotnet=\"`Web`\" pulumi-lang-go=\"`web`\" pulumi-lang-python=\"`web`\" pulumi-lang-yaml=\"`web`\" pulumi-lang-java=\"`web`\"\u003e`web`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`download`\" pulumi-lang-dotnet=\"`Download`\" pulumi-lang-go=\"`download`\" pulumi-lang-python=\"`download`\" pulumi-lang-yaml=\"`download`\" pulumi-lang-java=\"`download`\"\u003e`download`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`video`\" pulumi-lang-dotnet=\"`Video`\" pulumi-lang-go=\"`video`\" pulumi-lang-python=\"`video`\" pulumi-lang-yaml=\"`video`\" pulumi-lang-java=\"`video`\"\u003e`video`\u003c/span\u003e.\n","willReplaceOnChanges":true},"certificateConfig":{"$ref":"#/types/alicloud:cdn/DomainNewCertificateConfig:DomainNewCertificateConfig","description":"Certificate configuration See \u003cspan pulumi-lang-nodejs=\"`certificateConfig`\" pulumi-lang-dotnet=\"`CertificateConfig`\" pulumi-lang-go=\"`certificateConfig`\" pulumi-lang-python=\"`certificate_config`\" pulumi-lang-yaml=\"`certificateConfig`\" pulumi-lang-java=\"`certificateConfig`\"\u003e`certificate_config`\u003c/span\u003e below.\n"},"checkUrl":{"type":"string","description":"Health test URL.\n"},"cname":{"type":"string","description":"The CNAME domain name corresponding to the accelerated domain name.\n"},"domainName":{"type":"string","description":"Name of the accelerated domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","willReplaceOnChanges":true},"env":{"type":"string","description":"Whether to issue a certificate in grayscale. Value: staging: issued certificate in grayscale. Not passing or passing any other value is a formal certificate.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"scope":{"type":"string","description":"Scope of the accelerated domain. Valid values are \u003cspan pulumi-lang-nodejs=\"`domestic`\" pulumi-lang-dotnet=\"`Domestic`\" pulumi-lang-go=\"`domestic`\" pulumi-lang-python=\"`domestic`\" pulumi-lang-yaml=\"`domestic`\" pulumi-lang-java=\"`domestic`\"\u003e`domestic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`overseas`\" pulumi-lang-dotnet=\"`Overseas`\" pulumi-lang-go=\"`overseas`\" pulumi-lang-python=\"`overseas`\" pulumi-lang-yaml=\"`overseas`\" pulumi-lang-java=\"`overseas`\"\u003e`overseas`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`global`\" pulumi-lang-dotnet=\"`Global`\" pulumi-lang-go=\"`global`\" pulumi-lang-python=\"`global`\" pulumi-lang-yaml=\"`global`\" pulumi-lang-java=\"`global`\"\u003e`global`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`domestic`\" pulumi-lang-dotnet=\"`Domestic`\" pulumi-lang-go=\"`domestic`\" pulumi-lang-python=\"`domestic`\" pulumi-lang-yaml=\"`domestic`\" pulumi-lang-java=\"`domestic`\"\u003e`domestic`\u003c/span\u003e. This parameter's setting is valid Only for the international users and domestic L3 and above users. Value:\n"},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:cdn/DomainNewSource:DomainNewSource"},"description":"The source address list of the accelerated domain. Defaults to null. See \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the resource, valid values: \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"}},"type":"object"}},"alicloud:cdn/fcTrigger:FcTrigger":{"description":"Provides a CDN Fc Trigger resource.\n\nFor information about CDN Fc Trigger and how to use it, see [What is Fc Trigger](https://www.alibabacloud.com/help/en/cdn/developer-reference/api-cdn-2018-05-10-addfctrigger).\n\n\u003e **NOTE:** Available since v1.165.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getAccount({});\nconst defaultGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst example = new alicloud.cdn.FcTrigger(\"example\", {\n    eventMetaName: \"LogFileCreated\",\n    eventMetaVersion: \"1.0.0\",\n    notes: \"example_value\",\n    roleArn: _default.then(_default =\u003e `acs:ram::${_default.id}:role/aliyuncdneventnotificationrole`),\n    sourceArn: _default.then(_default =\u003e `acs:cdn:*:${_default.id}:domain/example.com`),\n    triggerArn: Promise.all([defaultGetRegions, _default]).then(([defaultGetRegions, _default]) =\u003e `acs:fc:${defaultGetRegions.regions?.[0]?.id}:${_default.id}:services/FCTestService/functions/printEvent/triggers/testtrigger`),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_account()\ndefault_get_regions = alicloud.get_regions(current=True)\nexample = alicloud.cdn.FcTrigger(\"example\",\n    event_meta_name=\"LogFileCreated\",\n    event_meta_version=\"1.0.0\",\n    notes=\"example_value\",\n    role_arn=f\"acs:ram::{default.id}:role/aliyuncdneventnotificationrole\",\n    source_arn=f\"acs:cdn:*:{default.id}:domain/example.com\",\n    trigger_arn=f\"acs:fc:{default_get_regions.regions[0].id}:{default.id}:services/FCTestService/functions/printEvent/triggers/testtrigger\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var example = new AliCloud.Cdn.FcTrigger(\"example\", new()\n    {\n        EventMetaName = \"LogFileCreated\",\n        EventMetaVersion = \"1.0.0\",\n        Notes = \"example_value\",\n        RoleArn = @default.Apply(@default =\u003e $\"acs:ram::{@default.Apply(getAccountResult =\u003e getAccountResult.Id)}:role/aliyuncdneventnotificationrole\"),\n        SourceArn = @default.Apply(@default =\u003e $\"acs:cdn:*:{@default.Apply(getAccountResult =\u003e getAccountResult.Id)}:domain/example.com\"),\n        TriggerArn = Output.Tuple(defaultGetRegions, @default).Apply(values =\u003e\n        {\n            var defaultGetRegions = values.Item1;\n            var @default = values.Item2;\n            return $\"acs:fc:{defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}:{@default.Apply(getAccountResult =\u003e getAccountResult.Id)}:services/FCTestService/functions/printEvent/triggers/testtrigger\";\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRegions, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cdn.NewFcTrigger(ctx, \"example\", \u0026cdn.FcTriggerArgs{\n\t\t\tEventMetaName:    pulumi.String(\"LogFileCreated\"),\n\t\t\tEventMetaVersion: pulumi.String(\"1.0.0\"),\n\t\t\tNotes:            pulumi.String(\"example_value\"),\n\t\t\tRoleArn:          pulumi.Sprintf(\"acs:ram::%v:role/aliyuncdneventnotificationrole\", _default.Id),\n\t\t\tSourceArn:        pulumi.Sprintf(\"acs:cdn:*:%v:domain/example.com\", _default.Id),\n\t\t\tTriggerArn:       pulumi.Sprintf(\"acs:fc:%v:%v:services/FCTestService/functions/printEvent/triggers/testtrigger\", defaultGetRegions.Regions[0].Id, _default.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.cdn.FcTrigger;\nimport com.pulumi.alicloud.cdn.FcTriggerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var defaultGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var example = new FcTrigger(\"example\", FcTriggerArgs.builder()\n            .eventMetaName(\"LogFileCreated\")\n            .eventMetaVersion(\"1.0.0\")\n            .notes(\"example_value\")\n            .roleArn(String.format(\"acs:ram::%s:role/aliyuncdneventnotificationrole\", default_.id()))\n            .sourceArn(String.format(\"acs:cdn:*:%s:domain/example.com\", default_.id()))\n            .triggerArn(String.format(\"acs:fc:%s:%s:services/FCTestService/functions/printEvent/triggers/testtrigger\", defaultGetRegions.regions()[0].id(),default_.id()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:cdn:FcTrigger\n    properties:\n      eventMetaName: LogFileCreated\n      eventMetaVersion: 1.0.0\n      notes: example_value\n      roleArn: acs:ram::${default.id}:role/aliyuncdneventnotificationrole\n      sourceArn: acs:cdn:*:${default.id}:domain/example.com\n      triggerArn: acs:fc:${defaultGetRegions.regions[0].id}:${default.id}:services/FCTestService/functions/printEvent/triggers/testtrigger\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  defaultGetRegions:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCDN Fc Trigger can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cdn/fcTrigger:FcTrigger example \u003ctrigger_arn\u003e\n```\n\n","properties":{"eventMetaName":{"type":"string","description":"The name of the Event.\n"},"eventMetaVersion":{"type":"string","description":"The version of the Event.\n"},"functionArn":{"type":"string","description":"The function arn. The value formats as `acs:fc:{RegionID}:{AccountID}:{Filter}`.\n"},"notes":{"type":"string","description":"The Note information.\n"},"roleArn":{"type":"string","description":"The role authorized by RAM. The value formats as `acs:ram::{AccountID}:role/{RoleName}`.\n"},"sourceArn":{"type":"string","description":"Resources and filters for event listening. The value formats as `acs:cdn:{RegionID}:{AccountID}:{Filter}`.\n"},"triggerArn":{"type":"string","description":"The trigger corresponding to the function Compute Service. The value formats as `acs:fc:{RegionID}:{AccountID}:{Filter}`. See [Create a CDN Fc Trigger](https://www.alibabacloud.com/help/en/cdn/developer-reference/api-cdn-2018-05-10-addfctrigger) for more details.\n"}},"required":["eventMetaName","eventMetaVersion","notes","roleArn","sourceArn","triggerArn"],"inputProperties":{"eventMetaName":{"type":"string","description":"The name of the Event.\n","willReplaceOnChanges":true},"eventMetaVersion":{"type":"string","description":"The version of the Event.\n","willReplaceOnChanges":true},"functionArn":{"type":"string","description":"The function arn. The value formats as `acs:fc:{RegionID}:{AccountID}:{Filter}`.\n"},"notes":{"type":"string","description":"The Note information.\n"},"roleArn":{"type":"string","description":"The role authorized by RAM. The value formats as `acs:ram::{AccountID}:role/{RoleName}`.\n"},"sourceArn":{"type":"string","description":"Resources and filters for event listening. The value formats as `acs:cdn:{RegionID}:{AccountID}:{Filter}`.\n"},"triggerArn":{"type":"string","description":"The trigger corresponding to the function Compute Service. The value formats as `acs:fc:{RegionID}:{AccountID}:{Filter}`. See [Create a CDN Fc Trigger](https://www.alibabacloud.com/help/en/cdn/developer-reference/api-cdn-2018-05-10-addfctrigger) for more details.\n","willReplaceOnChanges":true}},"requiredInputs":["eventMetaName","eventMetaVersion","notes","roleArn","sourceArn","triggerArn"],"stateInputs":{"description":"Input properties used for looking up and filtering FcTrigger resources.\n","properties":{"eventMetaName":{"type":"string","description":"The name of the Event.\n","willReplaceOnChanges":true},"eventMetaVersion":{"type":"string","description":"The version of the Event.\n","willReplaceOnChanges":true},"functionArn":{"type":"string","description":"The function arn. The value formats as `acs:fc:{RegionID}:{AccountID}:{Filter}`.\n"},"notes":{"type":"string","description":"The Note information.\n"},"roleArn":{"type":"string","description":"The role authorized by RAM. The value formats as `acs:ram::{AccountID}:role/{RoleName}`.\n"},"sourceArn":{"type":"string","description":"Resources and filters for event listening. The value formats as `acs:cdn:{RegionID}:{AccountID}:{Filter}`.\n"},"triggerArn":{"type":"string","description":"The trigger corresponding to the function Compute Service. The value formats as `acs:fc:{RegionID}:{AccountID}:{Filter}`. See [Create a CDN Fc Trigger](https://www.alibabacloud.com/help/en/cdn/developer-reference/api-cdn-2018-05-10-addfctrigger) for more details.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cdn/realTimeLogDelivery:RealTimeLogDelivery":{"description":"Provides a CDN Real Time Log Delivery resource.\n\nAccelerate domain name real-time log push.\n\nFor information about CDN Real Time Log Delivery and how to use it, see [What is Real Time Log Delivery](https://www.alibabacloud.com/help/en/cdn/developer-reference/api-cdn-2018-05-10-createrealtimelogdelivery).\n\n\u003e **NOTE:** Available since v1.134.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultDomainNew = new alicloud.cdn.DomainNew(\"default\", {\n    scope: \"overseas\",\n    domainName: `mycdndomain-${defaultInteger.result}.alicloud-provider.cn`,\n    cdnType: \"web\",\n    sources: [{\n        type: \"ipaddr\",\n        content: \"1.1.3.1\",\n        priority: 20,\n        port: 80,\n        weight: 15,\n    }],\n});\nconst defaultProject = new alicloud.log.Project(\"default\", {\n    projectName: `terraform-example-${defaultInteger.result}`,\n    description: \"terraform-example\",\n});\nconst defaultStore = new alicloud.log.Store(\"default\", {\n    projectName: defaultProject.projectName,\n    logstoreName: \"example-store\",\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultRealTimeLogDelivery = new alicloud.cdn.RealTimeLogDelivery(\"default\", {\n    domain: defaultDomainNew.domainName,\n    logstore: defaultStore.logstoreName,\n    project: defaultProject.projectName,\n    slsRegion: _default.then(_default =\u003e _default.regions?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_domain_new = alicloud.cdn.DomainNew(\"default\",\n    scope=\"overseas\",\n    domain_name=f\"mycdndomain-{default_integer['result']}.alicloud-provider.cn\",\n    cdn_type=\"web\",\n    sources=[{\n        \"type\": \"ipaddr\",\n        \"content\": \"1.1.3.1\",\n        \"priority\": 20,\n        \"port\": 80,\n        \"weight\": 15,\n    }])\ndefault_project = alicloud.log.Project(\"default\",\n    project_name=f\"terraform-example-{default_integer['result']}\",\n    description=\"terraform-example\")\ndefault_store = alicloud.log.Store(\"default\",\n    project_name=default_project.project_name,\n    logstore_name=\"example-store\",\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\ndefault = alicloud.get_regions(current=True)\ndefault_real_time_log_delivery = alicloud.cdn.RealTimeLogDelivery(\"default\",\n    domain=default_domain_new.domain_name,\n    logstore=default_store.logstore_name,\n    project=default_project.project_name,\n    sls_region=default.regions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultDomainNew = new AliCloud.Cdn.DomainNew(\"default\", new()\n    {\n        Scope = \"overseas\",\n        DomainName = $\"mycdndomain-{defaultInteger.Result}.alicloud-provider.cn\",\n        CdnType = \"web\",\n        Sources = new[]\n        {\n            new AliCloud.Cdn.Inputs.DomainNewSourceArgs\n            {\n                Type = \"ipaddr\",\n                Content = \"1.1.3.1\",\n                Priority = 20,\n                Port = 80,\n                Weight = 15,\n            },\n        },\n    });\n\n    var defaultProject = new AliCloud.Log.Project(\"default\", new()\n    {\n        ProjectName = $\"terraform-example-{defaultInteger.Result}\",\n        Description = \"terraform-example\",\n    });\n\n    var defaultStore = new AliCloud.Log.Store(\"default\", new()\n    {\n        ProjectName = defaultProject.ProjectName,\n        LogstoreName = \"example-store\",\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultRealTimeLogDelivery = new AliCloud.Cdn.RealTimeLogDelivery(\"default\", new()\n    {\n        Domain = defaultDomainNew.DomainName,\n        Logstore = defaultStore.LogstoreName,\n        Project = defaultProject.ProjectName,\n        SlsRegion = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cdn\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDomainNew, err := cdn.NewDomainNew(ctx, \"default\", \u0026cdn.DomainNewArgs{\n\t\t\tScope:      pulumi.String(\"overseas\"),\n\t\t\tDomainName: pulumi.Sprintf(\"mycdndomain-%v.alicloud-provider.cn\", defaultInteger.Result),\n\t\t\tCdnType:    pulumi.String(\"web\"),\n\t\t\tSources: cdn.DomainNewSourceArray{\n\t\t\t\t\u0026cdn.DomainNewSourceArgs{\n\t\t\t\t\tType:     pulumi.String(\"ipaddr\"),\n\t\t\t\t\tContent:  pulumi.String(\"1.1.3.1\"),\n\t\t\t\t\tPriority: pulumi.Int(20),\n\t\t\t\t\tPort:     pulumi.Int(80),\n\t\t\t\t\tWeight:   pulumi.Int(15),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultProject, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStore, err := log.NewStore(ctx, \"default\", \u0026log.StoreArgs{\n\t\t\tProjectName:        defaultProject.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(\"example-store\"),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cdn.NewRealTimeLogDelivery(ctx, \"default\", \u0026cdn.RealTimeLogDeliveryArgs{\n\t\t\tDomain:    defaultDomainNew.DomainName,\n\t\t\tLogstore:  defaultStore.LogstoreName,\n\t\t\tProject:   defaultProject.ProjectName,\n\t\t\tSlsRegion: pulumi.String(_default.Regions[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cdn.DomainNew;\nimport com.pulumi.alicloud.cdn.DomainNewArgs;\nimport com.pulumi.alicloud.cdn.inputs.DomainNewSourceArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.cdn.RealTimeLogDelivery;\nimport com.pulumi.alicloud.cdn.RealTimeLogDeliveryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultDomainNew = new DomainNew(\"defaultDomainNew\", DomainNewArgs.builder()\n            .scope(\"overseas\")\n            .domainName(String.format(\"mycdndomain-%s.alicloud-provider.cn\", defaultInteger.result()))\n            .cdnType(\"web\")\n            .sources(DomainNewSourceArgs.builder()\n                .type(\"ipaddr\")\n                .content(\"1.1.3.1\")\n                .priority(20)\n                .port(80)\n                .weight(15)\n                .build())\n            .build());\n\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .projectName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultStore = new Store(\"defaultStore\", StoreArgs.builder()\n            .projectName(defaultProject.projectName())\n            .logstoreName(\"example-store\")\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultRealTimeLogDelivery = new RealTimeLogDelivery(\"defaultRealTimeLogDelivery\", RealTimeLogDeliveryArgs.builder()\n            .domain(defaultDomainNew.domainName())\n            .logstore(defaultStore.logstoreName())\n            .project(defaultProject.projectName())\n            .slsRegion(default_.regions()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultDomainNew:\n    type: alicloud:cdn:DomainNew\n    name: default\n    properties:\n      scope: overseas\n      domainName: mycdndomain-${defaultInteger.result}.alicloud-provider.cn\n      cdnType: web\n      sources:\n        - type: ipaddr\n          content: 1.1.3.1\n          priority: 20\n          port: 80\n          weight: 15\n  defaultProject:\n    type: alicloud:log:Project\n    name: default\n    properties:\n      projectName: terraform-example-${defaultInteger.result}\n      description: terraform-example\n  defaultStore:\n    type: alicloud:log:Store\n    name: default\n    properties:\n      projectName: ${defaultProject.projectName}\n      logstoreName: example-store\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  defaultRealTimeLogDelivery:\n    type: alicloud:cdn:RealTimeLogDelivery\n    name: default\n    properties:\n      domain: ${defaultDomainNew.domainName}\n      logstore: ${defaultStore.logstoreName}\n      project: ${defaultProject.projectName}\n      slsRegion: ${default.regions[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCDN Real Time Log Delivery can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cdn/realTimeLogDelivery:RealTimeLogDelivery example \u003cid\u003e\n```\n\n","properties":{"domain":{"type":"string","description":"The accelerated domain name for which you want to disable real-time log delivery. You can specify multiple domain names and separate them with commas (,).\n"},"logstore":{"type":"string","description":"The ID of the region where the Log Service project is deployed. You can specify multiple region IDs and separate them with commas (,).\n\nFor more information about regions, see [Regions that support real-time log delivery](https://www.alibabacloud.com/help/en/doc-detail/144883.html).\n"},"project":{"type":"string","description":"The name of the Logstore that collects log data from Alibaba Cloud CDN in real time. You can specify multiple Logstore names and separate them with commas (,).\n"},"slsRegion":{"type":"string","description":"The ID of the region where the Log Service project is deployed. For more information, see [Regions that support real-time log delivery](https://www.alibabacloud.com/help/en/doc-detail/144883.html).\n"},"status":{"type":"string","description":"Resource attribute fields that represent the status of the resource.\n\nValue:\n- offline\n- online\n"}},"required":["domain","logstore","project","slsRegion","status"],"inputProperties":{"domain":{"type":"string","description":"The accelerated domain name for which you want to disable real-time log delivery. You can specify multiple domain names and separate them with commas (,).\n","willReplaceOnChanges":true},"logstore":{"type":"string","description":"The ID of the region where the Log Service project is deployed. You can specify multiple region IDs and separate them with commas (,).\n\nFor more information about regions, see [Regions that support real-time log delivery](https://www.alibabacloud.com/help/en/doc-detail/144883.html).\n"},"project":{"type":"string","description":"The name of the Logstore that collects log data from Alibaba Cloud CDN in real time. You can specify multiple Logstore names and separate them with commas (,).\n"},"slsRegion":{"type":"string","description":"The ID of the region where the Log Service project is deployed. For more information, see [Regions that support real-time log delivery](https://www.alibabacloud.com/help/en/doc-detail/144883.html).\n"},"status":{"type":"string","description":"Resource attribute fields that represent the status of the resource.\n\nValue:\n- offline\n- online\n"}},"requiredInputs":["domain","logstore","project","slsRegion"],"stateInputs":{"description":"Input properties used for looking up and filtering RealTimeLogDelivery resources.\n","properties":{"domain":{"type":"string","description":"The accelerated domain name for which you want to disable real-time log delivery. You can specify multiple domain names and separate them with commas (,).\n","willReplaceOnChanges":true},"logstore":{"type":"string","description":"The ID of the region where the Log Service project is deployed. You can specify multiple region IDs and separate them with commas (,).\n\nFor more information about regions, see [Regions that support real-time log delivery](https://www.alibabacloud.com/help/en/doc-detail/144883.html).\n"},"project":{"type":"string","description":"The name of the Logstore that collects log data from Alibaba Cloud CDN in real time. You can specify multiple Logstore names and separate them with commas (,).\n"},"slsRegion":{"type":"string","description":"The ID of the region where the Log Service project is deployed. For more information, see [Regions that support real-time log delivery](https://www.alibabacloud.com/help/en/doc-detail/144883.html).\n"},"status":{"type":"string","description":"Resource attribute fields that represent the status of the resource.\n\nValue:\n- offline\n- online\n"}},"type":"object"}},"alicloud:cen/bandwidthLimit:BandwidthLimit":{"description":"Provides a CEN cross-regional interconnection bandwidth resource. To connect networks in different regions, you must set cross-region interconnection bandwidth after buying a bandwidth package. The total bandwidth set for all the interconnected regions of a bandwidth package cannot exceed the bandwidth of the bandwidth package. By default, 1 Kbps bandwidth is provided for connectivity test. To run normal business, you must buy a bandwidth package and set a proper interconnection bandwidth.\n\nFor example, a CEN instance is bound to a bandwidth package of 20 Mbps and  the interconnection areas are Mainland China and North America. You can set the cross-region interconnection bandwidth between US West 1 and China East 1, China East 2, China South 1, and so on. However, the total bandwidth set for all the interconnected regions cannot exceed 20  Mbps.\n\nFor information about CEN and how to use it, see [Cross-region interconnection bandwidth](https://www.alibabacloud.com/help/doc-detail/65983.htm)\n\n\u003e **NOTE:** Available since v1.18.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region1 = config.get(\"region1\") || \"eu-central-1\";\nconst region2 = config.get(\"region2\") || \"ap-southeast-1\";\nconst vpc1 = new alicloud.vpc.Network(\"vpc1\", {\n    vpcName: \"tf-example\",\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst vpc2 = new alicloud.vpc.Network(\"vpc2\", {\n    vpcName: \"tf-example\",\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst example = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: \"tf_example\",\n    description: \"an example for cen\",\n});\nconst example1 = new alicloud.cen.InstanceAttachment(\"example1\", {\n    instanceId: example.id,\n    childInstanceId: vpc1.id,\n    childInstanceType: \"VPC\",\n    childInstanceRegionId: region1,\n});\nconst example2 = new alicloud.cen.InstanceAttachment(\"example2\", {\n    instanceId: example.id,\n    childInstanceId: vpc2.id,\n    childInstanceType: \"VPC\",\n    childInstanceRegionId: region2,\n});\nconst exampleBandwidthPackage = new alicloud.cen.BandwidthPackage(\"example\", {\n    bandwidth: 5,\n    cenBandwidthPackageName: \"tf_example\",\n    geographicRegionAId: \"Europe\",\n    geographicRegionBId: \"Asia-Pacific\",\n});\nconst exampleBandwidthPackageAttachment = new alicloud.cen.BandwidthPackageAttachment(\"example\", {\n    instanceId: example.id,\n    bandwidthPackageId: exampleBandwidthPackage.id,\n});\nconst exampleBandwidthLimit = new alicloud.cen.BandwidthLimit(\"example\", {\n    instanceId: exampleBandwidthPackageAttachment.instanceId,\n    regionIds: [\n        example1.childInstanceRegionId,\n        example2.childInstanceRegionId,\n    ],\n    bandwidthLimit: 4,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion1 = config.get(\"region1\")\nif region1 is None:\n    region1 = \"eu-central-1\"\nregion2 = config.get(\"region2\")\nif region2 is None:\n    region2 = \"ap-southeast-1\"\nvpc1 = alicloud.vpc.Network(\"vpc1\",\n    vpc_name=\"tf-example\",\n    cidr_block=\"192.168.0.0/16\")\nvpc2 = alicloud.vpc.Network(\"vpc2\",\n    vpc_name=\"tf-example\",\n    cidr_block=\"172.16.0.0/12\")\nexample = alicloud.cen.Instance(\"example\",\n    cen_instance_name=\"tf_example\",\n    description=\"an example for cen\")\nexample1 = alicloud.cen.InstanceAttachment(\"example1\",\n    instance_id=example.id,\n    child_instance_id=vpc1.id,\n    child_instance_type=\"VPC\",\n    child_instance_region_id=region1)\nexample2 = alicloud.cen.InstanceAttachment(\"example2\",\n    instance_id=example.id,\n    child_instance_id=vpc2.id,\n    child_instance_type=\"VPC\",\n    child_instance_region_id=region2)\nexample_bandwidth_package = alicloud.cen.BandwidthPackage(\"example\",\n    bandwidth=5,\n    cen_bandwidth_package_name=\"tf_example\",\n    geographic_region_a_id=\"Europe\",\n    geographic_region_b_id=\"Asia-Pacific\")\nexample_bandwidth_package_attachment = alicloud.cen.BandwidthPackageAttachment(\"example\",\n    instance_id=example.id,\n    bandwidth_package_id=example_bandwidth_package.id)\nexample_bandwidth_limit = alicloud.cen.BandwidthLimit(\"example\",\n    instance_id=example_bandwidth_package_attachment.instance_id,\n    region_ids=[\n        example1.child_instance_region_id,\n        example2.child_instance_region_id,\n    ],\n    bandwidth_limit=4)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region1 = config.Get(\"region1\") ?? \"eu-central-1\";\n    var region2 = config.Get(\"region2\") ?? \"ap-southeast-1\";\n    var vpc1 = new AliCloud.Vpc.Network(\"vpc1\", new()\n    {\n        VpcName = \"tf-example\",\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var vpc2 = new AliCloud.Vpc.Network(\"vpc2\", new()\n    {\n        VpcName = \"tf-example\",\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var example = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = \"tf_example\",\n        Description = \"an example for cen\",\n    });\n\n    var example1 = new AliCloud.Cen.InstanceAttachment(\"example1\", new()\n    {\n        InstanceId = example.Id,\n        ChildInstanceId = vpc1.Id,\n        ChildInstanceType = \"VPC\",\n        ChildInstanceRegionId = region1,\n    });\n\n    var example2 = new AliCloud.Cen.InstanceAttachment(\"example2\", new()\n    {\n        InstanceId = example.Id,\n        ChildInstanceId = vpc2.Id,\n        ChildInstanceType = \"VPC\",\n        ChildInstanceRegionId = region2,\n    });\n\n    var exampleBandwidthPackage = new AliCloud.Cen.BandwidthPackage(\"example\", new()\n    {\n        Bandwidth = 5,\n        CenBandwidthPackageName = \"tf_example\",\n        GeographicRegionAId = \"Europe\",\n        GeographicRegionBId = \"Asia-Pacific\",\n    });\n\n    var exampleBandwidthPackageAttachment = new AliCloud.Cen.BandwidthPackageAttachment(\"example\", new()\n    {\n        InstanceId = example.Id,\n        BandwidthPackageId = exampleBandwidthPackage.Id,\n    });\n\n    var exampleBandwidthLimit = new AliCloud.Cen.BandwidthLimit(\"example\", new()\n    {\n        InstanceId = exampleBandwidthPackageAttachment.InstanceId,\n        RegionIds = new[]\n        {\n            example1.ChildInstanceRegionId,\n            example2.ChildInstanceRegionId,\n        },\n        Limit = 4,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion1 := \"eu-central-1\"\n\t\tif param := cfg.Get(\"region1\"); param != \"\" {\n\t\t\tregion1 = param\n\t\t}\n\t\tregion2 := \"ap-southeast-1\"\n\t\tif param := cfg.Get(\"region2\"); param != \"\" {\n\t\t\tregion2 = param\n\t\t}\n\t\tvpc1, err := vpc.NewNetwork(ctx, \"vpc1\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"tf-example\"),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpc2, err := vpc.NewNetwork(ctx, \"vpc2\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"tf-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(\"tf_example\"),\n\t\t\tDescription:     pulumi.String(\"an example for cen\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample1, err := cen.NewInstanceAttachment(ctx, \"example1\", \u0026cen.InstanceAttachmentArgs{\n\t\t\tInstanceId:            example.ID(),\n\t\t\tChildInstanceId:       vpc1.ID(),\n\t\t\tChildInstanceType:     pulumi.String(\"VPC\"),\n\t\t\tChildInstanceRegionId: pulumi.String(region1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample2, err := cen.NewInstanceAttachment(ctx, \"example2\", \u0026cen.InstanceAttachmentArgs{\n\t\t\tInstanceId:            example.ID(),\n\t\t\tChildInstanceId:       vpc2.ID(),\n\t\t\tChildInstanceType:     pulumi.String(\"VPC\"),\n\t\t\tChildInstanceRegionId: pulumi.String(region2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBandwidthPackage, err := cen.NewBandwidthPackage(ctx, \"example\", \u0026cen.BandwidthPackageArgs{\n\t\t\tBandwidth:               pulumi.Int(5),\n\t\t\tCenBandwidthPackageName: pulumi.String(\"tf_example\"),\n\t\t\tGeographicRegionAId:     pulumi.String(\"Europe\"),\n\t\t\tGeographicRegionBId:     pulumi.String(\"Asia-Pacific\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBandwidthPackageAttachment, err := cen.NewBandwidthPackageAttachment(ctx, \"example\", \u0026cen.BandwidthPackageAttachmentArgs{\n\t\t\tInstanceId:         example.ID(),\n\t\t\tBandwidthPackageId: exampleBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewBandwidthLimit(ctx, \"example\", \u0026cen.BandwidthLimitArgs{\n\t\t\tInstanceId: exampleBandwidthPackageAttachment.InstanceId,\n\t\t\tRegionIds: pulumi.StringArray{\n\t\t\t\texample1.ChildInstanceRegionId,\n\t\t\t\texample2.ChildInstanceRegionId,\n\t\t\t},\n\t\t\tBandwidthLimit: pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.InstanceAttachment;\nimport com.pulumi.alicloud.cen.InstanceAttachmentArgs;\nimport com.pulumi.alicloud.cen.BandwidthPackage;\nimport com.pulumi.alicloud.cen.BandwidthPackageArgs;\nimport com.pulumi.alicloud.cen.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.cen.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.cen.BandwidthLimit;\nimport com.pulumi.alicloud.cen.BandwidthLimitArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region1 = config.get(\"region1\").orElse(\"eu-central-1\");\n        final var region2 = config.get(\"region2\").orElse(\"ap-southeast-1\");\n        var vpc1 = new Network(\"vpc1\", NetworkArgs.builder()\n            .vpcName(\"tf-example\")\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var vpc2 = new Network(\"vpc2\", NetworkArgs.builder()\n            .vpcName(\"tf-example\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var example = new Instance(\"example\", InstanceArgs.builder()\n            .cenInstanceName(\"tf_example\")\n            .description(\"an example for cen\")\n            .build());\n\n        var example1 = new InstanceAttachment(\"example1\", InstanceAttachmentArgs.builder()\n            .instanceId(example.id())\n            .childInstanceId(vpc1.id())\n            .childInstanceType(\"VPC\")\n            .childInstanceRegionId(region1)\n            .build());\n\n        var example2 = new InstanceAttachment(\"example2\", InstanceAttachmentArgs.builder()\n            .instanceId(example.id())\n            .childInstanceId(vpc2.id())\n            .childInstanceType(\"VPC\")\n            .childInstanceRegionId(region2)\n            .build());\n\n        var exampleBandwidthPackage = new BandwidthPackage(\"exampleBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(5)\n            .cenBandwidthPackageName(\"tf_example\")\n            .geographicRegionAId(\"Europe\")\n            .geographicRegionBId(\"Asia-Pacific\")\n            .build());\n\n        var exampleBandwidthPackageAttachment = new BandwidthPackageAttachment(\"exampleBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .instanceId(example.id())\n            .bandwidthPackageId(exampleBandwidthPackage.id())\n            .build());\n\n        var exampleBandwidthLimit = new BandwidthLimit(\"exampleBandwidthLimit\", BandwidthLimitArgs.builder()\n            .instanceId(exampleBandwidthPackageAttachment.instanceId())\n            .regionIds(            \n                example1.childInstanceRegionId(),\n                example2.childInstanceRegionId())\n            .bandwidthLimit(4)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region1:\n    type: string\n    default: eu-central-1\n  region2:\n    type: string\n    default: ap-southeast-1\nresources:\n  vpc1:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: tf-example\n      cidrBlock: 192.168.0.0/16\n  vpc2:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: tf-example\n      cidrBlock: 172.16.0.0/12\n  example:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: tf_example\n      description: an example for cen\n  example1:\n    type: alicloud:cen:InstanceAttachment\n    properties:\n      instanceId: ${example.id}\n      childInstanceId: ${vpc1.id}\n      childInstanceType: VPC\n      childInstanceRegionId: ${region1}\n  example2:\n    type: alicloud:cen:InstanceAttachment\n    properties:\n      instanceId: ${example.id}\n      childInstanceId: ${vpc2.id}\n      childInstanceType: VPC\n      childInstanceRegionId: ${region2}\n  exampleBandwidthPackage:\n    type: alicloud:cen:BandwidthPackage\n    name: example\n    properties:\n      bandwidth: 5\n      cenBandwidthPackageName: tf_example\n      geographicRegionAId: Europe\n      geographicRegionBId: Asia-Pacific\n  exampleBandwidthPackageAttachment:\n    type: alicloud:cen:BandwidthPackageAttachment\n    name: example\n    properties:\n      instanceId: ${example.id}\n      bandwidthPackageId: ${exampleBandwidthPackage.id}\n  exampleBandwidthLimit:\n    type: alicloud:cen:BandwidthLimit\n    name: example\n    properties:\n      instanceId: ${exampleBandwidthPackageAttachment.instanceId}\n      regionIds:\n        - ${example1.childInstanceRegionId}\n        - ${example2.childInstanceRegionId}\n      bandwidthLimit: 4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCEN bandwidth limit can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/bandwidthLimit:BandwidthLimit example cen-abc123456:cn-beijing:eu-west-1\n```\n\n-\u003e**NOTE:** The sequence of the\u003cspan pulumi-lang-nodejs=\" regionId1 \" pulumi-lang-dotnet=\" RegionId1 \" pulumi-lang-go=\" regionId1 \" pulumi-lang-python=\" region_id_1 \" pulumi-lang-yaml=\" regionId1 \" pulumi-lang-java=\" regionId1 \"\u003e region_id_1 \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" regionId2 \" pulumi-lang-dotnet=\" RegionId2 \" pulumi-lang-go=\" regionId2 \" pulumi-lang-python=\" region_id_2 \" pulumi-lang-yaml=\" regionId2 \" pulumi-lang-java=\" regionId2 \"\u003e region_id_2 \u003c/span\u003emakes no difference when import. But the in the id of the resource, they are sorted lexicographically.\n\n","properties":{"bandwidthLimit":{"type":"integer","description":"The bandwidth configured for the interconnected regions communication.\n\n-\u003e**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.BandwidthLimit`\" pulumi-lang-dotnet=\"`alicloud.cen.BandwidthLimit`\" pulumi-lang-go=\"`cen.BandwidthLimit`\" pulumi-lang-python=\"`cen.BandwidthLimit`\" pulumi-lang-yaml=\"`alicloud.cen.BandwidthLimit`\" pulumi-lang-java=\"`alicloud.cen.BandwidthLimit`\"\u003e`alicloud.cen.BandwidthLimit`\u003c/span\u003e resource depends on the related \u003cspan pulumi-lang-nodejs=\"\"alicloud.cen.BandwidthPackageAttachment\"\" pulumi-lang-dotnet=\"\"alicloud.cen.BandwidthPackageAttachment\"\" pulumi-lang-go=\"\"cen.BandwidthPackageAttachment\"\" pulumi-lang-python=\"\"cen.BandwidthPackageAttachment\"\" pulumi-lang-yaml=\"\"alicloud.cen.BandwidthPackageAttachment\"\" pulumi-lang-java=\"\"alicloud.cen.BandwidthPackageAttachment\"\"\u003e\"alicloud.cen.BandwidthPackageAttachment\"\u003c/span\u003e resource and \u003cspan pulumi-lang-nodejs=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-dotnet=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-go=\"\"cen.InstanceAttachment\"\" pulumi-lang-python=\"\"cen.InstanceAttachment\"\" pulumi-lang-yaml=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-java=\"\"alicloud.cen.InstanceAttachment\"\"\u003e\"alicloud.cen.InstanceAttachment\"\u003c/span\u003e resource.\n","language":{"csharp":{"name":"Limit"}}},"instanceId":{"type":"string","description":"The ID of the CEN.\n"},"regionIds":{"type":"array","items":{"type":"string"},"description":"List of the two regions to interconnect. Must be two different regions.\n"}},"required":["bandwidthLimit","instanceId","regionIds"],"inputProperties":{"bandwidthLimit":{"type":"integer","description":"The bandwidth configured for the interconnected regions communication.\n\n-\u003e**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.BandwidthLimit`\" pulumi-lang-dotnet=\"`alicloud.cen.BandwidthLimit`\" pulumi-lang-go=\"`cen.BandwidthLimit`\" pulumi-lang-python=\"`cen.BandwidthLimit`\" pulumi-lang-yaml=\"`alicloud.cen.BandwidthLimit`\" pulumi-lang-java=\"`alicloud.cen.BandwidthLimit`\"\u003e`alicloud.cen.BandwidthLimit`\u003c/span\u003e resource depends on the related \u003cspan pulumi-lang-nodejs=\"\"alicloud.cen.BandwidthPackageAttachment\"\" pulumi-lang-dotnet=\"\"alicloud.cen.BandwidthPackageAttachment\"\" pulumi-lang-go=\"\"cen.BandwidthPackageAttachment\"\" pulumi-lang-python=\"\"cen.BandwidthPackageAttachment\"\" pulumi-lang-yaml=\"\"alicloud.cen.BandwidthPackageAttachment\"\" pulumi-lang-java=\"\"alicloud.cen.BandwidthPackageAttachment\"\"\u003e\"alicloud.cen.BandwidthPackageAttachment\"\u003c/span\u003e resource and \u003cspan pulumi-lang-nodejs=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-dotnet=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-go=\"\"cen.InstanceAttachment\"\" pulumi-lang-python=\"\"cen.InstanceAttachment\"\" pulumi-lang-yaml=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-java=\"\"alicloud.cen.InstanceAttachment\"\"\u003e\"alicloud.cen.InstanceAttachment\"\u003c/span\u003e resource.\n","language":{"csharp":{"name":"Limit"}}},"instanceId":{"type":"string","description":"The ID of the CEN.\n","willReplaceOnChanges":true},"regionIds":{"type":"array","items":{"type":"string"},"description":"List of the two regions to interconnect. Must be two different regions.\n","willReplaceOnChanges":true}},"requiredInputs":["bandwidthLimit","instanceId","regionIds"],"stateInputs":{"description":"Input properties used for looking up and filtering BandwidthLimit resources.\n","properties":{"bandwidthLimit":{"type":"integer","description":"The bandwidth configured for the interconnected regions communication.\n\n-\u003e**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.BandwidthLimit`\" pulumi-lang-dotnet=\"`alicloud.cen.BandwidthLimit`\" pulumi-lang-go=\"`cen.BandwidthLimit`\" pulumi-lang-python=\"`cen.BandwidthLimit`\" pulumi-lang-yaml=\"`alicloud.cen.BandwidthLimit`\" pulumi-lang-java=\"`alicloud.cen.BandwidthLimit`\"\u003e`alicloud.cen.BandwidthLimit`\u003c/span\u003e resource depends on the related \u003cspan pulumi-lang-nodejs=\"\"alicloud.cen.BandwidthPackageAttachment\"\" pulumi-lang-dotnet=\"\"alicloud.cen.BandwidthPackageAttachment\"\" pulumi-lang-go=\"\"cen.BandwidthPackageAttachment\"\" pulumi-lang-python=\"\"cen.BandwidthPackageAttachment\"\" pulumi-lang-yaml=\"\"alicloud.cen.BandwidthPackageAttachment\"\" pulumi-lang-java=\"\"alicloud.cen.BandwidthPackageAttachment\"\"\u003e\"alicloud.cen.BandwidthPackageAttachment\"\u003c/span\u003e resource and \u003cspan pulumi-lang-nodejs=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-dotnet=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-go=\"\"cen.InstanceAttachment\"\" pulumi-lang-python=\"\"cen.InstanceAttachment\"\" pulumi-lang-yaml=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-java=\"\"alicloud.cen.InstanceAttachment\"\"\u003e\"alicloud.cen.InstanceAttachment\"\u003c/span\u003e resource.\n","language":{"csharp":{"name":"Limit"}}},"instanceId":{"type":"string","description":"The ID of the CEN.\n","willReplaceOnChanges":true},"regionIds":{"type":"array","items":{"type":"string"},"description":"List of the two regions to interconnect. Must be two different regions.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/bandwidthPackage:BandwidthPackage":{"description":"Provides a CEN bandwidth package resource. The CEN bandwidth package is an abstracted object that includes an interconnection bandwidth and interconnection areas. To buy a bandwidth package, you must specify the areas to connect. An area consists of one or more Alibaba Cloud regions. The areas in CEN include Mainland China, Asia Pacific, North America, and Europe.\n\nFor information about CEN and how to use it, see [Manage bandwidth packages](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-createcenbandwidthpackage).\n\n\u003e **NOTE:** Available since v1.18.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.cen.BandwidthPackage(\"example\", {\n    bandwidth: 5,\n    cenBandwidthPackageName: \"tf_example\",\n    geographicRegionAId: \"China\",\n    geographicRegionBId: \"China\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cen.BandwidthPackage(\"example\",\n    bandwidth=5,\n    cen_bandwidth_package_name=\"tf_example\",\n    geographic_region_a_id=\"China\",\n    geographic_region_b_id=\"China\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Cen.BandwidthPackage(\"example\", new()\n    {\n        Bandwidth = 5,\n        CenBandwidthPackageName = \"tf_example\",\n        GeographicRegionAId = \"China\",\n        GeographicRegionBId = \"China\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cen.NewBandwidthPackage(ctx, \"example\", \u0026cen.BandwidthPackageArgs{\n\t\t\tBandwidth:               pulumi.Int(5),\n\t\t\tCenBandwidthPackageName: pulumi.String(\"tf_example\"),\n\t\t\tGeographicRegionAId:     pulumi.String(\"China\"),\n\t\t\tGeographicRegionBId:     pulumi.String(\"China\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.BandwidthPackage;\nimport com.pulumi.alicloud.cen.BandwidthPackageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new BandwidthPackage(\"example\", BandwidthPackageArgs.builder()\n            .bandwidth(5)\n            .cenBandwidthPackageName(\"tf_example\")\n            .geographicRegionAId(\"China\")\n            .geographicRegionBId(\"China\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:cen:BandwidthPackage\n    properties:\n      bandwidth: 5\n      cenBandwidthPackageName: tf_example\n      geographicRegionAId: China\n      geographicRegionBId: China\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.BandwidthPackage`\" pulumi-lang-dotnet=\"`alicloud.cen.BandwidthPackage`\" pulumi-lang-go=\"`cen.BandwidthPackage`\" pulumi-lang-python=\"`cen.BandwidthPackage`\" pulumi-lang-yaml=\"`alicloud.cen.BandwidthPackage`\" pulumi-lang-java=\"`alicloud.cen.BandwidthPackage`\"\u003e`alicloud.cen.BandwidthPackage`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.BandwidthPackage`\" pulumi-lang-dotnet=\"`alicloud.cen.BandwidthPackage`\" pulumi-lang-go=\"`cen.BandwidthPackage`\" pulumi-lang-python=\"`cen.BandwidthPackage`\" pulumi-lang-yaml=\"`alicloud.cen.BandwidthPackage`\" pulumi-lang-java=\"`alicloud.cen.BandwidthPackage`\"\u003e`alicloud.cen.BandwidthPackage`\u003c/span\u003e resource allows you to manage \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"PrePaid\"` bandwidth package, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your statefile and management, but will not destroy the Bandwidth Package.\nYou can resume managing the subscription bandwidth package via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCEN bandwidth package can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/bandwidthPackage:BandwidthPackage example cenbwp-abc123456\n```\n\n","properties":{"autoRenew":{"type":"boolean","description":"Whether to enable auto-renewal for the bandwidth package. Only applicable when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `PrePaid`. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n\n-\u003e**NOTE:** PrePaid mode will deduct fees from the account directly and the bandwidth package can't be deleted before expired time.\n"},"bandwidth":{"type":"integer","description":"The bandwidth in Mbps of the bandwidth package. Cannot be less than 2Mbps.\n"},"cenBandwidthPackageName":{"type":"string","description":"The name of the bandwidth package. Defaults to null.\n"},"chargeType":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`chargeType`\" pulumi-lang-dotnet=\"`ChargeType`\" pulumi-lang-go=\"`chargeType`\" pulumi-lang-python=\"`charge_type`\" pulumi-lang-yaml=\"`chargeType`\" pulumi-lang-java=\"`chargeType`\"\u003e`charge_type`\u003c/span\u003e has been deprecated from version 1.97.0. Use \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e and instead.\n","deprecationMessage":"Field 'charge_type' has been deprecated from version 1.98.0. Use 'payment_type' and instead."},"description":{"type":"string","description":"The description of the bandwidth package. Default to null.\n"},"expiredTime":{"type":"string","description":"The time of the bandwidth package to expire.\n"},"geographicRegionAId":{"type":"string","description":"The area A to which the network instance belongs. Valid values: `China` | `North-America` | `Asia-Pacific` | `Europe` | `Australia`.\n"},"geographicRegionBId":{"type":"string","description":"The area B to which the network instance belongs. Valid values: `China` | `North-America` | `Asia-Pacific` | `Europe` | `Australia`.\n"},"geographicRegionIds":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`geographicRegionIds`\" pulumi-lang-dotnet=\"`GeographicRegionIds`\" pulumi-lang-go=\"`geographicRegionIds`\" pulumi-lang-python=\"`geographic_region_ids`\" pulumi-lang-yaml=\"`geographicRegionIds`\" pulumi-lang-java=\"`geographicRegionIds`\"\u003e`geographic_region_ids`\u003c/span\u003e has been deprecated from version 1.97.0. Use \u003cspan pulumi-lang-nodejs=\"`geographicRegionAId`\" pulumi-lang-dotnet=\"`GeographicRegionAId`\" pulumi-lang-go=\"`geographicRegionAId`\" pulumi-lang-python=\"`geographic_region_a_id`\" pulumi-lang-yaml=\"`geographicRegionAId`\" pulumi-lang-java=\"`geographicRegionAId`\"\u003e`geographic_region_a_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`geographicRegionBId`\" pulumi-lang-dotnet=\"`GeographicRegionBId`\" pulumi-lang-go=\"`geographicRegionBId`\" pulumi-lang-python=\"`geographic_region_b_id`\" pulumi-lang-yaml=\"`geographicRegionBId`\" pulumi-lang-java=\"`geographicRegionBId`\"\u003e`geographic_region_b_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'geographic_region_ids' has been deprecated from version 1.98.0. Use 'geographic_region_a_id' and 'geographic_region_b_id' instead."},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from version 1.97.0. Use \u003cspan pulumi-lang-nodejs=\"`cenBandwidthPackageName`\" pulumi-lang-dotnet=\"`CenBandwidthPackageName`\" pulumi-lang-go=\"`cenBandwidthPackageName`\" pulumi-lang-python=\"`cen_bandwidth_package_name`\" pulumi-lang-yaml=\"`cenBandwidthPackageName`\" pulumi-lang-java=\"`cenBandwidthPackageName`\"\u003e`cen_bandwidth_package_name`\u003c/span\u003e and instead.\n","deprecationMessage":"Field 'name' has been deprecated from version 1.98.0. Use 'cen_bandwidth_package_name' and instead."},"paymentType":{"type":"string","description":"The billing method. Valid value: `PostPaid` | `PrePaid`. Default to `PrePaid`. If set to PrePaid, the bandwidth package can't be deleted before expired time.\n"},"period":{"type":"integer","description":"The purchase period in month. Valid value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"status":{"type":"string","description":"The association status of the bandwidth package.\n"}},"required":["bandwidth","cenBandwidthPackageName","chargeType","expiredTime","geographicRegionAId","geographicRegionBId","geographicRegionIds","name","paymentType","status"],"inputProperties":{"autoRenew":{"type":"boolean","description":"Whether to enable auto-renewal for the bandwidth package. Only applicable when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `PrePaid`. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n\n-\u003e**NOTE:** PrePaid mode will deduct fees from the account directly and the bandwidth package can't be deleted before expired time.\n"},"bandwidth":{"type":"integer","description":"The bandwidth in Mbps of the bandwidth package. Cannot be less than 2Mbps.\n"},"cenBandwidthPackageName":{"type":"string","description":"The name of the bandwidth package. Defaults to null.\n"},"chargeType":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`chargeType`\" pulumi-lang-dotnet=\"`ChargeType`\" pulumi-lang-go=\"`chargeType`\" pulumi-lang-python=\"`charge_type`\" pulumi-lang-yaml=\"`chargeType`\" pulumi-lang-java=\"`chargeType`\"\u003e`charge_type`\u003c/span\u003e has been deprecated from version 1.97.0. Use \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e and instead.\n","deprecationMessage":"Field 'charge_type' has been deprecated from version 1.98.0. Use 'payment_type' and instead.","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the bandwidth package. Default to null.\n"},"geographicRegionAId":{"type":"string","description":"The area A to which the network instance belongs. Valid values: `China` | `North-America` | `Asia-Pacific` | `Europe` | `Australia`.\n","willReplaceOnChanges":true},"geographicRegionBId":{"type":"string","description":"The area B to which the network instance belongs. Valid values: `China` | `North-America` | `Asia-Pacific` | `Europe` | `Australia`.\n","willReplaceOnChanges":true},"geographicRegionIds":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`geographicRegionIds`\" pulumi-lang-dotnet=\"`GeographicRegionIds`\" pulumi-lang-go=\"`geographicRegionIds`\" pulumi-lang-python=\"`geographic_region_ids`\" pulumi-lang-yaml=\"`geographicRegionIds`\" pulumi-lang-java=\"`geographicRegionIds`\"\u003e`geographic_region_ids`\u003c/span\u003e has been deprecated from version 1.97.0. Use \u003cspan pulumi-lang-nodejs=\"`geographicRegionAId`\" pulumi-lang-dotnet=\"`GeographicRegionAId`\" pulumi-lang-go=\"`geographicRegionAId`\" pulumi-lang-python=\"`geographic_region_a_id`\" pulumi-lang-yaml=\"`geographicRegionAId`\" pulumi-lang-java=\"`geographicRegionAId`\"\u003e`geographic_region_a_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`geographicRegionBId`\" pulumi-lang-dotnet=\"`GeographicRegionBId`\" pulumi-lang-go=\"`geographicRegionBId`\" pulumi-lang-python=\"`geographic_region_b_id`\" pulumi-lang-yaml=\"`geographicRegionBId`\" pulumi-lang-java=\"`geographicRegionBId`\"\u003e`geographic_region_b_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'geographic_region_ids' has been deprecated from version 1.98.0. Use 'geographic_region_a_id' and 'geographic_region_b_id' instead.","willReplaceOnChanges":true},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from version 1.97.0. Use \u003cspan pulumi-lang-nodejs=\"`cenBandwidthPackageName`\" pulumi-lang-dotnet=\"`CenBandwidthPackageName`\" pulumi-lang-go=\"`cenBandwidthPackageName`\" pulumi-lang-python=\"`cen_bandwidth_package_name`\" pulumi-lang-yaml=\"`cenBandwidthPackageName`\" pulumi-lang-java=\"`cenBandwidthPackageName`\"\u003e`cen_bandwidth_package_name`\u003c/span\u003e and instead.\n","deprecationMessage":"Field 'name' has been deprecated from version 1.98.0. Use 'cen_bandwidth_package_name' and instead."},"paymentType":{"type":"string","description":"The billing method. Valid value: `PostPaid` | `PrePaid`. Default to `PrePaid`. If set to PrePaid, the bandwidth package can't be deleted before expired time.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The purchase period in month. Valid value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"}},"requiredInputs":["bandwidth"],"stateInputs":{"description":"Input properties used for looking up and filtering BandwidthPackage resources.\n","properties":{"autoRenew":{"type":"boolean","description":"Whether to enable auto-renewal for the bandwidth package. Only applicable when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `PrePaid`. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n\n-\u003e**NOTE:** PrePaid mode will deduct fees from the account directly and the bandwidth package can't be deleted before expired time.\n"},"bandwidth":{"type":"integer","description":"The bandwidth in Mbps of the bandwidth package. Cannot be less than 2Mbps.\n"},"cenBandwidthPackageName":{"type":"string","description":"The name of the bandwidth package. Defaults to null.\n"},"chargeType":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`chargeType`\" pulumi-lang-dotnet=\"`ChargeType`\" pulumi-lang-go=\"`chargeType`\" pulumi-lang-python=\"`charge_type`\" pulumi-lang-yaml=\"`chargeType`\" pulumi-lang-java=\"`chargeType`\"\u003e`charge_type`\u003c/span\u003e has been deprecated from version 1.97.0. Use \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e and instead.\n","deprecationMessage":"Field 'charge_type' has been deprecated from version 1.98.0. Use 'payment_type' and instead.","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the bandwidth package. Default to null.\n"},"expiredTime":{"type":"string","description":"The time of the bandwidth package to expire.\n"},"geographicRegionAId":{"type":"string","description":"The area A to which the network instance belongs. Valid values: `China` | `North-America` | `Asia-Pacific` | `Europe` | `Australia`.\n","willReplaceOnChanges":true},"geographicRegionBId":{"type":"string","description":"The area B to which the network instance belongs. Valid values: `China` | `North-America` | `Asia-Pacific` | `Europe` | `Australia`.\n","willReplaceOnChanges":true},"geographicRegionIds":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`geographicRegionIds`\" pulumi-lang-dotnet=\"`GeographicRegionIds`\" pulumi-lang-go=\"`geographicRegionIds`\" pulumi-lang-python=\"`geographic_region_ids`\" pulumi-lang-yaml=\"`geographicRegionIds`\" pulumi-lang-java=\"`geographicRegionIds`\"\u003e`geographic_region_ids`\u003c/span\u003e has been deprecated from version 1.97.0. Use \u003cspan pulumi-lang-nodejs=\"`geographicRegionAId`\" pulumi-lang-dotnet=\"`GeographicRegionAId`\" pulumi-lang-go=\"`geographicRegionAId`\" pulumi-lang-python=\"`geographic_region_a_id`\" pulumi-lang-yaml=\"`geographicRegionAId`\" pulumi-lang-java=\"`geographicRegionAId`\"\u003e`geographic_region_a_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`geographicRegionBId`\" pulumi-lang-dotnet=\"`GeographicRegionBId`\" pulumi-lang-go=\"`geographicRegionBId`\" pulumi-lang-python=\"`geographic_region_b_id`\" pulumi-lang-yaml=\"`geographicRegionBId`\" pulumi-lang-java=\"`geographicRegionBId`\"\u003e`geographic_region_b_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'geographic_region_ids' has been deprecated from version 1.98.0. Use 'geographic_region_a_id' and 'geographic_region_b_id' instead.","willReplaceOnChanges":true},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from version 1.97.0. Use \u003cspan pulumi-lang-nodejs=\"`cenBandwidthPackageName`\" pulumi-lang-dotnet=\"`CenBandwidthPackageName`\" pulumi-lang-go=\"`cenBandwidthPackageName`\" pulumi-lang-python=\"`cen_bandwidth_package_name`\" pulumi-lang-yaml=\"`cenBandwidthPackageName`\" pulumi-lang-java=\"`cenBandwidthPackageName`\"\u003e`cen_bandwidth_package_name`\u003c/span\u003e and instead.\n","deprecationMessage":"Field 'name' has been deprecated from version 1.98.0. Use 'cen_bandwidth_package_name' and instead."},"paymentType":{"type":"string","description":"The billing method. Valid value: `PostPaid` | `PrePaid`. Default to `PrePaid`. If set to PrePaid, the bandwidth package can't be deleted before expired time.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The purchase period in month. Valid value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"status":{"type":"string","description":"The association status of the bandwidth package.\n"}},"type":"object"}},"alicloud:cen/bandwidthPackageAttachment:BandwidthPackageAttachment":{"description":"Provides a CEN bandwidth package attachment resource. The resource can be used to bind a bandwidth package to a specified CEN instance.\n\n\u003e **NOTE:** Available since v1.18.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: \"tf_example\",\n    description: \"an example for cen\",\n});\nconst exampleBandwidthPackage = new alicloud.cen.BandwidthPackage(\"example\", {\n    bandwidth: 5,\n    cenBandwidthPackageName: \"tf_example\",\n    geographicRegionAId: \"China\",\n    geographicRegionBId: \"China\",\n});\nconst exampleBandwidthPackageAttachment = new alicloud.cen.BandwidthPackageAttachment(\"example\", {\n    instanceId: example.id,\n    bandwidthPackageId: exampleBandwidthPackage.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cen.Instance(\"example\",\n    cen_instance_name=\"tf_example\",\n    description=\"an example for cen\")\nexample_bandwidth_package = alicloud.cen.BandwidthPackage(\"example\",\n    bandwidth=5,\n    cen_bandwidth_package_name=\"tf_example\",\n    geographic_region_a_id=\"China\",\n    geographic_region_b_id=\"China\")\nexample_bandwidth_package_attachment = alicloud.cen.BandwidthPackageAttachment(\"example\",\n    instance_id=example.id,\n    bandwidth_package_id=example_bandwidth_package.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = \"tf_example\",\n        Description = \"an example for cen\",\n    });\n\n    var exampleBandwidthPackage = new AliCloud.Cen.BandwidthPackage(\"example\", new()\n    {\n        Bandwidth = 5,\n        CenBandwidthPackageName = \"tf_example\",\n        GeographicRegionAId = \"China\",\n        GeographicRegionBId = \"China\",\n    });\n\n    var exampleBandwidthPackageAttachment = new AliCloud.Cen.BandwidthPackageAttachment(\"example\", new()\n    {\n        InstanceId = example.Id,\n        BandwidthPackageId = exampleBandwidthPackage.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(\"tf_example\"),\n\t\t\tDescription:     pulumi.String(\"an example for cen\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBandwidthPackage, err := cen.NewBandwidthPackage(ctx, \"example\", \u0026cen.BandwidthPackageArgs{\n\t\t\tBandwidth:               pulumi.Int(5),\n\t\t\tCenBandwidthPackageName: pulumi.String(\"tf_example\"),\n\t\t\tGeographicRegionAId:     pulumi.String(\"China\"),\n\t\t\tGeographicRegionBId:     pulumi.String(\"China\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewBandwidthPackageAttachment(ctx, \"example\", \u0026cen.BandwidthPackageAttachmentArgs{\n\t\t\tInstanceId:         example.ID(),\n\t\t\tBandwidthPackageId: exampleBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.BandwidthPackage;\nimport com.pulumi.alicloud.cen.BandwidthPackageArgs;\nimport com.pulumi.alicloud.cen.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.cen.BandwidthPackageAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Instance(\"example\", InstanceArgs.builder()\n            .cenInstanceName(\"tf_example\")\n            .description(\"an example for cen\")\n            .build());\n\n        var exampleBandwidthPackage = new BandwidthPackage(\"exampleBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(5)\n            .cenBandwidthPackageName(\"tf_example\")\n            .geographicRegionAId(\"China\")\n            .geographicRegionBId(\"China\")\n            .build());\n\n        var exampleBandwidthPackageAttachment = new BandwidthPackageAttachment(\"exampleBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .instanceId(example.id())\n            .bandwidthPackageId(exampleBandwidthPackage.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: tf_example\n      description: an example for cen\n  exampleBandwidthPackage:\n    type: alicloud:cen:BandwidthPackage\n    name: example\n    properties:\n      bandwidth: 5\n      cenBandwidthPackageName: tf_example\n      geographicRegionAId: China\n      geographicRegionBId: China\n  exampleBandwidthPackageAttachment:\n    type: alicloud:cen:BandwidthPackageAttachment\n    name: example\n    properties:\n      instanceId: ${example.id}\n      bandwidthPackageId: ${exampleBandwidthPackage.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCEN bandwidth package attachment resource can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/bandwidthPackageAttachment:BandwidthPackageAttachment example bwp-abc123456\n```\n\n","properties":{"bandwidthPackageId":{"type":"string","description":"The ID of the bandwidth package.\n"},"instanceId":{"type":"string","description":"The ID of the CEN.\n"}},"required":["bandwidthPackageId","instanceId"],"inputProperties":{"bandwidthPackageId":{"type":"string","description":"The ID of the bandwidth package.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the CEN.\n","willReplaceOnChanges":true}},"requiredInputs":["bandwidthPackageId","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering BandwidthPackageAttachment resources.\n","properties":{"bandwidthPackageId":{"type":"string","description":"The ID of the bandwidth package.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the CEN.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/childInstanceRouteEntryToAttachment:ChildInstanceRouteEntryToAttachment":{"description":"Provides a Cen Child Instance Route Entry To Attachment resource.\n\nFor information about Cen Child Instance Route Entry To Attachment and how to use it, see [What is Child Instance Route Entry To Attachment](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-createcenchildinstancerouteentrytoattachment).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.cen.getTransitRouterAvailableResources({});\nconst masterZone = _default.then(_default =\u003e _default.resources?.[0]?.masterZones?.[0]);\nconst slaveZone = _default.then(_default =\u003e _default.resources?.[0]?.slaveZones?.[1]);\nconst example = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst exampleMaster = new alicloud.vpc.Switch(\"example_master\", {\n    vswitchName: name,\n    cidrBlock: \"192.168.1.0/24\",\n    vpcId: example.id,\n    zoneId: masterZone,\n});\nconst exampleSlave = new alicloud.vpc.Switch(\"example_slave\", {\n    vswitchName: name,\n    cidrBlock: \"192.168.2.0/24\",\n    vpcId: example.id,\n    zoneId: slaveZone,\n});\nconst exampleInstance = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: name,\n    protectionLevel: \"REDUCED\",\n});\nconst exampleTransitRouter = new alicloud.cen.TransitRouter(\"example\", {\n    transitRouterName: name,\n    cenId: exampleInstance.id,\n});\nconst exampleTransitRouterVpcAttachment = new alicloud.cen.TransitRouterVpcAttachment(\"example\", {\n    cenId: exampleInstance.id,\n    transitRouterId: exampleTransitRouter.transitRouterId,\n    vpcId: example.id,\n    zoneMappings: [\n        {\n            zoneId: masterZone,\n            vswitchId: exampleMaster.id,\n        },\n        {\n            zoneId: slaveZone,\n            vswitchId: exampleSlave.id,\n        },\n    ],\n    transitRouterAttachmentName: name,\n    transitRouterAttachmentDescription: name,\n});\nconst exampleRouteTable = new alicloud.vpc.RouteTable(\"example\", {\n    vpcId: example.id,\n    routeTableName: name,\n    description: name,\n});\nconst exampleChildInstanceRouteEntryToAttachment = new alicloud.cen.ChildInstanceRouteEntryToAttachment(\"example\", {\n    transitRouterAttachmentId: exampleTransitRouterVpcAttachment.transitRouterAttachmentId,\n    cenId: exampleInstance.id,\n    destinationCidrBlock: \"10.0.0.0/24\",\n    childInstanceRouteTableId: exampleRouteTable.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cen.get_transit_router_available_resources()\nmaster_zone = default.resources[0].master_zones[0]\nslave_zone = default.resources[0].slave_zones[1]\nexample = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\nexample_master = alicloud.vpc.Switch(\"example_master\",\n    vswitch_name=name,\n    cidr_block=\"192.168.1.0/24\",\n    vpc_id=example.id,\n    zone_id=master_zone)\nexample_slave = alicloud.vpc.Switch(\"example_slave\",\n    vswitch_name=name,\n    cidr_block=\"192.168.2.0/24\",\n    vpc_id=example.id,\n    zone_id=slave_zone)\nexample_instance = alicloud.cen.Instance(\"example\",\n    cen_instance_name=name,\n    protection_level=\"REDUCED\")\nexample_transit_router = alicloud.cen.TransitRouter(\"example\",\n    transit_router_name=name,\n    cen_id=example_instance.id)\nexample_transit_router_vpc_attachment = alicloud.cen.TransitRouterVpcAttachment(\"example\",\n    cen_id=example_instance.id,\n    transit_router_id=example_transit_router.transit_router_id,\n    vpc_id=example.id,\n    zone_mappings=[\n        {\n            \"zone_id\": master_zone,\n            \"vswitch_id\": example_master.id,\n        },\n        {\n            \"zone_id\": slave_zone,\n            \"vswitch_id\": example_slave.id,\n        },\n    ],\n    transit_router_attachment_name=name,\n    transit_router_attachment_description=name)\nexample_route_table = alicloud.vpc.RouteTable(\"example\",\n    vpc_id=example.id,\n    route_table_name=name,\n    description=name)\nexample_child_instance_route_entry_to_attachment = alicloud.cen.ChildInstanceRouteEntryToAttachment(\"example\",\n    transit_router_attachment_id=example_transit_router_vpc_attachment.transit_router_attachment_id,\n    cen_id=example_instance.id,\n    destination_cidr_block=\"10.0.0.0/24\",\n    child_instance_route_table_id=example_route_table.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Cen.GetTransitRouterAvailableResources.Invoke();\n\n    var masterZone = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.MasterZones[0]));\n\n    var slaveZone = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.SlaveZones[1]));\n\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var exampleMaster = new AliCloud.Vpc.Switch(\"example_master\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"192.168.1.0/24\",\n        VpcId = example.Id,\n        ZoneId = masterZone,\n    });\n\n    var exampleSlave = new AliCloud.Vpc.Switch(\"example_slave\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"192.168.2.0/24\",\n        VpcId = example.Id,\n        ZoneId = slaveZone,\n    });\n\n    var exampleInstance = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = name,\n        ProtectionLevel = \"REDUCED\",\n    });\n\n    var exampleTransitRouter = new AliCloud.Cen.TransitRouter(\"example\", new()\n    {\n        TransitRouterName = name,\n        CenId = exampleInstance.Id,\n    });\n\n    var exampleTransitRouterVpcAttachment = new AliCloud.Cen.TransitRouterVpcAttachment(\"example\", new()\n    {\n        CenId = exampleInstance.Id,\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n        VpcId = example.Id,\n        ZoneMappings = new[]\n        {\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                ZoneId = masterZone,\n                VswitchId = exampleMaster.Id,\n            },\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                ZoneId = slaveZone,\n                VswitchId = exampleSlave.Id,\n            },\n        },\n        TransitRouterAttachmentName = name,\n        TransitRouterAttachmentDescription = name,\n    });\n\n    var exampleRouteTable = new AliCloud.Vpc.RouteTable(\"example\", new()\n    {\n        VpcId = example.Id,\n        RouteTableName = name,\n        Description = name,\n    });\n\n    var exampleChildInstanceRouteEntryToAttachment = new AliCloud.Cen.ChildInstanceRouteEntryToAttachment(\"example\", new()\n    {\n        TransitRouterAttachmentId = exampleTransitRouterVpcAttachment.TransitRouterAttachmentId,\n        CenId = exampleInstance.Id,\n        DestinationCidrBlock = \"10.0.0.0/24\",\n        ChildInstanceRouteTableId = exampleRouteTable.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cen.GetTransitRouterAvailableResources(ctx, \u0026cen.GetTransitRouterAvailableResourcesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmasterZone := _default.Resources[0].MasterZones[0]\n\t\tslaveZone := _default.Resources[0].SlaveZones[1]\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleMaster, err := vpc.NewSwitch(ctx, \"example_master\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.1.0/24\"),\n\t\t\tVpcId:       example.ID(),\n\t\t\tZoneId:      pulumi.String(masterZone),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSlave, err := vpc.NewSwitch(ctx, \"example_slave\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.2.0/24\"),\n\t\t\tVpcId:       example.ID(),\n\t\t\tZoneId:      pulumi.String(slaveZone),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tProtectionLevel: pulumi.String(\"REDUCED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouter, err := cen.NewTransitRouter(ctx, \"example\", \u0026cen.TransitRouterArgs{\n\t\t\tTransitRouterName: pulumi.String(name),\n\t\t\tCenId:             exampleInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouterVpcAttachment, err := cen.NewTransitRouterVpcAttachment(ctx, \"example\", \u0026cen.TransitRouterVpcAttachmentArgs{\n\t\t\tCenId:           exampleInstance.ID(),\n\t\t\tTransitRouterId: exampleTransitRouter.TransitRouterId,\n\t\t\tVpcId:           example.ID(),\n\t\t\tZoneMappings: cen.TransitRouterVpcAttachmentZoneMappingArray{\n\t\t\t\t\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\n\t\t\t\t\tZoneId:    pulumi.String(masterZone),\n\t\t\t\t\tVswitchId: exampleMaster.ID(),\n\t\t\t\t},\n\t\t\t\t\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\n\t\t\t\t\tZoneId:    pulumi.String(slaveZone),\n\t\t\t\t\tVswitchId: exampleSlave.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTransitRouterAttachmentName:        pulumi.String(name),\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRouteTable, err := vpc.NewRouteTable(ctx, \"example\", \u0026vpc.RouteTableArgs{\n\t\t\tVpcId:          example.ID(),\n\t\t\tRouteTableName: pulumi.String(name),\n\t\t\tDescription:    pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewChildInstanceRouteEntryToAttachment(ctx, \"example\", \u0026cen.ChildInstanceRouteEntryToAttachmentArgs{\n\t\t\tTransitRouterAttachmentId: exampleTransitRouterVpcAttachment.TransitRouterAttachmentId,\n\t\t\tCenId:                     exampleInstance.ID(),\n\t\t\tDestinationCidrBlock:      pulumi.String(\"10.0.0.0/24\"),\n\t\t\tChildInstanceRouteTableId: exampleRouteTable.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterAvailableResourcesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachmentArgs;\nimport com.pulumi.alicloud.cen.inputs.TransitRouterVpcAttachmentZoneMappingArgs;\nimport com.pulumi.alicloud.vpc.RouteTable;\nimport com.pulumi.alicloud.vpc.RouteTableArgs;\nimport com.pulumi.alicloud.cen.ChildInstanceRouteEntryToAttachment;\nimport com.pulumi.alicloud.cen.ChildInstanceRouteEntryToAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = CenFunctions.getTransitRouterAvailableResources(GetTransitRouterAvailableResourcesArgs.builder()\n            .build());\n\n        final var masterZone = default_.resources()[0].masterZones()[0];\n\n        final var slaveZone = default_.resources()[0].slaveZones()[1];\n\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var exampleMaster = new Switch(\"exampleMaster\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"192.168.1.0/24\")\n            .vpcId(example.id())\n            .zoneId(masterZone)\n            .build());\n\n        var exampleSlave = new Switch(\"exampleSlave\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"192.168.2.0/24\")\n            .vpcId(example.id())\n            .zoneId(slaveZone)\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .protectionLevel(\"REDUCED\")\n            .build());\n\n        var exampleTransitRouter = new TransitRouter(\"exampleTransitRouter\", TransitRouterArgs.builder()\n            .transitRouterName(name)\n            .cenId(exampleInstance.id())\n            .build());\n\n        var exampleTransitRouterVpcAttachment = new TransitRouterVpcAttachment(\"exampleTransitRouterVpcAttachment\", TransitRouterVpcAttachmentArgs.builder()\n            .cenId(exampleInstance.id())\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .vpcId(example.id())\n            .zoneMappings(            \n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .zoneId(masterZone)\n                    .vswitchId(exampleMaster.id())\n                    .build(),\n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .zoneId(slaveZone)\n                    .vswitchId(exampleSlave.id())\n                    .build())\n            .transitRouterAttachmentName(name)\n            .transitRouterAttachmentDescription(name)\n            .build());\n\n        var exampleRouteTable = new RouteTable(\"exampleRouteTable\", RouteTableArgs.builder()\n            .vpcId(example.id())\n            .routeTableName(name)\n            .description(name)\n            .build());\n\n        var exampleChildInstanceRouteEntryToAttachment = new ChildInstanceRouteEntryToAttachment(\"exampleChildInstanceRouteEntryToAttachment\", ChildInstanceRouteEntryToAttachmentArgs.builder()\n            .transitRouterAttachmentId(exampleTransitRouterVpcAttachment.transitRouterAttachmentId())\n            .cenId(exampleInstance.id())\n            .destinationCidrBlock(\"10.0.0.0/24\")\n            .childInstanceRouteTableId(exampleRouteTable.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  exampleMaster:\n    type: alicloud:vpc:Switch\n    name: example_master\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 192.168.1.0/24\n      vpcId: ${example.id}\n      zoneId: ${masterZone}\n  exampleSlave:\n    type: alicloud:vpc:Switch\n    name: example_slave\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 192.168.2.0/24\n      vpcId: ${example.id}\n      zoneId: ${slaveZone}\n  exampleInstance:\n    type: alicloud:cen:Instance\n    name: example\n    properties:\n      cenInstanceName: ${name}\n      protectionLevel: REDUCED\n  exampleTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: example\n    properties:\n      transitRouterName: ${name}\n      cenId: ${exampleInstance.id}\n  exampleTransitRouterVpcAttachment:\n    type: alicloud:cen:TransitRouterVpcAttachment\n    name: example\n    properties:\n      cenId: ${exampleInstance.id}\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n      vpcId: ${example.id}\n      zoneMappings:\n        - zoneId: ${masterZone}\n          vswitchId: ${exampleMaster.id}\n        - zoneId: ${slaveZone}\n          vswitchId: ${exampleSlave.id}\n      transitRouterAttachmentName: ${name}\n      transitRouterAttachmentDescription: ${name}\n  exampleRouteTable:\n    type: alicloud:vpc:RouteTable\n    name: example\n    properties:\n      vpcId: ${example.id}\n      routeTableName: ${name}\n      description: ${name}\n  exampleChildInstanceRouteEntryToAttachment:\n    type: alicloud:cen:ChildInstanceRouteEntryToAttachment\n    name: example\n    properties:\n      transitRouterAttachmentId: ${exampleTransitRouterVpcAttachment.transitRouterAttachmentId}\n      cenId: ${exampleInstance.id}\n      destinationCidrBlock: 10.0.0.0/24\n      childInstanceRouteTableId: ${exampleRouteTable.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterAvailableResources\n      arguments: {}\n  masterZone: ${default.resources[0].masterZones[0]}\n  slaveZone: ${default.resources[0].slaveZones[1]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCen Child Instance Route Entry To Attachment can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_cen_child_instance_route_entry_to_attachment.example \u003ccen_id\u003e:\u003cchild_instance_route_table_id\u003e:\u003ctransit_router_attachment_id\u003e:\u003cdestination_cidr_block\u003e\n```\n\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"childInstanceRouteTableId":{"type":"string","description":"The first ID of the resource\n"},"destinationCidrBlock":{"type":"string","description":"DestinationCidrBlock\n"},"dryRun":{"type":"boolean","description":"Whether to perform pre-check on this request, including permission and instance status verification.\n"},"serviceType":{"type":"string","description":"ServiceType\n"},"status":{"type":"string","description":"The status of the resource\n"},"transitRouterAttachmentId":{"type":"string","description":"TransitRouterAttachmentId\n"}},"required":["cenId","childInstanceRouteTableId","destinationCidrBlock","serviceType","status","transitRouterAttachmentId"],"inputProperties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"childInstanceRouteTableId":{"type":"string","description":"The first ID of the resource\n","willReplaceOnChanges":true},"destinationCidrBlock":{"type":"string","description":"DestinationCidrBlock\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Whether to perform pre-check on this request, including permission and instance status verification.\n"},"transitRouterAttachmentId":{"type":"string","description":"TransitRouterAttachmentId\n","willReplaceOnChanges":true}},"requiredInputs":["cenId","childInstanceRouteTableId","destinationCidrBlock","transitRouterAttachmentId"],"stateInputs":{"description":"Input properties used for looking up and filtering ChildInstanceRouteEntryToAttachment resources.\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"childInstanceRouteTableId":{"type":"string","description":"The first ID of the resource\n","willReplaceOnChanges":true},"destinationCidrBlock":{"type":"string","description":"DestinationCidrBlock\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Whether to perform pre-check on this request, including permission and instance status verification.\n"},"serviceType":{"type":"string","description":"ServiceType\n"},"status":{"type":"string","description":"The status of the resource\n"},"transitRouterAttachmentId":{"type":"string","description":"TransitRouterAttachmentId\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/flowLog:FlowLog":{"description":"Provides a CEN Flow Log resource.\n\n\n\nFor information about CEN Flow Log and how to use it, see [What is Flow Log](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-createflowlog).\n\n\u003e **NOTE:** Available since v1.73.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Create a cen flowlog resource and use it to publish a route entry pointing to an ECS.\nconst _default = new alicloud.cen.Instance(\"default\", {name: \"my-cen\"});\nconst defaultProject = new alicloud.log.Project(\"default\", {\n    name: \"sls-for-flowlog\",\n    description: \"create by terraform\",\n});\nconst defaultStore = new alicloud.log.Store(\"default\", {\n    project: defaultProject.name,\n    name: \"sls-for-flowlog\",\n    retentionPeriod: 3650,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst defaultFlowLog = new alicloud.cen.FlowLog(\"default\", {\n    flowLogName: \"my-flowlog\",\n    cenId: _default.id,\n    projectName: defaultProject.name,\n    logStoreName: defaultStore.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Create a cen flowlog resource and use it to publish a route entry pointing to an ECS.\ndefault = alicloud.cen.Instance(\"default\", name=\"my-cen\")\ndefault_project = alicloud.log.Project(\"default\",\n    name=\"sls-for-flowlog\",\n    description=\"create by terraform\")\ndefault_store = alicloud.log.Store(\"default\",\n    project=default_project.name,\n    name=\"sls-for-flowlog\",\n    retention_period=3650,\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\ndefault_flow_log = alicloud.cen.FlowLog(\"default\",\n    flow_log_name=\"my-flowlog\",\n    cen_id=default.id,\n    project_name=default_project.name,\n    log_store_name=default_store.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a cen flowlog resource and use it to publish a route entry pointing to an ECS.\n    var @default = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        Name = \"my-cen\",\n    });\n\n    var defaultProject = new AliCloud.Log.Project(\"default\", new()\n    {\n        Name = \"sls-for-flowlog\",\n        Description = \"create by terraform\",\n    });\n\n    var defaultStore = new AliCloud.Log.Store(\"default\", new()\n    {\n        Project = defaultProject.Name,\n        Name = \"sls-for-flowlog\",\n        RetentionPeriod = 3650,\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var defaultFlowLog = new AliCloud.Cen.FlowLog(\"default\", new()\n    {\n        FlowLogName = \"my-flowlog\",\n        CenId = @default.Id,\n        ProjectName = defaultProject.Name,\n        LogStoreName = defaultStore.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a cen flowlog resource and use it to publish a route entry pointing to an ECS.\n\t\t_default, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\n\t\t\tName: pulumi.String(\"my-cen\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultProject, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\n\t\t\tName:        pulumi.String(\"sls-for-flowlog\"),\n\t\t\tDescription: pulumi.String(\"create by terraform\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStore, err := log.NewStore(ctx, \"default\", \u0026log.StoreArgs{\n\t\t\tProject:            defaultProject.Name,\n\t\t\tName:               pulumi.String(\"sls-for-flowlog\"),\n\t\t\tRetentionPeriod:    pulumi.Int(3650),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewFlowLog(ctx, \"default\", \u0026cen.FlowLogArgs{\n\t\t\tFlowLogName:  pulumi.String(\"my-flowlog\"),\n\t\t\tCenId:        _default.ID(),\n\t\t\tProjectName:  defaultProject.Name,\n\t\t\tLogStoreName: defaultStore.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.cen.FlowLog;\nimport com.pulumi.alicloud.cen.FlowLogArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a cen flowlog resource and use it to publish a route entry pointing to an ECS.\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .name(\"my-cen\")\n            .build());\n\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .name(\"sls-for-flowlog\")\n            .description(\"create by terraform\")\n            .build());\n\n        var defaultStore = new Store(\"defaultStore\", StoreArgs.builder()\n            .project(defaultProject.name())\n            .name(\"sls-for-flowlog\")\n            .retentionPeriod(3650)\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var defaultFlowLog = new FlowLog(\"defaultFlowLog\", FlowLogArgs.builder()\n            .flowLogName(\"my-flowlog\")\n            .cenId(default_.id())\n            .projectName(defaultProject.name())\n            .logStoreName(defaultStore.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a cen flowlog resource and use it to publish a route entry pointing to an ECS.\n  default:\n    type: alicloud:cen:Instance\n    properties:\n      name: my-cen\n  defaultProject:\n    type: alicloud:log:Project\n    name: default\n    properties:\n      name: sls-for-flowlog\n      description: create by terraform\n  defaultStore:\n    type: alicloud:log:Store\n    name: default\n    properties:\n      project: ${defaultProject.name}\n      name: sls-for-flowlog\n      retentionPeriod: 3650\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  defaultFlowLog:\n    type: alicloud:cen:FlowLog\n    name: default\n    properties:\n      flowLogName: my-flowlog\n      cenId: ${default.id}\n      projectName: ${defaultProject.name}\n      logStoreName: ${defaultStore.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCEN Flow Log can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/flowLog:FlowLog example \u003cid\u003e\n```\n\n","properties":{"cenId":{"type":"string","description":"cen id\n"},"createTime":{"type":"string","description":"CreateTime\n"},"description":{"type":"string","description":"The description of the flowlog.\n"},"flowLogName":{"type":"string","description":"The name of the flowlog.\n"},"interval":{"type":"integer","description":"The duration of the capture window for the flow log to capture traffic. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e or **600 * *. Default value: **600 * *.\n"},"logFormatString":{"type":"string","description":"Log Format\n"},"logStoreName":{"type":"string","description":"The LogStore that stores the flowlog.\n"},"projectName":{"type":"string","description":"The Project that stores the flowlog.\n"},"regionId":{"type":"string","description":"region id\n"},"status":{"type":"string","description":"The status of the flow log. Valid values:\n- `Active`: started.\n- `InActive`: not started.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterAttachmentId":{"type":"string","description":"Cross-region Connection ID or VBR connection ID.\n\n\u003e **NOTE:**  This parameter is required.\n"},"transitRouterId":{"type":"string","description":"Transit Router ID\n"}},"required":["cenId","createTime","logStoreName","projectName","regionId","status"],"inputProperties":{"cenId":{"type":"string","description":"cen id\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the flowlog.\n"},"flowLogName":{"type":"string","description":"The name of the flowlog.\n"},"interval":{"type":"integer","description":"The duration of the capture window for the flow log to capture traffic. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e or **600 * *. Default value: **600 * *.\n"},"logFormatString":{"type":"string","description":"Log Format\n","willReplaceOnChanges":true},"logStoreName":{"type":"string","description":"The LogStore that stores the flowlog.\n","willReplaceOnChanges":true},"projectName":{"type":"string","description":"The Project that stores the flowlog.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the flow log. Valid values:\n- `Active`: started.\n- `InActive`: not started.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterAttachmentId":{"type":"string","description":"Cross-region Connection ID or VBR connection ID.\n\n\u003e **NOTE:**  This parameter is required.\n","willReplaceOnChanges":true},"transitRouterId":{"type":"string","description":"Transit Router ID\n","willReplaceOnChanges":true}},"requiredInputs":["cenId","logStoreName","projectName"],"stateInputs":{"description":"Input properties used for looking up and filtering FlowLog resources.\n","properties":{"cenId":{"type":"string","description":"cen id\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"CreateTime\n"},"description":{"type":"string","description":"The description of the flowlog.\n"},"flowLogName":{"type":"string","description":"The name of the flowlog.\n"},"interval":{"type":"integer","description":"The duration of the capture window for the flow log to capture traffic. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e or **600 * *. Default value: **600 * *.\n"},"logFormatString":{"type":"string","description":"Log Format\n","willReplaceOnChanges":true},"logStoreName":{"type":"string","description":"The LogStore that stores the flowlog.\n","willReplaceOnChanges":true},"projectName":{"type":"string","description":"The Project that stores the flowlog.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"region id\n"},"status":{"type":"string","description":"The status of the flow log. Valid values:\n- `Active`: started.\n- `InActive`: not started.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterAttachmentId":{"type":"string","description":"Cross-region Connection ID or VBR connection ID.\n\n\u003e **NOTE:**  This parameter is required.\n","willReplaceOnChanges":true},"transitRouterId":{"type":"string","description":"Transit Router ID\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/instance:Instance":{"description":"Provides a Cloud Enterprise Network (CEN) Cen Instance resource.\n\n\n\nFor information about Cloud Enterprise Network (CEN) Cen Instance and how to use it, see [What is Cen Instance](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-createcen).\n\n\u003e **NOTE:** Available since v1.15.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cen.Instance(\"default\", {\n    cenInstanceName: name,\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cen.Instance(\"default\",\n    cen_instance_name=name,\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        CenInstanceName = name,\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tDescription:     pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: ${name}\n      description: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Enterprise Network (CEN) Cen Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"cenInstanceName":{"type":"string","description":"The name of the CEN instance.\n"},"createTime":{"type":"string","description":"The time when the CEN instance was created.\n"},"description":{"type":"string","description":"The description of the CEN instance.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.246.0. New field 'cen_instance_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.98.0. New field 'cen_instance_name' instead."},"protectionLevel":{"type":"string","description":"The level of CIDR block overlapping. Valid values:  REDUCED: Overlapped CIDR blocks are allowed. However, the overlapped CIDR blocks cannot be the same.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"The state of the CEN instance.   Creating: The CEN instance is being created. Active: The CEN instance is running. Deleting: The CEN instance is being deleted.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the CEN instance.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["cenInstanceName","createTime","name","protectionLevel","resourceGroupId","status"],"inputProperties":{"cenInstanceName":{"type":"string","description":"The name of the CEN instance.\n"},"description":{"type":"string","description":"The description of the CEN instance.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.246.0. New field 'cen_instance_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.98.0. New field 'cen_instance_name' instead."},"protectionLevel":{"type":"string","description":"The level of CIDR block overlapping. Valid values:  REDUCED: Overlapped CIDR blocks are allowed. However, the overlapped CIDR blocks cannot be the same.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the CEN instance.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"cenInstanceName":{"type":"string","description":"The name of the CEN instance.\n"},"createTime":{"type":"string","description":"The time when the CEN instance was created.\n"},"description":{"type":"string","description":"The description of the CEN instance.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.246.0. New field 'cen_instance_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.98.0. New field 'cen_instance_name' instead."},"protectionLevel":{"type":"string","description":"The level of CIDR block overlapping. Valid values:  REDUCED: Overlapped CIDR blocks are allowed. However, the overlapped CIDR blocks cannot be the same.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"The state of the CEN instance.   Creating: The CEN instance is being created. Active: The CEN instance is running. Deleting: The CEN instance is being deleted.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the CEN instance.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"type":"object"}},"alicloud:cen/instanceAttachment:InstanceAttachment":{"description":"Provides a CEN child instance attachment resource that associate the network(VPC, CCN, VBR) with the CEN instance.\n\n\u003e **NOTE:** Available since v1.42.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst example = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"tf_example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleInstance = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: \"tf_example\",\n    description: \"an example for cen\",\n});\nconst exampleInstanceAttachment = new alicloud.cen.InstanceAttachment(\"example\", {\n    instanceId: exampleInstance.id,\n    childInstanceId: example.id,\n    childInstanceType: \"VPC\",\n    childInstanceRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_regions(current=True)\nexample = alicloud.vpc.Network(\"example\",\n    vpc_name=\"tf_example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_instance = alicloud.cen.Instance(\"example\",\n    cen_instance_name=\"tf_example\",\n    description=\"an example for cen\")\nexample_instance_attachment = alicloud.cen.InstanceAttachment(\"example\",\n    instance_id=example_instance.id,\n    child_instance_id=example.id,\n    child_instance_type=\"VPC\",\n    child_instance_region_id=default.regions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"tf_example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleInstance = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = \"tf_example\",\n        Description = \"an example for cen\",\n    });\n\n    var exampleInstanceAttachment = new AliCloud.Cen.InstanceAttachment(\"example\", new()\n    {\n        InstanceId = exampleInstance.Id,\n        ChildInstanceId = example.Id,\n        ChildInstanceType = \"VPC\",\n        ChildInstanceRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"tf_example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(\"tf_example\"),\n\t\t\tDescription:     pulumi.String(\"an example for cen\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewInstanceAttachment(ctx, \"example\", \u0026cen.InstanceAttachmentArgs{\n\t\t\tInstanceId:            exampleInstance.ID(),\n\t\t\tChildInstanceId:       example.ID(),\n\t\t\tChildInstanceType:     pulumi.String(\"VPC\"),\n\t\t\tChildInstanceRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.InstanceAttachment;\nimport com.pulumi.alicloud.cen.InstanceAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .vpcName(\"tf_example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .cenInstanceName(\"tf_example\")\n            .description(\"an example for cen\")\n            .build());\n\n        var exampleInstanceAttachment = new InstanceAttachment(\"exampleInstanceAttachment\", InstanceAttachmentArgs.builder()\n            .instanceId(exampleInstance.id())\n            .childInstanceId(example.id())\n            .childInstanceType(\"VPC\")\n            .childInstanceRegionId(default_.regions()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: tf_example\n      cidrBlock: 172.17.3.0/24\n  exampleInstance:\n    type: alicloud:cen:Instance\n    name: example\n    properties:\n      cenInstanceName: tf_example\n      description: an example for cen\n  exampleInstanceAttachment:\n    type: alicloud:cen:InstanceAttachment\n    name: example\n    properties:\n      instanceId: ${exampleInstance.id}\n      childInstanceId: ${example.id}\n      childInstanceType: VPC\n      childInstanceRegionId: ${default.regions[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCEN instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/instanceAttachment:InstanceAttachment example cen-m7i7pjmkon********:vpc-2ze2w07mcy9nz********:VPC:cn-beijing\n```\n\n","properties":{"cenOwnerId":{"type":"integer","description":"The account ID to which the CEN instance belongs.\n\n-\u003e**NOTE:** Ensure that the child instance is not used in Express Connect.\n"},"childInstanceId":{"type":"string","description":"The ID of the child instance to attach.\n"},"childInstanceOwnerId":{"type":"integer","description":"The uid of the child instance. Only used when attach a child instance of other account.\n"},"childInstanceRegionId":{"type":"string","description":"The region ID of the child instance to attach.\n"},"childInstanceType":{"type":"string","description":"The type of the associated network. Valid values: `VPC`, `VBR` and `CCN`.\n"},"instanceId":{"type":"string","description":"The ID of the CEN.\n"},"status":{"type":"string","description":"The associating status of the network.\n"}},"required":["childInstanceId","childInstanceOwnerId","childInstanceRegionId","childInstanceType","instanceId","status"],"inputProperties":{"cenOwnerId":{"type":"integer","description":"The account ID to which the CEN instance belongs.\n\n-\u003e**NOTE:** Ensure that the child instance is not used in Express Connect.\n"},"childInstanceId":{"type":"string","description":"The ID of the child instance to attach.\n","willReplaceOnChanges":true},"childInstanceOwnerId":{"type":"integer","description":"The uid of the child instance. Only used when attach a child instance of other account.\n"},"childInstanceRegionId":{"type":"string","description":"The region ID of the child instance to attach.\n","willReplaceOnChanges":true},"childInstanceType":{"type":"string","description":"The type of the associated network. Valid values: `VPC`, `VBR` and `CCN`.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the CEN.\n","willReplaceOnChanges":true}},"requiredInputs":["childInstanceId","childInstanceRegionId","childInstanceType","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceAttachment resources.\n","properties":{"cenOwnerId":{"type":"integer","description":"The account ID to which the CEN instance belongs.\n\n-\u003e**NOTE:** Ensure that the child instance is not used in Express Connect.\n"},"childInstanceId":{"type":"string","description":"The ID of the child instance to attach.\n","willReplaceOnChanges":true},"childInstanceOwnerId":{"type":"integer","description":"The uid of the child instance. Only used when attach a child instance of other account.\n"},"childInstanceRegionId":{"type":"string","description":"The region ID of the child instance to attach.\n","willReplaceOnChanges":true},"childInstanceType":{"type":"string","description":"The type of the associated network. Valid values: `VPC`, `VBR` and `CCN`.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the CEN.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The associating status of the network.\n"}},"type":"object"}},"alicloud:cen/instanceGrant:InstanceGrant":{"description":"Provides a CEN child instance grant resource, which allow you to authorize a VPC or VBR to a CEN of a different account.\n\nFor more information about how to use it, see [Attach a network in a different account](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-attachcenchildinstance). \n\n\u003e **NOTE:** Deprecated since v1.241.0. The resource have been deprecated and new resource type\u003cspan pulumi-lang-nodejs=\" alicloud.cen.TransitRouterGrantAttachment \" pulumi-lang-dotnet=\" alicloud.cen.TransitRouterGrantAttachment \" pulumi-lang-go=\" cen.TransitRouterGrantAttachment \" pulumi-lang-python=\" cen.TransitRouterGrantAttachment \" pulumi-lang-yaml=\" alicloud.cen.TransitRouterGrantAttachment \" pulumi-lang-java=\" alicloud.cen.TransitRouterGrantAttachment \"\u003e alicloud.cen.TransitRouterGrantAttachment \u003c/span\u003eis recommended.\n\n\u003e **NOTE:** Available since v1.37.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst anotherUid = config.get(\"anotherUid\") || \"xxxx\";\nconst yourAccount = alicloud.getAccount({});\nconst childAccount = alicloud.getAccount({});\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst example = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: \"tf_example\",\n    description: \"an example for cen\",\n});\nconst childAccountNetwork = new alicloud.vpc.Network(\"child_account\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst childAccountInstanceGrant = new alicloud.cen.InstanceGrant(\"child_account\", {\n    cenId: example.id,\n    childInstanceId: childAccountNetwork.id,\n    cenOwnerId: yourAccount.then(yourAccount =\u003e yourAccount.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nanother_uid = config.get(\"anotherUid\")\nif another_uid is None:\n    another_uid = \"xxxx\"\nyour_account = alicloud.get_account()\nchild_account = alicloud.get_account()\ndefault = alicloud.get_regions(current=True)\nexample = alicloud.cen.Instance(\"example\",\n    cen_instance_name=\"tf_example\",\n    description=\"an example for cen\")\nchild_account_network = alicloud.vpc.Network(\"child_account\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nchild_account_instance_grant = alicloud.cen.InstanceGrant(\"child_account\",\n    cen_id=example.id,\n    child_instance_id=child_account_network.id,\n    cen_owner_id=your_account.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var anotherUid = config.Get(\"anotherUid\") ?? \"xxxx\";\n    var yourAccount = AliCloud.GetAccount.Invoke();\n\n    var childAccount = AliCloud.GetAccount.Invoke();\n\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var example = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = \"tf_example\",\n        Description = \"an example for cen\",\n    });\n\n    var childAccountNetwork = new AliCloud.Vpc.Network(\"child_account\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var childAccountInstanceGrant = new AliCloud.Cen.InstanceGrant(\"child_account\", new()\n    {\n        CenId = example.Id,\n        ChildInstanceId = childAccountNetwork.Id,\n        CenOwnerId = yourAccount.Apply(getAccountResult =\u003e getAccountResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tanotherUid := \"xxxx\"\n\t\tif param := cfg.Get(\"anotherUid\"); param != \"\" {\n\t\t\tanotherUid = param\n\t\t}\n\t\tyourAccount, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(\"tf_example\"),\n\t\t\tDescription:     pulumi.String(\"an example for cen\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tchildAccountNetwork, err := vpc.NewNetwork(ctx, \"child_account\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewInstanceGrant(ctx, \"child_account\", \u0026cen.InstanceGrantArgs{\n\t\t\tCenId:           example.ID(),\n\t\t\tChildInstanceId: childAccountNetwork.ID(),\n\t\t\tCenOwnerId:      pulumi.String(yourAccount.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.cen.InstanceGrant;\nimport com.pulumi.alicloud.cen.InstanceGrantArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var anotherUid = config.get(\"anotherUid\").orElse(\"xxxx\");\n        final var yourAccount = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var childAccount = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var example = new Instance(\"example\", InstanceArgs.builder()\n            .cenInstanceName(\"tf_example\")\n            .description(\"an example for cen\")\n            .build());\n\n        var childAccountNetwork = new Network(\"childAccountNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var childAccountInstanceGrant = new InstanceGrant(\"childAccountInstanceGrant\", InstanceGrantArgs.builder()\n            .cenId(example.id())\n            .childInstanceId(childAccountNetwork.id())\n            .cenOwnerId(yourAccount.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  anotherUid:\n    type: string\n    default: xxxx\nresources:\n  example:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: tf_example\n      description: an example for cen\n  childAccountNetwork:\n    type: alicloud:vpc:Network\n    name: child_account\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  childAccountInstanceGrant:\n    type: alicloud:cen:InstanceGrant\n    name: child_account\n    properties:\n      cenId: ${example.id}\n      childInstanceId: ${childAccountNetwork.id}\n      cenOwnerId: ${yourAccount.id}\nvariables:\n  yourAccount:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  childAccount:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCEN instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/instanceGrant:InstanceGrant example cen-abc123456:vpc-abc123456:uid123456\n```\n\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN.\n"},"cenOwnerId":{"type":"string","description":"The owner UID of the  CEN which the child instance granted to.\n"},"childInstanceId":{"type":"string","description":"The ID of the child instance to grant.\n"}},"required":["cenId","cenOwnerId","childInstanceId"],"inputProperties":{"cenId":{"type":"string","description":"The ID of the CEN.\n","willReplaceOnChanges":true},"cenOwnerId":{"type":"string","description":"The owner UID of the  CEN which the child instance granted to.\n","willReplaceOnChanges":true},"childInstanceId":{"type":"string","description":"The ID of the child instance to grant.\n","willReplaceOnChanges":true}},"requiredInputs":["cenId","cenOwnerId","childInstanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceGrant resources.\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN.\n","willReplaceOnChanges":true},"cenOwnerId":{"type":"string","description":"The owner UID of the  CEN which the child instance granted to.\n","willReplaceOnChanges":true},"childInstanceId":{"type":"string","description":"The ID of the child instance to grant.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/interRegionTrafficQosPolicy:InterRegionTrafficQosPolicy":{"description":"Provides a Cloud Enterprise Network (CEN) Inter Region Traffic Qos Policy resource.\n\n\n\nFor information about Cloud Enterprise Network (CEN) Inter Region Traffic Qos Policy and how to use it, see [What is Inter Region Traffic Qos Policy](https://next.api.alibabacloud.com/document/Cbn/2017-09-12/CreateCenInterRegionTrafficQosPolicy).\n\n\u003e **NOTE:** Available since v1.246.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultpSZB78 = new alicloud.cen.Instance(\"defaultpSZB78\", {});\nconst defaultUmmxnE = new alicloud.cen.TransitRouter(\"defaultUmmxnE\", {cenId: defaultpSZB78.id});\nconst defaultksqgSa = new alicloud.cen.TransitRouter(\"defaultksqgSa\", {cenId: defaultpSZB78.id});\nconst defaultnXZ83y = new alicloud.cen.TransitRouterPeerAttachment(\"defaultnXZ83y\", {\n    defaultLinkType: \"Platinum\",\n    bandwidthType: \"DataTransfer\",\n    cenId: defaultpSZB78.id,\n    peerTransitRouterRegionId: \"cn-hangzhou\",\n    transitRouterId: defaultUmmxnE.transitRouterId,\n    peerTransitRouterId: defaultksqgSa.transitRouterId,\n    bandwidth: 10,\n});\nconst _default = new alicloud.cen.InterRegionTrafficQosPolicy(\"default\", {\n    transitRouterAttachmentId: defaultnXZ83y.transitRouterAttachmentId,\n    interRegionTrafficQosPolicyName: \"example1\",\n    interRegionTrafficQosPolicyDescription: \"example1\",\n    bandwidthGuaranteeMode: \"byBandwidthPercent\",\n    transitRouterId: defaultksqgSa.transitRouterId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaultp_szb78 = alicloud.cen.Instance(\"defaultpSZB78\")\ndefault_ummxn_e = alicloud.cen.TransitRouter(\"defaultUmmxnE\", cen_id=defaultp_szb78.id)\ndefaultksqg_sa = alicloud.cen.TransitRouter(\"defaultksqgSa\", cen_id=defaultp_szb78.id)\ndefaultn_xz83y = alicloud.cen.TransitRouterPeerAttachment(\"defaultnXZ83y\",\n    default_link_type=\"Platinum\",\n    bandwidth_type=\"DataTransfer\",\n    cen_id=defaultp_szb78.id,\n    peer_transit_router_region_id=\"cn-hangzhou\",\n    transit_router_id=default_ummxn_e.transit_router_id,\n    peer_transit_router_id=defaultksqg_sa.transit_router_id,\n    bandwidth=10)\ndefault = alicloud.cen.InterRegionTrafficQosPolicy(\"default\",\n    transit_router_attachment_id=defaultn_xz83y.transit_router_attachment_id,\n    inter_region_traffic_qos_policy_name=\"example1\",\n    inter_region_traffic_qos_policy_description=\"example1\",\n    bandwidth_guarantee_mode=\"byBandwidthPercent\",\n    transit_router_id=defaultksqg_sa.transit_router_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultpSZB78 = new AliCloud.Cen.Instance(\"defaultpSZB78\");\n\n    var defaultUmmxnE = new AliCloud.Cen.TransitRouter(\"defaultUmmxnE\", new()\n    {\n        CenId = defaultpSZB78.Id,\n    });\n\n    var defaultksqgSa = new AliCloud.Cen.TransitRouter(\"defaultksqgSa\", new()\n    {\n        CenId = defaultpSZB78.Id,\n    });\n\n    var defaultnXZ83y = new AliCloud.Cen.TransitRouterPeerAttachment(\"defaultnXZ83y\", new()\n    {\n        DefaultLinkType = \"Platinum\",\n        BandwidthType = \"DataTransfer\",\n        CenId = defaultpSZB78.Id,\n        PeerTransitRouterRegionId = \"cn-hangzhou\",\n        TransitRouterId = defaultUmmxnE.TransitRouterId,\n        PeerTransitRouterId = defaultksqgSa.TransitRouterId,\n        Bandwidth = 10,\n    });\n\n    var @default = new AliCloud.Cen.InterRegionTrafficQosPolicy(\"default\", new()\n    {\n        TransitRouterAttachmentId = defaultnXZ83y.TransitRouterAttachmentId,\n        InterRegionTrafficQosPolicyName = \"example1\",\n        InterRegionTrafficQosPolicyDescription = \"example1\",\n        BandwidthGuaranteeMode = \"byBandwidthPercent\",\n        TransitRouterId = defaultksqgSa.TransitRouterId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultpSZB78, err := cen.NewInstance(ctx, \"defaultpSZB78\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultUmmxnE, err := cen.NewTransitRouter(ctx, \"defaultUmmxnE\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId: defaultpSZB78.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultksqgSa, err := cen.NewTransitRouter(ctx, \"defaultksqgSa\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId: defaultpSZB78.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultnXZ83y, err := cen.NewTransitRouterPeerAttachment(ctx, \"defaultnXZ83y\", \u0026cen.TransitRouterPeerAttachmentArgs{\n\t\t\tDefaultLinkType:           pulumi.String(\"Platinum\"),\n\t\t\tBandwidthType:             pulumi.String(\"DataTransfer\"),\n\t\t\tCenId:                     defaultpSZB78.ID(),\n\t\t\tPeerTransitRouterRegionId: pulumi.String(\"cn-hangzhou\"),\n\t\t\tTransitRouterId:           defaultUmmxnE.TransitRouterId,\n\t\t\tPeerTransitRouterId:       defaultksqgSa.TransitRouterId,\n\t\t\tBandwidth:                 pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewInterRegionTrafficQosPolicy(ctx, \"default\", \u0026cen.InterRegionTrafficQosPolicyArgs{\n\t\t\tTransitRouterAttachmentId:              defaultnXZ83y.TransitRouterAttachmentId,\n\t\t\tInterRegionTrafficQosPolicyName:        pulumi.String(\"example1\"),\n\t\t\tInterRegionTrafficQosPolicyDescription: pulumi.String(\"example1\"),\n\t\t\tBandwidthGuaranteeMode:                 pulumi.String(\"byBandwidthPercent\"),\n\t\t\tTransitRouterId:                        defaultksqgSa.TransitRouterId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterPeerAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterPeerAttachmentArgs;\nimport com.pulumi.alicloud.cen.InterRegionTrafficQosPolicy;\nimport com.pulumi.alicloud.cen.InterRegionTrafficQosPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultpSZB78 = new Instance(\"defaultpSZB78\");\n\n        var defaultUmmxnE = new TransitRouter(\"defaultUmmxnE\", TransitRouterArgs.builder()\n            .cenId(defaultpSZB78.id())\n            .build());\n\n        var defaultksqgSa = new TransitRouter(\"defaultksqgSa\", TransitRouterArgs.builder()\n            .cenId(defaultpSZB78.id())\n            .build());\n\n        var defaultnXZ83y = new TransitRouterPeerAttachment(\"defaultnXZ83y\", TransitRouterPeerAttachmentArgs.builder()\n            .defaultLinkType(\"Platinum\")\n            .bandwidthType(\"DataTransfer\")\n            .cenId(defaultpSZB78.id())\n            .peerTransitRouterRegionId(\"cn-hangzhou\")\n            .transitRouterId(defaultUmmxnE.transitRouterId())\n            .peerTransitRouterId(defaultksqgSa.transitRouterId())\n            .bandwidth(10)\n            .build());\n\n        var default_ = new InterRegionTrafficQosPolicy(\"default\", InterRegionTrafficQosPolicyArgs.builder()\n            .transitRouterAttachmentId(defaultnXZ83y.transitRouterAttachmentId())\n            .interRegionTrafficQosPolicyName(\"example1\")\n            .interRegionTrafficQosPolicyDescription(\"example1\")\n            .bandwidthGuaranteeMode(\"byBandwidthPercent\")\n            .transitRouterId(defaultksqgSa.transitRouterId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultpSZB78:\n    type: alicloud:cen:Instance\n  defaultUmmxnE:\n    type: alicloud:cen:TransitRouter\n    properties:\n      cenId: ${defaultpSZB78.id}\n  defaultksqgSa:\n    type: alicloud:cen:TransitRouter\n    properties:\n      cenId: ${defaultpSZB78.id}\n  defaultnXZ83y:\n    type: alicloud:cen:TransitRouterPeerAttachment\n    properties:\n      defaultLinkType: Platinum\n      bandwidthType: DataTransfer\n      cenId: ${defaultpSZB78.id}\n      peerTransitRouterRegionId: cn-hangzhou\n      transitRouterId: ${defaultUmmxnE.transitRouterId}\n      peerTransitRouterId: ${defaultksqgSa.transitRouterId}\n      bandwidth: '10'\n  default:\n    type: alicloud:cen:InterRegionTrafficQosPolicy\n    properties:\n      transitRouterAttachmentId: ${defaultnXZ83y.transitRouterAttachmentId}\n      interRegionTrafficQosPolicyName: example1\n      interRegionTrafficQosPolicyDescription: example1\n      bandwidthGuaranteeMode: byBandwidthPercent\n      transitRouterId: ${defaultksqgSa.transitRouterId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Enterprise Network (CEN) Inter Region Traffic Qos Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/interRegionTrafficQosPolicy:InterRegionTrafficQosPolicy example \u003cid\u003e\n```\n\n","properties":{"bandwidthGuaranteeMode":{"type":"string","description":"Bandwidth guarantee mode. You can select by bandwidth or by bandwidth percentage. The default is by percentage.\n"},"interRegionTrafficQosPolicyDescription":{"type":"string","description":"The description information of the traffic scheduling policy.\n"},"interRegionTrafficQosPolicyName":{"type":"string","description":"The name of the traffic scheduling policy.\n"},"status":{"type":"string","description":"The status of the traffic scheduling policy.\n"},"transitRouterAttachmentId":{"type":"string","description":"Peer Attachment ID.\n"},"transitRouterId":{"type":"string","description":"The ID of the forwarding router instance.\n"}},"required":["bandwidthGuaranteeMode","status","transitRouterAttachmentId","transitRouterId"],"inputProperties":{"bandwidthGuaranteeMode":{"type":"string","description":"Bandwidth guarantee mode. You can select by bandwidth or by bandwidth percentage. The default is by percentage.\n","willReplaceOnChanges":true},"interRegionTrafficQosPolicyDescription":{"type":"string","description":"The description information of the traffic scheduling policy.\n"},"interRegionTrafficQosPolicyName":{"type":"string","description":"The name of the traffic scheduling policy.\n"},"transitRouterAttachmentId":{"type":"string","description":"Peer Attachment ID.\n","willReplaceOnChanges":true},"transitRouterId":{"type":"string","description":"The ID of the forwarding router instance.\n","willReplaceOnChanges":true}},"requiredInputs":["transitRouterAttachmentId","transitRouterId"],"stateInputs":{"description":"Input properties used for looking up and filtering InterRegionTrafficQosPolicy resources.\n","properties":{"bandwidthGuaranteeMode":{"type":"string","description":"Bandwidth guarantee mode. You can select by bandwidth or by bandwidth percentage. The default is by percentage.\n","willReplaceOnChanges":true},"interRegionTrafficQosPolicyDescription":{"type":"string","description":"The description information of the traffic scheduling policy.\n"},"interRegionTrafficQosPolicyName":{"type":"string","description":"The name of the traffic scheduling policy.\n"},"status":{"type":"string","description":"The status of the traffic scheduling policy.\n"},"transitRouterAttachmentId":{"type":"string","description":"Peer Attachment ID.\n","willReplaceOnChanges":true},"transitRouterId":{"type":"string","description":"The ID of the forwarding router instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/interRegionTrafficQosQueue:InterRegionTrafficQosQueue":{"description":"Provides a Cloud Enterprise Network (CEN) Inter Region Traffic Qos Queue resource.\n\n\n\nFor information about Cloud Enterprise Network (CEN) Inter Region Traffic Qos Queue and how to use it, see [What is Inter Region Traffic Qos Queue](https://next.api.alibabacloud.com/document/Cbn/2017-09-12/CreateCenInterRegionTrafficQosQueue).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst defaultRegion = config.get(\"defaultRegion\") || \"cn-hangzhou\";\nconst peerRegion = config.get(\"peerRegion\") || \"cn-beijing\";\nconst _default = new alicloud.cen.Instance(\"default\", {\n    cenInstanceName: name,\n    protectionLevel: \"REDUCED\",\n});\nconst defaultBandwidthPackage = new alicloud.cen.BandwidthPackage(\"default\", {\n    bandwidth: 5,\n    cenBandwidthPackageName: \"tf_example\",\n    geographicRegionAId: \"China\",\n    geographicRegionBId: \"China\",\n});\nconst defaultBandwidthPackageAttachment = new alicloud.cen.BandwidthPackageAttachment(\"default\", {\n    instanceId: _default.id,\n    bandwidthPackageId: defaultBandwidthPackage.id,\n});\nconst defaultTransitRouter = new alicloud.cen.TransitRouter(\"default\", {\n    cenId: _default.id,\n    supportMulticast: true,\n});\nconst peer = new alicloud.cen.TransitRouter(\"peer\", {\n    cenId: defaultTransitRouter.cenId,\n    supportMulticast: true,\n});\nconst defaultTransitRouterPeerAttachment = new alicloud.cen.TransitRouterPeerAttachment(\"default\", {\n    cenId: _default.id,\n    transitRouterId: defaultTransitRouter.transitRouterId,\n    peerTransitRouterRegionId: peerRegion,\n    peerTransitRouterId: peer.transitRouterId,\n    cenBandwidthPackageId: defaultBandwidthPackageAttachment.bandwidthPackageId,\n    bandwidth: 5,\n    transitRouterAttachmentDescription: name,\n    transitRouterAttachmentName: name,\n});\nconst defaultInterRegionTrafficQosPolicy = new alicloud.cen.InterRegionTrafficQosPolicy(\"default\", {\n    transitRouterId: defaultTransitRouter.transitRouterId,\n    transitRouterAttachmentId: defaultTransitRouterPeerAttachment.transitRouterAttachmentId,\n    interRegionTrafficQosPolicyName: name,\n    interRegionTrafficQosPolicyDescription: name,\n});\nconst defaultInterRegionTrafficQosQueue = new alicloud.cen.InterRegionTrafficQosQueue(\"default\", {\n    remainBandwidthPercent: 20,\n    trafficQosPolicyId: defaultInterRegionTrafficQosPolicy.id,\n    dscps: [\n        1,\n        2,\n    ],\n    interRegionTrafficQosQueueDescription: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault_region = config.get(\"defaultRegion\")\nif default_region is None:\n    default_region = \"cn-hangzhou\"\npeer_region = config.get(\"peerRegion\")\nif peer_region is None:\n    peer_region = \"cn-beijing\"\ndefault = alicloud.cen.Instance(\"default\",\n    cen_instance_name=name,\n    protection_level=\"REDUCED\")\ndefault_bandwidth_package = alicloud.cen.BandwidthPackage(\"default\",\n    bandwidth=5,\n    cen_bandwidth_package_name=\"tf_example\",\n    geographic_region_a_id=\"China\",\n    geographic_region_b_id=\"China\")\ndefault_bandwidth_package_attachment = alicloud.cen.BandwidthPackageAttachment(\"default\",\n    instance_id=default.id,\n    bandwidth_package_id=default_bandwidth_package.id)\ndefault_transit_router = alicloud.cen.TransitRouter(\"default\",\n    cen_id=default.id,\n    support_multicast=True)\npeer = alicloud.cen.TransitRouter(\"peer\",\n    cen_id=default_transit_router.cen_id,\n    support_multicast=True)\ndefault_transit_router_peer_attachment = alicloud.cen.TransitRouterPeerAttachment(\"default\",\n    cen_id=default.id,\n    transit_router_id=default_transit_router.transit_router_id,\n    peer_transit_router_region_id=peer_region,\n    peer_transit_router_id=peer.transit_router_id,\n    cen_bandwidth_package_id=default_bandwidth_package_attachment.bandwidth_package_id,\n    bandwidth=5,\n    transit_router_attachment_description=name,\n    transit_router_attachment_name=name)\ndefault_inter_region_traffic_qos_policy = alicloud.cen.InterRegionTrafficQosPolicy(\"default\",\n    transit_router_id=default_transit_router.transit_router_id,\n    transit_router_attachment_id=default_transit_router_peer_attachment.transit_router_attachment_id,\n    inter_region_traffic_qos_policy_name=name,\n    inter_region_traffic_qos_policy_description=name)\ndefault_inter_region_traffic_qos_queue = alicloud.cen.InterRegionTrafficQosQueue(\"default\",\n    remain_bandwidth_percent=20,\n    traffic_qos_policy_id=default_inter_region_traffic_qos_policy.id,\n    dscps=[\n        1,\n        2,\n    ],\n    inter_region_traffic_qos_queue_description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var defaultRegion = config.Get(\"defaultRegion\") ?? \"cn-hangzhou\";\n    var peerRegion = config.Get(\"peerRegion\") ?? \"cn-beijing\";\n    var @default = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        CenInstanceName = name,\n        ProtectionLevel = \"REDUCED\",\n    });\n\n    var defaultBandwidthPackage = new AliCloud.Cen.BandwidthPackage(\"default\", new()\n    {\n        Bandwidth = 5,\n        CenBandwidthPackageName = \"tf_example\",\n        GeographicRegionAId = \"China\",\n        GeographicRegionBId = \"China\",\n    });\n\n    var defaultBandwidthPackageAttachment = new AliCloud.Cen.BandwidthPackageAttachment(\"default\", new()\n    {\n        InstanceId = @default.Id,\n        BandwidthPackageId = defaultBandwidthPackage.Id,\n    });\n\n    var defaultTransitRouter = new AliCloud.Cen.TransitRouter(\"default\", new()\n    {\n        CenId = @default.Id,\n        SupportMulticast = true,\n    });\n\n    var peer = new AliCloud.Cen.TransitRouter(\"peer\", new()\n    {\n        CenId = defaultTransitRouter.CenId,\n        SupportMulticast = true,\n    });\n\n    var defaultTransitRouterPeerAttachment = new AliCloud.Cen.TransitRouterPeerAttachment(\"default\", new()\n    {\n        CenId = @default.Id,\n        TransitRouterId = defaultTransitRouter.TransitRouterId,\n        PeerTransitRouterRegionId = peerRegion,\n        PeerTransitRouterId = peer.TransitRouterId,\n        CenBandwidthPackageId = defaultBandwidthPackageAttachment.BandwidthPackageId,\n        Bandwidth = 5,\n        TransitRouterAttachmentDescription = name,\n        TransitRouterAttachmentName = name,\n    });\n\n    var defaultInterRegionTrafficQosPolicy = new AliCloud.Cen.InterRegionTrafficQosPolicy(\"default\", new()\n    {\n        TransitRouterId = defaultTransitRouter.TransitRouterId,\n        TransitRouterAttachmentId = defaultTransitRouterPeerAttachment.TransitRouterAttachmentId,\n        InterRegionTrafficQosPolicyName = name,\n        InterRegionTrafficQosPolicyDescription = name,\n    });\n\n    var defaultInterRegionTrafficQosQueue = new AliCloud.Cen.InterRegionTrafficQosQueue(\"default\", new()\n    {\n        RemainBandwidthPercent = 20,\n        TrafficQosPolicyId = defaultInterRegionTrafficQosPolicy.Id,\n        Dscps = new[]\n        {\n            1,\n            2,\n        },\n        InterRegionTrafficQosQueueDescription = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultRegion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"defaultRegion\"); param != \"\" {\n\t\t\tdefaultRegion = param\n\t\t}\n\t\tpeerRegion := \"cn-beijing\"\n\t\tif param := cfg.Get(\"peerRegion\"); param != \"\" {\n\t\t\tpeerRegion = param\n\t\t}\n\t\t_default, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tProtectionLevel: pulumi.String(\"REDUCED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackage, err := cen.NewBandwidthPackage(ctx, \"default\", \u0026cen.BandwidthPackageArgs{\n\t\t\tBandwidth:               pulumi.Int(5),\n\t\t\tCenBandwidthPackageName: pulumi.String(\"tf_example\"),\n\t\t\tGeographicRegionAId:     pulumi.String(\"China\"),\n\t\t\tGeographicRegionBId:     pulumi.String(\"China\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackageAttachment, err := cen.NewBandwidthPackageAttachment(ctx, \"default\", \u0026cen.BandwidthPackageAttachmentArgs{\n\t\t\tInstanceId:         _default.ID(),\n\t\t\tBandwidthPackageId: defaultBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouter, err := cen.NewTransitRouter(ctx, \"default\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId:            _default.ID(),\n\t\t\tSupportMulticast: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpeer, err := cen.NewTransitRouter(ctx, \"peer\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId:            defaultTransitRouter.CenId,\n\t\t\tSupportMulticast: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouterPeerAttachment, err := cen.NewTransitRouterPeerAttachment(ctx, \"default\", \u0026cen.TransitRouterPeerAttachmentArgs{\n\t\t\tCenId:                              _default.ID(),\n\t\t\tTransitRouterId:                    defaultTransitRouter.TransitRouterId,\n\t\t\tPeerTransitRouterRegionId:          pulumi.String(peerRegion),\n\t\t\tPeerTransitRouterId:                peer.TransitRouterId,\n\t\t\tCenBandwidthPackageId:              defaultBandwidthPackageAttachment.BandwidthPackageId,\n\t\t\tBandwidth:                          pulumi.Int(5),\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(name),\n\t\t\tTransitRouterAttachmentName:        pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInterRegionTrafficQosPolicy, err := cen.NewInterRegionTrafficQosPolicy(ctx, \"default\", \u0026cen.InterRegionTrafficQosPolicyArgs{\n\t\t\tTransitRouterId:                        defaultTransitRouter.TransitRouterId,\n\t\t\tTransitRouterAttachmentId:              defaultTransitRouterPeerAttachment.TransitRouterAttachmentId,\n\t\t\tInterRegionTrafficQosPolicyName:        pulumi.String(name),\n\t\t\tInterRegionTrafficQosPolicyDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewInterRegionTrafficQosQueue(ctx, \"default\", \u0026cen.InterRegionTrafficQosQueueArgs{\n\t\t\tRemainBandwidthPercent: pulumi.Int(20),\n\t\t\tTrafficQosPolicyId:     defaultInterRegionTrafficQosPolicy.ID(),\n\t\t\tDscps: pulumi.IntArray{\n\t\t\t\tpulumi.Int(1),\n\t\t\t\tpulumi.Int(2),\n\t\t\t},\n\t\t\tInterRegionTrafficQosQueueDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.BandwidthPackage;\nimport com.pulumi.alicloud.cen.BandwidthPackageArgs;\nimport com.pulumi.alicloud.cen.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.cen.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterPeerAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterPeerAttachmentArgs;\nimport com.pulumi.alicloud.cen.InterRegionTrafficQosPolicy;\nimport com.pulumi.alicloud.cen.InterRegionTrafficQosPolicyArgs;\nimport com.pulumi.alicloud.cen.InterRegionTrafficQosQueue;\nimport com.pulumi.alicloud.cen.InterRegionTrafficQosQueueArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var defaultRegion = config.get(\"defaultRegion\").orElse(\"cn-hangzhou\");\n        final var peerRegion = config.get(\"peerRegion\").orElse(\"cn-beijing\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .protectionLevel(\"REDUCED\")\n            .build());\n\n        var defaultBandwidthPackage = new BandwidthPackage(\"defaultBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(5)\n            .cenBandwidthPackageName(\"tf_example\")\n            .geographicRegionAId(\"China\")\n            .geographicRegionBId(\"China\")\n            .build());\n\n        var defaultBandwidthPackageAttachment = new BandwidthPackageAttachment(\"defaultBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .instanceId(default_.id())\n            .bandwidthPackageId(defaultBandwidthPackage.id())\n            .build());\n\n        var defaultTransitRouter = new TransitRouter(\"defaultTransitRouter\", TransitRouterArgs.builder()\n            .cenId(default_.id())\n            .supportMulticast(true)\n            .build());\n\n        var peer = new TransitRouter(\"peer\", TransitRouterArgs.builder()\n            .cenId(defaultTransitRouter.cenId())\n            .supportMulticast(true)\n            .build());\n\n        var defaultTransitRouterPeerAttachment = new TransitRouterPeerAttachment(\"defaultTransitRouterPeerAttachment\", TransitRouterPeerAttachmentArgs.builder()\n            .cenId(default_.id())\n            .transitRouterId(defaultTransitRouter.transitRouterId())\n            .peerTransitRouterRegionId(peerRegion)\n            .peerTransitRouterId(peer.transitRouterId())\n            .cenBandwidthPackageId(defaultBandwidthPackageAttachment.bandwidthPackageId())\n            .bandwidth(5)\n            .transitRouterAttachmentDescription(name)\n            .transitRouterAttachmentName(name)\n            .build());\n\n        var defaultInterRegionTrafficQosPolicy = new InterRegionTrafficQosPolicy(\"defaultInterRegionTrafficQosPolicy\", InterRegionTrafficQosPolicyArgs.builder()\n            .transitRouterId(defaultTransitRouter.transitRouterId())\n            .transitRouterAttachmentId(defaultTransitRouterPeerAttachment.transitRouterAttachmentId())\n            .interRegionTrafficQosPolicyName(name)\n            .interRegionTrafficQosPolicyDescription(name)\n            .build());\n\n        var defaultInterRegionTrafficQosQueue = new InterRegionTrafficQosQueue(\"defaultInterRegionTrafficQosQueue\", InterRegionTrafficQosQueueArgs.builder()\n            .remainBandwidthPercent(20)\n            .trafficQosPolicyId(defaultInterRegionTrafficQosPolicy.id())\n            .dscps(            \n                1,\n                2)\n            .interRegionTrafficQosQueueDescription(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\n  defaultRegion:\n    type: string\n    default: cn-hangzhou\n  peerRegion:\n    type: string\n    default: cn-beijing\nresources:\n  default:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: ${name}\n      protectionLevel: REDUCED\n  defaultBandwidthPackage:\n    type: alicloud:cen:BandwidthPackage\n    name: default\n    properties:\n      bandwidth: 5\n      cenBandwidthPackageName: tf_example\n      geographicRegionAId: China\n      geographicRegionBId: China\n  defaultBandwidthPackageAttachment:\n    type: alicloud:cen:BandwidthPackageAttachment\n    name: default\n    properties:\n      instanceId: ${default.id}\n      bandwidthPackageId: ${defaultBandwidthPackage.id}\n  defaultTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: default\n    properties:\n      cenId: ${default.id}\n      supportMulticast: true\n  peer:\n    type: alicloud:cen:TransitRouter\n    properties:\n      cenId: ${defaultTransitRouter.cenId}\n      supportMulticast: true\n  defaultTransitRouterPeerAttachment:\n    type: alicloud:cen:TransitRouterPeerAttachment\n    name: default\n    properties:\n      cenId: ${default.id}\n      transitRouterId: ${defaultTransitRouter.transitRouterId}\n      peerTransitRouterRegionId: ${peerRegion}\n      peerTransitRouterId: ${peer.transitRouterId}\n      cenBandwidthPackageId: ${defaultBandwidthPackageAttachment.bandwidthPackageId}\n      bandwidth: 5\n      transitRouterAttachmentDescription: ${name}\n      transitRouterAttachmentName: ${name}\n  defaultInterRegionTrafficQosPolicy:\n    type: alicloud:cen:InterRegionTrafficQosPolicy\n    name: default\n    properties:\n      transitRouterId: ${defaultTransitRouter.transitRouterId}\n      transitRouterAttachmentId: ${defaultTransitRouterPeerAttachment.transitRouterAttachmentId}\n      interRegionTrafficQosPolicyName: ${name}\n      interRegionTrafficQosPolicyDescription: ${name}\n  defaultInterRegionTrafficQosQueue:\n    type: alicloud:cen:InterRegionTrafficQosQueue\n    name: default\n    properties:\n      remainBandwidthPercent: 20\n      trafficQosPolicyId: ${defaultInterRegionTrafficQosPolicy.id}\n      dscps:\n        - 1\n        - 2\n      interRegionTrafficQosQueueDescription: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Enterprise Network (CEN) Inter Region Traffic Qos Queue can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/interRegionTrafficQosQueue:InterRegionTrafficQosQueue example \u003cid\u003e\n```\n\n","properties":{"bandwidth":{"type":"string","description":"The guaranteed bandwidth value. If guaranteed by bandwidth is selected for TrafficQosPolicy, this value is valid.\n"},"dscps":{"type":"array","items":{"type":"integer"},"description":"The DSCP value of the traffic packet to be matched in the current queue, ranging from 0 to 63.\n"},"interRegionTrafficQosQueueDescription":{"type":"string","description":"The description information of the traffic scheduling policy.\n"},"interRegionTrafficQosQueueName":{"type":"string","description":"The name of the traffic scheduling policy.\n"},"remainBandwidthPercent":{"type":"integer","description":"The percentage of cross-region bandwidth that the current queue can use.\n"},"status":{"type":"string","description":"The status of the traffic scheduling policy.\n"},"trafficQosPolicyId":{"type":"string","description":"The ID of the traffic scheduling policy.\n"}},"required":["dscps","status","trafficQosPolicyId"],"inputProperties":{"bandwidth":{"type":"string","description":"The guaranteed bandwidth value. If guaranteed by bandwidth is selected for TrafficQosPolicy, this value is valid.\n"},"dscps":{"type":"array","items":{"type":"integer"},"description":"The DSCP value of the traffic packet to be matched in the current queue, ranging from 0 to 63.\n"},"interRegionTrafficQosQueueDescription":{"type":"string","description":"The description information of the traffic scheduling policy.\n"},"interRegionTrafficQosQueueName":{"type":"string","description":"The name of the traffic scheduling policy.\n"},"remainBandwidthPercent":{"type":"integer","description":"The percentage of cross-region bandwidth that the current queue can use.\n"},"trafficQosPolicyId":{"type":"string","description":"The ID of the traffic scheduling policy.\n","willReplaceOnChanges":true}},"requiredInputs":["dscps","trafficQosPolicyId"],"stateInputs":{"description":"Input properties used for looking up and filtering InterRegionTrafficQosQueue resources.\n","properties":{"bandwidth":{"type":"string","description":"The guaranteed bandwidth value. If guaranteed by bandwidth is selected for TrafficQosPolicy, this value is valid.\n"},"dscps":{"type":"array","items":{"type":"integer"},"description":"The DSCP value of the traffic packet to be matched in the current queue, ranging from 0 to 63.\n"},"interRegionTrafficQosQueueDescription":{"type":"string","description":"The description information of the traffic scheduling policy.\n"},"interRegionTrafficQosQueueName":{"type":"string","description":"The name of the traffic scheduling policy.\n"},"remainBandwidthPercent":{"type":"integer","description":"The percentage of cross-region bandwidth that the current queue can use.\n"},"status":{"type":"string","description":"The status of the traffic scheduling policy.\n"},"trafficQosPolicyId":{"type":"string","description":"The ID of the traffic scheduling policy.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/privateZone:PrivateZone":{"description":"Provides a Cloud Enterprise Network (CEN) Private Zone resource.\n\nFor information about Cloud Enterprise Network (CEN) Private Zone and how to use it, see [What is Private Zone](https://www.alibabacloud.com/help/en/cloud-enterprise-network/latest/api-cbn-2017-09-12-routeprivatezoneincentovpc).\n\n\u003e **NOTE:** Available since v1.83.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultInstance = new alicloud.cen.Instance(\"default\", {\n    cenInstanceName: name,\n    description: name,\n});\nconst defaultInstanceAttachment = new alicloud.cen.InstanceAttachment(\"default\", {\n    instanceId: defaultInstance.id,\n    childInstanceId: defaultNetwork.id,\n    childInstanceType: \"VPC\",\n    childInstanceRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n});\nconst defaultPrivateZone = new alicloud.cen.PrivateZone(\"default\", {\n    cenId: defaultInstanceAttachment.instanceId,\n    accessRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    hostVpcId: defaultNetwork.id,\n    hostRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.17.3.0/24\")\ndefault_instance = alicloud.cen.Instance(\"default\",\n    cen_instance_name=name,\n    description=name)\ndefault_instance_attachment = alicloud.cen.InstanceAttachment(\"default\",\n    instance_id=default_instance.id,\n    child_instance_id=default_network.id,\n    child_instance_type=\"VPC\",\n    child_instance_region_id=default.regions[0].id)\ndefault_private_zone = alicloud.cen.PrivateZone(\"default\",\n    cen_id=default_instance_attachment.instance_id,\n    access_region_id=default.regions[0].id,\n    host_vpc_id=default_network.id,\n    host_region_id=default.regions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultInstance = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        CenInstanceName = name,\n        Description = name,\n    });\n\n    var defaultInstanceAttachment = new AliCloud.Cen.InstanceAttachment(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        ChildInstanceId = defaultNetwork.Id,\n        ChildInstanceType = \"VPC\",\n        ChildInstanceRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n    });\n\n    var defaultPrivateZone = new AliCloud.Cen.PrivateZone(\"default\", new()\n    {\n        CenId = defaultInstanceAttachment.InstanceId,\n        AccessRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        HostVpcId = defaultNetwork.Id,\n        HostRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tDescription:     pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstanceAttachment, err := cen.NewInstanceAttachment(ctx, \"default\", \u0026cen.InstanceAttachmentArgs{\n\t\t\tInstanceId:            defaultInstance.ID(),\n\t\t\tChildInstanceId:       defaultNetwork.ID(),\n\t\t\tChildInstanceType:     pulumi.String(\"VPC\"),\n\t\t\tChildInstanceRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewPrivateZone(ctx, \"default\", \u0026cen.PrivateZoneArgs{\n\t\t\tCenId:          defaultInstanceAttachment.InstanceId,\n\t\t\tAccessRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t\tHostVpcId:      defaultNetwork.ID(),\n\t\t\tHostRegionId:   pulumi.String(_default.Regions[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.InstanceAttachment;\nimport com.pulumi.alicloud.cen.InstanceAttachmentArgs;\nimport com.pulumi.alicloud.cen.PrivateZone;\nimport com.pulumi.alicloud.cen.PrivateZoneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .description(name)\n            .build());\n\n        var defaultInstanceAttachment = new InstanceAttachment(\"defaultInstanceAttachment\", InstanceAttachmentArgs.builder()\n            .instanceId(defaultInstance.id())\n            .childInstanceId(defaultNetwork.id())\n            .childInstanceType(\"VPC\")\n            .childInstanceRegionId(default_.regions()[0].id())\n            .build());\n\n        var defaultPrivateZone = new PrivateZone(\"defaultPrivateZone\", PrivateZoneArgs.builder()\n            .cenId(defaultInstanceAttachment.instanceId())\n            .accessRegionId(default_.regions()[0].id())\n            .hostVpcId(defaultNetwork.id())\n            .hostRegionId(default_.regions()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.17.3.0/24\n  defaultInstance:\n    type: alicloud:cen:Instance\n    name: default\n    properties:\n      cenInstanceName: ${name}\n      description: ${name}\n  defaultInstanceAttachment:\n    type: alicloud:cen:InstanceAttachment\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      childInstanceId: ${defaultNetwork.id}\n      childInstanceType: VPC\n      childInstanceRegionId: ${default.regions[0].id}\n  defaultPrivateZone:\n    type: alicloud:cen:PrivateZone\n    name: default\n    properties:\n      cenId: ${defaultInstanceAttachment.instanceId}\n      accessRegionId: ${default.regions[0].id}\n      hostVpcId: ${defaultNetwork.id}\n      hostRegionId: ${default.regions[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Enterprise Network (CEN) Private Zone can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/privateZone:PrivateZone example \u003ccen_id\u003e:\u003caccess_region_id\u003e\n```\n\n","properties":{"accessRegionId":{"type":"string","description":"The ID of the region where PrivateZone is accessed. This region refers to the region in which PrivateZone is accessed by clients.\n"},"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"hostRegionId":{"type":"string","description":"The ID of the region where PrivateZone is deployed.\n\n-\u003e**NOTE:** The resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.PrivateZone`\" pulumi-lang-dotnet=\"`alicloud.cen.PrivateZone`\" pulumi-lang-go=\"`cen.PrivateZone`\" pulumi-lang-python=\"`cen.PrivateZone`\" pulumi-lang-yaml=\"`alicloud.cen.PrivateZone`\" pulumi-lang-java=\"`alicloud.cen.PrivateZone`\"\u003e`alicloud.cen.PrivateZone`\u003c/span\u003e depends on the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-dotnet=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-go=\"`cen.InstanceAttachment`\" pulumi-lang-python=\"`cen.InstanceAttachment`\" pulumi-lang-yaml=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-java=\"`alicloud.cen.InstanceAttachment`\"\u003e`alicloud.cen.InstanceAttachment`\u003c/span\u003e.\n"},"hostVpcId":{"type":"string","description":"The ID of the VPC that is associated with PrivateZone.\n"},"status":{"type":"string","description":"The status of the Private Zone.\n"}},"required":["accessRegionId","cenId","hostRegionId","hostVpcId","status"],"inputProperties":{"accessRegionId":{"type":"string","description":"The ID of the region where PrivateZone is accessed. This region refers to the region in which PrivateZone is accessed by clients.\n","willReplaceOnChanges":true},"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"hostRegionId":{"type":"string","description":"The ID of the region where PrivateZone is deployed.\n\n-\u003e**NOTE:** The resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.PrivateZone`\" pulumi-lang-dotnet=\"`alicloud.cen.PrivateZone`\" pulumi-lang-go=\"`cen.PrivateZone`\" pulumi-lang-python=\"`cen.PrivateZone`\" pulumi-lang-yaml=\"`alicloud.cen.PrivateZone`\" pulumi-lang-java=\"`alicloud.cen.PrivateZone`\"\u003e`alicloud.cen.PrivateZone`\u003c/span\u003e depends on the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-dotnet=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-go=\"`cen.InstanceAttachment`\" pulumi-lang-python=\"`cen.InstanceAttachment`\" pulumi-lang-yaml=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-java=\"`alicloud.cen.InstanceAttachment`\"\u003e`alicloud.cen.InstanceAttachment`\u003c/span\u003e.\n","willReplaceOnChanges":true},"hostVpcId":{"type":"string","description":"The ID of the VPC that is associated with PrivateZone.\n","willReplaceOnChanges":true}},"requiredInputs":["accessRegionId","cenId","hostRegionId","hostVpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivateZone resources.\n","properties":{"accessRegionId":{"type":"string","description":"The ID of the region where PrivateZone is accessed. This region refers to the region in which PrivateZone is accessed by clients.\n","willReplaceOnChanges":true},"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"hostRegionId":{"type":"string","description":"The ID of the region where PrivateZone is deployed.\n\n-\u003e**NOTE:** The resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.PrivateZone`\" pulumi-lang-dotnet=\"`alicloud.cen.PrivateZone`\" pulumi-lang-go=\"`cen.PrivateZone`\" pulumi-lang-python=\"`cen.PrivateZone`\" pulumi-lang-yaml=\"`alicloud.cen.PrivateZone`\" pulumi-lang-java=\"`alicloud.cen.PrivateZone`\"\u003e`alicloud.cen.PrivateZone`\u003c/span\u003e depends on the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-dotnet=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-go=\"`cen.InstanceAttachment`\" pulumi-lang-python=\"`cen.InstanceAttachment`\" pulumi-lang-yaml=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-java=\"`alicloud.cen.InstanceAttachment`\"\u003e`alicloud.cen.InstanceAttachment`\u003c/span\u003e.\n","willReplaceOnChanges":true},"hostVpcId":{"type":"string","description":"The ID of the VPC that is associated with PrivateZone.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Private Zone.\n"}},"type":"object"}},"alicloud:cen/routeEntry:RouteEntry":{"description":"Provides a CEN route entry resource. Cloud Enterprise Network (CEN) supports publishing and withdrawing route entries of attached networks. You can publish a route entry of an attached VPC or VBR to a CEN instance, then other attached networks can learn the route if there is no route conflict. You can withdraw a published route entry when CEN does not need it any more.\n\nFor information about CEN route entries publishment and how to use it, see [Manage network routes](https://www.alibabacloud.com/help/doc-detail/86980.htm).\n\n\u003e **NOTE:** Available since v1.20.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst example = alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n});\nconst exampleGetInstanceTypes = example.then(example =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: example.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst exampleGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: \"terraform-example\",\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.ecs.Instance(\"example\", {\n    availabilityZone: example.then(example =\u003e example.zones?.[0]?.id),\n    instanceName: \"terraform-example\",\n    imageId: exampleGetImages.then(exampleGetImages =\u003e exampleGetImages.images?.[0]?.id),\n    instanceType: exampleGetInstanceTypes.then(exampleGetInstanceTypes =\u003e exampleGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [exampleSecurityGroup.id],\n    vswitchId: exampleSwitch.id,\n    internetMaxBandwidthOut: 5,\n});\nconst exampleInstance2 = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: \"tf_example\",\n    description: \"an example for cen\",\n});\nconst exampleInstanceAttachment = new alicloud.cen.InstanceAttachment(\"example\", {\n    instanceId: exampleInstance2.id,\n    childInstanceId: exampleNetwork.id,\n    childInstanceType: \"VPC\",\n    childInstanceRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n});\nconst exampleRouteEntry = new alicloud.vpc.RouteEntry(\"example\", {\n    routeTableId: exampleNetwork.routeTableId,\n    destinationCidrblock: \"11.0.0.0/16\",\n    nexthopType: \"Instance\",\n    nexthopId: exampleInstance.id,\n});\nconst exampleRouteEntry2 = new alicloud.cen.RouteEntry(\"example\", {\n    instanceId: exampleInstanceAttachment.instanceId,\n    routeTableId: exampleNetwork.routeTableId,\n    cidrBlock: exampleRouteEntry.destinationCidrblock,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_regions(current=True)\nexample = alicloud.get_zones(available_resource_creation=\"Instance\")\nexample_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=example.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\nexample_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=\"terraform-example\",\n    vpc_id=example_network.id)\nexample_instance = alicloud.ecs.Instance(\"example\",\n    availability_zone=example.zones[0].id,\n    instance_name=\"terraform-example\",\n    image_id=example_get_images.images[0].id,\n    instance_type=example_get_instance_types.instance_types[0].id,\n    security_groups=[example_security_group.id],\n    vswitch_id=example_switch.id,\n    internet_max_bandwidth_out=5)\nexample_instance2 = alicloud.cen.Instance(\"example\",\n    cen_instance_name=\"tf_example\",\n    description=\"an example for cen\")\nexample_instance_attachment = alicloud.cen.InstanceAttachment(\"example\",\n    instance_id=example_instance2.id,\n    child_instance_id=example_network.id,\n    child_instance_type=\"VPC\",\n    child_instance_region_id=default.regions[0].id)\nexample_route_entry = alicloud.vpc.RouteEntry(\"example\",\n    route_table_id=example_network.route_table_id,\n    destination_cidrblock=\"11.0.0.0/16\",\n    nexthop_type=\"Instance\",\n    nexthop_id=example_instance.id)\nexample_route_entry2 = alicloud.cen.RouteEntry(\"example\",\n    instance_id=example_instance_attachment.instance_id,\n    route_table_id=example_network.route_table_id,\n    cidr_block=example_route_entry.destination_cidrblock)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n    });\n\n    var exampleGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var exampleGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = \"terraform-example\",\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Ecs.Instance(\"example\", new()\n    {\n        AvailabilityZone = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceName = \"terraform-example\",\n        ImageId = exampleGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = exampleGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n        VswitchId = exampleSwitch.Id,\n        InternetMaxBandwidthOut = 5,\n    });\n\n    var exampleInstance2 = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = \"tf_example\",\n        Description = \"an example for cen\",\n    });\n\n    var exampleInstanceAttachment = new AliCloud.Cen.InstanceAttachment(\"example\", new()\n    {\n        InstanceId = exampleInstance2.Id,\n        ChildInstanceId = exampleNetwork.Id,\n        ChildInstanceType = \"VPC\",\n        ChildInstanceRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n    });\n\n    var exampleRouteEntry = new AliCloud.Vpc.RouteEntry(\"example\", new()\n    {\n        RouteTableId = exampleNetwork.RouteTableId,\n        DestinationCidrblock = \"11.0.0.0/16\",\n        NexthopType = \"Instance\",\n        NexthopId = exampleInstance.Id,\n    });\n\n    var exampleRouteEntry2 = new AliCloud.Cen.RouteEntry(\"example\", new()\n    {\n        InstanceId = exampleInstanceAttachment.InstanceId,\n        RouteTableId = exampleNetwork.RouteTableId,\n        CidrBlock = exampleRouteEntry.DestinationCidrblock,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(example.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(\"terraform-example\"),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := ecs.NewInstance(ctx, \"example\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(example.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(\"terraform-example\"),\n\t\t\tImageId:          pulumi.String(exampleGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(exampleGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId:               exampleSwitch.ID(),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance2, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(\"tf_example\"),\n\t\t\tDescription:     pulumi.String(\"an example for cen\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstanceAttachment, err := cen.NewInstanceAttachment(ctx, \"example\", \u0026cen.InstanceAttachmentArgs{\n\t\t\tInstanceId:            exampleInstance2.ID(),\n\t\t\tChildInstanceId:       exampleNetwork.ID(),\n\t\t\tChildInstanceType:     pulumi.String(\"VPC\"),\n\t\t\tChildInstanceRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRouteEntry, err := vpc.NewRouteEntry(ctx, \"example\", \u0026vpc.RouteEntryArgs{\n\t\t\tRouteTableId:         exampleNetwork.RouteTableId,\n\t\t\tDestinationCidrblock: pulumi.String(\"11.0.0.0/16\"),\n\t\t\tNexthopType:          pulumi.String(\"Instance\"),\n\t\t\tNexthopId:            exampleInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewRouteEntry(ctx, \"example\", \u0026cen.RouteEntryArgs{\n\t\t\tInstanceId:   exampleInstanceAttachment.InstanceId,\n\t\t\tRouteTableId: exampleNetwork.RouteTableId,\n\t\t\tCidrBlock:    exampleRouteEntry.DestinationCidrblock,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.cen.InstanceAttachment;\nimport com.pulumi.alicloud.cen.InstanceAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .build());\n\n        final var exampleGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(example.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        final var exampleGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"terraform-example\")\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new com.pulumi.alicloud.ecs.Instance(\"exampleInstance\", com.pulumi.alicloud.ecs.InstanceArgs.builder()\n            .availabilityZone(example.zones()[0].id())\n            .instanceName(\"terraform-example\")\n            .imageId(exampleGetImages.images()[0].id())\n            .instanceType(exampleGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(exampleSecurityGroup.id())\n            .vswitchId(exampleSwitch.id())\n            .internetMaxBandwidthOut(5)\n            .build());\n\n        var exampleInstance2 = new com.pulumi.alicloud.cen.Instance(\"exampleInstance2\", com.pulumi.alicloud.cen.InstanceArgs.builder()\n            .cenInstanceName(\"tf_example\")\n            .description(\"an example for cen\")\n            .build());\n\n        var exampleInstanceAttachment = new InstanceAttachment(\"exampleInstanceAttachment\", InstanceAttachmentArgs.builder()\n            .instanceId(exampleInstance2.id())\n            .childInstanceId(exampleNetwork.id())\n            .childInstanceType(\"VPC\")\n            .childInstanceRegionId(default_.regions()[0].id())\n            .build());\n\n        var exampleRouteEntry = new com.pulumi.alicloud.vpc.RouteEntry(\"exampleRouteEntry\", com.pulumi.alicloud.vpc.RouteEntryArgs.builder()\n            .routeTableId(exampleNetwork.routeTableId())\n            .destinationCidrblock(\"11.0.0.0/16\")\n            .nexthopType(\"Instance\")\n            .nexthopId(exampleInstance.id())\n            .build());\n\n        var exampleRouteEntry2 = new com.pulumi.alicloud.cen.RouteEntry(\"exampleRouteEntry2\", com.pulumi.alicloud.cen.RouteEntryArgs.builder()\n            .instanceId(exampleInstanceAttachment.instanceId())\n            .routeTableId(exampleNetwork.routeTableId())\n            .cidrBlock(exampleRouteEntry.destinationCidrblock())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: terraform-example\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:ecs:Instance\n    name: example\n    properties:\n      availabilityZone: ${example.zones[0].id}\n      instanceName: terraform-example\n      imageId: ${exampleGetImages.images[0].id}\n      instanceType: ${exampleGetInstanceTypes.instanceTypes[0].id}\n      securityGroups:\n        - ${exampleSecurityGroup.id}\n      vswitchId: ${exampleSwitch.id}\n      internetMaxBandwidthOut: 5\n  exampleInstance2:\n    type: alicloud:cen:Instance\n    name: example\n    properties:\n      cenInstanceName: tf_example\n      description: an example for cen\n  exampleInstanceAttachment:\n    type: alicloud:cen:InstanceAttachment\n    name: example\n    properties:\n      instanceId: ${exampleInstance2.id}\n      childInstanceId: ${exampleNetwork.id}\n      childInstanceType: VPC\n      childInstanceRegionId: ${default.regions[0].id}\n  exampleRouteEntry:\n    type: alicloud:vpc:RouteEntry\n    name: example\n    properties:\n      routeTableId: ${exampleNetwork.routeTableId}\n      destinationCidrblock: 11.0.0.0/16\n      nexthopType: Instance\n      nexthopId: ${exampleInstance.id}\n  exampleRouteEntry2:\n    type: alicloud:cen:RouteEntry\n    name: example\n    properties:\n      instanceId: ${exampleInstanceAttachment.instanceId}\n      routeTableId: ${exampleNetwork.routeTableId}\n      cidrBlock: ${exampleRouteEntry.destinationCidrblock}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n  exampleGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${example.zones[0].id}\n        cpuCoreCount: 1\n        memorySize: 2\n  exampleGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCEN instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/routeEntry:RouteEntry example cen-abc123456:vtb-abc123:192.168.0.0/24\n```\n\n","properties":{"cidrBlock":{"type":"string","description":"The destination CIDR block of the route entry to publish.\n\n-\u003e**NOTE:** The \u003cspan pulumi-lang-nodejs=\"\"alicloudCenInstanceRouteEntries\"\" pulumi-lang-dotnet=\"\"AlicloudCenInstanceRouteEntries\"\" pulumi-lang-go=\"\"alicloudCenInstanceRouteEntries\"\" pulumi-lang-python=\"\"alicloud_cen_instance_route_entries\"\" pulumi-lang-yaml=\"\"alicloudCenInstanceRouteEntries\"\" pulumi-lang-java=\"\"alicloudCenInstanceRouteEntries\"\"\u003e\"alicloud_cen_instance_route_entries\"\u003c/span\u003e resource depends on the related \u003cspan pulumi-lang-nodejs=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-dotnet=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-go=\"\"cen.InstanceAttachment\"\" pulumi-lang-python=\"\"cen.InstanceAttachment\"\" pulumi-lang-yaml=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-java=\"\"alicloud.cen.InstanceAttachment\"\"\u003e\"alicloud.cen.InstanceAttachment\"\u003c/span\u003e resource.\n\n-\u003e**NOTE:** The \u003cspan pulumi-lang-nodejs=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-dotnet=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-go=\"\"cen.InstanceAttachment\"\" pulumi-lang-python=\"\"cen.InstanceAttachment\"\" pulumi-lang-yaml=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-java=\"\"alicloud.cen.InstanceAttachment\"\"\u003e\"alicloud.cen.InstanceAttachment\"\u003c/span\u003e resource should depend on the related \u003cspan pulumi-lang-nodejs=\"\"alicloud.vpc.Switch\"\" pulumi-lang-dotnet=\"\"alicloud.vpc.Switch\"\" pulumi-lang-go=\"\"vpc.Switch\"\" pulumi-lang-python=\"\"vpc.Switch\"\" pulumi-lang-yaml=\"\"alicloud.vpc.Switch\"\" pulumi-lang-java=\"\"alicloud.vpc.Switch\"\"\u003e\"alicloud.vpc.Switch\"\u003c/span\u003e resource.\n"},"instanceId":{"type":"string","description":"The ID of the CEN.\n"},"routeTableId":{"type":"string","description":"The route table of the attached VBR or VPC.\n"}},"required":["cidrBlock","instanceId","routeTableId"],"inputProperties":{"cidrBlock":{"type":"string","description":"The destination CIDR block of the route entry to publish.\n\n-\u003e**NOTE:** The \u003cspan pulumi-lang-nodejs=\"\"alicloudCenInstanceRouteEntries\"\" pulumi-lang-dotnet=\"\"AlicloudCenInstanceRouteEntries\"\" pulumi-lang-go=\"\"alicloudCenInstanceRouteEntries\"\" pulumi-lang-python=\"\"alicloud_cen_instance_route_entries\"\" pulumi-lang-yaml=\"\"alicloudCenInstanceRouteEntries\"\" pulumi-lang-java=\"\"alicloudCenInstanceRouteEntries\"\"\u003e\"alicloud_cen_instance_route_entries\"\u003c/span\u003e resource depends on the related \u003cspan pulumi-lang-nodejs=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-dotnet=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-go=\"\"cen.InstanceAttachment\"\" pulumi-lang-python=\"\"cen.InstanceAttachment\"\" pulumi-lang-yaml=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-java=\"\"alicloud.cen.InstanceAttachment\"\"\u003e\"alicloud.cen.InstanceAttachment\"\u003c/span\u003e resource.\n\n-\u003e**NOTE:** The \u003cspan pulumi-lang-nodejs=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-dotnet=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-go=\"\"cen.InstanceAttachment\"\" pulumi-lang-python=\"\"cen.InstanceAttachment\"\" pulumi-lang-yaml=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-java=\"\"alicloud.cen.InstanceAttachment\"\"\u003e\"alicloud.cen.InstanceAttachment\"\u003c/span\u003e resource should depend on the related \u003cspan pulumi-lang-nodejs=\"\"alicloud.vpc.Switch\"\" pulumi-lang-dotnet=\"\"alicloud.vpc.Switch\"\" pulumi-lang-go=\"\"vpc.Switch\"\" pulumi-lang-python=\"\"vpc.Switch\"\" pulumi-lang-yaml=\"\"alicloud.vpc.Switch\"\" pulumi-lang-java=\"\"alicloud.vpc.Switch\"\"\u003e\"alicloud.vpc.Switch\"\u003c/span\u003e resource.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the CEN.\n","willReplaceOnChanges":true},"routeTableId":{"type":"string","description":"The route table of the attached VBR or VPC.\n","willReplaceOnChanges":true}},"requiredInputs":["cidrBlock","instanceId","routeTableId"],"stateInputs":{"description":"Input properties used for looking up and filtering RouteEntry resources.\n","properties":{"cidrBlock":{"type":"string","description":"The destination CIDR block of the route entry to publish.\n\n-\u003e**NOTE:** The \u003cspan pulumi-lang-nodejs=\"\"alicloudCenInstanceRouteEntries\"\" pulumi-lang-dotnet=\"\"AlicloudCenInstanceRouteEntries\"\" pulumi-lang-go=\"\"alicloudCenInstanceRouteEntries\"\" pulumi-lang-python=\"\"alicloud_cen_instance_route_entries\"\" pulumi-lang-yaml=\"\"alicloudCenInstanceRouteEntries\"\" pulumi-lang-java=\"\"alicloudCenInstanceRouteEntries\"\"\u003e\"alicloud_cen_instance_route_entries\"\u003c/span\u003e resource depends on the related \u003cspan pulumi-lang-nodejs=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-dotnet=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-go=\"\"cen.InstanceAttachment\"\" pulumi-lang-python=\"\"cen.InstanceAttachment\"\" pulumi-lang-yaml=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-java=\"\"alicloud.cen.InstanceAttachment\"\"\u003e\"alicloud.cen.InstanceAttachment\"\u003c/span\u003e resource.\n\n-\u003e**NOTE:** The \u003cspan pulumi-lang-nodejs=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-dotnet=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-go=\"\"cen.InstanceAttachment\"\" pulumi-lang-python=\"\"cen.InstanceAttachment\"\" pulumi-lang-yaml=\"\"alicloud.cen.InstanceAttachment\"\" pulumi-lang-java=\"\"alicloud.cen.InstanceAttachment\"\"\u003e\"alicloud.cen.InstanceAttachment\"\u003c/span\u003e resource should depend on the related \u003cspan pulumi-lang-nodejs=\"\"alicloud.vpc.Switch\"\" pulumi-lang-dotnet=\"\"alicloud.vpc.Switch\"\" pulumi-lang-go=\"\"vpc.Switch\"\" pulumi-lang-python=\"\"vpc.Switch\"\" pulumi-lang-yaml=\"\"alicloud.vpc.Switch\"\" pulumi-lang-java=\"\"alicloud.vpc.Switch\"\"\u003e\"alicloud.vpc.Switch\"\u003c/span\u003e resource.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the CEN.\n","willReplaceOnChanges":true},"routeTableId":{"type":"string","description":"The route table of the attached VBR or VPC.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/routeMap:RouteMap":{"description":"This topic provides an overview of the route map function of Cloud Enterprise Networks (CENs).\nYou can use the route map function to filter routes and modify route attributes.\nBy doing so, you can manage the communication between networks attached to a CEN. \n\nFor information about CEN Route Map and how to use it, see [Manage CEN Route Map](https://www.alibabacloud.com/help/en/cloud-enterprise-network/latest/api-cbn-2017-09-12-createcenroutemap).\n\n\u003e **NOTE:** Available since v1.82.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst sourceRegion = config.get(\"sourceRegion\") || \"cn-hangzhou\";\nconst destinationRegion = config.get(\"destinationRegion\") || \"cn-shanghai\";\nconst exampleHz = new alicloud.vpc.Network(\"example_hz\", {\n    vpcName: \"tf_example\",\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst exampleSh = new alicloud.vpc.Network(\"example_sh\", {\n    vpcName: \"tf_example\",\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst example = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: \"tf_example\",\n    description: \"an example for cen\",\n});\nconst exampleHzInstanceAttachment = new alicloud.cen.InstanceAttachment(\"example_hz\", {\n    instanceId: example.id,\n    childInstanceId: exampleHz.id,\n    childInstanceType: \"VPC\",\n    childInstanceRegionId: sourceRegion,\n});\nconst exampleShInstanceAttachment = new alicloud.cen.InstanceAttachment(\"example_sh\", {\n    instanceId: example.id,\n    childInstanceId: exampleSh.id,\n    childInstanceType: \"VPC\",\n    childInstanceRegionId: destinationRegion,\n});\nconst _default = new alicloud.cen.RouteMap(\"default\", {\n    cenRegionId: sourceRegion,\n    cenId: example.id,\n    description: \"tf_example\",\n    priority: 1,\n    transmitDirection: \"RegionIn\",\n    mapResult: \"Permit\",\n    nextPriority: 1,\n    sourceRegionIds: [sourceRegion],\n    sourceInstanceIds: [exampleHzInstanceAttachment.childInstanceId],\n    sourceInstanceIdsReverseMatch: false,\n    destinationInstanceIds: [exampleShInstanceAttachment.childInstanceId],\n    destinationInstanceIdsReverseMatch: false,\n    sourceRouteTableIds: [exampleHz.routeTableId],\n    destinationRouteTableIds: [exampleSh.routeTableId],\n    sourceChildInstanceTypes: [\"VPC\"],\n    destinationChildInstanceTypes: [\"VPC\"],\n    destinationCidrBlocks: [exampleSh.cidrBlock],\n    cidrMatchMode: \"Include\",\n    routeTypes: [\"System\"],\n    matchAsns: [\"65501\"],\n    asPathMatchMode: \"Include\",\n    matchCommunitySets: [\"65501:1\"],\n    communityMatchMode: \"Include\",\n    communityOperateMode: \"Additive\",\n    operateCommunitySets: [\"65501:1\"],\n    preference: 20,\n    prependAsPaths: [\"65501\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nsource_region = config.get(\"sourceRegion\")\nif source_region is None:\n    source_region = \"cn-hangzhou\"\ndestination_region = config.get(\"destinationRegion\")\nif destination_region is None:\n    destination_region = \"cn-shanghai\"\nexample_hz = alicloud.vpc.Network(\"example_hz\",\n    vpc_name=\"tf_example\",\n    cidr_block=\"192.168.0.0/16\")\nexample_sh = alicloud.vpc.Network(\"example_sh\",\n    vpc_name=\"tf_example\",\n    cidr_block=\"172.16.0.0/12\")\nexample = alicloud.cen.Instance(\"example\",\n    cen_instance_name=\"tf_example\",\n    description=\"an example for cen\")\nexample_hz_instance_attachment = alicloud.cen.InstanceAttachment(\"example_hz\",\n    instance_id=example.id,\n    child_instance_id=example_hz.id,\n    child_instance_type=\"VPC\",\n    child_instance_region_id=source_region)\nexample_sh_instance_attachment = alicloud.cen.InstanceAttachment(\"example_sh\",\n    instance_id=example.id,\n    child_instance_id=example_sh.id,\n    child_instance_type=\"VPC\",\n    child_instance_region_id=destination_region)\ndefault = alicloud.cen.RouteMap(\"default\",\n    cen_region_id=source_region,\n    cen_id=example.id,\n    description=\"tf_example\",\n    priority=1,\n    transmit_direction=\"RegionIn\",\n    map_result=\"Permit\",\n    next_priority=1,\n    source_region_ids=[source_region],\n    source_instance_ids=[example_hz_instance_attachment.child_instance_id],\n    source_instance_ids_reverse_match=False,\n    destination_instance_ids=[example_sh_instance_attachment.child_instance_id],\n    destination_instance_ids_reverse_match=False,\n    source_route_table_ids=[example_hz.route_table_id],\n    destination_route_table_ids=[example_sh.route_table_id],\n    source_child_instance_types=[\"VPC\"],\n    destination_child_instance_types=[\"VPC\"],\n    destination_cidr_blocks=[example_sh.cidr_block],\n    cidr_match_mode=\"Include\",\n    route_types=[\"System\"],\n    match_asns=[\"65501\"],\n    as_path_match_mode=\"Include\",\n    match_community_sets=[\"65501:1\"],\n    community_match_mode=\"Include\",\n    community_operate_mode=\"Additive\",\n    operate_community_sets=[\"65501:1\"],\n    preference=20,\n    prepend_as_paths=[\"65501\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var sourceRegion = config.Get(\"sourceRegion\") ?? \"cn-hangzhou\";\n    var destinationRegion = config.Get(\"destinationRegion\") ?? \"cn-shanghai\";\n    var exampleHz = new AliCloud.Vpc.Network(\"example_hz\", new()\n    {\n        VpcName = \"tf_example\",\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var exampleSh = new AliCloud.Vpc.Network(\"example_sh\", new()\n    {\n        VpcName = \"tf_example\",\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var example = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = \"tf_example\",\n        Description = \"an example for cen\",\n    });\n\n    var exampleHzInstanceAttachment = new AliCloud.Cen.InstanceAttachment(\"example_hz\", new()\n    {\n        InstanceId = example.Id,\n        ChildInstanceId = exampleHz.Id,\n        ChildInstanceType = \"VPC\",\n        ChildInstanceRegionId = sourceRegion,\n    });\n\n    var exampleShInstanceAttachment = new AliCloud.Cen.InstanceAttachment(\"example_sh\", new()\n    {\n        InstanceId = example.Id,\n        ChildInstanceId = exampleSh.Id,\n        ChildInstanceType = \"VPC\",\n        ChildInstanceRegionId = destinationRegion,\n    });\n\n    var @default = new AliCloud.Cen.RouteMap(\"default\", new()\n    {\n        CenRegionId = sourceRegion,\n        CenId = example.Id,\n        Description = \"tf_example\",\n        Priority = 1,\n        TransmitDirection = \"RegionIn\",\n        MapResult = \"Permit\",\n        NextPriority = 1,\n        SourceRegionIds = new[]\n        {\n            sourceRegion,\n        },\n        SourceInstanceIds = new[]\n        {\n            exampleHzInstanceAttachment.ChildInstanceId,\n        },\n        SourceInstanceIdsReverseMatch = false,\n        DestinationInstanceIds = new[]\n        {\n            exampleShInstanceAttachment.ChildInstanceId,\n        },\n        DestinationInstanceIdsReverseMatch = false,\n        SourceRouteTableIds = new[]\n        {\n            exampleHz.RouteTableId,\n        },\n        DestinationRouteTableIds = new[]\n        {\n            exampleSh.RouteTableId,\n        },\n        SourceChildInstanceTypes = new[]\n        {\n            \"VPC\",\n        },\n        DestinationChildInstanceTypes = new[]\n        {\n            \"VPC\",\n        },\n        DestinationCidrBlocks = new[]\n        {\n            exampleSh.CidrBlock,\n        },\n        CidrMatchMode = \"Include\",\n        RouteTypes = new[]\n        {\n            \"System\",\n        },\n        MatchAsns = new[]\n        {\n            \"65501\",\n        },\n        AsPathMatchMode = \"Include\",\n        MatchCommunitySets = new[]\n        {\n            \"65501:1\",\n        },\n        CommunityMatchMode = \"Include\",\n        CommunityOperateMode = \"Additive\",\n        OperateCommunitySets = new[]\n        {\n            \"65501:1\",\n        },\n        Preference = 20,\n        PrependAsPaths = new[]\n        {\n            \"65501\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsourceRegion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"sourceRegion\"); param != \"\" {\n\t\t\tsourceRegion = param\n\t\t}\n\t\tdestinationRegion := \"cn-shanghai\"\n\t\tif param := cfg.Get(\"destinationRegion\"); param != \"\" {\n\t\t\tdestinationRegion = param\n\t\t}\n\t\texampleHz, err := vpc.NewNetwork(ctx, \"example_hz\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"tf_example\"),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSh, err := vpc.NewNetwork(ctx, \"example_sh\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"tf_example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(\"tf_example\"),\n\t\t\tDescription:     pulumi.String(\"an example for cen\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleHzInstanceAttachment, err := cen.NewInstanceAttachment(ctx, \"example_hz\", \u0026cen.InstanceAttachmentArgs{\n\t\t\tInstanceId:            example.ID(),\n\t\t\tChildInstanceId:       exampleHz.ID(),\n\t\t\tChildInstanceType:     pulumi.String(\"VPC\"),\n\t\t\tChildInstanceRegionId: pulumi.String(sourceRegion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleShInstanceAttachment, err := cen.NewInstanceAttachment(ctx, \"example_sh\", \u0026cen.InstanceAttachmentArgs{\n\t\t\tInstanceId:            example.ID(),\n\t\t\tChildInstanceId:       exampleSh.ID(),\n\t\t\tChildInstanceType:     pulumi.String(\"VPC\"),\n\t\t\tChildInstanceRegionId: pulumi.String(destinationRegion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewRouteMap(ctx, \"default\", \u0026cen.RouteMapArgs{\n\t\t\tCenRegionId:       pulumi.String(sourceRegion),\n\t\t\tCenId:             example.ID(),\n\t\t\tDescription:       pulumi.String(\"tf_example\"),\n\t\t\tPriority:          pulumi.Int(1),\n\t\t\tTransmitDirection: pulumi.String(\"RegionIn\"),\n\t\t\tMapResult:         pulumi.String(\"Permit\"),\n\t\t\tNextPriority:      pulumi.Int(1),\n\t\t\tSourceRegionIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(sourceRegion),\n\t\t\t},\n\t\t\tSourceInstanceIds: pulumi.StringArray{\n\t\t\t\texampleHzInstanceAttachment.ChildInstanceId,\n\t\t\t},\n\t\t\tSourceInstanceIdsReverseMatch: pulumi.Bool(false),\n\t\t\tDestinationInstanceIds: pulumi.StringArray{\n\t\t\t\texampleShInstanceAttachment.ChildInstanceId,\n\t\t\t},\n\t\t\tDestinationInstanceIdsReverseMatch: pulumi.Bool(false),\n\t\t\tSourceRouteTableIds: pulumi.StringArray{\n\t\t\t\texampleHz.RouteTableId,\n\t\t\t},\n\t\t\tDestinationRouteTableIds: pulumi.StringArray{\n\t\t\t\texampleSh.RouteTableId,\n\t\t\t},\n\t\t\tSourceChildInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"VPC\"),\n\t\t\t},\n\t\t\tDestinationChildInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"VPC\"),\n\t\t\t},\n\t\t\tDestinationCidrBlocks: pulumi.StringArray{\n\t\t\t\texampleSh.CidrBlock,\n\t\t\t},\n\t\t\tCidrMatchMode: pulumi.String(\"Include\"),\n\t\t\tRouteTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"System\"),\n\t\t\t},\n\t\t\tMatchAsns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"65501\"),\n\t\t\t},\n\t\t\tAsPathMatchMode: pulumi.String(\"Include\"),\n\t\t\tMatchCommunitySets: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"65501:1\"),\n\t\t\t},\n\t\t\tCommunityMatchMode:   pulumi.String(\"Include\"),\n\t\t\tCommunityOperateMode: pulumi.String(\"Additive\"),\n\t\t\tOperateCommunitySets: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"65501:1\"),\n\t\t\t},\n\t\t\tPreference: pulumi.Int(20),\n\t\t\tPrependAsPaths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"65501\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.InstanceAttachment;\nimport com.pulumi.alicloud.cen.InstanceAttachmentArgs;\nimport com.pulumi.alicloud.cen.RouteMap;\nimport com.pulumi.alicloud.cen.RouteMapArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var sourceRegion = config.get(\"sourceRegion\").orElse(\"cn-hangzhou\");\n        final var destinationRegion = config.get(\"destinationRegion\").orElse(\"cn-shanghai\");\n        var exampleHz = new Network(\"exampleHz\", NetworkArgs.builder()\n            .vpcName(\"tf_example\")\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSh = new Network(\"exampleSh\", NetworkArgs.builder()\n            .vpcName(\"tf_example\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var example = new Instance(\"example\", InstanceArgs.builder()\n            .cenInstanceName(\"tf_example\")\n            .description(\"an example for cen\")\n            .build());\n\n        var exampleHzInstanceAttachment = new InstanceAttachment(\"exampleHzInstanceAttachment\", InstanceAttachmentArgs.builder()\n            .instanceId(example.id())\n            .childInstanceId(exampleHz.id())\n            .childInstanceType(\"VPC\")\n            .childInstanceRegionId(sourceRegion)\n            .build());\n\n        var exampleShInstanceAttachment = new InstanceAttachment(\"exampleShInstanceAttachment\", InstanceAttachmentArgs.builder()\n            .instanceId(example.id())\n            .childInstanceId(exampleSh.id())\n            .childInstanceType(\"VPC\")\n            .childInstanceRegionId(destinationRegion)\n            .build());\n\n        var default_ = new RouteMap(\"default\", RouteMapArgs.builder()\n            .cenRegionId(sourceRegion)\n            .cenId(example.id())\n            .description(\"tf_example\")\n            .priority(1)\n            .transmitDirection(\"RegionIn\")\n            .mapResult(\"Permit\")\n            .nextPriority(1)\n            .sourceRegionIds(sourceRegion)\n            .sourceInstanceIds(exampleHzInstanceAttachment.childInstanceId())\n            .sourceInstanceIdsReverseMatch(false)\n            .destinationInstanceIds(exampleShInstanceAttachment.childInstanceId())\n            .destinationInstanceIdsReverseMatch(false)\n            .sourceRouteTableIds(exampleHz.routeTableId())\n            .destinationRouteTableIds(exampleSh.routeTableId())\n            .sourceChildInstanceTypes(\"VPC\")\n            .destinationChildInstanceTypes(\"VPC\")\n            .destinationCidrBlocks(exampleSh.cidrBlock())\n            .cidrMatchMode(\"Include\")\n            .routeTypes(\"System\")\n            .matchAsns(\"65501\")\n            .asPathMatchMode(\"Include\")\n            .matchCommunitySets(\"65501:1\")\n            .communityMatchMode(\"Include\")\n            .communityOperateMode(\"Additive\")\n            .operateCommunitySets(\"65501:1\")\n            .preference(20)\n            .prependAsPaths(\"65501\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  sourceRegion:\n    type: string\n    default: cn-hangzhou\n  destinationRegion:\n    type: string\n    default: cn-shanghai\nresources:\n  exampleHz:\n    type: alicloud:vpc:Network\n    name: example_hz\n    properties:\n      vpcName: tf_example\n      cidrBlock: 192.168.0.0/16\n  exampleSh:\n    type: alicloud:vpc:Network\n    name: example_sh\n    properties:\n      vpcName: tf_example\n      cidrBlock: 172.16.0.0/12\n  example:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: tf_example\n      description: an example for cen\n  exampleHzInstanceAttachment:\n    type: alicloud:cen:InstanceAttachment\n    name: example_hz\n    properties:\n      instanceId: ${example.id}\n      childInstanceId: ${exampleHz.id}\n      childInstanceType: VPC\n      childInstanceRegionId: ${sourceRegion}\n  exampleShInstanceAttachment:\n    type: alicloud:cen:InstanceAttachment\n    name: example_sh\n    properties:\n      instanceId: ${example.id}\n      childInstanceId: ${exampleSh.id}\n      childInstanceType: VPC\n      childInstanceRegionId: ${destinationRegion}\n  default:\n    type: alicloud:cen:RouteMap\n    properties:\n      cenRegionId: ${sourceRegion}\n      cenId: ${example.id}\n      description: tf_example\n      priority: '1'\n      transmitDirection: RegionIn\n      mapResult: Permit\n      nextPriority: '1'\n      sourceRegionIds:\n        - ${sourceRegion}\n      sourceInstanceIds:\n        - ${exampleHzInstanceAttachment.childInstanceId}\n      sourceInstanceIdsReverseMatch: 'false'\n      destinationInstanceIds:\n        - ${exampleShInstanceAttachment.childInstanceId}\n      destinationInstanceIdsReverseMatch: 'false'\n      sourceRouteTableIds:\n        - ${exampleHz.routeTableId}\n      destinationRouteTableIds:\n        - ${exampleSh.routeTableId}\n      sourceChildInstanceTypes:\n        - VPC\n      destinationChildInstanceTypes:\n        - VPC\n      destinationCidrBlocks:\n        - ${exampleSh.cidrBlock}\n      cidrMatchMode: Include\n      routeTypes:\n        - System\n      matchAsns:\n        - '65501'\n      asPathMatchMode: Include\n      matchCommunitySets:\n        - 65501:1\n      communityMatchMode: Include\n      communityOperateMode: Additive\n      operateCommunitySets:\n        - 65501:1\n      preference: '20'\n      prependAsPaths:\n        - '65501'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCEN RouteMap can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/routeMap:RouteMap default \u003ccen_id\u003e:\u003croute_map_id\u003e.\n```\n\n","properties":{"asPathMatchMode":{"type":"string","description":"A match statement. It indicates the mode in which the AS path attribute is matched. Valid values: [\"Include\", \"Complete\"].\n"},"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"cenRegionId":{"type":"string","description":"The ID of the region to which the CEN instance belongs.\n"},"cidrMatchMode":{"type":"string","description":"A match statement. It indicates the mode in which the prefix attribute is matched. Valid values: [\"Include\", \"Complete\"].\n"},"communityMatchMode":{"type":"string","description":"A match statement. It indicates the mode in which the community attribute is matched. Valid values: [\"Include\", \"Complete\"].\n"},"communityOperateMode":{"type":"string","description":"An action statement. It indicates the mode in which the community attribute is operated. Valid values: [\"Additive\", \"Replace\"].\n"},"description":{"type":"string","description":"The description of the route map.\n"},"destinationChildInstanceTypes":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of destination instance types. Valid values: [\"VPC\", \"VBR\", \"CCN\", \"VPN\"].\n"},"destinationCidrBlocks":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the prefix list. The prefix is in the CIDR format. You can enter a maximum of 32 CIDR blocks.\n"},"destinationInstanceIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the destination instances.\n"},"destinationInstanceIdsReverseMatch":{"type":"boolean","description":"Indicates whether to enable the reverse match method for the DestinationInstanceIds match condition. Valid values: [\"false\", \"true\"]. Default to \"false\".\n"},"destinationRouteTableIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the destination route tables. You can enter a maximum of 32 route table IDs.\n"},"mapResult":{"type":"string","description":"The action that is performed to a route if the route matches all the match conditions. Valid values: [\"Permit\", \"Deny\"].\n"},"matchAsns":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the AS path list. The AS path is a well-known mandatory attribute, which describes the numbers of the ASs that a BGP route passes through during transmission.\n"},"matchCommunitySets":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the community set. The format of each community is nn:nn, which ranges from 1 to 65535. You can enter a maximum of 32 communities. Communities must comply with RFC 1997. Large communities (RFC 8092) are not supported.\n"},"nextPriority":{"type":"integer","description":"The priority of the next route map that is associated with the current route map. Value range: 1 to 100.\n"},"operateCommunitySets":{"type":"array","items":{"type":"string"},"description":"An action statement that operates the community attribute. The format of each community is nn:nn, which ranges from 1 to 65535. You can enter a maximum of 32 communities. Communities must comply with RFC 1997. Large communities (RFC 8092) are not supported.\n"},"preference":{"type":"integer","description":"An action statement that modifies the priority of the route. Value range: 1 to 100. The default priority of a route is 50. A lower value indicates a higher preference.\n"},"prependAsPaths":{"type":"array","items":{"type":"string"},"description":"An action statement that indicates an AS path is prepended when the regional gateway receives or advertises a route.\n"},"priority":{"type":"integer","description":"The priority of the route map. Value range: 1 to 100. A lower value indicates a higher priority.\n"},"routeMapId":{"type":"string","description":"ID of the RouteMap. It is available in 1.161.0+.\n"},"routeTypes":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of route types. Valid values: [\"System\", \"Custom\", \"BGP\"].\n"},"sourceChildInstanceTypes":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of source instance types. Valid values: [\"VPC\", \"VBR\", \"CCN\"].\n"},"sourceInstanceIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the source instances.\n"},"sourceInstanceIdsReverseMatch":{"type":"boolean","description":"Indicates whether to enable the reverse match method for the SourceInstanceIds match condition. Valid values: [\"false\", \"true\"]. Default to \"false\".\n"},"sourceRegionIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the source regions. You can enter a maximum of 32 region IDs.\n"},"sourceRouteTableIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the source route tables. You can enter a maximum of 32 route table IDs.\n"},"status":{"type":"string","description":"(Computed) The status of route map. Valid values: [\"Creating\", \"Active\", \"Deleting\"].\n"},"transitRouterRouteTableId":{"type":"string","description":"The routing table ID of the forwarding router. If you do not enter the routing table ID, the routing policy is automatically associated with the default routing table of the forwarding router.\n"},"transmitDirection":{"type":"string","description":"The direction in which the route map is applied. Valid values: [\"RegionIn\", \"RegionOut\"].\n"}},"required":["cenId","cenRegionId","mapResult","priority","routeMapId","status","transitRouterRouteTableId","transmitDirection"],"inputProperties":{"asPathMatchMode":{"type":"string","description":"A match statement. It indicates the mode in which the AS path attribute is matched. Valid values: [\"Include\", \"Complete\"].\n"},"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"cenRegionId":{"type":"string","description":"The ID of the region to which the CEN instance belongs.\n"},"cidrMatchMode":{"type":"string","description":"A match statement. It indicates the mode in which the prefix attribute is matched. Valid values: [\"Include\", \"Complete\"].\n"},"communityMatchMode":{"type":"string","description":"A match statement. It indicates the mode in which the community attribute is matched. Valid values: [\"Include\", \"Complete\"].\n"},"communityOperateMode":{"type":"string","description":"An action statement. It indicates the mode in which the community attribute is operated. Valid values: [\"Additive\", \"Replace\"].\n"},"description":{"type":"string","description":"The description of the route map.\n"},"destinationChildInstanceTypes":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of destination instance types. Valid values: [\"VPC\", \"VBR\", \"CCN\", \"VPN\"].\n"},"destinationCidrBlocks":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the prefix list. The prefix is in the CIDR format. You can enter a maximum of 32 CIDR blocks.\n"},"destinationInstanceIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the destination instances.\n"},"destinationInstanceIdsReverseMatch":{"type":"boolean","description":"Indicates whether to enable the reverse match method for the DestinationInstanceIds match condition. Valid values: [\"false\", \"true\"]. Default to \"false\".\n"},"destinationRouteTableIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the destination route tables. You can enter a maximum of 32 route table IDs.\n"},"mapResult":{"type":"string","description":"The action that is performed to a route if the route matches all the match conditions. Valid values: [\"Permit\", \"Deny\"].\n"},"matchAsns":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the AS path list. The AS path is a well-known mandatory attribute, which describes the numbers of the ASs that a BGP route passes through during transmission.\n"},"matchCommunitySets":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the community set. The format of each community is nn:nn, which ranges from 1 to 65535. You can enter a maximum of 32 communities. Communities must comply with RFC 1997. Large communities (RFC 8092) are not supported.\n"},"nextPriority":{"type":"integer","description":"The priority of the next route map that is associated with the current route map. Value range: 1 to 100.\n"},"operateCommunitySets":{"type":"array","items":{"type":"string"},"description":"An action statement that operates the community attribute. The format of each community is nn:nn, which ranges from 1 to 65535. You can enter a maximum of 32 communities. Communities must comply with RFC 1997. Large communities (RFC 8092) are not supported.\n"},"preference":{"type":"integer","description":"An action statement that modifies the priority of the route. Value range: 1 to 100. The default priority of a route is 50. A lower value indicates a higher preference.\n"},"prependAsPaths":{"type":"array","items":{"type":"string"},"description":"An action statement that indicates an AS path is prepended when the regional gateway receives or advertises a route.\n"},"priority":{"type":"integer","description":"The priority of the route map. Value range: 1 to 100. A lower value indicates a higher priority.\n"},"routeTypes":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of route types. Valid values: [\"System\", \"Custom\", \"BGP\"].\n"},"sourceChildInstanceTypes":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of source instance types. Valid values: [\"VPC\", \"VBR\", \"CCN\"].\n"},"sourceInstanceIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the source instances.\n"},"sourceInstanceIdsReverseMatch":{"type":"boolean","description":"Indicates whether to enable the reverse match method for the SourceInstanceIds match condition. Valid values: [\"false\", \"true\"]. Default to \"false\".\n"},"sourceRegionIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the source regions. You can enter a maximum of 32 region IDs.\n"},"sourceRouteTableIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the source route tables. You can enter a maximum of 32 route table IDs.\n"},"transitRouterRouteTableId":{"type":"string","description":"The routing table ID of the forwarding router. If you do not enter the routing table ID, the routing policy is automatically associated with the default routing table of the forwarding router.\n","willReplaceOnChanges":true},"transmitDirection":{"type":"string","description":"The direction in which the route map is applied. Valid values: [\"RegionIn\", \"RegionOut\"].\n","willReplaceOnChanges":true}},"requiredInputs":["cenId","cenRegionId","mapResult","priority","transmitDirection"],"stateInputs":{"description":"Input properties used for looking up and filtering RouteMap resources.\n","properties":{"asPathMatchMode":{"type":"string","description":"A match statement. It indicates the mode in which the AS path attribute is matched. Valid values: [\"Include\", \"Complete\"].\n"},"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"cenRegionId":{"type":"string","description":"The ID of the region to which the CEN instance belongs.\n"},"cidrMatchMode":{"type":"string","description":"A match statement. It indicates the mode in which the prefix attribute is matched. Valid values: [\"Include\", \"Complete\"].\n"},"communityMatchMode":{"type":"string","description":"A match statement. It indicates the mode in which the community attribute is matched. Valid values: [\"Include\", \"Complete\"].\n"},"communityOperateMode":{"type":"string","description":"An action statement. It indicates the mode in which the community attribute is operated. Valid values: [\"Additive\", \"Replace\"].\n"},"description":{"type":"string","description":"The description of the route map.\n"},"destinationChildInstanceTypes":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of destination instance types. Valid values: [\"VPC\", \"VBR\", \"CCN\", \"VPN\"].\n"},"destinationCidrBlocks":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the prefix list. The prefix is in the CIDR format. You can enter a maximum of 32 CIDR blocks.\n"},"destinationInstanceIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the destination instances.\n"},"destinationInstanceIdsReverseMatch":{"type":"boolean","description":"Indicates whether to enable the reverse match method for the DestinationInstanceIds match condition. Valid values: [\"false\", \"true\"]. Default to \"false\".\n"},"destinationRouteTableIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the destination route tables. You can enter a maximum of 32 route table IDs.\n"},"mapResult":{"type":"string","description":"The action that is performed to a route if the route matches all the match conditions. Valid values: [\"Permit\", \"Deny\"].\n"},"matchAsns":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the AS path list. The AS path is a well-known mandatory attribute, which describes the numbers of the ASs that a BGP route passes through during transmission.\n"},"matchCommunitySets":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the community set. The format of each community is nn:nn, which ranges from 1 to 65535. You can enter a maximum of 32 communities. Communities must comply with RFC 1997. Large communities (RFC 8092) are not supported.\n"},"nextPriority":{"type":"integer","description":"The priority of the next route map that is associated with the current route map. Value range: 1 to 100.\n"},"operateCommunitySets":{"type":"array","items":{"type":"string"},"description":"An action statement that operates the community attribute. The format of each community is nn:nn, which ranges from 1 to 65535. You can enter a maximum of 32 communities. Communities must comply with RFC 1997. Large communities (RFC 8092) are not supported.\n"},"preference":{"type":"integer","description":"An action statement that modifies the priority of the route. Value range: 1 to 100. The default priority of a route is 50. A lower value indicates a higher preference.\n"},"prependAsPaths":{"type":"array","items":{"type":"string"},"description":"An action statement that indicates an AS path is prepended when the regional gateway receives or advertises a route.\n"},"priority":{"type":"integer","description":"The priority of the route map. Value range: 1 to 100. A lower value indicates a higher priority.\n"},"routeMapId":{"type":"string","description":"ID of the RouteMap. It is available in 1.161.0+.\n"},"routeTypes":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of route types. Valid values: [\"System\", \"Custom\", \"BGP\"].\n"},"sourceChildInstanceTypes":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of source instance types. Valid values: [\"VPC\", \"VBR\", \"CCN\"].\n"},"sourceInstanceIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the source instances.\n"},"sourceInstanceIdsReverseMatch":{"type":"boolean","description":"Indicates whether to enable the reverse match method for the SourceInstanceIds match condition. Valid values: [\"false\", \"true\"]. Default to \"false\".\n"},"sourceRegionIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the source regions. You can enter a maximum of 32 region IDs.\n"},"sourceRouteTableIds":{"type":"array","items":{"type":"string"},"description":"A match statement that indicates the list of IDs of the source route tables. You can enter a maximum of 32 route table IDs.\n"},"status":{"type":"string","description":"(Computed) The status of route map. Valid values: [\"Creating\", \"Active\", \"Deleting\"].\n"},"transitRouterRouteTableId":{"type":"string","description":"The routing table ID of the forwarding router. If you do not enter the routing table ID, the routing policy is automatically associated with the default routing table of the forwarding router.\n","willReplaceOnChanges":true},"transmitDirection":{"type":"string","description":"The direction in which the route map is applied. Valid values: [\"RegionIn\", \"RegionOut\"].\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/routeService:RouteService":{"description":"Provides a CEN Route Service resource. The virtual border routers (VBRs) and Cloud Connect Network (CCN) instances attached to Cloud Enterprise Network (CEN) instances can access the cloud services deployed in VPCs through the CEN instances.\n\nFor information about CEN Route Service and how to use it, see [What is Route Service](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-resolveandrouteserviceincen).\n\n\u003e **NOTE:** Available since v1.99.0.\n\n\u003e **NOTE:** Ensure that at least one VPC in the selected region is attached to the CEN instance.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst example = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"tf_example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleInstance = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: \"tf_example\",\n    description: \"an example for cen\",\n});\nconst exampleInstanceAttachment = new alicloud.cen.InstanceAttachment(\"example\", {\n    instanceId: exampleInstance.id,\n    childInstanceId: example.id,\n    childInstanceType: \"VPC\",\n    childInstanceRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n});\nconst exampleRouteService = new alicloud.cen.RouteService(\"example\", {\n    accessRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    hostRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    hostVpcId: example.id,\n    cenId: exampleInstanceAttachment.instanceId,\n    host: \"100.118.28.52/32\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_regions(current=True)\nexample = alicloud.vpc.Network(\"example\",\n    vpc_name=\"tf_example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_instance = alicloud.cen.Instance(\"example\",\n    cen_instance_name=\"tf_example\",\n    description=\"an example for cen\")\nexample_instance_attachment = alicloud.cen.InstanceAttachment(\"example\",\n    instance_id=example_instance.id,\n    child_instance_id=example.id,\n    child_instance_type=\"VPC\",\n    child_instance_region_id=default.regions[0].id)\nexample_route_service = alicloud.cen.RouteService(\"example\",\n    access_region_id=default.regions[0].id,\n    host_region_id=default.regions[0].id,\n    host_vpc_id=example.id,\n    cen_id=example_instance_attachment.instance_id,\n    host=\"100.118.28.52/32\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"tf_example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleInstance = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = \"tf_example\",\n        Description = \"an example for cen\",\n    });\n\n    var exampleInstanceAttachment = new AliCloud.Cen.InstanceAttachment(\"example\", new()\n    {\n        InstanceId = exampleInstance.Id,\n        ChildInstanceId = example.Id,\n        ChildInstanceType = \"VPC\",\n        ChildInstanceRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n    });\n\n    var exampleRouteService = new AliCloud.Cen.RouteService(\"example\", new()\n    {\n        AccessRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        HostRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        HostVpcId = example.Id,\n        CenId = exampleInstanceAttachment.InstanceId,\n        Host = \"100.118.28.52/32\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"tf_example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(\"tf_example\"),\n\t\t\tDescription:     pulumi.String(\"an example for cen\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstanceAttachment, err := cen.NewInstanceAttachment(ctx, \"example\", \u0026cen.InstanceAttachmentArgs{\n\t\t\tInstanceId:            exampleInstance.ID(),\n\t\t\tChildInstanceId:       example.ID(),\n\t\t\tChildInstanceType:     pulumi.String(\"VPC\"),\n\t\t\tChildInstanceRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewRouteService(ctx, \"example\", \u0026cen.RouteServiceArgs{\n\t\t\tAccessRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t\tHostRegionId:   pulumi.String(_default.Regions[0].Id),\n\t\t\tHostVpcId:      example.ID(),\n\t\t\tCenId:          exampleInstanceAttachment.InstanceId,\n\t\t\tHost:           pulumi.String(\"100.118.28.52/32\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.InstanceAttachment;\nimport com.pulumi.alicloud.cen.InstanceAttachmentArgs;\nimport com.pulumi.alicloud.cen.RouteService;\nimport com.pulumi.alicloud.cen.RouteServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .vpcName(\"tf_example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .cenInstanceName(\"tf_example\")\n            .description(\"an example for cen\")\n            .build());\n\n        var exampleInstanceAttachment = new InstanceAttachment(\"exampleInstanceAttachment\", InstanceAttachmentArgs.builder()\n            .instanceId(exampleInstance.id())\n            .childInstanceId(example.id())\n            .childInstanceType(\"VPC\")\n            .childInstanceRegionId(default_.regions()[0].id())\n            .build());\n\n        var exampleRouteService = new RouteService(\"exampleRouteService\", RouteServiceArgs.builder()\n            .accessRegionId(default_.regions()[0].id())\n            .hostRegionId(default_.regions()[0].id())\n            .hostVpcId(example.id())\n            .cenId(exampleInstanceAttachment.instanceId())\n            .host(\"100.118.28.52/32\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: tf_example\n      cidrBlock: 172.17.3.0/24\n  exampleInstance:\n    type: alicloud:cen:Instance\n    name: example\n    properties:\n      cenInstanceName: tf_example\n      description: an example for cen\n  exampleInstanceAttachment:\n    type: alicloud:cen:InstanceAttachment\n    name: example\n    properties:\n      instanceId: ${exampleInstance.id}\n      childInstanceId: ${example.id}\n      childInstanceType: VPC\n      childInstanceRegionId: ${default.regions[0].id}\n  exampleRouteService:\n    type: alicloud:cen:RouteService\n    name: example\n    properties:\n      accessRegionId: ${default.regions[0].id}\n      hostRegionId: ${default.regions[0].id}\n      hostVpcId: ${example.id}\n      cenId: ${exampleInstanceAttachment.instanceId}\n      host: 100.118.28.52/32\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCEN Route Service can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/routeService:RouteService example cen-ahixm0efqh********:cn-shanghai:100.118.28.52/32:cn-shanghai\n```\n\n","properties":{"accessRegionId":{"type":"string","description":"The region of the network instances that access the cloud services.\n"},"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"description":{"type":"string","description":"The description of the cloud service.\n"},"host":{"type":"string","description":"The domain name or IP address of the cloud service.\n"},"hostRegionId":{"type":"string","description":"The region of the cloud service.\n"},"hostVpcId":{"type":"string","description":"The VPC associated with the cloud service.\n\n\u003e **NOTE:** The values of \u003cspan pulumi-lang-nodejs=\"`hostRegionId`\" pulumi-lang-dotnet=\"`HostRegionId`\" pulumi-lang-go=\"`hostRegionId`\" pulumi-lang-python=\"`host_region_id`\" pulumi-lang-yaml=\"`hostRegionId`\" pulumi-lang-java=\"`hostRegionId`\"\u003e`host_region_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`accessRegionId`\" pulumi-lang-dotnet=\"`AccessRegionId`\" pulumi-lang-go=\"`accessRegionId`\" pulumi-lang-python=\"`access_region_id`\" pulumi-lang-yaml=\"`accessRegionId`\" pulumi-lang-java=\"`accessRegionId`\"\u003e`access_region_id`\u003c/span\u003e must be consistent.\n"},"status":{"type":"string","description":"The status of the cloud service.\n"}},"required":["accessRegionId","cenId","host","hostRegionId","hostVpcId","status"],"inputProperties":{"accessRegionId":{"type":"string","description":"The region of the network instances that access the cloud services.\n","willReplaceOnChanges":true},"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the cloud service.\n","willReplaceOnChanges":true},"host":{"type":"string","description":"The domain name or IP address of the cloud service.\n","willReplaceOnChanges":true},"hostRegionId":{"type":"string","description":"The region of the cloud service.\n","willReplaceOnChanges":true},"hostVpcId":{"type":"string","description":"The VPC associated with the cloud service.\n\n\u003e **NOTE:** The values of \u003cspan pulumi-lang-nodejs=\"`hostRegionId`\" pulumi-lang-dotnet=\"`HostRegionId`\" pulumi-lang-go=\"`hostRegionId`\" pulumi-lang-python=\"`host_region_id`\" pulumi-lang-yaml=\"`hostRegionId`\" pulumi-lang-java=\"`hostRegionId`\"\u003e`host_region_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`accessRegionId`\" pulumi-lang-dotnet=\"`AccessRegionId`\" pulumi-lang-go=\"`accessRegionId`\" pulumi-lang-python=\"`access_region_id`\" pulumi-lang-yaml=\"`accessRegionId`\" pulumi-lang-java=\"`accessRegionId`\"\u003e`access_region_id`\u003c/span\u003e must be consistent.\n","willReplaceOnChanges":true}},"requiredInputs":["accessRegionId","cenId","host","hostRegionId","hostVpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering RouteService resources.\n","properties":{"accessRegionId":{"type":"string","description":"The region of the network instances that access the cloud services.\n","willReplaceOnChanges":true},"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the cloud service.\n","willReplaceOnChanges":true},"host":{"type":"string","description":"The domain name or IP address of the cloud service.\n","willReplaceOnChanges":true},"hostRegionId":{"type":"string","description":"The region of the cloud service.\n","willReplaceOnChanges":true},"hostVpcId":{"type":"string","description":"The VPC associated with the cloud service.\n\n\u003e **NOTE:** The values of \u003cspan pulumi-lang-nodejs=\"`hostRegionId`\" pulumi-lang-dotnet=\"`HostRegionId`\" pulumi-lang-go=\"`hostRegionId`\" pulumi-lang-python=\"`host_region_id`\" pulumi-lang-yaml=\"`hostRegionId`\" pulumi-lang-java=\"`hostRegionId`\"\u003e`host_region_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`accessRegionId`\" pulumi-lang-dotnet=\"`AccessRegionId`\" pulumi-lang-go=\"`accessRegionId`\" pulumi-lang-python=\"`access_region_id`\" pulumi-lang-yaml=\"`accessRegionId`\" pulumi-lang-java=\"`accessRegionId`\"\u003e`access_region_id`\u003c/span\u003e must be consistent.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the cloud service.\n"}},"type":"object"}},"alicloud:cen/trafficMarkingPolicy:TrafficMarkingPolicy":{"description":"Provides a Cloud Enterprise Network (CEN) Traffic Marking Policy resource.\n\n\n\nFor information about Cloud Enterprise Network (CEN) Traffic Marking Policy and how to use it, see [What is Traffic Marking Policy](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-createtrafficmarkingpolicy).\n\n\u003e **NOTE:** Available since v1.173.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: \"tf_example\",\n    description: \"an example for cen\",\n});\nconst exampleTransitRouter = new alicloud.cen.TransitRouter(\"example\", {\n    transitRouterName: \"tf_example\",\n    cenId: example.id,\n});\nconst exampleTrafficMarkingPolicy = new alicloud.cen.TrafficMarkingPolicy(\"example\", {\n    markingDscp: 1,\n    priority: 1,\n    trafficMarkingPolicyName: \"tf_example\",\n    transitRouterId: exampleTransitRouter.transitRouterId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cen.Instance(\"example\",\n    cen_instance_name=\"tf_example\",\n    description=\"an example for cen\")\nexample_transit_router = alicloud.cen.TransitRouter(\"example\",\n    transit_router_name=\"tf_example\",\n    cen_id=example.id)\nexample_traffic_marking_policy = alicloud.cen.TrafficMarkingPolicy(\"example\",\n    marking_dscp=1,\n    priority=1,\n    traffic_marking_policy_name=\"tf_example\",\n    transit_router_id=example_transit_router.transit_router_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = \"tf_example\",\n        Description = \"an example for cen\",\n    });\n\n    var exampleTransitRouter = new AliCloud.Cen.TransitRouter(\"example\", new()\n    {\n        TransitRouterName = \"tf_example\",\n        CenId = example.Id,\n    });\n\n    var exampleTrafficMarkingPolicy = new AliCloud.Cen.TrafficMarkingPolicy(\"example\", new()\n    {\n        MarkingDscp = 1,\n        Priority = 1,\n        TrafficMarkingPolicyName = \"tf_example\",\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(\"tf_example\"),\n\t\t\tDescription:     pulumi.String(\"an example for cen\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouter, err := cen.NewTransitRouter(ctx, \"example\", \u0026cen.TransitRouterArgs{\n\t\t\tTransitRouterName: pulumi.String(\"tf_example\"),\n\t\t\tCenId:             example.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTrafficMarkingPolicy(ctx, \"example\", \u0026cen.TrafficMarkingPolicyArgs{\n\t\t\tMarkingDscp:              pulumi.Int(1),\n\t\t\tPriority:                 pulumi.Int(1),\n\t\t\tTrafficMarkingPolicyName: pulumi.String(\"tf_example\"),\n\t\t\tTransitRouterId:          exampleTransitRouter.TransitRouterId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TrafficMarkingPolicy;\nimport com.pulumi.alicloud.cen.TrafficMarkingPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Instance(\"example\", InstanceArgs.builder()\n            .cenInstanceName(\"tf_example\")\n            .description(\"an example for cen\")\n            .build());\n\n        var exampleTransitRouter = new TransitRouter(\"exampleTransitRouter\", TransitRouterArgs.builder()\n            .transitRouterName(\"tf_example\")\n            .cenId(example.id())\n            .build());\n\n        var exampleTrafficMarkingPolicy = new TrafficMarkingPolicy(\"exampleTrafficMarkingPolicy\", TrafficMarkingPolicyArgs.builder()\n            .markingDscp(1)\n            .priority(1)\n            .trafficMarkingPolicyName(\"tf_example\")\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: tf_example\n      description: an example for cen\n  exampleTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: example\n    properties:\n      transitRouterName: tf_example\n      cenId: ${example.id}\n  exampleTrafficMarkingPolicy:\n    type: alicloud:cen:TrafficMarkingPolicy\n    name: example\n    properties:\n      markingDscp: 1\n      priority: 1\n      trafficMarkingPolicyName: tf_example\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Enterprise Network (CEN) Traffic Marking Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/trafficMarkingPolicy:TrafficMarkingPolicy example \u003ctransit_router_id\u003e:\u003ctraffic_marking_policy_id\u003e\n```\n\n","properties":{"description":{"type":"string","description":"TrafficMarkingPolicyDescription\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\n"},"force":{"type":"boolean","description":"Whether to forcibly delete the traffic marker policy. Valid values:\n"},"markingDscp":{"type":"integer","description":"MarkingDscp\n"},"priority":{"type":"integer","description":"Priority\n"},"status":{"type":"string","description":"The status of the resource\n"},"trafficMarkingPolicyId":{"type":"string","description":"The first ID of the resource\n"},"trafficMarkingPolicyName":{"type":"string","description":"TrafficMarkingPolicyName\n"},"trafficMatchRules":{"type":"array","items":{"$ref":"#/types/alicloud:cen/TrafficMarkingPolicyTrafficMatchRule:TrafficMarkingPolicyTrafficMatchRule"},"description":"List of stream classification rules.\nYou can add up to 50 stream classification rules at a time. See \u003cspan pulumi-lang-nodejs=\"`trafficMatchRules`\" pulumi-lang-dotnet=\"`TrafficMatchRules`\" pulumi-lang-go=\"`trafficMatchRules`\" pulumi-lang-python=\"`traffic_match_rules`\" pulumi-lang-yaml=\"`trafficMatchRules`\" pulumi-lang-java=\"`trafficMatchRules`\"\u003e`traffic_match_rules`\u003c/span\u003e below.\n"},"transitRouterId":{"type":"string","description":"TransitRouterId\n"}},"required":["markingDscp","priority","status","trafficMarkingPolicyId","transitRouterId"],"inputProperties":{"description":{"type":"string","description":"TrafficMarkingPolicyDescription\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\n"},"force":{"type":"boolean","description":"Whether to forcibly delete the traffic marker policy. Valid values:\n"},"markingDscp":{"type":"integer","description":"MarkingDscp\n","willReplaceOnChanges":true},"priority":{"type":"integer","description":"Priority\n","willReplaceOnChanges":true},"trafficMarkingPolicyName":{"type":"string","description":"TrafficMarkingPolicyName\n"},"trafficMatchRules":{"type":"array","items":{"$ref":"#/types/alicloud:cen/TrafficMarkingPolicyTrafficMatchRule:TrafficMarkingPolicyTrafficMatchRule"},"description":"List of stream classification rules.\nYou can add up to 50 stream classification rules at a time. See \u003cspan pulumi-lang-nodejs=\"`trafficMatchRules`\" pulumi-lang-dotnet=\"`TrafficMatchRules`\" pulumi-lang-go=\"`trafficMatchRules`\" pulumi-lang-python=\"`traffic_match_rules`\" pulumi-lang-yaml=\"`trafficMatchRules`\" pulumi-lang-java=\"`trafficMatchRules`\"\u003e`traffic_match_rules`\u003c/span\u003e below.\n"},"transitRouterId":{"type":"string","description":"TransitRouterId\n","willReplaceOnChanges":true}},"requiredInputs":["markingDscp","priority","transitRouterId"],"stateInputs":{"description":"Input properties used for looking up and filtering TrafficMarkingPolicy resources.\n","properties":{"description":{"type":"string","description":"TrafficMarkingPolicyDescription\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\n"},"force":{"type":"boolean","description":"Whether to forcibly delete the traffic marker policy. Valid values:\n"},"markingDscp":{"type":"integer","description":"MarkingDscp\n","willReplaceOnChanges":true},"priority":{"type":"integer","description":"Priority\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"},"trafficMarkingPolicyId":{"type":"string","description":"The first ID of the resource\n"},"trafficMarkingPolicyName":{"type":"string","description":"TrafficMarkingPolicyName\n"},"trafficMatchRules":{"type":"array","items":{"$ref":"#/types/alicloud:cen/TrafficMarkingPolicyTrafficMatchRule:TrafficMarkingPolicyTrafficMatchRule"},"description":"List of stream classification rules.\nYou can add up to 50 stream classification rules at a time. See \u003cspan pulumi-lang-nodejs=\"`trafficMatchRules`\" pulumi-lang-dotnet=\"`TrafficMatchRules`\" pulumi-lang-go=\"`trafficMatchRules`\" pulumi-lang-python=\"`traffic_match_rules`\" pulumi-lang-yaml=\"`trafficMatchRules`\" pulumi-lang-java=\"`trafficMatchRules`\"\u003e`traffic_match_rules`\u003c/span\u003e below.\n"},"transitRouterId":{"type":"string","description":"TransitRouterId\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/transitRouteTableAggregation:TransitRouteTableAggregation":{"description":"Provides a Cloud Enterprise Network (CEN) Transit Route Table Aggregation resource.\n\n\n\nFor information about Cloud Enterprise Network (CEN) Transit Route Table Aggregation and how to use it, see [What is Transit Route Table Aggregation](https://next.api.alibabacloud.com/document/Cbn/2017-09-12/CreateTransitRouteTableAggregation).\n\n\u003e **NOTE:** Available since v1.245.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: \"tf_example\",\n    description: \"an example for cen\",\n});\nconst exampleTransitRouter = new alicloud.cen.TransitRouter(\"example\", {\n    transitRouterName: \"tf_example\",\n    cenId: example.id,\n});\nconst exampleTransitRouterRouteTable = new alicloud.cen.TransitRouterRouteTable(\"example\", {transitRouterId: exampleTransitRouter.transitRouterId});\nconst exampleTransitRouteTableAggregation = new alicloud.cen.TransitRouteTableAggregation(\"example\", {\n    transitRouteTableId: exampleTransitRouterRouteTable.transitRouterRouteTableId,\n    transitRouteTableAggregationCidr: \"10.0.0.0/8\",\n    transitRouteTableAggregationScope: \"VPC\",\n    transitRouteTableAggregationName: \"tf_example\",\n    transitRouteTableAggregationDescription: \"tf_example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cen.Instance(\"example\",\n    cen_instance_name=\"tf_example\",\n    description=\"an example for cen\")\nexample_transit_router = alicloud.cen.TransitRouter(\"example\",\n    transit_router_name=\"tf_example\",\n    cen_id=example.id)\nexample_transit_router_route_table = alicloud.cen.TransitRouterRouteTable(\"example\", transit_router_id=example_transit_router.transit_router_id)\nexample_transit_route_table_aggregation = alicloud.cen.TransitRouteTableAggregation(\"example\",\n    transit_route_table_id=example_transit_router_route_table.transit_router_route_table_id,\n    transit_route_table_aggregation_cidr=\"10.0.0.0/8\",\n    transit_route_table_aggregation_scope=\"VPC\",\n    transit_route_table_aggregation_name=\"tf_example\",\n    transit_route_table_aggregation_description=\"tf_example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = \"tf_example\",\n        Description = \"an example for cen\",\n    });\n\n    var exampleTransitRouter = new AliCloud.Cen.TransitRouter(\"example\", new()\n    {\n        TransitRouterName = \"tf_example\",\n        CenId = example.Id,\n    });\n\n    var exampleTransitRouterRouteTable = new AliCloud.Cen.TransitRouterRouteTable(\"example\", new()\n    {\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n    });\n\n    var exampleTransitRouteTableAggregation = new AliCloud.Cen.TransitRouteTableAggregation(\"example\", new()\n    {\n        TransitRouteTableId = exampleTransitRouterRouteTable.TransitRouterRouteTableId,\n        TransitRouteTableAggregationCidr = \"10.0.0.0/8\",\n        TransitRouteTableAggregationScope = \"VPC\",\n        TransitRouteTableAggregationName = \"tf_example\",\n        TransitRouteTableAggregationDescription = \"tf_example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(\"tf_example\"),\n\t\t\tDescription:     pulumi.String(\"an example for cen\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouter, err := cen.NewTransitRouter(ctx, \"example\", \u0026cen.TransitRouterArgs{\n\t\t\tTransitRouterName: pulumi.String(\"tf_example\"),\n\t\t\tCenId:             example.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouterRouteTable, err := cen.NewTransitRouterRouteTable(ctx, \"example\", \u0026cen.TransitRouterRouteTableArgs{\n\t\t\tTransitRouterId: exampleTransitRouter.TransitRouterId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouteTableAggregation(ctx, \"example\", \u0026cen.TransitRouteTableAggregationArgs{\n\t\t\tTransitRouteTableId:                     exampleTransitRouterRouteTable.TransitRouterRouteTableId,\n\t\t\tTransitRouteTableAggregationCidr:        pulumi.String(\"10.0.0.0/8\"),\n\t\t\tTransitRouteTableAggregationScope:       pulumi.String(\"VPC\"),\n\t\t\tTransitRouteTableAggregationName:        pulumi.String(\"tf_example\"),\n\t\t\tTransitRouteTableAggregationDescription: pulumi.String(\"tf_example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTable;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTableArgs;\nimport com.pulumi.alicloud.cen.TransitRouteTableAggregation;\nimport com.pulumi.alicloud.cen.TransitRouteTableAggregationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Instance(\"example\", InstanceArgs.builder()\n            .cenInstanceName(\"tf_example\")\n            .description(\"an example for cen\")\n            .build());\n\n        var exampleTransitRouter = new TransitRouter(\"exampleTransitRouter\", TransitRouterArgs.builder()\n            .transitRouterName(\"tf_example\")\n            .cenId(example.id())\n            .build());\n\n        var exampleTransitRouterRouteTable = new TransitRouterRouteTable(\"exampleTransitRouterRouteTable\", TransitRouterRouteTableArgs.builder()\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .build());\n\n        var exampleTransitRouteTableAggregation = new TransitRouteTableAggregation(\"exampleTransitRouteTableAggregation\", TransitRouteTableAggregationArgs.builder()\n            .transitRouteTableId(exampleTransitRouterRouteTable.transitRouterRouteTableId())\n            .transitRouteTableAggregationCidr(\"10.0.0.0/8\")\n            .transitRouteTableAggregationScope(\"VPC\")\n            .transitRouteTableAggregationName(\"tf_example\")\n            .transitRouteTableAggregationDescription(\"tf_example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: tf_example\n      description: an example for cen\n  exampleTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: example\n    properties:\n      transitRouterName: tf_example\n      cenId: ${example.id}\n  exampleTransitRouterRouteTable:\n    type: alicloud:cen:TransitRouterRouteTable\n    name: example\n    properties:\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n  exampleTransitRouteTableAggregation:\n    type: alicloud:cen:TransitRouteTableAggregation\n    name: example\n    properties:\n      transitRouteTableId: ${exampleTransitRouterRouteTable.transitRouterRouteTableId}\n      transitRouteTableAggregationCidr: 10.0.0.0/8\n      transitRouteTableAggregationScope: VPC\n      transitRouteTableAggregationName: tf_example\n      transitRouteTableAggregationDescription: tf_example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Enterprise Network (CEN) Transit Route Table Aggregation can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/transitRouteTableAggregation:TransitRouteTableAggregation example \u003ctransit_route_table_id\u003e#\u003ctransit_route_table_aggregation_cidr\u003e\n```\n\n","properties":{"status":{"type":"string","description":"The status of the resource\n"},"transitRouteTableAggregationCidr":{"type":"string","description":"The destination CIDR block of the aggregate route.\n\n\u003e **NOTE:**   The following CIDR blocks are not supported:\n\n\u003e **NOTE:** *   CIDR blocks that start with 0 or 100.64.\n\n\u003e **NOTE:** *   Multicast CIDR blocks, including 224.0.0.1 to 239.255.255.254.\n"},"transitRouteTableAggregationDescription":{"type":"string","description":"The list of propagation ranges of the aggregation route.\n\n\u003e **NOTE:**   You must specify at least one of the following attributes: Aggregation Scope and Aggregate Scope List. We recommend that you specify the latter. The elements in the two attributes cannot be duplicate.\n"},"transitRouteTableAggregationName":{"type":"string","description":"The name of the aggregate route.\nThe name can be empty or 1 to 128 characters in length, and cannot start with http:// or https://.\n"},"transitRouteTableAggregationScope":{"type":"string","description":"The scope of networks that you want to advertise the aggregate route.\nThe valid value is `VPC`, which indicates that the aggregate route is advertised to all VPCs that have associated forwarding correlation with the Enterprise Edition transit router and have route synchronization enabled.\n"},"transitRouteTableAggregationScopeLists":{"type":"array","items":{"type":"string"},"description":"Aggregation Route Scopes\n"},"transitRouteTableId":{"type":"string","description":"The list of route table IDs of the Enterprise Edition transit router.\n"}},"required":["status","transitRouteTableAggregationCidr","transitRouteTableId"],"inputProperties":{"transitRouteTableAggregationCidr":{"type":"string","description":"The destination CIDR block of the aggregate route.\n\n\u003e **NOTE:**   The following CIDR blocks are not supported:\n\n\u003e **NOTE:** *   CIDR blocks that start with 0 or 100.64.\n\n\u003e **NOTE:** *   Multicast CIDR blocks, including 224.0.0.1 to 239.255.255.254.\n","willReplaceOnChanges":true},"transitRouteTableAggregationDescription":{"type":"string","description":"The list of propagation ranges of the aggregation route.\n\n\u003e **NOTE:**   You must specify at least one of the following attributes: Aggregation Scope and Aggregate Scope List. We recommend that you specify the latter. The elements in the two attributes cannot be duplicate.\n"},"transitRouteTableAggregationName":{"type":"string","description":"The name of the aggregate route.\nThe name can be empty or 1 to 128 characters in length, and cannot start with http:// or https://.\n"},"transitRouteTableAggregationScope":{"type":"string","description":"The scope of networks that you want to advertise the aggregate route.\nThe valid value is `VPC`, which indicates that the aggregate route is advertised to all VPCs that have associated forwarding correlation with the Enterprise Edition transit router and have route synchronization enabled.\n"},"transitRouteTableAggregationScopeLists":{"type":"array","items":{"type":"string"},"description":"Aggregation Route Scopes\n"},"transitRouteTableId":{"type":"string","description":"The list of route table IDs of the Enterprise Edition transit router.\n","willReplaceOnChanges":true}},"requiredInputs":["transitRouteTableAggregationCidr","transitRouteTableId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouteTableAggregation resources.\n","properties":{"status":{"type":"string","description":"The status of the resource\n"},"transitRouteTableAggregationCidr":{"type":"string","description":"The destination CIDR block of the aggregate route.\n\n\u003e **NOTE:**   The following CIDR blocks are not supported:\n\n\u003e **NOTE:** *   CIDR blocks that start with 0 or 100.64.\n\n\u003e **NOTE:** *   Multicast CIDR blocks, including 224.0.0.1 to 239.255.255.254.\n","willReplaceOnChanges":true},"transitRouteTableAggregationDescription":{"type":"string","description":"The list of propagation ranges of the aggregation route.\n\n\u003e **NOTE:**   You must specify at least one of the following attributes: Aggregation Scope and Aggregate Scope List. We recommend that you specify the latter. The elements in the two attributes cannot be duplicate.\n"},"transitRouteTableAggregationName":{"type":"string","description":"The name of the aggregate route.\nThe name can be empty or 1 to 128 characters in length, and cannot start with http:// or https://.\n"},"transitRouteTableAggregationScope":{"type":"string","description":"The scope of networks that you want to advertise the aggregate route.\nThe valid value is `VPC`, which indicates that the aggregate route is advertised to all VPCs that have associated forwarding correlation with the Enterprise Edition transit router and have route synchronization enabled.\n"},"transitRouteTableAggregationScopeLists":{"type":"array","items":{"type":"string"},"description":"Aggregation Route Scopes\n"},"transitRouteTableId":{"type":"string","description":"The list of route table IDs of the Enterprise Edition transit router.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/transitRouter:TransitRouter":{"description":"Provides a Cloud Enterprise Network (CEN) Transit Router resource.\n\n\n\nFor information about Cloud Enterprise Network (CEN) Transit Router and how to use it, see [What is Transit Router](https://next.api.alibabacloud.com/document/Cbn/2017-09-12/CreateTransitRouter).\n\n\u003e **NOTE:** Available since v1.126.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: name,\n    description: name,\n});\nconst exampleTransitRouter = new alicloud.cen.TransitRouter(\"example\", {\n    cenId: example.id,\n    transitRouterName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.cen.Instance(\"example\",\n    cen_instance_name=name,\n    description=name)\nexample_transit_router = alicloud.cen.TransitRouter(\"example\",\n    cen_id=example.id,\n    transit_router_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = name,\n        Description = name,\n    });\n\n    var exampleTransitRouter = new AliCloud.Cen.TransitRouter(\"example\", new()\n    {\n        CenId = example.Id,\n        TransitRouterName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tDescription:     pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouter(ctx, \"example\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId:             example.ID(),\n\t\t\tTransitRouterName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var example = new Instance(\"example\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .description(name)\n            .build());\n\n        var exampleTransitRouter = new TransitRouter(\"exampleTransitRouter\", TransitRouterArgs.builder()\n            .cenId(example.id())\n            .transitRouterName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  example:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: ${name}\n      description: ${name}\n  exampleTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: example\n    properties:\n      cenId: ${example.id}\n      transitRouterName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Enterprise Network (CEN) Transit Router can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/transitRouter:TransitRouter example \u003ccen_id\u003e:\u003ctransit_router_id\u003e\n```\n\n","properties":{"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n"},"createTime":{"type":"string","description":"(Available since v1.247.0) The time when the transit router was created.\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"regionId":{"type":"string","description":"(Available since v1.247.0) The ID of the region where the transit router is deployed.\n"},"status":{"type":"string","description":"The status of the transit router.\n"},"supportMulticast":{"type":"boolean","description":"Specifies whether to enable the multicast feature for the Enterprise Edition transit router. Valid values:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterDescription":{"type":"string","description":"The description of the Enterprise Edition transit router instance.\nThe description must be 1 to 256 characters in length, and cannot start with http:// or https://. You can also leave this parameter empty.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"},"transitRouterName":{"type":"string","description":"The name of the Enterprise Edition transit router.\nThe name must be 1 to 128 characters in length, and cannot start with http:// or https://. You can also leave this parameter empty.\n"},"type":{"type":"string","description":"The edition of the transit router.\n"}},"required":["cenId","createTime","regionId","status","transitRouterId","type"],"inputProperties":{"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"The dry run.\n"},"supportMulticast":{"type":"boolean","description":"Specifies whether to enable the multicast feature for the Enterprise Edition transit router. Valid values:\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterDescription":{"type":"string","description":"The description of the Enterprise Edition transit router instance.\nThe description must be 1 to 256 characters in length, and cannot start with http:// or https://. You can also leave this parameter empty.\n"},"transitRouterName":{"type":"string","description":"The name of the Enterprise Edition transit router.\nThe name must be 1 to 128 characters in length, and cannot start with http:// or https://. You can also leave this parameter empty.\n"}},"requiredInputs":["cenId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouter resources.\n","properties":{"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"(Available since v1.247.0) The time when the transit router was created.\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"regionId":{"type":"string","description":"(Available since v1.247.0) The ID of the region where the transit router is deployed.\n"},"status":{"type":"string","description":"The status of the transit router.\n"},"supportMulticast":{"type":"boolean","description":"Specifies whether to enable the multicast feature for the Enterprise Edition transit router. Valid values:\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterDescription":{"type":"string","description":"The description of the Enterprise Edition transit router instance.\nThe description must be 1 to 256 characters in length, and cannot start with http:// or https://. You can also leave this parameter empty.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"},"transitRouterName":{"type":"string","description":"The name of the Enterprise Edition transit router.\nThe name must be 1 to 128 characters in length, and cannot start with http:// or https://. You can also leave this parameter empty.\n"},"type":{"type":"string","description":"The edition of the transit router.\n"}},"type":"object"}},"alicloud:cen/transitRouterCidr:TransitRouterCidr":{"description":"Provides a Cloud Enterprise Network (CEN) Transit Router Cidr resource.\n\nUsed for Vpn Attachment, Connect Attachment, etc. Assign address segments.\n\nFor information about Cloud Enterprise Network (CEN) Transit Router Cidr and how to use it, see [What is Transit Router Cidr](https://www.alibabacloud.com/help/en/cloud-enterprise-network/latest/createtransitroutercidr).\n\n\u003e **NOTE:** Available since v1.193.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: \"tf_example\",\n    description: \"an example for cen\",\n});\nconst exampleTransitRouter = new alicloud.cen.TransitRouter(\"example\", {\n    transitRouterName: \"tf_example\",\n    cenId: example.id,\n});\nconst exampleTransitRouterCidr = new alicloud.cen.TransitRouterCidr(\"example\", {\n    transitRouterId: exampleTransitRouter.transitRouterId,\n    cidr: \"192.168.0.0/16\",\n    transitRouterCidrName: \"tf_example\",\n    description: \"tf_example\",\n    publishCidrRoute: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cen.Instance(\"example\",\n    cen_instance_name=\"tf_example\",\n    description=\"an example for cen\")\nexample_transit_router = alicloud.cen.TransitRouter(\"example\",\n    transit_router_name=\"tf_example\",\n    cen_id=example.id)\nexample_transit_router_cidr = alicloud.cen.TransitRouterCidr(\"example\",\n    transit_router_id=example_transit_router.transit_router_id,\n    cidr=\"192.168.0.0/16\",\n    transit_router_cidr_name=\"tf_example\",\n    description=\"tf_example\",\n    publish_cidr_route=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = \"tf_example\",\n        Description = \"an example for cen\",\n    });\n\n    var exampleTransitRouter = new AliCloud.Cen.TransitRouter(\"example\", new()\n    {\n        TransitRouterName = \"tf_example\",\n        CenId = example.Id,\n    });\n\n    var exampleTransitRouterCidr = new AliCloud.Cen.TransitRouterCidr(\"example\", new()\n    {\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n        Cidr = \"192.168.0.0/16\",\n        TransitRouterCidrName = \"tf_example\",\n        Description = \"tf_example\",\n        PublishCidrRoute = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(\"tf_example\"),\n\t\t\tDescription:     pulumi.String(\"an example for cen\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouter, err := cen.NewTransitRouter(ctx, \"example\", \u0026cen.TransitRouterArgs{\n\t\t\tTransitRouterName: pulumi.String(\"tf_example\"),\n\t\t\tCenId:             example.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterCidr(ctx, \"example\", \u0026cen.TransitRouterCidrArgs{\n\t\t\tTransitRouterId:       exampleTransitRouter.TransitRouterId,\n\t\t\tCidr:                  pulumi.String(\"192.168.0.0/16\"),\n\t\t\tTransitRouterCidrName: pulumi.String(\"tf_example\"),\n\t\t\tDescription:           pulumi.String(\"tf_example\"),\n\t\t\tPublishCidrRoute:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterCidr;\nimport com.pulumi.alicloud.cen.TransitRouterCidrArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Instance(\"example\", InstanceArgs.builder()\n            .cenInstanceName(\"tf_example\")\n            .description(\"an example for cen\")\n            .build());\n\n        var exampleTransitRouter = new TransitRouter(\"exampleTransitRouter\", TransitRouterArgs.builder()\n            .transitRouterName(\"tf_example\")\n            .cenId(example.id())\n            .build());\n\n        var exampleTransitRouterCidr = new TransitRouterCidr(\"exampleTransitRouterCidr\", TransitRouterCidrArgs.builder()\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .cidr(\"192.168.0.0/16\")\n            .transitRouterCidrName(\"tf_example\")\n            .description(\"tf_example\")\n            .publishCidrRoute(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: tf_example\n      description: an example for cen\n  exampleTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: example\n    properties:\n      transitRouterName: tf_example\n      cenId: ${example.id}\n  exampleTransitRouterCidr:\n    type: alicloud:cen:TransitRouterCidr\n    name: example\n    properties:\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n      cidr: 192.168.0.0/16\n      transitRouterCidrName: tf_example\n      description: tf_example\n      publishCidrRoute: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Enterprise Network (CEN) Transit Router Cidr can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/transitRouterCidr:TransitRouterCidr example \u003ctransit_router_id\u003e:\u003ctransit_router_cidr_id\u003e\n```\n\n","properties":{"cidr":{"type":"string","description":"The new CIDR block of the transit router.\n"},"description":{"type":"string","description":"The new description of the transit router CIDR block.\nThe description must be 1 to 256 characters in length, and cannot start with http:// or https://. You can also leave this parameter empty.\n"},"publishCidrRoute":{"type":"boolean","description":"Specifies whether to allow the system to automatically add a route that points to the CIDR block to the route table of the transit router.\n"},"transitRouterCidrId":{"type":"string","description":"The ID of the CIDR block.\n"},"transitRouterCidrName":{"type":"string","description":"The new name of the transit router CIDR block.\nThe name must be 1 to 128 characters in length, and cannot start with http:// or https://. You can also leave this parameter empty.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"}},"required":["cidr","transitRouterCidrId","transitRouterId"],"inputProperties":{"cidr":{"type":"string","description":"The new CIDR block of the transit router.\n"},"description":{"type":"string","description":"The new description of the transit router CIDR block.\nThe description must be 1 to 256 characters in length, and cannot start with http:// or https://. You can also leave this parameter empty.\n"},"publishCidrRoute":{"type":"boolean","description":"Specifies whether to allow the system to automatically add a route that points to the CIDR block to the route table of the transit router.\n"},"transitRouterCidrName":{"type":"string","description":"The new name of the transit router CIDR block.\nThe name must be 1 to 128 characters in length, and cannot start with http:// or https://. You can also leave this parameter empty.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n","willReplaceOnChanges":true}},"requiredInputs":["cidr","transitRouterId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterCidr resources.\n","properties":{"cidr":{"type":"string","description":"The new CIDR block of the transit router.\n"},"description":{"type":"string","description":"The new description of the transit router CIDR block.\nThe description must be 1 to 256 characters in length, and cannot start with http:// or https://. You can also leave this parameter empty.\n"},"publishCidrRoute":{"type":"boolean","description":"Specifies whether to allow the system to automatically add a route that points to the CIDR block to the route table of the transit router.\n"},"transitRouterCidrId":{"type":"string","description":"The ID of the CIDR block.\n"},"transitRouterCidrName":{"type":"string","description":"The new name of the transit router CIDR block.\nThe name must be 1 to 128 characters in length, and cannot start with http:// or https://. You can also leave this parameter empty.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/transitRouterEcrAttachment:TransitRouterEcrAttachment":{"description":"Provides a CEN Transit Router Ecr Attachment resource.\n\n\n\nFor information about CEN Transit Router Ecr Attachment and how to use it, see [What is Transit Router Ecr Attachment](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-createtransitrouterecrattachment).\n\n\u003e **NOTE:** Available since v1.235.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst asn = config.get(\"asn\") || \"4200000667\";\nconst defaultO8Hcfx = new alicloud.expressconnect.RouterExpressConnectRouter(\"defaultO8Hcfx\", {\n    alibabaSideAsn: asn,\n    ecrName: name,\n});\nconst defaultQKBiay = new alicloud.cen.Instance(\"defaultQKBiay\", {cenInstanceName: name});\nconst defaultQa94Y1 = new alicloud.cen.TransitRouter(\"defaultQa94Y1\", {\n    cenId: defaultQKBiay.id,\n    transitRouterName: name,\n});\nconst current = alicloud.getAccount({});\nconst defaultedPu6c = new alicloud.expressconnect.RouterTrAssociation(\"defaultedPu6c\", {\n    associationRegionId: \"cn-hangzhou\",\n    ecrId: defaultO8Hcfx.id,\n    cenId: defaultQKBiay.id,\n    transitRouterId: defaultQa94Y1.transitRouterId,\n    transitRouterOwnerId: current.then(current =\u003e current.id),\n});\nconst _default = new alicloud.cen.TransitRouterEcrAttachment(\"default\", {\n    ecrId: defaultO8Hcfx.id,\n    cenId: defaultedPu6c.cenId,\n    transitRouterEcrAttachmentName: name,\n    transitRouterAttachmentDescription: name,\n    transitRouterId: defaultQa94Y1.transitRouterId,\n    ecrOwnerId: current.then(current =\u003e current.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nasn = config.get(\"asn\")\nif asn is None:\n    asn = \"4200000667\"\ndefault_o8_hcfx = alicloud.expressconnect.RouterExpressConnectRouter(\"defaultO8Hcfx\",\n    alibaba_side_asn=asn,\n    ecr_name=name)\ndefault_qk_biay = alicloud.cen.Instance(\"defaultQKBiay\", cen_instance_name=name)\ndefault_qa94_y1 = alicloud.cen.TransitRouter(\"defaultQa94Y1\",\n    cen_id=default_qk_biay.id,\n    transit_router_name=name)\ncurrent = alicloud.get_account()\ndefaulted_pu6c = alicloud.expressconnect.RouterTrAssociation(\"defaultedPu6c\",\n    association_region_id=\"cn-hangzhou\",\n    ecr_id=default_o8_hcfx.id,\n    cen_id=default_qk_biay.id,\n    transit_router_id=default_qa94_y1.transit_router_id,\n    transit_router_owner_id=current.id)\ndefault = alicloud.cen.TransitRouterEcrAttachment(\"default\",\n    ecr_id=default_o8_hcfx.id,\n    cen_id=defaulted_pu6c.cen_id,\n    transit_router_ecr_attachment_name=name,\n    transit_router_attachment_description=name,\n    transit_router_id=default_qa94_y1.transit_router_id,\n    ecr_owner_id=current.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var asn = config.Get(\"asn\") ?? \"4200000667\";\n    var defaultO8Hcfx = new AliCloud.ExpressConnect.RouterExpressConnectRouter(\"defaultO8Hcfx\", new()\n    {\n        AlibabaSideAsn = asn,\n        EcrName = name,\n    });\n\n    var defaultQKBiay = new AliCloud.Cen.Instance(\"defaultQKBiay\", new()\n    {\n        CenInstanceName = name,\n    });\n\n    var defaultQa94Y1 = new AliCloud.Cen.TransitRouter(\"defaultQa94Y1\", new()\n    {\n        CenId = defaultQKBiay.Id,\n        TransitRouterName = name,\n    });\n\n    var current = AliCloud.GetAccount.Invoke();\n\n    var defaultedPu6c = new AliCloud.ExpressConnect.RouterTrAssociation(\"defaultedPu6c\", new()\n    {\n        AssociationRegionId = \"cn-hangzhou\",\n        EcrId = defaultO8Hcfx.Id,\n        CenId = defaultQKBiay.Id,\n        TransitRouterId = defaultQa94Y1.TransitRouterId,\n        TransitRouterOwnerId = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n    });\n\n    var @default = new AliCloud.Cen.TransitRouterEcrAttachment(\"default\", new()\n    {\n        EcrId = defaultO8Hcfx.Id,\n        CenId = defaultedPu6c.CenId,\n        TransitRouterEcrAttachmentName = name,\n        TransitRouterAttachmentDescription = name,\n        TransitRouterId = defaultQa94Y1.TransitRouterId,\n        EcrOwnerId = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tasn := \"4200000667\"\n\t\tif param := cfg.Get(\"asn\"); param != \"\" {\n\t\t\tasn = param\n\t\t}\n\t\tdefaultO8Hcfx, err := expressconnect.NewRouterExpressConnectRouter(ctx, \"defaultO8Hcfx\", \u0026expressconnect.RouterExpressConnectRouterArgs{\n\t\t\tAlibabaSideAsn: pulumi.String(asn),\n\t\t\tEcrName:        pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultQKBiay, err := cen.NewInstance(ctx, \"defaultQKBiay\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultQa94Y1, err := cen.NewTransitRouter(ctx, \"defaultQa94Y1\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId:             defaultQKBiay.ID(),\n\t\t\tTransitRouterName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrent, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultedPu6c, err := expressconnect.NewRouterTrAssociation(ctx, \"defaultedPu6c\", \u0026expressconnect.RouterTrAssociationArgs{\n\t\t\tAssociationRegionId:  pulumi.String(\"cn-hangzhou\"),\n\t\t\tEcrId:                defaultO8Hcfx.ID(),\n\t\t\tCenId:                defaultQKBiay.ID(),\n\t\t\tTransitRouterId:      defaultQa94Y1.TransitRouterId,\n\t\t\tTransitRouterOwnerId: pulumi.String(current.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterEcrAttachment(ctx, \"default\", \u0026cen.TransitRouterEcrAttachmentArgs{\n\t\t\tEcrId:                              defaultO8Hcfx.ID(),\n\t\t\tCenId:                              defaultedPu6c.CenId,\n\t\t\tTransitRouterEcrAttachmentName:     pulumi.String(name),\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(name),\n\t\t\tTransitRouterId:                    defaultQa94Y1.TransitRouterId,\n\t\t\tEcrOwnerId:                         pulumi.String(current.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.RouterExpressConnectRouter;\nimport com.pulumi.alicloud.expressconnect.RouterExpressConnectRouterArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.expressconnect.RouterTrAssociation;\nimport com.pulumi.alicloud.expressconnect.RouterTrAssociationArgs;\nimport com.pulumi.alicloud.cen.TransitRouterEcrAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterEcrAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var asn = config.get(\"asn\").orElse(\"4200000667\");\n        var defaultO8Hcfx = new RouterExpressConnectRouter(\"defaultO8Hcfx\", RouterExpressConnectRouterArgs.builder()\n            .alibabaSideAsn(asn)\n            .ecrName(name)\n            .build());\n\n        var defaultQKBiay = new Instance(\"defaultQKBiay\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .build());\n\n        var defaultQa94Y1 = new TransitRouter(\"defaultQa94Y1\", TransitRouterArgs.builder()\n            .cenId(defaultQKBiay.id())\n            .transitRouterName(name)\n            .build());\n\n        final var current = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var defaultedPu6c = new RouterTrAssociation(\"defaultedPu6c\", RouterTrAssociationArgs.builder()\n            .associationRegionId(\"cn-hangzhou\")\n            .ecrId(defaultO8Hcfx.id())\n            .cenId(defaultQKBiay.id())\n            .transitRouterId(defaultQa94Y1.transitRouterId())\n            .transitRouterOwnerId(current.id())\n            .build());\n\n        var default_ = new TransitRouterEcrAttachment(\"default\", TransitRouterEcrAttachmentArgs.builder()\n            .ecrId(defaultO8Hcfx.id())\n            .cenId(defaultedPu6c.cenId())\n            .transitRouterEcrAttachmentName(name)\n            .transitRouterAttachmentDescription(name)\n            .transitRouterId(defaultQa94Y1.transitRouterId())\n            .ecrOwnerId(current.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  asn:\n    type: string\n    default: '4200000667'\nresources:\n  defaultO8Hcfx:\n    type: alicloud:expressconnect:RouterExpressConnectRouter\n    properties:\n      alibabaSideAsn: ${asn}\n      ecrName: ${name}\n  defaultQKBiay:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: ${name}\n  defaultQa94Y1:\n    type: alicloud:cen:TransitRouter\n    properties:\n      cenId: ${defaultQKBiay.id}\n      transitRouterName: ${name}\n  defaultedPu6c:\n    type: alicloud:expressconnect:RouterTrAssociation\n    properties:\n      associationRegionId: cn-hangzhou\n      ecrId: ${defaultO8Hcfx.id}\n      cenId: ${defaultQKBiay.id}\n      transitRouterId: ${defaultQa94Y1.transitRouterId}\n      transitRouterOwnerId: ${current.id}\n  default:\n    type: alicloud:cen:TransitRouterEcrAttachment\n    properties:\n      ecrId: ${defaultO8Hcfx.id}\n      cenId: ${defaultedPu6c.cenId}\n      transitRouterEcrAttachmentName: ${name}\n      transitRouterAttachmentDescription: ${name}\n      transitRouterId: ${defaultQa94Y1.transitRouterId}\n      ecrOwnerId: ${current.id}\nvariables:\n  current:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCEN Transit Router Ecr Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/transitRouterEcrAttachment:TransitRouterEcrAttachment example \u003cid\u003e\n```\n\n","properties":{"cenId":{"type":"string","description":"CenId\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"ecrId":{"type":"string","description":"EcrId\n"},"ecrOwnerId":{"type":"integer","description":"EcrOwnerId\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterAttachmentDescription":{"type":"string","description":"TransitRouterAttachmentDescription\n"},"transitRouterEcrAttachmentName":{"type":"string","description":"TransitRouterAttachmentName\n"},"transitRouterId":{"type":"string","description":"TransitRouterId\n"}},"required":["createTime","ecrId","status"],"inputProperties":{"cenId":{"type":"string","description":"CenId\n","willReplaceOnChanges":true},"ecrId":{"type":"string","description":"EcrId\n","willReplaceOnChanges":true},"ecrOwnerId":{"type":"integer","description":"EcrOwnerId\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterAttachmentDescription":{"type":"string","description":"TransitRouterAttachmentDescription\n"},"transitRouterEcrAttachmentName":{"type":"string","description":"TransitRouterAttachmentName\n"},"transitRouterId":{"type":"string","description":"TransitRouterId\n","willReplaceOnChanges":true}},"requiredInputs":["ecrId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterEcrAttachment resources.\n","properties":{"cenId":{"type":"string","description":"CenId\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource\n"},"ecrId":{"type":"string","description":"EcrId\n","willReplaceOnChanges":true},"ecrOwnerId":{"type":"integer","description":"EcrOwnerId\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterAttachmentDescription":{"type":"string","description":"TransitRouterAttachmentDescription\n"},"transitRouterEcrAttachmentName":{"type":"string","description":"TransitRouterAttachmentName\n"},"transitRouterId":{"type":"string","description":"TransitRouterId\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/transitRouterGrantAttachment:TransitRouterGrantAttachment":{"description":"Provides a Cloud Enterprise Network (CEN) Transit Router Grant Attachment resource.\n\nFor information about Cloud Enterprise Network (CEN) Transit Router Grant Attachment and how to use it, see [What is Transit Router Grant Attachment](https://www.alibabacloud.com/help/en/cloud-enterprise-network/latest/grantinstancetotransitrouter).\n\n\u003e **NOTE:** Available since v1.187.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getAccount({});\nconst example = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"tf_example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleInstance = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: \"tf_example\",\n    description: \"an example for cen\",\n});\nconst exampleTransitRouterGrantAttachment = new alicloud.cen.TransitRouterGrantAttachment(\"example\", {\n    cenId: exampleInstance.id,\n    cenOwnerId: _default.then(_default =\u003e _default.id),\n    instanceId: example.id,\n    instanceType: \"VPC\",\n    orderType: \"PayByCenOwner\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_account()\nexample = alicloud.vpc.Network(\"example\",\n    vpc_name=\"tf_example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_instance = alicloud.cen.Instance(\"example\",\n    cen_instance_name=\"tf_example\",\n    description=\"an example for cen\")\nexample_transit_router_grant_attachment = alicloud.cen.TransitRouterGrantAttachment(\"example\",\n    cen_id=example_instance.id,\n    cen_owner_id=default.id,\n    instance_id=example.id,\n    instance_type=\"VPC\",\n    order_type=\"PayByCenOwner\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"tf_example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleInstance = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = \"tf_example\",\n        Description = \"an example for cen\",\n    });\n\n    var exampleTransitRouterGrantAttachment = new AliCloud.Cen.TransitRouterGrantAttachment(\"example\", new()\n    {\n        CenId = exampleInstance.Id,\n        CenOwnerId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        InstanceId = example.Id,\n        InstanceType = \"VPC\",\n        OrderType = \"PayByCenOwner\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"tf_example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(\"tf_example\"),\n\t\t\tDescription:     pulumi.String(\"an example for cen\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterGrantAttachment(ctx, \"example\", \u0026cen.TransitRouterGrantAttachmentArgs{\n\t\t\tCenId:        exampleInstance.ID(),\n\t\t\tCenOwnerId:   pulumi.String(_default.Id),\n\t\t\tInstanceId:   example.ID(),\n\t\t\tInstanceType: pulumi.String(\"VPC\"),\n\t\t\tOrderType:    pulumi.String(\"PayByCenOwner\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouterGrantAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterGrantAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .vpcName(\"tf_example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .cenInstanceName(\"tf_example\")\n            .description(\"an example for cen\")\n            .build());\n\n        var exampleTransitRouterGrantAttachment = new TransitRouterGrantAttachment(\"exampleTransitRouterGrantAttachment\", TransitRouterGrantAttachmentArgs.builder()\n            .cenId(exampleInstance.id())\n            .cenOwnerId(default_.id())\n            .instanceId(example.id())\n            .instanceType(\"VPC\")\n            .orderType(\"PayByCenOwner\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: tf_example\n      cidrBlock: 172.17.3.0/24\n  exampleInstance:\n    type: alicloud:cen:Instance\n    name: example\n    properties:\n      cenInstanceName: tf_example\n      description: an example for cen\n  exampleTransitRouterGrantAttachment:\n    type: alicloud:cen:TransitRouterGrantAttachment\n    name: example\n    properties:\n      cenId: ${exampleInstance.id}\n      cenOwnerId: ${default.id}\n      instanceId: ${example.id}\n      instanceType: VPC\n      orderType: PayByCenOwner\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Enterprise Network (CEN) Transit Router Grant Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/transitRouterGrantAttachment:TransitRouterGrantAttachment example \u003cinstance_type\u003e:\u003cinstance_id\u003e:\u003ccen_owner_id\u003e:\u003ccen_id\u003e\n```\n\n","properties":{"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance to which the transit router belongs.\n"},"cenOwnerId":{"type":"string","description":"The ID of the Alibaba Cloud account to which the CEN instance belongs.\n"},"instanceId":{"type":"string","description":"The ID of the network instance.\n"},"instanceType":{"type":"string","description":"The type of the network instance. Valid values: `VPC`, `ExpressConnect`, `VPN`.\n"},"orderType":{"type":"string","description":"The entity that pays the fees of the network instance. Valid values: `PayByResourceOwner`, `PayByCenOwner`.\n"}},"required":["cenId","cenOwnerId","instanceId","instanceType","orderType"],"inputProperties":{"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance to which the transit router belongs.\n","willReplaceOnChanges":true},"cenOwnerId":{"type":"string","description":"The ID of the Alibaba Cloud account to which the CEN instance belongs.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the network instance.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of the network instance. Valid values: `VPC`, `ExpressConnect`, `VPN`.\n","willReplaceOnChanges":true},"orderType":{"type":"string","description":"The entity that pays the fees of the network instance. Valid values: `PayByResourceOwner`, `PayByCenOwner`.\n","willReplaceOnChanges":true}},"requiredInputs":["cenId","cenOwnerId","instanceId","instanceType"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterGrantAttachment resources.\n","properties":{"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance to which the transit router belongs.\n","willReplaceOnChanges":true},"cenOwnerId":{"type":"string","description":"The ID of the Alibaba Cloud account to which the CEN instance belongs.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the network instance.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of the network instance. Valid values: `VPC`, `ExpressConnect`, `VPN`.\n","willReplaceOnChanges":true},"orderType":{"type":"string","description":"The entity that pays the fees of the network instance. Valid values: `PayByResourceOwner`, `PayByCenOwner`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/transitRouterMulticastDomain:TransitRouterMulticastDomain":{"description":"Provides a Cloud Enterprise Network (CEN) Transit Router Multicast Domain resource.\n\n\n\nFor information about Cloud Enterprise Network (CEN) Transit Router Multicast Domain and how to use it, see [What is Transit Router Multicast Domain](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-createtransitroutermulticastdomain).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = new alicloud.cen.Instance(\"example\", {cenInstanceName: name});\nconst exampleTransitRouter = new alicloud.cen.TransitRouter(\"example\", {\n    transitRouterName: name,\n    cenId: example.id,\n    supportMulticast: true,\n});\nconst _default = new alicloud.cen.TransitRouterMulticastDomain(\"default\", {\n    transitRouterId: exampleTransitRouter.transitRouterId,\n    transitRouterMulticastDomainName: name,\n    transitRouterMulticastDomainDescription: name,\n    options: {\n        igmpv2Support: \"disable\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.cen.Instance(\"example\", cen_instance_name=name)\nexample_transit_router = alicloud.cen.TransitRouter(\"example\",\n    transit_router_name=name,\n    cen_id=example.id,\n    support_multicast=True)\ndefault = alicloud.cen.TransitRouterMulticastDomain(\"default\",\n    transit_router_id=example_transit_router.transit_router_id,\n    transit_router_multicast_domain_name=name,\n    transit_router_multicast_domain_description=name,\n    options={\n        \"igmpv2_support\": \"disable\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = name,\n    });\n\n    var exampleTransitRouter = new AliCloud.Cen.TransitRouter(\"example\", new()\n    {\n        TransitRouterName = name,\n        CenId = example.Id,\n        SupportMulticast = true,\n    });\n\n    var @default = new AliCloud.Cen.TransitRouterMulticastDomain(\"default\", new()\n    {\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n        TransitRouterMulticastDomainName = name,\n        TransitRouterMulticastDomainDescription = name,\n        Options = new AliCloud.Cen.Inputs.TransitRouterMulticastDomainOptionsArgs\n        {\n            Igmpv2Support = \"disable\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouter, err := cen.NewTransitRouter(ctx, \"example\", \u0026cen.TransitRouterArgs{\n\t\t\tTransitRouterName: pulumi.String(name),\n\t\t\tCenId:             example.ID(),\n\t\t\tSupportMulticast:  pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterMulticastDomain(ctx, \"default\", \u0026cen.TransitRouterMulticastDomainArgs{\n\t\t\tTransitRouterId:                         exampleTransitRouter.TransitRouterId,\n\t\t\tTransitRouterMulticastDomainName:        pulumi.String(name),\n\t\t\tTransitRouterMulticastDomainDescription: pulumi.String(name),\n\t\t\tOptions: \u0026cen.TransitRouterMulticastDomainOptionsArgs{\n\t\t\t\tIgmpv2Support: pulumi.String(\"disable\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomain;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainArgs;\nimport com.pulumi.alicloud.cen.inputs.TransitRouterMulticastDomainOptionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var example = new Instance(\"example\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .build());\n\n        var exampleTransitRouter = new TransitRouter(\"exampleTransitRouter\", TransitRouterArgs.builder()\n            .transitRouterName(name)\n            .cenId(example.id())\n            .supportMulticast(true)\n            .build());\n\n        var default_ = new TransitRouterMulticastDomain(\"default\", TransitRouterMulticastDomainArgs.builder()\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .transitRouterMulticastDomainName(name)\n            .transitRouterMulticastDomainDescription(name)\n            .options(TransitRouterMulticastDomainOptionsArgs.builder()\n                .igmpv2Support(\"disable\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  example:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: ${name}\n  exampleTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: example\n    properties:\n      transitRouterName: ${name}\n      cenId: ${example.id}\n      supportMulticast: true\n  default:\n    type: alicloud:cen:TransitRouterMulticastDomain\n    properties:\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n      transitRouterMulticastDomainName: ${name}\n      transitRouterMulticastDomainDescription: ${name}\n      options:\n        igmpv2Support: disable\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Enterprise Network (CEN) Transit Router Multicast Domain can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/transitRouterMulticastDomain:TransitRouterMulticastDomain example \u003cid\u003e\n```\n\n","properties":{"options":{"$ref":"#/types/alicloud:cen/TransitRouterMulticastDomainOptions:TransitRouterMulticastDomainOptions","description":"The function options of the multicast domain. See \u003cspan pulumi-lang-nodejs=\"`options`\" pulumi-lang-dotnet=\"`Options`\" pulumi-lang-go=\"`options`\" pulumi-lang-python=\"`options`\" pulumi-lang-yaml=\"`options`\" pulumi-lang-java=\"`options`\"\u003e`options`\u003c/span\u003e below.\n"},"regionId":{"type":"string","description":"(Available since v1.242.0) The region ID of the transit router.\n"},"status":{"type":"string","description":"The status of the Transit Router Multicast Domain.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"transitRouterId":{"type":"string","description":"The ID of the forwarding router instance.\n"},"transitRouterMulticastDomainDescription":{"type":"string","description":"The description of the multicast domain.\n"},"transitRouterMulticastDomainName":{"type":"string","description":"The name of the multicast domain.\n"}},"required":["options","regionId","status","transitRouterId"],"inputProperties":{"options":{"$ref":"#/types/alicloud:cen/TransitRouterMulticastDomainOptions:TransitRouterMulticastDomainOptions","description":"The function options of the multicast domain. See \u003cspan pulumi-lang-nodejs=\"`options`\" pulumi-lang-dotnet=\"`Options`\" pulumi-lang-go=\"`options`\" pulumi-lang-python=\"`options`\" pulumi-lang-yaml=\"`options`\" pulumi-lang-java=\"`options`\"\u003e`options`\u003c/span\u003e below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"transitRouterId":{"type":"string","description":"The ID of the forwarding router instance.\n","willReplaceOnChanges":true},"transitRouterMulticastDomainDescription":{"type":"string","description":"The description of the multicast domain.\n"},"transitRouterMulticastDomainName":{"type":"string","description":"The name of the multicast domain.\n"}},"requiredInputs":["transitRouterId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterMulticastDomain resources.\n","properties":{"options":{"$ref":"#/types/alicloud:cen/TransitRouterMulticastDomainOptions:TransitRouterMulticastDomainOptions","description":"The function options of the multicast domain. See \u003cspan pulumi-lang-nodejs=\"`options`\" pulumi-lang-dotnet=\"`Options`\" pulumi-lang-go=\"`options`\" pulumi-lang-python=\"`options`\" pulumi-lang-yaml=\"`options`\" pulumi-lang-java=\"`options`\"\u003e`options`\u003c/span\u003e below.\n"},"regionId":{"type":"string","description":"(Available since v1.242.0) The region ID of the transit router.\n"},"status":{"type":"string","description":"The status of the Transit Router Multicast Domain.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"transitRouterId":{"type":"string","description":"The ID of the forwarding router instance.\n","willReplaceOnChanges":true},"transitRouterMulticastDomainDescription":{"type":"string","description":"The description of the multicast domain.\n"},"transitRouterMulticastDomainName":{"type":"string","description":"The name of the multicast domain.\n"}},"type":"object"}},"alicloud:cen/transitRouterMulticastDomainAssociation:TransitRouterMulticastDomainAssociation":{"description":"Provides a Cloud Enterprise Network (CEN) Transit Router Multicast Domain Association resource.\n\nFor information about Cloud Enterprise Network (CEN) Transit Router Multicast Domain Association and how to use it, see [What is Transit Router Multicast Domain Association](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-associatetransitroutermulticastdomain).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.cen.getTransitRouterAvailableResources({});\nconst zone = _default.then(_default =\u003e _default.resources?.[0]?.masterZones?.[1]);\nconst example = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: name,\n    cidrBlock: \"192.168.1.0/24\",\n    vpcId: example.id,\n    zoneId: zone,\n});\nconst exampleInstance = new alicloud.cen.Instance(\"example\", {cenInstanceName: name});\nconst exampleTransitRouter = new alicloud.cen.TransitRouter(\"example\", {\n    transitRouterName: name,\n    cenId: exampleInstance.id,\n    supportMulticast: true,\n});\nconst exampleTransitRouterMulticastDomain = new alicloud.cen.TransitRouterMulticastDomain(\"example\", {\n    transitRouterId: exampleTransitRouter.transitRouterId,\n    transitRouterMulticastDomainName: name,\n});\nconst exampleTransitRouterVpcAttachment = new alicloud.cen.TransitRouterVpcAttachment(\"example\", {\n    cenId: exampleTransitRouter.cenId,\n    transitRouterId: exampleTransitRouterMulticastDomain.transitRouterId,\n    vpcId: example.id,\n    zoneMappings: [{\n        zoneId: zone,\n        vswitchId: exampleSwitch.id,\n    }],\n});\nconst exampleTransitRouterMulticastDomainAssociation = new alicloud.cen.TransitRouterMulticastDomainAssociation(\"example\", {\n    transitRouterMulticastDomainId: exampleTransitRouterMulticastDomain.id,\n    transitRouterAttachmentId: exampleTransitRouterVpcAttachment.transitRouterAttachmentId,\n    vswitchId: exampleSwitch.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.cen.get_transit_router_available_resources()\nzone = default.resources[0].master_zones[1]\nexample = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=name,\n    cidr_block=\"192.168.1.0/24\",\n    vpc_id=example.id,\n    zone_id=zone)\nexample_instance = alicloud.cen.Instance(\"example\", cen_instance_name=name)\nexample_transit_router = alicloud.cen.TransitRouter(\"example\",\n    transit_router_name=name,\n    cen_id=example_instance.id,\n    support_multicast=True)\nexample_transit_router_multicast_domain = alicloud.cen.TransitRouterMulticastDomain(\"example\",\n    transit_router_id=example_transit_router.transit_router_id,\n    transit_router_multicast_domain_name=name)\nexample_transit_router_vpc_attachment = alicloud.cen.TransitRouterVpcAttachment(\"example\",\n    cen_id=example_transit_router.cen_id,\n    transit_router_id=example_transit_router_multicast_domain.transit_router_id,\n    vpc_id=example.id,\n    zone_mappings=[{\n        \"zone_id\": zone,\n        \"vswitch_id\": example_switch.id,\n    }])\nexample_transit_router_multicast_domain_association = alicloud.cen.TransitRouterMulticastDomainAssociation(\"example\",\n    transit_router_multicast_domain_id=example_transit_router_multicast_domain.id,\n    transit_router_attachment_id=example_transit_router_vpc_attachment.transit_router_attachment_id,\n    vswitch_id=example_switch.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.Cen.GetTransitRouterAvailableResources.Invoke();\n\n    var zone = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.MasterZones[1]));\n\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"192.168.1.0/24\",\n        VpcId = example.Id,\n        ZoneId = zone,\n    });\n\n    var exampleInstance = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = name,\n    });\n\n    var exampleTransitRouter = new AliCloud.Cen.TransitRouter(\"example\", new()\n    {\n        TransitRouterName = name,\n        CenId = exampleInstance.Id,\n        SupportMulticast = true,\n    });\n\n    var exampleTransitRouterMulticastDomain = new AliCloud.Cen.TransitRouterMulticastDomain(\"example\", new()\n    {\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n        TransitRouterMulticastDomainName = name,\n    });\n\n    var exampleTransitRouterVpcAttachment = new AliCloud.Cen.TransitRouterVpcAttachment(\"example\", new()\n    {\n        CenId = exampleTransitRouter.CenId,\n        TransitRouterId = exampleTransitRouterMulticastDomain.TransitRouterId,\n        VpcId = example.Id,\n        ZoneMappings = new[]\n        {\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                ZoneId = zone,\n                VswitchId = exampleSwitch.Id,\n            },\n        },\n    });\n\n    var exampleTransitRouterMulticastDomainAssociation = new AliCloud.Cen.TransitRouterMulticastDomainAssociation(\"example\", new()\n    {\n        TransitRouterMulticastDomainId = exampleTransitRouterMulticastDomain.Id,\n        TransitRouterAttachmentId = exampleTransitRouterVpcAttachment.TransitRouterAttachmentId,\n        VswitchId = exampleSwitch.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cen.GetTransitRouterAvailableResources(ctx, \u0026cen.GetTransitRouterAvailableResourcesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tzone := _default.Resources[0].MasterZones[1]\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.1.0/24\"),\n\t\t\tVpcId:       example.ID(),\n\t\t\tZoneId:      pulumi.String(zone),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouter, err := cen.NewTransitRouter(ctx, \"example\", \u0026cen.TransitRouterArgs{\n\t\t\tTransitRouterName: pulumi.String(name),\n\t\t\tCenId:             exampleInstance.ID(),\n\t\t\tSupportMulticast:  pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouterMulticastDomain, err := cen.NewTransitRouterMulticastDomain(ctx, \"example\", \u0026cen.TransitRouterMulticastDomainArgs{\n\t\t\tTransitRouterId:                  exampleTransitRouter.TransitRouterId,\n\t\t\tTransitRouterMulticastDomainName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouterVpcAttachment, err := cen.NewTransitRouterVpcAttachment(ctx, \"example\", \u0026cen.TransitRouterVpcAttachmentArgs{\n\t\t\tCenId:           exampleTransitRouter.CenId,\n\t\t\tTransitRouterId: exampleTransitRouterMulticastDomain.TransitRouterId,\n\t\t\tVpcId:           example.ID(),\n\t\t\tZoneMappings: cen.TransitRouterVpcAttachmentZoneMappingArray{\n\t\t\t\t\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\n\t\t\t\t\tZoneId:    pulumi.String(zone),\n\t\t\t\t\tVswitchId: exampleSwitch.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterMulticastDomainAssociation(ctx, \"example\", \u0026cen.TransitRouterMulticastDomainAssociationArgs{\n\t\t\tTransitRouterMulticastDomainId: exampleTransitRouterMulticastDomain.ID(),\n\t\t\tTransitRouterAttachmentId:      exampleTransitRouterVpcAttachment.TransitRouterAttachmentId,\n\t\t\tVswitchId:                      exampleSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterAvailableResourcesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomain;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachmentArgs;\nimport com.pulumi.alicloud.cen.inputs.TransitRouterVpcAttachmentZoneMappingArgs;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainAssociation;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = CenFunctions.getTransitRouterAvailableResources(GetTransitRouterAvailableResourcesArgs.builder()\n            .build());\n\n        final var zone = default_.resources()[0].masterZones()[1];\n\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"192.168.1.0/24\")\n            .vpcId(example.id())\n            .zoneId(zone)\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .build());\n\n        var exampleTransitRouter = new TransitRouter(\"exampleTransitRouter\", TransitRouterArgs.builder()\n            .transitRouterName(name)\n            .cenId(exampleInstance.id())\n            .supportMulticast(true)\n            .build());\n\n        var exampleTransitRouterMulticastDomain = new TransitRouterMulticastDomain(\"exampleTransitRouterMulticastDomain\", TransitRouterMulticastDomainArgs.builder()\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .transitRouterMulticastDomainName(name)\n            .build());\n\n        var exampleTransitRouterVpcAttachment = new TransitRouterVpcAttachment(\"exampleTransitRouterVpcAttachment\", TransitRouterVpcAttachmentArgs.builder()\n            .cenId(exampleTransitRouter.cenId())\n            .transitRouterId(exampleTransitRouterMulticastDomain.transitRouterId())\n            .vpcId(example.id())\n            .zoneMappings(TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                .zoneId(zone)\n                .vswitchId(exampleSwitch.id())\n                .build())\n            .build());\n\n        var exampleTransitRouterMulticastDomainAssociation = new TransitRouterMulticastDomainAssociation(\"exampleTransitRouterMulticastDomainAssociation\", TransitRouterMulticastDomainAssociationArgs.builder()\n            .transitRouterMulticastDomainId(exampleTransitRouterMulticastDomain.id())\n            .transitRouterAttachmentId(exampleTransitRouterVpcAttachment.transitRouterAttachmentId())\n            .vswitchId(exampleSwitch.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 192.168.1.0/24\n      vpcId: ${example.id}\n      zoneId: ${zone}\n  exampleInstance:\n    type: alicloud:cen:Instance\n    name: example\n    properties:\n      cenInstanceName: ${name}\n  exampleTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: example\n    properties:\n      transitRouterName: ${name}\n      cenId: ${exampleInstance.id}\n      supportMulticast: true\n  exampleTransitRouterMulticastDomain:\n    type: alicloud:cen:TransitRouterMulticastDomain\n    name: example\n    properties:\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n      transitRouterMulticastDomainName: ${name}\n  exampleTransitRouterVpcAttachment:\n    type: alicloud:cen:TransitRouterVpcAttachment\n    name: example\n    properties:\n      cenId: ${exampleTransitRouter.cenId}\n      transitRouterId: ${exampleTransitRouterMulticastDomain.transitRouterId}\n      vpcId: ${example.id}\n      zoneMappings:\n        - zoneId: ${zone}\n          vswitchId: ${exampleSwitch.id}\n  exampleTransitRouterMulticastDomainAssociation:\n    type: alicloud:cen:TransitRouterMulticastDomainAssociation\n    name: example\n    properties:\n      transitRouterMulticastDomainId: ${exampleTransitRouterMulticastDomain.id}\n      transitRouterAttachmentId: ${exampleTransitRouterVpcAttachment.transitRouterAttachmentId}\n      vswitchId: ${exampleSwitch.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterAvailableResources\n      arguments: {}\n  zone: ${default.resources[0].masterZones[1]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Enterprise Network (CEN) Transit Router Multicast Domain Association can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/transitRouterMulticastDomainAssociation:TransitRouterMulticastDomainAssociation example \u003ctransit_router_multicast_domain_id\u003e:\u003ctransit_router_attachment_id\u003e:\u003cvswitch_id\u003e\n```\n\n","properties":{"status":{"type":"string","description":"The status of the Transit Router Multicast Domain Association.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the VPC connection.\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n"}},"required":["status","transitRouterAttachmentId","transitRouterMulticastDomainId","vswitchId"],"inputProperties":{"transitRouterAttachmentId":{"type":"string","description":"The ID of the VPC connection.\n","willReplaceOnChanges":true},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n","willReplaceOnChanges":true}},"requiredInputs":["transitRouterAttachmentId","transitRouterMulticastDomainId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterMulticastDomainAssociation resources.\n","properties":{"status":{"type":"string","description":"The status of the Transit Router Multicast Domain Association.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the VPC connection.\n","willReplaceOnChanges":true},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/transitRouterMulticastDomainMember:TransitRouterMulticastDomainMember":{"description":"Provides a Cen Transit Router Multicast Domain Member resource.\n\nFor information about Cen Transit Router Multicast Domain Member and how to use it, see [What is Transit Router Multicast Domain Member](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-registertransitroutermulticastgroupmembers).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.cen.getTransitRouterAvailableResources({});\nconst zone = _default.then(_default =\u003e _default.resources?.[0]?.masterZones?.[1]);\nconst example = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: name,\n    cidrBlock: \"192.168.1.0/24\",\n    vpcId: example.id,\n    zoneId: zone,\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: name,\n    vpcId: example.id,\n});\nconst exampleEcsNetworkInterface = new alicloud.ecs.EcsNetworkInterface(\"example\", {\n    networkInterfaceName: name,\n    vswitchId: exampleSwitch.id,\n    primaryIpAddress: exampleSwitch.cidrBlock.apply(cidrBlock =\u003e std.cidrhostOutput({\n        input: cidrBlock,\n        host: 100,\n    })).apply(invoke =\u003e invoke.result),\n    securityGroupIds: [exampleSecurityGroup.id],\n});\nconst exampleInstance = new alicloud.cen.Instance(\"example\", {cenInstanceName: name});\nconst exampleTransitRouter = new alicloud.cen.TransitRouter(\"example\", {\n    transitRouterName: name,\n    cenId: exampleInstance.id,\n    supportMulticast: true,\n});\nconst exampleTransitRouterMulticastDomain = new alicloud.cen.TransitRouterMulticastDomain(\"example\", {\n    transitRouterId: exampleTransitRouter.transitRouterId,\n    transitRouterMulticastDomainName: name,\n});\nconst exampleTransitRouterVpcAttachment = new alicloud.cen.TransitRouterVpcAttachment(\"example\", {\n    cenId: exampleTransitRouter.cenId,\n    transitRouterId: exampleTransitRouterMulticastDomain.transitRouterId,\n    vpcId: example.id,\n    zoneMappings: [{\n        zoneId: zone,\n        vswitchId: exampleSwitch.id,\n    }],\n});\nconst exampleTransitRouterMulticastDomainAssociation = new alicloud.cen.TransitRouterMulticastDomainAssociation(\"example\", {\n    transitRouterMulticastDomainId: exampleTransitRouterMulticastDomain.id,\n    transitRouterAttachmentId: exampleTransitRouterVpcAttachment.transitRouterAttachmentId,\n    vswitchId: exampleSwitch.id,\n});\nconst exampleTransitRouterMulticastDomainMember = new alicloud.cen.TransitRouterMulticastDomainMember(\"example\", {\n    vpcId: example.id,\n    transitRouterMulticastDomainId: exampleTransitRouterMulticastDomainAssociation.transitRouterMulticastDomainId,\n    networkInterfaceId: exampleEcsNetworkInterface.id,\n    groupIpAddress: \"239.1.1.1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.cen.get_transit_router_available_resources()\nzone = default.resources[0].master_zones[1]\nexample = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=name,\n    cidr_block=\"192.168.1.0/24\",\n    vpc_id=example.id,\n    zone_id=zone)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=name,\n    vpc_id=example.id)\nexample_ecs_network_interface = alicloud.ecs.EcsNetworkInterface(\"example\",\n    network_interface_name=name,\n    vswitch_id=example_switch.id,\n    primary_ip_address=example_switch.cidr_block.apply(lambda cidr_block: std.cidrhost_output(input=cidr_block,\n        host=100)).apply(lambda invoke: invoke.result),\n    security_group_ids=[example_security_group.id])\nexample_instance = alicloud.cen.Instance(\"example\", cen_instance_name=name)\nexample_transit_router = alicloud.cen.TransitRouter(\"example\",\n    transit_router_name=name,\n    cen_id=example_instance.id,\n    support_multicast=True)\nexample_transit_router_multicast_domain = alicloud.cen.TransitRouterMulticastDomain(\"example\",\n    transit_router_id=example_transit_router.transit_router_id,\n    transit_router_multicast_domain_name=name)\nexample_transit_router_vpc_attachment = alicloud.cen.TransitRouterVpcAttachment(\"example\",\n    cen_id=example_transit_router.cen_id,\n    transit_router_id=example_transit_router_multicast_domain.transit_router_id,\n    vpc_id=example.id,\n    zone_mappings=[{\n        \"zone_id\": zone,\n        \"vswitch_id\": example_switch.id,\n    }])\nexample_transit_router_multicast_domain_association = alicloud.cen.TransitRouterMulticastDomainAssociation(\"example\",\n    transit_router_multicast_domain_id=example_transit_router_multicast_domain.id,\n    transit_router_attachment_id=example_transit_router_vpc_attachment.transit_router_attachment_id,\n    vswitch_id=example_switch.id)\nexample_transit_router_multicast_domain_member = alicloud.cen.TransitRouterMulticastDomainMember(\"example\",\n    vpc_id=example.id,\n    transit_router_multicast_domain_id=example_transit_router_multicast_domain_association.transit_router_multicast_domain_id,\n    network_interface_id=example_ecs_network_interface.id,\n    group_ip_address=\"239.1.1.1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.Cen.GetTransitRouterAvailableResources.Invoke();\n\n    var zone = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.MasterZones[1]));\n\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"192.168.1.0/24\",\n        VpcId = example.Id,\n        ZoneId = zone,\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = name,\n        VpcId = example.Id,\n    });\n\n    var exampleEcsNetworkInterface = new AliCloud.Ecs.EcsNetworkInterface(\"example\", new()\n    {\n        NetworkInterfaceName = name,\n        VswitchId = exampleSwitch.Id,\n        PrimaryIpAddress = exampleSwitch.CidrBlock.Apply(cidrBlock =\u003e Std.Cidrhost.Invoke(new()\n        {\n            Input = cidrBlock,\n            Host = 100,\n        })).Apply(invoke =\u003e invoke.Result),\n        SecurityGroupIds = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n    });\n\n    var exampleInstance = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = name,\n    });\n\n    var exampleTransitRouter = new AliCloud.Cen.TransitRouter(\"example\", new()\n    {\n        TransitRouterName = name,\n        CenId = exampleInstance.Id,\n        SupportMulticast = true,\n    });\n\n    var exampleTransitRouterMulticastDomain = new AliCloud.Cen.TransitRouterMulticastDomain(\"example\", new()\n    {\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n        TransitRouterMulticastDomainName = name,\n    });\n\n    var exampleTransitRouterVpcAttachment = new AliCloud.Cen.TransitRouterVpcAttachment(\"example\", new()\n    {\n        CenId = exampleTransitRouter.CenId,\n        TransitRouterId = exampleTransitRouterMulticastDomain.TransitRouterId,\n        VpcId = example.Id,\n        ZoneMappings = new[]\n        {\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                ZoneId = zone,\n                VswitchId = exampleSwitch.Id,\n            },\n        },\n    });\n\n    var exampleTransitRouterMulticastDomainAssociation = new AliCloud.Cen.TransitRouterMulticastDomainAssociation(\"example\", new()\n    {\n        TransitRouterMulticastDomainId = exampleTransitRouterMulticastDomain.Id,\n        TransitRouterAttachmentId = exampleTransitRouterVpcAttachment.TransitRouterAttachmentId,\n        VswitchId = exampleSwitch.Id,\n    });\n\n    var exampleTransitRouterMulticastDomainMember = new AliCloud.Cen.TransitRouterMulticastDomainMember(\"example\", new()\n    {\n        VpcId = example.Id,\n        TransitRouterMulticastDomainId = exampleTransitRouterMulticastDomainAssociation.TransitRouterMulticastDomainId,\n        NetworkInterfaceId = exampleEcsNetworkInterface.Id,\n        GroupIpAddress = \"239.1.1.1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"tf_example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := cen.GetTransitRouterAvailableResources(ctx, \u0026cen.GetTransitRouterAvailableResourcesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\nzone := _default.Resources[0].MasterZones[1];\nexample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\nexampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.1.0/24\"),\nVpcId: example.ID(),\nZoneId: pulumi.String(zone),\n})\nif err != nil {\nreturn err\n}\nexampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(name),\nVpcId: example.ID(),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrhost, err := std.Cidrhost(ctx, \u0026std.CidrhostArgs{\nInput: cidrBlock,\nHost: 100,\n}, nil)\nif err != nil {\nreturn err\n}\nexampleEcsNetworkInterface, err := ecs.NewEcsNetworkInterface(ctx, \"example\", \u0026ecs.EcsNetworkInterfaceArgs{\nNetworkInterfaceName: pulumi.String(name),\nVswitchId: exampleSwitch.ID(),\nPrimaryIpAddress: pulumi.String(exampleSwitch.CidrBlock.ApplyT(func(cidrBlock string) (std.CidrhostResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrhostResultOutput).ApplyT(func(invoke std.CidrhostResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\nSecurityGroupIds: pulumi.StringArray{\nexampleSecurityGroup.ID(),\n},\n})\nif err != nil {\nreturn err\n}\nexampleInstance, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\nCenInstanceName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\nexampleTransitRouter, err := cen.NewTransitRouter(ctx, \"example\", \u0026cen.TransitRouterArgs{\nTransitRouterName: pulumi.String(name),\nCenId: exampleInstance.ID(),\nSupportMulticast: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\nexampleTransitRouterMulticastDomain, err := cen.NewTransitRouterMulticastDomain(ctx, \"example\", \u0026cen.TransitRouterMulticastDomainArgs{\nTransitRouterId: exampleTransitRouter.TransitRouterId,\nTransitRouterMulticastDomainName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\nexampleTransitRouterVpcAttachment, err := cen.NewTransitRouterVpcAttachment(ctx, \"example\", \u0026cen.TransitRouterVpcAttachmentArgs{\nCenId: exampleTransitRouter.CenId,\nTransitRouterId: exampleTransitRouterMulticastDomain.TransitRouterId,\nVpcId: example.ID(),\nZoneMappings: cen.TransitRouterVpcAttachmentZoneMappingArray{\n\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\nZoneId: pulumi.String(zone),\nVswitchId: exampleSwitch.ID(),\n},\n},\n})\nif err != nil {\nreturn err\n}\nexampleTransitRouterMulticastDomainAssociation, err := cen.NewTransitRouterMulticastDomainAssociation(ctx, \"example\", \u0026cen.TransitRouterMulticastDomainAssociationArgs{\nTransitRouterMulticastDomainId: exampleTransitRouterMulticastDomain.ID(),\nTransitRouterAttachmentId: exampleTransitRouterVpcAttachment.TransitRouterAttachmentId,\nVswitchId: exampleSwitch.ID(),\n})\nif err != nil {\nreturn err\n}\n_, err = cen.NewTransitRouterMulticastDomainMember(ctx, \"example\", \u0026cen.TransitRouterMulticastDomainMemberArgs{\nVpcId: example.ID(),\nTransitRouterMulticastDomainId: exampleTransitRouterMulticastDomainAssociation.TransitRouterMulticastDomainId,\nNetworkInterfaceId: exampleEcsNetworkInterface.ID(),\nGroupIpAddress: pulumi.String(\"239.1.1.1\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterAvailableResourcesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterface;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfaceArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrhostArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomain;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachmentArgs;\nimport com.pulumi.alicloud.cen.inputs.TransitRouterVpcAttachmentZoneMappingArgs;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainAssociation;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainAssociationArgs;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainMember;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = CenFunctions.getTransitRouterAvailableResources(GetTransitRouterAvailableResourcesArgs.builder()\n            .build());\n\n        final var zone = default_.resources()[0].masterZones()[1];\n\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"192.168.1.0/24\")\n            .vpcId(example.id())\n            .zoneId(zone)\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(example.id())\n            .build());\n\n        var exampleEcsNetworkInterface = new EcsNetworkInterface(\"exampleEcsNetworkInterface\", EcsNetworkInterfaceArgs.builder()\n            .networkInterfaceName(name)\n            .vswitchId(exampleSwitch.id())\n            .primaryIpAddress(exampleSwitch.cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrhost(CidrhostArgs.builder()\n                .input(_cidrBlock)\n                .host(100)\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .securityGroupIds(exampleSecurityGroup.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .build());\n\n        var exampleTransitRouter = new TransitRouter(\"exampleTransitRouter\", TransitRouterArgs.builder()\n            .transitRouterName(name)\n            .cenId(exampleInstance.id())\n            .supportMulticast(true)\n            .build());\n\n        var exampleTransitRouterMulticastDomain = new TransitRouterMulticastDomain(\"exampleTransitRouterMulticastDomain\", TransitRouterMulticastDomainArgs.builder()\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .transitRouterMulticastDomainName(name)\n            .build());\n\n        var exampleTransitRouterVpcAttachment = new TransitRouterVpcAttachment(\"exampleTransitRouterVpcAttachment\", TransitRouterVpcAttachmentArgs.builder()\n            .cenId(exampleTransitRouter.cenId())\n            .transitRouterId(exampleTransitRouterMulticastDomain.transitRouterId())\n            .vpcId(example.id())\n            .zoneMappings(TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                .zoneId(zone)\n                .vswitchId(exampleSwitch.id())\n                .build())\n            .build());\n\n        var exampleTransitRouterMulticastDomainAssociation = new TransitRouterMulticastDomainAssociation(\"exampleTransitRouterMulticastDomainAssociation\", TransitRouterMulticastDomainAssociationArgs.builder()\n            .transitRouterMulticastDomainId(exampleTransitRouterMulticastDomain.id())\n            .transitRouterAttachmentId(exampleTransitRouterVpcAttachment.transitRouterAttachmentId())\n            .vswitchId(exampleSwitch.id())\n            .build());\n\n        var exampleTransitRouterMulticastDomainMember = new TransitRouterMulticastDomainMember(\"exampleTransitRouterMulticastDomainMember\", TransitRouterMulticastDomainMemberArgs.builder()\n            .vpcId(example.id())\n            .transitRouterMulticastDomainId(exampleTransitRouterMulticastDomainAssociation.transitRouterMulticastDomainId())\n            .networkInterfaceId(exampleEcsNetworkInterface.id())\n            .groupIpAddress(\"239.1.1.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 192.168.1.0/24\n      vpcId: ${example.id}\n      zoneId: ${zone}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: ${name}\n      vpcId: ${example.id}\n  exampleEcsNetworkInterface:\n    type: alicloud:ecs:EcsNetworkInterface\n    name: example\n    properties:\n      networkInterfaceName: ${name}\n      vswitchId: ${exampleSwitch.id}\n      primaryIpAddress:\n        fn::invoke:\n          function: std:cidrhost\n          arguments:\n            input: ${exampleSwitch.cidrBlock}\n            host: 100\n          return: result\n      securityGroupIds:\n        - ${exampleSecurityGroup.id}\n  exampleInstance:\n    type: alicloud:cen:Instance\n    name: example\n    properties:\n      cenInstanceName: ${name}\n  exampleTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: example\n    properties:\n      transitRouterName: ${name}\n      cenId: ${exampleInstance.id}\n      supportMulticast: true\n  exampleTransitRouterMulticastDomain:\n    type: alicloud:cen:TransitRouterMulticastDomain\n    name: example\n    properties:\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n      transitRouterMulticastDomainName: ${name}\n  exampleTransitRouterVpcAttachment:\n    type: alicloud:cen:TransitRouterVpcAttachment\n    name: example\n    properties:\n      cenId: ${exampleTransitRouter.cenId}\n      transitRouterId: ${exampleTransitRouterMulticastDomain.transitRouterId}\n      vpcId: ${example.id}\n      zoneMappings:\n        - zoneId: ${zone}\n          vswitchId: ${exampleSwitch.id}\n  exampleTransitRouterMulticastDomainAssociation:\n    type: alicloud:cen:TransitRouterMulticastDomainAssociation\n    name: example\n    properties:\n      transitRouterMulticastDomainId: ${exampleTransitRouterMulticastDomain.id}\n      transitRouterAttachmentId: ${exampleTransitRouterVpcAttachment.transitRouterAttachmentId}\n      vswitchId: ${exampleSwitch.id}\n  exampleTransitRouterMulticastDomainMember:\n    type: alicloud:cen:TransitRouterMulticastDomainMember\n    name: example\n    properties:\n      vpcId: ${example.id}\n      transitRouterMulticastDomainId: ${exampleTransitRouterMulticastDomainAssociation.transitRouterMulticastDomainId}\n      networkInterfaceId: ${exampleEcsNetworkInterface.id}\n      groupIpAddress: 239.1.1.1\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterAvailableResources\n      arguments: {}\n  zone: ${default.resources[0].masterZones[1]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCen Transit Router Multicast Domain Member can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_cen_transit_router_multicast_domain_member.example \u003ctransit_router_multicast_domain_id\u003e:\u003cgroup_ip_address\u003e:\u003cnetwork_interface_id\u003e\n```\n\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether only to precheck the request.\n"},"groupIpAddress":{"type":"string","description":"The IP address of the multicast group to which the multicast member belongs. If the multicast group you specified does not exist in the current multicast domain, the system will automatically create a new multicast group for you in the current multicast domain.\n"},"networkInterfaceId":{"type":"string","description":"The ID of the ENI.\n"},"status":{"type":"string","description":"The status of the Transit Router Multicast Domain Member.\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain to which the multicast member belongs.\n"},"vpcId":{"type":"string","description":"The VPC to which the ENI of the multicast member belongs. This field is mandatory for VPCs owned by another accounts.\n"}},"required":["groupIpAddress","networkInterfaceId","status","transitRouterMulticastDomainId","vpcId"],"inputProperties":{"dryRun":{"type":"boolean","description":"Specifies whether only to precheck the request.\n"},"groupIpAddress":{"type":"string","description":"The IP address of the multicast group to which the multicast member belongs. If the multicast group you specified does not exist in the current multicast domain, the system will automatically create a new multicast group for you in the current multicast domain.\n","willReplaceOnChanges":true},"networkInterfaceId":{"type":"string","description":"The ID of the ENI.\n","willReplaceOnChanges":true},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain to which the multicast member belongs.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VPC to which the ENI of the multicast member belongs. This field is mandatory for VPCs owned by another accounts.\n","willReplaceOnChanges":true}},"requiredInputs":["groupIpAddress","networkInterfaceId","transitRouterMulticastDomainId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterMulticastDomainMember resources.\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether only to precheck the request.\n"},"groupIpAddress":{"type":"string","description":"The IP address of the multicast group to which the multicast member belongs. If the multicast group you specified does not exist in the current multicast domain, the system will automatically create a new multicast group for you in the current multicast domain.\n","willReplaceOnChanges":true},"networkInterfaceId":{"type":"string","description":"The ID of the ENI.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Transit Router Multicast Domain Member.\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain to which the multicast member belongs.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VPC to which the ENI of the multicast member belongs. This field is mandatory for VPCs owned by another accounts.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/transitRouterMulticastDomainPeerMember:TransitRouterMulticastDomainPeerMember":{"description":"Provides a Cen Transit Router Multicast Domain Peer Member resource.\n\nFor information about Cen Transit Router Multicast Domain Peer Member and how to use it, see [What is Transit Router Multicast Domain Peer Member](https://www.alibabacloud.com/help/en/cloud-enterprise-network/latest/api-cbn-2017-09-12-deregistertransitroutermulticastgroupmembers).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = new alicloud.cen.Instance(\"default\", {cenInstanceName: name});\nconst defaultBandwidthPackage = new alicloud.cen.BandwidthPackage(\"default\", {\n    bandwidth: 5,\n    cenBandwidthPackageName: name,\n    geographicRegionAId: \"China\",\n    geographicRegionBId: \"China\",\n});\nconst defaultBandwidthPackageAttachment = new alicloud.cen.BandwidthPackageAttachment(\"default\", {\n    instanceId: _default.id,\n    bandwidthPackageId: defaultBandwidthPackage.id,\n});\nconst defaultTransitRouter = new alicloud.cen.TransitRouter(\"default\", {\n    cenId: defaultBandwidthPackageAttachment.instanceId,\n    supportMulticast: true,\n});\nconst peer = new alicloud.cen.TransitRouter(\"peer\", {\n    cenId: defaultBandwidthPackageAttachment.instanceId,\n    supportMulticast: true,\n});\nconst defaultTransitRouterPeerAttachment = new alicloud.cen.TransitRouterPeerAttachment(\"default\", {\n    cenId: defaultBandwidthPackageAttachment.instanceId,\n    transitRouterId: defaultTransitRouter.transitRouterId,\n    peerTransitRouterId: peer.transitRouterId,\n    peerTransitRouterRegionId: \"cn-qingdao\",\n    cenBandwidthPackageId: defaultBandwidthPackageAttachment.bandwidthPackageId,\n    bandwidth: 5,\n    transitRouterAttachmentDescription: name,\n    transitRouterAttachmentName: name,\n});\nconst defaultTransitRouterMulticastDomain = new alicloud.cen.TransitRouterMulticastDomain(\"default\", {\n    transitRouterId: defaultTransitRouterPeerAttachment.transitRouterId,\n    transitRouterMulticastDomainName: name,\n    transitRouterMulticastDomainDescription: name,\n});\nconst peerTransitRouterMulticastDomain = new alicloud.cen.TransitRouterMulticastDomain(\"peer\", {\n    transitRouterId: defaultTransitRouterPeerAttachment.peerTransitRouterId,\n    transitRouterMulticastDomainName: name,\n    transitRouterMulticastDomainDescription: name,\n});\nconst defaultTransitRouterMulticastDomainPeerMember = new alicloud.cen.TransitRouterMulticastDomainPeerMember(\"default\", {\n    transitRouterMulticastDomainId: defaultTransitRouterMulticastDomain.id,\n    peerTransitRouterMulticastDomainId: peerTransitRouterMulticastDomain.id,\n    groupIpAddress: \"224.1.0.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.cen.Instance(\"default\", cen_instance_name=name)\ndefault_bandwidth_package = alicloud.cen.BandwidthPackage(\"default\",\n    bandwidth=5,\n    cen_bandwidth_package_name=name,\n    geographic_region_a_id=\"China\",\n    geographic_region_b_id=\"China\")\ndefault_bandwidth_package_attachment = alicloud.cen.BandwidthPackageAttachment(\"default\",\n    instance_id=default.id,\n    bandwidth_package_id=default_bandwidth_package.id)\ndefault_transit_router = alicloud.cen.TransitRouter(\"default\",\n    cen_id=default_bandwidth_package_attachment.instance_id,\n    support_multicast=True)\npeer = alicloud.cen.TransitRouter(\"peer\",\n    cen_id=default_bandwidth_package_attachment.instance_id,\n    support_multicast=True)\ndefault_transit_router_peer_attachment = alicloud.cen.TransitRouterPeerAttachment(\"default\",\n    cen_id=default_bandwidth_package_attachment.instance_id,\n    transit_router_id=default_transit_router.transit_router_id,\n    peer_transit_router_id=peer.transit_router_id,\n    peer_transit_router_region_id=\"cn-qingdao\",\n    cen_bandwidth_package_id=default_bandwidth_package_attachment.bandwidth_package_id,\n    bandwidth=5,\n    transit_router_attachment_description=name,\n    transit_router_attachment_name=name)\ndefault_transit_router_multicast_domain = alicloud.cen.TransitRouterMulticastDomain(\"default\",\n    transit_router_id=default_transit_router_peer_attachment.transit_router_id,\n    transit_router_multicast_domain_name=name,\n    transit_router_multicast_domain_description=name)\npeer_transit_router_multicast_domain = alicloud.cen.TransitRouterMulticastDomain(\"peer\",\n    transit_router_id=default_transit_router_peer_attachment.peer_transit_router_id,\n    transit_router_multicast_domain_name=name,\n    transit_router_multicast_domain_description=name)\ndefault_transit_router_multicast_domain_peer_member = alicloud.cen.TransitRouterMulticastDomainPeerMember(\"default\",\n    transit_router_multicast_domain_id=default_transit_router_multicast_domain.id,\n    peer_transit_router_multicast_domain_id=peer_transit_router_multicast_domain.id,\n    group_ip_address=\"224.1.0.0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        CenInstanceName = name,\n    });\n\n    var defaultBandwidthPackage = new AliCloud.Cen.BandwidthPackage(\"default\", new()\n    {\n        Bandwidth = 5,\n        CenBandwidthPackageName = name,\n        GeographicRegionAId = \"China\",\n        GeographicRegionBId = \"China\",\n    });\n\n    var defaultBandwidthPackageAttachment = new AliCloud.Cen.BandwidthPackageAttachment(\"default\", new()\n    {\n        InstanceId = @default.Id,\n        BandwidthPackageId = defaultBandwidthPackage.Id,\n    });\n\n    var defaultTransitRouter = new AliCloud.Cen.TransitRouter(\"default\", new()\n    {\n        CenId = defaultBandwidthPackageAttachment.InstanceId,\n        SupportMulticast = true,\n    });\n\n    var peer = new AliCloud.Cen.TransitRouter(\"peer\", new()\n    {\n        CenId = defaultBandwidthPackageAttachment.InstanceId,\n        SupportMulticast = true,\n    });\n\n    var defaultTransitRouterPeerAttachment = new AliCloud.Cen.TransitRouterPeerAttachment(\"default\", new()\n    {\n        CenId = defaultBandwidthPackageAttachment.InstanceId,\n        TransitRouterId = defaultTransitRouter.TransitRouterId,\n        PeerTransitRouterId = peer.TransitRouterId,\n        PeerTransitRouterRegionId = \"cn-qingdao\",\n        CenBandwidthPackageId = defaultBandwidthPackageAttachment.BandwidthPackageId,\n        Bandwidth = 5,\n        TransitRouterAttachmentDescription = name,\n        TransitRouterAttachmentName = name,\n    });\n\n    var defaultTransitRouterMulticastDomain = new AliCloud.Cen.TransitRouterMulticastDomain(\"default\", new()\n    {\n        TransitRouterId = defaultTransitRouterPeerAttachment.TransitRouterId,\n        TransitRouterMulticastDomainName = name,\n        TransitRouterMulticastDomainDescription = name,\n    });\n\n    var peerTransitRouterMulticastDomain = new AliCloud.Cen.TransitRouterMulticastDomain(\"peer\", new()\n    {\n        TransitRouterId = defaultTransitRouterPeerAttachment.PeerTransitRouterId,\n        TransitRouterMulticastDomainName = name,\n        TransitRouterMulticastDomainDescription = name,\n    });\n\n    var defaultTransitRouterMulticastDomainPeerMember = new AliCloud.Cen.TransitRouterMulticastDomainPeerMember(\"default\", new()\n    {\n        TransitRouterMulticastDomainId = defaultTransitRouterMulticastDomain.Id,\n        PeerTransitRouterMulticastDomainId = peerTransitRouterMulticastDomain.Id,\n        GroupIpAddress = \"224.1.0.0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackage, err := cen.NewBandwidthPackage(ctx, \"default\", \u0026cen.BandwidthPackageArgs{\n\t\t\tBandwidth:               pulumi.Int(5),\n\t\t\tCenBandwidthPackageName: pulumi.String(name),\n\t\t\tGeographicRegionAId:     pulumi.String(\"China\"),\n\t\t\tGeographicRegionBId:     pulumi.String(\"China\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackageAttachment, err := cen.NewBandwidthPackageAttachment(ctx, \"default\", \u0026cen.BandwidthPackageAttachmentArgs{\n\t\t\tInstanceId:         _default.ID(),\n\t\t\tBandwidthPackageId: defaultBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouter, err := cen.NewTransitRouter(ctx, \"default\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId:            defaultBandwidthPackageAttachment.InstanceId,\n\t\t\tSupportMulticast: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpeer, err := cen.NewTransitRouter(ctx, \"peer\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId:            defaultBandwidthPackageAttachment.InstanceId,\n\t\t\tSupportMulticast: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouterPeerAttachment, err := cen.NewTransitRouterPeerAttachment(ctx, \"default\", \u0026cen.TransitRouterPeerAttachmentArgs{\n\t\t\tCenId:                              defaultBandwidthPackageAttachment.InstanceId,\n\t\t\tTransitRouterId:                    defaultTransitRouter.TransitRouterId,\n\t\t\tPeerTransitRouterId:                peer.TransitRouterId,\n\t\t\tPeerTransitRouterRegionId:          pulumi.String(\"cn-qingdao\"),\n\t\t\tCenBandwidthPackageId:              defaultBandwidthPackageAttachment.BandwidthPackageId,\n\t\t\tBandwidth:                          pulumi.Int(5),\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(name),\n\t\t\tTransitRouterAttachmentName:        pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouterMulticastDomain, err := cen.NewTransitRouterMulticastDomain(ctx, \"default\", \u0026cen.TransitRouterMulticastDomainArgs{\n\t\t\tTransitRouterId:                         defaultTransitRouterPeerAttachment.TransitRouterId,\n\t\t\tTransitRouterMulticastDomainName:        pulumi.String(name),\n\t\t\tTransitRouterMulticastDomainDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpeerTransitRouterMulticastDomain, err := cen.NewTransitRouterMulticastDomain(ctx, \"peer\", \u0026cen.TransitRouterMulticastDomainArgs{\n\t\t\tTransitRouterId:                         defaultTransitRouterPeerAttachment.PeerTransitRouterId,\n\t\t\tTransitRouterMulticastDomainName:        pulumi.String(name),\n\t\t\tTransitRouterMulticastDomainDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterMulticastDomainPeerMember(ctx, \"default\", \u0026cen.TransitRouterMulticastDomainPeerMemberArgs{\n\t\t\tTransitRouterMulticastDomainId:     defaultTransitRouterMulticastDomain.ID(),\n\t\t\tPeerTransitRouterMulticastDomainId: peerTransitRouterMulticastDomain.ID(),\n\t\t\tGroupIpAddress:                     pulumi.String(\"224.1.0.0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.BandwidthPackage;\nimport com.pulumi.alicloud.cen.BandwidthPackageArgs;\nimport com.pulumi.alicloud.cen.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.cen.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterPeerAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterPeerAttachmentArgs;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomain;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainArgs;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainPeerMember;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainPeerMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .build());\n\n        var defaultBandwidthPackage = new BandwidthPackage(\"defaultBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(5)\n            .cenBandwidthPackageName(name)\n            .geographicRegionAId(\"China\")\n            .geographicRegionBId(\"China\")\n            .build());\n\n        var defaultBandwidthPackageAttachment = new BandwidthPackageAttachment(\"defaultBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .instanceId(default_.id())\n            .bandwidthPackageId(defaultBandwidthPackage.id())\n            .build());\n\n        var defaultTransitRouter = new TransitRouter(\"defaultTransitRouter\", TransitRouterArgs.builder()\n            .cenId(defaultBandwidthPackageAttachment.instanceId())\n            .supportMulticast(true)\n            .build());\n\n        var peer = new TransitRouter(\"peer\", TransitRouterArgs.builder()\n            .cenId(defaultBandwidthPackageAttachment.instanceId())\n            .supportMulticast(true)\n            .build());\n\n        var defaultTransitRouterPeerAttachment = new TransitRouterPeerAttachment(\"defaultTransitRouterPeerAttachment\", TransitRouterPeerAttachmentArgs.builder()\n            .cenId(defaultBandwidthPackageAttachment.instanceId())\n            .transitRouterId(defaultTransitRouter.transitRouterId())\n            .peerTransitRouterId(peer.transitRouterId())\n            .peerTransitRouterRegionId(\"cn-qingdao\")\n            .cenBandwidthPackageId(defaultBandwidthPackageAttachment.bandwidthPackageId())\n            .bandwidth(5)\n            .transitRouterAttachmentDescription(name)\n            .transitRouterAttachmentName(name)\n            .build());\n\n        var defaultTransitRouterMulticastDomain = new TransitRouterMulticastDomain(\"defaultTransitRouterMulticastDomain\", TransitRouterMulticastDomainArgs.builder()\n            .transitRouterId(defaultTransitRouterPeerAttachment.transitRouterId())\n            .transitRouterMulticastDomainName(name)\n            .transitRouterMulticastDomainDescription(name)\n            .build());\n\n        var peerTransitRouterMulticastDomain = new TransitRouterMulticastDomain(\"peerTransitRouterMulticastDomain\", TransitRouterMulticastDomainArgs.builder()\n            .transitRouterId(defaultTransitRouterPeerAttachment.peerTransitRouterId())\n            .transitRouterMulticastDomainName(name)\n            .transitRouterMulticastDomainDescription(name)\n            .build());\n\n        var defaultTransitRouterMulticastDomainPeerMember = new TransitRouterMulticastDomainPeerMember(\"defaultTransitRouterMulticastDomainPeerMember\", TransitRouterMulticastDomainPeerMemberArgs.builder()\n            .transitRouterMulticastDomainId(defaultTransitRouterMulticastDomain.id())\n            .peerTransitRouterMulticastDomainId(peerTransitRouterMulticastDomain.id())\n            .groupIpAddress(\"224.1.0.0\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  default:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: ${name}\n  defaultBandwidthPackage:\n    type: alicloud:cen:BandwidthPackage\n    name: default\n    properties:\n      bandwidth: 5\n      cenBandwidthPackageName: ${name}\n      geographicRegionAId: China\n      geographicRegionBId: China\n  defaultBandwidthPackageAttachment:\n    type: alicloud:cen:BandwidthPackageAttachment\n    name: default\n    properties:\n      instanceId: ${default.id}\n      bandwidthPackageId: ${defaultBandwidthPackage.id}\n  defaultTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: default\n    properties:\n      cenId: ${defaultBandwidthPackageAttachment.instanceId}\n      supportMulticast: true\n  peer:\n    type: alicloud:cen:TransitRouter\n    properties:\n      cenId: ${defaultBandwidthPackageAttachment.instanceId}\n      supportMulticast: true\n  defaultTransitRouterPeerAttachment:\n    type: alicloud:cen:TransitRouterPeerAttachment\n    name: default\n    properties:\n      cenId: ${defaultBandwidthPackageAttachment.instanceId}\n      transitRouterId: ${defaultTransitRouter.transitRouterId}\n      peerTransitRouterId: ${peer.transitRouterId}\n      peerTransitRouterRegionId: cn-qingdao\n      cenBandwidthPackageId: ${defaultBandwidthPackageAttachment.bandwidthPackageId}\n      bandwidth: 5\n      transitRouterAttachmentDescription: ${name}\n      transitRouterAttachmentName: ${name}\n  defaultTransitRouterMulticastDomain:\n    type: alicloud:cen:TransitRouterMulticastDomain\n    name: default\n    properties:\n      transitRouterId: ${defaultTransitRouterPeerAttachment.transitRouterId}\n      transitRouterMulticastDomainName: ${name}\n      transitRouterMulticastDomainDescription: ${name}\n  peerTransitRouterMulticastDomain:\n    type: alicloud:cen:TransitRouterMulticastDomain\n    name: peer\n    properties:\n      transitRouterId: ${defaultTransitRouterPeerAttachment.peerTransitRouterId}\n      transitRouterMulticastDomainName: ${name}\n      transitRouterMulticastDomainDescription: ${name}\n  defaultTransitRouterMulticastDomainPeerMember:\n    type: alicloud:cen:TransitRouterMulticastDomainPeerMember\n    name: default\n    properties:\n      transitRouterMulticastDomainId: ${defaultTransitRouterMulticastDomain.id}\n      peerTransitRouterMulticastDomainId: ${peerTransitRouterMulticastDomain.id}\n      groupIpAddress: 224.1.0.0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCen Transit Router Multicast Domain Peer Member can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_cen_transit_router_multicast_domain_peer_member.example \u003ctransit_router_multicast_domain_id\u003e:\u003cgroup_ip_address\u003e:\u003cpeer_transit_router_multicast_domain_id\u003e\n```\n\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether only to precheck the request.\n"},"groupIpAddress":{"type":"string","description":"The IP address of the multicast group to which the multicast member belongs. Value range: **224.0.0.1** to **239.255.255.254**.If the multicast group you specified does not exist in the current multicast domain, the system will automatically create a new multicast group for you in the current multicast domain.\n"},"peerTransitRouterMulticastDomainId":{"type":"string","description":"The IDs of the inter-region multicast domains.\n"},"status":{"type":"string","description":"The status of the multicast resource. Valid values:\n- Registering: being created\n- Registered: available\n- Deregistering: being deleted\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain to which the multicast member belongs.\n"}},"required":["groupIpAddress","peerTransitRouterMulticastDomainId","status","transitRouterMulticastDomainId"],"inputProperties":{"dryRun":{"type":"boolean","description":"Specifies whether only to precheck the request.\n"},"groupIpAddress":{"type":"string","description":"The IP address of the multicast group to which the multicast member belongs. Value range: **224.0.0.1** to **239.255.255.254**.If the multicast group you specified does not exist in the current multicast domain, the system will automatically create a new multicast group for you in the current multicast domain.\n","willReplaceOnChanges":true},"peerTransitRouterMulticastDomainId":{"type":"string","description":"The IDs of the inter-region multicast domains.\n","willReplaceOnChanges":true},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain to which the multicast member belongs.\n","willReplaceOnChanges":true}},"requiredInputs":["groupIpAddress","peerTransitRouterMulticastDomainId","transitRouterMulticastDomainId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterMulticastDomainPeerMember resources.\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether only to precheck the request.\n"},"groupIpAddress":{"type":"string","description":"The IP address of the multicast group to which the multicast member belongs. Value range: **224.0.0.1** to **239.255.255.254**.If the multicast group you specified does not exist in the current multicast domain, the system will automatically create a new multicast group for you in the current multicast domain.\n","willReplaceOnChanges":true},"peerTransitRouterMulticastDomainId":{"type":"string","description":"The IDs of the inter-region multicast domains.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the multicast resource. Valid values:\n- Registering: being created\n- Registered: available\n- Deregistering: being deleted\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain to which the multicast member belongs.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/transitRouterMulticastDomainSource:TransitRouterMulticastDomainSource":{"description":"Provides a Cen Transit Router Multicast Domain Source resource.\n\nFor information about Cen Transit Router Multicast Domain Source and how to use it, see [What is Transit Router Multicast Domain Source](https://www.alibabacloud.com/help/en/cloud-enterprise-network/latest/api-cbn-2017-09-12-registertransitroutermulticastgroupsources).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.cen.getTransitRouterAvailableResources({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultMaster = new alicloud.vpc.Switch(\"default_master\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"192.168.1.0/24\",\n    zoneId: \"cn-hangzhou-i\",\n});\nconst defaultSlave = new alicloud.vpc.Switch(\"default_slave\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"192.168.2.0/24\",\n    zoneId: \"cn-hangzhou-j\",\n});\nconst defaultInstance = new alicloud.cen.Instance(\"default\", {\n    cenInstanceName: name,\n    protectionLevel: \"REDUCED\",\n});\nconst defaultTransitRouter = new alicloud.cen.TransitRouter(\"default\", {\n    cenId: defaultInstance.id,\n    supportMulticast: true,\n});\nconst defaultTransitRouterVpcAttachment = new alicloud.cen.TransitRouterVpcAttachment(\"default\", {\n    cenId: defaultInstance.id,\n    transitRouterId: defaultTransitRouter.transitRouterId,\n    vpcId: defaultNetwork.id,\n    zoneMappings: [\n        {\n            zoneId: defaultMaster.zoneId,\n            vswitchId: defaultMaster.id,\n        },\n        {\n            zoneId: defaultSlave.zoneId,\n            vswitchId: defaultSlave.id,\n        },\n    ],\n    transitRouterAttachmentName: name,\n    transitRouterAttachmentDescription: name,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultTransitRouterMulticastDomain = new alicloud.cen.TransitRouterMulticastDomain(\"default\", {\n    transitRouterId: defaultTransitRouter.transitRouterId,\n    transitRouterMulticastDomainName: name,\n    transitRouterMulticastDomainDescription: name,\n});\nconst defaultEcsNetworkInterface = new alicloud.ecs.EcsNetworkInterface(\"default\", {\n    networkInterfaceName: name,\n    vswitchId: defaultMaster.id,\n    securityGroupIds: [defaultSecurityGroup.id],\n    description: \"Basic test\",\n    primaryIpAddress: defaultMaster.cidrBlock.apply(cidrBlock =\u003e std.cidrhostOutput({\n        input: cidrBlock,\n        host: 100,\n    })).apply(invoke =\u003e invoke.result),\n    tags: {\n        Created: \"TF\",\n        For: \"Test\",\n    },\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.ids?.[0]),\n});\nconst defaultTransitRouterMulticastDomainAssociation = new alicloud.cen.TransitRouterMulticastDomainAssociation(\"default\", {\n    transitRouterMulticastDomainId: defaultTransitRouterMulticastDomain.id,\n    transitRouterAttachmentId: defaultTransitRouterVpcAttachment.transitRouterAttachmentId,\n    vswitchId: defaultMaster.id,\n});\nconst example = new alicloud.cen.TransitRouterMulticastDomainSource(\"example\", {\n    vpcId: defaultNetwork.id,\n    transitRouterMulticastDomainId: defaultTransitRouterMulticastDomainAssociation.transitRouterMulticastDomainId,\n    networkInterfaceId: defaultEcsNetworkInterface.id,\n    groupIpAddress: \"239.1.1.1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.cen.get_transit_router_available_resources()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ndefault_master = alicloud.vpc.Switch(\"default_master\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"192.168.1.0/24\",\n    zone_id=\"cn-hangzhou-i\")\ndefault_slave = alicloud.vpc.Switch(\"default_slave\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"192.168.2.0/24\",\n    zone_id=\"cn-hangzhou-j\")\ndefault_instance = alicloud.cen.Instance(\"default\",\n    cen_instance_name=name,\n    protection_level=\"REDUCED\")\ndefault_transit_router = alicloud.cen.TransitRouter(\"default\",\n    cen_id=default_instance.id,\n    support_multicast=True)\ndefault_transit_router_vpc_attachment = alicloud.cen.TransitRouterVpcAttachment(\"default\",\n    cen_id=default_instance.id,\n    transit_router_id=default_transit_router.transit_router_id,\n    vpc_id=default_network.id,\n    zone_mappings=[\n        {\n            \"zone_id\": default_master.zone_id,\n            \"vswitch_id\": default_master.id,\n        },\n        {\n            \"zone_id\": default_slave.zone_id,\n            \"vswitch_id\": default_slave.id,\n        },\n    ],\n    transit_router_attachment_name=name,\n    transit_router_attachment_description=name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_transit_router_multicast_domain = alicloud.cen.TransitRouterMulticastDomain(\"default\",\n    transit_router_id=default_transit_router.transit_router_id,\n    transit_router_multicast_domain_name=name,\n    transit_router_multicast_domain_description=name)\ndefault_ecs_network_interface = alicloud.ecs.EcsNetworkInterface(\"default\",\n    network_interface_name=name,\n    vswitch_id=default_master.id,\n    security_group_ids=[default_security_group.id],\n    description=\"Basic test\",\n    primary_ip_address=default_master.cidr_block.apply(lambda cidr_block: std.cidrhost_output(input=cidr_block,\n        host=100)).apply(lambda invoke: invoke.result),\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Test\",\n    },\n    resource_group_id=default_get_resource_groups.ids[0])\ndefault_transit_router_multicast_domain_association = alicloud.cen.TransitRouterMulticastDomainAssociation(\"default\",\n    transit_router_multicast_domain_id=default_transit_router_multicast_domain.id,\n    transit_router_attachment_id=default_transit_router_vpc_attachment.transit_router_attachment_id,\n    vswitch_id=default_master.id)\nexample = alicloud.cen.TransitRouterMulticastDomainSource(\"example\",\n    vpc_id=default_network.id,\n    transit_router_multicast_domain_id=default_transit_router_multicast_domain_association.transit_router_multicast_domain_id,\n    network_interface_id=default_ecs_network_interface.id,\n    group_ip_address=\"239.1.1.1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.Cen.GetTransitRouterAvailableResources.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultMaster = new AliCloud.Vpc.Switch(\"default_master\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"192.168.1.0/24\",\n        ZoneId = \"cn-hangzhou-i\",\n    });\n\n    var defaultSlave = new AliCloud.Vpc.Switch(\"default_slave\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"192.168.2.0/24\",\n        ZoneId = \"cn-hangzhou-j\",\n    });\n\n    var defaultInstance = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        CenInstanceName = name,\n        ProtectionLevel = \"REDUCED\",\n    });\n\n    var defaultTransitRouter = new AliCloud.Cen.TransitRouter(\"default\", new()\n    {\n        CenId = defaultInstance.Id,\n        SupportMulticast = true,\n    });\n\n    var defaultTransitRouterVpcAttachment = new AliCloud.Cen.TransitRouterVpcAttachment(\"default\", new()\n    {\n        CenId = defaultInstance.Id,\n        TransitRouterId = defaultTransitRouter.TransitRouterId,\n        VpcId = defaultNetwork.Id,\n        ZoneMappings = new[]\n        {\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                ZoneId = defaultMaster.ZoneId,\n                VswitchId = defaultMaster.Id,\n            },\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                ZoneId = defaultSlave.ZoneId,\n                VswitchId = defaultSlave.Id,\n            },\n        },\n        TransitRouterAttachmentName = name,\n        TransitRouterAttachmentDescription = name,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultTransitRouterMulticastDomain = new AliCloud.Cen.TransitRouterMulticastDomain(\"default\", new()\n    {\n        TransitRouterId = defaultTransitRouter.TransitRouterId,\n        TransitRouterMulticastDomainName = name,\n        TransitRouterMulticastDomainDescription = name,\n    });\n\n    var defaultEcsNetworkInterface = new AliCloud.Ecs.EcsNetworkInterface(\"default\", new()\n    {\n        NetworkInterfaceName = name,\n        VswitchId = defaultMaster.Id,\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        Description = \"Basic test\",\n        PrimaryIpAddress = defaultMaster.CidrBlock.Apply(cidrBlock =\u003e Std.Cidrhost.Invoke(new()\n        {\n            Input = cidrBlock,\n            Host = 100,\n        })).Apply(invoke =\u003e invoke.Result),\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Test\" },\n        },\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0]),\n    });\n\n    var defaultTransitRouterMulticastDomainAssociation = new AliCloud.Cen.TransitRouterMulticastDomainAssociation(\"default\", new()\n    {\n        TransitRouterMulticastDomainId = defaultTransitRouterMulticastDomain.Id,\n        TransitRouterAttachmentId = defaultTransitRouterVpcAttachment.TransitRouterAttachmentId,\n        VswitchId = defaultMaster.Id,\n    });\n\n    var example = new AliCloud.Cen.TransitRouterMulticastDomainSource(\"example\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        TransitRouterMulticastDomainId = defaultTransitRouterMulticastDomainAssociation.TransitRouterMulticastDomainId,\n        NetworkInterfaceId = defaultEcsNetworkInterface.Id,\n        GroupIpAddress = \"239.1.1.1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"tf_example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_, err := cen.GetTransitRouterAvailableResources(ctx, \u0026cen.GetTransitRouterAvailableResourcesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ndefaultMaster, err := vpc.NewSwitch(ctx, \"default_master\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"192.168.1.0/24\"),\nZoneId: pulumi.String(\"cn-hangzhou-i\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSlave, err := vpc.NewSwitch(ctx, \"default_slave\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"192.168.2.0/24\"),\nZoneId: pulumi.String(\"cn-hangzhou-j\"),\n})\nif err != nil {\nreturn err\n}\ndefaultInstance, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\nCenInstanceName: pulumi.String(name),\nProtectionLevel: pulumi.String(\"REDUCED\"),\n})\nif err != nil {\nreturn err\n}\ndefaultTransitRouter, err := cen.NewTransitRouter(ctx, \"default\", \u0026cen.TransitRouterArgs{\nCenId: defaultInstance.ID(),\nSupportMulticast: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\ndefaultTransitRouterVpcAttachment, err := cen.NewTransitRouterVpcAttachment(ctx, \"default\", \u0026cen.TransitRouterVpcAttachmentArgs{\nCenId: defaultInstance.ID(),\nTransitRouterId: defaultTransitRouter.TransitRouterId,\nVpcId: defaultNetwork.ID(),\nZoneMappings: cen.TransitRouterVpcAttachmentZoneMappingArray{\n\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\nZoneId: defaultMaster.ZoneId,\nVswitchId: defaultMaster.ID(),\n},\n\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\nZoneId: defaultSlave.ZoneId,\nVswitchId: defaultSlave.ID(),\n},\n},\nTransitRouterAttachmentName: pulumi.String(name),\nTransitRouterAttachmentDescription: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\ndefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\nStatus: pulumi.StringRef(\"OK\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultTransitRouterMulticastDomain, err := cen.NewTransitRouterMulticastDomain(ctx, \"default\", \u0026cen.TransitRouterMulticastDomainArgs{\nTransitRouterId: defaultTransitRouter.TransitRouterId,\nTransitRouterMulticastDomainName: pulumi.String(name),\nTransitRouterMulticastDomainDescription: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrhost, err := std.Cidrhost(ctx, \u0026std.CidrhostArgs{\nInput: cidrBlock,\nHost: 100,\n}, nil)\nif err != nil {\nreturn err\n}\ndefaultEcsNetworkInterface, err := ecs.NewEcsNetworkInterface(ctx, \"default\", \u0026ecs.EcsNetworkInterfaceArgs{\nNetworkInterfaceName: pulumi.String(name),\nVswitchId: defaultMaster.ID(),\nSecurityGroupIds: pulumi.StringArray{\ndefaultSecurityGroup.ID(),\n},\nDescription: pulumi.String(\"Basic test\"),\nPrimaryIpAddress: pulumi.String(defaultMaster.CidrBlock.ApplyT(func(cidrBlock string) (std.CidrhostResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrhostResultOutput).ApplyT(func(invoke std.CidrhostResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\nTags: pulumi.StringMap{\n\"Created\": pulumi.String(\"TF\"),\n\"For\": pulumi.String(\"Test\"),\n},\nResourceGroupId: pulumi.String(defaultGetResourceGroups.Ids[0]),\n})\nif err != nil {\nreturn err\n}\ndefaultTransitRouterMulticastDomainAssociation, err := cen.NewTransitRouterMulticastDomainAssociation(ctx, \"default\", \u0026cen.TransitRouterMulticastDomainAssociationArgs{\nTransitRouterMulticastDomainId: defaultTransitRouterMulticastDomain.ID(),\nTransitRouterAttachmentId: defaultTransitRouterVpcAttachment.TransitRouterAttachmentId,\nVswitchId: defaultMaster.ID(),\n})\nif err != nil {\nreturn err\n}\n_, err = cen.NewTransitRouterMulticastDomainSource(ctx, \"example\", \u0026cen.TransitRouterMulticastDomainSourceArgs{\nVpcId: defaultNetwork.ID(),\nTransitRouterMulticastDomainId: defaultTransitRouterMulticastDomainAssociation.TransitRouterMulticastDomainId,\nNetworkInterfaceId: defaultEcsNetworkInterface.ID(),\nGroupIpAddress: pulumi.String(\"239.1.1.1\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterAvailableResourcesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachmentArgs;\nimport com.pulumi.alicloud.cen.inputs.TransitRouterVpcAttachmentZoneMappingArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomain;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainArgs;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterface;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfaceArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrhostArgs;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainAssociation;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainAssociationArgs;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainSource;\nimport com.pulumi.alicloud.cen.TransitRouterMulticastDomainSourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = CenFunctions.getTransitRouterAvailableResources(GetTransitRouterAvailableResourcesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultMaster = new Switch(\"defaultMaster\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"192.168.1.0/24\")\n            .zoneId(\"cn-hangzhou-i\")\n            .build());\n\n        var defaultSlave = new Switch(\"defaultSlave\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"192.168.2.0/24\")\n            .zoneId(\"cn-hangzhou-j\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .protectionLevel(\"REDUCED\")\n            .build());\n\n        var defaultTransitRouter = new TransitRouter(\"defaultTransitRouter\", TransitRouterArgs.builder()\n            .cenId(defaultInstance.id())\n            .supportMulticast(true)\n            .build());\n\n        var defaultTransitRouterVpcAttachment = new TransitRouterVpcAttachment(\"defaultTransitRouterVpcAttachment\", TransitRouterVpcAttachmentArgs.builder()\n            .cenId(defaultInstance.id())\n            .transitRouterId(defaultTransitRouter.transitRouterId())\n            .vpcId(defaultNetwork.id())\n            .zoneMappings(            \n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .zoneId(defaultMaster.zoneId())\n                    .vswitchId(defaultMaster.id())\n                    .build(),\n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .zoneId(defaultSlave.zoneId())\n                    .vswitchId(defaultSlave.id())\n                    .build())\n            .transitRouterAttachmentName(name)\n            .transitRouterAttachmentDescription(name)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var defaultTransitRouterMulticastDomain = new TransitRouterMulticastDomain(\"defaultTransitRouterMulticastDomain\", TransitRouterMulticastDomainArgs.builder()\n            .transitRouterId(defaultTransitRouter.transitRouterId())\n            .transitRouterMulticastDomainName(name)\n            .transitRouterMulticastDomainDescription(name)\n            .build());\n\n        var defaultEcsNetworkInterface = new EcsNetworkInterface(\"defaultEcsNetworkInterface\", EcsNetworkInterfaceArgs.builder()\n            .networkInterfaceName(name)\n            .vswitchId(defaultMaster.id())\n            .securityGroupIds(defaultSecurityGroup.id())\n            .description(\"Basic test\")\n            .primaryIpAddress(defaultMaster.cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrhost(CidrhostArgs.builder()\n                .input(_cidrBlock)\n                .host(100)\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Test\")\n            ))\n            .resourceGroupId(defaultGetResourceGroups.ids()[0])\n            .build());\n\n        var defaultTransitRouterMulticastDomainAssociation = new TransitRouterMulticastDomainAssociation(\"defaultTransitRouterMulticastDomainAssociation\", TransitRouterMulticastDomainAssociationArgs.builder()\n            .transitRouterMulticastDomainId(defaultTransitRouterMulticastDomain.id())\n            .transitRouterAttachmentId(defaultTransitRouterVpcAttachment.transitRouterAttachmentId())\n            .vswitchId(defaultMaster.id())\n            .build());\n\n        var example = new TransitRouterMulticastDomainSource(\"example\", TransitRouterMulticastDomainSourceArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .transitRouterMulticastDomainId(defaultTransitRouterMulticastDomainAssociation.transitRouterMulticastDomainId())\n            .networkInterfaceId(defaultEcsNetworkInterface.id())\n            .groupIpAddress(\"239.1.1.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  defaultMaster:\n    type: alicloud:vpc:Switch\n    name: default_master\n    properties:\n      vswitchName: ${name}\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 192.168.1.0/24\n      zoneId: cn-hangzhou-i\n  defaultSlave:\n    type: alicloud:vpc:Switch\n    name: default_slave\n    properties:\n      vswitchName: ${name}\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 192.168.2.0/24\n      zoneId: cn-hangzhou-j\n  defaultInstance:\n    type: alicloud:cen:Instance\n    name: default\n    properties:\n      cenInstanceName: ${name}\n      protectionLevel: REDUCED\n  defaultTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: default\n    properties:\n      cenId: ${defaultInstance.id}\n      supportMulticast: true\n  defaultTransitRouterVpcAttachment:\n    type: alicloud:cen:TransitRouterVpcAttachment\n    name: default\n    properties:\n      cenId: ${defaultInstance.id}\n      transitRouterId: ${defaultTransitRouter.transitRouterId}\n      vpcId: ${defaultNetwork.id}\n      zoneMappings:\n        - zoneId: ${defaultMaster.zoneId}\n          vswitchId: ${defaultMaster.id}\n        - zoneId: ${defaultSlave.zoneId}\n          vswitchId: ${defaultSlave.id}\n      transitRouterAttachmentName: ${name}\n      transitRouterAttachmentDescription: ${name}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultTransitRouterMulticastDomain:\n    type: alicloud:cen:TransitRouterMulticastDomain\n    name: default\n    properties:\n      transitRouterId: ${defaultTransitRouter.transitRouterId}\n      transitRouterMulticastDomainName: ${name}\n      transitRouterMulticastDomainDescription: ${name}\n  defaultEcsNetworkInterface:\n    type: alicloud:ecs:EcsNetworkInterface\n    name: default\n    properties:\n      networkInterfaceName: ${name}\n      vswitchId: ${defaultMaster.id}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n      description: Basic test\n      primaryIpAddress:\n        fn::invoke:\n          function: std:cidrhost\n          arguments:\n            input: ${defaultMaster.cidrBlock}\n            host: 100\n          return: result\n      tags:\n        Created: TF\n        For: Test\n      resourceGroupId: ${defaultGetResourceGroups.ids[0]}\n  defaultTransitRouterMulticastDomainAssociation:\n    type: alicloud:cen:TransitRouterMulticastDomainAssociation\n    name: default\n    properties:\n      transitRouterMulticastDomainId: ${defaultTransitRouterMulticastDomain.id}\n      transitRouterAttachmentId: ${defaultTransitRouterVpcAttachment.transitRouterAttachmentId}\n      vswitchId: ${defaultMaster.id}\n  example:\n    type: alicloud:cen:TransitRouterMulticastDomainSource\n    properties:\n      vpcId: ${defaultNetwork.id}\n      transitRouterMulticastDomainId: ${defaultTransitRouterMulticastDomainAssociation.transitRouterMulticastDomainId}\n      networkInterfaceId: ${defaultEcsNetworkInterface.id}\n      groupIpAddress: 239.1.1.1\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterAvailableResources\n      arguments: {}\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCen Transit Router Multicast Domain Source can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_cen_transit_router_multicast_domain_source.example \u003ctransit_router_multicast_domain_id\u003e:\u003cgroup_ip_address\u003e:\u003cnetwork_interface_id\u003e\n```\n\n","properties":{"groupIpAddress":{"type":"string","description":"The IP address of the multicast group to which the multicast source belongs. Value range: **224.0.0.1** to **239.255.255.254**. If the multicast group you specified does not exist in the current multicast domain, the system will automatically create a new multicast group for you.\n"},"networkInterfaceId":{"type":"string","description":"ENI ID of the multicast source.\n"},"status":{"type":"string","description":"The status of the resource\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain to which the multicast source belongs.\n"},"vpcId":{"type":"string","description":"The VPC to which the ENI of the multicast source belongs. This field is mandatory for VPCs that is owned by another accounts.\n"}},"required":["groupIpAddress","networkInterfaceId","status","transitRouterMulticastDomainId","vpcId"],"inputProperties":{"groupIpAddress":{"type":"string","description":"The IP address of the multicast group to which the multicast source belongs. Value range: **224.0.0.1** to **239.255.255.254**. If the multicast group you specified does not exist in the current multicast domain, the system will automatically create a new multicast group for you.\n","willReplaceOnChanges":true},"networkInterfaceId":{"type":"string","description":"ENI ID of the multicast source.\n","willReplaceOnChanges":true},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain to which the multicast source belongs.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VPC to which the ENI of the multicast source belongs. This field is mandatory for VPCs that is owned by another accounts.\n","willReplaceOnChanges":true}},"requiredInputs":["groupIpAddress","networkInterfaceId","transitRouterMulticastDomainId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterMulticastDomainSource resources.\n","properties":{"groupIpAddress":{"type":"string","description":"The IP address of the multicast group to which the multicast source belongs. Value range: **224.0.0.1** to **239.255.255.254**. If the multicast group you specified does not exist in the current multicast domain, the system will automatically create a new multicast group for you.\n","willReplaceOnChanges":true},"networkInterfaceId":{"type":"string","description":"ENI ID of the multicast source.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain to which the multicast source belongs.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VPC to which the ENI of the multicast source belongs. This field is mandatory for VPCs that is owned by another accounts.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/transitRouterPeerAttachment:TransitRouterPeerAttachment":{"description":"Provides a Cloud Enterprise Network (CEN) Transit Router Peer Attachment resource.\n\n\n\nFor information about Cloud Enterprise Network (CEN) Transit Router Peer Attachment and how to use it, see [What is Transit Router Peer Attachment](https://next.api.alibabacloud.com/document/Cbn/2017-09-12/CreateTransitRouterPeerAttachment).\n\n\u003e **NOTE:** Available since v1.128.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst peerRegion = config.get(\"peerRegion\") || \"cn-beijing\";\nconst example = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: name,\n    protectionLevel: \"REDUCED\",\n});\nconst exampleBandwidthPackage = new alicloud.cen.BandwidthPackage(\"example\", {\n    bandwidth: 5,\n    cenBandwidthPackageName: \"tf_example\",\n    geographicRegionAId: \"China\",\n    geographicRegionBId: \"China\",\n});\nconst exampleBandwidthPackageAttachment = new alicloud.cen.BandwidthPackageAttachment(\"example\", {\n    instanceId: example.id,\n    bandwidthPackageId: exampleBandwidthPackage.id,\n});\nconst exampleTransitRouter = new alicloud.cen.TransitRouter(\"example\", {cenId: exampleBandwidthPackageAttachment.instanceId});\nconst peer = new alicloud.cen.TransitRouter(\"peer\", {cenId: exampleTransitRouter.cenId});\nconst exampleTransitRouterPeerAttachment = new alicloud.cen.TransitRouterPeerAttachment(\"example\", {\n    cenId: example.id,\n    transitRouterId: exampleTransitRouter.transitRouterId,\n    peerTransitRouterRegionId: peerRegion,\n    peerTransitRouterId: peer.transitRouterId,\n    cenBandwidthPackageId: exampleBandwidthPackageAttachment.bandwidthPackageId,\n    bandwidth: 5,\n    transitRouterAttachmentDescription: name,\n    transitRouterAttachmentName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\npeer_region = config.get(\"peerRegion\")\nif peer_region is None:\n    peer_region = \"cn-beijing\"\nexample = alicloud.cen.Instance(\"example\",\n    cen_instance_name=name,\n    protection_level=\"REDUCED\")\nexample_bandwidth_package = alicloud.cen.BandwidthPackage(\"example\",\n    bandwidth=5,\n    cen_bandwidth_package_name=\"tf_example\",\n    geographic_region_a_id=\"China\",\n    geographic_region_b_id=\"China\")\nexample_bandwidth_package_attachment = alicloud.cen.BandwidthPackageAttachment(\"example\",\n    instance_id=example.id,\n    bandwidth_package_id=example_bandwidth_package.id)\nexample_transit_router = alicloud.cen.TransitRouter(\"example\", cen_id=example_bandwidth_package_attachment.instance_id)\npeer = alicloud.cen.TransitRouter(\"peer\", cen_id=example_transit_router.cen_id)\nexample_transit_router_peer_attachment = alicloud.cen.TransitRouterPeerAttachment(\"example\",\n    cen_id=example.id,\n    transit_router_id=example_transit_router.transit_router_id,\n    peer_transit_router_region_id=peer_region,\n    peer_transit_router_id=peer.transit_router_id,\n    cen_bandwidth_package_id=example_bandwidth_package_attachment.bandwidth_package_id,\n    bandwidth=5,\n    transit_router_attachment_description=name,\n    transit_router_attachment_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var peerRegion = config.Get(\"peerRegion\") ?? \"cn-beijing\";\n    var example = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = name,\n        ProtectionLevel = \"REDUCED\",\n    });\n\n    var exampleBandwidthPackage = new AliCloud.Cen.BandwidthPackage(\"example\", new()\n    {\n        Bandwidth = 5,\n        CenBandwidthPackageName = \"tf_example\",\n        GeographicRegionAId = \"China\",\n        GeographicRegionBId = \"China\",\n    });\n\n    var exampleBandwidthPackageAttachment = new AliCloud.Cen.BandwidthPackageAttachment(\"example\", new()\n    {\n        InstanceId = example.Id,\n        BandwidthPackageId = exampleBandwidthPackage.Id,\n    });\n\n    var exampleTransitRouter = new AliCloud.Cen.TransitRouter(\"example\", new()\n    {\n        CenId = exampleBandwidthPackageAttachment.InstanceId,\n    });\n\n    var peer = new AliCloud.Cen.TransitRouter(\"peer\", new()\n    {\n        CenId = exampleTransitRouter.CenId,\n    });\n\n    var exampleTransitRouterPeerAttachment = new AliCloud.Cen.TransitRouterPeerAttachment(\"example\", new()\n    {\n        CenId = example.Id,\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n        PeerTransitRouterRegionId = peerRegion,\n        PeerTransitRouterId = peer.TransitRouterId,\n        CenBandwidthPackageId = exampleBandwidthPackageAttachment.BandwidthPackageId,\n        Bandwidth = 5,\n        TransitRouterAttachmentDescription = name,\n        TransitRouterAttachmentName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tpeerRegion := \"cn-beijing\"\n\t\tif param := cfg.Get(\"peerRegion\"); param != \"\" {\n\t\t\tpeerRegion = param\n\t\t}\n\t\texample, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tProtectionLevel: pulumi.String(\"REDUCED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBandwidthPackage, err := cen.NewBandwidthPackage(ctx, \"example\", \u0026cen.BandwidthPackageArgs{\n\t\t\tBandwidth:               pulumi.Int(5),\n\t\t\tCenBandwidthPackageName: pulumi.String(\"tf_example\"),\n\t\t\tGeographicRegionAId:     pulumi.String(\"China\"),\n\t\t\tGeographicRegionBId:     pulumi.String(\"China\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBandwidthPackageAttachment, err := cen.NewBandwidthPackageAttachment(ctx, \"example\", \u0026cen.BandwidthPackageAttachmentArgs{\n\t\t\tInstanceId:         example.ID(),\n\t\t\tBandwidthPackageId: exampleBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouter, err := cen.NewTransitRouter(ctx, \"example\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId: exampleBandwidthPackageAttachment.InstanceId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpeer, err := cen.NewTransitRouter(ctx, \"peer\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId: exampleTransitRouter.CenId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterPeerAttachment(ctx, \"example\", \u0026cen.TransitRouterPeerAttachmentArgs{\n\t\t\tCenId:                              example.ID(),\n\t\t\tTransitRouterId:                    exampleTransitRouter.TransitRouterId,\n\t\t\tPeerTransitRouterRegionId:          pulumi.String(peerRegion),\n\t\t\tPeerTransitRouterId:                peer.TransitRouterId,\n\t\t\tCenBandwidthPackageId:              exampleBandwidthPackageAttachment.BandwidthPackageId,\n\t\t\tBandwidth:                          pulumi.Int(5),\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(name),\n\t\t\tTransitRouterAttachmentName:        pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.BandwidthPackage;\nimport com.pulumi.alicloud.cen.BandwidthPackageArgs;\nimport com.pulumi.alicloud.cen.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.cen.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterPeerAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterPeerAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var peerRegion = config.get(\"peerRegion\").orElse(\"cn-beijing\");\n        var example = new Instance(\"example\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .protectionLevel(\"REDUCED\")\n            .build());\n\n        var exampleBandwidthPackage = new BandwidthPackage(\"exampleBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(5)\n            .cenBandwidthPackageName(\"tf_example\")\n            .geographicRegionAId(\"China\")\n            .geographicRegionBId(\"China\")\n            .build());\n\n        var exampleBandwidthPackageAttachment = new BandwidthPackageAttachment(\"exampleBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .instanceId(example.id())\n            .bandwidthPackageId(exampleBandwidthPackage.id())\n            .build());\n\n        var exampleTransitRouter = new TransitRouter(\"exampleTransitRouter\", TransitRouterArgs.builder()\n            .cenId(exampleBandwidthPackageAttachment.instanceId())\n            .build());\n\n        var peer = new TransitRouter(\"peer\", TransitRouterArgs.builder()\n            .cenId(exampleTransitRouter.cenId())\n            .build());\n\n        var exampleTransitRouterPeerAttachment = new TransitRouterPeerAttachment(\"exampleTransitRouterPeerAttachment\", TransitRouterPeerAttachmentArgs.builder()\n            .cenId(example.id())\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .peerTransitRouterRegionId(peerRegion)\n            .peerTransitRouterId(peer.transitRouterId())\n            .cenBandwidthPackageId(exampleBandwidthPackageAttachment.bandwidthPackageId())\n            .bandwidth(5)\n            .transitRouterAttachmentDescription(name)\n            .transitRouterAttachmentName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\n  region:\n    type: string\n    default: cn-hangzhou\n  peerRegion:\n    type: string\n    default: cn-beijing\nresources:\n  example:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: ${name}\n      protectionLevel: REDUCED\n  exampleBandwidthPackage:\n    type: alicloud:cen:BandwidthPackage\n    name: example\n    properties:\n      bandwidth: 5\n      cenBandwidthPackageName: tf_example\n      geographicRegionAId: China\n      geographicRegionBId: China\n  exampleBandwidthPackageAttachment:\n    type: alicloud:cen:BandwidthPackageAttachment\n    name: example\n    properties:\n      instanceId: ${example.id}\n      bandwidthPackageId: ${exampleBandwidthPackage.id}\n  exampleTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: example\n    properties:\n      cenId: ${exampleBandwidthPackageAttachment.instanceId}\n  peer:\n    type: alicloud:cen:TransitRouter\n    properties:\n      cenId: ${exampleTransitRouter.cenId}\n  exampleTransitRouterPeerAttachment:\n    type: alicloud:cen:TransitRouterPeerAttachment\n    name: example\n    properties:\n      cenId: ${example.id}\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n      peerTransitRouterRegionId: ${peerRegion}\n      peerTransitRouterId: ${peer.transitRouterId}\n      cenBandwidthPackageId: ${exampleBandwidthPackageAttachment.bandwidthPackageId}\n      bandwidth: 5\n      transitRouterAttachmentDescription: ${name}\n      transitRouterAttachmentName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Enterprise Network (CEN) Transit Router Peer Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/transitRouterPeerAttachment:TransitRouterPeerAttachment example \u003ccen_id\u003e:\u003ctransit_router_attachment_id\u003e\n```\n\n","properties":{"autoPublishRouteEnabled":{"type":"boolean","description":"Specifies whether to enable the local Enterprise Edition transit router to automatically advertise the routes of the inter-region connection to the peer transit router. Valid values:\n"},"bandwidth":{"type":"integer","description":"The bandwidth value of the inter-region connection. Unit: Mbit/s.\n\n- This parameter specifies the maximum bandwidth value for the inter-region connection if you set `BandwidthType` to `BandwidthPackage`.\n- This parameter specifies the bandwidth throttling threshold for the inter-region connection if you set `BandwidthType` to `DataTransfer`.\n"},"bandwidthType":{"type":"string","description":"The method that is used to allocate bandwidth to the inter-region connection. Valid values:\n\n- `BandwidthPackage`: allocates bandwidth from a bandwidth plan.\n- `DataTransfer`: bandwidth is billed based on the pay-by-data-transfer metering method.\n"},"cenBandwidthPackageId":{"type":"string","description":"The ID of the bandwidth plan that is used to allocate bandwidth to the inter-region connection.\n\n\u003e **NOTE:**   If you set `BandwidthType` to `DataTransfer`, you do not need to set this parameter.\n"},"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"defaultLinkType":{"type":"string","description":"The default line type.\nValid values: Platinum and Gold.\nPlatinum is supported only when BandwidthType is set to DataTransfer.\n"},"dryRun":{"type":"boolean","description":"Whether to perform PreCheck on this request, including permissions and instance status verification. Value:\n"},"peerTransitRouterId":{"type":"string","description":"The ID of the peer transit router.\n"},"peerTransitRouterRegionId":{"type":"string","description":"The ID of the region where the peer transit router is deployed.\n"},"regionId":{"type":"string","description":"The ID of the region where the local Enterprise Edition transit router is deployed.\n"},"resourceType":{"type":"string","description":"The resource type to attachment. Only support `VR` and default value is `VR`.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"},"routeTableAssociationEnabled":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.230.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.230.0."},"routeTablePropagationEnabled":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.230.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.230.0."},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterAttachmentDescription":{"type":"string","description":"The new description of the inter-region connection.\nThis parameter is optional. If you enter a description, it must be 1 to 256 characters in length, and cannot start with http:// or https://.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the inter-region connection.\n"},"transitRouterAttachmentName":{"type":"string","description":". Field 'transit_router_attachment_name' has been deprecated from provider version 1.247.0. New field 'transit_router_peer_attachment_name' instead.\n","deprecationMessage":"Field 'transit_router_attachment_name' has been deprecated since provider version 1.247.0. New field 'transit_router_peer_attachment_name' instead."},"transitRouterId":{"type":"string","description":"The ID of the local Enterprise Edition transit router.\n"},"transitRouterPeerAttachmentName":{"type":"string","description":"The new name of the inter-region connection.\nThe name can be empty or 1 to 128 characters in length, and cannot start with http:// or https://.\n"}},"required":["bandwidthType","createTime","defaultLinkType","peerTransitRouterId","regionId","status","transitRouterAttachmentId","transitRouterAttachmentName","transitRouterPeerAttachmentName"],"inputProperties":{"autoPublishRouteEnabled":{"type":"boolean","description":"Specifies whether to enable the local Enterprise Edition transit router to automatically advertise the routes of the inter-region connection to the peer transit router. Valid values:\n"},"bandwidth":{"type":"integer","description":"The bandwidth value of the inter-region connection. Unit: Mbit/s.\n\n- This parameter specifies the maximum bandwidth value for the inter-region connection if you set `BandwidthType` to `BandwidthPackage`.\n- This parameter specifies the bandwidth throttling threshold for the inter-region connection if you set `BandwidthType` to `DataTransfer`.\n"},"bandwidthType":{"type":"string","description":"The method that is used to allocate bandwidth to the inter-region connection. Valid values:\n\n- `BandwidthPackage`: allocates bandwidth from a bandwidth plan.\n- `DataTransfer`: bandwidth is billed based on the pay-by-data-transfer metering method.\n"},"cenBandwidthPackageId":{"type":"string","description":"The ID of the bandwidth plan that is used to allocate bandwidth to the inter-region connection.\n\n\u003e **NOTE:**   If you set `BandwidthType` to `DataTransfer`, you do not need to set this parameter.\n"},"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n","willReplaceOnChanges":true},"defaultLinkType":{"type":"string","description":"The default line type.\nValid values: Platinum and Gold.\nPlatinum is supported only when BandwidthType is set to DataTransfer.\n"},"dryRun":{"type":"boolean","description":"Whether to perform PreCheck on this request, including permissions and instance status verification. Value:\n"},"peerTransitRouterId":{"type":"string","description":"The ID of the peer transit router.\n","willReplaceOnChanges":true},"peerTransitRouterRegionId":{"type":"string","description":"The ID of the region where the peer transit router is deployed.\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"The resource type to attachment. Only support `VR` and default value is `VR`.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true},"routeTableAssociationEnabled":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.230.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.230.0."},"routeTablePropagationEnabled":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.230.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.230.0."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterAttachmentDescription":{"type":"string","description":"The new description of the inter-region connection.\nThis parameter is optional. If you enter a description, it must be 1 to 256 characters in length, and cannot start with http:// or https://.\n"},"transitRouterAttachmentName":{"type":"string","description":". Field 'transit_router_attachment_name' has been deprecated from provider version 1.247.0. New field 'transit_router_peer_attachment_name' instead.\n","deprecationMessage":"Field 'transit_router_attachment_name' has been deprecated since provider version 1.247.0. New field 'transit_router_peer_attachment_name' instead."},"transitRouterId":{"type":"string","description":"The ID of the local Enterprise Edition transit router.\n","willReplaceOnChanges":true},"transitRouterPeerAttachmentName":{"type":"string","description":"The new name of the inter-region connection.\nThe name can be empty or 1 to 128 characters in length, and cannot start with http:// or https://.\n"}},"requiredInputs":["peerTransitRouterId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterPeerAttachment resources.\n","properties":{"autoPublishRouteEnabled":{"type":"boolean","description":"Specifies whether to enable the local Enterprise Edition transit router to automatically advertise the routes of the inter-region connection to the peer transit router. Valid values:\n"},"bandwidth":{"type":"integer","description":"The bandwidth value of the inter-region connection. Unit: Mbit/s.\n\n- This parameter specifies the maximum bandwidth value for the inter-region connection if you set `BandwidthType` to `BandwidthPackage`.\n- This parameter specifies the bandwidth throttling threshold for the inter-region connection if you set `BandwidthType` to `DataTransfer`.\n"},"bandwidthType":{"type":"string","description":"The method that is used to allocate bandwidth to the inter-region connection. Valid values:\n\n- `BandwidthPackage`: allocates bandwidth from a bandwidth plan.\n- `DataTransfer`: bandwidth is billed based on the pay-by-data-transfer metering method.\n"},"cenBandwidthPackageId":{"type":"string","description":"The ID of the bandwidth plan that is used to allocate bandwidth to the inter-region connection.\n\n\u003e **NOTE:**   If you set `BandwidthType` to `DataTransfer`, you do not need to set this parameter.\n"},"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource\n"},"defaultLinkType":{"type":"string","description":"The default line type.\nValid values: Platinum and Gold.\nPlatinum is supported only when BandwidthType is set to DataTransfer.\n"},"dryRun":{"type":"boolean","description":"Whether to perform PreCheck on this request, including permissions and instance status verification. Value:\n"},"peerTransitRouterId":{"type":"string","description":"The ID of the peer transit router.\n","willReplaceOnChanges":true},"peerTransitRouterRegionId":{"type":"string","description":"The ID of the region where the peer transit router is deployed.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The ID of the region where the local Enterprise Edition transit router is deployed.\n"},"resourceType":{"type":"string","description":"The resource type to attachment. Only support `VR` and default value is `VR`.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true},"routeTableAssociationEnabled":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.230.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.230.0."},"routeTablePropagationEnabled":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.230.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.230.0."},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterAttachmentDescription":{"type":"string","description":"The new description of the inter-region connection.\nThis parameter is optional. If you enter a description, it must be 1 to 256 characters in length, and cannot start with http:// or https://.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the inter-region connection.\n"},"transitRouterAttachmentName":{"type":"string","description":". Field 'transit_router_attachment_name' has been deprecated from provider version 1.247.0. New field 'transit_router_peer_attachment_name' instead.\n","deprecationMessage":"Field 'transit_router_attachment_name' has been deprecated since provider version 1.247.0. New field 'transit_router_peer_attachment_name' instead."},"transitRouterId":{"type":"string","description":"The ID of the local Enterprise Edition transit router.\n","willReplaceOnChanges":true},"transitRouterPeerAttachmentName":{"type":"string","description":"The new name of the inter-region connection.\nThe name can be empty or 1 to 128 characters in length, and cannot start with http:// or https://.\n"}},"type":"object"}},"alicloud:cen/transitRouterPrefixListAssociation:TransitRouterPrefixListAssociation":{"description":"Provides a Cloud Enterprise Network (CEN) Transit Router Prefix List Association resource.\n\nFor information about Cloud Enterprise Network (CEN) Transit Router Prefix List Association and how to use it, see [What is Transit Router Prefix List Association](https://www.alibabacloud.com/help/en/cloud-enterprise-network/latest/createtransitrouterprefixlistassociation).\n\n\u003e **NOTE:** Available since v1.188.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getAccount({});\nconst example = new alicloud.vpc.PrefixList(\"example\", {entrys: [{\n    cidr: \"192.168.0.0/16\",\n}]});\nconst exampleInstance = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: \"tf_example\",\n    description: \"an example for cen\",\n});\nconst exampleTransitRouter = new alicloud.cen.TransitRouter(\"example\", {\n    transitRouterName: \"tf_example\",\n    cenId: exampleInstance.id,\n});\nconst exampleTransitRouterRouteTable = new alicloud.cen.TransitRouterRouteTable(\"example\", {transitRouterId: exampleTransitRouter.transitRouterId});\nconst exampleTransitRouterPrefixListAssociation = new alicloud.cen.TransitRouterPrefixListAssociation(\"example\", {\n    prefixListId: example.id,\n    transitRouterId: exampleTransitRouter.transitRouterId,\n    transitRouterTableId: exampleTransitRouterRouteTable.transitRouterRouteTableId,\n    nextHop: \"BlackHole\",\n    nextHopType: \"BlackHole\",\n    ownerUid: _default.then(_default =\u003e _default.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_account()\nexample = alicloud.vpc.PrefixList(\"example\", entrys=[{\n    \"cidr\": \"192.168.0.0/16\",\n}])\nexample_instance = alicloud.cen.Instance(\"example\",\n    cen_instance_name=\"tf_example\",\n    description=\"an example for cen\")\nexample_transit_router = alicloud.cen.TransitRouter(\"example\",\n    transit_router_name=\"tf_example\",\n    cen_id=example_instance.id)\nexample_transit_router_route_table = alicloud.cen.TransitRouterRouteTable(\"example\", transit_router_id=example_transit_router.transit_router_id)\nexample_transit_router_prefix_list_association = alicloud.cen.TransitRouterPrefixListAssociation(\"example\",\n    prefix_list_id=example.id,\n    transit_router_id=example_transit_router.transit_router_id,\n    transit_router_table_id=example_transit_router_route_table.transit_router_route_table_id,\n    next_hop=\"BlackHole\",\n    next_hop_type=\"BlackHole\",\n    owner_uid=default.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var example = new AliCloud.Vpc.PrefixList(\"example\", new()\n    {\n        Entrys = new[]\n        {\n            new AliCloud.Vpc.Inputs.PrefixListEntryArgs\n            {\n                Cidr = \"192.168.0.0/16\",\n            },\n        },\n    });\n\n    var exampleInstance = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = \"tf_example\",\n        Description = \"an example for cen\",\n    });\n\n    var exampleTransitRouter = new AliCloud.Cen.TransitRouter(\"example\", new()\n    {\n        TransitRouterName = \"tf_example\",\n        CenId = exampleInstance.Id,\n    });\n\n    var exampleTransitRouterRouteTable = new AliCloud.Cen.TransitRouterRouteTable(\"example\", new()\n    {\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n    });\n\n    var exampleTransitRouterPrefixListAssociation = new AliCloud.Cen.TransitRouterPrefixListAssociation(\"example\", new()\n    {\n        PrefixListId = example.Id,\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n        TransitRouterTableId = exampleTransitRouterRouteTable.TransitRouterRouteTableId,\n        NextHop = \"BlackHole\",\n        NextHopType = \"BlackHole\",\n        OwnerUid = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := vpc.NewPrefixList(ctx, \"example\", \u0026vpc.PrefixListArgs{\n\t\t\tEntrys: vpc.PrefixListEntryArray{\n\t\t\t\t\u0026vpc.PrefixListEntryArgs{\n\t\t\t\t\tCidr: pulumi.String(\"192.168.0.0/16\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(\"tf_example\"),\n\t\t\tDescription:     pulumi.String(\"an example for cen\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouter, err := cen.NewTransitRouter(ctx, \"example\", \u0026cen.TransitRouterArgs{\n\t\t\tTransitRouterName: pulumi.String(\"tf_example\"),\n\t\t\tCenId:             exampleInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouterRouteTable, err := cen.NewTransitRouterRouteTable(ctx, \"example\", \u0026cen.TransitRouterRouteTableArgs{\n\t\t\tTransitRouterId: exampleTransitRouter.TransitRouterId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterPrefixListAssociation(ctx, \"example\", \u0026cen.TransitRouterPrefixListAssociationArgs{\n\t\t\tPrefixListId:         example.ID(),\n\t\t\tTransitRouterId:      exampleTransitRouter.TransitRouterId,\n\t\t\tTransitRouterTableId: exampleTransitRouterRouteTable.TransitRouterRouteTableId,\n\t\t\tNextHop:              pulumi.String(\"BlackHole\"),\n\t\t\tNextHopType:          pulumi.String(\"BlackHole\"),\n\t\t\tOwnerUid:             pulumi.String(_default.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.vpc.PrefixList;\nimport com.pulumi.alicloud.vpc.PrefixListArgs;\nimport com.pulumi.alicloud.vpc.inputs.PrefixListEntryArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTable;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTableArgs;\nimport com.pulumi.alicloud.cen.TransitRouterPrefixListAssociation;\nimport com.pulumi.alicloud.cen.TransitRouterPrefixListAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var example = new PrefixList(\"example\", PrefixListArgs.builder()\n            .entrys(PrefixListEntryArgs.builder()\n                .cidr(\"192.168.0.0/16\")\n                .build())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .cenInstanceName(\"tf_example\")\n            .description(\"an example for cen\")\n            .build());\n\n        var exampleTransitRouter = new TransitRouter(\"exampleTransitRouter\", TransitRouterArgs.builder()\n            .transitRouterName(\"tf_example\")\n            .cenId(exampleInstance.id())\n            .build());\n\n        var exampleTransitRouterRouteTable = new TransitRouterRouteTable(\"exampleTransitRouterRouteTable\", TransitRouterRouteTableArgs.builder()\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .build());\n\n        var exampleTransitRouterPrefixListAssociation = new TransitRouterPrefixListAssociation(\"exampleTransitRouterPrefixListAssociation\", TransitRouterPrefixListAssociationArgs.builder()\n            .prefixListId(example.id())\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .transitRouterTableId(exampleTransitRouterRouteTable.transitRouterRouteTableId())\n            .nextHop(\"BlackHole\")\n            .nextHopType(\"BlackHole\")\n            .ownerUid(default_.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:vpc:PrefixList\n    properties:\n      entrys:\n        - cidr: 192.168.0.0/16\n  exampleInstance:\n    type: alicloud:cen:Instance\n    name: example\n    properties:\n      cenInstanceName: tf_example\n      description: an example for cen\n  exampleTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: example\n    properties:\n      transitRouterName: tf_example\n      cenId: ${exampleInstance.id}\n  exampleTransitRouterRouteTable:\n    type: alicloud:cen:TransitRouterRouteTable\n    name: example\n    properties:\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n  exampleTransitRouterPrefixListAssociation:\n    type: alicloud:cen:TransitRouterPrefixListAssociation\n    name: example\n    properties:\n      prefixListId: ${example.id}\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n      transitRouterTableId: ${exampleTransitRouterRouteTable.transitRouterRouteTableId}\n      nextHop: BlackHole\n      nextHopType: BlackHole\n      ownerUid: ${default.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Enterprise Network (CEN) Transit Router Prefix List Association can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/transitRouterPrefixListAssociation:TransitRouterPrefixListAssociation default \u003cprefix_list_id\u003e:\u003ctransit_router_id\u003e:\u003ctransit_router_table_id\u003e:\u003cnext_hop\u003e.\n```\n\n","properties":{"nextHop":{"type":"string","description":"The ID of the next hop. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`nextHop`\" pulumi-lang-dotnet=\"`NextHop`\" pulumi-lang-go=\"`nextHop`\" pulumi-lang-python=\"`next_hop`\" pulumi-lang-yaml=\"`nextHop`\" pulumi-lang-java=\"`nextHop`\"\u003e`next_hop`\u003c/span\u003e is set to `BlackHole`, you must set this parameter to `BlackHole`.\n"},"nextHopType":{"type":"string","description":"The type of the next hop. Valid values:\n- `BlackHole`: Specifies that all the CIDR blocks in the prefix list are blackhole routes. Packets destined for the CIDR blocks are dropped.\n- `VPC`: Specifies that the next hop of the CIDR blocks in the prefix list is a virtual private cloud (VPC) connection.\n- `VBR`: Specifies that the next hop of the CIDR blocks in the prefix list is a virtual border router (VBR) connection.\n- `TR`: Specifies that the next hop of the CIDR blocks in the prefix list is an inter-region connection.\n"},"ownerUid":{"type":"integer","description":"The ID of the Alibaba Cloud account to which the prefix list belongs.\n"},"prefixListId":{"type":"string","description":"The ID of the prefix list.\n"},"status":{"type":"string","description":"The status of the prefix list.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"},"transitRouterTableId":{"type":"string","description":"The ID of the route table of the transit router.\n"}},"required":["nextHop","nextHopType","ownerUid","prefixListId","status","transitRouterId","transitRouterTableId"],"inputProperties":{"nextHop":{"type":"string","description":"The ID of the next hop. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`nextHop`\" pulumi-lang-dotnet=\"`NextHop`\" pulumi-lang-go=\"`nextHop`\" pulumi-lang-python=\"`next_hop`\" pulumi-lang-yaml=\"`nextHop`\" pulumi-lang-java=\"`nextHop`\"\u003e`next_hop`\u003c/span\u003e is set to `BlackHole`, you must set this parameter to `BlackHole`.\n","willReplaceOnChanges":true},"nextHopType":{"type":"string","description":"The type of the next hop. Valid values:\n- `BlackHole`: Specifies that all the CIDR blocks in the prefix list are blackhole routes. Packets destined for the CIDR blocks are dropped.\n- `VPC`: Specifies that the next hop of the CIDR blocks in the prefix list is a virtual private cloud (VPC) connection.\n- `VBR`: Specifies that the next hop of the CIDR blocks in the prefix list is a virtual border router (VBR) connection.\n- `TR`: Specifies that the next hop of the CIDR blocks in the prefix list is an inter-region connection.\n","willReplaceOnChanges":true},"ownerUid":{"type":"integer","description":"The ID of the Alibaba Cloud account to which the prefix list belongs.\n","willReplaceOnChanges":true},"prefixListId":{"type":"string","description":"The ID of the prefix list.\n","willReplaceOnChanges":true},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n","willReplaceOnChanges":true},"transitRouterTableId":{"type":"string","description":"The ID of the route table of the transit router.\n","willReplaceOnChanges":true}},"requiredInputs":["nextHop","prefixListId","transitRouterId","transitRouterTableId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterPrefixListAssociation resources.\n","properties":{"nextHop":{"type":"string","description":"The ID of the next hop. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`nextHop`\" pulumi-lang-dotnet=\"`NextHop`\" pulumi-lang-go=\"`nextHop`\" pulumi-lang-python=\"`next_hop`\" pulumi-lang-yaml=\"`nextHop`\" pulumi-lang-java=\"`nextHop`\"\u003e`next_hop`\u003c/span\u003e is set to `BlackHole`, you must set this parameter to `BlackHole`.\n","willReplaceOnChanges":true},"nextHopType":{"type":"string","description":"The type of the next hop. Valid values:\n- `BlackHole`: Specifies that all the CIDR blocks in the prefix list are blackhole routes. Packets destined for the CIDR blocks are dropped.\n- `VPC`: Specifies that the next hop of the CIDR blocks in the prefix list is a virtual private cloud (VPC) connection.\n- `VBR`: Specifies that the next hop of the CIDR blocks in the prefix list is a virtual border router (VBR) connection.\n- `TR`: Specifies that the next hop of the CIDR blocks in the prefix list is an inter-region connection.\n","willReplaceOnChanges":true},"ownerUid":{"type":"integer","description":"The ID of the Alibaba Cloud account to which the prefix list belongs.\n","willReplaceOnChanges":true},"prefixListId":{"type":"string","description":"The ID of the prefix list.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the prefix list.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n","willReplaceOnChanges":true},"transitRouterTableId":{"type":"string","description":"The ID of the route table of the transit router.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/transitRouterRouteEntry:TransitRouterRouteEntry":{"description":"Provides a CEN transit router route entry resource.[What is Cen Transit Router Route Entry](https://www.alibabacloud.com/help/en/cloud-enterprise-network/latest/api-cbn-2017-09-12-createtransitrouterrouteentry)\n\n\u003e **NOTE:** Available since v1.126.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst exampleInstance = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: name,\n    description: \"an example for cen\",\n});\nconst exampleTransitRouter = new alicloud.cen.TransitRouter(\"example\", {\n    transitRouterName: name,\n    cenId: exampleInstance.id,\n});\nconst exampleTransitRouterRouteTable = new alicloud.cen.TransitRouterRouteTable(\"example\", {transitRouterId: exampleTransitRouter.transitRouterId});\nconst example = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"^preserved-NODELETING\",\n});\nconst vlanId = new random.index.Integer(\"vlan_id\", {\n    max: 2999,\n    min: 1,\n});\nconst exampleVirtualBorderRouter = new alicloud.expressconnect.VirtualBorderRouter(\"example\", {\n    localGatewayIp: \"10.0.0.1\",\n    peerGatewayIp: \"10.0.0.2\",\n    peeringSubnetMask: \"255.255.255.252\",\n    physicalConnectionId: example.then(example =\u003e example.connections?.[0]?.id),\n    virtualBorderRouterName: name,\n    vlanId: vlanId.id,\n    minRxInterval: 1000,\n    minTxInterval: 1000,\n    detectMultiplier: 10,\n});\nconst exampleTransitRouterVbrAttachment = new alicloud.cen.TransitRouterVbrAttachment(\"example\", {\n    vbrId: exampleVirtualBorderRouter.id,\n    cenId: exampleInstance.id,\n    transitRouterId: exampleTransitRouter.transitRouterId,\n    autoPublishRouteEnabled: true,\n    transitRouterAttachmentName: name,\n    transitRouterAttachmentDescription: name,\n});\nconst exampleTransitRouterRouteEntry = new alicloud.cen.TransitRouterRouteEntry(\"example\", {\n    transitRouterRouteTableId: exampleTransitRouterRouteTable.transitRouterRouteTableId,\n    transitRouterRouteEntryDestinationCidrBlock: \"192.168.0.0/24\",\n    transitRouterRouteEntryNextHopType: \"Attachment\",\n    transitRouterRouteEntryName: name,\n    transitRouterRouteEntryDescription: name,\n    transitRouterRouteEntryNextHopId: exampleTransitRouterVbrAttachment.transitRouterAttachmentId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\nexample_instance = alicloud.cen.Instance(\"example\",\n    cen_instance_name=name,\n    description=\"an example for cen\")\nexample_transit_router = alicloud.cen.TransitRouter(\"example\",\n    transit_router_name=name,\n    cen_id=example_instance.id)\nexample_transit_router_route_table = alicloud.cen.TransitRouterRouteTable(\"example\", transit_router_id=example_transit_router.transit_router_id)\nexample = alicloud.expressconnect.get_physical_connections(name_regex=\"^preserved-NODELETING\")\nvlan_id = random.index.Integer(\"vlan_id\",\n    max=2999,\n    min=1)\nexample_virtual_border_router = alicloud.expressconnect.VirtualBorderRouter(\"example\",\n    local_gateway_ip=\"10.0.0.1\",\n    peer_gateway_ip=\"10.0.0.2\",\n    peering_subnet_mask=\"255.255.255.252\",\n    physical_connection_id=example.connections[0].id,\n    virtual_border_router_name=name,\n    vlan_id=vlan_id[\"id\"],\n    min_rx_interval=1000,\n    min_tx_interval=1000,\n    detect_multiplier=10)\nexample_transit_router_vbr_attachment = alicloud.cen.TransitRouterVbrAttachment(\"example\",\n    vbr_id=example_virtual_border_router.id,\n    cen_id=example_instance.id,\n    transit_router_id=example_transit_router.transit_router_id,\n    auto_publish_route_enabled=True,\n    transit_router_attachment_name=name,\n    transit_router_attachment_description=name)\nexample_transit_router_route_entry = alicloud.cen.TransitRouterRouteEntry(\"example\",\n    transit_router_route_table_id=example_transit_router_route_table.transit_router_route_table_id,\n    transit_router_route_entry_destination_cidr_block=\"192.168.0.0/24\",\n    transit_router_route_entry_next_hop_type=\"Attachment\",\n    transit_router_route_entry_name=name,\n    transit_router_route_entry_description=name,\n    transit_router_route_entry_next_hop_id=example_transit_router_vbr_attachment.transit_router_attachment_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var exampleInstance = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = name,\n        Description = \"an example for cen\",\n    });\n\n    var exampleTransitRouter = new AliCloud.Cen.TransitRouter(\"example\", new()\n    {\n        TransitRouterName = name,\n        CenId = exampleInstance.Id,\n    });\n\n    var exampleTransitRouterRouteTable = new AliCloud.Cen.TransitRouterRouteTable(\"example\", new()\n    {\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n    });\n\n    var example = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"^preserved-NODELETING\",\n    });\n\n    var vlanId = new Random.Index.Integer(\"vlan_id\", new()\n    {\n        Max = 2999,\n        Min = 1,\n    });\n\n    var exampleVirtualBorderRouter = new AliCloud.ExpressConnect.VirtualBorderRouter(\"example\", new()\n    {\n        LocalGatewayIp = \"10.0.0.1\",\n        PeerGatewayIp = \"10.0.0.2\",\n        PeeringSubnetMask = \"255.255.255.252\",\n        PhysicalConnectionId = example.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Connections[0]?.Id),\n        VirtualBorderRouterName = name,\n        VlanId = vlanId.Id,\n        MinRxInterval = 1000,\n        MinTxInterval = 1000,\n        DetectMultiplier = 10,\n    });\n\n    var exampleTransitRouterVbrAttachment = new AliCloud.Cen.TransitRouterVbrAttachment(\"example\", new()\n    {\n        VbrId = exampleVirtualBorderRouter.Id,\n        CenId = exampleInstance.Id,\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n        AutoPublishRouteEnabled = true,\n        TransitRouterAttachmentName = name,\n        TransitRouterAttachmentDescription = name,\n    });\n\n    var exampleTransitRouterRouteEntry = new AliCloud.Cen.TransitRouterRouteEntry(\"example\", new()\n    {\n        TransitRouterRouteTableId = exampleTransitRouterRouteTable.TransitRouterRouteTableId,\n        TransitRouterRouteEntryDestinationCidrBlock = \"192.168.0.0/24\",\n        TransitRouterRouteEntryNextHopType = \"Attachment\",\n        TransitRouterRouteEntryName = name,\n        TransitRouterRouteEntryDescription = name,\n        TransitRouterRouteEntryNextHopId = exampleTransitRouterVbrAttachment.TransitRouterAttachmentId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texampleInstance, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tDescription:     pulumi.String(\"an example for cen\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouter, err := cen.NewTransitRouter(ctx, \"example\", \u0026cen.TransitRouterArgs{\n\t\t\tTransitRouterName: pulumi.String(name),\n\t\t\tCenId:             exampleInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouterRouteTable, err := cen.NewTransitRouterRouteTable(ctx, \"example\", \u0026cen.TransitRouterRouteTableArgs{\n\t\t\tTransitRouterId: exampleTransitRouter.TransitRouterId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvlanId, err := random.NewInteger(ctx, \"vlan_id\", \u0026random.IntegerArgs{\n\t\t\tMax: 2999,\n\t\t\tMin: 1,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualBorderRouter, err := expressconnect.NewVirtualBorderRouter(ctx, \"example\", \u0026expressconnect.VirtualBorderRouterArgs{\n\t\t\tLocalGatewayIp:          pulumi.String(\"10.0.0.1\"),\n\t\t\tPeerGatewayIp:           pulumi.String(\"10.0.0.2\"),\n\t\t\tPeeringSubnetMask:       pulumi.String(\"255.255.255.252\"),\n\t\t\tPhysicalConnectionId:    pulumi.String(example.Connections[0].Id),\n\t\t\tVirtualBorderRouterName: pulumi.String(name),\n\t\t\tVlanId:                  vlanId.Id,\n\t\t\tMinRxInterval:           pulumi.Int(1000),\n\t\t\tMinTxInterval:           pulumi.Int(1000),\n\t\t\tDetectMultiplier:        pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouterVbrAttachment, err := cen.NewTransitRouterVbrAttachment(ctx, \"example\", \u0026cen.TransitRouterVbrAttachmentArgs{\n\t\t\tVbrId:                              exampleVirtualBorderRouter.ID(),\n\t\t\tCenId:                              exampleInstance.ID(),\n\t\t\tTransitRouterId:                    exampleTransitRouter.TransitRouterId,\n\t\t\tAutoPublishRouteEnabled:            pulumi.Bool(true),\n\t\t\tTransitRouterAttachmentName:        pulumi.String(name),\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterRouteEntry(ctx, \"example\", \u0026cen.TransitRouterRouteEntryArgs{\n\t\t\tTransitRouterRouteTableId:                   exampleTransitRouterRouteTable.TransitRouterRouteTableId,\n\t\t\tTransitRouterRouteEntryDestinationCidrBlock: pulumi.String(\"192.168.0.0/24\"),\n\t\t\tTransitRouterRouteEntryNextHopType:          pulumi.String(\"Attachment\"),\n\t\t\tTransitRouterRouteEntryName:                 pulumi.String(name),\n\t\t\tTransitRouterRouteEntryDescription:          pulumi.String(name),\n\t\t\tTransitRouterRouteEntryNextHopId:            exampleTransitRouterVbrAttachment.TransitRouterAttachmentId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTable;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTableArgs;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouter;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVbrAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVbrAttachmentArgs;\nimport com.pulumi.alicloud.cen.TransitRouterRouteEntry;\nimport com.pulumi.alicloud.cen.TransitRouterRouteEntryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .description(\"an example for cen\")\n            .build());\n\n        var exampleTransitRouter = new TransitRouter(\"exampleTransitRouter\", TransitRouterArgs.builder()\n            .transitRouterName(name)\n            .cenId(exampleInstance.id())\n            .build());\n\n        var exampleTransitRouterRouteTable = new TransitRouterRouteTable(\"exampleTransitRouterRouteTable\", TransitRouterRouteTableArgs.builder()\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .build());\n\n        final var example = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"^preserved-NODELETING\")\n            .build());\n\n        var vlanId = new Integer(\"vlanId\", IntegerArgs.builder()\n            .max(2999)\n            .min(1)\n            .build());\n\n        var exampleVirtualBorderRouter = new VirtualBorderRouter(\"exampleVirtualBorderRouter\", VirtualBorderRouterArgs.builder()\n            .localGatewayIp(\"10.0.0.1\")\n            .peerGatewayIp(\"10.0.0.2\")\n            .peeringSubnetMask(\"255.255.255.252\")\n            .physicalConnectionId(example.connections()[0].id())\n            .virtualBorderRouterName(name)\n            .vlanId(vlanId.id())\n            .minRxInterval(1000)\n            .minTxInterval(1000)\n            .detectMultiplier(10)\n            .build());\n\n        var exampleTransitRouterVbrAttachment = new TransitRouterVbrAttachment(\"exampleTransitRouterVbrAttachment\", TransitRouterVbrAttachmentArgs.builder()\n            .vbrId(exampleVirtualBorderRouter.id())\n            .cenId(exampleInstance.id())\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .autoPublishRouteEnabled(true)\n            .transitRouterAttachmentName(name)\n            .transitRouterAttachmentDescription(name)\n            .build());\n\n        var exampleTransitRouterRouteEntry = new TransitRouterRouteEntry(\"exampleTransitRouterRouteEntry\", TransitRouterRouteEntryArgs.builder()\n            .transitRouterRouteTableId(exampleTransitRouterRouteTable.transitRouterRouteTableId())\n            .transitRouterRouteEntryDestinationCidrBlock(\"192.168.0.0/24\")\n            .transitRouterRouteEntryNextHopType(\"Attachment\")\n            .transitRouterRouteEntryName(name)\n            .transitRouterRouteEntryDescription(name)\n            .transitRouterRouteEntryNextHopId(exampleTransitRouterVbrAttachment.transitRouterAttachmentId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  exampleInstance:\n    type: alicloud:cen:Instance\n    name: example\n    properties:\n      cenInstanceName: ${name}\n      description: an example for cen\n  exampleTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: example\n    properties:\n      transitRouterName: ${name}\n      cenId: ${exampleInstance.id}\n  exampleTransitRouterRouteTable:\n    type: alicloud:cen:TransitRouterRouteTable\n    name: example\n    properties:\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n  vlanId:\n    type: random:Integer\n    name: vlan_id\n    properties:\n      max: 2999\n      min: 1\n  exampleVirtualBorderRouter:\n    type: alicloud:expressconnect:VirtualBorderRouter\n    name: example\n    properties:\n      localGatewayIp: 10.0.0.1\n      peerGatewayIp: 10.0.0.2\n      peeringSubnetMask: 255.255.255.252\n      physicalConnectionId: ${example.connections[0].id}\n      virtualBorderRouterName: ${name}\n      vlanId: ${vlanId.id}\n      minRxInterval: 1000\n      minTxInterval: 1000\n      detectMultiplier: 10\n  exampleTransitRouterVbrAttachment:\n    type: alicloud:cen:TransitRouterVbrAttachment\n    name: example\n    properties:\n      vbrId: ${exampleVirtualBorderRouter.id}\n      cenId: ${exampleInstance.id}\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n      autoPublishRouteEnabled: true\n      transitRouterAttachmentName: ${name}\n      transitRouterAttachmentDescription: ${name}\n  exampleTransitRouterRouteEntry:\n    type: alicloud:cen:TransitRouterRouteEntry\n    name: example\n    properties:\n      transitRouterRouteTableId: ${exampleTransitRouterRouteTable.transitRouterRouteTableId}\n      transitRouterRouteEntryDestinationCidrBlock: 192.168.0.0/24\n      transitRouterRouteEntryNextHopType: Attachment\n      transitRouterRouteEntryName: ${name}\n      transitRouterRouteEntryDescription: ${name}\n      transitRouterRouteEntryNextHopId: ${exampleTransitRouterVbrAttachment.transitRouterAttachmentId}\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: ^preserved-NODELETING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCEN instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/transitRouterRouteEntry:TransitRouterRouteEntry default vtb-*********:rte-*******\n```\n\n","properties":{"dryRun":{"type":"boolean","description":"The dry run.\n\n\u003e **NOTE:** If\u003cspan pulumi-lang-nodejs=\" transitRouterRouteEntryNextHopType \" pulumi-lang-dotnet=\" TransitRouterRouteEntryNextHopType \" pulumi-lang-go=\" transitRouterRouteEntryNextHopType \" pulumi-lang-python=\" transit_router_route_entry_next_hop_type \" pulumi-lang-yaml=\" transitRouterRouteEntryNextHopType \" pulumi-lang-java=\" transitRouterRouteEntryNextHopType \"\u003e transit_router_route_entry_next_hop_type \u003c/span\u003eis `Attachment`,\u003cspan pulumi-lang-nodejs=\" transitRouterRouteEntryNextHopId \" pulumi-lang-dotnet=\" TransitRouterRouteEntryNextHopId \" pulumi-lang-go=\" transitRouterRouteEntryNextHopId \" pulumi-lang-python=\" transit_router_route_entry_next_hop_id \" pulumi-lang-yaml=\" transitRouterRouteEntryNextHopId \" pulumi-lang-java=\" transitRouterRouteEntryNextHopId \"\u003e transit_router_route_entry_next_hop_id \u003c/span\u003eis required.\nIf\u003cspan pulumi-lang-nodejs=\" transitRouterRouteEntryNextHopType \" pulumi-lang-dotnet=\" TransitRouterRouteEntryNextHopType \" pulumi-lang-go=\" transitRouterRouteEntryNextHopType \" pulumi-lang-python=\" transit_router_route_entry_next_hop_type \" pulumi-lang-yaml=\" transitRouterRouteEntryNextHopType \" pulumi-lang-java=\" transitRouterRouteEntryNextHopType \"\u003e transit_router_route_entry_next_hop_type \u003c/span\u003eis `BlackHole`,\u003cspan pulumi-lang-nodejs=\" transitRouterRouteEntryNextHopId \" pulumi-lang-dotnet=\" TransitRouterRouteEntryNextHopId \" pulumi-lang-go=\" transitRouterRouteEntryNextHopId \" pulumi-lang-python=\" transit_router_route_entry_next_hop_id \" pulumi-lang-yaml=\" transitRouterRouteEntryNextHopId \" pulumi-lang-java=\" transitRouterRouteEntryNextHopId \"\u003e transit_router_route_entry_next_hop_id \u003c/span\u003ecannot be filled.\n"},"status":{"type":"string","description":"The associating status of the Transit Router.\n"},"transitRouterRouteEntryDescription":{"type":"string","description":"The description of the transit router route entry.\n"},"transitRouterRouteEntryDestinationCidrBlock":{"type":"string","description":"The CIDR of the transit router route entry.\n"},"transitRouterRouteEntryId":{"type":"string","description":"The ID of the route entry.\n"},"transitRouterRouteEntryName":{"type":"string","description":"The name of the transit router route entry.\n"},"transitRouterRouteEntryNextHopId":{"type":"string","description":"The ID of the transit router route entry next hop.\n"},"transitRouterRouteEntryNextHopType":{"type":"string","description":"The Type of the transit router route entry next hop,Valid values `Attachment` and `BlackHole`.\n"},"transitRouterRouteTableId":{"type":"string","description":"The ID of the transit router route table.\n"}},"required":["status","transitRouterRouteEntryDestinationCidrBlock","transitRouterRouteEntryId","transitRouterRouteEntryNextHopType","transitRouterRouteTableId"],"inputProperties":{"dryRun":{"type":"boolean","description":"The dry run.\n\n\u003e **NOTE:** If\u003cspan pulumi-lang-nodejs=\" transitRouterRouteEntryNextHopType \" pulumi-lang-dotnet=\" TransitRouterRouteEntryNextHopType \" pulumi-lang-go=\" transitRouterRouteEntryNextHopType \" pulumi-lang-python=\" transit_router_route_entry_next_hop_type \" pulumi-lang-yaml=\" transitRouterRouteEntryNextHopType \" pulumi-lang-java=\" transitRouterRouteEntryNextHopType \"\u003e transit_router_route_entry_next_hop_type \u003c/span\u003eis `Attachment`,\u003cspan pulumi-lang-nodejs=\" transitRouterRouteEntryNextHopId \" pulumi-lang-dotnet=\" TransitRouterRouteEntryNextHopId \" pulumi-lang-go=\" transitRouterRouteEntryNextHopId \" pulumi-lang-python=\" transit_router_route_entry_next_hop_id \" pulumi-lang-yaml=\" transitRouterRouteEntryNextHopId \" pulumi-lang-java=\" transitRouterRouteEntryNextHopId \"\u003e transit_router_route_entry_next_hop_id \u003c/span\u003eis required.\nIf\u003cspan pulumi-lang-nodejs=\" transitRouterRouteEntryNextHopType \" pulumi-lang-dotnet=\" TransitRouterRouteEntryNextHopType \" pulumi-lang-go=\" transitRouterRouteEntryNextHopType \" pulumi-lang-python=\" transit_router_route_entry_next_hop_type \" pulumi-lang-yaml=\" transitRouterRouteEntryNextHopType \" pulumi-lang-java=\" transitRouterRouteEntryNextHopType \"\u003e transit_router_route_entry_next_hop_type \u003c/span\u003eis `BlackHole`,\u003cspan pulumi-lang-nodejs=\" transitRouterRouteEntryNextHopId \" pulumi-lang-dotnet=\" TransitRouterRouteEntryNextHopId \" pulumi-lang-go=\" transitRouterRouteEntryNextHopId \" pulumi-lang-python=\" transit_router_route_entry_next_hop_id \" pulumi-lang-yaml=\" transitRouterRouteEntryNextHopId \" pulumi-lang-java=\" transitRouterRouteEntryNextHopId \"\u003e transit_router_route_entry_next_hop_id \u003c/span\u003ecannot be filled.\n"},"transitRouterRouteEntryDescription":{"type":"string","description":"The description of the transit router route entry.\n"},"transitRouterRouteEntryDestinationCidrBlock":{"type":"string","description":"The CIDR of the transit router route entry.\n","willReplaceOnChanges":true},"transitRouterRouteEntryName":{"type":"string","description":"The name of the transit router route entry.\n"},"transitRouterRouteEntryNextHopId":{"type":"string","description":"The ID of the transit router route entry next hop.\n","willReplaceOnChanges":true},"transitRouterRouteEntryNextHopType":{"type":"string","description":"The Type of the transit router route entry next hop,Valid values `Attachment` and `BlackHole`.\n","willReplaceOnChanges":true},"transitRouterRouteTableId":{"type":"string","description":"The ID of the transit router route table.\n","willReplaceOnChanges":true}},"requiredInputs":["transitRouterRouteEntryDestinationCidrBlock","transitRouterRouteEntryNextHopType","transitRouterRouteTableId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterRouteEntry resources.\n","properties":{"dryRun":{"type":"boolean","description":"The dry run.\n\n\u003e **NOTE:** If\u003cspan pulumi-lang-nodejs=\" transitRouterRouteEntryNextHopType \" pulumi-lang-dotnet=\" TransitRouterRouteEntryNextHopType \" pulumi-lang-go=\" transitRouterRouteEntryNextHopType \" pulumi-lang-python=\" transit_router_route_entry_next_hop_type \" pulumi-lang-yaml=\" transitRouterRouteEntryNextHopType \" pulumi-lang-java=\" transitRouterRouteEntryNextHopType \"\u003e transit_router_route_entry_next_hop_type \u003c/span\u003eis `Attachment`,\u003cspan pulumi-lang-nodejs=\" transitRouterRouteEntryNextHopId \" pulumi-lang-dotnet=\" TransitRouterRouteEntryNextHopId \" pulumi-lang-go=\" transitRouterRouteEntryNextHopId \" pulumi-lang-python=\" transit_router_route_entry_next_hop_id \" pulumi-lang-yaml=\" transitRouterRouteEntryNextHopId \" pulumi-lang-java=\" transitRouterRouteEntryNextHopId \"\u003e transit_router_route_entry_next_hop_id \u003c/span\u003eis required.\nIf\u003cspan pulumi-lang-nodejs=\" transitRouterRouteEntryNextHopType \" pulumi-lang-dotnet=\" TransitRouterRouteEntryNextHopType \" pulumi-lang-go=\" transitRouterRouteEntryNextHopType \" pulumi-lang-python=\" transit_router_route_entry_next_hop_type \" pulumi-lang-yaml=\" transitRouterRouteEntryNextHopType \" pulumi-lang-java=\" transitRouterRouteEntryNextHopType \"\u003e transit_router_route_entry_next_hop_type \u003c/span\u003eis `BlackHole`,\u003cspan pulumi-lang-nodejs=\" transitRouterRouteEntryNextHopId \" pulumi-lang-dotnet=\" TransitRouterRouteEntryNextHopId \" pulumi-lang-go=\" transitRouterRouteEntryNextHopId \" pulumi-lang-python=\" transit_router_route_entry_next_hop_id \" pulumi-lang-yaml=\" transitRouterRouteEntryNextHopId \" pulumi-lang-java=\" transitRouterRouteEntryNextHopId \"\u003e transit_router_route_entry_next_hop_id \u003c/span\u003ecannot be filled.\n"},"status":{"type":"string","description":"The associating status of the Transit Router.\n"},"transitRouterRouteEntryDescription":{"type":"string","description":"The description of the transit router route entry.\n"},"transitRouterRouteEntryDestinationCidrBlock":{"type":"string","description":"The CIDR of the transit router route entry.\n","willReplaceOnChanges":true},"transitRouterRouteEntryId":{"type":"string","description":"The ID of the route entry.\n"},"transitRouterRouteEntryName":{"type":"string","description":"The name of the transit router route entry.\n"},"transitRouterRouteEntryNextHopId":{"type":"string","description":"The ID of the transit router route entry next hop.\n","willReplaceOnChanges":true},"transitRouterRouteEntryNextHopType":{"type":"string","description":"The Type of the transit router route entry next hop,Valid values `Attachment` and `BlackHole`.\n","willReplaceOnChanges":true},"transitRouterRouteTableId":{"type":"string","description":"The ID of the transit router route table.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/transitRouterRouteTable:TransitRouterRouteTable":{"description":"Provides a CEN transit router route table resource.[What is Cen Transit Router Route Table](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-createtransitrouterroutetable)\n\n\u003e **NOTE:** Available since v1.126.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: \"tf_example\",\n    description: \"an example for cen\",\n});\nconst exampleTransitRouter = new alicloud.cen.TransitRouter(\"example\", {\n    transitRouterName: \"tf_example\",\n    cenId: example.id,\n});\nconst exampleTransitRouterRouteTable = new alicloud.cen.TransitRouterRouteTable(\"example\", {transitRouterId: exampleTransitRouter.transitRouterId});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cen.Instance(\"example\",\n    cen_instance_name=\"tf_example\",\n    description=\"an example for cen\")\nexample_transit_router = alicloud.cen.TransitRouter(\"example\",\n    transit_router_name=\"tf_example\",\n    cen_id=example.id)\nexample_transit_router_route_table = alicloud.cen.TransitRouterRouteTable(\"example\", transit_router_id=example_transit_router.transit_router_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = \"tf_example\",\n        Description = \"an example for cen\",\n    });\n\n    var exampleTransitRouter = new AliCloud.Cen.TransitRouter(\"example\", new()\n    {\n        TransitRouterName = \"tf_example\",\n        CenId = example.Id,\n    });\n\n    var exampleTransitRouterRouteTable = new AliCloud.Cen.TransitRouterRouteTable(\"example\", new()\n    {\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(\"tf_example\"),\n\t\t\tDescription:     pulumi.String(\"an example for cen\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouter, err := cen.NewTransitRouter(ctx, \"example\", \u0026cen.TransitRouterArgs{\n\t\t\tTransitRouterName: pulumi.String(\"tf_example\"),\n\t\t\tCenId:             example.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterRouteTable(ctx, \"example\", \u0026cen.TransitRouterRouteTableArgs{\n\t\t\tTransitRouterId: exampleTransitRouter.TransitRouterId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTable;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Instance(\"example\", InstanceArgs.builder()\n            .cenInstanceName(\"tf_example\")\n            .description(\"an example for cen\")\n            .build());\n\n        var exampleTransitRouter = new TransitRouter(\"exampleTransitRouter\", TransitRouterArgs.builder()\n            .transitRouterName(\"tf_example\")\n            .cenId(example.id())\n            .build());\n\n        var exampleTransitRouterRouteTable = new TransitRouterRouteTable(\"exampleTransitRouterRouteTable\", TransitRouterRouteTableArgs.builder()\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: tf_example\n      description: an example for cen\n  exampleTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: example\n    properties:\n      transitRouterName: tf_example\n      cenId: ${example.id}\n  exampleTransitRouterRouteTable:\n    type: alicloud:cen:TransitRouterRouteTable\n    name: example\n    properties:\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCEN transit router route table  can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/transitRouterRouteTable:TransitRouterRouteTable default tr-*********:vtb-********\n```\n\n","properties":{"dryRun":{"type":"boolean","description":"The dry run.\n"},"status":{"type":"string","description":"The associating status of the Transit Router.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"},"transitRouterRouteTableDescription":{"type":"string","description":"The description of the transit router route table.\n"},"transitRouterRouteTableId":{"type":"string","description":"The id of the transit router route table.\n"},"transitRouterRouteTableName":{"type":"string","description":"The name of the transit router route table.\n"},"transitRouterRouteTableType":{"type":"string","description":"The type of the transit router route table. Valid values: `Custom`, `System`.\n"}},"required":["status","transitRouterId","transitRouterRouteTableDescription","transitRouterRouteTableId","transitRouterRouteTableType"],"inputProperties":{"dryRun":{"type":"boolean","description":"The dry run.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n","willReplaceOnChanges":true},"transitRouterRouteTableDescription":{"type":"string","description":"The description of the transit router route table.\n"},"transitRouterRouteTableName":{"type":"string","description":"The name of the transit router route table.\n"}},"requiredInputs":["transitRouterId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterRouteTable resources.\n","properties":{"dryRun":{"type":"boolean","description":"The dry run.\n"},"status":{"type":"string","description":"The associating status of the Transit Router.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n","willReplaceOnChanges":true},"transitRouterRouteTableDescription":{"type":"string","description":"The description of the transit router route table.\n"},"transitRouterRouteTableId":{"type":"string","description":"The id of the transit router route table.\n"},"transitRouterRouteTableName":{"type":"string","description":"The name of the transit router route table.\n"},"transitRouterRouteTableType":{"type":"string","description":"The type of the transit router route table. Valid values: `Custom`, `System`.\n"}},"type":"object"}},"alicloud:cen/transitRouterRouteTableAssociation:TransitRouterRouteTableAssociation":{"description":"Provides a Cloud Enterprise Network (CEN) Transit Router Route Table Association resource.\n\nThe routing association of the routing table of the forwarding router.\n\nFor information about Cloud Enterprise Network (CEN) Transit Router Route Table Association and how to use it, see [What is Transit Router Route Table Association](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-associatetransitrouterattachmentwithroutetable).\n\n\u003e **NOTE:** Available since v1.126.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.cen.getTransitRouterAvailableResources({});\nconst masterZone = _default.then(_default =\u003e _default.resources?.[0]?.masterZones?.[0]);\nconst slaveZone = _default.then(_default =\u003e _default.resources?.[0]?.slaveZones?.[1]);\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultMaster = new alicloud.vpc.Switch(\"default_master\", {\n    vswitchName: name,\n    cidrBlock: \"192.168.1.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: masterZone,\n});\nconst defaultSlave = new alicloud.vpc.Switch(\"default_slave\", {\n    vswitchName: name,\n    cidrBlock: \"192.168.2.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: slaveZone,\n});\nconst defaultInstance = new alicloud.cen.Instance(\"default\", {\n    cenInstanceName: name,\n    protectionLevel: \"REDUCED\",\n});\nconst defaultTransitRouter = new alicloud.cen.TransitRouter(\"default\", {\n    transitRouterName: name,\n    cenId: defaultInstance.id,\n});\nconst defaultTransitRouterRouteTable = new alicloud.cen.TransitRouterRouteTable(\"default\", {transitRouterId: defaultTransitRouter.transitRouterId});\nconst defaultTransitRouterVpcAttachment = new alicloud.cen.TransitRouterVpcAttachment(\"default\", {\n    cenId: defaultInstance.id,\n    transitRouterId: defaultTransitRouter.transitRouterId,\n    vpcId: defaultNetwork.id,\n    transitRouterVpcAttachmentName: name,\n    transitRouterAttachmentDescription: name,\n    zoneMappings: [\n        {\n            zoneId: masterZone,\n            vswitchId: defaultMaster.id,\n        },\n        {\n            zoneId: slaveZone,\n            vswitchId: defaultSlave.id,\n        },\n    ],\n});\nconst defaultTransitRouterRouteTableAssociation = new alicloud.cen.TransitRouterRouteTableAssociation(\"default\", {\n    transitRouterRouteTableId: defaultTransitRouterRouteTable.transitRouterRouteTableId,\n    transitRouterAttachmentId: defaultTransitRouterVpcAttachment.transitRouterAttachmentId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cen.get_transit_router_available_resources()\nmaster_zone = default.resources[0].master_zones[0]\nslave_zone = default.resources[0].slave_zones[1]\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ndefault_master = alicloud.vpc.Switch(\"default_master\",\n    vswitch_name=name,\n    cidr_block=\"192.168.1.0/24\",\n    vpc_id=default_network.id,\n    zone_id=master_zone)\ndefault_slave = alicloud.vpc.Switch(\"default_slave\",\n    vswitch_name=name,\n    cidr_block=\"192.168.2.0/24\",\n    vpc_id=default_network.id,\n    zone_id=slave_zone)\ndefault_instance = alicloud.cen.Instance(\"default\",\n    cen_instance_name=name,\n    protection_level=\"REDUCED\")\ndefault_transit_router = alicloud.cen.TransitRouter(\"default\",\n    transit_router_name=name,\n    cen_id=default_instance.id)\ndefault_transit_router_route_table = alicloud.cen.TransitRouterRouteTable(\"default\", transit_router_id=default_transit_router.transit_router_id)\ndefault_transit_router_vpc_attachment = alicloud.cen.TransitRouterVpcAttachment(\"default\",\n    cen_id=default_instance.id,\n    transit_router_id=default_transit_router.transit_router_id,\n    vpc_id=default_network.id,\n    transit_router_vpc_attachment_name=name,\n    transit_router_attachment_description=name,\n    zone_mappings=[\n        {\n            \"zone_id\": master_zone,\n            \"vswitch_id\": default_master.id,\n        },\n        {\n            \"zone_id\": slave_zone,\n            \"vswitch_id\": default_slave.id,\n        },\n    ])\ndefault_transit_router_route_table_association = alicloud.cen.TransitRouterRouteTableAssociation(\"default\",\n    transit_router_route_table_id=default_transit_router_route_table.transit_router_route_table_id,\n    transit_router_attachment_id=default_transit_router_vpc_attachment.transit_router_attachment_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Cen.GetTransitRouterAvailableResources.Invoke();\n\n    var masterZone = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.MasterZones[0]));\n\n    var slaveZone = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.SlaveZones[1]));\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultMaster = new AliCloud.Vpc.Switch(\"default_master\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"192.168.1.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = masterZone,\n    });\n\n    var defaultSlave = new AliCloud.Vpc.Switch(\"default_slave\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"192.168.2.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = slaveZone,\n    });\n\n    var defaultInstance = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        CenInstanceName = name,\n        ProtectionLevel = \"REDUCED\",\n    });\n\n    var defaultTransitRouter = new AliCloud.Cen.TransitRouter(\"default\", new()\n    {\n        TransitRouterName = name,\n        CenId = defaultInstance.Id,\n    });\n\n    var defaultTransitRouterRouteTable = new AliCloud.Cen.TransitRouterRouteTable(\"default\", new()\n    {\n        TransitRouterId = defaultTransitRouter.TransitRouterId,\n    });\n\n    var defaultTransitRouterVpcAttachment = new AliCloud.Cen.TransitRouterVpcAttachment(\"default\", new()\n    {\n        CenId = defaultInstance.Id,\n        TransitRouterId = defaultTransitRouter.TransitRouterId,\n        VpcId = defaultNetwork.Id,\n        TransitRouterVpcAttachmentName = name,\n        TransitRouterAttachmentDescription = name,\n        ZoneMappings = new[]\n        {\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                ZoneId = masterZone,\n                VswitchId = defaultMaster.Id,\n            },\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                ZoneId = slaveZone,\n                VswitchId = defaultSlave.Id,\n            },\n        },\n    });\n\n    var defaultTransitRouterRouteTableAssociation = new AliCloud.Cen.TransitRouterRouteTableAssociation(\"default\", new()\n    {\n        TransitRouterRouteTableId = defaultTransitRouterRouteTable.TransitRouterRouteTableId,\n        TransitRouterAttachmentId = defaultTransitRouterVpcAttachment.TransitRouterAttachmentId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cen.GetTransitRouterAvailableResources(ctx, \u0026cen.GetTransitRouterAvailableResourcesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmasterZone := _default.Resources[0].MasterZones[0]\n\t\tslaveZone := _default.Resources[0].SlaveZones[1]\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultMaster, err := vpc.NewSwitch(ctx, \"default_master\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.1.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(masterZone),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSlave, err := vpc.NewSwitch(ctx, \"default_slave\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.2.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(slaveZone),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tProtectionLevel: pulumi.String(\"REDUCED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouter, err := cen.NewTransitRouter(ctx, \"default\", \u0026cen.TransitRouterArgs{\n\t\t\tTransitRouterName: pulumi.String(name),\n\t\t\tCenId:             defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouterRouteTable, err := cen.NewTransitRouterRouteTable(ctx, \"default\", \u0026cen.TransitRouterRouteTableArgs{\n\t\t\tTransitRouterId: defaultTransitRouter.TransitRouterId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouterVpcAttachment, err := cen.NewTransitRouterVpcAttachment(ctx, \"default\", \u0026cen.TransitRouterVpcAttachmentArgs{\n\t\t\tCenId:                              defaultInstance.ID(),\n\t\t\tTransitRouterId:                    defaultTransitRouter.TransitRouterId,\n\t\t\tVpcId:                              defaultNetwork.ID(),\n\t\t\tTransitRouterVpcAttachmentName:     pulumi.String(name),\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(name),\n\t\t\tZoneMappings: cen.TransitRouterVpcAttachmentZoneMappingArray{\n\t\t\t\t\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\n\t\t\t\t\tZoneId:    pulumi.String(masterZone),\n\t\t\t\t\tVswitchId: defaultMaster.ID(),\n\t\t\t\t},\n\t\t\t\t\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\n\t\t\t\t\tZoneId:    pulumi.String(slaveZone),\n\t\t\t\t\tVswitchId: defaultSlave.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterRouteTableAssociation(ctx, \"default\", \u0026cen.TransitRouterRouteTableAssociationArgs{\n\t\t\tTransitRouterRouteTableId: defaultTransitRouterRouteTable.TransitRouterRouteTableId,\n\t\t\tTransitRouterAttachmentId: defaultTransitRouterVpcAttachment.TransitRouterAttachmentId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterAvailableResourcesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTable;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTableArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachmentArgs;\nimport com.pulumi.alicloud.cen.inputs.TransitRouterVpcAttachmentZoneMappingArgs;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTableAssociation;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTableAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = CenFunctions.getTransitRouterAvailableResources(GetTransitRouterAvailableResourcesArgs.builder()\n            .build());\n\n        final var masterZone = default_.resources()[0].masterZones()[0];\n\n        final var slaveZone = default_.resources()[0].slaveZones()[1];\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultMaster = new Switch(\"defaultMaster\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"192.168.1.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(masterZone)\n            .build());\n\n        var defaultSlave = new Switch(\"defaultSlave\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"192.168.2.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(slaveZone)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .protectionLevel(\"REDUCED\")\n            .build());\n\n        var defaultTransitRouter = new TransitRouter(\"defaultTransitRouter\", TransitRouterArgs.builder()\n            .transitRouterName(name)\n            .cenId(defaultInstance.id())\n            .build());\n\n        var defaultTransitRouterRouteTable = new TransitRouterRouteTable(\"defaultTransitRouterRouteTable\", TransitRouterRouteTableArgs.builder()\n            .transitRouterId(defaultTransitRouter.transitRouterId())\n            .build());\n\n        var defaultTransitRouterVpcAttachment = new TransitRouterVpcAttachment(\"defaultTransitRouterVpcAttachment\", TransitRouterVpcAttachmentArgs.builder()\n            .cenId(defaultInstance.id())\n            .transitRouterId(defaultTransitRouter.transitRouterId())\n            .vpcId(defaultNetwork.id())\n            .transitRouterVpcAttachmentName(name)\n            .transitRouterAttachmentDescription(name)\n            .zoneMappings(            \n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .zoneId(masterZone)\n                    .vswitchId(defaultMaster.id())\n                    .build(),\n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .zoneId(slaveZone)\n                    .vswitchId(defaultSlave.id())\n                    .build())\n            .build());\n\n        var defaultTransitRouterRouteTableAssociation = new TransitRouterRouteTableAssociation(\"defaultTransitRouterRouteTableAssociation\", TransitRouterRouteTableAssociationArgs.builder()\n            .transitRouterRouteTableId(defaultTransitRouterRouteTable.transitRouterRouteTableId())\n            .transitRouterAttachmentId(defaultTransitRouterVpcAttachment.transitRouterAttachmentId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  defaultMaster:\n    type: alicloud:vpc:Switch\n    name: default_master\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 192.168.1.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${masterZone}\n  defaultSlave:\n    type: alicloud:vpc:Switch\n    name: default_slave\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 192.168.2.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${slaveZone}\n  defaultInstance:\n    type: alicloud:cen:Instance\n    name: default\n    properties:\n      cenInstanceName: ${name}\n      protectionLevel: REDUCED\n  defaultTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: default\n    properties:\n      transitRouterName: ${name}\n      cenId: ${defaultInstance.id}\n  defaultTransitRouterRouteTable:\n    type: alicloud:cen:TransitRouterRouteTable\n    name: default\n    properties:\n      transitRouterId: ${defaultTransitRouter.transitRouterId}\n  defaultTransitRouterVpcAttachment:\n    type: alicloud:cen:TransitRouterVpcAttachment\n    name: default\n    properties:\n      cenId: ${defaultInstance.id}\n      transitRouterId: ${defaultTransitRouter.transitRouterId}\n      vpcId: ${defaultNetwork.id}\n      transitRouterVpcAttachmentName: ${name}\n      transitRouterAttachmentDescription: ${name}\n      zoneMappings:\n        - zoneId: ${masterZone}\n          vswitchId: ${defaultMaster.id}\n        - zoneId: ${slaveZone}\n          vswitchId: ${defaultSlave.id}\n  defaultTransitRouterRouteTableAssociation:\n    type: alicloud:cen:TransitRouterRouteTableAssociation\n    name: default\n    properties:\n      transitRouterRouteTableId: ${defaultTransitRouterRouteTable.transitRouterRouteTableId}\n      transitRouterAttachmentId: ${defaultTransitRouterVpcAttachment.transitRouterAttachmentId}\nvariables:\n  masterZone: ${default.resources[0].masterZones[0]}\n  slaveZone: ${default.resources[0].slaveZones[1]}\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterAvailableResources\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Enterprise Network (CEN) Transit Router Route Table Association can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/transitRouterRouteTableAssociation:TransitRouterRouteTableAssociation example \u003ctransit_router_attachment_id\u003e:\u003ctransit_router_route_table_id\u003e\n```\n\n","properties":{"dryRun":{"type":"boolean","description":"Whether to perform PreCheck on this request, including permissions and instance status verification. Value:\n"},"status":{"type":"string","description":"The status of the resource\n"},"transitRouterAttachmentId":{"type":"string","description":"TransitRouterAttachmentId\n"},"transitRouterRouteTableId":{"type":"string","description":"TransitRouterRouteTableId\n"}},"required":["status","transitRouterAttachmentId","transitRouterRouteTableId"],"inputProperties":{"dryRun":{"type":"boolean","description":"Whether to perform PreCheck on this request, including permissions and instance status verification. Value:\n"},"transitRouterAttachmentId":{"type":"string","description":"TransitRouterAttachmentId\n","willReplaceOnChanges":true},"transitRouterRouteTableId":{"type":"string","description":"TransitRouterRouteTableId\n","willReplaceOnChanges":true}},"requiredInputs":["transitRouterAttachmentId","transitRouterRouteTableId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterRouteTableAssociation resources.\n","properties":{"dryRun":{"type":"boolean","description":"Whether to perform PreCheck on this request, including permissions and instance status verification. Value:\n"},"status":{"type":"string","description":"The status of the resource\n"},"transitRouterAttachmentId":{"type":"string","description":"TransitRouterAttachmentId\n","willReplaceOnChanges":true},"transitRouterRouteTableId":{"type":"string","description":"TransitRouterRouteTableId\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/transitRouterRouteTablePropagation:TransitRouterRouteTablePropagation":{"description":"Provides a CEN transit router route table propagation resource.[What is Cen Transit Router Route Table Propagation](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-enabletransitrouterroutetablepropagation)\n\n\u003e **NOTE:** Available since v1.126.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.cen.getTransitRouterAvailableResources({});\nconst masterZone = _default.then(_default =\u003e _default.resources?.[0]?.masterZones?.[0]);\nconst slaveZone = _default.then(_default =\u003e _default.resources?.[0]?.slaveZones?.[1]);\nconst example = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst exampleMaster = new alicloud.vpc.Switch(\"example_master\", {\n    vswitchName: name,\n    cidrBlock: \"192.168.1.0/24\",\n    vpcId: example.id,\n    zoneId: masterZone,\n});\nconst exampleSlave = new alicloud.vpc.Switch(\"example_slave\", {\n    vswitchName: name,\n    cidrBlock: \"192.168.2.0/24\",\n    vpcId: example.id,\n    zoneId: slaveZone,\n});\nconst exampleInstance = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: name,\n    protectionLevel: \"REDUCED\",\n});\nconst exampleTransitRouter = new alicloud.cen.TransitRouter(\"example\", {\n    transitRouterName: name,\n    cenId: exampleInstance.id,\n});\nconst exampleTransitRouterVpcAttachment = new alicloud.cen.TransitRouterVpcAttachment(\"example\", {\n    cenId: exampleInstance.id,\n    transitRouterId: exampleTransitRouter.transitRouterId,\n    vpcId: example.id,\n    zoneMappings: [\n        {\n            zoneId: masterZone,\n            vswitchId: exampleMaster.id,\n        },\n        {\n            zoneId: slaveZone,\n            vswitchId: exampleSlave.id,\n        },\n    ],\n    transitRouterAttachmentName: name,\n    transitRouterAttachmentDescription: name,\n});\nconst exampleTransitRouterRouteTable = new alicloud.cen.TransitRouterRouteTable(\"example\", {transitRouterId: exampleTransitRouter.transitRouterId});\nconst exampleTransitRouterRouteTablePropagation = new alicloud.cen.TransitRouterRouteTablePropagation(\"example\", {\n    transitRouterRouteTableId: exampleTransitRouterRouteTable.transitRouterRouteTableId,\n    transitRouterAttachmentId: exampleTransitRouterVpcAttachment.transitRouterAttachmentId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.cen.get_transit_router_available_resources()\nmaster_zone = default.resources[0].master_zones[0]\nslave_zone = default.resources[0].slave_zones[1]\nexample = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\nexample_master = alicloud.vpc.Switch(\"example_master\",\n    vswitch_name=name,\n    cidr_block=\"192.168.1.0/24\",\n    vpc_id=example.id,\n    zone_id=master_zone)\nexample_slave = alicloud.vpc.Switch(\"example_slave\",\n    vswitch_name=name,\n    cidr_block=\"192.168.2.0/24\",\n    vpc_id=example.id,\n    zone_id=slave_zone)\nexample_instance = alicloud.cen.Instance(\"example\",\n    cen_instance_name=name,\n    protection_level=\"REDUCED\")\nexample_transit_router = alicloud.cen.TransitRouter(\"example\",\n    transit_router_name=name,\n    cen_id=example_instance.id)\nexample_transit_router_vpc_attachment = alicloud.cen.TransitRouterVpcAttachment(\"example\",\n    cen_id=example_instance.id,\n    transit_router_id=example_transit_router.transit_router_id,\n    vpc_id=example.id,\n    zone_mappings=[\n        {\n            \"zone_id\": master_zone,\n            \"vswitch_id\": example_master.id,\n        },\n        {\n            \"zone_id\": slave_zone,\n            \"vswitch_id\": example_slave.id,\n        },\n    ],\n    transit_router_attachment_name=name,\n    transit_router_attachment_description=name)\nexample_transit_router_route_table = alicloud.cen.TransitRouterRouteTable(\"example\", transit_router_id=example_transit_router.transit_router_id)\nexample_transit_router_route_table_propagation = alicloud.cen.TransitRouterRouteTablePropagation(\"example\",\n    transit_router_route_table_id=example_transit_router_route_table.transit_router_route_table_id,\n    transit_router_attachment_id=example_transit_router_vpc_attachment.transit_router_attachment_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.Cen.GetTransitRouterAvailableResources.Invoke();\n\n    var masterZone = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.MasterZones[0]));\n\n    var slaveZone = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.SlaveZones[1]));\n\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var exampleMaster = new AliCloud.Vpc.Switch(\"example_master\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"192.168.1.0/24\",\n        VpcId = example.Id,\n        ZoneId = masterZone,\n    });\n\n    var exampleSlave = new AliCloud.Vpc.Switch(\"example_slave\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"192.168.2.0/24\",\n        VpcId = example.Id,\n        ZoneId = slaveZone,\n    });\n\n    var exampleInstance = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = name,\n        ProtectionLevel = \"REDUCED\",\n    });\n\n    var exampleTransitRouter = new AliCloud.Cen.TransitRouter(\"example\", new()\n    {\n        TransitRouterName = name,\n        CenId = exampleInstance.Id,\n    });\n\n    var exampleTransitRouterVpcAttachment = new AliCloud.Cen.TransitRouterVpcAttachment(\"example\", new()\n    {\n        CenId = exampleInstance.Id,\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n        VpcId = example.Id,\n        ZoneMappings = new[]\n        {\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                ZoneId = masterZone,\n                VswitchId = exampleMaster.Id,\n            },\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                ZoneId = slaveZone,\n                VswitchId = exampleSlave.Id,\n            },\n        },\n        TransitRouterAttachmentName = name,\n        TransitRouterAttachmentDescription = name,\n    });\n\n    var exampleTransitRouterRouteTable = new AliCloud.Cen.TransitRouterRouteTable(\"example\", new()\n    {\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n    });\n\n    var exampleTransitRouterRouteTablePropagation = new AliCloud.Cen.TransitRouterRouteTablePropagation(\"example\", new()\n    {\n        TransitRouterRouteTableId = exampleTransitRouterRouteTable.TransitRouterRouteTableId,\n        TransitRouterAttachmentId = exampleTransitRouterVpcAttachment.TransitRouterAttachmentId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cen.GetTransitRouterAvailableResources(ctx, \u0026cen.GetTransitRouterAvailableResourcesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmasterZone := _default.Resources[0].MasterZones[0]\n\t\tslaveZone := _default.Resources[0].SlaveZones[1]\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleMaster, err := vpc.NewSwitch(ctx, \"example_master\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.1.0/24\"),\n\t\t\tVpcId:       example.ID(),\n\t\t\tZoneId:      pulumi.String(masterZone),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSlave, err := vpc.NewSwitch(ctx, \"example_slave\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.2.0/24\"),\n\t\t\tVpcId:       example.ID(),\n\t\t\tZoneId:      pulumi.String(slaveZone),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tProtectionLevel: pulumi.String(\"REDUCED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouter, err := cen.NewTransitRouter(ctx, \"example\", \u0026cen.TransitRouterArgs{\n\t\t\tTransitRouterName: pulumi.String(name),\n\t\t\tCenId:             exampleInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouterVpcAttachment, err := cen.NewTransitRouterVpcAttachment(ctx, \"example\", \u0026cen.TransitRouterVpcAttachmentArgs{\n\t\t\tCenId:           exampleInstance.ID(),\n\t\t\tTransitRouterId: exampleTransitRouter.TransitRouterId,\n\t\t\tVpcId:           example.ID(),\n\t\t\tZoneMappings: cen.TransitRouterVpcAttachmentZoneMappingArray{\n\t\t\t\t\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\n\t\t\t\t\tZoneId:    pulumi.String(masterZone),\n\t\t\t\t\tVswitchId: exampleMaster.ID(),\n\t\t\t\t},\n\t\t\t\t\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\n\t\t\t\t\tZoneId:    pulumi.String(slaveZone),\n\t\t\t\t\tVswitchId: exampleSlave.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTransitRouterAttachmentName:        pulumi.String(name),\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouterRouteTable, err := cen.NewTransitRouterRouteTable(ctx, \"example\", \u0026cen.TransitRouterRouteTableArgs{\n\t\t\tTransitRouterId: exampleTransitRouter.TransitRouterId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterRouteTablePropagation(ctx, \"example\", \u0026cen.TransitRouterRouteTablePropagationArgs{\n\t\t\tTransitRouterRouteTableId: exampleTransitRouterRouteTable.TransitRouterRouteTableId,\n\t\t\tTransitRouterAttachmentId: exampleTransitRouterVpcAttachment.TransitRouterAttachmentId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterAvailableResourcesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachmentArgs;\nimport com.pulumi.alicloud.cen.inputs.TransitRouterVpcAttachmentZoneMappingArgs;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTable;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTableArgs;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTablePropagation;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTablePropagationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = CenFunctions.getTransitRouterAvailableResources(GetTransitRouterAvailableResourcesArgs.builder()\n            .build());\n\n        final var masterZone = default_.resources()[0].masterZones()[0];\n\n        final var slaveZone = default_.resources()[0].slaveZones()[1];\n\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var exampleMaster = new Switch(\"exampleMaster\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"192.168.1.0/24\")\n            .vpcId(example.id())\n            .zoneId(masterZone)\n            .build());\n\n        var exampleSlave = new Switch(\"exampleSlave\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"192.168.2.0/24\")\n            .vpcId(example.id())\n            .zoneId(slaveZone)\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .protectionLevel(\"REDUCED\")\n            .build());\n\n        var exampleTransitRouter = new TransitRouter(\"exampleTransitRouter\", TransitRouterArgs.builder()\n            .transitRouterName(name)\n            .cenId(exampleInstance.id())\n            .build());\n\n        var exampleTransitRouterVpcAttachment = new TransitRouterVpcAttachment(\"exampleTransitRouterVpcAttachment\", TransitRouterVpcAttachmentArgs.builder()\n            .cenId(exampleInstance.id())\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .vpcId(example.id())\n            .zoneMappings(            \n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .zoneId(masterZone)\n                    .vswitchId(exampleMaster.id())\n                    .build(),\n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .zoneId(slaveZone)\n                    .vswitchId(exampleSlave.id())\n                    .build())\n            .transitRouterAttachmentName(name)\n            .transitRouterAttachmentDescription(name)\n            .build());\n\n        var exampleTransitRouterRouteTable = new TransitRouterRouteTable(\"exampleTransitRouterRouteTable\", TransitRouterRouteTableArgs.builder()\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .build());\n\n        var exampleTransitRouterRouteTablePropagation = new TransitRouterRouteTablePropagation(\"exampleTransitRouterRouteTablePropagation\", TransitRouterRouteTablePropagationArgs.builder()\n            .transitRouterRouteTableId(exampleTransitRouterRouteTable.transitRouterRouteTableId())\n            .transitRouterAttachmentId(exampleTransitRouterVpcAttachment.transitRouterAttachmentId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  exampleMaster:\n    type: alicloud:vpc:Switch\n    name: example_master\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 192.168.1.0/24\n      vpcId: ${example.id}\n      zoneId: ${masterZone}\n  exampleSlave:\n    type: alicloud:vpc:Switch\n    name: example_slave\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 192.168.2.0/24\n      vpcId: ${example.id}\n      zoneId: ${slaveZone}\n  exampleInstance:\n    type: alicloud:cen:Instance\n    name: example\n    properties:\n      cenInstanceName: ${name}\n      protectionLevel: REDUCED\n  exampleTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: example\n    properties:\n      transitRouterName: ${name}\n      cenId: ${exampleInstance.id}\n  exampleTransitRouterVpcAttachment:\n    type: alicloud:cen:TransitRouterVpcAttachment\n    name: example\n    properties:\n      cenId: ${exampleInstance.id}\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n      vpcId: ${example.id}\n      zoneMappings:\n        - zoneId: ${masterZone}\n          vswitchId: ${exampleMaster.id}\n        - zoneId: ${slaveZone}\n          vswitchId: ${exampleSlave.id}\n      transitRouterAttachmentName: ${name}\n      transitRouterAttachmentDescription: ${name}\n  exampleTransitRouterRouteTable:\n    type: alicloud:cen:TransitRouterRouteTable\n    name: example\n    properties:\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n  exampleTransitRouterRouteTablePropagation:\n    type: alicloud:cen:TransitRouterRouteTablePropagation\n    name: example\n    properties:\n      transitRouterRouteTableId: ${exampleTransitRouterRouteTable.transitRouterRouteTableId}\n      transitRouterAttachmentId: ${exampleTransitRouterVpcAttachment.transitRouterAttachmentId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterAvailableResources\n      arguments: {}\n  masterZone: ${default.resources[0].masterZones[0]}\n  slaveZone: ${default.resources[0].slaveZones[1]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCEN transit router route table propagation can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/transitRouterRouteTablePropagation:TransitRouterRouteTablePropagation default tr-********:tr-attach-********\n```\n\n","properties":{"dryRun":{"type":"boolean","description":"The dry run.\n\n\u003e **NOTE:** The Zone of CEN has MasterZone and SlaveZone, first\u003cspan pulumi-lang-nodejs=\" zoneId \" pulumi-lang-dotnet=\" ZoneId \" pulumi-lang-go=\" zoneId \" pulumi-lang-python=\" zone_id \" pulumi-lang-yaml=\" zoneId \" pulumi-lang-java=\" zoneId \"\u003e zone_id \u003c/span\u003eof\u003cspan pulumi-lang-nodejs=\" zoneMapping \" pulumi-lang-dotnet=\" ZoneMapping \" pulumi-lang-go=\" zoneMapping \" pulumi-lang-python=\" zone_mapping \" pulumi-lang-yaml=\" zoneMapping \" pulumi-lang-java=\" zoneMapping \"\u003e zone_mapping \u003c/span\u003eneed be MasterZone. We have a API to describeZones[API](https://help.aliyun.com/document_detail/261356.html)\n"},"status":{"type":"string","description":"The associating status of the network.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID the transit router attachment.\n"},"transitRouterRouteTableId":{"type":"string","description":"The ID of the transit router route table.\n"}},"required":["status","transitRouterAttachmentId","transitRouterRouteTableId"],"inputProperties":{"dryRun":{"type":"boolean","description":"The dry run.\n\n\u003e **NOTE:** The Zone of CEN has MasterZone and SlaveZone, first\u003cspan pulumi-lang-nodejs=\" zoneId \" pulumi-lang-dotnet=\" ZoneId \" pulumi-lang-go=\" zoneId \" pulumi-lang-python=\" zone_id \" pulumi-lang-yaml=\" zoneId \" pulumi-lang-java=\" zoneId \"\u003e zone_id \u003c/span\u003eof\u003cspan pulumi-lang-nodejs=\" zoneMapping \" pulumi-lang-dotnet=\" ZoneMapping \" pulumi-lang-go=\" zoneMapping \" pulumi-lang-python=\" zone_mapping \" pulumi-lang-yaml=\" zoneMapping \" pulumi-lang-java=\" zoneMapping \"\u003e zone_mapping \u003c/span\u003eneed be MasterZone. We have a API to describeZones[API](https://help.aliyun.com/document_detail/261356.html)\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID the transit router attachment.\n","willReplaceOnChanges":true},"transitRouterRouteTableId":{"type":"string","description":"The ID of the transit router route table.\n","willReplaceOnChanges":true}},"requiredInputs":["transitRouterAttachmentId","transitRouterRouteTableId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterRouteTablePropagation resources.\n","properties":{"dryRun":{"type":"boolean","description":"The dry run.\n\n\u003e **NOTE:** The Zone of CEN has MasterZone and SlaveZone, first\u003cspan pulumi-lang-nodejs=\" zoneId \" pulumi-lang-dotnet=\" ZoneId \" pulumi-lang-go=\" zoneId \" pulumi-lang-python=\" zone_id \" pulumi-lang-yaml=\" zoneId \" pulumi-lang-java=\" zoneId \"\u003e zone_id \u003c/span\u003eof\u003cspan pulumi-lang-nodejs=\" zoneMapping \" pulumi-lang-dotnet=\" ZoneMapping \" pulumi-lang-go=\" zoneMapping \" pulumi-lang-python=\" zone_mapping \" pulumi-lang-yaml=\" zoneMapping \" pulumi-lang-java=\" zoneMapping \"\u003e zone_mapping \u003c/span\u003eneed be MasterZone. We have a API to describeZones[API](https://help.aliyun.com/document_detail/261356.html)\n"},"status":{"type":"string","description":"The associating status of the network.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID the transit router attachment.\n","willReplaceOnChanges":true},"transitRouterRouteTableId":{"type":"string","description":"The ID of the transit router route table.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/transitRouterVbrAttachment:TransitRouterVbrAttachment":{"description":"Provides a Cloud Enterprise Network (CEN) Transit Router VBR Attachment resource.\n\nFor information about Cloud Enterprise Network (CEN) Transit Router VBR Attachment and how to use it, see [What is Transit Router VBR Attachment](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-createtransitroutervbrattachment)\n\n\u003e **NOTE:** Available since v1.126.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst nameRegex = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"^preserved-NODELETING\",\n});\nconst _default = new alicloud.cen.Instance(\"default\", {\n    cenInstanceName: name,\n    protectionLevel: \"REDUCED\",\n});\nconst defaultTransitRouter = new alicloud.cen.TransitRouter(\"default\", {cenId: _default.id});\nconst defaultVirtualBorderRouter = new alicloud.expressconnect.VirtualBorderRouter(\"default\", {\n    localGatewayIp: \"10.0.0.1\",\n    peerGatewayIp: \"10.0.0.2\",\n    peeringSubnetMask: \"255.255.255.252\",\n    physicalConnectionId: nameRegex.then(nameRegex =\u003e nameRegex.connections?.[0]?.id),\n    virtualBorderRouterName: name,\n    vlanId: 2420,\n    minRxInterval: 1000,\n    minTxInterval: 1000,\n    detectMultiplier: 10,\n});\nconst defaultTransitRouterVbrAttachment = new alicloud.cen.TransitRouterVbrAttachment(\"default\", {\n    cenId: _default.id,\n    vbrId: defaultVirtualBorderRouter.id,\n    transitRouterId: defaultTransitRouter.transitRouterId,\n    transitRouterAttachmentName: name,\n    transitRouterAttachmentDescription: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nname_regex = alicloud.expressconnect.get_physical_connections(name_regex=\"^preserved-NODELETING\")\ndefault = alicloud.cen.Instance(\"default\",\n    cen_instance_name=name,\n    protection_level=\"REDUCED\")\ndefault_transit_router = alicloud.cen.TransitRouter(\"default\", cen_id=default.id)\ndefault_virtual_border_router = alicloud.expressconnect.VirtualBorderRouter(\"default\",\n    local_gateway_ip=\"10.0.0.1\",\n    peer_gateway_ip=\"10.0.0.2\",\n    peering_subnet_mask=\"255.255.255.252\",\n    physical_connection_id=name_regex.connections[0].id,\n    virtual_border_router_name=name,\n    vlan_id=2420,\n    min_rx_interval=1000,\n    min_tx_interval=1000,\n    detect_multiplier=10)\ndefault_transit_router_vbr_attachment = alicloud.cen.TransitRouterVbrAttachment(\"default\",\n    cen_id=default.id,\n    vbr_id=default_virtual_border_router.id,\n    transit_router_id=default_transit_router.transit_router_id,\n    transit_router_attachment_name=name,\n    transit_router_attachment_description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var nameRegex = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"^preserved-NODELETING\",\n    });\n\n    var @default = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        CenInstanceName = name,\n        ProtectionLevel = \"REDUCED\",\n    });\n\n    var defaultTransitRouter = new AliCloud.Cen.TransitRouter(\"default\", new()\n    {\n        CenId = @default.Id,\n    });\n\n    var defaultVirtualBorderRouter = new AliCloud.ExpressConnect.VirtualBorderRouter(\"default\", new()\n    {\n        LocalGatewayIp = \"10.0.0.1\",\n        PeerGatewayIp = \"10.0.0.2\",\n        PeeringSubnetMask = \"255.255.255.252\",\n        PhysicalConnectionId = nameRegex.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Connections[0]?.Id),\n        VirtualBorderRouterName = name,\n        VlanId = 2420,\n        MinRxInterval = 1000,\n        MinTxInterval = 1000,\n        DetectMultiplier = 10,\n    });\n\n    var defaultTransitRouterVbrAttachment = new AliCloud.Cen.TransitRouterVbrAttachment(\"default\", new()\n    {\n        CenId = @default.Id,\n        VbrId = defaultVirtualBorderRouter.Id,\n        TransitRouterId = defaultTransitRouter.TransitRouterId,\n        TransitRouterAttachmentName = name,\n        TransitRouterAttachmentDescription = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tnameRegex, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tProtectionLevel: pulumi.String(\"REDUCED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouter, err := cen.NewTransitRouter(ctx, \"default\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVirtualBorderRouter, err := expressconnect.NewVirtualBorderRouter(ctx, \"default\", \u0026expressconnect.VirtualBorderRouterArgs{\n\t\t\tLocalGatewayIp:          pulumi.String(\"10.0.0.1\"),\n\t\t\tPeerGatewayIp:           pulumi.String(\"10.0.0.2\"),\n\t\t\tPeeringSubnetMask:       pulumi.String(\"255.255.255.252\"),\n\t\t\tPhysicalConnectionId:    pulumi.String(nameRegex.Connections[0].Id),\n\t\t\tVirtualBorderRouterName: pulumi.String(name),\n\t\t\tVlanId:                  pulumi.Int(2420),\n\t\t\tMinRxInterval:           pulumi.Int(1000),\n\t\t\tMinTxInterval:           pulumi.Int(1000),\n\t\t\tDetectMultiplier:        pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterVbrAttachment(ctx, \"default\", \u0026cen.TransitRouterVbrAttachmentArgs{\n\t\t\tCenId:                              _default.ID(),\n\t\t\tVbrId:                              defaultVirtualBorderRouter.ID(),\n\t\t\tTransitRouterId:                    defaultTransitRouter.TransitRouterId,\n\t\t\tTransitRouterAttachmentName:        pulumi.String(name),\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouter;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVbrAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVbrAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var nameRegex = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"^preserved-NODELETING\")\n            .build());\n\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .protectionLevel(\"REDUCED\")\n            .build());\n\n        var defaultTransitRouter = new TransitRouter(\"defaultTransitRouter\", TransitRouterArgs.builder()\n            .cenId(default_.id())\n            .build());\n\n        var defaultVirtualBorderRouter = new VirtualBorderRouter(\"defaultVirtualBorderRouter\", VirtualBorderRouterArgs.builder()\n            .localGatewayIp(\"10.0.0.1\")\n            .peerGatewayIp(\"10.0.0.2\")\n            .peeringSubnetMask(\"255.255.255.252\")\n            .physicalConnectionId(nameRegex.connections()[0].id())\n            .virtualBorderRouterName(name)\n            .vlanId(2420)\n            .minRxInterval(1000)\n            .minTxInterval(1000)\n            .detectMultiplier(10)\n            .build());\n\n        var defaultTransitRouterVbrAttachment = new TransitRouterVbrAttachment(\"defaultTransitRouterVbrAttachment\", TransitRouterVbrAttachmentArgs.builder()\n            .cenId(default_.id())\n            .vbrId(defaultVirtualBorderRouter.id())\n            .transitRouterId(defaultTransitRouter.transitRouterId())\n            .transitRouterAttachmentName(name)\n            .transitRouterAttachmentDescription(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: ${name}\n      protectionLevel: REDUCED\n  defaultTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: default\n    properties:\n      cenId: ${default.id}\n  defaultVirtualBorderRouter:\n    type: alicloud:expressconnect:VirtualBorderRouter\n    name: default\n    properties:\n      localGatewayIp: 10.0.0.1\n      peerGatewayIp: 10.0.0.2\n      peeringSubnetMask: 255.255.255.252\n      physicalConnectionId: ${nameRegex.connections[0].id}\n      virtualBorderRouterName: ${name}\n      vlanId: 2420\n      minRxInterval: 1000\n      minTxInterval: 1000\n      detectMultiplier: 10\n  defaultTransitRouterVbrAttachment:\n    type: alicloud:cen:TransitRouterVbrAttachment\n    name: default\n    properties:\n      cenId: ${default.id}\n      vbrId: ${defaultVirtualBorderRouter.id}\n      transitRouterId: ${defaultTransitRouter.transitRouterId}\n      transitRouterAttachmentName: ${name}\n      transitRouterAttachmentDescription: ${name}\nvariables:\n  nameRegex:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: ^preserved-NODELETING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Enterprise Network (CEN) Transit Router VBR Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/transitRouterVbrAttachment:TransitRouterVbrAttachment example \u003ccen_id\u003e:\u003ctransit_router_attachment_id\u003e\n```\n\n","properties":{"autoPublishRouteEnabled":{"type":"boolean","description":"Specifies whether to enable the Enterprise Edition transit router to automatically advertise routes to the VBR. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"cenId":{"type":"string","description":"The ID of the CEN.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"resourceType":{"type":"string","description":"The resource type of the transit router vbr attachment. Default value: `VBR`. Valid values: `VBR`.\n"},"routeTableAssociationEnabled":{"type":"boolean","description":"Whether to enabled route table association. **NOTE:** \"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.233.1. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTableAssociation`\"\u003e`alicloud.cen.TransitRouterRouteTableAssociation`\u003c/span\u003e instead, how to use alicloud_cen_transit_router_route_table_association.\"\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.233.1. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTableAssociation`\"\u003e`alicloud.cen.TransitRouterRouteTableAssociation`\u003c/span\u003e instead."},"routeTablePropagationEnabled":{"type":"boolean","description":"Whether to enabled route table propagation. **NOTE:** \"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.233.1. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTablePropagation`\"\u003e`alicloud.cen.TransitRouterRouteTablePropagation`\u003c/span\u003e instead, how to use alicloud_cen_transit_router_route_table_propagation.\"\n\n-\u003e**NOTE:** Ensure that the vbr is not used in Express Connect.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.233.1. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTablePropagation`\"\u003e`alicloud.cen.TransitRouterRouteTablePropagation`\u003c/span\u003e instead."},"status":{"type":"string","description":"The status of the Transit Router VBR Attachment.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"transitRouterAttachmentDescription":{"type":"string","description":"The description of the transit router vbr attachment.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the VBR connection.\n"},"transitRouterAttachmentName":{"type":"string","description":"The name of the transit router vbr attachment.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"},"vbrId":{"type":"string","description":"The ID of the VBR.\n"},"vbrOwnerId":{"type":"string","description":"The owner id of the vbr.\n"}},"required":["cenId","status","transitRouterAttachmentId","transitRouterId","vbrId","vbrOwnerId"],"inputProperties":{"autoPublishRouteEnabled":{"type":"boolean","description":"Specifies whether to enable the Enterprise Edition transit router to automatically advertise routes to the VBR. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"cenId":{"type":"string","description":"The ID of the CEN.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"resourceType":{"type":"string","description":"The resource type of the transit router vbr attachment. Default value: `VBR`. Valid values: `VBR`.\n","willReplaceOnChanges":true},"routeTableAssociationEnabled":{"type":"boolean","description":"Whether to enabled route table association. **NOTE:** \"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.233.1. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTableAssociation`\"\u003e`alicloud.cen.TransitRouterRouteTableAssociation`\u003c/span\u003e instead, how to use alicloud_cen_transit_router_route_table_association.\"\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.233.1. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTableAssociation`\"\u003e`alicloud.cen.TransitRouterRouteTableAssociation`\u003c/span\u003e instead."},"routeTablePropagationEnabled":{"type":"boolean","description":"Whether to enabled route table propagation. **NOTE:** \"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.233.1. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTablePropagation`\"\u003e`alicloud.cen.TransitRouterRouteTablePropagation`\u003c/span\u003e instead, how to use alicloud_cen_transit_router_route_table_propagation.\"\n\n-\u003e**NOTE:** Ensure that the vbr is not used in Express Connect.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.233.1. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTablePropagation`\"\u003e`alicloud.cen.TransitRouterRouteTablePropagation`\u003c/span\u003e instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"transitRouterAttachmentDescription":{"type":"string","description":"The description of the transit router vbr attachment.\n"},"transitRouterAttachmentName":{"type":"string","description":"The name of the transit router vbr attachment.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n","willReplaceOnChanges":true},"vbrId":{"type":"string","description":"The ID of the VBR.\n","willReplaceOnChanges":true},"vbrOwnerId":{"type":"string","description":"The owner id of the vbr.\n","willReplaceOnChanges":true}},"requiredInputs":["cenId","vbrId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterVbrAttachment resources.\n","properties":{"autoPublishRouteEnabled":{"type":"boolean","description":"Specifies whether to enable the Enterprise Edition transit router to automatically advertise routes to the VBR. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"cenId":{"type":"string","description":"The ID of the CEN.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"resourceType":{"type":"string","description":"The resource type of the transit router vbr attachment. Default value: `VBR`. Valid values: `VBR`.\n","willReplaceOnChanges":true},"routeTableAssociationEnabled":{"type":"boolean","description":"Whether to enabled route table association. **NOTE:** \"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.233.1. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTableAssociation`\"\u003e`alicloud.cen.TransitRouterRouteTableAssociation`\u003c/span\u003e instead, how to use alicloud_cen_transit_router_route_table_association.\"\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.233.1. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTableAssociation`\"\u003e`alicloud.cen.TransitRouterRouteTableAssociation`\u003c/span\u003e instead."},"routeTablePropagationEnabled":{"type":"boolean","description":"Whether to enabled route table propagation. **NOTE:** \"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.233.1. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTablePropagation`\"\u003e`alicloud.cen.TransitRouterRouteTablePropagation`\u003c/span\u003e instead, how to use alicloud_cen_transit_router_route_table_propagation.\"\n\n-\u003e**NOTE:** Ensure that the vbr is not used in Express Connect.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.233.1. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTablePropagation`\"\u003e`alicloud.cen.TransitRouterRouteTablePropagation`\u003c/span\u003e instead."},"status":{"type":"string","description":"The status of the Transit Router VBR Attachment.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"transitRouterAttachmentDescription":{"type":"string","description":"The description of the transit router vbr attachment.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the VBR connection.\n"},"transitRouterAttachmentName":{"type":"string","description":"The name of the transit router vbr attachment.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n","willReplaceOnChanges":true},"vbrId":{"type":"string","description":"The ID of the VBR.\n","willReplaceOnChanges":true},"vbrOwnerId":{"type":"string","description":"The owner id of the vbr.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/transitRouterVpcAttachment:TransitRouterVpcAttachment":{"description":"Provides a Cen Transit Router Vpc Attachment resource.\n\n\n\nFor information about Cen Transit Router Vpc Attachment and how to use it, see [What is Transit Router Vpc Attachment](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-createtransitroutervpcattachment)\n\n\u003e **NOTE:** Available since v1.126.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.cen.getTransitRouterAvailableResources({});\nconst masterZone = _default.then(_default =\u003e _default.resources?.[0]?.masterZones?.[0]);\nconst slaveZone = _default.then(_default =\u003e _default.resources?.[0]?.slaveZones?.[1]);\nconst example = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst exampleMaster = new alicloud.vpc.Switch(\"example_master\", {\n    vswitchName: name,\n    cidrBlock: \"192.168.1.0/24\",\n    vpcId: example.id,\n    zoneId: masterZone,\n});\nconst exampleSlave = new alicloud.vpc.Switch(\"example_slave\", {\n    vswitchName: name,\n    cidrBlock: \"192.168.2.0/24\",\n    vpcId: example.id,\n    zoneId: slaveZone,\n});\nconst exampleInstance = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: name,\n    protectionLevel: \"REDUCED\",\n});\nconst exampleTransitRouter = new alicloud.cen.TransitRouter(\"example\", {\n    transitRouterName: name,\n    cenId: exampleInstance.id,\n});\nconst exampleTransitRouterVpcAttachment = new alicloud.cen.TransitRouterVpcAttachment(\"example\", {\n    cenId: exampleInstance.id,\n    transitRouterId: exampleTransitRouter.transitRouterId,\n    vpcId: example.id,\n    zoneMappings: [\n        {\n            zoneId: masterZone,\n            vswitchId: exampleMaster.id,\n        },\n        {\n            zoneId: slaveZone,\n            vswitchId: exampleSlave.id,\n        },\n    ],\n    transitRouterAttachmentName: name,\n    transitRouterAttachmentDescription: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cen.get_transit_router_available_resources()\nmaster_zone = default.resources[0].master_zones[0]\nslave_zone = default.resources[0].slave_zones[1]\nexample = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\nexample_master = alicloud.vpc.Switch(\"example_master\",\n    vswitch_name=name,\n    cidr_block=\"192.168.1.0/24\",\n    vpc_id=example.id,\n    zone_id=master_zone)\nexample_slave = alicloud.vpc.Switch(\"example_slave\",\n    vswitch_name=name,\n    cidr_block=\"192.168.2.0/24\",\n    vpc_id=example.id,\n    zone_id=slave_zone)\nexample_instance = alicloud.cen.Instance(\"example\",\n    cen_instance_name=name,\n    protection_level=\"REDUCED\")\nexample_transit_router = alicloud.cen.TransitRouter(\"example\",\n    transit_router_name=name,\n    cen_id=example_instance.id)\nexample_transit_router_vpc_attachment = alicloud.cen.TransitRouterVpcAttachment(\"example\",\n    cen_id=example_instance.id,\n    transit_router_id=example_transit_router.transit_router_id,\n    vpc_id=example.id,\n    zone_mappings=[\n        {\n            \"zone_id\": master_zone,\n            \"vswitch_id\": example_master.id,\n        },\n        {\n            \"zone_id\": slave_zone,\n            \"vswitch_id\": example_slave.id,\n        },\n    ],\n    transit_router_attachment_name=name,\n    transit_router_attachment_description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Cen.GetTransitRouterAvailableResources.Invoke();\n\n    var masterZone = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.MasterZones[0]));\n\n    var slaveZone = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.SlaveZones[1]));\n\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var exampleMaster = new AliCloud.Vpc.Switch(\"example_master\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"192.168.1.0/24\",\n        VpcId = example.Id,\n        ZoneId = masterZone,\n    });\n\n    var exampleSlave = new AliCloud.Vpc.Switch(\"example_slave\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"192.168.2.0/24\",\n        VpcId = example.Id,\n        ZoneId = slaveZone,\n    });\n\n    var exampleInstance = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = name,\n        ProtectionLevel = \"REDUCED\",\n    });\n\n    var exampleTransitRouter = new AliCloud.Cen.TransitRouter(\"example\", new()\n    {\n        TransitRouterName = name,\n        CenId = exampleInstance.Id,\n    });\n\n    var exampleTransitRouterVpcAttachment = new AliCloud.Cen.TransitRouterVpcAttachment(\"example\", new()\n    {\n        CenId = exampleInstance.Id,\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n        VpcId = example.Id,\n        ZoneMappings = new[]\n        {\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                ZoneId = masterZone,\n                VswitchId = exampleMaster.Id,\n            },\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                ZoneId = slaveZone,\n                VswitchId = exampleSlave.Id,\n            },\n        },\n        TransitRouterAttachmentName = name,\n        TransitRouterAttachmentDescription = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cen.GetTransitRouterAvailableResources(ctx, \u0026cen.GetTransitRouterAvailableResourcesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmasterZone := _default.Resources[0].MasterZones[0]\n\t\tslaveZone := _default.Resources[0].SlaveZones[1]\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleMaster, err := vpc.NewSwitch(ctx, \"example_master\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.1.0/24\"),\n\t\t\tVpcId:       example.ID(),\n\t\t\tZoneId:      pulumi.String(masterZone),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSlave, err := vpc.NewSwitch(ctx, \"example_slave\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.2.0/24\"),\n\t\t\tVpcId:       example.ID(),\n\t\t\tZoneId:      pulumi.String(slaveZone),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tProtectionLevel: pulumi.String(\"REDUCED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouter, err := cen.NewTransitRouter(ctx, \"example\", \u0026cen.TransitRouterArgs{\n\t\t\tTransitRouterName: pulumi.String(name),\n\t\t\tCenId:             exampleInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterVpcAttachment(ctx, \"example\", \u0026cen.TransitRouterVpcAttachmentArgs{\n\t\t\tCenId:           exampleInstance.ID(),\n\t\t\tTransitRouterId: exampleTransitRouter.TransitRouterId,\n\t\t\tVpcId:           example.ID(),\n\t\t\tZoneMappings: cen.TransitRouterVpcAttachmentZoneMappingArray{\n\t\t\t\t\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\n\t\t\t\t\tZoneId:    pulumi.String(masterZone),\n\t\t\t\t\tVswitchId: exampleMaster.ID(),\n\t\t\t\t},\n\t\t\t\t\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\n\t\t\t\t\tZoneId:    pulumi.String(slaveZone),\n\t\t\t\t\tVswitchId: exampleSlave.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTransitRouterAttachmentName:        pulumi.String(name),\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterAvailableResourcesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachmentArgs;\nimport com.pulumi.alicloud.cen.inputs.TransitRouterVpcAttachmentZoneMappingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = CenFunctions.getTransitRouterAvailableResources(GetTransitRouterAvailableResourcesArgs.builder()\n            .build());\n\n        final var masterZone = default_.resources()[0].masterZones()[0];\n\n        final var slaveZone = default_.resources()[0].slaveZones()[1];\n\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var exampleMaster = new Switch(\"exampleMaster\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"192.168.1.0/24\")\n            .vpcId(example.id())\n            .zoneId(masterZone)\n            .build());\n\n        var exampleSlave = new Switch(\"exampleSlave\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"192.168.2.0/24\")\n            .vpcId(example.id())\n            .zoneId(slaveZone)\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .protectionLevel(\"REDUCED\")\n            .build());\n\n        var exampleTransitRouter = new TransitRouter(\"exampleTransitRouter\", TransitRouterArgs.builder()\n            .transitRouterName(name)\n            .cenId(exampleInstance.id())\n            .build());\n\n        var exampleTransitRouterVpcAttachment = new TransitRouterVpcAttachment(\"exampleTransitRouterVpcAttachment\", TransitRouterVpcAttachmentArgs.builder()\n            .cenId(exampleInstance.id())\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .vpcId(example.id())\n            .zoneMappings(            \n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .zoneId(masterZone)\n                    .vswitchId(exampleMaster.id())\n                    .build(),\n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .zoneId(slaveZone)\n                    .vswitchId(exampleSlave.id())\n                    .build())\n            .transitRouterAttachmentName(name)\n            .transitRouterAttachmentDescription(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  exampleMaster:\n    type: alicloud:vpc:Switch\n    name: example_master\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 192.168.1.0/24\n      vpcId: ${example.id}\n      zoneId: ${masterZone}\n  exampleSlave:\n    type: alicloud:vpc:Switch\n    name: example_slave\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 192.168.2.0/24\n      vpcId: ${example.id}\n      zoneId: ${slaveZone}\n  exampleInstance:\n    type: alicloud:cen:Instance\n    name: example\n    properties:\n      cenInstanceName: ${name}\n      protectionLevel: REDUCED\n  exampleTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: example\n    properties:\n      transitRouterName: ${name}\n      cenId: ${exampleInstance.id}\n  exampleTransitRouterVpcAttachment:\n    type: alicloud:cen:TransitRouterVpcAttachment\n    name: example\n    properties:\n      cenId: ${exampleInstance.id}\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n      vpcId: ${example.id}\n      zoneMappings:\n        - zoneId: ${masterZone}\n          vswitchId: ${exampleMaster.id}\n        - zoneId: ${slaveZone}\n          vswitchId: ${exampleSlave.id}\n      transitRouterAttachmentName: ${name}\n      transitRouterAttachmentDescription: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterAvailableResources\n      arguments: {}\n  masterZone: ${default.resources[0].masterZones[0]}\n  slaveZone: ${default.resources[0].slaveZones[1]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCen Transit Router Vpc Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/transitRouterVpcAttachment:TransitRouterVpcAttachment example \u003cid\u003e\n```\n\n","properties":{"autoPublishRouteEnabled":{"type":"boolean","description":"Specifies whether to enable the Enterprise Edition transit router to automatically advertise routes to VPCs. Valid values:\n- **false:** (default)\n"},"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"dryRun":{"type":"boolean","description":"Whether to perform PreCheck on this request, including permissions and instance status verification. Value:\n"},"forceDelete":{"type":"boolean","description":"Whether to forcibly delete the VPC connection. The value is:\n"},"paymentType":{"type":"string","description":"The billing method. The default value is `PayAsYouGo`, which specifies the pay-as-you-go billing method.\n"},"regionId":{"type":"string","description":"(Available since v1.260.0).The ID of the region where the VPC is deployed.\n"},"resourceType":{"type":"string","description":"The resource type of the transit router vpc attachment. Default value: `VPC`. Valid values: `VPC`.\n"},"routeTableAssociationEnabled":{"type":"boolean","description":"Whether to enabled route table association. **NOTE:** \"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.192.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTableAssociation`\"\u003e`alicloud.cen.TransitRouterRouteTableAssociation`\u003c/span\u003e instead, how to use alicloud_cen_transit_router_route_table_association.\"\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.192.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTableAssociation`\"\u003e`alicloud.cen.TransitRouterRouteTableAssociation`\u003c/span\u003e instead."},"routeTablePropagationEnabled":{"type":"boolean","description":"Whether to enabled route table propagation. **NOTE:** \"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.192.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTablePropagation`\"\u003e`alicloud.cen.TransitRouterRouteTablePropagation`\u003c/span\u003e instead, how to use alicloud_cen_transit_router_route_table_propagation.\"\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.192.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTablePropagation`\"\u003e`alicloud.cen.TransitRouterRouteTablePropagation`\u003c/span\u003e instead."},"status":{"type":"string","description":"Status\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterAttachmentDescription":{"type":"string","description":"The description of the VPC connection.\n\nThe description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the VPC connection.\n"},"transitRouterAttachmentName":{"type":"string","description":"Field 'transit_router_attachment_name' has been deprecated from provider version 1.230.1. New field 'transit_router_vpc_attachment_name' instead.\n","deprecationMessage":"Field 'transit_router_attachment_name' has been deprecated since provider version 1.230.1. New field 'transit_router_vpc_attachment_name' instead."},"transitRouterId":{"type":"string","description":"The ID of the Enterprise Edition transit router.\n"},"transitRouterVpcAttachmentName":{"type":"string","description":"The name of the VPC connection.\n\nThe name must be 2 to 128 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). It must start with a letter.\n"},"transitRouterVpcAttachmentOptions":{"type":"object","additionalProperties":{"type":"string"},"description":"TransitRouterVpcAttachmentOptions\n"},"vpcId":{"type":"string","description":"The VPC ID.\n"},"vpcOwnerId":{"type":"string","description":"VpcOwnerId\n"},"zoneMappings":{"type":"array","items":{"$ref":"#/types/alicloud:cen/TransitRouterVpcAttachmentZoneMapping:TransitRouterVpcAttachmentZoneMapping"},"description":"ZoneMappingss See \u003cspan pulumi-lang-nodejs=\"`zoneMappings`\" pulumi-lang-dotnet=\"`ZoneMappings`\" pulumi-lang-go=\"`zoneMappings`\" pulumi-lang-python=\"`zone_mappings`\" pulumi-lang-yaml=\"`zoneMappings`\" pulumi-lang-java=\"`zoneMappings`\"\u003e`zone_mappings`\u003c/span\u003e below.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["createTime","paymentType","regionId","resourceType","status","transitRouterAttachmentId","transitRouterAttachmentName","transitRouterId","transitRouterVpcAttachmentName","transitRouterVpcAttachmentOptions","vpcId","vpcOwnerId","zoneMappings"],"inputProperties":{"autoPublishRouteEnabled":{"type":"boolean","description":"Specifies whether to enable the Enterprise Edition transit router to automatically advertise routes to VPCs. Valid values:\n- **false:** (default)\n"},"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n"},"dryRun":{"type":"boolean","description":"Whether to perform PreCheck on this request, including permissions and instance status verification. Value:\n"},"forceDelete":{"type":"boolean","description":"Whether to forcibly delete the VPC connection. The value is:\n"},"paymentType":{"type":"string","description":"The billing method. The default value is `PayAsYouGo`, which specifies the pay-as-you-go billing method.\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"The resource type of the transit router vpc attachment. Default value: `VPC`. Valid values: `VPC`.\n","willReplaceOnChanges":true},"routeTableAssociationEnabled":{"type":"boolean","description":"Whether to enabled route table association. **NOTE:** \"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.192.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTableAssociation`\"\u003e`alicloud.cen.TransitRouterRouteTableAssociation`\u003c/span\u003e instead, how to use alicloud_cen_transit_router_route_table_association.\"\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.192.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTableAssociation`\"\u003e`alicloud.cen.TransitRouterRouteTableAssociation`\u003c/span\u003e instead."},"routeTablePropagationEnabled":{"type":"boolean","description":"Whether to enabled route table propagation. **NOTE:** \"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.192.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTablePropagation`\"\u003e`alicloud.cen.TransitRouterRouteTablePropagation`\u003c/span\u003e instead, how to use alicloud_cen_transit_router_route_table_propagation.\"\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.192.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTablePropagation`\"\u003e`alicloud.cen.TransitRouterRouteTablePropagation`\u003c/span\u003e instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterAttachmentDescription":{"type":"string","description":"The description of the VPC connection.\n\nThe description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.\n"},"transitRouterAttachmentName":{"type":"string","description":"Field 'transit_router_attachment_name' has been deprecated from provider version 1.230.1. New field 'transit_router_vpc_attachment_name' instead.\n","deprecationMessage":"Field 'transit_router_attachment_name' has been deprecated since provider version 1.230.1. New field 'transit_router_vpc_attachment_name' instead."},"transitRouterId":{"type":"string","description":"The ID of the Enterprise Edition transit router.\n","willReplaceOnChanges":true},"transitRouterVpcAttachmentName":{"type":"string","description":"The name of the VPC connection.\n\nThe name must be 2 to 128 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). It must start with a letter.\n"},"transitRouterVpcAttachmentOptions":{"type":"object","additionalProperties":{"type":"string"},"description":"TransitRouterVpcAttachmentOptions\n"},"vpcId":{"type":"string","description":"The VPC ID.\n","willReplaceOnChanges":true},"vpcOwnerId":{"type":"string","description":"VpcOwnerId\n","willReplaceOnChanges":true},"zoneMappings":{"type":"array","items":{"$ref":"#/types/alicloud:cen/TransitRouterVpcAttachmentZoneMapping:TransitRouterVpcAttachmentZoneMapping"},"description":"ZoneMappingss See \u003cspan pulumi-lang-nodejs=\"`zoneMappings`\" pulumi-lang-dotnet=\"`ZoneMappings`\" pulumi-lang-go=\"`zoneMappings`\" pulumi-lang-python=\"`zone_mappings`\" pulumi-lang-yaml=\"`zoneMappings`\" pulumi-lang-java=\"`zoneMappings`\"\u003e`zone_mappings`\u003c/span\u003e below.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"requiredInputs":["vpcId","zoneMappings"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterVpcAttachment resources.\n","properties":{"autoPublishRouteEnabled":{"type":"boolean","description":"Specifies whether to enable the Enterprise Edition transit router to automatically advertise routes to VPCs. Valid values:\n- **false:** (default)\n"},"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"dryRun":{"type":"boolean","description":"Whether to perform PreCheck on this request, including permissions and instance status verification. Value:\n"},"forceDelete":{"type":"boolean","description":"Whether to forcibly delete the VPC connection. The value is:\n"},"paymentType":{"type":"string","description":"The billing method. The default value is `PayAsYouGo`, which specifies the pay-as-you-go billing method.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"(Available since v1.260.0).The ID of the region where the VPC is deployed.\n"},"resourceType":{"type":"string","description":"The resource type of the transit router vpc attachment. Default value: `VPC`. Valid values: `VPC`.\n","willReplaceOnChanges":true},"routeTableAssociationEnabled":{"type":"boolean","description":"Whether to enabled route table association. **NOTE:** \"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.192.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTableAssociation`\"\u003e`alicloud.cen.TransitRouterRouteTableAssociation`\u003c/span\u003e instead, how to use alicloud_cen_transit_router_route_table_association.\"\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTableAssociationEnabled`\" pulumi-lang-dotnet=\"`RouteTableAssociationEnabled`\" pulumi-lang-go=\"`routeTableAssociationEnabled`\" pulumi-lang-python=\"`route_table_association_enabled`\" pulumi-lang-yaml=\"`routeTableAssociationEnabled`\" pulumi-lang-java=\"`routeTableAssociationEnabled`\"\u003e`route_table_association_enabled`\u003c/span\u003e has been deprecated from provider version 1.192.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTableAssociation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTableAssociation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTableAssociation`\"\u003e`alicloud.cen.TransitRouterRouteTableAssociation`\u003c/span\u003e instead."},"routeTablePropagationEnabled":{"type":"boolean","description":"Whether to enabled route table propagation. **NOTE:** \"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.192.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTablePropagation`\"\u003e`alicloud.cen.TransitRouterRouteTablePropagation`\u003c/span\u003e instead, how to use alicloud_cen_transit_router_route_table_propagation.\"\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`routeTablePropagationEnabled`\" pulumi-lang-dotnet=\"`RouteTablePropagationEnabled`\" pulumi-lang-go=\"`routeTablePropagationEnabled`\" pulumi-lang-python=\"`route_table_propagation_enabled`\" pulumi-lang-yaml=\"`routeTablePropagationEnabled`\" pulumi-lang-java=\"`routeTablePropagationEnabled`\"\u003e`route_table_propagation_enabled`\u003c/span\u003e has been deprecated from provider version 1.192.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-dotnet=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-go=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-python=\"`cen.TransitRouterRouteTablePropagation`\" pulumi-lang-yaml=\"`alicloud.cen.TransitRouterRouteTablePropagation`\" pulumi-lang-java=\"`alicloud.cen.TransitRouterRouteTablePropagation`\"\u003e`alicloud.cen.TransitRouterRouteTablePropagation`\u003c/span\u003e instead."},"status":{"type":"string","description":"Status\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterAttachmentDescription":{"type":"string","description":"The description of the VPC connection.\n\nThe description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the VPC connection.\n"},"transitRouterAttachmentName":{"type":"string","description":"Field 'transit_router_attachment_name' has been deprecated from provider version 1.230.1. New field 'transit_router_vpc_attachment_name' instead.\n","deprecationMessage":"Field 'transit_router_attachment_name' has been deprecated since provider version 1.230.1. New field 'transit_router_vpc_attachment_name' instead."},"transitRouterId":{"type":"string","description":"The ID of the Enterprise Edition transit router.\n","willReplaceOnChanges":true},"transitRouterVpcAttachmentName":{"type":"string","description":"The name of the VPC connection.\n\nThe name must be 2 to 128 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). It must start with a letter.\n"},"transitRouterVpcAttachmentOptions":{"type":"object","additionalProperties":{"type":"string"},"description":"TransitRouterVpcAttachmentOptions\n"},"vpcId":{"type":"string","description":"The VPC ID.\n","willReplaceOnChanges":true},"vpcOwnerId":{"type":"string","description":"VpcOwnerId\n","willReplaceOnChanges":true},"zoneMappings":{"type":"array","items":{"$ref":"#/types/alicloud:cen/TransitRouterVpcAttachmentZoneMapping:TransitRouterVpcAttachmentZoneMapping"},"description":"ZoneMappingss See \u003cspan pulumi-lang-nodejs=\"`zoneMappings`\" pulumi-lang-dotnet=\"`ZoneMappings`\" pulumi-lang-go=\"`zoneMappings`\" pulumi-lang-python=\"`zone_mappings`\" pulumi-lang-yaml=\"`zoneMappings`\" pulumi-lang-java=\"`zoneMappings`\"\u003e`zone_mappings`\u003c/span\u003e below.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"type":"object"}},"alicloud:cen/transitRouterVpnAttachment:TransitRouterVpnAttachment":{"description":"Provides a Cloud Enterprise Network (CEN) Transit Router Vpn Attachment resource.\n\n\n\nFor information about Cloud Enterprise Network (CEN) Transit Router Vpn Attachment and how to use it, see [What is Transit Router Vpn Attachment](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-createtransitroutervpnattachment).\n\n\u003e **NOTE:** Available since v1.183.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.cen.getTransitRouterAvailableResources({});\nconst example = new alicloud.cen.Instance(\"example\", {cenInstanceName: name});\nconst exampleTransitRouter = new alicloud.cen.TransitRouter(\"example\", {\n    cenId: example.id,\n    transitRouterDescription: name,\n    transitRouterName: name,\n});\nconst exampleCustomerGateway = new alicloud.vpn.CustomerGateway(\"example\", {\n    customerGatewayName: name,\n    ipAddress: \"42.104.22.210\",\n    asn: \"45014\",\n    description: name,\n});\nconst exampleGatewayVpnAttachment = new alicloud.vpn.GatewayVpnAttachment(\"example\", {\n    customerGatewayId: exampleCustomerGateway.id,\n    networkType: \"public\",\n    localSubnet: \"0.0.0.0/0\",\n    remoteSubnet: \"0.0.0.0/0\",\n    effectImmediately: false,\n    ikeConfig: {\n        ikeAuthAlg: \"md5\",\n        ikeEncAlg: \"des\",\n        ikeVersion: \"ikev2\",\n        ikeMode: \"main\",\n        ikeLifetime: 86400,\n        psk: \"tf-examplevpn2\",\n        ikePfs: \"group1\",\n        remoteId: \"examplebob2\",\n        localId: \"examplealice2\",\n    },\n    ipsecConfig: {\n        ipsecPfs: \"group5\",\n        ipsecEncAlg: \"des\",\n        ipsecAuthAlg: \"md5\",\n        ipsecLifetime: 86400,\n    },\n    bgpConfig: {\n        enable: true,\n        localAsn: 45014,\n        tunnelCidr: \"169.254.11.0/30\",\n        localBgpIp: \"169.254.11.1\",\n    },\n    healthCheckConfig: {\n        enable: true,\n        sip: \"192.168.1.1\",\n        dip: \"10.0.0.1\",\n        interval: 10,\n        retry: 10,\n        policy: \"revoke_route\",\n    },\n    enableDpd: true,\n    enableNatTraversal: true,\n    vpnAttachmentName: name,\n});\nconst exampleTransitRouterCidr = new alicloud.cen.TransitRouterCidr(\"example\", {\n    transitRouterId: exampleTransitRouter.transitRouterId,\n    cidr: \"192.168.0.0/16\",\n    transitRouterCidrName: name,\n    description: name,\n    publishCidrRoute: true,\n});\nconst exampleTransitRouterVpnAttachment = new alicloud.cen.TransitRouterVpnAttachment(\"example\", {\n    autoPublishRouteEnabled: false,\n    transitRouterAttachmentDescription: name,\n    transitRouterAttachmentName: name,\n    cenId: exampleTransitRouter.cenId,\n    transitRouterId: exampleTransitRouterCidr.transitRouterId,\n    vpnId: exampleGatewayVpnAttachment.id,\n    zones: [{\n        zoneId: _default.then(_default =\u003e _default.resources?.[0]?.masterZones?.[0]),\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.cen.get_transit_router_available_resources()\nexample = alicloud.cen.Instance(\"example\", cen_instance_name=name)\nexample_transit_router = alicloud.cen.TransitRouter(\"example\",\n    cen_id=example.id,\n    transit_router_description=name,\n    transit_router_name=name)\nexample_customer_gateway = alicloud.vpn.CustomerGateway(\"example\",\n    customer_gateway_name=name,\n    ip_address=\"42.104.22.210\",\n    asn=\"45014\",\n    description=name)\nexample_gateway_vpn_attachment = alicloud.vpn.GatewayVpnAttachment(\"example\",\n    customer_gateway_id=example_customer_gateway.id,\n    network_type=\"public\",\n    local_subnet=\"0.0.0.0/0\",\n    remote_subnet=\"0.0.0.0/0\",\n    effect_immediately=False,\n    ike_config={\n        \"ike_auth_alg\": \"md5\",\n        \"ike_enc_alg\": \"des\",\n        \"ike_version\": \"ikev2\",\n        \"ike_mode\": \"main\",\n        \"ike_lifetime\": 86400,\n        \"psk\": \"tf-examplevpn2\",\n        \"ike_pfs\": \"group1\",\n        \"remote_id\": \"examplebob2\",\n        \"local_id\": \"examplealice2\",\n    },\n    ipsec_config={\n        \"ipsec_pfs\": \"group5\",\n        \"ipsec_enc_alg\": \"des\",\n        \"ipsec_auth_alg\": \"md5\",\n        \"ipsec_lifetime\": 86400,\n    },\n    bgp_config={\n        \"enable\": True,\n        \"local_asn\": 45014,\n        \"tunnel_cidr\": \"169.254.11.0/30\",\n        \"local_bgp_ip\": \"169.254.11.1\",\n    },\n    health_check_config={\n        \"enable\": True,\n        \"sip\": \"192.168.1.1\",\n        \"dip\": \"10.0.0.1\",\n        \"interval\": 10,\n        \"retry\": 10,\n        \"policy\": \"revoke_route\",\n    },\n    enable_dpd=True,\n    enable_nat_traversal=True,\n    vpn_attachment_name=name)\nexample_transit_router_cidr = alicloud.cen.TransitRouterCidr(\"example\",\n    transit_router_id=example_transit_router.transit_router_id,\n    cidr=\"192.168.0.0/16\",\n    transit_router_cidr_name=name,\n    description=name,\n    publish_cidr_route=True)\nexample_transit_router_vpn_attachment = alicloud.cen.TransitRouterVpnAttachment(\"example\",\n    auto_publish_route_enabled=False,\n    transit_router_attachment_description=name,\n    transit_router_attachment_name=name,\n    cen_id=example_transit_router.cen_id,\n    transit_router_id=example_transit_router_cidr.transit_router_id,\n    vpn_id=example_gateway_vpn_attachment.id,\n    zones=[{\n        \"zone_id\": default.resources[0].master_zones[0],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.Cen.GetTransitRouterAvailableResources.Invoke();\n\n    var example = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = name,\n    });\n\n    var exampleTransitRouter = new AliCloud.Cen.TransitRouter(\"example\", new()\n    {\n        CenId = example.Id,\n        TransitRouterDescription = name,\n        TransitRouterName = name,\n    });\n\n    var exampleCustomerGateway = new AliCloud.Vpn.CustomerGateway(\"example\", new()\n    {\n        CustomerGatewayName = name,\n        IpAddress = \"42.104.22.210\",\n        Asn = \"45014\",\n        Description = name,\n    });\n\n    var exampleGatewayVpnAttachment = new AliCloud.Vpn.GatewayVpnAttachment(\"example\", new()\n    {\n        CustomerGatewayId = exampleCustomerGateway.Id,\n        NetworkType = \"public\",\n        LocalSubnet = \"0.0.0.0/0\",\n        RemoteSubnet = \"0.0.0.0/0\",\n        EffectImmediately = false,\n        IkeConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentIkeConfigArgs\n        {\n            IkeAuthAlg = \"md5\",\n            IkeEncAlg = \"des\",\n            IkeVersion = \"ikev2\",\n            IkeMode = \"main\",\n            IkeLifetime = 86400,\n            Psk = \"tf-examplevpn2\",\n            IkePfs = \"group1\",\n            RemoteId = \"examplebob2\",\n            LocalId = \"examplealice2\",\n        },\n        IpsecConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentIpsecConfigArgs\n        {\n            IpsecPfs = \"group5\",\n            IpsecEncAlg = \"des\",\n            IpsecAuthAlg = \"md5\",\n            IpsecLifetime = 86400,\n        },\n        BgpConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentBgpConfigArgs\n        {\n            Enable = true,\n            LocalAsn = 45014,\n            TunnelCidr = \"169.254.11.0/30\",\n            LocalBgpIp = \"169.254.11.1\",\n        },\n        HealthCheckConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentHealthCheckConfigArgs\n        {\n            Enable = true,\n            Sip = \"192.168.1.1\",\n            Dip = \"10.0.0.1\",\n            Interval = 10,\n            Retry = 10,\n            Policy = \"revoke_route\",\n        },\n        EnableDpd = true,\n        EnableNatTraversal = true,\n        VpnAttachmentName = name,\n    });\n\n    var exampleTransitRouterCidr = new AliCloud.Cen.TransitRouterCidr(\"example\", new()\n    {\n        TransitRouterId = exampleTransitRouter.TransitRouterId,\n        Cidr = \"192.168.0.0/16\",\n        TransitRouterCidrName = name,\n        Description = name,\n        PublishCidrRoute = true,\n    });\n\n    var exampleTransitRouterVpnAttachment = new AliCloud.Cen.TransitRouterVpnAttachment(\"example\", new()\n    {\n        AutoPublishRouteEnabled = false,\n        TransitRouterAttachmentDescription = name,\n        TransitRouterAttachmentName = name,\n        CenId = exampleTransitRouter.CenId,\n        TransitRouterId = exampleTransitRouterCidr.TransitRouterId,\n        VpnId = exampleGatewayVpnAttachment.Id,\n        Zones = new[]\n        {\n            new AliCloud.Cen.Inputs.TransitRouterVpnAttachmentZoneArgs\n            {\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.MasterZones[0])),\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cen.GetTransitRouterAvailableResources(ctx, \u0026cen.GetTransitRouterAvailableResourcesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouter, err := cen.NewTransitRouter(ctx, \"example\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId:                    example.ID(),\n\t\t\tTransitRouterDescription: pulumi.String(name),\n\t\t\tTransitRouterName:        pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCustomerGateway, err := vpn.NewCustomerGateway(ctx, \"example\", \u0026vpn.CustomerGatewayArgs{\n\t\t\tCustomerGatewayName: pulumi.String(name),\n\t\t\tIpAddress:           pulumi.String(\"42.104.22.210\"),\n\t\t\tAsn:                 pulumi.String(\"45014\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGatewayVpnAttachment, err := vpn.NewGatewayVpnAttachment(ctx, \"example\", \u0026vpn.GatewayVpnAttachmentArgs{\n\t\t\tCustomerGatewayId: exampleCustomerGateway.ID(),\n\t\t\tNetworkType:       pulumi.String(\"public\"),\n\t\t\tLocalSubnet:       pulumi.String(\"0.0.0.0/0\"),\n\t\t\tRemoteSubnet:      pulumi.String(\"0.0.0.0/0\"),\n\t\t\tEffectImmediately: pulumi.Bool(false),\n\t\t\tIkeConfig: \u0026vpn.GatewayVpnAttachmentIkeConfigArgs{\n\t\t\t\tIkeAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\tIkeEncAlg:   pulumi.String(\"des\"),\n\t\t\t\tIkeVersion:  pulumi.String(\"ikev2\"),\n\t\t\t\tIkeMode:     pulumi.String(\"main\"),\n\t\t\t\tIkeLifetime: pulumi.Int(86400),\n\t\t\t\tPsk:         pulumi.String(\"tf-examplevpn2\"),\n\t\t\t\tIkePfs:      pulumi.String(\"group1\"),\n\t\t\t\tRemoteId:    pulumi.String(\"examplebob2\"),\n\t\t\t\tLocalId:     pulumi.String(\"examplealice2\"),\n\t\t\t},\n\t\t\tIpsecConfig: \u0026vpn.GatewayVpnAttachmentIpsecConfigArgs{\n\t\t\t\tIpsecPfs:      pulumi.String(\"group5\"),\n\t\t\t\tIpsecEncAlg:   pulumi.String(\"des\"),\n\t\t\t\tIpsecAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\tIpsecLifetime: pulumi.Int(86400),\n\t\t\t},\n\t\t\tBgpConfig: \u0026vpn.GatewayVpnAttachmentBgpConfigArgs{\n\t\t\t\tEnable:     pulumi.Bool(true),\n\t\t\t\tLocalAsn:   pulumi.Int(45014),\n\t\t\t\tTunnelCidr: pulumi.String(\"169.254.11.0/30\"),\n\t\t\t\tLocalBgpIp: pulumi.String(\"169.254.11.1\"),\n\t\t\t},\n\t\t\tHealthCheckConfig: \u0026vpn.GatewayVpnAttachmentHealthCheckConfigArgs{\n\t\t\t\tEnable:   pulumi.Bool(true),\n\t\t\t\tSip:      pulumi.String(\"192.168.1.1\"),\n\t\t\t\tDip:      pulumi.String(\"10.0.0.1\"),\n\t\t\t\tInterval: pulumi.Int(10),\n\t\t\t\tRetry:    pulumi.Int(10),\n\t\t\t\tPolicy:   pulumi.String(\"revoke_route\"),\n\t\t\t},\n\t\t\tEnableDpd:          pulumi.Bool(true),\n\t\t\tEnableNatTraversal: pulumi.Bool(true),\n\t\t\tVpnAttachmentName:  pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTransitRouterCidr, err := cen.NewTransitRouterCidr(ctx, \"example\", \u0026cen.TransitRouterCidrArgs{\n\t\t\tTransitRouterId:       exampleTransitRouter.TransitRouterId,\n\t\t\tCidr:                  pulumi.String(\"192.168.0.0/16\"),\n\t\t\tTransitRouterCidrName: pulumi.String(name),\n\t\t\tDescription:           pulumi.String(name),\n\t\t\tPublishCidrRoute:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterVpnAttachment(ctx, \"example\", \u0026cen.TransitRouterVpnAttachmentArgs{\n\t\t\tAutoPublishRouteEnabled:            pulumi.Bool(false),\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(name),\n\t\t\tTransitRouterAttachmentName:        pulumi.String(name),\n\t\t\tCenId:                              exampleTransitRouter.CenId,\n\t\t\tTransitRouterId:                    exampleTransitRouterCidr.TransitRouterId,\n\t\t\tVpnId:                              exampleGatewayVpnAttachment.ID(),\n\t\t\tZones: cen.TransitRouterVpnAttachmentZoneArray{\n\t\t\t\t\u0026cen.TransitRouterVpnAttachmentZoneArgs{\n\t\t\t\t\tZoneId: pulumi.String(_default.Resources[0].MasterZones[0]),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterAvailableResourcesArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.vpn.CustomerGateway;\nimport com.pulumi.alicloud.vpn.CustomerGatewayArgs;\nimport com.pulumi.alicloud.vpn.GatewayVpnAttachment;\nimport com.pulumi.alicloud.vpn.GatewayVpnAttachmentArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentIkeConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentIpsecConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentBgpConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentHealthCheckConfigArgs;\nimport com.pulumi.alicloud.cen.TransitRouterCidr;\nimport com.pulumi.alicloud.cen.TransitRouterCidrArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVpnAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVpnAttachmentArgs;\nimport com.pulumi.alicloud.cen.inputs.TransitRouterVpnAttachmentZoneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = CenFunctions.getTransitRouterAvailableResources(GetTransitRouterAvailableResourcesArgs.builder()\n            .build());\n\n        var example = new Instance(\"example\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .build());\n\n        var exampleTransitRouter = new TransitRouter(\"exampleTransitRouter\", TransitRouterArgs.builder()\n            .cenId(example.id())\n            .transitRouterDescription(name)\n            .transitRouterName(name)\n            .build());\n\n        var exampleCustomerGateway = new CustomerGateway(\"exampleCustomerGateway\", CustomerGatewayArgs.builder()\n            .customerGatewayName(name)\n            .ipAddress(\"42.104.22.210\")\n            .asn(\"45014\")\n            .description(name)\n            .build());\n\n        var exampleGatewayVpnAttachment = new GatewayVpnAttachment(\"exampleGatewayVpnAttachment\", GatewayVpnAttachmentArgs.builder()\n            .customerGatewayId(exampleCustomerGateway.id())\n            .networkType(\"public\")\n            .localSubnet(\"0.0.0.0/0\")\n            .remoteSubnet(\"0.0.0.0/0\")\n            .effectImmediately(false)\n            .ikeConfig(GatewayVpnAttachmentIkeConfigArgs.builder()\n                .ikeAuthAlg(\"md5\")\n                .ikeEncAlg(\"des\")\n                .ikeVersion(\"ikev2\")\n                .ikeMode(\"main\")\n                .ikeLifetime(86400)\n                .psk(\"tf-examplevpn2\")\n                .ikePfs(\"group1\")\n                .remoteId(\"examplebob2\")\n                .localId(\"examplealice2\")\n                .build())\n            .ipsecConfig(GatewayVpnAttachmentIpsecConfigArgs.builder()\n                .ipsecPfs(\"group5\")\n                .ipsecEncAlg(\"des\")\n                .ipsecAuthAlg(\"md5\")\n                .ipsecLifetime(86400)\n                .build())\n            .bgpConfig(GatewayVpnAttachmentBgpConfigArgs.builder()\n                .enable(true)\n                .localAsn(45014)\n                .tunnelCidr(\"169.254.11.0/30\")\n                .localBgpIp(\"169.254.11.1\")\n                .build())\n            .healthCheckConfig(GatewayVpnAttachmentHealthCheckConfigArgs.builder()\n                .enable(true)\n                .sip(\"192.168.1.1\")\n                .dip(\"10.0.0.1\")\n                .interval(10)\n                .retry(10)\n                .policy(\"revoke_route\")\n                .build())\n            .enableDpd(true)\n            .enableNatTraversal(true)\n            .vpnAttachmentName(name)\n            .build());\n\n        var exampleTransitRouterCidr = new TransitRouterCidr(\"exampleTransitRouterCidr\", TransitRouterCidrArgs.builder()\n            .transitRouterId(exampleTransitRouter.transitRouterId())\n            .cidr(\"192.168.0.0/16\")\n            .transitRouterCidrName(name)\n            .description(name)\n            .publishCidrRoute(true)\n            .build());\n\n        var exampleTransitRouterVpnAttachment = new TransitRouterVpnAttachment(\"exampleTransitRouterVpnAttachment\", TransitRouterVpnAttachmentArgs.builder()\n            .autoPublishRouteEnabled(false)\n            .transitRouterAttachmentDescription(name)\n            .transitRouterAttachmentName(name)\n            .cenId(exampleTransitRouter.cenId())\n            .transitRouterId(exampleTransitRouterCidr.transitRouterId())\n            .vpnId(exampleGatewayVpnAttachment.id())\n            .zones(TransitRouterVpnAttachmentZoneArgs.builder()\n                .zoneId(default_.resources()[0].masterZones()[0])\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  example:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: ${name}\n  exampleTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: example\n    properties:\n      cenId: ${example.id}\n      transitRouterDescription: ${name}\n      transitRouterName: ${name}\n  exampleCustomerGateway:\n    type: alicloud:vpn:CustomerGateway\n    name: example\n    properties:\n      customerGatewayName: ${name}\n      ipAddress: 42.104.22.210\n      asn: '45014'\n      description: ${name}\n  exampleGatewayVpnAttachment:\n    type: alicloud:vpn:GatewayVpnAttachment\n    name: example\n    properties:\n      customerGatewayId: ${exampleCustomerGateway.id}\n      networkType: public\n      localSubnet: 0.0.0.0/0\n      remoteSubnet: 0.0.0.0/0\n      effectImmediately: false\n      ikeConfig:\n        ikeAuthAlg: md5\n        ikeEncAlg: des\n        ikeVersion: ikev2\n        ikeMode: main\n        ikeLifetime: 86400\n        psk: tf-examplevpn2\n        ikePfs: group1\n        remoteId: examplebob2\n        localId: examplealice2\n      ipsecConfig:\n        ipsecPfs: group5\n        ipsecEncAlg: des\n        ipsecAuthAlg: md5\n        ipsecLifetime: 86400\n      bgpConfig:\n        enable: true\n        localAsn: 45014\n        tunnelCidr: 169.254.11.0/30\n        localBgpIp: 169.254.11.1\n      healthCheckConfig:\n        enable: true\n        sip: 192.168.1.1\n        dip: 10.0.0.1\n        interval: 10\n        retry: 10\n        policy: revoke_route\n      enableDpd: true\n      enableNatTraversal: true\n      vpnAttachmentName: ${name}\n  exampleTransitRouterCidr:\n    type: alicloud:cen:TransitRouterCidr\n    name: example\n    properties:\n      transitRouterId: ${exampleTransitRouter.transitRouterId}\n      cidr: 192.168.0.0/16\n      transitRouterCidrName: ${name}\n      description: ${name}\n      publishCidrRoute: true\n  exampleTransitRouterVpnAttachment:\n    type: alicloud:cen:TransitRouterVpnAttachment\n    name: example\n    properties:\n      autoPublishRouteEnabled: false\n      transitRouterAttachmentDescription: ${name}\n      transitRouterAttachmentName: ${name}\n      cenId: ${exampleTransitRouter.cenId}\n      transitRouterId: ${exampleTransitRouterCidr.transitRouterId}\n      vpnId: ${exampleGatewayVpnAttachment.id}\n      zones:\n        - zoneId: ${default.resources[0].masterZones[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterAvailableResources\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nDual Tunnel Mode Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getAccount({});\nconst defaultbpR5Uk = new alicloud.cen.Instance(\"defaultbpR5Uk\", {cenInstanceName: \"example-vpn-attachment\"});\nconst defaultM8Zo6H = new alicloud.cen.TransitRouter(\"defaultM8Zo6H\", {cenId: defaultbpR5Uk.id});\nconst defaultuUtyCv = new alicloud.cen.TransitRouterCidr(\"defaultuUtyCv\", {\n    cidr: \"192.168.10.0/24\",\n    transitRouterId: defaultM8Zo6H.transitRouterId,\n});\nconst defaultMeoCIz = new alicloud.vpn.CustomerGateway(\"defaultMeoCIz\", {\n    ipAddress: \"0.0.0.0\",\n    customerGatewayName: \"example-vpn-attachment\",\n}, {\n    dependsOn: [defaultuUtyCv],\n});\nconst defaultGetTransitRouterService = alicloud.cen.getTransitRouterService({\n    enable: \"On\",\n});\nconst defaultvrPzdh = new alicloud.vpn.GatewayVpnAttachment(\"defaultvrPzdh\", {\n    networkType: \"public\",\n    localSubnet: \"0.0.0.0/0\",\n    enableTunnelsBgp: false,\n    vpnAttachmentName: name,\n    tunnelOptionsSpecifications: [\n        {\n            customerGatewayId: defaultMeoCIz.id,\n            enableDpd: true,\n            enableNatTraversal: true,\n            tunnelIndex: 1,\n            tunnelIkeConfig: {\n                remoteId: \"2.2.2.2\",\n                ikeEncAlg: \"aes\",\n                ikeMode: \"main\",\n                ikeVersion: \"ikev1\",\n                localId: \"1.1.1.1\",\n                ikeAuthAlg: \"md5\",\n                ikeLifetime: 86100,\n                ikePfs: \"group2\",\n                psk: \"12345678\",\n            },\n            tunnelIpsecConfig: {\n                ipsecAuthAlg: \"md5\",\n                ipsecEncAlg: \"aes\",\n                ipsecLifetime: 86200,\n                ipsecPfs: \"group5\",\n            },\n        },\n        {\n            enableNatTraversal: true,\n            tunnelIndex: 2,\n            tunnelIkeConfig: {\n                localId: \"4.4.4.4\",\n                remoteId: \"5.5.5.5\",\n                ikeLifetime: 86400,\n                ikePfs: \"group5\",\n                ikeMode: \"main\",\n                ikeVersion: \"ikev2\",\n                psk: \"32333442\",\n                ikeAuthAlg: \"md5\",\n                ikeEncAlg: \"aes\",\n            },\n            tunnelIpsecConfig: {\n                ipsecEncAlg: \"aes\",\n                ipsecLifetime: 86400,\n                ipsecPfs: \"group5\",\n                ipsecAuthAlg: \"sha256\",\n            },\n            customerGatewayId: defaultMeoCIz.id,\n            enableDpd: true,\n        },\n    ],\n    remoteSubnet: \"0.0.0.0/0\",\n});\nconst defaultTransitRouterVpnAttachment = new alicloud.cen.TransitRouterVpnAttachment(\"default\", {\n    transitRouterId: defaultM8Zo6H.transitRouterId,\n    vpnId: defaultvrPzdh.id,\n    autoPublishRouteEnabled: false,\n    chargeType: \"POSTPAY\",\n    transitRouterAttachmentName: \"example-vpn-attachment\",\n    vpnOwnerId: _default.then(_default =\u003e _default.id),\n    cenId: defaultM8Zo6H.cenId,\n    transitRouterAttachmentDescription: \"example-vpn-attachment\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_account()\ndefaultbp_r5_uk = alicloud.cen.Instance(\"defaultbpR5Uk\", cen_instance_name=\"example-vpn-attachment\")\ndefault_m8_zo6_h = alicloud.cen.TransitRouter(\"defaultM8Zo6H\", cen_id=defaultbp_r5_uk.id)\ndefaultu_uty_cv = alicloud.cen.TransitRouterCidr(\"defaultuUtyCv\",\n    cidr=\"192.168.10.0/24\",\n    transit_router_id=default_m8_zo6_h.transit_router_id)\ndefault_meo_c_iz = alicloud.vpn.CustomerGateway(\"defaultMeoCIz\",\n    ip_address=\"0.0.0.0\",\n    customer_gateway_name=\"example-vpn-attachment\",\n    opts = pulumi.ResourceOptions(depends_on=[defaultu_uty_cv]))\ndefault_get_transit_router_service = alicloud.cen.get_transit_router_service(enable=\"On\")\ndefaultvr_pzdh = alicloud.vpn.GatewayVpnAttachment(\"defaultvrPzdh\",\n    network_type=\"public\",\n    local_subnet=\"0.0.0.0/0\",\n    enable_tunnels_bgp=False,\n    vpn_attachment_name=name,\n    tunnel_options_specifications=[\n        {\n            \"customer_gateway_id\": default_meo_c_iz.id,\n            \"enable_dpd\": True,\n            \"enable_nat_traversal\": True,\n            \"tunnel_index\": 1,\n            \"tunnel_ike_config\": {\n                \"remote_id\": \"2.2.2.2\",\n                \"ike_enc_alg\": \"aes\",\n                \"ike_mode\": \"main\",\n                \"ike_version\": \"ikev1\",\n                \"local_id\": \"1.1.1.1\",\n                \"ike_auth_alg\": \"md5\",\n                \"ike_lifetime\": 86100,\n                \"ike_pfs\": \"group2\",\n                \"psk\": \"12345678\",\n            },\n            \"tunnel_ipsec_config\": {\n                \"ipsec_auth_alg\": \"md5\",\n                \"ipsec_enc_alg\": \"aes\",\n                \"ipsec_lifetime\": 86200,\n                \"ipsec_pfs\": \"group5\",\n            },\n        },\n        {\n            \"enable_nat_traversal\": True,\n            \"tunnel_index\": 2,\n            \"tunnel_ike_config\": {\n                \"local_id\": \"4.4.4.4\",\n                \"remote_id\": \"5.5.5.5\",\n                \"ike_lifetime\": 86400,\n                \"ike_pfs\": \"group5\",\n                \"ike_mode\": \"main\",\n                \"ike_version\": \"ikev2\",\n                \"psk\": \"32333442\",\n                \"ike_auth_alg\": \"md5\",\n                \"ike_enc_alg\": \"aes\",\n            },\n            \"tunnel_ipsec_config\": {\n                \"ipsec_enc_alg\": \"aes\",\n                \"ipsec_lifetime\": 86400,\n                \"ipsec_pfs\": \"group5\",\n                \"ipsec_auth_alg\": \"sha256\",\n            },\n            \"customer_gateway_id\": default_meo_c_iz.id,\n            \"enable_dpd\": True,\n        },\n    ],\n    remote_subnet=\"0.0.0.0/0\")\ndefault_transit_router_vpn_attachment = alicloud.cen.TransitRouterVpnAttachment(\"default\",\n    transit_router_id=default_m8_zo6_h.transit_router_id,\n    vpn_id=defaultvr_pzdh.id,\n    auto_publish_route_enabled=False,\n    charge_type=\"POSTPAY\",\n    transit_router_attachment_name=\"example-vpn-attachment\",\n    vpn_owner_id=default.id,\n    cen_id=default_m8_zo6_h.cen_id,\n    transit_router_attachment_description=\"example-vpn-attachment\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultbpR5Uk = new AliCloud.Cen.Instance(\"defaultbpR5Uk\", new()\n    {\n        CenInstanceName = \"example-vpn-attachment\",\n    });\n\n    var defaultM8Zo6H = new AliCloud.Cen.TransitRouter(\"defaultM8Zo6H\", new()\n    {\n        CenId = defaultbpR5Uk.Id,\n    });\n\n    var defaultuUtyCv = new AliCloud.Cen.TransitRouterCidr(\"defaultuUtyCv\", new()\n    {\n        Cidr = \"192.168.10.0/24\",\n        TransitRouterId = defaultM8Zo6H.TransitRouterId,\n    });\n\n    var defaultMeoCIz = new AliCloud.Vpn.CustomerGateway(\"defaultMeoCIz\", new()\n    {\n        IpAddress = \"0.0.0.0\",\n        CustomerGatewayName = \"example-vpn-attachment\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            defaultuUtyCv,\n        },\n    });\n\n    var defaultGetTransitRouterService = AliCloud.Cen.GetTransitRouterService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n    var defaultvrPzdh = new AliCloud.Vpn.GatewayVpnAttachment(\"defaultvrPzdh\", new()\n    {\n        NetworkType = \"public\",\n        LocalSubnet = \"0.0.0.0/0\",\n        EnableTunnelsBgp = false,\n        VpnAttachmentName = name,\n        TunnelOptionsSpecifications = new[]\n        {\n            new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationArgs\n            {\n                CustomerGatewayId = defaultMeoCIz.Id,\n                EnableDpd = true,\n                EnableNatTraversal = true,\n                TunnelIndex = 1,\n                TunnelIkeConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs\n                {\n                    RemoteId = \"2.2.2.2\",\n                    IkeEncAlg = \"aes\",\n                    IkeMode = \"main\",\n                    IkeVersion = \"ikev1\",\n                    LocalId = \"1.1.1.1\",\n                    IkeAuthAlg = \"md5\",\n                    IkeLifetime = 86100,\n                    IkePfs = \"group2\",\n                    Psk = \"12345678\",\n                },\n                TunnelIpsecConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs\n                {\n                    IpsecAuthAlg = \"md5\",\n                    IpsecEncAlg = \"aes\",\n                    IpsecLifetime = 86200,\n                    IpsecPfs = \"group5\",\n                },\n            },\n            new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationArgs\n            {\n                EnableNatTraversal = true,\n                TunnelIndex = 2,\n                TunnelIkeConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs\n                {\n                    LocalId = \"4.4.4.4\",\n                    RemoteId = \"5.5.5.5\",\n                    IkeLifetime = 86400,\n                    IkePfs = \"group5\",\n                    IkeMode = \"main\",\n                    IkeVersion = \"ikev2\",\n                    Psk = \"32333442\",\n                    IkeAuthAlg = \"md5\",\n                    IkeEncAlg = \"aes\",\n                },\n                TunnelIpsecConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs\n                {\n                    IpsecEncAlg = \"aes\",\n                    IpsecLifetime = 86400,\n                    IpsecPfs = \"group5\",\n                    IpsecAuthAlg = \"sha256\",\n                },\n                CustomerGatewayId = defaultMeoCIz.Id,\n                EnableDpd = true,\n            },\n        },\n        RemoteSubnet = \"0.0.0.0/0\",\n    });\n\n    var defaultTransitRouterVpnAttachment = new AliCloud.Cen.TransitRouterVpnAttachment(\"default\", new()\n    {\n        TransitRouterId = defaultM8Zo6H.TransitRouterId,\n        VpnId = defaultvrPzdh.Id,\n        AutoPublishRouteEnabled = false,\n        ChargeType = \"POSTPAY\",\n        TransitRouterAttachmentName = \"example-vpn-attachment\",\n        VpnOwnerId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        CenId = defaultM8Zo6H.CenId,\n        TransitRouterAttachmentDescription = \"example-vpn-attachment\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultbpR5Uk, err := cen.NewInstance(ctx, \"defaultbpR5Uk\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(\"example-vpn-attachment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultM8Zo6H, err := cen.NewTransitRouter(ctx, \"defaultM8Zo6H\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId: defaultbpR5Uk.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultuUtyCv, err := cen.NewTransitRouterCidr(ctx, \"defaultuUtyCv\", \u0026cen.TransitRouterCidrArgs{\n\t\t\tCidr:            pulumi.String(\"192.168.10.0/24\"),\n\t\t\tTransitRouterId: defaultM8Zo6H.TransitRouterId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultMeoCIz, err := vpn.NewCustomerGateway(ctx, \"defaultMeoCIz\", \u0026vpn.CustomerGatewayArgs{\n\t\t\tIpAddress:           pulumi.String(\"0.0.0.0\"),\n\t\t\tCustomerGatewayName: pulumi.String(\"example-vpn-attachment\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdefaultuUtyCv,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.GetTransitRouterService(ctx, \u0026cen.GetTransitRouterServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultvrPzdh, err := vpn.NewGatewayVpnAttachment(ctx, \"defaultvrPzdh\", \u0026vpn.GatewayVpnAttachmentArgs{\n\t\t\tNetworkType:       pulumi.String(\"public\"),\n\t\t\tLocalSubnet:       pulumi.String(\"0.0.0.0/0\"),\n\t\t\tEnableTunnelsBgp:  pulumi.Bool(false),\n\t\t\tVpnAttachmentName: pulumi.String(name),\n\t\t\tTunnelOptionsSpecifications: vpn.GatewayVpnAttachmentTunnelOptionsSpecificationArray{\n\t\t\t\t\u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationArgs{\n\t\t\t\t\tCustomerGatewayId:  defaultMeoCIz.ID(),\n\t\t\t\t\tEnableDpd:          pulumi.Bool(true),\n\t\t\t\t\tEnableNatTraversal: pulumi.Bool(true),\n\t\t\t\t\tTunnelIndex:        pulumi.Int(1),\n\t\t\t\t\tTunnelIkeConfig: \u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs{\n\t\t\t\t\t\tRemoteId:    pulumi.String(\"2.2.2.2\"),\n\t\t\t\t\t\tIkeEncAlg:   pulumi.String(\"aes\"),\n\t\t\t\t\t\tIkeMode:     pulumi.String(\"main\"),\n\t\t\t\t\t\tIkeVersion:  pulumi.String(\"ikev1\"),\n\t\t\t\t\t\tLocalId:     pulumi.String(\"1.1.1.1\"),\n\t\t\t\t\t\tIkeAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIkeLifetime: pulumi.Int(86100),\n\t\t\t\t\t\tIkePfs:      pulumi.String(\"group2\"),\n\t\t\t\t\t\tPsk:         pulumi.String(\"12345678\"),\n\t\t\t\t\t},\n\t\t\t\t\tTunnelIpsecConfig: \u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs{\n\t\t\t\t\t\tIpsecAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIpsecEncAlg:   pulumi.String(\"aes\"),\n\t\t\t\t\t\tIpsecLifetime: pulumi.Int(86200),\n\t\t\t\t\t\tIpsecPfs:      pulumi.String(\"group5\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationArgs{\n\t\t\t\t\tEnableNatTraversal: pulumi.Bool(true),\n\t\t\t\t\tTunnelIndex:        pulumi.Int(2),\n\t\t\t\t\tTunnelIkeConfig: \u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs{\n\t\t\t\t\t\tLocalId:     pulumi.String(\"4.4.4.4\"),\n\t\t\t\t\t\tRemoteId:    pulumi.String(\"5.5.5.5\"),\n\t\t\t\t\t\tIkeLifetime: pulumi.Int(86400),\n\t\t\t\t\t\tIkePfs:      pulumi.String(\"group5\"),\n\t\t\t\t\t\tIkeMode:     pulumi.String(\"main\"),\n\t\t\t\t\t\tIkeVersion:  pulumi.String(\"ikev2\"),\n\t\t\t\t\t\tPsk:         pulumi.String(\"32333442\"),\n\t\t\t\t\t\tIkeAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIkeEncAlg:   pulumi.String(\"aes\"),\n\t\t\t\t\t},\n\t\t\t\t\tTunnelIpsecConfig: \u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs{\n\t\t\t\t\t\tIpsecEncAlg:   pulumi.String(\"aes\"),\n\t\t\t\t\t\tIpsecLifetime: pulumi.Int(86400),\n\t\t\t\t\t\tIpsecPfs:      pulumi.String(\"group5\"),\n\t\t\t\t\t\tIpsecAuthAlg:  pulumi.String(\"sha256\"),\n\t\t\t\t\t},\n\t\t\t\t\tCustomerGatewayId: defaultMeoCIz.ID(),\n\t\t\t\t\tEnableDpd:         pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRemoteSubnet: pulumi.String(\"0.0.0.0/0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterVpnAttachment(ctx, \"default\", \u0026cen.TransitRouterVpnAttachmentArgs{\n\t\t\tTransitRouterId:                    defaultM8Zo6H.TransitRouterId,\n\t\t\tVpnId:                              defaultvrPzdh.ID(),\n\t\t\tAutoPublishRouteEnabled:            pulumi.Bool(false),\n\t\t\tChargeType:                         pulumi.String(\"POSTPAY\"),\n\t\t\tTransitRouterAttachmentName:        pulumi.String(\"example-vpn-attachment\"),\n\t\t\tVpnOwnerId:                         pulumi.String(_default.Id),\n\t\t\tCenId:                              defaultM8Zo6H.CenId,\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(\"example-vpn-attachment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterCidr;\nimport com.pulumi.alicloud.cen.TransitRouterCidrArgs;\nimport com.pulumi.alicloud.vpn.CustomerGateway;\nimport com.pulumi.alicloud.vpn.CustomerGatewayArgs;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterServiceArgs;\nimport com.pulumi.alicloud.vpn.GatewayVpnAttachment;\nimport com.pulumi.alicloud.vpn.GatewayVpnAttachmentArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentTunnelOptionsSpecificationArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVpnAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVpnAttachmentArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var defaultbpR5Uk = new Instance(\"defaultbpR5Uk\", InstanceArgs.builder()\n            .cenInstanceName(\"example-vpn-attachment\")\n            .build());\n\n        var defaultM8Zo6H = new TransitRouter(\"defaultM8Zo6H\", TransitRouterArgs.builder()\n            .cenId(defaultbpR5Uk.id())\n            .build());\n\n        var defaultuUtyCv = new TransitRouterCidr(\"defaultuUtyCv\", TransitRouterCidrArgs.builder()\n            .cidr(\"192.168.10.0/24\")\n            .transitRouterId(defaultM8Zo6H.transitRouterId())\n            .build());\n\n        var defaultMeoCIz = new CustomerGateway(\"defaultMeoCIz\", CustomerGatewayArgs.builder()\n            .ipAddress(\"0.0.0.0\")\n            .customerGatewayName(\"example-vpn-attachment\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(defaultuUtyCv)\n                .build());\n\n        final var defaultGetTransitRouterService = CenFunctions.getTransitRouterService(GetTransitRouterServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n        var defaultvrPzdh = new GatewayVpnAttachment(\"defaultvrPzdh\", GatewayVpnAttachmentArgs.builder()\n            .networkType(\"public\")\n            .localSubnet(\"0.0.0.0/0\")\n            .enableTunnelsBgp(false)\n            .vpnAttachmentName(name)\n            .tunnelOptionsSpecifications(            \n                GatewayVpnAttachmentTunnelOptionsSpecificationArgs.builder()\n                    .customerGatewayId(defaultMeoCIz.id())\n                    .enableDpd(true)\n                    .enableNatTraversal(true)\n                    .tunnelIndex(1)\n                    .tunnelIkeConfig(GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs.builder()\n                        .remoteId(\"2.2.2.2\")\n                        .ikeEncAlg(\"aes\")\n                        .ikeMode(\"main\")\n                        .ikeVersion(\"ikev1\")\n                        .localId(\"1.1.1.1\")\n                        .ikeAuthAlg(\"md5\")\n                        .ikeLifetime(86100)\n                        .ikePfs(\"group2\")\n                        .psk(\"12345678\")\n                        .build())\n                    .tunnelIpsecConfig(GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs.builder()\n                        .ipsecAuthAlg(\"md5\")\n                        .ipsecEncAlg(\"aes\")\n                        .ipsecLifetime(86200)\n                        .ipsecPfs(\"group5\")\n                        .build())\n                    .build(),\n                GatewayVpnAttachmentTunnelOptionsSpecificationArgs.builder()\n                    .enableNatTraversal(true)\n                    .tunnelIndex(2)\n                    .tunnelIkeConfig(GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs.builder()\n                        .localId(\"4.4.4.4\")\n                        .remoteId(\"5.5.5.5\")\n                        .ikeLifetime(86400)\n                        .ikePfs(\"group5\")\n                        .ikeMode(\"main\")\n                        .ikeVersion(\"ikev2\")\n                        .psk(\"32333442\")\n                        .ikeAuthAlg(\"md5\")\n                        .ikeEncAlg(\"aes\")\n                        .build())\n                    .tunnelIpsecConfig(GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs.builder()\n                        .ipsecEncAlg(\"aes\")\n                        .ipsecLifetime(86400)\n                        .ipsecPfs(\"group5\")\n                        .ipsecAuthAlg(\"sha256\")\n                        .build())\n                    .customerGatewayId(defaultMeoCIz.id())\n                    .enableDpd(true)\n                    .build())\n            .remoteSubnet(\"0.0.0.0/0\")\n            .build());\n\n        var defaultTransitRouterVpnAttachment = new TransitRouterVpnAttachment(\"defaultTransitRouterVpnAttachment\", TransitRouterVpnAttachmentArgs.builder()\n            .transitRouterId(defaultM8Zo6H.transitRouterId())\n            .vpnId(defaultvrPzdh.id())\n            .autoPublishRouteEnabled(false)\n            .chargeType(\"POSTPAY\")\n            .transitRouterAttachmentName(\"example-vpn-attachment\")\n            .vpnOwnerId(default_.id())\n            .cenId(defaultM8Zo6H.cenId())\n            .transitRouterAttachmentDescription(\"example-vpn-attachment\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultbpR5Uk:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: example-vpn-attachment\n  defaultM8Zo6H:\n    type: alicloud:cen:TransitRouter\n    properties:\n      cenId: ${defaultbpR5Uk.id}\n  defaultuUtyCv:\n    type: alicloud:cen:TransitRouterCidr\n    properties:\n      cidr: 192.168.10.0/24\n      transitRouterId: ${defaultM8Zo6H.transitRouterId}\n  defaultMeoCIz:\n    type: alicloud:vpn:CustomerGateway\n    properties:\n      ipAddress: 0.0.0.0\n      customerGatewayName: example-vpn-attachment\n    options:\n      dependsOn:\n        - ${defaultuUtyCv}\n  defaultvrPzdh:\n    type: alicloud:vpn:GatewayVpnAttachment\n    properties:\n      networkType: public\n      localSubnet: 0.0.0.0/0\n      enableTunnelsBgp: 'false'\n      vpnAttachmentName: ${name}\n      tunnelOptionsSpecifications:\n        - customerGatewayId: ${defaultMeoCIz.id}\n          enableDpd: 'true'\n          enableNatTraversal: 'true'\n          tunnelIndex: '1'\n          tunnelIkeConfig:\n            remoteId: 2.2.2.2\n            ikeEncAlg: aes\n            ikeMode: main\n            ikeVersion: ikev1\n            localId: 1.1.1.1\n            ikeAuthAlg: md5\n            ikeLifetime: '86100'\n            ikePfs: group2\n            psk: '12345678'\n          tunnelIpsecConfig:\n            ipsecAuthAlg: md5\n            ipsecEncAlg: aes\n            ipsecLifetime: '86200'\n            ipsecPfs: group5\n        - enableNatTraversal: 'true'\n          tunnelIndex: '2'\n          tunnelIkeConfig:\n            localId: 4.4.4.4\n            remoteId: 5.5.5.5\n            ikeLifetime: '86400'\n            ikePfs: group5\n            ikeMode: main\n            ikeVersion: ikev2\n            psk: '32333442'\n            ikeAuthAlg: md5\n            ikeEncAlg: aes\n          tunnelIpsecConfig:\n            ipsecEncAlg: aes\n            ipsecLifetime: '86400'\n            ipsecPfs: group5\n            ipsecAuthAlg: sha256\n          customerGatewayId: ${defaultMeoCIz.id}\n          enableDpd: 'true'\n      remoteSubnet: 0.0.0.0/0\n  defaultTransitRouterVpnAttachment:\n    type: alicloud:cen:TransitRouterVpnAttachment\n    name: default\n    properties:\n      transitRouterId: ${defaultM8Zo6H.transitRouterId}\n      vpnId: ${defaultvrPzdh.id}\n      autoPublishRouteEnabled: 'false'\n      chargeType: POSTPAY\n      transitRouterAttachmentName: example-vpn-attachment\n      vpnOwnerId: ${default.id}\n      cenId: ${defaultM8Zo6H.cenId}\n      transitRouterAttachmentDescription: example-vpn-attachment\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  defaultGetTransitRouterService:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Enterprise Network (CEN) Transit Router Vpn Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/transitRouterVpnAttachment:TransitRouterVpnAttachment example \u003cid\u003e\n```\n\n","properties":{"autoPublishRouteEnabled":{"type":"boolean","description":"Specifies whether to allow the transit router to automatically advertise routes to the IPsec-VPN attachment. Valid values:\n"},"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n"},"chargeType":{"type":"string","description":"The billing method.\nSet the value to `POSTPAY`, which is the default value and specifies the pay-as-you-go billing method.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"regionId":{"type":"string","description":"The ID of the region where the transit router is deployed.\n"},"status":{"type":"string","description":"Status\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterAttachmentDescription":{"type":"string","description":"The new description of the VPN attachment.\nThe description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.\n"},"transitRouterAttachmentName":{"type":"string","description":"The name of the VPN attachment.\nThe name must be 2 to 128 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). It must start with a letter.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"},"vpnId":{"type":"string","description":"The ID of the IPsec-VPN attachment.\n"},"vpnOwnerId":{"type":"string","description":"The ID of the Alibaba Cloud account to which the IPsec-VPN connection belongs.\n\n- If you do not set this parameter, the ID of the current Alibaba Cloud account is used.\n- You must set VpnOwnerId if you want to connect the transit router to an IPsec-VPN connection that belongs to another Alibaba Cloud account.\n"},"zones":{"type":"array","items":{"$ref":"#/types/alicloud:cen/TransitRouterVpnAttachmentZone:TransitRouterVpnAttachmentZone"},"description":"The Zone ID in the current region.\nSystem will create resources under the Zone that you specify.\nLeft blank if associated IPSec connection is in dual-tunnel mode. See \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e below.\n"}},"required":["cenId","chargeType","createTime","regionId","status","vpnId","vpnOwnerId"],"inputProperties":{"autoPublishRouteEnabled":{"type":"boolean","description":"Specifies whether to allow the transit router to automatically advertise routes to the IPsec-VPN attachment. Valid values:\n"},"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n","willReplaceOnChanges":true},"chargeType":{"type":"string","description":"The billing method.\nSet the value to `POSTPAY`, which is the default value and specifies the pay-as-you-go billing method.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterAttachmentDescription":{"type":"string","description":"The new description of the VPN attachment.\nThe description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.\n"},"transitRouterAttachmentName":{"type":"string","description":"The name of the VPN attachment.\nThe name must be 2 to 128 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). It must start with a letter.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n","willReplaceOnChanges":true},"vpnId":{"type":"string","description":"The ID of the IPsec-VPN attachment.\n","willReplaceOnChanges":true},"vpnOwnerId":{"type":"string","description":"The ID of the Alibaba Cloud account to which the IPsec-VPN connection belongs.\n\n- If you do not set this parameter, the ID of the current Alibaba Cloud account is used.\n- You must set VpnOwnerId if you want to connect the transit router to an IPsec-VPN connection that belongs to another Alibaba Cloud account.\n","willReplaceOnChanges":true},"zones":{"type":"array","items":{"$ref":"#/types/alicloud:cen/TransitRouterVpnAttachmentZone:TransitRouterVpnAttachmentZone"},"description":"The Zone ID in the current region.\nSystem will create resources under the Zone that you specify.\nLeft blank if associated IPSec connection is in dual-tunnel mode. See \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"requiredInputs":["vpnId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransitRouterVpnAttachment resources.\n","properties":{"autoPublishRouteEnabled":{"type":"boolean","description":"Specifies whether to allow the transit router to automatically advertise routes to the IPsec-VPN attachment. Valid values:\n"},"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n","willReplaceOnChanges":true},"chargeType":{"type":"string","description":"The billing method.\nSet the value to `POSTPAY`, which is the default value and specifies the pay-as-you-go billing method.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource\n"},"regionId":{"type":"string","description":"The ID of the region where the transit router is deployed.\n"},"status":{"type":"string","description":"Status\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transitRouterAttachmentDescription":{"type":"string","description":"The new description of the VPN attachment.\nThe description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.\n"},"transitRouterAttachmentName":{"type":"string","description":"The name of the VPN attachment.\nThe name must be 2 to 128 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). It must start with a letter.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n","willReplaceOnChanges":true},"vpnId":{"type":"string","description":"The ID of the IPsec-VPN attachment.\n","willReplaceOnChanges":true},"vpnOwnerId":{"type":"string","description":"The ID of the Alibaba Cloud account to which the IPsec-VPN connection belongs.\n\n- If you do not set this parameter, the ID of the current Alibaba Cloud account is used.\n- You must set VpnOwnerId if you want to connect the transit router to an IPsec-VPN connection that belongs to another Alibaba Cloud account.\n","willReplaceOnChanges":true},"zones":{"type":"array","items":{"$ref":"#/types/alicloud:cen/TransitRouterVpnAttachmentZone:TransitRouterVpnAttachmentZone"},"description":"The Zone ID in the current region.\nSystem will create resources under the Zone that you specify.\nLeft blank if associated IPSec connection is in dual-tunnel mode. See \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cen/vbrHealthCheck:VbrHealthCheck":{"description":"This topic describes how to configure the health check feature for a Cloud Enterprise Network (CEN) instance. \nAfter you attach a Virtual Border Router (VBR) to the CEN instance and configure the health check feature, you can monitor the network conditions of the on-premises data center connected to the VBR.\n\nFor information about CEN VBR HealthCheck and how to use it, see [Manage CEN VBR HealthCheck](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-enablecenvbrhealthcheck).\n\n\u003e **NOTE:** Available since v1.88.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultGetPhysicalConnections = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"^preserved-NODELETING\",\n});\nconst vlanId = new random.index.Integer(\"vlan_id\", {\n    max: 2999,\n    min: 1,\n});\nconst example = new alicloud.expressconnect.VirtualBorderRouter(\"example\", {\n    localGatewayIp: \"10.0.0.1\",\n    peerGatewayIp: \"10.0.0.2\",\n    peeringSubnetMask: \"255.255.255.252\",\n    physicalConnectionId: defaultGetPhysicalConnections.then(defaultGetPhysicalConnections =\u003e defaultGetPhysicalConnections.connections?.[0]?.id),\n    virtualBorderRouterName: name,\n    vlanId: vlanId.id,\n    minRxInterval: 1000,\n    minTxInterval: 1000,\n    detectMultiplier: 10,\n});\nconst exampleInstance = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: name,\n    protectionLevel: \"REDUCED\",\n});\nconst exampleInstanceAttachment = new alicloud.cen.InstanceAttachment(\"example\", {\n    instanceId: exampleInstance.id,\n    childInstanceId: example.id,\n    childInstanceType: \"VBR\",\n    childInstanceRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n});\nconst exampleVbrHealthCheck = new alicloud.cen.VbrHealthCheck(\"example\", {\n    cenId: exampleInstance.id,\n    healthCheckSourceIp: \"192.168.1.2\",\n    healthCheckTargetIp: \"10.0.0.2\",\n    vbrInstanceId: example.id,\n    vbrInstanceRegionId: exampleInstanceAttachment.childInstanceRegionId,\n    healthCheckInterval: 2,\n    healthyThreshold: 8,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_get_physical_connections = alicloud.expressconnect.get_physical_connections(name_regex=\"^preserved-NODELETING\")\nvlan_id = random.index.Integer(\"vlan_id\",\n    max=2999,\n    min=1)\nexample = alicloud.expressconnect.VirtualBorderRouter(\"example\",\n    local_gateway_ip=\"10.0.0.1\",\n    peer_gateway_ip=\"10.0.0.2\",\n    peering_subnet_mask=\"255.255.255.252\",\n    physical_connection_id=default_get_physical_connections.connections[0].id,\n    virtual_border_router_name=name,\n    vlan_id=vlan_id[\"id\"],\n    min_rx_interval=1000,\n    min_tx_interval=1000,\n    detect_multiplier=10)\nexample_instance = alicloud.cen.Instance(\"example\",\n    cen_instance_name=name,\n    protection_level=\"REDUCED\")\nexample_instance_attachment = alicloud.cen.InstanceAttachment(\"example\",\n    instance_id=example_instance.id,\n    child_instance_id=example.id,\n    child_instance_type=\"VBR\",\n    child_instance_region_id=default.regions[0].id)\nexample_vbr_health_check = alicloud.cen.VbrHealthCheck(\"example\",\n    cen_id=example_instance.id,\n    health_check_source_ip=\"192.168.1.2\",\n    health_check_target_ip=\"10.0.0.2\",\n    vbr_instance_id=example.id,\n    vbr_instance_region_id=example_instance_attachment.child_instance_region_id,\n    health_check_interval=2,\n    healthy_threshold=8)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultGetPhysicalConnections = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"^preserved-NODELETING\",\n    });\n\n    var vlanId = new Random.Index.Integer(\"vlan_id\", new()\n    {\n        Max = 2999,\n        Min = 1,\n    });\n\n    var example = new AliCloud.ExpressConnect.VirtualBorderRouter(\"example\", new()\n    {\n        LocalGatewayIp = \"10.0.0.1\",\n        PeerGatewayIp = \"10.0.0.2\",\n        PeeringSubnetMask = \"255.255.255.252\",\n        PhysicalConnectionId = defaultGetPhysicalConnections.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Connections[0]?.Id),\n        VirtualBorderRouterName = name,\n        VlanId = vlanId.Id,\n        MinRxInterval = 1000,\n        MinTxInterval = 1000,\n        DetectMultiplier = 10,\n    });\n\n    var exampleInstance = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = name,\n        ProtectionLevel = \"REDUCED\",\n    });\n\n    var exampleInstanceAttachment = new AliCloud.Cen.InstanceAttachment(\"example\", new()\n    {\n        InstanceId = exampleInstance.Id,\n        ChildInstanceId = example.Id,\n        ChildInstanceType = \"VBR\",\n        ChildInstanceRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n    });\n\n    var exampleVbrHealthCheck = new AliCloud.Cen.VbrHealthCheck(\"example\", new()\n    {\n        CenId = exampleInstance.Id,\n        HealthCheckSourceIp = \"192.168.1.2\",\n        HealthCheckTargetIp = \"10.0.0.2\",\n        VbrInstanceId = example.Id,\n        VbrInstanceRegionId = exampleInstanceAttachment.ChildInstanceRegionId,\n        HealthCheckInterval = 2,\n        HealthyThreshold = 8,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetPhysicalConnections, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvlanId, err := random.NewInteger(ctx, \"vlan_id\", \u0026random.IntegerArgs{\n\t\t\tMax: 2999,\n\t\t\tMin: 1,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := expressconnect.NewVirtualBorderRouter(ctx, \"example\", \u0026expressconnect.VirtualBorderRouterArgs{\n\t\t\tLocalGatewayIp:          pulumi.String(\"10.0.0.1\"),\n\t\t\tPeerGatewayIp:           pulumi.String(\"10.0.0.2\"),\n\t\t\tPeeringSubnetMask:       pulumi.String(\"255.255.255.252\"),\n\t\t\tPhysicalConnectionId:    pulumi.String(defaultGetPhysicalConnections.Connections[0].Id),\n\t\t\tVirtualBorderRouterName: pulumi.String(name),\n\t\t\tVlanId:                  vlanId.Id,\n\t\t\tMinRxInterval:           pulumi.Int(1000),\n\t\t\tMinTxInterval:           pulumi.Int(1000),\n\t\t\tDetectMultiplier:        pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tProtectionLevel: pulumi.String(\"REDUCED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstanceAttachment, err := cen.NewInstanceAttachment(ctx, \"example\", \u0026cen.InstanceAttachmentArgs{\n\t\t\tInstanceId:            exampleInstance.ID(),\n\t\t\tChildInstanceId:       example.ID(),\n\t\t\tChildInstanceType:     pulumi.String(\"VBR\"),\n\t\t\tChildInstanceRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewVbrHealthCheck(ctx, \"example\", \u0026cen.VbrHealthCheckArgs{\n\t\t\tCenId:               exampleInstance.ID(),\n\t\t\tHealthCheckSourceIp: pulumi.String(\"192.168.1.2\"),\n\t\t\tHealthCheckTargetIp: pulumi.String(\"10.0.0.2\"),\n\t\t\tVbrInstanceId:       example.ID(),\n\t\t\tVbrInstanceRegionId: exampleInstanceAttachment.ChildInstanceRegionId,\n\t\t\tHealthCheckInterval: pulumi.Int(2),\n\t\t\tHealthyThreshold:    pulumi.Int(8),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouter;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouterArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.InstanceAttachment;\nimport com.pulumi.alicloud.cen.InstanceAttachmentArgs;\nimport com.pulumi.alicloud.cen.VbrHealthCheck;\nimport com.pulumi.alicloud.cen.VbrHealthCheckArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var defaultGetPhysicalConnections = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"^preserved-NODELETING\")\n            .build());\n\n        var vlanId = new Integer(\"vlanId\", IntegerArgs.builder()\n            .max(2999)\n            .min(1)\n            .build());\n\n        var example = new VirtualBorderRouter(\"example\", VirtualBorderRouterArgs.builder()\n            .localGatewayIp(\"10.0.0.1\")\n            .peerGatewayIp(\"10.0.0.2\")\n            .peeringSubnetMask(\"255.255.255.252\")\n            .physicalConnectionId(defaultGetPhysicalConnections.connections()[0].id())\n            .virtualBorderRouterName(name)\n            .vlanId(vlanId.id())\n            .minRxInterval(1000)\n            .minTxInterval(1000)\n            .detectMultiplier(10)\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .protectionLevel(\"REDUCED\")\n            .build());\n\n        var exampleInstanceAttachment = new InstanceAttachment(\"exampleInstanceAttachment\", InstanceAttachmentArgs.builder()\n            .instanceId(exampleInstance.id())\n            .childInstanceId(example.id())\n            .childInstanceType(\"VBR\")\n            .childInstanceRegionId(default_.regions()[0].id())\n            .build());\n\n        var exampleVbrHealthCheck = new VbrHealthCheck(\"exampleVbrHealthCheck\", VbrHealthCheckArgs.builder()\n            .cenId(exampleInstance.id())\n            .healthCheckSourceIp(\"192.168.1.2\")\n            .healthCheckTargetIp(\"10.0.0.2\")\n            .vbrInstanceId(example.id())\n            .vbrInstanceRegionId(exampleInstanceAttachment.childInstanceRegionId())\n            .healthCheckInterval(2)\n            .healthyThreshold(8)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  vlanId:\n    type: random:Integer\n    name: vlan_id\n    properties:\n      max: 2999\n      min: 1\n  example:\n    type: alicloud:expressconnect:VirtualBorderRouter\n    properties:\n      localGatewayIp: 10.0.0.1\n      peerGatewayIp: 10.0.0.2\n      peeringSubnetMask: 255.255.255.252\n      physicalConnectionId: ${defaultGetPhysicalConnections.connections[0].id}\n      virtualBorderRouterName: ${name}\n      vlanId: ${vlanId.id}\n      minRxInterval: 1000\n      minTxInterval: 1000\n      detectMultiplier: 10\n  exampleInstance:\n    type: alicloud:cen:Instance\n    name: example\n    properties:\n      cenInstanceName: ${name}\n      protectionLevel: REDUCED\n  exampleInstanceAttachment:\n    type: alicloud:cen:InstanceAttachment\n    name: example\n    properties:\n      instanceId: ${exampleInstance.id}\n      childInstanceId: ${example.id}\n      childInstanceType: VBR\n      childInstanceRegionId: ${default.regions[0].id}\n  exampleVbrHealthCheck:\n    type: alicloud:cen:VbrHealthCheck\n    name: example\n    properties:\n      cenId: ${exampleInstance.id}\n      healthCheckSourceIp: 192.168.1.2\n      healthCheckTargetIp: 10.0.0.2\n      vbrInstanceId: ${example.id}\n      vbrInstanceRegionId: ${exampleInstanceAttachment.childInstanceRegionId}\n      healthCheckInterval: 2\n      healthyThreshold: 8\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetPhysicalConnections:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: ^preserved-NODELETING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCEN VBR HealthCheck can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cen/vbrHealthCheck:VbrHealthCheck example vbr-xxxxx:cn-hangzhou\n```\n\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"healthCheckInterval":{"type":"integer","description":"Specifies the interval at which the health check sends continuous detection packets. Default value: 2. Value range: 2 to 3.\n"},"healthCheckSourceIp":{"type":"string","description":"The source IP address of health checks.\n"},"healthCheckTargetIp":{"type":"string","description":"The destination IP address of health checks.\n"},"healthyThreshold":{"type":"integer","description":"Specifies the number of probe messages sent by the health check. Default value: 8. Value range: 3 to 8.\n"},"vbrInstanceId":{"type":"string","description":"The ID of the VBR.\n"},"vbrInstanceOwnerId":{"type":"integer","description":"The ID of the account to which the VBR belongs.\n"},"vbrInstanceRegionId":{"type":"string","description":"The ID of the region to which the VBR belongs.\n\n-\u003e**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.VbrHealthCheck`\" pulumi-lang-dotnet=\"`alicloud.cen.VbrHealthCheck`\" pulumi-lang-go=\"`cen.VbrHealthCheck`\" pulumi-lang-python=\"`cen.VbrHealthCheck`\" pulumi-lang-yaml=\"`alicloud.cen.VbrHealthCheck`\" pulumi-lang-java=\"`alicloud.cen.VbrHealthCheck`\"\u003e`alicloud.cen.VbrHealthCheck`\u003c/span\u003e resource depends on the related \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-dotnet=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-go=\"`cen.InstanceAttachment`\" pulumi-lang-python=\"`cen.InstanceAttachment`\" pulumi-lang-yaml=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-java=\"`alicloud.cen.InstanceAttachment`\"\u003e`alicloud.cen.InstanceAttachment`\u003c/span\u003e resource.\n"}},"required":["cenId","healthCheckSourceIp","healthCheckTargetIp","vbrInstanceId","vbrInstanceRegionId"],"inputProperties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"healthCheckInterval":{"type":"integer","description":"Specifies the interval at which the health check sends continuous detection packets. Default value: 2. Value range: 2 to 3.\n"},"healthCheckSourceIp":{"type":"string","description":"The source IP address of health checks.\n"},"healthCheckTargetIp":{"type":"string","description":"The destination IP address of health checks.\n"},"healthyThreshold":{"type":"integer","description":"Specifies the number of probe messages sent by the health check. Default value: 8. Value range: 3 to 8.\n"},"vbrInstanceId":{"type":"string","description":"The ID of the VBR.\n","willReplaceOnChanges":true},"vbrInstanceOwnerId":{"type":"integer","description":"The ID of the account to which the VBR belongs.\n"},"vbrInstanceRegionId":{"type":"string","description":"The ID of the region to which the VBR belongs.\n\n-\u003e**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.VbrHealthCheck`\" pulumi-lang-dotnet=\"`alicloud.cen.VbrHealthCheck`\" pulumi-lang-go=\"`cen.VbrHealthCheck`\" pulumi-lang-python=\"`cen.VbrHealthCheck`\" pulumi-lang-yaml=\"`alicloud.cen.VbrHealthCheck`\" pulumi-lang-java=\"`alicloud.cen.VbrHealthCheck`\"\u003e`alicloud.cen.VbrHealthCheck`\u003c/span\u003e resource depends on the related \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-dotnet=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-go=\"`cen.InstanceAttachment`\" pulumi-lang-python=\"`cen.InstanceAttachment`\" pulumi-lang-yaml=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-java=\"`alicloud.cen.InstanceAttachment`\"\u003e`alicloud.cen.InstanceAttachment`\u003c/span\u003e resource.\n","willReplaceOnChanges":true}},"requiredInputs":["cenId","healthCheckTargetIp","vbrInstanceId","vbrInstanceRegionId"],"stateInputs":{"description":"Input properties used for looking up and filtering VbrHealthCheck resources.\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"healthCheckInterval":{"type":"integer","description":"Specifies the interval at which the health check sends continuous detection packets. Default value: 2. Value range: 2 to 3.\n"},"healthCheckSourceIp":{"type":"string","description":"The source IP address of health checks.\n"},"healthCheckTargetIp":{"type":"string","description":"The destination IP address of health checks.\n"},"healthyThreshold":{"type":"integer","description":"Specifies the number of probe messages sent by the health check. Default value: 8. Value range: 3 to 8.\n"},"vbrInstanceId":{"type":"string","description":"The ID of the VBR.\n","willReplaceOnChanges":true},"vbrInstanceOwnerId":{"type":"integer","description":"The ID of the account to which the VBR belongs.\n"},"vbrInstanceRegionId":{"type":"string","description":"The ID of the region to which the VBR belongs.\n\n-\u003e**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.VbrHealthCheck`\" pulumi-lang-dotnet=\"`alicloud.cen.VbrHealthCheck`\" pulumi-lang-go=\"`cen.VbrHealthCheck`\" pulumi-lang-python=\"`cen.VbrHealthCheck`\" pulumi-lang-yaml=\"`alicloud.cen.VbrHealthCheck`\" pulumi-lang-java=\"`alicloud.cen.VbrHealthCheck`\"\u003e`alicloud.cen.VbrHealthCheck`\u003c/span\u003e resource depends on the related \u003cspan pulumi-lang-nodejs=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-dotnet=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-go=\"`cen.InstanceAttachment`\" pulumi-lang-python=\"`cen.InstanceAttachment`\" pulumi-lang-yaml=\"`alicloud.cen.InstanceAttachment`\" pulumi-lang-java=\"`alicloud.cen.InstanceAttachment`\"\u003e`alicloud.cen.InstanceAttachment`\u003c/span\u003e resource.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cfg/aggregateCompliancePack:AggregateCompliancePack":{"description":"Provides a Cloud Config Aggregate Compliance Pack resource.\n\nFor information about Cloud Config Aggregate Compliance Pack and how to use it, see [What is Aggregate Compliance Pack](https://www.alibabacloud.com/help/en/cloud-config/latest/api-config-2020-09-07-createaggregatecompliancepack).\n\n\u003e **NOTE:** Available since v1.124.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst _default = alicloud.resourcemanager.getAccounts({\n    status: \"CreateSuccess\",\n});\nconst last = _default.then(_default =\u003e _default.accounts).length.apply(length =\u003e length - 1);\nconst defaultAggregator = new alicloud.cfg.Aggregator(\"default\", {\n    aggregatorAccounts: [{\n        accountId: _default.then(_default =\u003e _default.accounts[last].accountId),\n        accountName: _default.then(_default =\u003e _default.accounts[last].displayName),\n        accountType: \"ResourceDirectory\",\n    }],\n    aggregatorName: name,\n    description: name,\n    aggregatorType: \"CUSTOM\",\n});\nconst defaultAggregateConfigRule = new alicloud.cfg.AggregateConfigRule(\"default\", {\n    aggregateConfigRuleName: \"contains-tag\",\n    aggregatorId: defaultAggregator.id,\n    configRuleTriggerTypes: \"ConfigurationItemChangeNotification\",\n    sourceOwner: \"ALIYUN\",\n    sourceIdentifier: \"contains-tag\",\n    description: name,\n    riskLevel: 1,\n    resourceTypesScopes: [\"ACS::ECS::Instance\"],\n    inputParameters: {\n        key: \"example\",\n        value: \"example\",\n    },\n});\nconst defaultAggregateCompliancePack = new alicloud.cfg.AggregateCompliancePack(\"default\", {\n    aggregateCompliancePackName: name,\n    aggregatorId: defaultAggregator.id,\n    description: name,\n    riskLevel: 1,\n    configRuleIds: [{\n        configRuleId: defaultAggregateConfigRule.configRuleId,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault = alicloud.resourcemanager.get_accounts(status=\"CreateSuccess\")\nlast = len(default.accounts).apply(lambda length: length - 1)\ndefault_aggregator = alicloud.cfg.Aggregator(\"default\",\n    aggregator_accounts=[{\n        \"account_id\": default.accounts[last].account_id,\n        \"account_name\": default.accounts[last].display_name,\n        \"account_type\": \"ResourceDirectory\",\n    }],\n    aggregator_name=name,\n    description=name,\n    aggregator_type=\"CUSTOM\")\ndefault_aggregate_config_rule = alicloud.cfg.AggregateConfigRule(\"default\",\n    aggregate_config_rule_name=\"contains-tag\",\n    aggregator_id=default_aggregator.id,\n    config_rule_trigger_types=\"ConfigurationItemChangeNotification\",\n    source_owner=\"ALIYUN\",\n    source_identifier=\"contains-tag\",\n    description=name,\n    risk_level=1,\n    resource_types_scopes=[\"ACS::ECS::Instance\"],\n    input_parameters={\n        \"key\": \"example\",\n        \"value\": \"example\",\n    })\ndefault_aggregate_compliance_pack = alicloud.cfg.AggregateCompliancePack(\"default\",\n    aggregate_compliance_pack_name=name,\n    aggregator_id=default_aggregator.id,\n    description=name,\n    risk_level=1,\n    config_rule_ids=[{\n        \"config_rule_id\": default_aggregate_config_rule.config_rule_id,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var @default = AliCloud.ResourceManager.GetAccounts.Invoke(new()\n    {\n        Status = \"CreateSuccess\",\n    });\n\n    var last = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Accounts)).Length.Apply(length =\u003e length - 1);\n\n    var defaultAggregator = new AliCloud.Cfg.Aggregator(\"default\", new()\n    {\n        AggregatorAccounts = new[]\n        {\n            new AliCloud.Cfg.Inputs.AggregatorAggregatorAccountArgs\n            {\n                AccountId = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Accounts)[last].AccountId),\n                AccountName = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Accounts)[last].DisplayName),\n                AccountType = \"ResourceDirectory\",\n            },\n        },\n        AggregatorName = name,\n        Description = name,\n        AggregatorType = \"CUSTOM\",\n    });\n\n    var defaultAggregateConfigRule = new AliCloud.Cfg.AggregateConfigRule(\"default\", new()\n    {\n        AggregateConfigRuleName = \"contains-tag\",\n        AggregatorId = defaultAggregator.Id,\n        ConfigRuleTriggerTypes = \"ConfigurationItemChangeNotification\",\n        SourceOwner = \"ALIYUN\",\n        SourceIdentifier = \"contains-tag\",\n        Description = name,\n        RiskLevel = 1,\n        ResourceTypesScopes = new[]\n        {\n            \"ACS::ECS::Instance\",\n        },\n        InputParameters = \n        {\n            { \"key\", \"example\" },\n            { \"value\", \"example\" },\n        },\n    });\n\n    var defaultAggregateCompliancePack = new AliCloud.Cfg.AggregateCompliancePack(\"default\", new()\n    {\n        AggregateCompliancePackName = name,\n        AggregatorId = defaultAggregator.Id,\n        Description = name,\n        RiskLevel = 1,\n        ConfigRuleIds = new[]\n        {\n            new AliCloud.Cfg.Inputs.AggregateCompliancePackConfigRuleIdArgs\n            {\n                ConfigRuleId = defaultAggregateConfigRule.ConfigRuleId,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetAccounts(ctx, \u0026resourcemanager.GetAccountsArgs{\n\t\t\tStatus: pulumi.StringRef(\"CreateSuccess\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlast := len(_default.Accounts).ApplyT(func(length int) (float64, error) {\n\t\t\treturn float64(length.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\treturn __convert - 1, nil\n\t\t\t}).(pulumi.Float64Output)), nil\n\t\t}).(pulumi.Float64Output)\n\t\tdefaultAggregator, err := cfg.NewAggregator(ctx, \"default\", \u0026cfg.AggregatorArgs{\n\t\t\tAggregatorAccounts: cfg.AggregatorAggregatorAccountArray{\n\t\t\t\t\u0026cfg.AggregatorAggregatorAccountArgs{\n\t\t\t\t\tAccountId:   pulumi.String(_default.Accounts[last].AccountId),\n\t\t\t\t\tAccountName: pulumi.String(_default.Accounts[last].DisplayName),\n\t\t\t\t\tAccountType: pulumi.String(\"ResourceDirectory\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAggregatorName: pulumi.String(name),\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tAggregatorType: pulumi.String(\"CUSTOM\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAggregateConfigRule, err := cfg.NewAggregateConfigRule(ctx, \"default\", \u0026cfg.AggregateConfigRuleArgs{\n\t\t\tAggregateConfigRuleName: pulumi.String(\"contains-tag\"),\n\t\t\tAggregatorId:            defaultAggregator.ID(),\n\t\t\tConfigRuleTriggerTypes:  pulumi.String(\"ConfigurationItemChangeNotification\"),\n\t\t\tSourceOwner:             pulumi.String(\"ALIYUN\"),\n\t\t\tSourceIdentifier:        pulumi.String(\"contains-tag\"),\n\t\t\tDescription:             pulumi.String(name),\n\t\t\tRiskLevel:               pulumi.Int(1),\n\t\t\tResourceTypesScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ACS::ECS::Instance\"),\n\t\t\t},\n\t\t\tInputParameters: pulumi.StringMap{\n\t\t\t\t\"key\":   pulumi.String(\"example\"),\n\t\t\t\t\"value\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cfg.NewAggregateCompliancePack(ctx, \"default\", \u0026cfg.AggregateCompliancePackArgs{\n\t\t\tAggregateCompliancePackName: pulumi.String(name),\n\t\t\tAggregatorId:                defaultAggregator.ID(),\n\t\t\tDescription:                 pulumi.String(name),\n\t\t\tRiskLevel:                   pulumi.Int(1),\n\t\t\tConfigRuleIds: cfg.AggregateCompliancePackConfigRuleIdArray{\n\t\t\t\t\u0026cfg.AggregateCompliancePackConfigRuleIdArgs{\n\t\t\t\t\tConfigRuleId: defaultAggregateConfigRule.ConfigRuleId,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetAccountsArgs;\nimport com.pulumi.alicloud.cfg.Aggregator;\nimport com.pulumi.alicloud.cfg.AggregatorArgs;\nimport com.pulumi.alicloud.cfg.inputs.AggregatorAggregatorAccountArgs;\nimport com.pulumi.alicloud.cfg.AggregateConfigRule;\nimport com.pulumi.alicloud.cfg.AggregateConfigRuleArgs;\nimport com.pulumi.alicloud.cfg.AggregateCompliancePack;\nimport com.pulumi.alicloud.cfg.AggregateCompliancePackArgs;\nimport com.pulumi.alicloud.cfg.inputs.AggregateCompliancePackConfigRuleIdArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        final var default = ResourcemanagerFunctions.getAccounts(GetAccountsArgs.builder()\n            .status(\"CreateSuccess\")\n            .build());\n\n        final var last = default_.accounts().length().applyValue(_length -\u003e _length - 1);\n\n        var defaultAggregator = new Aggregator(\"defaultAggregator\", AggregatorArgs.builder()\n            .aggregatorAccounts(AggregatorAggregatorAccountArgs.builder()\n                .accountId(default_.accounts()[last].accountId())\n                .accountName(default_.accounts()[last].displayName())\n                .accountType(\"ResourceDirectory\")\n                .build())\n            .aggregatorName(name)\n            .description(name)\n            .aggregatorType(\"CUSTOM\")\n            .build());\n\n        var defaultAggregateConfigRule = new AggregateConfigRule(\"defaultAggregateConfigRule\", AggregateConfigRuleArgs.builder()\n            .aggregateConfigRuleName(\"contains-tag\")\n            .aggregatorId(defaultAggregator.id())\n            .configRuleTriggerTypes(\"ConfigurationItemChangeNotification\")\n            .sourceOwner(\"ALIYUN\")\n            .sourceIdentifier(\"contains-tag\")\n            .description(name)\n            .riskLevel(1)\n            .resourceTypesScopes(\"ACS::ECS::Instance\")\n            .inputParameters(Map.ofEntries(\n                Map.entry(\"key\", \"example\"),\n                Map.entry(\"value\", \"example\")\n            ))\n            .build());\n\n        var defaultAggregateCompliancePack = new AggregateCompliancePack(\"defaultAggregateCompliancePack\", AggregateCompliancePackArgs.builder()\n            .aggregateCompliancePackName(name)\n            .aggregatorId(defaultAggregator.id())\n            .description(name)\n            .riskLevel(1)\n            .configRuleIds(AggregateCompliancePackConfigRuleIdArgs.builder()\n                .configRuleId(defaultAggregateConfigRule.configRuleId())\n                .build())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Config Aggregate Compliance Pack can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cfg/aggregateCompliancePack:AggregateCompliancePack example \u003caggregator_id\u003e:\u003caggregator_compliance_pack_id\u003e\n```\n\n","properties":{"aggregateCompliancePackName":{"type":"string","description":"The name of compliance package name. **NOTE:** From version 1.145.0, \u003cspan pulumi-lang-nodejs=\"`aggregateCompliancePackName`\" pulumi-lang-dotnet=\"`AggregateCompliancePackName`\" pulumi-lang-go=\"`aggregateCompliancePackName`\" pulumi-lang-python=\"`aggregate_compliance_pack_name`\" pulumi-lang-yaml=\"`aggregateCompliancePackName`\" pulumi-lang-java=\"`aggregateCompliancePackName`\"\u003e`aggregate_compliance_pack_name`\u003c/span\u003e can be modified.\n"},"aggregatorCompliancePackId":{"type":"string","description":"The ID of the compliance package.\n"},"aggregatorId":{"type":"string","description":"The ID of aggregator.\n"},"compliancePackTemplateId":{"type":"string","description":"The Template ID of compliance package.\n"},"configRuleIds":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/AggregateCompliancePackConfigRuleId:AggregateCompliancePackConfigRuleId"},"description":"A list of Config Rule IDs. See \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e below.\n"},"configRules":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/AggregateCompliancePackConfigRule:AggregateCompliancePackConfigRule"},"description":"A list of Config Rules. See \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e below. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e has been deprecated from provider version 1.141.0. New field \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e has been deprecated from provider version 1.141.0. New field \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e instead."},"description":{"type":"string","description":"The description of compliance package.\n"},"riskLevel":{"type":"integer","description":"The Risk Level. Valid values:\n"},"status":{"type":"string","description":"The status of the Aggregate Compliance Pack.\n"}},"required":["aggregateCompliancePackName","aggregatorCompliancePackId","aggregatorId","description","riskLevel","status"],"inputProperties":{"aggregateCompliancePackName":{"type":"string","description":"The name of compliance package name. **NOTE:** From version 1.145.0, \u003cspan pulumi-lang-nodejs=\"`aggregateCompliancePackName`\" pulumi-lang-dotnet=\"`AggregateCompliancePackName`\" pulumi-lang-go=\"`aggregateCompliancePackName`\" pulumi-lang-python=\"`aggregate_compliance_pack_name`\" pulumi-lang-yaml=\"`aggregateCompliancePackName`\" pulumi-lang-java=\"`aggregateCompliancePackName`\"\u003e`aggregate_compliance_pack_name`\u003c/span\u003e can be modified.\n"},"aggregatorId":{"type":"string","description":"The ID of aggregator.\n","willReplaceOnChanges":true},"compliancePackTemplateId":{"type":"string","description":"The Template ID of compliance package.\n","willReplaceOnChanges":true},"configRuleIds":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/AggregateCompliancePackConfigRuleId:AggregateCompliancePackConfigRuleId"},"description":"A list of Config Rule IDs. See \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e below.\n"},"configRules":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/AggregateCompliancePackConfigRule:AggregateCompliancePackConfigRule"},"description":"A list of Config Rules. See \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e below. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e has been deprecated from provider version 1.141.0. New field \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e has been deprecated from provider version 1.141.0. New field \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e instead."},"description":{"type":"string","description":"The description of compliance package.\n"},"riskLevel":{"type":"integer","description":"The Risk Level. Valid values:\n"}},"requiredInputs":["aggregateCompliancePackName","aggregatorId","description","riskLevel"],"stateInputs":{"description":"Input properties used for looking up and filtering AggregateCompliancePack resources.\n","properties":{"aggregateCompliancePackName":{"type":"string","description":"The name of compliance package name. **NOTE:** From version 1.145.0, \u003cspan pulumi-lang-nodejs=\"`aggregateCompliancePackName`\" pulumi-lang-dotnet=\"`AggregateCompliancePackName`\" pulumi-lang-go=\"`aggregateCompliancePackName`\" pulumi-lang-python=\"`aggregate_compliance_pack_name`\" pulumi-lang-yaml=\"`aggregateCompliancePackName`\" pulumi-lang-java=\"`aggregateCompliancePackName`\"\u003e`aggregate_compliance_pack_name`\u003c/span\u003e can be modified.\n"},"aggregatorCompliancePackId":{"type":"string","description":"The ID of the compliance package.\n"},"aggregatorId":{"type":"string","description":"The ID of aggregator.\n","willReplaceOnChanges":true},"compliancePackTemplateId":{"type":"string","description":"The Template ID of compliance package.\n","willReplaceOnChanges":true},"configRuleIds":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/AggregateCompliancePackConfigRuleId:AggregateCompliancePackConfigRuleId"},"description":"A list of Config Rule IDs. See \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e below.\n"},"configRules":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/AggregateCompliancePackConfigRule:AggregateCompliancePackConfigRule"},"description":"A list of Config Rules. See \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e below. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e has been deprecated from provider version 1.141.0. New field \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e has been deprecated from provider version 1.141.0. New field \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e instead."},"description":{"type":"string","description":"The description of compliance package.\n"},"riskLevel":{"type":"integer","description":"The Risk Level. Valid values:\n"},"status":{"type":"string","description":"The status of the Aggregate Compliance Pack.\n"}},"type":"object"}},"alicloud:cfg/aggregateConfigRule:AggregateConfigRule":{"description":"Provides a Cloud Config Aggregate Config Rule resource.\n\nFor information about Cloud Config Aggregate Config Rule and how to use it, see [What is Aggregate Config Rule](https://www.alibabacloud.com/help/en/cloud-config/latest/api-config-2020-09-07-createaggregateconfigrule).\n\n\u003e **NOTE:** Available since v1.124.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getAccounts({\n    status: \"CreateSuccess\",\n});\nconst last = _default.then(_default =\u003e _default.accounts).length.apply(length =\u003e length - 1);\nconst defaultAggregator = new alicloud.cfg.Aggregator(\"default\", {\n    aggregatorAccounts: [{\n        accountId: _default.then(_default =\u003e _default.accounts[last].accountId),\n        accountName: _default.then(_default =\u003e _default.accounts[last].displayName),\n        accountType: \"ResourceDirectory\",\n    }],\n    aggregatorName: name,\n    description: name,\n    aggregatorType: \"CUSTOM\",\n});\nconst defaultAggregateConfigRule = new alicloud.cfg.AggregateConfigRule(\"default\", {\n    aggregateConfigRuleName: \"contains-tag\",\n    aggregatorId: defaultAggregator.id,\n    configRuleTriggerTypes: \"ConfigurationItemChangeNotification\",\n    sourceOwner: \"ALIYUN\",\n    sourceIdentifier: \"contains-tag\",\n    riskLevel: 1,\n    resourceTypesScopes: [\"ACS::ECS::Instance\"],\n    inputParameters: {\n        key: \"example\",\n        value: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_accounts(status=\"CreateSuccess\")\nlast = len(default.accounts).apply(lambda length: length - 1)\ndefault_aggregator = alicloud.cfg.Aggregator(\"default\",\n    aggregator_accounts=[{\n        \"account_id\": default.accounts[last].account_id,\n        \"account_name\": default.accounts[last].display_name,\n        \"account_type\": \"ResourceDirectory\",\n    }],\n    aggregator_name=name,\n    description=name,\n    aggregator_type=\"CUSTOM\")\ndefault_aggregate_config_rule = alicloud.cfg.AggregateConfigRule(\"default\",\n    aggregate_config_rule_name=\"contains-tag\",\n    aggregator_id=default_aggregator.id,\n    config_rule_trigger_types=\"ConfigurationItemChangeNotification\",\n    source_owner=\"ALIYUN\",\n    source_identifier=\"contains-tag\",\n    risk_level=1,\n    resource_types_scopes=[\"ACS::ECS::Instance\"],\n    input_parameters={\n        \"key\": \"example\",\n        \"value\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetAccounts.Invoke(new()\n    {\n        Status = \"CreateSuccess\",\n    });\n\n    var last = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Accounts)).Length.Apply(length =\u003e length - 1);\n\n    var defaultAggregator = new AliCloud.Cfg.Aggregator(\"default\", new()\n    {\n        AggregatorAccounts = new[]\n        {\n            new AliCloud.Cfg.Inputs.AggregatorAggregatorAccountArgs\n            {\n                AccountId = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Accounts)[last].AccountId),\n                AccountName = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Accounts)[last].DisplayName),\n                AccountType = \"ResourceDirectory\",\n            },\n        },\n        AggregatorName = name,\n        Description = name,\n        AggregatorType = \"CUSTOM\",\n    });\n\n    var defaultAggregateConfigRule = new AliCloud.Cfg.AggregateConfigRule(\"default\", new()\n    {\n        AggregateConfigRuleName = \"contains-tag\",\n        AggregatorId = defaultAggregator.Id,\n        ConfigRuleTriggerTypes = \"ConfigurationItemChangeNotification\",\n        SourceOwner = \"ALIYUN\",\n        SourceIdentifier = \"contains-tag\",\n        RiskLevel = 1,\n        ResourceTypesScopes = new[]\n        {\n            \"ACS::ECS::Instance\",\n        },\n        InputParameters = \n        {\n            { \"key\", \"example\" },\n            { \"value\", \"example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetAccounts(ctx, \u0026resourcemanager.GetAccountsArgs{\n\t\t\tStatus: pulumi.StringRef(\"CreateSuccess\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlast := len(_default.Accounts).ApplyT(func(length int) (float64, error) {\n\t\t\treturn float64(length.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\treturn __convert - 1, nil\n\t\t\t}).(pulumi.Float64Output)), nil\n\t\t}).(pulumi.Float64Output)\n\t\tdefaultAggregator, err := cfg.NewAggregator(ctx, \"default\", \u0026cfg.AggregatorArgs{\n\t\t\tAggregatorAccounts: cfg.AggregatorAggregatorAccountArray{\n\t\t\t\t\u0026cfg.AggregatorAggregatorAccountArgs{\n\t\t\t\t\tAccountId:   pulumi.String(_default.Accounts[last].AccountId),\n\t\t\t\t\tAccountName: pulumi.String(_default.Accounts[last].DisplayName),\n\t\t\t\t\tAccountType: pulumi.String(\"ResourceDirectory\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAggregatorName: pulumi.String(name),\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tAggregatorType: pulumi.String(\"CUSTOM\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cfg.NewAggregateConfigRule(ctx, \"default\", \u0026cfg.AggregateConfigRuleArgs{\n\t\t\tAggregateConfigRuleName: pulumi.String(\"contains-tag\"),\n\t\t\tAggregatorId:            defaultAggregator.ID(),\n\t\t\tConfigRuleTriggerTypes:  pulumi.String(\"ConfigurationItemChangeNotification\"),\n\t\t\tSourceOwner:             pulumi.String(\"ALIYUN\"),\n\t\t\tSourceIdentifier:        pulumi.String(\"contains-tag\"),\n\t\t\tRiskLevel:               pulumi.Int(1),\n\t\t\tResourceTypesScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ACS::ECS::Instance\"),\n\t\t\t},\n\t\t\tInputParameters: pulumi.StringMap{\n\t\t\t\t\"key\":   pulumi.String(\"example\"),\n\t\t\t\t\"value\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetAccountsArgs;\nimport com.pulumi.alicloud.cfg.Aggregator;\nimport com.pulumi.alicloud.cfg.AggregatorArgs;\nimport com.pulumi.alicloud.cfg.inputs.AggregatorAggregatorAccountArgs;\nimport com.pulumi.alicloud.cfg.AggregateConfigRule;\nimport com.pulumi.alicloud.cfg.AggregateConfigRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getAccounts(GetAccountsArgs.builder()\n            .status(\"CreateSuccess\")\n            .build());\n\n        final var last = default_.accounts().length().applyValue(_length -\u003e _length - 1);\n\n        var defaultAggregator = new Aggregator(\"defaultAggregator\", AggregatorArgs.builder()\n            .aggregatorAccounts(AggregatorAggregatorAccountArgs.builder()\n                .accountId(default_.accounts()[last].accountId())\n                .accountName(default_.accounts()[last].displayName())\n                .accountType(\"ResourceDirectory\")\n                .build())\n            .aggregatorName(name)\n            .description(name)\n            .aggregatorType(\"CUSTOM\")\n            .build());\n\n        var defaultAggregateConfigRule = new AggregateConfigRule(\"defaultAggregateConfigRule\", AggregateConfigRuleArgs.builder()\n            .aggregateConfigRuleName(\"contains-tag\")\n            .aggregatorId(defaultAggregator.id())\n            .configRuleTriggerTypes(\"ConfigurationItemChangeNotification\")\n            .sourceOwner(\"ALIYUN\")\n            .sourceIdentifier(\"contains-tag\")\n            .riskLevel(1)\n            .resourceTypesScopes(\"ACS::ECS::Instance\")\n            .inputParameters(Map.ofEntries(\n                Map.entry(\"key\", \"example\"),\n                Map.entry(\"value\", \"example\")\n            ))\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Config Aggregate Config Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cfg/aggregateConfigRule:AggregateConfigRule example \"\u003caggregator_id\u003e:\u003cconfig_rule_id\u003e\"\n```\n\n","properties":{"aggregateConfigRuleName":{"type":"string","description":"The name of the rule.\n"},"aggregatorId":{"type":"string","description":"The Aggregator Id.\n"},"configRuleId":{"type":"string","description":"(Available since v1.141.0) The rule ID of Aggregate Config Rule.\n"},"configRuleTriggerTypes":{"type":"string","description":"The trigger type of the rule. Valid values:\n- `ConfigurationItemChangeNotification`: The rule is triggered by configuration changes.\n- `ScheduledNotification`: The rule is periodically triggered.\n\u003e **NOTE:** Separate multiple trigger types with commas (,).\n"},"description":{"type":"string","description":"The description of the rule.\n"},"excludeResourceIdsScope":{"type":"string","description":"The rule monitors excluded resource IDs, multiple of which are separated by commas, only applies to rules created based on managed rules, , custom rule this field is empty.\n"},"inputParameters":{"type":"object","additionalProperties":{"type":"string"},"description":"The settings map of the input parameters for the rule.\n"},"maximumExecutionFrequency":{"type":"string","description":"The frequency of the compliance evaluations. Valid values:  `One_Hour`, `Three_Hours`, `Six_Hours`, `Twelve_Hours`, `TwentyFour_Hours`. System default value is `TwentyFour_Hours` and valid when the \u003cspan pulumi-lang-nodejs=\"`configRuleTriggerTypes`\" pulumi-lang-dotnet=\"`ConfigRuleTriggerTypes`\" pulumi-lang-go=\"`configRuleTriggerTypes`\" pulumi-lang-python=\"`config_rule_trigger_types`\" pulumi-lang-yaml=\"`configRuleTriggerTypes`\" pulumi-lang-java=\"`configRuleTriggerTypes`\"\u003e`config_rule_trigger_types`\u003c/span\u003e is `ScheduledNotification`.\n"},"regionIdsScope":{"type":"string","description":"The rule monitors region IDs, separated by commas, only applies to rules created based on managed rules.\n"},"resourceGroupIdsScope":{"type":"string","description":"The rule monitors resource group IDs, separated by commas, only applies to rules created based on managed rules.\n"},"resourceTypesScopes":{"type":"array","items":{"type":"string"},"description":"Resource types to be evaluated. [Alibaba Cloud services that support Cloud Config.](https://www.alibabacloud.com/help/en/doc-detail/127411.htm)\n"},"riskLevel":{"type":"integer","description":"The risk level of the resources that are not compliant with the rule. Valid values:  \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: critical \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: warning \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: info.\n"},"sourceIdentifier":{"type":"string","description":"The identifier of the rule. For a managed rule, the value is the identifier of the managed rule. For a custom rule, the value is the ARN of the custom rule. Using managed rules, refer to [List of Managed rules.](https://www.alibabacloud.com/help/en/doc-detail/127404.htm)\n"},"sourceOwner":{"type":"string","description":"Specifies whether you or Alibaba Cloud owns and manages the rule. Valid values: `CUSTOM_FC`: The rule is a custom rule and you own the rule. `ALIYUN`: The rule is a managed rule and Alibaba Cloud owns the rule.\n"},"status":{"type":"string","description":"The rule status. The valid values: `ACTIVE`, `INACTIVE`.\n"},"tagKeyScope":{"type":"string","description":"The rule monitors the tag key, only applies to rules created based on managed rules.\n"},"tagValueScope":{"type":"string","description":"The rule monitors the tag value, use with the \u003cspan pulumi-lang-nodejs=\"`tagKeyScope`\" pulumi-lang-dotnet=\"`TagKeyScope`\" pulumi-lang-go=\"`tagKeyScope`\" pulumi-lang-python=\"`tag_key_scope`\" pulumi-lang-yaml=\"`tagKeyScope`\" pulumi-lang-java=\"`tagKeyScope`\"\u003e`tag_key_scope`\u003c/span\u003e options. only applies to rules created based on managed rules.\n"}},"required":["aggregateConfigRuleName","aggregatorId","configRuleId","configRuleTriggerTypes","maximumExecutionFrequency","resourceTypesScopes","riskLevel","sourceIdentifier","sourceOwner","status"],"inputProperties":{"aggregateConfigRuleName":{"type":"string","description":"The name of the rule.\n","willReplaceOnChanges":true},"aggregatorId":{"type":"string","description":"The Aggregator Id.\n","willReplaceOnChanges":true},"configRuleTriggerTypes":{"type":"string","description":"The trigger type of the rule. Valid values:\n- `ConfigurationItemChangeNotification`: The rule is triggered by configuration changes.\n- `ScheduledNotification`: The rule is periodically triggered.\n\u003e **NOTE:** Separate multiple trigger types with commas (,).\n"},"description":{"type":"string","description":"The description of the rule.\n"},"excludeResourceIdsScope":{"type":"string","description":"The rule monitors excluded resource IDs, multiple of which are separated by commas, only applies to rules created based on managed rules, , custom rule this field is empty.\n"},"inputParameters":{"type":"object","additionalProperties":{"type":"string"},"description":"The settings map of the input parameters for the rule.\n"},"maximumExecutionFrequency":{"type":"string","description":"The frequency of the compliance evaluations. Valid values:  `One_Hour`, `Three_Hours`, `Six_Hours`, `Twelve_Hours`, `TwentyFour_Hours`. System default value is `TwentyFour_Hours` and valid when the \u003cspan pulumi-lang-nodejs=\"`configRuleTriggerTypes`\" pulumi-lang-dotnet=\"`ConfigRuleTriggerTypes`\" pulumi-lang-go=\"`configRuleTriggerTypes`\" pulumi-lang-python=\"`config_rule_trigger_types`\" pulumi-lang-yaml=\"`configRuleTriggerTypes`\" pulumi-lang-java=\"`configRuleTriggerTypes`\"\u003e`config_rule_trigger_types`\u003c/span\u003e is `ScheduledNotification`.\n"},"regionIdsScope":{"type":"string","description":"The rule monitors region IDs, separated by commas, only applies to rules created based on managed rules.\n"},"resourceGroupIdsScope":{"type":"string","description":"The rule monitors resource group IDs, separated by commas, only applies to rules created based on managed rules.\n"},"resourceTypesScopes":{"type":"array","items":{"type":"string"},"description":"Resource types to be evaluated. [Alibaba Cloud services that support Cloud Config.](https://www.alibabacloud.com/help/en/doc-detail/127411.htm)\n"},"riskLevel":{"type":"integer","description":"The risk level of the resources that are not compliant with the rule. Valid values:  \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: critical \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: warning \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: info.\n"},"sourceIdentifier":{"type":"string","description":"The identifier of the rule. For a managed rule, the value is the identifier of the managed rule. For a custom rule, the value is the ARN of the custom rule. Using managed rules, refer to [List of Managed rules.](https://www.alibabacloud.com/help/en/doc-detail/127404.htm)\n","willReplaceOnChanges":true},"sourceOwner":{"type":"string","description":"Specifies whether you or Alibaba Cloud owns and manages the rule. Valid values: `CUSTOM_FC`: The rule is a custom rule and you own the rule. `ALIYUN`: The rule is a managed rule and Alibaba Cloud owns the rule.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The rule status. The valid values: `ACTIVE`, `INACTIVE`.\n"},"tagKeyScope":{"type":"string","description":"The rule monitors the tag key, only applies to rules created based on managed rules.\n"},"tagValueScope":{"type":"string","description":"The rule monitors the tag value, use with the \u003cspan pulumi-lang-nodejs=\"`tagKeyScope`\" pulumi-lang-dotnet=\"`TagKeyScope`\" pulumi-lang-go=\"`tagKeyScope`\" pulumi-lang-python=\"`tag_key_scope`\" pulumi-lang-yaml=\"`tagKeyScope`\" pulumi-lang-java=\"`tagKeyScope`\"\u003e`tag_key_scope`\u003c/span\u003e options. only applies to rules created based on managed rules.\n"}},"requiredInputs":["aggregateConfigRuleName","aggregatorId","configRuleTriggerTypes","resourceTypesScopes","riskLevel","sourceIdentifier","sourceOwner"],"stateInputs":{"description":"Input properties used for looking up and filtering AggregateConfigRule resources.\n","properties":{"aggregateConfigRuleName":{"type":"string","description":"The name of the rule.\n","willReplaceOnChanges":true},"aggregatorId":{"type":"string","description":"The Aggregator Id.\n","willReplaceOnChanges":true},"configRuleId":{"type":"string","description":"(Available since v1.141.0) The rule ID of Aggregate Config Rule.\n"},"configRuleTriggerTypes":{"type":"string","description":"The trigger type of the rule. Valid values:\n- `ConfigurationItemChangeNotification`: The rule is triggered by configuration changes.\n- `ScheduledNotification`: The rule is periodically triggered.\n\u003e **NOTE:** Separate multiple trigger types with commas (,).\n"},"description":{"type":"string","description":"The description of the rule.\n"},"excludeResourceIdsScope":{"type":"string","description":"The rule monitors excluded resource IDs, multiple of which are separated by commas, only applies to rules created based on managed rules, , custom rule this field is empty.\n"},"inputParameters":{"type":"object","additionalProperties":{"type":"string"},"description":"The settings map of the input parameters for the rule.\n"},"maximumExecutionFrequency":{"type":"string","description":"The frequency of the compliance evaluations. Valid values:  `One_Hour`, `Three_Hours`, `Six_Hours`, `Twelve_Hours`, `TwentyFour_Hours`. System default value is `TwentyFour_Hours` and valid when the \u003cspan pulumi-lang-nodejs=\"`configRuleTriggerTypes`\" pulumi-lang-dotnet=\"`ConfigRuleTriggerTypes`\" pulumi-lang-go=\"`configRuleTriggerTypes`\" pulumi-lang-python=\"`config_rule_trigger_types`\" pulumi-lang-yaml=\"`configRuleTriggerTypes`\" pulumi-lang-java=\"`configRuleTriggerTypes`\"\u003e`config_rule_trigger_types`\u003c/span\u003e is `ScheduledNotification`.\n"},"regionIdsScope":{"type":"string","description":"The rule monitors region IDs, separated by commas, only applies to rules created based on managed rules.\n"},"resourceGroupIdsScope":{"type":"string","description":"The rule monitors resource group IDs, separated by commas, only applies to rules created based on managed rules.\n"},"resourceTypesScopes":{"type":"array","items":{"type":"string"},"description":"Resource types to be evaluated. [Alibaba Cloud services that support Cloud Config.](https://www.alibabacloud.com/help/en/doc-detail/127411.htm)\n"},"riskLevel":{"type":"integer","description":"The risk level of the resources that are not compliant with the rule. Valid values:  \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: critical \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: warning \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: info.\n"},"sourceIdentifier":{"type":"string","description":"The identifier of the rule. For a managed rule, the value is the identifier of the managed rule. For a custom rule, the value is the ARN of the custom rule. Using managed rules, refer to [List of Managed rules.](https://www.alibabacloud.com/help/en/doc-detail/127404.htm)\n","willReplaceOnChanges":true},"sourceOwner":{"type":"string","description":"Specifies whether you or Alibaba Cloud owns and manages the rule. Valid values: `CUSTOM_FC`: The rule is a custom rule and you own the rule. `ALIYUN`: The rule is a managed rule and Alibaba Cloud owns the rule.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The rule status. The valid values: `ACTIVE`, `INACTIVE`.\n"},"tagKeyScope":{"type":"string","description":"The rule monitors the tag key, only applies to rules created based on managed rules.\n"},"tagValueScope":{"type":"string","description":"The rule monitors the tag value, use with the \u003cspan pulumi-lang-nodejs=\"`tagKeyScope`\" pulumi-lang-dotnet=\"`TagKeyScope`\" pulumi-lang-go=\"`tagKeyScope`\" pulumi-lang-python=\"`tag_key_scope`\" pulumi-lang-yaml=\"`tagKeyScope`\" pulumi-lang-java=\"`tagKeyScope`\"\u003e`tag_key_scope`\u003c/span\u003e options. only applies to rules created based on managed rules.\n"}},"type":"object"}},"alicloud:cfg/aggregateDelivery:AggregateDelivery":{"description":"Provides a Config Aggregate Delivery resource.\n\nDelivery channel of aggregator.\n\nFor information about Config Aggregate Delivery and how to use it, see [What is Aggregate Delivery](https://www.alibabacloud.com/help/en/cloud-config/latest/api-config-2020-09-07-createaggregateconfigdeliverychannel).\n\n\u003e **NOTE:** Available since v1.172.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _this = alicloud.getRegions({\n    current: true,\n});\nconst thisGetAccount = alicloud.getAccount({});\nconst _default = alicloud.resourcemanager.getAccounts({\n    status: \"CreateSuccess\",\n});\nconst last = _default.then(_default =\u003e _default.accounts).length.apply(length =\u003e length - 1);\nconst defaultAggregator = new alicloud.cfg.Aggregator(\"default\", {\n    aggregatorAccounts: [{\n        accountId: _default.then(_default =\u003e _default.accounts[last].accountId),\n        accountName: _default.then(_default =\u003e _default.accounts[last].displayName),\n        accountType: \"ResourceDirectory\",\n    }],\n    aggregatorName: name,\n    description: name,\n    aggregatorType: \"CUSTOM\",\n});\nconst defaultUuid = new random.index.Uuid(\"default\", {});\nconst defaultProject = new alicloud.log.Project(\"default\", {projectName: std.replace({\n    text: defaultUuid.result,\n    search: \"-\",\n    replace: \"\",\n}).then(invoke =\u003e std.substr({\n    input: `tf-example-${invoke.result}`,\n    offset: 0,\n    length: 16,\n})).then(invoke =\u003e invoke.result)});\nconst defaultStore = new alicloud.log.Store(\"default\", {\n    logstoreName: name,\n    projectName: defaultProject.projectName,\n});\nconst defaultAggregateDelivery = new alicloud.cfg.AggregateDelivery(\"default\", {\n    aggregatorId: defaultAggregator.id,\n    configurationItemChangeNotification: true,\n    nonCompliantNotification: true,\n    deliveryChannelName: name,\n    deliveryChannelTargetArn: pulumi.all([_this, thisGetAccount, defaultProject.projectName, defaultStore.logstoreName]).apply(([_this, thisGetAccount, projectName, logstoreName]) =\u003e `acs:log:${_this.ids?.[0]}:${thisGetAccount.id}:project/${projectName}/logstore/${logstoreName}`),\n    deliveryChannelType: \"SLS\",\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\nthis = alicloud.get_regions(current=True)\nthis_get_account = alicloud.get_account()\ndefault = alicloud.resourcemanager.get_accounts(status=\"CreateSuccess\")\nlast = len(default.accounts).apply(lambda length: length - 1)\ndefault_aggregator = alicloud.cfg.Aggregator(\"default\",\n    aggregator_accounts=[{\n        \"account_id\": default.accounts[last].account_id,\n        \"account_name\": default.accounts[last].display_name,\n        \"account_type\": \"ResourceDirectory\",\n    }],\n    aggregator_name=name,\n    description=name,\n    aggregator_type=\"CUSTOM\")\ndefault_uuid = random.index.Uuid(\"default\")\ndefault_project = alicloud.log.Project(\"default\", project_name=std.substr(input=f\"tf-example-{std.replace(text=default_uuid['result'],\n        search='-',\n        replace='').result}\",\n    offset=0,\n    length=16).result)\ndefault_store = alicloud.log.Store(\"default\",\n    logstore_name=name,\n    project_name=default_project.project_name)\ndefault_aggregate_delivery = alicloud.cfg.AggregateDelivery(\"default\",\n    aggregator_id=default_aggregator.id,\n    configuration_item_change_notification=True,\n    non_compliant_notification=True,\n    delivery_channel_name=name,\n    delivery_channel_target_arn=pulumi.Output.all(\n        project_name=default_project.project_name,\n        logstore_name=default_store.logstore_name\n).apply(lambda resolved_outputs: f\"acs:log:{this.ids[0]}:{this_get_account.id}:project/{resolved_outputs['project_name']}/logstore/{resolved_outputs['logstore_name']}\")\n,\n    delivery_channel_type=\"SLS\",\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @this = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var thisGetAccount = AliCloud.GetAccount.Invoke();\n\n    var @default = AliCloud.ResourceManager.GetAccounts.Invoke(new()\n    {\n        Status = \"CreateSuccess\",\n    });\n\n    var last = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Accounts)).Length.Apply(length =\u003e length - 1);\n\n    var defaultAggregator = new AliCloud.Cfg.Aggregator(\"default\", new()\n    {\n        AggregatorAccounts = new[]\n        {\n            new AliCloud.Cfg.Inputs.AggregatorAggregatorAccountArgs\n            {\n                AccountId = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Accounts)[last].AccountId),\n                AccountName = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Accounts)[last].DisplayName),\n                AccountType = \"ResourceDirectory\",\n            },\n        },\n        AggregatorName = name,\n        Description = name,\n        AggregatorType = \"CUSTOM\",\n    });\n\n    var defaultUuid = new Random.Index.Uuid(\"default\");\n\n    var defaultProject = new AliCloud.Log.Project(\"default\", new()\n    {\n        ProjectName = Std.Replace.Invoke(new()\n        {\n            Text = defaultUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultStore = new AliCloud.Log.Store(\"default\", new()\n    {\n        LogstoreName = name,\n        ProjectName = defaultProject.ProjectName,\n    });\n\n    var defaultAggregateDelivery = new AliCloud.Cfg.AggregateDelivery(\"default\", new()\n    {\n        AggregatorId = defaultAggregator.Id,\n        ConfigurationItemChangeNotification = true,\n        NonCompliantNotification = true,\n        DeliveryChannelName = name,\n        DeliveryChannelTargetArn = Output.Tuple(@this, thisGetAccount, defaultProject.ProjectName, defaultStore.LogstoreName).Apply(values =\u003e\n        {\n            var @this = values.Item1;\n            var thisGetAccount = values.Item2;\n            var projectName = values.Item3;\n            var logstoreName = values.Item4;\n            return $\"acs:log:{@this.Apply(getRegionsResult =\u003e getRegionsResult.Ids[0])}:{thisGetAccount.Apply(getAccountResult =\u003e getAccountResult.Id)}:project/{projectName}/logstore/{logstoreName}\";\n        }),\n        DeliveryChannelType = \"SLS\",\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tthis, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisGetAccount, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := resourcemanager.GetAccounts(ctx, \u0026resourcemanager.GetAccountsArgs{\n\t\t\tStatus: pulumi.StringRef(\"CreateSuccess\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlast := len(_default.Accounts).ApplyT(func(length int) (float64, error) {\n\t\t\treturn float64(length.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\treturn __convert - 1, nil\n\t\t\t}).(pulumi.Float64Output)), nil\n\t\t}).(pulumi.Float64Output)\n\t\tdefaultAggregator, err := cfg.NewAggregator(ctx, \"default\", \u0026cfg.AggregatorArgs{\n\t\t\tAggregatorAccounts: cfg.AggregatorAggregatorAccountArray{\n\t\t\t\t\u0026cfg.AggregatorAggregatorAccountArgs{\n\t\t\t\t\tAccountId:   pulumi.String(_default.Accounts[last].AccountId),\n\t\t\t\t\tAccountName: pulumi.String(_default.Accounts[last].DisplayName),\n\t\t\t\t\tAccountType: pulumi.String(\"ResourceDirectory\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAggregatorName: pulumi.String(name),\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tAggregatorType: pulumi.String(\"CUSTOM\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultUuid, err := random.NewUuid(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    defaultUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultProject, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.String(invokeSubstr.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStore, err := log.NewStore(ctx, \"default\", \u0026log.StoreArgs{\n\t\t\tLogstoreName: pulumi.String(name),\n\t\t\tProjectName:  defaultProject.ProjectName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cfg.NewAggregateDelivery(ctx, \"default\", \u0026cfg.AggregateDeliveryArgs{\n\t\t\tAggregatorId:                        defaultAggregator.ID(),\n\t\t\tConfigurationItemChangeNotification: pulumi.Bool(true),\n\t\t\tNonCompliantNotification:            pulumi.Bool(true),\n\t\t\tDeliveryChannelName:                 pulumi.String(name),\n\t\t\tDeliveryChannelTargetArn: pulumi.All(defaultProject.ProjectName, defaultStore.LogstoreName).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tprojectName := _args[0].(string)\n\t\t\t\tlogstoreName := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(\"acs:log:%v:%v:project/%v/logstore/%v\", this.Ids[0], thisGetAccount.Id, projectName, logstoreName), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tDeliveryChannelType: pulumi.String(\"SLS\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetAccountsArgs;\nimport com.pulumi.alicloud.cfg.Aggregator;\nimport com.pulumi.alicloud.cfg.AggregatorArgs;\nimport com.pulumi.alicloud.cfg.inputs.AggregatorAggregatorAccountArgs;\nimport com.pulumi.random.Uuid;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ReplaceArgs;\nimport com.pulumi.std.inputs.SubstrArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.cfg.AggregateDelivery;\nimport com.pulumi.alicloud.cfg.AggregateDeliveryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var this = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var thisGetAccount = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var default = ResourcemanagerFunctions.getAccounts(GetAccountsArgs.builder()\n            .status(\"CreateSuccess\")\n            .build());\n\n        final var last = default_.accounts().length().applyValue(_length -\u003e _length - 1);\n\n        var defaultAggregator = new Aggregator(\"defaultAggregator\", AggregatorArgs.builder()\n            .aggregatorAccounts(AggregatorAggregatorAccountArgs.builder()\n                .accountId(default_.accounts()[last].accountId())\n                .accountName(default_.accounts()[last].displayName())\n                .accountType(\"ResourceDirectory\")\n                .build())\n            .aggregatorName(name)\n            .description(name)\n            .aggregatorType(\"CUSTOM\")\n            .build());\n\n        var defaultUuid = new Uuid(\"defaultUuid\");\n\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .projectName(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(defaultUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .build());\n\n        var defaultStore = new Store(\"defaultStore\", StoreArgs.builder()\n            .logstoreName(name)\n            .projectName(defaultProject.projectName())\n            .build());\n\n        var defaultAggregateDelivery = new AggregateDelivery(\"defaultAggregateDelivery\", AggregateDeliveryArgs.builder()\n            .aggregatorId(defaultAggregator.id())\n            .configurationItemChangeNotification(true)\n            .nonCompliantNotification(true)\n            .deliveryChannelName(name)\n            .deliveryChannelTargetArn(Output.tuple(defaultProject.projectName(), defaultStore.logstoreName()).applyValue(values -\u003e {\n                var projectName = values.t1;\n                var logstoreName = values.t2;\n                return String.format(\"acs:log:%s:%s:project/%s/logstore/%s\", this_.ids()[0],thisGetAccount.id(),projectName,logstoreName);\n            }))\n            .deliveryChannelType(\"SLS\")\n            .description(name)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nConfig Aggregate Delivery can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cfg/aggregateDelivery:AggregateDelivery example \u003caggregator_id\u003e:\u003cdelivery_channel_id\u003e\n```\n\n","properties":{"aggregatorId":{"type":"string","description":"Aggregator ID.\n"},"configurationItemChangeNotification":{"type":"boolean","description":"Indicates whether the specified destination receives resource change logs. If the value of this parameter is true, Cloud Config delivers the resource change logs to OSS, Log Service, or MNS when the configurations of the resources change. Valid values:  \n- true: The specified destination receives resource change logs.\n- false: The specified destination does not receive resource change logs.\n"},"configurationSnapshot":{"type":"boolean","description":"Indicates whether the specified destination receives scheduled resource snapshots. Cloud Config delivers scheduled resource snapshots at 04:00Z and 16:00Z to OSS, MNS, or Log Service every day. The time is displayed in UTC. Valid values:  \n- true: The specified destination receives scheduled resource snapshots.\n- false: The specified destination does not receive scheduled resource snapshots.\n"},"deliveryChannelCondition":{"type":"string","description":"The rule that is attached to the delivery channel.   \n\nThis parameter is available when you deliver data of all types to MNS or deliver snapshots to Log Service.\n\nIf you specify the risk level or resource types for subscription events, this is as follows:\n\nThe lowest risk level of the events to which you want to subscribe is in the following format: {\"filterType\":\"RuleRiskLevel\",\"value\":\"1\",\"multiple\":false}, The value field indicates the risk level of the events to which you want to subscribe. Valid values: 1, 2, and 3. The value 1 indicates the high risk level, the value 2 indicates the medium risk level, and the value 3 indicates the low risk level.\n\nThe setting of the resource types of the events to which you want to subscribe is in the following format: {\"filterType\":\"ResourceType\",\"values\":[\"ACS::ACK::Cluster\",\"ACS::ActionTrail::Trail\",\"ACS::CBWP::CommonBandwidthPackage\"],\"multiple\":true}, The values field indicates the resource types of the events to which you want to subscribe. The value of the field is a JSON array.\n\nExamples:[{\"filterType\":\"ResourceType\",\"values\":[\"ACS::ActionTrail::Trail\",\"ACS::CBWP::CommonBandwidthPackage\",\"ACS::CDN::Domain\",\"ACS::CEN::CenBandwidthPackage\",\"ACS::CEN::CenInstance\",\"ACS::CEN::Flowlog\",\"ACS::DdosCoo::Instance\"],\"multiple\":true}].\n"},"deliveryChannelId":{"type":"string","description":"The ID of the delivery method. This parameter is required when you modify a delivery method.\n"},"deliveryChannelName":{"type":"string","description":"The name of the delivery channel.\n"},"deliveryChannelTargetArn":{"type":"string","description":"The ARN of the delivery destination.  \n- If the value of the DeliveryChannelType parameter is OSS, the value of this parameter is the ARN of the destination OSS bucket.\n- If the value of the DeliveryChannelType parameter is MNS, the value of this parameter is the ARN of the destination MNS topic.\n- If the value of the DeliveryChannelType parameter is SLS, the value of this parameter is the ARN of the destination Log Service Logstore.\n"},"deliveryChannelType":{"type":"string","description":"The type of the delivery channel. Valid values:\n- OSS: Object Storage Service (OSS)\n- MNS: Message Service (MNS)\n- SLS: Log Service\n"},"description":{"type":"string","description":"The description of the delivery method.\n"},"nonCompliantNotification":{"type":"boolean","description":"Indicates whether the specified destination receives resource non-compliance events. If the value of this parameter is true, Cloud Config delivers resource non-compliance events to Log Service or MNS when resources are evaluated as non-compliant. Valid values:  \n- true: The specified destination receives resource non-compliance events.\n- false: The specified destination does not receive resource non-compliance events.\n"},"oversizedDataOssTargetArn":{"type":"string","description":"The ARN of the OSS bucket to which the delivered data is transferred when the size of the data exceeds the specified upper limit of the delivery channel.\n"},"status":{"type":"integer","description":"The status of the delivery method. Valid values:   \n- 0: The delivery method is disabled.\n- 1: The delivery destination is enabled. This is the default value.\n"}},"required":["aggregatorId","deliveryChannelId","deliveryChannelTargetArn","deliveryChannelType","status"],"inputProperties":{"aggregatorId":{"type":"string","description":"Aggregator ID.\n","willReplaceOnChanges":true},"configurationItemChangeNotification":{"type":"boolean","description":"Indicates whether the specified destination receives resource change logs. If the value of this parameter is true, Cloud Config delivers the resource change logs to OSS, Log Service, or MNS when the configurations of the resources change. Valid values:  \n- true: The specified destination receives resource change logs.\n- false: The specified destination does not receive resource change logs.\n"},"configurationSnapshot":{"type":"boolean","description":"Indicates whether the specified destination receives scheduled resource snapshots. Cloud Config delivers scheduled resource snapshots at 04:00Z and 16:00Z to OSS, MNS, or Log Service every day. The time is displayed in UTC. Valid values:  \n- true: The specified destination receives scheduled resource snapshots.\n- false: The specified destination does not receive scheduled resource snapshots.\n"},"deliveryChannelCondition":{"type":"string","description":"The rule that is attached to the delivery channel.   \n\nThis parameter is available when you deliver data of all types to MNS or deliver snapshots to Log Service.\n\nIf you specify the risk level or resource types for subscription events, this is as follows:\n\nThe lowest risk level of the events to which you want to subscribe is in the following format: {\"filterType\":\"RuleRiskLevel\",\"value\":\"1\",\"multiple\":false}, The value field indicates the risk level of the events to which you want to subscribe. Valid values: 1, 2, and 3. The value 1 indicates the high risk level, the value 2 indicates the medium risk level, and the value 3 indicates the low risk level.\n\nThe setting of the resource types of the events to which you want to subscribe is in the following format: {\"filterType\":\"ResourceType\",\"values\":[\"ACS::ACK::Cluster\",\"ACS::ActionTrail::Trail\",\"ACS::CBWP::CommonBandwidthPackage\"],\"multiple\":true}, The values field indicates the resource types of the events to which you want to subscribe. The value of the field is a JSON array.\n\nExamples:[{\"filterType\":\"ResourceType\",\"values\":[\"ACS::ActionTrail::Trail\",\"ACS::CBWP::CommonBandwidthPackage\",\"ACS::CDN::Domain\",\"ACS::CEN::CenBandwidthPackage\",\"ACS::CEN::CenInstance\",\"ACS::CEN::Flowlog\",\"ACS::DdosCoo::Instance\"],\"multiple\":true}].\n"},"deliveryChannelName":{"type":"string","description":"The name of the delivery channel.\n"},"deliveryChannelTargetArn":{"type":"string","description":"The ARN of the delivery destination.  \n- If the value of the DeliveryChannelType parameter is OSS, the value of this parameter is the ARN of the destination OSS bucket.\n- If the value of the DeliveryChannelType parameter is MNS, the value of this parameter is the ARN of the destination MNS topic.\n- If the value of the DeliveryChannelType parameter is SLS, the value of this parameter is the ARN of the destination Log Service Logstore.\n"},"deliveryChannelType":{"type":"string","description":"The type of the delivery channel. Valid values:\n- OSS: Object Storage Service (OSS)\n- MNS: Message Service (MNS)\n- SLS: Log Service\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the delivery method.\n"},"nonCompliantNotification":{"type":"boolean","description":"Indicates whether the specified destination receives resource non-compliance events. If the value of this parameter is true, Cloud Config delivers resource non-compliance events to Log Service or MNS when resources are evaluated as non-compliant. Valid values:  \n- true: The specified destination receives resource non-compliance events.\n- false: The specified destination does not receive resource non-compliance events.\n"},"oversizedDataOssTargetArn":{"type":"string","description":"The ARN of the OSS bucket to which the delivered data is transferred when the size of the data exceeds the specified upper limit of the delivery channel.\n"},"status":{"type":"integer","description":"The status of the delivery method. Valid values:   \n- 0: The delivery method is disabled.\n- 1: The delivery destination is enabled. This is the default value.\n"}},"requiredInputs":["aggregatorId","deliveryChannelTargetArn","deliveryChannelType"],"stateInputs":{"description":"Input properties used for looking up and filtering AggregateDelivery resources.\n","properties":{"aggregatorId":{"type":"string","description":"Aggregator ID.\n","willReplaceOnChanges":true},"configurationItemChangeNotification":{"type":"boolean","description":"Indicates whether the specified destination receives resource change logs. If the value of this parameter is true, Cloud Config delivers the resource change logs to OSS, Log Service, or MNS when the configurations of the resources change. Valid values:  \n- true: The specified destination receives resource change logs.\n- false: The specified destination does not receive resource change logs.\n"},"configurationSnapshot":{"type":"boolean","description":"Indicates whether the specified destination receives scheduled resource snapshots. Cloud Config delivers scheduled resource snapshots at 04:00Z and 16:00Z to OSS, MNS, or Log Service every day. The time is displayed in UTC. Valid values:  \n- true: The specified destination receives scheduled resource snapshots.\n- false: The specified destination does not receive scheduled resource snapshots.\n"},"deliveryChannelCondition":{"type":"string","description":"The rule that is attached to the delivery channel.   \n\nThis parameter is available when you deliver data of all types to MNS or deliver snapshots to Log Service.\n\nIf you specify the risk level or resource types for subscription events, this is as follows:\n\nThe lowest risk level of the events to which you want to subscribe is in the following format: {\"filterType\":\"RuleRiskLevel\",\"value\":\"1\",\"multiple\":false}, The value field indicates the risk level of the events to which you want to subscribe. Valid values: 1, 2, and 3. The value 1 indicates the high risk level, the value 2 indicates the medium risk level, and the value 3 indicates the low risk level.\n\nThe setting of the resource types of the events to which you want to subscribe is in the following format: {\"filterType\":\"ResourceType\",\"values\":[\"ACS::ACK::Cluster\",\"ACS::ActionTrail::Trail\",\"ACS::CBWP::CommonBandwidthPackage\"],\"multiple\":true}, The values field indicates the resource types of the events to which you want to subscribe. The value of the field is a JSON array.\n\nExamples:[{\"filterType\":\"ResourceType\",\"values\":[\"ACS::ActionTrail::Trail\",\"ACS::CBWP::CommonBandwidthPackage\",\"ACS::CDN::Domain\",\"ACS::CEN::CenBandwidthPackage\",\"ACS::CEN::CenInstance\",\"ACS::CEN::Flowlog\",\"ACS::DdosCoo::Instance\"],\"multiple\":true}].\n"},"deliveryChannelId":{"type":"string","description":"The ID of the delivery method. This parameter is required when you modify a delivery method.\n"},"deliveryChannelName":{"type":"string","description":"The name of the delivery channel.\n"},"deliveryChannelTargetArn":{"type":"string","description":"The ARN of the delivery destination.  \n- If the value of the DeliveryChannelType parameter is OSS, the value of this parameter is the ARN of the destination OSS bucket.\n- If the value of the DeliveryChannelType parameter is MNS, the value of this parameter is the ARN of the destination MNS topic.\n- If the value of the DeliveryChannelType parameter is SLS, the value of this parameter is the ARN of the destination Log Service Logstore.\n"},"deliveryChannelType":{"type":"string","description":"The type of the delivery channel. Valid values:\n- OSS: Object Storage Service (OSS)\n- MNS: Message Service (MNS)\n- SLS: Log Service\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the delivery method.\n"},"nonCompliantNotification":{"type":"boolean","description":"Indicates whether the specified destination receives resource non-compliance events. If the value of this parameter is true, Cloud Config delivers resource non-compliance events to Log Service or MNS when resources are evaluated as non-compliant. Valid values:  \n- true: The specified destination receives resource non-compliance events.\n- false: The specified destination does not receive resource non-compliance events.\n"},"oversizedDataOssTargetArn":{"type":"string","description":"The ARN of the OSS bucket to which the delivered data is transferred when the size of the data exceeds the specified upper limit of the delivery channel.\n"},"status":{"type":"integer","description":"The status of the delivery method. Valid values:   \n- 0: The delivery method is disabled.\n- 1: The delivery destination is enabled. This is the default value.\n"}},"type":"object"}},"alicloud:cfg/aggregateRemediation:AggregateRemediation":{"description":"Provides a Cloud Config (Config) Aggregate Remediation resource.\n\nRule remediation in multi-account scenarios.\n\nFor information about Cloud Config (Config) Aggregate Remediation and how to use it, see [What is Aggregate Remediation](https://next.api.alibabacloud.com/document/Config/2020-09-07/CreateAggregateRemediation).\n\n\u003e **NOTE:** Available since v1.267.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst create_agg = new alicloud.cfg.Aggregator(\"create-agg\", {\n    aggregatorName: \"rd\",\n    description: \"rd\",\n    aggregatorType: \"RD\",\n});\nconst create_rule = new alicloud.cfg.AggregateConfigRule(\"create-rule\", {\n    sourceOwner: \"ALIYUN\",\n    sourceIdentifier: \"required-tags\",\n    aggregateConfigRuleName: \"agg-rule-name\",\n    configRuleTriggerTypes: \"ConfigurationItemChangeNotification\",\n    riskLevel: 1,\n    resourceTypesScopes: [\"ACS::OSS::Bucket\"],\n    aggregatorId: create_agg.id,\n    inputParameters: {\n        tag1Key: \"aaa\",\n        tag1Value: \"bbb\",\n    },\n});\nconst _default = new alicloud.cfg.AggregateRemediation(\"default\", {\n    configRuleId: create_rule.configRuleId,\n    remediationTemplateId: \"ACS-TAG-TagResources\",\n    remediationSourceType: \"ALIYUN\",\n    invokeType: \"MANUAL_EXECUTION\",\n    remediationType: \"OOS\",\n    aggregatorId: create_agg.id,\n    remediationOriginParams: JSON.stringify({\n        properties: [\n            {\n                name: \"regionId\",\n                type: \"String\",\n                value: \"{regionId}\",\n                allowedValues: [],\n                description: \"region ID\",\n            },\n            {\n                name: \"tags\",\n                type: \"Json\",\n                value: \"{\\\"aaa\\\":\\\"bbb\\\"}\",\n                allowedValues: [],\n                description: \"resource tags (for example,{\\\"k1\\\":\\\"v1\\\",\\\"k2\\\":\\\"v2\\\"}).\",\n            },\n            {\n                name: \"resourceType\",\n                type: \"String\",\n                value: \"{resourceType}\",\n                allowedValues: [],\n                description: \"resource type\",\n            },\n            {\n                name: \"resourceIds\",\n                type: \"ARRAY\",\n                value: \"[{\\\"resources\\\":[]}]\",\n                allowedValues: [],\n                description: \"Resource ID List\",\n            },\n        ],\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncreate_agg = alicloud.cfg.Aggregator(\"create-agg\",\n    aggregator_name=\"rd\",\n    description=\"rd\",\n    aggregator_type=\"RD\")\ncreate_rule = alicloud.cfg.AggregateConfigRule(\"create-rule\",\n    source_owner=\"ALIYUN\",\n    source_identifier=\"required-tags\",\n    aggregate_config_rule_name=\"agg-rule-name\",\n    config_rule_trigger_types=\"ConfigurationItemChangeNotification\",\n    risk_level=1,\n    resource_types_scopes=[\"ACS::OSS::Bucket\"],\n    aggregator_id=create_agg.id,\n    input_parameters={\n        \"tag1Key\": \"aaa\",\n        \"tag1Value\": \"bbb\",\n    })\ndefault = alicloud.cfg.AggregateRemediation(\"default\",\n    config_rule_id=create_rule.config_rule_id,\n    remediation_template_id=\"ACS-TAG-TagResources\",\n    remediation_source_type=\"ALIYUN\",\n    invoke_type=\"MANUAL_EXECUTION\",\n    remediation_type=\"OOS\",\n    aggregator_id=create_agg.id,\n    remediation_origin_params=json.dumps({\n        \"properties\": [\n            {\n                \"name\": \"regionId\",\n                \"type\": \"String\",\n                \"value\": \"{regionId}\",\n                \"allowedValues\": [],\n                \"description\": \"region ID\",\n            },\n            {\n                \"name\": \"tags\",\n                \"type\": \"Json\",\n                \"value\": \"{\\\"aaa\\\":\\\"bbb\\\"}\",\n                \"allowedValues\": [],\n                \"description\": \"resource tags (for example,{\\\"k1\\\":\\\"v1\\\",\\\"k2\\\":\\\"v2\\\"}).\",\n            },\n            {\n                \"name\": \"resourceType\",\n                \"type\": \"String\",\n                \"value\": \"{resourceType}\",\n                \"allowedValues\": [],\n                \"description\": \"resource type\",\n            },\n            {\n                \"name\": \"resourceIds\",\n                \"type\": \"ARRAY\",\n                \"value\": \"[{\\\"resources\\\":[]}]\",\n                \"allowedValues\": [],\n                \"description\": \"Resource ID List\",\n            },\n        ],\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var create_agg = new AliCloud.Cfg.Aggregator(\"create-agg\", new()\n    {\n        AggregatorName = \"rd\",\n        Description = \"rd\",\n        AggregatorType = \"RD\",\n    });\n\n    var create_rule = new AliCloud.Cfg.AggregateConfigRule(\"create-rule\", new()\n    {\n        SourceOwner = \"ALIYUN\",\n        SourceIdentifier = \"required-tags\",\n        AggregateConfigRuleName = \"agg-rule-name\",\n        ConfigRuleTriggerTypes = \"ConfigurationItemChangeNotification\",\n        RiskLevel = 1,\n        ResourceTypesScopes = new[]\n        {\n            \"ACS::OSS::Bucket\",\n        },\n        AggregatorId = create_agg.Id,\n        InputParameters = \n        {\n            { \"tag1Key\", \"aaa\" },\n            { \"tag1Value\", \"bbb\" },\n        },\n    });\n\n    var @default = new AliCloud.Cfg.AggregateRemediation(\"default\", new()\n    {\n        ConfigRuleId = create_rule.ConfigRuleId,\n        RemediationTemplateId = \"ACS-TAG-TagResources\",\n        RemediationSourceType = \"ALIYUN\",\n        InvokeType = \"MANUAL_EXECUTION\",\n        RemediationType = \"OOS\",\n        AggregatorId = create_agg.Id,\n        RemediationOriginParams = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"properties\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"name\"] = \"regionId\",\n                    [\"type\"] = \"String\",\n                    [\"value\"] = \"{regionId}\",\n                    [\"allowedValues\"] = new[]\n                    {\n                    },\n                    [\"description\"] = \"region ID\",\n                },\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"name\"] = \"tags\",\n                    [\"type\"] = \"Json\",\n                    [\"value\"] = \"{\\\"aaa\\\":\\\"bbb\\\"}\",\n                    [\"allowedValues\"] = new[]\n                    {\n                    },\n                    [\"description\"] = \"resource tags (for example,{\\\"k1\\\":\\\"v1\\\",\\\"k2\\\":\\\"v2\\\"}).\",\n                },\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"name\"] = \"resourceType\",\n                    [\"type\"] = \"String\",\n                    [\"value\"] = \"{resourceType}\",\n                    [\"allowedValues\"] = new[]\n                    {\n                    },\n                    [\"description\"] = \"resource type\",\n                },\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"name\"] = \"resourceIds\",\n                    [\"type\"] = \"ARRAY\",\n                    [\"value\"] = \"[{\\\"resources\\\":[]}]\",\n                    [\"allowedValues\"] = new[]\n                    {\n                    },\n                    [\"description\"] = \"Resource ID List\",\n                },\n            },\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcreate_agg, err := cfg.NewAggregator(ctx, \"create-agg\", \u0026cfg.AggregatorArgs{\n\t\t\tAggregatorName: pulumi.String(\"rd\"),\n\t\t\tDescription:    pulumi.String(\"rd\"),\n\t\t\tAggregatorType: pulumi.String(\"RD\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreate_rule, err := cfg.NewAggregateConfigRule(ctx, \"create-rule\", \u0026cfg.AggregateConfigRuleArgs{\n\t\t\tSourceOwner:             pulumi.String(\"ALIYUN\"),\n\t\t\tSourceIdentifier:        pulumi.String(\"required-tags\"),\n\t\t\tAggregateConfigRuleName: pulumi.String(\"agg-rule-name\"),\n\t\t\tConfigRuleTriggerTypes:  pulumi.String(\"ConfigurationItemChangeNotification\"),\n\t\t\tRiskLevel:               pulumi.Int(1),\n\t\t\tResourceTypesScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ACS::OSS::Bucket\"),\n\t\t\t},\n\t\t\tAggregatorId: create_agg.ID(),\n\t\t\tInputParameters: pulumi.StringMap{\n\t\t\t\t\"tag1Key\":   pulumi.String(\"aaa\"),\n\t\t\t\t\"tag1Value\": pulumi.String(\"bbb\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"properties\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":          \"regionId\",\n\t\t\t\t\t\"type\":          \"String\",\n\t\t\t\t\t\"value\":         \"{regionId}\",\n\t\t\t\t\t\"allowedValues\": []interface{}{},\n\t\t\t\t\t\"description\":   \"region ID\",\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":          \"tags\",\n\t\t\t\t\t\"type\":          \"Json\",\n\t\t\t\t\t\"value\":         \"{\\\"aaa\\\":\\\"bbb\\\"}\",\n\t\t\t\t\t\"allowedValues\": []interface{}{},\n\t\t\t\t\t\"description\":   \"resource tags (for example,{\\\"k1\\\":\\\"v1\\\",\\\"k2\\\":\\\"v2\\\"}).\",\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":          \"resourceType\",\n\t\t\t\t\t\"type\":          \"String\",\n\t\t\t\t\t\"value\":         \"{resourceType}\",\n\t\t\t\t\t\"allowedValues\": []interface{}{},\n\t\t\t\t\t\"description\":   \"resource type\",\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":          \"resourceIds\",\n\t\t\t\t\t\"type\":          \"ARRAY\",\n\t\t\t\t\t\"value\":         \"[{\\\"resources\\\":[]}]\",\n\t\t\t\t\t\"allowedValues\": []interface{}{},\n\t\t\t\t\t\"description\":   \"Resource ID List\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = cfg.NewAggregateRemediation(ctx, \"default\", \u0026cfg.AggregateRemediationArgs{\n\t\t\tConfigRuleId:            create_rule.ConfigRuleId,\n\t\t\tRemediationTemplateId:   pulumi.String(\"ACS-TAG-TagResources\"),\n\t\t\tRemediationSourceType:   pulumi.String(\"ALIYUN\"),\n\t\t\tInvokeType:              pulumi.String(\"MANUAL_EXECUTION\"),\n\t\t\tRemediationType:         pulumi.String(\"OOS\"),\n\t\t\tAggregatorId:            create_agg.ID(),\n\t\t\tRemediationOriginParams: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cfg.Aggregator;\nimport com.pulumi.alicloud.cfg.AggregatorArgs;\nimport com.pulumi.alicloud.cfg.AggregateConfigRule;\nimport com.pulumi.alicloud.cfg.AggregateConfigRuleArgs;\nimport com.pulumi.alicloud.cfg.AggregateRemediation;\nimport com.pulumi.alicloud.cfg.AggregateRemediationArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var create_agg = new Aggregator(\"create-agg\", AggregatorArgs.builder()\n            .aggregatorName(\"rd\")\n            .description(\"rd\")\n            .aggregatorType(\"RD\")\n            .build());\n\n        var create_rule = new AggregateConfigRule(\"create-rule\", AggregateConfigRuleArgs.builder()\n            .sourceOwner(\"ALIYUN\")\n            .sourceIdentifier(\"required-tags\")\n            .aggregateConfigRuleName(\"agg-rule-name\")\n            .configRuleTriggerTypes(\"ConfigurationItemChangeNotification\")\n            .riskLevel(1)\n            .resourceTypesScopes(\"ACS::OSS::Bucket\")\n            .aggregatorId(create_agg.id())\n            .inputParameters(Map.ofEntries(\n                Map.entry(\"tag1Key\", \"aaa\"),\n                Map.entry(\"tag1Value\", \"bbb\")\n            ))\n            .build());\n\n        var default_ = new AggregateRemediation(\"default\", AggregateRemediationArgs.builder()\n            .configRuleId(create_rule.configRuleId())\n            .remediationTemplateId(\"ACS-TAG-TagResources\")\n            .remediationSourceType(\"ALIYUN\")\n            .invokeType(\"MANUAL_EXECUTION\")\n            .remediationType(\"OOS\")\n            .aggregatorId(create_agg.id())\n            .remediationOriginParams(serializeJson(\n                jsonObject(\n                    jsonProperty(\"properties\", jsonArray(\n                        jsonObject(\n                            jsonProperty(\"name\", \"regionId\"),\n                            jsonProperty(\"type\", \"String\"),\n                            jsonProperty(\"value\", \"{regionId}\"),\n                            jsonProperty(\"allowedValues\", jsonArray(\n                            )),\n                            jsonProperty(\"description\", \"region ID\")\n                        ), \n                        jsonObject(\n                            jsonProperty(\"name\", \"tags\"),\n                            jsonProperty(\"type\", \"Json\"),\n                            jsonProperty(\"value\", \"{\\\"aaa\\\":\\\"bbb\\\"}\"),\n                            jsonProperty(\"allowedValues\", jsonArray(\n                            )),\n                            jsonProperty(\"description\", \"resource tags (for example,{\\\"k1\\\":\\\"v1\\\",\\\"k2\\\":\\\"v2\\\"}).\")\n                        ), \n                        jsonObject(\n                            jsonProperty(\"name\", \"resourceType\"),\n                            jsonProperty(\"type\", \"String\"),\n                            jsonProperty(\"value\", \"{resourceType}\"),\n                            jsonProperty(\"allowedValues\", jsonArray(\n                            )),\n                            jsonProperty(\"description\", \"resource type\")\n                        ), \n                        jsonObject(\n                            jsonProperty(\"name\", \"resourceIds\"),\n                            jsonProperty(\"type\", \"ARRAY\"),\n                            jsonProperty(\"value\", \"[{\\\"resources\\\":[]}]\"),\n                            jsonProperty(\"allowedValues\", jsonArray(\n                            )),\n                            jsonProperty(\"description\", \"Resource ID List\")\n                        )\n                    ))\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  create-agg:\n    type: alicloud:cfg:Aggregator\n    properties:\n      aggregatorName: rd\n      description: rd\n      aggregatorType: RD\n  create-rule:\n    type: alicloud:cfg:AggregateConfigRule\n    properties:\n      sourceOwner: ALIYUN\n      sourceIdentifier: required-tags\n      aggregateConfigRuleName: agg-rule-name\n      configRuleTriggerTypes: ConfigurationItemChangeNotification\n      riskLevel: '1'\n      resourceTypesScopes:\n        - ACS::OSS::Bucket\n      aggregatorId: ${[\"create-agg\"].id}\n      inputParameters:\n        tag1Key: aaa\n        tag1Value: bbb\n  default:\n    type: alicloud:cfg:AggregateRemediation\n    properties:\n      configRuleId: ${[\"create-rule\"].configRuleId}\n      remediationTemplateId: ACS-TAG-TagResources\n      remediationSourceType: ALIYUN\n      invokeType: MANUAL_EXECUTION\n      remediationType: OOS\n      aggregatorId: ${[\"create-agg\"].id}\n      remediationOriginParams:\n        fn::toJSON:\n          properties:\n            - name: regionId\n              type: String\n              value: '{regionId}'\n              allowedValues: []\n              description: region ID\n            - name: tags\n              type: Json\n              value: '{\"aaa\":\"bbb\"}'\n              allowedValues: []\n              description: resource tags (for example,{\"k1\":\"v1\",\"k2\":\"v2\"}).\n            - name: resourceType\n              type: String\n              value: '{resourceType}'\n              allowedValues: []\n              description: resource type\n            - name: resourceIds\n              type: ARRAY\n              value: '[{\"resources\":[]}]'\n              allowedValues: []\n              description: Resource ID List\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Config (Config) Aggregate Remediation can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cfg/aggregateRemediation:AggregateRemediation example \u003caggregator_id\u003e:\u003cremediation_id\u003e\n```\n\n","properties":{"aggregatorId":{"type":"string","description":"The account Group ID.\nFor more information about how to obtain the account group ID, see ListAggregators.\n"},"configRuleId":{"type":"string","description":"The rule ID.\nFor more information about how to obtain the rule ID, see [ListAggregateConfigRules].\n"},"invokeType":{"type":"string","description":"Correction of execution mode. Value:\n- NON_EXECUTION: Not executed.\n- AUTO_EXECUTION: Automatically executed.\n- MANUAL_EXECUTION: Execute manually.\n- NOT_CONFIG: Not set.\n"},"remediationId":{"type":"string","description":"Multi-account remediation ID\n"},"remediationOriginParams":{"type":"string","description":"Correct the parameters of the settings.\nFor more information about how to obtain the parameters of remediation settings, see the parameter 'Template definition' in ListRemediationTemplates '.\n"},"remediationSourceType":{"type":"string","description":"The source of the template to perform the correction. Value:\n- ALIYUN (default): Official website template.\n- CUSTOM: CUSTOM template.\n- NONE: NONE.\n"},"remediationTemplateId":{"type":"string","description":"The ID of the correction template.\n"},"remediationType":{"type":"string","description":"Remediation type. Value:\n- OOS: Operation and maintenance orchestration (Template correction).\n- FC: Function Compute (custom correction).\n"}},"required":["aggregatorId","configRuleId","invokeType","remediationId","remediationOriginParams","remediationTemplateId","remediationType"],"inputProperties":{"aggregatorId":{"type":"string","description":"The account Group ID.\nFor more information about how to obtain the account group ID, see ListAggregators.\n","willReplaceOnChanges":true},"configRuleId":{"type":"string","description":"The rule ID.\nFor more information about how to obtain the rule ID, see [ListAggregateConfigRules].\n","willReplaceOnChanges":true},"invokeType":{"type":"string","description":"Correction of execution mode. Value:\n- NON_EXECUTION: Not executed.\n- AUTO_EXECUTION: Automatically executed.\n- MANUAL_EXECUTION: Execute manually.\n- NOT_CONFIG: Not set.\n"},"remediationOriginParams":{"type":"string","description":"Correct the parameters of the settings.\nFor more information about how to obtain the parameters of remediation settings, see the parameter 'Template definition' in ListRemediationTemplates '.\n"},"remediationSourceType":{"type":"string","description":"The source of the template to perform the correction. Value:\n- ALIYUN (default): Official website template.\n- CUSTOM: CUSTOM template.\n- NONE: NONE.\n","willReplaceOnChanges":true},"remediationTemplateId":{"type":"string","description":"The ID of the correction template.\n"},"remediationType":{"type":"string","description":"Remediation type. Value:\n- OOS: Operation and maintenance orchestration (Template correction).\n- FC: Function Compute (custom correction).\n","willReplaceOnChanges":true}},"requiredInputs":["aggregatorId","configRuleId","invokeType","remediationOriginParams","remediationTemplateId","remediationType"],"stateInputs":{"description":"Input properties used for looking up and filtering AggregateRemediation resources.\n","properties":{"aggregatorId":{"type":"string","description":"The account Group ID.\nFor more information about how to obtain the account group ID, see ListAggregators.\n","willReplaceOnChanges":true},"configRuleId":{"type":"string","description":"The rule ID.\nFor more information about how to obtain the rule ID, see [ListAggregateConfigRules].\n","willReplaceOnChanges":true},"invokeType":{"type":"string","description":"Correction of execution mode. Value:\n- NON_EXECUTION: Not executed.\n- AUTO_EXECUTION: Automatically executed.\n- MANUAL_EXECUTION: Execute manually.\n- NOT_CONFIG: Not set.\n"},"remediationId":{"type":"string","description":"Multi-account remediation ID\n"},"remediationOriginParams":{"type":"string","description":"Correct the parameters of the settings.\nFor more information about how to obtain the parameters of remediation settings, see the parameter 'Template definition' in ListRemediationTemplates '.\n"},"remediationSourceType":{"type":"string","description":"The source of the template to perform the correction. Value:\n- ALIYUN (default): Official website template.\n- CUSTOM: CUSTOM template.\n- NONE: NONE.\n","willReplaceOnChanges":true},"remediationTemplateId":{"type":"string","description":"The ID of the correction template.\n"},"remediationType":{"type":"string","description":"Remediation type. Value:\n- OOS: Operation and maintenance orchestration (Template correction).\n- FC: Function Compute (custom correction).\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"alicloud:configaggregate/remediation:Remediation"}]},"alicloud:cfg/aggregator:Aggregator":{"description":"Provides a Cloud Config (Config) Aggregator resource.\n\n\n\nFor information about Cloud Config (Config) Aggregator and how to use it, see [What is Aggregator](https://www.alibabacloud.com/help/en/cloud-config/latest/api-config-2020-09-07-createaggregator).\n\n\u003e **NOTE:** Available since v1.124.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.resourcemanager.getAccounts({\n    status: \"CreateSuccess\",\n});\nconst last = _default.then(_default =\u003e _default.accounts).length.apply(length =\u003e length - 1);\nconst defaultAggregator = new alicloud.cfg.Aggregator(\"default\", {\n    aggregatorAccounts: [{\n        accountId: _default.then(_default =\u003e _default.accounts[last].accountId),\n        accountName: _default.then(_default =\u003e _default.accounts[last].displayName),\n        accountType: \"ResourceDirectory\",\n    }],\n    aggregatorName: name,\n    description: name,\n    aggregatorType: \"CUSTOM\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.resourcemanager.get_accounts(status=\"CreateSuccess\")\nlast = len(default.accounts).apply(lambda length: length - 1)\ndefault_aggregator = alicloud.cfg.Aggregator(\"default\",\n    aggregator_accounts=[{\n        \"account_id\": default.accounts[last].account_id,\n        \"account_name\": default.accounts[last].display_name,\n        \"account_type\": \"ResourceDirectory\",\n    }],\n    aggregator_name=name,\n    description=name,\n    aggregator_type=\"CUSTOM\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.ResourceManager.GetAccounts.Invoke(new()\n    {\n        Status = \"CreateSuccess\",\n    });\n\n    var last = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Accounts)).Length.Apply(length =\u003e length - 1);\n\n    var defaultAggregator = new AliCloud.Cfg.Aggregator(\"default\", new()\n    {\n        AggregatorAccounts = new[]\n        {\n            new AliCloud.Cfg.Inputs.AggregatorAggregatorAccountArgs\n            {\n                AccountId = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Accounts)[last].AccountId),\n                AccountName = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Accounts)[last].DisplayName),\n                AccountType = \"ResourceDirectory\",\n            },\n        },\n        AggregatorName = name,\n        Description = name,\n        AggregatorType = \"CUSTOM\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetAccounts(ctx, \u0026resourcemanager.GetAccountsArgs{\n\t\t\tStatus: pulumi.StringRef(\"CreateSuccess\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlast := len(_default.Accounts).ApplyT(func(length int) (float64, error) {\n\t\t\treturn float64(length.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\treturn __convert - 1, nil\n\t\t\t}).(pulumi.Float64Output)), nil\n\t\t}).(pulumi.Float64Output)\n\t\t_, err = cfg.NewAggregator(ctx, \"default\", \u0026cfg.AggregatorArgs{\n\t\t\tAggregatorAccounts: cfg.AggregatorAggregatorAccountArray{\n\t\t\t\t\u0026cfg.AggregatorAggregatorAccountArgs{\n\t\t\t\t\tAccountId:   pulumi.String(_default.Accounts[last].AccountId),\n\t\t\t\t\tAccountName: pulumi.String(_default.Accounts[last].DisplayName),\n\t\t\t\t\tAccountType: pulumi.String(\"ResourceDirectory\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAggregatorName: pulumi.String(name),\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tAggregatorType: pulumi.String(\"CUSTOM\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetAccountsArgs;\nimport com.pulumi.alicloud.cfg.Aggregator;\nimport com.pulumi.alicloud.cfg.AggregatorArgs;\nimport com.pulumi.alicloud.cfg.inputs.AggregatorAggregatorAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = ResourcemanagerFunctions.getAccounts(GetAccountsArgs.builder()\n            .status(\"CreateSuccess\")\n            .build());\n\n        final var last = default_.accounts().length().applyValue(_length -\u003e _length - 1);\n\n        var defaultAggregator = new Aggregator(\"defaultAggregator\", AggregatorArgs.builder()\n            .aggregatorAccounts(AggregatorAggregatorAccountArgs.builder()\n                .accountId(default_.accounts()[last].accountId())\n                .accountName(default_.accounts()[last].displayName())\n                .accountType(\"ResourceDirectory\")\n                .build())\n            .aggregatorName(name)\n            .description(name)\n            .aggregatorType(\"CUSTOM\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Config (Config) Aggregator can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cfg/aggregator:Aggregator example \u003cid\u003e\n```\n\n","properties":{"aggregatorAccounts":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/AggregatorAggregatorAccount:AggregatorAggregatorAccount"},"description":"The member accounts of the account group. See \u003cspan pulumi-lang-nodejs=\"`aggregatorAccounts`\" pulumi-lang-dotnet=\"`AggregatorAccounts`\" pulumi-lang-go=\"`aggregatorAccounts`\" pulumi-lang-python=\"`aggregator_accounts`\" pulumi-lang-yaml=\"`aggregatorAccounts`\" pulumi-lang-java=\"`aggregatorAccounts`\"\u003e`aggregator_accounts`\u003c/span\u003e below.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`aggregatorType`\" pulumi-lang-dotnet=\"`AggregatorType`\" pulumi-lang-go=\"`aggregatorType`\" pulumi-lang-python=\"`aggregator_type`\" pulumi-lang-yaml=\"`aggregatorType`\" pulumi-lang-java=\"`aggregatorType`\"\u003e`aggregator_type`\u003c/span\u003e is set to `CUSTOM`, \u003cspan pulumi-lang-nodejs=\"`aggregatorAccounts`\" pulumi-lang-dotnet=\"`AggregatorAccounts`\" pulumi-lang-go=\"`aggregatorAccounts`\" pulumi-lang-python=\"`aggregator_accounts`\" pulumi-lang-yaml=\"`aggregatorAccounts`\" pulumi-lang-java=\"`aggregatorAccounts`\"\u003e`aggregator_accounts`\u003c/span\u003e is required.\n"},"aggregatorName":{"type":"string","description":"The name of the account group.\n"},"aggregatorType":{"type":"string","description":"The type of the account group. Default value: `CUSTOM`. Valid values:\n- `RD`: Global account group.\n- `FOLDER`: Folder account group.\n- `CUSTOM`: Custom account group.\n"},"createTime":{"type":"integer","description":"(Available since v1.262.0) The timestamp when the account group was created.\n"},"description":{"type":"string","description":"The description of the account group.\n"},"folderId":{"type":"string","description":"The ID of the attached folder. You can specify multiple folder IDs. Separate the IDs with commas (,). **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`aggregatorType`\" pulumi-lang-dotnet=\"`AggregatorType`\" pulumi-lang-go=\"`aggregatorType`\" pulumi-lang-python=\"`aggregator_type`\" pulumi-lang-yaml=\"`aggregatorType`\" pulumi-lang-java=\"`aggregatorType`\"\u003e`aggregator_type`\u003c/span\u003e is set to `FOLDER`, \u003cspan pulumi-lang-nodejs=\"`folderId`\" pulumi-lang-dotnet=\"`FolderId`\" pulumi-lang-go=\"`folderId`\" pulumi-lang-python=\"`folder_id`\" pulumi-lang-yaml=\"`folderId`\" pulumi-lang-java=\"`folderId`\"\u003e`folder_id`\u003c/span\u003e is required.\n"},"status":{"type":"string","description":"The status of the account group.\n"}},"required":["aggregatorAccounts","aggregatorName","aggregatorType","createTime","description","status"],"inputProperties":{"aggregatorAccounts":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/AggregatorAggregatorAccount:AggregatorAggregatorAccount"},"description":"The member accounts of the account group. See \u003cspan pulumi-lang-nodejs=\"`aggregatorAccounts`\" pulumi-lang-dotnet=\"`AggregatorAccounts`\" pulumi-lang-go=\"`aggregatorAccounts`\" pulumi-lang-python=\"`aggregator_accounts`\" pulumi-lang-yaml=\"`aggregatorAccounts`\" pulumi-lang-java=\"`aggregatorAccounts`\"\u003e`aggregator_accounts`\u003c/span\u003e below.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`aggregatorType`\" pulumi-lang-dotnet=\"`AggregatorType`\" pulumi-lang-go=\"`aggregatorType`\" pulumi-lang-python=\"`aggregator_type`\" pulumi-lang-yaml=\"`aggregatorType`\" pulumi-lang-java=\"`aggregatorType`\"\u003e`aggregator_type`\u003c/span\u003e is set to `CUSTOM`, \u003cspan pulumi-lang-nodejs=\"`aggregatorAccounts`\" pulumi-lang-dotnet=\"`AggregatorAccounts`\" pulumi-lang-go=\"`aggregatorAccounts`\" pulumi-lang-python=\"`aggregator_accounts`\" pulumi-lang-yaml=\"`aggregatorAccounts`\" pulumi-lang-java=\"`aggregatorAccounts`\"\u003e`aggregator_accounts`\u003c/span\u003e is required.\n"},"aggregatorName":{"type":"string","description":"The name of the account group.\n"},"aggregatorType":{"type":"string","description":"The type of the account group. Default value: `CUSTOM`. Valid values:\n- `RD`: Global account group.\n- `FOLDER`: Folder account group.\n- `CUSTOM`: Custom account group.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the account group.\n"},"folderId":{"type":"string","description":"The ID of the attached folder. You can specify multiple folder IDs. Separate the IDs with commas (,). **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`aggregatorType`\" pulumi-lang-dotnet=\"`AggregatorType`\" pulumi-lang-go=\"`aggregatorType`\" pulumi-lang-python=\"`aggregator_type`\" pulumi-lang-yaml=\"`aggregatorType`\" pulumi-lang-java=\"`aggregatorType`\"\u003e`aggregator_type`\u003c/span\u003e is set to `FOLDER`, \u003cspan pulumi-lang-nodejs=\"`folderId`\" pulumi-lang-dotnet=\"`FolderId`\" pulumi-lang-go=\"`folderId`\" pulumi-lang-python=\"`folder_id`\" pulumi-lang-yaml=\"`folderId`\" pulumi-lang-java=\"`folderId`\"\u003e`folder_id`\u003c/span\u003e is required.\n"}},"requiredInputs":["aggregatorName","description"],"stateInputs":{"description":"Input properties used for looking up and filtering Aggregator resources.\n","properties":{"aggregatorAccounts":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/AggregatorAggregatorAccount:AggregatorAggregatorAccount"},"description":"The member accounts of the account group. See \u003cspan pulumi-lang-nodejs=\"`aggregatorAccounts`\" pulumi-lang-dotnet=\"`AggregatorAccounts`\" pulumi-lang-go=\"`aggregatorAccounts`\" pulumi-lang-python=\"`aggregator_accounts`\" pulumi-lang-yaml=\"`aggregatorAccounts`\" pulumi-lang-java=\"`aggregatorAccounts`\"\u003e`aggregator_accounts`\u003c/span\u003e below.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`aggregatorType`\" pulumi-lang-dotnet=\"`AggregatorType`\" pulumi-lang-go=\"`aggregatorType`\" pulumi-lang-python=\"`aggregator_type`\" pulumi-lang-yaml=\"`aggregatorType`\" pulumi-lang-java=\"`aggregatorType`\"\u003e`aggregator_type`\u003c/span\u003e is set to `CUSTOM`, \u003cspan pulumi-lang-nodejs=\"`aggregatorAccounts`\" pulumi-lang-dotnet=\"`AggregatorAccounts`\" pulumi-lang-go=\"`aggregatorAccounts`\" pulumi-lang-python=\"`aggregator_accounts`\" pulumi-lang-yaml=\"`aggregatorAccounts`\" pulumi-lang-java=\"`aggregatorAccounts`\"\u003e`aggregator_accounts`\u003c/span\u003e is required.\n"},"aggregatorName":{"type":"string","description":"The name of the account group.\n"},"aggregatorType":{"type":"string","description":"The type of the account group. Default value: `CUSTOM`. Valid values:\n- `RD`: Global account group.\n- `FOLDER`: Folder account group.\n- `CUSTOM`: Custom account group.\n","willReplaceOnChanges":true},"createTime":{"type":"integer","description":"(Available since v1.262.0) The timestamp when the account group was created.\n"},"description":{"type":"string","description":"The description of the account group.\n"},"folderId":{"type":"string","description":"The ID of the attached folder. You can specify multiple folder IDs. Separate the IDs with commas (,). **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`aggregatorType`\" pulumi-lang-dotnet=\"`AggregatorType`\" pulumi-lang-go=\"`aggregatorType`\" pulumi-lang-python=\"`aggregator_type`\" pulumi-lang-yaml=\"`aggregatorType`\" pulumi-lang-java=\"`aggregatorType`\"\u003e`aggregator_type`\u003c/span\u003e is set to `FOLDER`, \u003cspan pulumi-lang-nodejs=\"`folderId`\" pulumi-lang-dotnet=\"`FolderId`\" pulumi-lang-go=\"`folderId`\" pulumi-lang-python=\"`folder_id`\" pulumi-lang-yaml=\"`folderId`\" pulumi-lang-java=\"`folderId`\"\u003e`folder_id`\u003c/span\u003e is required.\n"},"status":{"type":"string","description":"The status of the account group.\n"}},"type":"object"}},"alicloud:cfg/compliancePack:CompliancePack":{"description":"Provides a Cloud Config Compliance Pack resource.\n\nFor information about Cloud Config Compliance Pack and how to use it, see [What is Compliance Pack](https://www.alibabacloud.com/help/en/cloud-config/latest/api-config-2020-09-07-createcompliancepack).\n\n\u003e **NOTE:** Available since v1.124.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example-config-name\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst rule1 = new alicloud.cfg.Rule(\"rule1\", {\n    description: name,\n    sourceOwner: \"ALIYUN\",\n    sourceIdentifier: \"ram-user-ak-create-date-expired-check\",\n    riskLevel: 1,\n    maximumExecutionFrequency: \"TwentyFour_Hours\",\n    regionIdsScope: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    configRuleTriggerTypes: \"ScheduledNotification\",\n    resourceTypesScopes: [\"ACS::RAM::User\"],\n    ruleName: \"ciscompliancecheck_ram-user-ak-create-date-expired-check\",\n    inputParameters: {\n        days: \"90\",\n    },\n});\nconst rule2 = new alicloud.cfg.Rule(\"rule2\", {\n    description: name,\n    sourceOwner: \"ALIYUN\",\n    sourceIdentifier: \"adb-cluster-maintain-time-check\",\n    riskLevel: 2,\n    regionIdsScope: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    configRuleTriggerTypes: \"ScheduledNotification\",\n    resourceTypesScopes: [\"ACS::ADB::DBCluster\"],\n    ruleName: \"governance-evaluation-adb-cluster-maintain-time-check\",\n    inputParameters: {\n        maintainTimes: \"02:00-04:00,06:00-08:00,12:00-13:00\",\n    },\n});\nconst defaultCompliancePack = new alicloud.cfg.CompliancePack(\"default\", {\n    compliancePackName: name,\n    description: \"CloudGovernanceCenter evaluation\",\n    riskLevel: 2,\n    configRuleIds: [\n        {\n            configRuleId: rule1.id,\n        },\n        {\n            configRuleId: rule2.id,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example-config-name\"\ndefault = alicloud.get_regions(current=True)\nrule1 = alicloud.cfg.Rule(\"rule1\",\n    description=name,\n    source_owner=\"ALIYUN\",\n    source_identifier=\"ram-user-ak-create-date-expired-check\",\n    risk_level=1,\n    maximum_execution_frequency=\"TwentyFour_Hours\",\n    region_ids_scope=default.regions[0].id,\n    config_rule_trigger_types=\"ScheduledNotification\",\n    resource_types_scopes=[\"ACS::RAM::User\"],\n    rule_name=\"ciscompliancecheck_ram-user-ak-create-date-expired-check\",\n    input_parameters={\n        \"days\": \"90\",\n    })\nrule2 = alicloud.cfg.Rule(\"rule2\",\n    description=name,\n    source_owner=\"ALIYUN\",\n    source_identifier=\"adb-cluster-maintain-time-check\",\n    risk_level=2,\n    region_ids_scope=default.regions[0].id,\n    config_rule_trigger_types=\"ScheduledNotification\",\n    resource_types_scopes=[\"ACS::ADB::DBCluster\"],\n    rule_name=\"governance-evaluation-adb-cluster-maintain-time-check\",\n    input_parameters={\n        \"maintainTimes\": \"02:00-04:00,06:00-08:00,12:00-13:00\",\n    })\ndefault_compliance_pack = alicloud.cfg.CompliancePack(\"default\",\n    compliance_pack_name=name,\n    description=\"CloudGovernanceCenter evaluation\",\n    risk_level=2,\n    config_rule_ids=[\n        {\n            \"config_rule_id\": rule1.id,\n        },\n        {\n            \"config_rule_id\": rule2.id,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example-config-name\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var rule1 = new AliCloud.Cfg.Rule(\"rule1\", new()\n    {\n        Description = name,\n        SourceOwner = \"ALIYUN\",\n        SourceIdentifier = \"ram-user-ak-create-date-expired-check\",\n        RiskLevel = 1,\n        MaximumExecutionFrequency = \"TwentyFour_Hours\",\n        RegionIdsScope = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        ConfigRuleTriggerTypes = \"ScheduledNotification\",\n        ResourceTypesScopes = new[]\n        {\n            \"ACS::RAM::User\",\n        },\n        RuleName = \"ciscompliancecheck_ram-user-ak-create-date-expired-check\",\n        InputParameters = \n        {\n            { \"days\", \"90\" },\n        },\n    });\n\n    var rule2 = new AliCloud.Cfg.Rule(\"rule2\", new()\n    {\n        Description = name,\n        SourceOwner = \"ALIYUN\",\n        SourceIdentifier = \"adb-cluster-maintain-time-check\",\n        RiskLevel = 2,\n        RegionIdsScope = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        ConfigRuleTriggerTypes = \"ScheduledNotification\",\n        ResourceTypesScopes = new[]\n        {\n            \"ACS::ADB::DBCluster\",\n        },\n        RuleName = \"governance-evaluation-adb-cluster-maintain-time-check\",\n        InputParameters = \n        {\n            { \"maintainTimes\", \"02:00-04:00,06:00-08:00,12:00-13:00\" },\n        },\n    });\n\n    var defaultCompliancePack = new AliCloud.Cfg.CompliancePack(\"default\", new()\n    {\n        CompliancePackName = name,\n        Description = \"CloudGovernanceCenter evaluation\",\n        RiskLevel = 2,\n        ConfigRuleIds = new[]\n        {\n            new AliCloud.Cfg.Inputs.CompliancePackConfigRuleIdArgs\n            {\n                ConfigRuleId = rule1.Id,\n            },\n            new AliCloud.Cfg.Inputs.CompliancePackConfigRuleIdArgs\n            {\n                ConfigRuleId = rule2.Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example-config-name\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trule1, err := cfg.NewRule(ctx, \"rule1\", \u0026cfg.RuleArgs{\n\t\t\tDescription:               pulumi.String(name),\n\t\t\tSourceOwner:               pulumi.String(\"ALIYUN\"),\n\t\t\tSourceIdentifier:          pulumi.String(\"ram-user-ak-create-date-expired-check\"),\n\t\t\tRiskLevel:                 pulumi.Int(1),\n\t\t\tMaximumExecutionFrequency: pulumi.String(\"TwentyFour_Hours\"),\n\t\t\tRegionIdsScope:            pulumi.String(_default.Regions[0].Id),\n\t\t\tConfigRuleTriggerTypes:    pulumi.String(\"ScheduledNotification\"),\n\t\t\tResourceTypesScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ACS::RAM::User\"),\n\t\t\t},\n\t\t\tRuleName: pulumi.String(\"ciscompliancecheck_ram-user-ak-create-date-expired-check\"),\n\t\t\tInputParameters: pulumi.StringMap{\n\t\t\t\t\"days\": pulumi.String(\"90\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trule2, err := cfg.NewRule(ctx, \"rule2\", \u0026cfg.RuleArgs{\n\t\t\tDescription:            pulumi.String(name),\n\t\t\tSourceOwner:            pulumi.String(\"ALIYUN\"),\n\t\t\tSourceIdentifier:       pulumi.String(\"adb-cluster-maintain-time-check\"),\n\t\t\tRiskLevel:              pulumi.Int(2),\n\t\t\tRegionIdsScope:         pulumi.String(_default.Regions[0].Id),\n\t\t\tConfigRuleTriggerTypes: pulumi.String(\"ScheduledNotification\"),\n\t\t\tResourceTypesScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ACS::ADB::DBCluster\"),\n\t\t\t},\n\t\t\tRuleName: pulumi.String(\"governance-evaluation-adb-cluster-maintain-time-check\"),\n\t\t\tInputParameters: pulumi.StringMap{\n\t\t\t\t\"maintainTimes\": pulumi.String(\"02:00-04:00,06:00-08:00,12:00-13:00\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cfg.NewCompliancePack(ctx, \"default\", \u0026cfg.CompliancePackArgs{\n\t\t\tCompliancePackName: pulumi.String(name),\n\t\t\tDescription:        pulumi.String(\"CloudGovernanceCenter evaluation\"),\n\t\t\tRiskLevel:          pulumi.Int(2),\n\t\t\tConfigRuleIds: cfg.CompliancePackConfigRuleIdArray{\n\t\t\t\t\u0026cfg.CompliancePackConfigRuleIdArgs{\n\t\t\t\t\tConfigRuleId: rule1.ID(),\n\t\t\t\t},\n\t\t\t\t\u0026cfg.CompliancePackConfigRuleIdArgs{\n\t\t\t\t\tConfigRuleId: rule2.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.cfg.Rule;\nimport com.pulumi.alicloud.cfg.RuleArgs;\nimport com.pulumi.alicloud.cfg.CompliancePack;\nimport com.pulumi.alicloud.cfg.CompliancePackArgs;\nimport com.pulumi.alicloud.cfg.inputs.CompliancePackConfigRuleIdArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example-config-name\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var rule1 = new Rule(\"rule1\", RuleArgs.builder()\n            .description(name)\n            .sourceOwner(\"ALIYUN\")\n            .sourceIdentifier(\"ram-user-ak-create-date-expired-check\")\n            .riskLevel(1)\n            .maximumExecutionFrequency(\"TwentyFour_Hours\")\n            .regionIdsScope(default_.regions()[0].id())\n            .configRuleTriggerTypes(\"ScheduledNotification\")\n            .resourceTypesScopes(\"ACS::RAM::User\")\n            .ruleName(\"ciscompliancecheck_ram-user-ak-create-date-expired-check\")\n            .inputParameters(Map.of(\"days\", \"90\"))\n            .build());\n\n        var rule2 = new Rule(\"rule2\", RuleArgs.builder()\n            .description(name)\n            .sourceOwner(\"ALIYUN\")\n            .sourceIdentifier(\"adb-cluster-maintain-time-check\")\n            .riskLevel(2)\n            .regionIdsScope(default_.regions()[0].id())\n            .configRuleTriggerTypes(\"ScheduledNotification\")\n            .resourceTypesScopes(\"ACS::ADB::DBCluster\")\n            .ruleName(\"governance-evaluation-adb-cluster-maintain-time-check\")\n            .inputParameters(Map.of(\"maintainTimes\", \"02:00-04:00,06:00-08:00,12:00-13:00\"))\n            .build());\n\n        var defaultCompliancePack = new CompliancePack(\"defaultCompliancePack\", CompliancePackArgs.builder()\n            .compliancePackName(name)\n            .description(\"CloudGovernanceCenter evaluation\")\n            .riskLevel(2)\n            .configRuleIds(            \n                CompliancePackConfigRuleIdArgs.builder()\n                    .configRuleId(rule1.id())\n                    .build(),\n                CompliancePackConfigRuleIdArgs.builder()\n                    .configRuleId(rule2.id())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example-config-name\nresources:\n  rule1:\n    type: alicloud:cfg:Rule\n    properties:\n      description: ${name}\n      sourceOwner: ALIYUN\n      sourceIdentifier: ram-user-ak-create-date-expired-check\n      riskLevel: 1\n      maximumExecutionFrequency: TwentyFour_Hours\n      regionIdsScope: ${default.regions[0].id}\n      configRuleTriggerTypes: ScheduledNotification\n      resourceTypesScopes:\n        - ACS::RAM::User\n      ruleName: ciscompliancecheck_ram-user-ak-create-date-expired-check\n      inputParameters:\n        days: '90'\n  rule2:\n    type: alicloud:cfg:Rule\n    properties:\n      description: ${name}\n      sourceOwner: ALIYUN\n      sourceIdentifier: adb-cluster-maintain-time-check\n      riskLevel: 2\n      regionIdsScope: ${default.regions[0].id}\n      configRuleTriggerTypes: ScheduledNotification\n      resourceTypesScopes:\n        - ACS::ADB::DBCluster\n      ruleName: governance-evaluation-adb-cluster-maintain-time-check\n      inputParameters:\n        maintainTimes: 02:00-04:00,06:00-08:00,12:00-13:00\n  defaultCompliancePack:\n    type: alicloud:cfg:CompliancePack\n    name: default\n    properties:\n      compliancePackName: ${name}\n      description: CloudGovernanceCenter evaluation\n      riskLevel: '2'\n      configRuleIds:\n        - configRuleId: ${rule1.id}\n        - configRuleId: ${rule2.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Config Compliance Pack can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cfg/compliancePack:CompliancePack example \u003cid\u003e\n```\n\n","properties":{"compliancePackName":{"type":"string","description":"The Compliance Package Name. **NOTE:** From version 1.146.0, \u003cspan pulumi-lang-nodejs=\"`compliancePackName`\" pulumi-lang-dotnet=\"`CompliancePackName`\" pulumi-lang-go=\"`compliancePackName`\" pulumi-lang-python=\"`compliance_pack_name`\" pulumi-lang-yaml=\"`compliancePackName`\" pulumi-lang-java=\"`compliancePackName`\"\u003e`compliance_pack_name`\u003c/span\u003e can be modified.\n"},"compliancePackTemplateId":{"type":"string","description":"Compliance Package Template Id.\n"},"configRuleIds":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/CompliancePackConfigRuleId:CompliancePackConfigRuleId"},"description":"A list of Config Rule IDs. See \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e below.\n"},"configRules":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/CompliancePackConfigRule:CompliancePackConfigRule"},"description":"A list of Config Rules. See \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e below. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e has been deprecated from provider version 1.141.0. New field \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e has been deprecated from provider version 1.141.0. New field \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e instead."},"description":{"type":"string","description":"The Description of compliance pack.\n"},"riskLevel":{"type":"integer","description":"The Risk Level. Valid values:\n"},"status":{"type":"string","description":"The status of the Compliance Pack.\n"}},"required":["compliancePackName","description","riskLevel","status"],"inputProperties":{"compliancePackName":{"type":"string","description":"The Compliance Package Name. **NOTE:** From version 1.146.0, \u003cspan pulumi-lang-nodejs=\"`compliancePackName`\" pulumi-lang-dotnet=\"`CompliancePackName`\" pulumi-lang-go=\"`compliancePackName`\" pulumi-lang-python=\"`compliance_pack_name`\" pulumi-lang-yaml=\"`compliancePackName`\" pulumi-lang-java=\"`compliancePackName`\"\u003e`compliance_pack_name`\u003c/span\u003e can be modified.\n"},"compliancePackTemplateId":{"type":"string","description":"Compliance Package Template Id.\n","willReplaceOnChanges":true},"configRuleIds":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/CompliancePackConfigRuleId:CompliancePackConfigRuleId"},"description":"A list of Config Rule IDs. See \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e below.\n"},"configRules":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/CompliancePackConfigRule:CompliancePackConfigRule"},"description":"A list of Config Rules. See \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e below. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e has been deprecated from provider version 1.141.0. New field \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e has been deprecated from provider version 1.141.0. New field \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e instead."},"description":{"type":"string","description":"The Description of compliance pack.\n"},"riskLevel":{"type":"integer","description":"The Risk Level. Valid values:\n"}},"requiredInputs":["compliancePackName","description","riskLevel"],"stateInputs":{"description":"Input properties used for looking up and filtering CompliancePack resources.\n","properties":{"compliancePackName":{"type":"string","description":"The Compliance Package Name. **NOTE:** From version 1.146.0, \u003cspan pulumi-lang-nodejs=\"`compliancePackName`\" pulumi-lang-dotnet=\"`CompliancePackName`\" pulumi-lang-go=\"`compliancePackName`\" pulumi-lang-python=\"`compliance_pack_name`\" pulumi-lang-yaml=\"`compliancePackName`\" pulumi-lang-java=\"`compliancePackName`\"\u003e`compliance_pack_name`\u003c/span\u003e can be modified.\n"},"compliancePackTemplateId":{"type":"string","description":"Compliance Package Template Id.\n","willReplaceOnChanges":true},"configRuleIds":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/CompliancePackConfigRuleId:CompliancePackConfigRuleId"},"description":"A list of Config Rule IDs. See \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e below.\n"},"configRules":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/CompliancePackConfigRule:CompliancePackConfigRule"},"description":"A list of Config Rules. See \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e below. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e has been deprecated from provider version 1.141.0. New field \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`configRules`\" pulumi-lang-dotnet=\"`ConfigRules`\" pulumi-lang-go=\"`configRules`\" pulumi-lang-python=\"`config_rules`\" pulumi-lang-yaml=\"`configRules`\" pulumi-lang-java=\"`configRules`\"\u003e`config_rules`\u003c/span\u003e has been deprecated from provider version 1.141.0. New field \u003cspan pulumi-lang-nodejs=\"`configRuleIds`\" pulumi-lang-dotnet=\"`ConfigRuleIds`\" pulumi-lang-go=\"`configRuleIds`\" pulumi-lang-python=\"`config_rule_ids`\" pulumi-lang-yaml=\"`configRuleIds`\" pulumi-lang-java=\"`configRuleIds`\"\u003e`config_rule_ids`\u003c/span\u003e instead."},"description":{"type":"string","description":"The Description of compliance pack.\n"},"riskLevel":{"type":"integer","description":"The Risk Level. Valid values:\n"},"status":{"type":"string","description":"The status of the Compliance Pack.\n"}},"type":"object"}},"alicloud:cfg/configurationRecorder:ConfigurationRecorder":{"description":"Provides a Alicloud Config Configuration Recorder resource. Cloud Config is a specialized service for evaluating resources. Cloud Config tracks configuration changes of your resources and evaluates configuration compliance. Cloud Config can help you evaluate numerous resources and maintain the continuous compliance of your cloud infrastructure.\nFor information about Alicloud Config Configuration Recorder and how to use it, see [What is Configuration Recorder.](https://www.alibabacloud.com/help/en/cloud-config/latest/startconfigurationrecorder)\n\n\u003e **NOTE:** Available since v1.99.0.\n\n\u003e **NOTE:** The Cloud Config region only support `cn-shanghai` and `ap-southeast-1`.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.cfg.ConfigurationRecorder(\"example\", {resourceTypes: [\n    \"ACS::ECS::Instance\",\n    \"ACS::ECS::Disk\",\n]});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cfg.ConfigurationRecorder(\"example\", resource_types=[\n    \"ACS::ECS::Instance\",\n    \"ACS::ECS::Disk\",\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Cfg.ConfigurationRecorder(\"example\", new()\n    {\n        ResourceTypes = new[]\n        {\n            \"ACS::ECS::Instance\",\n            \"ACS::ECS::Disk\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cfg.NewConfigurationRecorder(ctx, \"example\", \u0026cfg.ConfigurationRecorderArgs{\n\t\t\tResourceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ACS::ECS::Instance\"),\n\t\t\t\tpulumi.String(\"ACS::ECS::Disk\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cfg.ConfigurationRecorder;\nimport com.pulumi.alicloud.cfg.ConfigurationRecorderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ConfigurationRecorder(\"example\", ConfigurationRecorderArgs.builder()\n            .resourceTypes(            \n                \"ACS::ECS::Instance\",\n                \"ACS::ECS::Disk\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:cfg:ConfigurationRecorder\n    properties:\n      resourceTypes:\n        - ACS::ECS::Instance\n        - ACS::ECS::Disk\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAlicloud Config Configuration Recorder can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cfg/configurationRecorder:ConfigurationRecorder example 122378463********\n```\n\n","properties":{"enterpriseEdition":{"type":"boolean","description":"Whether to use the enterprise version configuration audit. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default value \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. For enterprise accounts, We recommend you to use the resource alicloud_config_aggregator.\n"},"organizationEnableStatus":{"type":"string","description":"Enterprise version configuration audit enabled status. Values: `REGISTRABLE`: Not enabled, `BUILDING`: Building and `REGISTERED`: Enabled.\n"},"organizationMasterId":{"type":"integer","description":"The ID of the Enterprise management account.\n"},"resourceTypes":{"type":"array","items":{"type":"string"},"description":"A list of resource types to be monitored. [Resource types that support Cloud Config.](https://www.alibabacloud.com/help/en/doc-detail/127411.htm)\n* If you use an ordinary account, the \u003cspan pulumi-lang-nodejs=\"`resourceTypes`\" pulumi-lang-dotnet=\"`ResourceTypes`\" pulumi-lang-go=\"`resourceTypes`\" pulumi-lang-python=\"`resource_types`\" pulumi-lang-yaml=\"`resourceTypes`\" pulumi-lang-java=\"`resourceTypes`\"\u003e`resource_types`\u003c/span\u003e supports the update operation after the process of creation is completed.\n* If you use an enterprise account, the \u003cspan pulumi-lang-nodejs=\"`resourceTypes`\" pulumi-lang-dotnet=\"`ResourceTypes`\" pulumi-lang-go=\"`resourceTypes`\" pulumi-lang-python=\"`resource_types`\" pulumi-lang-yaml=\"`resourceTypes`\" pulumi-lang-java=\"`resourceTypes`\"\u003e`resource_types`\u003c/span\u003e does not support updating.\n"},"status":{"type":"string","description":"Status of resource monitoring. Values: `REGISTRABLE`: Not registered, `BUILDING`: Under construction, `REGISTERED`: Registered and `REBUILDING`: Rebuilding.\n"}},"required":["enterpriseEdition","organizationEnableStatus","organizationMasterId","resourceTypes","status"],"inputProperties":{"enterpriseEdition":{"type":"boolean","description":"Whether to use the enterprise version configuration audit. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default value \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. For enterprise accounts, We recommend you to use the resource alicloud_config_aggregator.\n","willReplaceOnChanges":true},"resourceTypes":{"type":"array","items":{"type":"string"},"description":"A list of resource types to be monitored. [Resource types that support Cloud Config.](https://www.alibabacloud.com/help/en/doc-detail/127411.htm)\n* If you use an ordinary account, the \u003cspan pulumi-lang-nodejs=\"`resourceTypes`\" pulumi-lang-dotnet=\"`ResourceTypes`\" pulumi-lang-go=\"`resourceTypes`\" pulumi-lang-python=\"`resource_types`\" pulumi-lang-yaml=\"`resourceTypes`\" pulumi-lang-java=\"`resourceTypes`\"\u003e`resource_types`\u003c/span\u003e supports the update operation after the process of creation is completed.\n* If you use an enterprise account, the \u003cspan pulumi-lang-nodejs=\"`resourceTypes`\" pulumi-lang-dotnet=\"`ResourceTypes`\" pulumi-lang-go=\"`resourceTypes`\" pulumi-lang-python=\"`resource_types`\" pulumi-lang-yaml=\"`resourceTypes`\" pulumi-lang-java=\"`resourceTypes`\"\u003e`resource_types`\u003c/span\u003e does not support updating.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ConfigurationRecorder resources.\n","properties":{"enterpriseEdition":{"type":"boolean","description":"Whether to use the enterprise version configuration audit. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default value \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. For enterprise accounts, We recommend you to use the resource alicloud_config_aggregator.\n","willReplaceOnChanges":true},"organizationEnableStatus":{"type":"string","description":"Enterprise version configuration audit enabled status. Values: `REGISTRABLE`: Not enabled, `BUILDING`: Building and `REGISTERED`: Enabled.\n"},"organizationMasterId":{"type":"integer","description":"The ID of the Enterprise management account.\n"},"resourceTypes":{"type":"array","items":{"type":"string"},"description":"A list of resource types to be monitored. [Resource types that support Cloud Config.](https://www.alibabacloud.com/help/en/doc-detail/127411.htm)\n* If you use an ordinary account, the \u003cspan pulumi-lang-nodejs=\"`resourceTypes`\" pulumi-lang-dotnet=\"`ResourceTypes`\" pulumi-lang-go=\"`resourceTypes`\" pulumi-lang-python=\"`resource_types`\" pulumi-lang-yaml=\"`resourceTypes`\" pulumi-lang-java=\"`resourceTypes`\"\u003e`resource_types`\u003c/span\u003e supports the update operation after the process of creation is completed.\n* If you use an enterprise account, the \u003cspan pulumi-lang-nodejs=\"`resourceTypes`\" pulumi-lang-dotnet=\"`ResourceTypes`\" pulumi-lang-go=\"`resourceTypes`\" pulumi-lang-python=\"`resource_types`\" pulumi-lang-yaml=\"`resourceTypes`\" pulumi-lang-java=\"`resourceTypes`\"\u003e`resource_types`\u003c/span\u003e does not support updating.\n"},"status":{"type":"string","description":"Status of resource monitoring. Values: `REGISTRABLE`: Not registered, `BUILDING`: Under construction, `REGISTERED`: Registered and `REBUILDING`: Rebuilding.\n"}},"type":"object"}},"alicloud:cfg/delivery:Delivery":{"description":"Provides a Config Delivery resource.\n\nDelivery channel of current account.\n\nFor information about Config Delivery and how to use it, see [What is Delivery](https://www.alibabacloud.com/help/en/cloud-config/latest/api-config-2020-09-07-createconfigdeliverychannel).\n\n\u003e **NOTE:** Available since v1.171.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example-sls\";\nconst _this = alicloud.getAccount({});\nconst thisGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst _default = new alicloud.log.Project(\"default\", {projectName: name});\nconst defaultStore = new alicloud.log.Store(\"default\", {\n    logstoreName: name,\n    projectName: _default.projectName,\n});\nconst defaultDelivery = new alicloud.cfg.Delivery(\"default\", {\n    configurationItemChangeNotification: true,\n    nonCompliantNotification: true,\n    deliveryChannelName: name,\n    deliveryChannelTargetArn: pulumi.all([thisGetRegions, _this, _default.projectName, defaultStore.logstoreName]).apply(([thisGetRegions, _this, projectName, logstoreName]) =\u003e `acs:log:${thisGetRegions.ids?.[0]}:${_this.id}:project/${projectName}/logstore/${logstoreName}`),\n    deliveryChannelType: \"SLS\",\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example-sls\"\nthis = alicloud.get_account()\nthis_get_regions = alicloud.get_regions(current=True)\ndefault = alicloud.log.Project(\"default\", project_name=name)\ndefault_store = alicloud.log.Store(\"default\",\n    logstore_name=name,\n    project_name=default.project_name)\ndefault_delivery = alicloud.cfg.Delivery(\"default\",\n    configuration_item_change_notification=True,\n    non_compliant_notification=True,\n    delivery_channel_name=name,\n    delivery_channel_target_arn=pulumi.Output.all(\n        project_name=default.project_name,\n        logstore_name=default_store.logstore_name\n).apply(lambda resolved_outputs: f\"acs:log:{this_get_regions.ids[0]}:{this.id}:project/{resolved_outputs['project_name']}/logstore/{resolved_outputs['logstore_name']}\")\n,\n    delivery_channel_type=\"SLS\",\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example-sls\";\n    var @this = AliCloud.GetAccount.Invoke();\n\n    var thisGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var @default = new AliCloud.Log.Project(\"default\", new()\n    {\n        ProjectName = name,\n    });\n\n    var defaultStore = new AliCloud.Log.Store(\"default\", new()\n    {\n        LogstoreName = name,\n        ProjectName = @default.ProjectName,\n    });\n\n    var defaultDelivery = new AliCloud.Cfg.Delivery(\"default\", new()\n    {\n        ConfigurationItemChangeNotification = true,\n        NonCompliantNotification = true,\n        DeliveryChannelName = name,\n        DeliveryChannelTargetArn = Output.Tuple(thisGetRegions, @this, @default.ProjectName, defaultStore.LogstoreName).Apply(values =\u003e\n        {\n            var thisGetRegions = values.Item1;\n            var @this = values.Item2;\n            var projectName = values.Item3;\n            var logstoreName = values.Item4;\n            return $\"acs:log:{thisGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Ids[0])}:{@this.Apply(getAccountResult =\u003e getAccountResult.Id)}:project/{projectName}/logstore/{logstoreName}\";\n        }),\n        DeliveryChannelType = \"SLS\",\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example-sls\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tthis, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisGetRegions, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStore, err := log.NewStore(ctx, \"default\", \u0026log.StoreArgs{\n\t\t\tLogstoreName: pulumi.String(name),\n\t\t\tProjectName:  _default.ProjectName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cfg.NewDelivery(ctx, \"default\", \u0026cfg.DeliveryArgs{\n\t\t\tConfigurationItemChangeNotification: pulumi.Bool(true),\n\t\t\tNonCompliantNotification:            pulumi.Bool(true),\n\t\t\tDeliveryChannelName:                 pulumi.String(name),\n\t\t\tDeliveryChannelTargetArn: pulumi.All(_default.ProjectName, defaultStore.LogstoreName).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tprojectName := _args[0].(string)\n\t\t\t\tlogstoreName := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(\"acs:log:%v:%v:project/%v/logstore/%v\", thisGetRegions.Ids[0], this.Id, projectName, logstoreName), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tDeliveryChannelType: pulumi.String(\"SLS\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.cfg.Delivery;\nimport com.pulumi.alicloud.cfg.DeliveryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example-sls\");\n        final var this = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var thisGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var default_ = new Project(\"default\", ProjectArgs.builder()\n            .projectName(name)\n            .build());\n\n        var defaultStore = new Store(\"defaultStore\", StoreArgs.builder()\n            .logstoreName(name)\n            .projectName(default_.projectName())\n            .build());\n\n        var defaultDelivery = new Delivery(\"defaultDelivery\", DeliveryArgs.builder()\n            .configurationItemChangeNotification(true)\n            .nonCompliantNotification(true)\n            .deliveryChannelName(name)\n            .deliveryChannelTargetArn(Output.tuple(default_.projectName(), defaultStore.logstoreName()).applyValue(values -\u003e {\n                var projectName = values.t1;\n                var logstoreName = values.t2;\n                return String.format(\"acs:log:%s:%s:project/%s/logstore/%s\", thisGetRegions.ids()[0],this_.id(),projectName,logstoreName);\n            }))\n            .deliveryChannelType(\"SLS\")\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example-sls\nresources:\n  default:\n    type: alicloud:log:Project\n    properties:\n      projectName: ${name}\n  defaultStore:\n    type: alicloud:log:Store\n    name: default\n    properties:\n      logstoreName: ${name}\n      projectName: ${default.projectName}\n  defaultDelivery:\n    type: alicloud:cfg:Delivery\n    name: default\n    properties:\n      configurationItemChangeNotification: true\n      nonCompliantNotification: true\n      deliveryChannelName: ${name}\n      deliveryChannelTargetArn: acs:log:${thisGetRegions.ids[0]}:${this.id}:project/${default.projectName}/logstore/${defaultStore.logstoreName}\n      deliveryChannelType: SLS\n      description: ${name}\nvariables:\n  this:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  thisGetRegions:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nConfig Delivery can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cfg/delivery:Delivery example \u003cid\u003e\n```\n\n","properties":{"configurationItemChangeNotification":{"type":"boolean","description":"Indicates whether the specified destination receives resource change logs. If the value of this parameter is true, Cloud Config delivers the resource change logs to OSS, Log Service, or MNS when the configurations of the resources change. Valid values:  \n- true: The specified destination receives resource change logs.\n- false: The specified destination does not receive resource change logs.\n"},"configurationSnapshot":{"type":"boolean","description":"Indicates whether the specified destination receives scheduled resource snapshots. Cloud Config delivers scheduled resource snapshots at 04:00Z and 16:00Z to OSS, MNS, or Log Service every day. The time is displayed in UTC. Valid values:  \n- true: The specified destination receives scheduled resource snapshots.\n- false: The specified destination does not receive scheduled resource snapshots.\n"},"deliveryChannelCondition":{"type":"string","description":"The rule that is attached to the delivery channel.  \n\nThis parameter is available when you deliver data of all types to MNS or deliver snapshots to Log Service.\n\nIf you specify the risk level or resource types for subscription events, this is as follows:\n\nThe lowest risk level of the events to which you want to subscribe is in the following format: {\"filterType\":\"RuleRiskLevel\",\"value\":\"1\",\"multiple\":false}, The value field indicates the risk level of the events to which you want to subscribe. Valid values: 1, 2, and 3. The value 1 indicates the high risk level, the value 2 indicates the medium risk level, and the value 3 indicates the low risk level.\n\nThe setting of the resource types of the events to which you want to subscribe is in the following format: {\"filterType\":\"ResourceType\",\"values\":[\"ACS::ACK::Cluster\",\"ACS::ActionTrail::Trail\",\"ACS::CBWP::CommonBandwidthPackage\"],\"multiple\":true}, The values field indicates the resource types of the events to which you want to subscribe. The value of the field is a JSON array.\n\nExamples:[{\"filterType\":\"ResourceType\",\"values\":[\"ACS::ActionTrail::Trail\",\"ACS::CBWP::CommonBandwidthPackage\",\"ACS::CDN::Domain\",\"ACS::CEN::CenBandwidthPackage\",\"ACS::CEN::CenInstance\",\"ACS::CEN::Flowlog\",\"ACS::DdosCoo::Instance\"],\"multiple\":true}].\n"},"deliveryChannelName":{"type":"string","description":"The name of the delivery channel.\n"},"deliveryChannelTargetArn":{"type":"string","description":"The ARN of the delivery destination.  \n- If the value of the DeliveryChannelType parameter is OSS, the value of this parameter is the ARN of the destination OSS bucket.\n- If the value of the DeliveryChannelType parameter is MNS, the value of this parameter is the ARN of the destination MNS topic.\n- If the value of the DeliveryChannelType parameter is SLS, the value of this parameter is the ARN of the destination Log Service Logstore.\n"},"deliveryChannelType":{"type":"string","description":"The type of the delivery channel. Valid values:  \n- OSS: Object Storage Service (OSS)\n- MNS: Message Service (MNS)\n- SLS: Log Service\n"},"description":{"type":"string","description":"The description of the delivery channel.\n"},"nonCompliantNotification":{"type":"boolean","description":"Indicates whether the specified destination receives resource non-compliance events. If the value of this parameter is true, Cloud Config delivers resource non-compliance events to Log Service or MNS when resources are evaluated as non-compliant. Valid values:  \n- true: The specified destination receives resource non-compliance events.\n- false: The specified destination does not receive resource non-compliance events.\n"},"oversizedDataOssTargetArn":{"type":"string","description":"The oss ARN of the delivery channel when the value data oversized limit.  The value must be in one of the following formats:  acs:oss:{RegionId}:{Aliuid}:{bucketName} if your delivery destination is an Object Storage Service (OSS) bucket.\n"},"status":{"type":"integer","description":"The status of the delivery channel. Valid values:  \n- 0: The delivery channel is disabled.\n- 1: The delivery channel is enabled.\n"}},"required":["deliveryChannelTargetArn","deliveryChannelType","status"],"inputProperties":{"configurationItemChangeNotification":{"type":"boolean","description":"Indicates whether the specified destination receives resource change logs. If the value of this parameter is true, Cloud Config delivers the resource change logs to OSS, Log Service, or MNS when the configurations of the resources change. Valid values:  \n- true: The specified destination receives resource change logs.\n- false: The specified destination does not receive resource change logs.\n"},"configurationSnapshot":{"type":"boolean","description":"Indicates whether the specified destination receives scheduled resource snapshots. Cloud Config delivers scheduled resource snapshots at 04:00Z and 16:00Z to OSS, MNS, or Log Service every day. The time is displayed in UTC. Valid values:  \n- true: The specified destination receives scheduled resource snapshots.\n- false: The specified destination does not receive scheduled resource snapshots.\n"},"deliveryChannelCondition":{"type":"string","description":"The rule that is attached to the delivery channel.  \n\nThis parameter is available when you deliver data of all types to MNS or deliver snapshots to Log Service.\n\nIf you specify the risk level or resource types for subscription events, this is as follows:\n\nThe lowest risk level of the events to which you want to subscribe is in the following format: {\"filterType\":\"RuleRiskLevel\",\"value\":\"1\",\"multiple\":false}, The value field indicates the risk level of the events to which you want to subscribe. Valid values: 1, 2, and 3. The value 1 indicates the high risk level, the value 2 indicates the medium risk level, and the value 3 indicates the low risk level.\n\nThe setting of the resource types of the events to which you want to subscribe is in the following format: {\"filterType\":\"ResourceType\",\"values\":[\"ACS::ACK::Cluster\",\"ACS::ActionTrail::Trail\",\"ACS::CBWP::CommonBandwidthPackage\"],\"multiple\":true}, The values field indicates the resource types of the events to which you want to subscribe. The value of the field is a JSON array.\n\nExamples:[{\"filterType\":\"ResourceType\",\"values\":[\"ACS::ActionTrail::Trail\",\"ACS::CBWP::CommonBandwidthPackage\",\"ACS::CDN::Domain\",\"ACS::CEN::CenBandwidthPackage\",\"ACS::CEN::CenInstance\",\"ACS::CEN::Flowlog\",\"ACS::DdosCoo::Instance\"],\"multiple\":true}].\n"},"deliveryChannelName":{"type":"string","description":"The name of the delivery channel.\n"},"deliveryChannelTargetArn":{"type":"string","description":"The ARN of the delivery destination.  \n- If the value of the DeliveryChannelType parameter is OSS, the value of this parameter is the ARN of the destination OSS bucket.\n- If the value of the DeliveryChannelType parameter is MNS, the value of this parameter is the ARN of the destination MNS topic.\n- If the value of the DeliveryChannelType parameter is SLS, the value of this parameter is the ARN of the destination Log Service Logstore.\n"},"deliveryChannelType":{"type":"string","description":"The type of the delivery channel. Valid values:  \n- OSS: Object Storage Service (OSS)\n- MNS: Message Service (MNS)\n- SLS: Log Service\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the delivery channel.\n"},"nonCompliantNotification":{"type":"boolean","description":"Indicates whether the specified destination receives resource non-compliance events. If the value of this parameter is true, Cloud Config delivers resource non-compliance events to Log Service or MNS when resources are evaluated as non-compliant. Valid values:  \n- true: The specified destination receives resource non-compliance events.\n- false: The specified destination does not receive resource non-compliance events.\n"},"oversizedDataOssTargetArn":{"type":"string","description":"The oss ARN of the delivery channel when the value data oversized limit.  The value must be in one of the following formats:  acs:oss:{RegionId}:{Aliuid}:{bucketName} if your delivery destination is an Object Storage Service (OSS) bucket.\n"},"status":{"type":"integer","description":"The status of the delivery channel. Valid values:  \n- 0: The delivery channel is disabled.\n- 1: The delivery channel is enabled.\n"}},"requiredInputs":["deliveryChannelTargetArn","deliveryChannelType"],"stateInputs":{"description":"Input properties used for looking up and filtering Delivery resources.\n","properties":{"configurationItemChangeNotification":{"type":"boolean","description":"Indicates whether the specified destination receives resource change logs. If the value of this parameter is true, Cloud Config delivers the resource change logs to OSS, Log Service, or MNS when the configurations of the resources change. Valid values:  \n- true: The specified destination receives resource change logs.\n- false: The specified destination does not receive resource change logs.\n"},"configurationSnapshot":{"type":"boolean","description":"Indicates whether the specified destination receives scheduled resource snapshots. Cloud Config delivers scheduled resource snapshots at 04:00Z and 16:00Z to OSS, MNS, or Log Service every day. The time is displayed in UTC. Valid values:  \n- true: The specified destination receives scheduled resource snapshots.\n- false: The specified destination does not receive scheduled resource snapshots.\n"},"deliveryChannelCondition":{"type":"string","description":"The rule that is attached to the delivery channel.  \n\nThis parameter is available when you deliver data of all types to MNS or deliver snapshots to Log Service.\n\nIf you specify the risk level or resource types for subscription events, this is as follows:\n\nThe lowest risk level of the events to which you want to subscribe is in the following format: {\"filterType\":\"RuleRiskLevel\",\"value\":\"1\",\"multiple\":false}, The value field indicates the risk level of the events to which you want to subscribe. Valid values: 1, 2, and 3. The value 1 indicates the high risk level, the value 2 indicates the medium risk level, and the value 3 indicates the low risk level.\n\nThe setting of the resource types of the events to which you want to subscribe is in the following format: {\"filterType\":\"ResourceType\",\"values\":[\"ACS::ACK::Cluster\",\"ACS::ActionTrail::Trail\",\"ACS::CBWP::CommonBandwidthPackage\"],\"multiple\":true}, The values field indicates the resource types of the events to which you want to subscribe. The value of the field is a JSON array.\n\nExamples:[{\"filterType\":\"ResourceType\",\"values\":[\"ACS::ActionTrail::Trail\",\"ACS::CBWP::CommonBandwidthPackage\",\"ACS::CDN::Domain\",\"ACS::CEN::CenBandwidthPackage\",\"ACS::CEN::CenInstance\",\"ACS::CEN::Flowlog\",\"ACS::DdosCoo::Instance\"],\"multiple\":true}].\n"},"deliveryChannelName":{"type":"string","description":"The name of the delivery channel.\n"},"deliveryChannelTargetArn":{"type":"string","description":"The ARN of the delivery destination.  \n- If the value of the DeliveryChannelType parameter is OSS, the value of this parameter is the ARN of the destination OSS bucket.\n- If the value of the DeliveryChannelType parameter is MNS, the value of this parameter is the ARN of the destination MNS topic.\n- If the value of the DeliveryChannelType parameter is SLS, the value of this parameter is the ARN of the destination Log Service Logstore.\n"},"deliveryChannelType":{"type":"string","description":"The type of the delivery channel. Valid values:  \n- OSS: Object Storage Service (OSS)\n- MNS: Message Service (MNS)\n- SLS: Log Service\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the delivery channel.\n"},"nonCompliantNotification":{"type":"boolean","description":"Indicates whether the specified destination receives resource non-compliance events. If the value of this parameter is true, Cloud Config delivers resource non-compliance events to Log Service or MNS when resources are evaluated as non-compliant. Valid values:  \n- true: The specified destination receives resource non-compliance events.\n- false: The specified destination does not receive resource non-compliance events.\n"},"oversizedDataOssTargetArn":{"type":"string","description":"The oss ARN of the delivery channel when the value data oversized limit.  The value must be in one of the following formats:  acs:oss:{RegionId}:{Aliuid}:{bucketName} if your delivery destination is an Object Storage Service (OSS) bucket.\n"},"status":{"type":"integer","description":"The status of the delivery channel. Valid values:  \n- 0: The delivery channel is disabled.\n- 1: The delivery channel is enabled.\n"}},"type":"object"}},"alicloud:cfg/deliveryChannel:DeliveryChannel":{"description":"\u003e **DEPRECATED:**  This resource is based on Config's old version OpenAPI, and it has been deprecated from version `1.171.0`.\nPlease use new resource\u003cspan pulumi-lang-nodejs=\" alicloud.cfg.Delivery \" pulumi-lang-dotnet=\" alicloud.cfg.Delivery \" pulumi-lang-go=\" cfg.Delivery \" pulumi-lang-python=\" cfg.Delivery \" pulumi-lang-yaml=\" alicloud.cfg.Delivery \" pulumi-lang-java=\" alicloud.cfg.Delivery \"\u003e alicloud.cfg.Delivery \u003c/span\u003einstead.\n\nProvides an Alicloud Config Delivery Channel resource. You can receive configuration audit event changes by configuring OSS, MNS and SLS services provided by Alibaba Cloud.\nFor information about Alicloud Config Delivery Channel and how to use it, see [What is Delivery Channel](https://www.alibabacloud.com/help/en/doc-detail/307022.html).\n\n\u003e **NOTE:** Available since v1.99.0.\n\n\u003e **NOTE:** The Cloud Config region only support `cn-shanghai` and `ap-southeast-1`.\n\n\u003e **NOTE:** Once each type of delivery channel is created, it does not support destroyed by terraform. Only support through the \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e attribute control enable and disable.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst example = new alicloud.mns.Topic(\"example\", {name: \"test-topic\"});\n// Example for create a MNS delivery channel\nconst exampleDeliveryChannel = new alicloud.cfg.DeliveryChannel(\"example\", {\n    description: \"channel_description\",\n    deliveryChannelName: \"channel_name\",\n    deliveryChannelAssumeRoleArn: \"acs:ram::11827252********:role/aliyunserviceroleforconfig\",\n    deliveryChannelType: \"MNS\",\n    deliveryChannelTargetArn: std.format({\n        input: \"acs:oss:cn-shanghai:11827252********:/topics/%s\",\n        args: [example.name],\n    }).then(invoke =\u003e invoke.result),\n    deliveryChannelCondition: `  [\n      {\n          \\\\\"filterType\\\\\":\\\\\"ResourceType\\\\\",\n          \\\\\"values\\\\\":[\n              \\\\\"ACS::CEN::CenInstance\\\\\",\n              \\\\\"ACS::CEN::Flowlog\\\\\",\n          ],\n          \\\\\"multiple\\\\\":true\n      }\n  ]\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nexample = alicloud.mns.Topic(\"example\", name=\"test-topic\")\n# Example for create a MNS delivery channel\nexample_delivery_channel = alicloud.cfg.DeliveryChannel(\"example\",\n    description=\"channel_description\",\n    delivery_channel_name=\"channel_name\",\n    delivery_channel_assume_role_arn=\"acs:ram::11827252********:role/aliyunserviceroleforconfig\",\n    delivery_channel_type=\"MNS\",\n    delivery_channel_target_arn=std.format(input=\"acs:oss:cn-shanghai:11827252********:/topics/%s\",\n        args=[example.name]).result,\n    delivery_channel_condition=\"\"\"  [\n      {\n          \\\"filterType\\\":\\\"ResourceType\\\",\n          \\\"values\\\":[\n              \\\"ACS::CEN::CenInstance\\\",\n              \\\"ACS::CEN::Flowlog\\\",\n          ],\n          \\\"multiple\\\":true\n      }\n  ]\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Mns.Topic(\"example\", new()\n    {\n        Name = \"test-topic\",\n    });\n\n    // Example for create a MNS delivery channel\n    var exampleDeliveryChannel = new AliCloud.Cfg.DeliveryChannel(\"example\", new()\n    {\n        Description = \"channel_description\",\n        DeliveryChannelName = \"channel_name\",\n        DeliveryChannelAssumeRoleArn = \"acs:ram::11827252********:role/aliyunserviceroleforconfig\",\n        DeliveryChannelType = \"MNS\",\n        DeliveryChannelTargetArn = Std.Format.Invoke(new()\n        {\n            Input = \"acs:oss:cn-shanghai:11827252********:/topics/%s\",\n            Args = new[]\n            {\n                example.Name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        DeliveryChannelCondition = @\"  [\n      {\n          \\\"\"filterType\\\"\":\\\"\"ResourceType\\\"\",\n          \\\"\"values\\\"\":[\n              \\\"\"ACS::CEN::CenInstance\\\"\",\n              \\\"\"ACS::CEN::Flowlog\\\"\",\n          ],\n          \\\"\"multiple\\\"\":true\n      }\n  ]\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mns\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mns.NewTopic(ctx, \"example\", \u0026mns.TopicArgs{\n\t\t\tName: pulumi.String(\"test-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"acs:oss:cn-shanghai:11827252********:/topics/%s\",\n\t\t\tArgs: pulumi.StringArray{\n\t\t\t\texample.Name,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example for create a MNS delivery channel\n\t\t_, err = cfg.NewDeliveryChannel(ctx, \"example\", \u0026cfg.DeliveryChannelArgs{\n\t\t\tDescription:                  pulumi.String(\"channel_description\"),\n\t\t\tDeliveryChannelName:          pulumi.String(\"channel_name\"),\n\t\t\tDeliveryChannelAssumeRoleArn: pulumi.String(\"acs:ram::11827252********:role/aliyunserviceroleforconfig\"),\n\t\t\tDeliveryChannelType:          pulumi.String(\"MNS\"),\n\t\t\tDeliveryChannelTargetArn:     pulumi.String(invokeFormat.Result),\n\t\t\tDeliveryChannelCondition: pulumi.String(`  [\n      {\n          \\\"filterType\\\":\\\"ResourceType\\\",\n          \\\"values\\\":[\n              \\\"ACS::CEN::CenInstance\\\",\n              \\\"ACS::CEN::Flowlog\\\",\n          ],\n          \\\"multiple\\\":true\n      }\n  ]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mns.Topic;\nimport com.pulumi.alicloud.mns.TopicArgs;\nimport com.pulumi.alicloud.cfg.DeliveryChannel;\nimport com.pulumi.alicloud.cfg.DeliveryChannelArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Topic(\"example\", TopicArgs.builder()\n            .name(\"test-topic\")\n            .build());\n\n        // Example for create a MNS delivery channel\n        var exampleDeliveryChannel = new DeliveryChannel(\"exampleDeliveryChannel\", DeliveryChannelArgs.builder()\n            .description(\"channel_description\")\n            .deliveryChannelName(\"channel_name\")\n            .deliveryChannelAssumeRoleArn(\"acs:ram::11827252********:role/aliyunserviceroleforconfig\")\n            .deliveryChannelType(\"MNS\")\n            .deliveryChannelTargetArn(StdFunctions.format(FormatArgs.builder()\n                .input(\"acs:oss:cn-shanghai:11827252********:/topics/%s\")\n                .args(example.name())\n                .build()).result())\n            .deliveryChannelCondition(\"\"\"\n  [\n      {\n          \\\"filterType\\\":\\\"ResourceType\\\",\n          \\\"values\\\":[\n              \\\"ACS::CEN::CenInstance\\\",\n              \\\"ACS::CEN::Flowlog\\\",\n          ],\n          \\\"multiple\\\":true\n      }\n  ]\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:mns:Topic\n    properties:\n      name: test-topic\n  # Example for create a MNS delivery channel\n  exampleDeliveryChannel:\n    type: alicloud:cfg:DeliveryChannel\n    name: example\n    properties:\n      description: channel_description\n      deliveryChannelName: channel_name\n      deliveryChannelAssumeRoleArn: acs:ram::11827252********:role/aliyunserviceroleforconfig\n      deliveryChannelType: MNS\n      deliveryChannelTargetArn:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: acs:oss:cn-shanghai:11827252********:/topics/%s\n            args:\n              - ${example.name}\n          return: result\n      deliveryChannelCondition: |2\n          [\n              {\n                  \\\"filterType\\\":\\\"ResourceType\\\",\n                  \\\"values\\\":[\n                      \\\"ACS::CEN::CenInstance\\\",\n                      \\\"ACS::CEN::Flowlog\\\",\n                  ],\n                  \\\"multiple\\\":true\n              }\n          ]\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAlicloud Config Delivery Channel can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cfg/deliveryChannel:DeliveryChannel example cdc-49a2ad756057********\n```\n\n","properties":{"deliveryChannelAssumeRoleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the role to be assumed by the delivery method.\n"},"deliveryChannelCondition":{"type":"string","description":"The rule attached to the delivery method. This parameter is applicable only to delivery methods of the MNS type. Please refer to api [PutDeliveryChannel](https://www.alibabacloud.com/help/en/doc-detail/174253.htm) for example format.\n"},"deliveryChannelName":{"type":"string","description":"The name of the delivery channel.\n"},"deliveryChannelTargetArn":{"type":"string","description":"The ARN of the delivery destination. This parameter is required when you create a delivery method. The value must be in one of the following formats:\n- `acs:oss:{RegionId}:{Aliuid}:{bucketName}`: if your delivery destination is an Object Storage Service (OSS) bucket.\n- `acs:mns:{RegionId}:{Aliuid}:/topics/{topicName}`: if your delivery destination is a Message Service (MNS) topic.\n- `acs:log:{RegionId}:{Aliuid}:project/{projectName}/logstore/{logstoreName}`: if your delivery destination is a Log Service Logstore.\n"},"deliveryChannelType":{"type":"string","description":"The type of the delivery method. This parameter is required when you create a delivery method. Valid values: `OSS`: Object Storage, `MNS`: Message Service, `SLS`: Log Service.\n"},"description":{"type":"string","description":"The description of the delivery method.\n"},"status":{"type":"integer","description":"The status of the delivery method. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: The delivery method is disabled., \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: The delivery destination is enabled. This is the default value.\n"}},"required":["deliveryChannelAssumeRoleArn","deliveryChannelCondition","deliveryChannelName","deliveryChannelTargetArn","deliveryChannelType","description","status"],"inputProperties":{"deliveryChannelAssumeRoleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the role to be assumed by the delivery method.\n"},"deliveryChannelCondition":{"type":"string","description":"The rule attached to the delivery method. This parameter is applicable only to delivery methods of the MNS type. Please refer to api [PutDeliveryChannel](https://www.alibabacloud.com/help/en/doc-detail/174253.htm) for example format.\n"},"deliveryChannelName":{"type":"string","description":"The name of the delivery channel.\n"},"deliveryChannelTargetArn":{"type":"string","description":"The ARN of the delivery destination. This parameter is required when you create a delivery method. The value must be in one of the following formats:\n- `acs:oss:{RegionId}:{Aliuid}:{bucketName}`: if your delivery destination is an Object Storage Service (OSS) bucket.\n- `acs:mns:{RegionId}:{Aliuid}:/topics/{topicName}`: if your delivery destination is a Message Service (MNS) topic.\n- `acs:log:{RegionId}:{Aliuid}:project/{projectName}/logstore/{logstoreName}`: if your delivery destination is a Log Service Logstore.\n"},"deliveryChannelType":{"type":"string","description":"The type of the delivery method. This parameter is required when you create a delivery method. Valid values: `OSS`: Object Storage, `MNS`: Message Service, `SLS`: Log Service.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the delivery method.\n"},"status":{"type":"integer","description":"The status of the delivery method. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: The delivery method is disabled., \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: The delivery destination is enabled. This is the default value.\n"}},"requiredInputs":["deliveryChannelAssumeRoleArn","deliveryChannelTargetArn","deliveryChannelType"],"stateInputs":{"description":"Input properties used for looking up and filtering DeliveryChannel resources.\n","properties":{"deliveryChannelAssumeRoleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the role to be assumed by the delivery method.\n"},"deliveryChannelCondition":{"type":"string","description":"The rule attached to the delivery method. This parameter is applicable only to delivery methods of the MNS type. Please refer to api [PutDeliveryChannel](https://www.alibabacloud.com/help/en/doc-detail/174253.htm) for example format.\n"},"deliveryChannelName":{"type":"string","description":"The name of the delivery channel.\n"},"deliveryChannelTargetArn":{"type":"string","description":"The ARN of the delivery destination. This parameter is required when you create a delivery method. The value must be in one of the following formats:\n- `acs:oss:{RegionId}:{Aliuid}:{bucketName}`: if your delivery destination is an Object Storage Service (OSS) bucket.\n- `acs:mns:{RegionId}:{Aliuid}:/topics/{topicName}`: if your delivery destination is a Message Service (MNS) topic.\n- `acs:log:{RegionId}:{Aliuid}:project/{projectName}/logstore/{logstoreName}`: if your delivery destination is a Log Service Logstore.\n"},"deliveryChannelType":{"type":"string","description":"The type of the delivery method. This parameter is required when you create a delivery method. Valid values: `OSS`: Object Storage, `MNS`: Message Service, `SLS`: Log Service.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the delivery method.\n"},"status":{"type":"integer","description":"The status of the delivery method. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: The delivery method is disabled., \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: The delivery destination is enabled. This is the default value.\n"}},"type":"object"}},"alicloud:cfg/remediation:Remediation":{"description":"Provides a Config Remediation resource.\n\nFor information about Config Remediation and how to use it, see [What is Remediation](https://www.alibabacloud.com/help/en/cloud-config/latest/api-config-2020-09-07-createremediation).\n\n\u003e **NOTE:** Available since v1.204.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example-oss\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {\n    bucket: `${name}-${defaultInteger.result}`,\n    tags: {\n        For: \"example\",\n    },\n});\nconst nameBucketAcl = new alicloud.oss.BucketAcl(\"name\", {\n    bucket: defaultBucket.bucket,\n    acl: \"public-read\",\n});\nconst defaultRule = new alicloud.cfg.Rule(\"default\", {\n    description: \"If the ACL policy of the OSS bucket denies read access from the Internet, the configuration is considered compliant.\",\n    sourceOwner: \"ALIYUN\",\n    sourceIdentifier: \"oss-bucket-public-read-prohibited\",\n    riskLevel: 1,\n    tagKeyScope: \"For\",\n    tagValueScope: \"example\",\n    regionIdsScope: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    configRuleTriggerTypes: \"ConfigurationItemChangeNotification\",\n    resourceTypesScopes: [\"ACS::OSS::Bucket\"],\n    ruleName: \"oss-bucket-public-read-prohibited\",\n});\nconst defaultRemediation = new alicloud.cfg.Remediation(\"default\", {\n    configRuleId: defaultRule.configRuleId,\n    remediationTemplateId: \"ACS-OSS-PutBucketAcl\",\n    remediationSourceType: \"ALIYUN\",\n    invokeType: \"MANUAL_EXECUTION\",\n    params: Promise.all([defaultBucket.bucket, _default]).then(([bucket, _default]) =\u003e `{\"bucketName\": \"${bucket}\", \"regionId\": \"${_default.regions?.[0]?.id}\", \"permissionName\": \"private\"}`),\n    remediationType: \"OOS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example-oss\"\ndefault = alicloud.get_regions(current=True)\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_bucket = alicloud.oss.Bucket(\"default\",\n    bucket=f\"{name}-{default_integer['result']}\",\n    tags={\n        \"For\": \"example\",\n    })\nname_bucket_acl = alicloud.oss.BucketAcl(\"name\",\n    bucket=default_bucket.bucket,\n    acl=\"public-read\")\ndefault_rule = alicloud.cfg.Rule(\"default\",\n    description=\"If the ACL policy of the OSS bucket denies read access from the Internet, the configuration is considered compliant.\",\n    source_owner=\"ALIYUN\",\n    source_identifier=\"oss-bucket-public-read-prohibited\",\n    risk_level=1,\n    tag_key_scope=\"For\",\n    tag_value_scope=\"example\",\n    region_ids_scope=default.regions[0].id,\n    config_rule_trigger_types=\"ConfigurationItemChangeNotification\",\n    resource_types_scopes=[\"ACS::OSS::Bucket\"],\n    rule_name=\"oss-bucket-public-read-prohibited\")\ndefault_remediation = alicloud.cfg.Remediation(\"default\",\n    config_rule_id=default_rule.config_rule_id,\n    remediation_template_id=\"ACS-OSS-PutBucketAcl\",\n    remediation_source_type=\"ALIYUN\",\n    invoke_type=\"MANUAL_EXECUTION\",\n    params=default_bucket.bucket.apply(lambda bucket: f\"{{\\\"bucketName\\\": \\\"{bucket}\\\", \\\"regionId\\\": \\\"{default.regions[0].id}\\\", \\\"permissionName\\\": \\\"private\\\"}}\"),\n    remediation_type=\"OOS\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example-oss\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = $\"{name}-{defaultInteger.Result}\",\n        Tags = \n        {\n            { \"For\", \"example\" },\n        },\n    });\n\n    var nameBucketAcl = new AliCloud.Oss.BucketAcl(\"name\", new()\n    {\n        Bucket = defaultBucket.BucketName,\n        Acl = \"public-read\",\n    });\n\n    var defaultRule = new AliCloud.Cfg.Rule(\"default\", new()\n    {\n        Description = \"If the ACL policy of the OSS bucket denies read access from the Internet, the configuration is considered compliant.\",\n        SourceOwner = \"ALIYUN\",\n        SourceIdentifier = \"oss-bucket-public-read-prohibited\",\n        RiskLevel = 1,\n        TagKeyScope = \"For\",\n        TagValueScope = \"example\",\n        RegionIdsScope = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        ConfigRuleTriggerTypes = \"ConfigurationItemChangeNotification\",\n        ResourceTypesScopes = new[]\n        {\n            \"ACS::OSS::Bucket\",\n        },\n        RuleName = \"oss-bucket-public-read-prohibited\",\n    });\n\n    var defaultRemediation = new AliCloud.Cfg.Remediation(\"default\", new()\n    {\n        ConfigRuleId = defaultRule.ConfigRuleId,\n        RemediationTemplateId = \"ACS-OSS-PutBucketAcl\",\n        RemediationSourceType = \"ALIYUN\",\n        InvokeType = \"MANUAL_EXECUTION\",\n        Params = Output.Tuple(defaultBucket.BucketName, @default).Apply(values =\u003e\n        {\n            var bucket = values.Item1;\n            var @default = values.Item2;\n            return $\"{{\\\"bucketName\\\": \\\"{bucket}\\\", \\\"regionId\\\": \\\"{@default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}\\\", \\\"permissionName\\\": \\\"private\\\"}}\";\n        }),\n        RemediationType = \"OOS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example-oss\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"For\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"name\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: defaultBucket.Bucket,\n\t\t\tAcl:    pulumi.String(\"public-read\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRule, err := cfg.NewRule(ctx, \"default\", \u0026cfg.RuleArgs{\n\t\t\tDescription:            pulumi.String(\"If the ACL policy of the OSS bucket denies read access from the Internet, the configuration is considered compliant.\"),\n\t\t\tSourceOwner:            pulumi.String(\"ALIYUN\"),\n\t\t\tSourceIdentifier:       pulumi.String(\"oss-bucket-public-read-prohibited\"),\n\t\t\tRiskLevel:              pulumi.Int(1),\n\t\t\tTagKeyScope:            pulumi.String(\"For\"),\n\t\t\tTagValueScope:          pulumi.String(\"example\"),\n\t\t\tRegionIdsScope:         pulumi.String(_default.Regions[0].Id),\n\t\t\tConfigRuleTriggerTypes: pulumi.String(\"ConfigurationItemChangeNotification\"),\n\t\t\tResourceTypesScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ACS::OSS::Bucket\"),\n\t\t\t},\n\t\t\tRuleName: pulumi.String(\"oss-bucket-public-read-prohibited\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cfg.NewRemediation(ctx, \"default\", \u0026cfg.RemediationArgs{\n\t\t\tConfigRuleId:          defaultRule.ConfigRuleId,\n\t\t\tRemediationTemplateId: pulumi.String(\"ACS-OSS-PutBucketAcl\"),\n\t\t\tRemediationSourceType: pulumi.String(\"ALIYUN\"),\n\t\t\tInvokeType:            pulumi.String(\"MANUAL_EXECUTION\"),\n\t\t\tParams: defaultBucket.Bucket.ApplyT(func(bucket string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"{\\\"bucketName\\\": \\\"%v\\\", \\\"regionId\\\": \\\"%v\\\", \\\"permissionName\\\": \\\"private\\\"}\", bucket, _default.Regions[0].Id), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tRemediationType: pulumi.String(\"OOS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport com.pulumi.alicloud.cfg.Rule;\nimport com.pulumi.alicloud.cfg.RuleArgs;\nimport com.pulumi.alicloud.cfg.Remediation;\nimport com.pulumi.alicloud.cfg.RemediationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example-oss\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .tags(Map.of(\"For\", \"example\"))\n            .build());\n\n        var nameBucketAcl = new BucketAcl(\"nameBucketAcl\", BucketAclArgs.builder()\n            .bucket(defaultBucket.bucket())\n            .acl(\"public-read\")\n            .build());\n\n        var defaultRule = new Rule(\"defaultRule\", RuleArgs.builder()\n            .description(\"If the ACL policy of the OSS bucket denies read access from the Internet, the configuration is considered compliant.\")\n            .sourceOwner(\"ALIYUN\")\n            .sourceIdentifier(\"oss-bucket-public-read-prohibited\")\n            .riskLevel(1)\n            .tagKeyScope(\"For\")\n            .tagValueScope(\"example\")\n            .regionIdsScope(default_.regions()[0].id())\n            .configRuleTriggerTypes(\"ConfigurationItemChangeNotification\")\n            .resourceTypesScopes(\"ACS::OSS::Bucket\")\n            .ruleName(\"oss-bucket-public-read-prohibited\")\n            .build());\n\n        var defaultRemediation = new Remediation(\"defaultRemediation\", RemediationArgs.builder()\n            .configRuleId(defaultRule.configRuleId())\n            .remediationTemplateId(\"ACS-OSS-PutBucketAcl\")\n            .remediationSourceType(\"ALIYUN\")\n            .invokeType(\"MANUAL_EXECUTION\")\n            .params(defaultBucket.bucket().applyValue(_bucket -\u003e String.format(\"{{\\\"bucketName\\\": \\\"%s\\\", \\\"regionId\\\": \\\"%s\\\", \\\"permissionName\\\": \\\"private\\\"}}\", _bucket,default_.regions()[0].id())))\n            .remediationType(\"OOS\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example-oss\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket: ${name}-${defaultInteger.result}\n      tags:\n        For: example\n  nameBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: name\n    properties:\n      bucket: ${defaultBucket.bucket}\n      acl: public-read\n  defaultRule:\n    type: alicloud:cfg:Rule\n    name: default\n    properties:\n      description: If the ACL policy of the OSS bucket denies read access from the Internet, the configuration is considered compliant.\n      sourceOwner: ALIYUN\n      sourceIdentifier: oss-bucket-public-read-prohibited\n      riskLevel: 1\n      tagKeyScope: For\n      tagValueScope: example\n      regionIdsScope: ${default.regions[0].id}\n      configRuleTriggerTypes: ConfigurationItemChangeNotification\n      resourceTypesScopes:\n        - ACS::OSS::Bucket\n      ruleName: oss-bucket-public-read-prohibited\n  defaultRemediation:\n    type: alicloud:cfg:Remediation\n    name: default\n    properties:\n      configRuleId: ${defaultRule.configRuleId}\n      remediationTemplateId: ACS-OSS-PutBucketAcl\n      remediationSourceType: ALIYUN\n      invokeType: MANUAL_EXECUTION\n      params: '{\"bucketName\": \"${defaultBucket.bucket}\", \"regionId\": \"${default.regions[0].id}\", \"permissionName\": \"private\"}'\n      remediationType: OOS\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nConfig Remediation can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cfg/remediation:Remediation example \u003cid\u003e\n```\n\n","properties":{"configRuleId":{"type":"string","description":"Rule ID.\n"},"invokeType":{"type":"string","description":"Execution type, valid values: `Manual`, `Automatic`.\n"},"params":{"type":"string","description":"Remediation parameter.\n"},"remediationId":{"type":"string","description":"Remediation ID.\n"},"remediationSourceType":{"type":"string","description":"Remediation resource type, valid values: `ALIYUN` , `CUSTOMER`.\n"},"remediationTemplateId":{"type":"string","description":"Remediation template ID.\n"},"remediationType":{"type":"string","description":"Remediation type, valid values: `OOS`, `FC`.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["configRuleId","invokeType","params","remediationId","remediationSourceType","remediationTemplateId","remediationType"],"inputProperties":{"configRuleId":{"type":"string","description":"Rule ID.\n","willReplaceOnChanges":true},"invokeType":{"type":"string","description":"Execution type, valid values: `Manual`, `Automatic`.\n"},"params":{"type":"string","description":"Remediation parameter.\n"},"remediationSourceType":{"type":"string","description":"Remediation resource type, valid values: `ALIYUN` , `CUSTOMER`.\n","willReplaceOnChanges":true},"remediationTemplateId":{"type":"string","description":"Remediation template ID.\n"},"remediationType":{"type":"string","description":"Remediation type, valid values: `OOS`, `FC`.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"requiredInputs":["configRuleId","invokeType","params","remediationTemplateId","remediationType"],"stateInputs":{"description":"Input properties used for looking up and filtering Remediation resources.\n","properties":{"configRuleId":{"type":"string","description":"Rule ID.\n","willReplaceOnChanges":true},"invokeType":{"type":"string","description":"Execution type, valid values: `Manual`, `Automatic`.\n"},"params":{"type":"string","description":"Remediation parameter.\n"},"remediationId":{"type":"string","description":"Remediation ID.\n"},"remediationSourceType":{"type":"string","description":"Remediation resource type, valid values: `ALIYUN` , `CUSTOMER`.\n","willReplaceOnChanges":true},"remediationTemplateId":{"type":"string","description":"Remediation template ID.\n"},"remediationType":{"type":"string","description":"Remediation type, valid values: `OOS`, `FC`.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cfg/reportTemplate:ReportTemplate":{"description":"Provides a Cloud Config (Config) Report Template resource.\n\nConfig Compliance Report Template.\n\nFor information about Cloud Config (Config) Report Template and how to use it, see [What is Report Template](https://next.api.alibabacloud.com/document/Config/2020-09-07/CreateReportTemplate).\n\n\u003e **NOTE:** Available since v1.266.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cfg.ReportTemplate(\"default\", {\n    reportGranularity: \"AllInOne\",\n    reportScopes: [{\n        key: \"RuleId\",\n        value: \"cr-xxx\",\n        matchType: \"In\",\n    }],\n    reportFileFormats: \"excel\",\n    reportTemplateName: \"example-name\",\n    reportTemplateDescription: \"example-desc\",\n    subscriptionFrequency: \" \",\n    reportLanguage: \"en-US\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cfg.ReportTemplate(\"default\",\n    report_granularity=\"AllInOne\",\n    report_scopes=[{\n        \"key\": \"RuleId\",\n        \"value\": \"cr-xxx\",\n        \"match_type\": \"In\",\n    }],\n    report_file_formats=\"excel\",\n    report_template_name=\"example-name\",\n    report_template_description=\"example-desc\",\n    subscription_frequency=\" \",\n    report_language=\"en-US\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Cfg.ReportTemplate(\"default\", new()\n    {\n        ReportGranularity = \"AllInOne\",\n        ReportScopes = new[]\n        {\n            new AliCloud.Cfg.Inputs.ReportTemplateReportScopeArgs\n            {\n                Key = \"RuleId\",\n                Value = \"cr-xxx\",\n                MatchType = \"In\",\n            },\n        },\n        ReportFileFormats = \"excel\",\n        ReportTemplateName = \"example-name\",\n        ReportTemplateDescription = \"example-desc\",\n        SubscriptionFrequency = \" \",\n        ReportLanguage = \"en-US\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cfg.NewReportTemplate(ctx, \"default\", \u0026cfg.ReportTemplateArgs{\n\t\t\tReportGranularity: pulumi.String(\"AllInOne\"),\n\t\t\tReportScopes: cfg.ReportTemplateReportScopeArray{\n\t\t\t\t\u0026cfg.ReportTemplateReportScopeArgs{\n\t\t\t\t\tKey:       pulumi.String(\"RuleId\"),\n\t\t\t\t\tValue:     pulumi.String(\"cr-xxx\"),\n\t\t\t\t\tMatchType: pulumi.String(\"In\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tReportFileFormats:         pulumi.String(\"excel\"),\n\t\t\tReportTemplateName:        pulumi.String(\"example-name\"),\n\t\t\tReportTemplateDescription: pulumi.String(\"example-desc\"),\n\t\t\tSubscriptionFrequency:     pulumi.String(\" \"),\n\t\t\tReportLanguage:            pulumi.String(\"en-US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cfg.ReportTemplate;\nimport com.pulumi.alicloud.cfg.ReportTemplateArgs;\nimport com.pulumi.alicloud.cfg.inputs.ReportTemplateReportScopeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ReportTemplate(\"default\", ReportTemplateArgs.builder()\n            .reportGranularity(\"AllInOne\")\n            .reportScopes(ReportTemplateReportScopeArgs.builder()\n                .key(\"RuleId\")\n                .value(\"cr-xxx\")\n                .matchType(\"In\")\n                .build())\n            .reportFileFormats(\"excel\")\n            .reportTemplateName(\"example-name\")\n            .reportTemplateDescription(\"example-desc\")\n            .subscriptionFrequency(\" \")\n            .reportLanguage(\"en-US\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cfg:ReportTemplate\n    properties:\n      reportGranularity: AllInOne\n      reportScopes:\n        - key: RuleId\n          value: cr-xxx\n          matchType: In\n      reportFileFormats: excel\n      reportTemplateName: example-name\n      reportTemplateDescription: example-desc\n      subscriptionFrequency: ' '\n      reportLanguage: en-US\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Config (Config) Report Template can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cfg/reportTemplate:ReportTemplate example \u003cid\u003e\n```\n\n","properties":{"reportFileFormats":{"type":"string","description":"Report Format\n"},"reportGranularity":{"type":"string","description":"Report Aggregation Granularity\n"},"reportLanguage":{"type":"string","description":"This property does not have a description in the spec, please add it before generating code.\n"},"reportScopes":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/ReportTemplateReportScope:ReportTemplateReportScope"},"description":"Report range, yes and logic between multiple sets of k-v pairs. See \u003cspan pulumi-lang-nodejs=\"`reportScope`\" pulumi-lang-dotnet=\"`ReportScope`\" pulumi-lang-go=\"`reportScope`\" pulumi-lang-python=\"`report_scope`\" pulumi-lang-yaml=\"`reportScope`\" pulumi-lang-java=\"`reportScope`\"\u003e`report_scope`\u003c/span\u003e below.\n"},"reportTemplateDescription":{"type":"string","description":"Report Template Description\n"},"reportTemplateName":{"type":"string","description":"Report Template Name\n"},"subscriptionFrequency":{"type":"string","description":"Report subscription frequency. If this field is not empty, it is a Cron expression in Quartz format triggered by the subscription notification.\n\nThe format is: Seconds, time, day, month, week. The following are examples of commonly used Cron expressions:\n- Execute at 0 o'clock every day: 0 0 0 * *?\n- Every Monday at 15: 30: 0 30 15? * MON\n- Execute at 2 o'clock on the 1st of each month: 0 0 2 1 *?\n\nAmong them:\n-\"*\" Indicates any value\n- What-? Used for day and week fields, indicating that no specific value is specified\n- MON means Monday\n\n\u003e **NOTE:**  The trigger time is UTC +8, and the settings of the cron expression can be converted according to the time zone.\n\n\u003e **NOTE:**  It can only be triggered according to the cron expression time as much as possible. The cron expression limits the same template to trigger at most one notification per day.\n"}},"required":["reportTemplateName"],"inputProperties":{"reportFileFormats":{"type":"string","description":"Report Format\n"},"reportGranularity":{"type":"string","description":"Report Aggregation Granularity\n"},"reportLanguage":{"type":"string","description":"This property does not have a description in the spec, please add it before generating code.\n"},"reportScopes":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/ReportTemplateReportScope:ReportTemplateReportScope"},"description":"Report range, yes and logic between multiple sets of k-v pairs. See \u003cspan pulumi-lang-nodejs=\"`reportScope`\" pulumi-lang-dotnet=\"`ReportScope`\" pulumi-lang-go=\"`reportScope`\" pulumi-lang-python=\"`report_scope`\" pulumi-lang-yaml=\"`reportScope`\" pulumi-lang-java=\"`reportScope`\"\u003e`report_scope`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"reportTemplateDescription":{"type":"string","description":"Report Template Description\n"},"reportTemplateName":{"type":"string","description":"Report Template Name\n"},"subscriptionFrequency":{"type":"string","description":"Report subscription frequency. If this field is not empty, it is a Cron expression in Quartz format triggered by the subscription notification.\n\nThe format is: Seconds, time, day, month, week. The following are examples of commonly used Cron expressions:\n- Execute at 0 o'clock every day: 0 0 0 * *?\n- Every Monday at 15: 30: 0 30 15? * MON\n- Execute at 2 o'clock on the 1st of each month: 0 0 2 1 *?\n\nAmong them:\n-\"*\" Indicates any value\n- What-? Used for day and week fields, indicating that no specific value is specified\n- MON means Monday\n\n\u003e **NOTE:**  The trigger time is UTC +8, and the settings of the cron expression can be converted according to the time zone.\n\n\u003e **NOTE:**  It can only be triggered according to the cron expression time as much as possible. The cron expression limits the same template to trigger at most one notification per day.\n"}},"requiredInputs":["reportTemplateName"],"stateInputs":{"description":"Input properties used for looking up and filtering ReportTemplate resources.\n","properties":{"reportFileFormats":{"type":"string","description":"Report Format\n"},"reportGranularity":{"type":"string","description":"Report Aggregation Granularity\n"},"reportLanguage":{"type":"string","description":"This property does not have a description in the spec, please add it before generating code.\n"},"reportScopes":{"type":"array","items":{"$ref":"#/types/alicloud:cfg/ReportTemplateReportScope:ReportTemplateReportScope"},"description":"Report range, yes and logic between multiple sets of k-v pairs. See \u003cspan pulumi-lang-nodejs=\"`reportScope`\" pulumi-lang-dotnet=\"`ReportScope`\" pulumi-lang-go=\"`reportScope`\" pulumi-lang-python=\"`report_scope`\" pulumi-lang-yaml=\"`reportScope`\" pulumi-lang-java=\"`reportScope`\"\u003e`report_scope`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"reportTemplateDescription":{"type":"string","description":"Report Template Description\n"},"reportTemplateName":{"type":"string","description":"Report Template Name\n"},"subscriptionFrequency":{"type":"string","description":"Report subscription frequency. If this field is not empty, it is a Cron expression in Quartz format triggered by the subscription notification.\n\nThe format is: Seconds, time, day, month, week. The following are examples of commonly used Cron expressions:\n- Execute at 0 o'clock every day: 0 0 0 * *?\n- Every Monday at 15: 30: 0 30 15? * MON\n- Execute at 2 o'clock on the 1st of each month: 0 0 2 1 *?\n\nAmong them:\n-\"*\" Indicates any value\n- What-? Used for day and week fields, indicating that no specific value is specified\n- MON means Monday\n\n\u003e **NOTE:**  The trigger time is UTC +8, and the settings of the cron expression can be converted according to the time zone.\n\n\u003e **NOTE:**  It can only be triggered according to the cron expression time as much as possible. The cron expression limits the same template to trigger at most one notification per day.\n"}},"type":"object"},"aliases":[{"type":"alicloud:config/reportTemplate:ReportTemplate"}]},"alicloud:cfg/rule:Rule":{"description":"Provides a Config Rule resource.\n\nFor information about Config Rule and how to use it, see [What is Rule](https://www.alibabacloud.com/help/en/cloud-config/latest/api-config-2020-09-07-createconfigrule).\n\n\u003e **NOTE:** Available since v1.204.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultRule = new alicloud.cfg.Rule(\"default\", {\n    description: \"If the resource matches one of the specified tag key-value pairs, the configuration is considered compliant.\",\n    sourceOwner: \"ALIYUN\",\n    sourceIdentifier: \"contains-tag\",\n    riskLevel: 1,\n    tagValueScope: \"example-value\",\n    tagKeyScope: \"example-key\",\n    excludeResourceIdsScope: \"example-resource_id\",\n    regionIdsScope: \"cn-hangzhou\",\n    configRuleTriggerTypes: \"ConfigurationItemChangeNotification\",\n    resourceGroupIdsScope: _default.then(_default =\u003e _default.ids?.[0]),\n    resourceTypesScopes: [\"ACS::RDS::DBInstance\"],\n    ruleName: \"contains-tag\",\n    inputParameters: {\n        key1: \"value1\",\n        key2: \"value2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_rule = alicloud.cfg.Rule(\"default\",\n    description=\"If the resource matches one of the specified tag key-value pairs, the configuration is considered compliant.\",\n    source_owner=\"ALIYUN\",\n    source_identifier=\"contains-tag\",\n    risk_level=1,\n    tag_value_scope=\"example-value\",\n    tag_key_scope=\"example-key\",\n    exclude_resource_ids_scope=\"example-resource_id\",\n    region_ids_scope=\"cn-hangzhou\",\n    config_rule_trigger_types=\"ConfigurationItemChangeNotification\",\n    resource_group_ids_scope=default.ids[0],\n    resource_types_scopes=[\"ACS::RDS::DBInstance\"],\n    rule_name=\"contains-tag\",\n    input_parameters={\n        \"key1\": \"value1\",\n        \"key2\": \"value2\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultRule = new AliCloud.Cfg.Rule(\"default\", new()\n    {\n        Description = \"If the resource matches one of the specified tag key-value pairs, the configuration is considered compliant.\",\n        SourceOwner = \"ALIYUN\",\n        SourceIdentifier = \"contains-tag\",\n        RiskLevel = 1,\n        TagValueScope = \"example-value\",\n        TagKeyScope = \"example-key\",\n        ExcludeResourceIdsScope = \"example-resource_id\",\n        RegionIdsScope = \"cn-hangzhou\",\n        ConfigRuleTriggerTypes = \"ConfigurationItemChangeNotification\",\n        ResourceGroupIdsScope = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        ResourceTypesScopes = new[]\n        {\n            \"ACS::RDS::DBInstance\",\n        },\n        RuleName = \"contains-tag\",\n        InputParameters = \n        {\n            { \"key1\", \"value1\" },\n            { \"key2\", \"value2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cfg.NewRule(ctx, \"default\", \u0026cfg.RuleArgs{\n\t\t\tDescription:             pulumi.String(\"If the resource matches one of the specified tag key-value pairs, the configuration is considered compliant.\"),\n\t\t\tSourceOwner:             pulumi.String(\"ALIYUN\"),\n\t\t\tSourceIdentifier:        pulumi.String(\"contains-tag\"),\n\t\t\tRiskLevel:               pulumi.Int(1),\n\t\t\tTagValueScope:           pulumi.String(\"example-value\"),\n\t\t\tTagKeyScope:             pulumi.String(\"example-key\"),\n\t\t\tExcludeResourceIdsScope: pulumi.String(\"example-resource_id\"),\n\t\t\tRegionIdsScope:          pulumi.String(\"cn-hangzhou\"),\n\t\t\tConfigRuleTriggerTypes:  pulumi.String(\"ConfigurationItemChangeNotification\"),\n\t\t\tResourceGroupIdsScope:   pulumi.String(_default.Ids[0]),\n\t\t\tResourceTypesScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ACS::RDS::DBInstance\"),\n\t\t\t},\n\t\t\tRuleName: pulumi.String(\"contains-tag\"),\n\t\t\tInputParameters: pulumi.StringMap{\n\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\"key2\": pulumi.String(\"value2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.cfg.Rule;\nimport com.pulumi.alicloud.cfg.RuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var defaultRule = new Rule(\"defaultRule\", RuleArgs.builder()\n            .description(\"If the resource matches one of the specified tag key-value pairs, the configuration is considered compliant.\")\n            .sourceOwner(\"ALIYUN\")\n            .sourceIdentifier(\"contains-tag\")\n            .riskLevel(1)\n            .tagValueScope(\"example-value\")\n            .tagKeyScope(\"example-key\")\n            .excludeResourceIdsScope(\"example-resource_id\")\n            .regionIdsScope(\"cn-hangzhou\")\n            .configRuleTriggerTypes(\"ConfigurationItemChangeNotification\")\n            .resourceGroupIdsScope(default_.ids()[0])\n            .resourceTypesScopes(\"ACS::RDS::DBInstance\")\n            .ruleName(\"contains-tag\")\n            .inputParameters(Map.ofEntries(\n                Map.entry(\"key1\", \"value1\"),\n                Map.entry(\"key2\", \"value2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultRule:\n    type: alicloud:cfg:Rule\n    name: default\n    properties:\n      description: If the resource matches one of the specified tag key-value pairs, the configuration is considered compliant.\n      sourceOwner: ALIYUN\n      sourceIdentifier: contains-tag\n      riskLevel: 1\n      tagValueScope: example-value\n      tagKeyScope: example-key\n      excludeResourceIdsScope: example-resource_id\n      regionIdsScope: cn-hangzhou\n      configRuleTriggerTypes: ConfigurationItemChangeNotification\n      resourceGroupIdsScope: ${default.ids[0]}\n      resourceTypesScopes:\n        - ACS::RDS::DBInstance\n      ruleName: contains-tag\n      inputParameters:\n        key1: value1\n        key2: value2\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nConfig Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cfg/rule:Rule example \u003cid\u003e\n```\n\n","properties":{"accountId":{"type":"integer","description":"The ID of Alicloud account.\n"},"compliance":{"$ref":"#/types/alicloud:cfg/RuleCompliance:RuleCompliance","description":"compliance information.\n"},"compliancePackId":{"type":"string","description":"Compliance Package ID.\n"},"configRuleArn":{"type":"string","description":"config rule arn.\n"},"configRuleId":{"type":"string","description":"The ID of the rule.\n"},"configRuleTriggerTypes":{"type":"string","description":"The trigger type of the rule. Valid values:  `ConfigurationItemChangeNotification`: The rule is triggered upon configuration changes. `ScheduledNotification`: The rule is triggered as scheduled.\n"},"createTime":{"type":"integer","description":"The timestamp when the rule was created.\n"},"description":{"type":"string","description":"The description of the rule.\n"},"eventSource":{"type":"string","description":"The event source of the rule.\n"},"excludeResourceIdsScope":{"type":"string","description":"The rule monitors excluded resource IDs, multiple of which are separated by commas, only applies to rules created based on managed rules, , custom rule this field is empty.\n"},"inputParameters":{"type":"object","additionalProperties":{"type":"string"},"description":"The settings of the input parameters for the rule.\n"},"maximumExecutionFrequency":{"type":"string","description":"The frequency of the compliance evaluations, it is required if the ConfigRuleTriggerTypes value is ScheduledNotification. Valid values:  `One_Hour`, `Three_Hours`, `Six_Hours`, `Twelve_Hours`, `TwentyFour_Hours`.\n"},"modifiedTimestamp":{"type":"integer","description":"The timestamp when the rule was last modified.\n"},"regionIdsScope":{"type":"string","description":"The rule monitors region IDs, separated by commas, only applies to rules created based on managed rules.\n"},"resourceGroupIdsScope":{"type":"string","description":"The rule monitors resource group IDs, separated by commas, only applies to rules created based on managed rules.\n"},"resourceTypesScopes":{"type":"array","items":{"type":"string"},"description":"The types of the resources to be evaluated against the rule.\n"},"riskLevel":{"type":"integer","description":"The risk level of the resources that are not compliant with the rule. Valid values:  \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: critical \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: warning \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: info\n"},"ruleName":{"type":"string","description":"The name of the rule.\n"},"scopeComplianceResourceTypes":{"type":"string","description":"Field 'scope_compliance_resource_types' has been deprecated from provider version 1.124.1. New field 'resource_types_scope' instead.\n","deprecationMessage":"Field 'scope_compliance_resource_types' has been deprecated from provider version 1.124.1. New field 'resource_types_scope' instead."},"sourceDetailMessageType":{"type":"string","description":"Field 'source_detail_message_type' has been deprecated from provider version 1.124.1. New field 'config_rule_trigger_types' instead.\n","deprecationMessage":"Field 'source_detail_message_type' has been deprecated from provider version 1.124.1. New field 'config_rule_trigger_types' instead."},"sourceIdentifier":{"type":"string","description":"The identifier of the rule.  For a managed rule, the value is the name of the managed rule. For a custom rule, the value is the ARN of the custom rule.\n"},"sourceMaximumExecutionFrequency":{"type":"string","description":"Field 'source_maximum_execution_frequency' has been deprecated from provider version 1.124.1. New field 'maximum_execution_frequency' instead.\n","deprecationMessage":"Field 'source_maximum_execution_frequency' has been deprecated from provider version 1.124.1. New field 'maximum_execution_frequency' instead."},"sourceOwner":{"type":"string","description":"Specifies whether you or Alibaba Cloud owns and manages the rule. Valid values:  `CUSTOM_FC`: The rule is a custom rule and you own the rule. `ALIYUN`: The rule is a managed rule and Alibaba Cloud owns the rule\n"},"status":{"type":"string","description":"The status of the rule. Valid values: ACTIVE: The rule is monitoring the configurations of target resources. DELETING_RESULTS: The compliance evaluation result returned by the rule is being deleted. EVALUATING: The rule is triggered and is evaluating whether the configurations of target resources are compliant. INACTIVE: The rule is disabled from monitoring the configurations of target resources.\n"},"tagKeyScope":{"type":"string","description":"The rule monitors the tag key, only applies to rules created based on managed rules.\n"},"tagValueScope":{"type":"string","description":"The rule monitors the tag value, only applies to rules created based on managed rules.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["accountId","compliance","compliancePackId","configRuleArn","configRuleId","configRuleTriggerTypes","createTime","eventSource","maximumExecutionFrequency","modifiedTimestamp","resourceTypesScopes","riskLevel","ruleName","scopeComplianceResourceTypes","sourceDetailMessageType","sourceIdentifier","sourceMaximumExecutionFrequency","sourceOwner","status"],"inputProperties":{"configRuleTriggerTypes":{"type":"string","description":"The trigger type of the rule. Valid values:  `ConfigurationItemChangeNotification`: The rule is triggered upon configuration changes. `ScheduledNotification`: The rule is triggered as scheduled.\n"},"description":{"type":"string","description":"The description of the rule.\n"},"excludeResourceIdsScope":{"type":"string","description":"The rule monitors excluded resource IDs, multiple of which are separated by commas, only applies to rules created based on managed rules, , custom rule this field is empty.\n"},"inputParameters":{"type":"object","additionalProperties":{"type":"string"},"description":"The settings of the input parameters for the rule.\n"},"maximumExecutionFrequency":{"type":"string","description":"The frequency of the compliance evaluations, it is required if the ConfigRuleTriggerTypes value is ScheduledNotification. Valid values:  `One_Hour`, `Three_Hours`, `Six_Hours`, `Twelve_Hours`, `TwentyFour_Hours`.\n"},"regionIdsScope":{"type":"string","description":"The rule monitors region IDs, separated by commas, only applies to rules created based on managed rules.\n"},"resourceGroupIdsScope":{"type":"string","description":"The rule monitors resource group IDs, separated by commas, only applies to rules created based on managed rules.\n"},"resourceTypesScopes":{"type":"array","items":{"type":"string"},"description":"The types of the resources to be evaluated against the rule.\n"},"riskLevel":{"type":"integer","description":"The risk level of the resources that are not compliant with the rule. Valid values:  \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: critical \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: warning \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: info\n"},"ruleName":{"type":"string","description":"The name of the rule.\n","willReplaceOnChanges":true},"scopeComplianceResourceTypes":{"type":"string","description":"Field 'scope_compliance_resource_types' has been deprecated from provider version 1.124.1. New field 'resource_types_scope' instead.\n","deprecationMessage":"Field 'scope_compliance_resource_types' has been deprecated from provider version 1.124.1. New field 'resource_types_scope' instead."},"sourceDetailMessageType":{"type":"string","description":"Field 'source_detail_message_type' has been deprecated from provider version 1.124.1. New field 'config_rule_trigger_types' instead.\n","deprecationMessage":"Field 'source_detail_message_type' has been deprecated from provider version 1.124.1. New field 'config_rule_trigger_types' instead."},"sourceIdentifier":{"type":"string","description":"The identifier of the rule.  For a managed rule, the value is the name of the managed rule. For a custom rule, the value is the ARN of the custom rule.\n","willReplaceOnChanges":true},"sourceMaximumExecutionFrequency":{"type":"string","description":"Field 'source_maximum_execution_frequency' has been deprecated from provider version 1.124.1. New field 'maximum_execution_frequency' instead.\n","deprecationMessage":"Field 'source_maximum_execution_frequency' has been deprecated from provider version 1.124.1. New field 'maximum_execution_frequency' instead."},"sourceOwner":{"type":"string","description":"Specifies whether you or Alibaba Cloud owns and manages the rule. Valid values:  `CUSTOM_FC`: The rule is a custom rule and you own the rule. `ALIYUN`: The rule is a managed rule and Alibaba Cloud owns the rule\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the rule. Valid values: ACTIVE: The rule is monitoring the configurations of target resources. DELETING_RESULTS: The compliance evaluation result returned by the rule is being deleted. EVALUATING: The rule is triggered and is evaluating whether the configurations of target resources are compliant. INACTIVE: The rule is disabled from monitoring the configurations of target resources.\n"},"tagKeyScope":{"type":"string","description":"The rule monitors the tag key, only applies to rules created based on managed rules.\n"},"tagValueScope":{"type":"string","description":"The rule monitors the tag value, only applies to rules created based on managed rules.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"requiredInputs":["riskLevel","ruleName","sourceIdentifier","sourceOwner"],"stateInputs":{"description":"Input properties used for looking up and filtering Rule resources.\n","properties":{"accountId":{"type":"integer","description":"The ID of Alicloud account.\n"},"compliance":{"$ref":"#/types/alicloud:cfg/RuleCompliance:RuleCompliance","description":"compliance information.\n"},"compliancePackId":{"type":"string","description":"Compliance Package ID.\n"},"configRuleArn":{"type":"string","description":"config rule arn.\n"},"configRuleId":{"type":"string","description":"The ID of the rule.\n"},"configRuleTriggerTypes":{"type":"string","description":"The trigger type of the rule. Valid values:  `ConfigurationItemChangeNotification`: The rule is triggered upon configuration changes. `ScheduledNotification`: The rule is triggered as scheduled.\n"},"createTime":{"type":"integer","description":"The timestamp when the rule was created.\n"},"description":{"type":"string","description":"The description of the rule.\n"},"eventSource":{"type":"string","description":"The event source of the rule.\n"},"excludeResourceIdsScope":{"type":"string","description":"The rule monitors excluded resource IDs, multiple of which are separated by commas, only applies to rules created based on managed rules, , custom rule this field is empty.\n"},"inputParameters":{"type":"object","additionalProperties":{"type":"string"},"description":"The settings of the input parameters for the rule.\n"},"maximumExecutionFrequency":{"type":"string","description":"The frequency of the compliance evaluations, it is required if the ConfigRuleTriggerTypes value is ScheduledNotification. Valid values:  `One_Hour`, `Three_Hours`, `Six_Hours`, `Twelve_Hours`, `TwentyFour_Hours`.\n"},"modifiedTimestamp":{"type":"integer","description":"The timestamp when the rule was last modified.\n"},"regionIdsScope":{"type":"string","description":"The rule monitors region IDs, separated by commas, only applies to rules created based on managed rules.\n"},"resourceGroupIdsScope":{"type":"string","description":"The rule monitors resource group IDs, separated by commas, only applies to rules created based on managed rules.\n"},"resourceTypesScopes":{"type":"array","items":{"type":"string"},"description":"The types of the resources to be evaluated against the rule.\n"},"riskLevel":{"type":"integer","description":"The risk level of the resources that are not compliant with the rule. Valid values:  \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: critical \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: warning \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: info\n"},"ruleName":{"type":"string","description":"The name of the rule.\n","willReplaceOnChanges":true},"scopeComplianceResourceTypes":{"type":"string","description":"Field 'scope_compliance_resource_types' has been deprecated from provider version 1.124.1. New field 'resource_types_scope' instead.\n","deprecationMessage":"Field 'scope_compliance_resource_types' has been deprecated from provider version 1.124.1. New field 'resource_types_scope' instead."},"sourceDetailMessageType":{"type":"string","description":"Field 'source_detail_message_type' has been deprecated from provider version 1.124.1. New field 'config_rule_trigger_types' instead.\n","deprecationMessage":"Field 'source_detail_message_type' has been deprecated from provider version 1.124.1. New field 'config_rule_trigger_types' instead."},"sourceIdentifier":{"type":"string","description":"The identifier of the rule.  For a managed rule, the value is the name of the managed rule. For a custom rule, the value is the ARN of the custom rule.\n","willReplaceOnChanges":true},"sourceMaximumExecutionFrequency":{"type":"string","description":"Field 'source_maximum_execution_frequency' has been deprecated from provider version 1.124.1. New field 'maximum_execution_frequency' instead.\n","deprecationMessage":"Field 'source_maximum_execution_frequency' has been deprecated from provider version 1.124.1. New field 'maximum_execution_frequency' instead."},"sourceOwner":{"type":"string","description":"Specifies whether you or Alibaba Cloud owns and manages the rule. Valid values:  `CUSTOM_FC`: The rule is a custom rule and you own the rule. `ALIYUN`: The rule is a managed rule and Alibaba Cloud owns the rule\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the rule. Valid values: ACTIVE: The rule is monitoring the configurations of target resources. DELETING_RESULTS: The compliance evaluation result returned by the rule is being deleted. EVALUATING: The rule is triggered and is evaluating whether the configurations of target resources are compliant. INACTIVE: The rule is disabled from monitoring the configurations of target resources.\n"},"tagKeyScope":{"type":"string","description":"The rule monitors the tag key, only applies to rules created based on managed rules.\n"},"tagValueScope":{"type":"string","description":"The rule monitors the tag value, only applies to rules created based on managed rules.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"type":"object"}},"alicloud:chatbot/publishTask:PublishTask":{"description":"Provides a Chatbot Publish Task resource.\n\nFor information about Chatbot Publish Task and how to use it, see [What is Publish Task](https://help.aliyun.com/document_detail/433996.html).\n\n\u003e **NOTE:** Available since v1.203.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.chatbot.getAgents({});\nconst defaultPublishTask = new alicloud.chatbot.PublishTask(\"default\", {\n    bizType: \"faq\",\n    agentKey: _default.then(_default =\u003e _default.agents?.[0]?.agentKey),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.chatbot.get_agents()\ndefault_publish_task = alicloud.chatbot.PublishTask(\"default\",\n    biz_type=\"faq\",\n    agent_key=default.agents[0].agent_key)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Chatbot.GetAgents.Invoke();\n\n    var defaultPublishTask = new AliCloud.Chatbot.PublishTask(\"default\", new()\n    {\n        BizType = \"faq\",\n        AgentKey = @default.Apply(@default =\u003e @default.Apply(getAgentsResult =\u003e getAgentsResult.Agents[0]?.AgentKey)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/chatbot\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := chatbot.GetAgents(ctx, \u0026chatbot.GetAgentsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = chatbot.NewPublishTask(ctx, \"default\", \u0026chatbot.PublishTaskArgs{\n\t\t\tBizType:  pulumi.String(\"faq\"),\n\t\t\tAgentKey: pulumi.String(_default.Agents[0].AgentKey),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.chatbot.ChatbotFunctions;\nimport com.pulumi.alicloud.chatbot.inputs.GetAgentsArgs;\nimport com.pulumi.alicloud.chatbot.PublishTask;\nimport com.pulumi.alicloud.chatbot.PublishTaskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ChatbotFunctions.getAgents(GetAgentsArgs.builder()\n            .build());\n\n        var defaultPublishTask = new PublishTask(\"defaultPublishTask\", PublishTaskArgs.builder()\n            .bizType(\"faq\")\n            .agentKey(default_.agents()[0].agentKey())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultPublishTask:\n    type: alicloud:chatbot:PublishTask\n    name: default\n    properties:\n      bizType: faq\n      agentKey: ${default.agents[0].agentKey}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:chatbot:getAgents\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nChatbot Publish Task can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:chatbot/publishTask:PublishTask example \u003cid\u003e\n```\n\n","properties":{"agentKey":{"type":"string","description":"The business space key. If you do not set it, the default business space is accessed. The key value is obtained on the business management page of the primary account.\n"},"bizType":{"type":"string","description":"The type of the publishing unit. Please use the CreateInstancePublishTask API to publish the robot.\n"},"createTime":{"type":"string","description":"UTC time of task creation\n"},"dataIdLists":{"type":"array","items":{"type":"string"},"description":"Additional release information. Currently supported: If the BizType is faq, enter the category Id in this field to indicate that only the knowledge under these categories is published.\n"},"modifyTime":{"type":"string","description":"UTC time for task modification\n"},"status":{"type":"string","description":"The status of the task.\n"}},"required":["agentKey","bizType","createTime","modifyTime","status"],"inputProperties":{"agentKey":{"type":"string","description":"The business space key. If you do not set it, the default business space is accessed. The key value is obtained on the business management page of the primary account.\n"},"bizType":{"type":"string","description":"The type of the publishing unit. Please use the CreateInstancePublishTask API to publish the robot.\n","willReplaceOnChanges":true},"dataIdLists":{"type":"array","items":{"type":"string"},"description":"Additional release information. Currently supported: If the BizType is faq, enter the category Id in this field to indicate that only the knowledge under these categories is published.\n"}},"requiredInputs":["bizType"],"stateInputs":{"description":"Input properties used for looking up and filtering PublishTask resources.\n","properties":{"agentKey":{"type":"string","description":"The business space key. If you do not set it, the default business space is accessed. The key value is obtained on the business management page of the primary account.\n"},"bizType":{"type":"string","description":"The type of the publishing unit. Please use the CreateInstancePublishTask API to publish the robot.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"UTC time of task creation\n"},"dataIdLists":{"type":"array","items":{"type":"string"},"description":"Additional release information. Currently supported: If the BizType is faq, enter the category Id in this field to indicate that only the knowledge under these categories is published.\n"},"modifyTime":{"type":"string","description":"UTC time for task modification\n"},"status":{"type":"string","description":"The status of the task.\n"}},"type":"object"}},"alicloud:clickhouse/account:Account":{"description":"Provides a Click House Account resource.\n\nFor information about Click House Account and how to use it, see [What is Account](https://www.alibabacloud.com/help/zh/clickhouse/latest/api-clickhouse-2019-11-11-createaccount).\n\n\u003e **NOTE:** Available since v1.134.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst type = config.get(\"type\") || \"Normal\";\nconst _default = alicloud.clickhouse.getRegions({\n    current: true,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.regions?.[0]?.zoneIds?.[1]?.zoneId),\n});\nconst defaultDbCluster = new alicloud.clickhouse.DbCluster(\"default\", {\n    dbClusterVersion: \"22.8.5.29\",\n    category: \"Basic\",\n    dbClusterClass: \"S8\",\n    dbClusterNetworkType: \"vpc\",\n    dbNodeGroupCount: 1,\n    paymentType: \"PayAsYouGo\",\n    dbNodeStorage: \"500\",\n    storageType: \"cloud_essd\",\n    vswitchId: defaultSwitch.id,\n    vpcId: defaultNetwork.id,\n});\nconst defaultAccount = new alicloud.clickhouse.Account(\"default\", {\n    dbClusterId: defaultDbCluster.id,\n    accountDescription: \"tf-example-description\",\n    accountName: \"examplename\",\n    accountPassword: \"Example1234\",\n    type: type,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ntype = config.get(\"type\")\nif type is None:\n    type = \"Normal\"\ndefault = alicloud.clickhouse.get_regions(current=True)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.regions[0].zone_ids[1].zone_id)\ndefault_db_cluster = alicloud.clickhouse.DbCluster(\"default\",\n    db_cluster_version=\"22.8.5.29\",\n    category=\"Basic\",\n    db_cluster_class=\"S8\",\n    db_cluster_network_type=\"vpc\",\n    db_node_group_count=1,\n    payment_type=\"PayAsYouGo\",\n    db_node_storage=\"500\",\n    storage_type=\"cloud_essd\",\n    vswitch_id=default_switch.id,\n    vpc_id=default_network.id)\ndefault_account = alicloud.clickhouse.Account(\"default\",\n    db_cluster_id=default_db_cluster.id,\n    account_description=\"tf-example-description\",\n    account_name=\"examplename\",\n    account_password=\"Example1234\",\n    type=type)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var type = config.Get(\"type\") ?? \"Normal\";\n    var @default = AliCloud.ClickHouse.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.ZoneIds[1]?.ZoneId)),\n    });\n\n    var defaultDbCluster = new AliCloud.ClickHouse.DbCluster(\"default\", new()\n    {\n        DbClusterVersion = \"22.8.5.29\",\n        Category = \"Basic\",\n        DbClusterClass = \"S8\",\n        DbClusterNetworkType = \"vpc\",\n        DbNodeGroupCount = 1,\n        PaymentType = \"PayAsYouGo\",\n        DbNodeStorage = \"500\",\n        StorageType = \"cloud_essd\",\n        VswitchId = defaultSwitch.Id,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultAccount = new AliCloud.ClickHouse.Account(\"default\", new()\n    {\n        DbClusterId = defaultDbCluster.Id,\n        AccountDescription = \"tf-example-description\",\n        AccountName = \"examplename\",\n        AccountPassword = \"Example1234\",\n        Type = type,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/clickhouse\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_type := \"Normal\"\n\t\tif param := cfg.Get(\"type\"); param != \"\" {\n\t\t\t_type = param\n\t\t}\n\t\t_default, err := clickhouse.GetRegions(ctx, \u0026clickhouse.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Regions[0].ZoneIds[1].ZoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDbCluster, err := clickhouse.NewDbCluster(ctx, \"default\", \u0026clickhouse.DbClusterArgs{\n\t\t\tDbClusterVersion:     pulumi.String(\"22.8.5.29\"),\n\t\t\tCategory:             pulumi.String(\"Basic\"),\n\t\t\tDbClusterClass:       pulumi.String(\"S8\"),\n\t\t\tDbClusterNetworkType: pulumi.String(\"vpc\"),\n\t\t\tDbNodeGroupCount:     pulumi.Int(1),\n\t\t\tPaymentType:          pulumi.String(\"PayAsYouGo\"),\n\t\t\tDbNodeStorage:        pulumi.String(\"500\"),\n\t\t\tStorageType:          pulumi.String(\"cloud_essd\"),\n\t\t\tVswitchId:            defaultSwitch.ID(),\n\t\t\tVpcId:                defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = clickhouse.NewAccount(ctx, \"default\", \u0026clickhouse.AccountArgs{\n\t\t\tDbClusterId:        defaultDbCluster.ID(),\n\t\t\tAccountDescription: pulumi.String(\"tf-example-description\"),\n\t\t\tAccountName:        pulumi.String(\"examplename\"),\n\t\t\tAccountPassword:    pulumi.String(\"Example1234\"),\n\t\t\tType:               pulumi.String(_type),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.clickhouse.ClickhouseFunctions;\nimport com.pulumi.alicloud.clickhouse.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.clickhouse.DbCluster;\nimport com.pulumi.alicloud.clickhouse.DbClusterArgs;\nimport com.pulumi.alicloud.clickhouse.Account;\nimport com.pulumi.alicloud.clickhouse.AccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var type = config.get(\"type\").orElse(\"Normal\");\n        final var default = ClickhouseFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.regions()[0].zoneIds()[1].zoneId())\n            .build());\n\n        var defaultDbCluster = new DbCluster(\"defaultDbCluster\", DbClusterArgs.builder()\n            .dbClusterVersion(\"22.8.5.29\")\n            .category(\"Basic\")\n            .dbClusterClass(\"S8\")\n            .dbClusterNetworkType(\"vpc\")\n            .dbNodeGroupCount(1)\n            .paymentType(\"PayAsYouGo\")\n            .dbNodeStorage(\"500\")\n            .storageType(\"cloud_essd\")\n            .vswitchId(defaultSwitch.id())\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultAccount = new Account(\"defaultAccount\", AccountArgs.builder()\n            .dbClusterId(defaultDbCluster.id())\n            .accountDescription(\"tf-example-description\")\n            .accountName(\"examplename\")\n            .accountPassword(\"Example1234\")\n            .type(type)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\n  type:\n    type: string\n    default: Normal\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.regions[0].zoneIds[1].zoneId}\n  defaultDbCluster:\n    type: alicloud:clickhouse:DbCluster\n    name: default\n    properties:\n      dbClusterVersion: 22.8.5.29\n      category: Basic\n      dbClusterClass: S8\n      dbClusterNetworkType: vpc\n      dbNodeGroupCount: '1'\n      paymentType: PayAsYouGo\n      dbNodeStorage: '500'\n      storageType: cloud_essd\n      vswitchId: ${defaultSwitch.id}\n      vpcId: ${defaultNetwork.id}\n  defaultAccount:\n    type: alicloud:clickhouse:Account\n    name: default\n    properties:\n      dbClusterId: ${defaultDbCluster.id}\n      accountDescription: tf-example-description\n      accountName: examplename\n      accountPassword: Example1234\n      type: ${type}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:clickhouse:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nClick House Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:clickhouse/account:Account example \u003cdb_cluster_id\u003e:\u003caccount_name\u003e\n```\n\n","properties":{"accountDescription":{"type":"string","description":"In Chinese, English letter. May contain Chinese and English characters, lowercase letters, numbers, and underscores (_), the dash (-). Cannot start with http:// and https:// at the beginning. Length is from 2 to 256 characters.\n"},"accountName":{"type":"string","description":"Account name: lowercase letters, numbers, underscores, lowercase letter; length no more than 16 characters.\n"},"accountPassword":{"type":"string","description":"The account password: uppercase letters, lowercase letters, lowercase letters, numbers, and special characters (special character! #$%^\u0026 author (s):_+-=) in a length of 8-32 bit.\n"},"allowDatabases":{"type":"string","description":"The list of databases to which you want to grant permissions. Separate databases with commas (,).\n"},"allowDictionaries":{"type":"string","description":"The list of dictionaries to which you want to grant permissions. Separate dictionaries with commas (,).\n"},"dbClusterId":{"type":"string","description":"The db cluster id.\n"},"ddlAuthority":{"type":"boolean","description":"Specifies whether to grant DDL permissions to the database account. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dmlAuthority":{"type":"string","description":"Specifies whether to grant DML permissions to the database account. Valid values: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e and `readOnly,modify`.\n"},"status":{"type":"string","description":"The status of the resource. Valid Status: `Creating`,`Available`,`Deleting`.\n"},"totalDatabases":{"type":"string","description":"The list of all databases. Separate databases with commas (,). Field 'total_databases' has been deprecated from provider version 1.223.1.\n","deprecationMessage":"Field 'total_databases' has been deprecated from version 1.223.1 and it will be removed in the future version."},"totalDictionaries":{"type":"string","description":"The list of all dictionaries. Separate dictionaries with commas (,). Field 'total_dictionaries' has been deprecated from provider version 1.223.1.\n","deprecationMessage":"Field 'total_dictionaries' has been deprecated from version 1.223.1 and it will be removed in the future version."},"type":{"type":"string","description":"The type of the database account. Valid values: `Normal` or `Super`.\n"}},"required":["accountName","accountPassword","allowDatabases","allowDictionaries","dbClusterId","ddlAuthority","dmlAuthority","status","totalDatabases","totalDictionaries"],"inputProperties":{"accountDescription":{"type":"string","description":"In Chinese, English letter. May contain Chinese and English characters, lowercase letters, numbers, and underscores (_), the dash (-). Cannot start with http:// and https:// at the beginning. Length is from 2 to 256 characters.\n"},"accountName":{"type":"string","description":"Account name: lowercase letters, numbers, underscores, lowercase letter; length no more than 16 characters.\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"The account password: uppercase letters, lowercase letters, lowercase letters, numbers, and special characters (special character! #$%^\u0026 author (s):_+-=) in a length of 8-32 bit.\n"},"allowDatabases":{"type":"string","description":"The list of databases to which you want to grant permissions. Separate databases with commas (,).\n"},"allowDictionaries":{"type":"string","description":"The list of dictionaries to which you want to grant permissions. Separate dictionaries with commas (,).\n"},"dbClusterId":{"type":"string","description":"The db cluster id.\n","willReplaceOnChanges":true},"ddlAuthority":{"type":"boolean","description":"Specifies whether to grant DDL permissions to the database account. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dmlAuthority":{"type":"string","description":"Specifies whether to grant DML permissions to the database account. Valid values: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e and `readOnly,modify`.\n"},"totalDatabases":{"type":"string","description":"The list of all databases. Separate databases with commas (,). Field 'total_databases' has been deprecated from provider version 1.223.1.\n","deprecationMessage":"Field 'total_databases' has been deprecated from version 1.223.1 and it will be removed in the future version."},"totalDictionaries":{"type":"string","description":"The list of all dictionaries. Separate dictionaries with commas (,). Field 'total_dictionaries' has been deprecated from provider version 1.223.1.\n","deprecationMessage":"Field 'total_dictionaries' has been deprecated from version 1.223.1 and it will be removed in the future version."},"type":{"type":"string","description":"The type of the database account. Valid values: `Normal` or `Super`.\n","willReplaceOnChanges":true}},"requiredInputs":["accountName","accountPassword","dbClusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering Account resources.\n","properties":{"accountDescription":{"type":"string","description":"In Chinese, English letter. May contain Chinese and English characters, lowercase letters, numbers, and underscores (_), the dash (-). Cannot start with http:// and https:// at the beginning. Length is from 2 to 256 characters.\n"},"accountName":{"type":"string","description":"Account name: lowercase letters, numbers, underscores, lowercase letter; length no more than 16 characters.\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"The account password: uppercase letters, lowercase letters, lowercase letters, numbers, and special characters (special character! #$%^\u0026 author (s):_+-=) in a length of 8-32 bit.\n"},"allowDatabases":{"type":"string","description":"The list of databases to which you want to grant permissions. Separate databases with commas (,).\n"},"allowDictionaries":{"type":"string","description":"The list of dictionaries to which you want to grant permissions. Separate dictionaries with commas (,).\n"},"dbClusterId":{"type":"string","description":"The db cluster id.\n","willReplaceOnChanges":true},"ddlAuthority":{"type":"boolean","description":"Specifies whether to grant DDL permissions to the database account. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dmlAuthority":{"type":"string","description":"Specifies whether to grant DML permissions to the database account. Valid values: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e and `readOnly,modify`.\n"},"status":{"type":"string","description":"The status of the resource. Valid Status: `Creating`,`Available`,`Deleting`.\n"},"totalDatabases":{"type":"string","description":"The list of all databases. Separate databases with commas (,). Field 'total_databases' has been deprecated from provider version 1.223.1.\n","deprecationMessage":"Field 'total_databases' has been deprecated from version 1.223.1 and it will be removed in the future version."},"totalDictionaries":{"type":"string","description":"The list of all dictionaries. Separate dictionaries with commas (,). Field 'total_dictionaries' has been deprecated from provider version 1.223.1.\n","deprecationMessage":"Field 'total_dictionaries' has been deprecated from version 1.223.1 and it will be removed in the future version."},"type":{"type":"string","description":"The type of the database account. Valid values: `Normal` or `Super`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:clickhouse/backupPolicy:BackupPolicy":{"description":"Provides a Click House Backup Policy resource.\n\nFor information about Click House Backup Policy and how to use it, see [What is Backup Policy](https://www.alibabacloud.com/help/zh/clickhouse/latest/api-clickhouse-2019-11-11-createbackuppolicy).\n\n\u003e **NOTE:** Available since v1.147.0.\n\n\u003e **NOTE:** Only the cloud database ClickHouse cluster version `20.3` supports data backup.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.clickhouse.getRegions({\n    current: true,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.regions?.[0]?.zoneIds?.[1]?.zoneId),\n});\nconst defaultDbCluster = new alicloud.clickhouse.DbCluster(\"default\", {\n    dbClusterVersion: \"22.8.5.29\",\n    status: \"Running\",\n    category: \"Basic\",\n    dbClusterClass: \"S8\",\n    dbClusterNetworkType: \"vpc\",\n    dbNodeGroupCount: 1,\n    paymentType: \"PayAsYouGo\",\n    dbNodeStorage: \"500\",\n    storageType: \"cloud_essd\",\n    vswitchId: defaultSwitch.id,\n    vpcId: defaultNetwork.id,\n});\nconst defaultBackupPolicy = new alicloud.clickhouse.BackupPolicy(\"default\", {\n    dbClusterId: defaultDbCluster.id,\n    preferredBackupPeriods: [\n        \"Monday\",\n        \"Friday\",\n    ],\n    preferredBackupTime: \"00:00Z-01:00Z\",\n    backupRetentionPeriod: 7,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.clickhouse.get_regions(current=True)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.regions[0].zone_ids[1].zone_id)\ndefault_db_cluster = alicloud.clickhouse.DbCluster(\"default\",\n    db_cluster_version=\"22.8.5.29\",\n    status=\"Running\",\n    category=\"Basic\",\n    db_cluster_class=\"S8\",\n    db_cluster_network_type=\"vpc\",\n    db_node_group_count=1,\n    payment_type=\"PayAsYouGo\",\n    db_node_storage=\"500\",\n    storage_type=\"cloud_essd\",\n    vswitch_id=default_switch.id,\n    vpc_id=default_network.id)\ndefault_backup_policy = alicloud.clickhouse.BackupPolicy(\"default\",\n    db_cluster_id=default_db_cluster.id,\n    preferred_backup_periods=[\n        \"Monday\",\n        \"Friday\",\n    ],\n    preferred_backup_time=\"00:00Z-01:00Z\",\n    backup_retention_period=7)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ClickHouse.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.ZoneIds[1]?.ZoneId)),\n    });\n\n    var defaultDbCluster = new AliCloud.ClickHouse.DbCluster(\"default\", new()\n    {\n        DbClusterVersion = \"22.8.5.29\",\n        Status = \"Running\",\n        Category = \"Basic\",\n        DbClusterClass = \"S8\",\n        DbClusterNetworkType = \"vpc\",\n        DbNodeGroupCount = 1,\n        PaymentType = \"PayAsYouGo\",\n        DbNodeStorage = \"500\",\n        StorageType = \"cloud_essd\",\n        VswitchId = defaultSwitch.Id,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultBackupPolicy = new AliCloud.ClickHouse.BackupPolicy(\"default\", new()\n    {\n        DbClusterId = defaultDbCluster.Id,\n        PreferredBackupPeriods = new[]\n        {\n            \"Monday\",\n            \"Friday\",\n        },\n        PreferredBackupTime = \"00:00Z-01:00Z\",\n        BackupRetentionPeriod = 7,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/clickhouse\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := clickhouse.GetRegions(ctx, \u0026clickhouse.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Regions[0].ZoneIds[1].ZoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDbCluster, err := clickhouse.NewDbCluster(ctx, \"default\", \u0026clickhouse.DbClusterArgs{\n\t\t\tDbClusterVersion:     pulumi.String(\"22.8.5.29\"),\n\t\t\tStatus:               pulumi.String(\"Running\"),\n\t\t\tCategory:             pulumi.String(\"Basic\"),\n\t\t\tDbClusterClass:       pulumi.String(\"S8\"),\n\t\t\tDbClusterNetworkType: pulumi.String(\"vpc\"),\n\t\t\tDbNodeGroupCount:     pulumi.Int(1),\n\t\t\tPaymentType:          pulumi.String(\"PayAsYouGo\"),\n\t\t\tDbNodeStorage:        pulumi.String(\"500\"),\n\t\t\tStorageType:          pulumi.String(\"cloud_essd\"),\n\t\t\tVswitchId:            defaultSwitch.ID(),\n\t\t\tVpcId:                defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = clickhouse.NewBackupPolicy(ctx, \"default\", \u0026clickhouse.BackupPolicyArgs{\n\t\t\tDbClusterId: defaultDbCluster.ID(),\n\t\t\tPreferredBackupPeriods: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Monday\"),\n\t\t\t\tpulumi.String(\"Friday\"),\n\t\t\t},\n\t\t\tPreferredBackupTime:   pulumi.String(\"00:00Z-01:00Z\"),\n\t\t\tBackupRetentionPeriod: pulumi.Int(7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.clickhouse.ClickhouseFunctions;\nimport com.pulumi.alicloud.clickhouse.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.clickhouse.DbCluster;\nimport com.pulumi.alicloud.clickhouse.DbClusterArgs;\nimport com.pulumi.alicloud.clickhouse.BackupPolicy;\nimport com.pulumi.alicloud.clickhouse.BackupPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ClickhouseFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.regions()[0].zoneIds()[1].zoneId())\n            .build());\n\n        var defaultDbCluster = new DbCluster(\"defaultDbCluster\", DbClusterArgs.builder()\n            .dbClusterVersion(\"22.8.5.29\")\n            .status(\"Running\")\n            .category(\"Basic\")\n            .dbClusterClass(\"S8\")\n            .dbClusterNetworkType(\"vpc\")\n            .dbNodeGroupCount(1)\n            .paymentType(\"PayAsYouGo\")\n            .dbNodeStorage(\"500\")\n            .storageType(\"cloud_essd\")\n            .vswitchId(defaultSwitch.id())\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultBackupPolicy = new BackupPolicy(\"defaultBackupPolicy\", BackupPolicyArgs.builder()\n            .dbClusterId(defaultDbCluster.id())\n            .preferredBackupPeriods(            \n                \"Monday\",\n                \"Friday\")\n            .preferredBackupTime(\"00:00Z-01:00Z\")\n            .backupRetentionPeriod(7)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.regions[0].zoneIds[1].zoneId}\n  defaultDbCluster:\n    type: alicloud:clickhouse:DbCluster\n    name: default\n    properties:\n      dbClusterVersion: 22.8.5.29\n      status: Running\n      category: Basic\n      dbClusterClass: S8\n      dbClusterNetworkType: vpc\n      dbNodeGroupCount: '1'\n      paymentType: PayAsYouGo\n      dbNodeStorage: '500'\n      storageType: cloud_essd\n      vswitchId: ${defaultSwitch.id}\n      vpcId: ${defaultNetwork.id}\n  defaultBackupPolicy:\n    type: alicloud:clickhouse:BackupPolicy\n    name: default\n    properties:\n      dbClusterId: ${defaultDbCluster.id}\n      preferredBackupPeriods:\n        - Monday\n        - Friday\n      preferredBackupTime: 00:00Z-01:00Z\n      backupRetentionPeriod: 7\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:clickhouse:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nClick House Backup Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:clickhouse/backupPolicy:BackupPolicy example \u003cdb_cluster_id\u003e\n```\n\n","properties":{"backupRetentionPeriod":{"type":"integer","description":"Data backup days. Valid values: \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e.\n"},"dbClusterId":{"type":"string","description":"The id of the DBCluster.\n"},"preferredBackupPeriods":{"type":"array","items":{"type":"string"},"description":"DBCluster Backup period. A list of DBCluster Backup period. Valid values: [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"].\n"},"preferredBackupTime":{"type":"string","description":"DBCluster backup time, in the format of `HH:mmZ-HH:mmZ`. Time setting interval is one hour. China time is 8 hours behind it.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"required":["dbClusterId","preferredBackupPeriods","preferredBackupTime","status"],"inputProperties":{"backupRetentionPeriod":{"type":"integer","description":"Data backup days. Valid values: \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e.\n"},"dbClusterId":{"type":"string","description":"The id of the DBCluster.\n","willReplaceOnChanges":true},"preferredBackupPeriods":{"type":"array","items":{"type":"string"},"description":"DBCluster Backup period. A list of DBCluster Backup period. Valid values: [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"].\n"},"preferredBackupTime":{"type":"string","description":"DBCluster backup time, in the format of `HH:mmZ-HH:mmZ`. Time setting interval is one hour. China time is 8 hours behind it.\n"}},"requiredInputs":["dbClusterId","preferredBackupPeriods","preferredBackupTime"],"stateInputs":{"description":"Input properties used for looking up and filtering BackupPolicy resources.\n","properties":{"backupRetentionPeriod":{"type":"integer","description":"Data backup days. Valid values: \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e.\n"},"dbClusterId":{"type":"string","description":"The id of the DBCluster.\n","willReplaceOnChanges":true},"preferredBackupPeriods":{"type":"array","items":{"type":"string"},"description":"DBCluster Backup period. A list of DBCluster Backup period. Valid values: [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"].\n"},"preferredBackupTime":{"type":"string","description":"DBCluster backup time, in the format of `HH:mmZ-HH:mmZ`. Time setting interval is one hour. China time is 8 hours behind it.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object"}},"alicloud:clickhouse/dbCluster:DbCluster":{"description":"Provides a Click House DBCluster resource.\n\nFor information about Click House DBCluster and how to use it, see [What is DBCluster](https://www.alibabacloud.com/help/zh/clickhouse/latest/api-clickhouse-2019-11-11-createdbinstance).\n\n\u003e **NOTE:** Available since v1.134.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultGetRegions = alicloud.clickhouse.getRegions({\n    regionId: region,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.zoneIds?.[0]?.zoneId),\n});\nconst defaultDbCluster = new alicloud.clickhouse.DbCluster(\"default\", {\n    dbClusterVersion: \"23.8\",\n    category: \"Basic\",\n    dbClusterClass: \"S8\",\n    dbClusterNetworkType: \"vpc\",\n    dbNodeGroupCount: 1,\n    paymentType: \"PayAsYouGo\",\n    dbNodeStorage: \"100\",\n    storageType: \"cloud_essd\",\n    vswitchId: defaultSwitch.id,\n    vpcId: defaultNetwork.id,\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_get_regions = alicloud.clickhouse.get_regions(region_id=region)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_regions.regions[0].zone_ids[0].zone_id)\ndefault_db_cluster = alicloud.clickhouse.DbCluster(\"default\",\n    db_cluster_version=\"23.8\",\n    category=\"Basic\",\n    db_cluster_class=\"S8\",\n    db_cluster_network_type=\"vpc\",\n    db_node_group_count=1,\n    payment_type=\"PayAsYouGo\",\n    db_node_storage=\"100\",\n    storage_type=\"cloud_essd\",\n    vswitch_id=default_switch.id,\n    vpc_id=default_network.id,\n    resource_group_id=default.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultGetRegions = AliCloud.ClickHouse.GetRegions.Invoke(new()\n    {\n        RegionId = region,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.ZoneIds[0]?.ZoneId),\n    });\n\n    var defaultDbCluster = new AliCloud.ClickHouse.DbCluster(\"default\", new()\n    {\n        DbClusterVersion = \"23.8\",\n        Category = \"Basic\",\n        DbClusterClass = \"S8\",\n        DbClusterNetworkType = \"vpc\",\n        DbNodeGroupCount = 1,\n        PaymentType = \"PayAsYouGo\",\n        DbNodeStorage = \"100\",\n        StorageType = \"cloud_essd\",\n        VswitchId = defaultSwitch.Id,\n        VpcId = defaultNetwork.Id,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/clickhouse\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRegions, err := clickhouse.GetRegions(ctx, \u0026clickhouse.GetRegionsArgs{\n\t\t\tRegionId: pulumi.StringRef(region),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetRegions.Regions[0].ZoneIds[0].ZoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = clickhouse.NewDbCluster(ctx, \"default\", \u0026clickhouse.DbClusterArgs{\n\t\t\tDbClusterVersion:     pulumi.String(\"23.8\"),\n\t\t\tCategory:             pulumi.String(\"Basic\"),\n\t\t\tDbClusterClass:       pulumi.String(\"S8\"),\n\t\t\tDbClusterNetworkType: pulumi.String(\"vpc\"),\n\t\t\tDbNodeGroupCount:     pulumi.Int(1),\n\t\t\tPaymentType:          pulumi.String(\"PayAsYouGo\"),\n\t\t\tDbNodeStorage:        pulumi.String(\"100\"),\n\t\t\tStorageType:          pulumi.String(\"cloud_essd\"),\n\t\t\tVswitchId:            defaultSwitch.ID(),\n\t\t\tVpcId:                defaultNetwork.ID(),\n\t\t\tResourceGroupId:      pulumi.String(_default.Groups[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.clickhouse.ClickhouseFunctions;\nimport com.pulumi.alicloud.clickhouse.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.clickhouse.DbCluster;\nimport com.pulumi.alicloud.clickhouse.DbClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var defaultGetRegions = ClickhouseFunctions.getRegions(GetRegionsArgs.builder()\n            .regionId(region)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetRegions.regions()[0].zoneIds()[0].zoneId())\n            .build());\n\n        var defaultDbCluster = new DbCluster(\"defaultDbCluster\", DbClusterArgs.builder()\n            .dbClusterVersion(\"23.8\")\n            .category(\"Basic\")\n            .dbClusterClass(\"S8\")\n            .dbClusterNetworkType(\"vpc\")\n            .dbNodeGroupCount(1)\n            .paymentType(\"PayAsYouGo\")\n            .dbNodeStorage(\"100\")\n            .storageType(\"cloud_essd\")\n            .vswitchId(defaultSwitch.id())\n            .vpcId(defaultNetwork.id())\n            .resourceGroupId(default_.groups()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetRegions.regions[0].zoneIds[0].zoneId}\n  defaultDbCluster:\n    type: alicloud:clickhouse:DbCluster\n    name: default\n    properties:\n      dbClusterVersion: '23.8'\n      category: Basic\n      dbClusterClass: S8\n      dbClusterNetworkType: vpc\n      dbNodeGroupCount: '1'\n      paymentType: PayAsYouGo\n      dbNodeStorage: '100'\n      storageType: cloud_essd\n      vswitchId: ${defaultSwitch.id}\n      vpcId: ${defaultNetwork.id}\n      resourceGroupId: ${default.groups[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetRegions:\n    fn::invoke:\n      function: alicloud:clickhouse:getRegions\n      arguments:\n        regionId: ${region}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nClick House DBCluster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:clickhouse/dbCluster:DbCluster example \u003cid\u003e\n```\n\n","properties":{"allocatePublicConnection":{"type":"boolean","description":"Whether to enable public connection. Value options: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"category":{"type":"string","description":"The Category of DBCluster. Valid values: `Basic`,`HighAvailability`.\n"},"coldStorage":{"type":"string","description":"Whether to use cold storage. Valid values: `ENABLE`, `DISABLE`, default to `DISABLE`. When it's set to `ENABLE`, cold storage will be used, and \u003cspan pulumi-lang-nodejs=\"`coldStorage`\" pulumi-lang-dotnet=\"`ColdStorage`\" pulumi-lang-go=\"`coldStorage`\" pulumi-lang-python=\"`cold_storage`\" pulumi-lang-yaml=\"`coldStorage`\" pulumi-lang-java=\"`coldStorage`\"\u003e`cold_storage`\u003c/span\u003e cannot be set to `DISABLE` again.\n"},"connectionString":{"type":"string","description":"(Available since v1.196.0) - The connection string of the cluster.\n"},"dbClusterAccessWhiteLists":{"type":"array","items":{"$ref":"#/types/alicloud:clickhouse/DbClusterDbClusterAccessWhiteList:DbClusterDbClusterAccessWhiteList"},"description":"The db cluster access white list. See \u003cspan pulumi-lang-nodejs=\"`dbClusterAccessWhiteList`\" pulumi-lang-dotnet=\"`DbClusterAccessWhiteList`\" pulumi-lang-go=\"`dbClusterAccessWhiteList`\" pulumi-lang-python=\"`db_cluster_access_white_list`\" pulumi-lang-yaml=\"`dbClusterAccessWhiteList`\" pulumi-lang-java=\"`dbClusterAccessWhiteList`\"\u003e`db_cluster_access_white_list`\u003c/span\u003e below.\n"},"dbClusterClass":{"type":"string","description":"The DBCluster class. According to the category,\u003cspan pulumi-lang-nodejs=\" dbClusterClass \" pulumi-lang-dotnet=\" DbClusterClass \" pulumi-lang-go=\" dbClusterClass \" pulumi-lang-python=\" db_cluster_class \" pulumi-lang-yaml=\" dbClusterClass \" pulumi-lang-java=\" dbClusterClass \"\u003e db_cluster_class \u003c/span\u003ehas two value ranges:\n* Under the condition that the category is the `Basic`, Valid values: `LS20`, `LS40`, `LS80`,`S8`, `S16`, `S32`, `S64`,`S80`, `S104`.\n* Under the condition that the category is the `HighAvailability`, Valid values: `LC20`, `LC40`, `LC80`,`C8`, `C16`, `C32`, `C64`, `C80`, `C104`.\n"},"dbClusterDescription":{"type":"string","description":"The DBCluster description.\n"},"dbClusterNetworkType":{"type":"string","description":"The DBCluster network type. Valid values: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n"},"dbClusterVersion":{"type":"string","description":"The DBCluster version. Valid values: `20.3.10.75`, `20.8.7.15`, `21.8.10.19`, `22.8.5.29`, `23.8`. **NOTE:** `19.15.2.2` is no longer supported. From version 1.191.0, \u003cspan pulumi-lang-nodejs=\"`dbClusterVersion`\" pulumi-lang-dotnet=\"`DbClusterVersion`\" pulumi-lang-go=\"`dbClusterVersion`\" pulumi-lang-python=\"`db_cluster_version`\" pulumi-lang-yaml=\"`dbClusterVersion`\" pulumi-lang-java=\"`dbClusterVersion`\"\u003e`db_cluster_version`\u003c/span\u003e can be set to `22.8.5.29`.\n"},"dbNodeGroupCount":{"type":"integer","description":"The db node group count. The number should between 1 and 48.\n"},"dbNodeStorage":{"type":"string","description":"The db node storage.\n"},"encryptionKey":{"type":"string","description":"Key management service KMS key ID. It is valid and required when\u003cspan pulumi-lang-nodejs=\" encryptionType \" pulumi-lang-dotnet=\" EncryptionType \" pulumi-lang-go=\" encryptionType \" pulumi-lang-python=\" encryption_type \" pulumi-lang-yaml=\" encryptionType \" pulumi-lang-java=\" encryptionType \"\u003e encryption_type \u003c/span\u003eis `CloudDisk`.\n"},"encryptionType":{"type":"string","description":"Currently only supports ECS disk encryption, with a value of CloudDisk, not encrypted when empty.\n"},"maintainTime":{"type":"string","description":"The maintenance window of DBCluster. Valid format: `hh:mmZ-hh:mm Z`.\n"},"multiZoneVswitchLists":{"type":"array","items":{"$ref":"#/types/alicloud:clickhouse/DbClusterMultiZoneVswitchList:DbClusterMultiZoneVswitchList"},"description":"The zone IDs and \ncorresponding vswitch IDs and zone IDs of multi-zone setup. if set, a multi-zone DBCluster will be created. Currently only support 2 available zones, primary zone not included. See \u003cspan pulumi-lang-nodejs=\"`multiZoneVswitchList`\" pulumi-lang-dotnet=\"`MultiZoneVswitchList`\" pulumi-lang-go=\"`multiZoneVswitchList`\" pulumi-lang-python=\"`multi_zone_vswitch_list`\" pulumi-lang-yaml=\"`multiZoneVswitchList`\" pulumi-lang-java=\"`multiZoneVswitchList`\"\u003e`multi_zone_vswitch_list`\u003c/span\u003e below.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`,`Subscription`.\n"},"period":{"type":"string","description":"Pre-paid cluster of the pay-as-you-go cycle. It is valid and required when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Valid values: `Month`, `Year`.\n"},"port":{"type":"string","description":"(Available since v1.196.0) The connection port of the cluster.\n"},"publicConnectionString":{"type":"string","description":"(Available since v1.245.0) The public connection string of the cluster. Only valid when \u003cspan pulumi-lang-nodejs=\"`allocatePublicConnection`\" pulumi-lang-dotnet=\"`AllocatePublicConnection`\" pulumi-lang-go=\"`allocatePublicConnection`\" pulumi-lang-python=\"`allocate_public_connection`\" pulumi-lang-yaml=\"`allocatePublicConnection`\" pulumi-lang-java=\"`allocatePublicConnection`\"\u003e`allocate_public_connection`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"renewalStatus":{"type":"string","description":"The renewal status of the resource. Valid values: `AutoRenewal`,`Normal`. It is valid and required when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. When \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is set to `AutoRenewal`, the resource is renewed automatically.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Running`,`Creating`,`Deleting`,`Restarting`,`Preparing`.\n"},"storageType":{"type":"string","description":"Storage type of DBCluster. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl2`\" pulumi-lang-dotnet=\"`CloudEssdPl2`\" pulumi-lang-go=\"`cloudEssdPl2`\" pulumi-lang-python=\"`cloud_essd_pl2`\" pulumi-lang-yaml=\"`cloudEssdPl2`\" pulumi-lang-java=\"`cloudEssdPl2`\"\u003e`cloud_essd_pl2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl3`\" pulumi-lang-dotnet=\"`CloudEssdPl3`\" pulumi-lang-go=\"`cloudEssdPl3`\" pulumi-lang-python=\"`cloud_essd_pl3`\" pulumi-lang-yaml=\"`cloudEssdPl3`\" pulumi-lang-java=\"`cloudEssdPl3`\"\u003e`cloud_essd_pl3`\u003c/span\u003e.\n"},"usedTime":{"type":"string","description":"The used time of DBCluster. It is valid and required when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. item choices: [1-9] when period is `Month`, [1-3] when period is `Year`.\n"},"vpcId":{"type":"string","description":"The id of the VPC.\n"},"vswitchId":{"type":"string","description":"The vswitch id of DBCluster.\n"},"zoneId":{"type":"string","description":"The zone ID of the instance.\n"}},"required":["category","coldStorage","connectionString","dbClusterClass","dbClusterDescription","dbClusterNetworkType","dbClusterVersion","dbNodeGroupCount","dbNodeStorage","maintainTime","paymentType","port","publicConnectionString","renewalStatus","resourceGroupId","status","storageType","vpcId","zoneId"],"inputProperties":{"allocatePublicConnection":{"type":"boolean","description":"Whether to enable public connection. Value options: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"category":{"type":"string","description":"The Category of DBCluster. Valid values: `Basic`,`HighAvailability`.\n","willReplaceOnChanges":true},"coldStorage":{"type":"string","description":"Whether to use cold storage. Valid values: `ENABLE`, `DISABLE`, default to `DISABLE`. When it's set to `ENABLE`, cold storage will be used, and \u003cspan pulumi-lang-nodejs=\"`coldStorage`\" pulumi-lang-dotnet=\"`ColdStorage`\" pulumi-lang-go=\"`coldStorage`\" pulumi-lang-python=\"`cold_storage`\" pulumi-lang-yaml=\"`coldStorage`\" pulumi-lang-java=\"`coldStorage`\"\u003e`cold_storage`\u003c/span\u003e cannot be set to `DISABLE` again.\n"},"dbClusterAccessWhiteLists":{"type":"array","items":{"$ref":"#/types/alicloud:clickhouse/DbClusterDbClusterAccessWhiteList:DbClusterDbClusterAccessWhiteList"},"description":"The db cluster access white list. See \u003cspan pulumi-lang-nodejs=\"`dbClusterAccessWhiteList`\" pulumi-lang-dotnet=\"`DbClusterAccessWhiteList`\" pulumi-lang-go=\"`dbClusterAccessWhiteList`\" pulumi-lang-python=\"`db_cluster_access_white_list`\" pulumi-lang-yaml=\"`dbClusterAccessWhiteList`\" pulumi-lang-java=\"`dbClusterAccessWhiteList`\"\u003e`db_cluster_access_white_list`\u003c/span\u003e below.\n"},"dbClusterClass":{"type":"string","description":"The DBCluster class. According to the category,\u003cspan pulumi-lang-nodejs=\" dbClusterClass \" pulumi-lang-dotnet=\" DbClusterClass \" pulumi-lang-go=\" dbClusterClass \" pulumi-lang-python=\" db_cluster_class \" pulumi-lang-yaml=\" dbClusterClass \" pulumi-lang-java=\" dbClusterClass \"\u003e db_cluster_class \u003c/span\u003ehas two value ranges:\n* Under the condition that the category is the `Basic`, Valid values: `LS20`, `LS40`, `LS80`,`S8`, `S16`, `S32`, `S64`,`S80`, `S104`.\n* Under the condition that the category is the `HighAvailability`, Valid values: `LC20`, `LC40`, `LC80`,`C8`, `C16`, `C32`, `C64`, `C80`, `C104`.\n"},"dbClusterDescription":{"type":"string","description":"The DBCluster description.\n"},"dbClusterNetworkType":{"type":"string","description":"The DBCluster network type. Valid values: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n","willReplaceOnChanges":true},"dbClusterVersion":{"type":"string","description":"The DBCluster version. Valid values: `20.3.10.75`, `20.8.7.15`, `21.8.10.19`, `22.8.5.29`, `23.8`. **NOTE:** `19.15.2.2` is no longer supported. From version 1.191.0, \u003cspan pulumi-lang-nodejs=\"`dbClusterVersion`\" pulumi-lang-dotnet=\"`DbClusterVersion`\" pulumi-lang-go=\"`dbClusterVersion`\" pulumi-lang-python=\"`db_cluster_version`\" pulumi-lang-yaml=\"`dbClusterVersion`\" pulumi-lang-java=\"`dbClusterVersion`\"\u003e`db_cluster_version`\u003c/span\u003e can be set to `22.8.5.29`.\n","willReplaceOnChanges":true},"dbNodeGroupCount":{"type":"integer","description":"The db node group count. The number should between 1 and 48.\n"},"dbNodeStorage":{"type":"string","description":"The db node storage.\n"},"encryptionKey":{"type":"string","description":"Key management service KMS key ID. It is valid and required when\u003cspan pulumi-lang-nodejs=\" encryptionType \" pulumi-lang-dotnet=\" EncryptionType \" pulumi-lang-go=\" encryptionType \" pulumi-lang-python=\" encryption_type \" pulumi-lang-yaml=\" encryptionType \" pulumi-lang-java=\" encryptionType \"\u003e encryption_type \u003c/span\u003eis `CloudDisk`.\n","willReplaceOnChanges":true},"encryptionType":{"type":"string","description":"Currently only supports ECS disk encryption, with a value of CloudDisk, not encrypted when empty.\n","willReplaceOnChanges":true},"maintainTime":{"type":"string","description":"The maintenance window of DBCluster. Valid format: `hh:mmZ-hh:mm Z`.\n"},"multiZoneVswitchLists":{"type":"array","items":{"$ref":"#/types/alicloud:clickhouse/DbClusterMultiZoneVswitchList:DbClusterMultiZoneVswitchList"},"description":"The zone IDs and \ncorresponding vswitch IDs and zone IDs of multi-zone setup. if set, a multi-zone DBCluster will be created. Currently only support 2 available zones, primary zone not included. See \u003cspan pulumi-lang-nodejs=\"`multiZoneVswitchList`\" pulumi-lang-dotnet=\"`MultiZoneVswitchList`\" pulumi-lang-go=\"`multiZoneVswitchList`\" pulumi-lang-python=\"`multi_zone_vswitch_list`\" pulumi-lang-yaml=\"`multiZoneVswitchList`\" pulumi-lang-java=\"`multiZoneVswitchList`\"\u003e`multi_zone_vswitch_list`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`,`Subscription`.\n","willReplaceOnChanges":true},"period":{"type":"string","description":"Pre-paid cluster of the pay-as-you-go cycle. It is valid and required when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Valid values: `Month`, `Year`.\n"},"renewalStatus":{"type":"string","description":"The renewal status of the resource. Valid values: `AutoRenewal`,`Normal`. It is valid and required when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. When \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is set to `AutoRenewal`, the resource is renewed automatically.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Running`,`Creating`,`Deleting`,`Restarting`,`Preparing`.\n"},"storageType":{"type":"string","description":"Storage type of DBCluster. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl2`\" pulumi-lang-dotnet=\"`CloudEssdPl2`\" pulumi-lang-go=\"`cloudEssdPl2`\" pulumi-lang-python=\"`cloud_essd_pl2`\" pulumi-lang-yaml=\"`cloudEssdPl2`\" pulumi-lang-java=\"`cloudEssdPl2`\"\u003e`cloud_essd_pl2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl3`\" pulumi-lang-dotnet=\"`CloudEssdPl3`\" pulumi-lang-go=\"`cloudEssdPl3`\" pulumi-lang-python=\"`cloud_essd_pl3`\" pulumi-lang-yaml=\"`cloudEssdPl3`\" pulumi-lang-java=\"`cloudEssdPl3`\"\u003e`cloud_essd_pl3`\u003c/span\u003e.\n","willReplaceOnChanges":true},"usedTime":{"type":"string","description":"The used time of DBCluster. It is valid and required when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. item choices: [1-9] when period is `Month`, [1-3] when period is `Year`.\n"},"vpcId":{"type":"string","description":"The id of the VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vswitch id of DBCluster.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the instance.\n","willReplaceOnChanges":true}},"requiredInputs":["category","dbClusterClass","dbClusterNetworkType","dbClusterVersion","dbNodeGroupCount","dbNodeStorage","paymentType","storageType"],"stateInputs":{"description":"Input properties used for looking up and filtering DbCluster resources.\n","properties":{"allocatePublicConnection":{"type":"boolean","description":"Whether to enable public connection. Value options: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"category":{"type":"string","description":"The Category of DBCluster. Valid values: `Basic`,`HighAvailability`.\n","willReplaceOnChanges":true},"coldStorage":{"type":"string","description":"Whether to use cold storage. Valid values: `ENABLE`, `DISABLE`, default to `DISABLE`. When it's set to `ENABLE`, cold storage will be used, and \u003cspan pulumi-lang-nodejs=\"`coldStorage`\" pulumi-lang-dotnet=\"`ColdStorage`\" pulumi-lang-go=\"`coldStorage`\" pulumi-lang-python=\"`cold_storage`\" pulumi-lang-yaml=\"`coldStorage`\" pulumi-lang-java=\"`coldStorage`\"\u003e`cold_storage`\u003c/span\u003e cannot be set to `DISABLE` again.\n"},"connectionString":{"type":"string","description":"(Available since v1.196.0) - The connection string of the cluster.\n"},"dbClusterAccessWhiteLists":{"type":"array","items":{"$ref":"#/types/alicloud:clickhouse/DbClusterDbClusterAccessWhiteList:DbClusterDbClusterAccessWhiteList"},"description":"The db cluster access white list. See \u003cspan pulumi-lang-nodejs=\"`dbClusterAccessWhiteList`\" pulumi-lang-dotnet=\"`DbClusterAccessWhiteList`\" pulumi-lang-go=\"`dbClusterAccessWhiteList`\" pulumi-lang-python=\"`db_cluster_access_white_list`\" pulumi-lang-yaml=\"`dbClusterAccessWhiteList`\" pulumi-lang-java=\"`dbClusterAccessWhiteList`\"\u003e`db_cluster_access_white_list`\u003c/span\u003e below.\n"},"dbClusterClass":{"type":"string","description":"The DBCluster class. According to the category,\u003cspan pulumi-lang-nodejs=\" dbClusterClass \" pulumi-lang-dotnet=\" DbClusterClass \" pulumi-lang-go=\" dbClusterClass \" pulumi-lang-python=\" db_cluster_class \" pulumi-lang-yaml=\" dbClusterClass \" pulumi-lang-java=\" dbClusterClass \"\u003e db_cluster_class \u003c/span\u003ehas two value ranges:\n* Under the condition that the category is the `Basic`, Valid values: `LS20`, `LS40`, `LS80`,`S8`, `S16`, `S32`, `S64`,`S80`, `S104`.\n* Under the condition that the category is the `HighAvailability`, Valid values: `LC20`, `LC40`, `LC80`,`C8`, `C16`, `C32`, `C64`, `C80`, `C104`.\n"},"dbClusterDescription":{"type":"string","description":"The DBCluster description.\n"},"dbClusterNetworkType":{"type":"string","description":"The DBCluster network type. Valid values: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n","willReplaceOnChanges":true},"dbClusterVersion":{"type":"string","description":"The DBCluster version. Valid values: `20.3.10.75`, `20.8.7.15`, `21.8.10.19`, `22.8.5.29`, `23.8`. **NOTE:** `19.15.2.2` is no longer supported. From version 1.191.0, \u003cspan pulumi-lang-nodejs=\"`dbClusterVersion`\" pulumi-lang-dotnet=\"`DbClusterVersion`\" pulumi-lang-go=\"`dbClusterVersion`\" pulumi-lang-python=\"`db_cluster_version`\" pulumi-lang-yaml=\"`dbClusterVersion`\" pulumi-lang-java=\"`dbClusterVersion`\"\u003e`db_cluster_version`\u003c/span\u003e can be set to `22.8.5.29`.\n","willReplaceOnChanges":true},"dbNodeGroupCount":{"type":"integer","description":"The db node group count. The number should between 1 and 48.\n"},"dbNodeStorage":{"type":"string","description":"The db node storage.\n"},"encryptionKey":{"type":"string","description":"Key management service KMS key ID. It is valid and required when\u003cspan pulumi-lang-nodejs=\" encryptionType \" pulumi-lang-dotnet=\" EncryptionType \" pulumi-lang-go=\" encryptionType \" pulumi-lang-python=\" encryption_type \" pulumi-lang-yaml=\" encryptionType \" pulumi-lang-java=\" encryptionType \"\u003e encryption_type \u003c/span\u003eis `CloudDisk`.\n","willReplaceOnChanges":true},"encryptionType":{"type":"string","description":"Currently only supports ECS disk encryption, with a value of CloudDisk, not encrypted when empty.\n","willReplaceOnChanges":true},"maintainTime":{"type":"string","description":"The maintenance window of DBCluster. Valid format: `hh:mmZ-hh:mm Z`.\n"},"multiZoneVswitchLists":{"type":"array","items":{"$ref":"#/types/alicloud:clickhouse/DbClusterMultiZoneVswitchList:DbClusterMultiZoneVswitchList"},"description":"The zone IDs and \ncorresponding vswitch IDs and zone IDs of multi-zone setup. if set, a multi-zone DBCluster will be created. Currently only support 2 available zones, primary zone not included. See \u003cspan pulumi-lang-nodejs=\"`multiZoneVswitchList`\" pulumi-lang-dotnet=\"`MultiZoneVswitchList`\" pulumi-lang-go=\"`multiZoneVswitchList`\" pulumi-lang-python=\"`multi_zone_vswitch_list`\" pulumi-lang-yaml=\"`multiZoneVswitchList`\" pulumi-lang-java=\"`multiZoneVswitchList`\"\u003e`multi_zone_vswitch_list`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`,`Subscription`.\n","willReplaceOnChanges":true},"period":{"type":"string","description":"Pre-paid cluster of the pay-as-you-go cycle. It is valid and required when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Valid values: `Month`, `Year`.\n"},"port":{"type":"string","description":"(Available since v1.196.0) The connection port of the cluster.\n"},"publicConnectionString":{"type":"string","description":"(Available since v1.245.0) The public connection string of the cluster. Only valid when \u003cspan pulumi-lang-nodejs=\"`allocatePublicConnection`\" pulumi-lang-dotnet=\"`AllocatePublicConnection`\" pulumi-lang-go=\"`allocatePublicConnection`\" pulumi-lang-python=\"`allocate_public_connection`\" pulumi-lang-yaml=\"`allocatePublicConnection`\" pulumi-lang-java=\"`allocatePublicConnection`\"\u003e`allocate_public_connection`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"renewalStatus":{"type":"string","description":"The renewal status of the resource. Valid values: `AutoRenewal`,`Normal`. It is valid and required when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. When \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is set to `AutoRenewal`, the resource is renewed automatically.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Running`,`Creating`,`Deleting`,`Restarting`,`Preparing`.\n"},"storageType":{"type":"string","description":"Storage type of DBCluster. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl2`\" pulumi-lang-dotnet=\"`CloudEssdPl2`\" pulumi-lang-go=\"`cloudEssdPl2`\" pulumi-lang-python=\"`cloud_essd_pl2`\" pulumi-lang-yaml=\"`cloudEssdPl2`\" pulumi-lang-java=\"`cloudEssdPl2`\"\u003e`cloud_essd_pl2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl3`\" pulumi-lang-dotnet=\"`CloudEssdPl3`\" pulumi-lang-go=\"`cloudEssdPl3`\" pulumi-lang-python=\"`cloud_essd_pl3`\" pulumi-lang-yaml=\"`cloudEssdPl3`\" pulumi-lang-java=\"`cloudEssdPl3`\"\u003e`cloud_essd_pl3`\u003c/span\u003e.\n","willReplaceOnChanges":true},"usedTime":{"type":"string","description":"The used time of DBCluster. It is valid and required when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. item choices: [1-9] when period is `Month`, [1-3] when period is `Year`.\n"},"vpcId":{"type":"string","description":"The id of the VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vswitch id of DBCluster.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:clickhouseenterprisedbcluster/account:Account":{"description":"Provides a Click House Enterprise Db Cluster Account resource.\n\nClickhouse enterprise instance account.\n\nFor information about Click House Enterprise Db Cluster Account and how to use it, see [What is Enterprise Db Cluster Account](https://next.api.alibabacloud.com/document/clickhouse/2023-05-22/CreateAccount).\n\n\u003e **NOTE:** Available since v1.247.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst regionId = config.get(\"regionId\") || \"cn-beijing\";\nconst vswIpRangeI = config.get(\"vswIpRangeI\") || \"172.16.1.0/24\";\nconst vpcIpRange = config.get(\"vpcIpRange\") || \"172.16.0.0/12\";\nconst zoneIdI = config.get(\"zoneIdI\") || \"cn-beijing-i\";\nconst defaultktKLuM = new alicloud.vpc.Network(\"defaultktKLuM\", {cidrBlock: vpcIpRange});\nconst defaultTQWN3k = new alicloud.vpc.Switch(\"defaultTQWN3k\", {\n    vpcId: defaultktKLuM.id,\n    zoneId: zoneIdI,\n    cidrBlock: vswIpRangeI,\n});\nconst defaultWrovOd = new alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster(\"defaultWrovOd\", {\n    zoneId: zoneIdI,\n    vpcId: defaultktKLuM.id,\n    scaleMin: \"8\",\n    scaleMax: \"16\",\n    vswitchId: defaultTQWN3k.id,\n});\nconst _default = new alicloud.clickhouseenterprisedbcluster.Account(\"default\", {\n    account: \"abc\",\n    description: \"example_desc\",\n    dbInstanceId: defaultWrovOd.id,\n    accountType: \"NormalAccount\",\n    password: \"abc123456!\",\n    dmlAuthSetting: {\n        dmlAuthority: 0,\n        ddlAuthority: true,\n        allowDictionaries: [\"*\"],\n        allowDatabases: [\"*\"],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-beijing\"\nvsw_ip_range_i = config.get(\"vswIpRangeI\")\nif vsw_ip_range_i is None:\n    vsw_ip_range_i = \"172.16.1.0/24\"\nvpc_ip_range = config.get(\"vpcIpRange\")\nif vpc_ip_range is None:\n    vpc_ip_range = \"172.16.0.0/12\"\nzone_id_i = config.get(\"zoneIdI\")\nif zone_id_i is None:\n    zone_id_i = \"cn-beijing-i\"\ndefaultkt_k_lu_m = alicloud.vpc.Network(\"defaultktKLuM\", cidr_block=vpc_ip_range)\ndefault_tqwn3k = alicloud.vpc.Switch(\"defaultTQWN3k\",\n    vpc_id=defaultkt_k_lu_m.id,\n    zone_id=zone_id_i,\n    cidr_block=vsw_ip_range_i)\ndefault_wrov_od = alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster(\"defaultWrovOd\",\n    zone_id=zone_id_i,\n    vpc_id=defaultkt_k_lu_m.id,\n    scale_min=\"8\",\n    scale_max=\"16\",\n    vswitch_id=default_tqwn3k.id)\ndefault = alicloud.clickhouseenterprisedbcluster.Account(\"default\",\n    account=\"abc\",\n    description=\"example_desc\",\n    db_instance_id=default_wrov_od.id,\n    account_type=\"NormalAccount\",\n    password=\"abc123456!\",\n    dml_auth_setting={\n        \"dml_authority\": 0,\n        \"ddl_authority\": True,\n        \"allow_dictionaries\": [\"*\"],\n        \"allow_databases\": [\"*\"],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-beijing\";\n    var vswIpRangeI = config.Get(\"vswIpRangeI\") ?? \"172.16.1.0/24\";\n    var vpcIpRange = config.Get(\"vpcIpRange\") ?? \"172.16.0.0/12\";\n    var zoneIdI = config.Get(\"zoneIdI\") ?? \"cn-beijing-i\";\n    var defaultktKLuM = new AliCloud.Vpc.Network(\"defaultktKLuM\", new()\n    {\n        CidrBlock = vpcIpRange,\n    });\n\n    var defaultTQWN3k = new AliCloud.Vpc.Switch(\"defaultTQWN3k\", new()\n    {\n        VpcId = defaultktKLuM.Id,\n        ZoneId = zoneIdI,\n        CidrBlock = vswIpRangeI,\n    });\n\n    var defaultWrovOd = new AliCloud.ClickHouseEnterpriseDbCluster.ClickHouseEnterpriseDbCluster(\"defaultWrovOd\", new()\n    {\n        ZoneId = zoneIdI,\n        VpcId = defaultktKLuM.Id,\n        ScaleMin = \"8\",\n        ScaleMax = \"16\",\n        VswitchId = defaultTQWN3k.Id,\n    });\n\n    var @default = new AliCloud.ClickHouseEnterpriseDbCluster.Account(\"default\", new()\n    {\n        AccountValue = \"abc\",\n        Description = \"example_desc\",\n        DbInstanceId = defaultWrovOd.Id,\n        AccountType = \"NormalAccount\",\n        Password = \"abc123456!\",\n        DmlAuthSetting = new AliCloud.clickHouseEnterpriseDbCluster.Inputs.AccountDmlAuthSettingArgs\n        {\n            DmlAuthority = 0,\n            DdlAuthority = true,\n            AllowDictionaries = new[]\n            {\n                \"*\",\n            },\n            AllowDatabases = new[]\n            {\n                \"*\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/clickhouseenterprisedbcluster\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tregionId := \"cn-beijing\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\tvswIpRangeI := \"172.16.1.0/24\"\n\t\tif param := cfg.Get(\"vswIpRangeI\"); param != \"\" {\n\t\t\tvswIpRangeI = param\n\t\t}\n\t\tvpcIpRange := \"172.16.0.0/12\"\n\t\tif param := cfg.Get(\"vpcIpRange\"); param != \"\" {\n\t\t\tvpcIpRange = param\n\t\t}\n\t\tzoneIdI := \"cn-beijing-i\"\n\t\tif param := cfg.Get(\"zoneIdI\"); param != \"\" {\n\t\t\tzoneIdI = param\n\t\t}\n\t\tdefaultktKLuM, err := vpc.NewNetwork(ctx, \"defaultktKLuM\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(vpcIpRange),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTQWN3k, err := vpc.NewSwitch(ctx, \"defaultTQWN3k\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultktKLuM.ID(),\n\t\t\tZoneId:    pulumi.String(zoneIdI),\n\t\t\tCidrBlock: pulumi.String(vswIpRangeI),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultWrovOd, err := clickhouseenterprisedbcluster.NewClickHouseEnterpriseDbCluster(ctx, \"defaultWrovOd\", \u0026clickhouseenterprisedbcluster.ClickHouseEnterpriseDbClusterArgs{\n\t\t\tZoneId:    pulumi.String(zoneIdI),\n\t\t\tVpcId:     defaultktKLuM.ID(),\n\t\t\tScaleMin:  pulumi.String(\"8\"),\n\t\t\tScaleMax:  pulumi.String(\"16\"),\n\t\t\tVswitchId: defaultTQWN3k.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = clickhouseenterprisedbcluster.NewAccount(ctx, \"default\", \u0026clickhouseenterprisedbcluster.AccountArgs{\n\t\t\tAccount:      pulumi.String(\"abc\"),\n\t\t\tDescription:  pulumi.String(\"example_desc\"),\n\t\t\tDbInstanceId: defaultWrovOd.ID(),\n\t\t\tAccountType:  pulumi.String(\"NormalAccount\"),\n\t\t\tPassword:     pulumi.String(\"abc123456!\"),\n\t\t\tDmlAuthSetting: \u0026clickhouseenterprisedbcluster.AccountDmlAuthSettingArgs{\n\t\t\t\tDmlAuthority: pulumi.Int(0),\n\t\t\t\tDdlAuthority: pulumi.Bool(true),\n\t\t\t\tAllowDictionaries: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t},\n\t\t\t\tAllowDatabases: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbClusterArgs;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.Account;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.AccountArgs;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.inputs.AccountDmlAuthSettingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-beijing\");\n        final var vswIpRangeI = config.get(\"vswIpRangeI\").orElse(\"172.16.1.0/24\");\n        final var vpcIpRange = config.get(\"vpcIpRange\").orElse(\"172.16.0.0/12\");\n        final var zoneIdI = config.get(\"zoneIdI\").orElse(\"cn-beijing-i\");\n        var defaultktKLuM = new Network(\"defaultktKLuM\", NetworkArgs.builder()\n            .cidrBlock(vpcIpRange)\n            .build());\n\n        var defaultTQWN3k = new Switch(\"defaultTQWN3k\", SwitchArgs.builder()\n            .vpcId(defaultktKLuM.id())\n            .zoneId(zoneIdI)\n            .cidrBlock(vswIpRangeI)\n            .build());\n\n        var defaultWrovOd = new ClickHouseEnterpriseDbCluster(\"defaultWrovOd\", ClickHouseEnterpriseDbClusterArgs.builder()\n            .zoneId(zoneIdI)\n            .vpcId(defaultktKLuM.id())\n            .scaleMin(\"8\")\n            .scaleMax(\"16\")\n            .vswitchId(defaultTQWN3k.id())\n            .build());\n\n        var default_ = new Account(\"default\", AccountArgs.builder()\n            .account(\"abc\")\n            .description(\"example_desc\")\n            .dbInstanceId(defaultWrovOd.id())\n            .accountType(\"NormalAccount\")\n            .password(\"abc123456!\")\n            .dmlAuthSetting(AccountDmlAuthSettingArgs.builder()\n                .dmlAuthority(0)\n                .ddlAuthority(true)\n                .allowDictionaries(\"*\")\n                .allowDatabases(\"*\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  regionId:\n    type: string\n    default: cn-beijing\n  vswIpRangeI:\n    type: string\n    default: 172.16.1.0/24\n  vpcIpRange:\n    type: string\n    default: 172.16.0.0/12\n  zoneIdI:\n    type: string\n    default: cn-beijing-i\nresources:\n  defaultktKLuM:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: ${vpcIpRange}\n  defaultTQWN3k:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultktKLuM.id}\n      zoneId: ${zoneIdI}\n      cidrBlock: ${vswIpRangeI}\n  defaultWrovOd:\n    type: alicloud:clickhouseenterprisedbcluster:ClickHouseEnterpriseDbCluster\n    properties:\n      zoneId: ${zoneIdI}\n      vpcId: ${defaultktKLuM.id}\n      scaleMin: '8'\n      scaleMax: '16'\n      vswitchId: ${defaultTQWN3k.id}\n  default:\n    type: alicloud:clickhouseenterprisedbcluster:Account\n    properties:\n      account: abc\n      description: example_desc\n      dbInstanceId: ${defaultWrovOd.id}\n      accountType: NormalAccount\n      password: abc123456!\n      dmlAuthSetting:\n        dmlAuthority: '0'\n        ddlAuthority: true\n        allowDictionaries:\n          - '*'\n        allowDatabases:\n          - '*'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nClick House Enterprise Db Cluster Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:clickhouseenterprisedbcluster/account:Account example \u003cdb_instance_id\u003e:\u003caccount\u003e\n```\n\n","properties":{"account":{"type":"string","description":"The name of the database account.\n","language":{"csharp":{"name":"AccountValue"}}},"accountType":{"type":"string","description":"The type of the database account. Valid values:\n- `NormalAccount`: Normal account number.\n- `SuperAccount`: The privileged account.\n"},"dbInstanceId":{"type":"string","description":"The cluster ID.\n"},"description":{"type":"string","description":"Note information.\n"},"dmlAuthSetting":{"$ref":"#/types/alicloud:clickhouseenterprisedbcluster/AccountDmlAuthSetting:AccountDmlAuthSetting","description":"Authorization information. See \u003cspan pulumi-lang-nodejs=\"`dmlAuthSetting`\" pulumi-lang-dotnet=\"`DmlAuthSetting`\" pulumi-lang-go=\"`dmlAuthSetting`\" pulumi-lang-python=\"`dml_auth_setting`\" pulumi-lang-yaml=\"`dmlAuthSetting`\" pulumi-lang-java=\"`dmlAuthSetting`\"\u003e`dml_auth_setting`\u003c/span\u003e below.\n"},"password":{"type":"string","description":"Database account password. Set the following rules.\n- Consists of at least three of uppercase letters, lowercase letters, numbers, and special characters.\n- Oh-! @#$%^\u0026 *()_+-= is a special character.\n- Length is 8~32 characters.\n","secret":true}},"required":["account","accountType","dbInstanceId","password"],"inputProperties":{"account":{"type":"string","description":"The name of the database account.\n","language":{"csharp":{"name":"AccountValue"}},"willReplaceOnChanges":true},"accountType":{"type":"string","description":"The type of the database account. Valid values:\n- `NormalAccount`: Normal account number.\n- `SuperAccount`: The privileged account.\n","willReplaceOnChanges":true},"dbInstanceId":{"type":"string","description":"The cluster ID.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Note information.\n"},"dmlAuthSetting":{"$ref":"#/types/alicloud:clickhouseenterprisedbcluster/AccountDmlAuthSetting:AccountDmlAuthSetting","description":"Authorization information. See \u003cspan pulumi-lang-nodejs=\"`dmlAuthSetting`\" pulumi-lang-dotnet=\"`DmlAuthSetting`\" pulumi-lang-go=\"`dmlAuthSetting`\" pulumi-lang-python=\"`dml_auth_setting`\" pulumi-lang-yaml=\"`dmlAuthSetting`\" pulumi-lang-java=\"`dmlAuthSetting`\"\u003e`dml_auth_setting`\u003c/span\u003e below.\n"},"password":{"type":"string","description":"Database account password. Set the following rules.\n- Consists of at least three of uppercase letters, lowercase letters, numbers, and special characters.\n- Oh-! @#$%^\u0026 *()_+-= is a special character.\n- Length is 8~32 characters.\n","secret":true}},"requiredInputs":["account","accountType","dbInstanceId","password"],"stateInputs":{"description":"Input properties used for looking up and filtering Account resources.\n","properties":{"account":{"type":"string","description":"The name of the database account.\n","language":{"csharp":{"name":"AccountValue"}},"willReplaceOnChanges":true},"accountType":{"type":"string","description":"The type of the database account. Valid values:\n- `NormalAccount`: Normal account number.\n- `SuperAccount`: The privileged account.\n","willReplaceOnChanges":true},"dbInstanceId":{"type":"string","description":"The cluster ID.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Note information.\n"},"dmlAuthSetting":{"$ref":"#/types/alicloud:clickhouseenterprisedbcluster/AccountDmlAuthSetting:AccountDmlAuthSetting","description":"Authorization information. See \u003cspan pulumi-lang-nodejs=\"`dmlAuthSetting`\" pulumi-lang-dotnet=\"`DmlAuthSetting`\" pulumi-lang-go=\"`dmlAuthSetting`\" pulumi-lang-python=\"`dml_auth_setting`\" pulumi-lang-yaml=\"`dmlAuthSetting`\" pulumi-lang-java=\"`dmlAuthSetting`\"\u003e`dml_auth_setting`\u003c/span\u003e below.\n"},"password":{"type":"string","description":"Database account password. Set the following rules.\n- Consists of at least three of uppercase letters, lowercase letters, numbers, and special characters.\n- Oh-! @#$%^\u0026 *()_+-= is a special character.\n- Length is 8~32 characters.\n","secret":true}},"type":"object"}},"alicloud:clickhouseenterprisedbcluster/backupPolicy:BackupPolicy":{"description":"Provides a Click House Enterprise Db Cluster Backup Policy resource.\n\nEnterprise ClickHouse instance backup policy.\n\nFor information about Click House Enterprise Db Cluster Backup Policy and how to use it, see [What is Enterprise Db Cluster Backup Policy](https://next.api.alibabacloud.com/document/clickhouse/2023-05-22/CreateBackupPolicy).\n\n\u003e **NOTE:** Available since v1.247.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst regionId = config.get(\"regionId\") || \"cn-beijing\";\nconst vswIpRangeI = config.get(\"vswIpRangeI\") || \"172.16.1.0/24\";\nconst vpcIpRange = config.get(\"vpcIpRange\") || \"172.16.0.0/12\";\nconst zoneIdI = config.get(\"zoneIdI\") || \"cn-beijing-i\";\nconst defaultktKLuM = new alicloud.vpc.Network(\"defaultktKLuM\", {cidrBlock: vpcIpRange});\nconst defaultTQWN3k = new alicloud.vpc.Switch(\"defaultTQWN3k\", {\n    vpcId: defaultktKLuM.id,\n    zoneId: zoneIdI,\n    cidrBlock: vswIpRangeI,\n});\nconst default1tTLwe = new alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster(\"default1tTLwe\", {\n    zoneId: zoneIdI,\n    vpcId: defaultktKLuM.id,\n    scaleMin: \"8\",\n    scaleMax: \"16\",\n    vswitchId: defaultTQWN3k.id,\n});\nconst _default = new alicloud.clickhouseenterprisedbcluster.BackupPolicy(\"default\", {\n    preferredBackupPeriod: \"Monday\",\n    preferredBackupTime: \"04:00Z-05:00Z\",\n    backupRetentionPeriod: 7,\n    dbInstanceId: default1tTLwe.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-beijing\"\nvsw_ip_range_i = config.get(\"vswIpRangeI\")\nif vsw_ip_range_i is None:\n    vsw_ip_range_i = \"172.16.1.0/24\"\nvpc_ip_range = config.get(\"vpcIpRange\")\nif vpc_ip_range is None:\n    vpc_ip_range = \"172.16.0.0/12\"\nzone_id_i = config.get(\"zoneIdI\")\nif zone_id_i is None:\n    zone_id_i = \"cn-beijing-i\"\ndefaultkt_k_lu_m = alicloud.vpc.Network(\"defaultktKLuM\", cidr_block=vpc_ip_range)\ndefault_tqwn3k = alicloud.vpc.Switch(\"defaultTQWN3k\",\n    vpc_id=defaultkt_k_lu_m.id,\n    zone_id=zone_id_i,\n    cidr_block=vsw_ip_range_i)\ndefault1t_t_lwe = alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster(\"default1tTLwe\",\n    zone_id=zone_id_i,\n    vpc_id=defaultkt_k_lu_m.id,\n    scale_min=\"8\",\n    scale_max=\"16\",\n    vswitch_id=default_tqwn3k.id)\ndefault = alicloud.clickhouseenterprisedbcluster.BackupPolicy(\"default\",\n    preferred_backup_period=\"Monday\",\n    preferred_backup_time=\"04:00Z-05:00Z\",\n    backup_retention_period=7,\n    db_instance_id=default1t_t_lwe.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-beijing\";\n    var vswIpRangeI = config.Get(\"vswIpRangeI\") ?? \"172.16.1.0/24\";\n    var vpcIpRange = config.Get(\"vpcIpRange\") ?? \"172.16.0.0/12\";\n    var zoneIdI = config.Get(\"zoneIdI\") ?? \"cn-beijing-i\";\n    var defaultktKLuM = new AliCloud.Vpc.Network(\"defaultktKLuM\", new()\n    {\n        CidrBlock = vpcIpRange,\n    });\n\n    var defaultTQWN3k = new AliCloud.Vpc.Switch(\"defaultTQWN3k\", new()\n    {\n        VpcId = defaultktKLuM.Id,\n        ZoneId = zoneIdI,\n        CidrBlock = vswIpRangeI,\n    });\n\n    var default1tTLwe = new AliCloud.ClickHouseEnterpriseDbCluster.ClickHouseEnterpriseDbCluster(\"default1tTLwe\", new()\n    {\n        ZoneId = zoneIdI,\n        VpcId = defaultktKLuM.Id,\n        ScaleMin = \"8\",\n        ScaleMax = \"16\",\n        VswitchId = defaultTQWN3k.Id,\n    });\n\n    var @default = new AliCloud.ClickHouseEnterpriseDbCluster.BackupPolicy(\"default\", new()\n    {\n        PreferredBackupPeriod = \"Monday\",\n        PreferredBackupTime = \"04:00Z-05:00Z\",\n        BackupRetentionPeriod = 7,\n        DbInstanceId = default1tTLwe.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/clickhouseenterprisedbcluster\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tregionId := \"cn-beijing\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\tvswIpRangeI := \"172.16.1.0/24\"\n\t\tif param := cfg.Get(\"vswIpRangeI\"); param != \"\" {\n\t\t\tvswIpRangeI = param\n\t\t}\n\t\tvpcIpRange := \"172.16.0.0/12\"\n\t\tif param := cfg.Get(\"vpcIpRange\"); param != \"\" {\n\t\t\tvpcIpRange = param\n\t\t}\n\t\tzoneIdI := \"cn-beijing-i\"\n\t\tif param := cfg.Get(\"zoneIdI\"); param != \"\" {\n\t\t\tzoneIdI = param\n\t\t}\n\t\tdefaultktKLuM, err := vpc.NewNetwork(ctx, \"defaultktKLuM\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(vpcIpRange),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTQWN3k, err := vpc.NewSwitch(ctx, \"defaultTQWN3k\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultktKLuM.ID(),\n\t\t\tZoneId:    pulumi.String(zoneIdI),\n\t\t\tCidrBlock: pulumi.String(vswIpRangeI),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1tTLwe, err := clickhouseenterprisedbcluster.NewClickHouseEnterpriseDbCluster(ctx, \"default1tTLwe\", \u0026clickhouseenterprisedbcluster.ClickHouseEnterpriseDbClusterArgs{\n\t\t\tZoneId:    pulumi.String(zoneIdI),\n\t\t\tVpcId:     defaultktKLuM.ID(),\n\t\t\tScaleMin:  pulumi.String(\"8\"),\n\t\t\tScaleMax:  pulumi.String(\"16\"),\n\t\t\tVswitchId: defaultTQWN3k.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = clickhouseenterprisedbcluster.NewBackupPolicy(ctx, \"default\", \u0026clickhouseenterprisedbcluster.BackupPolicyArgs{\n\t\t\tPreferredBackupPeriod: pulumi.String(\"Monday\"),\n\t\t\tPreferredBackupTime:   pulumi.String(\"04:00Z-05:00Z\"),\n\t\t\tBackupRetentionPeriod: pulumi.Int(7),\n\t\t\tDbInstanceId:          default1tTLwe.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbClusterArgs;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.BackupPolicy;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.BackupPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-beijing\");\n        final var vswIpRangeI = config.get(\"vswIpRangeI\").orElse(\"172.16.1.0/24\");\n        final var vpcIpRange = config.get(\"vpcIpRange\").orElse(\"172.16.0.0/12\");\n        final var zoneIdI = config.get(\"zoneIdI\").orElse(\"cn-beijing-i\");\n        var defaultktKLuM = new Network(\"defaultktKLuM\", NetworkArgs.builder()\n            .cidrBlock(vpcIpRange)\n            .build());\n\n        var defaultTQWN3k = new Switch(\"defaultTQWN3k\", SwitchArgs.builder()\n            .vpcId(defaultktKLuM.id())\n            .zoneId(zoneIdI)\n            .cidrBlock(vswIpRangeI)\n            .build());\n\n        var default1tTLwe = new ClickHouseEnterpriseDbCluster(\"default1tTLwe\", ClickHouseEnterpriseDbClusterArgs.builder()\n            .zoneId(zoneIdI)\n            .vpcId(defaultktKLuM.id())\n            .scaleMin(\"8\")\n            .scaleMax(\"16\")\n            .vswitchId(defaultTQWN3k.id())\n            .build());\n\n        var default_ = new BackupPolicy(\"default\", BackupPolicyArgs.builder()\n            .preferredBackupPeriod(\"Monday\")\n            .preferredBackupTime(\"04:00Z-05:00Z\")\n            .backupRetentionPeriod(7)\n            .dbInstanceId(default1tTLwe.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  regionId:\n    type: string\n    default: cn-beijing\n  vswIpRangeI:\n    type: string\n    default: 172.16.1.0/24\n  vpcIpRange:\n    type: string\n    default: 172.16.0.0/12\n  zoneIdI:\n    type: string\n    default: cn-beijing-i\nresources:\n  defaultktKLuM:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: ${vpcIpRange}\n  defaultTQWN3k:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultktKLuM.id}\n      zoneId: ${zoneIdI}\n      cidrBlock: ${vswIpRangeI}\n  default1tTLwe:\n    type: alicloud:clickhouseenterprisedbcluster:ClickHouseEnterpriseDbCluster\n    properties:\n      zoneId: ${zoneIdI}\n      vpcId: ${defaultktKLuM.id}\n      scaleMin: '8'\n      scaleMax: '16'\n      vswitchId: ${defaultTQWN3k.id}\n  default:\n    type: alicloud:clickhouseenterprisedbcluster:BackupPolicy\n    properties:\n      preferredBackupPeriod: Monday\n      preferredBackupTime: 04:00Z-05:00Z\n      backupRetentionPeriod: '7'\n      dbInstanceId: ${default1tTLwe.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nClick House Enterprise Db Cluster Backup Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:clickhouseenterprisedbcluster/backupPolicy:BackupPolicy example \u003cdb_instance_id\u003e\n```\n\n","properties":{"backupRetentionPeriod":{"type":"integer","description":"Backup retention time.\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n"},"preferredBackupPeriod":{"type":"string","description":"Backup period.\n"},"preferredBackupTime":{"type":"string","description":"Backup time.\n"}},"required":["backupRetentionPeriod","dbInstanceId","preferredBackupPeriod","preferredBackupTime"],"inputProperties":{"backupRetentionPeriod":{"type":"integer","description":"Backup retention time.\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"preferredBackupPeriod":{"type":"string","description":"Backup period.\n"},"preferredBackupTime":{"type":"string","description":"Backup time.\n"}},"requiredInputs":["backupRetentionPeriod","dbInstanceId","preferredBackupPeriod","preferredBackupTime"],"stateInputs":{"description":"Input properties used for looking up and filtering BackupPolicy resources.\n","properties":{"backupRetentionPeriod":{"type":"integer","description":"Backup retention time.\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"preferredBackupPeriod":{"type":"string","description":"Backup period.\n"},"preferredBackupTime":{"type":"string","description":"Backup time.\n"}},"type":"object"}},"alicloud:clickhouseenterprisedbcluster/clickHouseEnterpriseDbCluster:ClickHouseEnterpriseDbCluster":{"description":"Provides a Click House Enterprise Db Cluster resource.\n\nEnterprise Edition Cluster Resources.\n\nFor information about Click House Enterprise Db Cluster and how to use it, see [What is Enterprise Db Cluster](https://next.api.alibabacloud.com/document/clickhouse/2023-05-22/CreateDBInstance).\n\n\u003e **NOTE:** Available since v1.247.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst vswIpRangeI = config.get(\"vswIpRangeI\") || \"172.16.1.0/24\";\nconst regionId = config.get(\"regionId\") || \"cn-beijing\";\nconst vpcIpRange = config.get(\"vpcIpRange\") || \"172.16.0.0/12\";\nconst vswIpRangeK = config.get(\"vswIpRangeK\") || \"172.16.3.0/24\";\nconst vswIpRangeL = config.get(\"vswIpRangeL\") || \"172.16.2.0/24\";\nconst zoneIdI = config.get(\"zoneIdI\") || \"cn-beijing-i\";\nconst zoneIdL = config.get(\"zoneIdL\") || \"cn-beijing-l\";\nconst zoneIdK = config.get(\"zoneIdK\") || \"cn-beijing-k\";\nconst defaultktKLuM = new alicloud.vpc.Network(\"defaultktKLuM\", {cidrBlock: vpcIpRange});\nconst defaultTQWN3k = new alicloud.vpc.Switch(\"defaultTQWN3k\", {\n    vpcId: defaultktKLuM.id,\n    zoneId: zoneIdI,\n    cidrBlock: vswIpRangeI,\n});\nconst defaultylyLu8 = new alicloud.vpc.Switch(\"defaultylyLu8\", {\n    vpcId: defaultktKLuM.id,\n    zoneId: zoneIdL,\n    cidrBlock: vswIpRangeL,\n});\nconst defaultRNbPh8 = new alicloud.vpc.Switch(\"defaultRNbPh8\", {\n    vpcId: defaultktKLuM.id,\n    zoneId: zoneIdK,\n    cidrBlock: vswIpRangeK,\n});\nconst _default = new alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster(\"default\", {\n    zoneId: zoneIdI,\n    vpcId: defaultktKLuM.id,\n    scaleMin: \"8\",\n    scaleMax: \"16\",\n    vswitchId: defaultTQWN3k.id,\n    multiZones: [\n        {\n            vswitchIds: [defaultTQWN3k.id],\n            zoneId: zoneIdI,\n        },\n        {\n            vswitchIds: [defaultylyLu8.id],\n            zoneId: zoneIdL,\n        },\n        {\n            vswitchIds: [defaultRNbPh8.id],\n            zoneId: zoneIdK,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nvsw_ip_range_i = config.get(\"vswIpRangeI\")\nif vsw_ip_range_i is None:\n    vsw_ip_range_i = \"172.16.1.0/24\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-beijing\"\nvpc_ip_range = config.get(\"vpcIpRange\")\nif vpc_ip_range is None:\n    vpc_ip_range = \"172.16.0.0/12\"\nvsw_ip_range_k = config.get(\"vswIpRangeK\")\nif vsw_ip_range_k is None:\n    vsw_ip_range_k = \"172.16.3.0/24\"\nvsw_ip_range_l = config.get(\"vswIpRangeL\")\nif vsw_ip_range_l is None:\n    vsw_ip_range_l = \"172.16.2.0/24\"\nzone_id_i = config.get(\"zoneIdI\")\nif zone_id_i is None:\n    zone_id_i = \"cn-beijing-i\"\nzone_id_l = config.get(\"zoneIdL\")\nif zone_id_l is None:\n    zone_id_l = \"cn-beijing-l\"\nzone_id_k = config.get(\"zoneIdK\")\nif zone_id_k is None:\n    zone_id_k = \"cn-beijing-k\"\ndefaultkt_k_lu_m = alicloud.vpc.Network(\"defaultktKLuM\", cidr_block=vpc_ip_range)\ndefault_tqwn3k = alicloud.vpc.Switch(\"defaultTQWN3k\",\n    vpc_id=defaultkt_k_lu_m.id,\n    zone_id=zone_id_i,\n    cidr_block=vsw_ip_range_i)\ndefaultyly_lu8 = alicloud.vpc.Switch(\"defaultylyLu8\",\n    vpc_id=defaultkt_k_lu_m.id,\n    zone_id=zone_id_l,\n    cidr_block=vsw_ip_range_l)\ndefault_r_nb_ph8 = alicloud.vpc.Switch(\"defaultRNbPh8\",\n    vpc_id=defaultkt_k_lu_m.id,\n    zone_id=zone_id_k,\n    cidr_block=vsw_ip_range_k)\ndefault = alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster(\"default\",\n    zone_id=zone_id_i,\n    vpc_id=defaultkt_k_lu_m.id,\n    scale_min=\"8\",\n    scale_max=\"16\",\n    vswitch_id=default_tqwn3k.id,\n    multi_zones=[\n        {\n            \"vswitch_ids\": [default_tqwn3k.id],\n            \"zone_id\": zone_id_i,\n        },\n        {\n            \"vswitch_ids\": [defaultyly_lu8.id],\n            \"zone_id\": zone_id_l,\n        },\n        {\n            \"vswitch_ids\": [default_r_nb_ph8.id],\n            \"zone_id\": zone_id_k,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var vswIpRangeI = config.Get(\"vswIpRangeI\") ?? \"172.16.1.0/24\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-beijing\";\n    var vpcIpRange = config.Get(\"vpcIpRange\") ?? \"172.16.0.0/12\";\n    var vswIpRangeK = config.Get(\"vswIpRangeK\") ?? \"172.16.3.0/24\";\n    var vswIpRangeL = config.Get(\"vswIpRangeL\") ?? \"172.16.2.0/24\";\n    var zoneIdI = config.Get(\"zoneIdI\") ?? \"cn-beijing-i\";\n    var zoneIdL = config.Get(\"zoneIdL\") ?? \"cn-beijing-l\";\n    var zoneIdK = config.Get(\"zoneIdK\") ?? \"cn-beijing-k\";\n    var defaultktKLuM = new AliCloud.Vpc.Network(\"defaultktKLuM\", new()\n    {\n        CidrBlock = vpcIpRange,\n    });\n\n    var defaultTQWN3k = new AliCloud.Vpc.Switch(\"defaultTQWN3k\", new()\n    {\n        VpcId = defaultktKLuM.Id,\n        ZoneId = zoneIdI,\n        CidrBlock = vswIpRangeI,\n    });\n\n    var defaultylyLu8 = new AliCloud.Vpc.Switch(\"defaultylyLu8\", new()\n    {\n        VpcId = defaultktKLuM.Id,\n        ZoneId = zoneIdL,\n        CidrBlock = vswIpRangeL,\n    });\n\n    var defaultRNbPh8 = new AliCloud.Vpc.Switch(\"defaultRNbPh8\", new()\n    {\n        VpcId = defaultktKLuM.Id,\n        ZoneId = zoneIdK,\n        CidrBlock = vswIpRangeK,\n    });\n\n    var @default = new AliCloud.ClickHouseEnterpriseDbCluster.ClickHouseEnterpriseDbCluster(\"default\", new()\n    {\n        ZoneId = zoneIdI,\n        VpcId = defaultktKLuM.Id,\n        ScaleMin = \"8\",\n        ScaleMax = \"16\",\n        VswitchId = defaultTQWN3k.Id,\n        MultiZones = new[]\n        {\n            new AliCloud.clickHouseEnterpriseDbCluster.Inputs.ClickHouseEnterpriseDbClusterMultiZoneArgs\n            {\n                VswitchIds = new[]\n                {\n                    defaultTQWN3k.Id,\n                },\n                ZoneId = zoneIdI,\n            },\n            new AliCloud.clickHouseEnterpriseDbCluster.Inputs.ClickHouseEnterpriseDbClusterMultiZoneArgs\n            {\n                VswitchIds = new[]\n                {\n                    defaultylyLu8.Id,\n                },\n                ZoneId = zoneIdL,\n            },\n            new AliCloud.clickHouseEnterpriseDbCluster.Inputs.ClickHouseEnterpriseDbClusterMultiZoneArgs\n            {\n                VswitchIds = new[]\n                {\n                    defaultRNbPh8.Id,\n                },\n                ZoneId = zoneIdK,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/clickhouseenterprisedbcluster\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tvswIpRangeI := \"172.16.1.0/24\"\n\t\tif param := cfg.Get(\"vswIpRangeI\"); param != \"\" {\n\t\t\tvswIpRangeI = param\n\t\t}\n\t\tregionId := \"cn-beijing\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\tvpcIpRange := \"172.16.0.0/12\"\n\t\tif param := cfg.Get(\"vpcIpRange\"); param != \"\" {\n\t\t\tvpcIpRange = param\n\t\t}\n\t\tvswIpRangeK := \"172.16.3.0/24\"\n\t\tif param := cfg.Get(\"vswIpRangeK\"); param != \"\" {\n\t\t\tvswIpRangeK = param\n\t\t}\n\t\tvswIpRangeL := \"172.16.2.0/24\"\n\t\tif param := cfg.Get(\"vswIpRangeL\"); param != \"\" {\n\t\t\tvswIpRangeL = param\n\t\t}\n\t\tzoneIdI := \"cn-beijing-i\"\n\t\tif param := cfg.Get(\"zoneIdI\"); param != \"\" {\n\t\t\tzoneIdI = param\n\t\t}\n\t\tzoneIdL := \"cn-beijing-l\"\n\t\tif param := cfg.Get(\"zoneIdL\"); param != \"\" {\n\t\t\tzoneIdL = param\n\t\t}\n\t\tzoneIdK := \"cn-beijing-k\"\n\t\tif param := cfg.Get(\"zoneIdK\"); param != \"\" {\n\t\t\tzoneIdK = param\n\t\t}\n\t\tdefaultktKLuM, err := vpc.NewNetwork(ctx, \"defaultktKLuM\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(vpcIpRange),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTQWN3k, err := vpc.NewSwitch(ctx, \"defaultTQWN3k\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultktKLuM.ID(),\n\t\t\tZoneId:    pulumi.String(zoneIdI),\n\t\t\tCidrBlock: pulumi.String(vswIpRangeI),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultylyLu8, err := vpc.NewSwitch(ctx, \"defaultylyLu8\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultktKLuM.ID(),\n\t\t\tZoneId:    pulumi.String(zoneIdL),\n\t\t\tCidrBlock: pulumi.String(vswIpRangeL),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRNbPh8, err := vpc.NewSwitch(ctx, \"defaultRNbPh8\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultktKLuM.ID(),\n\t\t\tZoneId:    pulumi.String(zoneIdK),\n\t\t\tCidrBlock: pulumi.String(vswIpRangeK),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = clickhouseenterprisedbcluster.NewClickHouseEnterpriseDbCluster(ctx, \"default\", \u0026clickhouseenterprisedbcluster.ClickHouseEnterpriseDbClusterArgs{\n\t\t\tZoneId:    pulumi.String(zoneIdI),\n\t\t\tVpcId:     defaultktKLuM.ID(),\n\t\t\tScaleMin:  pulumi.String(\"8\"),\n\t\t\tScaleMax:  pulumi.String(\"16\"),\n\t\t\tVswitchId: defaultTQWN3k.ID(),\n\t\t\tMultiZones: clickhouseenterprisedbcluster.ClickHouseEnterpriseDbClusterMultiZoneArray{\n\t\t\t\t\u0026clickhouseenterprisedbcluster.ClickHouseEnterpriseDbClusterMultiZoneArgs{\n\t\t\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\t\t\tdefaultTQWN3k.ID(),\n\t\t\t\t\t},\n\t\t\t\t\tZoneId: pulumi.String(zoneIdI),\n\t\t\t\t},\n\t\t\t\t\u0026clickhouseenterprisedbcluster.ClickHouseEnterpriseDbClusterMultiZoneArgs{\n\t\t\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\t\t\tdefaultylyLu8.ID(),\n\t\t\t\t\t},\n\t\t\t\t\tZoneId: pulumi.String(zoneIdL),\n\t\t\t\t},\n\t\t\t\t\u0026clickhouseenterprisedbcluster.ClickHouseEnterpriseDbClusterMultiZoneArgs{\n\t\t\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\t\t\tdefaultRNbPh8.ID(),\n\t\t\t\t\t},\n\t\t\t\t\tZoneId: pulumi.String(zoneIdK),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbClusterArgs;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.inputs.ClickHouseEnterpriseDbClusterMultiZoneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var vswIpRangeI = config.get(\"vswIpRangeI\").orElse(\"172.16.1.0/24\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-beijing\");\n        final var vpcIpRange = config.get(\"vpcIpRange\").orElse(\"172.16.0.0/12\");\n        final var vswIpRangeK = config.get(\"vswIpRangeK\").orElse(\"172.16.3.0/24\");\n        final var vswIpRangeL = config.get(\"vswIpRangeL\").orElse(\"172.16.2.0/24\");\n        final var zoneIdI = config.get(\"zoneIdI\").orElse(\"cn-beijing-i\");\n        final var zoneIdL = config.get(\"zoneIdL\").orElse(\"cn-beijing-l\");\n        final var zoneIdK = config.get(\"zoneIdK\").orElse(\"cn-beijing-k\");\n        var defaultktKLuM = new Network(\"defaultktKLuM\", NetworkArgs.builder()\n            .cidrBlock(vpcIpRange)\n            .build());\n\n        var defaultTQWN3k = new Switch(\"defaultTQWN3k\", SwitchArgs.builder()\n            .vpcId(defaultktKLuM.id())\n            .zoneId(zoneIdI)\n            .cidrBlock(vswIpRangeI)\n            .build());\n\n        var defaultylyLu8 = new Switch(\"defaultylyLu8\", SwitchArgs.builder()\n            .vpcId(defaultktKLuM.id())\n            .zoneId(zoneIdL)\n            .cidrBlock(vswIpRangeL)\n            .build());\n\n        var defaultRNbPh8 = new Switch(\"defaultRNbPh8\", SwitchArgs.builder()\n            .vpcId(defaultktKLuM.id())\n            .zoneId(zoneIdK)\n            .cidrBlock(vswIpRangeK)\n            .build());\n\n        var default_ = new ClickHouseEnterpriseDbCluster(\"default\", ClickHouseEnterpriseDbClusterArgs.builder()\n            .zoneId(zoneIdI)\n            .vpcId(defaultktKLuM.id())\n            .scaleMin(\"8\")\n            .scaleMax(\"16\")\n            .vswitchId(defaultTQWN3k.id())\n            .multiZones(            \n                ClickHouseEnterpriseDbClusterMultiZoneArgs.builder()\n                    .vswitchIds(defaultTQWN3k.id())\n                    .zoneId(zoneIdI)\n                    .build(),\n                ClickHouseEnterpriseDbClusterMultiZoneArgs.builder()\n                    .vswitchIds(defaultylyLu8.id())\n                    .zoneId(zoneIdL)\n                    .build(),\n                ClickHouseEnterpriseDbClusterMultiZoneArgs.builder()\n                    .vswitchIds(defaultRNbPh8.id())\n                    .zoneId(zoneIdK)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  vswIpRangeI:\n    type: string\n    default: 172.16.1.0/24\n  regionId:\n    type: string\n    default: cn-beijing\n  vpcIpRange:\n    type: string\n    default: 172.16.0.0/12\n  vswIpRangeK:\n    type: string\n    default: 172.16.3.0/24\n  vswIpRangeL:\n    type: string\n    default: 172.16.2.0/24\n  zoneIdI:\n    type: string\n    default: cn-beijing-i\n  zoneIdL:\n    type: string\n    default: cn-beijing-l\n  zoneIdK:\n    type: string\n    default: cn-beijing-k\nresources:\n  defaultktKLuM:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: ${vpcIpRange}\n  defaultTQWN3k:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultktKLuM.id}\n      zoneId: ${zoneIdI}\n      cidrBlock: ${vswIpRangeI}\n  defaultylyLu8:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultktKLuM.id}\n      zoneId: ${zoneIdL}\n      cidrBlock: ${vswIpRangeL}\n  defaultRNbPh8:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultktKLuM.id}\n      zoneId: ${zoneIdK}\n      cidrBlock: ${vswIpRangeK}\n  default:\n    type: alicloud:clickhouseenterprisedbcluster:ClickHouseEnterpriseDbCluster\n    properties:\n      zoneId: ${zoneIdI}\n      vpcId: ${defaultktKLuM.id}\n      scaleMin: '8'\n      scaleMax: '16'\n      vswitchId: ${defaultTQWN3k.id}\n      multiZones:\n        - vswitchIds:\n            - ${defaultTQWN3k.id}\n          zoneId: ${zoneIdI}\n        - vswitchIds:\n            - ${defaultylyLu8.id}\n          zoneId: ${zoneIdL}\n        - vswitchIds:\n            - ${defaultRNbPh8.id}\n          zoneId: ${zoneIdK}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nClick House Enterprise Db Cluster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:clickhouseenterprisedbcluster/clickHouseEnterpriseDbCluster:ClickHouseEnterpriseDbCluster example \u003cdb_instance_id\u003e\n```\n\n","properties":{"category":{"type":"string","description":"Instance type.\n"},"chargeType":{"type":"string","description":"The billing method.\n"},"computingGroupIds":{"type":"array","items":{"type":"string"},"description":"List of computing group IDs.\n"},"createTime":{"type":"string","description":"The cluster creation time, in the format yyyy-MM-ddTHH:mm:ssZ.\n"},"description":{"type":"string","description":"Cluster description.\n"},"endpoints":{"type":"array","items":{"$ref":"#/types/alicloud:clickhouseenterprisedbcluster/ClickHouseEnterpriseDbClusterEndpoint:ClickHouseEnterpriseDbClusterEndpoint"},"description":"List of endpoint details.\n"},"engineMinorVersion":{"type":"string","description":"The minor version number of the cluster engine.\n"},"instanceNetworkType":{"type":"string","description":"Network type of the instance.\n"},"multiZones":{"type":"array","items":{"$ref":"#/types/alicloud:clickhouseenterprisedbcluster/ClickHouseEnterpriseDbClusterMultiZone:ClickHouseEnterpriseDbClusterMultiZone"},"description":"The multi-zone configuration. See \u003cspan pulumi-lang-nodejs=\"`multiZones`\" pulumi-lang-dotnet=\"`MultiZones`\" pulumi-lang-go=\"`multiZones`\" pulumi-lang-python=\"`multi_zones`\" pulumi-lang-yaml=\"`multiZones`\" pulumi-lang-java=\"`multiZones`\"\u003e`multi_zones`\u003c/span\u003e below.\n"},"nodeCount":{"type":"integer","description":"The number of nodes. Valid values: 2 to 16. This parameter is required when NodeScaleMin and NodeScaleMax are configured to define the auto-scaling range.\n"},"nodeScaleMax":{"type":"integer","description":"Maximum value for serverless node auto scaling. Valid values range from 4 to 32 and must be greater than the minimum value.\n"},"nodeScaleMin":{"type":"integer","description":"The minimum value for serverless node auto-scaling. Valid values: 4–32.\n"},"regionId":{"type":"string","description":"The region ID.\n"},"resourceGroupId":{"type":"string","description":"Resource group ID of the cluster.\n"},"scaleMax":{"type":"string","description":"The maximum value for serverless auto scaling. This parameter is not recommended. We recommend that you use NodeCount, NodeScaleMin, and NodeScaleMax to configure auto scaling capabilities.\n"},"scaleMin":{"type":"string","description":"The minimum value for serverless auto scaling. This parameter is not recommended. We recommend that you use NodeCount, NodeScaleMin, and NodeScaleMax to configure auto scaling capabilities.\n"},"status":{"type":"string","description":"The instance status.\n"},"storageQuota":{"type":"string","description":"Pre-purchased storage capacity (GB).\n"},"storageSize":{"type":"integer","description":"The storage capacity.\n"},"storageType":{"type":"string","description":"The storage type.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tag information.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n"},"vswitchId":{"type":"string","description":"vSwitch ID.\n"},"zoneId":{"type":"string","description":"The zone ID.\n"}},"required":["category","chargeType","computingGroupIds","createTime","description","endpoints","engineMinorVersion","instanceNetworkType","multiZones","nodeCount","nodeScaleMax","nodeScaleMin","regionId","resourceGroupId","scaleMax","scaleMin","status","storageQuota","storageSize","storageType"],"inputProperties":{"description":{"type":"string","description":"Cluster description.\n"},"multiZones":{"type":"array","items":{"$ref":"#/types/alicloud:clickhouseenterprisedbcluster/ClickHouseEnterpriseDbClusterMultiZone:ClickHouseEnterpriseDbClusterMultiZone"},"description":"The multi-zone configuration. See \u003cspan pulumi-lang-nodejs=\"`multiZones`\" pulumi-lang-dotnet=\"`MultiZones`\" pulumi-lang-go=\"`multiZones`\" pulumi-lang-python=\"`multi_zones`\" pulumi-lang-yaml=\"`multiZones`\" pulumi-lang-java=\"`multiZones`\"\u003e`multi_zones`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"nodeCount":{"type":"integer","description":"The number of nodes. Valid values: 2 to 16. This parameter is required when NodeScaleMin and NodeScaleMax are configured to define the auto-scaling range.\n"},"nodeScaleMax":{"type":"integer","description":"Maximum value for serverless node auto scaling. Valid values range from 4 to 32 and must be greater than the minimum value.\n"},"nodeScaleMin":{"type":"integer","description":"The minimum value for serverless node auto-scaling. Valid values: 4–32.\n"},"resourceGroupId":{"type":"string","description":"Resource group ID of the cluster.\n"},"scaleMax":{"type":"string","description":"The maximum value for serverless auto scaling. This parameter is not recommended. We recommend that you use NodeCount, NodeScaleMin, and NodeScaleMax to configure auto scaling capabilities.\n"},"scaleMin":{"type":"string","description":"The minimum value for serverless auto scaling. This parameter is not recommended. We recommend that you use NodeCount, NodeScaleMin, and NodeScaleMax to configure auto scaling capabilities.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tag information.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"vSwitch ID.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering ClickHouseEnterpriseDbCluster resources.\n","properties":{"category":{"type":"string","description":"Instance type.\n"},"chargeType":{"type":"string","description":"The billing method.\n"},"computingGroupIds":{"type":"array","items":{"type":"string"},"description":"List of computing group IDs.\n"},"createTime":{"type":"string","description":"The cluster creation time, in the format yyyy-MM-ddTHH:mm:ssZ.\n"},"description":{"type":"string","description":"Cluster description.\n"},"endpoints":{"type":"array","items":{"$ref":"#/types/alicloud:clickhouseenterprisedbcluster/ClickHouseEnterpriseDbClusterEndpoint:ClickHouseEnterpriseDbClusterEndpoint"},"description":"List of endpoint details.\n"},"engineMinorVersion":{"type":"string","description":"The minor version number of the cluster engine.\n"},"instanceNetworkType":{"type":"string","description":"Network type of the instance.\n"},"multiZones":{"type":"array","items":{"$ref":"#/types/alicloud:clickhouseenterprisedbcluster/ClickHouseEnterpriseDbClusterMultiZone:ClickHouseEnterpriseDbClusterMultiZone"},"description":"The multi-zone configuration. See \u003cspan pulumi-lang-nodejs=\"`multiZones`\" pulumi-lang-dotnet=\"`MultiZones`\" pulumi-lang-go=\"`multiZones`\" pulumi-lang-python=\"`multi_zones`\" pulumi-lang-yaml=\"`multiZones`\" pulumi-lang-java=\"`multiZones`\"\u003e`multi_zones`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"nodeCount":{"type":"integer","description":"The number of nodes. Valid values: 2 to 16. This parameter is required when NodeScaleMin and NodeScaleMax are configured to define the auto-scaling range.\n"},"nodeScaleMax":{"type":"integer","description":"Maximum value for serverless node auto scaling. Valid values range from 4 to 32 and must be greater than the minimum value.\n"},"nodeScaleMin":{"type":"integer","description":"The minimum value for serverless node auto-scaling. Valid values: 4–32.\n"},"regionId":{"type":"string","description":"The region ID.\n"},"resourceGroupId":{"type":"string","description":"Resource group ID of the cluster.\n"},"scaleMax":{"type":"string","description":"The maximum value for serverless auto scaling. This parameter is not recommended. We recommend that you use NodeCount, NodeScaleMin, and NodeScaleMax to configure auto scaling capabilities.\n"},"scaleMin":{"type":"string","description":"The minimum value for serverless auto scaling. This parameter is not recommended. We recommend that you use NodeCount, NodeScaleMin, and NodeScaleMax to configure auto scaling capabilities.\n"},"status":{"type":"string","description":"The instance status.\n"},"storageQuota":{"type":"string","description":"Pre-purchased storage capacity (GB).\n"},"storageSize":{"type":"integer","description":"The storage capacity.\n"},"storageType":{"type":"string","description":"The storage type.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tag information.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"vSwitch ID.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:clickhouseenterprisedbcluster/computingGroup:ComputingGroup":{"description":"Provides a Click House Enterprise Db Cluster Computing Group resource.\n\nClickHouse Enterprise Edition Cluster Compute Group.\n\nFor information about Click House Enterprise Db Cluster Computing Group and how to use it, see [What is Enterprise Db Cluster Computing Group](https://next.api.alibabacloud.com/document/clickhouse/2023-05-22/CreateComputingGroup).\n\n\u003e **NOTE:** Available since v1.270.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst vswIpRangeI = config.get(\"vswIpRangeI\") || \"172.16.1.0/24\";\nconst regionId = config.get(\"regionId\") || \"cn-beijing\";\nconst vpcIpRange = config.get(\"vpcIpRange\") || \"172.16.0.0/12\";\nconst vswIpRangeK = config.get(\"vswIpRangeK\") || \"172.16.3.0/24\";\nconst vswIpRangeL = config.get(\"vswIpRangeL\") || \"172.16.2.0/24\";\nconst zoneIdI = config.get(\"zoneIdI\") || \"cn-beijing-i\";\nconst zoneIdL = config.get(\"zoneIdL\") || \"cn-beijing-l\";\nconst zoneIdK = config.get(\"zoneIdK\") || \"cn-beijing-k\";\nconst defaultp2mwWM = new alicloud.vpc.Network(\"defaultp2mwWM\", {cidrBlock: vpcIpRange});\nconst defaultkCZhNu = new alicloud.vpc.Switch(\"defaultkCZhNu\", {\n    vpcId: defaultp2mwWM.id,\n    zoneId: zoneIdI,\n    cidrBlock: vswIpRangeI,\n});\nconst defaultQ5vukB = new alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster(\"defaultQ5vukB\", {\n    zoneId: defaultkCZhNu.zoneId,\n    vpcId: defaultp2mwWM.id,\n    nodeScaleMin: 4,\n    nodeScaleMax: 4,\n    nodeCount: 2,\n    vswitchId: defaultkCZhNu.id,\n});\nconst _default = new alicloud.clickhouseenterprisedbcluster.ComputingGroup(\"default\", {\n    nodeScaleMin: 4,\n    computingGroupDescription: \"example\",\n    nodeCount: 2,\n    dbInstanceId: defaultQ5vukB.id,\n    nodeScaleMax: 4,\n    isReadonly: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nvsw_ip_range_i = config.get(\"vswIpRangeI\")\nif vsw_ip_range_i is None:\n    vsw_ip_range_i = \"172.16.1.0/24\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-beijing\"\nvpc_ip_range = config.get(\"vpcIpRange\")\nif vpc_ip_range is None:\n    vpc_ip_range = \"172.16.0.0/12\"\nvsw_ip_range_k = config.get(\"vswIpRangeK\")\nif vsw_ip_range_k is None:\n    vsw_ip_range_k = \"172.16.3.0/24\"\nvsw_ip_range_l = config.get(\"vswIpRangeL\")\nif vsw_ip_range_l is None:\n    vsw_ip_range_l = \"172.16.2.0/24\"\nzone_id_i = config.get(\"zoneIdI\")\nif zone_id_i is None:\n    zone_id_i = \"cn-beijing-i\"\nzone_id_l = config.get(\"zoneIdL\")\nif zone_id_l is None:\n    zone_id_l = \"cn-beijing-l\"\nzone_id_k = config.get(\"zoneIdK\")\nif zone_id_k is None:\n    zone_id_k = \"cn-beijing-k\"\ndefaultp2mw_wm = alicloud.vpc.Network(\"defaultp2mwWM\", cidr_block=vpc_ip_range)\ndefaultk_c_zh_nu = alicloud.vpc.Switch(\"defaultkCZhNu\",\n    vpc_id=defaultp2mw_wm.id,\n    zone_id=zone_id_i,\n    cidr_block=vsw_ip_range_i)\ndefault_q5vuk_b = alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster(\"defaultQ5vukB\",\n    zone_id=defaultk_c_zh_nu.zone_id,\n    vpc_id=defaultp2mw_wm.id,\n    node_scale_min=4,\n    node_scale_max=4,\n    node_count=2,\n    vswitch_id=defaultk_c_zh_nu.id)\ndefault = alicloud.clickhouseenterprisedbcluster.ComputingGroup(\"default\",\n    node_scale_min=4,\n    computing_group_description=\"example\",\n    node_count=2,\n    db_instance_id=default_q5vuk_b.id,\n    node_scale_max=4,\n    is_readonly=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var vswIpRangeI = config.Get(\"vswIpRangeI\") ?? \"172.16.1.0/24\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-beijing\";\n    var vpcIpRange = config.Get(\"vpcIpRange\") ?? \"172.16.0.0/12\";\n    var vswIpRangeK = config.Get(\"vswIpRangeK\") ?? \"172.16.3.0/24\";\n    var vswIpRangeL = config.Get(\"vswIpRangeL\") ?? \"172.16.2.0/24\";\n    var zoneIdI = config.Get(\"zoneIdI\") ?? \"cn-beijing-i\";\n    var zoneIdL = config.Get(\"zoneIdL\") ?? \"cn-beijing-l\";\n    var zoneIdK = config.Get(\"zoneIdK\") ?? \"cn-beijing-k\";\n    var defaultp2mwWM = new AliCloud.Vpc.Network(\"defaultp2mwWM\", new()\n    {\n        CidrBlock = vpcIpRange,\n    });\n\n    var defaultkCZhNu = new AliCloud.Vpc.Switch(\"defaultkCZhNu\", new()\n    {\n        VpcId = defaultp2mwWM.Id,\n        ZoneId = zoneIdI,\n        CidrBlock = vswIpRangeI,\n    });\n\n    var defaultQ5vukB = new AliCloud.ClickHouseEnterpriseDbCluster.ClickHouseEnterpriseDbCluster(\"defaultQ5vukB\", new()\n    {\n        ZoneId = defaultkCZhNu.ZoneId,\n        VpcId = defaultp2mwWM.Id,\n        NodeScaleMin = 4,\n        NodeScaleMax = 4,\n        NodeCount = 2,\n        VswitchId = defaultkCZhNu.Id,\n    });\n\n    var @default = new AliCloud.ClickHouseEnterpriseDbCluster.ComputingGroup(\"default\", new()\n    {\n        NodeScaleMin = 4,\n        ComputingGroupDescription = \"example\",\n        NodeCount = 2,\n        DbInstanceId = defaultQ5vukB.Id,\n        NodeScaleMax = 4,\n        IsReadonly = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/clickhouseenterprisedbcluster\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tvswIpRangeI := \"172.16.1.0/24\"\n\t\tif param := cfg.Get(\"vswIpRangeI\"); param != \"\" {\n\t\t\tvswIpRangeI = param\n\t\t}\n\t\tregionId := \"cn-beijing\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\tvpcIpRange := \"172.16.0.0/12\"\n\t\tif param := cfg.Get(\"vpcIpRange\"); param != \"\" {\n\t\t\tvpcIpRange = param\n\t\t}\n\t\tvswIpRangeK := \"172.16.3.0/24\"\n\t\tif param := cfg.Get(\"vswIpRangeK\"); param != \"\" {\n\t\t\tvswIpRangeK = param\n\t\t}\n\t\tvswIpRangeL := \"172.16.2.0/24\"\n\t\tif param := cfg.Get(\"vswIpRangeL\"); param != \"\" {\n\t\t\tvswIpRangeL = param\n\t\t}\n\t\tzoneIdI := \"cn-beijing-i\"\n\t\tif param := cfg.Get(\"zoneIdI\"); param != \"\" {\n\t\t\tzoneIdI = param\n\t\t}\n\t\tzoneIdL := \"cn-beijing-l\"\n\t\tif param := cfg.Get(\"zoneIdL\"); param != \"\" {\n\t\t\tzoneIdL = param\n\t\t}\n\t\tzoneIdK := \"cn-beijing-k\"\n\t\tif param := cfg.Get(\"zoneIdK\"); param != \"\" {\n\t\t\tzoneIdK = param\n\t\t}\n\t\tdefaultp2mwWM, err := vpc.NewNetwork(ctx, \"defaultp2mwWM\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(vpcIpRange),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultkCZhNu, err := vpc.NewSwitch(ctx, \"defaultkCZhNu\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultp2mwWM.ID(),\n\t\t\tZoneId:    pulumi.String(zoneIdI),\n\t\t\tCidrBlock: pulumi.String(vswIpRangeI),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultQ5vukB, err := clickhouseenterprisedbcluster.NewClickHouseEnterpriseDbCluster(ctx, \"defaultQ5vukB\", \u0026clickhouseenterprisedbcluster.ClickHouseEnterpriseDbClusterArgs{\n\t\t\tZoneId:       defaultkCZhNu.ZoneId,\n\t\t\tVpcId:        defaultp2mwWM.ID(),\n\t\t\tNodeScaleMin: pulumi.Int(4),\n\t\t\tNodeScaleMax: pulumi.Int(4),\n\t\t\tNodeCount:    pulumi.Int(2),\n\t\t\tVswitchId:    defaultkCZhNu.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = clickhouseenterprisedbcluster.NewComputingGroup(ctx, \"default\", \u0026clickhouseenterprisedbcluster.ComputingGroupArgs{\n\t\t\tNodeScaleMin:              pulumi.Int(4),\n\t\t\tComputingGroupDescription: pulumi.String(\"example\"),\n\t\t\tNodeCount:                 pulumi.Int(2),\n\t\t\tDbInstanceId:              defaultQ5vukB.ID(),\n\t\t\tNodeScaleMax:              pulumi.Int(4),\n\t\t\tIsReadonly:                pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbClusterArgs;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.ComputingGroup;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.ComputingGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var vswIpRangeI = config.get(\"vswIpRangeI\").orElse(\"172.16.1.0/24\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-beijing\");\n        final var vpcIpRange = config.get(\"vpcIpRange\").orElse(\"172.16.0.0/12\");\n        final var vswIpRangeK = config.get(\"vswIpRangeK\").orElse(\"172.16.3.0/24\");\n        final var vswIpRangeL = config.get(\"vswIpRangeL\").orElse(\"172.16.2.0/24\");\n        final var zoneIdI = config.get(\"zoneIdI\").orElse(\"cn-beijing-i\");\n        final var zoneIdL = config.get(\"zoneIdL\").orElse(\"cn-beijing-l\");\n        final var zoneIdK = config.get(\"zoneIdK\").orElse(\"cn-beijing-k\");\n        var defaultp2mwWM = new Network(\"defaultp2mwWM\", NetworkArgs.builder()\n            .cidrBlock(vpcIpRange)\n            .build());\n\n        var defaultkCZhNu = new Switch(\"defaultkCZhNu\", SwitchArgs.builder()\n            .vpcId(defaultp2mwWM.id())\n            .zoneId(zoneIdI)\n            .cidrBlock(vswIpRangeI)\n            .build());\n\n        var defaultQ5vukB = new ClickHouseEnterpriseDbCluster(\"defaultQ5vukB\", ClickHouseEnterpriseDbClusterArgs.builder()\n            .zoneId(defaultkCZhNu.zoneId())\n            .vpcId(defaultp2mwWM.id())\n            .nodeScaleMin(4)\n            .nodeScaleMax(4)\n            .nodeCount(2)\n            .vswitchId(defaultkCZhNu.id())\n            .build());\n\n        var default_ = new ComputingGroup(\"default\", ComputingGroupArgs.builder()\n            .nodeScaleMin(4)\n            .computingGroupDescription(\"example\")\n            .nodeCount(2)\n            .dbInstanceId(defaultQ5vukB.id())\n            .nodeScaleMax(4)\n            .isReadonly(false)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  vswIpRangeI:\n    type: string\n    default: 172.16.1.0/24\n  regionId:\n    type: string\n    default: cn-beijing\n  vpcIpRange:\n    type: string\n    default: 172.16.0.0/12\n  vswIpRangeK:\n    type: string\n    default: 172.16.3.0/24\n  vswIpRangeL:\n    type: string\n    default: 172.16.2.0/24\n  zoneIdI:\n    type: string\n    default: cn-beijing-i\n  zoneIdL:\n    type: string\n    default: cn-beijing-l\n  zoneIdK:\n    type: string\n    default: cn-beijing-k\nresources:\n  defaultp2mwWM:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: ${vpcIpRange}\n  defaultkCZhNu:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultp2mwWM.id}\n      zoneId: ${zoneIdI}\n      cidrBlock: ${vswIpRangeI}\n  defaultQ5vukB:\n    type: alicloud:clickhouseenterprisedbcluster:ClickHouseEnterpriseDbCluster\n    properties:\n      zoneId: ${defaultkCZhNu.zoneId}\n      vpcId: ${defaultp2mwWM.id}\n      nodeScaleMin: '4'\n      nodeScaleMax: '4'\n      nodeCount: '2'\n      vswitchId: ${defaultkCZhNu.id}\n  default:\n    type: alicloud:clickhouseenterprisedbcluster:ComputingGroup\n    properties:\n      nodeScaleMin: '4'\n      computingGroupDescription: example\n      nodeCount: '2'\n      dbInstanceId: ${defaultQ5vukB.id}\n      nodeScaleMax: '4'\n      isReadonly: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nClick House Enterprise Db Cluster Computing Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:clickhouseenterprisedbcluster/computingGroup:ComputingGroup example \u003cdb_instance_id\u003e:\u003ccomputing_group_id\u003e\n```\n\n","properties":{"computingGroupDescription":{"type":"string","description":"Computing group name\n"},"computingGroupEndpointNames":{"type":"array","items":{"type":"string"},"description":"A list of computing group endpoint names.\n"},"computingGroupEndpoints":{"type":"array","items":{"type":"string"},"description":"List of computing group endpoints.\n"},"computingGroupId":{"type":"string","description":"A resource property field representing the primary resource ID.\n"},"computingGroupPublicEndpoints":{"type":"array","items":{"type":"string"},"description":"List of public endpoints for the computing group.\n"},"computingGroupStatus":{"type":"string","description":"Computing group status.\n"},"dbInstanceId":{"type":"string","description":"ClickHouse Enterprise Edition instance ID\n"},"isReadonly":{"type":"boolean","description":"Computing group read-only\n"},"nodeCount":{"type":"integer","description":"Number of computing group nodes\n"},"nodeScaleMax":{"type":"integer","description":"Computing group node elasticity upper limit\n"},"nodeScaleMin":{"type":"integer","description":"Lower limit of computing group node elasticity\n"}},"required":["computingGroupEndpointNames","computingGroupEndpoints","computingGroupId","computingGroupPublicEndpoints","computingGroupStatus","dbInstanceId","isReadonly","nodeCount","nodeScaleMax","nodeScaleMin"],"inputProperties":{"computingGroupDescription":{"type":"string","description":"Computing group name\n"},"dbInstanceId":{"type":"string","description":"ClickHouse Enterprise Edition instance ID\n","willReplaceOnChanges":true},"isReadonly":{"type":"boolean","description":"Computing group read-only\n"},"nodeCount":{"type":"integer","description":"Number of computing group nodes\n"},"nodeScaleMax":{"type":"integer","description":"Computing group node elasticity upper limit\n"},"nodeScaleMin":{"type":"integer","description":"Lower limit of computing group node elasticity\n"}},"requiredInputs":["dbInstanceId","isReadonly","nodeCount","nodeScaleMax","nodeScaleMin"],"stateInputs":{"description":"Input properties used for looking up and filtering ComputingGroup resources.\n","properties":{"computingGroupDescription":{"type":"string","description":"Computing group name\n"},"computingGroupEndpointNames":{"type":"array","items":{"type":"string"},"description":"A list of computing group endpoint names.\n"},"computingGroupEndpoints":{"type":"array","items":{"type":"string"},"description":"List of computing group endpoints.\n"},"computingGroupId":{"type":"string","description":"A resource property field representing the primary resource ID.\n"},"computingGroupPublicEndpoints":{"type":"array","items":{"type":"string"},"description":"List of public endpoints for the computing group.\n"},"computingGroupStatus":{"type":"string","description":"Computing group status.\n"},"dbInstanceId":{"type":"string","description":"ClickHouse Enterprise Edition instance ID\n","willReplaceOnChanges":true},"isReadonly":{"type":"boolean","description":"Computing group read-only\n"},"nodeCount":{"type":"integer","description":"Number of computing group nodes\n"},"nodeScaleMax":{"type":"integer","description":"Computing group node elasticity upper limit\n"},"nodeScaleMin":{"type":"integer","description":"Lower limit of computing group node elasticity\n"}},"type":"object"}},"alicloud:clickhouseenterprisedbcluster/publicEndpoint:PublicEndpoint":{"description":"Provides a Click House Enterprise Db Cluster Public Endpoint resource.\n\nClickHouse enterprise instance public network endpoint.\n\nFor information about Click House Enterprise Db Cluster Public Endpoint and how to use it, see [What is Enterprise Db Cluster Public Endpoint](https://next.api.alibabacloud.com/document/clickhouse/2023-05-22/CreateEndpoint).\n\n\u003e **NOTE:** Available since v1.247.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst regionId = config.get(\"regionId\") || \"cn-beijing\";\nconst vswIpRangeI = config.get(\"vswIpRangeI\") || \"172.16.1.0/24\";\nconst vpcIpRange = config.get(\"vpcIpRange\") || \"172.16.0.0/12\";\nconst zoneIdI = config.get(\"zoneIdI\") || \"cn-beijing-i\";\nconst defaultktKLuM = new alicloud.vpc.Network(\"defaultktKLuM\", {cidrBlock: vpcIpRange});\nconst defaultTQWN3k = new alicloud.vpc.Switch(\"defaultTQWN3k\", {\n    vpcId: defaultktKLuM.id,\n    zoneId: zoneIdI,\n    cidrBlock: vswIpRangeI,\n});\nconst defaultaqnt22 = new alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster(\"defaultaqnt22\", {\n    zoneId: zoneIdI,\n    vpcId: defaultktKLuM.id,\n    scaleMin: \"8\",\n    scaleMax: \"16\",\n    vswitchId: defaultTQWN3k.id,\n});\nconst _default = new alicloud.clickhouseenterprisedbcluster.PublicEndpoint(\"default\", {\n    dbInstanceId: defaultaqnt22.id,\n    netType: \"Public\",\n    connectionStringPrefix: defaultaqnt22.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-beijing\"\nvsw_ip_range_i = config.get(\"vswIpRangeI\")\nif vsw_ip_range_i is None:\n    vsw_ip_range_i = \"172.16.1.0/24\"\nvpc_ip_range = config.get(\"vpcIpRange\")\nif vpc_ip_range is None:\n    vpc_ip_range = \"172.16.0.0/12\"\nzone_id_i = config.get(\"zoneIdI\")\nif zone_id_i is None:\n    zone_id_i = \"cn-beijing-i\"\ndefaultkt_k_lu_m = alicloud.vpc.Network(\"defaultktKLuM\", cidr_block=vpc_ip_range)\ndefault_tqwn3k = alicloud.vpc.Switch(\"defaultTQWN3k\",\n    vpc_id=defaultkt_k_lu_m.id,\n    zone_id=zone_id_i,\n    cidr_block=vsw_ip_range_i)\ndefaultaqnt22 = alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster(\"defaultaqnt22\",\n    zone_id=zone_id_i,\n    vpc_id=defaultkt_k_lu_m.id,\n    scale_min=\"8\",\n    scale_max=\"16\",\n    vswitch_id=default_tqwn3k.id)\ndefault = alicloud.clickhouseenterprisedbcluster.PublicEndpoint(\"default\",\n    db_instance_id=defaultaqnt22.id,\n    net_type=\"Public\",\n    connection_string_prefix=defaultaqnt22.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-beijing\";\n    var vswIpRangeI = config.Get(\"vswIpRangeI\") ?? \"172.16.1.0/24\";\n    var vpcIpRange = config.Get(\"vpcIpRange\") ?? \"172.16.0.0/12\";\n    var zoneIdI = config.Get(\"zoneIdI\") ?? \"cn-beijing-i\";\n    var defaultktKLuM = new AliCloud.Vpc.Network(\"defaultktKLuM\", new()\n    {\n        CidrBlock = vpcIpRange,\n    });\n\n    var defaultTQWN3k = new AliCloud.Vpc.Switch(\"defaultTQWN3k\", new()\n    {\n        VpcId = defaultktKLuM.Id,\n        ZoneId = zoneIdI,\n        CidrBlock = vswIpRangeI,\n    });\n\n    var defaultaqnt22 = new AliCloud.ClickHouseEnterpriseDbCluster.ClickHouseEnterpriseDbCluster(\"defaultaqnt22\", new()\n    {\n        ZoneId = zoneIdI,\n        VpcId = defaultktKLuM.Id,\n        ScaleMin = \"8\",\n        ScaleMax = \"16\",\n        VswitchId = defaultTQWN3k.Id,\n    });\n\n    var @default = new AliCloud.ClickHouseEnterpriseDbCluster.PublicEndpoint(\"default\", new()\n    {\n        DbInstanceId = defaultaqnt22.Id,\n        NetType = \"Public\",\n        ConnectionStringPrefix = defaultaqnt22.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/clickhouseenterprisedbcluster\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tregionId := \"cn-beijing\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\tvswIpRangeI := \"172.16.1.0/24\"\n\t\tif param := cfg.Get(\"vswIpRangeI\"); param != \"\" {\n\t\t\tvswIpRangeI = param\n\t\t}\n\t\tvpcIpRange := \"172.16.0.0/12\"\n\t\tif param := cfg.Get(\"vpcIpRange\"); param != \"\" {\n\t\t\tvpcIpRange = param\n\t\t}\n\t\tzoneIdI := \"cn-beijing-i\"\n\t\tif param := cfg.Get(\"zoneIdI\"); param != \"\" {\n\t\t\tzoneIdI = param\n\t\t}\n\t\tdefaultktKLuM, err := vpc.NewNetwork(ctx, \"defaultktKLuM\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(vpcIpRange),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTQWN3k, err := vpc.NewSwitch(ctx, \"defaultTQWN3k\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultktKLuM.ID(),\n\t\t\tZoneId:    pulumi.String(zoneIdI),\n\t\t\tCidrBlock: pulumi.String(vswIpRangeI),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultaqnt22, err := clickhouseenterprisedbcluster.NewClickHouseEnterpriseDbCluster(ctx, \"defaultaqnt22\", \u0026clickhouseenterprisedbcluster.ClickHouseEnterpriseDbClusterArgs{\n\t\t\tZoneId:    pulumi.String(zoneIdI),\n\t\t\tVpcId:     defaultktKLuM.ID(),\n\t\t\tScaleMin:  pulumi.String(\"8\"),\n\t\t\tScaleMax:  pulumi.String(\"16\"),\n\t\t\tVswitchId: defaultTQWN3k.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = clickhouseenterprisedbcluster.NewPublicEndpoint(ctx, \"default\", \u0026clickhouseenterprisedbcluster.PublicEndpointArgs{\n\t\t\tDbInstanceId:           defaultaqnt22.ID(),\n\t\t\tNetType:                pulumi.String(\"Public\"),\n\t\t\tConnectionStringPrefix: defaultaqnt22.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbClusterArgs;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.PublicEndpoint;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.PublicEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-beijing\");\n        final var vswIpRangeI = config.get(\"vswIpRangeI\").orElse(\"172.16.1.0/24\");\n        final var vpcIpRange = config.get(\"vpcIpRange\").orElse(\"172.16.0.0/12\");\n        final var zoneIdI = config.get(\"zoneIdI\").orElse(\"cn-beijing-i\");\n        var defaultktKLuM = new Network(\"defaultktKLuM\", NetworkArgs.builder()\n            .cidrBlock(vpcIpRange)\n            .build());\n\n        var defaultTQWN3k = new Switch(\"defaultTQWN3k\", SwitchArgs.builder()\n            .vpcId(defaultktKLuM.id())\n            .zoneId(zoneIdI)\n            .cidrBlock(vswIpRangeI)\n            .build());\n\n        var defaultaqnt22 = new ClickHouseEnterpriseDbCluster(\"defaultaqnt22\", ClickHouseEnterpriseDbClusterArgs.builder()\n            .zoneId(zoneIdI)\n            .vpcId(defaultktKLuM.id())\n            .scaleMin(\"8\")\n            .scaleMax(\"16\")\n            .vswitchId(defaultTQWN3k.id())\n            .build());\n\n        var default_ = new PublicEndpoint(\"default\", PublicEndpointArgs.builder()\n            .dbInstanceId(defaultaqnt22.id())\n            .netType(\"Public\")\n            .connectionStringPrefix(defaultaqnt22.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  regionId:\n    type: string\n    default: cn-beijing\n  vswIpRangeI:\n    type: string\n    default: 172.16.1.0/24\n  vpcIpRange:\n    type: string\n    default: 172.16.0.0/12\n  zoneIdI:\n    type: string\n    default: cn-beijing-i\nresources:\n  defaultktKLuM:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: ${vpcIpRange}\n  defaultTQWN3k:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultktKLuM.id}\n      zoneId: ${zoneIdI}\n      cidrBlock: ${vswIpRangeI}\n  defaultaqnt22:\n    type: alicloud:clickhouseenterprisedbcluster:ClickHouseEnterpriseDbCluster\n    properties:\n      zoneId: ${zoneIdI}\n      vpcId: ${defaultktKLuM.id}\n      scaleMin: '8'\n      scaleMax: '16'\n      vswitchId: ${defaultTQWN3k.id}\n  default:\n    type: alicloud:clickhouseenterprisedbcluster:PublicEndpoint\n    properties:\n      dbInstanceId: ${defaultaqnt22.id}\n      netType: Public\n      connectionStringPrefix: ${defaultaqnt22.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nClick House Enterprise Db Cluster Public Endpoint can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:clickhouseenterprisedbcluster/publicEndpoint:PublicEndpoint example \u003cdb_instance_id\u003e:\u003cnet_type\u003e\n```\n\n","properties":{"connectionStringPrefix":{"type":"string","description":"The public network connection string prefix of the instance.\n"},"dbInstanceId":{"type":"string","description":"The cluster ID.\n"},"netType":{"type":"string","description":"Network type of the connection address. Valid values:\n- Public: Public network.\n"}},"required":["connectionStringPrefix","dbInstanceId","netType"],"inputProperties":{"connectionStringPrefix":{"type":"string","description":"The public network connection string prefix of the instance.\n"},"dbInstanceId":{"type":"string","description":"The cluster ID.\n","willReplaceOnChanges":true},"netType":{"type":"string","description":"Network type of the connection address. Valid values:\n- Public: Public network.\n","willReplaceOnChanges":true}},"requiredInputs":["connectionStringPrefix","dbInstanceId","netType"],"stateInputs":{"description":"Input properties used for looking up and filtering PublicEndpoint resources.\n","properties":{"connectionStringPrefix":{"type":"string","description":"The public network connection string prefix of the instance.\n"},"dbInstanceId":{"type":"string","description":"The cluster ID.\n","willReplaceOnChanges":true},"netType":{"type":"string","description":"Network type of the connection address. Valid values:\n- Public: Public network.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:clickhouseenterprisedbcluster/securityIp:SecurityIp":{"description":"Provides a Click House Enterprise Db Cluster Security I P resource.\n\nEnterprise Clickhouse instance Security IP.\n\nFor information about Click House Enterprise Db Cluster Security I P and how to use it, see [What is Enterprise Db Cluster Security I P](https://next.api.alibabacloud.com/document/clickhouse/2023-05-22/ModifySecurityIPList).\n\n\u003e **NOTE:** Available since v1.247.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst regionId = config.get(\"regionId\") || \"cn-beijing\";\nconst vswIpRangeI = config.get(\"vswIpRangeI\") || \"172.16.1.0/24\";\nconst vpcIpRange = config.get(\"vpcIpRange\") || \"172.16.0.0/12\";\nconst zoneIdI = config.get(\"zoneIdI\") || \"cn-beijing-i\";\nconst defaultktKLuM = new alicloud.vpc.Network(\"defaultktKLuM\", {cidrBlock: vpcIpRange});\nconst defaultTQWN3k = new alicloud.vpc.Switch(\"defaultTQWN3k\", {\n    vpcId: defaultktKLuM.id,\n    zoneId: zoneIdI,\n    cidrBlock: vswIpRangeI,\n});\nconst defaultn0nVrN = new alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster(\"defaultn0nVrN\", {\n    zoneId: zoneIdI,\n    vpcId: defaultktKLuM.id,\n    scaleMin: \"8\",\n    scaleMax: \"16\",\n    vswitchId: defaultTQWN3k.id,\n});\nconst _default = new alicloud.clickhouseenterprisedbcluster.SecurityIp(\"default\", {\n    groupName: \"example_group\",\n    securityIpList: \"127.0.0.2\",\n    dbInstanceId: defaultn0nVrN.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-beijing\"\nvsw_ip_range_i = config.get(\"vswIpRangeI\")\nif vsw_ip_range_i is None:\n    vsw_ip_range_i = \"172.16.1.0/24\"\nvpc_ip_range = config.get(\"vpcIpRange\")\nif vpc_ip_range is None:\n    vpc_ip_range = \"172.16.0.0/12\"\nzone_id_i = config.get(\"zoneIdI\")\nif zone_id_i is None:\n    zone_id_i = \"cn-beijing-i\"\ndefaultkt_k_lu_m = alicloud.vpc.Network(\"defaultktKLuM\", cidr_block=vpc_ip_range)\ndefault_tqwn3k = alicloud.vpc.Switch(\"defaultTQWN3k\",\n    vpc_id=defaultkt_k_lu_m.id,\n    zone_id=zone_id_i,\n    cidr_block=vsw_ip_range_i)\ndefaultn0n_vr_n = alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster(\"defaultn0nVrN\",\n    zone_id=zone_id_i,\n    vpc_id=defaultkt_k_lu_m.id,\n    scale_min=\"8\",\n    scale_max=\"16\",\n    vswitch_id=default_tqwn3k.id)\ndefault = alicloud.clickhouseenterprisedbcluster.SecurityIp(\"default\",\n    group_name=\"example_group\",\n    security_ip_list=\"127.0.0.2\",\n    db_instance_id=defaultn0n_vr_n.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-beijing\";\n    var vswIpRangeI = config.Get(\"vswIpRangeI\") ?? \"172.16.1.0/24\";\n    var vpcIpRange = config.Get(\"vpcIpRange\") ?? \"172.16.0.0/12\";\n    var zoneIdI = config.Get(\"zoneIdI\") ?? \"cn-beijing-i\";\n    var defaultktKLuM = new AliCloud.Vpc.Network(\"defaultktKLuM\", new()\n    {\n        CidrBlock = vpcIpRange,\n    });\n\n    var defaultTQWN3k = new AliCloud.Vpc.Switch(\"defaultTQWN3k\", new()\n    {\n        VpcId = defaultktKLuM.Id,\n        ZoneId = zoneIdI,\n        CidrBlock = vswIpRangeI,\n    });\n\n    var defaultn0nVrN = new AliCloud.ClickHouseEnterpriseDbCluster.ClickHouseEnterpriseDbCluster(\"defaultn0nVrN\", new()\n    {\n        ZoneId = zoneIdI,\n        VpcId = defaultktKLuM.Id,\n        ScaleMin = \"8\",\n        ScaleMax = \"16\",\n        VswitchId = defaultTQWN3k.Id,\n    });\n\n    var @default = new AliCloud.ClickHouseEnterpriseDbCluster.SecurityIp(\"default\", new()\n    {\n        GroupName = \"example_group\",\n        SecurityIpList = \"127.0.0.2\",\n        DbInstanceId = defaultn0nVrN.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/clickhouseenterprisedbcluster\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tregionId := \"cn-beijing\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\tvswIpRangeI := \"172.16.1.0/24\"\n\t\tif param := cfg.Get(\"vswIpRangeI\"); param != \"\" {\n\t\t\tvswIpRangeI = param\n\t\t}\n\t\tvpcIpRange := \"172.16.0.0/12\"\n\t\tif param := cfg.Get(\"vpcIpRange\"); param != \"\" {\n\t\t\tvpcIpRange = param\n\t\t}\n\t\tzoneIdI := \"cn-beijing-i\"\n\t\tif param := cfg.Get(\"zoneIdI\"); param != \"\" {\n\t\t\tzoneIdI = param\n\t\t}\n\t\tdefaultktKLuM, err := vpc.NewNetwork(ctx, \"defaultktKLuM\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(vpcIpRange),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTQWN3k, err := vpc.NewSwitch(ctx, \"defaultTQWN3k\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultktKLuM.ID(),\n\t\t\tZoneId:    pulumi.String(zoneIdI),\n\t\t\tCidrBlock: pulumi.String(vswIpRangeI),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultn0nVrN, err := clickhouseenterprisedbcluster.NewClickHouseEnterpriseDbCluster(ctx, \"defaultn0nVrN\", \u0026clickhouseenterprisedbcluster.ClickHouseEnterpriseDbClusterArgs{\n\t\t\tZoneId:    pulumi.String(zoneIdI),\n\t\t\tVpcId:     defaultktKLuM.ID(),\n\t\t\tScaleMin:  pulumi.String(\"8\"),\n\t\t\tScaleMax:  pulumi.String(\"16\"),\n\t\t\tVswitchId: defaultTQWN3k.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = clickhouseenterprisedbcluster.NewSecurityIp(ctx, \"default\", \u0026clickhouseenterprisedbcluster.SecurityIpArgs{\n\t\t\tGroupName:      pulumi.String(\"example_group\"),\n\t\t\tSecurityIpList: pulumi.String(\"127.0.0.2\"),\n\t\t\tDbInstanceId:   defaultn0nVrN.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbCluster;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.ClickHouseEnterpriseDbClusterArgs;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.SecurityIp;\nimport com.pulumi.alicloud.clickhouseenterprisedbcluster.SecurityIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-beijing\");\n        final var vswIpRangeI = config.get(\"vswIpRangeI\").orElse(\"172.16.1.0/24\");\n        final var vpcIpRange = config.get(\"vpcIpRange\").orElse(\"172.16.0.0/12\");\n        final var zoneIdI = config.get(\"zoneIdI\").orElse(\"cn-beijing-i\");\n        var defaultktKLuM = new Network(\"defaultktKLuM\", NetworkArgs.builder()\n            .cidrBlock(vpcIpRange)\n            .build());\n\n        var defaultTQWN3k = new Switch(\"defaultTQWN3k\", SwitchArgs.builder()\n            .vpcId(defaultktKLuM.id())\n            .zoneId(zoneIdI)\n            .cidrBlock(vswIpRangeI)\n            .build());\n\n        var defaultn0nVrN = new ClickHouseEnterpriseDbCluster(\"defaultn0nVrN\", ClickHouseEnterpriseDbClusterArgs.builder()\n            .zoneId(zoneIdI)\n            .vpcId(defaultktKLuM.id())\n            .scaleMin(\"8\")\n            .scaleMax(\"16\")\n            .vswitchId(defaultTQWN3k.id())\n            .build());\n\n        var default_ = new SecurityIp(\"default\", SecurityIpArgs.builder()\n            .groupName(\"example_group\")\n            .securityIpList(\"127.0.0.2\")\n            .dbInstanceId(defaultn0nVrN.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  regionId:\n    type: string\n    default: cn-beijing\n  vswIpRangeI:\n    type: string\n    default: 172.16.1.0/24\n  vpcIpRange:\n    type: string\n    default: 172.16.0.0/12\n  zoneIdI:\n    type: string\n    default: cn-beijing-i\nresources:\n  defaultktKLuM:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: ${vpcIpRange}\n  defaultTQWN3k:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultktKLuM.id}\n      zoneId: ${zoneIdI}\n      cidrBlock: ${vswIpRangeI}\n  defaultn0nVrN:\n    type: alicloud:clickhouseenterprisedbcluster:ClickHouseEnterpriseDbCluster\n    properties:\n      zoneId: ${zoneIdI}\n      vpcId: ${defaultktKLuM.id}\n      scaleMin: '8'\n      scaleMax: '16'\n      vswitchId: ${defaultTQWN3k.id}\n  default:\n    type: alicloud:clickhouseenterprisedbcluster:SecurityIp\n    properties:\n      groupName: example_group\n      securityIpList: 127.0.0.2\n      dbInstanceId: ${defaultn0nVrN.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nClick House Enterprise Db Cluster Security I P can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:clickhouseenterprisedbcluster/securityIp:SecurityIp example \u003cdb_instance_id\u003e:\u003cgroup_name\u003e\n```\n\n","properties":{"dbInstanceId":{"type":"string","description":"The cluster ID.\n"},"groupName":{"type":"string","description":"The whitelist name.\n"},"securityIpList":{"type":"string","description":"The IP address list under the whitelist group.\n"}},"required":["dbInstanceId","groupName","securityIpList"],"inputProperties":{"dbInstanceId":{"type":"string","description":"The cluster ID.\n","willReplaceOnChanges":true},"groupName":{"type":"string","description":"The whitelist name.\n","willReplaceOnChanges":true},"securityIpList":{"type":"string","description":"The IP address list under the whitelist group.\n"}},"requiredInputs":["dbInstanceId","groupName","securityIpList"],"stateInputs":{"description":"Input properties used for looking up and filtering SecurityIp resources.\n","properties":{"dbInstanceId":{"type":"string","description":"The cluster ID.\n","willReplaceOnChanges":true},"groupName":{"type":"string","description":"The whitelist name.\n","willReplaceOnChanges":true},"securityIpList":{"type":"string","description":"The IP address list under the whitelist group.\n"}},"type":"object"}},"alicloud:cloudauth/faceConfig:FaceConfig":{"description":"Provides a Cloudauth Face Config resource.\n\nFor information about Cloudauth Face Config and how to use it, see [What is Face Config](https://help.aliyun.com/zh/id-verification/cloudauth/product-overview/end-of-integration-announcement-on-id-verification).\n\n\u003e **NOTE:** Available since v1.137.0.\n\n\u003e **NOTE:** In order to provide you with more perfect product capabilities, the real person certification service has stopped access, it is recommended that you use the upgraded version of the [real person certification financial real person certification service](https://help.aliyun.com/zh/id-verification/product-overview/what-is-id-verification-for-financial-services). Users that have access to real person authentication are not affected.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.cloudauth.FaceConfig(\"example\", {\n    bizName: std.format({\n        input: \"%s-biz\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    bizType: std.format({\n        input: \"type-%s\",\n        args: [_default.result],\n    }).then(invoke =\u003e invoke.result),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.cloudauth.FaceConfig(\"example\",\n    biz_name=std.format(input=\"%s-biz\",\n        args=[name]).result,\n    biz_type=std.format(input=\"type-%s\",\n        args=[default[\"result\"]]).result)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.CloudAuth.FaceConfig(\"example\", new()\n    {\n        BizName = Std.Format.Invoke(new()\n        {\n            Input = \"%s-biz\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        BizType = Std.Format.Invoke(new()\n        {\n            Input = \"type-%s\",\n            Args = new[]\n            {\n                @default.Result,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudauth\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s-biz\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"type-%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\t_default.Result,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudauth.NewFaceConfig(ctx, \"example\", \u0026cloudauth.FaceConfigArgs{\n\t\t\tBizName: pulumi.String(invokeFormat.Result),\n\t\t\tBizType: pulumi.String(invokeFormat1.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cloudauth.FaceConfig;\nimport com.pulumi.alicloud.cloudauth.FaceConfigArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new FaceConfig(\"example\", FaceConfigArgs.builder()\n            .bizName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s-biz\")\n                .args(name)\n                .build()).result())\n            .bizType(StdFunctions.format(FormatArgs.builder()\n                .input(\"type-%s\")\n                .args(default_.result())\n                .build()).result())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:cloudauth:FaceConfig\n    properties:\n      bizName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s-biz'\n            args:\n              - ${name}\n          return: result\n      bizType:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: type-%s\n            args:\n              - ${default.result}\n          return: result\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloudauth Face Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudauth/faceConfig:FaceConfig example \u003clang\u003e\n```\n\n","properties":{"bizName":{"type":"string","description":"Scene name.\n"},"bizType":{"type":"string","description":"Scene type. **NOTE:** The\u003cspan pulumi-lang-nodejs=\" bizType \" pulumi-lang-dotnet=\" BizType \" pulumi-lang-go=\" bizType \" pulumi-lang-python=\" biz_type \" pulumi-lang-yaml=\" bizType \" pulumi-lang-java=\" bizType \"\u003e biz_type \u003c/span\u003ecannot exceed 32 characters and can only use English letters, numbers and dashes (-).\n"},"gmtModified":{"type":"string","description":"Last Modified Date.\n"}},"required":["bizName","bizType","gmtModified"],"inputProperties":{"bizName":{"type":"string","description":"Scene name.\n"},"bizType":{"type":"string","description":"Scene type. **NOTE:** The\u003cspan pulumi-lang-nodejs=\" bizType \" pulumi-lang-dotnet=\" BizType \" pulumi-lang-go=\" bizType \" pulumi-lang-python=\" biz_type \" pulumi-lang-yaml=\" bizType \" pulumi-lang-java=\" bizType \"\u003e biz_type \u003c/span\u003ecannot exceed 32 characters and can only use English letters, numbers and dashes (-).\n"}},"requiredInputs":["bizName","bizType"],"stateInputs":{"description":"Input properties used for looking up and filtering FaceConfig resources.\n","properties":{"bizName":{"type":"string","description":"Scene name.\n"},"bizType":{"type":"string","description":"Scene type. **NOTE:** The\u003cspan pulumi-lang-nodejs=\" bizType \" pulumi-lang-dotnet=\" BizType \" pulumi-lang-go=\" bizType \" pulumi-lang-python=\" biz_type \" pulumi-lang-yaml=\" bizType \" pulumi-lang-java=\" bizType \"\u003e biz_type \u003c/span\u003ecannot exceed 32 characters and can only use English letters, numbers and dashes (-).\n"},"gmtModified":{"type":"string","description":"Last Modified Date.\n"}},"type":"object"}},"alicloud:cloudconnect/network:Network":{"description":"Provides a cloud connect network resource. Cloud Connect Network (CCN) is another important component of Smart Access Gateway. It is a device access matrix composed of Alibaba Cloud distributed access gateways. You can add multiple Smart Access Gateway (SAG) devices to a CCN instance and then attach the CCN instance to a Cloud Enterprise Network (CEN) instance to connect the local branches to the Alibaba Cloud.\n\nFor information about cloud connect network and how to use it, see [What is Cloud Connect Network](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/createcloudconnectnetwork).\n\n\u003e **NOTE:** Available since v1.59.0.\n\n\u003e **NOTE:** Only the following regions support create Cloud Connect Network. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cloudconnect.Network(\"default\", {\n    name: name,\n    description: name,\n    cidrBlock: \"192.168.0.0/24\",\n    isDefault: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudconnect.Network(\"default\",\n    name=name,\n    description=name,\n    cidr_block=\"192.168.0.0/24\",\n    is_default=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.CloudConnect.Network(\"default\", new()\n    {\n        Name = name,\n        Description = name,\n        CidrBlock = \"192.168.0.0/24\",\n        IsDefault = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cloudconnect.NewNetwork(ctx, \"default\", \u0026cloudconnect.NetworkArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.0.0/24\"),\n\t\t\tIsDefault:   pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudconnect.Network;\nimport com.pulumi.alicloud.cloudconnect.NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .name(name)\n            .description(name)\n            .cidrBlock(\"192.168.0.0/24\")\n            .isDefault(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cloudconnect:Network\n    properties:\n      name: ${name}\n      description: ${name}\n      cidrBlock: 192.168.0.0/24\n      isDefault: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe cloud connect network instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudconnect/network:Network example ccn-abc123456\n```\n\n","properties":{"cidrBlock":{"type":"string","description":"The CidrBlock of the CCN instance. Defaults to null.\n"},"description":{"type":"string","description":"The description of the CCN instance. The description can contain 2 to 256 characters. The description must start with English letters, but cannot start with http:// or https://.\n"},"isDefault":{"type":"boolean","description":"Created by default. If the client does not have ccn in the binding, it will create a ccn for the user to replace.\n"},"name":{"type":"string","description":"The name of the CCN instance. The name can contain 2 to 128 characters including a-z, A-Z, 0-9, periods, underlines, and hyphens. The name must start with an English letter, but cannot start with http:// or https://.\n"}},"required":["isDefault","name"],"inputProperties":{"cidrBlock":{"type":"string","description":"The CidrBlock of the CCN instance. Defaults to null.\n"},"description":{"type":"string","description":"The description of the CCN instance. The description can contain 2 to 256 characters. The description must start with English letters, but cannot start with http:// or https://.\n"},"isDefault":{"type":"boolean","description":"Created by default. If the client does not have ccn in the binding, it will create a ccn for the user to replace.\n"},"name":{"type":"string","description":"The name of the CCN instance. The name can contain 2 to 128 characters including a-z, A-Z, 0-9, periods, underlines, and hyphens. The name must start with an English letter, but cannot start with http:// or https://.\n"}},"requiredInputs":["isDefault"],"stateInputs":{"description":"Input properties used for looking up and filtering Network resources.\n","properties":{"cidrBlock":{"type":"string","description":"The CidrBlock of the CCN instance. Defaults to null.\n"},"description":{"type":"string","description":"The description of the CCN instance. The description can contain 2 to 256 characters. The description must start with English letters, but cannot start with http:// or https://.\n"},"isDefault":{"type":"boolean","description":"Created by default. If the client does not have ccn in the binding, it will create a ccn for the user to replace.\n"},"name":{"type":"string","description":"The name of the CCN instance. The name can contain 2 to 128 characters including a-z, A-Z, 0-9, periods, underlines, and hyphens. The name must start with an English letter, but cannot start with http:// or https://.\n"}},"type":"object"}},"alicloud:cloudconnect/networkAttachment:NetworkAttachment":{"description":"Provides a Cloud Connect Network Attachment resource. This topic describes how to associate a Smart Access Gateway (SAG) instance with a network instance. You must associate an SAG instance with a network instance if you want to connect the SAG to Alibaba Cloud. You can connect an SAG to Alibaba Cloud through a leased line, the Internet, or the active and standby links.\n\nFor information about Cloud Connect Network Attachment and how to use it, see [What is Cloud Connect Network Attachment](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/bindsmartaccessgateway).\n\n\u003e **NOTE:** Available since v1.64.0.\n\n\u003e **NOTE:** Only the following regions support. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst sagId = config.get(\"sagId\") || \"sag-9bifkf***\";\nconst _default = new alicloud.cloudconnect.Network(\"default\", {\n    name: name,\n    description: name,\n    cidrBlock: \"192.168.0.0/24\",\n    isDefault: true,\n});\nconst defaultNetworkAttachment = new alicloud.cloudconnect.NetworkAttachment(\"default\", {\n    ccnId: _default.id,\n    sagId: sagId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nsag_id = config.get(\"sagId\")\nif sag_id is None:\n    sag_id = \"sag-9bifkf***\"\ndefault = alicloud.cloudconnect.Network(\"default\",\n    name=name,\n    description=name,\n    cidr_block=\"192.168.0.0/24\",\n    is_default=True)\ndefault_network_attachment = alicloud.cloudconnect.NetworkAttachment(\"default\",\n    ccn_id=default.id,\n    sag_id=sag_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var sagId = config.Get(\"sagId\") ?? \"sag-9bifkf***\";\n    var @default = new AliCloud.CloudConnect.Network(\"default\", new()\n    {\n        Name = name,\n        Description = name,\n        CidrBlock = \"192.168.0.0/24\",\n        IsDefault = true,\n    });\n\n    var defaultNetworkAttachment = new AliCloud.CloudConnect.NetworkAttachment(\"default\", new()\n    {\n        CcnId = @default.Id,\n        SagId = sagId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tsagId := \"sag-9bifkf***\"\n\t\tif param := cfg.Get(\"sagId\"); param != \"\" {\n\t\t\tsagId = param\n\t\t}\n\t\t_default, err := cloudconnect.NewNetwork(ctx, \"default\", \u0026cloudconnect.NetworkArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.0.0/24\"),\n\t\t\tIsDefault:   pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudconnect.NewNetworkAttachment(ctx, \"default\", \u0026cloudconnect.NetworkAttachmentArgs{\n\t\t\tCcnId: _default.ID(),\n\t\t\tSagId: pulumi.String(sagId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudconnect.Network;\nimport com.pulumi.alicloud.cloudconnect.NetworkArgs;\nimport com.pulumi.alicloud.cloudconnect.NetworkAttachment;\nimport com.pulumi.alicloud.cloudconnect.NetworkAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var sagId = config.get(\"sagId\").orElse(\"sag-9bifkf***\");\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .name(name)\n            .description(name)\n            .cidrBlock(\"192.168.0.0/24\")\n            .isDefault(true)\n            .build());\n\n        var defaultNetworkAttachment = new NetworkAttachment(\"defaultNetworkAttachment\", NetworkAttachmentArgs.builder()\n            .ccnId(default_.id())\n            .sagId(sagId)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\n  sagId:\n    type: string\n    default: sag-9bifkf***\nresources:\n  default:\n    type: alicloud:cloudconnect:Network\n    properties:\n      name: ${name}\n      description: ${name}\n      cidrBlock: 192.168.0.0/24\n      isDefault: true\n  defaultNetworkAttachment:\n    type: alicloud:cloudconnect:NetworkAttachment\n    name: default\n    properties:\n      ccnId: ${default.id}\n      sagId: ${sagId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe Cloud Connect Network Attachment can be imported using the instance_id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudconnect/networkAttachment:NetworkAttachment example ccn-abc123456:sag-abc123456\n```\n\n","properties":{"ccnId":{"type":"string","description":"The ID of the CCN instance.\n"},"sagId":{"type":"string","description":"The ID of the Smart Access Gateway instance.\n"}},"required":["ccnId","sagId"],"inputProperties":{"ccnId":{"type":"string","description":"The ID of the CCN instance.\n","willReplaceOnChanges":true},"sagId":{"type":"string","description":"The ID of the Smart Access Gateway instance.\n","willReplaceOnChanges":true}},"requiredInputs":["ccnId","sagId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkAttachment resources.\n","properties":{"ccnId":{"type":"string","description":"The ID of the CCN instance.\n","willReplaceOnChanges":true},"sagId":{"type":"string","description":"The ID of the Smart Access Gateway instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudconnect/networkGrant:NetworkGrant":{"description":"Provides a Cloud Connect Network Grant resource. If the CEN instance to be attached belongs to another account, authorization by the CEN instance is required.\n\nFor information about Cloud Connect Network Grant and how to use it, see [What is Cloud Connect Network Grant](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/grantinstancetocbn).\n\n\u003e **NOTE:** Available since v1.63.0.\n\n\u003e **NOTE:** Only the following regions support create Cloud Connect Network Grant. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst anotherUid = config.getNumber(\"anotherUid\") || 123456789;\n// Method 2: Use the target cen account's access_key, secret_key\n// provider \"alicloud\" {\n//   region     = \"cn-hangzhou\"\n//   access_key = \"access_key\"\n//   secret_key = \"secret_key\"\n//   alias      = \"cen_account\"\n// }\nconst _default = new alicloud.cloudconnect.Network(\"default\", {\n    name: name,\n    description: name,\n    cidrBlock: \"192.168.0.0/24\",\n    isDefault: true,\n});\nconst cen = new alicloud.cen.Instance(\"cen\", {cenInstanceName: name});\nconst defaultNetworkGrant = new alicloud.cloudconnect.NetworkGrant(\"default\", {\n    ccnId: _default.id,\n    cenId: cen.id,\n    cenUid: anotherUid,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nanother_uid = config.get_float(\"anotherUid\")\nif another_uid is None:\n    another_uid = 123456789\n# Method 2: Use the target cen account's access_key, secret_key\n# provider \"alicloud\" {\n#   region     = \"cn-hangzhou\"\n#   access_key = \"access_key\"\n#   secret_key = \"secret_key\"\n#   alias      = \"cen_account\"\n# }\ndefault = alicloud.cloudconnect.Network(\"default\",\n    name=name,\n    description=name,\n    cidr_block=\"192.168.0.0/24\",\n    is_default=True)\ncen = alicloud.cen.Instance(\"cen\", cen_instance_name=name)\ndefault_network_grant = alicloud.cloudconnect.NetworkGrant(\"default\",\n    ccn_id=default.id,\n    cen_id=cen.id,\n    cen_uid=another_uid)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var anotherUid = config.GetDouble(\"anotherUid\") ?? 123456789;\n    // Method 2: Use the target cen account's access_key, secret_key\n    // provider \"alicloud\" {\n    //   region     = \"cn-hangzhou\"\n    //   access_key = \"access_key\"\n    //   secret_key = \"secret_key\"\n    //   alias      = \"cen_account\"\n    // }\n    var @default = new AliCloud.CloudConnect.Network(\"default\", new()\n    {\n        Name = name,\n        Description = name,\n        CidrBlock = \"192.168.0.0/24\",\n        IsDefault = true,\n    });\n\n    var cen = new AliCloud.Cen.Instance(\"cen\", new()\n    {\n        CenInstanceName = name,\n    });\n\n    var defaultNetworkGrant = new AliCloud.CloudConnect.NetworkGrant(\"default\", new()\n    {\n        CcnId = @default.Id,\n        CenId = cen.Id,\n        CenUid = anotherUid,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tanotherUid := float64(123456789)\n\t\tif param := cfg.GetFloat64(\"anotherUid\"); param != 0 {\n\t\t\tanotherUid = param\n\t\t}\n\t\t// Method 2: Use the target cen account's access_key, secret_key\n\t\t//\n\t\t//\tprovider \"alicloud\" {\n\t\t//\t  region     = \"cn-hangzhou\"\n\t\t//\t  access_key = \"access_key\"\n\t\t//\t  secret_key = \"secret_key\"\n\t\t//\t  alias      = \"cen_account\"\n\t\t//\t}\n\t\t_default, err := cloudconnect.NewNetwork(ctx, \"default\", \u0026cloudconnect.NetworkArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.0.0/24\"),\n\t\t\tIsDefault:   pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcen, err := cen.NewInstance(ctx, \"cen\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudconnect.NewNetworkGrant(ctx, \"default\", \u0026cloudconnect.NetworkGrantArgs{\n\t\t\tCcnId:  _default.ID(),\n\t\t\tCenId:  cen.ID(),\n\t\t\tCenUid: pulumi.Float64(anotherUid),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudconnect.Network;\nimport com.pulumi.alicloud.cloudconnect.NetworkArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cloudconnect.NetworkGrant;\nimport com.pulumi.alicloud.cloudconnect.NetworkGrantArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var anotherUid = config.get(\"anotherUid\").orElse(123456789);\n        // Method 2: Use the target cen account's access_key, secret_key\n        // provider \"alicloud\" {\n        //   region     = \"cn-hangzhou\"\n        //   access_key = \"access_key\"\n        //   secret_key = \"secret_key\"\n        //   alias      = \"cen_account\"\n        // }\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .name(name)\n            .description(name)\n            .cidrBlock(\"192.168.0.0/24\")\n            .isDefault(true)\n            .build());\n\n        var cen = new Instance(\"cen\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .build());\n\n        var defaultNetworkGrant = new NetworkGrant(\"defaultNetworkGrant\", NetworkGrantArgs.builder()\n            .ccnId(default_.id())\n            .cenId(cen.id())\n            .cenUid(anotherUid)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\n  anotherUid:\n    type: number\n    default: 1.23456789e+08\nresources:\n  # Method 2: Use the target cen account's access_key, secret_key\n  # provider \"alicloud\" {\n  #   region     = \"cn-hangzhou\"\n  #   access_key = \"access_key\"\n  #   secret_key = \"secret_key\"\n  #   alias      = \"cen_account\"\n  # }\n  default:\n    type: alicloud:cloudconnect:Network\n    properties:\n      name: ${name}\n      description: ${name}\n      cidrBlock: 192.168.0.0/24\n      isDefault: true\n  cen:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: ${name}\n  defaultNetworkGrant:\n    type: alicloud:cloudconnect:NetworkGrant\n    name: default\n    properties:\n      ccnId: ${default.id}\n      cenId: ${cen.id}\n      cenUid: ${anotherUid}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe Cloud Connect Network Grant can be imported using the instance_id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudconnect/networkGrant:NetworkGrant example ccn-abc123456:cen-abc123456\n```\n\n","properties":{"ccnId":{"type":"string","description":"The ID of the CCN instance.\n"},"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"cenUid":{"type":"string","description":"The ID of the account to which the CEN instance belongs.\n"}},"required":["ccnId","cenId","cenUid"],"inputProperties":{"ccnId":{"type":"string","description":"The ID of the CCN instance.\n","willReplaceOnChanges":true},"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"cenUid":{"type":"string","description":"The ID of the account to which the CEN instance belongs.\n","willReplaceOnChanges":true}},"requiredInputs":["ccnId","cenId","cenUid"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkGrant resources.\n","properties":{"ccnId":{"type":"string","description":"The ID of the CCN instance.\n","willReplaceOnChanges":true},"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"cenUid":{"type":"string","description":"The ID of the account to which the CEN instance belongs.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudcontrol/resource:Resource":{"description":"Provides a Cloud Control Resource resource.\n\n\n\nFor information about Cloud Control Resource and how to use it, see [What is Resource](https://next.api.aliyun.com/document/cloudcontrol/2022-08-30/GetResourceType).\n\n\u003e **NOTE:** Available since v1.241.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst mqInstance = new alicloud.cloudcontrol.Resource(\"mq_instance\", {\n    desireAttributes: JSON.stringify({\n        InstanceName: \"terraform-example-ons-instance\",\n    }),\n    product: \"Ons\",\n    resourceCode: \"Instance\",\n});\nconst _default = new alicloud.cloudcontrol.Resource(\"default\", {\n    product: \"Ons\",\n    resourceCode: \"Instance::Topic\",\n    resourceId: mqInstance.resourceId,\n    desireAttributes: pulumi.jsonStringify({\n        InstanceId: mqInstance.resourceId,\n        TopicName: \"terraform-example-ons-topic\",\n        MessageType: \"1\",\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nmq_instance = alicloud.cloudcontrol.Resource(\"mq_instance\",\n    desire_attributes=json.dumps({\n        \"InstanceName\": \"terraform-example-ons-instance\",\n    }),\n    product=\"Ons\",\n    resource_code=\"Instance\")\ndefault = alicloud.cloudcontrol.Resource(\"default\",\n    product=\"Ons\",\n    resource_code=\"Instance::Topic\",\n    resource_id=mq_instance.resource_id,\n    desire_attributes=pulumi.Output.json_dumps({\n        \"InstanceId\": mq_instance.resource_id,\n        \"TopicName\": \"terraform-example-ons-topic\",\n        \"MessageType\": \"1\",\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var mqInstance = new AliCloud.CloudControl.Resource(\"mq_instance\", new()\n    {\n        DesireAttributes = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"InstanceName\"] = \"terraform-example-ons-instance\",\n        }),\n        Product = \"Ons\",\n        ResourceCode = \"Instance\",\n    });\n\n    var @default = new AliCloud.CloudControl.Resource(\"default\", new()\n    {\n        Product = \"Ons\",\n        ResourceCode = \"Instance::Topic\",\n        ResourceId = mqInstance.ResourceId,\n        DesireAttributes = Output.JsonSerialize(Output.Create(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"InstanceId\"] = mqInstance.ResourceId,\n            [\"TopicName\"] = \"terraform-example-ons-topic\",\n            [\"MessageType\"] = \"1\",\n        })),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudcontrol\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"InstanceName\": \"terraform-example-ons-instance\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tmqInstance, err := cloudcontrol.NewResource(ctx, \"mq_instance\", \u0026cloudcontrol.ResourceArgs{\n\t\t\tDesireAttributes: pulumi.String(json0),\n\t\t\tProduct:          pulumi.String(\"Ons\"),\n\t\t\tResourceCode:     pulumi.String(\"Instance\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudcontrol.NewResource(ctx, \"default\", \u0026cloudcontrol.ResourceArgs{\n\t\t\tProduct:      pulumi.String(\"Ons\"),\n\t\t\tResourceCode: pulumi.String(\"Instance::Topic\"),\n\t\t\tResourceId:   mqInstance.ResourceId,\n\t\t\tDesireAttributes: mqInstance.ResourceId.ApplyT(func(resourceId string) (pulumi.String, error) {\n\t\t\t\tvar _zero pulumi.String\n\t\t\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\t\t\"InstanceId\":  resourceId,\n\t\t\t\t\t\"TopicName\":   \"terraform-example-ons-topic\",\n\t\t\t\t\t\"MessageType\": \"1\",\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson1 := string(tmpJSON1)\n\t\t\t\treturn pulumi.String(json1), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudcontrol.Resource;\nimport com.pulumi.alicloud.cloudcontrol.ResourceArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var mqInstance = new Resource(\"mqInstance\", ResourceArgs.builder()\n            .desireAttributes(serializeJson(\n                jsonObject(\n                    jsonProperty(\"InstanceName\", \"terraform-example-ons-instance\")\n                )))\n            .product(\"Ons\")\n            .resourceCode(\"Instance\")\n            .build());\n\n        var default_ = new Resource(\"default\", ResourceArgs.builder()\n            .product(\"Ons\")\n            .resourceCode(\"Instance::Topic\")\n            .resourceId(mqInstance.resourceId())\n            .desireAttributes(mqInstance.resourceId().applyValue(_resourceId -\u003e serializeJson(\n                jsonObject(\n                    jsonProperty(\"InstanceId\", _resourceId),\n                    jsonProperty(\"TopicName\", \"terraform-example-ons-topic\"),\n                    jsonProperty(\"MessageType\", \"1\")\n                ))))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  mqInstance:\n    type: alicloud:cloudcontrol:Resource\n    name: mq_instance\n    properties:\n      desireAttributes:\n        fn::toJSON:\n          InstanceName: terraform-example-ons-instance\n      product: Ons\n      resourceCode: Instance\n  default:\n    type: alicloud:cloudcontrol:Resource\n    properties:\n      product: Ons\n      resourceCode: Instance::Topic\n      resourceId: ${mqInstance.resourceId}\n      desireAttributes:\n        fn::toJSON:\n          InstanceId: ${mqInstance.resourceId}\n          TopicName: terraform-example-ons-topic\n          MessageType: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Control Resource can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudcontrol/resource:Resource example \u003cprovider\u003e:\u003cproduct\u003e:\u003cresource_code\u003e:\u003cresource_id\u003e\n```\n\n","properties":{"desireAttributes":{"type":"string","description":"Resource attributes specified when a user creates or updates a resource.\n","secret":true},"product":{"type":"string","description":"The product Code represents the product to be operated. Currently supported products and resources can be queried at the following link: [supported-services-and-resource-types](https://help.aliyun.com/zh/cloud-control-api/product-overview/supported-services-and-resource-types).\n"},"resourceAttributes":{"type":"string","description":"The collection of properties for the resource.\n"},"resourceCode":{"type":"string","description":"Resource Code, if there is a parent resource, split with `::`, such as VPC::VSwitch. The supported resource Code can be obtained from the following link: [supported-services-and-resource-types](https://help.aliyun.com/zh/cloud-control-api/product-overview/supported-services-and-resource-types).\n"},"resourceId":{"type":"string","description":"If there is a parent resource, you need to enter the id of the parent resource, for example, in the VPC::VSwtich resource, you need to enter the id of the VPC: vpc-dexadfe3r4ad. If there are more than one level of parent resources, you need to use `:` to split.\n"}},"required":["product","resourceAttributes","resourceCode","resourceId"],"inputProperties":{"desireAttributes":{"type":"string","description":"Resource attributes specified when a user creates or updates a resource.\n","secret":true},"product":{"type":"string","description":"The product Code represents the product to be operated. Currently supported products and resources can be queried at the following link: [supported-services-and-resource-types](https://help.aliyun.com/zh/cloud-control-api/product-overview/supported-services-and-resource-types).\n","willReplaceOnChanges":true},"resourceCode":{"type":"string","description":"Resource Code, if there is a parent resource, split with `::`, such as VPC::VSwitch. The supported resource Code can be obtained from the following link: [supported-services-and-resource-types](https://help.aliyun.com/zh/cloud-control-api/product-overview/supported-services-and-resource-types).\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"If there is a parent resource, you need to enter the id of the parent resource, for example, in the VPC::VSwtich resource, you need to enter the id of the VPC: vpc-dexadfe3r4ad. If there are more than one level of parent resources, you need to use `:` to split.\n","willReplaceOnChanges":true}},"requiredInputs":["product","resourceCode"],"stateInputs":{"description":"Input properties used for looking up and filtering Resource resources.\n","properties":{"desireAttributes":{"type":"string","description":"Resource attributes specified when a user creates or updates a resource.\n","secret":true},"product":{"type":"string","description":"The product Code represents the product to be operated. Currently supported products and resources can be queried at the following link: [supported-services-and-resource-types](https://help.aliyun.com/zh/cloud-control-api/product-overview/supported-services-and-resource-types).\n","willReplaceOnChanges":true},"resourceAttributes":{"type":"string","description":"The collection of properties for the resource.\n"},"resourceCode":{"type":"string","description":"Resource Code, if there is a parent resource, split with `::`, such as VPC::VSwitch. The supported resource Code can be obtained from the following link: [supported-services-and-resource-types](https://help.aliyun.com/zh/cloud-control-api/product-overview/supported-services-and-resource-types).\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"If there is a parent resource, you need to enter the id of the parent resource, for example, in the VPC::VSwtich resource, you need to enter the id of the VPC: vpc-dexadfe3r4ad. If there are more than one level of parent resources, you need to use `:` to split.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudfirewall/addressBook:AddressBook":{"description":"Provides a Cloud Firewall Address Book resource.\n\nFor information about Cloud Firewall Address Book and how to use it, see [What is Address Book](https://www.alibabacloud.com/help/en/cloud-firewall/developer-reference/api-cloudfw-2017-12-07-addaddressbook).\n\n\u003e **NOTE:** Available since v1.178.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.cloudfirewall.AddressBook(\"example\", {\n    description: \"example_value\",\n    groupName: \"example_value\",\n    groupType: \"tag\",\n    tagRelation: \"and\",\n    autoAddTagEcs: 0,\n    ecsTags: [{\n        tagKey: \"created\",\n        tagValue: \"tfTestAcc0\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cloudfirewall.AddressBook(\"example\",\n    description=\"example_value\",\n    group_name=\"example_value\",\n    group_type=\"tag\",\n    tag_relation=\"and\",\n    auto_add_tag_ecs=0,\n    ecs_tags=[{\n        \"tag_key\": \"created\",\n        \"tag_value\": \"tfTestAcc0\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.CloudFirewall.AddressBook(\"example\", new()\n    {\n        Description = \"example_value\",\n        GroupName = \"example_value\",\n        GroupType = \"tag\",\n        TagRelation = \"and\",\n        AutoAddTagEcs = 0,\n        EcsTags = new[]\n        {\n            new AliCloud.CloudFirewall.Inputs.AddressBookEcsTagArgs\n            {\n                TagKey = \"created\",\n                TagValue = \"tfTestAcc0\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudfirewall.NewAddressBook(ctx, \"example\", \u0026cloudfirewall.AddressBookArgs{\n\t\t\tDescription:   pulumi.String(\"example_value\"),\n\t\t\tGroupName:     pulumi.String(\"example_value\"),\n\t\t\tGroupType:     pulumi.String(\"tag\"),\n\t\t\tTagRelation:   pulumi.String(\"and\"),\n\t\t\tAutoAddTagEcs: pulumi.Int(0),\n\t\t\tEcsTags: cloudfirewall.AddressBookEcsTagArray{\n\t\t\t\t\u0026cloudfirewall.AddressBookEcsTagArgs{\n\t\t\t\t\tTagKey:   pulumi.String(\"created\"),\n\t\t\t\t\tTagValue: pulumi.String(\"tfTestAcc0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.AddressBook;\nimport com.pulumi.alicloud.cloudfirewall.AddressBookArgs;\nimport com.pulumi.alicloud.cloudfirewall.inputs.AddressBookEcsTagArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new AddressBook(\"example\", AddressBookArgs.builder()\n            .description(\"example_value\")\n            .groupName(\"example_value\")\n            .groupType(\"tag\")\n            .tagRelation(\"and\")\n            .autoAddTagEcs(0)\n            .ecsTags(AddressBookEcsTagArgs.builder()\n                .tagKey(\"created\")\n                .tagValue(\"tfTestAcc0\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:cloudfirewall:AddressBook\n    properties:\n      description: example_value\n      groupName: example_value\n      groupType: tag\n      tagRelation: and\n      autoAddTagEcs: 0\n      ecsTags:\n        - tagKey: created\n          tagValue: tfTestAcc0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Address Book can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudfirewall/addressBook:AddressBook example \u003cid\u003e\n```\n\n","properties":{"addressLists":{"type":"array","items":{"type":"string"},"description":"The list of addresses.\n"},"autoAddTagEcs":{"type":"integer","description":"Whether you want to automatically add new matching tags of the ECS IP address to the Address Book. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The description of the Address Book.\n"},"ecsTags":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/AddressBookEcsTag:AddressBookEcsTag"},"description":"A list of ECS tags. See \u003cspan pulumi-lang-nodejs=\"`ecsTags`\" pulumi-lang-dotnet=\"`EcsTags`\" pulumi-lang-go=\"`ecsTags`\" pulumi-lang-python=\"`ecs_tags`\" pulumi-lang-yaml=\"`ecsTags`\" pulumi-lang-java=\"`ecsTags`\"\u003e`ecs_tags`\u003c/span\u003e below.\n"},"groupName":{"type":"string","description":"The name of the Address Book.\n"},"groupType":{"type":"string","description":"The type of the Address Book. Valid values: \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tag`\" pulumi-lang-dotnet=\"`Tag`\" pulumi-lang-go=\"`tag`\" pulumi-lang-python=\"`tag`\" pulumi-lang-yaml=\"`tag`\" pulumi-lang-java=\"`tag`\"\u003e`tag`\u003c/span\u003e.\n**NOTE:** From version 1.213.1, \u003cspan pulumi-lang-nodejs=\"`groupType`\" pulumi-lang-dotnet=\"`GroupType`\" pulumi-lang-go=\"`groupType`\" pulumi-lang-python=\"`group_type`\" pulumi-lang-yaml=\"`groupType`\" pulumi-lang-java=\"`groupType`\"\u003e`group_type`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e.\n"},"lang":{"type":"string","description":"The language of the content within the request and response. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"tagRelation":{"type":"string","description":"The logical relation among the ECS tags that to be matched. Default value: \u003cspan pulumi-lang-nodejs=\"`and`\" pulumi-lang-dotnet=\"`And`\" pulumi-lang-go=\"`and`\" pulumi-lang-python=\"`and`\" pulumi-lang-yaml=\"`and`\" pulumi-lang-java=\"`and`\"\u003e`and`\u003c/span\u003e. Valid values:\n"}},"required":["description","groupName","groupType","tagRelation"],"inputProperties":{"addressLists":{"type":"array","items":{"type":"string"},"description":"The list of addresses.\n"},"autoAddTagEcs":{"type":"integer","description":"Whether you want to automatically add new matching tags of the ECS IP address to the Address Book. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The description of the Address Book.\n"},"ecsTags":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/AddressBookEcsTag:AddressBookEcsTag"},"description":"A list of ECS tags. See \u003cspan pulumi-lang-nodejs=\"`ecsTags`\" pulumi-lang-dotnet=\"`EcsTags`\" pulumi-lang-go=\"`ecsTags`\" pulumi-lang-python=\"`ecs_tags`\" pulumi-lang-yaml=\"`ecsTags`\" pulumi-lang-java=\"`ecsTags`\"\u003e`ecs_tags`\u003c/span\u003e below.\n"},"groupName":{"type":"string","description":"The name of the Address Book.\n"},"groupType":{"type":"string","description":"The type of the Address Book. Valid values: \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tag`\" pulumi-lang-dotnet=\"`Tag`\" pulumi-lang-go=\"`tag`\" pulumi-lang-python=\"`tag`\" pulumi-lang-yaml=\"`tag`\" pulumi-lang-java=\"`tag`\"\u003e`tag`\u003c/span\u003e.\n**NOTE:** From version 1.213.1, \u003cspan pulumi-lang-nodejs=\"`groupType`\" pulumi-lang-dotnet=\"`GroupType`\" pulumi-lang-go=\"`groupType`\" pulumi-lang-python=\"`group_type`\" pulumi-lang-yaml=\"`groupType`\" pulumi-lang-java=\"`groupType`\"\u003e`group_type`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e.\n","willReplaceOnChanges":true},"lang":{"type":"string","description":"The language of the content within the request and response. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"tagRelation":{"type":"string","description":"The logical relation among the ECS tags that to be matched. Default value: \u003cspan pulumi-lang-nodejs=\"`and`\" pulumi-lang-dotnet=\"`And`\" pulumi-lang-go=\"`and`\" pulumi-lang-python=\"`and`\" pulumi-lang-yaml=\"`and`\" pulumi-lang-java=\"`and`\"\u003e`and`\u003c/span\u003e. Valid values:\n"}},"requiredInputs":["description","groupName","groupType"],"stateInputs":{"description":"Input properties used for looking up and filtering AddressBook resources.\n","properties":{"addressLists":{"type":"array","items":{"type":"string"},"description":"The list of addresses.\n"},"autoAddTagEcs":{"type":"integer","description":"Whether you want to automatically add new matching tags of the ECS IP address to the Address Book. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The description of the Address Book.\n"},"ecsTags":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/AddressBookEcsTag:AddressBookEcsTag"},"description":"A list of ECS tags. See \u003cspan pulumi-lang-nodejs=\"`ecsTags`\" pulumi-lang-dotnet=\"`EcsTags`\" pulumi-lang-go=\"`ecsTags`\" pulumi-lang-python=\"`ecs_tags`\" pulumi-lang-yaml=\"`ecsTags`\" pulumi-lang-java=\"`ecsTags`\"\u003e`ecs_tags`\u003c/span\u003e below.\n"},"groupName":{"type":"string","description":"The name of the Address Book.\n"},"groupType":{"type":"string","description":"The type of the Address Book. Valid values: \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tag`\" pulumi-lang-dotnet=\"`Tag`\" pulumi-lang-go=\"`tag`\" pulumi-lang-python=\"`tag`\" pulumi-lang-yaml=\"`tag`\" pulumi-lang-java=\"`tag`\"\u003e`tag`\u003c/span\u003e.\n**NOTE:** From version 1.213.1, \u003cspan pulumi-lang-nodejs=\"`groupType`\" pulumi-lang-dotnet=\"`GroupType`\" pulumi-lang-go=\"`groupType`\" pulumi-lang-python=\"`group_type`\" pulumi-lang-yaml=\"`groupType`\" pulumi-lang-java=\"`groupType`\"\u003e`group_type`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e.\n","willReplaceOnChanges":true},"lang":{"type":"string","description":"The language of the content within the request and response. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"tagRelation":{"type":"string","description":"The logical relation among the ECS tags that to be matched. Default value: \u003cspan pulumi-lang-nodejs=\"`and`\" pulumi-lang-dotnet=\"`And`\" pulumi-lang-go=\"`and`\" pulumi-lang-python=\"`and`\" pulumi-lang-yaml=\"`and`\" pulumi-lang-java=\"`and`\"\u003e`and`\u003c/span\u003e. Valid values:\n"}},"type":"object"}},"alicloud:cloudfirewall/aiTrafficAnalysisStatus:AiTrafficAnalysisStatus":{"description":"Provides a Cloud Firewall Ai Traffic Analysis Status resource.\n\nAI traffic analysis.\n\nFor information about Cloud Firewall Ai Traffic Analysis Status and how to use it, see [What is Ai Traffic Analysis Status](https://next.api.alibabacloud.com/document/Cloudfw/2017-12-07/UpdateAITrafficAnalysisStatus).\n\n\u003e **NOTE:** Available since v1.263.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cloudfirewall.AiTrafficAnalysisStatus(\"default\", {status: \"Open\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudfirewall.AiTrafficAnalysisStatus(\"default\", status=\"Open\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.CloudFirewall.AiTrafficAnalysisStatus(\"default\", new()\n    {\n        Status = \"Open\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cloudfirewall.NewAiTrafficAnalysisStatus(ctx, \"default\", \u0026cloudfirewall.AiTrafficAnalysisStatusArgs{\n\t\t\tStatus: pulumi.String(\"Open\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.AiTrafficAnalysisStatus;\nimport com.pulumi.alicloud.cloudfirewall.AiTrafficAnalysisStatusArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new AiTrafficAnalysisStatus(\"default\", AiTrafficAnalysisStatusArgs.builder()\n            .status(\"Open\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cloudfirewall:AiTrafficAnalysisStatus\n    properties:\n      status: Open\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudfirewall.AiTrafficAnalysisStatus`\" pulumi-lang-dotnet=\"`alicloud.cloudfirewall.AiTrafficAnalysisStatus`\" pulumi-lang-go=\"`cloudfirewall.AiTrafficAnalysisStatus`\" pulumi-lang-python=\"`cloudfirewall.AiTrafficAnalysisStatus`\" pulumi-lang-yaml=\"`alicloud.cloudfirewall.AiTrafficAnalysisStatus`\" pulumi-lang-java=\"`alicloud.cloudfirewall.AiTrafficAnalysisStatus`\"\u003e`alicloud.cloudfirewall.AiTrafficAnalysisStatus`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudfirewall.AiTrafficAnalysisStatus`\" pulumi-lang-dotnet=\"`alicloud.cloudfirewall.AiTrafficAnalysisStatus`\" pulumi-lang-go=\"`cloudfirewall.AiTrafficAnalysisStatus`\" pulumi-lang-python=\"`cloudfirewall.AiTrafficAnalysisStatus`\" pulumi-lang-yaml=\"`alicloud.cloudfirewall.AiTrafficAnalysisStatus`\" pulumi-lang-java=\"`alicloud.cloudfirewall.AiTrafficAnalysisStatus`\"\u003e`alicloud.cloudfirewall.AiTrafficAnalysisStatus`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Ai Traffic Analysis Status can be imported using the id, e.g.\n\n```sh\n$ terraform import alicloud_cloud_firewall_ai_traffic_analysis_status.example \n```\n\n","properties":{"status":{"type":"string","description":"Status\n"}},"required":["status"],"inputProperties":{"status":{"type":"string","description":"Status\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering AiTrafficAnalysisStatus resources.\n","properties":{"status":{"type":"string","description":"Status\n"}},"type":"object"}},"alicloud:cloudfirewall/controlPolicy:ControlPolicy":{"description":"Provides a Cloud Firewall Control Policy resource.\n\nFor information about Cloud Firewall Control Policy and how to use it, see [What is Control Policy](https://www.alibabacloud.com/help/doc-detail/138867.htm).\n\n\u003e **NOTE:** Available since v1.129.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cloudfirewall.ControlPolicy(\"default\", {\n    direction: \"in\",\n    applicationName: \"ANY\",\n    description: name,\n    aclAction: \"accept\",\n    source: \"127.0.0.1/32\",\n    sourceType: \"net\",\n    destination: \"127.0.0.2/32\",\n    destinationType: \"net\",\n    proto: \"ANY\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudfirewall.ControlPolicy(\"default\",\n    direction=\"in\",\n    application_name=\"ANY\",\n    description=name,\n    acl_action=\"accept\",\n    source=\"127.0.0.1/32\",\n    source_type=\"net\",\n    destination=\"127.0.0.2/32\",\n    destination_type=\"net\",\n    proto=\"ANY\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.CloudFirewall.ControlPolicy(\"default\", new()\n    {\n        Direction = \"in\",\n        ApplicationName = \"ANY\",\n        Description = name,\n        AclAction = \"accept\",\n        Source = \"127.0.0.1/32\",\n        SourceType = \"net\",\n        Destination = \"127.0.0.2/32\",\n        DestinationType = \"net\",\n        Proto = \"ANY\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cloudfirewall.NewControlPolicy(ctx, \"default\", \u0026cloudfirewall.ControlPolicyArgs{\n\t\t\tDirection:       pulumi.String(\"in\"),\n\t\t\tApplicationName: pulumi.String(\"ANY\"),\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tAclAction:       pulumi.String(\"accept\"),\n\t\t\tSource:          pulumi.String(\"127.0.0.1/32\"),\n\t\t\tSourceType:      pulumi.String(\"net\"),\n\t\t\tDestination:     pulumi.String(\"127.0.0.2/32\"),\n\t\t\tDestinationType: pulumi.String(\"net\"),\n\t\t\tProto:           pulumi.String(\"ANY\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.ControlPolicy;\nimport com.pulumi.alicloud.cloudfirewall.ControlPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ControlPolicy(\"default\", ControlPolicyArgs.builder()\n            .direction(\"in\")\n            .applicationName(\"ANY\")\n            .description(name)\n            .aclAction(\"accept\")\n            .source(\"127.0.0.1/32\")\n            .sourceType(\"net\")\n            .destination(\"127.0.0.2/32\")\n            .destinationType(\"net\")\n            .proto(\"ANY\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cloudfirewall:ControlPolicy\n    properties:\n      direction: in\n      applicationName: ANY\n      description: ${name}\n      aclAction: accept\n      source: 127.0.0.1/32\n      sourceType: net\n      destination: 127.0.0.2/32\n      destinationType: net\n      proto: ANY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Control Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudfirewall/controlPolicy:ControlPolicy example \u003cacl_uuid\u003e:\u003cdirection\u003e\n```\n\n","properties":{"aclAction":{"type":"string","description":"The action that Cloud Firewall performs on the traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`log`\" pulumi-lang-dotnet=\"`Log`\" pulumi-lang-go=\"`log`\" pulumi-lang-python=\"`log`\" pulumi-lang-yaml=\"`log`\" pulumi-lang-java=\"`log`\"\u003e`log`\u003c/span\u003e.\n"},"aclUuid":{"type":"string","description":"(Available since v1.148.0) The unique ID of the access control policy.\n"},"applicationName":{"type":"string","description":"The application type supported by the access control policy. Valid values: `ANY`, `HTTP`, `HTTPS`, `MQTT`, `Memcache`, `MongoDB`, `MySQL`, `RDP`, `Redis`, `SMTP`, `SMTPS`, `SSH`, `SSL`, `VNC`.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `TCP`, you can set \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e to any valid value. If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `UDP`, `ICMP`, or `ANY`, you can only set \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e to `ANY`.\n"},"applicationNameLists":{"type":"array","items":{"type":"string"},"description":"The application types supported by the access control policy.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `TCP`, you can set \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e to any valid value. If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `UDP`, `ICMP`, or `ANY`, you can only set \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e to `[\"ANY\"]`. From version 1.232.0, You must specify at least one of the \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e. If you specify both \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e, only the \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e takes effect.\n"},"createTime":{"type":"string","description":"(Available since v1.232.0) The time when the access control policy was created.\n"},"description":{"type":"string","description":"The description of the access control policy.\n"},"destPort":{"type":"string","description":"The destination port in the access control policy. **Note:** If \u003cspan pulumi-lang-nodejs=\"`destPortType`\" pulumi-lang-dotnet=\"`DestPortType`\" pulumi-lang-go=\"`destPortType`\" pulumi-lang-python=\"`dest_port_type`\" pulumi-lang-yaml=\"`destPortType`\" pulumi-lang-java=\"`destPortType`\"\u003e`dest_port_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, you must specify \u003cspan pulumi-lang-nodejs=\"`destPort`\" pulumi-lang-dotnet=\"`DestPort`\" pulumi-lang-go=\"`destPort`\" pulumi-lang-python=\"`dest_port`\" pulumi-lang-yaml=\"`destPort`\" pulumi-lang-java=\"`destPort`\"\u003e`dest_port`\u003c/span\u003e.\n"},"destPortGroup":{"type":"string","description":"The name of the destination port address book in the access control policy. **Note:** If \u003cspan pulumi-lang-nodejs=\"`destPortType`\" pulumi-lang-dotnet=\"`DestPortType`\" pulumi-lang-go=\"`destPortType`\" pulumi-lang-python=\"`dest_port_type`\" pulumi-lang-yaml=\"`destPortType`\" pulumi-lang-java=\"`destPortType`\"\u003e`dest_port_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, you must specify \u003cspan pulumi-lang-nodejs=\"`destPortGroup`\" pulumi-lang-dotnet=\"`DestPortGroup`\" pulumi-lang-go=\"`destPortGroup`\" pulumi-lang-python=\"`dest_port_group`\" pulumi-lang-yaml=\"`destPortGroup`\" pulumi-lang-java=\"`destPortGroup`\"\u003e`dest_port_group`\u003c/span\u003e.\n"},"destPortType":{"type":"string","description":"The type of the destination port in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e.\n"},"destination":{"type":"string","description":"The destination address in the access control policy.\n"},"destinationType":{"type":"string","description":"The type of the destination address in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`net`\" pulumi-lang-dotnet=\"`Net`\" pulumi-lang-go=\"`net`\" pulumi-lang-python=\"`net`\" pulumi-lang-yaml=\"`net`\" pulumi-lang-java=\"`net`\"\u003e`net`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e.\n"},"direction":{"type":"string","description":"The direction of the traffic to which the access control policy applies. Valid values: \u003cspan pulumi-lang-nodejs=\"`in`\" pulumi-lang-dotnet=\"`In`\" pulumi-lang-go=\"`in`\" pulumi-lang-python=\"`in`\" pulumi-lang-yaml=\"`in`\" pulumi-lang-java=\"`in`\"\u003e`in`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`out`\" pulumi-lang-dotnet=\"`Out`\" pulumi-lang-go=\"`out`\" pulumi-lang-python=\"`out`\" pulumi-lang-yaml=\"`out`\" pulumi-lang-java=\"`out`\"\u003e`out`\u003c/span\u003e.\n"},"domainResolveType":{"type":"string","description":"The domain name resolution method of the access control policy. Valid values:\n- `FQDN`: Fully qualified domain name (FQDN)-based resolution.\n- `DNS`: DNS-based dynamic resolution.\n- `FQDN_AND_DNS`: FQDN and DNS-based dynamic resolution.\n"},"endTime":{"type":"integer","description":"The time when the access control policy stops taking effect. The value is a UNIX timestamp. Unit: seconds. The value must be on the hour or on the half hour, and at least 30 minutes later than the start time.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `None`, `Daily`, `Weekly`, or `Monthly`, \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e must be set.\n"},"ipVersion":{"type":"string","description":"The IP version supported by the access control policy. Default value: \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e. Valid values:\n"},"lang":{"type":"string","description":"The language of the content within the request and response. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"proto":{"type":"string","description":"The protocol type supported by the access control policy. Valid values: `ANY`, ` TCP`, `UDP`, `ICMP`.\n"},"release":{"type":"string","description":"The status of the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"repeatDays":{"type":"array","items":{"type":"integer"},"description":"The days of a week or of a month on which the access control policy takes effect. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Weekly`. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Monthly`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`31`\" pulumi-lang-dotnet=\"`31`\" pulumi-lang-go=\"`31`\" pulumi-lang-python=\"`31`\" pulumi-lang-yaml=\"`31`\" pulumi-lang-java=\"`31`\"\u003e`31`\u003c/span\u003e.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Weekly`, or `Monthly`, \u003cspan pulumi-lang-nodejs=\"`repeatDays`\" pulumi-lang-dotnet=\"`RepeatDays`\" pulumi-lang-go=\"`repeatDays`\" pulumi-lang-python=\"`repeat_days`\" pulumi-lang-yaml=\"`repeatDays`\" pulumi-lang-java=\"`repeatDays`\"\u003e`repeat_days`\u003c/span\u003e must be set.\n"},"repeatEndTime":{"type":"string","description":"The point in time when the recurrence ends. Example: `23:30`. The end time must be on the hour or on the half hour, and at least 30 minutes later than the start time.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Daily`, `Weekly`, or `Monthly`, \u003cspan pulumi-lang-nodejs=\"`repeatStartTime`\" pulumi-lang-dotnet=\"`RepeatStartTime`\" pulumi-lang-go=\"`repeatStartTime`\" pulumi-lang-python=\"`repeat_start_time`\" pulumi-lang-yaml=\"`repeatStartTime`\" pulumi-lang-java=\"`repeatStartTime`\"\u003e`repeat_start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`repeatEndTime`\" pulumi-lang-dotnet=\"`RepeatEndTime`\" pulumi-lang-go=\"`repeatEndTime`\" pulumi-lang-python=\"`repeat_end_time`\" pulumi-lang-yaml=\"`repeatEndTime`\" pulumi-lang-java=\"`repeatEndTime`\"\u003e`repeat_end_time`\u003c/span\u003e must be set.\n"},"repeatStartTime":{"type":"string","description":"The point in time when the recurrence starts. Example: `08:00`. The start time must be on the hour or on the half hour, and at least 30 minutes earlier than the end time.\n"},"repeatType":{"type":"string","description":"The recurrence type for the access control policy to take effect. Default value: `Permanent`. Valid values:\n- `Permanent`: The policy always takes effect.\n- `None`: The policy takes effect for only once.\n- `Daily`: The policy takes effect on a daily basis.\n- `Weekly`: The policy takes effect on a weekly basis.\n- `Monthly`: The policy takes effect on a monthly basis.\n"},"source":{"type":"string","description":"The source address in the access control policy.\n"},"sourceIp":{"type":"string","description":"The source IP address of the request.\n"},"sourceType":{"type":"string","description":"The type of the source address in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`net`\" pulumi-lang-dotnet=\"`Net`\" pulumi-lang-go=\"`net`\" pulumi-lang-python=\"`net`\" pulumi-lang-yaml=\"`net`\" pulumi-lang-java=\"`net`\"\u003e`net`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e.\n"},"startTime":{"type":"integer","description":"The time when the access control policy starts to take effect. The value is a UNIX timestamp. Unit: seconds. The value must be on the hour or on the half hour, and at least 30 minutes earlier than the end time.\n"}},"required":["aclAction","aclUuid","createTime","description","destPort","destPortType","destination","destinationType","direction","ipVersion","proto","release","repeatType","source","sourceType"],"inputProperties":{"aclAction":{"type":"string","description":"The action that Cloud Firewall performs on the traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`log`\" pulumi-lang-dotnet=\"`Log`\" pulumi-lang-go=\"`log`\" pulumi-lang-python=\"`log`\" pulumi-lang-yaml=\"`log`\" pulumi-lang-java=\"`log`\"\u003e`log`\u003c/span\u003e.\n"},"applicationName":{"type":"string","description":"The application type supported by the access control policy. Valid values: `ANY`, `HTTP`, `HTTPS`, `MQTT`, `Memcache`, `MongoDB`, `MySQL`, `RDP`, `Redis`, `SMTP`, `SMTPS`, `SSH`, `SSL`, `VNC`.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `TCP`, you can set \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e to any valid value. If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `UDP`, `ICMP`, or `ANY`, you can only set \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e to `ANY`.\n"},"applicationNameLists":{"type":"array","items":{"type":"string"},"description":"The application types supported by the access control policy.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `TCP`, you can set \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e to any valid value. If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `UDP`, `ICMP`, or `ANY`, you can only set \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e to `[\"ANY\"]`. From version 1.232.0, You must specify at least one of the \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e. If you specify both \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e, only the \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e takes effect.\n"},"description":{"type":"string","description":"The description of the access control policy.\n"},"destPort":{"type":"string","description":"The destination port in the access control policy. **Note:** If \u003cspan pulumi-lang-nodejs=\"`destPortType`\" pulumi-lang-dotnet=\"`DestPortType`\" pulumi-lang-go=\"`destPortType`\" pulumi-lang-python=\"`dest_port_type`\" pulumi-lang-yaml=\"`destPortType`\" pulumi-lang-java=\"`destPortType`\"\u003e`dest_port_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, you must specify \u003cspan pulumi-lang-nodejs=\"`destPort`\" pulumi-lang-dotnet=\"`DestPort`\" pulumi-lang-go=\"`destPort`\" pulumi-lang-python=\"`dest_port`\" pulumi-lang-yaml=\"`destPort`\" pulumi-lang-java=\"`destPort`\"\u003e`dest_port`\u003c/span\u003e.\n"},"destPortGroup":{"type":"string","description":"The name of the destination port address book in the access control policy. **Note:** If \u003cspan pulumi-lang-nodejs=\"`destPortType`\" pulumi-lang-dotnet=\"`DestPortType`\" pulumi-lang-go=\"`destPortType`\" pulumi-lang-python=\"`dest_port_type`\" pulumi-lang-yaml=\"`destPortType`\" pulumi-lang-java=\"`destPortType`\"\u003e`dest_port_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, you must specify \u003cspan pulumi-lang-nodejs=\"`destPortGroup`\" pulumi-lang-dotnet=\"`DestPortGroup`\" pulumi-lang-go=\"`destPortGroup`\" pulumi-lang-python=\"`dest_port_group`\" pulumi-lang-yaml=\"`destPortGroup`\" pulumi-lang-java=\"`destPortGroup`\"\u003e`dest_port_group`\u003c/span\u003e.\n"},"destPortType":{"type":"string","description":"The type of the destination port in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e.\n"},"destination":{"type":"string","description":"The destination address in the access control policy.\n"},"destinationType":{"type":"string","description":"The type of the destination address in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`net`\" pulumi-lang-dotnet=\"`Net`\" pulumi-lang-go=\"`net`\" pulumi-lang-python=\"`net`\" pulumi-lang-yaml=\"`net`\" pulumi-lang-java=\"`net`\"\u003e`net`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e.\n"},"direction":{"type":"string","description":"The direction of the traffic to which the access control policy applies. Valid values: \u003cspan pulumi-lang-nodejs=\"`in`\" pulumi-lang-dotnet=\"`In`\" pulumi-lang-go=\"`in`\" pulumi-lang-python=\"`in`\" pulumi-lang-yaml=\"`in`\" pulumi-lang-java=\"`in`\"\u003e`in`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`out`\" pulumi-lang-dotnet=\"`Out`\" pulumi-lang-go=\"`out`\" pulumi-lang-python=\"`out`\" pulumi-lang-yaml=\"`out`\" pulumi-lang-java=\"`out`\"\u003e`out`\u003c/span\u003e.\n","willReplaceOnChanges":true},"domainResolveType":{"type":"string","description":"The domain name resolution method of the access control policy. Valid values:\n- `FQDN`: Fully qualified domain name (FQDN)-based resolution.\n- `DNS`: DNS-based dynamic resolution.\n- `FQDN_AND_DNS`: FQDN and DNS-based dynamic resolution.\n"},"endTime":{"type":"integer","description":"The time when the access control policy stops taking effect. The value is a UNIX timestamp. Unit: seconds. The value must be on the hour or on the half hour, and at least 30 minutes later than the start time.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `None`, `Daily`, `Weekly`, or `Monthly`, \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e must be set.\n"},"ipVersion":{"type":"string","description":"The IP version supported by the access control policy. Default value: \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"lang":{"type":"string","description":"The language of the content within the request and response. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"proto":{"type":"string","description":"The protocol type supported by the access control policy. Valid values: `ANY`, ` TCP`, `UDP`, `ICMP`.\n"},"release":{"type":"string","description":"The status of the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"repeatDays":{"type":"array","items":{"type":"integer"},"description":"The days of a week or of a month on which the access control policy takes effect. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Weekly`. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Monthly`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`31`\" pulumi-lang-dotnet=\"`31`\" pulumi-lang-go=\"`31`\" pulumi-lang-python=\"`31`\" pulumi-lang-yaml=\"`31`\" pulumi-lang-java=\"`31`\"\u003e`31`\u003c/span\u003e.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Weekly`, or `Monthly`, \u003cspan pulumi-lang-nodejs=\"`repeatDays`\" pulumi-lang-dotnet=\"`RepeatDays`\" pulumi-lang-go=\"`repeatDays`\" pulumi-lang-python=\"`repeat_days`\" pulumi-lang-yaml=\"`repeatDays`\" pulumi-lang-java=\"`repeatDays`\"\u003e`repeat_days`\u003c/span\u003e must be set.\n"},"repeatEndTime":{"type":"string","description":"The point in time when the recurrence ends. Example: `23:30`. The end time must be on the hour or on the half hour, and at least 30 minutes later than the start time.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Daily`, `Weekly`, or `Monthly`, \u003cspan pulumi-lang-nodejs=\"`repeatStartTime`\" pulumi-lang-dotnet=\"`RepeatStartTime`\" pulumi-lang-go=\"`repeatStartTime`\" pulumi-lang-python=\"`repeat_start_time`\" pulumi-lang-yaml=\"`repeatStartTime`\" pulumi-lang-java=\"`repeatStartTime`\"\u003e`repeat_start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`repeatEndTime`\" pulumi-lang-dotnet=\"`RepeatEndTime`\" pulumi-lang-go=\"`repeatEndTime`\" pulumi-lang-python=\"`repeat_end_time`\" pulumi-lang-yaml=\"`repeatEndTime`\" pulumi-lang-java=\"`repeatEndTime`\"\u003e`repeat_end_time`\u003c/span\u003e must be set.\n"},"repeatStartTime":{"type":"string","description":"The point in time when the recurrence starts. Example: `08:00`. The start time must be on the hour or on the half hour, and at least 30 minutes earlier than the end time.\n"},"repeatType":{"type":"string","description":"The recurrence type for the access control policy to take effect. Default value: `Permanent`. Valid values:\n- `Permanent`: The policy always takes effect.\n- `None`: The policy takes effect for only once.\n- `Daily`: The policy takes effect on a daily basis.\n- `Weekly`: The policy takes effect on a weekly basis.\n- `Monthly`: The policy takes effect on a monthly basis.\n"},"source":{"type":"string","description":"The source address in the access control policy.\n"},"sourceIp":{"type":"string","description":"The source IP address of the request.\n"},"sourceType":{"type":"string","description":"The type of the source address in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`net`\" pulumi-lang-dotnet=\"`Net`\" pulumi-lang-go=\"`net`\" pulumi-lang-python=\"`net`\" pulumi-lang-yaml=\"`net`\" pulumi-lang-java=\"`net`\"\u003e`net`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e.\n"},"startTime":{"type":"integer","description":"The time when the access control policy starts to take effect. The value is a UNIX timestamp. Unit: seconds. The value must be on the hour or on the half hour, and at least 30 minutes earlier than the end time.\n"}},"requiredInputs":["aclAction","description","destination","destinationType","direction","proto","source","sourceType"],"stateInputs":{"description":"Input properties used for looking up and filtering ControlPolicy resources.\n","properties":{"aclAction":{"type":"string","description":"The action that Cloud Firewall performs on the traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`log`\" pulumi-lang-dotnet=\"`Log`\" pulumi-lang-go=\"`log`\" pulumi-lang-python=\"`log`\" pulumi-lang-yaml=\"`log`\" pulumi-lang-java=\"`log`\"\u003e`log`\u003c/span\u003e.\n"},"aclUuid":{"type":"string","description":"(Available since v1.148.0) The unique ID of the access control policy.\n"},"applicationName":{"type":"string","description":"The application type supported by the access control policy. Valid values: `ANY`, `HTTP`, `HTTPS`, `MQTT`, `Memcache`, `MongoDB`, `MySQL`, `RDP`, `Redis`, `SMTP`, `SMTPS`, `SSH`, `SSL`, `VNC`.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `TCP`, you can set \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e to any valid value. If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `UDP`, `ICMP`, or `ANY`, you can only set \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e to `ANY`.\n"},"applicationNameLists":{"type":"array","items":{"type":"string"},"description":"The application types supported by the access control policy.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `TCP`, you can set \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e to any valid value. If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `UDP`, `ICMP`, or `ANY`, you can only set \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e to `[\"ANY\"]`. From version 1.232.0, You must specify at least one of the \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e. If you specify both \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e, only the \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e takes effect.\n"},"createTime":{"type":"string","description":"(Available since v1.232.0) The time when the access control policy was created.\n"},"description":{"type":"string","description":"The description of the access control policy.\n"},"destPort":{"type":"string","description":"The destination port in the access control policy. **Note:** If \u003cspan pulumi-lang-nodejs=\"`destPortType`\" pulumi-lang-dotnet=\"`DestPortType`\" pulumi-lang-go=\"`destPortType`\" pulumi-lang-python=\"`dest_port_type`\" pulumi-lang-yaml=\"`destPortType`\" pulumi-lang-java=\"`destPortType`\"\u003e`dest_port_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, you must specify \u003cspan pulumi-lang-nodejs=\"`destPort`\" pulumi-lang-dotnet=\"`DestPort`\" pulumi-lang-go=\"`destPort`\" pulumi-lang-python=\"`dest_port`\" pulumi-lang-yaml=\"`destPort`\" pulumi-lang-java=\"`destPort`\"\u003e`dest_port`\u003c/span\u003e.\n"},"destPortGroup":{"type":"string","description":"The name of the destination port address book in the access control policy. **Note:** If \u003cspan pulumi-lang-nodejs=\"`destPortType`\" pulumi-lang-dotnet=\"`DestPortType`\" pulumi-lang-go=\"`destPortType`\" pulumi-lang-python=\"`dest_port_type`\" pulumi-lang-yaml=\"`destPortType`\" pulumi-lang-java=\"`destPortType`\"\u003e`dest_port_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, you must specify \u003cspan pulumi-lang-nodejs=\"`destPortGroup`\" pulumi-lang-dotnet=\"`DestPortGroup`\" pulumi-lang-go=\"`destPortGroup`\" pulumi-lang-python=\"`dest_port_group`\" pulumi-lang-yaml=\"`destPortGroup`\" pulumi-lang-java=\"`destPortGroup`\"\u003e`dest_port_group`\u003c/span\u003e.\n"},"destPortType":{"type":"string","description":"The type of the destination port in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e.\n"},"destination":{"type":"string","description":"The destination address in the access control policy.\n"},"destinationType":{"type":"string","description":"The type of the destination address in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`net`\" pulumi-lang-dotnet=\"`Net`\" pulumi-lang-go=\"`net`\" pulumi-lang-python=\"`net`\" pulumi-lang-yaml=\"`net`\" pulumi-lang-java=\"`net`\"\u003e`net`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e.\n"},"direction":{"type":"string","description":"The direction of the traffic to which the access control policy applies. Valid values: \u003cspan pulumi-lang-nodejs=\"`in`\" pulumi-lang-dotnet=\"`In`\" pulumi-lang-go=\"`in`\" pulumi-lang-python=\"`in`\" pulumi-lang-yaml=\"`in`\" pulumi-lang-java=\"`in`\"\u003e`in`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`out`\" pulumi-lang-dotnet=\"`Out`\" pulumi-lang-go=\"`out`\" pulumi-lang-python=\"`out`\" pulumi-lang-yaml=\"`out`\" pulumi-lang-java=\"`out`\"\u003e`out`\u003c/span\u003e.\n","willReplaceOnChanges":true},"domainResolveType":{"type":"string","description":"The domain name resolution method of the access control policy. Valid values:\n- `FQDN`: Fully qualified domain name (FQDN)-based resolution.\n- `DNS`: DNS-based dynamic resolution.\n- `FQDN_AND_DNS`: FQDN and DNS-based dynamic resolution.\n"},"endTime":{"type":"integer","description":"The time when the access control policy stops taking effect. The value is a UNIX timestamp. Unit: seconds. The value must be on the hour or on the half hour, and at least 30 minutes later than the start time.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `None`, `Daily`, `Weekly`, or `Monthly`, \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e must be set.\n"},"ipVersion":{"type":"string","description":"The IP version supported by the access control policy. Default value: \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"lang":{"type":"string","description":"The language of the content within the request and response. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"proto":{"type":"string","description":"The protocol type supported by the access control policy. Valid values: `ANY`, ` TCP`, `UDP`, `ICMP`.\n"},"release":{"type":"string","description":"The status of the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"repeatDays":{"type":"array","items":{"type":"integer"},"description":"The days of a week or of a month on which the access control policy takes effect. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Weekly`. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Monthly`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`31`\" pulumi-lang-dotnet=\"`31`\" pulumi-lang-go=\"`31`\" pulumi-lang-python=\"`31`\" pulumi-lang-yaml=\"`31`\" pulumi-lang-java=\"`31`\"\u003e`31`\u003c/span\u003e.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Weekly`, or `Monthly`, \u003cspan pulumi-lang-nodejs=\"`repeatDays`\" pulumi-lang-dotnet=\"`RepeatDays`\" pulumi-lang-go=\"`repeatDays`\" pulumi-lang-python=\"`repeat_days`\" pulumi-lang-yaml=\"`repeatDays`\" pulumi-lang-java=\"`repeatDays`\"\u003e`repeat_days`\u003c/span\u003e must be set.\n"},"repeatEndTime":{"type":"string","description":"The point in time when the recurrence ends. Example: `23:30`. The end time must be on the hour or on the half hour, and at least 30 minutes later than the start time.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Daily`, `Weekly`, or `Monthly`, \u003cspan pulumi-lang-nodejs=\"`repeatStartTime`\" pulumi-lang-dotnet=\"`RepeatStartTime`\" pulumi-lang-go=\"`repeatStartTime`\" pulumi-lang-python=\"`repeat_start_time`\" pulumi-lang-yaml=\"`repeatStartTime`\" pulumi-lang-java=\"`repeatStartTime`\"\u003e`repeat_start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`repeatEndTime`\" pulumi-lang-dotnet=\"`RepeatEndTime`\" pulumi-lang-go=\"`repeatEndTime`\" pulumi-lang-python=\"`repeat_end_time`\" pulumi-lang-yaml=\"`repeatEndTime`\" pulumi-lang-java=\"`repeatEndTime`\"\u003e`repeat_end_time`\u003c/span\u003e must be set.\n"},"repeatStartTime":{"type":"string","description":"The point in time when the recurrence starts. Example: `08:00`. The start time must be on the hour or on the half hour, and at least 30 minutes earlier than the end time.\n"},"repeatType":{"type":"string","description":"The recurrence type for the access control policy to take effect. Default value: `Permanent`. Valid values:\n- `Permanent`: The policy always takes effect.\n- `None`: The policy takes effect for only once.\n- `Daily`: The policy takes effect on a daily basis.\n- `Weekly`: The policy takes effect on a weekly basis.\n- `Monthly`: The policy takes effect on a monthly basis.\n"},"source":{"type":"string","description":"The source address in the access control policy.\n"},"sourceIp":{"type":"string","description":"The source IP address of the request.\n"},"sourceType":{"type":"string","description":"The type of the source address in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`net`\" pulumi-lang-dotnet=\"`Net`\" pulumi-lang-go=\"`net`\" pulumi-lang-python=\"`net`\" pulumi-lang-yaml=\"`net`\" pulumi-lang-java=\"`net`\"\u003e`net`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e.\n"},"startTime":{"type":"integer","description":"The time when the access control policy starts to take effect. The value is a UNIX timestamp. Unit: seconds. The value must be on the hour or on the half hour, and at least 30 minutes earlier than the end time.\n"}},"type":"object"}},"alicloud:cloudfirewall/controlPolicyOrder:ControlPolicyOrder":{"description":"Provides a Cloud Firewall Control Policy Order resource.\n\nFor information about Cloud Firewall Control Policy Order and how to use it, see [What is Control Policy Order](https://www.alibabacloud.com/help/doc-detail/138867.htm).\n\n\u003e **NOTE:** Available since v1.130.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cloudfirewall.ControlPolicy(\"default\", {\n    direction: \"in\",\n    applicationName: \"ANY\",\n    description: name,\n    aclAction: \"accept\",\n    source: \"127.0.0.1/32\",\n    sourceType: \"net\",\n    destination: \"127.0.0.2/32\",\n    destinationType: \"net\",\n    proto: \"ANY\",\n});\nconst defaultControlPolicyOrder = new alicloud.cloudfirewall.ControlPolicyOrder(\"default\", {\n    aclUuid: _default.aclUuid,\n    direction: _default.direction,\n    order: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudfirewall.ControlPolicy(\"default\",\n    direction=\"in\",\n    application_name=\"ANY\",\n    description=name,\n    acl_action=\"accept\",\n    source=\"127.0.0.1/32\",\n    source_type=\"net\",\n    destination=\"127.0.0.2/32\",\n    destination_type=\"net\",\n    proto=\"ANY\")\ndefault_control_policy_order = alicloud.cloudfirewall.ControlPolicyOrder(\"default\",\n    acl_uuid=default.acl_uuid,\n    direction=default.direction,\n    order=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.CloudFirewall.ControlPolicy(\"default\", new()\n    {\n        Direction = \"in\",\n        ApplicationName = \"ANY\",\n        Description = name,\n        AclAction = \"accept\",\n        Source = \"127.0.0.1/32\",\n        SourceType = \"net\",\n        Destination = \"127.0.0.2/32\",\n        DestinationType = \"net\",\n        Proto = \"ANY\",\n    });\n\n    var defaultControlPolicyOrder = new AliCloud.CloudFirewall.ControlPolicyOrder(\"default\", new()\n    {\n        AclUuid = @default.AclUuid,\n        Direction = @default.Direction,\n        Order = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cloudfirewall.NewControlPolicy(ctx, \"default\", \u0026cloudfirewall.ControlPolicyArgs{\n\t\t\tDirection:       pulumi.String(\"in\"),\n\t\t\tApplicationName: pulumi.String(\"ANY\"),\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tAclAction:       pulumi.String(\"accept\"),\n\t\t\tSource:          pulumi.String(\"127.0.0.1/32\"),\n\t\t\tSourceType:      pulumi.String(\"net\"),\n\t\t\tDestination:     pulumi.String(\"127.0.0.2/32\"),\n\t\t\tDestinationType: pulumi.String(\"net\"),\n\t\t\tProto:           pulumi.String(\"ANY\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfirewall.NewControlPolicyOrder(ctx, \"default\", \u0026cloudfirewall.ControlPolicyOrderArgs{\n\t\t\tAclUuid:   _default.AclUuid,\n\t\t\tDirection: _default.Direction,\n\t\t\tOrder:     pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.ControlPolicy;\nimport com.pulumi.alicloud.cloudfirewall.ControlPolicyArgs;\nimport com.pulumi.alicloud.cloudfirewall.ControlPolicyOrder;\nimport com.pulumi.alicloud.cloudfirewall.ControlPolicyOrderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ControlPolicy(\"default\", ControlPolicyArgs.builder()\n            .direction(\"in\")\n            .applicationName(\"ANY\")\n            .description(name)\n            .aclAction(\"accept\")\n            .source(\"127.0.0.1/32\")\n            .sourceType(\"net\")\n            .destination(\"127.0.0.2/32\")\n            .destinationType(\"net\")\n            .proto(\"ANY\")\n            .build());\n\n        var defaultControlPolicyOrder = new ControlPolicyOrder(\"defaultControlPolicyOrder\", ControlPolicyOrderArgs.builder()\n            .aclUuid(default_.aclUuid())\n            .direction(default_.direction())\n            .order(1)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cloudfirewall:ControlPolicy\n    properties:\n      direction: in\n      applicationName: ANY\n      description: ${name}\n      aclAction: accept\n      source: 127.0.0.1/32\n      sourceType: net\n      destination: 127.0.0.2/32\n      destinationType: net\n      proto: ANY\n  defaultControlPolicyOrder:\n    type: alicloud:cloudfirewall:ControlPolicyOrder\n    name: default\n    properties:\n      aclUuid: ${default.aclUuid}\n      direction: ${default.direction}\n      order: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Control Policy Order can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudfirewall/controlPolicyOrder:ControlPolicyOrder example \u003cacl_uuid\u003e:\u003cdirection\u003e\n```\n\n","properties":{"aclUuid":{"type":"string","description":"The unique ID of the access control policy.\n"},"direction":{"type":"string","description":"The direction of the traffic to which the access control policy applies. Valid values: \u003cspan pulumi-lang-nodejs=\"`in`\" pulumi-lang-dotnet=\"`In`\" pulumi-lang-go=\"`in`\" pulumi-lang-python=\"`in`\" pulumi-lang-yaml=\"`in`\" pulumi-lang-java=\"`in`\"\u003e`in`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`out`\" pulumi-lang-dotnet=\"`Out`\" pulumi-lang-go=\"`out`\" pulumi-lang-python=\"`out`\" pulumi-lang-yaml=\"`out`\" pulumi-lang-java=\"`out`\"\u003e`out`\u003c/span\u003e.\n"},"order":{"type":"integer","description":"The priority of the access control policy. The priority value starts from 1. A small priority value indicates a high priority. **NOTE:** The value of `-1` indicates the lowest priority.\n\u003e **NOTE:** From version 1.227.1, \u003cspan pulumi-lang-nodejs=\"`order`\" pulumi-lang-dotnet=\"`Order`\" pulumi-lang-go=\"`order`\" pulumi-lang-python=\"`order`\" pulumi-lang-yaml=\"`order`\" pulumi-lang-java=\"`order`\"\u003e`order`\u003c/span\u003e must be set.\n"}},"required":["aclUuid","direction","order"],"inputProperties":{"aclUuid":{"type":"string","description":"The unique ID of the access control policy.\n","willReplaceOnChanges":true},"direction":{"type":"string","description":"The direction of the traffic to which the access control policy applies. Valid values: \u003cspan pulumi-lang-nodejs=\"`in`\" pulumi-lang-dotnet=\"`In`\" pulumi-lang-go=\"`in`\" pulumi-lang-python=\"`in`\" pulumi-lang-yaml=\"`in`\" pulumi-lang-java=\"`in`\"\u003e`in`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`out`\" pulumi-lang-dotnet=\"`Out`\" pulumi-lang-go=\"`out`\" pulumi-lang-python=\"`out`\" pulumi-lang-yaml=\"`out`\" pulumi-lang-java=\"`out`\"\u003e`out`\u003c/span\u003e.\n","willReplaceOnChanges":true},"order":{"type":"integer","description":"The priority of the access control policy. The priority value starts from 1. A small priority value indicates a high priority. **NOTE:** The value of `-1` indicates the lowest priority.\n\u003e **NOTE:** From version 1.227.1, \u003cspan pulumi-lang-nodejs=\"`order`\" pulumi-lang-dotnet=\"`Order`\" pulumi-lang-go=\"`order`\" pulumi-lang-python=\"`order`\" pulumi-lang-yaml=\"`order`\" pulumi-lang-java=\"`order`\"\u003e`order`\u003c/span\u003e must be set.\n"}},"requiredInputs":["aclUuid","direction","order"],"stateInputs":{"description":"Input properties used for looking up and filtering ControlPolicyOrder resources.\n","properties":{"aclUuid":{"type":"string","description":"The unique ID of the access control policy.\n","willReplaceOnChanges":true},"direction":{"type":"string","description":"The direction of the traffic to which the access control policy applies. Valid values: \u003cspan pulumi-lang-nodejs=\"`in`\" pulumi-lang-dotnet=\"`In`\" pulumi-lang-go=\"`in`\" pulumi-lang-python=\"`in`\" pulumi-lang-yaml=\"`in`\" pulumi-lang-java=\"`in`\"\u003e`in`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`out`\" pulumi-lang-dotnet=\"`Out`\" pulumi-lang-go=\"`out`\" pulumi-lang-python=\"`out`\" pulumi-lang-yaml=\"`out`\" pulumi-lang-java=\"`out`\"\u003e`out`\u003c/span\u003e.\n","willReplaceOnChanges":true},"order":{"type":"integer","description":"The priority of the access control policy. The priority value starts from 1. A small priority value indicates a high priority. **NOTE:** The value of `-1` indicates the lowest priority.\n\u003e **NOTE:** From version 1.227.1, \u003cspan pulumi-lang-nodejs=\"`order`\" pulumi-lang-dotnet=\"`Order`\" pulumi-lang-go=\"`order`\" pulumi-lang-python=\"`order`\" pulumi-lang-yaml=\"`order`\" pulumi-lang-java=\"`order`\"\u003e`order`\u003c/span\u003e must be set.\n"}},"type":"object"}},"alicloud:cloudfirewall/firewallVpcFirewall:FirewallVpcFirewall":{"description":"Provides a Cloud Firewall Vpc Firewall resource.\n\nFor information about Cloud Firewall Vpc Firewall and how to use it, see [What is Vpc Firewall](https://www.alibabacloud.com/help/en/cloud-firewall/developer-reference/api-cloudfw-2017-12-07-createvpcfirewallconfigure).\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst current = alicloud.getAccount({});\nconst _default = new alicloud.cloudfirewall.FirewallVpcFirewall(\"default\", {\n    vpcFirewallName: \"tf-example\",\n    memberUid: current.then(current =\u003e current.id),\n    localVpc: {\n        vpcId: \"vpc-bp1d065m6hzn1xbw8ibfd\",\n        regionNo: \"cn-hangzhou\",\n        localVpcCidrTableLists: [{\n            localRouteTableId: \"vtb-bp1lj0ddg846856chpzrv\",\n            localRouteEntryLists: [{\n                localNextHopInstanceId: \"ri-bp1uobww3aputjlwwkyrh\",\n                localDestinationCidr: \"10.1.0.0/16\",\n            }],\n        }],\n    },\n    peerVpc: {\n        vpcId: \"vpc-bp1gcmm64o3caox84v0nz\",\n        regionNo: \"cn-hangzhou\",\n        peerVpcCidrTableLists: [{\n            peerRouteTableId: \"vtb-bp1f516f2hh4sok1ig9b5\",\n            peerRouteEntryLists: [{\n                peerDestinationCidr: \"10.0.0.0/16\",\n                peerNextHopInstanceId: \"ri-bp1thhtgf6ydr2or52l3n\",\n            }],\n        }],\n    },\n    status: \"open\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ncurrent = alicloud.get_account()\ndefault = alicloud.cloudfirewall.FirewallVpcFirewall(\"default\",\n    vpc_firewall_name=\"tf-example\",\n    member_uid=current.id,\n    local_vpc={\n        \"vpc_id\": \"vpc-bp1d065m6hzn1xbw8ibfd\",\n        \"region_no\": \"cn-hangzhou\",\n        \"local_vpc_cidr_table_lists\": [{\n            \"local_route_table_id\": \"vtb-bp1lj0ddg846856chpzrv\",\n            \"local_route_entry_lists\": [{\n                \"local_next_hop_instance_id\": \"ri-bp1uobww3aputjlwwkyrh\",\n                \"local_destination_cidr\": \"10.1.0.0/16\",\n            }],\n        }],\n    },\n    peer_vpc={\n        \"vpc_id\": \"vpc-bp1gcmm64o3caox84v0nz\",\n        \"region_no\": \"cn-hangzhou\",\n        \"peer_vpc_cidr_table_lists\": [{\n            \"peer_route_table_id\": \"vtb-bp1f516f2hh4sok1ig9b5\",\n            \"peer_route_entry_lists\": [{\n                \"peer_destination_cidr\": \"10.0.0.0/16\",\n                \"peer_next_hop_instance_id\": \"ri-bp1thhtgf6ydr2or52l3n\",\n            }],\n        }],\n    },\n    status=\"open\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var current = AliCloud.GetAccount.Invoke();\n\n    var @default = new AliCloud.CloudFirewall.FirewallVpcFirewall(\"default\", new()\n    {\n        VpcFirewallName = \"tf-example\",\n        MemberUid = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n        LocalVpc = new AliCloud.CloudFirewall.Inputs.FirewallVpcFirewallLocalVpcArgs\n        {\n            VpcId = \"vpc-bp1d065m6hzn1xbw8ibfd\",\n            RegionNo = \"cn-hangzhou\",\n            LocalVpcCidrTableLists = new[]\n            {\n                new AliCloud.CloudFirewall.Inputs.FirewallVpcFirewallLocalVpcLocalVpcCidrTableListArgs\n                {\n                    LocalRouteTableId = \"vtb-bp1lj0ddg846856chpzrv\",\n                    LocalRouteEntryLists = new[]\n                    {\n                        new AliCloud.CloudFirewall.Inputs.FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListArgs\n                        {\n                            LocalNextHopInstanceId = \"ri-bp1uobww3aputjlwwkyrh\",\n                            LocalDestinationCidr = \"10.1.0.0/16\",\n                        },\n                    },\n                },\n            },\n        },\n        PeerVpc = new AliCloud.CloudFirewall.Inputs.FirewallVpcFirewallPeerVpcArgs\n        {\n            VpcId = \"vpc-bp1gcmm64o3caox84v0nz\",\n            RegionNo = \"cn-hangzhou\",\n            PeerVpcCidrTableLists = new[]\n            {\n                new AliCloud.CloudFirewall.Inputs.FirewallVpcFirewallPeerVpcPeerVpcCidrTableListArgs\n                {\n                    PeerRouteTableId = \"vtb-bp1f516f2hh4sok1ig9b5\",\n                    PeerRouteEntryLists = new[]\n                    {\n                        new AliCloud.CloudFirewall.Inputs.FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListArgs\n                        {\n                            PeerDestinationCidr = \"10.0.0.0/16\",\n                            PeerNextHopInstanceId = \"ri-bp1thhtgf6ydr2or52l3n\",\n                        },\n                    },\n                },\n            },\n        },\n        Status = \"open\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfirewall.NewFirewallVpcFirewall(ctx, \"default\", \u0026cloudfirewall.FirewallVpcFirewallArgs{\n\t\t\tVpcFirewallName: pulumi.String(\"tf-example\"),\n\t\t\tMemberUid:       pulumi.String(current.Id),\n\t\t\tLocalVpc: \u0026cloudfirewall.FirewallVpcFirewallLocalVpcArgs{\n\t\t\t\tVpcId:    pulumi.String(\"vpc-bp1d065m6hzn1xbw8ibfd\"),\n\t\t\t\tRegionNo: pulumi.String(\"cn-hangzhou\"),\n\t\t\t\tLocalVpcCidrTableLists: cloudfirewall.FirewallVpcFirewallLocalVpcLocalVpcCidrTableListArray{\n\t\t\t\t\t\u0026cloudfirewall.FirewallVpcFirewallLocalVpcLocalVpcCidrTableListArgs{\n\t\t\t\t\t\tLocalRouteTableId: pulumi.String(\"vtb-bp1lj0ddg846856chpzrv\"),\n\t\t\t\t\t\tLocalRouteEntryLists: cloudfirewall.FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListArray{\n\t\t\t\t\t\t\t\u0026cloudfirewall.FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListArgs{\n\t\t\t\t\t\t\t\tLocalNextHopInstanceId: pulumi.String(\"ri-bp1uobww3aputjlwwkyrh\"),\n\t\t\t\t\t\t\t\tLocalDestinationCidr:   pulumi.String(\"10.1.0.0/16\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPeerVpc: \u0026cloudfirewall.FirewallVpcFirewallPeerVpcArgs{\n\t\t\t\tVpcId:    pulumi.String(\"vpc-bp1gcmm64o3caox84v0nz\"),\n\t\t\t\tRegionNo: pulumi.String(\"cn-hangzhou\"),\n\t\t\t\tPeerVpcCidrTableLists: cloudfirewall.FirewallVpcFirewallPeerVpcPeerVpcCidrTableListArray{\n\t\t\t\t\t\u0026cloudfirewall.FirewallVpcFirewallPeerVpcPeerVpcCidrTableListArgs{\n\t\t\t\t\t\tPeerRouteTableId: pulumi.String(\"vtb-bp1f516f2hh4sok1ig9b5\"),\n\t\t\t\t\t\tPeerRouteEntryLists: cloudfirewall.FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListArray{\n\t\t\t\t\t\t\t\u0026cloudfirewall.FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListArgs{\n\t\t\t\t\t\t\t\tPeerDestinationCidr:   pulumi.String(\"10.0.0.0/16\"),\n\t\t\t\t\t\t\t\tPeerNextHopInstanceId: pulumi.String(\"ri-bp1thhtgf6ydr2or52l3n\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tStatus: pulumi.String(\"open\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.cloudfirewall.FirewallVpcFirewall;\nimport com.pulumi.alicloud.cloudfirewall.FirewallVpcFirewallArgs;\nimport com.pulumi.alicloud.cloudfirewall.inputs.FirewallVpcFirewallLocalVpcArgs;\nimport com.pulumi.alicloud.cloudfirewall.inputs.FirewallVpcFirewallPeerVpcArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var current = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var default_ = new FirewallVpcFirewall(\"default\", FirewallVpcFirewallArgs.builder()\n            .vpcFirewallName(\"tf-example\")\n            .memberUid(current.id())\n            .localVpc(FirewallVpcFirewallLocalVpcArgs.builder()\n                .vpcId(\"vpc-bp1d065m6hzn1xbw8ibfd\")\n                .regionNo(\"cn-hangzhou\")\n                .localVpcCidrTableLists(FirewallVpcFirewallLocalVpcLocalVpcCidrTableListArgs.builder()\n                    .localRouteTableId(\"vtb-bp1lj0ddg846856chpzrv\")\n                    .localRouteEntryLists(FirewallVpcFirewallLocalVpcLocalVpcCidrTableListLocalRouteEntryListArgs.builder()\n                        .localNextHopInstanceId(\"ri-bp1uobww3aputjlwwkyrh\")\n                        .localDestinationCidr(\"10.1.0.0/16\")\n                        .build())\n                    .build())\n                .build())\n            .peerVpc(FirewallVpcFirewallPeerVpcArgs.builder()\n                .vpcId(\"vpc-bp1gcmm64o3caox84v0nz\")\n                .regionNo(\"cn-hangzhou\")\n                .peerVpcCidrTableLists(FirewallVpcFirewallPeerVpcPeerVpcCidrTableListArgs.builder()\n                    .peerRouteTableId(\"vtb-bp1f516f2hh4sok1ig9b5\")\n                    .peerRouteEntryLists(FirewallVpcFirewallPeerVpcPeerVpcCidrTableListPeerRouteEntryListArgs.builder()\n                        .peerDestinationCidr(\"10.0.0.0/16\")\n                        .peerNextHopInstanceId(\"ri-bp1thhtgf6ydr2or52l3n\")\n                        .build())\n                    .build())\n                .build())\n            .status(\"open\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:cloudfirewall:FirewallVpcFirewall\n    properties:\n      vpcFirewallName: tf-example\n      memberUid: ${current.id}\n      localVpc:\n        vpcId: vpc-bp1d065m6hzn1xbw8ibfd\n        regionNo: cn-hangzhou\n        localVpcCidrTableLists:\n          - localRouteTableId: vtb-bp1lj0ddg846856chpzrv\n            localRouteEntryLists:\n              - localNextHopInstanceId: ri-bp1uobww3aputjlwwkyrh\n                localDestinationCidr: 10.1.0.0/16\n      peerVpc:\n        vpcId: vpc-bp1gcmm64o3caox84v0nz\n        regionNo: cn-hangzhou\n        peerVpcCidrTableLists:\n          - peerRouteTableId: vtb-bp1f516f2hh4sok1ig9b5\n            peerRouteEntryLists:\n              - peerDestinationCidr: 10.0.0.0/16\n                peerNextHopInstanceId: ri-bp1thhtgf6ydr2or52l3n\n      status: open\nvariables:\n  current:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Vpc Firewall can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_cloud_firewall_vpc_firewall.example \u003cid\u003e\n```\n\n","properties":{"bandwidth":{"type":"integer","description":"Bandwidth specifications for high-speed channels. Unit: Mbps.\n"},"connectType":{"type":"string","description":"The communication type of the VPC firewall.\n"},"lang":{"type":"string","description":"The language type of the requested and received messages. Valid values:\n"},"localVpc":{"$ref":"#/types/alicloud:cloudfirewall/FirewallVpcFirewallLocalVpc:FirewallVpcFirewallLocalVpc","description":"The details of the local VPC. See \u003cspan pulumi-lang-nodejs=\"`localVpc`\" pulumi-lang-dotnet=\"`LocalVpc`\" pulumi-lang-go=\"`localVpc`\" pulumi-lang-python=\"`local_vpc`\" pulumi-lang-yaml=\"`localVpc`\" pulumi-lang-java=\"`localVpc`\"\u003e`local_vpc`\u003c/span\u003e below.\n"},"memberUid":{"type":"string","description":"The UID of the Alibaba Cloud member account.\n"},"peerVpc":{"$ref":"#/types/alicloud:cloudfirewall/FirewallVpcFirewallPeerVpc:FirewallVpcFirewallPeerVpc","description":"The details of the peer VPC. See \u003cspan pulumi-lang-nodejs=\"`peerVpc`\" pulumi-lang-dotnet=\"`PeerVpc`\" pulumi-lang-go=\"`peerVpc`\" pulumi-lang-python=\"`peer_vpc`\" pulumi-lang-yaml=\"`peerVpc`\" pulumi-lang-java=\"`peerVpc`\"\u003e`peer_vpc`\u003c/span\u003e below.\n"},"regionStatus":{"type":"string","description":"The region is open.\n"},"status":{"type":"string","description":"The status of the resource. Valid values:\n"},"vpcFirewallId":{"type":"string","description":"The ID of the VPC firewall instance.\n"},"vpcFirewallName":{"type":"string","description":"The name of the VPC firewall instance.\n"}},"required":["bandwidth","connectType","localVpc","peerVpc","regionStatus","status","vpcFirewallId","vpcFirewallName"],"inputProperties":{"lang":{"type":"string","description":"The language type of the requested and received messages. Valid values:\n"},"localVpc":{"$ref":"#/types/alicloud:cloudfirewall/FirewallVpcFirewallLocalVpc:FirewallVpcFirewallLocalVpc","description":"The details of the local VPC. See \u003cspan pulumi-lang-nodejs=\"`localVpc`\" pulumi-lang-dotnet=\"`LocalVpc`\" pulumi-lang-go=\"`localVpc`\" pulumi-lang-python=\"`local_vpc`\" pulumi-lang-yaml=\"`localVpc`\" pulumi-lang-java=\"`localVpc`\"\u003e`local_vpc`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"memberUid":{"type":"string","description":"The UID of the Alibaba Cloud member account.\n","willReplaceOnChanges":true},"peerVpc":{"$ref":"#/types/alicloud:cloudfirewall/FirewallVpcFirewallPeerVpc:FirewallVpcFirewallPeerVpc","description":"The details of the peer VPC. See \u003cspan pulumi-lang-nodejs=\"`peerVpc`\" pulumi-lang-dotnet=\"`PeerVpc`\" pulumi-lang-go=\"`peerVpc`\" pulumi-lang-python=\"`peer_vpc`\" pulumi-lang-yaml=\"`peerVpc`\" pulumi-lang-java=\"`peerVpc`\"\u003e`peer_vpc`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values:\n"},"vpcFirewallName":{"type":"string","description":"The name of the VPC firewall instance.\n"}},"requiredInputs":["localVpc","peerVpc","status","vpcFirewallName"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallVpcFirewall resources.\n","properties":{"bandwidth":{"type":"integer","description":"Bandwidth specifications for high-speed channels. Unit: Mbps.\n"},"connectType":{"type":"string","description":"The communication type of the VPC firewall.\n"},"lang":{"type":"string","description":"The language type of the requested and received messages. Valid values:\n"},"localVpc":{"$ref":"#/types/alicloud:cloudfirewall/FirewallVpcFirewallLocalVpc:FirewallVpcFirewallLocalVpc","description":"The details of the local VPC. See \u003cspan pulumi-lang-nodejs=\"`localVpc`\" pulumi-lang-dotnet=\"`LocalVpc`\" pulumi-lang-go=\"`localVpc`\" pulumi-lang-python=\"`local_vpc`\" pulumi-lang-yaml=\"`localVpc`\" pulumi-lang-java=\"`localVpc`\"\u003e`local_vpc`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"memberUid":{"type":"string","description":"The UID of the Alibaba Cloud member account.\n","willReplaceOnChanges":true},"peerVpc":{"$ref":"#/types/alicloud:cloudfirewall/FirewallVpcFirewallPeerVpc:FirewallVpcFirewallPeerVpc","description":"The details of the peer VPC. See \u003cspan pulumi-lang-nodejs=\"`peerVpc`\" pulumi-lang-dotnet=\"`PeerVpc`\" pulumi-lang-go=\"`peerVpc`\" pulumi-lang-python=\"`peer_vpc`\" pulumi-lang-yaml=\"`peerVpc`\" pulumi-lang-java=\"`peerVpc`\"\u003e`peer_vpc`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"regionStatus":{"type":"string","description":"The region is open.\n"},"status":{"type":"string","description":"The status of the resource. Valid values:\n"},"vpcFirewallId":{"type":"string","description":"The ID of the VPC firewall instance.\n"},"vpcFirewallName":{"type":"string","description":"The name of the VPC firewall instance.\n"}},"type":"object"}},"alicloud:cloudfirewall/firewallVpcFirewallCen:FirewallVpcFirewallCen":{"description":"Provides a Cloud Firewall Vpc Firewall Cen resource.\n\nFor information about Cloud Firewall Vpc Firewall Cen and how to use it, see [What is Vpc Firewall Cen](https://www.alibabacloud.com/help/en/cloud-firewall/latest/createvpcfirewallcenconfigure).\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// These resource primary keys should be replaced with your actual values.\nconst _default = new alicloud.cloudfirewall.FirewallVpcFirewallCen(\"default\", {\n    cenId: \"cen-xxx\",\n    localVpc: {\n        networkInstanceId: \"vpc-xxx\",\n    },\n    status: \"open\",\n    memberUid: \"14151*****827022\",\n    vpcRegion: \"cn-hangzhou\",\n    vpcFirewallName: \"tf-vpc-firewall-name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# These resource primary keys should be replaced with your actual values.\ndefault = alicloud.cloudfirewall.FirewallVpcFirewallCen(\"default\",\n    cen_id=\"cen-xxx\",\n    local_vpc={\n        \"network_instance_id\": \"vpc-xxx\",\n    },\n    status=\"open\",\n    member_uid=\"14151*****827022\",\n    vpc_region=\"cn-hangzhou\",\n    vpc_firewall_name=\"tf-vpc-firewall-name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // These resource primary keys should be replaced with your actual values.\n    var @default = new AliCloud.CloudFirewall.FirewallVpcFirewallCen(\"default\", new()\n    {\n        CenId = \"cen-xxx\",\n        LocalVpc = new AliCloud.CloudFirewall.Inputs.FirewallVpcFirewallCenLocalVpcArgs\n        {\n            NetworkInstanceId = \"vpc-xxx\",\n        },\n        Status = \"open\",\n        MemberUid = \"14151*****827022\",\n        VpcRegion = \"cn-hangzhou\",\n        VpcFirewallName = \"tf-vpc-firewall-name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// These resource primary keys should be replaced with your actual values.\n\t\t_, err := cloudfirewall.NewFirewallVpcFirewallCen(ctx, \"default\", \u0026cloudfirewall.FirewallVpcFirewallCenArgs{\n\t\t\tCenId: pulumi.String(\"cen-xxx\"),\n\t\t\tLocalVpc: \u0026cloudfirewall.FirewallVpcFirewallCenLocalVpcArgs{\n\t\t\t\tNetworkInstanceId: pulumi.String(\"vpc-xxx\"),\n\t\t\t},\n\t\t\tStatus:          pulumi.String(\"open\"),\n\t\t\tMemberUid:       pulumi.String(\"14151*****827022\"),\n\t\t\tVpcRegion:       pulumi.String(\"cn-hangzhou\"),\n\t\t\tVpcFirewallName: pulumi.String(\"tf-vpc-firewall-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.FirewallVpcFirewallCen;\nimport com.pulumi.alicloud.cloudfirewall.FirewallVpcFirewallCenArgs;\nimport com.pulumi.alicloud.cloudfirewall.inputs.FirewallVpcFirewallCenLocalVpcArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // These resource primary keys should be replaced with your actual values.\n        var default_ = new FirewallVpcFirewallCen(\"default\", FirewallVpcFirewallCenArgs.builder()\n            .cenId(\"cen-xxx\")\n            .localVpc(FirewallVpcFirewallCenLocalVpcArgs.builder()\n                .networkInstanceId(\"vpc-xxx\")\n                .build())\n            .status(\"open\")\n            .memberUid(\"14151*****827022\")\n            .vpcRegion(\"cn-hangzhou\")\n            .vpcFirewallName(\"tf-vpc-firewall-name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # These resource primary keys should be replaced with your actual values.\n  default:\n    type: alicloud:cloudfirewall:FirewallVpcFirewallCen\n    properties:\n      cenId: cen-xxx\n      localVpc:\n        networkInstanceId: vpc-xxx\n      status: open\n      memberUid: 14151*****827022\n      vpcRegion: cn-hangzhou\n      vpcFirewallName: tf-vpc-firewall-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Vpc Firewall Cen can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_cloud_firewall_vpc_firewall_cen.example \u003cid\u003e\n```\n\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"connectType":{"type":"string","description":"Intercommunication type, value: expressconnect: Express Channel cen: Cloud Enterprise Network\n"},"lang":{"type":"string","description":"The language type of the requested and received messages. Valid values:\n"},"localVpc":{"$ref":"#/types/alicloud:cloudfirewall/FirewallVpcFirewallCenLocalVpc:FirewallVpcFirewallCenLocalVpc","description":"The details of the VPC. See \u003cspan pulumi-lang-nodejs=\"`localVpc`\" pulumi-lang-dotnet=\"`LocalVpc`\" pulumi-lang-go=\"`localVpc`\" pulumi-lang-python=\"`local_vpc`\" pulumi-lang-yaml=\"`localVpc`\" pulumi-lang-java=\"`localVpc`\"\u003e`local_vpc`\u003c/span\u003e below.\n"},"memberUid":{"type":"string","description":"The UID of the member account (other Alibaba Cloud account) of the current Alibaba cloud account.\n"},"status":{"type":"string","description":"Firewall switch status.\n"},"vpcFirewallId":{"type":"string","description":"VPC firewall ID\n"},"vpcFirewallName":{"type":"string","description":"The name of the VPC firewall instance.\n"},"vpcRegion":{"type":"string","description":"The ID of the region to which the VPC is created.\n"}},"required":["cenId","connectType","localVpc","status","vpcFirewallId","vpcFirewallName","vpcRegion"],"inputProperties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"lang":{"type":"string","description":"The language type of the requested and received messages. Valid values:\n","willReplaceOnChanges":true},"localVpc":{"$ref":"#/types/alicloud:cloudfirewall/FirewallVpcFirewallCenLocalVpc:FirewallVpcFirewallCenLocalVpc","description":"The details of the VPC. See \u003cspan pulumi-lang-nodejs=\"`localVpc`\" pulumi-lang-dotnet=\"`LocalVpc`\" pulumi-lang-go=\"`localVpc`\" pulumi-lang-python=\"`local_vpc`\" pulumi-lang-yaml=\"`localVpc`\" pulumi-lang-java=\"`localVpc`\"\u003e`local_vpc`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"memberUid":{"type":"string","description":"The UID of the member account (other Alibaba Cloud account) of the current Alibaba cloud account.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Firewall switch status.\n"},"vpcFirewallName":{"type":"string","description":"The name of the VPC firewall instance.\n"},"vpcRegion":{"type":"string","description":"The ID of the region to which the VPC is created.\n","willReplaceOnChanges":true}},"requiredInputs":["cenId","localVpc","status","vpcFirewallName","vpcRegion"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallVpcFirewallCen resources.\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"connectType":{"type":"string","description":"Intercommunication type, value: expressconnect: Express Channel cen: Cloud Enterprise Network\n"},"lang":{"type":"string","description":"The language type of the requested and received messages. Valid values:\n","willReplaceOnChanges":true},"localVpc":{"$ref":"#/types/alicloud:cloudfirewall/FirewallVpcFirewallCenLocalVpc:FirewallVpcFirewallCenLocalVpc","description":"The details of the VPC. See \u003cspan pulumi-lang-nodejs=\"`localVpc`\" pulumi-lang-dotnet=\"`LocalVpc`\" pulumi-lang-go=\"`localVpc`\" pulumi-lang-python=\"`local_vpc`\" pulumi-lang-yaml=\"`localVpc`\" pulumi-lang-java=\"`localVpc`\"\u003e`local_vpc`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"memberUid":{"type":"string","description":"The UID of the member account (other Alibaba Cloud account) of the current Alibaba cloud account.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Firewall switch status.\n"},"vpcFirewallId":{"type":"string","description":"VPC firewall ID\n"},"vpcFirewallName":{"type":"string","description":"The name of the VPC firewall instance.\n"},"vpcRegion":{"type":"string","description":"The ID of the region to which the VPC is created.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudfirewall/firewallVpcFirewallControlPolicy:FirewallVpcFirewallControlPolicy":{"description":"Provides a Cloud Firewall Vpc Firewall Control Policy resource.\n\nVPC Control Policy.\n\nFor information about Cloud Firewall Vpc Firewall Control Policy and how to use it, see [What is Vpc Firewall Control Policy](https://www.alibabacloud.com/help/en/cloud-firewall/latest/createvpcfirewallcontrolpolicy).\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getAccount({});\nconst defaultInstance = new alicloud.cen.Instance(\"default\", {\n    cenInstanceName: name,\n    description: \"example_value\",\n    tags: {\n        Created: \"TF\",\n        For: \"acceptance test\",\n    },\n});\nconst defaultFirewallVpcFirewallControlPolicy = new alicloud.cloudfirewall.FirewallVpcFirewallControlPolicy(\"default\", {\n    order: 1,\n    destination: \"127.0.0.2/32\",\n    applicationName: \"ANY\",\n    description: \"example_value\",\n    sourceType: \"net\",\n    destPort: \"80/88\",\n    aclAction: \"accept\",\n    lang: \"zh\",\n    destinationType: \"net\",\n    source: \"127.0.0.1/32\",\n    destPortType: \"port\",\n    proto: \"TCP\",\n    release: \"true\",\n    memberUid: _default.then(_default =\u003e _default.id),\n    vpcFirewallId: defaultInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_account()\ndefault_instance = alicloud.cen.Instance(\"default\",\n    cen_instance_name=name,\n    description=\"example_value\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"acceptance test\",\n    })\ndefault_firewall_vpc_firewall_control_policy = alicloud.cloudfirewall.FirewallVpcFirewallControlPolicy(\"default\",\n    order=1,\n    destination=\"127.0.0.2/32\",\n    application_name=\"ANY\",\n    description=\"example_value\",\n    source_type=\"net\",\n    dest_port=\"80/88\",\n    acl_action=\"accept\",\n    lang=\"zh\",\n    destination_type=\"net\",\n    source=\"127.0.0.1/32\",\n    dest_port_type=\"port\",\n    proto=\"TCP\",\n    release=\"true\",\n    member_uid=default.id,\n    vpc_firewall_id=default_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultInstance = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        CenInstanceName = name,\n        Description = \"example_value\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"acceptance test\" },\n        },\n    });\n\n    var defaultFirewallVpcFirewallControlPolicy = new AliCloud.CloudFirewall.FirewallVpcFirewallControlPolicy(\"default\", new()\n    {\n        Order = 1,\n        Destination = \"127.0.0.2/32\",\n        ApplicationName = \"ANY\",\n        Description = \"example_value\",\n        SourceType = \"net\",\n        DestPort = \"80/88\",\n        AclAction = \"accept\",\n        Lang = \"zh\",\n        DestinationType = \"net\",\n        Source = \"127.0.0.1/32\",\n        DestPortType = \"port\",\n        Proto = \"TCP\",\n        Release = \"true\",\n        MemberUid = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        VpcFirewallId = defaultInstance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tDescription:     pulumi.String(\"example_value\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"acceptance test\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfirewall.NewFirewallVpcFirewallControlPolicy(ctx, \"default\", \u0026cloudfirewall.FirewallVpcFirewallControlPolicyArgs{\n\t\t\tOrder:           pulumi.Int(1),\n\t\t\tDestination:     pulumi.String(\"127.0.0.2/32\"),\n\t\t\tApplicationName: pulumi.String(\"ANY\"),\n\t\t\tDescription:     pulumi.String(\"example_value\"),\n\t\t\tSourceType:      pulumi.String(\"net\"),\n\t\t\tDestPort:        pulumi.String(\"80/88\"),\n\t\t\tAclAction:       pulumi.String(\"accept\"),\n\t\t\tLang:            pulumi.String(\"zh\"),\n\t\t\tDestinationType: pulumi.String(\"net\"),\n\t\t\tSource:          pulumi.String(\"127.0.0.1/32\"),\n\t\t\tDestPortType:    pulumi.String(\"port\"),\n\t\t\tProto:           pulumi.String(\"TCP\"),\n\t\t\tRelease:         pulumi.String(\"true\"),\n\t\t\tMemberUid:       pulumi.String(_default.Id),\n\t\t\tVpcFirewallId:   defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cloudfirewall.FirewallVpcFirewallControlPolicy;\nimport com.pulumi.alicloud.cloudfirewall.FirewallVpcFirewallControlPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .description(\"example_value\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"acceptance test\")\n            ))\n            .build());\n\n        var defaultFirewallVpcFirewallControlPolicy = new FirewallVpcFirewallControlPolicy(\"defaultFirewallVpcFirewallControlPolicy\", FirewallVpcFirewallControlPolicyArgs.builder()\n            .order(1)\n            .destination(\"127.0.0.2/32\")\n            .applicationName(\"ANY\")\n            .description(\"example_value\")\n            .sourceType(\"net\")\n            .destPort(\"80/88\")\n            .aclAction(\"accept\")\n            .lang(\"zh\")\n            .destinationType(\"net\")\n            .source(\"127.0.0.1/32\")\n            .destPortType(\"port\")\n            .proto(\"TCP\")\n            .release(\"true\")\n            .memberUid(default_.id())\n            .vpcFirewallId(defaultInstance.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInstance:\n    type: alicloud:cen:Instance\n    name: default\n    properties:\n      cenInstanceName: ${name}\n      description: example_value\n      tags:\n        Created: TF\n        For: acceptance test\n  defaultFirewallVpcFirewallControlPolicy:\n    type: alicloud:cloudfirewall:FirewallVpcFirewallControlPolicy\n    name: default\n    properties:\n      order: '1'\n      destination: 127.0.0.2/32\n      applicationName: ANY\n      description: example_value\n      sourceType: net\n      destPort: 80/88\n      aclAction: accept\n      lang: zh\n      destinationType: net\n      source: 127.0.0.1/32\n      destPortType: port\n      proto: TCP\n      release: true\n      memberUid: ${default.id}\n      vpcFirewallId: ${defaultInstance.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Vpc Firewall Control Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudfirewall/firewallVpcFirewallControlPolicy:FirewallVpcFirewallControlPolicy example \u003cvpc_firewall_id\u003e:\u003cacl_uuid\u003e\n```\n\n","properties":{"aclAction":{"type":"string","description":"The action that Cloud Firewall performs on the traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`log`\" pulumi-lang-dotnet=\"`Log`\" pulumi-lang-go=\"`log`\" pulumi-lang-python=\"`log`\" pulumi-lang-yaml=\"`log`\" pulumi-lang-java=\"`log`\"\u003e`log`\u003c/span\u003e.\n"},"aclUuid":{"type":"string","description":"Access control over VPC firewalls strategy unique identifier.\n"},"applicationId":{"type":"string","description":"Policy specifies the application ID.\n"},"applicationName":{"type":"string","description":"The type of the applications that the access control policy supports. Valid values: `FTP`, `HTTP`, `HTTPS`, `MySQL`, `SMTP`, `SMTPS`, `RDP`, `VNC`, `SSH`, `Redis`, `MQTT`, `MongoDB`, `Memcache`, `SSL`, `ANY`.\n"},"applicationNameLists":{"type":"array","items":{"type":"string"},"description":"The list of application types that the access control policy supports. \n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `TCP`, you can set \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e to any valid value. If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `UDP`, `ICMP`, or `ANY`, you can only set \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e to `[\"ANY\"]`. From version 1.267.0, You must specify at least one of the \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e. If you specify both \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e, only the \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e takes effect.\n"},"createTime":{"type":"integer","description":"(Available since v1.267.0) The time when the policy was created.\n"},"description":{"type":"string","description":"Access control over VPC firewalls description of the strategy information.\n"},"destPort":{"type":"string","description":"The destination port in the access control policy. **Note:** If \u003cspan pulumi-lang-nodejs=\"`destPortType`\" pulumi-lang-dotnet=\"`DestPortType`\" pulumi-lang-go=\"`destPortType`\" pulumi-lang-python=\"`dest_port_type`\" pulumi-lang-yaml=\"`destPortType`\" pulumi-lang-java=\"`destPortType`\"\u003e`dest_port_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, you must specify this parameter.\n"},"destPortGroup":{"type":"string","description":"Access control policy in the access traffic of the destination port address book name. **Note:** If \u003cspan pulumi-lang-nodejs=\"`destPortType`\" pulumi-lang-dotnet=\"`DestPortType`\" pulumi-lang-go=\"`destPortType`\" pulumi-lang-python=\"`dest_port_type`\" pulumi-lang-yaml=\"`destPortType`\" pulumi-lang-java=\"`destPortType`\"\u003e`dest_port_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, you must specify this parameter.\n"},"destPortGroupPorts":{"type":"array","items":{"type":"string"},"description":"Port Address Book port list.\n"},"destPortType":{"type":"string","description":"The type of the destination port in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e.\n"},"destination":{"type":"string","description":"The destination address in the access control policy. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`destinationType`\" pulumi-lang-dotnet=\"`DestinationType`\" pulumi-lang-go=\"`destinationType`\" pulumi-lang-python=\"`destination_type`\" pulumi-lang-yaml=\"`destinationType`\" pulumi-lang-java=\"`destinationType`\"\u003e`destination_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`net`\" pulumi-lang-dotnet=\"`Net`\" pulumi-lang-go=\"`net`\" pulumi-lang-python=\"`net`\" pulumi-lang-yaml=\"`net`\" pulumi-lang-java=\"`net`\"\u003e`net`\u003c/span\u003e, the value of \u003cspan pulumi-lang-nodejs=\"`destination`\" pulumi-lang-dotnet=\"`Destination`\" pulumi-lang-go=\"`destination`\" pulumi-lang-python=\"`destination`\" pulumi-lang-yaml=\"`destination`\" pulumi-lang-java=\"`destination`\"\u003e`destination`\u003c/span\u003e must be a CIDR block.\n- If \u003cspan pulumi-lang-nodejs=\"`destinationType`\" pulumi-lang-dotnet=\"`DestinationType`\" pulumi-lang-go=\"`destinationType`\" pulumi-lang-python=\"`destination_type`\" pulumi-lang-yaml=\"`destinationType`\" pulumi-lang-java=\"`destinationType`\"\u003e`destination_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, the value of \u003cspan pulumi-lang-nodejs=\"`destination`\" pulumi-lang-dotnet=\"`Destination`\" pulumi-lang-go=\"`destination`\" pulumi-lang-python=\"`destination`\" pulumi-lang-yaml=\"`destination`\" pulumi-lang-java=\"`destination`\"\u003e`destination`\u003c/span\u003e must be an address book.\n- If \u003cspan pulumi-lang-nodejs=\"`destinationType`\" pulumi-lang-dotnet=\"`DestinationType`\" pulumi-lang-go=\"`destinationType`\" pulumi-lang-python=\"`destination_type`\" pulumi-lang-yaml=\"`destinationType`\" pulumi-lang-java=\"`destinationType`\"\u003e`destination_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, the value of \u003cspan pulumi-lang-nodejs=\"`destination`\" pulumi-lang-dotnet=\"`Destination`\" pulumi-lang-go=\"`destination`\" pulumi-lang-python=\"`destination`\" pulumi-lang-yaml=\"`destination`\" pulumi-lang-java=\"`destination`\"\u003e`destination`\u003c/span\u003e must be a domain name.\n"},"destinationGroupCidrs":{"type":"array","items":{"type":"string"},"description":"Destination address book defined in the address list.\n"},"destinationGroupType":{"type":"string","description":"The destination address book type in the access control policy.\n"},"destinationType":{"type":"string","description":"The type of the destination address in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`net`\" pulumi-lang-dotnet=\"`Net`\" pulumi-lang-go=\"`net`\" pulumi-lang-python=\"`net`\" pulumi-lang-yaml=\"`net`\" pulumi-lang-java=\"`net`\"\u003e`net`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e.\n"},"domainResolveType":{"type":"string","description":"The domain name resolution method for the access control policy. Valid values: `FQDN`, `DNS`, `FQDN_AND_DNS`.\n"},"endTime":{"type":"integer","description":"The end time of the policy validity period.\n"},"hitTimes":{"type":"integer","description":"Control strategy of hits per second.\n"},"lang":{"type":"string","description":"The language of the content within the request and response. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"memberUid":{"type":"string","description":"The UID of the member account of the current Alibaba cloud account.\n"},"order":{"type":"integer","description":"The priority of the access control policy. The priority value starts from 1. A smaller priority value indicates a higher priority.\n"},"proto":{"type":"string","description":"The type of the protocol in the access control policy. Valid values: `ANY`, `TCP`, `UDP`, `ICMP`.\n"},"release":{"type":"string","description":"The enabled status of the access control policy. The policy is enabled by default after it is created.. Valid values:\n"},"repeatDays":{"type":"array","items":{"type":"integer"},"description":"The days of the week or month on which the policy is recurrently active. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Weekly`. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Monthly`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`31`\" pulumi-lang-dotnet=\"`31`\" pulumi-lang-go=\"`31`\" pulumi-lang-python=\"`31`\" pulumi-lang-yaml=\"`31`\" pulumi-lang-java=\"`31`\"\u003e`31`\u003c/span\u003e.\n"},"repeatEndTime":{"type":"string","description":"The recurring end time of the policy validity period.\n"},"repeatStartTime":{"type":"string","description":"The recurring start time of the policy validity period.\n"},"repeatType":{"type":"string","description":"The recurrence type for the policy validity period. Default value: `Permanent`. Valid values: `Permanent`, `None`, `Daily`, `Weekly`, `Monthly`.\n"},"source":{"type":"string","description":"Access control over VPC firewalls strategy in the source address.\n"},"sourceGroupCidrs":{"type":"array","items":{"type":"string"},"description":"SOURCE address of the address list.\n"},"sourceGroupType":{"type":"string","description":"The source address type in the access control policy.\n"},"sourceType":{"type":"string","description":"The type of the source address in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`net`\" pulumi-lang-dotnet=\"`Net`\" pulumi-lang-go=\"`net`\" pulumi-lang-python=\"`net`\" pulumi-lang-yaml=\"`net`\" pulumi-lang-java=\"`net`\"\u003e`net`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e.\n"},"startTime":{"type":"integer","description":"The start time of the policy validity period.\n"},"vpcFirewallId":{"type":"string","description":"The ID of the VPC firewall instance. Valid values:\n- When the VPC firewall protects traffic between two VPCs connected through the cloud enterprise network, the policy group ID uses the cloud enterprise network instance ID.\n- When the VPC firewall protects traffic between two VPCs connected through the express connection, the policy group ID uses the ID of the VPC firewall instance.\n"}},"required":["aclAction","aclUuid","applicationId","createTime","description","destPort","destPortGroupPorts","destPortType","destination","destinationGroupCidrs","destinationGroupType","destinationType","domainResolveType","hitTimes","memberUid","order","proto","release","repeatType","source","sourceGroupCidrs","sourceGroupType","sourceType","vpcFirewallId"],"inputProperties":{"aclAction":{"type":"string","description":"The action that Cloud Firewall performs on the traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`log`\" pulumi-lang-dotnet=\"`Log`\" pulumi-lang-go=\"`log`\" pulumi-lang-python=\"`log`\" pulumi-lang-yaml=\"`log`\" pulumi-lang-java=\"`log`\"\u003e`log`\u003c/span\u003e.\n"},"applicationName":{"type":"string","description":"The type of the applications that the access control policy supports. Valid values: `FTP`, `HTTP`, `HTTPS`, `MySQL`, `SMTP`, `SMTPS`, `RDP`, `VNC`, `SSH`, `Redis`, `MQTT`, `MongoDB`, `Memcache`, `SSL`, `ANY`.\n"},"applicationNameLists":{"type":"array","items":{"type":"string"},"description":"The list of application types that the access control policy supports. \n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `TCP`, you can set \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e to any valid value. If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `UDP`, `ICMP`, or `ANY`, you can only set \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e to `[\"ANY\"]`. From version 1.267.0, You must specify at least one of the \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e. If you specify both \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e, only the \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e takes effect.\n"},"description":{"type":"string","description":"Access control over VPC firewalls description of the strategy information.\n"},"destPort":{"type":"string","description":"The destination port in the access control policy. **Note:** If \u003cspan pulumi-lang-nodejs=\"`destPortType`\" pulumi-lang-dotnet=\"`DestPortType`\" pulumi-lang-go=\"`destPortType`\" pulumi-lang-python=\"`dest_port_type`\" pulumi-lang-yaml=\"`destPortType`\" pulumi-lang-java=\"`destPortType`\"\u003e`dest_port_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, you must specify this parameter.\n"},"destPortGroup":{"type":"string","description":"Access control policy in the access traffic of the destination port address book name. **Note:** If \u003cspan pulumi-lang-nodejs=\"`destPortType`\" pulumi-lang-dotnet=\"`DestPortType`\" pulumi-lang-go=\"`destPortType`\" pulumi-lang-python=\"`dest_port_type`\" pulumi-lang-yaml=\"`destPortType`\" pulumi-lang-java=\"`destPortType`\"\u003e`dest_port_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, you must specify this parameter.\n"},"destPortType":{"type":"string","description":"The type of the destination port in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e.\n"},"destination":{"type":"string","description":"The destination address in the access control policy. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`destinationType`\" pulumi-lang-dotnet=\"`DestinationType`\" pulumi-lang-go=\"`destinationType`\" pulumi-lang-python=\"`destination_type`\" pulumi-lang-yaml=\"`destinationType`\" pulumi-lang-java=\"`destinationType`\"\u003e`destination_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`net`\" pulumi-lang-dotnet=\"`Net`\" pulumi-lang-go=\"`net`\" pulumi-lang-python=\"`net`\" pulumi-lang-yaml=\"`net`\" pulumi-lang-java=\"`net`\"\u003e`net`\u003c/span\u003e, the value of \u003cspan pulumi-lang-nodejs=\"`destination`\" pulumi-lang-dotnet=\"`Destination`\" pulumi-lang-go=\"`destination`\" pulumi-lang-python=\"`destination`\" pulumi-lang-yaml=\"`destination`\" pulumi-lang-java=\"`destination`\"\u003e`destination`\u003c/span\u003e must be a CIDR block.\n- If \u003cspan pulumi-lang-nodejs=\"`destinationType`\" pulumi-lang-dotnet=\"`DestinationType`\" pulumi-lang-go=\"`destinationType`\" pulumi-lang-python=\"`destination_type`\" pulumi-lang-yaml=\"`destinationType`\" pulumi-lang-java=\"`destinationType`\"\u003e`destination_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, the value of \u003cspan pulumi-lang-nodejs=\"`destination`\" pulumi-lang-dotnet=\"`Destination`\" pulumi-lang-go=\"`destination`\" pulumi-lang-python=\"`destination`\" pulumi-lang-yaml=\"`destination`\" pulumi-lang-java=\"`destination`\"\u003e`destination`\u003c/span\u003e must be an address book.\n- If \u003cspan pulumi-lang-nodejs=\"`destinationType`\" pulumi-lang-dotnet=\"`DestinationType`\" pulumi-lang-go=\"`destinationType`\" pulumi-lang-python=\"`destination_type`\" pulumi-lang-yaml=\"`destinationType`\" pulumi-lang-java=\"`destinationType`\"\u003e`destination_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, the value of \u003cspan pulumi-lang-nodejs=\"`destination`\" pulumi-lang-dotnet=\"`Destination`\" pulumi-lang-go=\"`destination`\" pulumi-lang-python=\"`destination`\" pulumi-lang-yaml=\"`destination`\" pulumi-lang-java=\"`destination`\"\u003e`destination`\u003c/span\u003e must be a domain name.\n"},"destinationType":{"type":"string","description":"The type of the destination address in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`net`\" pulumi-lang-dotnet=\"`Net`\" pulumi-lang-go=\"`net`\" pulumi-lang-python=\"`net`\" pulumi-lang-yaml=\"`net`\" pulumi-lang-java=\"`net`\"\u003e`net`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e.\n"},"domainResolveType":{"type":"string","description":"The domain name resolution method for the access control policy. Valid values: `FQDN`, `DNS`, `FQDN_AND_DNS`.\n"},"endTime":{"type":"integer","description":"The end time of the policy validity period.\n"},"lang":{"type":"string","description":"The language of the content within the request and response. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"memberUid":{"type":"string","description":"The UID of the member account of the current Alibaba cloud account.\n","willReplaceOnChanges":true},"order":{"type":"integer","description":"The priority of the access control policy. The priority value starts from 1. A smaller priority value indicates a higher priority.\n","willReplaceOnChanges":true},"proto":{"type":"string","description":"The type of the protocol in the access control policy. Valid values: `ANY`, `TCP`, `UDP`, `ICMP`.\n"},"release":{"type":"string","description":"The enabled status of the access control policy. The policy is enabled by default after it is created.. Valid values:\n"},"repeatDays":{"type":"array","items":{"type":"integer"},"description":"The days of the week or month on which the policy is recurrently active. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Weekly`. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Monthly`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`31`\" pulumi-lang-dotnet=\"`31`\" pulumi-lang-go=\"`31`\" pulumi-lang-python=\"`31`\" pulumi-lang-yaml=\"`31`\" pulumi-lang-java=\"`31`\"\u003e`31`\u003c/span\u003e.\n"},"repeatEndTime":{"type":"string","description":"The recurring end time of the policy validity period.\n"},"repeatStartTime":{"type":"string","description":"The recurring start time of the policy validity period.\n"},"repeatType":{"type":"string","description":"The recurrence type for the policy validity period. Default value: `Permanent`. Valid values: `Permanent`, `None`, `Daily`, `Weekly`, `Monthly`.\n"},"source":{"type":"string","description":"Access control over VPC firewalls strategy in the source address.\n"},"sourceType":{"type":"string","description":"The type of the source address in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`net`\" pulumi-lang-dotnet=\"`Net`\" pulumi-lang-go=\"`net`\" pulumi-lang-python=\"`net`\" pulumi-lang-yaml=\"`net`\" pulumi-lang-java=\"`net`\"\u003e`net`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e.\n"},"startTime":{"type":"integer","description":"The start time of the policy validity period.\n"},"vpcFirewallId":{"type":"string","description":"The ID of the VPC firewall instance. Valid values:\n- When the VPC firewall protects traffic between two VPCs connected through the cloud enterprise network, the policy group ID uses the cloud enterprise network instance ID.\n- When the VPC firewall protects traffic between two VPCs connected through the express connection, the policy group ID uses the ID of the VPC firewall instance.\n","willReplaceOnChanges":true}},"requiredInputs":["aclAction","description","destination","destinationType","order","proto","source","sourceType","vpcFirewallId"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallVpcFirewallControlPolicy resources.\n","properties":{"aclAction":{"type":"string","description":"The action that Cloud Firewall performs on the traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`log`\" pulumi-lang-dotnet=\"`Log`\" pulumi-lang-go=\"`log`\" pulumi-lang-python=\"`log`\" pulumi-lang-yaml=\"`log`\" pulumi-lang-java=\"`log`\"\u003e`log`\u003c/span\u003e.\n"},"aclUuid":{"type":"string","description":"Access control over VPC firewalls strategy unique identifier.\n"},"applicationId":{"type":"string","description":"Policy specifies the application ID.\n"},"applicationName":{"type":"string","description":"The type of the applications that the access control policy supports. Valid values: `FTP`, `HTTP`, `HTTPS`, `MySQL`, `SMTP`, `SMTPS`, `RDP`, `VNC`, `SSH`, `Redis`, `MQTT`, `MongoDB`, `Memcache`, `SSL`, `ANY`.\n"},"applicationNameLists":{"type":"array","items":{"type":"string"},"description":"The list of application types that the access control policy supports. \n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `TCP`, you can set \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e to any valid value. If \u003cspan pulumi-lang-nodejs=\"`proto`\" pulumi-lang-dotnet=\"`Proto`\" pulumi-lang-go=\"`proto`\" pulumi-lang-python=\"`proto`\" pulumi-lang-yaml=\"`proto`\" pulumi-lang-java=\"`proto`\"\u003e`proto`\u003c/span\u003e is set to `UDP`, `ICMP`, or `ANY`, you can only set \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e to `[\"ANY\"]`. From version 1.267.0, You must specify at least one of the \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e. If you specify both \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`applicationName`\" pulumi-lang-dotnet=\"`ApplicationName`\" pulumi-lang-go=\"`applicationName`\" pulumi-lang-python=\"`application_name`\" pulumi-lang-yaml=\"`applicationName`\" pulumi-lang-java=\"`applicationName`\"\u003e`application_name`\u003c/span\u003e, only the \u003cspan pulumi-lang-nodejs=\"`applicationNameList`\" pulumi-lang-dotnet=\"`ApplicationNameList`\" pulumi-lang-go=\"`applicationNameList`\" pulumi-lang-python=\"`application_name_list`\" pulumi-lang-yaml=\"`applicationNameList`\" pulumi-lang-java=\"`applicationNameList`\"\u003e`application_name_list`\u003c/span\u003e takes effect.\n"},"createTime":{"type":"integer","description":"(Available since v1.267.0) The time when the policy was created.\n"},"description":{"type":"string","description":"Access control over VPC firewalls description of the strategy information.\n"},"destPort":{"type":"string","description":"The destination port in the access control policy. **Note:** If \u003cspan pulumi-lang-nodejs=\"`destPortType`\" pulumi-lang-dotnet=\"`DestPortType`\" pulumi-lang-go=\"`destPortType`\" pulumi-lang-python=\"`dest_port_type`\" pulumi-lang-yaml=\"`destPortType`\" pulumi-lang-java=\"`destPortType`\"\u003e`dest_port_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, you must specify this parameter.\n"},"destPortGroup":{"type":"string","description":"Access control policy in the access traffic of the destination port address book name. **Note:** If \u003cspan pulumi-lang-nodejs=\"`destPortType`\" pulumi-lang-dotnet=\"`DestPortType`\" pulumi-lang-go=\"`destPortType`\" pulumi-lang-python=\"`dest_port_type`\" pulumi-lang-yaml=\"`destPortType`\" pulumi-lang-java=\"`destPortType`\"\u003e`dest_port_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, you must specify this parameter.\n"},"destPortGroupPorts":{"type":"array","items":{"type":"string"},"description":"Port Address Book port list.\n"},"destPortType":{"type":"string","description":"The type of the destination port in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e.\n"},"destination":{"type":"string","description":"The destination address in the access control policy. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`destinationType`\" pulumi-lang-dotnet=\"`DestinationType`\" pulumi-lang-go=\"`destinationType`\" pulumi-lang-python=\"`destination_type`\" pulumi-lang-yaml=\"`destinationType`\" pulumi-lang-java=\"`destinationType`\"\u003e`destination_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`net`\" pulumi-lang-dotnet=\"`Net`\" pulumi-lang-go=\"`net`\" pulumi-lang-python=\"`net`\" pulumi-lang-yaml=\"`net`\" pulumi-lang-java=\"`net`\"\u003e`net`\u003c/span\u003e, the value of \u003cspan pulumi-lang-nodejs=\"`destination`\" pulumi-lang-dotnet=\"`Destination`\" pulumi-lang-go=\"`destination`\" pulumi-lang-python=\"`destination`\" pulumi-lang-yaml=\"`destination`\" pulumi-lang-java=\"`destination`\"\u003e`destination`\u003c/span\u003e must be a CIDR block.\n- If \u003cspan pulumi-lang-nodejs=\"`destinationType`\" pulumi-lang-dotnet=\"`DestinationType`\" pulumi-lang-go=\"`destinationType`\" pulumi-lang-python=\"`destination_type`\" pulumi-lang-yaml=\"`destinationType`\" pulumi-lang-java=\"`destinationType`\"\u003e`destination_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, the value of \u003cspan pulumi-lang-nodejs=\"`destination`\" pulumi-lang-dotnet=\"`Destination`\" pulumi-lang-go=\"`destination`\" pulumi-lang-python=\"`destination`\" pulumi-lang-yaml=\"`destination`\" pulumi-lang-java=\"`destination`\"\u003e`destination`\u003c/span\u003e must be an address book.\n- If \u003cspan pulumi-lang-nodejs=\"`destinationType`\" pulumi-lang-dotnet=\"`DestinationType`\" pulumi-lang-go=\"`destinationType`\" pulumi-lang-python=\"`destination_type`\" pulumi-lang-yaml=\"`destinationType`\" pulumi-lang-java=\"`destinationType`\"\u003e`destination_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, the value of \u003cspan pulumi-lang-nodejs=\"`destination`\" pulumi-lang-dotnet=\"`Destination`\" pulumi-lang-go=\"`destination`\" pulumi-lang-python=\"`destination`\" pulumi-lang-yaml=\"`destination`\" pulumi-lang-java=\"`destination`\"\u003e`destination`\u003c/span\u003e must be a domain name.\n"},"destinationGroupCidrs":{"type":"array","items":{"type":"string"},"description":"Destination address book defined in the address list.\n"},"destinationGroupType":{"type":"string","description":"The destination address book type in the access control policy.\n"},"destinationType":{"type":"string","description":"The type of the destination address in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`net`\" pulumi-lang-dotnet=\"`Net`\" pulumi-lang-go=\"`net`\" pulumi-lang-python=\"`net`\" pulumi-lang-yaml=\"`net`\" pulumi-lang-java=\"`net`\"\u003e`net`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e.\n"},"domainResolveType":{"type":"string","description":"The domain name resolution method for the access control policy. Valid values: `FQDN`, `DNS`, `FQDN_AND_DNS`.\n"},"endTime":{"type":"integer","description":"The end time of the policy validity period.\n"},"hitTimes":{"type":"integer","description":"Control strategy of hits per second.\n"},"lang":{"type":"string","description":"The language of the content within the request and response. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"memberUid":{"type":"string","description":"The UID of the member account of the current Alibaba cloud account.\n","willReplaceOnChanges":true},"order":{"type":"integer","description":"The priority of the access control policy. The priority value starts from 1. A smaller priority value indicates a higher priority.\n","willReplaceOnChanges":true},"proto":{"type":"string","description":"The type of the protocol in the access control policy. Valid values: `ANY`, `TCP`, `UDP`, `ICMP`.\n"},"release":{"type":"string","description":"The enabled status of the access control policy. The policy is enabled by default after it is created.. Valid values:\n"},"repeatDays":{"type":"array","items":{"type":"integer"},"description":"The days of the week or month on which the policy is recurrently active. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Weekly`. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`repeatType`\" pulumi-lang-dotnet=\"`RepeatType`\" pulumi-lang-go=\"`repeatType`\" pulumi-lang-python=\"`repeat_type`\" pulumi-lang-yaml=\"`repeatType`\" pulumi-lang-java=\"`repeatType`\"\u003e`repeat_type`\u003c/span\u003e is set to `Monthly`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`31`\" pulumi-lang-dotnet=\"`31`\" pulumi-lang-go=\"`31`\" pulumi-lang-python=\"`31`\" pulumi-lang-yaml=\"`31`\" pulumi-lang-java=\"`31`\"\u003e`31`\u003c/span\u003e.\n"},"repeatEndTime":{"type":"string","description":"The recurring end time of the policy validity period.\n"},"repeatStartTime":{"type":"string","description":"The recurring start time of the policy validity period.\n"},"repeatType":{"type":"string","description":"The recurrence type for the policy validity period. Default value: `Permanent`. Valid values: `Permanent`, `None`, `Daily`, `Weekly`, `Monthly`.\n"},"source":{"type":"string","description":"Access control over VPC firewalls strategy in the source address.\n"},"sourceGroupCidrs":{"type":"array","items":{"type":"string"},"description":"SOURCE address of the address list.\n"},"sourceGroupType":{"type":"string","description":"The source address type in the access control policy.\n"},"sourceType":{"type":"string","description":"The type of the source address in the access control policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`net`\" pulumi-lang-dotnet=\"`Net`\" pulumi-lang-go=\"`net`\" pulumi-lang-python=\"`net`\" pulumi-lang-yaml=\"`net`\" pulumi-lang-java=\"`net`\"\u003e`net`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e.\n"},"startTime":{"type":"integer","description":"The start time of the policy validity period.\n"},"vpcFirewallId":{"type":"string","description":"The ID of the VPC firewall instance. Valid values:\n- When the VPC firewall protects traffic between two VPCs connected through the cloud enterprise network, the policy group ID uses the cloud enterprise network instance ID.\n- When the VPC firewall protects traffic between two VPCs connected through the express connection, the policy group ID uses the ID of the VPC firewall instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudfirewall/instance:Instance":{"description":"Provides a Cloud Firewall Instance resource.\n\nFor information about Cloud Firewall Instance and how to use it, see [What is Instance](https://www.alibabacloud.com/help/en/product/90174.htm).\n\n\u003e **NOTE:** Available since v1.139.0.\n\n\u003e **NOTE:** Deprecated since v1.269.0.\n\n\u003e **DEPRECATED:** This resource has been deprecated from version `1.269.0`. Please use new resource alicloud_cloud_firewall_instance_v2.\n\n## Example Usage\n\nBasic Usage\n\ncreate a pay-as-you-go instance\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst payAsYouGo = new alicloud.cloudfirewall.Instance(\"PayAsYouGo\", {paymentType: \"PayAsYouGo\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\npay_as_you_go = alicloud.cloudfirewall.Instance(\"PayAsYouGo\", payment_type=\"PayAsYouGo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var payAsYouGo = new AliCloud.CloudFirewall.Instance(\"PayAsYouGo\", new()\n    {\n        PaymentType = \"PayAsYouGo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudfirewall.NewInstance(ctx, \"PayAsYouGo\", \u0026cloudfirewall.InstanceArgs{\n\t\t\tPaymentType: pulumi.String(\"PayAsYouGo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.Instance;\nimport com.pulumi.alicloud.cloudfirewall.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var payAsYouGo = new Instance(\"payAsYouGo\", InstanceArgs.builder()\n            .paymentType(\"PayAsYouGo\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  payAsYouGo:\n    type: alicloud:cloudfirewall:Instance\n    name: PayAsYouGo\n    properties:\n      paymentType: PayAsYouGo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\ncreate a subscription instance\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst subscription = new alicloud.cloudfirewall.Instance(\"Subscription\", {\n    paymentType: \"Subscription\",\n    spec: \"premium_version\",\n    ipNumber: 20,\n    bandWidth: 10,\n    cfwLog: false,\n    period: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nsubscription = alicloud.cloudfirewall.Instance(\"Subscription\",\n    payment_type=\"Subscription\",\n    spec=\"premium_version\",\n    ip_number=20,\n    band_width=10,\n    cfw_log=False,\n    period=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var subscription = new AliCloud.CloudFirewall.Instance(\"Subscription\", new()\n    {\n        PaymentType = \"Subscription\",\n        Spec = \"premium_version\",\n        IpNumber = 20,\n        BandWidth = 10,\n        CfwLog = false,\n        Period = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudfirewall.NewInstance(ctx, \"Subscription\", \u0026cloudfirewall.InstanceArgs{\n\t\t\tPaymentType: pulumi.String(\"Subscription\"),\n\t\t\tSpec:        pulumi.String(\"premium_version\"),\n\t\t\tIpNumber:    pulumi.Int(20),\n\t\t\tBandWidth:   pulumi.Int(10),\n\t\t\tCfwLog:      pulumi.Bool(false),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.Instance;\nimport com.pulumi.alicloud.cloudfirewall.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var subscription = new Instance(\"subscription\", InstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .spec(\"premium_version\")\n            .ipNumber(20)\n            .bandWidth(10)\n            .cfwLog(false)\n            .period(1)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  subscription:\n    type: alicloud:cloudfirewall:Instance\n    name: Subscription\n    properties:\n      paymentType: Subscription\n      spec: premium_version\n      ipNumber: 20\n      bandWidth: 10\n      cfwLog: false\n      period: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudfirewall/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"accountNumber":{"type":"integer","description":"The number of multi account. It will be ignored when \u003cspan pulumi-lang-nodejs=\"`cfwAccount \" pulumi-lang-dotnet=\"`CfwAccount \" pulumi-lang-go=\"`cfwAccount \" pulumi-lang-python=\"`cfw_account \" pulumi-lang-yaml=\"`cfwAccount \" pulumi-lang-java=\"`cfwAccount \"\u003e`cfw_account \u003c/span\u003e= false`.\n"},"bandWidth":{"type":"integer","description":"Public network processing capability. Valid values: 10 to 15000. Unit: Mbps.\n"},"cfwAccount":{"type":"boolean","description":"Whether to use multi-account. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"cfwLog":{"type":"boolean","description":"Whether to use log audit. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** From version 1.232.0, When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, \u003cspan pulumi-lang-nodejs=\"`cfwLog`\" pulumi-lang-dotnet=\"`CfwLog`\" pulumi-lang-go=\"`cfwLog`\" pulumi-lang-python=\"`cfw_log`\" pulumi-lang-yaml=\"`cfwLog`\" pulumi-lang-java=\"`cfwLog`\"\u003e`cfw_log`\u003c/span\u003e can only be set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cfwLog`\" pulumi-lang-dotnet=\"`CfwLog`\" pulumi-lang-go=\"`cfwLog`\" pulumi-lang-python=\"`cfw_log`\" pulumi-lang-yaml=\"`cfwLog`\" pulumi-lang-java=\"`cfwLog`\"\u003e`cfw_log`\u003c/span\u003e cannot be modified to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"cfwLogStorage":{"type":"integer","description":"The log storage capacity. **NOTE:** From version 1.232.0, When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, or \u003cspan pulumi-lang-nodejs=\"`cfwLog`\" pulumi-lang-dotnet=\"`CfwLog`\" pulumi-lang-go=\"`cfwLog`\" pulumi-lang-python=\"`cfw_log`\" pulumi-lang-yaml=\"`cfwLog`\" pulumi-lang-java=\"`cfwLog`\"\u003e`cfw_log`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cfwLogStorage`\" pulumi-lang-dotnet=\"`CfwLogStorage`\" pulumi-lang-go=\"`cfwLogStorage`\" pulumi-lang-python=\"`cfw_log_storage`\" pulumi-lang-yaml=\"`cfwLogStorage`\" pulumi-lang-java=\"`cfwLogStorage`\"\u003e`cfw_log_storage`\u003c/span\u003e will be ignored.\n"},"createTime":{"type":"string","description":"The creation time.\n"},"endTime":{"type":"string","description":"The end time.\n"},"fwVpcNumber":{"type":"integer","description":"The number of protected VPCs. It will be ignored when `spec = \u003cspan pulumi-lang-nodejs=\"\"premiumVersion\"\" pulumi-lang-dotnet=\"\"PremiumVersion\"\" pulumi-lang-go=\"\"premiumVersion\"\" pulumi-lang-python=\"\"premium_version\"\" pulumi-lang-yaml=\"\"premiumVersion\"\" pulumi-lang-java=\"\"premiumVersion\"\"\u003e\"premium_version\"\u003c/span\u003e`. Valid values between 2 and 500.\n"},"instanceCount":{"type":"integer","description":"The number of assets.\n"},"ipNumber":{"type":"integer","description":"The number of public IPs that can be protected. Valid values: 20 to 4000.\n"},"logistics":{"type":"string","description":"The logistics.\n"},"modifyType":{"type":"string","description":"The type of modification. Valid values: `Upgrade`, `Downgrade`. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`modifyType`\" pulumi-lang-dotnet=\"`ModifyType`\" pulumi-lang-go=\"`modifyType`\" pulumi-lang-python=\"`modify_type`\" pulumi-lang-yaml=\"`modifyType`\" pulumi-lang-java=\"`modifyType`\"\u003e`modify_type`\u003c/span\u003e is required when you execute an update operation.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`. **NOTE:** From version 1.220.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e can be set to `PayAsYouGo`.\n"},"period":{"type":"integer","description":"The prepaid period. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. **NOTE:** 1 and 3 available since 1.204.1. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is required. Otherwise, it will be ignored.\n"},"releaseTime":{"type":"string","description":"The release time.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period. Attribute \u003cspan pulumi-lang-nodejs=\"`renewPeriod`\" pulumi-lang-dotnet=\"`RenewPeriod`\" pulumi-lang-go=\"`renewPeriod`\" pulumi-lang-python=\"`renew_period`\" pulumi-lang-yaml=\"`renewPeriod`\" pulumi-lang-java=\"`renewPeriod`\"\u003e`renew_period`\u003c/span\u003e has been deprecated since 1.209.1. Using \u003cspan pulumi-lang-nodejs=\"`renewalDuration`\" pulumi-lang-dotnet=\"`RenewalDuration`\" pulumi-lang-go=\"`renewalDuration`\" pulumi-lang-python=\"`renewal_duration`\" pulumi-lang-yaml=\"`renewalDuration`\" pulumi-lang-java=\"`renewalDuration`\"\u003e`renewal_duration`\u003c/span\u003e instead.\n","deprecationMessage":"Attribute 'renew_period' has been deprecated since 1.209.1. Using 'renewal_duration' instead."},"renewalDuration":{"type":"integer","description":"Auto-Renewal Duration. It is required under the condition that \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is `AutoRenewal`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n**NOTE:** \u003cspan pulumi-lang-nodejs=\"`renewalDuration`\" pulumi-lang-dotnet=\"`RenewalDuration`\" pulumi-lang-go=\"`renewalDuration`\" pulumi-lang-python=\"`renewal_duration`\" pulumi-lang-yaml=\"`renewalDuration`\" pulumi-lang-java=\"`renewalDuration`\"\u003e`renewal_duration`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, and \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is set to `AutoRenewal`.\n"},"renewalDurationUnit":{"type":"string","description":"Auto-Renewal Cycle Unit Values Include: Month: Month. Year: Years. Valid values: `Month`, `Year`.\n"},"renewalStatus":{"type":"string","description":"Whether to renew an instance automatically or not. Default value: `ManualRenewal`.\n- `AutoRenewal`: Auto renewal.\n- `ManualRenewal`: Manual renewal.\n- `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.\n**NOTE:** \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`.\n"},"spec":{"type":"string","description":"Current version. Valid values: \u003cspan pulumi-lang-nodejs=\"`premiumVersion`\" pulumi-lang-dotnet=\"`PremiumVersion`\" pulumi-lang-go=\"`premiumVersion`\" pulumi-lang-python=\"`premium_version`\" pulumi-lang-yaml=\"`premiumVersion`\" pulumi-lang-java=\"`premiumVersion`\"\u003e`premium_version`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enterpriseVersion`\" pulumi-lang-dotnet=\"`EnterpriseVersion`\" pulumi-lang-go=\"`enterpriseVersion`\" pulumi-lang-python=\"`enterprise_version`\" pulumi-lang-yaml=\"`enterpriseVersion`\" pulumi-lang-java=\"`enterpriseVersion`\"\u003e`enterprise_version`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`ultimateVersion`\" pulumi-lang-dotnet=\"`UltimateVersion`\" pulumi-lang-go=\"`ultimateVersion`\" pulumi-lang-python=\"`ultimate_version`\" pulumi-lang-yaml=\"`ultimateVersion`\" pulumi-lang-java=\"`ultimateVersion`\"\u003e`ultimate_version`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of Cloud Firewall Instance.\n"},"userStatus":{"type":"boolean","description":"(Available since v1.232.0) The user status of Cloud Firewall Instance.\n"}},"required":["createTime","endTime","fwVpcNumber","ipNumber","paymentType","releaseTime","renewPeriod","renewalDuration","renewalStatus","spec","status","userStatus"],"inputProperties":{"accountNumber":{"type":"integer","description":"The number of multi account. It will be ignored when \u003cspan pulumi-lang-nodejs=\"`cfwAccount \" pulumi-lang-dotnet=\"`CfwAccount \" pulumi-lang-go=\"`cfwAccount \" pulumi-lang-python=\"`cfw_account \" pulumi-lang-yaml=\"`cfwAccount \" pulumi-lang-java=\"`cfwAccount \"\u003e`cfw_account \u003c/span\u003e= false`.\n"},"bandWidth":{"type":"integer","description":"Public network processing capability. Valid values: 10 to 15000. Unit: Mbps.\n"},"cfwAccount":{"type":"boolean","description":"Whether to use multi-account. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"cfwLog":{"type":"boolean","description":"Whether to use log audit. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** From version 1.232.0, When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, \u003cspan pulumi-lang-nodejs=\"`cfwLog`\" pulumi-lang-dotnet=\"`CfwLog`\" pulumi-lang-go=\"`cfwLog`\" pulumi-lang-python=\"`cfw_log`\" pulumi-lang-yaml=\"`cfwLog`\" pulumi-lang-java=\"`cfwLog`\"\u003e`cfw_log`\u003c/span\u003e can only be set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cfwLog`\" pulumi-lang-dotnet=\"`CfwLog`\" pulumi-lang-go=\"`cfwLog`\" pulumi-lang-python=\"`cfw_log`\" pulumi-lang-yaml=\"`cfwLog`\" pulumi-lang-java=\"`cfwLog`\"\u003e`cfw_log`\u003c/span\u003e cannot be modified to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"cfwLogStorage":{"type":"integer","description":"The log storage capacity. **NOTE:** From version 1.232.0, When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, or \u003cspan pulumi-lang-nodejs=\"`cfwLog`\" pulumi-lang-dotnet=\"`CfwLog`\" pulumi-lang-go=\"`cfwLog`\" pulumi-lang-python=\"`cfw_log`\" pulumi-lang-yaml=\"`cfwLog`\" pulumi-lang-java=\"`cfwLog`\"\u003e`cfw_log`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cfwLogStorage`\" pulumi-lang-dotnet=\"`CfwLogStorage`\" pulumi-lang-go=\"`cfwLogStorage`\" pulumi-lang-python=\"`cfw_log_storage`\" pulumi-lang-yaml=\"`cfwLogStorage`\" pulumi-lang-java=\"`cfwLogStorage`\"\u003e`cfw_log_storage`\u003c/span\u003e will be ignored.\n"},"fwVpcNumber":{"type":"integer","description":"The number of protected VPCs. It will be ignored when `spec = \u003cspan pulumi-lang-nodejs=\"\"premiumVersion\"\" pulumi-lang-dotnet=\"\"PremiumVersion\"\" pulumi-lang-go=\"\"premiumVersion\"\" pulumi-lang-python=\"\"premium_version\"\" pulumi-lang-yaml=\"\"premiumVersion\"\" pulumi-lang-java=\"\"premiumVersion\"\"\u003e\"premium_version\"\u003c/span\u003e`. Valid values between 2 and 500.\n"},"instanceCount":{"type":"integer","description":"The number of assets.\n"},"ipNumber":{"type":"integer","description":"The number of public IPs that can be protected. Valid values: 20 to 4000.\n"},"logistics":{"type":"string","description":"The logistics.\n"},"modifyType":{"type":"string","description":"The type of modification. Valid values: `Upgrade`, `Downgrade`. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`modifyType`\" pulumi-lang-dotnet=\"`ModifyType`\" pulumi-lang-go=\"`modifyType`\" pulumi-lang-python=\"`modify_type`\" pulumi-lang-yaml=\"`modifyType`\" pulumi-lang-java=\"`modifyType`\"\u003e`modify_type`\u003c/span\u003e is required when you execute an update operation.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`. **NOTE:** From version 1.220.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e can be set to `PayAsYouGo`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The prepaid period. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. **NOTE:** 1 and 3 available since 1.204.1. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is required. Otherwise, it will be ignored.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period. Attribute \u003cspan pulumi-lang-nodejs=\"`renewPeriod`\" pulumi-lang-dotnet=\"`RenewPeriod`\" pulumi-lang-go=\"`renewPeriod`\" pulumi-lang-python=\"`renew_period`\" pulumi-lang-yaml=\"`renewPeriod`\" pulumi-lang-java=\"`renewPeriod`\"\u003e`renew_period`\u003c/span\u003e has been deprecated since 1.209.1. Using \u003cspan pulumi-lang-nodejs=\"`renewalDuration`\" pulumi-lang-dotnet=\"`RenewalDuration`\" pulumi-lang-go=\"`renewalDuration`\" pulumi-lang-python=\"`renewal_duration`\" pulumi-lang-yaml=\"`renewalDuration`\" pulumi-lang-java=\"`renewalDuration`\"\u003e`renewal_duration`\u003c/span\u003e instead.\n","deprecationMessage":"Attribute 'renew_period' has been deprecated since 1.209.1. Using 'renewal_duration' instead."},"renewalDuration":{"type":"integer","description":"Auto-Renewal Duration. It is required under the condition that \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is `AutoRenewal`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n**NOTE:** \u003cspan pulumi-lang-nodejs=\"`renewalDuration`\" pulumi-lang-dotnet=\"`RenewalDuration`\" pulumi-lang-go=\"`renewalDuration`\" pulumi-lang-python=\"`renewal_duration`\" pulumi-lang-yaml=\"`renewalDuration`\" pulumi-lang-java=\"`renewalDuration`\"\u003e`renewal_duration`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, and \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is set to `AutoRenewal`.\n"},"renewalDurationUnit":{"type":"string","description":"Auto-Renewal Cycle Unit Values Include: Month: Month. Year: Years. Valid values: `Month`, `Year`.\n"},"renewalStatus":{"type":"string","description":"Whether to renew an instance automatically or not. Default value: `ManualRenewal`.\n- `AutoRenewal`: Auto renewal.\n- `ManualRenewal`: Manual renewal.\n- `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.\n**NOTE:** \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`.\n"},"spec":{"type":"string","description":"Current version. Valid values: \u003cspan pulumi-lang-nodejs=\"`premiumVersion`\" pulumi-lang-dotnet=\"`PremiumVersion`\" pulumi-lang-go=\"`premiumVersion`\" pulumi-lang-python=\"`premium_version`\" pulumi-lang-yaml=\"`premiumVersion`\" pulumi-lang-java=\"`premiumVersion`\"\u003e`premium_version`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enterpriseVersion`\" pulumi-lang-dotnet=\"`EnterpriseVersion`\" pulumi-lang-go=\"`enterpriseVersion`\" pulumi-lang-python=\"`enterprise_version`\" pulumi-lang-yaml=\"`enterpriseVersion`\" pulumi-lang-java=\"`enterpriseVersion`\"\u003e`enterprise_version`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`ultimateVersion`\" pulumi-lang-dotnet=\"`UltimateVersion`\" pulumi-lang-go=\"`ultimateVersion`\" pulumi-lang-python=\"`ultimate_version`\" pulumi-lang-yaml=\"`ultimateVersion`\" pulumi-lang-java=\"`ultimateVersion`\"\u003e`ultimate_version`\u003c/span\u003e.\n"}},"requiredInputs":["paymentType"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"accountNumber":{"type":"integer","description":"The number of multi account. It will be ignored when \u003cspan pulumi-lang-nodejs=\"`cfwAccount \" pulumi-lang-dotnet=\"`CfwAccount \" pulumi-lang-go=\"`cfwAccount \" pulumi-lang-python=\"`cfw_account \" pulumi-lang-yaml=\"`cfwAccount \" pulumi-lang-java=\"`cfwAccount \"\u003e`cfw_account \u003c/span\u003e= false`.\n"},"bandWidth":{"type":"integer","description":"Public network processing capability. Valid values: 10 to 15000. Unit: Mbps.\n"},"cfwAccount":{"type":"boolean","description":"Whether to use multi-account. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"cfwLog":{"type":"boolean","description":"Whether to use log audit. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** From version 1.232.0, When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, \u003cspan pulumi-lang-nodejs=\"`cfwLog`\" pulumi-lang-dotnet=\"`CfwLog`\" pulumi-lang-go=\"`cfwLog`\" pulumi-lang-python=\"`cfw_log`\" pulumi-lang-yaml=\"`cfwLog`\" pulumi-lang-java=\"`cfwLog`\"\u003e`cfw_log`\u003c/span\u003e can only be set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cfwLog`\" pulumi-lang-dotnet=\"`CfwLog`\" pulumi-lang-go=\"`cfwLog`\" pulumi-lang-python=\"`cfw_log`\" pulumi-lang-yaml=\"`cfwLog`\" pulumi-lang-java=\"`cfwLog`\"\u003e`cfw_log`\u003c/span\u003e cannot be modified to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"cfwLogStorage":{"type":"integer","description":"The log storage capacity. **NOTE:** From version 1.232.0, When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, or \u003cspan pulumi-lang-nodejs=\"`cfwLog`\" pulumi-lang-dotnet=\"`CfwLog`\" pulumi-lang-go=\"`cfwLog`\" pulumi-lang-python=\"`cfw_log`\" pulumi-lang-yaml=\"`cfwLog`\" pulumi-lang-java=\"`cfwLog`\"\u003e`cfw_log`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cfwLogStorage`\" pulumi-lang-dotnet=\"`CfwLogStorage`\" pulumi-lang-go=\"`cfwLogStorage`\" pulumi-lang-python=\"`cfw_log_storage`\" pulumi-lang-yaml=\"`cfwLogStorage`\" pulumi-lang-java=\"`cfwLogStorage`\"\u003e`cfw_log_storage`\u003c/span\u003e will be ignored.\n"},"createTime":{"type":"string","description":"The creation time.\n"},"endTime":{"type":"string","description":"The end time.\n"},"fwVpcNumber":{"type":"integer","description":"The number of protected VPCs. It will be ignored when `spec = \u003cspan pulumi-lang-nodejs=\"\"premiumVersion\"\" pulumi-lang-dotnet=\"\"PremiumVersion\"\" pulumi-lang-go=\"\"premiumVersion\"\" pulumi-lang-python=\"\"premium_version\"\" pulumi-lang-yaml=\"\"premiumVersion\"\" pulumi-lang-java=\"\"premiumVersion\"\"\u003e\"premium_version\"\u003c/span\u003e`. Valid values between 2 and 500.\n"},"instanceCount":{"type":"integer","description":"The number of assets.\n"},"ipNumber":{"type":"integer","description":"The number of public IPs that can be protected. Valid values: 20 to 4000.\n"},"logistics":{"type":"string","description":"The logistics.\n"},"modifyType":{"type":"string","description":"The type of modification. Valid values: `Upgrade`, `Downgrade`. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`modifyType`\" pulumi-lang-dotnet=\"`ModifyType`\" pulumi-lang-go=\"`modifyType`\" pulumi-lang-python=\"`modify_type`\" pulumi-lang-yaml=\"`modifyType`\" pulumi-lang-java=\"`modifyType`\"\u003e`modify_type`\u003c/span\u003e is required when you execute an update operation.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`. **NOTE:** From version 1.220.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e can be set to `PayAsYouGo`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The prepaid period. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. **NOTE:** 1 and 3 available since 1.204.1. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is required. Otherwise, it will be ignored.\n"},"releaseTime":{"type":"string","description":"The release time.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period. Attribute \u003cspan pulumi-lang-nodejs=\"`renewPeriod`\" pulumi-lang-dotnet=\"`RenewPeriod`\" pulumi-lang-go=\"`renewPeriod`\" pulumi-lang-python=\"`renew_period`\" pulumi-lang-yaml=\"`renewPeriod`\" pulumi-lang-java=\"`renewPeriod`\"\u003e`renew_period`\u003c/span\u003e has been deprecated since 1.209.1. Using \u003cspan pulumi-lang-nodejs=\"`renewalDuration`\" pulumi-lang-dotnet=\"`RenewalDuration`\" pulumi-lang-go=\"`renewalDuration`\" pulumi-lang-python=\"`renewal_duration`\" pulumi-lang-yaml=\"`renewalDuration`\" pulumi-lang-java=\"`renewalDuration`\"\u003e`renewal_duration`\u003c/span\u003e instead.\n","deprecationMessage":"Attribute 'renew_period' has been deprecated since 1.209.1. Using 'renewal_duration' instead."},"renewalDuration":{"type":"integer","description":"Auto-Renewal Duration. It is required under the condition that \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is `AutoRenewal`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n**NOTE:** \u003cspan pulumi-lang-nodejs=\"`renewalDuration`\" pulumi-lang-dotnet=\"`RenewalDuration`\" pulumi-lang-go=\"`renewalDuration`\" pulumi-lang-python=\"`renewal_duration`\" pulumi-lang-yaml=\"`renewalDuration`\" pulumi-lang-java=\"`renewalDuration`\"\u003e`renewal_duration`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, and \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is set to `AutoRenewal`.\n"},"renewalDurationUnit":{"type":"string","description":"Auto-Renewal Cycle Unit Values Include: Month: Month. Year: Years. Valid values: `Month`, `Year`.\n"},"renewalStatus":{"type":"string","description":"Whether to renew an instance automatically or not. Default value: `ManualRenewal`.\n- `AutoRenewal`: Auto renewal.\n- `ManualRenewal`: Manual renewal.\n- `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.\n**NOTE:** \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`.\n"},"spec":{"type":"string","description":"Current version. Valid values: \u003cspan pulumi-lang-nodejs=\"`premiumVersion`\" pulumi-lang-dotnet=\"`PremiumVersion`\" pulumi-lang-go=\"`premiumVersion`\" pulumi-lang-python=\"`premium_version`\" pulumi-lang-yaml=\"`premiumVersion`\" pulumi-lang-java=\"`premiumVersion`\"\u003e`premium_version`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enterpriseVersion`\" pulumi-lang-dotnet=\"`EnterpriseVersion`\" pulumi-lang-go=\"`enterpriseVersion`\" pulumi-lang-python=\"`enterprise_version`\" pulumi-lang-yaml=\"`enterpriseVersion`\" pulumi-lang-java=\"`enterpriseVersion`\"\u003e`enterprise_version`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`ultimateVersion`\" pulumi-lang-dotnet=\"`UltimateVersion`\" pulumi-lang-go=\"`ultimateVersion`\" pulumi-lang-python=\"`ultimate_version`\" pulumi-lang-yaml=\"`ultimateVersion`\" pulumi-lang-java=\"`ultimateVersion`\"\u003e`ultimate_version`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of Cloud Firewall Instance.\n"},"userStatus":{"type":"boolean","description":"(Available since v1.232.0) The user status of Cloud Firewall Instance.\n"}},"type":"object"}},"alicloud:cloudfirewall/instanceMember:InstanceMember":{"description":"Provides a Cloud Firewall Instance Member resource.\n\nFor information about Cloud Firewall Instance Member and how to use it, see [What is Instance Member](https://www.alibabacloud.com/help/en/cloud-firewall/cloudfirewall/developer-reference/api-cloudfw-2017-12-07-addinstancemembers).\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"AliyunTerraform\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultAccount = new alicloud.resourcemanager.Account(\"default\", {displayName: `${name}-${_default.result}`});\nconst defaultInstanceMember = new alicloud.cloudfirewall.InstanceMember(\"default\", {\n    memberDesc: `${name}-${_default.result}`,\n    memberUid: defaultAccount.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"AliyunTerraform\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_account = alicloud.resourcemanager.Account(\"default\", display_name=f\"{name}-{default['result']}\")\ndefault_instance_member = alicloud.cloudfirewall.InstanceMember(\"default\",\n    member_desc=f\"{name}-{default['result']}\",\n    member_uid=default_account.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"AliyunTerraform\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultAccount = new AliCloud.ResourceManager.Account(\"default\", new()\n    {\n        DisplayName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultInstanceMember = new AliCloud.CloudFirewall.InstanceMember(\"default\", new()\n    {\n        MemberDesc = $\"{name}-{@default.Result}\",\n        MemberUid = defaultAccount.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"AliyunTerraform\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAccount, err := resourcemanager.NewAccount(ctx, \"default\", \u0026resourcemanager.AccountArgs{\n\t\t\tDisplayName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfirewall.NewInstanceMember(ctx, \"default\", \u0026cloudfirewall.InstanceMemberArgs{\n\t\t\tMemberDesc: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tMemberUid:  defaultAccount.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.resourcemanager.Account;\nimport com.pulumi.alicloud.resourcemanager.AccountArgs;\nimport com.pulumi.alicloud.cloudfirewall.InstanceMember;\nimport com.pulumi.alicloud.cloudfirewall.InstanceMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"AliyunTerraform\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultAccount = new Account(\"defaultAccount\", AccountArgs.builder()\n            .displayName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultInstanceMember = new InstanceMember(\"defaultInstanceMember\", InstanceMemberArgs.builder()\n            .memberDesc(String.format(\"%s-%s\", name,default_.result()))\n            .memberUid(defaultAccount.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: AliyunTerraform\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultAccount:\n    type: alicloud:resourcemanager:Account\n    name: default\n    properties:\n      displayName: ${name}-${default.result}\n  defaultInstanceMember:\n    type: alicloud:cloudfirewall:InstanceMember\n    name: default\n    properties:\n      memberDesc: ${name}-${default.result}\n      memberUid: ${defaultAccount.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Instance Member can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_cloud_firewall_instance_member.example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"integer","description":"When the cloud firewall member account was added.\u003e use second-level timestamp format.\n"},"memberDesc":{"type":"string","description":"Remarks of cloud firewall member accounts.\n"},"memberDisplayName":{"type":"string","description":"The name of the cloud firewall member account.\n"},"memberUid":{"type":"string","description":"The UID of the cloud firewall member account.\n"},"modifyTime":{"type":"integer","description":"The last modification time of the cloud firewall member account.\u003e use second-level timestamp format.\n"},"status":{"type":"string","description":"The resource attribute field that represents the resource status.\n"}},"required":["createTime","memberDisplayName","memberUid","modifyTime","status"],"inputProperties":{"memberDesc":{"type":"string","description":"Remarks of cloud firewall member accounts.\n"},"memberUid":{"type":"string","description":"The UID of the cloud firewall member account.\n","willReplaceOnChanges":true}},"requiredInputs":["memberUid"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceMember resources.\n","properties":{"createTime":{"type":"integer","description":"When the cloud firewall member account was added.\u003e use second-level timestamp format.\n"},"memberDesc":{"type":"string","description":"Remarks of cloud firewall member accounts.\n"},"memberDisplayName":{"type":"string","description":"The name of the cloud firewall member account.\n"},"memberUid":{"type":"string","description":"The UID of the cloud firewall member account.\n","willReplaceOnChanges":true},"modifyTime":{"type":"integer","description":"The last modification time of the cloud firewall member account.\u003e use second-level timestamp format.\n"},"status":{"type":"string","description":"The resource attribute field that represents the resource status.\n"}},"type":"object"}},"alicloud:cloudfirewall/instanceV2:InstanceV2":{"description":"Provides a Cloud Firewall Instance V2 resource.\n\nCloud Firewall instance.\n\nFor information about Cloud Firewall Instance V2 and how to use it, see [What is Instance V2](https://www.alibabacloud.com/help/en/product/90174.htm).\n\n\u003e **NOTE:** Available since v1.269.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.cloudfirewall.InstanceV2(\"default\", {\n    paymentType: \"PayAsYouGo\",\n    productCode: \"cfw\",\n    productType: \"cfw_elasticity_public_cn\",\n    spec: \"payg_version\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cloudfirewall.InstanceV2(\"default\",\n    payment_type=\"PayAsYouGo\",\n    product_code=\"cfw\",\n    product_type=\"cfw_elasticity_public_cn\",\n    spec=\"payg_version\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.CloudFirewall.InstanceV2(\"default\", new()\n    {\n        PaymentType = \"PayAsYouGo\",\n        ProductCode = \"cfw\",\n        ProductType = \"cfw_elasticity_public_cn\",\n        Spec = \"payg_version\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudfirewall.NewInstanceV2(ctx, \"default\", \u0026cloudfirewall.InstanceV2Args{\n\t\t\tPaymentType: pulumi.String(\"PayAsYouGo\"),\n\t\t\tProductCode: pulumi.String(\"cfw\"),\n\t\t\tProductType: pulumi.String(\"cfw_elasticity_public_cn\"),\n\t\t\tSpec:        pulumi.String(\"payg_version\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.InstanceV2;\nimport com.pulumi.alicloud.cloudfirewall.InstanceV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new InstanceV2(\"default\", InstanceV2Args.builder()\n            .paymentType(\"PayAsYouGo\")\n            .productCode(\"cfw\")\n            .productType(\"cfw_elasticity_public_cn\")\n            .spec(\"payg_version\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:cloudfirewall:InstanceV2\n    properties:\n      paymentType: PayAsYouGo\n      productCode: cfw\n      productType: cfw_elasticity_public_cn\n      spec: payg_version\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Instance V2 can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudfirewall/instanceV2:InstanceV2 example \u003cid\u003e\n```\n\n","properties":{"cfwLog":{"type":"boolean","description":"Whether to use log audit. Valid values:\n"},"createTime":{"type":"string","description":"The creation time.\n"},"endTime":{"type":"string","description":"The end time.\n"},"modifyType":{"type":"string","description":"The type of modification. Valid values: `Upgrade`, `Downgrade`. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`modifyType`\" pulumi-lang-dotnet=\"`ModifyType`\" pulumi-lang-go=\"`modifyType`\" pulumi-lang-python=\"`modify_type`\" pulumi-lang-yaml=\"`modifyType`\" pulumi-lang-java=\"`modifyType`\"\u003e`modify_type`\u003c/span\u003e is required when you execute an update operation.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`, `Subscription`.\n"},"period":{"type":"integer","description":"The prepaid period. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is required.\n"},"productCode":{"type":"string","description":"The product code. Valid values: \u003cspan pulumi-lang-nodejs=\"`cfw`\" pulumi-lang-dotnet=\"`Cfw`\" pulumi-lang-go=\"`cfw`\" pulumi-lang-python=\"`cfw`\" pulumi-lang-yaml=\"`cfw`\" pulumi-lang-java=\"`cfw`\"\u003e`cfw`\u003c/span\u003e.\n"},"productType":{"type":"string","description":"The product type. Valid values: \u003cspan pulumi-lang-nodejs=\"`cfwElasticityPublicCn`\" pulumi-lang-dotnet=\"`CfwElasticityPublicCn`\" pulumi-lang-go=\"`cfwElasticityPublicCn`\" pulumi-lang-python=\"`cfw_elasticity_public_cn`\" pulumi-lang-yaml=\"`cfwElasticityPublicCn`\" pulumi-lang-java=\"`cfwElasticityPublicCn`\"\u003e`cfw_elasticity_public_cn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cfwElasticityPublicIntl`\" pulumi-lang-dotnet=\"`CfwElasticityPublicIntl`\" pulumi-lang-go=\"`cfwElasticityPublicIntl`\" pulumi-lang-python=\"`cfw_elasticity_public_intl`\" pulumi-lang-yaml=\"`cfwElasticityPublicIntl`\" pulumi-lang-java=\"`cfwElasticityPublicIntl`\"\u003e`cfw_elasticity_public_intl`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cfwSubPublicCn`\" pulumi-lang-dotnet=\"`CfwSubPublicCn`\" pulumi-lang-go=\"`cfwSubPublicCn`\" pulumi-lang-python=\"`cfw_sub_public_cn`\" pulumi-lang-yaml=\"`cfwSubPublicCn`\" pulumi-lang-java=\"`cfwSubPublicCn`\"\u003e`cfw_sub_public_cn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cfwSubPublicIntl`\" pulumi-lang-dotnet=\"`CfwSubPublicIntl`\" pulumi-lang-go=\"`cfwSubPublicIntl`\" pulumi-lang-python=\"`cfw_sub_public_intl`\" pulumi-lang-yaml=\"`cfwSubPublicIntl`\" pulumi-lang-java=\"`cfwSubPublicIntl`\"\u003e`cfw_sub_public_intl`\u003c/span\u003e.\n"},"releaseTime":{"type":"string","description":"The release time.\n"},"renewalDuration":{"type":"integer","description":"The auto-renewal duration. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`renewalDuration`\" pulumi-lang-dotnet=\"`RenewalDuration`\" pulumi-lang-go=\"`renewalDuration`\" pulumi-lang-python=\"`renewal_duration`\" pulumi-lang-yaml=\"`renewalDuration`\" pulumi-lang-java=\"`renewalDuration`\"\u003e`renewal_duration`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, and \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is set to `AutoRenewal`.\n"},"renewalDurationUnit":{"type":"string","description":"The unit of the auto-renewal period. Valid values:\n- `M`: Month.\n- `Y`: Year.\n"},"renewalStatus":{"type":"string","description":"Whether to renew an instance automatically or not.\n- `AutoRenewal`: Auto renewal.\n- `ManualRenewal`: Manual renewal.\n- `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.\n"},"sdl":{"type":"boolean","description":"Data leakage protection status. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"spec":{"type":"string","description":"The edition of the Cloud Firewall instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`paygVersion`\" pulumi-lang-dotnet=\"`PaygVersion`\" pulumi-lang-go=\"`paygVersion`\" pulumi-lang-python=\"`payg_version`\" pulumi-lang-yaml=\"`paygVersion`\" pulumi-lang-java=\"`paygVersion`\"\u003e`payg_version`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`premiumVersion`\" pulumi-lang-dotnet=\"`PremiumVersion`\" pulumi-lang-go=\"`premiumVersion`\" pulumi-lang-python=\"`premium_version`\" pulumi-lang-yaml=\"`premiumVersion`\" pulumi-lang-java=\"`premiumVersion`\"\u003e`premium_version`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enterpriseVersion`\" pulumi-lang-dotnet=\"`EnterpriseVersion`\" pulumi-lang-go=\"`enterpriseVersion`\" pulumi-lang-python=\"`enterprise_version`\" pulumi-lang-yaml=\"`enterpriseVersion`\" pulumi-lang-java=\"`enterpriseVersion`\"\u003e`enterprise_version`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`ultimateVersion`\" pulumi-lang-dotnet=\"`UltimateVersion`\" pulumi-lang-go=\"`ultimateVersion`\" pulumi-lang-python=\"`ultimate_version`\" pulumi-lang-yaml=\"`ultimateVersion`\" pulumi-lang-java=\"`ultimateVersion`\"\u003e`ultimate_version`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of Cloud Firewall Instance.\n"},"userStatus":{"type":"string","description":"The user status of Cloud Firewall Instance.\n"}},"required":["cfwLog","createTime","endTime","paymentType","productCode","productType","releaseTime","renewalDurationUnit","renewalStatus","spec","status","userStatus"],"inputProperties":{"cfwLog":{"type":"boolean","description":"Whether to use log audit. Valid values:\n"},"modifyType":{"type":"string","description":"The type of modification. Valid values: `Upgrade`, `Downgrade`. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`modifyType`\" pulumi-lang-dotnet=\"`ModifyType`\" pulumi-lang-go=\"`modifyType`\" pulumi-lang-python=\"`modify_type`\" pulumi-lang-yaml=\"`modifyType`\" pulumi-lang-java=\"`modifyType`\"\u003e`modify_type`\u003c/span\u003e is required when you execute an update operation.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`, `Subscription`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The prepaid period. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is required.\n"},"productCode":{"type":"string","description":"The product code. Valid values: \u003cspan pulumi-lang-nodejs=\"`cfw`\" pulumi-lang-dotnet=\"`Cfw`\" pulumi-lang-go=\"`cfw`\" pulumi-lang-python=\"`cfw`\" pulumi-lang-yaml=\"`cfw`\" pulumi-lang-java=\"`cfw`\"\u003e`cfw`\u003c/span\u003e.\n","willReplaceOnChanges":true},"productType":{"type":"string","description":"The product type. Valid values: \u003cspan pulumi-lang-nodejs=\"`cfwElasticityPublicCn`\" pulumi-lang-dotnet=\"`CfwElasticityPublicCn`\" pulumi-lang-go=\"`cfwElasticityPublicCn`\" pulumi-lang-python=\"`cfw_elasticity_public_cn`\" pulumi-lang-yaml=\"`cfwElasticityPublicCn`\" pulumi-lang-java=\"`cfwElasticityPublicCn`\"\u003e`cfw_elasticity_public_cn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cfwElasticityPublicIntl`\" pulumi-lang-dotnet=\"`CfwElasticityPublicIntl`\" pulumi-lang-go=\"`cfwElasticityPublicIntl`\" pulumi-lang-python=\"`cfw_elasticity_public_intl`\" pulumi-lang-yaml=\"`cfwElasticityPublicIntl`\" pulumi-lang-java=\"`cfwElasticityPublicIntl`\"\u003e`cfw_elasticity_public_intl`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cfwSubPublicCn`\" pulumi-lang-dotnet=\"`CfwSubPublicCn`\" pulumi-lang-go=\"`cfwSubPublicCn`\" pulumi-lang-python=\"`cfw_sub_public_cn`\" pulumi-lang-yaml=\"`cfwSubPublicCn`\" pulumi-lang-java=\"`cfwSubPublicCn`\"\u003e`cfw_sub_public_cn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cfwSubPublicIntl`\" pulumi-lang-dotnet=\"`CfwSubPublicIntl`\" pulumi-lang-go=\"`cfwSubPublicIntl`\" pulumi-lang-python=\"`cfw_sub_public_intl`\" pulumi-lang-yaml=\"`cfwSubPublicIntl`\" pulumi-lang-java=\"`cfwSubPublicIntl`\"\u003e`cfw_sub_public_intl`\u003c/span\u003e.\n","willReplaceOnChanges":true},"renewalDuration":{"type":"integer","description":"The auto-renewal duration. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`renewalDuration`\" pulumi-lang-dotnet=\"`RenewalDuration`\" pulumi-lang-go=\"`renewalDuration`\" pulumi-lang-python=\"`renewal_duration`\" pulumi-lang-yaml=\"`renewalDuration`\" pulumi-lang-java=\"`renewalDuration`\"\u003e`renewal_duration`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, and \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is set to `AutoRenewal`.\n"},"renewalDurationUnit":{"type":"string","description":"The unit of the auto-renewal period. Valid values:\n- `M`: Month.\n- `Y`: Year.\n"},"renewalStatus":{"type":"string","description":"Whether to renew an instance automatically or not.\n- `AutoRenewal`: Auto renewal.\n- `ManualRenewal`: Manual renewal.\n- `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.\n"},"sdl":{"type":"boolean","description":"Data leakage protection status. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"spec":{"type":"string","description":"The edition of the Cloud Firewall instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`paygVersion`\" pulumi-lang-dotnet=\"`PaygVersion`\" pulumi-lang-go=\"`paygVersion`\" pulumi-lang-python=\"`payg_version`\" pulumi-lang-yaml=\"`paygVersion`\" pulumi-lang-java=\"`paygVersion`\"\u003e`payg_version`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`premiumVersion`\" pulumi-lang-dotnet=\"`PremiumVersion`\" pulumi-lang-go=\"`premiumVersion`\" pulumi-lang-python=\"`premium_version`\" pulumi-lang-yaml=\"`premiumVersion`\" pulumi-lang-java=\"`premiumVersion`\"\u003e`premium_version`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enterpriseVersion`\" pulumi-lang-dotnet=\"`EnterpriseVersion`\" pulumi-lang-go=\"`enterpriseVersion`\" pulumi-lang-python=\"`enterprise_version`\" pulumi-lang-yaml=\"`enterpriseVersion`\" pulumi-lang-java=\"`enterpriseVersion`\"\u003e`enterprise_version`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`ultimateVersion`\" pulumi-lang-dotnet=\"`UltimateVersion`\" pulumi-lang-go=\"`ultimateVersion`\" pulumi-lang-python=\"`ultimate_version`\" pulumi-lang-yaml=\"`ultimateVersion`\" pulumi-lang-java=\"`ultimateVersion`\"\u003e`ultimate_version`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["paymentType","productCode","productType","spec"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceV2 resources.\n","properties":{"cfwLog":{"type":"boolean","description":"Whether to use log audit. Valid values:\n"},"createTime":{"type":"string","description":"The creation time.\n"},"endTime":{"type":"string","description":"The end time.\n"},"modifyType":{"type":"string","description":"The type of modification. Valid values: `Upgrade`, `Downgrade`. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`modifyType`\" pulumi-lang-dotnet=\"`ModifyType`\" pulumi-lang-go=\"`modifyType`\" pulumi-lang-python=\"`modify_type`\" pulumi-lang-yaml=\"`modifyType`\" pulumi-lang-java=\"`modifyType`\"\u003e`modify_type`\u003c/span\u003e is required when you execute an update operation.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`, `Subscription`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The prepaid period. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is required.\n"},"productCode":{"type":"string","description":"The product code. Valid values: \u003cspan pulumi-lang-nodejs=\"`cfw`\" pulumi-lang-dotnet=\"`Cfw`\" pulumi-lang-go=\"`cfw`\" pulumi-lang-python=\"`cfw`\" pulumi-lang-yaml=\"`cfw`\" pulumi-lang-java=\"`cfw`\"\u003e`cfw`\u003c/span\u003e.\n","willReplaceOnChanges":true},"productType":{"type":"string","description":"The product type. Valid values: \u003cspan pulumi-lang-nodejs=\"`cfwElasticityPublicCn`\" pulumi-lang-dotnet=\"`CfwElasticityPublicCn`\" pulumi-lang-go=\"`cfwElasticityPublicCn`\" pulumi-lang-python=\"`cfw_elasticity_public_cn`\" pulumi-lang-yaml=\"`cfwElasticityPublicCn`\" pulumi-lang-java=\"`cfwElasticityPublicCn`\"\u003e`cfw_elasticity_public_cn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cfwElasticityPublicIntl`\" pulumi-lang-dotnet=\"`CfwElasticityPublicIntl`\" pulumi-lang-go=\"`cfwElasticityPublicIntl`\" pulumi-lang-python=\"`cfw_elasticity_public_intl`\" pulumi-lang-yaml=\"`cfwElasticityPublicIntl`\" pulumi-lang-java=\"`cfwElasticityPublicIntl`\"\u003e`cfw_elasticity_public_intl`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cfwSubPublicCn`\" pulumi-lang-dotnet=\"`CfwSubPublicCn`\" pulumi-lang-go=\"`cfwSubPublicCn`\" pulumi-lang-python=\"`cfw_sub_public_cn`\" pulumi-lang-yaml=\"`cfwSubPublicCn`\" pulumi-lang-java=\"`cfwSubPublicCn`\"\u003e`cfw_sub_public_cn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cfwSubPublicIntl`\" pulumi-lang-dotnet=\"`CfwSubPublicIntl`\" pulumi-lang-go=\"`cfwSubPublicIntl`\" pulumi-lang-python=\"`cfw_sub_public_intl`\" pulumi-lang-yaml=\"`cfwSubPublicIntl`\" pulumi-lang-java=\"`cfwSubPublicIntl`\"\u003e`cfw_sub_public_intl`\u003c/span\u003e.\n","willReplaceOnChanges":true},"releaseTime":{"type":"string","description":"The release time.\n"},"renewalDuration":{"type":"integer","description":"The auto-renewal duration. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`renewalDuration`\" pulumi-lang-dotnet=\"`RenewalDuration`\" pulumi-lang-go=\"`renewalDuration`\" pulumi-lang-python=\"`renewal_duration`\" pulumi-lang-yaml=\"`renewalDuration`\" pulumi-lang-java=\"`renewalDuration`\"\u003e`renewal_duration`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, and \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e is set to `AutoRenewal`.\n"},"renewalDurationUnit":{"type":"string","description":"The unit of the auto-renewal period. Valid values:\n- `M`: Month.\n- `Y`: Year.\n"},"renewalStatus":{"type":"string","description":"Whether to renew an instance automatically or not.\n- `AutoRenewal`: Auto renewal.\n- `ManualRenewal`: Manual renewal.\n- `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.\n"},"sdl":{"type":"boolean","description":"Data leakage protection status. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"spec":{"type":"string","description":"The edition of the Cloud Firewall instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`paygVersion`\" pulumi-lang-dotnet=\"`PaygVersion`\" pulumi-lang-go=\"`paygVersion`\" pulumi-lang-python=\"`payg_version`\" pulumi-lang-yaml=\"`paygVersion`\" pulumi-lang-java=\"`paygVersion`\"\u003e`payg_version`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`premiumVersion`\" pulumi-lang-dotnet=\"`PremiumVersion`\" pulumi-lang-go=\"`premiumVersion`\" pulumi-lang-python=\"`premium_version`\" pulumi-lang-yaml=\"`premiumVersion`\" pulumi-lang-java=\"`premiumVersion`\"\u003e`premium_version`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enterpriseVersion`\" pulumi-lang-dotnet=\"`EnterpriseVersion`\" pulumi-lang-go=\"`enterpriseVersion`\" pulumi-lang-python=\"`enterprise_version`\" pulumi-lang-yaml=\"`enterpriseVersion`\" pulumi-lang-java=\"`enterpriseVersion`\"\u003e`enterprise_version`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`ultimateVersion`\" pulumi-lang-dotnet=\"`UltimateVersion`\" pulumi-lang-go=\"`ultimateVersion`\" pulumi-lang-python=\"`ultimate_version`\" pulumi-lang-yaml=\"`ultimateVersion`\" pulumi-lang-java=\"`ultimateVersion`\"\u003e`ultimate_version`\u003c/span\u003e.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of Cloud Firewall Instance.\n"},"userStatus":{"type":"string","description":"The user status of Cloud Firewall Instance.\n"}},"type":"object"}},"alicloud:cloudfirewall/ipsConfig:IpsConfig":{"description":"Provides a Cloud Firewall IPS Config resource.\n\nSupport interception mode modification.\n\nFor information about Cloud Firewall IPS Config and how to use it, see [What is IPS Config](https://next.api.alibabacloud.com/document/Cloudfw/2017-12-07/DescribeDefaultIPSConfig).\n\n\u003e **NOTE:** Available since v1.249.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cloudfirewall.Instance(\"default\", {paymentType: \"PayAsYouGo\"});\nconst defaultIpsConfig = new alicloud.cloudfirewall.IpsConfig(\"default\", {\n    lang: \"zh\",\n    maxSdl: 1000,\n    basicRules: 1,\n    runMode: 1,\n    ctiRules: 0,\n    patchRules: 0,\n    ruleClass: 1,\n}, {\n    dependsOn: [_default],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudfirewall.Instance(\"default\", payment_type=\"PayAsYouGo\")\ndefault_ips_config = alicloud.cloudfirewall.IpsConfig(\"default\",\n    lang=\"zh\",\n    max_sdl=1000,\n    basic_rules=1,\n    run_mode=1,\n    cti_rules=0,\n    patch_rules=0,\n    rule_class=1,\n    opts = pulumi.ResourceOptions(depends_on=[default]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.CloudFirewall.Instance(\"default\", new()\n    {\n        PaymentType = \"PayAsYouGo\",\n    });\n\n    var defaultIpsConfig = new AliCloud.CloudFirewall.IpsConfig(\"default\", new()\n    {\n        Lang = \"zh\",\n        MaxSdl = 1000,\n        BasicRules = 1,\n        RunMode = 1,\n        CtiRules = 0,\n        PatchRules = 0,\n        RuleClass = 1,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            @default,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cloudfirewall.NewInstance(ctx, \"default\", \u0026cloudfirewall.InstanceArgs{\n\t\t\tPaymentType: pulumi.String(\"PayAsYouGo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfirewall.NewIpsConfig(ctx, \"default\", \u0026cloudfirewall.IpsConfigArgs{\n\t\t\tLang:       pulumi.String(\"zh\"),\n\t\t\tMaxSdl:     pulumi.Int(1000),\n\t\t\tBasicRules: pulumi.Int(1),\n\t\t\tRunMode:    pulumi.Int(1),\n\t\t\tCtiRules:   pulumi.Int(0),\n\t\t\tPatchRules: pulumi.Int(0),\n\t\t\tRuleClass:  pulumi.Int(1),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\t_default,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.Instance;\nimport com.pulumi.alicloud.cloudfirewall.InstanceArgs;\nimport com.pulumi.alicloud.cloudfirewall.IpsConfig;\nimport com.pulumi.alicloud.cloudfirewall.IpsConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .paymentType(\"PayAsYouGo\")\n            .build());\n\n        var defaultIpsConfig = new IpsConfig(\"defaultIpsConfig\", IpsConfigArgs.builder()\n            .lang(\"zh\")\n            .maxSdl(1000)\n            .basicRules(1)\n            .runMode(1)\n            .ctiRules(0)\n            .patchRules(0)\n            .ruleClass(1)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(default_)\n                .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cloudfirewall:Instance\n    properties:\n      paymentType: PayAsYouGo\n  defaultIpsConfig:\n    type: alicloud:cloudfirewall:IpsConfig\n    name: default\n    properties:\n      lang: zh\n      maxSdl: '1000'\n      basicRules: '1'\n      runMode: '1'\n      ctiRules: '0'\n      patchRules: '0'\n      ruleClass: '1'\n    options:\n      dependsOn:\n        - ${default}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudfirewall.IpsConfig`\" pulumi-lang-dotnet=\"`alicloud.cloudfirewall.IpsConfig`\" pulumi-lang-go=\"`cloudfirewall.IpsConfig`\" pulumi-lang-python=\"`cloudfirewall.IpsConfig`\" pulumi-lang-yaml=\"`alicloud.cloudfirewall.IpsConfig`\" pulumi-lang-java=\"`alicloud.cloudfirewall.IpsConfig`\"\u003e`alicloud.cloudfirewall.IpsConfig`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudfirewall.IpsConfig`\" pulumi-lang-dotnet=\"`alicloud.cloudfirewall.IpsConfig`\" pulumi-lang-go=\"`cloudfirewall.IpsConfig`\" pulumi-lang-python=\"`cloudfirewall.IpsConfig`\" pulumi-lang-yaml=\"`alicloud.cloudfirewall.IpsConfig`\" pulumi-lang-java=\"`alicloud.cloudfirewall.IpsConfig`\"\u003e`alicloud.cloudfirewall.IpsConfig`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall IPS Config can be imported using the id, e.g.\n\n```sh\n$ terraform import alicloud_cloud_firewall_ips_config.example \n```\n\n","properties":{"basicRules":{"type":"integer","description":"Basic rule switch. Value:\n- 1: Open.\n- 0: Closed (Default).\n"},"ctiRules":{"type":"integer","description":"Threat intelligence. Value:\n- 1: Open.\n- 0: Closed (Default).\n"},"lang":{"type":"string","description":"Language\n"},"maxSdl":{"type":"integer","description":"Sensitive data detection Daily detection traffic limit. Defaults to 0.\n"},"patchRules":{"type":"integer","description":"Virtual patch switch. Value:\n- 1: Open.\n- 0: Closed (Default).\n"},"ruleClass":{"type":"integer","description":"The IPS rule Group. Value:\n- 1: loose rule Group.\n- 2: Medium rule Group.\n- 3: Strict rule groups.\n"},"runMode":{"type":"integer","description":"IPS defense mode. Value:\n- 1: Intercept mode.\n- 0: Observation mode (Default).\n"}},"inputProperties":{"basicRules":{"type":"integer","description":"Basic rule switch. Value:\n- 1: Open.\n- 0: Closed (Default).\n"},"ctiRules":{"type":"integer","description":"Threat intelligence. Value:\n- 1: Open.\n- 0: Closed (Default).\n"},"lang":{"type":"string","description":"Language\n"},"maxSdl":{"type":"integer","description":"Sensitive data detection Daily detection traffic limit. Defaults to 0.\n"},"patchRules":{"type":"integer","description":"Virtual patch switch. Value:\n- 1: Open.\n- 0: Closed (Default).\n"},"ruleClass":{"type":"integer","description":"The IPS rule Group. Value:\n- 1: loose rule Group.\n- 2: Medium rule Group.\n- 3: Strict rule groups.\n"},"runMode":{"type":"integer","description":"IPS defense mode. Value:\n- 1: Intercept mode.\n- 0: Observation mode (Default).\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpsConfig resources.\n","properties":{"basicRules":{"type":"integer","description":"Basic rule switch. Value:\n- 1: Open.\n- 0: Closed (Default).\n"},"ctiRules":{"type":"integer","description":"Threat intelligence. Value:\n- 1: Open.\n- 0: Closed (Default).\n"},"lang":{"type":"string","description":"Language\n"},"maxSdl":{"type":"integer","description":"Sensitive data detection Daily detection traffic limit. Defaults to 0.\n"},"patchRules":{"type":"integer","description":"Virtual patch switch. Value:\n- 1: Open.\n- 0: Closed (Default).\n"},"ruleClass":{"type":"integer","description":"The IPS rule Group. Value:\n- 1: loose rule Group.\n- 2: Medium rule Group.\n- 3: Strict rule groups.\n"},"runMode":{"type":"integer","description":"IPS defense mode. Value:\n- 1: Intercept mode.\n- 0: Observation mode (Default).\n"}},"type":"object"}},"alicloud:cloudfirewall/natFirewall:NatFirewall":{"description":"Provides a Cloud Firewall Nat Firewall resource. \n\nFor information about Cloud Firewall Nat Firewall and how to use it, see [What is Nat Firewall](https://www.alibabacloud.com/help/zh/cloud-firewall/developer-reference/api-cloudfw-2017-12-07-createsecurityproxy).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultikZ0gD = new alicloud.vpc.Network(\"defaultikZ0gD\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: name,\n});\nconst defaultp4O7qi = new alicloud.vpc.Switch(\"defaultp4O7qi\", {\n    vpcId: defaultikZ0gD.id,\n    cidrBlock: \"172.16.6.0/24\",\n    vswitchName: name,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst default2iRZpC = new alicloud.vpc.NatGateway(\"default2iRZpC\", {\n    eipBindMode: \"MULTI_BINDED\",\n    vpcId: defaultikZ0gD.id,\n    natGatewayName: name,\n    paymentType: \"PayAsYouGo\",\n    vswitchId: defaultp4O7qi.id,\n    natType: \"Enhanced\",\n    networkType: \"internet\",\n});\nconst defaultyiRwgs = new alicloud.ecs.EipAddress(\"defaultyiRwgs\", {addressName: name});\nconst defaults2MTuO = new alicloud.ecs.EipAssociation(\"defaults2MTuO\", {\n    instanceId: default2iRZpC.id,\n    allocationId: defaultyiRwgs.id,\n    mode: \"NAT\",\n    instanceType: \"Nat\",\n});\nconst defaultAKE43g = new alicloud.vpc.SnatEntry(\"defaultAKE43g\", {\n    snatIp: defaultyiRwgs.ipAddress,\n    snatTableId: default2iRZpC.snatTableIds,\n    sourceVswitchId: defaultp4O7qi.id,\n});\nconst defaultNatFirewall = new alicloud.cloudfirewall.NatFirewall(\"default\", {\n    natGatewayId: default2iRZpC.id,\n    natRouteEntryLists: [{\n        nexthopType: \"NatGateway\",\n        routeTableId: defaultikZ0gD.routeTableId,\n        nexthopId: default2iRZpC.id,\n        destinationCidr: \"0.0.0.0/0\",\n    }],\n    firewallSwitch: \"close\",\n    vswitchAuto: \"true\",\n    status: \"closed\",\n    regionNo: \"cn-shenzhen\",\n    lang: \"zh\",\n    proxyName: \"CFW-example\",\n    vswitchId: defaultAKE43g.sourceVswitchId,\n    strictMode: 0,\n    vpcId: defaultikZ0gD.id,\n    vswitchCidr: \"172.16.5.0/24\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefaultik_z0g_d = alicloud.vpc.Network(\"defaultikZ0gD\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=name)\ndefaultp4_o7qi = alicloud.vpc.Switch(\"defaultp4O7qi\",\n    vpc_id=defaultik_z0g_d.id,\n    cidr_block=\"172.16.6.0/24\",\n    vswitch_name=name,\n    zone_id=default.zones[0].id)\ndefault2i_r_zp_c = alicloud.vpc.NatGateway(\"default2iRZpC\",\n    eip_bind_mode=\"MULTI_BINDED\",\n    vpc_id=defaultik_z0g_d.id,\n    nat_gateway_name=name,\n    payment_type=\"PayAsYouGo\",\n    vswitch_id=defaultp4_o7qi.id,\n    nat_type=\"Enhanced\",\n    network_type=\"internet\")\ndefaultyi_rwgs = alicloud.ecs.EipAddress(\"defaultyiRwgs\", address_name=name)\ndefaults2_m_tu_o = alicloud.ecs.EipAssociation(\"defaults2MTuO\",\n    instance_id=default2i_r_zp_c.id,\n    allocation_id=defaultyi_rwgs.id,\n    mode=\"NAT\",\n    instance_type=\"Nat\")\ndefault_ake43g = alicloud.vpc.SnatEntry(\"defaultAKE43g\",\n    snat_ip=defaultyi_rwgs.ip_address,\n    snat_table_id=default2i_r_zp_c.snat_table_ids,\n    source_vswitch_id=defaultp4_o7qi.id)\ndefault_nat_firewall = alicloud.cloudfirewall.NatFirewall(\"default\",\n    nat_gateway_id=default2i_r_zp_c.id,\n    nat_route_entry_lists=[{\n        \"nexthop_type\": \"NatGateway\",\n        \"route_table_id\": defaultik_z0g_d.route_table_id,\n        \"nexthop_id\": default2i_r_zp_c.id,\n        \"destination_cidr\": \"0.0.0.0/0\",\n    }],\n    firewall_switch=\"close\",\n    vswitch_auto=\"true\",\n    status=\"closed\",\n    region_no=\"cn-shenzhen\",\n    lang=\"zh\",\n    proxy_name=\"CFW-example\",\n    vswitch_id=default_ake43g.source_vswitch_id,\n    strict_mode=0,\n    vpc_id=defaultik_z0g_d.id,\n    vswitch_cidr=\"172.16.5.0/24\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultikZ0gD = new AliCloud.Vpc.Network(\"defaultikZ0gD\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = name,\n    });\n\n    var defaultp4O7qi = new AliCloud.Vpc.Switch(\"defaultp4O7qi\", new()\n    {\n        VpcId = defaultikZ0gD.Id,\n        CidrBlock = \"172.16.6.0/24\",\n        VswitchName = name,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var default2iRZpC = new AliCloud.Vpc.NatGateway(\"default2iRZpC\", new()\n    {\n        EipBindMode = \"MULTI_BINDED\",\n        VpcId = defaultikZ0gD.Id,\n        NatGatewayName = name,\n        PaymentType = \"PayAsYouGo\",\n        VswitchId = defaultp4O7qi.Id,\n        NatType = \"Enhanced\",\n        NetworkType = \"internet\",\n    });\n\n    var defaultyiRwgs = new AliCloud.Ecs.EipAddress(\"defaultyiRwgs\", new()\n    {\n        AddressName = name,\n    });\n\n    var defaults2MTuO = new AliCloud.Ecs.EipAssociation(\"defaults2MTuO\", new()\n    {\n        InstanceId = default2iRZpC.Id,\n        AllocationId = defaultyiRwgs.Id,\n        Mode = \"NAT\",\n        InstanceType = \"Nat\",\n    });\n\n    var defaultAKE43g = new AliCloud.Vpc.SnatEntry(\"defaultAKE43g\", new()\n    {\n        SnatIp = defaultyiRwgs.IpAddress,\n        SnatTableId = default2iRZpC.SnatTableIds,\n        SourceVswitchId = defaultp4O7qi.Id,\n    });\n\n    var defaultNatFirewall = new AliCloud.CloudFirewall.NatFirewall(\"default\", new()\n    {\n        NatGatewayId = default2iRZpC.Id,\n        NatRouteEntryLists = new[]\n        {\n            new AliCloud.CloudFirewall.Inputs.NatFirewallNatRouteEntryListArgs\n            {\n                NexthopType = \"NatGateway\",\n                RouteTableId = defaultikZ0gD.RouteTableId,\n                NexthopId = default2iRZpC.Id,\n                DestinationCidr = \"0.0.0.0/0\",\n            },\n        },\n        FirewallSwitch = \"close\",\n        VswitchAuto = \"true\",\n        Status = \"closed\",\n        RegionNo = \"cn-shenzhen\",\n        Lang = \"zh\",\n        ProxyName = \"CFW-example\",\n        VswitchId = defaultAKE43g.SourceVswitchId,\n        StrictMode = 0,\n        VpcId = defaultikZ0gD.Id,\n        VswitchCidr = \"172.16.5.0/24\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultikZ0gD, err := vpc.NewNetwork(ctx, \"defaultikZ0gD\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultp4O7qi, err := vpc.NewSwitch(ctx, \"defaultp4O7qi\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultikZ0gD.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.6.0/24\"),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault2iRZpC, err := vpc.NewNatGateway(ctx, \"default2iRZpC\", \u0026vpc.NatGatewayArgs{\n\t\t\tEipBindMode:    pulumi.String(\"MULTI_BINDED\"),\n\t\t\tVpcId:          defaultikZ0gD.ID(),\n\t\t\tNatGatewayName: pulumi.String(name),\n\t\t\tPaymentType:    pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:      defaultp4O7qi.ID(),\n\t\t\tNatType:        pulumi.String(\"Enhanced\"),\n\t\t\tNetworkType:    pulumi.String(\"internet\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultyiRwgs, err := ecs.NewEipAddress(ctx, \"defaultyiRwgs\", \u0026ecs.EipAddressArgs{\n\t\t\tAddressName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEipAssociation(ctx, \"defaults2MTuO\", \u0026ecs.EipAssociationArgs{\n\t\t\tInstanceId:   default2iRZpC.ID(),\n\t\t\tAllocationId: defaultyiRwgs.ID(),\n\t\t\tMode:         pulumi.String(\"NAT\"),\n\t\t\tInstanceType: pulumi.String(\"Nat\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAKE43g, err := vpc.NewSnatEntry(ctx, \"defaultAKE43g\", \u0026vpc.SnatEntryArgs{\n\t\t\tSnatIp:          defaultyiRwgs.IpAddress,\n\t\t\tSnatTableId:     default2iRZpC.SnatTableIds,\n\t\t\tSourceVswitchId: defaultp4O7qi.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfirewall.NewNatFirewall(ctx, \"default\", \u0026cloudfirewall.NatFirewallArgs{\n\t\t\tNatGatewayId: default2iRZpC.ID(),\n\t\t\tNatRouteEntryLists: cloudfirewall.NatFirewallNatRouteEntryListArray{\n\t\t\t\t\u0026cloudfirewall.NatFirewallNatRouteEntryListArgs{\n\t\t\t\t\tNexthopType:     pulumi.String(\"NatGateway\"),\n\t\t\t\t\tRouteTableId:    defaultikZ0gD.RouteTableId,\n\t\t\t\t\tNexthopId:       default2iRZpC.ID(),\n\t\t\t\t\tDestinationCidr: pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFirewallSwitch: pulumi.String(\"close\"),\n\t\t\tVswitchAuto:    pulumi.String(\"true\"),\n\t\t\tStatus:         pulumi.String(\"closed\"),\n\t\t\tRegionNo:       pulumi.String(\"cn-shenzhen\"),\n\t\t\tLang:           pulumi.String(\"zh\"),\n\t\t\tProxyName:      pulumi.String(\"CFW-example\"),\n\t\t\tVswitchId:      defaultAKE43g.SourceVswitchId,\n\t\t\tStrictMode:     pulumi.Int(0),\n\t\t\tVpcId:          defaultikZ0gD.ID(),\n\t\t\tVswitchCidr:    pulumi.String(\"172.16.5.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.NatGateway;\nimport com.pulumi.alicloud.vpc.NatGatewayArgs;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAddressArgs;\nimport com.pulumi.alicloud.ecs.EipAssociation;\nimport com.pulumi.alicloud.ecs.EipAssociationArgs;\nimport com.pulumi.alicloud.vpc.SnatEntry;\nimport com.pulumi.alicloud.vpc.SnatEntryArgs;\nimport com.pulumi.alicloud.cloudfirewall.NatFirewall;\nimport com.pulumi.alicloud.cloudfirewall.NatFirewallArgs;\nimport com.pulumi.alicloud.cloudfirewall.inputs.NatFirewallNatRouteEntryListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultikZ0gD = new Network(\"defaultikZ0gD\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(name)\n            .build());\n\n        var defaultp4O7qi = new Switch(\"defaultp4O7qi\", SwitchArgs.builder()\n            .vpcId(defaultikZ0gD.id())\n            .cidrBlock(\"172.16.6.0/24\")\n            .vswitchName(name)\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var default2iRZpC = new NatGateway(\"default2iRZpC\", NatGatewayArgs.builder()\n            .eipBindMode(\"MULTI_BINDED\")\n            .vpcId(defaultikZ0gD.id())\n            .natGatewayName(name)\n            .paymentType(\"PayAsYouGo\")\n            .vswitchId(defaultp4O7qi.id())\n            .natType(\"Enhanced\")\n            .networkType(\"internet\")\n            .build());\n\n        var defaultyiRwgs = new EipAddress(\"defaultyiRwgs\", EipAddressArgs.builder()\n            .addressName(name)\n            .build());\n\n        var defaults2MTuO = new EipAssociation(\"defaults2MTuO\", EipAssociationArgs.builder()\n            .instanceId(default2iRZpC.id())\n            .allocationId(defaultyiRwgs.id())\n            .mode(\"NAT\")\n            .instanceType(\"Nat\")\n            .build());\n\n        var defaultAKE43g = new SnatEntry(\"defaultAKE43g\", SnatEntryArgs.builder()\n            .snatIp(defaultyiRwgs.ipAddress())\n            .snatTableId(default2iRZpC.snatTableIds())\n            .sourceVswitchId(defaultp4O7qi.id())\n            .build());\n\n        var defaultNatFirewall = new NatFirewall(\"defaultNatFirewall\", NatFirewallArgs.builder()\n            .natGatewayId(default2iRZpC.id())\n            .natRouteEntryLists(NatFirewallNatRouteEntryListArgs.builder()\n                .nexthopType(\"NatGateway\")\n                .routeTableId(defaultikZ0gD.routeTableId())\n                .nexthopId(default2iRZpC.id())\n                .destinationCidr(\"0.0.0.0/0\")\n                .build())\n            .firewallSwitch(\"close\")\n            .vswitchAuto(\"true\")\n            .status(\"closed\")\n            .regionNo(\"cn-shenzhen\")\n            .lang(\"zh\")\n            .proxyName(\"CFW-example\")\n            .vswitchId(defaultAKE43g.sourceVswitchId())\n            .strictMode(0)\n            .vpcId(defaultikZ0gD.id())\n            .vswitchCidr(\"172.16.5.0/24\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultikZ0gD:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName: ${name}\n  defaultp4O7qi:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultikZ0gD.id}\n      cidrBlock: 172.16.6.0/24\n      vswitchName: ${name}\n      zoneId: ${default.zones[0].id}\n  default2iRZpC:\n    type: alicloud:vpc:NatGateway\n    properties:\n      eipBindMode: MULTI_BINDED\n      vpcId: ${defaultikZ0gD.id}\n      natGatewayName: ${name}\n      paymentType: PayAsYouGo\n      vswitchId: ${defaultp4O7qi.id}\n      natType: Enhanced\n      networkType: internet\n  defaultyiRwgs:\n    type: alicloud:ecs:EipAddress\n    properties:\n      addressName: ${name}\n  defaults2MTuO:\n    type: alicloud:ecs:EipAssociation\n    properties:\n      instanceId: ${default2iRZpC.id}\n      allocationId: ${defaultyiRwgs.id}\n      mode: NAT\n      instanceType: Nat\n  defaultAKE43g:\n    type: alicloud:vpc:SnatEntry\n    properties:\n      snatIp: ${defaultyiRwgs.ipAddress}\n      snatTableId: ${default2iRZpC.snatTableIds}\n      sourceVswitchId: ${defaultp4O7qi.id}\n  defaultNatFirewall:\n    type: alicloud:cloudfirewall:NatFirewall\n    name: default\n    properties:\n      natGatewayId: ${default2iRZpC.id}\n      natRouteEntryLists:\n        - nexthopType: NatGateway\n          routeTableId: ${defaultikZ0gD.routeTableId}\n          nexthopId: ${default2iRZpC.id}\n          destinationCidr: 0.0.0.0/0\n      firewallSwitch: close\n      vswitchAuto: 'true'\n      status: closed\n      regionNo: cn-shenzhen\n      lang: zh\n      proxyName: CFW-example\n      vswitchId: ${defaultAKE43g.sourceVswitchId}\n      strictMode: '0'\n      vpcId: ${defaultikZ0gD.id}\n      vswitchCidr: 172.16.5.0/24\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Nat Firewall can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudfirewall/natFirewall:NatFirewall example \u003cid\u003e\n```\n\n","properties":{"firewallSwitch":{"type":"string","description":"Safety protection switch. Value:-**open**: open-**close**: close.\n"},"lang":{"type":"string","description":"Lang.\n"},"natGatewayId":{"type":"string","description":"NAT gateway ID.\n"},"natRouteEntryLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/NatFirewallNatRouteEntryList:NatFirewallNatRouteEntryList"},"description":"The list of routes to be switched by the NAT gateway. See \u003cspan pulumi-lang-nodejs=\"`natRouteEntryList`\" pulumi-lang-dotnet=\"`NatRouteEntryList`\" pulumi-lang-go=\"`natRouteEntryList`\" pulumi-lang-python=\"`nat_route_entry_list`\" pulumi-lang-yaml=\"`natRouteEntryList`\" pulumi-lang-java=\"`natRouteEntryList`\"\u003e`nat_route_entry_list`\u003c/span\u003e below.\n"},"proxyName":{"type":"string","description":"NAT firewall name.\n"},"regionNo":{"type":"string","description":"Region.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"strictMode":{"type":"integer","description":"Whether strict mode is enabled 1-Enable strict mode 0-Disable strict mode.\n"},"vpcId":{"type":"string","description":"The ID of the VPC instance.\n"},"vswitchAuto":{"type":"string","description":"Whether to use switch automatic mode. Value: **true**: Use automatic mode: **false**: Use manual mode.\n"},"vswitchCidr":{"type":"string","description":"The network segment of the virtual switch. Required for Switch automatic mode.\n"},"vswitchId":{"type":"string","description":"The switch ID. Required for switch manual mode.\n"}},"required":["natGatewayId","natRouteEntryLists","proxyName","regionNo","status","vpcId"],"inputProperties":{"firewallSwitch":{"type":"string","description":"Safety protection switch. Value:-**open**: open-**close**: close.\n"},"lang":{"type":"string","description":"Lang.\n"},"natGatewayId":{"type":"string","description":"NAT gateway ID.\n","willReplaceOnChanges":true},"natRouteEntryLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/NatFirewallNatRouteEntryList:NatFirewallNatRouteEntryList"},"description":"The list of routes to be switched by the NAT gateway. See \u003cspan pulumi-lang-nodejs=\"`natRouteEntryList`\" pulumi-lang-dotnet=\"`NatRouteEntryList`\" pulumi-lang-go=\"`natRouteEntryList`\" pulumi-lang-python=\"`nat_route_entry_list`\" pulumi-lang-yaml=\"`natRouteEntryList`\" pulumi-lang-java=\"`natRouteEntryList`\"\u003e`nat_route_entry_list`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"proxyName":{"type":"string","description":"NAT firewall name.\n","willReplaceOnChanges":true},"regionNo":{"type":"string","description":"Region.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"},"strictMode":{"type":"integer","description":"Whether strict mode is enabled 1-Enable strict mode 0-Disable strict mode.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the VPC instance.\n","willReplaceOnChanges":true},"vswitchAuto":{"type":"string","description":"Whether to use switch automatic mode. Value: **true**: Use automatic mode: **false**: Use manual mode.\n"},"vswitchCidr":{"type":"string","description":"The network segment of the virtual switch. Required for Switch automatic mode.\n"},"vswitchId":{"type":"string","description":"The switch ID. Required for switch manual mode.\n"}},"requiredInputs":["natGatewayId","natRouteEntryLists","proxyName","regionNo","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering NatFirewall resources.\n","properties":{"firewallSwitch":{"type":"string","description":"Safety protection switch. Value:-**open**: open-**close**: close.\n"},"lang":{"type":"string","description":"Lang.\n"},"natGatewayId":{"type":"string","description":"NAT gateway ID.\n","willReplaceOnChanges":true},"natRouteEntryLists":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/NatFirewallNatRouteEntryList:NatFirewallNatRouteEntryList"},"description":"The list of routes to be switched by the NAT gateway. See \u003cspan pulumi-lang-nodejs=\"`natRouteEntryList`\" pulumi-lang-dotnet=\"`NatRouteEntryList`\" pulumi-lang-go=\"`natRouteEntryList`\" pulumi-lang-python=\"`nat_route_entry_list`\" pulumi-lang-yaml=\"`natRouteEntryList`\" pulumi-lang-java=\"`natRouteEntryList`\"\u003e`nat_route_entry_list`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"proxyName":{"type":"string","description":"NAT firewall name.\n","willReplaceOnChanges":true},"regionNo":{"type":"string","description":"Region.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"},"strictMode":{"type":"integer","description":"Whether strict mode is enabled 1-Enable strict mode 0-Disable strict mode.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the VPC instance.\n","willReplaceOnChanges":true},"vswitchAuto":{"type":"string","description":"Whether to use switch automatic mode. Value: **true**: Use automatic mode: **false**: Use manual mode.\n"},"vswitchCidr":{"type":"string","description":"The network segment of the virtual switch. Required for Switch automatic mode.\n"},"vswitchId":{"type":"string","description":"The switch ID. Required for switch manual mode.\n"}},"type":"object"}},"alicloud:cloudfirewall/natFirewallControlPolicy:NatFirewallControlPolicy":{"description":"Provides a Cloud Firewall Nat Firewall Control Policy resource. Nat firewall access control policy.\n\nFor information about Cloud Firewall Nat Firewall Control Policy and how to use it, see [What is Nat Firewall Control Policy](https://www.alibabacloud.com/help/en/cloud-firewall/developer-reference/api-cloudfw-2017-12-07-createnatfirewallcontrolpolicy).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst direction = config.get(\"direction\") || \"out\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultDEiWfM = new alicloud.vpc.Network(\"defaultDEiWfM\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: name,\n});\nconst defaultFHDM3F = new alicloud.vpc.Switch(\"defaultFHDM3F\", {\n    vpcId: defaultDEiWfM.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    cidrBlock: \"172.16.2.0/24\",\n});\nconst defaultMbS2Ts = new alicloud.vpc.NatGateway(\"defaultMbS2Ts\", {\n    vpcId: defaultDEiWfM.id,\n    natGatewayName: name,\n    paymentType: \"PayAsYouGo\",\n    vswitchId: defaultFHDM3F.id,\n    natType: \"Enhanced\",\n});\nconst port = new alicloud.cloudfirewall.AddressBook(\"port\", {\n    description: std.format({\n        input: \"%s%s\",\n        args: [\n            name,\n            \"port\",\n        ],\n    }).then(invoke =\u003e invoke.result),\n    groupName: std.format({\n        input: \"%s%s\",\n        args: [\n            name,\n            \"port\",\n        ],\n    }).then(invoke =\u003e invoke.result),\n    groupType: \"port\",\n    addressLists: [\n        \"22/22\",\n        \"23/23\",\n        \"24/24\",\n    ],\n});\nconst port_update = new alicloud.cloudfirewall.AddressBook(\"port-update\", {\n    description: std.format({\n        input: \"%s%s\",\n        args: [\n            name,\n            \"port-update\",\n        ],\n    }).then(invoke =\u003e invoke.result),\n    groupName: std.format({\n        input: \"%s%s\",\n        args: [\n            name,\n            \"port-update\",\n        ],\n    }).then(invoke =\u003e invoke.result),\n    groupType: \"port\",\n    addressLists: [\n        \"22/22\",\n        \"23/23\",\n        \"24/24\",\n    ],\n});\nconst domain = new alicloud.cloudfirewall.AddressBook(\"domain\", {\n    description: std.format({\n        input: \"%s%s\",\n        args: [\n            name,\n            \"domain\",\n        ],\n    }).then(invoke =\u003e invoke.result),\n    groupName: std.format({\n        input: \"%s%s\",\n        args: [\n            name,\n            \"domain\",\n        ],\n    }).then(invoke =\u003e invoke.result),\n    groupType: \"domain\",\n    addressLists: [\n        \"alibaba.com\",\n        \"aliyun.com\",\n        \"alicloud.com\",\n    ],\n});\nconst ip = new alicloud.cloudfirewall.AddressBook(\"ip\", {\n    description: name,\n    groupName: name,\n    groupType: \"ip\",\n    addressLists: [\n        \"1.1.1.1/32\",\n        \"2.2.2.2/32\",\n    ],\n});\nconst defaultNatFirewallControlPolicy = new alicloud.cloudfirewall.NatFirewallControlPolicy(\"default\", {\n    applicationNameLists: [\"ANY\"],\n    description: name,\n    release: \"false\",\n    ipVersion: \"4\",\n    repeatDays: [\n        1,\n        2,\n        3,\n    ],\n    repeatStartTime: \"21:00\",\n    aclAction: \"log\",\n    destPortGroup: port.groupName,\n    repeatType: \"Weekly\",\n    natGatewayId: defaultMbS2Ts.id,\n    source: \"1.1.1.1/32\",\n    direction: \"out\",\n    repeatEndTime: \"21:30\",\n    startTime: 1699156800,\n    destination: \"1.1.1.1/32\",\n    endTime: 1888545600,\n    sourceType: \"net\",\n    proto: \"TCP\",\n    newOrder: \"1\",\n    destinationType: \"net\",\n    destPortType: \"group\",\n    domainResolveType: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndirection = config.get(\"direction\")\nif direction is None:\n    direction = \"out\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_d_ei_wf_m = alicloud.vpc.Network(\"defaultDEiWfM\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=name)\ndefault_fhdm3_f = alicloud.vpc.Switch(\"defaultFHDM3F\",\n    vpc_id=default_d_ei_wf_m.id,\n    zone_id=default.zones[0].id,\n    cidr_block=\"172.16.2.0/24\")\ndefault_mb_s2_ts = alicloud.vpc.NatGateway(\"defaultMbS2Ts\",\n    vpc_id=default_d_ei_wf_m.id,\n    nat_gateway_name=name,\n    payment_type=\"PayAsYouGo\",\n    vswitch_id=default_fhdm3_f.id,\n    nat_type=\"Enhanced\")\nport = alicloud.cloudfirewall.AddressBook(\"port\",\n    description=std.format(input=\"%s%s\",\n        args=[\n            name,\n            \"port\",\n        ]).result,\n    group_name=std.format(input=\"%s%s\",\n        args=[\n            name,\n            \"port\",\n        ]).result,\n    group_type=\"port\",\n    address_lists=[\n        \"22/22\",\n        \"23/23\",\n        \"24/24\",\n    ])\nport_update = alicloud.cloudfirewall.AddressBook(\"port-update\",\n    description=std.format(input=\"%s%s\",\n        args=[\n            name,\n            \"port-update\",\n        ]).result,\n    group_name=std.format(input=\"%s%s\",\n        args=[\n            name,\n            \"port-update\",\n        ]).result,\n    group_type=\"port\",\n    address_lists=[\n        \"22/22\",\n        \"23/23\",\n        \"24/24\",\n    ])\ndomain = alicloud.cloudfirewall.AddressBook(\"domain\",\n    description=std.format(input=\"%s%s\",\n        args=[\n            name,\n            \"domain\",\n        ]).result,\n    group_name=std.format(input=\"%s%s\",\n        args=[\n            name,\n            \"domain\",\n        ]).result,\n    group_type=\"domain\",\n    address_lists=[\n        \"alibaba.com\",\n        \"aliyun.com\",\n        \"alicloud.com\",\n    ])\nip = alicloud.cloudfirewall.AddressBook(\"ip\",\n    description=name,\n    group_name=name,\n    group_type=\"ip\",\n    address_lists=[\n        \"1.1.1.1/32\",\n        \"2.2.2.2/32\",\n    ])\ndefault_nat_firewall_control_policy = alicloud.cloudfirewall.NatFirewallControlPolicy(\"default\",\n    application_name_lists=[\"ANY\"],\n    description=name,\n    release=\"false\",\n    ip_version=\"4\",\n    repeat_days=[\n        1,\n        2,\n        3,\n    ],\n    repeat_start_time=\"21:00\",\n    acl_action=\"log\",\n    dest_port_group=port.group_name,\n    repeat_type=\"Weekly\",\n    nat_gateway_id=default_mb_s2_ts.id,\n    source=\"1.1.1.1/32\",\n    direction=\"out\",\n    repeat_end_time=\"21:30\",\n    start_time=1699156800,\n    destination=\"1.1.1.1/32\",\n    end_time=1888545600,\n    source_type=\"net\",\n    proto=\"TCP\",\n    new_order=\"1\",\n    destination_type=\"net\",\n    dest_port_type=\"group\",\n    domain_resolve_type=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var direction = config.Get(\"direction\") ?? \"out\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultDEiWfM = new AliCloud.Vpc.Network(\"defaultDEiWfM\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = name,\n    });\n\n    var defaultFHDM3F = new AliCloud.Vpc.Switch(\"defaultFHDM3F\", new()\n    {\n        VpcId = defaultDEiWfM.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        CidrBlock = \"172.16.2.0/24\",\n    });\n\n    var defaultMbS2Ts = new AliCloud.Vpc.NatGateway(\"defaultMbS2Ts\", new()\n    {\n        VpcId = defaultDEiWfM.Id,\n        NatGatewayName = name,\n        PaymentType = \"PayAsYouGo\",\n        VswitchId = defaultFHDM3F.Id,\n        NatType = \"Enhanced\",\n    });\n\n    var port = new AliCloud.CloudFirewall.AddressBook(\"port\", new()\n    {\n        Description = Std.Format.Invoke(new()\n        {\n            Input = \"%s%s\",\n            Args = new[]\n            {\n                name,\n                \"port\",\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        GroupName = Std.Format.Invoke(new()\n        {\n            Input = \"%s%s\",\n            Args = new[]\n            {\n                name,\n                \"port\",\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        GroupType = \"port\",\n        AddressLists = new[]\n        {\n            \"22/22\",\n            \"23/23\",\n            \"24/24\",\n        },\n    });\n\n    var port_update = new AliCloud.CloudFirewall.AddressBook(\"port-update\", new()\n    {\n        Description = Std.Format.Invoke(new()\n        {\n            Input = \"%s%s\",\n            Args = new[]\n            {\n                name,\n                \"port-update\",\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        GroupName = Std.Format.Invoke(new()\n        {\n            Input = \"%s%s\",\n            Args = new[]\n            {\n                name,\n                \"port-update\",\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        GroupType = \"port\",\n        AddressLists = new[]\n        {\n            \"22/22\",\n            \"23/23\",\n            \"24/24\",\n        },\n    });\n\n    var domain = new AliCloud.CloudFirewall.AddressBook(\"domain\", new()\n    {\n        Description = Std.Format.Invoke(new()\n        {\n            Input = \"%s%s\",\n            Args = new[]\n            {\n                name,\n                \"domain\",\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        GroupName = Std.Format.Invoke(new()\n        {\n            Input = \"%s%s\",\n            Args = new[]\n            {\n                name,\n                \"domain\",\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        GroupType = \"domain\",\n        AddressLists = new[]\n        {\n            \"alibaba.com\",\n            \"aliyun.com\",\n            \"alicloud.com\",\n        },\n    });\n\n    var ip = new AliCloud.CloudFirewall.AddressBook(\"ip\", new()\n    {\n        Description = name,\n        GroupName = name,\n        GroupType = \"ip\",\n        AddressLists = new[]\n        {\n            \"1.1.1.1/32\",\n            \"2.2.2.2/32\",\n        },\n    });\n\n    var defaultNatFirewallControlPolicy = new AliCloud.CloudFirewall.NatFirewallControlPolicy(\"default\", new()\n    {\n        ApplicationNameLists = new[]\n        {\n            \"ANY\",\n        },\n        Description = name,\n        Release = \"false\",\n        IpVersion = \"4\",\n        RepeatDays = new[]\n        {\n            1,\n            2,\n            3,\n        },\n        RepeatStartTime = \"21:00\",\n        AclAction = \"log\",\n        DestPortGroup = port.GroupName,\n        RepeatType = \"Weekly\",\n        NatGatewayId = defaultMbS2Ts.Id,\n        Source = \"1.1.1.1/32\",\n        Direction = \"out\",\n        RepeatEndTime = \"21:30\",\n        StartTime = 1699156800,\n        Destination = \"1.1.1.1/32\",\n        EndTime = 1888545600,\n        SourceType = \"net\",\n        Proto = \"TCP\",\n        NewOrder = \"1\",\n        DestinationType = \"net\",\n        DestPortType = \"group\",\n        DomainResolveType = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdirection := \"out\"\n\t\tif param := cfg.Get(\"direction\"); param != \"\" {\n\t\t\tdirection = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDEiWfM, err := vpc.NewNetwork(ctx, \"defaultDEiWfM\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultFHDM3F, err := vpc.NewSwitch(ctx, \"defaultFHDM3F\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultDEiWfM.ID(),\n\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t\tCidrBlock: pulumi.String(\"172.16.2.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultMbS2Ts, err := vpc.NewNatGateway(ctx, \"defaultMbS2Ts\", \u0026vpc.NatGatewayArgs{\n\t\t\tVpcId:          defaultDEiWfM.ID(),\n\t\t\tNatGatewayName: pulumi.String(name),\n\t\t\tPaymentType:    pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:      defaultFHDM3F.ID(),\n\t\t\tNatType:        pulumi.String(\"Enhanced\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s%s\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t\t\"port\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s%s\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t\t\"port\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tport, err := cloudfirewall.NewAddressBook(ctx, \"port\", \u0026cloudfirewall.AddressBookArgs{\n\t\t\tDescription: pulumi.String(invokeFormat.Result),\n\t\t\tGroupName:   pulumi.String(invokeFormat1.Result),\n\t\t\tGroupType:   pulumi.String(\"port\"),\n\t\t\tAddressLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"22/22\"),\n\t\t\t\tpulumi.String(\"23/23\"),\n\t\t\t\tpulumi.String(\"24/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat2, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s%s\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t\t\"port-update\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat3, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s%s\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t\t\"port-update\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfirewall.NewAddressBook(ctx, \"port-update\", \u0026cloudfirewall.AddressBookArgs{\n\t\t\tDescription: pulumi.String(invokeFormat2.Result),\n\t\t\tGroupName:   pulumi.String(invokeFormat3.Result),\n\t\t\tGroupType:   pulumi.String(\"port\"),\n\t\t\tAddressLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"22/22\"),\n\t\t\t\tpulumi.String(\"23/23\"),\n\t\t\t\tpulumi.String(\"24/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat4, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s%s\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t\t\"domain\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat5, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s%s\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t\t\"domain\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfirewall.NewAddressBook(ctx, \"domain\", \u0026cloudfirewall.AddressBookArgs{\n\t\t\tDescription: pulumi.String(invokeFormat4.Result),\n\t\t\tGroupName:   pulumi.String(invokeFormat5.Result),\n\t\t\tGroupType:   pulumi.String(\"domain\"),\n\t\t\tAddressLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"alibaba.com\"),\n\t\t\t\tpulumi.String(\"aliyun.com\"),\n\t\t\t\tpulumi.String(\"alicloud.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfirewall.NewAddressBook(ctx, \"ip\", \u0026cloudfirewall.AddressBookArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tGroupName:   pulumi.String(name),\n\t\t\tGroupType:   pulumi.String(\"ip\"),\n\t\t\tAddressLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1.1.1.1/32\"),\n\t\t\t\tpulumi.String(\"2.2.2.2/32\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfirewall.NewNatFirewallControlPolicy(ctx, \"default\", \u0026cloudfirewall.NatFirewallControlPolicyArgs{\n\t\t\tApplicationNameLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ANY\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(name),\n\t\t\tRelease:     pulumi.String(\"false\"),\n\t\t\tIpVersion:   pulumi.String(\"4\"),\n\t\t\tRepeatDays: pulumi.IntArray{\n\t\t\t\tpulumi.Int(1),\n\t\t\t\tpulumi.Int(2),\n\t\t\t\tpulumi.Int(3),\n\t\t\t},\n\t\t\tRepeatStartTime:   pulumi.String(\"21:00\"),\n\t\t\tAclAction:         pulumi.String(\"log\"),\n\t\t\tDestPortGroup:     port.GroupName,\n\t\t\tRepeatType:        pulumi.String(\"Weekly\"),\n\t\t\tNatGatewayId:      defaultMbS2Ts.ID(),\n\t\t\tSource:            pulumi.String(\"1.1.1.1/32\"),\n\t\t\tDirection:         pulumi.String(\"out\"),\n\t\t\tRepeatEndTime:     pulumi.String(\"21:30\"),\n\t\t\tStartTime:         pulumi.Int(1699156800),\n\t\t\tDestination:       pulumi.String(\"1.1.1.1/32\"),\n\t\t\tEndTime:           pulumi.Int(1888545600),\n\t\t\tSourceType:        pulumi.String(\"net\"),\n\t\t\tProto:             pulumi.String(\"TCP\"),\n\t\t\tNewOrder:          pulumi.String(\"1\"),\n\t\t\tDestinationType:   pulumi.String(\"net\"),\n\t\t\tDestPortType:      pulumi.String(\"group\"),\n\t\t\tDomainResolveType: pulumi.Int(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.NatGateway;\nimport com.pulumi.alicloud.vpc.NatGatewayArgs;\nimport com.pulumi.alicloud.cloudfirewall.AddressBook;\nimport com.pulumi.alicloud.cloudfirewall.AddressBookArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.cloudfirewall.NatFirewallControlPolicy;\nimport com.pulumi.alicloud.cloudfirewall.NatFirewallControlPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var direction = config.get(\"direction\").orElse(\"out\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultDEiWfM = new Network(\"defaultDEiWfM\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(name)\n            .build());\n\n        var defaultFHDM3F = new Switch(\"defaultFHDM3F\", SwitchArgs.builder()\n            .vpcId(defaultDEiWfM.id())\n            .zoneId(default_.zones()[0].id())\n            .cidrBlock(\"172.16.2.0/24\")\n            .build());\n\n        var defaultMbS2Ts = new NatGateway(\"defaultMbS2Ts\", NatGatewayArgs.builder()\n            .vpcId(defaultDEiWfM.id())\n            .natGatewayName(name)\n            .paymentType(\"PayAsYouGo\")\n            .vswitchId(defaultFHDM3F.id())\n            .natType(\"Enhanced\")\n            .build());\n\n        var port = new AddressBook(\"port\", AddressBookArgs.builder()\n            .description(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s%s\")\n                .args(                \n                    name,\n                    \"port\")\n                .build()).result())\n            .groupName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s%s\")\n                .args(                \n                    name,\n                    \"port\")\n                .build()).result())\n            .groupType(\"port\")\n            .addressLists(            \n                \"22/22\",\n                \"23/23\",\n                \"24/24\")\n            .build());\n\n        var port_update = new AddressBook(\"port-update\", AddressBookArgs.builder()\n            .description(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s%s\")\n                .args(                \n                    name,\n                    \"port-update\")\n                .build()).result())\n            .groupName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s%s\")\n                .args(                \n                    name,\n                    \"port-update\")\n                .build()).result())\n            .groupType(\"port\")\n            .addressLists(            \n                \"22/22\",\n                \"23/23\",\n                \"24/24\")\n            .build());\n\n        var domain = new AddressBook(\"domain\", AddressBookArgs.builder()\n            .description(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s%s\")\n                .args(                \n                    name,\n                    \"domain\")\n                .build()).result())\n            .groupName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s%s\")\n                .args(                \n                    name,\n                    \"domain\")\n                .build()).result())\n            .groupType(\"domain\")\n            .addressLists(            \n                \"alibaba.com\",\n                \"aliyun.com\",\n                \"alicloud.com\")\n            .build());\n\n        var ip = new AddressBook(\"ip\", AddressBookArgs.builder()\n            .description(name)\n            .groupName(name)\n            .groupType(\"ip\")\n            .addressLists(            \n                \"1.1.1.1/32\",\n                \"2.2.2.2/32\")\n            .build());\n\n        var defaultNatFirewallControlPolicy = new NatFirewallControlPolicy(\"defaultNatFirewallControlPolicy\", NatFirewallControlPolicyArgs.builder()\n            .applicationNameLists(\"ANY\")\n            .description(name)\n            .release(\"false\")\n            .ipVersion(\"4\")\n            .repeatDays(            \n                1,\n                2,\n                3)\n            .repeatStartTime(\"21:00\")\n            .aclAction(\"log\")\n            .destPortGroup(port.groupName())\n            .repeatType(\"Weekly\")\n            .natGatewayId(defaultMbS2Ts.id())\n            .source(\"1.1.1.1/32\")\n            .direction(\"out\")\n            .repeatEndTime(\"21:30\")\n            .startTime(1699156800)\n            .destination(\"1.1.1.1/32\")\n            .endTime(1888545600)\n            .sourceType(\"net\")\n            .proto(\"TCP\")\n            .newOrder(\"1\")\n            .destinationType(\"net\")\n            .destPortType(\"group\")\n            .domainResolveType(0)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  direction:\n    type: string\n    default: out\nresources:\n  defaultDEiWfM:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName: ${name}\n  defaultFHDM3F:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultDEiWfM.id}\n      zoneId: ${default.zones[0].id}\n      cidrBlock: 172.16.2.0/24\n  defaultMbS2Ts:\n    type: alicloud:vpc:NatGateway\n    properties:\n      vpcId: ${defaultDEiWfM.id}\n      natGatewayName: ${name}\n      paymentType: PayAsYouGo\n      vswitchId: ${defaultFHDM3F.id}\n      natType: Enhanced\n  port:\n    type: alicloud:cloudfirewall:AddressBook\n    properties:\n      description:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s%s'\n            args:\n              - ${name}\n              - port\n          return: result\n      groupName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s%s'\n            args:\n              - ${name}\n              - port\n          return: result\n      groupType: port\n      addressLists:\n        - 22/22\n        - 23/23\n        - 24/24\n  port-update:\n    type: alicloud:cloudfirewall:AddressBook\n    properties:\n      description:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s%s'\n            args:\n              - ${name}\n              - port-update\n          return: result\n      groupName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s%s'\n            args:\n              - ${name}\n              - port-update\n          return: result\n      groupType: port\n      addressLists:\n        - 22/22\n        - 23/23\n        - 24/24\n  domain:\n    type: alicloud:cloudfirewall:AddressBook\n    properties:\n      description:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s%s'\n            args:\n              - ${name}\n              - domain\n          return: result\n      groupName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s%s'\n            args:\n              - ${name}\n              - domain\n          return: result\n      groupType: domain\n      addressLists:\n        - alibaba.com\n        - aliyun.com\n        - alicloud.com\n  ip:\n    type: alicloud:cloudfirewall:AddressBook\n    properties:\n      description: ${name}\n      groupName: ${name}\n      groupType: ip\n      addressLists:\n        - 1.1.1.1/32\n        - 2.2.2.2/32\n  defaultNatFirewallControlPolicy:\n    type: alicloud:cloudfirewall:NatFirewallControlPolicy\n    name: default\n    properties:\n      applicationNameLists:\n        - ANY\n      description: ${name}\n      release: 'false'\n      ipVersion: '4'\n      repeatDays:\n        - '1'\n        - '2'\n        - '3'\n      repeatStartTime: 21:00\n      aclAction: log\n      destPortGroup: ${port.groupName}\n      repeatType: Weekly\n      natGatewayId: ${defaultMbS2Ts.id}\n      source: 1.1.1.1/32\n      direction: out\n      repeatEndTime: 21:30\n      startTime: '1699156800'\n      destination: 1.1.1.1/32\n      endTime: '1888545600'\n      sourceType: net\n      proto: TCP\n      newOrder: '1'\n      destinationType: net\n      destPortType: group\n      domainResolveType: '0'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Nat Firewall Control Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudfirewall/natFirewallControlPolicy:NatFirewallControlPolicy example \u003cacl_uuid\u003e:\u003cnat_gateway_id\u003e:\u003cdirection\u003e\n```\n\n","properties":{"aclAction":{"type":"string","description":"The method (action) of access traffic passing through Cloud Firewall in the security access control policy. Valid values:\n- **accept**: Release\n- **drop**: Refused\n- **log**: Observation.\n"},"aclUuid":{"type":"string","description":"The unique ID of the security access control policy.\n\u003e **NOTE:**  To modify a security access control policy, you need to provide the unique ID of the policy. You can call the DescribeNatFirewallControlPolicy interface to obtain the ID.\n"},"applicationNameLists":{"type":"array","items":{"type":"string"},"description":"The list of application types supported by the access control policy.\n"},"createTime":{"type":"integer","description":"The time when the policy was created.\n"},"description":{"type":"string","description":"The description of the access control policy.\n"},"destPort":{"type":"string","description":"The destination port of traffic access in the access control policy. Value:\n- When the protocol type is set to ICMP, the value of DestPort is null.\n\u003e **NOTE:**  When the protocol type is ICMP, access control on the destination port is not supported.\n- When the protocol type is TCP, UDP, or ANY, and the destination port type (DestPortType) IS group, the value of DestPort is null.\n\u003e **NOTE:**  When you select group (destination port address book) for the destination port type of the access control policy, you do not need to set a specific destination port number. All ports that need to be controlled by this access control policy are included in the destination port address book.\n- When the protocol type is TCP, UDP, or ANY, and the destination port type (DestPortType) is port, the value of DestPort is the destination port number.\n"},"destPortGroup":{"type":"string","description":"The address book name of the destination port of the access traffic in the access control policy.\n\u003e **NOTE:**  When DestPortType is set to group, you need to set the destination port address book name.\n"},"destPortType":{"type":"string","description":"The destination port type of the access traffic in the security access control policy.\n- **port**: port\n- **group**: Port Address Book.\n"},"destination":{"type":"string","description":"The destination address segment in the access control policy. Valid values:\n- When DestinationType is net, Destination is the Destination CIDR. For example: 1.2.XX.XX/24\n- When DestinationType IS group, Destination is the name of the Destination address book. For example:\u003cspan pulumi-lang-nodejs=\" dbGroup\n\" pulumi-lang-dotnet=\" DbGroup\n\" pulumi-lang-go=\" dbGroup\n\" pulumi-lang-python=\" db_group\n\" pulumi-lang-yaml=\" dbGroup\n\" pulumi-lang-java=\" dbGroup\n\"\u003e db_group\n\u003c/span\u003e- When DestinationType is domain, Destination is the Destination domain name. For example: * .aliyuncs.com\n- When DestinationType is location, Destination is the Destination region. For example: \\[\"BJ11\", \"ZB\"\\].\n"},"destinationType":{"type":"string","description":"The destination address type in the access control policy. Valid values:\n- **net**: Destination Network segment (CIDR address)\n- **group**: Destination Address Book\n- **domain**: the destination domain name.\n"},"direction":{"type":"string","description":"The traffic direction of the access control policy. Valid values:\n- **out**: Internal and external traffic access control.\n"},"domainResolveType":{"type":"integer","description":"The domain name resolution method of the access control policy. The policy is enabled by default after it is created. Valid values:\n- **0**: Based on FQDN\n- **1**: DNS-based dynamic resolution\n- **2**: dynamic resolution based on FQDN and DNS.\n"},"endTime":{"type":"integer","description":"The end time of the policy validity period of the access control policy. Expresses using the second-level timestamp format. Must be full or half time and at least half an hour greater than the start time.\n\u003e **NOTE:**  When RepeatType is set to permit, EndTime is null. When the RepeatType is None, Daily, Weekly, or Monthly, EndTime must have a value and you need to set the end time.\n"},"ipVersion":{"type":"string","description":"Supported IP address version. Value:\n- **4** (default): indicates the IPv4 address.\n"},"natGatewayId":{"type":"string","description":"The ID of the NAT gateway instance.\n"},"newOrder":{"type":"string","description":"The priority for the access control policy to take effect. The priority number increases sequentially from 1, and the smaller the priority number, the higher the priority.\n"},"proto":{"type":"string","description":"The security protocol type for traffic access in the access control policy. Valid values:\n- ANY (indicates that all protocol types are queried)\n- TCP\n- UDP\n- ICMP.\n"},"release":{"type":"string","description":"The enabled status of the access control policy. The policy is enabled by default after it is created. Value:\n- **true**: Enable access control policy\n- **false**: Do not enable access control policies.\n"},"repeatDays":{"type":"array","items":{"type":"integer"},"description":"Collection of recurring dates for the policy validity period of the access control policy.\n- When RepeatType is 'Permanent', 'None', 'Daily', RepeatDays is an empty collection. For example:[]\n- When RepeatType is Weekly, RepeatDays cannot be empty. For example:[\"0\", \"6\"]. When the RepeatType is set to Weekly, RepeatDays cannot be repeated.\n- RepeatDays cannot be empty when RepeatType is 'Monthly. For example:[1, 31]. When RepeatType is set to Monthly, RepeatDays cannot be repeated.\n"},"repeatEndTime":{"type":"string","description":"The recurring end time of the policy validity period of the access control policy. For example: 23:30, it must be the whole point or half point time, and at least half an hour greater than the repeat start time.\n\u003e **NOTE:**  When RepeatType is set to normal or None, RepeatEndTime is null. When the RepeatType is Daily, Weekly, or Monthly, the RepeatEndTime must have a value, and you need to set the repeat end time.\n"},"repeatStartTime":{"type":"string","description":"The recurring start time of the policy validity period of the access control policy. For example: 08:00, it must be the whole point or half point time, and at least half an hour less than the repeat end time.\n\u003e **NOTE:**  When RepeatType is set to permit or None, RepeatStartTime is empty. When the RepeatType is Daily, Weekly, or Monthly, the RepeatStartTime must have a value and you need to set the repeat start time.\n"},"repeatType":{"type":"string","description":"The type of repetition for the policy validity period of the access control policy. Value:\n- **Permit** (default): Always\n- **None**: Specify a single time\n- **Daily**: Daily\n- **Weekly**: Weekly\n- **Monthly**: Monthly.\n"},"source":{"type":"string","description":"The source address in the access control policy. Valid values:\n- When **SourceType** is set to 'net', Source is the Source CIDR address. For example: 10.2.4.0/24\n- When **SourceType** is set to 'group', Source is the name of the Source address book. For example: db_group.\n"},"sourceType":{"type":"string","description":"The source address type in the access control policy. Valid values:\n- **net**: the source network segment (CIDR address)\n- **group**: source address book\n"},"startTime":{"type":"integer","description":"The start time of the policy validity period of the access control policy. Expresses using the second-level timestamp format. It must be a full or half hour and at least half an hour less than the end time.\n\u003e **NOTE:**  When RepeatType is set to normal, StartTime is null. When the RepeatType is None, Daily, Weekly, or Monthly, StartTime must have a value and you need to set the start time.\n"}},"required":["aclAction","aclUuid","applicationNameLists","createTime","description","destPort","destPortType","destination","destinationType","direction","natGatewayId","newOrder","proto","release","repeatType","source","sourceType"],"inputProperties":{"aclAction":{"type":"string","description":"The method (action) of access traffic passing through Cloud Firewall in the security access control policy. Valid values:\n- **accept**: Release\n- **drop**: Refused\n- **log**: Observation.\n"},"applicationNameLists":{"type":"array","items":{"type":"string"},"description":"The list of application types supported by the access control policy.\n"},"description":{"type":"string","description":"The description of the access control policy.\n"},"destPort":{"type":"string","description":"The destination port of traffic access in the access control policy. Value:\n- When the protocol type is set to ICMP, the value of DestPort is null.\n\u003e **NOTE:**  When the protocol type is ICMP, access control on the destination port is not supported.\n- When the protocol type is TCP, UDP, or ANY, and the destination port type (DestPortType) IS group, the value of DestPort is null.\n\u003e **NOTE:**  When you select group (destination port address book) for the destination port type of the access control policy, you do not need to set a specific destination port number. All ports that need to be controlled by this access control policy are included in the destination port address book.\n- When the protocol type is TCP, UDP, or ANY, and the destination port type (DestPortType) is port, the value of DestPort is the destination port number.\n"},"destPortGroup":{"type":"string","description":"The address book name of the destination port of the access traffic in the access control policy.\n\u003e **NOTE:**  When DestPortType is set to group, you need to set the destination port address book name.\n"},"destPortType":{"type":"string","description":"The destination port type of the access traffic in the security access control policy.\n- **port**: port\n- **group**: Port Address Book.\n"},"destination":{"type":"string","description":"The destination address segment in the access control policy. Valid values:\n- When DestinationType is net, Destination is the Destination CIDR. For example: 1.2.XX.XX/24\n- When DestinationType IS group, Destination is the name of the Destination address book. For example:\u003cspan pulumi-lang-nodejs=\" dbGroup\n\" pulumi-lang-dotnet=\" DbGroup\n\" pulumi-lang-go=\" dbGroup\n\" pulumi-lang-python=\" db_group\n\" pulumi-lang-yaml=\" dbGroup\n\" pulumi-lang-java=\" dbGroup\n\"\u003e db_group\n\u003c/span\u003e- When DestinationType is domain, Destination is the Destination domain name. For example: * .aliyuncs.com\n- When DestinationType is location, Destination is the Destination region. For example: \\[\"BJ11\", \"ZB\"\\].\n"},"destinationType":{"type":"string","description":"The destination address type in the access control policy. Valid values:\n- **net**: Destination Network segment (CIDR address)\n- **group**: Destination Address Book\n- **domain**: the destination domain name.\n"},"direction":{"type":"string","description":"The traffic direction of the access control policy. Valid values:\n- **out**: Internal and external traffic access control.\n","willReplaceOnChanges":true},"domainResolveType":{"type":"integer","description":"The domain name resolution method of the access control policy. The policy is enabled by default after it is created. Valid values:\n- **0**: Based on FQDN\n- **1**: DNS-based dynamic resolution\n- **2**: dynamic resolution based on FQDN and DNS.\n"},"endTime":{"type":"integer","description":"The end time of the policy validity period of the access control policy. Expresses using the second-level timestamp format. Must be full or half time and at least half an hour greater than the start time.\n\u003e **NOTE:**  When RepeatType is set to permit, EndTime is null. When the RepeatType is None, Daily, Weekly, or Monthly, EndTime must have a value and you need to set the end time.\n"},"ipVersion":{"type":"string","description":"Supported IP address version. Value:\n- **4** (default): indicates the IPv4 address.\n"},"natGatewayId":{"type":"string","description":"The ID of the NAT gateway instance.\n","willReplaceOnChanges":true},"newOrder":{"type":"string","description":"The priority for the access control policy to take effect. The priority number increases sequentially from 1, and the smaller the priority number, the higher the priority.\n"},"proto":{"type":"string","description":"The security protocol type for traffic access in the access control policy. Valid values:\n- ANY (indicates that all protocol types are queried)\n- TCP\n- UDP\n- ICMP.\n"},"release":{"type":"string","description":"The enabled status of the access control policy. The policy is enabled by default after it is created. Value:\n- **true**: Enable access control policy\n- **false**: Do not enable access control policies.\n"},"repeatDays":{"type":"array","items":{"type":"integer"},"description":"Collection of recurring dates for the policy validity period of the access control policy.\n- When RepeatType is 'Permanent', 'None', 'Daily', RepeatDays is an empty collection. For example:[]\n- When RepeatType is Weekly, RepeatDays cannot be empty. For example:[\"0\", \"6\"]. When the RepeatType is set to Weekly, RepeatDays cannot be repeated.\n- RepeatDays cannot be empty when RepeatType is 'Monthly. For example:[1, 31]. When RepeatType is set to Monthly, RepeatDays cannot be repeated.\n"},"repeatEndTime":{"type":"string","description":"The recurring end time of the policy validity period of the access control policy. For example: 23:30, it must be the whole point or half point time, and at least half an hour greater than the repeat start time.\n\u003e **NOTE:**  When RepeatType is set to normal or None, RepeatEndTime is null. When the RepeatType is Daily, Weekly, or Monthly, the RepeatEndTime must have a value, and you need to set the repeat end time.\n"},"repeatStartTime":{"type":"string","description":"The recurring start time of the policy validity period of the access control policy. For example: 08:00, it must be the whole point or half point time, and at least half an hour less than the repeat end time.\n\u003e **NOTE:**  When RepeatType is set to permit or None, RepeatStartTime is empty. When the RepeatType is Daily, Weekly, or Monthly, the RepeatStartTime must have a value and you need to set the repeat start time.\n"},"repeatType":{"type":"string","description":"The type of repetition for the policy validity period of the access control policy. Value:\n- **Permit** (default): Always\n- **None**: Specify a single time\n- **Daily**: Daily\n- **Weekly**: Weekly\n- **Monthly**: Monthly.\n"},"source":{"type":"string","description":"The source address in the access control policy. Valid values:\n- When **SourceType** is set to 'net', Source is the Source CIDR address. For example: 10.2.4.0/24\n- When **SourceType** is set to 'group', Source is the name of the Source address book. For example: db_group.\n"},"sourceType":{"type":"string","description":"The source address type in the access control policy. Valid values:\n- **net**: the source network segment (CIDR address)\n- **group**: source address book\n"},"startTime":{"type":"integer","description":"The start time of the policy validity period of the access control policy. Expresses using the second-level timestamp format. It must be a full or half hour and at least half an hour less than the end time.\n\u003e **NOTE:**  When RepeatType is set to normal, StartTime is null. When the RepeatType is None, Daily, Weekly, or Monthly, StartTime must have a value and you need to set the start time.\n"}},"requiredInputs":["aclAction","applicationNameLists","description","destination","destinationType","direction","natGatewayId","newOrder","proto","source","sourceType"],"stateInputs":{"description":"Input properties used for looking up and filtering NatFirewallControlPolicy resources.\n","properties":{"aclAction":{"type":"string","description":"The method (action) of access traffic passing through Cloud Firewall in the security access control policy. Valid values:\n- **accept**: Release\n- **drop**: Refused\n- **log**: Observation.\n"},"aclUuid":{"type":"string","description":"The unique ID of the security access control policy.\n\u003e **NOTE:**  To modify a security access control policy, you need to provide the unique ID of the policy. You can call the DescribeNatFirewallControlPolicy interface to obtain the ID.\n"},"applicationNameLists":{"type":"array","items":{"type":"string"},"description":"The list of application types supported by the access control policy.\n"},"createTime":{"type":"integer","description":"The time when the policy was created.\n"},"description":{"type":"string","description":"The description of the access control policy.\n"},"destPort":{"type":"string","description":"The destination port of traffic access in the access control policy. Value:\n- When the protocol type is set to ICMP, the value of DestPort is null.\n\u003e **NOTE:**  When the protocol type is ICMP, access control on the destination port is not supported.\n- When the protocol type is TCP, UDP, or ANY, and the destination port type (DestPortType) IS group, the value of DestPort is null.\n\u003e **NOTE:**  When you select group (destination port address book) for the destination port type of the access control policy, you do not need to set a specific destination port number. All ports that need to be controlled by this access control policy are included in the destination port address book.\n- When the protocol type is TCP, UDP, or ANY, and the destination port type (DestPortType) is port, the value of DestPort is the destination port number.\n"},"destPortGroup":{"type":"string","description":"The address book name of the destination port of the access traffic in the access control policy.\n\u003e **NOTE:**  When DestPortType is set to group, you need to set the destination port address book name.\n"},"destPortType":{"type":"string","description":"The destination port type of the access traffic in the security access control policy.\n- **port**: port\n- **group**: Port Address Book.\n"},"destination":{"type":"string","description":"The destination address segment in the access control policy. Valid values:\n- When DestinationType is net, Destination is the Destination CIDR. For example: 1.2.XX.XX/24\n- When DestinationType IS group, Destination is the name of the Destination address book. For example:\u003cspan pulumi-lang-nodejs=\" dbGroup\n\" pulumi-lang-dotnet=\" DbGroup\n\" pulumi-lang-go=\" dbGroup\n\" pulumi-lang-python=\" db_group\n\" pulumi-lang-yaml=\" dbGroup\n\" pulumi-lang-java=\" dbGroup\n\"\u003e db_group\n\u003c/span\u003e- When DestinationType is domain, Destination is the Destination domain name. For example: * .aliyuncs.com\n- When DestinationType is location, Destination is the Destination region. For example: \\[\"BJ11\", \"ZB\"\\].\n"},"destinationType":{"type":"string","description":"The destination address type in the access control policy. Valid values:\n- **net**: Destination Network segment (CIDR address)\n- **group**: Destination Address Book\n- **domain**: the destination domain name.\n"},"direction":{"type":"string","description":"The traffic direction of the access control policy. Valid values:\n- **out**: Internal and external traffic access control.\n","willReplaceOnChanges":true},"domainResolveType":{"type":"integer","description":"The domain name resolution method of the access control policy. The policy is enabled by default after it is created. Valid values:\n- **0**: Based on FQDN\n- **1**: DNS-based dynamic resolution\n- **2**: dynamic resolution based on FQDN and DNS.\n"},"endTime":{"type":"integer","description":"The end time of the policy validity period of the access control policy. Expresses using the second-level timestamp format. Must be full or half time and at least half an hour greater than the start time.\n\u003e **NOTE:**  When RepeatType is set to permit, EndTime is null. When the RepeatType is None, Daily, Weekly, or Monthly, EndTime must have a value and you need to set the end time.\n"},"ipVersion":{"type":"string","description":"Supported IP address version. Value:\n- **4** (default): indicates the IPv4 address.\n"},"natGatewayId":{"type":"string","description":"The ID of the NAT gateway instance.\n","willReplaceOnChanges":true},"newOrder":{"type":"string","description":"The priority for the access control policy to take effect. The priority number increases sequentially from 1, and the smaller the priority number, the higher the priority.\n"},"proto":{"type":"string","description":"The security protocol type for traffic access in the access control policy. Valid values:\n- ANY (indicates that all protocol types are queried)\n- TCP\n- UDP\n- ICMP.\n"},"release":{"type":"string","description":"The enabled status of the access control policy. The policy is enabled by default after it is created. Value:\n- **true**: Enable access control policy\n- **false**: Do not enable access control policies.\n"},"repeatDays":{"type":"array","items":{"type":"integer"},"description":"Collection of recurring dates for the policy validity period of the access control policy.\n- When RepeatType is 'Permanent', 'None', 'Daily', RepeatDays is an empty collection. For example:[]\n- When RepeatType is Weekly, RepeatDays cannot be empty. For example:[\"0\", \"6\"]. When the RepeatType is set to Weekly, RepeatDays cannot be repeated.\n- RepeatDays cannot be empty when RepeatType is 'Monthly. For example:[1, 31]. When RepeatType is set to Monthly, RepeatDays cannot be repeated.\n"},"repeatEndTime":{"type":"string","description":"The recurring end time of the policy validity period of the access control policy. For example: 23:30, it must be the whole point or half point time, and at least half an hour greater than the repeat start time.\n\u003e **NOTE:**  When RepeatType is set to normal or None, RepeatEndTime is null. When the RepeatType is Daily, Weekly, or Monthly, the RepeatEndTime must have a value, and you need to set the repeat end time.\n"},"repeatStartTime":{"type":"string","description":"The recurring start time of the policy validity period of the access control policy. For example: 08:00, it must be the whole point or half point time, and at least half an hour less than the repeat end time.\n\u003e **NOTE:**  When RepeatType is set to permit or None, RepeatStartTime is empty. When the RepeatType is Daily, Weekly, or Monthly, the RepeatStartTime must have a value and you need to set the repeat start time.\n"},"repeatType":{"type":"string","description":"The type of repetition for the policy validity period of the access control policy. Value:\n- **Permit** (default): Always\n- **None**: Specify a single time\n- **Daily**: Daily\n- **Weekly**: Weekly\n- **Monthly**: Monthly.\n"},"source":{"type":"string","description":"The source address in the access control policy. Valid values:\n- When **SourceType** is set to 'net', Source is the Source CIDR address. For example: 10.2.4.0/24\n- When **SourceType** is set to 'group', Source is the name of the Source address book. For example: db_group.\n"},"sourceType":{"type":"string","description":"The source address type in the access control policy. Valid values:\n- **net**: the source network segment (CIDR address)\n- **group**: source address book\n"},"startTime":{"type":"integer","description":"The start time of the policy validity period of the access control policy. Expresses using the second-level timestamp format. It must be a full or half hour and at least half an hour less than the end time.\n\u003e **NOTE:**  When RepeatType is set to normal, StartTime is null. When the RepeatType is None, Daily, Weekly, or Monthly, StartTime must have a value and you need to set the start time.\n"}},"type":"object"}},"alicloud:cloudfirewall/policyAdvancedConfig:PolicyAdvancedConfig":{"description":"Provides a Cloud Firewall Policy Advanced Config resource.\n\nAccess Control Advanced Configuration.\n\nFor information about Cloud Firewall Policy Advanced Config and how to use it, see [What is Policy Advanced Config](https://next.api.alibabacloud.com/document/Cloudfw/2017-12-07/ModifyPolicyAdvancedConfig).\n\n\u003e **NOTE:** Available since v1.253.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cloudfirewall.PolicyAdvancedConfig(\"default\", {internetSwitch: \"off\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudfirewall.PolicyAdvancedConfig(\"default\", internet_switch=\"off\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.CloudFirewall.PolicyAdvancedConfig(\"default\", new()\n    {\n        InternetSwitch = \"off\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cloudfirewall.NewPolicyAdvancedConfig(ctx, \"default\", \u0026cloudfirewall.PolicyAdvancedConfigArgs{\n\t\t\tInternetSwitch: pulumi.String(\"off\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.PolicyAdvancedConfig;\nimport com.pulumi.alicloud.cloudfirewall.PolicyAdvancedConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new PolicyAdvancedConfig(\"default\", PolicyAdvancedConfigArgs.builder()\n            .internetSwitch(\"off\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cloudfirewall:PolicyAdvancedConfig\n    properties:\n      internetSwitch: off\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudfirewall.PolicyAdvancedConfig`\" pulumi-lang-dotnet=\"`alicloud.cloudfirewall.PolicyAdvancedConfig`\" pulumi-lang-go=\"`cloudfirewall.PolicyAdvancedConfig`\" pulumi-lang-python=\"`cloudfirewall.PolicyAdvancedConfig`\" pulumi-lang-yaml=\"`alicloud.cloudfirewall.PolicyAdvancedConfig`\" pulumi-lang-java=\"`alicloud.cloudfirewall.PolicyAdvancedConfig`\"\u003e`alicloud.cloudfirewall.PolicyAdvancedConfig`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudfirewall.PolicyAdvancedConfig`\" pulumi-lang-dotnet=\"`alicloud.cloudfirewall.PolicyAdvancedConfig`\" pulumi-lang-go=\"`cloudfirewall.PolicyAdvancedConfig`\" pulumi-lang-python=\"`cloudfirewall.PolicyAdvancedConfig`\" pulumi-lang-yaml=\"`alicloud.cloudfirewall.PolicyAdvancedConfig`\" pulumi-lang-java=\"`alicloud.cloudfirewall.PolicyAdvancedConfig`\"\u003e`alicloud.cloudfirewall.PolicyAdvancedConfig`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Policy Advanced Config can be imported using the id, e.g.\n\n```sh\n$ terraform import alicloud_cloud_firewall_policy_advanced_config.example \n```\n\n","properties":{"internetSwitch":{"type":"string","description":"Access control policy strict mode of on-state. Valid values:\n"}},"required":["internetSwitch"],"inputProperties":{"internetSwitch":{"type":"string","description":"Access control policy strict mode of on-state. Valid values:\n"}},"requiredInputs":["internetSwitch"],"stateInputs":{"description":"Input properties used for looking up and filtering PolicyAdvancedConfig resources.\n","properties":{"internetSwitch":{"type":"string","description":"Access control policy strict mode of on-state. Valid values:\n"}},"type":"object"}},"alicloud:cloudfirewall/privateDns:PrivateDns":{"description":"Provides a Cloud Firewall Private Dns resource.\n\nPrivate DNS Endpoint.\n\nFor information about Cloud Firewall Private Dns and how to use it, see [What is Private Dns](https://next.api.alibabacloud.com/document/Cloudfw/2017-12-07/CreatePrivateDnsEndpoint).\n\n\u003e **NOTE:** Available since v1.264.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst current = alicloud.getAccount({});\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: \"yqc-example-vpc\",\n});\nconst vpcvsw1 = new alicloud.vpc.Switch(\"vpcvsw1\", {\n    vpcId: vpc.id,\n    zoneId: \"cn-hangzhou-i\",\n    cidrBlock: \"172.16.3.0/24\",\n});\nconst vpcvsw2 = new alicloud.vpc.Switch(\"vpcvsw2\", {\n    vpcId: vpc.id,\n    zoneId: \"cn-hangzhou-j\",\n    cidrBlock: \"172.16.4.0/24\",\n});\nconst _default = new alicloud.cloudfirewall.PrivateDns(\"default\", {\n    regionNo: \"cn-hangzhou\",\n    accessInstanceName: name,\n    port: 53,\n    primaryVswitchId: vpcvsw1.id,\n    standbyDns: \"4.4.4.4\",\n    primaryDns: \"8.8.8.8\",\n    vpcId: vpc.id,\n    privateDnsType: \"Custom\",\n    firewallTypes: [\"internet\"],\n    ipProtocol: \"UDP\",\n    standbyVswitchId: vpcvsw2.id,\n    domainNameLists: [\"www.aliyun.com\"],\n    primaryVswitchIp: \"172.16.3.1\",\n    standbyVswitchIp: \"172.16.4.1\",\n    memberUid: current.then(current =\u003e current.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncurrent = alicloud.get_account()\nvpc = alicloud.vpc.Network(\"vpc\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=\"yqc-example-vpc\")\nvpcvsw1 = alicloud.vpc.Switch(\"vpcvsw1\",\n    vpc_id=vpc.id,\n    zone_id=\"cn-hangzhou-i\",\n    cidr_block=\"172.16.3.0/24\")\nvpcvsw2 = alicloud.vpc.Switch(\"vpcvsw2\",\n    vpc_id=vpc.id,\n    zone_id=\"cn-hangzhou-j\",\n    cidr_block=\"172.16.4.0/24\")\ndefault = alicloud.cloudfirewall.PrivateDns(\"default\",\n    region_no=\"cn-hangzhou\",\n    access_instance_name=name,\n    port=53,\n    primary_vswitch_id=vpcvsw1.id,\n    standby_dns=\"4.4.4.4\",\n    primary_dns=\"8.8.8.8\",\n    vpc_id=vpc.id,\n    private_dns_type=\"Custom\",\n    firewall_types=[\"internet\"],\n    ip_protocol=\"UDP\",\n    standby_vswitch_id=vpcvsw2.id,\n    domain_name_lists=[\"www.aliyun.com\"],\n    primary_vswitch_ip=\"172.16.3.1\",\n    standby_vswitch_ip=\"172.16.4.1\",\n    member_uid=current.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var current = AliCloud.GetAccount.Invoke();\n\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = \"yqc-example-vpc\",\n    });\n\n    var vpcvsw1 = new AliCloud.Vpc.Switch(\"vpcvsw1\", new()\n    {\n        VpcId = vpc.Id,\n        ZoneId = \"cn-hangzhou-i\",\n        CidrBlock = \"172.16.3.0/24\",\n    });\n\n    var vpcvsw2 = new AliCloud.Vpc.Switch(\"vpcvsw2\", new()\n    {\n        VpcId = vpc.Id,\n        ZoneId = \"cn-hangzhou-j\",\n        CidrBlock = \"172.16.4.0/24\",\n    });\n\n    var @default = new AliCloud.CloudFirewall.PrivateDns(\"default\", new()\n    {\n        RegionNo = \"cn-hangzhou\",\n        AccessInstanceName = name,\n        Port = 53,\n        PrimaryVswitchId = vpcvsw1.Id,\n        StandbyDns = \"4.4.4.4\",\n        PrimaryDns = \"8.8.8.8\",\n        VpcId = vpc.Id,\n        PrivateDnsType = \"Custom\",\n        FirewallTypes = new[]\n        {\n            \"internet\",\n        },\n        IpProtocol = \"UDP\",\n        StandbyVswitchId = vpcvsw2.Id,\n        DomainNameLists = new[]\n        {\n            \"www.aliyun.com\",\n        },\n        PrimaryVswitchIp = \"172.16.3.1\",\n        StandbyVswitchIp = \"172.16.4.1\",\n        MemberUid = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcurrent, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(\"yqc-example-vpc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpcvsw1, err := vpc.NewSwitch(ctx, \"vpcvsw1\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     vpc.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-i\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpcvsw2, err := vpc.NewSwitch(ctx, \"vpcvsw2\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     vpc.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-j\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.4.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfirewall.NewPrivateDns(ctx, \"default\", \u0026cloudfirewall.PrivateDnsArgs{\n\t\t\tRegionNo:           pulumi.String(\"cn-hangzhou\"),\n\t\t\tAccessInstanceName: pulumi.String(name),\n\t\t\tPort:               pulumi.Int(53),\n\t\t\tPrimaryVswitchId:   vpcvsw1.ID(),\n\t\t\tStandbyDns:         pulumi.String(\"4.4.4.4\"),\n\t\t\tPrimaryDns:         pulumi.String(\"8.8.8.8\"),\n\t\t\tVpcId:              vpc.ID(),\n\t\t\tPrivateDnsType:     pulumi.String(\"Custom\"),\n\t\t\tFirewallTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"internet\"),\n\t\t\t},\n\t\t\tIpProtocol:       pulumi.String(\"UDP\"),\n\t\t\tStandbyVswitchId: vpcvsw2.ID(),\n\t\t\tDomainNameLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"www.aliyun.com\"),\n\t\t\t},\n\t\t\tPrimaryVswitchIp: pulumi.String(\"172.16.3.1\"),\n\t\t\tStandbyVswitchIp: pulumi.String(\"172.16.4.1\"),\n\t\t\tMemberUid:        pulumi.String(current.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cloudfirewall.PrivateDns;\nimport com.pulumi.alicloud.cloudfirewall.PrivateDnsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var current = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(\"yqc-example-vpc\")\n            .build());\n\n        var vpcvsw1 = new Switch(\"vpcvsw1\", SwitchArgs.builder()\n            .vpcId(vpc.id())\n            .zoneId(\"cn-hangzhou-i\")\n            .cidrBlock(\"172.16.3.0/24\")\n            .build());\n\n        var vpcvsw2 = new Switch(\"vpcvsw2\", SwitchArgs.builder()\n            .vpcId(vpc.id())\n            .zoneId(\"cn-hangzhou-j\")\n            .cidrBlock(\"172.16.4.0/24\")\n            .build());\n\n        var default_ = new PrivateDns(\"default\", PrivateDnsArgs.builder()\n            .regionNo(\"cn-hangzhou\")\n            .accessInstanceName(name)\n            .port(53)\n            .primaryVswitchId(vpcvsw1.id())\n            .standbyDns(\"4.4.4.4\")\n            .primaryDns(\"8.8.8.8\")\n            .vpcId(vpc.id())\n            .privateDnsType(\"Custom\")\n            .firewallTypes(\"internet\")\n            .ipProtocol(\"UDP\")\n            .standbyVswitchId(vpcvsw2.id())\n            .domainNameLists(\"www.aliyun.com\")\n            .primaryVswitchIp(\"172.16.3.1\")\n            .standbyVswitchIp(\"172.16.4.1\")\n            .memberUid(current.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName: yqc-example-vpc\n  vpcvsw1:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${vpc.id}\n      zoneId: cn-hangzhou-i\n      cidrBlock: 172.16.3.0/24\n  vpcvsw2:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${vpc.id}\n      zoneId: cn-hangzhou-j\n      cidrBlock: 172.16.4.0/24\n  default:\n    type: alicloud:cloudfirewall:PrivateDns\n    properties:\n      regionNo: cn-hangzhou\n      accessInstanceName: ${name}\n      port: '53'\n      primaryVswitchId: ${vpcvsw1.id}\n      standbyDns: 4.4.4.4\n      primaryDns: 8.8.8.8\n      vpcId: ${vpc.id}\n      privateDnsType: Custom\n      firewallTypes:\n        - internet\n      ipProtocol: UDP\n      standbyVswitchId: ${vpcvsw2.id}\n      domainNameLists:\n        - www.aliyun.com\n      primaryVswitchIp: 172.16.3.1\n      standbyVswitchIp: 172.16.4.1\n      memberUid: ${current.id}\nvariables:\n  current:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Private Dns can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudfirewall/privateDns:PrivateDns example \u003caccess_instance_id\u003e:\u003cregion_no\u003e\n```\n\n","properties":{"accessInstanceId":{"type":"string","description":"The id of Private DNS instance\n"},"accessInstanceName":{"type":"string","description":"The name of Private DNS instance\n"},"domainNameLists":{"type":"array","items":{"type":"string"},"description":"Private DNS domain name list\n"},"firewallTypes":{"type":"array","items":{"type":"string"},"description":"The type of firewall\n"},"ipProtocol":{"type":"string","description":"IP protocol\n"},"memberUid":{"type":"integer","description":"The member Uid\n"},"port":{"type":"integer","description":"The Port of Private DNS instance\n"},"primaryDns":{"type":"string","description":"Primary DNS IP\n"},"primaryVswitchId":{"type":"string","description":"Primary zone Switch ID\n"},"primaryVswitchIp":{"type":"string","description":"Primary zone switch IP\n"},"privateDnsType":{"type":"string","description":"The type of Private DNS instance\n"},"regionNo":{"type":"string","description":"The region ID of Private DNS instance\n"},"standbyDns":{"type":"string","description":"Standby DNS IP\n"},"standbyVswitchId":{"type":"string","description":"Standby zone switch ID\n"},"standbyVswitchIp":{"type":"string","description":"Standby zone switch IP address\n"},"status":{"type":"string","description":"status\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"}},"required":["accessInstanceId","accessInstanceName","firewallTypes","privateDnsType","regionNo","status","vpcId"],"inputProperties":{"accessInstanceName":{"type":"string","description":"The name of Private DNS instance\n"},"domainNameLists":{"type":"array","items":{"type":"string"},"description":"Private DNS domain name list\n"},"firewallTypes":{"type":"array","items":{"type":"string"},"description":"The type of firewall\n","willReplaceOnChanges":true},"ipProtocol":{"type":"string","description":"IP protocol\n","willReplaceOnChanges":true},"memberUid":{"type":"integer","description":"The member Uid\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"The Port of Private DNS instance\n","willReplaceOnChanges":true},"primaryDns":{"type":"string","description":"Primary DNS IP\n"},"primaryVswitchId":{"type":"string","description":"Primary zone Switch ID\n","willReplaceOnChanges":true},"primaryVswitchIp":{"type":"string","description":"Primary zone switch IP\n","willReplaceOnChanges":true},"privateDnsType":{"type":"string","description":"The type of Private DNS instance\n"},"regionNo":{"type":"string","description":"The region ID of Private DNS instance\n","willReplaceOnChanges":true},"standbyDns":{"type":"string","description":"Standby DNS IP\n"},"standbyVswitchId":{"type":"string","description":"Standby zone switch ID\n","willReplaceOnChanges":true},"standbyVswitchIp":{"type":"string","description":"Standby zone switch IP address\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the VPC.\n","willReplaceOnChanges":true}},"requiredInputs":["accessInstanceName","firewallTypes","privateDnsType","regionNo","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivateDns resources.\n","properties":{"accessInstanceId":{"type":"string","description":"The id of Private DNS instance\n"},"accessInstanceName":{"type":"string","description":"The name of Private DNS instance\n"},"domainNameLists":{"type":"array","items":{"type":"string"},"description":"Private DNS domain name list\n"},"firewallTypes":{"type":"array","items":{"type":"string"},"description":"The type of firewall\n","willReplaceOnChanges":true},"ipProtocol":{"type":"string","description":"IP protocol\n","willReplaceOnChanges":true},"memberUid":{"type":"integer","description":"The member Uid\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"The Port of Private DNS instance\n","willReplaceOnChanges":true},"primaryDns":{"type":"string","description":"Primary DNS IP\n"},"primaryVswitchId":{"type":"string","description":"Primary zone Switch ID\n","willReplaceOnChanges":true},"primaryVswitchIp":{"type":"string","description":"Primary zone switch IP\n","willReplaceOnChanges":true},"privateDnsType":{"type":"string","description":"The type of Private DNS instance\n"},"regionNo":{"type":"string","description":"The region ID of Private DNS instance\n","willReplaceOnChanges":true},"standbyDns":{"type":"string","description":"Standby DNS IP\n"},"standbyVswitchId":{"type":"string","description":"Standby zone switch ID\n","willReplaceOnChanges":true},"standbyVswitchIp":{"type":"string","description":"Standby zone switch IP address\n","willReplaceOnChanges":true},"status":{"type":"string","description":"status\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudfirewall/threatIntelligenceSwitch:ThreatIntelligenceSwitch":{"description":"Provides a Cloud Firewall Threat Intelligence Switch resource.\n\nCloud Firewall Switch Threat Intelligence.\n\nFor information about Cloud Firewall Threat Intelligence Switch and how to use it, see [What is Threat Intelligence Switch](https://next.api.alibabacloud.com/document/Cloudfw/2017-12-07/ModifyThreatIntelligenceSwitch).\n\n\u003e **NOTE:** Available since v1.260.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cloudfirewall.ThreatIntelligenceSwitch(\"default\", {\n    action: \"alert\",\n    enableStatus: 0,\n    categoryId: \"IpOutThreatTorExit\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudfirewall.ThreatIntelligenceSwitch(\"default\",\n    action=\"alert\",\n    enable_status=0,\n    category_id=\"IpOutThreatTorExit\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.CloudFirewall.ThreatIntelligenceSwitch(\"default\", new()\n    {\n        Action = \"alert\",\n        EnableStatus = 0,\n        CategoryId = \"IpOutThreatTorExit\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cloudfirewall.NewThreatIntelligenceSwitch(ctx, \"default\", \u0026cloudfirewall.ThreatIntelligenceSwitchArgs{\n\t\t\tAction:       pulumi.String(\"alert\"),\n\t\t\tEnableStatus: pulumi.Int(0),\n\t\t\tCategoryId:   pulumi.String(\"IpOutThreatTorExit\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.ThreatIntelligenceSwitch;\nimport com.pulumi.alicloud.cloudfirewall.ThreatIntelligenceSwitchArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ThreatIntelligenceSwitch(\"default\", ThreatIntelligenceSwitchArgs.builder()\n            .action(\"alert\")\n            .enableStatus(0)\n            .categoryId(\"IpOutThreatTorExit\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cloudfirewall:ThreatIntelligenceSwitch\n    properties:\n      action: alert\n      enableStatus: '0'\n      categoryId: IpOutThreatTorExit\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudfirewall.ThreatIntelligenceSwitch`\" pulumi-lang-dotnet=\"`alicloud.cloudfirewall.ThreatIntelligenceSwitch`\" pulumi-lang-go=\"`cloudfirewall.ThreatIntelligenceSwitch`\" pulumi-lang-python=\"`cloudfirewall.ThreatIntelligenceSwitch`\" pulumi-lang-yaml=\"`alicloud.cloudfirewall.ThreatIntelligenceSwitch`\" pulumi-lang-java=\"`alicloud.cloudfirewall.ThreatIntelligenceSwitch`\"\u003e`alicloud.cloudfirewall.ThreatIntelligenceSwitch`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudfirewall.ThreatIntelligenceSwitch`\" pulumi-lang-dotnet=\"`alicloud.cloudfirewall.ThreatIntelligenceSwitch`\" pulumi-lang-go=\"`cloudfirewall.ThreatIntelligenceSwitch`\" pulumi-lang-python=\"`cloudfirewall.ThreatIntelligenceSwitch`\" pulumi-lang-yaml=\"`alicloud.cloudfirewall.ThreatIntelligenceSwitch`\" pulumi-lang-java=\"`alicloud.cloudfirewall.ThreatIntelligenceSwitch`\"\u003e`alicloud.cloudfirewall.ThreatIntelligenceSwitch`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Threat Intelligence Switch can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudfirewall/threatIntelligenceSwitch:ThreatIntelligenceSwitch example \u003cid\u003e\n```\n\n","properties":{"action":{"type":"string","description":"Rule action. Value:\n"},"categoryId":{"type":"string","description":"The threat intelligence classification ID.\n"},"enableStatus":{"type":"integer","description":"Switch status. Value:\n"}},"required":["categoryId"],"inputProperties":{"action":{"type":"string","description":"Rule action. Value:\n"},"categoryId":{"type":"string","description":"The threat intelligence classification ID.\n","willReplaceOnChanges":true},"enableStatus":{"type":"integer","description":"Switch status. Value:\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ThreatIntelligenceSwitch resources.\n","properties":{"action":{"type":"string","description":"Rule action. Value:\n"},"categoryId":{"type":"string","description":"The threat intelligence classification ID.\n","willReplaceOnChanges":true},"enableStatus":{"type":"integer","description":"Switch status. Value:\n"}},"type":"object"}},"alicloud:cloudfirewall/userAlarmConfig:UserAlarmConfig":{"description":"Provides a Cloud Firewall User Alarm Config resource.\n\nConfigure alarm notifications and contacts.\n\nFor information about Cloud Firewall User Alarm Config and how to use it, see [What is User Alarm Config](https://next.api.alibabacloud.com/document/Cloudfw/2017-12-07/DescribeUserAlarmConfig).\n\n\u003e **NOTE:** Available since v1.271.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.cloudfirewall.UserAlarmConfig(\"default\", {\n    alarmConfigs: [{\n        alarmValue: \"on\",\n        alarmType: \"bandwidth\",\n        alarmPeriod: \"1\",\n        alarmHour: \"0\",\n        alarmNotify: \"0\",\n        alarmWeekDay: \"0\",\n    }],\n    useDefaultContact: \"1\",\n    notifyConfigs: [{\n        notifyValue: \"13000000000\",\n        notifyType: \"sms\",\n    }],\n    alarmLang: \"zh\",\n    lang: \"zh\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cloudfirewall.UserAlarmConfig(\"default\",\n    alarm_configs=[{\n        \"alarm_value\": \"on\",\n        \"alarm_type\": \"bandwidth\",\n        \"alarm_period\": \"1\",\n        \"alarm_hour\": \"0\",\n        \"alarm_notify\": \"0\",\n        \"alarm_week_day\": \"0\",\n    }],\n    use_default_contact=\"1\",\n    notify_configs=[{\n        \"notify_value\": \"13000000000\",\n        \"notify_type\": \"sms\",\n    }],\n    alarm_lang=\"zh\",\n    lang=\"zh\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.CloudFirewall.UserAlarmConfig(\"default\", new()\n    {\n        AlarmConfigs = new[]\n        {\n            new AliCloud.CloudFirewall.Inputs.UserAlarmConfigAlarmConfigArgs\n            {\n                AlarmValue = \"on\",\n                AlarmType = \"bandwidth\",\n                AlarmPeriod = \"1\",\n                AlarmHour = \"0\",\n                AlarmNotify = \"0\",\n                AlarmWeekDay = \"0\",\n            },\n        },\n        UseDefaultContact = \"1\",\n        NotifyConfigs = new[]\n        {\n            new AliCloud.CloudFirewall.Inputs.UserAlarmConfigNotifyConfigArgs\n            {\n                NotifyValue = \"13000000000\",\n                NotifyType = \"sms\",\n            },\n        },\n        AlarmLang = \"zh\",\n        Lang = \"zh\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudfirewall.NewUserAlarmConfig(ctx, \"default\", \u0026cloudfirewall.UserAlarmConfigArgs{\n\t\t\tAlarmConfigs: cloudfirewall.UserAlarmConfigAlarmConfigArray{\n\t\t\t\t\u0026cloudfirewall.UserAlarmConfigAlarmConfigArgs{\n\t\t\t\t\tAlarmValue:   pulumi.String(\"on\"),\n\t\t\t\t\tAlarmType:    pulumi.String(\"bandwidth\"),\n\t\t\t\t\tAlarmPeriod:  pulumi.String(\"1\"),\n\t\t\t\t\tAlarmHour:    pulumi.String(\"0\"),\n\t\t\t\t\tAlarmNotify:  pulumi.String(\"0\"),\n\t\t\t\t\tAlarmWeekDay: pulumi.String(\"0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tUseDefaultContact: pulumi.String(\"1\"),\n\t\t\tNotifyConfigs: cloudfirewall.UserAlarmConfigNotifyConfigArray{\n\t\t\t\t\u0026cloudfirewall.UserAlarmConfigNotifyConfigArgs{\n\t\t\t\t\tNotifyValue: pulumi.String(\"13000000000\"),\n\t\t\t\t\tNotifyType:  pulumi.String(\"sms\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAlarmLang: pulumi.String(\"zh\"),\n\t\t\tLang:      pulumi.String(\"zh\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.UserAlarmConfig;\nimport com.pulumi.alicloud.cloudfirewall.UserAlarmConfigArgs;\nimport com.pulumi.alicloud.cloudfirewall.inputs.UserAlarmConfigAlarmConfigArgs;\nimport com.pulumi.alicloud.cloudfirewall.inputs.UserAlarmConfigNotifyConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new UserAlarmConfig(\"default\", UserAlarmConfigArgs.builder()\n            .alarmConfigs(UserAlarmConfigAlarmConfigArgs.builder()\n                .alarmValue(\"on\")\n                .alarmType(\"bandwidth\")\n                .alarmPeriod(\"1\")\n                .alarmHour(\"0\")\n                .alarmNotify(\"0\")\n                .alarmWeekDay(\"0\")\n                .build())\n            .useDefaultContact(\"1\")\n            .notifyConfigs(UserAlarmConfigNotifyConfigArgs.builder()\n                .notifyValue(\"13000000000\")\n                .notifyType(\"sms\")\n                .build())\n            .alarmLang(\"zh\")\n            .lang(\"zh\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:cloudfirewall:UserAlarmConfig\n    properties:\n      alarmConfigs:\n        - alarmValue: on\n          alarmType: bandwidth\n          alarmPeriod: '1'\n          alarmHour: '0'\n          alarmNotify: '0'\n          alarmWeekDay: '0'\n      useDefaultContact: '1'\n      notifyConfigs:\n        - notifyValue: '13000000000'\n          notifyType: sms\n      alarmLang: zh\n      lang: zh\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudfirewall.UserAlarmConfig`\" pulumi-lang-dotnet=\"`alicloud.cloudfirewall.UserAlarmConfig`\" pulumi-lang-go=\"`cloudfirewall.UserAlarmConfig`\" pulumi-lang-python=\"`cloudfirewall.UserAlarmConfig`\" pulumi-lang-yaml=\"`alicloud.cloudfirewall.UserAlarmConfig`\" pulumi-lang-java=\"`alicloud.cloudfirewall.UserAlarmConfig`\"\u003e`alicloud.cloudfirewall.UserAlarmConfig`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudfirewall.UserAlarmConfig`\" pulumi-lang-dotnet=\"`alicloud.cloudfirewall.UserAlarmConfig`\" pulumi-lang-go=\"`cloudfirewall.UserAlarmConfig`\" pulumi-lang-python=\"`cloudfirewall.UserAlarmConfig`\" pulumi-lang-yaml=\"`alicloud.cloudfirewall.UserAlarmConfig`\" pulumi-lang-java=\"`alicloud.cloudfirewall.UserAlarmConfig`\"\u003e`alicloud.cloudfirewall.UserAlarmConfig`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall User Alarm Config can be imported using the `Account ID`, e.g.\n\n```sh\n$ terraform import alicloud_cloud_firewall_user_alarm_config.example \u003cAlibaba Cloud Account ID\u003e\n```\n\n","properties":{"alarmConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/UserAlarmConfigAlarmConfig:UserAlarmConfigAlarmConfig"},"description":"The alarm configuration. More details see \u003cspan pulumi-lang-nodejs=\"`alarmConfig`\" pulumi-lang-dotnet=\"`AlarmConfig`\" pulumi-lang-go=\"`alarmConfig`\" pulumi-lang-python=\"`alarm_config`\" pulumi-lang-yaml=\"`alarmConfig`\" pulumi-lang-java=\"`alarmConfig`\"\u003e`alarm_config`\u003c/span\u003e below.\n"},"alarmLang":{"type":"string","description":"The alarm language. Possible values are \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"contactConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/UserAlarmConfigContactConfig:UserAlarmConfigContactConfig"},"description":"Conflict with \u003cspan pulumi-lang-nodejs=\"`notifyConfig`\" pulumi-lang-dotnet=\"`NotifyConfig`\" pulumi-lang-go=\"`notifyConfig`\" pulumi-lang-python=\"`notify_config`\" pulumi-lang-yaml=\"`notifyConfig`\" pulumi-lang-java=\"`notifyConfig`\"\u003e`notify_config`\u003c/span\u003e. The contact configuration. More details see \u003cspan pulumi-lang-nodejs=\"`contactConfig`\" pulumi-lang-dotnet=\"`ContactConfig`\" pulumi-lang-go=\"`contactConfig`\" pulumi-lang-python=\"`contact_config`\" pulumi-lang-yaml=\"`contactConfig`\" pulumi-lang-java=\"`contactConfig`\"\u003e`contact_config`\u003c/span\u003e below.\n"},"lang":{"type":"string","description":"The language type. Possible values are \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"notifyConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/UserAlarmConfigNotifyConfig:UserAlarmConfigNotifyConfig"},"description":"Conflict with \u003cspan pulumi-lang-nodejs=\"`contactConfig`\" pulumi-lang-dotnet=\"`ContactConfig`\" pulumi-lang-go=\"`contactConfig`\" pulumi-lang-python=\"`contact_config`\" pulumi-lang-yaml=\"`contactConfig`\" pulumi-lang-java=\"`contactConfig`\"\u003e`contact_config`\u003c/span\u003e. The notification configuration. More details see \u003cspan pulumi-lang-nodejs=\"`notifyConfig`\" pulumi-lang-dotnet=\"`NotifyConfig`\" pulumi-lang-go=\"`notifyConfig`\" pulumi-lang-python=\"`notify_config`\" pulumi-lang-yaml=\"`notifyConfig`\" pulumi-lang-java=\"`notifyConfig`\"\u003e`notify_config`\u003c/span\u003e below.\n"},"useDefaultContact":{"type":"string","description":"Whether to Use the default contact.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"}},"required":["alarmConfigs","contactConfigs","notifyConfigs"],"inputProperties":{"alarmConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/UserAlarmConfigAlarmConfig:UserAlarmConfigAlarmConfig"},"description":"The alarm configuration. More details see \u003cspan pulumi-lang-nodejs=\"`alarmConfig`\" pulumi-lang-dotnet=\"`AlarmConfig`\" pulumi-lang-go=\"`alarmConfig`\" pulumi-lang-python=\"`alarm_config`\" pulumi-lang-yaml=\"`alarmConfig`\" pulumi-lang-java=\"`alarmConfig`\"\u003e`alarm_config`\u003c/span\u003e below.\n"},"alarmLang":{"type":"string","description":"The alarm language. Possible values are \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"contactConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/UserAlarmConfigContactConfig:UserAlarmConfigContactConfig"},"description":"Conflict with \u003cspan pulumi-lang-nodejs=\"`notifyConfig`\" pulumi-lang-dotnet=\"`NotifyConfig`\" pulumi-lang-go=\"`notifyConfig`\" pulumi-lang-python=\"`notify_config`\" pulumi-lang-yaml=\"`notifyConfig`\" pulumi-lang-java=\"`notifyConfig`\"\u003e`notify_config`\u003c/span\u003e. The contact configuration. More details see \u003cspan pulumi-lang-nodejs=\"`contactConfig`\" pulumi-lang-dotnet=\"`ContactConfig`\" pulumi-lang-go=\"`contactConfig`\" pulumi-lang-python=\"`contact_config`\" pulumi-lang-yaml=\"`contactConfig`\" pulumi-lang-java=\"`contactConfig`\"\u003e`contact_config`\u003c/span\u003e below.\n"},"lang":{"type":"string","description":"The language type. Possible values are \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"notifyConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/UserAlarmConfigNotifyConfig:UserAlarmConfigNotifyConfig"},"description":"Conflict with \u003cspan pulumi-lang-nodejs=\"`contactConfig`\" pulumi-lang-dotnet=\"`ContactConfig`\" pulumi-lang-go=\"`contactConfig`\" pulumi-lang-python=\"`contact_config`\" pulumi-lang-yaml=\"`contactConfig`\" pulumi-lang-java=\"`contactConfig`\"\u003e`contact_config`\u003c/span\u003e. The notification configuration. More details see \u003cspan pulumi-lang-nodejs=\"`notifyConfig`\" pulumi-lang-dotnet=\"`NotifyConfig`\" pulumi-lang-go=\"`notifyConfig`\" pulumi-lang-python=\"`notify_config`\" pulumi-lang-yaml=\"`notifyConfig`\" pulumi-lang-java=\"`notifyConfig`\"\u003e`notify_config`\u003c/span\u003e below.\n"},"useDefaultContact":{"type":"string","description":"Whether to Use the default contact.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"}},"requiredInputs":["alarmConfigs"],"stateInputs":{"description":"Input properties used for looking up and filtering UserAlarmConfig resources.\n","properties":{"alarmConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/UserAlarmConfigAlarmConfig:UserAlarmConfigAlarmConfig"},"description":"The alarm configuration. More details see \u003cspan pulumi-lang-nodejs=\"`alarmConfig`\" pulumi-lang-dotnet=\"`AlarmConfig`\" pulumi-lang-go=\"`alarmConfig`\" pulumi-lang-python=\"`alarm_config`\" pulumi-lang-yaml=\"`alarmConfig`\" pulumi-lang-java=\"`alarmConfig`\"\u003e`alarm_config`\u003c/span\u003e below.\n"},"alarmLang":{"type":"string","description":"The alarm language. Possible values are \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"contactConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/UserAlarmConfigContactConfig:UserAlarmConfigContactConfig"},"description":"Conflict with \u003cspan pulumi-lang-nodejs=\"`notifyConfig`\" pulumi-lang-dotnet=\"`NotifyConfig`\" pulumi-lang-go=\"`notifyConfig`\" pulumi-lang-python=\"`notify_config`\" pulumi-lang-yaml=\"`notifyConfig`\" pulumi-lang-java=\"`notifyConfig`\"\u003e`notify_config`\u003c/span\u003e. The contact configuration. More details see \u003cspan pulumi-lang-nodejs=\"`contactConfig`\" pulumi-lang-dotnet=\"`ContactConfig`\" pulumi-lang-go=\"`contactConfig`\" pulumi-lang-python=\"`contact_config`\" pulumi-lang-yaml=\"`contactConfig`\" pulumi-lang-java=\"`contactConfig`\"\u003e`contact_config`\u003c/span\u003e below.\n"},"lang":{"type":"string","description":"The language type. Possible values are \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"notifyConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cloudfirewall/UserAlarmConfigNotifyConfig:UserAlarmConfigNotifyConfig"},"description":"Conflict with \u003cspan pulumi-lang-nodejs=\"`contactConfig`\" pulumi-lang-dotnet=\"`ContactConfig`\" pulumi-lang-go=\"`contactConfig`\" pulumi-lang-python=\"`contact_config`\" pulumi-lang-yaml=\"`contactConfig`\" pulumi-lang-java=\"`contactConfig`\"\u003e`contact_config`\u003c/span\u003e. The notification configuration. More details see \u003cspan pulumi-lang-nodejs=\"`notifyConfig`\" pulumi-lang-dotnet=\"`NotifyConfig`\" pulumi-lang-go=\"`notifyConfig`\" pulumi-lang-python=\"`notify_config`\" pulumi-lang-yaml=\"`notifyConfig`\" pulumi-lang-java=\"`notifyConfig`\"\u003e`notify_config`\u003c/span\u003e below.\n"},"useDefaultContact":{"type":"string","description":"Whether to Use the default contact.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"}},"type":"object"}},"alicloud:cloudfirewall/vpcCenTrFirewall:VpcCenTrFirewall":{"description":"Provides a Cloud Firewall Vpc Cen Tr Firewall resource.\n\nVPC firewall Cloud Enterprise Network Enterprise Edition.\n\nFor information about Cloud Firewall Vpc Cen Tr Firewall and how to use it, see [What is Vpc Cen Tr Firewall](https://www.alibabacloud.com/help/en/cloud-firewall/cloudfirewall/developer-reference/api-cloudfw-2017-12-07-createtrfirewallv2).\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as time from \"@pulumi/time\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst description = config.get(\"description\") || \"Created by Terraform\";\nconst firewallName = config.get(\"firewallName\") || \"tf-example\";\nconst trAttachmentMasterCidr = config.get(\"trAttachmentMasterCidr\") || \"192.168.3.192/26\";\nconst firewallSubnetCidr = config.get(\"firewallSubnetCidr\") || \"192.168.3.0/25\";\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst trAttachmentSlaveCidr = config.get(\"trAttachmentSlaveCidr\") || \"192.168.3.128/26\";\nconst firewallVpcCidr = config.get(\"firewallVpcCidr\") || \"192.168.3.0/24\";\nconst zone1 = config.get(\"zone1\") || \"cn-hangzhou-h\";\nconst firewallNameUpdate = config.get(\"firewallNameUpdate\") || \"tf-example-1\";\nconst zone2 = config.get(\"zone2\") || \"cn-hangzhou-i\";\nconst _default = alicloud.cen.getTransitRouterAvailableResources({});\nconst defaultGetZones = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst cen = new alicloud.cen.Instance(\"cen\", {\n    description: \"terraform example\",\n    cenInstanceName: name,\n});\nconst tr = new alicloud.cen.TransitRouter(\"tr\", {\n    transitRouterName: name,\n    transitRouterDescription: \"tr-created-by-terraform\",\n    cenId: cen.id,\n});\nconst vpc1 = new alicloud.vpc.Network(\"vpc1\", {\n    description: \"created by terraform\",\n    cidrBlock: \"192.168.1.0/24\",\n    vpcName: name,\n});\nconst vpc1vsw1 = new alicloud.vpc.Switch(\"vpc1vsw1\", {\n    cidrBlock: \"192.168.1.0/25\",\n    vswitchName: name,\n    vpcId: vpc1.id,\n    zoneId: _default.then(_default =\u003e _default.resources?.[0]?.masterZones?.[1]),\n});\nconst vpc1vsw2 = new alicloud.vpc.Switch(\"vpc1vsw2\", {\n    vpcId: vpc1.id,\n    cidrBlock: \"192.168.1.128/26\",\n    vswitchName: name,\n    zoneId: _default.then(_default =\u003e _default.resources?.[0]?.masterZones?.[2]),\n});\nconst foo = new alicloud.vpc.RouteTable(\"foo\", {\n    vpcId: vpc1.id,\n    routeTableName: name,\n    description: name,\n});\nconst tr_vpc1 = new alicloud.cen.TransitRouterVpcAttachment(\"tr-vpc1\", {\n    zoneMappings: [\n        {\n            vswitchId: vpc1vsw1.id,\n            zoneId: _default.then(_default =\u003e _default.resources?.[0]?.masterZones?.[1]),\n        },\n        {\n            zoneId: _default.then(_default =\u003e _default.resources?.[0]?.masterZones?.[2]),\n            vswitchId: vpc1vsw2.id,\n        },\n    ],\n    vpcId: vpc1.id,\n    cenId: cen.id,\n    transitRouterId: tr.transitRouterId,\n}, {\n    dependsOn: [foo],\n});\nconst wait10Minutes = new time.index.Sleep(\"wait_10_minutes\", {createDuration: \"10m\"}, {\n    dependsOn: [tr_vpc1],\n});\nconst defaultVpcCenTrFirewall = new alicloud.cloudfirewall.VpcCenTrFirewall(\"default\", {\n    cenId: tr_vpc1.cenId,\n    firewallName: name,\n    firewallSubnetCidr: firewallSubnetCidr,\n    trAttachmentSlaveCidr: trAttachmentSlaveCidr,\n    firewallDescription: \"VpcCenTrFirewall created by terraform\",\n    regionNo: region,\n    trAttachmentMasterCidr: trAttachmentMasterCidr,\n    firewallVpcCidr: firewallVpcCidr,\n    transitRouterId: tr.transitRouterId,\n    routeMode: \"managed\",\n}, {\n    dependsOn: [wait10Minutes],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_time as time\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndescription = config.get(\"description\")\nif description is None:\n    description = \"Created by Terraform\"\nfirewall_name = config.get(\"firewallName\")\nif firewall_name is None:\n    firewall_name = \"tf-example\"\ntr_attachment_master_cidr = config.get(\"trAttachmentMasterCidr\")\nif tr_attachment_master_cidr is None:\n    tr_attachment_master_cidr = \"192.168.3.192/26\"\nfirewall_subnet_cidr = config.get(\"firewallSubnetCidr\")\nif firewall_subnet_cidr is None:\n    firewall_subnet_cidr = \"192.168.3.0/25\"\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\ntr_attachment_slave_cidr = config.get(\"trAttachmentSlaveCidr\")\nif tr_attachment_slave_cidr is None:\n    tr_attachment_slave_cidr = \"192.168.3.128/26\"\nfirewall_vpc_cidr = config.get(\"firewallVpcCidr\")\nif firewall_vpc_cidr is None:\n    firewall_vpc_cidr = \"192.168.3.0/24\"\nzone1 = config.get(\"zone1\")\nif zone1 is None:\n    zone1 = \"cn-hangzhou-h\"\nfirewall_name_update = config.get(\"firewallNameUpdate\")\nif firewall_name_update is None:\n    firewall_name_update = \"tf-example-1\"\nzone2 = config.get(\"zone2\")\nif zone2 is None:\n    zone2 = \"cn-hangzhou-i\"\ndefault = alicloud.cen.get_transit_router_available_resources()\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ncen = alicloud.cen.Instance(\"cen\",\n    description=\"terraform example\",\n    cen_instance_name=name)\ntr = alicloud.cen.TransitRouter(\"tr\",\n    transit_router_name=name,\n    transit_router_description=\"tr-created-by-terraform\",\n    cen_id=cen.id)\nvpc1 = alicloud.vpc.Network(\"vpc1\",\n    description=\"created by terraform\",\n    cidr_block=\"192.168.1.0/24\",\n    vpc_name=name)\nvpc1vsw1 = alicloud.vpc.Switch(\"vpc1vsw1\",\n    cidr_block=\"192.168.1.0/25\",\n    vswitch_name=name,\n    vpc_id=vpc1.id,\n    zone_id=default.resources[0].master_zones[1])\nvpc1vsw2 = alicloud.vpc.Switch(\"vpc1vsw2\",\n    vpc_id=vpc1.id,\n    cidr_block=\"192.168.1.128/26\",\n    vswitch_name=name,\n    zone_id=default.resources[0].master_zones[2])\nfoo = alicloud.vpc.RouteTable(\"foo\",\n    vpc_id=vpc1.id,\n    route_table_name=name,\n    description=name)\ntr_vpc1 = alicloud.cen.TransitRouterVpcAttachment(\"tr-vpc1\",\n    zone_mappings=[\n        {\n            \"vswitch_id\": vpc1vsw1.id,\n            \"zone_id\": default.resources[0].master_zones[1],\n        },\n        {\n            \"zone_id\": default.resources[0].master_zones[2],\n            \"vswitch_id\": vpc1vsw2.id,\n        },\n    ],\n    vpc_id=vpc1.id,\n    cen_id=cen.id,\n    transit_router_id=tr.transit_router_id,\n    opts = pulumi.ResourceOptions(depends_on=[foo]))\nwait10_minutes = time.index.Sleep(\"wait_10_minutes\", create_duration=10m,\nopts = pulumi.ResourceOptions(depends_on=[tr_vpc1]))\ndefault_vpc_cen_tr_firewall = alicloud.cloudfirewall.VpcCenTrFirewall(\"default\",\n    cen_id=tr_vpc1.cen_id,\n    firewall_name=name,\n    firewall_subnet_cidr=firewall_subnet_cidr,\n    tr_attachment_slave_cidr=tr_attachment_slave_cidr,\n    firewall_description=\"VpcCenTrFirewall created by terraform\",\n    region_no=region,\n    tr_attachment_master_cidr=tr_attachment_master_cidr,\n    firewall_vpc_cidr=firewall_vpc_cidr,\n    transit_router_id=tr.transit_router_id,\n    route_mode=\"managed\",\n    opts = pulumi.ResourceOptions(depends_on=[wait10_minutes]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var description = config.Get(\"description\") ?? \"Created by Terraform\";\n    var firewallName = config.Get(\"firewallName\") ?? \"tf-example\";\n    var trAttachmentMasterCidr = config.Get(\"trAttachmentMasterCidr\") ?? \"192.168.3.192/26\";\n    var firewallSubnetCidr = config.Get(\"firewallSubnetCidr\") ?? \"192.168.3.0/25\";\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var trAttachmentSlaveCidr = config.Get(\"trAttachmentSlaveCidr\") ?? \"192.168.3.128/26\";\n    var firewallVpcCidr = config.Get(\"firewallVpcCidr\") ?? \"192.168.3.0/24\";\n    var zone1 = config.Get(\"zone1\") ?? \"cn-hangzhou-h\";\n    var firewallNameUpdate = config.Get(\"firewallNameUpdate\") ?? \"tf-example-1\";\n    var zone2 = config.Get(\"zone2\") ?? \"cn-hangzhou-i\";\n    var @default = AliCloud.Cen.GetTransitRouterAvailableResources.Invoke();\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var cen = new AliCloud.Cen.Instance(\"cen\", new()\n    {\n        Description = \"terraform example\",\n        CenInstanceName = name,\n    });\n\n    var tr = new AliCloud.Cen.TransitRouter(\"tr\", new()\n    {\n        TransitRouterName = name,\n        TransitRouterDescription = \"tr-created-by-terraform\",\n        CenId = cen.Id,\n    });\n\n    var vpc1 = new AliCloud.Vpc.Network(\"vpc1\", new()\n    {\n        Description = \"created by terraform\",\n        CidrBlock = \"192.168.1.0/24\",\n        VpcName = name,\n    });\n\n    var vpc1vsw1 = new AliCloud.Vpc.Switch(\"vpc1vsw1\", new()\n    {\n        CidrBlock = \"192.168.1.0/25\",\n        VswitchName = name,\n        VpcId = vpc1.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.MasterZones[1])),\n    });\n\n    var vpc1vsw2 = new AliCloud.Vpc.Switch(\"vpc1vsw2\", new()\n    {\n        VpcId = vpc1.Id,\n        CidrBlock = \"192.168.1.128/26\",\n        VswitchName = name,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.MasterZones[2])),\n    });\n\n    var foo = new AliCloud.Vpc.RouteTable(\"foo\", new()\n    {\n        VpcId = vpc1.Id,\n        RouteTableName = name,\n        Description = name,\n    });\n\n    var tr_vpc1 = new AliCloud.Cen.TransitRouterVpcAttachment(\"tr-vpc1\", new()\n    {\n        ZoneMappings = new[]\n        {\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                VswitchId = vpc1vsw1.Id,\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.MasterZones[1])),\n            },\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.MasterZones[2])),\n                VswitchId = vpc1vsw2.Id,\n            },\n        },\n        VpcId = vpc1.Id,\n        CenId = cen.Id,\n        TransitRouterId = tr.TransitRouterId,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            foo,\n        },\n    });\n\n    var wait10Minutes = new Time.Index.Sleep(\"wait_10_minutes\", new()\n    {\n        CreateDuration = \"10m\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            tr_vpc1,\n        },\n    });\n\n    var defaultVpcCenTrFirewall = new AliCloud.CloudFirewall.VpcCenTrFirewall(\"default\", new()\n    {\n        CenId = tr_vpc1.CenId,\n        FirewallName = name,\n        FirewallSubnetCidr = firewallSubnetCidr,\n        TrAttachmentSlaveCidr = trAttachmentSlaveCidr,\n        FirewallDescription = \"VpcCenTrFirewall created by terraform\",\n        RegionNo = region,\n        TrAttachmentMasterCidr = trAttachmentMasterCidr,\n        FirewallVpcCidr = firewallVpcCidr,\n        TransitRouterId = tr.TransitRouterId,\n        RouteMode = \"managed\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            wait10Minutes,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdescription := \"Created by Terraform\"\n\t\tif param := cfg.Get(\"description\"); param != \"\" {\n\t\t\tdescription = param\n\t\t}\n\t\tfirewallName := \"tf-example\"\n\t\tif param := cfg.Get(\"firewallName\"); param != \"\" {\n\t\t\tfirewallName = param\n\t\t}\n\t\ttrAttachmentMasterCidr := \"192.168.3.192/26\"\n\t\tif param := cfg.Get(\"trAttachmentMasterCidr\"); param != \"\" {\n\t\t\ttrAttachmentMasterCidr = param\n\t\t}\n\t\tfirewallSubnetCidr := \"192.168.3.0/25\"\n\t\tif param := cfg.Get(\"firewallSubnetCidr\"); param != \"\" {\n\t\t\tfirewallSubnetCidr = param\n\t\t}\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\ttrAttachmentSlaveCidr := \"192.168.3.128/26\"\n\t\tif param := cfg.Get(\"trAttachmentSlaveCidr\"); param != \"\" {\n\t\t\ttrAttachmentSlaveCidr = param\n\t\t}\n\t\tfirewallVpcCidr := \"192.168.3.0/24\"\n\t\tif param := cfg.Get(\"firewallVpcCidr\"); param != \"\" {\n\t\t\tfirewallVpcCidr = param\n\t\t}\n\t\tzone1 := \"cn-hangzhou-h\"\n\t\tif param := cfg.Get(\"zone1\"); param != \"\" {\n\t\t\tzone1 = param\n\t\t}\n\t\tfirewallNameUpdate := \"tf-example-1\"\n\t\tif param := cfg.Get(\"firewallNameUpdate\"); param != \"\" {\n\t\t\tfirewallNameUpdate = param\n\t\t}\n\t\tzone2 := \"cn-hangzhou-i\"\n\t\tif param := cfg.Get(\"zone2\"); param != \"\" {\n\t\t\tzone2 = param\n\t\t}\n\t\t_default, err := cen.GetTransitRouterAvailableResources(ctx, \u0026cen.GetTransitRouterAvailableResourcesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcen, err := cen.NewInstance(ctx, \"cen\", \u0026cen.InstanceArgs{\n\t\t\tDescription:     pulumi.String(\"terraform example\"),\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttr, err := cen.NewTransitRouter(ctx, \"tr\", \u0026cen.TransitRouterArgs{\n\t\t\tTransitRouterName:        pulumi.String(name),\n\t\t\tTransitRouterDescription: pulumi.String(\"tr-created-by-terraform\"),\n\t\t\tCenId:                    cen.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpc1, err := vpc.NewNetwork(ctx, \"vpc1\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(\"created by terraform\"),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.1.0/24\"),\n\t\t\tVpcName:     pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpc1vsw1, err := vpc.NewSwitch(ctx, \"vpc1vsw1\", \u0026vpc.SwitchArgs{\n\t\t\tCidrBlock:   pulumi.String(\"192.168.1.0/25\"),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tVpcId:       vpc1.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Resources[0].MasterZones[1]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpc1vsw2, err := vpc.NewSwitch(ctx, \"vpc1vsw2\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       vpc1.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.1.128/26\"),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tZoneId:      pulumi.String(_default.Resources[0].MasterZones[2]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfoo, err := vpc.NewRouteTable(ctx, \"foo\", \u0026vpc.RouteTableArgs{\n\t\t\tVpcId:          vpc1.ID(),\n\t\t\tRouteTableName: pulumi.String(name),\n\t\t\tDescription:    pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttr_vpc1, err := cen.NewTransitRouterVpcAttachment(ctx, \"tr-vpc1\", \u0026cen.TransitRouterVpcAttachmentArgs{\n\t\t\tZoneMappings: cen.TransitRouterVpcAttachmentZoneMappingArray{\n\t\t\t\t\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\n\t\t\t\t\tVswitchId: vpc1vsw1.ID(),\n\t\t\t\t\tZoneId:    pulumi.String(_default.Resources[0].MasterZones[1]),\n\t\t\t\t},\n\t\t\t\t\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\n\t\t\t\t\tZoneId:    pulumi.String(_default.Resources[0].MasterZones[2]),\n\t\t\t\t\tVswitchId: vpc1vsw2.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVpcId:           vpc1.ID(),\n\t\t\tCenId:           cen.ID(),\n\t\t\tTransitRouterId: tr.TransitRouterId,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tfoo,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\twait10Minutes, err := time.NewSleep(ctx, \"wait_10_minutes\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"10m\",\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\ttr_vpc1,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfirewall.NewVpcCenTrFirewall(ctx, \"default\", \u0026cloudfirewall.VpcCenTrFirewallArgs{\n\t\t\tCenId:                  tr_vpc1.CenId,\n\t\t\tFirewallName:           pulumi.String(name),\n\t\t\tFirewallSubnetCidr:     pulumi.String(firewallSubnetCidr),\n\t\t\tTrAttachmentSlaveCidr:  pulumi.String(trAttachmentSlaveCidr),\n\t\t\tFirewallDescription:    pulumi.String(\"VpcCenTrFirewall created by terraform\"),\n\t\t\tRegionNo:               pulumi.String(region),\n\t\t\tTrAttachmentMasterCidr: pulumi.String(trAttachmentMasterCidr),\n\t\t\tFirewallVpcCidr:        pulumi.String(firewallVpcCidr),\n\t\t\tTransitRouterId:        tr.TransitRouterId,\n\t\t\tRouteMode:              pulumi.String(\"managed\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\twait10Minutes,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterAvailableResourcesArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.RouteTable;\nimport com.pulumi.alicloud.vpc.RouteTableArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachmentArgs;\nimport com.pulumi.alicloud.cen.inputs.TransitRouterVpcAttachmentZoneMappingArgs;\nimport com.pulumi.time.Sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.alicloud.cloudfirewall.VpcCenTrFirewall;\nimport com.pulumi.alicloud.cloudfirewall.VpcCenTrFirewallArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var description = config.get(\"description\").orElse(\"Created by Terraform\");\n        final var firewallName = config.get(\"firewallName\").orElse(\"tf-example\");\n        final var trAttachmentMasterCidr = config.get(\"trAttachmentMasterCidr\").orElse(\"192.168.3.192/26\");\n        final var firewallSubnetCidr = config.get(\"firewallSubnetCidr\").orElse(\"192.168.3.0/25\");\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var trAttachmentSlaveCidr = config.get(\"trAttachmentSlaveCidr\").orElse(\"192.168.3.128/26\");\n        final var firewallVpcCidr = config.get(\"firewallVpcCidr\").orElse(\"192.168.3.0/24\");\n        final var zone1 = config.get(\"zone1\").orElse(\"cn-hangzhou-h\");\n        final var firewallNameUpdate = config.get(\"firewallNameUpdate\").orElse(\"tf-example-1\");\n        final var zone2 = config.get(\"zone2\").orElse(\"cn-hangzhou-i\");\n        final var default = CenFunctions.getTransitRouterAvailableResources(GetTransitRouterAvailableResourcesArgs.builder()\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var cen = new Instance(\"cen\", InstanceArgs.builder()\n            .description(\"terraform example\")\n            .cenInstanceName(name)\n            .build());\n\n        var tr = new TransitRouter(\"tr\", TransitRouterArgs.builder()\n            .transitRouterName(name)\n            .transitRouterDescription(\"tr-created-by-terraform\")\n            .cenId(cen.id())\n            .build());\n\n        var vpc1 = new Network(\"vpc1\", NetworkArgs.builder()\n            .description(\"created by terraform\")\n            .cidrBlock(\"192.168.1.0/24\")\n            .vpcName(name)\n            .build());\n\n        var vpc1vsw1 = new Switch(\"vpc1vsw1\", SwitchArgs.builder()\n            .cidrBlock(\"192.168.1.0/25\")\n            .vswitchName(name)\n            .vpcId(vpc1.id())\n            .zoneId(default_.resources()[0].masterZones()[1])\n            .build());\n\n        var vpc1vsw2 = new Switch(\"vpc1vsw2\", SwitchArgs.builder()\n            .vpcId(vpc1.id())\n            .cidrBlock(\"192.168.1.128/26\")\n            .vswitchName(name)\n            .zoneId(default_.resources()[0].masterZones()[2])\n            .build());\n\n        var foo = new RouteTable(\"foo\", RouteTableArgs.builder()\n            .vpcId(vpc1.id())\n            .routeTableName(name)\n            .description(name)\n            .build());\n\n        var tr_vpc1 = new TransitRouterVpcAttachment(\"tr-vpc1\", TransitRouterVpcAttachmentArgs.builder()\n            .zoneMappings(            \n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .vswitchId(vpc1vsw1.id())\n                    .zoneId(default_.resources()[0].masterZones()[1])\n                    .build(),\n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .zoneId(default_.resources()[0].masterZones()[2])\n                    .vswitchId(vpc1vsw2.id())\n                    .build())\n            .vpcId(vpc1.id())\n            .cenId(cen.id())\n            .transitRouterId(tr.transitRouterId())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(foo)\n                .build());\n\n        var wait10Minutes = new Sleep(\"wait10Minutes\", SleepArgs.builder()\n            .createDuration(\"10m\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(List.of(tr_vpc1))\n                .build());\n\n        var defaultVpcCenTrFirewall = new VpcCenTrFirewall(\"defaultVpcCenTrFirewall\", VpcCenTrFirewallArgs.builder()\n            .cenId(tr_vpc1.cenId())\n            .firewallName(name)\n            .firewallSubnetCidr(firewallSubnetCidr)\n            .trAttachmentSlaveCidr(trAttachmentSlaveCidr)\n            .firewallDescription(\"VpcCenTrFirewall created by terraform\")\n            .regionNo(region)\n            .trAttachmentMasterCidr(trAttachmentMasterCidr)\n            .firewallVpcCidr(firewallVpcCidr)\n            .transitRouterId(tr.transitRouterId())\n            .routeMode(\"managed\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(wait10Minutes)\n                .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  description:\n    type: string\n    default: Created by Terraform\n  firewallName:\n    type: string\n    default: tf-example\n  trAttachmentMasterCidr:\n    type: string\n    default: 192.168.3.192/26\n  firewallSubnetCidr:\n    type: string\n    default: 192.168.3.0/25\n  region:\n    type: string\n    default: cn-hangzhou\n  trAttachmentSlaveCidr:\n    type: string\n    default: 192.168.3.128/26\n  firewallVpcCidr:\n    type: string\n    default: 192.168.3.0/24\n  zone1:\n    type: string\n    default: cn-hangzhou-h\n  firewallNameUpdate:\n    type: string\n    default: tf-example-1\n  zone2:\n    type: string\n    default: cn-hangzhou-i\nresources:\n  cen:\n    type: alicloud:cen:Instance\n    properties:\n      description: terraform example\n      cenInstanceName: ${name}\n  tr:\n    type: alicloud:cen:TransitRouter\n    properties:\n      transitRouterName: ${name}\n      transitRouterDescription: tr-created-by-terraform\n      cenId: ${cen.id}\n  vpc1:\n    type: alicloud:vpc:Network\n    properties:\n      description: created by terraform\n      cidrBlock: 192.168.1.0/24\n      vpcName: ${name}\n  vpc1vsw1:\n    type: alicloud:vpc:Switch\n    properties:\n      cidrBlock: 192.168.1.0/25\n      vswitchName: ${name}\n      vpcId: ${vpc1.id}\n      zoneId: ${default.resources[0].masterZones[1]}\n  vpc1vsw2:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${vpc1.id}\n      cidrBlock: 192.168.1.128/26\n      vswitchName: ${name}\n      zoneId: ${default.resources[0].masterZones[2]}\n  foo:\n    type: alicloud:vpc:RouteTable\n    properties:\n      vpcId: ${vpc1.id}\n      routeTableName: ${name}\n      description: ${name}\n  tr-vpc1:\n    type: alicloud:cen:TransitRouterVpcAttachment\n    properties:\n      zoneMappings:\n        - vswitchId: ${vpc1vsw1.id}\n          zoneId: ${default.resources[0].masterZones[1]}\n        - zoneId: ${default.resources[0].masterZones[2]}\n          vswitchId: ${vpc1vsw2.id}\n      vpcId: ${vpc1.id}\n      cenId: ${cen.id}\n      transitRouterId: ${tr.transitRouterId}\n    options:\n      dependsOn:\n        - ${foo}\n  wait10Minutes:\n    type: time:Sleep\n    name: wait_10_minutes\n    properties:\n      createDuration: 10m\n    options:\n      dependsOn:\n        - ${[\"tr-vpc1\"]}\n  defaultVpcCenTrFirewall:\n    type: alicloud:cloudfirewall:VpcCenTrFirewall\n    name: default\n    properties:\n      cenId: ${[\"tr-vpc1\"].cenId}\n      firewallName: ${name}\n      firewallSubnetCidr: ${firewallSubnetCidr}\n      trAttachmentSlaveCidr: ${trAttachmentSlaveCidr}\n      firewallDescription: VpcCenTrFirewall created by terraform\n      regionNo: ${region}\n      trAttachmentMasterCidr: ${trAttachmentMasterCidr}\n      firewallVpcCidr: ${firewallVpcCidr}\n      transitRouterId: ${tr.transitRouterId}\n      routeMode: managed\n    options:\n      dependsOn:\n        - ${wait10Minutes}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterAvailableResources\n      arguments: {}\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Vpc Cen Tr Firewall can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudfirewall/vpcCenTrFirewall:VpcCenTrFirewall example \u003cfirewall_id\u003e\n```\n\n","properties":{"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n"},"firewallDescription":{"type":"string","description":"The description of the firewall.\n"},"firewallEniId":{"type":"string","description":"The ID of the firewall ENI.\n"},"firewallEniVpcId":{"type":"string","description":"The ID of the VPC where the firewall ENI resides.\n"},"firewallName":{"type":"string","description":"The name of the Cloud Firewall.\n"},"firewallSubnetCidr":{"type":"string","description":"The CIDR block of the subnet in the firewall VPC that hosts the firewall ENI in automatic mode.\n"},"firewallVpcAttachmentId":{"type":"string","description":"The ID of the firewall VPC connection.\n"},"firewallVpcCidr":{"type":"string","description":"The CIDR block of the firewall VPC in automatic mode.\n"},"regionNo":{"type":"string","description":"The region ID of the transit router instance.\n"},"routeMode":{"type":"string","description":"The routing mode. Valid values:\n"},"status":{"type":"string","description":"The status of the firewall.\n"},"trAttachmentMasterCidr":{"type":"string","description":"The primary CIDR block of the subnet in the firewall VPC used to connect to the transit router (TR) in automatic mode.\n"},"trAttachmentMasterZone":{"type":"string","description":"The primary zone of the vSwitch.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"trAttachmentSlaveCidr":{"type":"string","description":"The secondary CIDR block of the subnet in the firewall VPC used to connect to TR in automatic mode.\n"},"trAttachmentSlaveZone":{"type":"string","description":"The secondary zone of the vSwitch.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"transitRouterId":{"type":"string","description":"The ID of the Transit Router instance.\n"}},"required":["cenId","firewallEniId","firewallEniVpcId","firewallName","firewallSubnetCidr","firewallVpcAttachmentId","firewallVpcCidr","regionNo","routeMode","status","trAttachmentMasterCidr","trAttachmentSlaveCidr","transitRouterId"],"inputProperties":{"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n","willReplaceOnChanges":true},"firewallDescription":{"type":"string","description":"The description of the firewall.\n","willReplaceOnChanges":true},"firewallName":{"type":"string","description":"The name of the Cloud Firewall.\n"},"firewallSubnetCidr":{"type":"string","description":"The CIDR block of the subnet in the firewall VPC that hosts the firewall ENI in automatic mode.\n","willReplaceOnChanges":true},"firewallVpcCidr":{"type":"string","description":"The CIDR block of the firewall VPC in automatic mode.\n","willReplaceOnChanges":true},"regionNo":{"type":"string","description":"The region ID of the transit router instance.\n","willReplaceOnChanges":true},"routeMode":{"type":"string","description":"The routing mode. Valid values:\n","willReplaceOnChanges":true},"trAttachmentMasterCidr":{"type":"string","description":"The primary CIDR block of the subnet in the firewall VPC used to connect to the transit router (TR) in automatic mode.\n","willReplaceOnChanges":true},"trAttachmentMasterZone":{"type":"string","description":"The primary zone of the vSwitch.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"trAttachmentSlaveCidr":{"type":"string","description":"The secondary CIDR block of the subnet in the firewall VPC used to connect to TR in automatic mode.\n","willReplaceOnChanges":true},"trAttachmentSlaveZone":{"type":"string","description":"The secondary zone of the vSwitch.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"transitRouterId":{"type":"string","description":"The ID of the Transit Router instance.\n","willReplaceOnChanges":true}},"requiredInputs":["cenId","firewallName","firewallSubnetCidr","firewallVpcCidr","regionNo","routeMode","trAttachmentMasterCidr","trAttachmentSlaveCidr","transitRouterId"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcCenTrFirewall resources.\n","properties":{"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n","willReplaceOnChanges":true},"firewallDescription":{"type":"string","description":"The description of the firewall.\n","willReplaceOnChanges":true},"firewallEniId":{"type":"string","description":"The ID of the firewall ENI.\n"},"firewallEniVpcId":{"type":"string","description":"The ID of the VPC where the firewall ENI resides.\n"},"firewallName":{"type":"string","description":"The name of the Cloud Firewall.\n"},"firewallSubnetCidr":{"type":"string","description":"The CIDR block of the subnet in the firewall VPC that hosts the firewall ENI in automatic mode.\n","willReplaceOnChanges":true},"firewallVpcAttachmentId":{"type":"string","description":"The ID of the firewall VPC connection.\n"},"firewallVpcCidr":{"type":"string","description":"The CIDR block of the firewall VPC in automatic mode.\n","willReplaceOnChanges":true},"regionNo":{"type":"string","description":"The region ID of the transit router instance.\n","willReplaceOnChanges":true},"routeMode":{"type":"string","description":"The routing mode. Valid values:\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the firewall.\n"},"trAttachmentMasterCidr":{"type":"string","description":"The primary CIDR block of the subnet in the firewall VPC used to connect to the transit router (TR) in automatic mode.\n","willReplaceOnChanges":true},"trAttachmentMasterZone":{"type":"string","description":"The primary zone of the vSwitch.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"trAttachmentSlaveCidr":{"type":"string","description":"The secondary CIDR block of the subnet in the firewall VPC used to connect to TR in automatic mode.\n","willReplaceOnChanges":true},"trAttachmentSlaveZone":{"type":"string","description":"The secondary zone of the vSwitch.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"transitRouterId":{"type":"string","description":"The ID of the Transit Router instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudfirewall/vpcFirewallAclEngineMode:VpcFirewallAclEngineMode":{"description":"Provides a Cloud Firewall Vpc Firewall Acl Engine Mode resource.\n\nVPC boundary firewall engine mode.\n\nFor information about Cloud Firewall Vpc Firewall Acl Engine Mode and how to use it, see [What is Vpc Firewall Acl Engine Mode](https://next.api.alibabacloud.com/document/Cloudfw/2017-12-07/ModifyVpcFirewallAclEngineMode).\n\n\u003e **NOTE:** Available since v1.269.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst cen = new alicloud.cen.Instance(\"cen\", {\n    description: \"yqc-example001\",\n    cenInstanceName: \"yqc-example-CenInstance001\",\n});\nconst TR = new alicloud.cen.TransitRouter(\"TR\", {cenId: cen.id});\nconst vpc1 = new alicloud.vpc.Network(\"vpc1\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: \"yqc-vpc-example-001\",\n});\nconst vpc1vsw1 = new alicloud.vpc.Switch(\"vpc1vsw1\", {\n    vpcId: vpc1.id,\n    zoneId: \"cn-hangzhou-h\",\n    cidrBlock: \"172.16.1.0/24\",\n});\nconst vpc1vsw2 = new alicloud.vpc.Switch(\"vpc1vsw2\", {\n    vpcId: vpc1.id,\n    zoneId: \"cn-hangzhou-i\",\n    cidrBlock: \"172.16.2.0/24\",\n});\nconst tr_vpc1 = new alicloud.cen.TransitRouterVpcAttachment(\"tr-vpc1\", {\n    vpcId: vpc1.id,\n    cenId: cen.id,\n    zoneMappings: [\n        {\n            vswitchId: vpc1vsw1.id,\n            zoneId: vpc1vsw1.zoneId,\n        },\n        {\n            vswitchId: vpc1vsw2.id,\n            zoneId: vpc1vsw2.zoneId,\n        },\n    ],\n    transitRouterVpcAttachmentName: \"example\",\n    transitRouterAttachmentDescription: \"111\",\n    autoPublishRouteEnabled: true,\n    transitRouterId: TR.transitRouterId,\n});\nconst _default = new alicloud.cloudfirewall.VpcFirewallAclEngineMode(\"default\", {\n    strictMode: 0,\n    vpcFirewallId: cen.id,\n    memberUid: \"1511928242963727\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncen = alicloud.cen.Instance(\"cen\",\n    description=\"yqc-example001\",\n    cen_instance_name=\"yqc-example-CenInstance001\")\ntr = alicloud.cen.TransitRouter(\"TR\", cen_id=cen.id)\nvpc1 = alicloud.vpc.Network(\"vpc1\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=\"yqc-vpc-example-001\")\nvpc1vsw1 = alicloud.vpc.Switch(\"vpc1vsw1\",\n    vpc_id=vpc1.id,\n    zone_id=\"cn-hangzhou-h\",\n    cidr_block=\"172.16.1.0/24\")\nvpc1vsw2 = alicloud.vpc.Switch(\"vpc1vsw2\",\n    vpc_id=vpc1.id,\n    zone_id=\"cn-hangzhou-i\",\n    cidr_block=\"172.16.2.0/24\")\ntr_vpc1 = alicloud.cen.TransitRouterVpcAttachment(\"tr-vpc1\",\n    vpc_id=vpc1.id,\n    cen_id=cen.id,\n    zone_mappings=[\n        {\n            \"vswitch_id\": vpc1vsw1.id,\n            \"zone_id\": vpc1vsw1.zone_id,\n        },\n        {\n            \"vswitch_id\": vpc1vsw2.id,\n            \"zone_id\": vpc1vsw2.zone_id,\n        },\n    ],\n    transit_router_vpc_attachment_name=\"example\",\n    transit_router_attachment_description=\"111\",\n    auto_publish_route_enabled=True,\n    transit_router_id=tr.transit_router_id)\ndefault = alicloud.cloudfirewall.VpcFirewallAclEngineMode(\"default\",\n    strict_mode=0,\n    vpc_firewall_id=cen.id,\n    member_uid=\"1511928242963727\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var cen = new AliCloud.Cen.Instance(\"cen\", new()\n    {\n        Description = \"yqc-example001\",\n        CenInstanceName = \"yqc-example-CenInstance001\",\n    });\n\n    var TR = new AliCloud.Cen.TransitRouter(\"TR\", new()\n    {\n        CenId = cen.Id,\n    });\n\n    var vpc1 = new AliCloud.Vpc.Network(\"vpc1\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = \"yqc-vpc-example-001\",\n    });\n\n    var vpc1vsw1 = new AliCloud.Vpc.Switch(\"vpc1vsw1\", new()\n    {\n        VpcId = vpc1.Id,\n        ZoneId = \"cn-hangzhou-h\",\n        CidrBlock = \"172.16.1.0/24\",\n    });\n\n    var vpc1vsw2 = new AliCloud.Vpc.Switch(\"vpc1vsw2\", new()\n    {\n        VpcId = vpc1.Id,\n        ZoneId = \"cn-hangzhou-i\",\n        CidrBlock = \"172.16.2.0/24\",\n    });\n\n    var tr_vpc1 = new AliCloud.Cen.TransitRouterVpcAttachment(\"tr-vpc1\", new()\n    {\n        VpcId = vpc1.Id,\n        CenId = cen.Id,\n        ZoneMappings = new[]\n        {\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                VswitchId = vpc1vsw1.Id,\n                ZoneId = vpc1vsw1.ZoneId,\n            },\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                VswitchId = vpc1vsw2.Id,\n                ZoneId = vpc1vsw2.ZoneId,\n            },\n        },\n        TransitRouterVpcAttachmentName = \"example\",\n        TransitRouterAttachmentDescription = \"111\",\n        AutoPublishRouteEnabled = true,\n        TransitRouterId = TR.TransitRouterId,\n    });\n\n    var @default = new AliCloud.CloudFirewall.VpcFirewallAclEngineMode(\"default\", new()\n    {\n        StrictMode = 0,\n        VpcFirewallId = cen.Id,\n        MemberUid = \"1511928242963727\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcen, err := cen.NewInstance(ctx, \"cen\", \u0026cen.InstanceArgs{\n\t\t\tDescription:     pulumi.String(\"yqc-example001\"),\n\t\t\tCenInstanceName: pulumi.String(\"yqc-example-CenInstance001\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tTR, err := cen.NewTransitRouter(ctx, \"TR\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId: cen.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpc1, err := vpc.NewNetwork(ctx, \"vpc1\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(\"yqc-vpc-example-001\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpc1vsw1, err := vpc.NewSwitch(ctx, \"vpc1vsw1\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     vpc1.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-h\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpc1vsw2, err := vpc.NewSwitch(ctx, \"vpc1vsw2\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     vpc1.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-i\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.2.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cen.NewTransitRouterVpcAttachment(ctx, \"tr-vpc1\", \u0026cen.TransitRouterVpcAttachmentArgs{\n\t\t\tVpcId: vpc1.ID(),\n\t\t\tCenId: cen.ID(),\n\t\t\tZoneMappings: cen.TransitRouterVpcAttachmentZoneMappingArray{\n\t\t\t\t\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\n\t\t\t\t\tVswitchId: vpc1vsw1.ID(),\n\t\t\t\t\tZoneId:    vpc1vsw1.ZoneId,\n\t\t\t\t},\n\t\t\t\t\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\n\t\t\t\t\tVswitchId: vpc1vsw2.ID(),\n\t\t\t\t\tZoneId:    vpc1vsw2.ZoneId,\n\t\t\t\t},\n\t\t\t},\n\t\t\tTransitRouterVpcAttachmentName:     pulumi.String(\"example\"),\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(\"111\"),\n\t\t\tAutoPublishRouteEnabled:            pulumi.Bool(true),\n\t\t\tTransitRouterId:                    TR.TransitRouterId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfirewall.NewVpcFirewallAclEngineMode(ctx, \"default\", \u0026cloudfirewall.VpcFirewallAclEngineModeArgs{\n\t\t\tStrictMode:    pulumi.Int(0),\n\t\t\tVpcFirewallId: cen.ID(),\n\t\t\tMemberUid:     pulumi.String(\"1511928242963727\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachmentArgs;\nimport com.pulumi.alicloud.cen.inputs.TransitRouterVpcAttachmentZoneMappingArgs;\nimport com.pulumi.alicloud.cloudfirewall.VpcFirewallAclEngineMode;\nimport com.pulumi.alicloud.cloudfirewall.VpcFirewallAclEngineModeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var cen = new Instance(\"cen\", InstanceArgs.builder()\n            .description(\"yqc-example001\")\n            .cenInstanceName(\"yqc-example-CenInstance001\")\n            .build());\n\n        var tR = new TransitRouter(\"TR\", TransitRouterArgs.builder()\n            .cenId(cen.id())\n            .build());\n\n        var vpc1 = new Network(\"vpc1\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(\"yqc-vpc-example-001\")\n            .build());\n\n        var vpc1vsw1 = new Switch(\"vpc1vsw1\", SwitchArgs.builder()\n            .vpcId(vpc1.id())\n            .zoneId(\"cn-hangzhou-h\")\n            .cidrBlock(\"172.16.1.0/24\")\n            .build());\n\n        var vpc1vsw2 = new Switch(\"vpc1vsw2\", SwitchArgs.builder()\n            .vpcId(vpc1.id())\n            .zoneId(\"cn-hangzhou-i\")\n            .cidrBlock(\"172.16.2.0/24\")\n            .build());\n\n        var tr_vpc1 = new TransitRouterVpcAttachment(\"tr-vpc1\", TransitRouterVpcAttachmentArgs.builder()\n            .vpcId(vpc1.id())\n            .cenId(cen.id())\n            .zoneMappings(            \n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .vswitchId(vpc1vsw1.id())\n                    .zoneId(vpc1vsw1.zoneId())\n                    .build(),\n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .vswitchId(vpc1vsw2.id())\n                    .zoneId(vpc1vsw2.zoneId())\n                    .build())\n            .transitRouterVpcAttachmentName(\"example\")\n            .transitRouterAttachmentDescription(\"111\")\n            .autoPublishRouteEnabled(true)\n            .transitRouterId(TR.transitRouterId())\n            .build());\n\n        var default_ = new VpcFirewallAclEngineMode(\"default\", VpcFirewallAclEngineModeArgs.builder()\n            .strictMode(0)\n            .vpcFirewallId(cen.id())\n            .memberUid(\"1511928242963727\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  cen:\n    type: alicloud:cen:Instance\n    properties:\n      description: yqc-example001\n      cenInstanceName: yqc-example-CenInstance001\n  TR:\n    type: alicloud:cen:TransitRouter\n    properties:\n      cenId: ${cen.id}\n  vpc1:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName: yqc-vpc-example-001\n  vpc1vsw1:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${vpc1.id}\n      zoneId: cn-hangzhou-h\n      cidrBlock: 172.16.1.0/24\n  vpc1vsw2:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${vpc1.id}\n      zoneId: cn-hangzhou-i\n      cidrBlock: 172.16.2.0/24\n  tr-vpc1:\n    type: alicloud:cen:TransitRouterVpcAttachment\n    properties:\n      vpcId: ${vpc1.id}\n      cenId: ${cen.id}\n      zoneMappings:\n        - vswitchId: ${vpc1vsw1.id}\n          zoneId: ${vpc1vsw1.zoneId}\n        - vswitchId: ${vpc1vsw2.id}\n          zoneId: ${vpc1vsw2.zoneId}\n      transitRouterVpcAttachmentName: example\n      transitRouterAttachmentDescription: '111'\n      autoPublishRouteEnabled: true\n      transitRouterId: ${TR.transitRouterId}\n  default:\n    type: alicloud:cloudfirewall:VpcFirewallAclEngineMode\n    properties:\n      strictMode: '0'\n      vpcFirewallId: ${cen.id}\n      memberUid: '1511928242963727'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudfirewall.VpcFirewallAclEngineMode`\" pulumi-lang-dotnet=\"`alicloud.cloudfirewall.VpcFirewallAclEngineMode`\" pulumi-lang-go=\"`cloudfirewall.VpcFirewallAclEngineMode`\" pulumi-lang-python=\"`cloudfirewall.VpcFirewallAclEngineMode`\" pulumi-lang-yaml=\"`alicloud.cloudfirewall.VpcFirewallAclEngineMode`\" pulumi-lang-java=\"`alicloud.cloudfirewall.VpcFirewallAclEngineMode`\"\u003e`alicloud.cloudfirewall.VpcFirewallAclEngineMode`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudfirewall.VpcFirewallAclEngineMode`\" pulumi-lang-dotnet=\"`alicloud.cloudfirewall.VpcFirewallAclEngineMode`\" pulumi-lang-go=\"`cloudfirewall.VpcFirewallAclEngineMode`\" pulumi-lang-python=\"`cloudfirewall.VpcFirewallAclEngineMode`\" pulumi-lang-yaml=\"`alicloud.cloudfirewall.VpcFirewallAclEngineMode`\" pulumi-lang-java=\"`alicloud.cloudfirewall.VpcFirewallAclEngineMode`\"\u003e`alicloud.cloudfirewall.VpcFirewallAclEngineMode`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Vpc Firewall Acl Engine Mode can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudfirewall/vpcFirewallAclEngineMode:VpcFirewallAclEngineMode example \u003cvpc_firewall_id\u003e\n```\n\n","properties":{"memberUid":{"type":"string","description":"The ID of member account.\n"},"strictMode":{"type":"integer","description":"The mode of the ACL engine. Possible values are \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"vpcFirewallId":{"type":"string","description":"The ID of the VPC firewall.\n"}},"required":["strictMode","vpcFirewallId"],"inputProperties":{"memberUid":{"type":"string","description":"The ID of member account.\n","willReplaceOnChanges":true},"strictMode":{"type":"integer","description":"The mode of the ACL engine. Possible values are \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"vpcFirewallId":{"type":"string","description":"The ID of the VPC firewall.\n","willReplaceOnChanges":true}},"requiredInputs":["strictMode","vpcFirewallId"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcFirewallAclEngineMode resources.\n","properties":{"memberUid":{"type":"string","description":"The ID of member account.\n","willReplaceOnChanges":true},"strictMode":{"type":"integer","description":"The mode of the ACL engine. Possible values are \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"vpcFirewallId":{"type":"string","description":"The ID of the VPC firewall.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudfirewall/vpcFirewallIpsConfig:VpcFirewallIpsConfig":{"description":"Provides a Cloud Firewall Vpc Firewall Ips Config resource.\n\nIP configuration of VPC firewall.\n\nFor information about Cloud Firewall Vpc Firewall Ips Config and how to use it, see [What is Vpc Firewall Ips Config](https://next.api.alibabacloud.com/document/Cloudfw/2017-12-07/ModifyVpcFirewallDefaultIPSConfig).\n\n\u003e **NOTE:** Available since v1.269.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cloudfirewall.VpcFirewallIpsConfig(\"default\", {\n    enableAllPatch: 0,\n    basicRules: 0,\n    runMode: 0,\n    vpcFirewallId: \"vfw-tr-bb81adb2d8184bc290a5\",\n    ruleClass: \"0\",\n    lang: \"cn-shenzhen\",\n    memberUid: \"1094685339207557\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudfirewall.VpcFirewallIpsConfig(\"default\",\n    enable_all_patch=0,\n    basic_rules=0,\n    run_mode=0,\n    vpc_firewall_id=\"vfw-tr-bb81adb2d8184bc290a5\",\n    rule_class=\"0\",\n    lang=\"cn-shenzhen\",\n    member_uid=\"1094685339207557\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.CloudFirewall.VpcFirewallIpsConfig(\"default\", new()\n    {\n        EnableAllPatch = 0,\n        BasicRules = 0,\n        RunMode = 0,\n        VpcFirewallId = \"vfw-tr-bb81adb2d8184bc290a5\",\n        RuleClass = \"0\",\n        Lang = \"cn-shenzhen\",\n        MemberUid = \"1094685339207557\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cloudfirewall.NewVpcFirewallIpsConfig(ctx, \"default\", \u0026cloudfirewall.VpcFirewallIpsConfigArgs{\n\t\t\tEnableAllPatch: pulumi.Int(0),\n\t\t\tBasicRules:     pulumi.Int(0),\n\t\t\tRunMode:        pulumi.Int(0),\n\t\t\tVpcFirewallId:  pulumi.String(\"vfw-tr-bb81adb2d8184bc290a5\"),\n\t\t\tRuleClass:      pulumi.String(\"0\"),\n\t\t\tLang:           pulumi.String(\"cn-shenzhen\"),\n\t\t\tMemberUid:      pulumi.String(\"1094685339207557\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.VpcFirewallIpsConfig;\nimport com.pulumi.alicloud.cloudfirewall.VpcFirewallIpsConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new VpcFirewallIpsConfig(\"default\", VpcFirewallIpsConfigArgs.builder()\n            .enableAllPatch(0)\n            .basicRules(0)\n            .runMode(0)\n            .vpcFirewallId(\"vfw-tr-bb81adb2d8184bc290a5\")\n            .ruleClass(\"0\")\n            .lang(\"cn-shenzhen\")\n            .memberUid(\"1094685339207557\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cloudfirewall:VpcFirewallIpsConfig\n    properties:\n      enableAllPatch: '0'\n      basicRules: '0'\n      runMode: '0'\n      vpcFirewallId: vfw-tr-bb81adb2d8184bc290a5\n      ruleClass: '0'\n      lang: cn-shenzhen\n      memberUid: '1094685339207557'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudfirewall.VpcFirewallIpsConfig`\" pulumi-lang-dotnet=\"`alicloud.cloudfirewall.VpcFirewallIpsConfig`\" pulumi-lang-go=\"`cloudfirewall.VpcFirewallIpsConfig`\" pulumi-lang-python=\"`cloudfirewall.VpcFirewallIpsConfig`\" pulumi-lang-yaml=\"`alicloud.cloudfirewall.VpcFirewallIpsConfig`\" pulumi-lang-java=\"`alicloud.cloudfirewall.VpcFirewallIpsConfig`\"\u003e`alicloud.cloudfirewall.VpcFirewallIpsConfig`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudfirewall.VpcFirewallIpsConfig`\" pulumi-lang-dotnet=\"`alicloud.cloudfirewall.VpcFirewallIpsConfig`\" pulumi-lang-go=\"`cloudfirewall.VpcFirewallIpsConfig`\" pulumi-lang-python=\"`cloudfirewall.VpcFirewallIpsConfig`\" pulumi-lang-yaml=\"`alicloud.cloudfirewall.VpcFirewallIpsConfig`\" pulumi-lang-java=\"`alicloud.cloudfirewall.VpcFirewallIpsConfig`\"\u003e`alicloud.cloudfirewall.VpcFirewallIpsConfig`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Firewall Vpc Firewall Ips Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudfirewall/vpcFirewallIpsConfig:VpcFirewallIpsConfig example \u003cid\u003e\n```\n\n","properties":{"basicRules":{"type":"integer","description":"Base rule switch. Value:\n"},"enableAllPatch":{"type":"integer","description":"Virtual patch switch. Value:\n"},"lang":{"type":"string","description":"Language\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"memberUid":{"type":"string","description":"MemberUid\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"ruleClass":{"type":"string","description":"IPS rule Group\n"},"runMode":{"type":"integer","description":"IPS defense mode. Value:\n"},"vpcFirewallId":{"type":"string","description":"The ID of the VPC firewall instance. Value:\n- When VPC firewall protects the network instances (including VPC, VBR, and CCN) and the specified VPC, the instance ID uses the CEN instance ID. You can call the DescribeVpcFirewallCenList operation to query the instance ID of CEN.\n- When the VPC firewall protects the traffic between two VPCs connected through the express connection, the instance ID uses the VPC firewall instance ID. You can call the DescribeVpcFirewallList operation to query the instance ID of the VPC firewall.\n"}},"required":["basicRules","enableAllPatch","runMode","vpcFirewallId"],"inputProperties":{"basicRules":{"type":"integer","description":"Base rule switch. Value:\n"},"enableAllPatch":{"type":"integer","description":"Virtual patch switch. Value:\n"},"lang":{"type":"string","description":"Language\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"memberUid":{"type":"string","description":"MemberUid\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"ruleClass":{"type":"string","description":"IPS rule Group\n"},"runMode":{"type":"integer","description":"IPS defense mode. Value:\n"},"vpcFirewallId":{"type":"string","description":"The ID of the VPC firewall instance. Value:\n- When VPC firewall protects the network instances (including VPC, VBR, and CCN) and the specified VPC, the instance ID uses the CEN instance ID. You can call the DescribeVpcFirewallCenList operation to query the instance ID of CEN.\n- When the VPC firewall protects the traffic between two VPCs connected through the express connection, the instance ID uses the VPC firewall instance ID. You can call the DescribeVpcFirewallList operation to query the instance ID of the VPC firewall.\n","willReplaceOnChanges":true}},"requiredInputs":["basicRules","enableAllPatch","runMode","vpcFirewallId"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcFirewallIpsConfig resources.\n","properties":{"basicRules":{"type":"integer","description":"Base rule switch. Value:\n"},"enableAllPatch":{"type":"integer","description":"Virtual patch switch. Value:\n"},"lang":{"type":"string","description":"Language\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"memberUid":{"type":"string","description":"MemberUid\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"ruleClass":{"type":"string","description":"IPS rule Group\n"},"runMode":{"type":"integer","description":"IPS defense mode. Value:\n"},"vpcFirewallId":{"type":"string","description":"The ID of the VPC firewall instance. Value:\n- When VPC firewall protects the network instances (including VPC, VBR, and CCN) and the specified VPC, the instance ID uses the CEN instance ID. You can call the DescribeVpcFirewallCenList operation to query the instance ID of CEN.\n- When the VPC firewall protects the traffic between two VPCs connected through the express connection, the instance ID uses the VPC firewall instance ID. You can call the DescribeVpcFirewallList operation to query the instance ID of the VPC firewall.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudmonitor/serviceAgentConfig:ServiceAgentConfig":{"description":"Provides a Cloud Monitor Service Agent Config resource.\n\nCloud monitoring plug-in global configuration.\n\nFor information about Cloud Monitor Service Agent Config and how to use it, see [What is Agent Config](https://next.api.alibabacloud.com/document/Cms/2019-01-01/PutMonitoringConfig).\n\n\u003e **NOTE:** Available since v1.270.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cloudmonitor.ServiceAgentConfig(\"default\", {enableInstallAgentNewEcs: false});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudmonitor.ServiceAgentConfig(\"default\", enable_install_agent_new_ecs=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.CloudMonitor.ServiceAgentConfig(\"default\", new()\n    {\n        EnableInstallAgentNewEcs = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudmonitor\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cloudmonitor.NewServiceAgentConfig(ctx, \"default\", \u0026cloudmonitor.ServiceAgentConfigArgs{\n\t\t\tEnableInstallAgentNewEcs: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudmonitor.ServiceAgentConfig;\nimport com.pulumi.alicloud.cloudmonitor.ServiceAgentConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ServiceAgentConfig(\"default\", ServiceAgentConfigArgs.builder()\n            .enableInstallAgentNewEcs(false)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cloudmonitor:ServiceAgentConfig\n    properties:\n      enableInstallAgentNewEcs: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudmonitor.ServiceAgentConfig`\" pulumi-lang-dotnet=\"`alicloud.cloudmonitor.ServiceAgentConfig`\" pulumi-lang-go=\"`cloudmonitor.ServiceAgentConfig`\" pulumi-lang-python=\"`cloudmonitor.ServiceAgentConfig`\" pulumi-lang-yaml=\"`alicloud.cloudmonitor.ServiceAgentConfig`\" pulumi-lang-java=\"`alicloud.cloudmonitor.ServiceAgentConfig`\"\u003e`alicloud.cloudmonitor.ServiceAgentConfig`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudmonitor.ServiceAgentConfig`\" pulumi-lang-dotnet=\"`alicloud.cloudmonitor.ServiceAgentConfig`\" pulumi-lang-go=\"`cloudmonitor.ServiceAgentConfig`\" pulumi-lang-python=\"`cloudmonitor.ServiceAgentConfig`\" pulumi-lang-yaml=\"`alicloud.cloudmonitor.ServiceAgentConfig`\" pulumi-lang-java=\"`alicloud.cloudmonitor.ServiceAgentConfig`\"\u003e`alicloud.cloudmonitor.ServiceAgentConfig`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Agent Config can be imported using the id, e.g.\n\n```sh\n$ terraform import alicloud_cloud_monitor_service_agent_config.example \u003cAlibaba Cloud Account ID\u003e\n```\n\n","properties":{"enableInstallAgentNewEcs":{"type":"boolean","description":"Whether the cloud monitoring plug-in is automatically installed on the newly purchased ECS host. Value:\n- true (default): The cloud monitoring plug-in is automatically installed on the newly purchased ECS host.\n- false: The cloud monitoring plug-in is not automatically installed on the newly purchased ECS host.\n"}},"inputProperties":{"enableInstallAgentNewEcs":{"type":"boolean","description":"Whether the cloud monitoring plug-in is automatically installed on the newly purchased ECS host. Value:\n- true (default): The cloud monitoring plug-in is automatically installed on the newly purchased ECS host.\n- false: The cloud monitoring plug-in is not automatically installed on the newly purchased ECS host.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ServiceAgentConfig resources.\n","properties":{"enableInstallAgentNewEcs":{"type":"boolean","description":"Whether the cloud monitoring plug-in is automatically installed on the newly purchased ECS host. Value:\n- true (default): The cloud monitoring plug-in is automatically installed on the newly purchased ECS host.\n- false: The cloud monitoring plug-in is not automatically installed on the newly purchased ECS host.\n"}},"type":"object"}},"alicloud:cloudmonitor/serviceBasicPublic:ServiceBasicPublic":{"description":"Provides a Cloud Monitor Service Basic Public resource. \n\nFor information about Cloud Monitor Service Basic Public and how to use it, see [What is Basic Public](https://www.alibabacloud.com/help/en/cms/product-overview/what-is-cloudmonitor).\n\n\u003e **NOTE:** Available since v1.215.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cloudmonitor.ServiceBasicPublic(\"default\", {});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudmonitor.ServiceBasicPublic(\"default\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.CloudMonitor.ServiceBasicPublic(\"default\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudmonitor\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cloudmonitor.NewServiceBasicPublic(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudmonitor.ServiceBasicPublic;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ServiceBasicPublic(\"default\");\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cloudmonitor:ServiceBasicPublic\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Basic Public can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudmonitor/serviceBasicPublic:ServiceBasicPublic example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"}},"required":["createTime"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceBasicPublic resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"}},"type":"object"}},"alicloud:cloudmonitor/serviceEnterprisePublic:ServiceEnterprisePublic":{"description":"Provides a Cloud Monitor Service Enterprise Public resource. Hybrid Cloud Monitoring.\n\nFor information about Cloud Monitor Service Enterprise Public and how to use it, see [What is Enterprise Public](https://www.alibabacloud.com/help/en/cms/user-guide/overview-3).\n\n\u003e **NOTE:** Available since v1.215.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cloudmonitor.ServiceEnterprisePublic(\"default\", {});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudmonitor.ServiceEnterprisePublic(\"default\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.CloudMonitor.ServiceEnterprisePublic(\"default\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudmonitor\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cloudmonitor.NewServiceEnterprisePublic(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudmonitor.ServiceEnterprisePublic;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ServiceEnterprisePublic(\"default\");\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cloudmonitor:ServiceEnterprisePublic\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Enterprise Public can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudmonitor/serviceEnterprisePublic:ServiceEnterprisePublic example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"}},"required":["createTime"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEnterprisePublic resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"}},"type":"object"}},"alicloud:cloudmonitor/serviceGroupMonitoringAgentProcess:ServiceGroupMonitoringAgentProcess":{"description":"Provides a Cloud Monitor Service Group Monitoring Agent Process resource.\n\nFor information about Cloud Monitor Service Group Monitoring Agent Process and how to use it, see [What is Group Monitoring Agent Process](https://www.alibabacloud.com/help/en/cms/developer-reference/api-cms-2019-01-01-creategroupmonitoringagentprocess).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cms.AlarmContactGroup(\"default\", {\n    alarmContactGroupName: name,\n    contacts: [\n        \"user\",\n        \"user1\",\n        \"user2\",\n    ],\n});\nconst defaultMonitorGroup = new alicloud.cms.MonitorGroup(\"default\", {\n    monitorGroupName: name,\n    contactGroups: [_default.id],\n});\nconst defaultServiceGroupMonitoringAgentProcess = new alicloud.cloudmonitor.ServiceGroupMonitoringAgentProcess(\"default\", {\n    groupId: defaultMonitorGroup.id,\n    processName: name,\n    matchExpressFilterRelation: \"or\",\n    matchExpresses: [{\n        name: name,\n        value: \"*\",\n        \"function\": \"all\",\n    }],\n    alertConfigs: [{\n        escalationsLevel: \"critical\",\n        comparisonOperator: \"GreaterThanOrEqualToThreshold\",\n        statistics: \"Average\",\n        threshold: \"20\",\n        times: \"100\",\n        effectiveInterval: \"00:00-22:59\",\n        silenceTime: 85800,\n        webhook: \"https://www.aliyun.com\",\n        targetLists: [{\n            targetListId: \"1\",\n            jsonParams: \"{}\",\n            level: \"WARN\",\n            arn: \"acs:mns:cn-hangzhou:120886317861****:/queues/test123/message\",\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cms.AlarmContactGroup(\"default\",\n    alarm_contact_group_name=name,\n    contacts=[\n        \"user\",\n        \"user1\",\n        \"user2\",\n    ])\ndefault_monitor_group = alicloud.cms.MonitorGroup(\"default\",\n    monitor_group_name=name,\n    contact_groups=[default.id])\ndefault_service_group_monitoring_agent_process = alicloud.cloudmonitor.ServiceGroupMonitoringAgentProcess(\"default\",\n    group_id=default_monitor_group.id,\n    process_name=name,\n    match_express_filter_relation=\"or\",\n    match_expresses=[{\n        \"name\": name,\n        \"value\": \"*\",\n        \"function\": \"all\",\n    }],\n    alert_configs=[{\n        \"escalations_level\": \"critical\",\n        \"comparison_operator\": \"GreaterThanOrEqualToThreshold\",\n        \"statistics\": \"Average\",\n        \"threshold\": \"20\",\n        \"times\": \"100\",\n        \"effective_interval\": \"00:00-22:59\",\n        \"silence_time\": 85800,\n        \"webhook\": \"https://www.aliyun.com\",\n        \"target_lists\": [{\n            \"target_list_id\": \"1\",\n            \"json_params\": \"{}\",\n            \"level\": \"WARN\",\n            \"arn\": \"acs:mns:cn-hangzhou:120886317861****:/queues/test123/message\",\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Cms.AlarmContactGroup(\"default\", new()\n    {\n        AlarmContactGroupName = name,\n        Contacts = new[]\n        {\n            \"user\",\n            \"user1\",\n            \"user2\",\n        },\n    });\n\n    var defaultMonitorGroup = new AliCloud.Cms.MonitorGroup(\"default\", new()\n    {\n        MonitorGroupName = name,\n        ContactGroups = new[]\n        {\n            @default.Id,\n        },\n    });\n\n    var defaultServiceGroupMonitoringAgentProcess = new AliCloud.CloudMonitor.ServiceGroupMonitoringAgentProcess(\"default\", new()\n    {\n        GroupId = defaultMonitorGroup.Id,\n        ProcessName = name,\n        MatchExpressFilterRelation = \"or\",\n        MatchExpresses = new[]\n        {\n            new AliCloud.CloudMonitor.Inputs.ServiceGroupMonitoringAgentProcessMatchExpressArgs\n            {\n                Name = name,\n                Value = \"*\",\n                Function = \"all\",\n            },\n        },\n        AlertConfigs = new[]\n        {\n            new AliCloud.CloudMonitor.Inputs.ServiceGroupMonitoringAgentProcessAlertConfigArgs\n            {\n                EscalationsLevel = \"critical\",\n                ComparisonOperator = \"GreaterThanOrEqualToThreshold\",\n                Statistics = \"Average\",\n                Threshold = \"20\",\n                Times = \"100\",\n                EffectiveInterval = \"00:00-22:59\",\n                SilenceTime = 85800,\n                Webhook = \"https://www.aliyun.com\",\n                TargetLists = new[]\n                {\n                    new AliCloud.CloudMonitor.Inputs.ServiceGroupMonitoringAgentProcessAlertConfigTargetListArgs\n                    {\n                        TargetListId = \"1\",\n                        JsonParams = \"{}\",\n                        Level = \"WARN\",\n                        Arn = \"acs:mns:cn-hangzhou:120886317861****:/queues/test123/message\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudmonitor\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cms.NewAlarmContactGroup(ctx, \"default\", \u0026cms.AlarmContactGroupArgs{\n\t\t\tAlarmContactGroupName: pulumi.String(name),\n\t\t\tContacts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"user\"),\n\t\t\t\tpulumi.String(\"user1\"),\n\t\t\t\tpulumi.String(\"user2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultMonitorGroup, err := cms.NewMonitorGroup(ctx, \"default\", \u0026cms.MonitorGroupArgs{\n\t\t\tMonitorGroupName: pulumi.String(name),\n\t\t\tContactGroups: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudmonitor.NewServiceGroupMonitoringAgentProcess(ctx, \"default\", \u0026cloudmonitor.ServiceGroupMonitoringAgentProcessArgs{\n\t\t\tGroupId:                    defaultMonitorGroup.ID(),\n\t\t\tProcessName:                pulumi.String(name),\n\t\t\tMatchExpressFilterRelation: pulumi.String(\"or\"),\n\t\t\tMatchExpresses: cloudmonitor.ServiceGroupMonitoringAgentProcessMatchExpressArray{\n\t\t\t\t\u0026cloudmonitor.ServiceGroupMonitoringAgentProcessMatchExpressArgs{\n\t\t\t\t\tName:     pulumi.String(name),\n\t\t\t\t\tValue:    pulumi.String(\"*\"),\n\t\t\t\t\tFunction: pulumi.String(\"all\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAlertConfigs: cloudmonitor.ServiceGroupMonitoringAgentProcessAlertConfigArray{\n\t\t\t\t\u0026cloudmonitor.ServiceGroupMonitoringAgentProcessAlertConfigArgs{\n\t\t\t\t\tEscalationsLevel:   pulumi.String(\"critical\"),\n\t\t\t\t\tComparisonOperator: pulumi.String(\"GreaterThanOrEqualToThreshold\"),\n\t\t\t\t\tStatistics:         pulumi.String(\"Average\"),\n\t\t\t\t\tThreshold:          pulumi.String(\"20\"),\n\t\t\t\t\tTimes:              pulumi.String(\"100\"),\n\t\t\t\t\tEffectiveInterval:  pulumi.String(\"00:00-22:59\"),\n\t\t\t\t\tSilenceTime:        pulumi.Int(85800),\n\t\t\t\t\tWebhook:            pulumi.String(\"https://www.aliyun.com\"),\n\t\t\t\t\tTargetLists: cloudmonitor.ServiceGroupMonitoringAgentProcessAlertConfigTargetListArray{\n\t\t\t\t\t\t\u0026cloudmonitor.ServiceGroupMonitoringAgentProcessAlertConfigTargetListArgs{\n\t\t\t\t\t\t\tTargetListId: pulumi.String(\"1\"),\n\t\t\t\t\t\t\tJsonParams:   pulumi.String(\"{}\"),\n\t\t\t\t\t\t\tLevel:        pulumi.String(\"WARN\"),\n\t\t\t\t\t\t\tArn:          pulumi.String(\"acs:mns:cn-hangzhou:120886317861****:/queues/test123/message\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.AlarmContactGroup;\nimport com.pulumi.alicloud.cms.AlarmContactGroupArgs;\nimport com.pulumi.alicloud.cms.MonitorGroup;\nimport com.pulumi.alicloud.cms.MonitorGroupArgs;\nimport com.pulumi.alicloud.cloudmonitor.ServiceGroupMonitoringAgentProcess;\nimport com.pulumi.alicloud.cloudmonitor.ServiceGroupMonitoringAgentProcessArgs;\nimport com.pulumi.alicloud.cloudmonitor.inputs.ServiceGroupMonitoringAgentProcessMatchExpressArgs;\nimport com.pulumi.alicloud.cloudmonitor.inputs.ServiceGroupMonitoringAgentProcessAlertConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new AlarmContactGroup(\"default\", AlarmContactGroupArgs.builder()\n            .alarmContactGroupName(name)\n            .contacts(            \n                \"user\",\n                \"user1\",\n                \"user2\")\n            .build());\n\n        var defaultMonitorGroup = new MonitorGroup(\"defaultMonitorGroup\", MonitorGroupArgs.builder()\n            .monitorGroupName(name)\n            .contactGroups(default_.id())\n            .build());\n\n        var defaultServiceGroupMonitoringAgentProcess = new ServiceGroupMonitoringAgentProcess(\"defaultServiceGroupMonitoringAgentProcess\", ServiceGroupMonitoringAgentProcessArgs.builder()\n            .groupId(defaultMonitorGroup.id())\n            .processName(name)\n            .matchExpressFilterRelation(\"or\")\n            .matchExpresses(ServiceGroupMonitoringAgentProcessMatchExpressArgs.builder()\n                .name(name)\n                .value(\"*\")\n                .function(\"all\")\n                .build())\n            .alertConfigs(ServiceGroupMonitoringAgentProcessAlertConfigArgs.builder()\n                .escalationsLevel(\"critical\")\n                .comparisonOperator(\"GreaterThanOrEqualToThreshold\")\n                .statistics(\"Average\")\n                .threshold(\"20\")\n                .times(\"100\")\n                .effectiveInterval(\"00:00-22:59\")\n                .silenceTime(85800)\n                .webhook(\"https://www.aliyun.com\")\n                .targetLists(ServiceGroupMonitoringAgentProcessAlertConfigTargetListArgs.builder()\n                    .targetListId(\"1\")\n                    .jsonParams(\"{}\")\n                    .level(\"WARN\")\n                    .arn(\"acs:mns:cn-hangzhou:120886317861****:/queues/test123/message\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cms:AlarmContactGroup\n    properties:\n      alarmContactGroupName: ${name}\n      contacts:\n        - user\n        - user1\n        - user2\n  defaultMonitorGroup:\n    type: alicloud:cms:MonitorGroup\n    name: default\n    properties:\n      monitorGroupName: ${name}\n      contactGroups:\n        - ${default.id}\n  defaultServiceGroupMonitoringAgentProcess:\n    type: alicloud:cloudmonitor:ServiceGroupMonitoringAgentProcess\n    name: default\n    properties:\n      groupId: ${defaultMonitorGroup.id}\n      processName: ${name}\n      matchExpressFilterRelation: or\n      matchExpresses:\n        - name: ${name}\n          value: '*'\n          function: all\n      alertConfigs:\n        - escalationsLevel: critical\n          comparisonOperator: GreaterThanOrEqualToThreshold\n          statistics: Average\n          threshold: '20'\n          times: '100'\n          effectiveInterval: 00:00-22:59\n          silenceTime: '85800'\n          webhook: https://www.aliyun.com\n          targetLists:\n            - targetListId: '1'\n              jsonParams: '{}'\n              level: WARN\n              arn: acs:mns:cn-hangzhou:120886317861****:/queues/test123/message\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Group Monitoring Agent Process can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudmonitor/serviceGroupMonitoringAgentProcess:ServiceGroupMonitoringAgentProcess example \u003cgroup_id\u003e:\u003cgroup_monitoring_agent_process_id\u003e\n```\n\n","properties":{"alertConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cloudmonitor/ServiceGroupMonitoringAgentProcessAlertConfig:ServiceGroupMonitoringAgentProcessAlertConfig"},"description":"The alert rule configurations. See \u003cspan pulumi-lang-nodejs=\"`alertConfig`\" pulumi-lang-dotnet=\"`AlertConfig`\" pulumi-lang-go=\"`alertConfig`\" pulumi-lang-python=\"`alert_config`\" pulumi-lang-yaml=\"`alertConfig`\" pulumi-lang-java=\"`alertConfig`\"\u003e`alert_config`\u003c/span\u003e below.\n"},"groupId":{"type":"string","description":"The ID of the application group.\n"},"groupMonitoringAgentProcessId":{"type":"string","description":"The ID of the Group Monitoring Agent Process.\n"},"matchExpressFilterRelation":{"type":"string","description":"The logical operator used between conditional expressions that are used to match instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`and`\" pulumi-lang-dotnet=\"`And`\" pulumi-lang-go=\"`and`\" pulumi-lang-python=\"`and`\" pulumi-lang-yaml=\"`and`\" pulumi-lang-java=\"`and`\"\u003e`and`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`or`\" pulumi-lang-dotnet=\"`Or`\" pulumi-lang-go=\"`or`\" pulumi-lang-python=\"`or`\" pulumi-lang-yaml=\"`or`\" pulumi-lang-java=\"`or`\"\u003e`or`\u003c/span\u003e.\n"},"matchExpresses":{"type":"array","items":{"$ref":"#/types/alicloud:cloudmonitor/ServiceGroupMonitoringAgentProcessMatchExpress:ServiceGroupMonitoringAgentProcessMatchExpress"},"description":"The expressions used to match instances. See \u003cspan pulumi-lang-nodejs=\"`matchExpress`\" pulumi-lang-dotnet=\"`MatchExpress`\" pulumi-lang-go=\"`matchExpress`\" pulumi-lang-python=\"`match_express`\" pulumi-lang-yaml=\"`matchExpress`\" pulumi-lang-java=\"`matchExpress`\"\u003e`match_express`\u003c/span\u003e below.\n"},"processName":{"type":"string","description":"The name of the process.\n"}},"required":["alertConfigs","groupId","groupMonitoringAgentProcessId","matchExpresses","matchExpressFilterRelation","processName"],"inputProperties":{"alertConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cloudmonitor/ServiceGroupMonitoringAgentProcessAlertConfig:ServiceGroupMonitoringAgentProcessAlertConfig"},"description":"The alert rule configurations. See \u003cspan pulumi-lang-nodejs=\"`alertConfig`\" pulumi-lang-dotnet=\"`AlertConfig`\" pulumi-lang-go=\"`alertConfig`\" pulumi-lang-python=\"`alert_config`\" pulumi-lang-yaml=\"`alertConfig`\" pulumi-lang-java=\"`alertConfig`\"\u003e`alert_config`\u003c/span\u003e below.\n"},"groupId":{"type":"string","description":"The ID of the application group.\n","willReplaceOnChanges":true},"matchExpressFilterRelation":{"type":"string","description":"The logical operator used between conditional expressions that are used to match instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`and`\" pulumi-lang-dotnet=\"`And`\" pulumi-lang-go=\"`and`\" pulumi-lang-python=\"`and`\" pulumi-lang-yaml=\"`and`\" pulumi-lang-java=\"`and`\"\u003e`and`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`or`\" pulumi-lang-dotnet=\"`Or`\" pulumi-lang-go=\"`or`\" pulumi-lang-python=\"`or`\" pulumi-lang-yaml=\"`or`\" pulumi-lang-java=\"`or`\"\u003e`or`\u003c/span\u003e.\n","willReplaceOnChanges":true},"matchExpresses":{"type":"array","items":{"$ref":"#/types/alicloud:cloudmonitor/ServiceGroupMonitoringAgentProcessMatchExpress:ServiceGroupMonitoringAgentProcessMatchExpress"},"description":"The expressions used to match instances. See \u003cspan pulumi-lang-nodejs=\"`matchExpress`\" pulumi-lang-dotnet=\"`MatchExpress`\" pulumi-lang-go=\"`matchExpress`\" pulumi-lang-python=\"`match_express`\" pulumi-lang-yaml=\"`matchExpress`\" pulumi-lang-java=\"`matchExpress`\"\u003e`match_express`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"processName":{"type":"string","description":"The name of the process.\n","willReplaceOnChanges":true}},"requiredInputs":["alertConfigs","groupId","processName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceGroupMonitoringAgentProcess resources.\n","properties":{"alertConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cloudmonitor/ServiceGroupMonitoringAgentProcessAlertConfig:ServiceGroupMonitoringAgentProcessAlertConfig"},"description":"The alert rule configurations. See \u003cspan pulumi-lang-nodejs=\"`alertConfig`\" pulumi-lang-dotnet=\"`AlertConfig`\" pulumi-lang-go=\"`alertConfig`\" pulumi-lang-python=\"`alert_config`\" pulumi-lang-yaml=\"`alertConfig`\" pulumi-lang-java=\"`alertConfig`\"\u003e`alert_config`\u003c/span\u003e below.\n"},"groupId":{"type":"string","description":"The ID of the application group.\n","willReplaceOnChanges":true},"groupMonitoringAgentProcessId":{"type":"string","description":"The ID of the Group Monitoring Agent Process.\n"},"matchExpressFilterRelation":{"type":"string","description":"The logical operator used between conditional expressions that are used to match instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`and`\" pulumi-lang-dotnet=\"`And`\" pulumi-lang-go=\"`and`\" pulumi-lang-python=\"`and`\" pulumi-lang-yaml=\"`and`\" pulumi-lang-java=\"`and`\"\u003e`and`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`or`\" pulumi-lang-dotnet=\"`Or`\" pulumi-lang-go=\"`or`\" pulumi-lang-python=\"`or`\" pulumi-lang-yaml=\"`or`\" pulumi-lang-java=\"`or`\"\u003e`or`\u003c/span\u003e.\n","willReplaceOnChanges":true},"matchExpresses":{"type":"array","items":{"$ref":"#/types/alicloud:cloudmonitor/ServiceGroupMonitoringAgentProcessMatchExpress:ServiceGroupMonitoringAgentProcessMatchExpress"},"description":"The expressions used to match instances. See \u003cspan pulumi-lang-nodejs=\"`matchExpress`\" pulumi-lang-dotnet=\"`MatchExpress`\" pulumi-lang-go=\"`matchExpress`\" pulumi-lang-python=\"`match_express`\" pulumi-lang-yaml=\"`matchExpress`\" pulumi-lang-java=\"`matchExpress`\"\u003e`match_express`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"processName":{"type":"string","description":"The name of the process.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudmonitor/serviceHybridDoubleWrite:ServiceHybridDoubleWrite":{"description":"Provides a Cloud Monitor Service Hybrid Double Write resource. \n\nFor information about Cloud Monitor Service Hybrid Double Write and how to use it, see [What is Hybrid Double Write](https://next.api.alibabacloud.com/document/Cms/2018-03-08/CreateHybridDoubleWrite).\n\n\u003e **NOTE:** Available since v1.210.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getAccount({});\nconst source = new alicloud.cms.Namespace(\"source\", {namespace: name});\nconst defaultNamespace = new alicloud.cms.Namespace(\"default\", {namespace: `${name}-source`});\nconst defaultServiceHybridDoubleWrite = new alicloud.cloudmonitor.ServiceHybridDoubleWrite(\"default\", {\n    sourceNamespace: source.id,\n    sourceUserId: _default.then(_default =\u003e _default.id),\n    namespace: defaultNamespace.id,\n    userId: _default.then(_default =\u003e _default.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_account()\nsource = alicloud.cms.Namespace(\"source\", namespace=name)\ndefault_namespace = alicloud.cms.Namespace(\"default\", namespace=f\"{name}-source\")\ndefault_service_hybrid_double_write = alicloud.cloudmonitor.ServiceHybridDoubleWrite(\"default\",\n    source_namespace=source.id,\n    source_user_id=default.id,\n    namespace=default_namespace.id,\n    user_id=default.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var source = new AliCloud.Cms.Namespace(\"source\", new()\n    {\n        NamespaceName = name,\n    });\n\n    var defaultNamespace = new AliCloud.Cms.Namespace(\"default\", new()\n    {\n        NamespaceName = $\"{name}-source\",\n    });\n\n    var defaultServiceHybridDoubleWrite = new AliCloud.CloudMonitor.ServiceHybridDoubleWrite(\"default\", new()\n    {\n        SourceNamespace = source.Id,\n        SourceUserId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        Namespace = defaultNamespace.Id,\n        UserId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudmonitor\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsource, err := cms.NewNamespace(ctx, \"source\", \u0026cms.NamespaceArgs{\n\t\t\tNamespace: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNamespace, err := cms.NewNamespace(ctx, \"default\", \u0026cms.NamespaceArgs{\n\t\t\tNamespace: pulumi.Sprintf(\"%v-source\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudmonitor.NewServiceHybridDoubleWrite(ctx, \"default\", \u0026cloudmonitor.ServiceHybridDoubleWriteArgs{\n\t\t\tSourceNamespace: source.ID(),\n\t\t\tSourceUserId:    pulumi.String(_default.Id),\n\t\t\tNamespace:       defaultNamespace.ID(),\n\t\t\tUserId:          pulumi.String(_default.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.cms.Namespace;\nimport com.pulumi.alicloud.cms.NamespaceArgs;\nimport com.pulumi.alicloud.cloudmonitor.ServiceHybridDoubleWrite;\nimport com.pulumi.alicloud.cloudmonitor.ServiceHybridDoubleWriteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var source = new Namespace(\"source\", NamespaceArgs.builder()\n            .namespace(name)\n            .build());\n\n        var defaultNamespace = new Namespace(\"defaultNamespace\", NamespaceArgs.builder()\n            .namespace(String.format(\"%s-source\", name))\n            .build());\n\n        var defaultServiceHybridDoubleWrite = new ServiceHybridDoubleWrite(\"defaultServiceHybridDoubleWrite\", ServiceHybridDoubleWriteArgs.builder()\n            .sourceNamespace(source.id())\n            .sourceUserId(default_.id())\n            .namespace(defaultNamespace.id())\n            .userId(default_.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  source:\n    type: alicloud:cms:Namespace\n    properties:\n      namespace: ${name}\n  defaultNamespace:\n    type: alicloud:cms:Namespace\n    name: default\n    properties:\n      namespace: ${name}-source\n  defaultServiceHybridDoubleWrite:\n    type: alicloud:cloudmonitor:ServiceHybridDoubleWrite\n    name: default\n    properties:\n      sourceNamespace: ${source.id}\n      sourceUserId: ${default.id}\n      namespace: ${defaultNamespace.id}\n      userId: ${default.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Hybrid Double Write can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudmonitor/serviceHybridDoubleWrite:ServiceHybridDoubleWrite example \u003csource_namespace\u003e:\u003csource_user_id\u003e\n```\n\n","properties":{"namespace":{"type":"string","description":"Target Namespace.\n"},"sourceNamespace":{"type":"string","description":"Source Namespace.\n"},"sourceUserId":{"type":"string","description":"Source UserId.\n"},"userId":{"type":"string","description":"Target UserId.\n"}},"required":["namespace","sourceNamespace","sourceUserId","userId"],"inputProperties":{"namespace":{"type":"string","description":"Target Namespace.\n","willReplaceOnChanges":true},"sourceNamespace":{"type":"string","description":"Source Namespace.\n","willReplaceOnChanges":true},"sourceUserId":{"type":"string","description":"Source UserId.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"Target UserId.\n","willReplaceOnChanges":true}},"requiredInputs":["namespace","sourceNamespace","sourceUserId","userId"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceHybridDoubleWrite resources.\n","properties":{"namespace":{"type":"string","description":"Target Namespace.\n","willReplaceOnChanges":true},"sourceNamespace":{"type":"string","description":"Source Namespace.\n","willReplaceOnChanges":true},"sourceUserId":{"type":"string","description":"Source UserId.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"Target UserId.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudmonitor/serviceMonitoringAgentProcess:ServiceMonitoringAgentProcess":{"description":"Provides a Cloud Monitor Service Monitoring Agent Process resource. \n\nFor information about Cloud Monitor Service Monitoring Agent Process and how to use it, see [What is Monitoring Agent Process](https://www.alibabacloud.com/help/en/cms/developer-reference/api-cms-2019-01-01-createmonitoragentprocess).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    instanceTypeFamily: \"ecs.sn1ne\",\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultSwitch.vpcId,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    instanceName: name,\n    securityGroups: [defaultSecurityGroup].map(__item =\u003e __item.id),\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 10,\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceChargeType: \"PostPaid\",\n    systemDiskCategory: \"cloud_efficiency\",\n    vswitchId: defaultSwitch.id,\n});\nconst defaultServiceMonitoringAgentProcess = new alicloud.cloudmonitor.ServiceMonitoringAgentProcess(\"default\", {\n    instanceId: defaultInstance.id,\n    processName: name,\n    processUser: \"root\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    instance_type_family=\"ecs.sn1ne\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_switch.vpc_id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    instance_name=name,\n    security_groups=[__item.id for __item in [default_security_group]],\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=10,\n    availability_zone=default.zones[0].id,\n    instance_charge_type=\"PostPaid\",\n    system_disk_category=\"cloud_efficiency\",\n    vswitch_id=default_switch.id)\ndefault_service_monitoring_agent_process = alicloud.cloudmonitor.ServiceMonitoringAgentProcess(\"default\",\n    instance_id=default_instance.id,\n    process_name=name,\n    process_user=\"root\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultSwitch.VpcId,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        InstanceName = name,\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup,\n        }.Select(__item =\u003e __item.Id).ToList(),\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 10,\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskCategory = \"cloud_efficiency\",\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var defaultServiceMonitoringAgentProcess = new AliCloud.CloudMonitor.ServiceMonitoringAgentProcess(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        ProcessName = name,\n        ProcessUser = \"root\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudmonitor\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableDiskCategory: pulumi.StringRef(\"cloud_efficiency\"),\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\nInstanceTypeFamily: pulumi.StringRef(\"ecs.sn1ne\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\nMostRecent: pulumi.BoolRef(true),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"172.16.0.0/24\"),\nZoneId: pulumi.String(_default.Zones[0].Id),\nVswitchName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(name),\nVpcId: defaultSwitch.VpcId,\n})\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\ndefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\nImageId: pulumi.String(defaultGetImages.Images[0].Id),\nInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\nInstanceName: pulumi.String(name),\nSecurityGroups: splat0,\nInternetChargeType: pulumi.String(\"PayByTraffic\"),\nInternetMaxBandwidthOut: pulumi.Int(10),\nAvailabilityZone: pulumi.String(_default.Zones[0].Id),\nInstanceChargeType: pulumi.String(\"PostPaid\"),\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nVswitchId: defaultSwitch.ID(),\n})\nif err != nil {\nreturn err\n}\n_, err = cloudmonitor.NewServiceMonitoringAgentProcess(ctx, \"default\", \u0026cloudmonitor.ServiceMonitoringAgentProcessArgs{\nInstanceId: defaultInstance.ID(),\nProcessName: pulumi.String(name),\nProcessUser: pulumi.String(\"root\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.cloudmonitor.ServiceMonitoringAgentProcess;\nimport com.pulumi.alicloud.cloudmonitor.ServiceMonitoringAgentProcessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultSwitch.vpcId())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .instanceName(name)\n            .securityGroups(defaultSecurityGroup.stream().map(element -\u003e element.id()).collect(toList()))\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(10)\n            .availabilityZone(default_.zones()[0].id())\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var defaultServiceMonitoringAgentProcess = new ServiceMonitoringAgentProcess(\"defaultServiceMonitoringAgentProcess\", ServiceMonitoringAgentProcessArgs.builder()\n            .instanceId(defaultInstance.id())\n            .processName(name)\n            .processUser(\"root\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Monitoring Agent Process can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudmonitor/serviceMonitoringAgentProcess:ServiceMonitoringAgentProcess example \u003cinstance_id\u003e:\u003cprocess_id\u003e\n```\n\n","properties":{"instanceId":{"type":"string","description":"The ID of the instance.\n"},"processId":{"type":"string","description":"The ID of the process.\n"},"processName":{"type":"string","description":"The name of the process.\n"},"processUser":{"type":"string","description":"The user who launches the process.\n"}},"required":["instanceId","processId","processName"],"inputProperties":{"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"processName":{"type":"string","description":"The name of the process.\n","willReplaceOnChanges":true},"processUser":{"type":"string","description":"The user who launches the process.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId","processName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceMonitoringAgentProcess resources.\n","properties":{"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"processId":{"type":"string","description":"The ID of the process.\n"},"processName":{"type":"string","description":"The name of the process.\n","willReplaceOnChanges":true},"processUser":{"type":"string","description":"The user who launches the process.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudphone/image:Image":{"description":"Provides a Cloud Phone Image resource.\n\nCloud phone image.\n\nFor information about Cloud Phone Image and how to use it, see [What is Image](https://next.api.alibabacloud.com/document/eds-aic/2023-09-30/CreateCustomImage).\n\n\u003e **NOTE:** Available since v1.243.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultjZ1gi0 = new alicloud.cloudphone.Policy(\"defaultjZ1gi0\", {});\nconst defaultYHMlTO = new alicloud.cloudphoneinstance.Group(\"defaultYHMlTO\", {\n    instanceGroupSpec: \"acp.basic.small\",\n    policyGroupId: defaultjZ1gi0.id,\n    instanceGroupName: \"AutoCreateGroupName\",\n    period: 1,\n    numberOfInstances: 1,\n    chargeType: \"PostPaid\",\n    imageId: \"imgc-075cllfeuazh03tg9\",\n    periodUnit: \"Hour\",\n    autoRenew: false,\n    amount: 1,\n    autoPay: false,\n    gpuAcceleration: false,\n});\nconst default04hhXk = new alicloud.cloudphoneinstance.CloudPhoneInstance(\"default04hhXk\", {\n    androidInstanceGroupId: defaultYHMlTO.id,\n    androidInstanceName: \"CreateInstanceName\",\n});\nconst _default = new alicloud.cloudphone.Image(\"default\", {\n    imageName: \"ImageName\",\n    instanceId: default04hhXk.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaultj_z1gi0 = alicloud.cloudphone.Policy(\"defaultjZ1gi0\")\ndefault_yh_ml_to = alicloud.cloudphoneinstance.Group(\"defaultYHMlTO\",\n    instance_group_spec=\"acp.basic.small\",\n    policy_group_id=defaultj_z1gi0.id,\n    instance_group_name=\"AutoCreateGroupName\",\n    period=1,\n    number_of_instances=1,\n    charge_type=\"PostPaid\",\n    image_id=\"imgc-075cllfeuazh03tg9\",\n    period_unit=\"Hour\",\n    auto_renew=False,\n    amount=1,\n    auto_pay=False,\n    gpu_acceleration=False)\ndefault04hh_xk = alicloud.cloudphoneinstance.CloudPhoneInstance(\"default04hhXk\",\n    android_instance_group_id=default_yh_ml_to.id,\n    android_instance_name=\"CreateInstanceName\")\ndefault = alicloud.cloudphone.Image(\"default\",\n    image_name=\"ImageName\",\n    instance_id=default04hh_xk.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultjZ1gi0 = new AliCloud.CloudPhone.Policy(\"defaultjZ1gi0\");\n\n    var defaultYHMlTO = new AliCloud.CloudPhoneInstance.Group(\"defaultYHMlTO\", new()\n    {\n        InstanceGroupSpec = \"acp.basic.small\",\n        PolicyGroupId = defaultjZ1gi0.Id,\n        InstanceGroupName = \"AutoCreateGroupName\",\n        Period = 1,\n        NumberOfInstances = 1,\n        ChargeType = \"PostPaid\",\n        ImageId = \"imgc-075cllfeuazh03tg9\",\n        PeriodUnit = \"Hour\",\n        AutoRenew = false,\n        Amount = 1,\n        AutoPay = false,\n        GpuAcceleration = false,\n    });\n\n    var default04hhXk = new AliCloud.CloudPhoneInstance.CloudPhoneInstance(\"default04hhXk\", new()\n    {\n        AndroidInstanceGroupId = defaultYHMlTO.Id,\n        AndroidInstanceName = \"CreateInstanceName\",\n    });\n\n    var @default = new AliCloud.CloudPhone.Image(\"default\", new()\n    {\n        ImageName = \"ImageName\",\n        InstanceId = default04hhXk.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudphone\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudphoneinstance\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultjZ1gi0, err := cloudphone.NewPolicy(ctx, \"defaultjZ1gi0\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultYHMlTO, err := cloudphoneinstance.NewGroup(ctx, \"defaultYHMlTO\", \u0026cloudphoneinstance.GroupArgs{\n\t\t\tInstanceGroupSpec: pulumi.String(\"acp.basic.small\"),\n\t\t\tPolicyGroupId:     defaultjZ1gi0.ID(),\n\t\t\tInstanceGroupName: pulumi.String(\"AutoCreateGroupName\"),\n\t\t\tPeriod:            pulumi.Int(1),\n\t\t\tNumberOfInstances: pulumi.Int(1),\n\t\t\tChargeType:        pulumi.String(\"PostPaid\"),\n\t\t\tImageId:           pulumi.String(\"imgc-075cllfeuazh03tg9\"),\n\t\t\tPeriodUnit:        pulumi.String(\"Hour\"),\n\t\t\tAutoRenew:         pulumi.Bool(false),\n\t\t\tAmount:            pulumi.Int(1),\n\t\t\tAutoPay:           pulumi.Bool(false),\n\t\t\tGpuAcceleration:   pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault04hhXk, err := cloudphoneinstance.NewCloudPhoneInstance(ctx, \"default04hhXk\", \u0026cloudphoneinstance.CloudPhoneInstanceArgs{\n\t\t\tAndroidInstanceGroupId: defaultYHMlTO.ID(),\n\t\t\tAndroidInstanceName:    pulumi.String(\"CreateInstanceName\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudphone.NewImage(ctx, \"default\", \u0026cloudphone.ImageArgs{\n\t\t\tImageName:  pulumi.String(\"ImageName\"),\n\t\t\tInstanceId: default04hhXk.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudphone.Policy;\nimport com.pulumi.alicloud.cloudphoneinstance.Group;\nimport com.pulumi.alicloud.cloudphoneinstance.GroupArgs;\nimport com.pulumi.alicloud.cloudphoneinstance.CloudPhoneInstance;\nimport com.pulumi.alicloud.cloudphoneinstance.CloudPhoneInstanceArgs;\nimport com.pulumi.alicloud.cloudphone.Image;\nimport com.pulumi.alicloud.cloudphone.ImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultjZ1gi0 = new Policy(\"defaultjZ1gi0\");\n\n        var defaultYHMlTO = new Group(\"defaultYHMlTO\", GroupArgs.builder()\n            .instanceGroupSpec(\"acp.basic.small\")\n            .policyGroupId(defaultjZ1gi0.id())\n            .instanceGroupName(\"AutoCreateGroupName\")\n            .period(1)\n            .numberOfInstances(1)\n            .chargeType(\"PostPaid\")\n            .imageId(\"imgc-075cllfeuazh03tg9\")\n            .periodUnit(\"Hour\")\n            .autoRenew(false)\n            .amount(1)\n            .autoPay(false)\n            .gpuAcceleration(false)\n            .build());\n\n        var default04hhXk = new CloudPhoneInstance(\"default04hhXk\", CloudPhoneInstanceArgs.builder()\n            .androidInstanceGroupId(defaultYHMlTO.id())\n            .androidInstanceName(\"CreateInstanceName\")\n            .build());\n\n        var default_ = new Image(\"default\", ImageArgs.builder()\n            .imageName(\"ImageName\")\n            .instanceId(default04hhXk.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultjZ1gi0:\n    type: alicloud:cloudphone:Policy\n  defaultYHMlTO:\n    type: alicloud:cloudphoneinstance:Group\n    properties:\n      instanceGroupSpec: acp.basic.small\n      policyGroupId: ${defaultjZ1gi0.id}\n      instanceGroupName: AutoCreateGroupName\n      period: '1'\n      numberOfInstances: '1'\n      chargeType: PostPaid\n      imageId: imgc-075cllfeuazh03tg9\n      periodUnit: Hour\n      autoRenew: false\n      amount: '1'\n      autoPay: false\n      gpuAcceleration: false\n  default04hhXk:\n    type: alicloud:cloudphoneinstance:CloudPhoneInstance\n    properties:\n      androidInstanceGroupId: ${defaultYHMlTO.id}\n      androidInstanceName: CreateInstanceName\n  default:\n    type: alicloud:cloudphone:Image\n    properties:\n      imageName: ImageName\n      instanceId: ${default04hhXk.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Phone Image can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudphone/image:Image example \u003cid\u003e\n```\n\n","properties":{"imageName":{"type":"string","description":"The image name.\n"},"instanceId":{"type":"string","description":"The instance ID.\n"},"status":{"type":"string","description":"The status of the mirror.\n"}},"required":["imageName","instanceId","status"],"inputProperties":{"imageName":{"type":"string","description":"The image name.\n"},"instanceId":{"type":"string","description":"The instance ID.\n"}},"requiredInputs":["imageName","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Image resources.\n","properties":{"imageName":{"type":"string","description":"The image name.\n"},"instanceId":{"type":"string","description":"The instance ID.\n"},"status":{"type":"string","description":"The status of the mirror.\n"}},"type":"object"}},"alicloud:cloudphone/keyPair:KeyPair":{"description":"Provides a Cloud Phone Key Pair resource.\n\nCloud Phone KeyPair.\n\nFor information about Cloud Phone Key Pair and how to use it, see [What is Key Pair](https://next.api.alibabacloud.com/document/eds-aic/2023-09-30/CreateKeyPair).\n\n\u003e **NOTE:** Available since v1.243.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultjZ1gi0 = new alicloud.cloudphone.Policy(\"defaultjZ1gi0\", {});\nconst defaultYHMlTO = new alicloud.cloudphoneinstance.Group(\"defaultYHMlTO\", {\n    instanceGroupSpec: \"acp.basic.small\",\n    policyGroupId: defaultjZ1gi0.id,\n    instanceGroupName: \"AutoCreateGroupName\",\n    period: 1,\n    numberOfInstances: 1,\n    chargeType: \"PostPaid\",\n    imageId: \"imgc-075cllfeuazh03tg9\",\n    periodUnit: \"Hour\",\n    autoRenew: false,\n    amount: 1,\n    autoPay: false,\n    gpuAcceleration: false,\n});\nconst defaulthdBep1 = new alicloud.cloudphoneinstance.CloudPhoneInstance(\"defaulthdBep1\", {\n    androidInstanceGroupId: defaultYHMlTO.id,\n    androidInstanceName: \"CreateInstanceName\",\n});\nconst _default = new alicloud.cloudphone.KeyPair(\"default\", {\n    keyPairName: \"example\",\n    publicKeyBody: \"QAAAAH0o+PMrbz9ZlxaNMYlk1rJkN4JXqwSUVYW5YzMW3fWJ7At1XO40GYDEFL43fLob52pmRxRDuRoGAELmS1AyzqUle2v9yGKFziqS/vK/4vM4MW/ppnTmvh9zPXir0fB/uwXS4iS6xt0gmvprgyRNs7hgXtBK9ASiGuPCv47aRJqh9mYzq2pe2rgb+K0OU5/nQXwWKSxYsv+w3KWPshpwx8iF/JWvjixILJ5gygndd+1HyE8jrLVmvm/OitNaMgkolY1bvmRVVKLmzde7FtXw0s4TVfYUvF385gwlrOulKcL7UuMHV87MV/tcvEA0Gg88JrKgI5LmvQ8BDkrfoSi+bchk1KTAqJ8YMvL2pOogXbBoONeJS176zLYpLHmONtIDQFz/gEqAjGQVW+j4J+1w8oWrn8EjtcDe2kY34s3PDLioK3BN9CIBBQur+SH25R0RnEqD0YPFT7/ym0LomtPOS0t72n5JejBTfWaXiqb/I4f2Ypy1PA6fV5UUFIHODpNtuS4g2HKKqDS/sgYRBA2gpN2MmqeqgsQmSy+EljHdUe4KDVqAZ/qxLqnbp47BGHw2xjuZ60nXAoRecWCg2GDbx13ga4dKUQY+ER8Jruz7ILK4MRB7E4SjSUVmgcdh534c51BYIdI2HkQwQU2dgyJyQme9sDQxxGHpYKFQlFSyXUeOSjXLtQEAAQA= qiaozhou_15694163938@h2sqyfpc71g1t2w\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaultj_z1gi0 = alicloud.cloudphone.Policy(\"defaultjZ1gi0\")\ndefault_yh_ml_to = alicloud.cloudphoneinstance.Group(\"defaultYHMlTO\",\n    instance_group_spec=\"acp.basic.small\",\n    policy_group_id=defaultj_z1gi0.id,\n    instance_group_name=\"AutoCreateGroupName\",\n    period=1,\n    number_of_instances=1,\n    charge_type=\"PostPaid\",\n    image_id=\"imgc-075cllfeuazh03tg9\",\n    period_unit=\"Hour\",\n    auto_renew=False,\n    amount=1,\n    auto_pay=False,\n    gpu_acceleration=False)\ndefaulthd_bep1 = alicloud.cloudphoneinstance.CloudPhoneInstance(\"defaulthdBep1\",\n    android_instance_group_id=default_yh_ml_to.id,\n    android_instance_name=\"CreateInstanceName\")\ndefault = alicloud.cloudphone.KeyPair(\"default\",\n    key_pair_name=\"example\",\n    public_key_body=\"QAAAAH0o+PMrbz9ZlxaNMYlk1rJkN4JXqwSUVYW5YzMW3fWJ7At1XO40GYDEFL43fLob52pmRxRDuRoGAELmS1AyzqUle2v9yGKFziqS/vK/4vM4MW/ppnTmvh9zPXir0fB/uwXS4iS6xt0gmvprgyRNs7hgXtBK9ASiGuPCv47aRJqh9mYzq2pe2rgb+K0OU5/nQXwWKSxYsv+w3KWPshpwx8iF/JWvjixILJ5gygndd+1HyE8jrLVmvm/OitNaMgkolY1bvmRVVKLmzde7FtXw0s4TVfYUvF385gwlrOulKcL7UuMHV87MV/tcvEA0Gg88JrKgI5LmvQ8BDkrfoSi+bchk1KTAqJ8YMvL2pOogXbBoONeJS176zLYpLHmONtIDQFz/gEqAjGQVW+j4J+1w8oWrn8EjtcDe2kY34s3PDLioK3BN9CIBBQur+SH25R0RnEqD0YPFT7/ym0LomtPOS0t72n5JejBTfWaXiqb/I4f2Ypy1PA6fV5UUFIHODpNtuS4g2HKKqDS/sgYRBA2gpN2MmqeqgsQmSy+EljHdUe4KDVqAZ/qxLqnbp47BGHw2xjuZ60nXAoRecWCg2GDbx13ga4dKUQY+ER8Jruz7ILK4MRB7E4SjSUVmgcdh534c51BYIdI2HkQwQU2dgyJyQme9sDQxxGHpYKFQlFSyXUeOSjXLtQEAAQA= qiaozhou_15694163938@h2sqyfpc71g1t2w\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultjZ1gi0 = new AliCloud.CloudPhone.Policy(\"defaultjZ1gi0\");\n\n    var defaultYHMlTO = new AliCloud.CloudPhoneInstance.Group(\"defaultYHMlTO\", new()\n    {\n        InstanceGroupSpec = \"acp.basic.small\",\n        PolicyGroupId = defaultjZ1gi0.Id,\n        InstanceGroupName = \"AutoCreateGroupName\",\n        Period = 1,\n        NumberOfInstances = 1,\n        ChargeType = \"PostPaid\",\n        ImageId = \"imgc-075cllfeuazh03tg9\",\n        PeriodUnit = \"Hour\",\n        AutoRenew = false,\n        Amount = 1,\n        AutoPay = false,\n        GpuAcceleration = false,\n    });\n\n    var defaulthdBep1 = new AliCloud.CloudPhoneInstance.CloudPhoneInstance(\"defaulthdBep1\", new()\n    {\n        AndroidInstanceGroupId = defaultYHMlTO.Id,\n        AndroidInstanceName = \"CreateInstanceName\",\n    });\n\n    var @default = new AliCloud.CloudPhone.KeyPair(\"default\", new()\n    {\n        KeyPairName = \"example\",\n        PublicKeyBody = \"QAAAAH0o+PMrbz9ZlxaNMYlk1rJkN4JXqwSUVYW5YzMW3fWJ7At1XO40GYDEFL43fLob52pmRxRDuRoGAELmS1AyzqUle2v9yGKFziqS/vK/4vM4MW/ppnTmvh9zPXir0fB/uwXS4iS6xt0gmvprgyRNs7hgXtBK9ASiGuPCv47aRJqh9mYzq2pe2rgb+K0OU5/nQXwWKSxYsv+w3KWPshpwx8iF/JWvjixILJ5gygndd+1HyE8jrLVmvm/OitNaMgkolY1bvmRVVKLmzde7FtXw0s4TVfYUvF385gwlrOulKcL7UuMHV87MV/tcvEA0Gg88JrKgI5LmvQ8BDkrfoSi+bchk1KTAqJ8YMvL2pOogXbBoONeJS176zLYpLHmONtIDQFz/gEqAjGQVW+j4J+1w8oWrn8EjtcDe2kY34s3PDLioK3BN9CIBBQur+SH25R0RnEqD0YPFT7/ym0LomtPOS0t72n5JejBTfWaXiqb/I4f2Ypy1PA6fV5UUFIHODpNtuS4g2HKKqDS/sgYRBA2gpN2MmqeqgsQmSy+EljHdUe4KDVqAZ/qxLqnbp47BGHw2xjuZ60nXAoRecWCg2GDbx13ga4dKUQY+ER8Jruz7ILK4MRB7E4SjSUVmgcdh534c51BYIdI2HkQwQU2dgyJyQme9sDQxxGHpYKFQlFSyXUeOSjXLtQEAAQA= qiaozhou_15694163938@h2sqyfpc71g1t2w\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudphone\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudphoneinstance\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultjZ1gi0, err := cloudphone.NewPolicy(ctx, \"defaultjZ1gi0\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultYHMlTO, err := cloudphoneinstance.NewGroup(ctx, \"defaultYHMlTO\", \u0026cloudphoneinstance.GroupArgs{\n\t\t\tInstanceGroupSpec: pulumi.String(\"acp.basic.small\"),\n\t\t\tPolicyGroupId:     defaultjZ1gi0.ID(),\n\t\t\tInstanceGroupName: pulumi.String(\"AutoCreateGroupName\"),\n\t\t\tPeriod:            pulumi.Int(1),\n\t\t\tNumberOfInstances: pulumi.Int(1),\n\t\t\tChargeType:        pulumi.String(\"PostPaid\"),\n\t\t\tImageId:           pulumi.String(\"imgc-075cllfeuazh03tg9\"),\n\t\t\tPeriodUnit:        pulumi.String(\"Hour\"),\n\t\t\tAutoRenew:         pulumi.Bool(false),\n\t\t\tAmount:            pulumi.Int(1),\n\t\t\tAutoPay:           pulumi.Bool(false),\n\t\t\tGpuAcceleration:   pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudphoneinstance.NewCloudPhoneInstance(ctx, \"defaulthdBep1\", \u0026cloudphoneinstance.CloudPhoneInstanceArgs{\n\t\t\tAndroidInstanceGroupId: defaultYHMlTO.ID(),\n\t\t\tAndroidInstanceName:    pulumi.String(\"CreateInstanceName\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudphone.NewKeyPair(ctx, \"default\", \u0026cloudphone.KeyPairArgs{\n\t\t\tKeyPairName:   pulumi.String(\"example\"),\n\t\t\tPublicKeyBody: pulumi.String(\"QAAAAH0o+PMrbz9ZlxaNMYlk1rJkN4JXqwSUVYW5YzMW3fWJ7At1XO40GYDEFL43fLob52pmRxRDuRoGAELmS1AyzqUle2v9yGKFziqS/vK/4vM4MW/ppnTmvh9zPXir0fB/uwXS4iS6xt0gmvprgyRNs7hgXtBK9ASiGuPCv47aRJqh9mYzq2pe2rgb+K0OU5/nQXwWKSxYsv+w3KWPshpwx8iF/JWvjixILJ5gygndd+1HyE8jrLVmvm/OitNaMgkolY1bvmRVVKLmzde7FtXw0s4TVfYUvF385gwlrOulKcL7UuMHV87MV/tcvEA0Gg88JrKgI5LmvQ8BDkrfoSi+bchk1KTAqJ8YMvL2pOogXbBoONeJS176zLYpLHmONtIDQFz/gEqAjGQVW+j4J+1w8oWrn8EjtcDe2kY34s3PDLioK3BN9CIBBQur+SH25R0RnEqD0YPFT7/ym0LomtPOS0t72n5JejBTfWaXiqb/I4f2Ypy1PA6fV5UUFIHODpNtuS4g2HKKqDS/sgYRBA2gpN2MmqeqgsQmSy+EljHdUe4KDVqAZ/qxLqnbp47BGHw2xjuZ60nXAoRecWCg2GDbx13ga4dKUQY+ER8Jruz7ILK4MRB7E4SjSUVmgcdh534c51BYIdI2HkQwQU2dgyJyQme9sDQxxGHpYKFQlFSyXUeOSjXLtQEAAQA= qiaozhou_15694163938@h2sqyfpc71g1t2w\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudphone.Policy;\nimport com.pulumi.alicloud.cloudphoneinstance.Group;\nimport com.pulumi.alicloud.cloudphoneinstance.GroupArgs;\nimport com.pulumi.alicloud.cloudphoneinstance.CloudPhoneInstance;\nimport com.pulumi.alicloud.cloudphoneinstance.CloudPhoneInstanceArgs;\nimport com.pulumi.alicloud.cloudphone.KeyPair;\nimport com.pulumi.alicloud.cloudphone.KeyPairArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultjZ1gi0 = new Policy(\"defaultjZ1gi0\");\n\n        var defaultYHMlTO = new Group(\"defaultYHMlTO\", GroupArgs.builder()\n            .instanceGroupSpec(\"acp.basic.small\")\n            .policyGroupId(defaultjZ1gi0.id())\n            .instanceGroupName(\"AutoCreateGroupName\")\n            .period(1)\n            .numberOfInstances(1)\n            .chargeType(\"PostPaid\")\n            .imageId(\"imgc-075cllfeuazh03tg9\")\n            .periodUnit(\"Hour\")\n            .autoRenew(false)\n            .amount(1)\n            .autoPay(false)\n            .gpuAcceleration(false)\n            .build());\n\n        var defaulthdBep1 = new CloudPhoneInstance(\"defaulthdBep1\", CloudPhoneInstanceArgs.builder()\n            .androidInstanceGroupId(defaultYHMlTO.id())\n            .androidInstanceName(\"CreateInstanceName\")\n            .build());\n\n        var default_ = new KeyPair(\"default\", KeyPairArgs.builder()\n            .keyPairName(\"example\")\n            .publicKeyBody(\"QAAAAH0o+PMrbz9ZlxaNMYlk1rJkN4JXqwSUVYW5YzMW3fWJ7At1XO40GYDEFL43fLob52pmRxRDuRoGAELmS1AyzqUle2v9yGKFziqS/vK/4vM4MW/ppnTmvh9zPXir0fB/uwXS4iS6xt0gmvprgyRNs7hgXtBK9ASiGuPCv47aRJqh9mYzq2pe2rgb+K0OU5/nQXwWKSxYsv+w3KWPshpwx8iF/JWvjixILJ5gygndd+1HyE8jrLVmvm/OitNaMgkolY1bvmRVVKLmzde7FtXw0s4TVfYUvF385gwlrOulKcL7UuMHV87MV/tcvEA0Gg88JrKgI5LmvQ8BDkrfoSi+bchk1KTAqJ8YMvL2pOogXbBoONeJS176zLYpLHmONtIDQFz/gEqAjGQVW+j4J+1w8oWrn8EjtcDe2kY34s3PDLioK3BN9CIBBQur+SH25R0RnEqD0YPFT7/ym0LomtPOS0t72n5JejBTfWaXiqb/I4f2Ypy1PA6fV5UUFIHODpNtuS4g2HKKqDS/sgYRBA2gpN2MmqeqgsQmSy+EljHdUe4KDVqAZ/qxLqnbp47BGHw2xjuZ60nXAoRecWCg2GDbx13ga4dKUQY+ER8Jruz7ILK4MRB7E4SjSUVmgcdh534c51BYIdI2HkQwQU2dgyJyQme9sDQxxGHpYKFQlFSyXUeOSjXLtQEAAQA= qiaozhou_15694163938@h2sqyfpc71g1t2w\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultjZ1gi0:\n    type: alicloud:cloudphone:Policy\n  defaultYHMlTO:\n    type: alicloud:cloudphoneinstance:Group\n    properties:\n      instanceGroupSpec: acp.basic.small\n      policyGroupId: ${defaultjZ1gi0.id}\n      instanceGroupName: AutoCreateGroupName\n      period: '1'\n      numberOfInstances: '1'\n      chargeType: PostPaid\n      imageId: imgc-075cllfeuazh03tg9\n      periodUnit: Hour\n      autoRenew: false\n      amount: '1'\n      autoPay: false\n      gpuAcceleration: false\n  defaulthdBep1:\n    type: alicloud:cloudphoneinstance:CloudPhoneInstance\n    properties:\n      androidInstanceGroupId: ${defaultYHMlTO.id}\n      androidInstanceName: CreateInstanceName\n  default:\n    type: alicloud:cloudphone:KeyPair\n    properties:\n      keyPairName: example\n      publicKeyBody: QAAAAH0o+PMrbz9ZlxaNMYlk1rJkN4JXqwSUVYW5YzMW3fWJ7At1XO40GYDEFL43fLob52pmRxRDuRoGAELmS1AyzqUle2v9yGKFziqS/vK/4vM4MW/ppnTmvh9zPXir0fB/uwXS4iS6xt0gmvprgyRNs7hgXtBK9ASiGuPCv47aRJqh9mYzq2pe2rgb+K0OU5/nQXwWKSxYsv+w3KWPshpwx8iF/JWvjixILJ5gygndd+1HyE8jrLVmvm/OitNaMgkolY1bvmRVVKLmzde7FtXw0s4TVfYUvF385gwlrOulKcL7UuMHV87MV/tcvEA0Gg88JrKgI5LmvQ8BDkrfoSi+bchk1KTAqJ8YMvL2pOogXbBoONeJS176zLYpLHmONtIDQFz/gEqAjGQVW+j4J+1w8oWrn8EjtcDe2kY34s3PDLioK3BN9CIBBQur+SH25R0RnEqD0YPFT7/ym0LomtPOS0t72n5JejBTfWaXiqb/I4f2Ypy1PA6fV5UUFIHODpNtuS4g2HKKqDS/sgYRBA2gpN2MmqeqgsQmSy+EljHdUe4KDVqAZ/qxLqnbp47BGHw2xjuZ60nXAoRecWCg2GDbx13ga4dKUQY+ER8Jruz7ILK4MRB7E4SjSUVmgcdh534c51BYIdI2HkQwQU2dgyJyQme9sDQxxGHpYKFQlFSyXUeOSjXLtQEAAQA= qiaozhou_15694163938@h2sqyfpc71g1t2w\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Phone Key Pair can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudphone/keyPair:KeyPair example \u003cid\u003e\n```\n\n","properties":{"keyPairName":{"type":"string","description":"ADB key pair name.\n"},"publicKeyBody":{"type":"string","description":"The public key of the key pair.\n"}},"required":["keyPairName"],"inputProperties":{"keyPairName":{"type":"string","description":"ADB key pair name.\n"},"publicKeyBody":{"type":"string","description":"The public key of the key pair.\n"}},"requiredInputs":["keyPairName"],"stateInputs":{"description":"Input properties used for looking up and filtering KeyPair resources.\n","properties":{"keyPairName":{"type":"string","description":"ADB key pair name.\n"},"publicKeyBody":{"type":"string","description":"The public key of the key pair.\n"}},"type":"object"}},"alicloud:cloudphone/policy:Policy":{"description":"Provides a Cloud Phone Policy resource.\n\nCloud phone policy.\n\nFor information about Cloud Phone Policy and how to use it, see [What is Policy](https://next.api.alibabacloud.com/document/eds-aic/2023-09-30/CreatePolicyGroup).\n\n\u003e **NOTE:** Available since v1.243.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cloudphone.Policy(\"default\", {\n    policyGroupName: \"NewPolicyName\",\n    resolutionWidth: 720,\n    lockResolution: \"on\",\n    cameraRedirect: \"on\",\n    resolutionHeight: 1280,\n    clipboard: \"read\",\n    netRedirectPolicy: {\n        netRedirect: \"on\",\n        customProxy: \"on\",\n        proxyType: \"socks5\",\n        hostAddr: \"192.168.12.13\",\n        port: \"8888\",\n        proxyUserName: \"user1\",\n        proxyPassword: \"123456\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudphone.Policy(\"default\",\n    policy_group_name=\"NewPolicyName\",\n    resolution_width=720,\n    lock_resolution=\"on\",\n    camera_redirect=\"on\",\n    resolution_height=1280,\n    clipboard=\"read\",\n    net_redirect_policy={\n        \"net_redirect\": \"on\",\n        \"custom_proxy\": \"on\",\n        \"proxy_type\": \"socks5\",\n        \"host_addr\": \"192.168.12.13\",\n        \"port\": \"8888\",\n        \"proxy_user_name\": \"user1\",\n        \"proxy_password\": \"123456\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.CloudPhone.Policy(\"default\", new()\n    {\n        PolicyGroupName = \"NewPolicyName\",\n        ResolutionWidth = 720,\n        LockResolution = \"on\",\n        CameraRedirect = \"on\",\n        ResolutionHeight = 1280,\n        Clipboard = \"read\",\n        NetRedirectPolicy = new AliCloud.cloudPhone.Inputs.PolicyNetRedirectPolicyArgs\n        {\n            NetRedirect = \"on\",\n            CustomProxy = \"on\",\n            ProxyType = \"socks5\",\n            HostAddr = \"192.168.12.13\",\n            Port = \"8888\",\n            ProxyUserName = \"user1\",\n            ProxyPassword = \"123456\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudphone\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cloudphone.NewPolicy(ctx, \"default\", \u0026cloudphone.PolicyArgs{\n\t\t\tPolicyGroupName:  pulumi.String(\"NewPolicyName\"),\n\t\t\tResolutionWidth:  pulumi.Int(720),\n\t\t\tLockResolution:   pulumi.String(\"on\"),\n\t\t\tCameraRedirect:   pulumi.String(\"on\"),\n\t\t\tResolutionHeight: pulumi.Int(1280),\n\t\t\tClipboard:        pulumi.String(\"read\"),\n\t\t\tNetRedirectPolicy: \u0026cloudphone.PolicyNetRedirectPolicyArgs{\n\t\t\t\tNetRedirect:   pulumi.String(\"on\"),\n\t\t\t\tCustomProxy:   pulumi.String(\"on\"),\n\t\t\t\tProxyType:     pulumi.String(\"socks5\"),\n\t\t\t\tHostAddr:      pulumi.String(\"192.168.12.13\"),\n\t\t\t\tPort:          pulumi.String(\"8888\"),\n\t\t\t\tProxyUserName: pulumi.String(\"user1\"),\n\t\t\t\tProxyPassword: pulumi.String(\"123456\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudphone.Policy;\nimport com.pulumi.alicloud.cloudphone.PolicyArgs;\nimport com.pulumi.alicloud.cloudphone.inputs.PolicyNetRedirectPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Policy(\"default\", PolicyArgs.builder()\n            .policyGroupName(\"NewPolicyName\")\n            .resolutionWidth(720)\n            .lockResolution(\"on\")\n            .cameraRedirect(\"on\")\n            .resolutionHeight(1280)\n            .clipboard(\"read\")\n            .netRedirectPolicy(PolicyNetRedirectPolicyArgs.builder()\n                .netRedirect(\"on\")\n                .customProxy(\"on\")\n                .proxyType(\"socks5\")\n                .hostAddr(\"192.168.12.13\")\n                .port(\"8888\")\n                .proxyUserName(\"user1\")\n                .proxyPassword(\"123456\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cloudphone:Policy\n    properties:\n      policyGroupName: NewPolicyName\n      resolutionWidth: '720'\n      lockResolution: on\n      cameraRedirect: on\n      resolutionHeight: '1280'\n      clipboard: read\n      netRedirectPolicy:\n        netRedirect: on\n        customProxy: on\n        proxyType: socks5\n        hostAddr: 192.168.12.13\n        port: '8888'\n        proxyUserName: user1\n        proxyPassword: '123456'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Phone Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudphone/policy:Policy example \u003cid\u003e\n```\n\n","properties":{"cameraRedirect":{"type":"string","description":"Whether to turn on local camera redirection.\n"},"clipboard":{"type":"string","description":"Clipboard permissions.\n"},"lockResolution":{"type":"string","description":"Whether to lock the resolution.\n"},"netRedirectPolicy":{"$ref":"#/types/alicloud:cloudphone/PolicyNetRedirectPolicy:PolicyNetRedirectPolicy","description":"Network redirection. See \u003cspan pulumi-lang-nodejs=\"`netRedirectPolicy`\" pulumi-lang-dotnet=\"`NetRedirectPolicy`\" pulumi-lang-go=\"`netRedirectPolicy`\" pulumi-lang-python=\"`net_redirect_policy`\" pulumi-lang-yaml=\"`netRedirectPolicy`\" pulumi-lang-java=\"`netRedirectPolicy`\"\u003e`net_redirect_policy`\u003c/span\u003e below.\n"},"policyGroupName":{"type":"string","description":"The policy name.\n"},"resolutionHeight":{"type":"integer","description":"The height of the resolution. Unit: Pixels.\n"},"resolutionWidth":{"type":"integer","description":"The width of the resolution. Unit: Pixels.\n"}},"required":["cameraRedirect","clipboard","lockResolution","netRedirectPolicy","policyGroupName","resolutionHeight","resolutionWidth"],"inputProperties":{"cameraRedirect":{"type":"string","description":"Whether to turn on local camera redirection.\n"},"clipboard":{"type":"string","description":"Clipboard permissions.\n"},"lockResolution":{"type":"string","description":"Whether to lock the resolution.\n"},"netRedirectPolicy":{"$ref":"#/types/alicloud:cloudphone/PolicyNetRedirectPolicy:PolicyNetRedirectPolicy","description":"Network redirection. See \u003cspan pulumi-lang-nodejs=\"`netRedirectPolicy`\" pulumi-lang-dotnet=\"`NetRedirectPolicy`\" pulumi-lang-go=\"`netRedirectPolicy`\" pulumi-lang-python=\"`net_redirect_policy`\" pulumi-lang-yaml=\"`netRedirectPolicy`\" pulumi-lang-java=\"`netRedirectPolicy`\"\u003e`net_redirect_policy`\u003c/span\u003e below.\n"},"policyGroupName":{"type":"string","description":"The policy name.\n"},"resolutionHeight":{"type":"integer","description":"The height of the resolution. Unit: Pixels.\n"},"resolutionWidth":{"type":"integer","description":"The width of the resolution. Unit: Pixels.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Policy resources.\n","properties":{"cameraRedirect":{"type":"string","description":"Whether to turn on local camera redirection.\n"},"clipboard":{"type":"string","description":"Clipboard permissions.\n"},"lockResolution":{"type":"string","description":"Whether to lock the resolution.\n"},"netRedirectPolicy":{"$ref":"#/types/alicloud:cloudphone/PolicyNetRedirectPolicy:PolicyNetRedirectPolicy","description":"Network redirection. See \u003cspan pulumi-lang-nodejs=\"`netRedirectPolicy`\" pulumi-lang-dotnet=\"`NetRedirectPolicy`\" pulumi-lang-go=\"`netRedirectPolicy`\" pulumi-lang-python=\"`net_redirect_policy`\" pulumi-lang-yaml=\"`netRedirectPolicy`\" pulumi-lang-java=\"`netRedirectPolicy`\"\u003e`net_redirect_policy`\u003c/span\u003e below.\n"},"policyGroupName":{"type":"string","description":"The policy name.\n"},"resolutionHeight":{"type":"integer","description":"The height of the resolution. Unit: Pixels.\n"},"resolutionWidth":{"type":"integer","description":"The width of the resolution. Unit: Pixels.\n"}},"type":"object"}},"alicloud:cloudphoneinstance/cloudPhoneInstance:CloudPhoneInstance":{"description":"Provides a Cloud Phone Instance resource.\n\ncloud phone instance.\n\nFor information about Cloud Phone Instance and how to use it, see [What is Instance](https://next.api.alibabacloud.com/document/eds-aic/2023-09-30/DescribeAndroidInstances).\n\n\u003e **NOTE:** Available since v1.243.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultjZ1gi0 = new alicloud.cloudphone.Policy(\"defaultjZ1gi0\", {});\nconst defaultYHMlTO = new alicloud.cloudphoneinstance.Group(\"defaultYHMlTO\", {\n    instanceGroupSpec: \"acp.basic.small\",\n    policyGroupId: defaultjZ1gi0.id,\n    instanceGroupName: \"AutoCreateGroupName\",\n    period: 1,\n    numberOfInstances: 1,\n    chargeType: \"PostPaid\",\n    imageId: \"imgc-075cllfeuazh03tg9\",\n    periodUnit: \"Hour\",\n    autoRenew: false,\n    amount: 1,\n    autoPay: false,\n    gpuAcceleration: false,\n});\nconst _default = new alicloud.cloudphoneinstance.CloudPhoneInstance(\"default\", {\n    androidInstanceGroupId: defaultYHMlTO.id,\n    androidInstanceName: \"CreateInstanceName\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaultj_z1gi0 = alicloud.cloudphone.Policy(\"defaultjZ1gi0\")\ndefault_yh_ml_to = alicloud.cloudphoneinstance.Group(\"defaultYHMlTO\",\n    instance_group_spec=\"acp.basic.small\",\n    policy_group_id=defaultj_z1gi0.id,\n    instance_group_name=\"AutoCreateGroupName\",\n    period=1,\n    number_of_instances=1,\n    charge_type=\"PostPaid\",\n    image_id=\"imgc-075cllfeuazh03tg9\",\n    period_unit=\"Hour\",\n    auto_renew=False,\n    amount=1,\n    auto_pay=False,\n    gpu_acceleration=False)\ndefault = alicloud.cloudphoneinstance.CloudPhoneInstance(\"default\",\n    android_instance_group_id=default_yh_ml_to.id,\n    android_instance_name=\"CreateInstanceName\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultjZ1gi0 = new AliCloud.CloudPhone.Policy(\"defaultjZ1gi0\");\n\n    var defaultYHMlTO = new AliCloud.CloudPhoneInstance.Group(\"defaultYHMlTO\", new()\n    {\n        InstanceGroupSpec = \"acp.basic.small\",\n        PolicyGroupId = defaultjZ1gi0.Id,\n        InstanceGroupName = \"AutoCreateGroupName\",\n        Period = 1,\n        NumberOfInstances = 1,\n        ChargeType = \"PostPaid\",\n        ImageId = \"imgc-075cllfeuazh03tg9\",\n        PeriodUnit = \"Hour\",\n        AutoRenew = false,\n        Amount = 1,\n        AutoPay = false,\n        GpuAcceleration = false,\n    });\n\n    var @default = new AliCloud.CloudPhoneInstance.CloudPhoneInstance(\"default\", new()\n    {\n        AndroidInstanceGroupId = defaultYHMlTO.Id,\n        AndroidInstanceName = \"CreateInstanceName\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudphone\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudphoneinstance\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultjZ1gi0, err := cloudphone.NewPolicy(ctx, \"defaultjZ1gi0\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultYHMlTO, err := cloudphoneinstance.NewGroup(ctx, \"defaultYHMlTO\", \u0026cloudphoneinstance.GroupArgs{\n\t\t\tInstanceGroupSpec: pulumi.String(\"acp.basic.small\"),\n\t\t\tPolicyGroupId:     defaultjZ1gi0.ID(),\n\t\t\tInstanceGroupName: pulumi.String(\"AutoCreateGroupName\"),\n\t\t\tPeriod:            pulumi.Int(1),\n\t\t\tNumberOfInstances: pulumi.Int(1),\n\t\t\tChargeType:        pulumi.String(\"PostPaid\"),\n\t\t\tImageId:           pulumi.String(\"imgc-075cllfeuazh03tg9\"),\n\t\t\tPeriodUnit:        pulumi.String(\"Hour\"),\n\t\t\tAutoRenew:         pulumi.Bool(false),\n\t\t\tAmount:            pulumi.Int(1),\n\t\t\tAutoPay:           pulumi.Bool(false),\n\t\t\tGpuAcceleration:   pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudphoneinstance.NewCloudPhoneInstance(ctx, \"default\", \u0026cloudphoneinstance.CloudPhoneInstanceArgs{\n\t\t\tAndroidInstanceGroupId: defaultYHMlTO.ID(),\n\t\t\tAndroidInstanceName:    pulumi.String(\"CreateInstanceName\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudphone.Policy;\nimport com.pulumi.alicloud.cloudphoneinstance.Group;\nimport com.pulumi.alicloud.cloudphoneinstance.GroupArgs;\nimport com.pulumi.alicloud.cloudphoneinstance.CloudPhoneInstance;\nimport com.pulumi.alicloud.cloudphoneinstance.CloudPhoneInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultjZ1gi0 = new Policy(\"defaultjZ1gi0\");\n\n        var defaultYHMlTO = new Group(\"defaultYHMlTO\", GroupArgs.builder()\n            .instanceGroupSpec(\"acp.basic.small\")\n            .policyGroupId(defaultjZ1gi0.id())\n            .instanceGroupName(\"AutoCreateGroupName\")\n            .period(1)\n            .numberOfInstances(1)\n            .chargeType(\"PostPaid\")\n            .imageId(\"imgc-075cllfeuazh03tg9\")\n            .periodUnit(\"Hour\")\n            .autoRenew(false)\n            .amount(1)\n            .autoPay(false)\n            .gpuAcceleration(false)\n            .build());\n\n        var default_ = new CloudPhoneInstance(\"default\", CloudPhoneInstanceArgs.builder()\n            .androidInstanceGroupId(defaultYHMlTO.id())\n            .androidInstanceName(\"CreateInstanceName\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultjZ1gi0:\n    type: alicloud:cloudphone:Policy\n  defaultYHMlTO:\n    type: alicloud:cloudphoneinstance:Group\n    properties:\n      instanceGroupSpec: acp.basic.small\n      policyGroupId: ${defaultjZ1gi0.id}\n      instanceGroupName: AutoCreateGroupName\n      period: '1'\n      numberOfInstances: '1'\n      chargeType: PostPaid\n      imageId: imgc-075cllfeuazh03tg9\n      periodUnit: Hour\n      autoRenew: false\n      amount: '1'\n      autoPay: false\n      gpuAcceleration: false\n  default:\n    type: alicloud:cloudphoneinstance:CloudPhoneInstance\n    properties:\n      androidInstanceGroupId: ${defaultYHMlTO.id}\n      androidInstanceName: CreateInstanceName\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudphoneinstance.CloudPhoneInstance`\" pulumi-lang-dotnet=\"`alicloud.cloudphoneinstance.CloudPhoneInstance`\" pulumi-lang-go=\"`cloudphoneinstance.CloudPhoneInstance`\" pulumi-lang-python=\"`cloudphoneinstance.CloudPhoneInstance`\" pulumi-lang-yaml=\"`alicloud.cloudphoneinstance.CloudPhoneInstance`\" pulumi-lang-java=\"`alicloud.cloudphoneinstance.CloudPhoneInstance`\"\u003e`alicloud.cloudphoneinstance.CloudPhoneInstance`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cloudphoneinstance.CloudPhoneInstance`\" pulumi-lang-dotnet=\"`alicloud.cloudphoneinstance.CloudPhoneInstance`\" pulumi-lang-go=\"`cloudphoneinstance.CloudPhoneInstance`\" pulumi-lang-python=\"`cloudphoneinstance.CloudPhoneInstance`\" pulumi-lang-yaml=\"`alicloud.cloudphoneinstance.CloudPhoneInstance`\" pulumi-lang-java=\"`alicloud.cloudphoneinstance.CloudPhoneInstance`\"\u003e`alicloud.cloudphoneinstance.CloudPhoneInstance`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Phone Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudphoneinstance/cloudPhoneInstance:CloudPhoneInstance example \u003cid\u003e\n```\n\n","properties":{"androidInstanceGroupId":{"type":"string","description":"The ID of the instance group to which the instance belongs\n"},"androidInstanceName":{"type":"string","description":"The instance name\n"}},"inputProperties":{"androidInstanceGroupId":{"type":"string","description":"The ID of the instance group to which the instance belongs\n","willReplaceOnChanges":true},"androidInstanceName":{"type":"string","description":"The instance name\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CloudPhoneInstance resources.\n","properties":{"androidInstanceGroupId":{"type":"string","description":"The ID of the instance group to which the instance belongs\n","willReplaceOnChanges":true},"androidInstanceName":{"type":"string","description":"The instance name\n"}},"type":"object"}},"alicloud:cloudphoneinstance/group:Group":{"description":"Provides a Cloud Phone Instance Group resource.\n\n\n\nFor information about Cloud Phone Instance Group and how to use it, see [What is Instance Group](https://next.api.alibabacloud.com/document/eds-aic/2023-09-30/CreateAndroidInstanceGroup).\n\n\u003e **NOTE:** Available since v1.243.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst regionId = config.get(\"regionId\") || \"cn-hangzhou\";\nconst defaultjZ1gi0 = new alicloud.cloudphone.Policy(\"defaultjZ1gi0\", {\n    lockResolution: \"off\",\n    resolutionWidth: 720,\n    cameraRedirect: \"on\",\n    policyGroupName: \"defaultPolicyGroup\",\n    resolutionHeight: 1280,\n    clipboard: \"readwrite\",\n    netRedirectPolicy: {\n        netRedirect: \"off\",\n        customProxy: \"off\",\n    },\n});\nconst defaultH2a5KS = new alicloud.eds.SimpleOfficeSite(\"defaultH2a5KS\", {\n    officeSiteName: \"InitOfficeSite\",\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst _default = new alicloud.cloudphoneinstance.Group(\"default\", {\n    instanceGroupSpec: \"acp.basic.small\",\n    instanceGroupName: \"AutoCreateGroupName\",\n    period: 1,\n    numberOfInstances: 1,\n    chargeType: \"PostPaid\",\n    imageId: \"imgc-075cllfeuazh03tg9\",\n    periodUnit: \"Hour\",\n    autoRenew: false,\n    amount: 1,\n    autoPay: false,\n    gpuAcceleration: false,\n    policyGroupId: defaultjZ1gi0.id,\n    officeSiteId: defaultH2a5KS.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-hangzhou\"\ndefaultj_z1gi0 = alicloud.cloudphone.Policy(\"defaultjZ1gi0\",\n    lock_resolution=\"off\",\n    resolution_width=720,\n    camera_redirect=\"on\",\n    policy_group_name=\"defaultPolicyGroup\",\n    resolution_height=1280,\n    clipboard=\"readwrite\",\n    net_redirect_policy={\n        \"net_redirect\": \"off\",\n        \"custom_proxy\": \"off\",\n    })\ndefault_h2a5_ks = alicloud.eds.SimpleOfficeSite(\"defaultH2a5KS\",\n    office_site_name=\"InitOfficeSite\",\n    cidr_block=\"172.16.0.0/12\")\ndefault = alicloud.cloudphoneinstance.Group(\"default\",\n    instance_group_spec=\"acp.basic.small\",\n    instance_group_name=\"AutoCreateGroupName\",\n    period=1,\n    number_of_instances=1,\n    charge_type=\"PostPaid\",\n    image_id=\"imgc-075cllfeuazh03tg9\",\n    period_unit=\"Hour\",\n    auto_renew=False,\n    amount=1,\n    auto_pay=False,\n    gpu_acceleration=False,\n    policy_group_id=defaultj_z1gi0.id,\n    office_site_id=default_h2a5_ks.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-hangzhou\";\n    var defaultjZ1gi0 = new AliCloud.CloudPhone.Policy(\"defaultjZ1gi0\", new()\n    {\n        LockResolution = \"off\",\n        ResolutionWidth = 720,\n        CameraRedirect = \"on\",\n        PolicyGroupName = \"defaultPolicyGroup\",\n        ResolutionHeight = 1280,\n        Clipboard = \"readwrite\",\n        NetRedirectPolicy = new AliCloud.cloudPhone.Inputs.PolicyNetRedirectPolicyArgs\n        {\n            NetRedirect = \"off\",\n            CustomProxy = \"off\",\n        },\n    });\n\n    var defaultH2a5KS = new AliCloud.Eds.SimpleOfficeSite(\"defaultH2a5KS\", new()\n    {\n        OfficeSiteName = \"InitOfficeSite\",\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var @default = new AliCloud.CloudPhoneInstance.Group(\"default\", new()\n    {\n        InstanceGroupSpec = \"acp.basic.small\",\n        InstanceGroupName = \"AutoCreateGroupName\",\n        Period = 1,\n        NumberOfInstances = 1,\n        ChargeType = \"PostPaid\",\n        ImageId = \"imgc-075cllfeuazh03tg9\",\n        PeriodUnit = \"Hour\",\n        AutoRenew = false,\n        Amount = 1,\n        AutoPay = false,\n        GpuAcceleration = false,\n        PolicyGroupId = defaultjZ1gi0.Id,\n        OfficeSiteId = defaultH2a5KS.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudphone\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudphoneinstance\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tregionId := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\tdefaultjZ1gi0, err := cloudphone.NewPolicy(ctx, \"defaultjZ1gi0\", \u0026cloudphone.PolicyArgs{\n\t\t\tLockResolution:   pulumi.String(\"off\"),\n\t\t\tResolutionWidth:  pulumi.Int(720),\n\t\t\tCameraRedirect:   pulumi.String(\"on\"),\n\t\t\tPolicyGroupName:  pulumi.String(\"defaultPolicyGroup\"),\n\t\t\tResolutionHeight: pulumi.Int(1280),\n\t\t\tClipboard:        pulumi.String(\"readwrite\"),\n\t\t\tNetRedirectPolicy: \u0026cloudphone.PolicyNetRedirectPolicyArgs{\n\t\t\t\tNetRedirect: pulumi.String(\"off\"),\n\t\t\t\tCustomProxy: pulumi.String(\"off\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultH2a5KS, err := eds.NewSimpleOfficeSite(ctx, \"defaultH2a5KS\", \u0026eds.SimpleOfficeSiteArgs{\n\t\t\tOfficeSiteName: pulumi.String(\"InitOfficeSite\"),\n\t\t\tCidrBlock:      pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudphoneinstance.NewGroup(ctx, \"default\", \u0026cloudphoneinstance.GroupArgs{\n\t\t\tInstanceGroupSpec: pulumi.String(\"acp.basic.small\"),\n\t\t\tInstanceGroupName: pulumi.String(\"AutoCreateGroupName\"),\n\t\t\tPeriod:            pulumi.Int(1),\n\t\t\tNumberOfInstances: pulumi.Int(1),\n\t\t\tChargeType:        pulumi.String(\"PostPaid\"),\n\t\t\tImageId:           pulumi.String(\"imgc-075cllfeuazh03tg9\"),\n\t\t\tPeriodUnit:        pulumi.String(\"Hour\"),\n\t\t\tAutoRenew:         pulumi.Bool(false),\n\t\t\tAmount:            pulumi.Int(1),\n\t\t\tAutoPay:           pulumi.Bool(false),\n\t\t\tGpuAcceleration:   pulumi.Bool(false),\n\t\t\tPolicyGroupId:     defaultjZ1gi0.ID(),\n\t\t\tOfficeSiteId:      defaultH2a5KS.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudphone.Policy;\nimport com.pulumi.alicloud.cloudphone.PolicyArgs;\nimport com.pulumi.alicloud.cloudphone.inputs.PolicyNetRedirectPolicyArgs;\nimport com.pulumi.alicloud.eds.SimpleOfficeSite;\nimport com.pulumi.alicloud.eds.SimpleOfficeSiteArgs;\nimport com.pulumi.alicloud.cloudphoneinstance.Group;\nimport com.pulumi.alicloud.cloudphoneinstance.GroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-hangzhou\");\n        var defaultjZ1gi0 = new Policy(\"defaultjZ1gi0\", PolicyArgs.builder()\n            .lockResolution(\"off\")\n            .resolutionWidth(720)\n            .cameraRedirect(\"on\")\n            .policyGroupName(\"defaultPolicyGroup\")\n            .resolutionHeight(1280)\n            .clipboard(\"readwrite\")\n            .netRedirectPolicy(PolicyNetRedirectPolicyArgs.builder()\n                .netRedirect(\"off\")\n                .customProxy(\"off\")\n                .build())\n            .build());\n\n        var defaultH2a5KS = new SimpleOfficeSite(\"defaultH2a5KS\", SimpleOfficeSiteArgs.builder()\n            .officeSiteName(\"InitOfficeSite\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var default_ = new Group(\"default\", GroupArgs.builder()\n            .instanceGroupSpec(\"acp.basic.small\")\n            .instanceGroupName(\"AutoCreateGroupName\")\n            .period(1)\n            .numberOfInstances(1)\n            .chargeType(\"PostPaid\")\n            .imageId(\"imgc-075cllfeuazh03tg9\")\n            .periodUnit(\"Hour\")\n            .autoRenew(false)\n            .amount(1)\n            .autoPay(false)\n            .gpuAcceleration(false)\n            .policyGroupId(defaultjZ1gi0.id())\n            .officeSiteId(defaultH2a5KS.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  regionId:\n    type: string\n    default: cn-hangzhou\nresources:\n  defaultjZ1gi0:\n    type: alicloud:cloudphone:Policy\n    properties:\n      lockResolution: off\n      resolutionWidth: '720'\n      cameraRedirect: on\n      policyGroupName: defaultPolicyGroup\n      resolutionHeight: '1280'\n      clipboard: readwrite\n      netRedirectPolicy:\n        netRedirect: off\n        customProxy: off\n  defaultH2a5KS:\n    type: alicloud:eds:SimpleOfficeSite\n    properties:\n      officeSiteName: InitOfficeSite\n      cidrBlock: 172.16.0.0/12\n  default:\n    type: alicloud:cloudphoneinstance:Group\n    properties:\n      instanceGroupSpec: acp.basic.small\n      instanceGroupName: AutoCreateGroupName\n      period: '1'\n      numberOfInstances: '1'\n      chargeType: PostPaid\n      imageId: imgc-075cllfeuazh03tg9\n      periodUnit: Hour\n      autoRenew: false\n      amount: '1'\n      autoPay: false\n      gpuAcceleration: false\n      policyGroupId: ${defaultjZ1gi0.id}\n      officeSiteId: ${defaultH2a5KS.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Phone Instance Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudphoneinstance/group:Group example \u003cid\u003e\n```\n\n","properties":{"amount":{"type":"integer","description":"The number of instance groups. The default value is 1 and the maximum value is 100.\n"},"autoPay":{"type":"boolean","description":"Whether to pay automatically. The default is false.\n"},"autoRenew":{"type":"boolean","description":"Whether to enable automatic renewal. The default is false.\n"},"chargeType":{"type":"string","description":"The billing type.\n"},"gpuAcceleration":{"type":"boolean","description":"Whether to enable GPU acceleration. The default value is false.\n- true: On.\n- false: closed.\n"},"imageId":{"type":"string","description":"The image ID.\n"},"instanceGroupName":{"type":"string","description":"The instance group name\n\n\u003e **NOTE:** \u003e\n\n\u003e **NOTE:** - The instance group name must be no more than 30 characters in length. Start with an uppercase/lowercase letter or Chinese. It cannot start with http:// or https://. Only Chinese, English, numbers, half-width colons (:), underscores (_), periods (.), or hyphens (-) are supported.\n"},"instanceGroupSpec":{"type":"string","description":"Instance group specifications.\n"},"numberOfInstances":{"type":"integer","description":"The number of instances in the instance group. The maximum value is 100.\n"},"officeSiteId":{"type":"string","description":"The network ID.\n- Create a shared network instance: Network ID is optional. Enter the network ID whose type is **Shared Network** on the [cloud mobile phone console\u003e Network](https://wya.wuying.aliyun.com/network) page. If the console does not have a shared network, you can fill it in. A shared network is automatically created when the instance group is created.\n- Create a VPC instance: the network ID is required. Enter the network ID of `VPC` on the [cloud mobile phone console\u003e Network](https://wya.wuying.aliyun.com/network) page. If the console does not have a VPC network, you need to create a network first.\n"},"period":{"type":"integer","description":"The duration of the resource purchase. The unit is specified by PeriodUnit.\n"},"periodUnit":{"type":"string","description":"The unit of time for purchasing resources.\n"},"policyGroupId":{"type":"string","description":"The policy ID. You can query the list of policies by calling ListPolicyGroups.\n"},"status":{"type":"string","description":"Instance group status\n"},"vswitchId":{"type":"string","description":"The vSwitch ID.\n"}},"required":["imageId","instanceGroupSpec","status"],"inputProperties":{"amount":{"type":"integer","description":"The number of instance groups. The default value is 1 and the maximum value is 100.\n"},"autoPay":{"type":"boolean","description":"Whether to pay automatically. The default is false.\n"},"autoRenew":{"type":"boolean","description":"Whether to enable automatic renewal. The default is false.\n"},"chargeType":{"type":"string","description":"The billing type.\n","willReplaceOnChanges":true},"gpuAcceleration":{"type":"boolean","description":"Whether to enable GPU acceleration. The default value is false.\n- true: On.\n- false: closed.\n"},"imageId":{"type":"string","description":"The image ID.\n","willReplaceOnChanges":true},"instanceGroupName":{"type":"string","description":"The instance group name\n\n\u003e **NOTE:** \u003e\n\n\u003e **NOTE:** - The instance group name must be no more than 30 characters in length. Start with an uppercase/lowercase letter or Chinese. It cannot start with http:// or https://. Only Chinese, English, numbers, half-width colons (:), underscores (_), periods (.), or hyphens (-) are supported.\n"},"instanceGroupSpec":{"type":"string","description":"Instance group specifications.\n","willReplaceOnChanges":true},"numberOfInstances":{"type":"integer","description":"The number of instances in the instance group. The maximum value is 100.\n","willReplaceOnChanges":true},"officeSiteId":{"type":"string","description":"The network ID.\n- Create a shared network instance: Network ID is optional. Enter the network ID whose type is **Shared Network** on the [cloud mobile phone console\u003e Network](https://wya.wuying.aliyun.com/network) page. If the console does not have a shared network, you can fill it in. A shared network is automatically created when the instance group is created.\n- Create a VPC instance: the network ID is required. Enter the network ID of `VPC` on the [cloud mobile phone console\u003e Network](https://wya.wuying.aliyun.com/network) page. If the console does not have a VPC network, you need to create a network first.\n"},"period":{"type":"integer","description":"The duration of the resource purchase. The unit is specified by PeriodUnit.\n"},"periodUnit":{"type":"string","description":"The unit of time for purchasing resources.\n"},"policyGroupId":{"type":"string","description":"The policy ID. You can query the list of policies by calling ListPolicyGroups.\n"},"vswitchId":{"type":"string","description":"The vSwitch ID.\n"}},"requiredInputs":["imageId","instanceGroupSpec"],"stateInputs":{"description":"Input properties used for looking up and filtering Group resources.\n","properties":{"amount":{"type":"integer","description":"The number of instance groups. The default value is 1 and the maximum value is 100.\n"},"autoPay":{"type":"boolean","description":"Whether to pay automatically. The default is false.\n"},"autoRenew":{"type":"boolean","description":"Whether to enable automatic renewal. The default is false.\n"},"chargeType":{"type":"string","description":"The billing type.\n","willReplaceOnChanges":true},"gpuAcceleration":{"type":"boolean","description":"Whether to enable GPU acceleration. The default value is false.\n- true: On.\n- false: closed.\n"},"imageId":{"type":"string","description":"The image ID.\n","willReplaceOnChanges":true},"instanceGroupName":{"type":"string","description":"The instance group name\n\n\u003e **NOTE:** \u003e\n\n\u003e **NOTE:** - The instance group name must be no more than 30 characters in length. Start with an uppercase/lowercase letter or Chinese. It cannot start with http:// or https://. Only Chinese, English, numbers, half-width colons (:), underscores (_), periods (.), or hyphens (-) are supported.\n"},"instanceGroupSpec":{"type":"string","description":"Instance group specifications.\n","willReplaceOnChanges":true},"numberOfInstances":{"type":"integer","description":"The number of instances in the instance group. The maximum value is 100.\n","willReplaceOnChanges":true},"officeSiteId":{"type":"string","description":"The network ID.\n- Create a shared network instance: Network ID is optional. Enter the network ID whose type is **Shared Network** on the [cloud mobile phone console\u003e Network](https://wya.wuying.aliyun.com/network) page. If the console does not have a shared network, you can fill it in. A shared network is automatically created when the instance group is created.\n- Create a VPC instance: the network ID is required. Enter the network ID of `VPC` on the [cloud mobile phone console\u003e Network](https://wya.wuying.aliyun.com/network) page. If the console does not have a VPC network, you need to create a network first.\n"},"period":{"type":"integer","description":"The duration of the resource purchase. The unit is specified by PeriodUnit.\n"},"periodUnit":{"type":"string","description":"The unit of time for purchasing resources.\n"},"policyGroupId":{"type":"string","description":"The policy ID. You can query the list of policies by calling ListPolicyGroups.\n"},"status":{"type":"string","description":"Instance group status\n"},"vswitchId":{"type":"string","description":"The vSwitch ID.\n"}},"type":"object"}},"alicloud:cloudsso/accessConfiguration:AccessConfiguration":{"description":"Provides a Cloud SSO Access Configuration resource.\n\nFor information about Cloud SSO Access Configuration and how to use it, see [What is Access Configuration](https://www.alibabacloud.com/help/en/cloudsso/latest/api-cloudsso-2021-05-15-createaccessconfiguration).\n\n\u003e **NOTE:** Available since v1.145.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.cloudsso.getDirectories({});\nconst defaultAccessConfiguration = new alicloud.cloudsso.AccessConfiguration(\"default\", {\n    directoryId: _default.then(_default =\u003e _default.directories?.[0]?.id),\n    accessConfigurationName: name,\n    permissionPolicies: [{\n        permissionPolicyType: \"Inline\",\n        permissionPolicyName: name,\n        permissionPolicyDocument: `    {\n        \\\\\"Statement\\\\\":[\n      {\n        \\\\\"Action\\\\\":\\\\\"ecs:Get*\\\\\",\n        \\\\\"Effect\\\\\":\\\\\"Allow\\\\\",\n        \\\\\"Resource\\\\\":[\n            \\\\\"*\\\\\"\n        ]\n      }\n      ],\n        \\\\\"Version\\\\\": \\\\\"1\\\\\"\n    }\n`,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudsso.get_directories()\ndefault_access_configuration = alicloud.cloudsso.AccessConfiguration(\"default\",\n    directory_id=default.directories[0].id,\n    access_configuration_name=name,\n    permission_policies=[{\n        \"permission_policy_type\": \"Inline\",\n        \"permission_policy_name\": name,\n        \"permission_policy_document\": \"\"\"    {\n        \\\"Statement\\\":[\n      {\n        \\\"Action\\\":\\\"ecs:Get*\\\",\n        \\\"Effect\\\":\\\"Allow\\\",\n        \\\"Resource\\\":[\n            \\\"*\\\"\n        ]\n      }\n      ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n\"\"\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.CloudSso.GetDirectories.Invoke();\n\n    var defaultAccessConfiguration = new AliCloud.CloudSso.AccessConfiguration(\"default\", new()\n    {\n        DirectoryId = @default.Apply(@default =\u003e @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Directories[0]?.Id)),\n        AccessConfigurationName = name,\n        PermissionPolicies = new[]\n        {\n            new AliCloud.CloudSso.Inputs.AccessConfigurationPermissionPolicyArgs\n            {\n                PermissionPolicyType = \"Inline\",\n                PermissionPolicyName = name,\n                PermissionPolicyDocument = @\"    {\n        \\\"\"Statement\\\"\":[\n      {\n        \\\"\"Action\\\"\":\\\"\"ecs:Get*\\\"\",\n        \\\"\"Effect\\\"\":\\\"\"Allow\\\"\",\n        \\\"\"Resource\\\"\":[\n            \\\"\"*\\\"\"\n        ]\n      }\n      ],\n        \\\"\"Version\\\"\": \\\"\"1\\\"\"\n    }\n\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cloudsso.GetDirectories(ctx, \u0026cloudsso.GetDirectoriesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudsso.NewAccessConfiguration(ctx, \"default\", \u0026cloudsso.AccessConfigurationArgs{\n\t\t\tDirectoryId:             pulumi.String(_default.Directories[0].Id),\n\t\t\tAccessConfigurationName: pulumi.String(name),\n\t\t\tPermissionPolicies: cloudsso.AccessConfigurationPermissionPolicyArray{\n\t\t\t\t\u0026cloudsso.AccessConfigurationPermissionPolicyArgs{\n\t\t\t\t\tPermissionPolicyType: pulumi.String(\"Inline\"),\n\t\t\t\t\tPermissionPolicyName: pulumi.String(name),\n\t\t\t\t\tPermissionPolicyDocument: pulumi.String(`    {\n        \\\"Statement\\\":[\n      {\n        \\\"Action\\\":\\\"ecs:Get*\\\",\n        \\\"Effect\\\":\\\"Allow\\\",\n        \\\"Resource\\\":[\n            \\\"*\\\"\n        ]\n      }\n      ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n`),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudsso.CloudssoFunctions;\nimport com.pulumi.alicloud.cloudsso.inputs.GetDirectoriesArgs;\nimport com.pulumi.alicloud.cloudsso.AccessConfiguration;\nimport com.pulumi.alicloud.cloudsso.AccessConfigurationArgs;\nimport com.pulumi.alicloud.cloudsso.inputs.AccessConfigurationPermissionPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = CloudssoFunctions.getDirectories(GetDirectoriesArgs.builder()\n            .build());\n\n        var defaultAccessConfiguration = new AccessConfiguration(\"defaultAccessConfiguration\", AccessConfigurationArgs.builder()\n            .directoryId(default_.directories()[0].id())\n            .accessConfigurationName(name)\n            .permissionPolicies(AccessConfigurationPermissionPolicyArgs.builder()\n                .permissionPolicyType(\"Inline\")\n                .permissionPolicyName(name)\n                .permissionPolicyDocument(\"\"\"\n    {\n        \\\"Statement\\\":[\n      {\n        \\\"Action\\\":\\\"ecs:Get*\\\",\n        \\\"Effect\\\":\\\"Allow\\\",\n        \\\"Resource\\\":[\n            \\\"*\\\"\n        ]\n      }\n      ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n                \"\"\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultAccessConfiguration:\n    type: alicloud:cloudsso:AccessConfiguration\n    name: default\n    properties:\n      directoryId: ${default.directories[0].id}\n      accessConfigurationName: ${name}\n      permissionPolicies:\n        - permissionPolicyType: Inline\n          permissionPolicyName: ${name}\n          permissionPolicyDocument: |2\n                {\n                    \\\"Statement\\\":[\n                  {\n                    \\\"Action\\\":\\\"ecs:Get*\\\",\n                    \\\"Effect\\\":\\\"Allow\\\",\n                    \\\"Resource\\\":[\n                        \\\"*\\\"\n                    ]\n                  }\n                  ],\n                    \\\"Version\\\": \\\"1\\\"\n                }\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudsso:getDirectories\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud SSO Access Configuration can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudsso/accessConfiguration:AccessConfiguration example \u003cdirectory_id\u003e:\u003caccess_configuration_id\u003e\n```\n\n","properties":{"accessConfigurationId":{"type":"string","description":"The ID of the Access Configuration.\n"},"accessConfigurationName":{"type":"string","description":"The name of the access configuration. The name can be up to \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e characters long and can contain letters, digits, and hyphens (-).\n"},"description":{"type":"string","description":"The description of the access configuration. The description can be up to \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e characters in length.\n"},"directoryId":{"type":"string","description":"The ID of the Directory.\n"},"forceRemovePermissionPolicies":{"type":"boolean","description":"This parameter is used to force deletion \u003cspan pulumi-lang-nodejs=\"`permissionPolicies`\" pulumi-lang-dotnet=\"`PermissionPolicies`\" pulumi-lang-go=\"`permissionPolicies`\" pulumi-lang-python=\"`permission_policies`\" pulumi-lang-yaml=\"`permissionPolicies`\" pulumi-lang-java=\"`permissionPolicies`\"\u003e`permission_policies`\u003c/span\u003e. Valid Value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n* **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`permissionPolicies`\" pulumi-lang-dotnet=\"`PermissionPolicies`\" pulumi-lang-go=\"`permissionPolicies`\" pulumi-lang-python=\"`permission_policies`\" pulumi-lang-yaml=\"`permissionPolicies`\" pulumi-lang-java=\"`permissionPolicies`\"\u003e`permission_policies`\u003c/span\u003e will be removed automatically when the resource is deleted, please operate with caution. If there are left more permission policies in the access configuration, please remove them before deleting the access configuration.\n"},"permissionPolicies":{"type":"array","items":{"$ref":"#/types/alicloud:cloudsso/AccessConfigurationPermissionPolicy:AccessConfigurationPermissionPolicy"},"description":"The Policy List. See \u003cspan pulumi-lang-nodejs=\"`permissionPolicies`\" pulumi-lang-dotnet=\"`PermissionPolicies`\" pulumi-lang-go=\"`permissionPolicies`\" pulumi-lang-python=\"`permission_policies`\" pulumi-lang-yaml=\"`permissionPolicies`\" pulumi-lang-java=\"`permissionPolicies`\"\u003e`permission_policies`\u003c/span\u003e below.\n"},"relayState":{"type":"string","description":"The RelayState of the Access Configuration, Cloud SSO users use this access configuration to access the RD account, the initial access page address. Must be the Alibaba Cloud console page, the default is the console home page.\n"},"sessionDuration":{"type":"integer","description":"The SessionDuration of the Access Configuration. Unit: Seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`43200`\" pulumi-lang-dotnet=\"`43200`\" pulumi-lang-go=\"`43200`\" pulumi-lang-python=\"`43200`\" pulumi-lang-yaml=\"`43200`\" pulumi-lang-java=\"`43200`\"\u003e`43200`\u003c/span\u003e.\n"}},"required":["accessConfigurationId","accessConfigurationName","directoryId","sessionDuration"],"inputProperties":{"accessConfigurationName":{"type":"string","description":"The name of the access configuration. The name can be up to \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e characters long and can contain letters, digits, and hyphens (-).\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the access configuration. The description can be up to \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e characters in length.\n"},"directoryId":{"type":"string","description":"The ID of the Directory.\n","willReplaceOnChanges":true},"forceRemovePermissionPolicies":{"type":"boolean","description":"This parameter is used to force deletion \u003cspan pulumi-lang-nodejs=\"`permissionPolicies`\" pulumi-lang-dotnet=\"`PermissionPolicies`\" pulumi-lang-go=\"`permissionPolicies`\" pulumi-lang-python=\"`permission_policies`\" pulumi-lang-yaml=\"`permissionPolicies`\" pulumi-lang-java=\"`permissionPolicies`\"\u003e`permission_policies`\u003c/span\u003e. Valid Value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n* **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`permissionPolicies`\" pulumi-lang-dotnet=\"`PermissionPolicies`\" pulumi-lang-go=\"`permissionPolicies`\" pulumi-lang-python=\"`permission_policies`\" pulumi-lang-yaml=\"`permissionPolicies`\" pulumi-lang-java=\"`permissionPolicies`\"\u003e`permission_policies`\u003c/span\u003e will be removed automatically when the resource is deleted, please operate with caution. If there are left more permission policies in the access configuration, please remove them before deleting the access configuration.\n"},"permissionPolicies":{"type":"array","items":{"$ref":"#/types/alicloud:cloudsso/AccessConfigurationPermissionPolicy:AccessConfigurationPermissionPolicy"},"description":"The Policy List. See \u003cspan pulumi-lang-nodejs=\"`permissionPolicies`\" pulumi-lang-dotnet=\"`PermissionPolicies`\" pulumi-lang-go=\"`permissionPolicies`\" pulumi-lang-python=\"`permission_policies`\" pulumi-lang-yaml=\"`permissionPolicies`\" pulumi-lang-java=\"`permissionPolicies`\"\u003e`permission_policies`\u003c/span\u003e below.\n"},"relayState":{"type":"string","description":"The RelayState of the Access Configuration, Cloud SSO users use this access configuration to access the RD account, the initial access page address. Must be the Alibaba Cloud console page, the default is the console home page.\n"},"sessionDuration":{"type":"integer","description":"The SessionDuration of the Access Configuration. Unit: Seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`43200`\" pulumi-lang-dotnet=\"`43200`\" pulumi-lang-go=\"`43200`\" pulumi-lang-python=\"`43200`\" pulumi-lang-yaml=\"`43200`\" pulumi-lang-java=\"`43200`\"\u003e`43200`\u003c/span\u003e.\n"}},"requiredInputs":["accessConfigurationName","directoryId"],"stateInputs":{"description":"Input properties used for looking up and filtering AccessConfiguration resources.\n","properties":{"accessConfigurationId":{"type":"string","description":"The ID of the Access Configuration.\n"},"accessConfigurationName":{"type":"string","description":"The name of the access configuration. The name can be up to \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e characters long and can contain letters, digits, and hyphens (-).\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the access configuration. The description can be up to \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e characters in length.\n"},"directoryId":{"type":"string","description":"The ID of the Directory.\n","willReplaceOnChanges":true},"forceRemovePermissionPolicies":{"type":"boolean","description":"This parameter is used to force deletion \u003cspan pulumi-lang-nodejs=\"`permissionPolicies`\" pulumi-lang-dotnet=\"`PermissionPolicies`\" pulumi-lang-go=\"`permissionPolicies`\" pulumi-lang-python=\"`permission_policies`\" pulumi-lang-yaml=\"`permissionPolicies`\" pulumi-lang-java=\"`permissionPolicies`\"\u003e`permission_policies`\u003c/span\u003e. Valid Value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n* **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`permissionPolicies`\" pulumi-lang-dotnet=\"`PermissionPolicies`\" pulumi-lang-go=\"`permissionPolicies`\" pulumi-lang-python=\"`permission_policies`\" pulumi-lang-yaml=\"`permissionPolicies`\" pulumi-lang-java=\"`permissionPolicies`\"\u003e`permission_policies`\u003c/span\u003e will be removed automatically when the resource is deleted, please operate with caution. If there are left more permission policies in the access configuration, please remove them before deleting the access configuration.\n"},"permissionPolicies":{"type":"array","items":{"$ref":"#/types/alicloud:cloudsso/AccessConfigurationPermissionPolicy:AccessConfigurationPermissionPolicy"},"description":"The Policy List. See \u003cspan pulumi-lang-nodejs=\"`permissionPolicies`\" pulumi-lang-dotnet=\"`PermissionPolicies`\" pulumi-lang-go=\"`permissionPolicies`\" pulumi-lang-python=\"`permission_policies`\" pulumi-lang-yaml=\"`permissionPolicies`\" pulumi-lang-java=\"`permissionPolicies`\"\u003e`permission_policies`\u003c/span\u003e below.\n"},"relayState":{"type":"string","description":"The RelayState of the Access Configuration, Cloud SSO users use this access configuration to access the RD account, the initial access page address. Must be the Alibaba Cloud console page, the default is the console home page.\n"},"sessionDuration":{"type":"integer","description":"The SessionDuration of the Access Configuration. Unit: Seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`43200`\" pulumi-lang-dotnet=\"`43200`\" pulumi-lang-go=\"`43200`\" pulumi-lang-python=\"`43200`\" pulumi-lang-yaml=\"`43200`\" pulumi-lang-java=\"`43200`\"\u003e`43200`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:cloudsso/accessConfigurationProvisioning:AccessConfigurationProvisioning":{"description":"Provides a Cloud SSO Access Configuration Provisioning resource.\n\nFor information about Cloud SSO Access Configuration Provisioning and how to use it, see [What is Access Configuration Provisioning](https://www.alibabacloud.com/help/en/cloudsso/latest/api-cloudsso-2021-05-15-addpermissionpolicytoaccessconfiguration).\n\n\u003e **NOTE:** Available since v1.148.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.cloudsso.getDirectories({});\nconst defaultGetResourceDirectories = alicloud.resourcemanager.getResourceDirectories({});\nconst defaultDirectory: alicloud.cloudsso.Directory[] = [];\n_default.then(_default =\u003e _default.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultDirectory.push(new alicloud.cloudsso.Directory(`default-${range.value}`, {directoryName: name}));\n    }\n});\nconst directoryId = pulumi.all([_default.then(_default =\u003e _default.ids).length, _default, std.concat({\n    input: [\n        defaultDirectory.map(__item =\u003e __item.id),\n        [\"\"],\n    ],\n})]).apply(([length, _default, invoke]) =\u003e length \u003e 0 ? _default.ids?.[0] : invoke.result?.[0]);\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultUser = new alicloud.cloudsso.User(\"default\", {\n    directoryId: directoryId,\n    userName: `${name}-${defaultInteger.result}`,\n});\nconst defaultAccessConfiguration = new alicloud.cloudsso.AccessConfiguration(\"default\", {\n    accessConfigurationName: `${name}-${defaultInteger.result}`,\n    directoryId: directoryId,\n});\nconst defaultAccessConfigurationProvisioning = new alicloud.cloudsso.AccessConfigurationProvisioning(\"default\", {\n    directoryId: directoryId,\n    accessConfigurationId: defaultAccessConfiguration.accessConfigurationId,\n    targetType: \"RD-Account\",\n    targetId: defaultGetResourceDirectories.then(defaultGetResourceDirectories =\u003e defaultGetResourceDirectories.directories?.[0]?.masterAccountId),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.cloudsso.get_directories()\ndefault_get_resource_directories = alicloud.resourcemanager.get_resource_directories()\ndefault_directory = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_directory.append(alicloud.cloudsso.Directory(f\"default-{range['value']}\", directory_name=name))\n\nlen(default.ids).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\ndirectory_id = len(default.ids).apply(lambda length: default.ids[0] if length \u003e 0 else std.concat(input=[\n    [__item.id for __item in default_directory],\n    [\"\"],\n]).result[0])\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_user = alicloud.cloudsso.User(\"default\",\n    directory_id=directory_id,\n    user_name=f\"{name}-{default_integer['result']}\")\ndefault_access_configuration = alicloud.cloudsso.AccessConfiguration(\"default\",\n    access_configuration_name=f\"{name}-{default_integer['result']}\",\n    directory_id=directory_id)\ndefault_access_configuration_provisioning = alicloud.cloudsso.AccessConfigurationProvisioning(\"default\",\n    directory_id=directory_id,\n    access_configuration_id=default_access_configuration.access_configuration_id,\n    target_type=\"RD-Account\",\n    target_id=default_get_resource_directories.directories[0].master_account_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.CloudSso.GetDirectories.Invoke();\n\n    var defaultGetResourceDirectories = AliCloud.ResourceManager.GetResourceDirectories.Invoke();\n\n    var defaultDirectory = new List\u003cAliCloud.CloudSso.Directory\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c @default.Apply(@default =\u003e @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids)).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultDirectory.Add(new AliCloud.CloudSso.Directory($\"default-{range.Value}\", new()\n        {\n            DirectoryName = name,\n        }));\n    }\n    var directoryId = Output.Tuple(@default.Apply(@default =\u003e @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids)).Length, @default, Std.Concat.Invoke(new()\n    {\n        Input = new[]\n        {\n            defaultDirectory.Select(__item =\u003e __item.Id).ToList(),\n            new[]\n            {\n                \"\",\n            },\n        },\n    })).Apply(values =\u003e\n    {\n        var length = values.Item1;\n        var @default = values.Item2;\n        var invoke = values.Item3;\n        return length \u003e 0 ? @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids[0]) : invoke.Result[0];\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultUser = new AliCloud.CloudSso.User(\"default\", new()\n    {\n        DirectoryId = directoryId,\n        UserName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultAccessConfiguration = new AliCloud.CloudSso.AccessConfiguration(\"default\", new()\n    {\n        AccessConfigurationName = $\"{name}-{defaultInteger.Result}\",\n        DirectoryId = directoryId,\n    });\n\n    var defaultAccessConfigurationProvisioning = new AliCloud.CloudSso.AccessConfigurationProvisioning(\"default\", new()\n    {\n        DirectoryId = directoryId,\n        AccessConfigurationId = defaultAccessConfiguration.AccessConfigurationId,\n        TargetType = \"RD-Account\",\n        TargetId = defaultGetResourceDirectories.Apply(getResourceDirectoriesResult =\u003e getResourceDirectoriesResult.Directories[0]?.MasterAccountId),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"tf-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := cloudsso.GetDirectories(ctx, \u0026cloudsso.GetDirectoriesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetResourceDirectories, err := resourcemanager.GetResourceDirectories(ctx, \u0026resourcemanager.GetResourceDirectoriesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\nvar tmp0 float64\nif length \u003e 0 {\ntmp0 = 0\n} else {\ntmp0 = 1\n}\nvar defaultDirectory []*cloudsso.Directory\nfor index := 0; index \u003c float64(len(_default.Ids).ApplyT(func(length int) (float64, error) {\nreturn tmp0, nil\n}).(pulumi.Float64Output)); index++ {\n    key0 := index\n    _ := index\n__res, err := cloudsso.NewDirectory(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026cloudsso.DirectoryArgs{\nDirectoryName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ndefaultDirectory = append(defaultDirectory, __res)\n}\nvar tmp1 *interface{}\nif length \u003e 0 {\ntmp1 = _default.Ids[0]\n} else {\ntmp1 = std.Concat(ctx, \u0026std.ConcatArgs{\nInput: pulumi.StringArrayArray{\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:14,12-34),\n[]string{\n\"\",\n},\n},\n}, nil).Result[0]\n}\ndirectoryId := len(_default.Ids).ApplyT(func(length int) (*interface{}, error) {\nreturn \u0026tmp1, nil\n}).(pulumi.Interface{}PtrOutput)\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMin: 10000,\nMax: 99999,\n})\nif err != nil {\nreturn err\n}\n_, err = cloudsso.NewUser(ctx, \"default\", \u0026cloudsso.UserArgs{\nDirectoryId: pulumi.Any(directoryId),\nUserName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ndefaultAccessConfiguration, err := cloudsso.NewAccessConfiguration(ctx, \"default\", \u0026cloudsso.AccessConfigurationArgs{\nAccessConfigurationName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nDirectoryId: pulumi.Any(directoryId),\n})\nif err != nil {\nreturn err\n}\n_, err = cloudsso.NewAccessConfigurationProvisioning(ctx, \"default\", \u0026cloudsso.AccessConfigurationProvisioningArgs{\nDirectoryId: pulumi.Any(directoryId),\nAccessConfigurationId: defaultAccessConfiguration.AccessConfigurationId,\nTargetType: pulumi.String(\"RD-Account\"),\nTargetId: pulumi.String(defaultGetResourceDirectories.Directories[0].MasterAccountId),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudsso.CloudssoFunctions;\nimport com.pulumi.alicloud.cloudsso.inputs.GetDirectoriesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceDirectoriesArgs;\nimport com.pulumi.alicloud.cloudsso.Directory;\nimport com.pulumi.alicloud.cloudsso.DirectoryArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ConcatArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cloudsso.User;\nimport com.pulumi.alicloud.cloudsso.UserArgs;\nimport com.pulumi.alicloud.cloudsso.AccessConfiguration;\nimport com.pulumi.alicloud.cloudsso.AccessConfigurationArgs;\nimport com.pulumi.alicloud.cloudsso.AccessConfigurationProvisioning;\nimport com.pulumi.alicloud.cloudsso.AccessConfigurationProvisioningArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = CloudssoFunctions.getDirectories(GetDirectoriesArgs.builder()\n            .build());\n\n        final var defaultGetResourceDirectories = ResourcemanagerFunctions.getResourceDirectories(GetResourceDirectoriesArgs.builder()\n            .build());\n\n        for (var i = 0; i \u003c default_.ids().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new Directory(\"defaultDirectory-\" + i, DirectoryArgs.builder()\n                .directoryName(name)\n                .build());\n\n        \n}\n        final var directoryId = default_.ids().length().applyValue(_length -\u003e _length \u003e 0 ? default_.ids()[0] : StdFunctions.concat(ConcatArgs.builder()\n            .input(            \n                defaultDirectory.stream().map(element -\u003e element.id()).collect(toList()),\n                \"\")\n            .build()).result()[0]);\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultUser = new User(\"defaultUser\", UserArgs.builder()\n            .directoryId(directoryId)\n            .userName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultAccessConfiguration = new AccessConfiguration(\"defaultAccessConfiguration\", AccessConfigurationArgs.builder()\n            .accessConfigurationName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .directoryId(directoryId)\n            .build());\n\n        var defaultAccessConfigurationProvisioning = new AccessConfigurationProvisioning(\"defaultAccessConfigurationProvisioning\", AccessConfigurationProvisioningArgs.builder()\n            .directoryId(directoryId)\n            .accessConfigurationId(defaultAccessConfiguration.accessConfigurationId())\n            .targetType(\"RD-Account\")\n            .targetId(defaultGetResourceDirectories.directories()[0].masterAccountId())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud SSO Access Configuration Provisioning can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudsso/accessConfigurationProvisioning:AccessConfigurationProvisioning example \u003cdirectory_id\u003e:\u003caccess_configuration_id\u003e:\u003ctarget_type\u003e:\u003ctarget_id\u003e\n```\n\n","properties":{"accessConfigurationId":{"type":"string","description":"The Access configuration ID.\n"},"directoryId":{"type":"string","description":"The ID of the Directory.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Provisioned`, `ReprovisionRequired` and `DeprovisionFailed`.\n"},"targetId":{"type":"string","description":"The ID of the target to create the resource range.\n"},"targetType":{"type":"string","description":"The type of the resource range target to be accessed. Valid values: `RD-Account`.\n"}},"required":["accessConfigurationId","directoryId","status","targetId","targetType"],"inputProperties":{"accessConfigurationId":{"type":"string","description":"The Access configuration ID.\n","willReplaceOnChanges":true},"directoryId":{"type":"string","description":"The ID of the Directory.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `Provisioned`, `ReprovisionRequired` and `DeprovisionFailed`.\n"},"targetId":{"type":"string","description":"The ID of the target to create the resource range.\n","willReplaceOnChanges":true},"targetType":{"type":"string","description":"The type of the resource range target to be accessed. Valid values: `RD-Account`.\n","willReplaceOnChanges":true}},"requiredInputs":["accessConfigurationId","directoryId","targetId","targetType"],"stateInputs":{"description":"Input properties used for looking up and filtering AccessConfigurationProvisioning resources.\n","properties":{"accessConfigurationId":{"type":"string","description":"The Access configuration ID.\n","willReplaceOnChanges":true},"directoryId":{"type":"string","description":"The ID of the Directory.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `Provisioned`, `ReprovisionRequired` and `DeprovisionFailed`.\n"},"targetId":{"type":"string","description":"The ID of the target to create the resource range.\n","willReplaceOnChanges":true},"targetType":{"type":"string","description":"The type of the resource range target to be accessed. Valid values: `RD-Account`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudsso/accessManagement:AccessManagement":{"description":"Provides a Cloud SSO Access Assignment resource.\n\nFor information about Cloud SSO Access Assignment and how to use it, see [What is Access Assignment](https://www.alibabacloud.com/help/en/cloudsso/developer-reference/api-cloudsso-2021-05-15-createaccessassignment).\n\n\u003e **NOTE:** When you configure access assignment for the first time, access configuration will be automatically deployed.\n\n\u003e **NOTE:** Available since v1.145.0.\n\n\u003e **NOTE:** Cloud SSO Only Support `cn-shanghai` And `us-west-1` Region\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.cloudsso.getDirectories({});\nconst defaultGetResourceDirectories = alicloud.resourcemanager.getResourceDirectories({});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultDirectory: alicloud.cloudsso.Directory[] = [];\n_default.then(_default =\u003e _default.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultDirectory.push(new alicloud.cloudsso.Directory(`default-${range.value}`, {directoryName: name}));\n    }\n});\nconst directoryId = pulumi.all([_default.then(_default =\u003e _default.ids).length, _default, std.concat({\n    input: [\n        defaultDirectory.map(__item =\u003e __item.id),\n        [\"\"],\n    ],\n})]).apply(([length, _default, invoke]) =\u003e length \u003e 0 ? _default.ids?.[0] : invoke.result?.[0]);\nconst defaultUser = new alicloud.cloudsso.User(\"default\", {\n    directoryId: directoryId,\n    userName: `${name}-${defaultInteger.result}`,\n});\nconst defaultAccessConfiguration = new alicloud.cloudsso.AccessConfiguration(\"default\", {\n    directoryId: directoryId,\n    accessConfigurationName: `${name}-${defaultInteger.result}`,\n});\nconst defaultAccessManagement = new alicloud.cloudsso.AccessManagement(\"default\", {\n    directoryId: directoryId,\n    accessConfigurationId: defaultAccessConfiguration.accessConfigurationId,\n    targetType: \"RD-Account\",\n    targetId: defaultGetResourceDirectories.then(defaultGetResourceDirectories =\u003e defaultGetResourceDirectories.directories?.[0]?.masterAccountId),\n    principalType: \"User\",\n    principalId: defaultUser.userId,\n    deprovisionStrategy: \"DeprovisionForLastAccessAssignmentOnAccount\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudsso.get_directories()\ndefault_get_resource_directories = alicloud.resourcemanager.get_resource_directories()\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_directory = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_directory.append(alicloud.cloudsso.Directory(f\"default-{range['value']}\", directory_name=name))\n\nlen(default.ids).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\ndirectory_id = len(default.ids).apply(lambda length: default.ids[0] if length \u003e 0 else std.concat(input=[\n    [__item.id for __item in default_directory],\n    [\"\"],\n]).result[0])\ndefault_user = alicloud.cloudsso.User(\"default\",\n    directory_id=directory_id,\n    user_name=f\"{name}-{default_integer['result']}\")\ndefault_access_configuration = alicloud.cloudsso.AccessConfiguration(\"default\",\n    directory_id=directory_id,\n    access_configuration_name=f\"{name}-{default_integer['result']}\")\ndefault_access_management = alicloud.cloudsso.AccessManagement(\"default\",\n    directory_id=directory_id,\n    access_configuration_id=default_access_configuration.access_configuration_id,\n    target_type=\"RD-Account\",\n    target_id=default_get_resource_directories.directories[0].master_account_id,\n    principal_type=\"User\",\n    principal_id=default_user.user_id,\n    deprovision_strategy=\"DeprovisionForLastAccessAssignmentOnAccount\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.CloudSso.GetDirectories.Invoke();\n\n    var defaultGetResourceDirectories = AliCloud.ResourceManager.GetResourceDirectories.Invoke();\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultDirectory = new List\u003cAliCloud.CloudSso.Directory\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c @default.Apply(@default =\u003e @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids)).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultDirectory.Add(new AliCloud.CloudSso.Directory($\"default-{range.Value}\", new()\n        {\n            DirectoryName = name,\n        }));\n    }\n    var directoryId = Output.Tuple(@default.Apply(@default =\u003e @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids)).Length, @default, Std.Concat.Invoke(new()\n    {\n        Input = new[]\n        {\n            defaultDirectory.Select(__item =\u003e __item.Id).ToList(),\n            new[]\n            {\n                \"\",\n            },\n        },\n    })).Apply(values =\u003e\n    {\n        var length = values.Item1;\n        var @default = values.Item2;\n        var invoke = values.Item3;\n        return length \u003e 0 ? @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids[0]) : invoke.Result[0];\n    });\n\n    var defaultUser = new AliCloud.CloudSso.User(\"default\", new()\n    {\n        DirectoryId = directoryId,\n        UserName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultAccessConfiguration = new AliCloud.CloudSso.AccessConfiguration(\"default\", new()\n    {\n        DirectoryId = directoryId,\n        AccessConfigurationName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultAccessManagement = new AliCloud.CloudSso.AccessManagement(\"default\", new()\n    {\n        DirectoryId = directoryId,\n        AccessConfigurationId = defaultAccessConfiguration.AccessConfigurationId,\n        TargetType = \"RD-Account\",\n        TargetId = defaultGetResourceDirectories.Apply(getResourceDirectoriesResult =\u003e getResourceDirectoriesResult.Directories[0]?.MasterAccountId),\n        PrincipalType = \"User\",\n        PrincipalId = defaultUser.UserId,\n        DeprovisionStrategy = \"DeprovisionForLastAccessAssignmentOnAccount\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := cloudsso.GetDirectories(ctx, \u0026cloudsso.GetDirectoriesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetResourceDirectories, err := resourcemanager.GetResourceDirectories(ctx, \u0026resourcemanager.GetResourceDirectoriesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMin: 10000,\nMax: 99999,\n})\nif err != nil {\nreturn err\n}\nvar tmp0 float64\nif length \u003e 0 {\ntmp0 = 0\n} else {\ntmp0 = 1\n}\nvar defaultDirectory []*cloudsso.Directory\nfor index := 0; index \u003c float64(len(_default.Ids).ApplyT(func(length int) (float64, error) {\nreturn tmp0, nil\n}).(pulumi.Float64Output)); index++ {\n    key0 := index\n    _ := index\n__res, err := cloudsso.NewDirectory(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026cloudsso.DirectoryArgs{\nDirectoryName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ndefaultDirectory = append(defaultDirectory, __res)\n}\nvar tmp1 *interface{}\nif length \u003e 0 {\ntmp1 = _default.Ids[0]\n} else {\ntmp1 = std.Concat(ctx, \u0026std.ConcatArgs{\nInput: pulumi.StringArrayArray{\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:45,12-34),\n[]string{\n\"\",\n},\n},\n}, nil).Result[0]\n}\ndirectoryId := len(_default.Ids).ApplyT(func(length int) (*interface{}, error) {\nreturn \u0026tmp1, nil\n}).(pulumi.Interface{}PtrOutput)\ndefaultUser, err := cloudsso.NewUser(ctx, \"default\", \u0026cloudsso.UserArgs{\nDirectoryId: pulumi.Any(directoryId),\nUserName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ndefaultAccessConfiguration, err := cloudsso.NewAccessConfiguration(ctx, \"default\", \u0026cloudsso.AccessConfigurationArgs{\nDirectoryId: pulumi.Any(directoryId),\nAccessConfigurationName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\n_, err = cloudsso.NewAccessManagement(ctx, \"default\", \u0026cloudsso.AccessManagementArgs{\nDirectoryId: pulumi.Any(directoryId),\nAccessConfigurationId: defaultAccessConfiguration.AccessConfigurationId,\nTargetType: pulumi.String(\"RD-Account\"),\nTargetId: pulumi.String(defaultGetResourceDirectories.Directories[0].MasterAccountId),\nPrincipalType: pulumi.String(\"User\"),\nPrincipalId: defaultUser.UserId,\nDeprovisionStrategy: pulumi.String(\"DeprovisionForLastAccessAssignmentOnAccount\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudsso.CloudssoFunctions;\nimport com.pulumi.alicloud.cloudsso.inputs.GetDirectoriesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceDirectoriesArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cloudsso.Directory;\nimport com.pulumi.alicloud.cloudsso.DirectoryArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ConcatArgs;\nimport com.pulumi.alicloud.cloudsso.User;\nimport com.pulumi.alicloud.cloudsso.UserArgs;\nimport com.pulumi.alicloud.cloudsso.AccessConfiguration;\nimport com.pulumi.alicloud.cloudsso.AccessConfigurationArgs;\nimport com.pulumi.alicloud.cloudsso.AccessManagement;\nimport com.pulumi.alicloud.cloudsso.AccessManagementArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = CloudssoFunctions.getDirectories(GetDirectoriesArgs.builder()\n            .build());\n\n        final var defaultGetResourceDirectories = ResourcemanagerFunctions.getResourceDirectories(GetResourceDirectoriesArgs.builder()\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        for (var i = 0; i \u003c default_.ids().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new Directory(\"defaultDirectory-\" + i, DirectoryArgs.builder()\n                .directoryName(name)\n                .build());\n\n        \n}\n        final var directoryId = default_.ids().length().applyValue(_length -\u003e _length \u003e 0 ? default_.ids()[0] : StdFunctions.concat(ConcatArgs.builder()\n            .input(            \n                defaultDirectory.stream().map(element -\u003e element.id()).collect(toList()),\n                \"\")\n            .build()).result()[0]);\n\n        var defaultUser = new User(\"defaultUser\", UserArgs.builder()\n            .directoryId(directoryId)\n            .userName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultAccessConfiguration = new AccessConfiguration(\"defaultAccessConfiguration\", AccessConfigurationArgs.builder()\n            .directoryId(directoryId)\n            .accessConfigurationName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultAccessManagement = new AccessManagement(\"defaultAccessManagement\", AccessManagementArgs.builder()\n            .directoryId(directoryId)\n            .accessConfigurationId(defaultAccessConfiguration.accessConfigurationId())\n            .targetType(\"RD-Account\")\n            .targetId(defaultGetResourceDirectories.directories()[0].masterAccountId())\n            .principalType(\"User\")\n            .principalId(defaultUser.userId())\n            .deprovisionStrategy(\"DeprovisionForLastAccessAssignmentOnAccount\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud SSO Access Assignment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudsso/accessManagement:AccessManagement example \u003cdirectory_id\u003e:\u003caccess_configuration_id\u003e:\u003ctarget_type\u003e:\u003ctarget_id\u003e:\u003cprincipal_type\u003e:\u003cprincipal_id\u003e\n```\n\n","properties":{"accessConfigurationId":{"type":"string","description":"The ID of the access configuration.\n"},"createTime":{"type":"string","description":"(Available since v1.254.0) The time when the access permissions were assigned.\n"},"deprovisionStrategy":{"type":"string","description":"Specifies whether to de-provision the access configuration when you remove the access permissions from the CloudSSO identity. Valid values: `DeprovisionForLastAccessAssignmentOnAccount` and `None`. Default Value: `DeprovisionForLastAccessAssignmentOnAccount`. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`deprovisionStrategy`\" pulumi-lang-dotnet=\"`DeprovisionStrategy`\" pulumi-lang-go=\"`deprovisionStrategy`\" pulumi-lang-python=\"`deprovision_strategy`\" pulumi-lang-yaml=\"`deprovisionStrategy`\" pulumi-lang-java=\"`deprovisionStrategy`\"\u003e`deprovision_strategy`\u003c/span\u003e is `DeprovisionForLastAccessAssignmentOnAccount`, and the access assignment to be deleted is the last access assignment for the same account and the same AC, this option is used for the undeployment operation.\n"},"directoryId":{"type":"string","description":"The ID of the Directory.\n"},"principalId":{"type":"string","description":"The ID of the CloudSSO identity.\n"},"principalType":{"type":"string","description":"The type of the CloudSSO identity. Valid values: `User`, `Group`.\n"},"targetId":{"type":"string","description":"The ID of the task object.\n"},"targetType":{"type":"string","description":"The type of the task object. Valid values: `RD-Account`.\n"}},"required":["accessConfigurationId","createTime","directoryId","principalId","principalType","targetId","targetType"],"inputProperties":{"accessConfigurationId":{"type":"string","description":"The ID of the access configuration.\n","willReplaceOnChanges":true},"deprovisionStrategy":{"type":"string","description":"Specifies whether to de-provision the access configuration when you remove the access permissions from the CloudSSO identity. Valid values: `DeprovisionForLastAccessAssignmentOnAccount` and `None`. Default Value: `DeprovisionForLastAccessAssignmentOnAccount`. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`deprovisionStrategy`\" pulumi-lang-dotnet=\"`DeprovisionStrategy`\" pulumi-lang-go=\"`deprovisionStrategy`\" pulumi-lang-python=\"`deprovision_strategy`\" pulumi-lang-yaml=\"`deprovisionStrategy`\" pulumi-lang-java=\"`deprovisionStrategy`\"\u003e`deprovision_strategy`\u003c/span\u003e is `DeprovisionForLastAccessAssignmentOnAccount`, and the access assignment to be deleted is the last access assignment for the same account and the same AC, this option is used for the undeployment operation.\n"},"directoryId":{"type":"string","description":"The ID of the Directory.\n","willReplaceOnChanges":true},"principalId":{"type":"string","description":"The ID of the CloudSSO identity.\n","willReplaceOnChanges":true},"principalType":{"type":"string","description":"The type of the CloudSSO identity. Valid values: `User`, `Group`.\n","willReplaceOnChanges":true},"targetId":{"type":"string","description":"The ID of the task object.\n","willReplaceOnChanges":true},"targetType":{"type":"string","description":"The type of the task object. Valid values: `RD-Account`.\n","willReplaceOnChanges":true}},"requiredInputs":["accessConfigurationId","directoryId","principalId","principalType","targetId","targetType"],"stateInputs":{"description":"Input properties used for looking up and filtering AccessManagement resources.\n","properties":{"accessConfigurationId":{"type":"string","description":"The ID of the access configuration.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"(Available since v1.254.0) The time when the access permissions were assigned.\n"},"deprovisionStrategy":{"type":"string","description":"Specifies whether to de-provision the access configuration when you remove the access permissions from the CloudSSO identity. Valid values: `DeprovisionForLastAccessAssignmentOnAccount` and `None`. Default Value: `DeprovisionForLastAccessAssignmentOnAccount`. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`deprovisionStrategy`\" pulumi-lang-dotnet=\"`DeprovisionStrategy`\" pulumi-lang-go=\"`deprovisionStrategy`\" pulumi-lang-python=\"`deprovision_strategy`\" pulumi-lang-yaml=\"`deprovisionStrategy`\" pulumi-lang-java=\"`deprovisionStrategy`\"\u003e`deprovision_strategy`\u003c/span\u003e is `DeprovisionForLastAccessAssignmentOnAccount`, and the access assignment to be deleted is the last access assignment for the same account and the same AC, this option is used for the undeployment operation.\n"},"directoryId":{"type":"string","description":"The ID of the Directory.\n","willReplaceOnChanges":true},"principalId":{"type":"string","description":"The ID of the CloudSSO identity.\n","willReplaceOnChanges":true},"principalType":{"type":"string","description":"The type of the CloudSSO identity. Valid values: `User`, `Group`.\n","willReplaceOnChanges":true},"targetId":{"type":"string","description":"The ID of the task object.\n","willReplaceOnChanges":true},"targetType":{"type":"string","description":"The type of the task object. Valid values: `RD-Account`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudsso/delegateAccount:DelegateAccount":{"description":"Provides a Cloud SSO Delegate Account resource.\n\nDelegated Administrator Account.\n\nFor information about Cloud SSO Delegate Account and how to use it, see [What is Delegate Account](https://next.api.alibabacloud.com/document/cloudsso/2021-05-15/EnableDelegateAccount).\n\n\u003e **NOTE:** Available since v1.259.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getAccounts({\n    status: \"CreateSuccess\",\n});\nconst defaultDelegatedAdministrator = new alicloud.resourcemanager.DelegatedAdministrator(\"default\", {\n    accountId: _default.then(_default =\u003e _default.accounts?.[0]?.accountId),\n    servicePrincipal: \"cloudsso.aliyuncs.com\",\n});\nconst defaultDelegateAccount = new alicloud.cloudsso.DelegateAccount(\"default\", {accountId: defaultDelegatedAdministrator.accountId});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_accounts(status=\"CreateSuccess\")\ndefault_delegated_administrator = alicloud.resourcemanager.DelegatedAdministrator(\"default\",\n    account_id=default.accounts[0].account_id,\n    service_principal=\"cloudsso.aliyuncs.com\")\ndefault_delegate_account = alicloud.cloudsso.DelegateAccount(\"default\", account_id=default_delegated_administrator.account_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetAccounts.Invoke(new()\n    {\n        Status = \"CreateSuccess\",\n    });\n\n    var defaultDelegatedAdministrator = new AliCloud.ResourceManager.DelegatedAdministrator(\"default\", new()\n    {\n        AccountId = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Accounts[0]?.AccountId)),\n        ServicePrincipal = \"cloudsso.aliyuncs.com\",\n    });\n\n    var defaultDelegateAccount = new AliCloud.CloudSso.DelegateAccount(\"default\", new()\n    {\n        AccountId = defaultDelegatedAdministrator.AccountId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetAccounts(ctx, \u0026resourcemanager.GetAccountsArgs{\n\t\t\tStatus: pulumi.StringRef(\"CreateSuccess\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDelegatedAdministrator, err := resourcemanager.NewDelegatedAdministrator(ctx, \"default\", \u0026resourcemanager.DelegatedAdministratorArgs{\n\t\t\tAccountId:        pulumi.String(_default.Accounts[0].AccountId),\n\t\t\tServicePrincipal: pulumi.String(\"cloudsso.aliyuncs.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudsso.NewDelegateAccount(ctx, \"default\", \u0026cloudsso.DelegateAccountArgs{\n\t\t\tAccountId: defaultDelegatedAdministrator.AccountId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetAccountsArgs;\nimport com.pulumi.alicloud.resourcemanager.DelegatedAdministrator;\nimport com.pulumi.alicloud.resourcemanager.DelegatedAdministratorArgs;\nimport com.pulumi.alicloud.cloudsso.DelegateAccount;\nimport com.pulumi.alicloud.cloudsso.DelegateAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getAccounts(GetAccountsArgs.builder()\n            .status(\"CreateSuccess\")\n            .build());\n\n        var defaultDelegatedAdministrator = new DelegatedAdministrator(\"defaultDelegatedAdministrator\", DelegatedAdministratorArgs.builder()\n            .accountId(default_.accounts()[0].accountId())\n            .servicePrincipal(\"cloudsso.aliyuncs.com\")\n            .build());\n\n        var defaultDelegateAccount = new DelegateAccount(\"defaultDelegateAccount\", DelegateAccountArgs.builder()\n            .accountId(defaultDelegatedAdministrator.accountId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultDelegatedAdministrator:\n    type: alicloud:resourcemanager:DelegatedAdministrator\n    name: default\n    properties:\n      accountId: ${default.accounts[0].accountId}\n      servicePrincipal: cloudsso.aliyuncs.com\n  defaultDelegateAccount:\n    type: alicloud:cloudsso:DelegateAccount\n    name: default\n    properties:\n      accountId: ${defaultDelegatedAdministrator.accountId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getAccounts\n      arguments:\n        status: CreateSuccess\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud SSO Delegate Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudsso/delegateAccount:DelegateAccount example \u003cid\u003e\n```\n\n","properties":{"accountId":{"type":"string","description":"Delegate administrator account Id\n"}},"required":["accountId"],"inputProperties":{"accountId":{"type":"string","description":"Delegate administrator account Id\n","willReplaceOnChanges":true}},"requiredInputs":["accountId"],"stateInputs":{"description":"Input properties used for looking up and filtering DelegateAccount resources.\n","properties":{"accountId":{"type":"string","description":"Delegate administrator account Id\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudsso/directory:Directory":{"description":"Provides a Cloud SSO Directory resource.\n\n\n\nFor information about Cloud SSO Directory and how to use it, see [What is Directory](https://www.alibabacloud.com/help/en/cloudsso/latest/api-cloudsso-2021-05-15-createdirectory).\n\n\u003e **NOTE:** Available since v1.135.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new alicloud.cloudsso.Directory(\"default\", {directoryName: name});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.cloudsso.Directory(\"default\", directory_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new AliCloud.CloudSso.Directory(\"default\", new()\n    {\n        DirectoryName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cloudsso.NewDirectory(ctx, \"default\", \u0026cloudsso.DirectoryArgs{\n\t\t\tDirectoryName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudsso.Directory;\nimport com.pulumi.alicloud.cloudsso.DirectoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new Directory(\"default\", DirectoryArgs.builder()\n            .directoryName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:cloudsso:Directory\n    properties:\n      directoryName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud SSO Directory can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudsso/directory:Directory example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"CreateTime\n"},"directoryGlobalAccessStatus":{"type":"string","description":"Directory Global Acceleration activation status\n"},"directoryName":{"type":"string","description":"DirectoryName\n"},"loginPreference":{"$ref":"#/types/alicloud:cloudsso/DirectoryLoginPreference:DirectoryLoginPreference","description":"Login preferences See \u003cspan pulumi-lang-nodejs=\"`loginPreference`\" pulumi-lang-dotnet=\"`LoginPreference`\" pulumi-lang-go=\"`loginPreference`\" pulumi-lang-python=\"`login_preference`\" pulumi-lang-yaml=\"`loginPreference`\" pulumi-lang-java=\"`loginPreference`\"\u003e`login_preference`\u003c/span\u003e below.\n"},"mfaAuthenticationSettingInfo":{"$ref":"#/types/alicloud:cloudsso/DirectoryMfaAuthenticationSettingInfo:DirectoryMfaAuthenticationSettingInfo","description":"Global MFA verification configuration. See \u003cspan pulumi-lang-nodejs=\"`mfaAuthenticationSettingInfo`\" pulumi-lang-dotnet=\"`MfaAuthenticationSettingInfo`\" pulumi-lang-go=\"`mfaAuthenticationSettingInfo`\" pulumi-lang-python=\"`mfa_authentication_setting_info`\" pulumi-lang-yaml=\"`mfaAuthenticationSettingInfo`\" pulumi-lang-java=\"`mfaAuthenticationSettingInfo`\"\u003e`mfa_authentication_setting_info`\u003c/span\u003e below.\n"},"mfaAuthenticationStatus":{"type":"string","description":"MFA Authentication Status\n"},"passwordPolicy":{"$ref":"#/types/alicloud:cloudsso/DirectoryPasswordPolicy:DirectoryPasswordPolicy","description":"Password policy See \u003cspan pulumi-lang-nodejs=\"`passwordPolicy`\" pulumi-lang-dotnet=\"`PasswordPolicy`\" pulumi-lang-go=\"`passwordPolicy`\" pulumi-lang-python=\"`password_policy`\" pulumi-lang-yaml=\"`passwordPolicy`\" pulumi-lang-java=\"`passwordPolicy`\"\u003e`password_policy`\u003c/span\u003e below.\n"},"samlIdentityProviderConfiguration":{"$ref":"#/types/alicloud:cloudsso/DirectorySamlIdentityProviderConfiguration:DirectorySamlIdentityProviderConfiguration","description":"Identity Provider (IDP) See \u003cspan pulumi-lang-nodejs=\"`samlIdentityProviderConfiguration`\" pulumi-lang-dotnet=\"`SamlIdentityProviderConfiguration`\" pulumi-lang-go=\"`samlIdentityProviderConfiguration`\" pulumi-lang-python=\"`saml_identity_provider_configuration`\" pulumi-lang-yaml=\"`samlIdentityProviderConfiguration`\" pulumi-lang-java=\"`samlIdentityProviderConfiguration`\"\u003e`saml_identity_provider_configuration`\u003c/span\u003e below.\n"},"samlServiceProvider":{"$ref":"#/types/alicloud:cloudsso/DirectorySamlServiceProvider:DirectorySamlServiceProvider","description":"SP information. See \u003cspan pulumi-lang-nodejs=\"`samlServiceProvider`\" pulumi-lang-dotnet=\"`SamlServiceProvider`\" pulumi-lang-go=\"`samlServiceProvider`\" pulumi-lang-python=\"`saml_service_provider`\" pulumi-lang-yaml=\"`samlServiceProvider`\" pulumi-lang-java=\"`samlServiceProvider`\"\u003e`saml_service_provider`\u003c/span\u003e below.\n"},"scimSynchronizationStatus":{"type":"string","description":"SCIM Synchronization Status\n"},"userProvisioningConfiguration":{"$ref":"#/types/alicloud:cloudsso/DirectoryUserProvisioningConfiguration:DirectoryUserProvisioningConfiguration","description":"User Provisioning configuration See \u003cspan pulumi-lang-nodejs=\"`userProvisioningConfiguration`\" pulumi-lang-dotnet=\"`UserProvisioningConfiguration`\" pulumi-lang-go=\"`userProvisioningConfiguration`\" pulumi-lang-python=\"`user_provisioning_configuration`\" pulumi-lang-yaml=\"`userProvisioningConfiguration`\" pulumi-lang-java=\"`userProvisioningConfiguration`\"\u003e`user_provisioning_configuration`\u003c/span\u003e below.\n"}},"required":["createTime","directoryGlobalAccessStatus","loginPreference","mfaAuthenticationSettingInfo","mfaAuthenticationStatus","passwordPolicy","samlIdentityProviderConfiguration","samlServiceProvider","scimSynchronizationStatus","userProvisioningConfiguration"],"inputProperties":{"directoryGlobalAccessStatus":{"type":"string","description":"Directory Global Acceleration activation status\n"},"directoryName":{"type":"string","description":"DirectoryName\n"},"loginPreference":{"$ref":"#/types/alicloud:cloudsso/DirectoryLoginPreference:DirectoryLoginPreference","description":"Login preferences See \u003cspan pulumi-lang-nodejs=\"`loginPreference`\" pulumi-lang-dotnet=\"`LoginPreference`\" pulumi-lang-go=\"`loginPreference`\" pulumi-lang-python=\"`login_preference`\" pulumi-lang-yaml=\"`loginPreference`\" pulumi-lang-java=\"`loginPreference`\"\u003e`login_preference`\u003c/span\u003e below.\n"},"mfaAuthenticationSettingInfo":{"$ref":"#/types/alicloud:cloudsso/DirectoryMfaAuthenticationSettingInfo:DirectoryMfaAuthenticationSettingInfo","description":"Global MFA verification configuration. See \u003cspan pulumi-lang-nodejs=\"`mfaAuthenticationSettingInfo`\" pulumi-lang-dotnet=\"`MfaAuthenticationSettingInfo`\" pulumi-lang-go=\"`mfaAuthenticationSettingInfo`\" pulumi-lang-python=\"`mfa_authentication_setting_info`\" pulumi-lang-yaml=\"`mfaAuthenticationSettingInfo`\" pulumi-lang-java=\"`mfaAuthenticationSettingInfo`\"\u003e`mfa_authentication_setting_info`\u003c/span\u003e below.\n"},"mfaAuthenticationStatus":{"type":"string","description":"MFA Authentication Status\n"},"passwordPolicy":{"$ref":"#/types/alicloud:cloudsso/DirectoryPasswordPolicy:DirectoryPasswordPolicy","description":"Password policy See \u003cspan pulumi-lang-nodejs=\"`passwordPolicy`\" pulumi-lang-dotnet=\"`PasswordPolicy`\" pulumi-lang-go=\"`passwordPolicy`\" pulumi-lang-python=\"`password_policy`\" pulumi-lang-yaml=\"`passwordPolicy`\" pulumi-lang-java=\"`passwordPolicy`\"\u003e`password_policy`\u003c/span\u003e below.\n"},"samlIdentityProviderConfiguration":{"$ref":"#/types/alicloud:cloudsso/DirectorySamlIdentityProviderConfiguration:DirectorySamlIdentityProviderConfiguration","description":"Identity Provider (IDP) See \u003cspan pulumi-lang-nodejs=\"`samlIdentityProviderConfiguration`\" pulumi-lang-dotnet=\"`SamlIdentityProviderConfiguration`\" pulumi-lang-go=\"`samlIdentityProviderConfiguration`\" pulumi-lang-python=\"`saml_identity_provider_configuration`\" pulumi-lang-yaml=\"`samlIdentityProviderConfiguration`\" pulumi-lang-java=\"`samlIdentityProviderConfiguration`\"\u003e`saml_identity_provider_configuration`\u003c/span\u003e below.\n"},"samlServiceProvider":{"$ref":"#/types/alicloud:cloudsso/DirectorySamlServiceProvider:DirectorySamlServiceProvider","description":"SP information. See \u003cspan pulumi-lang-nodejs=\"`samlServiceProvider`\" pulumi-lang-dotnet=\"`SamlServiceProvider`\" pulumi-lang-go=\"`samlServiceProvider`\" pulumi-lang-python=\"`saml_service_provider`\" pulumi-lang-yaml=\"`samlServiceProvider`\" pulumi-lang-java=\"`samlServiceProvider`\"\u003e`saml_service_provider`\u003c/span\u003e below.\n"},"scimSynchronizationStatus":{"type":"string","description":"SCIM Synchronization Status\n"},"userProvisioningConfiguration":{"$ref":"#/types/alicloud:cloudsso/DirectoryUserProvisioningConfiguration:DirectoryUserProvisioningConfiguration","description":"User Provisioning configuration See \u003cspan pulumi-lang-nodejs=\"`userProvisioningConfiguration`\" pulumi-lang-dotnet=\"`UserProvisioningConfiguration`\" pulumi-lang-go=\"`userProvisioningConfiguration`\" pulumi-lang-python=\"`user_provisioning_configuration`\" pulumi-lang-yaml=\"`userProvisioningConfiguration`\" pulumi-lang-java=\"`userProvisioningConfiguration`\"\u003e`user_provisioning_configuration`\u003c/span\u003e below.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Directory resources.\n","properties":{"createTime":{"type":"string","description":"CreateTime\n"},"directoryGlobalAccessStatus":{"type":"string","description":"Directory Global Acceleration activation status\n"},"directoryName":{"type":"string","description":"DirectoryName\n"},"loginPreference":{"$ref":"#/types/alicloud:cloudsso/DirectoryLoginPreference:DirectoryLoginPreference","description":"Login preferences See \u003cspan pulumi-lang-nodejs=\"`loginPreference`\" pulumi-lang-dotnet=\"`LoginPreference`\" pulumi-lang-go=\"`loginPreference`\" pulumi-lang-python=\"`login_preference`\" pulumi-lang-yaml=\"`loginPreference`\" pulumi-lang-java=\"`loginPreference`\"\u003e`login_preference`\u003c/span\u003e below.\n"},"mfaAuthenticationSettingInfo":{"$ref":"#/types/alicloud:cloudsso/DirectoryMfaAuthenticationSettingInfo:DirectoryMfaAuthenticationSettingInfo","description":"Global MFA verification configuration. See \u003cspan pulumi-lang-nodejs=\"`mfaAuthenticationSettingInfo`\" pulumi-lang-dotnet=\"`MfaAuthenticationSettingInfo`\" pulumi-lang-go=\"`mfaAuthenticationSettingInfo`\" pulumi-lang-python=\"`mfa_authentication_setting_info`\" pulumi-lang-yaml=\"`mfaAuthenticationSettingInfo`\" pulumi-lang-java=\"`mfaAuthenticationSettingInfo`\"\u003e`mfa_authentication_setting_info`\u003c/span\u003e below.\n"},"mfaAuthenticationStatus":{"type":"string","description":"MFA Authentication Status\n"},"passwordPolicy":{"$ref":"#/types/alicloud:cloudsso/DirectoryPasswordPolicy:DirectoryPasswordPolicy","description":"Password policy See \u003cspan pulumi-lang-nodejs=\"`passwordPolicy`\" pulumi-lang-dotnet=\"`PasswordPolicy`\" pulumi-lang-go=\"`passwordPolicy`\" pulumi-lang-python=\"`password_policy`\" pulumi-lang-yaml=\"`passwordPolicy`\" pulumi-lang-java=\"`passwordPolicy`\"\u003e`password_policy`\u003c/span\u003e below.\n"},"samlIdentityProviderConfiguration":{"$ref":"#/types/alicloud:cloudsso/DirectorySamlIdentityProviderConfiguration:DirectorySamlIdentityProviderConfiguration","description":"Identity Provider (IDP) See \u003cspan pulumi-lang-nodejs=\"`samlIdentityProviderConfiguration`\" pulumi-lang-dotnet=\"`SamlIdentityProviderConfiguration`\" pulumi-lang-go=\"`samlIdentityProviderConfiguration`\" pulumi-lang-python=\"`saml_identity_provider_configuration`\" pulumi-lang-yaml=\"`samlIdentityProviderConfiguration`\" pulumi-lang-java=\"`samlIdentityProviderConfiguration`\"\u003e`saml_identity_provider_configuration`\u003c/span\u003e below.\n"},"samlServiceProvider":{"$ref":"#/types/alicloud:cloudsso/DirectorySamlServiceProvider:DirectorySamlServiceProvider","description":"SP information. See \u003cspan pulumi-lang-nodejs=\"`samlServiceProvider`\" pulumi-lang-dotnet=\"`SamlServiceProvider`\" pulumi-lang-go=\"`samlServiceProvider`\" pulumi-lang-python=\"`saml_service_provider`\" pulumi-lang-yaml=\"`samlServiceProvider`\" pulumi-lang-java=\"`samlServiceProvider`\"\u003e`saml_service_provider`\u003c/span\u003e below.\n"},"scimSynchronizationStatus":{"type":"string","description":"SCIM Synchronization Status\n"},"userProvisioningConfiguration":{"$ref":"#/types/alicloud:cloudsso/DirectoryUserProvisioningConfiguration:DirectoryUserProvisioningConfiguration","description":"User Provisioning configuration See \u003cspan pulumi-lang-nodejs=\"`userProvisioningConfiguration`\" pulumi-lang-dotnet=\"`UserProvisioningConfiguration`\" pulumi-lang-go=\"`userProvisioningConfiguration`\" pulumi-lang-python=\"`user_provisioning_configuration`\" pulumi-lang-yaml=\"`userProvisioningConfiguration`\" pulumi-lang-java=\"`userProvisioningConfiguration`\"\u003e`user_provisioning_configuration`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:cloudsso/group:Group":{"description":"Provides a Cloud SSO Group resource.\n\nFor information about Cloud SSO Group and how to use it, see [What is Group](https://www.alibabacloud.com/help/en/cloudsso/latest/api-cloudsso-2021-05-15-creategroup).\n\n\u003e **NOTE:** Available since v1.138.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.cloudsso.getDirectories({});\nconst defaultDirectory: alicloud.cloudsso.Directory[] = [];\n_default.then(_default =\u003e _default.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultDirectory.push(new alicloud.cloudsso.Directory(`default-${range.value}`, {directoryName: name}));\n    }\n});\nconst directoryId = pulumi.all([_default.then(_default =\u003e _default.ids).length, _default, std.concat({\n    input: [\n        defaultDirectory.map(__item =\u003e __item.id),\n        [\"\"],\n    ],\n})]).apply(([length, _default, invoke]) =\u003e length \u003e 0 ? _default.ids?.[0] : invoke.result?.[0]);\nconst defaultGroup = new alicloud.cloudsso.Group(\"default\", {\n    directoryId: directoryId,\n    groupName: name,\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.cloudsso.get_directories()\ndefault_directory = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_directory.append(alicloud.cloudsso.Directory(f\"default-{range['value']}\", directory_name=name))\n\nlen(default.ids).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\ndirectory_id = len(default.ids).apply(lambda length: default.ids[0] if length \u003e 0 else std.concat(input=[\n    [__item.id for __item in default_directory],\n    [\"\"],\n]).result[0])\ndefault_group = alicloud.cloudsso.Group(\"default\",\n    directory_id=directory_id,\n    group_name=name,\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.CloudSso.GetDirectories.Invoke();\n\n    var defaultDirectory = new List\u003cAliCloud.CloudSso.Directory\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c @default.Apply(@default =\u003e @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids)).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultDirectory.Add(new AliCloud.CloudSso.Directory($\"default-{range.Value}\", new()\n        {\n            DirectoryName = name,\n        }));\n    }\n    var directoryId = Output.Tuple(@default.Apply(@default =\u003e @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids)).Length, @default, Std.Concat.Invoke(new()\n    {\n        Input = new[]\n        {\n            defaultDirectory.Select(__item =\u003e __item.Id).ToList(),\n            new[]\n            {\n                \"\",\n            },\n        },\n    })).Apply(values =\u003e\n    {\n        var length = values.Item1;\n        var @default = values.Item2;\n        var invoke = values.Item3;\n        return length \u003e 0 ? @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids[0]) : invoke.Result[0];\n    });\n\n    var defaultGroup = new AliCloud.CloudSso.Group(\"default\", new()\n    {\n        DirectoryId = directoryId,\n        GroupName = name,\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"tf-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := cloudsso.GetDirectories(ctx, \u0026cloudsso.GetDirectoriesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\nvar tmp0 float64\nif length \u003e 0 {\ntmp0 = 0\n} else {\ntmp0 = 1\n}\nvar defaultDirectory []*cloudsso.Directory\nfor index := 0; index \u003c float64(len(_default.Ids).ApplyT(func(length int) (float64, error) {\nreturn tmp0, nil\n}).(pulumi.Float64Output)); index++ {\n    key0 := index\n    _ := index\n__res, err := cloudsso.NewDirectory(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026cloudsso.DirectoryArgs{\nDirectoryName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ndefaultDirectory = append(defaultDirectory, __res)\n}\nvar tmp1 *interface{}\nif length \u003e 0 {\ntmp1 = _default.Ids[0]\n} else {\ntmp1 = std.Concat(ctx, \u0026std.ConcatArgs{\nInput: pulumi.StringArrayArray{\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:13,12-34),\n[]string{\n\"\",\n},\n},\n}, nil).Result[0]\n}\ndirectoryId := len(_default.Ids).ApplyT(func(length int) (*interface{}, error) {\nreturn \u0026tmp1, nil\n}).(pulumi.Interface{}PtrOutput)\n_, err = cloudsso.NewGroup(ctx, \"default\", \u0026cloudsso.GroupArgs{\nDirectoryId: pulumi.Any(directoryId),\nGroupName: pulumi.String(name),\nDescription: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudsso.CloudssoFunctions;\nimport com.pulumi.alicloud.cloudsso.inputs.GetDirectoriesArgs;\nimport com.pulumi.alicloud.cloudsso.Directory;\nimport com.pulumi.alicloud.cloudsso.DirectoryArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ConcatArgs;\nimport com.pulumi.alicloud.cloudsso.Group;\nimport com.pulumi.alicloud.cloudsso.GroupArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = CloudssoFunctions.getDirectories(GetDirectoriesArgs.builder()\n            .build());\n\n        for (var i = 0; i \u003c default_.ids().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new Directory(\"defaultDirectory-\" + i, DirectoryArgs.builder()\n                .directoryName(name)\n                .build());\n\n        \n}\n        final var directoryId = default_.ids().length().applyValue(_length -\u003e _length \u003e 0 ? default_.ids()[0] : StdFunctions.concat(ConcatArgs.builder()\n            .input(            \n                defaultDirectory.stream().map(element -\u003e element.id()).collect(toList()),\n                \"\")\n            .build()).result()[0]);\n\n        var defaultGroup = new Group(\"defaultGroup\", GroupArgs.builder()\n            .directoryId(directoryId)\n            .groupName(name)\n            .description(name)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud SSO Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudsso/group:Group example \u003cdirectory_id\u003e:\u003cgroup_id\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The Description of the group. The description can be up to \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e characters long.\n"},"directoryId":{"type":"string","description":"The ID of the Directory.\n"},"groupId":{"type":"string","description":"The GroupId of the group.\n"},"groupName":{"type":"string","description":"The Name of the group. The name must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length and can contain letters, digits, periods (.), underscores (_), and hyphens (-).\n"}},"required":["directoryId","groupId","groupName"],"inputProperties":{"description":{"type":"string","description":"The Description of the group. The description can be up to \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e characters long.\n"},"directoryId":{"type":"string","description":"The ID of the Directory.\n","willReplaceOnChanges":true},"groupName":{"type":"string","description":"The Name of the group. The name must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length and can contain letters, digits, periods (.), underscores (_), and hyphens (-).\n"}},"requiredInputs":["directoryId","groupName"],"stateInputs":{"description":"Input properties used for looking up and filtering Group resources.\n","properties":{"description":{"type":"string","description":"The Description of the group. The description can be up to \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e characters long.\n"},"directoryId":{"type":"string","description":"The ID of the Directory.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"The GroupId of the group.\n"},"groupName":{"type":"string","description":"The Name of the group. The name must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length and can contain letters, digits, periods (.), underscores (_), and hyphens (-).\n"}},"type":"object"}},"alicloud:cloudsso/scimServerCredential:ScimServerCredential":{"description":"Provides a Cloud SSO SCIM Server Credential resource.\n\nFor information about Cloud SSO SCIM Server Credential and how to use it, see [What is Cloud SSO SCIM Server Credential](https://www.alibabacloud.com/help/en/cloudsso/latest/api-cloudsso-2021-05-15-createscimservercredential).\n\n\u003e **NOTE:** Available since v1.138.0.\n\n\u003e **NOTE:** Cloud SSO Only Support `cn-shanghai` And `us-west-1` Region\n\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.cloudsso.getDirectories({});\nconst defaultScimServerCredential = new alicloud.cloudsso.ScimServerCredential(\"default\", {\n    directoryId: _default.then(_default =\u003e _default.directories?.[0]?.id),\n    credentialSecretFile: \"./credential_secret_file.txt\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudsso.get_directories()\ndefault_scim_server_credential = alicloud.cloudsso.ScimServerCredential(\"default\",\n    directory_id=default.directories[0].id,\n    credential_secret_file=\"./credential_secret_file.txt\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.CloudSso.GetDirectories.Invoke();\n\n    var defaultScimServerCredential = new AliCloud.CloudSso.ScimServerCredential(\"default\", new()\n    {\n        DirectoryId = @default.Apply(@default =\u003e @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Directories[0]?.Id)),\n        CredentialSecretFile = \"./credential_secret_file.txt\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cloudsso.GetDirectories(ctx, \u0026cloudsso.GetDirectoriesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudsso.NewScimServerCredential(ctx, \"default\", \u0026cloudsso.ScimServerCredentialArgs{\n\t\t\tDirectoryId:          pulumi.String(_default.Directories[0].Id),\n\t\t\tCredentialSecretFile: pulumi.String(\"./credential_secret_file.txt\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudsso.CloudssoFunctions;\nimport com.pulumi.alicloud.cloudsso.inputs.GetDirectoriesArgs;\nimport com.pulumi.alicloud.cloudsso.ScimServerCredential;\nimport com.pulumi.alicloud.cloudsso.ScimServerCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = CloudssoFunctions.getDirectories(GetDirectoriesArgs.builder()\n            .build());\n\n        var defaultScimServerCredential = new ScimServerCredential(\"defaultScimServerCredential\", ScimServerCredentialArgs.builder()\n            .directoryId(default_.directories()[0].id())\n            .credentialSecretFile(\"./credential_secret_file.txt\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultScimServerCredential:\n    type: alicloud:cloudsso:ScimServerCredential\n    name: default\n    properties:\n      directoryId: ${default.directories[0].id}\n      credentialSecretFile: ./credential_secret_file.txt\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudsso:getDirectories\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud SSO SCIM Server Credential can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudsso/scimServerCredential:ScimServerCredential example \u003cdirectory_id\u003e:\u003ccredential_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"(Available since v1.245.0) The time when the SCIM credential was created.\n"},"credentialId":{"type":"string","description":"The ID of the SCIM credential.\n"},"credentialSecretFile":{"type":"string","description":"The name of file that can save Credential ID and Credential Secret. Strongly suggest you to specified it when you creating credential, otherwise, you wouldn't get its secret ever.\n"},"credentialType":{"type":"string","description":"(Available since v1.245.0) The type of the SCIM credential.\n"},"directoryId":{"type":"string","description":"The ID of the Directory.\n"},"expireTime":{"type":"string","description":"(Available since v1.245.0) The time when the SCIM credential expires.\n"},"status":{"type":"string","description":"The status of the SCIM Server Credential. Valid values: `Enabled`, `Disabled`.\n"}},"required":["createTime","credentialId","credentialType","directoryId","expireTime","status"],"inputProperties":{"credentialSecretFile":{"type":"string","description":"The name of file that can save Credential ID and Credential Secret. Strongly suggest you to specified it when you creating credential, otherwise, you wouldn't get its secret ever.\n","willReplaceOnChanges":true},"directoryId":{"type":"string","description":"The ID of the Directory.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the SCIM Server Credential. Valid values: `Enabled`, `Disabled`.\n"}},"requiredInputs":["directoryId"],"stateInputs":{"description":"Input properties used for looking up and filtering ScimServerCredential resources.\n","properties":{"createTime":{"type":"string","description":"(Available since v1.245.0) The time when the SCIM credential was created.\n"},"credentialId":{"type":"string","description":"The ID of the SCIM credential.\n"},"credentialSecretFile":{"type":"string","description":"The name of file that can save Credential ID and Credential Secret. Strongly suggest you to specified it when you creating credential, otherwise, you wouldn't get its secret ever.\n","willReplaceOnChanges":true},"credentialType":{"type":"string","description":"(Available since v1.245.0) The type of the SCIM credential.\n"},"directoryId":{"type":"string","description":"The ID of the Directory.\n","willReplaceOnChanges":true},"expireTime":{"type":"string","description":"(Available since v1.245.0) The time when the SCIM credential expires.\n"},"status":{"type":"string","description":"The status of the SCIM Server Credential. Valid values: `Enabled`, `Disabled`.\n"}},"type":"object"}},"alicloud:cloudsso/user:User":{"description":"Provides a Cloud Sso User resource.\n\n\n\nFor information about Cloud Sso User and how to use it, see [What is User](https://www.alibabacloud.com/help/en/cloudsso/latest/api-cloudsso-2021-05-15-createuser).\n\n\u003e **NOTE:** Available since v1.140.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.cloudsso.getDirectories({});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultDirectory: alicloud.cloudsso.Directory[] = [];\n_default.then(_default =\u003e _default.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultDirectory.push(new alicloud.cloudsso.Directory(`default-${range.value}`, {directoryName: name}));\n    }\n});\nconst directoryId = pulumi.all([_default.then(_default =\u003e _default.ids).length, _default, std.concat({\n    input: [\n        defaultDirectory.map(__item =\u003e __item.id),\n        [\"\"],\n    ],\n})]).apply(([length, _default, invoke]) =\u003e length \u003e 0 ? _default.ids?.[0] : invoke.result?.[0]);\nconst defaultUser = new alicloud.cloudsso.User(\"default\", {\n    directoryId: directoryId,\n    userName: `${name}-${defaultInteger.result}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudsso.get_directories()\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_directory = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_directory.append(alicloud.cloudsso.Directory(f\"default-{range['value']}\", directory_name=name))\n\nlen(default.ids).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\ndirectory_id = len(default.ids).apply(lambda length: default.ids[0] if length \u003e 0 else std.concat(input=[\n    [__item.id for __item in default_directory],\n    [\"\"],\n]).result[0])\ndefault_user = alicloud.cloudsso.User(\"default\",\n    directory_id=directory_id,\n    user_name=f\"{name}-{default_integer['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.CloudSso.GetDirectories.Invoke();\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultDirectory = new List\u003cAliCloud.CloudSso.Directory\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c @default.Apply(@default =\u003e @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids)).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultDirectory.Add(new AliCloud.CloudSso.Directory($\"default-{range.Value}\", new()\n        {\n            DirectoryName = name,\n        }));\n    }\n    var directoryId = Output.Tuple(@default.Apply(@default =\u003e @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids)).Length, @default, Std.Concat.Invoke(new()\n    {\n        Input = new[]\n        {\n            defaultDirectory.Select(__item =\u003e __item.Id).ToList(),\n            new[]\n            {\n                \"\",\n            },\n        },\n    })).Apply(values =\u003e\n    {\n        var length = values.Item1;\n        var @default = values.Item2;\n        var invoke = values.Item3;\n        return length \u003e 0 ? @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids[0]) : invoke.Result[0];\n    });\n\n    var defaultUser = new AliCloud.CloudSso.User(\"default\", new()\n    {\n        DirectoryId = directoryId,\n        UserName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := cloudsso.GetDirectories(ctx, \u0026cloudsso.GetDirectoriesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMin: 10000,\nMax: 99999,\n})\nif err != nil {\nreturn err\n}\nvar tmp0 float64\nif length \u003e 0 {\ntmp0 = 0\n} else {\ntmp0 = 1\n}\nvar defaultDirectory []*cloudsso.Directory\nfor index := 0; index \u003c float64(len(_default.Ids).ApplyT(func(length int) (float64, error) {\nreturn tmp0, nil\n}).(pulumi.Float64Output)); index++ {\n    key0 := index\n    _ := index\n__res, err := cloudsso.NewDirectory(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026cloudsso.DirectoryArgs{\nDirectoryName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ndefaultDirectory = append(defaultDirectory, __res)\n}\nvar tmp1 *interface{}\nif length \u003e 0 {\ntmp1 = _default.Ids[0]\n} else {\ntmp1 = std.Concat(ctx, \u0026std.ConcatArgs{\nInput: pulumi.StringArrayArray{\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:26,12-34),\n[]string{\n\"\",\n},\n},\n}, nil).Result[0]\n}\ndirectoryId := len(_default.Ids).ApplyT(func(length int) (*interface{}, error) {\nreturn \u0026tmp1, nil\n}).(pulumi.Interface{}PtrOutput)\n_, err = cloudsso.NewUser(ctx, \"default\", \u0026cloudsso.UserArgs{\nDirectoryId: pulumi.Any(directoryId),\nUserName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudsso.CloudssoFunctions;\nimport com.pulumi.alicloud.cloudsso.inputs.GetDirectoriesArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cloudsso.Directory;\nimport com.pulumi.alicloud.cloudsso.DirectoryArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ConcatArgs;\nimport com.pulumi.alicloud.cloudsso.User;\nimport com.pulumi.alicloud.cloudsso.UserArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = CloudssoFunctions.getDirectories(GetDirectoriesArgs.builder()\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        for (var i = 0; i \u003c default_.ids().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new Directory(\"defaultDirectory-\" + i, DirectoryArgs.builder()\n                .directoryName(name)\n                .build());\n\n        \n}\n        final var directoryId = default_.ids().length().applyValue(_length -\u003e _length \u003e 0 ? default_.ids()[0] : StdFunctions.concat(ConcatArgs.builder()\n            .input(            \n                defaultDirectory.stream().map(element -\u003e element.id()).collect(toList()),\n                \"\")\n            .build()).result()[0]);\n\n        var defaultUser = new User(\"defaultUser\", UserArgs.builder()\n            .directoryId(directoryId)\n            .userName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Sso User can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudsso/user:User example \u003cdirectory_id\u003e:\u003cuser_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"(Available since v1.262.1) The time when the user was created.\n"},"description":{"type":"string","description":"The description of the user. The description can be up to 1,024 characters in length.\n"},"directoryId":{"type":"string","description":"The ID of the directory.\n"},"displayName":{"type":"string","description":"The display name of the user. The display name can be up to 256 characters in length.\n"},"email":{"type":"string","description":"The email address of the user. The email address must be unique within the directory. The email address can be up to 128 characters in length.\n"},"firstName":{"type":"string","description":"The first name of the user. The first name can be up to 64 characters in length.\n"},"lastName":{"type":"string","description":"The last name of the user. The last name can be up to 64 characters in length.\n"},"mfaAuthenticationSettings":{"type":"string","description":"Specifies whether to enable MFA for the user. Default value: `Enabled`. Valid values: `Enabled`, `Disabled`.\n"},"password":{"type":"string","description":"The new password. The password must contain the following types of characters: uppercase letters, lowercase letters, digits, and special characters. The password must be 8 to 32 characters in length.\n","secret":true},"status":{"type":"string","description":"The status of the user. Default value: `Enabled`. Valid values: `Enabled`, `Disabled`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"userId":{"type":"string","description":"The ID of the user.\n"},"userName":{"type":"string","description":"The username of the user. The username can contain digits, letters, and the following special characters: @_-. The username can be up to 64 characters in length.\n"}},"required":["createTime","directoryId","mfaAuthenticationSettings","status","userId","userName"],"inputProperties":{"description":{"type":"string","description":"The description of the user. The description can be up to 1,024 characters in length.\n"},"directoryId":{"type":"string","description":"The ID of the directory.\n","willReplaceOnChanges":true},"displayName":{"type":"string","description":"The display name of the user. The display name can be up to 256 characters in length.\n"},"email":{"type":"string","description":"The email address of the user. The email address must be unique within the directory. The email address can be up to 128 characters in length.\n"},"firstName":{"type":"string","description":"The first name of the user. The first name can be up to 64 characters in length.\n"},"lastName":{"type":"string","description":"The last name of the user. The last name can be up to 64 characters in length.\n"},"mfaAuthenticationSettings":{"type":"string","description":"Specifies whether to enable MFA for the user. Default value: `Enabled`. Valid values: `Enabled`, `Disabled`.\n"},"password":{"type":"string","description":"The new password. The password must contain the following types of characters: uppercase letters, lowercase letters, digits, and special characters. The password must be 8 to 32 characters in length.\n","secret":true},"status":{"type":"string","description":"The status of the user. Default value: `Enabled`. Valid values: `Enabled`, `Disabled`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"userName":{"type":"string","description":"The username of the user. The username can contain digits, letters, and the following special characters: @_-. The username can be up to 64 characters in length.\n","willReplaceOnChanges":true}},"requiredInputs":["directoryId","userName"],"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"createTime":{"type":"string","description":"(Available since v1.262.1) The time when the user was created.\n"},"description":{"type":"string","description":"The description of the user. The description can be up to 1,024 characters in length.\n"},"directoryId":{"type":"string","description":"The ID of the directory.\n","willReplaceOnChanges":true},"displayName":{"type":"string","description":"The display name of the user. The display name can be up to 256 characters in length.\n"},"email":{"type":"string","description":"The email address of the user. The email address must be unique within the directory. The email address can be up to 128 characters in length.\n"},"firstName":{"type":"string","description":"The first name of the user. The first name can be up to 64 characters in length.\n"},"lastName":{"type":"string","description":"The last name of the user. The last name can be up to 64 characters in length.\n"},"mfaAuthenticationSettings":{"type":"string","description":"Specifies whether to enable MFA for the user. Default value: `Enabled`. Valid values: `Enabled`, `Disabled`.\n"},"password":{"type":"string","description":"The new password. The password must contain the following types of characters: uppercase letters, lowercase letters, digits, and special characters. The password must be 8 to 32 characters in length.\n","secret":true},"status":{"type":"string","description":"The status of the user. Default value: `Enabled`. Valid values: `Enabled`, `Disabled`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"userId":{"type":"string","description":"The ID of the user.\n"},"userName":{"type":"string","description":"The username of the user. The username can contain digits, letters, and the following special characters: @_-. The username can be up to 64 characters in length.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudsso/userAttachment:UserAttachment":{"description":"Provides a Cloud SSO User Attachment resource.\n\nFor information about Cloud SSO User Attachment and how to use it, see [What is User Attachment](https://www.alibabacloud.com/help/en/cloudsso/latest/api-cloudsso-2021-05-15-addusertogroup).\n\n\u003e **NOTE:** Available since v1.141.0.\n\n\u003e **NOTE:** Cloud SSO Only Support `cn-shanghai` And `us-west-1` Region\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.cloudsso.getDirectories({});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultDirectory: alicloud.cloudsso.Directory[] = [];\n_default.then(_default =\u003e _default.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultDirectory.push(new alicloud.cloudsso.Directory(`default-${range.value}`, {directoryName: name}));\n    }\n});\nconst directoryId = pulumi.all([_default.then(_default =\u003e _default.ids).length, _default, std.concat({\n    input: [\n        defaultDirectory.map(__item =\u003e __item.id),\n        [\"\"],\n    ],\n})]).apply(([length, _default, invoke]) =\u003e length \u003e 0 ? _default.ids?.[0] : invoke.result?.[0]);\nconst defaultUser = new alicloud.cloudsso.User(\"default\", {\n    directoryId: directoryId,\n    userName: `${name}-${defaultInteger.result}`,\n});\nconst defaultGroup = new alicloud.cloudsso.Group(\"default\", {\n    directoryId: directoryId,\n    groupName: name,\n    description: name,\n});\nconst defaultUserAttachment = new alicloud.cloudsso.UserAttachment(\"default\", {\n    directoryId: directoryId,\n    userId: defaultUser.userId,\n    groupId: defaultGroup.groupId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudsso.get_directories()\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_directory = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_directory.append(alicloud.cloudsso.Directory(f\"default-{range['value']}\", directory_name=name))\n\nlen(default.ids).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\ndirectory_id = len(default.ids).apply(lambda length: default.ids[0] if length \u003e 0 else std.concat(input=[\n    [__item.id for __item in default_directory],\n    [\"\"],\n]).result[0])\ndefault_user = alicloud.cloudsso.User(\"default\",\n    directory_id=directory_id,\n    user_name=f\"{name}-{default_integer['result']}\")\ndefault_group = alicloud.cloudsso.Group(\"default\",\n    directory_id=directory_id,\n    group_name=name,\n    description=name)\ndefault_user_attachment = alicloud.cloudsso.UserAttachment(\"default\",\n    directory_id=directory_id,\n    user_id=default_user.user_id,\n    group_id=default_group.group_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.CloudSso.GetDirectories.Invoke();\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultDirectory = new List\u003cAliCloud.CloudSso.Directory\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c @default.Apply(@default =\u003e @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids)).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultDirectory.Add(new AliCloud.CloudSso.Directory($\"default-{range.Value}\", new()\n        {\n            DirectoryName = name,\n        }));\n    }\n    var directoryId = Output.Tuple(@default.Apply(@default =\u003e @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids)).Length, @default, Std.Concat.Invoke(new()\n    {\n        Input = new[]\n        {\n            defaultDirectory.Select(__item =\u003e __item.Id).ToList(),\n            new[]\n            {\n                \"\",\n            },\n        },\n    })).Apply(values =\u003e\n    {\n        var length = values.Item1;\n        var @default = values.Item2;\n        var invoke = values.Item3;\n        return length \u003e 0 ? @default.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids[0]) : invoke.Result[0];\n    });\n\n    var defaultUser = new AliCloud.CloudSso.User(\"default\", new()\n    {\n        DirectoryId = directoryId,\n        UserName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultGroup = new AliCloud.CloudSso.Group(\"default\", new()\n    {\n        DirectoryId = directoryId,\n        GroupName = name,\n        Description = name,\n    });\n\n    var defaultUserAttachment = new AliCloud.CloudSso.UserAttachment(\"default\", new()\n    {\n        DirectoryId = directoryId,\n        UserId = defaultUser.UserId,\n        GroupId = defaultGroup.GroupId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := cloudsso.GetDirectories(ctx, \u0026cloudsso.GetDirectoriesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMin: 10000,\nMax: 99999,\n})\nif err != nil {\nreturn err\n}\nvar tmp0 float64\nif length \u003e 0 {\ntmp0 = 0\n} else {\ntmp0 = 1\n}\nvar defaultDirectory []*cloudsso.Directory\nfor index := 0; index \u003c float64(len(_default.Ids).ApplyT(func(length int) (float64, error) {\nreturn tmp0, nil\n}).(pulumi.Float64Output)); index++ {\n    key0 := index\n    _ := index\n__res, err := cloudsso.NewDirectory(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026cloudsso.DirectoryArgs{\nDirectoryName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ndefaultDirectory = append(defaultDirectory, __res)\n}\nvar tmp1 *interface{}\nif length \u003e 0 {\ntmp1 = _default.Ids[0]\n} else {\ntmp1 = std.Concat(ctx, \u0026std.ConcatArgs{\nInput: pulumi.StringArrayArray{\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:40,12-34),\n[]string{\n\"\",\n},\n},\n}, nil).Result[0]\n}\ndirectoryId := len(_default.Ids).ApplyT(func(length int) (*interface{}, error) {\nreturn \u0026tmp1, nil\n}).(pulumi.Interface{}PtrOutput)\ndefaultUser, err := cloudsso.NewUser(ctx, \"default\", \u0026cloudsso.UserArgs{\nDirectoryId: pulumi.Any(directoryId),\nUserName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ndefaultGroup, err := cloudsso.NewGroup(ctx, \"default\", \u0026cloudsso.GroupArgs{\nDirectoryId: pulumi.Any(directoryId),\nGroupName: pulumi.String(name),\nDescription: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\n_, err = cloudsso.NewUserAttachment(ctx, \"default\", \u0026cloudsso.UserAttachmentArgs{\nDirectoryId: pulumi.Any(directoryId),\nUserId: defaultUser.UserId,\nGroupId: defaultGroup.GroupId,\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudsso.CloudssoFunctions;\nimport com.pulumi.alicloud.cloudsso.inputs.GetDirectoriesArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cloudsso.Directory;\nimport com.pulumi.alicloud.cloudsso.DirectoryArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ConcatArgs;\nimport com.pulumi.alicloud.cloudsso.User;\nimport com.pulumi.alicloud.cloudsso.UserArgs;\nimport com.pulumi.alicloud.cloudsso.Group;\nimport com.pulumi.alicloud.cloudsso.GroupArgs;\nimport com.pulumi.alicloud.cloudsso.UserAttachment;\nimport com.pulumi.alicloud.cloudsso.UserAttachmentArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = CloudssoFunctions.getDirectories(GetDirectoriesArgs.builder()\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        for (var i = 0; i \u003c default_.ids().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new Directory(\"defaultDirectory-\" + i, DirectoryArgs.builder()\n                .directoryName(name)\n                .build());\n\n        \n}\n        final var directoryId = default_.ids().length().applyValue(_length -\u003e _length \u003e 0 ? default_.ids()[0] : StdFunctions.concat(ConcatArgs.builder()\n            .input(            \n                defaultDirectory.stream().map(element -\u003e element.id()).collect(toList()),\n                \"\")\n            .build()).result()[0]);\n\n        var defaultUser = new User(\"defaultUser\", UserArgs.builder()\n            .directoryId(directoryId)\n            .userName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultGroup = new Group(\"defaultGroup\", GroupArgs.builder()\n            .directoryId(directoryId)\n            .groupName(name)\n            .description(name)\n            .build());\n\n        var defaultUserAttachment = new UserAttachment(\"defaultUserAttachment\", UserAttachmentArgs.builder()\n            .directoryId(directoryId)\n            .userId(defaultUser.userId())\n            .groupId(defaultGroup.groupId())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud SSO User Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudsso/userAttachment:UserAttachment example \u003cdirectory_id\u003e:\u003cgroup_id\u003e:\u003cuser_id\u003e\n```\n\n","properties":{"directoryId":{"type":"string","description":"The ID of the directory.\n"},"groupId":{"type":"string","description":"The ID of the group.\n"},"userId":{"type":"string","description":"The ID of the user.\n"}},"required":["directoryId","groupId","userId"],"inputProperties":{"directoryId":{"type":"string","description":"The ID of the directory.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"The ID of the group.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of the user.\n","willReplaceOnChanges":true}},"requiredInputs":["directoryId","groupId","userId"],"stateInputs":{"description":"Input properties used for looking up and filtering UserAttachment resources.\n","properties":{"directoryId":{"type":"string","description":"The ID of the directory.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"The ID of the group.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of the user.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudsso/userProvisioning:UserProvisioning":{"description":"Provides a Cloud SSO User Provisioning resource.\n\nRAM user synchronization.\n\nFor information about Cloud SSO User Provisioning and how to use it, see [What is User Provisioning](https://next.api.alibabacloud.com/document/cloudsso/2021-05-15/CreateUserProvisioning).\n\n\u003e **NOTE:** Available since v1.260.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getAccount({});\nconst defaultGetDirectories = alicloud.cloudsso.getDirectories({});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultDirectory: alicloud.cloudsso.Directory[] = [];\ndefaultGetDirectories.then(defaultGetDirectories =\u003e defaultGetDirectories.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultDirectory.push(new alicloud.cloudsso.Directory(`default-${range.value}`, {directoryName: name}));\n    }\n});\nconst directoryId = pulumi.all([defaultGetDirectories.then(defaultGetDirectories =\u003e defaultGetDirectories.ids).length, defaultGetDirectories, std.concat({\n    input: [\n        defaultDirectory.map(__item =\u003e __item.id),\n        [\"\"],\n    ],\n})]).apply(([length, defaultGetDirectories, invoke]) =\u003e length \u003e 0 ? defaultGetDirectories.ids?.[0] : invoke.result?.[0]);\nconst defaultUser = new alicloud.cloudsso.User(\"default\", {\n    directoryId: directoryId,\n    userName: `${name}-${defaultInteger.result}`,\n});\nconst defaultGroup = new alicloud.cloudsso.Group(\"default\", {\n    directoryId: directoryId,\n    groupName: name,\n    description: name,\n});\nconst defaultUserProvisioning = new alicloud.cloudsso.UserProvisioning(\"default\", {\n    description: \"description\",\n    principalId: defaultUser.userId,\n    targetType: \"RD-Account\",\n    deletionStrategy: \"Keep\",\n    duplicationStrategy: \"KeepBoth\",\n    principalType: \"User\",\n    targetId: _default.then(_default =\u003e _default.id),\n    directoryId: defaultUser.directoryId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_account()\ndefault_get_directories = alicloud.cloudsso.get_directories()\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_directory = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_directory.append(alicloud.cloudsso.Directory(f\"default-{range['value']}\", directory_name=name))\n\nlen(default_get_directories.ids).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\ndirectory_id = len(default_get_directories.ids).apply(lambda length: default_get_directories.ids[0] if length \u003e 0 else std.concat(input=[\n    [__item.id for __item in default_directory],\n    [\"\"],\n]).result[0])\ndefault_user = alicloud.cloudsso.User(\"default\",\n    directory_id=directory_id,\n    user_name=f\"{name}-{default_integer['result']}\")\ndefault_group = alicloud.cloudsso.Group(\"default\",\n    directory_id=directory_id,\n    group_name=name,\n    description=name)\ndefault_user_provisioning = alicloud.cloudsso.UserProvisioning(\"default\",\n    description=\"description\",\n    principal_id=default_user.user_id,\n    target_type=\"RD-Account\",\n    deletion_strategy=\"Keep\",\n    duplication_strategy=\"KeepBoth\",\n    principal_type=\"User\",\n    target_id=default.id,\n    directory_id=default_user.directory_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultGetDirectories = AliCloud.CloudSso.GetDirectories.Invoke();\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultDirectory = new List\u003cAliCloud.CloudSso.Directory\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c defaultGetDirectories.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultDirectory.Add(new AliCloud.CloudSso.Directory($\"default-{range.Value}\", new()\n        {\n            DirectoryName = name,\n        }));\n    }\n    var directoryId = Output.Tuple(defaultGetDirectories.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids).Length, defaultGetDirectories, Std.Concat.Invoke(new()\n    {\n        Input = new[]\n        {\n            defaultDirectory.Select(__item =\u003e __item.Id).ToList(),\n            new[]\n            {\n                \"\",\n            },\n        },\n    })).Apply(values =\u003e\n    {\n        var length = values.Item1;\n        var defaultGetDirectories = values.Item2;\n        var invoke = values.Item3;\n        return length \u003e 0 ? defaultGetDirectories.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Ids[0]) : invoke.Result[0];\n    });\n\n    var defaultUser = new AliCloud.CloudSso.User(\"default\", new()\n    {\n        DirectoryId = directoryId,\n        UserName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultGroup = new AliCloud.CloudSso.Group(\"default\", new()\n    {\n        DirectoryId = directoryId,\n        GroupName = name,\n        Description = name,\n    });\n\n    var defaultUserProvisioning = new AliCloud.CloudSso.UserProvisioning(\"default\", new()\n    {\n        Description = \"description\",\n        PrincipalId = defaultUser.UserId,\n        TargetType = \"RD-Account\",\n        DeletionStrategy = \"Keep\",\n        DuplicationStrategy = \"KeepBoth\",\n        PrincipalType = \"User\",\n        TargetId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        DirectoryId = defaultUser.DirectoryId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := alicloud.GetAccount(ctx, map[string]interface{}{\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetDirectories, err := cloudsso.GetDirectories(ctx, \u0026cloudsso.GetDirectoriesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMin: 10000,\nMax: 99999,\n})\nif err != nil {\nreturn err\n}\nvar tmp0 float64\nif length \u003e 0 {\ntmp0 = 0\n} else {\ntmp0 = 1\n}\nvar defaultDirectory []*cloudsso.Directory\nfor index := 0; index \u003c float64(len(defaultGetDirectories.Ids).ApplyT(func(length int) (float64, error) {\nreturn tmp0, nil\n}).(pulumi.Float64Output)); index++ {\n    key0 := index\n    _ := index\n__res, err := cloudsso.NewDirectory(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026cloudsso.DirectoryArgs{\nDirectoryName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ndefaultDirectory = append(defaultDirectory, __res)\n}\nvar tmp1 *interface{}\nif length \u003e 0 {\ntmp1 = defaultGetDirectories.Ids[0]\n} else {\ntmp1 = std.Concat(ctx, \u0026std.ConcatArgs{\nInput: pulumi.StringArrayArray{\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:47,12-34),\n[]string{\n\"\",\n},\n},\n}, nil).Result[0]\n}\ndirectoryId := len(defaultGetDirectories.Ids).ApplyT(func(length int) (*interface{}, error) {\nreturn \u0026tmp1, nil\n}).(pulumi.Interface{}PtrOutput)\ndefaultUser, err := cloudsso.NewUser(ctx, \"default\", \u0026cloudsso.UserArgs{\nDirectoryId: pulumi.Any(directoryId),\nUserName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\n_, err = cloudsso.NewGroup(ctx, \"default\", \u0026cloudsso.GroupArgs{\nDirectoryId: pulumi.Any(directoryId),\nGroupName: pulumi.String(name),\nDescription: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\n_, err = cloudsso.NewUserProvisioning(ctx, \"default\", \u0026cloudsso.UserProvisioningArgs{\nDescription: pulumi.String(\"description\"),\nPrincipalId: defaultUser.UserId,\nTargetType: pulumi.String(\"RD-Account\"),\nDeletionStrategy: pulumi.String(\"Keep\"),\nDuplicationStrategy: pulumi.String(\"KeepBoth\"),\nPrincipalType: pulumi.String(\"User\"),\nTargetId: pulumi.String(_default.Id),\nDirectoryId: defaultUser.DirectoryId,\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.cloudsso.CloudssoFunctions;\nimport com.pulumi.alicloud.cloudsso.inputs.GetDirectoriesArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cloudsso.Directory;\nimport com.pulumi.alicloud.cloudsso.DirectoryArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ConcatArgs;\nimport com.pulumi.alicloud.cloudsso.User;\nimport com.pulumi.alicloud.cloudsso.UserArgs;\nimport com.pulumi.alicloud.cloudsso.Group;\nimport com.pulumi.alicloud.cloudsso.GroupArgs;\nimport com.pulumi.alicloud.cloudsso.UserProvisioning;\nimport com.pulumi.alicloud.cloudsso.UserProvisioningArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var defaultGetDirectories = CloudssoFunctions.getDirectories(GetDirectoriesArgs.builder()\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        for (var i = 0; i \u003c defaultGetDirectories.ids().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new Directory(\"defaultDirectory-\" + i, DirectoryArgs.builder()\n                .directoryName(name)\n                .build());\n\n        \n}\n        final var directoryId = defaultGetDirectories.ids().length().applyValue(_length -\u003e _length \u003e 0 ? defaultGetDirectories.ids()[0] : StdFunctions.concat(ConcatArgs.builder()\n            .input(            \n                defaultDirectory.stream().map(element -\u003e element.id()).collect(toList()),\n                \"\")\n            .build()).result()[0]);\n\n        var defaultUser = new User(\"defaultUser\", UserArgs.builder()\n            .directoryId(directoryId)\n            .userName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultGroup = new Group(\"defaultGroup\", GroupArgs.builder()\n            .directoryId(directoryId)\n            .groupName(name)\n            .description(name)\n            .build());\n\n        var defaultUserProvisioning = new UserProvisioning(\"defaultUserProvisioning\", UserProvisioningArgs.builder()\n            .description(\"description\")\n            .principalId(defaultUser.userId())\n            .targetType(\"RD-Account\")\n            .deletionStrategy(\"Keep\")\n            .duplicationStrategy(\"KeepBoth\")\n            .principalType(\"User\")\n            .targetId(default_.id())\n            .directoryId(defaultUser.directoryId())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud SSO User Provisioning can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudsso/userProvisioning:UserProvisioning example \u003cdirectory_id\u003e:\u003cuser_provisioning_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the synchronization\n"},"deletionStrategy":{"type":"string","description":"The processing policy for users who have been synchronized when deleting synchronization\n"},"description":{"type":"string","description":"Description of User Synchronization\n"},"directoryId":{"type":"string","description":"The ID of the directory to which the synchronization belongs\n"},"duplicationStrategy":{"type":"string","description":"Processing Policy for Synchronization Conflicts\n"},"principalId":{"type":"string","description":"The ID of the CloudSSO user/group associated with the synchronization.\n"},"principalType":{"type":"string","description":"The ID of the CloudSSO user/group associated with the synchronization.\n"},"status":{"type":"string","description":"The status of the resource\n"},"targetId":{"type":"string","description":"The ID of the destination associated with the synchronization.\n"},"targetType":{"type":"string","description":"The target type associated with the synchronization\n"},"userProvisioningId":{"type":"string","description":"The first ID of the resource\n"},"userProvisioningStatistics":{"type":"array","items":{"$ref":"#/types/alicloud:cloudsso/UserProvisioningUserProvisioningStatistic:UserProvisioningUserProvisioningStatistic"},"description":"User Provisioning statistics\n"}},"required":["createTime","deletionStrategy","directoryId","duplicationStrategy","principalId","principalType","status","targetId","targetType","userProvisioningId","userProvisioningStatistics"],"inputProperties":{"deletionStrategy":{"type":"string","description":"The processing policy for users who have been synchronized when deleting synchronization\n"},"description":{"type":"string","description":"Description of User Synchronization\n"},"directoryId":{"type":"string","description":"The ID of the directory to which the synchronization belongs\n","willReplaceOnChanges":true},"duplicationStrategy":{"type":"string","description":"Processing Policy for Synchronization Conflicts\n"},"principalId":{"type":"string","description":"The ID of the CloudSSO user/group associated with the synchronization.\n","willReplaceOnChanges":true},"principalType":{"type":"string","description":"The ID of the CloudSSO user/group associated with the synchronization.\n","willReplaceOnChanges":true},"targetId":{"type":"string","description":"The ID of the destination associated with the synchronization.\n","willReplaceOnChanges":true},"targetType":{"type":"string","description":"The target type associated with the synchronization\n","willReplaceOnChanges":true}},"requiredInputs":["deletionStrategy","directoryId","duplicationStrategy","principalId","principalType","targetId","targetType"],"stateInputs":{"description":"Input properties used for looking up and filtering UserProvisioning resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the synchronization\n"},"deletionStrategy":{"type":"string","description":"The processing policy for users who have been synchronized when deleting synchronization\n"},"description":{"type":"string","description":"Description of User Synchronization\n"},"directoryId":{"type":"string","description":"The ID of the directory to which the synchronization belongs\n","willReplaceOnChanges":true},"duplicationStrategy":{"type":"string","description":"Processing Policy for Synchronization Conflicts\n"},"principalId":{"type":"string","description":"The ID of the CloudSSO user/group associated with the synchronization.\n","willReplaceOnChanges":true},"principalType":{"type":"string","description":"The ID of the CloudSSO user/group associated with the synchronization.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"},"targetId":{"type":"string","description":"The ID of the destination associated with the synchronization.\n","willReplaceOnChanges":true},"targetType":{"type":"string","description":"The target type associated with the synchronization\n","willReplaceOnChanges":true},"userProvisioningId":{"type":"string","description":"The first ID of the resource\n"},"userProvisioningStatistics":{"type":"array","items":{"$ref":"#/types/alicloud:cloudsso/UserProvisioningUserProvisioningStatistic:UserProvisioningUserProvisioningStatistic"},"description":"User Provisioning statistics\n"}},"type":"object"}},"alicloud:cloudstoragegateway/expressSync:ExpressSync":{"description":"Provides a Cloud Storage Gateway Express Sync resource.\n\nFor information about Cloud Storage Gateway Express Sync and how to use it, see [What is Express Sync](https://www.alibabacloud.com/help/en/cloud-storage-gateway/latest/xzpxo3).\n\n\u003e **NOTE:** Available since v1.144.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultUuid = new random.index.Uuid(\"default\", {});\nconst defaultStorageBundle = new alicloud.cloudstoragegateway.StorageBundle(\"default\", {storageBundleName: std.replace({\n    text: defaultUuid.result,\n    search: \"-\",\n    replace: \"\",\n}).then(invoke =\u003e std.substr({\n    input: `tf-example-${invoke.result}`,\n    offset: 0,\n    length: 16,\n})).then(invoke =\u003e invoke.result)});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: std.replace({\n    text: defaultUuid.result,\n    search: \"-\",\n    replace: \"\",\n}).then(invoke =\u003e std.substr({\n    input: `tf-example-${invoke.result}`,\n    offset: 0,\n    length: 16,\n})).then(invoke =\u003e invoke.result)});\nconst defaultBucketAcl = new alicloud.oss.BucketAcl(\"default\", {\n    bucket: defaultBucket.bucket,\n    acl: \"public-read-write\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultGetStocks = alicloud.cloudstoragegateway.getStocks({\n    gatewayClass: \"Standard\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: defaultGetStocks.then(defaultGetStocks =\u003e defaultGetStocks.stocks?.[0]?.zoneId),\n    vswitchName: name,\n});\nconst defaultGateway = new alicloud.cloudstoragegateway.Gateway(\"default\", {\n    gatewayName: name,\n    description: name,\n    gatewayClass: \"Standard\",\n    type: \"File\",\n    paymentType: \"PayAsYouGo\",\n    vswitchId: defaultSwitch.id,\n    releaseAfterExpiration: true,\n    publicNetworkBandwidth: 40,\n    storageBundleId: defaultStorageBundle.id,\n    location: \"Cloud\",\n});\nconst defaultGatewayCacheDisk = new alicloud.cloudstoragegateway.GatewayCacheDisk(\"default\", {\n    cacheDiskCategory: \"cloud_efficiency\",\n    gatewayId: defaultGateway.id,\n    cacheDiskSizeInGb: 50,\n});\nconst defaultGatewayFileShare = new alicloud.cloudstoragegateway.GatewayFileShare(\"default\", {\n    gatewayFileShareName: name,\n    gatewayId: defaultGateway.id,\n    localPath: defaultGatewayCacheDisk.localFilePath,\n    ossBucketName: defaultBucket.bucket,\n    ossEndpoint: defaultBucket.extranetEndpoint,\n    protocol: \"NFS\",\n    remoteSync: true,\n    pollingInterval: 4500,\n    feLimit: 0,\n    backendLimit: 0,\n    cacheMode: \"Cache\",\n    squash: \"none\",\n    lagPeriod: 5,\n});\nconst defaultExpressSync = new alicloud.cloudstoragegateway.ExpressSync(\"default\", {\n    bucketName: defaultGatewayFileShare.ossBucketName,\n    bucketRegion: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    description: name,\n    expressSyncName: `${name}-${defaultInteger.result}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.get_regions(current=True)\ndefault_uuid = random.index.Uuid(\"default\")\ndefault_storage_bundle = alicloud.cloudstoragegateway.StorageBundle(\"default\", storage_bundle_name=std.substr(input=f\"tf-example-{std.replace(text=default_uuid['result'],\n        search='-',\n        replace='').result}\",\n    offset=0,\n    length=16).result)\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=std.substr(input=f\"tf-example-{std.replace(text=default_uuid['result'],\n        search='-',\n        replace='').result}\",\n    offset=0,\n    length=16).result)\ndefault_bucket_acl = alicloud.oss.BucketAcl(\"default\",\n    bucket=default_bucket.bucket,\n    acl=\"public-read-write\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault_get_stocks = alicloud.cloudstoragegateway.get_stocks(gateway_class=\"Standard\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default_get_stocks.stocks[0].zone_id,\n    vswitch_name=name)\ndefault_gateway = alicloud.cloudstoragegateway.Gateway(\"default\",\n    gateway_name=name,\n    description=name,\n    gateway_class=\"Standard\",\n    type=\"File\",\n    payment_type=\"PayAsYouGo\",\n    vswitch_id=default_switch.id,\n    release_after_expiration=True,\n    public_network_bandwidth=40,\n    storage_bundle_id=default_storage_bundle.id,\n    location=\"Cloud\")\ndefault_gateway_cache_disk = alicloud.cloudstoragegateway.GatewayCacheDisk(\"default\",\n    cache_disk_category=\"cloud_efficiency\",\n    gateway_id=default_gateway.id,\n    cache_disk_size_in_gb=50)\ndefault_gateway_file_share = alicloud.cloudstoragegateway.GatewayFileShare(\"default\",\n    gateway_file_share_name=name,\n    gateway_id=default_gateway.id,\n    local_path=default_gateway_cache_disk.local_file_path,\n    oss_bucket_name=default_bucket.bucket,\n    oss_endpoint=default_bucket.extranet_endpoint,\n    protocol=\"NFS\",\n    remote_sync=True,\n    polling_interval=4500,\n    fe_limit=0,\n    backend_limit=0,\n    cache_mode=\"Cache\",\n    squash=\"none\",\n    lag_period=5)\ndefault_express_sync = alicloud.cloudstoragegateway.ExpressSync(\"default\",\n    bucket_name=default_gateway_file_share.oss_bucket_name,\n    bucket_region=default.regions[0].id,\n    description=name,\n    express_sync_name=f\"{name}-{default_integer['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultUuid = new Random.Index.Uuid(\"default\");\n\n    var defaultStorageBundle = new AliCloud.CloudStorageGateway.StorageBundle(\"default\", new()\n    {\n        StorageBundleName = Std.Replace.Invoke(new()\n        {\n            Text = defaultUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = Std.Replace.Invoke(new()\n        {\n            Text = defaultUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultBucketAcl = new AliCloud.Oss.BucketAcl(\"default\", new()\n    {\n        Bucket = defaultBucket.BucketName,\n        Acl = \"public-read-write\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultGetStocks = AliCloud.CloudStorageGateway.GetStocks.Invoke(new()\n    {\n        GatewayClass = \"Standard\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = defaultGetStocks.Apply(getStocksResult =\u003e getStocksResult.Stocks[0]?.ZoneId),\n        VswitchName = name,\n    });\n\n    var defaultGateway = new AliCloud.CloudStorageGateway.Gateway(\"default\", new()\n    {\n        GatewayName = name,\n        Description = name,\n        GatewayClass = \"Standard\",\n        Type = \"File\",\n        PaymentType = \"PayAsYouGo\",\n        VswitchId = defaultSwitch.Id,\n        ReleaseAfterExpiration = true,\n        PublicNetworkBandwidth = 40,\n        StorageBundleId = defaultStorageBundle.Id,\n        Location = \"Cloud\",\n    });\n\n    var defaultGatewayCacheDisk = new AliCloud.CloudStorageGateway.GatewayCacheDisk(\"default\", new()\n    {\n        CacheDiskCategory = \"cloud_efficiency\",\n        GatewayId = defaultGateway.Id,\n        CacheDiskSizeInGb = 50,\n    });\n\n    var defaultGatewayFileShare = new AliCloud.CloudStorageGateway.GatewayFileShare(\"default\", new()\n    {\n        GatewayFileShareName = name,\n        GatewayId = defaultGateway.Id,\n        LocalPath = defaultGatewayCacheDisk.LocalFilePath,\n        OssBucketName = defaultBucket.BucketName,\n        OssEndpoint = defaultBucket.ExtranetEndpoint,\n        Protocol = \"NFS\",\n        RemoteSync = true,\n        PollingInterval = 4500,\n        FeLimit = 0,\n        BackendLimit = 0,\n        CacheMode = \"Cache\",\n        Squash = \"none\",\n        LagPeriod = 5,\n    });\n\n    var defaultExpressSync = new AliCloud.CloudStorageGateway.ExpressSync(\"default\", new()\n    {\n        BucketName = defaultGatewayFileShare.OssBucketName,\n        BucketRegion = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        Description = name,\n        ExpressSyncName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultUuid, err := random.NewUuid(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    defaultUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStorageBundle, err := cloudstoragegateway.NewStorageBundle(ctx, \"default\", \u0026cloudstoragegateway.StorageBundleArgs{\n\t\t\tStorageBundleName: pulumi.String(invokeSubstr.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr1, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    defaultUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.String(invokeSubstr1.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"default\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: defaultBucket.Bucket,\n\t\t\tAcl:    pulumi.String(\"public-read-write\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetStocks, err := cloudstoragegateway.GetStocks(ctx, \u0026cloudstoragegateway.GetStocksArgs{\n\t\t\tGatewayClass: pulumi.StringRef(\"Standard\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(defaultGetStocks.Stocks[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGateway, err := cloudstoragegateway.NewGateway(ctx, \"default\", \u0026cloudstoragegateway.GatewayArgs{\n\t\t\tGatewayName:            pulumi.String(name),\n\t\t\tDescription:            pulumi.String(name),\n\t\t\tGatewayClass:           pulumi.String(\"Standard\"),\n\t\t\tType:                   pulumi.String(\"File\"),\n\t\t\tPaymentType:            pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:              defaultSwitch.ID(),\n\t\t\tReleaseAfterExpiration: pulumi.Bool(true),\n\t\t\tPublicNetworkBandwidth: pulumi.Int(40),\n\t\t\tStorageBundleId:        defaultStorageBundle.ID(),\n\t\t\tLocation:               pulumi.String(\"Cloud\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGatewayCacheDisk, err := cloudstoragegateway.NewGatewayCacheDisk(ctx, \"default\", \u0026cloudstoragegateway.GatewayCacheDiskArgs{\n\t\t\tCacheDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tGatewayId:         defaultGateway.ID(),\n\t\t\tCacheDiskSizeInGb: pulumi.Int(50),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGatewayFileShare, err := cloudstoragegateway.NewGatewayFileShare(ctx, \"default\", \u0026cloudstoragegateway.GatewayFileShareArgs{\n\t\t\tGatewayFileShareName: pulumi.String(name),\n\t\t\tGatewayId:            defaultGateway.ID(),\n\t\t\tLocalPath:            defaultGatewayCacheDisk.LocalFilePath,\n\t\t\tOssBucketName:        defaultBucket.Bucket,\n\t\t\tOssEndpoint:          defaultBucket.ExtranetEndpoint,\n\t\t\tProtocol:             pulumi.String(\"NFS\"),\n\t\t\tRemoteSync:           pulumi.Bool(true),\n\t\t\tPollingInterval:      pulumi.Int(4500),\n\t\t\tFeLimit:              pulumi.Int(0),\n\t\t\tBackendLimit:         pulumi.Int(0),\n\t\t\tCacheMode:            pulumi.String(\"Cache\"),\n\t\t\tSquash:               pulumi.String(\"none\"),\n\t\t\tLagPeriod:            pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudstoragegateway.NewExpressSync(ctx, \"default\", \u0026cloudstoragegateway.ExpressSyncArgs{\n\t\t\tBucketName:      defaultGatewayFileShare.OssBucketName,\n\t\t\tBucketRegion:    pulumi.String(_default.Regions[0].Id),\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tExpressSyncName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Uuid;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundle;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundleArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ReplaceArgs;\nimport com.pulumi.std.inputs.SubstrArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.CloudstoragegatewayFunctions;\nimport com.pulumi.alicloud.cloudstoragegateway.inputs.GetStocksArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.Gateway;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayCacheDisk;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayCacheDiskArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayFileShare;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayFileShareArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.ExpressSync;\nimport com.pulumi.alicloud.cloudstoragegateway.ExpressSyncArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultUuid = new Uuid(\"defaultUuid\");\n\n        var defaultStorageBundle = new StorageBundle(\"defaultStorageBundle\", StorageBundleArgs.builder()\n            .storageBundleName(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(defaultUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(defaultUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .build());\n\n        var defaultBucketAcl = new BucketAcl(\"defaultBucketAcl\", BucketAclArgs.builder()\n            .bucket(defaultBucket.bucket())\n            .acl(\"public-read-write\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        final var defaultGetStocks = CloudstoragegatewayFunctions.getStocks(GetStocksArgs.builder()\n            .gatewayClass(\"Standard\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(defaultGetStocks.stocks()[0].zoneId())\n            .vswitchName(name)\n            .build());\n\n        var defaultGateway = new Gateway(\"defaultGateway\", GatewayArgs.builder()\n            .gatewayName(name)\n            .description(name)\n            .gatewayClass(\"Standard\")\n            .type(\"File\")\n            .paymentType(\"PayAsYouGo\")\n            .vswitchId(defaultSwitch.id())\n            .releaseAfterExpiration(true)\n            .publicNetworkBandwidth(40)\n            .storageBundleId(defaultStorageBundle.id())\n            .location(\"Cloud\")\n            .build());\n\n        var defaultGatewayCacheDisk = new GatewayCacheDisk(\"defaultGatewayCacheDisk\", GatewayCacheDiskArgs.builder()\n            .cacheDiskCategory(\"cloud_efficiency\")\n            .gatewayId(defaultGateway.id())\n            .cacheDiskSizeInGb(50)\n            .build());\n\n        var defaultGatewayFileShare = new GatewayFileShare(\"defaultGatewayFileShare\", GatewayFileShareArgs.builder()\n            .gatewayFileShareName(name)\n            .gatewayId(defaultGateway.id())\n            .localPath(defaultGatewayCacheDisk.localFilePath())\n            .ossBucketName(defaultBucket.bucket())\n            .ossEndpoint(defaultBucket.extranetEndpoint())\n            .protocol(\"NFS\")\n            .remoteSync(true)\n            .pollingInterval(4500)\n            .feLimit(0)\n            .backendLimit(0)\n            .cacheMode(\"Cache\")\n            .squash(\"none\")\n            .lagPeriod(5)\n            .build());\n\n        var defaultExpressSync = new ExpressSync(\"defaultExpressSync\", ExpressSyncArgs.builder()\n            .bucketName(defaultGatewayFileShare.ossBucketName())\n            .bucketRegion(default_.regions()[0].id())\n            .description(name)\n            .expressSyncName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultUuid:\n    type: random:Uuid\n    name: default\n  defaultStorageBundle:\n    type: alicloud:cloudstoragegateway:StorageBundle\n    name: default\n    properties:\n      storageBundleName:\n        fn::invoke:\n          function: std:substr\n          arguments:\n            input:\n              fn::join:\n                - \"\"\n                - - tf-example-\n                  - fn::invoke:\n                      function: std:replace\n                      arguments:\n                        text: ${defaultUuid.result}\n                        search: '-'\n                        replace: \"\"\n                      return: result\n            offset: 0\n            length: 16\n          return: result\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket:\n        fn::invoke:\n          function: std:substr\n          arguments:\n            input:\n              fn::join:\n                - \"\"\n                - - tf-example-\n                  - fn::invoke:\n                      function: std:replace\n                      arguments:\n                        text: ${defaultUuid.result}\n                        search: '-'\n                        replace: \"\"\n                      return: result\n            offset: 0\n            length: 16\n          return: result\n  defaultBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: default\n    properties:\n      bucket: ${defaultBucket.bucket}\n      acl: public-read-write\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${defaultGetStocks.stocks[0].zoneId}\n      vswitchName: ${name}\n  defaultGateway:\n    type: alicloud:cloudstoragegateway:Gateway\n    name: default\n    properties:\n      gatewayName: ${name}\n      description: ${name}\n      gatewayClass: Standard\n      type: File\n      paymentType: PayAsYouGo\n      vswitchId: ${defaultSwitch.id}\n      releaseAfterExpiration: true\n      publicNetworkBandwidth: 40\n      storageBundleId: ${defaultStorageBundle.id}\n      location: Cloud\n  defaultGatewayCacheDisk:\n    type: alicloud:cloudstoragegateway:GatewayCacheDisk\n    name: default\n    properties:\n      cacheDiskCategory: cloud_efficiency\n      gatewayId: ${defaultGateway.id}\n      cacheDiskSizeInGb: 50\n  defaultGatewayFileShare:\n    type: alicloud:cloudstoragegateway:GatewayFileShare\n    name: default\n    properties:\n      gatewayFileShareName: ${name}\n      gatewayId: ${defaultGateway.id}\n      localPath: ${defaultGatewayCacheDisk.localFilePath}\n      ossBucketName: ${defaultBucket.bucket}\n      ossEndpoint: ${defaultBucket.extranetEndpoint}\n      protocol: NFS\n      remoteSync: true\n      pollingInterval: 4500\n      feLimit: 0\n      backendLimit: 0\n      cacheMode: Cache\n      squash: none\n      lagPeriod: 5\n  defaultExpressSync:\n    type: alicloud:cloudstoragegateway:ExpressSync\n    name: default\n    properties:\n      bucketName: ${defaultGatewayFileShare.ossBucketName}\n      bucketRegion: ${default.regions[0].id}\n      description: ${name}\n      expressSyncName: ${name}-${defaultInteger.result}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetStocks:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getStocks\n      arguments:\n        gatewayClass: Standard\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Storage Gateway Express Sync can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudstoragegateway/expressSync:ExpressSync example \u003cid\u003e\n```\n\n","properties":{"bucketName":{"type":"string","description":"The name of the OSS Bucket.\n"},"bucketPrefix":{"type":"string","description":"The prefix of the OSS Bucket.\n"},"bucketRegion":{"type":"string","description":"The region of the OSS Bucket.\n"},"description":{"type":"string","description":"The description of the Express Sync. The length of the name is limited to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e characters.\n"},"expressSyncName":{"type":"string","description":"The name of the ExpressSync. The length of the name is limited to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters. It can contain uppercase and lowercase letters, Chinese characters, numbers, English periods (.), underscores (_), or hyphens (-), and must start with  letters.\n"}},"required":["bucketName","bucketRegion","expressSyncName"],"inputProperties":{"bucketName":{"type":"string","description":"The name of the OSS Bucket.\n","willReplaceOnChanges":true},"bucketPrefix":{"type":"string","description":"The prefix of the OSS Bucket.\n","willReplaceOnChanges":true},"bucketRegion":{"type":"string","description":"The region of the OSS Bucket.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the Express Sync. The length of the name is limited to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e characters.\n","willReplaceOnChanges":true},"expressSyncName":{"type":"string","description":"The name of the ExpressSync. The length of the name is limited to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters. It can contain uppercase and lowercase letters, Chinese characters, numbers, English periods (.), underscores (_), or hyphens (-), and must start with  letters.\n","willReplaceOnChanges":true}},"requiredInputs":["bucketName","bucketRegion","expressSyncName"],"stateInputs":{"description":"Input properties used for looking up and filtering ExpressSync resources.\n","properties":{"bucketName":{"type":"string","description":"The name of the OSS Bucket.\n","willReplaceOnChanges":true},"bucketPrefix":{"type":"string","description":"The prefix of the OSS Bucket.\n","willReplaceOnChanges":true},"bucketRegion":{"type":"string","description":"The region of the OSS Bucket.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the Express Sync. The length of the name is limited to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e characters.\n","willReplaceOnChanges":true},"expressSyncName":{"type":"string","description":"The name of the ExpressSync. The length of the name is limited to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters. It can contain uppercase and lowercase letters, Chinese characters, numbers, English periods (.), underscores (_), or hyphens (-), and must start with  letters.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudstoragegateway/expressSyncShareAttachment:ExpressSyncShareAttachment":{"description":"Provides a Cloud Storage Gateway Express Sync Share Attachment resource.\n\nFor information about Cloud Storage Gateway Express Sync Share Attachment and how to use it, see [What is Express Sync Share Attachment](https://www.alibabacloud.com/help/en/cloud-storage-gateway/latest/addsharestoexpresssync).\n\n\u003e **NOTE:** Available since v1.144.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultUuid = new random.index.Uuid(\"default\", {});\nconst defaultStorageBundle = new alicloud.cloudstoragegateway.StorageBundle(\"default\", {storageBundleName: std.replace({\n    text: defaultUuid.result,\n    search: \"-\",\n    replace: \"\",\n}).then(invoke =\u003e std.substr({\n    input: `tf-example-${invoke.result}`,\n    offset: 0,\n    length: 16,\n})).then(invoke =\u003e invoke.result)});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: std.replace({\n    text: defaultUuid.result,\n    search: \"-\",\n    replace: \"\",\n}).then(invoke =\u003e std.substr({\n    input: `tf-example-${invoke.result}`,\n    offset: 0,\n    length: 16,\n})).then(invoke =\u003e invoke.result)});\nconst defaultBucketAcl = new alicloud.oss.BucketAcl(\"default\", {\n    bucket: defaultBucket.bucket,\n    acl: \"public-read-write\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultGetStocks = alicloud.cloudstoragegateway.getStocks({\n    gatewayClass: \"Standard\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: defaultGetStocks.then(defaultGetStocks =\u003e defaultGetStocks.stocks?.[0]?.zoneId),\n    vswitchName: name,\n});\nconst defaultGateway = new alicloud.cloudstoragegateway.Gateway(\"default\", {\n    gatewayName: name,\n    description: name,\n    gatewayClass: \"Standard\",\n    type: \"File\",\n    paymentType: \"PayAsYouGo\",\n    vswitchId: defaultSwitch.id,\n    releaseAfterExpiration: true,\n    publicNetworkBandwidth: 40,\n    storageBundleId: defaultStorageBundle.id,\n    location: \"Cloud\",\n});\nconst defaultGatewayCacheDisk = new alicloud.cloudstoragegateway.GatewayCacheDisk(\"default\", {\n    cacheDiskCategory: \"cloud_efficiency\",\n    gatewayId: defaultGateway.id,\n    cacheDiskSizeInGb: 50,\n});\nconst defaultGatewayFileShare = new alicloud.cloudstoragegateway.GatewayFileShare(\"default\", {\n    gatewayFileShareName: name,\n    gatewayId: defaultGateway.id,\n    localPath: defaultGatewayCacheDisk.localFilePath,\n    ossBucketName: defaultBucket.bucket,\n    ossEndpoint: defaultBucket.extranetEndpoint,\n    protocol: \"NFS\",\n    remoteSync: false,\n    feLimit: 0,\n    backendLimit: 0,\n    cacheMode: \"Cache\",\n    squash: \"none\",\n    lagPeriod: 5,\n});\nconst defaultExpressSync = new alicloud.cloudstoragegateway.ExpressSync(\"default\", {\n    bucketName: defaultGatewayFileShare.ossBucketName,\n    bucketRegion: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    description: name,\n    expressSyncName: `${name}-${defaultInteger.result}`,\n});\nconst defaultExpressSyncShareAttachment = new alicloud.cloudstoragegateway.ExpressSyncShareAttachment(\"default\", {\n    expressSyncId: defaultExpressSync.id,\n    gatewayId: defaultGateway.id,\n    shareName: defaultGatewayFileShare.gatewayFileShareName,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.get_regions(current=True)\ndefault_uuid = random.index.Uuid(\"default\")\ndefault_storage_bundle = alicloud.cloudstoragegateway.StorageBundle(\"default\", storage_bundle_name=std.substr(input=f\"tf-example-{std.replace(text=default_uuid['result'],\n        search='-',\n        replace='').result}\",\n    offset=0,\n    length=16).result)\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=std.substr(input=f\"tf-example-{std.replace(text=default_uuid['result'],\n        search='-',\n        replace='').result}\",\n    offset=0,\n    length=16).result)\ndefault_bucket_acl = alicloud.oss.BucketAcl(\"default\",\n    bucket=default_bucket.bucket,\n    acl=\"public-read-write\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault_get_stocks = alicloud.cloudstoragegateway.get_stocks(gateway_class=\"Standard\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default_get_stocks.stocks[0].zone_id,\n    vswitch_name=name)\ndefault_gateway = alicloud.cloudstoragegateway.Gateway(\"default\",\n    gateway_name=name,\n    description=name,\n    gateway_class=\"Standard\",\n    type=\"File\",\n    payment_type=\"PayAsYouGo\",\n    vswitch_id=default_switch.id,\n    release_after_expiration=True,\n    public_network_bandwidth=40,\n    storage_bundle_id=default_storage_bundle.id,\n    location=\"Cloud\")\ndefault_gateway_cache_disk = alicloud.cloudstoragegateway.GatewayCacheDisk(\"default\",\n    cache_disk_category=\"cloud_efficiency\",\n    gateway_id=default_gateway.id,\n    cache_disk_size_in_gb=50)\ndefault_gateway_file_share = alicloud.cloudstoragegateway.GatewayFileShare(\"default\",\n    gateway_file_share_name=name,\n    gateway_id=default_gateway.id,\n    local_path=default_gateway_cache_disk.local_file_path,\n    oss_bucket_name=default_bucket.bucket,\n    oss_endpoint=default_bucket.extranet_endpoint,\n    protocol=\"NFS\",\n    remote_sync=False,\n    fe_limit=0,\n    backend_limit=0,\n    cache_mode=\"Cache\",\n    squash=\"none\",\n    lag_period=5)\ndefault_express_sync = alicloud.cloudstoragegateway.ExpressSync(\"default\",\n    bucket_name=default_gateway_file_share.oss_bucket_name,\n    bucket_region=default.regions[0].id,\n    description=name,\n    express_sync_name=f\"{name}-{default_integer['result']}\")\ndefault_express_sync_share_attachment = alicloud.cloudstoragegateway.ExpressSyncShareAttachment(\"default\",\n    express_sync_id=default_express_sync.id,\n    gateway_id=default_gateway.id,\n    share_name=default_gateway_file_share.gateway_file_share_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultUuid = new Random.Index.Uuid(\"default\");\n\n    var defaultStorageBundle = new AliCloud.CloudStorageGateway.StorageBundle(\"default\", new()\n    {\n        StorageBundleName = Std.Replace.Invoke(new()\n        {\n            Text = defaultUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = Std.Replace.Invoke(new()\n        {\n            Text = defaultUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultBucketAcl = new AliCloud.Oss.BucketAcl(\"default\", new()\n    {\n        Bucket = defaultBucket.BucketName,\n        Acl = \"public-read-write\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultGetStocks = AliCloud.CloudStorageGateway.GetStocks.Invoke(new()\n    {\n        GatewayClass = \"Standard\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = defaultGetStocks.Apply(getStocksResult =\u003e getStocksResult.Stocks[0]?.ZoneId),\n        VswitchName = name,\n    });\n\n    var defaultGateway = new AliCloud.CloudStorageGateway.Gateway(\"default\", new()\n    {\n        GatewayName = name,\n        Description = name,\n        GatewayClass = \"Standard\",\n        Type = \"File\",\n        PaymentType = \"PayAsYouGo\",\n        VswitchId = defaultSwitch.Id,\n        ReleaseAfterExpiration = true,\n        PublicNetworkBandwidth = 40,\n        StorageBundleId = defaultStorageBundle.Id,\n        Location = \"Cloud\",\n    });\n\n    var defaultGatewayCacheDisk = new AliCloud.CloudStorageGateway.GatewayCacheDisk(\"default\", new()\n    {\n        CacheDiskCategory = \"cloud_efficiency\",\n        GatewayId = defaultGateway.Id,\n        CacheDiskSizeInGb = 50,\n    });\n\n    var defaultGatewayFileShare = new AliCloud.CloudStorageGateway.GatewayFileShare(\"default\", new()\n    {\n        GatewayFileShareName = name,\n        GatewayId = defaultGateway.Id,\n        LocalPath = defaultGatewayCacheDisk.LocalFilePath,\n        OssBucketName = defaultBucket.BucketName,\n        OssEndpoint = defaultBucket.ExtranetEndpoint,\n        Protocol = \"NFS\",\n        RemoteSync = false,\n        FeLimit = 0,\n        BackendLimit = 0,\n        CacheMode = \"Cache\",\n        Squash = \"none\",\n        LagPeriod = 5,\n    });\n\n    var defaultExpressSync = new AliCloud.CloudStorageGateway.ExpressSync(\"default\", new()\n    {\n        BucketName = defaultGatewayFileShare.OssBucketName,\n        BucketRegion = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        Description = name,\n        ExpressSyncName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultExpressSyncShareAttachment = new AliCloud.CloudStorageGateway.ExpressSyncShareAttachment(\"default\", new()\n    {\n        ExpressSyncId = defaultExpressSync.Id,\n        GatewayId = defaultGateway.Id,\n        ShareName = defaultGatewayFileShare.GatewayFileShareName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultUuid, err := random.NewUuid(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    defaultUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStorageBundle, err := cloudstoragegateway.NewStorageBundle(ctx, \"default\", \u0026cloudstoragegateway.StorageBundleArgs{\n\t\t\tStorageBundleName: pulumi.String(invokeSubstr.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr1, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    defaultUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.String(invokeSubstr1.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"default\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: defaultBucket.Bucket,\n\t\t\tAcl:    pulumi.String(\"public-read-write\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetStocks, err := cloudstoragegateway.GetStocks(ctx, \u0026cloudstoragegateway.GetStocksArgs{\n\t\t\tGatewayClass: pulumi.StringRef(\"Standard\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(defaultGetStocks.Stocks[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGateway, err := cloudstoragegateway.NewGateway(ctx, \"default\", \u0026cloudstoragegateway.GatewayArgs{\n\t\t\tGatewayName:            pulumi.String(name),\n\t\t\tDescription:            pulumi.String(name),\n\t\t\tGatewayClass:           pulumi.String(\"Standard\"),\n\t\t\tType:                   pulumi.String(\"File\"),\n\t\t\tPaymentType:            pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:              defaultSwitch.ID(),\n\t\t\tReleaseAfterExpiration: pulumi.Bool(true),\n\t\t\tPublicNetworkBandwidth: pulumi.Int(40),\n\t\t\tStorageBundleId:        defaultStorageBundle.ID(),\n\t\t\tLocation:               pulumi.String(\"Cloud\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGatewayCacheDisk, err := cloudstoragegateway.NewGatewayCacheDisk(ctx, \"default\", \u0026cloudstoragegateway.GatewayCacheDiskArgs{\n\t\t\tCacheDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tGatewayId:         defaultGateway.ID(),\n\t\t\tCacheDiskSizeInGb: pulumi.Int(50),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGatewayFileShare, err := cloudstoragegateway.NewGatewayFileShare(ctx, \"default\", \u0026cloudstoragegateway.GatewayFileShareArgs{\n\t\t\tGatewayFileShareName: pulumi.String(name),\n\t\t\tGatewayId:            defaultGateway.ID(),\n\t\t\tLocalPath:            defaultGatewayCacheDisk.LocalFilePath,\n\t\t\tOssBucketName:        defaultBucket.Bucket,\n\t\t\tOssEndpoint:          defaultBucket.ExtranetEndpoint,\n\t\t\tProtocol:             pulumi.String(\"NFS\"),\n\t\t\tRemoteSync:           pulumi.Bool(false),\n\t\t\tFeLimit:              pulumi.Int(0),\n\t\t\tBackendLimit:         pulumi.Int(0),\n\t\t\tCacheMode:            pulumi.String(\"Cache\"),\n\t\t\tSquash:               pulumi.String(\"none\"),\n\t\t\tLagPeriod:            pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultExpressSync, err := cloudstoragegateway.NewExpressSync(ctx, \"default\", \u0026cloudstoragegateway.ExpressSyncArgs{\n\t\t\tBucketName:      defaultGatewayFileShare.OssBucketName,\n\t\t\tBucketRegion:    pulumi.String(_default.Regions[0].Id),\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tExpressSyncName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudstoragegateway.NewExpressSyncShareAttachment(ctx, \"default\", \u0026cloudstoragegateway.ExpressSyncShareAttachmentArgs{\n\t\t\tExpressSyncId: defaultExpressSync.ID(),\n\t\t\tGatewayId:     defaultGateway.ID(),\n\t\t\tShareName:     defaultGatewayFileShare.GatewayFileShareName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Uuid;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundle;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundleArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ReplaceArgs;\nimport com.pulumi.std.inputs.SubstrArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.CloudstoragegatewayFunctions;\nimport com.pulumi.alicloud.cloudstoragegateway.inputs.GetStocksArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.Gateway;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayCacheDisk;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayCacheDiskArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayFileShare;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayFileShareArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.ExpressSync;\nimport com.pulumi.alicloud.cloudstoragegateway.ExpressSyncArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.ExpressSyncShareAttachment;\nimport com.pulumi.alicloud.cloudstoragegateway.ExpressSyncShareAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultUuid = new Uuid(\"defaultUuid\");\n\n        var defaultStorageBundle = new StorageBundle(\"defaultStorageBundle\", StorageBundleArgs.builder()\n            .storageBundleName(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(defaultUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(defaultUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .build());\n\n        var defaultBucketAcl = new BucketAcl(\"defaultBucketAcl\", BucketAclArgs.builder()\n            .bucket(defaultBucket.bucket())\n            .acl(\"public-read-write\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        final var defaultGetStocks = CloudstoragegatewayFunctions.getStocks(GetStocksArgs.builder()\n            .gatewayClass(\"Standard\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(defaultGetStocks.stocks()[0].zoneId())\n            .vswitchName(name)\n            .build());\n\n        var defaultGateway = new Gateway(\"defaultGateway\", GatewayArgs.builder()\n            .gatewayName(name)\n            .description(name)\n            .gatewayClass(\"Standard\")\n            .type(\"File\")\n            .paymentType(\"PayAsYouGo\")\n            .vswitchId(defaultSwitch.id())\n            .releaseAfterExpiration(true)\n            .publicNetworkBandwidth(40)\n            .storageBundleId(defaultStorageBundle.id())\n            .location(\"Cloud\")\n            .build());\n\n        var defaultGatewayCacheDisk = new GatewayCacheDisk(\"defaultGatewayCacheDisk\", GatewayCacheDiskArgs.builder()\n            .cacheDiskCategory(\"cloud_efficiency\")\n            .gatewayId(defaultGateway.id())\n            .cacheDiskSizeInGb(50)\n            .build());\n\n        var defaultGatewayFileShare = new GatewayFileShare(\"defaultGatewayFileShare\", GatewayFileShareArgs.builder()\n            .gatewayFileShareName(name)\n            .gatewayId(defaultGateway.id())\n            .localPath(defaultGatewayCacheDisk.localFilePath())\n            .ossBucketName(defaultBucket.bucket())\n            .ossEndpoint(defaultBucket.extranetEndpoint())\n            .protocol(\"NFS\")\n            .remoteSync(false)\n            .feLimit(0)\n            .backendLimit(0)\n            .cacheMode(\"Cache\")\n            .squash(\"none\")\n            .lagPeriod(5)\n            .build());\n\n        var defaultExpressSync = new ExpressSync(\"defaultExpressSync\", ExpressSyncArgs.builder()\n            .bucketName(defaultGatewayFileShare.ossBucketName())\n            .bucketRegion(default_.regions()[0].id())\n            .description(name)\n            .expressSyncName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultExpressSyncShareAttachment = new ExpressSyncShareAttachment(\"defaultExpressSyncShareAttachment\", ExpressSyncShareAttachmentArgs.builder()\n            .expressSyncId(defaultExpressSync.id())\n            .gatewayId(defaultGateway.id())\n            .shareName(defaultGatewayFileShare.gatewayFileShareName())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultUuid:\n    type: random:Uuid\n    name: default\n  defaultStorageBundle:\n    type: alicloud:cloudstoragegateway:StorageBundle\n    name: default\n    properties:\n      storageBundleName:\n        fn::invoke:\n          function: std:substr\n          arguments:\n            input:\n              fn::join:\n                - \"\"\n                - - tf-example-\n                  - fn::invoke:\n                      function: std:replace\n                      arguments:\n                        text: ${defaultUuid.result}\n                        search: '-'\n                        replace: \"\"\n                      return: result\n            offset: 0\n            length: 16\n          return: result\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket:\n        fn::invoke:\n          function: std:substr\n          arguments:\n            input:\n              fn::join:\n                - \"\"\n                - - tf-example-\n                  - fn::invoke:\n                      function: std:replace\n                      arguments:\n                        text: ${defaultUuid.result}\n                        search: '-'\n                        replace: \"\"\n                      return: result\n            offset: 0\n            length: 16\n          return: result\n  defaultBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: default\n    properties:\n      bucket: ${defaultBucket.bucket}\n      acl: public-read-write\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${defaultGetStocks.stocks[0].zoneId}\n      vswitchName: ${name}\n  defaultGateway:\n    type: alicloud:cloudstoragegateway:Gateway\n    name: default\n    properties:\n      gatewayName: ${name}\n      description: ${name}\n      gatewayClass: Standard\n      type: File\n      paymentType: PayAsYouGo\n      vswitchId: ${defaultSwitch.id}\n      releaseAfterExpiration: true\n      publicNetworkBandwidth: 40\n      storageBundleId: ${defaultStorageBundle.id}\n      location: Cloud\n  defaultGatewayCacheDisk:\n    type: alicloud:cloudstoragegateway:GatewayCacheDisk\n    name: default\n    properties:\n      cacheDiskCategory: cloud_efficiency\n      gatewayId: ${defaultGateway.id}\n      cacheDiskSizeInGb: 50\n  defaultGatewayFileShare:\n    type: alicloud:cloudstoragegateway:GatewayFileShare\n    name: default\n    properties:\n      gatewayFileShareName: ${name}\n      gatewayId: ${defaultGateway.id}\n      localPath: ${defaultGatewayCacheDisk.localFilePath}\n      ossBucketName: ${defaultBucket.bucket}\n      ossEndpoint: ${defaultBucket.extranetEndpoint}\n      protocol: NFS\n      remoteSync: false\n      feLimit: 0\n      backendLimit: 0\n      cacheMode: Cache\n      squash: none\n      lagPeriod: 5\n  defaultExpressSync:\n    type: alicloud:cloudstoragegateway:ExpressSync\n    name: default\n    properties:\n      bucketName: ${defaultGatewayFileShare.ossBucketName}\n      bucketRegion: ${default.regions[0].id}\n      description: ${name}\n      expressSyncName: ${name}-${defaultInteger.result}\n  defaultExpressSyncShareAttachment:\n    type: alicloud:cloudstoragegateway:ExpressSyncShareAttachment\n    name: default\n    properties:\n      expressSyncId: ${defaultExpressSync.id}\n      gatewayId: ${defaultGateway.id}\n      shareName: ${defaultGatewayFileShare.gatewayFileShareName}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetStocks:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getStocks\n      arguments:\n        gatewayClass: Standard\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Storage Gateway Express Sync Share Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudstoragegateway/expressSyncShareAttachment:ExpressSyncShareAttachment example \u003cexpress_sync_id\u003e:\u003cgateway_id\u003e:\u003cshare_name\u003e\n```\n\n","properties":{"expressSyncId":{"type":"string","description":"The ID of the ExpressSync.\n"},"gatewayId":{"type":"string","description":"The ID of the Gateway.\n"},"shareName":{"type":"string","description":"The name of the GatewayFileShare. **NOTE:** When GatewayFileShare is associated with a speed sync group, its reverse synchronization function will be turned off by default.\n"}},"required":["expressSyncId","gatewayId","shareName"],"inputProperties":{"expressSyncId":{"type":"string","description":"The ID of the ExpressSync.\n","willReplaceOnChanges":true},"gatewayId":{"type":"string","description":"The ID of the Gateway.\n","willReplaceOnChanges":true},"shareName":{"type":"string","description":"The name of the GatewayFileShare. **NOTE:** When GatewayFileShare is associated with a speed sync group, its reverse synchronization function will be turned off by default.\n","willReplaceOnChanges":true}},"requiredInputs":["expressSyncId","gatewayId","shareName"],"stateInputs":{"description":"Input properties used for looking up and filtering ExpressSyncShareAttachment resources.\n","properties":{"expressSyncId":{"type":"string","description":"The ID of the ExpressSync.\n","willReplaceOnChanges":true},"gatewayId":{"type":"string","description":"The ID of the Gateway.\n","willReplaceOnChanges":true},"shareName":{"type":"string","description":"The name of the GatewayFileShare. **NOTE:** When GatewayFileShare is associated with a speed sync group, its reverse synchronization function will be turned off by default.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudstoragegateway/gateway:Gateway":{"description":"Provides a Cloud Storage Gateway Gateway resource.\n\nFor information about Cloud Storage Gateway Gateway and how to use it, see [What is Gateway](https://www.alibabacloud.com/help/en/csg/developer-reference/api-mnz46x).\n\n\u003e **NOTE:** Available since v1.132.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultStorageBundle = new alicloud.cloudstoragegateway.StorageBundle(\"default\", {storageBundleName: `${name}-${defaultInteger.result}`});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: `${name}-${defaultInteger.result}`,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: `${name}-${defaultInteger.result}`,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"192.168.192.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultGateway = new alicloud.cloudstoragegateway.Gateway(\"default\", {\n    storageBundleId: defaultStorageBundle.id,\n    type: \"File\",\n    location: \"Cloud\",\n    gatewayName: name,\n    gatewayClass: \"Standard\",\n    vswitchId: defaultSwitch.id,\n    publicNetworkBandwidth: 50,\n    paymentType: \"PayAsYouGo\",\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones()\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_storage_bundle = alicloud.cloudstoragegateway.StorageBundle(\"default\", storage_bundle_name=f\"{name}-{default_integer['result']}\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=f\"{name}-{default_integer['result']}\",\n    cidr_block=\"192.168.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=f\"{name}-{default_integer['result']}\",\n    vpc_id=default_network.id,\n    cidr_block=\"192.168.192.0/24\",\n    zone_id=default.zones[0].id)\ndefault_gateway = alicloud.cloudstoragegateway.Gateway(\"default\",\n    storage_bundle_id=default_storage_bundle.id,\n    type=\"File\",\n    location=\"Cloud\",\n    gateway_name=name,\n    gateway_class=\"Standard\",\n    vswitch_id=default_switch.id,\n    public_network_bandwidth=50,\n    payment_type=\"PayAsYouGo\",\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke();\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultStorageBundle = new AliCloud.CloudStorageGateway.StorageBundle(\"default\", new()\n    {\n        StorageBundleName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = $\"{name}-{defaultInteger.Result}\",\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = $\"{name}-{defaultInteger.Result}\",\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"192.168.192.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultGateway = new AliCloud.CloudStorageGateway.Gateway(\"default\", new()\n    {\n        StorageBundleId = defaultStorageBundle.Id,\n        Type = \"File\",\n        Location = \"Cloud\",\n        GatewayName = name,\n        GatewayClass = \"Standard\",\n        VswitchId = defaultSwitch.Id,\n        PublicNetworkBandwidth = 50,\n        PaymentType = \"PayAsYouGo\",\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStorageBundle, err := cloudstoragegateway.NewStorageBundle(ctx, \"default\", \u0026cloudstoragegateway.StorageBundleArgs{\n\t\t\tStorageBundleName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.192.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudstoragegateway.NewGateway(ctx, \"default\", \u0026cloudstoragegateway.GatewayArgs{\n\t\t\tStorageBundleId:        defaultStorageBundle.ID(),\n\t\t\tType:                   pulumi.String(\"File\"),\n\t\t\tLocation:               pulumi.String(\"Cloud\"),\n\t\t\tGatewayName:            pulumi.String(name),\n\t\t\tGatewayClass:           pulumi.String(\"Standard\"),\n\t\t\tVswitchId:              defaultSwitch.ID(),\n\t\t\tPublicNetworkBandwidth: pulumi.Int(50),\n\t\t\tPaymentType:            pulumi.String(\"PayAsYouGo\"),\n\t\t\tDescription:            pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundle;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundleArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.Gateway;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultStorageBundle = new StorageBundle(\"defaultStorageBundle\", StorageBundleArgs.builder()\n            .storageBundleName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"192.168.192.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultGateway = new Gateway(\"defaultGateway\", GatewayArgs.builder()\n            .storageBundleId(defaultStorageBundle.id())\n            .type(\"File\")\n            .location(\"Cloud\")\n            .gatewayName(name)\n            .gatewayClass(\"Standard\")\n            .vswitchId(defaultSwitch.id())\n            .publicNetworkBandwidth(50)\n            .paymentType(\"PayAsYouGo\")\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultStorageBundle:\n    type: alicloud:cloudstoragegateway:StorageBundle\n    name: default\n    properties:\n      storageBundleName: ${name}-${defaultInteger.result}\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}-${defaultInteger.result}\n      cidrBlock: 192.168.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}-${defaultInteger.result}\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 192.168.192.0/24\n      zoneId: ${default.zones[0].id}\n  defaultGateway:\n    type: alicloud:cloudstoragegateway:Gateway\n    name: default\n    properties:\n      storageBundleId: ${defaultStorageBundle.id}\n      type: File\n      location: Cloud\n      gatewayName: ${name}\n      gatewayClass: Standard\n      vswitchId: ${defaultSwitch.id}\n      publicNetworkBandwidth: 50\n      paymentType: PayAsYouGo\n      description: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Storage Gateway Gateway can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudstoragegateway/gateway:Gateway example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the gateway.\n"},"gatewayClass":{"type":"string","description":"The specification of the gateway. Valid values: `Basic`, `Standard`, `Enhanced`, `Advanced`. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e is set to `Cloud`, \u003cspan pulumi-lang-nodejs=\"`gatewayClass`\" pulumi-lang-dotnet=\"`GatewayClass`\" pulumi-lang-go=\"`gatewayClass`\" pulumi-lang-python=\"`gateway_class`\" pulumi-lang-yaml=\"`gatewayClass`\" pulumi-lang-java=\"`gatewayClass`\"\u003e`gateway_class`\u003c/span\u003e is required. Otherwise, \u003cspan pulumi-lang-nodejs=\"`gatewayClass`\" pulumi-lang-dotnet=\"`GatewayClass`\" pulumi-lang-go=\"`gatewayClass`\" pulumi-lang-python=\"`gateway_class`\" pulumi-lang-yaml=\"`gatewayClass`\" pulumi-lang-java=\"`gatewayClass`\"\u003e`gateway_class`\u003c/span\u003e will be ignored. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, \u003cspan pulumi-lang-nodejs=\"`gatewayClass`\" pulumi-lang-dotnet=\"`GatewayClass`\" pulumi-lang-go=\"`gatewayClass`\" pulumi-lang-python=\"`gateway_class`\" pulumi-lang-yaml=\"`gatewayClass`\" pulumi-lang-java=\"`gatewayClass`\"\u003e`gateway_class`\u003c/span\u003e cannot be modified.\n"},"gatewayName":{"type":"string","description":"The name of the gateway. The name must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e characters in length and can contain letters, digits, periods (.), underscores (_), and hyphens (-). It must start with a letter.\n"},"location":{"type":"string","description":"The location of the gateway. Valid values: `Cloud`, `On_Premise`.\n"},"paymentType":{"type":"string","description":"The Payment type of gateway. Valid values: `PayAsYouGo`, `Subscription`. **NOTE:** Since version 1.233.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e can be set to `Subscription`, but even after the gateway is created by Terraform, you still need to make purchases on the console.\n"},"publicNetworkBandwidth":{"type":"integer","description":"The public bandwidth of the gateway. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`publicNetworkBandwidth`\" pulumi-lang-dotnet=\"`PublicNetworkBandwidth`\" pulumi-lang-go=\"`publicNetworkBandwidth`\" pulumi-lang-python=\"`public_network_bandwidth`\" pulumi-lang-yaml=\"`publicNetworkBandwidth`\" pulumi-lang-java=\"`publicNetworkBandwidth`\"\u003e`public_network_bandwidth`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e is `Cloud`. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, \u003cspan pulumi-lang-nodejs=\"`publicNetworkBandwidth`\" pulumi-lang-dotnet=\"`PublicNetworkBandwidth`\" pulumi-lang-go=\"`publicNetworkBandwidth`\" pulumi-lang-python=\"`public_network_bandwidth`\" pulumi-lang-yaml=\"`publicNetworkBandwidth`\" pulumi-lang-java=\"`publicNetworkBandwidth`\"\u003e`public_network_bandwidth`\u003c/span\u003e cannot be modified.\n"},"reasonDetail":{"type":"string","description":"The detailed reason why you want to delete the gateway.\n"},"reasonType":{"type":"string","description":"The type of the reason why you want to delete the gateway.\n"},"releaseAfterExpiration":{"type":"boolean","description":"Specifies whether to release the gateway after the subscription expires. Valid values:\n"},"status":{"type":"string","description":"The status of the Gateway.\n"},"storageBundleId":{"type":"string","description":"The ID of the gateway cluster.\n"},"type":{"type":"string","description":"The type of the gateway. Valid values: `File`, `Iscsi`.\n"},"vswitchId":{"type":"string","description":"The ID of the VSwitch. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e is set to `Cloud`, \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is required. Otherwise, \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e will be ignored.\n"}},"required":["gatewayName","location","publicNetworkBandwidth","status","storageBundleId","type"],"inputProperties":{"description":{"type":"string","description":"The description of the gateway.\n"},"gatewayClass":{"type":"string","description":"The specification of the gateway. Valid values: `Basic`, `Standard`, `Enhanced`, `Advanced`. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e is set to `Cloud`, \u003cspan pulumi-lang-nodejs=\"`gatewayClass`\" pulumi-lang-dotnet=\"`GatewayClass`\" pulumi-lang-go=\"`gatewayClass`\" pulumi-lang-python=\"`gateway_class`\" pulumi-lang-yaml=\"`gatewayClass`\" pulumi-lang-java=\"`gatewayClass`\"\u003e`gateway_class`\u003c/span\u003e is required. Otherwise, \u003cspan pulumi-lang-nodejs=\"`gatewayClass`\" pulumi-lang-dotnet=\"`GatewayClass`\" pulumi-lang-go=\"`gatewayClass`\" pulumi-lang-python=\"`gateway_class`\" pulumi-lang-yaml=\"`gatewayClass`\" pulumi-lang-java=\"`gatewayClass`\"\u003e`gateway_class`\u003c/span\u003e will be ignored. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, \u003cspan pulumi-lang-nodejs=\"`gatewayClass`\" pulumi-lang-dotnet=\"`GatewayClass`\" pulumi-lang-go=\"`gatewayClass`\" pulumi-lang-python=\"`gateway_class`\" pulumi-lang-yaml=\"`gatewayClass`\" pulumi-lang-java=\"`gatewayClass`\"\u003e`gateway_class`\u003c/span\u003e cannot be modified.\n"},"gatewayName":{"type":"string","description":"The name of the gateway. The name must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e characters in length and can contain letters, digits, periods (.), underscores (_), and hyphens (-). It must start with a letter.\n"},"location":{"type":"string","description":"The location of the gateway. Valid values: `Cloud`, `On_Premise`.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The Payment type of gateway. Valid values: `PayAsYouGo`, `Subscription`. **NOTE:** Since version 1.233.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e can be set to `Subscription`, but even after the gateway is created by Terraform, you still need to make purchases on the console.\n","willReplaceOnChanges":true},"publicNetworkBandwidth":{"type":"integer","description":"The public bandwidth of the gateway. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`publicNetworkBandwidth`\" pulumi-lang-dotnet=\"`PublicNetworkBandwidth`\" pulumi-lang-go=\"`publicNetworkBandwidth`\" pulumi-lang-python=\"`public_network_bandwidth`\" pulumi-lang-yaml=\"`publicNetworkBandwidth`\" pulumi-lang-java=\"`publicNetworkBandwidth`\"\u003e`public_network_bandwidth`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e is `Cloud`. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, \u003cspan pulumi-lang-nodejs=\"`publicNetworkBandwidth`\" pulumi-lang-dotnet=\"`PublicNetworkBandwidth`\" pulumi-lang-go=\"`publicNetworkBandwidth`\" pulumi-lang-python=\"`public_network_bandwidth`\" pulumi-lang-yaml=\"`publicNetworkBandwidth`\" pulumi-lang-java=\"`publicNetworkBandwidth`\"\u003e`public_network_bandwidth`\u003c/span\u003e cannot be modified.\n"},"reasonDetail":{"type":"string","description":"The detailed reason why you want to delete the gateway.\n"},"reasonType":{"type":"string","description":"The type of the reason why you want to delete the gateway.\n"},"releaseAfterExpiration":{"type":"boolean","description":"Specifies whether to release the gateway after the subscription expires. Valid values:\n","willReplaceOnChanges":true},"storageBundleId":{"type":"string","description":"The ID of the gateway cluster.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the gateway. Valid values: `File`, `Iscsi`.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the VSwitch. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e is set to `Cloud`, \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is required. Otherwise, \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e will be ignored.\n","willReplaceOnChanges":true}},"requiredInputs":["gatewayName","location","storageBundleId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering Gateway resources.\n","properties":{"description":{"type":"string","description":"The description of the gateway.\n"},"gatewayClass":{"type":"string","description":"The specification of the gateway. Valid values: `Basic`, `Standard`, `Enhanced`, `Advanced`. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e is set to `Cloud`, \u003cspan pulumi-lang-nodejs=\"`gatewayClass`\" pulumi-lang-dotnet=\"`GatewayClass`\" pulumi-lang-go=\"`gatewayClass`\" pulumi-lang-python=\"`gateway_class`\" pulumi-lang-yaml=\"`gatewayClass`\" pulumi-lang-java=\"`gatewayClass`\"\u003e`gateway_class`\u003c/span\u003e is required. Otherwise, \u003cspan pulumi-lang-nodejs=\"`gatewayClass`\" pulumi-lang-dotnet=\"`GatewayClass`\" pulumi-lang-go=\"`gatewayClass`\" pulumi-lang-python=\"`gateway_class`\" pulumi-lang-yaml=\"`gatewayClass`\" pulumi-lang-java=\"`gatewayClass`\"\u003e`gateway_class`\u003c/span\u003e will be ignored. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, \u003cspan pulumi-lang-nodejs=\"`gatewayClass`\" pulumi-lang-dotnet=\"`GatewayClass`\" pulumi-lang-go=\"`gatewayClass`\" pulumi-lang-python=\"`gateway_class`\" pulumi-lang-yaml=\"`gatewayClass`\" pulumi-lang-java=\"`gatewayClass`\"\u003e`gateway_class`\u003c/span\u003e cannot be modified.\n"},"gatewayName":{"type":"string","description":"The name of the gateway. The name must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e characters in length and can contain letters, digits, periods (.), underscores (_), and hyphens (-). It must start with a letter.\n"},"location":{"type":"string","description":"The location of the gateway. Valid values: `Cloud`, `On_Premise`.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The Payment type of gateway. Valid values: `PayAsYouGo`, `Subscription`. **NOTE:** Since version 1.233.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e can be set to `Subscription`, but even after the gateway is created by Terraform, you still need to make purchases on the console.\n","willReplaceOnChanges":true},"publicNetworkBandwidth":{"type":"integer","description":"The public bandwidth of the gateway. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`publicNetworkBandwidth`\" pulumi-lang-dotnet=\"`PublicNetworkBandwidth`\" pulumi-lang-go=\"`publicNetworkBandwidth`\" pulumi-lang-python=\"`public_network_bandwidth`\" pulumi-lang-yaml=\"`publicNetworkBandwidth`\" pulumi-lang-java=\"`publicNetworkBandwidth`\"\u003e`public_network_bandwidth`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e is `Cloud`. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, \u003cspan pulumi-lang-nodejs=\"`publicNetworkBandwidth`\" pulumi-lang-dotnet=\"`PublicNetworkBandwidth`\" pulumi-lang-go=\"`publicNetworkBandwidth`\" pulumi-lang-python=\"`public_network_bandwidth`\" pulumi-lang-yaml=\"`publicNetworkBandwidth`\" pulumi-lang-java=\"`publicNetworkBandwidth`\"\u003e`public_network_bandwidth`\u003c/span\u003e cannot be modified.\n"},"reasonDetail":{"type":"string","description":"The detailed reason why you want to delete the gateway.\n"},"reasonType":{"type":"string","description":"The type of the reason why you want to delete the gateway.\n"},"releaseAfterExpiration":{"type":"boolean","description":"Specifies whether to release the gateway after the subscription expires. Valid values:\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Gateway.\n"},"storageBundleId":{"type":"string","description":"The ID of the gateway cluster.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the gateway. Valid values: `File`, `Iscsi`.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the VSwitch. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e is set to `Cloud`, \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is required. Otherwise, \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e will be ignored.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudstoragegateway/gatewayBlockVolume:GatewayBlockVolume":{"description":"Provides a Cloud Storage Gateway Gateway Block Volume resource.\n\nFor information about Cloud Storage Gateway Gateway Block Volume and how to use it, see [What is Gateway Block Volume](https://www.alibabacloud.com/help/en/cloud-storage-gateway/latest/creategatewayblockvolume).\n\n\u003e **NOTE:** Available since v1.144.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultUuid = new random.index.Uuid(\"default\", {});\nconst defaultStorageBundle = new alicloud.cloudstoragegateway.StorageBundle(\"default\", {storageBundleName: std.replace({\n    text: defaultUuid.result,\n    search: \"-\",\n    replace: \"\",\n}).then(invoke =\u003e std.substr({\n    input: `tf-example-${invoke.result}`,\n    offset: 0,\n    length: 16,\n})).then(invoke =\u003e invoke.result)});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: std.replace({\n    text: defaultUuid.result,\n    search: \"-\",\n    replace: \"\",\n}).then(invoke =\u003e std.substr({\n    input: `tf-example-${invoke.result}`,\n    offset: 0,\n    length: 16,\n})).then(invoke =\u003e invoke.result)});\nconst defaultBucketAcl = new alicloud.oss.BucketAcl(\"default\", {\n    bucket: defaultBucket.bucket,\n    acl: \"public-read-write\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst _default = alicloud.cloudstoragegateway.getStocks({\n    gatewayClass: \"Standard\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: _default.then(_default =\u003e _default.stocks?.[0]?.zoneId),\n    vswitchName: name,\n});\nconst defaultGateway = new alicloud.cloudstoragegateway.Gateway(\"default\", {\n    gatewayName: name,\n    description: name,\n    gatewayClass: \"Standard\",\n    type: \"Iscsi\",\n    paymentType: \"PayAsYouGo\",\n    vswitchId: defaultSwitch.id,\n    releaseAfterExpiration: true,\n    publicNetworkBandwidth: 40,\n    storageBundleId: defaultStorageBundle.id,\n    location: \"Cloud\",\n});\nconst defaultGatewayCacheDisk = new alicloud.cloudstoragegateway.GatewayCacheDisk(\"default\", {\n    cacheDiskCategory: \"cloud_efficiency\",\n    gatewayId: defaultGateway.id,\n    cacheDiskSizeInGb: 50,\n});\nconst defaultGatewayBlockVolume = new alicloud.cloudstoragegateway.GatewayBlockVolume(\"default\", {\n    cacheMode: \"Cache\",\n    chapEnabled: false,\n    chunkSize: 8192,\n    gatewayBlockVolumeName: \"example\",\n    gatewayId: defaultGateway.id,\n    localPath: defaultGatewayCacheDisk.localFilePath,\n    ossBucketName: defaultBucket.bucket,\n    ossBucketSsl: true,\n    ossEndpoint: defaultBucket.extranetEndpoint,\n    protocol: \"iSCSI\",\n    size: 100,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_uuid = random.index.Uuid(\"default\")\ndefault_storage_bundle = alicloud.cloudstoragegateway.StorageBundle(\"default\", storage_bundle_name=std.substr(input=f\"tf-example-{std.replace(text=default_uuid['result'],\n        search='-',\n        replace='').result}\",\n    offset=0,\n    length=16).result)\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=std.substr(input=f\"tf-example-{std.replace(text=default_uuid['result'],\n        search='-',\n        replace='').result}\",\n    offset=0,\n    length=16).result)\ndefault_bucket_acl = alicloud.oss.BucketAcl(\"default\",\n    bucket=default_bucket.bucket,\n    acl=\"public-read-write\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault = alicloud.cloudstoragegateway.get_stocks(gateway_class=\"Standard\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default.stocks[0].zone_id,\n    vswitch_name=name)\ndefault_gateway = alicloud.cloudstoragegateway.Gateway(\"default\",\n    gateway_name=name,\n    description=name,\n    gateway_class=\"Standard\",\n    type=\"Iscsi\",\n    payment_type=\"PayAsYouGo\",\n    vswitch_id=default_switch.id,\n    release_after_expiration=True,\n    public_network_bandwidth=40,\n    storage_bundle_id=default_storage_bundle.id,\n    location=\"Cloud\")\ndefault_gateway_cache_disk = alicloud.cloudstoragegateway.GatewayCacheDisk(\"default\",\n    cache_disk_category=\"cloud_efficiency\",\n    gateway_id=default_gateway.id,\n    cache_disk_size_in_gb=50)\ndefault_gateway_block_volume = alicloud.cloudstoragegateway.GatewayBlockVolume(\"default\",\n    cache_mode=\"Cache\",\n    chap_enabled=False,\n    chunk_size=8192,\n    gateway_block_volume_name=\"example\",\n    gateway_id=default_gateway.id,\n    local_path=default_gateway_cache_disk.local_file_path,\n    oss_bucket_name=default_bucket.bucket,\n    oss_bucket_ssl=True,\n    oss_endpoint=default_bucket.extranet_endpoint,\n    protocol=\"iSCSI\",\n    size=100)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultUuid = new Random.Index.Uuid(\"default\");\n\n    var defaultStorageBundle = new AliCloud.CloudStorageGateway.StorageBundle(\"default\", new()\n    {\n        StorageBundleName = Std.Replace.Invoke(new()\n        {\n            Text = defaultUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = Std.Replace.Invoke(new()\n        {\n            Text = defaultUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultBucketAcl = new AliCloud.Oss.BucketAcl(\"default\", new()\n    {\n        Bucket = defaultBucket.BucketName,\n        Acl = \"public-read-write\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var @default = AliCloud.CloudStorageGateway.GetStocks.Invoke(new()\n    {\n        GatewayClass = \"Standard\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getStocksResult =\u003e getStocksResult.Stocks[0]?.ZoneId)),\n        VswitchName = name,\n    });\n\n    var defaultGateway = new AliCloud.CloudStorageGateway.Gateway(\"default\", new()\n    {\n        GatewayName = name,\n        Description = name,\n        GatewayClass = \"Standard\",\n        Type = \"Iscsi\",\n        PaymentType = \"PayAsYouGo\",\n        VswitchId = defaultSwitch.Id,\n        ReleaseAfterExpiration = true,\n        PublicNetworkBandwidth = 40,\n        StorageBundleId = defaultStorageBundle.Id,\n        Location = \"Cloud\",\n    });\n\n    var defaultGatewayCacheDisk = new AliCloud.CloudStorageGateway.GatewayCacheDisk(\"default\", new()\n    {\n        CacheDiskCategory = \"cloud_efficiency\",\n        GatewayId = defaultGateway.Id,\n        CacheDiskSizeInGb = 50,\n    });\n\n    var defaultGatewayBlockVolume = new AliCloud.CloudStorageGateway.GatewayBlockVolume(\"default\", new()\n    {\n        CacheMode = \"Cache\",\n        ChapEnabled = false,\n        ChunkSize = 8192,\n        GatewayBlockVolumeName = \"example\",\n        GatewayId = defaultGateway.Id,\n        LocalPath = defaultGatewayCacheDisk.LocalFilePath,\n        OssBucketName = defaultBucket.BucketName,\n        OssBucketSsl = true,\n        OssEndpoint = defaultBucket.ExtranetEndpoint,\n        Protocol = \"iSCSI\",\n        Size = 100,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultUuid, err := random.NewUuid(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    defaultUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStorageBundle, err := cloudstoragegateway.NewStorageBundle(ctx, \"default\", \u0026cloudstoragegateway.StorageBundleArgs{\n\t\t\tStorageBundleName: pulumi.String(invokeSubstr.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr1, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    defaultUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.String(invokeSubstr1.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"default\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: defaultBucket.Bucket,\n\t\t\tAcl:    pulumi.String(\"public-read-write\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := cloudstoragegateway.GetStocks(ctx, \u0026cloudstoragegateway.GetStocksArgs{\n\t\t\tGatewayClass: pulumi.StringRef(\"Standard\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(_default.Stocks[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGateway, err := cloudstoragegateway.NewGateway(ctx, \"default\", \u0026cloudstoragegateway.GatewayArgs{\n\t\t\tGatewayName:            pulumi.String(name),\n\t\t\tDescription:            pulumi.String(name),\n\t\t\tGatewayClass:           pulumi.String(\"Standard\"),\n\t\t\tType:                   pulumi.String(\"Iscsi\"),\n\t\t\tPaymentType:            pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:              defaultSwitch.ID(),\n\t\t\tReleaseAfterExpiration: pulumi.Bool(true),\n\t\t\tPublicNetworkBandwidth: pulumi.Int(40),\n\t\t\tStorageBundleId:        defaultStorageBundle.ID(),\n\t\t\tLocation:               pulumi.String(\"Cloud\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGatewayCacheDisk, err := cloudstoragegateway.NewGatewayCacheDisk(ctx, \"default\", \u0026cloudstoragegateway.GatewayCacheDiskArgs{\n\t\t\tCacheDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tGatewayId:         defaultGateway.ID(),\n\t\t\tCacheDiskSizeInGb: pulumi.Int(50),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudstoragegateway.NewGatewayBlockVolume(ctx, \"default\", \u0026cloudstoragegateway.GatewayBlockVolumeArgs{\n\t\t\tCacheMode:              pulumi.String(\"Cache\"),\n\t\t\tChapEnabled:            pulumi.Bool(false),\n\t\t\tChunkSize:              pulumi.Int(8192),\n\t\t\tGatewayBlockVolumeName: pulumi.String(\"example\"),\n\t\t\tGatewayId:              defaultGateway.ID(),\n\t\t\tLocalPath:              defaultGatewayCacheDisk.LocalFilePath,\n\t\t\tOssBucketName:          defaultBucket.Bucket,\n\t\t\tOssBucketSsl:           pulumi.Bool(true),\n\t\t\tOssEndpoint:            defaultBucket.ExtranetEndpoint,\n\t\t\tProtocol:               pulumi.String(\"iSCSI\"),\n\t\t\tSize:                   pulumi.Int(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Uuid;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundle;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundleArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ReplaceArgs;\nimport com.pulumi.std.inputs.SubstrArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.CloudstoragegatewayFunctions;\nimport com.pulumi.alicloud.cloudstoragegateway.inputs.GetStocksArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.Gateway;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayCacheDisk;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayCacheDiskArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayBlockVolume;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayBlockVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultUuid = new Uuid(\"defaultUuid\");\n\n        var defaultStorageBundle = new StorageBundle(\"defaultStorageBundle\", StorageBundleArgs.builder()\n            .storageBundleName(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(defaultUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(defaultUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .build());\n\n        var defaultBucketAcl = new BucketAcl(\"defaultBucketAcl\", BucketAclArgs.builder()\n            .bucket(defaultBucket.bucket())\n            .acl(\"public-read-write\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        final var default = CloudstoragegatewayFunctions.getStocks(GetStocksArgs.builder()\n            .gatewayClass(\"Standard\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(default_.stocks()[0].zoneId())\n            .vswitchName(name)\n            .build());\n\n        var defaultGateway = new Gateway(\"defaultGateway\", GatewayArgs.builder()\n            .gatewayName(name)\n            .description(name)\n            .gatewayClass(\"Standard\")\n            .type(\"Iscsi\")\n            .paymentType(\"PayAsYouGo\")\n            .vswitchId(defaultSwitch.id())\n            .releaseAfterExpiration(true)\n            .publicNetworkBandwidth(40)\n            .storageBundleId(defaultStorageBundle.id())\n            .location(\"Cloud\")\n            .build());\n\n        var defaultGatewayCacheDisk = new GatewayCacheDisk(\"defaultGatewayCacheDisk\", GatewayCacheDiskArgs.builder()\n            .cacheDiskCategory(\"cloud_efficiency\")\n            .gatewayId(defaultGateway.id())\n            .cacheDiskSizeInGb(50)\n            .build());\n\n        var defaultGatewayBlockVolume = new GatewayBlockVolume(\"defaultGatewayBlockVolume\", GatewayBlockVolumeArgs.builder()\n            .cacheMode(\"Cache\")\n            .chapEnabled(false)\n            .chunkSize(8192)\n            .gatewayBlockVolumeName(\"example\")\n            .gatewayId(defaultGateway.id())\n            .localPath(defaultGatewayCacheDisk.localFilePath())\n            .ossBucketName(defaultBucket.bucket())\n            .ossBucketSsl(true)\n            .ossEndpoint(defaultBucket.extranetEndpoint())\n            .protocol(\"iSCSI\")\n            .size(100)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultUuid:\n    type: random:Uuid\n    name: default\n  defaultStorageBundle:\n    type: alicloud:cloudstoragegateway:StorageBundle\n    name: default\n    properties:\n      storageBundleName:\n        fn::invoke:\n          function: std:substr\n          arguments:\n            input:\n              fn::join:\n                - \"\"\n                - - tf-example-\n                  - fn::invoke:\n                      function: std:replace\n                      arguments:\n                        text: ${defaultUuid.result}\n                        search: '-'\n                        replace: \"\"\n                      return: result\n            offset: 0\n            length: 16\n          return: result\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket:\n        fn::invoke:\n          function: std:substr\n          arguments:\n            input:\n              fn::join:\n                - \"\"\n                - - tf-example-\n                  - fn::invoke:\n                      function: std:replace\n                      arguments:\n                        text: ${defaultUuid.result}\n                        search: '-'\n                        replace: \"\"\n                      return: result\n            offset: 0\n            length: 16\n          return: result\n  defaultBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: default\n    properties:\n      bucket: ${defaultBucket.bucket}\n      acl: public-read-write\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${default.stocks[0].zoneId}\n      vswitchName: ${name}\n  defaultGateway:\n    type: alicloud:cloudstoragegateway:Gateway\n    name: default\n    properties:\n      gatewayName: ${name}\n      description: ${name}\n      gatewayClass: Standard\n      type: Iscsi\n      paymentType: PayAsYouGo\n      vswitchId: ${defaultSwitch.id}\n      releaseAfterExpiration: true\n      publicNetworkBandwidth: 40\n      storageBundleId: ${defaultStorageBundle.id}\n      location: Cloud\n  defaultGatewayCacheDisk:\n    type: alicloud:cloudstoragegateway:GatewayCacheDisk\n    name: default\n    properties:\n      cacheDiskCategory: cloud_efficiency\n      gatewayId: ${defaultGateway.id}\n      cacheDiskSizeInGb: 50\n  defaultGatewayBlockVolume:\n    type: alicloud:cloudstoragegateway:GatewayBlockVolume\n    name: default\n    properties:\n      cacheMode: Cache\n      chapEnabled: false\n      chunkSize: '8192'\n      gatewayBlockVolumeName: example\n      gatewayId: ${defaultGateway.id}\n      localPath: ${defaultGatewayCacheDisk.localFilePath}\n      ossBucketName: ${defaultBucket.bucket}\n      ossBucketSsl: true\n      ossEndpoint: ${defaultBucket.extranetEndpoint}\n      protocol: iSCSI\n      size: 100\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getStocks\n      arguments:\n        gatewayClass: Standard\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Storage Gateway Gateway Block Volume can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudstoragegateway/gatewayBlockVolume:GatewayBlockVolume example \u003cgateway_id\u003e:\u003cindex_id\u003e\n```\n\n","properties":{"cacheMode":{"type":"string","description":"The Block volume set mode to cache mode. Valid values: `Cache`, `WriteThrough`.\n"},"chapEnabled":{"type":"boolean","description":"Whether to enable iSCSI access of CHAP authentication, which currently supports both CHAP inbound authentication.  Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"chapInPassword":{"type":"string","description":"The password for inbound authentication when the block volume enables iSCSI access to CHAP authentication. **NOTE:** When the \u003cspan pulumi-lang-nodejs=\"`chapEnabled`\" pulumi-lang-dotnet=\"`ChapEnabled`\" pulumi-lang-go=\"`chapEnabled`\" pulumi-lang-python=\"`chap_enabled`\" pulumi-lang-yaml=\"`chapEnabled`\" pulumi-lang-java=\"`chapEnabled`\"\u003e`chap_enabled`\u003c/span\u003e is  \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e is,The \u003cspan pulumi-lang-nodejs=\"`chapInPassword`\" pulumi-lang-dotnet=\"`ChapInPassword`\" pulumi-lang-go=\"`chapInPassword`\" pulumi-lang-python=\"`chap_in_password`\" pulumi-lang-yaml=\"`chapInPassword`\" pulumi-lang-java=\"`chapInPassword`\"\u003e`chap_in_password`\u003c/span\u003e is valid.\n"},"chapInUser":{"type":"string","description":"The Inbound CHAP user. The \u003cspan pulumi-lang-nodejs=\"`chapInUser`\" pulumi-lang-dotnet=\"`ChapInUser`\" pulumi-lang-go=\"`chapInUser`\" pulumi-lang-python=\"`chap_in_user`\" pulumi-lang-yaml=\"`chapInUser`\" pulumi-lang-java=\"`chapInUser`\"\u003e`chap_in_user`\u003c/span\u003e must be 1 to 32 characters in length, and can contain letters and digits. **NOTE:** When the \u003cspan pulumi-lang-nodejs=\"`chapEnabled`\" pulumi-lang-dotnet=\"`ChapEnabled`\" pulumi-lang-go=\"`chapEnabled`\" pulumi-lang-python=\"`chap_enabled`\" pulumi-lang-yaml=\"`chapEnabled`\" pulumi-lang-java=\"`chapEnabled`\"\u003e`chap_enabled`\u003c/span\u003e is  \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e is,The \u003cspan pulumi-lang-nodejs=\"`chapInPassword`\" pulumi-lang-dotnet=\"`ChapInPassword`\" pulumi-lang-go=\"`chapInPassword`\" pulumi-lang-python=\"`chap_in_password`\" pulumi-lang-yaml=\"`chapInPassword`\" pulumi-lang-java=\"`chapInPassword`\"\u003e`chap_in_password`\u003c/span\u003e is valid.\n"},"chunkSize":{"type":"integer","description":"The Block volume storage allocation unit.  Valid values: \u003cspan pulumi-lang-nodejs=\"`8192`\" pulumi-lang-dotnet=\"`8192`\" pulumi-lang-go=\"`8192`\" pulumi-lang-python=\"`8192`\" pulumi-lang-yaml=\"`8192`\" pulumi-lang-java=\"`8192`\"\u003e`8192`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16384`\" pulumi-lang-dotnet=\"`16384`\" pulumi-lang-go=\"`16384`\" pulumi-lang-python=\"`16384`\" pulumi-lang-yaml=\"`16384`\" pulumi-lang-java=\"`16384`\"\u003e`16384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`131072`\" pulumi-lang-dotnet=\"`131072`\" pulumi-lang-go=\"`131072`\" pulumi-lang-python=\"`131072`\" pulumi-lang-yaml=\"`131072`\" pulumi-lang-java=\"`131072`\"\u003e`131072`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e. Unit: `Byte`.\n"},"gatewayBlockVolumeName":{"type":"string","description":"The Block volume name. The name must be 1 to 32 characters in length, and can contain lower case letters and digits.\n"},"gatewayId":{"type":"string","description":"The Gateway ID.\n"},"indexId":{"type":"string","description":"The ID of the index.\n"},"isSourceDeletion":{"type":"boolean","description":"Whether to delete the source data. Default value \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`isSourceDeletion`\" pulumi-lang-dotnet=\"`IsSourceDeletion`\" pulumi-lang-go=\"`isSourceDeletion`\" pulumi-lang-python=\"`is_source_deletion`\" pulumi-lang-yaml=\"`isSourceDeletion`\" pulumi-lang-java=\"`isSourceDeletion`\"\u003e`is_source_deletion`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the data in the OSS Bucket on the cloud is also deleted when deleting the block gateway volume. Please operate with caution.\n"},"localPath":{"type":"string","description":"The Cache disk to local path. **NOTE:**  When the \u003cspan pulumi-lang-nodejs=\"`cacheMode`\" pulumi-lang-dotnet=\"`CacheMode`\" pulumi-lang-go=\"`cacheMode`\" pulumi-lang-python=\"`cache_mode`\" pulumi-lang-yaml=\"`cacheMode`\" pulumi-lang-java=\"`cacheMode`\"\u003e`cache_mode`\u003c/span\u003e is  `Cache` is,The \u003cspan pulumi-lang-nodejs=\"`chapInPassword`\" pulumi-lang-dotnet=\"`ChapInPassword`\" pulumi-lang-go=\"`chapInPassword`\" pulumi-lang-python=\"`chap_in_password`\" pulumi-lang-yaml=\"`chapInPassword`\" pulumi-lang-java=\"`chapInPassword`\"\u003e`chap_in_password`\u003c/span\u003e is valid.\n"},"ossBucketName":{"type":"string","description":"The name of the OSS Bucket.\n"},"ossBucketSsl":{"type":"boolean","description":"Whether to enable SSL access your OSS Buckets. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"ossEndpoint":{"type":"string","description":"The endpoint of the OSS Bucket.\n"},"protocol":{"type":"string","description":"The Protocol. Valid values: `iSCSI`.\n"},"recovery":{"type":"boolean","description":"The recovery.\n"},"size":{"type":"integer","description":"The Volume size. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`262144`\" pulumi-lang-dotnet=\"`262144`\" pulumi-lang-go=\"`262144`\" pulumi-lang-python=\"`262144`\" pulumi-lang-yaml=\"`262144`\" pulumi-lang-java=\"`262144`\"\u003e`262144`\u003c/span\u003e. Unit: `Byte`.\n"},"status":{"type":"string","description":"The status of volume. Valid values:\n"}},"required":["cacheMode","chapEnabled","chunkSize","gatewayBlockVolumeName","gatewayId","indexId","ossBucketName","ossBucketSsl","ossEndpoint","protocol","size","status"],"inputProperties":{"cacheMode":{"type":"string","description":"The Block volume set mode to cache mode. Valid values: `Cache`, `WriteThrough`.\n","willReplaceOnChanges":true},"chapEnabled":{"type":"boolean","description":"Whether to enable iSCSI access of CHAP authentication, which currently supports both CHAP inbound authentication.  Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"chapInPassword":{"type":"string","description":"The password for inbound authentication when the block volume enables iSCSI access to CHAP authentication. **NOTE:** When the \u003cspan pulumi-lang-nodejs=\"`chapEnabled`\" pulumi-lang-dotnet=\"`ChapEnabled`\" pulumi-lang-go=\"`chapEnabled`\" pulumi-lang-python=\"`chap_enabled`\" pulumi-lang-yaml=\"`chapEnabled`\" pulumi-lang-java=\"`chapEnabled`\"\u003e`chap_enabled`\u003c/span\u003e is  \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e is,The \u003cspan pulumi-lang-nodejs=\"`chapInPassword`\" pulumi-lang-dotnet=\"`ChapInPassword`\" pulumi-lang-go=\"`chapInPassword`\" pulumi-lang-python=\"`chap_in_password`\" pulumi-lang-yaml=\"`chapInPassword`\" pulumi-lang-java=\"`chapInPassword`\"\u003e`chap_in_password`\u003c/span\u003e is valid.\n"},"chapInUser":{"type":"string","description":"The Inbound CHAP user. The \u003cspan pulumi-lang-nodejs=\"`chapInUser`\" pulumi-lang-dotnet=\"`ChapInUser`\" pulumi-lang-go=\"`chapInUser`\" pulumi-lang-python=\"`chap_in_user`\" pulumi-lang-yaml=\"`chapInUser`\" pulumi-lang-java=\"`chapInUser`\"\u003e`chap_in_user`\u003c/span\u003e must be 1 to 32 characters in length, and can contain letters and digits. **NOTE:** When the \u003cspan pulumi-lang-nodejs=\"`chapEnabled`\" pulumi-lang-dotnet=\"`ChapEnabled`\" pulumi-lang-go=\"`chapEnabled`\" pulumi-lang-python=\"`chap_enabled`\" pulumi-lang-yaml=\"`chapEnabled`\" pulumi-lang-java=\"`chapEnabled`\"\u003e`chap_enabled`\u003c/span\u003e is  \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e is,The \u003cspan pulumi-lang-nodejs=\"`chapInPassword`\" pulumi-lang-dotnet=\"`ChapInPassword`\" pulumi-lang-go=\"`chapInPassword`\" pulumi-lang-python=\"`chap_in_password`\" pulumi-lang-yaml=\"`chapInPassword`\" pulumi-lang-java=\"`chapInPassword`\"\u003e`chap_in_password`\u003c/span\u003e is valid.\n"},"chunkSize":{"type":"integer","description":"The Block volume storage allocation unit.  Valid values: \u003cspan pulumi-lang-nodejs=\"`8192`\" pulumi-lang-dotnet=\"`8192`\" pulumi-lang-go=\"`8192`\" pulumi-lang-python=\"`8192`\" pulumi-lang-yaml=\"`8192`\" pulumi-lang-java=\"`8192`\"\u003e`8192`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16384`\" pulumi-lang-dotnet=\"`16384`\" pulumi-lang-go=\"`16384`\" pulumi-lang-python=\"`16384`\" pulumi-lang-yaml=\"`16384`\" pulumi-lang-java=\"`16384`\"\u003e`16384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`131072`\" pulumi-lang-dotnet=\"`131072`\" pulumi-lang-go=\"`131072`\" pulumi-lang-python=\"`131072`\" pulumi-lang-yaml=\"`131072`\" pulumi-lang-java=\"`131072`\"\u003e`131072`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e. Unit: `Byte`.\n","willReplaceOnChanges":true},"gatewayBlockVolumeName":{"type":"string","description":"The Block volume name. The name must be 1 to 32 characters in length, and can contain lower case letters and digits.\n","willReplaceOnChanges":true},"gatewayId":{"type":"string","description":"The Gateway ID.\n","willReplaceOnChanges":true},"isSourceDeletion":{"type":"boolean","description":"Whether to delete the source data. Default value \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`isSourceDeletion`\" pulumi-lang-dotnet=\"`IsSourceDeletion`\" pulumi-lang-go=\"`isSourceDeletion`\" pulumi-lang-python=\"`is_source_deletion`\" pulumi-lang-yaml=\"`isSourceDeletion`\" pulumi-lang-java=\"`isSourceDeletion`\"\u003e`is_source_deletion`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the data in the OSS Bucket on the cloud is also deleted when deleting the block gateway volume. Please operate with caution.\n"},"localPath":{"type":"string","description":"The Cache disk to local path. **NOTE:**  When the \u003cspan pulumi-lang-nodejs=\"`cacheMode`\" pulumi-lang-dotnet=\"`CacheMode`\" pulumi-lang-go=\"`cacheMode`\" pulumi-lang-python=\"`cache_mode`\" pulumi-lang-yaml=\"`cacheMode`\" pulumi-lang-java=\"`cacheMode`\"\u003e`cache_mode`\u003c/span\u003e is  `Cache` is,The \u003cspan pulumi-lang-nodejs=\"`chapInPassword`\" pulumi-lang-dotnet=\"`ChapInPassword`\" pulumi-lang-go=\"`chapInPassword`\" pulumi-lang-python=\"`chap_in_password`\" pulumi-lang-yaml=\"`chapInPassword`\" pulumi-lang-java=\"`chapInPassword`\"\u003e`chap_in_password`\u003c/span\u003e is valid.\n","willReplaceOnChanges":true},"ossBucketName":{"type":"string","description":"The name of the OSS Bucket.\n","willReplaceOnChanges":true},"ossBucketSsl":{"type":"boolean","description":"Whether to enable SSL access your OSS Buckets. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"ossEndpoint":{"type":"string","description":"The endpoint of the OSS Bucket.\n","willReplaceOnChanges":true},"protocol":{"type":"string","description":"The Protocol. Valid values: `iSCSI`.\n","willReplaceOnChanges":true},"recovery":{"type":"boolean","description":"The recovery.\n"},"size":{"type":"integer","description":"The Volume size. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`262144`\" pulumi-lang-dotnet=\"`262144`\" pulumi-lang-go=\"`262144`\" pulumi-lang-python=\"`262144`\" pulumi-lang-yaml=\"`262144`\" pulumi-lang-java=\"`262144`\"\u003e`262144`\u003c/span\u003e. Unit: `Byte`.\n"}},"requiredInputs":["gatewayBlockVolumeName","gatewayId","ossBucketName","ossEndpoint","protocol"],"stateInputs":{"description":"Input properties used for looking up and filtering GatewayBlockVolume resources.\n","properties":{"cacheMode":{"type":"string","description":"The Block volume set mode to cache mode. Valid values: `Cache`, `WriteThrough`.\n","willReplaceOnChanges":true},"chapEnabled":{"type":"boolean","description":"Whether to enable iSCSI access of CHAP authentication, which currently supports both CHAP inbound authentication.  Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"chapInPassword":{"type":"string","description":"The password for inbound authentication when the block volume enables iSCSI access to CHAP authentication. **NOTE:** When the \u003cspan pulumi-lang-nodejs=\"`chapEnabled`\" pulumi-lang-dotnet=\"`ChapEnabled`\" pulumi-lang-go=\"`chapEnabled`\" pulumi-lang-python=\"`chap_enabled`\" pulumi-lang-yaml=\"`chapEnabled`\" pulumi-lang-java=\"`chapEnabled`\"\u003e`chap_enabled`\u003c/span\u003e is  \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e is,The \u003cspan pulumi-lang-nodejs=\"`chapInPassword`\" pulumi-lang-dotnet=\"`ChapInPassword`\" pulumi-lang-go=\"`chapInPassword`\" pulumi-lang-python=\"`chap_in_password`\" pulumi-lang-yaml=\"`chapInPassword`\" pulumi-lang-java=\"`chapInPassword`\"\u003e`chap_in_password`\u003c/span\u003e is valid.\n"},"chapInUser":{"type":"string","description":"The Inbound CHAP user. The \u003cspan pulumi-lang-nodejs=\"`chapInUser`\" pulumi-lang-dotnet=\"`ChapInUser`\" pulumi-lang-go=\"`chapInUser`\" pulumi-lang-python=\"`chap_in_user`\" pulumi-lang-yaml=\"`chapInUser`\" pulumi-lang-java=\"`chapInUser`\"\u003e`chap_in_user`\u003c/span\u003e must be 1 to 32 characters in length, and can contain letters and digits. **NOTE:** When the \u003cspan pulumi-lang-nodejs=\"`chapEnabled`\" pulumi-lang-dotnet=\"`ChapEnabled`\" pulumi-lang-go=\"`chapEnabled`\" pulumi-lang-python=\"`chap_enabled`\" pulumi-lang-yaml=\"`chapEnabled`\" pulumi-lang-java=\"`chapEnabled`\"\u003e`chap_enabled`\u003c/span\u003e is  \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e is,The \u003cspan pulumi-lang-nodejs=\"`chapInPassword`\" pulumi-lang-dotnet=\"`ChapInPassword`\" pulumi-lang-go=\"`chapInPassword`\" pulumi-lang-python=\"`chap_in_password`\" pulumi-lang-yaml=\"`chapInPassword`\" pulumi-lang-java=\"`chapInPassword`\"\u003e`chap_in_password`\u003c/span\u003e is valid.\n"},"chunkSize":{"type":"integer","description":"The Block volume storage allocation unit.  Valid values: \u003cspan pulumi-lang-nodejs=\"`8192`\" pulumi-lang-dotnet=\"`8192`\" pulumi-lang-go=\"`8192`\" pulumi-lang-python=\"`8192`\" pulumi-lang-yaml=\"`8192`\" pulumi-lang-java=\"`8192`\"\u003e`8192`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16384`\" pulumi-lang-dotnet=\"`16384`\" pulumi-lang-go=\"`16384`\" pulumi-lang-python=\"`16384`\" pulumi-lang-yaml=\"`16384`\" pulumi-lang-java=\"`16384`\"\u003e`16384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`131072`\" pulumi-lang-dotnet=\"`131072`\" pulumi-lang-go=\"`131072`\" pulumi-lang-python=\"`131072`\" pulumi-lang-yaml=\"`131072`\" pulumi-lang-java=\"`131072`\"\u003e`131072`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e. Unit: `Byte`.\n","willReplaceOnChanges":true},"gatewayBlockVolumeName":{"type":"string","description":"The Block volume name. The name must be 1 to 32 characters in length, and can contain lower case letters and digits.\n","willReplaceOnChanges":true},"gatewayId":{"type":"string","description":"The Gateway ID.\n","willReplaceOnChanges":true},"indexId":{"type":"string","description":"The ID of the index.\n"},"isSourceDeletion":{"type":"boolean","description":"Whether to delete the source data. Default value \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`isSourceDeletion`\" pulumi-lang-dotnet=\"`IsSourceDeletion`\" pulumi-lang-go=\"`isSourceDeletion`\" pulumi-lang-python=\"`is_source_deletion`\" pulumi-lang-yaml=\"`isSourceDeletion`\" pulumi-lang-java=\"`isSourceDeletion`\"\u003e`is_source_deletion`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the data in the OSS Bucket on the cloud is also deleted when deleting the block gateway volume. Please operate with caution.\n"},"localPath":{"type":"string","description":"The Cache disk to local path. **NOTE:**  When the \u003cspan pulumi-lang-nodejs=\"`cacheMode`\" pulumi-lang-dotnet=\"`CacheMode`\" pulumi-lang-go=\"`cacheMode`\" pulumi-lang-python=\"`cache_mode`\" pulumi-lang-yaml=\"`cacheMode`\" pulumi-lang-java=\"`cacheMode`\"\u003e`cache_mode`\u003c/span\u003e is  `Cache` is,The \u003cspan pulumi-lang-nodejs=\"`chapInPassword`\" pulumi-lang-dotnet=\"`ChapInPassword`\" pulumi-lang-go=\"`chapInPassword`\" pulumi-lang-python=\"`chap_in_password`\" pulumi-lang-yaml=\"`chapInPassword`\" pulumi-lang-java=\"`chapInPassword`\"\u003e`chap_in_password`\u003c/span\u003e is valid.\n","willReplaceOnChanges":true},"ossBucketName":{"type":"string","description":"The name of the OSS Bucket.\n","willReplaceOnChanges":true},"ossBucketSsl":{"type":"boolean","description":"Whether to enable SSL access your OSS Buckets. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"ossEndpoint":{"type":"string","description":"The endpoint of the OSS Bucket.\n","willReplaceOnChanges":true},"protocol":{"type":"string","description":"The Protocol. Valid values: `iSCSI`.\n","willReplaceOnChanges":true},"recovery":{"type":"boolean","description":"The recovery.\n"},"size":{"type":"integer","description":"The Volume size. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`262144`\" pulumi-lang-dotnet=\"`262144`\" pulumi-lang-go=\"`262144`\" pulumi-lang-python=\"`262144`\" pulumi-lang-yaml=\"`262144`\" pulumi-lang-java=\"`262144`\"\u003e`262144`\u003c/span\u003e. Unit: `Byte`.\n"},"status":{"type":"string","description":"The status of volume. Valid values:\n"}},"type":"object"}},"alicloud:cloudstoragegateway/gatewayCacheDisk:GatewayCacheDisk":{"description":"Provides a Cloud Storage Gateway Gateway Cache Disk resource.\n\nFor information about Cloud Storage Gateway Gateway Cache Disk and how to use it, see [What is Gateway Cache Disk](https://www.alibabacloud.com/help/en/cloud-storage-gateway/latest/creategatewaycachedisk).\n\n\u003e **NOTE:** Available since v1.144.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultUuid = new random.index.Uuid(\"default\", {});\nconst defaultStorageBundle = new alicloud.cloudstoragegateway.StorageBundle(\"default\", {storageBundleName: std.replace({\n    text: defaultUuid.result,\n    search: \"-\",\n    replace: \"\",\n}).then(invoke =\u003e std.substr({\n    input: `tf-example-${invoke.result}`,\n    offset: 0,\n    length: 16,\n})).then(invoke =\u003e invoke.result)});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst _default = alicloud.cloudstoragegateway.getStocks({\n    gatewayClass: \"Standard\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: _default.then(_default =\u003e _default.stocks?.[0]?.zoneId),\n    vswitchName: name,\n});\nconst defaultGateway = new alicloud.cloudstoragegateway.Gateway(\"default\", {\n    gatewayName: name,\n    description: name,\n    gatewayClass: \"Standard\",\n    type: \"File\",\n    paymentType: \"PayAsYouGo\",\n    vswitchId: defaultSwitch.id,\n    releaseAfterExpiration: true,\n    publicNetworkBandwidth: 40,\n    storageBundleId: defaultStorageBundle.id,\n    location: \"Cloud\",\n});\nconst defaultGatewayCacheDisk = new alicloud.cloudstoragegateway.GatewayCacheDisk(\"default\", {\n    cacheDiskCategory: \"cloud_efficiency\",\n    gatewayId: defaultGateway.id,\n    cacheDiskSizeInGb: 50,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_uuid = random.index.Uuid(\"default\")\ndefault_storage_bundle = alicloud.cloudstoragegateway.StorageBundle(\"default\", storage_bundle_name=std.substr(input=f\"tf-example-{std.replace(text=default_uuid['result'],\n        search='-',\n        replace='').result}\",\n    offset=0,\n    length=16).result)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault = alicloud.cloudstoragegateway.get_stocks(gateway_class=\"Standard\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default.stocks[0].zone_id,\n    vswitch_name=name)\ndefault_gateway = alicloud.cloudstoragegateway.Gateway(\"default\",\n    gateway_name=name,\n    description=name,\n    gateway_class=\"Standard\",\n    type=\"File\",\n    payment_type=\"PayAsYouGo\",\n    vswitch_id=default_switch.id,\n    release_after_expiration=True,\n    public_network_bandwidth=40,\n    storage_bundle_id=default_storage_bundle.id,\n    location=\"Cloud\")\ndefault_gateway_cache_disk = alicloud.cloudstoragegateway.GatewayCacheDisk(\"default\",\n    cache_disk_category=\"cloud_efficiency\",\n    gateway_id=default_gateway.id,\n    cache_disk_size_in_gb=50)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultUuid = new Random.Index.Uuid(\"default\");\n\n    var defaultStorageBundle = new AliCloud.CloudStorageGateway.StorageBundle(\"default\", new()\n    {\n        StorageBundleName = Std.Replace.Invoke(new()\n        {\n            Text = defaultUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var @default = AliCloud.CloudStorageGateway.GetStocks.Invoke(new()\n    {\n        GatewayClass = \"Standard\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getStocksResult =\u003e getStocksResult.Stocks[0]?.ZoneId)),\n        VswitchName = name,\n    });\n\n    var defaultGateway = new AliCloud.CloudStorageGateway.Gateway(\"default\", new()\n    {\n        GatewayName = name,\n        Description = name,\n        GatewayClass = \"Standard\",\n        Type = \"File\",\n        PaymentType = \"PayAsYouGo\",\n        VswitchId = defaultSwitch.Id,\n        ReleaseAfterExpiration = true,\n        PublicNetworkBandwidth = 40,\n        StorageBundleId = defaultStorageBundle.Id,\n        Location = \"Cloud\",\n    });\n\n    var defaultGatewayCacheDisk = new AliCloud.CloudStorageGateway.GatewayCacheDisk(\"default\", new()\n    {\n        CacheDiskCategory = \"cloud_efficiency\",\n        GatewayId = defaultGateway.Id,\n        CacheDiskSizeInGb = 50,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultUuid, err := random.NewUuid(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    defaultUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStorageBundle, err := cloudstoragegateway.NewStorageBundle(ctx, \"default\", \u0026cloudstoragegateway.StorageBundleArgs{\n\t\t\tStorageBundleName: pulumi.String(invokeSubstr.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := cloudstoragegateway.GetStocks(ctx, \u0026cloudstoragegateway.GetStocksArgs{\n\t\t\tGatewayClass: pulumi.StringRef(\"Standard\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(_default.Stocks[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGateway, err := cloudstoragegateway.NewGateway(ctx, \"default\", \u0026cloudstoragegateway.GatewayArgs{\n\t\t\tGatewayName:            pulumi.String(name),\n\t\t\tDescription:            pulumi.String(name),\n\t\t\tGatewayClass:           pulumi.String(\"Standard\"),\n\t\t\tType:                   pulumi.String(\"File\"),\n\t\t\tPaymentType:            pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:              defaultSwitch.ID(),\n\t\t\tReleaseAfterExpiration: pulumi.Bool(true),\n\t\t\tPublicNetworkBandwidth: pulumi.Int(40),\n\t\t\tStorageBundleId:        defaultStorageBundle.ID(),\n\t\t\tLocation:               pulumi.String(\"Cloud\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudstoragegateway.NewGatewayCacheDisk(ctx, \"default\", \u0026cloudstoragegateway.GatewayCacheDiskArgs{\n\t\t\tCacheDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tGatewayId:         defaultGateway.ID(),\n\t\t\tCacheDiskSizeInGb: pulumi.Int(50),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Uuid;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundle;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundleArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ReplaceArgs;\nimport com.pulumi.std.inputs.SubstrArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.CloudstoragegatewayFunctions;\nimport com.pulumi.alicloud.cloudstoragegateway.inputs.GetStocksArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.Gateway;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayCacheDisk;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayCacheDiskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultUuid = new Uuid(\"defaultUuid\");\n\n        var defaultStorageBundle = new StorageBundle(\"defaultStorageBundle\", StorageBundleArgs.builder()\n            .storageBundleName(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(defaultUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        final var default = CloudstoragegatewayFunctions.getStocks(GetStocksArgs.builder()\n            .gatewayClass(\"Standard\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(default_.stocks()[0].zoneId())\n            .vswitchName(name)\n            .build());\n\n        var defaultGateway = new Gateway(\"defaultGateway\", GatewayArgs.builder()\n            .gatewayName(name)\n            .description(name)\n            .gatewayClass(\"Standard\")\n            .type(\"File\")\n            .paymentType(\"PayAsYouGo\")\n            .vswitchId(defaultSwitch.id())\n            .releaseAfterExpiration(true)\n            .publicNetworkBandwidth(40)\n            .storageBundleId(defaultStorageBundle.id())\n            .location(\"Cloud\")\n            .build());\n\n        var defaultGatewayCacheDisk = new GatewayCacheDisk(\"defaultGatewayCacheDisk\", GatewayCacheDiskArgs.builder()\n            .cacheDiskCategory(\"cloud_efficiency\")\n            .gatewayId(defaultGateway.id())\n            .cacheDiskSizeInGb(50)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultUuid:\n    type: random:Uuid\n    name: default\n  defaultStorageBundle:\n    type: alicloud:cloudstoragegateway:StorageBundle\n    name: default\n    properties:\n      storageBundleName:\n        fn::invoke:\n          function: std:substr\n          arguments:\n            input:\n              fn::join:\n                - \"\"\n                - - tf-example-\n                  - fn::invoke:\n                      function: std:replace\n                      arguments:\n                        text: ${defaultUuid.result}\n                        search: '-'\n                        replace: \"\"\n                      return: result\n            offset: 0\n            length: 16\n          return: result\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${default.stocks[0].zoneId}\n      vswitchName: ${name}\n  defaultGateway:\n    type: alicloud:cloudstoragegateway:Gateway\n    name: default\n    properties:\n      gatewayName: ${name}\n      description: ${name}\n      gatewayClass: Standard\n      type: File\n      paymentType: PayAsYouGo\n      vswitchId: ${defaultSwitch.id}\n      releaseAfterExpiration: true\n      publicNetworkBandwidth: 40\n      storageBundleId: ${defaultStorageBundle.id}\n      location: Cloud\n  defaultGatewayCacheDisk:\n    type: alicloud:cloudstoragegateway:GatewayCacheDisk\n    name: default\n    properties:\n      cacheDiskCategory: cloud_efficiency\n      gatewayId: ${defaultGateway.id}\n      cacheDiskSizeInGb: 50\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getStocks\n      arguments:\n        gatewayClass: Standard\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Storage Gateway Gateway Cache Disk can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudstoragegateway/gatewayCacheDisk:GatewayCacheDisk example \u003cgateway_id\u003e:\u003ccache_id\u003e:\u003clocal_file_path\u003e\n```\n\n","properties":{"cacheDiskCategory":{"type":"string","description":"The type of the cache disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e. **NOTE:** From version 1.227.0, \u003cspan pulumi-lang-nodejs=\"`cacheDiskCategory`\" pulumi-lang-dotnet=\"`CacheDiskCategory`\" pulumi-lang-go=\"`cacheDiskCategory`\" pulumi-lang-python=\"`cache_disk_category`\" pulumi-lang-yaml=\"`cacheDiskCategory`\" pulumi-lang-java=\"`cacheDiskCategory`\"\u003e`cache_disk_category`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e.\n"},"cacheDiskSizeInGb":{"type":"integer","description":"The capacity of the cache disk.\n"},"cacheId":{"type":"string","description":"The ID of the cache disk.\n"},"gatewayId":{"type":"string","description":"The ID of the gateway.\n"},"localFilePath":{"type":"string","description":"The path of the cache disk.\n"},"performanceLevel":{"type":"string","description":"The performance level (PL) of the Enterprise SSD (ESSD). Valid values: `PL1`, `PL2`, `PL3`. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`cacheDiskCategory`\" pulumi-lang-dotnet=\"`CacheDiskCategory`\" pulumi-lang-go=\"`cacheDiskCategory`\" pulumi-lang-python=\"`cache_disk_category`\" pulumi-lang-yaml=\"`cacheDiskCategory`\" pulumi-lang-java=\"`cacheDiskCategory`\"\u003e`cache_disk_category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e is required.\n"},"status":{"type":"integer","description":"The status of the Gateway Cache Disk.\n"}},"required":["cacheDiskCategory","cacheDiskSizeInGb","cacheId","gatewayId","localFilePath","status"],"inputProperties":{"cacheDiskCategory":{"type":"string","description":"The type of the cache disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e. **NOTE:** From version 1.227.0, \u003cspan pulumi-lang-nodejs=\"`cacheDiskCategory`\" pulumi-lang-dotnet=\"`CacheDiskCategory`\" pulumi-lang-go=\"`cacheDiskCategory`\" pulumi-lang-python=\"`cache_disk_category`\" pulumi-lang-yaml=\"`cacheDiskCategory`\" pulumi-lang-java=\"`cacheDiskCategory`\"\u003e`cache_disk_category`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e.\n","willReplaceOnChanges":true},"cacheDiskSizeInGb":{"type":"integer","description":"The capacity of the cache disk.\n"},"gatewayId":{"type":"string","description":"The ID of the gateway.\n","willReplaceOnChanges":true},"performanceLevel":{"type":"string","description":"The performance level (PL) of the Enterprise SSD (ESSD). Valid values: `PL1`, `PL2`, `PL3`. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`cacheDiskCategory`\" pulumi-lang-dotnet=\"`CacheDiskCategory`\" pulumi-lang-go=\"`cacheDiskCategory`\" pulumi-lang-python=\"`cache_disk_category`\" pulumi-lang-yaml=\"`cacheDiskCategory`\" pulumi-lang-java=\"`cacheDiskCategory`\"\u003e`cache_disk_category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e is required.\n","willReplaceOnChanges":true}},"requiredInputs":["cacheDiskSizeInGb","gatewayId"],"stateInputs":{"description":"Input properties used for looking up and filtering GatewayCacheDisk resources.\n","properties":{"cacheDiskCategory":{"type":"string","description":"The type of the cache disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e. **NOTE:** From version 1.227.0, \u003cspan pulumi-lang-nodejs=\"`cacheDiskCategory`\" pulumi-lang-dotnet=\"`CacheDiskCategory`\" pulumi-lang-go=\"`cacheDiskCategory`\" pulumi-lang-python=\"`cache_disk_category`\" pulumi-lang-yaml=\"`cacheDiskCategory`\" pulumi-lang-java=\"`cacheDiskCategory`\"\u003e`cache_disk_category`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e.\n","willReplaceOnChanges":true},"cacheDiskSizeInGb":{"type":"integer","description":"The capacity of the cache disk.\n"},"cacheId":{"type":"string","description":"The ID of the cache disk.\n"},"gatewayId":{"type":"string","description":"The ID of the gateway.\n","willReplaceOnChanges":true},"localFilePath":{"type":"string","description":"The path of the cache disk.\n"},"performanceLevel":{"type":"string","description":"The performance level (PL) of the Enterprise SSD (ESSD). Valid values: `PL1`, `PL2`, `PL3`. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`cacheDiskCategory`\" pulumi-lang-dotnet=\"`CacheDiskCategory`\" pulumi-lang-go=\"`cacheDiskCategory`\" pulumi-lang-python=\"`cache_disk_category`\" pulumi-lang-yaml=\"`cacheDiskCategory`\" pulumi-lang-java=\"`cacheDiskCategory`\"\u003e`cache_disk_category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"status":{"type":"integer","description":"The status of the Gateway Cache Disk.\n"}},"type":"object"}},"alicloud:cloudstoragegateway/gatewayFileShare:GatewayFileShare":{"description":"Provides a Cloud Storage Gateway Gateway File Share resource.\n\nFor information about Cloud Storage Gateway Gateway File Share and how to use it, see [What is Gateway File Share](https://www.alibabacloud.com/help/en/cloud-storage-gateway/latest/creategatewayfileshare).\n\n\u003e **NOTE:** Available since v1.144.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultUuid = new random.index.Uuid(\"default\", {});\nconst defaultStorageBundle = new alicloud.cloudstoragegateway.StorageBundle(\"default\", {storageBundleName: std.replace({\n    text: defaultUuid.result,\n    search: \"-\",\n    replace: \"\",\n}).then(invoke =\u003e std.substr({\n    input: `tf-example-${invoke.result}`,\n    offset: 0,\n    length: 16,\n})).then(invoke =\u003e invoke.result)});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: std.replace({\n    text: defaultUuid.result,\n    search: \"-\",\n    replace: \"\",\n}).then(invoke =\u003e std.substr({\n    input: `tf-example-${invoke.result}`,\n    offset: 0,\n    length: 16,\n})).then(invoke =\u003e invoke.result)});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst _default = alicloud.cloudstoragegateway.getStocks({\n    gatewayClass: \"Standard\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: _default.then(_default =\u003e _default.stocks?.[0]?.zoneId),\n    vswitchName: name,\n});\nconst defaultGateway = new alicloud.cloudstoragegateway.Gateway(\"default\", {\n    gatewayName: name,\n    description: name,\n    gatewayClass: \"Standard\",\n    type: \"File\",\n    paymentType: \"PayAsYouGo\",\n    vswitchId: defaultSwitch.id,\n    releaseAfterExpiration: true,\n    publicNetworkBandwidth: 40,\n    storageBundleId: defaultStorageBundle.id,\n    location: \"Cloud\",\n});\nconst defaultGatewayCacheDisk = new alicloud.cloudstoragegateway.GatewayCacheDisk(\"default\", {\n    cacheDiskCategory: \"cloud_efficiency\",\n    gatewayId: defaultGateway.id,\n    cacheDiskSizeInGb: 50,\n});\nconst defaultGatewayFileShare = new alicloud.cloudstoragegateway.GatewayFileShare(\"default\", {\n    gatewayFileShareName: name,\n    gatewayId: defaultGateway.id,\n    localPath: defaultGatewayCacheDisk.localFilePath,\n    ossBucketName: defaultBucket.bucket,\n    ossEndpoint: defaultBucket.extranetEndpoint,\n    protocol: \"NFS\",\n    remoteSync: true,\n    pollingInterval: 4500,\n    feLimit: 0,\n    backendLimit: 0,\n    cacheMode: \"Cache\",\n    squash: \"none\",\n    lagPeriod: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_uuid = random.index.Uuid(\"default\")\ndefault_storage_bundle = alicloud.cloudstoragegateway.StorageBundle(\"default\", storage_bundle_name=std.substr(input=f\"tf-example-{std.replace(text=default_uuid['result'],\n        search='-',\n        replace='').result}\",\n    offset=0,\n    length=16).result)\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=std.substr(input=f\"tf-example-{std.replace(text=default_uuid['result'],\n        search='-',\n        replace='').result}\",\n    offset=0,\n    length=16).result)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault = alicloud.cloudstoragegateway.get_stocks(gateway_class=\"Standard\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default.stocks[0].zone_id,\n    vswitch_name=name)\ndefault_gateway = alicloud.cloudstoragegateway.Gateway(\"default\",\n    gateway_name=name,\n    description=name,\n    gateway_class=\"Standard\",\n    type=\"File\",\n    payment_type=\"PayAsYouGo\",\n    vswitch_id=default_switch.id,\n    release_after_expiration=True,\n    public_network_bandwidth=40,\n    storage_bundle_id=default_storage_bundle.id,\n    location=\"Cloud\")\ndefault_gateway_cache_disk = alicloud.cloudstoragegateway.GatewayCacheDisk(\"default\",\n    cache_disk_category=\"cloud_efficiency\",\n    gateway_id=default_gateway.id,\n    cache_disk_size_in_gb=50)\ndefault_gateway_file_share = alicloud.cloudstoragegateway.GatewayFileShare(\"default\",\n    gateway_file_share_name=name,\n    gateway_id=default_gateway.id,\n    local_path=default_gateway_cache_disk.local_file_path,\n    oss_bucket_name=default_bucket.bucket,\n    oss_endpoint=default_bucket.extranet_endpoint,\n    protocol=\"NFS\",\n    remote_sync=True,\n    polling_interval=4500,\n    fe_limit=0,\n    backend_limit=0,\n    cache_mode=\"Cache\",\n    squash=\"none\",\n    lag_period=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultUuid = new Random.Index.Uuid(\"default\");\n\n    var defaultStorageBundle = new AliCloud.CloudStorageGateway.StorageBundle(\"default\", new()\n    {\n        StorageBundleName = Std.Replace.Invoke(new()\n        {\n            Text = defaultUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = Std.Replace.Invoke(new()\n        {\n            Text = defaultUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var @default = AliCloud.CloudStorageGateway.GetStocks.Invoke(new()\n    {\n        GatewayClass = \"Standard\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getStocksResult =\u003e getStocksResult.Stocks[0]?.ZoneId)),\n        VswitchName = name,\n    });\n\n    var defaultGateway = new AliCloud.CloudStorageGateway.Gateway(\"default\", new()\n    {\n        GatewayName = name,\n        Description = name,\n        GatewayClass = \"Standard\",\n        Type = \"File\",\n        PaymentType = \"PayAsYouGo\",\n        VswitchId = defaultSwitch.Id,\n        ReleaseAfterExpiration = true,\n        PublicNetworkBandwidth = 40,\n        StorageBundleId = defaultStorageBundle.Id,\n        Location = \"Cloud\",\n    });\n\n    var defaultGatewayCacheDisk = new AliCloud.CloudStorageGateway.GatewayCacheDisk(\"default\", new()\n    {\n        CacheDiskCategory = \"cloud_efficiency\",\n        GatewayId = defaultGateway.Id,\n        CacheDiskSizeInGb = 50,\n    });\n\n    var defaultGatewayFileShare = new AliCloud.CloudStorageGateway.GatewayFileShare(\"default\", new()\n    {\n        GatewayFileShareName = name,\n        GatewayId = defaultGateway.Id,\n        LocalPath = defaultGatewayCacheDisk.LocalFilePath,\n        OssBucketName = defaultBucket.BucketName,\n        OssEndpoint = defaultBucket.ExtranetEndpoint,\n        Protocol = \"NFS\",\n        RemoteSync = true,\n        PollingInterval = 4500,\n        FeLimit = 0,\n        BackendLimit = 0,\n        CacheMode = \"Cache\",\n        Squash = \"none\",\n        LagPeriod = 5,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultUuid, err := random.NewUuid(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    defaultUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStorageBundle, err := cloudstoragegateway.NewStorageBundle(ctx, \"default\", \u0026cloudstoragegateway.StorageBundleArgs{\n\t\t\tStorageBundleName: pulumi.String(invokeSubstr.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr1, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    defaultUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.String(invokeSubstr1.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := cloudstoragegateway.GetStocks(ctx, \u0026cloudstoragegateway.GetStocksArgs{\n\t\t\tGatewayClass: pulumi.StringRef(\"Standard\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(_default.Stocks[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGateway, err := cloudstoragegateway.NewGateway(ctx, \"default\", \u0026cloudstoragegateway.GatewayArgs{\n\t\t\tGatewayName:            pulumi.String(name),\n\t\t\tDescription:            pulumi.String(name),\n\t\t\tGatewayClass:           pulumi.String(\"Standard\"),\n\t\t\tType:                   pulumi.String(\"File\"),\n\t\t\tPaymentType:            pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:              defaultSwitch.ID(),\n\t\t\tReleaseAfterExpiration: pulumi.Bool(true),\n\t\t\tPublicNetworkBandwidth: pulumi.Int(40),\n\t\t\tStorageBundleId:        defaultStorageBundle.ID(),\n\t\t\tLocation:               pulumi.String(\"Cloud\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGatewayCacheDisk, err := cloudstoragegateway.NewGatewayCacheDisk(ctx, \"default\", \u0026cloudstoragegateway.GatewayCacheDiskArgs{\n\t\t\tCacheDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tGatewayId:         defaultGateway.ID(),\n\t\t\tCacheDiskSizeInGb: pulumi.Int(50),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudstoragegateway.NewGatewayFileShare(ctx, \"default\", \u0026cloudstoragegateway.GatewayFileShareArgs{\n\t\t\tGatewayFileShareName: pulumi.String(name),\n\t\t\tGatewayId:            defaultGateway.ID(),\n\t\t\tLocalPath:            defaultGatewayCacheDisk.LocalFilePath,\n\t\t\tOssBucketName:        defaultBucket.Bucket,\n\t\t\tOssEndpoint:          defaultBucket.ExtranetEndpoint,\n\t\t\tProtocol:             pulumi.String(\"NFS\"),\n\t\t\tRemoteSync:           pulumi.Bool(true),\n\t\t\tPollingInterval:      pulumi.Int(4500),\n\t\t\tFeLimit:              pulumi.Int(0),\n\t\t\tBackendLimit:         pulumi.Int(0),\n\t\t\tCacheMode:            pulumi.String(\"Cache\"),\n\t\t\tSquash:               pulumi.String(\"none\"),\n\t\t\tLagPeriod:            pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Uuid;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundle;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundleArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ReplaceArgs;\nimport com.pulumi.std.inputs.SubstrArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.CloudstoragegatewayFunctions;\nimport com.pulumi.alicloud.cloudstoragegateway.inputs.GetStocksArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.Gateway;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayCacheDisk;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayCacheDiskArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayFileShare;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayFileShareArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultUuid = new Uuid(\"defaultUuid\");\n\n        var defaultStorageBundle = new StorageBundle(\"defaultStorageBundle\", StorageBundleArgs.builder()\n            .storageBundleName(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(defaultUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(defaultUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        final var default = CloudstoragegatewayFunctions.getStocks(GetStocksArgs.builder()\n            .gatewayClass(\"Standard\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(default_.stocks()[0].zoneId())\n            .vswitchName(name)\n            .build());\n\n        var defaultGateway = new Gateway(\"defaultGateway\", GatewayArgs.builder()\n            .gatewayName(name)\n            .description(name)\n            .gatewayClass(\"Standard\")\n            .type(\"File\")\n            .paymentType(\"PayAsYouGo\")\n            .vswitchId(defaultSwitch.id())\n            .releaseAfterExpiration(true)\n            .publicNetworkBandwidth(40)\n            .storageBundleId(defaultStorageBundle.id())\n            .location(\"Cloud\")\n            .build());\n\n        var defaultGatewayCacheDisk = new GatewayCacheDisk(\"defaultGatewayCacheDisk\", GatewayCacheDiskArgs.builder()\n            .cacheDiskCategory(\"cloud_efficiency\")\n            .gatewayId(defaultGateway.id())\n            .cacheDiskSizeInGb(50)\n            .build());\n\n        var defaultGatewayFileShare = new GatewayFileShare(\"defaultGatewayFileShare\", GatewayFileShareArgs.builder()\n            .gatewayFileShareName(name)\n            .gatewayId(defaultGateway.id())\n            .localPath(defaultGatewayCacheDisk.localFilePath())\n            .ossBucketName(defaultBucket.bucket())\n            .ossEndpoint(defaultBucket.extranetEndpoint())\n            .protocol(\"NFS\")\n            .remoteSync(true)\n            .pollingInterval(4500)\n            .feLimit(0)\n            .backendLimit(0)\n            .cacheMode(\"Cache\")\n            .squash(\"none\")\n            .lagPeriod(5)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultUuid:\n    type: random:Uuid\n    name: default\n  defaultStorageBundle:\n    type: alicloud:cloudstoragegateway:StorageBundle\n    name: default\n    properties:\n      storageBundleName:\n        fn::invoke:\n          function: std:substr\n          arguments:\n            input:\n              fn::join:\n                - \"\"\n                - - tf-example-\n                  - fn::invoke:\n                      function: std:replace\n                      arguments:\n                        text: ${defaultUuid.result}\n                        search: '-'\n                        replace: \"\"\n                      return: result\n            offset: 0\n            length: 16\n          return: result\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket:\n        fn::invoke:\n          function: std:substr\n          arguments:\n            input:\n              fn::join:\n                - \"\"\n                - - tf-example-\n                  - fn::invoke:\n                      function: std:replace\n                      arguments:\n                        text: ${defaultUuid.result}\n                        search: '-'\n                        replace: \"\"\n                      return: result\n            offset: 0\n            length: 16\n          return: result\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${default.stocks[0].zoneId}\n      vswitchName: ${name}\n  defaultGateway:\n    type: alicloud:cloudstoragegateway:Gateway\n    name: default\n    properties:\n      gatewayName: ${name}\n      description: ${name}\n      gatewayClass: Standard\n      type: File\n      paymentType: PayAsYouGo\n      vswitchId: ${defaultSwitch.id}\n      releaseAfterExpiration: true\n      publicNetworkBandwidth: 40\n      storageBundleId: ${defaultStorageBundle.id}\n      location: Cloud\n  defaultGatewayCacheDisk:\n    type: alicloud:cloudstoragegateway:GatewayCacheDisk\n    name: default\n    properties:\n      cacheDiskCategory: cloud_efficiency\n      gatewayId: ${defaultGateway.id}\n      cacheDiskSizeInGb: 50\n  defaultGatewayFileShare:\n    type: alicloud:cloudstoragegateway:GatewayFileShare\n    name: default\n    properties:\n      gatewayFileShareName: ${name}\n      gatewayId: ${defaultGateway.id}\n      localPath: ${defaultGatewayCacheDisk.localFilePath}\n      ossBucketName: ${defaultBucket.bucket}\n      ossEndpoint: ${defaultBucket.extranetEndpoint}\n      protocol: NFS\n      remoteSync: true\n      pollingInterval: 4500\n      feLimit: 0\n      backendLimit: 0\n      cacheMode: Cache\n      squash: none\n      lagPeriod: 5\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getStocks\n      arguments:\n        gatewayClass: Standard\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Storage Gateway Gateway File Share can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudstoragegateway/gatewayFileShare:GatewayFileShare example \u003cgateway_id\u003e:\u003cindex_id\u003e\n```\n\n","properties":{"accessBasedEnumeration":{"type":"boolean","description":"Whether to enable Windows ABE, the prime minister, need windowsAcl parameter is set to true in the entry into force of. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `SMB`. Gateway version \u003e= 1.0.45 above support.\n"},"backendLimit":{"type":"integer","description":"The Max upload speed of the gateway file share. Unit: `MB/s`, 0 means unlimited. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`1280`\" pulumi-lang-dotnet=\"`1280`\" pulumi-lang-go=\"`1280`\" pulumi-lang-python=\"`1280`\" pulumi-lang-yaml=\"`1280`\" pulumi-lang-java=\"`1280`\"\u003e`1280`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. **NOTE:** at the same time if you have to limit the maximum write speed, maximum upload speed is no less than the maximum write speed.\n"},"browsable":{"type":"boolean","description":"The whether browsable of the gateway file share (that is, in the network neighborhood of whether you can find). The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `SMB`. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"bypassCacheRead":{"type":"boolean","description":"Direct reading OSS of the gateway file share.\n"},"cacheMode":{"type":"string","description":"The set up gateway file share cache mode. Valid values: `Cache` or `Sync`. `Cache`: cached mode. `Sync`: replication mode are available. Default value: `Cache`.\n"},"directIo":{"type":"boolean","description":"File sharing Whether to enable DirectIO (direct I/O mode for data transmission). Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"downloadLimit":{"type":"integer","description":"The maximum download speed of the gateway file share. Unit: `MB/s`. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means unlimited. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`1280`\" pulumi-lang-dotnet=\"`1280`\" pulumi-lang-go=\"`1280`\" pulumi-lang-python=\"`1280`\" pulumi-lang-yaml=\"`1280`\" pulumi-lang-java=\"`1280`\"\u003e`1280`\u003c/span\u003e. **NOTE:** only in copy mode and enable download file data can be set. only when the shared opens the reverse synchronization or acceded to by the speed synchronization Group when, this parameter will not take effect. Gateway version \u003e= 1.3.0 above support.\n"},"fastReclaim":{"type":"boolean","description":"The whether to enable Upload optimization of the gateway file share, which is suitable for data pure backup migration scenarios. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** Gateway version \u003e= 1.0.39 above support.\n"},"feLimit":{"type":"integer","description":"The maximum write speed of the gateway file share. Unit: `MB/s`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means unlimited. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`1280`\" pulumi-lang-dotnet=\"`1280`\" pulumi-lang-go=\"`1280`\" pulumi-lang-python=\"`1280`\" pulumi-lang-yaml=\"`1280`\" pulumi-lang-java=\"`1280`\"\u003e`1280`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"gatewayFileShareName":{"type":"string","description":"The name of the file share. Length from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e characters can contain lowercase letters, digits, (.), (_) Or (-), at the same time, must start with a lowercase letter.\n"},"gatewayId":{"type":"string","description":"The ID of the gateway.\n"},"ignoreDelete":{"type":"boolean","description":"The whether to ignore deleted of the gateway file share. After the opening of the Gateway side delete file or delete cloud (OSS) corresponding to the file. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`ignoreDelete`\" pulumi-lang-dotnet=\"`IgnoreDelete`\" pulumi-lang-go=\"`ignoreDelete`\" pulumi-lang-python=\"`ignore_delete`\" pulumi-lang-yaml=\"`ignoreDelete`\" pulumi-lang-java=\"`ignoreDelete`\"\u003e`ignore_delete`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`remoteSync`\" pulumi-lang-dotnet=\"`RemoteSync`\" pulumi-lang-go=\"`remoteSync`\" pulumi-lang-python=\"`remote_sync`\" pulumi-lang-yaml=\"`remoteSync`\" pulumi-lang-java=\"`remoteSync`\"\u003e`remote_sync`\u003c/span\u003e cannot be enabled simultaneously. Gateway version \u003e= 1.0.40 above support.\n"},"inPlace":{"type":"boolean","description":"The whether debris optimization of the gateway file share. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"indexId":{"type":"string","description":"The ID of the file share.\n"},"lagPeriod":{"type":"integer","description":"The synchronization delay, I.e. gateway local cache sync to Alibaba Cloud Object Storage Service (oss) of the delay time. Unit: `Seconds`. Value range: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`120`\" pulumi-lang-dotnet=\"`120`\" pulumi-lang-go=\"`120`\" pulumi-lang-python=\"`120`\" pulumi-lang-yaml=\"`120`\" pulumi-lang-java=\"`120`\"\u003e`120`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. **NOTE:** Gateway version \u003e= 1.0.40 above support.\n"},"localPath":{"type":"string","description":"The cache disk inside the device name.\n"},"nfsV4Optimization":{"type":"boolean","description":"The set up gateway file share NFS protocol, whether to enable NFS v4 optimization improve Mount Upload efficiency. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** If it is enabled, NFS V3 cannot be mounted. The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `NFS`. Gateway version \u003e= 1.2.0 above support.\n"},"ossBucketName":{"type":"string","description":"The name of the OSS Bucket.\n"},"ossBucketSsl":{"type":"boolean","description":"Whether they are using SSL connect to OSS Bucket.\n"},"ossEndpoint":{"type":"string","description":"The gateway file share corresponds to the Object Storage SERVICE (OSS), Bucket Endpoint. **NOTE:** distinguish between intranet and internet Endpoint. We recommend that if the OSS Bucket and the gateway is in the same Region is use the RDS intranet IP Endpoint: `oss-cn-hangzhou-internal.aliyuncs.com`.\n"},"partialSyncPaths":{"type":"string","description":"In part mode, the directory path group JSON format.\n"},"pathPrefix":{"type":"string","description":"The subdirectory path under the object storage (OSS) bucket corresponding to the file share. If it is blank, it means the root directory of the bucket.\n"},"pollingInterval":{"type":"integer","description":"The reverse synchronization time intervals of the gateway file share. Value range: \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`36000`\" pulumi-lang-dotnet=\"`36000`\" pulumi-lang-go=\"`36000`\" pulumi-lang-python=\"`36000`\" pulumi-lang-yaml=\"`36000`\" pulumi-lang-java=\"`36000`\"\u003e`36000`\u003c/span\u003e. **NOTE:** in copy mode + reverse synchronization is enabled Download file data, value range: \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`36000`\" pulumi-lang-dotnet=\"`36000`\" pulumi-lang-go=\"`36000`\" pulumi-lang-python=\"`36000`\" pulumi-lang-yaml=\"`36000`\" pulumi-lang-java=\"`36000`\"\u003e`36000`\u003c/span\u003e.\n"},"protocol":{"type":"string","description":"Share types. Valid values: `SMB`, `NFS`.\n"},"remoteSync":{"type":"boolean","description":"Whether to enable reverse synchronization of the gateway file share. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"remoteSyncDownload":{"type":"boolean","description":"Copy mode, whether to download the file data. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** only when the attribute \u003cspan pulumi-lang-nodejs=\"`remoteSync`\" pulumi-lang-dotnet=\"`RemoteSync`\" pulumi-lang-go=\"`remoteSync`\" pulumi-lang-python=\"`remote_sync`\" pulumi-lang-yaml=\"`remoteSync`\" pulumi-lang-java=\"`remoteSync`\"\u003e`remote_sync`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or acceded to by the speed synchronization group, this parameter will not take effect.\n"},"roClientList":{"type":"string","description":"File sharing NFS read-only client list (IP address or IP address range). Use commas (,) to separate multiple clients.\n"},"roUserList":{"type":"string","description":"The read-only client list. When Protocol for Server Message Block (SMB) to go back to.\n"},"rwClientList":{"type":"string","description":"Read and write the client list. When Protocol NFS is returned when the status is.\n"},"rwUserList":{"type":"string","description":"Read-write user list. When Protocol for Server Message Block (SMB) to go back to.\n"},"squash":{"type":"string","description":"The NFS protocol user mapping of the gateway file share. Valid values: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rootSquash`\" pulumi-lang-dotnet=\"`RootSquash`\" pulumi-lang-go=\"`rootSquash`\" pulumi-lang-python=\"`root_squash`\" pulumi-lang-yaml=\"`rootSquash`\" pulumi-lang-java=\"`rootSquash`\"\u003e`root_squash`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`allSquash`\" pulumi-lang-dotnet=\"`AllSquash`\" pulumi-lang-go=\"`allSquash`\" pulumi-lang-python=\"`all_squash`\" pulumi-lang-yaml=\"`allSquash`\" pulumi-lang-java=\"`allSquash`\"\u003e`all_squash`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`allAnonymous`\" pulumi-lang-dotnet=\"`AllAnonymous`\" pulumi-lang-go=\"`allAnonymous`\" pulumi-lang-python=\"`all_anonymous`\" pulumi-lang-yaml=\"`allAnonymous`\" pulumi-lang-java=\"`allAnonymous`\"\u003e`all_anonymous`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. **NOTE:** The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `NFS`.\n"},"supportArchive":{"type":"boolean","description":"Whether to support the archive transparent read.\n"},"transferAcceleration":{"type":"boolean","description":"The set up gateway file share whether to enable transmission acceleration needs corresponding OSS Bucket enabled transport acceleration. **NOTE:** Gateway version \u003e= 1.3.0 above support.\n"},"windowsAcl":{"type":"boolean","description":"Whether to enable by Windows access list (requires AD domain) the permissions control. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `SMB`. Gateway version \u003e= 1.0.45 above support.\n"}},"required":["accessBasedEnumeration","backendLimit","browsable","bypassCacheRead","cacheMode","directIo","downloadLimit","fastReclaim","feLimit","gatewayFileShareName","gatewayId","ignoreDelete","inPlace","indexId","lagPeriod","localPath","nfsV4Optimization","ossBucketName","ossBucketSsl","ossEndpoint","protocol","remoteSync","remoteSyncDownload","squash","supportArchive","transferAcceleration","windowsAcl"],"inputProperties":{"accessBasedEnumeration":{"type":"boolean","description":"Whether to enable Windows ABE, the prime minister, need windowsAcl parameter is set to true in the entry into force of. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `SMB`. Gateway version \u003e= 1.0.45 above support.\n"},"backendLimit":{"type":"integer","description":"The Max upload speed of the gateway file share. Unit: `MB/s`, 0 means unlimited. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`1280`\" pulumi-lang-dotnet=\"`1280`\" pulumi-lang-go=\"`1280`\" pulumi-lang-python=\"`1280`\" pulumi-lang-yaml=\"`1280`\" pulumi-lang-java=\"`1280`\"\u003e`1280`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. **NOTE:** at the same time if you have to limit the maximum write speed, maximum upload speed is no less than the maximum write speed.\n"},"browsable":{"type":"boolean","description":"The whether browsable of the gateway file share (that is, in the network neighborhood of whether you can find). The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `SMB`. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"bypassCacheRead":{"type":"boolean","description":"Direct reading OSS of the gateway file share.\n"},"cacheMode":{"type":"string","description":"The set up gateway file share cache mode. Valid values: `Cache` or `Sync`. `Cache`: cached mode. `Sync`: replication mode are available. Default value: `Cache`.\n","willReplaceOnChanges":true},"directIo":{"type":"boolean","description":"File sharing Whether to enable DirectIO (direct I/O mode for data transmission). Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"downloadLimit":{"type":"integer","description":"The maximum download speed of the gateway file share. Unit: `MB/s`. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means unlimited. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`1280`\" pulumi-lang-dotnet=\"`1280`\" pulumi-lang-go=\"`1280`\" pulumi-lang-python=\"`1280`\" pulumi-lang-yaml=\"`1280`\" pulumi-lang-java=\"`1280`\"\u003e`1280`\u003c/span\u003e. **NOTE:** only in copy mode and enable download file data can be set. only when the shared opens the reverse synchronization or acceded to by the speed synchronization Group when, this parameter will not take effect. Gateway version \u003e= 1.3.0 above support.\n"},"fastReclaim":{"type":"boolean","description":"The whether to enable Upload optimization of the gateway file share, which is suitable for data pure backup migration scenarios. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** Gateway version \u003e= 1.0.39 above support.\n"},"feLimit":{"type":"integer","description":"The maximum write speed of the gateway file share. Unit: `MB/s`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means unlimited. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`1280`\" pulumi-lang-dotnet=\"`1280`\" pulumi-lang-go=\"`1280`\" pulumi-lang-python=\"`1280`\" pulumi-lang-yaml=\"`1280`\" pulumi-lang-java=\"`1280`\"\u003e`1280`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"gatewayFileShareName":{"type":"string","description":"The name of the file share. Length from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e characters can contain lowercase letters, digits, (.), (_) Or (-), at the same time, must start with a lowercase letter.\n","willReplaceOnChanges":true},"gatewayId":{"type":"string","description":"The ID of the gateway.\n","willReplaceOnChanges":true},"ignoreDelete":{"type":"boolean","description":"The whether to ignore deleted of the gateway file share. After the opening of the Gateway side delete file or delete cloud (OSS) corresponding to the file. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`ignoreDelete`\" pulumi-lang-dotnet=\"`IgnoreDelete`\" pulumi-lang-go=\"`ignoreDelete`\" pulumi-lang-python=\"`ignore_delete`\" pulumi-lang-yaml=\"`ignoreDelete`\" pulumi-lang-java=\"`ignoreDelete`\"\u003e`ignore_delete`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`remoteSync`\" pulumi-lang-dotnet=\"`RemoteSync`\" pulumi-lang-go=\"`remoteSync`\" pulumi-lang-python=\"`remote_sync`\" pulumi-lang-yaml=\"`remoteSync`\" pulumi-lang-java=\"`remoteSync`\"\u003e`remote_sync`\u003c/span\u003e cannot be enabled simultaneously. Gateway version \u003e= 1.0.40 above support.\n"},"inPlace":{"type":"boolean","description":"The whether debris optimization of the gateway file share. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"lagPeriod":{"type":"integer","description":"The synchronization delay, I.e. gateway local cache sync to Alibaba Cloud Object Storage Service (oss) of the delay time. Unit: `Seconds`. Value range: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`120`\" pulumi-lang-dotnet=\"`120`\" pulumi-lang-go=\"`120`\" pulumi-lang-python=\"`120`\" pulumi-lang-yaml=\"`120`\" pulumi-lang-java=\"`120`\"\u003e`120`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. **NOTE:** Gateway version \u003e= 1.0.40 above support.\n"},"localPath":{"type":"string","description":"The cache disk inside the device name.\n","willReplaceOnChanges":true},"nfsV4Optimization":{"type":"boolean","description":"The set up gateway file share NFS protocol, whether to enable NFS v4 optimization improve Mount Upload efficiency. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** If it is enabled, NFS V3 cannot be mounted. The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `NFS`. Gateway version \u003e= 1.2.0 above support.\n"},"ossBucketName":{"type":"string","description":"The name of the OSS Bucket.\n","willReplaceOnChanges":true},"ossBucketSsl":{"type":"boolean","description":"Whether they are using SSL connect to OSS Bucket.\n","willReplaceOnChanges":true},"ossEndpoint":{"type":"string","description":"The gateway file share corresponds to the Object Storage SERVICE (OSS), Bucket Endpoint. **NOTE:** distinguish between intranet and internet Endpoint. We recommend that if the OSS Bucket and the gateway is in the same Region is use the RDS intranet IP Endpoint: `oss-cn-hangzhou-internal.aliyuncs.com`.\n","willReplaceOnChanges":true},"partialSyncPaths":{"type":"string","description":"In part mode, the directory path group JSON format.\n","willReplaceOnChanges":true},"pathPrefix":{"type":"string","description":"The subdirectory path under the object storage (OSS) bucket corresponding to the file share. If it is blank, it means the root directory of the bucket.\n","willReplaceOnChanges":true},"pollingInterval":{"type":"integer","description":"The reverse synchronization time intervals of the gateway file share. Value range: \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`36000`\" pulumi-lang-dotnet=\"`36000`\" pulumi-lang-go=\"`36000`\" pulumi-lang-python=\"`36000`\" pulumi-lang-yaml=\"`36000`\" pulumi-lang-java=\"`36000`\"\u003e`36000`\u003c/span\u003e. **NOTE:** in copy mode + reverse synchronization is enabled Download file data, value range: \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`36000`\" pulumi-lang-dotnet=\"`36000`\" pulumi-lang-go=\"`36000`\" pulumi-lang-python=\"`36000`\" pulumi-lang-yaml=\"`36000`\" pulumi-lang-java=\"`36000`\"\u003e`36000`\u003c/span\u003e.\n"},"protocol":{"type":"string","description":"Share types. Valid values: `SMB`, `NFS`.\n","willReplaceOnChanges":true},"remoteSync":{"type":"boolean","description":"Whether to enable reverse synchronization of the gateway file share. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"remoteSyncDownload":{"type":"boolean","description":"Copy mode, whether to download the file data. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** only when the attribute \u003cspan pulumi-lang-nodejs=\"`remoteSync`\" pulumi-lang-dotnet=\"`RemoteSync`\" pulumi-lang-go=\"`remoteSync`\" pulumi-lang-python=\"`remote_sync`\" pulumi-lang-yaml=\"`remoteSync`\" pulumi-lang-java=\"`remoteSync`\"\u003e`remote_sync`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or acceded to by the speed synchronization group, this parameter will not take effect.\n"},"roClientList":{"type":"string","description":"File sharing NFS read-only client list (IP address or IP address range). Use commas (,) to separate multiple clients.\n"},"roUserList":{"type":"string","description":"The read-only client list. When Protocol for Server Message Block (SMB) to go back to.\n"},"rwClientList":{"type":"string","description":"Read and write the client list. When Protocol NFS is returned when the status is.\n"},"rwUserList":{"type":"string","description":"Read-write user list. When Protocol for Server Message Block (SMB) to go back to.\n"},"squash":{"type":"string","description":"The NFS protocol user mapping of the gateway file share. Valid values: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rootSquash`\" pulumi-lang-dotnet=\"`RootSquash`\" pulumi-lang-go=\"`rootSquash`\" pulumi-lang-python=\"`root_squash`\" pulumi-lang-yaml=\"`rootSquash`\" pulumi-lang-java=\"`rootSquash`\"\u003e`root_squash`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`allSquash`\" pulumi-lang-dotnet=\"`AllSquash`\" pulumi-lang-go=\"`allSquash`\" pulumi-lang-python=\"`all_squash`\" pulumi-lang-yaml=\"`allSquash`\" pulumi-lang-java=\"`allSquash`\"\u003e`all_squash`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`allAnonymous`\" pulumi-lang-dotnet=\"`AllAnonymous`\" pulumi-lang-go=\"`allAnonymous`\" pulumi-lang-python=\"`all_anonymous`\" pulumi-lang-yaml=\"`allAnonymous`\" pulumi-lang-java=\"`allAnonymous`\"\u003e`all_anonymous`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. **NOTE:** The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `NFS`.\n"},"supportArchive":{"type":"boolean","description":"Whether to support the archive transparent read.\n","willReplaceOnChanges":true},"transferAcceleration":{"type":"boolean","description":"The set up gateway file share whether to enable transmission acceleration needs corresponding OSS Bucket enabled transport acceleration. **NOTE:** Gateway version \u003e= 1.3.0 above support.\n"},"windowsAcl":{"type":"boolean","description":"Whether to enable by Windows access list (requires AD domain) the permissions control. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `SMB`. Gateway version \u003e= 1.0.45 above support.\n"}},"requiredInputs":["gatewayFileShareName","gatewayId","localPath","ossBucketName","ossEndpoint","protocol"],"stateInputs":{"description":"Input properties used for looking up and filtering GatewayFileShare resources.\n","properties":{"accessBasedEnumeration":{"type":"boolean","description":"Whether to enable Windows ABE, the prime minister, need windowsAcl parameter is set to true in the entry into force of. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `SMB`. Gateway version \u003e= 1.0.45 above support.\n"},"backendLimit":{"type":"integer","description":"The Max upload speed of the gateway file share. Unit: `MB/s`, 0 means unlimited. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`1280`\" pulumi-lang-dotnet=\"`1280`\" pulumi-lang-go=\"`1280`\" pulumi-lang-python=\"`1280`\" pulumi-lang-yaml=\"`1280`\" pulumi-lang-java=\"`1280`\"\u003e`1280`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. **NOTE:** at the same time if you have to limit the maximum write speed, maximum upload speed is no less than the maximum write speed.\n"},"browsable":{"type":"boolean","description":"The whether browsable of the gateway file share (that is, in the network neighborhood of whether you can find). The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `SMB`. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"bypassCacheRead":{"type":"boolean","description":"Direct reading OSS of the gateway file share.\n"},"cacheMode":{"type":"string","description":"The set up gateway file share cache mode. Valid values: `Cache` or `Sync`. `Cache`: cached mode. `Sync`: replication mode are available. Default value: `Cache`.\n","willReplaceOnChanges":true},"directIo":{"type":"boolean","description":"File sharing Whether to enable DirectIO (direct I/O mode for data transmission). Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"downloadLimit":{"type":"integer","description":"The maximum download speed of the gateway file share. Unit: `MB/s`. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means unlimited. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`1280`\" pulumi-lang-dotnet=\"`1280`\" pulumi-lang-go=\"`1280`\" pulumi-lang-python=\"`1280`\" pulumi-lang-yaml=\"`1280`\" pulumi-lang-java=\"`1280`\"\u003e`1280`\u003c/span\u003e. **NOTE:** only in copy mode and enable download file data can be set. only when the shared opens the reverse synchronization or acceded to by the speed synchronization Group when, this parameter will not take effect. Gateway version \u003e= 1.3.0 above support.\n"},"fastReclaim":{"type":"boolean","description":"The whether to enable Upload optimization of the gateway file share, which is suitable for data pure backup migration scenarios. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** Gateway version \u003e= 1.0.39 above support.\n"},"feLimit":{"type":"integer","description":"The maximum write speed of the gateway file share. Unit: `MB/s`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means unlimited. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`1280`\" pulumi-lang-dotnet=\"`1280`\" pulumi-lang-go=\"`1280`\" pulumi-lang-python=\"`1280`\" pulumi-lang-yaml=\"`1280`\" pulumi-lang-java=\"`1280`\"\u003e`1280`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"gatewayFileShareName":{"type":"string","description":"The name of the file share. Length from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e characters can contain lowercase letters, digits, (.), (_) Or (-), at the same time, must start with a lowercase letter.\n","willReplaceOnChanges":true},"gatewayId":{"type":"string","description":"The ID of the gateway.\n","willReplaceOnChanges":true},"ignoreDelete":{"type":"boolean","description":"The whether to ignore deleted of the gateway file share. After the opening of the Gateway side delete file or delete cloud (OSS) corresponding to the file. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`ignoreDelete`\" pulumi-lang-dotnet=\"`IgnoreDelete`\" pulumi-lang-go=\"`ignoreDelete`\" pulumi-lang-python=\"`ignore_delete`\" pulumi-lang-yaml=\"`ignoreDelete`\" pulumi-lang-java=\"`ignoreDelete`\"\u003e`ignore_delete`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`remoteSync`\" pulumi-lang-dotnet=\"`RemoteSync`\" pulumi-lang-go=\"`remoteSync`\" pulumi-lang-python=\"`remote_sync`\" pulumi-lang-yaml=\"`remoteSync`\" pulumi-lang-java=\"`remoteSync`\"\u003e`remote_sync`\u003c/span\u003e cannot be enabled simultaneously. Gateway version \u003e= 1.0.40 above support.\n"},"inPlace":{"type":"boolean","description":"The whether debris optimization of the gateway file share. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"indexId":{"type":"string","description":"The ID of the file share.\n"},"lagPeriod":{"type":"integer","description":"The synchronization delay, I.e. gateway local cache sync to Alibaba Cloud Object Storage Service (oss) of the delay time. Unit: `Seconds`. Value range: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`120`\" pulumi-lang-dotnet=\"`120`\" pulumi-lang-go=\"`120`\" pulumi-lang-python=\"`120`\" pulumi-lang-yaml=\"`120`\" pulumi-lang-java=\"`120`\"\u003e`120`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. **NOTE:** Gateway version \u003e= 1.0.40 above support.\n"},"localPath":{"type":"string","description":"The cache disk inside the device name.\n","willReplaceOnChanges":true},"nfsV4Optimization":{"type":"boolean","description":"The set up gateway file share NFS protocol, whether to enable NFS v4 optimization improve Mount Upload efficiency. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** If it is enabled, NFS V3 cannot be mounted. The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `NFS`. Gateway version \u003e= 1.2.0 above support.\n"},"ossBucketName":{"type":"string","description":"The name of the OSS Bucket.\n","willReplaceOnChanges":true},"ossBucketSsl":{"type":"boolean","description":"Whether they are using SSL connect to OSS Bucket.\n","willReplaceOnChanges":true},"ossEndpoint":{"type":"string","description":"The gateway file share corresponds to the Object Storage SERVICE (OSS), Bucket Endpoint. **NOTE:** distinguish between intranet and internet Endpoint. We recommend that if the OSS Bucket and the gateway is in the same Region is use the RDS intranet IP Endpoint: `oss-cn-hangzhou-internal.aliyuncs.com`.\n","willReplaceOnChanges":true},"partialSyncPaths":{"type":"string","description":"In part mode, the directory path group JSON format.\n","willReplaceOnChanges":true},"pathPrefix":{"type":"string","description":"The subdirectory path under the object storage (OSS) bucket corresponding to the file share. If it is blank, it means the root directory of the bucket.\n","willReplaceOnChanges":true},"pollingInterval":{"type":"integer","description":"The reverse synchronization time intervals of the gateway file share. Value range: \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`36000`\" pulumi-lang-dotnet=\"`36000`\" pulumi-lang-go=\"`36000`\" pulumi-lang-python=\"`36000`\" pulumi-lang-yaml=\"`36000`\" pulumi-lang-java=\"`36000`\"\u003e`36000`\u003c/span\u003e. **NOTE:** in copy mode + reverse synchronization is enabled Download file data, value range: \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e ~ \u003cspan pulumi-lang-nodejs=\"`36000`\" pulumi-lang-dotnet=\"`36000`\" pulumi-lang-go=\"`36000`\" pulumi-lang-python=\"`36000`\" pulumi-lang-yaml=\"`36000`\" pulumi-lang-java=\"`36000`\"\u003e`36000`\u003c/span\u003e.\n"},"protocol":{"type":"string","description":"Share types. Valid values: `SMB`, `NFS`.\n","willReplaceOnChanges":true},"remoteSync":{"type":"boolean","description":"Whether to enable reverse synchronization of the gateway file share. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"remoteSyncDownload":{"type":"boolean","description":"Copy mode, whether to download the file data. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** only when the attribute \u003cspan pulumi-lang-nodejs=\"`remoteSync`\" pulumi-lang-dotnet=\"`RemoteSync`\" pulumi-lang-go=\"`remoteSync`\" pulumi-lang-python=\"`remote_sync`\" pulumi-lang-yaml=\"`remoteSync`\" pulumi-lang-java=\"`remoteSync`\"\u003e`remote_sync`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or acceded to by the speed synchronization group, this parameter will not take effect.\n"},"roClientList":{"type":"string","description":"File sharing NFS read-only client list (IP address or IP address range). Use commas (,) to separate multiple clients.\n"},"roUserList":{"type":"string","description":"The read-only client list. When Protocol for Server Message Block (SMB) to go back to.\n"},"rwClientList":{"type":"string","description":"Read and write the client list. When Protocol NFS is returned when the status is.\n"},"rwUserList":{"type":"string","description":"Read-write user list. When Protocol for Server Message Block (SMB) to go back to.\n"},"squash":{"type":"string","description":"The NFS protocol user mapping of the gateway file share. Valid values: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rootSquash`\" pulumi-lang-dotnet=\"`RootSquash`\" pulumi-lang-go=\"`rootSquash`\" pulumi-lang-python=\"`root_squash`\" pulumi-lang-yaml=\"`rootSquash`\" pulumi-lang-java=\"`rootSquash`\"\u003e`root_squash`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`allSquash`\" pulumi-lang-dotnet=\"`AllSquash`\" pulumi-lang-go=\"`allSquash`\" pulumi-lang-python=\"`all_squash`\" pulumi-lang-yaml=\"`allSquash`\" pulumi-lang-java=\"`allSquash`\"\u003e`all_squash`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`allAnonymous`\" pulumi-lang-dotnet=\"`AllAnonymous`\" pulumi-lang-go=\"`allAnonymous`\" pulumi-lang-python=\"`all_anonymous`\" pulumi-lang-yaml=\"`allAnonymous`\" pulumi-lang-java=\"`allAnonymous`\"\u003e`all_anonymous`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. **NOTE:** The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `NFS`.\n"},"supportArchive":{"type":"boolean","description":"Whether to support the archive transparent read.\n","willReplaceOnChanges":true},"transferAcceleration":{"type":"boolean","description":"The set up gateway file share whether to enable transmission acceleration needs corresponding OSS Bucket enabled transport acceleration. **NOTE:** Gateway version \u003e= 1.3.0 above support.\n"},"windowsAcl":{"type":"boolean","description":"Whether to enable by Windows access list (requires AD domain) the permissions control. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `SMB`. Gateway version \u003e= 1.0.45 above support.\n"}},"type":"object"}},"alicloud:cloudstoragegateway/gatewayLogging:GatewayLogging":{"description":"Provides a Cloud Storage Gateway Gateway Logging resource.\n\nFor information about Cloud Storage Gateway Gateway Logging and how to use it, see [What is Gateway Logging](https://www.alibabacloud.com/help/en/cloud-storage-gateway/latest/creategatewaylogging).\n\n\u003e **NOTE:** Available since v1.144.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultUuid = new random.index.Uuid(\"default\", {});\nconst defaultStorageBundle = new alicloud.cloudstoragegateway.StorageBundle(\"default\", {storageBundleName: std.replace({\n    text: defaultUuid.result,\n    search: \"-\",\n    replace: \"\",\n}).then(invoke =\u003e std.substr({\n    input: `tf-example-${invoke.result}`,\n    offset: 0,\n    length: 16,\n})).then(invoke =\u003e invoke.result)});\nconst defaultProject = new alicloud.log.Project(\"default\", {\n    projectName: std.replace({\n        text: defaultUuid.result,\n        search: \"-\",\n        replace: \"\",\n    }).then(invoke =\u003e std.substr({\n        input: `tf-example-${invoke.result}`,\n        offset: 0,\n        length: 16,\n    })).then(invoke =\u003e invoke.result),\n    description: \"terraform-example\",\n});\nconst defaultStore = new alicloud.log.Store(\"default\", {\n    projectName: defaultProject.projectName,\n    logstoreName: name,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultGateway = new alicloud.cloudstoragegateway.Gateway(\"default\", {\n    gatewayName: name,\n    description: name,\n    gatewayClass: \"Standard\",\n    type: \"File\",\n    paymentType: \"PayAsYouGo\",\n    vswitchId: defaultSwitch.id,\n    releaseAfterExpiration: false,\n    publicNetworkBandwidth: 40,\n    storageBundleId: defaultStorageBundle.id,\n    location: \"Cloud\",\n});\nconst defaultGatewayLogging = new alicloud.cloudstoragegateway.GatewayLogging(\"default\", {\n    gatewayId: defaultGateway.id,\n    slsLogstore: defaultStore.logstoreName,\n    slsProject: defaultProject.projectName,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_uuid = random.index.Uuid(\"default\")\ndefault_storage_bundle = alicloud.cloudstoragegateway.StorageBundle(\"default\", storage_bundle_name=std.substr(input=f\"tf-example-{std.replace(text=default_uuid['result'],\n        search='-',\n        replace='').result}\",\n    offset=0,\n    length=16).result)\ndefault_project = alicloud.log.Project(\"default\",\n    project_name=std.substr(input=f\"tf-example-{std.replace(text=default_uuid['result'],\n            search='-',\n            replace='').result}\",\n        offset=0,\n        length=16).result,\n    description=\"terraform-example\")\ndefault_store = alicloud.log.Store(\"default\",\n    project_name=default_project.project_name,\n    logstore_name=name,\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_gateway = alicloud.cloudstoragegateway.Gateway(\"default\",\n    gateway_name=name,\n    description=name,\n    gateway_class=\"Standard\",\n    type=\"File\",\n    payment_type=\"PayAsYouGo\",\n    vswitch_id=default_switch.id,\n    release_after_expiration=False,\n    public_network_bandwidth=40,\n    storage_bundle_id=default_storage_bundle.id,\n    location=\"Cloud\")\ndefault_gateway_logging = alicloud.cloudstoragegateway.GatewayLogging(\"default\",\n    gateway_id=default_gateway.id,\n    sls_logstore=default_store.logstore_name,\n    sls_project=default_project.project_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultUuid = new Random.Index.Uuid(\"default\");\n\n    var defaultStorageBundle = new AliCloud.CloudStorageGateway.StorageBundle(\"default\", new()\n    {\n        StorageBundleName = Std.Replace.Invoke(new()\n        {\n            Text = defaultUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultProject = new AliCloud.Log.Project(\"default\", new()\n    {\n        ProjectName = Std.Replace.Invoke(new()\n        {\n            Text = defaultUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n        Description = \"terraform-example\",\n    });\n\n    var defaultStore = new AliCloud.Log.Store(\"default\", new()\n    {\n        ProjectName = defaultProject.ProjectName,\n        LogstoreName = name,\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultGateway = new AliCloud.CloudStorageGateway.Gateway(\"default\", new()\n    {\n        GatewayName = name,\n        Description = name,\n        GatewayClass = \"Standard\",\n        Type = \"File\",\n        PaymentType = \"PayAsYouGo\",\n        VswitchId = defaultSwitch.Id,\n        ReleaseAfterExpiration = false,\n        PublicNetworkBandwidth = 40,\n        StorageBundleId = defaultStorageBundle.Id,\n        Location = \"Cloud\",\n    });\n\n    var defaultGatewayLogging = new AliCloud.CloudStorageGateway.GatewayLogging(\"default\", new()\n    {\n        GatewayId = defaultGateway.Id,\n        SlsLogstore = defaultStore.LogstoreName,\n        SlsProject = defaultProject.ProjectName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultUuid, err := random.NewUuid(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    defaultUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStorageBundle, err := cloudstoragegateway.NewStorageBundle(ctx, \"default\", \u0026cloudstoragegateway.StorageBundleArgs{\n\t\t\tStorageBundleName: pulumi.String(invokeSubstr.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr1, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    defaultUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultProject, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.String(invokeSubstr1.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStore, err := log.NewStore(ctx, \"default\", \u0026log.StoreArgs{\n\t\t\tProjectName:        defaultProject.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(name),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGateway, err := cloudstoragegateway.NewGateway(ctx, \"default\", \u0026cloudstoragegateway.GatewayArgs{\n\t\t\tGatewayName:            pulumi.String(name),\n\t\t\tDescription:            pulumi.String(name),\n\t\t\tGatewayClass:           pulumi.String(\"Standard\"),\n\t\t\tType:                   pulumi.String(\"File\"),\n\t\t\tPaymentType:            pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:              defaultSwitch.ID(),\n\t\t\tReleaseAfterExpiration: pulumi.Bool(false),\n\t\t\tPublicNetworkBandwidth: pulumi.Int(40),\n\t\t\tStorageBundleId:        defaultStorageBundle.ID(),\n\t\t\tLocation:               pulumi.String(\"Cloud\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudstoragegateway.NewGatewayLogging(ctx, \"default\", \u0026cloudstoragegateway.GatewayLoggingArgs{\n\t\t\tGatewayId:   defaultGateway.ID(),\n\t\t\tSlsLogstore: defaultStore.LogstoreName,\n\t\t\tSlsProject:  defaultProject.ProjectName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Uuid;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundle;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundleArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ReplaceArgs;\nimport com.pulumi.std.inputs.SubstrArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.Gateway;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayLogging;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayLoggingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultUuid = new Uuid(\"defaultUuid\");\n\n        var defaultStorageBundle = new StorageBundle(\"defaultStorageBundle\", StorageBundleArgs.builder()\n            .storageBundleName(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(defaultUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .build());\n\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .projectName(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(defaultUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultStore = new Store(\"defaultStore\", StoreArgs.builder()\n            .projectName(defaultProject.projectName())\n            .logstoreName(name)\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultGateway = new Gateway(\"defaultGateway\", GatewayArgs.builder()\n            .gatewayName(name)\n            .description(name)\n            .gatewayClass(\"Standard\")\n            .type(\"File\")\n            .paymentType(\"PayAsYouGo\")\n            .vswitchId(defaultSwitch.id())\n            .releaseAfterExpiration(false)\n            .publicNetworkBandwidth(40)\n            .storageBundleId(defaultStorageBundle.id())\n            .location(\"Cloud\")\n            .build());\n\n        var defaultGatewayLogging = new GatewayLogging(\"defaultGatewayLogging\", GatewayLoggingArgs.builder()\n            .gatewayId(defaultGateway.id())\n            .slsLogstore(defaultStore.logstoreName())\n            .slsProject(defaultProject.projectName())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultUuid:\n    type: random:Uuid\n    name: default\n  defaultStorageBundle:\n    type: alicloud:cloudstoragegateway:StorageBundle\n    name: default\n    properties:\n      storageBundleName:\n        fn::invoke:\n          function: std:substr\n          arguments:\n            input:\n              fn::join:\n                - \"\"\n                - - tf-example-\n                  - fn::invoke:\n                      function: std:replace\n                      arguments:\n                        text: ${defaultUuid.result}\n                        search: '-'\n                        replace: \"\"\n                      return: result\n            offset: 0\n            length: 16\n          return: result\n  defaultProject:\n    type: alicloud:log:Project\n    name: default\n    properties:\n      projectName:\n        fn::invoke:\n          function: std:substr\n          arguments:\n            input:\n              fn::join:\n                - \"\"\n                - - tf-example-\n                  - fn::invoke:\n                      function: std:replace\n                      arguments:\n                        text: ${defaultUuid.result}\n                        search: '-'\n                        replace: \"\"\n                      return: result\n            offset: 0\n            length: 16\n          return: result\n      description: terraform-example\n  defaultStore:\n    type: alicloud:log:Store\n    name: default\n    properties:\n      projectName: ${defaultProject.projectName}\n      logstoreName: ${name}\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultGateway:\n    type: alicloud:cloudstoragegateway:Gateway\n    name: default\n    properties:\n      gatewayName: ${name}\n      description: ${name}\n      gatewayClass: Standard\n      type: File\n      paymentType: PayAsYouGo\n      vswitchId: ${defaultSwitch.id}\n      releaseAfterExpiration: false\n      publicNetworkBandwidth: 40\n      storageBundleId: ${defaultStorageBundle.id}\n      location: Cloud\n  defaultGatewayLogging:\n    type: alicloud:cloudstoragegateway:GatewayLogging\n    name: default\n    properties:\n      gatewayId: ${defaultGateway.id}\n      slsLogstore: ${defaultStore.logstoreName}\n      slsProject: ${defaultProject.projectName}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Storage Gateway Gateway Logging can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudstoragegateway/gatewayLogging:GatewayLogging example \u003cgateway_id\u003e\n```\n\n","properties":{"gatewayId":{"type":"string","description":"The ID of the Gateway.\n"},"slsLogstore":{"type":"string","description":"The name of the Log Store.\n"},"slsProject":{"type":"string","description":"The name of the Project.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Enabled`, `Disable`.\n"}},"required":["gatewayId","slsLogstore","slsProject","status"],"inputProperties":{"gatewayId":{"type":"string","description":"The ID of the Gateway.\n","willReplaceOnChanges":true},"slsLogstore":{"type":"string","description":"The name of the Log Store.\n","willReplaceOnChanges":true},"slsProject":{"type":"string","description":"The name of the Project.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `Enabled`, `Disable`.\n"}},"requiredInputs":["gatewayId","slsLogstore","slsProject"],"stateInputs":{"description":"Input properties used for looking up and filtering GatewayLogging resources.\n","properties":{"gatewayId":{"type":"string","description":"The ID of the Gateway.\n","willReplaceOnChanges":true},"slsLogstore":{"type":"string","description":"The name of the Log Store.\n","willReplaceOnChanges":true},"slsProject":{"type":"string","description":"The name of the Project.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `Enabled`, `Disable`.\n"}},"type":"object"}},"alicloud:cloudstoragegateway/gatewaySmbUser:GatewaySmbUser":{"description":"Provides a Cloud Storage Gateway Gateway SMB User resource.\n\nFor information about Cloud Storage Gateway Gateway SMB User and how to use it, see [What is Gateway SMB User](https://www.alibabacloud.com/help/en/cloud-storage-gateway/latest/creategatewaysmbuser).\n\n\u003e **NOTE:** Available since v1.142.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultUuid = new random.index.Uuid(\"default\", {});\nconst defaultStorageBundle = new alicloud.cloudstoragegateway.StorageBundle(\"default\", {storageBundleName: std.replace({\n    text: defaultUuid.result,\n    search: \"-\",\n    replace: \"\",\n}).then(invoke =\u003e std.substr({\n    input: `tf-example-${invoke.result}`,\n    offset: 0,\n    length: 16,\n})).then(invoke =\u003e invoke.result)});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultGateway = new alicloud.cloudstoragegateway.Gateway(\"default\", {\n    gatewayName: name,\n    description: name,\n    gatewayClass: \"Standard\",\n    type: \"File\",\n    paymentType: \"PayAsYouGo\",\n    vswitchId: defaultSwitch.id,\n    releaseAfterExpiration: false,\n    publicNetworkBandwidth: 40,\n    storageBundleId: defaultStorageBundle.id,\n    location: \"Cloud\",\n});\nconst defaultGatewaySmbUser = new alicloud.cloudstoragegateway.GatewaySmbUser(\"default\", {\n    username: \"example_username\",\n    password: \"password\",\n    gatewayId: defaultGateway.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_uuid = random.index.Uuid(\"default\")\ndefault_storage_bundle = alicloud.cloudstoragegateway.StorageBundle(\"default\", storage_bundle_name=std.substr(input=f\"tf-example-{std.replace(text=default_uuid['result'],\n        search='-',\n        replace='').result}\",\n    offset=0,\n    length=16).result)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_gateway = alicloud.cloudstoragegateway.Gateway(\"default\",\n    gateway_name=name,\n    description=name,\n    gateway_class=\"Standard\",\n    type=\"File\",\n    payment_type=\"PayAsYouGo\",\n    vswitch_id=default_switch.id,\n    release_after_expiration=False,\n    public_network_bandwidth=40,\n    storage_bundle_id=default_storage_bundle.id,\n    location=\"Cloud\")\ndefault_gateway_smb_user = alicloud.cloudstoragegateway.GatewaySmbUser(\"default\",\n    username=\"example_username\",\n    password=\"password\",\n    gateway_id=default_gateway.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultUuid = new Random.Index.Uuid(\"default\");\n\n    var defaultStorageBundle = new AliCloud.CloudStorageGateway.StorageBundle(\"default\", new()\n    {\n        StorageBundleName = Std.Replace.Invoke(new()\n        {\n            Text = defaultUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultGateway = new AliCloud.CloudStorageGateway.Gateway(\"default\", new()\n    {\n        GatewayName = name,\n        Description = name,\n        GatewayClass = \"Standard\",\n        Type = \"File\",\n        PaymentType = \"PayAsYouGo\",\n        VswitchId = defaultSwitch.Id,\n        ReleaseAfterExpiration = false,\n        PublicNetworkBandwidth = 40,\n        StorageBundleId = defaultStorageBundle.Id,\n        Location = \"Cloud\",\n    });\n\n    var defaultGatewaySmbUser = new AliCloud.CloudStorageGateway.GatewaySmbUser(\"default\", new()\n    {\n        Username = \"example_username\",\n        Password = \"password\",\n        GatewayId = defaultGateway.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultUuid, err := random.NewUuid(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    defaultUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStorageBundle, err := cloudstoragegateway.NewStorageBundle(ctx, \"default\", \u0026cloudstoragegateway.StorageBundleArgs{\n\t\t\tStorageBundleName: pulumi.String(invokeSubstr.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGateway, err := cloudstoragegateway.NewGateway(ctx, \"default\", \u0026cloudstoragegateway.GatewayArgs{\n\t\t\tGatewayName:            pulumi.String(name),\n\t\t\tDescription:            pulumi.String(name),\n\t\t\tGatewayClass:           pulumi.String(\"Standard\"),\n\t\t\tType:                   pulumi.String(\"File\"),\n\t\t\tPaymentType:            pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:              defaultSwitch.ID(),\n\t\t\tReleaseAfterExpiration: pulumi.Bool(false),\n\t\t\tPublicNetworkBandwidth: pulumi.Int(40),\n\t\t\tStorageBundleId:        defaultStorageBundle.ID(),\n\t\t\tLocation:               pulumi.String(\"Cloud\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudstoragegateway.NewGatewaySmbUser(ctx, \"default\", \u0026cloudstoragegateway.GatewaySmbUserArgs{\n\t\t\tUsername:  pulumi.String(\"example_username\"),\n\t\t\tPassword:  pulumi.String(\"password\"),\n\t\t\tGatewayId: defaultGateway.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Uuid;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundle;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundleArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ReplaceArgs;\nimport com.pulumi.std.inputs.SubstrArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.Gateway;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewaySmbUser;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewaySmbUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultUuid = new Uuid(\"defaultUuid\");\n\n        var defaultStorageBundle = new StorageBundle(\"defaultStorageBundle\", StorageBundleArgs.builder()\n            .storageBundleName(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(defaultUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultGateway = new Gateway(\"defaultGateway\", GatewayArgs.builder()\n            .gatewayName(name)\n            .description(name)\n            .gatewayClass(\"Standard\")\n            .type(\"File\")\n            .paymentType(\"PayAsYouGo\")\n            .vswitchId(defaultSwitch.id())\n            .releaseAfterExpiration(false)\n            .publicNetworkBandwidth(40)\n            .storageBundleId(defaultStorageBundle.id())\n            .location(\"Cloud\")\n            .build());\n\n        var defaultGatewaySmbUser = new GatewaySmbUser(\"defaultGatewaySmbUser\", GatewaySmbUserArgs.builder()\n            .username(\"example_username\")\n            .password(\"password\")\n            .gatewayId(defaultGateway.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultUuid:\n    type: random:Uuid\n    name: default\n  defaultStorageBundle:\n    type: alicloud:cloudstoragegateway:StorageBundle\n    name: default\n    properties:\n      storageBundleName:\n        fn::invoke:\n          function: std:substr\n          arguments:\n            input:\n              fn::join:\n                - \"\"\n                - - tf-example-\n                  - fn::invoke:\n                      function: std:replace\n                      arguments:\n                        text: ${defaultUuid.result}\n                        search: '-'\n                        replace: \"\"\n                      return: result\n            offset: 0\n            length: 16\n          return: result\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultGateway:\n    type: alicloud:cloudstoragegateway:Gateway\n    name: default\n    properties:\n      gatewayName: ${name}\n      description: ${name}\n      gatewayClass: Standard\n      type: File\n      paymentType: PayAsYouGo\n      vswitchId: ${defaultSwitch.id}\n      releaseAfterExpiration: false\n      publicNetworkBandwidth: 40\n      storageBundleId: ${defaultStorageBundle.id}\n      location: Cloud\n  defaultGatewaySmbUser:\n    type: alicloud:cloudstoragegateway:GatewaySmbUser\n    name: default\n    properties:\n      username: example_username\n      password: password\n      gatewayId: ${defaultGateway.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Storage Gateway Gateway SMB User can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudstoragegateway/gatewaySmbUser:GatewaySmbUser example \u003cgateway_id\u003e:\u003cusername\u003e\n```\n\n","properties":{"gatewayId":{"type":"string","description":"The Gateway ID of the Gateway SMB User.\n"},"password":{"type":"string","description":"The password of the Gateway SMB User.\n","secret":true},"username":{"type":"string","description":"The username of the Gateway SMB User.\n"}},"required":["gatewayId","password","username"],"inputProperties":{"gatewayId":{"type":"string","description":"The Gateway ID of the Gateway SMB User.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of the Gateway SMB User.\n","secret":true,"willReplaceOnChanges":true},"username":{"type":"string","description":"The username of the Gateway SMB User.\n","willReplaceOnChanges":true}},"requiredInputs":["gatewayId","password","username"],"stateInputs":{"description":"Input properties used for looking up and filtering GatewaySmbUser resources.\n","properties":{"gatewayId":{"type":"string","description":"The Gateway ID of the Gateway SMB User.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of the Gateway SMB User.\n","secret":true,"willReplaceOnChanges":true},"username":{"type":"string","description":"The username of the Gateway SMB User.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cloudstoragegateway/storageBundle:StorageBundle":{"description":"Provides a Cloud Storage Gateway Storage Bundle resource.\n\nFor information about Cloud Storage Gateway Storage Bundle and how to use it, see [What is Storage Bundle](https://www.alibabacloud.com/help/en/cloud-storage-gateway/latest/createstoragebundle).\n\n\u003e **NOTE:** Available since v1.116.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.cloudstoragegateway.StorageBundle(\"example\", {storageBundleName: \"example_value\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cloudstoragegateway.StorageBundle(\"example\", storage_bundle_name=\"example_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.CloudStorageGateway.StorageBundle(\"example\", new()\n    {\n        StorageBundleName = \"example_value\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudstoragegateway.NewStorageBundle(ctx, \"example\", \u0026cloudstoragegateway.StorageBundleArgs{\n\t\t\tStorageBundleName: pulumi.String(\"example_value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundle;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new StorageBundle(\"example\", StorageBundleArgs.builder()\n            .storageBundleName(\"example_value\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:cloudstoragegateway:StorageBundle\n    properties:\n      storageBundleName: example_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Storage Gateway Storage Bundle can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cloudstoragegateway/storageBundle:StorageBundle example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of storage bundle.\n"},"storageBundleName":{"type":"string","description":"The name of storage bundle.\n"}},"required":["storageBundleName"],"inputProperties":{"description":{"type":"string","description":"The description of storage bundle.\n"},"storageBundleName":{"type":"string","description":"The name of storage bundle.\n"}},"requiredInputs":["storageBundleName"],"stateInputs":{"description":"Input properties used for looking up and filtering StorageBundle resources.\n","properties":{"description":{"type":"string","description":"The description of storage bundle.\n"},"storageBundleName":{"type":"string","description":"The name of storage bundle.\n"}},"type":"object"}},"alicloud:cms/alarm:Alarm":{"description":"Provides a Cloud Monitor Service Alarm resource.\n\nFor information about Cloud Monitor Service Alarm and how to use it, see [What is Alarm](https://www.alibabacloud.com/help/en/cloudmonitor/latest/putresourcemetricrule).\n\n\u003e **NOTE:** Available since v1.9.1.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = Promise.all([_default, defaultGetImages]).then(([_default, defaultGetImages]) =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    imageId: defaultGetImages.images?.[0]?.id,\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceName: name,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup.id],\n    vswitchId: defaultSwitch.id,\n});\nconst defaultAlarmContactGroup = new alicloud.cms.AlarmContactGroup(\"default\", {alarmContactGroupName: name});\nconst defaultAlarm = new alicloud.cms.Alarm(\"default\", {\n    name: name,\n    project: \"acs_ecs_dashboard\",\n    metric: \"disk_writebytes\",\n    period: 900,\n    contactGroups: [defaultAlarmContactGroup.alarmContactGroupName],\n    effectiveInterval: \"06:00-20:00\",\n    metricDimensions: pulumi.interpolate`  [\n    {\n      \\\"instanceId\\\": \\\"${defaultInstance.id}\\\",\n      \\\"device\\\": \\\"/dev/vda1\\\"\n    }\n  ]\n`,\n    escalationsCritical: {\n        statistics: \"Average\",\n        comparisonOperator: \"\u003c=\",\n        threshold: \"35\",\n        times: 2,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(most_recent=True,\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    image_id=default_get_images.images[0].id)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    availability_zone=default.zones[0].id,\n    instance_name=name,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[default_security_group.id],\n    vswitch_id=default_switch.id)\ndefault_alarm_contact_group = alicloud.cms.AlarmContactGroup(\"default\", alarm_contact_group_name=name)\ndefault_alarm = alicloud.cms.Alarm(\"default\",\n    name=name,\n    project=\"acs_ecs_dashboard\",\n    metric=\"disk_writebytes\",\n    period=900,\n    contact_groups=[default_alarm_contact_group.alarm_contact_group_name],\n    effective_interval=\"06:00-20:00\",\n    metric_dimensions=default_instance.id.apply(lambda id: f\"\"\"  [\n    {{\n      \\\"instanceId\\\": \\\"{id}\\\",\n      \\\"device\\\": \\\"/dev/vda1\\\"\n    }}\n  ]\n\"\"\"),\n    escalations_critical={\n        \"statistics\": \"Average\",\n        \"comparison_operator\": \"\u003c=\",\n        \"threshold\": \"35\",\n        \"times\": 2,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceName = name,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var defaultAlarmContactGroup = new AliCloud.Cms.AlarmContactGroup(\"default\", new()\n    {\n        AlarmContactGroupName = name,\n    });\n\n    var defaultAlarm = new AliCloud.Cms.Alarm(\"default\", new()\n    {\n        Name = name,\n        Project = \"acs_ecs_dashboard\",\n        Metric = \"disk_writebytes\",\n        Period = 900,\n        ContactGroups = new[]\n        {\n            defaultAlarmContactGroup.AlarmContactGroupName,\n        },\n        EffectiveInterval = \"06:00-20:00\",\n        MetricDimensions = defaultInstance.Id.Apply(id =\u003e @$\"  [\n    {{\n      \\\"\"instanceId\\\"\": \\\"\"{id}\\\"\",\n      \\\"\"device\\\"\": \\\"\"/dev/vda1\\\"\"\n    }}\n  ]\n\"),\n        EscalationsCritical = new AliCloud.Cms.Inputs.AlarmEscalationsCriticalArgs\n        {\n            Statistics = \"Average\",\n            ComparisonOperator = \"\u003c=\",\n            Threshold = \"35\",\n            Times = 2,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tImageId:          pulumi.StringRef(defaultGetImages.Images[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(_default.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(name),\n\t\t\tImageId:          pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAlarmContactGroup, err := cms.NewAlarmContactGroup(ctx, \"default\", \u0026cms.AlarmContactGroupArgs{\n\t\t\tAlarmContactGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cms.NewAlarm(ctx, \"default\", \u0026cms.AlarmArgs{\n\t\t\tName:    pulumi.String(name),\n\t\t\tProject: pulumi.String(\"acs_ecs_dashboard\"),\n\t\t\tMetric:  pulumi.String(\"disk_writebytes\"),\n\t\t\tPeriod:  pulumi.Int(900),\n\t\t\tContactGroups: pulumi.StringArray{\n\t\t\t\tdefaultAlarmContactGroup.AlarmContactGroupName,\n\t\t\t},\n\t\t\tEffectiveInterval: pulumi.String(\"06:00-20:00\"),\n\t\t\tMetricDimensions: defaultInstance.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(`  [\n    {\n      \\\"instanceId\\\": \\\"%v\\\",\n      \\\"device\\\": \\\"/dev/vda1\\\"\n    }\n  ]\n`, id), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tEscalationsCritical: \u0026cms.AlarmEscalationsCriticalArgs{\n\t\t\t\tStatistics:         pulumi.String(\"Average\"),\n\t\t\t\tComparisonOperator: pulumi.String(\"\u003c=\"),\n\t\t\t\tThreshold:          pulumi.String(\"35\"),\n\t\t\t\tTimes:              pulumi.Int(2),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.cms.AlarmContactGroup;\nimport com.pulumi.alicloud.cms.AlarmContactGroupArgs;\nimport com.pulumi.alicloud.cms.Alarm;\nimport com.pulumi.alicloud.cms.AlarmArgs;\nimport com.pulumi.alicloud.cms.inputs.AlarmEscalationsCriticalArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .imageId(defaultGetImages.images()[0].id())\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .instanceName(name)\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.id())\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var defaultAlarmContactGroup = new AlarmContactGroup(\"defaultAlarmContactGroup\", AlarmContactGroupArgs.builder()\n            .alarmContactGroupName(name)\n            .build());\n\n        var defaultAlarm = new Alarm(\"defaultAlarm\", AlarmArgs.builder()\n            .name(name)\n            .project(\"acs_ecs_dashboard\")\n            .metric(\"disk_writebytes\")\n            .period(900)\n            .contactGroups(defaultAlarmContactGroup.alarmContactGroupName())\n            .effectiveInterval(\"06:00-20:00\")\n            .metricDimensions(defaultInstance.id().applyValue(_id -\u003e \"\"\"\n  [\n    {\n      \\\"instanceId\\\": \\\"%s\\\",\n      \\\"device\\\": \\\"/dev/vda1\\\"\n    }\n  ]\n\", _id)))\n            .escalationsCritical(AlarmEscalationsCriticalArgs.builder()\n                .statistics(\"Average\")\n                .comparisonOperator(\"\u003c=\")\n                .threshold(\"35\")\n                .times(2)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:ecs:Instance\n    name: default\n    properties:\n      availabilityZone: ${default.zones[0].id}\n      instanceName: ${name}\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      securityGroups:\n        - ${defaultSecurityGroup.id}\n      vswitchId: ${defaultSwitch.id}\n  defaultAlarmContactGroup:\n    type: alicloud:cms:AlarmContactGroup\n    name: default\n    properties:\n      alarmContactGroupName: ${name}\n  defaultAlarm:\n    type: alicloud:cms:Alarm\n    name: default\n    properties:\n      name: ${name}\n      project: acs_ecs_dashboard\n      metric: disk_writebytes\n      period: 900\n      contactGroups:\n        - ${defaultAlarmContactGroup.alarmContactGroupName}\n      effectiveInterval: 06:00-20:00\n      metricDimensions: |2\n          [\n            {\n              \\\"instanceId\\\": \\\"${defaultInstance.id}\\\",\n              \\\"device\\\": \\\"/dev/vda1\\\"\n            }\n          ]\n      escalationsCritical:\n        statistics: Average\n        comparisonOperator: \u003c=\n        threshold: 35\n        times: 2\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        mostRecent: true\n        owners: system\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        imageId: ${defaultGetImages.images[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Alarm can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cms/alarm:Alarm example \u003cid\u003e\n```\n\n","properties":{"compositeExpression":{"$ref":"#/types/alicloud:cms/AlarmCompositeExpression:AlarmCompositeExpression","description":"The trigger conditions for multiple metrics. See \u003cspan pulumi-lang-nodejs=\"`compositeExpression`\" pulumi-lang-dotnet=\"`CompositeExpression`\" pulumi-lang-go=\"`compositeExpression`\" pulumi-lang-python=\"`composite_expression`\" pulumi-lang-yaml=\"`compositeExpression`\" pulumi-lang-java=\"`compositeExpression`\"\u003e`composite_expression`\u003c/span\u003e below.\n"},"contactGroups":{"type":"array","items":{"type":"string"},"description":"List contact groups of the alarm rule, which must have been created on the console.\n"},"dimensions":{"type":"object","additionalProperties":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e has been deprecated from provider version 1.173.0. New field \u003cspan pulumi-lang-nodejs=\"`metricDimensions`\" pulumi-lang-dotnet=\"`MetricDimensions`\" pulumi-lang-go=\"`metricDimensions`\" pulumi-lang-python=\"`metric_dimensions`\" pulumi-lang-yaml=\"`metricDimensions`\" pulumi-lang-java=\"`metricDimensions`\"\u003e`metric_dimensions`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e has been deprecated from provider version 1.173.0. New field \u003cspan pulumi-lang-nodejs=\"`metricDimensions`\" pulumi-lang-dotnet=\"`MetricDimensions`\" pulumi-lang-go=\"`metricDimensions`\" pulumi-lang-python=\"`metric_dimensions`\" pulumi-lang-yaml=\"`metricDimensions`\" pulumi-lang-java=\"`metricDimensions`\"\u003e`metric_dimensions`\u003c/span\u003e instead."},"effectiveInterval":{"type":"string","description":"The interval of effecting alarm rule. It format as \"hh:mm-hh:mm\", like \"0:00-4:00\". Default value: `00:00-23:59`.\n"},"enabled":{"type":"boolean","description":"Whether to enable alarm rule. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"endTime":{"type":"integer","description":"Field \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e has been deprecated from provider version 1.50.0. New field \u003cspan pulumi-lang-nodejs=\"`effectiveInterval`\" pulumi-lang-dotnet=\"`EffectiveInterval`\" pulumi-lang-go=\"`effectiveInterval`\" pulumi-lang-python=\"`effective_interval`\" pulumi-lang-yaml=\"`effectiveInterval`\" pulumi-lang-java=\"`effectiveInterval`\"\u003e`effective_interval`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e has been deprecated from provider version 1.50.0. New field \u003cspan pulumi-lang-nodejs=\"`effectiveInterval`\" pulumi-lang-dotnet=\"`EffectiveInterval`\" pulumi-lang-go=\"`effectiveInterval`\" pulumi-lang-python=\"`effective_interval`\" pulumi-lang-yaml=\"`effectiveInterval`\" pulumi-lang-java=\"`effectiveInterval`\"\u003e`effective_interval`\u003c/span\u003e instead."},"escalationsCritical":{"$ref":"#/types/alicloud:cms/AlarmEscalationsCritical:AlarmEscalationsCritical","description":"A configuration of critical alarm. See \u003cspan pulumi-lang-nodejs=\"`escalationsCritical`\" pulumi-lang-dotnet=\"`EscalationsCritical`\" pulumi-lang-go=\"`escalationsCritical`\" pulumi-lang-python=\"`escalations_critical`\" pulumi-lang-yaml=\"`escalationsCritical`\" pulumi-lang-java=\"`escalationsCritical`\"\u003e`escalations_critical`\u003c/span\u003e below.\n"},"escalationsInfo":{"$ref":"#/types/alicloud:cms/AlarmEscalationsInfo:AlarmEscalationsInfo","description":"A configuration of critical info. See \u003cspan pulumi-lang-nodejs=\"`escalationsInfo`\" pulumi-lang-dotnet=\"`EscalationsInfo`\" pulumi-lang-go=\"`escalationsInfo`\" pulumi-lang-python=\"`escalations_info`\" pulumi-lang-yaml=\"`escalationsInfo`\" pulumi-lang-java=\"`escalationsInfo`\"\u003e`escalations_info`\u003c/span\u003e below.\n"},"escalationsWarn":{"$ref":"#/types/alicloud:cms/AlarmEscalationsWarn:AlarmEscalationsWarn","description":"A configuration of critical warn. See \u003cspan pulumi-lang-nodejs=\"`escalationsWarn`\" pulumi-lang-dotnet=\"`EscalationsWarn`\" pulumi-lang-go=\"`escalationsWarn`\" pulumi-lang-python=\"`escalations_warn`\" pulumi-lang-yaml=\"`escalationsWarn`\" pulumi-lang-java=\"`escalationsWarn`\"\u003e`escalations_warn`\u003c/span\u003e below.\n"},"metric":{"type":"string","description":"The name of the metric, such as `CPUUtilization` and \u003cspan pulumi-lang-nodejs=\"`networkinRate`\" pulumi-lang-dotnet=\"`NetworkinRate`\" pulumi-lang-go=\"`networkinRate`\" pulumi-lang-python=\"`networkin_rate`\" pulumi-lang-yaml=\"`networkinRate`\" pulumi-lang-java=\"`networkinRate`\"\u003e`networkin_rate`\u003c/span\u003e. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).\n"},"metricDimensions":{"type":"string","description":"Map of the resources associated with the alarm rule, such as \"instanceId\", \"device\" and \"port\". Each key's value is a string, and it uses comma to split multiple items. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).\n"},"name":{"type":"string","description":"The name of the alert rule.\n"},"period":{"type":"integer","description":"The statistical period of the metric. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"project":{"type":"string","description":"The namespace of the cloud service, such as \u003cspan pulumi-lang-nodejs=\"`acsEcsDashboard`\" pulumi-lang-dotnet=\"`AcsEcsDashboard`\" pulumi-lang-go=\"`acsEcsDashboard`\" pulumi-lang-python=\"`acs_ecs_dashboard`\" pulumi-lang-yaml=\"`acsEcsDashboard`\" pulumi-lang-java=\"`acsEcsDashboard`\"\u003e`acs_ecs_dashboard`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`acsRdsDashboard`\" pulumi-lang-dotnet=\"`AcsRdsDashboard`\" pulumi-lang-go=\"`acsRdsDashboard`\" pulumi-lang-python=\"`acs_rds_dashboard`\" pulumi-lang-yaml=\"`acsRdsDashboard`\" pulumi-lang-java=\"`acsRdsDashboard`\"\u003e`acs_rds_dashboard`\u003c/span\u003e. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).\n**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`metricDimensions`\" pulumi-lang-dotnet=\"`MetricDimensions`\" pulumi-lang-go=\"`metricDimensions`\" pulumi-lang-python=\"`metric_dimensions`\" pulumi-lang-yaml=\"`metricDimensions`\" pulumi-lang-java=\"`metricDimensions`\"\u003e`metric_dimensions`\u003c/span\u003e must be empty when \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`acsPrometheus`\" pulumi-lang-dotnet=\"`AcsPrometheus`\" pulumi-lang-go=\"`acsPrometheus`\" pulumi-lang-python=\"`acs_prometheus`\" pulumi-lang-yaml=\"`acsPrometheus`\" pulumi-lang-java=\"`acsPrometheus`\"\u003e`acs_prometheus`\u003c/span\u003e, otherwise, one of them must be set.\n"},"prometheuses":{"type":"array","items":{"$ref":"#/types/alicloud:cms/AlarmPrometheus:AlarmPrometheus"},"description":"The Prometheus alert rule. See \u003cspan pulumi-lang-nodejs=\"`prometheus`\" pulumi-lang-dotnet=\"`Prometheus`\" pulumi-lang-go=\"`prometheus`\" pulumi-lang-python=\"`prometheus`\" pulumi-lang-yaml=\"`prometheus`\" pulumi-lang-java=\"`prometheus`\"\u003e`prometheus`\u003c/span\u003e below. **Note:** This parameter is required only when you create a Prometheus alert rule for Hybrid Cloud Monitoring.\n"},"silenceTime":{"type":"integer","description":"Notification silence period in the alarm state, in seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e. Valid value range: [300, 86400].\n"},"startTime":{"type":"integer","description":"Field \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e has been deprecated from provider version 1.50.0. New field \u003cspan pulumi-lang-nodejs=\"`effectiveInterval`\" pulumi-lang-dotnet=\"`EffectiveInterval`\" pulumi-lang-go=\"`effectiveInterval`\" pulumi-lang-python=\"`effective_interval`\" pulumi-lang-yaml=\"`effectiveInterval`\" pulumi-lang-java=\"`effectiveInterval`\"\u003e`effective_interval`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e has been deprecated from provider version 1.50.0. New field \u003cspan pulumi-lang-nodejs=\"`effectiveInterval`\" pulumi-lang-dotnet=\"`EffectiveInterval`\" pulumi-lang-go=\"`effectiveInterval`\" pulumi-lang-python=\"`effective_interval`\" pulumi-lang-yaml=\"`effectiveInterval`\" pulumi-lang-java=\"`effectiveInterval`\"\u003e`effective_interval`\u003c/span\u003e instead."},"status":{"type":"string","description":"The status of the Alarm.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"targets":{"type":"array","items":{"$ref":"#/types/alicloud:cms/AlarmTarget:AlarmTarget"},"description":"Adds or modifies the push channels of an alert rule. See \u003cspan pulumi-lang-nodejs=\"`targets`\" pulumi-lang-dotnet=\"`Targets`\" pulumi-lang-go=\"`targets`\" pulumi-lang-python=\"`targets`\" pulumi-lang-yaml=\"`targets`\" pulumi-lang-java=\"`targets`\"\u003e`targets`\u003c/span\u003e below.\n"},"webhook":{"type":"string","description":"The webhook that should be called when the alarm is triggered. Currently, only http protocol is supported. Default is empty string.\n"}},"required":["contactGroups","dimensions","escalationsCritical","escalationsInfo","escalationsWarn","metric","metricDimensions","name","project","prometheuses","status","targets"],"inputProperties":{"compositeExpression":{"$ref":"#/types/alicloud:cms/AlarmCompositeExpression:AlarmCompositeExpression","description":"The trigger conditions for multiple metrics. See \u003cspan pulumi-lang-nodejs=\"`compositeExpression`\" pulumi-lang-dotnet=\"`CompositeExpression`\" pulumi-lang-go=\"`compositeExpression`\" pulumi-lang-python=\"`composite_expression`\" pulumi-lang-yaml=\"`compositeExpression`\" pulumi-lang-java=\"`compositeExpression`\"\u003e`composite_expression`\u003c/span\u003e below.\n"},"contactGroups":{"type":"array","items":{"type":"string"},"description":"List contact groups of the alarm rule, which must have been created on the console.\n"},"dimensions":{"type":"object","additionalProperties":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e has been deprecated from provider version 1.173.0. New field \u003cspan pulumi-lang-nodejs=\"`metricDimensions`\" pulumi-lang-dotnet=\"`MetricDimensions`\" pulumi-lang-go=\"`metricDimensions`\" pulumi-lang-python=\"`metric_dimensions`\" pulumi-lang-yaml=\"`metricDimensions`\" pulumi-lang-java=\"`metricDimensions`\"\u003e`metric_dimensions`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e has been deprecated from provider version 1.173.0. New field \u003cspan pulumi-lang-nodejs=\"`metricDimensions`\" pulumi-lang-dotnet=\"`MetricDimensions`\" pulumi-lang-go=\"`metricDimensions`\" pulumi-lang-python=\"`metric_dimensions`\" pulumi-lang-yaml=\"`metricDimensions`\" pulumi-lang-java=\"`metricDimensions`\"\u003e`metric_dimensions`\u003c/span\u003e instead."},"effectiveInterval":{"type":"string","description":"The interval of effecting alarm rule. It format as \"hh:mm-hh:mm\", like \"0:00-4:00\". Default value: `00:00-23:59`.\n"},"enabled":{"type":"boolean","description":"Whether to enable alarm rule. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"endTime":{"type":"integer","description":"Field \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e has been deprecated from provider version 1.50.0. New field \u003cspan pulumi-lang-nodejs=\"`effectiveInterval`\" pulumi-lang-dotnet=\"`EffectiveInterval`\" pulumi-lang-go=\"`effectiveInterval`\" pulumi-lang-python=\"`effective_interval`\" pulumi-lang-yaml=\"`effectiveInterval`\" pulumi-lang-java=\"`effectiveInterval`\"\u003e`effective_interval`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e has been deprecated from provider version 1.50.0. New field \u003cspan pulumi-lang-nodejs=\"`effectiveInterval`\" pulumi-lang-dotnet=\"`EffectiveInterval`\" pulumi-lang-go=\"`effectiveInterval`\" pulumi-lang-python=\"`effective_interval`\" pulumi-lang-yaml=\"`effectiveInterval`\" pulumi-lang-java=\"`effectiveInterval`\"\u003e`effective_interval`\u003c/span\u003e instead."},"escalationsCritical":{"$ref":"#/types/alicloud:cms/AlarmEscalationsCritical:AlarmEscalationsCritical","description":"A configuration of critical alarm. See \u003cspan pulumi-lang-nodejs=\"`escalationsCritical`\" pulumi-lang-dotnet=\"`EscalationsCritical`\" pulumi-lang-go=\"`escalationsCritical`\" pulumi-lang-python=\"`escalations_critical`\" pulumi-lang-yaml=\"`escalationsCritical`\" pulumi-lang-java=\"`escalationsCritical`\"\u003e`escalations_critical`\u003c/span\u003e below.\n"},"escalationsInfo":{"$ref":"#/types/alicloud:cms/AlarmEscalationsInfo:AlarmEscalationsInfo","description":"A configuration of critical info. See \u003cspan pulumi-lang-nodejs=\"`escalationsInfo`\" pulumi-lang-dotnet=\"`EscalationsInfo`\" pulumi-lang-go=\"`escalationsInfo`\" pulumi-lang-python=\"`escalations_info`\" pulumi-lang-yaml=\"`escalationsInfo`\" pulumi-lang-java=\"`escalationsInfo`\"\u003e`escalations_info`\u003c/span\u003e below.\n"},"escalationsWarn":{"$ref":"#/types/alicloud:cms/AlarmEscalationsWarn:AlarmEscalationsWarn","description":"A configuration of critical warn. See \u003cspan pulumi-lang-nodejs=\"`escalationsWarn`\" pulumi-lang-dotnet=\"`EscalationsWarn`\" pulumi-lang-go=\"`escalationsWarn`\" pulumi-lang-python=\"`escalations_warn`\" pulumi-lang-yaml=\"`escalationsWarn`\" pulumi-lang-java=\"`escalationsWarn`\"\u003e`escalations_warn`\u003c/span\u003e below.\n"},"metric":{"type":"string","description":"The name of the metric, such as `CPUUtilization` and \u003cspan pulumi-lang-nodejs=\"`networkinRate`\" pulumi-lang-dotnet=\"`NetworkinRate`\" pulumi-lang-go=\"`networkinRate`\" pulumi-lang-python=\"`networkin_rate`\" pulumi-lang-yaml=\"`networkinRate`\" pulumi-lang-java=\"`networkinRate`\"\u003e`networkin_rate`\u003c/span\u003e. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).\n","willReplaceOnChanges":true},"metricDimensions":{"type":"string","description":"Map of the resources associated with the alarm rule, such as \"instanceId\", \"device\" and \"port\". Each key's value is a string, and it uses comma to split multiple items. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).\n"},"name":{"type":"string","description":"The name of the alert rule.\n"},"period":{"type":"integer","description":"The statistical period of the metric. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"project":{"type":"string","description":"The namespace of the cloud service, such as \u003cspan pulumi-lang-nodejs=\"`acsEcsDashboard`\" pulumi-lang-dotnet=\"`AcsEcsDashboard`\" pulumi-lang-go=\"`acsEcsDashboard`\" pulumi-lang-python=\"`acs_ecs_dashboard`\" pulumi-lang-yaml=\"`acsEcsDashboard`\" pulumi-lang-java=\"`acsEcsDashboard`\"\u003e`acs_ecs_dashboard`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`acsRdsDashboard`\" pulumi-lang-dotnet=\"`AcsRdsDashboard`\" pulumi-lang-go=\"`acsRdsDashboard`\" pulumi-lang-python=\"`acs_rds_dashboard`\" pulumi-lang-yaml=\"`acsRdsDashboard`\" pulumi-lang-java=\"`acsRdsDashboard`\"\u003e`acs_rds_dashboard`\u003c/span\u003e. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).\n**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`metricDimensions`\" pulumi-lang-dotnet=\"`MetricDimensions`\" pulumi-lang-go=\"`metricDimensions`\" pulumi-lang-python=\"`metric_dimensions`\" pulumi-lang-yaml=\"`metricDimensions`\" pulumi-lang-java=\"`metricDimensions`\"\u003e`metric_dimensions`\u003c/span\u003e must be empty when \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`acsPrometheus`\" pulumi-lang-dotnet=\"`AcsPrometheus`\" pulumi-lang-go=\"`acsPrometheus`\" pulumi-lang-python=\"`acs_prometheus`\" pulumi-lang-yaml=\"`acsPrometheus`\" pulumi-lang-java=\"`acsPrometheus`\"\u003e`acs_prometheus`\u003c/span\u003e, otherwise, one of them must be set.\n","willReplaceOnChanges":true},"prometheuses":{"type":"array","items":{"$ref":"#/types/alicloud:cms/AlarmPrometheus:AlarmPrometheus"},"description":"The Prometheus alert rule. See \u003cspan pulumi-lang-nodejs=\"`prometheus`\" pulumi-lang-dotnet=\"`Prometheus`\" pulumi-lang-go=\"`prometheus`\" pulumi-lang-python=\"`prometheus`\" pulumi-lang-yaml=\"`prometheus`\" pulumi-lang-java=\"`prometheus`\"\u003e`prometheus`\u003c/span\u003e below. **Note:** This parameter is required only when you create a Prometheus alert rule for Hybrid Cloud Monitoring.\n"},"silenceTime":{"type":"integer","description":"Notification silence period in the alarm state, in seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e. Valid value range: [300, 86400].\n"},"startTime":{"type":"integer","description":"Field \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e has been deprecated from provider version 1.50.0. New field \u003cspan pulumi-lang-nodejs=\"`effectiveInterval`\" pulumi-lang-dotnet=\"`EffectiveInterval`\" pulumi-lang-go=\"`effectiveInterval`\" pulumi-lang-python=\"`effective_interval`\" pulumi-lang-yaml=\"`effectiveInterval`\" pulumi-lang-java=\"`effectiveInterval`\"\u003e`effective_interval`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e has been deprecated from provider version 1.50.0. New field \u003cspan pulumi-lang-nodejs=\"`effectiveInterval`\" pulumi-lang-dotnet=\"`EffectiveInterval`\" pulumi-lang-go=\"`effectiveInterval`\" pulumi-lang-python=\"`effective_interval`\" pulumi-lang-yaml=\"`effectiveInterval`\" pulumi-lang-java=\"`effectiveInterval`\"\u003e`effective_interval`\u003c/span\u003e instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"targets":{"type":"array","items":{"$ref":"#/types/alicloud:cms/AlarmTarget:AlarmTarget"},"description":"Adds or modifies the push channels of an alert rule. See \u003cspan pulumi-lang-nodejs=\"`targets`\" pulumi-lang-dotnet=\"`Targets`\" pulumi-lang-go=\"`targets`\" pulumi-lang-python=\"`targets`\" pulumi-lang-yaml=\"`targets`\" pulumi-lang-java=\"`targets`\"\u003e`targets`\u003c/span\u003e below.\n"},"webhook":{"type":"string","description":"The webhook that should be called when the alarm is triggered. Currently, only http protocol is supported. Default is empty string.\n"}},"requiredInputs":["contactGroups","metric","project"],"stateInputs":{"description":"Input properties used for looking up and filtering Alarm resources.\n","properties":{"compositeExpression":{"$ref":"#/types/alicloud:cms/AlarmCompositeExpression:AlarmCompositeExpression","description":"The trigger conditions for multiple metrics. See \u003cspan pulumi-lang-nodejs=\"`compositeExpression`\" pulumi-lang-dotnet=\"`CompositeExpression`\" pulumi-lang-go=\"`compositeExpression`\" pulumi-lang-python=\"`composite_expression`\" pulumi-lang-yaml=\"`compositeExpression`\" pulumi-lang-java=\"`compositeExpression`\"\u003e`composite_expression`\u003c/span\u003e below.\n"},"contactGroups":{"type":"array","items":{"type":"string"},"description":"List contact groups of the alarm rule, which must have been created on the console.\n"},"dimensions":{"type":"object","additionalProperties":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e has been deprecated from provider version 1.173.0. New field \u003cspan pulumi-lang-nodejs=\"`metricDimensions`\" pulumi-lang-dotnet=\"`MetricDimensions`\" pulumi-lang-go=\"`metricDimensions`\" pulumi-lang-python=\"`metric_dimensions`\" pulumi-lang-yaml=\"`metricDimensions`\" pulumi-lang-java=\"`metricDimensions`\"\u003e`metric_dimensions`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e has been deprecated from provider version 1.173.0. New field \u003cspan pulumi-lang-nodejs=\"`metricDimensions`\" pulumi-lang-dotnet=\"`MetricDimensions`\" pulumi-lang-go=\"`metricDimensions`\" pulumi-lang-python=\"`metric_dimensions`\" pulumi-lang-yaml=\"`metricDimensions`\" pulumi-lang-java=\"`metricDimensions`\"\u003e`metric_dimensions`\u003c/span\u003e instead."},"effectiveInterval":{"type":"string","description":"The interval of effecting alarm rule. It format as \"hh:mm-hh:mm\", like \"0:00-4:00\". Default value: `00:00-23:59`.\n"},"enabled":{"type":"boolean","description":"Whether to enable alarm rule. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"endTime":{"type":"integer","description":"Field \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e has been deprecated from provider version 1.50.0. New field \u003cspan pulumi-lang-nodejs=\"`effectiveInterval`\" pulumi-lang-dotnet=\"`EffectiveInterval`\" pulumi-lang-go=\"`effectiveInterval`\" pulumi-lang-python=\"`effective_interval`\" pulumi-lang-yaml=\"`effectiveInterval`\" pulumi-lang-java=\"`effectiveInterval`\"\u003e`effective_interval`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e has been deprecated from provider version 1.50.0. New field \u003cspan pulumi-lang-nodejs=\"`effectiveInterval`\" pulumi-lang-dotnet=\"`EffectiveInterval`\" pulumi-lang-go=\"`effectiveInterval`\" pulumi-lang-python=\"`effective_interval`\" pulumi-lang-yaml=\"`effectiveInterval`\" pulumi-lang-java=\"`effectiveInterval`\"\u003e`effective_interval`\u003c/span\u003e instead."},"escalationsCritical":{"$ref":"#/types/alicloud:cms/AlarmEscalationsCritical:AlarmEscalationsCritical","description":"A configuration of critical alarm. See \u003cspan pulumi-lang-nodejs=\"`escalationsCritical`\" pulumi-lang-dotnet=\"`EscalationsCritical`\" pulumi-lang-go=\"`escalationsCritical`\" pulumi-lang-python=\"`escalations_critical`\" pulumi-lang-yaml=\"`escalationsCritical`\" pulumi-lang-java=\"`escalationsCritical`\"\u003e`escalations_critical`\u003c/span\u003e below.\n"},"escalationsInfo":{"$ref":"#/types/alicloud:cms/AlarmEscalationsInfo:AlarmEscalationsInfo","description":"A configuration of critical info. See \u003cspan pulumi-lang-nodejs=\"`escalationsInfo`\" pulumi-lang-dotnet=\"`EscalationsInfo`\" pulumi-lang-go=\"`escalationsInfo`\" pulumi-lang-python=\"`escalations_info`\" pulumi-lang-yaml=\"`escalationsInfo`\" pulumi-lang-java=\"`escalationsInfo`\"\u003e`escalations_info`\u003c/span\u003e below.\n"},"escalationsWarn":{"$ref":"#/types/alicloud:cms/AlarmEscalationsWarn:AlarmEscalationsWarn","description":"A configuration of critical warn. See \u003cspan pulumi-lang-nodejs=\"`escalationsWarn`\" pulumi-lang-dotnet=\"`EscalationsWarn`\" pulumi-lang-go=\"`escalationsWarn`\" pulumi-lang-python=\"`escalations_warn`\" pulumi-lang-yaml=\"`escalationsWarn`\" pulumi-lang-java=\"`escalationsWarn`\"\u003e`escalations_warn`\u003c/span\u003e below.\n"},"metric":{"type":"string","description":"The name of the metric, such as `CPUUtilization` and \u003cspan pulumi-lang-nodejs=\"`networkinRate`\" pulumi-lang-dotnet=\"`NetworkinRate`\" pulumi-lang-go=\"`networkinRate`\" pulumi-lang-python=\"`networkin_rate`\" pulumi-lang-yaml=\"`networkinRate`\" pulumi-lang-java=\"`networkinRate`\"\u003e`networkin_rate`\u003c/span\u003e. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).\n","willReplaceOnChanges":true},"metricDimensions":{"type":"string","description":"Map of the resources associated with the alarm rule, such as \"instanceId\", \"device\" and \"port\". Each key's value is a string, and it uses comma to split multiple items. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).\n"},"name":{"type":"string","description":"The name of the alert rule.\n"},"period":{"type":"integer","description":"The statistical period of the metric. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"project":{"type":"string","description":"The namespace of the cloud service, such as \u003cspan pulumi-lang-nodejs=\"`acsEcsDashboard`\" pulumi-lang-dotnet=\"`AcsEcsDashboard`\" pulumi-lang-go=\"`acsEcsDashboard`\" pulumi-lang-python=\"`acs_ecs_dashboard`\" pulumi-lang-yaml=\"`acsEcsDashboard`\" pulumi-lang-java=\"`acsEcsDashboard`\"\u003e`acs_ecs_dashboard`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`acsRdsDashboard`\" pulumi-lang-dotnet=\"`AcsRdsDashboard`\" pulumi-lang-go=\"`acsRdsDashboard`\" pulumi-lang-python=\"`acs_rds_dashboard`\" pulumi-lang-yaml=\"`acsRdsDashboard`\" pulumi-lang-java=\"`acsRdsDashboard`\"\u003e`acs_rds_dashboard`\u003c/span\u003e. For more information, see [Metrics Reference](https://www.alibabacloud.com/help/doc-detail/28619.htm).\n**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`metricDimensions`\" pulumi-lang-dotnet=\"`MetricDimensions`\" pulumi-lang-go=\"`metricDimensions`\" pulumi-lang-python=\"`metric_dimensions`\" pulumi-lang-yaml=\"`metricDimensions`\" pulumi-lang-java=\"`metricDimensions`\"\u003e`metric_dimensions`\u003c/span\u003e must be empty when \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`acsPrometheus`\" pulumi-lang-dotnet=\"`AcsPrometheus`\" pulumi-lang-go=\"`acsPrometheus`\" pulumi-lang-python=\"`acs_prometheus`\" pulumi-lang-yaml=\"`acsPrometheus`\" pulumi-lang-java=\"`acsPrometheus`\"\u003e`acs_prometheus`\u003c/span\u003e, otherwise, one of them must be set.\n","willReplaceOnChanges":true},"prometheuses":{"type":"array","items":{"$ref":"#/types/alicloud:cms/AlarmPrometheus:AlarmPrometheus"},"description":"The Prometheus alert rule. See \u003cspan pulumi-lang-nodejs=\"`prometheus`\" pulumi-lang-dotnet=\"`Prometheus`\" pulumi-lang-go=\"`prometheus`\" pulumi-lang-python=\"`prometheus`\" pulumi-lang-yaml=\"`prometheus`\" pulumi-lang-java=\"`prometheus`\"\u003e`prometheus`\u003c/span\u003e below. **Note:** This parameter is required only when you create a Prometheus alert rule for Hybrid Cloud Monitoring.\n"},"silenceTime":{"type":"integer","description":"Notification silence period in the alarm state, in seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e. Valid value range: [300, 86400].\n"},"startTime":{"type":"integer","description":"Field \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e has been deprecated from provider version 1.50.0. New field \u003cspan pulumi-lang-nodejs=\"`effectiveInterval`\" pulumi-lang-dotnet=\"`EffectiveInterval`\" pulumi-lang-go=\"`effectiveInterval`\" pulumi-lang-python=\"`effective_interval`\" pulumi-lang-yaml=\"`effectiveInterval`\" pulumi-lang-java=\"`effectiveInterval`\"\u003e`effective_interval`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e has been deprecated from provider version 1.50.0. New field \u003cspan pulumi-lang-nodejs=\"`effectiveInterval`\" pulumi-lang-dotnet=\"`EffectiveInterval`\" pulumi-lang-go=\"`effectiveInterval`\" pulumi-lang-python=\"`effective_interval`\" pulumi-lang-yaml=\"`effectiveInterval`\" pulumi-lang-java=\"`effectiveInterval`\"\u003e`effective_interval`\u003c/span\u003e instead."},"status":{"type":"string","description":"The status of the Alarm.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"targets":{"type":"array","items":{"$ref":"#/types/alicloud:cms/AlarmTarget:AlarmTarget"},"description":"Adds or modifies the push channels of an alert rule. See \u003cspan pulumi-lang-nodejs=\"`targets`\" pulumi-lang-dotnet=\"`Targets`\" pulumi-lang-go=\"`targets`\" pulumi-lang-python=\"`targets`\" pulumi-lang-yaml=\"`targets`\" pulumi-lang-java=\"`targets`\"\u003e`targets`\u003c/span\u003e below.\n"},"webhook":{"type":"string","description":"The webhook that should be called when the alarm is triggered. Currently, only http protocol is supported. Default is empty string.\n"}},"type":"object"}},"alicloud:cms/alarmContact:AlarmContact":{"description":"Creates or modifies an alarm contact. For information about alarm contact and how to use it, see [What is alarm contact](https://www.alibabacloud.com/help/en/cloudmonitor/latest/putcontact).\n\n\u003e **NOTE:** Available since v1.99.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// You need to activate the link before you can return to the alarm contact information, otherwise diff will appear in terraform. So please confirm the activation link as soon as possible. Besides, you can ignore the diff of the alarm contact information by `lifestyle`. \nconst example = new alicloud.cms.AlarmContact(\"example\", {\n    alarmContactName: \"tf-example\",\n    describe: \"For example\",\n    channelsMail: \"terraform@test.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# You need to activate the link before you can return to the alarm contact information, otherwise diff will appear in terraform. So please confirm the activation link as soon as possible. Besides, you can ignore the diff of the alarm contact information by `lifestyle`. \nexample = alicloud.cms.AlarmContact(\"example\",\n    alarm_contact_name=\"tf-example\",\n    describe=\"For example\",\n    channels_mail=\"terraform@test.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // You need to activate the link before you can return to the alarm contact information, otherwise diff will appear in terraform. So please confirm the activation link as soon as possible. Besides, you can ignore the diff of the alarm contact information by `lifestyle`. \n    var example = new AliCloud.Cms.AlarmContact(\"example\", new()\n    {\n        AlarmContactName = \"tf-example\",\n        Describe = \"For example\",\n        ChannelsMail = \"terraform@test.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// You need to activate the link before you can return to the alarm contact information, otherwise diff will appear in terraform. So please confirm the activation link as soon as possible. Besides, you can ignore the diff of the alarm contact information by `lifestyle`.\n\t\t_, err := cms.NewAlarmContact(ctx, \"example\", \u0026cms.AlarmContactArgs{\n\t\t\tAlarmContactName: pulumi.String(\"tf-example\"),\n\t\t\tDescribe:         pulumi.String(\"For example\"),\n\t\t\tChannelsMail:     pulumi.String(\"terraform@test.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.AlarmContact;\nimport com.pulumi.alicloud.cms.AlarmContactArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // You need to activate the link before you can return to the alarm contact information, otherwise diff will appear in terraform. So please confirm the activation link as soon as possible. Besides, you can ignore the diff of the alarm contact information by `lifestyle`. \n        var example = new AlarmContact(\"example\", AlarmContactArgs.builder()\n            .alarmContactName(\"tf-example\")\n            .describe(\"For example\")\n            .channelsMail(\"terraform@test.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # You need to activate the link before you can return to the alarm contact information, otherwise diff will appear in terraform. So please confirm the activation link as soon as possible. Besides, you can ignore the diff of the alarm contact information by `lifestyle`.\n  example:\n    type: alicloud:cms:AlarmContact\n    properties:\n      alarmContactName: tf-example\n      describe: For example\n      channelsMail: terraform@test.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAlarm contact can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cms/alarmContact:AlarmContact example abc12345\n```\n\n","properties":{"alarmContactName":{"type":"string","description":"The name of the alarm contact. The length should between 2 and 40 characters.\n"},"channelsAliim":{"type":"string","description":"The TradeManager ID of the alarm contact.\n"},"channelsDingWebHook":{"type":"string","description":"The webhook URL of the DingTalk chatbot.\n"},"channelsMail":{"type":"string","description":"The email address of the alarm contact. After you add or modify an email address, the recipient receives an email that contains an activation link. The system adds the recipient to the list of alarm contacts only after the recipient activates the email address.\n"},"channelsSms":{"type":"string","description":"The phone number of the alarm contact. After you add or modify an email address, the recipient receives an email that contains an activation link. The system adds the recipient to the list of alarm contacts only after the recipient activates the email address.\n"},"describe":{"type":"string","description":"The description of the alarm contact.\n"},"lang":{"type":"string","description":"The language type of the alarm. Valid values: \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e, `zh-cn`.\n\n\u003e **NOTE:** Specify at least one of the following alarm notification targets: \u003cspan pulumi-lang-nodejs=\"`channelsAliim`\" pulumi-lang-dotnet=\"`ChannelsAliim`\" pulumi-lang-go=\"`channelsAliim`\" pulumi-lang-python=\"`channels_aliim`\" pulumi-lang-yaml=\"`channelsAliim`\" pulumi-lang-java=\"`channelsAliim`\"\u003e`channels_aliim`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`channelsDingWebHook`\" pulumi-lang-dotnet=\"`ChannelsDingWebHook`\" pulumi-lang-go=\"`channelsDingWebHook`\" pulumi-lang-python=\"`channels_ding_web_hook`\" pulumi-lang-yaml=\"`channelsDingWebHook`\" pulumi-lang-java=\"`channelsDingWebHook`\"\u003e`channels_ding_web_hook`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`channelsMail`\" pulumi-lang-dotnet=\"`ChannelsMail`\" pulumi-lang-go=\"`channelsMail`\" pulumi-lang-python=\"`channels_mail`\" pulumi-lang-yaml=\"`channelsMail`\" pulumi-lang-java=\"`channelsMail`\"\u003e`channels_mail`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`channelsSms`\" pulumi-lang-dotnet=\"`ChannelsSms`\" pulumi-lang-go=\"`channelsSms`\" pulumi-lang-python=\"`channels_sms`\" pulumi-lang-yaml=\"`channelsSms`\" pulumi-lang-java=\"`channelsSms`\"\u003e`channels_sms`\u003c/span\u003e.\n"}},"required":["alarmContactName","describe"],"inputProperties":{"alarmContactName":{"type":"string","description":"The name of the alarm contact. The length should between 2 and 40 characters.\n","willReplaceOnChanges":true},"channelsAliim":{"type":"string","description":"The TradeManager ID of the alarm contact.\n"},"channelsDingWebHook":{"type":"string","description":"The webhook URL of the DingTalk chatbot.\n"},"channelsMail":{"type":"string","description":"The email address of the alarm contact. After you add or modify an email address, the recipient receives an email that contains an activation link. The system adds the recipient to the list of alarm contacts only after the recipient activates the email address.\n"},"channelsSms":{"type":"string","description":"The phone number of the alarm contact. After you add or modify an email address, the recipient receives an email that contains an activation link. The system adds the recipient to the list of alarm contacts only after the recipient activates the email address.\n"},"describe":{"type":"string","description":"The description of the alarm contact.\n"},"lang":{"type":"string","description":"The language type of the alarm. Valid values: \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e, `zh-cn`.\n\n\u003e **NOTE:** Specify at least one of the following alarm notification targets: \u003cspan pulumi-lang-nodejs=\"`channelsAliim`\" pulumi-lang-dotnet=\"`ChannelsAliim`\" pulumi-lang-go=\"`channelsAliim`\" pulumi-lang-python=\"`channels_aliim`\" pulumi-lang-yaml=\"`channelsAliim`\" pulumi-lang-java=\"`channelsAliim`\"\u003e`channels_aliim`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`channelsDingWebHook`\" pulumi-lang-dotnet=\"`ChannelsDingWebHook`\" pulumi-lang-go=\"`channelsDingWebHook`\" pulumi-lang-python=\"`channels_ding_web_hook`\" pulumi-lang-yaml=\"`channelsDingWebHook`\" pulumi-lang-java=\"`channelsDingWebHook`\"\u003e`channels_ding_web_hook`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`channelsMail`\" pulumi-lang-dotnet=\"`ChannelsMail`\" pulumi-lang-go=\"`channelsMail`\" pulumi-lang-python=\"`channels_mail`\" pulumi-lang-yaml=\"`channelsMail`\" pulumi-lang-java=\"`channelsMail`\"\u003e`channels_mail`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`channelsSms`\" pulumi-lang-dotnet=\"`ChannelsSms`\" pulumi-lang-go=\"`channelsSms`\" pulumi-lang-python=\"`channels_sms`\" pulumi-lang-yaml=\"`channelsSms`\" pulumi-lang-java=\"`channelsSms`\"\u003e`channels_sms`\u003c/span\u003e.\n"}},"requiredInputs":["alarmContactName","describe"],"stateInputs":{"description":"Input properties used for looking up and filtering AlarmContact resources.\n","properties":{"alarmContactName":{"type":"string","description":"The name of the alarm contact. The length should between 2 and 40 characters.\n","willReplaceOnChanges":true},"channelsAliim":{"type":"string","description":"The TradeManager ID of the alarm contact.\n"},"channelsDingWebHook":{"type":"string","description":"The webhook URL of the DingTalk chatbot.\n"},"channelsMail":{"type":"string","description":"The email address of the alarm contact. After you add or modify an email address, the recipient receives an email that contains an activation link. The system adds the recipient to the list of alarm contacts only after the recipient activates the email address.\n"},"channelsSms":{"type":"string","description":"The phone number of the alarm contact. After you add or modify an email address, the recipient receives an email that contains an activation link. The system adds the recipient to the list of alarm contacts only after the recipient activates the email address.\n"},"describe":{"type":"string","description":"The description of the alarm contact.\n"},"lang":{"type":"string","description":"The language type of the alarm. Valid values: \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e, `zh-cn`.\n\n\u003e **NOTE:** Specify at least one of the following alarm notification targets: \u003cspan pulumi-lang-nodejs=\"`channelsAliim`\" pulumi-lang-dotnet=\"`ChannelsAliim`\" pulumi-lang-go=\"`channelsAliim`\" pulumi-lang-python=\"`channels_aliim`\" pulumi-lang-yaml=\"`channelsAliim`\" pulumi-lang-java=\"`channelsAliim`\"\u003e`channels_aliim`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`channelsDingWebHook`\" pulumi-lang-dotnet=\"`ChannelsDingWebHook`\" pulumi-lang-go=\"`channelsDingWebHook`\" pulumi-lang-python=\"`channels_ding_web_hook`\" pulumi-lang-yaml=\"`channelsDingWebHook`\" pulumi-lang-java=\"`channelsDingWebHook`\"\u003e`channels_ding_web_hook`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`channelsMail`\" pulumi-lang-dotnet=\"`ChannelsMail`\" pulumi-lang-go=\"`channelsMail`\" pulumi-lang-python=\"`channels_mail`\" pulumi-lang-yaml=\"`channelsMail`\" pulumi-lang-java=\"`channelsMail`\"\u003e`channels_mail`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`channelsSms`\" pulumi-lang-dotnet=\"`ChannelsSms`\" pulumi-lang-go=\"`channelsSms`\" pulumi-lang-python=\"`channels_sms`\" pulumi-lang-yaml=\"`channelsSms`\" pulumi-lang-java=\"`channelsSms`\"\u003e`channels_sms`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:cms/alarmContactGroup:AlarmContactGroup":{"description":"Provides a CMS Alarm Contact Group resource.\n\nFor information about CMS Alarm Contact Group and how to use it, see [What is Alarm Contact Group](https://www.alibabacloud.com/help/en/cloudmonitor/latest/putcontactgroup).\n\n\u003e **NOTE:** Available since v1.101.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.cms.AlarmContactGroup(\"example\", {alarmContactGroupName: \"tf-example\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cms.AlarmContactGroup(\"example\", alarm_contact_group_name=\"tf-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Cms.AlarmContactGroup(\"example\", new()\n    {\n        AlarmContactGroupName = \"tf-example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cms.NewAlarmContactGroup(ctx, \"example\", \u0026cms.AlarmContactGroupArgs{\n\t\t\tAlarmContactGroupName: pulumi.String(\"tf-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.AlarmContactGroup;\nimport com.pulumi.alicloud.cms.AlarmContactGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new AlarmContactGroup(\"example\", AlarmContactGroupArgs.builder()\n            .alarmContactGroupName(\"tf-example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:cms:AlarmContactGroup\n    properties:\n      alarmContactGroupName: tf-example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCMS Alarm Contact Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cms/alarmContactGroup:AlarmContactGroup example tf-testacc123\n```\n\n","properties":{"alarmContactGroupName":{"type":"string","description":"The name of the alarm group.\n"},"contacts":{"type":"array","items":{"type":"string"},"description":"The name of the alert contact.\n"},"describe":{"type":"string","description":"The description of the alert group.\n"},"enableSubscribed":{"type":"boolean","description":"Whether to open weekly subscription.\n"}},"required":["alarmContactGroupName","enableSubscribed"],"inputProperties":{"alarmContactGroupName":{"type":"string","description":"The name of the alarm group.\n","willReplaceOnChanges":true},"contacts":{"type":"array","items":{"type":"string"},"description":"The name of the alert contact.\n"},"describe":{"type":"string","description":"The description of the alert group.\n"},"enableSubscribed":{"type":"boolean","description":"Whether to open weekly subscription.\n"}},"requiredInputs":["alarmContactGroupName"],"stateInputs":{"description":"Input properties used for looking up and filtering AlarmContactGroup resources.\n","properties":{"alarmContactGroupName":{"type":"string","description":"The name of the alarm group.\n","willReplaceOnChanges":true},"contacts":{"type":"array","items":{"type":"string"},"description":"The name of the alert contact.\n"},"describe":{"type":"string","description":"The description of the alert group.\n"},"enableSubscribed":{"type":"boolean","description":"Whether to open weekly subscription.\n"}},"type":"object"}},"alicloud:cms/dynamicTagGroup:DynamicTagGroup":{"description":"Provides a Cloud Monitor Service Dynamic Tag Group resource.\n\nFor information about Cloud Monitor Service Dynamic Tag Group and how to use it, see [What is Dynamic Tag Group](https://www.alibabacloud.com/help/en/cloudmonitor/latest/createdynamictaggroup).\n\n\u003e **NOTE:** Available since v1.142.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cms.AlarmContactGroup(\"default\", {alarmContactGroupName: name});\nconst defaultDynamicTagGroup = new alicloud.cms.DynamicTagGroup(\"default\", {\n    tagKey: name,\n    contactGroupLists: [_default.id],\n    matchExpresses: [{\n        tagValue: name,\n        tagValueMatchFunction: \"all\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cms.AlarmContactGroup(\"default\", alarm_contact_group_name=name)\ndefault_dynamic_tag_group = alicloud.cms.DynamicTagGroup(\"default\",\n    tag_key=name,\n    contact_group_lists=[default.id],\n    match_expresses=[{\n        \"tag_value\": name,\n        \"tag_value_match_function\": \"all\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Cms.AlarmContactGroup(\"default\", new()\n    {\n        AlarmContactGroupName = name,\n    });\n\n    var defaultDynamicTagGroup = new AliCloud.Cms.DynamicTagGroup(\"default\", new()\n    {\n        TagKey = name,\n        ContactGroupLists = new[]\n        {\n            @default.Id,\n        },\n        MatchExpresses = new[]\n        {\n            new AliCloud.Cms.Inputs.DynamicTagGroupMatchExpressArgs\n            {\n                TagValue = name,\n                TagValueMatchFunction = \"all\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cms.NewAlarmContactGroup(ctx, \"default\", \u0026cms.AlarmContactGroupArgs{\n\t\t\tAlarmContactGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cms.NewDynamicTagGroup(ctx, \"default\", \u0026cms.DynamicTagGroupArgs{\n\t\t\tTagKey: pulumi.String(name),\n\t\t\tContactGroupLists: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t\tMatchExpresses: cms.DynamicTagGroupMatchExpressArray{\n\t\t\t\t\u0026cms.DynamicTagGroupMatchExpressArgs{\n\t\t\t\t\tTagValue:              pulumi.String(name),\n\t\t\t\t\tTagValueMatchFunction: pulumi.String(\"all\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.AlarmContactGroup;\nimport com.pulumi.alicloud.cms.AlarmContactGroupArgs;\nimport com.pulumi.alicloud.cms.DynamicTagGroup;\nimport com.pulumi.alicloud.cms.DynamicTagGroupArgs;\nimport com.pulumi.alicloud.cms.inputs.DynamicTagGroupMatchExpressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new AlarmContactGroup(\"default\", AlarmContactGroupArgs.builder()\n            .alarmContactGroupName(name)\n            .build());\n\n        var defaultDynamicTagGroup = new DynamicTagGroup(\"defaultDynamicTagGroup\", DynamicTagGroupArgs.builder()\n            .tagKey(name)\n            .contactGroupLists(default_.id())\n            .matchExpresses(DynamicTagGroupMatchExpressArgs.builder()\n                .tagValue(name)\n                .tagValueMatchFunction(\"all\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cms:AlarmContactGroup\n    properties:\n      alarmContactGroupName: ${name}\n  defaultDynamicTagGroup:\n    type: alicloud:cms:DynamicTagGroup\n    name: default\n    properties:\n      tagKey: ${name}\n      contactGroupLists:\n        - ${default.id}\n      matchExpresses:\n        - tagValue: ${name}\n          tagValueMatchFunction: all\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Dynamic Tag Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cms/dynamicTagGroup:DynamicTagGroup example \u003cid\u003e\n```\n\n","properties":{"contactGroupLists":{"type":"array","items":{"type":"string"},"description":"The alert contact groups. The alert notifications of the application group are sent to the alert contacts that belong to the specified alert contact groups.\n"},"matchExpressFilterRelation":{"type":"string","description":"The relationship between the conditional expressions for the tag values of the cloud resources. Valid values: \u003cspan pulumi-lang-nodejs=\"`and`\" pulumi-lang-dotnet=\"`And`\" pulumi-lang-go=\"`and`\" pulumi-lang-python=\"`and`\" pulumi-lang-yaml=\"`and`\" pulumi-lang-java=\"`and`\"\u003e`and`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`or`\" pulumi-lang-dotnet=\"`Or`\" pulumi-lang-go=\"`or`\" pulumi-lang-python=\"`or`\" pulumi-lang-yaml=\"`or`\" pulumi-lang-java=\"`or`\"\u003e`or`\u003c/span\u003e.\n"},"matchExpresses":{"type":"array","items":{"$ref":"#/types/alicloud:cms/DynamicTagGroupMatchExpress:DynamicTagGroupMatchExpress"},"description":"The conditional expressions used to create an application group based on the tag. See \u003cspan pulumi-lang-nodejs=\"`matchExpress`\" pulumi-lang-dotnet=\"`MatchExpress`\" pulumi-lang-go=\"`matchExpress`\" pulumi-lang-python=\"`match_express`\" pulumi-lang-yaml=\"`matchExpress`\" pulumi-lang-java=\"`matchExpress`\"\u003e`match_express`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the Dynamic Tag Group.\n"},"tagKey":{"type":"string","description":"The tag keys of the cloud resources.\n"},"templateIdLists":{"type":"array","items":{"type":"string"},"description":"The IDs of the alert templates.\n"}},"required":["contactGroupLists","matchExpresses","matchExpressFilterRelation","status","tagKey"],"inputProperties":{"contactGroupLists":{"type":"array","items":{"type":"string"},"description":"The alert contact groups. The alert notifications of the application group are sent to the alert contacts that belong to the specified alert contact groups.\n","willReplaceOnChanges":true},"matchExpressFilterRelation":{"type":"string","description":"The relationship between the conditional expressions for the tag values of the cloud resources. Valid values: \u003cspan pulumi-lang-nodejs=\"`and`\" pulumi-lang-dotnet=\"`And`\" pulumi-lang-go=\"`and`\" pulumi-lang-python=\"`and`\" pulumi-lang-yaml=\"`and`\" pulumi-lang-java=\"`and`\"\u003e`and`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`or`\" pulumi-lang-dotnet=\"`Or`\" pulumi-lang-go=\"`or`\" pulumi-lang-python=\"`or`\" pulumi-lang-yaml=\"`or`\" pulumi-lang-java=\"`or`\"\u003e`or`\u003c/span\u003e.\n","willReplaceOnChanges":true},"matchExpresses":{"type":"array","items":{"$ref":"#/types/alicloud:cms/DynamicTagGroupMatchExpress:DynamicTagGroupMatchExpress"},"description":"The conditional expressions used to create an application group based on the tag. See \u003cspan pulumi-lang-nodejs=\"`matchExpress`\" pulumi-lang-dotnet=\"`MatchExpress`\" pulumi-lang-go=\"`matchExpress`\" pulumi-lang-python=\"`match_express`\" pulumi-lang-yaml=\"`matchExpress`\" pulumi-lang-java=\"`matchExpress`\"\u003e`match_express`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"tagKey":{"type":"string","description":"The tag keys of the cloud resources.\n","willReplaceOnChanges":true},"templateIdLists":{"type":"array","items":{"type":"string"},"description":"The IDs of the alert templates.\n","willReplaceOnChanges":true}},"requiredInputs":["contactGroupLists","matchExpresses","tagKey"],"stateInputs":{"description":"Input properties used for looking up and filtering DynamicTagGroup resources.\n","properties":{"contactGroupLists":{"type":"array","items":{"type":"string"},"description":"The alert contact groups. The alert notifications of the application group are sent to the alert contacts that belong to the specified alert contact groups.\n","willReplaceOnChanges":true},"matchExpressFilterRelation":{"type":"string","description":"The relationship between the conditional expressions for the tag values of the cloud resources. Valid values: \u003cspan pulumi-lang-nodejs=\"`and`\" pulumi-lang-dotnet=\"`And`\" pulumi-lang-go=\"`and`\" pulumi-lang-python=\"`and`\" pulumi-lang-yaml=\"`and`\" pulumi-lang-java=\"`and`\"\u003e`and`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`or`\" pulumi-lang-dotnet=\"`Or`\" pulumi-lang-go=\"`or`\" pulumi-lang-python=\"`or`\" pulumi-lang-yaml=\"`or`\" pulumi-lang-java=\"`or`\"\u003e`or`\u003c/span\u003e.\n","willReplaceOnChanges":true},"matchExpresses":{"type":"array","items":{"$ref":"#/types/alicloud:cms/DynamicTagGroupMatchExpress:DynamicTagGroupMatchExpress"},"description":"The conditional expressions used to create an application group based on the tag. See \u003cspan pulumi-lang-nodejs=\"`matchExpress`\" pulumi-lang-dotnet=\"`MatchExpress`\" pulumi-lang-go=\"`matchExpress`\" pulumi-lang-python=\"`match_express`\" pulumi-lang-yaml=\"`matchExpress`\" pulumi-lang-java=\"`matchExpress`\"\u003e`match_express`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Dynamic Tag Group.\n"},"tagKey":{"type":"string","description":"The tag keys of the cloud resources.\n","willReplaceOnChanges":true},"templateIdLists":{"type":"array","items":{"type":"string"},"description":"The IDs of the alert templates.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cms/eventRule:EventRule":{"description":"Provides a Cloud Monitor Service Event Rule resource.\n\nFor information about Cloud Monitor Service Event Rule and how to use it, see [What is Event Rule](https://www.alibabacloud.com/help/en/cloudmonitor/latest/puteventrule).\n\n\u003e **NOTE:** Available since v1.182.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new alicloud.cms.MonitorGroup(\"default\", {monitorGroupName: name});\nconst example = new alicloud.cms.EventRule(\"example\", {\n    ruleName: name,\n    groupId: _default.id,\n    silenceTime: 100,\n    description: name,\n    status: \"ENABLED\",\n    eventPattern: {\n        product: \"ecs\",\n        sqlFilter: \"example_value\",\n        nameLists: [\"example_value\"],\n        levelLists: [\"CRITICAL\"],\n        eventTypeLists: [\"StatusNotification\"],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.cms.MonitorGroup(\"default\", monitor_group_name=name)\nexample = alicloud.cms.EventRule(\"example\",\n    rule_name=name,\n    group_id=default.id,\n    silence_time=100,\n    description=name,\n    status=\"ENABLED\",\n    event_pattern={\n        \"product\": \"ecs\",\n        \"sql_filter\": \"example_value\",\n        \"name_lists\": [\"example_value\"],\n        \"level_lists\": [\"CRITICAL\"],\n        \"event_type_lists\": [\"StatusNotification\"],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new AliCloud.Cms.MonitorGroup(\"default\", new()\n    {\n        MonitorGroupName = name,\n    });\n\n    var example = new AliCloud.Cms.EventRule(\"example\", new()\n    {\n        RuleName = name,\n        GroupId = @default.Id,\n        SilenceTime = 100,\n        Description = name,\n        Status = \"ENABLED\",\n        EventPattern = new AliCloud.Cms.Inputs.EventRuleEventPatternArgs\n        {\n            Product = \"ecs\",\n            SqlFilter = \"example_value\",\n            NameLists = new[]\n            {\n                \"example_value\",\n            },\n            LevelLists = new[]\n            {\n                \"CRITICAL\",\n            },\n            EventTypeLists = new[]\n            {\n                \"StatusNotification\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cms.NewMonitorGroup(ctx, \"default\", \u0026cms.MonitorGroupArgs{\n\t\t\tMonitorGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cms.NewEventRule(ctx, \"example\", \u0026cms.EventRuleArgs{\n\t\t\tRuleName:    pulumi.String(name),\n\t\t\tGroupId:     _default.ID(),\n\t\t\tSilenceTime: pulumi.Int(100),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tStatus:      pulumi.String(\"ENABLED\"),\n\t\t\tEventPattern: \u0026cms.EventRuleEventPatternArgs{\n\t\t\t\tProduct:   pulumi.String(\"ecs\"),\n\t\t\t\tSqlFilter: pulumi.String(\"example_value\"),\n\t\t\t\tNameLists: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"example_value\"),\n\t\t\t\t},\n\t\t\t\tLevelLists: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"CRITICAL\"),\n\t\t\t\t},\n\t\t\t\tEventTypeLists: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"StatusNotification\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.MonitorGroup;\nimport com.pulumi.alicloud.cms.MonitorGroupArgs;\nimport com.pulumi.alicloud.cms.EventRule;\nimport com.pulumi.alicloud.cms.EventRuleArgs;\nimport com.pulumi.alicloud.cms.inputs.EventRuleEventPatternArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new MonitorGroup(\"default\", MonitorGroupArgs.builder()\n            .monitorGroupName(name)\n            .build());\n\n        var example = new EventRule(\"example\", EventRuleArgs.builder()\n            .ruleName(name)\n            .groupId(default_.id())\n            .silenceTime(100)\n            .description(name)\n            .status(\"ENABLED\")\n            .eventPattern(EventRuleEventPatternArgs.builder()\n                .product(\"ecs\")\n                .sqlFilter(\"example_value\")\n                .nameLists(\"example_value\")\n                .levelLists(\"CRITICAL\")\n                .eventTypeLists(\"StatusNotification\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:cms:MonitorGroup\n    properties:\n      monitorGroupName: ${name}\n  example:\n    type: alicloud:cms:EventRule\n    properties:\n      ruleName: ${name}\n      groupId: ${default.id}\n      silenceTime: 100\n      description: ${name}\n      status: ENABLED\n      eventPattern:\n        product: ecs\n        sqlFilter: example_value\n        nameLists:\n          - example_value\n        levelLists:\n          - CRITICAL\n        eventTypeLists:\n          - StatusNotification\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Event Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cms/eventRule:EventRule example \u003crule_name\u003e\n```\n\n","properties":{"contactParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleContactParameter:EventRuleContactParameter"},"description":"The information about the alert contact groups that receive alert notifications. See \u003cspan pulumi-lang-nodejs=\"`contactParameters`\" pulumi-lang-dotnet=\"`ContactParameters`\" pulumi-lang-go=\"`contactParameters`\" pulumi-lang-python=\"`contact_parameters`\" pulumi-lang-yaml=\"`contactParameters`\" pulumi-lang-java=\"`contactParameters`\"\u003e`contact_parameters`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"The description of the event-triggered alert rule.\n"},"eventPattern":{"$ref":"#/types/alicloud:cms/EventRuleEventPattern:EventRuleEventPattern","description":"Event mode, used to describe the trigger conditions for this event. See \u003cspan pulumi-lang-nodejs=\"`eventPattern`\" pulumi-lang-dotnet=\"`EventPattern`\" pulumi-lang-go=\"`eventPattern`\" pulumi-lang-python=\"`event_pattern`\" pulumi-lang-yaml=\"`eventPattern`\" pulumi-lang-java=\"`eventPattern`\"\u003e`event_pattern`\u003c/span\u003e below.\n"},"fcParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleFcParameter:EventRuleFcParameter"},"description":"The information about the recipients in Function Compute. See \u003cspan pulumi-lang-nodejs=\"`fcParameters`\" pulumi-lang-dotnet=\"`FcParameters`\" pulumi-lang-go=\"`fcParameters`\" pulumi-lang-python=\"`fc_parameters`\" pulumi-lang-yaml=\"`fcParameters`\" pulumi-lang-java=\"`fcParameters`\"\u003e`fc_parameters`\u003c/span\u003e below.\n"},"groupId":{"type":"string","description":"The ID of the application group to which the event-triggered alert rule belongs.\n"},"mnsParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleMnsParameter:EventRuleMnsParameter"},"description":"The information about the recipients in Message Service (MNS). See \u003cspan pulumi-lang-nodejs=\"`mnsParameters`\" pulumi-lang-dotnet=\"`MnsParameters`\" pulumi-lang-go=\"`mnsParameters`\" pulumi-lang-python=\"`mns_parameters`\" pulumi-lang-yaml=\"`mnsParameters`\" pulumi-lang-java=\"`mnsParameters`\"\u003e`mns_parameters`\u003c/span\u003e below.\n"},"openApiParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleOpenApiParameter:EventRuleOpenApiParameter"},"description":"The parameters of API callback notification. See \u003cspan pulumi-lang-nodejs=\"`openApiParameters`\" pulumi-lang-dotnet=\"`OpenApiParameters`\" pulumi-lang-go=\"`openApiParameters`\" pulumi-lang-python=\"`open_api_parameters`\" pulumi-lang-yaml=\"`openApiParameters`\" pulumi-lang-java=\"`openApiParameters`\"\u003e`open_api_parameters`\u003c/span\u003e below.\n"},"ruleName":{"type":"string","description":"The name of the event-triggered alert rule.\n"},"silenceTime":{"type":"integer","description":"The silence time.\n"},"slsParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleSlsParameter:EventRuleSlsParameter"},"description":"The information about the recipients in Simple Log Service. See \u003cspan pulumi-lang-nodejs=\"`slsParameters`\" pulumi-lang-dotnet=\"`SlsParameters`\" pulumi-lang-go=\"`slsParameters`\" pulumi-lang-python=\"`sls_parameters`\" pulumi-lang-yaml=\"`slsParameters`\" pulumi-lang-java=\"`slsParameters`\"\u003e`sls_parameters`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `ENABLED`, `DISABLED`.\n"},"webhookParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleWebhookParameter:EventRuleWebhookParameter"},"description":"The information about the callback URLs that are used to receive alert notifications. See \u003cspan pulumi-lang-nodejs=\"`webhookParameters`\" pulumi-lang-dotnet=\"`WebhookParameters`\" pulumi-lang-go=\"`webhookParameters`\" pulumi-lang-python=\"`webhook_parameters`\" pulumi-lang-yaml=\"`webhookParameters`\" pulumi-lang-java=\"`webhookParameters`\"\u003e`webhook_parameters`\u003c/span\u003e below.\n"}},"required":["eventPattern","ruleName","status"],"inputProperties":{"contactParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleContactParameter:EventRuleContactParameter"},"description":"The information about the alert contact groups that receive alert notifications. See \u003cspan pulumi-lang-nodejs=\"`contactParameters`\" pulumi-lang-dotnet=\"`ContactParameters`\" pulumi-lang-go=\"`contactParameters`\" pulumi-lang-python=\"`contact_parameters`\" pulumi-lang-yaml=\"`contactParameters`\" pulumi-lang-java=\"`contactParameters`\"\u003e`contact_parameters`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"The description of the event-triggered alert rule.\n"},"eventPattern":{"$ref":"#/types/alicloud:cms/EventRuleEventPattern:EventRuleEventPattern","description":"Event mode, used to describe the trigger conditions for this event. See \u003cspan pulumi-lang-nodejs=\"`eventPattern`\" pulumi-lang-dotnet=\"`EventPattern`\" pulumi-lang-go=\"`eventPattern`\" pulumi-lang-python=\"`event_pattern`\" pulumi-lang-yaml=\"`eventPattern`\" pulumi-lang-java=\"`eventPattern`\"\u003e`event_pattern`\u003c/span\u003e below.\n"},"fcParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleFcParameter:EventRuleFcParameter"},"description":"The information about the recipients in Function Compute. See \u003cspan pulumi-lang-nodejs=\"`fcParameters`\" pulumi-lang-dotnet=\"`FcParameters`\" pulumi-lang-go=\"`fcParameters`\" pulumi-lang-python=\"`fc_parameters`\" pulumi-lang-yaml=\"`fcParameters`\" pulumi-lang-java=\"`fcParameters`\"\u003e`fc_parameters`\u003c/span\u003e below.\n"},"groupId":{"type":"string","description":"The ID of the application group to which the event-triggered alert rule belongs.\n"},"mnsParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleMnsParameter:EventRuleMnsParameter"},"description":"The information about the recipients in Message Service (MNS). See \u003cspan pulumi-lang-nodejs=\"`mnsParameters`\" pulumi-lang-dotnet=\"`MnsParameters`\" pulumi-lang-go=\"`mnsParameters`\" pulumi-lang-python=\"`mns_parameters`\" pulumi-lang-yaml=\"`mnsParameters`\" pulumi-lang-java=\"`mnsParameters`\"\u003e`mns_parameters`\u003c/span\u003e below.\n"},"openApiParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleOpenApiParameter:EventRuleOpenApiParameter"},"description":"The parameters of API callback notification. See \u003cspan pulumi-lang-nodejs=\"`openApiParameters`\" pulumi-lang-dotnet=\"`OpenApiParameters`\" pulumi-lang-go=\"`openApiParameters`\" pulumi-lang-python=\"`open_api_parameters`\" pulumi-lang-yaml=\"`openApiParameters`\" pulumi-lang-java=\"`openApiParameters`\"\u003e`open_api_parameters`\u003c/span\u003e below.\n"},"ruleName":{"type":"string","description":"The name of the event-triggered alert rule.\n","willReplaceOnChanges":true},"silenceTime":{"type":"integer","description":"The silence time.\n"},"slsParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleSlsParameter:EventRuleSlsParameter"},"description":"The information about the recipients in Simple Log Service. See \u003cspan pulumi-lang-nodejs=\"`slsParameters`\" pulumi-lang-dotnet=\"`SlsParameters`\" pulumi-lang-go=\"`slsParameters`\" pulumi-lang-python=\"`sls_parameters`\" pulumi-lang-yaml=\"`slsParameters`\" pulumi-lang-java=\"`slsParameters`\"\u003e`sls_parameters`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `ENABLED`, `DISABLED`.\n"},"webhookParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleWebhookParameter:EventRuleWebhookParameter"},"description":"The information about the callback URLs that are used to receive alert notifications. See \u003cspan pulumi-lang-nodejs=\"`webhookParameters`\" pulumi-lang-dotnet=\"`WebhookParameters`\" pulumi-lang-go=\"`webhookParameters`\" pulumi-lang-python=\"`webhook_parameters`\" pulumi-lang-yaml=\"`webhookParameters`\" pulumi-lang-java=\"`webhookParameters`\"\u003e`webhook_parameters`\u003c/span\u003e below.\n"}},"requiredInputs":["eventPattern","ruleName"],"stateInputs":{"description":"Input properties used for looking up and filtering EventRule resources.\n","properties":{"contactParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleContactParameter:EventRuleContactParameter"},"description":"The information about the alert contact groups that receive alert notifications. See \u003cspan pulumi-lang-nodejs=\"`contactParameters`\" pulumi-lang-dotnet=\"`ContactParameters`\" pulumi-lang-go=\"`contactParameters`\" pulumi-lang-python=\"`contact_parameters`\" pulumi-lang-yaml=\"`contactParameters`\" pulumi-lang-java=\"`contactParameters`\"\u003e`contact_parameters`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"The description of the event-triggered alert rule.\n"},"eventPattern":{"$ref":"#/types/alicloud:cms/EventRuleEventPattern:EventRuleEventPattern","description":"Event mode, used to describe the trigger conditions for this event. See \u003cspan pulumi-lang-nodejs=\"`eventPattern`\" pulumi-lang-dotnet=\"`EventPattern`\" pulumi-lang-go=\"`eventPattern`\" pulumi-lang-python=\"`event_pattern`\" pulumi-lang-yaml=\"`eventPattern`\" pulumi-lang-java=\"`eventPattern`\"\u003e`event_pattern`\u003c/span\u003e below.\n"},"fcParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleFcParameter:EventRuleFcParameter"},"description":"The information about the recipients in Function Compute. See \u003cspan pulumi-lang-nodejs=\"`fcParameters`\" pulumi-lang-dotnet=\"`FcParameters`\" pulumi-lang-go=\"`fcParameters`\" pulumi-lang-python=\"`fc_parameters`\" pulumi-lang-yaml=\"`fcParameters`\" pulumi-lang-java=\"`fcParameters`\"\u003e`fc_parameters`\u003c/span\u003e below.\n"},"groupId":{"type":"string","description":"The ID of the application group to which the event-triggered alert rule belongs.\n"},"mnsParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleMnsParameter:EventRuleMnsParameter"},"description":"The information about the recipients in Message Service (MNS). See \u003cspan pulumi-lang-nodejs=\"`mnsParameters`\" pulumi-lang-dotnet=\"`MnsParameters`\" pulumi-lang-go=\"`mnsParameters`\" pulumi-lang-python=\"`mns_parameters`\" pulumi-lang-yaml=\"`mnsParameters`\" pulumi-lang-java=\"`mnsParameters`\"\u003e`mns_parameters`\u003c/span\u003e below.\n"},"openApiParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleOpenApiParameter:EventRuleOpenApiParameter"},"description":"The parameters of API callback notification. See \u003cspan pulumi-lang-nodejs=\"`openApiParameters`\" pulumi-lang-dotnet=\"`OpenApiParameters`\" pulumi-lang-go=\"`openApiParameters`\" pulumi-lang-python=\"`open_api_parameters`\" pulumi-lang-yaml=\"`openApiParameters`\" pulumi-lang-java=\"`openApiParameters`\"\u003e`open_api_parameters`\u003c/span\u003e below.\n"},"ruleName":{"type":"string","description":"The name of the event-triggered alert rule.\n","willReplaceOnChanges":true},"silenceTime":{"type":"integer","description":"The silence time.\n"},"slsParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleSlsParameter:EventRuleSlsParameter"},"description":"The information about the recipients in Simple Log Service. See \u003cspan pulumi-lang-nodejs=\"`slsParameters`\" pulumi-lang-dotnet=\"`SlsParameters`\" pulumi-lang-go=\"`slsParameters`\" pulumi-lang-python=\"`sls_parameters`\" pulumi-lang-yaml=\"`slsParameters`\" pulumi-lang-java=\"`slsParameters`\"\u003e`sls_parameters`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `ENABLED`, `DISABLED`.\n"},"webhookParameters":{"type":"array","items":{"$ref":"#/types/alicloud:cms/EventRuleWebhookParameter:EventRuleWebhookParameter"},"description":"The information about the callback URLs that are used to receive alert notifications. See \u003cspan pulumi-lang-nodejs=\"`webhookParameters`\" pulumi-lang-dotnet=\"`WebhookParameters`\" pulumi-lang-go=\"`webhookParameters`\" pulumi-lang-python=\"`webhook_parameters`\" pulumi-lang-yaml=\"`webhookParameters`\" pulumi-lang-java=\"`webhookParameters`\"\u003e`webhook_parameters`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:cms/groupMetricRule:GroupMetricRule":{"description":"Provides a Cloud Monitor Service Group Metric Rule resource.\n\nFor information about Cloud Monitor Service Group Metric Rule and how to use it, see [What is Group Metric Rule](https://www.alibabacloud.com/help/en/cloudmonitor/latest/putgroupmetricrule).\n\n\u003e **NOTE:** Available since v1.104.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new alicloud.cms.AlarmContactGroup(\"default\", {\n    alarmContactGroupName: name,\n    describe: name,\n});\nconst defaultMonitorGroup = new alicloud.cms.MonitorGroup(\"default\", {\n    monitorGroupName: name,\n    contactGroups: [_default.id],\n});\nconst _this = new alicloud.cms.GroupMetricRule(\"this\", {\n    groupId: defaultMonitorGroup.id,\n    groupMetricRuleName: name,\n    category: \"ecs\",\n    metricName: \"cpu_total\",\n    namespace: \"acs_ecs_dashboard\",\n    ruleId: name,\n    period: 60,\n    interval: \"3600\",\n    silenceTime: 85800,\n    noEffectiveInterval: \"00:00-05:30\",\n    webhook: \"http://www.aliyun.com\",\n    escalations: {\n        warn: {\n            comparisonOperator: \"GreaterThanOrEqualToThreshold\",\n            statistics: \"Average\",\n            threshold: \"90\",\n            times: 3,\n        },\n        info: {\n            comparisonOperator: \"LessThanLastWeek\",\n            statistics: \"Average\",\n            threshold: \"90\",\n            times: 5,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.cms.AlarmContactGroup(\"default\",\n    alarm_contact_group_name=name,\n    describe=name)\ndefault_monitor_group = alicloud.cms.MonitorGroup(\"default\",\n    monitor_group_name=name,\n    contact_groups=[default.id])\nthis = alicloud.cms.GroupMetricRule(\"this\",\n    group_id=default_monitor_group.id,\n    group_metric_rule_name=name,\n    category=\"ecs\",\n    metric_name=\"cpu_total\",\n    namespace=\"acs_ecs_dashboard\",\n    rule_id=name,\n    period=60,\n    interval=\"3600\",\n    silence_time=85800,\n    no_effective_interval=\"00:00-05:30\",\n    webhook=\"http://www.aliyun.com\",\n    escalations={\n        \"warn\": {\n            \"comparison_operator\": \"GreaterThanOrEqualToThreshold\",\n            \"statistics\": \"Average\",\n            \"threshold\": \"90\",\n            \"times\": 3,\n        },\n        \"info\": {\n            \"comparison_operator\": \"LessThanLastWeek\",\n            \"statistics\": \"Average\",\n            \"threshold\": \"90\",\n            \"times\": 5,\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new AliCloud.Cms.AlarmContactGroup(\"default\", new()\n    {\n        AlarmContactGroupName = name,\n        Describe = name,\n    });\n\n    var defaultMonitorGroup = new AliCloud.Cms.MonitorGroup(\"default\", new()\n    {\n        MonitorGroupName = name,\n        ContactGroups = new[]\n        {\n            @default.Id,\n        },\n    });\n\n    var @this = new AliCloud.Cms.GroupMetricRule(\"this\", new()\n    {\n        GroupId = defaultMonitorGroup.Id,\n        GroupMetricRuleName = name,\n        Category = \"ecs\",\n        MetricName = \"cpu_total\",\n        Namespace = \"acs_ecs_dashboard\",\n        RuleId = name,\n        Period = 60,\n        Interval = \"3600\",\n        SilenceTime = 85800,\n        NoEffectiveInterval = \"00:00-05:30\",\n        Webhook = \"http://www.aliyun.com\",\n        Escalations = new AliCloud.Cms.Inputs.GroupMetricRuleEscalationsArgs\n        {\n            Warn = new AliCloud.Cms.Inputs.GroupMetricRuleEscalationsWarnArgs\n            {\n                ComparisonOperator = \"GreaterThanOrEqualToThreshold\",\n                Statistics = \"Average\",\n                Threshold = \"90\",\n                Times = 3,\n            },\n            Info = new AliCloud.Cms.Inputs.GroupMetricRuleEscalationsInfoArgs\n            {\n                ComparisonOperator = \"LessThanLastWeek\",\n                Statistics = \"Average\",\n                Threshold = \"90\",\n                Times = 5,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cms.NewAlarmContactGroup(ctx, \"default\", \u0026cms.AlarmContactGroupArgs{\n\t\t\tAlarmContactGroupName: pulumi.String(name),\n\t\t\tDescribe:              pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultMonitorGroup, err := cms.NewMonitorGroup(ctx, \"default\", \u0026cms.MonitorGroupArgs{\n\t\t\tMonitorGroupName: pulumi.String(name),\n\t\t\tContactGroups: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cms.NewGroupMetricRule(ctx, \"this\", \u0026cms.GroupMetricRuleArgs{\n\t\t\tGroupId:             defaultMonitorGroup.ID(),\n\t\t\tGroupMetricRuleName: pulumi.String(name),\n\t\t\tCategory:            pulumi.String(\"ecs\"),\n\t\t\tMetricName:          pulumi.String(\"cpu_total\"),\n\t\t\tNamespace:           pulumi.String(\"acs_ecs_dashboard\"),\n\t\t\tRuleId:              pulumi.String(name),\n\t\t\tPeriod:              pulumi.Int(60),\n\t\t\tInterval:            pulumi.String(\"3600\"),\n\t\t\tSilenceTime:         pulumi.Int(85800),\n\t\t\tNoEffectiveInterval: pulumi.String(\"00:00-05:30\"),\n\t\t\tWebhook:             pulumi.String(\"http://www.aliyun.com\"),\n\t\t\tEscalations: \u0026cms.GroupMetricRuleEscalationsArgs{\n\t\t\t\tWarn: \u0026cms.GroupMetricRuleEscalationsWarnArgs{\n\t\t\t\t\tComparisonOperator: pulumi.String(\"GreaterThanOrEqualToThreshold\"),\n\t\t\t\t\tStatistics:         pulumi.String(\"Average\"),\n\t\t\t\t\tThreshold:          pulumi.String(\"90\"),\n\t\t\t\t\tTimes:              pulumi.Int(3),\n\t\t\t\t},\n\t\t\t\tInfo: \u0026cms.GroupMetricRuleEscalationsInfoArgs{\n\t\t\t\t\tComparisonOperator: pulumi.String(\"LessThanLastWeek\"),\n\t\t\t\t\tStatistics:         pulumi.String(\"Average\"),\n\t\t\t\t\tThreshold:          pulumi.String(\"90\"),\n\t\t\t\t\tTimes:              pulumi.Int(5),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.AlarmContactGroup;\nimport com.pulumi.alicloud.cms.AlarmContactGroupArgs;\nimport com.pulumi.alicloud.cms.MonitorGroup;\nimport com.pulumi.alicloud.cms.MonitorGroupArgs;\nimport com.pulumi.alicloud.cms.GroupMetricRule;\nimport com.pulumi.alicloud.cms.GroupMetricRuleArgs;\nimport com.pulumi.alicloud.cms.inputs.GroupMetricRuleEscalationsArgs;\nimport com.pulumi.alicloud.cms.inputs.GroupMetricRuleEscalationsWarnArgs;\nimport com.pulumi.alicloud.cms.inputs.GroupMetricRuleEscalationsInfoArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new AlarmContactGroup(\"default\", AlarmContactGroupArgs.builder()\n            .alarmContactGroupName(name)\n            .describe(name)\n            .build());\n\n        var defaultMonitorGroup = new MonitorGroup(\"defaultMonitorGroup\", MonitorGroupArgs.builder()\n            .monitorGroupName(name)\n            .contactGroups(default_.id())\n            .build());\n\n        var this_ = new GroupMetricRule(\"this\", GroupMetricRuleArgs.builder()\n            .groupId(defaultMonitorGroup.id())\n            .groupMetricRuleName(name)\n            .category(\"ecs\")\n            .metricName(\"cpu_total\")\n            .namespace(\"acs_ecs_dashboard\")\n            .ruleId(name)\n            .period(60)\n            .interval(\"3600\")\n            .silenceTime(85800)\n            .noEffectiveInterval(\"00:00-05:30\")\n            .webhook(\"http://www.aliyun.com\")\n            .escalations(GroupMetricRuleEscalationsArgs.builder()\n                .warn(GroupMetricRuleEscalationsWarnArgs.builder()\n                    .comparisonOperator(\"GreaterThanOrEqualToThreshold\")\n                    .statistics(\"Average\")\n                    .threshold(\"90\")\n                    .times(3)\n                    .build())\n                .info(GroupMetricRuleEscalationsInfoArgs.builder()\n                    .comparisonOperator(\"LessThanLastWeek\")\n                    .statistics(\"Average\")\n                    .threshold(\"90\")\n                    .times(5)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:cms:AlarmContactGroup\n    properties:\n      alarmContactGroupName: ${name}\n      describe: ${name}\n  defaultMonitorGroup:\n    type: alicloud:cms:MonitorGroup\n    name: default\n    properties:\n      monitorGroupName: ${name}\n      contactGroups:\n        - ${default.id}\n  this:\n    type: alicloud:cms:GroupMetricRule\n    properties:\n      groupId: ${defaultMonitorGroup.id}\n      groupMetricRuleName: ${name}\n      category: ecs\n      metricName: cpu_total\n      namespace: acs_ecs_dashboard\n      ruleId: ${name}\n      period: '60'\n      interval: '3600'\n      silenceTime: 85800\n      noEffectiveInterval: 00:00-05:30\n      webhook: http://www.aliyun.com\n      escalations:\n        warn:\n          comparisonOperator: GreaterThanOrEqualToThreshold\n          statistics: Average\n          threshold: '90'\n          times: 3\n        info:\n          comparisonOperator: LessThanLastWeek\n          statistics: Average\n          threshold: '90'\n          times: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Group Metric Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cms/groupMetricRule:GroupMetricRule example \u003crule_id\u003e\n```\n\n","properties":{"category":{"type":"string","description":"The abbreviation of the service name.\n"},"contactGroups":{"type":"string","description":"Alarm contact group.\n"},"dimensions":{"type":"string","description":"The dimensions that specify the resources to be associated with the alert rule.\n"},"effectiveInterval":{"type":"string","description":"The time period during which the alert rule is effective.\n"},"emailSubject":{"type":"string","description":"The subject of the alert notification email.\n"},"escalations":{"$ref":"#/types/alicloud:cms/GroupMetricRuleEscalations:GroupMetricRuleEscalations","description":"Alarm level. See \u003cspan pulumi-lang-nodejs=\"`escalations`\" pulumi-lang-dotnet=\"`Escalations`\" pulumi-lang-go=\"`escalations`\" pulumi-lang-python=\"`escalations`\" pulumi-lang-yaml=\"`escalations`\" pulumi-lang-java=\"`escalations`\"\u003e`escalations`\u003c/span\u003e below.\n"},"groupId":{"type":"string","description":"The ID of the application group.\n"},"groupMetricRuleName":{"type":"string","description":"The name of the alert rule.\n"},"interval":{"type":"string","description":"The interval at which Cloud Monitor checks whether the alert rule is triggered. Unit: seconds.\n"},"metricName":{"type":"string","description":"The name of the metric.\n"},"namespace":{"type":"string","description":"The namespace of the service.\n"},"noEffectiveInterval":{"type":"string","description":"The time period during which the alert rule is ineffective.\n"},"period":{"type":"integer","description":"The aggregation period of the monitoring data. Unit: seconds. The value is an integral multiple of 60. Default value: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"ruleId":{"type":"string","description":"The ID of the alert rule.\n"},"silenceTime":{"type":"integer","description":"The mute period during which new alerts are not reported even if the alert trigger conditions are met. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e, which is equivalent to one day.\n"},"status":{"type":"string","description":"The status of Group Metric Rule.\n"},"targets":{"type":"array","items":{"$ref":"#/types/alicloud:cms/GroupMetricRuleTarget:GroupMetricRuleTarget"},"description":"The information about the resource for which alerts are triggered. See \u003cspan pulumi-lang-nodejs=\"`targets`\" pulumi-lang-dotnet=\"`Targets`\" pulumi-lang-go=\"`targets`\" pulumi-lang-python=\"`targets`\" pulumi-lang-yaml=\"`targets`\" pulumi-lang-java=\"`targets`\"\u003e`targets`\u003c/span\u003e below.\n"},"webhook":{"type":"string","description":"The callback URL.\n"}},"required":["contactGroups","dimensions","emailSubject","escalations","groupId","groupMetricRuleName","metricName","namespace","period","ruleId","silenceTime","status","targets"],"inputProperties":{"category":{"type":"string","description":"The abbreviation of the service name.\n"},"contactGroups":{"type":"string","description":"Alarm contact group.\n"},"dimensions":{"type":"string","description":"The dimensions that specify the resources to be associated with the alert rule.\n"},"effectiveInterval":{"type":"string","description":"The time period during which the alert rule is effective.\n"},"emailSubject":{"type":"string","description":"The subject of the alert notification email.\n"},"escalations":{"$ref":"#/types/alicloud:cms/GroupMetricRuleEscalations:GroupMetricRuleEscalations","description":"Alarm level. See \u003cspan pulumi-lang-nodejs=\"`escalations`\" pulumi-lang-dotnet=\"`Escalations`\" pulumi-lang-go=\"`escalations`\" pulumi-lang-python=\"`escalations`\" pulumi-lang-yaml=\"`escalations`\" pulumi-lang-java=\"`escalations`\"\u003e`escalations`\u003c/span\u003e below.\n"},"groupId":{"type":"string","description":"The ID of the application group.\n"},"groupMetricRuleName":{"type":"string","description":"The name of the alert rule.\n"},"interval":{"type":"string","description":"The interval at which Cloud Monitor checks whether the alert rule is triggered. Unit: seconds.\n"},"metricName":{"type":"string","description":"The name of the metric.\n"},"namespace":{"type":"string","description":"The namespace of the service.\n","willReplaceOnChanges":true},"noEffectiveInterval":{"type":"string","description":"The time period during which the alert rule is ineffective.\n"},"period":{"type":"integer","description":"The aggregation period of the monitoring data. Unit: seconds. The value is an integral multiple of 60. Default value: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"ruleId":{"type":"string","description":"The ID of the alert rule.\n","willReplaceOnChanges":true},"silenceTime":{"type":"integer","description":"The mute period during which new alerts are not reported even if the alert trigger conditions are met. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e, which is equivalent to one day.\n"},"targets":{"type":"array","items":{"$ref":"#/types/alicloud:cms/GroupMetricRuleTarget:GroupMetricRuleTarget"},"description":"The information about the resource for which alerts are triggered. See \u003cspan pulumi-lang-nodejs=\"`targets`\" pulumi-lang-dotnet=\"`Targets`\" pulumi-lang-go=\"`targets`\" pulumi-lang-python=\"`targets`\" pulumi-lang-yaml=\"`targets`\" pulumi-lang-java=\"`targets`\"\u003e`targets`\u003c/span\u003e below.\n"},"webhook":{"type":"string","description":"The callback URL.\n"}},"requiredInputs":["escalations","groupId","groupMetricRuleName","metricName","namespace","ruleId"],"stateInputs":{"description":"Input properties used for looking up and filtering GroupMetricRule resources.\n","properties":{"category":{"type":"string","description":"The abbreviation of the service name.\n"},"contactGroups":{"type":"string","description":"Alarm contact group.\n"},"dimensions":{"type":"string","description":"The dimensions that specify the resources to be associated with the alert rule.\n"},"effectiveInterval":{"type":"string","description":"The time period during which the alert rule is effective.\n"},"emailSubject":{"type":"string","description":"The subject of the alert notification email.\n"},"escalations":{"$ref":"#/types/alicloud:cms/GroupMetricRuleEscalations:GroupMetricRuleEscalations","description":"Alarm level. See \u003cspan pulumi-lang-nodejs=\"`escalations`\" pulumi-lang-dotnet=\"`Escalations`\" pulumi-lang-go=\"`escalations`\" pulumi-lang-python=\"`escalations`\" pulumi-lang-yaml=\"`escalations`\" pulumi-lang-java=\"`escalations`\"\u003e`escalations`\u003c/span\u003e below.\n"},"groupId":{"type":"string","description":"The ID of the application group.\n"},"groupMetricRuleName":{"type":"string","description":"The name of the alert rule.\n"},"interval":{"type":"string","description":"The interval at which Cloud Monitor checks whether the alert rule is triggered. Unit: seconds.\n"},"metricName":{"type":"string","description":"The name of the metric.\n"},"namespace":{"type":"string","description":"The namespace of the service.\n","willReplaceOnChanges":true},"noEffectiveInterval":{"type":"string","description":"The time period during which the alert rule is ineffective.\n"},"period":{"type":"integer","description":"The aggregation period of the monitoring data. Unit: seconds. The value is an integral multiple of 60. Default value: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e.\n"},"ruleId":{"type":"string","description":"The ID of the alert rule.\n","willReplaceOnChanges":true},"silenceTime":{"type":"integer","description":"The mute period during which new alerts are not reported even if the alert trigger conditions are met. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e, which is equivalent to one day.\n"},"status":{"type":"string","description":"The status of Group Metric Rule.\n"},"targets":{"type":"array","items":{"$ref":"#/types/alicloud:cms/GroupMetricRuleTarget:GroupMetricRuleTarget"},"description":"The information about the resource for which alerts are triggered. See \u003cspan pulumi-lang-nodejs=\"`targets`\" pulumi-lang-dotnet=\"`Targets`\" pulumi-lang-go=\"`targets`\" pulumi-lang-python=\"`targets`\" pulumi-lang-yaml=\"`targets`\" pulumi-lang-java=\"`targets`\"\u003e`targets`\u003c/span\u003e below.\n"},"webhook":{"type":"string","description":"The callback URL.\n"}},"type":"object"}},"alicloud:cms/hybridMonitorFcTask:HybridMonitorFcTask":{"description":"Provides a Cloud Monitor Service Hybrid Monitor Fc Task resource.\n\nFor information about Cloud Monitor Service Hybrid Monitor Fc Task and how to use it, see [What is Hybrid Monitor Fc Task](https://www.alibabacloud.com/help/en/cloudmonitor/latest/createhybridmonitortask).\n\n\u003e **NOTE:** Available since v1.179.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getAccount({});\nconst defaultNamespace = new alicloud.cms.Namespace(\"default\", {\n    description: name,\n    namespace: name,\n    specification: \"cms.s1.large\",\n});\nconst defaultHybridMonitorFcTask = new alicloud.cms.HybridMonitorFcTask(\"default\", {\n    namespace: defaultNamespace.id,\n    yarmConfig: `---\nproducts:\n- namespace: \\\\\"acs_ecs_dashboard\\\\\"\n  metric_info:\n  - metric_list:\n    - \\\\\"CPUUtilization\\\\\"\n    - \\\\\"DiskReadBPS\\\\\"\n    - \\\\\"InternetOut\\\\\"\n    - \\\\\"IntranetOut\\\\\"\n    - \\\\\"cpu_idle\\\\\"\n    - \\\\\"cpu_system\\\\\"\n    - \\\\\"cpu_total\\\\\"\n    - \\\\\"diskusage_utilization\\\\\"\n- namespace: \\\\\"acs_rds_dashboard\\\\\"\n  metric_info:\n  - metric_list:\n    - \\\\\"MySQL_QPS\\\\\"\n    - \\\\\"MySQL_TPS\\\\\"\n`,\n    targetUserId: _default.then(_default =\u003e _default.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_account()\ndefault_namespace = alicloud.cms.Namespace(\"default\",\n    description=name,\n    namespace=name,\n    specification=\"cms.s1.large\")\ndefault_hybrid_monitor_fc_task = alicloud.cms.HybridMonitorFcTask(\"default\",\n    namespace=default_namespace.id,\n    yarm_config=\"\"\"---\nproducts:\n- namespace: \\\"acs_ecs_dashboard\\\"\n  metric_info:\n  - metric_list:\n    - \\\"CPUUtilization\\\"\n    - \\\"DiskReadBPS\\\"\n    - \\\"InternetOut\\\"\n    - \\\"IntranetOut\\\"\n    - \\\"cpu_idle\\\"\n    - \\\"cpu_system\\\"\n    - \\\"cpu_total\\\"\n    - \\\"diskusage_utilization\\\"\n- namespace: \\\"acs_rds_dashboard\\\"\n  metric_info:\n  - metric_list:\n    - \\\"MySQL_QPS\\\"\n    - \\\"MySQL_TPS\\\"\n\"\"\",\n    target_user_id=default.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultNamespace = new AliCloud.Cms.Namespace(\"default\", new()\n    {\n        Description = name,\n        NamespaceName = name,\n        Specification = \"cms.s1.large\",\n    });\n\n    var defaultHybridMonitorFcTask = new AliCloud.Cms.HybridMonitorFcTask(\"default\", new()\n    {\n        Namespace = defaultNamespace.Id,\n        YarmConfig = @\"---\nproducts:\n- namespace: \\\"\"acs_ecs_dashboard\\\"\"\n  metric_info:\n  - metric_list:\n    - \\\"\"CPUUtilization\\\"\"\n    - \\\"\"DiskReadBPS\\\"\"\n    - \\\"\"InternetOut\\\"\"\n    - \\\"\"IntranetOut\\\"\"\n    - \\\"\"cpu_idle\\\"\"\n    - \\\"\"cpu_system\\\"\"\n    - \\\"\"cpu_total\\\"\"\n    - \\\"\"diskusage_utilization\\\"\"\n- namespace: \\\"\"acs_rds_dashboard\\\"\"\n  metric_info:\n  - metric_list:\n    - \\\"\"MySQL_QPS\\\"\"\n    - \\\"\"MySQL_TPS\\\"\"\n\",\n        TargetUserId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNamespace, err := cms.NewNamespace(ctx, \"default\", \u0026cms.NamespaceArgs{\n\t\t\tDescription:   pulumi.String(name),\n\t\t\tNamespace:     pulumi.String(name),\n\t\t\tSpecification: pulumi.String(\"cms.s1.large\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cms.NewHybridMonitorFcTask(ctx, \"default\", \u0026cms.HybridMonitorFcTaskArgs{\n\t\t\tNamespace: defaultNamespace.ID(),\n\t\t\tYarmConfig: pulumi.String(`---\nproducts:\n- namespace: \\\"acs_ecs_dashboard\\\"\n  metric_info:\n  - metric_list:\n    - \\\"CPUUtilization\\\"\n    - \\\"DiskReadBPS\\\"\n    - \\\"InternetOut\\\"\n    - \\\"IntranetOut\\\"\n    - \\\"cpu_idle\\\"\n    - \\\"cpu_system\\\"\n    - \\\"cpu_total\\\"\n    - \\\"diskusage_utilization\\\"\n- namespace: \\\"acs_rds_dashboard\\\"\n  metric_info:\n  - metric_list:\n    - \\\"MySQL_QPS\\\"\n    - \\\"MySQL_TPS\\\"\n`),\n\t\t\tTargetUserId: pulumi.String(_default.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.cms.Namespace;\nimport com.pulumi.alicloud.cms.NamespaceArgs;\nimport com.pulumi.alicloud.cms.HybridMonitorFcTask;\nimport com.pulumi.alicloud.cms.HybridMonitorFcTaskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var defaultNamespace = new Namespace(\"defaultNamespace\", NamespaceArgs.builder()\n            .description(name)\n            .namespace(name)\n            .specification(\"cms.s1.large\")\n            .build());\n\n        var defaultHybridMonitorFcTask = new HybridMonitorFcTask(\"defaultHybridMonitorFcTask\", HybridMonitorFcTaskArgs.builder()\n            .namespace(defaultNamespace.id())\n            .yarmConfig(\"\"\"\n---\nproducts:\n- namespace: \\\"acs_ecs_dashboard\\\"\n  metric_info:\n  - metric_list:\n    - \\\"CPUUtilization\\\"\n    - \\\"DiskReadBPS\\\"\n    - \\\"InternetOut\\\"\n    - \\\"IntranetOut\\\"\n    - \\\"cpu_idle\\\"\n    - \\\"cpu_system\\\"\n    - \\\"cpu_total\\\"\n    - \\\"diskusage_utilization\\\"\n- namespace: \\\"acs_rds_dashboard\\\"\n  metric_info:\n  - metric_list:\n    - \\\"MySQL_QPS\\\"\n    - \\\"MySQL_TPS\\\"\n            \"\"\")\n            .targetUserId(default_.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNamespace:\n    type: alicloud:cms:Namespace\n    name: default\n    properties:\n      description: ${name}\n      namespace: ${name}\n      specification: cms.s1.large\n  defaultHybridMonitorFcTask:\n    type: alicloud:cms:HybridMonitorFcTask\n    name: default\n    properties:\n      namespace: ${defaultNamespace.id}\n      yarmConfig: |\n        ---\n        products:\n        - namespace: \\\"acs_ecs_dashboard\\\"\n          metric_info:\n          - metric_list:\n            - \\\"CPUUtilization\\\"\n            - \\\"DiskReadBPS\\\"\n            - \\\"InternetOut\\\"\n            - \\\"IntranetOut\\\"\n            - \\\"cpu_idle\\\"\n            - \\\"cpu_system\\\"\n            - \\\"cpu_total\\\"\n            - \\\"diskusage_utilization\\\"\n        - namespace: \\\"acs_rds_dashboard\\\"\n          metric_info:\n          - metric_list:\n            - \\\"MySQL_QPS\\\"\n            - \\\"MySQL_TPS\\\"\n      targetUserId: ${default.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Hybrid Monitor Fc Task can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cms/hybridMonitorFcTask:HybridMonitorFcTask example \u003chybrid_monitor_fc_task_id\u003e:\u003cnamespace\u003e\n```\n\n","properties":{"hybridMonitorFcTaskId":{"type":"string","description":"The ID of the monitoring task.\n"},"namespace":{"type":"string","description":"The index warehouse where the host belongs.\n"},"targetUserId":{"type":"string","description":"The ID of the member account. If you call API operations by using a management account, you can connect the Alibaba Cloud services that are activated for a member account in Resource Directory to Hybrid Cloud Monitoring. You can use Resource Directory to monitor Alibaba Cloud services across enterprise accounts.\n"},"yarmConfig":{"type":"string","description":"The configuration file of the Alibaba Cloud service that you want to monitor by using Hybrid Cloud Monitoring.\n"}},"required":["hybridMonitorFcTaskId","namespace","targetUserId","yarmConfig"],"inputProperties":{"namespace":{"type":"string","description":"The index warehouse where the host belongs.\n","willReplaceOnChanges":true},"targetUserId":{"type":"string","description":"The ID of the member account. If you call API operations by using a management account, you can connect the Alibaba Cloud services that are activated for a member account in Resource Directory to Hybrid Cloud Monitoring. You can use Resource Directory to monitor Alibaba Cloud services across enterprise accounts.\n","willReplaceOnChanges":true},"yarmConfig":{"type":"string","description":"The configuration file of the Alibaba Cloud service that you want to monitor by using Hybrid Cloud Monitoring.\n"}},"requiredInputs":["namespace","yarmConfig"],"stateInputs":{"description":"Input properties used for looking up and filtering HybridMonitorFcTask resources.\n","properties":{"hybridMonitorFcTaskId":{"type":"string","description":"The ID of the monitoring task.\n"},"namespace":{"type":"string","description":"The index warehouse where the host belongs.\n","willReplaceOnChanges":true},"targetUserId":{"type":"string","description":"The ID of the member account. If you call API operations by using a management account, you can connect the Alibaba Cloud services that are activated for a member account in Resource Directory to Hybrid Cloud Monitoring. You can use Resource Directory to monitor Alibaba Cloud services across enterprise accounts.\n","willReplaceOnChanges":true},"yarmConfig":{"type":"string","description":"The configuration file of the Alibaba Cloud service that you want to monitor by using Hybrid Cloud Monitoring.\n"}},"type":"object"}},"alicloud:cms/hybridMonitorSlsTask:HybridMonitorSlsTask":{"description":"Provides a Cloud Monitor Service Hybrid Monitor Sls Task resource.\n\nFor information about Cloud Monitor Service Hybrid Monitor Sls Task and how to use it, see [What is Hybrid Monitor Sls Task](https://www.alibabacloud.com/help/en/cloudmonitor/latest/createhybridmonitortask).\n\n\u003e **NOTE:** Available since v1.179.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getAccount({});\nconst defaultGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst defaultUuid = new random.index.Uuid(\"default\", {});\nconst defaultProject = new alicloud.log.Project(\"default\", {projectName: std.replace({\n    text: defaultUuid.result,\n    search: \"-\",\n    replace: \"\",\n}).then(invoke =\u003e std.substr({\n    input: `tf-example-${invoke.result}`,\n    offset: 0,\n    length: 16,\n})).then(invoke =\u003e invoke.result)});\nconst defaultStore = new alicloud.log.Store(\"default\", {\n    projectName: defaultProject.projectName,\n    logstoreName: name,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst defaultSlsGroup = new alicloud.cms.SlsGroup(\"default\", {\n    slsGroupConfigs: [{\n        slsUserId: _default.then(_default =\u003e _default.id),\n        slsLogstore: defaultStore.logstoreName,\n        slsProject: defaultProject.projectName,\n        slsRegion: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.id),\n    }],\n    slsGroupDescription: name,\n    slsGroupName: name,\n});\nconst defaultNamespace = new alicloud.cms.Namespace(\"default\", {\n    namespace: std.replace({\n        text: defaultUuid.result,\n        search: \"-\",\n        replace: \"\",\n    }).then(invoke =\u003e std.substr({\n        input: `tf-example-${invoke.result}`,\n        offset: 0,\n        length: 16,\n    })).then(invoke =\u003e invoke.result),\n    specification: \"cms.s1.large\",\n});\nconst defaultHybridMonitorSlsTask = new alicloud.cms.HybridMonitorSlsTask(\"default\", {\n    taskName: name,\n    namespace: defaultNamespace.id,\n    description: name,\n    collectInterval: 60,\n    collectTargetType: defaultSlsGroup.id,\n    slsProcessConfig: {\n        filter: {\n            relation: \"and\",\n            filters: [{\n                operator: \"=\",\n                value: \"200\",\n                slsKeyName: \"code\",\n            }],\n        },\n        statistics: [{\n            \"function\": \"count\",\n            alias: \"level_count\",\n            slsKeyName: \"name\",\n            parameterOne: \"200\",\n            parameterTwo: \"299\",\n        }],\n        groupBies: [{\n            alias: \"code\",\n            slsKeyName: \"ApiResult\",\n        }],\n        expresses: [{\n            express: \"success_count\",\n            alias: \"SuccRate\",\n        }],\n    },\n    attachLabels: [{\n        name: \"app_service\",\n        value: \"example_Value\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_account()\ndefault_get_regions = alicloud.get_regions(current=True)\ndefault_uuid = random.index.Uuid(\"default\")\ndefault_project = alicloud.log.Project(\"default\", project_name=std.substr(input=f\"tf-example-{std.replace(text=default_uuid['result'],\n        search='-',\n        replace='').result}\",\n    offset=0,\n    length=16).result)\ndefault_store = alicloud.log.Store(\"default\",\n    project_name=default_project.project_name,\n    logstore_name=name,\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\ndefault_sls_group = alicloud.cms.SlsGroup(\"default\",\n    sls_group_configs=[{\n        \"sls_user_id\": default.id,\n        \"sls_logstore\": default_store.logstore_name,\n        \"sls_project\": default_project.project_name,\n        \"sls_region\": default_get_regions.regions[0].id,\n    }],\n    sls_group_description=name,\n    sls_group_name=name)\ndefault_namespace = alicloud.cms.Namespace(\"default\",\n    namespace=std.substr(input=f\"tf-example-{std.replace(text=default_uuid['result'],\n            search='-',\n            replace='').result}\",\n        offset=0,\n        length=16).result,\n    specification=\"cms.s1.large\")\ndefault_hybrid_monitor_sls_task = alicloud.cms.HybridMonitorSlsTask(\"default\",\n    task_name=name,\n    namespace=default_namespace.id,\n    description=name,\n    collect_interval=60,\n    collect_target_type=default_sls_group.id,\n    sls_process_config={\n        \"filter\": {\n            \"relation\": \"and\",\n            \"filters\": [{\n                \"operator\": \"=\",\n                \"value\": \"200\",\n                \"sls_key_name\": \"code\",\n            }],\n        },\n        \"statistics\": [{\n            \"function\": \"count\",\n            \"alias\": \"level_count\",\n            \"sls_key_name\": \"name\",\n            \"parameter_one\": \"200\",\n            \"parameter_two\": \"299\",\n        }],\n        \"group_bies\": [{\n            \"alias\": \"code\",\n            \"sls_key_name\": \"ApiResult\",\n        }],\n        \"expresses\": [{\n            \"express\": \"success_count\",\n            \"alias\": \"SuccRate\",\n        }],\n    },\n    attach_labels=[{\n        \"name\": \"app_service\",\n        \"value\": \"example_Value\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultUuid = new Random.Index.Uuid(\"default\");\n\n    var defaultProject = new AliCloud.Log.Project(\"default\", new()\n    {\n        ProjectName = Std.Replace.Invoke(new()\n        {\n            Text = defaultUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultStore = new AliCloud.Log.Store(\"default\", new()\n    {\n        ProjectName = defaultProject.ProjectName,\n        LogstoreName = name,\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var defaultSlsGroup = new AliCloud.Cms.SlsGroup(\"default\", new()\n    {\n        SlsGroupConfigs = new[]\n        {\n            new AliCloud.Cms.Inputs.SlsGroupSlsGroupConfigArgs\n            {\n                SlsUserId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n                SlsLogstore = defaultStore.LogstoreName,\n                SlsProject = defaultProject.ProjectName,\n                SlsRegion = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n            },\n        },\n        SlsGroupDescription = name,\n        SlsGroupName = name,\n    });\n\n    var defaultNamespace = new AliCloud.Cms.Namespace(\"default\", new()\n    {\n        NamespaceName = Std.Replace.Invoke(new()\n        {\n            Text = defaultUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n        Specification = \"cms.s1.large\",\n    });\n\n    var defaultHybridMonitorSlsTask = new AliCloud.Cms.HybridMonitorSlsTask(\"default\", new()\n    {\n        TaskName = name,\n        Namespace = defaultNamespace.Id,\n        Description = name,\n        CollectInterval = 60,\n        CollectTargetType = defaultSlsGroup.Id,\n        SlsProcessConfig = new AliCloud.Cms.Inputs.HybridMonitorSlsTaskSlsProcessConfigArgs\n        {\n            Filter = new AliCloud.Cms.Inputs.HybridMonitorSlsTaskSlsProcessConfigFilterArgs\n            {\n                Relation = \"and\",\n                Filters = new[]\n                {\n                    new AliCloud.Cms.Inputs.HybridMonitorSlsTaskSlsProcessConfigFilterFilterArgs\n                    {\n                        Operator = \"=\",\n                        Value = \"200\",\n                        SlsKeyName = \"code\",\n                    },\n                },\n            },\n            Statistics = new[]\n            {\n                new AliCloud.Cms.Inputs.HybridMonitorSlsTaskSlsProcessConfigStatisticArgs\n                {\n                    Function = \"count\",\n                    Alias = \"level_count\",\n                    SlsKeyName = \"name\",\n                    ParameterOne = \"200\",\n                    ParameterTwo = \"299\",\n                },\n            },\n            GroupBies = new[]\n            {\n                new AliCloud.Cms.Inputs.HybridMonitorSlsTaskSlsProcessConfigGroupByArgs\n                {\n                    Alias = \"code\",\n                    SlsKeyName = \"ApiResult\",\n                },\n            },\n            Expresses = new[]\n            {\n                new AliCloud.Cms.Inputs.HybridMonitorSlsTaskSlsProcessConfigExpressArgs\n                {\n                    Express = \"success_count\",\n                    Alias = \"SuccRate\",\n                },\n            },\n        },\n        AttachLabels = new[]\n        {\n            new AliCloud.Cms.Inputs.HybridMonitorSlsTaskAttachLabelArgs\n            {\n                Name = \"app_service\",\n                Value = \"example_Value\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRegions, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultUuid, err := random.NewUuid(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    defaultUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultProject, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.String(invokeSubstr.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStore, err := log.NewStore(ctx, \"default\", \u0026log.StoreArgs{\n\t\t\tProjectName:        defaultProject.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(name),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSlsGroup, err := cms.NewSlsGroup(ctx, \"default\", \u0026cms.SlsGroupArgs{\n\t\t\tSlsGroupConfigs: cms.SlsGroupSlsGroupConfigArray{\n\t\t\t\t\u0026cms.SlsGroupSlsGroupConfigArgs{\n\t\t\t\t\tSlsUserId:   pulumi.String(_default.Id),\n\t\t\t\t\tSlsLogstore: defaultStore.LogstoreName,\n\t\t\t\t\tSlsProject:  defaultProject.ProjectName,\n\t\t\t\t\tSlsRegion:   pulumi.String(defaultGetRegions.Regions[0].Id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSlsGroupDescription: pulumi.String(name),\n\t\t\tSlsGroupName:        pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr1, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    defaultUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNamespace, err := cms.NewNamespace(ctx, \"default\", \u0026cms.NamespaceArgs{\n\t\t\tNamespace:     pulumi.String(invokeSubstr1.Result),\n\t\t\tSpecification: pulumi.String(\"cms.s1.large\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cms.NewHybridMonitorSlsTask(ctx, \"default\", \u0026cms.HybridMonitorSlsTaskArgs{\n\t\t\tTaskName:          pulumi.String(name),\n\t\t\tNamespace:         defaultNamespace.ID(),\n\t\t\tDescription:       pulumi.String(name),\n\t\t\tCollectInterval:   pulumi.Int(60),\n\t\t\tCollectTargetType: defaultSlsGroup.ID(),\n\t\t\tSlsProcessConfig: \u0026cms.HybridMonitorSlsTaskSlsProcessConfigArgs{\n\t\t\t\tFilter: \u0026cms.HybridMonitorSlsTaskSlsProcessConfigFilterArgs{\n\t\t\t\t\tRelation: pulumi.String(\"and\"),\n\t\t\t\t\tFilters: cms.HybridMonitorSlsTaskSlsProcessConfigFilterFilterArray{\n\t\t\t\t\t\t\u0026cms.HybridMonitorSlsTaskSlsProcessConfigFilterFilterArgs{\n\t\t\t\t\t\t\tOperator:   pulumi.String(\"=\"),\n\t\t\t\t\t\t\tValue:      pulumi.String(\"200\"),\n\t\t\t\t\t\t\tSlsKeyName: pulumi.String(\"code\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tStatistics: cms.HybridMonitorSlsTaskSlsProcessConfigStatisticArray{\n\t\t\t\t\t\u0026cms.HybridMonitorSlsTaskSlsProcessConfigStatisticArgs{\n\t\t\t\t\t\tFunction:     pulumi.String(\"count\"),\n\t\t\t\t\t\tAlias:        pulumi.String(\"level_count\"),\n\t\t\t\t\t\tSlsKeyName:   pulumi.String(\"name\"),\n\t\t\t\t\t\tParameterOne: pulumi.String(\"200\"),\n\t\t\t\t\t\tParameterTwo: pulumi.String(\"299\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tGroupBies: cms.HybridMonitorSlsTaskSlsProcessConfigGroupByArray{\n\t\t\t\t\t\u0026cms.HybridMonitorSlsTaskSlsProcessConfigGroupByArgs{\n\t\t\t\t\t\tAlias:      pulumi.String(\"code\"),\n\t\t\t\t\t\tSlsKeyName: pulumi.String(\"ApiResult\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tExpresses: cms.HybridMonitorSlsTaskSlsProcessConfigExpressArray{\n\t\t\t\t\t\u0026cms.HybridMonitorSlsTaskSlsProcessConfigExpressArgs{\n\t\t\t\t\t\tExpress: pulumi.String(\"success_count\"),\n\t\t\t\t\t\tAlias:   pulumi.String(\"SuccRate\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAttachLabels: cms.HybridMonitorSlsTaskAttachLabelArray{\n\t\t\t\t\u0026cms.HybridMonitorSlsTaskAttachLabelArgs{\n\t\t\t\t\tName:  pulumi.String(\"app_service\"),\n\t\t\t\t\tValue: pulumi.String(\"example_Value\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Uuid;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ReplaceArgs;\nimport com.pulumi.std.inputs.SubstrArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.cms.SlsGroup;\nimport com.pulumi.alicloud.cms.SlsGroupArgs;\nimport com.pulumi.alicloud.cms.inputs.SlsGroupSlsGroupConfigArgs;\nimport com.pulumi.alicloud.cms.Namespace;\nimport com.pulumi.alicloud.cms.NamespaceArgs;\nimport com.pulumi.alicloud.cms.HybridMonitorSlsTask;\nimport com.pulumi.alicloud.cms.HybridMonitorSlsTaskArgs;\nimport com.pulumi.alicloud.cms.inputs.HybridMonitorSlsTaskSlsProcessConfigArgs;\nimport com.pulumi.alicloud.cms.inputs.HybridMonitorSlsTaskSlsProcessConfigFilterArgs;\nimport com.pulumi.alicloud.cms.inputs.HybridMonitorSlsTaskAttachLabelArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var defaultGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultUuid = new Uuid(\"defaultUuid\");\n\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .projectName(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(defaultUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .build());\n\n        var defaultStore = new Store(\"defaultStore\", StoreArgs.builder()\n            .projectName(defaultProject.projectName())\n            .logstoreName(name)\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var defaultSlsGroup = new SlsGroup(\"defaultSlsGroup\", SlsGroupArgs.builder()\n            .slsGroupConfigs(SlsGroupSlsGroupConfigArgs.builder()\n                .slsUserId(default_.id())\n                .slsLogstore(defaultStore.logstoreName())\n                .slsProject(defaultProject.projectName())\n                .slsRegion(defaultGetRegions.regions()[0].id())\n                .build())\n            .slsGroupDescription(name)\n            .slsGroupName(name)\n            .build());\n\n        var defaultNamespace = new Namespace(\"defaultNamespace\", NamespaceArgs.builder()\n            .namespace(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(defaultUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .specification(\"cms.s1.large\")\n            .build());\n\n        var defaultHybridMonitorSlsTask = new HybridMonitorSlsTask(\"defaultHybridMonitorSlsTask\", HybridMonitorSlsTaskArgs.builder()\n            .taskName(name)\n            .namespace(defaultNamespace.id())\n            .description(name)\n            .collectInterval(60)\n            .collectTargetType(defaultSlsGroup.id())\n            .slsProcessConfig(HybridMonitorSlsTaskSlsProcessConfigArgs.builder()\n                .filter(HybridMonitorSlsTaskSlsProcessConfigFilterArgs.builder()\n                    .relation(\"and\")\n                    .filters(HybridMonitorSlsTaskSlsProcessConfigFilterFilterArgs.builder()\n                        .operator(\"=\")\n                        .value(\"200\")\n                        .slsKeyName(\"code\")\n                        .build())\n                    .build())\n                .statistics(HybridMonitorSlsTaskSlsProcessConfigStatisticArgs.builder()\n                    .function(\"count\")\n                    .alias(\"level_count\")\n                    .slsKeyName(\"name\")\n                    .parameterOne(\"200\")\n                    .parameterTwo(\"299\")\n                    .build())\n                .groupBies(HybridMonitorSlsTaskSlsProcessConfigGroupByArgs.builder()\n                    .alias(\"code\")\n                    .slsKeyName(\"ApiResult\")\n                    .build())\n                .expresses(HybridMonitorSlsTaskSlsProcessConfigExpressArgs.builder()\n                    .express(\"success_count\")\n                    .alias(\"SuccRate\")\n                    .build())\n                .build())\n            .attachLabels(HybridMonitorSlsTaskAttachLabelArgs.builder()\n                .name(\"app_service\")\n                .value(\"example_Value\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultUuid:\n    type: random:Uuid\n    name: default\n  defaultProject:\n    type: alicloud:log:Project\n    name: default\n    properties:\n      projectName:\n        fn::invoke:\n          function: std:substr\n          arguments:\n            input:\n              fn::join:\n                - \"\"\n                - - tf-example-\n                  - fn::invoke:\n                      function: std:replace\n                      arguments:\n                        text: ${defaultUuid.result}\n                        search: '-'\n                        replace: \"\"\n                      return: result\n            offset: 0\n            length: 16\n          return: result\n  defaultStore:\n    type: alicloud:log:Store\n    name: default\n    properties:\n      projectName: ${defaultProject.projectName}\n      logstoreName: ${name}\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  defaultSlsGroup:\n    type: alicloud:cms:SlsGroup\n    name: default\n    properties:\n      slsGroupConfigs:\n        - slsUserId: ${default.id}\n          slsLogstore: ${defaultStore.logstoreName}\n          slsProject: ${defaultProject.projectName}\n          slsRegion: ${defaultGetRegions.regions[0].id}\n      slsGroupDescription: ${name}\n      slsGroupName: ${name}\n  defaultNamespace:\n    type: alicloud:cms:Namespace\n    name: default\n    properties:\n      namespace:\n        fn::invoke:\n          function: std:substr\n          arguments:\n            input:\n              fn::join:\n                - \"\"\n                - - tf-example-\n                  - fn::invoke:\n                      function: std:replace\n                      arguments:\n                        text: ${defaultUuid.result}\n                        search: '-'\n                        replace: \"\"\n                      return: result\n            offset: 0\n            length: 16\n          return: result\n      specification: cms.s1.large\n  defaultHybridMonitorSlsTask:\n    type: alicloud:cms:HybridMonitorSlsTask\n    name: default\n    properties:\n      taskName: ${name}\n      namespace: ${defaultNamespace.id}\n      description: ${name}\n      collectInterval: 60\n      collectTargetType: ${defaultSlsGroup.id}\n      slsProcessConfig:\n        filter:\n          relation: and\n          filters:\n            - operator: =\n              value: '200'\n              slsKeyName: code\n        statistics:\n          - function: count\n            alias: level_count\n            slsKeyName: name\n            parameterOne: '200'\n            parameterTwo: '299'\n        groupBies:\n          - alias: code\n            slsKeyName: ApiResult\n        expresses:\n          - express: success_count\n            alias: SuccRate\n      attachLabels:\n        - name: app_service\n          value: example_Value\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  defaultGetRegions:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Hybrid Monitor Sls Task can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cms/hybridMonitorSlsTask:HybridMonitorSlsTask example \u003cid\u003e\n```\n\n","properties":{"attachLabels":{"type":"array","items":{"$ref":"#/types/alicloud:cms/HybridMonitorSlsTaskAttachLabel:HybridMonitorSlsTaskAttachLabel"},"description":"The label of the monitoring task. See \u003cspan pulumi-lang-nodejs=\"`attachLabels`\" pulumi-lang-dotnet=\"`AttachLabels`\" pulumi-lang-go=\"`attachLabels`\" pulumi-lang-python=\"`attach_labels`\" pulumi-lang-yaml=\"`attachLabels`\" pulumi-lang-java=\"`attachLabels`\"\u003e`attach_labels`\u003c/span\u003e below.\n"},"collectInterval":{"type":"integer","description":"The interval at which metrics are collected. Valid values: \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e(default value). Unit: seconds.\n"},"collectTargetType":{"type":"string","description":"The type of the collection target, enter the name of the Logstore group.\n"},"description":{"type":"string","description":"The description of the metric import task.\n"},"namespace":{"type":"string","description":"The name of the namespace.\n"},"slsProcessConfig":{"$ref":"#/types/alicloud:cms/HybridMonitorSlsTaskSlsProcessConfig:HybridMonitorSlsTaskSlsProcessConfig","description":"The configurations of the logs that are imported from Log Service. See \u003cspan pulumi-lang-nodejs=\"`slsProcessConfig`\" pulumi-lang-dotnet=\"`SlsProcessConfig`\" pulumi-lang-go=\"`slsProcessConfig`\" pulumi-lang-python=\"`sls_process_config`\" pulumi-lang-yaml=\"`slsProcessConfig`\" pulumi-lang-java=\"`slsProcessConfig`\"\u003e`sls_process_config`\u003c/span\u003e below.\n"},"taskName":{"type":"string","description":"The name of the metric import task, enter the name of the metric for logs imported from Log Service.\n"}},"required":["collectInterval","collectTargetType","namespace","slsProcessConfig","taskName"],"inputProperties":{"attachLabels":{"type":"array","items":{"$ref":"#/types/alicloud:cms/HybridMonitorSlsTaskAttachLabel:HybridMonitorSlsTaskAttachLabel"},"description":"The label of the monitoring task. See \u003cspan pulumi-lang-nodejs=\"`attachLabels`\" pulumi-lang-dotnet=\"`AttachLabels`\" pulumi-lang-go=\"`attachLabels`\" pulumi-lang-python=\"`attach_labels`\" pulumi-lang-yaml=\"`attachLabels`\" pulumi-lang-java=\"`attachLabels`\"\u003e`attach_labels`\u003c/span\u003e below.\n"},"collectInterval":{"type":"integer","description":"The interval at which metrics are collected. Valid values: \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e(default value). Unit: seconds.\n"},"collectTargetType":{"type":"string","description":"The type of the collection target, enter the name of the Logstore group.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the metric import task.\n"},"namespace":{"type":"string","description":"The name of the namespace.\n","willReplaceOnChanges":true},"slsProcessConfig":{"$ref":"#/types/alicloud:cms/HybridMonitorSlsTaskSlsProcessConfig:HybridMonitorSlsTaskSlsProcessConfig","description":"The configurations of the logs that are imported from Log Service. See \u003cspan pulumi-lang-nodejs=\"`slsProcessConfig`\" pulumi-lang-dotnet=\"`SlsProcessConfig`\" pulumi-lang-go=\"`slsProcessConfig`\" pulumi-lang-python=\"`sls_process_config`\" pulumi-lang-yaml=\"`slsProcessConfig`\" pulumi-lang-java=\"`slsProcessConfig`\"\u003e`sls_process_config`\u003c/span\u003e below.\n"},"taskName":{"type":"string","description":"The name of the metric import task, enter the name of the metric for logs imported from Log Service.\n","willReplaceOnChanges":true}},"requiredInputs":["collectTargetType","namespace","slsProcessConfig","taskName"],"stateInputs":{"description":"Input properties used for looking up and filtering HybridMonitorSlsTask resources.\n","properties":{"attachLabels":{"type":"array","items":{"$ref":"#/types/alicloud:cms/HybridMonitorSlsTaskAttachLabel:HybridMonitorSlsTaskAttachLabel"},"description":"The label of the monitoring task. See \u003cspan pulumi-lang-nodejs=\"`attachLabels`\" pulumi-lang-dotnet=\"`AttachLabels`\" pulumi-lang-go=\"`attachLabels`\" pulumi-lang-python=\"`attach_labels`\" pulumi-lang-yaml=\"`attachLabels`\" pulumi-lang-java=\"`attachLabels`\"\u003e`attach_labels`\u003c/span\u003e below.\n"},"collectInterval":{"type":"integer","description":"The interval at which metrics are collected. Valid values: \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e(default value). Unit: seconds.\n"},"collectTargetType":{"type":"string","description":"The type of the collection target, enter the name of the Logstore group.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the metric import task.\n"},"namespace":{"type":"string","description":"The name of the namespace.\n","willReplaceOnChanges":true},"slsProcessConfig":{"$ref":"#/types/alicloud:cms/HybridMonitorSlsTaskSlsProcessConfig:HybridMonitorSlsTaskSlsProcessConfig","description":"The configurations of the logs that are imported from Log Service. See \u003cspan pulumi-lang-nodejs=\"`slsProcessConfig`\" pulumi-lang-dotnet=\"`SlsProcessConfig`\" pulumi-lang-go=\"`slsProcessConfig`\" pulumi-lang-python=\"`sls_process_config`\" pulumi-lang-yaml=\"`slsProcessConfig`\" pulumi-lang-java=\"`slsProcessConfig`\"\u003e`sls_process_config`\u003c/span\u003e below.\n"},"taskName":{"type":"string","description":"The name of the metric import task, enter the name of the metric for logs imported from Log Service.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cms/metricRuleBlackList:MetricRuleBlackList":{"description":"Provides a Cloud Monitor Service Metric Rule Black List resource.\n\nFor information about Cloud Monitor Service Metric Rule Black List and how to use it, see [What is Metric Rule Black List](https://www.alibabacloud.com/help/en/cloudmonitor/latest/describemetricruleblacklist).\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceName: name,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup.id],\n    vswitchId: defaultSwitch.id,\n});\nconst defaultMetricRuleBlackList = new alicloud.cms.MetricRuleBlackList(\"default\", {\n    instances: [pulumi.interpolate`{\"instancceId\":\"${defaultInstance.id}\"}`],\n    metrics: [{\n        metricName: \"disk_utilization\",\n    }],\n    category: \"ecs\",\n    enableEndTime: \"1799443209000\",\n    namespace: \"acs_ecs_dashboard\",\n    enableStartTime: \"1689243209000\",\n    metricRuleBlackListName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"Instance\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    availability_zone=default.zones[0].id,\n    instance_name=name,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[default_security_group.id],\n    vswitch_id=default_switch.id)\ndefault_metric_rule_black_list = alicloud.cms.MetricRuleBlackList(\"default\",\n    instances=[default_instance.id.apply(lambda id: f\"{{\\\"instancceId\\\":\\\"{id}\\\"}}\")],\n    metrics=[{\n        \"metric_name\": \"disk_utilization\",\n    }],\n    category=\"ecs\",\n    enable_end_time=\"1799443209000\",\n    namespace=\"acs_ecs_dashboard\",\n    enable_start_time=\"1689243209000\",\n    metric_rule_black_list_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceName = name,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var defaultMetricRuleBlackList = new AliCloud.Cms.MetricRuleBlackList(\"default\", new()\n    {\n        Instances = new[]\n        {\n            defaultInstance.Id.Apply(id =\u003e $\"{{\\\"instancceId\\\":\\\"{id}\\\"}}\"),\n        },\n        Metrics = new[]\n        {\n            new AliCloud.Cms.Inputs.MetricRuleBlackListMetricArgs\n            {\n                MetricName = \"disk_utilization\",\n            },\n        },\n        Category = \"ecs\",\n        EnableEndTime = \"1799443209000\",\n        Namespace = \"acs_ecs_dashboard\",\n        EnableStartTime = \"1689243209000\",\n        MetricRuleBlackListName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(_default.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(name),\n\t\t\tImageId:          pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cms.NewMetricRuleBlackList(ctx, \"default\", \u0026cms.MetricRuleBlackListArgs{\n\t\t\tInstances: pulumi.StringArray{\n\t\t\t\tdefaultInstance.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"{\\\"instancceId\\\":\\\"%v\\\"}\", id), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t\tMetrics: cms.MetricRuleBlackListMetricArray{\n\t\t\t\t\u0026cms.MetricRuleBlackListMetricArgs{\n\t\t\t\t\tMetricName: pulumi.String(\"disk_utilization\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCategory:                pulumi.String(\"ecs\"),\n\t\t\tEnableEndTime:           pulumi.String(\"1799443209000\"),\n\t\t\tNamespace:               pulumi.String(\"acs_ecs_dashboard\"),\n\t\t\tEnableStartTime:         pulumi.String(\"1689243209000\"),\n\t\t\tMetricRuleBlackListName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.cms.MetricRuleBlackList;\nimport com.pulumi.alicloud.cms.MetricRuleBlackListArgs;\nimport com.pulumi.alicloud.cms.inputs.MetricRuleBlackListMetricArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .instanceName(name)\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.id())\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var defaultMetricRuleBlackList = new MetricRuleBlackList(\"defaultMetricRuleBlackList\", MetricRuleBlackListArgs.builder()\n            .instances(defaultInstance.id().applyValue(_id -\u003e String.format(\"{{\\\"instancceId\\\":\\\"%s\\\"}}\", _id)))\n            .metrics(MetricRuleBlackListMetricArgs.builder()\n                .metricName(\"disk_utilization\")\n                .build())\n            .category(\"ecs\")\n            .enableEndTime(\"1799443209000\")\n            .namespace(\"acs_ecs_dashboard\")\n            .enableStartTime(\"1689243209000\")\n            .metricRuleBlackListName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:ecs:Instance\n    name: default\n    properties:\n      availabilityZone: ${default.zones[0].id}\n      instanceName: ${name}\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      securityGroups:\n        - ${defaultSecurityGroup.id}\n      vswitchId: ${defaultSwitch.id}\n  defaultMetricRuleBlackList:\n    type: alicloud:cms:MetricRuleBlackList\n    name: default\n    properties:\n      instances:\n        - '{\"instancceId\":\"${defaultInstance.id}\"}'\n      metrics:\n        - metricName: disk_utilization\n      category: ecs\n      enableEndTime: 1.799443209e+12\n      namespace: acs_ecs_dashboard\n      enableStartTime: 1.689243209e+12\n      metricRuleBlackListName: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 1\n        memorySize: 2\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Metric Rule Black List can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_cms_metric_rule_black_list.example \u003cid\u003e\n```\n\n","properties":{"category":{"type":"string","description":"Cloud service classification. For example, Redis includes kvstore_standard, kvstore_sharding, and kvstore_splitrw.\n"},"createTime":{"type":"string","description":"The timestamp for creating an alert blacklist policy.Unit: milliseconds.\n"},"effectiveTime":{"type":"string","description":"The effective time range of the alert blacklist policy.\n"},"enableEndTime":{"type":"string","description":"The start timestamp of the alert blacklist policy.Unit: milliseconds.\n"},"enableStartTime":{"type":"string","description":"The end timestamp of the alert blacklist policy.Unit: milliseconds.\n"},"instances":{"type":"array","items":{"type":"string"},"description":"The list of instances of cloud services specified in the alert blacklist policy.\n"},"isEnable":{"type":"boolean","description":"The status of the alert blacklist policy. Value:-true: enabled.-false: disabled.\n"},"metricRuleBlackListId":{"type":"string","description":"The ID of the blacklist policy.\n"},"metricRuleBlackListName":{"type":"string","description":"The name of the alert blacklist policy.\n"},"metrics":{"type":"array","items":{"$ref":"#/types/alicloud:cms/MetricRuleBlackListMetric:MetricRuleBlackListMetric"},"description":"Monitoring metrics in the instance. See \u003cspan pulumi-lang-nodejs=\"`metrics`\" pulumi-lang-dotnet=\"`Metrics`\" pulumi-lang-go=\"`metrics`\" pulumi-lang-python=\"`metrics`\" pulumi-lang-yaml=\"`metrics`\" pulumi-lang-java=\"`metrics`\"\u003e`metrics`\u003c/span\u003e below.\n"},"namespace":{"type":"string","description":"The data namespace of the cloud service.\n"},"scopeType":{"type":"string","description":"The effective range of the alert blacklist policy. Value:-USER: The alert blacklist policy only takes effect in the current Alibaba cloud account.-GROUP: The alert blacklist policy takes effect in the specified application GROUP.\n"},"scopeValues":{"type":"array","items":{"type":"string"},"description":"Application Group ID list. The format is JSON Array.\u003e This parameter is displayed only when 'ScopeType' is 'GROUP.\n"},"updateTime":{"type":"string","description":"Modify the timestamp of the alert blacklist policy.Unit: milliseconds.\n"}},"required":["category","createTime","instances","isEnable","metricRuleBlackListId","metricRuleBlackListName","namespace","scopeType","updateTime"],"inputProperties":{"category":{"type":"string","description":"Cloud service classification. For example, Redis includes kvstore_standard, kvstore_sharding, and kvstore_splitrw.\n"},"effectiveTime":{"type":"string","description":"The effective time range of the alert blacklist policy.\n"},"enableEndTime":{"type":"string","description":"The start timestamp of the alert blacklist policy.Unit: milliseconds.\n"},"enableStartTime":{"type":"string","description":"The end timestamp of the alert blacklist policy.Unit: milliseconds.\n"},"instances":{"type":"array","items":{"type":"string"},"description":"The list of instances of cloud services specified in the alert blacklist policy.\n"},"isEnable":{"type":"boolean","description":"The status of the alert blacklist policy. Value:-true: enabled.-false: disabled.\n"},"metricRuleBlackListName":{"type":"string","description":"The name of the alert blacklist policy.\n","willReplaceOnChanges":true},"metrics":{"type":"array","items":{"$ref":"#/types/alicloud:cms/MetricRuleBlackListMetric:MetricRuleBlackListMetric"},"description":"Monitoring metrics in the instance. See \u003cspan pulumi-lang-nodejs=\"`metrics`\" pulumi-lang-dotnet=\"`Metrics`\" pulumi-lang-go=\"`metrics`\" pulumi-lang-python=\"`metrics`\" pulumi-lang-yaml=\"`metrics`\" pulumi-lang-java=\"`metrics`\"\u003e`metrics`\u003c/span\u003e below.\n"},"namespace":{"type":"string","description":"The data namespace of the cloud service.\n","willReplaceOnChanges":true},"scopeType":{"type":"string","description":"The effective range of the alert blacklist policy. Value:-USER: The alert blacklist policy only takes effect in the current Alibaba cloud account.-GROUP: The alert blacklist policy takes effect in the specified application GROUP.\n"},"scopeValues":{"type":"array","items":{"type":"string"},"description":"Application Group ID list. The format is JSON Array.\u003e This parameter is displayed only when 'ScopeType' is 'GROUP.\n"}},"requiredInputs":["category","instances","metricRuleBlackListName","namespace"],"stateInputs":{"description":"Input properties used for looking up and filtering MetricRuleBlackList resources.\n","properties":{"category":{"type":"string","description":"Cloud service classification. For example, Redis includes kvstore_standard, kvstore_sharding, and kvstore_splitrw.\n"},"createTime":{"type":"string","description":"The timestamp for creating an alert blacklist policy.Unit: milliseconds.\n"},"effectiveTime":{"type":"string","description":"The effective time range of the alert blacklist policy.\n"},"enableEndTime":{"type":"string","description":"The start timestamp of the alert blacklist policy.Unit: milliseconds.\n"},"enableStartTime":{"type":"string","description":"The end timestamp of the alert blacklist policy.Unit: milliseconds.\n"},"instances":{"type":"array","items":{"type":"string"},"description":"The list of instances of cloud services specified in the alert blacklist policy.\n"},"isEnable":{"type":"boolean","description":"The status of the alert blacklist policy. Value:-true: enabled.-false: disabled.\n"},"metricRuleBlackListId":{"type":"string","description":"The ID of the blacklist policy.\n"},"metricRuleBlackListName":{"type":"string","description":"The name of the alert blacklist policy.\n","willReplaceOnChanges":true},"metrics":{"type":"array","items":{"$ref":"#/types/alicloud:cms/MetricRuleBlackListMetric:MetricRuleBlackListMetric"},"description":"Monitoring metrics in the instance. See \u003cspan pulumi-lang-nodejs=\"`metrics`\" pulumi-lang-dotnet=\"`Metrics`\" pulumi-lang-go=\"`metrics`\" pulumi-lang-python=\"`metrics`\" pulumi-lang-yaml=\"`metrics`\" pulumi-lang-java=\"`metrics`\"\u003e`metrics`\u003c/span\u003e below.\n"},"namespace":{"type":"string","description":"The data namespace of the cloud service.\n","willReplaceOnChanges":true},"scopeType":{"type":"string","description":"The effective range of the alert blacklist policy. Value:-USER: The alert blacklist policy only takes effect in the current Alibaba cloud account.-GROUP: The alert blacklist policy takes effect in the specified application GROUP.\n"},"scopeValues":{"type":"array","items":{"type":"string"},"description":"Application Group ID list. The format is JSON Array.\u003e This parameter is displayed only when 'ScopeType' is 'GROUP.\n"},"updateTime":{"type":"string","description":"Modify the timestamp of the alert blacklist policy.Unit: milliseconds.\n"}},"type":"object"}},"alicloud:cms/metricRuleTemplate:MetricRuleTemplate":{"description":"Provides a Cloud Monitor Service Metric Rule Template resource.\n\nFor information about Cloud Monitor Service Metric Rule Template and how to use it, see [What is Metric Rule Template](https://www.alibabacloud.com/help/en/cloudmonitor/latest/createmetricruletemplate).\n\n\u003e **NOTE:** Available since v1.134.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst example = new alicloud.cms.MetricRuleTemplate(\"example\", {\n    metricRuleTemplateName: name,\n    alertTemplates: [{\n        category: \"ecs\",\n        metricName: \"cpu_total\",\n        namespace: \"acs_ecs_dashboard\",\n        ruleName: \"tf_example\",\n        escalations: {\n            critical: {\n                comparisonOperator: \"GreaterThanThreshold\",\n                statistics: \"Average\",\n                threshold: \"90\",\n                times: \"3\",\n            },\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nexample = alicloud.cms.MetricRuleTemplate(\"example\",\n    metric_rule_template_name=name,\n    alert_templates=[{\n        \"category\": \"ecs\",\n        \"metric_name\": \"cpu_total\",\n        \"namespace\": \"acs_ecs_dashboard\",\n        \"rule_name\": \"tf_example\",\n        \"escalations\": {\n            \"critical\": {\n                \"comparison_operator\": \"GreaterThanThreshold\",\n                \"statistics\": \"Average\",\n                \"threshold\": \"90\",\n                \"times\": \"3\",\n            },\n        },\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var example = new AliCloud.Cms.MetricRuleTemplate(\"example\", new()\n    {\n        MetricRuleTemplateName = name,\n        AlertTemplates = new[]\n        {\n            new AliCloud.Cms.Inputs.MetricRuleTemplateAlertTemplateArgs\n            {\n                Category = \"ecs\",\n                MetricName = \"cpu_total\",\n                Namespace = \"acs_ecs_dashboard\",\n                RuleName = \"tf_example\",\n                Escalations = new AliCloud.Cms.Inputs.MetricRuleTemplateAlertTemplateEscalationsArgs\n                {\n                    Critical = new AliCloud.Cms.Inputs.MetricRuleTemplateAlertTemplateEscalationsCriticalArgs\n                    {\n                        ComparisonOperator = \"GreaterThanThreshold\",\n                        Statistics = \"Average\",\n                        Threshold = \"90\",\n                        Times = \"3\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cms.NewMetricRuleTemplate(ctx, \"example\", \u0026cms.MetricRuleTemplateArgs{\n\t\t\tMetricRuleTemplateName: pulumi.String(name),\n\t\t\tAlertTemplates: cms.MetricRuleTemplateAlertTemplateArray{\n\t\t\t\t\u0026cms.MetricRuleTemplateAlertTemplateArgs{\n\t\t\t\t\tCategory:   pulumi.String(\"ecs\"),\n\t\t\t\t\tMetricName: pulumi.String(\"cpu_total\"),\n\t\t\t\t\tNamespace:  pulumi.String(\"acs_ecs_dashboard\"),\n\t\t\t\t\tRuleName:   pulumi.String(\"tf_example\"),\n\t\t\t\t\tEscalations: \u0026cms.MetricRuleTemplateAlertTemplateEscalationsArgs{\n\t\t\t\t\t\tCritical: \u0026cms.MetricRuleTemplateAlertTemplateEscalationsCriticalArgs{\n\t\t\t\t\t\t\tComparisonOperator: pulumi.String(\"GreaterThanThreshold\"),\n\t\t\t\t\t\t\tStatistics:         pulumi.String(\"Average\"),\n\t\t\t\t\t\t\tThreshold:          pulumi.String(\"90\"),\n\t\t\t\t\t\t\tTimes:              pulumi.String(\"3\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.MetricRuleTemplate;\nimport com.pulumi.alicloud.cms.MetricRuleTemplateArgs;\nimport com.pulumi.alicloud.cms.inputs.MetricRuleTemplateAlertTemplateArgs;\nimport com.pulumi.alicloud.cms.inputs.MetricRuleTemplateAlertTemplateEscalationsArgs;\nimport com.pulumi.alicloud.cms.inputs.MetricRuleTemplateAlertTemplateEscalationsCriticalArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var example = new MetricRuleTemplate(\"example\", MetricRuleTemplateArgs.builder()\n            .metricRuleTemplateName(name)\n            .alertTemplates(MetricRuleTemplateAlertTemplateArgs.builder()\n                .category(\"ecs\")\n                .metricName(\"cpu_total\")\n                .namespace(\"acs_ecs_dashboard\")\n                .ruleName(\"tf_example\")\n                .escalations(MetricRuleTemplateAlertTemplateEscalationsArgs.builder()\n                    .critical(MetricRuleTemplateAlertTemplateEscalationsCriticalArgs.builder()\n                        .comparisonOperator(\"GreaterThanThreshold\")\n                        .statistics(\"Average\")\n                        .threshold(\"90\")\n                        .times(\"3\")\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  example:\n    type: alicloud:cms:MetricRuleTemplate\n    properties:\n      metricRuleTemplateName: ${name}\n      alertTemplates:\n        - category: ecs\n          metricName: cpu_total\n          namespace: acs_ecs_dashboard\n          ruleName: tf_example\n          escalations:\n            critical:\n              comparisonOperator: GreaterThanThreshold\n              statistics: Average\n              threshold: '90'\n              times: '3'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Metric Rule Template can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cms/metricRuleTemplate:MetricRuleTemplate example \u003cid\u003e\n```\n\n","properties":{"alertTemplates":{"type":"array","items":{"$ref":"#/types/alicloud:cms/MetricRuleTemplateAlertTemplate:MetricRuleTemplateAlertTemplate"},"description":"The details of alert rules that are generated based on the alert template. See \u003cspan pulumi-lang-nodejs=\"`alertTemplates`\" pulumi-lang-dotnet=\"`AlertTemplates`\" pulumi-lang-go=\"`alertTemplates`\" pulumi-lang-python=\"`alert_templates`\" pulumi-lang-yaml=\"`alertTemplates`\" pulumi-lang-java=\"`alertTemplates`\"\u003e`alert_templates`\u003c/span\u003e below.\n"},"applyMode":{"type":"string","description":"The mode in which the alert template is applied. Valid values:\n- `GROUP_INSTANCE_FIRST`: The metrics in the application group take precedence.\n- `ALARM_TEMPLATE_FIRST `: The metrics specified in the alert template take precedence.\n"},"description":{"type":"string","description":"The description of the alert template.\n"},"enableEndTime":{"type":"string","description":"The end of the time period during which the alert rule is effective. Valid values: \u003cspan pulumi-lang-nodejs=\"`00`\" pulumi-lang-dotnet=\"`00`\" pulumi-lang-go=\"`00`\" pulumi-lang-python=\"`00`\" pulumi-lang-yaml=\"`00`\" pulumi-lang-java=\"`00`\"\u003e`00`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e. The value \u003cspan pulumi-lang-nodejs=\"`00`\" pulumi-lang-dotnet=\"`00`\" pulumi-lang-go=\"`00`\" pulumi-lang-python=\"`00`\" pulumi-lang-yaml=\"`00`\" pulumi-lang-java=\"`00`\"\u003e`00`\u003c/span\u003e indicates 00:59 and the value \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e indicates 23:59.\n"},"enableStartTime":{"type":"string","description":"The beginning of the time period during which the alert rule is effective. Valid values: \u003cspan pulumi-lang-nodejs=\"`00`\" pulumi-lang-dotnet=\"`00`\" pulumi-lang-go=\"`00`\" pulumi-lang-python=\"`00`\" pulumi-lang-yaml=\"`00`\" pulumi-lang-java=\"`00`\"\u003e`00`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e. The value \u003cspan pulumi-lang-nodejs=\"`00`\" pulumi-lang-dotnet=\"`00`\" pulumi-lang-go=\"`00`\" pulumi-lang-python=\"`00`\" pulumi-lang-yaml=\"`00`\" pulumi-lang-java=\"`00`\"\u003e`00`\u003c/span\u003e indicates 00:00 and the value \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e indicates 23:00.\n"},"groupId":{"type":"string","description":"The ID of the application group.\n"},"metricRuleTemplateName":{"type":"string","description":"The name of the alert template.\n"},"notifyLevel":{"type":"string","description":"The alert notification method. Valid values:\n"},"restVersion":{"type":"string","description":"The version of the alert template.\n"},"silenceTime":{"type":"integer","description":"The mute period during which notifications are not repeatedly sent for an alert. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e.\n"},"webhook":{"type":"string","description":"The callback URL to which a POST request is sent when an alert is triggered based on the alert rule.\n"}},"required":["metricRuleTemplateName","restVersion"],"inputProperties":{"alertTemplates":{"type":"array","items":{"$ref":"#/types/alicloud:cms/MetricRuleTemplateAlertTemplate:MetricRuleTemplateAlertTemplate"},"description":"The details of alert rules that are generated based on the alert template. See \u003cspan pulumi-lang-nodejs=\"`alertTemplates`\" pulumi-lang-dotnet=\"`AlertTemplates`\" pulumi-lang-go=\"`alertTemplates`\" pulumi-lang-python=\"`alert_templates`\" pulumi-lang-yaml=\"`alertTemplates`\" pulumi-lang-java=\"`alertTemplates`\"\u003e`alert_templates`\u003c/span\u003e below.\n"},"applyMode":{"type":"string","description":"The mode in which the alert template is applied. Valid values:\n- `GROUP_INSTANCE_FIRST`: The metrics in the application group take precedence.\n- `ALARM_TEMPLATE_FIRST `: The metrics specified in the alert template take precedence.\n"},"description":{"type":"string","description":"The description of the alert template.\n"},"enableEndTime":{"type":"string","description":"The end of the time period during which the alert rule is effective. Valid values: \u003cspan pulumi-lang-nodejs=\"`00`\" pulumi-lang-dotnet=\"`00`\" pulumi-lang-go=\"`00`\" pulumi-lang-python=\"`00`\" pulumi-lang-yaml=\"`00`\" pulumi-lang-java=\"`00`\"\u003e`00`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e. The value \u003cspan pulumi-lang-nodejs=\"`00`\" pulumi-lang-dotnet=\"`00`\" pulumi-lang-go=\"`00`\" pulumi-lang-python=\"`00`\" pulumi-lang-yaml=\"`00`\" pulumi-lang-java=\"`00`\"\u003e`00`\u003c/span\u003e indicates 00:59 and the value \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e indicates 23:59.\n"},"enableStartTime":{"type":"string","description":"The beginning of the time period during which the alert rule is effective. Valid values: \u003cspan pulumi-lang-nodejs=\"`00`\" pulumi-lang-dotnet=\"`00`\" pulumi-lang-go=\"`00`\" pulumi-lang-python=\"`00`\" pulumi-lang-yaml=\"`00`\" pulumi-lang-java=\"`00`\"\u003e`00`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e. The value \u003cspan pulumi-lang-nodejs=\"`00`\" pulumi-lang-dotnet=\"`00`\" pulumi-lang-go=\"`00`\" pulumi-lang-python=\"`00`\" pulumi-lang-yaml=\"`00`\" pulumi-lang-java=\"`00`\"\u003e`00`\u003c/span\u003e indicates 00:00 and the value \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e indicates 23:00.\n"},"groupId":{"type":"string","description":"The ID of the application group.\n"},"metricRuleTemplateName":{"type":"string","description":"The name of the alert template.\n","willReplaceOnChanges":true},"notifyLevel":{"type":"string","description":"The alert notification method. Valid values:\n"},"silenceTime":{"type":"integer","description":"The mute period during which notifications are not repeatedly sent for an alert. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e.\n"},"webhook":{"type":"string","description":"The callback URL to which a POST request is sent when an alert is triggered based on the alert rule.\n"}},"requiredInputs":["metricRuleTemplateName"],"stateInputs":{"description":"Input properties used for looking up and filtering MetricRuleTemplate resources.\n","properties":{"alertTemplates":{"type":"array","items":{"$ref":"#/types/alicloud:cms/MetricRuleTemplateAlertTemplate:MetricRuleTemplateAlertTemplate"},"description":"The details of alert rules that are generated based on the alert template. See \u003cspan pulumi-lang-nodejs=\"`alertTemplates`\" pulumi-lang-dotnet=\"`AlertTemplates`\" pulumi-lang-go=\"`alertTemplates`\" pulumi-lang-python=\"`alert_templates`\" pulumi-lang-yaml=\"`alertTemplates`\" pulumi-lang-java=\"`alertTemplates`\"\u003e`alert_templates`\u003c/span\u003e below.\n"},"applyMode":{"type":"string","description":"The mode in which the alert template is applied. Valid values:\n- `GROUP_INSTANCE_FIRST`: The metrics in the application group take precedence.\n- `ALARM_TEMPLATE_FIRST `: The metrics specified in the alert template take precedence.\n"},"description":{"type":"string","description":"The description of the alert template.\n"},"enableEndTime":{"type":"string","description":"The end of the time period during which the alert rule is effective. Valid values: \u003cspan pulumi-lang-nodejs=\"`00`\" pulumi-lang-dotnet=\"`00`\" pulumi-lang-go=\"`00`\" pulumi-lang-python=\"`00`\" pulumi-lang-yaml=\"`00`\" pulumi-lang-java=\"`00`\"\u003e`00`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e. The value \u003cspan pulumi-lang-nodejs=\"`00`\" pulumi-lang-dotnet=\"`00`\" pulumi-lang-go=\"`00`\" pulumi-lang-python=\"`00`\" pulumi-lang-yaml=\"`00`\" pulumi-lang-java=\"`00`\"\u003e`00`\u003c/span\u003e indicates 00:59 and the value \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e indicates 23:59.\n"},"enableStartTime":{"type":"string","description":"The beginning of the time period during which the alert rule is effective. Valid values: \u003cspan pulumi-lang-nodejs=\"`00`\" pulumi-lang-dotnet=\"`00`\" pulumi-lang-go=\"`00`\" pulumi-lang-python=\"`00`\" pulumi-lang-yaml=\"`00`\" pulumi-lang-java=\"`00`\"\u003e`00`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e. The value \u003cspan pulumi-lang-nodejs=\"`00`\" pulumi-lang-dotnet=\"`00`\" pulumi-lang-go=\"`00`\" pulumi-lang-python=\"`00`\" pulumi-lang-yaml=\"`00`\" pulumi-lang-java=\"`00`\"\u003e`00`\u003c/span\u003e indicates 00:00 and the value \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e indicates 23:00.\n"},"groupId":{"type":"string","description":"The ID of the application group.\n"},"metricRuleTemplateName":{"type":"string","description":"The name of the alert template.\n","willReplaceOnChanges":true},"notifyLevel":{"type":"string","description":"The alert notification method. Valid values:\n"},"restVersion":{"type":"string","description":"The version of the alert template.\n"},"silenceTime":{"type":"integer","description":"The mute period during which notifications are not repeatedly sent for an alert. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`86400`\" pulumi-lang-dotnet=\"`86400`\" pulumi-lang-go=\"`86400`\" pulumi-lang-python=\"`86400`\" pulumi-lang-yaml=\"`86400`\" pulumi-lang-java=\"`86400`\"\u003e`86400`\u003c/span\u003e.\n"},"webhook":{"type":"string","description":"The callback URL to which a POST request is sent when an alert is triggered based on the alert rule.\n"}},"type":"object"}},"alicloud:cms/monitorGroup:MonitorGroup":{"description":"Provides a Cloud Monitor Service Monitor Group resource.\n\nFor information about Cloud Monitor Service Monitor Group and how to use it, see [What is Monitor Group](https://www.alibabacloud.com/help/en/cloudmonitor/latest/createmonitorgroup).\n\n\u003e **NOTE:** Available since v1.113.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.cms.MonitorGroup(\"example\", {monitorGroupName: \"tf-example-accmonitorgroup\"});\nconst default2 = new alicloud.cms.MonitorGroup(\"default2\", {\n    contactGroups: [\"your_contact_groups\"],\n    resourceGroupId: \"your_resource_group_id\",\n    resourceGroupName: \"resource_group_name\",\n    tags: {\n        Created: \"TF\",\n        For: \"Acceptance-example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cms.MonitorGroup(\"example\", monitor_group_name=\"tf-example-accmonitorgroup\")\ndefault2 = alicloud.cms.MonitorGroup(\"default2\",\n    contact_groups=[\"your_contact_groups\"],\n    resource_group_id=\"your_resource_group_id\",\n    resource_group_name=\"resource_group_name\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Acceptance-example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Cms.MonitorGroup(\"example\", new()\n    {\n        MonitorGroupName = \"tf-example-accmonitorgroup\",\n    });\n\n    var default2 = new AliCloud.Cms.MonitorGroup(\"default2\", new()\n    {\n        ContactGroups = new[]\n        {\n            \"your_contact_groups\",\n        },\n        ResourceGroupId = \"your_resource_group_id\",\n        ResourceGroupName = \"resource_group_name\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Acceptance-example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cms.NewMonitorGroup(ctx, \"example\", \u0026cms.MonitorGroupArgs{\n\t\t\tMonitorGroupName: pulumi.String(\"tf-example-accmonitorgroup\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cms.NewMonitorGroup(ctx, \"default2\", \u0026cms.MonitorGroupArgs{\n\t\t\tContactGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"your_contact_groups\"),\n\t\t\t},\n\t\t\tResourceGroupId:   pulumi.String(\"your_resource_group_id\"),\n\t\t\tResourceGroupName: pulumi.String(\"resource_group_name\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"Acceptance-example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.MonitorGroup;\nimport com.pulumi.alicloud.cms.MonitorGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new MonitorGroup(\"example\", MonitorGroupArgs.builder()\n            .monitorGroupName(\"tf-example-accmonitorgroup\")\n            .build());\n\n        var default2 = new MonitorGroup(\"default2\", MonitorGroupArgs.builder()\n            .contactGroups(\"your_contact_groups\")\n            .resourceGroupId(\"your_resource_group_id\")\n            .resourceGroupName(\"resource_group_name\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Acceptance-example\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:cms:MonitorGroup\n    properties:\n      monitorGroupName: tf-example-accmonitorgroup\n  default2:\n    type: alicloud:cms:MonitorGroup\n    properties:\n      contactGroups:\n        - your_contact_groups\n      resourceGroupId: your_resource_group_id\n      resourceGroupName: resource_group_name\n      tags:\n        Created: TF\n        For: Acceptance-example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Monitor Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cms/monitorGroup:MonitorGroup example \u003cid\u003e\n```\n\n","properties":{"contactGroups":{"type":"array","items":{"type":"string"},"description":"The alert group to which alert notifications will be sent.\n"},"monitorGroupName":{"type":"string","description":"The name of the application group.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"resourceGroupName":{"type":"string","description":"The name of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["monitorGroupName"],"inputProperties":{"contactGroups":{"type":"array","items":{"type":"string"},"description":"The alert group to which alert notifications will be sent.\n"},"monitorGroupName":{"type":"string","description":"The name of the application group.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"resourceGroupName":{"type":"string","description":"The name of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering MonitorGroup resources.\n","properties":{"contactGroups":{"type":"array","items":{"type":"string"},"description":"The alert group to which alert notifications will be sent.\n"},"monitorGroupName":{"type":"string","description":"The name of the application group.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"resourceGroupName":{"type":"string","description":"The name of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:cms/monitorGroupInstances:MonitorGroupInstances":{"description":"Provides a Cloud Monitor Service Monitor Group Instances resource.\n\nFor information about Cloud Monitor Service Monitor Group Instances and how to use it, see [What is Monitor Group Instances](https://www.alibabacloud.com/help/en/cloudmonitor/latest/createmonitorgroupinstances).\n\n\u003e **NOTE:** Available since v1.115.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultMonitorGroup = new alicloud.cms.MonitorGroup(\"default\", {monitorGroupName: name});\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst example = new alicloud.cms.MonitorGroupInstances(\"example\", {\n    groupId: defaultMonitorGroup.id,\n    instances: [{\n        instanceId: defaultNetwork.id,\n        instanceName: name,\n        regionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n        category: \"vpc\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ndefault_monitor_group = alicloud.cms.MonitorGroup(\"default\", monitor_group_name=name)\ndefault = alicloud.get_regions(current=True)\nexample = alicloud.cms.MonitorGroupInstances(\"example\",\n    group_id=default_monitor_group.id,\n    instances=[{\n        \"instance_id\": default_network.id,\n        \"instance_name\": name,\n        \"region_id\": default.regions[0].id,\n        \"category\": \"vpc\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultMonitorGroup = new AliCloud.Cms.MonitorGroup(\"default\", new()\n    {\n        MonitorGroupName = name,\n    });\n\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var example = new AliCloud.Cms.MonitorGroupInstances(\"example\", new()\n    {\n        GroupId = defaultMonitorGroup.Id,\n        Instances = new[]\n        {\n            new AliCloud.Cms.Inputs.MonitorGroupInstancesInstanceArgs\n            {\n                InstanceId = defaultNetwork.Id,\n                InstanceName = name,\n                RegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n                Category = \"vpc\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultMonitorGroup, err := cms.NewMonitorGroup(ctx, \"default\", \u0026cms.MonitorGroupArgs{\n\t\t\tMonitorGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cms.NewMonitorGroupInstances(ctx, \"example\", \u0026cms.MonitorGroupInstancesArgs{\n\t\t\tGroupId: defaultMonitorGroup.ID(),\n\t\t\tInstances: cms.MonitorGroupInstancesInstanceArray{\n\t\t\t\t\u0026cms.MonitorGroupInstancesInstanceArgs{\n\t\t\t\t\tInstanceId:   defaultNetwork.ID(),\n\t\t\t\t\tInstanceName: pulumi.String(name),\n\t\t\t\t\tRegionId:     pulumi.String(_default.Regions[0].Id),\n\t\t\t\t\tCategory:     pulumi.String(\"vpc\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.cms.MonitorGroup;\nimport com.pulumi.alicloud.cms.MonitorGroupArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.cms.MonitorGroupInstances;\nimport com.pulumi.alicloud.cms.MonitorGroupInstancesArgs;\nimport com.pulumi.alicloud.cms.inputs.MonitorGroupInstancesInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultMonitorGroup = new MonitorGroup(\"defaultMonitorGroup\", MonitorGroupArgs.builder()\n            .monitorGroupName(name)\n            .build());\n\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var example = new MonitorGroupInstances(\"example\", MonitorGroupInstancesArgs.builder()\n            .groupId(defaultMonitorGroup.id())\n            .instances(MonitorGroupInstancesInstanceArgs.builder()\n                .instanceId(defaultNetwork.id())\n                .instanceName(name)\n                .regionId(default_.regions()[0].id())\n                .category(\"vpc\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  defaultMonitorGroup:\n    type: alicloud:cms:MonitorGroup\n    name: default\n    properties:\n      monitorGroupName: ${name}\n  example:\n    type: alicloud:cms:MonitorGroupInstances\n    properties:\n      groupId: ${defaultMonitorGroup.id}\n      instances:\n        - instanceId: ${defaultNetwork.id}\n          instanceName: ${name}\n          regionId: ${default.regions[0].id}\n          category: vpc\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Monitor Group Instances can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cms/monitorGroupInstances:MonitorGroupInstances example \u003cgroup_id\u003e\n```\n\n","properties":{"groupId":{"type":"string","description":"The id of Cms Group.\n"},"instances":{"type":"array","items":{"$ref":"#/types/alicloud:cms/MonitorGroupInstancesInstance:MonitorGroupInstancesInstance"},"description":"Instance information added to the Cms Group. See \u003cspan pulumi-lang-nodejs=\"`instances`\" pulumi-lang-dotnet=\"`Instances`\" pulumi-lang-go=\"`instances`\" pulumi-lang-python=\"`instances`\" pulumi-lang-yaml=\"`instances`\" pulumi-lang-java=\"`instances`\"\u003e`instances`\u003c/span\u003e below.\n"}},"required":["groupId","instances"],"inputProperties":{"groupId":{"type":"string","description":"The id of Cms Group.\n","willReplaceOnChanges":true},"instances":{"type":"array","items":{"$ref":"#/types/alicloud:cms/MonitorGroupInstancesInstance:MonitorGroupInstancesInstance"},"description":"Instance information added to the Cms Group. See \u003cspan pulumi-lang-nodejs=\"`instances`\" pulumi-lang-dotnet=\"`Instances`\" pulumi-lang-go=\"`instances`\" pulumi-lang-python=\"`instances`\" pulumi-lang-yaml=\"`instances`\" pulumi-lang-java=\"`instances`\"\u003e`instances`\u003c/span\u003e below.\n"}},"requiredInputs":["groupId","instances"],"stateInputs":{"description":"Input properties used for looking up and filtering MonitorGroupInstances resources.\n","properties":{"groupId":{"type":"string","description":"The id of Cms Group.\n","willReplaceOnChanges":true},"instances":{"type":"array","items":{"$ref":"#/types/alicloud:cms/MonitorGroupInstancesInstance:MonitorGroupInstancesInstance"},"description":"Instance information added to the Cms Group. See \u003cspan pulumi-lang-nodejs=\"`instances`\" pulumi-lang-dotnet=\"`Instances`\" pulumi-lang-go=\"`instances`\" pulumi-lang-python=\"`instances`\" pulumi-lang-yaml=\"`instances`\" pulumi-lang-java=\"`instances`\"\u003e`instances`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:cms/namespace:Namespace":{"description":"Provides a Cloud Monitor Service Namespace resource.\n\nFor information about Cloud Monitor Service Namespace and how to use it, see [What is Namespace](https://www.alibabacloud.com/help/en/cloudmonitor/latest/createhybridmonitornamespace).\n\n\u003e **NOTE:** Available since v1.171.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.cms.Namespace(\"example\", {\n    namespace: \"tf-example\",\n    specification: \"cms.s1.large\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cms.Namespace(\"example\",\n    namespace=\"tf-example\",\n    specification=\"cms.s1.large\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Cms.Namespace(\"example\", new()\n    {\n        NamespaceName = \"tf-example\",\n        Specification = \"cms.s1.large\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cms.NewNamespace(ctx, \"example\", \u0026cms.NamespaceArgs{\n\t\t\tNamespace:     pulumi.String(\"tf-example\"),\n\t\t\tSpecification: pulumi.String(\"cms.s1.large\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.Namespace;\nimport com.pulumi.alicloud.cms.NamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Namespace(\"example\", NamespaceArgs.builder()\n            .namespace(\"tf-example\")\n            .specification(\"cms.s1.large\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:cms:Namespace\n    properties:\n      namespace: tf-example\n      specification: cms.s1.large\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Namespace can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cms/namespace:Namespace example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the namespace.\n"},"namespace":{"type":"string","description":"The name of the namespace. The name can contain lowercase letters, digits, and hyphens (-).\n","language":{"csharp":{"name":"NamespaceName"}}},"specification":{"type":"string","description":"The data retention period. Default value: `cms.s1.3xlarge`. Valid values:\n- `cms.s1.large`: Data storage duration is 15 days.\n- `cms.s1.xlarge`: Data storage duration is 32 days.\n- `cms.s1.2xlarge`: Data storage duration 63 days.\n- `cms.s1.3xlarge`: Data storage duration 93 days.\n- `cms.s1.6xlarge`: Data storage duration 185 days.\n- `cms.s1.12xlarge`: Data storage duration 376 days.\n"}},"required":["namespace","specification"],"inputProperties":{"description":{"type":"string","description":"The description of the namespace.\n"},"namespace":{"type":"string","description":"The name of the namespace. The name can contain lowercase letters, digits, and hyphens (-).\n","language":{"csharp":{"name":"NamespaceName"}},"willReplaceOnChanges":true},"specification":{"type":"string","description":"The data retention period. Default value: `cms.s1.3xlarge`. Valid values:\n- `cms.s1.large`: Data storage duration is 15 days.\n- `cms.s1.xlarge`: Data storage duration is 32 days.\n- `cms.s1.2xlarge`: Data storage duration 63 days.\n- `cms.s1.3xlarge`: Data storage duration 93 days.\n- `cms.s1.6xlarge`: Data storage duration 185 days.\n- `cms.s1.12xlarge`: Data storage duration 376 days.\n"}},"requiredInputs":["namespace"],"stateInputs":{"description":"Input properties used for looking up and filtering Namespace resources.\n","properties":{"description":{"type":"string","description":"The description of the namespace.\n"},"namespace":{"type":"string","description":"The name of the namespace. The name can contain lowercase letters, digits, and hyphens (-).\n","language":{"csharp":{"name":"NamespaceName"}},"willReplaceOnChanges":true},"specification":{"type":"string","description":"The data retention period. Default value: `cms.s1.3xlarge`. Valid values:\n- `cms.s1.large`: Data storage duration is 15 days.\n- `cms.s1.xlarge`: Data storage duration is 32 days.\n- `cms.s1.2xlarge`: Data storage duration 63 days.\n- `cms.s1.3xlarge`: Data storage duration 93 days.\n- `cms.s1.6xlarge`: Data storage duration 185 days.\n- `cms.s1.12xlarge`: Data storage duration 376 days.\n"}},"type":"object"}},"alicloud:cms/siteMonitor:SiteMonitor":{"description":"Provides a Cloud Monitor Service Site Monitor resource.\n\nDescribes the SITE monitoring tasks created by the user.\n\nFor information about Cloud Monitor Service Site Monitor and how to use it, see [What is Site Monitor](https://next.api.alibabacloud.com/document/Cms/2019-01-01/CreateSiteMonitor).\n\n\u003e **NOTE:** Available since v1.72.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst basic = new alicloud.cms.SiteMonitor(\"basic\", {\n    address: \"https://www.alibabacloud.com\",\n    taskName: name,\n    taskType: \"HTTP\",\n    interval: \"5\",\n    ispCities: [{\n        isp: \"232\",\n        city: \"641\",\n        type: \"IDC\",\n    }],\n    optionJson: {\n        responseContent: \"example\",\n        expectValue: \"example\",\n        port: 81,\n        isBaseEncode: true,\n        pingNum: 5,\n        matchRule: 1,\n        failureRate: \"0.3\",\n        requestContent: \"example\",\n        attempts: 4,\n        requestFormat: \"hex\",\n        password: \"YourPassword123!\",\n        diagnosisPing: true,\n        responseFormat: \"hex\",\n        cookie: \"key2=value2\",\n        pingPort: 443,\n        userName: \"example\",\n        dnsMatchRule: \"DNS_IN\",\n        timeout: 3000,\n        dnsServer: \"223.6.6.6\",\n        diagnosisMtr: true,\n        header: \"key2:value2\",\n        minTlsVersion: \"1.1\",\n        pingType: \"udp\",\n        dnsType: \"NS\",\n        dnsHijackWhitelist: \"DnsHijackWhitelist\",\n        httpMethod: \"post\",\n        assertions: [{\n            operator: \"lessThan\",\n            target: \"300\",\n            type: \"response_time\",\n        }],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nbasic = alicloud.cms.SiteMonitor(\"basic\",\n    address=\"https://www.alibabacloud.com\",\n    task_name=name,\n    task_type=\"HTTP\",\n    interval=\"5\",\n    isp_cities=[{\n        \"isp\": \"232\",\n        \"city\": \"641\",\n        \"type\": \"IDC\",\n    }],\n    option_json={\n        \"response_content\": \"example\",\n        \"expect_value\": \"example\",\n        \"port\": 81,\n        \"is_base_encode\": True,\n        \"ping_num\": 5,\n        \"match_rule\": 1,\n        \"failure_rate\": \"0.3\",\n        \"request_content\": \"example\",\n        \"attempts\": 4,\n        \"request_format\": \"hex\",\n        \"password\": \"YourPassword123!\",\n        \"diagnosis_ping\": True,\n        \"response_format\": \"hex\",\n        \"cookie\": \"key2=value2\",\n        \"ping_port\": 443,\n        \"user_name\": \"example\",\n        \"dns_match_rule\": \"DNS_IN\",\n        \"timeout\": 3000,\n        \"dns_server\": \"223.6.6.6\",\n        \"diagnosis_mtr\": True,\n        \"header\": \"key2:value2\",\n        \"min_tls_version\": \"1.1\",\n        \"ping_type\": \"udp\",\n        \"dns_type\": \"NS\",\n        \"dns_hijack_whitelist\": \"DnsHijackWhitelist\",\n        \"http_method\": \"post\",\n        \"assertions\": [{\n            \"operator\": \"lessThan\",\n            \"target\": \"300\",\n            \"type\": \"response_time\",\n        }],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var basic = new AliCloud.Cms.SiteMonitor(\"basic\", new()\n    {\n        Address = \"https://www.alibabacloud.com\",\n        TaskName = name,\n        TaskType = \"HTTP\",\n        Interval = \"5\",\n        IspCities = new[]\n        {\n            new AliCloud.Cms.Inputs.SiteMonitorIspCityArgs\n            {\n                Isp = \"232\",\n                City = \"641\",\n                Type = \"IDC\",\n            },\n        },\n        OptionJson = new AliCloud.Cms.Inputs.SiteMonitorOptionJsonArgs\n        {\n            ResponseContent = \"example\",\n            ExpectValue = \"example\",\n            Port = 81,\n            IsBaseEncode = true,\n            PingNum = 5,\n            MatchRule = 1,\n            FailureRate = \"0.3\",\n            RequestContent = \"example\",\n            Attempts = 4,\n            RequestFormat = \"hex\",\n            Password = \"YourPassword123!\",\n            DiagnosisPing = true,\n            ResponseFormat = \"hex\",\n            Cookie = \"key2=value2\",\n            PingPort = 443,\n            UserName = \"example\",\n            DnsMatchRule = \"DNS_IN\",\n            Timeout = 3000,\n            DnsServer = \"223.6.6.6\",\n            DiagnosisMtr = true,\n            Header = \"key2:value2\",\n            MinTlsVersion = \"1.1\",\n            PingType = \"udp\",\n            DnsType = \"NS\",\n            DnsHijackWhitelist = \"DnsHijackWhitelist\",\n            HttpMethod = \"post\",\n            Assertions = new[]\n            {\n                new AliCloud.Cms.Inputs.SiteMonitorOptionJsonAssertionArgs\n                {\n                    Operator = \"lessThan\",\n                    Target = \"300\",\n                    Type = \"response_time\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cms.NewSiteMonitor(ctx, \"basic\", \u0026cms.SiteMonitorArgs{\n\t\t\tAddress:  pulumi.String(\"https://www.alibabacloud.com\"),\n\t\t\tTaskName: pulumi.String(name),\n\t\t\tTaskType: pulumi.String(\"HTTP\"),\n\t\t\tInterval: pulumi.String(\"5\"),\n\t\t\tIspCities: cms.SiteMonitorIspCityArray{\n\t\t\t\t\u0026cms.SiteMonitorIspCityArgs{\n\t\t\t\t\tIsp:  pulumi.String(\"232\"),\n\t\t\t\t\tCity: pulumi.String(\"641\"),\n\t\t\t\t\tType: pulumi.String(\"IDC\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionJson: \u0026cms.SiteMonitorOptionJsonArgs{\n\t\t\t\tResponseContent:    pulumi.String(\"example\"),\n\t\t\t\tExpectValue:        pulumi.String(\"example\"),\n\t\t\t\tPort:               pulumi.Int(81),\n\t\t\t\tIsBaseEncode:       pulumi.Bool(true),\n\t\t\t\tPingNum:            pulumi.Int(5),\n\t\t\t\tMatchRule:          pulumi.Int(1),\n\t\t\t\tFailureRate:        pulumi.String(\"0.3\"),\n\t\t\t\tRequestContent:     pulumi.String(\"example\"),\n\t\t\t\tAttempts:           pulumi.Int(4),\n\t\t\t\tRequestFormat:      pulumi.String(\"hex\"),\n\t\t\t\tPassword:           pulumi.String(\"YourPassword123!\"),\n\t\t\t\tDiagnosisPing:      pulumi.Bool(true),\n\t\t\t\tResponseFormat:     pulumi.String(\"hex\"),\n\t\t\t\tCookie:             pulumi.String(\"key2=value2\"),\n\t\t\t\tPingPort:           pulumi.Int(443),\n\t\t\t\tUserName:           pulumi.String(\"example\"),\n\t\t\t\tDnsMatchRule:       pulumi.String(\"DNS_IN\"),\n\t\t\t\tTimeout:            pulumi.Int(3000),\n\t\t\t\tDnsServer:          pulumi.String(\"223.6.6.6\"),\n\t\t\t\tDiagnosisMtr:       pulumi.Bool(true),\n\t\t\t\tHeader:             pulumi.String(\"key2:value2\"),\n\t\t\t\tMinTlsVersion:      pulumi.String(\"1.1\"),\n\t\t\t\tPingType:           pulumi.String(\"udp\"),\n\t\t\t\tDnsType:            pulumi.String(\"NS\"),\n\t\t\t\tDnsHijackWhitelist: pulumi.String(\"DnsHijackWhitelist\"),\n\t\t\t\tHttpMethod:         pulumi.String(\"post\"),\n\t\t\t\tAssertions: cms.SiteMonitorOptionJsonAssertionArray{\n\t\t\t\t\t\u0026cms.SiteMonitorOptionJsonAssertionArgs{\n\t\t\t\t\t\tOperator: pulumi.String(\"lessThan\"),\n\t\t\t\t\t\tTarget:   pulumi.String(\"300\"),\n\t\t\t\t\t\tType:     pulumi.String(\"response_time\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.SiteMonitor;\nimport com.pulumi.alicloud.cms.SiteMonitorArgs;\nimport com.pulumi.alicloud.cms.inputs.SiteMonitorIspCityArgs;\nimport com.pulumi.alicloud.cms.inputs.SiteMonitorOptionJsonArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var basic = new SiteMonitor(\"basic\", SiteMonitorArgs.builder()\n            .address(\"https://www.alibabacloud.com\")\n            .taskName(name)\n            .taskType(\"HTTP\")\n            .interval(\"5\")\n            .ispCities(SiteMonitorIspCityArgs.builder()\n                .isp(\"232\")\n                .city(\"641\")\n                .type(\"IDC\")\n                .build())\n            .optionJson(SiteMonitorOptionJsonArgs.builder()\n                .responseContent(\"example\")\n                .expectValue(\"example\")\n                .port(81)\n                .isBaseEncode(true)\n                .pingNum(5)\n                .matchRule(1)\n                .failureRate(\"0.3\")\n                .requestContent(\"example\")\n                .attempts(4)\n                .requestFormat(\"hex\")\n                .password(\"YourPassword123!\")\n                .diagnosisPing(true)\n                .responseFormat(\"hex\")\n                .cookie(\"key2=value2\")\n                .pingPort(443)\n                .userName(\"example\")\n                .dnsMatchRule(\"DNS_IN\")\n                .timeout(3000)\n                .dnsServer(\"223.6.6.6\")\n                .diagnosisMtr(true)\n                .header(\"key2:value2\")\n                .minTlsVersion(\"1.1\")\n                .pingType(\"udp\")\n                .dnsType(\"NS\")\n                .dnsHijackWhitelist(\"DnsHijackWhitelist\")\n                .httpMethod(\"post\")\n                .assertions(SiteMonitorOptionJsonAssertionArgs.builder()\n                    .operator(\"lessThan\")\n                    .target(\"300\")\n                    .type(\"response_time\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  basic:\n    type: alicloud:cms:SiteMonitor\n    properties:\n      address: https://www.alibabacloud.com\n      taskName: ${name}\n      taskType: HTTP\n      interval: 5\n      ispCities:\n        - isp: '232'\n          city: '641'\n          type: IDC\n      optionJson:\n        responseContent: example\n        expectValue: example\n        port: 81\n        isBaseEncode: true\n        pingNum: 5\n        matchRule: 1\n        failureRate: '0.3'\n        requestContent: example\n        attempts: 4\n        requestFormat: hex\n        password: YourPassword123!\n        diagnosisPing: true\n        responseFormat: hex\n        cookie: key2=value2\n        pingPort: 443\n        userName: example\n        dnsMatchRule: DNS_IN\n        timeout: 3000\n        dnsServer: 223.6.6.6\n        diagnosisMtr: true\n        header: key2:value2\n        minTlsVersion: '1.1'\n        pingType: udp\n        dnsType: NS\n        dnsHijackWhitelist: DnsHijackWhitelist\n        httpMethod: post\n        assertions:\n          - operator: lessThan\n            target: 300\n            type: response_time\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Site Monitor can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cms/siteMonitor:SiteMonitor example \u003cid\u003e\n```\n\n","properties":{"address":{"type":"string","description":"The URL or IP address monitored by the site monitoring task.\n"},"agentGroup":{"type":"string","description":"The type of the detection point. Default value: `PC`. Valid values: `PC`, `MOBILE`.\n"},"alertIds":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`alertIds`\" pulumi-lang-dotnet=\"`AlertIds`\" pulumi-lang-go=\"`alertIds`\" pulumi-lang-python=\"`alert_ids`\" pulumi-lang-yaml=\"`alertIds`\" pulumi-lang-java=\"`alertIds`\"\u003e`alert_ids`\u003c/span\u003e has been deprecated from provider version 1.262.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`alertIds`\" pulumi-lang-dotnet=\"`AlertIds`\" pulumi-lang-go=\"`alertIds`\" pulumi-lang-python=\"`alert_ids`\" pulumi-lang-yaml=\"`alertIds`\" pulumi-lang-java=\"`alertIds`\"\u003e`alert_ids`\u003c/span\u003e has been deprecated from provider version 1.262.0."},"createTime":{"type":"string","description":"(Deprecated since v1.262.0) Field \u003cspan pulumi-lang-nodejs=\"`createTime`\" pulumi-lang-dotnet=\"`CreateTime`\" pulumi-lang-go=\"`createTime`\" pulumi-lang-python=\"`create_time`\" pulumi-lang-yaml=\"`createTime`\" pulumi-lang-java=\"`createTime`\"\u003e`create_time`\u003c/span\u003e has been deprecated from provider version 1.262.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`createTime`\" pulumi-lang-dotnet=\"`CreateTime`\" pulumi-lang-go=\"`createTime`\" pulumi-lang-python=\"`create_time`\" pulumi-lang-yaml=\"`createTime`\" pulumi-lang-java=\"`createTime`\"\u003e`create_time`\u003c/span\u003e has been deprecated from provider version 1.262.0."},"customSchedule":{"$ref":"#/types/alicloud:cms/SiteMonitorCustomSchedule:SiteMonitorCustomSchedule","description":"Custom probing period. Only a certain period of time from Monday to Sunday can be selected for detection. See \u003cspan pulumi-lang-nodejs=\"`customSchedule`\" pulumi-lang-dotnet=\"`CustomSchedule`\" pulumi-lang-go=\"`customSchedule`\" pulumi-lang-python=\"`custom_schedule`\" pulumi-lang-yaml=\"`customSchedule`\" pulumi-lang-java=\"`customSchedule`\"\u003e`custom_schedule`\u003c/span\u003e below.\n"},"interval":{"type":"string","description":"The monitoring interval of the site monitoring task. Unit: minutes. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. **NOTE:** From version 1.207.0, \u003cspan pulumi-lang-nodejs=\"`interval`\" pulumi-lang-dotnet=\"`Interval`\" pulumi-lang-go=\"`interval`\" pulumi-lang-python=\"`interval`\" pulumi-lang-yaml=\"`interval`\" pulumi-lang-java=\"`interval`\"\u003e`interval`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"ispCities":{"type":"array","items":{"$ref":"#/types/alicloud:cms/SiteMonitorIspCity:SiteMonitorIspCity"},"description":"The detection points in a JSON array. For example, `[{\"city\":\"546\",\"isp\":\"465\"},{\"city\":\"572\",\"isp\":\"465\"},{\"city\":\"738\",\"isp\":\"465\"}]` indicates the detection points in Beijing, Hangzhou, and Qingdao respectively. You can call the [DescribeSiteMonitorISPCityList](https://www.alibabacloud.com/help/en/doc-detail/115045.htm) operation to query detection point information. If this parameter is not specified, three detection points will be chosen randomly for monitoring. See \u003cspan pulumi-lang-nodejs=\"`ispCities`\" pulumi-lang-dotnet=\"`IspCities`\" pulumi-lang-go=\"`ispCities`\" pulumi-lang-python=\"`isp_cities`\" pulumi-lang-yaml=\"`ispCities`\" pulumi-lang-java=\"`ispCities`\"\u003e`isp_cities`\u003c/span\u003e below.\n"},"optionJson":{"$ref":"#/types/alicloud:cms/SiteMonitorOptionJson:SiteMonitorOptionJson","description":"The extended options of the protocol that is used by the site monitoring task. See \u003cspan pulumi-lang-nodejs=\"`optionJson`\" pulumi-lang-dotnet=\"`OptionJson`\" pulumi-lang-go=\"`optionJson`\" pulumi-lang-python=\"`option_json`\" pulumi-lang-yaml=\"`optionJson`\" pulumi-lang-java=\"`optionJson`\"\u003e`option_json`\u003c/span\u003e below.\n"},"optionsJson":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`optionsJson`\" pulumi-lang-dotnet=\"`OptionsJson`\" pulumi-lang-go=\"`optionsJson`\" pulumi-lang-python=\"`options_json`\" pulumi-lang-yaml=\"`optionsJson`\" pulumi-lang-java=\"`optionsJson`\"\u003e`options_json`\u003c/span\u003e has been deprecated from provider version 1.262.0. New field \u003cspan pulumi-lang-nodejs=\"`optionJson`\" pulumi-lang-dotnet=\"`OptionJson`\" pulumi-lang-go=\"`optionJson`\" pulumi-lang-python=\"`option_json`\" pulumi-lang-yaml=\"`optionJson`\" pulumi-lang-java=\"`optionJson`\"\u003e`option_json`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`optionsJson`\" pulumi-lang-dotnet=\"`OptionsJson`\" pulumi-lang-go=\"`optionsJson`\" pulumi-lang-python=\"`options_json`\" pulumi-lang-yaml=\"`optionsJson`\" pulumi-lang-java=\"`optionsJson`\"\u003e`options_json`\u003c/span\u003e has been deprecated from provider version 1.262.0. New field \u003cspan pulumi-lang-nodejs=\"`optionJson`\" pulumi-lang-dotnet=\"`OptionJson`\" pulumi-lang-go=\"`optionJson`\" pulumi-lang-python=\"`option_json`\" pulumi-lang-yaml=\"`optionJson`\" pulumi-lang-java=\"`optionJson`\"\u003e`option_json`\u003c/span\u003e instead"},"status":{"type":"string","description":"The status of the site monitoring task. Valid values:\n"},"taskName":{"type":"string","description":"The name of the site monitoring task. The name must be 4 to 100 characters in length. The name can contain the following types of characters: letters, digits, and underscores.\n"},"taskState":{"type":"string","description":"(Deprecated since v1.262.0) Field \u003cspan pulumi-lang-nodejs=\"`taskState`\" pulumi-lang-dotnet=\"`TaskState`\" pulumi-lang-go=\"`taskState`\" pulumi-lang-python=\"`task_state`\" pulumi-lang-yaml=\"`taskState`\" pulumi-lang-java=\"`taskState`\"\u003e`task_state`\u003c/span\u003e has been deprecated from provider version 1.262.0. New field \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`taskState`\" pulumi-lang-dotnet=\"`TaskState`\" pulumi-lang-go=\"`taskState`\" pulumi-lang-python=\"`task_state`\" pulumi-lang-yaml=\"`taskState`\" pulumi-lang-java=\"`taskState`\"\u003e`task_state`\u003c/span\u003e has been deprecated from provider version 1.262.0. New field \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e instead."},"taskType":{"type":"string","description":"The protocol of the site monitoring task. Currently, site monitoring supports the following protocols: HTTP, PING, TCP, UDP, DNS, SMTP, POP3, and FTP.\n"},"updateTime":{"type":"string","description":"(Deprecated since v1.262.0) Field \u003cspan pulumi-lang-nodejs=\"`updateTime`\" pulumi-lang-dotnet=\"`UpdateTime`\" pulumi-lang-go=\"`updateTime`\" pulumi-lang-python=\"`update_time`\" pulumi-lang-yaml=\"`updateTime`\" pulumi-lang-java=\"`updateTime`\"\u003e`update_time`\u003c/span\u003e has been deprecated from provider version 1.262.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`updateTime`\" pulumi-lang-dotnet=\"`UpdateTime`\" pulumi-lang-go=\"`updateTime`\" pulumi-lang-python=\"`update_time`\" pulumi-lang-yaml=\"`updateTime`\" pulumi-lang-java=\"`updateTime`\"\u003e`update_time`\u003c/span\u003e has been deprecated from provider version 1.262.0."}},"required":["address","agentGroup","createTime","interval","ispCities","optionJson","optionsJson","status","taskName","taskState","taskType","updateTime"],"inputProperties":{"address":{"type":"string","description":"The URL or IP address monitored by the site monitoring task.\n"},"agentGroup":{"type":"string","description":"The type of the detection point. Default value: `PC`. Valid values: `PC`, `MOBILE`.\n","willReplaceOnChanges":true},"alertIds":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`alertIds`\" pulumi-lang-dotnet=\"`AlertIds`\" pulumi-lang-go=\"`alertIds`\" pulumi-lang-python=\"`alert_ids`\" pulumi-lang-yaml=\"`alertIds`\" pulumi-lang-java=\"`alertIds`\"\u003e`alert_ids`\u003c/span\u003e has been deprecated from provider version 1.262.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`alertIds`\" pulumi-lang-dotnet=\"`AlertIds`\" pulumi-lang-go=\"`alertIds`\" pulumi-lang-python=\"`alert_ids`\" pulumi-lang-yaml=\"`alertIds`\" pulumi-lang-java=\"`alertIds`\"\u003e`alert_ids`\u003c/span\u003e has been deprecated from provider version 1.262.0."},"customSchedule":{"$ref":"#/types/alicloud:cms/SiteMonitorCustomSchedule:SiteMonitorCustomSchedule","description":"Custom probing period. Only a certain period of time from Monday to Sunday can be selected for detection. See \u003cspan pulumi-lang-nodejs=\"`customSchedule`\" pulumi-lang-dotnet=\"`CustomSchedule`\" pulumi-lang-go=\"`customSchedule`\" pulumi-lang-python=\"`custom_schedule`\" pulumi-lang-yaml=\"`customSchedule`\" pulumi-lang-java=\"`customSchedule`\"\u003e`custom_schedule`\u003c/span\u003e below.\n"},"interval":{"type":"string","description":"The monitoring interval of the site monitoring task. Unit: minutes. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. **NOTE:** From version 1.207.0, \u003cspan pulumi-lang-nodejs=\"`interval`\" pulumi-lang-dotnet=\"`Interval`\" pulumi-lang-go=\"`interval`\" pulumi-lang-python=\"`interval`\" pulumi-lang-yaml=\"`interval`\" pulumi-lang-java=\"`interval`\"\u003e`interval`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"ispCities":{"type":"array","items":{"$ref":"#/types/alicloud:cms/SiteMonitorIspCity:SiteMonitorIspCity"},"description":"The detection points in a JSON array. For example, `[{\"city\":\"546\",\"isp\":\"465\"},{\"city\":\"572\",\"isp\":\"465\"},{\"city\":\"738\",\"isp\":\"465\"}]` indicates the detection points in Beijing, Hangzhou, and Qingdao respectively. You can call the [DescribeSiteMonitorISPCityList](https://www.alibabacloud.com/help/en/doc-detail/115045.htm) operation to query detection point information. If this parameter is not specified, three detection points will be chosen randomly for monitoring. See \u003cspan pulumi-lang-nodejs=\"`ispCities`\" pulumi-lang-dotnet=\"`IspCities`\" pulumi-lang-go=\"`ispCities`\" pulumi-lang-python=\"`isp_cities`\" pulumi-lang-yaml=\"`ispCities`\" pulumi-lang-java=\"`ispCities`\"\u003e`isp_cities`\u003c/span\u003e below.\n"},"optionJson":{"$ref":"#/types/alicloud:cms/SiteMonitorOptionJson:SiteMonitorOptionJson","description":"The extended options of the protocol that is used by the site monitoring task. See \u003cspan pulumi-lang-nodejs=\"`optionJson`\" pulumi-lang-dotnet=\"`OptionJson`\" pulumi-lang-go=\"`optionJson`\" pulumi-lang-python=\"`option_json`\" pulumi-lang-yaml=\"`optionJson`\" pulumi-lang-java=\"`optionJson`\"\u003e`option_json`\u003c/span\u003e below.\n"},"optionsJson":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`optionsJson`\" pulumi-lang-dotnet=\"`OptionsJson`\" pulumi-lang-go=\"`optionsJson`\" pulumi-lang-python=\"`options_json`\" pulumi-lang-yaml=\"`optionsJson`\" pulumi-lang-java=\"`optionsJson`\"\u003e`options_json`\u003c/span\u003e has been deprecated from provider version 1.262.0. New field \u003cspan pulumi-lang-nodejs=\"`optionJson`\" pulumi-lang-dotnet=\"`OptionJson`\" pulumi-lang-go=\"`optionJson`\" pulumi-lang-python=\"`option_json`\" pulumi-lang-yaml=\"`optionJson`\" pulumi-lang-java=\"`optionJson`\"\u003e`option_json`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`optionsJson`\" pulumi-lang-dotnet=\"`OptionsJson`\" pulumi-lang-go=\"`optionsJson`\" pulumi-lang-python=\"`options_json`\" pulumi-lang-yaml=\"`optionsJson`\" pulumi-lang-java=\"`optionsJson`\"\u003e`options_json`\u003c/span\u003e has been deprecated from provider version 1.262.0. New field \u003cspan pulumi-lang-nodejs=\"`optionJson`\" pulumi-lang-dotnet=\"`OptionJson`\" pulumi-lang-go=\"`optionJson`\" pulumi-lang-python=\"`option_json`\" pulumi-lang-yaml=\"`optionJson`\" pulumi-lang-java=\"`optionJson`\"\u003e`option_json`\u003c/span\u003e instead"},"status":{"type":"string","description":"The status of the site monitoring task. Valid values:\n"},"taskName":{"type":"string","description":"The name of the site monitoring task. The name must be 4 to 100 characters in length. The name can contain the following types of characters: letters, digits, and underscores.\n"},"taskType":{"type":"string","description":"The protocol of the site monitoring task. Currently, site monitoring supports the following protocols: HTTP, PING, TCP, UDP, DNS, SMTP, POP3, and FTP.\n","willReplaceOnChanges":true}},"requiredInputs":["address","taskName","taskType"],"stateInputs":{"description":"Input properties used for looking up and filtering SiteMonitor resources.\n","properties":{"address":{"type":"string","description":"The URL or IP address monitored by the site monitoring task.\n"},"agentGroup":{"type":"string","description":"The type of the detection point. Default value: `PC`. Valid values: `PC`, `MOBILE`.\n","willReplaceOnChanges":true},"alertIds":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`alertIds`\" pulumi-lang-dotnet=\"`AlertIds`\" pulumi-lang-go=\"`alertIds`\" pulumi-lang-python=\"`alert_ids`\" pulumi-lang-yaml=\"`alertIds`\" pulumi-lang-java=\"`alertIds`\"\u003e`alert_ids`\u003c/span\u003e has been deprecated from provider version 1.262.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`alertIds`\" pulumi-lang-dotnet=\"`AlertIds`\" pulumi-lang-go=\"`alertIds`\" pulumi-lang-python=\"`alert_ids`\" pulumi-lang-yaml=\"`alertIds`\" pulumi-lang-java=\"`alertIds`\"\u003e`alert_ids`\u003c/span\u003e has been deprecated from provider version 1.262.0."},"createTime":{"type":"string","description":"(Deprecated since v1.262.0) Field \u003cspan pulumi-lang-nodejs=\"`createTime`\" pulumi-lang-dotnet=\"`CreateTime`\" pulumi-lang-go=\"`createTime`\" pulumi-lang-python=\"`create_time`\" pulumi-lang-yaml=\"`createTime`\" pulumi-lang-java=\"`createTime`\"\u003e`create_time`\u003c/span\u003e has been deprecated from provider version 1.262.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`createTime`\" pulumi-lang-dotnet=\"`CreateTime`\" pulumi-lang-go=\"`createTime`\" pulumi-lang-python=\"`create_time`\" pulumi-lang-yaml=\"`createTime`\" pulumi-lang-java=\"`createTime`\"\u003e`create_time`\u003c/span\u003e has been deprecated from provider version 1.262.0."},"customSchedule":{"$ref":"#/types/alicloud:cms/SiteMonitorCustomSchedule:SiteMonitorCustomSchedule","description":"Custom probing period. Only a certain period of time from Monday to Sunday can be selected for detection. See \u003cspan pulumi-lang-nodejs=\"`customSchedule`\" pulumi-lang-dotnet=\"`CustomSchedule`\" pulumi-lang-go=\"`customSchedule`\" pulumi-lang-python=\"`custom_schedule`\" pulumi-lang-yaml=\"`customSchedule`\" pulumi-lang-java=\"`customSchedule`\"\u003e`custom_schedule`\u003c/span\u003e below.\n"},"interval":{"type":"string","description":"The monitoring interval of the site monitoring task. Unit: minutes. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. **NOTE:** From version 1.207.0, \u003cspan pulumi-lang-nodejs=\"`interval`\" pulumi-lang-dotnet=\"`Interval`\" pulumi-lang-go=\"`interval`\" pulumi-lang-python=\"`interval`\" pulumi-lang-yaml=\"`interval`\" pulumi-lang-java=\"`interval`\"\u003e`interval`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"ispCities":{"type":"array","items":{"$ref":"#/types/alicloud:cms/SiteMonitorIspCity:SiteMonitorIspCity"},"description":"The detection points in a JSON array. For example, `[{\"city\":\"546\",\"isp\":\"465\"},{\"city\":\"572\",\"isp\":\"465\"},{\"city\":\"738\",\"isp\":\"465\"}]` indicates the detection points in Beijing, Hangzhou, and Qingdao respectively. You can call the [DescribeSiteMonitorISPCityList](https://www.alibabacloud.com/help/en/doc-detail/115045.htm) operation to query detection point information. If this parameter is not specified, three detection points will be chosen randomly for monitoring. See \u003cspan pulumi-lang-nodejs=\"`ispCities`\" pulumi-lang-dotnet=\"`IspCities`\" pulumi-lang-go=\"`ispCities`\" pulumi-lang-python=\"`isp_cities`\" pulumi-lang-yaml=\"`ispCities`\" pulumi-lang-java=\"`ispCities`\"\u003e`isp_cities`\u003c/span\u003e below.\n"},"optionJson":{"$ref":"#/types/alicloud:cms/SiteMonitorOptionJson:SiteMonitorOptionJson","description":"The extended options of the protocol that is used by the site monitoring task. See \u003cspan pulumi-lang-nodejs=\"`optionJson`\" pulumi-lang-dotnet=\"`OptionJson`\" pulumi-lang-go=\"`optionJson`\" pulumi-lang-python=\"`option_json`\" pulumi-lang-yaml=\"`optionJson`\" pulumi-lang-java=\"`optionJson`\"\u003e`option_json`\u003c/span\u003e below.\n"},"optionsJson":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`optionsJson`\" pulumi-lang-dotnet=\"`OptionsJson`\" pulumi-lang-go=\"`optionsJson`\" pulumi-lang-python=\"`options_json`\" pulumi-lang-yaml=\"`optionsJson`\" pulumi-lang-java=\"`optionsJson`\"\u003e`options_json`\u003c/span\u003e has been deprecated from provider version 1.262.0. New field \u003cspan pulumi-lang-nodejs=\"`optionJson`\" pulumi-lang-dotnet=\"`OptionJson`\" pulumi-lang-go=\"`optionJson`\" pulumi-lang-python=\"`option_json`\" pulumi-lang-yaml=\"`optionJson`\" pulumi-lang-java=\"`optionJson`\"\u003e`option_json`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`optionsJson`\" pulumi-lang-dotnet=\"`OptionsJson`\" pulumi-lang-go=\"`optionsJson`\" pulumi-lang-python=\"`options_json`\" pulumi-lang-yaml=\"`optionsJson`\" pulumi-lang-java=\"`optionsJson`\"\u003e`options_json`\u003c/span\u003e has been deprecated from provider version 1.262.0. New field \u003cspan pulumi-lang-nodejs=\"`optionJson`\" pulumi-lang-dotnet=\"`OptionJson`\" pulumi-lang-go=\"`optionJson`\" pulumi-lang-python=\"`option_json`\" pulumi-lang-yaml=\"`optionJson`\" pulumi-lang-java=\"`optionJson`\"\u003e`option_json`\u003c/span\u003e instead"},"status":{"type":"string","description":"The status of the site monitoring task. Valid values:\n"},"taskName":{"type":"string","description":"The name of the site monitoring task. The name must be 4 to 100 characters in length. The name can contain the following types of characters: letters, digits, and underscores.\n"},"taskState":{"type":"string","description":"(Deprecated since v1.262.0) Field \u003cspan pulumi-lang-nodejs=\"`taskState`\" pulumi-lang-dotnet=\"`TaskState`\" pulumi-lang-go=\"`taskState`\" pulumi-lang-python=\"`task_state`\" pulumi-lang-yaml=\"`taskState`\" pulumi-lang-java=\"`taskState`\"\u003e`task_state`\u003c/span\u003e has been deprecated from provider version 1.262.0. New field \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`taskState`\" pulumi-lang-dotnet=\"`TaskState`\" pulumi-lang-go=\"`taskState`\" pulumi-lang-python=\"`task_state`\" pulumi-lang-yaml=\"`taskState`\" pulumi-lang-java=\"`taskState`\"\u003e`task_state`\u003c/span\u003e has been deprecated from provider version 1.262.0. New field \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e instead."},"taskType":{"type":"string","description":"The protocol of the site monitoring task. Currently, site monitoring supports the following protocols: HTTP, PING, TCP, UDP, DNS, SMTP, POP3, and FTP.\n","willReplaceOnChanges":true},"updateTime":{"type":"string","description":"(Deprecated since v1.262.0) Field \u003cspan pulumi-lang-nodejs=\"`updateTime`\" pulumi-lang-dotnet=\"`UpdateTime`\" pulumi-lang-go=\"`updateTime`\" pulumi-lang-python=\"`update_time`\" pulumi-lang-yaml=\"`updateTime`\" pulumi-lang-java=\"`updateTime`\"\u003e`update_time`\u003c/span\u003e has been deprecated from provider version 1.262.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`updateTime`\" pulumi-lang-dotnet=\"`UpdateTime`\" pulumi-lang-go=\"`updateTime`\" pulumi-lang-python=\"`update_time`\" pulumi-lang-yaml=\"`updateTime`\" pulumi-lang-java=\"`updateTime`\"\u003e`update_time`\u003c/span\u003e has been deprecated from provider version 1.262.0."}},"type":"object"}},"alicloud:cms/slsGroup:SlsGroup":{"description":"Provides a Cloud Monitor Service Sls Group resource.\n\nFor information about Cloud Monitor Service Sls Group and how to use it, see [What is Sls Group](https://www.alibabacloud.com/help/doc-detail/28608.htm).\n\n\u003e **NOTE:** Available since v1.171.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getAccount({});\nconst defaultGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst defaultUuid = new random.index.Uuid(\"default\", {});\nconst defaultProject = new alicloud.log.Project(\"default\", {projectName: std.replace({\n    text: defaultUuid.result,\n    search: \"-\",\n    replace: \"\",\n}).then(invoke =\u003e std.substr({\n    input: `tf-example-${invoke.result}`,\n    offset: 0,\n    length: 16,\n})).then(invoke =\u003e invoke.result)});\nconst defaultStore = new alicloud.log.Store(\"default\", {\n    projectName: defaultProject.projectName,\n    logstoreName: name,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst defaultSlsGroup = new alicloud.cms.SlsGroup(\"default\", {\n    slsGroupConfigs: [{\n        slsUserId: _default.then(_default =\u003e _default.id),\n        slsLogstore: defaultStore.logstoreName,\n        slsProject: defaultProject.projectName,\n        slsRegion: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.id),\n    }],\n    slsGroupDescription: name,\n    slsGroupName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_account()\ndefault_get_regions = alicloud.get_regions(current=True)\ndefault_uuid = random.index.Uuid(\"default\")\ndefault_project = alicloud.log.Project(\"default\", project_name=std.substr(input=f\"tf-example-{std.replace(text=default_uuid['result'],\n        search='-',\n        replace='').result}\",\n    offset=0,\n    length=16).result)\ndefault_store = alicloud.log.Store(\"default\",\n    project_name=default_project.project_name,\n    logstore_name=name,\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\ndefault_sls_group = alicloud.cms.SlsGroup(\"default\",\n    sls_group_configs=[{\n        \"sls_user_id\": default.id,\n        \"sls_logstore\": default_store.logstore_name,\n        \"sls_project\": default_project.project_name,\n        \"sls_region\": default_get_regions.regions[0].id,\n    }],\n    sls_group_description=name,\n    sls_group_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultUuid = new Random.Index.Uuid(\"default\");\n\n    var defaultProject = new AliCloud.Log.Project(\"default\", new()\n    {\n        ProjectName = Std.Replace.Invoke(new()\n        {\n            Text = defaultUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultStore = new AliCloud.Log.Store(\"default\", new()\n    {\n        ProjectName = defaultProject.ProjectName,\n        LogstoreName = name,\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var defaultSlsGroup = new AliCloud.Cms.SlsGroup(\"default\", new()\n    {\n        SlsGroupConfigs = new[]\n        {\n            new AliCloud.Cms.Inputs.SlsGroupSlsGroupConfigArgs\n            {\n                SlsUserId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n                SlsLogstore = defaultStore.LogstoreName,\n                SlsProject = defaultProject.ProjectName,\n                SlsRegion = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n            },\n        },\n        SlsGroupDescription = name,\n        SlsGroupName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRegions, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultUuid, err := random.NewUuid(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    defaultUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultProject, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.String(invokeSubstr.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStore, err := log.NewStore(ctx, \"default\", \u0026log.StoreArgs{\n\t\t\tProjectName:        defaultProject.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(name),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cms.NewSlsGroup(ctx, \"default\", \u0026cms.SlsGroupArgs{\n\t\t\tSlsGroupConfigs: cms.SlsGroupSlsGroupConfigArray{\n\t\t\t\t\u0026cms.SlsGroupSlsGroupConfigArgs{\n\t\t\t\t\tSlsUserId:   pulumi.String(_default.Id),\n\t\t\t\t\tSlsLogstore: defaultStore.LogstoreName,\n\t\t\t\t\tSlsProject:  defaultProject.ProjectName,\n\t\t\t\t\tSlsRegion:   pulumi.String(defaultGetRegions.Regions[0].Id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSlsGroupDescription: pulumi.String(name),\n\t\t\tSlsGroupName:        pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Uuid;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ReplaceArgs;\nimport com.pulumi.std.inputs.SubstrArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.cms.SlsGroup;\nimport com.pulumi.alicloud.cms.SlsGroupArgs;\nimport com.pulumi.alicloud.cms.inputs.SlsGroupSlsGroupConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var defaultGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultUuid = new Uuid(\"defaultUuid\");\n\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .projectName(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(defaultUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .build());\n\n        var defaultStore = new Store(\"defaultStore\", StoreArgs.builder()\n            .projectName(defaultProject.projectName())\n            .logstoreName(name)\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var defaultSlsGroup = new SlsGroup(\"defaultSlsGroup\", SlsGroupArgs.builder()\n            .slsGroupConfigs(SlsGroupSlsGroupConfigArgs.builder()\n                .slsUserId(default_.id())\n                .slsLogstore(defaultStore.logstoreName())\n                .slsProject(defaultProject.projectName())\n                .slsRegion(defaultGetRegions.regions()[0].id())\n                .build())\n            .slsGroupDescription(name)\n            .slsGroupName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultUuid:\n    type: random:Uuid\n    name: default\n  defaultProject:\n    type: alicloud:log:Project\n    name: default\n    properties:\n      projectName:\n        fn::invoke:\n          function: std:substr\n          arguments:\n            input:\n              fn::join:\n                - \"\"\n                - - tf-example-\n                  - fn::invoke:\n                      function: std:replace\n                      arguments:\n                        text: ${defaultUuid.result}\n                        search: '-'\n                        replace: \"\"\n                      return: result\n            offset: 0\n            length: 16\n          return: result\n  defaultStore:\n    type: alicloud:log:Store\n    name: default\n    properties:\n      projectName: ${defaultProject.projectName}\n      logstoreName: ${name}\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  defaultSlsGroup:\n    type: alicloud:cms:SlsGroup\n    name: default\n    properties:\n      slsGroupConfigs:\n        - slsUserId: ${default.id}\n          slsLogstore: ${defaultStore.logstoreName}\n          slsProject: ${defaultProject.projectName}\n          slsRegion: ${defaultGetRegions.regions[0].id}\n      slsGroupDescription: ${name}\n      slsGroupName: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  defaultGetRegions:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Monitor Service Sls Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cms/slsGroup:SlsGroup example \u003csls_group_name\u003e\n```\n\n","properties":{"slsGroupConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cms/SlsGroupSlsGroupConfig:SlsGroupSlsGroupConfig"},"description":"The Config of the Sls Group. You can specify up to 25 Config. See \u003cspan pulumi-lang-nodejs=\"`slsGroupConfig`\" pulumi-lang-dotnet=\"`SlsGroupConfig`\" pulumi-lang-go=\"`slsGroupConfig`\" pulumi-lang-python=\"`sls_group_config`\" pulumi-lang-yaml=\"`slsGroupConfig`\" pulumi-lang-java=\"`slsGroupConfig`\"\u003e`sls_group_config`\u003c/span\u003e below.\n"},"slsGroupDescription":{"type":"string","description":"The Description of the Sls Group.\n"},"slsGroupName":{"type":"string","description":"The name of the resource. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e characters in length, and can contain letters, digits and underscores (_). It must start with a letter.\n"}},"required":["slsGroupConfigs","slsGroupName"],"inputProperties":{"slsGroupConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cms/SlsGroupSlsGroupConfig:SlsGroupSlsGroupConfig"},"description":"The Config of the Sls Group. You can specify up to 25 Config. See \u003cspan pulumi-lang-nodejs=\"`slsGroupConfig`\" pulumi-lang-dotnet=\"`SlsGroupConfig`\" pulumi-lang-go=\"`slsGroupConfig`\" pulumi-lang-python=\"`sls_group_config`\" pulumi-lang-yaml=\"`slsGroupConfig`\" pulumi-lang-java=\"`slsGroupConfig`\"\u003e`sls_group_config`\u003c/span\u003e below.\n"},"slsGroupDescription":{"type":"string","description":"The Description of the Sls Group.\n"},"slsGroupName":{"type":"string","description":"The name of the resource. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e characters in length, and can contain letters, digits and underscores (_). It must start with a letter.\n","willReplaceOnChanges":true}},"requiredInputs":["slsGroupConfigs","slsGroupName"],"stateInputs":{"description":"Input properties used for looking up and filtering SlsGroup resources.\n","properties":{"slsGroupConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cms/SlsGroupSlsGroupConfig:SlsGroupSlsGroupConfig"},"description":"The Config of the Sls Group. You can specify up to 25 Config. See \u003cspan pulumi-lang-nodejs=\"`slsGroupConfig`\" pulumi-lang-dotnet=\"`SlsGroupConfig`\" pulumi-lang-go=\"`slsGroupConfig`\" pulumi-lang-python=\"`sls_group_config`\" pulumi-lang-yaml=\"`slsGroupConfig`\" pulumi-lang-java=\"`slsGroupConfig`\"\u003e`sls_group_config`\u003c/span\u003e below.\n"},"slsGroupDescription":{"type":"string","description":"The Description of the Sls Group.\n"},"slsGroupName":{"type":"string","description":"The name of the resource. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e characters in length, and can contain letters, digits and underscores (_). It must start with a letter.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:compute/nestServiceInstance:NestServiceInstance":{"description":"Provides a Compute Nest Service Instance resource.\n\nFor information about Compute Nest Service Instance and how to use it, see [What is Service Instance](https://www.alibabacloud.com/help/zh/compute-nest/developer-reference/api-computenest-2021-06-01-createserviceinstance).\n\n\u003e **NOTE:** Available since v1.205.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultGetZones = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = defaultGetZones.then(defaultGetZones =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: defaultGetZones.zones?.[0]?.id,\n    instanceTypeFamily: \"ecs.sn1ne\",\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_[0-9]+_[0-9]+_x64*\",\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.0.0.0/8\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.1.0.0/16\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup].map(__item =\u003e __item.id),\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 10,\n    availabilityZone: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n    instanceChargeType: \"PostPaid\",\n    systemDiskCategory: \"cloud_efficiency\",\n    vswitchId: defaultSwitch.id,\n});\nconst defaultNestServiceInstance = new alicloud.compute.NestServiceInstance(\"default\", {\n    serviceId: \"service-dd475e6e468348799f0f\",\n    serviceVersion: \"1\",\n    serviceInstanceName: name,\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n    paymentType: \"Permanent\",\n    operationMetadata: {\n        operationStartTime: \"1681281179000\",\n        operationEndTime: \"1681367579000\",\n        resources: pulumi.interpolate`    {\n      \\\"Type\\\": \\\"ResourceIds\\\",\n      \\\"RegionId\\\": \\\"cn-hangzhou\\\",\n      \\\"ResourceIds\\\": {\n      \\\"ALIYUN::ECS::INSTANCE\\\": [\n        \\\"${defaultInstance.id}\\\"\n        ]\n      } \n    }\n`,\n    },\n    tags: {\n        Created: \"TF\",\n        For: \"ServiceInstance\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_get_zones = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default_get_zones.zones[0].id,\n    instance_type_family=\"ecs.sn1ne\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_[0-9]+_[0-9]+_x64*\",\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.0.0.0/8\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.1.0.0/16\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[__item.id for __item in [default_security_group]],\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=10,\n    availability_zone=default_get_zones.zones[0].id,\n    instance_charge_type=\"PostPaid\",\n    system_disk_category=\"cloud_efficiency\",\n    vswitch_id=default_switch.id)\ndefault_nest_service_instance = alicloud.compute.NestServiceInstance(\"default\",\n    service_id=\"service-dd475e6e468348799f0f\",\n    service_version=\"1\",\n    service_instance_name=name,\n    resource_group_id=default.groups[0].id,\n    payment_type=\"Permanent\",\n    operation_metadata={\n        \"operation_start_time\": \"1681281179000\",\n        \"operation_end_time\": \"1681367579000\",\n        \"resources\": default_instance.id.apply(lambda id: f\"\"\"    {{\n      \\\"Type\\\": \\\"ResourceIds\\\",\n      \\\"RegionId\\\": \\\"cn-hangzhou\\\",\n      \\\"ResourceIds\\\": {{\n      \\\"ALIYUN::ECS::INSTANCE\\\": [\n        \\\"{id}\\\"\n        ]\n      }} \n    }}\n\"\"\"),\n    },\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"ServiceInstance\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_[0-9]+_[0-9]+_x64*\",\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.1.0.0/16\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup,\n        }.Select(__item =\u003e __item.Id).ToList(),\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 10,\n        AvailabilityZone = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskCategory = \"cloud_efficiency\",\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var defaultNestServiceInstance = new AliCloud.Compute.NestServiceInstance(\"default\", new()\n    {\n        ServiceId = \"service-dd475e6e468348799f0f\",\n        ServiceVersion = \"1\",\n        ServiceInstanceName = name,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n        PaymentType = \"Permanent\",\n        OperationMetadata = new AliCloud.Compute.Inputs.NestServiceInstanceOperationMetadataArgs\n        {\n            OperationStartTime = \"1681281179000\",\n            OperationEndTime = \"1681367579000\",\n            Resources = defaultInstance.Id.Apply(id =\u003e @$\"    {{\n      \\\"\"Type\\\"\": \\\"\"ResourceIds\\\"\",\n      \\\"\"RegionId\\\"\": \\\"\"cn-hangzhou\\\"\",\n      \\\"\"ResourceIds\\\"\": {{\n      \\\"\"ALIYUN::ECS::INSTANCE\\\"\": [\n        \\\"\"{id}\\\"\"\n        ]\n      }} \n    }}\n\"),\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"ServiceInstance\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/compute\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"tfexample\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableDiskCategory: pulumi.StringRef(\"cloud_efficiency\"),\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(defaultGetZones.Zones[0].Id),\nInstanceTypeFamily: pulumi.StringRef(\"ecs.sn1ne\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nNameRegex: pulumi.StringRef(\"^ubuntu_[0-9]+_[0-9]+_x64*\"),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.String(name),\nCidrBlock: pulumi.String(\"10.1.0.0/16\"),\nVpcId: defaultNetwork.ID(),\nZoneId: pulumi.String(defaultGetZones.Zones[0].Id),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nVpcId: defaultNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\ndefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\nImageId: pulumi.String(defaultGetImages.Images[0].Id),\nInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\nSecurityGroups: splat0,\nInternetChargeType: pulumi.String(\"PayByTraffic\"),\nInternetMaxBandwidthOut: pulumi.Int(10),\nAvailabilityZone: pulumi.String(defaultGetZones.Zones[0].Id),\nInstanceChargeType: pulumi.String(\"PostPaid\"),\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nVswitchId: defaultSwitch.ID(),\n})\nif err != nil {\nreturn err\n}\n_, err = compute.NewNestServiceInstance(ctx, \"default\", \u0026compute.NestServiceInstanceArgs{\nServiceId: pulumi.String(\"service-dd475e6e468348799f0f\"),\nServiceVersion: pulumi.String(\"1\"),\nServiceInstanceName: pulumi.String(name),\nResourceGroupId: pulumi.String(_default.Groups[0].Id),\nPaymentType: pulumi.String(\"Permanent\"),\nOperationMetadata: \u0026compute.NestServiceInstanceOperationMetadataArgs{\nOperationStartTime: pulumi.String(\"1681281179000\"),\nOperationEndTime: pulumi.String(\"1681367579000\"),\nResources: defaultInstance.ID().ApplyT(func(id string) (string, error) {\nreturn fmt.Sprintf(`    {\n      \\\"Type\\\": \\\"ResourceIds\\\",\n      \\\"RegionId\\\": \\\"cn-hangzhou\\\",\n      \\\"ResourceIds\\\": {\n      \\\"ALIYUN::ECS::INSTANCE\\\": [\n        \\\"%v\\\"\n        ]\n      } \n    }\n`, id), nil\n}).(pulumi.StringOutput),\n},\nTags: pulumi.StringMap{\n\"Created\": pulumi.String(\"TF\"),\n\"For\": pulumi.String(\"ServiceInstance\"),\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.compute.NestServiceInstance;\nimport com.pulumi.alicloud.compute.NestServiceInstanceArgs;\nimport com.pulumi.alicloud.compute.inputs.NestServiceInstanceOperationMetadataArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(defaultGetZones.zones()[0].id())\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_[0-9]+_[0-9]+_x64*\")\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.1.0.0/16\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.stream().map(element -\u003e element.id()).collect(toList()))\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(10)\n            .availabilityZone(defaultGetZones.zones()[0].id())\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var defaultNestServiceInstance = new NestServiceInstance(\"defaultNestServiceInstance\", NestServiceInstanceArgs.builder()\n            .serviceId(\"service-dd475e6e468348799f0f\")\n            .serviceVersion(\"1\")\n            .serviceInstanceName(name)\n            .resourceGroupId(default_.groups()[0].id())\n            .paymentType(\"Permanent\")\n            .operationMetadata(NestServiceInstanceOperationMetadataArgs.builder()\n                .operationStartTime(\"1681281179000\")\n                .operationEndTime(\"1681367579000\")\n                .resources(defaultInstance.id().applyValue(_id -\u003e \"\"\"\n    {\n      \\\"Type\\\": \\\"ResourceIds\\\",\n      \\\"RegionId\\\": \\\"cn-hangzhou\\\",\n      \\\"ResourceIds\\\": {\n      \\\"ALIYUN::ECS::INSTANCE\\\": [\n        \\\"%s\\\"\n        ]\n      } \n    }\n\", _id)))\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"ServiceInstance\")\n            ))\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCompute Nest Service Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:compute/nestServiceInstance:NestServiceInstance example \u003cid\u003e\n```\n\n","properties":{"commodity":{"$ref":"#/types/alicloud:compute/NestServiceInstanceCommodity:NestServiceInstanceCommodity","description":"The order information of cloud market. See \u003cspan pulumi-lang-nodejs=\"`commodity`\" pulumi-lang-dotnet=\"`Commodity`\" pulumi-lang-go=\"`commodity`\" pulumi-lang-python=\"`commodity`\" pulumi-lang-yaml=\"`commodity`\" pulumi-lang-java=\"`commodity`\"\u003e`commodity`\u003c/span\u003e below.\n"},"enableInstanceOps":{"type":"boolean","description":"Whether the service instance has the O\u0026M function. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"enableUserPrometheus":{"type":"boolean","description":"Whether Prometheus monitoring is enabled. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"operationMetadata":{"$ref":"#/types/alicloud:compute/NestServiceInstanceOperationMetadata:NestServiceInstanceOperationMetadata","description":"The configuration of O\u0026M. See \u003cspan pulumi-lang-nodejs=\"`operationMetadata`\" pulumi-lang-dotnet=\"`OperationMetadata`\" pulumi-lang-go=\"`operationMetadata`\" pulumi-lang-python=\"`operation_metadata`\" pulumi-lang-yaml=\"`operationMetadata`\" pulumi-lang-java=\"`operationMetadata`\"\u003e`operation_metadata`\u003c/span\u003e below.\n"},"parameters":{"type":"string","description":"The parameters entered by the deployment service instance.\n"},"paymentType":{"type":"string","description":"The type of payment. Valid values: `Permanent`, `Subscription`, `PayAsYouGo`, `CustomFixTime`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"serviceId":{"type":"string","description":"The ID of the service.\n"},"serviceInstanceName":{"type":"string","description":"The name of the Service Instance.\n"},"serviceVersion":{"type":"string","description":"The version of the service.\n"},"specificationName":{"type":"string","description":"The name of the specification.\n"},"status":{"type":"string","description":"The status of the Service Instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"templateName":{"type":"string","description":"The name of the template.\n"}},"required":["enableInstanceOps","enableUserPrometheus","operationMetadata","paymentType","resourceGroupId","serviceId","serviceInstanceName","serviceVersion","status","templateName"],"inputProperties":{"commodity":{"$ref":"#/types/alicloud:compute/NestServiceInstanceCommodity:NestServiceInstanceCommodity","description":"The order information of cloud market. See \u003cspan pulumi-lang-nodejs=\"`commodity`\" pulumi-lang-dotnet=\"`Commodity`\" pulumi-lang-go=\"`commodity`\" pulumi-lang-python=\"`commodity`\" pulumi-lang-yaml=\"`commodity`\" pulumi-lang-java=\"`commodity`\"\u003e`commodity`\u003c/span\u003e below.\n"},"enableInstanceOps":{"type":"boolean","description":"Whether the service instance has the O\u0026M function. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"enableUserPrometheus":{"type":"boolean","description":"Whether Prometheus monitoring is enabled. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"operationMetadata":{"$ref":"#/types/alicloud:compute/NestServiceInstanceOperationMetadata:NestServiceInstanceOperationMetadata","description":"The configuration of O\u0026M. See \u003cspan pulumi-lang-nodejs=\"`operationMetadata`\" pulumi-lang-dotnet=\"`OperationMetadata`\" pulumi-lang-go=\"`operationMetadata`\" pulumi-lang-python=\"`operation_metadata`\" pulumi-lang-yaml=\"`operationMetadata`\" pulumi-lang-java=\"`operationMetadata`\"\u003e`operation_metadata`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"parameters":{"type":"string","description":"The parameters entered by the deployment service instance.\n"},"paymentType":{"type":"string","description":"The type of payment. Valid values: `Permanent`, `Subscription`, `PayAsYouGo`, `CustomFixTime`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"serviceId":{"type":"string","description":"The ID of the service.\n","willReplaceOnChanges":true},"serviceInstanceName":{"type":"string","description":"The name of the Service Instance.\n","willReplaceOnChanges":true},"serviceVersion":{"type":"string","description":"The version of the service.\n","willReplaceOnChanges":true},"specificationName":{"type":"string","description":"The name of the specification.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"templateName":{"type":"string","description":"The name of the template.\n","willReplaceOnChanges":true}},"requiredInputs":["serviceId","serviceVersion"],"stateInputs":{"description":"Input properties used for looking up and filtering NestServiceInstance resources.\n","properties":{"commodity":{"$ref":"#/types/alicloud:compute/NestServiceInstanceCommodity:NestServiceInstanceCommodity","description":"The order information of cloud market. See \u003cspan pulumi-lang-nodejs=\"`commodity`\" pulumi-lang-dotnet=\"`Commodity`\" pulumi-lang-go=\"`commodity`\" pulumi-lang-python=\"`commodity`\" pulumi-lang-yaml=\"`commodity`\" pulumi-lang-java=\"`commodity`\"\u003e`commodity`\u003c/span\u003e below.\n"},"enableInstanceOps":{"type":"boolean","description":"Whether the service instance has the O\u0026M function. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"enableUserPrometheus":{"type":"boolean","description":"Whether Prometheus monitoring is enabled. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"operationMetadata":{"$ref":"#/types/alicloud:compute/NestServiceInstanceOperationMetadata:NestServiceInstanceOperationMetadata","description":"The configuration of O\u0026M. See \u003cspan pulumi-lang-nodejs=\"`operationMetadata`\" pulumi-lang-dotnet=\"`OperationMetadata`\" pulumi-lang-go=\"`operationMetadata`\" pulumi-lang-python=\"`operation_metadata`\" pulumi-lang-yaml=\"`operationMetadata`\" pulumi-lang-java=\"`operationMetadata`\"\u003e`operation_metadata`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"parameters":{"type":"string","description":"The parameters entered by the deployment service instance.\n"},"paymentType":{"type":"string","description":"The type of payment. Valid values: `Permanent`, `Subscription`, `PayAsYouGo`, `CustomFixTime`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"serviceId":{"type":"string","description":"The ID of the service.\n","willReplaceOnChanges":true},"serviceInstanceName":{"type":"string","description":"The name of the Service Instance.\n","willReplaceOnChanges":true},"serviceVersion":{"type":"string","description":"The version of the service.\n","willReplaceOnChanges":true},"specificationName":{"type":"string","description":"The name of the specification.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Service Instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"templateName":{"type":"string","description":"The name of the template.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:config/reportTemplate:ReportTemplate":{"description":"Provides a Cloud Config (Config) Report Template resource.\n\nConfig Compliance Report Template.\n\nFor information about Cloud Config (Config) Report Template and how to use it, see [What is Report Template](https://next.api.alibabacloud.com/document/Config/2020-09-07/CreateReportTemplate).\n\n\u003e **NOTE:** Available since v1.266.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cfg.ReportTemplate(\"default\", {\n    reportGranularity: \"AllInOne\",\n    reportScopes: [{\n        key: \"RuleId\",\n        value: \"cr-xxx\",\n        matchType: \"In\",\n    }],\n    reportFileFormats: \"excel\",\n    reportTemplateName: \"example-name\",\n    reportTemplateDescription: \"example-desc\",\n    subscriptionFrequency: \" \",\n    reportLanguage: \"en-US\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cfg.ReportTemplate(\"default\",\n    report_granularity=\"AllInOne\",\n    report_scopes=[{\n        \"key\": \"RuleId\",\n        \"value\": \"cr-xxx\",\n        \"match_type\": \"In\",\n    }],\n    report_file_formats=\"excel\",\n    report_template_name=\"example-name\",\n    report_template_description=\"example-desc\",\n    subscription_frequency=\" \",\n    report_language=\"en-US\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Cfg.ReportTemplate(\"default\", new()\n    {\n        ReportGranularity = \"AllInOne\",\n        ReportScopes = new[]\n        {\n            new AliCloud.Cfg.Inputs.ReportTemplateReportScopeArgs\n            {\n                Key = \"RuleId\",\n                Value = \"cr-xxx\",\n                MatchType = \"In\",\n            },\n        },\n        ReportFileFormats = \"excel\",\n        ReportTemplateName = \"example-name\",\n        ReportTemplateDescription = \"example-desc\",\n        SubscriptionFrequency = \" \",\n        ReportLanguage = \"en-US\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cfg.NewReportTemplate(ctx, \"default\", \u0026cfg.ReportTemplateArgs{\n\t\t\tReportGranularity: pulumi.String(\"AllInOne\"),\n\t\t\tReportScopes: cfg.ReportTemplateReportScopeArray{\n\t\t\t\t\u0026cfg.ReportTemplateReportScopeArgs{\n\t\t\t\t\tKey:       pulumi.String(\"RuleId\"),\n\t\t\t\t\tValue:     pulumi.String(\"cr-xxx\"),\n\t\t\t\t\tMatchType: pulumi.String(\"In\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tReportFileFormats:         pulumi.String(\"excel\"),\n\t\t\tReportTemplateName:        pulumi.String(\"example-name\"),\n\t\t\tReportTemplateDescription: pulumi.String(\"example-desc\"),\n\t\t\tSubscriptionFrequency:     pulumi.String(\" \"),\n\t\t\tReportLanguage:            pulumi.String(\"en-US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cfg.ReportTemplate;\nimport com.pulumi.alicloud.cfg.ReportTemplateArgs;\nimport com.pulumi.alicloud.cfg.inputs.ReportTemplateReportScopeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ReportTemplate(\"default\", ReportTemplateArgs.builder()\n            .reportGranularity(\"AllInOne\")\n            .reportScopes(ReportTemplateReportScopeArgs.builder()\n                .key(\"RuleId\")\n                .value(\"cr-xxx\")\n                .matchType(\"In\")\n                .build())\n            .reportFileFormats(\"excel\")\n            .reportTemplateName(\"example-name\")\n            .reportTemplateDescription(\"example-desc\")\n            .subscriptionFrequency(\" \")\n            .reportLanguage(\"en-US\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cfg:ReportTemplate\n    properties:\n      reportGranularity: AllInOne\n      reportScopes:\n        - key: RuleId\n          value: cr-xxx\n          matchType: In\n      reportFileFormats: excel\n      reportTemplateName: example-name\n      reportTemplateDescription: example-desc\n      subscriptionFrequency: ' '\n      reportLanguage: en-US\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Config (Config) Report Template can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:config/reportTemplate:ReportTemplate example \u003cid\u003e\n```\n\n","properties":{"reportFileFormats":{"type":"string","description":"Report Format\n"},"reportGranularity":{"type":"string","description":"Report Aggregation Granularity\n"},"reportLanguage":{"type":"string","description":"This property does not have a description in the spec, please add it before generating code.\n"},"reportScopes":{"type":"array","items":{"$ref":"#/types/alicloud:config/ReportTemplateReportScope:ReportTemplateReportScope"},"description":"Report range, yes and logic between multiple sets of k-v pairs. See \u003cspan pulumi-lang-nodejs=\"`reportScope`\" pulumi-lang-dotnet=\"`ReportScope`\" pulumi-lang-go=\"`reportScope`\" pulumi-lang-python=\"`report_scope`\" pulumi-lang-yaml=\"`reportScope`\" pulumi-lang-java=\"`reportScope`\"\u003e`report_scope`\u003c/span\u003e below.\n"},"reportTemplateDescription":{"type":"string","description":"Report Template Description\n"},"reportTemplateName":{"type":"string","description":"Report Template Name\n"},"subscriptionFrequency":{"type":"string","description":"Report subscription frequency. If this field is not empty, it is a Cron expression in Quartz format triggered by the subscription notification.\n\nThe format is: Seconds, time, day, month, week. The following are examples of commonly used Cron expressions:\n- Execute at 0 o'clock every day: 0 0 0 * *?\n- Every Monday at 15: 30: 0 30 15? * MON\n- Execute at 2 o'clock on the 1st of each month: 0 0 2 1 *?\n\nAmong them:\n-\"*\" Indicates any value\n- What-? Used for day and week fields, indicating that no specific value is specified\n- MON means Monday\n\n\u003e **NOTE:**  The trigger time is UTC +8, and the settings of the cron expression can be converted according to the time zone.\n\n\u003e **NOTE:**  It can only be triggered according to the cron expression time as much as possible. The cron expression limits the same template to trigger at most one notification per day.\n"}},"required":["reportTemplateName"],"inputProperties":{"reportFileFormats":{"type":"string","description":"Report Format\n"},"reportGranularity":{"type":"string","description":"Report Aggregation Granularity\n"},"reportLanguage":{"type":"string","description":"This property does not have a description in the spec, please add it before generating code.\n"},"reportScopes":{"type":"array","items":{"$ref":"#/types/alicloud:config/ReportTemplateReportScope:ReportTemplateReportScope"},"description":"Report range, yes and logic between multiple sets of k-v pairs. See \u003cspan pulumi-lang-nodejs=\"`reportScope`\" pulumi-lang-dotnet=\"`ReportScope`\" pulumi-lang-go=\"`reportScope`\" pulumi-lang-python=\"`report_scope`\" pulumi-lang-yaml=\"`reportScope`\" pulumi-lang-java=\"`reportScope`\"\u003e`report_scope`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"reportTemplateDescription":{"type":"string","description":"Report Template Description\n"},"reportTemplateName":{"type":"string","description":"Report Template Name\n"},"subscriptionFrequency":{"type":"string","description":"Report subscription frequency. If this field is not empty, it is a Cron expression in Quartz format triggered by the subscription notification.\n\nThe format is: Seconds, time, day, month, week. The following are examples of commonly used Cron expressions:\n- Execute at 0 o'clock every day: 0 0 0 * *?\n- Every Monday at 15: 30: 0 30 15? * MON\n- Execute at 2 o'clock on the 1st of each month: 0 0 2 1 *?\n\nAmong them:\n-\"*\" Indicates any value\n- What-? Used for day and week fields, indicating that no specific value is specified\n- MON means Monday\n\n\u003e **NOTE:**  The trigger time is UTC +8, and the settings of the cron expression can be converted according to the time zone.\n\n\u003e **NOTE:**  It can only be triggered according to the cron expression time as much as possible. The cron expression limits the same template to trigger at most one notification per day.\n"}},"requiredInputs":["reportTemplateName"],"stateInputs":{"description":"Input properties used for looking up and filtering ReportTemplate resources.\n","properties":{"reportFileFormats":{"type":"string","description":"Report Format\n"},"reportGranularity":{"type":"string","description":"Report Aggregation Granularity\n"},"reportLanguage":{"type":"string","description":"This property does not have a description in the spec, please add it before generating code.\n"},"reportScopes":{"type":"array","items":{"$ref":"#/types/alicloud:config/ReportTemplateReportScope:ReportTemplateReportScope"},"description":"Report range, yes and logic between multiple sets of k-v pairs. See \u003cspan pulumi-lang-nodejs=\"`reportScope`\" pulumi-lang-dotnet=\"`ReportScope`\" pulumi-lang-go=\"`reportScope`\" pulumi-lang-python=\"`report_scope`\" pulumi-lang-yaml=\"`reportScope`\" pulumi-lang-java=\"`reportScope`\"\u003e`report_scope`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"reportTemplateDescription":{"type":"string","description":"Report Template Description\n"},"reportTemplateName":{"type":"string","description":"Report Template Name\n"},"subscriptionFrequency":{"type":"string","description":"Report subscription frequency. If this field is not empty, it is a Cron expression in Quartz format triggered by the subscription notification.\n\nThe format is: Seconds, time, day, month, week. The following are examples of commonly used Cron expressions:\n- Execute at 0 o'clock every day: 0 0 0 * *?\n- Every Monday at 15: 30: 0 30 15? * MON\n- Execute at 2 o'clock on the 1st of each month: 0 0 2 1 *?\n\nAmong them:\n-\"*\" Indicates any value\n- What-? Used for day and week fields, indicating that no specific value is specified\n- MON means Monday\n\n\u003e **NOTE:**  The trigger time is UTC +8, and the settings of the cron expression can be converted according to the time zone.\n\n\u003e **NOTE:**  It can only be triggered according to the cron expression time as much as possible. The cron expression limits the same template to trigger at most one notification per day.\n"}},"type":"object"},"deprecationMessage":"alicloud.config/reporttemplate.ReportTemplate has been deprecated in favor of alicloud.cfg/reporttemplate.ReportTemplate"},"alicloud:configaggregate/remediation:Remediation":{"description":"Provides a Cloud Config (Config) Aggregate Remediation resource.\n\nRule remediation in multi-account scenarios.\n\nFor information about Cloud Config (Config) Aggregate Remediation and how to use it, see [What is Aggregate Remediation](https://next.api.alibabacloud.com/document/Config/2020-09-07/CreateAggregateRemediation).\n\n\u003e **NOTE:** Available since v1.267.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst create_agg = new alicloud.cfg.Aggregator(\"create-agg\", {\n    aggregatorName: \"rd\",\n    description: \"rd\",\n    aggregatorType: \"RD\",\n});\nconst create_rule = new alicloud.cfg.AggregateConfigRule(\"create-rule\", {\n    sourceOwner: \"ALIYUN\",\n    sourceIdentifier: \"required-tags\",\n    aggregateConfigRuleName: \"agg-rule-name\",\n    configRuleTriggerTypes: \"ConfigurationItemChangeNotification\",\n    riskLevel: 1,\n    resourceTypesScopes: [\"ACS::OSS::Bucket\"],\n    aggregatorId: create_agg.id,\n    inputParameters: {\n        tag1Key: \"aaa\",\n        tag1Value: \"bbb\",\n    },\n});\nconst _default = new alicloud.cfg.AggregateRemediation(\"default\", {\n    configRuleId: create_rule.configRuleId,\n    remediationTemplateId: \"ACS-TAG-TagResources\",\n    remediationSourceType: \"ALIYUN\",\n    invokeType: \"MANUAL_EXECUTION\",\n    remediationType: \"OOS\",\n    aggregatorId: create_agg.id,\n    remediationOriginParams: JSON.stringify({\n        properties: [\n            {\n                name: \"regionId\",\n                type: \"String\",\n                value: \"{regionId}\",\n                allowedValues: [],\n                description: \"region ID\",\n            },\n            {\n                name: \"tags\",\n                type: \"Json\",\n                value: \"{\\\"aaa\\\":\\\"bbb\\\"}\",\n                allowedValues: [],\n                description: \"resource tags (for example,{\\\"k1\\\":\\\"v1\\\",\\\"k2\\\":\\\"v2\\\"}).\",\n            },\n            {\n                name: \"resourceType\",\n                type: \"String\",\n                value: \"{resourceType}\",\n                allowedValues: [],\n                description: \"resource type\",\n            },\n            {\n                name: \"resourceIds\",\n                type: \"ARRAY\",\n                value: \"[{\\\"resources\\\":[]}]\",\n                allowedValues: [],\n                description: \"Resource ID List\",\n            },\n        ],\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncreate_agg = alicloud.cfg.Aggregator(\"create-agg\",\n    aggregator_name=\"rd\",\n    description=\"rd\",\n    aggregator_type=\"RD\")\ncreate_rule = alicloud.cfg.AggregateConfigRule(\"create-rule\",\n    source_owner=\"ALIYUN\",\n    source_identifier=\"required-tags\",\n    aggregate_config_rule_name=\"agg-rule-name\",\n    config_rule_trigger_types=\"ConfigurationItemChangeNotification\",\n    risk_level=1,\n    resource_types_scopes=[\"ACS::OSS::Bucket\"],\n    aggregator_id=create_agg.id,\n    input_parameters={\n        \"tag1Key\": \"aaa\",\n        \"tag1Value\": \"bbb\",\n    })\ndefault = alicloud.cfg.AggregateRemediation(\"default\",\n    config_rule_id=create_rule.config_rule_id,\n    remediation_template_id=\"ACS-TAG-TagResources\",\n    remediation_source_type=\"ALIYUN\",\n    invoke_type=\"MANUAL_EXECUTION\",\n    remediation_type=\"OOS\",\n    aggregator_id=create_agg.id,\n    remediation_origin_params=json.dumps({\n        \"properties\": [\n            {\n                \"name\": \"regionId\",\n                \"type\": \"String\",\n                \"value\": \"{regionId}\",\n                \"allowedValues\": [],\n                \"description\": \"region ID\",\n            },\n            {\n                \"name\": \"tags\",\n                \"type\": \"Json\",\n                \"value\": \"{\\\"aaa\\\":\\\"bbb\\\"}\",\n                \"allowedValues\": [],\n                \"description\": \"resource tags (for example,{\\\"k1\\\":\\\"v1\\\",\\\"k2\\\":\\\"v2\\\"}).\",\n            },\n            {\n                \"name\": \"resourceType\",\n                \"type\": \"String\",\n                \"value\": \"{resourceType}\",\n                \"allowedValues\": [],\n                \"description\": \"resource type\",\n            },\n            {\n                \"name\": \"resourceIds\",\n                \"type\": \"ARRAY\",\n                \"value\": \"[{\\\"resources\\\":[]}]\",\n                \"allowedValues\": [],\n                \"description\": \"Resource ID List\",\n            },\n        ],\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var create_agg = new AliCloud.Cfg.Aggregator(\"create-agg\", new()\n    {\n        AggregatorName = \"rd\",\n        Description = \"rd\",\n        AggregatorType = \"RD\",\n    });\n\n    var create_rule = new AliCloud.Cfg.AggregateConfigRule(\"create-rule\", new()\n    {\n        SourceOwner = \"ALIYUN\",\n        SourceIdentifier = \"required-tags\",\n        AggregateConfigRuleName = \"agg-rule-name\",\n        ConfigRuleTriggerTypes = \"ConfigurationItemChangeNotification\",\n        RiskLevel = 1,\n        ResourceTypesScopes = new[]\n        {\n            \"ACS::OSS::Bucket\",\n        },\n        AggregatorId = create_agg.Id,\n        InputParameters = \n        {\n            { \"tag1Key\", \"aaa\" },\n            { \"tag1Value\", \"bbb\" },\n        },\n    });\n\n    var @default = new AliCloud.Cfg.AggregateRemediation(\"default\", new()\n    {\n        ConfigRuleId = create_rule.ConfigRuleId,\n        RemediationTemplateId = \"ACS-TAG-TagResources\",\n        RemediationSourceType = \"ALIYUN\",\n        InvokeType = \"MANUAL_EXECUTION\",\n        RemediationType = \"OOS\",\n        AggregatorId = create_agg.Id,\n        RemediationOriginParams = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"properties\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"name\"] = \"regionId\",\n                    [\"type\"] = \"String\",\n                    [\"value\"] = \"{regionId}\",\n                    [\"allowedValues\"] = new[]\n                    {\n                    },\n                    [\"description\"] = \"region ID\",\n                },\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"name\"] = \"tags\",\n                    [\"type\"] = \"Json\",\n                    [\"value\"] = \"{\\\"aaa\\\":\\\"bbb\\\"}\",\n                    [\"allowedValues\"] = new[]\n                    {\n                    },\n                    [\"description\"] = \"resource tags (for example,{\\\"k1\\\":\\\"v1\\\",\\\"k2\\\":\\\"v2\\\"}).\",\n                },\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"name\"] = \"resourceType\",\n                    [\"type\"] = \"String\",\n                    [\"value\"] = \"{resourceType}\",\n                    [\"allowedValues\"] = new[]\n                    {\n                    },\n                    [\"description\"] = \"resource type\",\n                },\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"name\"] = \"resourceIds\",\n                    [\"type\"] = \"ARRAY\",\n                    [\"value\"] = \"[{\\\"resources\\\":[]}]\",\n                    [\"allowedValues\"] = new[]\n                    {\n                    },\n                    [\"description\"] = \"Resource ID List\",\n                },\n            },\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcreate_agg, err := cfg.NewAggregator(ctx, \"create-agg\", \u0026cfg.AggregatorArgs{\n\t\t\tAggregatorName: pulumi.String(\"rd\"),\n\t\t\tDescription:    pulumi.String(\"rd\"),\n\t\t\tAggregatorType: pulumi.String(\"RD\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreate_rule, err := cfg.NewAggregateConfigRule(ctx, \"create-rule\", \u0026cfg.AggregateConfigRuleArgs{\n\t\t\tSourceOwner:             pulumi.String(\"ALIYUN\"),\n\t\t\tSourceIdentifier:        pulumi.String(\"required-tags\"),\n\t\t\tAggregateConfigRuleName: pulumi.String(\"agg-rule-name\"),\n\t\t\tConfigRuleTriggerTypes:  pulumi.String(\"ConfigurationItemChangeNotification\"),\n\t\t\tRiskLevel:               pulumi.Int(1),\n\t\t\tResourceTypesScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ACS::OSS::Bucket\"),\n\t\t\t},\n\t\t\tAggregatorId: create_agg.ID(),\n\t\t\tInputParameters: pulumi.StringMap{\n\t\t\t\t\"tag1Key\":   pulumi.String(\"aaa\"),\n\t\t\t\t\"tag1Value\": pulumi.String(\"bbb\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"properties\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":          \"regionId\",\n\t\t\t\t\t\"type\":          \"String\",\n\t\t\t\t\t\"value\":         \"{regionId}\",\n\t\t\t\t\t\"allowedValues\": []interface{}{},\n\t\t\t\t\t\"description\":   \"region ID\",\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":          \"tags\",\n\t\t\t\t\t\"type\":          \"Json\",\n\t\t\t\t\t\"value\":         \"{\\\"aaa\\\":\\\"bbb\\\"}\",\n\t\t\t\t\t\"allowedValues\": []interface{}{},\n\t\t\t\t\t\"description\":   \"resource tags (for example,{\\\"k1\\\":\\\"v1\\\",\\\"k2\\\":\\\"v2\\\"}).\",\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":          \"resourceType\",\n\t\t\t\t\t\"type\":          \"String\",\n\t\t\t\t\t\"value\":         \"{resourceType}\",\n\t\t\t\t\t\"allowedValues\": []interface{}{},\n\t\t\t\t\t\"description\":   \"resource type\",\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":          \"resourceIds\",\n\t\t\t\t\t\"type\":          \"ARRAY\",\n\t\t\t\t\t\"value\":         \"[{\\\"resources\\\":[]}]\",\n\t\t\t\t\t\"allowedValues\": []interface{}{},\n\t\t\t\t\t\"description\":   \"Resource ID List\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = cfg.NewAggregateRemediation(ctx, \"default\", \u0026cfg.AggregateRemediationArgs{\n\t\t\tConfigRuleId:            create_rule.ConfigRuleId,\n\t\t\tRemediationTemplateId:   pulumi.String(\"ACS-TAG-TagResources\"),\n\t\t\tRemediationSourceType:   pulumi.String(\"ALIYUN\"),\n\t\t\tInvokeType:              pulumi.String(\"MANUAL_EXECUTION\"),\n\t\t\tRemediationType:         pulumi.String(\"OOS\"),\n\t\t\tAggregatorId:            create_agg.ID(),\n\t\t\tRemediationOriginParams: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cfg.Aggregator;\nimport com.pulumi.alicloud.cfg.AggregatorArgs;\nimport com.pulumi.alicloud.cfg.AggregateConfigRule;\nimport com.pulumi.alicloud.cfg.AggregateConfigRuleArgs;\nimport com.pulumi.alicloud.cfg.AggregateRemediation;\nimport com.pulumi.alicloud.cfg.AggregateRemediationArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var create_agg = new Aggregator(\"create-agg\", AggregatorArgs.builder()\n            .aggregatorName(\"rd\")\n            .description(\"rd\")\n            .aggregatorType(\"RD\")\n            .build());\n\n        var create_rule = new AggregateConfigRule(\"create-rule\", AggregateConfigRuleArgs.builder()\n            .sourceOwner(\"ALIYUN\")\n            .sourceIdentifier(\"required-tags\")\n            .aggregateConfigRuleName(\"agg-rule-name\")\n            .configRuleTriggerTypes(\"ConfigurationItemChangeNotification\")\n            .riskLevel(1)\n            .resourceTypesScopes(\"ACS::OSS::Bucket\")\n            .aggregatorId(create_agg.id())\n            .inputParameters(Map.ofEntries(\n                Map.entry(\"tag1Key\", \"aaa\"),\n                Map.entry(\"tag1Value\", \"bbb\")\n            ))\n            .build());\n\n        var default_ = new AggregateRemediation(\"default\", AggregateRemediationArgs.builder()\n            .configRuleId(create_rule.configRuleId())\n            .remediationTemplateId(\"ACS-TAG-TagResources\")\n            .remediationSourceType(\"ALIYUN\")\n            .invokeType(\"MANUAL_EXECUTION\")\n            .remediationType(\"OOS\")\n            .aggregatorId(create_agg.id())\n            .remediationOriginParams(serializeJson(\n                jsonObject(\n                    jsonProperty(\"properties\", jsonArray(\n                        jsonObject(\n                            jsonProperty(\"name\", \"regionId\"),\n                            jsonProperty(\"type\", \"String\"),\n                            jsonProperty(\"value\", \"{regionId}\"),\n                            jsonProperty(\"allowedValues\", jsonArray(\n                            )),\n                            jsonProperty(\"description\", \"region ID\")\n                        ), \n                        jsonObject(\n                            jsonProperty(\"name\", \"tags\"),\n                            jsonProperty(\"type\", \"Json\"),\n                            jsonProperty(\"value\", \"{\\\"aaa\\\":\\\"bbb\\\"}\"),\n                            jsonProperty(\"allowedValues\", jsonArray(\n                            )),\n                            jsonProperty(\"description\", \"resource tags (for example,{\\\"k1\\\":\\\"v1\\\",\\\"k2\\\":\\\"v2\\\"}).\")\n                        ), \n                        jsonObject(\n                            jsonProperty(\"name\", \"resourceType\"),\n                            jsonProperty(\"type\", \"String\"),\n                            jsonProperty(\"value\", \"{resourceType}\"),\n                            jsonProperty(\"allowedValues\", jsonArray(\n                            )),\n                            jsonProperty(\"description\", \"resource type\")\n                        ), \n                        jsonObject(\n                            jsonProperty(\"name\", \"resourceIds\"),\n                            jsonProperty(\"type\", \"ARRAY\"),\n                            jsonProperty(\"value\", \"[{\\\"resources\\\":[]}]\"),\n                            jsonProperty(\"allowedValues\", jsonArray(\n                            )),\n                            jsonProperty(\"description\", \"Resource ID List\")\n                        )\n                    ))\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  create-agg:\n    type: alicloud:cfg:Aggregator\n    properties:\n      aggregatorName: rd\n      description: rd\n      aggregatorType: RD\n  create-rule:\n    type: alicloud:cfg:AggregateConfigRule\n    properties:\n      sourceOwner: ALIYUN\n      sourceIdentifier: required-tags\n      aggregateConfigRuleName: agg-rule-name\n      configRuleTriggerTypes: ConfigurationItemChangeNotification\n      riskLevel: '1'\n      resourceTypesScopes:\n        - ACS::OSS::Bucket\n      aggregatorId: ${[\"create-agg\"].id}\n      inputParameters:\n        tag1Key: aaa\n        tag1Value: bbb\n  default:\n    type: alicloud:cfg:AggregateRemediation\n    properties:\n      configRuleId: ${[\"create-rule\"].configRuleId}\n      remediationTemplateId: ACS-TAG-TagResources\n      remediationSourceType: ALIYUN\n      invokeType: MANUAL_EXECUTION\n      remediationType: OOS\n      aggregatorId: ${[\"create-agg\"].id}\n      remediationOriginParams:\n        fn::toJSON:\n          properties:\n            - name: regionId\n              type: String\n              value: '{regionId}'\n              allowedValues: []\n              description: region ID\n            - name: tags\n              type: Json\n              value: '{\"aaa\":\"bbb\"}'\n              allowedValues: []\n              description: resource tags (for example,{\"k1\":\"v1\",\"k2\":\"v2\"}).\n            - name: resourceType\n              type: String\n              value: '{resourceType}'\n              allowedValues: []\n              description: resource type\n            - name: resourceIds\n              type: ARRAY\n              value: '[{\"resources\":[]}]'\n              allowedValues: []\n              description: Resource ID List\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud Config (Config) Aggregate Remediation can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:configaggregate/remediation:Remediation example \u003caggregator_id\u003e:\u003cremediation_id\u003e\n```\n\n","properties":{"aggregatorId":{"type":"string","description":"The account Group ID.\nFor more information about how to obtain the account group ID, see ListAggregators.\n"},"configRuleId":{"type":"string","description":"The rule ID.\nFor more information about how to obtain the rule ID, see [ListAggregateConfigRules].\n"},"invokeType":{"type":"string","description":"Correction of execution mode. Value:\n- NON_EXECUTION: Not executed.\n- AUTO_EXECUTION: Automatically executed.\n- MANUAL_EXECUTION: Execute manually.\n- NOT_CONFIG: Not set.\n"},"remediationId":{"type":"string","description":"Multi-account remediation ID\n"},"remediationOriginParams":{"type":"string","description":"Correct the parameters of the settings.\nFor more information about how to obtain the parameters of remediation settings, see the parameter 'Template definition' in ListRemediationTemplates '.\n"},"remediationSourceType":{"type":"string","description":"The source of the template to perform the correction. Value:\n- ALIYUN (default): Official website template.\n- CUSTOM: CUSTOM template.\n- NONE: NONE.\n"},"remediationTemplateId":{"type":"string","description":"The ID of the correction template.\n"},"remediationType":{"type":"string","description":"Remediation type. Value:\n- OOS: Operation and maintenance orchestration (Template correction).\n- FC: Function Compute (custom correction).\n"}},"required":["aggregatorId","configRuleId","invokeType","remediationId","remediationOriginParams","remediationTemplateId","remediationType"],"inputProperties":{"aggregatorId":{"type":"string","description":"The account Group ID.\nFor more information about how to obtain the account group ID, see ListAggregators.\n","willReplaceOnChanges":true},"configRuleId":{"type":"string","description":"The rule ID.\nFor more information about how to obtain the rule ID, see [ListAggregateConfigRules].\n","willReplaceOnChanges":true},"invokeType":{"type":"string","description":"Correction of execution mode. Value:\n- NON_EXECUTION: Not executed.\n- AUTO_EXECUTION: Automatically executed.\n- MANUAL_EXECUTION: Execute manually.\n- NOT_CONFIG: Not set.\n"},"remediationOriginParams":{"type":"string","description":"Correct the parameters of the settings.\nFor more information about how to obtain the parameters of remediation settings, see the parameter 'Template definition' in ListRemediationTemplates '.\n"},"remediationSourceType":{"type":"string","description":"The source of the template to perform the correction. Value:\n- ALIYUN (default): Official website template.\n- CUSTOM: CUSTOM template.\n- NONE: NONE.\n","willReplaceOnChanges":true},"remediationTemplateId":{"type":"string","description":"The ID of the correction template.\n"},"remediationType":{"type":"string","description":"Remediation type. Value:\n- OOS: Operation and maintenance orchestration (Template correction).\n- FC: Function Compute (custom correction).\n","willReplaceOnChanges":true}},"requiredInputs":["aggregatorId","configRuleId","invokeType","remediationOriginParams","remediationTemplateId","remediationType"],"stateInputs":{"description":"Input properties used for looking up and filtering Remediation resources.\n","properties":{"aggregatorId":{"type":"string","description":"The account Group ID.\nFor more information about how to obtain the account group ID, see ListAggregators.\n","willReplaceOnChanges":true},"configRuleId":{"type":"string","description":"The rule ID.\nFor more information about how to obtain the rule ID, see [ListAggregateConfigRules].\n","willReplaceOnChanges":true},"invokeType":{"type":"string","description":"Correction of execution mode. Value:\n- NON_EXECUTION: Not executed.\n- AUTO_EXECUTION: Automatically executed.\n- MANUAL_EXECUTION: Execute manually.\n- NOT_CONFIG: Not set.\n"},"remediationId":{"type":"string","description":"Multi-account remediation ID\n"},"remediationOriginParams":{"type":"string","description":"Correct the parameters of the settings.\nFor more information about how to obtain the parameters of remediation settings, see the parameter 'Template definition' in ListRemediationTemplates '.\n"},"remediationSourceType":{"type":"string","description":"The source of the template to perform the correction. Value:\n- ALIYUN (default): Official website template.\n- CUSTOM: CUSTOM template.\n- NONE: NONE.\n","willReplaceOnChanges":true},"remediationTemplateId":{"type":"string","description":"The ID of the correction template.\n"},"remediationType":{"type":"string","description":"Remediation type. Value:\n- OOS: Operation and maintenance orchestration (Template correction).\n- FC: Function Compute (custom correction).\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"alicloud.configaggregate/remediation.Remediation has been deprecated in favor of alicloud.cfg/aggregateremediation.AggregateRemediation"},"alicloud:cr/chain:Chain":{"description":"Provides a CR Chain resource.\n\nFor information about CR Chain and how to use it, see [What is Chain](https://www.alibabacloud.com/help/en/acr/developer-reference/api-cr-2018-12-01-createchain).\n\n\u003e **NOTE:** Available since v1.161.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 100000,\n    max: 999999,\n});\nconst defaultRegistryEnterpriseInstance = new alicloud.cr.RegistryEnterpriseInstance(\"default\", {\n    paymentType: \"Subscription\",\n    period: 1,\n    renewPeriod: 0,\n    renewalStatus: \"ManualRenewal\",\n    instanceType: \"Advanced\",\n    instanceName: `${name}-${_default.result}`,\n});\nconst defaultRegistryEnterpriseNamespace = new alicloud.cs.RegistryEnterpriseNamespace(\"default\", {\n    instanceId: defaultRegistryEnterpriseInstance.id,\n    name: `${name}-${_default.result}`,\n    autoCreate: false,\n    defaultVisibility: \"PUBLIC\",\n});\nconst defaultRegistryEnterpriseRepo = new alicloud.cs.RegistryEnterpriseRepo(\"default\", {\n    instanceId: defaultRegistryEnterpriseInstance.id,\n    namespace: defaultRegistryEnterpriseNamespace.name,\n    name: `${name}-${_default.result}`,\n    summary: \"this is summary of my new repo\",\n    repoType: \"PUBLIC\",\n    detail: \"this is a public repo\",\n});\nconst defaultChain = new alicloud.cr.Chain(\"default\", {\n    chainConfigs: [{\n        nodes: [\n            {\n                nodeConfigs: [{\n                    denyPolicies: [{}],\n                }],\n                enable: true,\n                nodeName: \"DOCKER_IMAGE_BUILD\",\n            },\n            {\n                nodeConfigs: [{\n                    denyPolicies: [{}],\n                }],\n                enable: true,\n                nodeName: \"DOCKER_IMAGE_PUSH\",\n            },\n            {\n                enable: true,\n                nodeName: \"VULNERABILITY_SCANNING\",\n                nodeConfigs: [{\n                    denyPolicies: [{\n                        issueLevel: \"MEDIUM\",\n                        issueCount: \"1\",\n                        action: \"BLOCK_DELETE_TAG\",\n                        logic: \"AND\",\n                    }],\n                }],\n            },\n            {\n                nodeConfigs: [{\n                    denyPolicies: [{}],\n                }],\n                enable: true,\n                nodeName: \"ACTIVATE_REPLICATION\",\n            },\n            {\n                nodeConfigs: [{\n                    denyPolicies: [{}],\n                }],\n                enable: true,\n                nodeName: \"TRIGGER\",\n            },\n            {\n                nodeConfigs: [{\n                    denyPolicies: [{}],\n                }],\n                enable: false,\n                nodeName: \"SNAPSHOT\",\n            },\n            {\n                nodeConfigs: [{\n                    denyPolicies: [{}],\n                }],\n                enable: false,\n                nodeName: \"TRIGGER_SNAPSHOT\",\n            },\n        ],\n        routers: [\n            {\n                froms: [{\n                    nodeName: \"DOCKER_IMAGE_BUILD\",\n                }],\n                tos: [{\n                    nodeName: \"DOCKER_IMAGE_PUSH\",\n                }],\n            },\n            {\n                froms: [{\n                    nodeName: \"DOCKER_IMAGE_PUSH\",\n                }],\n                tos: [{\n                    nodeName: \"VULNERABILITY_SCANNING\",\n                }],\n            },\n            {\n                froms: [{\n                    nodeName: \"VULNERABILITY_SCANNING\",\n                }],\n                tos: [{\n                    nodeName: \"ACTIVATE_REPLICATION\",\n                }],\n            },\n            {\n                froms: [{\n                    nodeName: \"ACTIVATE_REPLICATION\",\n                }],\n                tos: [{\n                    nodeName: \"TRIGGER\",\n                }],\n            },\n            {\n                froms: [{\n                    nodeName: \"VULNERABILITY_SCANNING\",\n                }],\n                tos: [{\n                    nodeName: \"SNAPSHOT\",\n                }],\n            },\n            {\n                froms: [{\n                    nodeName: \"SNAPSHOT\",\n                }],\n                tos: [{\n                    nodeName: \"TRIGGER_SNAPSHOT\",\n                }],\n            },\n        ],\n    }],\n    chainName: `${name}-${_default.result}`,\n    description: name,\n    instanceId: defaultRegistryEnterpriseNamespace.instanceId,\n    repoName: defaultRegistryEnterpriseRepo.name,\n    repoNamespaceName: defaultRegistryEnterpriseNamespace.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = random.index.Integer(\"default\",\n    min=100000,\n    max=999999)\ndefault_registry_enterprise_instance = alicloud.cr.RegistryEnterpriseInstance(\"default\",\n    payment_type=\"Subscription\",\n    period=1,\n    renew_period=0,\n    renewal_status=\"ManualRenewal\",\n    instance_type=\"Advanced\",\n    instance_name=f\"{name}-{default['result']}\")\ndefault_registry_enterprise_namespace = alicloud.cs.RegistryEnterpriseNamespace(\"default\",\n    instance_id=default_registry_enterprise_instance.id,\n    name=f\"{name}-{default['result']}\",\n    auto_create=False,\n    default_visibility=\"PUBLIC\")\ndefault_registry_enterprise_repo = alicloud.cs.RegistryEnterpriseRepo(\"default\",\n    instance_id=default_registry_enterprise_instance.id,\n    namespace=default_registry_enterprise_namespace.name,\n    name=f\"{name}-{default['result']}\",\n    summary=\"this is summary of my new repo\",\n    repo_type=\"PUBLIC\",\n    detail=\"this is a public repo\")\ndefault_chain = alicloud.cr.Chain(\"default\",\n    chain_configs=[{\n        \"nodes\": [\n            {\n                \"node_configs\": [{\n                    \"deny_policies\": [{}],\n                }],\n                \"enable\": True,\n                \"node_name\": \"DOCKER_IMAGE_BUILD\",\n            },\n            {\n                \"node_configs\": [{\n                    \"deny_policies\": [{}],\n                }],\n                \"enable\": True,\n                \"node_name\": \"DOCKER_IMAGE_PUSH\",\n            },\n            {\n                \"enable\": True,\n                \"node_name\": \"VULNERABILITY_SCANNING\",\n                \"node_configs\": [{\n                    \"deny_policies\": [{\n                        \"issue_level\": \"MEDIUM\",\n                        \"issue_count\": \"1\",\n                        \"action\": \"BLOCK_DELETE_TAG\",\n                        \"logic\": \"AND\",\n                    }],\n                }],\n            },\n            {\n                \"node_configs\": [{\n                    \"deny_policies\": [{}],\n                }],\n                \"enable\": True,\n                \"node_name\": \"ACTIVATE_REPLICATION\",\n            },\n            {\n                \"node_configs\": [{\n                    \"deny_policies\": [{}],\n                }],\n                \"enable\": True,\n                \"node_name\": \"TRIGGER\",\n            },\n            {\n                \"node_configs\": [{\n                    \"deny_policies\": [{}],\n                }],\n                \"enable\": False,\n                \"node_name\": \"SNAPSHOT\",\n            },\n            {\n                \"node_configs\": [{\n                    \"deny_policies\": [{}],\n                }],\n                \"enable\": False,\n                \"node_name\": \"TRIGGER_SNAPSHOT\",\n            },\n        ],\n        \"routers\": [\n            {\n                \"froms\": [{\n                    \"node_name\": \"DOCKER_IMAGE_BUILD\",\n                }],\n                \"tos\": [{\n                    \"node_name\": \"DOCKER_IMAGE_PUSH\",\n                }],\n            },\n            {\n                \"froms\": [{\n                    \"node_name\": \"DOCKER_IMAGE_PUSH\",\n                }],\n                \"tos\": [{\n                    \"node_name\": \"VULNERABILITY_SCANNING\",\n                }],\n            },\n            {\n                \"froms\": [{\n                    \"node_name\": \"VULNERABILITY_SCANNING\",\n                }],\n                \"tos\": [{\n                    \"node_name\": \"ACTIVATE_REPLICATION\",\n                }],\n            },\n            {\n                \"froms\": [{\n                    \"node_name\": \"ACTIVATE_REPLICATION\",\n                }],\n                \"tos\": [{\n                    \"node_name\": \"TRIGGER\",\n                }],\n            },\n            {\n                \"froms\": [{\n                    \"node_name\": \"VULNERABILITY_SCANNING\",\n                }],\n                \"tos\": [{\n                    \"node_name\": \"SNAPSHOT\",\n                }],\n            },\n            {\n                \"froms\": [{\n                    \"node_name\": \"SNAPSHOT\",\n                }],\n                \"tos\": [{\n                    \"node_name\": \"TRIGGER_SNAPSHOT\",\n                }],\n            },\n        ],\n    }],\n    chain_name=f\"{name}-{default['result']}\",\n    description=name,\n    instance_id=default_registry_enterprise_namespace.instance_id,\n    repo_name=default_registry_enterprise_repo.name,\n    repo_namespace_name=default_registry_enterprise_namespace.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 100000,\n        Max = 999999,\n    });\n\n    var defaultRegistryEnterpriseInstance = new AliCloud.CR.RegistryEnterpriseInstance(\"default\", new()\n    {\n        PaymentType = \"Subscription\",\n        Period = 1,\n        RenewPeriod = 0,\n        RenewalStatus = \"ManualRenewal\",\n        InstanceType = \"Advanced\",\n        InstanceName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultRegistryEnterpriseNamespace = new AliCloud.CS.RegistryEnterpriseNamespace(\"default\", new()\n    {\n        InstanceId = defaultRegistryEnterpriseInstance.Id,\n        Name = $\"{name}-{@default.Result}\",\n        AutoCreate = false,\n        DefaultVisibility = \"PUBLIC\",\n    });\n\n    var defaultRegistryEnterpriseRepo = new AliCloud.CS.RegistryEnterpriseRepo(\"default\", new()\n    {\n        InstanceId = defaultRegistryEnterpriseInstance.Id,\n        Namespace = defaultRegistryEnterpriseNamespace.Name,\n        Name = $\"{name}-{@default.Result}\",\n        Summary = \"this is summary of my new repo\",\n        RepoType = \"PUBLIC\",\n        Detail = \"this is a public repo\",\n    });\n\n    var defaultChain = new AliCloud.CR.Chain(\"default\", new()\n    {\n        ChainConfigs = new[]\n        {\n            new AliCloud.CR.Inputs.ChainChainConfigArgs\n            {\n                Nodes = new[]\n                {\n                    new AliCloud.CR.Inputs.ChainChainConfigNodeArgs\n                    {\n                        NodeConfigs = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigNodeNodeConfigArgs\n                            {\n                                DenyPolicies = new[]\n                                {\n                                    null,\n                                },\n                            },\n                        },\n                        Enable = true,\n                        NodeName = \"DOCKER_IMAGE_BUILD\",\n                    },\n                    new AliCloud.CR.Inputs.ChainChainConfigNodeArgs\n                    {\n                        NodeConfigs = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigNodeNodeConfigArgs\n                            {\n                                DenyPolicies = new[]\n                                {\n                                    null,\n                                },\n                            },\n                        },\n                        Enable = true,\n                        NodeName = \"DOCKER_IMAGE_PUSH\",\n                    },\n                    new AliCloud.CR.Inputs.ChainChainConfigNodeArgs\n                    {\n                        Enable = true,\n                        NodeName = \"VULNERABILITY_SCANNING\",\n                        NodeConfigs = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigNodeNodeConfigArgs\n                            {\n                                DenyPolicies = new[]\n                                {\n                                    new AliCloud.CR.Inputs.ChainChainConfigNodeNodeConfigDenyPolicyArgs\n                                    {\n                                        IssueLevel = \"MEDIUM\",\n                                        IssueCount = \"1\",\n                                        Action = \"BLOCK_DELETE_TAG\",\n                                        Logic = \"AND\",\n                                    },\n                                },\n                            },\n                        },\n                    },\n                    new AliCloud.CR.Inputs.ChainChainConfigNodeArgs\n                    {\n                        NodeConfigs = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigNodeNodeConfigArgs\n                            {\n                                DenyPolicies = new[]\n                                {\n                                    null,\n                                },\n                            },\n                        },\n                        Enable = true,\n                        NodeName = \"ACTIVATE_REPLICATION\",\n                    },\n                    new AliCloud.CR.Inputs.ChainChainConfigNodeArgs\n                    {\n                        NodeConfigs = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigNodeNodeConfigArgs\n                            {\n                                DenyPolicies = new[]\n                                {\n                                    null,\n                                },\n                            },\n                        },\n                        Enable = true,\n                        NodeName = \"TRIGGER\",\n                    },\n                    new AliCloud.CR.Inputs.ChainChainConfigNodeArgs\n                    {\n                        NodeConfigs = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigNodeNodeConfigArgs\n                            {\n                                DenyPolicies = new[]\n                                {\n                                    null,\n                                },\n                            },\n                        },\n                        Enable = false,\n                        NodeName = \"SNAPSHOT\",\n                    },\n                    new AliCloud.CR.Inputs.ChainChainConfigNodeArgs\n                    {\n                        NodeConfigs = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigNodeNodeConfigArgs\n                            {\n                                DenyPolicies = new[]\n                                {\n                                    null,\n                                },\n                            },\n                        },\n                        Enable = false,\n                        NodeName = \"TRIGGER_SNAPSHOT\",\n                    },\n                },\n                Routers = new[]\n                {\n                    new AliCloud.CR.Inputs.ChainChainConfigRouterArgs\n                    {\n                        Froms = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigRouterFromArgs\n                            {\n                                NodeName = \"DOCKER_IMAGE_BUILD\",\n                            },\n                        },\n                        Tos = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigRouterToArgs\n                            {\n                                NodeName = \"DOCKER_IMAGE_PUSH\",\n                            },\n                        },\n                    },\n                    new AliCloud.CR.Inputs.ChainChainConfigRouterArgs\n                    {\n                        Froms = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigRouterFromArgs\n                            {\n                                NodeName = \"DOCKER_IMAGE_PUSH\",\n                            },\n                        },\n                        Tos = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigRouterToArgs\n                            {\n                                NodeName = \"VULNERABILITY_SCANNING\",\n                            },\n                        },\n                    },\n                    new AliCloud.CR.Inputs.ChainChainConfigRouterArgs\n                    {\n                        Froms = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigRouterFromArgs\n                            {\n                                NodeName = \"VULNERABILITY_SCANNING\",\n                            },\n                        },\n                        Tos = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigRouterToArgs\n                            {\n                                NodeName = \"ACTIVATE_REPLICATION\",\n                            },\n                        },\n                    },\n                    new AliCloud.CR.Inputs.ChainChainConfigRouterArgs\n                    {\n                        Froms = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigRouterFromArgs\n                            {\n                                NodeName = \"ACTIVATE_REPLICATION\",\n                            },\n                        },\n                        Tos = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigRouterToArgs\n                            {\n                                NodeName = \"TRIGGER\",\n                            },\n                        },\n                    },\n                    new AliCloud.CR.Inputs.ChainChainConfigRouterArgs\n                    {\n                        Froms = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigRouterFromArgs\n                            {\n                                NodeName = \"VULNERABILITY_SCANNING\",\n                            },\n                        },\n                        Tos = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigRouterToArgs\n                            {\n                                NodeName = \"SNAPSHOT\",\n                            },\n                        },\n                    },\n                    new AliCloud.CR.Inputs.ChainChainConfigRouterArgs\n                    {\n                        Froms = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigRouterFromArgs\n                            {\n                                NodeName = \"SNAPSHOT\",\n                            },\n                        },\n                        Tos = new[]\n                        {\n                            new AliCloud.CR.Inputs.ChainChainConfigRouterToArgs\n                            {\n                                NodeName = \"TRIGGER_SNAPSHOT\",\n                            },\n                        },\n                    },\n                },\n            },\n        },\n        ChainName = $\"{name}-{@default.Result}\",\n        Description = name,\n        InstanceId = defaultRegistryEnterpriseNamespace.InstanceId,\n        RepoName = defaultRegistryEnterpriseRepo.Name,\n        RepoNamespaceName = defaultRegistryEnterpriseNamespace.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 100000,\n\t\t\tMax: 999999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegistryEnterpriseInstance, err := cr.NewRegistryEnterpriseInstance(ctx, \"default\", \u0026cr.RegistryEnterpriseInstanceArgs{\n\t\t\tPaymentType:   pulumi.String(\"Subscription\"),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t\tRenewPeriod:   pulumi.Int(0),\n\t\t\tRenewalStatus: pulumi.String(\"ManualRenewal\"),\n\t\t\tInstanceType:  pulumi.String(\"Advanced\"),\n\t\t\tInstanceName:  pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegistryEnterpriseNamespace, err := cs.NewRegistryEnterpriseNamespace(ctx, \"default\", \u0026cs.RegistryEnterpriseNamespaceArgs{\n\t\t\tInstanceId:        defaultRegistryEnterpriseInstance.ID(),\n\t\t\tName:              pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tAutoCreate:        pulumi.Bool(false),\n\t\t\tDefaultVisibility: pulumi.String(\"PUBLIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegistryEnterpriseRepo, err := cs.NewRegistryEnterpriseRepo(ctx, \"default\", \u0026cs.RegistryEnterpriseRepoArgs{\n\t\t\tInstanceId: defaultRegistryEnterpriseInstance.ID(),\n\t\t\tNamespace:  defaultRegistryEnterpriseNamespace.Name,\n\t\t\tName:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tSummary:    pulumi.String(\"this is summary of my new repo\"),\n\t\t\tRepoType:   pulumi.String(\"PUBLIC\"),\n\t\t\tDetail:     pulumi.String(\"this is a public repo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cr.NewChain(ctx, \"default\", \u0026cr.ChainArgs{\n\t\t\tChainConfigs: cr.ChainChainConfigArray{\n\t\t\t\t\u0026cr.ChainChainConfigArgs{\n\t\t\t\t\tNodes: cr.ChainChainConfigNodeArray{\n\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeArgs{\n\t\t\t\t\t\t\tNodeConfigs: cr.ChainChainConfigNodeNodeConfigArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeNodeConfigArgs{\n\t\t\t\t\t\t\t\t\tDenyPolicies: cr.ChainChainConfigNodeNodeConfigDenyPolicyArray{\n\t\t\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeNodeConfigDenyPolicyArgs{},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tEnable:   pulumi.Bool(true),\n\t\t\t\t\t\t\tNodeName: pulumi.String(\"DOCKER_IMAGE_BUILD\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeArgs{\n\t\t\t\t\t\t\tNodeConfigs: cr.ChainChainConfigNodeNodeConfigArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeNodeConfigArgs{\n\t\t\t\t\t\t\t\t\tDenyPolicies: cr.ChainChainConfigNodeNodeConfigDenyPolicyArray{\n\t\t\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeNodeConfigDenyPolicyArgs{},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tEnable:   pulumi.Bool(true),\n\t\t\t\t\t\t\tNodeName: pulumi.String(\"DOCKER_IMAGE_PUSH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeArgs{\n\t\t\t\t\t\t\tEnable:   pulumi.Bool(true),\n\t\t\t\t\t\t\tNodeName: pulumi.String(\"VULNERABILITY_SCANNING\"),\n\t\t\t\t\t\t\tNodeConfigs: cr.ChainChainConfigNodeNodeConfigArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeNodeConfigArgs{\n\t\t\t\t\t\t\t\t\tDenyPolicies: cr.ChainChainConfigNodeNodeConfigDenyPolicyArray{\n\t\t\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeNodeConfigDenyPolicyArgs{\n\t\t\t\t\t\t\t\t\t\t\tIssueLevel: pulumi.String(\"MEDIUM\"),\n\t\t\t\t\t\t\t\t\t\t\tIssueCount: pulumi.String(\"1\"),\n\t\t\t\t\t\t\t\t\t\t\tAction:     pulumi.String(\"BLOCK_DELETE_TAG\"),\n\t\t\t\t\t\t\t\t\t\t\tLogic:      pulumi.String(\"AND\"),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeArgs{\n\t\t\t\t\t\t\tNodeConfigs: cr.ChainChainConfigNodeNodeConfigArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeNodeConfigArgs{\n\t\t\t\t\t\t\t\t\tDenyPolicies: cr.ChainChainConfigNodeNodeConfigDenyPolicyArray{\n\t\t\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeNodeConfigDenyPolicyArgs{},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tEnable:   pulumi.Bool(true),\n\t\t\t\t\t\t\tNodeName: pulumi.String(\"ACTIVATE_REPLICATION\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeArgs{\n\t\t\t\t\t\t\tNodeConfigs: cr.ChainChainConfigNodeNodeConfigArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeNodeConfigArgs{\n\t\t\t\t\t\t\t\t\tDenyPolicies: cr.ChainChainConfigNodeNodeConfigDenyPolicyArray{\n\t\t\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeNodeConfigDenyPolicyArgs{},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tEnable:   pulumi.Bool(true),\n\t\t\t\t\t\t\tNodeName: pulumi.String(\"TRIGGER\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeArgs{\n\t\t\t\t\t\t\tNodeConfigs: cr.ChainChainConfigNodeNodeConfigArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeNodeConfigArgs{\n\t\t\t\t\t\t\t\t\tDenyPolicies: cr.ChainChainConfigNodeNodeConfigDenyPolicyArray{\n\t\t\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeNodeConfigDenyPolicyArgs{},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tEnable:   pulumi.Bool(false),\n\t\t\t\t\t\t\tNodeName: pulumi.String(\"SNAPSHOT\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeArgs{\n\t\t\t\t\t\t\tNodeConfigs: cr.ChainChainConfigNodeNodeConfigArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeNodeConfigArgs{\n\t\t\t\t\t\t\t\t\tDenyPolicies: cr.ChainChainConfigNodeNodeConfigDenyPolicyArray{\n\t\t\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigNodeNodeConfigDenyPolicyArgs{},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tEnable:   pulumi.Bool(false),\n\t\t\t\t\t\t\tNodeName: pulumi.String(\"TRIGGER_SNAPSHOT\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tRouters: cr.ChainChainConfigRouterArray{\n\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterArgs{\n\t\t\t\t\t\t\tFroms: cr.ChainChainConfigRouterFromArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterFromArgs{\n\t\t\t\t\t\t\t\t\tNodeName: pulumi.String(\"DOCKER_IMAGE_BUILD\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tTos: cr.ChainChainConfigRouterToArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterToArgs{\n\t\t\t\t\t\t\t\t\tNodeName: pulumi.String(\"DOCKER_IMAGE_PUSH\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterArgs{\n\t\t\t\t\t\t\tFroms: cr.ChainChainConfigRouterFromArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterFromArgs{\n\t\t\t\t\t\t\t\t\tNodeName: pulumi.String(\"DOCKER_IMAGE_PUSH\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tTos: cr.ChainChainConfigRouterToArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterToArgs{\n\t\t\t\t\t\t\t\t\tNodeName: pulumi.String(\"VULNERABILITY_SCANNING\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterArgs{\n\t\t\t\t\t\t\tFroms: cr.ChainChainConfigRouterFromArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterFromArgs{\n\t\t\t\t\t\t\t\t\tNodeName: pulumi.String(\"VULNERABILITY_SCANNING\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tTos: cr.ChainChainConfigRouterToArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterToArgs{\n\t\t\t\t\t\t\t\t\tNodeName: pulumi.String(\"ACTIVATE_REPLICATION\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterArgs{\n\t\t\t\t\t\t\tFroms: cr.ChainChainConfigRouterFromArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterFromArgs{\n\t\t\t\t\t\t\t\t\tNodeName: pulumi.String(\"ACTIVATE_REPLICATION\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tTos: cr.ChainChainConfigRouterToArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterToArgs{\n\t\t\t\t\t\t\t\t\tNodeName: pulumi.String(\"TRIGGER\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterArgs{\n\t\t\t\t\t\t\tFroms: cr.ChainChainConfigRouterFromArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterFromArgs{\n\t\t\t\t\t\t\t\t\tNodeName: pulumi.String(\"VULNERABILITY_SCANNING\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tTos: cr.ChainChainConfigRouterToArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterToArgs{\n\t\t\t\t\t\t\t\t\tNodeName: pulumi.String(\"SNAPSHOT\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterArgs{\n\t\t\t\t\t\t\tFroms: cr.ChainChainConfigRouterFromArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterFromArgs{\n\t\t\t\t\t\t\t\t\tNodeName: pulumi.String(\"SNAPSHOT\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tTos: cr.ChainChainConfigRouterToArray{\n\t\t\t\t\t\t\t\t\u0026cr.ChainChainConfigRouterToArgs{\n\t\t\t\t\t\t\t\t\tNodeName: pulumi.String(\"TRIGGER_SNAPSHOT\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tChainName:         pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tDescription:       pulumi.String(name),\n\t\t\tInstanceId:        defaultRegistryEnterpriseNamespace.InstanceId,\n\t\t\tRepoName:          defaultRegistryEnterpriseRepo.Name,\n\t\t\tRepoNamespaceName: defaultRegistryEnterpriseNamespace.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstance;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstanceArgs;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseNamespace;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseNamespaceArgs;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseRepo;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseRepoArgs;\nimport com.pulumi.alicloud.cr.Chain;\nimport com.pulumi.alicloud.cr.ChainArgs;\nimport com.pulumi.alicloud.cr.inputs.ChainChainConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(100000)\n            .max(999999)\n            .build());\n\n        var defaultRegistryEnterpriseInstance = new RegistryEnterpriseInstance(\"defaultRegistryEnterpriseInstance\", RegistryEnterpriseInstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .period(1)\n            .renewPeriod(0)\n            .renewalStatus(\"ManualRenewal\")\n            .instanceType(\"Advanced\")\n            .instanceName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultRegistryEnterpriseNamespace = new RegistryEnterpriseNamespace(\"defaultRegistryEnterpriseNamespace\", RegistryEnterpriseNamespaceArgs.builder()\n            .instanceId(defaultRegistryEnterpriseInstance.id())\n            .name(String.format(\"%s-%s\", name,default_.result()))\n            .autoCreate(false)\n            .defaultVisibility(\"PUBLIC\")\n            .build());\n\n        var defaultRegistryEnterpriseRepo = new RegistryEnterpriseRepo(\"defaultRegistryEnterpriseRepo\", RegistryEnterpriseRepoArgs.builder()\n            .instanceId(defaultRegistryEnterpriseInstance.id())\n            .namespace(defaultRegistryEnterpriseNamespace.name())\n            .name(String.format(\"%s-%s\", name,default_.result()))\n            .summary(\"this is summary of my new repo\")\n            .repoType(\"PUBLIC\")\n            .detail(\"this is a public repo\")\n            .build());\n\n        var defaultChain = new Chain(\"defaultChain\", ChainArgs.builder()\n            .chainConfigs(ChainChainConfigArgs.builder()\n                .nodes(                \n                    ChainChainConfigNodeArgs.builder()\n                        .nodeConfigs(ChainChainConfigNodeNodeConfigArgs.builder()\n                            .denyPolicies(ChainChainConfigNodeNodeConfigDenyPolicyArgs.builder()\n                                .build())\n                            .build())\n                        .enable(true)\n                        .nodeName(\"DOCKER_IMAGE_BUILD\")\n                        .build(),\n                    ChainChainConfigNodeArgs.builder()\n                        .nodeConfigs(ChainChainConfigNodeNodeConfigArgs.builder()\n                            .denyPolicies(ChainChainConfigNodeNodeConfigDenyPolicyArgs.builder()\n                                .build())\n                            .build())\n                        .enable(true)\n                        .nodeName(\"DOCKER_IMAGE_PUSH\")\n                        .build(),\n                    ChainChainConfigNodeArgs.builder()\n                        .enable(true)\n                        .nodeName(\"VULNERABILITY_SCANNING\")\n                        .nodeConfigs(ChainChainConfigNodeNodeConfigArgs.builder()\n                            .denyPolicies(ChainChainConfigNodeNodeConfigDenyPolicyArgs.builder()\n                                .issueLevel(\"MEDIUM\")\n                                .issueCount(\"1\")\n                                .action(\"BLOCK_DELETE_TAG\")\n                                .logic(\"AND\")\n                                .build())\n                            .build())\n                        .build(),\n                    ChainChainConfigNodeArgs.builder()\n                        .nodeConfigs(ChainChainConfigNodeNodeConfigArgs.builder()\n                            .denyPolicies(ChainChainConfigNodeNodeConfigDenyPolicyArgs.builder()\n                                .build())\n                            .build())\n                        .enable(true)\n                        .nodeName(\"ACTIVATE_REPLICATION\")\n                        .build(),\n                    ChainChainConfigNodeArgs.builder()\n                        .nodeConfigs(ChainChainConfigNodeNodeConfigArgs.builder()\n                            .denyPolicies(ChainChainConfigNodeNodeConfigDenyPolicyArgs.builder()\n                                .build())\n                            .build())\n                        .enable(true)\n                        .nodeName(\"TRIGGER\")\n                        .build(),\n                    ChainChainConfigNodeArgs.builder()\n                        .nodeConfigs(ChainChainConfigNodeNodeConfigArgs.builder()\n                            .denyPolicies(ChainChainConfigNodeNodeConfigDenyPolicyArgs.builder()\n                                .build())\n                            .build())\n                        .enable(false)\n                        .nodeName(\"SNAPSHOT\")\n                        .build(),\n                    ChainChainConfigNodeArgs.builder()\n                        .nodeConfigs(ChainChainConfigNodeNodeConfigArgs.builder()\n                            .denyPolicies(ChainChainConfigNodeNodeConfigDenyPolicyArgs.builder()\n                                .build())\n                            .build())\n                        .enable(false)\n                        .nodeName(\"TRIGGER_SNAPSHOT\")\n                        .build())\n                .routers(                \n                    ChainChainConfigRouterArgs.builder()\n                        .froms(ChainChainConfigRouterFromArgs.builder()\n                            .nodeName(\"DOCKER_IMAGE_BUILD\")\n                            .build())\n                        .tos(ChainChainConfigRouterToArgs.builder()\n                            .nodeName(\"DOCKER_IMAGE_PUSH\")\n                            .build())\n                        .build(),\n                    ChainChainConfigRouterArgs.builder()\n                        .froms(ChainChainConfigRouterFromArgs.builder()\n                            .nodeName(\"DOCKER_IMAGE_PUSH\")\n                            .build())\n                        .tos(ChainChainConfigRouterToArgs.builder()\n                            .nodeName(\"VULNERABILITY_SCANNING\")\n                            .build())\n                        .build(),\n                    ChainChainConfigRouterArgs.builder()\n                        .froms(ChainChainConfigRouterFromArgs.builder()\n                            .nodeName(\"VULNERABILITY_SCANNING\")\n                            .build())\n                        .tos(ChainChainConfigRouterToArgs.builder()\n                            .nodeName(\"ACTIVATE_REPLICATION\")\n                            .build())\n                        .build(),\n                    ChainChainConfigRouterArgs.builder()\n                        .froms(ChainChainConfigRouterFromArgs.builder()\n                            .nodeName(\"ACTIVATE_REPLICATION\")\n                            .build())\n                        .tos(ChainChainConfigRouterToArgs.builder()\n                            .nodeName(\"TRIGGER\")\n                            .build())\n                        .build(),\n                    ChainChainConfigRouterArgs.builder()\n                        .froms(ChainChainConfigRouterFromArgs.builder()\n                            .nodeName(\"VULNERABILITY_SCANNING\")\n                            .build())\n                        .tos(ChainChainConfigRouterToArgs.builder()\n                            .nodeName(\"SNAPSHOT\")\n                            .build())\n                        .build(),\n                    ChainChainConfigRouterArgs.builder()\n                        .froms(ChainChainConfigRouterFromArgs.builder()\n                            .nodeName(\"SNAPSHOT\")\n                            .build())\n                        .tos(ChainChainConfigRouterToArgs.builder()\n                            .nodeName(\"TRIGGER_SNAPSHOT\")\n                            .build())\n                        .build())\n                .build())\n            .chainName(String.format(\"%s-%s\", name,default_.result()))\n            .description(name)\n            .instanceId(defaultRegistryEnterpriseNamespace.instanceId())\n            .repoName(defaultRegistryEnterpriseRepo.name())\n            .repoNamespaceName(defaultRegistryEnterpriseNamespace.name())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 100000\n      max: 999999\n  defaultRegistryEnterpriseInstance:\n    type: alicloud:cr:RegistryEnterpriseInstance\n    name: default\n    properties:\n      paymentType: Subscription\n      period: 1\n      renewPeriod: 0\n      renewalStatus: ManualRenewal\n      instanceType: Advanced\n      instanceName: ${name}-${default.result}\n  defaultRegistryEnterpriseNamespace:\n    type: alicloud:cs:RegistryEnterpriseNamespace\n    name: default\n    properties:\n      instanceId: ${defaultRegistryEnterpriseInstance.id}\n      name: ${name}-${default.result}\n      autoCreate: false\n      defaultVisibility: PUBLIC\n  defaultRegistryEnterpriseRepo:\n    type: alicloud:cs:RegistryEnterpriseRepo\n    name: default\n    properties:\n      instanceId: ${defaultRegistryEnterpriseInstance.id}\n      namespace: ${defaultRegistryEnterpriseNamespace.name}\n      name: ${name}-${default.result}\n      summary: this is summary of my new repo\n      repoType: PUBLIC\n      detail: this is a public repo\n  defaultChain:\n    type: alicloud:cr:Chain\n    name: default\n    properties:\n      chainConfigs:\n        - nodes:\n            - nodeConfigs:\n                - denyPolicies:\n                    - {}\n              enable: true\n              nodeName: DOCKER_IMAGE_BUILD\n            - nodeConfigs:\n                - denyPolicies:\n                    - {}\n              enable: true\n              nodeName: DOCKER_IMAGE_PUSH\n            - enable: true\n              nodeName: VULNERABILITY_SCANNING\n              nodeConfigs:\n                - denyPolicies:\n                    - issueLevel: MEDIUM\n                      issueCount: 1\n                      action: BLOCK_DELETE_TAG\n                      logic: AND\n            - nodeConfigs:\n                - denyPolicies:\n                    - {}\n              enable: true\n              nodeName: ACTIVATE_REPLICATION\n            - nodeConfigs:\n                - denyPolicies:\n                    - {}\n              enable: true\n              nodeName: TRIGGER\n            - nodeConfigs:\n                - denyPolicies:\n                    - {}\n              enable: false\n              nodeName: SNAPSHOT\n            - nodeConfigs:\n                - denyPolicies:\n                    - {}\n              enable: false\n              nodeName: TRIGGER_SNAPSHOT\n          routers:\n            - froms:\n                - nodeName: DOCKER_IMAGE_BUILD\n              tos:\n                - nodeName: DOCKER_IMAGE_PUSH\n            - froms:\n                - nodeName: DOCKER_IMAGE_PUSH\n              tos:\n                - nodeName: VULNERABILITY_SCANNING\n            - froms:\n                - nodeName: VULNERABILITY_SCANNING\n              tos:\n                - nodeName: ACTIVATE_REPLICATION\n            - froms:\n                - nodeName: ACTIVATE_REPLICATION\n              tos:\n                - nodeName: TRIGGER\n            - froms:\n                - nodeName: VULNERABILITY_SCANNING\n              tos:\n                - nodeName: SNAPSHOT\n            - froms:\n                - nodeName: SNAPSHOT\n              tos:\n                - nodeName: TRIGGER_SNAPSHOT\n      chainName: ${name}-${default.result}\n      description: ${name}\n      instanceId: ${defaultRegistryEnterpriseNamespace.instanceId}\n      repoName: ${defaultRegistryEnterpriseRepo.name}\n      repoNamespaceName: ${defaultRegistryEnterpriseNamespace.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCR Chain can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cr/chain:Chain example \u003cinstance_id\u003e:\u003cchain_id\u003e\n```\n\n","properties":{"chainConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cr/ChainChainConfig:ChainChainConfig"},"description":"The configuration of delivery chain. See \u003cspan pulumi-lang-nodejs=\"`chainConfig`\" pulumi-lang-dotnet=\"`ChainConfig`\" pulumi-lang-go=\"`chainConfig`\" pulumi-lang-python=\"`chain_config`\" pulumi-lang-yaml=\"`chainConfig`\" pulumi-lang-java=\"`chainConfig`\"\u003e`chain_config`\u003c/span\u003e below. **NOTE:** This parameter must specify the correct value, otherwise the created resource will be incorrect.\n"},"chainId":{"type":"string","description":"Delivery chain ID.\n"},"chainName":{"type":"string","description":"The name of delivery chain. The length of the name is 1-64 characters, lowercase English letters and numbers, and the separators \"_\", \"-\", \".\" can be used, noted that the separator cannot be at the first or last position.\n"},"description":{"type":"string","description":"The description delivery chain.\n"},"instanceId":{"type":"string","description":"The ID of CR Enterprise Edition instance.\n"},"repoName":{"type":"string","description":"The name of CR Enterprise Edition repository. **NOTE:** This parameter must specify a correct value, otherwise the created resource will be incorrect.\n"},"repoNamespaceName":{"type":"string","description":"The name of CR Enterprise Edition namespace. **NOTE:** This parameter must specify the correct value, otherwise the created resource will be incorrect.\n"}},"required":["chainId","chainName","instanceId"],"inputProperties":{"chainConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cr/ChainChainConfig:ChainChainConfig"},"description":"The configuration of delivery chain. See \u003cspan pulumi-lang-nodejs=\"`chainConfig`\" pulumi-lang-dotnet=\"`ChainConfig`\" pulumi-lang-go=\"`chainConfig`\" pulumi-lang-python=\"`chain_config`\" pulumi-lang-yaml=\"`chainConfig`\" pulumi-lang-java=\"`chainConfig`\"\u003e`chain_config`\u003c/span\u003e below. **NOTE:** This parameter must specify the correct value, otherwise the created resource will be incorrect.\n"},"chainName":{"type":"string","description":"The name of delivery chain. The length of the name is 1-64 characters, lowercase English letters and numbers, and the separators \"_\", \"-\", \".\" can be used, noted that the separator cannot be at the first or last position.\n"},"description":{"type":"string","description":"The description delivery chain.\n"},"instanceId":{"type":"string","description":"The ID of CR Enterprise Edition instance.\n","willReplaceOnChanges":true},"repoName":{"type":"string","description":"The name of CR Enterprise Edition repository. **NOTE:** This parameter must specify a correct value, otherwise the created resource will be incorrect.\n","willReplaceOnChanges":true},"repoNamespaceName":{"type":"string","description":"The name of CR Enterprise Edition namespace. **NOTE:** This parameter must specify the correct value, otherwise the created resource will be incorrect.\n","willReplaceOnChanges":true}},"requiredInputs":["chainName","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Chain resources.\n","properties":{"chainConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:cr/ChainChainConfig:ChainChainConfig"},"description":"The configuration of delivery chain. See \u003cspan pulumi-lang-nodejs=\"`chainConfig`\" pulumi-lang-dotnet=\"`ChainConfig`\" pulumi-lang-go=\"`chainConfig`\" pulumi-lang-python=\"`chain_config`\" pulumi-lang-yaml=\"`chainConfig`\" pulumi-lang-java=\"`chainConfig`\"\u003e`chain_config`\u003c/span\u003e below. **NOTE:** This parameter must specify the correct value, otherwise the created resource will be incorrect.\n"},"chainId":{"type":"string","description":"Delivery chain ID.\n"},"chainName":{"type":"string","description":"The name of delivery chain. The length of the name is 1-64 characters, lowercase English letters and numbers, and the separators \"_\", \"-\", \".\" can be used, noted that the separator cannot be at the first or last position.\n"},"description":{"type":"string","description":"The description delivery chain.\n"},"instanceId":{"type":"string","description":"The ID of CR Enterprise Edition instance.\n","willReplaceOnChanges":true},"repoName":{"type":"string","description":"The name of CR Enterprise Edition repository. **NOTE:** This parameter must specify a correct value, otherwise the created resource will be incorrect.\n","willReplaceOnChanges":true},"repoNamespaceName":{"type":"string","description":"The name of CR Enterprise Edition namespace. **NOTE:** This parameter must specify the correct value, otherwise the created resource will be incorrect.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cr/chartNamespace:ChartNamespace":{"description":"Provides a CR Chart Namespace resource.\n\nFor information about CR Chart Namespace and how to use it, see [What is Chart Namespace](https://www.alibabacloud.com/help/en/acr/developer-reference/api-cr-2018-12-01-createchartnamespace).\n\n\u003e **NOTE:** Available since v1.149.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000000,\n    max: 99999999,\n});\nconst example = new alicloud.cr.RegistryEnterpriseInstance(\"example\", {\n    paymentType: \"Subscription\",\n    period: 1,\n    renewPeriod: 0,\n    renewalStatus: \"ManualRenewal\",\n    instanceType: \"Advanced\",\n    instanceName: `${name}-${_default.result}`,\n});\nconst exampleChartNamespace = new alicloud.cr.ChartNamespace(\"example\", {\n    instanceId: example.id,\n    namespaceName: `${name}-${_default.result}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000000,\n    max=99999999)\nexample = alicloud.cr.RegistryEnterpriseInstance(\"example\",\n    payment_type=\"Subscription\",\n    period=1,\n    renew_period=0,\n    renewal_status=\"ManualRenewal\",\n    instance_type=\"Advanced\",\n    instance_name=f\"{name}-{default['result']}\")\nexample_chart_namespace = alicloud.cr.ChartNamespace(\"example\",\n    instance_id=example.id,\n    namespace_name=f\"{name}-{default['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000000,\n        Max = 99999999,\n    });\n\n    var example = new AliCloud.CR.RegistryEnterpriseInstance(\"example\", new()\n    {\n        PaymentType = \"Subscription\",\n        Period = 1,\n        RenewPeriod = 0,\n        RenewalStatus = \"ManualRenewal\",\n        InstanceType = \"Advanced\",\n        InstanceName = $\"{name}-{@default.Result}\",\n    });\n\n    var exampleChartNamespace = new AliCloud.CR.ChartNamespace(\"example\", new()\n    {\n        InstanceId = example.Id,\n        NamespaceName = $\"{name}-{@default.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000000,\n\t\t\tMax: 99999999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := cr.NewRegistryEnterpriseInstance(ctx, \"example\", \u0026cr.RegistryEnterpriseInstanceArgs{\n\t\t\tPaymentType:   pulumi.String(\"Subscription\"),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t\tRenewPeriod:   pulumi.Int(0),\n\t\t\tRenewalStatus: pulumi.String(\"ManualRenewal\"),\n\t\t\tInstanceType:  pulumi.String(\"Advanced\"),\n\t\t\tInstanceName:  pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cr.NewChartNamespace(ctx, \"example\", \u0026cr.ChartNamespaceArgs{\n\t\t\tInstanceId:    example.ID(),\n\t\t\tNamespaceName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstance;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstanceArgs;\nimport com.pulumi.alicloud.cr.ChartNamespace;\nimport com.pulumi.alicloud.cr.ChartNamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000000)\n            .max(99999999)\n            .build());\n\n        var example = new RegistryEnterpriseInstance(\"example\", RegistryEnterpriseInstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .period(1)\n            .renewPeriod(0)\n            .renewalStatus(\"ManualRenewal\")\n            .instanceType(\"Advanced\")\n            .instanceName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var exampleChartNamespace = new ChartNamespace(\"exampleChartNamespace\", ChartNamespaceArgs.builder()\n            .instanceId(example.id())\n            .namespaceName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 1e+07\n      max: 9.9999999e+07\n  example:\n    type: alicloud:cr:RegistryEnterpriseInstance\n    properties:\n      paymentType: Subscription\n      period: 1\n      renewPeriod: 0\n      renewalStatus: ManualRenewal\n      instanceType: Advanced\n      instanceName: ${name}-${default.result}\n  exampleChartNamespace:\n    type: alicloud:cr:ChartNamespace\n    name: example\n    properties:\n      instanceId: ${example.id}\n      namespaceName: ${name}-${default.result}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCR Chart Namespace can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cr/chartNamespace:ChartNamespace example \u003cinstance_id\u003e:\u003cnamespace_name\u003e\n```\n\n","properties":{"autoCreateRepo":{"type":"boolean","description":"Specifies whether to automatically create repositories in the namespace. Valid values:\n"},"defaultRepoType":{"type":"string","description":"DefaultRepoType. Valid values: `PRIVATE`, `PUBLIC`.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry instance.\n"},"namespaceName":{"type":"string","description":"The name of the namespace that you want to create.\n"}},"required":["autoCreateRepo","defaultRepoType","instanceId","namespaceName"],"inputProperties":{"autoCreateRepo":{"type":"boolean","description":"Specifies whether to automatically create repositories in the namespace. Valid values:\n"},"defaultRepoType":{"type":"string","description":"DefaultRepoType. Valid values: `PRIVATE`, `PUBLIC`.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry instance.\n","willReplaceOnChanges":true},"namespaceName":{"type":"string","description":"The name of the namespace that you want to create.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId","namespaceName"],"stateInputs":{"description":"Input properties used for looking up and filtering ChartNamespace resources.\n","properties":{"autoCreateRepo":{"type":"boolean","description":"Specifies whether to automatically create repositories in the namespace. Valid values:\n"},"defaultRepoType":{"type":"string","description":"DefaultRepoType. Valid values: `PRIVATE`, `PUBLIC`.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry instance.\n","willReplaceOnChanges":true},"namespaceName":{"type":"string","description":"The name of the namespace that you want to create.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cr/chartRepository:ChartRepository":{"description":"Provides a CR Chart Repository resource.\n\nFor information about CR Chart Repository and how to use it, see [What is Chart Repository](https://www.alibabacloud.com/help/en/acr/developer-reference/api-cr-2018-12-01-createchartrepository).\n\n\u003e **NOTE:** Available since v1.149.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 100000,\n    max: 999999,\n});\nconst example = new alicloud.cr.RegistryEnterpriseInstance(\"example\", {\n    paymentType: \"Subscription\",\n    period: 1,\n    renewPeriod: 0,\n    renewalStatus: \"ManualRenewal\",\n    instanceType: \"Advanced\",\n    instanceName: `${name}-${_default.result}`,\n});\nconst exampleChartNamespace = new alicloud.cr.ChartNamespace(\"example\", {\n    instanceId: example.id,\n    namespaceName: `${name}-${_default.result}`,\n});\nconst exampleChartRepository = new alicloud.cr.ChartRepository(\"example\", {\n    repoNamespaceName: exampleChartNamespace.namespaceName,\n    instanceId: exampleChartNamespace.instanceId,\n    repoName: `${name}-${_default.result}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = random.index.Integer(\"default\",\n    min=100000,\n    max=999999)\nexample = alicloud.cr.RegistryEnterpriseInstance(\"example\",\n    payment_type=\"Subscription\",\n    period=1,\n    renew_period=0,\n    renewal_status=\"ManualRenewal\",\n    instance_type=\"Advanced\",\n    instance_name=f\"{name}-{default['result']}\")\nexample_chart_namespace = alicloud.cr.ChartNamespace(\"example\",\n    instance_id=example.id,\n    namespace_name=f\"{name}-{default['result']}\")\nexample_chart_repository = alicloud.cr.ChartRepository(\"example\",\n    repo_namespace_name=example_chart_namespace.namespace_name,\n    instance_id=example_chart_namespace.instance_id,\n    repo_name=f\"{name}-{default['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 100000,\n        Max = 999999,\n    });\n\n    var example = new AliCloud.CR.RegistryEnterpriseInstance(\"example\", new()\n    {\n        PaymentType = \"Subscription\",\n        Period = 1,\n        RenewPeriod = 0,\n        RenewalStatus = \"ManualRenewal\",\n        InstanceType = \"Advanced\",\n        InstanceName = $\"{name}-{@default.Result}\",\n    });\n\n    var exampleChartNamespace = new AliCloud.CR.ChartNamespace(\"example\", new()\n    {\n        InstanceId = example.Id,\n        NamespaceName = $\"{name}-{@default.Result}\",\n    });\n\n    var exampleChartRepository = new AliCloud.CR.ChartRepository(\"example\", new()\n    {\n        RepoNamespaceName = exampleChartNamespace.NamespaceName,\n        InstanceId = exampleChartNamespace.InstanceId,\n        RepoName = $\"{name}-{@default.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 100000,\n\t\t\tMax: 999999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := cr.NewRegistryEnterpriseInstance(ctx, \"example\", \u0026cr.RegistryEnterpriseInstanceArgs{\n\t\t\tPaymentType:   pulumi.String(\"Subscription\"),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t\tRenewPeriod:   pulumi.Int(0),\n\t\t\tRenewalStatus: pulumi.String(\"ManualRenewal\"),\n\t\t\tInstanceType:  pulumi.String(\"Advanced\"),\n\t\t\tInstanceName:  pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleChartNamespace, err := cr.NewChartNamespace(ctx, \"example\", \u0026cr.ChartNamespaceArgs{\n\t\t\tInstanceId:    example.ID(),\n\t\t\tNamespaceName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cr.NewChartRepository(ctx, \"example\", \u0026cr.ChartRepositoryArgs{\n\t\t\tRepoNamespaceName: exampleChartNamespace.NamespaceName,\n\t\t\tInstanceId:        exampleChartNamespace.InstanceId,\n\t\t\tRepoName:          pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstance;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstanceArgs;\nimport com.pulumi.alicloud.cr.ChartNamespace;\nimport com.pulumi.alicloud.cr.ChartNamespaceArgs;\nimport com.pulumi.alicloud.cr.ChartRepository;\nimport com.pulumi.alicloud.cr.ChartRepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(100000)\n            .max(999999)\n            .build());\n\n        var example = new RegistryEnterpriseInstance(\"example\", RegistryEnterpriseInstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .period(1)\n            .renewPeriod(0)\n            .renewalStatus(\"ManualRenewal\")\n            .instanceType(\"Advanced\")\n            .instanceName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var exampleChartNamespace = new ChartNamespace(\"exampleChartNamespace\", ChartNamespaceArgs.builder()\n            .instanceId(example.id())\n            .namespaceName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var exampleChartRepository = new ChartRepository(\"exampleChartRepository\", ChartRepositoryArgs.builder()\n            .repoNamespaceName(exampleChartNamespace.namespaceName())\n            .instanceId(exampleChartNamespace.instanceId())\n            .repoName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 100000\n      max: 999999\n  example:\n    type: alicloud:cr:RegistryEnterpriseInstance\n    properties:\n      paymentType: Subscription\n      period: 1\n      renewPeriod: 0\n      renewalStatus: ManualRenewal\n      instanceType: Advanced\n      instanceName: ${name}-${default.result}\n  exampleChartNamespace:\n    type: alicloud:cr:ChartNamespace\n    name: example\n    properties:\n      instanceId: ${example.id}\n      namespaceName: ${name}-${default.result}\n  exampleChartRepository:\n    type: alicloud:cr:ChartRepository\n    name: example\n    properties:\n      repoNamespaceName: ${exampleChartNamespace.namespaceName}\n      instanceId: ${exampleChartNamespace.instanceId}\n      repoName: ${name}-${default.result}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCR Chart Repository can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cr/chartRepository:ChartRepository example \u003cinstance_id\u003e:\u003crepo_namespace_name\u003e:\u003crepo_name\u003e\n```\n\n","properties":{"instanceId":{"type":"string","description":"The ID of the Container Registry instance.\n"},"repoName":{"type":"string","description":"The name of the repository that you want to create.\n"},"repoNamespaceName":{"type":"string","description":"The namespace to which the repository belongs.\n"},"repoType":{"type":"string","description":"The default repository type. Valid values: `PUBLIC`,`PRIVATE`.\n"},"summary":{"type":"string","description":"The summary about the repository.\n"}},"required":["instanceId","repoName","repoNamespaceName","repoType"],"inputProperties":{"instanceId":{"type":"string","description":"The ID of the Container Registry instance.\n","willReplaceOnChanges":true},"repoName":{"type":"string","description":"The name of the repository that you want to create.\n","willReplaceOnChanges":true},"repoNamespaceName":{"type":"string","description":"The namespace to which the repository belongs.\n","willReplaceOnChanges":true},"repoType":{"type":"string","description":"The default repository type. Valid values: `PUBLIC`,`PRIVATE`.\n"},"summary":{"type":"string","description":"The summary about the repository.\n"}},"requiredInputs":["instanceId","repoName","repoNamespaceName"],"stateInputs":{"description":"Input properties used for looking up and filtering ChartRepository resources.\n","properties":{"instanceId":{"type":"string","description":"The ID of the Container Registry instance.\n","willReplaceOnChanges":true},"repoName":{"type":"string","description":"The name of the repository that you want to create.\n","willReplaceOnChanges":true},"repoNamespaceName":{"type":"string","description":"The namespace to which the repository belongs.\n","willReplaceOnChanges":true},"repoType":{"type":"string","description":"The default repository type. Valid values: `PUBLIC`,`PRIVATE`.\n"},"summary":{"type":"string","description":"The summary about the repository.\n"}},"type":"object"}},"alicloud:cr/endpointAclPolicy:EndpointAclPolicy":{"description":"Provides a CR Endpoint Acl Policy resource.\n\nFor information about CR Endpoint Acl Policy and how to use it, see [What is Endpoint Acl Policy](https://www.alibabacloud.com/help/doc-detail/145275.htm).\n\n\u003e **NOTE:** Available since v1.139.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000000,\n    max: 99999999,\n});\nconst defaultRegistryEnterpriseInstance = new alicloud.cr.RegistryEnterpriseInstance(\"default\", {\n    paymentType: \"Subscription\",\n    period: 1,\n    renewalStatus: \"ManualRenewal\",\n    instanceType: \"Advanced\",\n    instanceName: `${name}-${defaultInteger.result}`,\n});\nconst _default = alicloud.cr.getEndpointAclServiceOutput({\n    endpointType: \"internet\",\n    enable: true,\n    instanceId: defaultRegistryEnterpriseInstance.id,\n    moduleName: \"Registry\",\n});\nconst defaultEndpointAclPolicy = new alicloud.cr.EndpointAclPolicy(\"default\", {\n    instanceId: _default.apply(_default =\u003e _default.instanceId),\n    entry: \"192.168.1.0/24\",\n    description: name,\n    moduleName: \"Registry\",\n    endpointType: \"internet\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000000,\n    max=99999999)\ndefault_registry_enterprise_instance = alicloud.cr.RegistryEnterpriseInstance(\"default\",\n    payment_type=\"Subscription\",\n    period=1,\n    renewal_status=\"ManualRenewal\",\n    instance_type=\"Advanced\",\n    instance_name=f\"{name}-{default_integer['result']}\")\ndefault = alicloud.cr.get_endpoint_acl_service_output(endpoint_type=\"internet\",\n    enable=True,\n    instance_id=default_registry_enterprise_instance.id,\n    module_name=\"Registry\")\ndefault_endpoint_acl_policy = alicloud.cr.EndpointAclPolicy(\"default\",\n    instance_id=default.instance_id,\n    entry=\"192.168.1.0/24\",\n    description=name,\n    module_name=\"Registry\",\n    endpoint_type=\"internet\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000000,\n        Max = 99999999,\n    });\n\n    var defaultRegistryEnterpriseInstance = new AliCloud.CR.RegistryEnterpriseInstance(\"default\", new()\n    {\n        PaymentType = \"Subscription\",\n        Period = 1,\n        RenewalStatus = \"ManualRenewal\",\n        InstanceType = \"Advanced\",\n        InstanceName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var @default = AliCloud.CR.GetEndpointAclService.Invoke(new()\n    {\n        EndpointType = \"internet\",\n        Enable = true,\n        InstanceId = defaultRegistryEnterpriseInstance.Id,\n        ModuleName = \"Registry\",\n    });\n\n    var defaultEndpointAclPolicy = new AliCloud.CR.EndpointAclPolicy(\"default\", new()\n    {\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getEndpointAclServiceResult =\u003e getEndpointAclServiceResult.InstanceId)),\n        Entry = \"192.168.1.0/24\",\n        Description = name,\n        ModuleName = \"Registry\",\n        EndpointType = \"internet\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"tf-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMin: 10000000,\nMax: 99999999,\n})\nif err != nil {\nreturn err\n}\ndefaultRegistryEnterpriseInstance, err := cr.NewRegistryEnterpriseInstance(ctx, \"default\", \u0026cr.RegistryEnterpriseInstanceArgs{\nPaymentType: pulumi.String(\"Subscription\"),\nPeriod: pulumi.Int(1),\nRenewalStatus: pulumi.String(\"ManualRenewal\"),\nInstanceType: pulumi.String(\"Advanced\"),\nInstanceName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\n_default := cr.GetEndpointAclServiceOutput(ctx, cr.GetEndpointAclServiceOutputArgs{\nEndpointType: pulumi.String(\"internet\"),\nEnable: pulumi.Bool(true),\nInstanceId: defaultRegistryEnterpriseInstance.ID(),\nModuleName: pulumi.String(\"Registry\"),\n}, nil);\n_, err = cr.NewEndpointAclPolicy(ctx, \"default\", \u0026cr.EndpointAclPolicyArgs{\nInstanceId: pulumi.String(_default.ApplyT(func(_default cr.GetEndpointAclServiceResult) (*string, error) {\nreturn \u0026default.InstanceId, nil\n}).(pulumi.StringPtrOutput)),\nEntry: pulumi.String(\"192.168.1.0/24\"),\nDescription: pulumi.String(name),\nModuleName: pulumi.String(\"Registry\"),\nEndpointType: pulumi.String(\"internet\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstance;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstanceArgs;\nimport com.pulumi.alicloud.cr.CrFunctions;\nimport com.pulumi.alicloud.cr.inputs.GetEndpointAclServiceArgs;\nimport com.pulumi.alicloud.cr.EndpointAclPolicy;\nimport com.pulumi.alicloud.cr.EndpointAclPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000000)\n            .max(99999999)\n            .build());\n\n        var defaultRegistryEnterpriseInstance = new RegistryEnterpriseInstance(\"defaultRegistryEnterpriseInstance\", RegistryEnterpriseInstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .period(1)\n            .renewalStatus(\"ManualRenewal\")\n            .instanceType(\"Advanced\")\n            .instanceName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        final var default = CrFunctions.getEndpointAclService(GetEndpointAclServiceArgs.builder()\n            .endpointType(\"internet\")\n            .enable(true)\n            .instanceId(defaultRegistryEnterpriseInstance.id())\n            .moduleName(\"Registry\")\n            .build());\n\n        var defaultEndpointAclPolicy = new EndpointAclPolicy(\"defaultEndpointAclPolicy\", EndpointAclPolicyArgs.builder()\n            .instanceId(default_.applyValue(_default_ -\u003e _default_.instanceId()))\n            .entry(\"192.168.1.0/24\")\n            .description(name)\n            .moduleName(\"Registry\")\n            .endpointType(\"internet\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 1e+07\n      max: 9.9999999e+07\n  defaultRegistryEnterpriseInstance:\n    type: alicloud:cr:RegistryEnterpriseInstance\n    name: default\n    properties:\n      paymentType: Subscription\n      period: 1\n      renewalStatus: ManualRenewal\n      instanceType: Advanced\n      instanceName: ${name}-${defaultInteger.result}\n  defaultEndpointAclPolicy:\n    type: alicloud:cr:EndpointAclPolicy\n    name: default\n    properties:\n      instanceId: ${default.instanceId}\n      entry: 192.168.1.0/24\n      description: ${name}\n      moduleName: Registry\n      endpointType: internet\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cr:getEndpointAclService\n      arguments:\n        endpointType: internet\n        enable: true\n        instanceId: ${defaultRegistryEnterpriseInstance.id}\n        moduleName: Registry\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCR Endpoint Acl Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cr/endpointAclPolicy:EndpointAclPolicy example \u003cinstance_id\u003e:\u003cendpoint_type\u003e:\u003centry\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the entry.\n"},"endpointType":{"type":"string","description":"The type of endpoint. Valid values: \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e.\n"},"entry":{"type":"string","description":"The IP segment that allowed to access.\n"},"instanceId":{"type":"string","description":"The ID of the CR Instance.\n"},"moduleName":{"type":"string","description":"The module that needs to set the access policy. Valid values: `Registry`.\n"}},"required":["endpointType","entry","instanceId"],"inputProperties":{"description":{"type":"string","description":"The description of the entry.\n","willReplaceOnChanges":true},"endpointType":{"type":"string","description":"The type of endpoint. Valid values: \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e.\n","willReplaceOnChanges":true},"entry":{"type":"string","description":"The IP segment that allowed to access.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the CR Instance.\n","willReplaceOnChanges":true},"moduleName":{"type":"string","description":"The module that needs to set the access policy. Valid values: `Registry`.\n","willReplaceOnChanges":true}},"requiredInputs":["endpointType","entry","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering EndpointAclPolicy resources.\n","properties":{"description":{"type":"string","description":"The description of the entry.\n","willReplaceOnChanges":true},"endpointType":{"type":"string","description":"The type of endpoint. Valid values: \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e.\n","willReplaceOnChanges":true},"entry":{"type":"string","description":"The IP segment that allowed to access.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the CR Instance.\n","willReplaceOnChanges":true},"moduleName":{"type":"string","description":"The module that needs to set the access policy. Valid values: `Registry`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cr/namespace:Namespace":{"description":"This resource will help you to manager Container Registry namespaces, see [What is Namespace](https://www.alibabacloud.com/help/en/acr/developer-reference/api-cr-2018-12-01-createnamespace).\n\n\u003e **NOTE:** Available since v1.34.0.\n\n\u003e **NOTE:** You need to set your registry password in Container Registry console before use this resource.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000000,\n    max: 99999999,\n});\nconst example = new alicloud.cr.Namespace(\"example\", {\n    name: `${name}-${_default.result}`,\n    autoCreate: false,\n    defaultVisibility: \"PUBLIC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000000,\n    max=99999999)\nexample = alicloud.cr.Namespace(\"example\",\n    name=f\"{name}-{default['result']}\",\n    auto_create=False,\n    default_visibility=\"PUBLIC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000000,\n        Max = 99999999,\n    });\n\n    var example = new AliCloud.CR.Namespace(\"example\", new()\n    {\n        Name = $\"{name}-{@default.Result}\",\n        AutoCreate = false,\n        DefaultVisibility = \"PUBLIC\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000000,\n\t\t\tMax: 99999999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cr.NewNamespace(ctx, \"example\", \u0026cr.NamespaceArgs{\n\t\t\tName:              pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tAutoCreate:        pulumi.Bool(false),\n\t\t\tDefaultVisibility: pulumi.String(\"PUBLIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cr.Namespace;\nimport com.pulumi.alicloud.cr.NamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000000)\n            .max(99999999)\n            .build());\n\n        var example = new Namespace(\"example\", NamespaceArgs.builder()\n            .name(String.format(\"%s-%s\", name,default_.result()))\n            .autoCreate(false)\n            .defaultVisibility(\"PUBLIC\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 1e+07\n      max: 9.9999999e+07\n  example:\n    type: alicloud:cr:Namespace\n    properties:\n      name: ${name}-${default.result}\n      autoCreate: false\n      defaultVisibility: PUBLIC\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nContainer Registry namespace can be imported using the namespace, e.g.\n\n```sh\n$ pulumi import alicloud:cr/namespace:Namespace default my-namespace\n```\n\n","properties":{"autoCreate":{"type":"boolean","description":"Boolean, when it set to true, repositories are automatically created when pushing new images. If it set to false, you create repository for images before pushing.\n"},"defaultVisibility":{"type":"string","description":"`PUBLIC` or `PRIVATE`, default repository visibility in this namespace.\n"},"name":{"type":"string","description":"Name of Container Registry namespace.\n"}},"required":["autoCreate","defaultVisibility","name"],"inputProperties":{"autoCreate":{"type":"boolean","description":"Boolean, when it set to true, repositories are automatically created when pushing new images. If it set to false, you create repository for images before pushing.\n"},"defaultVisibility":{"type":"string","description":"`PUBLIC` or `PRIVATE`, default repository visibility in this namespace.\n"},"name":{"type":"string","description":"Name of Container Registry namespace.\n","willReplaceOnChanges":true}},"requiredInputs":["autoCreate","defaultVisibility"],"stateInputs":{"description":"Input properties used for looking up and filtering Namespace resources.\n","properties":{"autoCreate":{"type":"boolean","description":"Boolean, when it set to true, repositories are automatically created when pushing new images. If it set to false, you create repository for images before pushing.\n"},"defaultVisibility":{"type":"string","description":"`PUBLIC` or `PRIVATE`, default repository visibility in this namespace.\n"},"name":{"type":"string","description":"Name of Container Registry namespace.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cr/registryEnterpriseInstance:RegistryEnterpriseInstance":{"description":"Provides a CR Instance resource.\n\n\nFor information about Container Registry Instance and how to use it, see [What is Container Registry](https://www.alibabacloud.com/help/en/acr/product-overview/what-is-container-registry).\n\nFor information about CR Instance and how to use it, see [What is Instance](https://www.alibabacloud.com/help/en/doc-detail/208144.htm).\n\n\u003e **NOTE:** Available since v1.124.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000000,\n    max: 99999999,\n});\nconst defaultRegistryEnterpriseInstance = new alicloud.cr.RegistryEnterpriseInstance(\"default\", {\n    paymentType: \"Subscription\",\n    period: 1,\n    renewPeriod: 1,\n    renewalStatus: \"AutoRenewal\",\n    instanceType: \"Advanced\",\n    instanceName: `${name}-${_default.result}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000000,\n    max=99999999)\ndefault_registry_enterprise_instance = alicloud.cr.RegistryEnterpriseInstance(\"default\",\n    payment_type=\"Subscription\",\n    period=1,\n    renew_period=1,\n    renewal_status=\"AutoRenewal\",\n    instance_type=\"Advanced\",\n    instance_name=f\"{name}-{default['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000000,\n        Max = 99999999,\n    });\n\n    var defaultRegistryEnterpriseInstance = new AliCloud.CR.RegistryEnterpriseInstance(\"default\", new()\n    {\n        PaymentType = \"Subscription\",\n        Period = 1,\n        RenewPeriod = 1,\n        RenewalStatus = \"AutoRenewal\",\n        InstanceType = \"Advanced\",\n        InstanceName = $\"{name}-{@default.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000000,\n\t\t\tMax: 99999999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cr.NewRegistryEnterpriseInstance(ctx, \"default\", \u0026cr.RegistryEnterpriseInstanceArgs{\n\t\t\tPaymentType:   pulumi.String(\"Subscription\"),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t\tRenewPeriod:   pulumi.Int(1),\n\t\t\tRenewalStatus: pulumi.String(\"AutoRenewal\"),\n\t\t\tInstanceType:  pulumi.String(\"Advanced\"),\n\t\t\tInstanceName:  pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstance;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000000)\n            .max(99999999)\n            .build());\n\n        var defaultRegistryEnterpriseInstance = new RegistryEnterpriseInstance(\"defaultRegistryEnterpriseInstance\", RegistryEnterpriseInstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .period(1)\n            .renewPeriod(1)\n            .renewalStatus(\"AutoRenewal\")\n            .instanceType(\"Advanced\")\n            .instanceName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 1e+07\n      max: 9.9999999e+07\n  defaultRegistryEnterpriseInstance:\n    type: alicloud:cr:RegistryEnterpriseInstance\n    name: default\n    properties:\n      paymentType: Subscription\n      period: 1\n      renewPeriod: 1\n      renewalStatus: AutoRenewal\n      instanceType: Advanced\n      instanceName: ${name}-${default.result}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCR Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cr/registryEnterpriseInstance:RegistryEnterpriseInstance example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"createdTime":{"type":"string","description":". Field 'created_time' has been deprecated from provider version 1.235.0. New field 'create_time' instead.\n","deprecationMessage":"Field 'created_time' has been deprecated since provider version 1.235.0. New field 'create_time' instead."},"customOssBucket":{"type":"string","description":"Custom OSS Bucket name\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"defaultOssBucket":{"type":"string","description":"Whether to use the default OSS Bucket. Value:\n"},"endTime":{"type":"string","description":"Expiration Time\n"},"imageScanner":{"type":"string","description":"The security scan engine used by the Enterprise Edition of Container Image Service. Value:\n- `ACR`: Uses the Trivy scan engine provided by default.\n- `SAS`: uses the enhanced cloud security scan engine.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"instanceEndpoints":{"type":"array","items":{"$ref":"#/types/alicloud:cr/RegistryEnterpriseInstanceInstanceEndpoint:RegistryEnterpriseInstanceInstanceEndpoint"},"description":"(Available since v1.240.0) Instance Network Access Endpoint List\n"},"instanceName":{"type":"string","description":"InstanceName\n"},"instanceType":{"type":"string","description":"The Value configuration of the Group 1 attribute of Container Mirror Service Enterprise Edition. Valid values:\n- `Basic`: Basic instance\n- `Standard`: Standard instance\n- `Advanced`: Advanced Edition Instance\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to an instance. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"namespaceQuota":{"type":"integer","description":"The number of additional namespaces to purchase. The value is an integral multiple of \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"password":{"type":"string","description":"Login password, 8-32 digits, must contain at least two letters, symbols, or numbers\n","secret":true},"paymentType":{"type":"string","description":"Payment type, value:\n- Subscription: Prepaid.\n"},"period":{"type":"integer","description":"Prepaid cycle. The unit is Monthly, please enter an integer multiple of 12 for annual paid products.\n\n\u003e **NOTE:**  must be set when creating a prepaid instance.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"regionId":{"type":"string","description":"RegionId\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal cycle, in months.\n\n\u003e **NOTE:**  When `RenewalStatus` is set to `AutoRenewal`, it must be set.\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status, value:\n- AutoRenewal: automatic renewal.\n- ManualRenewal: manual renewal.\n\nDefault ManualRenewal.\n"},"repoQuota":{"type":"integer","description":"The number of additional repositories to purchase. The value is an integral multiple of \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"Instance Status\n"},"vpcQuota":{"type":"integer","description":"The number of VPC access controls.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["createTime","createdTime","endTime","instanceEndpoints","instanceName","instanceType","paymentType","regionId","renewalStatus","resourceGroupId","status"],"inputProperties":{"customOssBucket":{"type":"string","description":"Custom OSS Bucket name\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"defaultOssBucket":{"type":"string","description":"Whether to use the default OSS Bucket. Value:\n"},"imageScanner":{"type":"string","description":"The security scan engine used by the Enterprise Edition of Container Image Service. Value:\n- `ACR`: Uses the Trivy scan engine provided by default.\n- `SAS`: uses the enhanced cloud security scan engine.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"instanceName":{"type":"string","description":"InstanceName\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The Value configuration of the Group 1 attribute of Container Mirror Service Enterprise Edition. Valid values:\n- `Basic`: Basic instance\n- `Standard`: Standard instance\n- `Advanced`: Advanced Edition Instance\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to an instance. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"namespaceQuota":{"type":"integer","description":"The number of additional namespaces to purchase. The value is an integral multiple of \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"password":{"type":"string","description":"Login password, 8-32 digits, must contain at least two letters, symbols, or numbers\n","secret":true},"paymentType":{"type":"string","description":"Payment type, value:\n- Subscription: Prepaid.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Prepaid cycle. The unit is Monthly, please enter an integer multiple of 12 for annual paid products.\n\n\u003e **NOTE:**  must be set when creating a prepaid instance.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal cycle, in months.\n\n\u003e **NOTE:**  When `RenewalStatus` is set to `AutoRenewal`, it must be set.\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Automatic renewal status, value:\n- AutoRenewal: automatic renewal.\n- ManualRenewal: manual renewal.\n\nDefault ManualRenewal.\n","willReplaceOnChanges":true},"repoQuota":{"type":"integer","description":"The number of additional repositories to purchase. The value is an integral multiple of \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"vpcQuota":{"type":"integer","description":"The number of VPC access controls.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"requiredInputs":["instanceName","instanceType","paymentType"],"stateInputs":{"description":"Input properties used for looking up and filtering RegistryEnterpriseInstance resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"createdTime":{"type":"string","description":". Field 'created_time' has been deprecated from provider version 1.235.0. New field 'create_time' instead.\n","deprecationMessage":"Field 'created_time' has been deprecated since provider version 1.235.0. New field 'create_time' instead."},"customOssBucket":{"type":"string","description":"Custom OSS Bucket name\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"defaultOssBucket":{"type":"string","description":"Whether to use the default OSS Bucket. Value:\n"},"endTime":{"type":"string","description":"Expiration Time\n"},"imageScanner":{"type":"string","description":"The security scan engine used by the Enterprise Edition of Container Image Service. Value:\n- `ACR`: Uses the Trivy scan engine provided by default.\n- `SAS`: uses the enhanced cloud security scan engine.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"instanceEndpoints":{"type":"array","items":{"$ref":"#/types/alicloud:cr/RegistryEnterpriseInstanceInstanceEndpoint:RegistryEnterpriseInstanceInstanceEndpoint"},"description":"(Available since v1.240.0) Instance Network Access Endpoint List\n"},"instanceName":{"type":"string","description":"InstanceName\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The Value configuration of the Group 1 attribute of Container Mirror Service Enterprise Edition. Valid values:\n- `Basic`: Basic instance\n- `Standard`: Standard instance\n- `Advanced`: Advanced Edition Instance\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to an instance. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"namespaceQuota":{"type":"integer","description":"The number of additional namespaces to purchase. The value is an integral multiple of \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"password":{"type":"string","description":"Login password, 8-32 digits, must contain at least two letters, symbols, or numbers\n","secret":true},"paymentType":{"type":"string","description":"Payment type, value:\n- Subscription: Prepaid.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Prepaid cycle. The unit is Monthly, please enter an integer multiple of 12 for annual paid products.\n\n\u003e **NOTE:**  must be set when creating a prepaid instance.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"regionId":{"type":"string","description":"RegionId\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal cycle, in months.\n\n\u003e **NOTE:**  When `RenewalStatus` is set to `AutoRenewal`, it must be set.\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Automatic renewal status, value:\n- AutoRenewal: automatic renewal.\n- ManualRenewal: manual renewal.\n\nDefault ManualRenewal.\n","willReplaceOnChanges":true},"repoQuota":{"type":"integer","description":"The number of additional repositories to purchase. The value is an integral multiple of \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"Instance Status\n"},"vpcQuota":{"type":"integer","description":"The number of VPC access controls.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"type":"object"}},"alicloud:cr/repo:Repo":{"description":"This resource will help you to manager Container Registry repositories, see [What is Repository](https://www.alibabacloud.com/help/en/acr/developer-reference/api-cr-2018-12-01-createrepository).\n\n\u003e **NOTE:** Available since v1.35.0.\n\n\u003e **NOTE:** You need to set your registry password in Container Registry console before use this resource.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst example = new alicloud.cr.Namespace(\"example\", {\n    name: name,\n    autoCreate: false,\n    defaultVisibility: \"PUBLIC\",\n});\nconst exampleRepo = new alicloud.cr.Repo(\"example\", {\n    namespace: example.name,\n    name: name,\n    summary: \"this is summary of my new repo\",\n    repoType: \"PRIVATE\",\n    detail: \"this is a private repo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nexample = alicloud.cr.Namespace(\"example\",\n    name=name,\n    auto_create=False,\n    default_visibility=\"PUBLIC\")\nexample_repo = alicloud.cr.Repo(\"example\",\n    namespace=example.name,\n    name=name,\n    summary=\"this is summary of my new repo\",\n    repo_type=\"PRIVATE\",\n    detail=\"this is a private repo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var example = new AliCloud.CR.Namespace(\"example\", new()\n    {\n        Name = name,\n        AutoCreate = false,\n        DefaultVisibility = \"PUBLIC\",\n    });\n\n    var exampleRepo = new AliCloud.CR.Repo(\"example\", new()\n    {\n        Namespace = example.Name,\n        Name = name,\n        Summary = \"this is summary of my new repo\",\n        RepoType = \"PRIVATE\",\n        Detail = \"this is a private repo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := cr.NewNamespace(ctx, \"example\", \u0026cr.NamespaceArgs{\n\t\t\tName:              pulumi.String(name),\n\t\t\tAutoCreate:        pulumi.Bool(false),\n\t\t\tDefaultVisibility: pulumi.String(\"PUBLIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cr.NewRepo(ctx, \"example\", \u0026cr.RepoArgs{\n\t\t\tNamespace: example.Name,\n\t\t\tName:      pulumi.String(name),\n\t\t\tSummary:   pulumi.String(\"this is summary of my new repo\"),\n\t\t\tRepoType:  pulumi.String(\"PRIVATE\"),\n\t\t\tDetail:    pulumi.String(\"this is a private repo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cr.Namespace;\nimport com.pulumi.alicloud.cr.NamespaceArgs;\nimport com.pulumi.alicloud.cr.Repo;\nimport com.pulumi.alicloud.cr.RepoArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var example = new Namespace(\"example\", NamespaceArgs.builder()\n            .name(name)\n            .autoCreate(false)\n            .defaultVisibility(\"PUBLIC\")\n            .build());\n\n        var exampleRepo = new Repo(\"exampleRepo\", RepoArgs.builder()\n            .namespace(example.name())\n            .name(name)\n            .summary(\"this is summary of my new repo\")\n            .repoType(\"PRIVATE\")\n            .detail(\"this is a private repo\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  example:\n    type: alicloud:cr:Namespace\n    properties:\n      name: ${name}\n      autoCreate: false\n      defaultVisibility: PUBLIC\n  exampleRepo:\n    type: alicloud:cr:Repo\n    name: example\n    properties:\n      namespace: ${example.name}\n      name: ${name}\n      summary: this is summary of my new repo\n      repoType: PRIVATE\n      detail: this is a private repo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nContainer Registry repository can be imported using the `namespace/repository`, e.g.\n\n```sh\n$ pulumi import alicloud:cr/repo:Repo default `my-namespace/my-repo`\n```\n\n","properties":{"detail":{"type":"string","description":"The repository specific information. MarkDown format is supported, and the length limit is 2000.\n"},"domainList":{"$ref":"#/types/alicloud:cr/RepoDomainList:RepoDomainList","description":"(Optional) The repository domain list.\n"},"name":{"type":"string","description":"Name of container registry repository.\n"},"namespace":{"type":"string","description":"Name of container registry namespace where repository is located.\n"},"repoType":{"type":"string","description":"`PUBLIC` or `PRIVATE`, repo's visibility.\n"},"summary":{"type":"string","description":"The repository general information. It can contain 1 to 80 characters.\n"}},"required":["domainList","name","namespace","repoType","summary"],"inputProperties":{"detail":{"type":"string","description":"The repository specific information. MarkDown format is supported, and the length limit is 2000.\n"},"name":{"type":"string","description":"Name of container registry repository.\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"Name of container registry namespace where repository is located.\n","willReplaceOnChanges":true},"repoType":{"type":"string","description":"`PUBLIC` or `PRIVATE`, repo's visibility.\n"},"summary":{"type":"string","description":"The repository general information. It can contain 1 to 80 characters.\n"}},"requiredInputs":["namespace","repoType","summary"],"stateInputs":{"description":"Input properties used for looking up and filtering Repo resources.\n","properties":{"detail":{"type":"string","description":"The repository specific information. MarkDown format is supported, and the length limit is 2000.\n"},"domainList":{"$ref":"#/types/alicloud:cr/RepoDomainList:RepoDomainList","description":"(Optional) The repository domain list.\n"},"name":{"type":"string","description":"Name of container registry repository.\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"Name of container registry namespace where repository is located.\n","willReplaceOnChanges":true},"repoType":{"type":"string","description":"`PUBLIC` or `PRIVATE`, repo's visibility.\n"},"summary":{"type":"string","description":"The repository general information. It can contain 1 to 80 characters.\n"}},"type":"object"}},"alicloud:cr/scanRule:ScanRule":{"description":"Provides a CR Scan Rule resource.\n\nArtifact Scan Rule.\n\nFor information about CR Scan Rule and how to use it, see [What is Scan Rule](https://next.api.alibabacloud.com/document/cr/2018-12-01/CreateScanRule).\n\n\u003e **NOTE:** Available since v1.265.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst default2Aqoce = new alicloud.cr.RegistryEnterpriseInstance(\"default2Aqoce\", {\n    defaultOssBucket: \"false\",\n    renewalStatus: \"ManualRenewal\",\n    period: 1,\n    instanceName: \"pl-example-2\",\n    paymentType: \"Subscription\",\n    instanceType: \"Basic\",\n});\nconst _default = new alicloud.cr.ScanRule(\"default\", {\n    repoTagFilterPattern: \".*\",\n    scanScope: \"REPO\",\n    triggerType: \"MANUAL\",\n    scanType: \"VUL\",\n    ruleName: name,\n    namespaces: [\"aa\"],\n    repoNames: [\n        \"bb\",\n        \"cc\",\n        \"dd\",\n        \"ee\",\n    ],\n    instanceId: default2Aqoce.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault2_aqoce = alicloud.cr.RegistryEnterpriseInstance(\"default2Aqoce\",\n    default_oss_bucket=\"false\",\n    renewal_status=\"ManualRenewal\",\n    period=1,\n    instance_name=\"pl-example-2\",\n    payment_type=\"Subscription\",\n    instance_type=\"Basic\")\ndefault = alicloud.cr.ScanRule(\"default\",\n    repo_tag_filter_pattern=\".*\",\n    scan_scope=\"REPO\",\n    trigger_type=\"MANUAL\",\n    scan_type=\"VUL\",\n    rule_name=name,\n    namespaces=[\"aa\"],\n    repo_names=[\n        \"bb\",\n        \"cc\",\n        \"dd\",\n        \"ee\",\n    ],\n    instance_id=default2_aqoce.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var default2Aqoce = new AliCloud.CR.RegistryEnterpriseInstance(\"default2Aqoce\", new()\n    {\n        DefaultOssBucket = \"false\",\n        RenewalStatus = \"ManualRenewal\",\n        Period = 1,\n        InstanceName = \"pl-example-2\",\n        PaymentType = \"Subscription\",\n        InstanceType = \"Basic\",\n    });\n\n    var @default = new AliCloud.CR.ScanRule(\"default\", new()\n    {\n        RepoTagFilterPattern = \".*\",\n        ScanScope = \"REPO\",\n        TriggerType = \"MANUAL\",\n        ScanType = \"VUL\",\n        RuleName = name,\n        Namespaces = new[]\n        {\n            \"aa\",\n        },\n        RepoNames = new[]\n        {\n            \"bb\",\n            \"cc\",\n            \"dd\",\n            \"ee\",\n        },\n        InstanceId = default2Aqoce.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefault2Aqoce, err := cr.NewRegistryEnterpriseInstance(ctx, \"default2Aqoce\", \u0026cr.RegistryEnterpriseInstanceArgs{\n\t\t\tDefaultOssBucket: pulumi.String(\"false\"),\n\t\t\tRenewalStatus:    pulumi.String(\"ManualRenewal\"),\n\t\t\tPeriod:           pulumi.Int(1),\n\t\t\tInstanceName:     pulumi.String(\"pl-example-2\"),\n\t\t\tPaymentType:      pulumi.String(\"Subscription\"),\n\t\t\tInstanceType:     pulumi.String(\"Basic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cr.NewScanRule(ctx, \"default\", \u0026cr.ScanRuleArgs{\n\t\t\tRepoTagFilterPattern: pulumi.String(\".*\"),\n\t\t\tScanScope:            pulumi.String(\"REPO\"),\n\t\t\tTriggerType:          pulumi.String(\"MANUAL\"),\n\t\t\tScanType:             pulumi.String(\"VUL\"),\n\t\t\tRuleName:             pulumi.String(name),\n\t\t\tNamespaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aa\"),\n\t\t\t},\n\t\t\tRepoNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"bb\"),\n\t\t\t\tpulumi.String(\"cc\"),\n\t\t\t\tpulumi.String(\"dd\"),\n\t\t\t\tpulumi.String(\"ee\"),\n\t\t\t},\n\t\t\tInstanceId: default2Aqoce.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstance;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstanceArgs;\nimport com.pulumi.alicloud.cr.ScanRule;\nimport com.pulumi.alicloud.cr.ScanRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default2Aqoce = new RegistryEnterpriseInstance(\"default2Aqoce\", RegistryEnterpriseInstanceArgs.builder()\n            .defaultOssBucket(\"false\")\n            .renewalStatus(\"ManualRenewal\")\n            .period(1)\n            .instanceName(\"pl-example-2\")\n            .paymentType(\"Subscription\")\n            .instanceType(\"Basic\")\n            .build());\n\n        var default_ = new ScanRule(\"default\", ScanRuleArgs.builder()\n            .repoTagFilterPattern(\".*\")\n            .scanScope(\"REPO\")\n            .triggerType(\"MANUAL\")\n            .scanType(\"VUL\")\n            .ruleName(name)\n            .namespaces(\"aa\")\n            .repoNames(            \n                \"bb\",\n                \"cc\",\n                \"dd\",\n                \"ee\")\n            .instanceId(default2Aqoce.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default2Aqoce:\n    type: alicloud:cr:RegistryEnterpriseInstance\n    properties:\n      defaultOssBucket: 'false'\n      renewalStatus: ManualRenewal\n      period: '1'\n      instanceName: pl-example-2\n      paymentType: Subscription\n      instanceType: Basic\n  default:\n    type: alicloud:cr:ScanRule\n    properties:\n      repoTagFilterPattern: .*\n      scanScope: REPO\n      triggerType: MANUAL\n      scanType: VUL\n      ruleName: ${name}\n      namespaces:\n        - aa\n      repoNames:\n        - bb\n        - cc\n        - dd\n        - ee\n      instanceId: ${default2Aqoce.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCR Scan Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cr/scanRule:ScanRule example \u003cinstance_id\u003e:\u003cscan_rule_id\u003e\n```\n\n","properties":{"createTime":{"type":"integer","description":"Creation time\n"},"instanceId":{"type":"string","description":"Instance ID\n"},"namespaces":{"type":"array","items":{"type":"string"},"description":"Set of namespaces:  \n- This parameter must not be empty when the scan scope is NAMESPACE.\n- This parameter must contain exactly one namespace when the scan scope is REPO.\n"},"repoNames":{"type":"array","items":{"type":"string"},"description":"Repository list:  \n- This parameter must be empty when the scan scope is NAMESPACE.\n- This parameter must not be empty when the scan scope is REPO.\n"},"repoTagFilterPattern":{"type":"string","description":"Regular expression for matching tags that trigger a scan\n"},"ruleName":{"type":"string","description":"Event rule name\n"},"scanRuleId":{"type":"string","description":"Rule ID\n"},"scanScope":{"type":"string","description":"Scan scope\n"},"scanType":{"type":"string","description":"Scan type:  \n- `VUL`: Artifact vulnerability scan\n- `SBOM`: Artifact content analysis\n\nThe default value of this parameter is `VUL`.\n"},"triggerType":{"type":"string","description":"Trigger type\n"}},"required":["createTime","instanceId","repoTagFilterPattern","ruleName","scanRuleId","scanScope","scanType","triggerType"],"inputProperties":{"instanceId":{"type":"string","description":"Instance ID\n","willReplaceOnChanges":true},"namespaces":{"type":"array","items":{"type":"string"},"description":"Set of namespaces:  \n- This parameter must not be empty when the scan scope is NAMESPACE.\n- This parameter must contain exactly one namespace when the scan scope is REPO.\n"},"repoNames":{"type":"array","items":{"type":"string"},"description":"Repository list:  \n- This parameter must be empty when the scan scope is NAMESPACE.\n- This parameter must not be empty when the scan scope is REPO.\n"},"repoTagFilterPattern":{"type":"string","description":"Regular expression for matching tags that trigger a scan\n"},"ruleName":{"type":"string","description":"Event rule name\n"},"scanScope":{"type":"string","description":"Scan scope\n"},"scanType":{"type":"string","description":"Scan type:  \n- `VUL`: Artifact vulnerability scan\n- `SBOM`: Artifact content analysis\n\nThe default value of this parameter is `VUL`.\n","willReplaceOnChanges":true},"triggerType":{"type":"string","description":"Trigger type\n"}},"requiredInputs":["instanceId","repoTagFilterPattern","ruleName","scanScope","scanType","triggerType"],"stateInputs":{"description":"Input properties used for looking up and filtering ScanRule resources.\n","properties":{"createTime":{"type":"integer","description":"Creation time\n"},"instanceId":{"type":"string","description":"Instance ID\n","willReplaceOnChanges":true},"namespaces":{"type":"array","items":{"type":"string"},"description":"Set of namespaces:  \n- This parameter must not be empty when the scan scope is NAMESPACE.\n- This parameter must contain exactly one namespace when the scan scope is REPO.\n"},"repoNames":{"type":"array","items":{"type":"string"},"description":"Repository list:  \n- This parameter must be empty when the scan scope is NAMESPACE.\n- This parameter must not be empty when the scan scope is REPO.\n"},"repoTagFilterPattern":{"type":"string","description":"Regular expression for matching tags that trigger a scan\n"},"ruleName":{"type":"string","description":"Event rule name\n"},"scanRuleId":{"type":"string","description":"Rule ID\n"},"scanScope":{"type":"string","description":"Scan scope\n"},"scanType":{"type":"string","description":"Scan type:  \n- `VUL`: Artifact vulnerability scan\n- `SBOM`: Artifact content analysis\n\nThe default value of this parameter is `VUL`.\n","willReplaceOnChanges":true},"triggerType":{"type":"string","description":"Trigger type\n"}},"type":"object"}},"alicloud:cr/storageDomainRoutingRule:StorageDomainRoutingRule":{"description":"Provides a CR Storage Domain Routing Rule resource.\n\nInstance Storage Domain Routing Rule.\n\nFor information about CR Storage Domain Routing Rule and how to use it, see [What is Storage Domain Routing Rule](https://next.api.alibabacloud.com/document/cr/2018-12-01/CreateStorageDomainRoutingRule).\n\n\u003e **NOTE:** Available since v1.265.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cr.RegistryEnterpriseInstance(\"default\", {\n    paymentType: \"Subscription\",\n    period: 1,\n    renewPeriod: 1,\n    renewalStatus: \"AutoRenewal\",\n    instanceType: \"Advanced\",\n    instanceName: name,\n});\nconst defaultStorageDomainRoutingRule = new alicloud.cr.StorageDomainRoutingRule(\"default\", {\n    routes: [{\n        instanceDomain: pulumi.interpolate`${_default.instanceName}-registry-vpc.cn-hangzhou.cr.aliyuncs.com`,\n        storageDomain: pulumi.interpolate`https://${_default.id}-registry.oss-cn-hangzhou-internal.aliyuncs.com`,\n        endpointType: \"Internet\",\n    }],\n    instanceId: _default.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cr.RegistryEnterpriseInstance(\"default\",\n    payment_type=\"Subscription\",\n    period=1,\n    renew_period=1,\n    renewal_status=\"AutoRenewal\",\n    instance_type=\"Advanced\",\n    instance_name=name)\ndefault_storage_domain_routing_rule = alicloud.cr.StorageDomainRoutingRule(\"default\",\n    routes=[{\n        \"instance_domain\": default.instance_name.apply(lambda instance_name: f\"{instance_name}-registry-vpc.cn-hangzhou.cr.aliyuncs.com\"),\n        \"storage_domain\": default.id.apply(lambda id: f\"https://{id}-registry.oss-cn-hangzhou-internal.aliyuncs.com\"),\n        \"endpoint_type\": \"Internet\",\n    }],\n    instance_id=default.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.CR.RegistryEnterpriseInstance(\"default\", new()\n    {\n        PaymentType = \"Subscription\",\n        Period = 1,\n        RenewPeriod = 1,\n        RenewalStatus = \"AutoRenewal\",\n        InstanceType = \"Advanced\",\n        InstanceName = name,\n    });\n\n    var defaultStorageDomainRoutingRule = new AliCloud.CR.StorageDomainRoutingRule(\"default\", new()\n    {\n        Routes = new[]\n        {\n            new AliCloud.CR.Inputs.StorageDomainRoutingRuleRouteArgs\n            {\n                InstanceDomain = @default.InstanceName.Apply(instanceName =\u003e $\"{instanceName}-registry-vpc.cn-hangzhou.cr.aliyuncs.com\"),\n                StorageDomain = @default.Id.Apply(id =\u003e $\"https://{id}-registry.oss-cn-hangzhou-internal.aliyuncs.com\"),\n                EndpointType = \"Internet\",\n            },\n        },\n        InstanceId = @default.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cr.NewRegistryEnterpriseInstance(ctx, \"default\", \u0026cr.RegistryEnterpriseInstanceArgs{\n\t\t\tPaymentType:   pulumi.String(\"Subscription\"),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t\tRenewPeriod:   pulumi.Int(1),\n\t\t\tRenewalStatus: pulumi.String(\"AutoRenewal\"),\n\t\t\tInstanceType:  pulumi.String(\"Advanced\"),\n\t\t\tInstanceName:  pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cr.NewStorageDomainRoutingRule(ctx, \"default\", \u0026cr.StorageDomainRoutingRuleArgs{\n\t\t\tRoutes: cr.StorageDomainRoutingRuleRouteArray{\n\t\t\t\t\u0026cr.StorageDomainRoutingRuleRouteArgs{\n\t\t\t\t\tInstanceDomain: _default.InstanceName.ApplyT(func(instanceName string) (string, error) {\n\t\t\t\t\t\treturn fmt.Sprintf(\"%v-registry-vpc.cn-hangzhou.cr.aliyuncs.com\", instanceName), nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\tStorageDomain: _default.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\t\t\treturn fmt.Sprintf(\"https://%v-registry.oss-cn-hangzhou-internal.aliyuncs.com\", id), nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\tEndpointType: pulumi.String(\"Internet\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInstanceId: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstance;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstanceArgs;\nimport com.pulumi.alicloud.cr.StorageDomainRoutingRule;\nimport com.pulumi.alicloud.cr.StorageDomainRoutingRuleArgs;\nimport com.pulumi.alicloud.cr.inputs.StorageDomainRoutingRuleRouteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new RegistryEnterpriseInstance(\"default\", RegistryEnterpriseInstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .period(1)\n            .renewPeriod(1)\n            .renewalStatus(\"AutoRenewal\")\n            .instanceType(\"Advanced\")\n            .instanceName(name)\n            .build());\n\n        var defaultStorageDomainRoutingRule = new StorageDomainRoutingRule(\"defaultStorageDomainRoutingRule\", StorageDomainRoutingRuleArgs.builder()\n            .routes(StorageDomainRoutingRuleRouteArgs.builder()\n                .instanceDomain(default_.instanceName().applyValue(_instanceName -\u003e String.format(\"%s-registry-vpc.cn-hangzhou.cr.aliyuncs.com\", _instanceName)))\n                .storageDomain(default_.id().applyValue(_id -\u003e String.format(\"https://%s-registry.oss-cn-hangzhou-internal.aliyuncs.com\", _id)))\n                .endpointType(\"Internet\")\n                .build())\n            .instanceId(default_.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cr:RegistryEnterpriseInstance\n    properties:\n      paymentType: Subscription\n      period: 1\n      renewPeriod: 1\n      renewalStatus: AutoRenewal\n      instanceType: Advanced\n      instanceName: ${name}\n  defaultStorageDomainRoutingRule:\n    type: alicloud:cr:StorageDomainRoutingRule\n    name: default\n    properties:\n      routes:\n        - instanceDomain: ${default.instanceName}-registry-vpc.cn-hangzhou.cr.aliyuncs.com\n          storageDomain: https://${default.id}-registry.oss-cn-hangzhou-internal.aliyuncs.com\n          endpointType: Internet\n      instanceId: ${default.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCR Storage Domain Routing Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cr/storageDomainRoutingRule:StorageDomainRoutingRule example \u003cinstance_id\u003e:\u003crule_id\u003e\n```\n\n","properties":{"createTime":{"type":"integer","description":"The creation time of the resource.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry Instance.\n"},"routes":{"type":"array","items":{"$ref":"#/types/alicloud:cr/StorageDomainRoutingRuleRoute:StorageDomainRoutingRuleRoute"},"description":"Domain name routing entry See \u003cspan pulumi-lang-nodejs=\"`routes`\" pulumi-lang-dotnet=\"`Routes`\" pulumi-lang-go=\"`routes`\" pulumi-lang-python=\"`routes`\" pulumi-lang-yaml=\"`routes`\" pulumi-lang-java=\"`routes`\"\u003e`routes`\u003c/span\u003e below.\n"},"ruleId":{"type":"string","description":"The ID of the Rule.\n"}},"required":["createTime","instanceId","routes","ruleId"],"inputProperties":{"instanceId":{"type":"string","description":"The ID of the Container Registry Instance.\n","willReplaceOnChanges":true},"routes":{"type":"array","items":{"$ref":"#/types/alicloud:cr/StorageDomainRoutingRuleRoute:StorageDomainRoutingRuleRoute"},"description":"Domain name routing entry See \u003cspan pulumi-lang-nodejs=\"`routes`\" pulumi-lang-dotnet=\"`Routes`\" pulumi-lang-go=\"`routes`\" pulumi-lang-python=\"`routes`\" pulumi-lang-yaml=\"`routes`\" pulumi-lang-java=\"`routes`\"\u003e`routes`\u003c/span\u003e below.\n"}},"requiredInputs":["instanceId","routes"],"stateInputs":{"description":"Input properties used for looking up and filtering StorageDomainRoutingRule resources.\n","properties":{"createTime":{"type":"integer","description":"The creation time of the resource.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry Instance.\n","willReplaceOnChanges":true},"routes":{"type":"array","items":{"$ref":"#/types/alicloud:cr/StorageDomainRoutingRuleRoute:StorageDomainRoutingRuleRoute"},"description":"Domain name routing entry See \u003cspan pulumi-lang-nodejs=\"`routes`\" pulumi-lang-dotnet=\"`Routes`\" pulumi-lang-go=\"`routes`\" pulumi-lang-python=\"`routes`\" pulumi-lang-yaml=\"`routes`\" pulumi-lang-java=\"`routes`\"\u003e`routes`\u003c/span\u003e below.\n"},"ruleId":{"type":"string","description":"The ID of the Rule.\n"}},"type":"object"}},"alicloud:cr/vpcEndpointLinkedVpc:VpcEndpointLinkedVpc":{"description":"Provides a CR Vpc Endpoint Linked Vpc resource.\n\nFor information about CR Vpc Endpoint Linked Vpc and how to use it, see [What is Vpc Endpoint Linked Vpc](https://www.alibabacloud.com/help/en/acr/developer-reference/api-cr-2018-12-01-createinstancevpcendpointlinkedvpc).\n\n\u003e **NOTE:** Available since v1.199.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 100000,\n    max: 999999,\n});\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: `${name}-${defaultInteger.result}`,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: `${name}-${defaultInteger.result}`,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultRegistryEnterpriseInstance = new alicloud.cr.RegistryEnterpriseInstance(\"default\", {\n    paymentType: \"Subscription\",\n    period: 1,\n    renewPeriod: 0,\n    renewalStatus: \"ManualRenewal\",\n    instanceType: \"Advanced\",\n    instanceName: `${name}-${defaultInteger.result}`,\n});\nconst defaultVpcEndpointLinkedVpc = new alicloud.cr.VpcEndpointLinkedVpc(\"default\", {\n    instanceId: defaultRegistryEnterpriseInstance.id,\n    vpcId: defaultNetwork.id,\n    vswitchId: defaultSwitch.id,\n    moduleName: \"Registry\",\n    enableCreateDnsRecordInPvzt: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=100000,\n    max=999999)\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=f\"{name}-{default_integer['result']}\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=f\"{name}-{default_integer['result']}\",\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_registry_enterprise_instance = alicloud.cr.RegistryEnterpriseInstance(\"default\",\n    payment_type=\"Subscription\",\n    period=1,\n    renew_period=0,\n    renewal_status=\"ManualRenewal\",\n    instance_type=\"Advanced\",\n    instance_name=f\"{name}-{default_integer['result']}\")\ndefault_vpc_endpoint_linked_vpc = alicloud.cr.VpcEndpointLinkedVpc(\"default\",\n    instance_id=default_registry_enterprise_instance.id,\n    vpc_id=default_network.id,\n    vswitch_id=default_switch.id,\n    module_name=\"Registry\",\n    enable_create_dns_record_in_pvzt=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 100000,\n        Max = 999999,\n    });\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = $\"{name}-{defaultInteger.Result}\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = $\"{name}-{defaultInteger.Result}\",\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultRegistryEnterpriseInstance = new AliCloud.CR.RegistryEnterpriseInstance(\"default\", new()\n    {\n        PaymentType = \"Subscription\",\n        Period = 1,\n        RenewPeriod = 0,\n        RenewalStatus = \"ManualRenewal\",\n        InstanceType = \"Advanced\",\n        InstanceName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultVpcEndpointLinkedVpc = new AliCloud.CR.VpcEndpointLinkedVpc(\"default\", new()\n    {\n        InstanceId = defaultRegistryEnterpriseInstance.Id,\n        VpcId = defaultNetwork.Id,\n        VswitchId = defaultSwitch.Id,\n        ModuleName = \"Registry\",\n        EnableCreateDnsRecordInPvzt = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 100000,\n\t\t\tMax: 999999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegistryEnterpriseInstance, err := cr.NewRegistryEnterpriseInstance(ctx, \"default\", \u0026cr.RegistryEnterpriseInstanceArgs{\n\t\t\tPaymentType:   pulumi.String(\"Subscription\"),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t\tRenewPeriod:   pulumi.Int(0),\n\t\t\tRenewalStatus: pulumi.String(\"ManualRenewal\"),\n\t\t\tInstanceType:  pulumi.String(\"Advanced\"),\n\t\t\tInstanceName:  pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cr.NewVpcEndpointLinkedVpc(ctx, \"default\", \u0026cr.VpcEndpointLinkedVpcArgs{\n\t\t\tInstanceId:                  defaultRegistryEnterpriseInstance.ID(),\n\t\t\tVpcId:                       defaultNetwork.ID(),\n\t\t\tVswitchId:                   defaultSwitch.ID(),\n\t\t\tModuleName:                  pulumi.String(\"Registry\"),\n\t\t\tEnableCreateDnsRecordInPvzt: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstance;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstanceArgs;\nimport com.pulumi.alicloud.cr.VpcEndpointLinkedVpc;\nimport com.pulumi.alicloud.cr.VpcEndpointLinkedVpcArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(100000)\n            .max(999999)\n            .build());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultRegistryEnterpriseInstance = new RegistryEnterpriseInstance(\"defaultRegistryEnterpriseInstance\", RegistryEnterpriseInstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .period(1)\n            .renewPeriod(0)\n            .renewalStatus(\"ManualRenewal\")\n            .instanceType(\"Advanced\")\n            .instanceName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultVpcEndpointLinkedVpc = new VpcEndpointLinkedVpc(\"defaultVpcEndpointLinkedVpc\", VpcEndpointLinkedVpcArgs.builder()\n            .instanceId(defaultRegistryEnterpriseInstance.id())\n            .vpcId(defaultNetwork.id())\n            .vswitchId(defaultSwitch.id())\n            .moduleName(\"Registry\")\n            .enableCreateDnsRecordInPvzt(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 100000\n      max: 999999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}-${defaultInteger.result}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}-${defaultInteger.result}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultRegistryEnterpriseInstance:\n    type: alicloud:cr:RegistryEnterpriseInstance\n    name: default\n    properties:\n      paymentType: Subscription\n      period: 1\n      renewPeriod: 0\n      renewalStatus: ManualRenewal\n      instanceType: Advanced\n      instanceName: ${name}-${defaultInteger.result}\n  defaultVpcEndpointLinkedVpc:\n    type: alicloud:cr:VpcEndpointLinkedVpc\n    name: default\n    properties:\n      instanceId: ${defaultRegistryEnterpriseInstance.id}\n      vpcId: ${defaultNetwork.id}\n      vswitchId: ${defaultSwitch.id}\n      moduleName: Registry\n      enableCreateDnsRecordInPvzt: true\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCR Vpc Endpoint Linked Vpc can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cr/vpcEndpointLinkedVpc:VpcEndpointLinkedVpc example \u003cinstance_id\u003e:\u003cvpc_id\u003e:\u003cvswitch_id\u003e:\u003cmodule_name\u003e\n```\n\n","properties":{"enableCreateDnsRecordInPvzt":{"type":"boolean","description":"Specifies whether to automatically create an Alibaba Cloud DNS PrivateZone record. Valid Values:\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"moduleName":{"type":"string","description":"The name of the module that you want to access. Valid Values:\n- `Registry`: the image repository.\n- `Chart`: a Helm chart.\n"},"status":{"type":"string","description":"The status of the Vpc Endpoint Linked Vpc.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n"}},"required":["instanceId","moduleName","status","vpcId","vswitchId"],"inputProperties":{"enableCreateDnsRecordInPvzt":{"type":"boolean","description":"Specifies whether to automatically create an Alibaba Cloud DNS PrivateZone record. Valid Values:\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"moduleName":{"type":"string","description":"The name of the module that you want to access. Valid Values:\n- `Registry`: the image repository.\n- `Chart`: a Helm chart.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId","moduleName","vpcId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcEndpointLinkedVpc resources.\n","properties":{"enableCreateDnsRecordInPvzt":{"type":"boolean","description":"Specifies whether to automatically create an Alibaba Cloud DNS PrivateZone record. Valid Values:\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"moduleName":{"type":"string","description":"The name of the module that you want to access. Valid Values:\n- `Registry`: the image repository.\n- `Chart`: a Helm chart.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Vpc Endpoint Linked Vpc.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cs/application:Application":{"properties":{"blueGreen":{"type":"boolean"},"blueGreenConfirm":{"type":"boolean"},"clusterName":{"type":"string"},"defaultDomain":{"type":"string"},"description":{"type":"string"},"environment":{"type":"object","additionalProperties":{"type":"string"}},"latestImage":{"type":"boolean"},"name":{"type":"string"},"services":{"type":"array","items":{"$ref":"#/types/alicloud:cs/ApplicationService:ApplicationService"}},"template":{"type":"string"},"version":{"type":"string"}},"required":["clusterName","defaultDomain","name","services","template"],"inputProperties":{"blueGreen":{"type":"boolean"},"blueGreenConfirm":{"type":"boolean"},"clusterName":{"type":"string","willReplaceOnChanges":true},"description":{"type":"string"},"environment":{"type":"object","additionalProperties":{"type":"string"}},"latestImage":{"type":"boolean"},"name":{"type":"string","willReplaceOnChanges":true},"template":{"type":"string"},"version":{"type":"string"}},"requiredInputs":["clusterName","template"],"stateInputs":{"description":"Input properties used for looking up and filtering Application resources.\n","properties":{"blueGreen":{"type":"boolean"},"blueGreenConfirm":{"type":"boolean"},"clusterName":{"type":"string","willReplaceOnChanges":true},"defaultDomain":{"type":"string"},"description":{"type":"string"},"environment":{"type":"object","additionalProperties":{"type":"string"}},"latestImage":{"type":"boolean"},"name":{"type":"string","willReplaceOnChanges":true},"services":{"type":"array","items":{"$ref":"#/types/alicloud:cs/ApplicationService:ApplicationService"}},"template":{"type":"string"},"version":{"type":"string"}},"type":"object"}},"alicloud:cs/autoscalingConfig:AutoscalingConfig":{"description":"This resource will help you configure auto scaling for the kubernetes cluster, see [What is autoscaling config](https://www.alibabacloud.com/help/en/ack/ack-managed-and-ack-dedicated/developer-reference/api-configure-auto-scaling).\n\n\u003e **NOTE:** Available since v1.127.0.\n\n\u003e **NOTE:** From version 1.164.0, support for specifying whether to allow the scale-in of nodes by parameter \u003cspan pulumi-lang-nodejs=\"`scaleDownEnabled`\" pulumi-lang-dotnet=\"`ScaleDownEnabled`\" pulumi-lang-go=\"`scaleDownEnabled`\" pulumi-lang-python=\"`scale_down_enabled`\" pulumi-lang-yaml=\"`scaleDownEnabled`\" pulumi-lang-java=\"`scaleDownEnabled`\"\u003e`scale_down_enabled`\u003c/span\u003e.\n\n\u003e **NOTE:** From version 1.164.0, support for selecting the policy for selecting which node pool to scale by parameter \u003cspan pulumi-lang-nodejs=\"`expander`\" pulumi-lang-dotnet=\"`Expander`\" pulumi-lang-go=\"`expander`\" pulumi-lang-python=\"`expander`\" pulumi-lang-yaml=\"`expander`\" pulumi-lang-java=\"`expander`\"\u003e`expander`\u003c/span\u003e.\n\n\u003e **NOTE:** From version 1.237.0, support for selecting the type of autoscaler by parameter \u003cspan pulumi-lang-nodejs=\"`scalerType`\" pulumi-lang-dotnet=\"`ScalerType`\" pulumi-lang-go=\"`scalerType`\" pulumi-lang-python=\"`scaler_type`\" pulumi-lang-yaml=\"`scalerType`\" pulumi-lang-java=\"`scalerType`\"\u003e`scaler_type`\u003c/span\u003e.\n\n\u003e **NOTE:** From version 1.256.0, support for setting the priority of scaling groups by parameter \u003cspan pulumi-lang-nodejs=\"`priorities`\" pulumi-lang-dotnet=\"`Priorities`\" pulumi-lang-go=\"`priorities`\" pulumi-lang-python=\"`priorities`\" pulumi-lang-yaml=\"`priorities`\" pulumi-lang-java=\"`priorities`\"\u003e`priorities`\u003c/span\u003e.\n\n## Example Usage\n\nIf you do not have an existing cluster, you need to create an ACK cluster through\u003cspan pulumi-lang-nodejs=\" alicloud.cs.ManagedKubernetes \" pulumi-lang-dotnet=\" alicloud.cs.ManagedKubernetes \" pulumi-lang-go=\" cs.ManagedKubernetes \" pulumi-lang-python=\" cs.ManagedKubernetes \" pulumi-lang-yaml=\" alicloud.cs.ManagedKubernetes \" pulumi-lang-java=\" alicloud.cs.ManagedKubernetes \"\u003e alicloud.cs.ManagedKubernetes \u003c/span\u003efirst, and then configure automatic scaling.\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 4,\n    memorySize: 8,\n    kubernetesNodeRole: \"Worker\",\n    systemDiskCategory: \"cloud_essd\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    namePrefix: name,\n    clusterSpec: \"ack.pro.small\",\n    workerVswitchIds: [defaultSwitch.id],\n    newNatGateway: true,\n    podCidr: std.cidrsubnet({\n        input: \"10.0.0.0/8\",\n        newbits: 8,\n        netnum: 36,\n    }).then(invoke =\u003e invoke.result),\n    serviceCidr: std.cidrsubnet({\n        input: \"172.16.0.0/16\",\n        newbits: 4,\n        netnum: 7,\n    }).then(invoke =\u003e invoke.result),\n    slbInternetEnabled: true,\n});\nconst defaultNodePool: alicloud.cs.NodePool[] = [];\nfor (const range = {value: 0}; range.value \u003c 3; range.value++) {\n    defaultNodePool.push(new alicloud.cs.NodePool(`default-${range.value}`, {\n        nodePoolName: std.format({\n            input: \"%s-%d\",\n            args: [\n                name,\n                range.value,\n            ],\n        }).then(invoke =\u003e invoke.result),\n        clusterId: defaultManagedKubernetes.id,\n        vswitchIds: [defaultSwitch.id],\n        instanceTypes: [defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id)],\n        systemDiskCategory: \"cloud_essd\",\n        systemDiskSize: 40,\n        imageType: \"AliyunLinux3\",\n        scalingConfig: {\n            enable: true,\n            minSize: 0,\n            maxSize: 10,\n        },\n    }));\n}\nconst defaultAutoscalingConfig = new alicloud.cs.AutoscalingConfig(\"default\", {\n    clusterId: defaultManagedKubernetes.id,\n    coolDownDuration: \"10m\",\n    unneededDuration: \"10m\",\n    utilizationThreshold: \"0.5\",\n    gpuUtilizationThreshold: \"0.5\",\n    scanInterval: \"30s\",\n    scaleDownEnabled: true,\n    expander: \"priority\",\n    skipNodesWithSystemPods: true,\n    skipNodesWithLocalStorage: false,\n    daemonsetEvictionForNodes: false,\n    maxGracefulTerminationSec: 14400,\n    minReplicaCount: 0,\n    recycleNodeDeletionEnabled: false,\n    scaleUpFromZero: true,\n    scalerType: \"cluster-autoscaler\",\n    priorities: {\n        \"10\": std.joinOutput({\n            separator: \",\",\n            input: [\n                defaultNodePool[0].scalingGroupId,\n                defaultNodePool[1].scalingGroupId,\n            ],\n        }).apply(invoke =\u003e invoke.result),\n        \"20\": defaultNodePool[2].scalingGroupId,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=4,\n    memory_size=8,\n    kubernetes_node_role=\"Worker\",\n    system_disk_category=\"cloud_essd\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name_prefix=name,\n    cluster_spec=\"ack.pro.small\",\n    worker_vswitch_ids=[default_switch.id],\n    new_nat_gateway=True,\n    pod_cidr=std.cidrsubnet(input=\"10.0.0.0/8\",\n        newbits=8,\n        netnum=36).result,\n    service_cidr=std.cidrsubnet(input=\"172.16.0.0/16\",\n        newbits=4,\n        netnum=7).result,\n    slb_internet_enabled=True)\ndefault_node_pool = []\nfor range in [{\"value\": i} for i in range(0, 3)]:\n    default_node_pool.append(alicloud.cs.NodePool(f\"default-{range['value']}\",\n        node_pool_name=std.format(input=\"%s-%d\",\n            args=[\n                name,\n                range[\"value\"],\n            ]).result,\n        cluster_id=default_managed_kubernetes.id,\n        vswitch_ids=[default_switch.id],\n        instance_types=[default_get_instance_types.instance_types[0].id],\n        system_disk_category=\"cloud_essd\",\n        system_disk_size=40,\n        image_type=\"AliyunLinux3\",\n        scaling_config={\n            \"enable\": True,\n            \"min_size\": 0,\n            \"max_size\": 10,\n        }))\ndefault_autoscaling_config = alicloud.cs.AutoscalingConfig(\"default\",\n    cluster_id=default_managed_kubernetes.id,\n    cool_down_duration=\"10m\",\n    unneeded_duration=\"10m\",\n    utilization_threshold=\"0.5\",\n    gpu_utilization_threshold=\"0.5\",\n    scan_interval=\"30s\",\n    scale_down_enabled=True,\n    expander=\"priority\",\n    skip_nodes_with_system_pods=True,\n    skip_nodes_with_local_storage=False,\n    daemonset_eviction_for_nodes=False,\n    max_graceful_termination_sec=14400,\n    min_replica_count=0,\n    recycle_node_deletion_enabled=False,\n    scale_up_from_zero=True,\n    scaler_type=\"cluster-autoscaler\",\n    priorities={\n        \"10\": std.join_output(separator=\",\",\n            input=[\n                default_node_pool[0].scaling_group_id,\n                default_node_pool[1].scaling_group_id,\n            ]).apply(lambda invoke: invoke.result),\n        \"20\": default_node_pool[2].scaling_group_id,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 4,\n        MemorySize = 8,\n        KubernetesNodeRole = \"Worker\",\n        SystemDiskCategory = \"cloud_essd\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        NamePrefix = name,\n        ClusterSpec = \"ack.pro.small\",\n        WorkerVswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        NewNatGateway = true,\n        PodCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"10.0.0.0/8\",\n            Newbits = 8,\n            Netnum = 36,\n        }).Apply(invoke =\u003e invoke.Result),\n        ServiceCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"172.16.0.0/16\",\n            Newbits = 4,\n            Netnum = 7,\n        }).Apply(invoke =\u003e invoke.Result),\n        SlbInternetEnabled = true,\n    });\n\n    var defaultNodePool = new List\u003cAliCloud.CS.NodePool\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 3; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultNodePool.Add(new AliCloud.CS.NodePool($\"default-{range.Value}\", new()\n        {\n            NodePoolName = Std.Format.Invoke(new()\n            {\n                Input = \"%s-%d\",\n                Args = new[]\n                {\n                    name,\n                    range.Value,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            ClusterId = defaultManagedKubernetes.Id,\n            VswitchIds = new[]\n            {\n                defaultSwitch.Id,\n            },\n            InstanceTypes = new[]\n            {\n                defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n            },\n            SystemDiskCategory = \"cloud_essd\",\n            SystemDiskSize = 40,\n            ImageType = \"AliyunLinux3\",\n            ScalingConfig = new AliCloud.CS.Inputs.NodePoolScalingConfigArgs\n            {\n                Enable = true,\n                MinSize = 0,\n                MaxSize = 10,\n            },\n        }));\n    }\n    var defaultAutoscalingConfig = new AliCloud.CS.AutoscalingConfig(\"default\", new()\n    {\n        ClusterId = defaultManagedKubernetes.Id,\n        CoolDownDuration = \"10m\",\n        UnneededDuration = \"10m\",\n        UtilizationThreshold = \"0.5\",\n        GpuUtilizationThreshold = \"0.5\",\n        ScanInterval = \"30s\",\n        ScaleDownEnabled = true,\n        Expander = \"priority\",\n        SkipNodesWithSystemPods = true,\n        SkipNodesWithLocalStorage = false,\n        DaemonsetEvictionForNodes = false,\n        MaxGracefulTerminationSec = 14400,\n        MinReplicaCount = 0,\n        RecycleNodeDeletionEnabled = false,\n        ScaleUpFromZero = true,\n        ScalerType = \"cluster-autoscaler\",\n        Priorities = \n        {\n            { \"10\", Std.Join.Invoke(new()\n            {\n                Separator = \",\",\n                Input = new[]\n                {\n                    defaultNodePool[0].ScalingGroupId,\n                    defaultNodePool[1].ScalingGroupId,\n                },\n            }).Apply(invoke =\u003e invoke.Result) },\n            { \"20\", defaultNodePool[2].ScalingGroupId },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone:   pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:       pulumi.IntRef(4),\n\t\t\tMemorySize:         pulumi.Float64Ref(8),\n\t\t\tKubernetesNodeRole: pulumi.StringRef(\"Worker\"),\n\t\t\tSystemDiskCategory: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"10.0.0.0/8\",\n\t\t\tNewbits: 8,\n\t\t\tNetnum:  36,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet1, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"172.16.0.0/16\",\n\t\t\tNewbits: 4,\n\t\t\tNetnum:  7,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\n\t\t\tNamePrefix:  pulumi.String(name),\n\t\t\tClusterSpec: pulumi.String(\"ack.pro.small\"),\n\t\t\tWorkerVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tNewNatGateway:      pulumi.Bool(true),\n\t\t\tPodCidr:            pulumi.String(invokeCidrsubnet.Result),\n\t\t\tServiceCidr:        pulumi.String(invokeCidrsubnet1.Result),\n\t\t\tSlbInternetEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat2, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s-%d\",\n\t\t\tArgs: []interface{}{\n\t\t\t\tname,\n\t\t\t\tval0,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar defaultNodePool []*cs.NodePool\n\t\tfor index := 0; index \u003c 3; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := cs.NewNodePool(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026cs.NodePoolArgs{\n\t\t\t\tNodePoolName: pulumi.String(invokeFormat2.Result),\n\t\t\t\tClusterId:    defaultManagedKubernetes.ID(),\n\t\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\t\tdefaultSwitch.ID(),\n\t\t\t\t},\n\t\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\t\t},\n\t\t\t\tSystemDiskCategory: pulumi.String(\"cloud_essd\"),\n\t\t\t\tSystemDiskSize:     pulumi.Int(40),\n\t\t\t\tImageType:          pulumi.String(\"AliyunLinux3\"),\n\t\t\t\tScalingConfig: \u0026cs.NodePoolScalingConfigArgs{\n\t\t\t\t\tEnable:  pulumi.Bool(true),\n\t\t\t\t\tMinSize: pulumi.Int(0),\n\t\t\t\t\tMaxSize: pulumi.Int(10),\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultNodePool = append(defaultNodePool, __res)\n\t\t}\n\t\t_, err = cs.NewAutoscalingConfig(ctx, \"default\", \u0026cs.AutoscalingConfigArgs{\n\t\t\tClusterId:                  defaultManagedKubernetes.ID(),\n\t\t\tCoolDownDuration:           pulumi.String(\"10m\"),\n\t\t\tUnneededDuration:           pulumi.String(\"10m\"),\n\t\t\tUtilizationThreshold:       pulumi.String(\"0.5\"),\n\t\t\tGpuUtilizationThreshold:    pulumi.String(\"0.5\"),\n\t\t\tScanInterval:               pulumi.String(\"30s\"),\n\t\t\tScaleDownEnabled:           pulumi.Bool(true),\n\t\t\tExpander:                   pulumi.String(\"priority\"),\n\t\t\tSkipNodesWithSystemPods:    pulumi.Bool(true),\n\t\t\tSkipNodesWithLocalStorage:  pulumi.Bool(false),\n\t\t\tDaemonsetEvictionForNodes:  pulumi.Bool(false),\n\t\t\tMaxGracefulTerminationSec:  pulumi.Int(14400),\n\t\t\tMinReplicaCount:            pulumi.Int(0),\n\t\t\tRecycleNodeDeletionEnabled: pulumi.Bool(false),\n\t\t\tScaleUpFromZero:            pulumi.Bool(true),\n\t\t\tScalerType:                 pulumi.String(\"cluster-autoscaler\"),\n\t\t\tPriorities: pulumi.StringMap{\n\t\t\t\t\"10\": pulumi.String(std.JoinOutput(ctx, std.JoinOutputArgs{\n\t\t\t\t\tSeparator: pulumi.String(\",\"),\n\t\t\t\t\tInput: pulumi.StringArray{\n\t\t\t\t\t\tdefaultNodePool[0].ScalingGroupId,\n\t\t\t\t\t\tdefaultNodePool[1].ScalingGroupId,\n\t\t\t\t\t},\n\t\t\t\t}, nil).ApplyT(func(invoke std.JoinResult) (*string, error) {\n\t\t\t\t\treturn invoke.Result, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t\t\"20\": defaultNodePool[2].ScalingGroupId,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.cs.inputs.NodePoolScalingConfigArgs;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.cs.AutoscalingConfig;\nimport com.pulumi.alicloud.cs.AutoscalingConfigArgs;\nimport com.pulumi.std.inputs.JoinArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(4)\n            .memorySize(8)\n            .kubernetesNodeRole(\"Worker\")\n            .systemDiskCategory(\"cloud_essd\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .namePrefix(name)\n            .clusterSpec(\"ack.pro.small\")\n            .workerVswitchIds(defaultSwitch.id())\n            .newNatGateway(true)\n            .podCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"10.0.0.0/8\")\n                .newbits(8)\n                .netnum(36)\n                .build()).result())\n            .serviceCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"172.16.0.0/16\")\n                .newbits(4)\n                .netnum(7)\n                .build()).result())\n            .slbInternetEnabled(true)\n            .build());\n\n        for (var i = 0; i \u003c 3; i++) {\n            new NodePool(\"defaultNodePool-\" + i, NodePoolArgs.builder()\n                .nodePoolName(StdFunctions.format(FormatArgs.builder()\n                    .input(\"%s-%d\")\n                    .args(                    \n                        name,\n                        range.value())\n                    .build()).result())\n                .clusterId(defaultManagedKubernetes.id())\n                .vswitchIds(defaultSwitch.id())\n                .instanceTypes(defaultGetInstanceTypes.instanceTypes()[0].id())\n                .systemDiskCategory(\"cloud_essd\")\n                .systemDiskSize(40)\n                .imageType(\"AliyunLinux3\")\n                .scalingConfig(NodePoolScalingConfigArgs.builder()\n                    .enable(true)\n                    .minSize(0)\n                    .maxSize(10)\n                    .build())\n                .build());\n\n        \n}\n        var defaultAutoscalingConfig = new AutoscalingConfig(\"defaultAutoscalingConfig\", AutoscalingConfigArgs.builder()\n            .clusterId(defaultManagedKubernetes.id())\n            .coolDownDuration(\"10m\")\n            .unneededDuration(\"10m\")\n            .utilizationThreshold(\"0.5\")\n            .gpuUtilizationThreshold(\"0.5\")\n            .scanInterval(\"30s\")\n            .scaleDownEnabled(true)\n            .expander(\"priority\")\n            .skipNodesWithSystemPods(true)\n            .skipNodesWithLocalStorage(false)\n            .daemonsetEvictionForNodes(false)\n            .maxGracefulTerminationSec(14400)\n            .minReplicaCount(0)\n            .recycleNodeDeletionEnabled(false)\n            .scaleUpFromZero(true)\n            .scalerType(\"cluster-autoscaler\")\n            .priorities(Map.ofEntries(\n                Map.entry(\"10\", StdFunctions.join(JoinArgs.builder()\n                    .separator(\",\")\n                    .input(                    \n                        defaultNodePool[0].scalingGroupId(),\n                        defaultNodePool[1].scalingGroupId())\n                    .build()).applyValue(_invoke -\u003e _invoke.result())),\n                Map.entry(\"20\", defaultNodePool[2].scalingGroupId())\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      namePrefix: ${name}\n      clusterSpec: ack.pro.small\n      workerVswitchIds:\n        - ${defaultSwitch.id}\n      newNatGateway: true\n      podCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 10.0.0.0/8\n            newbits: 8\n            netnum: 36\n          return: result\n      serviceCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 172.16.0.0/16\n            newbits: 4\n            netnum: 7\n          return: result\n      slbInternetEnabled: true\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      nodePoolName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s-%d'\n            args:\n              - ${name}\n              - ${range.value}\n          return: result\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      instanceTypes:\n        - ${defaultGetInstanceTypes.instanceTypes[0].id}\n      systemDiskCategory: cloud_essd\n      systemDiskSize: 40\n      imageType: AliyunLinux3\n      scalingConfig:\n        enable: true\n        minSize: 0\n        maxSize: 10\n    options: {}\n  defaultAutoscalingConfig:\n    type: alicloud:cs:AutoscalingConfig\n    name: default\n    properties:\n      clusterId: ${defaultManagedKubernetes.id}\n      coolDownDuration: 10m\n      unneededDuration: 10m\n      utilizationThreshold: '0.5'\n      gpuUtilizationThreshold: '0.5'\n      scanInterval: 30s\n      scaleDownEnabled: true\n      expander: priority\n      skipNodesWithSystemPods: true\n      skipNodesWithLocalStorage: false\n      daemonsetEvictionForNodes: false\n      maxGracefulTerminationSec: 14400\n      minReplicaCount: 0\n      recycleNodeDeletionEnabled: false\n      scaleUpFromZero: true\n      scalerType: cluster-autoscaler\n      priorities:\n        '10':\n          fn::invoke:\n            function: std:join\n            arguments:\n              separator: ','\n              input:\n                - ${defaultNodePool[0].scalingGroupId}\n                - ${defaultNodePool[1].scalingGroupId}\n            return: result\n        '20': ${defaultNodePool[2].scalingGroupId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 4\n        memorySize: 8\n        kubernetesNodeRole: Worker\n        systemDiskCategory: cloud_essd\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"clusterId":{"type":"string","description":"The id of kubernetes cluster.\n"},"coolDownDuration":{"type":"string","description":"Specify the time interval between detecting a scale-in requirement (when the threshold is reached) and actually executing the scale-in operation (reducing the number of Pods). Default is \u003cspan pulumi-lang-nodejs=\"`10m`\" pulumi-lang-dotnet=\"`10m`\" pulumi-lang-go=\"`10m`\" pulumi-lang-python=\"`10m`\" pulumi-lang-yaml=\"`10m`\" pulumi-lang-java=\"`10m`\"\u003e`10m`\u003c/span\u003e. If the delay (cooldown) value is set too long, there could be complaints that the Horizontal Pod Autoscaler is not responsive to workload changes. However, if the delay value is set too short, the scale of the replicas set may keep thrashing as usual.\n"},"daemonsetEvictionForNodes":{"type":"boolean","description":"If true DaemonSet pods will be  terminated from nodes. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"expander":{"type":"string","description":"The policy for selecting which node pool to scale. Valid values: `least-waste`, \u003cspan pulumi-lang-nodejs=\"`random`\" pulumi-lang-dotnet=\"`Random`\" pulumi-lang-go=\"`random`\" pulumi-lang-python=\"`random`\" pulumi-lang-yaml=\"`random`\" pulumi-lang-java=\"`random`\"\u003e`random`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`priority`\" pulumi-lang-dotnet=\"`Priority`\" pulumi-lang-go=\"`priority`\" pulumi-lang-python=\"`priority`\" pulumi-lang-yaml=\"`priority`\" pulumi-lang-java=\"`priority`\"\u003e`priority`\u003c/span\u003e. For scaler type \u003cspan pulumi-lang-nodejs=\"`goatscaler`\" pulumi-lang-dotnet=\"`Goatscaler`\" pulumi-lang-go=\"`goatscaler`\" pulumi-lang-python=\"`goatscaler`\" pulumi-lang-yaml=\"`goatscaler`\" pulumi-lang-java=\"`goatscaler`\"\u003e`goatscaler`\u003c/span\u003e, only the `least-waste` expander is currently supported. For more information on these policies, see [Configure auto scaling](https://www.alibabacloud.com/help/en/container-service-for-kubernetes/latest/auto-scaling-of-nodes#section-3bg-2ko-inl)\n"},"gpuUtilizationThreshold":{"type":"string","description":"The scale-in threshold for GPU instance. Default is `0.5`.\n"},"maxGracefulTerminationSec":{"type":"integer","description":"Maximum number of seconds CA waits for pod termination when trying to scale down a node. Default is \u003cspan pulumi-lang-nodejs=\"`14400`\" pulumi-lang-dotnet=\"`14400`\" pulumi-lang-go=\"`14400`\" pulumi-lang-python=\"`14400`\" pulumi-lang-yaml=\"`14400`\" pulumi-lang-java=\"`14400`\"\u003e`14400`\u003c/span\u003e.\n"},"minReplicaCount":{"type":"integer","description":"Minimum number of replicas that a replica set or replication controller should have to allow their pods deletion in scale down. Default is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"priorities":{"type":"object","additionalProperties":{"type":"string"},"description":"Priority settings for autoscaling node pool scaling groups. This parameter only takes effect when \u003cspan pulumi-lang-nodejs=\"`expander`\" pulumi-lang-dotnet=\"`Expander`\" pulumi-lang-go=\"`expander`\" pulumi-lang-python=\"`expander`\" pulumi-lang-yaml=\"`expander`\" pulumi-lang-java=\"`expander`\"\u003e`expander`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`priority`\" pulumi-lang-dotnet=\"`Priority`\" pulumi-lang-go=\"`priority`\" pulumi-lang-python=\"`priority`\" pulumi-lang-yaml=\"`priority`\" pulumi-lang-java=\"`priority`\"\u003e`priority`\u003c/span\u003e. Only supports scaler type `cluster-autoscaler`. Uses key-value pairs where the key is the priority value, and the value is a comma-separated list of scaling group IDs. High numerical values indicate higher priority.\n"},"recycleNodeDeletionEnabled":{"type":"boolean","description":"Should CA delete the K8s node object when recycle node has scaled down successfully. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"scaleDownEnabled":{"type":"boolean","description":"Specify whether to allow the scale-in of nodes. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"scaleUpFromZero":{"type":"boolean","description":"Should CA scale up when there 0 ready nodes. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"scalerType":{"type":"string","description":"The type of autoscaler. Valid values: `cluster-autoscaler`, \u003cspan pulumi-lang-nodejs=\"`goatscaler`\" pulumi-lang-dotnet=\"`Goatscaler`\" pulumi-lang-go=\"`goatscaler`\" pulumi-lang-python=\"`goatscaler`\" pulumi-lang-yaml=\"`goatscaler`\" pulumi-lang-java=\"`goatscaler`\"\u003e`goatscaler`\u003c/span\u003e. For cluster version 1.22 and below, we only support `cluster-autoscaler`. When switching from `cluster-autoscaler` to \u003cspan pulumi-lang-nodejs=\"`goatscaler`\" pulumi-lang-dotnet=\"`Goatscaler`\" pulumi-lang-go=\"`goatscaler`\" pulumi-lang-python=\"`goatscaler`\" pulumi-lang-yaml=\"`goatscaler`\" pulumi-lang-java=\"`goatscaler`\"\u003e`goatscaler`\u003c/span\u003e, all configuration parameters will be automatically migrated.\n"},"scanInterval":{"type":"string","description":"The interval at which the cluster is reevaluated for scaling. Default is \u003cspan pulumi-lang-nodejs=\"`30s`\" pulumi-lang-dotnet=\"`30s`\" pulumi-lang-go=\"`30s`\" pulumi-lang-python=\"`30s`\" pulumi-lang-yaml=\"`30s`\" pulumi-lang-java=\"`30s`\"\u003e`30s`\u003c/span\u003e.\n"},"skipNodesWithLocalStorage":{"type":"boolean","description":"If true cluster autoscaler will never delete nodes with pods with local storage, e.g. EmptyDir or HostPath. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"skipNodesWithSystemPods":{"type":"boolean","description":"If true cluster autoscaler will never delete nodes with pods from kube-system (except for DaemonSet or mirror pods). Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"unneededDuration":{"type":"string","description":"Specify the time interval during which autoscaler does not perform scale-in operations after the most recent scale-out completion. Nodes added through scale-out can only be considered for scale-in after the period has elapsed. Default is \u003cspan pulumi-lang-nodejs=\"`10m`\" pulumi-lang-dotnet=\"`10m`\" pulumi-lang-go=\"`10m`\" pulumi-lang-python=\"`10m`\" pulumi-lang-yaml=\"`10m`\" pulumi-lang-java=\"`10m`\"\u003e`10m`\u003c/span\u003e.\n"},"utilizationThreshold":{"type":"string","description":"The scale-in a threshold. Default is `0.5`.\n"}},"inputProperties":{"clusterId":{"type":"string","description":"The id of kubernetes cluster.\n","willReplaceOnChanges":true},"coolDownDuration":{"type":"string","description":"Specify the time interval between detecting a scale-in requirement (when the threshold is reached) and actually executing the scale-in operation (reducing the number of Pods). Default is \u003cspan pulumi-lang-nodejs=\"`10m`\" pulumi-lang-dotnet=\"`10m`\" pulumi-lang-go=\"`10m`\" pulumi-lang-python=\"`10m`\" pulumi-lang-yaml=\"`10m`\" pulumi-lang-java=\"`10m`\"\u003e`10m`\u003c/span\u003e. If the delay (cooldown) value is set too long, there could be complaints that the Horizontal Pod Autoscaler is not responsive to workload changes. However, if the delay value is set too short, the scale of the replicas set may keep thrashing as usual.\n"},"daemonsetEvictionForNodes":{"type":"boolean","description":"If true DaemonSet pods will be  terminated from nodes. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"expander":{"type":"string","description":"The policy for selecting which node pool to scale. Valid values: `least-waste`, \u003cspan pulumi-lang-nodejs=\"`random`\" pulumi-lang-dotnet=\"`Random`\" pulumi-lang-go=\"`random`\" pulumi-lang-python=\"`random`\" pulumi-lang-yaml=\"`random`\" pulumi-lang-java=\"`random`\"\u003e`random`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`priority`\" pulumi-lang-dotnet=\"`Priority`\" pulumi-lang-go=\"`priority`\" pulumi-lang-python=\"`priority`\" pulumi-lang-yaml=\"`priority`\" pulumi-lang-java=\"`priority`\"\u003e`priority`\u003c/span\u003e. For scaler type \u003cspan pulumi-lang-nodejs=\"`goatscaler`\" pulumi-lang-dotnet=\"`Goatscaler`\" pulumi-lang-go=\"`goatscaler`\" pulumi-lang-python=\"`goatscaler`\" pulumi-lang-yaml=\"`goatscaler`\" pulumi-lang-java=\"`goatscaler`\"\u003e`goatscaler`\u003c/span\u003e, only the `least-waste` expander is currently supported. For more information on these policies, see [Configure auto scaling](https://www.alibabacloud.com/help/en/container-service-for-kubernetes/latest/auto-scaling-of-nodes#section-3bg-2ko-inl)\n"},"gpuUtilizationThreshold":{"type":"string","description":"The scale-in threshold for GPU instance. Default is `0.5`.\n"},"maxGracefulTerminationSec":{"type":"integer","description":"Maximum number of seconds CA waits for pod termination when trying to scale down a node. Default is \u003cspan pulumi-lang-nodejs=\"`14400`\" pulumi-lang-dotnet=\"`14400`\" pulumi-lang-go=\"`14400`\" pulumi-lang-python=\"`14400`\" pulumi-lang-yaml=\"`14400`\" pulumi-lang-java=\"`14400`\"\u003e`14400`\u003c/span\u003e.\n"},"minReplicaCount":{"type":"integer","description":"Minimum number of replicas that a replica set or replication controller should have to allow their pods deletion in scale down. Default is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"priorities":{"type":"object","additionalProperties":{"type":"string"},"description":"Priority settings for autoscaling node pool scaling groups. This parameter only takes effect when \u003cspan pulumi-lang-nodejs=\"`expander`\" pulumi-lang-dotnet=\"`Expander`\" pulumi-lang-go=\"`expander`\" pulumi-lang-python=\"`expander`\" pulumi-lang-yaml=\"`expander`\" pulumi-lang-java=\"`expander`\"\u003e`expander`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`priority`\" pulumi-lang-dotnet=\"`Priority`\" pulumi-lang-go=\"`priority`\" pulumi-lang-python=\"`priority`\" pulumi-lang-yaml=\"`priority`\" pulumi-lang-java=\"`priority`\"\u003e`priority`\u003c/span\u003e. Only supports scaler type `cluster-autoscaler`. Uses key-value pairs where the key is the priority value, and the value is a comma-separated list of scaling group IDs. High numerical values indicate higher priority.\n"},"recycleNodeDeletionEnabled":{"type":"boolean","description":"Should CA delete the K8s node object when recycle node has scaled down successfully. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"scaleDownEnabled":{"type":"boolean","description":"Specify whether to allow the scale-in of nodes. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"scaleUpFromZero":{"type":"boolean","description":"Should CA scale up when there 0 ready nodes. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"scalerType":{"type":"string","description":"The type of autoscaler. Valid values: `cluster-autoscaler`, \u003cspan pulumi-lang-nodejs=\"`goatscaler`\" pulumi-lang-dotnet=\"`Goatscaler`\" pulumi-lang-go=\"`goatscaler`\" pulumi-lang-python=\"`goatscaler`\" pulumi-lang-yaml=\"`goatscaler`\" pulumi-lang-java=\"`goatscaler`\"\u003e`goatscaler`\u003c/span\u003e. For cluster version 1.22 and below, we only support `cluster-autoscaler`. When switching from `cluster-autoscaler` to \u003cspan pulumi-lang-nodejs=\"`goatscaler`\" pulumi-lang-dotnet=\"`Goatscaler`\" pulumi-lang-go=\"`goatscaler`\" pulumi-lang-python=\"`goatscaler`\" pulumi-lang-yaml=\"`goatscaler`\" pulumi-lang-java=\"`goatscaler`\"\u003e`goatscaler`\u003c/span\u003e, all configuration parameters will be automatically migrated.\n"},"scanInterval":{"type":"string","description":"The interval at which the cluster is reevaluated for scaling. Default is \u003cspan pulumi-lang-nodejs=\"`30s`\" pulumi-lang-dotnet=\"`30s`\" pulumi-lang-go=\"`30s`\" pulumi-lang-python=\"`30s`\" pulumi-lang-yaml=\"`30s`\" pulumi-lang-java=\"`30s`\"\u003e`30s`\u003c/span\u003e.\n"},"skipNodesWithLocalStorage":{"type":"boolean","description":"If true cluster autoscaler will never delete nodes with pods with local storage, e.g. EmptyDir or HostPath. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"skipNodesWithSystemPods":{"type":"boolean","description":"If true cluster autoscaler will never delete nodes with pods from kube-system (except for DaemonSet or mirror pods). Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"unneededDuration":{"type":"string","description":"Specify the time interval during which autoscaler does not perform scale-in operations after the most recent scale-out completion. Nodes added through scale-out can only be considered for scale-in after the period has elapsed. Default is \u003cspan pulumi-lang-nodejs=\"`10m`\" pulumi-lang-dotnet=\"`10m`\" pulumi-lang-go=\"`10m`\" pulumi-lang-python=\"`10m`\" pulumi-lang-yaml=\"`10m`\" pulumi-lang-java=\"`10m`\"\u003e`10m`\u003c/span\u003e.\n"},"utilizationThreshold":{"type":"string","description":"The scale-in a threshold. Default is `0.5`.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering AutoscalingConfig resources.\n","properties":{"clusterId":{"type":"string","description":"The id of kubernetes cluster.\n","willReplaceOnChanges":true},"coolDownDuration":{"type":"string","description":"Specify the time interval between detecting a scale-in requirement (when the threshold is reached) and actually executing the scale-in operation (reducing the number of Pods). Default is \u003cspan pulumi-lang-nodejs=\"`10m`\" pulumi-lang-dotnet=\"`10m`\" pulumi-lang-go=\"`10m`\" pulumi-lang-python=\"`10m`\" pulumi-lang-yaml=\"`10m`\" pulumi-lang-java=\"`10m`\"\u003e`10m`\u003c/span\u003e. If the delay (cooldown) value is set too long, there could be complaints that the Horizontal Pod Autoscaler is not responsive to workload changes. However, if the delay value is set too short, the scale of the replicas set may keep thrashing as usual.\n"},"daemonsetEvictionForNodes":{"type":"boolean","description":"If true DaemonSet pods will be  terminated from nodes. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"expander":{"type":"string","description":"The policy for selecting which node pool to scale. Valid values: `least-waste`, \u003cspan pulumi-lang-nodejs=\"`random`\" pulumi-lang-dotnet=\"`Random`\" pulumi-lang-go=\"`random`\" pulumi-lang-python=\"`random`\" pulumi-lang-yaml=\"`random`\" pulumi-lang-java=\"`random`\"\u003e`random`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`priority`\" pulumi-lang-dotnet=\"`Priority`\" pulumi-lang-go=\"`priority`\" pulumi-lang-python=\"`priority`\" pulumi-lang-yaml=\"`priority`\" pulumi-lang-java=\"`priority`\"\u003e`priority`\u003c/span\u003e. For scaler type \u003cspan pulumi-lang-nodejs=\"`goatscaler`\" pulumi-lang-dotnet=\"`Goatscaler`\" pulumi-lang-go=\"`goatscaler`\" pulumi-lang-python=\"`goatscaler`\" pulumi-lang-yaml=\"`goatscaler`\" pulumi-lang-java=\"`goatscaler`\"\u003e`goatscaler`\u003c/span\u003e, only the `least-waste` expander is currently supported. For more information on these policies, see [Configure auto scaling](https://www.alibabacloud.com/help/en/container-service-for-kubernetes/latest/auto-scaling-of-nodes#section-3bg-2ko-inl)\n"},"gpuUtilizationThreshold":{"type":"string","description":"The scale-in threshold for GPU instance. Default is `0.5`.\n"},"maxGracefulTerminationSec":{"type":"integer","description":"Maximum number of seconds CA waits for pod termination when trying to scale down a node. Default is \u003cspan pulumi-lang-nodejs=\"`14400`\" pulumi-lang-dotnet=\"`14400`\" pulumi-lang-go=\"`14400`\" pulumi-lang-python=\"`14400`\" pulumi-lang-yaml=\"`14400`\" pulumi-lang-java=\"`14400`\"\u003e`14400`\u003c/span\u003e.\n"},"minReplicaCount":{"type":"integer","description":"Minimum number of replicas that a replica set or replication controller should have to allow their pods deletion in scale down. Default is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"priorities":{"type":"object","additionalProperties":{"type":"string"},"description":"Priority settings for autoscaling node pool scaling groups. This parameter only takes effect when \u003cspan pulumi-lang-nodejs=\"`expander`\" pulumi-lang-dotnet=\"`Expander`\" pulumi-lang-go=\"`expander`\" pulumi-lang-python=\"`expander`\" pulumi-lang-yaml=\"`expander`\" pulumi-lang-java=\"`expander`\"\u003e`expander`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`priority`\" pulumi-lang-dotnet=\"`Priority`\" pulumi-lang-go=\"`priority`\" pulumi-lang-python=\"`priority`\" pulumi-lang-yaml=\"`priority`\" pulumi-lang-java=\"`priority`\"\u003e`priority`\u003c/span\u003e. Only supports scaler type `cluster-autoscaler`. Uses key-value pairs where the key is the priority value, and the value is a comma-separated list of scaling group IDs. High numerical values indicate higher priority.\n"},"recycleNodeDeletionEnabled":{"type":"boolean","description":"Should CA delete the K8s node object when recycle node has scaled down successfully. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"scaleDownEnabled":{"type":"boolean","description":"Specify whether to allow the scale-in of nodes. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"scaleUpFromZero":{"type":"boolean","description":"Should CA scale up when there 0 ready nodes. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"scalerType":{"type":"string","description":"The type of autoscaler. Valid values: `cluster-autoscaler`, \u003cspan pulumi-lang-nodejs=\"`goatscaler`\" pulumi-lang-dotnet=\"`Goatscaler`\" pulumi-lang-go=\"`goatscaler`\" pulumi-lang-python=\"`goatscaler`\" pulumi-lang-yaml=\"`goatscaler`\" pulumi-lang-java=\"`goatscaler`\"\u003e`goatscaler`\u003c/span\u003e. For cluster version 1.22 and below, we only support `cluster-autoscaler`. When switching from `cluster-autoscaler` to \u003cspan pulumi-lang-nodejs=\"`goatscaler`\" pulumi-lang-dotnet=\"`Goatscaler`\" pulumi-lang-go=\"`goatscaler`\" pulumi-lang-python=\"`goatscaler`\" pulumi-lang-yaml=\"`goatscaler`\" pulumi-lang-java=\"`goatscaler`\"\u003e`goatscaler`\u003c/span\u003e, all configuration parameters will be automatically migrated.\n"},"scanInterval":{"type":"string","description":"The interval at which the cluster is reevaluated for scaling. Default is \u003cspan pulumi-lang-nodejs=\"`30s`\" pulumi-lang-dotnet=\"`30s`\" pulumi-lang-go=\"`30s`\" pulumi-lang-python=\"`30s`\" pulumi-lang-yaml=\"`30s`\" pulumi-lang-java=\"`30s`\"\u003e`30s`\u003c/span\u003e.\n"},"skipNodesWithLocalStorage":{"type":"boolean","description":"If true cluster autoscaler will never delete nodes with pods with local storage, e.g. EmptyDir or HostPath. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"skipNodesWithSystemPods":{"type":"boolean","description":"If true cluster autoscaler will never delete nodes with pods from kube-system (except for DaemonSet or mirror pods). Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"unneededDuration":{"type":"string","description":"Specify the time interval during which autoscaler does not perform scale-in operations after the most recent scale-out completion. Nodes added through scale-out can only be considered for scale-in after the period has elapsed. Default is \u003cspan pulumi-lang-nodejs=\"`10m`\" pulumi-lang-dotnet=\"`10m`\" pulumi-lang-go=\"`10m`\" pulumi-lang-python=\"`10m`\" pulumi-lang-yaml=\"`10m`\" pulumi-lang-java=\"`10m`\"\u003e`10m`\u003c/span\u003e.\n"},"utilizationThreshold":{"type":"string","description":"The scale-in a threshold. Default is `0.5`.\n"}},"type":"object"}},"alicloud:cs/cluster:Cluster":{"properties":{"agentVersion":{"type":"string"},"cidrBlock":{"type":"string"},"diskCategory":{"type":"string"},"diskSize":{"type":"integer"},"imageId":{"type":"string"},"instanceType":{"type":"string"},"isOutdated":{"type":"boolean"},"name":{"type":"string"},"namePrefix":{"type":"string"},"needSlb":{"type":"boolean"},"nodeNumber":{"type":"integer"},"nodes":{"type":"array","items":{"$ref":"#/types/alicloud:cs/ClusterNode:ClusterNode"}},"password":{"type":"string","secret":true},"releaseEip":{"type":"boolean"},"securityGroupId":{"type":"string"},"size":{"type":"integer","deprecationMessage":"Field 'size' has been deprecated from provider version 1.9.1. New field 'node_number' replaces it."},"slbId":{"type":"string"},"vpcId":{"type":"string"},"vswitchId":{"type":"string"}},"required":["agentVersion","cidrBlock","instanceType","name","nodes","password","securityGroupId","slbId","vpcId","vswitchId"],"inputProperties":{"cidrBlock":{"type":"string","willReplaceOnChanges":true},"diskCategory":{"type":"string","willReplaceOnChanges":true},"diskSize":{"type":"integer","willReplaceOnChanges":true},"imageId":{"type":"string","willReplaceOnChanges":true},"instanceType":{"type":"string","willReplaceOnChanges":true},"isOutdated":{"type":"boolean"},"name":{"type":"string"},"namePrefix":{"type":"string"},"needSlb":{"type":"boolean","willReplaceOnChanges":true},"nodeNumber":{"type":"integer"},"password":{"type":"string","secret":true,"willReplaceOnChanges":true},"releaseEip":{"type":"boolean"},"size":{"type":"integer","deprecationMessage":"Field 'size' has been deprecated from provider version 1.9.1. New field 'node_number' replaces it."},"vswitchId":{"type":"string","willReplaceOnChanges":true}},"requiredInputs":["cidrBlock","instanceType","password","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering Cluster resources.\n","properties":{"agentVersion":{"type":"string"},"cidrBlock":{"type":"string","willReplaceOnChanges":true},"diskCategory":{"type":"string","willReplaceOnChanges":true},"diskSize":{"type":"integer","willReplaceOnChanges":true},"imageId":{"type":"string","willReplaceOnChanges":true},"instanceType":{"type":"string","willReplaceOnChanges":true},"isOutdated":{"type":"boolean"},"name":{"type":"string"},"namePrefix":{"type":"string"},"needSlb":{"type":"boolean","willReplaceOnChanges":true},"nodeNumber":{"type":"integer"},"nodes":{"type":"array","items":{"$ref":"#/types/alicloud:cs/ClusterNode:ClusterNode"}},"password":{"type":"string","secret":true,"willReplaceOnChanges":true},"releaseEip":{"type":"boolean"},"securityGroupId":{"type":"string"},"size":{"type":"integer","deprecationMessage":"Field 'size' has been deprecated from provider version 1.9.1. New field 'node_number' replaces it."},"slbId":{"type":"string"},"vpcId":{"type":"string"},"vswitchId":{"type":"string","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cs/edgeKubernetes:EdgeKubernetes":{"description":"This resource will help you to manage a Edge Kubernetes Cluster in Alibaba Cloud Kubernetes Service, see [What is edge kubernetes](https://www.alibabacloud.com/help/en/ack/ack-managed-and-ack-dedicated/developer-reference/create-an-ack-edge-cluster).\n\n\u003e **NOTE:** Kubernetes cluster only supports VPC network and it can access internet while creating kubernetes cluster.\nA Nat Gateway and configuring a SNAT for it can ensure one VPC network access internet. If there is no nat gateway in the\nVPC, you can set \u003cspan pulumi-lang-nodejs=\"`newNatGateway`\" pulumi-lang-dotnet=\"`NewNatGateway`\" pulumi-lang-go=\"`newNatGateway`\" pulumi-lang-python=\"`new_nat_gateway`\" pulumi-lang-yaml=\"`newNatGateway`\" pulumi-lang-java=\"`newNatGateway`\"\u003e`new_nat_gateway`\u003c/span\u003e to \"true\" to create one automatically.\n\n\u003e **NOTE:** Creating kubernetes cluster need to install several packages and it will cost about 15 minutes. Please be patient.\n\n\u003e **NOTE:** The provider supports to download kube config, client certificate, client key and cluster ca certificate\nafter creating cluster successfully, and you can put them into the specified location, like '~/.kube/config'.\n\n\u003e **NOTE:** The provider supports disabling internet load balancer for API Server by setting \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`slbInternetEnabled`\" pulumi-lang-dotnet=\"`SlbInternetEnabled`\" pulumi-lang-go=\"`slbInternetEnabled`\" pulumi-lang-python=\"`slb_internet_enabled`\" pulumi-lang-yaml=\"`slbInternetEnabled`\" pulumi-lang-java=\"`slbInternetEnabled`\"\u003e`slb_internet_enabled`\u003c/span\u003e.\n\n\u003e **NOTE:** If you want to manage Kubernetes, you can use Kubernetes Provider.\n\n\u003e **NOTE:** Available since v1.103.0.\n\n\u003e **NOTE:** From version 1.185.0+, support new fields \u003cspan pulumi-lang-nodejs=\"`clusterSpec`\" pulumi-lang-dotnet=\"`ClusterSpec`\" pulumi-lang-go=\"`clusterSpec`\" pulumi-lang-python=\"`cluster_spec`\" pulumi-lang-yaml=\"`clusterSpec`\" pulumi-lang-java=\"`clusterSpec`\"\u003e`cluster_spec`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`runtime`\" pulumi-lang-dotnet=\"`Runtime`\" pulumi-lang-go=\"`runtime`\" pulumi-lang-python=\"`runtime`\" pulumi-lang-yaml=\"`runtime`\" pulumi-lang-java=\"`runtime`\"\u003e`runtime`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`loadBalancerSpec`\" pulumi-lang-dotnet=\"`LoadBalancerSpec`\" pulumi-lang-go=\"`loadBalancerSpec`\" pulumi-lang-python=\"`load_balancer_spec`\" pulumi-lang-yaml=\"`loadBalancerSpec`\" pulumi-lang-java=\"`loadBalancerSpec`\"\u003e`load_balancer_spec`\u003c/span\u003e.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 4,\n    memorySize: 8,\n    kubernetesNodeRole: \"Master\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultEdgeKubernetes = new alicloud.cs.EdgeKubernetes(\"default\", {\n    namePrefix: name,\n    workerVswitchIds: [defaultSwitch.id],\n    workerInstanceTypes: [defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id)],\n    version: \"1.26.3-aliyun.1\",\n    workerNumber: 1,\n    password: \"Test12345\",\n    podCidr: \"10.99.0.0/16\",\n    serviceCidr: \"172.16.0.0/16\",\n    workerInstanceChargeType: \"PostPaid\",\n    newNatGateway: true,\n    nodeCidrMask: 24,\n    installCloudMonitor: true,\n    slbInternetEnabled: true,\n    isEnterpriseSecurityGroup: true,\n    skipSetCertificateAuthority: true,\n    workerDataDisks: [{\n        category: \"cloud_ssd\",\n        size: \"200\",\n        encrypted: \"false\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=4,\n    memory_size=8,\n    kubernetes_node_role=\"Master\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_edge_kubernetes = alicloud.cs.EdgeKubernetes(\"default\",\n    name_prefix=name,\n    worker_vswitch_ids=[default_switch.id],\n    worker_instance_types=[default_get_instance_types.instance_types[0].id],\n    version=\"1.26.3-aliyun.1\",\n    worker_number=1,\n    password=\"Test12345\",\n    pod_cidr=\"10.99.0.0/16\",\n    service_cidr=\"172.16.0.0/16\",\n    worker_instance_charge_type=\"PostPaid\",\n    new_nat_gateway=True,\n    node_cidr_mask=24,\n    install_cloud_monitor=True,\n    slb_internet_enabled=True,\n    is_enterprise_security_group=True,\n    skip_set_certificate_authority=True,\n    worker_data_disks=[{\n        \"category\": \"cloud_ssd\",\n        \"size\": \"200\",\n        \"encrypted\": \"false\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 4,\n        MemorySize = 8,\n        KubernetesNodeRole = \"Master\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultEdgeKubernetes = new AliCloud.CS.EdgeKubernetes(\"default\", new()\n    {\n        NamePrefix = name,\n        WorkerVswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        WorkerInstanceTypes = new[]\n        {\n            defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        },\n        Version = \"1.26.3-aliyun.1\",\n        WorkerNumber = 1,\n        Password = \"Test12345\",\n        PodCidr = \"10.99.0.0/16\",\n        ServiceCidr = \"172.16.0.0/16\",\n        WorkerInstanceChargeType = \"PostPaid\",\n        NewNatGateway = true,\n        NodeCidrMask = 24,\n        InstallCloudMonitor = true,\n        SlbInternetEnabled = true,\n        IsEnterpriseSecurityGroup = true,\n        SkipSetCertificateAuthority = true,\n        WorkerDataDisks = new[]\n        {\n            new AliCloud.CS.Inputs.EdgeKubernetesWorkerDataDiskArgs\n            {\n                Category = \"cloud_ssd\",\n                Size = \"200\",\n                Encrypted = \"false\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone:   pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:       pulumi.IntRef(4),\n\t\t\tMemorySize:         pulumi.Float64Ref(8),\n\t\t\tKubernetesNodeRole: pulumi.StringRef(\"Master\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cs.NewEdgeKubernetes(ctx, \"default\", \u0026cs.EdgeKubernetesArgs{\n\t\t\tNamePrefix: pulumi.String(name),\n\t\t\tWorkerVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tWorkerInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\t},\n\t\t\tVersion:                     pulumi.String(\"1.26.3-aliyun.1\"),\n\t\t\tWorkerNumber:                pulumi.Int(1),\n\t\t\tPassword:                    pulumi.String(\"Test12345\"),\n\t\t\tPodCidr:                     pulumi.String(\"10.99.0.0/16\"),\n\t\t\tServiceCidr:                 pulumi.String(\"172.16.0.0/16\"),\n\t\t\tWorkerInstanceChargeType:    pulumi.String(\"PostPaid\"),\n\t\t\tNewNatGateway:               pulumi.Bool(true),\n\t\t\tNodeCidrMask:                pulumi.Int(24),\n\t\t\tInstallCloudMonitor:         pulumi.Bool(true),\n\t\t\tSlbInternetEnabled:          pulumi.Bool(true),\n\t\t\tIsEnterpriseSecurityGroup:   pulumi.Bool(true),\n\t\t\tSkipSetCertificateAuthority: pulumi.Bool(true),\n\t\t\tWorkerDataDisks: cs.EdgeKubernetesWorkerDataDiskArray{\n\t\t\t\t\u0026cs.EdgeKubernetesWorkerDataDiskArgs{\n\t\t\t\t\tCategory:  pulumi.String(\"cloud_ssd\"),\n\t\t\t\t\tSize:      pulumi.String(\"200\"),\n\t\t\t\t\tEncrypted: pulumi.String(\"false\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.EdgeKubernetes;\nimport com.pulumi.alicloud.cs.EdgeKubernetesArgs;\nimport com.pulumi.alicloud.cs.inputs.EdgeKubernetesWorkerDataDiskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(4)\n            .memorySize(8)\n            .kubernetesNodeRole(\"Master\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultEdgeKubernetes = new EdgeKubernetes(\"defaultEdgeKubernetes\", EdgeKubernetesArgs.builder()\n            .namePrefix(name)\n            .workerVswitchIds(defaultSwitch.id())\n            .workerInstanceTypes(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .version(\"1.26.3-aliyun.1\")\n            .workerNumber(1)\n            .password(\"Test12345\")\n            .podCidr(\"10.99.0.0/16\")\n            .serviceCidr(\"172.16.0.0/16\")\n            .workerInstanceChargeType(\"PostPaid\")\n            .newNatGateway(true)\n            .nodeCidrMask(24)\n            .installCloudMonitor(true)\n            .slbInternetEnabled(true)\n            .isEnterpriseSecurityGroup(true)\n            .skipSetCertificateAuthority(true)\n            .workerDataDisks(EdgeKubernetesWorkerDataDiskArgs.builder()\n                .category(\"cloud_ssd\")\n                .size(\"200\")\n                .encrypted(\"false\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultEdgeKubernetes:\n    type: alicloud:cs:EdgeKubernetes\n    name: default\n    properties:\n      namePrefix: ${name}\n      workerVswitchIds:\n        - ${defaultSwitch.id}\n      workerInstanceTypes:\n        - ${defaultGetInstanceTypes.instanceTypes[0].id}\n      version: 1.26.3-aliyun.1\n      workerNumber: 1\n      password: Test12345\n      podCidr: 10.99.0.0/16\n      serviceCidr: 172.16.0.0/16\n      workerInstanceChargeType: PostPaid\n      newNatGateway: true\n      nodeCidrMask: 24\n      installCloudMonitor: true\n      slbInternetEnabled: true\n      isEnterpriseSecurityGroup: true\n      skipSetCertificateAuthority: true\n      workerDataDisks:\n        - category: cloud_ssd\n          size: '200'\n          encrypted: 'false'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 4\n        memorySize: 8\n        kubernetesNodeRole: Master\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nYou could create a professional kubernetes edge cluster now.\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 4,\n    memorySize: 8,\n    kubernetesNodeRole: \"Master\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultEdgeKubernetes = new alicloud.cs.EdgeKubernetes(\"default\", {\n    namePrefix: name,\n    workerVswitchIds: [defaultSwitch.id],\n    workerInstanceTypes: [defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id)],\n    clusterSpec: \"ack.pro.small\",\n    workerNumber: 1,\n    password: \"Test12345\",\n    podCidr: \"10.99.0.0/16\",\n    serviceCidr: \"172.16.0.0/16\",\n    workerInstanceChargeType: \"PostPaid\",\n    newNatGateway: true,\n    nodeCidrMask: 24,\n    loadBalancerSpec: \"slb.s2.small\",\n    installCloudMonitor: true,\n    slbInternetEnabled: true,\n    isEnterpriseSecurityGroup: true,\n    skipSetCertificateAuthority: true,\n    workerDataDisks: [{\n        category: \"cloud_ssd\",\n        size: \"200\",\n        encrypted: \"false\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=4,\n    memory_size=8,\n    kubernetes_node_role=\"Master\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_edge_kubernetes = alicloud.cs.EdgeKubernetes(\"default\",\n    name_prefix=name,\n    worker_vswitch_ids=[default_switch.id],\n    worker_instance_types=[default_get_instance_types.instance_types[0].id],\n    cluster_spec=\"ack.pro.small\",\n    worker_number=1,\n    password=\"Test12345\",\n    pod_cidr=\"10.99.0.0/16\",\n    service_cidr=\"172.16.0.0/16\",\n    worker_instance_charge_type=\"PostPaid\",\n    new_nat_gateway=True,\n    node_cidr_mask=24,\n    load_balancer_spec=\"slb.s2.small\",\n    install_cloud_monitor=True,\n    slb_internet_enabled=True,\n    is_enterprise_security_group=True,\n    skip_set_certificate_authority=True,\n    worker_data_disks=[{\n        \"category\": \"cloud_ssd\",\n        \"size\": \"200\",\n        \"encrypted\": \"false\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 4,\n        MemorySize = 8,\n        KubernetesNodeRole = \"Master\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultEdgeKubernetes = new AliCloud.CS.EdgeKubernetes(\"default\", new()\n    {\n        NamePrefix = name,\n        WorkerVswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        WorkerInstanceTypes = new[]\n        {\n            defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        },\n        ClusterSpec = \"ack.pro.small\",\n        WorkerNumber = 1,\n        Password = \"Test12345\",\n        PodCidr = \"10.99.0.0/16\",\n        ServiceCidr = \"172.16.0.0/16\",\n        WorkerInstanceChargeType = \"PostPaid\",\n        NewNatGateway = true,\n        NodeCidrMask = 24,\n        LoadBalancerSpec = \"slb.s2.small\",\n        InstallCloudMonitor = true,\n        SlbInternetEnabled = true,\n        IsEnterpriseSecurityGroup = true,\n        SkipSetCertificateAuthority = true,\n        WorkerDataDisks = new[]\n        {\n            new AliCloud.CS.Inputs.EdgeKubernetesWorkerDataDiskArgs\n            {\n                Category = \"cloud_ssd\",\n                Size = \"200\",\n                Encrypted = \"false\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone:   pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:       pulumi.IntRef(4),\n\t\t\tMemorySize:         pulumi.Float64Ref(8),\n\t\t\tKubernetesNodeRole: pulumi.StringRef(\"Master\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cs.NewEdgeKubernetes(ctx, \"default\", \u0026cs.EdgeKubernetesArgs{\n\t\t\tNamePrefix: pulumi.String(name),\n\t\t\tWorkerVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tWorkerInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\t},\n\t\t\tClusterSpec:                 pulumi.String(\"ack.pro.small\"),\n\t\t\tWorkerNumber:                pulumi.Int(1),\n\t\t\tPassword:                    pulumi.String(\"Test12345\"),\n\t\t\tPodCidr:                     pulumi.String(\"10.99.0.0/16\"),\n\t\t\tServiceCidr:                 pulumi.String(\"172.16.0.0/16\"),\n\t\t\tWorkerInstanceChargeType:    pulumi.String(\"PostPaid\"),\n\t\t\tNewNatGateway:               pulumi.Bool(true),\n\t\t\tNodeCidrMask:                pulumi.Int(24),\n\t\t\tLoadBalancerSpec:            pulumi.String(\"slb.s2.small\"),\n\t\t\tInstallCloudMonitor:         pulumi.Bool(true),\n\t\t\tSlbInternetEnabled:          pulumi.Bool(true),\n\t\t\tIsEnterpriseSecurityGroup:   pulumi.Bool(true),\n\t\t\tSkipSetCertificateAuthority: pulumi.Bool(true),\n\t\t\tWorkerDataDisks: cs.EdgeKubernetesWorkerDataDiskArray{\n\t\t\t\t\u0026cs.EdgeKubernetesWorkerDataDiskArgs{\n\t\t\t\t\tCategory:  pulumi.String(\"cloud_ssd\"),\n\t\t\t\t\tSize:      pulumi.String(\"200\"),\n\t\t\t\t\tEncrypted: pulumi.String(\"false\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.EdgeKubernetes;\nimport com.pulumi.alicloud.cs.EdgeKubernetesArgs;\nimport com.pulumi.alicloud.cs.inputs.EdgeKubernetesWorkerDataDiskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(4)\n            .memorySize(8)\n            .kubernetesNodeRole(\"Master\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultEdgeKubernetes = new EdgeKubernetes(\"defaultEdgeKubernetes\", EdgeKubernetesArgs.builder()\n            .namePrefix(name)\n            .workerVswitchIds(defaultSwitch.id())\n            .workerInstanceTypes(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .clusterSpec(\"ack.pro.small\")\n            .workerNumber(1)\n            .password(\"Test12345\")\n            .podCidr(\"10.99.0.0/16\")\n            .serviceCidr(\"172.16.0.0/16\")\n            .workerInstanceChargeType(\"PostPaid\")\n            .newNatGateway(true)\n            .nodeCidrMask(24)\n            .loadBalancerSpec(\"slb.s2.small\")\n            .installCloudMonitor(true)\n            .slbInternetEnabled(true)\n            .isEnterpriseSecurityGroup(true)\n            .skipSetCertificateAuthority(true)\n            .workerDataDisks(EdgeKubernetesWorkerDataDiskArgs.builder()\n                .category(\"cloud_ssd\")\n                .size(\"200\")\n                .encrypted(\"false\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultEdgeKubernetes:\n    type: alicloud:cs:EdgeKubernetes\n    name: default\n    properties:\n      namePrefix: ${name}\n      workerVswitchIds:\n        - ${defaultSwitch.id}\n      workerInstanceTypes:\n        - ${defaultGetInstanceTypes.instanceTypes[0].id}\n      clusterSpec: ack.pro.small\n      workerNumber: 1\n      password: Test12345\n      podCidr: 10.99.0.0/16\n      serviceCidr: 172.16.0.0/16\n      workerInstanceChargeType: PostPaid\n      newNatGateway: true\n      nodeCidrMask: 24\n      loadBalancerSpec: slb.s2.small\n      installCloudMonitor: true\n      slbInternetEnabled: true\n      isEnterpriseSecurityGroup: true\n      skipSetCertificateAuthority: true\n      workerDataDisks:\n        - category: cloud_ssd\n          size: '200'\n          encrypted: 'false'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 4\n        memorySize: 8\n        kubernetesNodeRole: Master\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nKubernetes edge cluster can be imported using the id, e.g. Then complete the main.tf accords to the result of `pulumi preview`.\n\n```sh\n$ pulumi import alicloud:cs/edgeKubernetes:EdgeKubernetes main cluster-id\n```\n\n","properties":{"addons":{"type":"array","items":{"$ref":"#/types/alicloud:cs/EdgeKubernetesAddon:EdgeKubernetesAddon"},"description":"The addon you want to install in cluster. See \u003cspan pulumi-lang-nodejs=\"`addons`\" pulumi-lang-dotnet=\"`Addons`\" pulumi-lang-go=\"`addons`\" pulumi-lang-python=\"`addons`\" pulumi-lang-yaml=\"`addons`\" pulumi-lang-java=\"`addons`\"\u003e`addons`\u003c/span\u003e below.\n"},"availabilityZone":{"type":"string","description":"The ID of availability zone.\n"},"certificateAuthority":{"$ref":"#/types/alicloud:cs/EdgeKubernetesCertificateAuthority:EdgeKubernetesCertificateAuthority","description":"(Map, Deprecated from v1.248.0) Nested attribute containing certificate authority data for your cluster. Please use the attribute\u003cspan pulumi-lang-nodejs=\" certificateAuthority \" pulumi-lang-dotnet=\" CertificateAuthority \" pulumi-lang-go=\" certificateAuthority \" pulumi-lang-python=\" certificate_authority \" pulumi-lang-yaml=\" certificateAuthority \" pulumi-lang-java=\" certificateAuthority \"\u003e certificate_authority \u003c/span\u003eof new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to replace it.\n","deprecationMessage":"Field 'certificate_authority' has been deprecated from provider version 1.248.0. Please use the attribute 'certificate_authority' of new DataSource 'alicloud_cs_cluster_credential' to replace it."},"clientCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-cert.pem) for replace it.\n","deprecationMessage":"Field 'client_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-cert.pem) for replace it."},"clientKey":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_key attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-key.pem) for replace it.\n","deprecationMessage":"Field 'client_key' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_key' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-key.pem) for replace it."},"clusterCaCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.cluster_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it.\n\n*Removed params*\n","deprecationMessage":"Field 'cluster_ca_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.cluster_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it."},"clusterSpec":{"type":"string","description":"The cluster specifications of kubernetes cluster,which can be empty. Valid values:\n* ack.standard : Standard edge clusters.\n* ack.pro.small : Professional edge clusters.\n"},"connections":{"$ref":"#/types/alicloud:cs/EdgeKubernetesConnections:EdgeKubernetesConnections","description":"(Map) Map of kubernetes cluster connection information.\n"},"deletionProtection":{"type":"boolean","description":"Whether to enable cluster deletion protection.\n"},"installCloudMonitor":{"type":"boolean","description":"Install cloud monitor agent on ECS. default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"isEnterpriseSecurityGroup":{"type":"boolean","description":"Enable to create advanced security group. default: false. See [Advanced security group](https://www.alibabacloud.com/help/doc-detail/120621.htm).\n"},"keyName":{"type":"string","description":"The keypair of ssh login cluster node, you have to create it first. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n"},"kubeConfig":{"type":"string","description":"The path of kube config, like ~/.kube/config. Please use the attribute\u003cspan pulumi-lang-nodejs=\" outputFile \" pulumi-lang-dotnet=\" OutputFile \" pulumi-lang-go=\" outputFile \" pulumi-lang-python=\" output_file \" pulumi-lang-yaml=\" outputFile \" pulumi-lang-java=\" outputFile \"\u003e output_file \u003c/span\u003eof new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to replace it.\n","deprecationMessage":"Field 'kube_config' has been deprecated from provider version 1.187.0. Please use the attribute 'output_file' of new DataSource 'alicloud_cs_cluster_credential' to replace it."},"loadBalancerSpec":{"type":"string","description":"The cluster api server load balance instance specification. For more information on how to select a LB instance specification, see [SLB instance overview](https://help.aliyun.com/document_detail/85931.html).\n-\u003eNOTE: If you want to use `Flannel` as CNI network plugin, You need to specific the \u003cspan pulumi-lang-nodejs=\"`podCidr`\" pulumi-lang-dotnet=\"`PodCidr`\" pulumi-lang-go=\"`podCidr`\" pulumi-lang-python=\"`pod_cidr`\" pulumi-lang-yaml=\"`podCidr`\" pulumi-lang-java=\"`podCidr`\"\u003e`pod_cidr`\u003c/span\u003e field and addons with \u003cspan pulumi-lang-nodejs=\"`flannel`\" pulumi-lang-dotnet=\"`Flannel`\" pulumi-lang-go=\"`flannel`\" pulumi-lang-python=\"`flannel`\" pulumi-lang-yaml=\"`flannel`\" pulumi-lang-java=\"`flannel`\"\u003e`flannel`\u003c/span\u003e.\n\n*Worker params*\n"},"logConfig":{"$ref":"#/types/alicloud:cs/EdgeKubernetesLogConfig:EdgeKubernetesLogConfig","description":"A list of one element containing information about the associated log store. See \u003cspan pulumi-lang-nodejs=\"`logConfig`\" pulumi-lang-dotnet=\"`LogConfig`\" pulumi-lang-go=\"`logConfig`\" pulumi-lang-python=\"`log_config`\" pulumi-lang-yaml=\"`logConfig`\" pulumi-lang-java=\"`logConfig`\"\u003e`log_config`\u003c/span\u003e below.\n","deprecationMessage":"Field 'log_config' has been removed from provider version 1.103.0. New field 'addons' replaces it."},"name":{"type":"string","description":"The kubernetes cluster's name. It is unique in one Alicloud account.\n"},"namePrefix":{"type":"string","description":"The kubernetes cluster name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e. If it is specified, terraform will using it to build the only cluster name. Default to \"Terraform-Creation\".\n"},"natGatewayId":{"type":"string","description":"The ID of nat gateway used to launch kubernetes cluster.\n"},"newNatGateway":{"type":"boolean","description":"Whether to create a new nat gateway while creating kubernetes cluster. Default to true. Then openapi in Alibaba Cloud are not all on intranet, So turn this option on is a good choice.\n"},"nodeCidrMask":{"type":"integer","description":"The node cidr block to specific how many pods can run on single node. 24-28 is allowed. 24 means 2^(32-24)-1=255 and the node can run at most 255 pods. default: 24\n"},"password":{"type":"string","description":"The password of ssh login cluster node. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","secret":true},"podCidr":{"type":"string","description":"[Flannel Specific] The CIDR block for the pod network when using Flannel.\n"},"proxyMode":{"type":"string","description":"Proxy mode is option of kube-proxy. options: iptables|ipvs. default: ipvs.\n"},"rdsInstances":{"type":"array","items":{"type":"string"},"description":"RDS instance list, You can choose which RDS instances whitelist to add instances to.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group,by default these cloud resources are automatically assigned to the default resource group.\n"},"retainResources":{"type":"array","items":{"type":"string"},"description":"Resources that are automatically created during cluster creation, including NAT gateways, SNAT rules, SLB instances, and RAM Role, will be deleted. Resources that are manually created after you create the cluster, such as SLB instances for Services, will also be deleted. If you need to retain resources, please configure with \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e. There are several aspects to pay attention to when using \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e to retain resources. After configuring \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e into the terraform configuration manifest file, you first need to run `pulumi up`.Then execute `terraform destroy`.\n"},"runtime":{"$ref":"#/types/alicloud:cs/EdgeKubernetesRuntime:EdgeKubernetesRuntime","description":"The runtime of containers. If you select another container runtime, see [Comparison of Docker, containerd, and Sandboxed-Container](https://www.alibabacloud.com/help/doc-detail/160313.htm). See \u003cspan pulumi-lang-nodejs=\"`runtime`\" pulumi-lang-dotnet=\"`Runtime`\" pulumi-lang-go=\"`runtime`\" pulumi-lang-python=\"`runtime`\" pulumi-lang-yaml=\"`runtime`\" pulumi-lang-java=\"`runtime`\"\u003e`runtime`\u003c/span\u003e below.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group to which the ECS instances in the cluster belong. If it is not specified, a new Security group will be built.\n"},"serviceCidr":{"type":"string","description":"The CIDR block for the service network. It cannot be duplicated with the VPC CIDR and CIDR used by Kubernetes cluster in VPC, cannot be modified after creation.\n"},"skipSetCertificateAuthority":{"type":"boolean","description":"Configure whether to save certificate authority data for your cluster to attribute \u003cspan pulumi-lang-nodejs=\"`certificateAuthority`\" pulumi-lang-dotnet=\"`CertificateAuthority`\" pulumi-lang-go=\"`certificateAuthority`\" pulumi-lang-python=\"`certificate_authority`\" pulumi-lang-yaml=\"`certificateAuthority`\" pulumi-lang-java=\"`certificateAuthority`\"\u003e`certificate_authority`\u003c/span\u003e. For cluster security, recommended configuration as \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Will be removed with attribute\u003cspan pulumi-lang-nodejs=\" certificateAuthority \" pulumi-lang-dotnet=\" CertificateAuthority \" pulumi-lang-go=\" certificateAuthority \" pulumi-lang-python=\" certificate_authority \" pulumi-lang-yaml=\" certificateAuthority \" pulumi-lang-java=\" certificateAuthority \"\u003e certificate_authority \u003c/span\u003eremoved.\n\n*Network params*\n"},"slbInternet":{"type":"string","description":"The public ip of load balancer.\n"},"slbInternetEnabled":{"type":"boolean","description":"Whether to create internet load balancer for API Server. Default to true.\n"},"slbIntranet":{"type":"string","description":"The ID of private load balancer where the current cluster master node is located.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Default nil, A map of tags assigned to the kubernetes cluster and work node.\n"},"userData":{"type":"string","description":"Windows instances support batch and PowerShell scripts. If your script file is larger than 1 KB, we recommend that you upload the script to Object Storage Service (OSS) and pull it through the internal endpoint of your OSS bucket.\n"},"version":{"type":"string","description":"Desired Kubernetes version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except you set a higher version number. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by ACK.\n"},"vpcId":{"type":"string","description":"The ID of VPC where the current cluster is located.\n"},"workerDataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:cs/EdgeKubernetesWorkerDataDisk:EdgeKubernetesWorkerDataDisk"},"description":"The data disk configurations of worker nodes, such as the disk type and disk size. See \u003cspan pulumi-lang-nodejs=\"`workerDataDisks`\" pulumi-lang-dotnet=\"`WorkerDataDisks`\" pulumi-lang-go=\"`workerDataDisks`\" pulumi-lang-python=\"`worker_data_disks`\" pulumi-lang-yaml=\"`workerDataDisks`\" pulumi-lang-java=\"`workerDataDisks`\"\u003e`worker_data_disks`\u003c/span\u003e below.\n"},"workerDiskCategory":{"type":"string","description":"The system disk category of worker node. Its valid value are \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e and . Default to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n"},"workerDiskPerformanceLevel":{"type":"string","description":"Worker node system disk performance level, when \u003cspan pulumi-lang-nodejs=\"`workerDiskCategory`\" pulumi-lang-dotnet=\"`WorkerDiskCategory`\" pulumi-lang-go=\"`workerDiskCategory`\" pulumi-lang-python=\"`worker_disk_category`\" pulumi-lang-yaml=\"`workerDiskCategory`\" pulumi-lang-java=\"`workerDiskCategory`\"\u003e`worker_disk_category`\u003c/span\u003e values \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, the optional values are `PL0`, `PL1`, `PL2` or `PL3`, but the specific performance level is related to the disk capacity. For more information, see [Enhanced SSDs](https://www.alibabacloud.com/help/doc-detail/122389.htm). Default is `PL1`.\n"},"workerDiskSize":{"type":"integer","description":"The system disk size of worker node. Its valid value range [20~32768] in GB. Default to 40.\n"},"workerDiskSnapshotPolicyId":{"type":"string","description":"Worker node system disk auto snapshot policy.\n\n*Computed params*\n\nYou can set some file paths to save\u003cspan pulumi-lang-nodejs=\" kubeConfig \" pulumi-lang-dotnet=\" KubeConfig \" pulumi-lang-go=\" kubeConfig \" pulumi-lang-python=\" kube_config \" pulumi-lang-yaml=\" kubeConfig \" pulumi-lang-java=\" kubeConfig \"\u003e kube_config \u003c/span\u003einformation, but this way is cumbersome. Since version 1.105.0, we've written it to tf state file. About its use，see export attribute certificate_authority. From version 1.187.0+, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kube_config.\n"},"workerInstanceChargeType":{"type":"string","description":"Worker payment type, its valid value is `PostPaid`. Defaults to `PostPaid`. More charge details in [ACK@edge charge](https://help.aliyun.com/document_detail/178718.html).\n"},"workerInstanceTypes":{"type":"array","items":{"type":"string"},"description":"The instance types of worker node, you can set multiple types to avoid NoStock of a certain type.\n"},"workerNodes":{"type":"array","items":{"$ref":"#/types/alicloud:cs/EdgeKubernetesWorkerNode:EdgeKubernetesWorkerNode"},"description":"List of cluster worker nodes.\n"},"workerNumber":{"type":"integer","description":"The cloud worker node number of the edge kubernetes cluster. Default to 1. It is limited up to 50 and if you want to enlarge it, please apply white list or contact with us.\n"},"workerRamRoleName":{"type":"string","description":"The RamRole Name attached to worker node.\n"},"workerVswitchIds":{"type":"array","items":{"type":"string"},"description":"The vswitches used by workers.\n"}},"required":["availabilityZone","certificateAuthority","clusterSpec","connections","isEnterpriseSecurityGroup","loadBalancerSpec","name","natGatewayId","resourceGroupId","securityGroupId","slbInternet","slbIntranet","version","vpcId","workerInstanceTypes","workerNodes","workerNumber","workerRamRoleName","workerVswitchIds"],"inputProperties":{"addons":{"type":"array","items":{"$ref":"#/types/alicloud:cs/EdgeKubernetesAddon:EdgeKubernetesAddon"},"description":"The addon you want to install in cluster. See \u003cspan pulumi-lang-nodejs=\"`addons`\" pulumi-lang-dotnet=\"`Addons`\" pulumi-lang-go=\"`addons`\" pulumi-lang-python=\"`addons`\" pulumi-lang-yaml=\"`addons`\" pulumi-lang-java=\"`addons`\"\u003e`addons`\u003c/span\u003e below.\n"},"availabilityZone":{"type":"string","description":"The ID of availability zone.\n"},"clientCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-cert.pem) for replace it.\n","deprecationMessage":"Field 'client_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-cert.pem) for replace it."},"clientKey":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_key attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-key.pem) for replace it.\n","deprecationMessage":"Field 'client_key' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_key' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-key.pem) for replace it."},"clusterCaCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.cluster_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it.\n\n*Removed params*\n","deprecationMessage":"Field 'cluster_ca_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.cluster_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it."},"clusterSpec":{"type":"string","description":"The cluster specifications of kubernetes cluster,which can be empty. Valid values:\n* ack.standard : Standard edge clusters.\n* ack.pro.small : Professional edge clusters.\n"},"deletionProtection":{"type":"boolean","description":"Whether to enable cluster deletion protection.\n"},"installCloudMonitor":{"type":"boolean","description":"Install cloud monitor agent on ECS. default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"isEnterpriseSecurityGroup":{"type":"boolean","description":"Enable to create advanced security group. default: false. See [Advanced security group](https://www.alibabacloud.com/help/doc-detail/120621.htm).\n"},"keyName":{"type":"string","description":"The keypair of ssh login cluster node, you have to create it first. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n"},"kubeConfig":{"type":"string","description":"The path of kube config, like ~/.kube/config. Please use the attribute\u003cspan pulumi-lang-nodejs=\" outputFile \" pulumi-lang-dotnet=\" OutputFile \" pulumi-lang-go=\" outputFile \" pulumi-lang-python=\" output_file \" pulumi-lang-yaml=\" outputFile \" pulumi-lang-java=\" outputFile \"\u003e output_file \u003c/span\u003eof new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to replace it.\n","deprecationMessage":"Field 'kube_config' has been deprecated from provider version 1.187.0. Please use the attribute 'output_file' of new DataSource 'alicloud_cs_cluster_credential' to replace it."},"loadBalancerSpec":{"type":"string","description":"The cluster api server load balance instance specification. For more information on how to select a LB instance specification, see [SLB instance overview](https://help.aliyun.com/document_detail/85931.html).\n-\u003eNOTE: If you want to use `Flannel` as CNI network plugin, You need to specific the \u003cspan pulumi-lang-nodejs=\"`podCidr`\" pulumi-lang-dotnet=\"`PodCidr`\" pulumi-lang-go=\"`podCidr`\" pulumi-lang-python=\"`pod_cidr`\" pulumi-lang-yaml=\"`podCidr`\" pulumi-lang-java=\"`podCidr`\"\u003e`pod_cidr`\u003c/span\u003e field and addons with \u003cspan pulumi-lang-nodejs=\"`flannel`\" pulumi-lang-dotnet=\"`Flannel`\" pulumi-lang-go=\"`flannel`\" pulumi-lang-python=\"`flannel`\" pulumi-lang-yaml=\"`flannel`\" pulumi-lang-java=\"`flannel`\"\u003e`flannel`\u003c/span\u003e.\n\n*Worker params*\n"},"logConfig":{"$ref":"#/types/alicloud:cs/EdgeKubernetesLogConfig:EdgeKubernetesLogConfig","description":"A list of one element containing information about the associated log store. See \u003cspan pulumi-lang-nodejs=\"`logConfig`\" pulumi-lang-dotnet=\"`LogConfig`\" pulumi-lang-go=\"`logConfig`\" pulumi-lang-python=\"`log_config`\" pulumi-lang-yaml=\"`logConfig`\" pulumi-lang-java=\"`logConfig`\"\u003e`log_config`\u003c/span\u003e below.\n","deprecationMessage":"Field 'log_config' has been removed from provider version 1.103.0. New field 'addons' replaces it."},"name":{"type":"string","description":"The kubernetes cluster's name. It is unique in one Alicloud account.\n"},"namePrefix":{"type":"string","description":"The kubernetes cluster name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e. If it is specified, terraform will using it to build the only cluster name. Default to \"Terraform-Creation\".\n"},"newNatGateway":{"type":"boolean","description":"Whether to create a new nat gateway while creating kubernetes cluster. Default to true. Then openapi in Alibaba Cloud are not all on intranet, So turn this option on is a good choice.\n"},"nodeCidrMask":{"type":"integer","description":"The node cidr block to specific how many pods can run on single node. 24-28 is allowed. 24 means 2^(32-24)-1=255 and the node can run at most 255 pods. default: 24\n"},"password":{"type":"string","description":"The password of ssh login cluster node. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","secret":true},"podCidr":{"type":"string","description":"[Flannel Specific] The CIDR block for the pod network when using Flannel.\n"},"proxyMode":{"type":"string","description":"Proxy mode is option of kube-proxy. options: iptables|ipvs. default: ipvs.\n"},"rdsInstances":{"type":"array","items":{"type":"string"},"description":"RDS instance list, You can choose which RDS instances whitelist to add instances to.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group,by default these cloud resources are automatically assigned to the default resource group.\n"},"retainResources":{"type":"array","items":{"type":"string"},"description":"Resources that are automatically created during cluster creation, including NAT gateways, SNAT rules, SLB instances, and RAM Role, will be deleted. Resources that are manually created after you create the cluster, such as SLB instances for Services, will also be deleted. If you need to retain resources, please configure with \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e. There are several aspects to pay attention to when using \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e to retain resources. After configuring \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e into the terraform configuration manifest file, you first need to run `pulumi up`.Then execute `terraform destroy`.\n"},"runtime":{"$ref":"#/types/alicloud:cs/EdgeKubernetesRuntime:EdgeKubernetesRuntime","description":"The runtime of containers. If you select another container runtime, see [Comparison of Docker, containerd, and Sandboxed-Container](https://www.alibabacloud.com/help/doc-detail/160313.htm). See \u003cspan pulumi-lang-nodejs=\"`runtime`\" pulumi-lang-dotnet=\"`Runtime`\" pulumi-lang-go=\"`runtime`\" pulumi-lang-python=\"`runtime`\" pulumi-lang-yaml=\"`runtime`\" pulumi-lang-java=\"`runtime`\"\u003e`runtime`\u003c/span\u003e below.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group to which the ECS instances in the cluster belong. If it is not specified, a new Security group will be built.\n"},"serviceCidr":{"type":"string","description":"The CIDR block for the service network. It cannot be duplicated with the VPC CIDR and CIDR used by Kubernetes cluster in VPC, cannot be modified after creation.\n"},"skipSetCertificateAuthority":{"type":"boolean","description":"Configure whether to save certificate authority data for your cluster to attribute \u003cspan pulumi-lang-nodejs=\"`certificateAuthority`\" pulumi-lang-dotnet=\"`CertificateAuthority`\" pulumi-lang-go=\"`certificateAuthority`\" pulumi-lang-python=\"`certificate_authority`\" pulumi-lang-yaml=\"`certificateAuthority`\" pulumi-lang-java=\"`certificateAuthority`\"\u003e`certificate_authority`\u003c/span\u003e. For cluster security, recommended configuration as \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Will be removed with attribute\u003cspan pulumi-lang-nodejs=\" certificateAuthority \" pulumi-lang-dotnet=\" CertificateAuthority \" pulumi-lang-go=\" certificateAuthority \" pulumi-lang-python=\" certificate_authority \" pulumi-lang-yaml=\" certificateAuthority \" pulumi-lang-java=\" certificateAuthority \"\u003e certificate_authority \u003c/span\u003eremoved.\n\n*Network params*\n"},"slbInternetEnabled":{"type":"boolean","description":"Whether to create internet load balancer for API Server. Default to true.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Default nil, A map of tags assigned to the kubernetes cluster and work node.\n"},"userData":{"type":"string","description":"Windows instances support batch and PowerShell scripts. If your script file is larger than 1 KB, we recommend that you upload the script to Object Storage Service (OSS) and pull it through the internal endpoint of your OSS bucket.\n"},"version":{"type":"string","description":"Desired Kubernetes version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except you set a higher version number. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by ACK.\n"},"workerDataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:cs/EdgeKubernetesWorkerDataDisk:EdgeKubernetesWorkerDataDisk"},"description":"The data disk configurations of worker nodes, such as the disk type and disk size. See \u003cspan pulumi-lang-nodejs=\"`workerDataDisks`\" pulumi-lang-dotnet=\"`WorkerDataDisks`\" pulumi-lang-go=\"`workerDataDisks`\" pulumi-lang-python=\"`worker_data_disks`\" pulumi-lang-yaml=\"`workerDataDisks`\" pulumi-lang-java=\"`workerDataDisks`\"\u003e`worker_data_disks`\u003c/span\u003e below.\n"},"workerDiskCategory":{"type":"string","description":"The system disk category of worker node. Its valid value are \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e and . Default to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n"},"workerDiskPerformanceLevel":{"type":"string","description":"Worker node system disk performance level, when \u003cspan pulumi-lang-nodejs=\"`workerDiskCategory`\" pulumi-lang-dotnet=\"`WorkerDiskCategory`\" pulumi-lang-go=\"`workerDiskCategory`\" pulumi-lang-python=\"`worker_disk_category`\" pulumi-lang-yaml=\"`workerDiskCategory`\" pulumi-lang-java=\"`workerDiskCategory`\"\u003e`worker_disk_category`\u003c/span\u003e values \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, the optional values are `PL0`, `PL1`, `PL2` or `PL3`, but the specific performance level is related to the disk capacity. For more information, see [Enhanced SSDs](https://www.alibabacloud.com/help/doc-detail/122389.htm). Default is `PL1`.\n"},"workerDiskSize":{"type":"integer","description":"The system disk size of worker node. Its valid value range [20~32768] in GB. Default to 40.\n"},"workerDiskSnapshotPolicyId":{"type":"string","description":"Worker node system disk auto snapshot policy.\n\n*Computed params*\n\nYou can set some file paths to save\u003cspan pulumi-lang-nodejs=\" kubeConfig \" pulumi-lang-dotnet=\" KubeConfig \" pulumi-lang-go=\" kubeConfig \" pulumi-lang-python=\" kube_config \" pulumi-lang-yaml=\" kubeConfig \" pulumi-lang-java=\" kubeConfig \"\u003e kube_config \u003c/span\u003einformation, but this way is cumbersome. Since version 1.105.0, we've written it to tf state file. About its use，see export attribute certificate_authority. From version 1.187.0+, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kube_config.\n"},"workerInstanceChargeType":{"type":"string","description":"Worker payment type, its valid value is `PostPaid`. Defaults to `PostPaid`. More charge details in [ACK@edge charge](https://help.aliyun.com/document_detail/178718.html).\n"},"workerInstanceTypes":{"type":"array","items":{"type":"string"},"description":"The instance types of worker node, you can set multiple types to avoid NoStock of a certain type.\n"},"workerNumber":{"type":"integer","description":"The cloud worker node number of the edge kubernetes cluster. Default to 1. It is limited up to 50 and if you want to enlarge it, please apply white list or contact with us.\n"},"workerVswitchIds":{"type":"array","items":{"type":"string"},"description":"The vswitches used by workers.\n"}},"requiredInputs":["workerInstanceTypes","workerNumber","workerVswitchIds"],"stateInputs":{"description":"Input properties used for looking up and filtering EdgeKubernetes resources.\n","properties":{"addons":{"type":"array","items":{"$ref":"#/types/alicloud:cs/EdgeKubernetesAddon:EdgeKubernetesAddon"},"description":"The addon you want to install in cluster. See \u003cspan pulumi-lang-nodejs=\"`addons`\" pulumi-lang-dotnet=\"`Addons`\" pulumi-lang-go=\"`addons`\" pulumi-lang-python=\"`addons`\" pulumi-lang-yaml=\"`addons`\" pulumi-lang-java=\"`addons`\"\u003e`addons`\u003c/span\u003e below.\n"},"availabilityZone":{"type":"string","description":"The ID of availability zone.\n"},"certificateAuthority":{"$ref":"#/types/alicloud:cs/EdgeKubernetesCertificateAuthority:EdgeKubernetesCertificateAuthority","description":"(Map, Deprecated from v1.248.0) Nested attribute containing certificate authority data for your cluster. Please use the attribute\u003cspan pulumi-lang-nodejs=\" certificateAuthority \" pulumi-lang-dotnet=\" CertificateAuthority \" pulumi-lang-go=\" certificateAuthority \" pulumi-lang-python=\" certificate_authority \" pulumi-lang-yaml=\" certificateAuthority \" pulumi-lang-java=\" certificateAuthority \"\u003e certificate_authority \u003c/span\u003eof new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to replace it.\n","deprecationMessage":"Field 'certificate_authority' has been deprecated from provider version 1.248.0. Please use the attribute 'certificate_authority' of new DataSource 'alicloud_cs_cluster_credential' to replace it."},"clientCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-cert.pem) for replace it.\n","deprecationMessage":"Field 'client_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-cert.pem) for replace it."},"clientKey":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_key attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-key.pem) for replace it.\n","deprecationMessage":"Field 'client_key' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_key' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-key.pem) for replace it."},"clusterCaCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.cluster_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it.\n\n*Removed params*\n","deprecationMessage":"Field 'cluster_ca_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.cluster_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it."},"clusterSpec":{"type":"string","description":"The cluster specifications of kubernetes cluster,which can be empty. Valid values:\n* ack.standard : Standard edge clusters.\n* ack.pro.small : Professional edge clusters.\n"},"connections":{"$ref":"#/types/alicloud:cs/EdgeKubernetesConnections:EdgeKubernetesConnections","description":"(Map) Map of kubernetes cluster connection information.\n"},"deletionProtection":{"type":"boolean","description":"Whether to enable cluster deletion protection.\n"},"installCloudMonitor":{"type":"boolean","description":"Install cloud monitor agent on ECS. default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"isEnterpriseSecurityGroup":{"type":"boolean","description":"Enable to create advanced security group. default: false. See [Advanced security group](https://www.alibabacloud.com/help/doc-detail/120621.htm).\n"},"keyName":{"type":"string","description":"The keypair of ssh login cluster node, you have to create it first. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n"},"kubeConfig":{"type":"string","description":"The path of kube config, like ~/.kube/config. Please use the attribute\u003cspan pulumi-lang-nodejs=\" outputFile \" pulumi-lang-dotnet=\" OutputFile \" pulumi-lang-go=\" outputFile \" pulumi-lang-python=\" output_file \" pulumi-lang-yaml=\" outputFile \" pulumi-lang-java=\" outputFile \"\u003e output_file \u003c/span\u003eof new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to replace it.\n","deprecationMessage":"Field 'kube_config' has been deprecated from provider version 1.187.0. Please use the attribute 'output_file' of new DataSource 'alicloud_cs_cluster_credential' to replace it."},"loadBalancerSpec":{"type":"string","description":"The cluster api server load balance instance specification. For more information on how to select a LB instance specification, see [SLB instance overview](https://help.aliyun.com/document_detail/85931.html).\n-\u003eNOTE: If you want to use `Flannel` as CNI network plugin, You need to specific the \u003cspan pulumi-lang-nodejs=\"`podCidr`\" pulumi-lang-dotnet=\"`PodCidr`\" pulumi-lang-go=\"`podCidr`\" pulumi-lang-python=\"`pod_cidr`\" pulumi-lang-yaml=\"`podCidr`\" pulumi-lang-java=\"`podCidr`\"\u003e`pod_cidr`\u003c/span\u003e field and addons with \u003cspan pulumi-lang-nodejs=\"`flannel`\" pulumi-lang-dotnet=\"`Flannel`\" pulumi-lang-go=\"`flannel`\" pulumi-lang-python=\"`flannel`\" pulumi-lang-yaml=\"`flannel`\" pulumi-lang-java=\"`flannel`\"\u003e`flannel`\u003c/span\u003e.\n\n*Worker params*\n"},"logConfig":{"$ref":"#/types/alicloud:cs/EdgeKubernetesLogConfig:EdgeKubernetesLogConfig","description":"A list of one element containing information about the associated log store. See \u003cspan pulumi-lang-nodejs=\"`logConfig`\" pulumi-lang-dotnet=\"`LogConfig`\" pulumi-lang-go=\"`logConfig`\" pulumi-lang-python=\"`log_config`\" pulumi-lang-yaml=\"`logConfig`\" pulumi-lang-java=\"`logConfig`\"\u003e`log_config`\u003c/span\u003e below.\n","deprecationMessage":"Field 'log_config' has been removed from provider version 1.103.0. New field 'addons' replaces it."},"name":{"type":"string","description":"The kubernetes cluster's name. It is unique in one Alicloud account.\n"},"namePrefix":{"type":"string","description":"The kubernetes cluster name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e. If it is specified, terraform will using it to build the only cluster name. Default to \"Terraform-Creation\".\n"},"natGatewayId":{"type":"string","description":"The ID of nat gateway used to launch kubernetes cluster.\n"},"newNatGateway":{"type":"boolean","description":"Whether to create a new nat gateway while creating kubernetes cluster. Default to true. Then openapi in Alibaba Cloud are not all on intranet, So turn this option on is a good choice.\n"},"nodeCidrMask":{"type":"integer","description":"The node cidr block to specific how many pods can run on single node. 24-28 is allowed. 24 means 2^(32-24)-1=255 and the node can run at most 255 pods. default: 24\n"},"password":{"type":"string","description":"The password of ssh login cluster node. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","secret":true},"podCidr":{"type":"string","description":"[Flannel Specific] The CIDR block for the pod network when using Flannel.\n"},"proxyMode":{"type":"string","description":"Proxy mode is option of kube-proxy. options: iptables|ipvs. default: ipvs.\n"},"rdsInstances":{"type":"array","items":{"type":"string"},"description":"RDS instance list, You can choose which RDS instances whitelist to add instances to.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group,by default these cloud resources are automatically assigned to the default resource group.\n"},"retainResources":{"type":"array","items":{"type":"string"},"description":"Resources that are automatically created during cluster creation, including NAT gateways, SNAT rules, SLB instances, and RAM Role, will be deleted. Resources that are manually created after you create the cluster, such as SLB instances for Services, will also be deleted. If you need to retain resources, please configure with \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e. There are several aspects to pay attention to when using \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e to retain resources. After configuring \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e into the terraform configuration manifest file, you first need to run `pulumi up`.Then execute `terraform destroy`.\n"},"runtime":{"$ref":"#/types/alicloud:cs/EdgeKubernetesRuntime:EdgeKubernetesRuntime","description":"The runtime of containers. If you select another container runtime, see [Comparison of Docker, containerd, and Sandboxed-Container](https://www.alibabacloud.com/help/doc-detail/160313.htm). See \u003cspan pulumi-lang-nodejs=\"`runtime`\" pulumi-lang-dotnet=\"`Runtime`\" pulumi-lang-go=\"`runtime`\" pulumi-lang-python=\"`runtime`\" pulumi-lang-yaml=\"`runtime`\" pulumi-lang-java=\"`runtime`\"\u003e`runtime`\u003c/span\u003e below.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group to which the ECS instances in the cluster belong. If it is not specified, a new Security group will be built.\n"},"serviceCidr":{"type":"string","description":"The CIDR block for the service network. It cannot be duplicated with the VPC CIDR and CIDR used by Kubernetes cluster in VPC, cannot be modified after creation.\n"},"skipSetCertificateAuthority":{"type":"boolean","description":"Configure whether to save certificate authority data for your cluster to attribute \u003cspan pulumi-lang-nodejs=\"`certificateAuthority`\" pulumi-lang-dotnet=\"`CertificateAuthority`\" pulumi-lang-go=\"`certificateAuthority`\" pulumi-lang-python=\"`certificate_authority`\" pulumi-lang-yaml=\"`certificateAuthority`\" pulumi-lang-java=\"`certificateAuthority`\"\u003e`certificate_authority`\u003c/span\u003e. For cluster security, recommended configuration as \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Will be removed with attribute\u003cspan pulumi-lang-nodejs=\" certificateAuthority \" pulumi-lang-dotnet=\" CertificateAuthority \" pulumi-lang-go=\" certificateAuthority \" pulumi-lang-python=\" certificate_authority \" pulumi-lang-yaml=\" certificateAuthority \" pulumi-lang-java=\" certificateAuthority \"\u003e certificate_authority \u003c/span\u003eremoved.\n\n*Network params*\n"},"slbInternet":{"type":"string","description":"The public ip of load balancer.\n"},"slbInternetEnabled":{"type":"boolean","description":"Whether to create internet load balancer for API Server. Default to true.\n"},"slbIntranet":{"type":"string","description":"The ID of private load balancer where the current cluster master node is located.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Default nil, A map of tags assigned to the kubernetes cluster and work node.\n"},"userData":{"type":"string","description":"Windows instances support batch and PowerShell scripts. If your script file is larger than 1 KB, we recommend that you upload the script to Object Storage Service (OSS) and pull it through the internal endpoint of your OSS bucket.\n"},"version":{"type":"string","description":"Desired Kubernetes version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except you set a higher version number. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by ACK.\n"},"vpcId":{"type":"string","description":"The ID of VPC where the current cluster is located.\n"},"workerDataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:cs/EdgeKubernetesWorkerDataDisk:EdgeKubernetesWorkerDataDisk"},"description":"The data disk configurations of worker nodes, such as the disk type and disk size. See \u003cspan pulumi-lang-nodejs=\"`workerDataDisks`\" pulumi-lang-dotnet=\"`WorkerDataDisks`\" pulumi-lang-go=\"`workerDataDisks`\" pulumi-lang-python=\"`worker_data_disks`\" pulumi-lang-yaml=\"`workerDataDisks`\" pulumi-lang-java=\"`workerDataDisks`\"\u003e`worker_data_disks`\u003c/span\u003e below.\n"},"workerDiskCategory":{"type":"string","description":"The system disk category of worker node. Its valid value are \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e and . Default to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n"},"workerDiskPerformanceLevel":{"type":"string","description":"Worker node system disk performance level, when \u003cspan pulumi-lang-nodejs=\"`workerDiskCategory`\" pulumi-lang-dotnet=\"`WorkerDiskCategory`\" pulumi-lang-go=\"`workerDiskCategory`\" pulumi-lang-python=\"`worker_disk_category`\" pulumi-lang-yaml=\"`workerDiskCategory`\" pulumi-lang-java=\"`workerDiskCategory`\"\u003e`worker_disk_category`\u003c/span\u003e values \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, the optional values are `PL0`, `PL1`, `PL2` or `PL3`, but the specific performance level is related to the disk capacity. For more information, see [Enhanced SSDs](https://www.alibabacloud.com/help/doc-detail/122389.htm). Default is `PL1`.\n"},"workerDiskSize":{"type":"integer","description":"The system disk size of worker node. Its valid value range [20~32768] in GB. Default to 40.\n"},"workerDiskSnapshotPolicyId":{"type":"string","description":"Worker node system disk auto snapshot policy.\n\n*Computed params*\n\nYou can set some file paths to save\u003cspan pulumi-lang-nodejs=\" kubeConfig \" pulumi-lang-dotnet=\" KubeConfig \" pulumi-lang-go=\" kubeConfig \" pulumi-lang-python=\" kube_config \" pulumi-lang-yaml=\" kubeConfig \" pulumi-lang-java=\" kubeConfig \"\u003e kube_config \u003c/span\u003einformation, but this way is cumbersome. Since version 1.105.0, we've written it to tf state file. About its use，see export attribute certificate_authority. From version 1.187.0+, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kube_config.\n"},"workerInstanceChargeType":{"type":"string","description":"Worker payment type, its valid value is `PostPaid`. Defaults to `PostPaid`. More charge details in [ACK@edge charge](https://help.aliyun.com/document_detail/178718.html).\n"},"workerInstanceTypes":{"type":"array","items":{"type":"string"},"description":"The instance types of worker node, you can set multiple types to avoid NoStock of a certain type.\n"},"workerNodes":{"type":"array","items":{"$ref":"#/types/alicloud:cs/EdgeKubernetesWorkerNode:EdgeKubernetesWorkerNode"},"description":"List of cluster worker nodes.\n"},"workerNumber":{"type":"integer","description":"The cloud worker node number of the edge kubernetes cluster. Default to 1. It is limited up to 50 and if you want to enlarge it, please apply white list or contact with us.\n"},"workerRamRoleName":{"type":"string","description":"The RamRole Name attached to worker node.\n"},"workerVswitchIds":{"type":"array","items":{"type":"string"},"description":"The vswitches used by workers.\n"}},"type":"object"}},"alicloud:cs/kubernetes:Kubernetes":{"description":"This resource will help you to manage a Kubernetes Cluster in Alibaba Cloud Kubernetes Service, see [What is kubernetes](https://www.alibabacloud.com/help/en/ack/ack-managed-and-ack-dedicated/developer-reference/create-an-ask-cluster-1).\n\n\u003e **NOTE:** From August 21, 2024, Container Service for Kubernetes (ACK) discontinues the creation of ACK dedicated clusters, see [Product announcement](https://www.alibabacloud.com/help/en/ack/product-overview/product-announcement-announcement-on-stopping-new-ack-dedicated-cluster) for more details.\n\n\u003e **NOTE:** Available since v1.9.0.\n\n\u003e **NOTE:** Kubernetes cluster only supports VPC network and it can access internet while creating kubernetes cluster.\nA Nat Gateway and configuring a SNAT for it can ensure one VPC network access internet. If there is no nat gateway in the\nVPC, you can set \u003cspan pulumi-lang-nodejs=\"`newNatGateway`\" pulumi-lang-dotnet=\"`NewNatGateway`\" pulumi-lang-go=\"`newNatGateway`\" pulumi-lang-python=\"`new_nat_gateway`\" pulumi-lang-yaml=\"`newNatGateway`\" pulumi-lang-java=\"`newNatGateway`\"\u003e`new_nat_gateway`\u003c/span\u003e to \"true\" to create one automatically.\n\n\u003e **NOTE:** Each kubernetes cluster contains 3 master nodes and those number cannot be changed at now.\n\n\u003e **NOTE:** Creating kubernetes cluster need to install several packages and it will cost about 15 minutes. Please be patient.\n\n\u003e **NOTE:** From version 1.9.4, the provider supports to download kube config, client certificate, client key and cluster ca certificate\nafter creating cluster successfully, and you can put them into the specified location, like '~/.kube/config'.\n\n\u003e **NOTE:** From version 1.16.0, the provider supports Multiple Availability Zones Kubernetes Cluster. To create a cluster of this kind, you must specify 3 or 5 items in \u003cspan pulumi-lang-nodejs=\"`masterVswitchIds`\" pulumi-lang-dotnet=\"`MasterVswitchIds`\" pulumi-lang-go=\"`masterVswitchIds`\" pulumi-lang-python=\"`master_vswitch_ids`\" pulumi-lang-yaml=\"`masterVswitchIds`\" pulumi-lang-java=\"`masterVswitchIds`\"\u003e`master_vswitch_ids`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`masterInstanceTypes`\" pulumi-lang-dotnet=\"`MasterInstanceTypes`\" pulumi-lang-go=\"`masterInstanceTypes`\" pulumi-lang-python=\"`master_instance_types`\" pulumi-lang-yaml=\"`masterInstanceTypes`\" pulumi-lang-java=\"`masterInstanceTypes`\"\u003e`master_instance_types`\u003c/span\u003e.\n\n\u003e **NOTE:** From version 1.20.0, the provider supports disabling internet load balancer for API Server by setting \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`slbInternetEnabled`\" pulumi-lang-dotnet=\"`SlbInternetEnabled`\" pulumi-lang-go=\"`slbInternetEnabled`\" pulumi-lang-python=\"`slb_internet_enabled`\" pulumi-lang-yaml=\"`slbInternetEnabled`\" pulumi-lang-java=\"`slbInternetEnabled`\"\u003e`slb_internet_enabled`\u003c/span\u003e.\n\n\u003e **NOTE:** If you want to manage Kubernetes, you can use Kubernetes Provider.\n\n\u003e **NOTE:** You need to activate several other products and confirm Authorization Policy used by Container Service before using this resource.\nPlease refer to the `Authorization management` and `Cluster management` sections in the [Document Center](https://www.alibabacloud.com/help/doc-detail/86488.htm).\n\n\u003e **NOTE:** From version 1.75.0, Some parameters have been removed from resource,You can check them below and re-import the cluster if necessary.\n\n\u003e **NOTE:** From version 1.101.0+, We supported the `professional managed clusters(ack-pro)`, You can create a pro cluster by setting the the value of \u003cspan pulumi-lang-nodejs=\"`clusterSpec`\" pulumi-lang-dotnet=\"`ClusterSpec`\" pulumi-lang-go=\"`clusterSpec`\" pulumi-lang-python=\"`cluster_spec`\" pulumi-lang-yaml=\"`clusterSpec`\" pulumi-lang-java=\"`clusterSpec`\"\u003e`cluster_spec`\u003c/span\u003e.\n\n\u003e **NOTE:** From version 1.177.0+, \u003cspan pulumi-lang-nodejs=\"`excludeAutoscalerNodes`\" pulumi-lang-dotnet=\"`ExcludeAutoscalerNodes`\" pulumi-lang-go=\"`excludeAutoscalerNodes`\" pulumi-lang-python=\"`exclude_autoscaler_nodes`\" pulumi-lang-yaml=\"`excludeAutoscalerNodes`\" pulumi-lang-java=\"`excludeAutoscalerNodes`\"\u003e`exclude_autoscaler_nodes`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerNumber`\" pulumi-lang-dotnet=\"`WorkerNumber`\" pulumi-lang-go=\"`workerNumber`\" pulumi-lang-python=\"`worker_number`\" pulumi-lang-yaml=\"`workerNumber`\" pulumi-lang-java=\"`workerNumber`\"\u003e`worker_number`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerVswitchIds`\" pulumi-lang-dotnet=\"`WorkerVswitchIds`\" pulumi-lang-go=\"`workerVswitchIds`\" pulumi-lang-python=\"`worker_vswitch_ids`\" pulumi-lang-yaml=\"`workerVswitchIds`\" pulumi-lang-java=\"`workerVswitchIds`\"\u003e`worker_vswitch_ids`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerInstanceTypes`\" pulumi-lang-dotnet=\"`WorkerInstanceTypes`\" pulumi-lang-go=\"`workerInstanceTypes`\" pulumi-lang-python=\"`worker_instance_types`\" pulumi-lang-yaml=\"`workerInstanceTypes`\" pulumi-lang-java=\"`workerInstanceTypes`\"\u003e`worker_instance_types`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerInstanceChargeType`\" pulumi-lang-dotnet=\"`WorkerInstanceChargeType`\" pulumi-lang-go=\"`workerInstanceChargeType`\" pulumi-lang-python=\"`worker_instance_charge_type`\" pulumi-lang-yaml=\"`workerInstanceChargeType`\" pulumi-lang-java=\"`workerInstanceChargeType`\"\u003e`worker_instance_charge_type`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerPeriod`\" pulumi-lang-dotnet=\"`WorkerPeriod`\" pulumi-lang-go=\"`workerPeriod`\" pulumi-lang-python=\"`worker_period`\" pulumi-lang-yaml=\"`workerPeriod`\" pulumi-lang-java=\"`workerPeriod`\"\u003e`worker_period`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerPeriodUnit`\" pulumi-lang-dotnet=\"`WorkerPeriodUnit`\" pulumi-lang-go=\"`workerPeriodUnit`\" pulumi-lang-python=\"`worker_period_unit`\" pulumi-lang-yaml=\"`workerPeriodUnit`\" pulumi-lang-java=\"`workerPeriodUnit`\"\u003e`worker_period_unit`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerAutoRenew`\" pulumi-lang-dotnet=\"`WorkerAutoRenew`\" pulumi-lang-go=\"`workerAutoRenew`\" pulumi-lang-python=\"`worker_auto_renew`\" pulumi-lang-yaml=\"`workerAutoRenew`\" pulumi-lang-java=\"`workerAutoRenew`\"\u003e`worker_auto_renew`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerAutoRenewPeriod`\" pulumi-lang-dotnet=\"`WorkerAutoRenewPeriod`\" pulumi-lang-go=\"`workerAutoRenewPeriod`\" pulumi-lang-python=\"`worker_auto_renew_period`\" pulumi-lang-yaml=\"`workerAutoRenewPeriod`\" pulumi-lang-java=\"`workerAutoRenewPeriod`\"\u003e`worker_auto_renew_period`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDiskCategory`\" pulumi-lang-dotnet=\"`WorkerDiskCategory`\" pulumi-lang-go=\"`workerDiskCategory`\" pulumi-lang-python=\"`worker_disk_category`\" pulumi-lang-yaml=\"`workerDiskCategory`\" pulumi-lang-java=\"`workerDiskCategory`\"\u003e`worker_disk_category`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDiskSize`\" pulumi-lang-dotnet=\"`WorkerDiskSize`\" pulumi-lang-go=\"`workerDiskSize`\" pulumi-lang-python=\"`worker_disk_size`\" pulumi-lang-yaml=\"`workerDiskSize`\" pulumi-lang-java=\"`workerDiskSize`\"\u003e`worker_disk_size`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDataDisks`\" pulumi-lang-dotnet=\"`WorkerDataDisks`\" pulumi-lang-go=\"`workerDataDisks`\" pulumi-lang-python=\"`worker_data_disks`\" pulumi-lang-yaml=\"`workerDataDisks`\" pulumi-lang-java=\"`workerDataDisks`\"\u003e`worker_data_disks`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`nodePortRange`\" pulumi-lang-dotnet=\"`NodePortRange`\" pulumi-lang-go=\"`nodePortRange`\" pulumi-lang-python=\"`node_port_range`\" pulumi-lang-yaml=\"`nodePortRange`\" pulumi-lang-java=\"`nodePortRange`\"\u003e`node_port_range`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`cpuPolicy`\" pulumi-lang-dotnet=\"`CpuPolicy`\" pulumi-lang-go=\"`cpuPolicy`\" pulumi-lang-python=\"`cpu_policy`\" pulumi-lang-yaml=\"`cpuPolicy`\" pulumi-lang-java=\"`cpuPolicy`\"\u003e`cpu_policy`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`userData`\" pulumi-lang-dotnet=\"`UserData`\" pulumi-lang-go=\"`userData`\" pulumi-lang-python=\"`user_data`\" pulumi-lang-yaml=\"`userData`\" pulumi-lang-java=\"`userData`\"\u003e`user_data`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`taints`\" pulumi-lang-dotnet=\"`Taints`\" pulumi-lang-go=\"`taints`\" pulumi-lang-python=\"`taints`\" pulumi-lang-yaml=\"`taints`\" pulumi-lang-java=\"`taints`\"\u003e`taints`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDiskPerformanceLevel`\" pulumi-lang-dotnet=\"`WorkerDiskPerformanceLevel`\" pulumi-lang-go=\"`workerDiskPerformanceLevel`\" pulumi-lang-python=\"`worker_disk_performance_level`\" pulumi-lang-yaml=\"`workerDiskPerformanceLevel`\" pulumi-lang-java=\"`workerDiskPerformanceLevel`\"\u003e`worker_disk_performance_level`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDiskSnapshotPolicyId`\" pulumi-lang-dotnet=\"`WorkerDiskSnapshotPolicyId`\" pulumi-lang-go=\"`workerDiskSnapshotPolicyId`\" pulumi-lang-python=\"`worker_disk_snapshot_policy_id`\" pulumi-lang-yaml=\"`workerDiskSnapshotPolicyId`\" pulumi-lang-java=\"`workerDiskSnapshotPolicyId`\"\u003e`worker_disk_snapshot_policy_id`\u003c/span\u003e are deprecated.\nWe Suggest you using resource **\u003cspan pulumi-lang-nodejs=\"`alicloud.cs.NodePool`\" pulumi-lang-dotnet=\"`alicloud.cs.NodePool`\" pulumi-lang-go=\"`cs.NodePool`\" pulumi-lang-python=\"`cs.NodePool`\" pulumi-lang-yaml=\"`alicloud.cs.NodePool`\" pulumi-lang-java=\"`alicloud.cs.NodePool`\"\u003e`alicloud.cs.NodePool`\u003c/span\u003e** to manage your cluster worker nodes.\n\n\u003e **NOTE:** From version 1.212.0, \u003cspan pulumi-lang-nodejs=\"`excludeAutoscalerNodes`\" pulumi-lang-dotnet=\"`ExcludeAutoscalerNodes`\" pulumi-lang-go=\"`excludeAutoscalerNodes`\" pulumi-lang-python=\"`exclude_autoscaler_nodes`\" pulumi-lang-yaml=\"`excludeAutoscalerNodes`\" pulumi-lang-java=\"`excludeAutoscalerNodes`\"\u003e`exclude_autoscaler_nodes`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerNumber`\" pulumi-lang-dotnet=\"`WorkerNumber`\" pulumi-lang-go=\"`workerNumber`\" pulumi-lang-python=\"`worker_number`\" pulumi-lang-yaml=\"`workerNumber`\" pulumi-lang-java=\"`workerNumber`\"\u003e`worker_number`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerVswitchIds`\" pulumi-lang-dotnet=\"`WorkerVswitchIds`\" pulumi-lang-go=\"`workerVswitchIds`\" pulumi-lang-python=\"`worker_vswitch_ids`\" pulumi-lang-yaml=\"`workerVswitchIds`\" pulumi-lang-java=\"`workerVswitchIds`\"\u003e`worker_vswitch_ids`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerInstanceTypes`\" pulumi-lang-dotnet=\"`WorkerInstanceTypes`\" pulumi-lang-go=\"`workerInstanceTypes`\" pulumi-lang-python=\"`worker_instance_types`\" pulumi-lang-yaml=\"`workerInstanceTypes`\" pulumi-lang-java=\"`workerInstanceTypes`\"\u003e`worker_instance_types`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerInstanceChargeType`\" pulumi-lang-dotnet=\"`WorkerInstanceChargeType`\" pulumi-lang-go=\"`workerInstanceChargeType`\" pulumi-lang-python=\"`worker_instance_charge_type`\" pulumi-lang-yaml=\"`workerInstanceChargeType`\" pulumi-lang-java=\"`workerInstanceChargeType`\"\u003e`worker_instance_charge_type`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerPeriod`\" pulumi-lang-dotnet=\"`WorkerPeriod`\" pulumi-lang-go=\"`workerPeriod`\" pulumi-lang-python=\"`worker_period`\" pulumi-lang-yaml=\"`workerPeriod`\" pulumi-lang-java=\"`workerPeriod`\"\u003e`worker_period`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerPeriodUnit`\" pulumi-lang-dotnet=\"`WorkerPeriodUnit`\" pulumi-lang-go=\"`workerPeriodUnit`\" pulumi-lang-python=\"`worker_period_unit`\" pulumi-lang-yaml=\"`workerPeriodUnit`\" pulumi-lang-java=\"`workerPeriodUnit`\"\u003e`worker_period_unit`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerAutoRenew`\" pulumi-lang-dotnet=\"`WorkerAutoRenew`\" pulumi-lang-go=\"`workerAutoRenew`\" pulumi-lang-python=\"`worker_auto_renew`\" pulumi-lang-yaml=\"`workerAutoRenew`\" pulumi-lang-java=\"`workerAutoRenew`\"\u003e`worker_auto_renew`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerAutoRenewPeriod`\" pulumi-lang-dotnet=\"`WorkerAutoRenewPeriod`\" pulumi-lang-go=\"`workerAutoRenewPeriod`\" pulumi-lang-python=\"`worker_auto_renew_period`\" pulumi-lang-yaml=\"`workerAutoRenewPeriod`\" pulumi-lang-java=\"`workerAutoRenewPeriod`\"\u003e`worker_auto_renew_period`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDiskCategory`\" pulumi-lang-dotnet=\"`WorkerDiskCategory`\" pulumi-lang-go=\"`workerDiskCategory`\" pulumi-lang-python=\"`worker_disk_category`\" pulumi-lang-yaml=\"`workerDiskCategory`\" pulumi-lang-java=\"`workerDiskCategory`\"\u003e`worker_disk_category`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDiskSize`\" pulumi-lang-dotnet=\"`WorkerDiskSize`\" pulumi-lang-go=\"`workerDiskSize`\" pulumi-lang-python=\"`worker_disk_size`\" pulumi-lang-yaml=\"`workerDiskSize`\" pulumi-lang-java=\"`workerDiskSize`\"\u003e`worker_disk_size`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDataDisks`\" pulumi-lang-dotnet=\"`WorkerDataDisks`\" pulumi-lang-go=\"`workerDataDisks`\" pulumi-lang-python=\"`worker_data_disks`\" pulumi-lang-yaml=\"`workerDataDisks`\" pulumi-lang-java=\"`workerDataDisks`\"\u003e`worker_data_disks`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`nodePortRange`\" pulumi-lang-dotnet=\"`NodePortRange`\" pulumi-lang-go=\"`nodePortRange`\" pulumi-lang-python=\"`node_port_range`\" pulumi-lang-yaml=\"`nodePortRange`\" pulumi-lang-java=\"`nodePortRange`\"\u003e`node_port_range`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`cpuPolicy`\" pulumi-lang-dotnet=\"`CpuPolicy`\" pulumi-lang-go=\"`cpuPolicy`\" pulumi-lang-python=\"`cpu_policy`\" pulumi-lang-yaml=\"`cpuPolicy`\" pulumi-lang-java=\"`cpuPolicy`\"\u003e`cpu_policy`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`userData`\" pulumi-lang-dotnet=\"`UserData`\" pulumi-lang-go=\"`userData`\" pulumi-lang-python=\"`user_data`\" pulumi-lang-yaml=\"`userData`\" pulumi-lang-java=\"`userData`\"\u003e`user_data`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`taints`\" pulumi-lang-dotnet=\"`Taints`\" pulumi-lang-go=\"`taints`\" pulumi-lang-python=\"`taints`\" pulumi-lang-yaml=\"`taints`\" pulumi-lang-java=\"`taints`\"\u003e`taints`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDiskPerformanceLevel`\" pulumi-lang-dotnet=\"`WorkerDiskPerformanceLevel`\" pulumi-lang-go=\"`workerDiskPerformanceLevel`\" pulumi-lang-python=\"`worker_disk_performance_level`\" pulumi-lang-yaml=\"`workerDiskPerformanceLevel`\" pulumi-lang-java=\"`workerDiskPerformanceLevel`\"\u003e`worker_disk_performance_level`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDiskSnapshotPolicyId`\" pulumi-lang-dotnet=\"`WorkerDiskSnapshotPolicyId`\" pulumi-lang-go=\"`workerDiskSnapshotPolicyId`\" pulumi-lang-python=\"`worker_disk_snapshot_policy_id`\" pulumi-lang-yaml=\"`workerDiskSnapshotPolicyId`\" pulumi-lang-java=\"`workerDiskSnapshotPolicyId`\"\u003e`worker_disk_snapshot_policy_id`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`kubeConfig`\" pulumi-lang-dotnet=\"`KubeConfig`\" pulumi-lang-go=\"`kubeConfig`\" pulumi-lang-python=\"`kube_config`\" pulumi-lang-yaml=\"`kubeConfig`\" pulumi-lang-java=\"`kubeConfig`\"\u003e`kube_config`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e are removed.\nPlease use resource **\u003cspan pulumi-lang-nodejs=\"`alicloud.cs.NodePool`\" pulumi-lang-dotnet=\"`alicloud.cs.NodePool`\" pulumi-lang-go=\"`cs.NodePool`\" pulumi-lang-python=\"`cs.NodePool`\" pulumi-lang-yaml=\"`alicloud.cs.NodePool`\" pulumi-lang-java=\"`alicloud.cs.NodePool`\"\u003e`alicloud.cs.NodePool`\u003c/span\u003e** to manage your cluster worker nodes.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-kubernetes-example\";\n// Existing vpc id used to create several vswitches and other resources.\nconst vpcId = config.get(\"vpcId\") || \"\";\n// The cidr block used to launch a new vpc when 'vpc_id' is not specified.\nconst vpcCidr = config.get(\"vpcCidr\") || \"10.0.0.0/8\";\n// List of existing vswitch id.\nconst vswitchIds = config.getObject\u003cArray\u003cstring\u003e\u003e(\"vswitchIds\") || [];\n// List of cidr blocks used to create several new vswitches when 'vswitch_ids' is not specified.\nconst vswitchCidrs = config.getObject\u003cArray\u003cstring\u003e\u003e(\"vswitchCidrs\") || [\n    \"10.1.0.0/16\",\n    \"10.2.0.0/16\",\n    \"10.3.0.0/16\",\n];\n// List of existing vswitch ids for terway.\nconst terwayVswitchIds = config.getObject\u003cArray\u003cstring\u003e\u003e(\"terwayVswitchIds\") || [];\n// List of cidr blocks used to create several new vswitches when 'terway_vswitch_cidrs' is not specified.\nconst terwayVswitchCidrs = config.getObject\u003cArray\u003cstring\u003e\u003e(\"terwayVswitchCidrs\") || [\n    \"10.4.0.0/16\",\n    \"10.5.0.0/16\",\n    \"10.6.0.0/16\",\n];\nconst clusterAddons = config.getObject\u003cArray\u003c{config?: Record\u003cstring, string\u003e, name?: string}\u003e\u003e(\"clusterAddons\") || [\n    {\n        config: {},\n        name: \"terway-eniip\",\n    },\n    {\n        config: {},\n        name: \"csi-plugin\",\n    },\n    {\n        config: {},\n        name: \"csi-provisioner\",\n    },\n    {\n        config: {\n            IngressDashboardEnabled: \"true\",\n        },\n        name: \"logtail-ds\",\n    },\n    {\n        config: {\n            IngressSlbNetworkType: \"internet\",\n        },\n        name: \"nginx-ingress-controller\",\n    },\n    {\n        config: {},\n        name: \"arms-prometheus\",\n    },\n    {\n        config: {\n            sls_project_name: \"\",\n        },\n        name: \"ack-node-problem-detector\",\n    },\n];\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\n// If there is not specifying vpc_id, the module will launch a new vpc\nconst vpc: alicloud.vpc.Network[] = [];\nfor (const range = {value: 0}; range.value \u003c (vpcId == \"\" ? 1 : 0); range.value++) {\n    vpc.push(new alicloud.vpc.Network(`vpc-${range.value}`, {cidrBlock: vpcCidr}));\n}\n// According to the vswitch cidr blocks to launch several vswitches\nconst vswitches: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c (vswitchIds.length \u003e 0 ? 0 : vswitchCidrs.length); range.value++) {\n    vswitches.push(new alicloud.vpc.Switch(`vswitches-${range.value}`, {\n        vpcId: vpcId == \"\" ? std.joinOutput({\n            separator: \"\",\n            input: vpc.map(__item =\u003e __item.id),\n        }).apply(invoke =\u003e invoke.result) : vpcId,\n        cidrBlock: vswitchCidrs[range.value],\n        zoneId: pulumi.all([enhanced, enhanced.then(enhanced =\u003e enhanced.zones).length]).apply(([enhanced, length]) =\u003e enhanced.zones[range.value \u003c length ? range.value : 0].zoneId),\n    }));\n}\n// According to the vswitch cidr blocks to launch several vswitches\nconst terwayVswitches: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c (terwayVswitchIds.length \u003e 0 ? 0 : terwayVswitchCidrs.length); range.value++) {\n    terwayVswitches.push(new alicloud.vpc.Switch(`terway_vswitches-${range.value}`, {\n        vpcId: vpcId == \"\" ? std.joinOutput({\n            separator: \"\",\n            input: vpc.map(__item =\u003e __item.id),\n        }).apply(invoke =\u003e invoke.result) : vpcId,\n        cidrBlock: terwayVswitchCidrs[range.value],\n        zoneId: pulumi.all([enhanced, enhanced.then(enhanced =\u003e enhanced.zones).length]).apply(([enhanced, length]) =\u003e enhanced.zones[range.value \u003c length ? range.value : 0].zoneId),\n    }));\n}\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst cloudEssd = (new Array(3)).map((_, i) =\u003e i).map(__index =\u003e (alicloud.ecs.getInstanceTypesOutput({\n    availabilityZone: _arg0_.zones[__index \u003c _arg1_ ? __index : 0].zoneId,\n    cpuCoreCount: 4,\n    memorySize: 8,\n    systemDiskCategory: \"cloud_essd\",\n})));\nconst defaultKubernetes = new alicloud.cs.Kubernetes(\"default\", {\n    addons: clusterAddons.map((v, k) =\u003e ({key: k, value: v})).map(entry =\u003e ({\n        name: std.lookup({\n            map: entry.value,\n            key: \"name\",\n            \"default\": clusterAddons,\n        }).then(invoke =\u003e invoke.result),\n        config: JSON.stringify(std.lookup({\n            map: entry.value,\n            key: \"config\",\n            \"default\": clusterAddons,\n        }).then(invoke =\u003e invoke.result)),\n    })),\n    masterVswitchIds: vswitchIds.length \u003e 0 ? std.join({\n        separator: \",\",\n        input: vswitchIds,\n    }).then(invoke =\u003e std.split({\n        separator: \",\",\n        text: invoke.result,\n    })).then(invoke =\u003e invoke.result) : vswitchCidrs.length \u003c 1 ? [] : std.joinOutput({\n        separator: \",\",\n        input: vswitches.map(__item =\u003e __item.id),\n    }).apply(invoke =\u003e std.splitOutput({\n        separator: \",\",\n        text: invoke.result,\n    })).apply(invoke =\u003e invoke.result),\n    podVswitchIds: terwayVswitchIds.length \u003e 0 ? std.join({\n        separator: \",\",\n        input: terwayVswitchIds,\n    }).then(invoke =\u003e std.split({\n        separator: \",\",\n        text: invoke.result,\n    })).then(invoke =\u003e invoke.result) : terwayVswitchCidrs.length \u003c 1 ? [] : std.joinOutput({\n        separator: \",\",\n        input: terwayVswitches.map(__item =\u003e __item.id),\n    }).apply(invoke =\u003e std.splitOutput({\n        separator: \",\",\n        text: invoke.result,\n    })).apply(invoke =\u003e invoke.result),\n    masterInstanceTypes: [\n        cloudEssd[0].apply(cloudEssd =\u003e cloudEssd.instanceTypes?.[0]?.id),\n        cloudEssd[1].apply(cloudEssd =\u003e cloudEssd.instanceTypes?.[0]?.id),\n        cloudEssd[2].apply(cloudEssd =\u003e cloudEssd.instanceTypes?.[0]?.id),\n    ],\n    masterDiskCategory: \"cloud_essd\",\n    password: \"Yourpassword1234\",\n    serviceCidr: \"172.18.0.0/16\",\n    installCloudMonitor: true,\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n    deletionProtection: false,\n    timezone: \"Asia/Shanghai\",\n    osType: \"Linux\",\n    platform: \"AliyunLinux3\",\n    clusterDomain: \"cluster.local\",\n    proxyMode: \"ipvs\",\n    customSan: \"www.terraform.io\",\n    newNatGateway: true,\n    skipSetCertificateAuthority: true,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-kubernetes-example\"\n# Existing vpc id used to create several vswitches and other resources.\nvpc_id = config.get(\"vpcId\")\nif vpc_id is None:\n    vpc_id = \"\"\n# The cidr block used to launch a new vpc when 'vpc_id' is not specified.\nvpc_cidr = config.get(\"vpcCidr\")\nif vpc_cidr is None:\n    vpc_cidr = \"10.0.0.0/8\"\n# List of existing vswitch id.\nvswitch_ids = config.get_object(\"vswitchIds\")\nif vswitch_ids is None:\n    vswitch_ids = []\n# List of cidr blocks used to create several new vswitches when 'vswitch_ids' is not specified.\nvswitch_cidrs = config.get_object(\"vswitchCidrs\")\nif vswitch_cidrs is None:\n    vswitch_cidrs = [\n        \"10.1.0.0/16\",\n        \"10.2.0.0/16\",\n        \"10.3.0.0/16\",\n    ]\n# List of existing vswitch ids for terway.\nterway_vswitch_ids = config.get_object(\"terwayVswitchIds\")\nif terway_vswitch_ids is None:\n    terway_vswitch_ids = []\n# List of cidr blocks used to create several new vswitches when 'terway_vswitch_cidrs' is not specified.\nterway_vswitch_cidrs = config.get_object(\"terwayVswitchCidrs\")\nif terway_vswitch_cidrs is None:\n    terway_vswitch_cidrs = [\n        \"10.4.0.0/16\",\n        \"10.5.0.0/16\",\n        \"10.6.0.0/16\",\n    ]\ncluster_addons = config.get_object(\"clusterAddons\")\nif cluster_addons is None:\n    cluster_addons = [\n        {\n            \"config\": {},\n            \"name\": \"terway-eniip\",\n        },\n        {\n            \"config\": {},\n            \"name\": \"csi-plugin\",\n        },\n        {\n            \"config\": {},\n            \"name\": \"csi-provisioner\",\n        },\n        {\n            \"config\": {\n                \"IngressDashboardEnabled\": \"true\",\n            },\n            \"name\": \"logtail-ds\",\n        },\n        {\n            \"config\": {\n                \"IngressSlbNetworkType\": \"internet\",\n            },\n            \"name\": \"nginx-ingress-controller\",\n        },\n        {\n            \"config\": {},\n            \"name\": \"arms-prometheus\",\n        },\n        {\n            \"config\": {\n                \"sls_project_name\": \"\",\n            },\n            \"name\": \"ack-node-problem-detector\",\n        },\n    ]\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\n# If there is not specifying vpc_id, the module will launch a new vpc\nvpc = []\nfor range in [{\"value\": i} for i in range(0, 1 if vpc_id ==  else 0)]:\n    vpc.append(alicloud.vpc.Network(f\"vpc-{range['value']}\", cidr_block=vpc_cidr))\n# According to the vswitch cidr blocks to launch several vswitches\nvswitches = []\nfor range in [{\"value\": i} for i in range(0, 0 if len(vswitch_ids) \u003e 0 else len(vswitch_cidrs))]:\n    vswitches.append(alicloud.vpc.Switch(f\"vswitches-{range['value']}\",\n        vpc_id=std.join_output(separator=\"\",\n            input=[__item.id for __item in vpc]).apply(lambda invoke: invoke.result) if vpc_id == \"\" else vpc_id,\n        cidr_block=vswitch_cidrs[range[\"value\"]],\n        zone_id=len(enhanced.zones).apply(lambda length: enhanced.zones[range[\"value\"] if range[\"value\"] \u003c length else 0]).apply(lambda obj: obj.zone_id)))\n# According to the vswitch cidr blocks to launch several vswitches\nterway_vswitches = []\nfor range in [{\"value\": i} for i in range(0, 0 if len(terway_vswitch_ids) \u003e 0 else len(terway_vswitch_cidrs))]:\n    terway_vswitches.append(alicloud.vpc.Switch(f\"terway_vswitches-{range['value']}\",\n        vpc_id=std.join_output(separator=\"\",\n            input=[__item.id for __item in vpc]).apply(lambda invoke: invoke.result) if vpc_id == \"\" else vpc_id,\n        cidr_block=terway_vswitch_cidrs[range[\"value\"]],\n        zone_id=len(enhanced.zones).apply(lambda length: enhanced.zones[range[\"value\"] if range[\"value\"] \u003c length else 0]).apply(lambda obj: obj.zone_id)))\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ncloud_essd = [alicloud.ecs.get_instance_types_output(availability_zone=_arg0_.zone_id,\n    cpu_core_count=4,\n    memory_size=8,\n    system_disk_category=\"cloud_essd\") for __index in range(3)]\ndefault_kubernetes = alicloud.cs.Kubernetes(\"default\",\n    addons=[{\n        \"name\": std.lookup(map=entry[\"value\"],\n            key=\"name\",\n            default=cluster_addons).result,\n        \"config\": json.dumps(std.lookup(map=entry[\"value\"],\n            key=\"config\",\n            default=cluster_addons).result),\n    } for entry in [{\"key\": k, \"value\": v} for k, v in cluster_addons.items()]],\n    master_vswitch_ids=std.split(separator=\",\",\n        text=std.join(separator=\",\",\n            input=vswitch_ids).result).result if len(vswitch_ids) \u003e 0 else [] if len(vswitch_cidrs) \u003c 1 else std.join_output(separator=\",\",\n        input=[__item.id for __item in vswitches]).apply(lambda invoke: std.split_output(separator=\",\",\n        text=invoke.result)).apply(lambda invoke: invoke.result),\n    pod_vswitch_ids=std.split(separator=\",\",\n        text=std.join(separator=\",\",\n            input=terway_vswitch_ids).result).result if len(terway_vswitch_ids) \u003e 0 else [] if len(terway_vswitch_cidrs) \u003c 1 else std.join_output(separator=\",\",\n        input=[__item.id for __item in terway_vswitches]).apply(lambda invoke: std.split_output(separator=\",\",\n        text=invoke.result)).apply(lambda invoke: invoke.result),\n    master_instance_types=[\n        cloud_essd[0].instance_types[0].id,\n        cloud_essd[1].instance_types[0].id,\n        cloud_essd[2].instance_types[0].id,\n    ],\n    master_disk_category=\"cloud_essd\",\n    password=\"Yourpassword1234\",\n    service_cidr=\"172.18.0.0/16\",\n    install_cloud_monitor=True,\n    resource_group_id=default.groups[0].id,\n    deletion_protection=False,\n    timezone=\"Asia/Shanghai\",\n    os_type=\"Linux\",\n    platform=\"AliyunLinux3\",\n    cluster_domain=\"cluster.local\",\n    proxy_mode=\"ipvs\",\n    custom_san=\"www.terraform.io\",\n    new_nat_gateway=True,\n    skip_set_certificate_authority=True)\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nKubernetes cluster can be imported using the id, e.g. Then complete the main.tf accords to the result of `pulumi preview`.\n\n```sh\n$ pulumi import alicloud:cs/kubernetes:Kubernetes main cluster-id\n```\n\n","properties":{"addons":{"type":"array","items":{"$ref":"#/types/alicloud:cs/KubernetesAddon:KubernetesAddon"},"description":"The addon you want to install in cluster. See \u003cspan pulumi-lang-nodejs=\"`addons`\" pulumi-lang-dotnet=\"`Addons`\" pulumi-lang-go=\"`addons`\" pulumi-lang-python=\"`addons`\" pulumi-lang-yaml=\"`addons`\" pulumi-lang-java=\"`addons`\"\u003e`addons`\u003c/span\u003e below. Only works for **Create** Operation, use resource\u003cspan pulumi-lang-nodejs=\" csKubernetesAddon \" pulumi-lang-dotnet=\" CsKubernetesAddon \" pulumi-lang-go=\" csKubernetesAddon \" pulumi-lang-python=\" cs_kubernetes_addon \" pulumi-lang-yaml=\" csKubernetesAddon \" pulumi-lang-java=\" csKubernetesAddon \"\u003e cs_kubernetes_addon \u003c/span\u003eto manage addons if cluster is created.\n"},"apiAudiences":{"type":"array","items":{"type":"string"},"description":"A list of API audiences for [Service Account Token Volume Projection](https://www.alibabacloud.com/help/doc-detail/160384.htm). Set this to `[\"https://kubernetes.default.svc\"]` if you want to enable the Token Volume Projection feature requires specifying \u003cspan pulumi-lang-nodejs=\"`serviceAccountIssuer`\" pulumi-lang-dotnet=\"`ServiceAccountIssuer`\" pulumi-lang-go=\"`serviceAccountIssuer`\" pulumi-lang-python=\"`service_account_issuer`\" pulumi-lang-yaml=\"`serviceAccountIssuer`\" pulumi-lang-java=\"`serviceAccountIssuer`\"\u003e`service_account_issuer`\u003c/span\u003e as well. From cluster version 1.22+, Service Account Token Volume Projection will be enabled by default.\n"},"certificateAuthority":{"$ref":"#/types/alicloud:cs/KubernetesCertificateAuthority:KubernetesCertificateAuthority","description":"(Map, Deprecated from v1.248.0) Nested attribute containing certificate authority data for your cluster. Please use the attribute\u003cspan pulumi-lang-nodejs=\" certificateAuthority \" pulumi-lang-dotnet=\" CertificateAuthority \" pulumi-lang-go=\" certificateAuthority \" pulumi-lang-python=\" certificate_authority \" pulumi-lang-yaml=\" certificateAuthority \" pulumi-lang-java=\" certificateAuthority \"\u003e certificate_authority \u003c/span\u003eof new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to replace it.\n","deprecationMessage":"Field 'certificate_authority' has been deprecated from provider version 1.248.0. Please use the attribute 'certificate_authority' of new DataSource 'alicloud_cs_cluster_credential' to replace it."},"clientCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-cert.pem) for replace it.\n","deprecationMessage":"Field 'client_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-cert.pem) for replace it."},"clientKey":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_key attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-key.pem) for replace it.\n","deprecationMessage":"Field 'client_key' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_key' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-key.pem) for replace it."},"clusterCaCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.cluster_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it.\n\n*Removed params*\n","deprecationMessage":"Field 'cluster_ca_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.cluster_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it."},"clusterDomain":{"type":"string","description":"Cluster local domain name, Default to `cluster.local`. A domain name consists of one or more sections separated by a decimal point (.), each of which is up to 63 characters long, and can be lowercase, numerals, and underscores (-), and must be lowercase or numerals at the beginning and end.\n"},"connections":{"$ref":"#/types/alicloud:cs/KubernetesConnections:KubernetesConnections","description":"(Map) Map of kubernetes cluster connection information.\n"},"customSan":{"type":"string","description":"Customize the certificate SAN, multiple IP or domain names are separated by English commas (,).\n"},"deleteOptions":{"type":"array","items":{"$ref":"#/types/alicloud:cs/KubernetesDeleteOption:KubernetesDeleteOption"},"description":"Delete options, only work for deleting resource. Make sure you have run `pulumi up` to make the configuration applied. See \u003cspan pulumi-lang-nodejs=\"`deleteOptions`\" pulumi-lang-dotnet=\"`DeleteOptions`\" pulumi-lang-go=\"`deleteOptions`\" pulumi-lang-python=\"`delete_options`\" pulumi-lang-yaml=\"`deleteOptions`\" pulumi-lang-java=\"`deleteOptions`\"\u003e`delete_options`\u003c/span\u003e below.\n"},"deletionProtection":{"type":"boolean","description":"Whether to enable cluster deletion protection.\n"},"enableSsh":{"type":"boolean","description":"Enable login to the node through SSH. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"imageId":{"type":"string","description":"Custom Image support. Must be based on AliyunLinux or AliyunLinux3.\n"},"installCloudMonitor":{"type":"boolean","description":"Install cloud monitor agent on ECS. Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"isEnterpriseSecurityGroup":{"type":"boolean","description":"Enable to create advanced security group. default: false. See [Advanced security group](https://www.alibabacloud.com/help/doc-detail/120621.htm). Only works for **Create** Operation.\n"},"keyName":{"type":"string","description":"The keypair of ssh login cluster node, you have to create it first. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a cs kubernetes. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a cs kubernetes with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"loadBalancerSpec":{"type":"string","description":"The cluster api server load balancer instance specification. For more information on how to select a LB instance specification, see [SLB instance overview](https://help.aliyun.com/document_detail/85931.html). Only works for **Create** Operation. The spec will not take effect because the charge of the load balancer has been changed to PayByCLCU.\n","deprecationMessage":"Field 'load_balancer_spec' has been deprecated from provider version 1.232.0. The spec will not take effect because the charge of the load balancer has been changed to PayByCLCU"},"masterAutoRenew":{"type":"boolean","description":"Enable master payment auto-renew, defaults to false.\n"},"masterAutoRenewPeriod":{"type":"integer","description":"Master payment auto-renew period, it can be one of {1, 2, 3, 6, 12}.\n"},"masterDiskCategory":{"type":"string","description":"The system disk category of master node. Its valid value are \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n"},"masterDiskPerformanceLevel":{"type":"string","description":"Master node system disk performance level. When \u003cspan pulumi-lang-nodejs=\"`masterDiskCategory`\" pulumi-lang-dotnet=\"`MasterDiskCategory`\" pulumi-lang-go=\"`masterDiskCategory`\" pulumi-lang-python=\"`master_disk_category`\" pulumi-lang-yaml=\"`masterDiskCategory`\" pulumi-lang-java=\"`masterDiskCategory`\"\u003e`master_disk_category`\u003c/span\u003e values \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, the optional values are `PL0`, `PL1`, `PL2` or `PL3`, but the specific performance level is related to the disk capacity. For more information, see [Enhanced SSDs](https://www.alibabacloud.com/help/doc-detail/122389.htm). Default is `PL1`.\n"},"masterDiskSize":{"type":"integer","description":"The system disk size of master node. Its valid value range [20~500] in GB. Default to 20.\n"},"masterDiskSnapshotPolicyId":{"type":"string","description":"Master node system disk auto snapshot policy.\n\n*Computed params*\n"},"masterInstanceChargeType":{"type":"string","description":"Master payment type. or `PostPaid` or `PrePaid`, defaults to `PostPaid`. If value is `PrePaid`, the files \u003cspan pulumi-lang-nodejs=\"`masterPeriod`\" pulumi-lang-dotnet=\"`MasterPeriod`\" pulumi-lang-go=\"`masterPeriod`\" pulumi-lang-python=\"`master_period`\" pulumi-lang-yaml=\"`masterPeriod`\" pulumi-lang-java=\"`masterPeriod`\"\u003e`master_period`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`masterPeriodUnit`\" pulumi-lang-dotnet=\"`MasterPeriodUnit`\" pulumi-lang-go=\"`masterPeriodUnit`\" pulumi-lang-python=\"`master_period_unit`\" pulumi-lang-yaml=\"`masterPeriodUnit`\" pulumi-lang-java=\"`masterPeriodUnit`\"\u003e`master_period_unit`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`masterAutoRenew`\" pulumi-lang-dotnet=\"`MasterAutoRenew`\" pulumi-lang-go=\"`masterAutoRenew`\" pulumi-lang-python=\"`master_auto_renew`\" pulumi-lang-yaml=\"`masterAutoRenew`\" pulumi-lang-java=\"`masterAutoRenew`\"\u003e`master_auto_renew`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`masterAutoRenewPeriod`\" pulumi-lang-dotnet=\"`MasterAutoRenewPeriod`\" pulumi-lang-go=\"`masterAutoRenewPeriod`\" pulumi-lang-python=\"`master_auto_renew_period`\" pulumi-lang-yaml=\"`masterAutoRenewPeriod`\" pulumi-lang-java=\"`masterAutoRenewPeriod`\"\u003e`master_auto_renew_period`\u003c/span\u003e are required.\n"},"masterInstanceTypes":{"type":"array","items":{"type":"string"},"description":"The instance type of master node. Specify one type for single AZ Cluster, three types for MultiAZ Cluster.\n"},"masterNodes":{"type":"array","items":{"$ref":"#/types/alicloud:cs/KubernetesMasterNode:KubernetesMasterNode"},"description":"(Optional) The master nodes. See \u003cspan pulumi-lang-nodejs=\"`masterNodes`\" pulumi-lang-dotnet=\"`MasterNodes`\" pulumi-lang-go=\"`masterNodes`\" pulumi-lang-python=\"`master_nodes`\" pulumi-lang-yaml=\"`masterNodes`\" pulumi-lang-java=\"`masterNodes`\"\u003e`master_nodes`\u003c/span\u003e below.\n"},"masterPeriod":{"type":"integer","description":"Master payment period.Its valid value is one of {1, 2, 3, 6, 12, 24, 36, 48, 60}.\n"},"masterPeriodUnit":{"type":"string","description":"Master payment period unit, the valid value is `Month`.\n"},"masterVswitchIds":{"type":"array","items":{"type":"string"},"description":"The vswitches used by master, you can specific 3 or 5 vswitches because of the amount of masters. Detailed below.\n"},"name":{"type":"string","description":"The kubernetes cluster's name. It is unique in one Alicloud account.\n"},"namePrefix":{"type":"string","description":"The kubernetes cluster name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e. If it is specified, terraform will using it to build the only cluster name. Default to \"Terraform-Creation\".\n","deprecationMessage":"Field 'name_prefix' has been deprecated from provider version 1.75.0."},"natGatewayId":{"type":"string","description":"The ID of nat gateway used to launch kubernetes cluster.\n"},"newNatGateway":{"type":"boolean","description":"Whether to create a new nat gateway while creating kubernetes cluster. Default to true. Then openapi in Alibaba Cloud are not all on intranet, So turn this option on is a good choice. Your cluster nodes and applications will have public network access. If there is a NAT gateway in the selected VPC, ACK will use this gateway by default; if there is no NAT gateway in the selected VPC, ACK will create a new NAT gateway for you and automatically configure SNAT rules. Only works for **Create** Operation.\n"},"nodeCidrMask":{"type":"integer","description":"The node cidr block to specific how many pods can run on single node. 24-28 is allowed. 24 means 2^(32-24)-1=255 and the node can run at most 255 pods. default: 24\n"},"nodeNameMode":{"type":"string","description":"Each node name consists of a prefix, an IP substring, and a suffix, the input format is `customized,\u003cprefix\u003e,IPSubStringLen,\u003csuffix\u003e`. For example \"customized,aliyun.com-,5,-test\", if the node IP address is 192.168.59.176, the prefix is aliyun.com-, IP substring length is 5, and the suffix is -test, the node name will be aliyun.com-59176-test.\n"},"osType":{"type":"string","description":"The operating system of the nodes that run pods, its valid value is either `Linux` or `Windows`. Default to `Linux`.\n"},"password":{"type":"string","description":"The password of ssh login cluster node. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","secret":true},"platform":{"type":"string","description":"The architecture of the nodes that run pods, its valid value `AliyunLinux`, `AliyunLinux3`. Default to `AliyunLinux3`.\n"},"podCidr":{"type":"string","description":"[Flannel Specific] The CIDR block for the pod network when using Flannel.\n"},"podVswitchIds":{"type":"array","items":{"type":"string"},"description":"[Terway Specific] The vswitches for the pod network when using Terway. It is recommended that \u003cspan pulumi-lang-nodejs=\"`podVswitchIds`\" pulumi-lang-dotnet=\"`PodVswitchIds`\" pulumi-lang-go=\"`podVswitchIds`\" pulumi-lang-python=\"`pod_vswitch_ids`\" pulumi-lang-yaml=\"`podVswitchIds`\" pulumi-lang-java=\"`podVswitchIds`\"\u003e`pod_vswitch_ids`\u003c/span\u003e is not belong to \u003cspan pulumi-lang-nodejs=\"`workerVswitchIds`\" pulumi-lang-dotnet=\"`WorkerVswitchIds`\" pulumi-lang-go=\"`workerVswitchIds`\" pulumi-lang-python=\"`worker_vswitch_ids`\" pulumi-lang-yaml=\"`workerVswitchIds`\" pulumi-lang-java=\"`workerVswitchIds`\"\u003e`worker_vswitch_ids`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`masterVswitchIds`\" pulumi-lang-dotnet=\"`MasterVswitchIds`\" pulumi-lang-go=\"`masterVswitchIds`\" pulumi-lang-python=\"`master_vswitch_ids`\" pulumi-lang-yaml=\"`masterVswitchIds`\" pulumi-lang-java=\"`masterVswitchIds`\"\u003e`master_vswitch_ids`\u003c/span\u003e but must be in same availability zones. Only works for **Create** Operation.\n"},"proxyMode":{"type":"string","description":"Proxy mode is option of kube-proxy. options: iptables | ipvs. default: ipvs.\n"},"rdsInstances":{"type":"array","items":{"type":"string"},"description":"RDS instance list, You can choose which RDS instances whitelist to add instances to.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group,by default these cloud resources are automatically assigned to the default resource group.\n"},"retainResources":{"type":"array","items":{"type":"string"},"description":"Resources that are automatically created during cluster creation, including NAT gateways, SNAT rules, SLB instances, and RAM Role, will be deleted. Resources that are manually created after you create the cluster, such as SLB instances for Services, will also be deleted. If you need to retain resources, please configure with \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e. There are several aspects to pay attention to when using \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e to retain resources. After configuring \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e into the terraform configuration manifest file, you first need to run `pulumi up`.Then execute `terraform destroy`.\n"},"runtime":{"$ref":"#/types/alicloud:cs/KubernetesRuntime:KubernetesRuntime","description":"The runtime of containers. If you select another container runtime, see [How do I select between Docker and Sandboxed-Container](https://www.alibabacloud.com/help/doc-detail/160313.htm?spm=a2c63.p38356.b99.440.22563866AJkBgI). See \u003cspan pulumi-lang-nodejs=\"`runtime`\" pulumi-lang-dotnet=\"`Runtime`\" pulumi-lang-go=\"`runtime`\" pulumi-lang-python=\"`runtime`\" pulumi-lang-yaml=\"`runtime`\" pulumi-lang-java=\"`runtime`\"\u003e`runtime`\u003c/span\u003e below.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group to which the ECS instances in the cluster belong. If it is not specified, a new Security group will be built.\n"},"serviceAccountIssuer":{"type":"string","description":"The issuer of the Service Account token for [Service Account Token Volume Projection](https://www.alibabacloud.com/help/doc-detail/160384.htm), corresponds to the \u003cspan pulumi-lang-nodejs=\"`iss`\" pulumi-lang-dotnet=\"`Iss`\" pulumi-lang-go=\"`iss`\" pulumi-lang-python=\"`iss`\" pulumi-lang-yaml=\"`iss`\" pulumi-lang-java=\"`iss`\"\u003e`iss`\u003c/span\u003e field in the token payload. Set this to `\"https://kubernetes.default.svc\"` to enable the Token Volume Projection feature (requires specifying \u003cspan pulumi-lang-nodejs=\"`apiAudiences`\" pulumi-lang-dotnet=\"`ApiAudiences`\" pulumi-lang-go=\"`apiAudiences`\" pulumi-lang-python=\"`api_audiences`\" pulumi-lang-yaml=\"`apiAudiences`\" pulumi-lang-java=\"`apiAudiences`\"\u003e`api_audiences`\u003c/span\u003e as well). From cluster version 1.22+, Service Account Token Volume Projection will be enabled by default.\n"},"serviceCidr":{"type":"string","description":"The CIDR block for the service network. It cannot be duplicated with the VPC CIDR and CIDR used by Kubernetes cluster in VPC, cannot be modified after creation.\n"},"skipSetCertificateAuthority":{"type":"boolean","description":"Configure whether to save certificate authority data for your cluster to attribute \u003cspan pulumi-lang-nodejs=\"`certificateAuthority`\" pulumi-lang-dotnet=\"`CertificateAuthority`\" pulumi-lang-go=\"`certificateAuthority`\" pulumi-lang-python=\"`certificate_authority`\" pulumi-lang-yaml=\"`certificateAuthority`\" pulumi-lang-java=\"`certificateAuthority`\"\u003e`certificate_authority`\u003c/span\u003e.For cluster security, recommended configuration as \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Will be removed with attribute\u003cspan pulumi-lang-nodejs=\" certificateAuthority \" pulumi-lang-dotnet=\" CertificateAuthority \" pulumi-lang-go=\" certificateAuthority \" pulumi-lang-python=\" certificate_authority \" pulumi-lang-yaml=\" certificateAuthority \" pulumi-lang-java=\" certificateAuthority \"\u003e certificate_authority \u003c/span\u003eremoved.\n\n*Network params*\n"},"slbId":{"type":"string","description":"The ID of APIServer load balancer.\n"},"slbInternet":{"type":"string","description":"The public ip of load balancer.\n"},"slbInternetEnabled":{"type":"boolean","description":"Whether to create internet load balancer for API Server. Default to true. Only works for **Create** Operation. \n\n\u003e **NOTE:** If you want to use `Terway` as CNI network plugin, You need to specify the \u003cspan pulumi-lang-nodejs=\"`podVswitchIds`\" pulumi-lang-dotnet=\"`PodVswitchIds`\" pulumi-lang-go=\"`podVswitchIds`\" pulumi-lang-python=\"`pod_vswitch_ids`\" pulumi-lang-yaml=\"`podVswitchIds`\" pulumi-lang-java=\"`podVswitchIds`\"\u003e`pod_vswitch_ids`\u003c/span\u003e field and addons with `terway-eniip`.\nIf you want to use `Flannel` as CNI network plugin, You need to specify the \u003cspan pulumi-lang-nodejs=\"`podCidr`\" pulumi-lang-dotnet=\"`PodCidr`\" pulumi-lang-go=\"`podCidr`\" pulumi-lang-python=\"`pod_cidr`\" pulumi-lang-yaml=\"`podCidr`\" pulumi-lang-java=\"`podCidr`\"\u003e`pod_cidr`\u003c/span\u003e field and addons with \u003cspan pulumi-lang-nodejs=\"`flannel`\" pulumi-lang-dotnet=\"`Flannel`\" pulumi-lang-go=\"`flannel`\" pulumi-lang-python=\"`flannel`\" pulumi-lang-yaml=\"`flannel`\" pulumi-lang-java=\"`flannel`\"\u003e`flannel`\u003c/span\u003e.\n\n*Master params*\n"},"slbIntranet":{"type":"string","description":"The ID of private load balancer where the current cluster master node is located.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Default nil, A map of tags assigned to the kubernetes cluster and work nodes.\n"},"timezone":{"type":"string","description":"When you create a cluster, set the time zones for the Master and Worker nodes. You can only change the managed node time zone if you create a cluster. Once the cluster is created, you can only change the time zone of the Worker node.\n"},"userCa":{"type":"string","description":"The path of customized CA cert, you can use this CA to sign client certs to connect your cluster.\n"},"version":{"type":"string","description":"Desired Kubernetes version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except you set a higher version number. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by ACK.\n"},"vpcId":{"type":"string","description":"The ID of VPC where the current cluster is located.\n"},"workerRamRoleName":{"type":"string","description":"The RamRole Name attached to worker node.\n"}},"required":["certificateAuthority","connections","imageId","isEnterpriseSecurityGroup","loadBalancerSpec","masterInstanceTypes","masterNodes","masterVswitchIds","name","natGatewayId","nodeNameMode","platform","resourceGroupId","securityGroupId","slbId","slbInternet","slbIntranet","version","vpcId","workerRamRoleName"],"inputProperties":{"addons":{"type":"array","items":{"$ref":"#/types/alicloud:cs/KubernetesAddon:KubernetesAddon"},"description":"The addon you want to install in cluster. See \u003cspan pulumi-lang-nodejs=\"`addons`\" pulumi-lang-dotnet=\"`Addons`\" pulumi-lang-go=\"`addons`\" pulumi-lang-python=\"`addons`\" pulumi-lang-yaml=\"`addons`\" pulumi-lang-java=\"`addons`\"\u003e`addons`\u003c/span\u003e below. Only works for **Create** Operation, use resource\u003cspan pulumi-lang-nodejs=\" csKubernetesAddon \" pulumi-lang-dotnet=\" CsKubernetesAddon \" pulumi-lang-go=\" csKubernetesAddon \" pulumi-lang-python=\" cs_kubernetes_addon \" pulumi-lang-yaml=\" csKubernetesAddon \" pulumi-lang-java=\" csKubernetesAddon \"\u003e cs_kubernetes_addon \u003c/span\u003eto manage addons if cluster is created.\n"},"apiAudiences":{"type":"array","items":{"type":"string"},"description":"A list of API audiences for [Service Account Token Volume Projection](https://www.alibabacloud.com/help/doc-detail/160384.htm). Set this to `[\"https://kubernetes.default.svc\"]` if you want to enable the Token Volume Projection feature requires specifying \u003cspan pulumi-lang-nodejs=\"`serviceAccountIssuer`\" pulumi-lang-dotnet=\"`ServiceAccountIssuer`\" pulumi-lang-go=\"`serviceAccountIssuer`\" pulumi-lang-python=\"`service_account_issuer`\" pulumi-lang-yaml=\"`serviceAccountIssuer`\" pulumi-lang-java=\"`serviceAccountIssuer`\"\u003e`service_account_issuer`\u003c/span\u003e as well. From cluster version 1.22+, Service Account Token Volume Projection will be enabled by default.\n","willReplaceOnChanges":true},"clientCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-cert.pem) for replace it.\n","deprecationMessage":"Field 'client_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-cert.pem) for replace it."},"clientKey":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_key attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-key.pem) for replace it.\n","deprecationMessage":"Field 'client_key' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_key' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-key.pem) for replace it."},"clusterCaCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.cluster_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it.\n\n*Removed params*\n","deprecationMessage":"Field 'cluster_ca_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.cluster_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it."},"clusterDomain":{"type":"string","description":"Cluster local domain name, Default to `cluster.local`. A domain name consists of one or more sections separated by a decimal point (.), each of which is up to 63 characters long, and can be lowercase, numerals, and underscores (-), and must be lowercase or numerals at the beginning and end.\n","willReplaceOnChanges":true},"customSan":{"type":"string","description":"Customize the certificate SAN, multiple IP or domain names are separated by English commas (,).\n","willReplaceOnChanges":true},"deleteOptions":{"type":"array","items":{"$ref":"#/types/alicloud:cs/KubernetesDeleteOption:KubernetesDeleteOption"},"description":"Delete options, only work for deleting resource. Make sure you have run `pulumi up` to make the configuration applied. See \u003cspan pulumi-lang-nodejs=\"`deleteOptions`\" pulumi-lang-dotnet=\"`DeleteOptions`\" pulumi-lang-go=\"`deleteOptions`\" pulumi-lang-python=\"`delete_options`\" pulumi-lang-yaml=\"`deleteOptions`\" pulumi-lang-java=\"`deleteOptions`\"\u003e`delete_options`\u003c/span\u003e below.\n"},"deletionProtection":{"type":"boolean","description":"Whether to enable cluster deletion protection.\n"},"enableSsh":{"type":"boolean","description":"Enable login to the node through SSH. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"imageId":{"type":"string","description":"Custom Image support. Must be based on AliyunLinux or AliyunLinux3.\n","willReplaceOnChanges":true},"installCloudMonitor":{"type":"boolean","description":"Install cloud monitor agent on ECS. Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"isEnterpriseSecurityGroup":{"type":"boolean","description":"Enable to create advanced security group. default: false. See [Advanced security group](https://www.alibabacloud.com/help/doc-detail/120621.htm). Only works for **Create** Operation.\n","willReplaceOnChanges":true},"keyName":{"type":"string","description":"The keypair of ssh login cluster node, you have to create it first. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a cs kubernetes. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a cs kubernetes with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"loadBalancerSpec":{"type":"string","description":"The cluster api server load balancer instance specification. For more information on how to select a LB instance specification, see [SLB instance overview](https://help.aliyun.com/document_detail/85931.html). Only works for **Create** Operation. The spec will not take effect because the charge of the load balancer has been changed to PayByCLCU.\n","deprecationMessage":"Field 'load_balancer_spec' has been deprecated from provider version 1.232.0. The spec will not take effect because the charge of the load balancer has been changed to PayByCLCU"},"masterAutoRenew":{"type":"boolean","description":"Enable master payment auto-renew, defaults to false.\n","willReplaceOnChanges":true},"masterAutoRenewPeriod":{"type":"integer","description":"Master payment auto-renew period, it can be one of {1, 2, 3, 6, 12}.\n","willReplaceOnChanges":true},"masterDiskCategory":{"type":"string","description":"The system disk category of master node. Its valid value are \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n","willReplaceOnChanges":true},"masterDiskPerformanceLevel":{"type":"string","description":"Master node system disk performance level. When \u003cspan pulumi-lang-nodejs=\"`masterDiskCategory`\" pulumi-lang-dotnet=\"`MasterDiskCategory`\" pulumi-lang-go=\"`masterDiskCategory`\" pulumi-lang-python=\"`master_disk_category`\" pulumi-lang-yaml=\"`masterDiskCategory`\" pulumi-lang-java=\"`masterDiskCategory`\"\u003e`master_disk_category`\u003c/span\u003e values \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, the optional values are `PL0`, `PL1`, `PL2` or `PL3`, but the specific performance level is related to the disk capacity. For more information, see [Enhanced SSDs](https://www.alibabacloud.com/help/doc-detail/122389.htm). Default is `PL1`.\n","willReplaceOnChanges":true},"masterDiskSize":{"type":"integer","description":"The system disk size of master node. Its valid value range [20~500] in GB. Default to 20.\n","willReplaceOnChanges":true},"masterDiskSnapshotPolicyId":{"type":"string","description":"Master node system disk auto snapshot policy.\n\n*Computed params*\n","willReplaceOnChanges":true},"masterInstanceChargeType":{"type":"string","description":"Master payment type. or `PostPaid` or `PrePaid`, defaults to `PostPaid`. If value is `PrePaid`, the files \u003cspan pulumi-lang-nodejs=\"`masterPeriod`\" pulumi-lang-dotnet=\"`MasterPeriod`\" pulumi-lang-go=\"`masterPeriod`\" pulumi-lang-python=\"`master_period`\" pulumi-lang-yaml=\"`masterPeriod`\" pulumi-lang-java=\"`masterPeriod`\"\u003e`master_period`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`masterPeriodUnit`\" pulumi-lang-dotnet=\"`MasterPeriodUnit`\" pulumi-lang-go=\"`masterPeriodUnit`\" pulumi-lang-python=\"`master_period_unit`\" pulumi-lang-yaml=\"`masterPeriodUnit`\" pulumi-lang-java=\"`masterPeriodUnit`\"\u003e`master_period_unit`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`masterAutoRenew`\" pulumi-lang-dotnet=\"`MasterAutoRenew`\" pulumi-lang-go=\"`masterAutoRenew`\" pulumi-lang-python=\"`master_auto_renew`\" pulumi-lang-yaml=\"`masterAutoRenew`\" pulumi-lang-java=\"`masterAutoRenew`\"\u003e`master_auto_renew`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`masterAutoRenewPeriod`\" pulumi-lang-dotnet=\"`MasterAutoRenewPeriod`\" pulumi-lang-go=\"`masterAutoRenewPeriod`\" pulumi-lang-python=\"`master_auto_renew_period`\" pulumi-lang-yaml=\"`masterAutoRenewPeriod`\" pulumi-lang-java=\"`masterAutoRenewPeriod`\"\u003e`master_auto_renew_period`\u003c/span\u003e are required.\n","willReplaceOnChanges":true},"masterInstanceTypes":{"type":"array","items":{"type":"string"},"description":"The instance type of master node. Specify one type for single AZ Cluster, three types for MultiAZ Cluster.\n","willReplaceOnChanges":true},"masterPeriod":{"type":"integer","description":"Master payment period.Its valid value is one of {1, 2, 3, 6, 12, 24, 36, 48, 60}.\n","willReplaceOnChanges":true},"masterPeriodUnit":{"type":"string","description":"Master payment period unit, the valid value is `Month`.\n","willReplaceOnChanges":true},"masterVswitchIds":{"type":"array","items":{"type":"string"},"description":"The vswitches used by master, you can specific 3 or 5 vswitches because of the amount of masters. Detailed below.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The kubernetes cluster's name. It is unique in one Alicloud account.\n"},"namePrefix":{"type":"string","description":"The kubernetes cluster name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e. If it is specified, terraform will using it to build the only cluster name. Default to \"Terraform-Creation\".\n","deprecationMessage":"Field 'name_prefix' has been deprecated from provider version 1.75.0."},"newNatGateway":{"type":"boolean","description":"Whether to create a new nat gateway while creating kubernetes cluster. Default to true. Then openapi in Alibaba Cloud are not all on intranet, So turn this option on is a good choice. Your cluster nodes and applications will have public network access. If there is a NAT gateway in the selected VPC, ACK will use this gateway by default; if there is no NAT gateway in the selected VPC, ACK will create a new NAT gateway for you and automatically configure SNAT rules. Only works for **Create** Operation.\n"},"nodeCidrMask":{"type":"integer","description":"The node cidr block to specific how many pods can run on single node. 24-28 is allowed. 24 means 2^(32-24)-1=255 and the node can run at most 255 pods. default: 24\n","willReplaceOnChanges":true},"nodeNameMode":{"type":"string","description":"Each node name consists of a prefix, an IP substring, and a suffix, the input format is `customized,\u003cprefix\u003e,IPSubStringLen,\u003csuffix\u003e`. For example \"customized,aliyun.com-,5,-test\", if the node IP address is 192.168.59.176, the prefix is aliyun.com-, IP substring length is 5, and the suffix is -test, the node name will be aliyun.com-59176-test.\n","willReplaceOnChanges":true},"osType":{"type":"string","description":"The operating system of the nodes that run pods, its valid value is either `Linux` or `Windows`. Default to `Linux`.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of ssh login cluster node. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","secret":true},"platform":{"type":"string","description":"The architecture of the nodes that run pods, its valid value `AliyunLinux`, `AliyunLinux3`. Default to `AliyunLinux3`.\n","willReplaceOnChanges":true},"podCidr":{"type":"string","description":"[Flannel Specific] The CIDR block for the pod network when using Flannel.\n","willReplaceOnChanges":true},"podVswitchIds":{"type":"array","items":{"type":"string"},"description":"[Terway Specific] The vswitches for the pod network when using Terway. It is recommended that \u003cspan pulumi-lang-nodejs=\"`podVswitchIds`\" pulumi-lang-dotnet=\"`PodVswitchIds`\" pulumi-lang-go=\"`podVswitchIds`\" pulumi-lang-python=\"`pod_vswitch_ids`\" pulumi-lang-yaml=\"`podVswitchIds`\" pulumi-lang-java=\"`podVswitchIds`\"\u003e`pod_vswitch_ids`\u003c/span\u003e is not belong to \u003cspan pulumi-lang-nodejs=\"`workerVswitchIds`\" pulumi-lang-dotnet=\"`WorkerVswitchIds`\" pulumi-lang-go=\"`workerVswitchIds`\" pulumi-lang-python=\"`worker_vswitch_ids`\" pulumi-lang-yaml=\"`workerVswitchIds`\" pulumi-lang-java=\"`workerVswitchIds`\"\u003e`worker_vswitch_ids`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`masterVswitchIds`\" pulumi-lang-dotnet=\"`MasterVswitchIds`\" pulumi-lang-go=\"`masterVswitchIds`\" pulumi-lang-python=\"`master_vswitch_ids`\" pulumi-lang-yaml=\"`masterVswitchIds`\" pulumi-lang-java=\"`masterVswitchIds`\"\u003e`master_vswitch_ids`\u003c/span\u003e but must be in same availability zones. Only works for **Create** Operation.\n"},"proxyMode":{"type":"string","description":"Proxy mode is option of kube-proxy. options: iptables | ipvs. default: ipvs.\n","willReplaceOnChanges":true},"rdsInstances":{"type":"array","items":{"type":"string"},"description":"RDS instance list, You can choose which RDS instances whitelist to add instances to.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group,by default these cloud resources are automatically assigned to the default resource group.\n"},"retainResources":{"type":"array","items":{"type":"string"},"description":"Resources that are automatically created during cluster creation, including NAT gateways, SNAT rules, SLB instances, and RAM Role, will be deleted. Resources that are manually created after you create the cluster, such as SLB instances for Services, will also be deleted. If you need to retain resources, please configure with \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e. There are several aspects to pay attention to when using \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e to retain resources. After configuring \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e into the terraform configuration manifest file, you first need to run `pulumi up`.Then execute `terraform destroy`.\n"},"runtime":{"$ref":"#/types/alicloud:cs/KubernetesRuntime:KubernetesRuntime","description":"The runtime of containers. If you select another container runtime, see [How do I select between Docker and Sandboxed-Container](https://www.alibabacloud.com/help/doc-detail/160313.htm?spm=a2c63.p38356.b99.440.22563866AJkBgI). See \u003cspan pulumi-lang-nodejs=\"`runtime`\" pulumi-lang-dotnet=\"`Runtime`\" pulumi-lang-go=\"`runtime`\" pulumi-lang-python=\"`runtime`\" pulumi-lang-yaml=\"`runtime`\" pulumi-lang-java=\"`runtime`\"\u003e`runtime`\u003c/span\u003e below.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group to which the ECS instances in the cluster belong. If it is not specified, a new Security group will be built.\n","willReplaceOnChanges":true},"serviceAccountIssuer":{"type":"string","description":"The issuer of the Service Account token for [Service Account Token Volume Projection](https://www.alibabacloud.com/help/doc-detail/160384.htm), corresponds to the \u003cspan pulumi-lang-nodejs=\"`iss`\" pulumi-lang-dotnet=\"`Iss`\" pulumi-lang-go=\"`iss`\" pulumi-lang-python=\"`iss`\" pulumi-lang-yaml=\"`iss`\" pulumi-lang-java=\"`iss`\"\u003e`iss`\u003c/span\u003e field in the token payload. Set this to `\"https://kubernetes.default.svc\"` to enable the Token Volume Projection feature (requires specifying \u003cspan pulumi-lang-nodejs=\"`apiAudiences`\" pulumi-lang-dotnet=\"`ApiAudiences`\" pulumi-lang-go=\"`apiAudiences`\" pulumi-lang-python=\"`api_audiences`\" pulumi-lang-yaml=\"`apiAudiences`\" pulumi-lang-java=\"`apiAudiences`\"\u003e`api_audiences`\u003c/span\u003e as well). From cluster version 1.22+, Service Account Token Volume Projection will be enabled by default.\n","willReplaceOnChanges":true},"serviceCidr":{"type":"string","description":"The CIDR block for the service network. It cannot be duplicated with the VPC CIDR and CIDR used by Kubernetes cluster in VPC, cannot be modified after creation.\n","willReplaceOnChanges":true},"skipSetCertificateAuthority":{"type":"boolean","description":"Configure whether to save certificate authority data for your cluster to attribute \u003cspan pulumi-lang-nodejs=\"`certificateAuthority`\" pulumi-lang-dotnet=\"`CertificateAuthority`\" pulumi-lang-go=\"`certificateAuthority`\" pulumi-lang-python=\"`certificate_authority`\" pulumi-lang-yaml=\"`certificateAuthority`\" pulumi-lang-java=\"`certificateAuthority`\"\u003e`certificate_authority`\u003c/span\u003e.For cluster security, recommended configuration as \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Will be removed with attribute\u003cspan pulumi-lang-nodejs=\" certificateAuthority \" pulumi-lang-dotnet=\" CertificateAuthority \" pulumi-lang-go=\" certificateAuthority \" pulumi-lang-python=\" certificate_authority \" pulumi-lang-yaml=\" certificateAuthority \" pulumi-lang-java=\" certificateAuthority \"\u003e certificate_authority \u003c/span\u003eremoved.\n\n*Network params*\n"},"slbInternetEnabled":{"type":"boolean","description":"Whether to create internet load balancer for API Server. Default to true. Only works for **Create** Operation. \n\n\u003e **NOTE:** If you want to use `Terway` as CNI network plugin, You need to specify the \u003cspan pulumi-lang-nodejs=\"`podVswitchIds`\" pulumi-lang-dotnet=\"`PodVswitchIds`\" pulumi-lang-go=\"`podVswitchIds`\" pulumi-lang-python=\"`pod_vswitch_ids`\" pulumi-lang-yaml=\"`podVswitchIds`\" pulumi-lang-java=\"`podVswitchIds`\"\u003e`pod_vswitch_ids`\u003c/span\u003e field and addons with `terway-eniip`.\nIf you want to use `Flannel` as CNI network plugin, You need to specify the \u003cspan pulumi-lang-nodejs=\"`podCidr`\" pulumi-lang-dotnet=\"`PodCidr`\" pulumi-lang-go=\"`podCidr`\" pulumi-lang-python=\"`pod_cidr`\" pulumi-lang-yaml=\"`podCidr`\" pulumi-lang-java=\"`podCidr`\"\u003e`pod_cidr`\u003c/span\u003e field and addons with \u003cspan pulumi-lang-nodejs=\"`flannel`\" pulumi-lang-dotnet=\"`Flannel`\" pulumi-lang-go=\"`flannel`\" pulumi-lang-python=\"`flannel`\" pulumi-lang-yaml=\"`flannel`\" pulumi-lang-java=\"`flannel`\"\u003e`flannel`\u003c/span\u003e.\n\n*Master params*\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Default nil, A map of tags assigned to the kubernetes cluster and work nodes.\n"},"timezone":{"type":"string","description":"When you create a cluster, set the time zones for the Master and Worker nodes. You can only change the managed node time zone if you create a cluster. Once the cluster is created, you can only change the time zone of the Worker node.\n","willReplaceOnChanges":true},"userCa":{"type":"string","description":"The path of customized CA cert, you can use this CA to sign client certs to connect your cluster.\n"},"version":{"type":"string","description":"Desired Kubernetes version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except you set a higher version number. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by ACK.\n"}},"requiredInputs":["masterInstanceTypes","masterVswitchIds"],"stateInputs":{"description":"Input properties used for looking up and filtering Kubernetes resources.\n","properties":{"addons":{"type":"array","items":{"$ref":"#/types/alicloud:cs/KubernetesAddon:KubernetesAddon"},"description":"The addon you want to install in cluster. See \u003cspan pulumi-lang-nodejs=\"`addons`\" pulumi-lang-dotnet=\"`Addons`\" pulumi-lang-go=\"`addons`\" pulumi-lang-python=\"`addons`\" pulumi-lang-yaml=\"`addons`\" pulumi-lang-java=\"`addons`\"\u003e`addons`\u003c/span\u003e below. Only works for **Create** Operation, use resource\u003cspan pulumi-lang-nodejs=\" csKubernetesAddon \" pulumi-lang-dotnet=\" CsKubernetesAddon \" pulumi-lang-go=\" csKubernetesAddon \" pulumi-lang-python=\" cs_kubernetes_addon \" pulumi-lang-yaml=\" csKubernetesAddon \" pulumi-lang-java=\" csKubernetesAddon \"\u003e cs_kubernetes_addon \u003c/span\u003eto manage addons if cluster is created.\n"},"apiAudiences":{"type":"array","items":{"type":"string"},"description":"A list of API audiences for [Service Account Token Volume Projection](https://www.alibabacloud.com/help/doc-detail/160384.htm). Set this to `[\"https://kubernetes.default.svc\"]` if you want to enable the Token Volume Projection feature requires specifying \u003cspan pulumi-lang-nodejs=\"`serviceAccountIssuer`\" pulumi-lang-dotnet=\"`ServiceAccountIssuer`\" pulumi-lang-go=\"`serviceAccountIssuer`\" pulumi-lang-python=\"`service_account_issuer`\" pulumi-lang-yaml=\"`serviceAccountIssuer`\" pulumi-lang-java=\"`serviceAccountIssuer`\"\u003e`service_account_issuer`\u003c/span\u003e as well. From cluster version 1.22+, Service Account Token Volume Projection will be enabled by default.\n","willReplaceOnChanges":true},"certificateAuthority":{"$ref":"#/types/alicloud:cs/KubernetesCertificateAuthority:KubernetesCertificateAuthority","description":"(Map, Deprecated from v1.248.0) Nested attribute containing certificate authority data for your cluster. Please use the attribute\u003cspan pulumi-lang-nodejs=\" certificateAuthority \" pulumi-lang-dotnet=\" CertificateAuthority \" pulumi-lang-go=\" certificateAuthority \" pulumi-lang-python=\" certificate_authority \" pulumi-lang-yaml=\" certificateAuthority \" pulumi-lang-java=\" certificateAuthority \"\u003e certificate_authority \u003c/span\u003eof new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to replace it.\n","deprecationMessage":"Field 'certificate_authority' has been deprecated from provider version 1.248.0. Please use the attribute 'certificate_authority' of new DataSource 'alicloud_cs_cluster_credential' to replace it."},"clientCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-cert.pem) for replace it.\n","deprecationMessage":"Field 'client_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-cert.pem) for replace it."},"clientKey":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_key attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-key.pem) for replace it.\n","deprecationMessage":"Field 'client_key' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_key' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-key.pem) for replace it."},"clusterCaCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.cluster_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it.\n\n*Removed params*\n","deprecationMessage":"Field 'cluster_ca_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.cluster_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it."},"clusterDomain":{"type":"string","description":"Cluster local domain name, Default to `cluster.local`. A domain name consists of one or more sections separated by a decimal point (.), each of which is up to 63 characters long, and can be lowercase, numerals, and underscores (-), and must be lowercase or numerals at the beginning and end.\n","willReplaceOnChanges":true},"connections":{"$ref":"#/types/alicloud:cs/KubernetesConnections:KubernetesConnections","description":"(Map) Map of kubernetes cluster connection information.\n"},"customSan":{"type":"string","description":"Customize the certificate SAN, multiple IP or domain names are separated by English commas (,).\n","willReplaceOnChanges":true},"deleteOptions":{"type":"array","items":{"$ref":"#/types/alicloud:cs/KubernetesDeleteOption:KubernetesDeleteOption"},"description":"Delete options, only work for deleting resource. Make sure you have run `pulumi up` to make the configuration applied. See \u003cspan pulumi-lang-nodejs=\"`deleteOptions`\" pulumi-lang-dotnet=\"`DeleteOptions`\" pulumi-lang-go=\"`deleteOptions`\" pulumi-lang-python=\"`delete_options`\" pulumi-lang-yaml=\"`deleteOptions`\" pulumi-lang-java=\"`deleteOptions`\"\u003e`delete_options`\u003c/span\u003e below.\n"},"deletionProtection":{"type":"boolean","description":"Whether to enable cluster deletion protection.\n"},"enableSsh":{"type":"boolean","description":"Enable login to the node through SSH. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"imageId":{"type":"string","description":"Custom Image support. Must be based on AliyunLinux or AliyunLinux3.\n","willReplaceOnChanges":true},"installCloudMonitor":{"type":"boolean","description":"Install cloud monitor agent on ECS. Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"isEnterpriseSecurityGroup":{"type":"boolean","description":"Enable to create advanced security group. default: false. See [Advanced security group](https://www.alibabacloud.com/help/doc-detail/120621.htm). Only works for **Create** Operation.\n","willReplaceOnChanges":true},"keyName":{"type":"string","description":"The keypair of ssh login cluster node, you have to create it first. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a cs kubernetes. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a cs kubernetes with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"loadBalancerSpec":{"type":"string","description":"The cluster api server load balancer instance specification. For more information on how to select a LB instance specification, see [SLB instance overview](https://help.aliyun.com/document_detail/85931.html). Only works for **Create** Operation. The spec will not take effect because the charge of the load balancer has been changed to PayByCLCU.\n","deprecationMessage":"Field 'load_balancer_spec' has been deprecated from provider version 1.232.0. The spec will not take effect because the charge of the load balancer has been changed to PayByCLCU"},"masterAutoRenew":{"type":"boolean","description":"Enable master payment auto-renew, defaults to false.\n","willReplaceOnChanges":true},"masterAutoRenewPeriod":{"type":"integer","description":"Master payment auto-renew period, it can be one of {1, 2, 3, 6, 12}.\n","willReplaceOnChanges":true},"masterDiskCategory":{"type":"string","description":"The system disk category of master node. Its valid value are \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n","willReplaceOnChanges":true},"masterDiskPerformanceLevel":{"type":"string","description":"Master node system disk performance level. When \u003cspan pulumi-lang-nodejs=\"`masterDiskCategory`\" pulumi-lang-dotnet=\"`MasterDiskCategory`\" pulumi-lang-go=\"`masterDiskCategory`\" pulumi-lang-python=\"`master_disk_category`\" pulumi-lang-yaml=\"`masterDiskCategory`\" pulumi-lang-java=\"`masterDiskCategory`\"\u003e`master_disk_category`\u003c/span\u003e values \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, the optional values are `PL0`, `PL1`, `PL2` or `PL3`, but the specific performance level is related to the disk capacity. For more information, see [Enhanced SSDs](https://www.alibabacloud.com/help/doc-detail/122389.htm). Default is `PL1`.\n","willReplaceOnChanges":true},"masterDiskSize":{"type":"integer","description":"The system disk size of master node. Its valid value range [20~500] in GB. Default to 20.\n","willReplaceOnChanges":true},"masterDiskSnapshotPolicyId":{"type":"string","description":"Master node system disk auto snapshot policy.\n\n*Computed params*\n","willReplaceOnChanges":true},"masterInstanceChargeType":{"type":"string","description":"Master payment type. or `PostPaid` or `PrePaid`, defaults to `PostPaid`. If value is `PrePaid`, the files \u003cspan pulumi-lang-nodejs=\"`masterPeriod`\" pulumi-lang-dotnet=\"`MasterPeriod`\" pulumi-lang-go=\"`masterPeriod`\" pulumi-lang-python=\"`master_period`\" pulumi-lang-yaml=\"`masterPeriod`\" pulumi-lang-java=\"`masterPeriod`\"\u003e`master_period`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`masterPeriodUnit`\" pulumi-lang-dotnet=\"`MasterPeriodUnit`\" pulumi-lang-go=\"`masterPeriodUnit`\" pulumi-lang-python=\"`master_period_unit`\" pulumi-lang-yaml=\"`masterPeriodUnit`\" pulumi-lang-java=\"`masterPeriodUnit`\"\u003e`master_period_unit`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`masterAutoRenew`\" pulumi-lang-dotnet=\"`MasterAutoRenew`\" pulumi-lang-go=\"`masterAutoRenew`\" pulumi-lang-python=\"`master_auto_renew`\" pulumi-lang-yaml=\"`masterAutoRenew`\" pulumi-lang-java=\"`masterAutoRenew`\"\u003e`master_auto_renew`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`masterAutoRenewPeriod`\" pulumi-lang-dotnet=\"`MasterAutoRenewPeriod`\" pulumi-lang-go=\"`masterAutoRenewPeriod`\" pulumi-lang-python=\"`master_auto_renew_period`\" pulumi-lang-yaml=\"`masterAutoRenewPeriod`\" pulumi-lang-java=\"`masterAutoRenewPeriod`\"\u003e`master_auto_renew_period`\u003c/span\u003e are required.\n","willReplaceOnChanges":true},"masterInstanceTypes":{"type":"array","items":{"type":"string"},"description":"The instance type of master node. Specify one type for single AZ Cluster, three types for MultiAZ Cluster.\n","willReplaceOnChanges":true},"masterNodes":{"type":"array","items":{"$ref":"#/types/alicloud:cs/KubernetesMasterNode:KubernetesMasterNode"},"description":"(Optional) The master nodes. See \u003cspan pulumi-lang-nodejs=\"`masterNodes`\" pulumi-lang-dotnet=\"`MasterNodes`\" pulumi-lang-go=\"`masterNodes`\" pulumi-lang-python=\"`master_nodes`\" pulumi-lang-yaml=\"`masterNodes`\" pulumi-lang-java=\"`masterNodes`\"\u003e`master_nodes`\u003c/span\u003e below.\n"},"masterPeriod":{"type":"integer","description":"Master payment period.Its valid value is one of {1, 2, 3, 6, 12, 24, 36, 48, 60}.\n","willReplaceOnChanges":true},"masterPeriodUnit":{"type":"string","description":"Master payment period unit, the valid value is `Month`.\n","willReplaceOnChanges":true},"masterVswitchIds":{"type":"array","items":{"type":"string"},"description":"The vswitches used by master, you can specific 3 or 5 vswitches because of the amount of masters. Detailed below.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The kubernetes cluster's name. It is unique in one Alicloud account.\n"},"namePrefix":{"type":"string","description":"The kubernetes cluster name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e. If it is specified, terraform will using it to build the only cluster name. Default to \"Terraform-Creation\".\n","deprecationMessage":"Field 'name_prefix' has been deprecated from provider version 1.75.0."},"natGatewayId":{"type":"string","description":"The ID of nat gateway used to launch kubernetes cluster.\n"},"newNatGateway":{"type":"boolean","description":"Whether to create a new nat gateway while creating kubernetes cluster. Default to true. Then openapi in Alibaba Cloud are not all on intranet, So turn this option on is a good choice. Your cluster nodes and applications will have public network access. If there is a NAT gateway in the selected VPC, ACK will use this gateway by default; if there is no NAT gateway in the selected VPC, ACK will create a new NAT gateway for you and automatically configure SNAT rules. Only works for **Create** Operation.\n"},"nodeCidrMask":{"type":"integer","description":"The node cidr block to specific how many pods can run on single node. 24-28 is allowed. 24 means 2^(32-24)-1=255 and the node can run at most 255 pods. default: 24\n","willReplaceOnChanges":true},"nodeNameMode":{"type":"string","description":"Each node name consists of a prefix, an IP substring, and a suffix, the input format is `customized,\u003cprefix\u003e,IPSubStringLen,\u003csuffix\u003e`. For example \"customized,aliyun.com-,5,-test\", if the node IP address is 192.168.59.176, the prefix is aliyun.com-, IP substring length is 5, and the suffix is -test, the node name will be aliyun.com-59176-test.\n","willReplaceOnChanges":true},"osType":{"type":"string","description":"The operating system of the nodes that run pods, its valid value is either `Linux` or `Windows`. Default to `Linux`.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of ssh login cluster node. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","secret":true},"platform":{"type":"string","description":"The architecture of the nodes that run pods, its valid value `AliyunLinux`, `AliyunLinux3`. Default to `AliyunLinux3`.\n","willReplaceOnChanges":true},"podCidr":{"type":"string","description":"[Flannel Specific] The CIDR block for the pod network when using Flannel.\n","willReplaceOnChanges":true},"podVswitchIds":{"type":"array","items":{"type":"string"},"description":"[Terway Specific] The vswitches for the pod network when using Terway. It is recommended that \u003cspan pulumi-lang-nodejs=\"`podVswitchIds`\" pulumi-lang-dotnet=\"`PodVswitchIds`\" pulumi-lang-go=\"`podVswitchIds`\" pulumi-lang-python=\"`pod_vswitch_ids`\" pulumi-lang-yaml=\"`podVswitchIds`\" pulumi-lang-java=\"`podVswitchIds`\"\u003e`pod_vswitch_ids`\u003c/span\u003e is not belong to \u003cspan pulumi-lang-nodejs=\"`workerVswitchIds`\" pulumi-lang-dotnet=\"`WorkerVswitchIds`\" pulumi-lang-go=\"`workerVswitchIds`\" pulumi-lang-python=\"`worker_vswitch_ids`\" pulumi-lang-yaml=\"`workerVswitchIds`\" pulumi-lang-java=\"`workerVswitchIds`\"\u003e`worker_vswitch_ids`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`masterVswitchIds`\" pulumi-lang-dotnet=\"`MasterVswitchIds`\" pulumi-lang-go=\"`masterVswitchIds`\" pulumi-lang-python=\"`master_vswitch_ids`\" pulumi-lang-yaml=\"`masterVswitchIds`\" pulumi-lang-java=\"`masterVswitchIds`\"\u003e`master_vswitch_ids`\u003c/span\u003e but must be in same availability zones. Only works for **Create** Operation.\n"},"proxyMode":{"type":"string","description":"Proxy mode is option of kube-proxy. options: iptables | ipvs. default: ipvs.\n","willReplaceOnChanges":true},"rdsInstances":{"type":"array","items":{"type":"string"},"description":"RDS instance list, You can choose which RDS instances whitelist to add instances to.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group,by default these cloud resources are automatically assigned to the default resource group.\n"},"retainResources":{"type":"array","items":{"type":"string"},"description":"Resources that are automatically created during cluster creation, including NAT gateways, SNAT rules, SLB instances, and RAM Role, will be deleted. Resources that are manually created after you create the cluster, such as SLB instances for Services, will also be deleted. If you need to retain resources, please configure with \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e. There are several aspects to pay attention to when using \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e to retain resources. After configuring \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e into the terraform configuration manifest file, you first need to run `pulumi up`.Then execute `terraform destroy`.\n"},"runtime":{"$ref":"#/types/alicloud:cs/KubernetesRuntime:KubernetesRuntime","description":"The runtime of containers. If you select another container runtime, see [How do I select between Docker and Sandboxed-Container](https://www.alibabacloud.com/help/doc-detail/160313.htm?spm=a2c63.p38356.b99.440.22563866AJkBgI). See \u003cspan pulumi-lang-nodejs=\"`runtime`\" pulumi-lang-dotnet=\"`Runtime`\" pulumi-lang-go=\"`runtime`\" pulumi-lang-python=\"`runtime`\" pulumi-lang-yaml=\"`runtime`\" pulumi-lang-java=\"`runtime`\"\u003e`runtime`\u003c/span\u003e below.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group to which the ECS instances in the cluster belong. If it is not specified, a new Security group will be built.\n","willReplaceOnChanges":true},"serviceAccountIssuer":{"type":"string","description":"The issuer of the Service Account token for [Service Account Token Volume Projection](https://www.alibabacloud.com/help/doc-detail/160384.htm), corresponds to the \u003cspan pulumi-lang-nodejs=\"`iss`\" pulumi-lang-dotnet=\"`Iss`\" pulumi-lang-go=\"`iss`\" pulumi-lang-python=\"`iss`\" pulumi-lang-yaml=\"`iss`\" pulumi-lang-java=\"`iss`\"\u003e`iss`\u003c/span\u003e field in the token payload. Set this to `\"https://kubernetes.default.svc\"` to enable the Token Volume Projection feature (requires specifying \u003cspan pulumi-lang-nodejs=\"`apiAudiences`\" pulumi-lang-dotnet=\"`ApiAudiences`\" pulumi-lang-go=\"`apiAudiences`\" pulumi-lang-python=\"`api_audiences`\" pulumi-lang-yaml=\"`apiAudiences`\" pulumi-lang-java=\"`apiAudiences`\"\u003e`api_audiences`\u003c/span\u003e as well). From cluster version 1.22+, Service Account Token Volume Projection will be enabled by default.\n","willReplaceOnChanges":true},"serviceCidr":{"type":"string","description":"The CIDR block for the service network. It cannot be duplicated with the VPC CIDR and CIDR used by Kubernetes cluster in VPC, cannot be modified after creation.\n","willReplaceOnChanges":true},"skipSetCertificateAuthority":{"type":"boolean","description":"Configure whether to save certificate authority data for your cluster to attribute \u003cspan pulumi-lang-nodejs=\"`certificateAuthority`\" pulumi-lang-dotnet=\"`CertificateAuthority`\" pulumi-lang-go=\"`certificateAuthority`\" pulumi-lang-python=\"`certificate_authority`\" pulumi-lang-yaml=\"`certificateAuthority`\" pulumi-lang-java=\"`certificateAuthority`\"\u003e`certificate_authority`\u003c/span\u003e.For cluster security, recommended configuration as \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Will be removed with attribute\u003cspan pulumi-lang-nodejs=\" certificateAuthority \" pulumi-lang-dotnet=\" CertificateAuthority \" pulumi-lang-go=\" certificateAuthority \" pulumi-lang-python=\" certificate_authority \" pulumi-lang-yaml=\" certificateAuthority \" pulumi-lang-java=\" certificateAuthority \"\u003e certificate_authority \u003c/span\u003eremoved.\n\n*Network params*\n"},"slbId":{"type":"string","description":"The ID of APIServer load balancer.\n"},"slbInternet":{"type":"string","description":"The public ip of load balancer.\n"},"slbInternetEnabled":{"type":"boolean","description":"Whether to create internet load balancer for API Server. Default to true. Only works for **Create** Operation. \n\n\u003e **NOTE:** If you want to use `Terway` as CNI network plugin, You need to specify the \u003cspan pulumi-lang-nodejs=\"`podVswitchIds`\" pulumi-lang-dotnet=\"`PodVswitchIds`\" pulumi-lang-go=\"`podVswitchIds`\" pulumi-lang-python=\"`pod_vswitch_ids`\" pulumi-lang-yaml=\"`podVswitchIds`\" pulumi-lang-java=\"`podVswitchIds`\"\u003e`pod_vswitch_ids`\u003c/span\u003e field and addons with `terway-eniip`.\nIf you want to use `Flannel` as CNI network plugin, You need to specify the \u003cspan pulumi-lang-nodejs=\"`podCidr`\" pulumi-lang-dotnet=\"`PodCidr`\" pulumi-lang-go=\"`podCidr`\" pulumi-lang-python=\"`pod_cidr`\" pulumi-lang-yaml=\"`podCidr`\" pulumi-lang-java=\"`podCidr`\"\u003e`pod_cidr`\u003c/span\u003e field and addons with \u003cspan pulumi-lang-nodejs=\"`flannel`\" pulumi-lang-dotnet=\"`Flannel`\" pulumi-lang-go=\"`flannel`\" pulumi-lang-python=\"`flannel`\" pulumi-lang-yaml=\"`flannel`\" pulumi-lang-java=\"`flannel`\"\u003e`flannel`\u003c/span\u003e.\n\n*Master params*\n"},"slbIntranet":{"type":"string","description":"The ID of private load balancer where the current cluster master node is located.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Default nil, A map of tags assigned to the kubernetes cluster and work nodes.\n"},"timezone":{"type":"string","description":"When you create a cluster, set the time zones for the Master and Worker nodes. You can only change the managed node time zone if you create a cluster. Once the cluster is created, you can only change the time zone of the Worker node.\n","willReplaceOnChanges":true},"userCa":{"type":"string","description":"The path of customized CA cert, you can use this CA to sign client certs to connect your cluster.\n"},"version":{"type":"string","description":"Desired Kubernetes version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except you set a higher version number. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by ACK.\n"},"vpcId":{"type":"string","description":"The ID of VPC where the current cluster is located.\n"},"workerRamRoleName":{"type":"string","description":"The RamRole Name attached to worker node.\n"}},"type":"object"}},"alicloud:cs/kubernetesAddon:KubernetesAddon":{"description":"This resource will help you to manage addon in Kubernetes Cluster, see [What is kubernetes addon](https://www.alibabacloud.com/help/en/ack/ack-managed-and-ack-dedicated/developer-reference/api-install-a-component-in-an-ack-cluster). For more usage information, see Use Terraform to manage addons.\n\n\u003e **NOTE:** Available since v1.150.0.\n\n\u003e **NOTE:** From version 1.166.0, support specifying addon customizable configuration.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    namePrefix: name,\n    clusterSpec: \"ack.pro.small\",\n    workerVswitchIds: [defaultSwitch.id],\n    newNatGateway: false,\n    podCidr: std.cidrsubnet({\n        input: \"10.0.0.0/8\",\n        newbits: 8,\n        netnum: 36,\n    }).then(invoke =\u003e invoke.result),\n    serviceCidr: std.cidrsubnet({\n        input: \"172.16.0.0/16\",\n        newbits: 4,\n        netnum: 7,\n    }).then(invoke =\u003e invoke.result),\n    slbInternetEnabled: true,\n    addons: [{\n        name: \"logtail-ds\",\n        config: JSON.stringify({\n            IngressDashboardEnabled: \"true\",\n        }),\n        disabled: false,\n    }],\n});\n// data source provides the information of available addons\nconst defaultGetKubernetesAddons = alicloud.cs.getKubernetesAddonsOutput({\n    clusterId: defaultManagedKubernetes.id,\n    nameRegex: \"logtail-ds\",\n});\n// Manage addon resource\nconst logtail_ds = new alicloud.cs.KubernetesAddon(\"logtail-ds\", {\n    clusterId: defaultManagedKubernetes.id,\n    name: \"logtail-ds\",\n    version: \"v1.6.0.0-aliyun\",\n    config: JSON.stringify({}),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name_prefix=name,\n    cluster_spec=\"ack.pro.small\",\n    worker_vswitch_ids=[default_switch.id],\n    new_nat_gateway=False,\n    pod_cidr=std.cidrsubnet(input=\"10.0.0.0/8\",\n        newbits=8,\n        netnum=36).result,\n    service_cidr=std.cidrsubnet(input=\"172.16.0.0/16\",\n        newbits=4,\n        netnum=7).result,\n    slb_internet_enabled=True,\n    addons=[{\n        \"name\": \"logtail-ds\",\n        \"config\": json.dumps({\n            \"IngressDashboardEnabled\": \"true\",\n        }),\n        \"disabled\": False,\n    }])\n# data source provides the information of available addons\ndefault_get_kubernetes_addons = alicloud.cs.get_kubernetes_addons_output(cluster_id=default_managed_kubernetes.id,\n    name_regex=\"logtail-ds\")\n# Manage addon resource\nlogtail_ds = alicloud.cs.KubernetesAddon(\"logtail-ds\",\n    cluster_id=default_managed_kubernetes.id,\n    name=\"logtail-ds\",\n    version=\"v1.6.0.0-aliyun\",\n    config=json.dumps({}))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        NamePrefix = name,\n        ClusterSpec = \"ack.pro.small\",\n        WorkerVswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        NewNatGateway = false,\n        PodCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"10.0.0.0/8\",\n            Newbits = 8,\n            Netnum = 36,\n        }).Apply(invoke =\u003e invoke.Result),\n        ServiceCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"172.16.0.0/16\",\n            Newbits = 4,\n            Netnum = 7,\n        }).Apply(invoke =\u003e invoke.Result),\n        SlbInternetEnabled = true,\n        Addons = new[]\n        {\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"logtail-ds\",\n                Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"IngressDashboardEnabled\"] = \"true\",\n                }),\n                Disabled = false,\n            },\n        },\n    });\n\n    // data source provides the information of available addons\n    var defaultGetKubernetesAddons = AliCloud.CS.GetKubernetesAddons.Invoke(new()\n    {\n        ClusterId = defaultManagedKubernetes.Id,\n        NameRegex = \"logtail-ds\",\n    });\n\n    // Manage addon resource\n    var logtail_ds = new AliCloud.CS.KubernetesAddon(\"logtail-ds\", new()\n    {\n        ClusterId = defaultManagedKubernetes.Id,\n        Name = \"logtail-ds\",\n        Version = \"v1.6.0.0-aliyun\",\n        Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"10.0.0.0/8\",\n\t\t\tNewbits: 8,\n\t\t\tNetnum:  36,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet1, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"172.16.0.0/16\",\n\t\t\tNewbits: 4,\n\t\t\tNetnum:  7,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"IngressDashboardEnabled\": \"true\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tdefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\n\t\t\tNamePrefix:  pulumi.String(name),\n\t\t\tClusterSpec: pulumi.String(\"ack.pro.small\"),\n\t\t\tWorkerVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tNewNatGateway:      pulumi.Bool(false),\n\t\t\tPodCidr:            pulumi.String(invokeCidrsubnet.Result),\n\t\t\tServiceCidr:        pulumi.String(invokeCidrsubnet1.Result),\n\t\t\tSlbInternetEnabled: pulumi.Bool(true),\n\t\t\tAddons: cs.ManagedKubernetesAddonArray{\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName:     pulumi.String(\"logtail-ds\"),\n\t\t\t\t\tConfig:   pulumi.String(json0),\n\t\t\t\t\tDisabled: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// data source provides the information of available addons\n\t\t_ = cs.GetKubernetesAddonsOutput(ctx, cs.GetKubernetesAddonsOutputArgs{\n\t\t\tClusterId: defaultManagedKubernetes.ID(),\n\t\t\tNameRegex: pulumi.String(\"logtail-ds\"),\n\t\t}, nil)\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t// Manage addon resource\n\t\t_, err = cs.NewKubernetesAddon(ctx, \"logtail-ds\", \u0026cs.KubernetesAddonArgs{\n\t\t\tClusterId: defaultManagedKubernetes.ID(),\n\t\t\tName:      pulumi.String(\"logtail-ds\"),\n\t\t\tVersion:   pulumi.String(\"v1.6.0.0-aliyun\"),\n\t\t\tConfig:    pulumi.String(json1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.alicloud.cs.inputs.ManagedKubernetesAddonArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetKubernetesAddonsArgs;\nimport com.pulumi.alicloud.cs.KubernetesAddon;\nimport com.pulumi.alicloud.cs.KubernetesAddonArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .namePrefix(name)\n            .clusterSpec(\"ack.pro.small\")\n            .workerVswitchIds(defaultSwitch.id())\n            .newNatGateway(false)\n            .podCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"10.0.0.0/8\")\n                .newbits(8)\n                .netnum(36)\n                .build()).result())\n            .serviceCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"172.16.0.0/16\")\n                .newbits(4)\n                .netnum(7)\n                .build()).result())\n            .slbInternetEnabled(true)\n            .addons(ManagedKubernetesAddonArgs.builder()\n                .name(\"logtail-ds\")\n                .config(serializeJson(\n                    jsonObject(\n                        jsonProperty(\"IngressDashboardEnabled\", \"true\")\n                    )))\n                .disabled(false)\n                .build())\n            .build());\n\n        // data source provides the information of available addons\n        final var defaultGetKubernetesAddons = CsFunctions.getKubernetesAddons(GetKubernetesAddonsArgs.builder()\n            .clusterId(defaultManagedKubernetes.id())\n            .nameRegex(\"logtail-ds\")\n            .build());\n\n        // Manage addon resource\n        var logtail_ds = new KubernetesAddon(\"logtail-ds\", KubernetesAddonArgs.builder()\n            .clusterId(defaultManagedKubernetes.id())\n            .name(\"logtail-ds\")\n            .version(\"v1.6.0.0-aliyun\")\n            .config(serializeJson(\n                jsonObject(\n\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      namePrefix: ${name}\n      clusterSpec: ack.pro.small\n      workerVswitchIds:\n        - ${defaultSwitch.id}\n      newNatGateway: false\n      podCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 10.0.0.0/8\n            newbits: 8\n            netnum: 36\n          return: result\n      serviceCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 172.16.0.0/16\n            newbits: 4\n            netnum: 7\n          return: result\n      slbInternetEnabled: true # By defining the addons attribute in cluster resource, it indicates that the addon will be installed when creating a cluster\n      addons:\n        - name: logtail-ds\n          config:\n            fn::toJSON:\n              IngressDashboardEnabled: 'true'\n          disabled: false\n  # Manage addon resource\n  logtail-ds:\n    type: alicloud:cs:KubernetesAddon\n    properties:\n      clusterId: ${defaultManagedKubernetes.id}\n      name: logtail-ds\n      version: v1.6.0.0-aliyun\n      config:\n        fn::toJSON: {}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  # data source provides the information of available addons\n  defaultGetKubernetesAddons:\n    fn::invoke:\n      function: alicloud:cs:getKubernetesAddons\n      arguments:\n        clusterId: ${defaultManagedKubernetes.id}\n        nameRegex: logtail-ds\n```\n\u003c!--End PulumiCodeChooser --\u003e\n**Installing of addon**\nWhen a cluster is created, some system addons and those specified at the time of cluster creation will be installed, so when an addon resource is applied:\n* If the addon already exists in the cluster and its version is the same as the specified version, it will be skipped and will not be reinstalled.\n* If the addon already exists in the cluster and its version is different from the specified version, the addon will be upgraded.\n* If the addon does not exist in the cluster, it will be installed.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCluster addon can be imported by cluster id and addon name. Then write the addon.tf file according to the result of `pulumi preview`.\n\n```sh\n$ pulumi import alicloud:cs/kubernetesAddon:KubernetesAddon my_addon \u003ccluster_id\u003e:\u003caddon_name\u003e\n```\n\n","properties":{"canUpgrade":{"type":"boolean","description":"(Deprecated since v1.273.0) Is the addon ready for upgrade.\n","deprecationMessage":"Field 'can_upgrade' has been deprecated from provider version 1.273.0. Please compare 'next_version' and 'current_version' of DataSource 'alicloud_cs_kubernetes_addons' to replace it"},"cleanupCloudResources":{"type":"boolean","description":"Whether to clean up cloud resources when deleting. Currently only works for addon `ack-virtual-node` and you must specify it when uninstall addon `ack-virtual-node`. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: clean up, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: do not clean up.\n"},"clusterId":{"type":"string","description":"The id of kubernetes cluster.\n"},"config":{"type":"string","description":"The customized configuration of addon. Your customized configuration will be merged to existed configuration stored in server. If you want to clean one configuration, you must set the configuration to empty value, removing from code cannot make effect. You can checkout the customized configuration of the addon through datasource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getKubernetesAddonMetadata`\" pulumi-lang-dotnet=\"`alicloud.cs.getKubernetesAddonMetadata`\" pulumi-lang-go=\"`cs.getKubernetesAddonMetadata`\" pulumi-lang-python=\"`cs_get_kubernetes_addon_metadata`\" pulumi-lang-yaml=\"`alicloud.cs.getKubernetesAddonMetadata`\" pulumi-lang-java=\"`alicloud.cs.getKubernetesAddonMetadata`\"\u003e`alicloud.cs.getKubernetesAddonMetadata`\u003c/span\u003e, the returned format is the standard json schema. If return empty, it means that the addon does not support custom configuration yet. You can also checkout the current custom configuration through the data source \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getKubernetesAddons`\" pulumi-lang-dotnet=\"`alicloud.cs.getKubernetesAddons`\" pulumi-lang-go=\"`cs.getKubernetesAddons`\" pulumi-lang-python=\"`cs_get_kubernetes_addons`\" pulumi-lang-yaml=\"`alicloud.cs.getKubernetesAddons`\" pulumi-lang-java=\"`alicloud.cs.getKubernetesAddons`\"\u003e`alicloud.cs.getKubernetesAddons`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of addon.\n"},"nextVersion":{"type":"string","description":"(Deprecated since v1.273.0) The version which addon can be upgraded to.\n","deprecationMessage":"Field 'next_version' has been deprecated from provider version 1.273.0. Please use 'next_version' of DataSource 'alicloud_cs_kubernetes_addons' to replace it"},"required":{"type":"boolean","description":"Is it a mandatory addon to be installed.\n"},"version":{"type":"string","description":"The current version of addon.\n"}},"required":["canUpgrade","clusterId","config","name","nextVersion","required","version"],"inputProperties":{"cleanupCloudResources":{"type":"boolean","description":"Whether to clean up cloud resources when deleting. Currently only works for addon `ack-virtual-node` and you must specify it when uninstall addon `ack-virtual-node`. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: clean up, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: do not clean up.\n"},"clusterId":{"type":"string","description":"The id of kubernetes cluster.\n","willReplaceOnChanges":true},"config":{"type":"string","description":"The customized configuration of addon. Your customized configuration will be merged to existed configuration stored in server. If you want to clean one configuration, you must set the configuration to empty value, removing from code cannot make effect. You can checkout the customized configuration of the addon through datasource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getKubernetesAddonMetadata`\" pulumi-lang-dotnet=\"`alicloud.cs.getKubernetesAddonMetadata`\" pulumi-lang-go=\"`cs.getKubernetesAddonMetadata`\" pulumi-lang-python=\"`cs_get_kubernetes_addon_metadata`\" pulumi-lang-yaml=\"`alicloud.cs.getKubernetesAddonMetadata`\" pulumi-lang-java=\"`alicloud.cs.getKubernetesAddonMetadata`\"\u003e`alicloud.cs.getKubernetesAddonMetadata`\u003c/span\u003e, the returned format is the standard json schema. If return empty, it means that the addon does not support custom configuration yet. You can also checkout the current custom configuration through the data source \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getKubernetesAddons`\" pulumi-lang-dotnet=\"`alicloud.cs.getKubernetesAddons`\" pulumi-lang-go=\"`cs.getKubernetesAddons`\" pulumi-lang-python=\"`cs_get_kubernetes_addons`\" pulumi-lang-yaml=\"`alicloud.cs.getKubernetesAddons`\" pulumi-lang-java=\"`alicloud.cs.getKubernetesAddons`\"\u003e`alicloud.cs.getKubernetesAddons`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of addon.\n","willReplaceOnChanges":true},"version":{"type":"string","description":"The current version of addon.\n"}},"requiredInputs":["clusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering KubernetesAddon resources.\n","properties":{"canUpgrade":{"type":"boolean","description":"(Deprecated since v1.273.0) Is the addon ready for upgrade.\n","deprecationMessage":"Field 'can_upgrade' has been deprecated from provider version 1.273.0. Please compare 'next_version' and 'current_version' of DataSource 'alicloud_cs_kubernetes_addons' to replace it"},"cleanupCloudResources":{"type":"boolean","description":"Whether to clean up cloud resources when deleting. Currently only works for addon `ack-virtual-node` and you must specify it when uninstall addon `ack-virtual-node`. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: clean up, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: do not clean up.\n"},"clusterId":{"type":"string","description":"The id of kubernetes cluster.\n","willReplaceOnChanges":true},"config":{"type":"string","description":"The customized configuration of addon. Your customized configuration will be merged to existed configuration stored in server. If you want to clean one configuration, you must set the configuration to empty value, removing from code cannot make effect. You can checkout the customized configuration of the addon through datasource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getKubernetesAddonMetadata`\" pulumi-lang-dotnet=\"`alicloud.cs.getKubernetesAddonMetadata`\" pulumi-lang-go=\"`cs.getKubernetesAddonMetadata`\" pulumi-lang-python=\"`cs_get_kubernetes_addon_metadata`\" pulumi-lang-yaml=\"`alicloud.cs.getKubernetesAddonMetadata`\" pulumi-lang-java=\"`alicloud.cs.getKubernetesAddonMetadata`\"\u003e`alicloud.cs.getKubernetesAddonMetadata`\u003c/span\u003e, the returned format is the standard json schema. If return empty, it means that the addon does not support custom configuration yet. You can also checkout the current custom configuration through the data source \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getKubernetesAddons`\" pulumi-lang-dotnet=\"`alicloud.cs.getKubernetesAddons`\" pulumi-lang-go=\"`cs.getKubernetesAddons`\" pulumi-lang-python=\"`cs_get_kubernetes_addons`\" pulumi-lang-yaml=\"`alicloud.cs.getKubernetesAddons`\" pulumi-lang-java=\"`alicloud.cs.getKubernetesAddons`\"\u003e`alicloud.cs.getKubernetesAddons`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of addon.\n","willReplaceOnChanges":true},"nextVersion":{"type":"string","description":"(Deprecated since v1.273.0) The version which addon can be upgraded to.\n","deprecationMessage":"Field 'next_version' has been deprecated from provider version 1.273.0. Please use 'next_version' of DataSource 'alicloud_cs_kubernetes_addons' to replace it"},"required":{"type":"boolean","description":"Is it a mandatory addon to be installed.\n"},"version":{"type":"string","description":"The current version of addon.\n"}},"type":"object"}},"alicloud:cs/kubernetesAutoscaler:KubernetesAutoscaler":{"description":"This resource will help you to manager cluster-autoscaler in Kubernetes Cluster. \n\n\u003e **NOTE:** The scaling group must use CentOS7 or AliyunLinux2 as base image.\n\n\u003e **NOTE:** The cluster-autoscaler can only use the same size of instanceTypes in one scaling group. \n\n\u003e **NOTE:** Add Policy to RAM role of the node to deploy cluster-autoscaler if you need.\n\n\u003e **NOTE:** Available since v1.65.0.\n\n\u003e **DEPRECATED:**  This resource has been deprecated from version `1.127.0`. Please use new resource alicloud_cs_autoscaling_config. If you have used resource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.KubernetesAutoscaler`\" pulumi-lang-dotnet=\"`alicloud.cs.KubernetesAutoscaler`\" pulumi-lang-go=\"`cs.KubernetesAutoscaler`\" pulumi-lang-python=\"`cs.KubernetesAutoscaler`\" pulumi-lang-yaml=\"`alicloud.cs.KubernetesAutoscaler`\" pulumi-lang-java=\"`alicloud.cs.KubernetesAutoscaler`\"\u003e`alicloud.cs.KubernetesAutoscaler`\u003c/span\u003e, please refer to [Use Terraform to create an auto-scaling node pool](https://www.alibabacloud.com/help/doc-detail/197717.htm) to switch to \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.AutoscalingConfig`\" pulumi-lang-dotnet=\"`alicloud.cs.AutoscalingConfig`\" pulumi-lang-go=\"`cs.AutoscalingConfig`\" pulumi-lang-python=\"`cs.AutoscalingConfig`\" pulumi-lang-yaml=\"`alicloud.cs.AutoscalingConfig`\" pulumi-lang-java=\"`alicloud.cs.AutoscalingConfig`\"\u003e`alicloud.cs.AutoscalingConfig`\u003c/span\u003e.\n\n## Example Usage\n\ncluster-autoscaler in Kubernetes Cluster.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 4,\n    memorySize: 8,\n    kubernetesNodeRole: \"Worker\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    namePrefix: name,\n    clusterSpec: \"ack.pro.small\",\n    workerVswitchIds: [defaultSwitch.id],\n    newNatGateway: true,\n    podCidr: std.cidrsubnet({\n        input: \"10.0.0.0/8\",\n        newbits: 8,\n        netnum: 36,\n    }).then(invoke =\u003e invoke.result),\n    serviceCidr: std.cidrsubnet({\n        input: \"172.16.0.0/16\",\n        newbits: 4,\n        netnum: 7,\n    }).then(invoke =\u003e invoke.result),\n    slbInternetEnabled: true,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultScalingGroup = new alicloud.ess.ScalingGroup(\"default\", {\n    scalingGroupName: name,\n    minSize: 1,\n    maxSize: 1,\n    vswitchIds: [defaultSwitch.id],\n    removalPolicies: [\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n});\nconst defaultScalingConfiguration = new alicloud.ess.ScalingConfiguration(\"default\", {\n    scalingGroupId: defaultScalingGroup.id,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroupId: defaultSecurityGroup.id,\n    forceDelete: true,\n    active: true,\n});\nconst defaultKubernetesAutoscaler = new alicloud.cs.KubernetesAutoscaler(\"default\", {\n    clusterId: defaultManagedKubernetes.id,\n    utilization: \"0.5\",\n    coolDownDuration: \"10m\",\n    deferScaleInDuration: \"10m\",\n    nodepools: [{\n        id: defaultScalingConfiguration.scalingGroupId,\n        labels: \"a=b\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=4,\n    memory_size=8,\n    kubernetes_node_role=\"Worker\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name_prefix=name,\n    cluster_spec=\"ack.pro.small\",\n    worker_vswitch_ids=[default_switch.id],\n    new_nat_gateway=True,\n    pod_cidr=std.cidrsubnet(input=\"10.0.0.0/8\",\n        newbits=8,\n        netnum=36).result,\n    service_cidr=std.cidrsubnet(input=\"172.16.0.0/16\",\n        newbits=4,\n        netnum=7).result,\n    slb_internet_enabled=True)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_scaling_group = alicloud.ess.ScalingGroup(\"default\",\n    scaling_group_name=name,\n    min_size=1,\n    max_size=1,\n    vswitch_ids=[default_switch.id],\n    removal_policies=[\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ])\ndefault_scaling_configuration = alicloud.ess.ScalingConfiguration(\"default\",\n    scaling_group_id=default_scaling_group.id,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_group_id=default_security_group.id,\n    force_delete=True,\n    active=True)\ndefault_kubernetes_autoscaler = alicloud.cs.KubernetesAutoscaler(\"default\",\n    cluster_id=default_managed_kubernetes.id,\n    utilization=\"0.5\",\n    cool_down_duration=\"10m\",\n    defer_scale_in_duration=\"10m\",\n    nodepools=[{\n        \"id\": default_scaling_configuration.scaling_group_id,\n        \"labels\": \"a=b\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 4,\n        MemorySize = 8,\n        KubernetesNodeRole = \"Worker\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        NamePrefix = name,\n        ClusterSpec = \"ack.pro.small\",\n        WorkerVswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        NewNatGateway = true,\n        PodCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"10.0.0.0/8\",\n            Newbits = 8,\n            Netnum = 36,\n        }).Apply(invoke =\u003e invoke.Result),\n        ServiceCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"172.16.0.0/16\",\n            Newbits = 4,\n            Netnum = 7,\n        }).Apply(invoke =\u003e invoke.Result),\n        SlbInternetEnabled = true,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultScalingGroup = new AliCloud.Ess.ScalingGroup(\"default\", new()\n    {\n        ScalingGroupName = name,\n        MinSize = 1,\n        MaxSize = 1,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        RemovalPolicies = new[]\n        {\n            \"OldestInstance\",\n            \"NewestInstance\",\n        },\n    });\n\n    var defaultScalingConfiguration = new AliCloud.Ess.ScalingConfiguration(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroupId = defaultSecurityGroup.Id,\n        ForceDelete = true,\n        Active = true,\n    });\n\n    var defaultKubernetesAutoscaler = new AliCloud.CS.KubernetesAutoscaler(\"default\", new()\n    {\n        ClusterId = defaultManagedKubernetes.Id,\n        Utilization = \"0.5\",\n        CoolDownDuration = \"10m\",\n        DeferScaleInDuration = \"10m\",\n        Nodepools = new[]\n        {\n            new AliCloud.CS.Inputs.KubernetesAutoscalerNodepoolArgs\n            {\n                Id = defaultScalingConfiguration.ScalingGroupId,\n                Labels = \"a=b\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone:   pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:       pulumi.IntRef(4),\n\t\t\tMemorySize:         pulumi.Float64Ref(8),\n\t\t\tKubernetesNodeRole: pulumi.StringRef(\"Worker\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"10.0.0.0/8\",\n\t\t\tNewbits: 8,\n\t\t\tNetnum:  36,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet1, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"172.16.0.0/16\",\n\t\t\tNewbits: 4,\n\t\t\tNetnum:  7,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\n\t\t\tNamePrefix:  pulumi.String(name),\n\t\t\tClusterSpec: pulumi.String(\"ack.pro.small\"),\n\t\t\tWorkerVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tNewNatGateway:      pulumi.Bool(true),\n\t\t\tPodCidr:            pulumi.String(invokeCidrsubnet.Result),\n\t\t\tServiceCidr:        pulumi.String(invokeCidrsubnet1.Result),\n\t\t\tSlbInternetEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingGroup, err := ess.NewScalingGroup(ctx, \"default\", \u0026ess.ScalingGroupArgs{\n\t\t\tScalingGroupName: pulumi.String(name),\n\t\t\tMinSize:          pulumi.Int(1),\n\t\t\tMaxSize:          pulumi.Int(1),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tRemovalPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OldestInstance\"),\n\t\t\t\tpulumi.String(\"NewestInstance\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingConfiguration, err := ess.NewScalingConfiguration(ctx, \"default\", \u0026ess.ScalingConfigurationArgs{\n\t\t\tScalingGroupId:  defaultScalingGroup.ID(),\n\t\t\tImageId:         pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tForceDelete:     pulumi.Bool(true),\n\t\t\tActive:          pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cs.NewKubernetesAutoscaler(ctx, \"default\", \u0026cs.KubernetesAutoscalerArgs{\n\t\t\tClusterId:            defaultManagedKubernetes.ID(),\n\t\t\tUtilization:          pulumi.String(\"0.5\"),\n\t\t\tCoolDownDuration:     pulumi.String(\"10m\"),\n\t\t\tDeferScaleInDuration: pulumi.String(\"10m\"),\n\t\t\tNodepools: cs.KubernetesAutoscalerNodepoolArray{\n\t\t\t\t\u0026cs.KubernetesAutoscalerNodepoolArgs{\n\t\t\t\t\tId:     defaultScalingConfiguration.ScalingGroupId,\n\t\t\t\t\tLabels: pulumi.String(\"a=b\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingGroup;\nimport com.pulumi.alicloud.ess.ScalingGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingConfiguration;\nimport com.pulumi.alicloud.ess.ScalingConfigurationArgs;\nimport com.pulumi.alicloud.cs.KubernetesAutoscaler;\nimport com.pulumi.alicloud.cs.KubernetesAutoscalerArgs;\nimport com.pulumi.alicloud.cs.inputs.KubernetesAutoscalerNodepoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(4)\n            .memorySize(8)\n            .kubernetesNodeRole(\"Worker\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .namePrefix(name)\n            .clusterSpec(\"ack.pro.small\")\n            .workerVswitchIds(defaultSwitch.id())\n            .newNatGateway(true)\n            .podCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"10.0.0.0/8\")\n                .newbits(8)\n                .netnum(36)\n                .build()).result())\n            .serviceCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"172.16.0.0/16\")\n                .newbits(4)\n                .netnum(7)\n                .build()).result())\n            .slbInternetEnabled(true)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultScalingGroup = new ScalingGroup(\"defaultScalingGroup\", ScalingGroupArgs.builder()\n            .scalingGroupName(name)\n            .minSize(1)\n            .maxSize(1)\n            .vswitchIds(defaultSwitch.id())\n            .removalPolicies(            \n                \"OldestInstance\",\n                \"NewestInstance\")\n            .build());\n\n        var defaultScalingConfiguration = new ScalingConfiguration(\"defaultScalingConfiguration\", ScalingConfigurationArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroupId(defaultSecurityGroup.id())\n            .forceDelete(true)\n            .active(true)\n            .build());\n\n        var defaultKubernetesAutoscaler = new KubernetesAutoscaler(\"defaultKubernetesAutoscaler\", KubernetesAutoscalerArgs.builder()\n            .clusterId(defaultManagedKubernetes.id())\n            .utilization(\"0.5\")\n            .coolDownDuration(\"10m\")\n            .deferScaleInDuration(\"10m\")\n            .nodepools(KubernetesAutoscalerNodepoolArgs.builder()\n                .id(defaultScalingConfiguration.scalingGroupId())\n                .labels(\"a=b\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      namePrefix: ${name}\n      clusterSpec: ack.pro.small\n      workerVswitchIds:\n        - ${defaultSwitch.id}\n      newNatGateway: true\n      podCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 10.0.0.0/8\n            newbits: 8\n            netnum: 36\n          return: result\n      serviceCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 172.16.0.0/16\n            newbits: 4\n            netnum: 7\n          return: result\n      slbInternetEnabled: true\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultScalingGroup:\n    type: alicloud:ess:ScalingGroup\n    name: default\n    properties:\n      scalingGroupName: ${name}\n      minSize: 1\n      maxSize: 1\n      vswitchIds:\n        - ${defaultSwitch.id}\n      removalPolicies:\n        - OldestInstance\n        - NewestInstance\n  defaultScalingConfiguration:\n    type: alicloud:ess:ScalingConfiguration\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingGroup.id}\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      securityGroupId: ${defaultSecurityGroup.id}\n      forceDelete: true\n      active: true\n  defaultKubernetesAutoscaler:\n    type: alicloud:cs:KubernetesAutoscaler\n    name: default\n    properties:\n      clusterId: ${defaultManagedKubernetes.id}\n      utilization: '0.5'\n      coolDownDuration: 10m\n      deferScaleInDuration: 10m\n      nodepools:\n        - id: ${defaultScalingConfiguration.scalingGroupId}\n          labels: a=b\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 4\n        memorySize: 8\n        kubernetesNodeRole: Worker\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Ignoring Changes to tags and\u003cspan pulumi-lang-nodejs=\" userData\n\" pulumi-lang-dotnet=\" UserData\n\" pulumi-lang-go=\" userData\n\" pulumi-lang-python=\" user_data\n\" pulumi-lang-yaml=\" userData\n\" pulumi-lang-java=\" userData\n\"\u003e user_data\n\u003c/span\u003e\n\u003e **NOTE:** You can utilize the generic Terraform resource lifecycle configuration block with \u003cspan pulumi-lang-nodejs=\"`ignoreChanges`\" pulumi-lang-dotnet=\"`IgnoreChanges`\" pulumi-lang-go=\"`ignoreChanges`\" pulumi-lang-python=\"`ignore_changes`\" pulumi-lang-yaml=\"`ignoreChanges`\" pulumi-lang-java=\"`ignoreChanges`\"\u003e`ignore_changes`\u003c/span\u003e to create a  a autoscaler group, then ignore any changes to that tags and\u003cspan pulumi-lang-nodejs=\" userData \" pulumi-lang-dotnet=\" UserData \" pulumi-lang-go=\" userData \" pulumi-lang-python=\" user_data \" pulumi-lang-yaml=\" userData \" pulumi-lang-java=\" userData \"\u003e user_data \u003c/span\u003ecaused externally (e.g. Application Autoscaling).\n```\n  # ... ignore the change about tags and user_data in alicloud_ess_scaling_configuration\n  lifecycle {\n    ignore_changes = [tags,user_data]\n  }\n```\n","properties":{"clusterId":{"type":"string","description":"The id of kubernetes cluster.\n"},"coolDownDuration":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" coolDownDuration \" pulumi-lang-dotnet=\" CoolDownDuration \" pulumi-lang-go=\" coolDownDuration \" pulumi-lang-python=\" cool_down_duration \" pulumi-lang-yaml=\" coolDownDuration \" pulumi-lang-java=\" coolDownDuration \"\u003e cool_down_duration \u003c/span\u003eoption of cluster-autoscaler.\n"},"deferScaleInDuration":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" deferScaleInDuration \" pulumi-lang-dotnet=\" DeferScaleInDuration \" pulumi-lang-go=\" deferScaleInDuration \" pulumi-lang-python=\" defer_scale_in_duration \" pulumi-lang-yaml=\" deferScaleInDuration \" pulumi-lang-java=\" deferScaleInDuration \"\u003e defer_scale_in_duration \u003c/span\u003eoption of cluster-autoscaler.\n"},"nodepools":{"type":"array","items":{"$ref":"#/types/alicloud:cs/KubernetesAutoscalerNodepool:KubernetesAutoscalerNodepool"},"description":"The list of the node pools. See \u003cspan pulumi-lang-nodejs=\"`nodepools`\" pulumi-lang-dotnet=\"`Nodepools`\" pulumi-lang-go=\"`nodepools`\" pulumi-lang-python=\"`nodepools`\" pulumi-lang-yaml=\"`nodepools`\" pulumi-lang-java=\"`nodepools`\"\u003e`nodepools`\u003c/span\u003e below.\n"},"useEcsRamRoleToken":{"type":"boolean","description":"Enable autoscaler access to alibabacloud service by ecs ramrole token. default: false\n"},"utilization":{"type":"string","description":"The utilization option of cluster-autoscaler.\n"}},"required":["clusterId","coolDownDuration","deferScaleInDuration","utilization"],"inputProperties":{"clusterId":{"type":"string","description":"The id of kubernetes cluster.\n"},"coolDownDuration":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" coolDownDuration \" pulumi-lang-dotnet=\" CoolDownDuration \" pulumi-lang-go=\" coolDownDuration \" pulumi-lang-python=\" cool_down_duration \" pulumi-lang-yaml=\" coolDownDuration \" pulumi-lang-java=\" coolDownDuration \"\u003e cool_down_duration \u003c/span\u003eoption of cluster-autoscaler.\n"},"deferScaleInDuration":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" deferScaleInDuration \" pulumi-lang-dotnet=\" DeferScaleInDuration \" pulumi-lang-go=\" deferScaleInDuration \" pulumi-lang-python=\" defer_scale_in_duration \" pulumi-lang-yaml=\" deferScaleInDuration \" pulumi-lang-java=\" deferScaleInDuration \"\u003e defer_scale_in_duration \u003c/span\u003eoption of cluster-autoscaler.\n"},"nodepools":{"type":"array","items":{"$ref":"#/types/alicloud:cs/KubernetesAutoscalerNodepool:KubernetesAutoscalerNodepool"},"description":"The list of the node pools. See \u003cspan pulumi-lang-nodejs=\"`nodepools`\" pulumi-lang-dotnet=\"`Nodepools`\" pulumi-lang-go=\"`nodepools`\" pulumi-lang-python=\"`nodepools`\" pulumi-lang-yaml=\"`nodepools`\" pulumi-lang-java=\"`nodepools`\"\u003e`nodepools`\u003c/span\u003e below.\n"},"useEcsRamRoleToken":{"type":"boolean","description":"Enable autoscaler access to alibabacloud service by ecs ramrole token. default: false\n"},"utilization":{"type":"string","description":"The utilization option of cluster-autoscaler.\n"}},"requiredInputs":["clusterId","coolDownDuration","deferScaleInDuration","utilization"],"stateInputs":{"description":"Input properties used for looking up and filtering KubernetesAutoscaler resources.\n","properties":{"clusterId":{"type":"string","description":"The id of kubernetes cluster.\n"},"coolDownDuration":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" coolDownDuration \" pulumi-lang-dotnet=\" CoolDownDuration \" pulumi-lang-go=\" coolDownDuration \" pulumi-lang-python=\" cool_down_duration \" pulumi-lang-yaml=\" coolDownDuration \" pulumi-lang-java=\" coolDownDuration \"\u003e cool_down_duration \u003c/span\u003eoption of cluster-autoscaler.\n"},"deferScaleInDuration":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" deferScaleInDuration \" pulumi-lang-dotnet=\" DeferScaleInDuration \" pulumi-lang-go=\" deferScaleInDuration \" pulumi-lang-python=\" defer_scale_in_duration \" pulumi-lang-yaml=\" deferScaleInDuration \" pulumi-lang-java=\" deferScaleInDuration \"\u003e defer_scale_in_duration \u003c/span\u003eoption of cluster-autoscaler.\n"},"nodepools":{"type":"array","items":{"$ref":"#/types/alicloud:cs/KubernetesAutoscalerNodepool:KubernetesAutoscalerNodepool"},"description":"The list of the node pools. See \u003cspan pulumi-lang-nodejs=\"`nodepools`\" pulumi-lang-dotnet=\"`Nodepools`\" pulumi-lang-go=\"`nodepools`\" pulumi-lang-python=\"`nodepools`\" pulumi-lang-yaml=\"`nodepools`\" pulumi-lang-java=\"`nodepools`\"\u003e`nodepools`\u003c/span\u003e below.\n"},"useEcsRamRoleToken":{"type":"boolean","description":"Enable autoscaler access to alibabacloud service by ecs ramrole token. default: false\n"},"utilization":{"type":"string","description":"The utilization option of cluster-autoscaler.\n"}},"type":"object"}},"alicloud:cs/kubernetesPermission:KubernetesPermission":{"description":"This resource will help you implement RBAC authorization for the kubernetes cluster, see [What is kubernetes permissions](https://www.alibabacloud.com/help/en/ack/ack-managed-and-ack-dedicated/developer-reference/api-grantpermissions).\n\n\u003e **NOTE:** Please make sure that the target RAM user has been granted a RAM policy with at least read-only permission of the target cluster in the RAM console. Otherwise, the `ErrorRamPolicyConfig` error will be returned. \nFor more information about how to authorize a RAM user by attaching RAM policies, see [Create a custom RAM policy](https://www.alibabacloud.com/help/doc-detail/86485.htm).\n\n\u003e **NOTE:** If you call this operation as a RAM user, make sure that this RAM user has the permissions to grant other RAM users the permissions to manage ACK clusters. Otherwise, the `StatusForbidden` or `ForbiddenGrantPermissions` errors will be returned. For more information, see [Use a RAM user to grant RBAC permissions to other RAM users](https://www.alibabacloud.com/help/faq-detail/119035.htm).\n\n\u003e **NOTE:** This operation overwrites the permissions that have been granted to the specified RAM user. When you call this operation, make sure that the required permissions are included.\n\n\u003e **NOTE:** Available since v1.122.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\n// The cidr block used to launch a new vpc when 'vpc_id' is not specified.\nconst vpcCidr = config.get(\"vpcCidr\") || \"10.0.0.0/8\";\n// List of cidr blocks used to create several new vswitches when 'vswitch_ids' is not specified.\nconst vswitchCidrs = config.getObject\u003cArray\u003cstring\u003e\u003e(\"vswitchCidrs\") || [\n    \"10.1.0.0/16\",\n    \"10.2.0.0/16\",\n];\n// The kubernetes service cidr block. It cannot be equals to vpc's or vswitch's or service's and cannot be in them.\nconst podCidr = config.get(\"podCidr\") || \"172.16.0.0/16\";\n// The kubernetes service cidr block. It cannot be equals to vpc's or vswitch's or pod's and cannot be in them.\nconst serviceCidr = config.get(\"serviceCidr\") || \"192.168.0.0/16\";\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst _default = alicloud.cs.getKubernetesVersion({\n    clusterType: \"ManagedKubernetes\",\n});\nconst vpc = new alicloud.vpc.Network(\"vpc\", {cidrBlock: vpcCidr});\n// According to the vswitch cidr blocks to launch several vswitches\nconst defaultSwitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c vswitchCidrs.length; range.value++) {\n    defaultSwitch.push(new alicloud.vpc.Switch(`default-${range.value}`, {\n        vpcId: vpc.id,\n        cidrBlock: vswitchCidrs[range.value],\n        zoneId: enhanced.then(enhanced =\u003e enhanced.zones[range.value].zoneId),\n    }));\n}\n// Create a new RAM cluster.\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    name: `${name}-${defaultInteger.result}`,\n    clusterSpec: \"ack.pro.small\",\n    version: _default.then(_default =\u003e _default.metadatas?.[0]?.version),\n    workerVswitchIds: std.joinOutput({\n        separator: \",\",\n        input: defaultSwitch.map(__item =\u003e __item.id),\n    }).apply(invoke =\u003e std.splitOutput({\n        separator: \",\",\n        text: invoke.result,\n    })).apply(invoke =\u003e invoke.result),\n    newNatGateway: false,\n    podCidr: podCidr,\n    serviceCidr: serviceCidr,\n    slbInternetEnabled: false,\n});\n// Create a new RAM user.\nconst user = new alicloud.ram.User(\"user\", {name: `${name}-${defaultInteger.result}`});\n// Create a cluster permission for user.\nconst defaultKubernetesPermission = new alicloud.cs.KubernetesPermission(\"default\", {\n    uid: user.id,\n    permissions: [{\n        cluster: defaultManagedKubernetes.id,\n        roleType: \"cluster\",\n        roleName: \"admin\",\n        namespace: \"\",\n        isCustom: false,\n        isRamRole: false,\n    }],\n});\nconst attach = new alicloud.cs.KubernetesPermission(\"attach\", {\n    uid: user.id,\n    permissions: [{\n        cluster: defaultManagedKubernetes.id,\n        roleType: \"namespace\",\n        roleName: \"cs:dev\",\n        namespace: \"default\",\n        isCustom: true,\n        isRamRole: false,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\n# The cidr block used to launch a new vpc when 'vpc_id' is not specified.\nvpc_cidr = config.get(\"vpcCidr\")\nif vpc_cidr is None:\n    vpc_cidr = \"10.0.0.0/8\"\n# List of cidr blocks used to create several new vswitches when 'vswitch_ids' is not specified.\nvswitch_cidrs = config.get_object(\"vswitchCidrs\")\nif vswitch_cidrs is None:\n    vswitch_cidrs = [\n        \"10.1.0.0/16\",\n        \"10.2.0.0/16\",\n    ]\n# The kubernetes service cidr block. It cannot be equals to vpc's or vswitch's or service's and cannot be in them.\npod_cidr = config.get(\"podCidr\")\nif pod_cidr is None:\n    pod_cidr = \"172.16.0.0/16\"\n# The kubernetes service cidr block. It cannot be equals to vpc's or vswitch's or pod's and cannot be in them.\nservice_cidr = config.get(\"serviceCidr\")\nif service_cidr is None:\n    service_cidr = \"192.168.0.0/16\"\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\ndefault = alicloud.cs.get_kubernetes_version(cluster_type=\"ManagedKubernetes\")\nvpc = alicloud.vpc.Network(\"vpc\", cidr_block=vpc_cidr)\n# According to the vswitch cidr blocks to launch several vswitches\ndefault_switch = []\nfor range in [{\"value\": i} for i in range(0, len(vswitch_cidrs))]:\n    default_switch.append(alicloud.vpc.Switch(f\"default-{range['value']}\",\n        vpc_id=vpc.id,\n        cidr_block=vswitch_cidrs[range[\"value\"]],\n        zone_id=enhanced.zones[range[\"value\"]].zone_id))\n# Create a new RAM cluster.\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name=f\"{name}-{default_integer['result']}\",\n    cluster_spec=\"ack.pro.small\",\n    version=default.metadatas[0].version,\n    worker_vswitch_ids=std.join_output(separator=\",\",\n        input=[__item.id for __item in default_switch]).apply(lambda invoke: std.split_output(separator=\",\",\n        text=invoke.result)).apply(lambda invoke: invoke.result),\n    new_nat_gateway=False,\n    pod_cidr=pod_cidr,\n    service_cidr=service_cidr,\n    slb_internet_enabled=False)\n# Create a new RAM user.\nuser = alicloud.ram.User(\"user\", name=f\"{name}-{default_integer['result']}\")\n# Create a cluster permission for user.\ndefault_kubernetes_permission = alicloud.cs.KubernetesPermission(\"default\",\n    uid=user.id,\n    permissions=[{\n        \"cluster\": default_managed_kubernetes.id,\n        \"role_type\": \"cluster\",\n        \"role_name\": \"admin\",\n        \"namespace\": \"\",\n        \"is_custom\": False,\n        \"is_ram_role\": False,\n    }])\nattach = alicloud.cs.KubernetesPermission(\"attach\",\n    uid=user.id,\n    permissions=[{\n        \"cluster\": default_managed_kubernetes.id,\n        \"role_type\": \"namespace\",\n        \"role_name\": \"cs:dev\",\n        \"namespace\": \"default\",\n        \"is_custom\": True,\n        \"is_ram_role\": False,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    // The cidr block used to launch a new vpc when 'vpc_id' is not specified.\n    var vpcCidr = config.Get(\"vpcCidr\") ?? \"10.0.0.0/8\";\n    // List of cidr blocks used to create several new vswitches when 'vswitch_ids' is not specified.\n    var vswitchCidrs = config.GetObject\u003cstring[]\u003e(\"vswitchCidrs\") ?? new[]\n    {\n        \"10.1.0.0/16\",\n        \"10.2.0.0/16\",\n    };\n    // The kubernetes service cidr block. It cannot be equals to vpc's or vswitch's or service's and cannot be in them.\n    var podCidr = config.Get(\"podCidr\") ?? \"172.16.0.0/16\";\n    // The kubernetes service cidr block. It cannot be equals to vpc's or vswitch's or pod's and cannot be in them.\n    var serviceCidr = config.Get(\"serviceCidr\") ?? \"192.168.0.0/16\";\n    var enhanced = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var @default = AliCloud.CS.GetKubernetesVersion.Invoke(new()\n    {\n        ClusterType = \"ManagedKubernetes\",\n    });\n\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        CidrBlock = vpcCidr,\n    });\n\n    // According to the vswitch cidr blocks to launch several vswitches\n    var defaultSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c vswitchCidrs.Length; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSwitch.Add(new AliCloud.Vpc.Switch($\"default-{range.Value}\", new()\n        {\n            VpcId = vpc.Id,\n            CidrBlock = vswitchCidrs[range.Value],\n            ZoneId = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones)[range.Value].ZoneId,\n        }));\n    }\n    // Create a new RAM cluster.\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        Name = $\"{name}-{defaultInteger.Result}\",\n        ClusterSpec = \"ack.pro.small\",\n        Version = @default.Apply(@default =\u003e @default.Apply(getKubernetesVersionResult =\u003e getKubernetesVersionResult.Metadatas[0]?.Version)),\n        WorkerVswitchIds = Std.Join.Invoke(new()\n        {\n            Separator = \",\",\n            Input = defaultSwitch.Select(__item =\u003e __item.Id).ToList(),\n        }).Apply(invoke =\u003e Std.Split.Invoke(new()\n        {\n            Separator = \",\",\n            Text = invoke.Result,\n        })).Apply(invoke =\u003e invoke.Result),\n        NewNatGateway = false,\n        PodCidr = podCidr,\n        ServiceCidr = serviceCidr,\n        SlbInternetEnabled = false,\n    });\n\n    // Create a new RAM user.\n    var user = new AliCloud.Ram.User(\"user\", new()\n    {\n        Name = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    // Create a cluster permission for user.\n    var defaultKubernetesPermission = new AliCloud.CS.KubernetesPermission(\"default\", new()\n    {\n        Uid = user.Id,\n        Permissions = new[]\n        {\n            new AliCloud.CS.Inputs.KubernetesPermissionPermissionArgs\n            {\n                Cluster = defaultManagedKubernetes.Id,\n                RoleType = \"cluster\",\n                RoleName = \"admin\",\n                Namespace = \"\",\n                IsCustom = false,\n                IsRamRole = false,\n            },\n        },\n    });\n\n    var attach = new AliCloud.CS.KubernetesPermission(\"attach\", new()\n    {\n        Uid = user.Id,\n        Permissions = new[]\n        {\n            new AliCloud.CS.Inputs.KubernetesPermissionPermissionArgs\n            {\n                Cluster = defaultManagedKubernetes.Id,\n                RoleType = \"namespace\",\n                RoleName = \"cs:dev\",\n                Namespace = \"default\",\n                IsCustom = true,\n                IsRamRole = false,\n            },\n        },\n    });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetKubernetesVersionArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.JoinArgs;\nimport com.pulumi.std.inputs.SplitArgs;\nimport com.pulumi.alicloud.ram.User;\nimport com.pulumi.alicloud.ram.UserArgs;\nimport com.pulumi.alicloud.cs.KubernetesPermission;\nimport com.pulumi.alicloud.cs.KubernetesPermissionArgs;\nimport com.pulumi.alicloud.cs.inputs.KubernetesPermissionPermissionArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var vpcCidr = config.get(\"vpcCidr\").orElse(\"10.0.0.0/8\");\n        final var vswitchCidrs = config.get(\"vswitchCidrs\").orElse(List.of(        \n            \"10.1.0.0/16\",\n            \"10.2.0.0/16\"));\n        final var podCidr = config.get(\"podCidr\").orElse(\"172.16.0.0/16\");\n        final var serviceCidr = config.get(\"serviceCidr\").orElse(\"192.168.0.0/16\");\n        final var enhanced = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        final var default = CsFunctions.getKubernetesVersion(GetKubernetesVersionArgs.builder()\n            .clusterType(\"ManagedKubernetes\")\n            .build());\n\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .cidrBlock(vpcCidr)\n            .build());\n\n        // According to the vswitch cidr blocks to launch several vswitches\n        for (var i = 0; i \u003c vswitchCidrs.length(); i++) {\n            new Switch(\"defaultSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(vpc.id())\n                .cidrBlock(vswitchCidrs[range.value()])\n                .zoneId(enhanced.zones()[range.value()].zoneId())\n                .build());\n\n        \n}\n        // Create a new RAM cluster.\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .clusterSpec(\"ack.pro.small\")\n            .version(default_.metadatas()[0].version())\n            .workerVswitchIds(StdFunctions.join(JoinArgs.builder()\n                .separator(\",\")\n                .input(defaultSwitch.stream().map(element -\u003e element.id()).collect(toList()))\n                .build()).applyValue(_invoke -\u003e StdFunctions.split(SplitArgs.builder()\n                .separator(\",\")\n                .text(_invoke.result())\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .newNatGateway(false)\n            .podCidr(podCidr)\n            .serviceCidr(serviceCidr)\n            .slbInternetEnabled(false)\n            .build());\n\n        // Create a new RAM user.\n        var user = new User(\"user\", UserArgs.builder()\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        // Create a cluster permission for user.\n        var defaultKubernetesPermission = new KubernetesPermission(\"defaultKubernetesPermission\", KubernetesPermissionArgs.builder()\n            .uid(user.id())\n            .permissions(KubernetesPermissionPermissionArgs.builder()\n                .cluster(defaultManagedKubernetes.id())\n                .roleType(\"cluster\")\n                .roleName(\"admin\")\n                .namespace(\"\")\n                .isCustom(false)\n                .isRamRole(false)\n                .build())\n            .build());\n\n        var attach = new KubernetesPermission(\"attach\", KubernetesPermissionArgs.builder()\n            .uid(user.id())\n            .permissions(KubernetesPermissionPermissionArgs.builder()\n                .cluster(defaultManagedKubernetes.id())\n                .roleType(\"namespace\")\n                .roleName(\"cs:dev\")\n                .namespace(\"default\")\n                .isCustom(true)\n                .isRamRole(false)\n                .build())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"permissions":{"type":"array","items":{"$ref":"#/types/alicloud:cs/KubernetesPermissionPermission:KubernetesPermissionPermission"},"description":"A list of user permission. See \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e below.\n"},"uid":{"type":"string","description":"The ID of the Ram user, and it can also be the id of the Ram Role. If you use Ram Role id, you need to set \u003cspan pulumi-lang-nodejs=\"`isRamRole`\" pulumi-lang-dotnet=\"`IsRamRole`\" pulumi-lang-go=\"`isRamRole`\" pulumi-lang-python=\"`is_ram_role`\" pulumi-lang-yaml=\"`isRamRole`\" pulumi-lang-java=\"`isRamRole`\"\u003e`is_ram_role`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e during authorization.\n"}},"required":["uid"],"inputProperties":{"permissions":{"type":"array","items":{"$ref":"#/types/alicloud:cs/KubernetesPermissionPermission:KubernetesPermissionPermission"},"description":"A list of user permission. See \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e below.\n"},"uid":{"type":"string","description":"The ID of the Ram user, and it can also be the id of the Ram Role. If you use Ram Role id, you need to set \u003cspan pulumi-lang-nodejs=\"`isRamRole`\" pulumi-lang-dotnet=\"`IsRamRole`\" pulumi-lang-go=\"`isRamRole`\" pulumi-lang-python=\"`is_ram_role`\" pulumi-lang-yaml=\"`isRamRole`\" pulumi-lang-java=\"`isRamRole`\"\u003e`is_ram_role`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e during authorization.\n","willReplaceOnChanges":true}},"requiredInputs":["uid"],"stateInputs":{"description":"Input properties used for looking up and filtering KubernetesPermission resources.\n","properties":{"permissions":{"type":"array","items":{"$ref":"#/types/alicloud:cs/KubernetesPermissionPermission:KubernetesPermissionPermission"},"description":"A list of user permission. See \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e below.\n"},"uid":{"type":"string","description":"The ID of the Ram user, and it can also be the id of the Ram Role. If you use Ram Role id, you need to set \u003cspan pulumi-lang-nodejs=\"`isRamRole`\" pulumi-lang-dotnet=\"`IsRamRole`\" pulumi-lang-go=\"`isRamRole`\" pulumi-lang-python=\"`is_ram_role`\" pulumi-lang-yaml=\"`isRamRole`\" pulumi-lang-java=\"`isRamRole`\"\u003e`is_ram_role`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e during authorization.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cs/kubernetesPolicyInstance:KubernetesPolicyInstance":{"description":"Provides a Container Service for Kubernetes (ACK) Policy Instance resource.\n\nFor information about Container Service for Kubernetes (ACK) Policy Instance and how to use it, see [What is Policy Instance](https://next.api.alibabacloud.com/document/CS/2015-12-15/DeployPolicyInstance).\n\n\u003e **NOTE:** Available since v1.266.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst vpcCidr = config.get(\"vpcCidr\") || \"10.0.0.0/8\";\nconst vswitchCidrs = config.getObject\u003cArray\u003cstring\u003e\u003e(\"vswitchCidrs\") || [\n    \"10.1.0.0/16\",\n    \"10.2.0.0/16\",\n];\nconst clusterName = config.get(\"clusterName\") || \"example-create-cluster\";\nconst podCidr = config.get(\"podCidr\") || \"172.16.0.0/16\";\nconst serviceCidr = config.get(\"serviceCidr\") || \"192.168.0.0/16\";\nconst policyName = config.get(\"policyName\") || \"ACKPSPHostNetworkingPorts\";\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst createVPC = new alicloud.vpc.Network(\"CreateVPC\", {cidrBlock: vpcCidr});\n// According to the vswitch cidr blocks to launch several vswitches\nconst createVSwitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c vswitchCidrs.length; range.value++) {\n    createVSwitch.push(new alicloud.vpc.Switch(`CreateVSwitch-${range.value}`, {\n        vpcId: createVPC.id,\n        cidrBlock: vswitchCidrs[range.value],\n        zoneId: enhanced.then(enhanced =\u003e enhanced.zones[range.value].zoneId),\n    }));\n}\nconst createCluster = new alicloud.cs.ManagedKubernetes(\"CreateCluster\", {\n    name: `${clusterName}-${_default.result}`,\n    clusterSpec: \"ack.pro.small\",\n    profile: \"Default\",\n    vswitchIds: std.joinOutput({\n        separator: \",\",\n        input: createVSwitch.map(__item =\u003e __item.id),\n    }).apply(invoke =\u003e std.splitOutput({\n        separator: \",\",\n        text: invoke.result,\n    })).apply(invoke =\u003e invoke.result),\n    podCidr: podCidr,\n    serviceCidr: serviceCidr,\n    isEnterpriseSecurityGroup: true,\n    ipStack: \"ipv4\",\n    proxyMode: \"ipvs\",\n    deletionProtection: false,\n    addons: [\n        {\n            name: \"gatekeeper\",\n        },\n        {\n            name: \"loongcollector\",\n        },\n        {\n            name: \"policy-template-controller\",\n        },\n    ],\n    operationPolicy: {\n        clusterAutoUpgrade: {\n            enabled: false,\n        },\n    },\n    maintenanceWindow: {\n        enable: false,\n    },\n});\nconst defaultKubernetesPolicyInstance = new alicloud.cs.KubernetesPolicyInstance(\"default\", {\n    clusterId: createCluster.id,\n    policyName: policyName,\n    action: \"deny\",\n    namespaces: [\"test\"],\n    parameters: {\n        hostNetwork: \"true\",\n        min: \"20\",\n        max: \"200\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nvpc_cidr = config.get(\"vpcCidr\")\nif vpc_cidr is None:\n    vpc_cidr = \"10.0.0.0/8\"\nvswitch_cidrs = config.get_object(\"vswitchCidrs\")\nif vswitch_cidrs is None:\n    vswitch_cidrs = [\n        \"10.1.0.0/16\",\n        \"10.2.0.0/16\",\n    ]\ncluster_name = config.get(\"clusterName\")\nif cluster_name is None:\n    cluster_name = \"example-create-cluster\"\npod_cidr = config.get(\"podCidr\")\nif pod_cidr is None:\n    pod_cidr = \"172.16.0.0/16\"\nservice_cidr = config.get(\"serviceCidr\")\nif service_cidr is None:\n    service_cidr = \"192.168.0.0/16\"\npolicy_name = config.get(\"policyName\")\nif policy_name is None:\n    policy_name = \"ACKPSPHostNetworkingPorts\"\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ncreate_vpc = alicloud.vpc.Network(\"CreateVPC\", cidr_block=vpc_cidr)\n# According to the vswitch cidr blocks to launch several vswitches\ncreate_v_switch = []\nfor range in [{\"value\": i} for i in range(0, len(vswitch_cidrs))]:\n    create_v_switch.append(alicloud.vpc.Switch(f\"CreateVSwitch-{range['value']}\",\n        vpc_id=create_vpc.id,\n        cidr_block=vswitch_cidrs[range[\"value\"]],\n        zone_id=enhanced.zones[range[\"value\"]].zone_id))\ncreate_cluster = alicloud.cs.ManagedKubernetes(\"CreateCluster\",\n    name=f\"{cluster_name}-{default['result']}\",\n    cluster_spec=\"ack.pro.small\",\n    profile=\"Default\",\n    vswitch_ids=std.join_output(separator=\",\",\n        input=[__item.id for __item in create_v_switch]).apply(lambda invoke: std.split_output(separator=\",\",\n        text=invoke.result)).apply(lambda invoke: invoke.result),\n    pod_cidr=pod_cidr,\n    service_cidr=service_cidr,\n    is_enterprise_security_group=True,\n    ip_stack=\"ipv4\",\n    proxy_mode=\"ipvs\",\n    deletion_protection=False,\n    addons=[\n        {\n            \"name\": \"gatekeeper\",\n        },\n        {\n            \"name\": \"loongcollector\",\n        },\n        {\n            \"name\": \"policy-template-controller\",\n        },\n    ],\n    operation_policy={\n        \"cluster_auto_upgrade\": {\n            \"enabled\": False,\n        },\n    },\n    maintenance_window={\n        \"enable\": False,\n    })\ndefault_kubernetes_policy_instance = alicloud.cs.KubernetesPolicyInstance(\"default\",\n    cluster_id=create_cluster.id,\n    policy_name=policy_name,\n    action=\"deny\",\n    namespaces=[\"test\"],\n    parameters={\n        \"hostNetwork\": \"true\",\n        \"min\": \"20\",\n        \"max\": \"200\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var vpcCidr = config.Get(\"vpcCidr\") ?? \"10.0.0.0/8\";\n    var vswitchCidrs = config.GetObject\u003cstring[]\u003e(\"vswitchCidrs\") ?? new[]\n    {\n        \"10.1.0.0/16\",\n        \"10.2.0.0/16\",\n    };\n    var clusterName = config.Get(\"clusterName\") ?? \"example-create-cluster\";\n    var podCidr = config.Get(\"podCidr\") ?? \"172.16.0.0/16\";\n    var serviceCidr = config.Get(\"serviceCidr\") ?? \"192.168.0.0/16\";\n    var policyName = config.Get(\"policyName\") ?? \"ACKPSPHostNetworkingPorts\";\n    var enhanced = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var createVPC = new AliCloud.Vpc.Network(\"CreateVPC\", new()\n    {\n        CidrBlock = vpcCidr,\n    });\n\n    // According to the vswitch cidr blocks to launch several vswitches\n    var createVSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c vswitchCidrs.Length; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        createVSwitch.Add(new AliCloud.Vpc.Switch($\"CreateVSwitch-{range.Value}\", new()\n        {\n            VpcId = createVPC.Id,\n            CidrBlock = vswitchCidrs[range.Value],\n            ZoneId = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones)[range.Value].ZoneId,\n        }));\n    }\n    var createCluster = new AliCloud.CS.ManagedKubernetes(\"CreateCluster\", new()\n    {\n        Name = $\"{clusterName}-{@default.Result}\",\n        ClusterSpec = \"ack.pro.small\",\n        Profile = \"Default\",\n        VswitchIds = Std.Join.Invoke(new()\n        {\n            Separator = \",\",\n            Input = createVSwitch.Select(__item =\u003e __item.Id).ToList(),\n        }).Apply(invoke =\u003e Std.Split.Invoke(new()\n        {\n            Separator = \",\",\n            Text = invoke.Result,\n        })).Apply(invoke =\u003e invoke.Result),\n        PodCidr = podCidr,\n        ServiceCidr = serviceCidr,\n        IsEnterpriseSecurityGroup = true,\n        IpStack = \"ipv4\",\n        ProxyMode = \"ipvs\",\n        DeletionProtection = false,\n        Addons = new[]\n        {\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"gatekeeper\",\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"loongcollector\",\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"policy-template-controller\",\n            },\n        },\n        OperationPolicy = new AliCloud.CS.Inputs.ManagedKubernetesOperationPolicyArgs\n        {\n            ClusterAutoUpgrade = new AliCloud.CS.Inputs.ManagedKubernetesOperationPolicyClusterAutoUpgradeArgs\n            {\n                Enabled = false,\n            },\n        },\n        MaintenanceWindow = new AliCloud.CS.Inputs.ManagedKubernetesMaintenanceWindowArgs\n        {\n            Enable = false,\n        },\n    });\n\n    var defaultKubernetesPolicyInstance = new AliCloud.CS.KubernetesPolicyInstance(\"default\", new()\n    {\n        ClusterId = createCluster.Id,\n        PolicyName = policyName,\n        Action = \"deny\",\n        Namespaces = new[]\n        {\n            \"test\",\n        },\n        Parameters = \n        {\n            { \"hostNetwork\", \"true\" },\n            { \"min\", \"20\" },\n            { \"max\", \"200\" },\n        },\n    });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.alicloud.cs.inputs.ManagedKubernetesAddonArgs;\nimport com.pulumi.alicloud.cs.inputs.ManagedKubernetesOperationPolicyArgs;\nimport com.pulumi.alicloud.cs.inputs.ManagedKubernetesOperationPolicyClusterAutoUpgradeArgs;\nimport com.pulumi.alicloud.cs.inputs.ManagedKubernetesMaintenanceWindowArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.JoinArgs;\nimport com.pulumi.std.inputs.SplitArgs;\nimport com.pulumi.alicloud.cs.KubernetesPolicyInstance;\nimport com.pulumi.alicloud.cs.KubernetesPolicyInstanceArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var vpcCidr = config.get(\"vpcCidr\").orElse(\"10.0.0.0/8\");\n        final var vswitchCidrs = config.get(\"vswitchCidrs\").orElse(List.of(        \n            \"10.1.0.0/16\",\n            \"10.2.0.0/16\"));\n        final var clusterName = config.get(\"clusterName\").orElse(\"example-create-cluster\");\n        final var podCidr = config.get(\"podCidr\").orElse(\"172.16.0.0/16\");\n        final var serviceCidr = config.get(\"serviceCidr\").orElse(\"192.168.0.0/16\");\n        final var policyName = config.get(\"policyName\").orElse(\"ACKPSPHostNetworkingPorts\");\n        final var enhanced = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var createVPC = new Network(\"createVPC\", NetworkArgs.builder()\n            .cidrBlock(vpcCidr)\n            .build());\n\n        // According to the vswitch cidr blocks to launch several vswitches\n        for (var i = 0; i \u003c vswitchCidrs.length(); i++) {\n            new Switch(\"createVSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(createVPC.id())\n                .cidrBlock(vswitchCidrs[range.value()])\n                .zoneId(enhanced.zones()[range.value()].zoneId())\n                .build());\n\n        \n}\n        var createCluster = new ManagedKubernetes(\"createCluster\", ManagedKubernetesArgs.builder()\n            .name(String.format(\"%s-%s\", clusterName,default_.result()))\n            .clusterSpec(\"ack.pro.small\")\n            .profile(\"Default\")\n            .vswitchIds(StdFunctions.join(JoinArgs.builder()\n                .separator(\",\")\n                .input(createVSwitch.stream().map(element -\u003e element.id()).collect(toList()))\n                .build()).applyValue(_invoke -\u003e StdFunctions.split(SplitArgs.builder()\n                .separator(\",\")\n                .text(_invoke.result())\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .podCidr(podCidr)\n            .serviceCidr(serviceCidr)\n            .isEnterpriseSecurityGroup(true)\n            .ipStack(\"ipv4\")\n            .proxyMode(\"ipvs\")\n            .deletionProtection(false)\n            .addons(            \n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"gatekeeper\")\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"loongcollector\")\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"policy-template-controller\")\n                    .build())\n            .operationPolicy(ManagedKubernetesOperationPolicyArgs.builder()\n                .clusterAutoUpgrade(ManagedKubernetesOperationPolicyClusterAutoUpgradeArgs.builder()\n                    .enabled(false)\n                    .build())\n                .build())\n            .maintenanceWindow(ManagedKubernetesMaintenanceWindowArgs.builder()\n                .enable(false)\n                .build())\n            .build());\n\n        var defaultKubernetesPolicyInstance = new KubernetesPolicyInstance(\"defaultKubernetesPolicyInstance\", KubernetesPolicyInstanceArgs.builder()\n            .clusterId(createCluster.id())\n            .policyName(policyName)\n            .action(\"deny\")\n            .namespaces(\"test\")\n            .parameters(Map.ofEntries(\n                Map.entry(\"hostNetwork\", \"true\"),\n                Map.entry(\"min\", \"20\"),\n                Map.entry(\"max\", \"200\")\n            ))\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nContainer Service for Kubernetes (ACK) Policy Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cs/kubernetesPolicyInstance:KubernetesPolicyInstance example \u003ccluster_id\u003e:\u003cpolicy_name\u003e:\u003cinstance_name\u003e\n```\n\n","properties":{"action":{"type":"string","description":"Policy Governance Implementation Actions\n"},"clusterId":{"type":"string","description":"Target cluster ID\n"},"instanceName":{"type":"string","description":"Rule Instance Name\n"},"namespaces":{"type":"array","items":{"type":"string"},"description":"Limits the namespace of the policy implementation. Empty indicates all namespaces.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"The parameter configuration of the current rule instance. For more information about the parameters supported by each policy rule, see [Container Security Policy Rule Base Description](https://www.alibabacloud.com/help/doc-detail/359819.html).\n"},"policyName":{"type":"string","description":"Policy Name\n"}},"required":["clusterId","instanceName","policyName"],"inputProperties":{"action":{"type":"string","description":"Policy Governance Implementation Actions\n"},"clusterId":{"type":"string","description":"Target cluster ID\n","willReplaceOnChanges":true},"namespaces":{"type":"array","items":{"type":"string"},"description":"Limits the namespace of the policy implementation. Empty indicates all namespaces.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"The parameter configuration of the current rule instance. For more information about the parameters supported by each policy rule, see [Container Security Policy Rule Base Description](https://www.alibabacloud.com/help/doc-detail/359819.html).\n"},"policyName":{"type":"string","description":"Policy Name\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","policyName"],"stateInputs":{"description":"Input properties used for looking up and filtering KubernetesPolicyInstance resources.\n","properties":{"action":{"type":"string","description":"Policy Governance Implementation Actions\n"},"clusterId":{"type":"string","description":"Target cluster ID\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"Rule Instance Name\n"},"namespaces":{"type":"array","items":{"type":"string"},"description":"Limits the namespace of the policy implementation. Empty indicates all namespaces.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"The parameter configuration of the current rule instance. For more information about the parameters supported by each policy rule, see [Container Security Policy Rule Base Description](https://www.alibabacloud.com/help/doc-detail/359819.html).\n"},"policyName":{"type":"string","description":"Policy Name\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cs/managedKubernetes:ManagedKubernetes":{"description":"This resource will help you to manage a ManagedKubernetes Cluster in Alibaba Cloud Kubernetes Service. \n\n\u003e **NOTE:** Available since v1.26.0.\n\n\u003e **NOTE:** It is recommended to create a cluster with zero worker nodes, and then use a node pool to manage the cluster nodes. \n\n\u003e **NOTE:** Kubernetes cluster only supports VPC network and it can access internet while creating kubernetes cluster.\nA Nat Gateway and configuring a SNAT for it can ensure one VPC network access internet. If there is no nat gateway in the\nVPC, you can set \u003cspan pulumi-lang-nodejs=\"`newNatGateway`\" pulumi-lang-dotnet=\"`NewNatGateway`\" pulumi-lang-go=\"`newNatGateway`\" pulumi-lang-python=\"`new_nat_gateway`\" pulumi-lang-yaml=\"`newNatGateway`\" pulumi-lang-java=\"`newNatGateway`\"\u003e`new_nat_gateway`\u003c/span\u003e to \"true\" to create one automatically.\n\n\u003e **NOTE:** Creating kubernetes cluster need to install several packages and it will cost about 15 minutes. Please be patient.\n\n\u003e **NOTE:** From version 1.9.4, the provider supports to download kube config, client certificate, client key and cluster ca certificate\nafter creating cluster successfully, and you can put them into the specified location, like '~/.kube/config'.\n\n\u003e **NOTE:** From version 1.20.0, the provider supports disabling internet load balancer for API Server by setting \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`slbInternetEnabled`\" pulumi-lang-dotnet=\"`SlbInternetEnabled`\" pulumi-lang-go=\"`slbInternetEnabled`\" pulumi-lang-python=\"`slb_internet_enabled`\" pulumi-lang-yaml=\"`slbInternetEnabled`\" pulumi-lang-java=\"`slbInternetEnabled`\"\u003e`slb_internet_enabled`\u003c/span\u003e.\n\n\u003e **NOTE:** If you want to manage Kubernetes, you can use Kubernetes Provider.\n\n\u003e **NOTE:** You need to activate several other products and confirm Authorization Policy used by Container Service before using this resource.\nPlease refer to the `Authorization management` and `Cluster management` sections in the [Document Center](https://www.alibabacloud.com/help/doc-detail/86488.htm).\n\n\u003e **NOTE:** From version 1.72.0, Some parameters have been removed from resource,You can check them below and re-import the cluster if necessary.\n\n\u003e **NOTE:** From version 1.120.0, Support for cluster migration from Standard cluster to professional.\n\n\u003e **NOTE:** From version 1.177.0, \u003cspan pulumi-lang-nodejs=\"`runtime`\" pulumi-lang-dotnet=\"`Runtime`\" pulumi-lang-go=\"`runtime`\" pulumi-lang-python=\"`runtime`\" pulumi-lang-yaml=\"`runtime`\" pulumi-lang-java=\"`runtime`\"\u003e`runtime`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`enableSsh`\" pulumi-lang-dotnet=\"`EnableSsh`\" pulumi-lang-go=\"`enableSsh`\" pulumi-lang-python=\"`enable_ssh`\" pulumi-lang-yaml=\"`enableSsh`\" pulumi-lang-java=\"`enableSsh`\"\u003e`enable_ssh`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`rdsInstances`\" pulumi-lang-dotnet=\"`RdsInstances`\" pulumi-lang-go=\"`rdsInstances`\" pulumi-lang-python=\"`rds_instances`\" pulumi-lang-yaml=\"`rdsInstances`\" pulumi-lang-java=\"`rdsInstances`\"\u003e`rds_instances`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`excludeAutoscalerNodes`\" pulumi-lang-dotnet=\"`ExcludeAutoscalerNodes`\" pulumi-lang-go=\"`excludeAutoscalerNodes`\" pulumi-lang-python=\"`exclude_autoscaler_nodes`\" pulumi-lang-yaml=\"`excludeAutoscalerNodes`\" pulumi-lang-java=\"`excludeAutoscalerNodes`\"\u003e`exclude_autoscaler_nodes`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerNumber`\" pulumi-lang-dotnet=\"`WorkerNumber`\" pulumi-lang-go=\"`workerNumber`\" pulumi-lang-python=\"`worker_number`\" pulumi-lang-yaml=\"`workerNumber`\" pulumi-lang-java=\"`workerNumber`\"\u003e`worker_number`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerInstanceTypes`\" pulumi-lang-dotnet=\"`WorkerInstanceTypes`\" pulumi-lang-go=\"`workerInstanceTypes`\" pulumi-lang-python=\"`worker_instance_types`\" pulumi-lang-yaml=\"`workerInstanceTypes`\" pulumi-lang-java=\"`workerInstanceTypes`\"\u003e`worker_instance_types`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`kmsEncryptionContext`\" pulumi-lang-dotnet=\"`KmsEncryptionContext`\" pulumi-lang-go=\"`kmsEncryptionContext`\" pulumi-lang-python=\"`kms_encryption_context`\" pulumi-lang-yaml=\"`kmsEncryptionContext`\" pulumi-lang-java=\"`kmsEncryptionContext`\"\u003e`kms_encryption_context`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerInstanceChargeType`\" pulumi-lang-dotnet=\"`WorkerInstanceChargeType`\" pulumi-lang-go=\"`workerInstanceChargeType`\" pulumi-lang-python=\"`worker_instance_charge_type`\" pulumi-lang-yaml=\"`workerInstanceChargeType`\" pulumi-lang-java=\"`workerInstanceChargeType`\"\u003e`worker_instance_charge_type`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerPeriod`\" pulumi-lang-dotnet=\"`WorkerPeriod`\" pulumi-lang-go=\"`workerPeriod`\" pulumi-lang-python=\"`worker_period`\" pulumi-lang-yaml=\"`workerPeriod`\" pulumi-lang-java=\"`workerPeriod`\"\u003e`worker_period`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerPeriodUnit`\" pulumi-lang-dotnet=\"`WorkerPeriodUnit`\" pulumi-lang-go=\"`workerPeriodUnit`\" pulumi-lang-python=\"`worker_period_unit`\" pulumi-lang-yaml=\"`workerPeriodUnit`\" pulumi-lang-java=\"`workerPeriodUnit`\"\u003e`worker_period_unit`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerAutoRenew`\" pulumi-lang-dotnet=\"`WorkerAutoRenew`\" pulumi-lang-go=\"`workerAutoRenew`\" pulumi-lang-python=\"`worker_auto_renew`\" pulumi-lang-yaml=\"`workerAutoRenew`\" pulumi-lang-java=\"`workerAutoRenew`\"\u003e`worker_auto_renew`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerAutoRenewPeriod`\" pulumi-lang-dotnet=\"`WorkerAutoRenewPeriod`\" pulumi-lang-go=\"`workerAutoRenewPeriod`\" pulumi-lang-python=\"`worker_auto_renew_period`\" pulumi-lang-yaml=\"`workerAutoRenewPeriod`\" pulumi-lang-java=\"`workerAutoRenewPeriod`\"\u003e`worker_auto_renew_period`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDiskCategory`\" pulumi-lang-dotnet=\"`WorkerDiskCategory`\" pulumi-lang-go=\"`workerDiskCategory`\" pulumi-lang-python=\"`worker_disk_category`\" pulumi-lang-yaml=\"`workerDiskCategory`\" pulumi-lang-java=\"`workerDiskCategory`\"\u003e`worker_disk_category`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDiskSize`\" pulumi-lang-dotnet=\"`WorkerDiskSize`\" pulumi-lang-go=\"`workerDiskSize`\" pulumi-lang-python=\"`worker_disk_size`\" pulumi-lang-yaml=\"`workerDiskSize`\" pulumi-lang-java=\"`workerDiskSize`\"\u003e`worker_disk_size`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDataDisks`\" pulumi-lang-dotnet=\"`WorkerDataDisks`\" pulumi-lang-go=\"`workerDataDisks`\" pulumi-lang-python=\"`worker_data_disks`\" pulumi-lang-yaml=\"`workerDataDisks`\" pulumi-lang-java=\"`workerDataDisks`\"\u003e`worker_data_disks`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`nodeNameMode`\" pulumi-lang-dotnet=\"`NodeNameMode`\" pulumi-lang-go=\"`nodeNameMode`\" pulumi-lang-python=\"`node_name_mode`\" pulumi-lang-yaml=\"`nodeNameMode`\" pulumi-lang-java=\"`nodeNameMode`\"\u003e`node_name_mode`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`nodePortRange`\" pulumi-lang-dotnet=\"`NodePortRange`\" pulumi-lang-go=\"`nodePortRange`\" pulumi-lang-python=\"`node_port_range`\" pulumi-lang-yaml=\"`nodePortRange`\" pulumi-lang-java=\"`nodePortRange`\"\u003e`node_port_range`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`osType`\" pulumi-lang-dotnet=\"`OsType`\" pulumi-lang-go=\"`osType`\" pulumi-lang-python=\"`os_type`\" pulumi-lang-yaml=\"`osType`\" pulumi-lang-java=\"`osType`\"\u003e`os_type`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`platform`\" pulumi-lang-dotnet=\"`Platform`\" pulumi-lang-go=\"`platform`\" pulumi-lang-python=\"`platform`\" pulumi-lang-yaml=\"`platform`\" pulumi-lang-java=\"`platform`\"\u003e`platform`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\"\u003e`image_id`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`cpuPolicy`\" pulumi-lang-dotnet=\"`CpuPolicy`\" pulumi-lang-go=\"`cpuPolicy`\" pulumi-lang-python=\"`cpu_policy`\" pulumi-lang-yaml=\"`cpuPolicy`\" pulumi-lang-java=\"`cpuPolicy`\"\u003e`cpu_policy`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`userData`\" pulumi-lang-dotnet=\"`UserData`\" pulumi-lang-go=\"`userData`\" pulumi-lang-python=\"`user_data`\" pulumi-lang-yaml=\"`userData`\" pulumi-lang-java=\"`userData`\"\u003e`user_data`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`taints`\" pulumi-lang-dotnet=\"`Taints`\" pulumi-lang-go=\"`taints`\" pulumi-lang-python=\"`taints`\" pulumi-lang-yaml=\"`taints`\" pulumi-lang-java=\"`taints`\"\u003e`taints`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDiskPerformanceLevel`\" pulumi-lang-dotnet=\"`WorkerDiskPerformanceLevel`\" pulumi-lang-go=\"`workerDiskPerformanceLevel`\" pulumi-lang-python=\"`worker_disk_performance_level`\" pulumi-lang-yaml=\"`workerDiskPerformanceLevel`\" pulumi-lang-java=\"`workerDiskPerformanceLevel`\"\u003e`worker_disk_performance_level`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDiskSnapshotPolicyId`\" pulumi-lang-dotnet=\"`WorkerDiskSnapshotPolicyId`\" pulumi-lang-go=\"`workerDiskSnapshotPolicyId`\" pulumi-lang-python=\"`worker_disk_snapshot_policy_id`\" pulumi-lang-yaml=\"`workerDiskSnapshotPolicyId`\" pulumi-lang-java=\"`workerDiskSnapshotPolicyId`\"\u003e`worker_disk_snapshot_policy_id`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`installCloudMonitor`\" pulumi-lang-dotnet=\"`InstallCloudMonitor`\" pulumi-lang-go=\"`installCloudMonitor`\" pulumi-lang-python=\"`install_cloud_monitor`\" pulumi-lang-yaml=\"`installCloudMonitor`\" pulumi-lang-java=\"`installCloudMonitor`\"\u003e`install_cloud_monitor`\u003c/span\u003e are deprecated.\nWe Suggest you using resource **\u003cspan pulumi-lang-nodejs=\"`alicloud.cs.NodePool`\" pulumi-lang-dotnet=\"`alicloud.cs.NodePool`\" pulumi-lang-go=\"`cs.NodePool`\" pulumi-lang-python=\"`cs.NodePool`\" pulumi-lang-yaml=\"`alicloud.cs.NodePool`\" pulumi-lang-java=\"`alicloud.cs.NodePool`\"\u003e`alicloud.cs.NodePool`\u003c/span\u003e** to manage your cluster worker nodes.\n\n\u003e **NOTE:** From version 1.212.0, \u003cspan pulumi-lang-nodejs=\"`runtime`\" pulumi-lang-dotnet=\"`Runtime`\" pulumi-lang-go=\"`runtime`\" pulumi-lang-python=\"`runtime`\" pulumi-lang-yaml=\"`runtime`\" pulumi-lang-java=\"`runtime`\"\u003e`runtime`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`enableSsh`\" pulumi-lang-dotnet=\"`EnableSsh`\" pulumi-lang-go=\"`enableSsh`\" pulumi-lang-python=\"`enable_ssh`\" pulumi-lang-yaml=\"`enableSsh`\" pulumi-lang-java=\"`enableSsh`\"\u003e`enable_ssh`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`rdsInstances`\" pulumi-lang-dotnet=\"`RdsInstances`\" pulumi-lang-go=\"`rdsInstances`\" pulumi-lang-python=\"`rds_instances`\" pulumi-lang-yaml=\"`rdsInstances`\" pulumi-lang-java=\"`rdsInstances`\"\u003e`rds_instances`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`excludeAutoscalerNodes`\" pulumi-lang-dotnet=\"`ExcludeAutoscalerNodes`\" pulumi-lang-go=\"`excludeAutoscalerNodes`\" pulumi-lang-python=\"`exclude_autoscaler_nodes`\" pulumi-lang-yaml=\"`excludeAutoscalerNodes`\" pulumi-lang-java=\"`excludeAutoscalerNodes`\"\u003e`exclude_autoscaler_nodes`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerNumber`\" pulumi-lang-dotnet=\"`WorkerNumber`\" pulumi-lang-go=\"`workerNumber`\" pulumi-lang-python=\"`worker_number`\" pulumi-lang-yaml=\"`workerNumber`\" pulumi-lang-java=\"`workerNumber`\"\u003e`worker_number`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerInstanceTypes`\" pulumi-lang-dotnet=\"`WorkerInstanceTypes`\" pulumi-lang-go=\"`workerInstanceTypes`\" pulumi-lang-python=\"`worker_instance_types`\" pulumi-lang-yaml=\"`workerInstanceTypes`\" pulumi-lang-java=\"`workerInstanceTypes`\"\u003e`worker_instance_types`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`kmsEncryptionContext`\" pulumi-lang-dotnet=\"`KmsEncryptionContext`\" pulumi-lang-go=\"`kmsEncryptionContext`\" pulumi-lang-python=\"`kms_encryption_context`\" pulumi-lang-yaml=\"`kmsEncryptionContext`\" pulumi-lang-java=\"`kmsEncryptionContext`\"\u003e`kms_encryption_context`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerInstanceChargeType`\" pulumi-lang-dotnet=\"`WorkerInstanceChargeType`\" pulumi-lang-go=\"`workerInstanceChargeType`\" pulumi-lang-python=\"`worker_instance_charge_type`\" pulumi-lang-yaml=\"`workerInstanceChargeType`\" pulumi-lang-java=\"`workerInstanceChargeType`\"\u003e`worker_instance_charge_type`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerPeriod`\" pulumi-lang-dotnet=\"`WorkerPeriod`\" pulumi-lang-go=\"`workerPeriod`\" pulumi-lang-python=\"`worker_period`\" pulumi-lang-yaml=\"`workerPeriod`\" pulumi-lang-java=\"`workerPeriod`\"\u003e`worker_period`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerPeriodUnit`\" pulumi-lang-dotnet=\"`WorkerPeriodUnit`\" pulumi-lang-go=\"`workerPeriodUnit`\" pulumi-lang-python=\"`worker_period_unit`\" pulumi-lang-yaml=\"`workerPeriodUnit`\" pulumi-lang-java=\"`workerPeriodUnit`\"\u003e`worker_period_unit`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerAutoRenew`\" pulumi-lang-dotnet=\"`WorkerAutoRenew`\" pulumi-lang-go=\"`workerAutoRenew`\" pulumi-lang-python=\"`worker_auto_renew`\" pulumi-lang-yaml=\"`workerAutoRenew`\" pulumi-lang-java=\"`workerAutoRenew`\"\u003e`worker_auto_renew`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerAutoRenewPeriod`\" pulumi-lang-dotnet=\"`WorkerAutoRenewPeriod`\" pulumi-lang-go=\"`workerAutoRenewPeriod`\" pulumi-lang-python=\"`worker_auto_renew_period`\" pulumi-lang-yaml=\"`workerAutoRenewPeriod`\" pulumi-lang-java=\"`workerAutoRenewPeriod`\"\u003e`worker_auto_renew_period`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDiskCategory`\" pulumi-lang-dotnet=\"`WorkerDiskCategory`\" pulumi-lang-go=\"`workerDiskCategory`\" pulumi-lang-python=\"`worker_disk_category`\" pulumi-lang-yaml=\"`workerDiskCategory`\" pulumi-lang-java=\"`workerDiskCategory`\"\u003e`worker_disk_category`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDiskSize`\" pulumi-lang-dotnet=\"`WorkerDiskSize`\" pulumi-lang-go=\"`workerDiskSize`\" pulumi-lang-python=\"`worker_disk_size`\" pulumi-lang-yaml=\"`workerDiskSize`\" pulumi-lang-java=\"`workerDiskSize`\"\u003e`worker_disk_size`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDataDisks`\" pulumi-lang-dotnet=\"`WorkerDataDisks`\" pulumi-lang-go=\"`workerDataDisks`\" pulumi-lang-python=\"`worker_data_disks`\" pulumi-lang-yaml=\"`workerDataDisks`\" pulumi-lang-java=\"`workerDataDisks`\"\u003e`worker_data_disks`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`nodeNameMode`\" pulumi-lang-dotnet=\"`NodeNameMode`\" pulumi-lang-go=\"`nodeNameMode`\" pulumi-lang-python=\"`node_name_mode`\" pulumi-lang-yaml=\"`nodeNameMode`\" pulumi-lang-java=\"`nodeNameMode`\"\u003e`node_name_mode`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`nodePortRange`\" pulumi-lang-dotnet=\"`NodePortRange`\" pulumi-lang-go=\"`nodePortRange`\" pulumi-lang-python=\"`node_port_range`\" pulumi-lang-yaml=\"`nodePortRange`\" pulumi-lang-java=\"`nodePortRange`\"\u003e`node_port_range`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`osType`\" pulumi-lang-dotnet=\"`OsType`\" pulumi-lang-go=\"`osType`\" pulumi-lang-python=\"`os_type`\" pulumi-lang-yaml=\"`osType`\" pulumi-lang-java=\"`osType`\"\u003e`os_type`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`platform`\" pulumi-lang-dotnet=\"`Platform`\" pulumi-lang-go=\"`platform`\" pulumi-lang-python=\"`platform`\" pulumi-lang-yaml=\"`platform`\" pulumi-lang-java=\"`platform`\"\u003e`platform`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\"\u003e`image_id`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`cpuPolicy`\" pulumi-lang-dotnet=\"`CpuPolicy`\" pulumi-lang-go=\"`cpuPolicy`\" pulumi-lang-python=\"`cpu_policy`\" pulumi-lang-yaml=\"`cpuPolicy`\" pulumi-lang-java=\"`cpuPolicy`\"\u003e`cpu_policy`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`userData`\" pulumi-lang-dotnet=\"`UserData`\" pulumi-lang-go=\"`userData`\" pulumi-lang-python=\"`user_data`\" pulumi-lang-yaml=\"`userData`\" pulumi-lang-java=\"`userData`\"\u003e`user_data`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`taints`\" pulumi-lang-dotnet=\"`Taints`\" pulumi-lang-go=\"`taints`\" pulumi-lang-python=\"`taints`\" pulumi-lang-yaml=\"`taints`\" pulumi-lang-java=\"`taints`\"\u003e`taints`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDiskPerformanceLevel`\" pulumi-lang-dotnet=\"`WorkerDiskPerformanceLevel`\" pulumi-lang-go=\"`workerDiskPerformanceLevel`\" pulumi-lang-python=\"`worker_disk_performance_level`\" pulumi-lang-yaml=\"`workerDiskPerformanceLevel`\" pulumi-lang-java=\"`workerDiskPerformanceLevel`\"\u003e`worker_disk_performance_level`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`workerDiskSnapshotPolicyId`\" pulumi-lang-dotnet=\"`WorkerDiskSnapshotPolicyId`\" pulumi-lang-go=\"`workerDiskSnapshotPolicyId`\" pulumi-lang-python=\"`worker_disk_snapshot_policy_id`\" pulumi-lang-yaml=\"`workerDiskSnapshotPolicyId`\" pulumi-lang-java=\"`workerDiskSnapshotPolicyId`\"\u003e`worker_disk_snapshot_policy_id`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`installCloudMonitor`\" pulumi-lang-dotnet=\"`InstallCloudMonitor`\" pulumi-lang-go=\"`installCloudMonitor`\" pulumi-lang-python=\"`install_cloud_monitor`\" pulumi-lang-yaml=\"`installCloudMonitor`\" pulumi-lang-java=\"`installCloudMonitor`\"\u003e`install_cloud_monitor`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`kubeConfig`\" pulumi-lang-dotnet=\"`KubeConfig`\" pulumi-lang-go=\"`kubeConfig`\" pulumi-lang-python=\"`kube_config`\" pulumi-lang-yaml=\"`kubeConfig`\" pulumi-lang-java=\"`kubeConfig`\"\u003e`kube_config`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e are removed.\nPlease use resource **\u003cspan pulumi-lang-nodejs=\"`alicloud.cs.NodePool`\" pulumi-lang-dotnet=\"`alicloud.cs.NodePool`\" pulumi-lang-go=\"`cs.NodePool`\" pulumi-lang-python=\"`cs.NodePool`\" pulumi-lang-yaml=\"`alicloud.cs.NodePool`\" pulumi-lang-java=\"`alicloud.cs.NodePool`\"\u003e`alicloud.cs.NodePool`\u003c/span\u003e** to manage your cluster worker nodes.\n\n## Example Usage\n\nACK cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\n// Existing vpc id used to create several vswitches and other resources.\nconst vpcId = config.get(\"vpcId\") || \"\";\n// The cidr block used to launch a new vpc when 'vpc_id' is not specified.\nconst vpcCidr = config.get(\"vpcCidr\") || \"10.0.0.0/8\";\n// List of existing vswitch id.\nconst vswitchIds = config.getObject\u003cArray\u003cstring\u003e\u003e(\"vswitchIds\") || [];\n// List of cidr blocks used to create several new vswitches when 'vswitch_ids' is not specified.\nconst vswitchCidrs = config.getObject\u003cArray\u003cstring\u003e\u003e(\"vswitchCidrs\") || [\n    \"10.1.0.0/16\",\n    \"10.2.0.0/16\",\n];\n// Proxy mode is option of kube-proxy.\nconst proxyMode = config.get(\"proxyMode\") || \"ipvs\";\n// The kubernetes service cidr block. It cannot be equals to vpc's or vswitch's or pod's and cannot be in them.\nconst serviceCidr = config.get(\"serviceCidr\") || \"192.168.0.0/16\";\n// List of existing vswitch ids for terway.\nconst terwayVswitchIds = config.getObject\u003cArray\u003cstring\u003e\u003e(\"terwayVswitchIds\") || [];\n// List of cidr blocks used to create several new vswitches when 'terway_vswitch_cidrs' is not specified.\nconst terwayVswitchCidrs = config.getObject\u003cArray\u003cstring\u003e\u003e(\"terwayVswitchCidrs\") || [\n    \"10.4.0.0/16\",\n    \"10.5.0.0/16\",\n];\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\n// If there is not specifying vpc_id, the module will launch a new vpc\nconst vpc: alicloud.vpc.Network[] = [];\nfor (const range = {value: 0}; range.value \u003c (vpcId == \"\" ? 1 : 0); range.value++) {\n    vpc.push(new alicloud.vpc.Network(`vpc-${range.value}`, {cidrBlock: vpcCidr}));\n}\n// According to the vswitch cidr blocks to launch several vswitches\nconst vswitches: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c (vswitchIds.length \u003e 0 ? 0 : vswitchCidrs.length); range.value++) {\n    vswitches.push(new alicloud.vpc.Switch(`vswitches-${range.value}`, {\n        vpcId: vpcId == \"\" ? std.joinOutput({\n            separator: \"\",\n            input: vpc.map(__item =\u003e __item.id),\n        }).apply(invoke =\u003e invoke.result) : vpcId,\n        cidrBlock: vswitchCidrs[range.value],\n        zoneId: enhanced.then(enhanced =\u003e enhanced.zones[range.value].zoneId),\n    }));\n}\n// According to the vswitch cidr blocks to launch several vswitches\nconst terwayVswitches: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c (terwayVswitchIds.length \u003e 0 ? 0 : terwayVswitchCidrs.length); range.value++) {\n    terwayVswitches.push(new alicloud.vpc.Switch(`terway_vswitches-${range.value}`, {\n        vpcId: vpcId == \"\" ? std.joinOutput({\n            separator: \"\",\n            input: vpc.map(__item =\u003e __item.id),\n        }).apply(invoke =\u003e invoke.result) : vpcId,\n        cidrBlock: terwayVswitchCidrs[range.value],\n        zoneId: enhanced.then(enhanced =\u003e enhanced.zones[range.value].zoneId),\n    }));\n}\nconst k8s = new alicloud.cs.ManagedKubernetes(\"k8s\", {\n    name: name,\n    clusterSpec: \"ack.pro.small\",\n    vswitchIds: vswitchIds.length \u003e 0 ? std.join({\n        separator: \",\",\n        input: vswitchIds,\n    }).then(invoke =\u003e std.split({\n        separator: \",\",\n        text: invoke.result,\n    })).then(invoke =\u003e invoke.result) : vswitchCidrs.length \u003c 1 ? [] : std.joinOutput({\n        separator: \",\",\n        input: vswitches.map(__item =\u003e __item.id),\n    }).apply(invoke =\u003e std.splitOutput({\n        separator: \",\",\n        text: invoke.result,\n    })).apply(invoke =\u003e invoke.result),\n    podVswitchIds: terwayVswitchIds.length \u003e 0 ? std.join({\n        separator: \",\",\n        input: terwayVswitchIds,\n    }).then(invoke =\u003e std.split({\n        separator: \",\",\n        text: invoke.result,\n    })).then(invoke =\u003e invoke.result) : terwayVswitchCidrs.length \u003c 1 ? [] : std.joinOutput({\n        separator: \",\",\n        input: terwayVswitches.map(__item =\u003e __item.id),\n    }).apply(invoke =\u003e std.splitOutput({\n        separator: \",\",\n        text: invoke.result,\n    })).apply(invoke =\u003e invoke.result),\n    newNatGateway: true,\n    proxyMode: proxyMode,\n    serviceCidr: serviceCidr,\n    skipSetCertificateAuthority: true,\n    addons: [\n        {\n            name: \"terway-eniip\",\n        },\n        {\n            name: \"csi-plugin\",\n        },\n        {\n            name: \"csi-provisioner\",\n        },\n        {\n            name: \"logtail-ds\",\n            config: JSON.stringify({\n                IngressDashboardEnabled: \"true\",\n            }),\n        },\n        {\n            name: \"nginx-ingress-controller\",\n            config: JSON.stringify({\n                IngressSlbNetworkType: \"internet\",\n            }),\n        },\n        {\n            name: \"arms-prometheus\",\n        },\n        {\n            name: \"ack-node-problem-detector\",\n            config: JSON.stringify({}),\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\n# Existing vpc id used to create several vswitches and other resources.\nvpc_id = config.get(\"vpcId\")\nif vpc_id is None:\n    vpc_id = \"\"\n# The cidr block used to launch a new vpc when 'vpc_id' is not specified.\nvpc_cidr = config.get(\"vpcCidr\")\nif vpc_cidr is None:\n    vpc_cidr = \"10.0.0.0/8\"\n# List of existing vswitch id.\nvswitch_ids = config.get_object(\"vswitchIds\")\nif vswitch_ids is None:\n    vswitch_ids = []\n# List of cidr blocks used to create several new vswitches when 'vswitch_ids' is not specified.\nvswitch_cidrs = config.get_object(\"vswitchCidrs\")\nif vswitch_cidrs is None:\n    vswitch_cidrs = [\n        \"10.1.0.0/16\",\n        \"10.2.0.0/16\",\n    ]\n# Proxy mode is option of kube-proxy.\nproxy_mode = config.get(\"proxyMode\")\nif proxy_mode is None:\n    proxy_mode = \"ipvs\"\n# The kubernetes service cidr block. It cannot be equals to vpc's or vswitch's or pod's and cannot be in them.\nservice_cidr = config.get(\"serviceCidr\")\nif service_cidr is None:\n    service_cidr = \"192.168.0.0/16\"\n# List of existing vswitch ids for terway.\nterway_vswitch_ids = config.get_object(\"terwayVswitchIds\")\nif terway_vswitch_ids is None:\n    terway_vswitch_ids = []\n# List of cidr blocks used to create several new vswitches when 'terway_vswitch_cidrs' is not specified.\nterway_vswitch_cidrs = config.get_object(\"terwayVswitchCidrs\")\nif terway_vswitch_cidrs is None:\n    terway_vswitch_cidrs = [\n        \"10.4.0.0/16\",\n        \"10.5.0.0/16\",\n    ]\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\n# If there is not specifying vpc_id, the module will launch a new vpc\nvpc = []\nfor range in [{\"value\": i} for i in range(0, 1 if vpc_id ==  else 0)]:\n    vpc.append(alicloud.vpc.Network(f\"vpc-{range['value']}\", cidr_block=vpc_cidr))\n# According to the vswitch cidr blocks to launch several vswitches\nvswitches = []\nfor range in [{\"value\": i} for i in range(0, 0 if len(vswitch_ids) \u003e 0 else len(vswitch_cidrs))]:\n    vswitches.append(alicloud.vpc.Switch(f\"vswitches-{range['value']}\",\n        vpc_id=std.join_output(separator=\"\",\n            input=[__item.id for __item in vpc]).apply(lambda invoke: invoke.result) if vpc_id == \"\" else vpc_id,\n        cidr_block=vswitch_cidrs[range[\"value\"]],\n        zone_id=enhanced.zones[range[\"value\"]].zone_id))\n# According to the vswitch cidr blocks to launch several vswitches\nterway_vswitches = []\nfor range in [{\"value\": i} for i in range(0, 0 if len(terway_vswitch_ids) \u003e 0 else len(terway_vswitch_cidrs))]:\n    terway_vswitches.append(alicloud.vpc.Switch(f\"terway_vswitches-{range['value']}\",\n        vpc_id=std.join_output(separator=\"\",\n            input=[__item.id for __item in vpc]).apply(lambda invoke: invoke.result) if vpc_id == \"\" else vpc_id,\n        cidr_block=terway_vswitch_cidrs[range[\"value\"]],\n        zone_id=enhanced.zones[range[\"value\"]].zone_id))\nk8s = alicloud.cs.ManagedKubernetes(\"k8s\",\n    name=name,\n    cluster_spec=\"ack.pro.small\",\n    vswitch_ids=std.split(separator=\",\",\n        text=std.join(separator=\",\",\n            input=vswitch_ids).result).result if len(vswitch_ids) \u003e 0 else [] if len(vswitch_cidrs) \u003c 1 else std.join_output(separator=\",\",\n        input=[__item.id for __item in vswitches]).apply(lambda invoke: std.split_output(separator=\",\",\n        text=invoke.result)).apply(lambda invoke: invoke.result),\n    pod_vswitch_ids=std.split(separator=\",\",\n        text=std.join(separator=\",\",\n            input=terway_vswitch_ids).result).result if len(terway_vswitch_ids) \u003e 0 else [] if len(terway_vswitch_cidrs) \u003c 1 else std.join_output(separator=\",\",\n        input=[__item.id for __item in terway_vswitches]).apply(lambda invoke: std.split_output(separator=\",\",\n        text=invoke.result)).apply(lambda invoke: invoke.result),\n    new_nat_gateway=True,\n    proxy_mode=proxy_mode,\n    service_cidr=service_cidr,\n    skip_set_certificate_authority=True,\n    addons=[\n        {\n            \"name\": \"terway-eniip\",\n        },\n        {\n            \"name\": \"csi-plugin\",\n        },\n        {\n            \"name\": \"csi-provisioner\",\n        },\n        {\n            \"name\": \"logtail-ds\",\n            \"config\": json.dumps({\n                \"IngressDashboardEnabled\": \"true\",\n            }),\n        },\n        {\n            \"name\": \"nginx-ingress-controller\",\n            \"config\": json.dumps({\n                \"IngressSlbNetworkType\": \"internet\",\n            }),\n        },\n        {\n            \"name\": \"arms-prometheus\",\n        },\n        {\n            \"name\": \"ack-node-problem-detector\",\n            \"config\": json.dumps({}),\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    // Existing vpc id used to create several vswitches and other resources.\n    var vpcId = config.Get(\"vpcId\") ?? \"\";\n    // The cidr block used to launch a new vpc when 'vpc_id' is not specified.\n    var vpcCidr = config.Get(\"vpcCidr\") ?? \"10.0.0.0/8\";\n    // List of existing vswitch id.\n    var vswitchIds = config.GetObject\u003cstring[]\u003e(\"vswitchIds\") ?? new[] {};\n    // List of cidr blocks used to create several new vswitches when 'vswitch_ids' is not specified.\n    var vswitchCidrs = config.GetObject\u003cstring[]\u003e(\"vswitchCidrs\") ?? new[]\n    {\n        \"10.1.0.0/16\",\n        \"10.2.0.0/16\",\n    };\n    // Proxy mode is option of kube-proxy.\n    var proxyMode = config.Get(\"proxyMode\") ?? \"ipvs\";\n    // The kubernetes service cidr block. It cannot be equals to vpc's or vswitch's or pod's and cannot be in them.\n    var serviceCidr = config.Get(\"serviceCidr\") ?? \"192.168.0.0/16\";\n    // List of existing vswitch ids for terway.\n    var terwayVswitchIds = config.GetObject\u003cstring[]\u003e(\"terwayVswitchIds\") ?? new[] {};\n    // List of cidr blocks used to create several new vswitches when 'terway_vswitch_cidrs' is not specified.\n    var terwayVswitchCidrs = config.GetObject\u003cstring[]\u003e(\"terwayVswitchCidrs\") ?? new[]\n    {\n        \"10.4.0.0/16\",\n        \"10.5.0.0/16\",\n    };\n    var enhanced = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    // If there is not specifying vpc_id, the module will launch a new vpc\n    var vpc = new List\u003cAliCloud.Vpc.Network\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (vpcId == \"\" ? 1 : 0); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        vpc.Add(new AliCloud.Vpc.Network($\"vpc-{range.Value}\", new()\n        {\n            CidrBlock = vpcCidr,\n        }));\n    }\n    // According to the vswitch cidr blocks to launch several vswitches\n    var vswitches = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (vswitchIds.Length \u003e 0 ? 0 : vswitchCidrs.Length); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        vswitches.Add(new AliCloud.Vpc.Switch($\"vswitches-{range.Value}\", new()\n        {\n            VpcId = vpcId == \"\" ? Std.Join.Invoke(new()\n            {\n                Separator = \"\",\n                Input = vpc.Select(__item =\u003e __item.Id).ToList(),\n            }).Apply(invoke =\u003e invoke.Result) : vpcId,\n            CidrBlock = vswitchCidrs[range.Value],\n            ZoneId = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones)[range.Value].ZoneId,\n        }));\n    }\n    // According to the vswitch cidr blocks to launch several vswitches\n    var terwayVswitches = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (terwayVswitchIds.Length \u003e 0 ? 0 : terwayVswitchCidrs.Length); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        terwayVswitches.Add(new AliCloud.Vpc.Switch($\"terway_vswitches-{range.Value}\", new()\n        {\n            VpcId = vpcId == \"\" ? Std.Join.Invoke(new()\n            {\n                Separator = \"\",\n                Input = vpc.Select(__item =\u003e __item.Id).ToList(),\n            }).Apply(invoke =\u003e invoke.Result) : vpcId,\n            CidrBlock = terwayVswitchCidrs[range.Value],\n            ZoneId = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones)[range.Value].ZoneId,\n        }));\n    }\n    var k8s = new AliCloud.CS.ManagedKubernetes(\"k8s\", new()\n    {\n        Name = name,\n        ClusterSpec = \"ack.pro.small\",\n        VswitchIds = vswitchIds.Length \u003e 0 ? Std.Join.Invoke(new()\n        {\n            Separator = \",\",\n            Input = vswitchIds,\n        }).Apply(invoke =\u003e Std.Split.Invoke(new()\n        {\n            Separator = \",\",\n            Text = invoke.Result,\n        })).Apply(invoke =\u003e invoke.Result) : vswitchCidrs.Length \u003c 1 ? new[] {} : Std.Join.Invoke(new()\n        {\n            Separator = \",\",\n            Input = vswitches.Select(__item =\u003e __item.Id).ToList(),\n        }).Apply(invoke =\u003e Std.Split.Invoke(new()\n        {\n            Separator = \",\",\n            Text = invoke.Result,\n        })).Apply(invoke =\u003e invoke.Result),\n        PodVswitchIds = terwayVswitchIds.Length \u003e 0 ? Std.Join.Invoke(new()\n        {\n            Separator = \",\",\n            Input = terwayVswitchIds,\n        }).Apply(invoke =\u003e Std.Split.Invoke(new()\n        {\n            Separator = \",\",\n            Text = invoke.Result,\n        })).Apply(invoke =\u003e invoke.Result) : terwayVswitchCidrs.Length \u003c 1 ? new[] {} : Std.Join.Invoke(new()\n        {\n            Separator = \",\",\n            Input = terwayVswitches.Select(__item =\u003e __item.Id).ToList(),\n        }).Apply(invoke =\u003e Std.Split.Invoke(new()\n        {\n            Separator = \",\",\n            Text = invoke.Result,\n        })).Apply(invoke =\u003e invoke.Result),\n        NewNatGateway = true,\n        ProxyMode = proxyMode,\n        ServiceCidr = serviceCidr,\n        SkipSetCertificateAuthority = true,\n        Addons = new[]\n        {\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"terway-eniip\",\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"csi-plugin\",\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"csi-provisioner\",\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"logtail-ds\",\n                Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"IngressDashboardEnabled\"] = \"true\",\n                }),\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"nginx-ingress-controller\",\n                Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"IngressSlbNetworkType\"] = \"internet\",\n                }),\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"arms-prometheus\",\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"ack-node-problem-detector\",\n                Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                }),\n            },\n        },\n    });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.JoinArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.alicloud.cs.inputs.ManagedKubernetesAddonArgs;\nimport com.pulumi.std.inputs.SplitArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var vpcId = config.get(\"vpcId\").orElse(\"\");\n        final var vpcCidr = config.get(\"vpcCidr\").orElse(\"10.0.0.0/8\");\n        final var vswitchIds = config.get(\"vswitchIds\").orElse(List.of());\n        final var vswitchCidrs = config.get(\"vswitchCidrs\").orElse(List.of(        \n            \"10.1.0.0/16\",\n            \"10.2.0.0/16\"));\n        final var proxyMode = config.get(\"proxyMode\").orElse(\"ipvs\");\n        final var serviceCidr = config.get(\"serviceCidr\").orElse(\"192.168.0.0/16\");\n        final var terwayVswitchIds = config.get(\"terwayVswitchIds\").orElse(List.of());\n        final var terwayVswitchCidrs = config.get(\"terwayVswitchCidrs\").orElse(List.of(        \n            \"10.4.0.0/16\",\n            \"10.5.0.0/16\"));\n        final var enhanced = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        // If there is not specifying vpc_id, the module will launch a new vpc\n        for (var i = 0; i \u003c (vpcId == \"\" ? 1 : 0); i++) {\n            new Network(\"vpc-\" + i, NetworkArgs.builder()\n                .cidrBlock(vpcCidr)\n                .build());\n\n        \n}\n        // According to the vswitch cidr blocks to launch several vswitches\n        for (var i = 0; i \u003c (vswitchIds.length() \u003e 0 ? 0 : vswitchCidrs.length()); i++) {\n            new Switch(\"vswitches-\" + i, SwitchArgs.builder()\n                .vpcId(vpcId == \"\" ? StdFunctions.join(JoinArgs.builder()\n                    .separator(\"\")\n                    .input(vpc.stream().map(element -\u003e element.id()).collect(toList()))\n                    .build()).applyValue(_invoke -\u003e _invoke.result()) : vpcId)\n                .cidrBlock(vswitchCidrs[range.value()])\n                .zoneId(enhanced.zones()[range.value()].zoneId())\n                .build());\n\n        \n}\n        // According to the vswitch cidr blocks to launch several vswitches\n        for (var i = 0; i \u003c (terwayVswitchIds.length() \u003e 0 ? 0 : terwayVswitchCidrs.length()); i++) {\n            new Switch(\"terwayVswitches-\" + i, SwitchArgs.builder()\n                .vpcId(vpcId == \"\" ? StdFunctions.join(JoinArgs.builder()\n                    .separator(\"\")\n                    .input(vpc.stream().map(element -\u003e element.id()).collect(toList()))\n                    .build()).applyValue(_invoke -\u003e _invoke.result()) : vpcId)\n                .cidrBlock(terwayVswitchCidrs[range.value()])\n                .zoneId(enhanced.zones()[range.value()].zoneId())\n                .build());\n\n        \n}\n        var k8s = new ManagedKubernetes(\"k8s\", ManagedKubernetesArgs.builder()\n            .name(name)\n            .clusterSpec(\"ack.pro.small\")\n            .vswitchIds(vswitchIds.length() \u003e 0 ? StdFunctions.split(SplitArgs.builder()\n                .separator(\",\")\n                .text(StdFunctions.join(JoinArgs.builder()\n                    .separator(\",\")\n                    .input(vswitchIds)\n                    .build()).result())\n                .build()).result() : vswitchCidrs.length() \u003c 1 ?  : StdFunctions.join(JoinArgs.builder()\n                .separator(\",\")\n                .input(vswitches.stream().map(element -\u003e element.id()).collect(toList()))\n                .build()).applyValue(_invoke -\u003e StdFunctions.split(SplitArgs.builder()\n                .separator(\",\")\n                .text(_invoke.result())\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .podVswitchIds(terwayVswitchIds.length() \u003e 0 ? StdFunctions.split(SplitArgs.builder()\n                .separator(\",\")\n                .text(StdFunctions.join(JoinArgs.builder()\n                    .separator(\",\")\n                    .input(terwayVswitchIds)\n                    .build()).result())\n                .build()).result() : terwayVswitchCidrs.length() \u003c 1 ?  : StdFunctions.join(JoinArgs.builder()\n                .separator(\",\")\n                .input(terwayVswitches.stream().map(element -\u003e element.id()).collect(toList()))\n                .build()).applyValue(_invoke -\u003e StdFunctions.split(SplitArgs.builder()\n                .separator(\",\")\n                .text(_invoke.result())\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .newNatGateway(true)\n            .proxyMode(proxyMode)\n            .serviceCidr(serviceCidr)\n            .skipSetCertificateAuthority(true)\n            .addons(            \n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"terway-eniip\")\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"csi-plugin\")\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"csi-provisioner\")\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"logtail-ds\")\n                    .config(serializeJson(\n                        jsonObject(\n                            jsonProperty(\"IngressDashboardEnabled\", \"true\")\n                        )))\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"nginx-ingress-controller\")\n                    .config(serializeJson(\n                        jsonObject(\n                            jsonProperty(\"IngressSlbNetworkType\", \"internet\")\n                        )))\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"arms-prometheus\")\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"ack-node-problem-detector\")\n                    .config(serializeJson(\n                        jsonObject(\n\n                        )))\n                    .build())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nACK Cluster with Auto Mode\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"auto-mode\";\n// Proxy mode is option of kube-proxy.\nconst proxyMode = config.get(\"proxyMode\") || \"ipvs\";\n// The kubernetes service cidr block.\nconst serviceCidr = config.get(\"serviceCidr\") || \"192.168.0.0/16\";\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst auto_mode = new alicloud.cs.ManagedKubernetes(\"auto-mode\", {\n    name: name,\n    clusterSpec: \"ack.pro.small\",\n    zoneIds: [enhanced.then(enhanced =\u003e enhanced.zones?.[0]?.zoneId)],\n    newNatGateway: true,\n    isEnterpriseSecurityGroup: true,\n    slbInternetEnabled: false,\n    skipSetCertificateAuthority: true,\n    proxyMode: proxyMode,\n    serviceCidr: serviceCidr,\n    ipStack: \"ipv4\",\n    deletionProtection: true,\n    autoMode: {\n        enabled: true,\n    },\n    maintenanceWindow: {\n        duration: \"3h\",\n        weeklyPeriod: \"Monday\",\n        enable: true,\n        maintenanceTime: \"2025-07-07T00:00:00.000+08:00\",\n    },\n    operationPolicy: {\n        clusterAutoUpgrade: {\n            channel: \"stable\",\n            enabled: true,\n        },\n    },\n    controlPlaneLogComponents: [\n        \"apiserver\",\n        \"kcm\",\n        \"scheduler\",\n        \"ccm\",\n        \"controlplane-events\",\n        \"alb\",\n        \"ack-goatscaler\",\n        \"coredns\",\n        \"gatekeeper\",\n    ],\n    controlPlaneLogTtl: \"30\",\n    auditLogConfig: {\n        enabled: true,\n    },\n    addons: [\n        {\n            name: \"metrics-server\",\n        },\n        {\n            name: \"managed-coredns\",\n        },\n        {\n            name: \"managed-security-inspector\",\n        },\n        {\n            name: \"ack-cost-exporter\",\n        },\n        {\n            name: \"terway-controlplane\",\n            config: JSON.stringify({\n                ENITrunking: \"true\",\n            }),\n        },\n        {\n            name: \"terway-eniip\",\n            config: JSON.stringify({\n                NetworkPolicy: \"false\",\n                ENITrunking: \"true\",\n                IPVlan: \"false\",\n            }),\n        },\n        {\n            name: \"csi-plugin\",\n        },\n        {\n            name: \"managed-csiprovisioner\",\n        },\n        {\n            name: \"storage-operator\",\n            config: JSON.stringify({\n                CnfsOssEnable: \"false\",\n                CnfsNasEnable: \"false\",\n            }),\n        },\n        {\n            name: \"loongcollector\",\n            config: JSON.stringify({\n                IngressDashboardEnabled: \"true\",\n            }),\n        },\n        {\n            name: \"ack-node-problem-detector\",\n            config: JSON.stringify({\n                sls_project_name: \"\",\n            }),\n        },\n        {\n            name: \"nginx-ingress-controller\",\n            disabled: true,\n        },\n        {\n            name: \"alb-ingress-controller\",\n            config: JSON.stringify({\n                albIngress: {\n                    CreateDefaultALBConfig: false,\n                },\n            }),\n        },\n        {\n            name: \"arms-prometheus\",\n            config: JSON.stringify({\n                prometheusMode: \"default\",\n            }),\n        },\n        {\n            name: \"alicloud-monitor-controller\",\n        },\n        {\n            name: \"managed-aliyun-acr-credential-helper\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"auto-mode\"\n# Proxy mode is option of kube-proxy.\nproxy_mode = config.get(\"proxyMode\")\nif proxy_mode is None:\n    proxy_mode = \"ipvs\"\n# The kubernetes service cidr block.\nservice_cidr = config.get(\"serviceCidr\")\nif service_cidr is None:\n    service_cidr = \"192.168.0.0/16\"\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\nauto_mode = alicloud.cs.ManagedKubernetes(\"auto-mode\",\n    name=name,\n    cluster_spec=\"ack.pro.small\",\n    zone_ids=[enhanced.zones[0].zone_id],\n    new_nat_gateway=True,\n    is_enterprise_security_group=True,\n    slb_internet_enabled=False,\n    skip_set_certificate_authority=True,\n    proxy_mode=proxy_mode,\n    service_cidr=service_cidr,\n    ip_stack=\"ipv4\",\n    deletion_protection=True,\n    auto_mode={\n        \"enabled\": True,\n    },\n    maintenance_window={\n        \"duration\": \"3h\",\n        \"weekly_period\": \"Monday\",\n        \"enable\": True,\n        \"maintenance_time\": \"2025-07-07T00:00:00.000+08:00\",\n    },\n    operation_policy={\n        \"cluster_auto_upgrade\": {\n            \"channel\": \"stable\",\n            \"enabled\": True,\n        },\n    },\n    control_plane_log_components=[\n        \"apiserver\",\n        \"kcm\",\n        \"scheduler\",\n        \"ccm\",\n        \"controlplane-events\",\n        \"alb\",\n        \"ack-goatscaler\",\n        \"coredns\",\n        \"gatekeeper\",\n    ],\n    control_plane_log_ttl=\"30\",\n    audit_log_config={\n        \"enabled\": True,\n    },\n    addons=[\n        {\n            \"name\": \"metrics-server\",\n        },\n        {\n            \"name\": \"managed-coredns\",\n        },\n        {\n            \"name\": \"managed-security-inspector\",\n        },\n        {\n            \"name\": \"ack-cost-exporter\",\n        },\n        {\n            \"name\": \"terway-controlplane\",\n            \"config\": json.dumps({\n                \"ENITrunking\": \"true\",\n            }),\n        },\n        {\n            \"name\": \"terway-eniip\",\n            \"config\": json.dumps({\n                \"NetworkPolicy\": \"false\",\n                \"ENITrunking\": \"true\",\n                \"IPVlan\": \"false\",\n            }),\n        },\n        {\n            \"name\": \"csi-plugin\",\n        },\n        {\n            \"name\": \"managed-csiprovisioner\",\n        },\n        {\n            \"name\": \"storage-operator\",\n            \"config\": json.dumps({\n                \"CnfsOssEnable\": \"false\",\n                \"CnfsNasEnable\": \"false\",\n            }),\n        },\n        {\n            \"name\": \"loongcollector\",\n            \"config\": json.dumps({\n                \"IngressDashboardEnabled\": \"true\",\n            }),\n        },\n        {\n            \"name\": \"ack-node-problem-detector\",\n            \"config\": json.dumps({\n                \"sls_project_name\": \"\",\n            }),\n        },\n        {\n            \"name\": \"nginx-ingress-controller\",\n            \"disabled\": True,\n        },\n        {\n            \"name\": \"alb-ingress-controller\",\n            \"config\": json.dumps({\n                \"albIngress\": {\n                    \"CreateDefaultALBConfig\": False,\n                },\n            }),\n        },\n        {\n            \"name\": \"arms-prometheus\",\n            \"config\": json.dumps({\n                \"prometheusMode\": \"default\",\n            }),\n        },\n        {\n            \"name\": \"alicloud-monitor-controller\",\n        },\n        {\n            \"name\": \"managed-aliyun-acr-credential-helper\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"auto-mode\";\n    // Proxy mode is option of kube-proxy.\n    var proxyMode = config.Get(\"proxyMode\") ?? \"ipvs\";\n    // The kubernetes service cidr block.\n    var serviceCidr = config.Get(\"serviceCidr\") ?? \"192.168.0.0/16\";\n    var enhanced = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var auto_mode = new AliCloud.CS.ManagedKubernetes(\"auto-mode\", new()\n    {\n        Name = name,\n        ClusterSpec = \"ack.pro.small\",\n        ZoneIds = new[]\n        {\n            enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId),\n        },\n        NewNatGateway = true,\n        IsEnterpriseSecurityGroup = true,\n        SlbInternetEnabled = false,\n        SkipSetCertificateAuthority = true,\n        ProxyMode = proxyMode,\n        ServiceCidr = serviceCidr,\n        IpStack = \"ipv4\",\n        DeletionProtection = true,\n        AutoMode = new AliCloud.CS.Inputs.ManagedKubernetesAutoModeArgs\n        {\n            Enabled = true,\n        },\n        MaintenanceWindow = new AliCloud.CS.Inputs.ManagedKubernetesMaintenanceWindowArgs\n        {\n            Duration = \"3h\",\n            WeeklyPeriod = \"Monday\",\n            Enable = true,\n            MaintenanceTime = \"2025-07-07T00:00:00.000+08:00\",\n        },\n        OperationPolicy = new AliCloud.CS.Inputs.ManagedKubernetesOperationPolicyArgs\n        {\n            ClusterAutoUpgrade = new AliCloud.CS.Inputs.ManagedKubernetesOperationPolicyClusterAutoUpgradeArgs\n            {\n                Channel = \"stable\",\n                Enabled = true,\n            },\n        },\n        ControlPlaneLogComponents = new[]\n        {\n            \"apiserver\",\n            \"kcm\",\n            \"scheduler\",\n            \"ccm\",\n            \"controlplane-events\",\n            \"alb\",\n            \"ack-goatscaler\",\n            \"coredns\",\n            \"gatekeeper\",\n        },\n        ControlPlaneLogTtl = \"30\",\n        AuditLogConfig = new AliCloud.CS.Inputs.ManagedKubernetesAuditLogConfigArgs\n        {\n            Enabled = true,\n        },\n        Addons = new[]\n        {\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"metrics-server\",\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"managed-coredns\",\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"managed-security-inspector\",\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"ack-cost-exporter\",\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"terway-controlplane\",\n                Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"ENITrunking\"] = \"true\",\n                }),\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"terway-eniip\",\n                Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"NetworkPolicy\"] = \"false\",\n                    [\"ENITrunking\"] = \"true\",\n                    [\"IPVlan\"] = \"false\",\n                }),\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"csi-plugin\",\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"managed-csiprovisioner\",\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"storage-operator\",\n                Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"CnfsOssEnable\"] = \"false\",\n                    [\"CnfsNasEnable\"] = \"false\",\n                }),\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"loongcollector\",\n                Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"IngressDashboardEnabled\"] = \"true\",\n                }),\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"ack-node-problem-detector\",\n                Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"sls_project_name\"] = \"\",\n                }),\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"nginx-ingress-controller\",\n                Disabled = true,\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"alb-ingress-controller\",\n                Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"albIngress\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"CreateDefaultALBConfig\"] = false,\n                    },\n                }),\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"arms-prometheus\",\n                Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"prometheusMode\"] = \"default\",\n                }),\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"alicloud-monitor-controller\",\n            },\n            new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = \"managed-aliyun-acr-credential-helper\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"auto-mode\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t// Proxy mode is option of kube-proxy.\n\t\tproxyMode := \"ipvs\"\n\t\tif param := cfg.Get(\"proxyMode\"); param != \"\" {\n\t\t\tproxyMode = param\n\t\t}\n\t\t// The kubernetes service cidr block.\n\t\tserviceCidr := \"192.168.0.0/16\"\n\t\tif param := cfg.Get(\"serviceCidr\"); param != \"\" {\n\t\t\tserviceCidr = param\n\t\t}\n\t\tenhanced, err := vpc.GetEnhancedNatAvailableZones(ctx, \u0026vpc.GetEnhancedNatAvailableZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"ENITrunking\": \"true\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"NetworkPolicy\": \"false\",\n\t\t\t\"ENITrunking\":   \"true\",\n\t\t\t\"IPVlan\":        \"false\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\ttmpJSON2, err := json.Marshal(map[string]interface{}{\n\t\t\t\"CnfsOssEnable\": \"false\",\n\t\t\t\"CnfsNasEnable\": \"false\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson2 := string(tmpJSON2)\n\t\ttmpJSON3, err := json.Marshal(map[string]interface{}{\n\t\t\t\"IngressDashboardEnabled\": \"true\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson3 := string(tmpJSON3)\n\t\ttmpJSON4, err := json.Marshal(map[string]interface{}{\n\t\t\t\"sls_project_name\": \"\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson4 := string(tmpJSON4)\n\t\ttmpJSON5, err := json.Marshal(map[string]interface{}{\n\t\t\t\"albIngress\": map[string]interface{}{\n\t\t\t\t\"CreateDefaultALBConfig\": false,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson5 := string(tmpJSON5)\n\t\ttmpJSON6, err := json.Marshal(map[string]interface{}{\n\t\t\t\"prometheusMode\": \"default\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson6 := string(tmpJSON6)\n\t\t_, err = cs.NewManagedKubernetes(ctx, \"auto-mode\", \u0026cs.ManagedKubernetesArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tClusterSpec: pulumi.String(\"ack.pro.small\"),\n\t\t\tZoneIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(enhanced.Zones[0].ZoneId),\n\t\t\t},\n\t\t\tNewNatGateway:               pulumi.Bool(true),\n\t\t\tIsEnterpriseSecurityGroup:   pulumi.Bool(true),\n\t\t\tSlbInternetEnabled:          pulumi.Bool(false),\n\t\t\tSkipSetCertificateAuthority: pulumi.Bool(true),\n\t\t\tProxyMode:                   pulumi.String(proxyMode),\n\t\t\tServiceCidr:                 pulumi.String(serviceCidr),\n\t\t\tIpStack:                     pulumi.String(\"ipv4\"),\n\t\t\tDeletionProtection:          pulumi.Bool(true),\n\t\t\tAutoMode: \u0026cs.ManagedKubernetesAutoModeArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t\tMaintenanceWindow: \u0026cs.ManagedKubernetesMaintenanceWindowArgs{\n\t\t\t\tDuration:        pulumi.String(\"3h\"),\n\t\t\t\tWeeklyPeriod:    pulumi.String(\"Monday\"),\n\t\t\t\tEnable:          pulumi.Bool(true),\n\t\t\t\tMaintenanceTime: pulumi.String(\"2025-07-07T00:00:00.000+08:00\"),\n\t\t\t},\n\t\t\tOperationPolicy: \u0026cs.ManagedKubernetesOperationPolicyArgs{\n\t\t\t\tClusterAutoUpgrade: \u0026cs.ManagedKubernetesOperationPolicyClusterAutoUpgradeArgs{\n\t\t\t\t\tChannel: pulumi.String(\"stable\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tControlPlaneLogComponents: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"apiserver\"),\n\t\t\t\tpulumi.String(\"kcm\"),\n\t\t\t\tpulumi.String(\"scheduler\"),\n\t\t\t\tpulumi.String(\"ccm\"),\n\t\t\t\tpulumi.String(\"controlplane-events\"),\n\t\t\t\tpulumi.String(\"alb\"),\n\t\t\t\tpulumi.String(\"ack-goatscaler\"),\n\t\t\t\tpulumi.String(\"coredns\"),\n\t\t\t\tpulumi.String(\"gatekeeper\"),\n\t\t\t},\n\t\t\tControlPlaneLogTtl: pulumi.String(\"30\"),\n\t\t\tAuditLogConfig: \u0026cs.ManagedKubernetesAuditLogConfigArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t\tAddons: cs.ManagedKubernetesAddonArray{\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName: pulumi.String(\"metrics-server\"),\n\t\t\t\t},\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName: pulumi.String(\"managed-coredns\"),\n\t\t\t\t},\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName: pulumi.String(\"managed-security-inspector\"),\n\t\t\t\t},\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName: pulumi.String(\"ack-cost-exporter\"),\n\t\t\t\t},\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName:   pulumi.String(\"terway-controlplane\"),\n\t\t\t\t\tConfig: pulumi.String(json0),\n\t\t\t\t},\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName:   pulumi.String(\"terway-eniip\"),\n\t\t\t\t\tConfig: pulumi.String(json1),\n\t\t\t\t},\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName: pulumi.String(\"csi-plugin\"),\n\t\t\t\t},\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName: pulumi.String(\"managed-csiprovisioner\"),\n\t\t\t\t},\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName:   pulumi.String(\"storage-operator\"),\n\t\t\t\t\tConfig: pulumi.String(json2),\n\t\t\t\t},\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName:   pulumi.String(\"loongcollector\"),\n\t\t\t\t\tConfig: pulumi.String(json3),\n\t\t\t\t},\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName:   pulumi.String(\"ack-node-problem-detector\"),\n\t\t\t\t\tConfig: pulumi.String(json4),\n\t\t\t\t},\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName:     pulumi.String(\"nginx-ingress-controller\"),\n\t\t\t\t\tDisabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName:   pulumi.String(\"alb-ingress-controller\"),\n\t\t\t\t\tConfig: pulumi.String(json5),\n\t\t\t\t},\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName:   pulumi.String(\"arms-prometheus\"),\n\t\t\t\t\tConfig: pulumi.String(json6),\n\t\t\t\t},\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName: pulumi.String(\"alicloud-monitor-controller\"),\n\t\t\t\t},\n\t\t\t\t\u0026cs.ManagedKubernetesAddonArgs{\n\t\t\t\t\tName: pulumi.String(\"managed-aliyun-acr-credential-helper\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.alicloud.cs.inputs.ManagedKubernetesAutoModeArgs;\nimport com.pulumi.alicloud.cs.inputs.ManagedKubernetesMaintenanceWindowArgs;\nimport com.pulumi.alicloud.cs.inputs.ManagedKubernetesOperationPolicyArgs;\nimport com.pulumi.alicloud.cs.inputs.ManagedKubernetesOperationPolicyClusterAutoUpgradeArgs;\nimport com.pulumi.alicloud.cs.inputs.ManagedKubernetesAuditLogConfigArgs;\nimport com.pulumi.alicloud.cs.inputs.ManagedKubernetesAddonArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"auto-mode\");\n        final var proxyMode = config.get(\"proxyMode\").orElse(\"ipvs\");\n        final var serviceCidr = config.get(\"serviceCidr\").orElse(\"192.168.0.0/16\");\n        final var enhanced = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        var auto_mode = new ManagedKubernetes(\"auto-mode\", ManagedKubernetesArgs.builder()\n            .name(name)\n            .clusterSpec(\"ack.pro.small\")\n            .zoneIds(enhanced.zones()[0].zoneId())\n            .newNatGateway(true)\n            .isEnterpriseSecurityGroup(true)\n            .slbInternetEnabled(false)\n            .skipSetCertificateAuthority(true)\n            .proxyMode(proxyMode)\n            .serviceCidr(serviceCidr)\n            .ipStack(\"ipv4\")\n            .deletionProtection(true)\n            .autoMode(ManagedKubernetesAutoModeArgs.builder()\n                .enabled(true)\n                .build())\n            .maintenanceWindow(ManagedKubernetesMaintenanceWindowArgs.builder()\n                .duration(\"3h\")\n                .weeklyPeriod(\"Monday\")\n                .enable(true)\n                .maintenanceTime(\"2025-07-07T00:00:00.000+08:00\")\n                .build())\n            .operationPolicy(ManagedKubernetesOperationPolicyArgs.builder()\n                .clusterAutoUpgrade(ManagedKubernetesOperationPolicyClusterAutoUpgradeArgs.builder()\n                    .channel(\"stable\")\n                    .enabled(true)\n                    .build())\n                .build())\n            .controlPlaneLogComponents(            \n                \"apiserver\",\n                \"kcm\",\n                \"scheduler\",\n                \"ccm\",\n                \"controlplane-events\",\n                \"alb\",\n                \"ack-goatscaler\",\n                \"coredns\",\n                \"gatekeeper\")\n            .controlPlaneLogTtl(\"30\")\n            .auditLogConfig(ManagedKubernetesAuditLogConfigArgs.builder()\n                .enabled(true)\n                .build())\n            .addons(            \n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"metrics-server\")\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"managed-coredns\")\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"managed-security-inspector\")\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"ack-cost-exporter\")\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"terway-controlplane\")\n                    .config(serializeJson(\n                        jsonObject(\n                            jsonProperty(\"ENITrunking\", \"true\")\n                        )))\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"terway-eniip\")\n                    .config(serializeJson(\n                        jsonObject(\n                            jsonProperty(\"NetworkPolicy\", \"false\"),\n                            jsonProperty(\"ENITrunking\", \"true\"),\n                            jsonProperty(\"IPVlan\", \"false\")\n                        )))\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"csi-plugin\")\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"managed-csiprovisioner\")\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"storage-operator\")\n                    .config(serializeJson(\n                        jsonObject(\n                            jsonProperty(\"CnfsOssEnable\", \"false\"),\n                            jsonProperty(\"CnfsNasEnable\", \"false\")\n                        )))\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"loongcollector\")\n                    .config(serializeJson(\n                        jsonObject(\n                            jsonProperty(\"IngressDashboardEnabled\", \"true\")\n                        )))\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"ack-node-problem-detector\")\n                    .config(serializeJson(\n                        jsonObject(\n                            jsonProperty(\"sls_project_name\", \"\")\n                        )))\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"nginx-ingress-controller\")\n                    .disabled(true)\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"alb-ingress-controller\")\n                    .config(serializeJson(\n                        jsonObject(\n                            jsonProperty(\"albIngress\", jsonObject(\n                                jsonProperty(\"CreateDefaultALBConfig\", false)\n                            ))\n                        )))\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"arms-prometheus\")\n                    .config(serializeJson(\n                        jsonObject(\n                            jsonProperty(\"prometheusMode\", \"default\")\n                        )))\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"alicloud-monitor-controller\")\n                    .build(),\n                ManagedKubernetesAddonArgs.builder()\n                    .name(\"managed-aliyun-acr-credential-helper\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: auto-mode\n  proxyMode:\n    type: string\n    default: ipvs\n  serviceCidr:\n    type: string\n    default: 192.168.0.0/16\nresources:\n  auto-mode:\n    type: alicloud:cs:ManagedKubernetes\n    properties:\n      name: ${name}\n      clusterSpec: ack.pro.small\n      zoneIds:\n        - ${enhanced.zones[0].zoneId}\n      newNatGateway: true\n      isEnterpriseSecurityGroup: true\n      slbInternetEnabled: false\n      skipSetCertificateAuthority: true\n      proxyMode: ${proxyMode}\n      serviceCidr: ${serviceCidr}\n      ipStack: ipv4\n      deletionProtection: true\n      autoMode:\n        enabled: true\n      maintenanceWindow:\n        duration: 3h\n        weeklyPeriod: Monday\n        enable: true\n        maintenanceTime: 2025-07-07T00:00:00.000+08:00\n      operationPolicy:\n        clusterAutoUpgrade:\n          channel: stable\n          enabled: true\n      controlPlaneLogComponents:\n        - apiserver\n        - kcm\n        - scheduler\n        - ccm\n        - controlplane-events\n        - alb\n        - ack-goatscaler\n        - coredns\n        - gatekeeper\n      controlPlaneLogTtl: '30'\n      auditLogConfig:\n        enabled: true\n      addons:\n        - name: metrics-server\n        - name: managed-coredns\n        - name: managed-security-inspector\n        - name: ack-cost-exporter\n        - name: terway-controlplane\n          config:\n            fn::toJSON:\n              ENITrunking: 'true'\n        - name: terway-eniip\n          config:\n            fn::toJSON:\n              NetworkPolicy: 'false'\n              ENITrunking: 'true'\n              IPVlan: 'false'\n        - name: csi-plugin\n        - name: managed-csiprovisioner\n        - name: storage-operator\n          config:\n            fn::toJSON:\n              CnfsOssEnable: 'false'\n              CnfsNasEnable: 'false'\n        - name: loongcollector\n          config:\n            fn::toJSON:\n              IngressDashboardEnabled: 'true'\n        - name: ack-node-problem-detector\n          config:\n            fn::toJSON:\n              sls_project_name: \"\"\n        - name: nginx-ingress-controller\n          disabled: true\n        - name: alb-ingress-controller\n          config:\n            fn::toJSON:\n              albIngress:\n                CreateDefaultALBConfig: false\n        - name: arms-prometheus\n          config:\n            fn::toJSON:\n              prometheusMode: default\n        - name: alicloud-monitor-controller\n        - name: managed-aliyun-acr-credential-helper\nvariables:\n  enhanced:\n    fn::invoke:\n      function: alicloud:vpc:getEnhancedNatAvailableZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nKubernetes managed cluster can be imported using the id, e.g. Then complete the main.tf accords to the result of `pulumi preview`.\n\n```sh\n$ pulumi import alicloud:cs/managedKubernetes:ManagedKubernetes main cluster_id\n```\n\n","properties":{"addons":{"type":"array","items":{"$ref":"#/types/alicloud:cs/ManagedKubernetesAddon:ManagedKubernetesAddon"},"description":"The addon you want to install in cluster. See \u003cspan pulumi-lang-nodejs=\"`addons`\" pulumi-lang-dotnet=\"`Addons`\" pulumi-lang-go=\"`addons`\" pulumi-lang-python=\"`addons`\" pulumi-lang-yaml=\"`addons`\" pulumi-lang-java=\"`addons`\"\u003e`addons`\u003c/span\u003e below. Only works for **Create** Operation, use resource\u003cspan pulumi-lang-nodejs=\" csKubernetesAddon \" pulumi-lang-dotnet=\" CsKubernetesAddon \" pulumi-lang-go=\" csKubernetesAddon \" pulumi-lang-python=\" cs_kubernetes_addon \" pulumi-lang-yaml=\" csKubernetesAddon \" pulumi-lang-java=\" csKubernetesAddon \"\u003e cs_kubernetes_addon \u003c/span\u003eto manage addons if cluster is created.\n"},"apiAudiences":{"type":"array","items":{"type":"string"},"description":"A list of API audiences for [Service Account Token Volume Projection](https://www.alibabacloud.com/help/doc-detail/160384.htm). Set this to `[\"https://kubernetes.default.svc\"]` if you want to enable the Token Volume Projection feature (requires specifying \u003cspan pulumi-lang-nodejs=\"`serviceAccountIssuer`\" pulumi-lang-dotnet=\"`ServiceAccountIssuer`\" pulumi-lang-go=\"`serviceAccountIssuer`\" pulumi-lang-python=\"`service_account_issuer`\" pulumi-lang-yaml=\"`serviceAccountIssuer`\" pulumi-lang-java=\"`serviceAccountIssuer`\"\u003e`service_account_issuer`\u003c/span\u003e as well. From cluster version 1.22, Service Account Token Volume Projection will be enabled by default.\n"},"auditLogConfig":{"$ref":"#/types/alicloud:cs/ManagedKubernetesAuditLogConfig:ManagedKubernetesAuditLogConfig","description":"Audit log configuration. See \u003cspan pulumi-lang-nodejs=\"`auditLogConfig`\" pulumi-lang-dotnet=\"`AuditLogConfig`\" pulumi-lang-go=\"`auditLogConfig`\" pulumi-lang-python=\"`audit_log_config`\" pulumi-lang-yaml=\"`auditLogConfig`\" pulumi-lang-java=\"`auditLogConfig`\"\u003e`audit_log_config`\u003c/span\u003e below.\n"},"autoMode":{"$ref":"#/types/alicloud:cs/ManagedKubernetesAutoMode:ManagedKubernetesAutoMode","description":"Auto mode cluster configuration. See \u003cspan pulumi-lang-nodejs=\"`autoMode`\" pulumi-lang-dotnet=\"`AutoMode`\" pulumi-lang-go=\"`autoMode`\" pulumi-lang-python=\"`auto_mode`\" pulumi-lang-yaml=\"`autoMode`\" pulumi-lang-java=\"`autoMode`\"\u003e`auto_mode`\u003c/span\u003e below.\n"},"certificateAuthority":{"$ref":"#/types/alicloud:cs/ManagedKubernetesCertificateAuthority:ManagedKubernetesCertificateAuthority","description":"(Map, Deprecated from v1.248.0) Nested attribute containing certificate authority data for your cluster. Please use the attribute\u003cspan pulumi-lang-nodejs=\" certificateAuthority \" pulumi-lang-dotnet=\" CertificateAuthority \" pulumi-lang-go=\" certificateAuthority \" pulumi-lang-python=\" certificate_authority \" pulumi-lang-yaml=\" certificateAuthority \" pulumi-lang-java=\" certificateAuthority \"\u003e certificate_authority \u003c/span\u003eof new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to replace it.\n","deprecationMessage":"Field 'certificate_authority' has been deprecated from provider version 1.248.0. Please use the attribute 'certificate_authority' of new DataSource 'alicloud_cs_cluster_credential' to replace it."},"clientCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-cert.pem) for replace it.\n","deprecationMessage":"Field 'client_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-cert.pem) for replace it."},"clientKey":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_key attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-key.pem) for replace it.\n","deprecationMessage":"Field 'client_key' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_key' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-key.pem) for replace it."},"clusterCaCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.cluster_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it.\n\n*Removed params*\n","deprecationMessage":"Field 'cluster_ca_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.cluster_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it."},"clusterDomain":{"type":"string","description":"Cluster local domain name, Default to `cluster.local`. A domain name consists of one or more sections separated by a decimal point (.), each of which is up to 63 characters long, and can be lowercase, numerals, and underscores (-), and must be lowercase or numerals at the beginning and end.\n"},"clusterSpec":{"type":"string","description":"The cluster specifications of kubernetes cluster,which can be empty. Valid values:\n* ack.standard : Basic managed clusters.\n* ack.pro.small : Professional managed clusters.\n"},"connections":{"$ref":"#/types/alicloud:cs/ManagedKubernetesConnections:ManagedKubernetesConnections","description":"Map of kubernetes cluster connection information.\n"},"controlPlaneLogComponents":{"type":"array","items":{"type":"string"},"description":"List of target components for which logs need to be collected. Supports \u003cspan pulumi-lang-nodejs=\"`apiserver`\" pulumi-lang-dotnet=\"`Apiserver`\" pulumi-lang-go=\"`apiserver`\" pulumi-lang-python=\"`apiserver`\" pulumi-lang-yaml=\"`apiserver`\" pulumi-lang-java=\"`apiserver`\"\u003e`apiserver`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kcm`\" pulumi-lang-dotnet=\"`Kcm`\" pulumi-lang-go=\"`kcm`\" pulumi-lang-python=\"`kcm`\" pulumi-lang-yaml=\"`kcm`\" pulumi-lang-java=\"`kcm`\"\u003e`kcm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`scheduler`\" pulumi-lang-dotnet=\"`Scheduler`\" pulumi-lang-go=\"`scheduler`\" pulumi-lang-python=\"`scheduler`\" pulumi-lang-yaml=\"`scheduler`\" pulumi-lang-java=\"`scheduler`\"\u003e`scheduler`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ccm`\" pulumi-lang-dotnet=\"`Ccm`\" pulumi-lang-go=\"`ccm`\" pulumi-lang-python=\"`ccm`\" pulumi-lang-yaml=\"`ccm`\" pulumi-lang-java=\"`ccm`\"\u003e`ccm`\u003c/span\u003e and `controlplane-events`.\n"},"controlPlaneLogProject":{"type":"string","description":"Control plane log project. If this field is not set, a log service project named k8s-log-{ClusterID} will be automatically created.\n"},"controlPlaneLogTtl":{"type":"string","description":"Control plane log retention duration (unit: day). Default \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e. If control plane logs are to be collected, \u003cspan pulumi-lang-nodejs=\"`controlPlaneLogTtl`\" pulumi-lang-dotnet=\"`ControlPlaneLogTtl`\" pulumi-lang-go=\"`controlPlaneLogTtl`\" pulumi-lang-python=\"`control_plane_log_ttl`\" pulumi-lang-yaml=\"`controlPlaneLogTtl`\" pulumi-lang-java=\"`controlPlaneLogTtl`\"\u003e`control_plane_log_ttl`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`controlPlaneLogComponents`\" pulumi-lang-dotnet=\"`ControlPlaneLogComponents`\" pulumi-lang-go=\"`controlPlaneLogComponents`\" pulumi-lang-python=\"`control_plane_log_components`\" pulumi-lang-yaml=\"`controlPlaneLogComponents`\" pulumi-lang-java=\"`controlPlaneLogComponents`\"\u003e`control_plane_log_components`\u003c/span\u003e must be specified.\n"},"customSan":{"type":"string","description":"Customize the certificate SAN, multiple IP or domain names are separated by English commas (,).\n\u003e **NOTE:** Make sure you have specified all certificate SANs before updating. Updating this field will lead APIServer to restart.\n"},"deleteOptions":{"type":"array","items":{"$ref":"#/types/alicloud:cs/ManagedKubernetesDeleteOption:ManagedKubernetesDeleteOption"},"description":"Delete options, only work for deleting resource. Make sure you have run `pulumi up` to make the configuration applied. See \u003cspan pulumi-lang-nodejs=\"`deleteOptions`\" pulumi-lang-dotnet=\"`DeleteOptions`\" pulumi-lang-go=\"`deleteOptions`\" pulumi-lang-python=\"`delete_options`\" pulumi-lang-yaml=\"`deleteOptions`\" pulumi-lang-java=\"`deleteOptions`\"\u003e`delete_options`\u003c/span\u003e below.\n"},"deletionProtection":{"type":"boolean","description":"Whether to enable cluster deletion protection.\n"},"enableRrsa":{"type":"boolean","description":"Whether to enable cluster to support RRSA for kubernetes version 1.22.3+. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Once the RRSA function is turned on, it is not allowed to turn off. If your cluster has enabled this function, please manually modify your tf file and add the rrsa configuration to the file, learn more [RAM Roles for Service Accounts](https://www.alibabacloud.com/help/zh/container-service-for-kubernetes/latest/use-rrsa-to-enforce-access-control).\n"},"encryptionProviderKey":{"type":"string","description":"The ID of the Key Management Service (KMS) key that is used to encrypt Kubernetes Secrets.\n"},"ipStack":{"type":"string","description":"The IP address family that the cluster network uses. Valid values:\n"},"isEnterpriseSecurityGroup":{"type":"boolean","description":"Enable to create advanced security group. default: false. Only works for **Create** Operation. See [Advanced security group](https://www.alibabacloud.com/help/doc-detail/120621.htm).\n"},"loadBalancerSpec":{"type":"string","description":"The cluster api server load balancer instance specification. For more information on how to select a LB instance specification, see [SLB instance overview](https://help.aliyun.com/document_detail/85931.html). Only works for **Create** Operation. The spec will not take effect because the charge of the load balancer has been changed to PayByCLCU.\n","deprecationMessage":"Field 'load_balancer_spec' has been deprecated from provider version 1.232.0. The spec will not take effect because the charge of the load balancer has been changed to PayByCLCU"},"maintenanceWindow":{"$ref":"#/types/alicloud:cs/ManagedKubernetesMaintenanceWindow:ManagedKubernetesMaintenanceWindow","description":"The cluster maintenance window. Managed node pool will use it. See \u003cspan pulumi-lang-nodejs=\"`maintenanceWindow`\" pulumi-lang-dotnet=\"`MaintenanceWindow`\" pulumi-lang-go=\"`maintenanceWindow`\" pulumi-lang-python=\"`maintenance_window`\" pulumi-lang-yaml=\"`maintenanceWindow`\" pulumi-lang-java=\"`maintenanceWindow`\"\u003e`maintenance_window`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The kubernetes cluster's name. It is unique in one Alicloud account.\n"},"namePrefix":{"type":"string","description":"The kubernetes cluster name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e. If it is specified, terraform will use it to build the only cluster name. Default to \"Terraform-Creation\".\n"},"natGatewayId":{"type":"string","description":"The ID of nat gateway used to launch kubernetes cluster.\n"},"newNatGateway":{"type":"boolean","description":"Whether to create a new nat gateway while creating kubernetes cluster. Default to true. Then openapi in Alibaba Cloud are not all on intranet, So turn this option on is a good choice. Only works for **Create** Operation.\n"},"nodeCidrMask":{"type":"integer","description":"The node cidr block to specific how many pods can run on single node. 24-28 is allowed. 24 means 2^(32-24)-1=255 and the node can run at most 255 pods. default: 24\n"},"operationPolicy":{"$ref":"#/types/alicloud:cs/ManagedKubernetesOperationPolicy:ManagedKubernetesOperationPolicy","description":"The cluster automatic operation policy, only works when \u003cspan pulumi-lang-nodejs=\"`maintenanceWindow`\" pulumi-lang-dotnet=\"`MaintenanceWindow`\" pulumi-lang-go=\"`maintenanceWindow`\" pulumi-lang-python=\"`maintenance_window`\" pulumi-lang-yaml=\"`maintenanceWindow`\" pulumi-lang-java=\"`maintenanceWindow`\"\u003e`maintenance_window`\u003c/span\u003e is enabled. See \u003cspan pulumi-lang-nodejs=\"`operationPolicy`\" pulumi-lang-dotnet=\"`OperationPolicy`\" pulumi-lang-go=\"`operationPolicy`\" pulumi-lang-python=\"`operation_policy`\" pulumi-lang-yaml=\"`operationPolicy`\" pulumi-lang-java=\"`operationPolicy`\"\u003e`operation_policy`\u003c/span\u003e below.\n"},"podCidr":{"type":"string","description":"[Flannel Specific] The CIDR block for the pod network when using Flannel.\n"},"podVswitchIds":{"type":"array","items":{"type":"string"},"description":"[Terway Specific] The vswitches for the pod network when using Terway. It is recommended that \u003cspan pulumi-lang-nodejs=\"`podVswitchIds`\" pulumi-lang-dotnet=\"`PodVswitchIds`\" pulumi-lang-go=\"`podVswitchIds`\" pulumi-lang-python=\"`pod_vswitch_ids`\" pulumi-lang-yaml=\"`podVswitchIds`\" pulumi-lang-java=\"`podVswitchIds`\"\u003e`pod_vswitch_ids`\u003c/span\u003e is not belong to \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e but must be in same availability zones. Only works for **Create** Operation.\n"},"profile":{"type":"string","description":"The profile of cluster. Valid values:\n* `Default`: ACK managed cluster. ACK managed clusters include ACK Basic clusters and ACK Pro clusters.\n* `Edge`: ACK Edge cluster. ACK Edge clusters include ACK Edge Basic clusters and ACK Edge Pro clusters.\n* `Serverless`: ACK Serverless cluster. ACK Serverless clusters include ACK Serverless Basic clusters and ACK Serverless Pro clusters.\n* `Acs`: ACS cluster.\n"},"proxyMode":{"type":"string","description":"Proxy mode is option of kube-proxy. options: iptables|ipvs. default: ipvs.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group,by default these cloud resources are automatically assigned to the default resource group.\n"},"retainResources":{"type":"array","items":{"type":"string"},"description":"Resources that are automatically created during cluster creation, including NAT gateways, SNAT rules, SLB instances, and RAM Role, will be deleted. Resources that are manually created after you create the cluster, such as SLB instances for Services, will also be deleted. If you need to retain resources, please configure with \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e. There are several aspects to pay attention to when using \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e to retain resources. After configuring \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e into the terraform configuration manifest file, you first need to run `pulumi up`.Then execute `terraform destroy`.\n"},"rrsaMetadata":{"$ref":"#/types/alicloud:cs/ManagedKubernetesRrsaMetadata:ManagedKubernetesRrsaMetadata","description":"(Optional, Available since v1.185.0) Nested attribute containing RRSA related data for your cluster.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group to which the ECS instances in the cluster belong. If it is not specified, a new Security group will be built.\n* \u003e **NOTE:** Please take of note before updating the \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e:\n* If block rules are configured in the security group, ensure the security group rules allow traffic for protocols and ports required by the cluster. For recommended security group rules, see [Configure and manage security groups for an ACK cluster](https://www.alibabacloud.com/help/en/ack/ack-managed-and-ack-dedicated/user-guide/configure-security-group-rules-to-enforce-access-control-on-ack-clusters).\n* During security group updates, the cluster control plane and managed components (e.g., terway-controlplane) will restart briefly. Perform this operation during off-peak hours.\n* After updating the control plane security group, the Elastic Network Interfaces (ENIs) used by the control plane and managed components will automatically join the new security group.\n"},"serviceAccountIssuer":{"type":"string","description":"The issuer of the Service Account token for [Service Account Token Volume Projection](https://www.alibabacloud.com/help/doc-detail/160384.htm), corresponds to the \u003cspan pulumi-lang-nodejs=\"`iss`\" pulumi-lang-dotnet=\"`Iss`\" pulumi-lang-go=\"`iss`\" pulumi-lang-python=\"`iss`\" pulumi-lang-yaml=\"`iss`\" pulumi-lang-java=\"`iss`\"\u003e`iss`\u003c/span\u003e field in the token payload. Set this to `\"https://kubernetes.default.svc\"` to enable the Token Volume Projection feature (requires specifying \u003cspan pulumi-lang-nodejs=\"`apiAudiences`\" pulumi-lang-dotnet=\"`ApiAudiences`\" pulumi-lang-go=\"`apiAudiences`\" pulumi-lang-python=\"`api_audiences`\" pulumi-lang-yaml=\"`apiAudiences`\" pulumi-lang-java=\"`apiAudiences`\"\u003e`api_audiences`\u003c/span\u003e as well). From cluster version 1.22, Service Account Token Volume Projection will be enabled by default.\n"},"serviceCidr":{"type":"string","description":"The CIDR block for the service network. It cannot be duplicated with the VPC CIDR and CIDR used by Kubernetes cluster in VPC, cannot be modified after creation.\n"},"skipSetCertificateAuthority":{"type":"boolean","description":"Configure whether to save certificate authority data for your cluster to attribute \u003cspan pulumi-lang-nodejs=\"`certificateAuthority`\" pulumi-lang-dotnet=\"`CertificateAuthority`\" pulumi-lang-go=\"`certificateAuthority`\" pulumi-lang-python=\"`certificate_authority`\" pulumi-lang-yaml=\"`certificateAuthority`\" pulumi-lang-java=\"`certificateAuthority`\"\u003e`certificate_authority`\u003c/span\u003e. For cluster security, recommended configuration as \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Will be removed with attribute\u003cspan pulumi-lang-nodejs=\" certificateAuthority \" pulumi-lang-dotnet=\" CertificateAuthority \" pulumi-lang-go=\" certificateAuthority \" pulumi-lang-python=\" certificate_authority \" pulumi-lang-yaml=\" certificateAuthority \" pulumi-lang-java=\" certificateAuthority \"\u003e certificate_authority \u003c/span\u003eremoved.\n"},"slbId":{"type":"string","description":"The ID of APIServer load balancer.\n"},"slbInternet":{"type":"string","description":"The public ip of load balancer.\n"},"slbInternetEnabled":{"type":"boolean","description":"Whether to create internet load balancer for API Server. Default to true. Only works for **Create** Operation.\n"},"slbIntranet":{"type":"string","description":"The ID of private load balancer where the current cluster master node is located.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Default nil, A map of tags assigned to the kubernetes cluster and work nodes. See \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e below.\n"},"timezone":{"type":"string","description":"Cluster timezone, works for control plane and Worker nodes.\n* \u003e **NOTE:** Please take of note before updating the \u003cspan pulumi-lang-nodejs=\"`timezone`\" pulumi-lang-dotnet=\"`Timezone`\" pulumi-lang-go=\"`timezone`\" pulumi-lang-python=\"`timezone`\" pulumi-lang-yaml=\"`timezone`\" pulumi-lang-java=\"`timezone`\"\u003e`timezone`\u003c/span\u003e:\n* After modifying the timezone, cluster inspection configurations will adopt the new timezone.\n* During timezone updates, the cluster control plane and managed components (e.g., terway-controlplane) will restart briefly. Perform this operation during off-peak hours.\n* After updating the timezone: Newly scaled-out nodes will automatically apply the new timezone. Existing nodes remain unaffected. Reset the node to apply changes to existing nodes.\n"},"upgradePolicy":{"$ref":"#/types/alicloud:cs/ManagedKubernetesUpgradePolicy:ManagedKubernetesUpgradePolicy","description":"Configuration block for cluster upgrade operations. See \u003cspan pulumi-lang-nodejs=\"`upgradePolicy`\" pulumi-lang-dotnet=\"`UpgradePolicy`\" pulumi-lang-go=\"`upgradePolicy`\" pulumi-lang-python=\"`upgrade_policy`\" pulumi-lang-yaml=\"`upgradePolicy`\" pulumi-lang-java=\"`upgradePolicy`\"\u003e`upgrade_policy`\u003c/span\u003e below.\n\u003e **NOTE:** This parameter only applies during resource update.\n\n*Network params*\n"},"userCa":{"type":"string","description":"The path of customized CA cert, you can use this CA to sign client certs to connect your cluster.\n"},"version":{"type":"string","description":"Desired Kubernetes version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except you set a higher version number. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by ACK. Do not specify if cluster auto upgrade is enabled, see\u003cspan pulumi-lang-nodejs=\" clusterAutoUpgrade \" pulumi-lang-dotnet=\" ClusterAutoUpgrade \" pulumi-lang-go=\" clusterAutoUpgrade \" pulumi-lang-python=\" cluster_auto_upgrade \" pulumi-lang-yaml=\" clusterAutoUpgrade \" pulumi-lang-java=\" clusterAutoUpgrade \"\u003e cluster_auto_upgrade \u003c/span\u003efor more information.\n"},"vpcId":{"type":"string","description":"The ID of VPC where the current cluster is located.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vSwitches of the control plane.\n\u003e **NOTE:** Please take of note before updating the \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e:\n* This parameter overwrites the existing configuration. You must specify all vSwitches of the control plane.\n* The control plane restarts during the change process. Exercise caution when you perform this operation.\n* Ensure that all security groups of the cluster, including the security groups of the control plane, all node pools, and container network, are allowed to access the CIDR blocks of the new vSwitches. This ensures that the nodes and containers can connect to the API server.\n* If the new vSwitches of the control plane are configured with an ACL, ensure that the ACL allows communication between the new vSwitches and CIDR blocks such as those of the cluster nodes and the container network.\n"},"workerRamRoleName":{"type":"string","description":"The RamRole Name attached to worker node.\n"},"workerVswitchIds":{"type":"array","items":{"type":"string"},"description":"The vSwitches used by control plane. Modification after creation will not take effect. Please use \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e to managed control plane vSwitches, which supports modifying control plane vSwitches.\n","deprecationMessage":"Field 'worker_vswitch_ids' has been deprecated from provider version 1.241.0. Please use 'vswitch_ids' to managed control plane vswtiches"},"zoneIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the zone in which the cluster control plane is deployed. ACK automatically creates a VPC in the region and vSwitches in the specified zones. Only works for **Create** Operation. Do not specify this with \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e together.\n"}},"required":["auditLogConfig","certificateAuthority","clusterSpec","connections","controlPlaneLogProject","controlPlaneLogTtl","deletionProtection","ipStack","isEnterpriseSecurityGroup","loadBalancerSpec","maintenanceWindow","name","natGatewayId","operationPolicy","profile","resourceGroupId","rrsaMetadata","securityGroupId","slbId","slbInternet","slbIntranet","version","vpcId","vswitchIds","workerRamRoleName"],"inputProperties":{"addons":{"type":"array","items":{"$ref":"#/types/alicloud:cs/ManagedKubernetesAddon:ManagedKubernetesAddon"},"description":"The addon you want to install in cluster. See \u003cspan pulumi-lang-nodejs=\"`addons`\" pulumi-lang-dotnet=\"`Addons`\" pulumi-lang-go=\"`addons`\" pulumi-lang-python=\"`addons`\" pulumi-lang-yaml=\"`addons`\" pulumi-lang-java=\"`addons`\"\u003e`addons`\u003c/span\u003e below. Only works for **Create** Operation, use resource\u003cspan pulumi-lang-nodejs=\" csKubernetesAddon \" pulumi-lang-dotnet=\" CsKubernetesAddon \" pulumi-lang-go=\" csKubernetesAddon \" pulumi-lang-python=\" cs_kubernetes_addon \" pulumi-lang-yaml=\" csKubernetesAddon \" pulumi-lang-java=\" csKubernetesAddon \"\u003e cs_kubernetes_addon \u003c/span\u003eto manage addons if cluster is created.\n"},"apiAudiences":{"type":"array","items":{"type":"string"},"description":"A list of API audiences for [Service Account Token Volume Projection](https://www.alibabacloud.com/help/doc-detail/160384.htm). Set this to `[\"https://kubernetes.default.svc\"]` if you want to enable the Token Volume Projection feature (requires specifying \u003cspan pulumi-lang-nodejs=\"`serviceAccountIssuer`\" pulumi-lang-dotnet=\"`ServiceAccountIssuer`\" pulumi-lang-go=\"`serviceAccountIssuer`\" pulumi-lang-python=\"`service_account_issuer`\" pulumi-lang-yaml=\"`serviceAccountIssuer`\" pulumi-lang-java=\"`serviceAccountIssuer`\"\u003e`service_account_issuer`\u003c/span\u003e as well. From cluster version 1.22, Service Account Token Volume Projection will be enabled by default.\n","willReplaceOnChanges":true},"auditLogConfig":{"$ref":"#/types/alicloud:cs/ManagedKubernetesAuditLogConfig:ManagedKubernetesAuditLogConfig","description":"Audit log configuration. See \u003cspan pulumi-lang-nodejs=\"`auditLogConfig`\" pulumi-lang-dotnet=\"`AuditLogConfig`\" pulumi-lang-go=\"`auditLogConfig`\" pulumi-lang-python=\"`audit_log_config`\" pulumi-lang-yaml=\"`auditLogConfig`\" pulumi-lang-java=\"`auditLogConfig`\"\u003e`audit_log_config`\u003c/span\u003e below.\n"},"autoMode":{"$ref":"#/types/alicloud:cs/ManagedKubernetesAutoMode:ManagedKubernetesAutoMode","description":"Auto mode cluster configuration. See \u003cspan pulumi-lang-nodejs=\"`autoMode`\" pulumi-lang-dotnet=\"`AutoMode`\" pulumi-lang-go=\"`autoMode`\" pulumi-lang-python=\"`auto_mode`\" pulumi-lang-yaml=\"`autoMode`\" pulumi-lang-java=\"`autoMode`\"\u003e`auto_mode`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"clientCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-cert.pem) for replace it.\n","deprecationMessage":"Field 'client_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-cert.pem) for replace it."},"clientKey":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_key attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-key.pem) for replace it.\n","deprecationMessage":"Field 'client_key' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_key' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-key.pem) for replace it."},"clusterCaCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.cluster_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it.\n\n*Removed params*\n","deprecationMessage":"Field 'cluster_ca_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.cluster_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it."},"clusterDomain":{"type":"string","description":"Cluster local domain name, Default to `cluster.local`. A domain name consists of one or more sections separated by a decimal point (.), each of which is up to 63 characters long, and can be lowercase, numerals, and underscores (-), and must be lowercase or numerals at the beginning and end.\n","willReplaceOnChanges":true},"clusterSpec":{"type":"string","description":"The cluster specifications of kubernetes cluster,which can be empty. Valid values:\n* ack.standard : Basic managed clusters.\n* ack.pro.small : Professional managed clusters.\n"},"controlPlaneLogComponents":{"type":"array","items":{"type":"string"},"description":"List of target components for which logs need to be collected. Supports \u003cspan pulumi-lang-nodejs=\"`apiserver`\" pulumi-lang-dotnet=\"`Apiserver`\" pulumi-lang-go=\"`apiserver`\" pulumi-lang-python=\"`apiserver`\" pulumi-lang-yaml=\"`apiserver`\" pulumi-lang-java=\"`apiserver`\"\u003e`apiserver`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kcm`\" pulumi-lang-dotnet=\"`Kcm`\" pulumi-lang-go=\"`kcm`\" pulumi-lang-python=\"`kcm`\" pulumi-lang-yaml=\"`kcm`\" pulumi-lang-java=\"`kcm`\"\u003e`kcm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`scheduler`\" pulumi-lang-dotnet=\"`Scheduler`\" pulumi-lang-go=\"`scheduler`\" pulumi-lang-python=\"`scheduler`\" pulumi-lang-yaml=\"`scheduler`\" pulumi-lang-java=\"`scheduler`\"\u003e`scheduler`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ccm`\" pulumi-lang-dotnet=\"`Ccm`\" pulumi-lang-go=\"`ccm`\" pulumi-lang-python=\"`ccm`\" pulumi-lang-yaml=\"`ccm`\" pulumi-lang-java=\"`ccm`\"\u003e`ccm`\u003c/span\u003e and `controlplane-events`.\n"},"controlPlaneLogProject":{"type":"string","description":"Control plane log project. If this field is not set, a log service project named k8s-log-{ClusterID} will be automatically created.\n"},"controlPlaneLogTtl":{"type":"string","description":"Control plane log retention duration (unit: day). Default \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e. If control plane logs are to be collected, \u003cspan pulumi-lang-nodejs=\"`controlPlaneLogTtl`\" pulumi-lang-dotnet=\"`ControlPlaneLogTtl`\" pulumi-lang-go=\"`controlPlaneLogTtl`\" pulumi-lang-python=\"`control_plane_log_ttl`\" pulumi-lang-yaml=\"`controlPlaneLogTtl`\" pulumi-lang-java=\"`controlPlaneLogTtl`\"\u003e`control_plane_log_ttl`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`controlPlaneLogComponents`\" pulumi-lang-dotnet=\"`ControlPlaneLogComponents`\" pulumi-lang-go=\"`controlPlaneLogComponents`\" pulumi-lang-python=\"`control_plane_log_components`\" pulumi-lang-yaml=\"`controlPlaneLogComponents`\" pulumi-lang-java=\"`controlPlaneLogComponents`\"\u003e`control_plane_log_components`\u003c/span\u003e must be specified.\n"},"customSan":{"type":"string","description":"Customize the certificate SAN, multiple IP or domain names are separated by English commas (,).\n\u003e **NOTE:** Make sure you have specified all certificate SANs before updating. Updating this field will lead APIServer to restart.\n"},"deleteOptions":{"type":"array","items":{"$ref":"#/types/alicloud:cs/ManagedKubernetesDeleteOption:ManagedKubernetesDeleteOption"},"description":"Delete options, only work for deleting resource. Make sure you have run `pulumi up` to make the configuration applied. See \u003cspan pulumi-lang-nodejs=\"`deleteOptions`\" pulumi-lang-dotnet=\"`DeleteOptions`\" pulumi-lang-go=\"`deleteOptions`\" pulumi-lang-python=\"`delete_options`\" pulumi-lang-yaml=\"`deleteOptions`\" pulumi-lang-java=\"`deleteOptions`\"\u003e`delete_options`\u003c/span\u003e below.\n"},"deletionProtection":{"type":"boolean","description":"Whether to enable cluster deletion protection.\n"},"enableRrsa":{"type":"boolean","description":"Whether to enable cluster to support RRSA for kubernetes version 1.22.3+. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Once the RRSA function is turned on, it is not allowed to turn off. If your cluster has enabled this function, please manually modify your tf file and add the rrsa configuration to the file, learn more [RAM Roles for Service Accounts](https://www.alibabacloud.com/help/zh/container-service-for-kubernetes/latest/use-rrsa-to-enforce-access-control).\n"},"encryptionProviderKey":{"type":"string","description":"The ID of the Key Management Service (KMS) key that is used to encrypt Kubernetes Secrets.\n","willReplaceOnChanges":true},"ipStack":{"type":"string","description":"The IP address family that the cluster network uses. Valid values:\n","willReplaceOnChanges":true},"isEnterpriseSecurityGroup":{"type":"boolean","description":"Enable to create advanced security group. default: false. Only works for **Create** Operation. See [Advanced security group](https://www.alibabacloud.com/help/doc-detail/120621.htm).\n"},"loadBalancerSpec":{"type":"string","description":"The cluster api server load balancer instance specification. For more information on how to select a LB instance specification, see [SLB instance overview](https://help.aliyun.com/document_detail/85931.html). Only works for **Create** Operation. The spec will not take effect because the charge of the load balancer has been changed to PayByCLCU.\n","deprecationMessage":"Field 'load_balancer_spec' has been deprecated from provider version 1.232.0. The spec will not take effect because the charge of the load balancer has been changed to PayByCLCU"},"maintenanceWindow":{"$ref":"#/types/alicloud:cs/ManagedKubernetesMaintenanceWindow:ManagedKubernetesMaintenanceWindow","description":"The cluster maintenance window. Managed node pool will use it. See \u003cspan pulumi-lang-nodejs=\"`maintenanceWindow`\" pulumi-lang-dotnet=\"`MaintenanceWindow`\" pulumi-lang-go=\"`maintenanceWindow`\" pulumi-lang-python=\"`maintenance_window`\" pulumi-lang-yaml=\"`maintenanceWindow`\" pulumi-lang-java=\"`maintenanceWindow`\"\u003e`maintenance_window`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The kubernetes cluster's name. It is unique in one Alicloud account.\n"},"namePrefix":{"type":"string","description":"The kubernetes cluster name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e. If it is specified, terraform will use it to build the only cluster name. Default to \"Terraform-Creation\".\n"},"newNatGateway":{"type":"boolean","description":"Whether to create a new nat gateway while creating kubernetes cluster. Default to true. Then openapi in Alibaba Cloud are not all on intranet, So turn this option on is a good choice. Only works for **Create** Operation.\n"},"nodeCidrMask":{"type":"integer","description":"The node cidr block to specific how many pods can run on single node. 24-28 is allowed. 24 means 2^(32-24)-1=255 and the node can run at most 255 pods. default: 24\n","willReplaceOnChanges":true},"operationPolicy":{"$ref":"#/types/alicloud:cs/ManagedKubernetesOperationPolicy:ManagedKubernetesOperationPolicy","description":"The cluster automatic operation policy, only works when \u003cspan pulumi-lang-nodejs=\"`maintenanceWindow`\" pulumi-lang-dotnet=\"`MaintenanceWindow`\" pulumi-lang-go=\"`maintenanceWindow`\" pulumi-lang-python=\"`maintenance_window`\" pulumi-lang-yaml=\"`maintenanceWindow`\" pulumi-lang-java=\"`maintenanceWindow`\"\u003e`maintenance_window`\u003c/span\u003e is enabled. See \u003cspan pulumi-lang-nodejs=\"`operationPolicy`\" pulumi-lang-dotnet=\"`OperationPolicy`\" pulumi-lang-go=\"`operationPolicy`\" pulumi-lang-python=\"`operation_policy`\" pulumi-lang-yaml=\"`operationPolicy`\" pulumi-lang-java=\"`operationPolicy`\"\u003e`operation_policy`\u003c/span\u003e below.\n"},"podCidr":{"type":"string","description":"[Flannel Specific] The CIDR block for the pod network when using Flannel.\n","willReplaceOnChanges":true},"podVswitchIds":{"type":"array","items":{"type":"string"},"description":"[Terway Specific] The vswitches for the pod network when using Terway. It is recommended that \u003cspan pulumi-lang-nodejs=\"`podVswitchIds`\" pulumi-lang-dotnet=\"`PodVswitchIds`\" pulumi-lang-go=\"`podVswitchIds`\" pulumi-lang-python=\"`pod_vswitch_ids`\" pulumi-lang-yaml=\"`podVswitchIds`\" pulumi-lang-java=\"`podVswitchIds`\"\u003e`pod_vswitch_ids`\u003c/span\u003e is not belong to \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e but must be in same availability zones. Only works for **Create** Operation.\n"},"profile":{"type":"string","description":"The profile of cluster. Valid values:\n* `Default`: ACK managed cluster. ACK managed clusters include ACK Basic clusters and ACK Pro clusters.\n* `Edge`: ACK Edge cluster. ACK Edge clusters include ACK Edge Basic clusters and ACK Edge Pro clusters.\n* `Serverless`: ACK Serverless cluster. ACK Serverless clusters include ACK Serverless Basic clusters and ACK Serverless Pro clusters.\n* `Acs`: ACS cluster.\n","willReplaceOnChanges":true},"proxyMode":{"type":"string","description":"Proxy mode is option of kube-proxy. options: iptables|ipvs. default: ipvs.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group,by default these cloud resources are automatically assigned to the default resource group.\n"},"retainResources":{"type":"array","items":{"type":"string"},"description":"Resources that are automatically created during cluster creation, including NAT gateways, SNAT rules, SLB instances, and RAM Role, will be deleted. Resources that are manually created after you create the cluster, such as SLB instances for Services, will also be deleted. If you need to retain resources, please configure with \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e. There are several aspects to pay attention to when using \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e to retain resources. After configuring \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e into the terraform configuration manifest file, you first need to run `pulumi up`.Then execute `terraform destroy`.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group to which the ECS instances in the cluster belong. If it is not specified, a new Security group will be built.\n* \u003e **NOTE:** Please take of note before updating the \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e:\n* If block rules are configured in the security group, ensure the security group rules allow traffic for protocols and ports required by the cluster. For recommended security group rules, see [Configure and manage security groups for an ACK cluster](https://www.alibabacloud.com/help/en/ack/ack-managed-and-ack-dedicated/user-guide/configure-security-group-rules-to-enforce-access-control-on-ack-clusters).\n* During security group updates, the cluster control plane and managed components (e.g., terway-controlplane) will restart briefly. Perform this operation during off-peak hours.\n* After updating the control plane security group, the Elastic Network Interfaces (ENIs) used by the control plane and managed components will automatically join the new security group.\n"},"serviceAccountIssuer":{"type":"string","description":"The issuer of the Service Account token for [Service Account Token Volume Projection](https://www.alibabacloud.com/help/doc-detail/160384.htm), corresponds to the \u003cspan pulumi-lang-nodejs=\"`iss`\" pulumi-lang-dotnet=\"`Iss`\" pulumi-lang-go=\"`iss`\" pulumi-lang-python=\"`iss`\" pulumi-lang-yaml=\"`iss`\" pulumi-lang-java=\"`iss`\"\u003e`iss`\u003c/span\u003e field in the token payload. Set this to `\"https://kubernetes.default.svc\"` to enable the Token Volume Projection feature (requires specifying \u003cspan pulumi-lang-nodejs=\"`apiAudiences`\" pulumi-lang-dotnet=\"`ApiAudiences`\" pulumi-lang-go=\"`apiAudiences`\" pulumi-lang-python=\"`api_audiences`\" pulumi-lang-yaml=\"`apiAudiences`\" pulumi-lang-java=\"`apiAudiences`\"\u003e`api_audiences`\u003c/span\u003e as well). From cluster version 1.22, Service Account Token Volume Projection will be enabled by default.\n","willReplaceOnChanges":true},"serviceCidr":{"type":"string","description":"The CIDR block for the service network. It cannot be duplicated with the VPC CIDR and CIDR used by Kubernetes cluster in VPC, cannot be modified after creation.\n","willReplaceOnChanges":true},"skipSetCertificateAuthority":{"type":"boolean","description":"Configure whether to save certificate authority data for your cluster to attribute \u003cspan pulumi-lang-nodejs=\"`certificateAuthority`\" pulumi-lang-dotnet=\"`CertificateAuthority`\" pulumi-lang-go=\"`certificateAuthority`\" pulumi-lang-python=\"`certificate_authority`\" pulumi-lang-yaml=\"`certificateAuthority`\" pulumi-lang-java=\"`certificateAuthority`\"\u003e`certificate_authority`\u003c/span\u003e. For cluster security, recommended configuration as \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Will be removed with attribute\u003cspan pulumi-lang-nodejs=\" certificateAuthority \" pulumi-lang-dotnet=\" CertificateAuthority \" pulumi-lang-go=\" certificateAuthority \" pulumi-lang-python=\" certificate_authority \" pulumi-lang-yaml=\" certificateAuthority \" pulumi-lang-java=\" certificateAuthority \"\u003e certificate_authority \u003c/span\u003eremoved.\n"},"slbInternetEnabled":{"type":"boolean","description":"Whether to create internet load balancer for API Server. Default to true. Only works for **Create** Operation.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Default nil, A map of tags assigned to the kubernetes cluster and work nodes. See \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e below.\n"},"timezone":{"type":"string","description":"Cluster timezone, works for control plane and Worker nodes.\n* \u003e **NOTE:** Please take of note before updating the \u003cspan pulumi-lang-nodejs=\"`timezone`\" pulumi-lang-dotnet=\"`Timezone`\" pulumi-lang-go=\"`timezone`\" pulumi-lang-python=\"`timezone`\" pulumi-lang-yaml=\"`timezone`\" pulumi-lang-java=\"`timezone`\"\u003e`timezone`\u003c/span\u003e:\n* After modifying the timezone, cluster inspection configurations will adopt the new timezone.\n* During timezone updates, the cluster control plane and managed components (e.g., terway-controlplane) will restart briefly. Perform this operation during off-peak hours.\n* After updating the timezone: Newly scaled-out nodes will automatically apply the new timezone. Existing nodes remain unaffected. Reset the node to apply changes to existing nodes.\n"},"upgradePolicy":{"$ref":"#/types/alicloud:cs/ManagedKubernetesUpgradePolicy:ManagedKubernetesUpgradePolicy","description":"Configuration block for cluster upgrade operations. See \u003cspan pulumi-lang-nodejs=\"`upgradePolicy`\" pulumi-lang-dotnet=\"`UpgradePolicy`\" pulumi-lang-go=\"`upgradePolicy`\" pulumi-lang-python=\"`upgrade_policy`\" pulumi-lang-yaml=\"`upgradePolicy`\" pulumi-lang-java=\"`upgradePolicy`\"\u003e`upgrade_policy`\u003c/span\u003e below.\n\u003e **NOTE:** This parameter only applies during resource update.\n\n*Network params*\n"},"userCa":{"type":"string","description":"The path of customized CA cert, you can use this CA to sign client certs to connect your cluster.\n"},"version":{"type":"string","description":"Desired Kubernetes version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except you set a higher version number. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by ACK. Do not specify if cluster auto upgrade is enabled, see\u003cspan pulumi-lang-nodejs=\" clusterAutoUpgrade \" pulumi-lang-dotnet=\" ClusterAutoUpgrade \" pulumi-lang-go=\" clusterAutoUpgrade \" pulumi-lang-python=\" cluster_auto_upgrade \" pulumi-lang-yaml=\" clusterAutoUpgrade \" pulumi-lang-java=\" clusterAutoUpgrade \"\u003e cluster_auto_upgrade \u003c/span\u003efor more information.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vSwitches of the control plane.\n\u003e **NOTE:** Please take of note before updating the \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e:\n* This parameter overwrites the existing configuration. You must specify all vSwitches of the control plane.\n* The control plane restarts during the change process. Exercise caution when you perform this operation.\n* Ensure that all security groups of the cluster, including the security groups of the control plane, all node pools, and container network, are allowed to access the CIDR blocks of the new vSwitches. This ensures that the nodes and containers can connect to the API server.\n* If the new vSwitches of the control plane are configured with an ACL, ensure that the ACL allows communication between the new vSwitches and CIDR blocks such as those of the cluster nodes and the container network.\n"},"workerVswitchIds":{"type":"array","items":{"type":"string"},"description":"The vSwitches used by control plane. Modification after creation will not take effect. Please use \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e to managed control plane vSwitches, which supports modifying control plane vSwitches.\n","deprecationMessage":"Field 'worker_vswitch_ids' has been deprecated from provider version 1.241.0. Please use 'vswitch_ids' to managed control plane vswtiches"},"zoneIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the zone in which the cluster control plane is deployed. ACK automatically creates a VPC in the region and vSwitches in the specified zones. Only works for **Create** Operation. Do not specify this with \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e together.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ManagedKubernetes resources.\n","properties":{"addons":{"type":"array","items":{"$ref":"#/types/alicloud:cs/ManagedKubernetesAddon:ManagedKubernetesAddon"},"description":"The addon you want to install in cluster. See \u003cspan pulumi-lang-nodejs=\"`addons`\" pulumi-lang-dotnet=\"`Addons`\" pulumi-lang-go=\"`addons`\" pulumi-lang-python=\"`addons`\" pulumi-lang-yaml=\"`addons`\" pulumi-lang-java=\"`addons`\"\u003e`addons`\u003c/span\u003e below. Only works for **Create** Operation, use resource\u003cspan pulumi-lang-nodejs=\" csKubernetesAddon \" pulumi-lang-dotnet=\" CsKubernetesAddon \" pulumi-lang-go=\" csKubernetesAddon \" pulumi-lang-python=\" cs_kubernetes_addon \" pulumi-lang-yaml=\" csKubernetesAddon \" pulumi-lang-java=\" csKubernetesAddon \"\u003e cs_kubernetes_addon \u003c/span\u003eto manage addons if cluster is created.\n"},"apiAudiences":{"type":"array","items":{"type":"string"},"description":"A list of API audiences for [Service Account Token Volume Projection](https://www.alibabacloud.com/help/doc-detail/160384.htm). Set this to `[\"https://kubernetes.default.svc\"]` if you want to enable the Token Volume Projection feature (requires specifying \u003cspan pulumi-lang-nodejs=\"`serviceAccountIssuer`\" pulumi-lang-dotnet=\"`ServiceAccountIssuer`\" pulumi-lang-go=\"`serviceAccountIssuer`\" pulumi-lang-python=\"`service_account_issuer`\" pulumi-lang-yaml=\"`serviceAccountIssuer`\" pulumi-lang-java=\"`serviceAccountIssuer`\"\u003e`service_account_issuer`\u003c/span\u003e as well. From cluster version 1.22, Service Account Token Volume Projection will be enabled by default.\n","willReplaceOnChanges":true},"auditLogConfig":{"$ref":"#/types/alicloud:cs/ManagedKubernetesAuditLogConfig:ManagedKubernetesAuditLogConfig","description":"Audit log configuration. See \u003cspan pulumi-lang-nodejs=\"`auditLogConfig`\" pulumi-lang-dotnet=\"`AuditLogConfig`\" pulumi-lang-go=\"`auditLogConfig`\" pulumi-lang-python=\"`audit_log_config`\" pulumi-lang-yaml=\"`auditLogConfig`\" pulumi-lang-java=\"`auditLogConfig`\"\u003e`audit_log_config`\u003c/span\u003e below.\n"},"autoMode":{"$ref":"#/types/alicloud:cs/ManagedKubernetesAutoMode:ManagedKubernetesAutoMode","description":"Auto mode cluster configuration. See \u003cspan pulumi-lang-nodejs=\"`autoMode`\" pulumi-lang-dotnet=\"`AutoMode`\" pulumi-lang-go=\"`autoMode`\" pulumi-lang-python=\"`auto_mode`\" pulumi-lang-yaml=\"`autoMode`\" pulumi-lang-java=\"`autoMode`\"\u003e`auto_mode`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"certificateAuthority":{"$ref":"#/types/alicloud:cs/ManagedKubernetesCertificateAuthority:ManagedKubernetesCertificateAuthority","description":"(Map, Deprecated from v1.248.0) Nested attribute containing certificate authority data for your cluster. Please use the attribute\u003cspan pulumi-lang-nodejs=\" certificateAuthority \" pulumi-lang-dotnet=\" CertificateAuthority \" pulumi-lang-go=\" certificateAuthority \" pulumi-lang-python=\" certificate_authority \" pulumi-lang-yaml=\" certificateAuthority \" pulumi-lang-java=\" certificateAuthority \"\u003e certificate_authority \u003c/span\u003eof new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to replace it.\n","deprecationMessage":"Field 'certificate_authority' has been deprecated from provider version 1.248.0. Please use the attribute 'certificate_authority' of new DataSource 'alicloud_cs_cluster_credential' to replace it."},"clientCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-cert.pem) for replace it.\n","deprecationMessage":"Field 'client_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-cert.pem) for replace it."},"clientKey":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_key attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-key.pem) for replace it.\n","deprecationMessage":"Field 'client_key' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_key' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-key.pem) for replace it."},"clusterCaCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.cluster_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it.\n\n*Removed params*\n","deprecationMessage":"Field 'cluster_ca_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.cluster_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it."},"clusterDomain":{"type":"string","description":"Cluster local domain name, Default to `cluster.local`. A domain name consists of one or more sections separated by a decimal point (.), each of which is up to 63 characters long, and can be lowercase, numerals, and underscores (-), and must be lowercase or numerals at the beginning and end.\n","willReplaceOnChanges":true},"clusterSpec":{"type":"string","description":"The cluster specifications of kubernetes cluster,which can be empty. Valid values:\n* ack.standard : Basic managed clusters.\n* ack.pro.small : Professional managed clusters.\n"},"connections":{"$ref":"#/types/alicloud:cs/ManagedKubernetesConnections:ManagedKubernetesConnections","description":"Map of kubernetes cluster connection information.\n"},"controlPlaneLogComponents":{"type":"array","items":{"type":"string"},"description":"List of target components for which logs need to be collected. Supports \u003cspan pulumi-lang-nodejs=\"`apiserver`\" pulumi-lang-dotnet=\"`Apiserver`\" pulumi-lang-go=\"`apiserver`\" pulumi-lang-python=\"`apiserver`\" pulumi-lang-yaml=\"`apiserver`\" pulumi-lang-java=\"`apiserver`\"\u003e`apiserver`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kcm`\" pulumi-lang-dotnet=\"`Kcm`\" pulumi-lang-go=\"`kcm`\" pulumi-lang-python=\"`kcm`\" pulumi-lang-yaml=\"`kcm`\" pulumi-lang-java=\"`kcm`\"\u003e`kcm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`scheduler`\" pulumi-lang-dotnet=\"`Scheduler`\" pulumi-lang-go=\"`scheduler`\" pulumi-lang-python=\"`scheduler`\" pulumi-lang-yaml=\"`scheduler`\" pulumi-lang-java=\"`scheduler`\"\u003e`scheduler`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ccm`\" pulumi-lang-dotnet=\"`Ccm`\" pulumi-lang-go=\"`ccm`\" pulumi-lang-python=\"`ccm`\" pulumi-lang-yaml=\"`ccm`\" pulumi-lang-java=\"`ccm`\"\u003e`ccm`\u003c/span\u003e and `controlplane-events`.\n"},"controlPlaneLogProject":{"type":"string","description":"Control plane log project. If this field is not set, a log service project named k8s-log-{ClusterID} will be automatically created.\n"},"controlPlaneLogTtl":{"type":"string","description":"Control plane log retention duration (unit: day). Default \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e. If control plane logs are to be collected, \u003cspan pulumi-lang-nodejs=\"`controlPlaneLogTtl`\" pulumi-lang-dotnet=\"`ControlPlaneLogTtl`\" pulumi-lang-go=\"`controlPlaneLogTtl`\" pulumi-lang-python=\"`control_plane_log_ttl`\" pulumi-lang-yaml=\"`controlPlaneLogTtl`\" pulumi-lang-java=\"`controlPlaneLogTtl`\"\u003e`control_plane_log_ttl`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`controlPlaneLogComponents`\" pulumi-lang-dotnet=\"`ControlPlaneLogComponents`\" pulumi-lang-go=\"`controlPlaneLogComponents`\" pulumi-lang-python=\"`control_plane_log_components`\" pulumi-lang-yaml=\"`controlPlaneLogComponents`\" pulumi-lang-java=\"`controlPlaneLogComponents`\"\u003e`control_plane_log_components`\u003c/span\u003e must be specified.\n"},"customSan":{"type":"string","description":"Customize the certificate SAN, multiple IP or domain names are separated by English commas (,).\n\u003e **NOTE:** Make sure you have specified all certificate SANs before updating. Updating this field will lead APIServer to restart.\n"},"deleteOptions":{"type":"array","items":{"$ref":"#/types/alicloud:cs/ManagedKubernetesDeleteOption:ManagedKubernetesDeleteOption"},"description":"Delete options, only work for deleting resource. Make sure you have run `pulumi up` to make the configuration applied. See \u003cspan pulumi-lang-nodejs=\"`deleteOptions`\" pulumi-lang-dotnet=\"`DeleteOptions`\" pulumi-lang-go=\"`deleteOptions`\" pulumi-lang-python=\"`delete_options`\" pulumi-lang-yaml=\"`deleteOptions`\" pulumi-lang-java=\"`deleteOptions`\"\u003e`delete_options`\u003c/span\u003e below.\n"},"deletionProtection":{"type":"boolean","description":"Whether to enable cluster deletion protection.\n"},"enableRrsa":{"type":"boolean","description":"Whether to enable cluster to support RRSA for kubernetes version 1.22.3+. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Once the RRSA function is turned on, it is not allowed to turn off. If your cluster has enabled this function, please manually modify your tf file and add the rrsa configuration to the file, learn more [RAM Roles for Service Accounts](https://www.alibabacloud.com/help/zh/container-service-for-kubernetes/latest/use-rrsa-to-enforce-access-control).\n"},"encryptionProviderKey":{"type":"string","description":"The ID of the Key Management Service (KMS) key that is used to encrypt Kubernetes Secrets.\n","willReplaceOnChanges":true},"ipStack":{"type":"string","description":"The IP address family that the cluster network uses. Valid values:\n","willReplaceOnChanges":true},"isEnterpriseSecurityGroup":{"type":"boolean","description":"Enable to create advanced security group. default: false. Only works for **Create** Operation. See [Advanced security group](https://www.alibabacloud.com/help/doc-detail/120621.htm).\n"},"loadBalancerSpec":{"type":"string","description":"The cluster api server load balancer instance specification. For more information on how to select a LB instance specification, see [SLB instance overview](https://help.aliyun.com/document_detail/85931.html). Only works for **Create** Operation. The spec will not take effect because the charge of the load balancer has been changed to PayByCLCU.\n","deprecationMessage":"Field 'load_balancer_spec' has been deprecated from provider version 1.232.0. The spec will not take effect because the charge of the load balancer has been changed to PayByCLCU"},"maintenanceWindow":{"$ref":"#/types/alicloud:cs/ManagedKubernetesMaintenanceWindow:ManagedKubernetesMaintenanceWindow","description":"The cluster maintenance window. Managed node pool will use it. See \u003cspan pulumi-lang-nodejs=\"`maintenanceWindow`\" pulumi-lang-dotnet=\"`MaintenanceWindow`\" pulumi-lang-go=\"`maintenanceWindow`\" pulumi-lang-python=\"`maintenance_window`\" pulumi-lang-yaml=\"`maintenanceWindow`\" pulumi-lang-java=\"`maintenanceWindow`\"\u003e`maintenance_window`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The kubernetes cluster's name. It is unique in one Alicloud account.\n"},"namePrefix":{"type":"string","description":"The kubernetes cluster name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e. If it is specified, terraform will use it to build the only cluster name. Default to \"Terraform-Creation\".\n"},"natGatewayId":{"type":"string","description":"The ID of nat gateway used to launch kubernetes cluster.\n"},"newNatGateway":{"type":"boolean","description":"Whether to create a new nat gateway while creating kubernetes cluster. Default to true. Then openapi in Alibaba Cloud are not all on intranet, So turn this option on is a good choice. Only works for **Create** Operation.\n"},"nodeCidrMask":{"type":"integer","description":"The node cidr block to specific how many pods can run on single node. 24-28 is allowed. 24 means 2^(32-24)-1=255 and the node can run at most 255 pods. default: 24\n","willReplaceOnChanges":true},"operationPolicy":{"$ref":"#/types/alicloud:cs/ManagedKubernetesOperationPolicy:ManagedKubernetesOperationPolicy","description":"The cluster automatic operation policy, only works when \u003cspan pulumi-lang-nodejs=\"`maintenanceWindow`\" pulumi-lang-dotnet=\"`MaintenanceWindow`\" pulumi-lang-go=\"`maintenanceWindow`\" pulumi-lang-python=\"`maintenance_window`\" pulumi-lang-yaml=\"`maintenanceWindow`\" pulumi-lang-java=\"`maintenanceWindow`\"\u003e`maintenance_window`\u003c/span\u003e is enabled. See \u003cspan pulumi-lang-nodejs=\"`operationPolicy`\" pulumi-lang-dotnet=\"`OperationPolicy`\" pulumi-lang-go=\"`operationPolicy`\" pulumi-lang-python=\"`operation_policy`\" pulumi-lang-yaml=\"`operationPolicy`\" pulumi-lang-java=\"`operationPolicy`\"\u003e`operation_policy`\u003c/span\u003e below.\n"},"podCidr":{"type":"string","description":"[Flannel Specific] The CIDR block for the pod network when using Flannel.\n","willReplaceOnChanges":true},"podVswitchIds":{"type":"array","items":{"type":"string"},"description":"[Terway Specific] The vswitches for the pod network when using Terway. It is recommended that \u003cspan pulumi-lang-nodejs=\"`podVswitchIds`\" pulumi-lang-dotnet=\"`PodVswitchIds`\" pulumi-lang-go=\"`podVswitchIds`\" pulumi-lang-python=\"`pod_vswitch_ids`\" pulumi-lang-yaml=\"`podVswitchIds`\" pulumi-lang-java=\"`podVswitchIds`\"\u003e`pod_vswitch_ids`\u003c/span\u003e is not belong to \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e but must be in same availability zones. Only works for **Create** Operation.\n"},"profile":{"type":"string","description":"The profile of cluster. Valid values:\n* `Default`: ACK managed cluster. ACK managed clusters include ACK Basic clusters and ACK Pro clusters.\n* `Edge`: ACK Edge cluster. ACK Edge clusters include ACK Edge Basic clusters and ACK Edge Pro clusters.\n* `Serverless`: ACK Serverless cluster. ACK Serverless clusters include ACK Serverless Basic clusters and ACK Serverless Pro clusters.\n* `Acs`: ACS cluster.\n","willReplaceOnChanges":true},"proxyMode":{"type":"string","description":"Proxy mode is option of kube-proxy. options: iptables|ipvs. default: ipvs.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group,by default these cloud resources are automatically assigned to the default resource group.\n"},"retainResources":{"type":"array","items":{"type":"string"},"description":"Resources that are automatically created during cluster creation, including NAT gateways, SNAT rules, SLB instances, and RAM Role, will be deleted. Resources that are manually created after you create the cluster, such as SLB instances for Services, will also be deleted. If you need to retain resources, please configure with \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e. There are several aspects to pay attention to when using \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e to retain resources. After configuring \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e into the terraform configuration manifest file, you first need to run `pulumi up`.Then execute `terraform destroy`.\n"},"rrsaMetadata":{"$ref":"#/types/alicloud:cs/ManagedKubernetesRrsaMetadata:ManagedKubernetesRrsaMetadata","description":"(Optional, Available since v1.185.0) Nested attribute containing RRSA related data for your cluster.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group to which the ECS instances in the cluster belong. If it is not specified, a new Security group will be built.\n* \u003e **NOTE:** Please take of note before updating the \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e:\n* If block rules are configured in the security group, ensure the security group rules allow traffic for protocols and ports required by the cluster. For recommended security group rules, see [Configure and manage security groups for an ACK cluster](https://www.alibabacloud.com/help/en/ack/ack-managed-and-ack-dedicated/user-guide/configure-security-group-rules-to-enforce-access-control-on-ack-clusters).\n* During security group updates, the cluster control plane and managed components (e.g., terway-controlplane) will restart briefly. Perform this operation during off-peak hours.\n* After updating the control plane security group, the Elastic Network Interfaces (ENIs) used by the control plane and managed components will automatically join the new security group.\n"},"serviceAccountIssuer":{"type":"string","description":"The issuer of the Service Account token for [Service Account Token Volume Projection](https://www.alibabacloud.com/help/doc-detail/160384.htm), corresponds to the \u003cspan pulumi-lang-nodejs=\"`iss`\" pulumi-lang-dotnet=\"`Iss`\" pulumi-lang-go=\"`iss`\" pulumi-lang-python=\"`iss`\" pulumi-lang-yaml=\"`iss`\" pulumi-lang-java=\"`iss`\"\u003e`iss`\u003c/span\u003e field in the token payload. Set this to `\"https://kubernetes.default.svc\"` to enable the Token Volume Projection feature (requires specifying \u003cspan pulumi-lang-nodejs=\"`apiAudiences`\" pulumi-lang-dotnet=\"`ApiAudiences`\" pulumi-lang-go=\"`apiAudiences`\" pulumi-lang-python=\"`api_audiences`\" pulumi-lang-yaml=\"`apiAudiences`\" pulumi-lang-java=\"`apiAudiences`\"\u003e`api_audiences`\u003c/span\u003e as well). From cluster version 1.22, Service Account Token Volume Projection will be enabled by default.\n","willReplaceOnChanges":true},"serviceCidr":{"type":"string","description":"The CIDR block for the service network. It cannot be duplicated with the VPC CIDR and CIDR used by Kubernetes cluster in VPC, cannot be modified after creation.\n","willReplaceOnChanges":true},"skipSetCertificateAuthority":{"type":"boolean","description":"Configure whether to save certificate authority data for your cluster to attribute \u003cspan pulumi-lang-nodejs=\"`certificateAuthority`\" pulumi-lang-dotnet=\"`CertificateAuthority`\" pulumi-lang-go=\"`certificateAuthority`\" pulumi-lang-python=\"`certificate_authority`\" pulumi-lang-yaml=\"`certificateAuthority`\" pulumi-lang-java=\"`certificateAuthority`\"\u003e`certificate_authority`\u003c/span\u003e. For cluster security, recommended configuration as \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Will be removed with attribute\u003cspan pulumi-lang-nodejs=\" certificateAuthority \" pulumi-lang-dotnet=\" CertificateAuthority \" pulumi-lang-go=\" certificateAuthority \" pulumi-lang-python=\" certificate_authority \" pulumi-lang-yaml=\" certificateAuthority \" pulumi-lang-java=\" certificateAuthority \"\u003e certificate_authority \u003c/span\u003eremoved.\n"},"slbId":{"type":"string","description":"The ID of APIServer load balancer.\n"},"slbInternet":{"type":"string","description":"The public ip of load balancer.\n"},"slbInternetEnabled":{"type":"boolean","description":"Whether to create internet load balancer for API Server. Default to true. Only works for **Create** Operation.\n"},"slbIntranet":{"type":"string","description":"The ID of private load balancer where the current cluster master node is located.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Default nil, A map of tags assigned to the kubernetes cluster and work nodes. See \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e below.\n"},"timezone":{"type":"string","description":"Cluster timezone, works for control plane and Worker nodes.\n* \u003e **NOTE:** Please take of note before updating the \u003cspan pulumi-lang-nodejs=\"`timezone`\" pulumi-lang-dotnet=\"`Timezone`\" pulumi-lang-go=\"`timezone`\" pulumi-lang-python=\"`timezone`\" pulumi-lang-yaml=\"`timezone`\" pulumi-lang-java=\"`timezone`\"\u003e`timezone`\u003c/span\u003e:\n* After modifying the timezone, cluster inspection configurations will adopt the new timezone.\n* During timezone updates, the cluster control plane and managed components (e.g., terway-controlplane) will restart briefly. Perform this operation during off-peak hours.\n* After updating the timezone: Newly scaled-out nodes will automatically apply the new timezone. Existing nodes remain unaffected. Reset the node to apply changes to existing nodes.\n"},"upgradePolicy":{"$ref":"#/types/alicloud:cs/ManagedKubernetesUpgradePolicy:ManagedKubernetesUpgradePolicy","description":"Configuration block for cluster upgrade operations. See \u003cspan pulumi-lang-nodejs=\"`upgradePolicy`\" pulumi-lang-dotnet=\"`UpgradePolicy`\" pulumi-lang-go=\"`upgradePolicy`\" pulumi-lang-python=\"`upgrade_policy`\" pulumi-lang-yaml=\"`upgradePolicy`\" pulumi-lang-java=\"`upgradePolicy`\"\u003e`upgrade_policy`\u003c/span\u003e below.\n\u003e **NOTE:** This parameter only applies during resource update.\n\n*Network params*\n"},"userCa":{"type":"string","description":"The path of customized CA cert, you can use this CA to sign client certs to connect your cluster.\n"},"version":{"type":"string","description":"Desired Kubernetes version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except you set a higher version number. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by ACK. Do not specify if cluster auto upgrade is enabled, see\u003cspan pulumi-lang-nodejs=\" clusterAutoUpgrade \" pulumi-lang-dotnet=\" ClusterAutoUpgrade \" pulumi-lang-go=\" clusterAutoUpgrade \" pulumi-lang-python=\" cluster_auto_upgrade \" pulumi-lang-yaml=\" clusterAutoUpgrade \" pulumi-lang-java=\" clusterAutoUpgrade \"\u003e cluster_auto_upgrade \u003c/span\u003efor more information.\n"},"vpcId":{"type":"string","description":"The ID of VPC where the current cluster is located.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vSwitches of the control plane.\n\u003e **NOTE:** Please take of note before updating the \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e:\n* This parameter overwrites the existing configuration. You must specify all vSwitches of the control plane.\n* The control plane restarts during the change process. Exercise caution when you perform this operation.\n* Ensure that all security groups of the cluster, including the security groups of the control plane, all node pools, and container network, are allowed to access the CIDR blocks of the new vSwitches. This ensures that the nodes and containers can connect to the API server.\n* If the new vSwitches of the control plane are configured with an ACL, ensure that the ACL allows communication between the new vSwitches and CIDR blocks such as those of the cluster nodes and the container network.\n"},"workerRamRoleName":{"type":"string","description":"The RamRole Name attached to worker node.\n"},"workerVswitchIds":{"type":"array","items":{"type":"string"},"description":"The vSwitches used by control plane. Modification after creation will not take effect. Please use \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e to managed control plane vSwitches, which supports modifying control plane vSwitches.\n","deprecationMessage":"Field 'worker_vswitch_ids' has been deprecated from provider version 1.241.0. Please use 'vswitch_ids' to managed control plane vswtiches"},"zoneIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the zone in which the cluster control plane is deployed. ACK automatically creates a VPC in the region and vSwitches in the specified zones. Only works for **Create** Operation. Do not specify this with \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e together.\n"}},"type":"object"}},"alicloud:cs/nodePool:NodePool":{"description":"Provides a Container Service for Kubernetes (ACK) Nodepool resource.\n\nThis resource will help you to manage node pool in Kubernetes Cluster, see [What is kubernetes node pool](https://www.alibabacloud.com/help/en/ack/ack-managed-and-ack-dedicated/developer-reference/api-create-node-pools). \n\n\u003e **NOTE:** Available since v1.97.0.\n\n\u003e **NOTE:** From version 1.109.1, support managed node pools, but only for the professional managed clusters.\n\n\u003e **NOTE:** From version 1.109.1, support remove node pool nodes.\n\n\u003e **NOTE:** From version 1.111.0, support auto scaling node pool. For more information on how to use auto scaling node pools, see [Use Terraform to create an elastic node pool](https://www.alibabacloud.com/help/en/ack/ack-managed-and-ack-dedicated/developer-reference/api-create-node-pools). With auto-scaling is enabled, the nodes in the node pool will be labeled with `k8s.aliyun.com=true` to prevent system pods such as coredns, metrics-servers from being scheduled to elastic nodes, and to prevent node shrinkage from causing business abnormalities.\n\n\u003e **NOTE:** ACK adds a new RamRole (AliyunCSManagedAutoScalerRole) for the permission control of the node pool with auto-scaling enabled. If you are using a node pool with auto scaling, please click [AliyunCSManagedAutoScalerRole](https://ram.console.aliyun.com/role/authorization?request=%7B%22Services%22%3A%5B%7B%22Service%22%3A%22CS%22%2C%22Roles%22%3A%5B%7B%22RoleName%22%3A%22AliyunCSManagedAutoScalerRole%22%2C%22TemplateId%22%3A%22AliyunCSManagedAutoScalerRole%22%7D%5D%7D%5D%2C%22ReturnUrl%22%3A%22https%3A%2F%2Fcs.console.aliyun.com%2F%22%7D) to complete the authorization. \n\n\u003e **NOTE:** ACK adds a new RamRole（AliyunCSManagedNlcRole） for the permission control of the management node pool. If you use the management node pool, please click [AliyunCSManagedNlcRole](https://ram.console.aliyun.com/role/authorization?spm=5176.2020520152.0.0.387f16ddEOZxMv\u0026request=%7B%22Services%22%3A%5B%7B%22Service%22%3A%22CS%22%2C%22Roles%22%3A%5B%7B%22RoleName%22%3A%22AliyunCSManagedNlcRole%22%2C%22TemplateId%22%3A%22AliyunCSManagedNlcRole%22%7D%5D%7D%5D%2C%22ReturnUrl%22%3A%22https%3A%2F%2Fcs.console.aliyun.com%2F%22%7D) to complete the authorization.\n\n\u003e **NOTE:** From version 1.123.1, supports the creation of a node pool of spot instance.\n\n\u003e **NOTE:** It is recommended to create a cluster with zero worker nodes, and then use a node pool to manage the cluster nodes. \n\n\u003e **NOTE:** From version 1.127.0, support for adding existing nodes to the node pool. In order to distinguish automatically created nodes, it is recommended that existing nodes be placed separately in a node pool for management. \n\n\u003e **NOTE:** From version 1.149.0, support for specifying deploymentSet for node pools. \n\n\u003e **NOTE:** From version 1.158.0, Support for specifying the desired size of nodes for the node pool, for more information, visit [Modify the expected number of nodes in a node pool](https://www.alibabacloud.com/help/en/doc-detail/160490.html#title-mpp-3jj-oo3)\n\n\u003e **NOTE:** From version 1.166.0, Support configuring system disk encryption.\n\n\u003e **NOTE:** From version 1.177.0+, Support \u003cspan pulumi-lang-nodejs=\"`kmsEncryptionContext`\" pulumi-lang-dotnet=\"`KmsEncryptionContext`\" pulumi-lang-go=\"`kmsEncryptionContext`\" pulumi-lang-python=\"`kms_encryption_context`\" pulumi-lang-yaml=\"`kmsEncryptionContext`\" pulumi-lang-java=\"`kmsEncryptionContext`\"\u003e`kms_encryption_context`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rdsInstances`\" pulumi-lang-dotnet=\"`RdsInstances`\" pulumi-lang-go=\"`rdsInstances`\" pulumi-lang-python=\"`rds_instances`\" pulumi-lang-yaml=\"`rdsInstances`\" pulumi-lang-java=\"`rdsInstances`\"\u003e`rds_instances`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`systemDiskSnapshotPolicyId`\" pulumi-lang-dotnet=\"`SystemDiskSnapshotPolicyId`\" pulumi-lang-go=\"`systemDiskSnapshotPolicyId`\" pulumi-lang-python=\"`system_disk_snapshot_policy_id`\" pulumi-lang-yaml=\"`systemDiskSnapshotPolicyId`\" pulumi-lang-java=\"`systemDiskSnapshotPolicyId`\"\u003e`system_disk_snapshot_policy_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cpuPolicy`\" pulumi-lang-dotnet=\"`CpuPolicy`\" pulumi-lang-go=\"`cpuPolicy`\" pulumi-lang-python=\"`cpu_policy`\" pulumi-lang-yaml=\"`cpuPolicy`\" pulumi-lang-java=\"`cpuPolicy`\"\u003e`cpu_policy`\u003c/span\u003e, add spot strategy `SpotAsPriceGo` and `NoSpot`.\n\n\u003e **NOTE:** From version 1.180.0+, Support worker nodes customized kubelet parameters by field \u003cspan pulumi-lang-nodejs=\"`kubeletConfiguration`\" pulumi-lang-dotnet=\"`KubeletConfiguration`\" pulumi-lang-go=\"`kubeletConfiguration`\" pulumi-lang-python=\"`kubelet_configuration`\" pulumi-lang-yaml=\"`kubeletConfiguration`\" pulumi-lang-java=\"`kubeletConfiguration`\"\u003e`kubelet_configuration`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rolloutPolicy`\" pulumi-lang-dotnet=\"`RolloutPolicy`\" pulumi-lang-go=\"`rolloutPolicy`\" pulumi-lang-python=\"`rollout_policy`\" pulumi-lang-yaml=\"`rolloutPolicy`\" pulumi-lang-java=\"`rolloutPolicy`\"\u003e`rollout_policy`\u003c/span\u003e.\n\n\u003e **NOTE:** From version 1.185.0+, Field \u003cspan pulumi-lang-nodejs=\"`rolloutPolicy`\" pulumi-lang-dotnet=\"`RolloutPolicy`\" pulumi-lang-go=\"`rolloutPolicy`\" pulumi-lang-python=\"`rollout_policy`\" pulumi-lang-yaml=\"`rolloutPolicy`\" pulumi-lang-java=\"`rolloutPolicy`\"\u003e`rollout_policy`\u003c/span\u003e will be deprecated and please use field \u003cspan pulumi-lang-nodejs=\"`rollingPolicy`\" pulumi-lang-dotnet=\"`RollingPolicy`\" pulumi-lang-go=\"`rollingPolicy`\" pulumi-lang-python=\"`rolling_policy`\" pulumi-lang-yaml=\"`rollingPolicy`\" pulumi-lang-java=\"`rollingPolicy`\"\u003e`rolling_policy`\u003c/span\u003e instead.\n\nFor information about Container Service for Kubernetes (ACK) Nodepool and how to use it, see [What is Nodepool](https://www.alibabacloud.com/help/en/ack/ack-managed-and-ack-dedicated/developer-reference/api-create-node-pools).\n\n\u003e **NOTE:** Available since v1.97.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst cloudEfficiency = enhanced.then(enhanced =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: enhanced.zones?.[0]?.zoneId,\n    cpuCoreCount: 4,\n    memorySize: 8,\n    kubernetesNodeRole: \"Worker\",\n    systemDiskCategory: \"cloud_efficiency\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: enhanced.then(enhanced =\u003e enhanced.zones?.[0]?.zoneId),\n});\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    namePrefix: `terraform-example-${_default.result}`,\n    clusterSpec: \"ack.pro.small\",\n    workerVswitchIds: [defaultSwitch.id],\n    newNatGateway: true,\n    podCidr: std.cidrsubnet({\n        input: \"10.0.0.0/8\",\n        newbits: 8,\n        netnum: 36,\n    }).then(invoke =\u003e invoke.result),\n    serviceCidr: std.cidrsubnet({\n        input: \"172.16.0.0/16\",\n        newbits: 4,\n        netnum: 7,\n    }).then(invoke =\u003e invoke.result),\n    slbInternetEnabled: true,\n    enableRrsa: true,\n});\nconst defaultKeyPair = new alicloud.ecs.KeyPair(\"default\", {keyPairName: `terraform-example-${_default.result}`});\nconst defaultNodePool = new alicloud.cs.NodePool(\"default\", {\n    nodePoolName: name,\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [defaultSwitch.id],\n    instanceTypes: [cloudEfficiency.then(cloudEfficiency =\u003e cloudEfficiency.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyPairName,\n    labels: [\n        {\n            key: \"test1\",\n            value: \"nodepool\",\n        },\n        {\n            key: \"test2\",\n            value: \"nodepool\",\n        },\n    ],\n    taints: [\n        {\n            key: \"tf\",\n            effect: \"NoSchedule\",\n            value: \"example\",\n        },\n        {\n            key: \"tf2\",\n            effect: \"NoSchedule\",\n            value: \"example2\",\n        },\n    ],\n});\n//The parameter `node_count` is deprecated from version 1.158.0. Please use the new parameter `desired_size` instead, you can update it as follows.\nconst desiredSize = new alicloud.cs.NodePool(\"desired_size\", {\n    nodePoolName: \"desired_size\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [defaultSwitch.id],\n    instanceTypes: [cloudEfficiency.then(cloudEfficiency =\u003e cloudEfficiency.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyPairName,\n    desiredSize: \"0\",\n});\n// Create a managed node pool. If you need to enable maintenance window, you need to set the maintenance window in `alicloud_cs_managed_kubernetes`.\nconst maintenance = new alicloud.cs.NodePool(\"maintenance\", {\n    nodePoolName: \"maintenance\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [defaultSwitch.id],\n    instanceTypes: [cloudEfficiency.then(cloudEfficiency =\u003e cloudEfficiency.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyPairName,\n    desiredSize: \"1\",\n    management: {\n        enable: true,\n        autoRepair: true,\n        autoRepairPolicy: {\n            restartNode: true,\n        },\n        autoUpgrade: true,\n        autoUpgradePolicy: {\n            autoUpgradeKubelet: true,\n        },\n        autoVulFix: true,\n        autoVulFixPolicy: {\n            vulLevel: \"asap\",\n            restartNode: true,\n        },\n        maxUnavailable: 1,\n    },\n});\n//Create a node pool with spot instance.\nconst spotInstance = new alicloud.cs.NodePool(\"spot_instance\", {\n    nodePoolName: \"spot_instance\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [defaultSwitch.id],\n    instanceTypes: [\n        cloudEfficiency.then(cloudEfficiency =\u003e cloudEfficiency.instanceTypes?.[0]?.id),\n        cloudEfficiency.then(cloudEfficiency =\u003e cloudEfficiency.instanceTypes?.[1]?.id),\n    ],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyPairName,\n    desiredSize: \"1\",\n    spotStrategy: \"SpotWithPriceLimit\",\n    spotPriceLimits: [\n        {\n            instanceType: cloudEfficiency.then(cloudEfficiency =\u003e cloudEfficiency.instanceTypes?.[0]?.id),\n            priceLimit: \"0.70\",\n        },\n        {\n            instanceType: cloudEfficiency.then(cloudEfficiency =\u003e cloudEfficiency.instanceTypes?.[1]?.id),\n            priceLimit: \"0.72\",\n        },\n    ],\n});\n//Use Spot instances to create a node pool with auto-scaling enabled\nconst spotAutoScaling = new alicloud.cs.NodePool(\"spot_auto_scaling\", {\n    nodePoolName: \"spot_auto_scaling\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [defaultSwitch.id],\n    instanceTypes: [cloudEfficiency.then(cloudEfficiency =\u003e cloudEfficiency.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyPairName,\n    scalingConfig: {\n        minSize: 1,\n        maxSize: 10,\n        type: \"spot\",\n    },\n    spotStrategy: \"SpotWithPriceLimit\",\n    spotPriceLimits: [{\n        instanceType: cloudEfficiency.then(cloudEfficiency =\u003e cloudEfficiency.instanceTypes?.[0]?.id),\n        priceLimit: \"0.70\",\n    }],\n});\n//Create a `PrePaid` node pool.\nconst prepaidNode = new alicloud.cs.NodePool(\"prepaid_node\", {\n    nodePoolName: \"prepaid_node\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [defaultSwitch.id],\n    instanceTypes: [cloudEfficiency.then(cloudEfficiency =\u003e cloudEfficiency.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyPairName,\n    instanceChargeType: \"PrePaid\",\n    period: 1,\n    periodUnit: \"Month\",\n    autoRenew: true,\n    autoRenewPeriod: 1,\n    installCloudMonitor: true,\n});\n//#Create a node pool with customized kubelet parameters\nconst customizedKubelet = new alicloud.cs.NodePool(\"customized_kubelet\", {\n    nodePoolName: \"customized_kubelet\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [defaultSwitch.id],\n    instanceTypes: [cloudEfficiency.then(cloudEfficiency =\u003e cloudEfficiency.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    instanceChargeType: \"PostPaid\",\n    desiredSize: \"0\",\n    kubeletConfiguration: {\n        registryPullQps: \"10\",\n        registryBurst: \"5\",\n        eventRecordQps: \"10\",\n        eventBurst: \"5\",\n        serializeImagePulls: \"true\",\n        evictionHard: {\n            \"memory.available\": \"1024Mi\",\n            \"nodefs.available\": \"10%\",\n            \"nodefs.inodesFree\": \"5%\",\n            \"imagefs.available\": \"10%\",\n        },\n        systemReserved: {\n            cpu: \"1\",\n            memory: \"1Gi\",\n            \"ephemeral-storage\": \"10Gi\",\n        },\n        kubeReserved: {\n            cpu: \"500m\",\n            memory: \"1Gi\",\n        },\n        containerLogMaxSize: \"200Mi\",\n        containerLogMaxFiles: \"3\",\n        maxPods: \"100\",\n        readOnlyPort: \"0\",\n        allowedUnsafeSysctls: [\"net.ipv4.route.min_pmtu\"],\n    },\n    rollingPolicy: {\n        maxParallelism: 1,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\ncloud_efficiency = alicloud.ecs.get_instance_types(availability_zone=enhanced.zones[0].zone_id,\n    cpu_core_count=4,\n    memory_size=8,\n    kubernetes_node_role=\"Worker\",\n    system_disk_category=\"cloud_efficiency\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=enhanced.zones[0].zone_id)\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name_prefix=f\"terraform-example-{default['result']}\",\n    cluster_spec=\"ack.pro.small\",\n    worker_vswitch_ids=[default_switch.id],\n    new_nat_gateway=True,\n    pod_cidr=std.cidrsubnet(input=\"10.0.0.0/8\",\n        newbits=8,\n        netnum=36).result,\n    service_cidr=std.cidrsubnet(input=\"172.16.0.0/16\",\n        newbits=4,\n        netnum=7).result,\n    slb_internet_enabled=True,\n    enable_rrsa=True)\ndefault_key_pair = alicloud.ecs.KeyPair(\"default\", key_pair_name=f\"terraform-example-{default['result']}\")\ndefault_node_pool = alicloud.cs.NodePool(\"default\",\n    node_pool_name=name,\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[default_switch.id],\n    instance_types=[cloud_efficiency.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_pair_name,\n    labels=[\n        {\n            \"key\": \"test1\",\n            \"value\": \"nodepool\",\n        },\n        {\n            \"key\": \"test2\",\n            \"value\": \"nodepool\",\n        },\n    ],\n    taints=[\n        {\n            \"key\": \"tf\",\n            \"effect\": \"NoSchedule\",\n            \"value\": \"example\",\n        },\n        {\n            \"key\": \"tf2\",\n            \"effect\": \"NoSchedule\",\n            \"value\": \"example2\",\n        },\n    ])\n#The parameter `node_count` is deprecated from version 1.158.0. Please use the new parameter `desired_size` instead, you can update it as follows.\ndesired_size = alicloud.cs.NodePool(\"desired_size\",\n    node_pool_name=\"desired_size\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[default_switch.id],\n    instance_types=[cloud_efficiency.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_pair_name,\n    desired_size=\"0\")\n# Create a managed node pool. If you need to enable maintenance window, you need to set the maintenance window in `alicloud_cs_managed_kubernetes`.\nmaintenance = alicloud.cs.NodePool(\"maintenance\",\n    node_pool_name=\"maintenance\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[default_switch.id],\n    instance_types=[cloud_efficiency.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_pair_name,\n    desired_size=\"1\",\n    management={\n        \"enable\": True,\n        \"auto_repair\": True,\n        \"auto_repair_policy\": {\n            \"restart_node\": True,\n        },\n        \"auto_upgrade\": True,\n        \"auto_upgrade_policy\": {\n            \"auto_upgrade_kubelet\": True,\n        },\n        \"auto_vul_fix\": True,\n        \"auto_vul_fix_policy\": {\n            \"vul_level\": \"asap\",\n            \"restart_node\": True,\n        },\n        \"max_unavailable\": 1,\n    })\n#Create a node pool with spot instance.\nspot_instance = alicloud.cs.NodePool(\"spot_instance\",\n    node_pool_name=\"spot_instance\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[default_switch.id],\n    instance_types=[\n        cloud_efficiency.instance_types[0].id,\n        cloud_efficiency.instance_types[1].id,\n    ],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_pair_name,\n    desired_size=\"1\",\n    spot_strategy=\"SpotWithPriceLimit\",\n    spot_price_limits=[\n        {\n            \"instance_type\": cloud_efficiency.instance_types[0].id,\n            \"price_limit\": \"0.70\",\n        },\n        {\n            \"instance_type\": cloud_efficiency.instance_types[1].id,\n            \"price_limit\": \"0.72\",\n        },\n    ])\n#Use Spot instances to create a node pool with auto-scaling enabled\nspot_auto_scaling = alicloud.cs.NodePool(\"spot_auto_scaling\",\n    node_pool_name=\"spot_auto_scaling\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[default_switch.id],\n    instance_types=[cloud_efficiency.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_pair_name,\n    scaling_config={\n        \"min_size\": 1,\n        \"max_size\": 10,\n        \"type\": \"spot\",\n    },\n    spot_strategy=\"SpotWithPriceLimit\",\n    spot_price_limits=[{\n        \"instance_type\": cloud_efficiency.instance_types[0].id,\n        \"price_limit\": \"0.70\",\n    }])\n#Create a `PrePaid` node pool.\nprepaid_node = alicloud.cs.NodePool(\"prepaid_node\",\n    node_pool_name=\"prepaid_node\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[default_switch.id],\n    instance_types=[cloud_efficiency.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_pair_name,\n    instance_charge_type=\"PrePaid\",\n    period=1,\n    period_unit=\"Month\",\n    auto_renew=True,\n    auto_renew_period=1,\n    install_cloud_monitor=True)\n##Create a node pool with customized kubelet parameters\ncustomized_kubelet = alicloud.cs.NodePool(\"customized_kubelet\",\n    node_pool_name=\"customized_kubelet\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[default_switch.id],\n    instance_types=[cloud_efficiency.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    instance_charge_type=\"PostPaid\",\n    desired_size=\"0\",\n    kubelet_configuration={\n        \"registry_pull_qps\": \"10\",\n        \"registry_burst\": \"5\",\n        \"event_record_qps\": \"10\",\n        \"event_burst\": \"5\",\n        \"serialize_image_pulls\": \"true\",\n        \"eviction_hard\": {\n            \"memory.available\": \"1024Mi\",\n            \"nodefs.available\": \"10%\",\n            \"nodefs.inodesFree\": \"5%\",\n            \"imagefs.available\": \"10%\",\n        },\n        \"system_reserved\": {\n            \"cpu\": \"1\",\n            \"memory\": \"1Gi\",\n            \"ephemeral-storage\": \"10Gi\",\n        },\n        \"kube_reserved\": {\n            \"cpu\": \"500m\",\n            \"memory\": \"1Gi\",\n        },\n        \"container_log_max_size\": \"200Mi\",\n        \"container_log_max_files\": \"3\",\n        \"max_pods\": \"100\",\n        \"read_only_port\": \"0\",\n        \"allowed_unsafe_sysctls\": [\"net.ipv4.route.min_pmtu\"],\n    },\n    rolling_policy={\n        \"max_parallelism\": 1,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var enhanced = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var cloudEfficiency = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId),\n        CpuCoreCount = 4,\n        MemorySize = 8,\n        KubernetesNodeRole = \"Worker\",\n        SystemDiskCategory = \"cloud_efficiency\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId),\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        NamePrefix = $\"terraform-example-{@default.Result}\",\n        ClusterSpec = \"ack.pro.small\",\n        WorkerVswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        NewNatGateway = true,\n        PodCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"10.0.0.0/8\",\n            Newbits = 8,\n            Netnum = 36,\n        }).Apply(invoke =\u003e invoke.Result),\n        ServiceCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"172.16.0.0/16\",\n            Newbits = 4,\n            Netnum = 7,\n        }).Apply(invoke =\u003e invoke.Result),\n        SlbInternetEnabled = true,\n        EnableRrsa = true,\n    });\n\n    var defaultKeyPair = new AliCloud.Ecs.KeyPair(\"default\", new()\n    {\n        KeyPairName = $\"terraform-example-{@default.Result}\",\n    });\n\n    var defaultNodePool = new AliCloud.CS.NodePool(\"default\", new()\n    {\n        NodePoolName = name,\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            cloudEfficiency.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyPairName,\n        Labels = new[]\n        {\n            new AliCloud.CS.Inputs.NodePoolLabelArgs\n            {\n                Key = \"test1\",\n                Value = \"nodepool\",\n            },\n            new AliCloud.CS.Inputs.NodePoolLabelArgs\n            {\n                Key = \"test2\",\n                Value = \"nodepool\",\n            },\n        },\n        Taints = new[]\n        {\n            new AliCloud.CS.Inputs.NodePoolTaintArgs\n            {\n                Key = \"tf\",\n                Effect = \"NoSchedule\",\n                Value = \"example\",\n            },\n            new AliCloud.CS.Inputs.NodePoolTaintArgs\n            {\n                Key = \"tf2\",\n                Effect = \"NoSchedule\",\n                Value = \"example2\",\n            },\n        },\n    });\n\n    //The parameter `node_count` is deprecated from version 1.158.0. Please use the new parameter `desired_size` instead, you can update it as follows.\n    var desiredSize = new AliCloud.CS.NodePool(\"desired_size\", new()\n    {\n        NodePoolName = \"desired_size\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            cloudEfficiency.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyPairName,\n        DesiredSize = \"0\",\n    });\n\n    // Create a managed node pool. If you need to enable maintenance window, you need to set the maintenance window in `alicloud_cs_managed_kubernetes`.\n    var maintenance = new AliCloud.CS.NodePool(\"maintenance\", new()\n    {\n        NodePoolName = \"maintenance\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            cloudEfficiency.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyPairName,\n        DesiredSize = \"1\",\n        Management = new AliCloud.CS.Inputs.NodePoolManagementArgs\n        {\n            Enable = true,\n            AutoRepair = true,\n            AutoRepairPolicy = new AliCloud.CS.Inputs.NodePoolManagementAutoRepairPolicyArgs\n            {\n                RestartNode = true,\n            },\n            AutoUpgrade = true,\n            AutoUpgradePolicy = new AliCloud.CS.Inputs.NodePoolManagementAutoUpgradePolicyArgs\n            {\n                AutoUpgradeKubelet = true,\n            },\n            AutoVulFix = true,\n            AutoVulFixPolicy = new AliCloud.CS.Inputs.NodePoolManagementAutoVulFixPolicyArgs\n            {\n                VulLevel = \"asap\",\n                RestartNode = true,\n            },\n            MaxUnavailable = 1,\n        },\n    });\n\n    //Create a node pool with spot instance.\n    var spotInstance = new AliCloud.CS.NodePool(\"spot_instance\", new()\n    {\n        NodePoolName = \"spot_instance\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            cloudEfficiency.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n            cloudEfficiency.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[1]?.Id),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyPairName,\n        DesiredSize = \"1\",\n        SpotStrategy = \"SpotWithPriceLimit\",\n        SpotPriceLimits = new[]\n        {\n            new AliCloud.CS.Inputs.NodePoolSpotPriceLimitArgs\n            {\n                InstanceType = cloudEfficiency.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n                PriceLimit = \"0.70\",\n            },\n            new AliCloud.CS.Inputs.NodePoolSpotPriceLimitArgs\n            {\n                InstanceType = cloudEfficiency.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[1]?.Id),\n                PriceLimit = \"0.72\",\n            },\n        },\n    });\n\n    //Use Spot instances to create a node pool with auto-scaling enabled\n    var spotAutoScaling = new AliCloud.CS.NodePool(\"spot_auto_scaling\", new()\n    {\n        NodePoolName = \"spot_auto_scaling\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            cloudEfficiency.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyPairName,\n        ScalingConfig = new AliCloud.CS.Inputs.NodePoolScalingConfigArgs\n        {\n            MinSize = 1,\n            MaxSize = 10,\n            Type = \"spot\",\n        },\n        SpotStrategy = \"SpotWithPriceLimit\",\n        SpotPriceLimits = new[]\n        {\n            new AliCloud.CS.Inputs.NodePoolSpotPriceLimitArgs\n            {\n                InstanceType = cloudEfficiency.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n                PriceLimit = \"0.70\",\n            },\n        },\n    });\n\n    //Create a `PrePaid` node pool.\n    var prepaidNode = new AliCloud.CS.NodePool(\"prepaid_node\", new()\n    {\n        NodePoolName = \"prepaid_node\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            cloudEfficiency.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyPairName,\n        InstanceChargeType = \"PrePaid\",\n        Period = 1,\n        PeriodUnit = \"Month\",\n        AutoRenew = true,\n        AutoRenewPeriod = 1,\n        InstallCloudMonitor = true,\n    });\n\n    //#Create a node pool with customized kubelet parameters\n    var customizedKubelet = new AliCloud.CS.NodePool(\"customized_kubelet\", new()\n    {\n        NodePoolName = \"customized_kubelet\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            cloudEfficiency.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        InstanceChargeType = \"PostPaid\",\n        DesiredSize = \"0\",\n        KubeletConfiguration = new AliCloud.CS.Inputs.NodePoolKubeletConfigurationArgs\n        {\n            RegistryPullQps = \"10\",\n            RegistryBurst = \"5\",\n            EventRecordQps = \"10\",\n            EventBurst = \"5\",\n            SerializeImagePulls = \"true\",\n            EvictionHard = \n            {\n                { \"memory.available\", \"1024Mi\" },\n                { \"nodefs.available\", \"10%\" },\n                { \"nodefs.inodesFree\", \"5%\" },\n                { \"imagefs.available\", \"10%\" },\n            },\n            SystemReserved = \n            {\n                { \"cpu\", \"1\" },\n                { \"memory\", \"1Gi\" },\n                { \"ephemeral-storage\", \"10Gi\" },\n            },\n            KubeReserved = \n            {\n                { \"cpu\", \"500m\" },\n                { \"memory\", \"1Gi\" },\n            },\n            ContainerLogMaxSize = \"200Mi\",\n            ContainerLogMaxFiles = \"3\",\n            MaxPods = \"100\",\n            ReadOnlyPort = \"0\",\n            AllowedUnsafeSysctls = new[]\n            {\n                \"net.ipv4.route.min_pmtu\",\n            },\n        },\n        RollingPolicy = new AliCloud.CS.Inputs.NodePoolRollingPolicyArgs\n        {\n            MaxParallelism = 1,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tenhanced, err := vpc.GetEnhancedNatAvailableZones(ctx, \u0026vpc.GetEnhancedNatAvailableZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcloudEfficiency, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone:   pulumi.StringRef(enhanced.Zones[0].ZoneId),\n\t\t\tCpuCoreCount:       pulumi.IntRef(4),\n\t\t\tMemorySize:         pulumi.Float64Ref(8),\n\t\t\tKubernetesNodeRole: pulumi.StringRef(\"Worker\"),\n\t\t\tSystemDiskCategory: pulumi.StringRef(\"cloud_efficiency\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(enhanced.Zones[0].ZoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"10.0.0.0/8\",\n\t\t\tNewbits: 8,\n\t\t\tNetnum:  36,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet1, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"172.16.0.0/16\",\n\t\t\tNewbits: 4,\n\t\t\tNetnum:  7,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\n\t\t\tNamePrefix:  pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tClusterSpec: pulumi.String(\"ack.pro.small\"),\n\t\t\tWorkerVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tNewNatGateway:      pulumi.Bool(true),\n\t\t\tPodCidr:            pulumi.String(invokeCidrsubnet.Result),\n\t\t\tServiceCidr:        pulumi.String(invokeCidrsubnet1.Result),\n\t\t\tSlbInternetEnabled: pulumi.Bool(true),\n\t\t\tEnableRrsa:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultKeyPair, err := ecs.NewKeyPair(ctx, \"default\", \u0026ecs.KeyPairArgs{\n\t\t\tKeyPairName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cs.NewNodePool(ctx, \"default\", \u0026cs.NodePoolArgs{\n\t\t\tNodePoolName: pulumi.String(name),\n\t\t\tClusterId:    defaultManagedKubernetes.ID(),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(cloudEfficiency.InstanceTypes[0].Id),\n\t\t\t},\n\t\t\tSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tSystemDiskSize:     pulumi.Int(40),\n\t\t\tKeyName:            defaultKeyPair.KeyPairName,\n\t\t\tLabels: cs.NodePoolLabelArray{\n\t\t\t\t\u0026cs.NodePoolLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"test1\"),\n\t\t\t\t\tValue: pulumi.String(\"nodepool\"),\n\t\t\t\t},\n\t\t\t\t\u0026cs.NodePoolLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"test2\"),\n\t\t\t\t\tValue: pulumi.String(\"nodepool\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTaints: cs.NodePoolTaintArray{\n\t\t\t\t\u0026cs.NodePoolTaintArgs{\n\t\t\t\t\tKey:    pulumi.String(\"tf\"),\n\t\t\t\t\tEffect: pulumi.String(\"NoSchedule\"),\n\t\t\t\t\tValue:  pulumi.String(\"example\"),\n\t\t\t\t},\n\t\t\t\t\u0026cs.NodePoolTaintArgs{\n\t\t\t\t\tKey:    pulumi.String(\"tf2\"),\n\t\t\t\t\tEffect: pulumi.String(\"NoSchedule\"),\n\t\t\t\t\tValue:  pulumi.String(\"example2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// The parameter `node_count` is deprecated from version 1.158.0. Please use the new parameter `desired_size` instead, you can update it as follows.\n\t\t_, err = cs.NewNodePool(ctx, \"desired_size\", \u0026cs.NodePoolArgs{\n\t\t\tNodePoolName: pulumi.String(\"desired_size\"),\n\t\t\tClusterId:    defaultManagedKubernetes.ID(),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(cloudEfficiency.InstanceTypes[0].Id),\n\t\t\t},\n\t\t\tSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tSystemDiskSize:     pulumi.Int(40),\n\t\t\tKeyName:            defaultKeyPair.KeyPairName,\n\t\t\tDesiredSize:        pulumi.String(\"0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a managed node pool. If you need to enable maintenance window, you need to set the maintenance window in `alicloud_cs_managed_kubernetes`.\n\t\t_, err = cs.NewNodePool(ctx, \"maintenance\", \u0026cs.NodePoolArgs{\n\t\t\tNodePoolName: pulumi.String(\"maintenance\"),\n\t\t\tClusterId:    defaultManagedKubernetes.ID(),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(cloudEfficiency.InstanceTypes[0].Id),\n\t\t\t},\n\t\t\tSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tSystemDiskSize:     pulumi.Int(40),\n\t\t\tKeyName:            defaultKeyPair.KeyPairName,\n\t\t\tDesiredSize:        pulumi.String(\"1\"),\n\t\t\tManagement: \u0026cs.NodePoolManagementArgs{\n\t\t\t\tEnable:     pulumi.Bool(true),\n\t\t\t\tAutoRepair: pulumi.Bool(true),\n\t\t\t\tAutoRepairPolicy: \u0026cs.NodePoolManagementAutoRepairPolicyArgs{\n\t\t\t\t\tRestartNode: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tAutoUpgrade: pulumi.Bool(true),\n\t\t\t\tAutoUpgradePolicy: \u0026cs.NodePoolManagementAutoUpgradePolicyArgs{\n\t\t\t\t\tAutoUpgradeKubelet: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tAutoVulFix: pulumi.Bool(true),\n\t\t\t\tAutoVulFixPolicy: \u0026cs.NodePoolManagementAutoVulFixPolicyArgs{\n\t\t\t\t\tVulLevel:    pulumi.String(\"asap\"),\n\t\t\t\t\tRestartNode: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tMaxUnavailable: pulumi.Int(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a node pool with spot instance.\n\t\t_, err = cs.NewNodePool(ctx, \"spot_instance\", \u0026cs.NodePoolArgs{\n\t\t\tNodePoolName: pulumi.String(\"spot_instance\"),\n\t\t\tClusterId:    defaultManagedKubernetes.ID(),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(cloudEfficiency.InstanceTypes[0].Id),\n\t\t\t\tpulumi.String(cloudEfficiency.InstanceTypes[1].Id),\n\t\t\t},\n\t\t\tSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tSystemDiskSize:     pulumi.Int(40),\n\t\t\tKeyName:            defaultKeyPair.KeyPairName,\n\t\t\tDesiredSize:        pulumi.String(\"1\"),\n\t\t\tSpotStrategy:       pulumi.String(\"SpotWithPriceLimit\"),\n\t\t\tSpotPriceLimits: cs.NodePoolSpotPriceLimitArray{\n\t\t\t\t\u0026cs.NodePoolSpotPriceLimitArgs{\n\t\t\t\t\tInstanceType: pulumi.String(cloudEfficiency.InstanceTypes[0].Id),\n\t\t\t\t\tPriceLimit:   pulumi.String(\"0.70\"),\n\t\t\t\t},\n\t\t\t\t\u0026cs.NodePoolSpotPriceLimitArgs{\n\t\t\t\t\tInstanceType: pulumi.String(cloudEfficiency.InstanceTypes[1].Id),\n\t\t\t\t\tPriceLimit:   pulumi.String(\"0.72\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Use Spot instances to create a node pool with auto-scaling enabled\n\t\t_, err = cs.NewNodePool(ctx, \"spot_auto_scaling\", \u0026cs.NodePoolArgs{\n\t\t\tNodePoolName: pulumi.String(\"spot_auto_scaling\"),\n\t\t\tClusterId:    defaultManagedKubernetes.ID(),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(cloudEfficiency.InstanceTypes[0].Id),\n\t\t\t},\n\t\t\tSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tSystemDiskSize:     pulumi.Int(40),\n\t\t\tKeyName:            defaultKeyPair.KeyPairName,\n\t\t\tScalingConfig: \u0026cs.NodePoolScalingConfigArgs{\n\t\t\t\tMinSize: pulumi.Int(1),\n\t\t\t\tMaxSize: pulumi.Int(10),\n\t\t\t\tType:    pulumi.String(\"spot\"),\n\t\t\t},\n\t\t\tSpotStrategy: pulumi.String(\"SpotWithPriceLimit\"),\n\t\t\tSpotPriceLimits: cs.NodePoolSpotPriceLimitArray{\n\t\t\t\t\u0026cs.NodePoolSpotPriceLimitArgs{\n\t\t\t\t\tInstanceType: pulumi.String(cloudEfficiency.InstanceTypes[0].Id),\n\t\t\t\t\tPriceLimit:   pulumi.String(\"0.70\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a `PrePaid` node pool.\n\t\t_, err = cs.NewNodePool(ctx, \"prepaid_node\", \u0026cs.NodePoolArgs{\n\t\t\tNodePoolName: pulumi.String(\"prepaid_node\"),\n\t\t\tClusterId:    defaultManagedKubernetes.ID(),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(cloudEfficiency.InstanceTypes[0].Id),\n\t\t\t},\n\t\t\tSystemDiskCategory:  pulumi.String(\"cloud_efficiency\"),\n\t\t\tSystemDiskSize:      pulumi.Int(40),\n\t\t\tKeyName:             defaultKeyPair.KeyPairName,\n\t\t\tInstanceChargeType:  pulumi.String(\"PrePaid\"),\n\t\t\tPeriod:              pulumi.Int(1),\n\t\t\tPeriodUnit:          pulumi.String(\"Month\"),\n\t\t\tAutoRenew:           pulumi.Bool(true),\n\t\t\tAutoRenewPeriod:     pulumi.Int(1),\n\t\t\tInstallCloudMonitor: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// #Create a node pool with customized kubelet parameters\n\t\t_, err = cs.NewNodePool(ctx, \"customized_kubelet\", \u0026cs.NodePoolArgs{\n\t\t\tNodePoolName: pulumi.String(\"customized_kubelet\"),\n\t\t\tClusterId:    defaultManagedKubernetes.ID(),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(cloudEfficiency.InstanceTypes[0].Id),\n\t\t\t},\n\t\t\tSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tSystemDiskSize:     pulumi.Int(40),\n\t\t\tInstanceChargeType: pulumi.String(\"PostPaid\"),\n\t\t\tDesiredSize:        pulumi.String(\"0\"),\n\t\t\tKubeletConfiguration: \u0026cs.NodePoolKubeletConfigurationArgs{\n\t\t\t\tRegistryPullQps:     pulumi.String(\"10\"),\n\t\t\t\tRegistryBurst:       pulumi.String(\"5\"),\n\t\t\t\tEventRecordQps:      pulumi.String(\"10\"),\n\t\t\t\tEventBurst:          pulumi.String(\"5\"),\n\t\t\t\tSerializeImagePulls: pulumi.String(\"true\"),\n\t\t\t\tEvictionHard: pulumi.StringMap{\n\t\t\t\t\t\"memory.available\":  pulumi.String(\"1024Mi\"),\n\t\t\t\t\t\"nodefs.available\":  pulumi.String(\"10%\"),\n\t\t\t\t\t\"nodefs.inodesFree\": pulumi.String(\"5%\"),\n\t\t\t\t\t\"imagefs.available\": pulumi.String(\"10%\"),\n\t\t\t\t},\n\t\t\t\tSystemReserved: pulumi.StringMap{\n\t\t\t\t\t\"cpu\":               pulumi.String(\"1\"),\n\t\t\t\t\t\"memory\":            pulumi.String(\"1Gi\"),\n\t\t\t\t\t\"ephemeral-storage\": pulumi.String(\"10Gi\"),\n\t\t\t\t},\n\t\t\t\tKubeReserved: pulumi.StringMap{\n\t\t\t\t\t\"cpu\":    pulumi.String(\"500m\"),\n\t\t\t\t\t\"memory\": pulumi.String(\"1Gi\"),\n\t\t\t\t},\n\t\t\t\tContainerLogMaxSize:  pulumi.String(\"200Mi\"),\n\t\t\t\tContainerLogMaxFiles: pulumi.String(\"3\"),\n\t\t\t\tMaxPods:              pulumi.String(\"100\"),\n\t\t\t\tReadOnlyPort:         pulumi.String(\"0\"),\n\t\t\t\tAllowedUnsafeSysctls: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"net.ipv4.route.min_pmtu\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRollingPolicy: \u0026cs.NodePoolRollingPolicyArgs{\n\t\t\t\tMaxParallelism: pulumi.Int(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.KeyPair;\nimport com.pulumi.alicloud.ecs.KeyPairArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.cs.inputs.NodePoolLabelArgs;\nimport com.pulumi.alicloud.cs.inputs.NodePoolTaintArgs;\nimport com.pulumi.alicloud.cs.inputs.NodePoolManagementArgs;\nimport com.pulumi.alicloud.cs.inputs.NodePoolManagementAutoRepairPolicyArgs;\nimport com.pulumi.alicloud.cs.inputs.NodePoolManagementAutoUpgradePolicyArgs;\nimport com.pulumi.alicloud.cs.inputs.NodePoolManagementAutoVulFixPolicyArgs;\nimport com.pulumi.alicloud.cs.inputs.NodePoolSpotPriceLimitArgs;\nimport com.pulumi.alicloud.cs.inputs.NodePoolScalingConfigArgs;\nimport com.pulumi.alicloud.cs.inputs.NodePoolKubeletConfigurationArgs;\nimport com.pulumi.alicloud.cs.inputs.NodePoolRollingPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var enhanced = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        final var cloudEfficiency = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(enhanced.zones()[0].zoneId())\n            .cpuCoreCount(4)\n            .memorySize(8)\n            .kubernetesNodeRole(\"Worker\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(enhanced.zones()[0].zoneId())\n            .build());\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .namePrefix(String.format(\"terraform-example-%s\", default_.result()))\n            .clusterSpec(\"ack.pro.small\")\n            .workerVswitchIds(defaultSwitch.id())\n            .newNatGateway(true)\n            .podCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"10.0.0.0/8\")\n                .newbits(8)\n                .netnum(36)\n                .build()).result())\n            .serviceCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"172.16.0.0/16\")\n                .newbits(4)\n                .netnum(7)\n                .build()).result())\n            .slbInternetEnabled(true)\n            .enableRrsa(true)\n            .build());\n\n        var defaultKeyPair = new KeyPair(\"defaultKeyPair\", KeyPairArgs.builder()\n            .keyPairName(String.format(\"terraform-example-%s\", default_.result()))\n            .build());\n\n        var defaultNodePool = new NodePool(\"defaultNodePool\", NodePoolArgs.builder()\n            .nodePoolName(name)\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(defaultSwitch.id())\n            .instanceTypes(cloudEfficiency.instanceTypes()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyPairName())\n            .labels(            \n                NodePoolLabelArgs.builder()\n                    .key(\"test1\")\n                    .value(\"nodepool\")\n                    .build(),\n                NodePoolLabelArgs.builder()\n                    .key(\"test2\")\n                    .value(\"nodepool\")\n                    .build())\n            .taints(            \n                NodePoolTaintArgs.builder()\n                    .key(\"tf\")\n                    .effect(\"NoSchedule\")\n                    .value(\"example\")\n                    .build(),\n                NodePoolTaintArgs.builder()\n                    .key(\"tf2\")\n                    .effect(\"NoSchedule\")\n                    .value(\"example2\")\n                    .build())\n            .build());\n\n        //The parameter `node_count` is deprecated from version 1.158.0. Please use the new parameter `desired_size` instead, you can update it as follows.\n        var desiredSize = new NodePool(\"desiredSize\", NodePoolArgs.builder()\n            .nodePoolName(\"desired_size\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(defaultSwitch.id())\n            .instanceTypes(cloudEfficiency.instanceTypes()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyPairName())\n            .desiredSize(\"0\")\n            .build());\n\n        // Create a managed node pool. If you need to enable maintenance window, you need to set the maintenance window in `alicloud_cs_managed_kubernetes`.\n        var maintenance = new NodePool(\"maintenance\", NodePoolArgs.builder()\n            .nodePoolName(\"maintenance\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(defaultSwitch.id())\n            .instanceTypes(cloudEfficiency.instanceTypes()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyPairName())\n            .desiredSize(\"1\")\n            .management(NodePoolManagementArgs.builder()\n                .enable(true)\n                .autoRepair(true)\n                .autoRepairPolicy(NodePoolManagementAutoRepairPolicyArgs.builder()\n                    .restartNode(true)\n                    .build())\n                .autoUpgrade(true)\n                .autoUpgradePolicy(NodePoolManagementAutoUpgradePolicyArgs.builder()\n                    .autoUpgradeKubelet(true)\n                    .build())\n                .autoVulFix(true)\n                .autoVulFixPolicy(NodePoolManagementAutoVulFixPolicyArgs.builder()\n                    .vulLevel(\"asap\")\n                    .restartNode(true)\n                    .build())\n                .maxUnavailable(1)\n                .build())\n            .build());\n\n        //Create a node pool with spot instance.\n        var spotInstance = new NodePool(\"spotInstance\", NodePoolArgs.builder()\n            .nodePoolName(\"spot_instance\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(defaultSwitch.id())\n            .instanceTypes(            \n                cloudEfficiency.instanceTypes()[0].id(),\n                cloudEfficiency.instanceTypes()[1].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyPairName())\n            .desiredSize(\"1\")\n            .spotStrategy(\"SpotWithPriceLimit\")\n            .spotPriceLimits(            \n                NodePoolSpotPriceLimitArgs.builder()\n                    .instanceType(cloudEfficiency.instanceTypes()[0].id())\n                    .priceLimit(\"0.70\")\n                    .build(),\n                NodePoolSpotPriceLimitArgs.builder()\n                    .instanceType(cloudEfficiency.instanceTypes()[1].id())\n                    .priceLimit(\"0.72\")\n                    .build())\n            .build());\n\n        //Use Spot instances to create a node pool with auto-scaling enabled\n        var spotAutoScaling = new NodePool(\"spotAutoScaling\", NodePoolArgs.builder()\n            .nodePoolName(\"spot_auto_scaling\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(defaultSwitch.id())\n            .instanceTypes(cloudEfficiency.instanceTypes()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyPairName())\n            .scalingConfig(NodePoolScalingConfigArgs.builder()\n                .minSize(1)\n                .maxSize(10)\n                .type(\"spot\")\n                .build())\n            .spotStrategy(\"SpotWithPriceLimit\")\n            .spotPriceLimits(NodePoolSpotPriceLimitArgs.builder()\n                .instanceType(cloudEfficiency.instanceTypes()[0].id())\n                .priceLimit(\"0.70\")\n                .build())\n            .build());\n\n        //Create a `PrePaid` node pool.\n        var prepaidNode = new NodePool(\"prepaidNode\", NodePoolArgs.builder()\n            .nodePoolName(\"prepaid_node\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(defaultSwitch.id())\n            .instanceTypes(cloudEfficiency.instanceTypes()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyPairName())\n            .instanceChargeType(\"PrePaid\")\n            .period(1)\n            .periodUnit(\"Month\")\n            .autoRenew(true)\n            .autoRenewPeriod(1)\n            .installCloudMonitor(true)\n            .build());\n\n        //#Create a node pool with customized kubelet parameters\n        var customizedKubelet = new NodePool(\"customizedKubelet\", NodePoolArgs.builder()\n            .nodePoolName(\"customized_kubelet\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(defaultSwitch.id())\n            .instanceTypes(cloudEfficiency.instanceTypes()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .instanceChargeType(\"PostPaid\")\n            .desiredSize(\"0\")\n            .kubeletConfiguration(NodePoolKubeletConfigurationArgs.builder()\n                .registryPullQps(\"10\")\n                .registryBurst(\"5\")\n                .eventRecordQps(\"10\")\n                .eventBurst(\"5\")\n                .serializeImagePulls(\"true\")\n                .evictionHard(Map.ofEntries(\n                    Map.entry(\"memory.available\", \"1024Mi\"),\n                    Map.entry(\"nodefs.available\", \"10%\"),\n                    Map.entry(\"nodefs.inodesFree\", \"5%\"),\n                    Map.entry(\"imagefs.available\", \"10%\")\n                ))\n                .systemReserved(Map.ofEntries(\n                    Map.entry(\"cpu\", \"1\"),\n                    Map.entry(\"memory\", \"1Gi\"),\n                    Map.entry(\"ephemeral-storage\", \"10Gi\")\n                ))\n                .kubeReserved(Map.ofEntries(\n                    Map.entry(\"cpu\", \"500m\"),\n                    Map.entry(\"memory\", \"1Gi\")\n                ))\n                .containerLogMaxSize(\"200Mi\")\n                .containerLogMaxFiles(\"3\")\n                .maxPods(\"100\")\n                .readOnlyPort(\"0\")\n                .allowedUnsafeSysctls(\"net.ipv4.route.min_pmtu\")\n                .build())\n            .rollingPolicy(NodePoolRollingPolicyArgs.builder()\n                .maxParallelism(1)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${enhanced.zones[0].zoneId}\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      namePrefix: terraform-example-${default.result}\n      clusterSpec: ack.pro.small\n      workerVswitchIds:\n        - ${defaultSwitch.id}\n      newNatGateway: true\n      podCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 10.0.0.0/8\n            newbits: 8\n            netnum: 36\n          return: result\n      serviceCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 172.16.0.0/16\n            newbits: 4\n            netnum: 7\n          return: result\n      slbInternetEnabled: true\n      enableRrsa: true\n  defaultKeyPair:\n    type: alicloud:ecs:KeyPair\n    name: default\n    properties:\n      keyPairName: terraform-example-${default.result}\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      nodePoolName: ${name}\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      instanceTypes:\n        - ${cloudEfficiency.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyPairName}\n      labels:\n        - key: test1\n          value: nodepool\n        - key: test2\n          value: nodepool\n      taints:\n        - key: tf\n          effect: NoSchedule\n          value: example\n        - key: tf2\n          effect: NoSchedule\n          value: example2\n  #The parameter `node_count` is deprecated from version 1.158.0. Please use the new parameter `desired_size` instead, you can update it as follows.\n  desiredSize:\n    type: alicloud:cs:NodePool\n    name: desired_size\n    properties:\n      nodePoolName: desired_size\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      instanceTypes:\n        - ${cloudEfficiency.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyPairName}\n      desiredSize: 0\n  # Create a managed node pool. If you need to enable maintenance window, you need to set the maintenance window in `alicloud_cs_managed_kubernetes`.\n  maintenance:\n    type: alicloud:cs:NodePool\n    properties:\n      nodePoolName: maintenance\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      instanceTypes:\n        - ${cloudEfficiency.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40 # only key_name is supported in the management node pool\n      keyName: ${defaultKeyPair.keyPairName}\n      desiredSize: 1 # management node pool configuration.\n      management:\n        enable: true\n        autoRepair: true\n        autoRepairPolicy:\n          restartNode: true\n        autoUpgrade: true\n        autoUpgradePolicy:\n          autoUpgradeKubelet: true\n        autoVulFix: true\n        autoVulFixPolicy:\n          vulLevel: asap\n          restartNode: true\n        maxUnavailable: 1\n  #Create a node pool with spot instance.\n  spotInstance:\n    type: alicloud:cs:NodePool\n    name: spot_instance\n    properties:\n      nodePoolName: spot_instance\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      instanceTypes:\n        - ${cloudEfficiency.instanceTypes[0].id}\n        - ${cloudEfficiency.instanceTypes[1].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyPairName}\n      desiredSize: 1 # spot config\n      spotStrategy: SpotWithPriceLimit\n      spotPriceLimits:\n        - instanceType: ${cloudEfficiency.instanceTypes[0].id}\n          priceLimit: '0.70'\n        - instanceType: ${cloudEfficiency.instanceTypes[1].id}\n          priceLimit: '0.72'\n  #Use Spot instances to create a node pool with auto-scaling enabled\n  spotAutoScaling:\n    type: alicloud:cs:NodePool\n    name: spot_auto_scaling\n    properties:\n      nodePoolName: spot_auto_scaling\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      instanceTypes:\n        - ${cloudEfficiency.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyPairName}\n      scalingConfig:\n        minSize: 1\n        maxSize: 10\n        type: spot\n      spotStrategy: SpotWithPriceLimit\n      spotPriceLimits:\n        - instanceType: ${cloudEfficiency.instanceTypes[0].id}\n          priceLimit: '0.70'\n  #Create a `PrePaid` node pool.\n  prepaidNode:\n    type: alicloud:cs:NodePool\n    name: prepaid_node\n    properties:\n      nodePoolName: prepaid_node\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      instanceTypes:\n        - ${cloudEfficiency.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyPairName}\n      instanceChargeType: PrePaid\n      period: 1\n      periodUnit: Month\n      autoRenew: true\n      autoRenewPeriod: 1 # open cloud monitor\n      installCloudMonitor: true\n  ##Create a node pool with customized kubelet parameters\n  customizedKubelet:\n    type: alicloud:cs:NodePool\n    name: customized_kubelet\n    properties:\n      nodePoolName: customized_kubelet\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      instanceTypes:\n        - ${cloudEfficiency.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      instanceChargeType: PostPaid\n      desiredSize: 0 # kubelet configuration parameters\n      kubeletConfiguration:\n        registryPullQps: 10\n        registryBurst: 5\n        eventRecordQps: 10\n        eventBurst: 5\n        serializeImagePulls: true\n        evictionHard:\n          memory.available: 1024Mi\n          nodefs.available: 10%\n          nodefs.inodesFree: 5%\n          imagefs.available: 10%\n        systemReserved:\n          cpu: '1'\n          memory: 1Gi\n          ephemeral-storage: 10Gi\n        kubeReserved:\n          cpu: 500m\n          memory: 1Gi\n        containerLogMaxSize: 200Mi\n        containerLogMaxFiles: 3\n        maxPods: 100\n        readOnlyPort: 0\n        allowedUnsafeSysctls:\n          - net.ipv4.route.min_pmtu\n      rollingPolicy:\n        maxParallelism: 1\nvariables:\n  enhanced:\n    fn::invoke:\n      function: alicloud:vpc:getEnhancedNatAvailableZones\n      arguments: {}\n  cloudEfficiency:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${enhanced.zones[0].zoneId}\n        cpuCoreCount: 4\n        memorySize: 8\n        kubernetesNodeRole: Worker\n        systemDiskCategory: cloud_efficiency\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nACK Auto Mode NodePool:\n\nACK nodepool with Auto Mode\nNodepools enable Auto Mode can only be created in Auto Mode clusters. An Auto Mode cluster automatically creates a Auto Mode node pool when creating cluster, which you can import using terraform import. You can also create a new Auto Mode node pool using the following code.\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst regionId = config.get(\"regionId\") || \"cn-hangzhou\";\n// The cluster specifications of kubernetes cluster,which can be empty. Valid values:ack.standard : Standard managed clusters; ack.pro.small : Professional managed clusters.\nconst clusterSpec = config.get(\"clusterSpec\") || \"ack.pro.small\";\n// The availability zones of vswitches.\nconst availabilityZone = config.getObject\u003cany\u003e(\"availabilityZone\") || [\n    \"cn-hangzhou-i\",\n    \"cn-hangzhou-j\",\n    \"cn-hangzhou-k\",\n];\n// List of existing node vswitch ids for terway.\nconst nodeVswitchIds = config.getObject\u003cArray\u003cstring\u003e\u003e(\"nodeVswitchIds\") || [];\n// List of cidr blocks used to create several new vswitches when 'node_vswitch_ids' is not specified.\nconst nodeVswitchCidrs = config.getObject\u003cArray\u003cstring\u003e\u003e(\"nodeVswitchCidrs\") || [\n    \"172.16.0.0/23\",\n    \"172.16.2.0/23\",\n    \"172.16.4.0/23\",\n];\n// List of existing pod vswitch ids for terway.\nconst terwayVswitchIds = config.getObject\u003cArray\u003cstring\u003e\u003e(\"terwayVswitchIds\") || [];\n// List of cidr blocks used to create several new vswitches when 'terway_vswitch_ids' is not specified.\nconst terwayVswitchCidrs = config.getObject\u003cArray\u003cstring\u003e\u003e(\"terwayVswitchCidrs\") || [\n    \"172.16.208.0/20\",\n    \"172.16.224.0/20\",\n    \"172.16.240.0/20\",\n];\nconst clusterAddons = config.getObject\u003cArray\u003c{config?: string, disabled?: boolean, name?: string}\u003e\u003e(\"clusterAddons\") || [\n    {\n        config: null,\n        disabled: false,\n        name: \"metrics-server\",\n    },\n    {\n        config: null,\n        disabled: false,\n        name: \"managed-coredns\",\n    },\n    {\n        config: null,\n        disabled: false,\n        name: \"managed-security-inspector\",\n    },\n    {\n        config: null,\n        disabled: false,\n        name: \"ack-cost-exporter\",\n    },\n    {\n        config: \"{\\\"ENITrunking\\\":\\\"true\\\"}\",\n        disabled: false,\n        name: \"terway-controlplane\",\n    },\n    {\n        config: \"{\\\"NetworkPolicy\\\":\\\"false\\\",\\\"ENITrunking\\\":\\\"true\\\",\\\"IPVlan\\\":\\\"false\\\"}\",\n        disabled: false,\n        name: \"terway-eniip\",\n    },\n    {\n        config: null,\n        disabled: false,\n        name: \"csi-plugin\",\n    },\n    {\n        config: null,\n        disabled: false,\n        name: \"managed-csiprovisioner\",\n    },\n    {\n        config: \"{\\\"CnfsOssEnable\\\":\\\"false\\\",\\\"CnfsNasEnable\\\":\\\"false\\\"}\",\n        disabled: false,\n        name: \"storage-operator\",\n    },\n    {\n        config: \"{\\\"IngressDashboardEnabled\\\":\\\"true\\\"}\",\n        disabled: false,\n        name: \"loongcollector\",\n    },\n    {\n        config: \"{\\\"sls_project_name\\\":\\\"\\\"}\",\n        disabled: false,\n        name: \"ack-node-problem-detector\",\n    },\n    {\n        config: null,\n        disabled: true,\n        name: \"nginx-ingress-controller\",\n    },\n    {\n        config: \"{\\\"albIngress\\\":{\\\"CreateDefaultALBConfig\\\":false}}\",\n        disabled: false,\n        name: \"alb-ingress-controller\",\n    },\n    {\n        config: \"{\\\"prometheusMode\\\":\\\"default\\\"}\",\n        disabled: false,\n        name: \"arms-prometheus\",\n    },\n    {\n        config: null,\n        disabled: false,\n        name: \"alicloud-monitor-controller\",\n    },\n    {\n        config: null,\n        disabled: false,\n        name: \"managed-aliyun-acr-credential-helper\",\n    },\n];\n// The name prefix used to create managed kubernetes cluster.\nconst k8sNamePrefix = config.get(\"k8sNamePrefix\") || \"tf-ack-hangzhou\";\nconst k8sNameTerway = std.join({\n    separator: \"-\",\n    input: [\n        k8sNamePrefix,\n        \"terway\",\n    ],\n}).then(invoke =\u003e std.substr({\n    input: invoke.result,\n    offset: 0,\n    length: 63,\n})).then(invoke =\u003e invoke.result);\nconst newVpcName = \"tf-vpc-172-16\";\nconst nodepoolName = \"default-nodepool\";\nconst _default = new alicloud.vpc.Network(\"default\", {\n    vpcName: newVpcName,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst vswitches: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c (nodeVswitchIds.length \u003e 0 ? 0 : nodeVswitchCidrs.length); range.value++) {\n    vswitches.push(new alicloud.vpc.Switch(`vswitches-${range.value}`, {\n        vpcId: _default.id,\n        cidrBlock: nodeVswitchCidrs[range.value],\n        zoneId: availabilityZone[range.value],\n    }));\n}\nconst terwayVswitches: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c (terwayVswitchIds.length \u003e 0 ? 0 : terwayVswitchCidrs.length); range.value++) {\n    terwayVswitches.push(new alicloud.vpc.Switch(`terway_vswitches-${range.value}`, {\n        vpcId: _default.id,\n        cidrBlock: terwayVswitchCidrs[range.value],\n        zoneId: availabilityZone[range.value],\n    }));\n}\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    addons: clusterAddons.map((v, k) =\u003e ({key: k, value: v})).map(entry =\u003e ({\n        name: std.lookup({\n            map: entry.value,\n            key: \"name\",\n            \"default\": clusterAddons,\n        }).then(invoke =\u003e invoke.result),\n        config: std.lookup({\n            map: entry.value,\n            key: \"config\",\n            \"default\": clusterAddons,\n        }).then(invoke =\u003e invoke.result),\n        disabled: std.lookup({\n            map: entry.value,\n            key: \"disabled\",\n            \"default\": clusterAddons,\n        }).then(invoke =\u003e invoke.result),\n    })),\n    name: k8sNameTerway,\n    clusterSpec: clusterSpec,\n    vswitchIds: std.joinOutput({\n        separator: \",\",\n        input: vswitches.map(__item =\u003e __item.id),\n    }).apply(invoke =\u003e std.splitOutput({\n        separator: \",\",\n        text: invoke.result,\n    })).apply(invoke =\u003e invoke.result),\n    podVswitchIds: std.joinOutput({\n        separator: \",\",\n        input: terwayVswitches.map(__item =\u003e __item.id),\n    }).apply(invoke =\u003e std.splitOutput({\n        separator: \",\",\n        text: invoke.result,\n    })).apply(invoke =\u003e invoke.result),\n    newNatGateway: true,\n    serviceCidr: \"10.11.0.0/16\",\n    slbInternetEnabled: true,\n    enableRrsa: true,\n    controlPlaneLogComponents: [\n        \"apiserver\",\n        \"kcm\",\n        \"scheduler\",\n        \"ccm\",\n    ],\n    autoMode: {\n        enabled: true,\n    },\n    maintenanceWindow: {\n        duration: \"3h\",\n        weeklyPeriod: \"Monday\",\n        enable: true,\n        maintenanceTime: \"2025-07-07T00:00:00.000+08:00\",\n    },\n    operationPolicy: {\n        clusterAutoUpgrade: {\n            channel: \"stable\",\n            enabled: true,\n        },\n    },\n});\nconst autoModeExample = new alicloud.cs.NodePool(\"auto_mode_example\", {\n    nodePoolName: nodepoolName,\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: std.joinOutput({\n        separator: \",\",\n        input: vswitches.map(__item =\u003e __item.id),\n    }).apply(invoke =\u003e std.splitOutput({\n        separator: \",\",\n        text: invoke.result,\n    })).apply(invoke =\u003e invoke.result),\n    autoMode: {\n        enabled: true,\n    },\n    scalingConfig: {\n        maxSize: 50,\n        minSize: 0,\n    },\n    instancePatterns: [{\n        minCpuCores: 4,\n        maxCpuCores: 16,\n        minMemorySize: 8,\n        maxMemorySize: 32,\n        instanceFamilyLevel: \"EnterpriseLevel\",\n        instanceTypeFamilies: [\n            \"ecs.u1\",\n            \"ecs.g6\",\n            \"ecs.c6\",\n            \"ecs.r6\",\n            \"ecs.g7\",\n            \"ecs.c7\",\n            \"ecs.r7\",\n            \"ecs.g8i\",\n            \"ecs.c8i\",\n            \"ecs.r8i\",\n        ],\n        excludedInstanceTypes: [\n            \"ecs.c6t.*\",\n            \"ecs.g6t.*\",\n            \"ecs.t5.*\",\n            \"ecs.t6.*\",\n            \"ecs.vgn.*\",\n            \"ecs.sgn.*\",\n        ],\n        instanceCategories: [\"General-purpose\"],\n        cpuArchitectures: [\"X86\"],\n    }],\n    dataDisks: [{\n        size: 120,\n        encrypted: \"false\",\n        category: \"cloud_essd\",\n    }],\n    labels: [\n        {\n            key: \"example1\",\n            value: \"nodepool\",\n        },\n        {\n            key: \"example2\",\n            value: \"nodepool\",\n        },\n    ],\n    taints: [\n        {\n            key: \"tf\",\n            effect: \"NoSchedule\",\n            value: \"example\",\n        },\n        {\n            key: \"tf2\",\n            effect: \"NoSchedule\",\n            value: \"example2\",\n        },\n    ],\n});\n//Upgrade a node pool with upgrade_policy and rolling_policy\nconst upgradeNodepool = new alicloud.cs.NodePool(\"upgrade_nodepool\", {\n    nodePoolName: \"upgrade_nodepool\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: std.joinOutput({\n        separator: \",\",\n        input: vswitches.map(__item =\u003e __item.id),\n    }).apply(invoke =\u003e std.splitOutput({\n        separator: \",\",\n        text: invoke.result,\n    })).apply(invoke =\u003e invoke.result),\n    instanceTypes: [\"ecs.c6.xlarge\"],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    desiredSize: \"2\",\n    runtimeName: \"containerd\",\n    runtimeVersion: \"1.6.39\",\n    imageId: \"aliyun_3_x64_20G_container_optimized_alibase_20250629.vhd\",\n    upgradePolicy: {\n        imageId: \"aliyun_3_x64_20G_container_optimized_alibase_20250629.vhd\",\n        runtime: \"containerd\",\n        runtimeVersion: \"1.6.39\",\n        kubernetesVersion: defaultManagedKubernetes.version,\n        useReplace: true,\n    },\n    rollingPolicy: {\n        maxParallelism: 1,\n        batchInterval: \"1\",\n        pausePolicy: \"NotPause\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-hangzhou\"\n# The cluster specifications of kubernetes cluster,which can be empty. Valid values:ack.standard : Standard managed clusters; ack.pro.small : Professional managed clusters.\ncluster_spec = config.get(\"clusterSpec\")\nif cluster_spec is None:\n    cluster_spec = \"ack.pro.small\"\n# The availability zones of vswitches.\navailability_zone = config.get_object(\"availabilityZone\")\nif availability_zone is None:\n    availability_zone = [\n        \"cn-hangzhou-i\",\n        \"cn-hangzhou-j\",\n        \"cn-hangzhou-k\",\n    ]\n# List of existing node vswitch ids for terway.\nnode_vswitch_ids = config.get_object(\"nodeVswitchIds\")\nif node_vswitch_ids is None:\n    node_vswitch_ids = []\n# List of cidr blocks used to create several new vswitches when 'node_vswitch_ids' is not specified.\nnode_vswitch_cidrs = config.get_object(\"nodeVswitchCidrs\")\nif node_vswitch_cidrs is None:\n    node_vswitch_cidrs = [\n        \"172.16.0.0/23\",\n        \"172.16.2.0/23\",\n        \"172.16.4.0/23\",\n    ]\n# List of existing pod vswitch ids for terway.\nterway_vswitch_ids = config.get_object(\"terwayVswitchIds\")\nif terway_vswitch_ids is None:\n    terway_vswitch_ids = []\n# List of cidr blocks used to create several new vswitches when 'terway_vswitch_ids' is not specified.\nterway_vswitch_cidrs = config.get_object(\"terwayVswitchCidrs\")\nif terway_vswitch_cidrs is None:\n    terway_vswitch_cidrs = [\n        \"172.16.208.0/20\",\n        \"172.16.224.0/20\",\n        \"172.16.240.0/20\",\n    ]\ncluster_addons = config.get_object(\"clusterAddons\")\nif cluster_addons is None:\n    cluster_addons = [\n        {\n            \"config\": None,\n            \"disabled\": False,\n            \"name\": \"metrics-server\",\n        },\n        {\n            \"config\": None,\n            \"disabled\": False,\n            \"name\": \"managed-coredns\",\n        },\n        {\n            \"config\": None,\n            \"disabled\": False,\n            \"name\": \"managed-security-inspector\",\n        },\n        {\n            \"config\": None,\n            \"disabled\": False,\n            \"name\": \"ack-cost-exporter\",\n        },\n        {\n            \"config\": \"{\\\"ENITrunking\\\":\\\"true\\\"}\",\n            \"disabled\": False,\n            \"name\": \"terway-controlplane\",\n        },\n        {\n            \"config\": \"{\\\"NetworkPolicy\\\":\\\"false\\\",\\\"ENITrunking\\\":\\\"true\\\",\\\"IPVlan\\\":\\\"false\\\"}\",\n            \"disabled\": False,\n            \"name\": \"terway-eniip\",\n        },\n        {\n            \"config\": None,\n            \"disabled\": False,\n            \"name\": \"csi-plugin\",\n        },\n        {\n            \"config\": None,\n            \"disabled\": False,\n            \"name\": \"managed-csiprovisioner\",\n        },\n        {\n            \"config\": \"{\\\"CnfsOssEnable\\\":\\\"false\\\",\\\"CnfsNasEnable\\\":\\\"false\\\"}\",\n            \"disabled\": False,\n            \"name\": \"storage-operator\",\n        },\n        {\n            \"config\": \"{\\\"IngressDashboardEnabled\\\":\\\"true\\\"}\",\n            \"disabled\": False,\n            \"name\": \"loongcollector\",\n        },\n        {\n            \"config\": \"{\\\"sls_project_name\\\":\\\"\\\"}\",\n            \"disabled\": False,\n            \"name\": \"ack-node-problem-detector\",\n        },\n        {\n            \"config\": None,\n            \"disabled\": True,\n            \"name\": \"nginx-ingress-controller\",\n        },\n        {\n            \"config\": \"{\\\"albIngress\\\":{\\\"CreateDefaultALBConfig\\\":false}}\",\n            \"disabled\": False,\n            \"name\": \"alb-ingress-controller\",\n        },\n        {\n            \"config\": \"{\\\"prometheusMode\\\":\\\"default\\\"}\",\n            \"disabled\": False,\n            \"name\": \"arms-prometheus\",\n        },\n        {\n            \"config\": None,\n            \"disabled\": False,\n            \"name\": \"alicloud-monitor-controller\",\n        },\n        {\n            \"config\": None,\n            \"disabled\": False,\n            \"name\": \"managed-aliyun-acr-credential-helper\",\n        },\n    ]\n# The name prefix used to create managed kubernetes cluster.\nk8s_name_prefix = config.get(\"k8sNamePrefix\")\nif k8s_name_prefix is None:\n    k8s_name_prefix = \"tf-ack-hangzhou\"\nk8s_name_terway = std.substr(input=std.join(separator=\"-\",\n        input=[\n            k8s_name_prefix,\n            \"terway\",\n        ]).result,\n    offset=0,\n    length=63).result\nnew_vpc_name = \"tf-vpc-172-16\"\nnodepool_name = \"default-nodepool\"\ndefault = alicloud.vpc.Network(\"default\",\n    vpc_name=new_vpc_name,\n    cidr_block=\"172.16.0.0/12\")\nvswitches = []\nfor range in [{\"value\": i} for i in range(0, 0 if len(node_vswitch_ids) \u003e 0 else len(node_vswitch_cidrs))]:\n    vswitches.append(alicloud.vpc.Switch(f\"vswitches-{range['value']}\",\n        vpc_id=default.id,\n        cidr_block=node_vswitch_cidrs[range[\"value\"]],\n        zone_id=availability_zone[range[\"value\"]]))\nterway_vswitches = []\nfor range in [{\"value\": i} for i in range(0, 0 if len(terway_vswitch_ids) \u003e 0 else len(terway_vswitch_cidrs))]:\n    terway_vswitches.append(alicloud.vpc.Switch(f\"terway_vswitches-{range['value']}\",\n        vpc_id=default.id,\n        cidr_block=terway_vswitch_cidrs[range[\"value\"]],\n        zone_id=availability_zone[range[\"value\"]]))\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    addons=[{\n        \"name\": std.lookup(map=entry[\"value\"],\n            key=\"name\",\n            default=cluster_addons).result,\n        \"config\": std.lookup(map=entry[\"value\"],\n            key=\"config\",\n            default=cluster_addons).result,\n        \"disabled\": std.lookup(map=entry[\"value\"],\n            key=\"disabled\",\n            default=cluster_addons).result,\n    } for entry in [{\"key\": k, \"value\": v} for k, v in cluster_addons.items()]],\n    name=k8s_name_terway,\n    cluster_spec=cluster_spec,\n    vswitch_ids=std.join_output(separator=\",\",\n        input=[__item.id for __item in vswitches]).apply(lambda invoke: std.split_output(separator=\",\",\n        text=invoke.result)).apply(lambda invoke: invoke.result),\n    pod_vswitch_ids=std.join_output(separator=\",\",\n        input=[__item.id for __item in terway_vswitches]).apply(lambda invoke: std.split_output(separator=\",\",\n        text=invoke.result)).apply(lambda invoke: invoke.result),\n    new_nat_gateway=True,\n    service_cidr=\"10.11.0.0/16\",\n    slb_internet_enabled=True,\n    enable_rrsa=True,\n    control_plane_log_components=[\n        \"apiserver\",\n        \"kcm\",\n        \"scheduler\",\n        \"ccm\",\n    ],\n    auto_mode={\n        \"enabled\": True,\n    },\n    maintenance_window={\n        \"duration\": \"3h\",\n        \"weekly_period\": \"Monday\",\n        \"enable\": True,\n        \"maintenance_time\": \"2025-07-07T00:00:00.000+08:00\",\n    },\n    operation_policy={\n        \"cluster_auto_upgrade\": {\n            \"channel\": \"stable\",\n            \"enabled\": True,\n        },\n    })\nauto_mode_example = alicloud.cs.NodePool(\"auto_mode_example\",\n    node_pool_name=nodepool_name,\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=std.join_output(separator=\",\",\n        input=[__item.id for __item in vswitches]).apply(lambda invoke: std.split_output(separator=\",\",\n        text=invoke.result)).apply(lambda invoke: invoke.result),\n    auto_mode={\n        \"enabled\": True,\n    },\n    scaling_config={\n        \"max_size\": 50,\n        \"min_size\": 0,\n    },\n    instance_patterns=[{\n        \"min_cpu_cores\": 4,\n        \"max_cpu_cores\": 16,\n        \"min_memory_size\": 8,\n        \"max_memory_size\": 32,\n        \"instance_family_level\": \"EnterpriseLevel\",\n        \"instance_type_families\": [\n            \"ecs.u1\",\n            \"ecs.g6\",\n            \"ecs.c6\",\n            \"ecs.r6\",\n            \"ecs.g7\",\n            \"ecs.c7\",\n            \"ecs.r7\",\n            \"ecs.g8i\",\n            \"ecs.c8i\",\n            \"ecs.r8i\",\n        ],\n        \"excluded_instance_types\": [\n            \"ecs.c6t.*\",\n            \"ecs.g6t.*\",\n            \"ecs.t5.*\",\n            \"ecs.t6.*\",\n            \"ecs.vgn.*\",\n            \"ecs.sgn.*\",\n        ],\n        \"instance_categories\": [\"General-purpose\"],\n        \"cpu_architectures\": [\"X86\"],\n    }],\n    data_disks=[{\n        \"size\": 120,\n        \"encrypted\": \"false\",\n        \"category\": \"cloud_essd\",\n    }],\n    labels=[\n        {\n            \"key\": \"example1\",\n            \"value\": \"nodepool\",\n        },\n        {\n            \"key\": \"example2\",\n            \"value\": \"nodepool\",\n        },\n    ],\n    taints=[\n        {\n            \"key\": \"tf\",\n            \"effect\": \"NoSchedule\",\n            \"value\": \"example\",\n        },\n        {\n            \"key\": \"tf2\",\n            \"effect\": \"NoSchedule\",\n            \"value\": \"example2\",\n        },\n    ])\n#Upgrade a node pool with upgrade_policy and rolling_policy\nupgrade_nodepool = alicloud.cs.NodePool(\"upgrade_nodepool\",\n    node_pool_name=\"upgrade_nodepool\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=std.join_output(separator=\",\",\n        input=[__item.id for __item in vswitches]).apply(lambda invoke: std.split_output(separator=\",\",\n        text=invoke.result)).apply(lambda invoke: invoke.result),\n    instance_types=[\"ecs.c6.xlarge\"],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    desired_size=\"2\",\n    runtime_name=\"containerd\",\n    runtime_version=\"1.6.39\",\n    image_id=\"aliyun_3_x64_20G_container_optimized_alibase_20250629.vhd\",\n    upgrade_policy={\n        \"image_id\": \"aliyun_3_x64_20G_container_optimized_alibase_20250629.vhd\",\n        \"runtime\": \"containerd\",\n        \"runtime_version\": \"1.6.39\",\n        \"kubernetes_version\": default_managed_kubernetes.version,\n        \"use_replace\": True,\n    },\n    rolling_policy={\n        \"max_parallelism\": 1,\n        \"batch_interval\": \"1\",\n        \"pause_policy\": \"NotPause\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var regionId = config.Get(\"regionId\") ?? \"cn-hangzhou\";\n    // The cluster specifications of kubernetes cluster,which can be empty. Valid values:ack.standard : Standard managed clusters; ack.pro.small : Professional managed clusters.\n    var clusterSpec = config.Get(\"clusterSpec\") ?? \"ack.pro.small\";\n    // The availability zones of vswitches.\n    var availabilityZone = config.GetObject\u003cdynamic\u003e(\"availabilityZone\") ?? new[]\n    {\n        \"cn-hangzhou-i\",\n        \"cn-hangzhou-j\",\n        \"cn-hangzhou-k\",\n    };\n    // List of existing node vswitch ids for terway.\n    var nodeVswitchIds = config.GetObject\u003cstring[]\u003e(\"nodeVswitchIds\") ?? new[] {};\n    // List of cidr blocks used to create several new vswitches when 'node_vswitch_ids' is not specified.\n    var nodeVswitchCidrs = config.GetObject\u003cstring[]\u003e(\"nodeVswitchCidrs\") ?? new[]\n    {\n        \"172.16.0.0/23\",\n        \"172.16.2.0/23\",\n        \"172.16.4.0/23\",\n    };\n    // List of existing pod vswitch ids for terway.\n    var terwayVswitchIds = config.GetObject\u003cstring[]\u003e(\"terwayVswitchIds\") ?? new[] {};\n    // List of cidr blocks used to create several new vswitches when 'terway_vswitch_ids' is not specified.\n    var terwayVswitchCidrs = config.GetObject\u003cstring[]\u003e(\"terwayVswitchCidrs\") ?? new[]\n    {\n        \"172.16.208.0/20\",\n        \"172.16.224.0/20\",\n        \"172.16.240.0/20\",\n    };\n    var clusterAddons = config.GetObject\u003cClusterAddons[]\u003e(\"clusterAddons\") ?? new[]\n    {\n        \n        {\n            { \"config\", null },\n            { \"disabled\", false },\n            { \"name\", \"metrics-server\" },\n        },\n        \n        {\n            { \"config\", null },\n            { \"disabled\", false },\n            { \"name\", \"managed-coredns\" },\n        },\n        \n        {\n            { \"config\", null },\n            { \"disabled\", false },\n            { \"name\", \"managed-security-inspector\" },\n        },\n        \n        {\n            { \"config\", null },\n            { \"disabled\", false },\n            { \"name\", \"ack-cost-exporter\" },\n        },\n        \n        {\n            { \"config\", \"{\\\"ENITrunking\\\":\\\"true\\\"}\" },\n            { \"disabled\", false },\n            { \"name\", \"terway-controlplane\" },\n        },\n        \n        {\n            { \"config\", \"{\\\"NetworkPolicy\\\":\\\"false\\\",\\\"ENITrunking\\\":\\\"true\\\",\\\"IPVlan\\\":\\\"false\\\"}\" },\n            { \"disabled\", false },\n            { \"name\", \"terway-eniip\" },\n        },\n        \n        {\n            { \"config\", null },\n            { \"disabled\", false },\n            { \"name\", \"csi-plugin\" },\n        },\n        \n        {\n            { \"config\", null },\n            { \"disabled\", false },\n            { \"name\", \"managed-csiprovisioner\" },\n        },\n        \n        {\n            { \"config\", \"{\\\"CnfsOssEnable\\\":\\\"false\\\",\\\"CnfsNasEnable\\\":\\\"false\\\"}\" },\n            { \"disabled\", false },\n            { \"name\", \"storage-operator\" },\n        },\n        \n        {\n            { \"config\", \"{\\\"IngressDashboardEnabled\\\":\\\"true\\\"}\" },\n            { \"disabled\", false },\n            { \"name\", \"loongcollector\" },\n        },\n        \n        {\n            { \"config\", \"{\\\"sls_project_name\\\":\\\"\\\"}\" },\n            { \"disabled\", false },\n            { \"name\", \"ack-node-problem-detector\" },\n        },\n        \n        {\n            { \"config\", null },\n            { \"disabled\", true },\n            { \"name\", \"nginx-ingress-controller\" },\n        },\n        \n        {\n            { \"config\", \"{\\\"albIngress\\\":{\\\"CreateDefaultALBConfig\\\":false}}\" },\n            { \"disabled\", false },\n            { \"name\", \"alb-ingress-controller\" },\n        },\n        \n        {\n            { \"config\", \"{\\\"prometheusMode\\\":\\\"default\\\"}\" },\n            { \"disabled\", false },\n            { \"name\", \"arms-prometheus\" },\n        },\n        \n        {\n            { \"config\", null },\n            { \"disabled\", false },\n            { \"name\", \"alicloud-monitor-controller\" },\n        },\n        \n        {\n            { \"config\", null },\n            { \"disabled\", false },\n            { \"name\", \"managed-aliyun-acr-credential-helper\" },\n        },\n    };\n    // The name prefix used to create managed kubernetes cluster.\n    var k8sNamePrefix = config.Get(\"k8sNamePrefix\") ?? \"tf-ack-hangzhou\";\n    var k8sNameTerway = Std.Join.Invoke(new()\n    {\n        Separator = \"-\",\n        Input = new[]\n        {\n            k8sNamePrefix,\n            \"terway\",\n        },\n    }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n    {\n        Input = invoke.Result,\n        Offset = 0,\n        Length = 63,\n    })).Apply(invoke =\u003e invoke.Result);\n\n    var newVpcName = \"tf-vpc-172-16\";\n\n    var nodepoolName = \"default-nodepool\";\n\n    var @default = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = newVpcName,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var vswitches = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (nodeVswitchIds.Length \u003e 0 ? 0 : nodeVswitchCidrs.Length); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        vswitches.Add(new AliCloud.Vpc.Switch($\"vswitches-{range.Value}\", new()\n        {\n            VpcId = @default.Id,\n            CidrBlock = nodeVswitchCidrs[range.Value],\n            ZoneId = availabilityZone[range.Value],\n        }));\n    }\n    var terwayVswitches = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (terwayVswitchIds.Length \u003e 0 ? 0 : terwayVswitchCidrs.Length); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        terwayVswitches.Add(new AliCloud.Vpc.Switch($\"terway_vswitches-{range.Value}\", new()\n        {\n            VpcId = @default.Id,\n            CidrBlock = terwayVswitchCidrs[range.Value],\n            ZoneId = availabilityZone[range.Value],\n        }));\n    }\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        Addons = clusterAddons.Select((v, k) =\u003e new { Key = k, Value = v }).Select(entry =\u003e \n        {\n            return new AliCloud.CS.Inputs.ManagedKubernetesAddonArgs\n            {\n                Name = Std.Lookup.Invoke(new()\n                {\n                    Map = entry.Value,\n                    Key = \"name\",\n                    Default = clusterAddons,\n                }).Apply(invoke =\u003e invoke.Result),\n                Config = Std.Lookup.Invoke(new()\n                {\n                    Map = entry.Value,\n                    Key = \"config\",\n                    Default = clusterAddons,\n                }).Apply(invoke =\u003e invoke.Result),\n                Disabled = Std.Lookup.Invoke(new()\n                {\n                    Map = entry.Value,\n                    Key = \"disabled\",\n                    Default = clusterAddons,\n                }).Apply(invoke =\u003e invoke.Result),\n            };\n        }).ToList(),\n        Name = k8sNameTerway,\n        ClusterSpec = clusterSpec,\n        VswitchIds = Std.Join.Invoke(new()\n        {\n            Separator = \",\",\n            Input = vswitches.Select(__item =\u003e __item.Id).ToList(),\n        }).Apply(invoke =\u003e Std.Split.Invoke(new()\n        {\n            Separator = \",\",\n            Text = invoke.Result,\n        })).Apply(invoke =\u003e invoke.Result),\n        PodVswitchIds = Std.Join.Invoke(new()\n        {\n            Separator = \",\",\n            Input = terwayVswitches.Select(__item =\u003e __item.Id).ToList(),\n        }).Apply(invoke =\u003e Std.Split.Invoke(new()\n        {\n            Separator = \",\",\n            Text = invoke.Result,\n        })).Apply(invoke =\u003e invoke.Result),\n        NewNatGateway = true,\n        ServiceCidr = \"10.11.0.0/16\",\n        SlbInternetEnabled = true,\n        EnableRrsa = true,\n        ControlPlaneLogComponents = new[]\n        {\n            \"apiserver\",\n            \"kcm\",\n            \"scheduler\",\n            \"ccm\",\n        },\n        AutoMode = new AliCloud.CS.Inputs.ManagedKubernetesAutoModeArgs\n        {\n            Enabled = true,\n        },\n        MaintenanceWindow = new AliCloud.CS.Inputs.ManagedKubernetesMaintenanceWindowArgs\n        {\n            Duration = \"3h\",\n            WeeklyPeriod = \"Monday\",\n            Enable = true,\n            MaintenanceTime = \"2025-07-07T00:00:00.000+08:00\",\n        },\n        OperationPolicy = new AliCloud.CS.Inputs.ManagedKubernetesOperationPolicyArgs\n        {\n            ClusterAutoUpgrade = new AliCloud.CS.Inputs.ManagedKubernetesOperationPolicyClusterAutoUpgradeArgs\n            {\n                Channel = \"stable\",\n                Enabled = true,\n            },\n        },\n    });\n\n    var autoModeExample = new AliCloud.CS.NodePool(\"auto_mode_example\", new()\n    {\n        NodePoolName = nodepoolName,\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = Std.Join.Invoke(new()\n        {\n            Separator = \",\",\n            Input = vswitches.Select(__item =\u003e __item.Id).ToList(),\n        }).Apply(invoke =\u003e Std.Split.Invoke(new()\n        {\n            Separator = \",\",\n            Text = invoke.Result,\n        })).Apply(invoke =\u003e invoke.Result),\n        AutoMode = new AliCloud.CS.Inputs.NodePoolAutoModeArgs\n        {\n            Enabled = true,\n        },\n        ScalingConfig = new AliCloud.CS.Inputs.NodePoolScalingConfigArgs\n        {\n            MaxSize = 50,\n            MinSize = 0,\n        },\n        InstancePatterns = new[]\n        {\n            new AliCloud.CS.Inputs.NodePoolInstancePatternArgs\n            {\n                MinCpuCores = 4,\n                MaxCpuCores = 16,\n                MinMemorySize = 8,\n                MaxMemorySize = 32,\n                InstanceFamilyLevel = \"EnterpriseLevel\",\n                InstanceTypeFamilies = new[]\n                {\n                    \"ecs.u1\",\n                    \"ecs.g6\",\n                    \"ecs.c6\",\n                    \"ecs.r6\",\n                    \"ecs.g7\",\n                    \"ecs.c7\",\n                    \"ecs.r7\",\n                    \"ecs.g8i\",\n                    \"ecs.c8i\",\n                    \"ecs.r8i\",\n                },\n                ExcludedInstanceTypes = new[]\n                {\n                    \"ecs.c6t.*\",\n                    \"ecs.g6t.*\",\n                    \"ecs.t5.*\",\n                    \"ecs.t6.*\",\n                    \"ecs.vgn.*\",\n                    \"ecs.sgn.*\",\n                },\n                InstanceCategories = new[]\n                {\n                    \"General-purpose\",\n                },\n                CpuArchitectures = new[]\n                {\n                    \"X86\",\n                },\n            },\n        },\n        DataDisks = new[]\n        {\n            new AliCloud.CS.Inputs.NodePoolDataDiskArgs\n            {\n                Size = 120,\n                Encrypted = \"false\",\n                Category = \"cloud_essd\",\n            },\n        },\n        Labels = new[]\n        {\n            new AliCloud.CS.Inputs.NodePoolLabelArgs\n            {\n                Key = \"example1\",\n                Value = \"nodepool\",\n            },\n            new AliCloud.CS.Inputs.NodePoolLabelArgs\n            {\n                Key = \"example2\",\n                Value = \"nodepool\",\n            },\n        },\n        Taints = new[]\n        {\n            new AliCloud.CS.Inputs.NodePoolTaintArgs\n            {\n                Key = \"tf\",\n                Effect = \"NoSchedule\",\n                Value = \"example\",\n            },\n            new AliCloud.CS.Inputs.NodePoolTaintArgs\n            {\n                Key = \"tf2\",\n                Effect = \"NoSchedule\",\n                Value = \"example2\",\n            },\n        },\n    });\n\n    //Upgrade a node pool with upgrade_policy and rolling_policy\n    var upgradeNodepool = new AliCloud.CS.NodePool(\"upgrade_nodepool\", new()\n    {\n        NodePoolName = \"upgrade_nodepool\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = Std.Join.Invoke(new()\n        {\n            Separator = \",\",\n            Input = vswitches.Select(__item =\u003e __item.Id).ToList(),\n        }).Apply(invoke =\u003e Std.Split.Invoke(new()\n        {\n            Separator = \",\",\n            Text = invoke.Result,\n        })).Apply(invoke =\u003e invoke.Result),\n        InstanceTypes = new[]\n        {\n            \"ecs.c6.xlarge\",\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        DesiredSize = \"2\",\n        RuntimeName = \"containerd\",\n        RuntimeVersion = \"1.6.39\",\n        ImageId = \"aliyun_3_x64_20G_container_optimized_alibase_20250629.vhd\",\n        UpgradePolicy = new AliCloud.CS.Inputs.NodePoolUpgradePolicyArgs\n        {\n            ImageId = \"aliyun_3_x64_20G_container_optimized_alibase_20250629.vhd\",\n            Runtime = \"containerd\",\n            RuntimeVersion = \"1.6.39\",\n            KubernetesVersion = defaultManagedKubernetes.Version,\n            UseReplace = true,\n        },\n        RollingPolicy = new AliCloud.CS.Inputs.NodePoolRollingPolicyArgs\n        {\n            MaxParallelism = 1,\n            BatchInterval = \"1\",\n            PausePolicy = \"NotPause\",\n        },\n    });\n\n});\n\npublic class ClusterAddons\n{\n    public string config { get; set; }\n    public bool disabled { get; set; }\n    public string name { get; set; }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nContainer Service for Kubernetes (ACK) Nodepool can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cs/nodePool:NodePool example \u003ccluster_id\u003e:\u003cnode_pool_id\u003e\n```\n\n","properties":{"autoMode":{"$ref":"#/types/alicloud:cs/NodePoolAutoMode:NodePoolAutoMode","description":"Whether to enable auto mode. When enabled, the system will automatically manage the node pool with optimized default configurations. **Note:** When \u003cspan pulumi-lang-nodejs=\"`autoMode`\" pulumi-lang-dotnet=\"`AutoMode`\" pulumi-lang-go=\"`autoMode`\" pulumi-lang-python=\"`auto_mode`\" pulumi-lang-yaml=\"`autoMode`\" pulumi-lang-java=\"`autoMode`\"\u003e`auto_mode`\u003c/span\u003e is enabled, many parameters will be automatically set to default values and cannot be modified. See `auto_mode.enable` below for details. See \u003cspan pulumi-lang-nodejs=\"`autoMode`\" pulumi-lang-dotnet=\"`AutoMode`\" pulumi-lang-go=\"`autoMode`\" pulumi-lang-python=\"`auto_mode`\" pulumi-lang-yaml=\"`autoMode`\" pulumi-lang-java=\"`autoMode`\"\u003e`auto_mode`\u003c/span\u003e below.\n"},"autoRenew":{"type":"boolean","description":"Whether to enable automatic renewal for nodes in the node pool takes effect only when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PrePaid`. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"autoRenewPeriod":{"type":"integer","description":"The automatic renewal period of nodes in the node pool takes effect only when you select Prepaid and Automatic Renewal, and is a required value. When `PeriodUnit = Month`, the value range is {1, 2, 3, 6, 12}. Default value: 1.\n"},"cisEnabled":{"type":"boolean","description":"Whether enable worker node to support cis security reinforcement, its valid value \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and apply to AliyunLinux series. Use \u003cspan pulumi-lang-nodejs=\"`securityHardeningOs`\" pulumi-lang-dotnet=\"`SecurityHardeningOs`\" pulumi-lang-go=\"`securityHardeningOs`\" pulumi-lang-python=\"`security_hardening_os`\" pulumi-lang-yaml=\"`securityHardeningOs`\" pulumi-lang-java=\"`securityHardeningOs`\"\u003e`security_hardening_os`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'cis_enabled' has been deprecated from provider version 1.223.1. Whether enable worker node to support cis security reinforcement, its valid value \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and apply to AliyunLinux series. Use \u003cspan pulumi-lang-nodejs=\"`securityHardeningOs`\" pulumi-lang-dotnet=\"`SecurityHardeningOs`\" pulumi-lang-go=\"`securityHardeningOs`\" pulumi-lang-python=\"`security_hardening_os`\" pulumi-lang-yaml=\"`securityHardeningOs`\" pulumi-lang-java=\"`securityHardeningOs`\"\u003e`security_hardening_os`\u003c/span\u003e instead."},"clusterId":{"type":"string","description":"The id of kubernetes cluster.\n"},"compensateWithOnDemand":{"type":"boolean","description":"Specifies whether to automatically create pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created due to reasons such as cost or insufficient inventory. This parameter takes effect when you set \u003cspan pulumi-lang-nodejs=\"`multiAzPolicy`\" pulumi-lang-dotnet=\"`MultiAzPolicy`\" pulumi-lang-go=\"`multiAzPolicy`\" pulumi-lang-python=\"`multi_az_policy`\" pulumi-lang-yaml=\"`multiAzPolicy`\" pulumi-lang-java=\"`multiAzPolicy`\"\u003e`multi_az_policy`\u003c/span\u003e to `COST_OPTIMIZED`. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: automatically creates pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: does not create pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created.\n"},"cpuPolicy":{"type":"string","description":"Node CPU management policies. Default value: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. When the cluster version is 1.12.6 or later, the following two policies are supported:\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:cs/NodePoolDataDisk:NodePoolDataDisk"},"description":"Configure the data disk of the node in the node pool. See \u003cspan pulumi-lang-nodejs=\"`dataDisks`\" pulumi-lang-dotnet=\"`DataDisks`\" pulumi-lang-go=\"`dataDisks`\" pulumi-lang-python=\"`data_disks`\" pulumi-lang-yaml=\"`dataDisks`\" pulumi-lang-java=\"`dataDisks`\"\u003e`data_disks`\u003c/span\u003e below.\n"},"deploymentSetId":{"type":"string","description":"The deployment set of node pool. Specify the deploymentSet to ensure that the nodes in the node pool can be distributed on different physical machines.\n"},"desiredSize":{"type":"string","description":"Number of expected nodes in the node pool.\n"},"efloNodeGroup":{"$ref":"#/types/alicloud:cs/NodePoolEfloNodeGroup:NodePoolEfloNodeGroup","description":"Lingjun node pool configuration. See \u003cspan pulumi-lang-nodejs=\"`efloNodeGroup`\" pulumi-lang-dotnet=\"`EfloNodeGroup`\" pulumi-lang-go=\"`efloNodeGroup`\" pulumi-lang-python=\"`eflo_node_group`\" pulumi-lang-yaml=\"`efloNodeGroup`\" pulumi-lang-java=\"`efloNodeGroup`\"\u003e`eflo_node_group`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"forceDelete":{"type":"boolean","description":"Whether to force deletion.\n\n\u003e **NOTE:** This parameter only takes effect when deletion is triggered.\n"},"formatDisk":{"type":"boolean","description":"After you select this check box, if data disks have been attached to the specified ECS instances and the file system of the last data disk is uninitialized, the system automatically formats the last data disk to ext4 and mounts the data disk to /var/lib/docker and /var/lib/kubelet. The original data on the disk will be cleared. Make sure that you back up data in advance. If no data disk is mounted on the ECS instance, no new data disk will be purchased. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"imageId":{"type":"string","description":"The custom image ID. The system-provided image is used by default.\n"},"imageType":{"type":"string","description":"The operating system image type and the \u003cspan pulumi-lang-nodejs=\"`platform`\" pulumi-lang-dotnet=\"`Platform`\" pulumi-lang-go=\"`platform`\" pulumi-lang-python=\"`platform`\" pulumi-lang-yaml=\"`platform`\" pulumi-lang-java=\"`platform`\"\u003e`platform`\u003c/span\u003e parameter can be selected from the following values:\n- `AliyunLinux` : Alinux2 image.\n- `AliyunLinux3` : Alinux3 image.\n- `AliyunLinux3Arm64` : Alinux3 mirror ARM version.\n- `AliyunLinuxUEFI` : Alinux2 Image UEFI version.\n- `CentOS` : CentOS image.\n- `Windows` : Windows image.\n- `WindowsCore` : WindowsCore image.\n- `ContainerOS` : container-optimized image.\n- `Ubuntu`: Ubuntu image.\n- `AliyunLinux3ContainerOptimized`: Alinux3 container-optimized image.\n- `Custom`：Custom image.\n- `AliyunLinux4ContainerOptimized`：Alinux4 container-optimized image.\n"},"installCloudMonitor":{"type":"boolean","description":"Whether to install cloud monitoring on the ECS node. After installation, you can view the monitoring information of the created ECS instance in the cloud monitoring console and recommend enable it. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"instanceChargeType":{"type":"string","description":"Node payment type. Valid values: `PostPaid`, `PrePaid`, default is `PostPaid`. If value is `PrePaid`, the arguments \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`autoRenewPeriod`\" pulumi-lang-dotnet=\"`AutoRenewPeriod`\" pulumi-lang-go=\"`autoRenewPeriod`\" pulumi-lang-python=\"`auto_renew_period`\" pulumi-lang-yaml=\"`autoRenewPeriod`\" pulumi-lang-java=\"`autoRenewPeriod`\"\u003e`auto_renew_period`\u003c/span\u003e are required.\n"},"instanceMetadataOptions":{"$ref":"#/types/alicloud:cs/NodePoolInstanceMetadataOptions:NodePoolInstanceMetadataOptions","description":"ECS instance metadata access configuration. See \u003cspan pulumi-lang-nodejs=\"`instanceMetadataOptions`\" pulumi-lang-dotnet=\"`InstanceMetadataOptions`\" pulumi-lang-go=\"`instanceMetadataOptions`\" pulumi-lang-python=\"`instance_metadata_options`\" pulumi-lang-yaml=\"`instanceMetadataOptions`\" pulumi-lang-java=\"`instanceMetadataOptions`\"\u003e`instance_metadata_options`\u003c/span\u003e below.\n"},"instancePatterns":{"type":"array","items":{"$ref":"#/types/alicloud:cs/NodePoolInstancePattern:NodePoolInstancePattern"},"description":"Instance property configuration. See \u003cspan pulumi-lang-nodejs=\"`instancePatterns`\" pulumi-lang-dotnet=\"`InstancePatterns`\" pulumi-lang-go=\"`instancePatterns`\" pulumi-lang-python=\"`instance_patterns`\" pulumi-lang-yaml=\"`instancePatterns`\" pulumi-lang-java=\"`instancePatterns`\"\u003e`instance_patterns`\u003c/span\u003e below.\n"},"instanceTypes":{"type":"array","items":{"type":"string"},"description":"In the node instance specification list, you can select multiple instance specifications as alternatives. When each node is created, it will try to purchase from the first specification until it is created successfully. The final purchased instance specifications may vary with inventory changes.\n"},"instances":{"type":"array","items":{"type":"string"},"description":"The instance list. Add existing nodes under the same cluster VPC to the node pool.\n"},"internetChargeType":{"type":"string","description":"The billing method for network usage. Valid values `PayByBandwidth` and `PayByTraffic`. Conflict with \u003cspan pulumi-lang-nodejs=\"`eipInternetChargeType`\" pulumi-lang-dotnet=\"`EipInternetChargeType`\" pulumi-lang-go=\"`eipInternetChargeType`\" pulumi-lang-python=\"`eip_internet_charge_type`\" pulumi-lang-yaml=\"`eipInternetChargeType`\" pulumi-lang-java=\"`eipInternetChargeType`\"\u003e`eip_internet_charge_type`\u003c/span\u003e, EIP and public network IP can only choose one.\n"},"internetMaxBandwidthOut":{"type":"integer","description":"The maximum bandwidth of the public IP address of the node. The unit is Mbps(Mega bit per second). The value range is:\\[1,100\\]\n"},"keepInstanceName":{"type":"boolean","description":"Add an existing instance to the node pool, whether to keep the original instance name. It is recommended to set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"keyName":{"type":"string","description":"The name of the key pair. When the node pool is a managed node pool, only \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e is supported.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a cs kubernetes. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","secret":true},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a cs kubernetes with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"kubeletConfiguration":{"$ref":"#/types/alicloud:cs/NodePoolKubeletConfiguration:NodePoolKubeletConfiguration","description":"Kubelet configuration parameters for worker nodes. See \u003cspan pulumi-lang-nodejs=\"`kubeletConfiguration`\" pulumi-lang-dotnet=\"`KubeletConfiguration`\" pulumi-lang-go=\"`kubeletConfiguration`\" pulumi-lang-python=\"`kubelet_configuration`\" pulumi-lang-yaml=\"`kubeletConfiguration`\" pulumi-lang-java=\"`kubeletConfiguration`\"\u003e`kubelet_configuration`\u003c/span\u003e below. More information in [Kubelet Configuration](https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/). See \u003cspan pulumi-lang-nodejs=\"`kubeletConfiguration`\" pulumi-lang-dotnet=\"`KubeletConfiguration`\" pulumi-lang-go=\"`kubeletConfiguration`\" pulumi-lang-python=\"`kubelet_configuration`\" pulumi-lang-yaml=\"`kubeletConfiguration`\" pulumi-lang-java=\"`kubeletConfiguration`\"\u003e`kubelet_configuration`\u003c/span\u003e below.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:cs/NodePoolLabel:NodePoolLabel"},"description":"A List of Kubernetes labels to assign to the nodes . Only labels that are applied with the ACK API are managed by this argument. Detailed below. More information in [Labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/). See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"loginAsNonRoot":{"type":"boolean","description":"Whether the ECS instance is logged on as a ecs-user user. Valid value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"management":{"$ref":"#/types/alicloud:cs/NodePoolManagement:NodePoolManagement","description":"Managed node pool configuration. See \u003cspan pulumi-lang-nodejs=\"`management`\" pulumi-lang-dotnet=\"`Management`\" pulumi-lang-go=\"`management`\" pulumi-lang-python=\"`management`\" pulumi-lang-yaml=\"`management`\" pulumi-lang-java=\"`management`\"\u003e`management`\u003c/span\u003e below.\n"},"multiAzPolicy":{"type":"string","description":"The scaling policy for ECS instances in a multi-zone scaling group. Valid value: `PRIORITY`, `COST_OPTIMIZED` and `BALANCE`. `PRIORITY`: scales the capacity according to the virtual switches you define (VSwitchIds.N). When an ECS instance cannot be created in the zone where the higher-priority vSwitch is located, the next-priority vSwitch is automatically used to create an ECS instance. `COST_OPTIMIZED`: try to create by vCPU unit price from low to high. When the scaling configuration is configured with multiple instances of preemptible billing, preemptible instances are created first. You can continue to use the `CompensateWithOnDemand` parameter to specify whether to automatically try to create a preemptible instance by paying for it. It takes effect only when the scaling configuration has multi-instance specifications or preemptible instances. `BALANCE`: distributes ECS instances evenly among the multi-zone specified by the scaling group. If the zones become unbalanced due to insufficient inventory, you can use the API RebalanceInstances to balance resources.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.219.0. New field 'node_pool_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.219.0. New field 'node_pool_name' instead."},"nodeCount":{"type":"integer","description":"The worker node number of the node pool. From version 1.111.0, \u003cspan pulumi-lang-nodejs=\"`nodeCount`\" pulumi-lang-dotnet=\"`NodeCount`\" pulumi-lang-go=\"`nodeCount`\" pulumi-lang-python=\"`node_count`\" pulumi-lang-yaml=\"`nodeCount`\" pulumi-lang-java=\"`nodeCount`\"\u003e`node_count`\u003c/span\u003e is not required.\n","deprecationMessage":"Field 'node_count' has been deprecated from provider version 1.158.0. New field 'desired_size' instead."},"nodeNameMode":{"type":"string","description":"Each node name consists of a prefix, its private network IP, and a suffix, separated by commas. The input format is `customized,,ip,`.\n- The prefix and suffix can be composed of one or more parts separated by '.', each part can use lowercase letters, numbers and '-', and the beginning and end of the node name must be lowercase letters and numbers.\n- The node IP address is the complete private IP address of the node.\n- For example, if the string `customized,aliyun,ip,com` is passed in (where 'customized' and 'ip' are fixed strings, 'aliyun' is the prefix, and 'com' is the suffix), the name of the node is `aliyun192.168.xxx.xxxcom`.\n"},"nodePoolId":{"type":"string","description":"The first ID of the resource.\n"},"nodePoolName":{"type":"string","description":"The name of node pool.\n"},"onDemandBaseCapacity":{"type":"string","description":"The minimum number of pay-as-you-go instances that must be kept in the scaling group. Valid values: 0 to 1000. If the number of pay-as-you-go instances is less than the value of this parameter, Auto Scaling preferably creates pay-as-you-go instances.\n"},"onDemandPercentageAboveBaseCapacity":{"type":"string","description":"The percentage of pay-as-you-go instances among the extra instances that exceed the number specified by \u003cspan pulumi-lang-nodejs=\"`onDemandBaseCapacity`\" pulumi-lang-dotnet=\"`OnDemandBaseCapacity`\" pulumi-lang-go=\"`onDemandBaseCapacity`\" pulumi-lang-python=\"`on_demand_base_capacity`\" pulumi-lang-yaml=\"`onDemandBaseCapacity`\" pulumi-lang-java=\"`onDemandBaseCapacity`\"\u003e`on_demand_base_capacity`\u003c/span\u003e. Valid values: 0 to 100.\n"},"password":{"type":"string","description":"The password of ssh login. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e fields. The password rule is 8 to 30 characters and contains at least three items (upper and lower case letters, numbers, and special symbols).\n","secret":true},"period":{"type":"integer","description":"Node payment period. Its valid value is one of {1, 2, 3, 6, 12}.\n"},"periodUnit":{"type":"string","description":"Node payment period unit, valid value: `Month`. Default is `Month`.\n"},"platform":{"type":"string","description":"Operating system release, using \u003cspan pulumi-lang-nodejs=\"`imageType`\" pulumi-lang-dotnet=\"`ImageType`\" pulumi-lang-go=\"`imageType`\" pulumi-lang-python=\"`image_type`\" pulumi-lang-yaml=\"`imageType`\" pulumi-lang-java=\"`imageType`\"\u003e`image_type`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'platform' has been deprecated from provider version 1.145.0. Operating system release, using \u003cspan pulumi-lang-nodejs=\"`imageType`\" pulumi-lang-dotnet=\"`ImageType`\" pulumi-lang-go=\"`imageType`\" pulumi-lang-python=\"`image_type`\" pulumi-lang-yaml=\"`imageType`\" pulumi-lang-java=\"`imageType`\"\u003e`image_type`\u003c/span\u003e instead."},"preUserData":{"type":"string","description":"Node pre custom data, base64-encoded, the script executed before the node is initialized.\n"},"privatePoolOptions":{"$ref":"#/types/alicloud:cs/NodePoolPrivatePoolOptions:NodePoolPrivatePoolOptions","description":"Private node pool configuration. See \u003cspan pulumi-lang-nodejs=\"`privatePoolOptions`\" pulumi-lang-dotnet=\"`PrivatePoolOptions`\" pulumi-lang-go=\"`privatePoolOptions`\" pulumi-lang-python=\"`private_pool_options`\" pulumi-lang-yaml=\"`privatePoolOptions`\" pulumi-lang-java=\"`privatePoolOptions`\"\u003e`private_pool_options`\u003c/span\u003e below.\n"},"ramRoleName":{"type":"string","description":"The name of the Worker RAM role.\n* If it is empty, the default Worker RAM role created in the cluster will be used.\n* If the specified RAM role is not empty, the specified RAM role must be a **Common Service role**, and its **trusted service** configuration must be **cloud server**. For more information, see [Create a common service role](https://help.aliyun.com/document_detail/116800.html). If the specified RAM role is not the default Worker RAM role created in the cluster, the role name cannot start with 'KubernetesMasterRole-'or 'KubernetesWorkerRole.\n\n\u003e **NOTE:**  This parameter is only supported for ACK-managed clusters of 1.22 or later versions.\n"},"rdsInstances":{"type":"array","items":{"type":"string"},"description":"The list of RDS instances.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"rollingPolicy":{"$ref":"#/types/alicloud:cs/NodePoolRollingPolicy:NodePoolRollingPolicy","description":"Rotary configuration. See \u003cspan pulumi-lang-nodejs=\"`rollingPolicy`\" pulumi-lang-dotnet=\"`RollingPolicy`\" pulumi-lang-go=\"`rollingPolicy`\" pulumi-lang-python=\"`rolling_policy`\" pulumi-lang-yaml=\"`rollingPolicy`\" pulumi-lang-java=\"`rollingPolicy`\"\u003e`rolling_policy`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"runtimeName":{"type":"string","description":"The runtime name of containers. If not set, the cluster runtime will be used as the node pool runtime. If you select another container runtime, see [Comparison of Docker, containerd, and Sandboxed-Container](https://www.alibabacloud.com/help/doc-detail/160313.htm).\n"},"runtimeVersion":{"type":"string","description":"The runtime version of containers. If not set, the cluster runtime will be used as the node pool runtime.\n"},"scalingConfig":{"$ref":"#/types/alicloud:cs/NodePoolScalingConfig:NodePoolScalingConfig","description":"Automatic scaling configuration. See \u003cspan pulumi-lang-nodejs=\"`scalingConfig`\" pulumi-lang-dotnet=\"`ScalingConfig`\" pulumi-lang-go=\"`scalingConfig`\" pulumi-lang-python=\"`scaling_config`\" pulumi-lang-yaml=\"`scalingConfig`\" pulumi-lang-java=\"`scalingConfig`\"\u003e`scaling_config`\u003c/span\u003e below.\n"},"scalingGroupId":{"type":"string","description":"The ID of the scaling group.\n"},"scalingPolicy":{"type":"string","description":"Scaling group mode, default value: \u003cspan pulumi-lang-nodejs=\"`release`\" pulumi-lang-dotnet=\"`Release`\" pulumi-lang-go=\"`release`\" pulumi-lang-python=\"`release`\" pulumi-lang-yaml=\"`release`\" pulumi-lang-java=\"`release`\"\u003e`release`\u003c/span\u003e. Valid values:\n"},"securityGroupId":{"type":"string","description":"The security group ID of the node pool. This field has been replaced by \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e, please use the \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e field instead.\n","deprecationMessage":"Field 'security_group_id' has been deprecated from provider version 1.145.0. The security group ID of the node pool. This field has been replaced by \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e, please use the \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e field instead."},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"Multiple security groups can be configured for a node pool. If both \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e are configured, \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e takes effect. This field cannot be modified.\n"},"securityHardeningOs":{"type":"boolean","description":"Alibaba Cloud OS security reinforcement. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Value:\n"},"socEnabled":{"type":"boolean","description":"Whether enable worker node to support soc security reinforcement, its valid value \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and apply to AliyunLinux series. See [SOC Reinforcement](https://help.aliyun.com/document_detail/196148.html).\n\n\u003e **NOTE:**  It is forbidden to set both \u003cspan pulumi-lang-nodejs=\"`securityHardeningOs`\" pulumi-lang-dotnet=\"`SecurityHardeningOs`\" pulumi-lang-go=\"`securityHardeningOs`\" pulumi-lang-python=\"`security_hardening_os`\" pulumi-lang-yaml=\"`securityHardeningOs`\" pulumi-lang-java=\"`securityHardeningOs`\"\u003e`security_hardening_os`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`socEnabled`\" pulumi-lang-dotnet=\"`SocEnabled`\" pulumi-lang-go=\"`socEnabled`\" pulumi-lang-python=\"`soc_enabled`\" pulumi-lang-yaml=\"`socEnabled`\" pulumi-lang-java=\"`socEnabled`\"\u003e`soc_enabled`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e at the same time.\n"},"spotInstancePools":{"type":"integer","description":"The number of instance types that are available. Auto Scaling creates preemptible instances of multiple instance types that are available at the lowest cost. Valid values: 1 to 10.\n"},"spotInstanceRemedy":{"type":"boolean","description":"Specifies whether to supplement preemptible instances when the number of preemptible instances drops below the specified minimum number. If you set the value to true, Auto Scaling attempts to create a new preemptible instance when the system notifies that an existing preemptible instance is about to be reclaimed. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: enables the supplementation of preemptible instances. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: disables the supplementation of preemptible instances.\n"},"spotPriceLimits":{"type":"array","items":{"$ref":"#/types/alicloud:cs/NodePoolSpotPriceLimit:NodePoolSpotPriceLimit"},"description":"The current single preemptible instance type market price range configuration. See \u003cspan pulumi-lang-nodejs=\"`spotPriceLimit`\" pulumi-lang-dotnet=\"`SpotPriceLimit`\" pulumi-lang-go=\"`spotPriceLimit`\" pulumi-lang-python=\"`spot_price_limit`\" pulumi-lang-yaml=\"`spotPriceLimit`\" pulumi-lang-java=\"`spotPriceLimit`\"\u003e`spot_price_limit`\u003c/span\u003e below.\n"},"spotStrategy":{"type":"string","description":"The preemptible instance type. Value:\n- `NoSpot` : Non-preemptible instance.\n- `SpotWithPriceLimit` : Set the upper limit of the preemptible instance price.\n- `SpotAsPriceGo` : The system automatically bids, following the actual price of the current market.\n"},"systemDiskBurstingEnabled":{"type":"boolean","description":"Specifies whether to enable the burst feature for system disks. Valid values:\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: enables the burst feature. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: disables the burst feature. This parameter is supported only when \u003cspan pulumi-lang-nodejs=\"`systemDiskCategory`\" pulumi-lang-dotnet=\"`SystemDiskCategory`\" pulumi-lang-go=\"`systemDiskCategory`\" pulumi-lang-python=\"`system_disk_category`\" pulumi-lang-yaml=\"`systemDiskCategory`\" pulumi-lang-java=\"`systemDiskCategory`\"\u003e`system_disk_category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"systemDiskCategories":{"type":"array","items":{"type":"string"},"description":"The multi-disk categories of the system disk. When a high-priority disk type cannot be used, Auto Scaling automatically tries to create a system disk with the next priority disk category. Valid values see \u003cspan pulumi-lang-nodejs=\"`systemDiskCategory`\" pulumi-lang-dotnet=\"`SystemDiskCategory`\" pulumi-lang-go=\"`systemDiskCategory`\" pulumi-lang-python=\"`system_disk_category`\" pulumi-lang-yaml=\"`systemDiskCategory`\" pulumi-lang-java=\"`systemDiskCategory`\"\u003e`system_disk_category`\u003c/span\u003e.\n"},"systemDiskCategory":{"type":"string","description":"The category of the system disk for nodes. Default value: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. Valid values:\n"},"systemDiskEncryptAlgorithm":{"type":"string","description":"The encryption algorithm used by the system disk. Value range: aes-256.\n"},"systemDiskEncrypted":{"type":"boolean","description":"Whether to encrypt the system disk. Value range: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: encryption. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: Do not encrypt.\n"},"systemDiskKmsKey":{"type":"string","description":"The ID of the KMS key used by the system disk.\n"},"systemDiskPerformanceLevel":{"type":"string","description":"The system disk performance of the node takes effect only for the ESSD disk.\n- `PL0`: maximum random read/write IOPS 10000 for a single disk.\n- `PL1`: maximum random read/write IOPS 50000 for a single disk.\n- `PL2`: highest random read/write IOPS 100000 for a single disk.\n- `PL3`: maximum random read/write IOPS 1 million for a single disk.\n"},"systemDiskProvisionedIops":{"type":"integer","description":"The predefined IOPS of a system disk. Valid values: 0 to min{50,000, 1,000 × Capacity - Baseline IOPS}. Baseline IOPS = min{1,800 + 50 × Capacity, 50,000}. This parameter is supported only when \u003cspan pulumi-lang-nodejs=\"`systemDiskCategory`\" pulumi-lang-dotnet=\"`SystemDiskCategory`\" pulumi-lang-go=\"`systemDiskCategory`\" pulumi-lang-python=\"`system_disk_category`\" pulumi-lang-yaml=\"`systemDiskCategory`\" pulumi-lang-java=\"`systemDiskCategory`\"\u003e`system_disk_category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"systemDiskSize":{"type":"integer","description":"The size of the system disk. Unit: GiB. The value of this parameter must be at least 1 and greater than or equal to the image size. Default value: 40 or the size of the image, whichever is larger.\n- Basic disk: 20 to 500.\n- ESSD (cloud_essd): The valid values vary based on the performance level of the ESSD. PL0 ESSD: 1 to 2048. PL1 ESSD: 20 to 2048. PL2 ESSD: 461 to 2048. PL3 ESSD: 1261 to 2048.\n- ESSD AutoPL disk (cloud_auto): 1 to 2048.\n- Other disk categories: 20 to 2048.\n"},"systemDiskSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy used by the system disk.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Add tags only for ECS instances. The maximum length of the tag key is 128 characters. The tag key and value cannot start with aliyun or acs:, or contain https:// or http://.\n"},"taints":{"type":"array","items":{"$ref":"#/types/alicloud:cs/NodePoolTaint:NodePoolTaint"},"description":"A List of Kubernetes taints to assign to the nodes. Detailed below. More information in [Taints and Toleration](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/). See \u003cspan pulumi-lang-nodejs=\"`taints`\" pulumi-lang-dotnet=\"`Taints`\" pulumi-lang-go=\"`taints`\" pulumi-lang-python=\"`taints`\" pulumi-lang-yaml=\"`taints`\" pulumi-lang-java=\"`taints`\"\u003e`taints`\u003c/span\u003e below.\n"},"teeConfig":{"$ref":"#/types/alicloud:cs/NodePoolTeeConfig:NodePoolTeeConfig","description":"The configuration about confidential computing for the cluster. See \u003cspan pulumi-lang-nodejs=\"`teeConfig`\" pulumi-lang-dotnet=\"`TeeConfig`\" pulumi-lang-go=\"`teeConfig`\" pulumi-lang-python=\"`tee_config`\" pulumi-lang-yaml=\"`teeConfig`\" pulumi-lang-java=\"`teeConfig`\"\u003e`tee_config`\u003c/span\u003e below.\n"},"type":{"type":"string","description":"Node pool type, value range:\n-'ess': common node pool (including hosting function and auto scaling function).\n-'lingjun': Lingjun node pool.\n"},"unschedulable":{"type":"boolean","description":"Whether the node after expansion can be scheduled.\n"},"updateNodes":{"type":"boolean","description":"Synchronously update node labels and taints.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"upgradePolicy":{"$ref":"#/types/alicloud:cs/NodePoolUpgradePolicy:NodePoolUpgradePolicy","description":"Configuration block for node pool upgrade operations. This is a transient parameter that triggers node pool upgrades when specified. Once the upgrade completes, this block should be removed from your configuration to prevent unintended re-upgrades on subsequent applies. See \u003cspan pulumi-lang-nodejs=\"`upgradePolicy`\" pulumi-lang-dotnet=\"`UpgradePolicy`\" pulumi-lang-go=\"`upgradePolicy`\" pulumi-lang-python=\"`upgrade_policy`\" pulumi-lang-yaml=\"`upgradePolicy`\" pulumi-lang-java=\"`upgradePolicy`\"\u003e`upgrade_policy`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter only applies during resource update.\n"},"userData":{"type":"string","description":"Node custom data, base64-encoded.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vswitches used by node pool workers.\n"}},"required":["autoMode","clusterId","cpuPolicy","formatDisk","imageId","imageType","instanceChargeType","instanceMetadataOptions","keepInstanceName","management","multiAzPolicy","name","nodeCount","nodeNameMode","nodePoolId","nodePoolName","platform","ramRoleName","resourceGroupId","runtimeName","runtimeVersion","scalingConfig","scalingGroupId","scalingPolicy","securityGroupId","securityGroupIds","spotStrategy","systemDiskCategories","systemDiskCategory","teeConfig","type"],"inputProperties":{"autoMode":{"$ref":"#/types/alicloud:cs/NodePoolAutoMode:NodePoolAutoMode","description":"Whether to enable auto mode. When enabled, the system will automatically manage the node pool with optimized default configurations. **Note:** When \u003cspan pulumi-lang-nodejs=\"`autoMode`\" pulumi-lang-dotnet=\"`AutoMode`\" pulumi-lang-go=\"`autoMode`\" pulumi-lang-python=\"`auto_mode`\" pulumi-lang-yaml=\"`autoMode`\" pulumi-lang-java=\"`autoMode`\"\u003e`auto_mode`\u003c/span\u003e is enabled, many parameters will be automatically set to default values and cannot be modified. See `auto_mode.enable` below for details. See \u003cspan pulumi-lang-nodejs=\"`autoMode`\" pulumi-lang-dotnet=\"`AutoMode`\" pulumi-lang-go=\"`autoMode`\" pulumi-lang-python=\"`auto_mode`\" pulumi-lang-yaml=\"`autoMode`\" pulumi-lang-java=\"`autoMode`\"\u003e`auto_mode`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"autoRenew":{"type":"boolean","description":"Whether to enable automatic renewal for nodes in the node pool takes effect only when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PrePaid`. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"autoRenewPeriod":{"type":"integer","description":"The automatic renewal period of nodes in the node pool takes effect only when you select Prepaid and Automatic Renewal, and is a required value. When `PeriodUnit = Month`, the value range is {1, 2, 3, 6, 12}. Default value: 1.\n"},"cisEnabled":{"type":"boolean","description":"Whether enable worker node to support cis security reinforcement, its valid value \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and apply to AliyunLinux series. Use \u003cspan pulumi-lang-nodejs=\"`securityHardeningOs`\" pulumi-lang-dotnet=\"`SecurityHardeningOs`\" pulumi-lang-go=\"`securityHardeningOs`\" pulumi-lang-python=\"`security_hardening_os`\" pulumi-lang-yaml=\"`securityHardeningOs`\" pulumi-lang-java=\"`securityHardeningOs`\"\u003e`security_hardening_os`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'cis_enabled' has been deprecated from provider version 1.223.1. Whether enable worker node to support cis security reinforcement, its valid value \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and apply to AliyunLinux series. Use \u003cspan pulumi-lang-nodejs=\"`securityHardeningOs`\" pulumi-lang-dotnet=\"`SecurityHardeningOs`\" pulumi-lang-go=\"`securityHardeningOs`\" pulumi-lang-python=\"`security_hardening_os`\" pulumi-lang-yaml=\"`securityHardeningOs`\" pulumi-lang-java=\"`securityHardeningOs`\"\u003e`security_hardening_os`\u003c/span\u003e instead.","willReplaceOnChanges":true},"clusterId":{"type":"string","description":"The id of kubernetes cluster.\n","willReplaceOnChanges":true},"compensateWithOnDemand":{"type":"boolean","description":"Specifies whether to automatically create pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created due to reasons such as cost or insufficient inventory. This parameter takes effect when you set \u003cspan pulumi-lang-nodejs=\"`multiAzPolicy`\" pulumi-lang-dotnet=\"`MultiAzPolicy`\" pulumi-lang-go=\"`multiAzPolicy`\" pulumi-lang-python=\"`multi_az_policy`\" pulumi-lang-yaml=\"`multiAzPolicy`\" pulumi-lang-java=\"`multiAzPolicy`\"\u003e`multi_az_policy`\u003c/span\u003e to `COST_OPTIMIZED`. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: automatically creates pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: does not create pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created.\n"},"cpuPolicy":{"type":"string","description":"Node CPU management policies. Default value: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. When the cluster version is 1.12.6 or later, the following two policies are supported:\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:cs/NodePoolDataDisk:NodePoolDataDisk"},"description":"Configure the data disk of the node in the node pool. See \u003cspan pulumi-lang-nodejs=\"`dataDisks`\" pulumi-lang-dotnet=\"`DataDisks`\" pulumi-lang-go=\"`dataDisks`\" pulumi-lang-python=\"`data_disks`\" pulumi-lang-yaml=\"`dataDisks`\" pulumi-lang-java=\"`dataDisks`\"\u003e`data_disks`\u003c/span\u003e below.\n"},"deploymentSetId":{"type":"string","description":"The deployment set of node pool. Specify the deploymentSet to ensure that the nodes in the node pool can be distributed on different physical machines.\n","willReplaceOnChanges":true},"desiredSize":{"type":"string","description":"Number of expected nodes in the node pool.\n"},"efloNodeGroup":{"$ref":"#/types/alicloud:cs/NodePoolEfloNodeGroup:NodePoolEfloNodeGroup","description":"Lingjun node pool configuration. See \u003cspan pulumi-lang-nodejs=\"`efloNodeGroup`\" pulumi-lang-dotnet=\"`EfloNodeGroup`\" pulumi-lang-go=\"`efloNodeGroup`\" pulumi-lang-python=\"`eflo_node_group`\" pulumi-lang-yaml=\"`efloNodeGroup`\" pulumi-lang-java=\"`efloNodeGroup`\"\u003e`eflo_node_group`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"forceDelete":{"type":"boolean","description":"Whether to force deletion.\n\n\u003e **NOTE:** This parameter only takes effect when deletion is triggered.\n"},"formatDisk":{"type":"boolean","description":"After you select this check box, if data disks have been attached to the specified ECS instances and the file system of the last data disk is uninitialized, the system automatically formats the last data disk to ext4 and mounts the data disk to /var/lib/docker and /var/lib/kubelet. The original data on the disk will be cleared. Make sure that you back up data in advance. If no data disk is mounted on the ECS instance, no new data disk will be purchased. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"imageId":{"type":"string","description":"The custom image ID. The system-provided image is used by default.\n"},"imageType":{"type":"string","description":"The operating system image type and the \u003cspan pulumi-lang-nodejs=\"`platform`\" pulumi-lang-dotnet=\"`Platform`\" pulumi-lang-go=\"`platform`\" pulumi-lang-python=\"`platform`\" pulumi-lang-yaml=\"`platform`\" pulumi-lang-java=\"`platform`\"\u003e`platform`\u003c/span\u003e parameter can be selected from the following values:\n- `AliyunLinux` : Alinux2 image.\n- `AliyunLinux3` : Alinux3 image.\n- `AliyunLinux3Arm64` : Alinux3 mirror ARM version.\n- `AliyunLinuxUEFI` : Alinux2 Image UEFI version.\n- `CentOS` : CentOS image.\n- `Windows` : Windows image.\n- `WindowsCore` : WindowsCore image.\n- `ContainerOS` : container-optimized image.\n- `Ubuntu`: Ubuntu image.\n- `AliyunLinux3ContainerOptimized`: Alinux3 container-optimized image.\n- `Custom`：Custom image.\n- `AliyunLinux4ContainerOptimized`：Alinux4 container-optimized image.\n"},"installCloudMonitor":{"type":"boolean","description":"Whether to install cloud monitoring on the ECS node. After installation, you can view the monitoring information of the created ECS instance in the cloud monitoring console and recommend enable it. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"instanceChargeType":{"type":"string","description":"Node payment type. Valid values: `PostPaid`, `PrePaid`, default is `PostPaid`. If value is `PrePaid`, the arguments \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`autoRenewPeriod`\" pulumi-lang-dotnet=\"`AutoRenewPeriod`\" pulumi-lang-go=\"`autoRenewPeriod`\" pulumi-lang-python=\"`auto_renew_period`\" pulumi-lang-yaml=\"`autoRenewPeriod`\" pulumi-lang-java=\"`autoRenewPeriod`\"\u003e`auto_renew_period`\u003c/span\u003e are required.\n"},"instanceMetadataOptions":{"$ref":"#/types/alicloud:cs/NodePoolInstanceMetadataOptions:NodePoolInstanceMetadataOptions","description":"ECS instance metadata access configuration. See \u003cspan pulumi-lang-nodejs=\"`instanceMetadataOptions`\" pulumi-lang-dotnet=\"`InstanceMetadataOptions`\" pulumi-lang-go=\"`instanceMetadataOptions`\" pulumi-lang-python=\"`instance_metadata_options`\" pulumi-lang-yaml=\"`instanceMetadataOptions`\" pulumi-lang-java=\"`instanceMetadataOptions`\"\u003e`instance_metadata_options`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"instancePatterns":{"type":"array","items":{"$ref":"#/types/alicloud:cs/NodePoolInstancePattern:NodePoolInstancePattern"},"description":"Instance property configuration. See \u003cspan pulumi-lang-nodejs=\"`instancePatterns`\" pulumi-lang-dotnet=\"`InstancePatterns`\" pulumi-lang-go=\"`instancePatterns`\" pulumi-lang-python=\"`instance_patterns`\" pulumi-lang-yaml=\"`instancePatterns`\" pulumi-lang-java=\"`instancePatterns`\"\u003e`instance_patterns`\u003c/span\u003e below.\n"},"instanceTypes":{"type":"array","items":{"type":"string"},"description":"In the node instance specification list, you can select multiple instance specifications as alternatives. When each node is created, it will try to purchase from the first specification until it is created successfully. The final purchased instance specifications may vary with inventory changes.\n"},"instances":{"type":"array","items":{"type":"string"},"description":"The instance list. Add existing nodes under the same cluster VPC to the node pool.\n"},"internetChargeType":{"type":"string","description":"The billing method for network usage. Valid values `PayByBandwidth` and `PayByTraffic`. Conflict with \u003cspan pulumi-lang-nodejs=\"`eipInternetChargeType`\" pulumi-lang-dotnet=\"`EipInternetChargeType`\" pulumi-lang-go=\"`eipInternetChargeType`\" pulumi-lang-python=\"`eip_internet_charge_type`\" pulumi-lang-yaml=\"`eipInternetChargeType`\" pulumi-lang-java=\"`eipInternetChargeType`\"\u003e`eip_internet_charge_type`\u003c/span\u003e, EIP and public network IP can only choose one.\n"},"internetMaxBandwidthOut":{"type":"integer","description":"The maximum bandwidth of the public IP address of the node. The unit is Mbps(Mega bit per second). The value range is:\\[1,100\\]\n"},"keepInstanceName":{"type":"boolean","description":"Add an existing instance to the node pool, whether to keep the original instance name. It is recommended to set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"keyName":{"type":"string","description":"The name of the key pair. When the node pool is a managed node pool, only \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e is supported.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a cs kubernetes. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","secret":true},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a cs kubernetes with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"kubeletConfiguration":{"$ref":"#/types/alicloud:cs/NodePoolKubeletConfiguration:NodePoolKubeletConfiguration","description":"Kubelet configuration parameters for worker nodes. See \u003cspan pulumi-lang-nodejs=\"`kubeletConfiguration`\" pulumi-lang-dotnet=\"`KubeletConfiguration`\" pulumi-lang-go=\"`kubeletConfiguration`\" pulumi-lang-python=\"`kubelet_configuration`\" pulumi-lang-yaml=\"`kubeletConfiguration`\" pulumi-lang-java=\"`kubeletConfiguration`\"\u003e`kubelet_configuration`\u003c/span\u003e below. More information in [Kubelet Configuration](https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/). See \u003cspan pulumi-lang-nodejs=\"`kubeletConfiguration`\" pulumi-lang-dotnet=\"`KubeletConfiguration`\" pulumi-lang-go=\"`kubeletConfiguration`\" pulumi-lang-python=\"`kubelet_configuration`\" pulumi-lang-yaml=\"`kubeletConfiguration`\" pulumi-lang-java=\"`kubeletConfiguration`\"\u003e`kubelet_configuration`\u003c/span\u003e below.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:cs/NodePoolLabel:NodePoolLabel"},"description":"A List of Kubernetes labels to assign to the nodes . Only labels that are applied with the ACK API are managed by this argument. Detailed below. More information in [Labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/). See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"loginAsNonRoot":{"type":"boolean","description":"Whether the ECS instance is logged on as a ecs-user user. Valid value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"management":{"$ref":"#/types/alicloud:cs/NodePoolManagement:NodePoolManagement","description":"Managed node pool configuration. See \u003cspan pulumi-lang-nodejs=\"`management`\" pulumi-lang-dotnet=\"`Management`\" pulumi-lang-go=\"`management`\" pulumi-lang-python=\"`management`\" pulumi-lang-yaml=\"`management`\" pulumi-lang-java=\"`management`\"\u003e`management`\u003c/span\u003e below.\n"},"multiAzPolicy":{"type":"string","description":"The scaling policy for ECS instances in a multi-zone scaling group. Valid value: `PRIORITY`, `COST_OPTIMIZED` and `BALANCE`. `PRIORITY`: scales the capacity according to the virtual switches you define (VSwitchIds.N). When an ECS instance cannot be created in the zone where the higher-priority vSwitch is located, the next-priority vSwitch is automatically used to create an ECS instance. `COST_OPTIMIZED`: try to create by vCPU unit price from low to high. When the scaling configuration is configured with multiple instances of preemptible billing, preemptible instances are created first. You can continue to use the `CompensateWithOnDemand` parameter to specify whether to automatically try to create a preemptible instance by paying for it. It takes effect only when the scaling configuration has multi-instance specifications or preemptible instances. `BALANCE`: distributes ECS instances evenly among the multi-zone specified by the scaling group. If the zones become unbalanced due to insufficient inventory, you can use the API RebalanceInstances to balance resources.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.219.0. New field 'node_pool_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.219.0. New field 'node_pool_name' instead."},"nodeCount":{"type":"integer","description":"The worker node number of the node pool. From version 1.111.0, \u003cspan pulumi-lang-nodejs=\"`nodeCount`\" pulumi-lang-dotnet=\"`NodeCount`\" pulumi-lang-go=\"`nodeCount`\" pulumi-lang-python=\"`node_count`\" pulumi-lang-yaml=\"`nodeCount`\" pulumi-lang-java=\"`nodeCount`\"\u003e`node_count`\u003c/span\u003e is not required.\n","deprecationMessage":"Field 'node_count' has been deprecated from provider version 1.158.0. New field 'desired_size' instead."},"nodeNameMode":{"type":"string","description":"Each node name consists of a prefix, its private network IP, and a suffix, separated by commas. The input format is `customized,,ip,`.\n- The prefix and suffix can be composed of one or more parts separated by '.', each part can use lowercase letters, numbers and '-', and the beginning and end of the node name must be lowercase letters and numbers.\n- The node IP address is the complete private IP address of the node.\n- For example, if the string `customized,aliyun,ip,com` is passed in (where 'customized' and 'ip' are fixed strings, 'aliyun' is the prefix, and 'com' is the suffix), the name of the node is `aliyun192.168.xxx.xxxcom`.\n","willReplaceOnChanges":true},"nodePoolName":{"type":"string","description":"The name of node pool.\n"},"onDemandBaseCapacity":{"type":"string","description":"The minimum number of pay-as-you-go instances that must be kept in the scaling group. Valid values: 0 to 1000. If the number of pay-as-you-go instances is less than the value of this parameter, Auto Scaling preferably creates pay-as-you-go instances.\n"},"onDemandPercentageAboveBaseCapacity":{"type":"string","description":"The percentage of pay-as-you-go instances among the extra instances that exceed the number specified by \u003cspan pulumi-lang-nodejs=\"`onDemandBaseCapacity`\" pulumi-lang-dotnet=\"`OnDemandBaseCapacity`\" pulumi-lang-go=\"`onDemandBaseCapacity`\" pulumi-lang-python=\"`on_demand_base_capacity`\" pulumi-lang-yaml=\"`onDemandBaseCapacity`\" pulumi-lang-java=\"`onDemandBaseCapacity`\"\u003e`on_demand_base_capacity`\u003c/span\u003e. Valid values: 0 to 100.\n"},"password":{"type":"string","description":"The password of ssh login. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e fields. The password rule is 8 to 30 characters and contains at least three items (upper and lower case letters, numbers, and special symbols).\n","secret":true},"period":{"type":"integer","description":"Node payment period. Its valid value is one of {1, 2, 3, 6, 12}.\n"},"periodUnit":{"type":"string","description":"Node payment period unit, valid value: `Month`. Default is `Month`.\n"},"platform":{"type":"string","description":"Operating system release, using \u003cspan pulumi-lang-nodejs=\"`imageType`\" pulumi-lang-dotnet=\"`ImageType`\" pulumi-lang-go=\"`imageType`\" pulumi-lang-python=\"`image_type`\" pulumi-lang-yaml=\"`imageType`\" pulumi-lang-java=\"`imageType`\"\u003e`image_type`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'platform' has been deprecated from provider version 1.145.0. Operating system release, using \u003cspan pulumi-lang-nodejs=\"`imageType`\" pulumi-lang-dotnet=\"`ImageType`\" pulumi-lang-go=\"`imageType`\" pulumi-lang-python=\"`image_type`\" pulumi-lang-yaml=\"`imageType`\" pulumi-lang-java=\"`imageType`\"\u003e`image_type`\u003c/span\u003e instead."},"preUserData":{"type":"string","description":"Node pre custom data, base64-encoded, the script executed before the node is initialized.\n"},"privatePoolOptions":{"$ref":"#/types/alicloud:cs/NodePoolPrivatePoolOptions:NodePoolPrivatePoolOptions","description":"Private node pool configuration. See \u003cspan pulumi-lang-nodejs=\"`privatePoolOptions`\" pulumi-lang-dotnet=\"`PrivatePoolOptions`\" pulumi-lang-go=\"`privatePoolOptions`\" pulumi-lang-python=\"`private_pool_options`\" pulumi-lang-yaml=\"`privatePoolOptions`\" pulumi-lang-java=\"`privatePoolOptions`\"\u003e`private_pool_options`\u003c/span\u003e below.\n"},"ramRoleName":{"type":"string","description":"The name of the Worker RAM role.\n* If it is empty, the default Worker RAM role created in the cluster will be used.\n* If the specified RAM role is not empty, the specified RAM role must be a **Common Service role**, and its **trusted service** configuration must be **cloud server**. For more information, see [Create a common service role](https://help.aliyun.com/document_detail/116800.html). If the specified RAM role is not the default Worker RAM role created in the cluster, the role name cannot start with 'KubernetesMasterRole-'or 'KubernetesWorkerRole.\n\n\u003e **NOTE:**  This parameter is only supported for ACK-managed clusters of 1.22 or later versions.\n","willReplaceOnChanges":true},"rdsInstances":{"type":"array","items":{"type":"string"},"description":"The list of RDS instances.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"rollingPolicy":{"$ref":"#/types/alicloud:cs/NodePoolRollingPolicy:NodePoolRollingPolicy","description":"Rotary configuration. See \u003cspan pulumi-lang-nodejs=\"`rollingPolicy`\" pulumi-lang-dotnet=\"`RollingPolicy`\" pulumi-lang-go=\"`rollingPolicy`\" pulumi-lang-python=\"`rolling_policy`\" pulumi-lang-yaml=\"`rollingPolicy`\" pulumi-lang-java=\"`rollingPolicy`\"\u003e`rolling_policy`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"runtimeName":{"type":"string","description":"The runtime name of containers. If not set, the cluster runtime will be used as the node pool runtime. If you select another container runtime, see [Comparison of Docker, containerd, and Sandboxed-Container](https://www.alibabacloud.com/help/doc-detail/160313.htm).\n"},"runtimeVersion":{"type":"string","description":"The runtime version of containers. If not set, the cluster runtime will be used as the node pool runtime.\n"},"scalingConfig":{"$ref":"#/types/alicloud:cs/NodePoolScalingConfig:NodePoolScalingConfig","description":"Automatic scaling configuration. See \u003cspan pulumi-lang-nodejs=\"`scalingConfig`\" pulumi-lang-dotnet=\"`ScalingConfig`\" pulumi-lang-go=\"`scalingConfig`\" pulumi-lang-python=\"`scaling_config`\" pulumi-lang-yaml=\"`scalingConfig`\" pulumi-lang-java=\"`scalingConfig`\"\u003e`scaling_config`\u003c/span\u003e below.\n"},"scalingPolicy":{"type":"string","description":"Scaling group mode, default value: \u003cspan pulumi-lang-nodejs=\"`release`\" pulumi-lang-dotnet=\"`Release`\" pulumi-lang-go=\"`release`\" pulumi-lang-python=\"`release`\" pulumi-lang-yaml=\"`release`\" pulumi-lang-java=\"`release`\"\u003e`release`\u003c/span\u003e. Valid values:\n"},"securityGroupId":{"type":"string","description":"The security group ID of the node pool. This field has been replaced by \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e, please use the \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e field instead.\n","deprecationMessage":"Field 'security_group_id' has been deprecated from provider version 1.145.0. The security group ID of the node pool. This field has been replaced by \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e, please use the \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e field instead.","willReplaceOnChanges":true},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"Multiple security groups can be configured for a node pool. If both \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e are configured, \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e takes effect. This field cannot be modified.\n","willReplaceOnChanges":true},"securityHardeningOs":{"type":"boolean","description":"Alibaba Cloud OS security reinforcement. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Value:\n","willReplaceOnChanges":true},"socEnabled":{"type":"boolean","description":"Whether enable worker node to support soc security reinforcement, its valid value \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and apply to AliyunLinux series. See [SOC Reinforcement](https://help.aliyun.com/document_detail/196148.html).\n\n\u003e **NOTE:**  It is forbidden to set both \u003cspan pulumi-lang-nodejs=\"`securityHardeningOs`\" pulumi-lang-dotnet=\"`SecurityHardeningOs`\" pulumi-lang-go=\"`securityHardeningOs`\" pulumi-lang-python=\"`security_hardening_os`\" pulumi-lang-yaml=\"`securityHardeningOs`\" pulumi-lang-java=\"`securityHardeningOs`\"\u003e`security_hardening_os`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`socEnabled`\" pulumi-lang-dotnet=\"`SocEnabled`\" pulumi-lang-go=\"`socEnabled`\" pulumi-lang-python=\"`soc_enabled`\" pulumi-lang-yaml=\"`socEnabled`\" pulumi-lang-java=\"`socEnabled`\"\u003e`soc_enabled`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e at the same time.\n","willReplaceOnChanges":true},"spotInstancePools":{"type":"integer","description":"The number of instance types that are available. Auto Scaling creates preemptible instances of multiple instance types that are available at the lowest cost. Valid values: 1 to 10.\n"},"spotInstanceRemedy":{"type":"boolean","description":"Specifies whether to supplement preemptible instances when the number of preemptible instances drops below the specified minimum number. If you set the value to true, Auto Scaling attempts to create a new preemptible instance when the system notifies that an existing preemptible instance is about to be reclaimed. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: enables the supplementation of preemptible instances. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: disables the supplementation of preemptible instances.\n"},"spotPriceLimits":{"type":"array","items":{"$ref":"#/types/alicloud:cs/NodePoolSpotPriceLimit:NodePoolSpotPriceLimit"},"description":"The current single preemptible instance type market price range configuration. See \u003cspan pulumi-lang-nodejs=\"`spotPriceLimit`\" pulumi-lang-dotnet=\"`SpotPriceLimit`\" pulumi-lang-go=\"`spotPriceLimit`\" pulumi-lang-python=\"`spot_price_limit`\" pulumi-lang-yaml=\"`spotPriceLimit`\" pulumi-lang-java=\"`spotPriceLimit`\"\u003e`spot_price_limit`\u003c/span\u003e below.\n"},"spotStrategy":{"type":"string","description":"The preemptible instance type. Value:\n- `NoSpot` : Non-preemptible instance.\n- `SpotWithPriceLimit` : Set the upper limit of the preemptible instance price.\n- `SpotAsPriceGo` : The system automatically bids, following the actual price of the current market.\n"},"systemDiskBurstingEnabled":{"type":"boolean","description":"Specifies whether to enable the burst feature for system disks. Valid values:\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: enables the burst feature. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: disables the burst feature. This parameter is supported only when \u003cspan pulumi-lang-nodejs=\"`systemDiskCategory`\" pulumi-lang-dotnet=\"`SystemDiskCategory`\" pulumi-lang-go=\"`systemDiskCategory`\" pulumi-lang-python=\"`system_disk_category`\" pulumi-lang-yaml=\"`systemDiskCategory`\" pulumi-lang-java=\"`systemDiskCategory`\"\u003e`system_disk_category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"systemDiskCategories":{"type":"array","items":{"type":"string"},"description":"The multi-disk categories of the system disk. When a high-priority disk type cannot be used, Auto Scaling automatically tries to create a system disk with the next priority disk category. Valid values see \u003cspan pulumi-lang-nodejs=\"`systemDiskCategory`\" pulumi-lang-dotnet=\"`SystemDiskCategory`\" pulumi-lang-go=\"`systemDiskCategory`\" pulumi-lang-python=\"`system_disk_category`\" pulumi-lang-yaml=\"`systemDiskCategory`\" pulumi-lang-java=\"`systemDiskCategory`\"\u003e`system_disk_category`\u003c/span\u003e.\n"},"systemDiskCategory":{"type":"string","description":"The category of the system disk for nodes. Default value: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. Valid values:\n"},"systemDiskEncryptAlgorithm":{"type":"string","description":"The encryption algorithm used by the system disk. Value range: aes-256.\n"},"systemDiskEncrypted":{"type":"boolean","description":"Whether to encrypt the system disk. Value range: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: encryption. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: Do not encrypt.\n"},"systemDiskKmsKey":{"type":"string","description":"The ID of the KMS key used by the system disk.\n"},"systemDiskPerformanceLevel":{"type":"string","description":"The system disk performance of the node takes effect only for the ESSD disk.\n- `PL0`: maximum random read/write IOPS 10000 for a single disk.\n- `PL1`: maximum random read/write IOPS 50000 for a single disk.\n- `PL2`: highest random read/write IOPS 100000 for a single disk.\n- `PL3`: maximum random read/write IOPS 1 million for a single disk.\n"},"systemDiskProvisionedIops":{"type":"integer","description":"The predefined IOPS of a system disk. Valid values: 0 to min{50,000, 1,000 × Capacity - Baseline IOPS}. Baseline IOPS = min{1,800 + 50 × Capacity, 50,000}. This parameter is supported only when \u003cspan pulumi-lang-nodejs=\"`systemDiskCategory`\" pulumi-lang-dotnet=\"`SystemDiskCategory`\" pulumi-lang-go=\"`systemDiskCategory`\" pulumi-lang-python=\"`system_disk_category`\" pulumi-lang-yaml=\"`systemDiskCategory`\" pulumi-lang-java=\"`systemDiskCategory`\"\u003e`system_disk_category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"systemDiskSize":{"type":"integer","description":"The size of the system disk. Unit: GiB. The value of this parameter must be at least 1 and greater than or equal to the image size. Default value: 40 or the size of the image, whichever is larger.\n- Basic disk: 20 to 500.\n- ESSD (cloud_essd): The valid values vary based on the performance level of the ESSD. PL0 ESSD: 1 to 2048. PL1 ESSD: 20 to 2048. PL2 ESSD: 461 to 2048. PL3 ESSD: 1261 to 2048.\n- ESSD AutoPL disk (cloud_auto): 1 to 2048.\n- Other disk categories: 20 to 2048.\n"},"systemDiskSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy used by the system disk.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Add tags only for ECS instances. The maximum length of the tag key is 128 characters. The tag key and value cannot start with aliyun or acs:, or contain https:// or http://.\n"},"taints":{"type":"array","items":{"$ref":"#/types/alicloud:cs/NodePoolTaint:NodePoolTaint"},"description":"A List of Kubernetes taints to assign to the nodes. Detailed below. More information in [Taints and Toleration](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/). See \u003cspan pulumi-lang-nodejs=\"`taints`\" pulumi-lang-dotnet=\"`Taints`\" pulumi-lang-go=\"`taints`\" pulumi-lang-python=\"`taints`\" pulumi-lang-yaml=\"`taints`\" pulumi-lang-java=\"`taints`\"\u003e`taints`\u003c/span\u003e below.\n"},"teeConfig":{"$ref":"#/types/alicloud:cs/NodePoolTeeConfig:NodePoolTeeConfig","description":"The configuration about confidential computing for the cluster. See \u003cspan pulumi-lang-nodejs=\"`teeConfig`\" pulumi-lang-dotnet=\"`TeeConfig`\" pulumi-lang-go=\"`teeConfig`\" pulumi-lang-python=\"`tee_config`\" pulumi-lang-yaml=\"`teeConfig`\" pulumi-lang-java=\"`teeConfig`\"\u003e`tee_config`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Node pool type, value range:\n-'ess': common node pool (including hosting function and auto scaling function).\n-'lingjun': Lingjun node pool.\n","willReplaceOnChanges":true},"unschedulable":{"type":"boolean","description":"Whether the node after expansion can be scheduled.\n"},"updateNodes":{"type":"boolean","description":"Synchronously update node labels and taints.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"upgradePolicy":{"$ref":"#/types/alicloud:cs/NodePoolUpgradePolicy:NodePoolUpgradePolicy","description":"Configuration block for node pool upgrade operations. This is a transient parameter that triggers node pool upgrades when specified. Once the upgrade completes, this block should be removed from your configuration to prevent unintended re-upgrades on subsequent applies. See \u003cspan pulumi-lang-nodejs=\"`upgradePolicy`\" pulumi-lang-dotnet=\"`UpgradePolicy`\" pulumi-lang-go=\"`upgradePolicy`\" pulumi-lang-python=\"`upgrade_policy`\" pulumi-lang-yaml=\"`upgradePolicy`\" pulumi-lang-java=\"`upgradePolicy`\"\u003e`upgrade_policy`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter only applies during resource update.\n"},"userData":{"type":"string","description":"Node custom data, base64-encoded.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vswitches used by node pool workers.\n"}},"requiredInputs":["clusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering NodePool resources.\n","properties":{"autoMode":{"$ref":"#/types/alicloud:cs/NodePoolAutoMode:NodePoolAutoMode","description":"Whether to enable auto mode. When enabled, the system will automatically manage the node pool with optimized default configurations. **Note:** When \u003cspan pulumi-lang-nodejs=\"`autoMode`\" pulumi-lang-dotnet=\"`AutoMode`\" pulumi-lang-go=\"`autoMode`\" pulumi-lang-python=\"`auto_mode`\" pulumi-lang-yaml=\"`autoMode`\" pulumi-lang-java=\"`autoMode`\"\u003e`auto_mode`\u003c/span\u003e is enabled, many parameters will be automatically set to default values and cannot be modified. See `auto_mode.enable` below for details. See \u003cspan pulumi-lang-nodejs=\"`autoMode`\" pulumi-lang-dotnet=\"`AutoMode`\" pulumi-lang-go=\"`autoMode`\" pulumi-lang-python=\"`auto_mode`\" pulumi-lang-yaml=\"`autoMode`\" pulumi-lang-java=\"`autoMode`\"\u003e`auto_mode`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"autoRenew":{"type":"boolean","description":"Whether to enable automatic renewal for nodes in the node pool takes effect only when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PrePaid`. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"autoRenewPeriod":{"type":"integer","description":"The automatic renewal period of nodes in the node pool takes effect only when you select Prepaid and Automatic Renewal, and is a required value. When `PeriodUnit = Month`, the value range is {1, 2, 3, 6, 12}. Default value: 1.\n"},"cisEnabled":{"type":"boolean","description":"Whether enable worker node to support cis security reinforcement, its valid value \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and apply to AliyunLinux series. Use \u003cspan pulumi-lang-nodejs=\"`securityHardeningOs`\" pulumi-lang-dotnet=\"`SecurityHardeningOs`\" pulumi-lang-go=\"`securityHardeningOs`\" pulumi-lang-python=\"`security_hardening_os`\" pulumi-lang-yaml=\"`securityHardeningOs`\" pulumi-lang-java=\"`securityHardeningOs`\"\u003e`security_hardening_os`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'cis_enabled' has been deprecated from provider version 1.223.1. Whether enable worker node to support cis security reinforcement, its valid value \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and apply to AliyunLinux series. Use \u003cspan pulumi-lang-nodejs=\"`securityHardeningOs`\" pulumi-lang-dotnet=\"`SecurityHardeningOs`\" pulumi-lang-go=\"`securityHardeningOs`\" pulumi-lang-python=\"`security_hardening_os`\" pulumi-lang-yaml=\"`securityHardeningOs`\" pulumi-lang-java=\"`securityHardeningOs`\"\u003e`security_hardening_os`\u003c/span\u003e instead.","willReplaceOnChanges":true},"clusterId":{"type":"string","description":"The id of kubernetes cluster.\n","willReplaceOnChanges":true},"compensateWithOnDemand":{"type":"boolean","description":"Specifies whether to automatically create pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created due to reasons such as cost or insufficient inventory. This parameter takes effect when you set \u003cspan pulumi-lang-nodejs=\"`multiAzPolicy`\" pulumi-lang-dotnet=\"`MultiAzPolicy`\" pulumi-lang-go=\"`multiAzPolicy`\" pulumi-lang-python=\"`multi_az_policy`\" pulumi-lang-yaml=\"`multiAzPolicy`\" pulumi-lang-java=\"`multiAzPolicy`\"\u003e`multi_az_policy`\u003c/span\u003e to `COST_OPTIMIZED`. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: automatically creates pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: does not create pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created.\n"},"cpuPolicy":{"type":"string","description":"Node CPU management policies. Default value: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. When the cluster version is 1.12.6 or later, the following two policies are supported:\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:cs/NodePoolDataDisk:NodePoolDataDisk"},"description":"Configure the data disk of the node in the node pool. See \u003cspan pulumi-lang-nodejs=\"`dataDisks`\" pulumi-lang-dotnet=\"`DataDisks`\" pulumi-lang-go=\"`dataDisks`\" pulumi-lang-python=\"`data_disks`\" pulumi-lang-yaml=\"`dataDisks`\" pulumi-lang-java=\"`dataDisks`\"\u003e`data_disks`\u003c/span\u003e below.\n"},"deploymentSetId":{"type":"string","description":"The deployment set of node pool. Specify the deploymentSet to ensure that the nodes in the node pool can be distributed on different physical machines.\n","willReplaceOnChanges":true},"desiredSize":{"type":"string","description":"Number of expected nodes in the node pool.\n"},"efloNodeGroup":{"$ref":"#/types/alicloud:cs/NodePoolEfloNodeGroup:NodePoolEfloNodeGroup","description":"Lingjun node pool configuration. See \u003cspan pulumi-lang-nodejs=\"`efloNodeGroup`\" pulumi-lang-dotnet=\"`EfloNodeGroup`\" pulumi-lang-go=\"`efloNodeGroup`\" pulumi-lang-python=\"`eflo_node_group`\" pulumi-lang-yaml=\"`efloNodeGroup`\" pulumi-lang-java=\"`efloNodeGroup`\"\u003e`eflo_node_group`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"forceDelete":{"type":"boolean","description":"Whether to force deletion.\n\n\u003e **NOTE:** This parameter only takes effect when deletion is triggered.\n"},"formatDisk":{"type":"boolean","description":"After you select this check box, if data disks have been attached to the specified ECS instances and the file system of the last data disk is uninitialized, the system automatically formats the last data disk to ext4 and mounts the data disk to /var/lib/docker and /var/lib/kubelet. The original data on the disk will be cleared. Make sure that you back up data in advance. If no data disk is mounted on the ECS instance, no new data disk will be purchased. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"imageId":{"type":"string","description":"The custom image ID. The system-provided image is used by default.\n"},"imageType":{"type":"string","description":"The operating system image type and the \u003cspan pulumi-lang-nodejs=\"`platform`\" pulumi-lang-dotnet=\"`Platform`\" pulumi-lang-go=\"`platform`\" pulumi-lang-python=\"`platform`\" pulumi-lang-yaml=\"`platform`\" pulumi-lang-java=\"`platform`\"\u003e`platform`\u003c/span\u003e parameter can be selected from the following values:\n- `AliyunLinux` : Alinux2 image.\n- `AliyunLinux3` : Alinux3 image.\n- `AliyunLinux3Arm64` : Alinux3 mirror ARM version.\n- `AliyunLinuxUEFI` : Alinux2 Image UEFI version.\n- `CentOS` : CentOS image.\n- `Windows` : Windows image.\n- `WindowsCore` : WindowsCore image.\n- `ContainerOS` : container-optimized image.\n- `Ubuntu`: Ubuntu image.\n- `AliyunLinux3ContainerOptimized`: Alinux3 container-optimized image.\n- `Custom`：Custom image.\n- `AliyunLinux4ContainerOptimized`：Alinux4 container-optimized image.\n"},"installCloudMonitor":{"type":"boolean","description":"Whether to install cloud monitoring on the ECS node. After installation, you can view the monitoring information of the created ECS instance in the cloud monitoring console and recommend enable it. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"instanceChargeType":{"type":"string","description":"Node payment type. Valid values: `PostPaid`, `PrePaid`, default is `PostPaid`. If value is `PrePaid`, the arguments \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`autoRenewPeriod`\" pulumi-lang-dotnet=\"`AutoRenewPeriod`\" pulumi-lang-go=\"`autoRenewPeriod`\" pulumi-lang-python=\"`auto_renew_period`\" pulumi-lang-yaml=\"`autoRenewPeriod`\" pulumi-lang-java=\"`autoRenewPeriod`\"\u003e`auto_renew_period`\u003c/span\u003e are required.\n"},"instanceMetadataOptions":{"$ref":"#/types/alicloud:cs/NodePoolInstanceMetadataOptions:NodePoolInstanceMetadataOptions","description":"ECS instance metadata access configuration. See \u003cspan pulumi-lang-nodejs=\"`instanceMetadataOptions`\" pulumi-lang-dotnet=\"`InstanceMetadataOptions`\" pulumi-lang-go=\"`instanceMetadataOptions`\" pulumi-lang-python=\"`instance_metadata_options`\" pulumi-lang-yaml=\"`instanceMetadataOptions`\" pulumi-lang-java=\"`instanceMetadataOptions`\"\u003e`instance_metadata_options`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"instancePatterns":{"type":"array","items":{"$ref":"#/types/alicloud:cs/NodePoolInstancePattern:NodePoolInstancePattern"},"description":"Instance property configuration. See \u003cspan pulumi-lang-nodejs=\"`instancePatterns`\" pulumi-lang-dotnet=\"`InstancePatterns`\" pulumi-lang-go=\"`instancePatterns`\" pulumi-lang-python=\"`instance_patterns`\" pulumi-lang-yaml=\"`instancePatterns`\" pulumi-lang-java=\"`instancePatterns`\"\u003e`instance_patterns`\u003c/span\u003e below.\n"},"instanceTypes":{"type":"array","items":{"type":"string"},"description":"In the node instance specification list, you can select multiple instance specifications as alternatives. When each node is created, it will try to purchase from the first specification until it is created successfully. The final purchased instance specifications may vary with inventory changes.\n"},"instances":{"type":"array","items":{"type":"string"},"description":"The instance list. Add existing nodes under the same cluster VPC to the node pool.\n"},"internetChargeType":{"type":"string","description":"The billing method for network usage. Valid values `PayByBandwidth` and `PayByTraffic`. Conflict with \u003cspan pulumi-lang-nodejs=\"`eipInternetChargeType`\" pulumi-lang-dotnet=\"`EipInternetChargeType`\" pulumi-lang-go=\"`eipInternetChargeType`\" pulumi-lang-python=\"`eip_internet_charge_type`\" pulumi-lang-yaml=\"`eipInternetChargeType`\" pulumi-lang-java=\"`eipInternetChargeType`\"\u003e`eip_internet_charge_type`\u003c/span\u003e, EIP and public network IP can only choose one.\n"},"internetMaxBandwidthOut":{"type":"integer","description":"The maximum bandwidth of the public IP address of the node. The unit is Mbps(Mega bit per second). The value range is:\\[1,100\\]\n"},"keepInstanceName":{"type":"boolean","description":"Add an existing instance to the node pool, whether to keep the original instance name. It is recommended to set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"keyName":{"type":"string","description":"The name of the key pair. When the node pool is a managed node pool, only \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e is supported.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a cs kubernetes. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","secret":true},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a cs kubernetes with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"kubeletConfiguration":{"$ref":"#/types/alicloud:cs/NodePoolKubeletConfiguration:NodePoolKubeletConfiguration","description":"Kubelet configuration parameters for worker nodes. See \u003cspan pulumi-lang-nodejs=\"`kubeletConfiguration`\" pulumi-lang-dotnet=\"`KubeletConfiguration`\" pulumi-lang-go=\"`kubeletConfiguration`\" pulumi-lang-python=\"`kubelet_configuration`\" pulumi-lang-yaml=\"`kubeletConfiguration`\" pulumi-lang-java=\"`kubeletConfiguration`\"\u003e`kubelet_configuration`\u003c/span\u003e below. More information in [Kubelet Configuration](https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/). See \u003cspan pulumi-lang-nodejs=\"`kubeletConfiguration`\" pulumi-lang-dotnet=\"`KubeletConfiguration`\" pulumi-lang-go=\"`kubeletConfiguration`\" pulumi-lang-python=\"`kubelet_configuration`\" pulumi-lang-yaml=\"`kubeletConfiguration`\" pulumi-lang-java=\"`kubeletConfiguration`\"\u003e`kubelet_configuration`\u003c/span\u003e below.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:cs/NodePoolLabel:NodePoolLabel"},"description":"A List of Kubernetes labels to assign to the nodes . Only labels that are applied with the ACK API are managed by this argument. Detailed below. More information in [Labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/). See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"loginAsNonRoot":{"type":"boolean","description":"Whether the ECS instance is logged on as a ecs-user user. Valid value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"management":{"$ref":"#/types/alicloud:cs/NodePoolManagement:NodePoolManagement","description":"Managed node pool configuration. See \u003cspan pulumi-lang-nodejs=\"`management`\" pulumi-lang-dotnet=\"`Management`\" pulumi-lang-go=\"`management`\" pulumi-lang-python=\"`management`\" pulumi-lang-yaml=\"`management`\" pulumi-lang-java=\"`management`\"\u003e`management`\u003c/span\u003e below.\n"},"multiAzPolicy":{"type":"string","description":"The scaling policy for ECS instances in a multi-zone scaling group. Valid value: `PRIORITY`, `COST_OPTIMIZED` and `BALANCE`. `PRIORITY`: scales the capacity according to the virtual switches you define (VSwitchIds.N). When an ECS instance cannot be created in the zone where the higher-priority vSwitch is located, the next-priority vSwitch is automatically used to create an ECS instance. `COST_OPTIMIZED`: try to create by vCPU unit price from low to high. When the scaling configuration is configured with multiple instances of preemptible billing, preemptible instances are created first. You can continue to use the `CompensateWithOnDemand` parameter to specify whether to automatically try to create a preemptible instance by paying for it. It takes effect only when the scaling configuration has multi-instance specifications or preemptible instances. `BALANCE`: distributes ECS instances evenly among the multi-zone specified by the scaling group. If the zones become unbalanced due to insufficient inventory, you can use the API RebalanceInstances to balance resources.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.219.0. New field 'node_pool_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.219.0. New field 'node_pool_name' instead."},"nodeCount":{"type":"integer","description":"The worker node number of the node pool. From version 1.111.0, \u003cspan pulumi-lang-nodejs=\"`nodeCount`\" pulumi-lang-dotnet=\"`NodeCount`\" pulumi-lang-go=\"`nodeCount`\" pulumi-lang-python=\"`node_count`\" pulumi-lang-yaml=\"`nodeCount`\" pulumi-lang-java=\"`nodeCount`\"\u003e`node_count`\u003c/span\u003e is not required.\n","deprecationMessage":"Field 'node_count' has been deprecated from provider version 1.158.0. New field 'desired_size' instead."},"nodeNameMode":{"type":"string","description":"Each node name consists of a prefix, its private network IP, and a suffix, separated by commas. The input format is `customized,,ip,`.\n- The prefix and suffix can be composed of one or more parts separated by '.', each part can use lowercase letters, numbers and '-', and the beginning and end of the node name must be lowercase letters and numbers.\n- The node IP address is the complete private IP address of the node.\n- For example, if the string `customized,aliyun,ip,com` is passed in (where 'customized' and 'ip' are fixed strings, 'aliyun' is the prefix, and 'com' is the suffix), the name of the node is `aliyun192.168.xxx.xxxcom`.\n","willReplaceOnChanges":true},"nodePoolId":{"type":"string","description":"The first ID of the resource.\n"},"nodePoolName":{"type":"string","description":"The name of node pool.\n"},"onDemandBaseCapacity":{"type":"string","description":"The minimum number of pay-as-you-go instances that must be kept in the scaling group. Valid values: 0 to 1000. If the number of pay-as-you-go instances is less than the value of this parameter, Auto Scaling preferably creates pay-as-you-go instances.\n"},"onDemandPercentageAboveBaseCapacity":{"type":"string","description":"The percentage of pay-as-you-go instances among the extra instances that exceed the number specified by \u003cspan pulumi-lang-nodejs=\"`onDemandBaseCapacity`\" pulumi-lang-dotnet=\"`OnDemandBaseCapacity`\" pulumi-lang-go=\"`onDemandBaseCapacity`\" pulumi-lang-python=\"`on_demand_base_capacity`\" pulumi-lang-yaml=\"`onDemandBaseCapacity`\" pulumi-lang-java=\"`onDemandBaseCapacity`\"\u003e`on_demand_base_capacity`\u003c/span\u003e. Valid values: 0 to 100.\n"},"password":{"type":"string","description":"The password of ssh login. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e fields. The password rule is 8 to 30 characters and contains at least three items (upper and lower case letters, numbers, and special symbols).\n","secret":true},"period":{"type":"integer","description":"Node payment period. Its valid value is one of {1, 2, 3, 6, 12}.\n"},"periodUnit":{"type":"string","description":"Node payment period unit, valid value: `Month`. Default is `Month`.\n"},"platform":{"type":"string","description":"Operating system release, using \u003cspan pulumi-lang-nodejs=\"`imageType`\" pulumi-lang-dotnet=\"`ImageType`\" pulumi-lang-go=\"`imageType`\" pulumi-lang-python=\"`image_type`\" pulumi-lang-yaml=\"`imageType`\" pulumi-lang-java=\"`imageType`\"\u003e`image_type`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'platform' has been deprecated from provider version 1.145.0. Operating system release, using \u003cspan pulumi-lang-nodejs=\"`imageType`\" pulumi-lang-dotnet=\"`ImageType`\" pulumi-lang-go=\"`imageType`\" pulumi-lang-python=\"`image_type`\" pulumi-lang-yaml=\"`imageType`\" pulumi-lang-java=\"`imageType`\"\u003e`image_type`\u003c/span\u003e instead."},"preUserData":{"type":"string","description":"Node pre custom data, base64-encoded, the script executed before the node is initialized.\n"},"privatePoolOptions":{"$ref":"#/types/alicloud:cs/NodePoolPrivatePoolOptions:NodePoolPrivatePoolOptions","description":"Private node pool configuration. See \u003cspan pulumi-lang-nodejs=\"`privatePoolOptions`\" pulumi-lang-dotnet=\"`PrivatePoolOptions`\" pulumi-lang-go=\"`privatePoolOptions`\" pulumi-lang-python=\"`private_pool_options`\" pulumi-lang-yaml=\"`privatePoolOptions`\" pulumi-lang-java=\"`privatePoolOptions`\"\u003e`private_pool_options`\u003c/span\u003e below.\n"},"ramRoleName":{"type":"string","description":"The name of the Worker RAM role.\n* If it is empty, the default Worker RAM role created in the cluster will be used.\n* If the specified RAM role is not empty, the specified RAM role must be a **Common Service role**, and its **trusted service** configuration must be **cloud server**. For more information, see [Create a common service role](https://help.aliyun.com/document_detail/116800.html). If the specified RAM role is not the default Worker RAM role created in the cluster, the role name cannot start with 'KubernetesMasterRole-'or 'KubernetesWorkerRole.\n\n\u003e **NOTE:**  This parameter is only supported for ACK-managed clusters of 1.22 or later versions.\n","willReplaceOnChanges":true},"rdsInstances":{"type":"array","items":{"type":"string"},"description":"The list of RDS instances.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"rollingPolicy":{"$ref":"#/types/alicloud:cs/NodePoolRollingPolicy:NodePoolRollingPolicy","description":"Rotary configuration. See \u003cspan pulumi-lang-nodejs=\"`rollingPolicy`\" pulumi-lang-dotnet=\"`RollingPolicy`\" pulumi-lang-go=\"`rollingPolicy`\" pulumi-lang-python=\"`rolling_policy`\" pulumi-lang-yaml=\"`rollingPolicy`\" pulumi-lang-java=\"`rollingPolicy`\"\u003e`rolling_policy`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"runtimeName":{"type":"string","description":"The runtime name of containers. If not set, the cluster runtime will be used as the node pool runtime. If you select another container runtime, see [Comparison of Docker, containerd, and Sandboxed-Container](https://www.alibabacloud.com/help/doc-detail/160313.htm).\n"},"runtimeVersion":{"type":"string","description":"The runtime version of containers. If not set, the cluster runtime will be used as the node pool runtime.\n"},"scalingConfig":{"$ref":"#/types/alicloud:cs/NodePoolScalingConfig:NodePoolScalingConfig","description":"Automatic scaling configuration. See \u003cspan pulumi-lang-nodejs=\"`scalingConfig`\" pulumi-lang-dotnet=\"`ScalingConfig`\" pulumi-lang-go=\"`scalingConfig`\" pulumi-lang-python=\"`scaling_config`\" pulumi-lang-yaml=\"`scalingConfig`\" pulumi-lang-java=\"`scalingConfig`\"\u003e`scaling_config`\u003c/span\u003e below.\n"},"scalingGroupId":{"type":"string","description":"The ID of the scaling group.\n"},"scalingPolicy":{"type":"string","description":"Scaling group mode, default value: \u003cspan pulumi-lang-nodejs=\"`release`\" pulumi-lang-dotnet=\"`Release`\" pulumi-lang-go=\"`release`\" pulumi-lang-python=\"`release`\" pulumi-lang-yaml=\"`release`\" pulumi-lang-java=\"`release`\"\u003e`release`\u003c/span\u003e. Valid values:\n"},"securityGroupId":{"type":"string","description":"The security group ID of the node pool. This field has been replaced by \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e, please use the \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e field instead.\n","deprecationMessage":"Field 'security_group_id' has been deprecated from provider version 1.145.0. The security group ID of the node pool. This field has been replaced by \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e, please use the \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e field instead.","willReplaceOnChanges":true},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"Multiple security groups can be configured for a node pool. If both \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e are configured, \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e takes effect. This field cannot be modified.\n","willReplaceOnChanges":true},"securityHardeningOs":{"type":"boolean","description":"Alibaba Cloud OS security reinforcement. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Value:\n","willReplaceOnChanges":true},"socEnabled":{"type":"boolean","description":"Whether enable worker node to support soc security reinforcement, its valid value \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and apply to AliyunLinux series. See [SOC Reinforcement](https://help.aliyun.com/document_detail/196148.html).\n\n\u003e **NOTE:**  It is forbidden to set both \u003cspan pulumi-lang-nodejs=\"`securityHardeningOs`\" pulumi-lang-dotnet=\"`SecurityHardeningOs`\" pulumi-lang-go=\"`securityHardeningOs`\" pulumi-lang-python=\"`security_hardening_os`\" pulumi-lang-yaml=\"`securityHardeningOs`\" pulumi-lang-java=\"`securityHardeningOs`\"\u003e`security_hardening_os`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`socEnabled`\" pulumi-lang-dotnet=\"`SocEnabled`\" pulumi-lang-go=\"`socEnabled`\" pulumi-lang-python=\"`soc_enabled`\" pulumi-lang-yaml=\"`socEnabled`\" pulumi-lang-java=\"`socEnabled`\"\u003e`soc_enabled`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e at the same time.\n","willReplaceOnChanges":true},"spotInstancePools":{"type":"integer","description":"The number of instance types that are available. Auto Scaling creates preemptible instances of multiple instance types that are available at the lowest cost. Valid values: 1 to 10.\n"},"spotInstanceRemedy":{"type":"boolean","description":"Specifies whether to supplement preemptible instances when the number of preemptible instances drops below the specified minimum number. If you set the value to true, Auto Scaling attempts to create a new preemptible instance when the system notifies that an existing preemptible instance is about to be reclaimed. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: enables the supplementation of preemptible instances. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: disables the supplementation of preemptible instances.\n"},"spotPriceLimits":{"type":"array","items":{"$ref":"#/types/alicloud:cs/NodePoolSpotPriceLimit:NodePoolSpotPriceLimit"},"description":"The current single preemptible instance type market price range configuration. See \u003cspan pulumi-lang-nodejs=\"`spotPriceLimit`\" pulumi-lang-dotnet=\"`SpotPriceLimit`\" pulumi-lang-go=\"`spotPriceLimit`\" pulumi-lang-python=\"`spot_price_limit`\" pulumi-lang-yaml=\"`spotPriceLimit`\" pulumi-lang-java=\"`spotPriceLimit`\"\u003e`spot_price_limit`\u003c/span\u003e below.\n"},"spotStrategy":{"type":"string","description":"The preemptible instance type. Value:\n- `NoSpot` : Non-preemptible instance.\n- `SpotWithPriceLimit` : Set the upper limit of the preemptible instance price.\n- `SpotAsPriceGo` : The system automatically bids, following the actual price of the current market.\n"},"systemDiskBurstingEnabled":{"type":"boolean","description":"Specifies whether to enable the burst feature for system disks. Valid values:\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: enables the burst feature. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: disables the burst feature. This parameter is supported only when \u003cspan pulumi-lang-nodejs=\"`systemDiskCategory`\" pulumi-lang-dotnet=\"`SystemDiskCategory`\" pulumi-lang-go=\"`systemDiskCategory`\" pulumi-lang-python=\"`system_disk_category`\" pulumi-lang-yaml=\"`systemDiskCategory`\" pulumi-lang-java=\"`systemDiskCategory`\"\u003e`system_disk_category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"systemDiskCategories":{"type":"array","items":{"type":"string"},"description":"The multi-disk categories of the system disk. When a high-priority disk type cannot be used, Auto Scaling automatically tries to create a system disk with the next priority disk category. Valid values see \u003cspan pulumi-lang-nodejs=\"`systemDiskCategory`\" pulumi-lang-dotnet=\"`SystemDiskCategory`\" pulumi-lang-go=\"`systemDiskCategory`\" pulumi-lang-python=\"`system_disk_category`\" pulumi-lang-yaml=\"`systemDiskCategory`\" pulumi-lang-java=\"`systemDiskCategory`\"\u003e`system_disk_category`\u003c/span\u003e.\n"},"systemDiskCategory":{"type":"string","description":"The category of the system disk for nodes. Default value: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. Valid values:\n"},"systemDiskEncryptAlgorithm":{"type":"string","description":"The encryption algorithm used by the system disk. Value range: aes-256.\n"},"systemDiskEncrypted":{"type":"boolean","description":"Whether to encrypt the system disk. Value range: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: encryption. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: Do not encrypt.\n"},"systemDiskKmsKey":{"type":"string","description":"The ID of the KMS key used by the system disk.\n"},"systemDiskPerformanceLevel":{"type":"string","description":"The system disk performance of the node takes effect only for the ESSD disk.\n- `PL0`: maximum random read/write IOPS 10000 for a single disk.\n- `PL1`: maximum random read/write IOPS 50000 for a single disk.\n- `PL2`: highest random read/write IOPS 100000 for a single disk.\n- `PL3`: maximum random read/write IOPS 1 million for a single disk.\n"},"systemDiskProvisionedIops":{"type":"integer","description":"The predefined IOPS of a system disk. Valid values: 0 to min{50,000, 1,000 × Capacity - Baseline IOPS}. Baseline IOPS = min{1,800 + 50 × Capacity, 50,000}. This parameter is supported only when \u003cspan pulumi-lang-nodejs=\"`systemDiskCategory`\" pulumi-lang-dotnet=\"`SystemDiskCategory`\" pulumi-lang-go=\"`systemDiskCategory`\" pulumi-lang-python=\"`system_disk_category`\" pulumi-lang-yaml=\"`systemDiskCategory`\" pulumi-lang-java=\"`systemDiskCategory`\"\u003e`system_disk_category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"systemDiskSize":{"type":"integer","description":"The size of the system disk. Unit: GiB. The value of this parameter must be at least 1 and greater than or equal to the image size. Default value: 40 or the size of the image, whichever is larger.\n- Basic disk: 20 to 500.\n- ESSD (cloud_essd): The valid values vary based on the performance level of the ESSD. PL0 ESSD: 1 to 2048. PL1 ESSD: 20 to 2048. PL2 ESSD: 461 to 2048. PL3 ESSD: 1261 to 2048.\n- ESSD AutoPL disk (cloud_auto): 1 to 2048.\n- Other disk categories: 20 to 2048.\n"},"systemDiskSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy used by the system disk.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Add tags only for ECS instances. The maximum length of the tag key is 128 characters. The tag key and value cannot start with aliyun or acs:, or contain https:// or http://.\n"},"taints":{"type":"array","items":{"$ref":"#/types/alicloud:cs/NodePoolTaint:NodePoolTaint"},"description":"A List of Kubernetes taints to assign to the nodes. Detailed below. More information in [Taints and Toleration](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/). See \u003cspan pulumi-lang-nodejs=\"`taints`\" pulumi-lang-dotnet=\"`Taints`\" pulumi-lang-go=\"`taints`\" pulumi-lang-python=\"`taints`\" pulumi-lang-yaml=\"`taints`\" pulumi-lang-java=\"`taints`\"\u003e`taints`\u003c/span\u003e below.\n"},"teeConfig":{"$ref":"#/types/alicloud:cs/NodePoolTeeConfig:NodePoolTeeConfig","description":"The configuration about confidential computing for the cluster. See \u003cspan pulumi-lang-nodejs=\"`teeConfig`\" pulumi-lang-dotnet=\"`TeeConfig`\" pulumi-lang-go=\"`teeConfig`\" pulumi-lang-python=\"`tee_config`\" pulumi-lang-yaml=\"`teeConfig`\" pulumi-lang-java=\"`teeConfig`\"\u003e`tee_config`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Node pool type, value range:\n-'ess': common node pool (including hosting function and auto scaling function).\n-'lingjun': Lingjun node pool.\n","willReplaceOnChanges":true},"unschedulable":{"type":"boolean","description":"Whether the node after expansion can be scheduled.\n"},"updateNodes":{"type":"boolean","description":"Synchronously update node labels and taints.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"upgradePolicy":{"$ref":"#/types/alicloud:cs/NodePoolUpgradePolicy:NodePoolUpgradePolicy","description":"Configuration block for node pool upgrade operations. This is a transient parameter that triggers node pool upgrades when specified. Once the upgrade completes, this block should be removed from your configuration to prevent unintended re-upgrades on subsequent applies. See \u003cspan pulumi-lang-nodejs=\"`upgradePolicy`\" pulumi-lang-dotnet=\"`UpgradePolicy`\" pulumi-lang-go=\"`upgradePolicy`\" pulumi-lang-python=\"`upgrade_policy`\" pulumi-lang-yaml=\"`upgradePolicy`\" pulumi-lang-java=\"`upgradePolicy`\"\u003e`upgrade_policy`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter only applies during resource update.\n"},"userData":{"type":"string","description":"Node custom data, base64-encoded.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vswitches used by node pool workers.\n"}},"type":"object"}},"alicloud:cs/registryEnterpriseNamespace:RegistryEnterpriseNamespace":{"description":"Provides a Container Registry Enterprise Edition Namespace resource.\n\nFor information about Container Registry Enterprise Edition Namespace and how to use it, see [What is Namespace](https://www.alibabacloud.com/help/en/acr/developer-reference/api-cr-2018-12-01-createnamespace)\n\n\u003e **NOTE:** Available since v1.86.0.\n\n\u003e **NOTE:** You need to set your registry password in Container Registry Enterprise Edition console before use this resource.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultRegistryEnterpriseInstance = new alicloud.cr.RegistryEnterpriseInstance(\"default\", {\n    paymentType: \"Subscription\",\n    period: 1,\n    renewPeriod: 0,\n    renewalStatus: \"ManualRenewal\",\n    instanceType: \"Advanced\",\n    instanceName: `${name}-${_default.result}`,\n});\nconst defaultRegistryEnterpriseNamespace = new alicloud.cs.RegistryEnterpriseNamespace(\"default\", {\n    instanceId: defaultRegistryEnterpriseInstance.id,\n    name: `${name}-${_default.result}`,\n    autoCreate: false,\n    defaultVisibility: \"PUBLIC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_registry_enterprise_instance = alicloud.cr.RegistryEnterpriseInstance(\"default\",\n    payment_type=\"Subscription\",\n    period=1,\n    renew_period=0,\n    renewal_status=\"ManualRenewal\",\n    instance_type=\"Advanced\",\n    instance_name=f\"{name}-{default['result']}\")\ndefault_registry_enterprise_namespace = alicloud.cs.RegistryEnterpriseNamespace(\"default\",\n    instance_id=default_registry_enterprise_instance.id,\n    name=f\"{name}-{default['result']}\",\n    auto_create=False,\n    default_visibility=\"PUBLIC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultRegistryEnterpriseInstance = new AliCloud.CR.RegistryEnterpriseInstance(\"default\", new()\n    {\n        PaymentType = \"Subscription\",\n        Period = 1,\n        RenewPeriod = 0,\n        RenewalStatus = \"ManualRenewal\",\n        InstanceType = \"Advanced\",\n        InstanceName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultRegistryEnterpriseNamespace = new AliCloud.CS.RegistryEnterpriseNamespace(\"default\", new()\n    {\n        InstanceId = defaultRegistryEnterpriseInstance.Id,\n        Name = $\"{name}-{@default.Result}\",\n        AutoCreate = false,\n        DefaultVisibility = \"PUBLIC\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegistryEnterpriseInstance, err := cr.NewRegistryEnterpriseInstance(ctx, \"default\", \u0026cr.RegistryEnterpriseInstanceArgs{\n\t\t\tPaymentType:   pulumi.String(\"Subscription\"),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t\tRenewPeriod:   pulumi.Int(0),\n\t\t\tRenewalStatus: pulumi.String(\"ManualRenewal\"),\n\t\t\tInstanceType:  pulumi.String(\"Advanced\"),\n\t\t\tInstanceName:  pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cs.NewRegistryEnterpriseNamespace(ctx, \"default\", \u0026cs.RegistryEnterpriseNamespaceArgs{\n\t\t\tInstanceId:        defaultRegistryEnterpriseInstance.ID(),\n\t\t\tName:              pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tAutoCreate:        pulumi.Bool(false),\n\t\t\tDefaultVisibility: pulumi.String(\"PUBLIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstance;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstanceArgs;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseNamespace;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseNamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultRegistryEnterpriseInstance = new RegistryEnterpriseInstance(\"defaultRegistryEnterpriseInstance\", RegistryEnterpriseInstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .period(1)\n            .renewPeriod(0)\n            .renewalStatus(\"ManualRenewal\")\n            .instanceType(\"Advanced\")\n            .instanceName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultRegistryEnterpriseNamespace = new RegistryEnterpriseNamespace(\"defaultRegistryEnterpriseNamespace\", RegistryEnterpriseNamespaceArgs.builder()\n            .instanceId(defaultRegistryEnterpriseInstance.id())\n            .name(String.format(\"%s-%s\", name,default_.result()))\n            .autoCreate(false)\n            .defaultVisibility(\"PUBLIC\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultRegistryEnterpriseInstance:\n    type: alicloud:cr:RegistryEnterpriseInstance\n    name: default\n    properties:\n      paymentType: Subscription\n      period: 1\n      renewPeriod: 0\n      renewalStatus: ManualRenewal\n      instanceType: Advanced\n      instanceName: ${name}-${default.result}\n  defaultRegistryEnterpriseNamespace:\n    type: alicloud:cs:RegistryEnterpriseNamespace\n    name: default\n    properties:\n      instanceId: ${defaultRegistryEnterpriseInstance.id}\n      name: ${name}-${default.result}\n      autoCreate: false\n      defaultVisibility: PUBLIC\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nContainer Registry Enterprise Edition Namespace can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cs/registryEnterpriseNamespace:RegistryEnterpriseNamespace example \u003cinstance_id\u003e:\u003cname\u003e\n```\n\n","properties":{"autoCreate":{"type":"boolean","description":"Specifies whether to automatically create an image repository in the namespace. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"defaultVisibility":{"type":"string","description":"The default type of the repository that is automatically created. Valid values:\n- `PUBLIC`: A public repository.\n- `PRIVATE`: A private repository.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry Enterprise Edition instance.\n"},"name":{"type":"string","description":"The name of the Container Registry Enterprise Edition Name. It must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`120`\" pulumi-lang-dotnet=\"`120`\" pulumi-lang-go=\"`120`\" pulumi-lang-python=\"`120`\" pulumi-lang-yaml=\"`120`\" pulumi-lang-java=\"`120`\"\u003e`120`\u003c/span\u003e characters in length, and can contain lowercase letters, digits, underscores (_), hyphens (-), and periods (.). It cannot start or end with a delimiter.\n"}},"required":["defaultVisibility","instanceId","name"],"inputProperties":{"autoCreate":{"type":"boolean","description":"Specifies whether to automatically create an image repository in the namespace. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"defaultVisibility":{"type":"string","description":"The default type of the repository that is automatically created. Valid values:\n- `PUBLIC`: A public repository.\n- `PRIVATE`: A private repository.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry Enterprise Edition instance.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the Container Registry Enterprise Edition Name. It must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`120`\" pulumi-lang-dotnet=\"`120`\" pulumi-lang-go=\"`120`\" pulumi-lang-python=\"`120`\" pulumi-lang-yaml=\"`120`\" pulumi-lang-java=\"`120`\"\u003e`120`\u003c/span\u003e characters in length, and can contain lowercase letters, digits, underscores (_), hyphens (-), and periods (.). It cannot start or end with a delimiter.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering RegistryEnterpriseNamespace resources.\n","properties":{"autoCreate":{"type":"boolean","description":"Specifies whether to automatically create an image repository in the namespace. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"defaultVisibility":{"type":"string","description":"The default type of the repository that is automatically created. Valid values:\n- `PUBLIC`: A public repository.\n- `PRIVATE`: A private repository.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry Enterprise Edition instance.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the Container Registry Enterprise Edition Name. It must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`120`\" pulumi-lang-dotnet=\"`120`\" pulumi-lang-go=\"`120`\" pulumi-lang-python=\"`120`\" pulumi-lang-yaml=\"`120`\" pulumi-lang-java=\"`120`\"\u003e`120`\u003c/span\u003e characters in length, and can contain lowercase letters, digits, underscores (_), hyphens (-), and periods (.). It cannot start or end with a delimiter.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:cs/registryEnterpriseRepo:RegistryEnterpriseRepo":{"description":"Provides a Container Registry Enterprise Edition Repository resource.\n\nFor information about Container Registry Enterprise Edition Repository and how to use it, see [What is Repository](https://www.alibabacloud.com/help/en/acr/developer-reference/api-cr-2018-12-01-createrepository)\n\n\u003e **NOTE:** Available since v1.86.0.\n\n\u003e **NOTE:** You need to set your registry password in Container Registry Enterprise Edition console before use this resource.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000000,\n    max: 99999999,\n});\nconst defaultRegistryEnterpriseInstance = new alicloud.cr.RegistryEnterpriseInstance(\"default\", {\n    paymentType: \"Subscription\",\n    period: 1,\n    renewPeriod: 0,\n    renewalStatus: \"ManualRenewal\",\n    instanceType: \"Advanced\",\n    instanceName: `${name}-${_default.result}`,\n});\nconst defaultRegistryEnterpriseNamespace = new alicloud.cs.RegistryEnterpriseNamespace(\"default\", {\n    instanceId: defaultRegistryEnterpriseInstance.id,\n    name: `${name}-${_default.result}`,\n    autoCreate: false,\n    defaultVisibility: \"PUBLIC\",\n});\nconst example = new alicloud.cs.RegistryEnterpriseRepo(\"example\", {\n    instanceId: defaultRegistryEnterpriseInstance.id,\n    namespace: defaultRegistryEnterpriseNamespace.name,\n    name: `${name}-${_default.result}`,\n    repoType: \"PUBLIC\",\n    summary: \"this is summary of my new repo\",\n    detail: \"this is a public repo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000000,\n    max=99999999)\ndefault_registry_enterprise_instance = alicloud.cr.RegistryEnterpriseInstance(\"default\",\n    payment_type=\"Subscription\",\n    period=1,\n    renew_period=0,\n    renewal_status=\"ManualRenewal\",\n    instance_type=\"Advanced\",\n    instance_name=f\"{name}-{default['result']}\")\ndefault_registry_enterprise_namespace = alicloud.cs.RegistryEnterpriseNamespace(\"default\",\n    instance_id=default_registry_enterprise_instance.id,\n    name=f\"{name}-{default['result']}\",\n    auto_create=False,\n    default_visibility=\"PUBLIC\")\nexample = alicloud.cs.RegistryEnterpriseRepo(\"example\",\n    instance_id=default_registry_enterprise_instance.id,\n    namespace=default_registry_enterprise_namespace.name,\n    name=f\"{name}-{default['result']}\",\n    repo_type=\"PUBLIC\",\n    summary=\"this is summary of my new repo\",\n    detail=\"this is a public repo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000000,\n        Max = 99999999,\n    });\n\n    var defaultRegistryEnterpriseInstance = new AliCloud.CR.RegistryEnterpriseInstance(\"default\", new()\n    {\n        PaymentType = \"Subscription\",\n        Period = 1,\n        RenewPeriod = 0,\n        RenewalStatus = \"ManualRenewal\",\n        InstanceType = \"Advanced\",\n        InstanceName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultRegistryEnterpriseNamespace = new AliCloud.CS.RegistryEnterpriseNamespace(\"default\", new()\n    {\n        InstanceId = defaultRegistryEnterpriseInstance.Id,\n        Name = $\"{name}-{@default.Result}\",\n        AutoCreate = false,\n        DefaultVisibility = \"PUBLIC\",\n    });\n\n    var example = new AliCloud.CS.RegistryEnterpriseRepo(\"example\", new()\n    {\n        InstanceId = defaultRegistryEnterpriseInstance.Id,\n        Namespace = defaultRegistryEnterpriseNamespace.Name,\n        Name = $\"{name}-{@default.Result}\",\n        RepoType = \"PUBLIC\",\n        Summary = \"this is summary of my new repo\",\n        Detail = \"this is a public repo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000000,\n\t\t\tMax: 99999999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegistryEnterpriseInstance, err := cr.NewRegistryEnterpriseInstance(ctx, \"default\", \u0026cr.RegistryEnterpriseInstanceArgs{\n\t\t\tPaymentType:   pulumi.String(\"Subscription\"),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t\tRenewPeriod:   pulumi.Int(0),\n\t\t\tRenewalStatus: pulumi.String(\"ManualRenewal\"),\n\t\t\tInstanceType:  pulumi.String(\"Advanced\"),\n\t\t\tInstanceName:  pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegistryEnterpriseNamespace, err := cs.NewRegistryEnterpriseNamespace(ctx, \"default\", \u0026cs.RegistryEnterpriseNamespaceArgs{\n\t\t\tInstanceId:        defaultRegistryEnterpriseInstance.ID(),\n\t\t\tName:              pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tAutoCreate:        pulumi.Bool(false),\n\t\t\tDefaultVisibility: pulumi.String(\"PUBLIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cs.NewRegistryEnterpriseRepo(ctx, \"example\", \u0026cs.RegistryEnterpriseRepoArgs{\n\t\t\tInstanceId: defaultRegistryEnterpriseInstance.ID(),\n\t\t\tNamespace:  defaultRegistryEnterpriseNamespace.Name,\n\t\t\tName:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tRepoType:   pulumi.String(\"PUBLIC\"),\n\t\t\tSummary:    pulumi.String(\"this is summary of my new repo\"),\n\t\t\tDetail:     pulumi.String(\"this is a public repo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstance;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstanceArgs;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseNamespace;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseNamespaceArgs;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseRepo;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseRepoArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000000)\n            .max(99999999)\n            .build());\n\n        var defaultRegistryEnterpriseInstance = new RegistryEnterpriseInstance(\"defaultRegistryEnterpriseInstance\", RegistryEnterpriseInstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .period(1)\n            .renewPeriod(0)\n            .renewalStatus(\"ManualRenewal\")\n            .instanceType(\"Advanced\")\n            .instanceName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultRegistryEnterpriseNamespace = new RegistryEnterpriseNamespace(\"defaultRegistryEnterpriseNamespace\", RegistryEnterpriseNamespaceArgs.builder()\n            .instanceId(defaultRegistryEnterpriseInstance.id())\n            .name(String.format(\"%s-%s\", name,default_.result()))\n            .autoCreate(false)\n            .defaultVisibility(\"PUBLIC\")\n            .build());\n\n        var example = new RegistryEnterpriseRepo(\"example\", RegistryEnterpriseRepoArgs.builder()\n            .instanceId(defaultRegistryEnterpriseInstance.id())\n            .namespace(defaultRegistryEnterpriseNamespace.name())\n            .name(String.format(\"%s-%s\", name,default_.result()))\n            .repoType(\"PUBLIC\")\n            .summary(\"this is summary of my new repo\")\n            .detail(\"this is a public repo\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 1e+07\n      max: 9.9999999e+07\n  defaultRegistryEnterpriseInstance:\n    type: alicloud:cr:RegistryEnterpriseInstance\n    name: default\n    properties:\n      paymentType: Subscription\n      period: 1\n      renewPeriod: 0\n      renewalStatus: ManualRenewal\n      instanceType: Advanced\n      instanceName: ${name}-${default.result}\n  defaultRegistryEnterpriseNamespace:\n    type: alicloud:cs:RegistryEnterpriseNamespace\n    name: default\n    properties:\n      instanceId: ${defaultRegistryEnterpriseInstance.id}\n      name: ${name}-${default.result}\n      autoCreate: false\n      defaultVisibility: PUBLIC\n  example:\n    type: alicloud:cs:RegistryEnterpriseRepo\n    properties:\n      instanceId: ${defaultRegistryEnterpriseInstance.id}\n      namespace: ${defaultRegistryEnterpriseNamespace.name}\n      name: ${name}-${default.result}\n      repoType: PUBLIC\n      summary: this is summary of my new repo\n      detail: this is a public repo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nContainer Registry Enterprise Edition Repository can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cs/registryEnterpriseRepo:RegistryEnterpriseRepo example \u003cinstance_id\u003e:\u003cnamespace\u003e:\u003cname\u003e\n```\n\n","properties":{"detail":{"type":"string","description":"The description of the repository.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry Enterprise Edition instance.\n"},"name":{"type":"string","description":"The name of the image repository.\n"},"namespace":{"type":"string","description":"The name of the namespace to which the image repository belongs.\n"},"repoId":{"type":"string","description":"The ID of the repository.\n"},"repoType":{"type":"string","description":"The type of the repository. Valid values:\n- `PUBLIC`: The repository is a public repository.\n- `PRIVATE`: The repository is a private repository.\n"},"summary":{"type":"string","description":"The summary about the repository.\n"}},"required":["instanceId","name","namespace","repoId","repoType","summary"],"inputProperties":{"detail":{"type":"string","description":"The description of the repository.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry Enterprise Edition instance.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the image repository.\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"The name of the namespace to which the image repository belongs.\n","willReplaceOnChanges":true},"repoType":{"type":"string","description":"The type of the repository. Valid values:\n- `PUBLIC`: The repository is a public repository.\n- `PRIVATE`: The repository is a private repository.\n"},"summary":{"type":"string","description":"The summary about the repository.\n"}},"requiredInputs":["instanceId","namespace","repoType","summary"],"stateInputs":{"description":"Input properties used for looking up and filtering RegistryEnterpriseRepo resources.\n","properties":{"detail":{"type":"string","description":"The description of the repository.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry Enterprise Edition instance.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the image repository.\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"The name of the namespace to which the image repository belongs.\n","willReplaceOnChanges":true},"repoId":{"type":"string","description":"The ID of the repository.\n"},"repoType":{"type":"string","description":"The type of the repository. Valid values:\n- `PUBLIC`: The repository is a public repository.\n- `PRIVATE`: The repository is a private repository.\n"},"summary":{"type":"string","description":"The summary about the repository.\n"}},"type":"object"}},"alicloud:cs/registryEnterpriseSyncRule:RegistryEnterpriseSyncRule":{"description":"Provides a Container Registry Sync Rule resource.\n\nFor information about Container Registry Sync Rule and how to use it, see [What is Sync Rule](https://www.alibabacloud.com/help/en/acr/developer-reference/api-cr-2018-12-01-createreposyncrule)\n\n\u003e **NOTE:** Available since v1.90.0.\n\n\u003e **NOTE:** You need to set your registry password in Container Registry console before use this resource.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst source = new alicloud.cr.RegistryEnterpriseInstance(\"source\", {\n    paymentType: \"Subscription\",\n    period: 1,\n    renewPeriod: 0,\n    renewalStatus: \"ManualRenewal\",\n    instanceType: \"Advanced\",\n    instanceName: `${name}-source-${defaultInteger.result}`,\n});\nconst target = new alicloud.cr.RegistryEnterpriseInstance(\"target\", {\n    paymentType: \"Subscription\",\n    period: 1,\n    renewPeriod: 0,\n    renewalStatus: \"ManualRenewal\",\n    instanceType: \"Advanced\",\n    instanceName: `${name}-target-${defaultInteger.result}`,\n});\nconst sourceRegistryEnterpriseNamespace = new alicloud.cs.RegistryEnterpriseNamespace(\"source\", {\n    instanceId: source.id,\n    name: `${name}-${defaultInteger.result}`,\n    autoCreate: false,\n    defaultVisibility: \"PUBLIC\",\n});\nconst targetRegistryEnterpriseNamespace = new alicloud.cs.RegistryEnterpriseNamespace(\"target\", {\n    instanceId: target.id,\n    name: `${name}-${defaultInteger.result}`,\n    autoCreate: false,\n    defaultVisibility: \"PUBLIC\",\n});\nconst sourceRegistryEnterpriseRepo = new alicloud.cs.RegistryEnterpriseRepo(\"source\", {\n    instanceId: source.id,\n    namespace: sourceRegistryEnterpriseNamespace.name,\n    name: `${name}-${defaultInteger.result}`,\n    summary: \"this is summary of my new repo\",\n    repoType: \"PUBLIC\",\n});\nconst targetRegistryEnterpriseRepo = new alicloud.cs.RegistryEnterpriseRepo(\"target\", {\n    instanceId: target.id,\n    namespace: targetRegistryEnterpriseNamespace.name,\n    name: `${name}-${defaultInteger.result}`,\n    summary: \"this is summary of my new repo\",\n    repoType: \"PUBLIC\",\n});\nconst defaultRegistryEnterpriseSyncRule = new alicloud.cs.RegistryEnterpriseSyncRule(\"default\", {\n    instanceId: source.id,\n    namespaceName: sourceRegistryEnterpriseNamespace.name,\n    syncRuleName: `${name}-${defaultInteger.result}`,\n    targetInstanceId: target.id,\n    targetNamespaceName: targetRegistryEnterpriseNamespace.name,\n    targetRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    tagFilter: \".*\",\n    repoName: sourceRegistryEnterpriseRepo.name,\n    targetRepoName: targetRegistryEnterpriseRepo.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nsource = alicloud.cr.RegistryEnterpriseInstance(\"source\",\n    payment_type=\"Subscription\",\n    period=1,\n    renew_period=0,\n    renewal_status=\"ManualRenewal\",\n    instance_type=\"Advanced\",\n    instance_name=f\"{name}-source-{default_integer['result']}\")\ntarget = alicloud.cr.RegistryEnterpriseInstance(\"target\",\n    payment_type=\"Subscription\",\n    period=1,\n    renew_period=0,\n    renewal_status=\"ManualRenewal\",\n    instance_type=\"Advanced\",\n    instance_name=f\"{name}-target-{default_integer['result']}\")\nsource_registry_enterprise_namespace = alicloud.cs.RegistryEnterpriseNamespace(\"source\",\n    instance_id=source.id,\n    name=f\"{name}-{default_integer['result']}\",\n    auto_create=False,\n    default_visibility=\"PUBLIC\")\ntarget_registry_enterprise_namespace = alicloud.cs.RegistryEnterpriseNamespace(\"target\",\n    instance_id=target.id,\n    name=f\"{name}-{default_integer['result']}\",\n    auto_create=False,\n    default_visibility=\"PUBLIC\")\nsource_registry_enterprise_repo = alicloud.cs.RegistryEnterpriseRepo(\"source\",\n    instance_id=source.id,\n    namespace=source_registry_enterprise_namespace.name,\n    name=f\"{name}-{default_integer['result']}\",\n    summary=\"this is summary of my new repo\",\n    repo_type=\"PUBLIC\")\ntarget_registry_enterprise_repo = alicloud.cs.RegistryEnterpriseRepo(\"target\",\n    instance_id=target.id,\n    namespace=target_registry_enterprise_namespace.name,\n    name=f\"{name}-{default_integer['result']}\",\n    summary=\"this is summary of my new repo\",\n    repo_type=\"PUBLIC\")\ndefault_registry_enterprise_sync_rule = alicloud.cs.RegistryEnterpriseSyncRule(\"default\",\n    instance_id=source.id,\n    namespace_name=source_registry_enterprise_namespace.name,\n    sync_rule_name=f\"{name}-{default_integer['result']}\",\n    target_instance_id=target.id,\n    target_namespace_name=target_registry_enterprise_namespace.name,\n    target_region_id=default.regions[0].id,\n    tag_filter=\".*\",\n    repo_name=source_registry_enterprise_repo.name,\n    target_repo_name=target_registry_enterprise_repo.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var source = new AliCloud.CR.RegistryEnterpriseInstance(\"source\", new()\n    {\n        PaymentType = \"Subscription\",\n        Period = 1,\n        RenewPeriod = 0,\n        RenewalStatus = \"ManualRenewal\",\n        InstanceType = \"Advanced\",\n        InstanceName = $\"{name}-source-{defaultInteger.Result}\",\n    });\n\n    var target = new AliCloud.CR.RegistryEnterpriseInstance(\"target\", new()\n    {\n        PaymentType = \"Subscription\",\n        Period = 1,\n        RenewPeriod = 0,\n        RenewalStatus = \"ManualRenewal\",\n        InstanceType = \"Advanced\",\n        InstanceName = $\"{name}-target-{defaultInteger.Result}\",\n    });\n\n    var sourceRegistryEnterpriseNamespace = new AliCloud.CS.RegistryEnterpriseNamespace(\"source\", new()\n    {\n        InstanceId = source.Id,\n        Name = $\"{name}-{defaultInteger.Result}\",\n        AutoCreate = false,\n        DefaultVisibility = \"PUBLIC\",\n    });\n\n    var targetRegistryEnterpriseNamespace = new AliCloud.CS.RegistryEnterpriseNamespace(\"target\", new()\n    {\n        InstanceId = target.Id,\n        Name = $\"{name}-{defaultInteger.Result}\",\n        AutoCreate = false,\n        DefaultVisibility = \"PUBLIC\",\n    });\n\n    var sourceRegistryEnterpriseRepo = new AliCloud.CS.RegistryEnterpriseRepo(\"source\", new()\n    {\n        InstanceId = source.Id,\n        Namespace = sourceRegistryEnterpriseNamespace.Name,\n        Name = $\"{name}-{defaultInteger.Result}\",\n        Summary = \"this is summary of my new repo\",\n        RepoType = \"PUBLIC\",\n    });\n\n    var targetRegistryEnterpriseRepo = new AliCloud.CS.RegistryEnterpriseRepo(\"target\", new()\n    {\n        InstanceId = target.Id,\n        Namespace = targetRegistryEnterpriseNamespace.Name,\n        Name = $\"{name}-{defaultInteger.Result}\",\n        Summary = \"this is summary of my new repo\",\n        RepoType = \"PUBLIC\",\n    });\n\n    var defaultRegistryEnterpriseSyncRule = new AliCloud.CS.RegistryEnterpriseSyncRule(\"default\", new()\n    {\n        InstanceId = source.Id,\n        NamespaceName = sourceRegistryEnterpriseNamespace.Name,\n        SyncRuleName = $\"{name}-{defaultInteger.Result}\",\n        TargetInstanceId = target.Id,\n        TargetNamespaceName = targetRegistryEnterpriseNamespace.Name,\n        TargetRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        TagFilter = \".*\",\n        RepoName = sourceRegistryEnterpriseRepo.Name,\n        TargetRepoName = targetRegistryEnterpriseRepo.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsource, err := cr.NewRegistryEnterpriseInstance(ctx, \"source\", \u0026cr.RegistryEnterpriseInstanceArgs{\n\t\t\tPaymentType:   pulumi.String(\"Subscription\"),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t\tRenewPeriod:   pulumi.Int(0),\n\t\t\tRenewalStatus: pulumi.String(\"ManualRenewal\"),\n\t\t\tInstanceType:  pulumi.String(\"Advanced\"),\n\t\t\tInstanceName:  pulumi.Sprintf(\"%v-source-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttarget, err := cr.NewRegistryEnterpriseInstance(ctx, \"target\", \u0026cr.RegistryEnterpriseInstanceArgs{\n\t\t\tPaymentType:   pulumi.String(\"Subscription\"),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t\tRenewPeriod:   pulumi.Int(0),\n\t\t\tRenewalStatus: pulumi.String(\"ManualRenewal\"),\n\t\t\tInstanceType:  pulumi.String(\"Advanced\"),\n\t\t\tInstanceName:  pulumi.Sprintf(\"%v-target-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsourceRegistryEnterpriseNamespace, err := cs.NewRegistryEnterpriseNamespace(ctx, \"source\", \u0026cs.RegistryEnterpriseNamespaceArgs{\n\t\t\tInstanceId:        source.ID(),\n\t\t\tName:              pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tAutoCreate:        pulumi.Bool(false),\n\t\t\tDefaultVisibility: pulumi.String(\"PUBLIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttargetRegistryEnterpriseNamespace, err := cs.NewRegistryEnterpriseNamespace(ctx, \"target\", \u0026cs.RegistryEnterpriseNamespaceArgs{\n\t\t\tInstanceId:        target.ID(),\n\t\t\tName:              pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tAutoCreate:        pulumi.Bool(false),\n\t\t\tDefaultVisibility: pulumi.String(\"PUBLIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsourceRegistryEnterpriseRepo, err := cs.NewRegistryEnterpriseRepo(ctx, \"source\", \u0026cs.RegistryEnterpriseRepoArgs{\n\t\t\tInstanceId: source.ID(),\n\t\t\tNamespace:  sourceRegistryEnterpriseNamespace.Name,\n\t\t\tName:       pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tSummary:    pulumi.String(\"this is summary of my new repo\"),\n\t\t\tRepoType:   pulumi.String(\"PUBLIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttargetRegistryEnterpriseRepo, err := cs.NewRegistryEnterpriseRepo(ctx, \"target\", \u0026cs.RegistryEnterpriseRepoArgs{\n\t\t\tInstanceId: target.ID(),\n\t\t\tNamespace:  targetRegistryEnterpriseNamespace.Name,\n\t\t\tName:       pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tSummary:    pulumi.String(\"this is summary of my new repo\"),\n\t\t\tRepoType:   pulumi.String(\"PUBLIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cs.NewRegistryEnterpriseSyncRule(ctx, \"default\", \u0026cs.RegistryEnterpriseSyncRuleArgs{\n\t\t\tInstanceId:          source.ID(),\n\t\t\tNamespaceName:       sourceRegistryEnterpriseNamespace.Name,\n\t\t\tSyncRuleName:        pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tTargetInstanceId:    target.ID(),\n\t\t\tTargetNamespaceName: targetRegistryEnterpriseNamespace.Name,\n\t\t\tTargetRegionId:      pulumi.String(_default.Regions[0].Id),\n\t\t\tTagFilter:           pulumi.String(\".*\"),\n\t\t\tRepoName:            sourceRegistryEnterpriseRepo.Name,\n\t\t\tTargetRepoName:      targetRegistryEnterpriseRepo.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstance;\nimport com.pulumi.alicloud.cr.RegistryEnterpriseInstanceArgs;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseNamespace;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseNamespaceArgs;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseRepo;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseRepoArgs;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseSyncRule;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseSyncRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var source = new RegistryEnterpriseInstance(\"source\", RegistryEnterpriseInstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .period(1)\n            .renewPeriod(0)\n            .renewalStatus(\"ManualRenewal\")\n            .instanceType(\"Advanced\")\n            .instanceName(String.format(\"%s-source-%s\", name,defaultInteger.result()))\n            .build());\n\n        var target = new RegistryEnterpriseInstance(\"target\", RegistryEnterpriseInstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .period(1)\n            .renewPeriod(0)\n            .renewalStatus(\"ManualRenewal\")\n            .instanceType(\"Advanced\")\n            .instanceName(String.format(\"%s-target-%s\", name,defaultInteger.result()))\n            .build());\n\n        var sourceRegistryEnterpriseNamespace = new RegistryEnterpriseNamespace(\"sourceRegistryEnterpriseNamespace\", RegistryEnterpriseNamespaceArgs.builder()\n            .instanceId(source.id())\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .autoCreate(false)\n            .defaultVisibility(\"PUBLIC\")\n            .build());\n\n        var targetRegistryEnterpriseNamespace = new RegistryEnterpriseNamespace(\"targetRegistryEnterpriseNamespace\", RegistryEnterpriseNamespaceArgs.builder()\n            .instanceId(target.id())\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .autoCreate(false)\n            .defaultVisibility(\"PUBLIC\")\n            .build());\n\n        var sourceRegistryEnterpriseRepo = new RegistryEnterpriseRepo(\"sourceRegistryEnterpriseRepo\", RegistryEnterpriseRepoArgs.builder()\n            .instanceId(source.id())\n            .namespace(sourceRegistryEnterpriseNamespace.name())\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .summary(\"this is summary of my new repo\")\n            .repoType(\"PUBLIC\")\n            .build());\n\n        var targetRegistryEnterpriseRepo = new RegistryEnterpriseRepo(\"targetRegistryEnterpriseRepo\", RegistryEnterpriseRepoArgs.builder()\n            .instanceId(target.id())\n            .namespace(targetRegistryEnterpriseNamespace.name())\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .summary(\"this is summary of my new repo\")\n            .repoType(\"PUBLIC\")\n            .build());\n\n        var defaultRegistryEnterpriseSyncRule = new RegistryEnterpriseSyncRule(\"defaultRegistryEnterpriseSyncRule\", RegistryEnterpriseSyncRuleArgs.builder()\n            .instanceId(source.id())\n            .namespaceName(sourceRegistryEnterpriseNamespace.name())\n            .syncRuleName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .targetInstanceId(target.id())\n            .targetNamespaceName(targetRegistryEnterpriseNamespace.name())\n            .targetRegionId(default_.regions()[0].id())\n            .tagFilter(\".*\")\n            .repoName(sourceRegistryEnterpriseRepo.name())\n            .targetRepoName(targetRegistryEnterpriseRepo.name())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  source:\n    type: alicloud:cr:RegistryEnterpriseInstance\n    properties:\n      paymentType: Subscription\n      period: 1\n      renewPeriod: 0\n      renewalStatus: ManualRenewal\n      instanceType: Advanced\n      instanceName: ${name}-source-${defaultInteger.result}\n  target:\n    type: alicloud:cr:RegistryEnterpriseInstance\n    properties:\n      paymentType: Subscription\n      period: 1\n      renewPeriod: 0\n      renewalStatus: ManualRenewal\n      instanceType: Advanced\n      instanceName: ${name}-target-${defaultInteger.result}\n  sourceRegistryEnterpriseNamespace:\n    type: alicloud:cs:RegistryEnterpriseNamespace\n    name: source\n    properties:\n      instanceId: ${source.id}\n      name: ${name}-${defaultInteger.result}\n      autoCreate: false\n      defaultVisibility: PUBLIC\n  targetRegistryEnterpriseNamespace:\n    type: alicloud:cs:RegistryEnterpriseNamespace\n    name: target\n    properties:\n      instanceId: ${target.id}\n      name: ${name}-${defaultInteger.result}\n      autoCreate: false\n      defaultVisibility: PUBLIC\n  sourceRegistryEnterpriseRepo:\n    type: alicloud:cs:RegistryEnterpriseRepo\n    name: source\n    properties:\n      instanceId: ${source.id}\n      namespace: ${sourceRegistryEnterpriseNamespace.name}\n      name: ${name}-${defaultInteger.result}\n      summary: this is summary of my new repo\n      repoType: PUBLIC\n  targetRegistryEnterpriseRepo:\n    type: alicloud:cs:RegistryEnterpriseRepo\n    name: target\n    properties:\n      instanceId: ${target.id}\n      namespace: ${targetRegistryEnterpriseNamespace.name}\n      name: ${name}-${defaultInteger.result}\n      summary: this is summary of my new repo\n      repoType: PUBLIC\n  defaultRegistryEnterpriseSyncRule:\n    type: alicloud:cs:RegistryEnterpriseSyncRule\n    name: default\n    properties:\n      instanceId: ${source.id}\n      namespaceName: ${sourceRegistryEnterpriseNamespace.name}\n      syncRuleName: ${name}-${defaultInteger.result}\n      targetInstanceId: ${target.id}\n      targetNamespaceName: ${targetRegistryEnterpriseNamespace.name}\n      targetRegionId: ${default.regions[0].id}\n      tagFilter: .*\n      repoName: ${sourceRegistryEnterpriseRepo.name}\n      targetRepoName: ${targetRegistryEnterpriseRepo.name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nContainer Registry Sync Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:cs/registryEnterpriseSyncRule:RegistryEnterpriseSyncRule example \u003cinstance_id\u003e:\u003cnamespace_name\u003e:\u003crepo_sync_rule_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"(Available since v1.240.0) The time when the synchronization rule was created.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry source instance.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.240.0. New field \u003cspan pulumi-lang-nodejs=\"`syncRuleName`\" pulumi-lang-dotnet=\"`SyncRuleName`\" pulumi-lang-go=\"`syncRuleName`\" pulumi-lang-python=\"`sync_rule_name`\" pulumi-lang-yaml=\"`syncRuleName`\" pulumi-lang-java=\"`syncRuleName`\"\u003e`sync_rule_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.240.0. New field \u003cspan pulumi-lang-nodejs=\"`syncRuleName`\" pulumi-lang-dotnet=\"`SyncRuleName`\" pulumi-lang-go=\"`syncRuleName`\" pulumi-lang-python=\"`sync_rule_name`\" pulumi-lang-yaml=\"`syncRuleName`\" pulumi-lang-java=\"`syncRuleName`\"\u003e`sync_rule_name`\u003c/span\u003e instead."},"namespaceName":{"type":"string","description":"The namespace name of the source instance.\n"},"regionId":{"type":"string","description":"(Available since v1.240.0) The region ID of the source instance.\n"},"repoName":{"type":"string","description":"The image repository name of the source instance.\n"},"repoSyncRuleId":{"type":"string","description":"(Available since v1.240.0) The ID of the synchronization rule.\n"},"ruleId":{"type":"string","description":"(Deprecated since v1.240.0) Field \u003cspan pulumi-lang-nodejs=\"`ruleId`\" pulumi-lang-dotnet=\"`RuleId`\" pulumi-lang-go=\"`ruleId`\" pulumi-lang-python=\"`rule_id`\" pulumi-lang-yaml=\"`ruleId`\" pulumi-lang-java=\"`ruleId`\"\u003e`rule_id`\u003c/span\u003e has been deprecated from provider version 1.240.0. New field \u003cspan pulumi-lang-nodejs=\"`repoSyncRuleId`\" pulumi-lang-dotnet=\"`RepoSyncRuleId`\" pulumi-lang-go=\"`repoSyncRuleId`\" pulumi-lang-python=\"`repo_sync_rule_id`\" pulumi-lang-yaml=\"`repoSyncRuleId`\" pulumi-lang-java=\"`repoSyncRuleId`\"\u003e`repo_sync_rule_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`ruleId`\" pulumi-lang-dotnet=\"`RuleId`\" pulumi-lang-go=\"`ruleId`\" pulumi-lang-python=\"`rule_id`\" pulumi-lang-yaml=\"`ruleId`\" pulumi-lang-java=\"`ruleId`\"\u003e`rule_id`\u003c/span\u003e has been deprecated from provider version 1.240.0. New field \u003cspan pulumi-lang-nodejs=\"`repoSyncRuleId`\" pulumi-lang-dotnet=\"`RepoSyncRuleId`\" pulumi-lang-go=\"`repoSyncRuleId`\" pulumi-lang-python=\"`repo_sync_rule_id`\" pulumi-lang-yaml=\"`repoSyncRuleId`\" pulumi-lang-java=\"`repoSyncRuleId`\"\u003e`repo_sync_rule_id`\u003c/span\u003e instead."},"syncDirection":{"type":"string","description":"The synchronization direction.\n"},"syncRuleName":{"type":"string","description":"The name of the sync rule.\n"},"syncScope":{"type":"string","description":"The synchronization scope. Valid values:\n- `REPO`: Encrypts or decrypts data.\n- `NAMESPACE`: Generates or verifies a digital signature.\n\u003e **NOTE:** From version 1.240.0, \u003cspan pulumi-lang-nodejs=\"`syncScope`\" pulumi-lang-dotnet=\"`SyncScope`\" pulumi-lang-go=\"`syncScope`\" pulumi-lang-python=\"`sync_scope`\" pulumi-lang-yaml=\"`syncScope`\" pulumi-lang-java=\"`syncScope`\"\u003e`sync_scope`\u003c/span\u003e can be set.\n"},"syncTrigger":{"type":"string","description":"The policy configured to trigger the synchronization rule. Default value: `PASSIVE`. Valid values:\n- `INITIATIVE`: Manually triggers the synchronization rule.\n- `PASSIVE`: Automatically triggers the synchronization rule.\n"},"tagFilter":{"type":"string","description":"The regular expression used to filter image tags.\n"},"targetInstanceId":{"type":"string","description":"The ID of the destination instance.\n"},"targetNamespaceName":{"type":"string","description":"The namespace name of the destination instance.\n"},"targetRegionId":{"type":"string","description":"The region ID of the destination instance.\n"},"targetRepoName":{"type":"string","description":"The image repository name of the destination instance.\n"},"targetUserId":{"type":"string","description":"The UID of the account to which the target instance belongs.\n"}},"required":["createTime","instanceId","name","namespaceName","regionId","repoSyncRuleId","ruleId","syncDirection","syncRuleName","syncScope","syncTrigger","tagFilter","targetInstanceId","targetNamespaceName","targetRegionId"],"inputProperties":{"instanceId":{"type":"string","description":"The ID of the Container Registry source instance.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.240.0. New field \u003cspan pulumi-lang-nodejs=\"`syncRuleName`\" pulumi-lang-dotnet=\"`SyncRuleName`\" pulumi-lang-go=\"`syncRuleName`\" pulumi-lang-python=\"`sync_rule_name`\" pulumi-lang-yaml=\"`syncRuleName`\" pulumi-lang-java=\"`syncRuleName`\"\u003e`sync_rule_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.240.0. New field \u003cspan pulumi-lang-nodejs=\"`syncRuleName`\" pulumi-lang-dotnet=\"`SyncRuleName`\" pulumi-lang-go=\"`syncRuleName`\" pulumi-lang-python=\"`sync_rule_name`\" pulumi-lang-yaml=\"`syncRuleName`\" pulumi-lang-java=\"`syncRuleName`\"\u003e`sync_rule_name`\u003c/span\u003e instead.","willReplaceOnChanges":true},"namespaceName":{"type":"string","description":"The namespace name of the source instance.\n","willReplaceOnChanges":true},"repoName":{"type":"string","description":"The image repository name of the source instance.\n","willReplaceOnChanges":true},"syncRuleName":{"type":"string","description":"The name of the sync rule.\n","willReplaceOnChanges":true},"syncScope":{"type":"string","description":"The synchronization scope. Valid values:\n- `REPO`: Encrypts or decrypts data.\n- `NAMESPACE`: Generates or verifies a digital signature.\n\u003e **NOTE:** From version 1.240.0, \u003cspan pulumi-lang-nodejs=\"`syncScope`\" pulumi-lang-dotnet=\"`SyncScope`\" pulumi-lang-go=\"`syncScope`\" pulumi-lang-python=\"`sync_scope`\" pulumi-lang-yaml=\"`syncScope`\" pulumi-lang-java=\"`syncScope`\"\u003e`sync_scope`\u003c/span\u003e can be set.\n","willReplaceOnChanges":true},"syncTrigger":{"type":"string","description":"The policy configured to trigger the synchronization rule. Default value: `PASSIVE`. Valid values:\n- `INITIATIVE`: Manually triggers the synchronization rule.\n- `PASSIVE`: Automatically triggers the synchronization rule.\n","willReplaceOnChanges":true},"tagFilter":{"type":"string","description":"The regular expression used to filter image tags.\n","willReplaceOnChanges":true},"targetInstanceId":{"type":"string","description":"The ID of the destination instance.\n","willReplaceOnChanges":true},"targetNamespaceName":{"type":"string","description":"The namespace name of the destination instance.\n","willReplaceOnChanges":true},"targetRegionId":{"type":"string","description":"The region ID of the destination instance.\n","willReplaceOnChanges":true},"targetRepoName":{"type":"string","description":"The image repository name of the destination instance.\n","willReplaceOnChanges":true},"targetUserId":{"type":"string","description":"The UID of the account to which the target instance belongs.\n"}},"requiredInputs":["instanceId","namespaceName","tagFilter","targetInstanceId","targetNamespaceName","targetRegionId"],"stateInputs":{"description":"Input properties used for looking up and filtering RegistryEnterpriseSyncRule resources.\n","properties":{"createTime":{"type":"string","description":"(Available since v1.240.0) The time when the synchronization rule was created.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry source instance.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.240.0. New field \u003cspan pulumi-lang-nodejs=\"`syncRuleName`\" pulumi-lang-dotnet=\"`SyncRuleName`\" pulumi-lang-go=\"`syncRuleName`\" pulumi-lang-python=\"`sync_rule_name`\" pulumi-lang-yaml=\"`syncRuleName`\" pulumi-lang-java=\"`syncRuleName`\"\u003e`sync_rule_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.240.0. New field \u003cspan pulumi-lang-nodejs=\"`syncRuleName`\" pulumi-lang-dotnet=\"`SyncRuleName`\" pulumi-lang-go=\"`syncRuleName`\" pulumi-lang-python=\"`sync_rule_name`\" pulumi-lang-yaml=\"`syncRuleName`\" pulumi-lang-java=\"`syncRuleName`\"\u003e`sync_rule_name`\u003c/span\u003e instead.","willReplaceOnChanges":true},"namespaceName":{"type":"string","description":"The namespace name of the source instance.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"(Available since v1.240.0) The region ID of the source instance.\n"},"repoName":{"type":"string","description":"The image repository name of the source instance.\n","willReplaceOnChanges":true},"repoSyncRuleId":{"type":"string","description":"(Available since v1.240.0) The ID of the synchronization rule.\n"},"ruleId":{"type":"string","description":"(Deprecated since v1.240.0) Field \u003cspan pulumi-lang-nodejs=\"`ruleId`\" pulumi-lang-dotnet=\"`RuleId`\" pulumi-lang-go=\"`ruleId`\" pulumi-lang-python=\"`rule_id`\" pulumi-lang-yaml=\"`ruleId`\" pulumi-lang-java=\"`ruleId`\"\u003e`rule_id`\u003c/span\u003e has been deprecated from provider version 1.240.0. New field \u003cspan pulumi-lang-nodejs=\"`repoSyncRuleId`\" pulumi-lang-dotnet=\"`RepoSyncRuleId`\" pulumi-lang-go=\"`repoSyncRuleId`\" pulumi-lang-python=\"`repo_sync_rule_id`\" pulumi-lang-yaml=\"`repoSyncRuleId`\" pulumi-lang-java=\"`repoSyncRuleId`\"\u003e`repo_sync_rule_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`ruleId`\" pulumi-lang-dotnet=\"`RuleId`\" pulumi-lang-go=\"`ruleId`\" pulumi-lang-python=\"`rule_id`\" pulumi-lang-yaml=\"`ruleId`\" pulumi-lang-java=\"`ruleId`\"\u003e`rule_id`\u003c/span\u003e has been deprecated from provider version 1.240.0. New field \u003cspan pulumi-lang-nodejs=\"`repoSyncRuleId`\" pulumi-lang-dotnet=\"`RepoSyncRuleId`\" pulumi-lang-go=\"`repoSyncRuleId`\" pulumi-lang-python=\"`repo_sync_rule_id`\" pulumi-lang-yaml=\"`repoSyncRuleId`\" pulumi-lang-java=\"`repoSyncRuleId`\"\u003e`repo_sync_rule_id`\u003c/span\u003e instead."},"syncDirection":{"type":"string","description":"The synchronization direction.\n"},"syncRuleName":{"type":"string","description":"The name of the sync rule.\n","willReplaceOnChanges":true},"syncScope":{"type":"string","description":"The synchronization scope. Valid values:\n- `REPO`: Encrypts or decrypts data.\n- `NAMESPACE`: Generates or verifies a digital signature.\n\u003e **NOTE:** From version 1.240.0, \u003cspan pulumi-lang-nodejs=\"`syncScope`\" pulumi-lang-dotnet=\"`SyncScope`\" pulumi-lang-go=\"`syncScope`\" pulumi-lang-python=\"`sync_scope`\" pulumi-lang-yaml=\"`syncScope`\" pulumi-lang-java=\"`syncScope`\"\u003e`sync_scope`\u003c/span\u003e can be set.\n","willReplaceOnChanges":true},"syncTrigger":{"type":"string","description":"The policy configured to trigger the synchronization rule. Default value: `PASSIVE`. Valid values:\n- `INITIATIVE`: Manually triggers the synchronization rule.\n- `PASSIVE`: Automatically triggers the synchronization rule.\n","willReplaceOnChanges":true},"tagFilter":{"type":"string","description":"The regular expression used to filter image tags.\n","willReplaceOnChanges":true},"targetInstanceId":{"type":"string","description":"The ID of the destination instance.\n","willReplaceOnChanges":true},"targetNamespaceName":{"type":"string","description":"The namespace name of the destination instance.\n","willReplaceOnChanges":true},"targetRegionId":{"type":"string","description":"The region ID of the destination instance.\n","willReplaceOnChanges":true},"targetRepoName":{"type":"string","description":"The image repository name of the destination instance.\n","willReplaceOnChanges":true},"targetUserId":{"type":"string","description":"The UID of the account to which the target instance belongs.\n"}},"type":"object"}},"alicloud:cs/serverlessKubernetes:ServerlessKubernetes":{"description":"This resource will help you to manager a Serverless Kubernetes Cluster, see [What is serverless kubernetes](https://www.alibabacloud.com/help/en/ack/ack-managed-and-ack-dedicated/developer-reference/create-a-dedicated-kubernetes-cluster-that-supports-sandboxed-containers). The cluster is same as container service created by web console.\n\n\u003e **NOTE:** Available since v1.58.0.\n\n\u003e **NOTE:** Serverless Kubernetes cluster only supports VPC network and it can access internet while creating kubernetes cluster.\nA Nat Gateway and configuring a SNAT for it can ensure one VPC network access internet. If there is no nat gateway in the\nVPC, you can set \u003cspan pulumi-lang-nodejs=\"`newNatGateway`\" pulumi-lang-dotnet=\"`NewNatGateway`\" pulumi-lang-go=\"`newNatGateway`\" pulumi-lang-python=\"`new_nat_gateway`\" pulumi-lang-yaml=\"`newNatGateway`\" pulumi-lang-java=\"`newNatGateway`\"\u003e`new_nat_gateway`\u003c/span\u003e to \"true\" to create one automatically.\n\n\u003e **NOTE:** Creating serverless kubernetes cluster need to install several packages and it will cost about 5 minutes. Please be patient.\n\n\u003e **NOTE:** The provider supports to download kube config, client certificate, client key and cluster ca certificate\nafter creating cluster successfully, and you can put them into the specified location, like '~/.kube/config'.\n\n\u003e **NOTE:** If you want to manage serverless Kubernetes, you can use Kubernetes Provider.\n\n\u003e **NOTE:** You need to activate several other products and confirm Authorization Policy used by Container Service before using this resource.\nPlease refer to the `Authorization management` and `Cluster management` sections in the [Document Center](https://www.alibabacloud.com/help/doc-detail/86488.htm).\n\n\u003e **NOTE:** From version 1.162.0, support for creating professional serverless cluster.\n\n\u003e **NOTE:** From version 1.229.1, support to migrate basic serverless cluster to professional serverless cluster.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"ask-example-pro\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.2.0.0/21\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"10.2.1.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst serverless = new alicloud.cs.ServerlessKubernetes(\"serverless\", {\n    namePrefix: name,\n    clusterSpec: \"ack.pro.small\",\n    vpcId: defaultNetwork.id,\n    vswitchIds: [defaultSwitch.id],\n    newNatGateway: true,\n    endpointPublicAccessEnabled: true,\n    deletionProtection: false,\n    timeZone: \"Asia/Shanghai\",\n    serviceCidr: \"172.21.0.0/20\",\n    tags: {\n        \"k-aa\": \"v-aa\",\n        \"k-bb\": \"v-bb\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"ask-example-pro\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.2.0.0/21\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"10.2.1.0/24\",\n    zone_id=default.zones[0].id)\nserverless = alicloud.cs.ServerlessKubernetes(\"serverless\",\n    name_prefix=name,\n    cluster_spec=\"ack.pro.small\",\n    vpc_id=default_network.id,\n    vswitch_ids=[default_switch.id],\n    new_nat_gateway=True,\n    endpoint_public_access_enabled=True,\n    deletion_protection=False,\n    time_zone=\"Asia/Shanghai\",\n    service_cidr=\"172.21.0.0/20\",\n    tags={\n        \"k-aa\": \"v-aa\",\n        \"k-bb\": \"v-bb\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"ask-example-pro\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.2.0.0/21\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"10.2.1.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var serverless = new AliCloud.CS.ServerlessKubernetes(\"serverless\", new()\n    {\n        NamePrefix = name,\n        ClusterSpec = \"ack.pro.small\",\n        VpcId = defaultNetwork.Id,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        NewNatGateway = true,\n        EndpointPublicAccessEnabled = true,\n        DeletionProtection = false,\n        TimeZone = \"Asia/Shanghai\",\n        ServiceCidr = \"172.21.0.0/20\",\n        Tags = \n        {\n            { \"k-aa\", \"v-aa\" },\n            { \"k-bb\", \"v-bb\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"ask-example-pro\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.2.0.0/21\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"10.2.1.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cs.NewServerlessKubernetes(ctx, \"serverless\", \u0026cs.ServerlessKubernetesArgs{\n\t\t\tNamePrefix:  pulumi.String(name),\n\t\t\tClusterSpec: pulumi.String(\"ack.pro.small\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tNewNatGateway:               pulumi.Bool(true),\n\t\t\tEndpointPublicAccessEnabled: pulumi.Bool(true),\n\t\t\tDeletionProtection:          pulumi.Bool(false),\n\t\t\tTimeZone:                    pulumi.String(\"Asia/Shanghai\"),\n\t\t\tServiceCidr:                 pulumi.String(\"172.21.0.0/20\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"k-aa\": pulumi.String(\"v-aa\"),\n\t\t\t\t\"k-bb\": pulumi.String(\"v-bb\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.ServerlessKubernetes;\nimport com.pulumi.alicloud.cs.ServerlessKubernetesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"ask-example-pro\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.2.0.0/21\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"10.2.1.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var serverless = new ServerlessKubernetes(\"serverless\", ServerlessKubernetesArgs.builder()\n            .namePrefix(name)\n            .clusterSpec(\"ack.pro.small\")\n            .vpcId(defaultNetwork.id())\n            .vswitchIds(defaultSwitch.id())\n            .newNatGateway(true)\n            .endpointPublicAccessEnabled(true)\n            .deletionProtection(false)\n            .timeZone(\"Asia/Shanghai\")\n            .serviceCidr(\"172.21.0.0/20\")\n            .tags(Map.ofEntries(\n                Map.entry(\"k-aa\", \"v-aa\"),\n                Map.entry(\"k-bb\", \"v-bb\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: ask-example-pro\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.2.0.0/21\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 10.2.1.0/24\n      zoneId: ${default.zones[0].id}\n  serverless:\n    type: alicloud:cs:ServerlessKubernetes\n    properties:\n      namePrefix: ${name}\n      clusterSpec: ack.pro.small\n      vpcId: ${defaultNetwork.id}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      newNatGateway: true\n      endpointPublicAccessEnabled: true\n      deletionProtection: false\n      timeZone: Asia/Shanghai\n      serviceCidr: 172.21.0.0/20\n      tags:\n        k-aa: v-aa\n        k-bb: v-bb\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nServerless Kubernetes cluster can be imported using the id, e.g. Then complete the main.tf accords to the result of `pulumi preview`.\n\n```sh\n$ pulumi import alicloud:cs/serverlessKubernetes:ServerlessKubernetes main ce4273f9156874b46bb\n```\n\n","properties":{"addons":{"type":"array","items":{"$ref":"#/types/alicloud:cs/ServerlessKubernetesAddon:ServerlessKubernetesAddon"},"description":"You can specific network plugin, log component, ingress component and so on. See \u003cspan pulumi-lang-nodejs=\"`addons`\" pulumi-lang-dotnet=\"`Addons`\" pulumi-lang-go=\"`addons`\" pulumi-lang-python=\"`addons`\" pulumi-lang-yaml=\"`addons`\" pulumi-lang-java=\"`addons`\"\u003e`addons`\u003c/span\u003e below. Only works for **Create** Operation, use resource\u003cspan pulumi-lang-nodejs=\" csKubernetesAddon \" pulumi-lang-dotnet=\" CsKubernetesAddon \" pulumi-lang-go=\" csKubernetesAddon \" pulumi-lang-python=\" cs_kubernetes_addon \" pulumi-lang-yaml=\" csKubernetesAddon \" pulumi-lang-java=\" csKubernetesAddon \"\u003e cs_kubernetes_addon \u003c/span\u003eto manage addons if cluster is created.\n"},"clientCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-cert.pem) for replace it.\n","deprecationMessage":"Field 'client_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-cert.pem) for replace it."},"clientKey":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_key attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-key.pem) for replace it.\n","deprecationMessage":"Field 'client_key' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_key' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-key.pem) for replace it."},"clusterCaCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.cluster_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it.\n","deprecationMessage":"Field 'cluster_ca_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.cluster_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it."},"clusterSpec":{"type":"string","description":"The cluster specifications of serverless kubernetes cluster, which can be empty. Valid values:\n- ack.standard: Standard serverless clusters.\n- ack.pro.small: Professional serverless clusters.\n"},"customSan":{"type":"string","description":"Customize the certificate SAN, multiple IP or domain names are separated by English commas (,).\n\u003e **NOTE:** Make sure you have specified all certificate SANs before updating. Updating this field will lead APIServer to restart.\n"},"deleteOptions":{"type":"array","items":{"$ref":"#/types/alicloud:cs/ServerlessKubernetesDeleteOption:ServerlessKubernetesDeleteOption"},"description":"Delete options, only work for deleting resource. Make sure you have run `pulumi up` to make the configuration applied. See \u003cspan pulumi-lang-nodejs=\"`deleteOptions`\" pulumi-lang-dotnet=\"`DeleteOptions`\" pulumi-lang-go=\"`deleteOptions`\" pulumi-lang-python=\"`delete_options`\" pulumi-lang-yaml=\"`deleteOptions`\" pulumi-lang-java=\"`deleteOptions`\"\u003e`delete_options`\u003c/span\u003e below.\n"},"deletionProtection":{"type":"boolean","description":"Whether enable the deletion protection or not.\n- true: Enable deletion protection.\n- false: Disable deletion protection.\n"},"enableRrsa":{"type":"boolean","description":"Whether to enable cluster to support RRSA for version 1.22.3+. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Once the RRSA function is turned on, it is not allowed to turn off. If your cluster has enabled this function, please manually modify your tf file and add the rrsa configuration to the file, learn more [RAM Roles for Service Accounts](https://www.alibabacloud.com/help/zh/container-service-for-kubernetes/latest/use-rrsa-to-enforce-access-control).\n"},"endpointPublicAccessEnabled":{"type":"boolean","description":"Whether to create internet eip for API Server. Default to false. Only works for **Create** Operation.\n"},"kubeConfig":{"type":"string","description":"The path of kube config, like ~/.kube/config. Please use the attribute\u003cspan pulumi-lang-nodejs=\" outputFile \" pulumi-lang-dotnet=\" OutputFile \" pulumi-lang-go=\" outputFile \" pulumi-lang-python=\" output_file \" pulumi-lang-yaml=\" outputFile \" pulumi-lang-java=\" outputFile \"\u003e output_file \u003c/span\u003eof new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to replace it.\n","deprecationMessage":"Field 'kube_config' has been deprecated from provider version 1.187.0. Please use the attribute 'output_file' of new DataSource 'alicloud_cs_cluster_credential' to replace it."},"loadBalancerSpec":{"type":"string","description":"The cluster api server load balance instance specification, default `slb.s2.small`. For more information on how to select a LB instance specification, see [SLB instance overview](https://help.aliyun.com/document_detail/85931.html). Only works for **Create** Operation.\n","deprecationMessage":"Field 'load_balancer_spec' has been deprecated from provider version 1.229.1. The load balancer has been changed to PayByCLCU so that the spec is no need anymore."},"loggingType":{"type":"string","description":"Enable log service, Valid value `SLS`. Only works for **Create** Operation.\n","deprecationMessage":"Field 'logging_type' has been deprecated from provider version 1.229.1. Please use addons `alibaba-log-controller` to enable logging."},"maintenanceWindow":{"$ref":"#/types/alicloud:cs/ServerlessKubernetesMaintenanceWindow:ServerlessKubernetesMaintenanceWindow","description":"The cluster maintenance window，effective only in the professional managed cluster. Managed node pool will use it. See \u003cspan pulumi-lang-nodejs=\"`maintenanceWindow`\" pulumi-lang-dotnet=\"`MaintenanceWindow`\" pulumi-lang-go=\"`maintenanceWindow`\" pulumi-lang-python=\"`maintenance_window`\" pulumi-lang-yaml=\"`maintenanceWindow`\" pulumi-lang-java=\"`maintenanceWindow`\"\u003e`maintenance_window`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The kubernetes cluster's name. It is the only in one Alicloud account.\n"},"namePrefix":{"type":"string","description":"The kubernetes cluster name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e. If it is specified, terraform will using it to build the only cluster name. Default to \"Terraform-Creation\".\n"},"newNatGateway":{"type":"boolean","description":"Whether to create a new nat gateway while creating kubernetes cluster. SNAT must be configured when a new VPC is automatically created. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"operationPolicy":{"$ref":"#/types/alicloud:cs/ServerlessKubernetesOperationPolicy:ServerlessKubernetesOperationPolicy","description":"The cluster automatic operation policy. See \u003cspan pulumi-lang-nodejs=\"`operationPolicy`\" pulumi-lang-dotnet=\"`OperationPolicy`\" pulumi-lang-go=\"`operationPolicy`\" pulumi-lang-python=\"`operation_policy`\" pulumi-lang-yaml=\"`operationPolicy`\" pulumi-lang-java=\"`operationPolicy`\"\u003e`operation_policy`\u003c/span\u003e below.\n\n*Removed params*\n"},"privateZone":{"type":"boolean","description":"Has been deprecated from provider version 1.123.1. `PrivateZone` is used as the enumeration value of \u003cspan pulumi-lang-nodejs=\"`serviceDiscoveryTypes`\" pulumi-lang-dotnet=\"`ServiceDiscoveryTypes`\" pulumi-lang-go=\"`serviceDiscoveryTypes`\" pulumi-lang-python=\"`service_discovery_types`\" pulumi-lang-yaml=\"`serviceDiscoveryTypes`\" pulumi-lang-java=\"`serviceDiscoveryTypes`\"\u003e`service_discovery_types`\u003c/span\u003e.\n","deprecationMessage":"Field 'private_zone' has been deprecated from provider version 1.123.1. New field 'service_discovery_types' replace it."},"resourceGroupId":{"type":"string","description":"The ID of the resource group,by default these cloud resources are automatically assigned to the default resource group.\n"},"retainResources":{"type":"array","items":{"type":"string"},"description":"Resources that are automatically created during cluster creation, including NAT gateways, SNAT rules, SLB instances, and RAM Role, will be deleted. Resources that are manually created after you create the cluster, such as SLB instances for Services, will also be deleted. If you need to retain resources, please configure with \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e. There are several aspects to pay attention to when using \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e to retain resources. After configuring \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e into the terraform configuration manifest file, you first need to run `pulumi up`.Then execute `terraform destroy`.\n"},"rrsaMetadata":{"$ref":"#/types/alicloud:cs/ServerlessKubernetesRrsaMetadata:ServerlessKubernetesRrsaMetadata","description":"Nested attribute containing RRSA related data for your cluster.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group to which the ECS instances in the cluster belong. If it is not specified, a new Security group will be built.\n"},"serviceCidr":{"type":"string","description":"CIDR block of the service network. The specified CIDR block cannot overlap with that of the VPC or those of the ACK clusters that are deployed in the VPC. The CIDR block cannot be modified after the cluster is created.\n"},"serviceDiscoveryTypes":{"type":"array","items":{"type":"string"},"description":"Service discovery type. Only works for **Create** Operation. If the value is empty, it means that service discovery is not enabled. Valid values are `CoreDNS` and `PrivateZone`.\n"},"slsProjectName":{"type":"string","description":"If you use an existing SLS project, you must specify \u003cspan pulumi-lang-nodejs=\"`slsProjectName`\" pulumi-lang-dotnet=\"`SlsProjectName`\" pulumi-lang-go=\"`slsProjectName`\" pulumi-lang-python=\"`sls_project_name`\" pulumi-lang-yaml=\"`slsProjectName`\" pulumi-lang-java=\"`slsProjectName`\"\u003e`sls_project_name`\u003c/span\u003e. Only works for **Create** Operation.\n","deprecationMessage":"Field 'sls_project_name' has been deprecated from provider version 1.229.1. Please use the field \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e of addons `alibaba-log-controller` to specify log project name."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Default nil, A map of tags assigned to the kubernetes cluster and work nodes.\n"},"timeZone":{"type":"string","description":"The time zone of the cluster.\n"},"version":{"type":"string","description":"Desired Kubernetes version. If you do not specify a value, the latest available version at resource creation is used.  Do not specify if cluster auto upgrade is enabled, see\u003cspan pulumi-lang-nodejs=\" clusterAutoUpgrade \" pulumi-lang-dotnet=\" ClusterAutoUpgrade \" pulumi-lang-go=\" clusterAutoUpgrade \" pulumi-lang-python=\" cluster_auto_upgrade \" pulumi-lang-yaml=\" clusterAutoUpgrade \" pulumi-lang-java=\" clusterAutoUpgrade \"\u003e cluster_auto_upgrade \u003c/span\u003efor more information.\n"},"vpcId":{"type":"string","description":"The vpc where new kubernetes cluster will be located. Specify one vpc's id, if it is not specified, a new VPC will be built.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vswitches where new kubernetes cluster will be located.\n"},"zoneId":{"type":"string","description":"When creating a cluster using automatic VPC creation, you need to specify the zone where the VPC is located. Only works for **Create** Operation.\n"}},"required":["clusterSpec","loadBalancerSpec","maintenanceWindow","name","operationPolicy","resourceGroupId","rrsaMetadata","securityGroupId","slsProjectName","timeZone","version","vpcId","vswitchIds"],"inputProperties":{"addons":{"type":"array","items":{"$ref":"#/types/alicloud:cs/ServerlessKubernetesAddon:ServerlessKubernetesAddon"},"description":"You can specific network plugin, log component, ingress component and so on. See \u003cspan pulumi-lang-nodejs=\"`addons`\" pulumi-lang-dotnet=\"`Addons`\" pulumi-lang-go=\"`addons`\" pulumi-lang-python=\"`addons`\" pulumi-lang-yaml=\"`addons`\" pulumi-lang-java=\"`addons`\"\u003e`addons`\u003c/span\u003e below. Only works for **Create** Operation, use resource\u003cspan pulumi-lang-nodejs=\" csKubernetesAddon \" pulumi-lang-dotnet=\" CsKubernetesAddon \" pulumi-lang-go=\" csKubernetesAddon \" pulumi-lang-python=\" cs_kubernetes_addon \" pulumi-lang-yaml=\" csKubernetesAddon \" pulumi-lang-java=\" csKubernetesAddon \"\u003e cs_kubernetes_addon \u003c/span\u003eto manage addons if cluster is created.\n"},"clientCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-cert.pem) for replace it.\n","deprecationMessage":"Field 'client_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-cert.pem) for replace it."},"clientKey":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_key attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-key.pem) for replace it.\n","deprecationMessage":"Field 'client_key' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_key' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-key.pem) for replace it."},"clusterCaCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.cluster_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it.\n","deprecationMessage":"Field 'cluster_ca_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.cluster_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it."},"clusterSpec":{"type":"string","description":"The cluster specifications of serverless kubernetes cluster, which can be empty. Valid values:\n- ack.standard: Standard serverless clusters.\n- ack.pro.small: Professional serverless clusters.\n"},"customSan":{"type":"string","description":"Customize the certificate SAN, multiple IP or domain names are separated by English commas (,).\n\u003e **NOTE:** Make sure you have specified all certificate SANs before updating. Updating this field will lead APIServer to restart.\n"},"deleteOptions":{"type":"array","items":{"$ref":"#/types/alicloud:cs/ServerlessKubernetesDeleteOption:ServerlessKubernetesDeleteOption"},"description":"Delete options, only work for deleting resource. Make sure you have run `pulumi up` to make the configuration applied. See \u003cspan pulumi-lang-nodejs=\"`deleteOptions`\" pulumi-lang-dotnet=\"`DeleteOptions`\" pulumi-lang-go=\"`deleteOptions`\" pulumi-lang-python=\"`delete_options`\" pulumi-lang-yaml=\"`deleteOptions`\" pulumi-lang-java=\"`deleteOptions`\"\u003e`delete_options`\u003c/span\u003e below.\n"},"deletionProtection":{"type":"boolean","description":"Whether enable the deletion protection or not.\n- true: Enable deletion protection.\n- false: Disable deletion protection.\n"},"enableRrsa":{"type":"boolean","description":"Whether to enable cluster to support RRSA for version 1.22.3+. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Once the RRSA function is turned on, it is not allowed to turn off. If your cluster has enabled this function, please manually modify your tf file and add the rrsa configuration to the file, learn more [RAM Roles for Service Accounts](https://www.alibabacloud.com/help/zh/container-service-for-kubernetes/latest/use-rrsa-to-enforce-access-control).\n"},"endpointPublicAccessEnabled":{"type":"boolean","description":"Whether to create internet eip for API Server. Default to false. Only works for **Create** Operation.\n","willReplaceOnChanges":true},"kubeConfig":{"type":"string","description":"The path of kube config, like ~/.kube/config. Please use the attribute\u003cspan pulumi-lang-nodejs=\" outputFile \" pulumi-lang-dotnet=\" OutputFile \" pulumi-lang-go=\" outputFile \" pulumi-lang-python=\" output_file \" pulumi-lang-yaml=\" outputFile \" pulumi-lang-java=\" outputFile \"\u003e output_file \u003c/span\u003eof new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to replace it.\n","deprecationMessage":"Field 'kube_config' has been deprecated from provider version 1.187.0. Please use the attribute 'output_file' of new DataSource 'alicloud_cs_cluster_credential' to replace it."},"loadBalancerSpec":{"type":"string","description":"The cluster api server load balance instance specification, default `slb.s2.small`. For more information on how to select a LB instance specification, see [SLB instance overview](https://help.aliyun.com/document_detail/85931.html). Only works for **Create** Operation.\n","deprecationMessage":"Field 'load_balancer_spec' has been deprecated from provider version 1.229.1. The load balancer has been changed to PayByCLCU so that the spec is no need anymore."},"loggingType":{"type":"string","description":"Enable log service, Valid value `SLS`. Only works for **Create** Operation.\n","deprecationMessage":"Field 'logging_type' has been deprecated from provider version 1.229.1. Please use addons `alibaba-log-controller` to enable logging."},"maintenanceWindow":{"$ref":"#/types/alicloud:cs/ServerlessKubernetesMaintenanceWindow:ServerlessKubernetesMaintenanceWindow","description":"The cluster maintenance window，effective only in the professional managed cluster. Managed node pool will use it. See \u003cspan pulumi-lang-nodejs=\"`maintenanceWindow`\" pulumi-lang-dotnet=\"`MaintenanceWindow`\" pulumi-lang-go=\"`maintenanceWindow`\" pulumi-lang-python=\"`maintenance_window`\" pulumi-lang-yaml=\"`maintenanceWindow`\" pulumi-lang-java=\"`maintenanceWindow`\"\u003e`maintenance_window`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The kubernetes cluster's name. It is the only in one Alicloud account.\n"},"namePrefix":{"type":"string","description":"The kubernetes cluster name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e. If it is specified, terraform will using it to build the only cluster name. Default to \"Terraform-Creation\".\n"},"newNatGateway":{"type":"boolean","description":"Whether to create a new nat gateway while creating kubernetes cluster. SNAT must be configured when a new VPC is automatically created. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"operationPolicy":{"$ref":"#/types/alicloud:cs/ServerlessKubernetesOperationPolicy:ServerlessKubernetesOperationPolicy","description":"The cluster automatic operation policy. See \u003cspan pulumi-lang-nodejs=\"`operationPolicy`\" pulumi-lang-dotnet=\"`OperationPolicy`\" pulumi-lang-go=\"`operationPolicy`\" pulumi-lang-python=\"`operation_policy`\" pulumi-lang-yaml=\"`operationPolicy`\" pulumi-lang-java=\"`operationPolicy`\"\u003e`operation_policy`\u003c/span\u003e below.\n\n*Removed params*\n"},"privateZone":{"type":"boolean","description":"Has been deprecated from provider version 1.123.1. `PrivateZone` is used as the enumeration value of \u003cspan pulumi-lang-nodejs=\"`serviceDiscoveryTypes`\" pulumi-lang-dotnet=\"`ServiceDiscoveryTypes`\" pulumi-lang-go=\"`serviceDiscoveryTypes`\" pulumi-lang-python=\"`service_discovery_types`\" pulumi-lang-yaml=\"`serviceDiscoveryTypes`\" pulumi-lang-java=\"`serviceDiscoveryTypes`\"\u003e`service_discovery_types`\u003c/span\u003e.\n","deprecationMessage":"Field 'private_zone' has been deprecated from provider version 1.123.1. New field 'service_discovery_types' replace it."},"resourceGroupId":{"type":"string","description":"The ID of the resource group,by default these cloud resources are automatically assigned to the default resource group.\n"},"retainResources":{"type":"array","items":{"type":"string"},"description":"Resources that are automatically created during cluster creation, including NAT gateways, SNAT rules, SLB instances, and RAM Role, will be deleted. Resources that are manually created after you create the cluster, such as SLB instances for Services, will also be deleted. If you need to retain resources, please configure with \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e. There are several aspects to pay attention to when using \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e to retain resources. After configuring \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e into the terraform configuration manifest file, you first need to run `pulumi up`.Then execute `terraform destroy`.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group to which the ECS instances in the cluster belong. If it is not specified, a new Security group will be built.\n","willReplaceOnChanges":true},"serviceCidr":{"type":"string","description":"CIDR block of the service network. The specified CIDR block cannot overlap with that of the VPC or those of the ACK clusters that are deployed in the VPC. The CIDR block cannot be modified after the cluster is created.\n","willReplaceOnChanges":true},"serviceDiscoveryTypes":{"type":"array","items":{"type":"string"},"description":"Service discovery type. Only works for **Create** Operation. If the value is empty, it means that service discovery is not enabled. Valid values are `CoreDNS` and `PrivateZone`.\n"},"slsProjectName":{"type":"string","description":"If you use an existing SLS project, you must specify \u003cspan pulumi-lang-nodejs=\"`slsProjectName`\" pulumi-lang-dotnet=\"`SlsProjectName`\" pulumi-lang-go=\"`slsProjectName`\" pulumi-lang-python=\"`sls_project_name`\" pulumi-lang-yaml=\"`slsProjectName`\" pulumi-lang-java=\"`slsProjectName`\"\u003e`sls_project_name`\u003c/span\u003e. Only works for **Create** Operation.\n","deprecationMessage":"Field 'sls_project_name' has been deprecated from provider version 1.229.1. Please use the field \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e of addons `alibaba-log-controller` to specify log project name."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Default nil, A map of tags assigned to the kubernetes cluster and work nodes.\n"},"timeZone":{"type":"string","description":"The time zone of the cluster.\n"},"version":{"type":"string","description":"Desired Kubernetes version. If you do not specify a value, the latest available version at resource creation is used.  Do not specify if cluster auto upgrade is enabled, see\u003cspan pulumi-lang-nodejs=\" clusterAutoUpgrade \" pulumi-lang-dotnet=\" ClusterAutoUpgrade \" pulumi-lang-go=\" clusterAutoUpgrade \" pulumi-lang-python=\" cluster_auto_upgrade \" pulumi-lang-yaml=\" clusterAutoUpgrade \" pulumi-lang-java=\" clusterAutoUpgrade \"\u003e cluster_auto_upgrade \u003c/span\u003efor more information.\n"},"vpcId":{"type":"string","description":"The vpc where new kubernetes cluster will be located. Specify one vpc's id, if it is not specified, a new VPC will be built.\n","willReplaceOnChanges":true},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vswitches where new kubernetes cluster will be located.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"When creating a cluster using automatic VPC creation, you need to specify the zone where the VPC is located. Only works for **Create** Operation.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ServerlessKubernetes resources.\n","properties":{"addons":{"type":"array","items":{"$ref":"#/types/alicloud:cs/ServerlessKubernetesAddon:ServerlessKubernetesAddon"},"description":"You can specific network plugin, log component, ingress component and so on. See \u003cspan pulumi-lang-nodejs=\"`addons`\" pulumi-lang-dotnet=\"`Addons`\" pulumi-lang-go=\"`addons`\" pulumi-lang-python=\"`addons`\" pulumi-lang-yaml=\"`addons`\" pulumi-lang-java=\"`addons`\"\u003e`addons`\u003c/span\u003e below. Only works for **Create** Operation, use resource\u003cspan pulumi-lang-nodejs=\" csKubernetesAddon \" pulumi-lang-dotnet=\" CsKubernetesAddon \" pulumi-lang-go=\" csKubernetesAddon \" pulumi-lang-python=\" cs_kubernetes_addon \" pulumi-lang-yaml=\" csKubernetesAddon \" pulumi-lang-java=\" csKubernetesAddon \"\u003e cs_kubernetes_addon \u003c/span\u003eto manage addons if cluster is created.\n"},"clientCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-cert.pem) for replace it.\n","deprecationMessage":"Field 'client_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-cert.pem) for replace it."},"clientKey":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.client_key attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/client-key.pem) for replace it.\n","deprecationMessage":"Field 'client_key' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.client_key' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/client-key.pem) for replace it."},"clusterCaCert":{"type":"string","description":"From version 1.248.0, new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e is recommended to manage cluster's kubeconfig, you can also save the certificate_authority.cluster_cert attribute content of new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it.\n","deprecationMessage":"Field 'cluster_ca_cert' has been deprecated from provider version 1.248.0. From version 1.248.0, new DataSource 'alicloud_cs_cluster_credential' is recommended to manage cluster's kubeconfig, you can also save the 'certificate_authority.cluster_cert' attribute content of new DataSource 'alicloud_cs_cluster_credential' to an appropriate path(like ~/.kube/cluster-ca-cert.pem) for replace it."},"clusterSpec":{"type":"string","description":"The cluster specifications of serverless kubernetes cluster, which can be empty. Valid values:\n- ack.standard: Standard serverless clusters.\n- ack.pro.small: Professional serverless clusters.\n"},"customSan":{"type":"string","description":"Customize the certificate SAN, multiple IP or domain names are separated by English commas (,).\n\u003e **NOTE:** Make sure you have specified all certificate SANs before updating. Updating this field will lead APIServer to restart.\n"},"deleteOptions":{"type":"array","items":{"$ref":"#/types/alicloud:cs/ServerlessKubernetesDeleteOption:ServerlessKubernetesDeleteOption"},"description":"Delete options, only work for deleting resource. Make sure you have run `pulumi up` to make the configuration applied. See \u003cspan pulumi-lang-nodejs=\"`deleteOptions`\" pulumi-lang-dotnet=\"`DeleteOptions`\" pulumi-lang-go=\"`deleteOptions`\" pulumi-lang-python=\"`delete_options`\" pulumi-lang-yaml=\"`deleteOptions`\" pulumi-lang-java=\"`deleteOptions`\"\u003e`delete_options`\u003c/span\u003e below.\n"},"deletionProtection":{"type":"boolean","description":"Whether enable the deletion protection or not.\n- true: Enable deletion protection.\n- false: Disable deletion protection.\n"},"enableRrsa":{"type":"boolean","description":"Whether to enable cluster to support RRSA for version 1.22.3+. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Once the RRSA function is turned on, it is not allowed to turn off. If your cluster has enabled this function, please manually modify your tf file and add the rrsa configuration to the file, learn more [RAM Roles for Service Accounts](https://www.alibabacloud.com/help/zh/container-service-for-kubernetes/latest/use-rrsa-to-enforce-access-control).\n"},"endpointPublicAccessEnabled":{"type":"boolean","description":"Whether to create internet eip for API Server. Default to false. Only works for **Create** Operation.\n","willReplaceOnChanges":true},"kubeConfig":{"type":"string","description":"The path of kube config, like ~/.kube/config. Please use the attribute\u003cspan pulumi-lang-nodejs=\" outputFile \" pulumi-lang-dotnet=\" OutputFile \" pulumi-lang-go=\" outputFile \" pulumi-lang-python=\" output_file \" pulumi-lang-yaml=\" outputFile \" pulumi-lang-java=\" outputFile \"\u003e output_file \u003c/span\u003eof new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to replace it.\n","deprecationMessage":"Field 'kube_config' has been deprecated from provider version 1.187.0. Please use the attribute 'output_file' of new DataSource 'alicloud_cs_cluster_credential' to replace it."},"loadBalancerSpec":{"type":"string","description":"The cluster api server load balance instance specification, default `slb.s2.small`. For more information on how to select a LB instance specification, see [SLB instance overview](https://help.aliyun.com/document_detail/85931.html). Only works for **Create** Operation.\n","deprecationMessage":"Field 'load_balancer_spec' has been deprecated from provider version 1.229.1. The load balancer has been changed to PayByCLCU so that the spec is no need anymore."},"loggingType":{"type":"string","description":"Enable log service, Valid value `SLS`. Only works for **Create** Operation.\n","deprecationMessage":"Field 'logging_type' has been deprecated from provider version 1.229.1. Please use addons `alibaba-log-controller` to enable logging."},"maintenanceWindow":{"$ref":"#/types/alicloud:cs/ServerlessKubernetesMaintenanceWindow:ServerlessKubernetesMaintenanceWindow","description":"The cluster maintenance window，effective only in the professional managed cluster. Managed node pool will use it. See \u003cspan pulumi-lang-nodejs=\"`maintenanceWindow`\" pulumi-lang-dotnet=\"`MaintenanceWindow`\" pulumi-lang-go=\"`maintenanceWindow`\" pulumi-lang-python=\"`maintenance_window`\" pulumi-lang-yaml=\"`maintenanceWindow`\" pulumi-lang-java=\"`maintenanceWindow`\"\u003e`maintenance_window`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The kubernetes cluster's name. It is the only in one Alicloud account.\n"},"namePrefix":{"type":"string","description":"The kubernetes cluster name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e. If it is specified, terraform will using it to build the only cluster name. Default to \"Terraform-Creation\".\n"},"newNatGateway":{"type":"boolean","description":"Whether to create a new nat gateway while creating kubernetes cluster. SNAT must be configured when a new VPC is automatically created. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"operationPolicy":{"$ref":"#/types/alicloud:cs/ServerlessKubernetesOperationPolicy:ServerlessKubernetesOperationPolicy","description":"The cluster automatic operation policy. See \u003cspan pulumi-lang-nodejs=\"`operationPolicy`\" pulumi-lang-dotnet=\"`OperationPolicy`\" pulumi-lang-go=\"`operationPolicy`\" pulumi-lang-python=\"`operation_policy`\" pulumi-lang-yaml=\"`operationPolicy`\" pulumi-lang-java=\"`operationPolicy`\"\u003e`operation_policy`\u003c/span\u003e below.\n\n*Removed params*\n"},"privateZone":{"type":"boolean","description":"Has been deprecated from provider version 1.123.1. `PrivateZone` is used as the enumeration value of \u003cspan pulumi-lang-nodejs=\"`serviceDiscoveryTypes`\" pulumi-lang-dotnet=\"`ServiceDiscoveryTypes`\" pulumi-lang-go=\"`serviceDiscoveryTypes`\" pulumi-lang-python=\"`service_discovery_types`\" pulumi-lang-yaml=\"`serviceDiscoveryTypes`\" pulumi-lang-java=\"`serviceDiscoveryTypes`\"\u003e`service_discovery_types`\u003c/span\u003e.\n","deprecationMessage":"Field 'private_zone' has been deprecated from provider version 1.123.1. New field 'service_discovery_types' replace it."},"resourceGroupId":{"type":"string","description":"The ID of the resource group,by default these cloud resources are automatically assigned to the default resource group.\n"},"retainResources":{"type":"array","items":{"type":"string"},"description":"Resources that are automatically created during cluster creation, including NAT gateways, SNAT rules, SLB instances, and RAM Role, will be deleted. Resources that are manually created after you create the cluster, such as SLB instances for Services, will also be deleted. If you need to retain resources, please configure with \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e. There are several aspects to pay attention to when using \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e to retain resources. After configuring \u003cspan pulumi-lang-nodejs=\"`retainResources`\" pulumi-lang-dotnet=\"`RetainResources`\" pulumi-lang-go=\"`retainResources`\" pulumi-lang-python=\"`retain_resources`\" pulumi-lang-yaml=\"`retainResources`\" pulumi-lang-java=\"`retainResources`\"\u003e`retain_resources`\u003c/span\u003e into the terraform configuration manifest file, you first need to run `pulumi up`.Then execute `terraform destroy`.\n"},"rrsaMetadata":{"$ref":"#/types/alicloud:cs/ServerlessKubernetesRrsaMetadata:ServerlessKubernetesRrsaMetadata","description":"Nested attribute containing RRSA related data for your cluster.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group to which the ECS instances in the cluster belong. If it is not specified, a new Security group will be built.\n","willReplaceOnChanges":true},"serviceCidr":{"type":"string","description":"CIDR block of the service network. The specified CIDR block cannot overlap with that of the VPC or those of the ACK clusters that are deployed in the VPC. The CIDR block cannot be modified after the cluster is created.\n","willReplaceOnChanges":true},"serviceDiscoveryTypes":{"type":"array","items":{"type":"string"},"description":"Service discovery type. Only works for **Create** Operation. If the value is empty, it means that service discovery is not enabled. Valid values are `CoreDNS` and `PrivateZone`.\n"},"slsProjectName":{"type":"string","description":"If you use an existing SLS project, you must specify \u003cspan pulumi-lang-nodejs=\"`slsProjectName`\" pulumi-lang-dotnet=\"`SlsProjectName`\" pulumi-lang-go=\"`slsProjectName`\" pulumi-lang-python=\"`sls_project_name`\" pulumi-lang-yaml=\"`slsProjectName`\" pulumi-lang-java=\"`slsProjectName`\"\u003e`sls_project_name`\u003c/span\u003e. Only works for **Create** Operation.\n","deprecationMessage":"Field 'sls_project_name' has been deprecated from provider version 1.229.1. Please use the field \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e of addons `alibaba-log-controller` to specify log project name."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Default nil, A map of tags assigned to the kubernetes cluster and work nodes.\n"},"timeZone":{"type":"string","description":"The time zone of the cluster.\n"},"version":{"type":"string","description":"Desired Kubernetes version. If you do not specify a value, the latest available version at resource creation is used.  Do not specify if cluster auto upgrade is enabled, see\u003cspan pulumi-lang-nodejs=\" clusterAutoUpgrade \" pulumi-lang-dotnet=\" ClusterAutoUpgrade \" pulumi-lang-go=\" clusterAutoUpgrade \" pulumi-lang-python=\" cluster_auto_upgrade \" pulumi-lang-yaml=\" clusterAutoUpgrade \" pulumi-lang-java=\" clusterAutoUpgrade \"\u003e cluster_auto_upgrade \u003c/span\u003efor more information.\n"},"vpcId":{"type":"string","description":"The vpc where new kubernetes cluster will be located. Specify one vpc's id, if it is not specified, a new VPC will be built.\n","willReplaceOnChanges":true},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vswitches where new kubernetes cluster will be located.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"When creating a cluster using automatic VPC creation, you need to specify the zone where the VPC is located. Only works for **Create** Operation.\n"}},"type":"object"}},"alicloud:cs/swarm:Swarm":{"properties":{"agentVersion":{"type":"string"},"cidrBlock":{"type":"string"},"diskCategory":{"type":"string"},"diskSize":{"type":"integer"},"imageId":{"type":"string"},"instanceType":{"type":"string"},"isOutdated":{"type":"boolean"},"name":{"type":"string"},"namePrefix":{"type":"string"},"needSlb":{"type":"boolean"},"nodeNumber":{"type":"integer"},"nodes":{"type":"array","items":{"$ref":"#/types/alicloud:cs/SwarmNode:SwarmNode"}},"password":{"type":"string","secret":true},"releaseEip":{"type":"boolean"},"securityGroupId":{"type":"string"},"size":{"type":"integer","deprecationMessage":"Field 'size' has been deprecated from provider version 1.9.1. New field 'node_number' replaces it."},"slbId":{"type":"string"},"vpcId":{"type":"string"},"vswitchId":{"type":"string"}},"required":["agentVersion","cidrBlock","instanceType","name","nodes","password","securityGroupId","slbId","vpcId","vswitchId"],"inputProperties":{"cidrBlock":{"type":"string","willReplaceOnChanges":true},"diskCategory":{"type":"string","willReplaceOnChanges":true},"diskSize":{"type":"integer","willReplaceOnChanges":true},"imageId":{"type":"string","willReplaceOnChanges":true},"instanceType":{"type":"string","willReplaceOnChanges":true},"isOutdated":{"type":"boolean"},"name":{"type":"string"},"namePrefix":{"type":"string"},"needSlb":{"type":"boolean","willReplaceOnChanges":true},"nodeNumber":{"type":"integer"},"password":{"type":"string","secret":true,"willReplaceOnChanges":true},"releaseEip":{"type":"boolean"},"size":{"type":"integer","deprecationMessage":"Field 'size' has been deprecated from provider version 1.9.1. New field 'node_number' replaces it."},"vswitchId":{"type":"string","willReplaceOnChanges":true}},"requiredInputs":["cidrBlock","instanceType","password","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering Swarm resources.\n","properties":{"agentVersion":{"type":"string"},"cidrBlock":{"type":"string","willReplaceOnChanges":true},"diskCategory":{"type":"string","willReplaceOnChanges":true},"diskSize":{"type":"integer","willReplaceOnChanges":true},"imageId":{"type":"string","willReplaceOnChanges":true},"instanceType":{"type":"string","willReplaceOnChanges":true},"isOutdated":{"type":"boolean"},"name":{"type":"string"},"namePrefix":{"type":"string"},"needSlb":{"type":"boolean","willReplaceOnChanges":true},"nodeNumber":{"type":"integer"},"nodes":{"type":"array","items":{"$ref":"#/types/alicloud:cs/SwarmNode:SwarmNode"}},"password":{"type":"string","secret":true,"willReplaceOnChanges":true},"releaseEip":{"type":"boolean"},"securityGroupId":{"type":"string"},"size":{"type":"integer","deprecationMessage":"Field 'size' has been deprecated from provider version 1.9.1. New field 'node_number' replaces it."},"slbId":{"type":"string"},"vpcId":{"type":"string"},"vswitchId":{"type":"string","willReplaceOnChanges":true}},"type":"object"}},"alicloud:das/switchDasPro:SwitchDasPro":{"description":"Provides a DAS Switch Das Pro resource.\n\nFor information about DAS Switch Das Pro and how to use it, see [What is Switch Das Pro](https://www.alibabacloud.com/help/en/database-autonomy-service/latest/enabledaspro).\n\n\u003e **NOTE:** Deprecated since v1.249.0.\n\n\u003e **DEPRECATED:**  This resource has been deprecated from version `1.249.0`.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst _default = alicloud.getAccount({});\nconst defaultGetNodeClasses = alicloud.polardb.getNodeClasses({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: defaultGetNodeClasses.then(defaultGetNodeClasses =\u003e defaultGetNodeClasses.classes?.[0]?.zoneId),\n    vswitchName: name,\n});\nconst defaultCluster = new alicloud.polardb.Cluster(\"default\", {\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    dbNodeClass: \"polar.mysql.x4.large\",\n    payType: \"PostPaid\",\n    vswitchId: defaultSwitch.id,\n    description: name,\n    dbClusterIpArrays: [{\n        dbClusterIpArrayName: \"default\",\n        securityIps: [\n            \"1.2.3.4\",\n            \"1.2.3.5\",\n        ],\n    }],\n});\nconst defaultSwitchDasPro = new alicloud.das.SwitchDasPro(\"default\", {\n    instanceId: defaultCluster.id,\n    sqlRetention: 30,\n    userId: _default.then(_default =\u003e _default.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\ndefault = alicloud.get_account()\ndefault_get_node_classes = alicloud.polardb.get_node_classes(db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default_get_node_classes.classes[0].zone_id,\n    vswitch_name=name)\ndefault_cluster = alicloud.polardb.Cluster(\"default\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    db_node_class=\"polar.mysql.x4.large\",\n    pay_type=\"PostPaid\",\n    vswitch_id=default_switch.id,\n    description=name,\n    db_cluster_ip_arrays=[{\n        \"db_cluster_ip_array_name\": \"default\",\n        \"security_ips\": [\n            \"1.2.3.4\",\n            \"1.2.3.5\",\n        ],\n    }])\ndefault_switch_das_pro = alicloud.das.SwitchDasPro(\"default\",\n    instance_id=default_cluster.id,\n    sql_retention=30,\n    user_id=default.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultGetNodeClasses = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = defaultGetNodeClasses.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId),\n        VswitchName = name,\n    });\n\n    var defaultCluster = new AliCloud.PolarDB.Cluster(\"default\", new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        DbNodeClass = \"polar.mysql.x4.large\",\n        PayType = \"PostPaid\",\n        VswitchId = defaultSwitch.Id,\n        Description = name,\n        DbClusterIpArrays = new[]\n        {\n            new AliCloud.PolarDB.Inputs.ClusterDbClusterIpArrayArgs\n            {\n                DbClusterIpArrayName = \"default\",\n                SecurityIps = new[]\n                {\n                    \"1.2.3.4\",\n                    \"1.2.3.5\",\n                },\n            },\n        },\n    });\n\n    var defaultSwitchDasPro = new AliCloud.Das.SwitchDasPro(\"default\", new()\n    {\n        InstanceId = defaultCluster.Id,\n        SqlRetention = 30,\n        UserId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/das\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNodeClasses, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\n\t\t\tDbType:    pulumi.StringRef(\"MySQL\"),\n\t\t\tDbVersion: pulumi.StringRef(\"8.0\"),\n\t\t\tPayType:   \"PostPaid\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(defaultGetNodeClasses.Classes[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := polardb.NewCluster(ctx, \"default\", \u0026polardb.ClusterArgs{\n\t\t\tDbType:      pulumi.String(\"MySQL\"),\n\t\t\tDbVersion:   pulumi.String(\"8.0\"),\n\t\t\tDbNodeClass: pulumi.String(\"polar.mysql.x4.large\"),\n\t\t\tPayType:     pulumi.String(\"PostPaid\"),\n\t\t\tVswitchId:   defaultSwitch.ID(),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tDbClusterIpArrays: polardb.ClusterDbClusterIpArrayArray{\n\t\t\t\t\u0026polardb.ClusterDbClusterIpArrayArgs{\n\t\t\t\t\tDbClusterIpArrayName: pulumi.String(\"default\"),\n\t\t\t\t\tSecurityIps: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"1.2.3.4\"),\n\t\t\t\t\t\tpulumi.String(\"1.2.3.5\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = das.NewSwitchDasPro(ctx, \"default\", \u0026das.SwitchDasProArgs{\n\t\t\tInstanceId:   defaultCluster.ID(),\n\t\t\tSqlRetention: pulumi.Int(30),\n\t\t\tUserId:       pulumi.String(_default.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.inputs.ClusterDbClusterIpArrayArgs;\nimport com.pulumi.alicloud.das.SwitchDasPro;\nimport com.pulumi.alicloud.das.SwitchDasProArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var defaultGetNodeClasses = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(defaultGetNodeClasses.classes()[0].zoneId())\n            .vswitchName(name)\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .dbNodeClass(\"polar.mysql.x4.large\")\n            .payType(\"PostPaid\")\n            .vswitchId(defaultSwitch.id())\n            .description(name)\n            .dbClusterIpArrays(ClusterDbClusterIpArrayArgs.builder()\n                .dbClusterIpArrayName(\"default\")\n                .securityIps(                \n                    \"1.2.3.4\",\n                    \"1.2.3.5\")\n                .build())\n            .build());\n\n        var defaultSwitchDasPro = new SwitchDasPro(\"defaultSwitchDasPro\", SwitchDasProArgs.builder()\n            .instanceId(defaultCluster.id())\n            .sqlRetention(30)\n            .userId(default_.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${defaultGetNodeClasses.classes[0].zoneId}\n      vswitchName: ${name}\n  defaultCluster:\n    type: alicloud:polardb:Cluster\n    name: default\n    properties:\n      dbType: MySQL\n      dbVersion: '8.0'\n      dbNodeClass: polar.mysql.x4.large\n      payType: PostPaid\n      vswitchId: ${defaultSwitch.id}\n      description: ${name}\n      dbClusterIpArrays:\n        - dbClusterIpArrayName: default\n          securityIps:\n            - 1.2.3.4\n            - 1.2.3.5\n  defaultSwitchDasPro:\n    type: alicloud:das:SwitchDasPro\n    name: default\n    properties:\n      instanceId: ${defaultCluster.id}\n      sqlRetention: 30\n      userId: ${default.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  defaultGetNodeClasses:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n        payType: PostPaid\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDAS Switch Das Pro can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:das/switchDasPro:SwitchDasPro example \u003cid\u003e\n```\n\n","properties":{"instanceId":{"type":"string","description":"The ID of the database instance.\n"},"sqlRetention":{"type":"integer","description":"The storage duration of SQL Explorer data. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1095`\" pulumi-lang-dotnet=\"`1095`\" pulumi-lang-go=\"`1095`\" pulumi-lang-python=\"`1095`\" pulumi-lang-yaml=\"`1095`\" pulumi-lang-java=\"`1095`\"\u003e`1095`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1825`\" pulumi-lang-dotnet=\"`1825`\" pulumi-lang-go=\"`1825`\" pulumi-lang-python=\"`1825`\" pulumi-lang-yaml=\"`1825`\" pulumi-lang-java=\"`1825`\"\u003e`1825`\u003c/span\u003e. Unit: days. Default value: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n"},"status":{"type":"boolean","description":"Whether the database instance has DAS professional.\n"},"userId":{"type":"string","description":"The ID of the Alibaba Cloud account that is used to create the database instance.\n"}},"required":["instanceId","sqlRetention","status","userId"],"inputProperties":{"instanceId":{"type":"string","description":"The ID of the database instance.\n","willReplaceOnChanges":true},"sqlRetention":{"type":"integer","description":"The storage duration of SQL Explorer data. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1095`\" pulumi-lang-dotnet=\"`1095`\" pulumi-lang-go=\"`1095`\" pulumi-lang-python=\"`1095`\" pulumi-lang-yaml=\"`1095`\" pulumi-lang-java=\"`1095`\"\u003e`1095`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1825`\" pulumi-lang-dotnet=\"`1825`\" pulumi-lang-go=\"`1825`\" pulumi-lang-python=\"`1825`\" pulumi-lang-yaml=\"`1825`\" pulumi-lang-java=\"`1825`\"\u003e`1825`\u003c/span\u003e. Unit: days. Default value: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of the Alibaba Cloud account that is used to create the database instance.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering SwitchDasPro resources.\n","properties":{"instanceId":{"type":"string","description":"The ID of the database instance.\n","willReplaceOnChanges":true},"sqlRetention":{"type":"integer","description":"The storage duration of SQL Explorer data. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1095`\" pulumi-lang-dotnet=\"`1095`\" pulumi-lang-go=\"`1095`\" pulumi-lang-python=\"`1095`\" pulumi-lang-yaml=\"`1095`\" pulumi-lang-java=\"`1095`\"\u003e`1095`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1825`\" pulumi-lang-dotnet=\"`1825`\" pulumi-lang-go=\"`1825`\" pulumi-lang-python=\"`1825`\" pulumi-lang-yaml=\"`1825`\" pulumi-lang-java=\"`1825`\"\u003e`1825`\u003c/span\u003e. Unit: days. Default value: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n","willReplaceOnChanges":true},"status":{"type":"boolean","description":"Whether the database instance has DAS professional.\n"},"userId":{"type":"string","description":"The ID of the Alibaba Cloud account that is used to create the database instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:databasefilesystem/autoSnapShotPolicy:AutoSnapShotPolicy":{"description":"Provides a Dbfs Auto Snap Shot Policy resource.\n\nFor information about Dbfs Auto Snap Shot Policy and how to use it.\n\n\u003e **NOTE:** Available since v1.202.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.databasefilesystem.AutoSnapShotPolicy(\"default\", {\n    timePoints: [\"01\"],\n    policyName: \"tf-example\",\n    retentionDays: 1,\n    repeatWeekdays: [\"2\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.databasefilesystem.AutoSnapShotPolicy(\"default\",\n    time_points=[\"01\"],\n    policy_name=\"tf-example\",\n    retention_days=1,\n    repeat_weekdays=[\"2\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.DatabaseFilesystem.AutoSnapShotPolicy(\"default\", new()\n    {\n        TimePoints = new[]\n        {\n            \"01\",\n        },\n        PolicyName = \"tf-example\",\n        RetentionDays = 1,\n        RepeatWeekdays = new[]\n        {\n            \"2\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/databasefilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := databasefilesystem.NewAutoSnapShotPolicy(ctx, \"default\", \u0026databasefilesystem.AutoSnapShotPolicyArgs{\n\t\t\tTimePoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"01\"),\n\t\t\t},\n\t\t\tPolicyName:    pulumi.String(\"tf-example\"),\n\t\t\tRetentionDays: pulumi.Int(1),\n\t\t\tRepeatWeekdays: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.databasefilesystem.AutoSnapShotPolicy;\nimport com.pulumi.alicloud.databasefilesystem.AutoSnapShotPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new AutoSnapShotPolicy(\"default\", AutoSnapShotPolicyArgs.builder()\n            .timePoints(\"01\")\n            .policyName(\"tf-example\")\n            .retentionDays(1)\n            .repeatWeekdays(\"2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:databasefilesystem:AutoSnapShotPolicy\n    properties:\n      timePoints:\n        - '01'\n      policyName: tf-example\n      retentionDays: 1\n      repeatWeekdays:\n        - '2'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDbfs Auto Snap Shot Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:databasefilesystem/autoSnapShotPolicy:AutoSnapShotPolicy example \u003cid\u003e\n```\n\n","properties":{"appliedDbfsNumber":{"type":"integer","description":"The number of database file systems set by the automatic snapshot policy.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"lastModified":{"type":"string","description":"Last modification time of automatic snapshot policy\n"},"policyId":{"type":"string","description":"Automatic snapshot policy ID\n"},"policyName":{"type":"string","description":"Automatic snapshot policy name\n"},"repeatWeekdays":{"type":"array","items":{"type":"string"},"description":"A collection of automatic snapshots performed on several days of the week. Value range: 1~7, for example, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means Monday.\n"},"retentionDays":{"type":"integer","description":"Automatic snapshot retention days.\n"},"status":{"type":"string","description":"Automatic snapshot policy status\n"},"statusDetail":{"type":"string","description":"Automatic snapshot policy status details\n"},"timePoints":{"type":"array","items":{"type":"string"},"description":"The set of times at which the snapshot is taken on the day the automatic snapshot is executed. Value range: \u003cspan pulumi-lang-nodejs=\"`00`\" pulumi-lang-dotnet=\"`00`\" pulumi-lang-go=\"`00`\" pulumi-lang-python=\"`00`\" pulumi-lang-yaml=\"`00`\" pulumi-lang-java=\"`00`\"\u003e`00`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e, representing 24 time points from 00:00 to 23:00, for example, \u003cspan pulumi-lang-nodejs=\"`01`\" pulumi-lang-dotnet=\"`01`\" pulumi-lang-go=\"`01`\" pulumi-lang-python=\"`01`\" pulumi-lang-yaml=\"`01`\" pulumi-lang-java=\"`01`\"\u003e`01`\u003c/span\u003e indicates 01:00.\n"}},"required":["appliedDbfsNumber","createTime","lastModified","policyId","policyName","repeatWeekdays","retentionDays","status","statusDetail","timePoints"],"inputProperties":{"policyName":{"type":"string","description":"Automatic snapshot policy name\n"},"repeatWeekdays":{"type":"array","items":{"type":"string"},"description":"A collection of automatic snapshots performed on several days of the week. Value range: 1~7, for example, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means Monday.\n"},"retentionDays":{"type":"integer","description":"Automatic snapshot retention days.\n"},"timePoints":{"type":"array","items":{"type":"string"},"description":"The set of times at which the snapshot is taken on the day the automatic snapshot is executed. Value range: \u003cspan pulumi-lang-nodejs=\"`00`\" pulumi-lang-dotnet=\"`00`\" pulumi-lang-go=\"`00`\" pulumi-lang-python=\"`00`\" pulumi-lang-yaml=\"`00`\" pulumi-lang-java=\"`00`\"\u003e`00`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e, representing 24 time points from 00:00 to 23:00, for example, \u003cspan pulumi-lang-nodejs=\"`01`\" pulumi-lang-dotnet=\"`01`\" pulumi-lang-go=\"`01`\" pulumi-lang-python=\"`01`\" pulumi-lang-yaml=\"`01`\" pulumi-lang-java=\"`01`\"\u003e`01`\u003c/span\u003e indicates 01:00.\n"}},"requiredInputs":["policyName","repeatWeekdays","retentionDays","timePoints"],"stateInputs":{"description":"Input properties used for looking up and filtering AutoSnapShotPolicy resources.\n","properties":{"appliedDbfsNumber":{"type":"integer","description":"The number of database file systems set by the automatic snapshot policy.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"lastModified":{"type":"string","description":"Last modification time of automatic snapshot policy\n"},"policyId":{"type":"string","description":"Automatic snapshot policy ID\n"},"policyName":{"type":"string","description":"Automatic snapshot policy name\n"},"repeatWeekdays":{"type":"array","items":{"type":"string"},"description":"A collection of automatic snapshots performed on several days of the week. Value range: 1~7, for example, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means Monday.\n"},"retentionDays":{"type":"integer","description":"Automatic snapshot retention days.\n"},"status":{"type":"string","description":"Automatic snapshot policy status\n"},"statusDetail":{"type":"string","description":"Automatic snapshot policy status details\n"},"timePoints":{"type":"array","items":{"type":"string"},"description":"The set of times at which the snapshot is taken on the day the automatic snapshot is executed. Value range: \u003cspan pulumi-lang-nodejs=\"`00`\" pulumi-lang-dotnet=\"`00`\" pulumi-lang-go=\"`00`\" pulumi-lang-python=\"`00`\" pulumi-lang-yaml=\"`00`\" pulumi-lang-java=\"`00`\"\u003e`00`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e, representing 24 time points from 00:00 to 23:00, for example, \u003cspan pulumi-lang-nodejs=\"`01`\" pulumi-lang-dotnet=\"`01`\" pulumi-lang-go=\"`01`\" pulumi-lang-python=\"`01`\" pulumi-lang-yaml=\"`01`\" pulumi-lang-java=\"`01`\"\u003e`01`\u003c/span\u003e indicates 01:00.\n"}},"type":"object"}},"alicloud:databasefilesystem/instance:Instance":{"description":"Provides a DBFS Dbfs Instance resource. An instance of a database file system is equivalent to a file system and can store data of file types.\n\nFor information about DBFS Dbfs Instance and how to use it, see [What is Dbfs Instance](https://next.api.alibabacloud.com/document/DBFS/2020-04-18/CreateDbfs).\n\n\u003e **NOTE:** Need to contact us open whitelist before you can use the resource.\n\n\u003e **NOTE:** Available since v1.136.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = new alicloud.databasefilesystem.Instance(\"example\", {\n    category: \"standard\",\n    zoneId: \"cn-hangzhou-i\",\n    performanceLevel: \"PL1\",\n    fsName: name,\n    size: 100,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.databasefilesystem.Instance(\"example\",\n    category=\"standard\",\n    zone_id=\"cn-hangzhou-i\",\n    performance_level=\"PL1\",\n    fs_name=name,\n    size=100)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = new AliCloud.DatabaseFilesystem.Instance(\"example\", new()\n    {\n        Category = \"standard\",\n        ZoneId = \"cn-hangzhou-i\",\n        PerformanceLevel = \"PL1\",\n        FsName = name,\n        Size = 100,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/databasefilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := databasefilesystem.NewInstance(ctx, \"example\", \u0026databasefilesystem.InstanceArgs{\n\t\t\tCategory:         pulumi.String(\"standard\"),\n\t\t\tZoneId:           pulumi.String(\"cn-hangzhou-i\"),\n\t\t\tPerformanceLevel: pulumi.String(\"PL1\"),\n\t\t\tFsName:           pulumi.String(name),\n\t\t\tSize:             pulumi.Int(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.databasefilesystem.Instance;\nimport com.pulumi.alicloud.databasefilesystem.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var example = new Instance(\"example\", InstanceArgs.builder()\n            .category(\"standard\")\n            .zoneId(\"cn-hangzhou-i\")\n            .performanceLevel(\"PL1\")\n            .fsName(name)\n            .size(100)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  example:\n    type: alicloud:databasefilesystem:Instance\n    properties:\n      category: standard\n      zoneId: cn-hangzhou-i\n      performanceLevel: PL1\n      fsName: ${name}\n      size: 100\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDBFS Dbfs Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:databasefilesystem/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"advancedFeatures":{"type":"string","description":"The number of CPU cores and the upper limit of memory used by the database file storage instance.\n"},"category":{"type":"string","description":"Category of database file system.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"deleteSnapshot":{"type":"boolean","description":"Whether to delete the original snapshot after creating DBFS using the snapshot.\n"},"ecsLists":{"type":"array","items":{"$ref":"#/types/alicloud:databasefilesystem/InstanceEcsList:InstanceEcsList"},"description":"The collection of ECS instances mounted to the Database file system. See \u003cspan pulumi-lang-nodejs=\"`ecsList`\" pulumi-lang-dotnet=\"`EcsList`\" pulumi-lang-go=\"`ecsList`\" pulumi-lang-python=\"`ecs_list`\" pulumi-lang-yaml=\"`ecsList`\" pulumi-lang-java=\"`ecsList`\"\u003e`ecs_list`\u003c/span\u003e below.  **NOTE:** Field 'ecs_list' has been deprecated from provider version 1.156.0 and it will be removed in the future version. Please use the new resource 'alicloud_dbfs_instance_attachment' to attach ECS and DBFS. See \u003cspan pulumi-lang-nodejs=\"`ecsList`\" pulumi-lang-dotnet=\"`EcsList`\" pulumi-lang-go=\"`ecsList`\" pulumi-lang-python=\"`ecs_list`\" pulumi-lang-yaml=\"`ecsList`\" pulumi-lang-java=\"`ecsList`\"\u003e`ecs_list`\u003c/span\u003e below.\n","deprecationMessage":"Field 'ecs_list' has been deprecated from provider version 1.156.0 and it will be removed in the future version. Please use the new resource 'alicloud_dbfs_instance_attachment' to attach ECS and DBFS."},"enableRaid":{"type":"boolean","description":"Whether to create DBFS in RAID mode. If created in RAID mode, the capacity is at least 66GB.Valid values: true or false. Default value: false.\n"},"encryption":{"type":"boolean","description":"Whether to encrypt DBFS.Valid values: true or false. Default value: false.\n"},"fsName":{"type":"string","description":"Database file system name.\n"},"instanceName":{"type":"string","description":". Field 'instance_name' has been deprecated from provider version 1.212.0. New field 'fs_name' instead.\n","deprecationMessage":"Field 'instance_name' has been deprecated since provider version 1.212.0. New field 'fs_name' instead."},"instanceType":{"type":"string","description":"Instance type. Value range:\n- dbfs.small\n- dbfs.medium\n- dbfs.large (default)\n"},"kmsKeyId":{"type":"string","description":"The ID of the KMS key used by DBFS.\n"},"performanceLevel":{"type":"string","description":"When you create a DBFS instance, set the performance level of the DBFS instance. Value range:\n- PL0: single disk maximum random read-write IOPS 10000\n- PL1: highest random read-write IOPS 50000 per disk (default)\n- PL2: single disk maximum random read-write IOPS 100000\n- PL3: single disk maximum random read-write IOPS 1 million.\n"},"raidStripeUnitNumber":{"type":"integer","description":"Number of strips. Required when the EnableRaid parameter is true.Value range: Currently, only 8 stripes are supported.\n"},"size":{"type":"integer","description":"Size of database file system, unit GiB.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot used to create the DBFS instance.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"},"usedScene":{"type":"string","description":"The usage scenario of DBFS. Value range:\n- MySQL 5.7\n- PostgreSQL\n- MongoDB.\n"},"zoneId":{"type":"string","description":"The ID of the zone to which the database file system belongs.\n"}},"required":["advancedFeatures","category","createTime","fsName","instanceName","performanceLevel","size","snapshotId","status","zoneId"],"inputProperties":{"advancedFeatures":{"type":"string","description":"The number of CPU cores and the upper limit of memory used by the database file storage instance.\n"},"category":{"type":"string","description":"Category of database file system.\n","willReplaceOnChanges":true},"deleteSnapshot":{"type":"boolean","description":"Whether to delete the original snapshot after creating DBFS using the snapshot.\n"},"ecsLists":{"type":"array","items":{"$ref":"#/types/alicloud:databasefilesystem/InstanceEcsList:InstanceEcsList"},"description":"The collection of ECS instances mounted to the Database file system. See \u003cspan pulumi-lang-nodejs=\"`ecsList`\" pulumi-lang-dotnet=\"`EcsList`\" pulumi-lang-go=\"`ecsList`\" pulumi-lang-python=\"`ecs_list`\" pulumi-lang-yaml=\"`ecsList`\" pulumi-lang-java=\"`ecsList`\"\u003e`ecs_list`\u003c/span\u003e below.  **NOTE:** Field 'ecs_list' has been deprecated from provider version 1.156.0 and it will be removed in the future version. Please use the new resource 'alicloud_dbfs_instance_attachment' to attach ECS and DBFS. See \u003cspan pulumi-lang-nodejs=\"`ecsList`\" pulumi-lang-dotnet=\"`EcsList`\" pulumi-lang-go=\"`ecsList`\" pulumi-lang-python=\"`ecs_list`\" pulumi-lang-yaml=\"`ecsList`\" pulumi-lang-java=\"`ecsList`\"\u003e`ecs_list`\u003c/span\u003e below.\n","deprecationMessage":"Field 'ecs_list' has been deprecated from provider version 1.156.0 and it will be removed in the future version. Please use the new resource 'alicloud_dbfs_instance_attachment' to attach ECS and DBFS."},"enableRaid":{"type":"boolean","description":"Whether to create DBFS in RAID mode. If created in RAID mode, the capacity is at least 66GB.Valid values: true or false. Default value: false.\n","willReplaceOnChanges":true},"encryption":{"type":"boolean","description":"Whether to encrypt DBFS.Valid values: true or false. Default value: false.\n","willReplaceOnChanges":true},"fsName":{"type":"string","description":"Database file system name.\n"},"instanceName":{"type":"string","description":". Field 'instance_name' has been deprecated from provider version 1.212.0. New field 'fs_name' instead.\n","deprecationMessage":"Field 'instance_name' has been deprecated since provider version 1.212.0. New field 'fs_name' instead."},"instanceType":{"type":"string","description":"Instance type. Value range:\n- dbfs.small\n- dbfs.medium\n- dbfs.large (default)\n"},"kmsKeyId":{"type":"string","description":"The ID of the KMS key used by DBFS.\n","willReplaceOnChanges":true},"performanceLevel":{"type":"string","description":"When you create a DBFS instance, set the performance level of the DBFS instance. Value range:\n- PL0: single disk maximum random read-write IOPS 10000\n- PL1: highest random read-write IOPS 50000 per disk (default)\n- PL2: single disk maximum random read-write IOPS 100000\n- PL3: single disk maximum random read-write IOPS 1 million.\n"},"raidStripeUnitNumber":{"type":"integer","description":"Number of strips. Required when the EnableRaid parameter is true.Value range: Currently, only 8 stripes are supported.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"Size of database file system, unit GiB.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot used to create the DBFS instance.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"},"usedScene":{"type":"string","description":"The usage scenario of DBFS. Value range:\n- MySQL 5.7\n- PostgreSQL\n- MongoDB.\n"},"zoneId":{"type":"string","description":"The ID of the zone to which the database file system belongs.\n","willReplaceOnChanges":true}},"requiredInputs":["category","size","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"advancedFeatures":{"type":"string","description":"The number of CPU cores and the upper limit of memory used by the database file storage instance.\n"},"category":{"type":"string","description":"Category of database file system.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"deleteSnapshot":{"type":"boolean","description":"Whether to delete the original snapshot after creating DBFS using the snapshot.\n"},"ecsLists":{"type":"array","items":{"$ref":"#/types/alicloud:databasefilesystem/InstanceEcsList:InstanceEcsList"},"description":"The collection of ECS instances mounted to the Database file system. See \u003cspan pulumi-lang-nodejs=\"`ecsList`\" pulumi-lang-dotnet=\"`EcsList`\" pulumi-lang-go=\"`ecsList`\" pulumi-lang-python=\"`ecs_list`\" pulumi-lang-yaml=\"`ecsList`\" pulumi-lang-java=\"`ecsList`\"\u003e`ecs_list`\u003c/span\u003e below.  **NOTE:** Field 'ecs_list' has been deprecated from provider version 1.156.0 and it will be removed in the future version. Please use the new resource 'alicloud_dbfs_instance_attachment' to attach ECS and DBFS. See \u003cspan pulumi-lang-nodejs=\"`ecsList`\" pulumi-lang-dotnet=\"`EcsList`\" pulumi-lang-go=\"`ecsList`\" pulumi-lang-python=\"`ecs_list`\" pulumi-lang-yaml=\"`ecsList`\" pulumi-lang-java=\"`ecsList`\"\u003e`ecs_list`\u003c/span\u003e below.\n","deprecationMessage":"Field 'ecs_list' has been deprecated from provider version 1.156.0 and it will be removed in the future version. Please use the new resource 'alicloud_dbfs_instance_attachment' to attach ECS and DBFS."},"enableRaid":{"type":"boolean","description":"Whether to create DBFS in RAID mode. If created in RAID mode, the capacity is at least 66GB.Valid values: true or false. Default value: false.\n","willReplaceOnChanges":true},"encryption":{"type":"boolean","description":"Whether to encrypt DBFS.Valid values: true or false. Default value: false.\n","willReplaceOnChanges":true},"fsName":{"type":"string","description":"Database file system name.\n"},"instanceName":{"type":"string","description":". Field 'instance_name' has been deprecated from provider version 1.212.0. New field 'fs_name' instead.\n","deprecationMessage":"Field 'instance_name' has been deprecated since provider version 1.212.0. New field 'fs_name' instead."},"instanceType":{"type":"string","description":"Instance type. Value range:\n- dbfs.small\n- dbfs.medium\n- dbfs.large (default)\n"},"kmsKeyId":{"type":"string","description":"The ID of the KMS key used by DBFS.\n","willReplaceOnChanges":true},"performanceLevel":{"type":"string","description":"When you create a DBFS instance, set the performance level of the DBFS instance. Value range:\n- PL0: single disk maximum random read-write IOPS 10000\n- PL1: highest random read-write IOPS 50000 per disk (default)\n- PL2: single disk maximum random read-write IOPS 100000\n- PL3: single disk maximum random read-write IOPS 1 million.\n"},"raidStripeUnitNumber":{"type":"integer","description":"Number of strips. Required when the EnableRaid parameter is true.Value range: Currently, only 8 stripes are supported.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"Size of database file system, unit GiB.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot used to create the DBFS instance.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"},"usedScene":{"type":"string","description":"The usage scenario of DBFS. Value range:\n- MySQL 5.7\n- PostgreSQL\n- MongoDB.\n"},"zoneId":{"type":"string","description":"The ID of the zone to which the database file system belongs.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:databasefilesystem/instanceAttachment:InstanceAttachment":{"description":"Provides a Database File System (DBFS) Instance Attachment resource.\n\nFor information about Database File System (DBFS) Instance Attachment and how to use it, see [What is Snapshot](https://help.aliyun.com/zh/dbfs/developer-reference/api-dbfs-2020-04-18-attachdbfs).\n\n\u003e **NOTE:** Available since v1.156.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst zoneId = \"cn-hangzhou-i\";\nconst _default = alicloud.databasefilesystem.getInstances({});\nconst defaultGetInstanceTypes = alicloud.ecs.getInstanceTypes({\n    availabilityZone: zoneId,\n    instanceTypeFamily: \"ecs.g7se\",\n});\nconst defaultGetImages = defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e alicloud.ecs.getImages({\n    instanceType: defaultGetInstanceTypes.instanceTypes?.[0]?.id,\n    nameRegex: \"^aliyun_2_19\",\n    owners: \"system\",\n}));\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = defaultGetNetworks.then(defaultGetNetworks =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: zoneId,\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup].map(__item =\u003e __item.id),\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 10,\n    availabilityZone: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.availabilityZones?.[0]),\n    instanceChargeType: \"PostPaid\",\n    systemDiskCategory: \"cloud_essd\",\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    instanceName: name,\n});\nconst defaultInstanceAttachment = new alicloud.databasefilesystem.InstanceAttachment(\"default\", {\n    instanceId: _default.then(_default =\u003e _default.instances?.[0]?.id),\n    ecsId: defaultInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nzone_id = \"cn-hangzhou-i\"\ndefault = alicloud.databasefilesystem.get_instances()\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=zone_id,\n    instance_type_family=\"ecs.g7se\")\ndefault_get_images = alicloud.ecs.get_images(instance_type=default_get_instance_types.instance_types[0].id,\n    name_regex=\"^aliyun_2_19\",\n    owners=\"system\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=zone_id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[__item.id for __item in [default_security_group]],\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=10,\n    availability_zone=default_get_instance_types.instance_types[0].availability_zones[0],\n    instance_charge_type=\"PostPaid\",\n    system_disk_category=\"cloud_essd\",\n    vswitch_id=default_get_switches.ids[0],\n    instance_name=name)\ndefault_instance_attachment = alicloud.databasefilesystem.InstanceAttachment(\"default\",\n    instance_id=default.instances[0].id,\n    ecs_id=default_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var zoneId = \"cn-hangzhou-i\";\n\n    var @default = AliCloud.DatabaseFilesystem.GetInstances.Invoke();\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = zoneId,\n        InstanceTypeFamily = \"ecs.g7se\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        NameRegex = \"^aliyun_2_19\",\n        Owners = \"system\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = zoneId,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup,\n        }.Select(__item =\u003e __item.Id).ToList(),\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 10,\n        AvailabilityZone = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.AvailabilityZones[0]),\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskCategory = \"cloud_essd\",\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        InstanceName = name,\n    });\n\n    var defaultInstanceAttachment = new AliCloud.DatabaseFilesystem.InstanceAttachment(\"default\", new()\n    {\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id)),\n        EcsId = defaultInstance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/databasefilesystem\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nzoneId := \"cn-hangzhou-i\";\n_default, err := databasefilesystem.GetInstances(ctx, \u0026databasefilesystem.GetInstancesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(zoneId),\nInstanceTypeFamily: pulumi.StringRef(\"ecs.g7se\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nInstanceType: pulumi.StringRef(defaultGetInstanceTypes.InstanceTypes[0].Id),\nNameRegex: pulumi.StringRef(\"^aliyun_2_19\"),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\nNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\nVpcId: pulumi.StringRef(defaultGetNetworks.Ids[0]),\nZoneId: pulumi.StringRef(zoneId),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(name),\nVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n})\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\ndefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\nImageId: pulumi.String(defaultGetImages.Images[0].Id),\nInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\nSecurityGroups: splat0,\nInternetChargeType: pulumi.String(\"PayByTraffic\"),\nInternetMaxBandwidthOut: pulumi.Int(10),\nAvailabilityZone: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].AvailabilityZones[0]),\nInstanceChargeType: pulumi.String(\"PostPaid\"),\nSystemDiskCategory: pulumi.String(\"cloud_essd\"),\nVswitchId: pulumi.String(defaultGetSwitches.Ids[0]),\nInstanceName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\n_, err = databasefilesystem.NewInstanceAttachment(ctx, \"default\", \u0026databasefilesystem.InstanceAttachmentArgs{\nInstanceId: pulumi.String(_default.Instances[0].Id),\nEcsId: defaultInstance.ID(),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.databasefilesystem.DatabasefilesystemFunctions;\nimport com.pulumi.alicloud.databasefilesystem.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.databasefilesystem.InstanceAttachment;\nimport com.pulumi.alicloud.databasefilesystem.InstanceAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var zoneId = \"cn-hangzhou-i\";\n\n        final var default = DatabasefilesystemFunctions.getInstances(GetInstancesArgs.builder()\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(zoneId)\n            .instanceTypeFamily(\"ecs.g7se\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .nameRegex(\"^aliyun_2_19\")\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(zoneId)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.stream().map(element -\u003e element.id()).collect(toList()))\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(10)\n            .availabilityZone(defaultGetInstanceTypes.instanceTypes()[0].availabilityZones()[0])\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskCategory(\"cloud_essd\")\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .instanceName(name)\n            .build());\n\n        var defaultInstanceAttachment = new InstanceAttachment(\"defaultInstanceAttachment\", InstanceAttachmentArgs.builder()\n            .instanceId(default_.instances()[0].id())\n            .ecsId(defaultInstance.id())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDatabase File System (DBFS) Instance Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:databasefilesystem/instanceAttachment:InstanceAttachment example \u003cinstance_id\u003e:\u003cecs_id\u003e\n```\n\n","properties":{"ecsId":{"type":"string","description":"The ID of the ECS instance.\n"},"instanceId":{"type":"string","description":"The ID of the Database File System.\n"},"status":{"type":"string","description":"The status of Instance Attachment.\n"}},"required":["ecsId","instanceId","status"],"inputProperties":{"ecsId":{"type":"string","description":"The ID of the ECS instance.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Database File System.\n","willReplaceOnChanges":true}},"requiredInputs":["ecsId","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceAttachment resources.\n","properties":{"ecsId":{"type":"string","description":"The ID of the ECS instance.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Database File System.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of Instance Attachment.\n"}},"type":"object"}},"alicloud:databasefilesystem/serviceLinkedRole:ServiceLinkedRole":{"description":"Using this data source can create Dbfs service-linked roles(SLR). Dbfs may need to access another Alibaba Cloud service to implement a specific feature. In this case, Dbfs must assume a specific service-linked role, which is a Resource Access Management (RAM) role, to obtain permissions to access another Alibaba Cloud service. \n\nFor information about Dbfs service-linked roles(SLR) and how to use it, see [What is service-linked roles](https://www.alibabacloud.com/help/en/resource-management/resource-group/developer-reference/api-resourcemanager-2020-03-31-createservicelinkedrole-rg).\n\n\u003e **NOTE:** Available since v1.157.0.\n\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst serviceLinkedRole = new alicloud.databasefilesystem.ServiceLinkedRole(\"service_linked_role\", {productName: \"AliyunServiceRoleForDbfs\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nservice_linked_role = alicloud.databasefilesystem.ServiceLinkedRole(\"service_linked_role\", product_name=\"AliyunServiceRoleForDbfs\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var serviceLinkedRole = new AliCloud.DatabaseFilesystem.ServiceLinkedRole(\"service_linked_role\", new()\n    {\n        ProductName = \"AliyunServiceRoleForDbfs\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/databasefilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := databasefilesystem.NewServiceLinkedRole(ctx, \"service_linked_role\", \u0026databasefilesystem.ServiceLinkedRoleArgs{\n\t\t\tProductName: pulumi.String(\"AliyunServiceRoleForDbfs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.databasefilesystem.ServiceLinkedRole;\nimport com.pulumi.alicloud.databasefilesystem.ServiceLinkedRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var serviceLinkedRole = new ServiceLinkedRole(\"serviceLinkedRole\", ServiceLinkedRoleArgs.builder()\n            .productName(\"AliyunServiceRoleForDbfs\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  serviceLinkedRole:\n    type: alicloud:databasefilesystem:ServiceLinkedRole\n    name: service_linked_role\n    properties:\n      productName: AliyunServiceRoleForDbfs\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDbfs service-linked roles(SLR) can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:databasefilesystem/serviceLinkedRole:ServiceLinkedRole example \u003cproduct_name\u003e\n```\n\n","properties":{"productName":{"type":"string","description":"The product name for SLR. Dbfs can automatically create the following service-linked roles: `AliyunServiceRoleForDbfs`.\n"},"status":{"type":"boolean","description":"The status of the service Associated role. Valid Values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: Created. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: not created.\n"}},"required":["productName","status"],"inputProperties":{"productName":{"type":"string","description":"The product name for SLR. Dbfs can automatically create the following service-linked roles: `AliyunServiceRoleForDbfs`.\n","willReplaceOnChanges":true}},"requiredInputs":["productName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceLinkedRole resources.\n","properties":{"productName":{"type":"string","description":"The product name for SLR. Dbfs can automatically create the following service-linked roles: `AliyunServiceRoleForDbfs`.\n","willReplaceOnChanges":true},"status":{"type":"boolean","description":"The status of the service Associated role. Valid Values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: Created. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: not created.\n"}},"type":"object"}},"alicloud:databasefilesystem/snapshot:Snapshot":{"description":"Provides a Database File System (DBFS) Snapshot resource.\n\nFor information about Database File System (DBFS) Snapshot and how to use it, see [What is Snapshot](https://help.aliyun.com/zh/dbfs/developer-reference/api-dbfs-2020-04-18-createsnapshot).\n\n\u003e **NOTE:** Available since v1.156.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.databasefilesystem.getInstances({});\nconst example = new alicloud.databasefilesystem.Snapshot(\"example\", {\n    instanceId: _default.then(_default =\u003e _default.instances?.[0]?.id),\n    retentionDays: 50,\n    snapshotName: name,\n    description: \"DbfsSnapshot\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.databasefilesystem.get_instances()\nexample = alicloud.databasefilesystem.Snapshot(\"example\",\n    instance_id=default.instances[0].id,\n    retention_days=50,\n    snapshot_name=name,\n    description=\"DbfsSnapshot\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.DatabaseFilesystem.GetInstances.Invoke();\n\n    var example = new AliCloud.DatabaseFilesystem.Snapshot(\"example\", new()\n    {\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id)),\n        RetentionDays = 50,\n        SnapshotName = name,\n        Description = \"DbfsSnapshot\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/databasefilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := databasefilesystem.GetInstances(ctx, \u0026databasefilesystem.GetInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databasefilesystem.NewSnapshot(ctx, \"example\", \u0026databasefilesystem.SnapshotArgs{\n\t\t\tInstanceId:    pulumi.String(_default.Instances[0].Id),\n\t\t\tRetentionDays: pulumi.Int(50),\n\t\t\tSnapshotName:  pulumi.String(name),\n\t\t\tDescription:   pulumi.String(\"DbfsSnapshot\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.databasefilesystem.DatabasefilesystemFunctions;\nimport com.pulumi.alicloud.databasefilesystem.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.databasefilesystem.Snapshot;\nimport com.pulumi.alicloud.databasefilesystem.SnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = DatabasefilesystemFunctions.getInstances(GetInstancesArgs.builder()\n            .build());\n\n        var example = new Snapshot(\"example\", SnapshotArgs.builder()\n            .instanceId(default_.instances()[0].id())\n            .retentionDays(50)\n            .snapshotName(name)\n            .description(\"DbfsSnapshot\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  example:\n    type: alicloud:databasefilesystem:Snapshot\n    properties:\n      instanceId: ${default.instances[0].id}\n      retentionDays: 50\n      snapshotName: ${name}\n      description: DbfsSnapshot\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:databasefilesystem:getInstances\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDatabase File System (DBFS) Snapshot can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:databasefilesystem/snapshot:Snapshot example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the snapshot. The \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length. It cannot start with `http://` or `https://`. **NOTE:** From version 1.233.1, \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e can be modified.\n"},"force":{"type":"boolean","description":"Specifies whether to force delete the snapshot. Valid values:\n"},"instanceId":{"type":"string","description":"The ID of the Database File System.\n"},"retentionDays":{"type":"integer","description":"The retention period of the snapshot. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n"},"snapshotName":{"type":"string","description":"The name of the snapshot. The \u003cspan pulumi-lang-nodejs=\"`snapshotName`\" pulumi-lang-dotnet=\"`SnapshotName`\" pulumi-lang-go=\"`snapshotName`\" pulumi-lang-python=\"`snapshot_name`\" pulumi-lang-yaml=\"`snapshotName`\" pulumi-lang-java=\"`snapshotName`\"\u003e`snapshot_name`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a large or small letter or Chinese, and cannot start with `http://`, `https://`, \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e or `dbfs-auto`. It can contain numbers, colons (:), underscores (_), or hyphens (-). **NOTE:** From version 1.233.1, \u003cspan pulumi-lang-nodejs=\"`snapshotName`\" pulumi-lang-dotnet=\"`SnapshotName`\" pulumi-lang-go=\"`snapshotName`\" pulumi-lang-python=\"`snapshot_name`\" pulumi-lang-yaml=\"`snapshotName`\" pulumi-lang-java=\"`snapshotName`\"\u003e`snapshot_name`\u003c/span\u003e can be modified.\n"},"status":{"type":"string","description":"The status of the Snapshot.\n"}},"required":["instanceId","status"],"inputProperties":{"description":{"type":"string","description":"The description of the snapshot. The \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length. It cannot start with `http://` or `https://`. **NOTE:** From version 1.233.1, \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e can be modified.\n"},"force":{"type":"boolean","description":"Specifies whether to force delete the snapshot. Valid values:\n"},"instanceId":{"type":"string","description":"The ID of the Database File System.\n","willReplaceOnChanges":true},"retentionDays":{"type":"integer","description":"The retention period of the snapshot. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n","willReplaceOnChanges":true},"snapshotName":{"type":"string","description":"The name of the snapshot. The \u003cspan pulumi-lang-nodejs=\"`snapshotName`\" pulumi-lang-dotnet=\"`SnapshotName`\" pulumi-lang-go=\"`snapshotName`\" pulumi-lang-python=\"`snapshot_name`\" pulumi-lang-yaml=\"`snapshotName`\" pulumi-lang-java=\"`snapshotName`\"\u003e`snapshot_name`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a large or small letter or Chinese, and cannot start with `http://`, `https://`, \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e or `dbfs-auto`. It can contain numbers, colons (:), underscores (_), or hyphens (-). **NOTE:** From version 1.233.1, \u003cspan pulumi-lang-nodejs=\"`snapshotName`\" pulumi-lang-dotnet=\"`SnapshotName`\" pulumi-lang-go=\"`snapshotName`\" pulumi-lang-python=\"`snapshot_name`\" pulumi-lang-yaml=\"`snapshotName`\" pulumi-lang-java=\"`snapshotName`\"\u003e`snapshot_name`\u003c/span\u003e can be modified.\n"}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Snapshot resources.\n","properties":{"description":{"type":"string","description":"The description of the snapshot. The \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length. It cannot start with `http://` or `https://`. **NOTE:** From version 1.233.1, \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e can be modified.\n"},"force":{"type":"boolean","description":"Specifies whether to force delete the snapshot. Valid values:\n"},"instanceId":{"type":"string","description":"The ID of the Database File System.\n","willReplaceOnChanges":true},"retentionDays":{"type":"integer","description":"The retention period of the snapshot. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n","willReplaceOnChanges":true},"snapshotName":{"type":"string","description":"The name of the snapshot. The \u003cspan pulumi-lang-nodejs=\"`snapshotName`\" pulumi-lang-dotnet=\"`SnapshotName`\" pulumi-lang-go=\"`snapshotName`\" pulumi-lang-python=\"`snapshot_name`\" pulumi-lang-yaml=\"`snapshotName`\" pulumi-lang-java=\"`snapshotName`\"\u003e`snapshot_name`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a large or small letter or Chinese, and cannot start with `http://`, `https://`, \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e or `dbfs-auto`. It can contain numbers, colons (:), underscores (_), or hyphens (-). **NOTE:** From version 1.233.1, \u003cspan pulumi-lang-nodejs=\"`snapshotName`\" pulumi-lang-dotnet=\"`SnapshotName`\" pulumi-lang-go=\"`snapshotName`\" pulumi-lang-python=\"`snapshot_name`\" pulumi-lang-yaml=\"`snapshotName`\" pulumi-lang-java=\"`snapshotName`\"\u003e`snapshot_name`\u003c/span\u003e can be modified.\n"},"status":{"type":"string","description":"The status of the Snapshot.\n"}},"type":"object"}},"alicloud:databasegateway/gateway:Gateway":{"description":"Provides a Database Gateway Gateway resource.\n\nFor information about Database Gateway Gateway and how to use it, see [What is Gateway](https://www.alibabacloud.com/help/doc-detail/123415.htm).\n\n\u003e **NOTE:** Available in v1.135.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.databasegateway.Gateway(\"example\", {gatewayName: \"example_value\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.databasegateway.Gateway(\"example\", gateway_name=\"example_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.DatabaseGateway.Gateway(\"example\", new()\n    {\n        GatewayName = \"example_value\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/databasegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := databasegateway.NewGateway(ctx, \"example\", \u0026databasegateway.GatewayArgs{\n\t\t\tGatewayName: pulumi.String(\"example_value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.databasegateway.Gateway;\nimport com.pulumi.alicloud.databasegateway.GatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Gateway(\"example\", GatewayArgs.builder()\n            .gatewayName(\"example_value\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:databasegateway:Gateway\n    properties:\n      gatewayName: example_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDatabase Gateway Gateway can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:databasegateway/gateway:Gateway example \u003cid\u003e\n```\n\n","properties":{"gatewayDesc":{"type":"string","description":"The description of Gateway.\n"},"gatewayName":{"type":"string","description":"The name of the Gateway.\n"},"status":{"type":"string","description":"The status of gateway. Valid values: `EXCEPTION`, `NEW`, `RUNNING`, `STOPPED`.\n"}},"required":["gatewayName","status"],"inputProperties":{"gatewayDesc":{"type":"string","description":"The description of Gateway.\n"},"gatewayName":{"type":"string","description":"The name of the Gateway.\n"}},"requiredInputs":["gatewayName"],"stateInputs":{"description":"Input properties used for looking up and filtering Gateway resources.\n","properties":{"gatewayDesc":{"type":"string","description":"The description of Gateway.\n"},"gatewayName":{"type":"string","description":"The name of the Gateway.\n"},"status":{"type":"string","description":"The status of gateway. Valid values: `EXCEPTION`, `NEW`, `RUNNING`, `STOPPED`.\n"}},"type":"object"}},"alicloud:datahub/project:Project":{"description":"The project is the basic unit of resource management in Datahub Service and is used to isolate and control resources. It contains a set of Topics. You can manage the datahub sources of an application by using projects. [Refer to details](https://www.alibabacloud.com/help/en/datahub/latest/nerbcz).\n\n\u003e **NOTE:** Available since v1.19.0.\n\n\u003e **NOTE:** Currently Datahub service only can be supported in the regions: cn-beijing, cn-hangzhou, cn-shanghai, cn-shenzhen,  ap-southeast-1.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst example = new alicloud.datahub.Project(\"example\", {\n    name: name,\n    comment: \"created by terraform\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\nexample = alicloud.datahub.Project(\"example\",\n    name=name,\n    comment=\"created by terraform\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var example = new AliCloud.Datahub.Project(\"example\", new()\n    {\n        Name = name,\n        Comment = \"created by terraform\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/datahub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := datahub.NewProject(ctx, \"example\", \u0026datahub.ProjectArgs{\n\t\t\tName:    pulumi.String(name),\n\t\t\tComment: pulumi.String(\"created by terraform\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.datahub.Project;\nimport com.pulumi.alicloud.datahub.ProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(name)\n            .comment(\"created by terraform\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  example:\n    type: alicloud:datahub:Project\n    properties:\n      name: ${name}\n      comment: created by terraform\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDatahub project can be imported using the *name* or ID, e.g.\n\n```sh\n$ pulumi import alicloud:datahub/project:Project example tf_datahub_project\n```\n\n","properties":{"comment":{"type":"string","description":"Comment of the datahub project. It cannot be longer than 255 characters.\n"},"createTime":{"type":"string","description":"Create time of the datahub project. It is a human-readable string rather than 64-bits UTC.\n"},"lastModifyTime":{"type":"string","description":"Last modify time of the datahub project. It is the same as *create_time* at the beginning. It is also a human-readable string rather than 64-bits UTC.\n"},"name":{"type":"string","description":"The name of the datahub project. Its length is limited to 3-32 and only characters such as letters, digits and '_' are allowed. It is case-insensitive.\n"}},"required":["createTime","lastModifyTime","name"],"inputProperties":{"comment":{"type":"string","description":"Comment of the datahub project. It cannot be longer than 255 characters.\n"},"name":{"type":"string","description":"The name of the datahub project. Its length is limited to 3-32 and only characters such as letters, digits and '_' are allowed. It is case-insensitive.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Project resources.\n","properties":{"comment":{"type":"string","description":"Comment of the datahub project. It cannot be longer than 255 characters.\n"},"createTime":{"type":"string","description":"Create time of the datahub project. It is a human-readable string rather than 64-bits UTC.\n"},"lastModifyTime":{"type":"string","description":"Last modify time of the datahub project. It is the same as *create_time* at the beginning. It is also a human-readable string rather than 64-bits UTC.\n"},"name":{"type":"string","description":"The name of the datahub project. Its length is limited to 3-32 and only characters such as letters, digits and '_' are allowed. It is case-insensitive.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:datahub/subscription:Subscription":{"description":"The subscription is the basic unit of resource usage in Datahub Service under Publish/Subscribe model. You can manage the relationships between user and topics by using subscriptions. [Refer to details](https://www.alibabacloud.com/help/en/datahub/latest/nerbcz).\n\n\u003e **NOTE:** Available since v1.19.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst example = new alicloud.datahub.Project(\"example\", {\n    name: name,\n    comment: \"created by terraform\",\n});\nconst exampleTopic = new alicloud.datahub.Topic(\"example\", {\n    name: name,\n    projectName: example.name,\n    recordType: \"BLOB\",\n    shardCount: 3,\n    lifeCycle: 7,\n    comment: \"created by terraform\",\n});\nconst exampleSubscription = new alicloud.datahub.Subscription(\"example\", {\n    projectName: example.name,\n    topicName: exampleTopic.name,\n    comment: \"created by terraform\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\nexample = alicloud.datahub.Project(\"example\",\n    name=name,\n    comment=\"created by terraform\")\nexample_topic = alicloud.datahub.Topic(\"example\",\n    name=name,\n    project_name=example.name,\n    record_type=\"BLOB\",\n    shard_count=3,\n    life_cycle=7,\n    comment=\"created by terraform\")\nexample_subscription = alicloud.datahub.Subscription(\"example\",\n    project_name=example.name,\n    topic_name=example_topic.name,\n    comment=\"created by terraform\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var example = new AliCloud.Datahub.Project(\"example\", new()\n    {\n        Name = name,\n        Comment = \"created by terraform\",\n    });\n\n    var exampleTopic = new AliCloud.Datahub.Topic(\"example\", new()\n    {\n        Name = name,\n        ProjectName = example.Name,\n        RecordType = \"BLOB\",\n        ShardCount = 3,\n        LifeCycle = 7,\n        Comment = \"created by terraform\",\n    });\n\n    var exampleSubscription = new AliCloud.Datahub.Subscription(\"example\", new()\n    {\n        ProjectName = example.Name,\n        TopicName = exampleTopic.Name,\n        Comment = \"created by terraform\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/datahub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := datahub.NewProject(ctx, \"example\", \u0026datahub.ProjectArgs{\n\t\t\tName:    pulumi.String(name),\n\t\t\tComment: pulumi.String(\"created by terraform\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := datahub.NewTopic(ctx, \"example\", \u0026datahub.TopicArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tProjectName: example.Name,\n\t\t\tRecordType:  pulumi.String(\"BLOB\"),\n\t\t\tShardCount:  pulumi.Int(3),\n\t\t\tLifeCycle:   pulumi.Int(7),\n\t\t\tComment:     pulumi.String(\"created by terraform\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datahub.NewSubscription(ctx, \"example\", \u0026datahub.SubscriptionArgs{\n\t\t\tProjectName: example.Name,\n\t\t\tTopicName:   exampleTopic.Name,\n\t\t\tComment:     pulumi.String(\"created by terraform\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.datahub.Project;\nimport com.pulumi.alicloud.datahub.ProjectArgs;\nimport com.pulumi.alicloud.datahub.Topic;\nimport com.pulumi.alicloud.datahub.TopicArgs;\nimport com.pulumi.alicloud.datahub.Subscription;\nimport com.pulumi.alicloud.datahub.SubscriptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(name)\n            .comment(\"created by terraform\")\n            .build());\n\n        var exampleTopic = new Topic(\"exampleTopic\", TopicArgs.builder()\n            .name(name)\n            .projectName(example.name())\n            .recordType(\"BLOB\")\n            .shardCount(3)\n            .lifeCycle(7)\n            .comment(\"created by terraform\")\n            .build());\n\n        var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n            .projectName(example.name())\n            .topicName(exampleTopic.name())\n            .comment(\"created by terraform\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  example:\n    type: alicloud:datahub:Project\n    properties:\n      name: ${name}\n      comment: created by terraform\n  exampleTopic:\n    type: alicloud:datahub:Topic\n    name: example\n    properties:\n      name: ${name}\n      projectName: ${example.name}\n      recordType: BLOB\n      shardCount: 3\n      lifeCycle: 7\n      comment: created by terraform\n  exampleSubscription:\n    type: alicloud:datahub:Subscription\n    name: example\n    properties:\n      projectName: ${example.name}\n      topicName: ${exampleTopic.name}\n      comment: created by terraform\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDatahub subscription can be imported using the ID, e.g.\n\n```sh\n$ pulumi import alicloud:datahub/subscription:Subscription example tf_datahub_project:tf_datahub_topic:1539073399567UgCzY\n```\n\n","properties":{"comment":{"type":"string","description":"Comment of the datahub subscription. It cannot be longer than 255 characters.\n"},"createTime":{"type":"string","description":"Create time of the datahub subscription. It is a human-readable string rather than 64-bits UTC.\n"},"lastModifyTime":{"type":"string","description":"Last modify time of the datahub subscription. It is the same as *create_time* at the beginning. It is also a human-readable string rather than 64-bits UTC.\n"},"projectName":{"type":"string","description":"The name of the datahub project that the subscription belongs to. Its length is limited to 3-32 and only characters such as letters, digits and '_' are allowed. It is case-insensitive.\n"},"subId":{"type":"string","description":"The identidy of the subscription, generate from server side.\n"},"topicName":{"type":"string","description":"The name of the datahub topic that the subscription belongs to. Its length is limited to 1-128 and only characters such as letters, digits and '_' are allowed. It is case-insensitive.\n"}},"required":["createTime","lastModifyTime","projectName","subId","topicName"],"inputProperties":{"comment":{"type":"string","description":"Comment of the datahub subscription. It cannot be longer than 255 characters.\n"},"projectName":{"type":"string","description":"The name of the datahub project that the subscription belongs to. Its length is limited to 3-32 and only characters such as letters, digits and '_' are allowed. It is case-insensitive.\n","willReplaceOnChanges":true},"topicName":{"type":"string","description":"The name of the datahub topic that the subscription belongs to. Its length is limited to 1-128 and only characters such as letters, digits and '_' are allowed. It is case-insensitive.\n","willReplaceOnChanges":true}},"requiredInputs":["projectName","topicName"],"stateInputs":{"description":"Input properties used for looking up and filtering Subscription resources.\n","properties":{"comment":{"type":"string","description":"Comment of the datahub subscription. It cannot be longer than 255 characters.\n"},"createTime":{"type":"string","description":"Create time of the datahub subscription. It is a human-readable string rather than 64-bits UTC.\n"},"lastModifyTime":{"type":"string","description":"Last modify time of the datahub subscription. It is the same as *create_time* at the beginning. It is also a human-readable string rather than 64-bits UTC.\n"},"projectName":{"type":"string","description":"The name of the datahub project that the subscription belongs to. Its length is limited to 3-32 and only characters such as letters, digits and '_' are allowed. It is case-insensitive.\n","willReplaceOnChanges":true},"subId":{"type":"string","description":"The identidy of the subscription, generate from server side.\n"},"topicName":{"type":"string","description":"The name of the datahub topic that the subscription belongs to. Its length is limited to 1-128 and only characters such as letters, digits and '_' are allowed. It is case-insensitive.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:datahub/topic:Topic":{"description":"The topic is the basic unit of Datahub data source and is used to define one kind of data or stream. It contains a set of subscriptions. You can manage the datahub source of an application by using topics. [Refer to details](https://www.alibabacloud.com/help/en/datahub/latest/nerbcz).\n\n\u003e **NOTE:** Available since v1.19.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst example = new alicloud.datahub.Project(\"example\", {\n    name: name,\n    comment: \"created by terraform\",\n});\nconst exampleBlob = new alicloud.datahub.Topic(\"example_blob\", {\n    name: `${name}_blob`,\n    projectName: example.name,\n    recordType: \"BLOB\",\n    shardCount: 3,\n    lifeCycle: 7,\n    comment: \"created by terraform\",\n});\nconst exampleTuple = new alicloud.datahub.Topic(\"example_tuple\", {\n    name: `${name}_tuple`,\n    projectName: example.name,\n    recordType: \"TUPLE\",\n    recordSchema: {\n        bigint_field: \"BIGINT\",\n        timestamp_field: \"TIMESTAMP\",\n        string_field: \"STRING\",\n        double_field: \"DOUBLE\",\n        boolean_field: \"BOOLEAN\",\n    },\n    shardCount: 3,\n    lifeCycle: 7,\n    comment: \"created by terraform\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\nexample = alicloud.datahub.Project(\"example\",\n    name=name,\n    comment=\"created by terraform\")\nexample_blob = alicloud.datahub.Topic(\"example_blob\",\n    name=f\"{name}_blob\",\n    project_name=example.name,\n    record_type=\"BLOB\",\n    shard_count=3,\n    life_cycle=7,\n    comment=\"created by terraform\")\nexample_tuple = alicloud.datahub.Topic(\"example_tuple\",\n    name=f\"{name}_tuple\",\n    project_name=example.name,\n    record_type=\"TUPLE\",\n    record_schema={\n        \"bigint_field\": \"BIGINT\",\n        \"timestamp_field\": \"TIMESTAMP\",\n        \"string_field\": \"STRING\",\n        \"double_field\": \"DOUBLE\",\n        \"boolean_field\": \"BOOLEAN\",\n    },\n    shard_count=3,\n    life_cycle=7,\n    comment=\"created by terraform\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var example = new AliCloud.Datahub.Project(\"example\", new()\n    {\n        Name = name,\n        Comment = \"created by terraform\",\n    });\n\n    var exampleBlob = new AliCloud.Datahub.Topic(\"example_blob\", new()\n    {\n        Name = $\"{name}_blob\",\n        ProjectName = example.Name,\n        RecordType = \"BLOB\",\n        ShardCount = 3,\n        LifeCycle = 7,\n        Comment = \"created by terraform\",\n    });\n\n    var exampleTuple = new AliCloud.Datahub.Topic(\"example_tuple\", new()\n    {\n        Name = $\"{name}_tuple\",\n        ProjectName = example.Name,\n        RecordType = \"TUPLE\",\n        RecordSchema = \n        {\n            { \"bigint_field\", \"BIGINT\" },\n            { \"timestamp_field\", \"TIMESTAMP\" },\n            { \"string_field\", \"STRING\" },\n            { \"double_field\", \"DOUBLE\" },\n            { \"boolean_field\", \"BOOLEAN\" },\n        },\n        ShardCount = 3,\n        LifeCycle = 7,\n        Comment = \"created by terraform\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/datahub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := datahub.NewProject(ctx, \"example\", \u0026datahub.ProjectArgs{\n\t\t\tName:    pulumi.String(name),\n\t\t\tComment: pulumi.String(\"created by terraform\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datahub.NewTopic(ctx, \"example_blob\", \u0026datahub.TopicArgs{\n\t\t\tName:        pulumi.Sprintf(\"%v_blob\", name),\n\t\t\tProjectName: example.Name,\n\t\t\tRecordType:  pulumi.String(\"BLOB\"),\n\t\t\tShardCount:  pulumi.Int(3),\n\t\t\tLifeCycle:   pulumi.Int(7),\n\t\t\tComment:     pulumi.String(\"created by terraform\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datahub.NewTopic(ctx, \"example_tuple\", \u0026datahub.TopicArgs{\n\t\t\tName:        pulumi.Sprintf(\"%v_tuple\", name),\n\t\t\tProjectName: example.Name,\n\t\t\tRecordType:  pulumi.String(\"TUPLE\"),\n\t\t\tRecordSchema: pulumi.StringMap{\n\t\t\t\t\"bigint_field\":    pulumi.String(\"BIGINT\"),\n\t\t\t\t\"timestamp_field\": pulumi.String(\"TIMESTAMP\"),\n\t\t\t\t\"string_field\":    pulumi.String(\"STRING\"),\n\t\t\t\t\"double_field\":    pulumi.String(\"DOUBLE\"),\n\t\t\t\t\"boolean_field\":   pulumi.String(\"BOOLEAN\"),\n\t\t\t},\n\t\t\tShardCount: pulumi.Int(3),\n\t\t\tLifeCycle:  pulumi.Int(7),\n\t\t\tComment:    pulumi.String(\"created by terraform\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.datahub.Project;\nimport com.pulumi.alicloud.datahub.ProjectArgs;\nimport com.pulumi.alicloud.datahub.Topic;\nimport com.pulumi.alicloud.datahub.TopicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(name)\n            .comment(\"created by terraform\")\n            .build());\n\n        var exampleBlob = new Topic(\"exampleBlob\", TopicArgs.builder()\n            .name(String.format(\"%s_blob\", name))\n            .projectName(example.name())\n            .recordType(\"BLOB\")\n            .shardCount(3)\n            .lifeCycle(7)\n            .comment(\"created by terraform\")\n            .build());\n\n        var exampleTuple = new Topic(\"exampleTuple\", TopicArgs.builder()\n            .name(String.format(\"%s_tuple\", name))\n            .projectName(example.name())\n            .recordType(\"TUPLE\")\n            .recordSchema(Map.ofEntries(\n                Map.entry(\"bigint_field\", \"BIGINT\"),\n                Map.entry(\"timestamp_field\", \"TIMESTAMP\"),\n                Map.entry(\"string_field\", \"STRING\"),\n                Map.entry(\"double_field\", \"DOUBLE\"),\n                Map.entry(\"boolean_field\", \"BOOLEAN\")\n            ))\n            .shardCount(3)\n            .lifeCycle(7)\n            .comment(\"created by terraform\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  example:\n    type: alicloud:datahub:Project\n    properties:\n      name: ${name}\n      comment: created by terraform\n  exampleBlob:\n    type: alicloud:datahub:Topic\n    name: example_blob\n    properties:\n      name: ${name}_blob\n      projectName: ${example.name}\n      recordType: BLOB\n      shardCount: 3\n      lifeCycle: 7\n      comment: created by terraform\n  exampleTuple:\n    type: alicloud:datahub:Topic\n    name: example_tuple\n    properties:\n      name: ${name}_tuple\n      projectName: ${example.name}\n      recordType: TUPLE\n      recordSchema:\n        bigint_field: BIGINT\n        timestamp_field: TIMESTAMP\n        string_field: STRING\n        double_field: DOUBLE\n        boolean_field: BOOLEAN\n      shardCount: 3\n      lifeCycle: 7\n      comment: created by terraform\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDatahub topic can be imported using the ID, e.g.\n\n```sh\n$ pulumi import alicloud:datahub/topic:Topic example tf_datahub_project:tf_datahub_topic\n```\n\n","properties":{"comment":{"type":"string","description":"Comment of the datahub topic. It cannot be longer than 255 characters.\n\n**Notes:** Currently \u003cspan pulumi-lang-nodejs=\"`lifeCycle`\" pulumi-lang-dotnet=\"`LifeCycle`\" pulumi-lang-go=\"`lifeCycle`\" pulumi-lang-python=\"`life_cycle`\" pulumi-lang-yaml=\"`lifeCycle`\" pulumi-lang-java=\"`lifeCycle`\"\u003e`life_cycle`\u003c/span\u003e can not be modified and it will be supported in the next future.\n"},"createTime":{"type":"string","description":"Create time of the datahub topic. It is a human-readable string rather than 64-bits UTC.\n"},"lastModifyTime":{"type":"string","description":"Last modify time of the datahub topic. It is the same as *create_time* at the beginning. It is also a human-readable string rather than 64-bits UTC.\n"},"lifeCycle":{"type":"integer","description":"How many days this topic lives. The permitted range of values is [1, 7]. The default value is 3.\n"},"name":{"type":"string","description":"The name of the datahub topic. Its length is limited to 1-128 and only characters such as letters, digits and '_' are allowed. It is case-insensitive.\n"},"projectName":{"type":"string","description":"The name of the datahub project that this topic belongs to. It is case-insensitive.\n"},"recordSchema":{"type":"object","additionalProperties":{"type":"string"},"description":"Schema of this topic, required only for TUPLE topic. Supported data types (case-insensitive) are:\n- BIGINT\n- STRING\n- BOOLEAN\n- DOUBLE\n- TIMESTAMP\n"},"recordType":{"type":"string","description":"The type of this topic. Its value must be one of {BLOB, TUPLE}. For BLOB topic, data will be organized as binary and encoded by BASE64. For TUPLE topic, data has fixed schema. The default value is \"TUPLE\" with a schema {STRING}.\n"},"shardCount":{"type":"integer","description":"The number of shards this topic contains. The permitted range of values is [1, 10]. The default value is 1.\n"}},"required":["createTime","lastModifyTime","name","projectName"],"inputProperties":{"comment":{"type":"string","description":"Comment of the datahub topic. It cannot be longer than 255 characters.\n\n**Notes:** Currently \u003cspan pulumi-lang-nodejs=\"`lifeCycle`\" pulumi-lang-dotnet=\"`LifeCycle`\" pulumi-lang-go=\"`lifeCycle`\" pulumi-lang-python=\"`life_cycle`\" pulumi-lang-yaml=\"`lifeCycle`\" pulumi-lang-java=\"`lifeCycle`\"\u003e`life_cycle`\u003c/span\u003e can not be modified and it will be supported in the next future.\n"},"lifeCycle":{"type":"integer","description":"How many days this topic lives. The permitted range of values is [1, 7]. The default value is 3.\n"},"name":{"type":"string","description":"The name of the datahub topic. Its length is limited to 1-128 and only characters such as letters, digits and '_' are allowed. It is case-insensitive.\n","willReplaceOnChanges":true},"projectName":{"type":"string","description":"The name of the datahub project that this topic belongs to. It is case-insensitive.\n","willReplaceOnChanges":true},"recordSchema":{"type":"object","additionalProperties":{"type":"string"},"description":"Schema of this topic, required only for TUPLE topic. Supported data types (case-insensitive) are:\n- BIGINT\n- STRING\n- BOOLEAN\n- DOUBLE\n- TIMESTAMP\n","willReplaceOnChanges":true},"recordType":{"type":"string","description":"The type of this topic. Its value must be one of {BLOB, TUPLE}. For BLOB topic, data will be organized as binary and encoded by BASE64. For TUPLE topic, data has fixed schema. The default value is \"TUPLE\" with a schema {STRING}.\n","willReplaceOnChanges":true},"shardCount":{"type":"integer","description":"The number of shards this topic contains. The permitted range of values is [1, 10]. The default value is 1.\n","willReplaceOnChanges":true}},"requiredInputs":["projectName"],"stateInputs":{"description":"Input properties used for looking up and filtering Topic resources.\n","properties":{"comment":{"type":"string","description":"Comment of the datahub topic. It cannot be longer than 255 characters.\n\n**Notes:** Currently \u003cspan pulumi-lang-nodejs=\"`lifeCycle`\" pulumi-lang-dotnet=\"`LifeCycle`\" pulumi-lang-go=\"`lifeCycle`\" pulumi-lang-python=\"`life_cycle`\" pulumi-lang-yaml=\"`lifeCycle`\" pulumi-lang-java=\"`lifeCycle`\"\u003e`life_cycle`\u003c/span\u003e can not be modified and it will be supported in the next future.\n"},"createTime":{"type":"string","description":"Create time of the datahub topic. It is a human-readable string rather than 64-bits UTC.\n"},"lastModifyTime":{"type":"string","description":"Last modify time of the datahub topic. It is the same as *create_time* at the beginning. It is also a human-readable string rather than 64-bits UTC.\n"},"lifeCycle":{"type":"integer","description":"How many days this topic lives. The permitted range of values is [1, 7]. The default value is 3.\n"},"name":{"type":"string","description":"The name of the datahub topic. Its length is limited to 1-128 and only characters such as letters, digits and '_' are allowed. It is case-insensitive.\n","willReplaceOnChanges":true},"projectName":{"type":"string","description":"The name of the datahub project that this topic belongs to. It is case-insensitive.\n","willReplaceOnChanges":true},"recordSchema":{"type":"object","additionalProperties":{"type":"string"},"description":"Schema of this topic, required only for TUPLE topic. Supported data types (case-insensitive) are:\n- BIGINT\n- STRING\n- BOOLEAN\n- DOUBLE\n- TIMESTAMP\n","willReplaceOnChanges":true},"recordType":{"type":"string","description":"The type of this topic. Its value must be one of {BLOB, TUPLE}. For BLOB topic, data will be organized as binary and encoded by BASE64. For TUPLE topic, data has fixed schema. The default value is \"TUPLE\" with a schema {STRING}.\n","willReplaceOnChanges":true},"shardCount":{"type":"integer","description":"The number of shards this topic contains. The permitted range of values is [1, 10]. The default value is 1.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dataworks/dataSource:DataSource":{"description":"Provides a Data Works Data Source resource.\n\n\n\nFor information about Data Works Data Source and how to use it, see [What is Data Source](https://www.alibabacloud.com/help/en/dataworks/developer-reference/api-dataworks-public-2024-05-18-createdatasource).\n\n\u003e **NOTE:** Available since v1.237.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst randint = new random.index.Integer(\"randint\", {\n    max: 999,\n    min: 1,\n});\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultkguw4R = new alicloud.dataworks.Project(\"defaultkguw4R\", {\n    status: \"Available\",\n    description: \"tf_desc\",\n    projectName: `${name}${randint.id}`,\n    paiTaskEnabled: false,\n    displayName: \"tf_new_api_display\",\n    devRoleDisabled: true,\n    devEnvironmentEnabled: false,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n});\nconst defaultDataSource = new alicloud.dataworks.DataSource(\"default\", {\n    type: \"hive\",\n    dataSourceName: name,\n    connectionProperties: JSON.stringify({\n        address: [{\n            host: \"127.0.0.1\",\n            port: \"1234\",\n        }],\n        database: \"hive_database\",\n        metaType: \"HiveMetastore\",\n        metastoreUris: \"thrift://123:123\",\n        version: \"2.3.9\",\n        loginMode: \"Anonymous\",\n        securityProtocol: \"authTypeNone\",\n        envType: \"Prod\",\n        properties: {\n            key1: \"value1\",\n        },\n    }),\n    connectionPropertiesMode: \"UrlMode\",\n    projectId: defaultkguw4R.id,\n    description: name,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\nrandint = random.index.Integer(\"randint\",\n    max=999,\n    min=1)\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefaultkguw4_r = alicloud.dataworks.Project(\"defaultkguw4R\",\n    status=\"Available\",\n    description=\"tf_desc\",\n    project_name=f\"{name}{randint['id']}\",\n    pai_task_enabled=False,\n    display_name=\"tf_new_api_display\",\n    dev_role_disabled=True,\n    dev_environment_enabled=False,\n    resource_group_id=default.ids[0])\ndefault_data_source = alicloud.dataworks.DataSource(\"default\",\n    type=\"hive\",\n    data_source_name=name,\n    connection_properties=json.dumps({\n        \"address\": [{\n            \"host\": \"127.0.0.1\",\n            \"port\": \"1234\",\n        }],\n        \"database\": \"hive_database\",\n        \"metaType\": \"HiveMetastore\",\n        \"metastoreUris\": \"thrift://123:123\",\n        \"version\": \"2.3.9\",\n        \"loginMode\": \"Anonymous\",\n        \"securityProtocol\": \"authTypeNone\",\n        \"envType\": \"Prod\",\n        \"properties\": {\n            \"key1\": \"value1\",\n        },\n    }),\n    connection_properties_mode=\"UrlMode\",\n    project_id=defaultkguw4_r.id,\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var randint = new Random.Index.Integer(\"randint\", new()\n    {\n        Max = 999,\n        Min = 1,\n    });\n\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultkguw4R = new AliCloud.DataWorks.Project(\"defaultkguw4R\", new()\n    {\n        Status = \"Available\",\n        Description = \"tf_desc\",\n        ProjectName = $\"{name}{randint.Id}\",\n        PaiTaskEnabled = false,\n        DisplayName = \"tf_new_api_display\",\n        DevRoleDisabled = true,\n        DevEnvironmentEnabled = false,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n    });\n\n    var defaultDataSource = new AliCloud.DataWorks.DataSource(\"default\", new()\n    {\n        Type = \"hive\",\n        DataSourceName = name,\n        ConnectionProperties = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"address\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"host\"] = \"127.0.0.1\",\n                    [\"port\"] = \"1234\",\n                },\n            },\n            [\"database\"] = \"hive_database\",\n            [\"metaType\"] = \"HiveMetastore\",\n            [\"metastoreUris\"] = \"thrift://123:123\",\n            [\"version\"] = \"2.3.9\",\n            [\"loginMode\"] = \"Anonymous\",\n            [\"securityProtocol\"] = \"authTypeNone\",\n            [\"envType\"] = \"Prod\",\n            [\"properties\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"key1\"] = \"value1\",\n            },\n        }),\n        ConnectionPropertiesMode = \"UrlMode\",\n        ProjectId = defaultkguw4R.Id,\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dataworks\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\trandint, err := random.NewInteger(ctx, \"randint\", \u0026random.IntegerArgs{\n\t\t\tMax: 999,\n\t\t\tMin: 1,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultkguw4R, err := dataworks.NewProject(ctx, \"defaultkguw4R\", \u0026dataworks.ProjectArgs{\n\t\t\tStatus:                pulumi.String(\"Available\"),\n\t\t\tDescription:           pulumi.String(\"tf_desc\"),\n\t\t\tProjectName:           pulumi.Sprintf(\"%v%v\", name, randint.Id),\n\t\t\tPaiTaskEnabled:        pulumi.Bool(false),\n\t\t\tDisplayName:           pulumi.String(\"tf_new_api_display\"),\n\t\t\tDevRoleDisabled:       pulumi.Bool(true),\n\t\t\tDevEnvironmentEnabled: pulumi.Bool(false),\n\t\t\tResourceGroupId:       pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"address\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"host\": \"127.0.0.1\",\n\t\t\t\t\t\"port\": \"1234\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"database\":         \"hive_database\",\n\t\t\t\"metaType\":         \"HiveMetastore\",\n\t\t\t\"metastoreUris\":    \"thrift://123:123\",\n\t\t\t\"version\":          \"2.3.9\",\n\t\t\t\"loginMode\":        \"Anonymous\",\n\t\t\t\"securityProtocol\": \"authTypeNone\",\n\t\t\t\"envType\":          \"Prod\",\n\t\t\t\"properties\": map[string]interface{}{\n\t\t\t\t\"key1\": \"value1\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = dataworks.NewDataSource(ctx, \"default\", \u0026dataworks.DataSourceArgs{\n\t\t\tType:                     pulumi.String(\"hive\"),\n\t\t\tDataSourceName:           pulumi.String(name),\n\t\t\tConnectionProperties:     pulumi.String(json0),\n\t\t\tConnectionPropertiesMode: pulumi.String(\"UrlMode\"),\n\t\t\tProjectId:                defaultkguw4R.ID(),\n\t\t\tDescription:              pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.dataworks.Project;\nimport com.pulumi.alicloud.dataworks.ProjectArgs;\nimport com.pulumi.alicloud.dataworks.DataSource;\nimport com.pulumi.alicloud.dataworks.DataSourceArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var randint = new Integer(\"randint\", IntegerArgs.builder()\n            .max(999)\n            .min(1)\n            .build());\n\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultkguw4R = new Project(\"defaultkguw4R\", ProjectArgs.builder()\n            .status(\"Available\")\n            .description(\"tf_desc\")\n            .projectName(String.format(\"%s%s\", name,randint.id()))\n            .paiTaskEnabled(false)\n            .displayName(\"tf_new_api_display\")\n            .devRoleDisabled(true)\n            .devEnvironmentEnabled(false)\n            .resourceGroupId(default_.ids()[0])\n            .build());\n\n        var defaultDataSource = new DataSource(\"defaultDataSource\", DataSourceArgs.builder()\n            .type(\"hive\")\n            .dataSourceName(name)\n            .connectionProperties(serializeJson(\n                jsonObject(\n                    jsonProperty(\"address\", jsonArray(jsonObject(\n                        jsonProperty(\"host\", \"127.0.0.1\"),\n                        jsonProperty(\"port\", \"1234\")\n                    ))),\n                    jsonProperty(\"database\", \"hive_database\"),\n                    jsonProperty(\"metaType\", \"HiveMetastore\"),\n                    jsonProperty(\"metastoreUris\", \"thrift://123:123\"),\n                    jsonProperty(\"version\", \"2.3.9\"),\n                    jsonProperty(\"loginMode\", \"Anonymous\"),\n                    jsonProperty(\"securityProtocol\", \"authTypeNone\"),\n                    jsonProperty(\"envType\", \"Prod\"),\n                    jsonProperty(\"properties\", jsonObject(\n                        jsonProperty(\"key1\", \"value1\")\n                    ))\n                )))\n            .connectionPropertiesMode(\"UrlMode\")\n            .projectId(defaultkguw4R.id())\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  randint:\n    type: random:Integer\n    properties:\n      max: 999\n      min: 1\n  defaultkguw4R:\n    type: alicloud:dataworks:Project\n    properties:\n      status: Available\n      description: tf_desc\n      projectName: ${name}${randint.id}\n      paiTaskEnabled: 'false'\n      displayName: tf_new_api_display\n      devRoleDisabled: 'true'\n      devEnvironmentEnabled: 'false'\n      resourceGroupId: ${default.ids[0]}\n  defaultDataSource:\n    type: alicloud:dataworks:DataSource\n    name: default\n    properties:\n      type: hive\n      dataSourceName: ${name}\n      connectionProperties:\n        fn::toJSON:\n          address:\n            - host: 127.0.0.1\n              port: '1234'\n          database: hive_database\n          metaType: HiveMetastore\n          metastoreUris: thrift://123:123\n          version: 2.3.9\n          loginMode: Anonymous\n          securityProtocol: authTypeNone\n          envType: Prod\n          properties:\n            key1: value1\n      connectionPropertiesMode: UrlMode\n      projectId: ${defaultkguw4R.id}\n      description: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nData Works Data Source can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dataworks/dataSource:DataSource example \u003cproject_id\u003e:\u003cdata_source_id\u003e\n```\n\n","properties":{"connectionProperties":{"type":"string","description":"Data source connection configuration information, including the connection address, access identity, and environment information. The data source environment EnvType information is a member property of this object, including DEV (Development Environment) and PROD (production environment). The value of EnvType is not case-sensitive.\n","secret":true},"connectionPropertiesMode":{"type":"string","description":"The configuration mode of the data source. Different types of data sources have different configuration modes. For example, MySQL data sources support UrlMode and InstanceMode.\n"},"createTime":{"type":"integer","description":"The creation time of the resource\n"},"createUser":{"type":"string","description":"Creator of the data source\n"},"dataSourceId":{"type":"integer","description":"The first ID of the resource\n"},"dataSourceName":{"type":"string","description":"The data source name. The name of a data source in a specific environment (development environment or production environment) is unique in a project.\n"},"description":{"type":"string","description":"Description of the data source\n"},"modifyTime":{"type":"integer","description":"Modification time\n"},"modifyUser":{"type":"string","description":"Modifier of the data source\n"},"projectId":{"type":"integer","description":"The ID of the project to which the data source belongs.\n"},"qualifiedName":{"type":"string","description":"Business Unique Key of Data Source\n"},"type":{"type":"string","description":"The type of data source. For a list of data source types, see the values listed in the API documentation.\n"}},"required":["connectionProperties","connectionPropertiesMode","createTime","createUser","dataSourceId","dataSourceName","modifyTime","modifyUser","projectId","qualifiedName","type"],"inputProperties":{"connectionProperties":{"type":"string","description":"Data source connection configuration information, including the connection address, access identity, and environment information. The data source environment EnvType information is a member property of this object, including DEV (Development Environment) and PROD (production environment). The value of EnvType is not case-sensitive.\n","secret":true},"connectionPropertiesMode":{"type":"string","description":"The configuration mode of the data source. Different types of data sources have different configuration modes. For example, MySQL data sources support UrlMode and InstanceMode.\n"},"dataSourceName":{"type":"string","description":"The data source name. The name of a data source in a specific environment (development environment or production environment) is unique in a project.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of the data source\n"},"projectId":{"type":"integer","description":"The ID of the project to which the data source belongs.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of data source. For a list of data source types, see the values listed in the API documentation.\n","willReplaceOnChanges":true}},"requiredInputs":["connectionProperties","connectionPropertiesMode","dataSourceName","projectId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering DataSource resources.\n","properties":{"connectionProperties":{"type":"string","description":"Data source connection configuration information, including the connection address, access identity, and environment information. The data source environment EnvType information is a member property of this object, including DEV (Development Environment) and PROD (production environment). The value of EnvType is not case-sensitive.\n","secret":true},"connectionPropertiesMode":{"type":"string","description":"The configuration mode of the data source. Different types of data sources have different configuration modes. For example, MySQL data sources support UrlMode and InstanceMode.\n"},"createTime":{"type":"integer","description":"The creation time of the resource\n"},"createUser":{"type":"string","description":"Creator of the data source\n"},"dataSourceId":{"type":"integer","description":"The first ID of the resource\n"},"dataSourceName":{"type":"string","description":"The data source name. The name of a data source in a specific environment (development environment or production environment) is unique in a project.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of the data source\n"},"modifyTime":{"type":"integer","description":"Modification time\n"},"modifyUser":{"type":"string","description":"Modifier of the data source\n"},"projectId":{"type":"integer","description":"The ID of the project to which the data source belongs.\n","willReplaceOnChanges":true},"qualifiedName":{"type":"string","description":"Business Unique Key of Data Source\n"},"type":{"type":"string","description":"The type of data source. For a list of data source types, see the values listed in the API documentation.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dataworks/dataSourceSharedRule:DataSourceSharedRule":{"description":"Provides a Data Works Data Source Shared Rule resource.\n\nData source sharing rule, which expresses A data source, from space A to space B (A user).\n\nFor information about Data Works Data Source Shared Rule and how to use it, see [What is Data Source Shared Rule](https://www.alibabacloud.com/help/en/dataworks/developer-reference/api-dataworks-public-2024-05-18-createdatasourcesharedrule).\n\n\u003e **NOTE:** Available since v1.237.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst randint = new random.index.Integer(\"randint\", {\n    max: 999,\n    min: 1,\n});\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultQeRfvU = new alicloud.dataworks.Project(\"defaultQeRfvU\", {\n    description: \"源项目\",\n    projectName: name,\n    displayName: \"shared_source2\",\n    paiTaskEnabled: true,\n});\nconst defaultasjsH5 = new alicloud.dataworks.Project(\"defaultasjsH5\", {\n    description: \"目标空间\",\n    projectName: std.format({\n        input: \"%s1\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    displayName: \"shared_target2\",\n    paiTaskEnabled: true,\n});\nconst defaultvzu0wG = new alicloud.dataworks.DataSource(\"defaultvzu0wG\", {\n    type: \"hive\",\n    dataSourceName: std.format({\n        input: \"%s2\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    connectionProperties: JSON.stringify({\n        address: [{\n            host: \"127.0.0.1\",\n            port: \"1234\",\n        }],\n        database: \"hive_database\",\n        metaType: \"HiveMetastore\",\n        metastoreUris: \"thrift://123:123\",\n        version: \"2.3.9\",\n        loginMode: \"Anonymous\",\n        securityProtocol: \"authTypeNone\",\n        envType: \"Prod\",\n        properties: {\n            key1: \"value1\",\n        },\n    }),\n    projectId: defaultQeRfvU.id,\n    connectionPropertiesMode: \"UrlMode\",\n});\nconst defaultDataSourceSharedRule = new alicloud.dataworks.DataSourceSharedRule(\"default\", {\n    targetProjectId: defaultasjsH5.id,\n    dataSourceId: defaultvzu0wG.dataSourceId,\n    envType: \"Prod\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\nrandint = random.index.Integer(\"randint\",\n    max=999,\n    min=1)\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_qe_rfv_u = alicloud.dataworks.Project(\"defaultQeRfvU\",\n    description=\"源项目\",\n    project_name=name,\n    display_name=\"shared_source2\",\n    pai_task_enabled=True)\ndefaultasjs_h5 = alicloud.dataworks.Project(\"defaultasjsH5\",\n    description=\"目标空间\",\n    project_name=std.format(input=\"%s1\",\n        args=[name]).result,\n    display_name=\"shared_target2\",\n    pai_task_enabled=True)\ndefaultvzu0w_g = alicloud.dataworks.DataSource(\"defaultvzu0wG\",\n    type=\"hive\",\n    data_source_name=std.format(input=\"%s2\",\n        args=[name]).result,\n    connection_properties=json.dumps({\n        \"address\": [{\n            \"host\": \"127.0.0.1\",\n            \"port\": \"1234\",\n        }],\n        \"database\": \"hive_database\",\n        \"metaType\": \"HiveMetastore\",\n        \"metastoreUris\": \"thrift://123:123\",\n        \"version\": \"2.3.9\",\n        \"loginMode\": \"Anonymous\",\n        \"securityProtocol\": \"authTypeNone\",\n        \"envType\": \"Prod\",\n        \"properties\": {\n            \"key1\": \"value1\",\n        },\n    }),\n    project_id=default_qe_rfv_u.id,\n    connection_properties_mode=\"UrlMode\")\ndefault_data_source_shared_rule = alicloud.dataworks.DataSourceSharedRule(\"default\",\n    target_project_id=defaultasjs_h5.id,\n    data_source_id=defaultvzu0w_g.data_source_id,\n    env_type=\"Prod\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var randint = new Random.Index.Integer(\"randint\", new()\n    {\n        Max = 999,\n        Min = 1,\n    });\n\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultQeRfvU = new AliCloud.DataWorks.Project(\"defaultQeRfvU\", new()\n    {\n        Description = \"源项目\",\n        ProjectName = name,\n        DisplayName = \"shared_source2\",\n        PaiTaskEnabled = true,\n    });\n\n    var defaultasjsH5 = new AliCloud.DataWorks.Project(\"defaultasjsH5\", new()\n    {\n        Description = \"目标空间\",\n        ProjectName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        DisplayName = \"shared_target2\",\n        PaiTaskEnabled = true,\n    });\n\n    var defaultvzu0wG = new AliCloud.DataWorks.DataSource(\"defaultvzu0wG\", new()\n    {\n        Type = \"hive\",\n        DataSourceName = Std.Format.Invoke(new()\n        {\n            Input = \"%s2\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        ConnectionProperties = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"address\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"host\"] = \"127.0.0.1\",\n                    [\"port\"] = \"1234\",\n                },\n            },\n            [\"database\"] = \"hive_database\",\n            [\"metaType\"] = \"HiveMetastore\",\n            [\"metastoreUris\"] = \"thrift://123:123\",\n            [\"version\"] = \"2.3.9\",\n            [\"loginMode\"] = \"Anonymous\",\n            [\"securityProtocol\"] = \"authTypeNone\",\n            [\"envType\"] = \"Prod\",\n            [\"properties\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"key1\"] = \"value1\",\n            },\n        }),\n        ProjectId = defaultQeRfvU.Id,\n        ConnectionPropertiesMode = \"UrlMode\",\n    });\n\n    var defaultDataSourceSharedRule = new AliCloud.DataWorks.DataSourceSharedRule(\"default\", new()\n    {\n        TargetProjectId = defaultasjsH5.Id,\n        DataSourceId = defaultvzu0wG.DataSourceId,\n        EnvType = \"Prod\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dataworks\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := random.NewInteger(ctx, \"randint\", \u0026random.IntegerArgs{\n\t\t\tMax: 999,\n\t\t\tMin: 1,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultQeRfvU, err := dataworks.NewProject(ctx, \"defaultQeRfvU\", \u0026dataworks.ProjectArgs{\n\t\t\tDescription:    pulumi.String(\"源项目\"),\n\t\t\tProjectName:    pulumi.String(name),\n\t\t\tDisplayName:    pulumi.String(\"shared_source2\"),\n\t\t\tPaiTaskEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultasjsH5, err := dataworks.NewProject(ctx, \"defaultasjsH5\", \u0026dataworks.ProjectArgs{\n\t\t\tDescription:    pulumi.String(\"目标空间\"),\n\t\t\tProjectName:    pulumi.String(invokeFormat.Result),\n\t\t\tDisplayName:    pulumi.String(\"shared_target2\"),\n\t\t\tPaiTaskEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s2\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"address\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"host\": \"127.0.0.1\",\n\t\t\t\t\t\"port\": \"1234\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"database\":         \"hive_database\",\n\t\t\t\"metaType\":         \"HiveMetastore\",\n\t\t\t\"metastoreUris\":    \"thrift://123:123\",\n\t\t\t\"version\":          \"2.3.9\",\n\t\t\t\"loginMode\":        \"Anonymous\",\n\t\t\t\"securityProtocol\": \"authTypeNone\",\n\t\t\t\"envType\":          \"Prod\",\n\t\t\t\"properties\": map[string]interface{}{\n\t\t\t\t\"key1\": \"value1\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tdefaultvzu0wG, err := dataworks.NewDataSource(ctx, \"defaultvzu0wG\", \u0026dataworks.DataSourceArgs{\n\t\t\tType:                     pulumi.String(\"hive\"),\n\t\t\tDataSourceName:           pulumi.String(invokeFormat1.Result),\n\t\t\tConnectionProperties:     pulumi.String(json0),\n\t\t\tProjectId:                defaultQeRfvU.ID(),\n\t\t\tConnectionPropertiesMode: pulumi.String(\"UrlMode\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dataworks.NewDataSourceSharedRule(ctx, \"default\", \u0026dataworks.DataSourceSharedRuleArgs{\n\t\t\tTargetProjectId: defaultasjsH5.ID(),\n\t\t\tDataSourceId:    defaultvzu0wG.DataSourceId,\n\t\t\tEnvType:         pulumi.String(\"Prod\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.dataworks.Project;\nimport com.pulumi.alicloud.dataworks.ProjectArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.dataworks.DataSource;\nimport com.pulumi.alicloud.dataworks.DataSourceArgs;\nimport com.pulumi.alicloud.dataworks.DataSourceSharedRule;\nimport com.pulumi.alicloud.dataworks.DataSourceSharedRuleArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var randint = new Integer(\"randint\", IntegerArgs.builder()\n            .max(999)\n            .min(1)\n            .build());\n\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultQeRfvU = new Project(\"defaultQeRfvU\", ProjectArgs.builder()\n            .description(\"源项目\")\n            .projectName(name)\n            .displayName(\"shared_source2\")\n            .paiTaskEnabled(true)\n            .build());\n\n        var defaultasjsH5 = new Project(\"defaultasjsH5\", ProjectArgs.builder()\n            .description(\"目标空间\")\n            .projectName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1\")\n                .args(name)\n                .build()).result())\n            .displayName(\"shared_target2\")\n            .paiTaskEnabled(true)\n            .build());\n\n        var defaultvzu0wG = new DataSource(\"defaultvzu0wG\", DataSourceArgs.builder()\n            .type(\"hive\")\n            .dataSourceName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s2\")\n                .args(name)\n                .build()).result())\n            .connectionProperties(serializeJson(\n                jsonObject(\n                    jsonProperty(\"address\", jsonArray(jsonObject(\n                        jsonProperty(\"host\", \"127.0.0.1\"),\n                        jsonProperty(\"port\", \"1234\")\n                    ))),\n                    jsonProperty(\"database\", \"hive_database\"),\n                    jsonProperty(\"metaType\", \"HiveMetastore\"),\n                    jsonProperty(\"metastoreUris\", \"thrift://123:123\"),\n                    jsonProperty(\"version\", \"2.3.9\"),\n                    jsonProperty(\"loginMode\", \"Anonymous\"),\n                    jsonProperty(\"securityProtocol\", \"authTypeNone\"),\n                    jsonProperty(\"envType\", \"Prod\"),\n                    jsonProperty(\"properties\", jsonObject(\n                        jsonProperty(\"key1\", \"value1\")\n                    ))\n                )))\n            .projectId(defaultQeRfvU.id())\n            .connectionPropertiesMode(\"UrlMode\")\n            .build());\n\n        var defaultDataSourceSharedRule = new DataSourceSharedRule(\"defaultDataSourceSharedRule\", DataSourceSharedRuleArgs.builder()\n            .targetProjectId(defaultasjsH5.id())\n            .dataSourceId(defaultvzu0wG.dataSourceId())\n            .envType(\"Prod\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  randint:\n    type: random:Integer\n    properties:\n      max: 999\n      min: 1\n  defaultQeRfvU:\n    type: alicloud:dataworks:Project\n    properties:\n      description: 源项目\n      projectName: ${name}\n      displayName: shared_source2\n      paiTaskEnabled: true\n  defaultasjsH5:\n    type: alicloud:dataworks:Project\n    properties:\n      description: 目标空间\n      projectName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1'\n            args:\n              - ${name}\n          return: result\n      displayName: shared_target2\n      paiTaskEnabled: true\n  defaultvzu0wG:\n    type: alicloud:dataworks:DataSource\n    properties:\n      type: hive\n      dataSourceName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s2'\n            args:\n              - ${name}\n          return: result\n      connectionProperties:\n        fn::toJSON:\n          address:\n            - host: 127.0.0.1\n              port: '1234'\n          database: hive_database\n          metaType: HiveMetastore\n          metastoreUris: thrift://123:123\n          version: 2.3.9\n          loginMode: Anonymous\n          securityProtocol: authTypeNone\n          envType: Prod\n          properties:\n            key1: value1\n      projectId: ${defaultQeRfvU.id}\n      connectionPropertiesMode: UrlMode\n  defaultDataSourceSharedRule:\n    type: alicloud:dataworks:DataSourceSharedRule\n    name: default\n    properties:\n      targetProjectId: ${defaultasjsH5.id}\n      dataSourceId: ${defaultvzu0wG.dataSourceId}\n      envType: Prod\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nData Works Data Source Shared Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dataworks/dataSourceSharedRule:DataSourceSharedRule example \u003cdata_source_id\u003e:\u003cdata_source_shared_rule_id\u003e\n```\n\n","properties":{"createTime":{"type":"integer","description":"The creation time of the data source sharing rule.\n"},"dataSourceId":{"type":"integer","description":"The ID of the data source, that is, the unique identifier of the data source.\n"},"dataSourceSharedRuleId":{"type":"string","description":"The data source sharing rule ID, that is, the unique identifier of the data source sharing rule.\n"},"envType":{"type":"string","description":"The environment type of the data source shared to the target project, such as Dev (Development Environment) and Prod (production environment).\n"},"sharedUser":{"type":"string","description":"The target user of the data source permission policy, which is null to share to the project.\n"},"targetProjectId":{"type":"integer","description":"The ID of the project to which the data source is shared.\n"}},"required":["createTime","dataSourceId","dataSourceSharedRuleId","envType","targetProjectId"],"inputProperties":{"dataSourceId":{"type":"integer","description":"The ID of the data source, that is, the unique identifier of the data source.\n","willReplaceOnChanges":true},"envType":{"type":"string","description":"The environment type of the data source shared to the target project, such as Dev (Development Environment) and Prod (production environment).\n","willReplaceOnChanges":true},"sharedUser":{"type":"string","description":"The target user of the data source permission policy, which is null to share to the project.\n","willReplaceOnChanges":true},"targetProjectId":{"type":"integer","description":"The ID of the project to which the data source is shared.\n","willReplaceOnChanges":true}},"requiredInputs":["dataSourceId","envType","targetProjectId"],"stateInputs":{"description":"Input properties used for looking up and filtering DataSourceSharedRule resources.\n","properties":{"createTime":{"type":"integer","description":"The creation time of the data source sharing rule.\n"},"dataSourceId":{"type":"integer","description":"The ID of the data source, that is, the unique identifier of the data source.\n","willReplaceOnChanges":true},"dataSourceSharedRuleId":{"type":"string","description":"The data source sharing rule ID, that is, the unique identifier of the data source sharing rule.\n"},"envType":{"type":"string","description":"The environment type of the data source shared to the target project, such as Dev (Development Environment) and Prod (production environment).\n","willReplaceOnChanges":true},"sharedUser":{"type":"string","description":"The target user of the data source permission policy, which is null to share to the project.\n","willReplaceOnChanges":true},"targetProjectId":{"type":"integer","description":"The ID of the project to which the data source is shared.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dataworks/diAlarmRule:DiAlarmRule":{"description":"Provides a Data Works Di Alarm Rule resource.\n\nData Integration alarm rules.\n\nFor information about Data Works Di Alarm Rule and how to use it, see [What is Di Alarm Rule](https://www.alibabacloud.com/help/en/dataworks/developer-reference/api-dataworks-public-2024-05-18-createdialarmrule).\n\n\u003e **NOTE:** Available since v1.241.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst defaulteNv8bu = new alicloud.dataworks.Project(\"defaulteNv8bu\", {\n    projectName: name,\n    displayName: name,\n    description: name,\n    paiTaskEnabled: true,\n});\nconst defaultUW8inp = new alicloud.dataworks.DiJob(\"defaultUW8inp\", {\n    description: \"xxxx\",\n    projectId: defaulteNv8bu.id,\n    jobName: \"xxx\",\n    migrationType: \"api_xxx\",\n    sourceDataSourceType: \"xxx\",\n    resourceSettings: {\n        offlineResourceSettings: {\n            requestedCu: 2,\n            resourceGroupIdentifier: \"xx\",\n        },\n        realtimeResourceSettings: {\n            requestedCu: 2,\n            resourceGroupIdentifier: \"xx\",\n        },\n        scheduleResourceSettings: {\n            requestedCu: 2,\n            resourceGroupIdentifier: \"xx\",\n        },\n    },\n    jobSettings: {\n        channelSettings: \"xxxx\",\n        columnDataTypeSettings: [{\n            destinationDataType: \"xxxx\",\n            sourceDataType: \"xxxx\",\n        }],\n        cycleScheduleSettings: {\n            cycleMigrationType: \"xxxx\",\n            scheduleParameters: \"xxxx\",\n        },\n    },\n    sourceDataSourceSettings: [{\n        dataSourceName: \"xxxx\",\n        dataSourceProperties: {\n            encoding: \"xxxx\",\n            timezone: \"xxxx\",\n        },\n    }],\n    destinationDataSourceType: \"xxxx\",\n    tableMappings: [{\n        sourceObjectSelectionRules: [\n            {\n                action: \"Include\",\n                expression: \"xxxx\",\n                expressionType: \"Exact\",\n                objectType: \"xxxx\",\n            },\n            {\n                action: \"Include\",\n                expression: \"xxxx\",\n                expressionType: \"Exact\",\n                objectType: \"xxxx\",\n            },\n        ],\n        transformationRules: [{\n            ruleName: \"xxxx\",\n            ruleActionType: \"xxxx\",\n            ruleTargetType: \"xxxx\",\n        }],\n    }],\n    transformationRules: [{\n        ruleActionType: \"xxxx\",\n        ruleExpression: \"xxxx\",\n        ruleName: \"xxxx\",\n        ruleTargetType: \"xxxx\",\n    }],\n    destinationDataSourceSettings: [{\n        dataSourceName: \"xxx\",\n    }],\n});\nconst _default = new alicloud.dataworks.DiAlarmRule(\"default\", {\n    description: \"Description\",\n    triggerConditions: [{\n        ddlReportTags: [\"ALTERADDCOLUMN\"],\n        threshold: 20,\n        duration: 10,\n        severity: \"Warning\",\n    }],\n    metricType: \"DdlReport\",\n    notificationSettings: {\n        notificationChannels: [{\n            severity: \"Warning\",\n            channels: [\"Ding\"],\n        }],\n        notificationReceivers: [{\n            receiverType: \"DingToken\",\n            receiverValues: [\"1107550004253538\"],\n        }],\n        inhibitionInterval: 10,\n    },\n    diJobId: defaultUW8inp.diJobId,\n    diAlarmRuleName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefaulte_nv8bu = alicloud.dataworks.Project(\"defaulteNv8bu\",\n    project_name=name,\n    display_name=name,\n    description=name,\n    pai_task_enabled=True)\ndefault_uw8inp = alicloud.dataworks.DiJob(\"defaultUW8inp\",\n    description=\"xxxx\",\n    project_id=defaulte_nv8bu.id,\n    job_name=\"xxx\",\n    migration_type=\"api_xxx\",\n    source_data_source_type=\"xxx\",\n    resource_settings={\n        \"offline_resource_settings\": {\n            \"requested_cu\": 2,\n            \"resource_group_identifier\": \"xx\",\n        },\n        \"realtime_resource_settings\": {\n            \"requested_cu\": 2,\n            \"resource_group_identifier\": \"xx\",\n        },\n        \"schedule_resource_settings\": {\n            \"requested_cu\": 2,\n            \"resource_group_identifier\": \"xx\",\n        },\n    },\n    job_settings={\n        \"channel_settings\": \"xxxx\",\n        \"column_data_type_settings\": [{\n            \"destination_data_type\": \"xxxx\",\n            \"source_data_type\": \"xxxx\",\n        }],\n        \"cycle_schedule_settings\": {\n            \"cycle_migration_type\": \"xxxx\",\n            \"schedule_parameters\": \"xxxx\",\n        },\n    },\n    source_data_source_settings=[{\n        \"data_source_name\": \"xxxx\",\n        \"data_source_properties\": {\n            \"encoding\": \"xxxx\",\n            \"timezone\": \"xxxx\",\n        },\n    }],\n    destination_data_source_type=\"xxxx\",\n    table_mappings=[{\n        \"source_object_selection_rules\": [\n            {\n                \"action\": \"Include\",\n                \"expression\": \"xxxx\",\n                \"expression_type\": \"Exact\",\n                \"object_type\": \"xxxx\",\n            },\n            {\n                \"action\": \"Include\",\n                \"expression\": \"xxxx\",\n                \"expression_type\": \"Exact\",\n                \"object_type\": \"xxxx\",\n            },\n        ],\n        \"transformation_rules\": [{\n            \"rule_name\": \"xxxx\",\n            \"rule_action_type\": \"xxxx\",\n            \"rule_target_type\": \"xxxx\",\n        }],\n    }],\n    transformation_rules=[{\n        \"rule_action_type\": \"xxxx\",\n        \"rule_expression\": \"xxxx\",\n        \"rule_name\": \"xxxx\",\n        \"rule_target_type\": \"xxxx\",\n    }],\n    destination_data_source_settings=[{\n        \"data_source_name\": \"xxx\",\n    }])\ndefault = alicloud.dataworks.DiAlarmRule(\"default\",\n    description=\"Description\",\n    trigger_conditions=[{\n        \"ddl_report_tags\": [\"ALTERADDCOLUMN\"],\n        \"threshold\": 20,\n        \"duration\": 10,\n        \"severity\": \"Warning\",\n    }],\n    metric_type=\"DdlReport\",\n    notification_settings={\n        \"notification_channels\": [{\n            \"severity\": \"Warning\",\n            \"channels\": [\"Ding\"],\n        }],\n        \"notification_receivers\": [{\n            \"receiver_type\": \"DingToken\",\n            \"receiver_values\": [\"1107550004253538\"],\n        }],\n        \"inhibition_interval\": 10,\n    },\n    di_job_id=default_uw8inp.di_job_id,\n    di_alarm_rule_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var defaulteNv8bu = new AliCloud.DataWorks.Project(\"defaulteNv8bu\", new()\n    {\n        ProjectName = name,\n        DisplayName = name,\n        Description = name,\n        PaiTaskEnabled = true,\n    });\n\n    var defaultUW8inp = new AliCloud.DataWorks.DiJob(\"defaultUW8inp\", new()\n    {\n        Description = \"xxxx\",\n        ProjectId = defaulteNv8bu.Id,\n        JobName = \"xxx\",\n        MigrationType = \"api_xxx\",\n        SourceDataSourceType = \"xxx\",\n        ResourceSettings = new AliCloud.DataWorks.Inputs.DiJobResourceSettingsArgs\n        {\n            OfflineResourceSettings = new AliCloud.DataWorks.Inputs.DiJobResourceSettingsOfflineResourceSettingsArgs\n            {\n                RequestedCu = 2,\n                ResourceGroupIdentifier = \"xx\",\n            },\n            RealtimeResourceSettings = new AliCloud.DataWorks.Inputs.DiJobResourceSettingsRealtimeResourceSettingsArgs\n            {\n                RequestedCu = 2,\n                ResourceGroupIdentifier = \"xx\",\n            },\n            ScheduleResourceSettings = new AliCloud.DataWorks.Inputs.DiJobResourceSettingsScheduleResourceSettingsArgs\n            {\n                RequestedCu = 2,\n                ResourceGroupIdentifier = \"xx\",\n            },\n        },\n        JobSettings = new AliCloud.DataWorks.Inputs.DiJobJobSettingsArgs\n        {\n            ChannelSettings = \"xxxx\",\n            ColumnDataTypeSettings = new[]\n            {\n                new AliCloud.DataWorks.Inputs.DiJobJobSettingsColumnDataTypeSettingArgs\n                {\n                    DestinationDataType = \"xxxx\",\n                    SourceDataType = \"xxxx\",\n                },\n            },\n            CycleScheduleSettings = new AliCloud.DataWorks.Inputs.DiJobJobSettingsCycleScheduleSettingsArgs\n            {\n                CycleMigrationType = \"xxxx\",\n                ScheduleParameters = \"xxxx\",\n            },\n        },\n        SourceDataSourceSettings = new[]\n        {\n            new AliCloud.DataWorks.Inputs.DiJobSourceDataSourceSettingArgs\n            {\n                DataSourceName = \"xxxx\",\n                DataSourceProperties = new AliCloud.DataWorks.Inputs.DiJobSourceDataSourceSettingDataSourcePropertiesArgs\n                {\n                    Encoding = \"xxxx\",\n                    Timezone = \"xxxx\",\n                },\n            },\n        },\n        DestinationDataSourceType = \"xxxx\",\n        TableMappings = new[]\n        {\n            new AliCloud.DataWorks.Inputs.DiJobTableMappingArgs\n            {\n                SourceObjectSelectionRules = new[]\n                {\n                    new AliCloud.DataWorks.Inputs.DiJobTableMappingSourceObjectSelectionRuleArgs\n                    {\n                        Action = \"Include\",\n                        Expression = \"xxxx\",\n                        ExpressionType = \"Exact\",\n                        ObjectType = \"xxxx\",\n                    },\n                    new AliCloud.DataWorks.Inputs.DiJobTableMappingSourceObjectSelectionRuleArgs\n                    {\n                        Action = \"Include\",\n                        Expression = \"xxxx\",\n                        ExpressionType = \"Exact\",\n                        ObjectType = \"xxxx\",\n                    },\n                },\n                TransformationRules = new[]\n                {\n                    new AliCloud.DataWorks.Inputs.DiJobTableMappingTransformationRuleArgs\n                    {\n                        RuleName = \"xxxx\",\n                        RuleActionType = \"xxxx\",\n                        RuleTargetType = \"xxxx\",\n                    },\n                },\n            },\n        },\n        TransformationRules = new[]\n        {\n            new AliCloud.DataWorks.Inputs.DiJobTransformationRuleArgs\n            {\n                RuleActionType = \"xxxx\",\n                RuleExpression = \"xxxx\",\n                RuleName = \"xxxx\",\n                RuleTargetType = \"xxxx\",\n            },\n        },\n        DestinationDataSourceSettings = new[]\n        {\n            new AliCloud.DataWorks.Inputs.DiJobDestinationDataSourceSettingArgs\n            {\n                DataSourceName = \"xxx\",\n            },\n        },\n    });\n\n    var @default = new AliCloud.DataWorks.DiAlarmRule(\"default\", new()\n    {\n        Description = \"Description\",\n        TriggerConditions = new[]\n        {\n            new AliCloud.DataWorks.Inputs.DiAlarmRuleTriggerConditionArgs\n            {\n                DdlReportTags = new[]\n                {\n                    \"ALTERADDCOLUMN\",\n                },\n                Threshold = 20,\n                Duration = 10,\n                Severity = \"Warning\",\n            },\n        },\n        MetricType = \"DdlReport\",\n        NotificationSettings = new AliCloud.DataWorks.Inputs.DiAlarmRuleNotificationSettingsArgs\n        {\n            NotificationChannels = new[]\n            {\n                new AliCloud.DataWorks.Inputs.DiAlarmRuleNotificationSettingsNotificationChannelArgs\n                {\n                    Severity = \"Warning\",\n                    Channels = new[]\n                    {\n                        \"Ding\",\n                    },\n                },\n            },\n            NotificationReceivers = new[]\n            {\n                new AliCloud.DataWorks.Inputs.DiAlarmRuleNotificationSettingsNotificationReceiverArgs\n                {\n                    ReceiverType = \"DingToken\",\n                    ReceiverValues = new[]\n                    {\n                        \"1107550004253538\",\n                    },\n                },\n            },\n            InhibitionInterval = 10,\n        },\n        DiJobId = defaultUW8inp.DiJobId,\n        DiAlarmRuleName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dataworks\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaulteNv8bu, err := dataworks.NewProject(ctx, \"defaulteNv8bu\", \u0026dataworks.ProjectArgs{\n\t\t\tProjectName:    pulumi.String(name),\n\t\t\tDisplayName:    pulumi.String(name),\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tPaiTaskEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultUW8inp, err := dataworks.NewDiJob(ctx, \"defaultUW8inp\", \u0026dataworks.DiJobArgs{\n\t\t\tDescription:          pulumi.String(\"xxxx\"),\n\t\t\tProjectId:            defaulteNv8bu.ID(),\n\t\t\tJobName:              pulumi.String(\"xxx\"),\n\t\t\tMigrationType:        pulumi.String(\"api_xxx\"),\n\t\t\tSourceDataSourceType: pulumi.String(\"xxx\"),\n\t\t\tResourceSettings: \u0026dataworks.DiJobResourceSettingsArgs{\n\t\t\t\tOfflineResourceSettings: \u0026dataworks.DiJobResourceSettingsOfflineResourceSettingsArgs{\n\t\t\t\t\tRequestedCu:             pulumi.Float64(2),\n\t\t\t\t\tResourceGroupIdentifier: pulumi.String(\"xx\"),\n\t\t\t\t},\n\t\t\t\tRealtimeResourceSettings: \u0026dataworks.DiJobResourceSettingsRealtimeResourceSettingsArgs{\n\t\t\t\t\tRequestedCu:             pulumi.Float64(2),\n\t\t\t\t\tResourceGroupIdentifier: pulumi.String(\"xx\"),\n\t\t\t\t},\n\t\t\t\tScheduleResourceSettings: \u0026dataworks.DiJobResourceSettingsScheduleResourceSettingsArgs{\n\t\t\t\t\tRequestedCu:             pulumi.Float64(2),\n\t\t\t\t\tResourceGroupIdentifier: pulumi.String(\"xx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tJobSettings: \u0026dataworks.DiJobJobSettingsArgs{\n\t\t\t\tChannelSettings: pulumi.String(\"xxxx\"),\n\t\t\t\tColumnDataTypeSettings: dataworks.DiJobJobSettingsColumnDataTypeSettingArray{\n\t\t\t\t\t\u0026dataworks.DiJobJobSettingsColumnDataTypeSettingArgs{\n\t\t\t\t\t\tDestinationDataType: pulumi.String(\"xxxx\"),\n\t\t\t\t\t\tSourceDataType:      pulumi.String(\"xxxx\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tCycleScheduleSettings: \u0026dataworks.DiJobJobSettingsCycleScheduleSettingsArgs{\n\t\t\t\t\tCycleMigrationType: pulumi.String(\"xxxx\"),\n\t\t\t\t\tScheduleParameters: pulumi.String(\"xxxx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSourceDataSourceSettings: dataworks.DiJobSourceDataSourceSettingArray{\n\t\t\t\t\u0026dataworks.DiJobSourceDataSourceSettingArgs{\n\t\t\t\t\tDataSourceName: pulumi.String(\"xxxx\"),\n\t\t\t\t\tDataSourceProperties: \u0026dataworks.DiJobSourceDataSourceSettingDataSourcePropertiesArgs{\n\t\t\t\t\t\tEncoding: pulumi.String(\"xxxx\"),\n\t\t\t\t\t\tTimezone: pulumi.String(\"xxxx\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestinationDataSourceType: pulumi.String(\"xxxx\"),\n\t\t\tTableMappings: dataworks.DiJobTableMappingArray{\n\t\t\t\t\u0026dataworks.DiJobTableMappingArgs{\n\t\t\t\t\tSourceObjectSelectionRules: dataworks.DiJobTableMappingSourceObjectSelectionRuleArray{\n\t\t\t\t\t\t\u0026dataworks.DiJobTableMappingSourceObjectSelectionRuleArgs{\n\t\t\t\t\t\t\tAction:         pulumi.String(\"Include\"),\n\t\t\t\t\t\t\tExpression:     pulumi.String(\"xxxx\"),\n\t\t\t\t\t\t\tExpressionType: pulumi.String(\"Exact\"),\n\t\t\t\t\t\t\tObjectType:     pulumi.String(\"xxxx\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026dataworks.DiJobTableMappingSourceObjectSelectionRuleArgs{\n\t\t\t\t\t\t\tAction:         pulumi.String(\"Include\"),\n\t\t\t\t\t\t\tExpression:     pulumi.String(\"xxxx\"),\n\t\t\t\t\t\t\tExpressionType: pulumi.String(\"Exact\"),\n\t\t\t\t\t\t\tObjectType:     pulumi.String(\"xxxx\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tTransformationRules: dataworks.DiJobTableMappingTransformationRuleArray{\n\t\t\t\t\t\t\u0026dataworks.DiJobTableMappingTransformationRuleArgs{\n\t\t\t\t\t\t\tRuleName:       pulumi.String(\"xxxx\"),\n\t\t\t\t\t\t\tRuleActionType: pulumi.String(\"xxxx\"),\n\t\t\t\t\t\t\tRuleTargetType: pulumi.String(\"xxxx\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTransformationRules: dataworks.DiJobTransformationRuleArray{\n\t\t\t\t\u0026dataworks.DiJobTransformationRuleArgs{\n\t\t\t\t\tRuleActionType: pulumi.String(\"xxxx\"),\n\t\t\t\t\tRuleExpression: pulumi.String(\"xxxx\"),\n\t\t\t\t\tRuleName:       pulumi.String(\"xxxx\"),\n\t\t\t\t\tRuleTargetType: pulumi.String(\"xxxx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestinationDataSourceSettings: dataworks.DiJobDestinationDataSourceSettingArray{\n\t\t\t\t\u0026dataworks.DiJobDestinationDataSourceSettingArgs{\n\t\t\t\t\tDataSourceName: pulumi.String(\"xxx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dataworks.NewDiAlarmRule(ctx, \"default\", \u0026dataworks.DiAlarmRuleArgs{\n\t\t\tDescription: pulumi.String(\"Description\"),\n\t\t\tTriggerConditions: dataworks.DiAlarmRuleTriggerConditionArray{\n\t\t\t\t\u0026dataworks.DiAlarmRuleTriggerConditionArgs{\n\t\t\t\t\tDdlReportTags: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ALTERADDCOLUMN\"),\n\t\t\t\t\t},\n\t\t\t\t\tThreshold: pulumi.Int(20),\n\t\t\t\t\tDuration:  pulumi.Int(10),\n\t\t\t\t\tSeverity:  pulumi.String(\"Warning\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetricType: pulumi.String(\"DdlReport\"),\n\t\t\tNotificationSettings: \u0026dataworks.DiAlarmRuleNotificationSettingsArgs{\n\t\t\t\tNotificationChannels: dataworks.DiAlarmRuleNotificationSettingsNotificationChannelArray{\n\t\t\t\t\t\u0026dataworks.DiAlarmRuleNotificationSettingsNotificationChannelArgs{\n\t\t\t\t\t\tSeverity: pulumi.String(\"Warning\"),\n\t\t\t\t\t\tChannels: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Ding\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tNotificationReceivers: dataworks.DiAlarmRuleNotificationSettingsNotificationReceiverArray{\n\t\t\t\t\t\u0026dataworks.DiAlarmRuleNotificationSettingsNotificationReceiverArgs{\n\t\t\t\t\t\tReceiverType: pulumi.String(\"DingToken\"),\n\t\t\t\t\t\tReceiverValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"1107550004253538\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tInhibitionInterval: pulumi.Int(10),\n\t\t\t},\n\t\t\tDiJobId:         defaultUW8inp.DiJobId,\n\t\t\tDiAlarmRuleName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dataworks.Project;\nimport com.pulumi.alicloud.dataworks.ProjectArgs;\nimport com.pulumi.alicloud.dataworks.DiJob;\nimport com.pulumi.alicloud.dataworks.DiJobArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobResourceSettingsArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobResourceSettingsOfflineResourceSettingsArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobResourceSettingsRealtimeResourceSettingsArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobResourceSettingsScheduleResourceSettingsArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobJobSettingsArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobJobSettingsCycleScheduleSettingsArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobSourceDataSourceSettingArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobSourceDataSourceSettingDataSourcePropertiesArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobTableMappingArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobTransformationRuleArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobDestinationDataSourceSettingArgs;\nimport com.pulumi.alicloud.dataworks.DiAlarmRule;\nimport com.pulumi.alicloud.dataworks.DiAlarmRuleArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiAlarmRuleTriggerConditionArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiAlarmRuleNotificationSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var defaulteNv8bu = new Project(\"defaulteNv8bu\", ProjectArgs.builder()\n            .projectName(name)\n            .displayName(name)\n            .description(name)\n            .paiTaskEnabled(true)\n            .build());\n\n        var defaultUW8inp = new DiJob(\"defaultUW8inp\", DiJobArgs.builder()\n            .description(\"xxxx\")\n            .projectId(defaulteNv8bu.id())\n            .jobName(\"xxx\")\n            .migrationType(\"api_xxx\")\n            .sourceDataSourceType(\"xxx\")\n            .resourceSettings(DiJobResourceSettingsArgs.builder()\n                .offlineResourceSettings(DiJobResourceSettingsOfflineResourceSettingsArgs.builder()\n                    .requestedCu(2.0)\n                    .resourceGroupIdentifier(\"xx\")\n                    .build())\n                .realtimeResourceSettings(DiJobResourceSettingsRealtimeResourceSettingsArgs.builder()\n                    .requestedCu(2.0)\n                    .resourceGroupIdentifier(\"xx\")\n                    .build())\n                .scheduleResourceSettings(DiJobResourceSettingsScheduleResourceSettingsArgs.builder()\n                    .requestedCu(2.0)\n                    .resourceGroupIdentifier(\"xx\")\n                    .build())\n                .build())\n            .jobSettings(DiJobJobSettingsArgs.builder()\n                .channelSettings(\"xxxx\")\n                .columnDataTypeSettings(DiJobJobSettingsColumnDataTypeSettingArgs.builder()\n                    .destinationDataType(\"xxxx\")\n                    .sourceDataType(\"xxxx\")\n                    .build())\n                .cycleScheduleSettings(DiJobJobSettingsCycleScheduleSettingsArgs.builder()\n                    .cycleMigrationType(\"xxxx\")\n                    .scheduleParameters(\"xxxx\")\n                    .build())\n                .build())\n            .sourceDataSourceSettings(DiJobSourceDataSourceSettingArgs.builder()\n                .dataSourceName(\"xxxx\")\n                .dataSourceProperties(DiJobSourceDataSourceSettingDataSourcePropertiesArgs.builder()\n                    .encoding(\"xxxx\")\n                    .timezone(\"xxxx\")\n                    .build())\n                .build())\n            .destinationDataSourceType(\"xxxx\")\n            .tableMappings(DiJobTableMappingArgs.builder()\n                .sourceObjectSelectionRules(                \n                    DiJobTableMappingSourceObjectSelectionRuleArgs.builder()\n                        .action(\"Include\")\n                        .expression(\"xxxx\")\n                        .expressionType(\"Exact\")\n                        .objectType(\"xxxx\")\n                        .build(),\n                    DiJobTableMappingSourceObjectSelectionRuleArgs.builder()\n                        .action(\"Include\")\n                        .expression(\"xxxx\")\n                        .expressionType(\"Exact\")\n                        .objectType(\"xxxx\")\n                        .build())\n                .transformationRules(DiJobTableMappingTransformationRuleArgs.builder()\n                    .ruleName(\"xxxx\")\n                    .ruleActionType(\"xxxx\")\n                    .ruleTargetType(\"xxxx\")\n                    .build())\n                .build())\n            .transformationRules(DiJobTransformationRuleArgs.builder()\n                .ruleActionType(\"xxxx\")\n                .ruleExpression(\"xxxx\")\n                .ruleName(\"xxxx\")\n                .ruleTargetType(\"xxxx\")\n                .build())\n            .destinationDataSourceSettings(DiJobDestinationDataSourceSettingArgs.builder()\n                .dataSourceName(\"xxx\")\n                .build())\n            .build());\n\n        var default_ = new DiAlarmRule(\"default\", DiAlarmRuleArgs.builder()\n            .description(\"Description\")\n            .triggerConditions(DiAlarmRuleTriggerConditionArgs.builder()\n                .ddlReportTags(\"ALTERADDCOLUMN\")\n                .threshold(20)\n                .duration(10)\n                .severity(\"Warning\")\n                .build())\n            .metricType(\"DdlReport\")\n            .notificationSettings(DiAlarmRuleNotificationSettingsArgs.builder()\n                .notificationChannels(DiAlarmRuleNotificationSettingsNotificationChannelArgs.builder()\n                    .severity(\"Warning\")\n                    .channels(\"Ding\")\n                    .build())\n                .notificationReceivers(DiAlarmRuleNotificationSettingsNotificationReceiverArgs.builder()\n                    .receiverType(\"DingToken\")\n                    .receiverValues(\"1107550004253538\")\n                    .build())\n                .inhibitionInterval(10)\n                .build())\n            .diJobId(defaultUW8inp.diJobId())\n            .diAlarmRuleName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  defaulteNv8bu:\n    type: alicloud:dataworks:Project\n    properties:\n      projectName: ${name}\n      displayName: ${name}\n      description: ${name}\n      paiTaskEnabled: true\n  defaultUW8inp:\n    type: alicloud:dataworks:DiJob\n    properties:\n      description: xxxx\n      projectId: ${defaulteNv8bu.id}\n      jobName: xxx\n      migrationType: api_xxx\n      sourceDataSourceType: xxx\n      resourceSettings:\n        offlineResourceSettings:\n          requestedCu: 2\n          resourceGroupIdentifier: xx\n        realtimeResourceSettings:\n          requestedCu: 2\n          resourceGroupIdentifier: xx\n        scheduleResourceSettings:\n          requestedCu: 2\n          resourceGroupIdentifier: xx\n      jobSettings:\n        channelSettings: xxxx\n        columnDataTypeSettings:\n          - destinationDataType: xxxx\n            sourceDataType: xxxx\n        cycleScheduleSettings:\n          cycleMigrationType: xxxx\n          scheduleParameters: xxxx\n      sourceDataSourceSettings:\n        - dataSourceName: xxxx\n          dataSourceProperties:\n            encoding: xxxx\n            timezone: xxxx\n      destinationDataSourceType: xxxx\n      tableMappings:\n        - sourceObjectSelectionRules:\n            - action: Include\n              expression: xxxx\n              expressionType: Exact\n              objectType: xxxx\n            - action: Include\n              expression: xxxx\n              expressionType: Exact\n              objectType: xxxx\n          transformationRules:\n            - ruleName: xxxx\n              ruleActionType: xxxx\n              ruleTargetType: xxxx\n      transformationRules:\n        - ruleActionType: xxxx\n          ruleExpression: xxxx\n          ruleName: xxxx\n          ruleTargetType: xxxx\n      destinationDataSourceSettings:\n        - dataSourceName: xxx\n  default:\n    type: alicloud:dataworks:DiAlarmRule\n    properties:\n      description: Description\n      triggerConditions:\n        - ddlReportTags:\n            - ALTERADDCOLUMN\n          threshold: '20'\n          duration: '10'\n          severity: Warning\n      metricType: DdlReport\n      notificationSettings:\n        notificationChannels:\n          - severity: Warning\n            channels:\n              - Ding\n        notificationReceivers:\n          - receiverType: DingToken\n            receiverValues:\n              - '1107550004253538'\n        inhibitionInterval: '10'\n      diJobId: ${defaultUW8inp.diJobId}\n      diAlarmRuleName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nData Works Di Alarm Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dataworks/diAlarmRule:DiAlarmRule example \u003cdi_job_id\u003e:\u003cdi_alarm_rule_id\u003e\n```\n\n","properties":{"description":{"type":"string"},"diAlarmRuleId":{"type":"integer","description":"Resource attribute field representing resource level ID\n"},"diAlarmRuleName":{"type":"string","description":"Data Integration alarm rule name\n"},"diJobId":{"type":"integer","description":"Task ID: the ID of the task associated with the alert rule.\n"},"enabled":{"type":"boolean"},"metricType":{"type":"string","description":"Alarm indicator type. Optional enumerated values:\n- Heartbeat (task status alarm)\n- FailoverCount(failover times alarm)\n- Delay (task Delay alarm)\n"},"notificationSettings":{"$ref":"#/types/alicloud:dataworks/DiAlarmRuleNotificationSettings:DiAlarmRuleNotificationSettings","description":"Alarm notification settings See \u003cspan pulumi-lang-nodejs=\"`notificationSettings`\" pulumi-lang-dotnet=\"`NotificationSettings`\" pulumi-lang-go=\"`notificationSettings`\" pulumi-lang-python=\"`notification_settings`\" pulumi-lang-yaml=\"`notificationSettings`\" pulumi-lang-java=\"`notificationSettings`\"\u003e`notification_settings`\u003c/span\u003e below.\n"},"triggerConditions":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiAlarmRuleTriggerCondition:DiAlarmRuleTriggerCondition"},"description":"Alarm trigger condition list, supporting multiple conditions See \u003cspan pulumi-lang-nodejs=\"`triggerConditions`\" pulumi-lang-dotnet=\"`TriggerConditions`\" pulumi-lang-go=\"`triggerConditions`\" pulumi-lang-python=\"`trigger_conditions`\" pulumi-lang-yaml=\"`triggerConditions`\" pulumi-lang-java=\"`triggerConditions`\"\u003e`trigger_conditions`\u003c/span\u003e below.\n"}},"required":["diAlarmRuleId","diAlarmRuleName","diJobId","metricType","notificationSettings","triggerConditions"],"inputProperties":{"description":{"type":"string"},"diAlarmRuleName":{"type":"string","description":"Data Integration alarm rule name\n"},"diJobId":{"type":"integer","description":"Task ID: the ID of the task associated with the alert rule.\n","willReplaceOnChanges":true},"enabled":{"type":"boolean"},"metricType":{"type":"string","description":"Alarm indicator type. Optional enumerated values:\n- Heartbeat (task status alarm)\n- FailoverCount(failover times alarm)\n- Delay (task Delay alarm)\n"},"notificationSettings":{"$ref":"#/types/alicloud:dataworks/DiAlarmRuleNotificationSettings:DiAlarmRuleNotificationSettings","description":"Alarm notification settings See \u003cspan pulumi-lang-nodejs=\"`notificationSettings`\" pulumi-lang-dotnet=\"`NotificationSettings`\" pulumi-lang-go=\"`notificationSettings`\" pulumi-lang-python=\"`notification_settings`\" pulumi-lang-yaml=\"`notificationSettings`\" pulumi-lang-java=\"`notificationSettings`\"\u003e`notification_settings`\u003c/span\u003e below.\n"},"triggerConditions":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiAlarmRuleTriggerCondition:DiAlarmRuleTriggerCondition"},"description":"Alarm trigger condition list, supporting multiple conditions See \u003cspan pulumi-lang-nodejs=\"`triggerConditions`\" pulumi-lang-dotnet=\"`TriggerConditions`\" pulumi-lang-go=\"`triggerConditions`\" pulumi-lang-python=\"`trigger_conditions`\" pulumi-lang-yaml=\"`triggerConditions`\" pulumi-lang-java=\"`triggerConditions`\"\u003e`trigger_conditions`\u003c/span\u003e below.\n"}},"requiredInputs":["diAlarmRuleName","diJobId","metricType","notificationSettings","triggerConditions"],"stateInputs":{"description":"Input properties used for looking up and filtering DiAlarmRule resources.\n","properties":{"description":{"type":"string"},"diAlarmRuleId":{"type":"integer","description":"Resource attribute field representing resource level ID\n"},"diAlarmRuleName":{"type":"string","description":"Data Integration alarm rule name\n"},"diJobId":{"type":"integer","description":"Task ID: the ID of the task associated with the alert rule.\n","willReplaceOnChanges":true},"enabled":{"type":"boolean"},"metricType":{"type":"string","description":"Alarm indicator type. Optional enumerated values:\n- Heartbeat (task status alarm)\n- FailoverCount(failover times alarm)\n- Delay (task Delay alarm)\n"},"notificationSettings":{"$ref":"#/types/alicloud:dataworks/DiAlarmRuleNotificationSettings:DiAlarmRuleNotificationSettings","description":"Alarm notification settings See \u003cspan pulumi-lang-nodejs=\"`notificationSettings`\" pulumi-lang-dotnet=\"`NotificationSettings`\" pulumi-lang-go=\"`notificationSettings`\" pulumi-lang-python=\"`notification_settings`\" pulumi-lang-yaml=\"`notificationSettings`\" pulumi-lang-java=\"`notificationSettings`\"\u003e`notification_settings`\u003c/span\u003e below.\n"},"triggerConditions":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiAlarmRuleTriggerCondition:DiAlarmRuleTriggerCondition"},"description":"Alarm trigger condition list, supporting multiple conditions See \u003cspan pulumi-lang-nodejs=\"`triggerConditions`\" pulumi-lang-dotnet=\"`TriggerConditions`\" pulumi-lang-go=\"`triggerConditions`\" pulumi-lang-python=\"`trigger_conditions`\" pulumi-lang-yaml=\"`triggerConditions`\" pulumi-lang-java=\"`triggerConditions`\"\u003e`trigger_conditions`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:dataworks/diJob:DiJob":{"description":"Provides a Data Works Di Job resource.\n\nData Integration Tasks.\n\nFor information about Data Works Di Job and how to use it, see [What is Di Job](https://www.alibabacloud.com/help/en/dataworks/developer-reference/api-dataworks-public-2024-05-18-createdijob).\n\n\u003e **NOTE:** Available since v1.241.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst defaultMMHL8U = new alicloud.dataworks.Project(\"defaultMMHL8U\", {\n    projectName: name,\n    displayName: name,\n    description: name,\n    paiTaskEnabled: true,\n});\nconst _default = new alicloud.dataworks.DiJob(\"default\", {\n    description: name,\n    projectId: defaultMMHL8U.id,\n    jobName: \"zhenyuan_example_case\",\n    migrationType: \"api_FullAndRealtimeIncremental\",\n    sourceDataSourceSettings: [{\n        dataSourceName: \"dw_mysql\",\n        dataSourceProperties: {\n            encoding: \"utf-8\",\n            timezone: \"Asia/Shanghai\",\n        },\n    }],\n    destinationDataSourceType: \"Hologres\",\n    tableMappings: [{\n        sourceObjectSelectionRules: [\n            {\n                action: \"Include\",\n                expression: \"dw_mysql\",\n                expressionType: \"Exact\",\n                objectType: \"Datasource\",\n            },\n            {\n                action: \"Include\",\n                expression: \"example_db1\",\n                expressionType: \"Exact\",\n                objectType: \"Database\",\n            },\n            {\n                action: \"Include\",\n                expression: \"lsc_example01\",\n                expressionType: \"Exact\",\n                objectType: \"Table\",\n            },\n        ],\n        transformationRules: [{\n            ruleName: \"my_table_rename_rule\",\n            ruleActionType: \"Rename\",\n            ruleTargetType: \"Table\",\n        }],\n    }],\n    sourceDataSourceType: \"MySQL\",\n    resourceSettings: {\n        offlineResourceSettings: {\n            requestedCu: 2,\n            resourceGroupIdentifier: \"S_res_group_524257424564736_1716799673667\",\n        },\n        realtimeResourceSettings: {\n            requestedCu: 2,\n            resourceGroupIdentifier: \"S_res_group_524257424564736_1716799673667\",\n        },\n        scheduleResourceSettings: {\n            requestedCu: 2,\n            resourceGroupIdentifier: \"S_res_group_524257424564736_1716799673667\",\n        },\n    },\n    transformationRules: [{\n        ruleActionType: \"Rename\",\n        ruleExpression: \"{\\\"expression\\\":\\\"table2\\\"}\",\n        ruleName: \"my_table_rename_rule\",\n        ruleTargetType: \"Table\",\n    }],\n    destinationDataSourceSettings: [{\n        dataSourceName: \"dw_example_holo\",\n    }],\n    jobSettings: {\n        columnDataTypeSettings: [{\n            destinationDataType: \"bigint\",\n            sourceDataType: \"longtext\",\n        }],\n        ddlHandlingSettings: [{\n            action: \"Ignore\",\n            type: \"CreateTable\",\n        }],\n        runtimeSettings: [{\n            name: \"runtime.realtime.concurrent\",\n            value: \"1\",\n        }],\n        channelSettings: \"1\",\n        cycleScheduleSettings: {\n            cycleMigrationType: \"2\",\n            scheduleParameters: \"3\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault_mmhl8_u = alicloud.dataworks.Project(\"defaultMMHL8U\",\n    project_name=name,\n    display_name=name,\n    description=name,\n    pai_task_enabled=True)\ndefault = alicloud.dataworks.DiJob(\"default\",\n    description=name,\n    project_id=default_mmhl8_u.id,\n    job_name=\"zhenyuan_example_case\",\n    migration_type=\"api_FullAndRealtimeIncremental\",\n    source_data_source_settings=[{\n        \"data_source_name\": \"dw_mysql\",\n        \"data_source_properties\": {\n            \"encoding\": \"utf-8\",\n            \"timezone\": \"Asia/Shanghai\",\n        },\n    }],\n    destination_data_source_type=\"Hologres\",\n    table_mappings=[{\n        \"source_object_selection_rules\": [\n            {\n                \"action\": \"Include\",\n                \"expression\": \"dw_mysql\",\n                \"expression_type\": \"Exact\",\n                \"object_type\": \"Datasource\",\n            },\n            {\n                \"action\": \"Include\",\n                \"expression\": \"example_db1\",\n                \"expression_type\": \"Exact\",\n                \"object_type\": \"Database\",\n            },\n            {\n                \"action\": \"Include\",\n                \"expression\": \"lsc_example01\",\n                \"expression_type\": \"Exact\",\n                \"object_type\": \"Table\",\n            },\n        ],\n        \"transformation_rules\": [{\n            \"rule_name\": \"my_table_rename_rule\",\n            \"rule_action_type\": \"Rename\",\n            \"rule_target_type\": \"Table\",\n        }],\n    }],\n    source_data_source_type=\"MySQL\",\n    resource_settings={\n        \"offline_resource_settings\": {\n            \"requested_cu\": 2,\n            \"resource_group_identifier\": \"S_res_group_524257424564736_1716799673667\",\n        },\n        \"realtime_resource_settings\": {\n            \"requested_cu\": 2,\n            \"resource_group_identifier\": \"S_res_group_524257424564736_1716799673667\",\n        },\n        \"schedule_resource_settings\": {\n            \"requested_cu\": 2,\n            \"resource_group_identifier\": \"S_res_group_524257424564736_1716799673667\",\n        },\n    },\n    transformation_rules=[{\n        \"rule_action_type\": \"Rename\",\n        \"rule_expression\": \"{\\\"expression\\\":\\\"table2\\\"}\",\n        \"rule_name\": \"my_table_rename_rule\",\n        \"rule_target_type\": \"Table\",\n    }],\n    destination_data_source_settings=[{\n        \"data_source_name\": \"dw_example_holo\",\n    }],\n    job_settings={\n        \"column_data_type_settings\": [{\n            \"destination_data_type\": \"bigint\",\n            \"source_data_type\": \"longtext\",\n        }],\n        \"ddl_handling_settings\": [{\n            \"action\": \"Ignore\",\n            \"type\": \"CreateTable\",\n        }],\n        \"runtime_settings\": [{\n            \"name\": \"runtime.realtime.concurrent\",\n            \"value\": \"1\",\n        }],\n        \"channel_settings\": \"1\",\n        \"cycle_schedule_settings\": {\n            \"cycle_migration_type\": \"2\",\n            \"schedule_parameters\": \"3\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var defaultMMHL8U = new AliCloud.DataWorks.Project(\"defaultMMHL8U\", new()\n    {\n        ProjectName = name,\n        DisplayName = name,\n        Description = name,\n        PaiTaskEnabled = true,\n    });\n\n    var @default = new AliCloud.DataWorks.DiJob(\"default\", new()\n    {\n        Description = name,\n        ProjectId = defaultMMHL8U.Id,\n        JobName = \"zhenyuan_example_case\",\n        MigrationType = \"api_FullAndRealtimeIncremental\",\n        SourceDataSourceSettings = new[]\n        {\n            new AliCloud.DataWorks.Inputs.DiJobSourceDataSourceSettingArgs\n            {\n                DataSourceName = \"dw_mysql\",\n                DataSourceProperties = new AliCloud.DataWorks.Inputs.DiJobSourceDataSourceSettingDataSourcePropertiesArgs\n                {\n                    Encoding = \"utf-8\",\n                    Timezone = \"Asia/Shanghai\",\n                },\n            },\n        },\n        DestinationDataSourceType = \"Hologres\",\n        TableMappings = new[]\n        {\n            new AliCloud.DataWorks.Inputs.DiJobTableMappingArgs\n            {\n                SourceObjectSelectionRules = new[]\n                {\n                    new AliCloud.DataWorks.Inputs.DiJobTableMappingSourceObjectSelectionRuleArgs\n                    {\n                        Action = \"Include\",\n                        Expression = \"dw_mysql\",\n                        ExpressionType = \"Exact\",\n                        ObjectType = \"Datasource\",\n                    },\n                    new AliCloud.DataWorks.Inputs.DiJobTableMappingSourceObjectSelectionRuleArgs\n                    {\n                        Action = \"Include\",\n                        Expression = \"example_db1\",\n                        ExpressionType = \"Exact\",\n                        ObjectType = \"Database\",\n                    },\n                    new AliCloud.DataWorks.Inputs.DiJobTableMappingSourceObjectSelectionRuleArgs\n                    {\n                        Action = \"Include\",\n                        Expression = \"lsc_example01\",\n                        ExpressionType = \"Exact\",\n                        ObjectType = \"Table\",\n                    },\n                },\n                TransformationRules = new[]\n                {\n                    new AliCloud.DataWorks.Inputs.DiJobTableMappingTransformationRuleArgs\n                    {\n                        RuleName = \"my_table_rename_rule\",\n                        RuleActionType = \"Rename\",\n                        RuleTargetType = \"Table\",\n                    },\n                },\n            },\n        },\n        SourceDataSourceType = \"MySQL\",\n        ResourceSettings = new AliCloud.DataWorks.Inputs.DiJobResourceSettingsArgs\n        {\n            OfflineResourceSettings = new AliCloud.DataWorks.Inputs.DiJobResourceSettingsOfflineResourceSettingsArgs\n            {\n                RequestedCu = 2,\n                ResourceGroupIdentifier = \"S_res_group_524257424564736_1716799673667\",\n            },\n            RealtimeResourceSettings = new AliCloud.DataWorks.Inputs.DiJobResourceSettingsRealtimeResourceSettingsArgs\n            {\n                RequestedCu = 2,\n                ResourceGroupIdentifier = \"S_res_group_524257424564736_1716799673667\",\n            },\n            ScheduleResourceSettings = new AliCloud.DataWorks.Inputs.DiJobResourceSettingsScheduleResourceSettingsArgs\n            {\n                RequestedCu = 2,\n                ResourceGroupIdentifier = \"S_res_group_524257424564736_1716799673667\",\n            },\n        },\n        TransformationRules = new[]\n        {\n            new AliCloud.DataWorks.Inputs.DiJobTransformationRuleArgs\n            {\n                RuleActionType = \"Rename\",\n                RuleExpression = \"{\\\"expression\\\":\\\"table2\\\"}\",\n                RuleName = \"my_table_rename_rule\",\n                RuleTargetType = \"Table\",\n            },\n        },\n        DestinationDataSourceSettings = new[]\n        {\n            new AliCloud.DataWorks.Inputs.DiJobDestinationDataSourceSettingArgs\n            {\n                DataSourceName = \"dw_example_holo\",\n            },\n        },\n        JobSettings = new AliCloud.DataWorks.Inputs.DiJobJobSettingsArgs\n        {\n            ColumnDataTypeSettings = new[]\n            {\n                new AliCloud.DataWorks.Inputs.DiJobJobSettingsColumnDataTypeSettingArgs\n                {\n                    DestinationDataType = \"bigint\",\n                    SourceDataType = \"longtext\",\n                },\n            },\n            DdlHandlingSettings = new[]\n            {\n                new AliCloud.DataWorks.Inputs.DiJobJobSettingsDdlHandlingSettingArgs\n                {\n                    Action = \"Ignore\",\n                    Type = \"CreateTable\",\n                },\n            },\n            RuntimeSettings = new[]\n            {\n                new AliCloud.DataWorks.Inputs.DiJobJobSettingsRuntimeSettingArgs\n                {\n                    Name = \"runtime.realtime.concurrent\",\n                    Value = \"1\",\n                },\n            },\n            ChannelSettings = \"1\",\n            CycleScheduleSettings = new AliCloud.DataWorks.Inputs.DiJobJobSettingsCycleScheduleSettingsArgs\n            {\n                CycleMigrationType = \"2\",\n                ScheduleParameters = \"3\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dataworks\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultMMHL8U, err := dataworks.NewProject(ctx, \"defaultMMHL8U\", \u0026dataworks.ProjectArgs{\n\t\t\tProjectName:    pulumi.String(name),\n\t\t\tDisplayName:    pulumi.String(name),\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tPaiTaskEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dataworks.NewDiJob(ctx, \"default\", \u0026dataworks.DiJobArgs{\n\t\t\tDescription:   pulumi.String(name),\n\t\t\tProjectId:     defaultMMHL8U.ID(),\n\t\t\tJobName:       pulumi.String(\"zhenyuan_example_case\"),\n\t\t\tMigrationType: pulumi.String(\"api_FullAndRealtimeIncremental\"),\n\t\t\tSourceDataSourceSettings: dataworks.DiJobSourceDataSourceSettingArray{\n\t\t\t\t\u0026dataworks.DiJobSourceDataSourceSettingArgs{\n\t\t\t\t\tDataSourceName: pulumi.String(\"dw_mysql\"),\n\t\t\t\t\tDataSourceProperties: \u0026dataworks.DiJobSourceDataSourceSettingDataSourcePropertiesArgs{\n\t\t\t\t\t\tEncoding: pulumi.String(\"utf-8\"),\n\t\t\t\t\t\tTimezone: pulumi.String(\"Asia/Shanghai\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestinationDataSourceType: pulumi.String(\"Hologres\"),\n\t\t\tTableMappings: dataworks.DiJobTableMappingArray{\n\t\t\t\t\u0026dataworks.DiJobTableMappingArgs{\n\t\t\t\t\tSourceObjectSelectionRules: dataworks.DiJobTableMappingSourceObjectSelectionRuleArray{\n\t\t\t\t\t\t\u0026dataworks.DiJobTableMappingSourceObjectSelectionRuleArgs{\n\t\t\t\t\t\t\tAction:         pulumi.String(\"Include\"),\n\t\t\t\t\t\t\tExpression:     pulumi.String(\"dw_mysql\"),\n\t\t\t\t\t\t\tExpressionType: pulumi.String(\"Exact\"),\n\t\t\t\t\t\t\tObjectType:     pulumi.String(\"Datasource\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026dataworks.DiJobTableMappingSourceObjectSelectionRuleArgs{\n\t\t\t\t\t\t\tAction:         pulumi.String(\"Include\"),\n\t\t\t\t\t\t\tExpression:     pulumi.String(\"example_db1\"),\n\t\t\t\t\t\t\tExpressionType: pulumi.String(\"Exact\"),\n\t\t\t\t\t\t\tObjectType:     pulumi.String(\"Database\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026dataworks.DiJobTableMappingSourceObjectSelectionRuleArgs{\n\t\t\t\t\t\t\tAction:         pulumi.String(\"Include\"),\n\t\t\t\t\t\t\tExpression:     pulumi.String(\"lsc_example01\"),\n\t\t\t\t\t\t\tExpressionType: pulumi.String(\"Exact\"),\n\t\t\t\t\t\t\tObjectType:     pulumi.String(\"Table\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tTransformationRules: dataworks.DiJobTableMappingTransformationRuleArray{\n\t\t\t\t\t\t\u0026dataworks.DiJobTableMappingTransformationRuleArgs{\n\t\t\t\t\t\t\tRuleName:       pulumi.String(\"my_table_rename_rule\"),\n\t\t\t\t\t\t\tRuleActionType: pulumi.String(\"Rename\"),\n\t\t\t\t\t\t\tRuleTargetType: pulumi.String(\"Table\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tSourceDataSourceType: pulumi.String(\"MySQL\"),\n\t\t\tResourceSettings: \u0026dataworks.DiJobResourceSettingsArgs{\n\t\t\t\tOfflineResourceSettings: \u0026dataworks.DiJobResourceSettingsOfflineResourceSettingsArgs{\n\t\t\t\t\tRequestedCu:             pulumi.Float64(2),\n\t\t\t\t\tResourceGroupIdentifier: pulumi.String(\"S_res_group_524257424564736_1716799673667\"),\n\t\t\t\t},\n\t\t\t\tRealtimeResourceSettings: \u0026dataworks.DiJobResourceSettingsRealtimeResourceSettingsArgs{\n\t\t\t\t\tRequestedCu:             pulumi.Float64(2),\n\t\t\t\t\tResourceGroupIdentifier: pulumi.String(\"S_res_group_524257424564736_1716799673667\"),\n\t\t\t\t},\n\t\t\t\tScheduleResourceSettings: \u0026dataworks.DiJobResourceSettingsScheduleResourceSettingsArgs{\n\t\t\t\t\tRequestedCu:             pulumi.Float64(2),\n\t\t\t\t\tResourceGroupIdentifier: pulumi.String(\"S_res_group_524257424564736_1716799673667\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTransformationRules: dataworks.DiJobTransformationRuleArray{\n\t\t\t\t\u0026dataworks.DiJobTransformationRuleArgs{\n\t\t\t\t\tRuleActionType: pulumi.String(\"Rename\"),\n\t\t\t\t\tRuleExpression: pulumi.String(\"{\\\"expression\\\":\\\"table2\\\"}\"),\n\t\t\t\t\tRuleName:       pulumi.String(\"my_table_rename_rule\"),\n\t\t\t\t\tRuleTargetType: pulumi.String(\"Table\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestinationDataSourceSettings: dataworks.DiJobDestinationDataSourceSettingArray{\n\t\t\t\t\u0026dataworks.DiJobDestinationDataSourceSettingArgs{\n\t\t\t\t\tDataSourceName: pulumi.String(\"dw_example_holo\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tJobSettings: \u0026dataworks.DiJobJobSettingsArgs{\n\t\t\t\tColumnDataTypeSettings: dataworks.DiJobJobSettingsColumnDataTypeSettingArray{\n\t\t\t\t\t\u0026dataworks.DiJobJobSettingsColumnDataTypeSettingArgs{\n\t\t\t\t\t\tDestinationDataType: pulumi.String(\"bigint\"),\n\t\t\t\t\t\tSourceDataType:      pulumi.String(\"longtext\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tDdlHandlingSettings: dataworks.DiJobJobSettingsDdlHandlingSettingArray{\n\t\t\t\t\t\u0026dataworks.DiJobJobSettingsDdlHandlingSettingArgs{\n\t\t\t\t\t\tAction: pulumi.String(\"Ignore\"),\n\t\t\t\t\t\tType:   pulumi.String(\"CreateTable\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRuntimeSettings: dataworks.DiJobJobSettingsRuntimeSettingArray{\n\t\t\t\t\t\u0026dataworks.DiJobJobSettingsRuntimeSettingArgs{\n\t\t\t\t\t\tName:  pulumi.String(\"runtime.realtime.concurrent\"),\n\t\t\t\t\t\tValue: pulumi.String(\"1\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tChannelSettings: pulumi.String(\"1\"),\n\t\t\t\tCycleScheduleSettings: \u0026dataworks.DiJobJobSettingsCycleScheduleSettingsArgs{\n\t\t\t\t\tCycleMigrationType: pulumi.String(\"2\"),\n\t\t\t\t\tScheduleParameters: pulumi.String(\"3\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dataworks.Project;\nimport com.pulumi.alicloud.dataworks.ProjectArgs;\nimport com.pulumi.alicloud.dataworks.DiJob;\nimport com.pulumi.alicloud.dataworks.DiJobArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobSourceDataSourceSettingArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobSourceDataSourceSettingDataSourcePropertiesArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobTableMappingArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobResourceSettingsArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobResourceSettingsOfflineResourceSettingsArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobResourceSettingsRealtimeResourceSettingsArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobResourceSettingsScheduleResourceSettingsArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobTransformationRuleArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobDestinationDataSourceSettingArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobJobSettingsArgs;\nimport com.pulumi.alicloud.dataworks.inputs.DiJobJobSettingsCycleScheduleSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var defaultMMHL8U = new Project(\"defaultMMHL8U\", ProjectArgs.builder()\n            .projectName(name)\n            .displayName(name)\n            .description(name)\n            .paiTaskEnabled(true)\n            .build());\n\n        var default_ = new DiJob(\"default\", DiJobArgs.builder()\n            .description(name)\n            .projectId(defaultMMHL8U.id())\n            .jobName(\"zhenyuan_example_case\")\n            .migrationType(\"api_FullAndRealtimeIncremental\")\n            .sourceDataSourceSettings(DiJobSourceDataSourceSettingArgs.builder()\n                .dataSourceName(\"dw_mysql\")\n                .dataSourceProperties(DiJobSourceDataSourceSettingDataSourcePropertiesArgs.builder()\n                    .encoding(\"utf-8\")\n                    .timezone(\"Asia/Shanghai\")\n                    .build())\n                .build())\n            .destinationDataSourceType(\"Hologres\")\n            .tableMappings(DiJobTableMappingArgs.builder()\n                .sourceObjectSelectionRules(                \n                    DiJobTableMappingSourceObjectSelectionRuleArgs.builder()\n                        .action(\"Include\")\n                        .expression(\"dw_mysql\")\n                        .expressionType(\"Exact\")\n                        .objectType(\"Datasource\")\n                        .build(),\n                    DiJobTableMappingSourceObjectSelectionRuleArgs.builder()\n                        .action(\"Include\")\n                        .expression(\"example_db1\")\n                        .expressionType(\"Exact\")\n                        .objectType(\"Database\")\n                        .build(),\n                    DiJobTableMappingSourceObjectSelectionRuleArgs.builder()\n                        .action(\"Include\")\n                        .expression(\"lsc_example01\")\n                        .expressionType(\"Exact\")\n                        .objectType(\"Table\")\n                        .build())\n                .transformationRules(DiJobTableMappingTransformationRuleArgs.builder()\n                    .ruleName(\"my_table_rename_rule\")\n                    .ruleActionType(\"Rename\")\n                    .ruleTargetType(\"Table\")\n                    .build())\n                .build())\n            .sourceDataSourceType(\"MySQL\")\n            .resourceSettings(DiJobResourceSettingsArgs.builder()\n                .offlineResourceSettings(DiJobResourceSettingsOfflineResourceSettingsArgs.builder()\n                    .requestedCu(2.0)\n                    .resourceGroupIdentifier(\"S_res_group_524257424564736_1716799673667\")\n                    .build())\n                .realtimeResourceSettings(DiJobResourceSettingsRealtimeResourceSettingsArgs.builder()\n                    .requestedCu(2.0)\n                    .resourceGroupIdentifier(\"S_res_group_524257424564736_1716799673667\")\n                    .build())\n                .scheduleResourceSettings(DiJobResourceSettingsScheduleResourceSettingsArgs.builder()\n                    .requestedCu(2.0)\n                    .resourceGroupIdentifier(\"S_res_group_524257424564736_1716799673667\")\n                    .build())\n                .build())\n            .transformationRules(DiJobTransformationRuleArgs.builder()\n                .ruleActionType(\"Rename\")\n                .ruleExpression(\"{\\\"expression\\\":\\\"table2\\\"}\")\n                .ruleName(\"my_table_rename_rule\")\n                .ruleTargetType(\"Table\")\n                .build())\n            .destinationDataSourceSettings(DiJobDestinationDataSourceSettingArgs.builder()\n                .dataSourceName(\"dw_example_holo\")\n                .build())\n            .jobSettings(DiJobJobSettingsArgs.builder()\n                .columnDataTypeSettings(DiJobJobSettingsColumnDataTypeSettingArgs.builder()\n                    .destinationDataType(\"bigint\")\n                    .sourceDataType(\"longtext\")\n                    .build())\n                .ddlHandlingSettings(DiJobJobSettingsDdlHandlingSettingArgs.builder()\n                    .action(\"Ignore\")\n                    .type(\"CreateTable\")\n                    .build())\n                .runtimeSettings(DiJobJobSettingsRuntimeSettingArgs.builder()\n                    .name(\"runtime.realtime.concurrent\")\n                    .value(\"1\")\n                    .build())\n                .channelSettings(\"1\")\n                .cycleScheduleSettings(DiJobJobSettingsCycleScheduleSettingsArgs.builder()\n                    .cycleMigrationType(\"2\")\n                    .scheduleParameters(\"3\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  defaultMMHL8U:\n    type: alicloud:dataworks:Project\n    properties:\n      projectName: ${name}\n      displayName: ${name}\n      description: ${name}\n      paiTaskEnabled: true\n  default:\n    type: alicloud:dataworks:DiJob\n    properties:\n      description: ${name}\n      projectId: ${defaultMMHL8U.id}\n      jobName: zhenyuan_example_case\n      migrationType: api_FullAndRealtimeIncremental\n      sourceDataSourceSettings:\n        - dataSourceName: dw_mysql\n          dataSourceProperties:\n            encoding: utf-8\n            timezone: Asia/Shanghai\n      destinationDataSourceType: Hologres\n      tableMappings:\n        - sourceObjectSelectionRules:\n            - action: Include\n              expression: dw_mysql\n              expressionType: Exact\n              objectType: Datasource\n            - action: Include\n              expression: example_db1\n              expressionType: Exact\n              objectType: Database\n            - action: Include\n              expression: lsc_example01\n              expressionType: Exact\n              objectType: Table\n          transformationRules:\n            - ruleName: my_table_rename_rule\n              ruleActionType: Rename\n              ruleTargetType: Table\n      sourceDataSourceType: MySQL\n      resourceSettings:\n        offlineResourceSettings:\n          requestedCu: 2\n          resourceGroupIdentifier: S_res_group_524257424564736_1716799673667\n        realtimeResourceSettings:\n          requestedCu: 2\n          resourceGroupIdentifier: S_res_group_524257424564736_1716799673667\n        scheduleResourceSettings:\n          requestedCu: 2\n          resourceGroupIdentifier: S_res_group_524257424564736_1716799673667\n      transformationRules:\n        - ruleActionType: Rename\n          ruleExpression: '{\"expression\":\"table2\"}'\n          ruleName: my_table_rename_rule\n          ruleTargetType: Table\n      destinationDataSourceSettings:\n        - dataSourceName: dw_example_holo\n      jobSettings:\n        columnDataTypeSettings:\n          - destinationDataType: bigint\n            sourceDataType: longtext\n        ddlHandlingSettings:\n          - action: Ignore\n            type: CreateTable\n        runtimeSettings:\n          - name: runtime.realtime.concurrent\n            value: '1'\n        channelSettings: '1'\n        cycleScheduleSettings:\n          cycleMigrationType: '2'\n          scheduleParameters: '3'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nData Works Di Job can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dataworks/diJob:DiJob example \u003cproject_id\u003e:\u003cdi_job_id\u003e\n```\n\n","properties":{"description":{"type":"string","description":"Description of the integration task\n"},"destinationDataSourceSettings":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobDestinationDataSourceSetting:DiJobDestinationDataSourceSetting"},"description":"Destination data source See \u003cspan pulumi-lang-nodejs=\"`destinationDataSourceSettings`\" pulumi-lang-dotnet=\"`DestinationDataSourceSettings`\" pulumi-lang-go=\"`destinationDataSourceSettings`\" pulumi-lang-python=\"`destination_data_source_settings`\" pulumi-lang-yaml=\"`destinationDataSourceSettings`\" pulumi-lang-java=\"`destinationDataSourceSettings`\"\u003e`destination_data_source_settings`\u003c/span\u003e below.\n"},"destinationDataSourceType":{"type":"string","description":"The type of the target data source. Enumerated values: Hologres and Hive.\n"},"diJobId":{"type":"integer","description":"Integration Task Id\n"},"jobName":{"type":"string","description":"Task Name.\n"},"jobSettings":{"$ref":"#/types/alicloud:dataworks/DiJobJobSettings:DiJobJobSettings","description":"The dimension settings of the synchronization task, including the DDL processing policy, the source and destination column data type mapping policy, and the task runtime parameters. See \u003cspan pulumi-lang-nodejs=\"`jobSettings`\" pulumi-lang-dotnet=\"`JobSettings`\" pulumi-lang-go=\"`jobSettings`\" pulumi-lang-python=\"`job_settings`\" pulumi-lang-yaml=\"`jobSettings`\" pulumi-lang-java=\"`jobSettings`\"\u003e`job_settings`\u003c/span\u003e below.\n"},"migrationType":{"type":"string","description":"Synchronization type, optional enumeration values are:\n\nFulllandrealtimeincremental (full and real-time incremental)\n\nRealtimeIncremental\n\nFull\n\nOffflineincremental\n\nFullAndOfflineIncremental (full amount + offline increment)\n"},"projectId":{"type":"integer","description":"Project Id\n"},"resourceSettings":{"$ref":"#/types/alicloud:dataworks/DiJobResourceSettings:DiJobResourceSettings","description":"Resource Group Properties See \u003cspan pulumi-lang-nodejs=\"`resourceSettings`\" pulumi-lang-dotnet=\"`ResourceSettings`\" pulumi-lang-go=\"`resourceSettings`\" pulumi-lang-python=\"`resource_settings`\" pulumi-lang-yaml=\"`resourceSettings`\" pulumi-lang-java=\"`resourceSettings`\"\u003e`resource_settings`\u003c/span\u003e below.\n"},"sourceDataSourceSettings":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobSourceDataSourceSetting:DiJobSourceDataSourceSetting"},"description":"Source data source setting List See \u003cspan pulumi-lang-nodejs=\"`sourceDataSourceSettings`\" pulumi-lang-dotnet=\"`SourceDataSourceSettings`\" pulumi-lang-go=\"`sourceDataSourceSettings`\" pulumi-lang-python=\"`source_data_source_settings`\" pulumi-lang-yaml=\"`sourceDataSourceSettings`\" pulumi-lang-java=\"`sourceDataSourceSettings`\"\u003e`source_data_source_settings`\u003c/span\u003e below.\n"},"sourceDataSourceType":{"type":"string","description":"The type of the source data source. The enumerated value is MySQL.\n"},"tableMappings":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobTableMapping:DiJobTableMapping"},"description":"Synchronize object transformation mapping list See \u003cspan pulumi-lang-nodejs=\"`tableMappings`\" pulumi-lang-dotnet=\"`TableMappings`\" pulumi-lang-go=\"`tableMappings`\" pulumi-lang-python=\"`table_mappings`\" pulumi-lang-yaml=\"`tableMappings`\" pulumi-lang-java=\"`tableMappings`\"\u003e`table_mappings`\u003c/span\u003e below.\n"},"transformationRules":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobTransformationRule:DiJobTransformationRule"},"description":"Definition list of synchronization object conversion rules See \u003cspan pulumi-lang-nodejs=\"`transformationRules`\" pulumi-lang-dotnet=\"`TransformationRules`\" pulumi-lang-go=\"`transformationRules`\" pulumi-lang-python=\"`transformation_rules`\" pulumi-lang-yaml=\"`transformationRules`\" pulumi-lang-java=\"`transformationRules`\"\u003e`transformation_rules`\u003c/span\u003e below.\n"}},"required":["destinationDataSourceSettings","destinationDataSourceType","diJobId","jobName","migrationType","projectId","resourceSettings","sourceDataSourceSettings","sourceDataSourceType","tableMappings"],"inputProperties":{"description":{"type":"string","description":"Description of the integration task\n"},"destinationDataSourceSettings":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobDestinationDataSourceSetting:DiJobDestinationDataSourceSetting"},"description":"Destination data source See \u003cspan pulumi-lang-nodejs=\"`destinationDataSourceSettings`\" pulumi-lang-dotnet=\"`DestinationDataSourceSettings`\" pulumi-lang-go=\"`destinationDataSourceSettings`\" pulumi-lang-python=\"`destination_data_source_settings`\" pulumi-lang-yaml=\"`destinationDataSourceSettings`\" pulumi-lang-java=\"`destinationDataSourceSettings`\"\u003e`destination_data_source_settings`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"destinationDataSourceType":{"type":"string","description":"The type of the target data source. Enumerated values: Hologres and Hive.\n","willReplaceOnChanges":true},"jobName":{"type":"string","description":"Task Name.\n","willReplaceOnChanges":true},"jobSettings":{"$ref":"#/types/alicloud:dataworks/DiJobJobSettings:DiJobJobSettings","description":"The dimension settings of the synchronization task, including the DDL processing policy, the source and destination column data type mapping policy, and the task runtime parameters. See \u003cspan pulumi-lang-nodejs=\"`jobSettings`\" pulumi-lang-dotnet=\"`JobSettings`\" pulumi-lang-go=\"`jobSettings`\" pulumi-lang-python=\"`job_settings`\" pulumi-lang-yaml=\"`jobSettings`\" pulumi-lang-java=\"`jobSettings`\"\u003e`job_settings`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"migrationType":{"type":"string","description":"Synchronization type, optional enumeration values are:\n\nFulllandrealtimeincremental (full and real-time incremental)\n\nRealtimeIncremental\n\nFull\n\nOffflineincremental\n\nFullAndOfflineIncremental (full amount + offline increment)\n","willReplaceOnChanges":true},"projectId":{"type":"integer","description":"Project Id\n","willReplaceOnChanges":true},"resourceSettings":{"$ref":"#/types/alicloud:dataworks/DiJobResourceSettings:DiJobResourceSettings","description":"Resource Group Properties See \u003cspan pulumi-lang-nodejs=\"`resourceSettings`\" pulumi-lang-dotnet=\"`ResourceSettings`\" pulumi-lang-go=\"`resourceSettings`\" pulumi-lang-python=\"`resource_settings`\" pulumi-lang-yaml=\"`resourceSettings`\" pulumi-lang-java=\"`resourceSettings`\"\u003e`resource_settings`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"sourceDataSourceSettings":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobSourceDataSourceSetting:DiJobSourceDataSourceSetting"},"description":"Source data source setting List See \u003cspan pulumi-lang-nodejs=\"`sourceDataSourceSettings`\" pulumi-lang-dotnet=\"`SourceDataSourceSettings`\" pulumi-lang-go=\"`sourceDataSourceSettings`\" pulumi-lang-python=\"`source_data_source_settings`\" pulumi-lang-yaml=\"`sourceDataSourceSettings`\" pulumi-lang-java=\"`sourceDataSourceSettings`\"\u003e`source_data_source_settings`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"sourceDataSourceType":{"type":"string","description":"The type of the source data source. The enumerated value is MySQL.\n","willReplaceOnChanges":true},"tableMappings":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobTableMapping:DiJobTableMapping"},"description":"Synchronize object transformation mapping list See \u003cspan pulumi-lang-nodejs=\"`tableMappings`\" pulumi-lang-dotnet=\"`TableMappings`\" pulumi-lang-go=\"`tableMappings`\" pulumi-lang-python=\"`table_mappings`\" pulumi-lang-yaml=\"`tableMappings`\" pulumi-lang-java=\"`tableMappings`\"\u003e`table_mappings`\u003c/span\u003e below.\n"},"transformationRules":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobTransformationRule:DiJobTransformationRule"},"description":"Definition list of synchronization object conversion rules See \u003cspan pulumi-lang-nodejs=\"`transformationRules`\" pulumi-lang-dotnet=\"`TransformationRules`\" pulumi-lang-go=\"`transformationRules`\" pulumi-lang-python=\"`transformation_rules`\" pulumi-lang-yaml=\"`transformationRules`\" pulumi-lang-java=\"`transformationRules`\"\u003e`transformation_rules`\u003c/span\u003e below.\n"}},"requiredInputs":["destinationDataSourceSettings","destinationDataSourceType","jobName","migrationType","resourceSettings","sourceDataSourceSettings","sourceDataSourceType","tableMappings"],"stateInputs":{"description":"Input properties used for looking up and filtering DiJob resources.\n","properties":{"description":{"type":"string","description":"Description of the integration task\n"},"destinationDataSourceSettings":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobDestinationDataSourceSetting:DiJobDestinationDataSourceSetting"},"description":"Destination data source See \u003cspan pulumi-lang-nodejs=\"`destinationDataSourceSettings`\" pulumi-lang-dotnet=\"`DestinationDataSourceSettings`\" pulumi-lang-go=\"`destinationDataSourceSettings`\" pulumi-lang-python=\"`destination_data_source_settings`\" pulumi-lang-yaml=\"`destinationDataSourceSettings`\" pulumi-lang-java=\"`destinationDataSourceSettings`\"\u003e`destination_data_source_settings`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"destinationDataSourceType":{"type":"string","description":"The type of the target data source. Enumerated values: Hologres and Hive.\n","willReplaceOnChanges":true},"diJobId":{"type":"integer","description":"Integration Task Id\n"},"jobName":{"type":"string","description":"Task Name.\n","willReplaceOnChanges":true},"jobSettings":{"$ref":"#/types/alicloud:dataworks/DiJobJobSettings:DiJobJobSettings","description":"The dimension settings of the synchronization task, including the DDL processing policy, the source and destination column data type mapping policy, and the task runtime parameters. See \u003cspan pulumi-lang-nodejs=\"`jobSettings`\" pulumi-lang-dotnet=\"`JobSettings`\" pulumi-lang-go=\"`jobSettings`\" pulumi-lang-python=\"`job_settings`\" pulumi-lang-yaml=\"`jobSettings`\" pulumi-lang-java=\"`jobSettings`\"\u003e`job_settings`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"migrationType":{"type":"string","description":"Synchronization type, optional enumeration values are:\n\nFulllandrealtimeincremental (full and real-time incremental)\n\nRealtimeIncremental\n\nFull\n\nOffflineincremental\n\nFullAndOfflineIncremental (full amount + offline increment)\n","willReplaceOnChanges":true},"projectId":{"type":"integer","description":"Project Id\n","willReplaceOnChanges":true},"resourceSettings":{"$ref":"#/types/alicloud:dataworks/DiJobResourceSettings:DiJobResourceSettings","description":"Resource Group Properties See \u003cspan pulumi-lang-nodejs=\"`resourceSettings`\" pulumi-lang-dotnet=\"`ResourceSettings`\" pulumi-lang-go=\"`resourceSettings`\" pulumi-lang-python=\"`resource_settings`\" pulumi-lang-yaml=\"`resourceSettings`\" pulumi-lang-java=\"`resourceSettings`\"\u003e`resource_settings`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"sourceDataSourceSettings":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobSourceDataSourceSetting:DiJobSourceDataSourceSetting"},"description":"Source data source setting List See \u003cspan pulumi-lang-nodejs=\"`sourceDataSourceSettings`\" pulumi-lang-dotnet=\"`SourceDataSourceSettings`\" pulumi-lang-go=\"`sourceDataSourceSettings`\" pulumi-lang-python=\"`source_data_source_settings`\" pulumi-lang-yaml=\"`sourceDataSourceSettings`\" pulumi-lang-java=\"`sourceDataSourceSettings`\"\u003e`source_data_source_settings`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"sourceDataSourceType":{"type":"string","description":"The type of the source data source. The enumerated value is MySQL.\n","willReplaceOnChanges":true},"tableMappings":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobTableMapping:DiJobTableMapping"},"description":"Synchronize object transformation mapping list See \u003cspan pulumi-lang-nodejs=\"`tableMappings`\" pulumi-lang-dotnet=\"`TableMappings`\" pulumi-lang-go=\"`tableMappings`\" pulumi-lang-python=\"`table_mappings`\" pulumi-lang-yaml=\"`tableMappings`\" pulumi-lang-java=\"`tableMappings`\"\u003e`table_mappings`\u003c/span\u003e below.\n"},"transformationRules":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/DiJobTransformationRule:DiJobTransformationRule"},"description":"Definition list of synchronization object conversion rules See \u003cspan pulumi-lang-nodejs=\"`transformationRules`\" pulumi-lang-dotnet=\"`TransformationRules`\" pulumi-lang-go=\"`transformationRules`\" pulumi-lang-python=\"`transformation_rules`\" pulumi-lang-yaml=\"`transformationRules`\" pulumi-lang-java=\"`transformationRules`\"\u003e`transformation_rules`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:dataworks/dwResourceGroup:DwResourceGroup":{"description":"Provides a Data Works Dw Resource Group resource.\n\n\n\nFor information about Data Works Dw Resource Group and how to use it, see [What is Dw Resource Group](https://www.alibabacloud.com/help/en/dataworks/developer-reference/api-dataworks-public-2024-05-18-createresourcegroup).\n\n\u003e **NOTE:** Available since v1.241.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst defaultZImuCO = new alicloud.dataworks.Project(\"defaultZImuCO\", {\n    description: \"default_pj002\",\n    projectName: name,\n    displayName: \"default_pj002\",\n    paiTaskEnabled: true,\n});\nconst defaulte4zhaL = new alicloud.vpc.Network(\"defaulte4zhaL\", {\n    description: \"default_resgv2_vpc001\",\n    vpcName: std.format({\n        input: \"%s1\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst default675v38 = new alicloud.vpc.Switch(\"default675v38\", {\n    description: \"default_resg_vsw001\",\n    vpcId: defaulte4zhaL.id,\n    zoneId: \"cn-beijing-g\",\n    vswitchName: std.format({\n        input: \"%s2\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    cidrBlock: \"172.16.0.0/24\",\n});\nconst _default = new alicloud.dataworks.DwResourceGroup(\"default\", {\n    paymentType: \"PostPaid\",\n    defaultVpcId: defaulte4zhaL.id,\n    remark: \"openapi_example\",\n    resourceGroupName: \"openapi_pop2_example_resg00002\",\n    defaultVswitchId: default675v38.id,\n    paymentDurationUnit: \"Month\",\n    specification: 500,\n    paymentDuration: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault_z_imu_co = alicloud.dataworks.Project(\"defaultZImuCO\",\n    description=\"default_pj002\",\n    project_name=name,\n    display_name=\"default_pj002\",\n    pai_task_enabled=True)\ndefaulte4zha_l = alicloud.vpc.Network(\"defaulte4zhaL\",\n    description=\"default_resgv2_vpc001\",\n    vpc_name=std.format(input=\"%s1\",\n        args=[name]).result,\n    cidr_block=\"172.16.0.0/12\")\ndefault675v38 = alicloud.vpc.Switch(\"default675v38\",\n    description=\"default_resg_vsw001\",\n    vpc_id=defaulte4zha_l.id,\n    zone_id=\"cn-beijing-g\",\n    vswitch_name=std.format(input=\"%s2\",\n        args=[name]).result,\n    cidr_block=\"172.16.0.0/24\")\ndefault = alicloud.dataworks.DwResourceGroup(\"default\",\n    payment_type=\"PostPaid\",\n    default_vpc_id=defaulte4zha_l.id,\n    remark=\"openapi_example\",\n    resource_group_name=\"openapi_pop2_example_resg00002\",\n    default_vswitch_id=default675v38.id,\n    payment_duration_unit=\"Month\",\n    specification=500,\n    payment_duration=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var defaultZImuCO = new AliCloud.DataWorks.Project(\"defaultZImuCO\", new()\n    {\n        Description = \"default_pj002\",\n        ProjectName = name,\n        DisplayName = \"default_pj002\",\n        PaiTaskEnabled = true,\n    });\n\n    var defaulte4zhaL = new AliCloud.Vpc.Network(\"defaulte4zhaL\", new()\n    {\n        Description = \"default_resgv2_vpc001\",\n        VpcName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var default675v38 = new AliCloud.Vpc.Switch(\"default675v38\", new()\n    {\n        Description = \"default_resg_vsw001\",\n        VpcId = defaulte4zhaL.Id,\n        ZoneId = \"cn-beijing-g\",\n        VswitchName = Std.Format.Invoke(new()\n        {\n            Input = \"%s2\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        CidrBlock = \"172.16.0.0/24\",\n    });\n\n    var @default = new AliCloud.DataWorks.DwResourceGroup(\"default\", new()\n    {\n        PaymentType = \"PostPaid\",\n        DefaultVpcId = defaulte4zhaL.Id,\n        Remark = \"openapi_example\",\n        ResourceGroupName = \"openapi_pop2_example_resg00002\",\n        DefaultVswitchId = default675v38.Id,\n        PaymentDurationUnit = \"Month\",\n        Specification = 500,\n        PaymentDuration = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dataworks\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := dataworks.NewProject(ctx, \"defaultZImuCO\", \u0026dataworks.ProjectArgs{\n\t\t\tDescription:    pulumi.String(\"default_pj002\"),\n\t\t\tProjectName:    pulumi.String(name),\n\t\t\tDisplayName:    pulumi.String(\"default_pj002\"),\n\t\t\tPaiTaskEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaulte4zhaL, err := vpc.NewNetwork(ctx, \"defaulte4zhaL\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(\"default_resgv2_vpc001\"),\n\t\t\tVpcName:     pulumi.String(invokeFormat.Result),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s2\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault675v38, err := vpc.NewSwitch(ctx, \"default675v38\", \u0026vpc.SwitchArgs{\n\t\t\tDescription: pulumi.String(\"default_resg_vsw001\"),\n\t\t\tVpcId:       defaulte4zhaL.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-beijing-g\"),\n\t\t\tVswitchName: pulumi.String(invokeFormat1.Result),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dataworks.NewDwResourceGroup(ctx, \"default\", \u0026dataworks.DwResourceGroupArgs{\n\t\t\tPaymentType:         pulumi.String(\"PostPaid\"),\n\t\t\tDefaultVpcId:        defaulte4zhaL.ID(),\n\t\t\tRemark:              pulumi.String(\"openapi_example\"),\n\t\t\tResourceGroupName:   pulumi.String(\"openapi_pop2_example_resg00002\"),\n\t\t\tDefaultVswitchId:    default675v38.ID(),\n\t\t\tPaymentDurationUnit: pulumi.String(\"Month\"),\n\t\t\tSpecification:       pulumi.Int(500),\n\t\t\tPaymentDuration:     pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dataworks.Project;\nimport com.pulumi.alicloud.dataworks.ProjectArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.dataworks.DwResourceGroup;\nimport com.pulumi.alicloud.dataworks.DwResourceGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var defaultZImuCO = new Project(\"defaultZImuCO\", ProjectArgs.builder()\n            .description(\"default_pj002\")\n            .projectName(name)\n            .displayName(\"default_pj002\")\n            .paiTaskEnabled(true)\n            .build());\n\n        var defaulte4zhaL = new Network(\"defaulte4zhaL\", NetworkArgs.builder()\n            .description(\"default_resgv2_vpc001\")\n            .vpcName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1\")\n                .args(name)\n                .build()).result())\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var default675v38 = new Switch(\"default675v38\", SwitchArgs.builder()\n            .description(\"default_resg_vsw001\")\n            .vpcId(defaulte4zhaL.id())\n            .zoneId(\"cn-beijing-g\")\n            .vswitchName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s2\")\n                .args(name)\n                .build()).result())\n            .cidrBlock(\"172.16.0.0/24\")\n            .build());\n\n        var default_ = new DwResourceGroup(\"default\", DwResourceGroupArgs.builder()\n            .paymentType(\"PostPaid\")\n            .defaultVpcId(defaulte4zhaL.id())\n            .remark(\"openapi_example\")\n            .resourceGroupName(\"openapi_pop2_example_resg00002\")\n            .defaultVswitchId(default675v38.id())\n            .paymentDurationUnit(\"Month\")\n            .specification(500)\n            .paymentDuration(1)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  defaultZImuCO:\n    type: alicloud:dataworks:Project\n    properties:\n      description: default_pj002\n      projectName: ${name}\n      displayName: default_pj002\n      paiTaskEnabled: true\n  defaulte4zhaL:\n    type: alicloud:vpc:Network\n    properties:\n      description: default_resgv2_vpc001\n      vpcName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1'\n            args:\n              - ${name}\n          return: result\n      cidrBlock: 172.16.0.0/12\n  default675v38:\n    type: alicloud:vpc:Switch\n    properties:\n      description: default_resg_vsw001\n      vpcId: ${defaulte4zhaL.id}\n      zoneId: cn-beijing-g\n      vswitchName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s2'\n            args:\n              - ${name}\n          return: result\n      cidrBlock: 172.16.0.0/24\n  default:\n    type: alicloud:dataworks:DwResourceGroup\n    properties:\n      paymentType: PostPaid\n      defaultVpcId: ${defaulte4zhaL.id}\n      remark: openapi_example\n      resourceGroupName: openapi_pop2_example_resg00002\n      defaultVswitchId: ${default675v38.id}\n      paymentDurationUnit: Month\n      specification: '500'\n      paymentDuration: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nData Works Dw Resource Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dataworks/dwResourceGroup:DwResourceGroup example \u003cid\u003e\n```\n\n","properties":{"autoRenew":{"type":"boolean","description":"Whether to automatically renew. The default value is false.\n"},"createTime":{"type":"integer","description":"Resource group creation time\n"},"defaultVpcId":{"type":"string","description":"The VPC ID of the default network resource.\n"},"defaultVswitchId":{"type":"string","description":"The ID of the vswitch bound to the network resource by default.\n"},"paymentDuration":{"type":"integer","description":"When the payment method is Prepaid, the unit is PaymentDurationUnit.\n"},"paymentDurationUnit":{"type":"string","description":"When the payment method is Prepaid, the payment duration unit, Month is Month, Year is Year, and there is no other optional value.\n"},"paymentType":{"type":"string","description":"The billing type of the resource group. PrePaid is Subscription, and PostPaid is Pay-As-You-Go.\n"},"remark":{"type":"string","description":"Resource Group Comments\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"resourceGroupName":{"type":"string","description":"Resource group name\n"},"specification":{"type":"integer","description":"Package year and package month resource group specifications, unit CU\n"},"status":{"type":"string","description":"Resource group status:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"}},"required":["createTime","defaultVpcId","defaultVswitchId","paymentType","remark","resourceGroupId","status"],"inputProperties":{"autoRenew":{"type":"boolean","description":"Whether to automatically renew. The default value is false.\n"},"defaultVpcId":{"type":"string","description":"The VPC ID of the default network resource.\n","willReplaceOnChanges":true},"defaultVswitchId":{"type":"string","description":"The ID of the vswitch bound to the network resource by default.\n","willReplaceOnChanges":true},"paymentDuration":{"type":"integer","description":"When the payment method is Prepaid, the unit is PaymentDurationUnit.\n"},"paymentDurationUnit":{"type":"string","description":"When the payment method is Prepaid, the payment duration unit, Month is Month, Year is Year, and there is no other optional value.\n"},"paymentType":{"type":"string","description":"The billing type of the resource group. PrePaid is Subscription, and PostPaid is Pay-As-You-Go.\n","willReplaceOnChanges":true},"remark":{"type":"string","description":"Resource Group Comments\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"resourceGroupName":{"type":"string","description":"Resource group name\n"},"specification":{"type":"integer","description":"Package year and package month resource group specifications, unit CU\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"}},"requiredInputs":["defaultVpcId","defaultVswitchId","remark"],"stateInputs":{"description":"Input properties used for looking up and filtering DwResourceGroup resources.\n","properties":{"autoRenew":{"type":"boolean","description":"Whether to automatically renew. The default value is false.\n"},"createTime":{"type":"integer","description":"Resource group creation time\n"},"defaultVpcId":{"type":"string","description":"The VPC ID of the default network resource.\n","willReplaceOnChanges":true},"defaultVswitchId":{"type":"string","description":"The ID of the vswitch bound to the network resource by default.\n","willReplaceOnChanges":true},"paymentDuration":{"type":"integer","description":"When the payment method is Prepaid, the unit is PaymentDurationUnit.\n"},"paymentDurationUnit":{"type":"string","description":"When the payment method is Prepaid, the payment duration unit, Month is Month, Year is Year, and there is no other optional value.\n"},"paymentType":{"type":"string","description":"The billing type of the resource group. PrePaid is Subscription, and PostPaid is Pay-As-You-Go.\n","willReplaceOnChanges":true},"remark":{"type":"string","description":"Resource Group Comments\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"resourceGroupName":{"type":"string","description":"Resource group name\n"},"specification":{"type":"integer","description":"Package year and package month resource group specifications, unit CU\n"},"status":{"type":"string","description":"Resource group status:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"}},"type":"object"}},"alicloud:dataworks/folder:Folder":{"description":"Provides a Data Works Folder resource.\n\nFor information about Data Works Folder and how to use it, see [What is Folder](https://help.aliyun.com/document_detail/173940.html).\n\n\u003e **NOTE:** Available in v1.131.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.dataworks.Folder(\"example\", {\n    projectId: \"320687\",\n    folderPath: \"Business Flow/tfTestAcc/folderDi/tftest1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.dataworks.Folder(\"example\",\n    project_id=\"320687\",\n    folder_path=\"Business Flow/tfTestAcc/folderDi/tftest1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.DataWorks.Folder(\"example\", new()\n    {\n        ProjectId = \"320687\",\n        FolderPath = \"Business Flow/tfTestAcc/folderDi/tftest1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dataworks\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dataworks.NewFolder(ctx, \"example\", \u0026dataworks.FolderArgs{\n\t\t\tProjectId:  pulumi.String(\"320687\"),\n\t\t\tFolderPath: pulumi.String(\"Business Flow/tfTestAcc/folderDi/tftest1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dataworks.Folder;\nimport com.pulumi.alicloud.dataworks.FolderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Folder(\"example\", FolderArgs.builder()\n            .projectId(\"320687\")\n            .folderPath(\"Business Flow/tfTestAcc/folderDi/tftest1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:dataworks:Folder\n    properties:\n      projectId: '320687'\n      folderPath: Business Flow/tfTestAcc/folderDi/tftest1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nData Works Folder can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dataworks/folder:Folder example \u003cfolder_id\u003e:\u003c$.ProjectId\u003e\n```\n\n","properties":{"folderId":{"type":"string"},"folderPath":{"type":"string","description":"Folder Path. The folder path composed with for part: `Business Flow/{Business Flow Name}/[folderDi|folderMaxCompute|folderGeneral|folderJdbc|folderUserDefined]/{Directory Name}`. The first segment of path must be `Business Flow`, and sencond segment of path must be a Business Flow Name within the project. The third part of path must be one of those keywords:`folderDi|folderMaxCompute|folderGeneral|folderJdbc|folderUserDefined`. Then the finial part of folder path can be specified in yourself.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"projectIdentifier":{"type":"string"}},"required":["folderId","folderPath"],"inputProperties":{"folderPath":{"type":"string","description":"Folder Path. The folder path composed with for part: `Business Flow/{Business Flow Name}/[folderDi|folderMaxCompute|folderGeneral|folderJdbc|folderUserDefined]/{Directory Name}`. The first segment of path must be `Business Flow`, and sencond segment of path must be a Business Flow Name within the project. The third part of path must be one of those keywords:`folderDi|folderMaxCompute|folderGeneral|folderJdbc|folderUserDefined`. Then the finial part of folder path can be specified in yourself.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"projectIdentifier":{"type":"string"}},"requiredInputs":["folderPath"],"stateInputs":{"description":"Input properties used for looking up and filtering Folder resources.\n","properties":{"folderId":{"type":"string"},"folderPath":{"type":"string","description":"Folder Path. The folder path composed with for part: `Business Flow/{Business Flow Name}/[folderDi|folderMaxCompute|folderGeneral|folderJdbc|folderUserDefined]/{Directory Name}`. The first segment of path must be `Business Flow`, and sencond segment of path must be a Business Flow Name within the project. The third part of path must be one of those keywords:`folderDi|folderMaxCompute|folderGeneral|folderJdbc|folderUserDefined`. Then the finial part of folder path can be specified in yourself.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"projectIdentifier":{"type":"string"}},"type":"object"}},"alicloud:dataworks/network:Network":{"description":"Provides a Data Works Network resource.\n\nResource Group Network.\n\nFor information about Data Works Network and how to use it, see [What is Network](https://www.alibabacloud.com/help/en/dataworks/developer-reference/api-dataworks-public-2024-05-18-createnetwork).\n\n\u003e **NOTE:** Available since v1.241.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst default5Bia4h = new alicloud.vpc.Network(\"default5Bia4h\", {\n    description: name,\n    vpcName: name,\n    cidrBlock: \"10.0.0.0/8\",\n});\nconst defaultss7s7F = new alicloud.vpc.Switch(\"defaultss7s7F\", {\n    description: name,\n    vpcId: default5Bia4h.id,\n    zoneId: \"cn-beijing-g\",\n    vswitchName: std.format({\n        input: \"%s1\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    cidrBlock: \"10.0.0.0/24\",\n});\nconst defaultVJvKvl = new alicloud.dataworks.DwResourceGroup(\"defaultVJvKvl\", {\n    paymentDurationUnit: \"Month\",\n    paymentType: \"PostPaid\",\n    specification: 500,\n    defaultVswitchId: defaultss7s7F.id,\n    remark: name,\n    resourceGroupName: \"network_openapi_example01\",\n    defaultVpcId: default5Bia4h.id,\n});\nconst defaulte4zhaL = new alicloud.vpc.Network(\"defaulte4zhaL\", {\n    description: name,\n    vpcName: std.format({\n        input: \"%s3\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst default675v38 = new alicloud.vpc.Switch(\"default675v38\", {\n    description: name,\n    vpcId: defaulte4zhaL.id,\n    zoneId: \"cn-beijing-g\",\n    vswitchName: std.format({\n        input: \"%s4\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    cidrBlock: \"172.16.0.0/24\",\n});\nconst _default = new alicloud.dataworks.Network(\"default\", {\n    vpcId: defaulte4zhaL.id,\n    vswitchId: default675v38.id,\n    dwResourceGroupId: defaultVJvKvl.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault5_bia4h = alicloud.vpc.Network(\"default5Bia4h\",\n    description=name,\n    vpc_name=name,\n    cidr_block=\"10.0.0.0/8\")\ndefaultss7s7_f = alicloud.vpc.Switch(\"defaultss7s7F\",\n    description=name,\n    vpc_id=default5_bia4h.id,\n    zone_id=\"cn-beijing-g\",\n    vswitch_name=std.format(input=\"%s1\",\n        args=[name]).result,\n    cidr_block=\"10.0.0.0/24\")\ndefault_v_jv_kvl = alicloud.dataworks.DwResourceGroup(\"defaultVJvKvl\",\n    payment_duration_unit=\"Month\",\n    payment_type=\"PostPaid\",\n    specification=500,\n    default_vswitch_id=defaultss7s7_f.id,\n    remark=name,\n    resource_group_name=\"network_openapi_example01\",\n    default_vpc_id=default5_bia4h.id)\ndefaulte4zha_l = alicloud.vpc.Network(\"defaulte4zhaL\",\n    description=name,\n    vpc_name=std.format(input=\"%s3\",\n        args=[name]).result,\n    cidr_block=\"172.16.0.0/12\")\ndefault675v38 = alicloud.vpc.Switch(\"default675v38\",\n    description=name,\n    vpc_id=defaulte4zha_l.id,\n    zone_id=\"cn-beijing-g\",\n    vswitch_name=std.format(input=\"%s4\",\n        args=[name]).result,\n    cidr_block=\"172.16.0.0/24\")\ndefault = alicloud.dataworks.Network(\"default\",\n    vpc_id=defaulte4zha_l.id,\n    vswitch_id=default675v38.id,\n    dw_resource_group_id=default_v_jv_kvl.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var default5Bia4h = new AliCloud.Vpc.Network(\"default5Bia4h\", new()\n    {\n        Description = name,\n        VpcName = name,\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var defaultss7s7F = new AliCloud.Vpc.Switch(\"defaultss7s7F\", new()\n    {\n        Description = name,\n        VpcId = default5Bia4h.Id,\n        ZoneId = \"cn-beijing-g\",\n        VswitchName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        CidrBlock = \"10.0.0.0/24\",\n    });\n\n    var defaultVJvKvl = new AliCloud.DataWorks.DwResourceGroup(\"defaultVJvKvl\", new()\n    {\n        PaymentDurationUnit = \"Month\",\n        PaymentType = \"PostPaid\",\n        Specification = 500,\n        DefaultVswitchId = defaultss7s7F.Id,\n        Remark = name,\n        ResourceGroupName = \"network_openapi_example01\",\n        DefaultVpcId = default5Bia4h.Id,\n    });\n\n    var defaulte4zhaL = new AliCloud.Vpc.Network(\"defaulte4zhaL\", new()\n    {\n        Description = name,\n        VpcName = Std.Format.Invoke(new()\n        {\n            Input = \"%s3\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var default675v38 = new AliCloud.Vpc.Switch(\"default675v38\", new()\n    {\n        Description = name,\n        VpcId = defaulte4zhaL.Id,\n        ZoneId = \"cn-beijing-g\",\n        VswitchName = Std.Format.Invoke(new()\n        {\n            Input = \"%s4\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        CidrBlock = \"172.16.0.0/24\",\n    });\n\n    var @default = new AliCloud.DataWorks.Network(\"default\", new()\n    {\n        VpcId = defaulte4zhaL.Id,\n        VswitchId = default675v38.Id,\n        DwResourceGroupId = defaultVJvKvl.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dataworks\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefault5Bia4h, err := vpc.NewNetwork(ctx, \"default5Bia4h\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tVpcName:     pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultss7s7F, err := vpc.NewSwitch(ctx, \"defaultss7s7F\", \u0026vpc.SwitchArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tVpcId:       default5Bia4h.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-beijing-g\"),\n\t\t\tVswitchName: pulumi.String(invokeFormat.Result),\n\t\t\tCidrBlock:   pulumi.String(\"10.0.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVJvKvl, err := dataworks.NewDwResourceGroup(ctx, \"defaultVJvKvl\", \u0026dataworks.DwResourceGroupArgs{\n\t\t\tPaymentDurationUnit: pulumi.String(\"Month\"),\n\t\t\tPaymentType:         pulumi.String(\"PostPaid\"),\n\t\t\tSpecification:       pulumi.Int(500),\n\t\t\tDefaultVswitchId:    defaultss7s7F.ID(),\n\t\t\tRemark:              pulumi.String(name),\n\t\t\tResourceGroupName:   pulumi.String(\"network_openapi_example01\"),\n\t\t\tDefaultVpcId:        default5Bia4h.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s3\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaulte4zhaL, err := vpc.NewNetwork(ctx, \"defaulte4zhaL\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tVpcName:     pulumi.String(invokeFormat1.Result),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat2, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s4\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault675v38, err := vpc.NewSwitch(ctx, \"default675v38\", \u0026vpc.SwitchArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tVpcId:       defaulte4zhaL.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-beijing-g\"),\n\t\t\tVswitchName: pulumi.String(invokeFormat2.Result),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dataworks.NewNetwork(ctx, \"default\", \u0026dataworks.NetworkArgs{\n\t\t\tVpcId:             defaulte4zhaL.ID(),\n\t\t\tVswitchId:         default675v38.ID(),\n\t\t\tDwResourceGroupId: defaultVJvKvl.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.dataworks.DwResourceGroup;\nimport com.pulumi.alicloud.dataworks.DwResourceGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default5Bia4h = new com.pulumi.alicloud.vpc.Network(\"default5Bia4h\", com.pulumi.alicloud.vpc.NetworkArgs.builder()\n            .description(name)\n            .vpcName(name)\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var defaultss7s7F = new Switch(\"defaultss7s7F\", SwitchArgs.builder()\n            .description(name)\n            .vpcId(default5Bia4h.id())\n            .zoneId(\"cn-beijing-g\")\n            .vswitchName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1\")\n                .args(name)\n                .build()).result())\n            .cidrBlock(\"10.0.0.0/24\")\n            .build());\n\n        var defaultVJvKvl = new DwResourceGroup(\"defaultVJvKvl\", DwResourceGroupArgs.builder()\n            .paymentDurationUnit(\"Month\")\n            .paymentType(\"PostPaid\")\n            .specification(500)\n            .defaultVswitchId(defaultss7s7F.id())\n            .remark(name)\n            .resourceGroupName(\"network_openapi_example01\")\n            .defaultVpcId(default5Bia4h.id())\n            .build());\n\n        var defaulte4zhaL = new com.pulumi.alicloud.vpc.Network(\"defaulte4zhaL\", com.pulumi.alicloud.vpc.NetworkArgs.builder()\n            .description(name)\n            .vpcName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s3\")\n                .args(name)\n                .build()).result())\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var default675v38 = new Switch(\"default675v38\", SwitchArgs.builder()\n            .description(name)\n            .vpcId(defaulte4zhaL.id())\n            .zoneId(\"cn-beijing-g\")\n            .vswitchName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s4\")\n                .args(name)\n                .build()).result())\n            .cidrBlock(\"172.16.0.0/24\")\n            .build());\n\n        var default_ = new com.pulumi.alicloud.dataworks.Network(\"default\", com.pulumi.alicloud.dataworks.NetworkArgs.builder()\n            .vpcId(defaulte4zhaL.id())\n            .vswitchId(default675v38.id())\n            .dwResourceGroupId(defaultVJvKvl.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default5Bia4h:\n    type: alicloud:vpc:Network\n    properties:\n      description: ${name}\n      vpcName: ${name}\n      cidrBlock: 10.0.0.0/8\n  defaultss7s7F:\n    type: alicloud:vpc:Switch\n    properties:\n      description: ${name}\n      vpcId: ${default5Bia4h.id}\n      zoneId: cn-beijing-g\n      vswitchName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1'\n            args:\n              - ${name}\n          return: result\n      cidrBlock: 10.0.0.0/24\n  defaultVJvKvl:\n    type: alicloud:dataworks:DwResourceGroup\n    properties:\n      paymentDurationUnit: Month\n      paymentType: PostPaid\n      specification: '500'\n      defaultVswitchId: ${defaultss7s7F.id}\n      remark: ${name}\n      resourceGroupName: network_openapi_example01\n      defaultVpcId: ${default5Bia4h.id}\n  defaulte4zhaL:\n    type: alicloud:vpc:Network\n    properties:\n      description: ${name}\n      vpcName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s3'\n            args:\n              - ${name}\n          return: result\n      cidrBlock: 172.16.0.0/12\n  default675v38:\n    type: alicloud:vpc:Switch\n    properties:\n      description: ${name}\n      vpcId: ${defaulte4zhaL.id}\n      zoneId: cn-beijing-g\n      vswitchName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s4'\n            args:\n              - ${name}\n          return: result\n      cidrBlock: 172.16.0.0/24\n  default:\n    type: alicloud:dataworks:Network\n    properties:\n      vpcId: ${defaulte4zhaL.id}\n      vswitchId: ${default675v38.id}\n      dwResourceGroupId: ${defaultVJvKvl.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nData Works Network can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dataworks/network:Network example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"integer","description":"Time when the network resource was created\n"},"dwResourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"Network Resource Status\n"},"vpcId":{"type":"string","description":"Virtual Private Cloud ID of network resources\n"},"vswitchId":{"type":"string","description":"The vSwitch ID of the network resource.\n"}},"required":["createTime","dwResourceGroupId","status","vpcId","vswitchId"],"inputProperties":{"dwResourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"Virtual Private Cloud ID of network resources\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vSwitch ID of the network resource.\n","willReplaceOnChanges":true}},"requiredInputs":["dwResourceGroupId","vpcId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering Network resources.\n","properties":{"createTime":{"type":"integer","description":"Time when the network resource was created\n"},"dwResourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Network Resource Status\n"},"vpcId":{"type":"string","description":"Virtual Private Cloud ID of network resources\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vSwitch ID of the network resource.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dataworks/project:Project":{"description":"Provides a Data Works Project resource.\n\n\n\nFor information about Data Works Project and how to use it, see [What is Project](https://www.alibabacloud.com/help/en/dataworks/developer-reference/api-dataworks-public-2024-05-18-createproject).\n\n\u003e **NOTE:** Available since v1.229.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst randint = new random.index.Integer(\"randint\", {\n    max: 999,\n    min: 1,\n});\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultProject = new alicloud.dataworks.Project(\"default\", {\n    status: \"Available\",\n    description: \"tf_desc\",\n    projectName: `${name}${randint.id}`,\n    paiTaskEnabled: false,\n    displayName: \"tf_new_api_display\",\n    devRoleDisabled: true,\n    devEnvironmentEnabled: false,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\nrandint = random.index.Integer(\"randint\",\n    max=999,\n    min=1)\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_project = alicloud.dataworks.Project(\"default\",\n    status=\"Available\",\n    description=\"tf_desc\",\n    project_name=f\"{name}{randint['id']}\",\n    pai_task_enabled=False,\n    display_name=\"tf_new_api_display\",\n    dev_role_disabled=True,\n    dev_environment_enabled=False,\n    resource_group_id=default.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var randint = new Random.Index.Integer(\"randint\", new()\n    {\n        Max = 999,\n        Min = 1,\n    });\n\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultProject = new AliCloud.DataWorks.Project(\"default\", new()\n    {\n        Status = \"Available\",\n        Description = \"tf_desc\",\n        ProjectName = $\"{name}{randint.Id}\",\n        PaiTaskEnabled = false,\n        DisplayName = \"tf_new_api_display\",\n        DevRoleDisabled = true,\n        DevEnvironmentEnabled = false,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dataworks\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\trandint, err := random.NewInteger(ctx, \"randint\", \u0026random.IntegerArgs{\n\t\t\tMax: 999,\n\t\t\tMin: 1,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dataworks.NewProject(ctx, \"default\", \u0026dataworks.ProjectArgs{\n\t\t\tStatus:                pulumi.String(\"Available\"),\n\t\t\tDescription:           pulumi.String(\"tf_desc\"),\n\t\t\tProjectName:           pulumi.Sprintf(\"%v%v\", name, randint.Id),\n\t\t\tPaiTaskEnabled:        pulumi.Bool(false),\n\t\t\tDisplayName:           pulumi.String(\"tf_new_api_display\"),\n\t\t\tDevRoleDisabled:       pulumi.Bool(true),\n\t\t\tDevEnvironmentEnabled: pulumi.Bool(false),\n\t\t\tResourceGroupId:       pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.dataworks.Project;\nimport com.pulumi.alicloud.dataworks.ProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var randint = new Integer(\"randint\", IntegerArgs.builder()\n            .max(999)\n            .min(1)\n            .build());\n\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .status(\"Available\")\n            .description(\"tf_desc\")\n            .projectName(String.format(\"%s%s\", name,randint.id()))\n            .paiTaskEnabled(false)\n            .displayName(\"tf_new_api_display\")\n            .devRoleDisabled(true)\n            .devEnvironmentEnabled(false)\n            .resourceGroupId(default_.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  randint:\n    type: random:Integer\n    properties:\n      max: 999\n      min: 1\n  defaultProject:\n    type: alicloud:dataworks:Project\n    name: default\n    properties:\n      status: Available\n      description: tf_desc\n      projectName: ${name}${randint.id}\n      paiTaskEnabled: 'false'\n      displayName: tf_new_api_display\n      devRoleDisabled: 'true'\n      devEnvironmentEnabled: 'false'\n      resourceGroupId: ${default.ids[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nData Works Project can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dataworks/project:Project example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"Workspace Description\n"},"devEnvironmentEnabled":{"type":"boolean","description":"Is Development Environment Enabled\n"},"devRoleDisabled":{"type":"boolean","description":"Is Development Role Disabled\n"},"displayName":{"type":"string","description":"Workspace Display Name\n"},"paiTaskEnabled":{"type":"boolean","description":"Create PAI Workspace Together\n"},"projectName":{"type":"string","description":"Workspace Name\n"},"resourceGroupId":{"type":"string","description":"Aliyun Resource Group Id\n"},"status":{"type":"string","description":"Workspace Status\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Aliyun Resource Tag\n"}},"required":["devEnvironmentEnabled","devRoleDisabled","displayName","paiTaskEnabled","projectName","resourceGroupId","status"],"inputProperties":{"description":{"type":"string","description":"Workspace Description\n"},"devEnvironmentEnabled":{"type":"boolean","description":"Is Development Environment Enabled\n"},"devRoleDisabled":{"type":"boolean","description":"Is Development Role Disabled\n"},"displayName":{"type":"string","description":"Workspace Display Name\n"},"paiTaskEnabled":{"type":"boolean","description":"Create PAI Workspace Together\n"},"projectName":{"type":"string","description":"Workspace Name\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"Aliyun Resource Group Id\n"},"status":{"type":"string","description":"Workspace Status\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Aliyun Resource Tag\n"}},"requiredInputs":["displayName","paiTaskEnabled","projectName"],"stateInputs":{"description":"Input properties used for looking up and filtering Project resources.\n","properties":{"description":{"type":"string","description":"Workspace Description\n"},"devEnvironmentEnabled":{"type":"boolean","description":"Is Development Environment Enabled\n"},"devRoleDisabled":{"type":"boolean","description":"Is Development Role Disabled\n"},"displayName":{"type":"string","description":"Workspace Display Name\n"},"paiTaskEnabled":{"type":"boolean","description":"Create PAI Workspace Together\n"},"projectName":{"type":"string","description":"Workspace Name\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"Aliyun Resource Group Id\n"},"status":{"type":"string","description":"Workspace Status\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Aliyun Resource Tag\n"}},"type":"object"}},"alicloud:dataworks/projectMember:ProjectMember":{"description":"Provides a Data Works Project Member resource.\n\n\n\nFor information about Data Works Project Member and how to use it, see [What is Project Member](https://www.alibabacloud.com/help/en/dataworks/developer-reference/api-dataworks-public-2024-05-18-createprojectmember).\n\n\u003e **NOTE:** Available since v1.237.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst adminCode = config.get(\"adminCode\") || \"role_project_admin\";\nconst name = config.get(\"name\") || \"tf_example\";\nconst randint = new random.index.Integer(\"randint\", {\n    max: 999,\n    min: 1,\n});\nconst defaultKCTrB2 = new alicloud.ram.User(\"defaultKCTrB2\", {\n    displayName: `${name}${randint.id}`,\n    name: `${name}${randint.id}`,\n});\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultQeRfvU = new alicloud.dataworks.Project(\"defaultQeRfvU\", {\n    status: \"Available\",\n    description: \"tf_desc\",\n    projectName: `${name}${randint.id}`,\n    paiTaskEnabled: false,\n    displayName: \"tf_new_api_display\",\n    devRoleDisabled: true,\n    devEnvironmentEnabled: false,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n});\nconst defaultProjectMember = new alicloud.dataworks.ProjectMember(\"default\", {\n    userId: defaultKCTrB2.id,\n    projectId: defaultQeRfvU.id,\n    roles: [{\n        code: adminCode,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nadmin_code = config.get(\"adminCode\")\nif admin_code is None:\n    admin_code = \"role_project_admin\"\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\nrandint = random.index.Integer(\"randint\",\n    max=999,\n    min=1)\ndefault_kc_tr_b2 = alicloud.ram.User(\"defaultKCTrB2\",\n    display_name=f\"{name}{randint['id']}\",\n    name=f\"{name}{randint['id']}\")\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_qe_rfv_u = alicloud.dataworks.Project(\"defaultQeRfvU\",\n    status=\"Available\",\n    description=\"tf_desc\",\n    project_name=f\"{name}{randint['id']}\",\n    pai_task_enabled=False,\n    display_name=\"tf_new_api_display\",\n    dev_role_disabled=True,\n    dev_environment_enabled=False,\n    resource_group_id=default.ids[0])\ndefault_project_member = alicloud.dataworks.ProjectMember(\"default\",\n    user_id=default_kc_tr_b2.id,\n    project_id=default_qe_rfv_u.id,\n    roles=[{\n        \"code\": admin_code,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var adminCode = config.Get(\"adminCode\") ?? \"role_project_admin\";\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var randint = new Random.Index.Integer(\"randint\", new()\n    {\n        Max = 999,\n        Min = 1,\n    });\n\n    var defaultKCTrB2 = new AliCloud.Ram.User(\"defaultKCTrB2\", new()\n    {\n        DisplayName = $\"{name}{randint.Id}\",\n        Name = $\"{name}{randint.Id}\",\n    });\n\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultQeRfvU = new AliCloud.DataWorks.Project(\"defaultQeRfvU\", new()\n    {\n        Status = \"Available\",\n        Description = \"tf_desc\",\n        ProjectName = $\"{name}{randint.Id}\",\n        PaiTaskEnabled = false,\n        DisplayName = \"tf_new_api_display\",\n        DevRoleDisabled = true,\n        DevEnvironmentEnabled = false,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n    });\n\n    var defaultProjectMember = new AliCloud.DataWorks.ProjectMember(\"default\", new()\n    {\n        UserId = defaultKCTrB2.Id,\n        ProjectId = defaultQeRfvU.Id,\n        Roles = new[]\n        {\n            new AliCloud.DataWorks.Inputs.ProjectMemberRoleArgs\n            {\n                Code = adminCode,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dataworks\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tadminCode := \"role_project_admin\"\n\t\tif param := cfg.Get(\"adminCode\"); param != \"\" {\n\t\t\tadminCode = param\n\t\t}\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\trandint, err := random.NewInteger(ctx, \"randint\", \u0026random.IntegerArgs{\n\t\t\tMax: 999,\n\t\t\tMin: 1,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultKCTrB2, err := ram.NewUser(ctx, \"defaultKCTrB2\", \u0026ram.UserArgs{\n\t\t\tDisplayName: pulumi.Sprintf(\"%v%v\", name, randint.Id),\n\t\t\tName:        pulumi.Sprintf(\"%v%v\", name, randint.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultQeRfvU, err := dataworks.NewProject(ctx, \"defaultQeRfvU\", \u0026dataworks.ProjectArgs{\n\t\t\tStatus:                pulumi.String(\"Available\"),\n\t\t\tDescription:           pulumi.String(\"tf_desc\"),\n\t\t\tProjectName:           pulumi.Sprintf(\"%v%v\", name, randint.Id),\n\t\t\tPaiTaskEnabled:        pulumi.Bool(false),\n\t\t\tDisplayName:           pulumi.String(\"tf_new_api_display\"),\n\t\t\tDevRoleDisabled:       pulumi.Bool(true),\n\t\t\tDevEnvironmentEnabled: pulumi.Bool(false),\n\t\t\tResourceGroupId:       pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dataworks.NewProjectMember(ctx, \"default\", \u0026dataworks.ProjectMemberArgs{\n\t\t\tUserId:    defaultKCTrB2.ID(),\n\t\t\tProjectId: defaultQeRfvU.ID(),\n\t\t\tRoles: dataworks.ProjectMemberRoleArray{\n\t\t\t\t\u0026dataworks.ProjectMemberRoleArgs{\n\t\t\t\t\tCode: pulumi.String(adminCode),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ram.User;\nimport com.pulumi.alicloud.ram.UserArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.dataworks.Project;\nimport com.pulumi.alicloud.dataworks.ProjectArgs;\nimport com.pulumi.alicloud.dataworks.ProjectMember;\nimport com.pulumi.alicloud.dataworks.ProjectMemberArgs;\nimport com.pulumi.alicloud.dataworks.inputs.ProjectMemberRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var adminCode = config.get(\"adminCode\").orElse(\"role_project_admin\");\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var randint = new Integer(\"randint\", IntegerArgs.builder()\n            .max(999)\n            .min(1)\n            .build());\n\n        var defaultKCTrB2 = new User(\"defaultKCTrB2\", UserArgs.builder()\n            .displayName(String.format(\"%s%s\", name,randint.id()))\n            .name(String.format(\"%s%s\", name,randint.id()))\n            .build());\n\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultQeRfvU = new Project(\"defaultQeRfvU\", ProjectArgs.builder()\n            .status(\"Available\")\n            .description(\"tf_desc\")\n            .projectName(String.format(\"%s%s\", name,randint.id()))\n            .paiTaskEnabled(false)\n            .displayName(\"tf_new_api_display\")\n            .devRoleDisabled(true)\n            .devEnvironmentEnabled(false)\n            .resourceGroupId(default_.ids()[0])\n            .build());\n\n        var defaultProjectMember = new ProjectMember(\"defaultProjectMember\", ProjectMemberArgs.builder()\n            .userId(defaultKCTrB2.id())\n            .projectId(defaultQeRfvU.id())\n            .roles(ProjectMemberRoleArgs.builder()\n                .code(adminCode)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  adminCode:\n    type: string\n    default: role_project_admin\n  name:\n    type: string\n    default: tf_example\nresources:\n  randint:\n    type: random:Integer\n    properties:\n      max: 999\n      min: 1\n  defaultKCTrB2:\n    type: alicloud:ram:User\n    properties:\n      displayName: ${name}${randint.id}\n      name: ${name}${randint.id}\n  defaultQeRfvU:\n    type: alicloud:dataworks:Project\n    properties:\n      status: Available\n      description: tf_desc\n      projectName: ${name}${randint.id}\n      paiTaskEnabled: 'false'\n      displayName: tf_new_api_display\n      devRoleDisabled: 'true'\n      devEnvironmentEnabled: 'false'\n      resourceGroupId: ${default.ids[0]}\n  defaultProjectMember:\n    type: alicloud:dataworks:ProjectMember\n    name: default\n    properties:\n      userId: ${defaultKCTrB2.id}\n      projectId: ${defaultQeRfvU.id}\n      roles:\n        - code: ${adminCode}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nData Works Project Member can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dataworks/projectMember:ProjectMember example \u003cproject_id\u003e:\u003cuser_id\u003e\n```\n\n","properties":{"projectId":{"type":"integer","description":"Project ID\n"},"roles":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/ProjectMemberRole:ProjectMemberRole"},"description":"List of roles owned by members. See \u003cspan pulumi-lang-nodejs=\"`roles`\" pulumi-lang-dotnet=\"`Roles`\" pulumi-lang-go=\"`roles`\" pulumi-lang-python=\"`roles`\" pulumi-lang-yaml=\"`roles`\" pulumi-lang-java=\"`roles`\"\u003e`roles`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the user in project\n"},"userId":{"type":"string","description":"The user ID of the member.\n"}},"required":["projectId","status","userId"],"inputProperties":{"projectId":{"type":"integer","description":"Project ID\n","willReplaceOnChanges":true},"roles":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/ProjectMemberRole:ProjectMemberRole"},"description":"List of roles owned by members. See \u003cspan pulumi-lang-nodejs=\"`roles`\" pulumi-lang-dotnet=\"`Roles`\" pulumi-lang-go=\"`roles`\" pulumi-lang-python=\"`roles`\" pulumi-lang-yaml=\"`roles`\" pulumi-lang-java=\"`roles`\"\u003e`roles`\u003c/span\u003e below.\n"},"userId":{"type":"string","description":"The user ID of the member.\n","willReplaceOnChanges":true}},"requiredInputs":["projectId","userId"],"stateInputs":{"description":"Input properties used for looking up and filtering ProjectMember resources.\n","properties":{"projectId":{"type":"integer","description":"Project ID\n","willReplaceOnChanges":true},"roles":{"type":"array","items":{"$ref":"#/types/alicloud:dataworks/ProjectMemberRole:ProjectMemberRole"},"description":"List of roles owned by members. See \u003cspan pulumi-lang-nodejs=\"`roles`\" pulumi-lang-dotnet=\"`Roles`\" pulumi-lang-go=\"`roles`\" pulumi-lang-python=\"`roles`\" pulumi-lang-yaml=\"`roles`\" pulumi-lang-java=\"`roles`\"\u003e`roles`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the user in project\n"},"userId":{"type":"string","description":"The user ID of the member.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dbs/backupPlan:BackupPlan":{"description":"Provides a DBS Backup Plan resource.\n\nFor information about DBS Backup Plan and how to use it, see [What is Backup Plan](https://www.alibabacloud.com/help/en/dms/developer-reference/api-dbs-2019-03-06-createandstartbackupplan).\n\n\u003e **NOTE:** Available since v1.185.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultGetZones = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"HighAvailability\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst defaultGetInstanceClasses = defaultGetZones.then(defaultGetZones =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: defaultGetZones.zones?.[1]?.id,\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    category: \"HighAvailability\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceChargeType: \"PostPaid\",\n}));\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, defaultGetZones]).then(([defaultGetNetworks, defaultGetZones]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: defaultGetZones.zones?.[1]?.id,\n}));\nconst vswitchId = defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]);\nconst zoneId = defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.ids?.[1]);\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n});\nconst defaultInstance = new alicloud.rds.Instance(\"default\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceType: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    vswitchId: vswitchId,\n    instanceName: name,\n});\nconst defaultDatabase = new alicloud.rds.Database(\"default\", {\n    instanceId: defaultInstance.id,\n    name: \"tfdatabase\",\n});\nconst defaultRdsAccount = new alicloud.rds.RdsAccount(\"default\", {\n    dbInstanceId: defaultInstance.id,\n    accountName: \"tfnormal000\",\n    accountPassword: \"Test12345\",\n});\nconst defaultAccountPrivilege = new alicloud.rds.AccountPrivilege(\"default\", {\n    instanceId: defaultInstance.id,\n    accountName: defaultRdsAccount.accountName,\n    privilege: \"ReadWrite\",\n    dbNames: [defaultDatabase.name],\n});\nconst defaultBackupPlan = new alicloud.dbs.BackupPlan(\"default\", {\n    backupPlanName: name,\n    paymentType: \"PayAsYouGo\",\n    instanceClass: \"xlarge\",\n    backupMethod: \"logical\",\n    databaseType: \"MySQL\",\n    databaseRegion: \"cn-hangzhou\",\n    storageRegion: \"cn-hangzhou\",\n    instanceType: \"RDS\",\n    sourceEndpointInstanceType: \"RDS\",\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    sourceEndpointRegion: \"cn-hangzhou\",\n    sourceEndpointInstanceId: defaultInstance.id,\n    sourceEndpointUserName: defaultAccountPrivilege.accountName,\n    sourceEndpointPassword: defaultRdsAccount.accountPassword,\n    backupObjects: pulumi.interpolate`[{\"DBName\":\"${defaultDatabase.name}\"}]`,\n    backupPeriod: \"Monday\",\n    backupStartTime: \"14:22\",\n    backupStorageType: \"system\",\n    backupRetentionPeriod: 740,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_get_zones = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"HighAvailability\",\n    db_instance_storage_type=\"cloud_essd\")\ndefault_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=default_get_zones.zones[1].id,\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    category=\"HighAvailability\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_charge_type=\"PostPaid\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default_get_zones.zones[1].id)\nvswitch_id = default_get_switches.ids[0]\nzone_id = default_get_zones.ids[1]\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.rds.Instance(\"default\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_type=default_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=default_get_instance_classes.instance_classes[0].storage_range.min,\n    vswitch_id=vswitch_id,\n    instance_name=name)\ndefault_database = alicloud.rds.Database(\"default\",\n    instance_id=default_instance.id,\n    name=\"tfdatabase\")\ndefault_rds_account = alicloud.rds.RdsAccount(\"default\",\n    db_instance_id=default_instance.id,\n    account_name=\"tfnormal000\",\n    account_password=\"Test12345\")\ndefault_account_privilege = alicloud.rds.AccountPrivilege(\"default\",\n    instance_id=default_instance.id,\n    account_name=default_rds_account.account_name,\n    privilege=\"ReadWrite\",\n    db_names=[default_database.name])\ndefault_backup_plan = alicloud.dbs.BackupPlan(\"default\",\n    backup_plan_name=name,\n    payment_type=\"PayAsYouGo\",\n    instance_class=\"xlarge\",\n    backup_method=\"logical\",\n    database_type=\"MySQL\",\n    database_region=\"cn-hangzhou\",\n    storage_region=\"cn-hangzhou\",\n    instance_type=\"RDS\",\n    source_endpoint_instance_type=\"RDS\",\n    resource_group_id=default.ids[0],\n    source_endpoint_region=\"cn-hangzhou\",\n    source_endpoint_instance_id=default_instance.id,\n    source_endpoint_user_name=default_account_privilege.account_name,\n    source_endpoint_password=default_rds_account.account_password,\n    backup_objects=default_database.name.apply(lambda name: f\"[{{\\\"DBName\\\":\\\"{name}\\\"}}]\"),\n    backup_period=\"Monday\",\n    backup_start_time=\"14:22\",\n    backup_storage_type=\"system\",\n    backup_retention_period=740)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultGetZones = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"HighAvailability\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var defaultGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        Category = \"HighAvailability\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n    });\n\n    var vswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]);\n\n    var zoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Ids[1]);\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.Rds.Instance(\"default\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceType = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        VswitchId = vswitchId,\n        InstanceName = name,\n    });\n\n    var defaultDatabase = new AliCloud.Rds.Database(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        Name = \"tfdatabase\",\n    });\n\n    var defaultRdsAccount = new AliCloud.Rds.RdsAccount(\"default\", new()\n    {\n        DbInstanceId = defaultInstance.Id,\n        AccountName = \"tfnormal000\",\n        AccountPassword = \"Test12345\",\n    });\n\n    var defaultAccountPrivilege = new AliCloud.Rds.AccountPrivilege(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        AccountName = defaultRdsAccount.AccountName,\n        Privilege = \"ReadWrite\",\n        DbNames = new[]\n        {\n            defaultDatabase.Name,\n        },\n    });\n\n    var defaultBackupPlan = new AliCloud.DBS.BackupPlan(\"default\", new()\n    {\n        BackupPlanName = name,\n        PaymentType = \"PayAsYouGo\",\n        InstanceClass = \"xlarge\",\n        BackupMethod = \"logical\",\n        DatabaseType = \"MySQL\",\n        DatabaseRegion = \"cn-hangzhou\",\n        StorageRegion = \"cn-hangzhou\",\n        InstanceType = \"RDS\",\n        SourceEndpointInstanceType = \"RDS\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        SourceEndpointRegion = \"cn-hangzhou\",\n        SourceEndpointInstanceId = defaultInstance.Id,\n        SourceEndpointUserName = defaultAccountPrivilege.AccountName,\n        SourceEndpointPassword = defaultRdsAccount.AccountPassword,\n        BackupObjects = defaultDatabase.Name.Apply(name =\u003e $\"[{{\\\"DBName\\\":\\\"{name}\\\"}}]\"),\n        BackupPeriod = \"Monday\",\n        BackupStartTime = \"14:22\",\n        BackupStorageType = \"system\",\n        BackupRetentionPeriod = 740,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dbs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"HighAvailability\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(defaultGetZones.Zones[1].Id),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tCategory:              pulumi.StringRef(\"HighAvailability\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(defaultGetZones.Zones[1].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvswitchId := defaultGetSwitches.Ids[0]\n\t\t_ := defaultGetZones.Ids[1]\n\t\t_, err = ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rds.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tInstanceType:          pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceStorage:       pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tVswitchId:             pulumi.String(vswitchId),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDatabase, err := rds.NewDatabase(ctx, \"default\", \u0026rds.DatabaseArgs{\n\t\t\tInstanceId: defaultInstance.ID(),\n\t\t\tName:       pulumi.String(\"tfdatabase\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRdsAccount, err := rds.NewRdsAccount(ctx, \"default\", \u0026rds.RdsAccountArgs{\n\t\t\tDbInstanceId:    defaultInstance.ID(),\n\t\t\tAccountName:     pulumi.String(\"tfnormal000\"),\n\t\t\tAccountPassword: pulumi.String(\"Test12345\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAccountPrivilege, err := rds.NewAccountPrivilege(ctx, \"default\", \u0026rds.AccountPrivilegeArgs{\n\t\t\tInstanceId:  defaultInstance.ID(),\n\t\t\tAccountName: defaultRdsAccount.AccountName,\n\t\t\tPrivilege:   pulumi.String(\"ReadWrite\"),\n\t\t\tDbNames: pulumi.StringArray{\n\t\t\t\tdefaultDatabase.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dbs.NewBackupPlan(ctx, \"default\", \u0026dbs.BackupPlanArgs{\n\t\t\tBackupPlanName:             pulumi.String(name),\n\t\t\tPaymentType:                pulumi.String(\"PayAsYouGo\"),\n\t\t\tInstanceClass:              pulumi.String(\"xlarge\"),\n\t\t\tBackupMethod:               pulumi.String(\"logical\"),\n\t\t\tDatabaseType:               pulumi.String(\"MySQL\"),\n\t\t\tDatabaseRegion:             pulumi.String(\"cn-hangzhou\"),\n\t\t\tStorageRegion:              pulumi.String(\"cn-hangzhou\"),\n\t\t\tInstanceType:               pulumi.String(\"RDS\"),\n\t\t\tSourceEndpointInstanceType: pulumi.String(\"RDS\"),\n\t\t\tResourceGroupId:            pulumi.String(_default.Ids[0]),\n\t\t\tSourceEndpointRegion:       pulumi.String(\"cn-hangzhou\"),\n\t\t\tSourceEndpointInstanceId:   defaultInstance.ID(),\n\t\t\tSourceEndpointUserName:     defaultAccountPrivilege.AccountName,\n\t\t\tSourceEndpointPassword:     defaultRdsAccount.AccountPassword,\n\t\t\tBackupObjects: defaultDatabase.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"[{\\\"DBName\\\":\\\"%v\\\"}]\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tBackupPeriod:          pulumi.String(\"Monday\"),\n\t\t\tBackupStartTime:       pulumi.String(\"14:22\"),\n\t\t\tBackupStorageType:     pulumi.String(\"system\"),\n\t\t\tBackupRetentionPeriod: pulumi.Int(740),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.Database;\nimport com.pulumi.alicloud.rds.DatabaseArgs;\nimport com.pulumi.alicloud.rds.RdsAccount;\nimport com.pulumi.alicloud.rds.RdsAccountArgs;\nimport com.pulumi.alicloud.rds.AccountPrivilege;\nimport com.pulumi.alicloud.rds.AccountPrivilegeArgs;\nimport com.pulumi.alicloud.dbs.BackupPlan;\nimport com.pulumi.alicloud.dbs.BackupPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        final var defaultGetZones = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"HighAvailability\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var defaultGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(defaultGetZones.zones()[1].id())\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .category(\"HighAvailability\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(defaultGetZones.zones()[1].id())\n            .build());\n\n        final var vswitchId = defaultGetSwitches.ids()[0];\n\n        final var zoneId = defaultGetZones.ids()[1];\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceType(defaultGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(defaultGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .vswitchId(vswitchId)\n            .instanceName(name)\n            .build());\n\n        var defaultDatabase = new Database(\"defaultDatabase\", DatabaseArgs.builder()\n            .instanceId(defaultInstance.id())\n            .name(\"tfdatabase\")\n            .build());\n\n        var defaultRdsAccount = new RdsAccount(\"defaultRdsAccount\", RdsAccountArgs.builder()\n            .dbInstanceId(defaultInstance.id())\n            .accountName(\"tfnormal000\")\n            .accountPassword(\"Test12345\")\n            .build());\n\n        var defaultAccountPrivilege = new AccountPrivilege(\"defaultAccountPrivilege\", AccountPrivilegeArgs.builder()\n            .instanceId(defaultInstance.id())\n            .accountName(defaultRdsAccount.accountName())\n            .privilege(\"ReadWrite\")\n            .dbNames(defaultDatabase.name())\n            .build());\n\n        var defaultBackupPlan = new BackupPlan(\"defaultBackupPlan\", BackupPlanArgs.builder()\n            .backupPlanName(name)\n            .paymentType(\"PayAsYouGo\")\n            .instanceClass(\"xlarge\")\n            .backupMethod(\"logical\")\n            .databaseType(\"MySQL\")\n            .databaseRegion(\"cn-hangzhou\")\n            .storageRegion(\"cn-hangzhou\")\n            .instanceType(\"RDS\")\n            .sourceEndpointInstanceType(\"RDS\")\n            .resourceGroupId(default_.ids()[0])\n            .sourceEndpointRegion(\"cn-hangzhou\")\n            .sourceEndpointInstanceId(defaultInstance.id())\n            .sourceEndpointUserName(defaultAccountPrivilege.accountName())\n            .sourceEndpointPassword(defaultRdsAccount.accountPassword())\n            .backupObjects(defaultDatabase.name().applyValue(_name -\u003e String.format(\"[{{\\\"DBName\\\":\\\"%s\\\"}}]\", _name)))\n            .backupPeriod(\"Monday\")\n            .backupStartTime(\"14:22\")\n            .backupStorageType(\"system\")\n            .backupRetentionPeriod(740)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultInstance:\n    type: alicloud:rds:Instance\n    name: default\n    properties:\n      engine: MySQL\n      engineVersion: '8.0'\n      dbInstanceStorageType: cloud_essd\n      instanceType: ${defaultGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceStorage: ${defaultGetInstanceClasses.instanceClasses[0].storageRange.min}\n      vswitchId: ${vswitchId}\n      instanceName: ${name}\n  defaultDatabase:\n    type: alicloud:rds:Database\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      name: tfdatabase\n  defaultRdsAccount:\n    type: alicloud:rds:RdsAccount\n    name: default\n    properties:\n      dbInstanceId: ${defaultInstance.id}\n      accountName: tfnormal000\n      accountPassword: Test12345\n  defaultAccountPrivilege:\n    type: alicloud:rds:AccountPrivilege\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      accountName: ${defaultRdsAccount.accountName}\n      privilege: ReadWrite\n      dbNames:\n        - ${defaultDatabase.name}\n  defaultBackupPlan:\n    type: alicloud:dbs:BackupPlan\n    name: default\n    properties:\n      backupPlanName: ${name}\n      paymentType: PayAsYouGo\n      instanceClass: xlarge\n      backupMethod: logical\n      databaseType: MySQL\n      databaseRegion: cn-hangzhou\n      storageRegion: cn-hangzhou\n      instanceType: RDS\n      sourceEndpointInstanceType: RDS\n      resourceGroupId: ${default.ids[0]}\n      sourceEndpointRegion: cn-hangzhou\n      sourceEndpointInstanceId: ${defaultInstance.id}\n      sourceEndpointUserName: ${defaultAccountPrivilege.accountName}\n      sourceEndpointPassword: ${defaultRdsAccount.accountPassword}\n      backupObjects: '[{\"DBName\":\"${defaultDatabase.name}\"}]'\n      backupPeriod: Monday\n      backupStartTime: 14:22\n      backupStorageType: system\n      backupRetentionPeriod: 740\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: PostPaid\n        category: HighAvailability\n        dbInstanceStorageType: cloud_essd\n  defaultGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${defaultGetZones.zones[1].id}\n        engine: MySQL\n        engineVersion: '8.0'\n        category: HighAvailability\n        dbInstanceStorageType: cloud_essd\n        instanceChargeType: PostPaid\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${defaultGetZones.zones[1].id}\n  vswitchId: ${defaultGetSwitches.ids[0]}\n  zoneId: ${defaultGetZones.ids[1]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDBS Backup Plan can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dbs/backupPlan:BackupPlan example \u003cid\u003e\n```\n\n","properties":{"backupGatewayId":{"type":"string","description":"The ID of the backup gateway. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `Agent`.\n"},"backupLogIntervalSeconds":{"type":"integer","description":"The backup log interval seconds.\n"},"backupMethod":{"type":"string","description":"Backup method. Valid values: \u003cspan pulumi-lang-nodejs=\"`duplication`\" pulumi-lang-dotnet=\"`Duplication`\" pulumi-lang-go=\"`duplication`\" pulumi-lang-python=\"`duplication`\" pulumi-lang-yaml=\"`duplication`\" pulumi-lang-java=\"`duplication`\"\u003e`duplication`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logical`\" pulumi-lang-dotnet=\"`Logical`\" pulumi-lang-go=\"`logical`\" pulumi-lang-python=\"`logical`\" pulumi-lang-yaml=\"`logical`\" pulumi-lang-java=\"`logical`\"\u003e`logical`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`physical`\" pulumi-lang-dotnet=\"`Physical`\" pulumi-lang-go=\"`physical`\" pulumi-lang-python=\"`physical`\" pulumi-lang-yaml=\"`physical`\" pulumi-lang-java=\"`physical`\"\u003e`physical`\u003c/span\u003e.\n"},"backupObjects":{"type":"string","description":"The backup object.\n"},"backupPeriod":{"type":"string","description":"Full backup cycle, Valid values: `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday`. supports the selection of multiple fetch values, separated by English commas (,).\n"},"backupPlanName":{"type":"string","description":"The name of the resource.\n"},"backupRateLimit":{"type":"string","description":"The backup rate limit.\n"},"backupRetentionPeriod":{"type":"integer","description":"The retention time of backup data. Valid values: 0 to 1825. Default value: 730 days.\n"},"backupSpeedLimit":{"type":"string","description":"The backup speed limit.\n"},"backupStartTime":{"type":"string","description":"The start time of full Backup. The format is `\u003cI\u003e HH:mm\u003c/I\u003e` Z(UTC time).\n"},"backupStorageType":{"type":"string","description":"Built-in storage type, Valid values: \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e.\n"},"backupStrategyType":{"type":"string","description":"The backup strategy type. Valid values: \u003cspan pulumi-lang-nodejs=\"`simple`\" pulumi-lang-dotnet=\"`Simple`\" pulumi-lang-go=\"`simple`\" pulumi-lang-python=\"`simple`\" pulumi-lang-yaml=\"`simple`\" pulumi-lang-java=\"`simple`\"\u003e`simple`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`manual`\" pulumi-lang-dotnet=\"`Manual`\" pulumi-lang-go=\"`manual`\" pulumi-lang-python=\"`manual`\" pulumi-lang-yaml=\"`manual`\" pulumi-lang-java=\"`manual`\"\u003e`manual`\u003c/span\u003e.\n"},"crossAliyunId":{"type":"string","description":"The UID that is backed up across Alibaba cloud accounts.\n"},"crossRoleName":{"type":"string","description":"The name of the RAM role that is backed up across Alibaba cloud accounts.\n"},"databaseRegion":{"type":"string","description":"The database region.\n"},"databaseType":{"type":"string","description":"Database type. Valid values: `DRDS`, `FIle`, `MSSQL`, `MariaDB`, `MongoDB`, `MySQL`, `Oracle`, `PPAS`, `PostgreSQL`, `Redis`.\n"},"duplicationArchivePeriod":{"type":"integer","description":"The storage time for conversion to archive cold standby is 365 days by default.\n"},"duplicationInfrequentAccessPeriod":{"type":"integer","description":"The storage time is converted to low-frequency access. The default time is 180 days.\n"},"enableBackupLog":{"type":"boolean","description":"Whether to enable incremental log Backup.\n"},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`micro`\" pulumi-lang-dotnet=\"`Micro`\" pulumi-lang-go=\"`micro`\" pulumi-lang-python=\"`micro`\" pulumi-lang-yaml=\"`micro`\" pulumi-lang-java=\"`micro`\"\u003e`micro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e.\n"},"instanceType":{"type":"string","description":"The instance type. Valid values: `RDS`, `PolarDB`, `DDS`, `Kvstore`, `Other`.\n"},"ossBucketName":{"type":"string","description":"The OSS Bucket name. The system automatically generates a new name by default.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`, `Subscription`.\n"},"period":{"type":"string","description":"Specify that the prepaid instance is of the package year or monthly type. Valid values: `Month`, `Year`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sourceEndpointDatabaseName":{"type":"string","description":"The name of the database. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `PostgreSQL` or `MongoDB`.\n"},"sourceEndpointInstanceId":{"type":"string","description":"The ID of the database instance. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `RDS`, `ECS`, `DDS`, or `Express`.\n"},"sourceEndpointInstanceType":{"type":"string","description":"The location of the database. Valid values: `RDS`, `ECS`, `Express`, `Agent`, `DDS`, `Other`.\n"},"sourceEndpointIp":{"type":"string","description":"The source endpoint ip.\n"},"sourceEndpointOracleSid":{"type":"string","description":"Oracle SID name. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `Oracle`.\n"},"sourceEndpointPassword":{"type":"string","description":"The source endpoint password.  This parameter is not required when the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `Redis`, or when the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `Agent` and the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `MSSQL`. This parameter is required in other scenarios.\n","secret":true},"sourceEndpointPort":{"type":"integer","description":"The source endpoint port.\n"},"sourceEndpointRegion":{"type":"string","description":"The region of the database. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `RDS`, `ECS`, `DDS`, `Express`, or `Agent`.\n"},"sourceEndpointSid":{"type":"string","description":"Oracle SID name. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `Oracle`.\n"},"sourceEndpointUserName":{"type":"string","description":"The source endpoint username. This parameter is not required when the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `Redis`, or when the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `Agent` and the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `MSSQL`. This parameter is required in other scenarios.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`pause`\" pulumi-lang-dotnet=\"`Pause`\" pulumi-lang-go=\"`pause`\" pulumi-lang-python=\"`pause`\" pulumi-lang-yaml=\"`pause`\" pulumi-lang-java=\"`pause`\"\u003e`pause`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e.\n"},"storageRegion":{"type":"string","description":"The storage region.\n"},"usedTime":{"type":"integer","description":"Specify purchase duration. When the parameter \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is `Year`, the \u003cspan pulumi-lang-nodejs=\"`usedTime`\" pulumi-lang-dotnet=\"`UsedTime`\" pulumi-lang-go=\"`usedTime`\" pulumi-lang-python=\"`used_time`\" pulumi-lang-yaml=\"`usedTime`\" pulumi-lang-java=\"`usedTime`\"\u003e`used_time`\u003c/span\u003e value is 1 to 9. When the parameter \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is `Month`, the \u003cspan pulumi-lang-nodejs=\"`usedTime`\" pulumi-lang-dotnet=\"`UsedTime`\" pulumi-lang-go=\"`usedTime`\" pulumi-lang-python=\"`used_time`\" pulumi-lang-yaml=\"`usedTime`\" pulumi-lang-java=\"`usedTime`\"\u003e`used_time`\u003c/span\u003e value is 1 to 11.\n"}},"required":["backupGatewayId","backupMethod","backupObjects","backupPeriod","backupPlanName","backupRetentionPeriod","backupStartTime","backupStorageType","crossAliyunId","crossRoleName","databaseType","duplicationArchivePeriod","duplicationInfrequentAccessPeriod","enableBackupLog","instanceClass","ossBucketName","paymentType","resourceGroupId","sourceEndpointDatabaseName","sourceEndpointInstanceId","sourceEndpointInstanceType","sourceEndpointRegion","sourceEndpointSid","sourceEndpointUserName","status"],"inputProperties":{"backupGatewayId":{"type":"string","description":"The ID of the backup gateway. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `Agent`.\n","willReplaceOnChanges":true},"backupLogIntervalSeconds":{"type":"integer","description":"The backup log interval seconds.\n"},"backupMethod":{"type":"string","description":"Backup method. Valid values: \u003cspan pulumi-lang-nodejs=\"`duplication`\" pulumi-lang-dotnet=\"`Duplication`\" pulumi-lang-go=\"`duplication`\" pulumi-lang-python=\"`duplication`\" pulumi-lang-yaml=\"`duplication`\" pulumi-lang-java=\"`duplication`\"\u003e`duplication`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logical`\" pulumi-lang-dotnet=\"`Logical`\" pulumi-lang-go=\"`logical`\" pulumi-lang-python=\"`logical`\" pulumi-lang-yaml=\"`logical`\" pulumi-lang-java=\"`logical`\"\u003e`logical`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`physical`\" pulumi-lang-dotnet=\"`Physical`\" pulumi-lang-go=\"`physical`\" pulumi-lang-python=\"`physical`\" pulumi-lang-yaml=\"`physical`\" pulumi-lang-java=\"`physical`\"\u003e`physical`\u003c/span\u003e.\n","willReplaceOnChanges":true},"backupObjects":{"type":"string","description":"The backup object.\n","willReplaceOnChanges":true},"backupPeriod":{"type":"string","description":"Full backup cycle, Valid values: `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday`. supports the selection of multiple fetch values, separated by English commas (,).\n","willReplaceOnChanges":true},"backupPlanName":{"type":"string","description":"The name of the resource.\n","willReplaceOnChanges":true},"backupRateLimit":{"type":"string","description":"The backup rate limit.\n"},"backupRetentionPeriod":{"type":"integer","description":"The retention time of backup data. Valid values: 0 to 1825. Default value: 730 days.\n","willReplaceOnChanges":true},"backupSpeedLimit":{"type":"string","description":"The backup speed limit.\n"},"backupStartTime":{"type":"string","description":"The start time of full Backup. The format is `\u003cI\u003e HH:mm\u003c/I\u003e` Z(UTC time).\n","willReplaceOnChanges":true},"backupStorageType":{"type":"string","description":"Built-in storage type, Valid values: \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e.\n","willReplaceOnChanges":true},"backupStrategyType":{"type":"string","description":"The backup strategy type. Valid values: \u003cspan pulumi-lang-nodejs=\"`simple`\" pulumi-lang-dotnet=\"`Simple`\" pulumi-lang-go=\"`simple`\" pulumi-lang-python=\"`simple`\" pulumi-lang-yaml=\"`simple`\" pulumi-lang-java=\"`simple`\"\u003e`simple`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`manual`\" pulumi-lang-dotnet=\"`Manual`\" pulumi-lang-go=\"`manual`\" pulumi-lang-python=\"`manual`\" pulumi-lang-yaml=\"`manual`\" pulumi-lang-java=\"`manual`\"\u003e`manual`\u003c/span\u003e.\n"},"crossAliyunId":{"type":"string","description":"The UID that is backed up across Alibaba cloud accounts.\n","willReplaceOnChanges":true},"crossRoleName":{"type":"string","description":"The name of the RAM role that is backed up across Alibaba cloud accounts.\n","willReplaceOnChanges":true},"databaseRegion":{"type":"string","description":"The database region.\n"},"databaseType":{"type":"string","description":"Database type. Valid values: `DRDS`, `FIle`, `MSSQL`, `MariaDB`, `MongoDB`, `MySQL`, `Oracle`, `PPAS`, `PostgreSQL`, `Redis`.\n","willReplaceOnChanges":true},"duplicationArchivePeriod":{"type":"integer","description":"The storage time for conversion to archive cold standby is 365 days by default.\n","willReplaceOnChanges":true},"duplicationInfrequentAccessPeriod":{"type":"integer","description":"The storage time is converted to low-frequency access. The default time is 180 days.\n","willReplaceOnChanges":true},"enableBackupLog":{"type":"boolean","description":"Whether to enable incremental log Backup.\n","willReplaceOnChanges":true},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`micro`\" pulumi-lang-dotnet=\"`Micro`\" pulumi-lang-go=\"`micro`\" pulumi-lang-python=\"`micro`\" pulumi-lang-yaml=\"`micro`\" pulumi-lang-java=\"`micro`\"\u003e`micro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The instance type. Valid values: `RDS`, `PolarDB`, `DDS`, `Kvstore`, `Other`.\n"},"ossBucketName":{"type":"string","description":"The OSS Bucket name. The system automatically generates a new name by default.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`, `Subscription`.\n","willReplaceOnChanges":true},"period":{"type":"string","description":"Specify that the prepaid instance is of the package year or monthly type. Valid values: `Month`, `Year`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sourceEndpointDatabaseName":{"type":"string","description":"The name of the database. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `PostgreSQL` or `MongoDB`.\n","willReplaceOnChanges":true},"sourceEndpointInstanceId":{"type":"string","description":"The ID of the database instance. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `RDS`, `ECS`, `DDS`, or `Express`.\n","willReplaceOnChanges":true},"sourceEndpointInstanceType":{"type":"string","description":"The location of the database. Valid values: `RDS`, `ECS`, `Express`, `Agent`, `DDS`, `Other`.\n","willReplaceOnChanges":true},"sourceEndpointIp":{"type":"string","description":"The source endpoint ip.\n"},"sourceEndpointOracleSid":{"type":"string","description":"Oracle SID name. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `Oracle`.\n"},"sourceEndpointPassword":{"type":"string","description":"The source endpoint password.  This parameter is not required when the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `Redis`, or when the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `Agent` and the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `MSSQL`. This parameter is required in other scenarios.\n","secret":true,"willReplaceOnChanges":true},"sourceEndpointPort":{"type":"integer","description":"The source endpoint port.\n"},"sourceEndpointRegion":{"type":"string","description":"The region of the database. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `RDS`, `ECS`, `DDS`, `Express`, or `Agent`.\n","willReplaceOnChanges":true},"sourceEndpointSid":{"type":"string","description":"Oracle SID name. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `Oracle`.\n","willReplaceOnChanges":true},"sourceEndpointUserName":{"type":"string","description":"The source endpoint username. This parameter is not required when the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `Redis`, or when the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `Agent` and the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `MSSQL`. This parameter is required in other scenarios.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`pause`\" pulumi-lang-dotnet=\"`Pause`\" pulumi-lang-go=\"`pause`\" pulumi-lang-python=\"`pause`\" pulumi-lang-yaml=\"`pause`\" pulumi-lang-java=\"`pause`\"\u003e`pause`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e.\n"},"storageRegion":{"type":"string","description":"The storage region.\n"},"usedTime":{"type":"integer","description":"Specify purchase duration. When the parameter \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is `Year`, the \u003cspan pulumi-lang-nodejs=\"`usedTime`\" pulumi-lang-dotnet=\"`UsedTime`\" pulumi-lang-go=\"`usedTime`\" pulumi-lang-python=\"`used_time`\" pulumi-lang-yaml=\"`usedTime`\" pulumi-lang-java=\"`usedTime`\"\u003e`used_time`\u003c/span\u003e value is 1 to 9. When the parameter \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is `Month`, the \u003cspan pulumi-lang-nodejs=\"`usedTime`\" pulumi-lang-dotnet=\"`UsedTime`\" pulumi-lang-go=\"`usedTime`\" pulumi-lang-python=\"`used_time`\" pulumi-lang-yaml=\"`usedTime`\" pulumi-lang-java=\"`usedTime`\"\u003e`used_time`\u003c/span\u003e value is 1 to 11.\n"}},"requiredInputs":["backupMethod","backupPlanName","databaseType","instanceClass","sourceEndpointInstanceType"],"stateInputs":{"description":"Input properties used for looking up and filtering BackupPlan resources.\n","properties":{"backupGatewayId":{"type":"string","description":"The ID of the backup gateway. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `Agent`.\n","willReplaceOnChanges":true},"backupLogIntervalSeconds":{"type":"integer","description":"The backup log interval seconds.\n"},"backupMethod":{"type":"string","description":"Backup method. Valid values: \u003cspan pulumi-lang-nodejs=\"`duplication`\" pulumi-lang-dotnet=\"`Duplication`\" pulumi-lang-go=\"`duplication`\" pulumi-lang-python=\"`duplication`\" pulumi-lang-yaml=\"`duplication`\" pulumi-lang-java=\"`duplication`\"\u003e`duplication`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logical`\" pulumi-lang-dotnet=\"`Logical`\" pulumi-lang-go=\"`logical`\" pulumi-lang-python=\"`logical`\" pulumi-lang-yaml=\"`logical`\" pulumi-lang-java=\"`logical`\"\u003e`logical`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`physical`\" pulumi-lang-dotnet=\"`Physical`\" pulumi-lang-go=\"`physical`\" pulumi-lang-python=\"`physical`\" pulumi-lang-yaml=\"`physical`\" pulumi-lang-java=\"`physical`\"\u003e`physical`\u003c/span\u003e.\n","willReplaceOnChanges":true},"backupObjects":{"type":"string","description":"The backup object.\n","willReplaceOnChanges":true},"backupPeriod":{"type":"string","description":"Full backup cycle, Valid values: `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, `Sunday`. supports the selection of multiple fetch values, separated by English commas (,).\n","willReplaceOnChanges":true},"backupPlanName":{"type":"string","description":"The name of the resource.\n","willReplaceOnChanges":true},"backupRateLimit":{"type":"string","description":"The backup rate limit.\n"},"backupRetentionPeriod":{"type":"integer","description":"The retention time of backup data. Valid values: 0 to 1825. Default value: 730 days.\n","willReplaceOnChanges":true},"backupSpeedLimit":{"type":"string","description":"The backup speed limit.\n"},"backupStartTime":{"type":"string","description":"The start time of full Backup. The format is `\u003cI\u003e HH:mm\u003c/I\u003e` Z(UTC time).\n","willReplaceOnChanges":true},"backupStorageType":{"type":"string","description":"Built-in storage type, Valid values: \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e.\n","willReplaceOnChanges":true},"backupStrategyType":{"type":"string","description":"The backup strategy type. Valid values: \u003cspan pulumi-lang-nodejs=\"`simple`\" pulumi-lang-dotnet=\"`Simple`\" pulumi-lang-go=\"`simple`\" pulumi-lang-python=\"`simple`\" pulumi-lang-yaml=\"`simple`\" pulumi-lang-java=\"`simple`\"\u003e`simple`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`manual`\" pulumi-lang-dotnet=\"`Manual`\" pulumi-lang-go=\"`manual`\" pulumi-lang-python=\"`manual`\" pulumi-lang-yaml=\"`manual`\" pulumi-lang-java=\"`manual`\"\u003e`manual`\u003c/span\u003e.\n"},"crossAliyunId":{"type":"string","description":"The UID that is backed up across Alibaba cloud accounts.\n","willReplaceOnChanges":true},"crossRoleName":{"type":"string","description":"The name of the RAM role that is backed up across Alibaba cloud accounts.\n","willReplaceOnChanges":true},"databaseRegion":{"type":"string","description":"The database region.\n"},"databaseType":{"type":"string","description":"Database type. Valid values: `DRDS`, `FIle`, `MSSQL`, `MariaDB`, `MongoDB`, `MySQL`, `Oracle`, `PPAS`, `PostgreSQL`, `Redis`.\n","willReplaceOnChanges":true},"duplicationArchivePeriod":{"type":"integer","description":"The storage time for conversion to archive cold standby is 365 days by default.\n","willReplaceOnChanges":true},"duplicationInfrequentAccessPeriod":{"type":"integer","description":"The storage time is converted to low-frequency access. The default time is 180 days.\n","willReplaceOnChanges":true},"enableBackupLog":{"type":"boolean","description":"Whether to enable incremental log Backup.\n","willReplaceOnChanges":true},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`micro`\" pulumi-lang-dotnet=\"`Micro`\" pulumi-lang-go=\"`micro`\" pulumi-lang-python=\"`micro`\" pulumi-lang-yaml=\"`micro`\" pulumi-lang-java=\"`micro`\"\u003e`micro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The instance type. Valid values: `RDS`, `PolarDB`, `DDS`, `Kvstore`, `Other`.\n"},"ossBucketName":{"type":"string","description":"The OSS Bucket name. The system automatically generates a new name by default.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`, `Subscription`.\n","willReplaceOnChanges":true},"period":{"type":"string","description":"Specify that the prepaid instance is of the package year or monthly type. Valid values: `Month`, `Year`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sourceEndpointDatabaseName":{"type":"string","description":"The name of the database. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `PostgreSQL` or `MongoDB`.\n","willReplaceOnChanges":true},"sourceEndpointInstanceId":{"type":"string","description":"The ID of the database instance. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `RDS`, `ECS`, `DDS`, or `Express`.\n","willReplaceOnChanges":true},"sourceEndpointInstanceType":{"type":"string","description":"The location of the database. Valid values: `RDS`, `ECS`, `Express`, `Agent`, `DDS`, `Other`.\n","willReplaceOnChanges":true},"sourceEndpointIp":{"type":"string","description":"The source endpoint ip.\n"},"sourceEndpointOracleSid":{"type":"string","description":"Oracle SID name. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `Oracle`.\n"},"sourceEndpointPassword":{"type":"string","description":"The source endpoint password.  This parameter is not required when the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `Redis`, or when the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `Agent` and the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `MSSQL`. This parameter is required in other scenarios.\n","secret":true,"willReplaceOnChanges":true},"sourceEndpointPort":{"type":"integer","description":"The source endpoint port.\n"},"sourceEndpointRegion":{"type":"string","description":"The region of the database. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `RDS`, `ECS`, `DDS`, `Express`, or `Agent`.\n","willReplaceOnChanges":true},"sourceEndpointSid":{"type":"string","description":"Oracle SID name. This parameter is required when the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `Oracle`.\n","willReplaceOnChanges":true},"sourceEndpointUserName":{"type":"string","description":"The source endpoint username. This parameter is not required when the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `Redis`, or when the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `Agent` and the \u003cspan pulumi-lang-nodejs=\"`databaseType`\" pulumi-lang-dotnet=\"`DatabaseType`\" pulumi-lang-go=\"`databaseType`\" pulumi-lang-python=\"`database_type`\" pulumi-lang-yaml=\"`databaseType`\" pulumi-lang-java=\"`databaseType`\"\u003e`database_type`\u003c/span\u003e is `MSSQL`. This parameter is required in other scenarios.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`pause`\" pulumi-lang-dotnet=\"`Pause`\" pulumi-lang-go=\"`pause`\" pulumi-lang-python=\"`pause`\" pulumi-lang-yaml=\"`pause`\" pulumi-lang-java=\"`pause`\"\u003e`pause`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e.\n"},"storageRegion":{"type":"string","description":"The storage region.\n"},"usedTime":{"type":"integer","description":"Specify purchase duration. When the parameter \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is `Year`, the \u003cspan pulumi-lang-nodejs=\"`usedTime`\" pulumi-lang-dotnet=\"`UsedTime`\" pulumi-lang-go=\"`usedTime`\" pulumi-lang-python=\"`used_time`\" pulumi-lang-yaml=\"`usedTime`\" pulumi-lang-java=\"`usedTime`\"\u003e`used_time`\u003c/span\u003e value is 1 to 9. When the parameter \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is `Month`, the \u003cspan pulumi-lang-nodejs=\"`usedTime`\" pulumi-lang-dotnet=\"`UsedTime`\" pulumi-lang-go=\"`usedTime`\" pulumi-lang-python=\"`used_time`\" pulumi-lang-yaml=\"`usedTime`\" pulumi-lang-java=\"`usedTime`\"\u003e`used_time`\u003c/span\u003e value is 1 to 11.\n"}},"type":"object"}},"alicloud:dcdn/domain:Domain":{"description":"Provides a DCDN Domain resource.\n\nFull station accelerated domain name.\n\nFor information about DCDN Domain and how to use it, see [What is Domain](https://www.alibabacloud.com/help/en/doc-detail/130628.htm).\n\n\u003e **NOTE:** Available since v1.94.0.\n\n\u003e **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`forceSet`\" pulumi-lang-dotnet=\"`ForceSet`\" pulumi-lang-go=\"`forceSet`\" pulumi-lang-python=\"`force_set`\" pulumi-lang-yaml=\"`forceSet`\" pulumi-lang-java=\"`forceSet`\"\u003e`force_set`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securityToken`\" pulumi-lang-dotnet=\"`SecurityToken`\" pulumi-lang-go=\"`securityToken`\" pulumi-lang-python=\"`security_token`\" pulumi-lang-yaml=\"`securityToken`\" pulumi-lang-java=\"`securityToken`\"\u003e`security_token`\u003c/span\u003e has been removed from provider version 1.227.1.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst domainName = config.get(\"domainName\") || \"tf-example.com\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst example = new alicloud.dcdn.Domain(\"example\", {\n    domainName: `${domainName}-${_default.result}`,\n    scope: \"overseas\",\n    sources: [{\n        content: \"1.1.1.1\",\n        port: 80,\n        priority: \"20\",\n        type: \"ipaddr\",\n        weight: \"10\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\ndomain_name = config.get(\"domainName\")\nif domain_name is None:\n    domain_name = \"tf-example.com\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample = alicloud.dcdn.Domain(\"example\",\n    domain_name=f\"{domain_name}-{default['result']}\",\n    scope=\"overseas\",\n    sources=[{\n        \"content\": \"1.1.1.1\",\n        \"port\": 80,\n        \"priority\": \"20\",\n        \"type\": \"ipaddr\",\n        \"weight\": \"10\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var domainName = config.Get(\"domainName\") ?? \"tf-example.com\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var example = new AliCloud.Dcdn.Domain(\"example\", new()\n    {\n        DomainName = $\"{domainName}-{@default.Result}\",\n        Scope = \"overseas\",\n        Sources = new[]\n        {\n            new AliCloud.Dcdn.Inputs.DomainSourceArgs\n            {\n                Content = \"1.1.1.1\",\n                Port = 80,\n                Priority = \"20\",\n                Type = \"ipaddr\",\n                Weight = \"10\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdomainName := \"tf-example.com\"\n\t\tif param := cfg.Get(\"domainName\"); param != \"\" {\n\t\t\tdomainName = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dcdn.NewDomain(ctx, \"example\", \u0026dcdn.DomainArgs{\n\t\t\tDomainName: pulumi.Sprintf(\"%v-%v\", domainName, _default.Result),\n\t\t\tScope:      pulumi.String(\"overseas\"),\n\t\t\tSources: dcdn.DomainSourceArray{\n\t\t\t\t\u0026dcdn.DomainSourceArgs{\n\t\t\t\t\tContent:  pulumi.String(\"1.1.1.1\"),\n\t\t\t\t\tPort:     pulumi.Int(80),\n\t\t\t\t\tPriority: pulumi.String(\"20\"),\n\t\t\t\t\tType:     pulumi.String(\"ipaddr\"),\n\t\t\t\t\tWeight:   pulumi.String(\"10\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.dcdn.Domain;\nimport com.pulumi.alicloud.dcdn.DomainArgs;\nimport com.pulumi.alicloud.dcdn.inputs.DomainSourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainName = config.get(\"domainName\").orElse(\"tf-example.com\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var example = new Domain(\"example\", DomainArgs.builder()\n            .domainName(String.format(\"%s-%s\", domainName,default_.result()))\n            .scope(\"overseas\")\n            .sources(DomainSourceArgs.builder()\n                .content(\"1.1.1.1\")\n                .port(80)\n                .priority(\"20\")\n                .type(\"ipaddr\")\n                .weight(\"10\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainName:\n    type: string\n    default: tf-example.com\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  example:\n    type: alicloud:dcdn:Domain\n    properties:\n      domainName: ${domainName}-${default.result}\n      scope: overseas\n      sources:\n        - content: 1.1.1.1\n          port: '80'\n          priority: '20'\n          type: ipaddr\n          weight: '10'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDCDN Domain can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dcdn/domain:Domain example \u003cid\u003e\n```\n\n","properties":{"certId":{"type":"string","description":"The certificate ID. This parameter is required and valid only when `CertType` is set to \u003cspan pulumi-lang-nodejs=\"`cas`\" pulumi-lang-dotnet=\"`Cas`\" pulumi-lang-go=\"`cas`\" pulumi-lang-python=\"`cas`\" pulumi-lang-yaml=\"`cas`\" pulumi-lang-java=\"`cas`\"\u003e`cas`\u003c/span\u003e. If you specify this parameter, an existing certificate is used.\n"},"certName":{"type":"string","description":"The name of the new certificate. You can specify only one certificate name. This parameter is optional and valid only when `CertType` is set to \u003cspan pulumi-lang-nodejs=\"`upload`\" pulumi-lang-dotnet=\"`Upload`\" pulumi-lang-go=\"`upload`\" pulumi-lang-python=\"`upload`\" pulumi-lang-yaml=\"`upload`\" pulumi-lang-java=\"`upload`\"\u003e`upload`\u003c/span\u003e.\n"},"certRegion":{"type":"string","description":"The region of the SSL certificate. This parameter takes effect only when `CertType` is set to \u003cspan pulumi-lang-nodejs=\"`cas`\" pulumi-lang-dotnet=\"`Cas`\" pulumi-lang-go=\"`cas`\" pulumi-lang-python=\"`cas`\" pulumi-lang-yaml=\"`cas`\" pulumi-lang-java=\"`cas`\"\u003e`cas`\u003c/span\u003e. Default value: **cn-hangzhou**. Valid values: **cn-hangzhou** and **ap-southeast-1**.\n"},"certType":{"type":"string","description":"The certificate type.\n"},"checkUrl":{"type":"string","description":"The URL that is used for health checks.\n"},"cname":{"type":"string","description":"The CNAME domain name corresponding to the accelerated domain name.\n"},"createTime":{"type":"string","description":"The time when the accelerated domain name was created.\n"},"domainName":{"type":"string","description":"The accelerated domain name. You can specify multiple domain names and separate them with commas (,). You can specify up to 500 domain names in each request. The query results of multiple domain names are aggregated. If you do not specify this parameter, data of all accelerated domain names under your account is queried.\n"},"env":{"type":"string","description":"Specifies whether the certificate is issued in canary releases. If you set this parameter to \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e, the certificate is issued in canary releases. If you do not specify this parameter or set this parameter to other values, the certificate is officially issued.\n"},"functionType":{"type":"string","description":"Computing service type. Valid values:\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. If you do not specify a value for this parameter, the system automatically assigns the ID of the default resource group.\n"},"scene":{"type":"string","description":"The Acceleration scen. Supported:\n"},"scope":{"type":"string","description":"The region where the acceleration service is deployed. Valid values:\n"},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/DomainSource:DomainSource"},"description":"Source  See \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e below.\n"},"sslPri":{"type":"string","description":"The private key. Specify the private key only if you want to enable the SSL certificate.\n","secret":true},"sslProtocol":{"type":"string","description":"Specifies whether to enable the SSL certificate. Valid values:\n"},"sslPub":{"type":"string","description":"The content of the SSL certificate. Specify the content of the SSL certificate only if you want to enable the SSL certificate.\n"},"status":{"type":"string","description":"The status of the domain name. Valid values:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"topLevelDomain":{"type":"string","description":"The top-level domain.\n"}},"required":["certId","certName","certRegion","certType","cname","createTime","domainName","resourceGroupId","sslPub","status"],"inputProperties":{"certId":{"type":"string","description":"The certificate ID. This parameter is required and valid only when `CertType` is set to \u003cspan pulumi-lang-nodejs=\"`cas`\" pulumi-lang-dotnet=\"`Cas`\" pulumi-lang-go=\"`cas`\" pulumi-lang-python=\"`cas`\" pulumi-lang-yaml=\"`cas`\" pulumi-lang-java=\"`cas`\"\u003e`cas`\u003c/span\u003e. If you specify this parameter, an existing certificate is used.\n"},"certName":{"type":"string","description":"The name of the new certificate. You can specify only one certificate name. This parameter is optional and valid only when `CertType` is set to \u003cspan pulumi-lang-nodejs=\"`upload`\" pulumi-lang-dotnet=\"`Upload`\" pulumi-lang-go=\"`upload`\" pulumi-lang-python=\"`upload`\" pulumi-lang-yaml=\"`upload`\" pulumi-lang-java=\"`upload`\"\u003e`upload`\u003c/span\u003e.\n"},"certRegion":{"type":"string","description":"The region of the SSL certificate. This parameter takes effect only when `CertType` is set to \u003cspan pulumi-lang-nodejs=\"`cas`\" pulumi-lang-dotnet=\"`Cas`\" pulumi-lang-go=\"`cas`\" pulumi-lang-python=\"`cas`\" pulumi-lang-yaml=\"`cas`\" pulumi-lang-java=\"`cas`\"\u003e`cas`\u003c/span\u003e. Default value: **cn-hangzhou**. Valid values: **cn-hangzhou** and **ap-southeast-1**.\n"},"certType":{"type":"string","description":"The certificate type.\n"},"checkUrl":{"type":"string","description":"The URL that is used for health checks.\n"},"domainName":{"type":"string","description":"The accelerated domain name. You can specify multiple domain names and separate them with commas (,). You can specify up to 500 domain names in each request. The query results of multiple domain names are aggregated. If you do not specify this parameter, data of all accelerated domain names under your account is queried.\n","willReplaceOnChanges":true},"env":{"type":"string","description":"Specifies whether the certificate is issued in canary releases. If you set this parameter to \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e, the certificate is issued in canary releases. If you do not specify this parameter or set this parameter to other values, the certificate is officially issued.\n"},"functionType":{"type":"string","description":"Computing service type. Valid values:\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group. If you do not specify a value for this parameter, the system automatically assigns the ID of the default resource group.\n"},"scene":{"type":"string","description":"The Acceleration scen. Supported:\n","willReplaceOnChanges":true},"scope":{"type":"string","description":"The region where the acceleration service is deployed. Valid values:\n"},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/DomainSource:DomainSource"},"description":"Source  See \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e below.\n"},"sslPri":{"type":"string","description":"The private key. Specify the private key only if you want to enable the SSL certificate.\n","secret":true},"sslProtocol":{"type":"string","description":"Specifies whether to enable the SSL certificate. Valid values:\n"},"sslPub":{"type":"string","description":"The content of the SSL certificate. Specify the content of the SSL certificate only if you want to enable the SSL certificate.\n"},"status":{"type":"string","description":"The status of the domain name. Valid values:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"topLevelDomain":{"type":"string","description":"The top-level domain.\n"}},"requiredInputs":["domainName"],"stateInputs":{"description":"Input properties used for looking up and filtering Domain resources.\n","properties":{"certId":{"type":"string","description":"The certificate ID. This parameter is required and valid only when `CertType` is set to \u003cspan pulumi-lang-nodejs=\"`cas`\" pulumi-lang-dotnet=\"`Cas`\" pulumi-lang-go=\"`cas`\" pulumi-lang-python=\"`cas`\" pulumi-lang-yaml=\"`cas`\" pulumi-lang-java=\"`cas`\"\u003e`cas`\u003c/span\u003e. If you specify this parameter, an existing certificate is used.\n"},"certName":{"type":"string","description":"The name of the new certificate. You can specify only one certificate name. This parameter is optional and valid only when `CertType` is set to \u003cspan pulumi-lang-nodejs=\"`upload`\" pulumi-lang-dotnet=\"`Upload`\" pulumi-lang-go=\"`upload`\" pulumi-lang-python=\"`upload`\" pulumi-lang-yaml=\"`upload`\" pulumi-lang-java=\"`upload`\"\u003e`upload`\u003c/span\u003e.\n"},"certRegion":{"type":"string","description":"The region of the SSL certificate. This parameter takes effect only when `CertType` is set to \u003cspan pulumi-lang-nodejs=\"`cas`\" pulumi-lang-dotnet=\"`Cas`\" pulumi-lang-go=\"`cas`\" pulumi-lang-python=\"`cas`\" pulumi-lang-yaml=\"`cas`\" pulumi-lang-java=\"`cas`\"\u003e`cas`\u003c/span\u003e. Default value: **cn-hangzhou**. Valid values: **cn-hangzhou** and **ap-southeast-1**.\n"},"certType":{"type":"string","description":"The certificate type.\n"},"checkUrl":{"type":"string","description":"The URL that is used for health checks.\n"},"cname":{"type":"string","description":"The CNAME domain name corresponding to the accelerated domain name.\n"},"createTime":{"type":"string","description":"The time when the accelerated domain name was created.\n"},"domainName":{"type":"string","description":"The accelerated domain name. You can specify multiple domain names and separate them with commas (,). You can specify up to 500 domain names in each request. The query results of multiple domain names are aggregated. If you do not specify this parameter, data of all accelerated domain names under your account is queried.\n","willReplaceOnChanges":true},"env":{"type":"string","description":"Specifies whether the certificate is issued in canary releases. If you set this parameter to \u003cspan pulumi-lang-nodejs=\"`staging`\" pulumi-lang-dotnet=\"`Staging`\" pulumi-lang-go=\"`staging`\" pulumi-lang-python=\"`staging`\" pulumi-lang-yaml=\"`staging`\" pulumi-lang-java=\"`staging`\"\u003e`staging`\u003c/span\u003e, the certificate is issued in canary releases. If you do not specify this parameter or set this parameter to other values, the certificate is officially issued.\n"},"functionType":{"type":"string","description":"Computing service type. Valid values:\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group. If you do not specify a value for this parameter, the system automatically assigns the ID of the default resource group.\n"},"scene":{"type":"string","description":"The Acceleration scen. Supported:\n","willReplaceOnChanges":true},"scope":{"type":"string","description":"The region where the acceleration service is deployed. Valid values:\n"},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/DomainSource:DomainSource"},"description":"Source  See \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e below.\n"},"sslPri":{"type":"string","description":"The private key. Specify the private key only if you want to enable the SSL certificate.\n","secret":true},"sslProtocol":{"type":"string","description":"Specifies whether to enable the SSL certificate. Valid values:\n"},"sslPub":{"type":"string","description":"The content of the SSL certificate. Specify the content of the SSL certificate only if you want to enable the SSL certificate.\n"},"status":{"type":"string","description":"The status of the domain name. Valid values:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"topLevelDomain":{"type":"string","description":"The top-level domain.\n"}},"type":"object"}},"alicloud:dcdn/domainConfig:DomainConfig":{"description":"Provides a DCDN Accelerated Domain resource.\n\nFor information about domain config and how to use it, see [Batch set config](https://www.alibabacloud.com/help/en/doc-detail/130632.htm).\n\n\u003e **NOTE:** Available since v1.131.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst domainName = config.get(\"domainName\") || \"alibaba-example.com\";\nconst example = new alicloud.dcdn.Domain(\"example\", {\n    domainName: domainName,\n    scope: \"overseas\",\n    status: \"online\",\n    sources: [{\n        content: \"1.1.1.1\",\n        type: \"ipaddr\",\n        priority: \"20\",\n        port: 80,\n        weight: \"10\",\n    }],\n});\nconst ipAllowListSet = new alicloud.dcdn.DomainConfig(\"ip_allow_list_set\", {\n    domainName: example.domainName,\n    functionName: \"ip_allow_list_set\",\n    functionArgs: [{\n        argName: \"ip_list\",\n        argValue: \"192.168.0.1\",\n    }],\n});\nconst refererWhiteListSet = new alicloud.dcdn.DomainConfig(\"referer_white_list_set\", {\n    domainName: example.domainName,\n    functionName: \"referer_white_list_set\",\n    functionArgs: [{\n        argName: \"refer_domain_allow_list\",\n        argValue: \"110.110.110.110\",\n    }],\n});\nconst filetypeBasedTtlSet = new alicloud.dcdn.DomainConfig(\"filetype_based_ttl_set\", {\n    domainName: example.domainName,\n    functionName: \"filetype_based_ttl_set\",\n    functionArgs: [\n        {\n            argName: \"ttl\",\n            argValue: \"300\",\n        },\n        {\n            argName: \"file_type\",\n            argValue: \"jpg\",\n        },\n        {\n            argName: \"weight\",\n            argValue: \"1\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\ndomain_name = config.get(\"domainName\")\nif domain_name is None:\n    domain_name = \"alibaba-example.com\"\nexample = alicloud.dcdn.Domain(\"example\",\n    domain_name=domain_name,\n    scope=\"overseas\",\n    status=\"online\",\n    sources=[{\n        \"content\": \"1.1.1.1\",\n        \"type\": \"ipaddr\",\n        \"priority\": \"20\",\n        \"port\": 80,\n        \"weight\": \"10\",\n    }])\nip_allow_list_set = alicloud.dcdn.DomainConfig(\"ip_allow_list_set\",\n    domain_name=example.domain_name,\n    function_name=\"ip_allow_list_set\",\n    function_args=[{\n        \"arg_name\": \"ip_list\",\n        \"arg_value\": \"192.168.0.1\",\n    }])\nreferer_white_list_set = alicloud.dcdn.DomainConfig(\"referer_white_list_set\",\n    domain_name=example.domain_name,\n    function_name=\"referer_white_list_set\",\n    function_args=[{\n        \"arg_name\": \"refer_domain_allow_list\",\n        \"arg_value\": \"110.110.110.110\",\n    }])\nfiletype_based_ttl_set = alicloud.dcdn.DomainConfig(\"filetype_based_ttl_set\",\n    domain_name=example.domain_name,\n    function_name=\"filetype_based_ttl_set\",\n    function_args=[\n        {\n            \"arg_name\": \"ttl\",\n            \"arg_value\": \"300\",\n        },\n        {\n            \"arg_name\": \"file_type\",\n            \"arg_value\": \"jpg\",\n        },\n        {\n            \"arg_name\": \"weight\",\n            \"arg_value\": \"1\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var domainName = config.Get(\"domainName\") ?? \"alibaba-example.com\";\n    var example = new AliCloud.Dcdn.Domain(\"example\", new()\n    {\n        DomainName = domainName,\n        Scope = \"overseas\",\n        Status = \"online\",\n        Sources = new[]\n        {\n            new AliCloud.Dcdn.Inputs.DomainSourceArgs\n            {\n                Content = \"1.1.1.1\",\n                Type = \"ipaddr\",\n                Priority = \"20\",\n                Port = 80,\n                Weight = \"10\",\n            },\n        },\n    });\n\n    var ipAllowListSet = new AliCloud.Dcdn.DomainConfig(\"ip_allow_list_set\", new()\n    {\n        DomainName = example.DomainName,\n        FunctionName = \"ip_allow_list_set\",\n        FunctionArgs = new[]\n        {\n            new AliCloud.Dcdn.Inputs.DomainConfigFunctionArgArgs\n            {\n                ArgName = \"ip_list\",\n                ArgValue = \"192.168.0.1\",\n            },\n        },\n    });\n\n    var refererWhiteListSet = new AliCloud.Dcdn.DomainConfig(\"referer_white_list_set\", new()\n    {\n        DomainName = example.DomainName,\n        FunctionName = \"referer_white_list_set\",\n        FunctionArgs = new[]\n        {\n            new AliCloud.Dcdn.Inputs.DomainConfigFunctionArgArgs\n            {\n                ArgName = \"refer_domain_allow_list\",\n                ArgValue = \"110.110.110.110\",\n            },\n        },\n    });\n\n    var filetypeBasedTtlSet = new AliCloud.Dcdn.DomainConfig(\"filetype_based_ttl_set\", new()\n    {\n        DomainName = example.DomainName,\n        FunctionName = \"filetype_based_ttl_set\",\n        FunctionArgs = new[]\n        {\n            new AliCloud.Dcdn.Inputs.DomainConfigFunctionArgArgs\n            {\n                ArgName = \"ttl\",\n                ArgValue = \"300\",\n            },\n            new AliCloud.Dcdn.Inputs.DomainConfigFunctionArgArgs\n            {\n                ArgName = \"file_type\",\n                ArgValue = \"jpg\",\n            },\n            new AliCloud.Dcdn.Inputs.DomainConfigFunctionArgArgs\n            {\n                ArgName = \"weight\",\n                ArgValue = \"1\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdomainName := \"alibaba-example.com\"\n\t\tif param := cfg.Get(\"domainName\"); param != \"\" {\n\t\t\tdomainName = param\n\t\t}\n\t\texample, err := dcdn.NewDomain(ctx, \"example\", \u0026dcdn.DomainArgs{\n\t\t\tDomainName: pulumi.String(domainName),\n\t\t\tScope:      pulumi.String(\"overseas\"),\n\t\t\tStatus:     pulumi.String(\"online\"),\n\t\t\tSources: dcdn.DomainSourceArray{\n\t\t\t\t\u0026dcdn.DomainSourceArgs{\n\t\t\t\t\tContent:  pulumi.String(\"1.1.1.1\"),\n\t\t\t\t\tType:     pulumi.String(\"ipaddr\"),\n\t\t\t\t\tPriority: pulumi.String(\"20\"),\n\t\t\t\t\tPort:     pulumi.Int(80),\n\t\t\t\t\tWeight:   pulumi.String(\"10\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dcdn.NewDomainConfig(ctx, \"ip_allow_list_set\", \u0026dcdn.DomainConfigArgs{\n\t\t\tDomainName:   example.DomainName,\n\t\t\tFunctionName: pulumi.String(\"ip_allow_list_set\"),\n\t\t\tFunctionArgs: dcdn.DomainConfigFunctionArgArray{\n\t\t\t\t\u0026dcdn.DomainConfigFunctionArgArgs{\n\t\t\t\t\tArgName:  pulumi.String(\"ip_list\"),\n\t\t\t\t\tArgValue: pulumi.String(\"192.168.0.1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dcdn.NewDomainConfig(ctx, \"referer_white_list_set\", \u0026dcdn.DomainConfigArgs{\n\t\t\tDomainName:   example.DomainName,\n\t\t\tFunctionName: pulumi.String(\"referer_white_list_set\"),\n\t\t\tFunctionArgs: dcdn.DomainConfigFunctionArgArray{\n\t\t\t\t\u0026dcdn.DomainConfigFunctionArgArgs{\n\t\t\t\t\tArgName:  pulumi.String(\"refer_domain_allow_list\"),\n\t\t\t\t\tArgValue: pulumi.String(\"110.110.110.110\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dcdn.NewDomainConfig(ctx, \"filetype_based_ttl_set\", \u0026dcdn.DomainConfigArgs{\n\t\t\tDomainName:   example.DomainName,\n\t\t\tFunctionName: pulumi.String(\"filetype_based_ttl_set\"),\n\t\t\tFunctionArgs: dcdn.DomainConfigFunctionArgArray{\n\t\t\t\t\u0026dcdn.DomainConfigFunctionArgArgs{\n\t\t\t\t\tArgName:  pulumi.String(\"ttl\"),\n\t\t\t\t\tArgValue: pulumi.String(\"300\"),\n\t\t\t\t},\n\t\t\t\t\u0026dcdn.DomainConfigFunctionArgArgs{\n\t\t\t\t\tArgName:  pulumi.String(\"file_type\"),\n\t\t\t\t\tArgValue: pulumi.String(\"jpg\"),\n\t\t\t\t},\n\t\t\t\t\u0026dcdn.DomainConfigFunctionArgArgs{\n\t\t\t\t\tArgName:  pulumi.String(\"weight\"),\n\t\t\t\t\tArgValue: pulumi.String(\"1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dcdn.Domain;\nimport com.pulumi.alicloud.dcdn.DomainArgs;\nimport com.pulumi.alicloud.dcdn.inputs.DomainSourceArgs;\nimport com.pulumi.alicloud.dcdn.DomainConfig;\nimport com.pulumi.alicloud.dcdn.DomainConfigArgs;\nimport com.pulumi.alicloud.dcdn.inputs.DomainConfigFunctionArgArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainName = config.get(\"domainName\").orElse(\"alibaba-example.com\");\n        var example = new Domain(\"example\", DomainArgs.builder()\n            .domainName(domainName)\n            .scope(\"overseas\")\n            .status(\"online\")\n            .sources(DomainSourceArgs.builder()\n                .content(\"1.1.1.1\")\n                .type(\"ipaddr\")\n                .priority(\"20\")\n                .port(80)\n                .weight(\"10\")\n                .build())\n            .build());\n\n        var ipAllowListSet = new DomainConfig(\"ipAllowListSet\", DomainConfigArgs.builder()\n            .domainName(example.domainName())\n            .functionName(\"ip_allow_list_set\")\n            .functionArgs(DomainConfigFunctionArgArgs.builder()\n                .argName(\"ip_list\")\n                .argValue(\"192.168.0.1\")\n                .build())\n            .build());\n\n        var refererWhiteListSet = new DomainConfig(\"refererWhiteListSet\", DomainConfigArgs.builder()\n            .domainName(example.domainName())\n            .functionName(\"referer_white_list_set\")\n            .functionArgs(DomainConfigFunctionArgArgs.builder()\n                .argName(\"refer_domain_allow_list\")\n                .argValue(\"110.110.110.110\")\n                .build())\n            .build());\n\n        var filetypeBasedTtlSet = new DomainConfig(\"filetypeBasedTtlSet\", DomainConfigArgs.builder()\n            .domainName(example.domainName())\n            .functionName(\"filetype_based_ttl_set\")\n            .functionArgs(            \n                DomainConfigFunctionArgArgs.builder()\n                    .argName(\"ttl\")\n                    .argValue(\"300\")\n                    .build(),\n                DomainConfigFunctionArgArgs.builder()\n                    .argName(\"file_type\")\n                    .argValue(\"jpg\")\n                    .build(),\n                DomainConfigFunctionArgArgs.builder()\n                    .argName(\"weight\")\n                    .argValue(\"1\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainName:\n    type: string\n    default: alibaba-example.com\nresources:\n  example:\n    type: alicloud:dcdn:Domain\n    properties:\n      domainName: ${domainName}\n      scope: overseas\n      status: online\n      sources:\n        - content: 1.1.1.1\n          type: ipaddr\n          priority: 20\n          port: 80\n          weight: 10\n  ipAllowListSet:\n    type: alicloud:dcdn:DomainConfig\n    name: ip_allow_list_set\n    properties:\n      domainName: ${example.domainName}\n      functionName: ip_allow_list_set\n      functionArgs:\n        - argName: ip_list\n          argValue: 192.168.0.1\n  refererWhiteListSet:\n    type: alicloud:dcdn:DomainConfig\n    name: referer_white_list_set\n    properties:\n      domainName: ${example.domainName}\n      functionName: referer_white_list_set\n      functionArgs:\n        - argName: refer_domain_allow_list\n          argValue: 110.110.110.110\n  filetypeBasedTtlSet:\n    type: alicloud:dcdn:DomainConfig\n    name: filetype_based_ttl_set\n    properties:\n      domainName: ${example.domainName}\n      functionName: filetype_based_ttl_set\n      functionArgs:\n        - argName: ttl\n          argValue: '300'\n        - argName: file_type\n          argValue: jpg\n        - argName: weight\n          argValue: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDCDN domain config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dcdn/domainConfig:DomainConfig example \u003cdomain_name\u003e:\u003cfunction_name\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"configId":{"type":"string","description":"The ID of the configuration.\n"},"domainName":{"type":"string","description":"Name of the accelerated domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n"},"functionArgs":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/DomainConfigFunctionArg:DomainConfigFunctionArg"},"description":"The args of the domain config. See \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e below.\n"},"functionName":{"type":"string","description":"The name of the domain config.\n"},"parentId":{"type":"string","description":"By configuring the function condition (rule engine) in the domain name configuration function parameters, Rule conditions can be created (Rule conditions can match and filter user requests by identifying various parameters carried in user requests). After each rule condition is created, a corresponding ConfigId will be generated, and the ConfigId can be referenced by other functions as a ParentId parameter, in this way, the rule conditions can be combined with the functional configuration to form a more flexible configuration.\n"},"status":{"type":"string","description":"The status of the Config.\n"}},"required":["configId","domainName","functionArgs","functionName","parentId","status"],"inputProperties":{"domainName":{"type":"string","description":"Name of the accelerated domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","willReplaceOnChanges":true},"functionArgs":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/DomainConfigFunctionArg:DomainConfigFunctionArg"},"description":"The args of the domain config. See \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e below.\n"},"functionName":{"type":"string","description":"The name of the domain config.\n","willReplaceOnChanges":true},"parentId":{"type":"string","description":"By configuring the function condition (rule engine) in the domain name configuration function parameters, Rule conditions can be created (Rule conditions can match and filter user requests by identifying various parameters carried in user requests). After each rule condition is created, a corresponding ConfigId will be generated, and the ConfigId can be referenced by other functions as a ParentId parameter, in this way, the rule conditions can be combined with the functional configuration to form a more flexible configuration.\n"}},"requiredInputs":["domainName","functionArgs","functionName"],"stateInputs":{"description":"Input properties used for looking up and filtering DomainConfig resources.\n","properties":{"configId":{"type":"string","description":"The ID of the configuration.\n"},"domainName":{"type":"string","description":"Name of the accelerated domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","willReplaceOnChanges":true},"functionArgs":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/DomainConfigFunctionArg:DomainConfigFunctionArg"},"description":"The args of the domain config. See \u003cspan pulumi-lang-nodejs=\"`functionArgs`\" pulumi-lang-dotnet=\"`FunctionArgs`\" pulumi-lang-go=\"`functionArgs`\" pulumi-lang-python=\"`function_args`\" pulumi-lang-yaml=\"`functionArgs`\" pulumi-lang-java=\"`functionArgs`\"\u003e`function_args`\u003c/span\u003e below.\n"},"functionName":{"type":"string","description":"The name of the domain config.\n","willReplaceOnChanges":true},"parentId":{"type":"string","description":"By configuring the function condition (rule engine) in the domain name configuration function parameters, Rule conditions can be created (Rule conditions can match and filter user requests by identifying various parameters carried in user requests). After each rule condition is created, a corresponding ConfigId will be generated, and the ConfigId can be referenced by other functions as a ParentId parameter, in this way, the rule conditions can be combined with the functional configuration to form a more flexible configuration.\n"},"status":{"type":"string","description":"The status of the Config.\n"}},"type":"object"}},"alicloud:dcdn/er:Er":{"description":"Provides a DCDN Er resource.\n\nFor information about DCDN Er and how to use it, see [What is Er](https://www.alibabacloud.com/help/en/dcdn/developer-reference/api-dcdn-2018-01-15-createroutine).\n\n\u003e **NOTE:** Available since v1.201.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new alicloud.dcdn.Er(\"default\", {\n    erName: name,\n    description: name,\n    envConf: {\n        staging: {\n            specName: \"5ms\",\n            allowedHosts: [\"example.com\"],\n        },\n        production: {\n            specName: \"5ms\",\n            allowedHosts: [\"example.com\"],\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.dcdn.Er(\"default\",\n    er_name=name,\n    description=name,\n    env_conf={\n        \"staging\": {\n            \"spec_name\": \"5ms\",\n            \"allowed_hosts\": [\"example.com\"],\n        },\n        \"production\": {\n            \"spec_name\": \"5ms\",\n            \"allowed_hosts\": [\"example.com\"],\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new AliCloud.Dcdn.Er(\"default\", new()\n    {\n        ErName = name,\n        Description = name,\n        EnvConf = new AliCloud.Dcdn.Inputs.ErEnvConfArgs\n        {\n            Staging = new AliCloud.Dcdn.Inputs.ErEnvConfStagingArgs\n            {\n                SpecName = \"5ms\",\n                AllowedHosts = new[]\n                {\n                    \"example.com\",\n                },\n            },\n            Production = new AliCloud.Dcdn.Inputs.ErEnvConfProductionArgs\n            {\n                SpecName = \"5ms\",\n                AllowedHosts = new[]\n                {\n                    \"example.com\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := dcdn.NewEr(ctx, \"default\", \u0026dcdn.ErArgs{\n\t\t\tErName:      pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tEnvConf: \u0026dcdn.ErEnvConfArgs{\n\t\t\t\tStaging: \u0026dcdn.ErEnvConfStagingArgs{\n\t\t\t\t\tSpecName: pulumi.String(\"5ms\"),\n\t\t\t\t\tAllowedHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tProduction: \u0026dcdn.ErEnvConfProductionArgs{\n\t\t\t\t\tSpecName: pulumi.String(\"5ms\"),\n\t\t\t\t\tAllowedHosts: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dcdn.Er;\nimport com.pulumi.alicloud.dcdn.ErArgs;\nimport com.pulumi.alicloud.dcdn.inputs.ErEnvConfArgs;\nimport com.pulumi.alicloud.dcdn.inputs.ErEnvConfStagingArgs;\nimport com.pulumi.alicloud.dcdn.inputs.ErEnvConfProductionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new Er(\"default\", ErArgs.builder()\n            .erName(name)\n            .description(name)\n            .envConf(ErEnvConfArgs.builder()\n                .staging(ErEnvConfStagingArgs.builder()\n                    .specName(\"5ms\")\n                    .allowedHosts(\"example.com\")\n                    .build())\n                .production(ErEnvConfProductionArgs.builder()\n                    .specName(\"5ms\")\n                    .allowedHosts(\"example.com\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:dcdn:Er\n    properties:\n      erName: ${name}\n      description: ${name}\n      envConf:\n        staging:\n          specName: 5ms\n          allowedHosts:\n            - example.com\n        production:\n          specName: 5ms\n          allowedHosts:\n            - example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDCDN Er can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dcdn/er:Er example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"Routine The description of the routine.\n"},"envConf":{"$ref":"#/types/alicloud:dcdn/ErEnvConf:ErEnvConf","description":"The configurations of the specified environment. See \u003cspan pulumi-lang-nodejs=\"`envConf`\" pulumi-lang-dotnet=\"`EnvConf`\" pulumi-lang-go=\"`envConf`\" pulumi-lang-python=\"`env_conf`\" pulumi-lang-yaml=\"`envConf`\" pulumi-lang-java=\"`envConf`\"\u003e`env_conf`\u003c/span\u003e below.\n"},"erName":{"type":"string","description":"The name of the routine. The name must be unique among the routines that belong to the same Alibaba Cloud account.\n"}},"required":["envConf","erName"],"inputProperties":{"description":{"type":"string","description":"Routine The description of the routine.\n"},"envConf":{"$ref":"#/types/alicloud:dcdn/ErEnvConf:ErEnvConf","description":"The configurations of the specified environment. See \u003cspan pulumi-lang-nodejs=\"`envConf`\" pulumi-lang-dotnet=\"`EnvConf`\" pulumi-lang-go=\"`envConf`\" pulumi-lang-python=\"`env_conf`\" pulumi-lang-yaml=\"`envConf`\" pulumi-lang-java=\"`envConf`\"\u003e`env_conf`\u003c/span\u003e below.\n"},"erName":{"type":"string","description":"The name of the routine. The name must be unique among the routines that belong to the same Alibaba Cloud account.\n","willReplaceOnChanges":true}},"requiredInputs":["erName"],"stateInputs":{"description":"Input properties used for looking up and filtering Er resources.\n","properties":{"description":{"type":"string","description":"Routine The description of the routine.\n"},"envConf":{"$ref":"#/types/alicloud:dcdn/ErEnvConf:ErEnvConf","description":"The configurations of the specified environment. See \u003cspan pulumi-lang-nodejs=\"`envConf`\" pulumi-lang-dotnet=\"`EnvConf`\" pulumi-lang-go=\"`envConf`\" pulumi-lang-python=\"`env_conf`\" pulumi-lang-yaml=\"`envConf`\" pulumi-lang-java=\"`envConf`\"\u003e`env_conf`\u003c/span\u003e below.\n"},"erName":{"type":"string","description":"The name of the routine. The name must be unique among the routines that belong to the same Alibaba Cloud account.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dcdn/ipaDomain:IpaDomain":{"description":"Provides a DCDN Ipa Domain resource.\n\nFor information about DCDN Ipa Domain and how to use it, see [What is Ipa Domain](https://www.alibabacloud.com/help/en/doc-detail/130634.html).\n\n\u003e **NOTE:** Available since v1.158.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst example = new alicloud.dcdn.IpaDomain(\"example\", {\n    domainName: `example-${defaultInteger.result}.com`,\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n    scope: \"overseas\",\n    status: \"online\",\n    sources: [{\n        content: \"www.alicloud-provider.cn\",\n        port: 8898,\n        priority: \"20\",\n        type: \"domain\",\n        weight: 10,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.resourcemanager.get_resource_groups()\nexample = alicloud.dcdn.IpaDomain(\"example\",\n    domain_name=f\"example-{default_integer['result']}.com\",\n    resource_group_id=default.groups[0].id,\n    scope=\"overseas\",\n    status=\"online\",\n    sources=[{\n        \"content\": \"www.alicloud-provider.cn\",\n        \"port\": 8898,\n        \"priority\": \"20\",\n        \"type\": \"domain\",\n        \"weight\": 10,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var example = new AliCloud.Dcdn.IpaDomain(\"example\", new()\n    {\n        DomainName = $\"example-{defaultInteger.Result}.com\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n        Scope = \"overseas\",\n        Status = \"online\",\n        Sources = new[]\n        {\n            new AliCloud.Dcdn.Inputs.IpaDomainSourceArgs\n            {\n                Content = \"www.alicloud-provider.cn\",\n                Port = 8898,\n                Priority = \"20\",\n                Type = \"domain\",\n                Weight = 10,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dcdn.NewIpaDomain(ctx, \"example\", \u0026dcdn.IpaDomainArgs{\n\t\t\tDomainName:      pulumi.Sprintf(\"example-%v.com\", defaultInteger.Result),\n\t\t\tResourceGroupId: pulumi.String(_default.Groups[0].Id),\n\t\t\tScope:           pulumi.String(\"overseas\"),\n\t\t\tStatus:          pulumi.String(\"online\"),\n\t\t\tSources: dcdn.IpaDomainSourceArray{\n\t\t\t\t\u0026dcdn.IpaDomainSourceArgs{\n\t\t\t\t\tContent:  pulumi.String(\"www.alicloud-provider.cn\"),\n\t\t\t\t\tPort:     pulumi.Int(8898),\n\t\t\t\t\tPriority: pulumi.String(\"20\"),\n\t\t\t\t\tType:     pulumi.String(\"domain\"),\n\t\t\t\t\tWeight:   pulumi.Int(10),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.dcdn.IpaDomain;\nimport com.pulumi.alicloud.dcdn.IpaDomainArgs;\nimport com.pulumi.alicloud.dcdn.inputs.IpaDomainSourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var example = new IpaDomain(\"example\", IpaDomainArgs.builder()\n            .domainName(String.format(\"example-%s.com\", defaultInteger.result()))\n            .resourceGroupId(default_.groups()[0].id())\n            .scope(\"overseas\")\n            .status(\"online\")\n            .sources(IpaDomainSourceArgs.builder()\n                .content(\"www.alicloud-provider.cn\")\n                .port(8898)\n                .priority(\"20\")\n                .type(\"domain\")\n                .weight(10)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  example:\n    type: alicloud:dcdn:IpaDomain\n    properties:\n      domainName: example-${defaultInteger.result}.com\n      resourceGroupId: ${default.groups[0].id}\n      scope: overseas\n      status: online\n      sources:\n        - content: www.alicloud-provider.cn\n          port: 8898\n          priority: '20'\n          type: domain\n          weight: 10\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDCDN Ipa Domain can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dcdn/ipaDomain:IpaDomain example \u003cdomain_name\u003e\n```\n\n","properties":{"domainName":{"type":"string","description":"The domain name to be added to IPA. Wildcard domain names are supported. A wildcard domain name must start with a period (.).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. If you do not set this parameter, the system automatically assigns the ID of the default resource group.\n"},"scope":{"type":"string","description":"The accelerated region. Valid values: \u003cspan pulumi-lang-nodejs=\"`domestic`\" pulumi-lang-dotnet=\"`Domestic`\" pulumi-lang-go=\"`domestic`\" pulumi-lang-python=\"`domestic`\" pulumi-lang-yaml=\"`domestic`\" pulumi-lang-java=\"`domestic`\"\u003e`domestic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`global`\" pulumi-lang-dotnet=\"`Global`\" pulumi-lang-go=\"`global`\" pulumi-lang-python=\"`global`\" pulumi-lang-yaml=\"`global`\" pulumi-lang-java=\"`global`\"\u003e`global`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`overseas`\" pulumi-lang-dotnet=\"`Overseas`\" pulumi-lang-go=\"`overseas`\" pulumi-lang-python=\"`overseas`\" pulumi-lang-yaml=\"`overseas`\" pulumi-lang-java=\"`overseas`\"\u003e`overseas`\u003c/span\u003e.\n"},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/IpaDomainSource:IpaDomainSource"},"description":"Sources. See \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of DCDN Ipa Domain. Valid values: \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e.\n"}},"required":["domainName","resourceGroupId","scope","sources","status"],"inputProperties":{"domainName":{"type":"string","description":"The domain name to be added to IPA. Wildcard domain names are supported. A wildcard domain name must start with a period (.).\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group. If you do not set this parameter, the system automatically assigns the ID of the default resource group.\n"},"scope":{"type":"string","description":"The accelerated region. Valid values: \u003cspan pulumi-lang-nodejs=\"`domestic`\" pulumi-lang-dotnet=\"`Domestic`\" pulumi-lang-go=\"`domestic`\" pulumi-lang-python=\"`domestic`\" pulumi-lang-yaml=\"`domestic`\" pulumi-lang-java=\"`domestic`\"\u003e`domestic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`global`\" pulumi-lang-dotnet=\"`Global`\" pulumi-lang-go=\"`global`\" pulumi-lang-python=\"`global`\" pulumi-lang-yaml=\"`global`\" pulumi-lang-java=\"`global`\"\u003e`global`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`overseas`\" pulumi-lang-dotnet=\"`Overseas`\" pulumi-lang-go=\"`overseas`\" pulumi-lang-python=\"`overseas`\" pulumi-lang-yaml=\"`overseas`\" pulumi-lang-java=\"`overseas`\"\u003e`overseas`\u003c/span\u003e.\n","willReplaceOnChanges":true},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/IpaDomainSource:IpaDomainSource"},"description":"Sources. See \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of DCDN Ipa Domain. Valid values: \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e.\n"}},"requiredInputs":["domainName","sources"],"stateInputs":{"description":"Input properties used for looking up and filtering IpaDomain resources.\n","properties":{"domainName":{"type":"string","description":"The domain name to be added to IPA. Wildcard domain names are supported. A wildcard domain name must start with a period (.).\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group. If you do not set this parameter, the system automatically assigns the ID of the default resource group.\n"},"scope":{"type":"string","description":"The accelerated region. Valid values: \u003cspan pulumi-lang-nodejs=\"`domestic`\" pulumi-lang-dotnet=\"`Domestic`\" pulumi-lang-go=\"`domestic`\" pulumi-lang-python=\"`domestic`\" pulumi-lang-yaml=\"`domestic`\" pulumi-lang-java=\"`domestic`\"\u003e`domestic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`global`\" pulumi-lang-dotnet=\"`Global`\" pulumi-lang-go=\"`global`\" pulumi-lang-python=\"`global`\" pulumi-lang-yaml=\"`global`\" pulumi-lang-java=\"`global`\"\u003e`global`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`overseas`\" pulumi-lang-dotnet=\"`Overseas`\" pulumi-lang-go=\"`overseas`\" pulumi-lang-python=\"`overseas`\" pulumi-lang-yaml=\"`overseas`\" pulumi-lang-java=\"`overseas`\"\u003e`overseas`\u003c/span\u003e.\n","willReplaceOnChanges":true},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/IpaDomainSource:IpaDomainSource"},"description":"Sources. See \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of DCDN Ipa Domain. Valid values: \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:dcdn/kv:Kv":{"description":"Provides a Dcdn Kv resource.\n\nFor information about Dcdn Kv and how to use it, see [What is Kv](https://www.alibabacloud.com/help/en/dcdn/developer-reference/api-dcdn-2018-01-15-putdcdnkv).\n\n\u003e **NOTE:** Available since v1.198.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultKvNamespace = new alicloud.dcdn.KvNamespace(\"default\", {\n    description: name,\n    namespace: `${name}-${_default.result}`,\n});\nconst defaultKv = new alicloud.dcdn.Kv(\"default\", {\n    value: \"example-value\",\n    key: `${name}-${_default.result}`,\n    namespace: defaultKvNamespace.namespace,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_kv_namespace = alicloud.dcdn.KvNamespace(\"default\",\n    description=name,\n    namespace=f\"{name}-{default['result']}\")\ndefault_kv = alicloud.dcdn.Kv(\"default\",\n    value=\"example-value\",\n    key=f\"{name}-{default['result']}\",\n    namespace=default_kv_namespace.namespace)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultKvNamespace = new AliCloud.Dcdn.KvNamespace(\"default\", new()\n    {\n        Description = name,\n        Namespace = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultKv = new AliCloud.Dcdn.Kv(\"default\", new()\n    {\n        Value = \"example-value\",\n        Key = $\"{name}-{@default.Result}\",\n        Namespace = defaultKvNamespace.Namespace,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultKvNamespace, err := dcdn.NewKvNamespace(ctx, \"default\", \u0026dcdn.KvNamespaceArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tNamespace:   pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dcdn.NewKv(ctx, \"default\", \u0026dcdn.KvArgs{\n\t\t\tValue:     pulumi.String(\"example-value\"),\n\t\t\tKey:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tNamespace: defaultKvNamespace.Namespace,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.dcdn.KvNamespace;\nimport com.pulumi.alicloud.dcdn.KvNamespaceArgs;\nimport com.pulumi.alicloud.dcdn.Kv;\nimport com.pulumi.alicloud.dcdn.KvArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultKvNamespace = new KvNamespace(\"defaultKvNamespace\", KvNamespaceArgs.builder()\n            .description(name)\n            .namespace(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultKv = new Kv(\"defaultKv\", KvArgs.builder()\n            .value(\"example-value\")\n            .key(String.format(\"%s-%s\", name,default_.result()))\n            .namespace(defaultKvNamespace.namespace())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultKvNamespace:\n    type: alicloud:dcdn:KvNamespace\n    name: default\n    properties:\n      description: ${name}\n      namespace: ${name}-${default.result}\n  defaultKv:\n    type: alicloud:dcdn:Kv\n    name: default\n    properties:\n      value: example-value\n      key: ${name}-${default.result}\n      namespace: ${defaultKvNamespace.namespace}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDcdn Kv can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dcdn/kv:Kv example \u003cnamespace\u003e:\u003ckey\u003e\n```\n\n","properties":{"key":{"type":"string","description":"The name of the key to Put, the longest 512, cannot contain spaces.\n"},"namespace":{"type":"string","description":"The name specified when the customer calls PutDcdnKvNamespace.\n"},"value":{"type":"string","description":"The content of key, up to 2M(2*1000*1000).\n"}},"required":["key","namespace","value"],"inputProperties":{"key":{"type":"string","description":"The name of the key to Put, the longest 512, cannot contain spaces.\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"The name specified when the customer calls PutDcdnKvNamespace.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The content of key, up to 2M(2*1000*1000).\n"}},"requiredInputs":["key","namespace","value"],"stateInputs":{"description":"Input properties used for looking up and filtering Kv resources.\n","properties":{"key":{"type":"string","description":"The name of the key to Put, the longest 512, cannot contain spaces.\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"The name specified when the customer calls PutDcdnKvNamespace.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The content of key, up to 2M(2*1000*1000).\n"}},"type":"object"}},"alicloud:dcdn/kvNamespace:KvNamespace":{"description":"Provides a Dcdn Kv Namespace resource.\n\nFor information about Dcdn Kv Namespace and how to use it, see [What is Kv Namespace](https://www.alibabacloud.com/help/en/dcdn/developer-reference/api-dcdn-2018-01-15-putdcdnkvnamespace).\n\n\u003e **NOTE:** Available since v1.198.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultKvNamespace = new alicloud.dcdn.KvNamespace(\"default\", {\n    description: name,\n    namespace: `${name}-${_default.result}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_kv_namespace = alicloud.dcdn.KvNamespace(\"default\",\n    description=name,\n    namespace=f\"{name}-{default['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultKvNamespace = new AliCloud.Dcdn.KvNamespace(\"default\", new()\n    {\n        Description = name,\n        Namespace = $\"{name}-{@default.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dcdn.NewKvNamespace(ctx, \"default\", \u0026dcdn.KvNamespaceArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tNamespace:   pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.dcdn.KvNamespace;\nimport com.pulumi.alicloud.dcdn.KvNamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultKvNamespace = new KvNamespace(\"defaultKvNamespace\", KvNamespaceArgs.builder()\n            .description(name)\n            .namespace(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultKvNamespace:\n    type: alicloud:dcdn:KvNamespace\n    name: default\n    properties:\n      description: ${name}\n      namespace: ${name}-${default.result}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDcdn Kv Namespace can be imported using the id, e.g.\n\n```sh\n$ terraform import alicloud_dcdn_kv_namespace.example \n```\n\n","properties":{"description":{"type":"string","description":"Namespace description information\n"},"namespace":{"type":"string","description":"Namespace name. The name can contain letters, digits, hyphens (-), and underscores (_).\n"},"status":{"type":"string","description":"The status of the resource\n"}},"required":["description","namespace","status"],"inputProperties":{"description":{"type":"string","description":"Namespace description information\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"Namespace name. The name can contain letters, digits, hyphens (-), and underscores (_).\n","willReplaceOnChanges":true}},"requiredInputs":["description","namespace"],"stateInputs":{"description":"Input properties used for looking up and filtering KvNamespace resources.\n","properties":{"description":{"type":"string","description":"Namespace description information\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"Namespace name. The name can contain letters, digits, hyphens (-), and underscores (_).\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object"}},"alicloud:dcdn/wafDomain:WafDomain":{"description":"Provides a DCDN Waf Domain resource.\n\nFor information about DCDN Waf Domain and how to use it, see [What is Waf Domain](https://www.alibabacloud.com/help/en/dcdn/developer-reference/api-dcdn-2018-01-15-batchsetdcdnwafdomainconfigs).\n\n\u003e **NOTE:** Available since v1.185.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst domainName = config.get(\"domainName\") || \"tf-example.com\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst example = new alicloud.dcdn.Domain(\"example\", {\n    domainName: `${domainName}-${_default.result}`,\n    scope: \"overseas\",\n    sources: [{\n        content: \"1.1.1.1\",\n        port: 80,\n        priority: \"20\",\n        type: \"ipaddr\",\n        weight: \"10\",\n    }],\n});\nconst exampleWafDomain = new alicloud.dcdn.WafDomain(\"example\", {\n    domainName: example.domainName,\n    clientIpTag: \"X-Forwarded-For\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\ndomain_name = config.get(\"domainName\")\nif domain_name is None:\n    domain_name = \"tf-example.com\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample = alicloud.dcdn.Domain(\"example\",\n    domain_name=f\"{domain_name}-{default['result']}\",\n    scope=\"overseas\",\n    sources=[{\n        \"content\": \"1.1.1.1\",\n        \"port\": 80,\n        \"priority\": \"20\",\n        \"type\": \"ipaddr\",\n        \"weight\": \"10\",\n    }])\nexample_waf_domain = alicloud.dcdn.WafDomain(\"example\",\n    domain_name=example.domain_name,\n    client_ip_tag=\"X-Forwarded-For\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var domainName = config.Get(\"domainName\") ?? \"tf-example.com\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var example = new AliCloud.Dcdn.Domain(\"example\", new()\n    {\n        DomainName = $\"{domainName}-{@default.Result}\",\n        Scope = \"overseas\",\n        Sources = new[]\n        {\n            new AliCloud.Dcdn.Inputs.DomainSourceArgs\n            {\n                Content = \"1.1.1.1\",\n                Port = 80,\n                Priority = \"20\",\n                Type = \"ipaddr\",\n                Weight = \"10\",\n            },\n        },\n    });\n\n    var exampleWafDomain = new AliCloud.Dcdn.WafDomain(\"example\", new()\n    {\n        DomainName = example.DomainName,\n        ClientIpTag = \"X-Forwarded-For\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdomainName := \"tf-example.com\"\n\t\tif param := cfg.Get(\"domainName\"); param != \"\" {\n\t\t\tdomainName = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := dcdn.NewDomain(ctx, \"example\", \u0026dcdn.DomainArgs{\n\t\t\tDomainName: pulumi.Sprintf(\"%v-%v\", domainName, _default.Result),\n\t\t\tScope:      pulumi.String(\"overseas\"),\n\t\t\tSources: dcdn.DomainSourceArray{\n\t\t\t\t\u0026dcdn.DomainSourceArgs{\n\t\t\t\t\tContent:  pulumi.String(\"1.1.1.1\"),\n\t\t\t\t\tPort:     pulumi.Int(80),\n\t\t\t\t\tPriority: pulumi.String(\"20\"),\n\t\t\t\t\tType:     pulumi.String(\"ipaddr\"),\n\t\t\t\t\tWeight:   pulumi.String(\"10\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dcdn.NewWafDomain(ctx, \"example\", \u0026dcdn.WafDomainArgs{\n\t\t\tDomainName:  example.DomainName,\n\t\t\tClientIpTag: pulumi.String(\"X-Forwarded-For\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.dcdn.Domain;\nimport com.pulumi.alicloud.dcdn.DomainArgs;\nimport com.pulumi.alicloud.dcdn.inputs.DomainSourceArgs;\nimport com.pulumi.alicloud.dcdn.WafDomain;\nimport com.pulumi.alicloud.dcdn.WafDomainArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainName = config.get(\"domainName\").orElse(\"tf-example.com\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var example = new Domain(\"example\", DomainArgs.builder()\n            .domainName(String.format(\"%s-%s\", domainName,default_.result()))\n            .scope(\"overseas\")\n            .sources(DomainSourceArgs.builder()\n                .content(\"1.1.1.1\")\n                .port(80)\n                .priority(\"20\")\n                .type(\"ipaddr\")\n                .weight(\"10\")\n                .build())\n            .build());\n\n        var exampleWafDomain = new WafDomain(\"exampleWafDomain\", WafDomainArgs.builder()\n            .domainName(example.domainName())\n            .clientIpTag(\"X-Forwarded-For\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainName:\n    type: string\n    default: tf-example.com\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  example:\n    type: alicloud:dcdn:Domain\n    properties:\n      domainName: ${domainName}-${default.result}\n      scope: overseas\n      sources:\n        - content: 1.1.1.1\n          port: '80'\n          priority: '20'\n          type: ipaddr\n          weight: '10'\n  exampleWafDomain:\n    type: alicloud:dcdn:WafDomain\n    name: example\n    properties:\n      domainName: ${example.domainName}\n      clientIpTag: X-Forwarded-For\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDCDN Waf Domain can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dcdn/wafDomain:WafDomain example \u003cdomain_name\u003e\n```\n\n","properties":{"clientIpTag":{"type":"string","description":"The client ip tag.\n"},"domainName":{"type":"string","description":"The accelerated domain name.\n"}},"required":["domainName"],"inputProperties":{"clientIpTag":{"type":"string","description":"The client ip tag.\n"},"domainName":{"type":"string","description":"The accelerated domain name.\n","willReplaceOnChanges":true}},"requiredInputs":["domainName"],"stateInputs":{"description":"Input properties used for looking up and filtering WafDomain resources.\n","properties":{"clientIpTag":{"type":"string","description":"The client ip tag.\n"},"domainName":{"type":"string","description":"The accelerated domain name.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dcdn/wafPolicy:WafPolicy":{"description":"Provides a DCDN Waf Policy resource.\n\nFor information about DCDN Waf Policy and how to use it, see [What is Waf Policy](https://www.alibabacloud.com/help/en/dcdn/developer-reference/api-dcdn-2018-01-15-createdcdnwafpolicy).\n\n\u003e **NOTE:** Available since v1.184.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst example = new alicloud.dcdn.WafPolicy(\"example\", {\n    defenseScene: \"waf_group\",\n    policyName: `${name}_${_default.result}`,\n    policyType: \"custom\",\n    status: \"on\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample = alicloud.dcdn.WafPolicy(\"example\",\n    defense_scene=\"waf_group\",\n    policy_name=f\"{name}_{default['result']}\",\n    policy_type=\"custom\",\n    status=\"on\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var example = new AliCloud.Dcdn.WafPolicy(\"example\", new()\n    {\n        DefenseScene = \"waf_group\",\n        PolicyName = $\"{name}_{@default.Result}\",\n        PolicyType = \"custom\",\n        Status = \"on\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dcdn.NewWafPolicy(ctx, \"example\", \u0026dcdn.WafPolicyArgs{\n\t\t\tDefenseScene: pulumi.String(\"waf_group\"),\n\t\t\tPolicyName:   pulumi.Sprintf(\"%v_%v\", name, _default.Result),\n\t\t\tPolicyType:   pulumi.String(\"custom\"),\n\t\t\tStatus:       pulumi.String(\"on\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.dcdn.WafPolicy;\nimport com.pulumi.alicloud.dcdn.WafPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var example = new WafPolicy(\"example\", WafPolicyArgs.builder()\n            .defenseScene(\"waf_group\")\n            .policyName(String.format(\"%s_%s\", name,default_.result()))\n            .policyType(\"custom\")\n            .status(\"on\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  example:\n    type: alicloud:dcdn:WafPolicy\n    properties:\n      defenseScene: waf_group\n      policyName: ${name}_${default.result}\n      policyType: custom\n      status: on\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDCDN Waf Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dcdn/wafPolicy:WafPolicy example \u003cid\u003e\n```\n\n","properties":{"defenseScene":{"type":"string","description":"The type of protection policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`wafGroup`\" pulumi-lang-dotnet=\"`WafGroup`\" pulumi-lang-go=\"`wafGroup`\" pulumi-lang-python=\"`waf_group`\" pulumi-lang-yaml=\"`wafGroup`\" pulumi-lang-java=\"`wafGroup`\"\u003e`waf_group`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`customAcl`\" pulumi-lang-dotnet=\"`CustomAcl`\" pulumi-lang-go=\"`customAcl`\" pulumi-lang-python=\"`custom_acl`\" pulumi-lang-yaml=\"`customAcl`\" pulumi-lang-java=\"`customAcl`\"\u003e`custom_acl`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`whitelist`\" pulumi-lang-dotnet=\"`Whitelist`\" pulumi-lang-go=\"`whitelist`\" pulumi-lang-python=\"`whitelist`\" pulumi-lang-yaml=\"`whitelist`\" pulumi-lang-java=\"`whitelist`\"\u003e`whitelist`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipBlacklist`\" pulumi-lang-dotnet=\"`IpBlacklist`\" pulumi-lang-go=\"`ipBlacklist`\" pulumi-lang-python=\"`ip_blacklist`\" pulumi-lang-yaml=\"`ipBlacklist`\" pulumi-lang-java=\"`ipBlacklist`\"\u003e`ip_blacklist`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`regionBlock`\" pulumi-lang-dotnet=\"`RegionBlock`\" pulumi-lang-go=\"`regionBlock`\" pulumi-lang-python=\"`region_block`\" pulumi-lang-yaml=\"`regionBlock`\" pulumi-lang-java=\"`regionBlock`\"\u003e`region_block`\u003c/span\u003e.\n"},"policyName":{"type":"string","description":"The name of the protection policy. The name must be 1 to 64 characters in length, and can contain letters, digits,and underscores (_).\n"},"policyType":{"type":"string","description":"The type of the protection policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"}},"required":["defenseScene","policyName","policyType","status"],"inputProperties":{"defenseScene":{"type":"string","description":"The type of protection policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`wafGroup`\" pulumi-lang-dotnet=\"`WafGroup`\" pulumi-lang-go=\"`wafGroup`\" pulumi-lang-python=\"`waf_group`\" pulumi-lang-yaml=\"`wafGroup`\" pulumi-lang-java=\"`wafGroup`\"\u003e`waf_group`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`customAcl`\" pulumi-lang-dotnet=\"`CustomAcl`\" pulumi-lang-go=\"`customAcl`\" pulumi-lang-python=\"`custom_acl`\" pulumi-lang-yaml=\"`customAcl`\" pulumi-lang-java=\"`customAcl`\"\u003e`custom_acl`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`whitelist`\" pulumi-lang-dotnet=\"`Whitelist`\" pulumi-lang-go=\"`whitelist`\" pulumi-lang-python=\"`whitelist`\" pulumi-lang-yaml=\"`whitelist`\" pulumi-lang-java=\"`whitelist`\"\u003e`whitelist`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipBlacklist`\" pulumi-lang-dotnet=\"`IpBlacklist`\" pulumi-lang-go=\"`ipBlacklist`\" pulumi-lang-python=\"`ip_blacklist`\" pulumi-lang-yaml=\"`ipBlacklist`\" pulumi-lang-java=\"`ipBlacklist`\"\u003e`ip_blacklist`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`regionBlock`\" pulumi-lang-dotnet=\"`RegionBlock`\" pulumi-lang-go=\"`regionBlock`\" pulumi-lang-python=\"`region_block`\" pulumi-lang-yaml=\"`regionBlock`\" pulumi-lang-java=\"`regionBlock`\"\u003e`region_block`\u003c/span\u003e.\n","willReplaceOnChanges":true},"policyName":{"type":"string","description":"The name of the protection policy. The name must be 1 to 64 characters in length, and can contain letters, digits,and underscores (_).\n"},"policyType":{"type":"string","description":"The type of the protection policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"}},"requiredInputs":["defenseScene","policyName","policyType","status"],"stateInputs":{"description":"Input properties used for looking up and filtering WafPolicy resources.\n","properties":{"defenseScene":{"type":"string","description":"The type of protection policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`wafGroup`\" pulumi-lang-dotnet=\"`WafGroup`\" pulumi-lang-go=\"`wafGroup`\" pulumi-lang-python=\"`waf_group`\" pulumi-lang-yaml=\"`wafGroup`\" pulumi-lang-java=\"`wafGroup`\"\u003e`waf_group`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`customAcl`\" pulumi-lang-dotnet=\"`CustomAcl`\" pulumi-lang-go=\"`customAcl`\" pulumi-lang-python=\"`custom_acl`\" pulumi-lang-yaml=\"`customAcl`\" pulumi-lang-java=\"`customAcl`\"\u003e`custom_acl`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`whitelist`\" pulumi-lang-dotnet=\"`Whitelist`\" pulumi-lang-go=\"`whitelist`\" pulumi-lang-python=\"`whitelist`\" pulumi-lang-yaml=\"`whitelist`\" pulumi-lang-java=\"`whitelist`\"\u003e`whitelist`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipBlacklist`\" pulumi-lang-dotnet=\"`IpBlacklist`\" pulumi-lang-go=\"`ipBlacklist`\" pulumi-lang-python=\"`ip_blacklist`\" pulumi-lang-yaml=\"`ipBlacklist`\" pulumi-lang-java=\"`ipBlacklist`\"\u003e`ip_blacklist`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`regionBlock`\" pulumi-lang-dotnet=\"`RegionBlock`\" pulumi-lang-go=\"`regionBlock`\" pulumi-lang-python=\"`region_block`\" pulumi-lang-yaml=\"`regionBlock`\" pulumi-lang-java=\"`regionBlock`\"\u003e`region_block`\u003c/span\u003e.\n","willReplaceOnChanges":true},"policyName":{"type":"string","description":"The name of the protection policy. The name must be 1 to 64 characters in length, and can contain letters, digits,and underscores (_).\n"},"policyType":{"type":"string","description":"The type of the protection policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:dcdn/wafPolicyDomainAttachment:WafPolicyDomainAttachment":{"description":"Provides a DCDN Waf Policy Domain Attachment resource.\n\nFor information about DCDN Waf Policy Domain Attachment and how to use it, see [What is Waf Policy Domain Attachment](https://www.alibabacloud.com/help/en/dcdn/developer-reference/api-dcdn-2018-01-15-modifydcdnwafpolicydomains).\n\n\u003e **NOTE:** Available since v1.186.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst domainName = config.get(\"domainName\") || \"tf-example.com\";\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst example = new alicloud.dcdn.Domain(\"example\", {\n    domainName: `${domainName}-${_default.result}`,\n    scope: \"overseas\",\n    sources: [{\n        content: \"1.1.1.1\",\n        port: 80,\n        priority: \"20\",\n        type: \"ipaddr\",\n        weight: \"10\",\n    }],\n});\nconst exampleWafDomain = new alicloud.dcdn.WafDomain(\"example\", {\n    domainName: example.domainName,\n    clientIpTag: \"X-Forwarded-For\",\n});\nconst exampleWafPolicy = new alicloud.dcdn.WafPolicy(\"example\", {\n    defenseScene: \"waf_group\",\n    policyName: `${name}_${_default.result}`,\n    policyType: \"custom\",\n    status: \"on\",\n});\nconst exampleWafPolicyDomainAttachment = new alicloud.dcdn.WafPolicyDomainAttachment(\"example\", {\n    domainName: exampleWafDomain.domainName,\n    policyId: exampleWafPolicy.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\ndomain_name = config.get(\"domainName\")\nif domain_name is None:\n    domain_name = \"tf-example.com\"\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample = alicloud.dcdn.Domain(\"example\",\n    domain_name=f\"{domain_name}-{default['result']}\",\n    scope=\"overseas\",\n    sources=[{\n        \"content\": \"1.1.1.1\",\n        \"port\": 80,\n        \"priority\": \"20\",\n        \"type\": \"ipaddr\",\n        \"weight\": \"10\",\n    }])\nexample_waf_domain = alicloud.dcdn.WafDomain(\"example\",\n    domain_name=example.domain_name,\n    client_ip_tag=\"X-Forwarded-For\")\nexample_waf_policy = alicloud.dcdn.WafPolicy(\"example\",\n    defense_scene=\"waf_group\",\n    policy_name=f\"{name}_{default['result']}\",\n    policy_type=\"custom\",\n    status=\"on\")\nexample_waf_policy_domain_attachment = alicloud.dcdn.WafPolicyDomainAttachment(\"example\",\n    domain_name=example_waf_domain.domain_name,\n    policy_id=example_waf_policy.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var domainName = config.Get(\"domainName\") ?? \"tf-example.com\";\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var example = new AliCloud.Dcdn.Domain(\"example\", new()\n    {\n        DomainName = $\"{domainName}-{@default.Result}\",\n        Scope = \"overseas\",\n        Sources = new[]\n        {\n            new AliCloud.Dcdn.Inputs.DomainSourceArgs\n            {\n                Content = \"1.1.1.1\",\n                Port = 80,\n                Priority = \"20\",\n                Type = \"ipaddr\",\n                Weight = \"10\",\n            },\n        },\n    });\n\n    var exampleWafDomain = new AliCloud.Dcdn.WafDomain(\"example\", new()\n    {\n        DomainName = example.DomainName,\n        ClientIpTag = \"X-Forwarded-For\",\n    });\n\n    var exampleWafPolicy = new AliCloud.Dcdn.WafPolicy(\"example\", new()\n    {\n        DefenseScene = \"waf_group\",\n        PolicyName = $\"{name}_{@default.Result}\",\n        PolicyType = \"custom\",\n        Status = \"on\",\n    });\n\n    var exampleWafPolicyDomainAttachment = new AliCloud.Dcdn.WafPolicyDomainAttachment(\"example\", new()\n    {\n        DomainName = exampleWafDomain.DomainName,\n        PolicyId = exampleWafPolicy.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdomainName := \"tf-example.com\"\n\t\tif param := cfg.Get(\"domainName\"); param != \"\" {\n\t\t\tdomainName = param\n\t\t}\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := dcdn.NewDomain(ctx, \"example\", \u0026dcdn.DomainArgs{\n\t\t\tDomainName: pulumi.Sprintf(\"%v-%v\", domainName, _default.Result),\n\t\t\tScope:      pulumi.String(\"overseas\"),\n\t\t\tSources: dcdn.DomainSourceArray{\n\t\t\t\t\u0026dcdn.DomainSourceArgs{\n\t\t\t\t\tContent:  pulumi.String(\"1.1.1.1\"),\n\t\t\t\t\tPort:     pulumi.Int(80),\n\t\t\t\t\tPriority: pulumi.String(\"20\"),\n\t\t\t\t\tType:     pulumi.String(\"ipaddr\"),\n\t\t\t\t\tWeight:   pulumi.String(\"10\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWafDomain, err := dcdn.NewWafDomain(ctx, \"example\", \u0026dcdn.WafDomainArgs{\n\t\t\tDomainName:  example.DomainName,\n\t\t\tClientIpTag: pulumi.String(\"X-Forwarded-For\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWafPolicy, err := dcdn.NewWafPolicy(ctx, \"example\", \u0026dcdn.WafPolicyArgs{\n\t\t\tDefenseScene: pulumi.String(\"waf_group\"),\n\t\t\tPolicyName:   pulumi.Sprintf(\"%v_%v\", name, _default.Result),\n\t\t\tPolicyType:   pulumi.String(\"custom\"),\n\t\t\tStatus:       pulumi.String(\"on\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dcdn.NewWafPolicyDomainAttachment(ctx, \"example\", \u0026dcdn.WafPolicyDomainAttachmentArgs{\n\t\t\tDomainName: exampleWafDomain.DomainName,\n\t\t\tPolicyId:   exampleWafPolicy.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.dcdn.Domain;\nimport com.pulumi.alicloud.dcdn.DomainArgs;\nimport com.pulumi.alicloud.dcdn.inputs.DomainSourceArgs;\nimport com.pulumi.alicloud.dcdn.WafDomain;\nimport com.pulumi.alicloud.dcdn.WafDomainArgs;\nimport com.pulumi.alicloud.dcdn.WafPolicy;\nimport com.pulumi.alicloud.dcdn.WafPolicyArgs;\nimport com.pulumi.alicloud.dcdn.WafPolicyDomainAttachment;\nimport com.pulumi.alicloud.dcdn.WafPolicyDomainAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainName = config.get(\"domainName\").orElse(\"tf-example.com\");\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var example = new Domain(\"example\", DomainArgs.builder()\n            .domainName(String.format(\"%s-%s\", domainName,default_.result()))\n            .scope(\"overseas\")\n            .sources(DomainSourceArgs.builder()\n                .content(\"1.1.1.1\")\n                .port(80)\n                .priority(\"20\")\n                .type(\"ipaddr\")\n                .weight(\"10\")\n                .build())\n            .build());\n\n        var exampleWafDomain = new WafDomain(\"exampleWafDomain\", WafDomainArgs.builder()\n            .domainName(example.domainName())\n            .clientIpTag(\"X-Forwarded-For\")\n            .build());\n\n        var exampleWafPolicy = new WafPolicy(\"exampleWafPolicy\", WafPolicyArgs.builder()\n            .defenseScene(\"waf_group\")\n            .policyName(String.format(\"%s_%s\", name,default_.result()))\n            .policyType(\"custom\")\n            .status(\"on\")\n            .build());\n\n        var exampleWafPolicyDomainAttachment = new WafPolicyDomainAttachment(\"exampleWafPolicyDomainAttachment\", WafPolicyDomainAttachmentArgs.builder()\n            .domainName(exampleWafDomain.domainName())\n            .policyId(exampleWafPolicy.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainName:\n    type: string\n    default: tf-example.com\n  name:\n    type: string\n    default: tf_example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  example:\n    type: alicloud:dcdn:Domain\n    properties:\n      domainName: ${domainName}-${default.result}\n      scope: overseas\n      sources:\n        - content: 1.1.1.1\n          port: '80'\n          priority: '20'\n          type: ipaddr\n          weight: '10'\n  exampleWafDomain:\n    type: alicloud:dcdn:WafDomain\n    name: example\n    properties:\n      domainName: ${example.domainName}\n      clientIpTag: X-Forwarded-For\n  exampleWafPolicy:\n    type: alicloud:dcdn:WafPolicy\n    name: example\n    properties:\n      defenseScene: waf_group\n      policyName: ${name}_${default.result}\n      policyType: custom\n      status: on\n  exampleWafPolicyDomainAttachment:\n    type: alicloud:dcdn:WafPolicyDomainAttachment\n    name: example\n    properties:\n      domainName: ${exampleWafDomain.domainName}\n      policyId: ${exampleWafPolicy.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDCDN Waf Policy Domain Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dcdn/wafPolicyDomainAttachment:WafPolicyDomainAttachment example policy_id:domain_name\n```\n\n","properties":{"domainName":{"type":"string","description":"Access the accelerated domain name of the specified protection policy.\n"},"policyId":{"type":"string","description":"The protection policy ID. Only one input is supported.\n"}},"required":["domainName","policyId"],"inputProperties":{"domainName":{"type":"string","description":"Access the accelerated domain name of the specified protection policy.\n","willReplaceOnChanges":true},"policyId":{"type":"string","description":"The protection policy ID. Only one input is supported.\n","willReplaceOnChanges":true}},"requiredInputs":["domainName","policyId"],"stateInputs":{"description":"Input properties used for looking up and filtering WafPolicyDomainAttachment resources.\n","properties":{"domainName":{"type":"string","description":"Access the accelerated domain name of the specified protection policy.\n","willReplaceOnChanges":true},"policyId":{"type":"string","description":"The protection policy ID. Only one input is supported.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dcdn/wafRule:WafRule":{"description":"Provides a Dcdn Waf Rule resource.\n\nFor information about Dcdn Waf Rule and how to use it, see [What is Waf Rule](https://www.alibabacloud.com/help/en/dcdn/developer-reference/api-dcdn-2018-01-15-batchcreatedcdnwafrules).\n\n\u003e **NOTE:** Available since v1.201.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst example = new alicloud.dcdn.WafPolicy(\"example\", {\n    defenseScene: \"waf_group\",\n    policyName: `${name}_${_default.result}`,\n    policyType: \"custom\",\n    status: \"on\",\n});\nconst exampleWafRule = new alicloud.dcdn.WafRule(\"example\", {\n    policyId: example.id,\n    ruleName: name,\n    conditions: [\n        {\n            key: \"URI\",\n            opValue: \"ne\",\n            values: \"/login.php\",\n        },\n        {\n            key: \"Header\",\n            subKey: \"a\",\n            opValue: \"eq\",\n            values: \"b\",\n        },\n    ],\n    status: \"on\",\n    action: \"monitor\",\n    rateLimit: {\n        target: \"IP\",\n        interval: 5,\n        threshold: 5,\n        ttl: 1800,\n        status: {\n            code: \"200\",\n            ratio: 60,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample = alicloud.dcdn.WafPolicy(\"example\",\n    defense_scene=\"waf_group\",\n    policy_name=f\"{name}_{default['result']}\",\n    policy_type=\"custom\",\n    status=\"on\")\nexample_waf_rule = alicloud.dcdn.WafRule(\"example\",\n    policy_id=example.id,\n    rule_name=name,\n    conditions=[\n        {\n            \"key\": \"URI\",\n            \"op_value\": \"ne\",\n            \"values\": \"/login.php\",\n        },\n        {\n            \"key\": \"Header\",\n            \"sub_key\": \"a\",\n            \"op_value\": \"eq\",\n            \"values\": \"b\",\n        },\n    ],\n    status=\"on\",\n    action=\"monitor\",\n    rate_limit={\n        \"target\": \"IP\",\n        \"interval\": 5,\n        \"threshold\": 5,\n        \"ttl\": 1800,\n        \"status\": {\n            \"code\": \"200\",\n            \"ratio\": 60,\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var example = new AliCloud.Dcdn.WafPolicy(\"example\", new()\n    {\n        DefenseScene = \"waf_group\",\n        PolicyName = $\"{name}_{@default.Result}\",\n        PolicyType = \"custom\",\n        Status = \"on\",\n    });\n\n    var exampleWafRule = new AliCloud.Dcdn.WafRule(\"example\", new()\n    {\n        PolicyId = example.Id,\n        RuleName = name,\n        Conditions = new[]\n        {\n            new AliCloud.Dcdn.Inputs.WafRuleConditionArgs\n            {\n                Key = \"URI\",\n                OpValue = \"ne\",\n                Values = \"/login.php\",\n            },\n            new AliCloud.Dcdn.Inputs.WafRuleConditionArgs\n            {\n                Key = \"Header\",\n                SubKey = \"a\",\n                OpValue = \"eq\",\n                Values = \"b\",\n            },\n        },\n        Status = \"on\",\n        Action = \"monitor\",\n        RateLimit = new AliCloud.Dcdn.Inputs.WafRuleRateLimitArgs\n        {\n            Target = \"IP\",\n            Interval = 5,\n            Threshold = 5,\n            Ttl = 1800,\n            Status = new AliCloud.Dcdn.Inputs.WafRuleRateLimitStatusArgs\n            {\n                Code = \"200\",\n                Ratio = 60,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := dcdn.NewWafPolicy(ctx, \"example\", \u0026dcdn.WafPolicyArgs{\n\t\t\tDefenseScene: pulumi.String(\"waf_group\"),\n\t\t\tPolicyName:   pulumi.Sprintf(\"%v_%v\", name, _default.Result),\n\t\t\tPolicyType:   pulumi.String(\"custom\"),\n\t\t\tStatus:       pulumi.String(\"on\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dcdn.NewWafRule(ctx, \"example\", \u0026dcdn.WafRuleArgs{\n\t\t\tPolicyId: example.ID(),\n\t\t\tRuleName: pulumi.String(name),\n\t\t\tConditions: dcdn.WafRuleConditionArray{\n\t\t\t\t\u0026dcdn.WafRuleConditionArgs{\n\t\t\t\t\tKey:     pulumi.String(\"URI\"),\n\t\t\t\t\tOpValue: pulumi.String(\"ne\"),\n\t\t\t\t\tValues:  pulumi.String(\"/login.php\"),\n\t\t\t\t},\n\t\t\t\t\u0026dcdn.WafRuleConditionArgs{\n\t\t\t\t\tKey:     pulumi.String(\"Header\"),\n\t\t\t\t\tSubKey:  pulumi.String(\"a\"),\n\t\t\t\t\tOpValue: pulumi.String(\"eq\"),\n\t\t\t\t\tValues:  pulumi.String(\"b\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tStatus: pulumi.String(\"on\"),\n\t\t\tAction: pulumi.String(\"monitor\"),\n\t\t\tRateLimit: \u0026dcdn.WafRuleRateLimitArgs{\n\t\t\t\tTarget:    pulumi.String(\"IP\"),\n\t\t\t\tInterval:  pulumi.Int(5),\n\t\t\t\tThreshold: pulumi.Int(5),\n\t\t\t\tTtl:       pulumi.Int(1800),\n\t\t\t\tStatus: \u0026dcdn.WafRuleRateLimitStatusArgs{\n\t\t\t\t\tCode:  pulumi.String(\"200\"),\n\t\t\t\t\tRatio: pulumi.Int(60),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.dcdn.WafPolicy;\nimport com.pulumi.alicloud.dcdn.WafPolicyArgs;\nimport com.pulumi.alicloud.dcdn.WafRule;\nimport com.pulumi.alicloud.dcdn.WafRuleArgs;\nimport com.pulumi.alicloud.dcdn.inputs.WafRuleConditionArgs;\nimport com.pulumi.alicloud.dcdn.inputs.WafRuleRateLimitArgs;\nimport com.pulumi.alicloud.dcdn.inputs.WafRuleRateLimitStatusArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var example = new WafPolicy(\"example\", WafPolicyArgs.builder()\n            .defenseScene(\"waf_group\")\n            .policyName(String.format(\"%s_%s\", name,default_.result()))\n            .policyType(\"custom\")\n            .status(\"on\")\n            .build());\n\n        var exampleWafRule = new WafRule(\"exampleWafRule\", WafRuleArgs.builder()\n            .policyId(example.id())\n            .ruleName(name)\n            .conditions(            \n                WafRuleConditionArgs.builder()\n                    .key(\"URI\")\n                    .opValue(\"ne\")\n                    .values(\"/login.php\")\n                    .build(),\n                WafRuleConditionArgs.builder()\n                    .key(\"Header\")\n                    .subKey(\"a\")\n                    .opValue(\"eq\")\n                    .values(\"b\")\n                    .build())\n            .status(\"on\")\n            .action(\"monitor\")\n            .rateLimit(WafRuleRateLimitArgs.builder()\n                .target(\"IP\")\n                .interval(5)\n                .threshold(5)\n                .ttl(1800)\n                .status(WafRuleRateLimitStatusArgs.builder()\n                    .code(\"200\")\n                    .ratio(60)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  example:\n    type: alicloud:dcdn:WafPolicy\n    properties:\n      defenseScene: waf_group\n      policyName: ${name}_${default.result}\n      policyType: custom\n      status: on\n  exampleWafRule:\n    type: alicloud:dcdn:WafRule\n    name: example\n    properties:\n      policyId: ${example.id}\n      ruleName: ${name}\n      conditions:\n        - key: URI\n          opValue: ne\n          values: /login.php\n        - key: Header\n          subKey: a\n          opValue: eq\n          values: b\n      status: on\n      action: monitor\n      rateLimit:\n        target: IP\n        interval: '5'\n        threshold: '5'\n        ttl: '1800'\n        status:\n          code: '200'\n          ratio: '60'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDcdn Waf Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dcdn/wafRule:WafRule example \u003cid\u003e\n```\n\n","properties":{"action":{"type":"string","description":"Specifies the action of the rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`block`\" pulumi-lang-dotnet=\"`Block`\" pulumi-lang-go=\"`block`\" pulumi-lang-python=\"`block`\" pulumi-lang-yaml=\"`block`\" pulumi-lang-java=\"`block`\"\u003e`block`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`monitor`\" pulumi-lang-dotnet=\"`Monitor`\" pulumi-lang-go=\"`monitor`\" pulumi-lang-python=\"`monitor`\" pulumi-lang-yaml=\"`monitor`\" pulumi-lang-java=\"`monitor`\"\u003e`monitor`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`js`\" pulumi-lang-dotnet=\"`Js`\" pulumi-lang-go=\"`js`\" pulumi-lang-python=\"`js`\" pulumi-lang-yaml=\"`js`\" pulumi-lang-java=\"`js`\"\u003e`js`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deny`\" pulumi-lang-dotnet=\"`Deny`\" pulumi-lang-go=\"`deny`\" pulumi-lang-python=\"`deny`\" pulumi-lang-yaml=\"`deny`\" pulumi-lang-java=\"`deny`\"\u003e`deny`\u003c/span\u003e.\n"},"ccStatus":{"type":"string","description":"Specifies whether to enable rate limiting. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. **NOTE:** This parameter is required when policy is of type \u003cspan pulumi-lang-nodejs=\"`customAcl`\" pulumi-lang-dotnet=\"`CustomAcl`\" pulumi-lang-go=\"`customAcl`\" pulumi-lang-python=\"`custom_acl`\" pulumi-lang-yaml=\"`customAcl`\" pulumi-lang-java=\"`customAcl`\"\u003e`custom_acl`\u003c/span\u003e.\n"},"cnRegionList":{"type":"string","description":"The blocked regions in the Chinese mainland, separated by commas (,).\n"},"conditions":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/WafRuleCondition:WafRuleCondition"},"description":"Conditions that trigger the rule. See \u003cspan pulumi-lang-nodejs=\"`conditions`\" pulumi-lang-dotnet=\"`Conditions`\" pulumi-lang-go=\"`conditions`\" pulumi-lang-python=\"`conditions`\" pulumi-lang-yaml=\"`conditions`\" pulumi-lang-java=\"`conditions`\"\u003e`conditions`\u003c/span\u003e below. **NOTE:** This parameter is required when policy is of type \u003cspan pulumi-lang-nodejs=\"`customAcl`\" pulumi-lang-dotnet=\"`CustomAcl`\" pulumi-lang-go=\"`customAcl`\" pulumi-lang-python=\"`custom_acl`\" pulumi-lang-yaml=\"`customAcl`\" pulumi-lang-java=\"`customAcl`\"\u003e`custom_acl`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`whitelist`\" pulumi-lang-dotnet=\"`Whitelist`\" pulumi-lang-go=\"`whitelist`\" pulumi-lang-python=\"`whitelist`\" pulumi-lang-yaml=\"`whitelist`\" pulumi-lang-java=\"`whitelist`\"\u003e`whitelist`\u003c/span\u003e.\n"},"defenseScene":{"type":"string","description":"The type of protection policy. The following scenarios are supported:-waf_group:Web basic protection-custom_acl: Custom protection policy-whitelist: whitelist\n"},"effect":{"type":"string","description":"The effective scope of the rate limiting blacklist. If you set ccStatus to on, you must configure this parameter. Valid values: \u003cspan pulumi-lang-nodejs=\"`rule`\" pulumi-lang-dotnet=\"`Rule`\" pulumi-lang-go=\"`rule`\" pulumi-lang-python=\"`rule`\" pulumi-lang-yaml=\"`rule`\" pulumi-lang-java=\"`rule`\"\u003e`rule`\u003c/span\u003e (takes effect for the current rule) and \u003cspan pulumi-lang-nodejs=\"`service`\" pulumi-lang-dotnet=\"`Service`\" pulumi-lang-go=\"`service`\" pulumi-lang-python=\"`service`\" pulumi-lang-yaml=\"`service`\" pulumi-lang-java=\"`service`\"\u003e`service`\u003c/span\u003e (takes effect globally).\n"},"gmtModified":{"type":"string","description":"Revised the time. The date format is based on ISO8601 notation and uses UTC +0 time in the format of yyyy-MM-ddTHH:mm:ssZ.\n"},"otherRegionList":{"type":"string","description":"Blocked regions outside the Chinese mainland, separated by commas (,).\n"},"policyId":{"type":"string","description":"The protection policy ID.\n"},"rateLimit":{"$ref":"#/types/alicloud:dcdn/WafRuleRateLimit:WafRuleRateLimit","description":"The rules of rate limiting. If you set \u003cspan pulumi-lang-nodejs=\"`ccStatus`\" pulumi-lang-dotnet=\"`CcStatus`\" pulumi-lang-go=\"`ccStatus`\" pulumi-lang-python=\"`cc_status`\" pulumi-lang-yaml=\"`ccStatus`\" pulumi-lang-java=\"`ccStatus`\"\u003e`cc_status`\u003c/span\u003e to on, you must configure this parameter. See \u003cspan pulumi-lang-nodejs=\"`rateLimit`\" pulumi-lang-dotnet=\"`RateLimit`\" pulumi-lang-go=\"`rateLimit`\" pulumi-lang-python=\"`rate_limit`\" pulumi-lang-yaml=\"`rateLimit`\" pulumi-lang-java=\"`rateLimit`\"\u003e`rate_limit`\u003c/span\u003e below.\n"},"regularRules":{"type":"array","items":{"type":"string"},"description":"The regular expression.e, when\u003cspan pulumi-lang-nodejs=\" wafGroup \" pulumi-lang-dotnet=\" WafGroup \" pulumi-lang-go=\" wafGroup \" pulumi-lang-python=\" waf_group \" pulumi-lang-yaml=\" wafGroup \" pulumi-lang-java=\" wafGroup \"\u003e waf_group \u003c/span\u003eappears in tags, this value can be filled in, and only one list of six digits in string format can appear with regultypes.\n"},"regularTypes":{"type":"array","items":{"type":"string"},"description":"Regular rule type, when\u003cspan pulumi-lang-nodejs=\" wafGroup \" pulumi-lang-dotnet=\" WafGroup \" pulumi-lang-go=\" wafGroup \" pulumi-lang-python=\" waf_group \" pulumi-lang-yaml=\" wafGroup \" pulumi-lang-java=\" wafGroup \"\u003e waf_group \u003c/span\u003eappears in tags, this value can be filled in, optional values:[\"sqli\", \"xss\", \u003cspan pulumi-lang-nodejs=\"\"codeExec\"\" pulumi-lang-dotnet=\"\"CodeExec\"\" pulumi-lang-go=\"\"codeExec\"\" pulumi-lang-python=\"\"code_exec\"\" pulumi-lang-yaml=\"\"codeExec\"\" pulumi-lang-java=\"\"codeExec\"\"\u003e\"code_exec\"\u003c/span\u003e, \"crlf\", \"lfileii\", \"rfileii\", \"webshell\", \"vvip\", \"other\"]\n"},"remoteAddrs":{"type":"array","items":{"type":"string"},"description":"Filter by IP address.\n"},"ruleName":{"type":"string","description":"The name of the protection rule. The name can be up to 64 characters in length and can contain letters, digits, and underscores (_). **NOTE:** This parameter cannot be modified when policy is of type \u003cspan pulumi-lang-nodejs=\"`regionBlock`\" pulumi-lang-dotnet=\"`RegionBlock`\" pulumi-lang-go=\"`regionBlock`\" pulumi-lang-python=\"`region_block`\" pulumi-lang-yaml=\"`regionBlock`\" pulumi-lang-java=\"`regionBlock`\"\u003e`region_block`\u003c/span\u003e.\n"},"scenes":{"type":"array","items":{"type":"string"},"description":"The types of the protection policies.\n"},"status":{"type":"string","description":"The status of the waf rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Default value: on.\n"},"wafGroupIds":{"type":"string","description":"The id of the waf rule group. The default value is \"1012\". Multiple rules are separated by commas. **NOTE:** This parameter is valid only when policy is of type \u003cspan pulumi-lang-nodejs=\"`wafGroup`\" pulumi-lang-dotnet=\"`WafGroup`\" pulumi-lang-go=\"`wafGroup`\" pulumi-lang-python=\"`waf_group`\" pulumi-lang-yaml=\"`wafGroup`\" pulumi-lang-java=\"`wafGroup`\"\u003e`waf_group`\u003c/span\u003e.\n"}},"required":["ccStatus","defenseScene","gmtModified","policyId","ruleName","status"],"inputProperties":{"action":{"type":"string","description":"Specifies the action of the rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`block`\" pulumi-lang-dotnet=\"`Block`\" pulumi-lang-go=\"`block`\" pulumi-lang-python=\"`block`\" pulumi-lang-yaml=\"`block`\" pulumi-lang-java=\"`block`\"\u003e`block`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`monitor`\" pulumi-lang-dotnet=\"`Monitor`\" pulumi-lang-go=\"`monitor`\" pulumi-lang-python=\"`monitor`\" pulumi-lang-yaml=\"`monitor`\" pulumi-lang-java=\"`monitor`\"\u003e`monitor`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`js`\" pulumi-lang-dotnet=\"`Js`\" pulumi-lang-go=\"`js`\" pulumi-lang-python=\"`js`\" pulumi-lang-yaml=\"`js`\" pulumi-lang-java=\"`js`\"\u003e`js`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deny`\" pulumi-lang-dotnet=\"`Deny`\" pulumi-lang-go=\"`deny`\" pulumi-lang-python=\"`deny`\" pulumi-lang-yaml=\"`deny`\" pulumi-lang-java=\"`deny`\"\u003e`deny`\u003c/span\u003e.\n"},"ccStatus":{"type":"string","description":"Specifies whether to enable rate limiting. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. **NOTE:** This parameter is required when policy is of type \u003cspan pulumi-lang-nodejs=\"`customAcl`\" pulumi-lang-dotnet=\"`CustomAcl`\" pulumi-lang-go=\"`customAcl`\" pulumi-lang-python=\"`custom_acl`\" pulumi-lang-yaml=\"`customAcl`\" pulumi-lang-java=\"`customAcl`\"\u003e`custom_acl`\u003c/span\u003e.\n"},"cnRegionList":{"type":"string","description":"The blocked regions in the Chinese mainland, separated by commas (,).\n"},"conditions":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/WafRuleCondition:WafRuleCondition"},"description":"Conditions that trigger the rule. See \u003cspan pulumi-lang-nodejs=\"`conditions`\" pulumi-lang-dotnet=\"`Conditions`\" pulumi-lang-go=\"`conditions`\" pulumi-lang-python=\"`conditions`\" pulumi-lang-yaml=\"`conditions`\" pulumi-lang-java=\"`conditions`\"\u003e`conditions`\u003c/span\u003e below. **NOTE:** This parameter is required when policy is of type \u003cspan pulumi-lang-nodejs=\"`customAcl`\" pulumi-lang-dotnet=\"`CustomAcl`\" pulumi-lang-go=\"`customAcl`\" pulumi-lang-python=\"`custom_acl`\" pulumi-lang-yaml=\"`customAcl`\" pulumi-lang-java=\"`customAcl`\"\u003e`custom_acl`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`whitelist`\" pulumi-lang-dotnet=\"`Whitelist`\" pulumi-lang-go=\"`whitelist`\" pulumi-lang-python=\"`whitelist`\" pulumi-lang-yaml=\"`whitelist`\" pulumi-lang-java=\"`whitelist`\"\u003e`whitelist`\u003c/span\u003e.\n"},"effect":{"type":"string","description":"The effective scope of the rate limiting blacklist. If you set ccStatus to on, you must configure this parameter. Valid values: \u003cspan pulumi-lang-nodejs=\"`rule`\" pulumi-lang-dotnet=\"`Rule`\" pulumi-lang-go=\"`rule`\" pulumi-lang-python=\"`rule`\" pulumi-lang-yaml=\"`rule`\" pulumi-lang-java=\"`rule`\"\u003e`rule`\u003c/span\u003e (takes effect for the current rule) and \u003cspan pulumi-lang-nodejs=\"`service`\" pulumi-lang-dotnet=\"`Service`\" pulumi-lang-go=\"`service`\" pulumi-lang-python=\"`service`\" pulumi-lang-yaml=\"`service`\" pulumi-lang-java=\"`service`\"\u003e`service`\u003c/span\u003e (takes effect globally).\n"},"otherRegionList":{"type":"string","description":"Blocked regions outside the Chinese mainland, separated by commas (,).\n"},"policyId":{"type":"string","description":"The protection policy ID.\n","willReplaceOnChanges":true},"rateLimit":{"$ref":"#/types/alicloud:dcdn/WafRuleRateLimit:WafRuleRateLimit","description":"The rules of rate limiting. If you set \u003cspan pulumi-lang-nodejs=\"`ccStatus`\" pulumi-lang-dotnet=\"`CcStatus`\" pulumi-lang-go=\"`ccStatus`\" pulumi-lang-python=\"`cc_status`\" pulumi-lang-yaml=\"`ccStatus`\" pulumi-lang-java=\"`ccStatus`\"\u003e`cc_status`\u003c/span\u003e to on, you must configure this parameter. See \u003cspan pulumi-lang-nodejs=\"`rateLimit`\" pulumi-lang-dotnet=\"`RateLimit`\" pulumi-lang-go=\"`rateLimit`\" pulumi-lang-python=\"`rate_limit`\" pulumi-lang-yaml=\"`rateLimit`\" pulumi-lang-java=\"`rateLimit`\"\u003e`rate_limit`\u003c/span\u003e below.\n"},"regularRules":{"type":"array","items":{"type":"string"},"description":"The regular expression.e, when\u003cspan pulumi-lang-nodejs=\" wafGroup \" pulumi-lang-dotnet=\" WafGroup \" pulumi-lang-go=\" wafGroup \" pulumi-lang-python=\" waf_group \" pulumi-lang-yaml=\" wafGroup \" pulumi-lang-java=\" wafGroup \"\u003e waf_group \u003c/span\u003eappears in tags, this value can be filled in, and only one list of six digits in string format can appear with regultypes.\n"},"regularTypes":{"type":"array","items":{"type":"string"},"description":"Regular rule type, when\u003cspan pulumi-lang-nodejs=\" wafGroup \" pulumi-lang-dotnet=\" WafGroup \" pulumi-lang-go=\" wafGroup \" pulumi-lang-python=\" waf_group \" pulumi-lang-yaml=\" wafGroup \" pulumi-lang-java=\" wafGroup \"\u003e waf_group \u003c/span\u003eappears in tags, this value can be filled in, optional values:[\"sqli\", \"xss\", \u003cspan pulumi-lang-nodejs=\"\"codeExec\"\" pulumi-lang-dotnet=\"\"CodeExec\"\" pulumi-lang-go=\"\"codeExec\"\" pulumi-lang-python=\"\"code_exec\"\" pulumi-lang-yaml=\"\"codeExec\"\" pulumi-lang-java=\"\"codeExec\"\"\u003e\"code_exec\"\u003c/span\u003e, \"crlf\", \"lfileii\", \"rfileii\", \"webshell\", \"vvip\", \"other\"]\n"},"remoteAddrs":{"type":"array","items":{"type":"string"},"description":"Filter by IP address.\n"},"ruleName":{"type":"string","description":"The name of the protection rule. The name can be up to 64 characters in length and can contain letters, digits, and underscores (_). **NOTE:** This parameter cannot be modified when policy is of type \u003cspan pulumi-lang-nodejs=\"`regionBlock`\" pulumi-lang-dotnet=\"`RegionBlock`\" pulumi-lang-go=\"`regionBlock`\" pulumi-lang-python=\"`region_block`\" pulumi-lang-yaml=\"`regionBlock`\" pulumi-lang-java=\"`regionBlock`\"\u003e`region_block`\u003c/span\u003e.\n"},"scenes":{"type":"array","items":{"type":"string"},"description":"The types of the protection policies.\n"},"status":{"type":"string","description":"The status of the waf rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Default value: on.\n"},"wafGroupIds":{"type":"string","description":"The id of the waf rule group. The default value is \"1012\". Multiple rules are separated by commas. **NOTE:** This parameter is valid only when policy is of type \u003cspan pulumi-lang-nodejs=\"`wafGroup`\" pulumi-lang-dotnet=\"`WafGroup`\" pulumi-lang-go=\"`wafGroup`\" pulumi-lang-python=\"`waf_group`\" pulumi-lang-yaml=\"`wafGroup`\" pulumi-lang-java=\"`wafGroup`\"\u003e`waf_group`\u003c/span\u003e.\n"}},"requiredInputs":["policyId","ruleName"],"stateInputs":{"description":"Input properties used for looking up and filtering WafRule resources.\n","properties":{"action":{"type":"string","description":"Specifies the action of the rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`block`\" pulumi-lang-dotnet=\"`Block`\" pulumi-lang-go=\"`block`\" pulumi-lang-python=\"`block`\" pulumi-lang-yaml=\"`block`\" pulumi-lang-java=\"`block`\"\u003e`block`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`monitor`\" pulumi-lang-dotnet=\"`Monitor`\" pulumi-lang-go=\"`monitor`\" pulumi-lang-python=\"`monitor`\" pulumi-lang-yaml=\"`monitor`\" pulumi-lang-java=\"`monitor`\"\u003e`monitor`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`js`\" pulumi-lang-dotnet=\"`Js`\" pulumi-lang-go=\"`js`\" pulumi-lang-python=\"`js`\" pulumi-lang-yaml=\"`js`\" pulumi-lang-java=\"`js`\"\u003e`js`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deny`\" pulumi-lang-dotnet=\"`Deny`\" pulumi-lang-go=\"`deny`\" pulumi-lang-python=\"`deny`\" pulumi-lang-yaml=\"`deny`\" pulumi-lang-java=\"`deny`\"\u003e`deny`\u003c/span\u003e.\n"},"ccStatus":{"type":"string","description":"Specifies whether to enable rate limiting. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. **NOTE:** This parameter is required when policy is of type \u003cspan pulumi-lang-nodejs=\"`customAcl`\" pulumi-lang-dotnet=\"`CustomAcl`\" pulumi-lang-go=\"`customAcl`\" pulumi-lang-python=\"`custom_acl`\" pulumi-lang-yaml=\"`customAcl`\" pulumi-lang-java=\"`customAcl`\"\u003e`custom_acl`\u003c/span\u003e.\n"},"cnRegionList":{"type":"string","description":"The blocked regions in the Chinese mainland, separated by commas (,).\n"},"conditions":{"type":"array","items":{"$ref":"#/types/alicloud:dcdn/WafRuleCondition:WafRuleCondition"},"description":"Conditions that trigger the rule. See \u003cspan pulumi-lang-nodejs=\"`conditions`\" pulumi-lang-dotnet=\"`Conditions`\" pulumi-lang-go=\"`conditions`\" pulumi-lang-python=\"`conditions`\" pulumi-lang-yaml=\"`conditions`\" pulumi-lang-java=\"`conditions`\"\u003e`conditions`\u003c/span\u003e below. **NOTE:** This parameter is required when policy is of type \u003cspan pulumi-lang-nodejs=\"`customAcl`\" pulumi-lang-dotnet=\"`CustomAcl`\" pulumi-lang-go=\"`customAcl`\" pulumi-lang-python=\"`custom_acl`\" pulumi-lang-yaml=\"`customAcl`\" pulumi-lang-java=\"`customAcl`\"\u003e`custom_acl`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`whitelist`\" pulumi-lang-dotnet=\"`Whitelist`\" pulumi-lang-go=\"`whitelist`\" pulumi-lang-python=\"`whitelist`\" pulumi-lang-yaml=\"`whitelist`\" pulumi-lang-java=\"`whitelist`\"\u003e`whitelist`\u003c/span\u003e.\n"},"defenseScene":{"type":"string","description":"The type of protection policy. The following scenarios are supported:-waf_group:Web basic protection-custom_acl: Custom protection policy-whitelist: whitelist\n"},"effect":{"type":"string","description":"The effective scope of the rate limiting blacklist. If you set ccStatus to on, you must configure this parameter. Valid values: \u003cspan pulumi-lang-nodejs=\"`rule`\" pulumi-lang-dotnet=\"`Rule`\" pulumi-lang-go=\"`rule`\" pulumi-lang-python=\"`rule`\" pulumi-lang-yaml=\"`rule`\" pulumi-lang-java=\"`rule`\"\u003e`rule`\u003c/span\u003e (takes effect for the current rule) and \u003cspan pulumi-lang-nodejs=\"`service`\" pulumi-lang-dotnet=\"`Service`\" pulumi-lang-go=\"`service`\" pulumi-lang-python=\"`service`\" pulumi-lang-yaml=\"`service`\" pulumi-lang-java=\"`service`\"\u003e`service`\u003c/span\u003e (takes effect globally).\n"},"gmtModified":{"type":"string","description":"Revised the time. The date format is based on ISO8601 notation and uses UTC +0 time in the format of yyyy-MM-ddTHH:mm:ssZ.\n"},"otherRegionList":{"type":"string","description":"Blocked regions outside the Chinese mainland, separated by commas (,).\n"},"policyId":{"type":"string","description":"The protection policy ID.\n","willReplaceOnChanges":true},"rateLimit":{"$ref":"#/types/alicloud:dcdn/WafRuleRateLimit:WafRuleRateLimit","description":"The rules of rate limiting. If you set \u003cspan pulumi-lang-nodejs=\"`ccStatus`\" pulumi-lang-dotnet=\"`CcStatus`\" pulumi-lang-go=\"`ccStatus`\" pulumi-lang-python=\"`cc_status`\" pulumi-lang-yaml=\"`ccStatus`\" pulumi-lang-java=\"`ccStatus`\"\u003e`cc_status`\u003c/span\u003e to on, you must configure this parameter. See \u003cspan pulumi-lang-nodejs=\"`rateLimit`\" pulumi-lang-dotnet=\"`RateLimit`\" pulumi-lang-go=\"`rateLimit`\" pulumi-lang-python=\"`rate_limit`\" pulumi-lang-yaml=\"`rateLimit`\" pulumi-lang-java=\"`rateLimit`\"\u003e`rate_limit`\u003c/span\u003e below.\n"},"regularRules":{"type":"array","items":{"type":"string"},"description":"The regular expression.e, when\u003cspan pulumi-lang-nodejs=\" wafGroup \" pulumi-lang-dotnet=\" WafGroup \" pulumi-lang-go=\" wafGroup \" pulumi-lang-python=\" waf_group \" pulumi-lang-yaml=\" wafGroup \" pulumi-lang-java=\" wafGroup \"\u003e waf_group \u003c/span\u003eappears in tags, this value can be filled in, and only one list of six digits in string format can appear with regultypes.\n"},"regularTypes":{"type":"array","items":{"type":"string"},"description":"Regular rule type, when\u003cspan pulumi-lang-nodejs=\" wafGroup \" pulumi-lang-dotnet=\" WafGroup \" pulumi-lang-go=\" wafGroup \" pulumi-lang-python=\" waf_group \" pulumi-lang-yaml=\" wafGroup \" pulumi-lang-java=\" wafGroup \"\u003e waf_group \u003c/span\u003eappears in tags, this value can be filled in, optional values:[\"sqli\", \"xss\", \u003cspan pulumi-lang-nodejs=\"\"codeExec\"\" pulumi-lang-dotnet=\"\"CodeExec\"\" pulumi-lang-go=\"\"codeExec\"\" pulumi-lang-python=\"\"code_exec\"\" pulumi-lang-yaml=\"\"codeExec\"\" pulumi-lang-java=\"\"codeExec\"\"\u003e\"code_exec\"\u003c/span\u003e, \"crlf\", \"lfileii\", \"rfileii\", \"webshell\", \"vvip\", \"other\"]\n"},"remoteAddrs":{"type":"array","items":{"type":"string"},"description":"Filter by IP address.\n"},"ruleName":{"type":"string","description":"The name of the protection rule. The name can be up to 64 characters in length and can contain letters, digits, and underscores (_). **NOTE:** This parameter cannot be modified when policy is of type \u003cspan pulumi-lang-nodejs=\"`regionBlock`\" pulumi-lang-dotnet=\"`RegionBlock`\" pulumi-lang-go=\"`regionBlock`\" pulumi-lang-python=\"`region_block`\" pulumi-lang-yaml=\"`regionBlock`\" pulumi-lang-java=\"`regionBlock`\"\u003e`region_block`\u003c/span\u003e.\n"},"scenes":{"type":"array","items":{"type":"string"},"description":"The types of the protection policies.\n"},"status":{"type":"string","description":"The status of the waf rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Default value: on.\n"},"wafGroupIds":{"type":"string","description":"The id of the waf rule group. The default value is \"1012\". Multiple rules are separated by commas. **NOTE:** This parameter is valid only when policy is of type \u003cspan pulumi-lang-nodejs=\"`wafGroup`\" pulumi-lang-dotnet=\"`WafGroup`\" pulumi-lang-go=\"`wafGroup`\" pulumi-lang-python=\"`waf_group`\" pulumi-lang-yaml=\"`wafGroup`\" pulumi-lang-java=\"`wafGroup`\"\u003e`waf_group`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:ddos/basicDefenseThreshold:BasicDefenseThreshold":{"description":"Provides a Ddos Basic defense threshold resource.\n\nFor information about Ddos Basic Antiddos and how to use it, see [What is Defense Threshold](https://www.alibabacloud.com/help/en/ddos-protection/latest/modifydefensethreshold).\n\n\u003e **NOTE:** Available since v1.168.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new alicloud.ecs.EipAddress(\"default\", {\n    addressName: name,\n    isp: \"BGP\",\n    internetChargeType: \"PayByBandwidth\",\n    paymentType: \"PayAsYouGo\",\n});\nconst defaultBasicDefenseThreshold = new alicloud.ddos.BasicDefenseThreshold(\"default\", {\n    instanceId: _default.id,\n    ddosType: \"defense\",\n    instanceType: \"eip\",\n    bps: 390,\n    pps: 90000,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.ecs.EipAddress(\"default\",\n    address_name=name,\n    isp=\"BGP\",\n    internet_charge_type=\"PayByBandwidth\",\n    payment_type=\"PayAsYouGo\")\ndefault_basic_defense_threshold = alicloud.ddos.BasicDefenseThreshold(\"default\",\n    instance_id=default.id,\n    ddos_type=\"defense\",\n    instance_type=\"eip\",\n    bps=390,\n    pps=90000)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new AliCloud.Ecs.EipAddress(\"default\", new()\n    {\n        AddressName = name,\n        Isp = \"BGP\",\n        InternetChargeType = \"PayByBandwidth\",\n        PaymentType = \"PayAsYouGo\",\n    });\n\n    var defaultBasicDefenseThreshold = new AliCloud.Ddos.BasicDefenseThreshold(\"default\", new()\n    {\n        InstanceId = @default.Id,\n        DdosType = \"defense\",\n        InstanceType = \"eip\",\n        Bps = 390,\n        Pps = 90000,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := ecs.NewEipAddress(ctx, \"default\", \u0026ecs.EipAddressArgs{\n\t\t\tAddressName:        pulumi.String(name),\n\t\t\tIsp:                pulumi.String(\"BGP\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByBandwidth\"),\n\t\t\tPaymentType:        pulumi.String(\"PayAsYouGo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ddos.NewBasicDefenseThreshold(ctx, \"default\", \u0026ddos.BasicDefenseThresholdArgs{\n\t\t\tInstanceId:   _default.ID(),\n\t\t\tDdosType:     pulumi.String(\"defense\"),\n\t\t\tInstanceType: pulumi.String(\"eip\"),\n\t\t\tBps:          pulumi.Int(390),\n\t\t\tPps:          pulumi.Int(90000),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAddressArgs;\nimport com.pulumi.alicloud.ddos.BasicDefenseThreshold;\nimport com.pulumi.alicloud.ddos.BasicDefenseThresholdArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new EipAddress(\"default\", EipAddressArgs.builder()\n            .addressName(name)\n            .isp(\"BGP\")\n            .internetChargeType(\"PayByBandwidth\")\n            .paymentType(\"PayAsYouGo\")\n            .build());\n\n        var defaultBasicDefenseThreshold = new BasicDefenseThreshold(\"defaultBasicDefenseThreshold\", BasicDefenseThresholdArgs.builder()\n            .instanceId(default_.id())\n            .ddosType(\"defense\")\n            .instanceType(\"eip\")\n            .bps(390)\n            .pps(90000)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:ecs:EipAddress\n    properties:\n      addressName: ${name}\n      isp: BGP\n      internetChargeType: PayByBandwidth\n      paymentType: PayAsYouGo\n  defaultBasicDefenseThreshold:\n    type: alicloud:ddos:BasicDefenseThreshold\n    name: default\n    properties:\n      instanceId: ${default.id}\n      ddosType: defense\n      instanceType: eip\n      bps: 390\n      pps: 90000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDdos Basic Antiddos can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ddos/basicDefenseThreshold:BasicDefenseThreshold example \u003cinstance_id\u003e:\u003cinstance_type\u003e:\u003cddos_type\u003e\n```\n\n","properties":{"bps":{"type":"integer","description":"Specifies the traffic scrubbing threshold. Unit: Mbit/s. The traffic scrubbing threshold cannot exceed the peak inbound or outbound Internet traffic, whichever is larger, of the asset.\n"},"ddosType":{"type":"string","description":"The type of the threshold to query. Valid values: \u003cspan pulumi-lang-nodejs=\"`defense`\" pulumi-lang-dotnet=\"`Defense`\" pulumi-lang-go=\"`defense`\" pulumi-lang-python=\"`defense`\" pulumi-lang-yaml=\"`defense`\" pulumi-lang-java=\"`defense`\"\u003e`defense`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`blackhole`\" pulumi-lang-dotnet=\"`Blackhole`\" pulumi-lang-go=\"`blackhole`\" pulumi-lang-python=\"`blackhole`\" pulumi-lang-yaml=\"`blackhole`\" pulumi-lang-java=\"`blackhole`\"\u003e`blackhole`\u003c/span\u003e.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"instanceType":{"type":"string","description":"The instance type of the public IP address asset. Value: \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`slb`\" pulumi-lang-dotnet=\"`Slb`\" pulumi-lang-go=\"`slb`\" pulumi-lang-python=\"`slb`\" pulumi-lang-yaml=\"`slb`\" pulumi-lang-java=\"`slb`\"\u003e`slb`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`eip`\" pulumi-lang-dotnet=\"`Eip`\" pulumi-lang-go=\"`eip`\" pulumi-lang-python=\"`eip`\" pulumi-lang-yaml=\"`eip`\" pulumi-lang-java=\"`eip`\"\u003e`eip`\u003c/span\u003e.\n"},"internetIp":{"type":"string","description":"The Internet IP address.\n"},"isAuto":{"type":"boolean","description":"Whether it is the system default threshold. Value:\n"},"maxBps":{"type":"integer","description":"The maximum traffic scrubbing threshold. Unit: Mbit/s.\n"},"maxPps":{"type":"integer","description":"The maximum packet scrubbing threshold. Unit: pps.\n"},"pps":{"type":"integer","description":"The current message number cleaning threshold. Unit: pps.\n"}},"required":["bps","ddosType","instanceId","instanceType","internetIp","isAuto","maxBps","maxPps","pps"],"inputProperties":{"bps":{"type":"integer","description":"Specifies the traffic scrubbing threshold. Unit: Mbit/s. The traffic scrubbing threshold cannot exceed the peak inbound or outbound Internet traffic, whichever is larger, of the asset.\n"},"ddosType":{"type":"string","description":"The type of the threshold to query. Valid values: \u003cspan pulumi-lang-nodejs=\"`defense`\" pulumi-lang-dotnet=\"`Defense`\" pulumi-lang-go=\"`defense`\" pulumi-lang-python=\"`defense`\" pulumi-lang-yaml=\"`defense`\" pulumi-lang-java=\"`defense`\"\u003e`defense`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`blackhole`\" pulumi-lang-dotnet=\"`Blackhole`\" pulumi-lang-go=\"`blackhole`\" pulumi-lang-python=\"`blackhole`\" pulumi-lang-yaml=\"`blackhole`\" pulumi-lang-java=\"`blackhole`\"\u003e`blackhole`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The instance type of the public IP address asset. Value: \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`slb`\" pulumi-lang-dotnet=\"`Slb`\" pulumi-lang-go=\"`slb`\" pulumi-lang-python=\"`slb`\" pulumi-lang-yaml=\"`slb`\" pulumi-lang-java=\"`slb`\"\u003e`slb`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`eip`\" pulumi-lang-dotnet=\"`Eip`\" pulumi-lang-go=\"`eip`\" pulumi-lang-python=\"`eip`\" pulumi-lang-yaml=\"`eip`\" pulumi-lang-java=\"`eip`\"\u003e`eip`\u003c/span\u003e.\n","willReplaceOnChanges":true},"internetIp":{"type":"string","description":"The Internet IP address.\n"},"isAuto":{"type":"boolean","description":"Whether it is the system default threshold. Value:\n"},"pps":{"type":"integer","description":"The current message number cleaning threshold. Unit: pps.\n"}},"requiredInputs":["ddosType","instanceId","instanceType"],"stateInputs":{"description":"Input properties used for looking up and filtering BasicDefenseThreshold resources.\n","properties":{"bps":{"type":"integer","description":"Specifies the traffic scrubbing threshold. Unit: Mbit/s. The traffic scrubbing threshold cannot exceed the peak inbound or outbound Internet traffic, whichever is larger, of the asset.\n"},"ddosType":{"type":"string","description":"The type of the threshold to query. Valid values: \u003cspan pulumi-lang-nodejs=\"`defense`\" pulumi-lang-dotnet=\"`Defense`\" pulumi-lang-go=\"`defense`\" pulumi-lang-python=\"`defense`\" pulumi-lang-yaml=\"`defense`\" pulumi-lang-java=\"`defense`\"\u003e`defense`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`blackhole`\" pulumi-lang-dotnet=\"`Blackhole`\" pulumi-lang-go=\"`blackhole`\" pulumi-lang-python=\"`blackhole`\" pulumi-lang-yaml=\"`blackhole`\" pulumi-lang-java=\"`blackhole`\"\u003e`blackhole`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The instance type of the public IP address asset. Value: \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`slb`\" pulumi-lang-dotnet=\"`Slb`\" pulumi-lang-go=\"`slb`\" pulumi-lang-python=\"`slb`\" pulumi-lang-yaml=\"`slb`\" pulumi-lang-java=\"`slb`\"\u003e`slb`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`eip`\" pulumi-lang-dotnet=\"`Eip`\" pulumi-lang-go=\"`eip`\" pulumi-lang-python=\"`eip`\" pulumi-lang-yaml=\"`eip`\" pulumi-lang-java=\"`eip`\"\u003e`eip`\u003c/span\u003e.\n","willReplaceOnChanges":true},"internetIp":{"type":"string","description":"The Internet IP address.\n"},"isAuto":{"type":"boolean","description":"Whether it is the system default threshold. Value:\n"},"maxBps":{"type":"integer","description":"The maximum traffic scrubbing threshold. Unit: Mbit/s.\n"},"maxPps":{"type":"integer","description":"The maximum packet scrubbing threshold. Unit: pps.\n"},"pps":{"type":"integer","description":"The current message number cleaning threshold. Unit: pps.\n"}},"type":"object"}},"alicloud:ddos/basicThreshold:BasicThreshold":{"description":"Provides a Ddos Basic Threshold resource.\n\nFor information about Ddos Basic Threshold and how to use it, see [What is Threshold](https://www.alibabacloud.com/help/en/ddos-protection/latest/describe-ip-ddosthreshold).\n\n\u003e **NOTE:** Available since v1.183.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    instanceTypeFamily: \"ecs.sn1ne\",\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"192.168.192.0/24\",\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    instanceName: name,\n    securityGroups: [defaultSecurityGroup].map(__item =\u003e __item.id),\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 10,\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceChargeType: \"PostPaid\",\n    systemDiskCategory: \"cloud_efficiency\",\n    vswitchId: defaultSwitch.id,\n});\nconst example = new alicloud.ddos.BasicThreshold(\"example\", {\n    instanceType: \"ecs\",\n    instanceId: defaultInstance.id,\n    internetIp: defaultInstance.publicIp,\n    bps: 100,\n    pps: 60000,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    instance_type_family=\"ecs.sn1ne\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"192.168.192.0/24\",\n    zone_id=default.ids[0])\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    instance_name=name,\n    security_groups=[__item.id for __item in [default_security_group]],\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=10,\n    availability_zone=default.zones[0].id,\n    instance_charge_type=\"PostPaid\",\n    system_disk_category=\"cloud_efficiency\",\n    vswitch_id=default_switch.id)\nexample = alicloud.ddos.BasicThreshold(\"example\",\n    instance_type=\"ecs\",\n    instance_id=default_instance.id,\n    internet_ip=default_instance.public_ip,\n    bps=100,\n    pps=60000)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"192.168.192.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        InstanceName = name,\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup,\n        }.Select(__item =\u003e __item.Id).ToList(),\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 10,\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskCategory = \"cloud_efficiency\",\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var example = new AliCloud.Ddos.BasicThreshold(\"example\", new()\n    {\n        InstanceType = \"ecs\",\n        InstanceId = defaultInstance.Id,\n        InternetIp = defaultInstance.PublicIp,\n        Bps = 100,\n        Pps = 60000,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"tf-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableDiskCategory: pulumi.StringRef(\"cloud_efficiency\"),\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\nInstanceTypeFamily: pulumi.StringRef(\"ecs.sn1ne\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\nMostRecent: pulumi.BoolRef(true),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"192.168.192.0/24\"),\nZoneId: pulumi.String(_default.Ids[0]),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\ndefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\nImageId: pulumi.String(defaultGetImages.Images[0].Id),\nInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\nInstanceName: pulumi.String(name),\nSecurityGroups: splat0,\nInternetChargeType: pulumi.String(\"PayByTraffic\"),\nInternetMaxBandwidthOut: pulumi.Int(10),\nAvailabilityZone: pulumi.String(_default.Zones[0].Id),\nInstanceChargeType: pulumi.String(\"PostPaid\"),\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nVswitchId: defaultSwitch.ID(),\n})\nif err != nil {\nreturn err\n}\n_, err = ddos.NewBasicThreshold(ctx, \"example\", \u0026ddos.BasicThresholdArgs{\nInstanceType: pulumi.String(\"ecs\"),\nInstanceId: defaultInstance.ID(),\nInternetIp: defaultInstance.PublicIp,\nBps: pulumi.Int(100),\nPps: pulumi.Int(60000),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.ddos.BasicThreshold;\nimport com.pulumi.alicloud.ddos.BasicThresholdArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"192.168.192.0/24\")\n            .zoneId(default_.ids()[0])\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .instanceName(name)\n            .securityGroups(defaultSecurityGroup.stream().map(element -\u003e element.id()).collect(toList()))\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(10)\n            .availabilityZone(default_.zones()[0].id())\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var example = new BasicThreshold(\"example\", BasicThresholdArgs.builder()\n            .instanceType(\"ecs\")\n            .instanceId(defaultInstance.id())\n            .internetIp(defaultInstance.publicIp())\n            .bps(100)\n            .pps(60000)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDdos Basic Threshold can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ddos/basicThreshold:BasicThreshold example \u003cinstance_type\u003e:\u003cinstance_id\u003e:\u003cinternet_ip\u003e\n```\n\n","properties":{"bps":{"type":"integer","description":"Specifies the traffic scrubbing threshold. Unit: Mbit/s. The traffic scrubbing threshold cannot exceed the peak inbound or outbound Internet traffic, whichever is larger, of the asset.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"instanceType":{"type":"string","description":"The type of the Instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`slb`\" pulumi-lang-dotnet=\"`Slb`\" pulumi-lang-go=\"`slb`\" pulumi-lang-python=\"`slb`\" pulumi-lang-yaml=\"`slb`\" pulumi-lang-java=\"`slb`\"\u003e`slb`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`eip`\" pulumi-lang-dotnet=\"`Eip`\" pulumi-lang-go=\"`eip`\" pulumi-lang-python=\"`eip`\" pulumi-lang-yaml=\"`eip`\" pulumi-lang-java=\"`eip`\"\u003e`eip`\u003c/span\u003e.\n"},"internetIp":{"type":"string","description":"The IP address of the public IP address asset.\n"},"maxBps":{"type":"integer","description":"Maximum flow cleaning threshold. Unit: Mbps.\n"},"maxPps":{"type":"integer","description":"The maximum number of messages cleaning threshold. Unit: pps.\n"},"pps":{"type":"integer","description":"The current message number cleaning threshold. Unit: pps.\n"}},"required":["bps","instanceId","instanceType","internetIp","maxBps","maxPps","pps"],"inputProperties":{"bps":{"type":"integer","description":"Specifies the traffic scrubbing threshold. Unit: Mbit/s. The traffic scrubbing threshold cannot exceed the peak inbound or outbound Internet traffic, whichever is larger, of the asset.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of the Instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`slb`\" pulumi-lang-dotnet=\"`Slb`\" pulumi-lang-go=\"`slb`\" pulumi-lang-python=\"`slb`\" pulumi-lang-yaml=\"`slb`\" pulumi-lang-java=\"`slb`\"\u003e`slb`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`eip`\" pulumi-lang-dotnet=\"`Eip`\" pulumi-lang-go=\"`eip`\" pulumi-lang-python=\"`eip`\" pulumi-lang-yaml=\"`eip`\" pulumi-lang-java=\"`eip`\"\u003e`eip`\u003c/span\u003e.\n","willReplaceOnChanges":true},"internetIp":{"type":"string","description":"The IP address of the public IP address asset.\n","willReplaceOnChanges":true},"pps":{"type":"integer","description":"The current message number cleaning threshold. Unit: pps.\n"}},"requiredInputs":["bps","instanceId","instanceType","internetIp","pps"],"stateInputs":{"description":"Input properties used for looking up and filtering BasicThreshold resources.\n","properties":{"bps":{"type":"integer","description":"Specifies the traffic scrubbing threshold. Unit: Mbit/s. The traffic scrubbing threshold cannot exceed the peak inbound or outbound Internet traffic, whichever is larger, of the asset.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of the Instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`slb`\" pulumi-lang-dotnet=\"`Slb`\" pulumi-lang-go=\"`slb`\" pulumi-lang-python=\"`slb`\" pulumi-lang-yaml=\"`slb`\" pulumi-lang-java=\"`slb`\"\u003e`slb`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`eip`\" pulumi-lang-dotnet=\"`Eip`\" pulumi-lang-go=\"`eip`\" pulumi-lang-python=\"`eip`\" pulumi-lang-yaml=\"`eip`\" pulumi-lang-java=\"`eip`\"\u003e`eip`\u003c/span\u003e.\n","willReplaceOnChanges":true},"internetIp":{"type":"string","description":"The IP address of the public IP address asset.\n","willReplaceOnChanges":true},"maxBps":{"type":"integer","description":"Maximum flow cleaning threshold. Unit: Mbps.\n"},"maxPps":{"type":"integer","description":"The maximum number of messages cleaning threshold. Unit: pps.\n"},"pps":{"type":"integer","description":"The current message number cleaning threshold. Unit: pps.\n"}},"type":"object"}},"alicloud:ddos/bgpIp:BgpIp":{"description":"Provides a Anti-DDoS Pro (DdosBgp) Ip resource.\n\n\n\nFor information about Anti-DDoS Pro (DdosBgp) Ip and how to use it, see [What is Ip](https://www.alibabacloud.com/help/en/ddos-protection/latest/addip).\n\n\u003e **NOTE:** Available since v1.180.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getAccount({});\nconst defaultDdosBgpInstance = new alicloud.ddos.DdosBgpInstance(\"default\", {\n    name: name,\n    baseBandwidth: 20,\n    bandwidth: -1,\n    ipCount: 100,\n    ipType: \"IPv4\",\n    normalBandwidth: 100,\n    type: \"Enterprise\",\n});\nconst defaultEipAddress = new alicloud.ecs.EipAddress(\"default\", {addressName: name});\nconst defaultBgpIp = new alicloud.ddos.BgpIp(\"default\", {\n    instanceId: defaultDdosBgpInstance.id,\n    ip: defaultEipAddress.ipAddress,\n    memberUid: _default.then(_default =\u003e _default.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_account()\ndefault_ddos_bgp_instance = alicloud.ddos.DdosBgpInstance(\"default\",\n    name=name,\n    base_bandwidth=20,\n    bandwidth=-1,\n    ip_count=100,\n    ip_type=\"IPv4\",\n    normal_bandwidth=100,\n    type=\"Enterprise\")\ndefault_eip_address = alicloud.ecs.EipAddress(\"default\", address_name=name)\ndefault_bgp_ip = alicloud.ddos.BgpIp(\"default\",\n    instance_id=default_ddos_bgp_instance.id,\n    ip=default_eip_address.ip_address,\n    member_uid=default.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultDdosBgpInstance = new AliCloud.Ddos.DdosBgpInstance(\"default\", new()\n    {\n        Name = name,\n        BaseBandwidth = 20,\n        Bandwidth = -1,\n        IpCount = 100,\n        IpType = \"IPv4\",\n        NormalBandwidth = 100,\n        Type = \"Enterprise\",\n    });\n\n    var defaultEipAddress = new AliCloud.Ecs.EipAddress(\"default\", new()\n    {\n        AddressName = name,\n    });\n\n    var defaultBgpIp = new AliCloud.Ddos.BgpIp(\"default\", new()\n    {\n        InstanceId = defaultDdosBgpInstance.Id,\n        Ip = defaultEipAddress.IpAddress,\n        MemberUid = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDdosBgpInstance, err := ddos.NewDdosBgpInstance(ctx, \"default\", \u0026ddos.DdosBgpInstanceArgs{\n\t\t\tName:            pulumi.String(name),\n\t\t\tBaseBandwidth:   pulumi.Int(20),\n\t\t\tBandwidth:       pulumi.Int(-1),\n\t\t\tIpCount:         pulumi.Int(100),\n\t\t\tIpType:          pulumi.String(\"IPv4\"),\n\t\t\tNormalBandwidth: pulumi.Int(100),\n\t\t\tType:            pulumi.String(\"Enterprise\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEipAddress, err := ecs.NewEipAddress(ctx, \"default\", \u0026ecs.EipAddressArgs{\n\t\t\tAddressName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ddos.NewBgpIp(ctx, \"default\", \u0026ddos.BgpIpArgs{\n\t\t\tInstanceId: defaultDdosBgpInstance.ID(),\n\t\t\tIp:         defaultEipAddress.IpAddress,\n\t\t\tMemberUid:  pulumi.String(_default.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.ddos.DdosBgpInstance;\nimport com.pulumi.alicloud.ddos.DdosBgpInstanceArgs;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAddressArgs;\nimport com.pulumi.alicloud.ddos.BgpIp;\nimport com.pulumi.alicloud.ddos.BgpIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var defaultDdosBgpInstance = new DdosBgpInstance(\"defaultDdosBgpInstance\", DdosBgpInstanceArgs.builder()\n            .name(name)\n            .baseBandwidth(20)\n            .bandwidth(-1)\n            .ipCount(100)\n            .ipType(\"IPv4\")\n            .normalBandwidth(100)\n            .type(\"Enterprise\")\n            .build());\n\n        var defaultEipAddress = new EipAddress(\"defaultEipAddress\", EipAddressArgs.builder()\n            .addressName(name)\n            .build());\n\n        var defaultBgpIp = new BgpIp(\"defaultBgpIp\", BgpIpArgs.builder()\n            .instanceId(defaultDdosBgpInstance.id())\n            .ip(defaultEipAddress.ipAddress())\n            .memberUid(default_.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultDdosBgpInstance:\n    type: alicloud:ddos:DdosBgpInstance\n    name: default\n    properties:\n      name: ${name}\n      baseBandwidth: 20\n      bandwidth: -1\n      ipCount: 100\n      ipType: IPv4\n      normalBandwidth: 100\n      type: Enterprise\n  defaultEipAddress:\n    type: alicloud:ecs:EipAddress\n    name: default\n    properties:\n      addressName: ${name}\n  defaultBgpIp:\n    type: alicloud:ddos:BgpIp\n    name: default\n    properties:\n      instanceId: ${defaultDdosBgpInstance.id}\n      ip: ${defaultEipAddress.ipAddress}\n      memberUid: ${default.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAnti-DDoS Pro (DdosBgp) Ip can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ddos/bgpIp:BgpIp example \u003cinstance_id\u003e:\u003cip\u003e\n```\n\n","properties":{"instanceId":{"type":"string","description":"The ID of the Anti-DDoS Origin instance.\n"},"ip":{"type":"string","description":"The IP address that you want to add.\n"},"memberUid":{"type":"string","description":"The member to which the asset belongs.\n"},"resourceGroupId":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e has been deprecated from provider version 1.259.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e has been deprecated from provider version 1.259.0."},"status":{"type":"string","description":"The status of the IP address.\n"}},"required":["instanceId","ip","memberUid","status"],"inputProperties":{"instanceId":{"type":"string","description":"The ID of the Anti-DDoS Origin instance.\n","willReplaceOnChanges":true},"ip":{"type":"string","description":"The IP address that you want to add.\n","willReplaceOnChanges":true},"memberUid":{"type":"string","description":"The member to which the asset belongs.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e has been deprecated from provider version 1.259.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e has been deprecated from provider version 1.259.0."}},"requiredInputs":["instanceId","ip"],"stateInputs":{"description":"Input properties used for looking up and filtering BgpIp resources.\n","properties":{"instanceId":{"type":"string","description":"The ID of the Anti-DDoS Origin instance.\n","willReplaceOnChanges":true},"ip":{"type":"string","description":"The IP address that you want to add.\n","willReplaceOnChanges":true},"memberUid":{"type":"string","description":"The member to which the asset belongs.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e has been deprecated from provider version 1.259.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e has been deprecated from provider version 1.259.0."},"status":{"type":"string","description":"The status of the IP address.\n"}},"type":"object"}},"alicloud:ddos/bgpPolicy:BgpPolicy":{"description":"Provides a Ddos Bgp Policy resource.\n\nDdos protection policy.\n\nFor information about Ddos Bgp Policy and how to use it, see [What is Policy](https://www.alibabacloud.com/help/en/anti-ddos/anti-ddos-origin/developer-reference/api-ddosbgp-2018-07-20-createpolicy).\n\n\u003e **NOTE:** Available since v1.226.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_exampleacc_bgp32594\";\nconst policyName = config.get(\"policyName\") || \"example_l4_policy\";\nconst _default = new alicloud.ddos.BgpPolicy(\"default\", {\n    content: {\n        enableDefense: false,\n        layer4RuleLists: [{\n            method: \"hex\",\n            match: \"1\",\n            action: \"1\",\n            limited: 0,\n            conditionLists: [{\n                arg: \"3C\",\n                position: 1,\n                depth: 2,\n            }],\n            name: \"11\",\n            priority: 10,\n        }],\n    },\n    type: \"l4\",\n    policyName: \"tf_exampleacc_bgp32594\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_exampleacc_bgp32594\"\npolicy_name = config.get(\"policyName\")\nif policy_name is None:\n    policy_name = \"example_l4_policy\"\ndefault = alicloud.ddos.BgpPolicy(\"default\",\n    content={\n        \"enable_defense\": False,\n        \"layer4_rule_lists\": [{\n            \"method\": \"hex\",\n            \"match\": \"1\",\n            \"action\": \"1\",\n            \"limited\": 0,\n            \"condition_lists\": [{\n                \"arg\": \"3C\",\n                \"position\": 1,\n                \"depth\": 2,\n            }],\n            \"name\": \"11\",\n            \"priority\": 10,\n        }],\n    },\n    type=\"l4\",\n    policy_name=\"tf_exampleacc_bgp32594\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_exampleacc_bgp32594\";\n    var policyName = config.Get(\"policyName\") ?? \"example_l4_policy\";\n    var @default = new AliCloud.Ddos.BgpPolicy(\"default\", new()\n    {\n        Content = new AliCloud.Ddos.Inputs.BgpPolicyContentArgs\n        {\n            EnableDefense = false,\n            Layer4RuleLists = new[]\n            {\n                new AliCloud.Ddos.Inputs.BgpPolicyContentLayer4RuleListArgs\n                {\n                    Method = \"hex\",\n                    Match = \"1\",\n                    Action = \"1\",\n                    Limited = 0,\n                    ConditionLists = new[]\n                    {\n                        new AliCloud.Ddos.Inputs.BgpPolicyContentLayer4RuleListConditionListArgs\n                        {\n                            Arg = \"3C\",\n                            Position = 1,\n                            Depth = 2,\n                        },\n                    },\n                    Name = \"11\",\n                    Priority = 10,\n                },\n            },\n        },\n        Type = \"l4\",\n        PolicyName = \"tf_exampleacc_bgp32594\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_exampleacc_bgp32594\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tpolicyName := \"example_l4_policy\"\n\t\tif param := cfg.Get(\"policyName\"); param != \"\" {\n\t\t\tpolicyName = param\n\t\t}\n\t\t_, err := ddos.NewBgpPolicy(ctx, \"default\", \u0026ddos.BgpPolicyArgs{\n\t\t\tContent: \u0026ddos.BgpPolicyContentArgs{\n\t\t\t\tEnableDefense: pulumi.Bool(false),\n\t\t\t\tLayer4RuleLists: ddos.BgpPolicyContentLayer4RuleListArray{\n\t\t\t\t\t\u0026ddos.BgpPolicyContentLayer4RuleListArgs{\n\t\t\t\t\t\tMethod:  pulumi.String(\"hex\"),\n\t\t\t\t\t\tMatch:   pulumi.String(\"1\"),\n\t\t\t\t\t\tAction:  pulumi.String(\"1\"),\n\t\t\t\t\t\tLimited: pulumi.Int(0),\n\t\t\t\t\t\tConditionLists: ddos.BgpPolicyContentLayer4RuleListConditionListArray{\n\t\t\t\t\t\t\t\u0026ddos.BgpPolicyContentLayer4RuleListConditionListArgs{\n\t\t\t\t\t\t\t\tArg:      pulumi.String(\"3C\"),\n\t\t\t\t\t\t\t\tPosition: pulumi.Int(1),\n\t\t\t\t\t\t\t\tDepth:    pulumi.Int(2),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tName:     pulumi.String(\"11\"),\n\t\t\t\t\t\tPriority: pulumi.Int(10),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tType:       pulumi.String(\"l4\"),\n\t\t\tPolicyName: pulumi.String(\"tf_exampleacc_bgp32594\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ddos.BgpPolicy;\nimport com.pulumi.alicloud.ddos.BgpPolicyArgs;\nimport com.pulumi.alicloud.ddos.inputs.BgpPolicyContentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_exampleacc_bgp32594\");\n        final var policyName = config.get(\"policyName\").orElse(\"example_l4_policy\");\n        var default_ = new BgpPolicy(\"default\", BgpPolicyArgs.builder()\n            .content(BgpPolicyContentArgs.builder()\n                .enableDefense(false)\n                .layer4RuleLists(BgpPolicyContentLayer4RuleListArgs.builder()\n                    .method(\"hex\")\n                    .match(\"1\")\n                    .action(\"1\")\n                    .limited(0)\n                    .conditionLists(BgpPolicyContentLayer4RuleListConditionListArgs.builder()\n                        .arg(\"3C\")\n                        .position(1)\n                        .depth(2)\n                        .build())\n                    .name(\"11\")\n                    .priority(10)\n                    .build())\n                .build())\n            .type(\"l4\")\n            .policyName(\"tf_exampleacc_bgp32594\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_exampleacc_bgp32594\n  policyName:\n    type: string\n    default: example_l4_policy\nresources:\n  default:\n    type: alicloud:ddos:BgpPolicy\n    properties:\n      content:\n        enableDefense: 'false'\n        layer4RuleLists:\n          - method: hex\n            match: '1'\n            action: '1'\n            limited: '0'\n            conditionLists:\n              - arg: 3C\n                position: '1'\n                depth: '2'\n            name: '11'\n            priority: '10'\n      type: l4\n      policyName: tf_exampleacc_bgp32594\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDdos Bgp Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ddos/bgpPolicy:BgpPolicy example \u003cid\u003e\n```\n\n","properties":{"content":{"$ref":"#/types/alicloud:ddos/BgpPolicyContent:BgpPolicyContent","description":"Configuration Content See \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e below.\n"},"policyName":{"type":"string","description":"The name of the resource\n"},"type":{"type":"string","description":"Type\n"}},"required":["content","policyName","type"],"inputProperties":{"content":{"$ref":"#/types/alicloud:ddos/BgpPolicyContent:BgpPolicyContent","description":"Configuration Content See \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e below.\n"},"policyName":{"type":"string","description":"The name of the resource\n"},"type":{"type":"string","description":"Type\n","willReplaceOnChanges":true}},"requiredInputs":["policyName","type"],"stateInputs":{"description":"Input properties used for looking up and filtering BgpPolicy resources.\n","properties":{"content":{"$ref":"#/types/alicloud:ddos/BgpPolicyContent:BgpPolicyContent","description":"Configuration Content See \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e below.\n"},"policyName":{"type":"string","description":"The name of the resource\n"},"type":{"type":"string","description":"Type\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ddos/cooDomainPreciseAccessRule:CooDomainPreciseAccessRule":{"description":"Provides a DdosCoo Domain Precise Access Rule resource.\n\nPrecise access control rules for website business.\n\nFor information about DdosCoo Domain Precise Access Rule and how to use it, see [What is Domain Precise Access Rule](https://next.api.alibabacloud.com/document/ddoscoo/2020-01-01/ModifyWebPreciseAccessRule).\n\n\u003e **NOTE:** Available since v1.271.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform\";\nconst domain = config.get(\"domain\") || \"terraform-example.alibaba.com\";\nconst _default = alicloud.ddos.getDdosCooInstances({});\nconst defaultDomainResource = new alicloud.ddos.DomainResource(\"default\", {\n    domain: domain,\n    instanceIds: [_default.then(_default =\u003e _default.ids?.[0])],\n    proxyTypes: [{\n        proxyPorts: [443],\n        proxyType: \"https\",\n    }],\n    realServers: [\"177.167.32.11\"],\n    rsType: 0,\n});\nconst defaultCooDomainPreciseAccessRule = new alicloud.ddos.CooDomainPreciseAccessRule(\"default\", {\n    conditions: [{\n        matchMethod: \"contain\",\n        field: \"header\",\n        content: \"222\",\n        headerName: \"15\",\n    }],\n    action: \"accept\",\n    expires: 0,\n    domain: defaultDomainResource.id,\n    name: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform\"\ndomain = config.get(\"domain\")\nif domain is None:\n    domain = \"terraform-example.alibaba.com\"\ndefault = alicloud.ddos.get_ddos_coo_instances()\ndefault_domain_resource = alicloud.ddos.DomainResource(\"default\",\n    domain=domain,\n    instance_ids=[default.ids[0]],\n    proxy_types=[{\n        \"proxy_ports\": [443],\n        \"proxy_type\": \"https\",\n    }],\n    real_servers=[\"177.167.32.11\"],\n    rs_type=0)\ndefault_coo_domain_precise_access_rule = alicloud.ddos.CooDomainPreciseAccessRule(\"default\",\n    conditions=[{\n        \"match_method\": \"contain\",\n        \"field\": \"header\",\n        \"content\": \"222\",\n        \"header_name\": \"15\",\n    }],\n    action=\"accept\",\n    expires=0,\n    domain=default_domain_resource.id,\n    name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform\";\n    var domain = config.Get(\"domain\") ?? \"terraform-example.alibaba.com\";\n    var @default = AliCloud.Ddos.GetDdosCooInstances.Invoke();\n\n    var defaultDomainResource = new AliCloud.Ddos.DomainResource(\"default\", new()\n    {\n        Domain = domain,\n        InstanceIds = new[]\n        {\n            @default.Apply(@default =\u003e @default.Apply(getDdosCooInstancesResult =\u003e getDdosCooInstancesResult.Ids[0])),\n        },\n        ProxyTypes = new[]\n        {\n            new AliCloud.Ddos.Inputs.DomainResourceProxyTypeArgs\n            {\n                ProxyPorts = new[]\n                {\n                    443,\n                },\n                ProxyType = \"https\",\n            },\n        },\n        RealServers = new[]\n        {\n            \"177.167.32.11\",\n        },\n        RsType = 0,\n    });\n\n    var defaultCooDomainPreciseAccessRule = new AliCloud.Ddos.CooDomainPreciseAccessRule(\"default\", new()\n    {\n        Conditions = new[]\n        {\n            new AliCloud.Ddos.Inputs.CooDomainPreciseAccessRuleConditionArgs\n            {\n                MatchMethod = \"contain\",\n                Field = \"header\",\n                Content = \"222\",\n                HeaderName = \"15\",\n            },\n        },\n        Action = \"accept\",\n        Expires = 0,\n        Domain = defaultDomainResource.Id,\n        Name = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdomain := \"terraform-example.alibaba.com\"\n\t\tif param := cfg.Get(\"domain\"); param != \"\" {\n\t\t\tdomain = param\n\t\t}\n\t\t_default, err := ddos.GetDdosCooInstances(ctx, \u0026ddos.GetDdosCooInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDomainResource, err := ddos.NewDomainResource(ctx, \"default\", \u0026ddos.DomainResourceArgs{\n\t\t\tDomain: pulumi.String(domain),\n\t\t\tInstanceIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(_default.Ids[0]),\n\t\t\t},\n\t\t\tProxyTypes: ddos.DomainResourceProxyTypeArray{\n\t\t\t\t\u0026ddos.DomainResourceProxyTypeArgs{\n\t\t\t\t\tProxyPorts: pulumi.IntArray{\n\t\t\t\t\t\tpulumi.Int(443),\n\t\t\t\t\t},\n\t\t\t\t\tProxyType: pulumi.String(\"https\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRealServers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"177.167.32.11\"),\n\t\t\t},\n\t\t\tRsType: pulumi.Int(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ddos.NewCooDomainPreciseAccessRule(ctx, \"default\", \u0026ddos.CooDomainPreciseAccessRuleArgs{\n\t\t\tConditions: ddos.CooDomainPreciseAccessRuleConditionArray{\n\t\t\t\t\u0026ddos.CooDomainPreciseAccessRuleConditionArgs{\n\t\t\t\t\tMatchMethod: pulumi.String(\"contain\"),\n\t\t\t\t\tField:       pulumi.String(\"header\"),\n\t\t\t\t\tContent:     pulumi.String(\"222\"),\n\t\t\t\t\tHeaderName:  pulumi.String(\"15\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAction:  pulumi.String(\"accept\"),\n\t\t\tExpires: pulumi.Int(0),\n\t\t\tDomain:  defaultDomainResource.ID(),\n\t\t\tName:    pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ddos.DdosFunctions;\nimport com.pulumi.alicloud.ddos.inputs.GetDdosCooInstancesArgs;\nimport com.pulumi.alicloud.ddos.DomainResource;\nimport com.pulumi.alicloud.ddos.DomainResourceArgs;\nimport com.pulumi.alicloud.ddos.inputs.DomainResourceProxyTypeArgs;\nimport com.pulumi.alicloud.ddos.CooDomainPreciseAccessRule;\nimport com.pulumi.alicloud.ddos.CooDomainPreciseAccessRuleArgs;\nimport com.pulumi.alicloud.ddos.inputs.CooDomainPreciseAccessRuleConditionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform\");\n        final var domain = config.get(\"domain\").orElse(\"terraform-example.alibaba.com\");\n        final var default = DdosFunctions.getDdosCooInstances(GetDdosCooInstancesArgs.builder()\n            .build());\n\n        var defaultDomainResource = new DomainResource(\"defaultDomainResource\", DomainResourceArgs.builder()\n            .domain(domain)\n            .instanceIds(default_.ids()[0])\n            .proxyTypes(DomainResourceProxyTypeArgs.builder()\n                .proxyPorts(443)\n                .proxyType(\"https\")\n                .build())\n            .realServers(\"177.167.32.11\")\n            .rsType(0)\n            .build());\n\n        var defaultCooDomainPreciseAccessRule = new CooDomainPreciseAccessRule(\"defaultCooDomainPreciseAccessRule\", CooDomainPreciseAccessRuleArgs.builder()\n            .conditions(CooDomainPreciseAccessRuleConditionArgs.builder()\n                .matchMethod(\"contain\")\n                .field(\"header\")\n                .content(\"222\")\n                .headerName(\"15\")\n                .build())\n            .action(\"accept\")\n            .expires(0)\n            .domain(defaultDomainResource.id())\n            .name(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform\n  domain:\n    type: string\n    default: terraform-example.alibaba.com\nresources:\n  defaultDomainResource:\n    type: alicloud:ddos:DomainResource\n    name: default\n    properties:\n      domain: ${domain}\n      instanceIds:\n        - ${default.ids[0]}\n      proxyTypes:\n        - proxyPorts:\n            - 443\n          proxyType: https\n      realServers:\n        - 177.167.32.11\n      rsType: 0\n  defaultCooDomainPreciseAccessRule:\n    type: alicloud:ddos:CooDomainPreciseAccessRule\n    name: default\n    properties:\n      conditions:\n        - matchMethod: contain\n          field: header\n          content: '222'\n          headerName: '15'\n      action: accept\n      expires: '0'\n      domain: ${defaultDomainResource.id}\n      name: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ddos:getDdosCooInstances\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDdosCoo Domain Precise Access Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ddos/cooDomainPreciseAccessRule:CooDomainPreciseAccessRule example \u003cdomain\u003e:\u003cname\u003e\n```\n\n","properties":{"action":{"type":"string","description":"Action to take on match. Valid values:\n"},"conditions":{"type":"array","items":{"$ref":"#/types/alicloud:ddos/CooDomainPreciseAccessRuleCondition:CooDomainPreciseAccessRuleCondition"},"description":"List of matching conditions. See \u003cspan pulumi-lang-nodejs=\"`condition`\" pulumi-lang-dotnet=\"`Condition`\" pulumi-lang-go=\"`condition`\" pulumi-lang-python=\"`condition`\" pulumi-lang-yaml=\"`condition`\" pulumi-lang-java=\"`condition`\"\u003e`condition`\u003c/span\u003e below.\n"},"domain":{"type":"string","description":"Domain name of the website service.\n\u003e **NOTE:**  The domain name must already have a website service forwarding rule configured. You can call [DescribeDomains](https://help.aliyun.com/document_detail/91724.html) to query all domain names.\n"},"expires":{"type":"integer","description":"Rule validity period, in seconds. This parameter takes effect only when the rule's matching action is set to block (\u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`block`\" pulumi-lang-dotnet=\"`Block`\" pulumi-lang-go=\"`block`\" pulumi-lang-python=\"`block`\" pulumi-lang-yaml=\"`block`\" pulumi-lang-java=\"`block`\"\u003e`block`\u003c/span\u003e), blocking access requests during the validity period. If this parameter is not specified, the rule remains effective permanently.\n"},"name":{"type":"string","description":"Rule name.\n"}},"required":["action","conditions","domain","name"],"inputProperties":{"action":{"type":"string","description":"Action to take on match. Valid values:\n"},"conditions":{"type":"array","items":{"$ref":"#/types/alicloud:ddos/CooDomainPreciseAccessRuleCondition:CooDomainPreciseAccessRuleCondition"},"description":"List of matching conditions. See \u003cspan pulumi-lang-nodejs=\"`condition`\" pulumi-lang-dotnet=\"`Condition`\" pulumi-lang-go=\"`condition`\" pulumi-lang-python=\"`condition`\" pulumi-lang-yaml=\"`condition`\" pulumi-lang-java=\"`condition`\"\u003e`condition`\u003c/span\u003e below.\n"},"domain":{"type":"string","description":"Domain name of the website service.\n\u003e **NOTE:**  The domain name must already have a website service forwarding rule configured. You can call [DescribeDomains](https://help.aliyun.com/document_detail/91724.html) to query all domain names.\n","willReplaceOnChanges":true},"expires":{"type":"integer","description":"Rule validity period, in seconds. This parameter takes effect only when the rule's matching action is set to block (\u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`block`\" pulumi-lang-dotnet=\"`Block`\" pulumi-lang-go=\"`block`\" pulumi-lang-python=\"`block`\" pulumi-lang-yaml=\"`block`\" pulumi-lang-java=\"`block`\"\u003e`block`\u003c/span\u003e), blocking access requests during the validity period. If this parameter is not specified, the rule remains effective permanently.\n"},"name":{"type":"string","description":"Rule name.\n","willReplaceOnChanges":true}},"requiredInputs":["action","conditions","domain"],"stateInputs":{"description":"Input properties used for looking up and filtering CooDomainPreciseAccessRule resources.\n","properties":{"action":{"type":"string","description":"Action to take on match. Valid values:\n"},"conditions":{"type":"array","items":{"$ref":"#/types/alicloud:ddos/CooDomainPreciseAccessRuleCondition:CooDomainPreciseAccessRuleCondition"},"description":"List of matching conditions. See \u003cspan pulumi-lang-nodejs=\"`condition`\" pulumi-lang-dotnet=\"`Condition`\" pulumi-lang-go=\"`condition`\" pulumi-lang-python=\"`condition`\" pulumi-lang-yaml=\"`condition`\" pulumi-lang-java=\"`condition`\"\u003e`condition`\u003c/span\u003e below.\n"},"domain":{"type":"string","description":"Domain name of the website service.\n\u003e **NOTE:**  The domain name must already have a website service forwarding rule configured. You can call [DescribeDomains](https://help.aliyun.com/document_detail/91724.html) to query all domain names.\n","willReplaceOnChanges":true},"expires":{"type":"integer","description":"Rule validity period, in seconds. This parameter takes effect only when the rule's matching action is set to block (\u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`block`\" pulumi-lang-dotnet=\"`Block`\" pulumi-lang-go=\"`block`\" pulumi-lang-python=\"`block`\" pulumi-lang-yaml=\"`block`\" pulumi-lang-java=\"`block`\"\u003e`block`\u003c/span\u003e), blocking access requests during the validity period. If this parameter is not specified, the rule remains effective permanently.\n"},"name":{"type":"string","description":"Rule name.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ddos/cooWebCcRule:CooWebCcRule":{"description":"Provides a DdosCoo Web Cc Rule resource.\n\nCC frequency control rules.\n\nFor information about DdosCoo Web Cc Rule and how to use it, see [What is Web Cc Rule](https://next.api.alibabacloud.com/document/ddoscoo/2020-01-01/ConfigWebCCRuleV2).\n\n\u003e **NOTE:** Available since v1.271.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform\";\nconst domain = config.get(\"domain\") || \"terraform-example.alibaba.com\";\nconst _default = alicloud.ddos.getDdosCooInstances({});\nconst defaultDomainResource = new alicloud.ddos.DomainResource(\"default\", {\n    domain: domain,\n    instanceIds: [_default.then(_default =\u003e _default.ids?.[0])],\n    proxyTypes: [{\n        proxyPorts: [443],\n        proxyType: \"https\",\n    }],\n    realServers: [\"177.167.32.11\"],\n    rsType: 0,\n});\nconst defaultCooWebCcRule = new alicloud.ddos.CooWebCcRule(\"default\", {\n    ruleDetail: {\n        action: \"block\",\n        rateLimit: {\n            interval: 11,\n            threshold: 2,\n            ttl: 840,\n            target: \"header\",\n            subKey: \"33\",\n        },\n        conditions: [\n            {\n                matchMethod: \"belong\",\n                field: \"ip\",\n                content: \"1.1.1.1\",\n            },\n            {\n                matchMethod: \"contain\",\n                field: \"uri\",\n                content: \"/a\",\n            },\n            {\n                matchMethod: \"contain\",\n                field: \"header\",\n                headerName: \"123\",\n                content: \"1234\",\n            },\n        ],\n        statistics: {\n            mode: \"distinct\",\n            field: \"header\",\n            headerName: \"12\",\n        },\n        statusCode: {\n            enabled: true,\n            code: 100,\n            useRatio: false,\n            countThreshold: 2,\n            ratioThreshold: 5,\n        },\n    },\n    name: name,\n    domain: defaultDomainResource.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform\"\ndomain = config.get(\"domain\")\nif domain is None:\n    domain = \"terraform-example.alibaba.com\"\ndefault = alicloud.ddos.get_ddos_coo_instances()\ndefault_domain_resource = alicloud.ddos.DomainResource(\"default\",\n    domain=domain,\n    instance_ids=[default.ids[0]],\n    proxy_types=[{\n        \"proxy_ports\": [443],\n        \"proxy_type\": \"https\",\n    }],\n    real_servers=[\"177.167.32.11\"],\n    rs_type=0)\ndefault_coo_web_cc_rule = alicloud.ddos.CooWebCcRule(\"default\",\n    rule_detail={\n        \"action\": \"block\",\n        \"rate_limit\": {\n            \"interval\": 11,\n            \"threshold\": 2,\n            \"ttl\": 840,\n            \"target\": \"header\",\n            \"sub_key\": \"33\",\n        },\n        \"conditions\": [\n            {\n                \"match_method\": \"belong\",\n                \"field\": \"ip\",\n                \"content\": \"1.1.1.1\",\n            },\n            {\n                \"match_method\": \"contain\",\n                \"field\": \"uri\",\n                \"content\": \"/a\",\n            },\n            {\n                \"match_method\": \"contain\",\n                \"field\": \"header\",\n                \"header_name\": \"123\",\n                \"content\": \"1234\",\n            },\n        ],\n        \"statistics\": {\n            \"mode\": \"distinct\",\n            \"field\": \"header\",\n            \"header_name\": \"12\",\n        },\n        \"status_code\": {\n            \"enabled\": True,\n            \"code\": 100,\n            \"use_ratio\": False,\n            \"count_threshold\": 2,\n            \"ratio_threshold\": 5,\n        },\n    },\n    name=name,\n    domain=default_domain_resource.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform\";\n    var domain = config.Get(\"domain\") ?? \"terraform-example.alibaba.com\";\n    var @default = AliCloud.Ddos.GetDdosCooInstances.Invoke();\n\n    var defaultDomainResource = new AliCloud.Ddos.DomainResource(\"default\", new()\n    {\n        Domain = domain,\n        InstanceIds = new[]\n        {\n            @default.Apply(@default =\u003e @default.Apply(getDdosCooInstancesResult =\u003e getDdosCooInstancesResult.Ids[0])),\n        },\n        ProxyTypes = new[]\n        {\n            new AliCloud.Ddos.Inputs.DomainResourceProxyTypeArgs\n            {\n                ProxyPorts = new[]\n                {\n                    443,\n                },\n                ProxyType = \"https\",\n            },\n        },\n        RealServers = new[]\n        {\n            \"177.167.32.11\",\n        },\n        RsType = 0,\n    });\n\n    var defaultCooWebCcRule = new AliCloud.Ddos.CooWebCcRule(\"default\", new()\n    {\n        RuleDetail = new AliCloud.Ddos.Inputs.CooWebCcRuleRuleDetailArgs\n        {\n            Action = \"block\",\n            RateLimit = new AliCloud.Ddos.Inputs.CooWebCcRuleRuleDetailRateLimitArgs\n            {\n                Interval = 11,\n                Threshold = 2,\n                Ttl = 840,\n                Target = \"header\",\n                SubKey = \"33\",\n            },\n            Conditions = new[]\n            {\n                new AliCloud.Ddos.Inputs.CooWebCcRuleRuleDetailConditionArgs\n                {\n                    MatchMethod = \"belong\",\n                    Field = \"ip\",\n                    Content = \"1.1.1.1\",\n                },\n                new AliCloud.Ddos.Inputs.CooWebCcRuleRuleDetailConditionArgs\n                {\n                    MatchMethod = \"contain\",\n                    Field = \"uri\",\n                    Content = \"/a\",\n                },\n                new AliCloud.Ddos.Inputs.CooWebCcRuleRuleDetailConditionArgs\n                {\n                    MatchMethod = \"contain\",\n                    Field = \"header\",\n                    HeaderName = \"123\",\n                    Content = \"1234\",\n                },\n            },\n            Statistics = new AliCloud.Ddos.Inputs.CooWebCcRuleRuleDetailStatisticsArgs\n            {\n                Mode = \"distinct\",\n                Field = \"header\",\n                HeaderName = \"12\",\n            },\n            StatusCode = new AliCloud.Ddos.Inputs.CooWebCcRuleRuleDetailStatusCodeArgs\n            {\n                Enabled = true,\n                Code = 100,\n                UseRatio = false,\n                CountThreshold = 2,\n                RatioThreshold = 5,\n            },\n        },\n        Name = name,\n        Domain = defaultDomainResource.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdomain := \"terraform-example.alibaba.com\"\n\t\tif param := cfg.Get(\"domain\"); param != \"\" {\n\t\t\tdomain = param\n\t\t}\n\t\t_default, err := ddos.GetDdosCooInstances(ctx, \u0026ddos.GetDdosCooInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDomainResource, err := ddos.NewDomainResource(ctx, \"default\", \u0026ddos.DomainResourceArgs{\n\t\t\tDomain: pulumi.String(domain),\n\t\t\tInstanceIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(_default.Ids[0]),\n\t\t\t},\n\t\t\tProxyTypes: ddos.DomainResourceProxyTypeArray{\n\t\t\t\t\u0026ddos.DomainResourceProxyTypeArgs{\n\t\t\t\t\tProxyPorts: pulumi.IntArray{\n\t\t\t\t\t\tpulumi.Int(443),\n\t\t\t\t\t},\n\t\t\t\t\tProxyType: pulumi.String(\"https\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRealServers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"177.167.32.11\"),\n\t\t\t},\n\t\t\tRsType: pulumi.Int(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ddos.NewCooWebCcRule(ctx, \"default\", \u0026ddos.CooWebCcRuleArgs{\n\t\t\tRuleDetail: \u0026ddos.CooWebCcRuleRuleDetailArgs{\n\t\t\t\tAction: pulumi.String(\"block\"),\n\t\t\t\tRateLimit: \u0026ddos.CooWebCcRuleRuleDetailRateLimitArgs{\n\t\t\t\t\tInterval:  pulumi.Int(11),\n\t\t\t\t\tThreshold: pulumi.Int(2),\n\t\t\t\t\tTtl:       pulumi.Int(840),\n\t\t\t\t\tTarget:    pulumi.String(\"header\"),\n\t\t\t\t\tSubKey:    pulumi.String(\"33\"),\n\t\t\t\t},\n\t\t\t\tConditions: ddos.CooWebCcRuleRuleDetailConditionArray{\n\t\t\t\t\t\u0026ddos.CooWebCcRuleRuleDetailConditionArgs{\n\t\t\t\t\t\tMatchMethod: pulumi.String(\"belong\"),\n\t\t\t\t\t\tField:       pulumi.String(\"ip\"),\n\t\t\t\t\t\tContent:     pulumi.String(\"1.1.1.1\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026ddos.CooWebCcRuleRuleDetailConditionArgs{\n\t\t\t\t\t\tMatchMethod: pulumi.String(\"contain\"),\n\t\t\t\t\t\tField:       pulumi.String(\"uri\"),\n\t\t\t\t\t\tContent:     pulumi.String(\"/a\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026ddos.CooWebCcRuleRuleDetailConditionArgs{\n\t\t\t\t\t\tMatchMethod: pulumi.String(\"contain\"),\n\t\t\t\t\t\tField:       pulumi.String(\"header\"),\n\t\t\t\t\t\tHeaderName:  pulumi.String(\"123\"),\n\t\t\t\t\t\tContent:     pulumi.String(\"1234\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tStatistics: \u0026ddos.CooWebCcRuleRuleDetailStatisticsArgs{\n\t\t\t\t\tMode:       pulumi.String(\"distinct\"),\n\t\t\t\t\tField:      pulumi.String(\"header\"),\n\t\t\t\t\tHeaderName: pulumi.String(\"12\"),\n\t\t\t\t},\n\t\t\t\tStatusCode: \u0026ddos.CooWebCcRuleRuleDetailStatusCodeArgs{\n\t\t\t\t\tEnabled:        pulumi.Bool(true),\n\t\t\t\t\tCode:           pulumi.Int(100),\n\t\t\t\t\tUseRatio:       pulumi.Bool(false),\n\t\t\t\t\tCountThreshold: pulumi.Int(2),\n\t\t\t\t\tRatioThreshold: pulumi.Int(5),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName:   pulumi.String(name),\n\t\t\tDomain: defaultDomainResource.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ddos.DdosFunctions;\nimport com.pulumi.alicloud.ddos.inputs.GetDdosCooInstancesArgs;\nimport com.pulumi.alicloud.ddos.DomainResource;\nimport com.pulumi.alicloud.ddos.DomainResourceArgs;\nimport com.pulumi.alicloud.ddos.inputs.DomainResourceProxyTypeArgs;\nimport com.pulumi.alicloud.ddos.CooWebCcRule;\nimport com.pulumi.alicloud.ddos.CooWebCcRuleArgs;\nimport com.pulumi.alicloud.ddos.inputs.CooWebCcRuleRuleDetailArgs;\nimport com.pulumi.alicloud.ddos.inputs.CooWebCcRuleRuleDetailRateLimitArgs;\nimport com.pulumi.alicloud.ddos.inputs.CooWebCcRuleRuleDetailStatisticsArgs;\nimport com.pulumi.alicloud.ddos.inputs.CooWebCcRuleRuleDetailStatusCodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform\");\n        final var domain = config.get(\"domain\").orElse(\"terraform-example.alibaba.com\");\n        final var default = DdosFunctions.getDdosCooInstances(GetDdosCooInstancesArgs.builder()\n            .build());\n\n        var defaultDomainResource = new DomainResource(\"defaultDomainResource\", DomainResourceArgs.builder()\n            .domain(domain)\n            .instanceIds(default_.ids()[0])\n            .proxyTypes(DomainResourceProxyTypeArgs.builder()\n                .proxyPorts(443)\n                .proxyType(\"https\")\n                .build())\n            .realServers(\"177.167.32.11\")\n            .rsType(0)\n            .build());\n\n        var defaultCooWebCcRule = new CooWebCcRule(\"defaultCooWebCcRule\", CooWebCcRuleArgs.builder()\n            .ruleDetail(CooWebCcRuleRuleDetailArgs.builder()\n                .action(\"block\")\n                .rateLimit(CooWebCcRuleRuleDetailRateLimitArgs.builder()\n                    .interval(11)\n                    .threshold(2)\n                    .ttl(840)\n                    .target(\"header\")\n                    .subKey(\"33\")\n                    .build())\n                .conditions(                \n                    CooWebCcRuleRuleDetailConditionArgs.builder()\n                        .matchMethod(\"belong\")\n                        .field(\"ip\")\n                        .content(\"1.1.1.1\")\n                        .build(),\n                    CooWebCcRuleRuleDetailConditionArgs.builder()\n                        .matchMethod(\"contain\")\n                        .field(\"uri\")\n                        .content(\"/a\")\n                        .build(),\n                    CooWebCcRuleRuleDetailConditionArgs.builder()\n                        .matchMethod(\"contain\")\n                        .field(\"header\")\n                        .headerName(\"123\")\n                        .content(\"1234\")\n                        .build())\n                .statistics(CooWebCcRuleRuleDetailStatisticsArgs.builder()\n                    .mode(\"distinct\")\n                    .field(\"header\")\n                    .headerName(\"12\")\n                    .build())\n                .statusCode(CooWebCcRuleRuleDetailStatusCodeArgs.builder()\n                    .enabled(true)\n                    .code(100)\n                    .useRatio(false)\n                    .countThreshold(2)\n                    .ratioThreshold(5)\n                    .build())\n                .build())\n            .name(name)\n            .domain(defaultDomainResource.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform\n  domain:\n    type: string\n    default: terraform-example.alibaba.com\nresources:\n  defaultDomainResource:\n    type: alicloud:ddos:DomainResource\n    name: default\n    properties:\n      domain: ${domain}\n      instanceIds:\n        - ${default.ids[0]}\n      proxyTypes:\n        - proxyPorts:\n            - 443\n          proxyType: https\n      realServers:\n        - 177.167.32.11\n      rsType: 0\n  defaultCooWebCcRule:\n    type: alicloud:ddos:CooWebCcRule\n    name: default\n    properties:\n      ruleDetail:\n        action: block\n        rateLimit:\n          interval: '11'\n          threshold: '2'\n          ttl: '840'\n          target: header\n          subKey: '33'\n        conditions:\n          - matchMethod: belong\n            field: ip\n            content: 1.1.1.1\n          - matchMethod: contain\n            field: uri\n            content: /a\n          - matchMethod: contain\n            field: header\n            headerName: '123'\n            content: '1234'\n        statistics:\n          mode: distinct\n          field: header\n          headerName: '12'\n        statusCode:\n          enabled: true\n          code: '100'\n          useRatio: false\n          countThreshold: '2'\n          ratioThreshold: '5'\n      name: ${name}\n      domain: ${defaultDomainResource.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ddos:getDdosCooInstances\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDdosCoo Web Cc Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ddos/cooWebCcRule:CooWebCcRule example \u003cdomain\u003e:\u003cname\u003e\n```\n\n","properties":{"domain":{"type":"string","description":"The domain name of the website service.  \n\n\u003e **NOTE:**  The domain name must already have website service forwarding rules configured. You can call [DescribeDomains](https://help.aliyun.com/document_detail/91724.html) to query all domain names.\n"},"name":{"type":"string","description":"Rule name.\n"},"ruleDetail":{"$ref":"#/types/alicloud:ddos/CooWebCcRuleRuleDetail:CooWebCcRuleRuleDetail","description":"Rule details.   See \u003cspan pulumi-lang-nodejs=\"`ruleDetail`\" pulumi-lang-dotnet=\"`RuleDetail`\" pulumi-lang-go=\"`ruleDetail`\" pulumi-lang-python=\"`rule_detail`\" pulumi-lang-yaml=\"`ruleDetail`\" pulumi-lang-java=\"`ruleDetail`\"\u003e`rule_detail`\u003c/span\u003e below.\n"}},"required":["domain","name","ruleDetail"],"inputProperties":{"domain":{"type":"string","description":"The domain name of the website service.  \n\n\u003e **NOTE:**  The domain name must already have website service forwarding rules configured. You can call [DescribeDomains](https://help.aliyun.com/document_detail/91724.html) to query all domain names.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Rule name.\n","willReplaceOnChanges":true},"ruleDetail":{"$ref":"#/types/alicloud:ddos/CooWebCcRuleRuleDetail:CooWebCcRuleRuleDetail","description":"Rule details.   See \u003cspan pulumi-lang-nodejs=\"`ruleDetail`\" pulumi-lang-dotnet=\"`RuleDetail`\" pulumi-lang-go=\"`ruleDetail`\" pulumi-lang-python=\"`rule_detail`\" pulumi-lang-yaml=\"`ruleDetail`\" pulumi-lang-java=\"`ruleDetail`\"\u003e`rule_detail`\u003c/span\u003e below.\n"}},"requiredInputs":["domain","ruleDetail"],"stateInputs":{"description":"Input properties used for looking up and filtering CooWebCcRule resources.\n","properties":{"domain":{"type":"string","description":"The domain name of the website service.  \n\n\u003e **NOTE:**  The domain name must already have website service forwarding rules configured. You can call [DescribeDomains](https://help.aliyun.com/document_detail/91724.html) to query all domain names.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Rule name.\n","willReplaceOnChanges":true},"ruleDetail":{"$ref":"#/types/alicloud:ddos/CooWebCcRuleRuleDetail:CooWebCcRuleRuleDetail","description":"Rule details.   See \u003cspan pulumi-lang-nodejs=\"`ruleDetail`\" pulumi-lang-dotnet=\"`RuleDetail`\" pulumi-lang-go=\"`ruleDetail`\" pulumi-lang-python=\"`rule_detail`\" pulumi-lang-yaml=\"`ruleDetail`\" pulumi-lang-java=\"`ruleDetail`\"\u003e`rule_detail`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:ddos/ddosBgpInstance:DdosBgpInstance":{"description":"Provides a Anti-DDoS Pro (DdosBgp) Instance resource.\n\n\n\nFor information about Anti-DDoS Pro (DdosBgp) Instance and how to use it, see [What is Instance](https://next.api.alibabacloud.com/document/BssOpenApi/2017-12-14/CreateInstance).\n\n\u003e **NOTE:** Available since v1.183.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst instance = new alicloud.ddos.DdosBgpInstance(\"instance\", {\n    name: name,\n    baseBandwidth: 20,\n    bandwidth: -1,\n    ipCount: 100,\n    ipType: \"IPv4\",\n    normalBandwidth: 100,\n    type: \"Enterprise\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ninstance = alicloud.ddos.DdosBgpInstance(\"instance\",\n    name=name,\n    base_bandwidth=20,\n    bandwidth=-1,\n    ip_count=100,\n    ip_type=\"IPv4\",\n    normal_bandwidth=100,\n    type=\"Enterprise\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var instance = new AliCloud.Ddos.DdosBgpInstance(\"instance\", new()\n    {\n        Name = name,\n        BaseBandwidth = 20,\n        Bandwidth = -1,\n        IpCount = 100,\n        IpType = \"IPv4\",\n        NormalBandwidth = 100,\n        Type = \"Enterprise\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ddos.NewDdosBgpInstance(ctx, \"instance\", \u0026ddos.DdosBgpInstanceArgs{\n\t\t\tName:            pulumi.String(name),\n\t\t\tBaseBandwidth:   pulumi.Int(20),\n\t\t\tBandwidth:       pulumi.Int(-1),\n\t\t\tIpCount:         pulumi.Int(100),\n\t\t\tIpType:          pulumi.String(\"IPv4\"),\n\t\t\tNormalBandwidth: pulumi.Int(100),\n\t\t\tType:            pulumi.String(\"Enterprise\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ddos.DdosBgpInstance;\nimport com.pulumi.alicloud.ddos.DdosBgpInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var instance = new DdosBgpInstance(\"instance\", DdosBgpInstanceArgs.builder()\n            .name(name)\n            .baseBandwidth(20)\n            .bandwidth(-1)\n            .ipCount(100)\n            .ipType(\"IPv4\")\n            .normalBandwidth(100)\n            .type(\"Enterprise\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  instance:\n    type: alicloud:ddos:DdosBgpInstance\n    properties:\n      name: ${name}\n      baseBandwidth: 20\n      bandwidth: -1\n      ipCount: 100\n      ipType: IPv4\n      normalBandwidth: 100\n      type: Enterprise\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.ddos.DdosBgpInstance`\" pulumi-lang-dotnet=\"`alicloud.ddos.DdosBgpInstance`\" pulumi-lang-go=\"`ddos.DdosBgpInstance`\" pulumi-lang-python=\"`ddos.DdosBgpInstance`\" pulumi-lang-yaml=\"`alicloud.ddos.DdosBgpInstance`\" pulumi-lang-java=\"`alicloud.ddos.DdosBgpInstance`\"\u003e`alicloud.ddos.DdosBgpInstance`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ddos.DdosBgpInstance`\" pulumi-lang-dotnet=\"`alicloud.ddos.DdosBgpInstance`\" pulumi-lang-go=\"`ddos.DdosBgpInstance`\" pulumi-lang-python=\"`ddos.DdosBgpInstance`\" pulumi-lang-yaml=\"`alicloud.ddos.DdosBgpInstance`\" pulumi-lang-java=\"`alicloud.ddos.DdosBgpInstance`\"\u003e`alicloud.ddos.DdosBgpInstance`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAnti-DDoS Pro (DdosBgp) Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ddos/ddosBgpInstance:DdosBgpInstance example \u003cid\u003e\n```\n\n","properties":{"bandwidth":{"type":"integer","description":"The bandwidth of the package configuration.\n"},"baseBandwidth":{"type":"integer","description":"The basic protection bandwidth of the Anti-DDoS Origin Enterprise instance. Default value: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n"},"instanceName":{"type":"string","description":"The name of the instance.\n"},"ipCount":{"type":"integer","description":"The number of IP addresses that can be protected by the Anti-DDoS Origin Enterprise instance.\n"},"ipType":{"type":"string","description":"The protection IP address type of the protection package. Valid values:\n- `IPv4`\n- `IPv6`\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.259.0. New field \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.259.0. New field \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e instead."},"normalBandwidth":{"type":"integer","description":"The normal clean bandwidth. Unit: Mbit/s.\n"},"period":{"type":"integer","description":"The duration that you will buy Ddosbgp instance (in month). Valid values: [1~9], 12, 24, 36. Default to 12. At present, the provider does not support modify \"period\".\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID\n"},"status":{"type":"string","description":"(Available since v1.259.0) The status of the Instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The key of the tag that is added to the Anti-DDoS Origin instance.\n"},"type":{"type":"string","description":"The protection package type of the DDoS native protection instance. Default value: `Enterprise`. Valid values: `Enterprise`, `Professional`.\n"}},"required":["bandwidth","instanceName","ipCount","ipType","name","normalBandwidth","resourceGroupId","status","type"],"inputProperties":{"bandwidth":{"type":"integer","description":"The bandwidth of the package configuration.\n","willReplaceOnChanges":true},"baseBandwidth":{"type":"integer","description":"The basic protection bandwidth of the Anti-DDoS Origin Enterprise instance. Default value: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the instance.\n"},"ipCount":{"type":"integer","description":"The number of IP addresses that can be protected by the Anti-DDoS Origin Enterprise instance.\n","willReplaceOnChanges":true},"ipType":{"type":"string","description":"The protection IP address type of the protection package. Valid values:\n- `IPv4`\n- `IPv6`\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.259.0. New field \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.259.0. New field \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e instead."},"normalBandwidth":{"type":"integer","description":"The normal clean bandwidth. Unit: Mbit/s.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The duration that you will buy Ddosbgp instance (in month). Valid values: [1~9], 12, 24, 36. Default to 12. At present, the provider does not support modify \"period\".\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The key of the tag that is added to the Anti-DDoS Origin instance.\n"},"type":{"type":"string","description":"The protection package type of the DDoS native protection instance. Default value: `Enterprise`. Valid values: `Enterprise`, `Professional`.\n","willReplaceOnChanges":true}},"requiredInputs":["bandwidth","ipCount","ipType","normalBandwidth"],"stateInputs":{"description":"Input properties used for looking up and filtering DdosBgpInstance resources.\n","properties":{"bandwidth":{"type":"integer","description":"The bandwidth of the package configuration.\n","willReplaceOnChanges":true},"baseBandwidth":{"type":"integer","description":"The basic protection bandwidth of the Anti-DDoS Origin Enterprise instance. Default value: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the instance.\n"},"ipCount":{"type":"integer","description":"The number of IP addresses that can be protected by the Anti-DDoS Origin Enterprise instance.\n","willReplaceOnChanges":true},"ipType":{"type":"string","description":"The protection IP address type of the protection package. Valid values:\n- `IPv4`\n- `IPv6`\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.259.0. New field \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.259.0. New field \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e instead."},"normalBandwidth":{"type":"integer","description":"The normal clean bandwidth. Unit: Mbit/s.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The duration that you will buy Ddosbgp instance (in month). Valid values: [1~9], 12, 24, 36. Default to 12. At present, the provider does not support modify \"period\".\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID\n"},"status":{"type":"string","description":"(Available since v1.259.0) The status of the Instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The key of the tag that is added to the Anti-DDoS Origin instance.\n"},"type":{"type":"string","description":"The protection package type of the DDoS native protection instance. Default value: `Enterprise`. Valid values: `Enterprise`, `Professional`.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"alicloud:dns/ddosBgpInstance:DdosBgpInstance"}]},"alicloud:ddos/ddosCooInstance:DdosCooInstance":{"description":"Provides a BGP-line Anti-DDoS Pro(DdosCoo) Instance resource.\n\nFor information about BGP-line Anti-DDoS Pro(DdosCoo) Instance and how to use it, see [What is Anti-DDoS Pro Instance](https://www.alibabacloud.com/help/en/ddos-protection/latest/create-an-anti-ddos-pro-or-anti-ddos-premium-instance-by-calling-an-api-operation).\n\n\u003e **NOTE:** Available since v1.37.0.\n\n\u003e **NOTE:** The endpoint of bssopenapi used only support \"business.aliyuncs.com\" at present.\n\n\u003e **NOTE:** From version 1.214.0, if \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e, the provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e should be set to `cn-hangzhou`, and if \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to `ddosDip`, the provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e should be set to `ap-southeast-1`.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new alicloud.ddos.DdosCooInstance(\"default\", {\n    name: name,\n    baseBandwidth: \"30\",\n    bandwidth: \"30\",\n    serviceBandwidth: \"100\",\n    portCount: \"50\",\n    domainCount: \"50\",\n    productType: \"ddoscoo\",\n    period: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.ddos.DdosCooInstance(\"default\",\n    name=name,\n    base_bandwidth=\"30\",\n    bandwidth=\"30\",\n    service_bandwidth=\"100\",\n    port_count=\"50\",\n    domain_count=\"50\",\n    product_type=\"ddoscoo\",\n    period=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new AliCloud.Ddos.DdosCooInstance(\"default\", new()\n    {\n        Name = name,\n        BaseBandwidth = \"30\",\n        Bandwidth = \"30\",\n        ServiceBandwidth = \"100\",\n        PortCount = \"50\",\n        DomainCount = \"50\",\n        ProductType = \"ddoscoo\",\n        Period = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ddos.NewDdosCooInstance(ctx, \"default\", \u0026ddos.DdosCooInstanceArgs{\n\t\t\tName:             pulumi.String(name),\n\t\t\tBaseBandwidth:    pulumi.String(\"30\"),\n\t\t\tBandwidth:        pulumi.String(\"30\"),\n\t\t\tServiceBandwidth: pulumi.String(\"100\"),\n\t\t\tPortCount:        pulumi.String(\"50\"),\n\t\t\tDomainCount:      pulumi.String(\"50\"),\n\t\t\tProductType:      pulumi.String(\"ddoscoo\"),\n\t\t\tPeriod:           pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ddos.DdosCooInstance;\nimport com.pulumi.alicloud.ddos.DdosCooInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new DdosCooInstance(\"default\", DdosCooInstanceArgs.builder()\n            .name(name)\n            .baseBandwidth(\"30\")\n            .bandwidth(\"30\")\n            .serviceBandwidth(\"100\")\n            .portCount(\"50\")\n            .domainCount(\"50\")\n            .productType(\"ddoscoo\")\n            .period(1)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:ddos:DdosCooInstance\n    properties:\n      name: ${name}\n      baseBandwidth: '30'\n      bandwidth: '30'\n      serviceBandwidth: '100'\n      portCount: '50'\n      domainCount: '50'\n      productType: ddoscoo\n      period: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDdosCoo Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ddos/ddosCooInstance:DdosCooInstance example \u003cid\u003e\n```\n\n","properties":{"addressType":{"type":"string","description":"The IP version of the IP address. Default value: `Ipv4`. Valid values: `Ipv4`, `Ipv6`. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`addressType`\" pulumi-lang-dotnet=\"`AddressType`\" pulumi-lang-go=\"`addressType`\" pulumi-lang-python=\"`address_type`\" pulumi-lang-yaml=\"`addressType`\" pulumi-lang-java=\"`addressType`\"\u003e`address_type`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"bandwidth":{"type":"string","description":"Elastic defend bandwidth of the instance. This value must be larger than the base defend bandwidth. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. The unit is Gbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"bandwidthMode":{"type":"string","description":"The mitigation plan of the instance. Valid values:\n"},"baseBandwidth":{"type":"string","description":"Base defend bandwidth of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. The unit is Gbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`baseBandwidth`\" pulumi-lang-dotnet=\"`BaseBandwidth`\" pulumi-lang-go=\"`baseBandwidth`\" pulumi-lang-python=\"`base_bandwidth`\" pulumi-lang-yaml=\"`baseBandwidth`\" pulumi-lang-java=\"`baseBandwidth`\"\u003e`base_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"createTime":{"type":"integer","description":"(Available since v1.248.0) The time when the instance was created.\n"},"domainCount":{"type":"string","description":"Domain retransmission rule count of the instance. At least 50. Increase 5 per step, such as 55, 60, 65. Only support upgrade.\n"},"editionSale":{"type":"string","description":"The mitigation plan of the instance. Default value: \u003cspan pulumi-lang-nodejs=\"`coop`\" pulumi-lang-dotnet=\"`Coop`\" pulumi-lang-go=\"`coop`\" pulumi-lang-python=\"`coop`\" pulumi-lang-yaml=\"`coop`\" pulumi-lang-java=\"`coop`\"\u003e`coop`\u003c/span\u003e. Valid values:\n"},"functionVersion":{"type":"string","description":"The function plan of the instance. Valid values:\n"},"ip":{"type":"string","description":"(Available since v1.212.0) The IP address of the Instance.\n"},"modifyType":{"type":"string","description":"The type of modification. Valid values: `UPGRADE`, `DOWNGRADE`.\n"},"name":{"type":"string","description":"Name of the instance. This name can have a string of \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters.\n"},"normalBandwidth":{"type":"string","description":"The clean bandwidth provided by the instance. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`normalBandwidth`\" pulumi-lang-dotnet=\"`NormalBandwidth`\" pulumi-lang-go=\"`normalBandwidth`\" pulumi-lang-python=\"`normal_bandwidth`\" pulumi-lang-yaml=\"`normalBandwidth`\" pulumi-lang-java=\"`normalBandwidth`\"\u003e`normal_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to `ddosDip`. From version 1.248.0, \u003cspan pulumi-lang-nodejs=\"`normalBandwidth`\" pulumi-lang-dotnet=\"`NormalBandwidth`\" pulumi-lang-go=\"`normalBandwidth`\" pulumi-lang-python=\"`normal_bandwidth`\" pulumi-lang-yaml=\"`normalBandwidth`\" pulumi-lang-java=\"`normalBandwidth`\"\u003e`normal_bandwidth`\u003c/span\u003e can be modified.\n"},"normalQps":{"type":"string","description":"The clean QPS provided by the instance. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`normalQps`\" pulumi-lang-dotnet=\"`NormalQps`\" pulumi-lang-go=\"`normalQps`\" pulumi-lang-python=\"`normal_qps`\" pulumi-lang-yaml=\"`normalQps`\" pulumi-lang-java=\"`normalQps`\"\u003e`normal_qps`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to `ddosDip`. From version 1.248.0, \u003cspan pulumi-lang-nodejs=\"`normalQps`\" pulumi-lang-dotnet=\"`NormalQps`\" pulumi-lang-go=\"`normalQps`\" pulumi-lang-python=\"`normal_qps`\" pulumi-lang-yaml=\"`normalQps`\" pulumi-lang-java=\"`normalQps`\"\u003e`normal_qps`\u003c/span\u003e can be modified.\n"},"period":{"type":"integer","description":"The duration that you will buy DdosCoo instance (in month). Valid values: [1~9], \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. At present, the provider does not support modify \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"},"portCount":{"type":"string","description":"Port retransmission rule count of the instance. At least 50. Increase 5 per step, such as 55, 60, 65. Only support upgrade.\n"},"productPlan":{"type":"string","description":"The mitigation plan of the instance. Valid values:\n"},"productType":{"type":"string","description":"The product type for purchasing DDOSCOO instances used to differ different account type. Default value: \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e. Valid values:\n"},"serviceBandwidth":{"type":"string","description":"Business bandwidth of the instance. At leaset 100. Increased 100 per step, such as 100, 200, 300. The unit is Mbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`serviceBandwidth`\" pulumi-lang-dotnet=\"`ServiceBandwidth`\" pulumi-lang-go=\"`serviceBandwidth`\" pulumi-lang-python=\"`service_bandwidth`\" pulumi-lang-yaml=\"`serviceBandwidth`\" pulumi-lang-java=\"`serviceBandwidth`\"\u003e`service_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"status":{"type":"integer","description":"(Available since v1.248.0) The status of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["addressType","bandwidth","baseBandwidth","createTime","domainCount","editionSale","functionVersion","ip","name","normalBandwidth","normalQps","portCount","productPlan","serviceBandwidth","status"],"inputProperties":{"addressType":{"type":"string","description":"The IP version of the IP address. Default value: `Ipv4`. Valid values: `Ipv4`, `Ipv6`. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`addressType`\" pulumi-lang-dotnet=\"`AddressType`\" pulumi-lang-go=\"`addressType`\" pulumi-lang-python=\"`address_type`\" pulumi-lang-yaml=\"`addressType`\" pulumi-lang-java=\"`addressType`\"\u003e`address_type`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n","willReplaceOnChanges":true},"bandwidth":{"type":"string","description":"Elastic defend bandwidth of the instance. This value must be larger than the base defend bandwidth. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. The unit is Gbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"bandwidthMode":{"type":"string","description":"The mitigation plan of the instance. Valid values:\n"},"baseBandwidth":{"type":"string","description":"Base defend bandwidth of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. The unit is Gbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`baseBandwidth`\" pulumi-lang-dotnet=\"`BaseBandwidth`\" pulumi-lang-go=\"`baseBandwidth`\" pulumi-lang-python=\"`base_bandwidth`\" pulumi-lang-yaml=\"`baseBandwidth`\" pulumi-lang-java=\"`baseBandwidth`\"\u003e`base_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"domainCount":{"type":"string","description":"Domain retransmission rule count of the instance. At least 50. Increase 5 per step, such as 55, 60, 65. Only support upgrade.\n"},"editionSale":{"type":"string","description":"The mitigation plan of the instance. Default value: \u003cspan pulumi-lang-nodejs=\"`coop`\" pulumi-lang-dotnet=\"`Coop`\" pulumi-lang-go=\"`coop`\" pulumi-lang-python=\"`coop`\" pulumi-lang-yaml=\"`coop`\" pulumi-lang-java=\"`coop`\"\u003e`coop`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"functionVersion":{"type":"string","description":"The function plan of the instance. Valid values:\n"},"modifyType":{"type":"string","description":"The type of modification. Valid values: `UPGRADE`, `DOWNGRADE`.\n"},"name":{"type":"string","description":"Name of the instance. This name can have a string of \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters.\n"},"normalBandwidth":{"type":"string","description":"The clean bandwidth provided by the instance. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`normalBandwidth`\" pulumi-lang-dotnet=\"`NormalBandwidth`\" pulumi-lang-go=\"`normalBandwidth`\" pulumi-lang-python=\"`normal_bandwidth`\" pulumi-lang-yaml=\"`normalBandwidth`\" pulumi-lang-java=\"`normalBandwidth`\"\u003e`normal_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to `ddosDip`. From version 1.248.0, \u003cspan pulumi-lang-nodejs=\"`normalBandwidth`\" pulumi-lang-dotnet=\"`NormalBandwidth`\" pulumi-lang-go=\"`normalBandwidth`\" pulumi-lang-python=\"`normal_bandwidth`\" pulumi-lang-yaml=\"`normalBandwidth`\" pulumi-lang-java=\"`normalBandwidth`\"\u003e`normal_bandwidth`\u003c/span\u003e can be modified.\n"},"normalQps":{"type":"string","description":"The clean QPS provided by the instance. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`normalQps`\" pulumi-lang-dotnet=\"`NormalQps`\" pulumi-lang-go=\"`normalQps`\" pulumi-lang-python=\"`normal_qps`\" pulumi-lang-yaml=\"`normalQps`\" pulumi-lang-java=\"`normalQps`\"\u003e`normal_qps`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to `ddosDip`. From version 1.248.0, \u003cspan pulumi-lang-nodejs=\"`normalQps`\" pulumi-lang-dotnet=\"`NormalQps`\" pulumi-lang-go=\"`normalQps`\" pulumi-lang-python=\"`normal_qps`\" pulumi-lang-yaml=\"`normalQps`\" pulumi-lang-java=\"`normalQps`\"\u003e`normal_qps`\u003c/span\u003e can be modified.\n"},"period":{"type":"integer","description":"The duration that you will buy DdosCoo instance (in month). Valid values: [1~9], \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. At present, the provider does not support modify \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"},"portCount":{"type":"string","description":"Port retransmission rule count of the instance. At least 50. Increase 5 per step, such as 55, 60, 65. Only support upgrade.\n"},"productPlan":{"type":"string","description":"The mitigation plan of the instance. Valid values:\n"},"productType":{"type":"string","description":"The product type for purchasing DDOSCOO instances used to differ different account type. Default value: \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e. Valid values:\n"},"serviceBandwidth":{"type":"string","description":"Business bandwidth of the instance. At leaset 100. Increased 100 per step, such as 100, 200, 300. The unit is Mbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`serviceBandwidth`\" pulumi-lang-dotnet=\"`ServiceBandwidth`\" pulumi-lang-go=\"`serviceBandwidth`\" pulumi-lang-python=\"`service_bandwidth`\" pulumi-lang-yaml=\"`serviceBandwidth`\" pulumi-lang-java=\"`serviceBandwidth`\"\u003e`service_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"requiredInputs":["domainCount","portCount"],"stateInputs":{"description":"Input properties used for looking up and filtering DdosCooInstance resources.\n","properties":{"addressType":{"type":"string","description":"The IP version of the IP address. Default value: `Ipv4`. Valid values: `Ipv4`, `Ipv6`. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`addressType`\" pulumi-lang-dotnet=\"`AddressType`\" pulumi-lang-go=\"`addressType`\" pulumi-lang-python=\"`address_type`\" pulumi-lang-yaml=\"`addressType`\" pulumi-lang-java=\"`addressType`\"\u003e`address_type`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n","willReplaceOnChanges":true},"bandwidth":{"type":"string","description":"Elastic defend bandwidth of the instance. This value must be larger than the base defend bandwidth. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. The unit is Gbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"bandwidthMode":{"type":"string","description":"The mitigation plan of the instance. Valid values:\n"},"baseBandwidth":{"type":"string","description":"Base defend bandwidth of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. The unit is Gbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`baseBandwidth`\" pulumi-lang-dotnet=\"`BaseBandwidth`\" pulumi-lang-go=\"`baseBandwidth`\" pulumi-lang-python=\"`base_bandwidth`\" pulumi-lang-yaml=\"`baseBandwidth`\" pulumi-lang-java=\"`baseBandwidth`\"\u003e`base_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"createTime":{"type":"integer","description":"(Available since v1.248.0) The time when the instance was created.\n"},"domainCount":{"type":"string","description":"Domain retransmission rule count of the instance. At least 50. Increase 5 per step, such as 55, 60, 65. Only support upgrade.\n"},"editionSale":{"type":"string","description":"The mitigation plan of the instance. Default value: \u003cspan pulumi-lang-nodejs=\"`coop`\" pulumi-lang-dotnet=\"`Coop`\" pulumi-lang-go=\"`coop`\" pulumi-lang-python=\"`coop`\" pulumi-lang-yaml=\"`coop`\" pulumi-lang-java=\"`coop`\"\u003e`coop`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"functionVersion":{"type":"string","description":"The function plan of the instance. Valid values:\n"},"ip":{"type":"string","description":"(Available since v1.212.0) The IP address of the Instance.\n"},"modifyType":{"type":"string","description":"The type of modification. Valid values: `UPGRADE`, `DOWNGRADE`.\n"},"name":{"type":"string","description":"Name of the instance. This name can have a string of \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters.\n"},"normalBandwidth":{"type":"string","description":"The clean bandwidth provided by the instance. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`normalBandwidth`\" pulumi-lang-dotnet=\"`NormalBandwidth`\" pulumi-lang-go=\"`normalBandwidth`\" pulumi-lang-python=\"`normal_bandwidth`\" pulumi-lang-yaml=\"`normalBandwidth`\" pulumi-lang-java=\"`normalBandwidth`\"\u003e`normal_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to `ddosDip`. From version 1.248.0, \u003cspan pulumi-lang-nodejs=\"`normalBandwidth`\" pulumi-lang-dotnet=\"`NormalBandwidth`\" pulumi-lang-go=\"`normalBandwidth`\" pulumi-lang-python=\"`normal_bandwidth`\" pulumi-lang-yaml=\"`normalBandwidth`\" pulumi-lang-java=\"`normalBandwidth`\"\u003e`normal_bandwidth`\u003c/span\u003e can be modified.\n"},"normalQps":{"type":"string","description":"The clean QPS provided by the instance. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`normalQps`\" pulumi-lang-dotnet=\"`NormalQps`\" pulumi-lang-go=\"`normalQps`\" pulumi-lang-python=\"`normal_qps`\" pulumi-lang-yaml=\"`normalQps`\" pulumi-lang-java=\"`normalQps`\"\u003e`normal_qps`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to `ddosDip`. From version 1.248.0, \u003cspan pulumi-lang-nodejs=\"`normalQps`\" pulumi-lang-dotnet=\"`NormalQps`\" pulumi-lang-go=\"`normalQps`\" pulumi-lang-python=\"`normal_qps`\" pulumi-lang-yaml=\"`normalQps`\" pulumi-lang-java=\"`normalQps`\"\u003e`normal_qps`\u003c/span\u003e can be modified.\n"},"period":{"type":"integer","description":"The duration that you will buy DdosCoo instance (in month). Valid values: [1~9], \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. At present, the provider does not support modify \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"},"portCount":{"type":"string","description":"Port retransmission rule count of the instance. At least 50. Increase 5 per step, such as 55, 60, 65. Only support upgrade.\n"},"productPlan":{"type":"string","description":"The mitigation plan of the instance. Valid values:\n"},"productType":{"type":"string","description":"The product type for purchasing DDOSCOO instances used to differ different account type. Default value: \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e. Valid values:\n"},"serviceBandwidth":{"type":"string","description":"Business bandwidth of the instance. At leaset 100. Increased 100 per step, such as 100, 200, 300. The unit is Mbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`serviceBandwidth`\" pulumi-lang-dotnet=\"`ServiceBandwidth`\" pulumi-lang-go=\"`serviceBandwidth`\" pulumi-lang-python=\"`service_bandwidth`\" pulumi-lang-yaml=\"`serviceBandwidth`\" pulumi-lang-java=\"`serviceBandwidth`\"\u003e`service_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"status":{"type":"integer","description":"(Available since v1.248.0) The status of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"aliases":[{"type":"alicloud:dns/ddosCooInstance:DdosCooInstance"}]},"alicloud:ddos/domainResource:DomainResource":{"description":"Provides a Ddos Coo Domain Resource resource.\n\n\n\nFor information about Ddos Coo Domain Resource and how to use it, see [What is Domain Resource](https://www.alibabacloud.com/help/en/anti-ddos/anti-ddos-pro-and-premium/developer-reference/api-ddoscoo-2020-01-01-createdomainresource).\n\n\u003e **NOTE:** Available since v1.123.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst domain = config.get(\"domain\") || \"tf-example.alibaba.com\";\nconst _default = new alicloud.ddos.DdosCooInstance(\"default\", {\n    name: name,\n    bandwidth: \"30\",\n    baseBandwidth: \"30\",\n    serviceBandwidth: \"100\",\n    portCount: \"50\",\n    domainCount: \"50\",\n    period: 1,\n    productType: \"ddoscoo\",\n});\nconst defaultDomainResource = new alicloud.ddos.DomainResource(\"default\", {\n    domain: domain,\n    rsType: 0,\n    instanceIds: [_default.id],\n    realServers: [\"177.167.32.11\"],\n    httpsExt: `    {\n    \\\\\"Http2\\\\\": 1,\n    \\\\\"Http2https\\\\\": 0,\n    \\\\\"Https2http\\\\\": 0\n  }\n`,\n    proxyTypes: [{\n        proxyPorts: [443],\n        proxyType: \"https\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndomain = config.get(\"domain\")\nif domain is None:\n    domain = \"tf-example.alibaba.com\"\ndefault = alicloud.ddos.DdosCooInstance(\"default\",\n    name=name,\n    bandwidth=\"30\",\n    base_bandwidth=\"30\",\n    service_bandwidth=\"100\",\n    port_count=\"50\",\n    domain_count=\"50\",\n    period=1,\n    product_type=\"ddoscoo\")\ndefault_domain_resource = alicloud.ddos.DomainResource(\"default\",\n    domain=domain,\n    rs_type=0,\n    instance_ids=[default.id],\n    real_servers=[\"177.167.32.11\"],\n    https_ext=\"\"\"    {\n    \\\"Http2\\\": 1,\n    \\\"Http2https\\\": 0,\n    \\\"Https2http\\\": 0\n  }\n\"\"\",\n    proxy_types=[{\n        \"proxy_ports\": [443],\n        \"proxy_type\": \"https\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var domain = config.Get(\"domain\") ?? \"tf-example.alibaba.com\";\n    var @default = new AliCloud.Ddos.DdosCooInstance(\"default\", new()\n    {\n        Name = name,\n        Bandwidth = \"30\",\n        BaseBandwidth = \"30\",\n        ServiceBandwidth = \"100\",\n        PortCount = \"50\",\n        DomainCount = \"50\",\n        Period = 1,\n        ProductType = \"ddoscoo\",\n    });\n\n    var defaultDomainResource = new AliCloud.Ddos.DomainResource(\"default\", new()\n    {\n        Domain = domain,\n        RsType = 0,\n        InstanceIds = new[]\n        {\n            @default.Id,\n        },\n        RealServers = new[]\n        {\n            \"177.167.32.11\",\n        },\n        HttpsExt = @\"    {\n    \\\"\"Http2\\\"\": 1,\n    \\\"\"Http2https\\\"\": 0,\n    \\\"\"Https2http\\\"\": 0\n  }\n\",\n        ProxyTypes = new[]\n        {\n            new AliCloud.Ddos.Inputs.DomainResourceProxyTypeArgs\n            {\n                ProxyPorts = new[]\n                {\n                    443,\n                },\n                ProxyType = \"https\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdomain := \"tf-example.alibaba.com\"\n\t\tif param := cfg.Get(\"domain\"); param != \"\" {\n\t\t\tdomain = param\n\t\t}\n\t\t_default, err := ddos.NewDdosCooInstance(ctx, \"default\", \u0026ddos.DdosCooInstanceArgs{\n\t\t\tName:             pulumi.String(name),\n\t\t\tBandwidth:        pulumi.String(\"30\"),\n\t\t\tBaseBandwidth:    pulumi.String(\"30\"),\n\t\t\tServiceBandwidth: pulumi.String(\"100\"),\n\t\t\tPortCount:        pulumi.String(\"50\"),\n\t\t\tDomainCount:      pulumi.String(\"50\"),\n\t\t\tPeriod:           pulumi.Int(1),\n\t\t\tProductType:      pulumi.String(\"ddoscoo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ddos.NewDomainResource(ctx, \"default\", \u0026ddos.DomainResourceArgs{\n\t\t\tDomain: pulumi.String(domain),\n\t\t\tRsType: pulumi.Int(0),\n\t\t\tInstanceIds: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t\tRealServers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"177.167.32.11\"),\n\t\t\t},\n\t\t\tHttpsExt: pulumi.String(`    {\n    \\\"Http2\\\": 1,\n    \\\"Http2https\\\": 0,\n    \\\"Https2http\\\": 0\n  }\n`),\n\t\t\tProxyTypes: ddos.DomainResourceProxyTypeArray{\n\t\t\t\t\u0026ddos.DomainResourceProxyTypeArgs{\n\t\t\t\t\tProxyPorts: pulumi.IntArray{\n\t\t\t\t\t\tpulumi.Int(443),\n\t\t\t\t\t},\n\t\t\t\t\tProxyType: pulumi.String(\"https\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ddos.DdosCooInstance;\nimport com.pulumi.alicloud.ddos.DdosCooInstanceArgs;\nimport com.pulumi.alicloud.ddos.DomainResource;\nimport com.pulumi.alicloud.ddos.DomainResourceArgs;\nimport com.pulumi.alicloud.ddos.inputs.DomainResourceProxyTypeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var domain = config.get(\"domain\").orElse(\"tf-example.alibaba.com\");\n        var default_ = new DdosCooInstance(\"default\", DdosCooInstanceArgs.builder()\n            .name(name)\n            .bandwidth(\"30\")\n            .baseBandwidth(\"30\")\n            .serviceBandwidth(\"100\")\n            .portCount(\"50\")\n            .domainCount(\"50\")\n            .period(1)\n            .productType(\"ddoscoo\")\n            .build());\n\n        var defaultDomainResource = new DomainResource(\"defaultDomainResource\", DomainResourceArgs.builder()\n            .domain(domain)\n            .rsType(0)\n            .instanceIds(default_.id())\n            .realServers(\"177.167.32.11\")\n            .httpsExt(\"\"\"\n    {\n    \\\"Http2\\\": 1,\n    \\\"Http2https\\\": 0,\n    \\\"Https2http\\\": 0\n  }\n            \"\"\")\n            .proxyTypes(DomainResourceProxyTypeArgs.builder()\n                .proxyPorts(443)\n                .proxyType(\"https\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\n  domain:\n    type: string\n    default: tf-example.alibaba.com\nresources:\n  default:\n    type: alicloud:ddos:DdosCooInstance\n    properties:\n      name: ${name}\n      bandwidth: '30'\n      baseBandwidth: '30'\n      serviceBandwidth: '100'\n      portCount: '50'\n      domainCount: '50'\n      period: '1'\n      productType: ddoscoo\n  defaultDomainResource:\n    type: alicloud:ddos:DomainResource\n    name: default\n    properties:\n      domain: ${domain}\n      rsType: 0\n      instanceIds:\n        - ${default.id}\n      realServers:\n        - 177.167.32.11\n      httpsExt: |2\n            {\n            \\\"Http2\\\": 1,\n            \\\"Http2https\\\": 0,\n            \\\"Https2http\\\": 0\n          }\n      proxyTypes:\n        - proxyPorts:\n            - 443\n          proxyType: https\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDdos Coo Domain Resource can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ddos/domainResource:DomainResource example \u003cid\u003e\n```\n\n","properties":{"aiMode":{"type":"string","description":"the mode of the Intelligent Protection policy.\n- watch: the Warning mode\n- defense: the Defense mode\n"},"aiTemplate":{"type":"string","description":"the level of the Intelligent Protection policy.\n- level30: the Low level\n- level60: the Normal level\n- level90: the Strict level\n"},"blackLists":{"type":"array","items":{"type":"string"},"description":"ip blacklist\n"},"bwListEnable":{"type":"integer","description":"The status of the blacklist and whitelist feature. Valid values:\n- 0: Disabled\n- 1: Enabled\n"},"ccGlobalSwitch":{"type":"string","description":"CC safety protection switch.\n- 0: Disabled\n- 1: Enabled\n"},"cert":{"type":"string","description":"The private key of the certificate that you want to associate. This parameter must be used together with the CertName and Cert parameters.\n\n\u003e **NOTE:**   If you specify a value for the CertName, Cert, and Key parameters, you do not need to specify a value for the CertId parameter.\n","secret":true},"certIdentifier":{"type":"string","description":"The name of the certificate.\n\n\u003e **NOTE:**   You can specify the name of the certificate that you want to associate. From version 1.249.0, \u003cspan pulumi-lang-nodejs=\"`certIdentifier`\" pulumi-lang-dotnet=\"`CertIdentifier`\" pulumi-lang-go=\"`certIdentifier`\" pulumi-lang-python=\"`cert_identifier`\" pulumi-lang-yaml=\"`certIdentifier`\" pulumi-lang-java=\"`certIdentifier`\"\u003e`cert_identifier`\u003c/span\u003e is in the \"CertificateID-RegionId\" format. For example, if the ID of the certificateId is \u003cspan pulumi-lang-nodejs=\"`123`\" pulumi-lang-dotnet=\"`123`\" pulumi-lang-go=\"`123`\" pulumi-lang-python=\"`123`\" pulumi-lang-yaml=\"`123`\" pulumi-lang-java=\"`123`\"\u003e`123`\u003c/span\u003e, and the region ID is `cn-hangzhou`, the value of the \u003cspan pulumi-lang-nodejs=\"`certIdentifier`\" pulumi-lang-dotnet=\"`CertIdentifier`\" pulumi-lang-go=\"`certIdentifier`\" pulumi-lang-python=\"`cert_identifier`\" pulumi-lang-yaml=\"`certIdentifier`\" pulumi-lang-java=\"`certIdentifier`\"\u003e`cert_identifier`\u003c/span\u003e is `123-cn-hangzhou`.\n","secret":true},"certName":{"type":"string","description":"The public key of the certificate that you want to associate. This parameter must be used together with the CertName and Key parameters.\n\n\u003e **NOTE:**   If you specify a value for the CertName, Cert, and Key parameters, you do not need to specify a value for the CertId parameter.\n"},"certRegion":{"type":"string","description":"The region of the certificate. `cn-hangzhou` and `ap-southeast-1` are supported. The default value is `cn-hangzhou`.\n","secret":true},"cname":{"type":"string","description":"The CNAME address to query.\n"},"customHeaders":{"type":"string","description":"The key-value pair of the custom header. The key specifies the header name, and the value specifies the header value. You can specify up to five key-value pairs. The key-value pairs can be up to 200 characters in length.\nTake note of the following items:\n- Do not use the following default HTTP headers:\n- X-Forwarded-ClientSrcPort: This header is used to obtain the source ports of clients that access Anti-DDoS Proxy (a Layer 7 proxy).\n- X-Forwarded-ProxyPort: This header is used to obtain the ports of listeners that access Anti-DDoS Proxy (a Layer 7 proxy).\n- X-Forwarded-For: This header is used to obtain the IP addresses of clients that access Anti-DDoS Proxy (a Layer 7 proxy).\n- Do not use standard HTTP headers or specific widely used custom HTTP headers. The standard HTTP headers include Host, User-Agent, Connection, and Upgrade, and the widely used custom HTTP headers include X-Real-IP, X-True-IP, X-Client-IP, Web-Server-Type, WL-Proxy-Client-IP, eEagleEye-RpcID, EagleEye-TraceID, X-Forwarded-Cluster, and X-Forwarded-Proto. If the preceding headers are used, the original content of the headers is overwritten.\n"},"domain":{"type":"string","description":"The domain name for which you want to configure the Static Page Caching policy.\n\n\u003e **NOTE:**  You can call the [DescribeDomains](https://www.alibabacloud.com/help/en/doc-detail/91724.html) operation to query all the domain names that are added to Anti-DDoS Pro or Anti-DDoS Premium.\n"},"httpsExt":{"type":"string","description":"The advanced HTTPS settings. This parameter takes effect only when the value of the `ProxyType` parameter includes \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e. The value is a string that consists of a JSON struct. The JSON struct contains the following fields:\n\n- `Http2https`: specifies whether to turn on Enforce HTTPS Routing. This field is optional and must be an integer. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. The value 0 indicates that Enforce HTTPS Routing is turned off. The value 1 indicates that Enforce HTTPS Routing is turned on. The default value is 0.\n\nIf your website supports both HTTP and HTTPS, this feature meets your business requirements. If you enable this feature, all HTTP requests to access the website are redirected to HTTPS requests on the standard port 443.\n\n- `Https2http`: specifies whether to turn on Enable HTTP. This field is optional and must be an integer. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. The value 0 indicates that Enable HTTP is turned off. The value 1 indicates that Enable HTTP is turned on. The default value is 0.\n\nIf your website does not support HTTPS, this feature meets your business requirements If this feature is enabled, all HTTPS requests are redirected to HTTP requests and forwarded to origin servers. This feature can redirect WebSockets requests to WebSocket requests. Requests are redirected over the standard port 80.\n\n- `Http2`: specifies whether to turn on Enable HTTP/2. This field is optional. Data type: integer. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. The value 0 indicates that Enable HTTP/2 is turned off. The value 1 indicates that Enable HTTP/2 is turned on. The default value is 0.\n\nAfter you turn on the switch, HTTP/2 is used.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"InstanceIds\n"},"key":{"type":"string","description":"The globally unique ID of the certificate. The value is in the \"Certificate ID-cn-hangzhou\" format. For example, if the ID of the certificate is 123, the value of the CertIdentifier parameter is 123-cn-hangzhou.\n\n\u003e **NOTE:**   You can specify only one of this parameter and the CertId parameter.\n","secret":true},"ocspEnabled":{"type":"boolean","description":"Specifies whether to enable the OCSP feature. Valid values:\n"},"proxyTypes":{"type":"array","items":{"$ref":"#/types/alicloud:ddos/DomainResourceProxyType:DomainResourceProxyType"},"description":"Protocol type and port number information. See \u003cspan pulumi-lang-nodejs=\"`proxyTypes`\" pulumi-lang-dotnet=\"`ProxyTypes`\" pulumi-lang-go=\"`proxyTypes`\" pulumi-lang-python=\"`proxy_types`\" pulumi-lang-yaml=\"`proxyTypes`\" pulumi-lang-java=\"`proxyTypes`\"\u003e`proxy_types`\u003c/span\u003e below.\n"},"realServers":{"type":"array","items":{"type":"string"},"description":"Server address information of the source station.\n"},"rsType":{"type":"integer","description":"The address type of the origin server. Valid values:\n"},"whiteLists":{"type":"array","items":{"type":"string"},"description":"IP whitelist list.\n"}},"required":["aiMode","aiTemplate","bwListEnable","ccGlobalSwitch","certName","cname","customHeaders","domain","httpsExt","instanceIds","proxyTypes","realServers","rsType"],"inputProperties":{"aiMode":{"type":"string","description":"the mode of the Intelligent Protection policy.\n- watch: the Warning mode\n- defense: the Defense mode\n"},"aiTemplate":{"type":"string","description":"the level of the Intelligent Protection policy.\n- level30: the Low level\n- level60: the Normal level\n- level90: the Strict level\n"},"blackLists":{"type":"array","items":{"type":"string"},"description":"ip blacklist\n"},"bwListEnable":{"type":"integer","description":"The status of the blacklist and whitelist feature. Valid values:\n- 0: Disabled\n- 1: Enabled\n"},"ccGlobalSwitch":{"type":"string","description":"CC safety protection switch.\n- 0: Disabled\n- 1: Enabled\n"},"cert":{"type":"string","description":"The private key of the certificate that you want to associate. This parameter must be used together with the CertName and Cert parameters.\n\n\u003e **NOTE:**   If you specify a value for the CertName, Cert, and Key parameters, you do not need to specify a value for the CertId parameter.\n","secret":true},"certIdentifier":{"type":"string","description":"The name of the certificate.\n\n\u003e **NOTE:**   You can specify the name of the certificate that you want to associate. From version 1.249.0, \u003cspan pulumi-lang-nodejs=\"`certIdentifier`\" pulumi-lang-dotnet=\"`CertIdentifier`\" pulumi-lang-go=\"`certIdentifier`\" pulumi-lang-python=\"`cert_identifier`\" pulumi-lang-yaml=\"`certIdentifier`\" pulumi-lang-java=\"`certIdentifier`\"\u003e`cert_identifier`\u003c/span\u003e is in the \"CertificateID-RegionId\" format. For example, if the ID of the certificateId is \u003cspan pulumi-lang-nodejs=\"`123`\" pulumi-lang-dotnet=\"`123`\" pulumi-lang-go=\"`123`\" pulumi-lang-python=\"`123`\" pulumi-lang-yaml=\"`123`\" pulumi-lang-java=\"`123`\"\u003e`123`\u003c/span\u003e, and the region ID is `cn-hangzhou`, the value of the \u003cspan pulumi-lang-nodejs=\"`certIdentifier`\" pulumi-lang-dotnet=\"`CertIdentifier`\" pulumi-lang-go=\"`certIdentifier`\" pulumi-lang-python=\"`cert_identifier`\" pulumi-lang-yaml=\"`certIdentifier`\" pulumi-lang-java=\"`certIdentifier`\"\u003e`cert_identifier`\u003c/span\u003e is `123-cn-hangzhou`.\n","secret":true},"certName":{"type":"string","description":"The public key of the certificate that you want to associate. This parameter must be used together with the CertName and Key parameters.\n\n\u003e **NOTE:**   If you specify a value for the CertName, Cert, and Key parameters, you do not need to specify a value for the CertId parameter.\n"},"certRegion":{"type":"string","description":"The region of the certificate. `cn-hangzhou` and `ap-southeast-1` are supported. The default value is `cn-hangzhou`.\n","secret":true},"customHeaders":{"type":"string","description":"The key-value pair of the custom header. The key specifies the header name, and the value specifies the header value. You can specify up to five key-value pairs. The key-value pairs can be up to 200 characters in length.\nTake note of the following items:\n- Do not use the following default HTTP headers:\n- X-Forwarded-ClientSrcPort: This header is used to obtain the source ports of clients that access Anti-DDoS Proxy (a Layer 7 proxy).\n- X-Forwarded-ProxyPort: This header is used to obtain the ports of listeners that access Anti-DDoS Proxy (a Layer 7 proxy).\n- X-Forwarded-For: This header is used to obtain the IP addresses of clients that access Anti-DDoS Proxy (a Layer 7 proxy).\n- Do not use standard HTTP headers or specific widely used custom HTTP headers. The standard HTTP headers include Host, User-Agent, Connection, and Upgrade, and the widely used custom HTTP headers include X-Real-IP, X-True-IP, X-Client-IP, Web-Server-Type, WL-Proxy-Client-IP, eEagleEye-RpcID, EagleEye-TraceID, X-Forwarded-Cluster, and X-Forwarded-Proto. If the preceding headers are used, the original content of the headers is overwritten.\n"},"domain":{"type":"string","description":"The domain name for which you want to configure the Static Page Caching policy.\n\n\u003e **NOTE:**  You can call the [DescribeDomains](https://www.alibabacloud.com/help/en/doc-detail/91724.html) operation to query all the domain names that are added to Anti-DDoS Pro or Anti-DDoS Premium.\n","willReplaceOnChanges":true},"httpsExt":{"type":"string","description":"The advanced HTTPS settings. This parameter takes effect only when the value of the `ProxyType` parameter includes \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e. The value is a string that consists of a JSON struct. The JSON struct contains the following fields:\n\n- `Http2https`: specifies whether to turn on Enforce HTTPS Routing. This field is optional and must be an integer. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. The value 0 indicates that Enforce HTTPS Routing is turned off. The value 1 indicates that Enforce HTTPS Routing is turned on. The default value is 0.\n\nIf your website supports both HTTP and HTTPS, this feature meets your business requirements. If you enable this feature, all HTTP requests to access the website are redirected to HTTPS requests on the standard port 443.\n\n- `Https2http`: specifies whether to turn on Enable HTTP. This field is optional and must be an integer. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. The value 0 indicates that Enable HTTP is turned off. The value 1 indicates that Enable HTTP is turned on. The default value is 0.\n\nIf your website does not support HTTPS, this feature meets your business requirements If this feature is enabled, all HTTPS requests are redirected to HTTP requests and forwarded to origin servers. This feature can redirect WebSockets requests to WebSocket requests. Requests are redirected over the standard port 80.\n\n- `Http2`: specifies whether to turn on Enable HTTP/2. This field is optional. Data type: integer. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. The value 0 indicates that Enable HTTP/2 is turned off. The value 1 indicates that Enable HTTP/2 is turned on. The default value is 0.\n\nAfter you turn on the switch, HTTP/2 is used.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"InstanceIds\n"},"key":{"type":"string","description":"The globally unique ID of the certificate. The value is in the \"Certificate ID-cn-hangzhou\" format. For example, if the ID of the certificate is 123, the value of the CertIdentifier parameter is 123-cn-hangzhou.\n\n\u003e **NOTE:**   You can specify only one of this parameter and the CertId parameter.\n","secret":true},"ocspEnabled":{"type":"boolean","description":"Specifies whether to enable the OCSP feature. Valid values:\n"},"proxyTypes":{"type":"array","items":{"$ref":"#/types/alicloud:ddos/DomainResourceProxyType:DomainResourceProxyType"},"description":"Protocol type and port number information. See \u003cspan pulumi-lang-nodejs=\"`proxyTypes`\" pulumi-lang-dotnet=\"`ProxyTypes`\" pulumi-lang-go=\"`proxyTypes`\" pulumi-lang-python=\"`proxy_types`\" pulumi-lang-yaml=\"`proxyTypes`\" pulumi-lang-java=\"`proxyTypes`\"\u003e`proxy_types`\u003c/span\u003e below.\n"},"realServers":{"type":"array","items":{"type":"string"},"description":"Server address information of the source station.\n"},"rsType":{"type":"integer","description":"The address type of the origin server. Valid values:\n"},"whiteLists":{"type":"array","items":{"type":"string"},"description":"IP whitelist list.\n"}},"requiredInputs":["domain","instanceIds","proxyTypes","realServers","rsType"],"stateInputs":{"description":"Input properties used for looking up and filtering DomainResource resources.\n","properties":{"aiMode":{"type":"string","description":"the mode of the Intelligent Protection policy.\n- watch: the Warning mode\n- defense: the Defense mode\n"},"aiTemplate":{"type":"string","description":"the level of the Intelligent Protection policy.\n- level30: the Low level\n- level60: the Normal level\n- level90: the Strict level\n"},"blackLists":{"type":"array","items":{"type":"string"},"description":"ip blacklist\n"},"bwListEnable":{"type":"integer","description":"The status of the blacklist and whitelist feature. Valid values:\n- 0: Disabled\n- 1: Enabled\n"},"ccGlobalSwitch":{"type":"string","description":"CC safety protection switch.\n- 0: Disabled\n- 1: Enabled\n"},"cert":{"type":"string","description":"The private key of the certificate that you want to associate. This parameter must be used together with the CertName and Cert parameters.\n\n\u003e **NOTE:**   If you specify a value for the CertName, Cert, and Key parameters, you do not need to specify a value for the CertId parameter.\n","secret":true},"certIdentifier":{"type":"string","description":"The name of the certificate.\n\n\u003e **NOTE:**   You can specify the name of the certificate that you want to associate. From version 1.249.0, \u003cspan pulumi-lang-nodejs=\"`certIdentifier`\" pulumi-lang-dotnet=\"`CertIdentifier`\" pulumi-lang-go=\"`certIdentifier`\" pulumi-lang-python=\"`cert_identifier`\" pulumi-lang-yaml=\"`certIdentifier`\" pulumi-lang-java=\"`certIdentifier`\"\u003e`cert_identifier`\u003c/span\u003e is in the \"CertificateID-RegionId\" format. For example, if the ID of the certificateId is \u003cspan pulumi-lang-nodejs=\"`123`\" pulumi-lang-dotnet=\"`123`\" pulumi-lang-go=\"`123`\" pulumi-lang-python=\"`123`\" pulumi-lang-yaml=\"`123`\" pulumi-lang-java=\"`123`\"\u003e`123`\u003c/span\u003e, and the region ID is `cn-hangzhou`, the value of the \u003cspan pulumi-lang-nodejs=\"`certIdentifier`\" pulumi-lang-dotnet=\"`CertIdentifier`\" pulumi-lang-go=\"`certIdentifier`\" pulumi-lang-python=\"`cert_identifier`\" pulumi-lang-yaml=\"`certIdentifier`\" pulumi-lang-java=\"`certIdentifier`\"\u003e`cert_identifier`\u003c/span\u003e is `123-cn-hangzhou`.\n","secret":true},"certName":{"type":"string","description":"The public key of the certificate that you want to associate. This parameter must be used together with the CertName and Key parameters.\n\n\u003e **NOTE:**   If you specify a value for the CertName, Cert, and Key parameters, you do not need to specify a value for the CertId parameter.\n"},"certRegion":{"type":"string","description":"The region of the certificate. `cn-hangzhou` and `ap-southeast-1` are supported. The default value is `cn-hangzhou`.\n","secret":true},"cname":{"type":"string","description":"The CNAME address to query.\n"},"customHeaders":{"type":"string","description":"The key-value pair of the custom header. The key specifies the header name, and the value specifies the header value. You can specify up to five key-value pairs. The key-value pairs can be up to 200 characters in length.\nTake note of the following items:\n- Do not use the following default HTTP headers:\n- X-Forwarded-ClientSrcPort: This header is used to obtain the source ports of clients that access Anti-DDoS Proxy (a Layer 7 proxy).\n- X-Forwarded-ProxyPort: This header is used to obtain the ports of listeners that access Anti-DDoS Proxy (a Layer 7 proxy).\n- X-Forwarded-For: This header is used to obtain the IP addresses of clients that access Anti-DDoS Proxy (a Layer 7 proxy).\n- Do not use standard HTTP headers or specific widely used custom HTTP headers. The standard HTTP headers include Host, User-Agent, Connection, and Upgrade, and the widely used custom HTTP headers include X-Real-IP, X-True-IP, X-Client-IP, Web-Server-Type, WL-Proxy-Client-IP, eEagleEye-RpcID, EagleEye-TraceID, X-Forwarded-Cluster, and X-Forwarded-Proto. If the preceding headers are used, the original content of the headers is overwritten.\n"},"domain":{"type":"string","description":"The domain name for which you want to configure the Static Page Caching policy.\n\n\u003e **NOTE:**  You can call the [DescribeDomains](https://www.alibabacloud.com/help/en/doc-detail/91724.html) operation to query all the domain names that are added to Anti-DDoS Pro or Anti-DDoS Premium.\n","willReplaceOnChanges":true},"httpsExt":{"type":"string","description":"The advanced HTTPS settings. This parameter takes effect only when the value of the `ProxyType` parameter includes \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e. The value is a string that consists of a JSON struct. The JSON struct contains the following fields:\n\n- `Http2https`: specifies whether to turn on Enforce HTTPS Routing. This field is optional and must be an integer. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. The value 0 indicates that Enforce HTTPS Routing is turned off. The value 1 indicates that Enforce HTTPS Routing is turned on. The default value is 0.\n\nIf your website supports both HTTP and HTTPS, this feature meets your business requirements. If you enable this feature, all HTTP requests to access the website are redirected to HTTPS requests on the standard port 443.\n\n- `Https2http`: specifies whether to turn on Enable HTTP. This field is optional and must be an integer. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. The value 0 indicates that Enable HTTP is turned off. The value 1 indicates that Enable HTTP is turned on. The default value is 0.\n\nIf your website does not support HTTPS, this feature meets your business requirements If this feature is enabled, all HTTPS requests are redirected to HTTP requests and forwarded to origin servers. This feature can redirect WebSockets requests to WebSocket requests. Requests are redirected over the standard port 80.\n\n- `Http2`: specifies whether to turn on Enable HTTP/2. This field is optional. Data type: integer. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. The value 0 indicates that Enable HTTP/2 is turned off. The value 1 indicates that Enable HTTP/2 is turned on. The default value is 0.\n\nAfter you turn on the switch, HTTP/2 is used.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"InstanceIds\n"},"key":{"type":"string","description":"The globally unique ID of the certificate. The value is in the \"Certificate ID-cn-hangzhou\" format. For example, if the ID of the certificate is 123, the value of the CertIdentifier parameter is 123-cn-hangzhou.\n\n\u003e **NOTE:**   You can specify only one of this parameter and the CertId parameter.\n","secret":true},"ocspEnabled":{"type":"boolean","description":"Specifies whether to enable the OCSP feature. Valid values:\n"},"proxyTypes":{"type":"array","items":{"$ref":"#/types/alicloud:ddos/DomainResourceProxyType:DomainResourceProxyType"},"description":"Protocol type and port number information. See \u003cspan pulumi-lang-nodejs=\"`proxyTypes`\" pulumi-lang-dotnet=\"`ProxyTypes`\" pulumi-lang-go=\"`proxyTypes`\" pulumi-lang-python=\"`proxy_types`\" pulumi-lang-yaml=\"`proxyTypes`\" pulumi-lang-java=\"`proxyTypes`\"\u003e`proxy_types`\u003c/span\u003e below.\n"},"realServers":{"type":"array","items":{"type":"string"},"description":"Server address information of the source station.\n"},"rsType":{"type":"integer","description":"The address type of the origin server. Valid values:\n"},"whiteLists":{"type":"array","items":{"type":"string"},"description":"IP whitelist list.\n"}},"type":"object"}},"alicloud:ddos/port:Port":{"description":"Provides a Ddos Coo Port resource.\n\n\nFor information about Anti-DDoS Pro Port and how to use it, see [What is Port](https://www.alibabacloud.com/help/en/ddos-protection/latest/api-ddoscoo-2020-01-01-createport).\n\n\u003e **NOTE:** Available since v1.123.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new alicloud.ddos.DdosCooInstance(\"default\", {\n    name: name,\n    bandwidth: \"30\",\n    baseBandwidth: \"30\",\n    serviceBandwidth: \"100\",\n    portCount: \"50\",\n    domainCount: \"50\",\n    period: 1,\n    productType: \"ddoscoo\",\n});\nconst defaultPort = new alicloud.ddos.Port(\"default\", {\n    instanceId: _default.id,\n    frontendPort: \"7001\",\n    backendPort: \"7002\",\n    frontendProtocol: \"tcp\",\n    realServers: [\n        \"1.1.1.1\",\n        \"2.2.2.2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.ddos.DdosCooInstance(\"default\",\n    name=name,\n    bandwidth=\"30\",\n    base_bandwidth=\"30\",\n    service_bandwidth=\"100\",\n    port_count=\"50\",\n    domain_count=\"50\",\n    period=1,\n    product_type=\"ddoscoo\")\ndefault_port = alicloud.ddos.Port(\"default\",\n    instance_id=default.id,\n    frontend_port=\"7001\",\n    backend_port=\"7002\",\n    frontend_protocol=\"tcp\",\n    real_servers=[\n        \"1.1.1.1\",\n        \"2.2.2.2\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new AliCloud.Ddos.DdosCooInstance(\"default\", new()\n    {\n        Name = name,\n        Bandwidth = \"30\",\n        BaseBandwidth = \"30\",\n        ServiceBandwidth = \"100\",\n        PortCount = \"50\",\n        DomainCount = \"50\",\n        Period = 1,\n        ProductType = \"ddoscoo\",\n    });\n\n    var defaultPort = new AliCloud.Ddos.Port(\"default\", new()\n    {\n        InstanceId = @default.Id,\n        FrontendPort = \"7001\",\n        BackendPort = \"7002\",\n        FrontendProtocol = \"tcp\",\n        RealServers = new[]\n        {\n            \"1.1.1.1\",\n            \"2.2.2.2\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := ddos.NewDdosCooInstance(ctx, \"default\", \u0026ddos.DdosCooInstanceArgs{\n\t\t\tName:             pulumi.String(name),\n\t\t\tBandwidth:        pulumi.String(\"30\"),\n\t\t\tBaseBandwidth:    pulumi.String(\"30\"),\n\t\t\tServiceBandwidth: pulumi.String(\"100\"),\n\t\t\tPortCount:        pulumi.String(\"50\"),\n\t\t\tDomainCount:      pulumi.String(\"50\"),\n\t\t\tPeriod:           pulumi.Int(1),\n\t\t\tProductType:      pulumi.String(\"ddoscoo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ddos.NewPort(ctx, \"default\", \u0026ddos.PortArgs{\n\t\t\tInstanceId:       _default.ID(),\n\t\t\tFrontendPort:     pulumi.String(\"7001\"),\n\t\t\tBackendPort:      pulumi.String(\"7002\"),\n\t\t\tFrontendProtocol: pulumi.String(\"tcp\"),\n\t\t\tRealServers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1.1.1.1\"),\n\t\t\t\tpulumi.String(\"2.2.2.2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ddos.DdosCooInstance;\nimport com.pulumi.alicloud.ddos.DdosCooInstanceArgs;\nimport com.pulumi.alicloud.ddos.Port;\nimport com.pulumi.alicloud.ddos.PortArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new DdosCooInstance(\"default\", DdosCooInstanceArgs.builder()\n            .name(name)\n            .bandwidth(\"30\")\n            .baseBandwidth(\"30\")\n            .serviceBandwidth(\"100\")\n            .portCount(\"50\")\n            .domainCount(\"50\")\n            .period(1)\n            .productType(\"ddoscoo\")\n            .build());\n\n        var defaultPort = new Port(\"defaultPort\", PortArgs.builder()\n            .instanceId(default_.id())\n            .frontendPort(\"7001\")\n            .backendPort(\"7002\")\n            .frontendProtocol(\"tcp\")\n            .realServers(            \n                \"1.1.1.1\",\n                \"2.2.2.2\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:ddos:DdosCooInstance\n    properties:\n      name: ${name}\n      bandwidth: '30'\n      baseBandwidth: '30'\n      serviceBandwidth: '100'\n      portCount: '50'\n      domainCount: '50'\n      period: '1'\n      productType: ddoscoo\n  defaultPort:\n    type: alicloud:ddos:Port\n    name: default\n    properties:\n      instanceId: ${default.id}\n      frontendPort: '7001'\n      backendPort: '7002'\n      frontendProtocol: tcp\n      realServers:\n        - 1.1.1.1\n        - 2.2.2.2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDdos Coo Port can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ddos/port:Port example \u003cinstance_id\u003e:\u003cfrontend_port\u003e:\u003cfrontend_protocol\u003e\n```\n\n","properties":{"backendPort":{"type":"string","description":"The port of the origin server. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n"},"config":{"$ref":"#/types/alicloud:ddos/PortConfig:PortConfig","description":"Session persistence settings for port forwarding rules. Use a string representation in JSON format. The specific structure is described as follows.\n- `PersistenceTimeout`: is of Integer type and is required. The timeout period of the session. Value range: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e, in seconds. The default value is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, which is closed. See \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e below.\n"},"frontendPort":{"type":"string","description":"The forwarding port to query. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n"},"frontendProtocol":{"type":"string","description":"The type of the forwarding protocol to query. Valid values:\n"},"instanceId":{"type":"string","description":"The ID of the Anti-DDoS Pro or Anti-DDoS Premium instance to which the port forwarding rule belongs.\n\n\u003e **NOTE:**  You can call the [DescribeInstanceIds](https://www.alibabacloud.com/help/en/doc-detail/157459.html) operation to query the IDs of all instances.\n"},"realServers":{"type":"array","items":{"type":"string"},"description":"List of source IP addresses\n"}},"required":["config","frontendPort","frontendProtocol","instanceId","realServers"],"inputProperties":{"backendPort":{"type":"string","description":"The port of the origin server. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n","willReplaceOnChanges":true},"config":{"$ref":"#/types/alicloud:ddos/PortConfig:PortConfig","description":"Session persistence settings for port forwarding rules. Use a string representation in JSON format. The specific structure is described as follows.\n- `PersistenceTimeout`: is of Integer type and is required. The timeout period of the session. Value range: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e, in seconds. The default value is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, which is closed. See \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e below.\n"},"frontendPort":{"type":"string","description":"The forwarding port to query. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n","willReplaceOnChanges":true},"frontendProtocol":{"type":"string","description":"The type of the forwarding protocol to query. Valid values:\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Anti-DDoS Pro or Anti-DDoS Premium instance to which the port forwarding rule belongs.\n\n\u003e **NOTE:**  You can call the [DescribeInstanceIds](https://www.alibabacloud.com/help/en/doc-detail/157459.html) operation to query the IDs of all instances.\n","willReplaceOnChanges":true},"realServers":{"type":"array","items":{"type":"string"},"description":"List of source IP addresses\n"}},"requiredInputs":["frontendPort","frontendProtocol","instanceId","realServers"],"stateInputs":{"description":"Input properties used for looking up and filtering Port resources.\n","properties":{"backendPort":{"type":"string","description":"The port of the origin server. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n","willReplaceOnChanges":true},"config":{"$ref":"#/types/alicloud:ddos/PortConfig:PortConfig","description":"Session persistence settings for port forwarding rules. Use a string representation in JSON format. The specific structure is described as follows.\n- `PersistenceTimeout`: is of Integer type and is required. The timeout period of the session. Value range: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e, in seconds. The default value is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, which is closed. See \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e below.\n"},"frontendPort":{"type":"string","description":"The forwarding port to query. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n","willReplaceOnChanges":true},"frontendProtocol":{"type":"string","description":"The type of the forwarding protocol to query. Valid values:\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Anti-DDoS Pro or Anti-DDoS Premium instance to which the port forwarding rule belongs.\n\n\u003e **NOTE:**  You can call the [DescribeInstanceIds](https://www.alibabacloud.com/help/en/doc-detail/157459.html) operation to query the IDs of all instances.\n","willReplaceOnChanges":true},"realServers":{"type":"array","items":{"type":"string"},"description":"List of source IP addresses\n"}},"type":"object"}},"alicloud:ddos/schedulerRule:SchedulerRule":{"description":"Provides a DdosCoo Scheduler Rule resource. For information about DdosCoo Scheduler Rule and how to use it, see[What is DdosCoo Scheduler Rule](https://www.alibabacloud.com/help/en/ddos-protection/latest/api-ddoscoo-2020-01-01-createschedulerrule).\n\n\u003e **NOTE:** Available since v1.86.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst example = new alicloud.ddos.SchedulerRule(\"example\", {\n    ruleName: name,\n    ruleType: 3,\n    rules: [\n        {\n            priority: 100,\n            regionId: \"cn-hangzhou\",\n            type: \"A\",\n            value: \"127.0.0.1\",\n            valueType: 3,\n        },\n        {\n            priority: 50,\n            regionId: \"cn-hangzhou\",\n            type: \"A\",\n            value: \"127.0.0.0\",\n            valueType: 1,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nexample = alicloud.ddos.SchedulerRule(\"example\",\n    rule_name=name,\n    rule_type=3,\n    rules=[\n        {\n            \"priority\": 100,\n            \"region_id\": \"cn-hangzhou\",\n            \"type\": \"A\",\n            \"value\": \"127.0.0.1\",\n            \"value_type\": 3,\n        },\n        {\n            \"priority\": 50,\n            \"region_id\": \"cn-hangzhou\",\n            \"type\": \"A\",\n            \"value\": \"127.0.0.0\",\n            \"value_type\": 1,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var example = new AliCloud.Ddos.SchedulerRule(\"example\", new()\n    {\n        RuleName = name,\n        RuleType = 3,\n        Rules = new[]\n        {\n            new AliCloud.Ddos.Inputs.SchedulerRuleRuleArgs\n            {\n                Priority = 100,\n                RegionId = \"cn-hangzhou\",\n                Type = \"A\",\n                Value = \"127.0.0.1\",\n                ValueType = 3,\n            },\n            new AliCloud.Ddos.Inputs.SchedulerRuleRuleArgs\n            {\n                Priority = 50,\n                RegionId = \"cn-hangzhou\",\n                Type = \"A\",\n                Value = \"127.0.0.0\",\n                ValueType = 1,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ddos.NewSchedulerRule(ctx, \"example\", \u0026ddos.SchedulerRuleArgs{\n\t\t\tRuleName: pulumi.String(name),\n\t\t\tRuleType: pulumi.Int(3),\n\t\t\tRules: ddos.SchedulerRuleRuleArray{\n\t\t\t\t\u0026ddos.SchedulerRuleRuleArgs{\n\t\t\t\t\tPriority:  pulumi.Int(100),\n\t\t\t\t\tRegionId:  pulumi.String(\"cn-hangzhou\"),\n\t\t\t\t\tType:      pulumi.String(\"A\"),\n\t\t\t\t\tValue:     pulumi.String(\"127.0.0.1\"),\n\t\t\t\t\tValueType: pulumi.Int(3),\n\t\t\t\t},\n\t\t\t\t\u0026ddos.SchedulerRuleRuleArgs{\n\t\t\t\t\tPriority:  pulumi.Int(50),\n\t\t\t\t\tRegionId:  pulumi.String(\"cn-hangzhou\"),\n\t\t\t\t\tType:      pulumi.String(\"A\"),\n\t\t\t\t\tValue:     pulumi.String(\"127.0.0.0\"),\n\t\t\t\t\tValueType: pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ddos.SchedulerRule;\nimport com.pulumi.alicloud.ddos.SchedulerRuleArgs;\nimport com.pulumi.alicloud.ddos.inputs.SchedulerRuleRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var example = new SchedulerRule(\"example\", SchedulerRuleArgs.builder()\n            .ruleName(name)\n            .ruleType(3)\n            .rules(            \n                SchedulerRuleRuleArgs.builder()\n                    .priority(100)\n                    .regionId(\"cn-hangzhou\")\n                    .type(\"A\")\n                    .value(\"127.0.0.1\")\n                    .valueType(3)\n                    .build(),\n                SchedulerRuleRuleArgs.builder()\n                    .priority(50)\n                    .regionId(\"cn-hangzhou\")\n                    .type(\"A\")\n                    .value(\"127.0.0.0\")\n                    .valueType(1)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  example:\n    type: alicloud:ddos:SchedulerRule\n    properties:\n      ruleName: ${name}\n      ruleType: 3\n      rules:\n        - priority: 100\n          regionId: cn-hangzhou\n          type: A\n          value: 127.0.0.1\n          valueType: 3\n        - priority: 50\n          regionId: cn-hangzhou\n          type: A\n          value: 127.0.0.0\n          valueType: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDdosCoo Scheduler Rule can be imported using the id or the rule name, e.g.\n\n```sh\n$ pulumi import alicloud:ddos/schedulerRule:SchedulerRule example fbb20dc77e8fc******\n```\n\n","properties":{"cname":{"type":"string","description":"The cname is the traffic scheduler corresponding to rules.\n"},"param":{"type":"string","description":"The scheduling rule for the Global Accelerator instance that interacts with Anti-DDoS Pro or Anti-DDoS Premium.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the anti-DDoS pro instance belongs in resource management. By default, no value is specified, indicating that the domains in the default resource group are listed.\n"},"ruleName":{"type":"string","description":"The name of the rule.\n"},"ruleType":{"type":"integer","description":"The rule type. Valid values:\n\u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: tiered protection.\n\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: globalization acceleration.\n\u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e: Cloud product interaction.\n"},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:ddos/SchedulerRuleRule:SchedulerRuleRule"},"description":"The information about the scheduling rules. See \u003cspan pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\"\u003e`rules`\u003c/span\u003e below.\n"}},"required":["cname","ruleName","ruleType","rules"],"inputProperties":{"param":{"type":"string","description":"The scheduling rule for the Global Accelerator instance that interacts with Anti-DDoS Pro or Anti-DDoS Premium.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the anti-DDoS pro instance belongs in resource management. By default, no value is specified, indicating that the domains in the default resource group are listed.\n"},"ruleName":{"type":"string","description":"The name of the rule.\n","willReplaceOnChanges":true},"ruleType":{"type":"integer","description":"The rule type. Valid values:\n\u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: tiered protection.\n\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: globalization acceleration.\n\u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e: Cloud product interaction.\n"},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:ddos/SchedulerRuleRule:SchedulerRuleRule"},"description":"The information about the scheduling rules. See \u003cspan pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\"\u003e`rules`\u003c/span\u003e below.\n"}},"requiredInputs":["ruleName","ruleType","rules"],"stateInputs":{"description":"Input properties used for looking up and filtering SchedulerRule resources.\n","properties":{"cname":{"type":"string","description":"The cname is the traffic scheduler corresponding to rules.\n"},"param":{"type":"string","description":"The scheduling rule for the Global Accelerator instance that interacts with Anti-DDoS Pro or Anti-DDoS Premium.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the anti-DDoS pro instance belongs in resource management. By default, no value is specified, indicating that the domains in the default resource group are listed.\n"},"ruleName":{"type":"string","description":"The name of the rule.\n","willReplaceOnChanges":true},"ruleType":{"type":"integer","description":"The rule type. Valid values:\n\u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: tiered protection.\n\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: globalization acceleration.\n\u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e: Cloud product interaction.\n"},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:ddos/SchedulerRuleRule:SchedulerRuleRule"},"description":"The information about the scheduling rules. See \u003cspan pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\"\u003e`rules`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:dfs/accessGroup:AccessGroup":{"description":"Provides a DFS Access Group resource. \n\nFor information about DFS Access Group and how to use it, see [What is Access Group](https://www.alibabacloud.com/help/en/aibaba-cloud-storage-services/latest/apsara-file-storage-for-hdfs).\n\n\u003e **NOTE:** Available since v1.133.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultAccessGroup = new alicloud.dfs.AccessGroup(\"default\", {\n    accessGroupName: `tf-example-${_default.result}`,\n    networkType: \"VPC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_access_group = alicloud.dfs.AccessGroup(\"default\",\n    access_group_name=f\"tf-example-{default['result']}\",\n    network_type=\"VPC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultAccessGroup = new AliCloud.Dfs.AccessGroup(\"default\", new()\n    {\n        AccessGroupName = $\"tf-example-{@default.Result}\",\n        NetworkType = \"VPC\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dfs\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dfs.NewAccessGroup(ctx, \"default\", \u0026dfs.AccessGroupArgs{\n\t\t\tAccessGroupName: pulumi.Sprintf(\"tf-example-%v\", _default.Result),\n\t\t\tNetworkType:     pulumi.String(\"VPC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.dfs.AccessGroup;\nimport com.pulumi.alicloud.dfs.AccessGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultAccessGroup = new AccessGroup(\"defaultAccessGroup\", AccessGroupArgs.builder()\n            .accessGroupName(String.format(\"tf-example-%s\", default_.result()))\n            .networkType(\"VPC\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultAccessGroup:\n    type: alicloud:dfs:AccessGroup\n    name: default\n    properties:\n      accessGroupName: tf-example-${default.result}\n      networkType: VPC\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDFS Access Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dfs/accessGroup:AccessGroup example \u003cid\u003e\n```\n\n","properties":{"accessGroupName":{"type":"string","description":"The permission group name. The naming rules are as follows: The length is 6~64 characters. Globally unique and cannot be an empty string. English letters are supported and can contain numbers, underscores (_), and dashes (-).\n"},"createTime":{"type":"string","description":"The creation time of the permission group resource.\n"},"description":{"type":"string","description":"The permission group description.  No more than 32 characters in length.\n"},"networkType":{"type":"string","description":"The permission group type. Only VPC (VPC) is supported.\n"}},"required":["accessGroupName","createTime","networkType"],"inputProperties":{"accessGroupName":{"type":"string","description":"The permission group name. The naming rules are as follows: The length is 6~64 characters. Globally unique and cannot be an empty string. English letters are supported and can contain numbers, underscores (_), and dashes (-).\n"},"description":{"type":"string","description":"The permission group description.  No more than 32 characters in length.\n"},"networkType":{"type":"string","description":"The permission group type. Only VPC (VPC) is supported.\n","willReplaceOnChanges":true}},"requiredInputs":["accessGroupName","networkType"],"stateInputs":{"description":"Input properties used for looking up and filtering AccessGroup resources.\n","properties":{"accessGroupName":{"type":"string","description":"The permission group name. The naming rules are as follows: The length is 6~64 characters. Globally unique and cannot be an empty string. English letters are supported and can contain numbers, underscores (_), and dashes (-).\n"},"createTime":{"type":"string","description":"The creation time of the permission group resource.\n"},"description":{"type":"string","description":"The permission group description.  No more than 32 characters in length.\n"},"networkType":{"type":"string","description":"The permission group type. Only VPC (VPC) is supported.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dfs/accessRule:AccessRule":{"description":"Provides a DFS Access Rule resource. \n\nFor information about DFS Access Rule and how to use it, see [What is Access Rule](https://www.alibabacloud.com/help/en/aibaba-cloud-storage-services/latest/apsara-file-storage-for-hdfs).\n\n\u003e **NOTE:** Available since v1.140.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"example_name\";\nconst _default = new alicloud.dfs.AccessGroup(\"default\", {\n    networkType: \"VPC\",\n    accessGroupName: name,\n    description: name,\n});\nconst defaultAccessRule = new alicloud.dfs.AccessRule(\"default\", {\n    networkSegment: \"192.0.2.0/24\",\n    accessGroupId: _default.id,\n    description: name,\n    rwAccessType: \"RDWR\",\n    priority: 10,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"example_name\"\ndefault = alicloud.dfs.AccessGroup(\"default\",\n    network_type=\"VPC\",\n    access_group_name=name,\n    description=name)\ndefault_access_rule = alicloud.dfs.AccessRule(\"default\",\n    network_segment=\"192.0.2.0/24\",\n    access_group_id=default.id,\n    description=name,\n    rw_access_type=\"RDWR\",\n    priority=10)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"example_name\";\n    var @default = new AliCloud.Dfs.AccessGroup(\"default\", new()\n    {\n        NetworkType = \"VPC\",\n        AccessGroupName = name,\n        Description = name,\n    });\n\n    var defaultAccessRule = new AliCloud.Dfs.AccessRule(\"default\", new()\n    {\n        NetworkSegment = \"192.0.2.0/24\",\n        AccessGroupId = @default.Id,\n        Description = name,\n        RwAccessType = \"RDWR\",\n        Priority = 10,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dfs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"example_name\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := dfs.NewAccessGroup(ctx, \"default\", \u0026dfs.AccessGroupArgs{\n\t\t\tNetworkType:     pulumi.String(\"VPC\"),\n\t\t\tAccessGroupName: pulumi.String(name),\n\t\t\tDescription:     pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dfs.NewAccessRule(ctx, \"default\", \u0026dfs.AccessRuleArgs{\n\t\t\tNetworkSegment: pulumi.String(\"192.0.2.0/24\"),\n\t\t\tAccessGroupId:  _default.ID(),\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tRwAccessType:   pulumi.String(\"RDWR\"),\n\t\t\tPriority:       pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dfs.AccessGroup;\nimport com.pulumi.alicloud.dfs.AccessGroupArgs;\nimport com.pulumi.alicloud.dfs.AccessRule;\nimport com.pulumi.alicloud.dfs.AccessRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"example_name\");\n        var default_ = new AccessGroup(\"default\", AccessGroupArgs.builder()\n            .networkType(\"VPC\")\n            .accessGroupName(name)\n            .description(name)\n            .build());\n\n        var defaultAccessRule = new AccessRule(\"defaultAccessRule\", AccessRuleArgs.builder()\n            .networkSegment(\"192.0.2.0/24\")\n            .accessGroupId(default_.id())\n            .description(name)\n            .rwAccessType(\"RDWR\")\n            .priority(10)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: example_name\nresources:\n  default:\n    type: alicloud:dfs:AccessGroup\n    properties:\n      networkType: VPC\n      accessGroupName: ${name}\n      description: ${name}\n  defaultAccessRule:\n    type: alicloud:dfs:AccessRule\n    name: default\n    properties:\n      networkSegment: 192.0.2.0/24\n      accessGroupId: ${default.id}\n      description: ${name}\n      rwAccessType: RDWR\n      priority: '10'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDFS Access Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dfs/accessRule:AccessRule example \u003caccess_group_id\u003e:\u003caccess_rule_id\u003e\n```\n\n","properties":{"accessGroupId":{"type":"string","description":"Permission group resource ID. You must specify the permission group ID when creating a permission rule.\n"},"accessRuleId":{"type":"string","description":"The unique identity of the permission rule, which is used to retrieve the permission rule for a specific day in the permission group.\n"},"createTime":{"type":"string","description":"Permission rule resource creation time.\n"},"description":{"type":"string","description":"Permission rule description.  No more than 32 characters in length.\n"},"networkSegment":{"type":"string","description":"The IP address or network segment of the authorized object.\n"},"priority":{"type":"integer","description":"Permission rule priority. When the same authorization object matches multiple rules, the high-priority rule takes effect. Value range: 1~100,1 is the highest priority.\n"},"rwAccessType":{"type":"string","description":"The read and write permissions of the authorized object on the file system. Value: RDWR: readable and writable RDONLY: Read only.\n"}},"required":["accessGroupId","accessRuleId","createTime","networkSegment","priority","rwAccessType"],"inputProperties":{"accessGroupId":{"type":"string","description":"Permission group resource ID. You must specify the permission group ID when creating a permission rule.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Permission rule description.  No more than 32 characters in length.\n"},"networkSegment":{"type":"string","description":"The IP address or network segment of the authorized object.\n","willReplaceOnChanges":true},"priority":{"type":"integer","description":"Permission rule priority. When the same authorization object matches multiple rules, the high-priority rule takes effect. Value range: 1~100,1 is the highest priority.\n"},"rwAccessType":{"type":"string","description":"The read and write permissions of the authorized object on the file system. Value: RDWR: readable and writable RDONLY: Read only.\n"}},"requiredInputs":["accessGroupId","networkSegment","priority","rwAccessType"],"stateInputs":{"description":"Input properties used for looking up and filtering AccessRule resources.\n","properties":{"accessGroupId":{"type":"string","description":"Permission group resource ID. You must specify the permission group ID when creating a permission rule.\n","willReplaceOnChanges":true},"accessRuleId":{"type":"string","description":"The unique identity of the permission rule, which is used to retrieve the permission rule for a specific day in the permission group.\n"},"createTime":{"type":"string","description":"Permission rule resource creation time.\n"},"description":{"type":"string","description":"Permission rule description.  No more than 32 characters in length.\n"},"networkSegment":{"type":"string","description":"The IP address or network segment of the authorized object.\n","willReplaceOnChanges":true},"priority":{"type":"integer","description":"Permission rule priority. When the same authorization object matches multiple rules, the high-priority rule takes effect. Value range: 1~100,1 is the highest priority.\n"},"rwAccessType":{"type":"string","description":"The read and write permissions of the authorized object on the file system. Value: RDWR: readable and writable RDONLY: Read only.\n"}},"type":"object"}},"alicloud:dfs/fileSystem:FileSystem":{"description":"Provides a Apsara File Storage for HDFS (DFS) File System resource.\n\n\n\nFor information about Apsara File Storage for HDFS (DFS) File System and how to use it, see [What is File System](https://www.alibabacloud.com/help/en/aibaba-cloud-storage-services/latest/apsara-file-storage-for-hdfs).\n\n\u003e **NOTE:** Available since v1.140.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new alicloud.dfs.FileSystem(\"default\", {\n    storageType: \"PERFORMANCE\",\n    zoneId: \"cn-hangzhou-b\",\n    protocolType: \"PANGU\",\n    description: name,\n    fileSystemName: name,\n    throughputMode: \"Provisioned\",\n    spaceCapacity: 1024,\n    provisionedThroughputInMiBps: 512,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.dfs.FileSystem(\"default\",\n    storage_type=\"PERFORMANCE\",\n    zone_id=\"cn-hangzhou-b\",\n    protocol_type=\"PANGU\",\n    description=name,\n    file_system_name=name,\n    throughput_mode=\"Provisioned\",\n    space_capacity=1024,\n    provisioned_throughput_in_mi_bps=512)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new AliCloud.Dfs.FileSystem(\"default\", new()\n    {\n        StorageType = \"PERFORMANCE\",\n        ZoneId = \"cn-hangzhou-b\",\n        ProtocolType = \"PANGU\",\n        Description = name,\n        FileSystemName = name,\n        ThroughputMode = \"Provisioned\",\n        SpaceCapacity = 1024,\n        ProvisionedThroughputInMiBps = 512,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dfs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := dfs.NewFileSystem(ctx, \"default\", \u0026dfs.FileSystemArgs{\n\t\t\tStorageType:                  pulumi.String(\"PERFORMANCE\"),\n\t\t\tZoneId:                       pulumi.String(\"cn-hangzhou-b\"),\n\t\t\tProtocolType:                 pulumi.String(\"PANGU\"),\n\t\t\tDescription:                  pulumi.String(name),\n\t\t\tFileSystemName:               pulumi.String(name),\n\t\t\tThroughputMode:               pulumi.String(\"Provisioned\"),\n\t\t\tSpaceCapacity:                pulumi.Int(1024),\n\t\t\tProvisionedThroughputInMiBps: pulumi.Int(512),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dfs.FileSystem;\nimport com.pulumi.alicloud.dfs.FileSystemArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new FileSystem(\"default\", FileSystemArgs.builder()\n            .storageType(\"PERFORMANCE\")\n            .zoneId(\"cn-hangzhou-b\")\n            .protocolType(\"PANGU\")\n            .description(name)\n            .fileSystemName(name)\n            .throughputMode(\"Provisioned\")\n            .spaceCapacity(1024)\n            .provisionedThroughputInMiBps(512)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:dfs:FileSystem\n    properties:\n      storageType: PERFORMANCE\n      zoneId: cn-hangzhou-b\n      protocolType: PANGU\n      description: ${name}\n      fileSystemName: ${name}\n      throughputMode: Provisioned\n      spaceCapacity: '1024'\n      provisionedThroughputInMiBps: '512'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApsara File Storage for HDFS (DFS) File System can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dfs/fileSystem:FileSystem example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the file system instance.\n"},"dataRedundancyType":{"type":"string","description":"Redundancy mode of the file system. Value:\n- LRS (default): Local redundancy.\n- ZRS: Same-City redundancy. When ZRS is selected, zoneId is a string consisting of multiple zones that are expected to be redundant in the same city, for example,  'zoneId1,zoneId2 '.\n"},"dedicatedClusterId":{"type":"string","description":"Dedicated cluster id, which is used to support scenarios such as group cloud migration.\n"},"description":{"type":"string","description":"The description of the file system resource. No more than 32 characters in length.\n"},"fileSystemName":{"type":"string","description":"The file system name. The naming rules are as follows: The length is 6~64 characters. Globally unique and cannot be an empty string. English letters are supported and can contain numbers, underscores (_), and dashes (-).\n"},"partitionNumber":{"type":"integer","description":"Save set sequence number, the user selects the content of the specified sequence number in the Save set.\n"},"protocolType":{"type":"string","description":"The protocol type. Value: `HDFS`, `PANGU`.\n"},"provisionedThroughputInMiBps":{"type":"integer","description":"Provisioned throughput. This parameter is required when ThroughputMode is set to Provisioned. Unit: MB/s Value range: 1~5120.\n"},"regionId":{"type":"string","description":"(Available since v1.242.0) The region ID of the File System.\n"},"spaceCapacity":{"type":"integer","description":"File system capacity.  When the actual amount of data stored reaches the capacity of the file system, data cannot be written.  Unit: GiB.\n"},"storageSetName":{"type":"string","description":"Save set identity, used to select a user-specified save set.\n"},"storageType":{"type":"string","description":"The storage media type. Value: STANDARD (default): STANDARD PERFORMANCE: PERFORMANCE type.\n"},"throughputMode":{"type":"string","description":"The throughput mode. Value: Standard (default): Standard throughput Provisioned: preset throughput.\n"},"zoneId":{"type":"string","description":"Zone Id, which is used to create file system resources to the specified zone.\n"}},"required":["createTime","fileSystemName","protocolType","regionId","spaceCapacity","storageType","throughputMode"],"inputProperties":{"dataRedundancyType":{"type":"string","description":"Redundancy mode of the file system. Value:\n- LRS (default): Local redundancy.\n- ZRS: Same-City redundancy. When ZRS is selected, zoneId is a string consisting of multiple zones that are expected to be redundant in the same city, for example,  'zoneId1,zoneId2 '.\n"},"dedicatedClusterId":{"type":"string","description":"Dedicated cluster id, which is used to support scenarios such as group cloud migration.\n"},"description":{"type":"string","description":"The description of the file system resource. No more than 32 characters in length.\n"},"fileSystemName":{"type":"string","description":"The file system name. The naming rules are as follows: The length is 6~64 characters. Globally unique and cannot be an empty string. English letters are supported and can contain numbers, underscores (_), and dashes (-).\n"},"partitionNumber":{"type":"integer","description":"Save set sequence number, the user selects the content of the specified sequence number in the Save set.\n"},"protocolType":{"type":"string","description":"The protocol type. Value: `HDFS`, `PANGU`.\n","willReplaceOnChanges":true},"provisionedThroughputInMiBps":{"type":"integer","description":"Provisioned throughput. This parameter is required when ThroughputMode is set to Provisioned. Unit: MB/s Value range: 1~5120.\n"},"spaceCapacity":{"type":"integer","description":"File system capacity.  When the actual amount of data stored reaches the capacity of the file system, data cannot be written.  Unit: GiB.\n"},"storageSetName":{"type":"string","description":"Save set identity, used to select a user-specified save set.\n"},"storageType":{"type":"string","description":"The storage media type. Value: STANDARD (default): STANDARD PERFORMANCE: PERFORMANCE type.\n","willReplaceOnChanges":true},"throughputMode":{"type":"string","description":"The throughput mode. Value: Standard (default): Standard throughput Provisioned: preset throughput.\n"},"zoneId":{"type":"string","description":"Zone Id, which is used to create file system resources to the specified zone.\n","willReplaceOnChanges":true}},"requiredInputs":["fileSystemName","protocolType","spaceCapacity","storageType"],"stateInputs":{"description":"Input properties used for looking up and filtering FileSystem resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the file system instance.\n"},"dataRedundancyType":{"type":"string","description":"Redundancy mode of the file system. Value:\n- LRS (default): Local redundancy.\n- ZRS: Same-City redundancy. When ZRS is selected, zoneId is a string consisting of multiple zones that are expected to be redundant in the same city, for example,  'zoneId1,zoneId2 '.\n"},"dedicatedClusterId":{"type":"string","description":"Dedicated cluster id, which is used to support scenarios such as group cloud migration.\n"},"description":{"type":"string","description":"The description of the file system resource. No more than 32 characters in length.\n"},"fileSystemName":{"type":"string","description":"The file system name. The naming rules are as follows: The length is 6~64 characters. Globally unique and cannot be an empty string. English letters are supported and can contain numbers, underscores (_), and dashes (-).\n"},"partitionNumber":{"type":"integer","description":"Save set sequence number, the user selects the content of the specified sequence number in the Save set.\n"},"protocolType":{"type":"string","description":"The protocol type. Value: `HDFS`, `PANGU`.\n","willReplaceOnChanges":true},"provisionedThroughputInMiBps":{"type":"integer","description":"Provisioned throughput. This parameter is required when ThroughputMode is set to Provisioned. Unit: MB/s Value range: 1~5120.\n"},"regionId":{"type":"string","description":"(Available since v1.242.0) The region ID of the File System.\n"},"spaceCapacity":{"type":"integer","description":"File system capacity.  When the actual amount of data stored reaches the capacity of the file system, data cannot be written.  Unit: GiB.\n"},"storageSetName":{"type":"string","description":"Save set identity, used to select a user-specified save set.\n"},"storageType":{"type":"string","description":"The storage media type. Value: STANDARD (default): STANDARD PERFORMANCE: PERFORMANCE type.\n","willReplaceOnChanges":true},"throughputMode":{"type":"string","description":"The throughput mode. Value: Standard (default): Standard throughput Provisioned: preset throughput.\n"},"zoneId":{"type":"string","description":"Zone Id, which is used to create file system resources to the specified zone.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dfs/mountPoint:MountPoint":{"description":"Provides a Apsara File Storage for HDFS (DFS) Mount Point resource. \n\nFor information about Apsara File Storage for HDFS (DFS) Mount Point and how to use it, see [What is Mount Point](https://www.alibabacloud.com/help/en/aibaba-cloud-storage-services/latest/apsara-file-storage-for-hdfs).\n\n\u003e **NOTE:** Available since v1.140.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: _default.id,\n    zoneId: \"cn-hangzhou-e\",\n});\nconst defaultFileSystem = new alicloud.dfs.FileSystem(\"default\", {\n    storageType: \"STANDARD\",\n    zoneId: \"cn-hangzhou-e\",\n    protocolType: \"PANGU\",\n    description: name,\n    fileSystemName: name,\n    throughputMode: \"Provisioned\",\n    spaceCapacity: 1024,\n    provisionedThroughputInMiBps: 512,\n});\nconst defaultAccessGroup = new alicloud.dfs.AccessGroup(\"default\", {\n    accessGroupName: name,\n    description: name,\n    networkType: \"VPC\",\n});\nconst defaultMountPoint = new alicloud.dfs.MountPoint(\"default\", {\n    description: name,\n    vpcId: _default.id,\n    fileSystemId: defaultFileSystem.id,\n    accessGroupId: defaultAccessGroup.id,\n    networkType: \"VPC\",\n    vswitchId: defaultSwitch.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default.id,\n    zone_id=\"cn-hangzhou-e\")\ndefault_file_system = alicloud.dfs.FileSystem(\"default\",\n    storage_type=\"STANDARD\",\n    zone_id=\"cn-hangzhou-e\",\n    protocol_type=\"PANGU\",\n    description=name,\n    file_system_name=name,\n    throughput_mode=\"Provisioned\",\n    space_capacity=1024,\n    provisioned_throughput_in_mi_bps=512)\ndefault_access_group = alicloud.dfs.AccessGroup(\"default\",\n    access_group_name=name,\n    description=name,\n    network_type=\"VPC\")\ndefault_mount_point = alicloud.dfs.MountPoint(\"default\",\n    description=name,\n    vpc_id=default.id,\n    file_system_id=default_file_system.id,\n    access_group_id=default_access_group.id,\n    network_type=\"VPC\",\n    vswitch_id=default_switch.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = @default.Id,\n        ZoneId = \"cn-hangzhou-e\",\n    });\n\n    var defaultFileSystem = new AliCloud.Dfs.FileSystem(\"default\", new()\n    {\n        StorageType = \"STANDARD\",\n        ZoneId = \"cn-hangzhou-e\",\n        ProtocolType = \"PANGU\",\n        Description = name,\n        FileSystemName = name,\n        ThroughputMode = \"Provisioned\",\n        SpaceCapacity = 1024,\n        ProvisionedThroughputInMiBps = 512,\n    });\n\n    var defaultAccessGroup = new AliCloud.Dfs.AccessGroup(\"default\", new()\n    {\n        AccessGroupName = name,\n        Description = name,\n        NetworkType = \"VPC\",\n    });\n\n    var defaultMountPoint = new AliCloud.Dfs.MountPoint(\"default\", new()\n    {\n        Description = name,\n        VpcId = @default.Id,\n        FileSystemId = defaultFileSystem.Id,\n        AccessGroupId = defaultAccessGroup.Id,\n        NetworkType = \"VPC\",\n        VswitchId = defaultSwitch.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dfs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       _default.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-e\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultFileSystem, err := dfs.NewFileSystem(ctx, \"default\", \u0026dfs.FileSystemArgs{\n\t\t\tStorageType:                  pulumi.String(\"STANDARD\"),\n\t\t\tZoneId:                       pulumi.String(\"cn-hangzhou-e\"),\n\t\t\tProtocolType:                 pulumi.String(\"PANGU\"),\n\t\t\tDescription:                  pulumi.String(name),\n\t\t\tFileSystemName:               pulumi.String(name),\n\t\t\tThroughputMode:               pulumi.String(\"Provisioned\"),\n\t\t\tSpaceCapacity:                pulumi.Int(1024),\n\t\t\tProvisionedThroughputInMiBps: pulumi.Int(512),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAccessGroup, err := dfs.NewAccessGroup(ctx, \"default\", \u0026dfs.AccessGroupArgs{\n\t\t\tAccessGroupName: pulumi.String(name),\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tNetworkType:     pulumi.String(\"VPC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dfs.NewMountPoint(ctx, \"default\", \u0026dfs.MountPointArgs{\n\t\t\tDescription:   pulumi.String(name),\n\t\t\tVpcId:         _default.ID(),\n\t\t\tFileSystemId:  defaultFileSystem.ID(),\n\t\t\tAccessGroupId: defaultAccessGroup.ID(),\n\t\t\tNetworkType:   pulumi.String(\"VPC\"),\n\t\t\tVswitchId:     defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.dfs.FileSystem;\nimport com.pulumi.alicloud.dfs.FileSystemArgs;\nimport com.pulumi.alicloud.dfs.AccessGroup;\nimport com.pulumi.alicloud.dfs.AccessGroupArgs;\nimport com.pulumi.alicloud.dfs.MountPoint;\nimport com.pulumi.alicloud.dfs.MountPointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(default_.id())\n            .zoneId(\"cn-hangzhou-e\")\n            .build());\n\n        var defaultFileSystem = new FileSystem(\"defaultFileSystem\", FileSystemArgs.builder()\n            .storageType(\"STANDARD\")\n            .zoneId(\"cn-hangzhou-e\")\n            .protocolType(\"PANGU\")\n            .description(name)\n            .fileSystemName(name)\n            .throughputMode(\"Provisioned\")\n            .spaceCapacity(1024)\n            .provisionedThroughputInMiBps(512)\n            .build());\n\n        var defaultAccessGroup = new AccessGroup(\"defaultAccessGroup\", AccessGroupArgs.builder()\n            .accessGroupName(name)\n            .description(name)\n            .networkType(\"VPC\")\n            .build());\n\n        var defaultMountPoint = new MountPoint(\"defaultMountPoint\", MountPointArgs.builder()\n            .description(name)\n            .vpcId(default_.id())\n            .fileSystemId(defaultFileSystem.id())\n            .accessGroupId(defaultAccessGroup.id())\n            .networkType(\"VPC\")\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${default.id}\n      zoneId: cn-hangzhou-e\n  defaultFileSystem:\n    type: alicloud:dfs:FileSystem\n    name: default\n    properties:\n      storageType: STANDARD\n      zoneId: cn-hangzhou-e\n      protocolType: PANGU\n      description: ${name}\n      fileSystemName: ${name}\n      throughputMode: Provisioned\n      spaceCapacity: '1024'\n      provisionedThroughputInMiBps: '512'\n  defaultAccessGroup:\n    type: alicloud:dfs:AccessGroup\n    name: default\n    properties:\n      accessGroupName: ${name}\n      description: ${name}\n      networkType: VPC\n  defaultMountPoint:\n    type: alicloud:dfs:MountPoint\n    name: default\n    properties:\n      description: ${name}\n      vpcId: ${default.id}\n      fileSystemId: ${defaultFileSystem.id}\n      accessGroupId: ${defaultAccessGroup.id}\n      networkType: VPC\n      vswitchId: ${defaultSwitch.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApsara File Storage for HDFS (DFS) Mount Point can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dfs/mountPoint:MountPoint example \u003cfile_system_id\u003e:\u003cmount_point_id\u003e\n```\n\n","properties":{"accessGroupId":{"type":"string","description":"The id of the permission group associated with the Mount point, which is used to set the access permissions of the Mount point.\n"},"aliasPrefix":{"type":"string","description":"The mount point alias prefix, which specifies the mount point alias prefix.\n"},"createTime":{"type":"string","description":"The creation time of the Mount point resource.\n"},"description":{"type":"string","description":"The description of the Mount point.  No more than 32 characters in length.\n"},"fileSystemId":{"type":"string","description":"Unique file system identifier, used to retrieve specified file system resources.\n"},"mountPointId":{"type":"string","description":"The unique identifier of the Mount point, which is used to retrieve the specified mount point resources.\n"},"networkType":{"type":"string","description":"The network type of the Mount point.  Only VPC (VPC) is supported.\n"},"regionId":{"type":"string","description":"(Available since v1.242.0) The region ID of the Mount Point.\n"},"status":{"type":"string","description":"Mount point status. Value: Inactive: Disable mount points Active: Activate the mount point.\n"},"vpcId":{"type":"string","description":"The ID of the VPC. Specifies the VPC environment to which the mount point belongs.\n"},"vswitchId":{"type":"string","description":"VSwitch ID, which specifies the VSwitch resource used to create the mount point.\n"}},"required":["accessGroupId","createTime","fileSystemId","mountPointId","networkType","regionId","status","vpcId","vswitchId"],"inputProperties":{"accessGroupId":{"type":"string","description":"The id of the permission group associated with the Mount point, which is used to set the access permissions of the Mount point.\n"},"aliasPrefix":{"type":"string","description":"The mount point alias prefix, which specifies the mount point alias prefix.\n"},"description":{"type":"string","description":"The description of the Mount point.  No more than 32 characters in length.\n"},"fileSystemId":{"type":"string","description":"Unique file system identifier, used to retrieve specified file system resources.\n","willReplaceOnChanges":true},"networkType":{"type":"string","description":"The network type of the Mount point.  Only VPC (VPC) is supported.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Mount point status. Value: Inactive: Disable mount points Active: Activate the mount point.\n"},"vpcId":{"type":"string","description":"The ID of the VPC. Specifies the VPC environment to which the mount point belongs.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"VSwitch ID, which specifies the VSwitch resource used to create the mount point.\n","willReplaceOnChanges":true}},"requiredInputs":["accessGroupId","fileSystemId","networkType","vpcId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering MountPoint resources.\n","properties":{"accessGroupId":{"type":"string","description":"The id of the permission group associated with the Mount point, which is used to set the access permissions of the Mount point.\n"},"aliasPrefix":{"type":"string","description":"The mount point alias prefix, which specifies the mount point alias prefix.\n"},"createTime":{"type":"string","description":"The creation time of the Mount point resource.\n"},"description":{"type":"string","description":"The description of the Mount point.  No more than 32 characters in length.\n"},"fileSystemId":{"type":"string","description":"Unique file system identifier, used to retrieve specified file system resources.\n","willReplaceOnChanges":true},"mountPointId":{"type":"string","description":"The unique identifier of the Mount point, which is used to retrieve the specified mount point resources.\n"},"networkType":{"type":"string","description":"The network type of the Mount point.  Only VPC (VPC) is supported.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"(Available since v1.242.0) The region ID of the Mount Point.\n"},"status":{"type":"string","description":"Mount point status. Value: Inactive: Disable mount points Active: Activate the mount point.\n"},"vpcId":{"type":"string","description":"The ID of the VPC. Specifies the VPC environment to which the mount point belongs.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"VSwitch ID, which specifies the VSwitch resource used to create the mount point.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dfs/vscMountPoint:VscMountPoint":{"description":"Provides a Apsara File Storage for HDFS (DFS) Vsc Mount Point resource.\n\nFor information about Apsara File Storage for HDFS (DFS) Vsc Mount Point and how to use it, see [What is Vsc Mount Point](https://www.alibabacloud.com/help/en/aibaba-cloud-storage-services/latest/apsara-file-storage-for-hdfs).\n\n\u003e **NOTE:** Available since v1.218.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultFileSystem = new alicloud.dfs.FileSystem(\"default\", {\n    spaceCapacity: 1024,\n    description: \"for vsc mountpoint RMC test\",\n    storageType: \"PERFORMANCE\",\n    zoneId: \"cn-hangzhou-b\",\n    protocolType: \"PANGU\",\n    dataRedundancyType: \"LRS\",\n    fileSystemName: name,\n});\nconst defaultFsForRMCVscMp = new alicloud.dfs.VscMountPoint(\"DefaultFsForRMCVscMp\", {\n    fileSystemId: defaultFileSystem.id,\n    aliasPrefix: name,\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_file_system = alicloud.dfs.FileSystem(\"default\",\n    space_capacity=1024,\n    description=\"for vsc mountpoint RMC test\",\n    storage_type=\"PERFORMANCE\",\n    zone_id=\"cn-hangzhou-b\",\n    protocol_type=\"PANGU\",\n    data_redundancy_type=\"LRS\",\n    file_system_name=name)\ndefault_fs_for_rmcvsc_mp = alicloud.dfs.VscMountPoint(\"DefaultFsForRMCVscMp\",\n    file_system_id=default_file_system.id,\n    alias_prefix=name,\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultFileSystem = new AliCloud.Dfs.FileSystem(\"default\", new()\n    {\n        SpaceCapacity = 1024,\n        Description = \"for vsc mountpoint RMC test\",\n        StorageType = \"PERFORMANCE\",\n        ZoneId = \"cn-hangzhou-b\",\n        ProtocolType = \"PANGU\",\n        DataRedundancyType = \"LRS\",\n        FileSystemName = name,\n    });\n\n    var defaultFsForRMCVscMp = new AliCloud.Dfs.VscMountPoint(\"DefaultFsForRMCVscMp\", new()\n    {\n        FileSystemId = defaultFileSystem.Id,\n        AliasPrefix = name,\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dfs\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultFileSystem, err := dfs.NewFileSystem(ctx, \"default\", \u0026dfs.FileSystemArgs{\n\t\t\tSpaceCapacity:      pulumi.Int(1024),\n\t\t\tDescription:        pulumi.String(\"for vsc mountpoint RMC test\"),\n\t\t\tStorageType:        pulumi.String(\"PERFORMANCE\"),\n\t\t\tZoneId:             pulumi.String(\"cn-hangzhou-b\"),\n\t\t\tProtocolType:       pulumi.String(\"PANGU\"),\n\t\t\tDataRedundancyType: pulumi.String(\"LRS\"),\n\t\t\tFileSystemName:     pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dfs.NewVscMountPoint(ctx, \"DefaultFsForRMCVscMp\", \u0026dfs.VscMountPointArgs{\n\t\t\tFileSystemId: defaultFileSystem.ID(),\n\t\t\tAliasPrefix:  pulumi.String(name),\n\t\t\tDescription:  pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.dfs.FileSystem;\nimport com.pulumi.alicloud.dfs.FileSystemArgs;\nimport com.pulumi.alicloud.dfs.VscMountPoint;\nimport com.pulumi.alicloud.dfs.VscMountPointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultFileSystem = new FileSystem(\"defaultFileSystem\", FileSystemArgs.builder()\n            .spaceCapacity(1024)\n            .description(\"for vsc mountpoint RMC test\")\n            .storageType(\"PERFORMANCE\")\n            .zoneId(\"cn-hangzhou-b\")\n            .protocolType(\"PANGU\")\n            .dataRedundancyType(\"LRS\")\n            .fileSystemName(name)\n            .build());\n\n        var defaultFsForRMCVscMp = new VscMountPoint(\"defaultFsForRMCVscMp\", VscMountPointArgs.builder()\n            .fileSystemId(defaultFileSystem.id())\n            .aliasPrefix(name)\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultFileSystem:\n    type: alicloud:dfs:FileSystem\n    name: default\n    properties:\n      spaceCapacity: '1024'\n      description: for vsc mountpoint RMC test\n      storageType: PERFORMANCE\n      zoneId: cn-hangzhou-b\n      protocolType: PANGU\n      dataRedundancyType: LRS\n      fileSystemName: ${name}\n  defaultFsForRMCVscMp:\n    type: alicloud:dfs:VscMountPoint\n    name: DefaultFsForRMCVscMp\n    properties:\n      fileSystemId: ${defaultFileSystem.id}\n      aliasPrefix: ${name}\n      description: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApsara File Storage for HDFS (DFS) Vsc Mount Point can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dfs/vscMountPoint:VscMountPoint example \u003cfile_system_id\u003e:\u003cmount_point_id\u003e\n```\n\n","properties":{"aliasPrefix":{"type":"string","description":"Mount point alias prefix, which is used as the prefix for generating VSC mount point aliases.\n"},"description":{"type":"string","description":"The description of the Mount point.  The length is 0 to 100 characters.\n"},"fileSystemId":{"type":"string","description":"The ID of the HDFS file system resource associated with the VSC mount point.\n"},"instances":{"type":"array","items":{"$ref":"#/types/alicloud:dfs/VscMountPointInstance:VscMountPointInstance"},"description":"The collection of ECS instances on which the HDFS file system is mounted. **The current property is not available**.\n"},"mountPointId":{"type":"string","description":"VSC mount point ID, which is the unique identifier of the vsc mount point and is used to access the associated HDFS file system.\n"}},"required":["fileSystemId","instances","mountPointId"],"inputProperties":{"aliasPrefix":{"type":"string","description":"Mount point alias prefix, which is used as the prefix for generating VSC mount point aliases.\n"},"description":{"type":"string","description":"The description of the Mount point.  The length is 0 to 100 characters.\n"},"fileSystemId":{"type":"string","description":"The ID of the HDFS file system resource associated with the VSC mount point.\n","willReplaceOnChanges":true}},"requiredInputs":["fileSystemId"],"stateInputs":{"description":"Input properties used for looking up and filtering VscMountPoint resources.\n","properties":{"aliasPrefix":{"type":"string","description":"Mount point alias prefix, which is used as the prefix for generating VSC mount point aliases.\n"},"description":{"type":"string","description":"The description of the Mount point.  The length is 0 to 100 characters.\n"},"fileSystemId":{"type":"string","description":"The ID of the HDFS file system resource associated with the VSC mount point.\n","willReplaceOnChanges":true},"instances":{"type":"array","items":{"$ref":"#/types/alicloud:dfs/VscMountPointInstance:VscMountPointInstance"},"description":"The collection of ECS instances on which the HDFS file system is mounted. **The current property is not available**.\n"},"mountPointId":{"type":"string","description":"VSC mount point ID, which is the unique identifier of the vsc mount point and is used to access the associated HDFS file system.\n"}},"type":"object"}},"alicloud:directmail/domain:Domain":{"description":"Provides a Direct Mail Domain resource.\n\nFor information about Direct Mail Domain and how to use it, see [What is Domain](https://www.alibabacloud.com/help/en/doc-detail/29414.htm).\n\n\u003e **NOTE:** Available since v1.134.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst example = new alicloud.directmail.Domain(\"example\", {domainName: `alicloud-provider-${_default.result}.online`});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample = alicloud.directmail.Domain(\"example\", domain_name=f\"alicloud-provider-{default['result']}.online\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var example = new AliCloud.DirectMail.Domain(\"example\", new()\n    {\n        DomainName = $\"alicloud-provider-{@default.Result}.online\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/directmail\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = directmail.NewDomain(ctx, \"example\", \u0026directmail.DomainArgs{\n\t\t\tDomainName: pulumi.Sprintf(\"alicloud-provider-%v.online\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.directmail.Domain;\nimport com.pulumi.alicloud.directmail.DomainArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var example = new Domain(\"example\", DomainArgs.builder()\n            .domainName(String.format(\"alicloud-provider-%s.online\", default_.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  example:\n    type: alicloud:directmail:Domain\n    properties:\n      domainName: alicloud-provider-${default.result}.online\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDirect Mail Domain can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:directmail/domain:Domain example \u003cid\u003e\n```\n\n","properties":{"domainName":{"type":"string","description":"Domain, length \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e, including numbers or capitals or lowercase letters or `.` or `-`\n"},"status":{"type":"string","description":"The status of the domain name. Valid values:\u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e:Available, Passed. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: Unavailable, No passed. \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: Available, cname no passed, icp no passed. \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: Available, icp no passed. \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e: Available, cname no passed.\n"}},"required":["domainName","status"],"inputProperties":{"domainName":{"type":"string","description":"Domain, length \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e, including numbers or capitals or lowercase letters or `.` or `-`\n","willReplaceOnChanges":true}},"requiredInputs":["domainName"],"stateInputs":{"description":"Input properties used for looking up and filtering Domain resources.\n","properties":{"domainName":{"type":"string","description":"Domain, length \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e, including numbers or capitals or lowercase letters or `.` or `-`\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the domain name. Valid values:\u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e:Available, Passed. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: Unavailable, No passed. \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: Available, cname no passed, icp no passed. \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: Available, icp no passed. \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e: Available, cname no passed.\n"}},"type":"object"}},"alicloud:directmail/mailAddress:MailAddress":{"description":"Provides a Direct Mail Mail Address resource.\n\nFor information about Direct Mail Mail Address and how to use it, see [What is Mail Address](https://www.alibabacloud.com/help/en/directmail/latest/set-up-sender-addresses).\n\n\u003e **NOTE:** Available since v1.134.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst accountName = config.get(\"accountName\") || \"tfexample\";\nconst domainName = config.get(\"domainName\") || \"alicloud-provider.online\";\nconst example = new alicloud.directmail.Domain(\"example\", {domainName: domainName});\nconst exampleMailAddress = new alicloud.directmail.MailAddress(\"example\", {\n    accountName: std.format({\n        input: \"%s@%s\",\n        args: [\n            accountName,\n            example.domainName,\n        ],\n    }).then(invoke =\u003e invoke.result),\n    sendtype: \"batch\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\naccount_name = config.get(\"accountName\")\nif account_name is None:\n    account_name = \"tfexample\"\ndomain_name = config.get(\"domainName\")\nif domain_name is None:\n    domain_name = \"alicloud-provider.online\"\nexample = alicloud.directmail.Domain(\"example\", domain_name=domain_name)\nexample_mail_address = alicloud.directmail.MailAddress(\"example\",\n    account_name=std.format(input=\"%s@%s\",\n        args=[\n            account_name,\n            example.domain_name,\n        ]).result,\n    sendtype=\"batch\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var accountName = config.Get(\"accountName\") ?? \"tfexample\";\n    var domainName = config.Get(\"domainName\") ?? \"alicloud-provider.online\";\n    var example = new AliCloud.DirectMail.Domain(\"example\", new()\n    {\n        DomainName = domainName,\n    });\n\n    var exampleMailAddress = new AliCloud.DirectMail.MailAddress(\"example\", new()\n    {\n        AccountName = Std.Format.Invoke(new()\n        {\n            Input = \"%s@%s\",\n            Args = new[]\n            {\n                accountName,\n                example.DomainName,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        Sendtype = \"batch\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/directmail\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\taccountName := \"tfexample\"\n\t\tif param := cfg.Get(\"accountName\"); param != \"\" {\n\t\t\taccountName = param\n\t\t}\n\t\tdomainName := \"alicloud-provider.online\"\n\t\tif param := cfg.Get(\"domainName\"); param != \"\" {\n\t\t\tdomainName = param\n\t\t}\n\t\texample, err := directmail.NewDomain(ctx, \"example\", \u0026directmail.DomainArgs{\n\t\t\tDomainName: pulumi.String(domainName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s@%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\taccountName,\n\t\t\t\texample.DomainName,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = directmail.NewMailAddress(ctx, \"example\", \u0026directmail.MailAddressArgs{\n\t\t\tAccountName: pulumi.String(invokeFormat.Result),\n\t\t\tSendtype:    pulumi.String(\"batch\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.directmail.Domain;\nimport com.pulumi.alicloud.directmail.DomainArgs;\nimport com.pulumi.alicloud.directmail.MailAddress;\nimport com.pulumi.alicloud.directmail.MailAddressArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var accountName = config.get(\"accountName\").orElse(\"tfexample\");\n        final var domainName = config.get(\"domainName\").orElse(\"alicloud-provider.online\");\n        var example = new Domain(\"example\", DomainArgs.builder()\n            .domainName(domainName)\n            .build());\n\n        var exampleMailAddress = new MailAddress(\"exampleMailAddress\", MailAddressArgs.builder()\n            .accountName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s@%s\")\n                .args(                \n                    accountName,\n                    example.domainName())\n                .build()).result())\n            .sendtype(\"batch\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  accountName:\n    type: string\n    default: tfexample\n  domainName:\n    type: string\n    default: alicloud-provider.online\nresources:\n  example:\n    type: alicloud:directmail:Domain\n    properties:\n      domainName: ${domainName}\n  exampleMailAddress:\n    type: alicloud:directmail:MailAddress\n    name: example\n    properties:\n      accountName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s@%s'\n            args:\n              - ${accountName}\n              - ${example.domainName}\n          return: result\n      sendtype: batch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **Note:**\nA maximum of 10 mailing addresses can be added.\nIndividual users: Up to 10 mailing addresses can be deleted within a month.\nEnterprise users: Up to 10 mailing addresses can be deleted within a month.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDirect Mail Mail Address can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:directmail/mailAddress:MailAddress example \u003cid\u003e\n```\n\n","properties":{"accountName":{"type":"string","description":"The sender address. The email address must be filled in the format of account@domain, and only lowercase letters or numbers can be used.\n"},"password":{"type":"string","description":"Account password. The password must be length 10-20 string, contains numbers, uppercase letters, lowercase letters at the same time.\n"},"replyAddress":{"type":"string","description":"Return address.\n"},"sendtype":{"type":"string","description":"Account type. Valid values: \u003cspan pulumi-lang-nodejs=\"`batch`\" pulumi-lang-dotnet=\"`Batch`\" pulumi-lang-go=\"`batch`\" pulumi-lang-python=\"`batch`\" pulumi-lang-yaml=\"`batch`\" pulumi-lang-java=\"`batch`\"\u003e`batch`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`trigger`\" pulumi-lang-dotnet=\"`Trigger`\" pulumi-lang-go=\"`trigger`\" pulumi-lang-python=\"`trigger`\" pulumi-lang-yaml=\"`trigger`\" pulumi-lang-java=\"`trigger`\"\u003e`trigger`\u003c/span\u003e.\n"},"status":{"type":"string","description":"Account Status freeze: 1, normal: 0.\n"}},"required":["accountName","sendtype","status"],"inputProperties":{"accountName":{"type":"string","description":"The sender address. The email address must be filled in the format of account@domain, and only lowercase letters or numbers can be used.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"Account password. The password must be length 10-20 string, contains numbers, uppercase letters, lowercase letters at the same time.\n"},"replyAddress":{"type":"string","description":"Return address.\n"},"sendtype":{"type":"string","description":"Account type. Valid values: \u003cspan pulumi-lang-nodejs=\"`batch`\" pulumi-lang-dotnet=\"`Batch`\" pulumi-lang-go=\"`batch`\" pulumi-lang-python=\"`batch`\" pulumi-lang-yaml=\"`batch`\" pulumi-lang-java=\"`batch`\"\u003e`batch`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`trigger`\" pulumi-lang-dotnet=\"`Trigger`\" pulumi-lang-go=\"`trigger`\" pulumi-lang-python=\"`trigger`\" pulumi-lang-yaml=\"`trigger`\" pulumi-lang-java=\"`trigger`\"\u003e`trigger`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["accountName","sendtype"],"stateInputs":{"description":"Input properties used for looking up and filtering MailAddress resources.\n","properties":{"accountName":{"type":"string","description":"The sender address. The email address must be filled in the format of account@domain, and only lowercase letters or numbers can be used.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"Account password. The password must be length 10-20 string, contains numbers, uppercase letters, lowercase letters at the same time.\n"},"replyAddress":{"type":"string","description":"Return address.\n"},"sendtype":{"type":"string","description":"Account type. Valid values: \u003cspan pulumi-lang-nodejs=\"`batch`\" pulumi-lang-dotnet=\"`Batch`\" pulumi-lang-go=\"`batch`\" pulumi-lang-python=\"`batch`\" pulumi-lang-yaml=\"`batch`\" pulumi-lang-java=\"`batch`\"\u003e`batch`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`trigger`\" pulumi-lang-dotnet=\"`Trigger`\" pulumi-lang-go=\"`trigger`\" pulumi-lang-python=\"`trigger`\" pulumi-lang-yaml=\"`trigger`\" pulumi-lang-java=\"`trigger`\"\u003e`trigger`\u003c/span\u003e.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Account Status freeze: 1, normal: 0.\n"}},"type":"object"}},"alicloud:directmail/receivers:Receivers":{"description":"Provides a Direct Mail Receivers resource.\n\nFor information about Direct Mail Receivers and how to use it, see [What is Direct Mail Receivers](https://www.alibabacloud.com/help/en/doc-detail/29414.htm).\n\n\u003e **NOTE:** Available since v1.125.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst example = new alicloud.directmail.Receivers(\"example\", {\n    receiversAlias: std.format({\n        input: \"%s@onaliyun.com\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    receiversName: name,\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\nexample = alicloud.directmail.Receivers(\"example\",\n    receivers_alias=std.format(input=\"%s@onaliyun.com\",\n        args=[name]).result,\n    receivers_name=name,\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var example = new AliCloud.DirectMail.Receivers(\"example\", new()\n    {\n        ReceiversAlias = Std.Format.Invoke(new()\n        {\n            Input = \"%s@onaliyun.com\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        ReceiversName = name,\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/directmail\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s@onaliyun.com\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = directmail.NewReceivers(ctx, \"example\", \u0026directmail.ReceiversArgs{\n\t\t\tReceiversAlias: pulumi.String(invokeFormat.Result),\n\t\t\tReceiversName:  pulumi.String(name),\n\t\t\tDescription:    pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.directmail.Receivers;\nimport com.pulumi.alicloud.directmail.ReceiversArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        var example = new Receivers(\"example\", ReceiversArgs.builder()\n            .receiversAlias(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s@onaliyun.com\")\n                .args(name)\n                .build()).result())\n            .receiversName(name)\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  example:\n    type: alicloud:directmail:Receivers\n    properties:\n      receiversAlias:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s@onaliyun.com'\n            args:\n              - ${name}\n          return: result\n      receiversName: ${name}\n      description: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDirect Mail Receivers can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:directmail/receivers:Receivers example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of receivers and 1-50 characters in length.\n"},"receiversAlias":{"type":"string","description":"The alias of receivers. Must email address and less than 30 characters in length.\n"},"receiversName":{"type":"string","description":"The name of the resource. The length that cannot be repeated is 1-30 characters.\n"},"status":{"type":"integer","description":"The status of the resource. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means uploading, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means upload completed.\n"}},"required":["receiversAlias","receiversName","status"],"inputProperties":{"description":{"type":"string","description":"The description of receivers and 1-50 characters in length.\n","willReplaceOnChanges":true},"receiversAlias":{"type":"string","description":"The alias of receivers. Must email address and less than 30 characters in length.\n","willReplaceOnChanges":true},"receiversName":{"type":"string","description":"The name of the resource. The length that cannot be repeated is 1-30 characters.\n","willReplaceOnChanges":true}},"requiredInputs":["receiversAlias","receiversName"],"stateInputs":{"description":"Input properties used for looking up and filtering Receivers resources.\n","properties":{"description":{"type":"string","description":"The description of receivers and 1-50 characters in length.\n","willReplaceOnChanges":true},"receiversAlias":{"type":"string","description":"The alias of receivers. Must email address and less than 30 characters in length.\n","willReplaceOnChanges":true},"receiversName":{"type":"string","description":"The name of the resource. The length that cannot be repeated is 1-30 characters.\n","willReplaceOnChanges":true},"status":{"type":"integer","description":"The status of the resource. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means uploading, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means upload completed.\n"}},"type":"object"}},"alicloud:directmail/tag:Tag":{"description":"Provides a Direct Mail Tag resource.\n\nFor information about Direct Mail Tag and how to use it, see [What is Tag](https://www.alibabacloud.com/help/en/directmail/latest/createtag).\n\n\u003e **NOTE:** Available since v1.144.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"example\";\nconst example = new alicloud.directmail.Tag(\"example\", {tagName: name});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"example\"\nexample = alicloud.directmail.Tag(\"example\", tag_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"example\";\n    var example = new AliCloud.DirectMail.Tag(\"example\", new()\n    {\n        TagName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/directmail\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := directmail.NewTag(ctx, \"example\", \u0026directmail.TagArgs{\n\t\t\tTagName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.directmail.Tag;\nimport com.pulumi.alicloud.directmail.TagArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"example\");\n        var example = new Tag(\"example\", TagArgs.builder()\n            .tagName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: example\nresources:\n  example:\n    type: alicloud:directmail:Tag\n    properties:\n      tagName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDirect Mail Tag can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:directmail/tag:Tag example \u003cid\u003e\n```\n\n","properties":{"tagName":{"type":"string","description":"The name of the tag. The name must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e characters in length, and can contain letters and digits.\n"}},"required":["tagName"],"inputProperties":{"tagName":{"type":"string","description":"The name of the tag. The name must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e characters in length, and can contain letters and digits.\n"}},"requiredInputs":["tagName"],"stateInputs":{"description":"Input properties used for looking up and filtering Tag resources.\n","properties":{"tagName":{"type":"string","description":"The name of the tag. The name must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e characters in length, and can contain letters and digits.\n"}},"type":"object"}},"alicloud:dms/airflow:Airflow":{"description":"Provides a Dms Airflow resource.\n\nAirflow instance, used to schedule jobs.\n\nFor information about Dms Airflow and how to use it, see [What is Airflow](https://next.api.alibabacloud.com/document/Dms/2025-04-14/CreateAirflow).\n\n\u003e **NOTE:** Available since v1.260.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = _default.then(_default =\u003e alicloud.vpc.getSwitches({\n    vpcId: _default.ids?.[0],\n    zoneId: \"cn-hangzhou-h\",\n}));\nconst securityGroup = new alicloud.ecs.SecurityGroup(\"security_group\", {\n    description: \"terraform_example_group\",\n    securityGroupName: \"terraform_example_group\",\n    vpcId: _default.then(_default =\u003e _default.ids?.[0]),\n    securityGroupType: \"normal\",\n    innerAccessPolicy: \"Accept\",\n});\nconst workspace = new alicloud.dms.EnterpriseWorkspace(\"workspace\", {\n    description: \"terraform-example\",\n    vpcId: _default.then(_default =\u003e _default.ids?.[0]),\n    workspaceName: \"terraform-example\",\n});\nconst defaultAirflow = new alicloud.dms.Airflow(\"default\", {\n    vpcId: _default.then(_default =\u003e _default.ids?.[0]),\n    ossPath: \"/\",\n    dagsDir: \"default/dags\",\n    zoneId: \"cn-hangzhou-h\",\n    workerServerlessReplicas: 0,\n    description: \"terraform-example\",\n    securityGroupId: securityGroup.id,\n    requirementFile: \"default/requirements.txt\",\n    airflowName: \"tfaccdms6513\",\n    pluginsDir: \"default/plugins\",\n    startupFile: \"default/startup.sh\",\n    appSpec: \"SMALL\",\n    ossBucketName: \"hansheng\",\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    workspaceId: workspace.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default.ids[0],\n    zone_id=\"cn-hangzhou-h\")\nsecurity_group = alicloud.ecs.SecurityGroup(\"security_group\",\n    description=\"terraform_example_group\",\n    security_group_name=\"terraform_example_group\",\n    vpc_id=default.ids[0],\n    security_group_type=\"normal\",\n    inner_access_policy=\"Accept\")\nworkspace = alicloud.dms.EnterpriseWorkspace(\"workspace\",\n    description=\"terraform-example\",\n    vpc_id=default.ids[0],\n    workspace_name=\"terraform-example\")\ndefault_airflow = alicloud.dms.Airflow(\"default\",\n    vpc_id=default.ids[0],\n    oss_path=\"/\",\n    dags_dir=\"default/dags\",\n    zone_id=\"cn-hangzhou-h\",\n    worker_serverless_replicas=0,\n    description=\"terraform-example\",\n    security_group_id=security_group.id,\n    requirement_file=\"default/requirements.txt\",\n    airflow_name=\"tfaccdms6513\",\n    plugins_dir=\"default/plugins\",\n    startup_file=\"default/startup.sh\",\n    app_spec=\"SMALL\",\n    oss_bucket_name=\"hansheng\",\n    vswitch_id=default_get_switches.ids[0],\n    workspace_id=workspace.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = \"cn-hangzhou-h\",\n    });\n\n    var securityGroup = new AliCloud.Ecs.SecurityGroup(\"security_group\", new()\n    {\n        Description = \"terraform_example_group\",\n        SecurityGroupName = \"terraform_example_group\",\n        VpcId = @default.Apply(@default =\u003e @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0])),\n        SecurityGroupType = \"normal\",\n        InnerAccessPolicy = \"Accept\",\n    });\n\n    var workspace = new AliCloud.Dms.EnterpriseWorkspace(\"workspace\", new()\n    {\n        Description = \"terraform-example\",\n        VpcId = @default.Apply(@default =\u003e @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0])),\n        WorkspaceName = \"terraform-example\",\n    });\n\n    var defaultAirflow = new AliCloud.Dms.Airflow(\"default\", new()\n    {\n        VpcId = @default.Apply(@default =\u003e @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0])),\n        OssPath = \"/\",\n        DagsDir = \"default/dags\",\n        ZoneId = \"cn-hangzhou-h\",\n        WorkerServerlessReplicas = 0,\n        Description = \"terraform-example\",\n        SecurityGroupId = securityGroup.Id,\n        RequirementFile = \"default/requirements.txt\",\n        AirflowName = \"tfaccdms6513\",\n        PluginsDir = \"default/plugins\",\n        StartupFile = \"default/startup.sh\",\n        AppSpec = \"SMALL\",\n        OssBucketName = \"hansheng\",\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        WorkspaceId = workspace.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(_default.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(\"cn-hangzhou-h\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecurityGroup, err := ecs.NewSecurityGroup(ctx, \"security_group\", \u0026ecs.SecurityGroupArgs{\n\t\t\tDescription:       pulumi.String(\"terraform_example_group\"),\n\t\t\tSecurityGroupName: pulumi.String(\"terraform_example_group\"),\n\t\t\tVpcId:             pulumi.String(_default.Ids[0]),\n\t\t\tSecurityGroupType: pulumi.String(\"normal\"),\n\t\t\tInnerAccessPolicy: pulumi.String(\"Accept\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tworkspace, err := dms.NewEnterpriseWorkspace(ctx, \"workspace\", \u0026dms.EnterpriseWorkspaceArgs{\n\t\t\tDescription:   pulumi.String(\"terraform-example\"),\n\t\t\tVpcId:         pulumi.String(_default.Ids[0]),\n\t\t\tWorkspaceName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dms.NewAirflow(ctx, \"default\", \u0026dms.AirflowArgs{\n\t\t\tVpcId:                    pulumi.String(_default.Ids[0]),\n\t\t\tOssPath:                  pulumi.String(\"/\"),\n\t\t\tDagsDir:                  pulumi.String(\"default/dags\"),\n\t\t\tZoneId:                   pulumi.String(\"cn-hangzhou-h\"),\n\t\t\tWorkerServerlessReplicas: pulumi.Int(0),\n\t\t\tDescription:              pulumi.String(\"terraform-example\"),\n\t\t\tSecurityGroupId:          securityGroup.ID(),\n\t\t\tRequirementFile:          pulumi.String(\"default/requirements.txt\"),\n\t\t\tAirflowName:              pulumi.String(\"tfaccdms6513\"),\n\t\t\tPluginsDir:               pulumi.String(\"default/plugins\"),\n\t\t\tStartupFile:              pulumi.String(\"default/startup.sh\"),\n\t\t\tAppSpec:                  pulumi.String(\"SMALL\"),\n\t\t\tOssBucketName:            pulumi.String(\"hansheng\"),\n\t\t\tVswitchId:                pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tWorkspaceId:              workspace.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.dms.EnterpriseWorkspace;\nimport com.pulumi.alicloud.dms.EnterpriseWorkspaceArgs;\nimport com.pulumi.alicloud.dms.Airflow;\nimport com.pulumi.alicloud.dms.AirflowArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(default_.ids()[0])\n            .zoneId(\"cn-hangzhou-h\")\n            .build());\n\n        var securityGroup = new SecurityGroup(\"securityGroup\", SecurityGroupArgs.builder()\n            .description(\"terraform_example_group\")\n            .securityGroupName(\"terraform_example_group\")\n            .vpcId(default_.ids()[0])\n            .securityGroupType(\"normal\")\n            .innerAccessPolicy(\"Accept\")\n            .build());\n\n        var workspace = new EnterpriseWorkspace(\"workspace\", EnterpriseWorkspaceArgs.builder()\n            .description(\"terraform-example\")\n            .vpcId(default_.ids()[0])\n            .workspaceName(\"terraform-example\")\n            .build());\n\n        var defaultAirflow = new Airflow(\"defaultAirflow\", AirflowArgs.builder()\n            .vpcId(default_.ids()[0])\n            .ossPath(\"/\")\n            .dagsDir(\"default/dags\")\n            .zoneId(\"cn-hangzhou-h\")\n            .workerServerlessReplicas(0)\n            .description(\"terraform-example\")\n            .securityGroupId(securityGroup.id())\n            .requirementFile(\"default/requirements.txt\")\n            .airflowName(\"tfaccdms6513\")\n            .pluginsDir(\"default/plugins\")\n            .startupFile(\"default/startup.sh\")\n            .appSpec(\"SMALL\")\n            .ossBucketName(\"hansheng\")\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .workspaceId(workspace.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  securityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: security_group\n    properties:\n      description: terraform_example_group\n      securityGroupName: terraform_example_group\n      vpcId: ${default.ids[0]}\n      securityGroupType: normal\n      innerAccessPolicy: Accept\n  workspace:\n    type: alicloud:dms:EnterpriseWorkspace\n    properties:\n      description: terraform-example\n      vpcId: ${default.ids[0]}\n      workspaceName: terraform-example\n  defaultAirflow:\n    type: alicloud:dms:Airflow\n    name: default\n    properties:\n      vpcId: ${default.ids[0]}\n      ossPath: /\n      dagsDir: default/dags\n      zoneId: cn-hangzhou-h\n      workerServerlessReplicas: '0'\n      description: terraform-example\n      securityGroupId: ${securityGroup.id}\n      requirementFile: default/requirements.txt\n      airflowName: tfaccdms6513\n      pluginsDir: default/plugins\n      startupFile: default/startup.sh\n      appSpec: SMALL\n      ossBucketName: hansheng\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      workspaceId: ${workspace.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${default.ids[0]}\n        zoneId: cn-hangzhou-h\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDms Airflow can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dms/airflow:Airflow example \u003cworkspace_id\u003e:\u003cairflow_id\u003e\n```\n\n","properties":{"airflowId":{"type":"string","description":"AirflowId\n"},"airflowName":{"type":"string","description":"Name of the Airflow instance\n"},"appSpec":{"type":"string","description":"Airflow instance specifications\n"},"dagsDir":{"type":"string","description":"Dag scan path\n"},"description":{"type":"string","description":"Description of the airflow instance\n"},"ossBucketName":{"type":"string","description":"OSS bucket name\n"},"ossPath":{"type":"string","description":"OSS path\n"},"pluginsDir":{"type":"string","description":"The path of the plugin scanned by the airflow instance.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"requirementFile":{"type":"string","description":"Path to installable package\n"},"securityGroupId":{"type":"string","description":"Security group ID\n"},"startupFile":{"type":"string","description":"Launch script for the airflow container\n"},"vpcId":{"type":"string","description":"Vpc id\n"},"vswitchId":{"type":"string","description":"Switch ID\n"},"workerServerlessReplicas":{"type":"integer","description":"Worker Node extension\n"},"workspaceId":{"type":"string","description":"DMS workspace ID\n"},"zoneId":{"type":"string","description":"Zone ID in the region\n"}},"required":["airflowId","airflowName","appSpec","description","ossBucketName","ossPath","regionId","securityGroupId","vpcId","vswitchId","workerServerlessReplicas","workspaceId","zoneId"],"inputProperties":{"airflowName":{"type":"string","description":"Name of the Airflow instance\n"},"appSpec":{"type":"string","description":"Airflow instance specifications\n"},"dagsDir":{"type":"string","description":"Dag scan path\n"},"description":{"type":"string","description":"Description of the airflow instance\n"},"ossBucketName":{"type":"string","description":"OSS bucket name\n","willReplaceOnChanges":true},"ossPath":{"type":"string","description":"OSS path\n","willReplaceOnChanges":true},"pluginsDir":{"type":"string","description":"The path of the plugin scanned by the airflow instance.\n"},"requirementFile":{"type":"string","description":"Path to installable package\n"},"securityGroupId":{"type":"string","description":"Security group ID\n","willReplaceOnChanges":true},"startupFile":{"type":"string","description":"Launch script for the airflow container\n"},"vpcId":{"type":"string","description":"Vpc id\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"Switch ID\n","willReplaceOnChanges":true},"workerServerlessReplicas":{"type":"integer","description":"Worker Node extension\n"},"workspaceId":{"type":"string","description":"DMS workspace ID\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"Zone ID in the region\n","willReplaceOnChanges":true}},"requiredInputs":["airflowName","appSpec","description","ossBucketName","ossPath","securityGroupId","vpcId","vswitchId","workerServerlessReplicas","workspaceId","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering Airflow resources.\n","properties":{"airflowId":{"type":"string","description":"AirflowId\n"},"airflowName":{"type":"string","description":"Name of the Airflow instance\n"},"appSpec":{"type":"string","description":"Airflow instance specifications\n"},"dagsDir":{"type":"string","description":"Dag scan path\n"},"description":{"type":"string","description":"Description of the airflow instance\n"},"ossBucketName":{"type":"string","description":"OSS bucket name\n","willReplaceOnChanges":true},"ossPath":{"type":"string","description":"OSS path\n","willReplaceOnChanges":true},"pluginsDir":{"type":"string","description":"The path of the plugin scanned by the airflow instance.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"requirementFile":{"type":"string","description":"Path to installable package\n"},"securityGroupId":{"type":"string","description":"Security group ID\n","willReplaceOnChanges":true},"startupFile":{"type":"string","description":"Launch script for the airflow container\n"},"vpcId":{"type":"string","description":"Vpc id\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"Switch ID\n","willReplaceOnChanges":true},"workerServerlessReplicas":{"type":"integer","description":"Worker Node extension\n"},"workspaceId":{"type":"string","description":"DMS workspace ID\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"Zone ID in the region\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dms/enterpriseAuthorityTemplate:EnterpriseAuthorityTemplate":{"description":"Provides a DMS Enterprise Authority Template resource. \n\nFor information about DMS Enterprise Authority Template and how to use it, see [What is Authority Template](https://www.alibabacloud.com/help/en/dms/developer-reference/api-dms-enterprise-2018-11-01-createauthoritytemplate).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.dms.getUserTenants({\n    status: \"ACTIVE\",\n});\nconst defaultEnterpriseAuthorityTemplate = new alicloud.dms.EnterpriseAuthorityTemplate(\"default\", {\n    tid: _default.then(_default =\u003e _default.ids?.[0]),\n    authorityTemplateName: name,\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.dms.get_user_tenants(status=\"ACTIVE\")\ndefault_enterprise_authority_template = alicloud.dms.EnterpriseAuthorityTemplate(\"default\",\n    tid=default.ids[0],\n    authority_template_name=name,\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Dms.GetUserTenants.Invoke(new()\n    {\n        Status = \"ACTIVE\",\n    });\n\n    var defaultEnterpriseAuthorityTemplate = new AliCloud.Dms.EnterpriseAuthorityTemplate(\"default\", new()\n    {\n        Tid = @default.Apply(@default =\u003e @default.Apply(getUserTenantsResult =\u003e getUserTenantsResult.Ids[0])),\n        AuthorityTemplateName = name,\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := dms.GetUserTenants(ctx, \u0026dms.GetUserTenantsArgs{\n\t\t\tStatus: pulumi.StringRef(\"ACTIVE\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dms.NewEnterpriseAuthorityTemplate(ctx, \"default\", \u0026dms.EnterpriseAuthorityTemplateArgs{\n\t\t\tTid:                   pulumi.String(_default.Ids[0]),\n\t\t\tAuthorityTemplateName: pulumi.String(name),\n\t\t\tDescription:           pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dms.DmsFunctions;\nimport com.pulumi.alicloud.dms.inputs.GetUserTenantsArgs;\nimport com.pulumi.alicloud.dms.EnterpriseAuthorityTemplate;\nimport com.pulumi.alicloud.dms.EnterpriseAuthorityTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = DmsFunctions.getUserTenants(GetUserTenantsArgs.builder()\n            .status(\"ACTIVE\")\n            .build());\n\n        var defaultEnterpriseAuthorityTemplate = new EnterpriseAuthorityTemplate(\"defaultEnterpriseAuthorityTemplate\", EnterpriseAuthorityTemplateArgs.builder()\n            .tid(default_.ids()[0])\n            .authorityTemplateName(name)\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultEnterpriseAuthorityTemplate:\n    type: alicloud:dms:EnterpriseAuthorityTemplate\n    name: default\n    properties:\n      tid: ${default.ids[0]}\n      authorityTemplateName: ${name}\n      description: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:dms:getUserTenants\n      arguments:\n        status: ACTIVE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDMS Enterprise Authority Template can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dms/enterpriseAuthorityTemplate:EnterpriseAuthorityTemplate example \u003ctid\u003e:\u003cauthority_template_id\u003e\n```\n\n","properties":{"authorityTemplateId":{"type":"integer","description":"Permission template ID.\n"},"authorityTemplateName":{"type":"string","description":"Permission Template name.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"description":{"type":"string","description":"Permission template description information.\n"},"tid":{"type":"integer","description":"Tenant ID.\n"}},"required":["authorityTemplateId","authorityTemplateName","createTime","tid"],"inputProperties":{"authorityTemplateName":{"type":"string","description":"Permission Template name.\n"},"description":{"type":"string","description":"Permission template description information.\n"},"tid":{"type":"integer","description":"Tenant ID.\n","willReplaceOnChanges":true}},"requiredInputs":["authorityTemplateName","tid"],"stateInputs":{"description":"Input properties used for looking up and filtering EnterpriseAuthorityTemplate resources.\n","properties":{"authorityTemplateId":{"type":"integer","description":"Permission template ID.\n"},"authorityTemplateName":{"type":"string","description":"Permission Template name.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"description":{"type":"string","description":"Permission template description information.\n"},"tid":{"type":"integer","description":"Tenant ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dms/enterpriseInstance:EnterpriseInstance":{"description":"Provides a DMS Enterprise Instance resource.\n\n\u003e **NOTE:** API users must first register in DMS.\n\n\u003e **NOTE:** Available since v1.81.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst current = alicloud.getAccount({});\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultGetUserTenants = alicloud.dms.getUserTenants({\n    status: \"ACTIVE\",\n});\nconst defaultGetZones = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"HighAvailability\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst defaultGetInstanceClasses = defaultGetZones.then(defaultGetZones =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: defaultGetZones.zones?.[0]?.id,\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    category: \"HighAvailability\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceChargeType: \"PostPaid\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.rds.Instance(\"default\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceType: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    vswitchId: defaultSwitch.id,\n    instanceName: name,\n    securityIps: [\n        \"100.104.5.0/24\",\n        \"192.168.0.6\",\n    ],\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst defaultAccount = new alicloud.rds.Account(\"default\", {\n    dbInstanceId: defaultInstance.id,\n    accountName: \"tfexamplename\",\n    accountPassword: \"Example12345\",\n    accountType: \"Normal\",\n});\nconst defaultEnterpriseInstance = new alicloud.dms.EnterpriseInstance(\"default\", {\n    tid: defaultGetUserTenants.then(defaultGetUserTenants =\u003e defaultGetUserTenants.ids?.[0]),\n    instanceType: \"mysql\",\n    instanceSource: \"RDS\",\n    networkType: \"VPC\",\n    envType: \"dev\",\n    host: defaultInstance.connectionString,\n    port: 3306,\n    databaseUser: defaultAccount.accountName,\n    databasePassword: defaultAccount.accountPassword,\n    instanceName: name,\n    dbaUid: current.then(current =\u003e current.id),\n    safeRule: \"904496\",\n    useDsql: 1,\n    queryTimeout: 60,\n    exportTimeout: 600,\n    ecsRegion: _default.then(_default =\u003e _default.regions?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ncurrent = alicloud.get_account()\ndefault = alicloud.get_regions(current=True)\ndefault_get_user_tenants = alicloud.dms.get_user_tenants(status=\"ACTIVE\")\ndefault_get_zones = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"HighAvailability\",\n    db_instance_storage_type=\"cloud_essd\")\ndefault_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=default_get_zones.zones[0].id,\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    category=\"HighAvailability\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_charge_type=\"PostPaid\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.rds.Instance(\"default\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_type=default_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=default_get_instance_classes.instance_classes[0].storage_range.min,\n    vswitch_id=default_switch.id,\n    instance_name=name,\n    security_ips=[\n        \"100.104.5.0/24\",\n        \"192.168.0.6\",\n    ],\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\ndefault_account = alicloud.rds.Account(\"default\",\n    db_instance_id=default_instance.id,\n    account_name=\"tfexamplename\",\n    account_password=\"Example12345\",\n    account_type=\"Normal\")\ndefault_enterprise_instance = alicloud.dms.EnterpriseInstance(\"default\",\n    tid=default_get_user_tenants.ids[0],\n    instance_type=\"mysql\",\n    instance_source=\"RDS\",\n    network_type=\"VPC\",\n    env_type=\"dev\",\n    host=default_instance.connection_string,\n    port=3306,\n    database_user=default_account.account_name,\n    database_password=default_account.account_password,\n    instance_name=name,\n    dba_uid=current.id,\n    safe_rule=\"904496\",\n    use_dsql=1,\n    query_timeout=60,\n    export_timeout=600,\n    ecs_region=default.regions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var current = AliCloud.GetAccount.Invoke();\n\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultGetUserTenants = AliCloud.Dms.GetUserTenants.Invoke(new()\n    {\n        Status = \"ACTIVE\",\n    });\n\n    var defaultGetZones = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"HighAvailability\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var defaultGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        Category = \"HighAvailability\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Rds.Instance(\"default\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceType = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        VswitchId = defaultSwitch.Id,\n        InstanceName = name,\n        SecurityIps = new[]\n        {\n            \"100.104.5.0/24\",\n            \"192.168.0.6\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var defaultAccount = new AliCloud.Rds.Account(\"default\", new()\n    {\n        DbInstanceId = defaultInstance.Id,\n        AccountName = \"tfexamplename\",\n        AccountPassword = \"Example12345\",\n        AccountType = \"Normal\",\n    });\n\n    var defaultEnterpriseInstance = new AliCloud.Dms.EnterpriseInstance(\"default\", new()\n    {\n        Tid = defaultGetUserTenants.Apply(getUserTenantsResult =\u003e getUserTenantsResult.Ids[0]),\n        InstanceType = \"mysql\",\n        InstanceSource = \"RDS\",\n        NetworkType = \"VPC\",\n        EnvType = \"dev\",\n        Host = defaultInstance.ConnectionString,\n        Port = 3306,\n        DatabaseUser = defaultAccount.AccountName,\n        DatabasePassword = defaultAccount.AccountPassword,\n        InstanceName = name,\n        DbaUid = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n        SafeRule = \"904496\",\n        UseDsql = 1,\n        QueryTimeout = 60,\n        ExportTimeout = 600,\n        EcsRegion = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcurrent, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetUserTenants, err := dms.GetUserTenants(ctx, \u0026dms.GetUserTenantsArgs{\n\t\t\tStatus: pulumi.StringRef(\"ACTIVE\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"HighAvailability\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(defaultGetZones.Zones[0].Id),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tCategory:              pulumi.StringRef(\"HighAvailability\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rds.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tInstanceType:          pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceStorage:       pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tVswitchId:             defaultSwitch.ID(),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t\tSecurityIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"100.104.5.0/24\"),\n\t\t\t\tpulumi.String(\"192.168.0.6\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAccount, err := rds.NewAccount(ctx, \"default\", \u0026rds.AccountArgs{\n\t\t\tDbInstanceId:    defaultInstance.ID(),\n\t\t\tAccountName:     pulumi.String(\"tfexamplename\"),\n\t\t\tAccountPassword: pulumi.String(\"Example12345\"),\n\t\t\tAccountType:     pulumi.String(\"Normal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dms.NewEnterpriseInstance(ctx, \"default\", \u0026dms.EnterpriseInstanceArgs{\n\t\t\tTid:              pulumi.String(defaultGetUserTenants.Ids[0]),\n\t\t\tInstanceType:     pulumi.String(\"mysql\"),\n\t\t\tInstanceSource:   pulumi.String(\"RDS\"),\n\t\t\tNetworkType:      pulumi.String(\"VPC\"),\n\t\t\tEnvType:          pulumi.String(\"dev\"),\n\t\t\tHost:             defaultInstance.ConnectionString,\n\t\t\tPort:             pulumi.Int(3306),\n\t\t\tDatabaseUser:     defaultAccount.AccountName,\n\t\t\tDatabasePassword: defaultAccount.AccountPassword,\n\t\t\tInstanceName:     pulumi.String(name),\n\t\t\tDbaUid:           pulumi.String(current.Id),\n\t\t\tSafeRule:         pulumi.String(\"904496\"),\n\t\t\tUseDsql:          pulumi.Int(1),\n\t\t\tQueryTimeout:     pulumi.Int(60),\n\t\t\tExportTimeout:    pulumi.Int(600),\n\t\t\tEcsRegion:        pulumi.String(_default.Regions[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.dms.DmsFunctions;\nimport com.pulumi.alicloud.dms.inputs.GetUserTenantsArgs;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.Account;\nimport com.pulumi.alicloud.rds.AccountArgs;\nimport com.pulumi.alicloud.dms.EnterpriseInstance;\nimport com.pulumi.alicloud.dms.EnterpriseInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var current = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var defaultGetUserTenants = DmsFunctions.getUserTenants(GetUserTenantsArgs.builder()\n            .status(\"ACTIVE\")\n            .build());\n\n        final var defaultGetZones = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"HighAvailability\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var defaultGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(defaultGetZones.zones()[0].id())\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .category(\"HighAvailability\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceType(defaultGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(defaultGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .vswitchId(defaultSwitch.id())\n            .instanceName(name)\n            .securityIps(            \n                \"100.104.5.0/24\",\n                \"192.168.0.6\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var defaultAccount = new Account(\"defaultAccount\", AccountArgs.builder()\n            .dbInstanceId(defaultInstance.id())\n            .accountName(\"tfexamplename\")\n            .accountPassword(\"Example12345\")\n            .accountType(\"Normal\")\n            .build());\n\n        var defaultEnterpriseInstance = new EnterpriseInstance(\"defaultEnterpriseInstance\", EnterpriseInstanceArgs.builder()\n            .tid(defaultGetUserTenants.ids()[0])\n            .instanceType(\"mysql\")\n            .instanceSource(\"RDS\")\n            .networkType(\"VPC\")\n            .envType(\"dev\")\n            .host(defaultInstance.connectionString())\n            .port(3306)\n            .databaseUser(defaultAccount.accountName())\n            .databasePassword(defaultAccount.accountPassword())\n            .instanceName(name)\n            .dbaUid(current.id())\n            .safeRule(\"904496\")\n            .useDsql(1)\n            .queryTimeout(60)\n            .exportTimeout(600)\n            .ecsRegion(default_.regions()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:rds:Instance\n    name: default\n    properties:\n      engine: MySQL\n      engineVersion: '8.0'\n      dbInstanceStorageType: cloud_essd\n      instanceType: ${defaultGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceStorage: ${defaultGetInstanceClasses.instanceClasses[0].storageRange.min}\n      vswitchId: ${defaultSwitch.id}\n      instanceName: ${name}\n      securityIps:\n        - 100.104.5.0/24\n        - 192.168.0.6\n      tags:\n        Created: TF\n        For: example\n  defaultAccount:\n    type: alicloud:rds:Account\n    name: default\n    properties:\n      dbInstanceId: ${defaultInstance.id}\n      accountName: tfexamplename\n      accountPassword: Example12345\n      accountType: Normal\n  defaultEnterpriseInstance:\n    type: alicloud:dms:EnterpriseInstance\n    name: default\n    properties:\n      tid: ${defaultGetUserTenants.ids[0]}\n      instanceType: mysql\n      instanceSource: RDS\n      networkType: VPC\n      envType: dev\n      host: ${defaultInstance.connectionString}\n      port: 3306\n      databaseUser: ${defaultAccount.accountName}\n      databasePassword: ${defaultAccount.accountPassword}\n      instanceName: ${name}\n      dbaUid: ${current.id}\n      safeRule: '904496'\n      useDsql: 1\n      queryTimeout: 60\n      exportTimeout: 600\n      ecsRegion: ${default.regions[0].id}\nvariables:\n  current:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetUserTenants:\n    fn::invoke:\n      function: alicloud:dms:getUserTenants\n      arguments:\n        status: ACTIVE\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: PostPaid\n        category: HighAvailability\n        dbInstanceStorageType: cloud_essd\n  defaultGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${defaultGetZones.zones[0].id}\n        engine: MySQL\n        engineVersion: '8.0'\n        category: HighAvailability\n        dbInstanceStorageType: cloud_essd\n        instanceChargeType: PostPaid\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDMS Enterprise can be imported using host and port, e.g.\n\n```sh\n$ pulumi import alicloud:dms/enterpriseInstance:EnterpriseInstance example rm-uf648hgs7874xxxx.mysql.rds.aliyuncs.com:3306\n```\n\n","properties":{"dataLinkName":{"type":"string","description":"Cross-database query datalink name.\n"},"databasePassword":{"type":"string","description":"Database access password.\n","secret":true},"databaseUser":{"type":"string","description":"Database access account.\n"},"dbaId":{"type":"string","description":"The dba id of the database instance.\n"},"dbaNickName":{"type":"string","description":"The instance dba nickname.\n"},"dbaUid":{"type":"integer","description":"The DBA of the instance is passed into the Alibaba Cloud uid of the DBA.\n"},"ddlOnline":{"type":"integer","description":"Whether to use online services, currently only supports MySQL and PolarDB. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e Not used, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e Native online DDL priority, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e DMS lock-free table structure change priority.\n"},"ecsInstanceId":{"type":"string","description":"ECS instance ID. The value of InstanceSource is the ECS self-built library. This value must be passed.\n"},"ecsRegion":{"type":"string","description":"The region where the instance is located. This value must be passed when the value of InstanceSource is RDS, ECS self-built library, and VPC dedicated line IDC.\n"},"envType":{"type":"string","description":"Environment type. Valid values: \u003cspan pulumi-lang-nodejs=\"`product`\" pulumi-lang-dotnet=\"`Product`\" pulumi-lang-go=\"`product`\" pulumi-lang-python=\"`product`\" pulumi-lang-yaml=\"`product`\" pulumi-lang-java=\"`product`\"\u003e`product`\u003c/span\u003e production environment, \u003cspan pulumi-lang-nodejs=\"`dev`\" pulumi-lang-dotnet=\"`Dev`\" pulumi-lang-go=\"`dev`\" pulumi-lang-python=\"`dev`\" pulumi-lang-yaml=\"`dev`\" pulumi-lang-java=\"`dev`\"\u003e`dev`\u003c/span\u003e development environment, \u003cspan pulumi-lang-nodejs=\"`pre`\" pulumi-lang-dotnet=\"`Pre`\" pulumi-lang-go=\"`pre`\" pulumi-lang-python=\"`pre`\" pulumi-lang-yaml=\"`pre`\" pulumi-lang-java=\"`pre`\"\u003e`pre`\u003c/span\u003e pre-release environment, \u003cspan pulumi-lang-nodejs=\"`test`\" pulumi-lang-dotnet=\"`Test`\" pulumi-lang-go=\"`test`\" pulumi-lang-python=\"`test`\" pulumi-lang-yaml=\"`test`\" pulumi-lang-java=\"`test`\"\u003e`test`\u003c/span\u003e test environment, \u003cspan pulumi-lang-nodejs=\"`sit`\" pulumi-lang-dotnet=\"`Sit`\" pulumi-lang-go=\"`sit`\" pulumi-lang-python=\"`sit`\" pulumi-lang-yaml=\"`sit`\" pulumi-lang-java=\"`sit`\"\u003e`sit`\u003c/span\u003e SIT environment, \u003cspan pulumi-lang-nodejs=\"`uat`\" pulumi-lang-dotnet=\"`Uat`\" pulumi-lang-go=\"`uat`\" pulumi-lang-python=\"`uat`\" pulumi-lang-yaml=\"`uat`\" pulumi-lang-java=\"`uat`\"\u003e`uat`\u003c/span\u003e UAT environment, \u003cspan pulumi-lang-nodejs=\"`pet`\" pulumi-lang-dotnet=\"`Pet`\" pulumi-lang-go=\"`pet`\" pulumi-lang-python=\"`pet`\" pulumi-lang-yaml=\"`pet`\" pulumi-lang-java=\"`pet`\"\u003e`pet`\u003c/span\u003e pressure test environment, \u003cspan pulumi-lang-nodejs=\"`stag`\" pulumi-lang-dotnet=\"`Stag`\" pulumi-lang-go=\"`stag`\" pulumi-lang-python=\"`stag`\" pulumi-lang-yaml=\"`stag`\" pulumi-lang-java=\"`stag`\"\u003e`stag`\u003c/span\u003e STAG environment.\n"},"exportTimeout":{"type":"integer","description":"Export timeout, unit: s (seconds).\n"},"host":{"type":"string","description":"Host address of the target database.\n"},"instanceAlias":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`instanceAlias`\" pulumi-lang-dotnet=\"`InstanceAlias`\" pulumi-lang-go=\"`instanceAlias`\" pulumi-lang-python=\"`instance_alias`\" pulumi-lang-yaml=\"`instanceAlias`\" pulumi-lang-java=\"`instanceAlias`\"\u003e`instance_alias`\u003c/span\u003e has been deprecated from version 1.100.0. Use \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'instance_alias' has been deprecated from version 1.100.0. Use 'instance_name' instead."},"instanceId":{"type":"string","description":"The instance id of the database instance.\n"},"instanceName":{"type":"string","description":"Instance name, to help users quickly distinguish positioning.\n"},"instanceSource":{"type":"string","description":"The source of the database instance. Valid values: `PUBLIC_OWN`, `RDS`, `ECS_OWN`, `VPC_IDC`.\n"},"instanceType":{"type":"string","description":"Database type. Valid values: `MySQL`, `SQLServer`, `PostgreSQL`, `Oracle,` `DRDS`, `OceanBase`, `Mongo`, `Redis`.\n"},"networkType":{"type":"string","description":"Network type. Valid values: `CLASSIC`, `VPC`.\n"},"port":{"type":"integer","description":"Access port of the target database.\n"},"queryTimeout":{"type":"integer","description":"Query timeout time, unit: s (seconds).\n"},"safeRule":{"type":"string","description":"The security rule of the instance is passed into the name of the security rule in the enterprise.\n"},"safeRuleId":{"type":"string","description":"The safe rule id of the database instance.\n"},"sellTrust":{"type":"boolean","description":"Whether to enable the security hosting feature for the database instance. Possible values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n~\u003e**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`databaseUser`\" pulumi-lang-dotnet=\"`DatabaseUser`\" pulumi-lang-go=\"`databaseUser`\" pulumi-lang-python=\"`database_user`\" pulumi-lang-yaml=\"`databaseUser`\" pulumi-lang-java=\"`databaseUser`\"\u003e`database_user`\u003c/span\u003e will be encrypted if \u003cspan pulumi-lang-nodejs=\"`sellTrust`\" pulumi-lang-dotnet=\"`SellTrust`\" pulumi-lang-go=\"`sellTrust`\" pulumi-lang-python=\"`sell_trust`\" pulumi-lang-yaml=\"`sellTrust`\" pulumi-lang-java=\"`sellTrust`\"\u003e`sell_trust`\u003c/span\u003e set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"sid":{"type":"string","description":"The SID. This value must be passed when InstanceType is PostgreSQL or Oracle.\n"},"skipTest":{"type":"boolean","description":"Whether the instance ignores test connectivity. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"state":{"type":"string","description":"It has been deprecated from provider version 1.100.0 and 'status' instead.\n","deprecationMessage":"Field 'state' has been deprecated from version 1.100.0. Use 'status' instead."},"status":{"type":"string","description":"The instance status.\n"},"tid":{"type":"integer","description":"The tenant ID.\n"},"useDsql":{"type":"integer","description":"Whether to enable cross-instance query. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e not open, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e open.\n"},"vpcId":{"type":"string","description":"VPC ID. This value must be passed when the value of InstanceSource is VPC dedicated line IDC.\n"}},"required":["dataLinkName","databasePassword","databaseUser","dbaId","dbaNickName","dbaUid","ecsInstanceId","envType","exportTimeout","host","instanceAlias","instanceId","instanceName","instanceSource","instanceType","networkType","port","queryTimeout","safeRule","safeRuleId","sellTrust","state","status","useDsql"],"inputProperties":{"dataLinkName":{"type":"string","description":"Cross-database query datalink name.\n"},"databasePassword":{"type":"string","description":"Database access password.\n","secret":true},"databaseUser":{"type":"string","description":"Database access account.\n"},"dbaId":{"type":"string","description":"The dba id of the database instance.\n"},"dbaUid":{"type":"integer","description":"The DBA of the instance is passed into the Alibaba Cloud uid of the DBA.\n","willReplaceOnChanges":true},"ddlOnline":{"type":"integer","description":"Whether to use online services, currently only supports MySQL and PolarDB. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e Not used, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e Native online DDL priority, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e DMS lock-free table structure change priority.\n"},"ecsInstanceId":{"type":"string","description":"ECS instance ID. The value of InstanceSource is the ECS self-built library. This value must be passed.\n"},"ecsRegion":{"type":"string","description":"The region where the instance is located. This value must be passed when the value of InstanceSource is RDS, ECS self-built library, and VPC dedicated line IDC.\n"},"envType":{"type":"string","description":"Environment type. Valid values: \u003cspan pulumi-lang-nodejs=\"`product`\" pulumi-lang-dotnet=\"`Product`\" pulumi-lang-go=\"`product`\" pulumi-lang-python=\"`product`\" pulumi-lang-yaml=\"`product`\" pulumi-lang-java=\"`product`\"\u003e`product`\u003c/span\u003e production environment, \u003cspan pulumi-lang-nodejs=\"`dev`\" pulumi-lang-dotnet=\"`Dev`\" pulumi-lang-go=\"`dev`\" pulumi-lang-python=\"`dev`\" pulumi-lang-yaml=\"`dev`\" pulumi-lang-java=\"`dev`\"\u003e`dev`\u003c/span\u003e development environment, \u003cspan pulumi-lang-nodejs=\"`pre`\" pulumi-lang-dotnet=\"`Pre`\" pulumi-lang-go=\"`pre`\" pulumi-lang-python=\"`pre`\" pulumi-lang-yaml=\"`pre`\" pulumi-lang-java=\"`pre`\"\u003e`pre`\u003c/span\u003e pre-release environment, \u003cspan pulumi-lang-nodejs=\"`test`\" pulumi-lang-dotnet=\"`Test`\" pulumi-lang-go=\"`test`\" pulumi-lang-python=\"`test`\" pulumi-lang-yaml=\"`test`\" pulumi-lang-java=\"`test`\"\u003e`test`\u003c/span\u003e test environment, \u003cspan pulumi-lang-nodejs=\"`sit`\" pulumi-lang-dotnet=\"`Sit`\" pulumi-lang-go=\"`sit`\" pulumi-lang-python=\"`sit`\" pulumi-lang-yaml=\"`sit`\" pulumi-lang-java=\"`sit`\"\u003e`sit`\u003c/span\u003e SIT environment, \u003cspan pulumi-lang-nodejs=\"`uat`\" pulumi-lang-dotnet=\"`Uat`\" pulumi-lang-go=\"`uat`\" pulumi-lang-python=\"`uat`\" pulumi-lang-yaml=\"`uat`\" pulumi-lang-java=\"`uat`\"\u003e`uat`\u003c/span\u003e UAT environment, \u003cspan pulumi-lang-nodejs=\"`pet`\" pulumi-lang-dotnet=\"`Pet`\" pulumi-lang-go=\"`pet`\" pulumi-lang-python=\"`pet`\" pulumi-lang-yaml=\"`pet`\" pulumi-lang-java=\"`pet`\"\u003e`pet`\u003c/span\u003e pressure test environment, \u003cspan pulumi-lang-nodejs=\"`stag`\" pulumi-lang-dotnet=\"`Stag`\" pulumi-lang-go=\"`stag`\" pulumi-lang-python=\"`stag`\" pulumi-lang-yaml=\"`stag`\" pulumi-lang-java=\"`stag`\"\u003e`stag`\u003c/span\u003e STAG environment.\n"},"exportTimeout":{"type":"integer","description":"Export timeout, unit: s (seconds).\n"},"host":{"type":"string","description":"Host address of the target database.\n","willReplaceOnChanges":true},"instanceAlias":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`instanceAlias`\" pulumi-lang-dotnet=\"`InstanceAlias`\" pulumi-lang-go=\"`instanceAlias`\" pulumi-lang-python=\"`instance_alias`\" pulumi-lang-yaml=\"`instanceAlias`\" pulumi-lang-java=\"`instanceAlias`\"\u003e`instance_alias`\u003c/span\u003e has been deprecated from version 1.100.0. Use \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'instance_alias' has been deprecated from version 1.100.0. Use 'instance_name' instead."},"instanceId":{"type":"string","description":"The instance id of the database instance.\n"},"instanceName":{"type":"string","description":"Instance name, to help users quickly distinguish positioning.\n"},"instanceSource":{"type":"string","description":"The source of the database instance. Valid values: `PUBLIC_OWN`, `RDS`, `ECS_OWN`, `VPC_IDC`.\n"},"instanceType":{"type":"string","description":"Database type. Valid values: `MySQL`, `SQLServer`, `PostgreSQL`, `Oracle,` `DRDS`, `OceanBase`, `Mongo`, `Redis`.\n"},"networkType":{"type":"string","description":"Network type. Valid values: `CLASSIC`, `VPC`.\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"Access port of the target database.\n","willReplaceOnChanges":true},"queryTimeout":{"type":"integer","description":"Query timeout time, unit: s (seconds).\n"},"safeRule":{"type":"string","description":"The security rule of the instance is passed into the name of the security rule in the enterprise.\n","willReplaceOnChanges":true},"safeRuleId":{"type":"string","description":"The safe rule id of the database instance.\n"},"sellTrust":{"type":"boolean","description":"Whether to enable the security hosting feature for the database instance. Possible values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n~\u003e**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`databaseUser`\" pulumi-lang-dotnet=\"`DatabaseUser`\" pulumi-lang-go=\"`databaseUser`\" pulumi-lang-python=\"`database_user`\" pulumi-lang-yaml=\"`databaseUser`\" pulumi-lang-java=\"`databaseUser`\"\u003e`database_user`\u003c/span\u003e will be encrypted if \u003cspan pulumi-lang-nodejs=\"`sellTrust`\" pulumi-lang-dotnet=\"`SellTrust`\" pulumi-lang-go=\"`sellTrust`\" pulumi-lang-python=\"`sell_trust`\" pulumi-lang-yaml=\"`sellTrust`\" pulumi-lang-java=\"`sellTrust`\"\u003e`sell_trust`\u003c/span\u003e set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"sid":{"type":"string","description":"The SID. This value must be passed when InstanceType is PostgreSQL or Oracle.\n"},"skipTest":{"type":"boolean","description":"Whether the instance ignores test connectivity. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"tid":{"type":"integer","description":"The tenant ID.\n"},"useDsql":{"type":"integer","description":"Whether to enable cross-instance query. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e not open, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e open.\n"},"vpcId":{"type":"string","description":"VPC ID. This value must be passed when the value of InstanceSource is VPC dedicated line IDC.\n"}},"requiredInputs":["databasePassword","databaseUser","dbaUid","envType","exportTimeout","host","instanceSource","instanceType","networkType","port","queryTimeout","safeRule","sellTrust"],"stateInputs":{"description":"Input properties used for looking up and filtering EnterpriseInstance resources.\n","properties":{"dataLinkName":{"type":"string","description":"Cross-database query datalink name.\n"},"databasePassword":{"type":"string","description":"Database access password.\n","secret":true},"databaseUser":{"type":"string","description":"Database access account.\n"},"dbaId":{"type":"string","description":"The dba id of the database instance.\n"},"dbaNickName":{"type":"string","description":"The instance dba nickname.\n"},"dbaUid":{"type":"integer","description":"The DBA of the instance is passed into the Alibaba Cloud uid of the DBA.\n","willReplaceOnChanges":true},"ddlOnline":{"type":"integer","description":"Whether to use online services, currently only supports MySQL and PolarDB. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e Not used, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e Native online DDL priority, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e DMS lock-free table structure change priority.\n"},"ecsInstanceId":{"type":"string","description":"ECS instance ID. The value of InstanceSource is the ECS self-built library. This value must be passed.\n"},"ecsRegion":{"type":"string","description":"The region where the instance is located. This value must be passed when the value of InstanceSource is RDS, ECS self-built library, and VPC dedicated line IDC.\n"},"envType":{"type":"string","description":"Environment type. Valid values: \u003cspan pulumi-lang-nodejs=\"`product`\" pulumi-lang-dotnet=\"`Product`\" pulumi-lang-go=\"`product`\" pulumi-lang-python=\"`product`\" pulumi-lang-yaml=\"`product`\" pulumi-lang-java=\"`product`\"\u003e`product`\u003c/span\u003e production environment, \u003cspan pulumi-lang-nodejs=\"`dev`\" pulumi-lang-dotnet=\"`Dev`\" pulumi-lang-go=\"`dev`\" pulumi-lang-python=\"`dev`\" pulumi-lang-yaml=\"`dev`\" pulumi-lang-java=\"`dev`\"\u003e`dev`\u003c/span\u003e development environment, \u003cspan pulumi-lang-nodejs=\"`pre`\" pulumi-lang-dotnet=\"`Pre`\" pulumi-lang-go=\"`pre`\" pulumi-lang-python=\"`pre`\" pulumi-lang-yaml=\"`pre`\" pulumi-lang-java=\"`pre`\"\u003e`pre`\u003c/span\u003e pre-release environment, \u003cspan pulumi-lang-nodejs=\"`test`\" pulumi-lang-dotnet=\"`Test`\" pulumi-lang-go=\"`test`\" pulumi-lang-python=\"`test`\" pulumi-lang-yaml=\"`test`\" pulumi-lang-java=\"`test`\"\u003e`test`\u003c/span\u003e test environment, \u003cspan pulumi-lang-nodejs=\"`sit`\" pulumi-lang-dotnet=\"`Sit`\" pulumi-lang-go=\"`sit`\" pulumi-lang-python=\"`sit`\" pulumi-lang-yaml=\"`sit`\" pulumi-lang-java=\"`sit`\"\u003e`sit`\u003c/span\u003e SIT environment, \u003cspan pulumi-lang-nodejs=\"`uat`\" pulumi-lang-dotnet=\"`Uat`\" pulumi-lang-go=\"`uat`\" pulumi-lang-python=\"`uat`\" pulumi-lang-yaml=\"`uat`\" pulumi-lang-java=\"`uat`\"\u003e`uat`\u003c/span\u003e UAT environment, \u003cspan pulumi-lang-nodejs=\"`pet`\" pulumi-lang-dotnet=\"`Pet`\" pulumi-lang-go=\"`pet`\" pulumi-lang-python=\"`pet`\" pulumi-lang-yaml=\"`pet`\" pulumi-lang-java=\"`pet`\"\u003e`pet`\u003c/span\u003e pressure test environment, \u003cspan pulumi-lang-nodejs=\"`stag`\" pulumi-lang-dotnet=\"`Stag`\" pulumi-lang-go=\"`stag`\" pulumi-lang-python=\"`stag`\" pulumi-lang-yaml=\"`stag`\" pulumi-lang-java=\"`stag`\"\u003e`stag`\u003c/span\u003e STAG environment.\n"},"exportTimeout":{"type":"integer","description":"Export timeout, unit: s (seconds).\n"},"host":{"type":"string","description":"Host address of the target database.\n","willReplaceOnChanges":true},"instanceAlias":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`instanceAlias`\" pulumi-lang-dotnet=\"`InstanceAlias`\" pulumi-lang-go=\"`instanceAlias`\" pulumi-lang-python=\"`instance_alias`\" pulumi-lang-yaml=\"`instanceAlias`\" pulumi-lang-java=\"`instanceAlias`\"\u003e`instance_alias`\u003c/span\u003e has been deprecated from version 1.100.0. Use \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'instance_alias' has been deprecated from version 1.100.0. Use 'instance_name' instead."},"instanceId":{"type":"string","description":"The instance id of the database instance.\n"},"instanceName":{"type":"string","description":"Instance name, to help users quickly distinguish positioning.\n"},"instanceSource":{"type":"string","description":"The source of the database instance. Valid values: `PUBLIC_OWN`, `RDS`, `ECS_OWN`, `VPC_IDC`.\n"},"instanceType":{"type":"string","description":"Database type. Valid values: `MySQL`, `SQLServer`, `PostgreSQL`, `Oracle,` `DRDS`, `OceanBase`, `Mongo`, `Redis`.\n"},"networkType":{"type":"string","description":"Network type. Valid values: `CLASSIC`, `VPC`.\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"Access port of the target database.\n","willReplaceOnChanges":true},"queryTimeout":{"type":"integer","description":"Query timeout time, unit: s (seconds).\n"},"safeRule":{"type":"string","description":"The security rule of the instance is passed into the name of the security rule in the enterprise.\n","willReplaceOnChanges":true},"safeRuleId":{"type":"string","description":"The safe rule id of the database instance.\n"},"sellTrust":{"type":"boolean","description":"Whether to enable the security hosting feature for the database instance. Possible values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n~\u003e**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`databaseUser`\" pulumi-lang-dotnet=\"`DatabaseUser`\" pulumi-lang-go=\"`databaseUser`\" pulumi-lang-python=\"`database_user`\" pulumi-lang-yaml=\"`databaseUser`\" pulumi-lang-java=\"`databaseUser`\"\u003e`database_user`\u003c/span\u003e will be encrypted if \u003cspan pulumi-lang-nodejs=\"`sellTrust`\" pulumi-lang-dotnet=\"`SellTrust`\" pulumi-lang-go=\"`sellTrust`\" pulumi-lang-python=\"`sell_trust`\" pulumi-lang-yaml=\"`sellTrust`\" pulumi-lang-java=\"`sellTrust`\"\u003e`sell_trust`\u003c/span\u003e set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"sid":{"type":"string","description":"The SID. This value must be passed when InstanceType is PostgreSQL or Oracle.\n"},"skipTest":{"type":"boolean","description":"Whether the instance ignores test connectivity. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"state":{"type":"string","description":"It has been deprecated from provider version 1.100.0 and 'status' instead.\n","deprecationMessage":"Field 'state' has been deprecated from version 1.100.0. Use 'status' instead."},"status":{"type":"string","description":"The instance status.\n"},"tid":{"type":"integer","description":"The tenant ID.\n"},"useDsql":{"type":"integer","description":"Whether to enable cross-instance query. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e not open, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e open.\n"},"vpcId":{"type":"string","description":"VPC ID. This value must be passed when the value of InstanceSource is VPC dedicated line IDC.\n"}},"type":"object"}},"alicloud:dms/enterpriseLogicDatabase:EnterpriseLogicDatabase":{"description":"Provides a DMS Enterprise Logic Database resource.\n\nFor information about DMS Enterprise Logic Database and how to use it, see [What is Logic Database](https://www.alibabacloud.com/help/en/dms/developer-reference/api-dms-enterprise-2018-11-01-createlogicdatabase).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.dms.EnterpriseLogicDatabase(\"default\", {\n    alias: \"TF_logic_db_test\",\n    databaseIds: [\n        \"35617919\",\n        \"35617920\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.dms.EnterpriseLogicDatabase(\"default\",\n    alias=\"TF_logic_db_test\",\n    database_ids=[\n        \"35617919\",\n        \"35617920\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Dms.EnterpriseLogicDatabase(\"default\", new()\n    {\n        Alias = \"TF_logic_db_test\",\n        DatabaseIds = new[]\n        {\n            \"35617919\",\n            \"35617920\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dms.NewEnterpriseLogicDatabase(ctx, \"default\", \u0026dms.EnterpriseLogicDatabaseArgs{\n\t\t\tAlias: pulumi.String(\"TF_logic_db_test\"),\n\t\t\tDatabaseIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"35617919\"),\n\t\t\t\tpulumi.String(\"35617920\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dms.EnterpriseLogicDatabase;\nimport com.pulumi.alicloud.dms.EnterpriseLogicDatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new EnterpriseLogicDatabase(\"default\", EnterpriseLogicDatabaseArgs.builder()\n            .alias(\"TF_logic_db_test\")\n            .databaseIds(            \n                \"35617919\",\n                \"35617920\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:dms:EnterpriseLogicDatabase\n    properties:\n      alias: TF_logic_db_test\n      databaseIds:\n        - '35617919'\n        - '35617920'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDMS Enterprise Logic Database can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_dms_enterprise_logic_database.example \u003cid\u003e\n```\n\n","properties":{"alias":{"type":"string","description":"Logical Library alias.\n"},"databaseIds":{"type":"array","items":{"type":"string"},"description":"Sub-Database ID\n"},"dbType":{"type":"string","description":"Database type.\n"},"envType":{"type":"string","description":"Environment type, return value is as follows:-product: production environment-dev: development environment-pre: Advance Environment-test: test environment-sit:SIT environment-uat:UAT environment-pet: Pressure measurement environment-stag:STAG environment\n"},"logic":{"type":"boolean","description":"Whether it is a logical Library, the return value is true.\n"},"logicDatabaseId":{"type":"string","description":"The ID of the logical Library.\n"},"ownerIdLists":{"type":"array","items":{"type":"string"},"description":"The user ID list of the logical library Owner.\n"},"ownerNameLists":{"type":"array","items":{"type":"string"},"description":"The nickname list of the logical library Owner.\n"},"schemaName":{"type":"string","description":"Logical Library name.\n"},"searchName":{"type":"string","description":"Logical library search name.\n"}},"required":["alias","databaseIds","dbType","envType","logic","logicDatabaseId","ownerIdLists","ownerNameLists","schemaName","searchName"],"inputProperties":{"alias":{"type":"string","description":"Logical Library alias.\n"},"databaseIds":{"type":"array","items":{"type":"string"},"description":"Sub-Database ID\n"},"logicDatabaseId":{"type":"string","description":"The ID of the logical Library.\n"}},"requiredInputs":["alias","databaseIds"],"stateInputs":{"description":"Input properties used for looking up and filtering EnterpriseLogicDatabase resources.\n","properties":{"alias":{"type":"string","description":"Logical Library alias.\n"},"databaseIds":{"type":"array","items":{"type":"string"},"description":"Sub-Database ID\n"},"dbType":{"type":"string","description":"Database type.\n"},"envType":{"type":"string","description":"Environment type, return value is as follows:-product: production environment-dev: development environment-pre: Advance Environment-test: test environment-sit:SIT environment-uat:UAT environment-pet: Pressure measurement environment-stag:STAG environment\n"},"logic":{"type":"boolean","description":"Whether it is a logical Library, the return value is true.\n"},"logicDatabaseId":{"type":"string","description":"The ID of the logical Library.\n"},"ownerIdLists":{"type":"array","items":{"type":"string"},"description":"The user ID list of the logical library Owner.\n"},"ownerNameLists":{"type":"array","items":{"type":"string"},"description":"The nickname list of the logical library Owner.\n"},"schemaName":{"type":"string","description":"Logical Library name.\n"},"searchName":{"type":"string","description":"Logical library search name.\n"}},"type":"object"}},"alicloud:dms/enterpriseProxy:EnterpriseProxy":{"description":"Provides a DMS Enterprise Proxy resource.\n\nFor information about DMS Enterprise Proxy and how to use it, see [What is Proxy](https://next.api.alibabacloud.com/document/dms-enterprise/2018-11-01/CreateProxy).\n\n\u003e **NOTE:** Available since v1.188.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst current = alicloud.getAccount({});\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultGetUserTenants = alicloud.dms.getUserTenants({\n    status: \"ACTIVE\",\n});\nconst defaultGetZones = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"HighAvailability\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst defaultGetInstanceClasses = defaultGetZones.then(defaultGetZones =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: defaultGetZones.zones?.[1]?.id,\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    category: \"HighAvailability\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceChargeType: \"PostPaid\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[1]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.rds.Instance(\"default\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceType: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    vswitchId: defaultSwitch.id,\n    instanceName: name,\n    securityIps: [\n        \"100.104.5.0/24\",\n        \"192.168.0.6\",\n    ],\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst defaultAccount = new alicloud.rds.Account(\"default\", {\n    dbInstanceId: defaultInstance.id,\n    accountName: \"tfexamplename\",\n    accountPassword: \"Example12345\",\n    accountType: \"Normal\",\n});\nconst defaultEnterpriseInstance = new alicloud.dms.EnterpriseInstance(\"default\", {\n    tid: defaultGetUserTenants.then(defaultGetUserTenants =\u003e defaultGetUserTenants.ids?.[0]),\n    instanceType: \"mysql\",\n    instanceSource: \"RDS\",\n    networkType: \"VPC\",\n    envType: \"dev\",\n    host: defaultInstance.connectionString,\n    port: 3306,\n    databaseUser: defaultAccount.accountName,\n    databasePassword: defaultAccount.accountPassword,\n    instanceName: name,\n    dbaUid: current.then(current =\u003e current.id),\n    safeRule: \"自由操作\",\n    queryTimeout: 60,\n    exportTimeout: 600,\n    ecsRegion: _default.then(_default =\u003e _default.regions?.[0]?.id),\n});\nconst defaultEnterpriseProxy = new alicloud.dms.EnterpriseProxy(\"default\", {\n    instanceId: defaultEnterpriseInstance.instanceId,\n    password: \"Example12345\",\n    username: \"tfexamplename\",\n    tid: defaultGetUserTenants.then(defaultGetUserTenants =\u003e defaultGetUserTenants.ids?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ncurrent = alicloud.get_account()\ndefault = alicloud.get_regions(current=True)\ndefault_get_user_tenants = alicloud.dms.get_user_tenants(status=\"ACTIVE\")\ndefault_get_zones = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"HighAvailability\",\n    db_instance_storage_type=\"cloud_essd\")\ndefault_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=default_get_zones.zones[1].id,\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    category=\"HighAvailability\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_charge_type=\"PostPaid\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[1].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.rds.Instance(\"default\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_type=default_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=default_get_instance_classes.instance_classes[0].storage_range.min,\n    vswitch_id=default_switch.id,\n    instance_name=name,\n    security_ips=[\n        \"100.104.5.0/24\",\n        \"192.168.0.6\",\n    ],\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\ndefault_account = alicloud.rds.Account(\"default\",\n    db_instance_id=default_instance.id,\n    account_name=\"tfexamplename\",\n    account_password=\"Example12345\",\n    account_type=\"Normal\")\ndefault_enterprise_instance = alicloud.dms.EnterpriseInstance(\"default\",\n    tid=default_get_user_tenants.ids[0],\n    instance_type=\"mysql\",\n    instance_source=\"RDS\",\n    network_type=\"VPC\",\n    env_type=\"dev\",\n    host=default_instance.connection_string,\n    port=3306,\n    database_user=default_account.account_name,\n    database_password=default_account.account_password,\n    instance_name=name,\n    dba_uid=current.id,\n    safe_rule=\"自由操作\",\n    query_timeout=60,\n    export_timeout=600,\n    ecs_region=default.regions[0].id)\ndefault_enterprise_proxy = alicloud.dms.EnterpriseProxy(\"default\",\n    instance_id=default_enterprise_instance.instance_id,\n    password=\"Example12345\",\n    username=\"tfexamplename\",\n    tid=default_get_user_tenants.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var current = AliCloud.GetAccount.Invoke();\n\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultGetUserTenants = AliCloud.Dms.GetUserTenants.Invoke(new()\n    {\n        Status = \"ACTIVE\",\n    });\n\n    var defaultGetZones = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"HighAvailability\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var defaultGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        Category = \"HighAvailability\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Rds.Instance(\"default\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceType = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        VswitchId = defaultSwitch.Id,\n        InstanceName = name,\n        SecurityIps = new[]\n        {\n            \"100.104.5.0/24\",\n            \"192.168.0.6\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var defaultAccount = new AliCloud.Rds.Account(\"default\", new()\n    {\n        DbInstanceId = defaultInstance.Id,\n        AccountName = \"tfexamplename\",\n        AccountPassword = \"Example12345\",\n        AccountType = \"Normal\",\n    });\n\n    var defaultEnterpriseInstance = new AliCloud.Dms.EnterpriseInstance(\"default\", new()\n    {\n        Tid = defaultGetUserTenants.Apply(getUserTenantsResult =\u003e getUserTenantsResult.Ids[0]),\n        InstanceType = \"mysql\",\n        InstanceSource = \"RDS\",\n        NetworkType = \"VPC\",\n        EnvType = \"dev\",\n        Host = defaultInstance.ConnectionString,\n        Port = 3306,\n        DatabaseUser = defaultAccount.AccountName,\n        DatabasePassword = defaultAccount.AccountPassword,\n        InstanceName = name,\n        DbaUid = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n        SafeRule = \"自由操作\",\n        QueryTimeout = 60,\n        ExportTimeout = 600,\n        EcsRegion = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n    });\n\n    var defaultEnterpriseProxy = new AliCloud.Dms.EnterpriseProxy(\"default\", new()\n    {\n        InstanceId = defaultEnterpriseInstance.InstanceId,\n        Password = \"Example12345\",\n        Username = \"tfexamplename\",\n        Tid = defaultGetUserTenants.Apply(getUserTenantsResult =\u003e getUserTenantsResult.Ids[0]),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcurrent, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetUserTenants, err := dms.GetUserTenants(ctx, \u0026dms.GetUserTenantsArgs{\n\t\t\tStatus: pulumi.StringRef(\"ACTIVE\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"HighAvailability\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(defaultGetZones.Zones[1].Id),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tCategory:              pulumi.StringRef(\"HighAvailability\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[1].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rds.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tInstanceType:          pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceStorage:       pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tVswitchId:             defaultSwitch.ID(),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t\tSecurityIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"100.104.5.0/24\"),\n\t\t\t\tpulumi.String(\"192.168.0.6\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAccount, err := rds.NewAccount(ctx, \"default\", \u0026rds.AccountArgs{\n\t\t\tDbInstanceId:    defaultInstance.ID(),\n\t\t\tAccountName:     pulumi.String(\"tfexamplename\"),\n\t\t\tAccountPassword: pulumi.String(\"Example12345\"),\n\t\t\tAccountType:     pulumi.String(\"Normal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEnterpriseInstance, err := dms.NewEnterpriseInstance(ctx, \"default\", \u0026dms.EnterpriseInstanceArgs{\n\t\t\tTid:              pulumi.String(defaultGetUserTenants.Ids[0]),\n\t\t\tInstanceType:     pulumi.String(\"mysql\"),\n\t\t\tInstanceSource:   pulumi.String(\"RDS\"),\n\t\t\tNetworkType:      pulumi.String(\"VPC\"),\n\t\t\tEnvType:          pulumi.String(\"dev\"),\n\t\t\tHost:             defaultInstance.ConnectionString,\n\t\t\tPort:             pulumi.Int(3306),\n\t\t\tDatabaseUser:     defaultAccount.AccountName,\n\t\t\tDatabasePassword: defaultAccount.AccountPassword,\n\t\t\tInstanceName:     pulumi.String(name),\n\t\t\tDbaUid:           pulumi.String(current.Id),\n\t\t\tSafeRule:         pulumi.String(\"自由操作\"),\n\t\t\tQueryTimeout:     pulumi.Int(60),\n\t\t\tExportTimeout:    pulumi.Int(600),\n\t\t\tEcsRegion:        pulumi.String(_default.Regions[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dms.NewEnterpriseProxy(ctx, \"default\", \u0026dms.EnterpriseProxyArgs{\n\t\t\tInstanceId: defaultEnterpriseInstance.InstanceId,\n\t\t\tPassword:   pulumi.String(\"Example12345\"),\n\t\t\tUsername:   pulumi.String(\"tfexamplename\"),\n\t\t\tTid:        pulumi.String(defaultGetUserTenants.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.dms.DmsFunctions;\nimport com.pulumi.alicloud.dms.inputs.GetUserTenantsArgs;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.Account;\nimport com.pulumi.alicloud.rds.AccountArgs;\nimport com.pulumi.alicloud.dms.EnterpriseInstance;\nimport com.pulumi.alicloud.dms.EnterpriseInstanceArgs;\nimport com.pulumi.alicloud.dms.EnterpriseProxy;\nimport com.pulumi.alicloud.dms.EnterpriseProxyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var current = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var defaultGetUserTenants = DmsFunctions.getUserTenants(GetUserTenantsArgs.builder()\n            .status(\"ACTIVE\")\n            .build());\n\n        final var defaultGetZones = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"HighAvailability\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var defaultGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(defaultGetZones.zones()[1].id())\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .category(\"HighAvailability\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[1].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceType(defaultGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(defaultGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .vswitchId(defaultSwitch.id())\n            .instanceName(name)\n            .securityIps(            \n                \"100.104.5.0/24\",\n                \"192.168.0.6\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var defaultAccount = new Account(\"defaultAccount\", AccountArgs.builder()\n            .dbInstanceId(defaultInstance.id())\n            .accountName(\"tfexamplename\")\n            .accountPassword(\"Example12345\")\n            .accountType(\"Normal\")\n            .build());\n\n        var defaultEnterpriseInstance = new EnterpriseInstance(\"defaultEnterpriseInstance\", EnterpriseInstanceArgs.builder()\n            .tid(defaultGetUserTenants.ids()[0])\n            .instanceType(\"mysql\")\n            .instanceSource(\"RDS\")\n            .networkType(\"VPC\")\n            .envType(\"dev\")\n            .host(defaultInstance.connectionString())\n            .port(3306)\n            .databaseUser(defaultAccount.accountName())\n            .databasePassword(defaultAccount.accountPassword())\n            .instanceName(name)\n            .dbaUid(current.id())\n            .safeRule(\"自由操作\")\n            .queryTimeout(60)\n            .exportTimeout(600)\n            .ecsRegion(default_.regions()[0].id())\n            .build());\n\n        var defaultEnterpriseProxy = new EnterpriseProxy(\"defaultEnterpriseProxy\", EnterpriseProxyArgs.builder()\n            .instanceId(defaultEnterpriseInstance.instanceId())\n            .password(\"Example12345\")\n            .username(\"tfexamplename\")\n            .tid(defaultGetUserTenants.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[1].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:rds:Instance\n    name: default\n    properties:\n      engine: MySQL\n      engineVersion: '8.0'\n      dbInstanceStorageType: cloud_essd\n      instanceType: ${defaultGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceStorage: ${defaultGetInstanceClasses.instanceClasses[0].storageRange.min}\n      vswitchId: ${defaultSwitch.id}\n      instanceName: ${name}\n      securityIps:\n        - 100.104.5.0/24\n        - 192.168.0.6\n      tags:\n        Created: TF\n        For: example\n  defaultAccount:\n    type: alicloud:rds:Account\n    name: default\n    properties:\n      dbInstanceId: ${defaultInstance.id}\n      accountName: tfexamplename\n      accountPassword: Example12345\n      accountType: Normal\n  defaultEnterpriseInstance:\n    type: alicloud:dms:EnterpriseInstance\n    name: default\n    properties:\n      tid: ${defaultGetUserTenants.ids[0]}\n      instanceType: mysql\n      instanceSource: RDS\n      networkType: VPC\n      envType: dev\n      host: ${defaultInstance.connectionString}\n      port: 3306\n      databaseUser: ${defaultAccount.accountName}\n      databasePassword: ${defaultAccount.accountPassword}\n      instanceName: ${name}\n      dbaUid: ${current.id}\n      safeRule: 自由操作\n      queryTimeout: 60\n      exportTimeout: 600\n      ecsRegion: ${default.regions[0].id}\n  defaultEnterpriseProxy:\n    type: alicloud:dms:EnterpriseProxy\n    name: default\n    properties:\n      instanceId: ${defaultEnterpriseInstance.instanceId}\n      password: Example12345\n      username: tfexamplename\n      tid: ${defaultGetUserTenants.ids[0]}\nvariables:\n  current:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetUserTenants:\n    fn::invoke:\n      function: alicloud:dms:getUserTenants\n      arguments:\n        status: ACTIVE\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: PostPaid\n        category: HighAvailability\n        dbInstanceStorageType: cloud_essd\n  defaultGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${defaultGetZones.zones[1].id}\n        engine: MySQL\n        engineVersion: '8.0'\n        category: HighAvailability\n        dbInstanceStorageType: cloud_essd\n        instanceChargeType: PostPaid\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDMS Enterprise Proxy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dms/enterpriseProxy:EnterpriseProxy example \u003cid\u003e\n```\n\n","properties":{"instanceId":{"type":"string","description":"The ID of the database instance.\n"},"password":{"type":"string","description":"The password of the database account.\n","secret":true},"tid":{"type":"string","description":"The ID of the tenant.\n"},"username":{"type":"string","description":"The username of the database account.\n","secret":true}},"required":["instanceId","password","username"],"inputProperties":{"instanceId":{"type":"string","description":"The ID of the database instance.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of the database account.\n","secret":true},"tid":{"type":"string","description":"The ID of the tenant.\n"},"username":{"type":"string","description":"The username of the database account.\n","secret":true}},"requiredInputs":["instanceId","password","username"],"stateInputs":{"description":"Input properties used for looking up and filtering EnterpriseProxy resources.\n","properties":{"instanceId":{"type":"string","description":"The ID of the database instance.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of the database account.\n","secret":true},"tid":{"type":"string","description":"The ID of the tenant.\n"},"username":{"type":"string","description":"The username of the database account.\n","secret":true}},"type":"object"}},"alicloud:dms/enterpriseProxyAccess:EnterpriseProxyAccess":{"description":"Provides a DMS Enterprise Proxy Access resource.\n\nFor information about DMS Enterprise Proxy Access and how to use it, see [What is Proxy Access](https://next.api.alibabacloud.com/document/dms-enterprise/2018-11-01/CreateProxyAccess).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst dmsEnterpriseUsersDs = alicloud.dms.getEnterpriseUsers({\n    role: \"USER\",\n    status: \"NORMAL\",\n});\nconst ids = alicloud.dms.getEnterpriseProxies({});\nconst _default = new alicloud.dms.EnterpriseProxyAccess(\"default\", {\n    proxyId: ids.then(ids =\u003e ids.proxies?.[0]?.id),\n    userId: dmsEnterpriseUsersDs.then(dmsEnterpriseUsersDs =\u003e dmsEnterpriseUsersDs.users?.[0]?.userId),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndms_enterprise_users_ds = alicloud.dms.get_enterprise_users(role=\"USER\",\n    status=\"NORMAL\")\nids = alicloud.dms.get_enterprise_proxies()\ndefault = alicloud.dms.EnterpriseProxyAccess(\"default\",\n    proxy_id=ids.proxies[0].id,\n    user_id=dms_enterprise_users_ds.users[0].user_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dmsEnterpriseUsersDs = AliCloud.Dms.GetEnterpriseUsers.Invoke(new()\n    {\n        Role = \"USER\",\n        Status = \"NORMAL\",\n    });\n\n    var ids = AliCloud.Dms.GetEnterpriseProxies.Invoke();\n\n    var @default = new AliCloud.Dms.EnterpriseProxyAccess(\"default\", new()\n    {\n        ProxyId = ids.Apply(getEnterpriseProxiesResult =\u003e getEnterpriseProxiesResult.Proxies[0]?.Id),\n        UserId = dmsEnterpriseUsersDs.Apply(getEnterpriseUsersResult =\u003e getEnterpriseUsersResult.Users[0]?.UserId),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdmsEnterpriseUsersDs, err := dms.GetEnterpriseUsers(ctx, \u0026dms.GetEnterpriseUsersArgs{\n\t\t\tRole:   pulumi.StringRef(\"USER\"),\n\t\t\tStatus: pulumi.StringRef(\"NORMAL\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids, err := dms.GetEnterpriseProxies(ctx, \u0026dms.GetEnterpriseProxiesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dms.NewEnterpriseProxyAccess(ctx, \"default\", \u0026dms.EnterpriseProxyAccessArgs{\n\t\t\tProxyId: pulumi.String(ids.Proxies[0].Id),\n\t\t\tUserId:  pulumi.String(dmsEnterpriseUsersDs.Users[0].UserId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dms.DmsFunctions;\nimport com.pulumi.alicloud.dms.inputs.GetEnterpriseUsersArgs;\nimport com.pulumi.alicloud.dms.inputs.GetEnterpriseProxiesArgs;\nimport com.pulumi.alicloud.dms.EnterpriseProxyAccess;\nimport com.pulumi.alicloud.dms.EnterpriseProxyAccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var dmsEnterpriseUsersDs = DmsFunctions.getEnterpriseUsers(GetEnterpriseUsersArgs.builder()\n            .role(\"USER\")\n            .status(\"NORMAL\")\n            .build());\n\n        final var ids = DmsFunctions.getEnterpriseProxies(GetEnterpriseProxiesArgs.builder()\n            .build());\n\n        var default_ = new EnterpriseProxyAccess(\"default\", EnterpriseProxyAccessArgs.builder()\n            .proxyId(ids.proxies()[0].id())\n            .userId(dmsEnterpriseUsersDs.users()[0].userId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:dms:EnterpriseProxyAccess\n    properties:\n      proxyId: ${ids.proxies[0].id}\n      userId: ${dmsEnterpriseUsersDs.users[0].userId}\nvariables:\n  dmsEnterpriseUsersDs:\n    fn::invoke:\n      function: alicloud:dms:getEnterpriseUsers\n      arguments:\n        role: USER\n        status: NORMAL\n  ids:\n    fn::invoke:\n      function: alicloud:dms:getEnterpriseProxies\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDMS Enterprise Proxy Access can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_dms_enterprise_proxy_access.example \u003cid\u003e\n```\n\n","properties":{"accessId":{"type":"string","description":"The authorized account of the security agent.\n"},"accessSecret":{"type":"string","description":"Secure access agent authorization password.\n","secret":true},"createTime":{"type":"string"},"indepAccount":{"type":"string","description":"Database account.\n"},"indepPassword":{"type":"string","description":"Database password.\n","secret":true},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"originInfo":{"type":"string","description":"The source information of the security access agent permission is enabled, and the return value is as follows:\n* **Owner Authorization**: The UID of the owner in parentheses.\n* **Work Order Authorization**: The ticket number in parentheses is the number of the user to apply for permission.\n"},"proxyAccessId":{"type":"string","description":"Security Protection authorization ID. After the target user is authorized by the security protection agent, the system automatically generates a security protection authorization ID, which is globally unique.\n"},"proxyId":{"type":"string","description":"The ID of the security agent.\n"},"userId":{"type":"string","description":"The user ID.\n"},"userName":{"type":"string","description":"User nickname.\n"},"userUid":{"type":"string","description":"User UID.\n"}},"required":["accessId","accessSecret","createTime","instanceId","originInfo","proxyAccessId","proxyId","userId","userName","userUid"],"inputProperties":{"indepAccount":{"type":"string","description":"Database account.\n","willReplaceOnChanges":true},"indepPassword":{"type":"string","description":"Database password.\n","secret":true,"willReplaceOnChanges":true},"proxyAccessId":{"type":"string","description":"Security Protection authorization ID. After the target user is authorized by the security protection agent, the system automatically generates a security protection authorization ID, which is globally unique.\n"},"proxyId":{"type":"string","description":"The ID of the security agent.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The user ID.\n","willReplaceOnChanges":true}},"requiredInputs":["proxyId","userId"],"stateInputs":{"description":"Input properties used for looking up and filtering EnterpriseProxyAccess resources.\n","properties":{"accessId":{"type":"string","description":"The authorized account of the security agent.\n"},"accessSecret":{"type":"string","description":"Secure access agent authorization password.\n","secret":true},"createTime":{"type":"string"},"indepAccount":{"type":"string","description":"Database account.\n","willReplaceOnChanges":true},"indepPassword":{"type":"string","description":"Database password.\n","secret":true,"willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"originInfo":{"type":"string","description":"The source information of the security access agent permission is enabled, and the return value is as follows:\n* **Owner Authorization**: The UID of the owner in parentheses.\n* **Work Order Authorization**: The ticket number in parentheses is the number of the user to apply for permission.\n"},"proxyAccessId":{"type":"string","description":"Security Protection authorization ID. After the target user is authorized by the security protection agent, the system automatically generates a security protection authorization ID, which is globally unique.\n"},"proxyId":{"type":"string","description":"The ID of the security agent.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The user ID.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"User nickname.\n"},"userUid":{"type":"string","description":"User UID.\n"}},"type":"object"}},"alicloud:dms/enterpriseUser:EnterpriseUser":{"description":"Provides a DMS Enterprise User resource. For information about Alidms Enterprise User and how to use it, see [What is Resource Alidms Enterprise User](https://www.alibabacloud.com/help/en/dms/developer-reference/api-dms-enterprise-2018-11-01-registeruser).\n\n\u003e **NOTE:** Available since v1.90.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexamplename\";\nconst _default = new alicloud.ram.User(\"default\", {\n    name: name,\n    displayName: name,\n    mobile: \"86-18688888888\",\n    email: \"hello.uuu@aaa.com\",\n    comments: \"example\",\n});\nconst defaultEnterpriseUser = new alicloud.dms.EnterpriseUser(\"default\", {\n    uid: _default.id,\n    userName: name,\n    roleNames: [\"DBA\"],\n    mobile: \"86-18688888888\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexamplename\"\ndefault = alicloud.ram.User(\"default\",\n    name=name,\n    display_name=name,\n    mobile=\"86-18688888888\",\n    email=\"hello.uuu@aaa.com\",\n    comments=\"example\")\ndefault_enterprise_user = alicloud.dms.EnterpriseUser(\"default\",\n    uid=default.id,\n    user_name=name,\n    role_names=[\"DBA\"],\n    mobile=\"86-18688888888\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexamplename\";\n    var @default = new AliCloud.Ram.User(\"default\", new()\n    {\n        Name = name,\n        DisplayName = name,\n        Mobile = \"86-18688888888\",\n        Email = \"hello.uuu@aaa.com\",\n        Comments = \"example\",\n    });\n\n    var defaultEnterpriseUser = new AliCloud.Dms.EnterpriseUser(\"default\", new()\n    {\n        Uid = @default.Id,\n        UserName = name,\n        RoleNames = new[]\n        {\n            \"DBA\",\n        },\n        Mobile = \"86-18688888888\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexamplename\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := ram.NewUser(ctx, \"default\", \u0026ram.UserArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tDisplayName: pulumi.String(name),\n\t\t\tMobile:      pulumi.String(\"86-18688888888\"),\n\t\t\tEmail:       pulumi.String(\"hello.uuu@aaa.com\"),\n\t\t\tComments:    pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dms.NewEnterpriseUser(ctx, \"default\", \u0026dms.EnterpriseUserArgs{\n\t\t\tUid:      _default.ID(),\n\t\t\tUserName: pulumi.String(name),\n\t\t\tRoleNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"DBA\"),\n\t\t\t},\n\t\t\tMobile: pulumi.String(\"86-18688888888\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.User;\nimport com.pulumi.alicloud.ram.UserArgs;\nimport com.pulumi.alicloud.dms.EnterpriseUser;\nimport com.pulumi.alicloud.dms.EnterpriseUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexamplename\");\n        var default_ = new User(\"default\", UserArgs.builder()\n            .name(name)\n            .displayName(name)\n            .mobile(\"86-18688888888\")\n            .email(\"hello.uuu@aaa.com\")\n            .comments(\"example\")\n            .build());\n\n        var defaultEnterpriseUser = new EnterpriseUser(\"defaultEnterpriseUser\", EnterpriseUserArgs.builder()\n            .uid(default_.id())\n            .userName(name)\n            .roleNames(\"DBA\")\n            .mobile(\"86-18688888888\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexamplename\nresources:\n  default:\n    type: alicloud:ram:User\n    properties:\n      name: ${name}\n      displayName: ${name}\n      mobile: 86-18688888888\n      email: hello.uuu@aaa.com\n      comments: example\n  defaultEnterpriseUser:\n    type: alicloud:dms:EnterpriseUser\n    name: default\n    properties:\n      uid: ${default.id}\n      userName: ${name}\n      roleNames:\n        - DBA\n      mobile: 86-18688888888\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDMS Enterprise User can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dms/enterpriseUser:EnterpriseUser example 24356xxx\n```\n\n","properties":{"maxExecuteCount":{"type":"integer","description":"Maximum number of inquiries on the day.\n"},"maxResultCount":{"type":"integer","description":"Query the maximum number of rows on the day.\n"},"mobile":{"type":"string","description":"The DingTalk number or mobile number of the user.\n"},"nickName":{"type":"string","description":"It has been deprecated from 1.100.0 and use \u003cspan pulumi-lang-nodejs=\"`userName`\" pulumi-lang-dotnet=\"`UserName`\" pulumi-lang-go=\"`userName`\" pulumi-lang-python=\"`user_name`\" pulumi-lang-yaml=\"`userName`\" pulumi-lang-java=\"`userName`\"\u003e`user_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'nick_name' has been deprecated from version 1.100.0. Use 'user_name' instead."},"roleNames":{"type":"array","items":{"type":"string"},"description":"The roles that the user plays.\n"},"status":{"type":"string","description":"The state of DMS Enterprise User. Valid values: `NORMAL`, `DISABLE`.\n"},"tid":{"type":"integer","description":"The tenant ID.\n"},"uid":{"type":"string","description":"The Alibaba Cloud unique ID (UID) of the user to add.\n"},"userName":{"type":"string","description":"The nickname of the user.\n"}},"required":["nickName","uid","userName"],"inputProperties":{"maxExecuteCount":{"type":"integer","description":"Maximum number of inquiries on the day.\n"},"maxResultCount":{"type":"integer","description":"Query the maximum number of rows on the day.\n"},"mobile":{"type":"string","description":"The DingTalk number or mobile number of the user.\n"},"nickName":{"type":"string","description":"It has been deprecated from 1.100.0 and use \u003cspan pulumi-lang-nodejs=\"`userName`\" pulumi-lang-dotnet=\"`UserName`\" pulumi-lang-go=\"`userName`\" pulumi-lang-python=\"`user_name`\" pulumi-lang-yaml=\"`userName`\" pulumi-lang-java=\"`userName`\"\u003e`user_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'nick_name' has been deprecated from version 1.100.0. Use 'user_name' instead."},"roleNames":{"type":"array","items":{"type":"string"},"description":"The roles that the user plays.\n"},"status":{"type":"string","description":"The state of DMS Enterprise User. Valid values: `NORMAL`, `DISABLE`.\n"},"tid":{"type":"integer","description":"The tenant ID.\n"},"uid":{"type":"string","description":"The Alibaba Cloud unique ID (UID) of the user to add.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"The nickname of the user.\n"}},"requiredInputs":["uid"],"stateInputs":{"description":"Input properties used for looking up and filtering EnterpriseUser resources.\n","properties":{"maxExecuteCount":{"type":"integer","description":"Maximum number of inquiries on the day.\n"},"maxResultCount":{"type":"integer","description":"Query the maximum number of rows on the day.\n"},"mobile":{"type":"string","description":"The DingTalk number or mobile number of the user.\n"},"nickName":{"type":"string","description":"It has been deprecated from 1.100.0 and use \u003cspan pulumi-lang-nodejs=\"`userName`\" pulumi-lang-dotnet=\"`UserName`\" pulumi-lang-go=\"`userName`\" pulumi-lang-python=\"`user_name`\" pulumi-lang-yaml=\"`userName`\" pulumi-lang-java=\"`userName`\"\u003e`user_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'nick_name' has been deprecated from version 1.100.0. Use 'user_name' instead."},"roleNames":{"type":"array","items":{"type":"string"},"description":"The roles that the user plays.\n"},"status":{"type":"string","description":"The state of DMS Enterprise User. Valid values: `NORMAL`, `DISABLE`.\n"},"tid":{"type":"integer","description":"The tenant ID.\n"},"uid":{"type":"string","description":"The Alibaba Cloud unique ID (UID) of the user to add.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"The nickname of the user.\n"}},"type":"object"}},"alicloud:dms/enterpriseWorkspace:EnterpriseWorkspace":{"description":"Provides a DMS Enterprise Workspace resource.\n\n\n\nFor information about DMS Enterprise Workspace and how to use it, see [What is Workspace](https://next.api.alibabacloud.com/document/dms-enterprise/2018-11-01/CreateWorkspace).\n\n\u003e **NOTE:** Available since v1.259.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst vpcCreate = new alicloud.vpc.Network(\"vpc_create\", {\n    isDefault: false,\n    description: \"example vpc\",\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: `${name}-${_default.result}`,\n});\nconst defaultEnterpriseWorkspace = new alicloud.dms.EnterpriseWorkspace(\"default\", {\n    description: name,\n    workspaceName: `${name}-${_default.result}`,\n    vpcId: vpcCreate.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nvpc_create = alicloud.vpc.Network(\"vpc_create\",\n    is_default=False,\n    description=\"example vpc\",\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=f\"{name}-{default['result']}\")\ndefault_enterprise_workspace = alicloud.dms.EnterpriseWorkspace(\"default\",\n    description=name,\n    workspace_name=f\"{name}-{default['result']}\",\n    vpc_id=vpc_create.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var vpcCreate = new AliCloud.Vpc.Network(\"vpc_create\", new()\n    {\n        IsDefault = false,\n        Description = \"example vpc\",\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultEnterpriseWorkspace = new AliCloud.Dms.EnterpriseWorkspace(\"default\", new()\n    {\n        Description = name,\n        WorkspaceName = $\"{name}-{@default.Result}\",\n        VpcId = vpcCreate.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpcCreate, err := vpc.NewNetwork(ctx, \"vpc_create\", \u0026vpc.NetworkArgs{\n\t\t\tIsDefault:   pulumi.Bool(false),\n\t\t\tDescription: pulumi.String(\"example vpc\"),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.0.0/16\"),\n\t\t\tVpcName:     pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dms.NewEnterpriseWorkspace(ctx, \"default\", \u0026dms.EnterpriseWorkspaceArgs{\n\t\t\tDescription:   pulumi.String(name),\n\t\t\tWorkspaceName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tVpcId:         vpcCreate.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.dms.EnterpriseWorkspace;\nimport com.pulumi.alicloud.dms.EnterpriseWorkspaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var vpcCreate = new Network(\"vpcCreate\", NetworkArgs.builder()\n            .isDefault(false)\n            .description(\"example vpc\")\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultEnterpriseWorkspace = new EnterpriseWorkspace(\"defaultEnterpriseWorkspace\", EnterpriseWorkspaceArgs.builder()\n            .description(name)\n            .workspaceName(String.format(\"%s-%s\", name,default_.result()))\n            .vpcId(vpcCreate.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  vpcCreate:\n    type: alicloud:vpc:Network\n    name: vpc_create\n    properties:\n      isDefault: false\n      description: example vpc\n      cidrBlock: 192.168.0.0/16\n      vpcName: ${name}-${default.result}\n  defaultEnterpriseWorkspace:\n    type: alicloud:dms:EnterpriseWorkspace\n    name: default\n    properties:\n      description: ${name}\n      workspaceName: ${name}-${default.result}\n      vpcId: ${vpcCreate.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDMS Enterprise Workspace can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dms/enterpriseWorkspace:EnterpriseWorkspace example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the Workspace.\n"},"regionId":{"type":"string","description":"The region ID of the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"workspaceName":{"type":"string","description":"The name of the Workspace.\n"}},"required":["description","regionId","vpcId","workspaceName"],"inputProperties":{"description":{"type":"string","description":"The description of the Workspace.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n","willReplaceOnChanges":true},"workspaceName":{"type":"string","description":"The name of the Workspace.\n"}},"requiredInputs":["description","vpcId","workspaceName"],"stateInputs":{"description":"Input properties used for looking up and filtering EnterpriseWorkspace resources.\n","properties":{"description":{"type":"string","description":"The description of the Workspace.\n"},"regionId":{"type":"string","description":"The region ID of the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n","willReplaceOnChanges":true},"workspaceName":{"type":"string","description":"The name of the Workspace.\n"}},"type":"object"}},"alicloud:dns/accessStrategy:AccessStrategy":{"description":"Provides a DNS Access Strategy resource.\n\nFor information about DNS Access Strategy and how to use it, see [What is Access Strategy](https://www.alibabacloud.com/help/doc-detail/189620.html).\n\n\u003e **NOTE:** Available since v1.152.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst domainName = config.get(\"domainName\") || \"alicloud-provider.com\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultAlarmContactGroup = new alicloud.cms.AlarmContactGroup(\"default\", {alarmContactGroupName: name});\nconst defaultGtmInstance = new alicloud.dns.GtmInstance(\"default\", {\n    instanceName: name,\n    paymentType: \"Subscription\",\n    period: 1,\n    renewalStatus: \"ManualRenewal\",\n    packageEdition: \"standard\",\n    healthCheckTaskCount: 100,\n    smsNotificationCount: 1000,\n    publicCnameMode: \"SYSTEM_ASSIGN\",\n    ttl: 60,\n    cnameType: \"PUBLIC\",\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n    alertGroups: [defaultAlarmContactGroup.alarmContactGroupName],\n    publicUserDomainName: domainName,\n    alertConfigs: [{\n        smsNotice: true,\n        noticeType: \"ADDR_ALERT\",\n        emailNotice: true,\n        dingtalkNotice: true,\n    }],\n});\nconst defaultAddressPool: alicloud.dns.AddressPool[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultAddressPool.push(new alicloud.dns.AddressPool(`default-${range.value}`, {\n        addressPoolName: std.format({\n            input: `${name}_%d`,\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        instanceId: defaultGtmInstance.id,\n        lbaStrategy: \"RATIO\",\n        type: \"IPV4\",\n        addresses: [{\n            attributeInfo: \"{\\\"lineCodeRectifyType\\\":\\\"RECTIFIED\\\",\\\"lineCodes\\\":[\\\"os_namerica_us\\\"]}\",\n            remark: \"address_remark\",\n            address: \"1.1.1.1\",\n            mode: \"SMART\",\n            lbaWeight: 1,\n        }],\n    }));\n}\nconst defaultAccessStrategy = new alicloud.dns.AccessStrategy(\"default\", {\n    strategyName: name,\n    strategyMode: \"GEO\",\n    instanceId: defaultGtmInstance.id,\n    defaultAddrPoolType: \"IPV4\",\n    defaultLbaStrategy: \"RATIO\",\n    defaultMinAvailableAddrNum: 1,\n    defaultAddrPools: [{\n        lbaWeight: 1,\n        addrPoolId: defaultAddressPool[0].id,\n    }],\n    failoverAddrPoolType: \"IPV4\",\n    failoverLbaStrategy: \"RATIO\",\n    failoverMinAvailableAddrNum: 1,\n    failoverAddrPools: [{\n        lbaWeight: 1,\n        addrPoolId: defaultAddressPool[1].id,\n    }],\n    lines: [{\n        lineCode: \"default\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndomain_name = config.get(\"domainName\")\nif domain_name is None:\n    domain_name = \"alicloud-provider.com\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_alarm_contact_group = alicloud.cms.AlarmContactGroup(\"default\", alarm_contact_group_name=name)\ndefault_gtm_instance = alicloud.dns.GtmInstance(\"default\",\n    instance_name=name,\n    payment_type=\"Subscription\",\n    period=1,\n    renewal_status=\"ManualRenewal\",\n    package_edition=\"standard\",\n    health_check_task_count=100,\n    sms_notification_count=1000,\n    public_cname_mode=\"SYSTEM_ASSIGN\",\n    ttl=60,\n    cname_type=\"PUBLIC\",\n    resource_group_id=default.groups[0].id,\n    alert_groups=[default_alarm_contact_group.alarm_contact_group_name],\n    public_user_domain_name=domain_name,\n    alert_configs=[{\n        \"sms_notice\": True,\n        \"notice_type\": \"ADDR_ALERT\",\n        \"email_notice\": True,\n        \"dingtalk_notice\": True,\n    }])\ndefault_address_pool = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_address_pool.append(alicloud.dns.AddressPool(f\"default-{range['value']}\",\n        address_pool_name=std.format(input=f\"{name}_%d\",\n            args=[range[\"value\"] + 1]).result,\n        instance_id=default_gtm_instance.id,\n        lba_strategy=\"RATIO\",\n        type=\"IPV4\",\n        addresses=[{\n            \"attribute_info\": \"{\\\"lineCodeRectifyType\\\":\\\"RECTIFIED\\\",\\\"lineCodes\\\":[\\\"os_namerica_us\\\"]}\",\n            \"remark\": \"address_remark\",\n            \"address\": \"1.1.1.1\",\n            \"mode\": \"SMART\",\n            \"lba_weight\": 1,\n        }]))\ndefault_access_strategy = alicloud.dns.AccessStrategy(\"default\",\n    strategy_name=name,\n    strategy_mode=\"GEO\",\n    instance_id=default_gtm_instance.id,\n    default_addr_pool_type=\"IPV4\",\n    default_lba_strategy=\"RATIO\",\n    default_min_available_addr_num=1,\n    default_addr_pools=[{\n        \"lba_weight\": 1,\n        \"addr_pool_id\": default_address_pool[0].id,\n    }],\n    failover_addr_pool_type=\"IPV4\",\n    failover_lba_strategy=\"RATIO\",\n    failover_min_available_addr_num=1,\n    failover_addr_pools=[{\n        \"lba_weight\": 1,\n        \"addr_pool_id\": default_address_pool[1].id,\n    }],\n    lines=[{\n        \"line_code\": \"default\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var domainName = config.Get(\"domainName\") ?? \"alicloud-provider.com\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultAlarmContactGroup = new AliCloud.Cms.AlarmContactGroup(\"default\", new()\n    {\n        AlarmContactGroupName = name,\n    });\n\n    var defaultGtmInstance = new AliCloud.Dns.GtmInstance(\"default\", new()\n    {\n        InstanceName = name,\n        PaymentType = \"Subscription\",\n        Period = 1,\n        RenewalStatus = \"ManualRenewal\",\n        PackageEdition = \"standard\",\n        HealthCheckTaskCount = 100,\n        SmsNotificationCount = 1000,\n        PublicCnameMode = \"SYSTEM_ASSIGN\",\n        Ttl = 60,\n        CnameType = \"PUBLIC\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n        AlertGroups = new[]\n        {\n            defaultAlarmContactGroup.AlarmContactGroupName,\n        },\n        PublicUserDomainName = domainName,\n        AlertConfigs = new[]\n        {\n            new AliCloud.Dns.Inputs.GtmInstanceAlertConfigArgs\n            {\n                SmsNotice = true,\n                NoticeType = \"ADDR_ALERT\",\n                EmailNotice = true,\n                DingtalkNotice = true,\n            },\n        },\n    });\n\n    var defaultAddressPool = new List\u003cAliCloud.Dns.AddressPool\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultAddressPool.Add(new AliCloud.Dns.AddressPool($\"default-{range.Value}\", new()\n        {\n            AddressPoolName = Std.Format.Invoke(new()\n            {\n                Input = $\"{name}_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            InstanceId = defaultGtmInstance.Id,\n            LbaStrategy = \"RATIO\",\n            Type = \"IPV4\",\n            Addresses = new[]\n            {\n                new AliCloud.Dns.Inputs.AddressPoolAddressArgs\n                {\n                    AttributeInfo = \"{\\\"lineCodeRectifyType\\\":\\\"RECTIFIED\\\",\\\"lineCodes\\\":[\\\"os_namerica_us\\\"]}\",\n                    Remark = \"address_remark\",\n                    Address = \"1.1.1.1\",\n                    Mode = \"SMART\",\n                    LbaWeight = 1,\n                },\n            },\n        }));\n    }\n    var defaultAccessStrategy = new AliCloud.Dns.AccessStrategy(\"default\", new()\n    {\n        StrategyName = name,\n        StrategyMode = \"GEO\",\n        InstanceId = defaultGtmInstance.Id,\n        DefaultAddrPoolType = \"IPV4\",\n        DefaultLbaStrategy = \"RATIO\",\n        DefaultMinAvailableAddrNum = 1,\n        DefaultAddrPools = new[]\n        {\n            new AliCloud.Dns.Inputs.AccessStrategyDefaultAddrPoolArgs\n            {\n                LbaWeight = 1,\n                AddrPoolId = defaultAddressPool[0].Id,\n            },\n        },\n        FailoverAddrPoolType = \"IPV4\",\n        FailoverLbaStrategy = \"RATIO\",\n        FailoverMinAvailableAddrNum = 1,\n        FailoverAddrPools = new[]\n        {\n            new AliCloud.Dns.Inputs.AccessStrategyFailoverAddrPoolArgs\n            {\n                LbaWeight = 1,\n                AddrPoolId = defaultAddressPool[1].Id,\n            },\n        },\n        Lines = new[]\n        {\n            new AliCloud.Dns.Inputs.AccessStrategyLineArgs\n            {\n                LineCode = \"default\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdomainName := \"alicloud-provider.com\"\n\t\tif param := cfg.Get(\"domainName\"); param != \"\" {\n\t\t\tdomainName = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAlarmContactGroup, err := cms.NewAlarmContactGroup(ctx, \"default\", \u0026cms.AlarmContactGroupArgs{\n\t\t\tAlarmContactGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGtmInstance, err := dns.NewGtmInstance(ctx, \"default\", \u0026dns.GtmInstanceArgs{\n\t\t\tInstanceName:         pulumi.String(name),\n\t\t\tPaymentType:          pulumi.String(\"Subscription\"),\n\t\t\tPeriod:               pulumi.Int(1),\n\t\t\tRenewalStatus:        pulumi.String(\"ManualRenewal\"),\n\t\t\tPackageEdition:       pulumi.String(\"standard\"),\n\t\t\tHealthCheckTaskCount: pulumi.Int(100),\n\t\t\tSmsNotificationCount: pulumi.Int(1000),\n\t\t\tPublicCnameMode:      pulumi.String(\"SYSTEM_ASSIGN\"),\n\t\t\tTtl:                  pulumi.Int(60),\n\t\t\tCnameType:            pulumi.String(\"PUBLIC\"),\n\t\t\tResourceGroupId:      pulumi.String(_default.Groups[0].Id),\n\t\t\tAlertGroups: pulumi.StringArray{\n\t\t\t\tdefaultAlarmContactGroup.AlarmContactGroupName,\n\t\t\t},\n\t\t\tPublicUserDomainName: pulumi.String(domainName),\n\t\t\tAlertConfigs: dns.GtmInstanceAlertConfigArray{\n\t\t\t\t\u0026dns.GtmInstanceAlertConfigArgs{\n\t\t\t\t\tSmsNotice:      pulumi.Bool(true),\n\t\t\t\t\tNoticeType:     pulumi.String(\"ADDR_ALERT\"),\n\t\t\t\t\tEmailNotice:    pulumi.Bool(true),\n\t\t\t\t\tDingtalkNotice: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: fmt.Sprintf(\"%v%v\", name, \"_%d\"),\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar defaultAddressPool []*dns.AddressPool\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := dns.NewAddressPool(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026dns.AddressPoolArgs{\n\t\t\t\tAddressPoolName: pulumi.String(invokeFormat.Result),\n\t\t\t\tInstanceId:      defaultGtmInstance.ID(),\n\t\t\t\tLbaStrategy:     pulumi.String(\"RATIO\"),\n\t\t\t\tType:            pulumi.String(\"IPV4\"),\n\t\t\t\tAddresses: dns.AddressPoolAddressArray{\n\t\t\t\t\t\u0026dns.AddressPoolAddressArgs{\n\t\t\t\t\t\tAttributeInfo: pulumi.String(\"{\\\"lineCodeRectifyType\\\":\\\"RECTIFIED\\\",\\\"lineCodes\\\":[\\\"os_namerica_us\\\"]}\"),\n\t\t\t\t\t\tRemark:        pulumi.String(\"address_remark\"),\n\t\t\t\t\t\tAddress:       pulumi.String(\"1.1.1.1\"),\n\t\t\t\t\t\tMode:          pulumi.String(\"SMART\"),\n\t\t\t\t\t\tLbaWeight:     pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultAddressPool = append(defaultAddressPool, __res)\n\t\t}\n\t\t_, err = dns.NewAccessStrategy(ctx, \"default\", \u0026dns.AccessStrategyArgs{\n\t\t\tStrategyName:               pulumi.String(name),\n\t\t\tStrategyMode:               pulumi.String(\"GEO\"),\n\t\t\tInstanceId:                 defaultGtmInstance.ID(),\n\t\t\tDefaultAddrPoolType:        pulumi.String(\"IPV4\"),\n\t\t\tDefaultLbaStrategy:         pulumi.String(\"RATIO\"),\n\t\t\tDefaultMinAvailableAddrNum: pulumi.Int(1),\n\t\t\tDefaultAddrPools: dns.AccessStrategyDefaultAddrPoolArray{\n\t\t\t\t\u0026dns.AccessStrategyDefaultAddrPoolArgs{\n\t\t\t\t\tLbaWeight:  pulumi.Int(1),\n\t\t\t\t\tAddrPoolId: defaultAddressPool[0].ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFailoverAddrPoolType:        pulumi.String(\"IPV4\"),\n\t\t\tFailoverLbaStrategy:         pulumi.String(\"RATIO\"),\n\t\t\tFailoverMinAvailableAddrNum: pulumi.Int(1),\n\t\t\tFailoverAddrPools: dns.AccessStrategyFailoverAddrPoolArray{\n\t\t\t\t\u0026dns.AccessStrategyFailoverAddrPoolArgs{\n\t\t\t\t\tLbaWeight:  pulumi.Int(1),\n\t\t\t\t\tAddrPoolId: defaultAddressPool[1].ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLines: dns.AccessStrategyLineArray{\n\t\t\t\t\u0026dns.AccessStrategyLineArgs{\n\t\t\t\t\tLineCode: pulumi.String(\"default\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.cms.AlarmContactGroup;\nimport com.pulumi.alicloud.cms.AlarmContactGroupArgs;\nimport com.pulumi.alicloud.dns.GtmInstance;\nimport com.pulumi.alicloud.dns.GtmInstanceArgs;\nimport com.pulumi.alicloud.dns.inputs.GtmInstanceAlertConfigArgs;\nimport com.pulumi.alicloud.dns.AddressPool;\nimport com.pulumi.alicloud.dns.AddressPoolArgs;\nimport com.pulumi.alicloud.dns.inputs.AddressPoolAddressArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.dns.AccessStrategy;\nimport com.pulumi.alicloud.dns.AccessStrategyArgs;\nimport com.pulumi.alicloud.dns.inputs.AccessStrategyDefaultAddrPoolArgs;\nimport com.pulumi.alicloud.dns.inputs.AccessStrategyFailoverAddrPoolArgs;\nimport com.pulumi.alicloud.dns.inputs.AccessStrategyLineArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var domainName = config.get(\"domainName\").orElse(\"alicloud-provider.com\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultAlarmContactGroup = new AlarmContactGroup(\"defaultAlarmContactGroup\", AlarmContactGroupArgs.builder()\n            .alarmContactGroupName(name)\n            .build());\n\n        var defaultGtmInstance = new GtmInstance(\"defaultGtmInstance\", GtmInstanceArgs.builder()\n            .instanceName(name)\n            .paymentType(\"Subscription\")\n            .period(1)\n            .renewalStatus(\"ManualRenewal\")\n            .packageEdition(\"standard\")\n            .healthCheckTaskCount(100)\n            .smsNotificationCount(1000)\n            .publicCnameMode(\"SYSTEM_ASSIGN\")\n            .ttl(60)\n            .cnameType(\"PUBLIC\")\n            .resourceGroupId(default_.groups()[0].id())\n            .alertGroups(defaultAlarmContactGroup.alarmContactGroupName())\n            .publicUserDomainName(domainName)\n            .alertConfigs(GtmInstanceAlertConfigArgs.builder()\n                .smsNotice(true)\n                .noticeType(\"ADDR_ALERT\")\n                .emailNotice(true)\n                .dingtalkNotice(true)\n                .build())\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new AddressPool(\"defaultAddressPool-\" + i, AddressPoolArgs.builder()\n                .addressPoolName(StdFunctions.format(FormatArgs.builder()\n                    .input(String.format(\"%s_%d\", name))\n                    .args(range.value() + 1)\n                    .build()).result())\n                .instanceId(defaultGtmInstance.id())\n                .lbaStrategy(\"RATIO\")\n                .type(\"IPV4\")\n                .addresses(AddressPoolAddressArgs.builder()\n                    .attributeInfo(\"{\\\"lineCodeRectifyType\\\":\\\"RECTIFIED\\\",\\\"lineCodes\\\":[\\\"os_namerica_us\\\"]}\")\n                    .remark(\"address_remark\")\n                    .address(\"1.1.1.1\")\n                    .mode(\"SMART\")\n                    .lbaWeight(1)\n                    .build())\n                .build());\n\n        \n}\n        var defaultAccessStrategy = new AccessStrategy(\"defaultAccessStrategy\", AccessStrategyArgs.builder()\n            .strategyName(name)\n            .strategyMode(\"GEO\")\n            .instanceId(defaultGtmInstance.id())\n            .defaultAddrPoolType(\"IPV4\")\n            .defaultLbaStrategy(\"RATIO\")\n            .defaultMinAvailableAddrNum(1)\n            .defaultAddrPools(AccessStrategyDefaultAddrPoolArgs.builder()\n                .lbaWeight(1)\n                .addrPoolId(defaultAddressPool[0].id())\n                .build())\n            .failoverAddrPoolType(\"IPV4\")\n            .failoverLbaStrategy(\"RATIO\")\n            .failoverMinAvailableAddrNum(1)\n            .failoverAddrPools(AccessStrategyFailoverAddrPoolArgs.builder()\n                .lbaWeight(1)\n                .addrPoolId(defaultAddressPool[1].id())\n                .build())\n            .lines(AccessStrategyLineArgs.builder()\n                .lineCode(\"default\")\n                .build())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDNS Access Strategy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dns/accessStrategy:AccessStrategy example \u003cid\u003e\n```\n\n","properties":{"accessMode":{"type":"string","description":"The primary/secondary switchover policy for address pool groups. Valid values: `AUTO`, `DEFAULT`, `FAILOVER`.\n"},"defaultAddrPoolType":{"type":"string","description":"The type of the primary address pool. Valid values: `IPV4`, `IPV6`, `DOMAIN`.\n"},"defaultAddrPools":{"type":"array","items":{"$ref":"#/types/alicloud:dns/AccessStrategyDefaultAddrPool:AccessStrategyDefaultAddrPool"},"description":"List of primary address pool collections. See \u003cspan pulumi-lang-nodejs=\"`defaultAddrPools`\" pulumi-lang-dotnet=\"`DefaultAddrPools`\" pulumi-lang-go=\"`defaultAddrPools`\" pulumi-lang-python=\"`default_addr_pools`\" pulumi-lang-yaml=\"`defaultAddrPools`\" pulumi-lang-java=\"`defaultAddrPools`\"\u003e`default_addr_pools`\u003c/span\u003e below for details.\n"},"defaultLatencyOptimization":{"type":"string","description":"Specifies whether to enable scheduling optimization for latency resolution for the primary address pool group. Valid values: `OPEN`, `CLOSE`.\n"},"defaultLbaStrategy":{"type":"string","description":"The load balancing policy of the primary address pool group. Valid values: `ALL_RR`, `RATIO`. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`defaultLbaStrategy`\" pulumi-lang-dotnet=\"`DefaultLbaStrategy`\" pulumi-lang-go=\"`defaultLbaStrategy`\" pulumi-lang-python=\"`default_lba_strategy`\" pulumi-lang-yaml=\"`defaultLbaStrategy`\" pulumi-lang-java=\"`defaultLbaStrategy`\"\u003e`default_lba_strategy`\u003c/span\u003e is required under the condition that \u003cspan pulumi-lang-nodejs=\"`strategyMode`\" pulumi-lang-dotnet=\"`StrategyMode`\" pulumi-lang-go=\"`strategyMode`\" pulumi-lang-python=\"`strategy_mode`\" pulumi-lang-yaml=\"`strategyMode`\" pulumi-lang-java=\"`strategyMode`\"\u003e`strategy_mode`\u003c/span\u003e is `GEO`.\n"},"defaultMaxReturnAddrNum":{"type":"integer","description":"The maximum number of addresses returned by the primary address pool set. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`defaultMaxReturnAddrNum`\" pulumi-lang-dotnet=\"`DefaultMaxReturnAddrNum`\" pulumi-lang-go=\"`defaultMaxReturnAddrNum`\" pulumi-lang-python=\"`default_max_return_addr_num`\" pulumi-lang-yaml=\"`defaultMaxReturnAddrNum`\" pulumi-lang-java=\"`defaultMaxReturnAddrNum`\"\u003e`default_max_return_addr_num`\u003c/span\u003e is required under the condition that \u003cspan pulumi-lang-nodejs=\"`strategyMode`\" pulumi-lang-dotnet=\"`StrategyMode`\" pulumi-lang-go=\"`strategyMode`\" pulumi-lang-python=\"`strategy_mode`\" pulumi-lang-yaml=\"`strategyMode`\" pulumi-lang-java=\"`strategyMode`\"\u003e`strategy_mode`\u003c/span\u003e is `LATENCY`.\n"},"defaultMinAvailableAddrNum":{"type":"integer","description":"The minimum number of available addresses for the primary address pool set.\n"},"failoverAddrPoolType":{"type":"string","description":"The type of the secondary address pool. Valid values: `IPV4`, `IPV6`, `DOMAIN`.\n"},"failoverAddrPools":{"type":"array","items":{"$ref":"#/types/alicloud:dns/AccessStrategyFailoverAddrPool:AccessStrategyFailoverAddrPool"},"description":"List of backup address pool sets. See \u003cspan pulumi-lang-nodejs=\"`failoverAddrPools`\" pulumi-lang-dotnet=\"`FailoverAddrPools`\" pulumi-lang-go=\"`failoverAddrPools`\" pulumi-lang-python=\"`failover_addr_pools`\" pulumi-lang-yaml=\"`failoverAddrPools`\" pulumi-lang-java=\"`failoverAddrPools`\"\u003e`failover_addr_pools`\u003c/span\u003e below for details.\n"},"failoverLatencyOptimization":{"type":"string","description":"Specifies whether to enable scheduling optimization for latency resolution for the secondary address pool group. Valid values: `OPEN`, `CLOSE`.\n"},"failoverLbaStrategy":{"type":"string","description":"The load balancing policy of the secondary address pool group. Valid values: `ALL_RR`, `RATIO`.\n"},"failoverMaxReturnAddrNum":{"type":"integer","description":"The maximum number of returned addresses in the standby address pool.\n"},"failoverMinAvailableAddrNum":{"type":"integer","description":"The minimum number of available addresses in the standby address pool.\n"},"instanceId":{"type":"string","description":"The Id of the associated instance.\n"},"lang":{"type":"string","description":"The lang.\n"},"lines":{"type":"array","items":{"$ref":"#/types/alicloud:dns/AccessStrategyLine:AccessStrategyLine"},"description":"The source regions. See \u003cspan pulumi-lang-nodejs=\"`lines`\" pulumi-lang-dotnet=\"`Lines`\" pulumi-lang-go=\"`lines`\" pulumi-lang-python=\"`lines`\" pulumi-lang-yaml=\"`lines`\" pulumi-lang-java=\"`lines`\"\u003e`lines`\u003c/span\u003e below for details. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`lines`\" pulumi-lang-dotnet=\"`Lines`\" pulumi-lang-go=\"`lines`\" pulumi-lang-python=\"`lines`\" pulumi-lang-yaml=\"`lines`\" pulumi-lang-java=\"`lines`\"\u003e`lines`\u003c/span\u003e is required under the condition that \u003cspan pulumi-lang-nodejs=\"`strategyMode`\" pulumi-lang-dotnet=\"`StrategyMode`\" pulumi-lang-go=\"`strategyMode`\" pulumi-lang-python=\"`strategy_mode`\" pulumi-lang-yaml=\"`strategyMode`\" pulumi-lang-java=\"`strategyMode`\"\u003e`strategy_mode`\u003c/span\u003e is `GEO`.\n"},"strategyMode":{"type":"string","description":"The type of the access policy. Valid values: `GEO` or `LATENCY`. `GEO`: based on geographic location. `LATENCY`: Based on delay.\n"},"strategyName":{"type":"string","description":"The name of the access policy.\n"}},"required":["accessMode","defaultAddrPoolType","defaultAddrPools","defaultMinAvailableAddrNum","instanceId","strategyMode","strategyName"],"inputProperties":{"accessMode":{"type":"string","description":"The primary/secondary switchover policy for address pool groups. Valid values: `AUTO`, `DEFAULT`, `FAILOVER`.\n"},"defaultAddrPoolType":{"type":"string","description":"The type of the primary address pool. Valid values: `IPV4`, `IPV6`, `DOMAIN`.\n"},"defaultAddrPools":{"type":"array","items":{"$ref":"#/types/alicloud:dns/AccessStrategyDefaultAddrPool:AccessStrategyDefaultAddrPool"},"description":"List of primary address pool collections. See \u003cspan pulumi-lang-nodejs=\"`defaultAddrPools`\" pulumi-lang-dotnet=\"`DefaultAddrPools`\" pulumi-lang-go=\"`defaultAddrPools`\" pulumi-lang-python=\"`default_addr_pools`\" pulumi-lang-yaml=\"`defaultAddrPools`\" pulumi-lang-java=\"`defaultAddrPools`\"\u003e`default_addr_pools`\u003c/span\u003e below for details.\n"},"defaultLatencyOptimization":{"type":"string","description":"Specifies whether to enable scheduling optimization for latency resolution for the primary address pool group. Valid values: `OPEN`, `CLOSE`.\n"},"defaultLbaStrategy":{"type":"string","description":"The load balancing policy of the primary address pool group. Valid values: `ALL_RR`, `RATIO`. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`defaultLbaStrategy`\" pulumi-lang-dotnet=\"`DefaultLbaStrategy`\" pulumi-lang-go=\"`defaultLbaStrategy`\" pulumi-lang-python=\"`default_lba_strategy`\" pulumi-lang-yaml=\"`defaultLbaStrategy`\" pulumi-lang-java=\"`defaultLbaStrategy`\"\u003e`default_lba_strategy`\u003c/span\u003e is required under the condition that \u003cspan pulumi-lang-nodejs=\"`strategyMode`\" pulumi-lang-dotnet=\"`StrategyMode`\" pulumi-lang-go=\"`strategyMode`\" pulumi-lang-python=\"`strategy_mode`\" pulumi-lang-yaml=\"`strategyMode`\" pulumi-lang-java=\"`strategyMode`\"\u003e`strategy_mode`\u003c/span\u003e is `GEO`.\n"},"defaultMaxReturnAddrNum":{"type":"integer","description":"The maximum number of addresses returned by the primary address pool set. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`defaultMaxReturnAddrNum`\" pulumi-lang-dotnet=\"`DefaultMaxReturnAddrNum`\" pulumi-lang-go=\"`defaultMaxReturnAddrNum`\" pulumi-lang-python=\"`default_max_return_addr_num`\" pulumi-lang-yaml=\"`defaultMaxReturnAddrNum`\" pulumi-lang-java=\"`defaultMaxReturnAddrNum`\"\u003e`default_max_return_addr_num`\u003c/span\u003e is required under the condition that \u003cspan pulumi-lang-nodejs=\"`strategyMode`\" pulumi-lang-dotnet=\"`StrategyMode`\" pulumi-lang-go=\"`strategyMode`\" pulumi-lang-python=\"`strategy_mode`\" pulumi-lang-yaml=\"`strategyMode`\" pulumi-lang-java=\"`strategyMode`\"\u003e`strategy_mode`\u003c/span\u003e is `LATENCY`.\n"},"defaultMinAvailableAddrNum":{"type":"integer","description":"The minimum number of available addresses for the primary address pool set.\n"},"failoverAddrPoolType":{"type":"string","description":"The type of the secondary address pool. Valid values: `IPV4`, `IPV6`, `DOMAIN`.\n"},"failoverAddrPools":{"type":"array","items":{"$ref":"#/types/alicloud:dns/AccessStrategyFailoverAddrPool:AccessStrategyFailoverAddrPool"},"description":"List of backup address pool sets. See \u003cspan pulumi-lang-nodejs=\"`failoverAddrPools`\" pulumi-lang-dotnet=\"`FailoverAddrPools`\" pulumi-lang-go=\"`failoverAddrPools`\" pulumi-lang-python=\"`failover_addr_pools`\" pulumi-lang-yaml=\"`failoverAddrPools`\" pulumi-lang-java=\"`failoverAddrPools`\"\u003e`failover_addr_pools`\u003c/span\u003e below for details.\n"},"failoverLatencyOptimization":{"type":"string","description":"Specifies whether to enable scheduling optimization for latency resolution for the secondary address pool group. Valid values: `OPEN`, `CLOSE`.\n"},"failoverLbaStrategy":{"type":"string","description":"The load balancing policy of the secondary address pool group. Valid values: `ALL_RR`, `RATIO`.\n"},"failoverMaxReturnAddrNum":{"type":"integer","description":"The maximum number of returned addresses in the standby address pool.\n"},"failoverMinAvailableAddrNum":{"type":"integer","description":"The minimum number of available addresses in the standby address pool.\n"},"instanceId":{"type":"string","description":"The Id of the associated instance.\n","willReplaceOnChanges":true},"lang":{"type":"string","description":"The lang.\n"},"lines":{"type":"array","items":{"$ref":"#/types/alicloud:dns/AccessStrategyLine:AccessStrategyLine"},"description":"The source regions. See \u003cspan pulumi-lang-nodejs=\"`lines`\" pulumi-lang-dotnet=\"`Lines`\" pulumi-lang-go=\"`lines`\" pulumi-lang-python=\"`lines`\" pulumi-lang-yaml=\"`lines`\" pulumi-lang-java=\"`lines`\"\u003e`lines`\u003c/span\u003e below for details. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`lines`\" pulumi-lang-dotnet=\"`Lines`\" pulumi-lang-go=\"`lines`\" pulumi-lang-python=\"`lines`\" pulumi-lang-yaml=\"`lines`\" pulumi-lang-java=\"`lines`\"\u003e`lines`\u003c/span\u003e is required under the condition that \u003cspan pulumi-lang-nodejs=\"`strategyMode`\" pulumi-lang-dotnet=\"`StrategyMode`\" pulumi-lang-go=\"`strategyMode`\" pulumi-lang-python=\"`strategy_mode`\" pulumi-lang-yaml=\"`strategyMode`\" pulumi-lang-java=\"`strategyMode`\"\u003e`strategy_mode`\u003c/span\u003e is `GEO`.\n"},"strategyMode":{"type":"string","description":"The type of the access policy. Valid values: `GEO` or `LATENCY`. `GEO`: based on geographic location. `LATENCY`: Based on delay.\n"},"strategyName":{"type":"string","description":"The name of the access policy.\n"}},"requiredInputs":["defaultAddrPoolType","defaultAddrPools","defaultMinAvailableAddrNum","instanceId","strategyMode","strategyName"],"stateInputs":{"description":"Input properties used for looking up and filtering AccessStrategy resources.\n","properties":{"accessMode":{"type":"string","description":"The primary/secondary switchover policy for address pool groups. Valid values: `AUTO`, `DEFAULT`, `FAILOVER`.\n"},"defaultAddrPoolType":{"type":"string","description":"The type of the primary address pool. Valid values: `IPV4`, `IPV6`, `DOMAIN`.\n"},"defaultAddrPools":{"type":"array","items":{"$ref":"#/types/alicloud:dns/AccessStrategyDefaultAddrPool:AccessStrategyDefaultAddrPool"},"description":"List of primary address pool collections. See \u003cspan pulumi-lang-nodejs=\"`defaultAddrPools`\" pulumi-lang-dotnet=\"`DefaultAddrPools`\" pulumi-lang-go=\"`defaultAddrPools`\" pulumi-lang-python=\"`default_addr_pools`\" pulumi-lang-yaml=\"`defaultAddrPools`\" pulumi-lang-java=\"`defaultAddrPools`\"\u003e`default_addr_pools`\u003c/span\u003e below for details.\n"},"defaultLatencyOptimization":{"type":"string","description":"Specifies whether to enable scheduling optimization for latency resolution for the primary address pool group. Valid values: `OPEN`, `CLOSE`.\n"},"defaultLbaStrategy":{"type":"string","description":"The load balancing policy of the primary address pool group. Valid values: `ALL_RR`, `RATIO`. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`defaultLbaStrategy`\" pulumi-lang-dotnet=\"`DefaultLbaStrategy`\" pulumi-lang-go=\"`defaultLbaStrategy`\" pulumi-lang-python=\"`default_lba_strategy`\" pulumi-lang-yaml=\"`defaultLbaStrategy`\" pulumi-lang-java=\"`defaultLbaStrategy`\"\u003e`default_lba_strategy`\u003c/span\u003e is required under the condition that \u003cspan pulumi-lang-nodejs=\"`strategyMode`\" pulumi-lang-dotnet=\"`StrategyMode`\" pulumi-lang-go=\"`strategyMode`\" pulumi-lang-python=\"`strategy_mode`\" pulumi-lang-yaml=\"`strategyMode`\" pulumi-lang-java=\"`strategyMode`\"\u003e`strategy_mode`\u003c/span\u003e is `GEO`.\n"},"defaultMaxReturnAddrNum":{"type":"integer","description":"The maximum number of addresses returned by the primary address pool set. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`defaultMaxReturnAddrNum`\" pulumi-lang-dotnet=\"`DefaultMaxReturnAddrNum`\" pulumi-lang-go=\"`defaultMaxReturnAddrNum`\" pulumi-lang-python=\"`default_max_return_addr_num`\" pulumi-lang-yaml=\"`defaultMaxReturnAddrNum`\" pulumi-lang-java=\"`defaultMaxReturnAddrNum`\"\u003e`default_max_return_addr_num`\u003c/span\u003e is required under the condition that \u003cspan pulumi-lang-nodejs=\"`strategyMode`\" pulumi-lang-dotnet=\"`StrategyMode`\" pulumi-lang-go=\"`strategyMode`\" pulumi-lang-python=\"`strategy_mode`\" pulumi-lang-yaml=\"`strategyMode`\" pulumi-lang-java=\"`strategyMode`\"\u003e`strategy_mode`\u003c/span\u003e is `LATENCY`.\n"},"defaultMinAvailableAddrNum":{"type":"integer","description":"The minimum number of available addresses for the primary address pool set.\n"},"failoverAddrPoolType":{"type":"string","description":"The type of the secondary address pool. Valid values: `IPV4`, `IPV6`, `DOMAIN`.\n"},"failoverAddrPools":{"type":"array","items":{"$ref":"#/types/alicloud:dns/AccessStrategyFailoverAddrPool:AccessStrategyFailoverAddrPool"},"description":"List of backup address pool sets. See \u003cspan pulumi-lang-nodejs=\"`failoverAddrPools`\" pulumi-lang-dotnet=\"`FailoverAddrPools`\" pulumi-lang-go=\"`failoverAddrPools`\" pulumi-lang-python=\"`failover_addr_pools`\" pulumi-lang-yaml=\"`failoverAddrPools`\" pulumi-lang-java=\"`failoverAddrPools`\"\u003e`failover_addr_pools`\u003c/span\u003e below for details.\n"},"failoverLatencyOptimization":{"type":"string","description":"Specifies whether to enable scheduling optimization for latency resolution for the secondary address pool group. Valid values: `OPEN`, `CLOSE`.\n"},"failoverLbaStrategy":{"type":"string","description":"The load balancing policy of the secondary address pool group. Valid values: `ALL_RR`, `RATIO`.\n"},"failoverMaxReturnAddrNum":{"type":"integer","description":"The maximum number of returned addresses in the standby address pool.\n"},"failoverMinAvailableAddrNum":{"type":"integer","description":"The minimum number of available addresses in the standby address pool.\n"},"instanceId":{"type":"string","description":"The Id of the associated instance.\n","willReplaceOnChanges":true},"lang":{"type":"string","description":"The lang.\n"},"lines":{"type":"array","items":{"$ref":"#/types/alicloud:dns/AccessStrategyLine:AccessStrategyLine"},"description":"The source regions. See \u003cspan pulumi-lang-nodejs=\"`lines`\" pulumi-lang-dotnet=\"`Lines`\" pulumi-lang-go=\"`lines`\" pulumi-lang-python=\"`lines`\" pulumi-lang-yaml=\"`lines`\" pulumi-lang-java=\"`lines`\"\u003e`lines`\u003c/span\u003e below for details. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`lines`\" pulumi-lang-dotnet=\"`Lines`\" pulumi-lang-go=\"`lines`\" pulumi-lang-python=\"`lines`\" pulumi-lang-yaml=\"`lines`\" pulumi-lang-java=\"`lines`\"\u003e`lines`\u003c/span\u003e is required under the condition that \u003cspan pulumi-lang-nodejs=\"`strategyMode`\" pulumi-lang-dotnet=\"`StrategyMode`\" pulumi-lang-go=\"`strategyMode`\" pulumi-lang-python=\"`strategy_mode`\" pulumi-lang-yaml=\"`strategyMode`\" pulumi-lang-java=\"`strategyMode`\"\u003e`strategy_mode`\u003c/span\u003e is `GEO`.\n"},"strategyMode":{"type":"string","description":"The type of the access policy. Valid values: `GEO` or `LATENCY`. `GEO`: based on geographic location. `LATENCY`: Based on delay.\n"},"strategyName":{"type":"string","description":"The name of the access policy.\n"}},"type":"object"}},"alicloud:dns/addressPool:AddressPool":{"description":"Provides a Alidns Address Pool resource.\n\nFor information about Alidns Address Pool and how to use it, see [What is Address Pool](https://www.alibabacloud.com/help/doc-detail/189621.html).\n\n\u003e **NOTE:** Available since v1.152.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst domainName = config.get(\"domainName\") || \"alicloud-provider.com\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultAlarmContactGroup = new alicloud.cms.AlarmContactGroup(\"default\", {alarmContactGroupName: name});\nconst defaultGtmInstance = new alicloud.dns.GtmInstance(\"default\", {\n    instanceName: name,\n    paymentType: \"Subscription\",\n    period: 1,\n    renewalStatus: \"ManualRenewal\",\n    packageEdition: \"standard\",\n    healthCheckTaskCount: 100,\n    smsNotificationCount: 1000,\n    publicCnameMode: \"SYSTEM_ASSIGN\",\n    ttl: 60,\n    cnameType: \"PUBLIC\",\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n    alertGroups: [defaultAlarmContactGroup.alarmContactGroupName],\n    publicUserDomainName: domainName,\n    alertConfigs: [{\n        smsNotice: true,\n        noticeType: \"ADDR_ALERT\",\n        emailNotice: true,\n        dingtalkNotice: true,\n    }],\n});\nconst defaultAddressPool = new alicloud.dns.AddressPool(\"default\", {\n    addressPoolName: name,\n    instanceId: defaultGtmInstance.id,\n    lbaStrategy: \"RATIO\",\n    type: \"IPV4\",\n    addresses: [{\n        attributeInfo: `    {\n      \\\\\"lineCodeRectifyType\\\\\": \\\\\"RECTIFIED\\\\\",\n      \\\\\"lineCodes\\\\\": [\\\\\"os_namerica_us\\\\\"]\n    }\n`,\n        remark: \"address_remark\",\n        address: \"1.1.1.1\",\n        mode: \"SMART\",\n        lbaWeight: 1,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndomain_name = config.get(\"domainName\")\nif domain_name is None:\n    domain_name = \"alicloud-provider.com\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_alarm_contact_group = alicloud.cms.AlarmContactGroup(\"default\", alarm_contact_group_name=name)\ndefault_gtm_instance = alicloud.dns.GtmInstance(\"default\",\n    instance_name=name,\n    payment_type=\"Subscription\",\n    period=1,\n    renewal_status=\"ManualRenewal\",\n    package_edition=\"standard\",\n    health_check_task_count=100,\n    sms_notification_count=1000,\n    public_cname_mode=\"SYSTEM_ASSIGN\",\n    ttl=60,\n    cname_type=\"PUBLIC\",\n    resource_group_id=default.groups[0].id,\n    alert_groups=[default_alarm_contact_group.alarm_contact_group_name],\n    public_user_domain_name=domain_name,\n    alert_configs=[{\n        \"sms_notice\": True,\n        \"notice_type\": \"ADDR_ALERT\",\n        \"email_notice\": True,\n        \"dingtalk_notice\": True,\n    }])\ndefault_address_pool = alicloud.dns.AddressPool(\"default\",\n    address_pool_name=name,\n    instance_id=default_gtm_instance.id,\n    lba_strategy=\"RATIO\",\n    type=\"IPV4\",\n    addresses=[{\n        \"attribute_info\": \"\"\"    {\n      \\\"lineCodeRectifyType\\\": \\\"RECTIFIED\\\",\n      \\\"lineCodes\\\": [\\\"os_namerica_us\\\"]\n    }\n\"\"\",\n        \"remark\": \"address_remark\",\n        \"address\": \"1.1.1.1\",\n        \"mode\": \"SMART\",\n        \"lba_weight\": 1,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var domainName = config.Get(\"domainName\") ?? \"alicloud-provider.com\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultAlarmContactGroup = new AliCloud.Cms.AlarmContactGroup(\"default\", new()\n    {\n        AlarmContactGroupName = name,\n    });\n\n    var defaultGtmInstance = new AliCloud.Dns.GtmInstance(\"default\", new()\n    {\n        InstanceName = name,\n        PaymentType = \"Subscription\",\n        Period = 1,\n        RenewalStatus = \"ManualRenewal\",\n        PackageEdition = \"standard\",\n        HealthCheckTaskCount = 100,\n        SmsNotificationCount = 1000,\n        PublicCnameMode = \"SYSTEM_ASSIGN\",\n        Ttl = 60,\n        CnameType = \"PUBLIC\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n        AlertGroups = new[]\n        {\n            defaultAlarmContactGroup.AlarmContactGroupName,\n        },\n        PublicUserDomainName = domainName,\n        AlertConfigs = new[]\n        {\n            new AliCloud.Dns.Inputs.GtmInstanceAlertConfigArgs\n            {\n                SmsNotice = true,\n                NoticeType = \"ADDR_ALERT\",\n                EmailNotice = true,\n                DingtalkNotice = true,\n            },\n        },\n    });\n\n    var defaultAddressPool = new AliCloud.Dns.AddressPool(\"default\", new()\n    {\n        AddressPoolName = name,\n        InstanceId = defaultGtmInstance.Id,\n        LbaStrategy = \"RATIO\",\n        Type = \"IPV4\",\n        Addresses = new[]\n        {\n            new AliCloud.Dns.Inputs.AddressPoolAddressArgs\n            {\n                AttributeInfo = @\"    {\n      \\\"\"lineCodeRectifyType\\\"\": \\\"\"RECTIFIED\\\"\",\n      \\\"\"lineCodes\\\"\": [\\\"\"os_namerica_us\\\"\"]\n    }\n\",\n                Remark = \"address_remark\",\n                Address = \"1.1.1.1\",\n                Mode = \"SMART\",\n                LbaWeight = 1,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdomainName := \"alicloud-provider.com\"\n\t\tif param := cfg.Get(\"domainName\"); param != \"\" {\n\t\t\tdomainName = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAlarmContactGroup, err := cms.NewAlarmContactGroup(ctx, \"default\", \u0026cms.AlarmContactGroupArgs{\n\t\t\tAlarmContactGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGtmInstance, err := dns.NewGtmInstance(ctx, \"default\", \u0026dns.GtmInstanceArgs{\n\t\t\tInstanceName:         pulumi.String(name),\n\t\t\tPaymentType:          pulumi.String(\"Subscription\"),\n\t\t\tPeriod:               pulumi.Int(1),\n\t\t\tRenewalStatus:        pulumi.String(\"ManualRenewal\"),\n\t\t\tPackageEdition:       pulumi.String(\"standard\"),\n\t\t\tHealthCheckTaskCount: pulumi.Int(100),\n\t\t\tSmsNotificationCount: pulumi.Int(1000),\n\t\t\tPublicCnameMode:      pulumi.String(\"SYSTEM_ASSIGN\"),\n\t\t\tTtl:                  pulumi.Int(60),\n\t\t\tCnameType:            pulumi.String(\"PUBLIC\"),\n\t\t\tResourceGroupId:      pulumi.String(_default.Groups[0].Id),\n\t\t\tAlertGroups: pulumi.StringArray{\n\t\t\t\tdefaultAlarmContactGroup.AlarmContactGroupName,\n\t\t\t},\n\t\t\tPublicUserDomainName: pulumi.String(domainName),\n\t\t\tAlertConfigs: dns.GtmInstanceAlertConfigArray{\n\t\t\t\t\u0026dns.GtmInstanceAlertConfigArgs{\n\t\t\t\t\tSmsNotice:      pulumi.Bool(true),\n\t\t\t\t\tNoticeType:     pulumi.String(\"ADDR_ALERT\"),\n\t\t\t\t\tEmailNotice:    pulumi.Bool(true),\n\t\t\t\t\tDingtalkNotice: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewAddressPool(ctx, \"default\", \u0026dns.AddressPoolArgs{\n\t\t\tAddressPoolName: pulumi.String(name),\n\t\t\tInstanceId:      defaultGtmInstance.ID(),\n\t\t\tLbaStrategy:     pulumi.String(\"RATIO\"),\n\t\t\tType:            pulumi.String(\"IPV4\"),\n\t\t\tAddresses: dns.AddressPoolAddressArray{\n\t\t\t\t\u0026dns.AddressPoolAddressArgs{\n\t\t\t\t\tAttributeInfo: pulumi.String(\"    {\\n      \\\\\\\"lineCodeRectifyType\\\\\\\": \\\\\\\"RECTIFIED\\\\\\\",\\n      \\\\\\\"lineCodes\\\\\\\": [\\\\\\\"os_namerica_us\\\\\\\"]\\n    }\\n\"),\n\t\t\t\t\tRemark:        pulumi.String(\"address_remark\"),\n\t\t\t\t\tAddress:       pulumi.String(\"1.1.1.1\"),\n\t\t\t\t\tMode:          pulumi.String(\"SMART\"),\n\t\t\t\t\tLbaWeight:     pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.cms.AlarmContactGroup;\nimport com.pulumi.alicloud.cms.AlarmContactGroupArgs;\nimport com.pulumi.alicloud.dns.GtmInstance;\nimport com.pulumi.alicloud.dns.GtmInstanceArgs;\nimport com.pulumi.alicloud.dns.inputs.GtmInstanceAlertConfigArgs;\nimport com.pulumi.alicloud.dns.AddressPool;\nimport com.pulumi.alicloud.dns.AddressPoolArgs;\nimport com.pulumi.alicloud.dns.inputs.AddressPoolAddressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var domainName = config.get(\"domainName\").orElse(\"alicloud-provider.com\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultAlarmContactGroup = new AlarmContactGroup(\"defaultAlarmContactGroup\", AlarmContactGroupArgs.builder()\n            .alarmContactGroupName(name)\n            .build());\n\n        var defaultGtmInstance = new GtmInstance(\"defaultGtmInstance\", GtmInstanceArgs.builder()\n            .instanceName(name)\n            .paymentType(\"Subscription\")\n            .period(1)\n            .renewalStatus(\"ManualRenewal\")\n            .packageEdition(\"standard\")\n            .healthCheckTaskCount(100)\n            .smsNotificationCount(1000)\n            .publicCnameMode(\"SYSTEM_ASSIGN\")\n            .ttl(60)\n            .cnameType(\"PUBLIC\")\n            .resourceGroupId(default_.groups()[0].id())\n            .alertGroups(defaultAlarmContactGroup.alarmContactGroupName())\n            .publicUserDomainName(domainName)\n            .alertConfigs(GtmInstanceAlertConfigArgs.builder()\n                .smsNotice(true)\n                .noticeType(\"ADDR_ALERT\")\n                .emailNotice(true)\n                .dingtalkNotice(true)\n                .build())\n            .build());\n\n        var defaultAddressPool = new AddressPool(\"defaultAddressPool\", AddressPoolArgs.builder()\n            .addressPoolName(name)\n            .instanceId(defaultGtmInstance.id())\n            .lbaStrategy(\"RATIO\")\n            .type(\"IPV4\")\n            .addresses(AddressPoolAddressArgs.builder()\n                .attributeInfo(\"\"\"\n    {\n      \\\"lineCodeRectifyType\\\": \\\"RECTIFIED\\\",\n      \\\"lineCodes\\\": [\\\"os_namerica_us\\\"]\n    }\n                \"\"\")\n                .remark(\"address_remark\")\n                .address(\"1.1.1.1\")\n                .mode(\"SMART\")\n                .lbaWeight(1)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\n  domainName:\n    type: string\n    default: alicloud-provider.com\nresources:\n  defaultAlarmContactGroup:\n    type: alicloud:cms:AlarmContactGroup\n    name: default\n    properties:\n      alarmContactGroupName: ${name}\n  defaultGtmInstance:\n    type: alicloud:dns:GtmInstance\n    name: default\n    properties:\n      instanceName: ${name}\n      paymentType: Subscription\n      period: 1\n      renewalStatus: ManualRenewal\n      packageEdition: standard\n      healthCheckTaskCount: 100\n      smsNotificationCount: 1000\n      publicCnameMode: SYSTEM_ASSIGN\n      ttl: 60\n      cnameType: PUBLIC\n      resourceGroupId: ${default.groups[0].id}\n      alertGroups:\n        - ${defaultAlarmContactGroup.alarmContactGroupName}\n      publicUserDomainName: ${domainName}\n      alertConfigs:\n        - smsNotice: true\n          noticeType: ADDR_ALERT\n          emailNotice: true\n          dingtalkNotice: true\n  defaultAddressPool:\n    type: alicloud:dns:AddressPool\n    name: default\n    properties:\n      addressPoolName: ${name}\n      instanceId: ${defaultGtmInstance.id}\n      lbaStrategy: RATIO\n      type: IPV4\n      addresses:\n        - attributeInfo: |2\n                {\n                  \\\"lineCodeRectifyType\\\": \\\"RECTIFIED\\\",\n                  \\\"lineCodes\\\": [\\\"os_namerica_us\\\"]\n                }\n          remark: address_remark\n          address: 1.1.1.1\n          mode: SMART\n          lbaWeight: 1\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAlidns Address Pool can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dns/addressPool:AddressPool example \u003cid\u003e\n```\n\n","properties":{"addressPoolName":{"type":"string","description":"The name of the address pool.\n"},"addresses":{"type":"array","items":{"$ref":"#/types/alicloud:dns/AddressPoolAddress:AddressPoolAddress"},"description":"The address lists of the Address Pool. See \u003cspan pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\"\u003e`address`\u003c/span\u003e below for details.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"lbaStrategy":{"type":"string","description":"The load balancing policy of the address pool. Valid values:`ALL_RR` or `RATIO`. `ALL_RR`: returns all addresses. `RATIO`: returns addresses by weight.\n"},"type":{"type":"string","description":"The type of the address pool. Valid values: `IPV4`, `IPV6`, `DOMAIN`.\n"}},"required":["addresses","addressPoolName","instanceId","lbaStrategy","type"],"inputProperties":{"addressPoolName":{"type":"string","description":"The name of the address pool.\n"},"addresses":{"type":"array","items":{"$ref":"#/types/alicloud:dns/AddressPoolAddress:AddressPoolAddress"},"description":"The address lists of the Address Pool. See \u003cspan pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\"\u003e`address`\u003c/span\u003e below for details.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"lbaStrategy":{"type":"string","description":"The load balancing policy of the address pool. Valid values:`ALL_RR` or `RATIO`. `ALL_RR`: returns all addresses. `RATIO`: returns addresses by weight.\n"},"type":{"type":"string","description":"The type of the address pool. Valid values: `IPV4`, `IPV6`, `DOMAIN`.\n","willReplaceOnChanges":true}},"requiredInputs":["addresses","addressPoolName","instanceId","lbaStrategy","type"],"stateInputs":{"description":"Input properties used for looking up and filtering AddressPool resources.\n","properties":{"addressPoolName":{"type":"string","description":"The name of the address pool.\n"},"addresses":{"type":"array","items":{"$ref":"#/types/alicloud:dns/AddressPoolAddress:AddressPoolAddress"},"description":"The address lists of the Address Pool. See \u003cspan pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\"\u003e`address`\u003c/span\u003e below for details.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"lbaStrategy":{"type":"string","description":"The load balancing policy of the address pool. Valid values:`ALL_RR` or `RATIO`. `ALL_RR`: returns all addresses. `RATIO`: returns addresses by weight.\n"},"type":{"type":"string","description":"The type of the address pool. Valid values: `IPV4`, `IPV6`, `DOMAIN`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dns/alidnsDomain:AlidnsDomain":{"description":"Provides a Alidns domain resource.\n\n\u003e **NOTE:** The domain name which you want to add must be already registered and had not added by another account. Every domain name can only exist in a unique group.\n\n\u003e **NOTE:** Available since v1.95.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.dns.DomainGroup(\"default\", {domainGroupName: \"tf-example\"});\nconst defaultAlidnsDomain = new alicloud.dns.AlidnsDomain(\"default\", {\n    domainName: \"starmove.com\",\n    groupId: _default.id,\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.dns.DomainGroup(\"default\", domain_group_name=\"tf-example\")\ndefault_alidns_domain = alicloud.dns.AlidnsDomain(\"default\",\n    domain_name=\"starmove.com\",\n    group_id=default.id,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Dns.DomainGroup(\"default\", new()\n    {\n        DomainGroupName = \"tf-example\",\n    });\n\n    var defaultAlidnsDomain = new AliCloud.Dns.AlidnsDomain(\"default\", new()\n    {\n        DomainName = \"starmove.com\",\n        GroupId = @default.Id,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := dns.NewDomainGroup(ctx, \"default\", \u0026dns.DomainGroupArgs{\n\t\t\tDomainGroupName: pulumi.String(\"tf-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewAlidnsDomain(ctx, \"default\", \u0026dns.AlidnsDomainArgs{\n\t\t\tDomainName: pulumi.String(\"starmove.com\"),\n\t\t\tGroupId:    _default.ID(),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DomainGroup;\nimport com.pulumi.alicloud.dns.DomainGroupArgs;\nimport com.pulumi.alicloud.dns.AlidnsDomain;\nimport com.pulumi.alicloud.dns.AlidnsDomainArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new DomainGroup(\"default\", DomainGroupArgs.builder()\n            .domainGroupName(\"tf-example\")\n            .build());\n\n        var defaultAlidnsDomain = new AlidnsDomain(\"defaultAlidnsDomain\", AlidnsDomainArgs.builder()\n            .domainName(\"starmove.com\")\n            .groupId(default_.id())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:dns:DomainGroup\n    properties:\n      domainGroupName: tf-example\n  defaultAlidnsDomain:\n    type: alicloud:dns:AlidnsDomain\n    name: default\n    properties:\n      domainName: starmove.com\n      groupId: ${default.id}\n      tags:\n        Created: TF\n        For: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAlidns domain can be imported using the id or domain name, e.g.\n\n```sh\n$ pulumi import alicloud:dns/alidnsDomain:AlidnsDomain example aliyun.com\n```\n\n","properties":{"dnsServers":{"type":"array","items":{"type":"string"},"description":"A list of the dns server name.\n"},"domainId":{"type":"string","description":"The domain ID.\n"},"domainName":{"type":"string","description":"Name of the domain. This name without suffix can have a string of 1 to 63 characters(domain name subject, excluding suffix), must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n"},"groupId":{"type":"string","description":"Id of the group in which the domain will add. If not supplied, then use default group.\n"},"groupName":{"type":"string","description":"Domain name group name.\n"},"lang":{"type":"string","description":"User language.\n"},"punyCode":{"type":"string","description":"Only return punycode codes for Chinese domain names.\n"},"remark":{"type":"string","description":"Remarks information for your domain name.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the dns domain belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be [1, 20] characters in length. It can contain A-Z, a-z, numbers, underscores (_), and hyphens (-). It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be [1, 20] characters in length. It can contain A-Z, a-z, numbers, underscores (_), and hyphens (-). It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"}},"required":["dnsServers","domainId","domainName","groupName","punyCode","resourceGroupId"],"inputProperties":{"domainName":{"type":"string","description":"Name of the domain. This name without suffix can have a string of 1 to 63 characters(domain name subject, excluding suffix), must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"Id of the group in which the domain will add. If not supplied, then use default group.\n"},"lang":{"type":"string","description":"User language.\n"},"remark":{"type":"string","description":"Remarks information for your domain name.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the dns domain belongs.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be [1, 20] characters in length. It can contain A-Z, a-z, numbers, underscores (_), and hyphens (-). It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be [1, 20] characters in length. It can contain A-Z, a-z, numbers, underscores (_), and hyphens (-). It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"}},"requiredInputs":["domainName"],"stateInputs":{"description":"Input properties used for looking up and filtering AlidnsDomain resources.\n","properties":{"dnsServers":{"type":"array","items":{"type":"string"},"description":"A list of the dns server name.\n"},"domainId":{"type":"string","description":"The domain ID.\n"},"domainName":{"type":"string","description":"Name of the domain. This name without suffix can have a string of 1 to 63 characters(domain name subject, excluding suffix), must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"Id of the group in which the domain will add. If not supplied, then use default group.\n"},"groupName":{"type":"string","description":"Domain name group name.\n"},"lang":{"type":"string","description":"User language.\n"},"punyCode":{"type":"string","description":"Only return punycode codes for Chinese domain names.\n"},"remark":{"type":"string","description":"Remarks information for your domain name.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the dns domain belongs.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be [1, 20] characters in length. It can contain A-Z, a-z, numbers, underscores (_), and hyphens (-). It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be [1, 20] characters in length. It can contain A-Z, a-z, numbers, underscores (_), and hyphens (-). It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"}},"type":"object"}},"alicloud:dns/alidnsDomainAttachment:AlidnsDomainAttachment":{"description":"Provides bind the domain name to the Alidns instance resource.\n\n\u003e **NOTE:** Available since v1.99.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.dns.DomainGroup(\"default\", {domainGroupName: \"tf-example\"});\nconst defaultAlidnsDomain = new alicloud.dns.AlidnsDomain(\"default\", {\n    domainName: \"starmove.com\",\n    groupId: _default.id,\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst defaultAlidnsInstance = new alicloud.dns.AlidnsInstance(\"default\", {\n    dnsSecurity: \"basic\",\n    domainNumbers: \"3\",\n    versionCode: \"version_personal\",\n    period: 1,\n    renewalStatus: \"ManualRenewal\",\n});\nconst defaultAlidnsDomainAttachment = new alicloud.dns.AlidnsDomainAttachment(\"default\", {\n    instanceId: defaultAlidnsInstance.id,\n    domainNames: [defaultAlidnsDomain.domainName],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.dns.DomainGroup(\"default\", domain_group_name=\"tf-example\")\ndefault_alidns_domain = alicloud.dns.AlidnsDomain(\"default\",\n    domain_name=\"starmove.com\",\n    group_id=default.id,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\ndefault_alidns_instance = alicloud.dns.AlidnsInstance(\"default\",\n    dns_security=\"basic\",\n    domain_numbers=\"3\",\n    version_code=\"version_personal\",\n    period=1,\n    renewal_status=\"ManualRenewal\")\ndefault_alidns_domain_attachment = alicloud.dns.AlidnsDomainAttachment(\"default\",\n    instance_id=default_alidns_instance.id,\n    domain_names=[default_alidns_domain.domain_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Dns.DomainGroup(\"default\", new()\n    {\n        DomainGroupName = \"tf-example\",\n    });\n\n    var defaultAlidnsDomain = new AliCloud.Dns.AlidnsDomain(\"default\", new()\n    {\n        DomainName = \"starmove.com\",\n        GroupId = @default.Id,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var defaultAlidnsInstance = new AliCloud.Dns.AlidnsInstance(\"default\", new()\n    {\n        DnsSecurity = \"basic\",\n        DomainNumbers = \"3\",\n        VersionCode = \"version_personal\",\n        Period = 1,\n        RenewalStatus = \"ManualRenewal\",\n    });\n\n    var defaultAlidnsDomainAttachment = new AliCloud.Dns.AlidnsDomainAttachment(\"default\", new()\n    {\n        InstanceId = defaultAlidnsInstance.Id,\n        DomainNames = new[]\n        {\n            defaultAlidnsDomain.DomainName,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := dns.NewDomainGroup(ctx, \"default\", \u0026dns.DomainGroupArgs{\n\t\t\tDomainGroupName: pulumi.String(\"tf-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAlidnsDomain, err := dns.NewAlidnsDomain(ctx, \"default\", \u0026dns.AlidnsDomainArgs{\n\t\t\tDomainName: pulumi.String(\"starmove.com\"),\n\t\t\tGroupId:    _default.ID(),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAlidnsInstance, err := dns.NewAlidnsInstance(ctx, \"default\", \u0026dns.AlidnsInstanceArgs{\n\t\t\tDnsSecurity:   pulumi.String(\"basic\"),\n\t\t\tDomainNumbers: pulumi.String(\"3\"),\n\t\t\tVersionCode:   pulumi.String(\"version_personal\"),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t\tRenewalStatus: pulumi.String(\"ManualRenewal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewAlidnsDomainAttachment(ctx, \"default\", \u0026dns.AlidnsDomainAttachmentArgs{\n\t\t\tInstanceId: defaultAlidnsInstance.ID(),\n\t\t\tDomainNames: pulumi.StringArray{\n\t\t\t\tdefaultAlidnsDomain.DomainName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DomainGroup;\nimport com.pulumi.alicloud.dns.DomainGroupArgs;\nimport com.pulumi.alicloud.dns.AlidnsDomain;\nimport com.pulumi.alicloud.dns.AlidnsDomainArgs;\nimport com.pulumi.alicloud.dns.AlidnsInstance;\nimport com.pulumi.alicloud.dns.AlidnsInstanceArgs;\nimport com.pulumi.alicloud.dns.AlidnsDomainAttachment;\nimport com.pulumi.alicloud.dns.AlidnsDomainAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new DomainGroup(\"default\", DomainGroupArgs.builder()\n            .domainGroupName(\"tf-example\")\n            .build());\n\n        var defaultAlidnsDomain = new AlidnsDomain(\"defaultAlidnsDomain\", AlidnsDomainArgs.builder()\n            .domainName(\"starmove.com\")\n            .groupId(default_.id())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var defaultAlidnsInstance = new AlidnsInstance(\"defaultAlidnsInstance\", AlidnsInstanceArgs.builder()\n            .dnsSecurity(\"basic\")\n            .domainNumbers(\"3\")\n            .versionCode(\"version_personal\")\n            .period(1)\n            .renewalStatus(\"ManualRenewal\")\n            .build());\n\n        var defaultAlidnsDomainAttachment = new AlidnsDomainAttachment(\"defaultAlidnsDomainAttachment\", AlidnsDomainAttachmentArgs.builder()\n            .instanceId(defaultAlidnsInstance.id())\n            .domainNames(defaultAlidnsDomain.domainName())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:dns:DomainGroup\n    properties:\n      domainGroupName: tf-example\n  defaultAlidnsDomain:\n    type: alicloud:dns:AlidnsDomain\n    name: default\n    properties:\n      domainName: starmove.com\n      groupId: ${default.id}\n      tags:\n        Created: TF\n        For: example\n  defaultAlidnsInstance:\n    type: alicloud:dns:AlidnsInstance\n    name: default\n    properties:\n      dnsSecurity: basic\n      domainNumbers: 3\n      versionCode: version_personal\n      period: 1\n      renewalStatus: ManualRenewal\n  defaultAlidnsDomainAttachment:\n    type: alicloud:dns:AlidnsDomainAttachment\n    name: default\n    properties:\n      instanceId: ${defaultAlidnsInstance.id}\n      domainNames:\n        - ${defaultAlidnsDomain.domainName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDNS domain attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dns/alidnsDomainAttachment:AlidnsDomainAttachment example dns-cn-v0h1ldjhxxx\n```\n\n","properties":{"domainNames":{"type":"array","items":{"type":"string"},"description":"The domain names bound to the DNS instance.\n"},"instanceId":{"type":"string","description":"The id of the DNS instance.\n"}},"required":["domainNames","instanceId"],"inputProperties":{"domainNames":{"type":"array","items":{"type":"string"},"description":"The domain names bound to the DNS instance.\n"},"instanceId":{"type":"string","description":"The id of the DNS instance.\n","willReplaceOnChanges":true}},"requiredInputs":["domainNames","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering AlidnsDomainAttachment resources.\n","properties":{"domainNames":{"type":"array","items":{"type":"string"},"description":"The domain names bound to the DNS instance.\n"},"instanceId":{"type":"string","description":"The id of the DNS instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dns/alidnsInstance:AlidnsInstance":{"description":"Create an Alidns Instance resource.\n\n\u003e **NOTE:** Available since v1.95.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.dns.AlidnsInstance(\"example\", {\n    dnsSecurity: \"no\",\n    domainNumbers: \"2\",\n    period: 1,\n    renewPeriod: 1,\n    renewalStatus: \"ManualRenewal\",\n    versionCode: \"version_personal\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.dns.AlidnsInstance(\"example\",\n    dns_security=\"no\",\n    domain_numbers=\"2\",\n    period=1,\n    renew_period=1,\n    renewal_status=\"ManualRenewal\",\n    version_code=\"version_personal\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Dns.AlidnsInstance(\"example\", new()\n    {\n        DnsSecurity = \"no\",\n        DomainNumbers = \"2\",\n        Period = 1,\n        RenewPeriod = 1,\n        RenewalStatus = \"ManualRenewal\",\n        VersionCode = \"version_personal\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dns.NewAlidnsInstance(ctx, \"example\", \u0026dns.AlidnsInstanceArgs{\n\t\t\tDnsSecurity:   pulumi.String(\"no\"),\n\t\t\tDomainNumbers: pulumi.String(\"2\"),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t\tRenewPeriod:   pulumi.Int(1),\n\t\t\tRenewalStatus: pulumi.String(\"ManualRenewal\"),\n\t\t\tVersionCode:   pulumi.String(\"version_personal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.AlidnsInstance;\nimport com.pulumi.alicloud.dns.AlidnsInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new AlidnsInstance(\"example\", AlidnsInstanceArgs.builder()\n            .dnsSecurity(\"no\")\n            .domainNumbers(\"2\")\n            .period(1)\n            .renewPeriod(1)\n            .renewalStatus(\"ManualRenewal\")\n            .versionCode(\"version_personal\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:dns:AlidnsInstance\n    properties:\n      dnsSecurity: no\n      domainNumbers: '2'\n      period: 1\n      renewPeriod: 1\n      renewalStatus: ManualRenewal\n      versionCode: version_personal\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDNS instance be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dns/alidnsInstance:AlidnsInstance example dns-cn-v0h1ldjhfff\n```\n\n","properties":{"dnsSecurity":{"type":"string","description":"Alidns security level. Valid values: \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\"\u003e`basic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`advanced`\" pulumi-lang-dotnet=\"`Advanced`\" pulumi-lang-go=\"`advanced`\" pulumi-lang-python=\"`advanced`\" pulumi-lang-yaml=\"`advanced`\" pulumi-lang-java=\"`advanced`\"\u003e`advanced`\u003c/span\u003e.\n"},"domainNumbers":{"type":"string","description":"Number of domain names bound.\n"},"paymentType":{"type":"string","description":"The billing method of the Alidns instance. Valid values: `Subscription`. Default to `Subscription`.\n"},"period":{"type":"integer","description":"Creating a pre-paid instance, it must be set, the unit is month, please enter an integer multiple of 12 for annually paid products.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period, the unit is month. When setting RenewalStatus to AutoRenewal, it must be set.\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`, `ManualRenewal`, default to `ManualRenewal`.\n"},"versionCode":{"type":"string","description":"Paid package version. Valid values: \u003cspan pulumi-lang-nodejs=\"`versionPersonal`\" pulumi-lang-dotnet=\"`VersionPersonal`\" pulumi-lang-go=\"`versionPersonal`\" pulumi-lang-python=\"`version_personal`\" pulumi-lang-yaml=\"`versionPersonal`\" pulumi-lang-java=\"`versionPersonal`\"\u003e`version_personal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionEnterpriseBasic`\" pulumi-lang-dotnet=\"`VersionEnterpriseBasic`\" pulumi-lang-go=\"`versionEnterpriseBasic`\" pulumi-lang-python=\"`version_enterprise_basic`\" pulumi-lang-yaml=\"`versionEnterpriseBasic`\" pulumi-lang-java=\"`versionEnterpriseBasic`\"\u003e`version_enterprise_basic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionEnterpriseAdvanced`\" pulumi-lang-dotnet=\"`VersionEnterpriseAdvanced`\" pulumi-lang-go=\"`versionEnterpriseAdvanced`\" pulumi-lang-python=\"`version_enterprise_advanced`\" pulumi-lang-yaml=\"`versionEnterpriseAdvanced`\" pulumi-lang-java=\"`versionEnterpriseAdvanced`\"\u003e`version_enterprise_advanced`\u003c/span\u003e.\n"},"versionName":{"type":"string","description":"Paid package version name.\n"}},"required":["dnsSecurity","domainNumbers","renewalStatus","versionCode","versionName"],"inputProperties":{"dnsSecurity":{"type":"string","description":"Alidns security level. Valid values: \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\"\u003e`basic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`advanced`\" pulumi-lang-dotnet=\"`Advanced`\" pulumi-lang-go=\"`advanced`\" pulumi-lang-python=\"`advanced`\" pulumi-lang-yaml=\"`advanced`\" pulumi-lang-java=\"`advanced`\"\u003e`advanced`\u003c/span\u003e.\n","willReplaceOnChanges":true},"domainNumbers":{"type":"string","description":"Number of domain names bound.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The billing method of the Alidns instance. Valid values: `Subscription`. Default to `Subscription`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Creating a pre-paid instance, it must be set, the unit is month, please enter an integer multiple of 12 for annually paid products.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period, the unit is month. When setting RenewalStatus to AutoRenewal, it must be set.\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`, `ManualRenewal`, default to `ManualRenewal`.\n","willReplaceOnChanges":true},"versionCode":{"type":"string","description":"Paid package version. Valid values: \u003cspan pulumi-lang-nodejs=\"`versionPersonal`\" pulumi-lang-dotnet=\"`VersionPersonal`\" pulumi-lang-go=\"`versionPersonal`\" pulumi-lang-python=\"`version_personal`\" pulumi-lang-yaml=\"`versionPersonal`\" pulumi-lang-java=\"`versionPersonal`\"\u003e`version_personal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionEnterpriseBasic`\" pulumi-lang-dotnet=\"`VersionEnterpriseBasic`\" pulumi-lang-go=\"`versionEnterpriseBasic`\" pulumi-lang-python=\"`version_enterprise_basic`\" pulumi-lang-yaml=\"`versionEnterpriseBasic`\" pulumi-lang-java=\"`versionEnterpriseBasic`\"\u003e`version_enterprise_basic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionEnterpriseAdvanced`\" pulumi-lang-dotnet=\"`VersionEnterpriseAdvanced`\" pulumi-lang-go=\"`versionEnterpriseAdvanced`\" pulumi-lang-python=\"`version_enterprise_advanced`\" pulumi-lang-yaml=\"`versionEnterpriseAdvanced`\" pulumi-lang-java=\"`versionEnterpriseAdvanced`\"\u003e`version_enterprise_advanced`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["dnsSecurity","domainNumbers","versionCode"],"stateInputs":{"description":"Input properties used for looking up and filtering AlidnsInstance resources.\n","properties":{"dnsSecurity":{"type":"string","description":"Alidns security level. Valid values: \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\"\u003e`basic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`advanced`\" pulumi-lang-dotnet=\"`Advanced`\" pulumi-lang-go=\"`advanced`\" pulumi-lang-python=\"`advanced`\" pulumi-lang-yaml=\"`advanced`\" pulumi-lang-java=\"`advanced`\"\u003e`advanced`\u003c/span\u003e.\n","willReplaceOnChanges":true},"domainNumbers":{"type":"string","description":"Number of domain names bound.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The billing method of the Alidns instance. Valid values: `Subscription`. Default to `Subscription`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Creating a pre-paid instance, it must be set, the unit is month, please enter an integer multiple of 12 for annually paid products.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period, the unit is month. When setting RenewalStatus to AutoRenewal, it must be set.\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`, `ManualRenewal`, default to `ManualRenewal`.\n","willReplaceOnChanges":true},"versionCode":{"type":"string","description":"Paid package version. Valid values: \u003cspan pulumi-lang-nodejs=\"`versionPersonal`\" pulumi-lang-dotnet=\"`VersionPersonal`\" pulumi-lang-go=\"`versionPersonal`\" pulumi-lang-python=\"`version_personal`\" pulumi-lang-yaml=\"`versionPersonal`\" pulumi-lang-java=\"`versionPersonal`\"\u003e`version_personal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionEnterpriseBasic`\" pulumi-lang-dotnet=\"`VersionEnterpriseBasic`\" pulumi-lang-go=\"`versionEnterpriseBasic`\" pulumi-lang-python=\"`version_enterprise_basic`\" pulumi-lang-yaml=\"`versionEnterpriseBasic`\" pulumi-lang-java=\"`versionEnterpriseBasic`\"\u003e`version_enterprise_basic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionEnterpriseAdvanced`\" pulumi-lang-dotnet=\"`VersionEnterpriseAdvanced`\" pulumi-lang-go=\"`versionEnterpriseAdvanced`\" pulumi-lang-python=\"`version_enterprise_advanced`\" pulumi-lang-yaml=\"`versionEnterpriseAdvanced`\" pulumi-lang-java=\"`versionEnterpriseAdvanced`\"\u003e`version_enterprise_advanced`\u003c/span\u003e.\n","willReplaceOnChanges":true},"versionName":{"type":"string","description":"Paid package version name.\n"}},"type":"object"}},"alicloud:dns/alidnsRecord:AlidnsRecord":{"description":"Provides a Alidns Record resource. For information about Alidns Domain Record and how to use it, see [What is Resource Alidns Record](https://www.alibabacloud.com/help/en/alibaba-cloud-dns/latest/adding-a-dns-record).\n\n\u003e **NOTE:** Available since v1.85.0.\n\n\u003e **NOTE:** When the site is an international site, the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e neither supports `REDIRECT_URL` nor `REDIRECT_URL`\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.dns.DomainGroup(\"default\", {domainGroupName: \"tf-example\"});\nconst defaultAlidnsDomain = new alicloud.dns.AlidnsDomain(\"default\", {\n    domainName: \"starmove.com\",\n    groupId: _default.id,\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst record = new alicloud.dns.AlidnsRecord(\"record\", {\n    domainName: defaultAlidnsDomain.domainName,\n    rr: \"alimail\",\n    type: \"CNAME\",\n    value: \"mail.mxhichin.com\",\n    remark: \"tf-example\",\n    status: \"ENABLE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.dns.DomainGroup(\"default\", domain_group_name=\"tf-example\")\ndefault_alidns_domain = alicloud.dns.AlidnsDomain(\"default\",\n    domain_name=\"starmove.com\",\n    group_id=default.id,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\nrecord = alicloud.dns.AlidnsRecord(\"record\",\n    domain_name=default_alidns_domain.domain_name,\n    rr=\"alimail\",\n    type=\"CNAME\",\n    value=\"mail.mxhichin.com\",\n    remark=\"tf-example\",\n    status=\"ENABLE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Dns.DomainGroup(\"default\", new()\n    {\n        DomainGroupName = \"tf-example\",\n    });\n\n    var defaultAlidnsDomain = new AliCloud.Dns.AlidnsDomain(\"default\", new()\n    {\n        DomainName = \"starmove.com\",\n        GroupId = @default.Id,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var record = new AliCloud.Dns.AlidnsRecord(\"record\", new()\n    {\n        DomainName = defaultAlidnsDomain.DomainName,\n        Rr = \"alimail\",\n        Type = \"CNAME\",\n        Value = \"mail.mxhichin.com\",\n        Remark = \"tf-example\",\n        Status = \"ENABLE\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := dns.NewDomainGroup(ctx, \"default\", \u0026dns.DomainGroupArgs{\n\t\t\tDomainGroupName: pulumi.String(\"tf-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAlidnsDomain, err := dns.NewAlidnsDomain(ctx, \"default\", \u0026dns.AlidnsDomainArgs{\n\t\t\tDomainName: pulumi.String(\"starmove.com\"),\n\t\t\tGroupId:    _default.ID(),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewAlidnsRecord(ctx, \"record\", \u0026dns.AlidnsRecordArgs{\n\t\t\tDomainName: defaultAlidnsDomain.DomainName,\n\t\t\tRr:         pulumi.String(\"alimail\"),\n\t\t\tType:       pulumi.String(\"CNAME\"),\n\t\t\tValue:      pulumi.String(\"mail.mxhichin.com\"),\n\t\t\tRemark:     pulumi.String(\"tf-example\"),\n\t\t\tStatus:     pulumi.String(\"ENABLE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DomainGroup;\nimport com.pulumi.alicloud.dns.DomainGroupArgs;\nimport com.pulumi.alicloud.dns.AlidnsDomain;\nimport com.pulumi.alicloud.dns.AlidnsDomainArgs;\nimport com.pulumi.alicloud.dns.AlidnsRecord;\nimport com.pulumi.alicloud.dns.AlidnsRecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new DomainGroup(\"default\", DomainGroupArgs.builder()\n            .domainGroupName(\"tf-example\")\n            .build());\n\n        var defaultAlidnsDomain = new AlidnsDomain(\"defaultAlidnsDomain\", AlidnsDomainArgs.builder()\n            .domainName(\"starmove.com\")\n            .groupId(default_.id())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var record = new AlidnsRecord(\"record\", AlidnsRecordArgs.builder()\n            .domainName(defaultAlidnsDomain.domainName())\n            .rr(\"alimail\")\n            .type(\"CNAME\")\n            .value(\"mail.mxhichin.com\")\n            .remark(\"tf-example\")\n            .status(\"ENABLE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:dns:DomainGroup\n    properties:\n      domainGroupName: tf-example\n  defaultAlidnsDomain:\n    type: alicloud:dns:AlidnsDomain\n    name: default\n    properties:\n      domainName: starmove.com\n      groupId: ${default.id}\n      tags:\n        Created: TF\n        For: example\n  record:\n    type: alicloud:dns:AlidnsRecord\n    properties:\n      domainName: ${defaultAlidnsDomain.domainName}\n      rr: alimail\n      type: CNAME\n      value: mail.mxhichin.com\n      remark: tf-example\n      status: ENABLE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAlidns Domain Record can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dns/alidnsRecord:AlidnsRecord example abc123456\n```\n\n","properties":{"domainName":{"type":"string","description":"Name of the domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n"},"lang":{"type":"string","description":"User language.\n"},"line":{"type":"string","description":"The resolution line of domain record. When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `FORWORD_URL`, this parameter must be \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. For checking all resolution lines enumeration please visit [Alibaba Cloud DNS doc](https://www.alibabacloud.com/help/en/alibaba-cloud-dns/latest/adding-a-dns-record) or using\u003cspan pulumi-lang-nodejs=\" alicloud.dns.getResolutionLines \" pulumi-lang-dotnet=\" alicloud.dns.getResolutionLines \" pulumi-lang-go=\" dns.getResolutionLines \" pulumi-lang-python=\" dns_get_resolution_lines \" pulumi-lang-yaml=\" alicloud.dns.getResolutionLines \" pulumi-lang-java=\" alicloud.dns.getResolutionLines \"\u003e alicloud.dns.getResolutionLines \u003c/span\u003ein data source to get the value.\n"},"priority":{"type":"integer","description":"The priority of domain record. Valid values: `[1-10]`. When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `MX`, this parameter is required.\n"},"remark":{"type":"string","description":"The remark of the domain record.\n"},"rr":{"type":"string","description":"Host record for the domain record. This\u003cspan pulumi-lang-nodejs=\" hostRecord \" pulumi-lang-dotnet=\" HostRecord \" pulumi-lang-go=\" hostRecord \" pulumi-lang-python=\" host_record \" pulumi-lang-yaml=\" hostRecord \" pulumi-lang-java=\" hostRecord \"\u003e host_record \u003c/span\u003ecan have at most 253 characters, and each part split with `.` can have at most 63 characters, and must contain only alphanumeric characters or hyphens, such as `-`, `.`, `*`, `@`, and must not begin or end with `-`.\n"},"status":{"type":"string","description":"The status of the domain record. Valid values: `ENABLE`,`DISABLE`.\n"},"ttl":{"type":"integer","description":"The effective time of domain record. Its scope depends on the edition of the cloud resolution. Free is `[600, 86400]`, Basic is `[120, 86400]`, Standard is `[60, 86400]`, Ultimate is `[10, 86400]`, Exclusive is `[1, 86400]`. Default value is \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of domain record. For more information, see [How to use it](https://www.alibabacloud.com/help/en/dns/dns-record-types).\n"},"userClientIp":{"type":"string","description":"The IP address of the client.\n"},"value":{"type":"string","description":"The value of domain record, When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `MX`,`NS`,`CNAME`,`SRV`, the server will treat the \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e as a fully qualified domain name, so it's no need to add a `.` at the end.\n"}},"required":["domainName","rr","type","value"],"inputProperties":{"domainName":{"type":"string","description":"Name of the domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","willReplaceOnChanges":true},"lang":{"type":"string","description":"User language.\n"},"line":{"type":"string","description":"The resolution line of domain record. When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `FORWORD_URL`, this parameter must be \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. For checking all resolution lines enumeration please visit [Alibaba Cloud DNS doc](https://www.alibabacloud.com/help/en/alibaba-cloud-dns/latest/adding-a-dns-record) or using\u003cspan pulumi-lang-nodejs=\" alicloud.dns.getResolutionLines \" pulumi-lang-dotnet=\" alicloud.dns.getResolutionLines \" pulumi-lang-go=\" dns.getResolutionLines \" pulumi-lang-python=\" dns_get_resolution_lines \" pulumi-lang-yaml=\" alicloud.dns.getResolutionLines \" pulumi-lang-java=\" alicloud.dns.getResolutionLines \"\u003e alicloud.dns.getResolutionLines \u003c/span\u003ein data source to get the value.\n"},"priority":{"type":"integer","description":"The priority of domain record. Valid values: `[1-10]`. When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `MX`, this parameter is required.\n"},"remark":{"type":"string","description":"The remark of the domain record.\n"},"rr":{"type":"string","description":"Host record for the domain record. This\u003cspan pulumi-lang-nodejs=\" hostRecord \" pulumi-lang-dotnet=\" HostRecord \" pulumi-lang-go=\" hostRecord \" pulumi-lang-python=\" host_record \" pulumi-lang-yaml=\" hostRecord \" pulumi-lang-java=\" hostRecord \"\u003e host_record \u003c/span\u003ecan have at most 253 characters, and each part split with `.` can have at most 63 characters, and must contain only alphanumeric characters or hyphens, such as `-`, `.`, `*`, `@`, and must not begin or end with `-`.\n"},"status":{"type":"string","description":"The status of the domain record. Valid values: `ENABLE`,`DISABLE`.\n"},"ttl":{"type":"integer","description":"The effective time of domain record. Its scope depends on the edition of the cloud resolution. Free is `[600, 86400]`, Basic is `[120, 86400]`, Standard is `[60, 86400]`, Ultimate is `[10, 86400]`, Exclusive is `[1, 86400]`. Default value is \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of domain record. For more information, see [How to use it](https://www.alibabacloud.com/help/en/dns/dns-record-types).\n"},"userClientIp":{"type":"string","description":"The IP address of the client.\n"},"value":{"type":"string","description":"The value of domain record, When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `MX`,`NS`,`CNAME`,`SRV`, the server will treat the \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e as a fully qualified domain name, so it's no need to add a `.` at the end.\n"}},"requiredInputs":["domainName","rr","type","value"],"stateInputs":{"description":"Input properties used for looking up and filtering AlidnsRecord resources.\n","properties":{"domainName":{"type":"string","description":"Name of the domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","willReplaceOnChanges":true},"lang":{"type":"string","description":"User language.\n"},"line":{"type":"string","description":"The resolution line of domain record. When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `FORWORD_URL`, this parameter must be \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. For checking all resolution lines enumeration please visit [Alibaba Cloud DNS doc](https://www.alibabacloud.com/help/en/alibaba-cloud-dns/latest/adding-a-dns-record) or using\u003cspan pulumi-lang-nodejs=\" alicloud.dns.getResolutionLines \" pulumi-lang-dotnet=\" alicloud.dns.getResolutionLines \" pulumi-lang-go=\" dns.getResolutionLines \" pulumi-lang-python=\" dns_get_resolution_lines \" pulumi-lang-yaml=\" alicloud.dns.getResolutionLines \" pulumi-lang-java=\" alicloud.dns.getResolutionLines \"\u003e alicloud.dns.getResolutionLines \u003c/span\u003ein data source to get the value.\n"},"priority":{"type":"integer","description":"The priority of domain record. Valid values: `[1-10]`. When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `MX`, this parameter is required.\n"},"remark":{"type":"string","description":"The remark of the domain record.\n"},"rr":{"type":"string","description":"Host record for the domain record. This\u003cspan pulumi-lang-nodejs=\" hostRecord \" pulumi-lang-dotnet=\" HostRecord \" pulumi-lang-go=\" hostRecord \" pulumi-lang-python=\" host_record \" pulumi-lang-yaml=\" hostRecord \" pulumi-lang-java=\" hostRecord \"\u003e host_record \u003c/span\u003ecan have at most 253 characters, and each part split with `.` can have at most 63 characters, and must contain only alphanumeric characters or hyphens, such as `-`, `.`, `*`, `@`, and must not begin or end with `-`.\n"},"status":{"type":"string","description":"The status of the domain record. Valid values: `ENABLE`,`DISABLE`.\n"},"ttl":{"type":"integer","description":"The effective time of domain record. Its scope depends on the edition of the cloud resolution. Free is `[600, 86400]`, Basic is `[120, 86400]`, Standard is `[60, 86400]`, Ultimate is `[10, 86400]`, Exclusive is `[1, 86400]`. Default value is \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of domain record. For more information, see [How to use it](https://www.alibabacloud.com/help/en/dns/dns-record-types).\n"},"userClientIp":{"type":"string","description":"The IP address of the client.\n"},"value":{"type":"string","description":"The value of domain record, When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `MX`,`NS`,`CNAME`,`SRV`, the server will treat the \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e as a fully qualified domain name, so it's no need to add a `.` at the end.\n"}},"type":"object"}},"alicloud:dns/customLine:CustomLine":{"description":"Provides a Alidns Custom Line resource.\n\nFor information about Alidns Custom Line and how to use it, see [What is Custom Line](https://www.alibabacloud.com/help/en/doc-detail/145059.html).\n\n\u003e **NOTE:** Available since v1.151.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.dns.CustomLine(\"default\", {\n    customLineName: \"tf-example\",\n    domainName: \"alicloud-provider.com\",\n    ipSegmentLists: [{\n        startIp: \"192.0.2.123\",\n        endIp: \"192.0.2.125\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.dns.CustomLine(\"default\",\n    custom_line_name=\"tf-example\",\n    domain_name=\"alicloud-provider.com\",\n    ip_segment_lists=[{\n        \"start_ip\": \"192.0.2.123\",\n        \"end_ip\": \"192.0.2.125\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Dns.CustomLine(\"default\", new()\n    {\n        CustomLineName = \"tf-example\",\n        DomainName = \"alicloud-provider.com\",\n        IpSegmentLists = new[]\n        {\n            new AliCloud.Dns.Inputs.CustomLineIpSegmentListArgs\n            {\n                StartIp = \"192.0.2.123\",\n                EndIp = \"192.0.2.125\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dns.NewCustomLine(ctx, \"default\", \u0026dns.CustomLineArgs{\n\t\t\tCustomLineName: pulumi.String(\"tf-example\"),\n\t\t\tDomainName:     pulumi.String(\"alicloud-provider.com\"),\n\t\t\tIpSegmentLists: dns.CustomLineIpSegmentListArray{\n\t\t\t\t\u0026dns.CustomLineIpSegmentListArgs{\n\t\t\t\t\tStartIp: pulumi.String(\"192.0.2.123\"),\n\t\t\t\t\tEndIp:   pulumi.String(\"192.0.2.125\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.CustomLine;\nimport com.pulumi.alicloud.dns.CustomLineArgs;\nimport com.pulumi.alicloud.dns.inputs.CustomLineIpSegmentListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new CustomLine(\"default\", CustomLineArgs.builder()\n            .customLineName(\"tf-example\")\n            .domainName(\"alicloud-provider.com\")\n            .ipSegmentLists(CustomLineIpSegmentListArgs.builder()\n                .startIp(\"192.0.2.123\")\n                .endIp(\"192.0.2.125\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:dns:CustomLine\n    properties:\n      customLineName: tf-example\n      domainName: alicloud-provider.com\n      ipSegmentLists:\n        - startIp: 192.0.2.123\n          endIp: 192.0.2.125\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAlidns Custom Line can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dns/customLine:CustomLine example \u003cid\u003e\n```\n\n","properties":{"customLineName":{"type":"string","description":"The name of the Custom Line.\n"},"domainName":{"type":"string","description":"The Domain name.\n"},"ipSegmentLists":{"type":"array","items":{"$ref":"#/types/alicloud:dns/CustomLineIpSegmentList:CustomLineIpSegmentList"},"description":"The IP segment list. See \u003cspan pulumi-lang-nodejs=\"`ipSegmentList`\" pulumi-lang-dotnet=\"`IpSegmentList`\" pulumi-lang-go=\"`ipSegmentList`\" pulumi-lang-python=\"`ip_segment_list`\" pulumi-lang-yaml=\"`ipSegmentList`\" pulumi-lang-java=\"`ipSegmentList`\"\u003e`ip_segment_list`\u003c/span\u003e below for details.\n"},"lang":{"type":"string","description":"The lang.\n"}},"required":["customLineName","domainName","ipSegmentLists"],"inputProperties":{"customLineName":{"type":"string","description":"The name of the Custom Line.\n"},"domainName":{"type":"string","description":"The Domain name.\n","willReplaceOnChanges":true},"ipSegmentLists":{"type":"array","items":{"$ref":"#/types/alicloud:dns/CustomLineIpSegmentList:CustomLineIpSegmentList"},"description":"The IP segment list. See \u003cspan pulumi-lang-nodejs=\"`ipSegmentList`\" pulumi-lang-dotnet=\"`IpSegmentList`\" pulumi-lang-go=\"`ipSegmentList`\" pulumi-lang-python=\"`ip_segment_list`\" pulumi-lang-yaml=\"`ipSegmentList`\" pulumi-lang-java=\"`ipSegmentList`\"\u003e`ip_segment_list`\u003c/span\u003e below for details.\n"},"lang":{"type":"string","description":"The lang.\n"}},"requiredInputs":["customLineName","domainName","ipSegmentLists"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomLine resources.\n","properties":{"customLineName":{"type":"string","description":"The name of the Custom Line.\n"},"domainName":{"type":"string","description":"The Domain name.\n","willReplaceOnChanges":true},"ipSegmentLists":{"type":"array","items":{"$ref":"#/types/alicloud:dns/CustomLineIpSegmentList:CustomLineIpSegmentList"},"description":"The IP segment list. See \u003cspan pulumi-lang-nodejs=\"`ipSegmentList`\" pulumi-lang-dotnet=\"`IpSegmentList`\" pulumi-lang-go=\"`ipSegmentList`\" pulumi-lang-python=\"`ip_segment_list`\" pulumi-lang-yaml=\"`ipSegmentList`\" pulumi-lang-java=\"`ipSegmentList`\"\u003e`ip_segment_list`\u003c/span\u003e below for details.\n"},"lang":{"type":"string","description":"The lang.\n"}},"type":"object"}},"alicloud:dns/ddosBgpInstance:DdosBgpInstance":{"description":"Provides a Anti-DDoS Pro (DdosBgp) Instance resource.\n\n\n\nFor information about Anti-DDoS Pro (DdosBgp) Instance and how to use it, see [What is Instance](https://next.api.alibabacloud.com/document/BssOpenApi/2017-12-14/CreateInstance).\n\n\u003e **NOTE:** Available since v1.183.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst instance = new alicloud.ddos.DdosBgpInstance(\"instance\", {\n    name: name,\n    baseBandwidth: 20,\n    bandwidth: -1,\n    ipCount: 100,\n    ipType: \"IPv4\",\n    normalBandwidth: 100,\n    type: \"Enterprise\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ninstance = alicloud.ddos.DdosBgpInstance(\"instance\",\n    name=name,\n    base_bandwidth=20,\n    bandwidth=-1,\n    ip_count=100,\n    ip_type=\"IPv4\",\n    normal_bandwidth=100,\n    type=\"Enterprise\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var instance = new AliCloud.Ddos.DdosBgpInstance(\"instance\", new()\n    {\n        Name = name,\n        BaseBandwidth = 20,\n        Bandwidth = -1,\n        IpCount = 100,\n        IpType = \"IPv4\",\n        NormalBandwidth = 100,\n        Type = \"Enterprise\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ddos.NewDdosBgpInstance(ctx, \"instance\", \u0026ddos.DdosBgpInstanceArgs{\n\t\t\tName:            pulumi.String(name),\n\t\t\tBaseBandwidth:   pulumi.Int(20),\n\t\t\tBandwidth:       pulumi.Int(-1),\n\t\t\tIpCount:         pulumi.Int(100),\n\t\t\tIpType:          pulumi.String(\"IPv4\"),\n\t\t\tNormalBandwidth: pulumi.Int(100),\n\t\t\tType:            pulumi.String(\"Enterprise\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ddos.DdosBgpInstance;\nimport com.pulumi.alicloud.ddos.DdosBgpInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var instance = new DdosBgpInstance(\"instance\", DdosBgpInstanceArgs.builder()\n            .name(name)\n            .baseBandwidth(20)\n            .bandwidth(-1)\n            .ipCount(100)\n            .ipType(\"IPv4\")\n            .normalBandwidth(100)\n            .type(\"Enterprise\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  instance:\n    type: alicloud:ddos:DdosBgpInstance\n    properties:\n      name: ${name}\n      baseBandwidth: 20\n      bandwidth: -1\n      ipCount: 100\n      ipType: IPv4\n      normalBandwidth: 100\n      type: Enterprise\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.ddos.DdosBgpInstance`\" pulumi-lang-dotnet=\"`alicloud.ddos.DdosBgpInstance`\" pulumi-lang-go=\"`ddos.DdosBgpInstance`\" pulumi-lang-python=\"`ddos.DdosBgpInstance`\" pulumi-lang-yaml=\"`alicloud.ddos.DdosBgpInstance`\" pulumi-lang-java=\"`alicloud.ddos.DdosBgpInstance`\"\u003e`alicloud.ddos.DdosBgpInstance`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ddos.DdosBgpInstance`\" pulumi-lang-dotnet=\"`alicloud.ddos.DdosBgpInstance`\" pulumi-lang-go=\"`ddos.DdosBgpInstance`\" pulumi-lang-python=\"`ddos.DdosBgpInstance`\" pulumi-lang-yaml=\"`alicloud.ddos.DdosBgpInstance`\" pulumi-lang-java=\"`alicloud.ddos.DdosBgpInstance`\"\u003e`alicloud.ddos.DdosBgpInstance`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAnti-DDoS Pro (DdosBgp) Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dns/ddosBgpInstance:DdosBgpInstance example \u003cid\u003e\n```\n\n","properties":{"bandwidth":{"type":"integer","description":"The bandwidth of the package configuration.\n"},"baseBandwidth":{"type":"integer","description":"The basic protection bandwidth of the Anti-DDoS Origin Enterprise instance. Default value: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n"},"instanceName":{"type":"string","description":"The name of the instance.\n"},"ipCount":{"type":"integer","description":"The number of IP addresses that can be protected by the Anti-DDoS Origin Enterprise instance.\n"},"ipType":{"type":"string","description":"The protection IP address type of the protection package. Valid values:\n- `IPv4`\n- `IPv6`\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.259.0. New field \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.259.0. New field \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e instead."},"normalBandwidth":{"type":"integer","description":"The normal clean bandwidth. Unit: Mbit/s.\n"},"period":{"type":"integer","description":"The duration that you will buy Ddosbgp instance (in month). Valid values: [1~9], 12, 24, 36. Default to 12. At present, the provider does not support modify \"period\".\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID\n"},"status":{"type":"string","description":"(Available since v1.259.0) The status of the Instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The key of the tag that is added to the Anti-DDoS Origin instance.\n"},"type":{"type":"string","description":"The protection package type of the DDoS native protection instance. Default value: `Enterprise`. Valid values: `Enterprise`, `Professional`.\n"}},"required":["bandwidth","instanceName","ipCount","ipType","name","normalBandwidth","resourceGroupId","status","type"],"inputProperties":{"bandwidth":{"type":"integer","description":"The bandwidth of the package configuration.\n","willReplaceOnChanges":true},"baseBandwidth":{"type":"integer","description":"The basic protection bandwidth of the Anti-DDoS Origin Enterprise instance. Default value: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the instance.\n"},"ipCount":{"type":"integer","description":"The number of IP addresses that can be protected by the Anti-DDoS Origin Enterprise instance.\n","willReplaceOnChanges":true},"ipType":{"type":"string","description":"The protection IP address type of the protection package. Valid values:\n- `IPv4`\n- `IPv6`\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.259.0. New field \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.259.0. New field \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e instead."},"normalBandwidth":{"type":"integer","description":"The normal clean bandwidth. Unit: Mbit/s.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The duration that you will buy Ddosbgp instance (in month). Valid values: [1~9], 12, 24, 36. Default to 12. At present, the provider does not support modify \"period\".\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The key of the tag that is added to the Anti-DDoS Origin instance.\n"},"type":{"type":"string","description":"The protection package type of the DDoS native protection instance. Default value: `Enterprise`. Valid values: `Enterprise`, `Professional`.\n","willReplaceOnChanges":true}},"requiredInputs":["bandwidth","ipCount","ipType","normalBandwidth"],"stateInputs":{"description":"Input properties used for looking up and filtering DdosBgpInstance resources.\n","properties":{"bandwidth":{"type":"integer","description":"The bandwidth of the package configuration.\n","willReplaceOnChanges":true},"baseBandwidth":{"type":"integer","description":"The basic protection bandwidth of the Anti-DDoS Origin Enterprise instance. Default value: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the instance.\n"},"ipCount":{"type":"integer","description":"The number of IP addresses that can be protected by the Anti-DDoS Origin Enterprise instance.\n","willReplaceOnChanges":true},"ipType":{"type":"string","description":"The protection IP address type of the protection package. Valid values:\n- `IPv4`\n- `IPv6`\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.259.0. New field \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.259.0. New field \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e instead."},"normalBandwidth":{"type":"integer","description":"The normal clean bandwidth. Unit: Mbit/s.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The duration that you will buy Ddosbgp instance (in month). Valid values: [1~9], 12, 24, 36. Default to 12. At present, the provider does not support modify \"period\".\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID\n"},"status":{"type":"string","description":"(Available since v1.259.0) The status of the Instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The key of the tag that is added to the Anti-DDoS Origin instance.\n"},"type":{"type":"string","description":"The protection package type of the DDoS native protection instance. Default value: `Enterprise`. Valid values: `Enterprise`, `Professional`.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"alicloud.dns.DdosBgpInstance has been deprecated in favor of alicloud.ddos.DdosBgpInstance"},"alicloud:dns/ddosCooInstance:DdosCooInstance":{"description":"Provides a BGP-line Anti-DDoS Pro(DdosCoo) Instance resource.\n\nFor information about BGP-line Anti-DDoS Pro(DdosCoo) Instance and how to use it, see [What is Anti-DDoS Pro Instance](https://www.alibabacloud.com/help/en/ddos-protection/latest/create-an-anti-ddos-pro-or-anti-ddos-premium-instance-by-calling-an-api-operation).\n\n\u003e **NOTE:** Available since v1.37.0.\n\n\u003e **NOTE:** The endpoint of bssopenapi used only support \"business.aliyuncs.com\" at present.\n\n\u003e **NOTE:** From version 1.214.0, if \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e, the provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e should be set to `cn-hangzhou`, and if \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to `ddosDip`, the provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e should be set to `ap-southeast-1`.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new alicloud.ddos.DdosCooInstance(\"default\", {\n    name: name,\n    baseBandwidth: \"30\",\n    bandwidth: \"30\",\n    serviceBandwidth: \"100\",\n    portCount: \"50\",\n    domainCount: \"50\",\n    productType: \"ddoscoo\",\n    period: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.ddos.DdosCooInstance(\"default\",\n    name=name,\n    base_bandwidth=\"30\",\n    bandwidth=\"30\",\n    service_bandwidth=\"100\",\n    port_count=\"50\",\n    domain_count=\"50\",\n    product_type=\"ddoscoo\",\n    period=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new AliCloud.Ddos.DdosCooInstance(\"default\", new()\n    {\n        Name = name,\n        BaseBandwidth = \"30\",\n        Bandwidth = \"30\",\n        ServiceBandwidth = \"100\",\n        PortCount = \"50\",\n        DomainCount = \"50\",\n        ProductType = \"ddoscoo\",\n        Period = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ddos.NewDdosCooInstance(ctx, \"default\", \u0026ddos.DdosCooInstanceArgs{\n\t\t\tName:             pulumi.String(name),\n\t\t\tBaseBandwidth:    pulumi.String(\"30\"),\n\t\t\tBandwidth:        pulumi.String(\"30\"),\n\t\t\tServiceBandwidth: pulumi.String(\"100\"),\n\t\t\tPortCount:        pulumi.String(\"50\"),\n\t\t\tDomainCount:      pulumi.String(\"50\"),\n\t\t\tProductType:      pulumi.String(\"ddoscoo\"),\n\t\t\tPeriod:           pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ddos.DdosCooInstance;\nimport com.pulumi.alicloud.ddos.DdosCooInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new DdosCooInstance(\"default\", DdosCooInstanceArgs.builder()\n            .name(name)\n            .baseBandwidth(\"30\")\n            .bandwidth(\"30\")\n            .serviceBandwidth(\"100\")\n            .portCount(\"50\")\n            .domainCount(\"50\")\n            .productType(\"ddoscoo\")\n            .period(1)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:ddos:DdosCooInstance\n    properties:\n      name: ${name}\n      baseBandwidth: '30'\n      bandwidth: '30'\n      serviceBandwidth: '100'\n      portCount: '50'\n      domainCount: '50'\n      productType: ddoscoo\n      period: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDdosCoo Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dns/ddosCooInstance:DdosCooInstance example \u003cid\u003e\n```\n\n","properties":{"addressType":{"type":"string","description":"The IP version of the IP address. Default value: `Ipv4`. Valid values: `Ipv4`, `Ipv6`. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`addressType`\" pulumi-lang-dotnet=\"`AddressType`\" pulumi-lang-go=\"`addressType`\" pulumi-lang-python=\"`address_type`\" pulumi-lang-yaml=\"`addressType`\" pulumi-lang-java=\"`addressType`\"\u003e`address_type`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"bandwidth":{"type":"string","description":"Elastic defend bandwidth of the instance. This value must be larger than the base defend bandwidth. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. The unit is Gbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"bandwidthMode":{"type":"string","description":"The mitigation plan of the instance. Valid values:\n"},"baseBandwidth":{"type":"string","description":"Base defend bandwidth of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. The unit is Gbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`baseBandwidth`\" pulumi-lang-dotnet=\"`BaseBandwidth`\" pulumi-lang-go=\"`baseBandwidth`\" pulumi-lang-python=\"`base_bandwidth`\" pulumi-lang-yaml=\"`baseBandwidth`\" pulumi-lang-java=\"`baseBandwidth`\"\u003e`base_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"createTime":{"type":"integer","description":"(Available since v1.248.0) The time when the instance was created.\n"},"domainCount":{"type":"string","description":"Domain retransmission rule count of the instance. At least 50. Increase 5 per step, such as 55, 60, 65. Only support upgrade.\n"},"editionSale":{"type":"string","description":"The mitigation plan of the instance. Default value: \u003cspan pulumi-lang-nodejs=\"`coop`\" pulumi-lang-dotnet=\"`Coop`\" pulumi-lang-go=\"`coop`\" pulumi-lang-python=\"`coop`\" pulumi-lang-yaml=\"`coop`\" pulumi-lang-java=\"`coop`\"\u003e`coop`\u003c/span\u003e. Valid values:\n"},"functionVersion":{"type":"string","description":"The function plan of the instance. Valid values:\n"},"ip":{"type":"string","description":"(Available since v1.212.0) The IP address of the Instance.\n"},"modifyType":{"type":"string","description":"The type of modification. Valid values: `UPGRADE`, `DOWNGRADE`.\n"},"name":{"type":"string","description":"Name of the instance. This name can have a string of \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters.\n"},"normalBandwidth":{"type":"string","description":"The clean bandwidth provided by the instance. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`normalBandwidth`\" pulumi-lang-dotnet=\"`NormalBandwidth`\" pulumi-lang-go=\"`normalBandwidth`\" pulumi-lang-python=\"`normal_bandwidth`\" pulumi-lang-yaml=\"`normalBandwidth`\" pulumi-lang-java=\"`normalBandwidth`\"\u003e`normal_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to `ddosDip`. From version 1.248.0, \u003cspan pulumi-lang-nodejs=\"`normalBandwidth`\" pulumi-lang-dotnet=\"`NormalBandwidth`\" pulumi-lang-go=\"`normalBandwidth`\" pulumi-lang-python=\"`normal_bandwidth`\" pulumi-lang-yaml=\"`normalBandwidth`\" pulumi-lang-java=\"`normalBandwidth`\"\u003e`normal_bandwidth`\u003c/span\u003e can be modified.\n"},"normalQps":{"type":"string","description":"The clean QPS provided by the instance. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`normalQps`\" pulumi-lang-dotnet=\"`NormalQps`\" pulumi-lang-go=\"`normalQps`\" pulumi-lang-python=\"`normal_qps`\" pulumi-lang-yaml=\"`normalQps`\" pulumi-lang-java=\"`normalQps`\"\u003e`normal_qps`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to `ddosDip`. From version 1.248.0, \u003cspan pulumi-lang-nodejs=\"`normalQps`\" pulumi-lang-dotnet=\"`NormalQps`\" pulumi-lang-go=\"`normalQps`\" pulumi-lang-python=\"`normal_qps`\" pulumi-lang-yaml=\"`normalQps`\" pulumi-lang-java=\"`normalQps`\"\u003e`normal_qps`\u003c/span\u003e can be modified.\n"},"period":{"type":"integer","description":"The duration that you will buy DdosCoo instance (in month). Valid values: [1~9], \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. At present, the provider does not support modify \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"},"portCount":{"type":"string","description":"Port retransmission rule count of the instance. At least 50. Increase 5 per step, such as 55, 60, 65. Only support upgrade.\n"},"productPlan":{"type":"string","description":"The mitigation plan of the instance. Valid values:\n"},"productType":{"type":"string","description":"The product type for purchasing DDOSCOO instances used to differ different account type. Default value: \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e. Valid values:\n"},"serviceBandwidth":{"type":"string","description":"Business bandwidth of the instance. At leaset 100. Increased 100 per step, such as 100, 200, 300. The unit is Mbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`serviceBandwidth`\" pulumi-lang-dotnet=\"`ServiceBandwidth`\" pulumi-lang-go=\"`serviceBandwidth`\" pulumi-lang-python=\"`service_bandwidth`\" pulumi-lang-yaml=\"`serviceBandwidth`\" pulumi-lang-java=\"`serviceBandwidth`\"\u003e`service_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"status":{"type":"integer","description":"(Available since v1.248.0) The status of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["addressType","bandwidth","baseBandwidth","createTime","domainCount","editionSale","functionVersion","ip","name","normalBandwidth","normalQps","portCount","productPlan","serviceBandwidth","status"],"inputProperties":{"addressType":{"type":"string","description":"The IP version of the IP address. Default value: `Ipv4`. Valid values: `Ipv4`, `Ipv6`. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`addressType`\" pulumi-lang-dotnet=\"`AddressType`\" pulumi-lang-go=\"`addressType`\" pulumi-lang-python=\"`address_type`\" pulumi-lang-yaml=\"`addressType`\" pulumi-lang-java=\"`addressType`\"\u003e`address_type`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n","willReplaceOnChanges":true},"bandwidth":{"type":"string","description":"Elastic defend bandwidth of the instance. This value must be larger than the base defend bandwidth. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. The unit is Gbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"bandwidthMode":{"type":"string","description":"The mitigation plan of the instance. Valid values:\n"},"baseBandwidth":{"type":"string","description":"Base defend bandwidth of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. The unit is Gbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`baseBandwidth`\" pulumi-lang-dotnet=\"`BaseBandwidth`\" pulumi-lang-go=\"`baseBandwidth`\" pulumi-lang-python=\"`base_bandwidth`\" pulumi-lang-yaml=\"`baseBandwidth`\" pulumi-lang-java=\"`baseBandwidth`\"\u003e`base_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"domainCount":{"type":"string","description":"Domain retransmission rule count of the instance. At least 50. Increase 5 per step, such as 55, 60, 65. Only support upgrade.\n"},"editionSale":{"type":"string","description":"The mitigation plan of the instance. Default value: \u003cspan pulumi-lang-nodejs=\"`coop`\" pulumi-lang-dotnet=\"`Coop`\" pulumi-lang-go=\"`coop`\" pulumi-lang-python=\"`coop`\" pulumi-lang-yaml=\"`coop`\" pulumi-lang-java=\"`coop`\"\u003e`coop`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"functionVersion":{"type":"string","description":"The function plan of the instance. Valid values:\n"},"modifyType":{"type":"string","description":"The type of modification. Valid values: `UPGRADE`, `DOWNGRADE`.\n"},"name":{"type":"string","description":"Name of the instance. This name can have a string of \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters.\n"},"normalBandwidth":{"type":"string","description":"The clean bandwidth provided by the instance. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`normalBandwidth`\" pulumi-lang-dotnet=\"`NormalBandwidth`\" pulumi-lang-go=\"`normalBandwidth`\" pulumi-lang-python=\"`normal_bandwidth`\" pulumi-lang-yaml=\"`normalBandwidth`\" pulumi-lang-java=\"`normalBandwidth`\"\u003e`normal_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to `ddosDip`. From version 1.248.0, \u003cspan pulumi-lang-nodejs=\"`normalBandwidth`\" pulumi-lang-dotnet=\"`NormalBandwidth`\" pulumi-lang-go=\"`normalBandwidth`\" pulumi-lang-python=\"`normal_bandwidth`\" pulumi-lang-yaml=\"`normalBandwidth`\" pulumi-lang-java=\"`normalBandwidth`\"\u003e`normal_bandwidth`\u003c/span\u003e can be modified.\n"},"normalQps":{"type":"string","description":"The clean QPS provided by the instance. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`normalQps`\" pulumi-lang-dotnet=\"`NormalQps`\" pulumi-lang-go=\"`normalQps`\" pulumi-lang-python=\"`normal_qps`\" pulumi-lang-yaml=\"`normalQps`\" pulumi-lang-java=\"`normalQps`\"\u003e`normal_qps`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to `ddosDip`. From version 1.248.0, \u003cspan pulumi-lang-nodejs=\"`normalQps`\" pulumi-lang-dotnet=\"`NormalQps`\" pulumi-lang-go=\"`normalQps`\" pulumi-lang-python=\"`normal_qps`\" pulumi-lang-yaml=\"`normalQps`\" pulumi-lang-java=\"`normalQps`\"\u003e`normal_qps`\u003c/span\u003e can be modified.\n"},"period":{"type":"integer","description":"The duration that you will buy DdosCoo instance (in month). Valid values: [1~9], \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. At present, the provider does not support modify \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"},"portCount":{"type":"string","description":"Port retransmission rule count of the instance. At least 50. Increase 5 per step, such as 55, 60, 65. Only support upgrade.\n"},"productPlan":{"type":"string","description":"The mitigation plan of the instance. Valid values:\n"},"productType":{"type":"string","description":"The product type for purchasing DDOSCOO instances used to differ different account type. Default value: \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e. Valid values:\n"},"serviceBandwidth":{"type":"string","description":"Business bandwidth of the instance. At leaset 100. Increased 100 per step, such as 100, 200, 300. The unit is Mbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`serviceBandwidth`\" pulumi-lang-dotnet=\"`ServiceBandwidth`\" pulumi-lang-go=\"`serviceBandwidth`\" pulumi-lang-python=\"`service_bandwidth`\" pulumi-lang-yaml=\"`serviceBandwidth`\" pulumi-lang-java=\"`serviceBandwidth`\"\u003e`service_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"requiredInputs":["domainCount","portCount"],"stateInputs":{"description":"Input properties used for looking up and filtering DdosCooInstance resources.\n","properties":{"addressType":{"type":"string","description":"The IP version of the IP address. Default value: `Ipv4`. Valid values: `Ipv4`, `Ipv6`. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`addressType`\" pulumi-lang-dotnet=\"`AddressType`\" pulumi-lang-go=\"`addressType`\" pulumi-lang-python=\"`address_type`\" pulumi-lang-yaml=\"`addressType`\" pulumi-lang-java=\"`addressType`\"\u003e`address_type`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n","willReplaceOnChanges":true},"bandwidth":{"type":"string","description":"Elastic defend bandwidth of the instance. This value must be larger than the base defend bandwidth. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. The unit is Gbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"bandwidthMode":{"type":"string","description":"The mitigation plan of the instance. Valid values:\n"},"baseBandwidth":{"type":"string","description":"Base defend bandwidth of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. The unit is Gbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`baseBandwidth`\" pulumi-lang-dotnet=\"`BaseBandwidth`\" pulumi-lang-go=\"`baseBandwidth`\" pulumi-lang-python=\"`base_bandwidth`\" pulumi-lang-yaml=\"`baseBandwidth`\" pulumi-lang-java=\"`baseBandwidth`\"\u003e`base_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"createTime":{"type":"integer","description":"(Available since v1.248.0) The time when the instance was created.\n"},"domainCount":{"type":"string","description":"Domain retransmission rule count of the instance. At least 50. Increase 5 per step, such as 55, 60, 65. Only support upgrade.\n"},"editionSale":{"type":"string","description":"The mitigation plan of the instance. Default value: \u003cspan pulumi-lang-nodejs=\"`coop`\" pulumi-lang-dotnet=\"`Coop`\" pulumi-lang-go=\"`coop`\" pulumi-lang-python=\"`coop`\" pulumi-lang-yaml=\"`coop`\" pulumi-lang-java=\"`coop`\"\u003e`coop`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"functionVersion":{"type":"string","description":"The function plan of the instance. Valid values:\n"},"ip":{"type":"string","description":"(Available since v1.212.0) The IP address of the Instance.\n"},"modifyType":{"type":"string","description":"The type of modification. Valid values: `UPGRADE`, `DOWNGRADE`.\n"},"name":{"type":"string","description":"Name of the instance. This name can have a string of \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters.\n"},"normalBandwidth":{"type":"string","description":"The clean bandwidth provided by the instance. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`normalBandwidth`\" pulumi-lang-dotnet=\"`NormalBandwidth`\" pulumi-lang-go=\"`normalBandwidth`\" pulumi-lang-python=\"`normal_bandwidth`\" pulumi-lang-yaml=\"`normalBandwidth`\" pulumi-lang-java=\"`normalBandwidth`\"\u003e`normal_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to `ddosDip`. From version 1.248.0, \u003cspan pulumi-lang-nodejs=\"`normalBandwidth`\" pulumi-lang-dotnet=\"`NormalBandwidth`\" pulumi-lang-go=\"`normalBandwidth`\" pulumi-lang-python=\"`normal_bandwidth`\" pulumi-lang-yaml=\"`normalBandwidth`\" pulumi-lang-java=\"`normalBandwidth`\"\u003e`normal_bandwidth`\u003c/span\u003e can be modified.\n"},"normalQps":{"type":"string","description":"The clean QPS provided by the instance. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`normalQps`\" pulumi-lang-dotnet=\"`NormalQps`\" pulumi-lang-go=\"`normalQps`\" pulumi-lang-python=\"`normal_qps`\" pulumi-lang-yaml=\"`normalQps`\" pulumi-lang-java=\"`normalQps`\"\u003e`normal_qps`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to `ddosDip`. From version 1.248.0, \u003cspan pulumi-lang-nodejs=\"`normalQps`\" pulumi-lang-dotnet=\"`NormalQps`\" pulumi-lang-go=\"`normalQps`\" pulumi-lang-python=\"`normal_qps`\" pulumi-lang-yaml=\"`normalQps`\" pulumi-lang-java=\"`normalQps`\"\u003e`normal_qps`\u003c/span\u003e can be modified.\n"},"period":{"type":"integer","description":"The duration that you will buy DdosCoo instance (in month). Valid values: [1~9], \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. At present, the provider does not support modify \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"},"portCount":{"type":"string","description":"Port retransmission rule count of the instance. At least 50. Increase 5 per step, such as 55, 60, 65. Only support upgrade.\n"},"productPlan":{"type":"string","description":"The mitigation plan of the instance. Valid values:\n"},"productType":{"type":"string","description":"The product type for purchasing DDOSCOO instances used to differ different account type. Default value: \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e. Valid values:\n"},"serviceBandwidth":{"type":"string","description":"Business bandwidth of the instance. At leaset 100. Increased 100 per step, such as 100, 200, 300. The unit is Mbps. Only support upgrade. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`serviceBandwidth`\" pulumi-lang-dotnet=\"`ServiceBandwidth`\" pulumi-lang-go=\"`serviceBandwidth`\" pulumi-lang-python=\"`service_bandwidth`\" pulumi-lang-yaml=\"`serviceBandwidth`\" pulumi-lang-java=\"`serviceBandwidth`\"\u003e`service_bandwidth`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`productType`\" pulumi-lang-dotnet=\"`ProductType`\" pulumi-lang-go=\"`productType`\" pulumi-lang-python=\"`product_type`\" pulumi-lang-yaml=\"`productType`\" pulumi-lang-java=\"`productType`\"\u003e`product_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`ddoscoo`\" pulumi-lang-dotnet=\"`Ddoscoo`\" pulumi-lang-go=\"`ddoscoo`\" pulumi-lang-python=\"`ddoscoo`\" pulumi-lang-yaml=\"`ddoscoo`\" pulumi-lang-java=\"`ddoscoo`\"\u003e`ddoscoo`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ddoscooIntl`\" pulumi-lang-dotnet=\"`DdoscooIntl`\" pulumi-lang-go=\"`ddoscooIntl`\" pulumi-lang-python=\"`ddoscoo_intl`\" pulumi-lang-yaml=\"`ddoscooIntl`\" pulumi-lang-java=\"`ddoscooIntl`\"\u003e`ddoscoo_intl`\u003c/span\u003e.\n"},"status":{"type":"integer","description":"(Available since v1.248.0) The status of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"deprecationMessage":"alicloud.dns.DdosCooInstance has been deprecated in favor of alicloud.ddos.DdosCooInstance"},"alicloud:dns/dnsDomain:DnsDomain":{"description":"Provides a DNS domain resource.\n\n\u003e **DEPRECATED:** This resource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.dns.AlidnsDomain \" pulumi-lang-dotnet=\" alicloud.dns.AlidnsDomain \" pulumi-lang-go=\" dns.AlidnsDomain \" pulumi-lang-python=\" dns.AlidnsDomain \" pulumi-lang-yaml=\" alicloud.dns.AlidnsDomain \" pulumi-lang-java=\" alicloud.dns.AlidnsDomain \"\u003e alicloud.dns.AlidnsDomain \u003c/span\u003efrom version 1.95.0.\n\n\u003e **NOTE:** The domain name which you want to add must be already registered and had not added by another account. Every domain name can only exist in a unique group.\n\n\u003e **NOTE:** Available in v1.81.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Add a new Domain.\nconst dns = new alicloud.dns.DnsDomain(\"dns\", {\n    domainName: \"starmove.com\",\n    groupId: \"85ab8713-4a30-4de4-9d20-155ff830****\",\n    tags: {\n        Created: \"Terraform\",\n        Environment: \"test\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Add a new Domain.\ndns = alicloud.dns.DnsDomain(\"dns\",\n    domain_name=\"starmove.com\",\n    group_id=\"85ab8713-4a30-4de4-9d20-155ff830****\",\n    tags={\n        \"Created\": \"Terraform\",\n        \"Environment\": \"test\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Add a new Domain.\n    var dns = new AliCloud.Dns.DnsDomain(\"dns\", new()\n    {\n        DomainName = \"starmove.com\",\n        GroupId = \"85ab8713-4a30-4de4-9d20-155ff830****\",\n        Tags = \n        {\n            { \"Created\", \"Terraform\" },\n            { \"Environment\", \"test\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Add a new Domain.\n\t\t_, err := dns.NewDnsDomain(ctx, \"dns\", \u0026dns.DnsDomainArgs{\n\t\t\tDomainName: pulumi.String(\"starmove.com\"),\n\t\t\tGroupId:    pulumi.String(\"85ab8713-4a30-4de4-9d20-155ff830****\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\":     pulumi.String(\"Terraform\"),\n\t\t\t\t\"Environment\": pulumi.String(\"test\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DnsDomain;\nimport com.pulumi.alicloud.dns.DnsDomainArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Add a new Domain.\n        var dns = new DnsDomain(\"dns\", DnsDomainArgs.builder()\n            .domainName(\"starmove.com\")\n            .groupId(\"85ab8713-4a30-4de4-9d20-155ff830****\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"Terraform\"),\n                Map.entry(\"Environment\", \"test\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Add a new Domain.\n  dns:\n    type: alicloud:dns:DnsDomain\n    properties:\n      domainName: starmove.com\n      groupId: 85ab8713-4a30-4de4-9d20-155ff830****\n      tags:\n        Created: Terraform\n        Environment: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDNS domain can be imported using the id or domain name, e.g.\n\n```sh\n$ pulumi import alicloud:dns/dnsDomain:DnsDomain example aliyun.com\n```\n\n","properties":{"dnsServers":{"type":"array","items":{"type":"string"}},"domainId":{"type":"string","description":"The domain ID.\n"},"domainName":{"type":"string","description":"Name of the domain. This name without suffix can have a string of 1 to 63 characters(domain name subject, excluding suffix), must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n"},"groupId":{"type":"string","description":"Id of the group in which the domain will add. If not supplied, then use default group.\n"},"groupName":{"type":"string"},"lang":{"type":"string","description":"User language.\n"},"punyCode":{"type":"string"},"remark":{"type":"string","description":"Remarks information for your domain name.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the dns domain belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"}},"required":["dnsServers","domainId","domainName","groupName","punyCode","resourceGroupId"],"inputProperties":{"domainName":{"type":"string","description":"Name of the domain. This name without suffix can have a string of 1 to 63 characters(domain name subject, excluding suffix), must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"Id of the group in which the domain will add. If not supplied, then use default group.\n"},"lang":{"type":"string","description":"User language.\n"},"remark":{"type":"string","description":"Remarks information for your domain name.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the dns domain belongs.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"}},"requiredInputs":["domainName"],"stateInputs":{"description":"Input properties used for looking up and filtering DnsDomain resources.\n","properties":{"dnsServers":{"type":"array","items":{"type":"string"}},"domainId":{"type":"string","description":"The domain ID.\n"},"domainName":{"type":"string","description":"Name of the domain. This name without suffix can have a string of 1 to 63 characters(domain name subject, excluding suffix), must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"Id of the group in which the domain will add. If not supplied, then use default group.\n"},"groupName":{"type":"string"},"lang":{"type":"string","description":"User language.\n"},"punyCode":{"type":"string"},"remark":{"type":"string","description":"Remarks information for your domain name.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the dns domain belongs.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"}},"type":"object"}},"alicloud:dns/domain:Domain":{"description":"\u003e **DEPRECATED:** This resource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.dns.AlidnsDomain \" pulumi-lang-dotnet=\" alicloud.dns.AlidnsDomain \" pulumi-lang-go=\" dns.AlidnsDomain \" pulumi-lang-python=\" dns.AlidnsDomain \" pulumi-lang-yaml=\" alicloud.dns.AlidnsDomain \" pulumi-lang-java=\" alicloud.dns.AlidnsDomain \"\u003e alicloud.dns.AlidnsDomain \u003c/span\u003efrom version 1.95.0.\n\nProvides a DNS resource.\n\n\u003e **NOTE:** The domain name which you want to add must be already registered and had not added by another account. Every domain name can only exist in a unique group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Add a new Domain.\nconst dns = new alicloud.dns.Domain(\"dns\", {\n    name: \"starmove.com\",\n    groupId: \"85ab8713-4a30-4de4-9d20-155ff830f651\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Add a new Domain.\ndns = alicloud.dns.Domain(\"dns\",\n    name=\"starmove.com\",\n    group_id=\"85ab8713-4a30-4de4-9d20-155ff830f651\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Add a new Domain.\n    var dns = new AliCloud.Dns.Domain(\"dns\", new()\n    {\n        Name = \"starmove.com\",\n        GroupId = \"85ab8713-4a30-4de4-9d20-155ff830f651\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Add a new Domain.\n\t\t_, err := dns.NewDomain(ctx, \"dns\", \u0026dns.DomainArgs{\n\t\t\tName:    pulumi.String(\"starmove.com\"),\n\t\t\tGroupId: pulumi.String(\"85ab8713-4a30-4de4-9d20-155ff830f651\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.Domain;\nimport com.pulumi.alicloud.dns.DomainArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Add a new Domain.\n        var dns = new Domain(\"dns\", DomainArgs.builder()\n            .name(\"starmove.com\")\n            .groupId(\"85ab8713-4a30-4de4-9d20-155ff830f651\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Add a new Domain.\n  dns:\n    type: alicloud:dns:Domain\n    properties:\n      name: starmove.com\n      groupId: 85ab8713-4a30-4de4-9d20-155ff830f651\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDNS can be imported using the id or domain name, e.g.\n\n```sh\n$ pulumi import alicloud:dns/domain:Domain example \"aliyun.com\"\n```\n\n","properties":{"dnsServers":{"type":"array","items":{"type":"string"},"description":"A list of the dns server name.\n"},"domainId":{"type":"string","description":"The domain ID.\n"},"groupId":{"type":"string","description":"Id of the group in which the domain will add. If not supplied, then use default group.\n"},"name":{"type":"string","description":"Name of the domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the dns belongs.\n"}},"required":["dnsServers","domainId","name"],"inputProperties":{"groupId":{"type":"string","description":"Id of the group in which the domain will add. If not supplied, then use default group.\n"},"name":{"type":"string","description":"Name of the domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The Id of resource group which the dns belongs.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Domain resources.\n","properties":{"dnsServers":{"type":"array","items":{"type":"string"},"description":"A list of the dns server name.\n"},"domainId":{"type":"string","description":"The domain ID.\n"},"groupId":{"type":"string","description":"Id of the group in which the domain will add. If not supplied, then use default group.\n"},"name":{"type":"string","description":"Name of the domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The Id of resource group which the dns belongs.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"This resource has been deprecated in favour of DnsDomain"},"alicloud:dns/domainAttachment:DomainAttachment":{"description":"Provides bind the domain name to the DNS instance resource.\n\n\u003e **NOTE:** Available in v1.80.0+.\n\n\u003e **DEPRECATED:**  This resource has been deprecated from version `1.99.0`. Please use new resource alicloud_alidns_domain_attachment.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst dns = new alicloud.dns.DomainAttachment(\"dns\", {\n    instanceId: \"dns-cn-mp91lyq9xxxx\",\n    domainNames: [\n        \"test111.abc\",\n        \"test222.abc\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndns = alicloud.dns.DomainAttachment(\"dns\",\n    instance_id=\"dns-cn-mp91lyq9xxxx\",\n    domain_names=[\n        \"test111.abc\",\n        \"test222.abc\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dns = new AliCloud.Dns.DomainAttachment(\"dns\", new()\n    {\n        InstanceId = \"dns-cn-mp91lyq9xxxx\",\n        DomainNames = new[]\n        {\n            \"test111.abc\",\n            \"test222.abc\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dns.NewDomainAttachment(ctx, \"dns\", \u0026dns.DomainAttachmentArgs{\n\t\t\tInstanceId: pulumi.String(\"dns-cn-mp91lyq9xxxx\"),\n\t\t\tDomainNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"test111.abc\"),\n\t\t\t\tpulumi.String(\"test222.abc\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DomainAttachment;\nimport com.pulumi.alicloud.dns.DomainAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var dns = new DomainAttachment(\"dns\", DomainAttachmentArgs.builder()\n            .instanceId(\"dns-cn-mp91lyq9xxxx\")\n            .domainNames(            \n                \"test111.abc\",\n                \"test222.abc\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dns:\n    type: alicloud:dns:DomainAttachment\n    properties:\n      instanceId: dns-cn-mp91lyq9xxxx\n      domainNames:\n        - test111.abc\n        - test222.abc\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDNS domain attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dns/domainAttachment:DomainAttachment example dns-cn-v0h1ldjhxxx\n```\n\n","properties":{"domainNames":{"type":"array","items":{"type":"string"},"description":"The domain names bound to the DNS instance.\n"},"instanceId":{"type":"string","description":"The id of the DNS instance.\n"}},"required":["domainNames","instanceId"],"inputProperties":{"domainNames":{"type":"array","items":{"type":"string"},"description":"The domain names bound to the DNS instance.\n"},"instanceId":{"type":"string","description":"The id of the DNS instance.\n","willReplaceOnChanges":true}},"requiredInputs":["domainNames","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DomainAttachment resources.\n","properties":{"domainNames":{"type":"array","items":{"type":"string"},"description":"The domain names bound to the DNS instance.\n"},"instanceId":{"type":"string","description":"The id of the DNS instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dns/domainGroup:DomainGroup":{"description":"Provides a Alidns Domain Group resource. For information about Alidns Domain Group and how to use it, see [What is Resource Alidns Domain Group](https://www.alibabacloud.com/help/en/doc-detail/29762.htm).\n\n\u003e **NOTE:** Available since v1.84.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.dns.DomainGroup(\"default\", {domainGroupName: \"tf-example\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.dns.DomainGroup(\"default\", domain_group_name=\"tf-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Dns.DomainGroup(\"default\", new()\n    {\n        DomainGroupName = \"tf-example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dns.NewDomainGroup(ctx, \"default\", \u0026dns.DomainGroupArgs{\n\t\t\tDomainGroupName: pulumi.String(\"tf-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DomainGroup;\nimport com.pulumi.alicloud.dns.DomainGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new DomainGroup(\"default\", DomainGroupArgs.builder()\n            .domainGroupName(\"tf-example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:dns:DomainGroup\n    properties:\n      domainGroupName: tf-example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAlidns domain group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dns/domainGroup:DomainGroup example 0932eb3ddee7499085c4d13d45*****\n```\n\n","properties":{"domainGroupName":{"type":"string","description":"The Name of the domain group. The \u003cspan pulumi-lang-nodejs=\"`domainGroupName`\" pulumi-lang-dotnet=\"`DomainGroupName`\" pulumi-lang-go=\"`domainGroupName`\" pulumi-lang-python=\"`domain_group_name`\" pulumi-lang-yaml=\"`domainGroupName`\" pulumi-lang-java=\"`domainGroupName`\"\u003e`domain_group_name`\u003c/span\u003e is required when the value of the \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e  is Empty.\n"},"groupName":{"type":"string","description":"The Name of the domain group. The \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e has been deprecated from provider version 1.97.0. Please use \u003cspan pulumi-lang-nodejs=\"`domainGroupName`\" pulumi-lang-dotnet=\"`DomainGroupName`\" pulumi-lang-go=\"`domainGroupName`\" pulumi-lang-python=\"`domain_group_name`\" pulumi-lang-yaml=\"`domainGroupName`\" pulumi-lang-java=\"`domainGroupName`\"\u003e`domain_group_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'group_name' has been deprecated from version 1.97.0. Use 'domain_group_name' instead."},"lang":{"type":"string","description":"User language.\n"}},"required":["domainGroupName","groupName"],"inputProperties":{"domainGroupName":{"type":"string","description":"The Name of the domain group. The \u003cspan pulumi-lang-nodejs=\"`domainGroupName`\" pulumi-lang-dotnet=\"`DomainGroupName`\" pulumi-lang-go=\"`domainGroupName`\" pulumi-lang-python=\"`domain_group_name`\" pulumi-lang-yaml=\"`domainGroupName`\" pulumi-lang-java=\"`domainGroupName`\"\u003e`domain_group_name`\u003c/span\u003e is required when the value of the \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e  is Empty.\n"},"groupName":{"type":"string","description":"The Name of the domain group. The \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e has been deprecated from provider version 1.97.0. Please use \u003cspan pulumi-lang-nodejs=\"`domainGroupName`\" pulumi-lang-dotnet=\"`DomainGroupName`\" pulumi-lang-go=\"`domainGroupName`\" pulumi-lang-python=\"`domain_group_name`\" pulumi-lang-yaml=\"`domainGroupName`\" pulumi-lang-java=\"`domainGroupName`\"\u003e`domain_group_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'group_name' has been deprecated from version 1.97.0. Use 'domain_group_name' instead."},"lang":{"type":"string","description":"User language.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering DomainGroup resources.\n","properties":{"domainGroupName":{"type":"string","description":"The Name of the domain group. The \u003cspan pulumi-lang-nodejs=\"`domainGroupName`\" pulumi-lang-dotnet=\"`DomainGroupName`\" pulumi-lang-go=\"`domainGroupName`\" pulumi-lang-python=\"`domain_group_name`\" pulumi-lang-yaml=\"`domainGroupName`\" pulumi-lang-java=\"`domainGroupName`\"\u003e`domain_group_name`\u003c/span\u003e is required when the value of the \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e  is Empty.\n"},"groupName":{"type":"string","description":"The Name of the domain group. The \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e has been deprecated from provider version 1.97.0. Please use \u003cspan pulumi-lang-nodejs=\"`domainGroupName`\" pulumi-lang-dotnet=\"`DomainGroupName`\" pulumi-lang-go=\"`domainGroupName`\" pulumi-lang-python=\"`domain_group_name`\" pulumi-lang-yaml=\"`domainGroupName`\" pulumi-lang-java=\"`domainGroupName`\"\u003e`domain_group_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'group_name' has been deprecated from version 1.97.0. Use 'domain_group_name' instead."},"lang":{"type":"string","description":"User language.\n"}},"type":"object"}},"alicloud:dns/group:Group":{"description":"\u003e **DEPRECATED:**  This resource  has been deprecated from version `1.84.0`. Please use new resource alicloud_alidns_domain_group.\n\nProvides a DNS Group resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Add a new Domain group.\nconst group = new alicloud.dns.Group(\"group\", {name: \"testgroup\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Add a new Domain group.\ngroup = alicloud.dns.Group(\"group\", name=\"testgroup\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Add a new Domain group.\n    var @group = new AliCloud.Dns.Group(\"group\", new()\n    {\n        Name = \"testgroup\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Add a new Domain group.\n\t\t_, err := dns.NewGroup(ctx, \"group\", \u0026dns.GroupArgs{\n\t\t\tName: pulumi.String(\"testgroup\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.Group;\nimport com.pulumi.alicloud.dns.GroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Add a new Domain group.\n        var group = new Group(\"group\", GroupArgs.builder()\n            .name(\"testgroup\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Add a new Domain group.\n  group:\n    type: alicloud:dns:Group\n    properties:\n      name: testgroup\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"name":{"type":"string","description":"Name of the domain group.\n"}},"required":["name"],"inputProperties":{"name":{"type":"string","description":"Name of the domain group.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Group resources.\n","properties":{"name":{"type":"string","description":"Name of the domain group.\n"}},"type":"object"}},"alicloud:dns/gtmInstance:GtmInstance":{"description":"Provides a Alidns Gtm Instance resource.\n\nFor information about Alidns Gtm Instance and how to use it, see [What is Gtm Instance](https://www.alibabacloud.com/help/en/doc-detail/204852.html).\n\n\u003e **NOTE:** Available since v1.151.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst domainName = config.get(\"domainName\") || \"alicloud-provider.com\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultAlarmContactGroup = new alicloud.cms.AlarmContactGroup(\"default\", {alarmContactGroupName: \"tf_example\"});\nconst defaultGtmInstance = new alicloud.dns.GtmInstance(\"default\", {\n    instanceName: \"tf_example\",\n    paymentType: \"Subscription\",\n    period: 1,\n    renewalStatus: \"ManualRenewal\",\n    packageEdition: \"standard\",\n    healthCheckTaskCount: 100,\n    smsNotificationCount: 1000,\n    publicCnameMode: \"SYSTEM_ASSIGN\",\n    ttl: 60,\n    cnameType: \"PUBLIC\",\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n    alertGroups: [defaultAlarmContactGroup.alarmContactGroupName],\n    publicUserDomainName: domainName,\n    alertConfigs: [{\n        smsNotice: true,\n        noticeType: \"ADDR_ALERT\",\n        emailNotice: true,\n        dingtalkNotice: true,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\ndomain_name = config.get(\"domainName\")\nif domain_name is None:\n    domain_name = \"alicloud-provider.com\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_alarm_contact_group = alicloud.cms.AlarmContactGroup(\"default\", alarm_contact_group_name=\"tf_example\")\ndefault_gtm_instance = alicloud.dns.GtmInstance(\"default\",\n    instance_name=\"tf_example\",\n    payment_type=\"Subscription\",\n    period=1,\n    renewal_status=\"ManualRenewal\",\n    package_edition=\"standard\",\n    health_check_task_count=100,\n    sms_notification_count=1000,\n    public_cname_mode=\"SYSTEM_ASSIGN\",\n    ttl=60,\n    cname_type=\"PUBLIC\",\n    resource_group_id=default.groups[0].id,\n    alert_groups=[default_alarm_contact_group.alarm_contact_group_name],\n    public_user_domain_name=domain_name,\n    alert_configs=[{\n        \"sms_notice\": True,\n        \"notice_type\": \"ADDR_ALERT\",\n        \"email_notice\": True,\n        \"dingtalk_notice\": True,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var domainName = config.Get(\"domainName\") ?? \"alicloud-provider.com\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultAlarmContactGroup = new AliCloud.Cms.AlarmContactGroup(\"default\", new()\n    {\n        AlarmContactGroupName = \"tf_example\",\n    });\n\n    var defaultGtmInstance = new AliCloud.Dns.GtmInstance(\"default\", new()\n    {\n        InstanceName = \"tf_example\",\n        PaymentType = \"Subscription\",\n        Period = 1,\n        RenewalStatus = \"ManualRenewal\",\n        PackageEdition = \"standard\",\n        HealthCheckTaskCount = 100,\n        SmsNotificationCount = 1000,\n        PublicCnameMode = \"SYSTEM_ASSIGN\",\n        Ttl = 60,\n        CnameType = \"PUBLIC\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n        AlertGroups = new[]\n        {\n            defaultAlarmContactGroup.AlarmContactGroupName,\n        },\n        PublicUserDomainName = domainName,\n        AlertConfigs = new[]\n        {\n            new AliCloud.Dns.Inputs.GtmInstanceAlertConfigArgs\n            {\n                SmsNotice = true,\n                NoticeType = \"ADDR_ALERT\",\n                EmailNotice = true,\n                DingtalkNotice = true,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdomainName := \"alicloud-provider.com\"\n\t\tif param := cfg.Get(\"domainName\"); param != \"\" {\n\t\t\tdomainName = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAlarmContactGroup, err := cms.NewAlarmContactGroup(ctx, \"default\", \u0026cms.AlarmContactGroupArgs{\n\t\t\tAlarmContactGroupName: pulumi.String(\"tf_example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewGtmInstance(ctx, \"default\", \u0026dns.GtmInstanceArgs{\n\t\t\tInstanceName:         pulumi.String(\"tf_example\"),\n\t\t\tPaymentType:          pulumi.String(\"Subscription\"),\n\t\t\tPeriod:               pulumi.Int(1),\n\t\t\tRenewalStatus:        pulumi.String(\"ManualRenewal\"),\n\t\t\tPackageEdition:       pulumi.String(\"standard\"),\n\t\t\tHealthCheckTaskCount: pulumi.Int(100),\n\t\t\tSmsNotificationCount: pulumi.Int(1000),\n\t\t\tPublicCnameMode:      pulumi.String(\"SYSTEM_ASSIGN\"),\n\t\t\tTtl:                  pulumi.Int(60),\n\t\t\tCnameType:            pulumi.String(\"PUBLIC\"),\n\t\t\tResourceGroupId:      pulumi.String(_default.Groups[0].Id),\n\t\t\tAlertGroups: pulumi.StringArray{\n\t\t\t\tdefaultAlarmContactGroup.AlarmContactGroupName,\n\t\t\t},\n\t\t\tPublicUserDomainName: pulumi.String(domainName),\n\t\t\tAlertConfigs: dns.GtmInstanceAlertConfigArray{\n\t\t\t\t\u0026dns.GtmInstanceAlertConfigArgs{\n\t\t\t\t\tSmsNotice:      pulumi.Bool(true),\n\t\t\t\t\tNoticeType:     pulumi.String(\"ADDR_ALERT\"),\n\t\t\t\t\tEmailNotice:    pulumi.Bool(true),\n\t\t\t\t\tDingtalkNotice: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.cms.AlarmContactGroup;\nimport com.pulumi.alicloud.cms.AlarmContactGroupArgs;\nimport com.pulumi.alicloud.dns.GtmInstance;\nimport com.pulumi.alicloud.dns.GtmInstanceArgs;\nimport com.pulumi.alicloud.dns.inputs.GtmInstanceAlertConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainName = config.get(\"domainName\").orElse(\"alicloud-provider.com\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultAlarmContactGroup = new AlarmContactGroup(\"defaultAlarmContactGroup\", AlarmContactGroupArgs.builder()\n            .alarmContactGroupName(\"tf_example\")\n            .build());\n\n        var defaultGtmInstance = new GtmInstance(\"defaultGtmInstance\", GtmInstanceArgs.builder()\n            .instanceName(\"tf_example\")\n            .paymentType(\"Subscription\")\n            .period(1)\n            .renewalStatus(\"ManualRenewal\")\n            .packageEdition(\"standard\")\n            .healthCheckTaskCount(100)\n            .smsNotificationCount(1000)\n            .publicCnameMode(\"SYSTEM_ASSIGN\")\n            .ttl(60)\n            .cnameType(\"PUBLIC\")\n            .resourceGroupId(default_.groups()[0].id())\n            .alertGroups(defaultAlarmContactGroup.alarmContactGroupName())\n            .publicUserDomainName(domainName)\n            .alertConfigs(GtmInstanceAlertConfigArgs.builder()\n                .smsNotice(true)\n                .noticeType(\"ADDR_ALERT\")\n                .emailNotice(true)\n                .dingtalkNotice(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainName:\n    type: string\n    default: alicloud-provider.com\nresources:\n  defaultAlarmContactGroup:\n    type: alicloud:cms:AlarmContactGroup\n    name: default\n    properties:\n      alarmContactGroupName: tf_example\n  defaultGtmInstance:\n    type: alicloud:dns:GtmInstance\n    name: default\n    properties:\n      instanceName: tf_example\n      paymentType: Subscription\n      period: 1\n      renewalStatus: ManualRenewal\n      packageEdition: standard\n      healthCheckTaskCount: 100\n      smsNotificationCount: 1000\n      publicCnameMode: SYSTEM_ASSIGN\n      ttl: 60\n      cnameType: PUBLIC\n      resourceGroupId: ${default.groups[0].id}\n      alertGroups:\n        - ${defaultAlarmContactGroup.alarmContactGroupName}\n      publicUserDomainName: ${domainName}\n      alertConfigs:\n        - smsNotice: true\n          noticeType: ADDR_ALERT\n          emailNotice: true\n          dingtalkNotice: true\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAlidns Gtm Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dns/gtmInstance:GtmInstance example \u003cid\u003e\n```\n\n","properties":{"alertConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:dns/GtmInstanceAlertConfig:GtmInstanceAlertConfig"},"description":"The alert notification methods. See \u003cspan pulumi-lang-nodejs=\"`alertConfig`\" pulumi-lang-dotnet=\"`AlertConfig`\" pulumi-lang-go=\"`alertConfig`\" pulumi-lang-python=\"`alert_config`\" pulumi-lang-yaml=\"`alertConfig`\" pulumi-lang-java=\"`alertConfig`\"\u003e`alert_config`\u003c/span\u003e below for details.\n"},"alertGroups":{"type":"array","items":{"type":"string"},"description":"The alert group.\n"},"cnameType":{"type":"string","description":"The access type of the CNAME domain name. Valid value: `PUBLIC`.\n"},"forceUpdate":{"type":"boolean","description":"The force update.\n"},"healthCheckTaskCount":{"type":"integer","description":"The quota of detection tasks.\n"},"instanceName":{"type":"string","description":"The name of the instance.\n"},"lang":{"type":"string","description":"The lang.\n"},"packageEdition":{"type":"string","description":"Paid package version. Valid values: \u003cspan pulumi-lang-nodejs=\"`ultimate`\" pulumi-lang-dotnet=\"`Ultimate`\" pulumi-lang-go=\"`ultimate`\" pulumi-lang-python=\"`ultimate`\" pulumi-lang-yaml=\"`ultimate`\" pulumi-lang-java=\"`ultimate`\"\u003e`ultimate`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e.\n"},"paymentType":{"type":"string","description":"The Payment Type of the resource. Valid value: `Subscription`.\n"},"period":{"type":"integer","description":"Creating a pre-paid instance, it must be set, the unit is month, please enter an integer multiple of 12 for annually paid products.\n"},"publicCnameMode":{"type":"string","description":"The Public Network domain name access method. Valid values: `CUSTOM`, `SYSTEM_ASSIGN`.\n"},"publicRr":{"type":"string","description":"The CNAME access domain name.\n"},"publicUserDomainName":{"type":"string","description":"The website domain name that the user uses on the Internet.\n"},"publicZoneName":{"type":"string","description":"The domain name that is used to access GTM over the Internet.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period, the unit is month. When setting \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e to AutoRenewal, it must be set.\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`, `ManualRenewal`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"smsNotificationCount":{"type":"integer","description":"The quota of SMS notifications.\n"},"strategyMode":{"type":"string","description":"The type of the access policy. Valid values: `GEO`, `LATENCY`.\n"},"ttl":{"type":"integer","description":"The global time to live. Valid values: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`120`\" pulumi-lang-dotnet=\"`120`\" pulumi-lang-go=\"`120`\" pulumi-lang-python=\"`120`\" pulumi-lang-yaml=\"`120`\" pulumi-lang-java=\"`120`\"\u003e`120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. Unit: second.\n"}},"required":["cnameType","healthCheckTaskCount","instanceName","packageEdition","paymentType","period","publicCnameMode","publicRr","publicUserDomainName","publicZoneName","renewalStatus","smsNotificationCount","strategyMode"],"inputProperties":{"alertConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:dns/GtmInstanceAlertConfig:GtmInstanceAlertConfig"},"description":"The alert notification methods. See \u003cspan pulumi-lang-nodejs=\"`alertConfig`\" pulumi-lang-dotnet=\"`AlertConfig`\" pulumi-lang-go=\"`alertConfig`\" pulumi-lang-python=\"`alert_config`\" pulumi-lang-yaml=\"`alertConfig`\" pulumi-lang-java=\"`alertConfig`\"\u003e`alert_config`\u003c/span\u003e below for details.\n"},"alertGroups":{"type":"array","items":{"type":"string"},"description":"The alert group.\n"},"cnameType":{"type":"string","description":"The access type of the CNAME domain name. Valid value: `PUBLIC`.\n"},"forceUpdate":{"type":"boolean","description":"The force update.\n"},"healthCheckTaskCount":{"type":"integer","description":"The quota of detection tasks.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the instance.\n"},"lang":{"type":"string","description":"The lang.\n"},"packageEdition":{"type":"string","description":"Paid package version. Valid values: \u003cspan pulumi-lang-nodejs=\"`ultimate`\" pulumi-lang-dotnet=\"`Ultimate`\" pulumi-lang-go=\"`ultimate`\" pulumi-lang-python=\"`ultimate`\" pulumi-lang-yaml=\"`ultimate`\" pulumi-lang-java=\"`ultimate`\"\u003e`ultimate`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The Payment Type of the resource. Valid value: `Subscription`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Creating a pre-paid instance, it must be set, the unit is month, please enter an integer multiple of 12 for annually paid products.\n"},"publicCnameMode":{"type":"string","description":"The Public Network domain name access method. Valid values: `CUSTOM`, `SYSTEM_ASSIGN`.\n"},"publicRr":{"type":"string","description":"The CNAME access domain name.\n"},"publicUserDomainName":{"type":"string","description":"The website domain name that the user uses on the Internet.\n"},"publicZoneName":{"type":"string","description":"The domain name that is used to access GTM over the Internet.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period, the unit is month. When setting \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e to AutoRenewal, it must be set.\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`, `ManualRenewal`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"smsNotificationCount":{"type":"integer","description":"The quota of SMS notifications.\n","willReplaceOnChanges":true},"strategyMode":{"type":"string","description":"The type of the access policy. Valid values: `GEO`, `LATENCY`.\n"},"ttl":{"type":"integer","description":"The global time to live. Valid values: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`120`\" pulumi-lang-dotnet=\"`120`\" pulumi-lang-go=\"`120`\" pulumi-lang-python=\"`120`\" pulumi-lang-yaml=\"`120`\" pulumi-lang-java=\"`120`\"\u003e`120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. Unit: second.\n"}},"requiredInputs":["healthCheckTaskCount","instanceName","packageEdition","paymentType","period","smsNotificationCount"],"stateInputs":{"description":"Input properties used for looking up and filtering GtmInstance resources.\n","properties":{"alertConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:dns/GtmInstanceAlertConfig:GtmInstanceAlertConfig"},"description":"The alert notification methods. See \u003cspan pulumi-lang-nodejs=\"`alertConfig`\" pulumi-lang-dotnet=\"`AlertConfig`\" pulumi-lang-go=\"`alertConfig`\" pulumi-lang-python=\"`alert_config`\" pulumi-lang-yaml=\"`alertConfig`\" pulumi-lang-java=\"`alertConfig`\"\u003e`alert_config`\u003c/span\u003e below for details.\n"},"alertGroups":{"type":"array","items":{"type":"string"},"description":"The alert group.\n"},"cnameType":{"type":"string","description":"The access type of the CNAME domain name. Valid value: `PUBLIC`.\n"},"forceUpdate":{"type":"boolean","description":"The force update.\n"},"healthCheckTaskCount":{"type":"integer","description":"The quota of detection tasks.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the instance.\n"},"lang":{"type":"string","description":"The lang.\n"},"packageEdition":{"type":"string","description":"Paid package version. Valid values: \u003cspan pulumi-lang-nodejs=\"`ultimate`\" pulumi-lang-dotnet=\"`Ultimate`\" pulumi-lang-go=\"`ultimate`\" pulumi-lang-python=\"`ultimate`\" pulumi-lang-yaml=\"`ultimate`\" pulumi-lang-java=\"`ultimate`\"\u003e`ultimate`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The Payment Type of the resource. Valid value: `Subscription`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Creating a pre-paid instance, it must be set, the unit is month, please enter an integer multiple of 12 for annually paid products.\n"},"publicCnameMode":{"type":"string","description":"The Public Network domain name access method. Valid values: `CUSTOM`, `SYSTEM_ASSIGN`.\n"},"publicRr":{"type":"string","description":"The CNAME access domain name.\n"},"publicUserDomainName":{"type":"string","description":"The website domain name that the user uses on the Internet.\n"},"publicZoneName":{"type":"string","description":"The domain name that is used to access GTM over the Internet.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period, the unit is month. When setting \u003cspan pulumi-lang-nodejs=\"`renewalStatus`\" pulumi-lang-dotnet=\"`RenewalStatus`\" pulumi-lang-go=\"`renewalStatus`\" pulumi-lang-python=\"`renewal_status`\" pulumi-lang-yaml=\"`renewalStatus`\" pulumi-lang-java=\"`renewalStatus`\"\u003e`renewal_status`\u003c/span\u003e to AutoRenewal, it must be set.\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`, `ManualRenewal`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"smsNotificationCount":{"type":"integer","description":"The quota of SMS notifications.\n","willReplaceOnChanges":true},"strategyMode":{"type":"string","description":"The type of the access policy. Valid values: `GEO`, `LATENCY`.\n"},"ttl":{"type":"integer","description":"The global time to live. Valid values: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`120`\" pulumi-lang-dotnet=\"`120`\" pulumi-lang-go=\"`120`\" pulumi-lang-python=\"`120`\" pulumi-lang-yaml=\"`120`\" pulumi-lang-java=\"`120`\"\u003e`120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. Unit: second.\n"}},"type":"object"}},"alicloud:dns/instance:Instance":{"description":"Create an DNS Instance resource.\n\n\u003e **DEPRECATED:** This resource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.dns.AlidnsInstance \" pulumi-lang-dotnet=\" alicloud.dns.AlidnsInstance \" pulumi-lang-go=\" dns.AlidnsInstance \" pulumi-lang-python=\" dns.AlidnsInstance \" pulumi-lang-yaml=\" alicloud.dns.AlidnsInstance \" pulumi-lang-java=\" alicloud.dns.AlidnsInstance \"\u003e alicloud.dns.AlidnsInstance \u003c/span\u003efrom version 1.95.0.\n\n\u003e **NOTE:** Available in v1.80.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _this = new alicloud.dns.Instance(\"this\", {\n    dnsSecurity: \"no\",\n    domainNumbers: \"2\",\n    period: 1,\n    renewPeriod: 1,\n    renewalStatus: \"ManualRenewal\",\n    versionCode: \"version_personal\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nthis = alicloud.dns.Instance(\"this\",\n    dns_security=\"no\",\n    domain_numbers=\"2\",\n    period=1,\n    renew_period=1,\n    renewal_status=\"ManualRenewal\",\n    version_code=\"version_personal\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new AliCloud.Dns.Instance(\"this\", new()\n    {\n        DnsSecurity = \"no\",\n        DomainNumbers = \"2\",\n        Period = 1,\n        RenewPeriod = 1,\n        RenewalStatus = \"ManualRenewal\",\n        VersionCode = \"version_personal\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dns.NewInstance(ctx, \"this\", \u0026dns.InstanceArgs{\n\t\t\tDnsSecurity:   pulumi.String(\"no\"),\n\t\t\tDomainNumbers: pulumi.String(\"2\"),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t\tRenewPeriod:   pulumi.Int(1),\n\t\t\tRenewalStatus: pulumi.String(\"ManualRenewal\"),\n\t\t\tVersionCode:   pulumi.String(\"version_personal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.Instance;\nimport com.pulumi.alicloud.dns.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new Instance(\"this\", InstanceArgs.builder()\n            .dnsSecurity(\"no\")\n            .domainNumbers(\"2\")\n            .period(1)\n            .renewPeriod(1)\n            .renewalStatus(\"ManualRenewal\")\n            .versionCode(\"version_personal\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: alicloud:dns:Instance\n    properties:\n      dnsSecurity: no\n      domainNumbers: '2'\n      period: 1\n      renewPeriod: 1\n      renewalStatus: ManualRenewal\n      versionCode: version_personal\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDNS instance be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dns/instance:Instance example dns-cn-v0h1ldjhfff\n```\n\n","properties":{"dnsSecurity":{"type":"string","description":"DNS security level. Valid values: \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\"\u003e`basic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`advanced`\" pulumi-lang-dotnet=\"`Advanced`\" pulumi-lang-go=\"`advanced`\" pulumi-lang-python=\"`advanced`\" pulumi-lang-yaml=\"`advanced`\" pulumi-lang-java=\"`advanced`\"\u003e`advanced`\u003c/span\u003e.\n"},"domainNumbers":{"type":"string","description":"Number of domain names bound.\n"},"paymentType":{"type":"string"},"period":{"type":"integer","description":"Creating a pre-paid instance, it must be set, the unit is month, please enter an integer multiple of 12 for annually paid products.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period, the unit is month. When setting RenewalStatus to AutoRenewal, it must be set.\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`, `ManualRenewal`, default to `ManualRenewal`.\n"},"versionCode":{"type":"string","description":"Paid package version. Valid values: \u003cspan pulumi-lang-nodejs=\"`versionPersonal`\" pulumi-lang-dotnet=\"`VersionPersonal`\" pulumi-lang-go=\"`versionPersonal`\" pulumi-lang-python=\"`version_personal`\" pulumi-lang-yaml=\"`versionPersonal`\" pulumi-lang-java=\"`versionPersonal`\"\u003e`version_personal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionEnterpriseBasic`\" pulumi-lang-dotnet=\"`VersionEnterpriseBasic`\" pulumi-lang-go=\"`versionEnterpriseBasic`\" pulumi-lang-python=\"`version_enterprise_basic`\" pulumi-lang-yaml=\"`versionEnterpriseBasic`\" pulumi-lang-java=\"`versionEnterpriseBasic`\"\u003e`version_enterprise_basic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionEnterpriseAdvanced`\" pulumi-lang-dotnet=\"`VersionEnterpriseAdvanced`\" pulumi-lang-go=\"`versionEnterpriseAdvanced`\" pulumi-lang-python=\"`version_enterprise_advanced`\" pulumi-lang-yaml=\"`versionEnterpriseAdvanced`\" pulumi-lang-java=\"`versionEnterpriseAdvanced`\"\u003e`version_enterprise_advanced`\u003c/span\u003e.\n"},"versionName":{"type":"string","description":"Paid package version name.\n"}},"required":["dnsSecurity","domainNumbers","renewalStatus","versionCode","versionName"],"inputProperties":{"dnsSecurity":{"type":"string","description":"DNS security level. Valid values: \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\"\u003e`basic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`advanced`\" pulumi-lang-dotnet=\"`Advanced`\" pulumi-lang-go=\"`advanced`\" pulumi-lang-python=\"`advanced`\" pulumi-lang-yaml=\"`advanced`\" pulumi-lang-java=\"`advanced`\"\u003e`advanced`\u003c/span\u003e.\n","willReplaceOnChanges":true},"domainNumbers":{"type":"string","description":"Number of domain names bound.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","willReplaceOnChanges":true},"period":{"type":"integer","description":"Creating a pre-paid instance, it must be set, the unit is month, please enter an integer multiple of 12 for annually paid products.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period, the unit is month. When setting RenewalStatus to AutoRenewal, it must be set.\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`, `ManualRenewal`, default to `ManualRenewal`.\n","willReplaceOnChanges":true},"versionCode":{"type":"string","description":"Paid package version. Valid values: \u003cspan pulumi-lang-nodejs=\"`versionPersonal`\" pulumi-lang-dotnet=\"`VersionPersonal`\" pulumi-lang-go=\"`versionPersonal`\" pulumi-lang-python=\"`version_personal`\" pulumi-lang-yaml=\"`versionPersonal`\" pulumi-lang-java=\"`versionPersonal`\"\u003e`version_personal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionEnterpriseBasic`\" pulumi-lang-dotnet=\"`VersionEnterpriseBasic`\" pulumi-lang-go=\"`versionEnterpriseBasic`\" pulumi-lang-python=\"`version_enterprise_basic`\" pulumi-lang-yaml=\"`versionEnterpriseBasic`\" pulumi-lang-java=\"`versionEnterpriseBasic`\"\u003e`version_enterprise_basic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionEnterpriseAdvanced`\" pulumi-lang-dotnet=\"`VersionEnterpriseAdvanced`\" pulumi-lang-go=\"`versionEnterpriseAdvanced`\" pulumi-lang-python=\"`version_enterprise_advanced`\" pulumi-lang-yaml=\"`versionEnterpriseAdvanced`\" pulumi-lang-java=\"`versionEnterpriseAdvanced`\"\u003e`version_enterprise_advanced`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["dnsSecurity","domainNumbers","versionCode"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"dnsSecurity":{"type":"string","description":"DNS security level. Valid values: \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\"\u003e`basic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`advanced`\" pulumi-lang-dotnet=\"`Advanced`\" pulumi-lang-go=\"`advanced`\" pulumi-lang-python=\"`advanced`\" pulumi-lang-yaml=\"`advanced`\" pulumi-lang-java=\"`advanced`\"\u003e`advanced`\u003c/span\u003e.\n","willReplaceOnChanges":true},"domainNumbers":{"type":"string","description":"Number of domain names bound.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","willReplaceOnChanges":true},"period":{"type":"integer","description":"Creating a pre-paid instance, it must be set, the unit is month, please enter an integer multiple of 12 for annually paid products.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period, the unit is month. When setting RenewalStatus to AutoRenewal, it must be set.\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`, `ManualRenewal`, default to `ManualRenewal`.\n","willReplaceOnChanges":true},"versionCode":{"type":"string","description":"Paid package version. Valid values: \u003cspan pulumi-lang-nodejs=\"`versionPersonal`\" pulumi-lang-dotnet=\"`VersionPersonal`\" pulumi-lang-go=\"`versionPersonal`\" pulumi-lang-python=\"`version_personal`\" pulumi-lang-yaml=\"`versionPersonal`\" pulumi-lang-java=\"`versionPersonal`\"\u003e`version_personal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionEnterpriseBasic`\" pulumi-lang-dotnet=\"`VersionEnterpriseBasic`\" pulumi-lang-go=\"`versionEnterpriseBasic`\" pulumi-lang-python=\"`version_enterprise_basic`\" pulumi-lang-yaml=\"`versionEnterpriseBasic`\" pulumi-lang-java=\"`versionEnterpriseBasic`\"\u003e`version_enterprise_basic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionEnterpriseAdvanced`\" pulumi-lang-dotnet=\"`VersionEnterpriseAdvanced`\" pulumi-lang-go=\"`versionEnterpriseAdvanced`\" pulumi-lang-python=\"`version_enterprise_advanced`\" pulumi-lang-yaml=\"`versionEnterpriseAdvanced`\" pulumi-lang-java=\"`versionEnterpriseAdvanced`\"\u003e`version_enterprise_advanced`\u003c/span\u003e.\n","willReplaceOnChanges":true},"versionName":{"type":"string","description":"Paid package version name.\n"}},"type":"object"}},"alicloud:dns/monitorConfig:MonitorConfig":{"description":"Provides a DNS Monitor Config resource.\n\nFor information about DNS Monitor Config and how to use it, see [What is Monitor Config](https://www.alibabacloud.com/help/en/alibaba-cloud-dns/latest/api-alidns-2015-01-09-adddnsgtmmonitor).\n\n\u003e **NOTE:** Available since v1.153.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst domainName = config.get(\"domainName\") || \"alicloud-provider.com\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultAlarmContactGroup = new alicloud.cms.AlarmContactGroup(\"default\", {alarmContactGroupName: name});\nconst defaultGtmInstance = new alicloud.dns.GtmInstance(\"default\", {\n    instanceName: name,\n    paymentType: \"Subscription\",\n    period: 1,\n    renewalStatus: \"ManualRenewal\",\n    packageEdition: \"standard\",\n    healthCheckTaskCount: 100,\n    smsNotificationCount: 1000,\n    publicCnameMode: \"SYSTEM_ASSIGN\",\n    ttl: 60,\n    cnameType: \"PUBLIC\",\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n    alertGroups: [defaultAlarmContactGroup.alarmContactGroupName],\n    publicUserDomainName: domainName,\n    alertConfigs: [{\n        smsNotice: true,\n        noticeType: \"ADDR_ALERT\",\n        emailNotice: true,\n        dingtalkNotice: true,\n    }],\n});\nconst defaultAddressPool = new alicloud.dns.AddressPool(\"default\", {\n    addressPoolName: name,\n    instanceId: defaultGtmInstance.id,\n    lbaStrategy: \"RATIO\",\n    type: \"IPV4\",\n    addresses: [{\n        attributeInfo: \"{\\\"lineCodeRectifyType\\\":\\\"RECTIFIED\\\",\\\"lineCodes\\\":[\\\"os_namerica_us\\\"]}\",\n        remark: \"address_remark\",\n        address: \"1.1.1.1\",\n        mode: \"SMART\",\n        lbaWeight: 1,\n    }],\n});\nconst defaultMonitorConfig = new alicloud.dns.MonitorConfig(\"default\", {\n    addrPoolId: defaultAddressPool.id,\n    evaluationCount: 1,\n    interval: 60,\n    timeout: 5000,\n    protocolType: \"TCP\",\n    monitorExtendInfo: \"{\\\"failureRate\\\":50,\\\"port\\\":80}\",\n    ispCityNodes: [{\n        cityCode: \"503\",\n        ispCode: \"465\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndomain_name = config.get(\"domainName\")\nif domain_name is None:\n    domain_name = \"alicloud-provider.com\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_alarm_contact_group = alicloud.cms.AlarmContactGroup(\"default\", alarm_contact_group_name=name)\ndefault_gtm_instance = alicloud.dns.GtmInstance(\"default\",\n    instance_name=name,\n    payment_type=\"Subscription\",\n    period=1,\n    renewal_status=\"ManualRenewal\",\n    package_edition=\"standard\",\n    health_check_task_count=100,\n    sms_notification_count=1000,\n    public_cname_mode=\"SYSTEM_ASSIGN\",\n    ttl=60,\n    cname_type=\"PUBLIC\",\n    resource_group_id=default.groups[0].id,\n    alert_groups=[default_alarm_contact_group.alarm_contact_group_name],\n    public_user_domain_name=domain_name,\n    alert_configs=[{\n        \"sms_notice\": True,\n        \"notice_type\": \"ADDR_ALERT\",\n        \"email_notice\": True,\n        \"dingtalk_notice\": True,\n    }])\ndefault_address_pool = alicloud.dns.AddressPool(\"default\",\n    address_pool_name=name,\n    instance_id=default_gtm_instance.id,\n    lba_strategy=\"RATIO\",\n    type=\"IPV4\",\n    addresses=[{\n        \"attribute_info\": \"{\\\"lineCodeRectifyType\\\":\\\"RECTIFIED\\\",\\\"lineCodes\\\":[\\\"os_namerica_us\\\"]}\",\n        \"remark\": \"address_remark\",\n        \"address\": \"1.1.1.1\",\n        \"mode\": \"SMART\",\n        \"lba_weight\": 1,\n    }])\ndefault_monitor_config = alicloud.dns.MonitorConfig(\"default\",\n    addr_pool_id=default_address_pool.id,\n    evaluation_count=1,\n    interval=60,\n    timeout=5000,\n    protocol_type=\"TCP\",\n    monitor_extend_info=\"{\\\"failureRate\\\":50,\\\"port\\\":80}\",\n    isp_city_nodes=[{\n        \"city_code\": \"503\",\n        \"isp_code\": \"465\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var domainName = config.Get(\"domainName\") ?? \"alicloud-provider.com\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultAlarmContactGroup = new AliCloud.Cms.AlarmContactGroup(\"default\", new()\n    {\n        AlarmContactGroupName = name,\n    });\n\n    var defaultGtmInstance = new AliCloud.Dns.GtmInstance(\"default\", new()\n    {\n        InstanceName = name,\n        PaymentType = \"Subscription\",\n        Period = 1,\n        RenewalStatus = \"ManualRenewal\",\n        PackageEdition = \"standard\",\n        HealthCheckTaskCount = 100,\n        SmsNotificationCount = 1000,\n        PublicCnameMode = \"SYSTEM_ASSIGN\",\n        Ttl = 60,\n        CnameType = \"PUBLIC\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n        AlertGroups = new[]\n        {\n            defaultAlarmContactGroup.AlarmContactGroupName,\n        },\n        PublicUserDomainName = domainName,\n        AlertConfigs = new[]\n        {\n            new AliCloud.Dns.Inputs.GtmInstanceAlertConfigArgs\n            {\n                SmsNotice = true,\n                NoticeType = \"ADDR_ALERT\",\n                EmailNotice = true,\n                DingtalkNotice = true,\n            },\n        },\n    });\n\n    var defaultAddressPool = new AliCloud.Dns.AddressPool(\"default\", new()\n    {\n        AddressPoolName = name,\n        InstanceId = defaultGtmInstance.Id,\n        LbaStrategy = \"RATIO\",\n        Type = \"IPV4\",\n        Addresses = new[]\n        {\n            new AliCloud.Dns.Inputs.AddressPoolAddressArgs\n            {\n                AttributeInfo = \"{\\\"lineCodeRectifyType\\\":\\\"RECTIFIED\\\",\\\"lineCodes\\\":[\\\"os_namerica_us\\\"]}\",\n                Remark = \"address_remark\",\n                Address = \"1.1.1.1\",\n                Mode = \"SMART\",\n                LbaWeight = 1,\n            },\n        },\n    });\n\n    var defaultMonitorConfig = new AliCloud.Dns.MonitorConfig(\"default\", new()\n    {\n        AddrPoolId = defaultAddressPool.Id,\n        EvaluationCount = 1,\n        Interval = 60,\n        Timeout = 5000,\n        ProtocolType = \"TCP\",\n        MonitorExtendInfo = \"{\\\"failureRate\\\":50,\\\"port\\\":80}\",\n        IspCityNodes = new[]\n        {\n            new AliCloud.Dns.Inputs.MonitorConfigIspCityNodeArgs\n            {\n                CityCode = \"503\",\n                IspCode = \"465\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdomainName := \"alicloud-provider.com\"\n\t\tif param := cfg.Get(\"domainName\"); param != \"\" {\n\t\t\tdomainName = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAlarmContactGroup, err := cms.NewAlarmContactGroup(ctx, \"default\", \u0026cms.AlarmContactGroupArgs{\n\t\t\tAlarmContactGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGtmInstance, err := dns.NewGtmInstance(ctx, \"default\", \u0026dns.GtmInstanceArgs{\n\t\t\tInstanceName:         pulumi.String(name),\n\t\t\tPaymentType:          pulumi.String(\"Subscription\"),\n\t\t\tPeriod:               pulumi.Int(1),\n\t\t\tRenewalStatus:        pulumi.String(\"ManualRenewal\"),\n\t\t\tPackageEdition:       pulumi.String(\"standard\"),\n\t\t\tHealthCheckTaskCount: pulumi.Int(100),\n\t\t\tSmsNotificationCount: pulumi.Int(1000),\n\t\t\tPublicCnameMode:      pulumi.String(\"SYSTEM_ASSIGN\"),\n\t\t\tTtl:                  pulumi.Int(60),\n\t\t\tCnameType:            pulumi.String(\"PUBLIC\"),\n\t\t\tResourceGroupId:      pulumi.String(_default.Groups[0].Id),\n\t\t\tAlertGroups: pulumi.StringArray{\n\t\t\t\tdefaultAlarmContactGroup.AlarmContactGroupName,\n\t\t\t},\n\t\t\tPublicUserDomainName: pulumi.String(domainName),\n\t\t\tAlertConfigs: dns.GtmInstanceAlertConfigArray{\n\t\t\t\t\u0026dns.GtmInstanceAlertConfigArgs{\n\t\t\t\t\tSmsNotice:      pulumi.Bool(true),\n\t\t\t\t\tNoticeType:     pulumi.String(\"ADDR_ALERT\"),\n\t\t\t\t\tEmailNotice:    pulumi.Bool(true),\n\t\t\t\t\tDingtalkNotice: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAddressPool, err := dns.NewAddressPool(ctx, \"default\", \u0026dns.AddressPoolArgs{\n\t\t\tAddressPoolName: pulumi.String(name),\n\t\t\tInstanceId:      defaultGtmInstance.ID(),\n\t\t\tLbaStrategy:     pulumi.String(\"RATIO\"),\n\t\t\tType:            pulumi.String(\"IPV4\"),\n\t\t\tAddresses: dns.AddressPoolAddressArray{\n\t\t\t\t\u0026dns.AddressPoolAddressArgs{\n\t\t\t\t\tAttributeInfo: pulumi.String(\"{\\\"lineCodeRectifyType\\\":\\\"RECTIFIED\\\",\\\"lineCodes\\\":[\\\"os_namerica_us\\\"]}\"),\n\t\t\t\t\tRemark:        pulumi.String(\"address_remark\"),\n\t\t\t\t\tAddress:       pulumi.String(\"1.1.1.1\"),\n\t\t\t\t\tMode:          pulumi.String(\"SMART\"),\n\t\t\t\t\tLbaWeight:     pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewMonitorConfig(ctx, \"default\", \u0026dns.MonitorConfigArgs{\n\t\t\tAddrPoolId:        defaultAddressPool.ID(),\n\t\t\tEvaluationCount:   pulumi.Int(1),\n\t\t\tInterval:          pulumi.Int(60),\n\t\t\tTimeout:           pulumi.Int(5000),\n\t\t\tProtocolType:      pulumi.String(\"TCP\"),\n\t\t\tMonitorExtendInfo: pulumi.String(\"{\\\"failureRate\\\":50,\\\"port\\\":80}\"),\n\t\t\tIspCityNodes: dns.MonitorConfigIspCityNodeArray{\n\t\t\t\t\u0026dns.MonitorConfigIspCityNodeArgs{\n\t\t\t\t\tCityCode: pulumi.String(\"503\"),\n\t\t\t\t\tIspCode:  pulumi.String(\"465\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.cms.AlarmContactGroup;\nimport com.pulumi.alicloud.cms.AlarmContactGroupArgs;\nimport com.pulumi.alicloud.dns.GtmInstance;\nimport com.pulumi.alicloud.dns.GtmInstanceArgs;\nimport com.pulumi.alicloud.dns.inputs.GtmInstanceAlertConfigArgs;\nimport com.pulumi.alicloud.dns.AddressPool;\nimport com.pulumi.alicloud.dns.AddressPoolArgs;\nimport com.pulumi.alicloud.dns.inputs.AddressPoolAddressArgs;\nimport com.pulumi.alicloud.dns.MonitorConfig;\nimport com.pulumi.alicloud.dns.MonitorConfigArgs;\nimport com.pulumi.alicloud.dns.inputs.MonitorConfigIspCityNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var domainName = config.get(\"domainName\").orElse(\"alicloud-provider.com\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultAlarmContactGroup = new AlarmContactGroup(\"defaultAlarmContactGroup\", AlarmContactGroupArgs.builder()\n            .alarmContactGroupName(name)\n            .build());\n\n        var defaultGtmInstance = new GtmInstance(\"defaultGtmInstance\", GtmInstanceArgs.builder()\n            .instanceName(name)\n            .paymentType(\"Subscription\")\n            .period(1)\n            .renewalStatus(\"ManualRenewal\")\n            .packageEdition(\"standard\")\n            .healthCheckTaskCount(100)\n            .smsNotificationCount(1000)\n            .publicCnameMode(\"SYSTEM_ASSIGN\")\n            .ttl(60)\n            .cnameType(\"PUBLIC\")\n            .resourceGroupId(default_.groups()[0].id())\n            .alertGroups(defaultAlarmContactGroup.alarmContactGroupName())\n            .publicUserDomainName(domainName)\n            .alertConfigs(GtmInstanceAlertConfigArgs.builder()\n                .smsNotice(true)\n                .noticeType(\"ADDR_ALERT\")\n                .emailNotice(true)\n                .dingtalkNotice(true)\n                .build())\n            .build());\n\n        var defaultAddressPool = new AddressPool(\"defaultAddressPool\", AddressPoolArgs.builder()\n            .addressPoolName(name)\n            .instanceId(defaultGtmInstance.id())\n            .lbaStrategy(\"RATIO\")\n            .type(\"IPV4\")\n            .addresses(AddressPoolAddressArgs.builder()\n                .attributeInfo(\"{\\\"lineCodeRectifyType\\\":\\\"RECTIFIED\\\",\\\"lineCodes\\\":[\\\"os_namerica_us\\\"]}\")\n                .remark(\"address_remark\")\n                .address(\"1.1.1.1\")\n                .mode(\"SMART\")\n                .lbaWeight(1)\n                .build())\n            .build());\n\n        var defaultMonitorConfig = new MonitorConfig(\"defaultMonitorConfig\", MonitorConfigArgs.builder()\n            .addrPoolId(defaultAddressPool.id())\n            .evaluationCount(1)\n            .interval(60)\n            .timeout(5000)\n            .protocolType(\"TCP\")\n            .monitorExtendInfo(\"{\\\"failureRate\\\":50,\\\"port\\\":80}\")\n            .ispCityNodes(MonitorConfigIspCityNodeArgs.builder()\n                .cityCode(\"503\")\n                .ispCode(\"465\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\n  domainName:\n    type: string\n    default: alicloud-provider.com\nresources:\n  defaultAlarmContactGroup:\n    type: alicloud:cms:AlarmContactGroup\n    name: default\n    properties:\n      alarmContactGroupName: ${name}\n  defaultGtmInstance:\n    type: alicloud:dns:GtmInstance\n    name: default\n    properties:\n      instanceName: ${name}\n      paymentType: Subscription\n      period: 1\n      renewalStatus: ManualRenewal\n      packageEdition: standard\n      healthCheckTaskCount: 100\n      smsNotificationCount: 1000\n      publicCnameMode: SYSTEM_ASSIGN\n      ttl: 60\n      cnameType: PUBLIC\n      resourceGroupId: ${default.groups[0].id}\n      alertGroups:\n        - ${defaultAlarmContactGroup.alarmContactGroupName}\n      publicUserDomainName: ${domainName}\n      alertConfigs:\n        - smsNotice: true\n          noticeType: ADDR_ALERT\n          emailNotice: true\n          dingtalkNotice: true\n  defaultAddressPool:\n    type: alicloud:dns:AddressPool\n    name: default\n    properties:\n      addressPoolName: ${name}\n      instanceId: ${defaultGtmInstance.id}\n      lbaStrategy: RATIO\n      type: IPV4\n      addresses:\n        - attributeInfo: '{\"lineCodeRectifyType\":\"RECTIFIED\",\"lineCodes\":[\"os_namerica_us\"]}'\n          remark: address_remark\n          address: 1.1.1.1\n          mode: SMART\n          lbaWeight: 1\n  defaultMonitorConfig:\n    type: alicloud:dns:MonitorConfig\n    name: default\n    properties:\n      addrPoolId: ${defaultAddressPool.id}\n      evaluationCount: '1'\n      interval: '60'\n      timeout: '5000'\n      protocolType: TCP\n      monitorExtendInfo: '{\"failureRate\":50,\"port\":80}'\n      ispCityNodes:\n        - cityCode: '503'\n          ispCode: '465'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDNS Monitor Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dns/monitorConfig:MonitorConfig example \u003cid\u003e\n```\n\n","properties":{"addrPoolId":{"type":"string","description":"The ID of the address pool.\n"},"evaluationCount":{"type":"integer","description":"The number of consecutive times of failed health check attempts. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"interval":{"type":"integer","description":"The health check interval. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"ispCityNodes":{"type":"array","items":{"$ref":"#/types/alicloud:dns/MonitorConfigIspCityNode:MonitorConfigIspCityNode"},"description":"The Monitoring node. See \u003cspan pulumi-lang-nodejs=\"`ispCityNode`\" pulumi-lang-dotnet=\"`IspCityNode`\" pulumi-lang-go=\"`ispCityNode`\" pulumi-lang-python=\"`isp_city_node`\" pulumi-lang-yaml=\"`ispCityNode`\" pulumi-lang-java=\"`ispCityNode`\"\u003e`isp_city_node`\u003c/span\u003e below for details.\n"},"lang":{"type":"string","description":"The lang.\n"},"monitorExtendInfo":{"type":"string","description":"The extended information. This value follows the json format. For more details, see the [description of MonitorExtendInfo in the Request parameters table for details](https://www.alibabacloud.com/help/en/alibaba-cloud-dns/latest/api-alidns-2015-01-09-adddnsgtmmonitor).\n"},"protocolType":{"type":"string","description":"The health check protocol. Valid values: `HTTP`, `HTTPS`, `PING`, `TCP`.\n"},"timeout":{"type":"integer","description":"The timeout period. Unit: milliseconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3000`\" pulumi-lang-dotnet=\"`3000`\" pulumi-lang-go=\"`3000`\" pulumi-lang-python=\"`3000`\" pulumi-lang-yaml=\"`3000`\" pulumi-lang-java=\"`3000`\"\u003e`3000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5000`\" pulumi-lang-dotnet=\"`5000`\" pulumi-lang-go=\"`5000`\" pulumi-lang-python=\"`5000`\" pulumi-lang-yaml=\"`5000`\" pulumi-lang-java=\"`5000`\"\u003e`5000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`10000`\" pulumi-lang-dotnet=\"`10000`\" pulumi-lang-go=\"`10000`\" pulumi-lang-python=\"`10000`\" pulumi-lang-yaml=\"`10000`\" pulumi-lang-java=\"`10000`\"\u003e`10000`\u003c/span\u003e.\n"}},"required":["addrPoolId","evaluationCount","interval","ispCityNodes","monitorExtendInfo","protocolType","timeout"],"inputProperties":{"addrPoolId":{"type":"string","description":"The ID of the address pool.\n","willReplaceOnChanges":true},"evaluationCount":{"type":"integer","description":"The number of consecutive times of failed health check attempts. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"interval":{"type":"integer","description":"The health check interval. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"ispCityNodes":{"type":"array","items":{"$ref":"#/types/alicloud:dns/MonitorConfigIspCityNode:MonitorConfigIspCityNode"},"description":"The Monitoring node. See \u003cspan pulumi-lang-nodejs=\"`ispCityNode`\" pulumi-lang-dotnet=\"`IspCityNode`\" pulumi-lang-go=\"`ispCityNode`\" pulumi-lang-python=\"`isp_city_node`\" pulumi-lang-yaml=\"`ispCityNode`\" pulumi-lang-java=\"`ispCityNode`\"\u003e`isp_city_node`\u003c/span\u003e below for details.\n"},"lang":{"type":"string","description":"The lang.\n"},"monitorExtendInfo":{"type":"string","description":"The extended information. This value follows the json format. For more details, see the [description of MonitorExtendInfo in the Request parameters table for details](https://www.alibabacloud.com/help/en/alibaba-cloud-dns/latest/api-alidns-2015-01-09-adddnsgtmmonitor).\n"},"protocolType":{"type":"string","description":"The health check protocol. Valid values: `HTTP`, `HTTPS`, `PING`, `TCP`.\n"},"timeout":{"type":"integer","description":"The timeout period. Unit: milliseconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3000`\" pulumi-lang-dotnet=\"`3000`\" pulumi-lang-go=\"`3000`\" pulumi-lang-python=\"`3000`\" pulumi-lang-yaml=\"`3000`\" pulumi-lang-java=\"`3000`\"\u003e`3000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5000`\" pulumi-lang-dotnet=\"`5000`\" pulumi-lang-go=\"`5000`\" pulumi-lang-python=\"`5000`\" pulumi-lang-yaml=\"`5000`\" pulumi-lang-java=\"`5000`\"\u003e`5000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`10000`\" pulumi-lang-dotnet=\"`10000`\" pulumi-lang-go=\"`10000`\" pulumi-lang-python=\"`10000`\" pulumi-lang-yaml=\"`10000`\" pulumi-lang-java=\"`10000`\"\u003e`10000`\u003c/span\u003e.\n"}},"requiredInputs":["addrPoolId","evaluationCount","interval","ispCityNodes","monitorExtendInfo","protocolType","timeout"],"stateInputs":{"description":"Input properties used for looking up and filtering MonitorConfig resources.\n","properties":{"addrPoolId":{"type":"string","description":"The ID of the address pool.\n","willReplaceOnChanges":true},"evaluationCount":{"type":"integer","description":"The number of consecutive times of failed health check attempts. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"interval":{"type":"integer","description":"The health check interval. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"ispCityNodes":{"type":"array","items":{"$ref":"#/types/alicloud:dns/MonitorConfigIspCityNode:MonitorConfigIspCityNode"},"description":"The Monitoring node. See \u003cspan pulumi-lang-nodejs=\"`ispCityNode`\" pulumi-lang-dotnet=\"`IspCityNode`\" pulumi-lang-go=\"`ispCityNode`\" pulumi-lang-python=\"`isp_city_node`\" pulumi-lang-yaml=\"`ispCityNode`\" pulumi-lang-java=\"`ispCityNode`\"\u003e`isp_city_node`\u003c/span\u003e below for details.\n"},"lang":{"type":"string","description":"The lang.\n"},"monitorExtendInfo":{"type":"string","description":"The extended information. This value follows the json format. For more details, see the [description of MonitorExtendInfo in the Request parameters table for details](https://www.alibabacloud.com/help/en/alibaba-cloud-dns/latest/api-alidns-2015-01-09-adddnsgtmmonitor).\n"},"protocolType":{"type":"string","description":"The health check protocol. Valid values: `HTTP`, `HTTPS`, `PING`, `TCP`.\n"},"timeout":{"type":"integer","description":"The timeout period. Unit: milliseconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3000`\" pulumi-lang-dotnet=\"`3000`\" pulumi-lang-go=\"`3000`\" pulumi-lang-python=\"`3000`\" pulumi-lang-yaml=\"`3000`\" pulumi-lang-java=\"`3000`\"\u003e`3000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5000`\" pulumi-lang-dotnet=\"`5000`\" pulumi-lang-go=\"`5000`\" pulumi-lang-python=\"`5000`\" pulumi-lang-yaml=\"`5000`\" pulumi-lang-java=\"`5000`\"\u003e`5000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`10000`\" pulumi-lang-dotnet=\"`10000`\" pulumi-lang-go=\"`10000`\" pulumi-lang-python=\"`10000`\" pulumi-lang-yaml=\"`10000`\" pulumi-lang-java=\"`10000`\"\u003e`10000`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:dns/record:Record":{"description":"Provides a DNS Record resource.\n\n\u003e **DEPRECATED:**  This resource  has been deprecated from version `1.85.0`. Please use new resource alicloud_alidns_record.\n\n\u003e **NOTE:** When the site is an international site, the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e neither supports `REDIRECT_URL` nor `REDIRECT_URL`\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Create a new Domain record\nconst record = new alicloud.dns.Record(\"record\", {\n    name: \"domainname\",\n    hostRecord: \"@\",\n    type: \"A\",\n    value: \"192.168.99.99\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Create a new Domain record\nrecord = alicloud.dns.Record(\"record\",\n    name=\"domainname\",\n    host_record=\"@\",\n    type=\"A\",\n    value=\"192.168.99.99\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new Domain record\n    var record = new AliCloud.Dns.Record(\"record\", new()\n    {\n        Name = \"domainname\",\n        HostRecord = \"@\",\n        Type = \"A\",\n        Value = \"192.168.99.99\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new Domain record\n\t\t_, err := dns.NewRecord(ctx, \"record\", \u0026dns.RecordArgs{\n\t\t\tName:       pulumi.String(\"domainname\"),\n\t\t\tHostRecord: pulumi.String(\"@\"),\n\t\t\tType:       pulumi.String(\"A\"),\n\t\t\tValue:      pulumi.String(\"192.168.99.99\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.Record;\nimport com.pulumi.alicloud.dns.RecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new Domain record\n        var record = new Record(\"record\", RecordArgs.builder()\n            .name(\"domainname\")\n            .hostRecord(\"@\")\n            .type(\"A\")\n            .value(\"192.168.99.99\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new Domain record\n  record:\n    type: alicloud:dns:Record\n    properties:\n      name: domainname\n      hostRecord: '@'\n      type: A\n      value: 192.168.99.99\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS record can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dns/record:Record example \u003cid\u003e\n```\n\n","properties":{"hostRecord":{"type":"string","description":"Host record for the domain record. This\u003cspan pulumi-lang-nodejs=\" hostRecord \" pulumi-lang-dotnet=\" HostRecord \" pulumi-lang-go=\" hostRecord \" pulumi-lang-python=\" host_record \" pulumi-lang-yaml=\" hostRecord \" pulumi-lang-java=\" hostRecord \"\u003e host_record \u003c/span\u003ecan have at most 253 characters, and each part split with \".\" can have at most 63 characters, and must contain only alphanumeric characters or hyphens, such as \"-\",\".\",\"*\",\"@\",  and must not begin or end with \"-\".\n"},"locked":{"type":"boolean"},"name":{"type":"string","description":"Name of the domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n"},"priority":{"type":"integer","description":"The priority of domain record. Valid values are `[1-10]`. When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `MX`, this parameter is required.\n"},"routing":{"type":"string","description":"The resolution line of domain record. Valid values are \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`telecom`\" pulumi-lang-dotnet=\"`Telecom`\" pulumi-lang-go=\"`telecom`\" pulumi-lang-python=\"`telecom`\" pulumi-lang-yaml=\"`telecom`\" pulumi-lang-java=\"`telecom`\"\u003e`telecom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unicom`\" pulumi-lang-dotnet=\"`Unicom`\" pulumi-lang-go=\"`unicom`\" pulumi-lang-python=\"`unicom`\" pulumi-lang-yaml=\"`unicom`\" pulumi-lang-java=\"`unicom`\"\u003e`unicom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mobile`\" pulumi-lang-dotnet=\"`Mobile`\" pulumi-lang-go=\"`mobile`\" pulumi-lang-python=\"`mobile`\" pulumi-lang-yaml=\"`mobile`\" pulumi-lang-java=\"`mobile`\"\u003e`mobile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oversea`\" pulumi-lang-dotnet=\"`Oversea`\" pulumi-lang-go=\"`oversea`\" pulumi-lang-python=\"`oversea`\" pulumi-lang-yaml=\"`oversea`\" pulumi-lang-java=\"`oversea`\"\u003e`oversea`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`edu`\" pulumi-lang-dotnet=\"`Edu`\" pulumi-lang-go=\"`edu`\" pulumi-lang-python=\"`edu`\" pulumi-lang-yaml=\"`edu`\" pulumi-lang-java=\"`edu`\"\u003e`edu`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drpeng`\" pulumi-lang-dotnet=\"`Drpeng`\" pulumi-lang-go=\"`drpeng`\" pulumi-lang-python=\"`drpeng`\" pulumi-lang-yaml=\"`drpeng`\" pulumi-lang-java=\"`drpeng`\"\u003e`drpeng`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`btvn`\" pulumi-lang-dotnet=\"`Btvn`\" pulumi-lang-go=\"`btvn`\" pulumi-lang-python=\"`btvn`\" pulumi-lang-yaml=\"`btvn`\" pulumi-lang-java=\"`btvn`\"\u003e`btvn`\u003c/span\u003e, .etc. When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `FORWORD_URL`, this parameter must be \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. For checking all resolution lines enumeration please visit [Alibaba Cloud DNS doc](https://www.alibabacloud.com/help/en/alibaba-cloud-dns/latest/what-is-alibaba-cloud-dns) or using\u003cspan pulumi-lang-nodejs=\" alicloud.dns.getResolutionLines \" pulumi-lang-dotnet=\" alicloud.dns.getResolutionLines \" pulumi-lang-go=\" dns.getResolutionLines \" pulumi-lang-python=\" dns_get_resolution_lines \" pulumi-lang-yaml=\" alicloud.dns.getResolutionLines \" pulumi-lang-java=\" alicloud.dns.getResolutionLines \"\u003e alicloud.dns.getResolutionLines \u003c/span\u003ein data source to get the value.\n"},"status":{"type":"string","description":"The record status. `Enable` or `Disable`.\n* `Locked` - The record locked state. \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ttl":{"type":"integer","description":"The effective time of domain record. Its scope depends on the edition of the cloud resolution. Free is `[600, 86400]`, Basic is `[120, 86400]`, Standard is `[60, 86400]`, Ultimate is `[10, 86400]`, Exclusive is `[1, 86400]`. Default value is \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of domain record. Valid values are `A`,`NS`,`MX`,`TXT`,`CNAME`,`SRV`,`AAAA`,`CAA`, `REDIRECT_URL` and `FORWORD_URL`.\n"},"value":{"type":"string","description":"The value of domain record, When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `MX`,`NS`,`CNAME`,`SRV`, the server will treat the \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e as a fully qualified domain name, so it's no need to add a `.` at the end.\n"}},"required":["hostRecord","locked","name","status","type","value"],"inputProperties":{"hostRecord":{"type":"string","description":"Host record for the domain record. This\u003cspan pulumi-lang-nodejs=\" hostRecord \" pulumi-lang-dotnet=\" HostRecord \" pulumi-lang-go=\" hostRecord \" pulumi-lang-python=\" host_record \" pulumi-lang-yaml=\" hostRecord \" pulumi-lang-java=\" hostRecord \"\u003e host_record \u003c/span\u003ecan have at most 253 characters, and each part split with \".\" can have at most 63 characters, and must contain only alphanumeric characters or hyphens, such as \"-\",\".\",\"*\",\"@\",  and must not begin or end with \"-\".\n"},"name":{"type":"string","description":"Name of the domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n"},"priority":{"type":"integer","description":"The priority of domain record. Valid values are `[1-10]`. When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `MX`, this parameter is required.\n"},"routing":{"type":"string","description":"The resolution line of domain record. Valid values are \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`telecom`\" pulumi-lang-dotnet=\"`Telecom`\" pulumi-lang-go=\"`telecom`\" pulumi-lang-python=\"`telecom`\" pulumi-lang-yaml=\"`telecom`\" pulumi-lang-java=\"`telecom`\"\u003e`telecom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unicom`\" pulumi-lang-dotnet=\"`Unicom`\" pulumi-lang-go=\"`unicom`\" pulumi-lang-python=\"`unicom`\" pulumi-lang-yaml=\"`unicom`\" pulumi-lang-java=\"`unicom`\"\u003e`unicom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mobile`\" pulumi-lang-dotnet=\"`Mobile`\" pulumi-lang-go=\"`mobile`\" pulumi-lang-python=\"`mobile`\" pulumi-lang-yaml=\"`mobile`\" pulumi-lang-java=\"`mobile`\"\u003e`mobile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oversea`\" pulumi-lang-dotnet=\"`Oversea`\" pulumi-lang-go=\"`oversea`\" pulumi-lang-python=\"`oversea`\" pulumi-lang-yaml=\"`oversea`\" pulumi-lang-java=\"`oversea`\"\u003e`oversea`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`edu`\" pulumi-lang-dotnet=\"`Edu`\" pulumi-lang-go=\"`edu`\" pulumi-lang-python=\"`edu`\" pulumi-lang-yaml=\"`edu`\" pulumi-lang-java=\"`edu`\"\u003e`edu`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drpeng`\" pulumi-lang-dotnet=\"`Drpeng`\" pulumi-lang-go=\"`drpeng`\" pulumi-lang-python=\"`drpeng`\" pulumi-lang-yaml=\"`drpeng`\" pulumi-lang-java=\"`drpeng`\"\u003e`drpeng`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`btvn`\" pulumi-lang-dotnet=\"`Btvn`\" pulumi-lang-go=\"`btvn`\" pulumi-lang-python=\"`btvn`\" pulumi-lang-yaml=\"`btvn`\" pulumi-lang-java=\"`btvn`\"\u003e`btvn`\u003c/span\u003e, .etc. When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `FORWORD_URL`, this parameter must be \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. For checking all resolution lines enumeration please visit [Alibaba Cloud DNS doc](https://www.alibabacloud.com/help/en/alibaba-cloud-dns/latest/what-is-alibaba-cloud-dns) or using\u003cspan pulumi-lang-nodejs=\" alicloud.dns.getResolutionLines \" pulumi-lang-dotnet=\" alicloud.dns.getResolutionLines \" pulumi-lang-go=\" dns.getResolutionLines \" pulumi-lang-python=\" dns_get_resolution_lines \" pulumi-lang-yaml=\" alicloud.dns.getResolutionLines \" pulumi-lang-java=\" alicloud.dns.getResolutionLines \"\u003e alicloud.dns.getResolutionLines \u003c/span\u003ein data source to get the value.\n"},"ttl":{"type":"integer","description":"The effective time of domain record. Its scope depends on the edition of the cloud resolution. Free is `[600, 86400]`, Basic is `[120, 86400]`, Standard is `[60, 86400]`, Ultimate is `[10, 86400]`, Exclusive is `[1, 86400]`. Default value is \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of domain record. Valid values are `A`,`NS`,`MX`,`TXT`,`CNAME`,`SRV`,`AAAA`,`CAA`, `REDIRECT_URL` and `FORWORD_URL`.\n"},"value":{"type":"string","description":"The value of domain record, When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `MX`,`NS`,`CNAME`,`SRV`, the server will treat the \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e as a fully qualified domain name, so it's no need to add a `.` at the end.\n"}},"requiredInputs":["hostRecord","type","value"],"stateInputs":{"description":"Input properties used for looking up and filtering Record resources.\n","properties":{"hostRecord":{"type":"string","description":"Host record for the domain record. This\u003cspan pulumi-lang-nodejs=\" hostRecord \" pulumi-lang-dotnet=\" HostRecord \" pulumi-lang-go=\" hostRecord \" pulumi-lang-python=\" host_record \" pulumi-lang-yaml=\" hostRecord \" pulumi-lang-java=\" hostRecord \"\u003e host_record \u003c/span\u003ecan have at most 253 characters, and each part split with \".\" can have at most 63 characters, and must contain only alphanumeric characters or hyphens, such as \"-\",\".\",\"*\",\"@\",  and must not begin or end with \"-\".\n"},"locked":{"type":"boolean"},"name":{"type":"string","description":"Name of the domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n"},"priority":{"type":"integer","description":"The priority of domain record. Valid values are `[1-10]`. When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `MX`, this parameter is required.\n"},"routing":{"type":"string","description":"The resolution line of domain record. Valid values are \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`telecom`\" pulumi-lang-dotnet=\"`Telecom`\" pulumi-lang-go=\"`telecom`\" pulumi-lang-python=\"`telecom`\" pulumi-lang-yaml=\"`telecom`\" pulumi-lang-java=\"`telecom`\"\u003e`telecom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unicom`\" pulumi-lang-dotnet=\"`Unicom`\" pulumi-lang-go=\"`unicom`\" pulumi-lang-python=\"`unicom`\" pulumi-lang-yaml=\"`unicom`\" pulumi-lang-java=\"`unicom`\"\u003e`unicom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mobile`\" pulumi-lang-dotnet=\"`Mobile`\" pulumi-lang-go=\"`mobile`\" pulumi-lang-python=\"`mobile`\" pulumi-lang-yaml=\"`mobile`\" pulumi-lang-java=\"`mobile`\"\u003e`mobile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oversea`\" pulumi-lang-dotnet=\"`Oversea`\" pulumi-lang-go=\"`oversea`\" pulumi-lang-python=\"`oversea`\" pulumi-lang-yaml=\"`oversea`\" pulumi-lang-java=\"`oversea`\"\u003e`oversea`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`edu`\" pulumi-lang-dotnet=\"`Edu`\" pulumi-lang-go=\"`edu`\" pulumi-lang-python=\"`edu`\" pulumi-lang-yaml=\"`edu`\" pulumi-lang-java=\"`edu`\"\u003e`edu`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drpeng`\" pulumi-lang-dotnet=\"`Drpeng`\" pulumi-lang-go=\"`drpeng`\" pulumi-lang-python=\"`drpeng`\" pulumi-lang-yaml=\"`drpeng`\" pulumi-lang-java=\"`drpeng`\"\u003e`drpeng`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`btvn`\" pulumi-lang-dotnet=\"`Btvn`\" pulumi-lang-go=\"`btvn`\" pulumi-lang-python=\"`btvn`\" pulumi-lang-yaml=\"`btvn`\" pulumi-lang-java=\"`btvn`\"\u003e`btvn`\u003c/span\u003e, .etc. When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `FORWORD_URL`, this parameter must be \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. For checking all resolution lines enumeration please visit [Alibaba Cloud DNS doc](https://www.alibabacloud.com/help/en/alibaba-cloud-dns/latest/what-is-alibaba-cloud-dns) or using\u003cspan pulumi-lang-nodejs=\" alicloud.dns.getResolutionLines \" pulumi-lang-dotnet=\" alicloud.dns.getResolutionLines \" pulumi-lang-go=\" dns.getResolutionLines \" pulumi-lang-python=\" dns_get_resolution_lines \" pulumi-lang-yaml=\" alicloud.dns.getResolutionLines \" pulumi-lang-java=\" alicloud.dns.getResolutionLines \"\u003e alicloud.dns.getResolutionLines \u003c/span\u003ein data source to get the value.\n"},"status":{"type":"string","description":"The record status. `Enable` or `Disable`.\n* `Locked` - The record locked state. \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ttl":{"type":"integer","description":"The effective time of domain record. Its scope depends on the edition of the cloud resolution. Free is `[600, 86400]`, Basic is `[120, 86400]`, Standard is `[60, 86400]`, Ultimate is `[10, 86400]`, Exclusive is `[1, 86400]`. Default value is \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of domain record. Valid values are `A`,`NS`,`MX`,`TXT`,`CNAME`,`SRV`,`AAAA`,`CAA`, `REDIRECT_URL` and `FORWORD_URL`.\n"},"value":{"type":"string","description":"The value of domain record, When the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `MX`,`NS`,`CNAME`,`SRV`, the server will treat the \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e as a fully qualified domain name, so it's no need to add a `.` at the end.\n"}},"type":"object"}},"alicloud:drds/instance:Instance":{"description":"Distributed Relational Database Service (DRDS) is a lightweight (stateless), flexible, stable, and efficient middleware product independently developed by Alibaba Group to resolve scalability issues with single-host relational databases.\nWith its compatibility with MySQL protocols and syntaxes, DRDS enables database/table sharding, smooth scaling, configuration upgrade/downgrade,\ntransparent read/write splitting, and distributed transactions, providing O\u0026M capabilities for distributed databases throughout their entire lifecycle.\n\nFor information about DRDS and how to use it, see [What is DRDS](https://www.alibabacloud.com/help/product/29657.htm).\n\n\u003e **NOTE:** Available since v1.24.0.\n\n\u003e **NOTE:** At present, DRDS instance only can be supported in the regions: cn-shenzhen, cn-beijing, cn-hangzhou, cn-hongkong, cn-qingdao, ap-southeast-1.\n\n\u003e **NOTE:** Currently, this resource only support `Domestic Site Account`.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst config = new pulumi.Config();\nconst instanceSeries = config.get(\"instanceSeries\") || \"drds.sn1.4c8g\";\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"default-NODELETING\",\n});\nconst defaultGetSwitches = defaultGetNetworks.then(defaultGetNetworks =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n}));\nconst defaultInstance = new alicloud.drds.Instance(\"default\", {\n    description: \"drds instance\",\n    instanceChargeType: \"PostPaid\",\n    zoneId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.zoneId),\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.id),\n    instanceSeries: instanceSeries,\n    specification: \"drds.sn1.4c8g.8C16G\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nconfig = pulumi.Config()\ninstance_series = config.get(\"instanceSeries\")\nif instance_series is None:\n    instance_series = \"drds.sn1.4c8g\"\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"default-NODELETING\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.drds.Instance(\"default\",\n    description=\"drds instance\",\n    instance_charge_type=\"PostPaid\",\n    zone_id=default_get_switches.vswitches[0].zone_id,\n    vswitch_id=default_get_switches.vswitches[0].id,\n    instance_series=instance_series,\n    specification=\"drds.sn1.4c8g.8C16G\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var config = new Config();\n    var instanceSeries = config.Get(\"instanceSeries\") ?? \"drds.sn1.4c8g\";\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"default-NODELETING\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.Drds.Instance(\"default\", new()\n    {\n        Description = \"drds instance\",\n        InstanceChargeType = \"PostPaid\",\n        ZoneId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.ZoneId),\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.Id),\n        InstanceSeries = instanceSeries,\n        Specification = \"drds.sn1.4c8g.8C16G\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/drds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceSeries := \"drds.sn1.4c8g\"\n\t\tif param := cfg.Get(\"instanceSeries\"); param != \"\" {\n\t\t\tinstanceSeries = param\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"default-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId: pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = drds.NewInstance(ctx, \"default\", \u0026drds.InstanceArgs{\n\t\t\tDescription:        pulumi.String(\"drds instance\"),\n\t\t\tInstanceChargeType: pulumi.String(\"PostPaid\"),\n\t\t\tZoneId:             pulumi.String(defaultGetSwitches.Vswitches[0].ZoneId),\n\t\t\tVswitchId:          pulumi.String(defaultGetSwitches.Vswitches[0].Id),\n\t\t\tInstanceSeries:     pulumi.String(instanceSeries),\n\t\t\tSpecification:      pulumi.String(\"drds.sn1.4c8g.8C16G\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.drds.Instance;\nimport com.pulumi.alicloud.drds.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var instanceSeries = config.get(\"instanceSeries\").orElse(\"drds.sn1.4c8g\");\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"default-NODELETING\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .description(\"drds instance\")\n            .instanceChargeType(\"PostPaid\")\n            .zoneId(defaultGetSwitches.vswitches()[0].zoneId())\n            .vswitchId(defaultGetSwitches.vswitches()[0].id())\n            .instanceSeries(instanceSeries)\n            .specification(\"drds.sn1.4c8g.8C16G\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceSeries:\n    type: string\n    default: drds.sn1.4c8g\nresources:\n  defaultInstance:\n    type: alicloud:drds:Instance\n    name: default\n    properties:\n      description: drds instance\n      instanceChargeType: PostPaid\n      zoneId: ${defaultGetSwitches.vswitches[0].zoneId}\n      vswitchId: ${defaultGetSwitches.vswitches[0].id}\n      instanceSeries: ${instanceSeries}\n      specification: drds.sn1.4c8g.8C16G\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: default-NODELETING\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDistributed Relational Database Service (DRDS) can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:drds/instance:Instance example drds-abc123456\n```\n\n","properties":{"connectionString":{"type":"string","description":"(Available since v1.196.0) The connection string of the DRDS instance.\n"},"description":{"type":"string","description":"Description of the DRDS instance, This description can have a string of 2 to 256 characters.\n"},"instanceChargeType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`, Default to `PostPaid`.\n"},"instanceSeries":{"type":"string","description":"The parameter of the instance series. **NOTE:**  `drds.sn1.4c8g`,`drds.sn1.8c16g`,`drds.sn1.16c32g`,`drds.sn1.32c64g` are no longer supported. Valid values:\n- `drds.sn2.4c16g` Starter Edition.\n- `drds.sn2.8c32g` Standard Edition.\n- `drds.sn2.16c64g` Enterprise Edition.\n"},"mysqlVersion":{"type":"integer","description":"The MySQL version supported by the instance, with the following range of values. \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e: Fully compatible with MySQL 5.x (default) \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e: Fully compatible with MySQL 8.0. This parameter takes effect when the primary instance is created, and the read-only instance has the same MySQL version as the primary instance by default.\n"},"port":{"type":"string","description":"(Available since v1.196.0) The connection port of the DRDS instance.\n"},"specification":{"type":"string","description":"User-defined DRDS instance specification. Value range:\n- `drds.sn1.4c8g` for DRDS instance Starter version;\n- value range : `drds.sn1.4c8g.8c16g`, `drds.sn1.4c8g.16c32g`, `drds.sn1.4c8g.32c64g`, `drds.sn1.4c8g.64c128g`\n- `drds.sn1.8c16g` for DRDS instance Standard edition;\n- value range : `drds.sn1.8c16g.16c32g`, `drds.sn1.8c16g.32c64g`, `drds.sn1.8c16g.64c128g`\n- `drds.sn1.16c32g` for DRDS instance Enterprise Edition;\n- value range : `drds.sn1.16c32g.32c64g`, `drds.sn1.16c32g.64c128g`\n- `drds.sn1.32c64g` for DRDS instance Extreme Edition;\n- value range : `drds.sn1.32c64g.128c256g`\n"},"vpcId":{"type":"string","description":"The id of the VPC.\n"},"vswitchId":{"type":"string","description":"The VSwitch ID to launch in.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DRDS instance.\n"}},"required":["connectionString","description","instanceSeries","mysqlVersion","port","specification","vpcId","vswitchId","zoneId"],"inputProperties":{"description":{"type":"string","description":"Description of the DRDS instance, This description can have a string of 2 to 256 characters.\n"},"instanceChargeType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`, Default to `PostPaid`.\n","willReplaceOnChanges":true},"instanceSeries":{"type":"string","description":"The parameter of the instance series. **NOTE:**  `drds.sn1.4c8g`,`drds.sn1.8c16g`,`drds.sn1.16c32g`,`drds.sn1.32c64g` are no longer supported. Valid values:\n- `drds.sn2.4c16g` Starter Edition.\n- `drds.sn2.8c32g` Standard Edition.\n- `drds.sn2.16c64g` Enterprise Edition.\n","willReplaceOnChanges":true},"mysqlVersion":{"type":"integer","description":"The MySQL version supported by the instance, with the following range of values. \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e: Fully compatible with MySQL 5.x (default) \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e: Fully compatible with MySQL 8.0. This parameter takes effect when the primary instance is created, and the read-only instance has the same MySQL version as the primary instance by default.\n","willReplaceOnChanges":true},"specification":{"type":"string","description":"User-defined DRDS instance specification. Value range:\n- `drds.sn1.4c8g` for DRDS instance Starter version;\n- value range : `drds.sn1.4c8g.8c16g`, `drds.sn1.4c8g.16c32g`, `drds.sn1.4c8g.32c64g`, `drds.sn1.4c8g.64c128g`\n- `drds.sn1.8c16g` for DRDS instance Standard edition;\n- value range : `drds.sn1.8c16g.16c32g`, `drds.sn1.8c16g.32c64g`, `drds.sn1.8c16g.64c128g`\n- `drds.sn1.16c32g` for DRDS instance Enterprise Edition;\n- value range : `drds.sn1.16c32g.32c64g`, `drds.sn1.16c32g.64c128g`\n- `drds.sn1.32c64g` for DRDS instance Extreme Edition;\n- value range : `drds.sn1.32c64g.128c256g`\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The id of the VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The VSwitch ID to launch in.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the DRDS instance.\n","willReplaceOnChanges":true}},"requiredInputs":["description","instanceSeries","specification","vswitchId","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"connectionString":{"type":"string","description":"(Available since v1.196.0) The connection string of the DRDS instance.\n"},"description":{"type":"string","description":"Description of the DRDS instance, This description can have a string of 2 to 256 characters.\n"},"instanceChargeType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`, Default to `PostPaid`.\n","willReplaceOnChanges":true},"instanceSeries":{"type":"string","description":"The parameter of the instance series. **NOTE:**  `drds.sn1.4c8g`,`drds.sn1.8c16g`,`drds.sn1.16c32g`,`drds.sn1.32c64g` are no longer supported. Valid values:\n- `drds.sn2.4c16g` Starter Edition.\n- `drds.sn2.8c32g` Standard Edition.\n- `drds.sn2.16c64g` Enterprise Edition.\n","willReplaceOnChanges":true},"mysqlVersion":{"type":"integer","description":"The MySQL version supported by the instance, with the following range of values. \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e: Fully compatible with MySQL 5.x (default) \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e: Fully compatible with MySQL 8.0. This parameter takes effect when the primary instance is created, and the read-only instance has the same MySQL version as the primary instance by default.\n","willReplaceOnChanges":true},"port":{"type":"string","description":"(Available since v1.196.0) The connection port of the DRDS instance.\n"},"specification":{"type":"string","description":"User-defined DRDS instance specification. Value range:\n- `drds.sn1.4c8g` for DRDS instance Starter version;\n- value range : `drds.sn1.4c8g.8c16g`, `drds.sn1.4c8g.16c32g`, `drds.sn1.4c8g.32c64g`, `drds.sn1.4c8g.64c128g`\n- `drds.sn1.8c16g` for DRDS instance Standard edition;\n- value range : `drds.sn1.8c16g.16c32g`, `drds.sn1.8c16g.32c64g`, `drds.sn1.8c16g.64c128g`\n- `drds.sn1.16c32g` for DRDS instance Enterprise Edition;\n- value range : `drds.sn1.16c32g.32c64g`, `drds.sn1.16c32g.64c128g`\n- `drds.sn1.32c64g` for DRDS instance Extreme Edition;\n- value range : `drds.sn1.32c64g.128c256g`\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The id of the VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The VSwitch ID to launch in.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the DRDS instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:drds/polardbxInstance:PolardbxInstance":{"description":"Provides a Distributed Relational Database Service (DRDS) Polardbx Instance resource.\n\nPolarDB-X Database Instance.\n\nFor information about Distributed Relational Database Service (DRDS) Polardbx Instance and how to use it, see [What is Polardbx Instance](https://www.alibabacloud.com/help/en/polardb/polardb-for-xscale/api-createdbinstance-1).\n\n\u003e **NOTE:** Available since v1.211.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst example = new alicloud.vpc.Network(\"example\", {vpcName: name});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vpcId: example.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    cidrBlock: \"172.16.0.0/24\",\n    vswitchName: name,\n});\nconst defaultPolardbxInstance = new alicloud.drds.PolardbxInstance(\"default\", {\n    topologyType: \"3azones\",\n    vswitchId: exampleSwitch.id,\n    primaryZone: \"ap-southeast-1a\",\n    cnNodeCount: 2,\n    dnClass: \"mysql.n4.medium.25\",\n    cnClass: \"polarx.x4.medium.2e\",\n    dnNodeCount: 2,\n    secondaryZone: \"ap-southeast-1b\",\n    tertiaryZone: \"ap-southeast-1c\",\n    vpcId: example.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample = alicloud.vpc.Network(\"example\", vpc_name=name)\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vpc_id=example.id,\n    zone_id=default.zones[0].id,\n    cidr_block=\"172.16.0.0/24\",\n    vswitch_name=name)\ndefault_polardbx_instance = alicloud.drds.PolardbxInstance(\"default\",\n    topology_type=\"3azones\",\n    vswitch_id=example_switch.id,\n    primary_zone=\"ap-southeast-1a\",\n    cn_node_count=2,\n    dn_class=\"mysql.n4.medium.25\",\n    cn_class=\"polarx.x4.medium.2e\",\n    dn_node_count=2,\n    secondary_zone=\"ap-southeast-1b\",\n    tertiary_zone=\"ap-southeast-1c\",\n    vpc_id=example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VpcId = example.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        CidrBlock = \"172.16.0.0/24\",\n        VswitchName = name,\n    });\n\n    var defaultPolardbxInstance = new AliCloud.Drds.PolardbxInstance(\"default\", new()\n    {\n        TopologyType = \"3azones\",\n        VswitchId = exampleSwitch.Id,\n        PrimaryZone = \"ap-southeast-1a\",\n        CnNodeCount = 2,\n        DnClass = \"mysql.n4.medium.25\",\n        CnClass = \"polarx.x4.medium.2e\",\n        DnNodeCount = 2,\n        SecondaryZone = \"ap-southeast-1b\",\n        TertiaryZone = \"ap-southeast-1c\",\n        VpcId = example.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/drds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       example.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = drds.NewPolardbxInstance(ctx, \"default\", \u0026drds.PolardbxInstanceArgs{\n\t\t\tTopologyType:  pulumi.String(\"3azones\"),\n\t\t\tVswitchId:     exampleSwitch.ID(),\n\t\t\tPrimaryZone:   pulumi.String(\"ap-southeast-1a\"),\n\t\t\tCnNodeCount:   pulumi.Int(2),\n\t\t\tDnClass:       pulumi.String(\"mysql.n4.medium.25\"),\n\t\t\tCnClass:       pulumi.String(\"polarx.x4.medium.2e\"),\n\t\t\tDnNodeCount:   pulumi.Int(2),\n\t\t\tSecondaryZone: pulumi.String(\"ap-southeast-1b\"),\n\t\t\tTertiaryZone:  pulumi.String(\"ap-southeast-1c\"),\n\t\t\tVpcId:         example.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.drds.PolardbxInstance;\nimport com.pulumi.alicloud.drds.PolardbxInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .vpcName(name)\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vpcId(example.id())\n            .zoneId(default_.zones()[0].id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .vswitchName(name)\n            .build());\n\n        var defaultPolardbxInstance = new PolardbxInstance(\"defaultPolardbxInstance\", PolardbxInstanceArgs.builder()\n            .topologyType(\"3azones\")\n            .vswitchId(exampleSwitch.id())\n            .primaryZone(\"ap-southeast-1a\")\n            .cnNodeCount(2)\n            .dnClass(\"mysql.n4.medium.25\")\n            .cnClass(\"polarx.x4.medium.2e\")\n            .dnNodeCount(2)\n            .secondaryZone(\"ap-southeast-1b\")\n            .tertiaryZone(\"ap-southeast-1c\")\n            .vpcId(example.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vpcId: ${example.id}\n      zoneId: ${default.zones[0].id}\n      cidrBlock: 172.16.0.0/24\n      vswitchName: ${name}\n  defaultPolardbxInstance:\n    type: alicloud:drds:PolardbxInstance\n    name: default\n    properties:\n      topologyType: 3azones\n      vswitchId: ${exampleSwitch.id}\n      primaryZone: ap-southeast-1a\n      cnNodeCount: '2'\n      dnClass: mysql.n4.medium.25\n      cnClass: polarx.x4.medium.2e\n      dnNodeCount: '2'\n      secondaryZone: ap-southeast-1b\n      tertiaryZone: ap-southeast-1c\n      vpcId: ${example.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDistributed Relational Database Service (DRDS) Polardbx Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:drds/polardbxInstance:PolardbxInstance example \u003cid\u003e\n```\n\n","properties":{"cnClass":{"type":"string","description":"Compute node specifications.\n"},"cnNodeCount":{"type":"integer","description":"Number of computing nodes.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Instance remarks\n"},"dnClass":{"type":"string","description":"Storage node specifications.\n"},"dnNodeCount":{"type":"integer","description":"The number of storage nodes.\n"},"engineVersion":{"type":"string","description":"Engine version, default 5.7\n"},"isReadDbInstance":{"type":"boolean","description":"Whether the instance is read-only.\n"},"primaryDbInstanceName":{"type":"string","description":"If the instance is a read-only instance, you must specify the primary instance.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"primaryZone":{"type":"string","description":"Primary Availability Zone.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"resourceGroupId":{"type":"string","description":"The resource group ID can be empty. This parameter is not supported for the time being.\n"},"secondaryZone":{"type":"string","description":"Secondary availability zone.\n"},"status":{"type":"string","description":"The status of the resource\n"},"tertiaryZone":{"type":"string","description":"Third Availability Zone.\n"},"topologyType":{"type":"string","description":"Topology type:\n"},"vpcId":{"type":"string","description":"The VPC ID.\n"},"vswitchId":{"type":"string","description":"The ID of the virtual switch.\n"}},"required":["cnClass","cnNodeCount","createTime","dnClass","dnNodeCount","engineVersion","primaryZone","regionId","resourceGroupId","status","topologyType","vpcId","vswitchId"],"inputProperties":{"cnClass":{"type":"string","description":"Compute node specifications.\n","willReplaceOnChanges":true},"cnNodeCount":{"type":"integer","description":"Number of computing nodes.\n"},"description":{"type":"string","description":"Instance remarks\n"},"dnClass":{"type":"string","description":"Storage node specifications.\n","willReplaceOnChanges":true},"dnNodeCount":{"type":"integer","description":"The number of storage nodes.\n"},"engineVersion":{"type":"string","description":"Engine version, default 5.7\n","willReplaceOnChanges":true},"isReadDbInstance":{"type":"boolean","description":"Whether the instance is read-only.\n"},"primaryDbInstanceName":{"type":"string","description":"If the instance is a read-only instance, you must specify the primary instance.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"primaryZone":{"type":"string","description":"Primary Availability Zone.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The resource group ID can be empty. This parameter is not supported for the time being.\n"},"secondaryZone":{"type":"string","description":"Secondary availability zone.\n","willReplaceOnChanges":true},"tertiaryZone":{"type":"string","description":"Third Availability Zone.\n","willReplaceOnChanges":true},"topologyType":{"type":"string","description":"Topology type:\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VPC ID.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the virtual switch.\n","willReplaceOnChanges":true}},"requiredInputs":["cnClass","cnNodeCount","dnClass","dnNodeCount","primaryZone","topologyType","vpcId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering PolardbxInstance resources.\n","properties":{"cnClass":{"type":"string","description":"Compute node specifications.\n","willReplaceOnChanges":true},"cnNodeCount":{"type":"integer","description":"Number of computing nodes.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Instance remarks\n"},"dnClass":{"type":"string","description":"Storage node specifications.\n","willReplaceOnChanges":true},"dnNodeCount":{"type":"integer","description":"The number of storage nodes.\n"},"engineVersion":{"type":"string","description":"Engine version, default 5.7\n","willReplaceOnChanges":true},"isReadDbInstance":{"type":"boolean","description":"Whether the instance is read-only.\n"},"primaryDbInstanceName":{"type":"string","description":"If the instance is a read-only instance, you must specify the primary instance.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"primaryZone":{"type":"string","description":"Primary Availability Zone.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The region ID of the resource\n"},"resourceGroupId":{"type":"string","description":"The resource group ID can be empty. This parameter is not supported for the time being.\n"},"secondaryZone":{"type":"string","description":"Secondary availability zone.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"},"tertiaryZone":{"type":"string","description":"Third Availability Zone.\n","willReplaceOnChanges":true},"topologyType":{"type":"string","description":"Topology type:\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VPC ID.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the virtual switch.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dts/consumerChannel:ConsumerChannel":{"description":"Provides a DTS Consumer Channel resource.\n\nFor information about DTS Consumer Channel and how to use it, see [What is Consumer Channel](https://www.alibabacloud.com/help/en/doc-detail/264593.htm).\n\n\u003e **NOTE:** Available since v1.146.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = alicloud.getRegions({\n    current: true,\n});\nconst exampleGetZones = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst exampleGetInstanceClasses = exampleGetZones.then(exampleGetZones =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: exampleGetZones.zones?.[0]?.id,\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n}));\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vpcId: exampleNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: exampleGetZones.then(exampleGetZones =\u003e exampleGetZones.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: name,\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.rds.Instance(\"example\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceType: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    instanceChargeType: \"Postpaid\",\n    instanceName: name,\n    vswitchId: exampleSwitch.id,\n    monitoringPeriod: 60,\n    dbInstanceStorageType: \"cloud_essd\",\n    securityGroupIds: [exampleSecurityGroup.id],\n});\nconst exampleRdsAccount = new alicloud.rds.RdsAccount(\"example\", {\n    dbInstanceId: exampleInstance.id,\n    accountName: \"example_name\",\n    accountPassword: \"example_1234\",\n});\nconst exampleDatabase = new alicloud.rds.Database(\"example\", {\n    instanceId: exampleInstance.id,\n    name: name,\n});\nconst exampleAccountPrivilege = new alicloud.rds.AccountPrivilege(\"example\", {\n    instanceId: exampleInstance.id,\n    accountName: exampleRdsAccount.accountName,\n    privilege: \"ReadWrite\",\n    dbNames: [exampleDatabase.name],\n});\nconst exampleSubscriptionJob = new alicloud.dts.SubscriptionJob(\"example\", {\n    dtsJobName: name,\n    paymentType: \"PayAsYouGo\",\n    sourceEndpointEngineName: \"MySQL\",\n    sourceEndpointRegion: example.then(example =\u003e example.regions?.[0]?.id),\n    sourceEndpointInstanceType: \"RDS\",\n    sourceEndpointInstanceId: exampleInstance.id,\n    sourceEndpointDatabaseName: exampleDatabase.name,\n    sourceEndpointUserName: exampleRdsAccount.accountName,\n    sourceEndpointPassword: exampleRdsAccount.accountPassword,\n    dbList: pulumi.interpolate`{\"${exampleDatabase.name}\":{\"name\":\"${exampleDatabase.name}\",\"all\":true}}`,\n    subscriptionInstanceNetworkType: \"vpc\",\n    subscriptionInstanceVpcId: exampleNetwork.id,\n    subscriptionInstanceVswitchId: exampleSwitch.id,\n    status: \"Normal\",\n});\nconst exampleConsumerChannel = new alicloud.dts.ConsumerChannel(\"example\", {\n    dtsInstanceId: exampleSubscriptionJob.dtsInstanceId,\n    consumerGroupName: name,\n    consumerGroupUserName: \"example\",\n    consumerGroupPassword: \"example1234\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.get_regions(current=True)\nexample_get_zones = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=example_get_zones.zones[0].id,\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vpc_id=example_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=example_get_zones.zones[0].id,\n    vswitch_name=name)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=name,\n    vpc_id=example_network.id)\nexample_instance = alicloud.rds.Instance(\"example\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_type=example_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=example_get_instance_classes.instance_classes[0].storage_range.min,\n    instance_charge_type=\"Postpaid\",\n    instance_name=name,\n    vswitch_id=example_switch.id,\n    monitoring_period=60,\n    db_instance_storage_type=\"cloud_essd\",\n    security_group_ids=[example_security_group.id])\nexample_rds_account = alicloud.rds.RdsAccount(\"example\",\n    db_instance_id=example_instance.id,\n    account_name=\"example_name\",\n    account_password=\"example_1234\")\nexample_database = alicloud.rds.Database(\"example\",\n    instance_id=example_instance.id,\n    name=name)\nexample_account_privilege = alicloud.rds.AccountPrivilege(\"example\",\n    instance_id=example_instance.id,\n    account_name=example_rds_account.account_name,\n    privilege=\"ReadWrite\",\n    db_names=[example_database.name])\nexample_subscription_job = alicloud.dts.SubscriptionJob(\"example\",\n    dts_job_name=name,\n    payment_type=\"PayAsYouGo\",\n    source_endpoint_engine_name=\"MySQL\",\n    source_endpoint_region=example.regions[0].id,\n    source_endpoint_instance_type=\"RDS\",\n    source_endpoint_instance_id=example_instance.id,\n    source_endpoint_database_name=example_database.name,\n    source_endpoint_user_name=example_rds_account.account_name,\n    source_endpoint_password=example_rds_account.account_password,\n    db_list=pulumi.Output.all(\n        exampleDatabaseName=example_database.name,\n        exampleDatabaseName1=example_database.name\n).apply(lambda resolved_outputs: f\"{{\\\"{resolved_outputs['exampleDatabaseName']}\\\":{{\\\"name\\\":\\\"{resolved_outputs['exampleDatabaseName1']}\\\",\\\"all\\\":true}}}}\")\n,\n    subscription_instance_network_type=\"vpc\",\n    subscription_instance_vpc_id=example_network.id,\n    subscription_instance_vswitch_id=example_switch.id,\n    status=\"Normal\")\nexample_consumer_channel = alicloud.dts.ConsumerChannel(\"example\",\n    dts_instance_id=example_subscription_job.dts_instance_id,\n    consumer_group_name=name,\n    consumer_group_user_name=\"example\",\n    consumer_group_password=\"example1234\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var exampleGetZones = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = exampleGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VpcId = exampleNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = exampleGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = name,\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = name,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Rds.Instance(\"example\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceType = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = name,\n        VswitchId = exampleSwitch.Id,\n        MonitoringPeriod = 60,\n        DbInstanceStorageType = \"cloud_essd\",\n        SecurityGroupIds = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n    });\n\n    var exampleRdsAccount = new AliCloud.Rds.RdsAccount(\"example\", new()\n    {\n        DbInstanceId = exampleInstance.Id,\n        AccountName = \"example_name\",\n        AccountPassword = \"example_1234\",\n    });\n\n    var exampleDatabase = new AliCloud.Rds.Database(\"example\", new()\n    {\n        InstanceId = exampleInstance.Id,\n        Name = name,\n    });\n\n    var exampleAccountPrivilege = new AliCloud.Rds.AccountPrivilege(\"example\", new()\n    {\n        InstanceId = exampleInstance.Id,\n        AccountName = exampleRdsAccount.AccountName,\n        Privilege = \"ReadWrite\",\n        DbNames = new[]\n        {\n            exampleDatabase.Name,\n        },\n    });\n\n    var exampleSubscriptionJob = new AliCloud.Dts.SubscriptionJob(\"example\", new()\n    {\n        DtsJobName = name,\n        PaymentType = \"PayAsYouGo\",\n        SourceEndpointEngineName = \"MySQL\",\n        SourceEndpointRegion = example.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        SourceEndpointInstanceType = \"RDS\",\n        SourceEndpointInstanceId = exampleInstance.Id,\n        SourceEndpointDatabaseName = exampleDatabase.Name,\n        SourceEndpointUserName = exampleRdsAccount.AccountName,\n        SourceEndpointPassword = exampleRdsAccount.AccountPassword,\n        DbList = Output.Tuple(exampleDatabase.Name, exampleDatabase.Name).Apply(values =\u003e\n        {\n            var exampleDatabaseName = values.Item1;\n            var exampleDatabaseName1 = values.Item2;\n            return $\"{{\\\"{exampleDatabaseName}\\\":{{\\\"name\\\":\\\"{exampleDatabaseName1}\\\",\\\"all\\\":true}}}}\";\n        }),\n        SubscriptionInstanceNetworkType = \"vpc\",\n        SubscriptionInstanceVpcId = exampleNetwork.Id,\n        SubscriptionInstanceVswitchId = exampleSwitch.Id,\n        Status = \"Normal\",\n    });\n\n    var exampleConsumerChannel = new AliCloud.Dts.ConsumerChannel(\"example\", new()\n    {\n        DtsInstanceId = exampleSubscriptionJob.DtsInstanceId,\n        ConsumerGroupName = name,\n        ConsumerGroupUserName = \"example\",\n        ConsumerGroupPassword = \"example1234\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dts\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetZones, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(exampleGetZones.Zones[0].Id),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(exampleGetZones.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := rds.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\tInstanceType:          pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceStorage:       pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t\tVswitchId:             exampleSwitch.ID(),\n\t\t\tMonitoringPeriod:      pulumi.Int(60),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRdsAccount, err := rds.NewRdsAccount(ctx, \"example\", \u0026rds.RdsAccountArgs{\n\t\t\tDbInstanceId:    exampleInstance.ID(),\n\t\t\tAccountName:     pulumi.String(\"example_name\"),\n\t\t\tAccountPassword: pulumi.String(\"example_1234\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDatabase, err := rds.NewDatabase(ctx, \"example\", \u0026rds.DatabaseArgs{\n\t\t\tInstanceId: exampleInstance.ID(),\n\t\t\tName:       pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewAccountPrivilege(ctx, \"example\", \u0026rds.AccountPrivilegeArgs{\n\t\t\tInstanceId:  exampleInstance.ID(),\n\t\t\tAccountName: exampleRdsAccount.AccountName,\n\t\t\tPrivilege:   pulumi.String(\"ReadWrite\"),\n\t\t\tDbNames: pulumi.StringArray{\n\t\t\t\texampleDatabase.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubscriptionJob, err := dts.NewSubscriptionJob(ctx, \"example\", \u0026dts.SubscriptionJobArgs{\n\t\t\tDtsJobName:                 pulumi.String(name),\n\t\t\tPaymentType:                pulumi.String(\"PayAsYouGo\"),\n\t\t\tSourceEndpointEngineName:   pulumi.String(\"MySQL\"),\n\t\t\tSourceEndpointRegion:       pulumi.String(example.Regions[0].Id),\n\t\t\tSourceEndpointInstanceType: pulumi.String(\"RDS\"),\n\t\t\tSourceEndpointInstanceId:   exampleInstance.ID(),\n\t\t\tSourceEndpointDatabaseName: exampleDatabase.Name,\n\t\t\tSourceEndpointUserName:     exampleRdsAccount.AccountName,\n\t\t\tSourceEndpointPassword:     exampleRdsAccount.AccountPassword,\n\t\t\tDbList: pulumi.All(exampleDatabase.Name, exampleDatabase.Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\texampleDatabaseName := _args[0].(string)\n\t\t\t\texampleDatabaseName1 := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(\"{\\\"%v\\\":{\\\"name\\\":\\\"%v\\\",\\\"all\\\":true}}\", exampleDatabaseName, exampleDatabaseName1), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tSubscriptionInstanceNetworkType: pulumi.String(\"vpc\"),\n\t\t\tSubscriptionInstanceVpcId:       exampleNetwork.ID(),\n\t\t\tSubscriptionInstanceVswitchId:   exampleSwitch.ID(),\n\t\t\tStatus:                          pulumi.String(\"Normal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dts.NewConsumerChannel(ctx, \"example\", \u0026dts.ConsumerChannelArgs{\n\t\t\tDtsInstanceId:         exampleSubscriptionJob.DtsInstanceId,\n\t\t\tConsumerGroupName:     pulumi.String(name),\n\t\t\tConsumerGroupUserName: pulumi.String(\"example\"),\n\t\t\tConsumerGroupPassword: pulumi.String(\"example1234\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.RdsAccount;\nimport com.pulumi.alicloud.rds.RdsAccountArgs;\nimport com.pulumi.alicloud.rds.Database;\nimport com.pulumi.alicloud.rds.DatabaseArgs;\nimport com.pulumi.alicloud.rds.AccountPrivilege;\nimport com.pulumi.alicloud.rds.AccountPrivilegeArgs;\nimport com.pulumi.alicloud.dts.SubscriptionJob;\nimport com.pulumi.alicloud.dts.SubscriptionJobArgs;\nimport com.pulumi.alicloud.dts.ConsumerChannel;\nimport com.pulumi.alicloud.dts.ConsumerChannelArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var example = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var exampleGetZones = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var exampleGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(exampleGetZones.zones()[0].id())\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vpcId(exampleNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(exampleGetZones.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceType(exampleGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(exampleGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(name)\n            .vswitchId(exampleSwitch.id())\n            .monitoringPeriod(60)\n            .dbInstanceStorageType(\"cloud_essd\")\n            .securityGroupIds(exampleSecurityGroup.id())\n            .build());\n\n        var exampleRdsAccount = new RdsAccount(\"exampleRdsAccount\", RdsAccountArgs.builder()\n            .dbInstanceId(exampleInstance.id())\n            .accountName(\"example_name\")\n            .accountPassword(\"example_1234\")\n            .build());\n\n        var exampleDatabase = new Database(\"exampleDatabase\", DatabaseArgs.builder()\n            .instanceId(exampleInstance.id())\n            .name(name)\n            .build());\n\n        var exampleAccountPrivilege = new AccountPrivilege(\"exampleAccountPrivilege\", AccountPrivilegeArgs.builder()\n            .instanceId(exampleInstance.id())\n            .accountName(exampleRdsAccount.accountName())\n            .privilege(\"ReadWrite\")\n            .dbNames(exampleDatabase.name())\n            .build());\n\n        var exampleSubscriptionJob = new SubscriptionJob(\"exampleSubscriptionJob\", SubscriptionJobArgs.builder()\n            .dtsJobName(name)\n            .paymentType(\"PayAsYouGo\")\n            .sourceEndpointEngineName(\"MySQL\")\n            .sourceEndpointRegion(example.regions()[0].id())\n            .sourceEndpointInstanceType(\"RDS\")\n            .sourceEndpointInstanceId(exampleInstance.id())\n            .sourceEndpointDatabaseName(exampleDatabase.name())\n            .sourceEndpointUserName(exampleRdsAccount.accountName())\n            .sourceEndpointPassword(exampleRdsAccount.accountPassword())\n            .dbList(Output.tuple(exampleDatabase.name(), exampleDatabase.name()).applyValue(values -\u003e {\n                var exampleDatabaseName = values.t1;\n                var exampleDatabaseName1 = values.t2;\n                return String.format(\"{{\\\"%s\\\":{{\\\"name\\\":\\\"%s\\\",\\\"all\\\":true}}}}\", exampleDatabaseName,exampleDatabaseName1);\n            }))\n            .subscriptionInstanceNetworkType(\"vpc\")\n            .subscriptionInstanceVpcId(exampleNetwork.id())\n            .subscriptionInstanceVswitchId(exampleSwitch.id())\n            .status(\"Normal\")\n            .build());\n\n        var exampleConsumerChannel = new ConsumerChannel(\"exampleConsumerChannel\", ConsumerChannelArgs.builder()\n            .dtsInstanceId(exampleSubscriptionJob.dtsInstanceId())\n            .consumerGroupName(name)\n            .consumerGroupUserName(\"example\")\n            .consumerGroupPassword(\"example1234\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vpcId: ${exampleNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${exampleGetZones.zones[0].id}\n      vswitchName: ${name}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: ${name}\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:rds:Instance\n    name: example\n    properties:\n      engine: MySQL\n      engineVersion: '8.0'\n      instanceType: ${exampleGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceStorage: ${exampleGetInstanceClasses.instanceClasses[0].storageRange.min}\n      instanceChargeType: Postpaid\n      instanceName: ${name}\n      vswitchId: ${exampleSwitch.id}\n      monitoringPeriod: '60'\n      dbInstanceStorageType: cloud_essd\n      securityGroupIds:\n        - ${exampleSecurityGroup.id}\n  exampleRdsAccount:\n    type: alicloud:rds:RdsAccount\n    name: example\n    properties:\n      dbInstanceId: ${exampleInstance.id}\n      accountName: example_name\n      accountPassword: example_1234\n  exampleDatabase:\n    type: alicloud:rds:Database\n    name: example\n    properties:\n      instanceId: ${exampleInstance.id}\n      name: ${name}\n  exampleAccountPrivilege:\n    type: alicloud:rds:AccountPrivilege\n    name: example\n    properties:\n      instanceId: ${exampleInstance.id}\n      accountName: ${exampleRdsAccount.accountName}\n      privilege: ReadWrite\n      dbNames:\n        - ${exampleDatabase.name}\n  exampleSubscriptionJob:\n    type: alicloud:dts:SubscriptionJob\n    name: example\n    properties:\n      dtsJobName: ${name}\n      paymentType: PayAsYouGo\n      sourceEndpointEngineName: MySQL\n      sourceEndpointRegion: ${example.regions[0].id}\n      sourceEndpointInstanceType: RDS\n      sourceEndpointInstanceId: ${exampleInstance.id}\n      sourceEndpointDatabaseName: ${exampleDatabase.name}\n      sourceEndpointUserName: ${exampleRdsAccount.accountName}\n      sourceEndpointPassword: ${exampleRdsAccount.accountPassword}\n      dbList: '{\"${exampleDatabase.name}\":{\"name\":\"${exampleDatabase.name}\",\"all\":true}}'\n      subscriptionInstanceNetworkType: vpc\n      subscriptionInstanceVpcId: ${exampleNetwork.id}\n      subscriptionInstanceVswitchId: ${exampleSwitch.id}\n      status: Normal\n  exampleConsumerChannel:\n    type: alicloud:dts:ConsumerChannel\n    name: example\n    properties:\n      dtsInstanceId: ${exampleSubscriptionJob.dtsInstanceId}\n      consumerGroupName: ${name}\n      consumerGroupUserName: example\n      consumerGroupPassword: example1234\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  exampleGetZones:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: PostPaid\n        category: Basic\n        dbInstanceStorageType: cloud_essd\n  exampleGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${exampleGetZones.zones[0].id}\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: PostPaid\n        category: Basic\n        dbInstanceStorageType: cloud_essd\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDTS Consumer Channel can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dts/consumerChannel:ConsumerChannel example \u003cdts_instance_id\u003e:\u003cconsumer_group_id\u003e\n```\n\n","properties":{"consumerGroupId":{"type":"string","description":"The ID of the consumer group.\n"},"consumerGroupName":{"type":"string","description":"The name of the consumer group.\n"},"consumerGroupPassword":{"type":"string","description":"The password of the consumer group account. The length of the \u003cspan pulumi-lang-nodejs=\"`consumerGroupPassword`\" pulumi-lang-dotnet=\"`ConsumerGroupPassword`\" pulumi-lang-go=\"`consumerGroupPassword`\" pulumi-lang-python=\"`consumer_group_password`\" pulumi-lang-yaml=\"`consumerGroupPassword`\" pulumi-lang-java=\"`consumerGroupPassword`\"\u003e`consumer_group_password`\u003c/span\u003e is limited to \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e characters. It can contain two or more of the following characters: uppercase letters, lowercase letters, digits, and special characters.\n"},"consumerGroupUserName":{"type":"string","description":"The username of the consumer group. The length of the \u003cspan pulumi-lang-nodejs=\"`consumerGroupUserName`\" pulumi-lang-dotnet=\"`ConsumerGroupUserName`\" pulumi-lang-go=\"`consumerGroupUserName`\" pulumi-lang-python=\"`consumer_group_user_name`\" pulumi-lang-yaml=\"`consumerGroupUserName`\" pulumi-lang-java=\"`consumerGroupUserName`\"\u003e`consumer_group_user_name`\u003c/span\u003e is limited to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\"\u003e`16`\u003c/span\u003e characters. It can contain one or more of the following characters: uppercase letters, lowercase letters, digits, and underscores (_).\n"},"dtsInstanceId":{"type":"string","description":"The ID of the subscription instance.\n"}},"required":["consumerGroupId","consumerGroupName","consumerGroupPassword","consumerGroupUserName","dtsInstanceId"],"inputProperties":{"consumerGroupName":{"type":"string","description":"The name of the consumer group.\n","willReplaceOnChanges":true},"consumerGroupPassword":{"type":"string","description":"The password of the consumer group account. The length of the \u003cspan pulumi-lang-nodejs=\"`consumerGroupPassword`\" pulumi-lang-dotnet=\"`ConsumerGroupPassword`\" pulumi-lang-go=\"`consumerGroupPassword`\" pulumi-lang-python=\"`consumer_group_password`\" pulumi-lang-yaml=\"`consumerGroupPassword`\" pulumi-lang-java=\"`consumerGroupPassword`\"\u003e`consumer_group_password`\u003c/span\u003e is limited to \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e characters. It can contain two or more of the following characters: uppercase letters, lowercase letters, digits, and special characters.\n"},"consumerGroupUserName":{"type":"string","description":"The username of the consumer group. The length of the \u003cspan pulumi-lang-nodejs=\"`consumerGroupUserName`\" pulumi-lang-dotnet=\"`ConsumerGroupUserName`\" pulumi-lang-go=\"`consumerGroupUserName`\" pulumi-lang-python=\"`consumer_group_user_name`\" pulumi-lang-yaml=\"`consumerGroupUserName`\" pulumi-lang-java=\"`consumerGroupUserName`\"\u003e`consumer_group_user_name`\u003c/span\u003e is limited to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\"\u003e`16`\u003c/span\u003e characters. It can contain one or more of the following characters: uppercase letters, lowercase letters, digits, and underscores (_).\n","willReplaceOnChanges":true},"dtsInstanceId":{"type":"string","description":"The ID of the subscription instance.\n"}},"requiredInputs":["consumerGroupName","consumerGroupPassword","consumerGroupUserName","dtsInstanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering ConsumerChannel resources.\n","properties":{"consumerGroupId":{"type":"string","description":"The ID of the consumer group.\n"},"consumerGroupName":{"type":"string","description":"The name of the consumer group.\n","willReplaceOnChanges":true},"consumerGroupPassword":{"type":"string","description":"The password of the consumer group account. The length of the \u003cspan pulumi-lang-nodejs=\"`consumerGroupPassword`\" pulumi-lang-dotnet=\"`ConsumerGroupPassword`\" pulumi-lang-go=\"`consumerGroupPassword`\" pulumi-lang-python=\"`consumer_group_password`\" pulumi-lang-yaml=\"`consumerGroupPassword`\" pulumi-lang-java=\"`consumerGroupPassword`\"\u003e`consumer_group_password`\u003c/span\u003e is limited to \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e characters. It can contain two or more of the following characters: uppercase letters, lowercase letters, digits, and special characters.\n"},"consumerGroupUserName":{"type":"string","description":"The username of the consumer group. The length of the \u003cspan pulumi-lang-nodejs=\"`consumerGroupUserName`\" pulumi-lang-dotnet=\"`ConsumerGroupUserName`\" pulumi-lang-go=\"`consumerGroupUserName`\" pulumi-lang-python=\"`consumer_group_user_name`\" pulumi-lang-yaml=\"`consumerGroupUserName`\" pulumi-lang-java=\"`consumerGroupUserName`\"\u003e`consumer_group_user_name`\u003c/span\u003e is limited to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\"\u003e`16`\u003c/span\u003e characters. It can contain one or more of the following characters: uppercase letters, lowercase letters, digits, and underscores (_).\n","willReplaceOnChanges":true},"dtsInstanceId":{"type":"string","description":"The ID of the subscription instance.\n"}},"type":"object"}},"alicloud:dts/instance:Instance":{"description":"Provides a Dts Instance resource.\n\nFor information about Dts Instance and how to use it, see [What is Instance](https://www.alibabacloud.com/help/en/data-transmission-service/latest/createdtsinstance).\n\n\u003e **NOTE:** Available since v1.198.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst defaultInstance = new alicloud.dts.Instance(\"default\", {\n    type: \"sync\",\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    paymentType: \"Subscription\",\n    instanceClass: \"large\",\n    sourceEndpointEngineName: \"MySQL\",\n    sourceRegion: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.id),\n    destinationEndpointEngineName: \"MySQL\",\n    destinationRegion: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_get_regions = alicloud.get_regions(current=True)\ndefault_instance = alicloud.dts.Instance(\"default\",\n    type=\"sync\",\n    resource_group_id=default.ids[0],\n    payment_type=\"Subscription\",\n    instance_class=\"large\",\n    source_endpoint_engine_name=\"MySQL\",\n    source_region=default_get_regions.regions[0].id,\n    destination_endpoint_engine_name=\"MySQL\",\n    destination_region=default_get_regions.regions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultInstance = new AliCloud.Dts.Instance(\"default\", new()\n    {\n        Type = \"sync\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        PaymentType = \"Subscription\",\n        InstanceClass = \"large\",\n        SourceEndpointEngineName = \"MySQL\",\n        SourceRegion = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        DestinationEndpointEngineName = \"MySQL\",\n        DestinationRegion = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dts\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRegions, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dts.NewInstance(ctx, \"default\", \u0026dts.InstanceArgs{\n\t\t\tType:                          pulumi.String(\"sync\"),\n\t\t\tResourceGroupId:               pulumi.String(_default.Ids[0]),\n\t\t\tPaymentType:                   pulumi.String(\"Subscription\"),\n\t\t\tInstanceClass:                 pulumi.String(\"large\"),\n\t\t\tSourceEndpointEngineName:      pulumi.String(\"MySQL\"),\n\t\t\tSourceRegion:                  pulumi.String(defaultGetRegions.Regions[0].Id),\n\t\t\tDestinationEndpointEngineName: pulumi.String(\"MySQL\"),\n\t\t\tDestinationRegion:             pulumi.String(defaultGetRegions.Regions[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.dts.Instance;\nimport com.pulumi.alicloud.dts.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        final var defaultGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .type(\"sync\")\n            .resourceGroupId(default_.ids()[0])\n            .paymentType(\"Subscription\")\n            .instanceClass(\"large\")\n            .sourceEndpointEngineName(\"MySQL\")\n            .sourceRegion(defaultGetRegions.regions()[0].id())\n            .destinationEndpointEngineName(\"MySQL\")\n            .destinationRegion(defaultGetRegions.regions()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultInstance:\n    type: alicloud:dts:Instance\n    name: default\n    properties:\n      type: sync\n      resourceGroupId: ${default.ids[0]}\n      paymentType: Subscription\n      instanceClass: large\n      sourceEndpointEngineName: MySQL\n      sourceRegion: ${defaultGetRegions.regions[0].id}\n      destinationEndpointEngineName: MySQL\n      destinationRegion: ${defaultGetRegions.regions[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n  defaultGetRegions:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDts Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dts/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"autoPay":{"type":"boolean","description":"Whether to automatically renew the fee when it expires. Valid values:\n- **false**: No, the default value.\n- **true**: Yes.\n"},"autoStart":{"type":"boolean","description":"Whether to start the task automatically after the purchase is completed. Value:\n- **false**: No, the default value.\n- **true**: Yes.\n"},"computeUnit":{"type":"integer","description":"Specifications of ETL. The unit is compute unit (CU),1CU = 1vCPU +4GB of memory. The value range is an integer greater than or equal to 2. **NOTE:** Enter this parameter and enable ETL to clean and convert data.\n"},"createTime":{"type":"string","description":"Instance creation time\n"},"databaseCount":{"type":"integer","description":"The number of private custom RDS instances in the PolarDB-X. The default value is **1**. **NOTE:** This parameter is required only when **source_endpoint_engine_name** is **DRDS**.\n"},"destinationEndpointEngineName":{"type":"string","description":"The target database engine type.\n- **MySQL**:MySQL databases (including RDS MySQL and self-built MySQL).\n- **PolarDB**:PolarDB MySQL.\n- **polardb_o**:PolarDB O engine.\n- **polardb_pg**:PolarDB PostgreSQL.\n- **Redis**:Redis databases (including apsaradb for Redis and user-created Redis).\n- **DRDS**: cloud-native distributed database PolarDB-X 1.0 and 2.0.\n- **PostgreSQL**: User-created PostgreSQL.\n- **odps**: MaxCompute project.\n- **oracle**: self-built Oracle.\n- **mongodb**:MongoDB databases (including apsaradb for MongoDB and user-created MongoDB).\n- **tidb**:TiDB database.\n- **ADS**: Cloud native data warehouse AnalyticDB MySQL 2.0.\n- **ADB30**: Cloud native data warehouse AnalyticDB MySQL 3.0.\n- **Greenplum**: Cloud native data warehouse AnalyticDB PostgreSQL.\n- **MSSQL**:SQL Server databases (including RDS SQL Server and self-built SQL Server).\n- **kafka**:Kafka databases (including Kafka and self-built Kafka).\n- **DataHub**: DataHub, an Alibaba cloud streaming data service.\n- **clickhouse**: ClickHouse.\n- **DB2**: self-built DB2 LUW.\n- **as400**:AS/400.\n- **Tablestore**: Tablestore.\n- **NOTE:**\n- The default value is **MySQL**.\n- For more information about the supported source and destination databases, see [Database, Synchronization Initialization Type, and Synchronization Topology](https://www.alibabacloud.com/help/en/data-transmission-service/latest/overview-of-data-synchronization-scenarios-1) and [Supported Database and Migration Type](https://www.alibabacloud.com/help/en/data-transmission-service/latest/overview-of-data-migration-scenarios).\n- This parameter or **job_id** must be passed in.\n"},"destinationRegion":{"type":"string","description":"The target instance region. For more information, see [List of supported regions](https://www.alibabacloud.com/help/en/data-transmission-service/latest/list-of-supported-regions). **NOTE:** This parameter or **job_id** must be passed in.\n"},"dtsInstanceId":{"type":"string","description":"The ID of the subscription instance.\n"},"du":{"type":"integer","description":"Assign a specified number of DU resources to DTS tasks in the DTS exclusive cluster. Valid values: **1** ~ **100**. **NOTE:** The value of this parameter must be within the range of the number of DUs available for the DTS dedicated cluster.\n"},"feeType":{"type":"string","description":"Subscription billing type, Valid values: `ONLY_CONFIGURATION_FEE`: charges only configuration fees; `CONFIGURATION_FEE_AND_DATA_FEE`: charges configuration fees and data traffic fees.\n"},"instanceClass":{"type":"string","description":"The type of the migration or synchronization instance.\n- The specifications of the migration instance: **xxlarge**, **xlarge**, **large**, **medium**, **small**.\n- The types of synchronization instances: **large**, **medium**, **small**, **micro**.\n- **NOTE:** For performance descriptions of different specifications, see [Data Migration Link Specifications](https://www.alibabacloud.com/help/en/data-transmission-service/latest/cd773b) and [Data Synchronization Link Specifications](https://www.alibabacloud.com/help/en/data-transmission-service/latest/6bce7c).\n"},"instanceName":{"type":"string","description":"The name of Dts instance.\n"},"jobId":{"type":"string","description":"The ID of the task obtained by calling the **ConfigureDtsJob** operation (**DtsJobId**).\u003e After you pass in this parameter, you do not need to pass the **source_region**, **destination_region**, **type**, **source_endpoint_engine_name**, or **destination_endpoint_engine_name** parameters. Even if the input is passed in, the configuration in **job_id** shall prevail.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`.\n"},"period":{"type":"string","description":"The billing method of the subscription instance. Value: `Year`, `Month`. **NOTE:** This parameter is valid and must be passed in only when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID.\n"},"sourceEndpointEngineName":{"type":"string","description":"Source instance database engine type.\n- **MySQL**:MySQL databases (including RDS MySQL and self-built MySQL).\n- **PolarDB**:PolarDB MySQL.\n- **polardb_o**:PolarDB O engine.\n- **polardb_pg**:PolarDB PostgreSQL.\n- **Redis**:Redis databases (including apsaradb for Redis and user-created Redis).\n- **DRDS**: cloud-native distributed database PolarDB-X 1.0 and 2.0.\n- **PostgreSQL**: User-created PostgreSQL.\n- **odps**: MaxCompute project.\n- **oracle**: self-built Oracle.\n- **mongodb**:MongoDB databases (including apsaradb for MongoDB and user-created MongoDB).\n- **tidb**:TiDB database.\n- **ADS**: Cloud native data warehouse AnalyticDB MySQL 2.0.\n- **ADB30**: Cloud native data warehouse AnalyticDB MySQL 3.0.\n- **Greenplum**: Cloud native data warehouse AnalyticDB PostgreSQL.\n- **MSSQL**:SQL Server databases (including RDS SQL Server and self-built SQL Server).\n- **kafka**:Kafka databases (including Kafka and self-built Kafka).\n- **DataHub**: DataHub, an Alibaba cloud streaming data service.\n- **clickhouse**: ClickHouse.\n- **DB2**: self-built DB2 LUW.\n- **as400**:AS/400.\n- **Tablestore**: Tablestore.\n- **NOTE:**\n- The default value is **MySQL**.\n- For more information about the supported source and destination databases, see [Database, Synchronization Initialization Type, and Synchronization Topology](https://www.alibabacloud.com/help/en/data-transmission-service/latest/overview-of-data-synchronization-scenarios-1) and [Supported Database and Migration Type](https://www.alibabacloud.com/help/en/data-transmission-service/latest/overview-of-data-migration-scenarios).\n- This parameter or **job_id** must be passed in.\n"},"sourceRegion":{"type":"string","description":"The source instance region. For more information, see [List of supported regions](https://www.alibabacloud.com/help/en/data-transmission-service/latest/list-of-supported-regions). **NOTE:** This parameter or **job_id** must be passed in.\n"},"status":{"type":"string","description":"Instance status.\n"},"syncArchitecture":{"type":"string","description":"Synchronization topology, value:\n- **oneway**: one-way synchronization, the default value.\n- **bidirectional**: two-way synchronization.\n"},"synchronizationDirection":{"type":"string","description":"The synchronization direction. Default value: `Forward`. Valid values:\n- `Forward`: Data is synchronized from the source database to the destination database.\n- `Reverse`: Data is synchronized from the destination database to the source database.\n- **NOTE:** You can set this parameter to Reverse to delete the reverse synchronization task only if the topology is two-way synchronization.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag value corresponding to the tag key.See the following `Block Tags`.\n"},"type":{"type":"string","description":"The instance type. Valid values:\n- **migration**: MIGRATION.\n- **sync**: synchronization.\n- **subscribe**: SUBSCRIBE.\n- **NOTE:** This parameter or **job_id** must be passed in.\n"},"usedTime":{"type":"integer","description":"Prepaid instance purchase duration.\n- When **period** is **Month**, the values are: 1, 2, 3, 4, 5, 6, 7, 8, and 9.\n- When **Period** is **Year**, the values are 1, 2, 3, and 5.\n- **NOTE:**\n- This parameter is valid and must be passed in only when **payment_type** is `Subscription`.\n- The billing method of the subscription instance. You can set the parameter \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"}},"required":["createTime","databaseCount","destinationEndpointEngineName","dtsInstanceId","instanceName","resourceGroupId","sourceEndpointEngineName","status"],"inputProperties":{"autoPay":{"type":"boolean","description":"Whether to automatically renew the fee when it expires. Valid values:\n- **false**: No, the default value.\n- **true**: Yes.\n"},"autoStart":{"type":"boolean","description":"Whether to start the task automatically after the purchase is completed. Value:\n- **false**: No, the default value.\n- **true**: Yes.\n"},"computeUnit":{"type":"integer","description":"Specifications of ETL. The unit is compute unit (CU),1CU = 1vCPU +4GB of memory. The value range is an integer greater than or equal to 2. **NOTE:** Enter this parameter and enable ETL to clean and convert data.\n"},"databaseCount":{"type":"integer","description":"The number of private custom RDS instances in the PolarDB-X. The default value is **1**. **NOTE:** This parameter is required only when **source_endpoint_engine_name** is **DRDS**.\n"},"destinationEndpointEngineName":{"type":"string","description":"The target database engine type.\n- **MySQL**:MySQL databases (including RDS MySQL and self-built MySQL).\n- **PolarDB**:PolarDB MySQL.\n- **polardb_o**:PolarDB O engine.\n- **polardb_pg**:PolarDB PostgreSQL.\n- **Redis**:Redis databases (including apsaradb for Redis and user-created Redis).\n- **DRDS**: cloud-native distributed database PolarDB-X 1.0 and 2.0.\n- **PostgreSQL**: User-created PostgreSQL.\n- **odps**: MaxCompute project.\n- **oracle**: self-built Oracle.\n- **mongodb**:MongoDB databases (including apsaradb for MongoDB and user-created MongoDB).\n- **tidb**:TiDB database.\n- **ADS**: Cloud native data warehouse AnalyticDB MySQL 2.0.\n- **ADB30**: Cloud native data warehouse AnalyticDB MySQL 3.0.\n- **Greenplum**: Cloud native data warehouse AnalyticDB PostgreSQL.\n- **MSSQL**:SQL Server databases (including RDS SQL Server and self-built SQL Server).\n- **kafka**:Kafka databases (including Kafka and self-built Kafka).\n- **DataHub**: DataHub, an Alibaba cloud streaming data service.\n- **clickhouse**: ClickHouse.\n- **DB2**: self-built DB2 LUW.\n- **as400**:AS/400.\n- **Tablestore**: Tablestore.\n- **NOTE:**\n- The default value is **MySQL**.\n- For more information about the supported source and destination databases, see [Database, Synchronization Initialization Type, and Synchronization Topology](https://www.alibabacloud.com/help/en/data-transmission-service/latest/overview-of-data-synchronization-scenarios-1) and [Supported Database and Migration Type](https://www.alibabacloud.com/help/en/data-transmission-service/latest/overview-of-data-migration-scenarios).\n- This parameter or **job_id** must be passed in.\n","willReplaceOnChanges":true},"destinationRegion":{"type":"string","description":"The target instance region. For more information, see [List of supported regions](https://www.alibabacloud.com/help/en/data-transmission-service/latest/list-of-supported-regions). **NOTE:** This parameter or **job_id** must be passed in.\n","willReplaceOnChanges":true},"du":{"type":"integer","description":"Assign a specified number of DU resources to DTS tasks in the DTS exclusive cluster. Valid values: **1** ~ **100**. **NOTE:** The value of this parameter must be within the range of the number of DUs available for the DTS dedicated cluster.\n"},"feeType":{"type":"string","description":"Subscription billing type, Valid values: `ONLY_CONFIGURATION_FEE`: charges only configuration fees; `CONFIGURATION_FEE_AND_DATA_FEE`: charges configuration fees and data traffic fees.\n"},"instanceClass":{"type":"string","description":"The type of the migration or synchronization instance.\n- The specifications of the migration instance: **xxlarge**, **xlarge**, **large**, **medium**, **small**.\n- The types of synchronization instances: **large**, **medium**, **small**, **micro**.\n- **NOTE:** For performance descriptions of different specifications, see [Data Migration Link Specifications](https://www.alibabacloud.com/help/en/data-transmission-service/latest/cd773b) and [Data Synchronization Link Specifications](https://www.alibabacloud.com/help/en/data-transmission-service/latest/6bce7c).\n","willReplaceOnChanges":true},"jobId":{"type":"string","description":"The ID of the task obtained by calling the **ConfigureDtsJob** operation (**DtsJobId**).\u003e After you pass in this parameter, you do not need to pass the **source_region**, **destination_region**, **type**, **source_endpoint_engine_name**, or **destination_endpoint_engine_name** parameters. Even if the input is passed in, the configuration in **job_id** shall prevail.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`.\n","willReplaceOnChanges":true},"period":{"type":"string","description":"The billing method of the subscription instance. Value: `Year`, `Month`. **NOTE:** This parameter is valid and must be passed in only when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID.\n"},"sourceEndpointEngineName":{"type":"string","description":"Source instance database engine type.\n- **MySQL**:MySQL databases (including RDS MySQL and self-built MySQL).\n- **PolarDB**:PolarDB MySQL.\n- **polardb_o**:PolarDB O engine.\n- **polardb_pg**:PolarDB PostgreSQL.\n- **Redis**:Redis databases (including apsaradb for Redis and user-created Redis).\n- **DRDS**: cloud-native distributed database PolarDB-X 1.0 and 2.0.\n- **PostgreSQL**: User-created PostgreSQL.\n- **odps**: MaxCompute project.\n- **oracle**: self-built Oracle.\n- **mongodb**:MongoDB databases (including apsaradb for MongoDB and user-created MongoDB).\n- **tidb**:TiDB database.\n- **ADS**: Cloud native data warehouse AnalyticDB MySQL 2.0.\n- **ADB30**: Cloud native data warehouse AnalyticDB MySQL 3.0.\n- **Greenplum**: Cloud native data warehouse AnalyticDB PostgreSQL.\n- **MSSQL**:SQL Server databases (including RDS SQL Server and self-built SQL Server).\n- **kafka**:Kafka databases (including Kafka and self-built Kafka).\n- **DataHub**: DataHub, an Alibaba cloud streaming data service.\n- **clickhouse**: ClickHouse.\n- **DB2**: self-built DB2 LUW.\n- **as400**:AS/400.\n- **Tablestore**: Tablestore.\n- **NOTE:**\n- The default value is **MySQL**.\n- For more information about the supported source and destination databases, see [Database, Synchronization Initialization Type, and Synchronization Topology](https://www.alibabacloud.com/help/en/data-transmission-service/latest/overview-of-data-synchronization-scenarios-1) and [Supported Database and Migration Type](https://www.alibabacloud.com/help/en/data-transmission-service/latest/overview-of-data-migration-scenarios).\n- This parameter or **job_id** must be passed in.\n","willReplaceOnChanges":true},"sourceRegion":{"type":"string","description":"The source instance region. For more information, see [List of supported regions](https://www.alibabacloud.com/help/en/data-transmission-service/latest/list-of-supported-regions). **NOTE:** This parameter or **job_id** must be passed in.\n","willReplaceOnChanges":true},"syncArchitecture":{"type":"string","description":"Synchronization topology, value:\n- **oneway**: one-way synchronization, the default value.\n- **bidirectional**: two-way synchronization.\n"},"synchronizationDirection":{"type":"string","description":"The synchronization direction. Default value: `Forward`. Valid values:\n- `Forward`: Data is synchronized from the source database to the destination database.\n- `Reverse`: Data is synchronized from the destination database to the source database.\n- **NOTE:** You can set this parameter to Reverse to delete the reverse synchronization task only if the topology is two-way synchronization.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag value corresponding to the tag key.See the following `Block Tags`.\n"},"type":{"type":"string","description":"The instance type. Valid values:\n- **migration**: MIGRATION.\n- **sync**: synchronization.\n- **subscribe**: SUBSCRIBE.\n- **NOTE:** This parameter or **job_id** must be passed in.\n","willReplaceOnChanges":true},"usedTime":{"type":"integer","description":"Prepaid instance purchase duration.\n- When **period** is **Month**, the values are: 1, 2, 3, 4, 5, 6, 7, 8, and 9.\n- When **Period** is **Year**, the values are 1, 2, 3, and 5.\n- **NOTE:**\n- This parameter is valid and must be passed in only when **payment_type** is `Subscription`.\n- The billing method of the subscription instance. You can set the parameter \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"autoPay":{"type":"boolean","description":"Whether to automatically renew the fee when it expires. Valid values:\n- **false**: No, the default value.\n- **true**: Yes.\n"},"autoStart":{"type":"boolean","description":"Whether to start the task automatically after the purchase is completed. Value:\n- **false**: No, the default value.\n- **true**: Yes.\n"},"computeUnit":{"type":"integer","description":"Specifications of ETL. The unit is compute unit (CU),1CU = 1vCPU +4GB of memory. The value range is an integer greater than or equal to 2. **NOTE:** Enter this parameter and enable ETL to clean and convert data.\n"},"createTime":{"type":"string","description":"Instance creation time\n"},"databaseCount":{"type":"integer","description":"The number of private custom RDS instances in the PolarDB-X. The default value is **1**. **NOTE:** This parameter is required only when **source_endpoint_engine_name** is **DRDS**.\n"},"destinationEndpointEngineName":{"type":"string","description":"The target database engine type.\n- **MySQL**:MySQL databases (including RDS MySQL and self-built MySQL).\n- **PolarDB**:PolarDB MySQL.\n- **polardb_o**:PolarDB O engine.\n- **polardb_pg**:PolarDB PostgreSQL.\n- **Redis**:Redis databases (including apsaradb for Redis and user-created Redis).\n- **DRDS**: cloud-native distributed database PolarDB-X 1.0 and 2.0.\n- **PostgreSQL**: User-created PostgreSQL.\n- **odps**: MaxCompute project.\n- **oracle**: self-built Oracle.\n- **mongodb**:MongoDB databases (including apsaradb for MongoDB and user-created MongoDB).\n- **tidb**:TiDB database.\n- **ADS**: Cloud native data warehouse AnalyticDB MySQL 2.0.\n- **ADB30**: Cloud native data warehouse AnalyticDB MySQL 3.0.\n- **Greenplum**: Cloud native data warehouse AnalyticDB PostgreSQL.\n- **MSSQL**:SQL Server databases (including RDS SQL Server and self-built SQL Server).\n- **kafka**:Kafka databases (including Kafka and self-built Kafka).\n- **DataHub**: DataHub, an Alibaba cloud streaming data service.\n- **clickhouse**: ClickHouse.\n- **DB2**: self-built DB2 LUW.\n- **as400**:AS/400.\n- **Tablestore**: Tablestore.\n- **NOTE:**\n- The default value is **MySQL**.\n- For more information about the supported source and destination databases, see [Database, Synchronization Initialization Type, and Synchronization Topology](https://www.alibabacloud.com/help/en/data-transmission-service/latest/overview-of-data-synchronization-scenarios-1) and [Supported Database and Migration Type](https://www.alibabacloud.com/help/en/data-transmission-service/latest/overview-of-data-migration-scenarios).\n- This parameter or **job_id** must be passed in.\n","willReplaceOnChanges":true},"destinationRegion":{"type":"string","description":"The target instance region. For more information, see [List of supported regions](https://www.alibabacloud.com/help/en/data-transmission-service/latest/list-of-supported-regions). **NOTE:** This parameter or **job_id** must be passed in.\n","willReplaceOnChanges":true},"dtsInstanceId":{"type":"string","description":"The ID of the subscription instance.\n"},"du":{"type":"integer","description":"Assign a specified number of DU resources to DTS tasks in the DTS exclusive cluster. Valid values: **1** ~ **100**. **NOTE:** The value of this parameter must be within the range of the number of DUs available for the DTS dedicated cluster.\n"},"feeType":{"type":"string","description":"Subscription billing type, Valid values: `ONLY_CONFIGURATION_FEE`: charges only configuration fees; `CONFIGURATION_FEE_AND_DATA_FEE`: charges configuration fees and data traffic fees.\n"},"instanceClass":{"type":"string","description":"The type of the migration or synchronization instance.\n- The specifications of the migration instance: **xxlarge**, **xlarge**, **large**, **medium**, **small**.\n- The types of synchronization instances: **large**, **medium**, **small**, **micro**.\n- **NOTE:** For performance descriptions of different specifications, see [Data Migration Link Specifications](https://www.alibabacloud.com/help/en/data-transmission-service/latest/cd773b) and [Data Synchronization Link Specifications](https://www.alibabacloud.com/help/en/data-transmission-service/latest/6bce7c).\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of Dts instance.\n"},"jobId":{"type":"string","description":"The ID of the task obtained by calling the **ConfigureDtsJob** operation (**DtsJobId**).\u003e After you pass in this parameter, you do not need to pass the **source_region**, **destination_region**, **type**, **source_endpoint_engine_name**, or **destination_endpoint_engine_name** parameters. Even if the input is passed in, the configuration in **job_id** shall prevail.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`.\n","willReplaceOnChanges":true},"period":{"type":"string","description":"The billing method of the subscription instance. Value: `Year`, `Month`. **NOTE:** This parameter is valid and must be passed in only when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID.\n"},"sourceEndpointEngineName":{"type":"string","description":"Source instance database engine type.\n- **MySQL**:MySQL databases (including RDS MySQL and self-built MySQL).\n- **PolarDB**:PolarDB MySQL.\n- **polardb_o**:PolarDB O engine.\n- **polardb_pg**:PolarDB PostgreSQL.\n- **Redis**:Redis databases (including apsaradb for Redis and user-created Redis).\n- **DRDS**: cloud-native distributed database PolarDB-X 1.0 and 2.0.\n- **PostgreSQL**: User-created PostgreSQL.\n- **odps**: MaxCompute project.\n- **oracle**: self-built Oracle.\n- **mongodb**:MongoDB databases (including apsaradb for MongoDB and user-created MongoDB).\n- **tidb**:TiDB database.\n- **ADS**: Cloud native data warehouse AnalyticDB MySQL 2.0.\n- **ADB30**: Cloud native data warehouse AnalyticDB MySQL 3.0.\n- **Greenplum**: Cloud native data warehouse AnalyticDB PostgreSQL.\n- **MSSQL**:SQL Server databases (including RDS SQL Server and self-built SQL Server).\n- **kafka**:Kafka databases (including Kafka and self-built Kafka).\n- **DataHub**: DataHub, an Alibaba cloud streaming data service.\n- **clickhouse**: ClickHouse.\n- **DB2**: self-built DB2 LUW.\n- **as400**:AS/400.\n- **Tablestore**: Tablestore.\n- **NOTE:**\n- The default value is **MySQL**.\n- For more information about the supported source and destination databases, see [Database, Synchronization Initialization Type, and Synchronization Topology](https://www.alibabacloud.com/help/en/data-transmission-service/latest/overview-of-data-synchronization-scenarios-1) and [Supported Database and Migration Type](https://www.alibabacloud.com/help/en/data-transmission-service/latest/overview-of-data-migration-scenarios).\n- This parameter or **job_id** must be passed in.\n","willReplaceOnChanges":true},"sourceRegion":{"type":"string","description":"The source instance region. For more information, see [List of supported regions](https://www.alibabacloud.com/help/en/data-transmission-service/latest/list-of-supported-regions). **NOTE:** This parameter or **job_id** must be passed in.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Instance status.\n"},"syncArchitecture":{"type":"string","description":"Synchronization topology, value:\n- **oneway**: one-way synchronization, the default value.\n- **bidirectional**: two-way synchronization.\n"},"synchronizationDirection":{"type":"string","description":"The synchronization direction. Default value: `Forward`. Valid values:\n- `Forward`: Data is synchronized from the source database to the destination database.\n- `Reverse`: Data is synchronized from the destination database to the source database.\n- **NOTE:** You can set this parameter to Reverse to delete the reverse synchronization task only if the topology is two-way synchronization.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag value corresponding to the tag key.See the following `Block Tags`.\n"},"type":{"type":"string","description":"The instance type. Valid values:\n- **migration**: MIGRATION.\n- **sync**: synchronization.\n- **subscribe**: SUBSCRIBE.\n- **NOTE:** This parameter or **job_id** must be passed in.\n","willReplaceOnChanges":true},"usedTime":{"type":"integer","description":"Prepaid instance purchase duration.\n- When **period** is **Month**, the values are: 1, 2, 3, 4, 5, 6, 7, 8, and 9.\n- When **Period** is **Year**, the values are 1, 2, 3, and 5.\n- **NOTE:**\n- This parameter is valid and must be passed in only when **payment_type** is `Subscription`.\n- The billing method of the subscription instance. You can set the parameter \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:dts/jobMonitorRule:JobMonitorRule":{"description":"Provides a DTS Job Monitor Rule resource.\n\nFor information about DTS Job Monitor Rule and how to use it, see [What is Job Monitor Rule](https://www.alibabacloud.com/help/en/dts/developer-reference/api-createjobmonitorrule).\n\n\u003e **NOTE:** Available since v1.134.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = alicloud.getRegions({\n    current: true,\n});\nconst exampleGetZones = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst exampleGetInstanceClasses = exampleGetZones.then(exampleGetZones =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: exampleGetZones.zones?.[0]?.id,\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n}));\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vpcId: exampleNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: exampleGetZones.then(exampleGetZones =\u003e exampleGetZones.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: name,\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance: alicloud.rds.Instance[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleInstance.push(new alicloud.rds.Instance(`example-${range.value}`, {\n        engine: \"MySQL\",\n        engineVersion: \"8.0\",\n        instanceType: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n        instanceStorage: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n        instanceChargeType: \"Postpaid\",\n        instanceName: std.format({\n            input: `${name}_%d`,\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        vswitchId: exampleSwitch.id,\n        monitoringPeriod: 60,\n        dbInstanceStorageType: \"cloud_essd\",\n        securityGroupIds: [exampleSecurityGroup.id],\n    }));\n}\nconst exampleRdsAccount: alicloud.rds.RdsAccount[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleRdsAccount.push(new alicloud.rds.RdsAccount(`example-${range.value}`, {\n        dbInstanceId: exampleInstance[range.value].id,\n        accountName: std.format({\n            input: \"example_name_%d\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        accountPassword: std.format({\n            input: \"example_password_%d\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst exampleDatabase: alicloud.rds.Database[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleDatabase.push(new alicloud.rds.Database(`example-${range.value}`, {\n        instanceId: exampleInstance[range.value].id,\n        name: std.format({\n            input: `${name}_%d`,\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst exampleAccountPrivilege: alicloud.rds.AccountPrivilege[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleAccountPrivilege.push(new alicloud.rds.AccountPrivilege(`example-${range.value}`, {\n        instanceId: exampleInstance[range.value].id,\n        accountName: exampleRdsAccount[range.value].name,\n        privilege: \"ReadWrite\",\n        dbNames: [exampleDatabase[range.value].name],\n    }));\n}\nconst exampleMigrationInstance = new alicloud.dts.MigrationInstance(\"example\", {\n    paymentType: \"PayAsYouGo\",\n    sourceEndpointEngineName: \"MySQL\",\n    sourceEndpointRegion: example.then(example =\u003e example.regions?.[0]?.id),\n    destinationEndpointEngineName: \"MySQL\",\n    destinationEndpointRegion: example.then(example =\u003e example.regions?.[0]?.id),\n    instanceClass: \"small\",\n    syncArchitecture: \"oneway\",\n});\nconst exampleMigrationJob = new alicloud.dts.MigrationJob(\"example\", {\n    dtsInstanceId: exampleMigrationInstance.id,\n    dtsJobName: name,\n    sourceEndpointInstanceType: \"RDS\",\n    sourceEndpointInstanceId: exampleAccountPrivilege[0].instanceId,\n    sourceEndpointEngineName: \"MySQL\",\n    sourceEndpointRegion: example.then(example =\u003e example.regions?.[0]?.id),\n    sourceEndpointUserName: exampleRdsAccount[0].accountName,\n    sourceEndpointPassword: exampleRdsAccount[0].accountPassword,\n    destinationEndpointInstanceType: \"RDS\",\n    destinationEndpointInstanceId: exampleAccountPrivilege[1].instanceId,\n    destinationEndpointEngineName: \"MySQL\",\n    destinationEndpointRegion: example.then(example =\u003e example.regions?.[0]?.id),\n    destinationEndpointUserName: exampleRdsAccount[1].accountName,\n    destinationEndpointPassword: exampleRdsAccount[1].accountPassword,\n    dbList: pulumi.jsonStringify(pulumi.all([exampleDatabase[0].name, exampleDatabase[1].name]).apply(([exampleDatabaseName, exampleDatabaseName1]) =\u003e {\n        [exampleDatabaseName]: {\n            name: exampleDatabaseName1,\n            all: true,\n        },\n    })),\n    structureInitialization: true,\n    dataInitialization: true,\n    dataSynchronization: true,\n    status: \"Migrating\",\n});\nconst exampleJobMonitorRule = new alicloud.dts.JobMonitorRule(\"example\", {\n    dtsJobId: exampleMigrationJob.id,\n    type: \"delay\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.get_regions(current=True)\nexample_get_zones = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=example_get_zones.zones[0].id,\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vpc_id=example_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=example_get_zones.zones[0].id,\n    vswitch_name=name)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=name,\n    vpc_id=example_network.id)\nexample_instance = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_instance.append(alicloud.rds.Instance(f\"example-{range['value']}\",\n        engine=\"MySQL\",\n        engine_version=\"8.0\",\n        instance_type=example_get_instance_classes.instance_classes[0].instance_class,\n        instance_storage=example_get_instance_classes.instance_classes[0].storage_range.min,\n        instance_charge_type=\"Postpaid\",\n        instance_name=std.format(input=f\"{name}_%d\",\n            args=[range[\"value\"] + 1]).result,\n        vswitch_id=example_switch.id,\n        monitoring_period=60,\n        db_instance_storage_type=\"cloud_essd\",\n        security_group_ids=[example_security_group.id]))\nexample_rds_account = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_rds_account.append(alicloud.rds.RdsAccount(f\"example-{range['value']}\",\n        db_instance_id=example_instance[range[\"value\"]].id,\n        account_name=std.format(input=\"example_name_%d\",\n            args=[range[\"value\"] + 1]).result,\n        account_password=std.format(input=\"example_password_%d\",\n            args=[range[\"value\"] + 1]).result))\nexample_database = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_database.append(alicloud.rds.Database(f\"example-{range['value']}\",\n        instance_id=example_instance[range[\"value\"]].id,\n        name=std.format(input=f\"{name}_%d\",\n            args=[range[\"value\"] + 1]).result))\nexample_account_privilege = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_account_privilege.append(alicloud.rds.AccountPrivilege(f\"example-{range['value']}\",\n        instance_id=example_instance[range[\"value\"]].id,\n        account_name=example_rds_account[range[\"value\"]].name,\n        privilege=\"ReadWrite\",\n        db_names=[example_database[range[\"value\"]].name]))\nexample_migration_instance = alicloud.dts.MigrationInstance(\"example\",\n    payment_type=\"PayAsYouGo\",\n    source_endpoint_engine_name=\"MySQL\",\n    source_endpoint_region=example.regions[0].id,\n    destination_endpoint_engine_name=\"MySQL\",\n    destination_endpoint_region=example.regions[0].id,\n    instance_class=\"small\",\n    sync_architecture=\"oneway\")\nexample_migration_job = alicloud.dts.MigrationJob(\"example\",\n    dts_instance_id=example_migration_instance.id,\n    dts_job_name=name,\n    source_endpoint_instance_type=\"RDS\",\n    source_endpoint_instance_id=example_account_privilege[0].instance_id,\n    source_endpoint_engine_name=\"MySQL\",\n    source_endpoint_region=example.regions[0].id,\n    source_endpoint_user_name=example_rds_account[0].account_name,\n    source_endpoint_password=example_rds_account[0].account_password,\n    destination_endpoint_instance_type=\"RDS\",\n    destination_endpoint_instance_id=example_account_privilege[1].instance_id,\n    destination_endpoint_engine_name=\"MySQL\",\n    destination_endpoint_region=example.regions[0].id,\n    destination_endpoint_user_name=example_rds_account[1].account_name,\n    destination_endpoint_password=example_rds_account[1].account_password,\n    db_list=pulumi.Output.json_dumps(pulumi.Output.all(\n        exampleDatabaseName=example_database[0].name,\n        exampleDatabaseName1=example_database[1].name\n).apply(lambda resolved_outputs: {\n        resolved_outputs['exampleDatabaseName']: {\n            \"name\": resolved_outputs['exampleDatabaseName1'],\n            \"all\": True,\n        },\n    })\n),\n    structure_initialization=True,\n    data_initialization=True,\n    data_synchronization=True,\n    status=\"Migrating\")\nexample_job_monitor_rule = alicloud.dts.JobMonitorRule(\"example\",\n    dts_job_id=example_migration_job.id,\n    type=\"delay\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var exampleGetZones = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = exampleGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VpcId = exampleNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = exampleGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = name,\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = name,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new List\u003cAliCloud.Rds.Instance\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleInstance.Add(new AliCloud.Rds.Instance($\"example-{range.Value}\", new()\n        {\n            Engine = \"MySQL\",\n            EngineVersion = \"8.0\",\n            InstanceType = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n            InstanceStorage = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n            InstanceChargeType = \"Postpaid\",\n            InstanceName = Std.Format.Invoke(new()\n            {\n                Input = $\"{name}_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            VswitchId = exampleSwitch.Id,\n            MonitoringPeriod = 60,\n            DbInstanceStorageType = \"cloud_essd\",\n            SecurityGroupIds = new[]\n            {\n                exampleSecurityGroup.Id,\n            },\n        }));\n    }\n    var exampleRdsAccount = new List\u003cAliCloud.Rds.RdsAccount\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleRdsAccount.Add(new AliCloud.Rds.RdsAccount($\"example-{range.Value}\", new()\n        {\n            DbInstanceId = exampleInstance[range.Value].Id,\n            AccountName = Std.Format.Invoke(new()\n            {\n                Input = \"example_name_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            AccountPassword = Std.Format.Invoke(new()\n            {\n                Input = \"example_password_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var exampleDatabase = new List\u003cAliCloud.Rds.Database\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleDatabase.Add(new AliCloud.Rds.Database($\"example-{range.Value}\", new()\n        {\n            InstanceId = exampleInstance[range.Value].Id,\n            Name = Std.Format.Invoke(new()\n            {\n                Input = $\"{name}_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var exampleAccountPrivilege = new List\u003cAliCloud.Rds.AccountPrivilege\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleAccountPrivilege.Add(new AliCloud.Rds.AccountPrivilege($\"example-{range.Value}\", new()\n        {\n            InstanceId = exampleInstance[range.Value].Id,\n            AccountName = exampleRdsAccount[range.Value].Name,\n            Privilege = \"ReadWrite\",\n            DbNames = new[]\n            {\n                exampleDatabase[range.Value].Name,\n            },\n        }));\n    }\n    var exampleMigrationInstance = new AliCloud.Dts.MigrationInstance(\"example\", new()\n    {\n        PaymentType = \"PayAsYouGo\",\n        SourceEndpointEngineName = \"MySQL\",\n        SourceEndpointRegion = example.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        DestinationEndpointEngineName = \"MySQL\",\n        DestinationEndpointRegion = example.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        InstanceClass = \"small\",\n        SyncArchitecture = \"oneway\",\n    });\n\n    var exampleMigrationJob = new AliCloud.Dts.MigrationJob(\"example\", new()\n    {\n        DtsInstanceId = exampleMigrationInstance.Id,\n        DtsJobName = name,\n        SourceEndpointInstanceType = \"RDS\",\n        SourceEndpointInstanceId = exampleAccountPrivilege[0].InstanceId,\n        SourceEndpointEngineName = \"MySQL\",\n        SourceEndpointRegion = example.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        SourceEndpointUserName = exampleRdsAccount[0].AccountName,\n        SourceEndpointPassword = exampleRdsAccount[0].AccountPassword,\n        DestinationEndpointInstanceType = \"RDS\",\n        DestinationEndpointInstanceId = exampleAccountPrivilege[1].InstanceId,\n        DestinationEndpointEngineName = \"MySQL\",\n        DestinationEndpointRegion = example.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        DestinationEndpointUserName = exampleRdsAccount[1].AccountName,\n        DestinationEndpointPassword = exampleRdsAccount[1].AccountPassword,\n        DbList = Output.JsonSerialize(Output.Create(Output.Tuple(exampleDatabase[0].Name, exampleDatabase[1].Name).Apply(values =\u003e\n        {\n            var exampleDatabaseName = values.Item1;\n            var exampleDatabaseName1 = values.Item2;\n            return \n            {\n                { exampleDatabaseName, \n                {\n                    { \"name\", exampleDatabaseName1 },\n                    { \"all\", true },\n                } },\n            };\n        }))),\n        StructureInitialization = true,\n        DataInitialization = true,\n        DataSynchronization = true,\n        Status = \"Migrating\",\n    });\n\n    var exampleJobMonitorRule = new AliCloud.Dts.JobMonitorRule(\"example\", new()\n    {\n        DtsJobId = exampleMigrationJob.Id,\n        Type = \"delay\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dts\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetZones, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(exampleGetZones.Zones[0].Id),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(exampleGetZones.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: fmt.Sprintf(\"%v%v\", name, \"_%d\"),\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar exampleInstance []*rds.Instance\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := rds.NewInstance(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026rds.InstanceArgs{\n\t\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\t\tInstanceType:          pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\t\tInstanceStorage:       pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\t\tInstanceName:          pulumi.String(invokeFormat.Result),\n\t\t\t\tVswitchId:             exampleSwitch.ID(),\n\t\t\t\tMonitoringPeriod:      pulumi.Int(60),\n\t\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texampleInstance = append(exampleInstance, __res)\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"example_name_%d\",\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat2, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"example_password_%d\",\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar exampleRdsAccount []*rds.RdsAccount\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := rds.NewRdsAccount(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026rds.RdsAccountArgs{\n\t\t\t\tDbInstanceId:    exampleInstance[val0].ID(),\n\t\t\t\tAccountName:     pulumi.String(invokeFormat1.Result),\n\t\t\t\tAccountPassword: pulumi.String(invokeFormat2.Result),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texampleRdsAccount = append(exampleRdsAccount, __res)\n\t\t}\n\t\tinvokeFormat3, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: fmt.Sprintf(\"%v%v\", name, \"_%d\"),\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar exampleDatabase []*rds.Database\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := rds.NewDatabase(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026rds.DatabaseArgs{\n\t\t\t\tInstanceId: exampleInstance[val0].ID(),\n\t\t\t\tName:       pulumi.String(invokeFormat3.Result),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texampleDatabase = append(exampleDatabase, __res)\n\t\t}\n\t\tvar exampleAccountPrivilege []*rds.AccountPrivilege\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := rds.NewAccountPrivilege(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026rds.AccountPrivilegeArgs{\n\t\t\t\tInstanceId:  exampleInstance[val0].ID(),\n\t\t\t\tAccountName: exampleRdsAccount[val0].Name,\n\t\t\t\tPrivilege:   pulumi.String(\"ReadWrite\"),\n\t\t\t\tDbNames: pulumi.StringArray{\n\t\t\t\t\texampleDatabase[val0].Name,\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texampleAccountPrivilege = append(exampleAccountPrivilege, __res)\n\t\t}\n\t\texampleMigrationInstance, err := dts.NewMigrationInstance(ctx, \"example\", \u0026dts.MigrationInstanceArgs{\n\t\t\tPaymentType:                   pulumi.String(\"PayAsYouGo\"),\n\t\t\tSourceEndpointEngineName:      pulumi.String(\"MySQL\"),\n\t\t\tSourceEndpointRegion:          pulumi.String(example.Regions[0].Id),\n\t\t\tDestinationEndpointEngineName: pulumi.String(\"MySQL\"),\n\t\t\tDestinationEndpointRegion:     pulumi.String(example.Regions[0].Id),\n\t\t\tInstanceClass:                 pulumi.String(\"small\"),\n\t\t\tSyncArchitecture:              pulumi.String(\"oneway\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleMigrationJob, err := dts.NewMigrationJob(ctx, \"example\", \u0026dts.MigrationJobArgs{\n\t\t\tDtsInstanceId:                   exampleMigrationInstance.ID(),\n\t\t\tDtsJobName:                      pulumi.String(name),\n\t\t\tSourceEndpointInstanceType:      pulumi.String(\"RDS\"),\n\t\t\tSourceEndpointInstanceId:        exampleAccountPrivilege[0].InstanceId,\n\t\t\tSourceEndpointEngineName:        pulumi.String(\"MySQL\"),\n\t\t\tSourceEndpointRegion:            pulumi.String(example.Regions[0].Id),\n\t\t\tSourceEndpointUserName:          exampleRdsAccount[0].AccountName,\n\t\t\tSourceEndpointPassword:          exampleRdsAccount[0].AccountPassword,\n\t\t\tDestinationEndpointInstanceType: pulumi.String(\"RDS\"),\n\t\t\tDestinationEndpointInstanceId:   exampleAccountPrivilege[1].InstanceId,\n\t\t\tDestinationEndpointEngineName:   pulumi.String(\"MySQL\"),\n\t\t\tDestinationEndpointRegion:       pulumi.String(example.Regions[0].Id),\n\t\t\tDestinationEndpointUserName:     exampleRdsAccount[1].AccountName,\n\t\t\tDestinationEndpointPassword:     exampleRdsAccount[1].AccountPassword,\n\t\t\tDbList: pulumi.All(exampleDatabase[0].Name, exampleDatabase[1].Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\texampleDatabaseName := _args[0].(string)\n\t\t\t\texampleDatabaseName1 := _args[1].(string)\n\t\t\t\tvar _zero string\n\t\t\t\ttmpJSON0, err := json.Marshal(map[string]map[string]interface{}{\n\t\t\t\t\texampleDatabaseName: map[string]interface{}{\n\t\t\t\t\t\t\"name\": exampleDatabaseName1,\n\t\t\t\t\t\t\"all\":  true,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson0 := string(tmpJSON0)\n\t\t\t\treturn json0, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tStructureInitialization: pulumi.Bool(true),\n\t\t\tDataInitialization:      pulumi.Bool(true),\n\t\t\tDataSynchronization:     pulumi.Bool(true),\n\t\t\tStatus:                  pulumi.String(\"Migrating\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dts.NewJobMonitorRule(ctx, \"example\", \u0026dts.JobMonitorRuleArgs{\n\t\t\tDtsJobId: exampleMigrationJob.ID(),\n\t\t\tType:     pulumi.String(\"delay\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.rds.RdsAccount;\nimport com.pulumi.alicloud.rds.RdsAccountArgs;\nimport com.pulumi.alicloud.rds.Database;\nimport com.pulumi.alicloud.rds.DatabaseArgs;\nimport com.pulumi.alicloud.rds.AccountPrivilege;\nimport com.pulumi.alicloud.rds.AccountPrivilegeArgs;\nimport com.pulumi.alicloud.dts.MigrationInstance;\nimport com.pulumi.alicloud.dts.MigrationInstanceArgs;\nimport com.pulumi.alicloud.dts.MigrationJob;\nimport com.pulumi.alicloud.dts.MigrationJobArgs;\nimport com.pulumi.alicloud.dts.JobMonitorRule;\nimport com.pulumi.alicloud.dts.JobMonitorRuleArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var example = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var exampleGetZones = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var exampleGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(exampleGetZones.zones()[0].id())\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vpcId(exampleNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(exampleGetZones.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Instance(\"exampleInstance-\" + i, InstanceArgs.builder()\n                .engine(\"MySQL\")\n                .engineVersion(\"8.0\")\n                .instanceType(exampleGetInstanceClasses.instanceClasses()[0].instanceClass())\n                .instanceStorage(exampleGetInstanceClasses.instanceClasses()[0].storageRange().min())\n                .instanceChargeType(\"Postpaid\")\n                .instanceName(StdFunctions.format(FormatArgs.builder()\n                    .input(String.format(\"%s_%d\", name))\n                    .args(range.value() + 1)\n                    .build()).result())\n                .vswitchId(exampleSwitch.id())\n                .monitoringPeriod(60)\n                .dbInstanceStorageType(\"cloud_essd\")\n                .securityGroupIds(exampleSecurityGroup.id())\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c 2; i++) {\n            new RdsAccount(\"exampleRdsAccount-\" + i, RdsAccountArgs.builder()\n                .dbInstanceId(exampleInstance[range.value()].id())\n                .accountName(StdFunctions.format(FormatArgs.builder()\n                    .input(\"example_name_%d\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .accountPassword(StdFunctions.format(FormatArgs.builder()\n                    .input(\"example_password_%d\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c 2; i++) {\n            new Database(\"exampleDatabase-\" + i, DatabaseArgs.builder()\n                .instanceId(exampleInstance[range.value()].id())\n                .name(StdFunctions.format(FormatArgs.builder()\n                    .input(String.format(\"%s_%d\", name))\n                    .args(range.value() + 1)\n                    .build()).result())\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c 2; i++) {\n            new AccountPrivilege(\"exampleAccountPrivilege-\" + i, AccountPrivilegeArgs.builder()\n                .instanceId(exampleInstance[range.value()].id())\n                .accountName(exampleRdsAccount[range.value()].name())\n                .privilege(\"ReadWrite\")\n                .dbNames(exampleDatabase[range.value()].name())\n                .build());\n\n        \n}\n        var exampleMigrationInstance = new MigrationInstance(\"exampleMigrationInstance\", MigrationInstanceArgs.builder()\n            .paymentType(\"PayAsYouGo\")\n            .sourceEndpointEngineName(\"MySQL\")\n            .sourceEndpointRegion(example.regions()[0].id())\n            .destinationEndpointEngineName(\"MySQL\")\n            .destinationEndpointRegion(example.regions()[0].id())\n            .instanceClass(\"small\")\n            .syncArchitecture(\"oneway\")\n            .build());\n\n        var exampleMigrationJob = new MigrationJob(\"exampleMigrationJob\", MigrationJobArgs.builder()\n            .dtsInstanceId(exampleMigrationInstance.id())\n            .dtsJobName(name)\n            .sourceEndpointInstanceType(\"RDS\")\n            .sourceEndpointInstanceId(exampleAccountPrivilege[0].instanceId())\n            .sourceEndpointEngineName(\"MySQL\")\n            .sourceEndpointRegion(example.regions()[0].id())\n            .sourceEndpointUserName(exampleRdsAccount[0].accountName())\n            .sourceEndpointPassword(exampleRdsAccount[0].accountPassword())\n            .destinationEndpointInstanceType(\"RDS\")\n            .destinationEndpointInstanceId(exampleAccountPrivilege[1].instanceId())\n            .destinationEndpointEngineName(\"MySQL\")\n            .destinationEndpointRegion(example.regions()[0].id())\n            .destinationEndpointUserName(exampleRdsAccount[1].accountName())\n            .destinationEndpointPassword(exampleRdsAccount[1].accountPassword())\n            .dbList(Output.tuple(exampleDatabase[0].name(), exampleDatabase[1].name()).applyValue(values -\u003e {\n                var exampleDatabaseName = values.t1;\n                var exampleDatabaseName1 = values.t2;\n                return serializeJson(\n                    jsonObject(\n                        jsonProperty(exampleDatabaseName, jsonObject(\n                            jsonProperty(\"name\", exampleDatabaseName1),\n                            jsonProperty(\"all\", true)\n                        ))\n                    ));\n            }))\n            .structureInitialization(true)\n            .dataInitialization(true)\n            .dataSynchronization(true)\n            .status(\"Migrating\")\n            .build());\n\n        var exampleJobMonitorRule = new JobMonitorRule(\"exampleJobMonitorRule\", JobMonitorRuleArgs.builder()\n            .dtsJobId(exampleMigrationJob.id())\n            .type(\"delay\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDTS Job Monitor Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dts/jobMonitorRule:JobMonitorRule example \u003cdts_job_id\u003e\n```\n\n","properties":{"delayRuleTime":{"type":"string","description":"Trigger delay alarm threshold, which is measured in seconds.\n"},"dtsJobId":{"type":"string","description":"Migration, synchronization or subscription task ID can be by calling the [DescribeDtsJobs] get.\n"},"phone":{"type":"string","description":"The alarm is triggered after notification of the contact phone number, A plurality of phone numbers between them with a comma (,) to separate.\n"},"state":{"type":"string","description":"Whether to enable monitoring rules, valid values: `Y`, `N`.\n"},"type":{"type":"string","description":"Monitoring rules of type, valid values: \u003cspan pulumi-lang-nodejs=\"`delay`\" pulumi-lang-dotnet=\"`Delay`\" pulumi-lang-go=\"`delay`\" pulumi-lang-python=\"`delay`\" pulumi-lang-yaml=\"`delay`\" pulumi-lang-java=\"`delay`\"\u003e`delay`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e. **delay**: delay alarm. **error**: abnormal alarm.\n"}},"required":["delayRuleTime","dtsJobId","state","type"],"inputProperties":{"delayRuleTime":{"type":"string","description":"Trigger delay alarm threshold, which is measured in seconds.\n"},"dtsJobId":{"type":"string","description":"Migration, synchronization or subscription task ID can be by calling the [DescribeDtsJobs] get.\n","willReplaceOnChanges":true},"phone":{"type":"string","description":"The alarm is triggered after notification of the contact phone number, A plurality of phone numbers between them with a comma (,) to separate.\n"},"state":{"type":"string","description":"Whether to enable monitoring rules, valid values: `Y`, `N`.\n"},"type":{"type":"string","description":"Monitoring rules of type, valid values: \u003cspan pulumi-lang-nodejs=\"`delay`\" pulumi-lang-dotnet=\"`Delay`\" pulumi-lang-go=\"`delay`\" pulumi-lang-python=\"`delay`\" pulumi-lang-yaml=\"`delay`\" pulumi-lang-java=\"`delay`\"\u003e`delay`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e. **delay**: delay alarm. **error**: abnormal alarm.\n","willReplaceOnChanges":true}},"requiredInputs":["dtsJobId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering JobMonitorRule resources.\n","properties":{"delayRuleTime":{"type":"string","description":"Trigger delay alarm threshold, which is measured in seconds.\n"},"dtsJobId":{"type":"string","description":"Migration, synchronization or subscription task ID can be by calling the [DescribeDtsJobs] get.\n","willReplaceOnChanges":true},"phone":{"type":"string","description":"The alarm is triggered after notification of the contact phone number, A plurality of phone numbers between them with a comma (,) to separate.\n"},"state":{"type":"string","description":"Whether to enable monitoring rules, valid values: `Y`, `N`.\n"},"type":{"type":"string","description":"Monitoring rules of type, valid values: \u003cspan pulumi-lang-nodejs=\"`delay`\" pulumi-lang-dotnet=\"`Delay`\" pulumi-lang-go=\"`delay`\" pulumi-lang-python=\"`delay`\" pulumi-lang-yaml=\"`delay`\" pulumi-lang-java=\"`delay`\"\u003e`delay`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e. **delay**: delay alarm. **error**: abnormal alarm.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dts/migrationInstance:MigrationInstance":{"description":"Provides a DTS Migration Instance resource.\n\nFor information about DTS Migration Instance and how to use it, see [What is Synchronization Instance](https://www.alibabacloud.com/help/en/doc-detail/208270.html).\n\n\u003e **NOTE:** Available since v1.157.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultMigrationInstance = new alicloud.dts.MigrationInstance(\"default\", {\n    paymentType: \"PayAsYouGo\",\n    sourceEndpointEngineName: \"MySQL\",\n    sourceEndpointRegion: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    destinationEndpointEngineName: \"MySQL\",\n    destinationEndpointRegion: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    instanceClass: \"small\",\n    syncArchitecture: \"oneway\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_regions(current=True)\ndefault_migration_instance = alicloud.dts.MigrationInstance(\"default\",\n    payment_type=\"PayAsYouGo\",\n    source_endpoint_engine_name=\"MySQL\",\n    source_endpoint_region=default.regions[0].id,\n    destination_endpoint_engine_name=\"MySQL\",\n    destination_endpoint_region=default.regions[0].id,\n    instance_class=\"small\",\n    sync_architecture=\"oneway\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultMigrationInstance = new AliCloud.Dts.MigrationInstance(\"default\", new()\n    {\n        PaymentType = \"PayAsYouGo\",\n        SourceEndpointEngineName = \"MySQL\",\n        SourceEndpointRegion = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        DestinationEndpointEngineName = \"MySQL\",\n        DestinationEndpointRegion = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        InstanceClass = \"small\",\n        SyncArchitecture = \"oneway\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dts\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dts.NewMigrationInstance(ctx, \"default\", \u0026dts.MigrationInstanceArgs{\n\t\t\tPaymentType:                   pulumi.String(\"PayAsYouGo\"),\n\t\t\tSourceEndpointEngineName:      pulumi.String(\"MySQL\"),\n\t\t\tSourceEndpointRegion:          pulumi.String(_default.Regions[0].Id),\n\t\t\tDestinationEndpointEngineName: pulumi.String(\"MySQL\"),\n\t\t\tDestinationEndpointRegion:     pulumi.String(_default.Regions[0].Id),\n\t\t\tInstanceClass:                 pulumi.String(\"small\"),\n\t\t\tSyncArchitecture:              pulumi.String(\"oneway\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.dts.MigrationInstance;\nimport com.pulumi.alicloud.dts.MigrationInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultMigrationInstance = new MigrationInstance(\"defaultMigrationInstance\", MigrationInstanceArgs.builder()\n            .paymentType(\"PayAsYouGo\")\n            .sourceEndpointEngineName(\"MySQL\")\n            .sourceEndpointRegion(default_.regions()[0].id())\n            .destinationEndpointEngineName(\"MySQL\")\n            .destinationEndpointRegion(default_.regions()[0].id())\n            .instanceClass(\"small\")\n            .syncArchitecture(\"oneway\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultMigrationInstance:\n    type: alicloud:dts:MigrationInstance\n    name: default\n    properties:\n      paymentType: PayAsYouGo\n      sourceEndpointEngineName: MySQL\n      sourceEndpointRegion: ${default.regions[0].id}\n      destinationEndpointEngineName: MySQL\n      destinationEndpointRegion: ${default.regions[0].id}\n      instanceClass: small\n      syncArchitecture: oneway\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDTS Migration Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dts/migrationInstance:MigrationInstance example \u003cid\u003e\n```\n\n","properties":{"computeUnit":{"type":"integer","description":"[ETL specifications](https://help.aliyun.com/document_detail/212324.html). The unit is the computing unit ComputeUnit (CU), 1CU=1vCPU+4 GB memory. The value range is an integer greater than or equal to 2.\n"},"databaseCount":{"type":"integer","description":"The number of private customized RDS instances under PolarDB-X. The default value is 1. This parameter needs to be passed only when \u003cspan pulumi-lang-nodejs=\"`sourceEndpointEngineName`\" pulumi-lang-dotnet=\"`SourceEndpointEngineName`\" pulumi-lang-go=\"`sourceEndpointEngineName`\" pulumi-lang-python=\"`source_endpoint_engine_name`\" pulumi-lang-yaml=\"`sourceEndpointEngineName`\" pulumi-lang-java=\"`sourceEndpointEngineName`\"\u003e`source_endpoint_engine_name`\u003c/span\u003e equals \u003cspan pulumi-lang-nodejs=\"`drds`\" pulumi-lang-dotnet=\"`Drds`\" pulumi-lang-go=\"`drds`\" pulumi-lang-python=\"`drds`\" pulumi-lang-yaml=\"`drds`\" pulumi-lang-java=\"`drds`\"\u003e`drds`\u003c/span\u003e.\n"},"destinationEndpointEngineName":{"type":"string","description":"The type of destination engine. Valid values: `ADS`, `DB2`, `DRDS`, `DataHub`, `Greenplum`, `MSSQL`, `MySQL`, `PolarDB`, `PostgreSQL`, `Redis`, `Tablestore`, \u003cspan pulumi-lang-nodejs=\"`as400`\" pulumi-lang-dotnet=\"`As400`\" pulumi-lang-go=\"`as400`\" pulumi-lang-python=\"`as400`\" pulumi-lang-yaml=\"`as400`\" pulumi-lang-java=\"`as400`\"\u003e`as400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\"\u003e`kafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`odps`\" pulumi-lang-dotnet=\"`Odps`\" pulumi-lang-go=\"`odps`\" pulumi-lang-python=\"`odps`\" pulumi-lang-yaml=\"`odps`\" pulumi-lang-java=\"`odps`\"\u003e`odps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oracle`\" pulumi-lang-dotnet=\"`Oracle`\" pulumi-lang-go=\"`oracle`\" pulumi-lang-python=\"`oracle`\" pulumi-lang-yaml=\"`oracle`\" pulumi-lang-java=\"`oracle`\"\u003e`oracle`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbO`\" pulumi-lang-dotnet=\"`PolardbO`\" pulumi-lang-go=\"`polardbO`\" pulumi-lang-python=\"`polardb_o`\" pulumi-lang-yaml=\"`polardbO`\" pulumi-lang-java=\"`polardbO`\"\u003e`polardb_o`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbPg`\" pulumi-lang-dotnet=\"`PolardbPg`\" pulumi-lang-go=\"`polardbPg`\" pulumi-lang-python=\"`polardb_pg`\" pulumi-lang-yaml=\"`polardbPg`\" pulumi-lang-java=\"`polardbPg`\"\u003e`polardb_pg`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tidb`\" pulumi-lang-dotnet=\"`Tidb`\" pulumi-lang-go=\"`tidb`\" pulumi-lang-python=\"`tidb`\" pulumi-lang-yaml=\"`tidb`\" pulumi-lang-java=\"`tidb`\"\u003e`tidb`\u003c/span\u003e. For the correspondence between the supported source and target libraries, see [Supported Databases, Synchronization Initialization Types and Synchronization Topologies](https://help.aliyun.com/document_detail/130744.html), [Supported Databases and Migration Types](https://help.aliyun.com/document_detail/26618.html).\n"},"destinationEndpointRegion":{"type":"string","description":"The region of destination instance. List of [supported regions](https://help.aliyun.com/document_detail/141033.html).\n"},"dtsInstanceId":{"type":"string","description":"The ID of the Migration Instance.\n"},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xxlarge`\" pulumi-lang-dotnet=\"`Xxlarge`\" pulumi-lang-go=\"`xxlarge`\" pulumi-lang-python=\"`xxlarge`\" pulumi-lang-yaml=\"`xxlarge`\" pulumi-lang-java=\"`xxlarge`\"\u003e`xxlarge`\u003c/span\u003e. You can only upgrade the configuration, not downgrade the configuration. If you downgrade the instance, you need to [submit a ticket](https://selfservice.console.aliyun.com/ticket/category/dts/today).\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`.\n"},"sourceEndpointEngineName":{"type":"string","description":"The type of source endpoint engine. Valid values: `ADS`, `DB2`, `DRDS`, `DataHub`, `Greenplum`, `MSSQL`, `MySQL`, `PolarDB`, `PostgreSQL`, `Redis`, `Tablestore`, \u003cspan pulumi-lang-nodejs=\"`as400`\" pulumi-lang-dotnet=\"`As400`\" pulumi-lang-go=\"`as400`\" pulumi-lang-python=\"`as400`\" pulumi-lang-yaml=\"`as400`\" pulumi-lang-java=\"`as400`\"\u003e`as400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\"\u003e`kafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`odps`\" pulumi-lang-dotnet=\"`Odps`\" pulumi-lang-go=\"`odps`\" pulumi-lang-python=\"`odps`\" pulumi-lang-yaml=\"`odps`\" pulumi-lang-java=\"`odps`\"\u003e`odps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oracle`\" pulumi-lang-dotnet=\"`Oracle`\" pulumi-lang-go=\"`oracle`\" pulumi-lang-python=\"`oracle`\" pulumi-lang-yaml=\"`oracle`\" pulumi-lang-java=\"`oracle`\"\u003e`oracle`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbO`\" pulumi-lang-dotnet=\"`PolardbO`\" pulumi-lang-go=\"`polardbO`\" pulumi-lang-python=\"`polardb_o`\" pulumi-lang-yaml=\"`polardbO`\" pulumi-lang-java=\"`polardbO`\"\u003e`polardb_o`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbPg`\" pulumi-lang-dotnet=\"`PolardbPg`\" pulumi-lang-go=\"`polardbPg`\" pulumi-lang-python=\"`polardb_pg`\" pulumi-lang-yaml=\"`polardbPg`\" pulumi-lang-java=\"`polardbPg`\"\u003e`polardb_pg`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tidb`\" pulumi-lang-dotnet=\"`Tidb`\" pulumi-lang-go=\"`tidb`\" pulumi-lang-python=\"`tidb`\" pulumi-lang-yaml=\"`tidb`\" pulumi-lang-java=\"`tidb`\"\u003e`tidb`\u003c/span\u003e. For the correspondence between the supported source and target libraries, see [Supported Databases, Synchronization Initialization Types and Synchronization Topologies](https://help.aliyun.com/document_detail/130744.html), [Supported Databases and Migration Types](https://help.aliyun.com/document_detail/26618.html).\n"},"sourceEndpointRegion":{"type":"string","description":"The region of source instance.\n"},"status":{"type":"string","description":"The status.\n"},"syncArchitecture":{"type":"string","description":"The sync architecture. Valid values: \u003cspan pulumi-lang-nodejs=\"`oneway`\" pulumi-lang-dotnet=\"`Oneway`\" pulumi-lang-go=\"`oneway`\" pulumi-lang-python=\"`oneway`\" pulumi-lang-yaml=\"`oneway`\" pulumi-lang-java=\"`oneway`\"\u003e`oneway`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["destinationEndpointEngineName","destinationEndpointRegion","dtsInstanceId","instanceClass","paymentType","sourceEndpointEngineName","sourceEndpointRegion","status"],"inputProperties":{"computeUnit":{"type":"integer","description":"[ETL specifications](https://help.aliyun.com/document_detail/212324.html). The unit is the computing unit ComputeUnit (CU), 1CU=1vCPU+4 GB memory. The value range is an integer greater than or equal to 2.\n"},"databaseCount":{"type":"integer","description":"The number of private customized RDS instances under PolarDB-X. The default value is 1. This parameter needs to be passed only when \u003cspan pulumi-lang-nodejs=\"`sourceEndpointEngineName`\" pulumi-lang-dotnet=\"`SourceEndpointEngineName`\" pulumi-lang-go=\"`sourceEndpointEngineName`\" pulumi-lang-python=\"`source_endpoint_engine_name`\" pulumi-lang-yaml=\"`sourceEndpointEngineName`\" pulumi-lang-java=\"`sourceEndpointEngineName`\"\u003e`source_endpoint_engine_name`\u003c/span\u003e equals \u003cspan pulumi-lang-nodejs=\"`drds`\" pulumi-lang-dotnet=\"`Drds`\" pulumi-lang-go=\"`drds`\" pulumi-lang-python=\"`drds`\" pulumi-lang-yaml=\"`drds`\" pulumi-lang-java=\"`drds`\"\u003e`drds`\u003c/span\u003e.\n"},"destinationEndpointEngineName":{"type":"string","description":"The type of destination engine. Valid values: `ADS`, `DB2`, `DRDS`, `DataHub`, `Greenplum`, `MSSQL`, `MySQL`, `PolarDB`, `PostgreSQL`, `Redis`, `Tablestore`, \u003cspan pulumi-lang-nodejs=\"`as400`\" pulumi-lang-dotnet=\"`As400`\" pulumi-lang-go=\"`as400`\" pulumi-lang-python=\"`as400`\" pulumi-lang-yaml=\"`as400`\" pulumi-lang-java=\"`as400`\"\u003e`as400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\"\u003e`kafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`odps`\" pulumi-lang-dotnet=\"`Odps`\" pulumi-lang-go=\"`odps`\" pulumi-lang-python=\"`odps`\" pulumi-lang-yaml=\"`odps`\" pulumi-lang-java=\"`odps`\"\u003e`odps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oracle`\" pulumi-lang-dotnet=\"`Oracle`\" pulumi-lang-go=\"`oracle`\" pulumi-lang-python=\"`oracle`\" pulumi-lang-yaml=\"`oracle`\" pulumi-lang-java=\"`oracle`\"\u003e`oracle`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbO`\" pulumi-lang-dotnet=\"`PolardbO`\" pulumi-lang-go=\"`polardbO`\" pulumi-lang-python=\"`polardb_o`\" pulumi-lang-yaml=\"`polardbO`\" pulumi-lang-java=\"`polardbO`\"\u003e`polardb_o`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbPg`\" pulumi-lang-dotnet=\"`PolardbPg`\" pulumi-lang-go=\"`polardbPg`\" pulumi-lang-python=\"`polardb_pg`\" pulumi-lang-yaml=\"`polardbPg`\" pulumi-lang-java=\"`polardbPg`\"\u003e`polardb_pg`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tidb`\" pulumi-lang-dotnet=\"`Tidb`\" pulumi-lang-go=\"`tidb`\" pulumi-lang-python=\"`tidb`\" pulumi-lang-yaml=\"`tidb`\" pulumi-lang-java=\"`tidb`\"\u003e`tidb`\u003c/span\u003e. For the correspondence between the supported source and target libraries, see [Supported Databases, Synchronization Initialization Types and Synchronization Topologies](https://help.aliyun.com/document_detail/130744.html), [Supported Databases and Migration Types](https://help.aliyun.com/document_detail/26618.html).\n","willReplaceOnChanges":true},"destinationEndpointRegion":{"type":"string","description":"The region of destination instance. List of [supported regions](https://help.aliyun.com/document_detail/141033.html).\n","willReplaceOnChanges":true},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xxlarge`\" pulumi-lang-dotnet=\"`Xxlarge`\" pulumi-lang-go=\"`xxlarge`\" pulumi-lang-python=\"`xxlarge`\" pulumi-lang-yaml=\"`xxlarge`\" pulumi-lang-java=\"`xxlarge`\"\u003e`xxlarge`\u003c/span\u003e. You can only upgrade the configuration, not downgrade the configuration. If you downgrade the instance, you need to [submit a ticket](https://selfservice.console.aliyun.com/ticket/category/dts/today).\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`.\n","willReplaceOnChanges":true},"sourceEndpointEngineName":{"type":"string","description":"The type of source endpoint engine. Valid values: `ADS`, `DB2`, `DRDS`, `DataHub`, `Greenplum`, `MSSQL`, `MySQL`, `PolarDB`, `PostgreSQL`, `Redis`, `Tablestore`, \u003cspan pulumi-lang-nodejs=\"`as400`\" pulumi-lang-dotnet=\"`As400`\" pulumi-lang-go=\"`as400`\" pulumi-lang-python=\"`as400`\" pulumi-lang-yaml=\"`as400`\" pulumi-lang-java=\"`as400`\"\u003e`as400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\"\u003e`kafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`odps`\" pulumi-lang-dotnet=\"`Odps`\" pulumi-lang-go=\"`odps`\" pulumi-lang-python=\"`odps`\" pulumi-lang-yaml=\"`odps`\" pulumi-lang-java=\"`odps`\"\u003e`odps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oracle`\" pulumi-lang-dotnet=\"`Oracle`\" pulumi-lang-go=\"`oracle`\" pulumi-lang-python=\"`oracle`\" pulumi-lang-yaml=\"`oracle`\" pulumi-lang-java=\"`oracle`\"\u003e`oracle`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbO`\" pulumi-lang-dotnet=\"`PolardbO`\" pulumi-lang-go=\"`polardbO`\" pulumi-lang-python=\"`polardb_o`\" pulumi-lang-yaml=\"`polardbO`\" pulumi-lang-java=\"`polardbO`\"\u003e`polardb_o`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbPg`\" pulumi-lang-dotnet=\"`PolardbPg`\" pulumi-lang-go=\"`polardbPg`\" pulumi-lang-python=\"`polardb_pg`\" pulumi-lang-yaml=\"`polardbPg`\" pulumi-lang-java=\"`polardbPg`\"\u003e`polardb_pg`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tidb`\" pulumi-lang-dotnet=\"`Tidb`\" pulumi-lang-go=\"`tidb`\" pulumi-lang-python=\"`tidb`\" pulumi-lang-yaml=\"`tidb`\" pulumi-lang-java=\"`tidb`\"\u003e`tidb`\u003c/span\u003e. For the correspondence between the supported source and target libraries, see [Supported Databases, Synchronization Initialization Types and Synchronization Topologies](https://help.aliyun.com/document_detail/130744.html), [Supported Databases and Migration Types](https://help.aliyun.com/document_detail/26618.html).\n","willReplaceOnChanges":true},"sourceEndpointRegion":{"type":"string","description":"The region of source instance.\n","willReplaceOnChanges":true},"syncArchitecture":{"type":"string","description":"The sync architecture. Valid values: \u003cspan pulumi-lang-nodejs=\"`oneway`\" pulumi-lang-dotnet=\"`Oneway`\" pulumi-lang-go=\"`oneway`\" pulumi-lang-python=\"`oneway`\" pulumi-lang-yaml=\"`oneway`\" pulumi-lang-java=\"`oneway`\"\u003e`oneway`\u003c/span\u003e.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"requiredInputs":["destinationEndpointEngineName","destinationEndpointRegion","paymentType","sourceEndpointEngineName","sourceEndpointRegion"],"stateInputs":{"description":"Input properties used for looking up and filtering MigrationInstance resources.\n","properties":{"computeUnit":{"type":"integer","description":"[ETL specifications](https://help.aliyun.com/document_detail/212324.html). The unit is the computing unit ComputeUnit (CU), 1CU=1vCPU+4 GB memory. The value range is an integer greater than or equal to 2.\n"},"databaseCount":{"type":"integer","description":"The number of private customized RDS instances under PolarDB-X. The default value is 1. This parameter needs to be passed only when \u003cspan pulumi-lang-nodejs=\"`sourceEndpointEngineName`\" pulumi-lang-dotnet=\"`SourceEndpointEngineName`\" pulumi-lang-go=\"`sourceEndpointEngineName`\" pulumi-lang-python=\"`source_endpoint_engine_name`\" pulumi-lang-yaml=\"`sourceEndpointEngineName`\" pulumi-lang-java=\"`sourceEndpointEngineName`\"\u003e`source_endpoint_engine_name`\u003c/span\u003e equals \u003cspan pulumi-lang-nodejs=\"`drds`\" pulumi-lang-dotnet=\"`Drds`\" pulumi-lang-go=\"`drds`\" pulumi-lang-python=\"`drds`\" pulumi-lang-yaml=\"`drds`\" pulumi-lang-java=\"`drds`\"\u003e`drds`\u003c/span\u003e.\n"},"destinationEndpointEngineName":{"type":"string","description":"The type of destination engine. Valid values: `ADS`, `DB2`, `DRDS`, `DataHub`, `Greenplum`, `MSSQL`, `MySQL`, `PolarDB`, `PostgreSQL`, `Redis`, `Tablestore`, \u003cspan pulumi-lang-nodejs=\"`as400`\" pulumi-lang-dotnet=\"`As400`\" pulumi-lang-go=\"`as400`\" pulumi-lang-python=\"`as400`\" pulumi-lang-yaml=\"`as400`\" pulumi-lang-java=\"`as400`\"\u003e`as400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\"\u003e`kafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`odps`\" pulumi-lang-dotnet=\"`Odps`\" pulumi-lang-go=\"`odps`\" pulumi-lang-python=\"`odps`\" pulumi-lang-yaml=\"`odps`\" pulumi-lang-java=\"`odps`\"\u003e`odps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oracle`\" pulumi-lang-dotnet=\"`Oracle`\" pulumi-lang-go=\"`oracle`\" pulumi-lang-python=\"`oracle`\" pulumi-lang-yaml=\"`oracle`\" pulumi-lang-java=\"`oracle`\"\u003e`oracle`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbO`\" pulumi-lang-dotnet=\"`PolardbO`\" pulumi-lang-go=\"`polardbO`\" pulumi-lang-python=\"`polardb_o`\" pulumi-lang-yaml=\"`polardbO`\" pulumi-lang-java=\"`polardbO`\"\u003e`polardb_o`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbPg`\" pulumi-lang-dotnet=\"`PolardbPg`\" pulumi-lang-go=\"`polardbPg`\" pulumi-lang-python=\"`polardb_pg`\" pulumi-lang-yaml=\"`polardbPg`\" pulumi-lang-java=\"`polardbPg`\"\u003e`polardb_pg`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tidb`\" pulumi-lang-dotnet=\"`Tidb`\" pulumi-lang-go=\"`tidb`\" pulumi-lang-python=\"`tidb`\" pulumi-lang-yaml=\"`tidb`\" pulumi-lang-java=\"`tidb`\"\u003e`tidb`\u003c/span\u003e. For the correspondence between the supported source and target libraries, see [Supported Databases, Synchronization Initialization Types and Synchronization Topologies](https://help.aliyun.com/document_detail/130744.html), [Supported Databases and Migration Types](https://help.aliyun.com/document_detail/26618.html).\n","willReplaceOnChanges":true},"destinationEndpointRegion":{"type":"string","description":"The region of destination instance. List of [supported regions](https://help.aliyun.com/document_detail/141033.html).\n","willReplaceOnChanges":true},"dtsInstanceId":{"type":"string","description":"The ID of the Migration Instance.\n"},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xxlarge`\" pulumi-lang-dotnet=\"`Xxlarge`\" pulumi-lang-go=\"`xxlarge`\" pulumi-lang-python=\"`xxlarge`\" pulumi-lang-yaml=\"`xxlarge`\" pulumi-lang-java=\"`xxlarge`\"\u003e`xxlarge`\u003c/span\u003e. You can only upgrade the configuration, not downgrade the configuration. If you downgrade the instance, you need to [submit a ticket](https://selfservice.console.aliyun.com/ticket/category/dts/today).\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`.\n","willReplaceOnChanges":true},"sourceEndpointEngineName":{"type":"string","description":"The type of source endpoint engine. Valid values: `ADS`, `DB2`, `DRDS`, `DataHub`, `Greenplum`, `MSSQL`, `MySQL`, `PolarDB`, `PostgreSQL`, `Redis`, `Tablestore`, \u003cspan pulumi-lang-nodejs=\"`as400`\" pulumi-lang-dotnet=\"`As400`\" pulumi-lang-go=\"`as400`\" pulumi-lang-python=\"`as400`\" pulumi-lang-yaml=\"`as400`\" pulumi-lang-java=\"`as400`\"\u003e`as400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\"\u003e`kafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`odps`\" pulumi-lang-dotnet=\"`Odps`\" pulumi-lang-go=\"`odps`\" pulumi-lang-python=\"`odps`\" pulumi-lang-yaml=\"`odps`\" pulumi-lang-java=\"`odps`\"\u003e`odps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oracle`\" pulumi-lang-dotnet=\"`Oracle`\" pulumi-lang-go=\"`oracle`\" pulumi-lang-python=\"`oracle`\" pulumi-lang-yaml=\"`oracle`\" pulumi-lang-java=\"`oracle`\"\u003e`oracle`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbO`\" pulumi-lang-dotnet=\"`PolardbO`\" pulumi-lang-go=\"`polardbO`\" pulumi-lang-python=\"`polardb_o`\" pulumi-lang-yaml=\"`polardbO`\" pulumi-lang-java=\"`polardbO`\"\u003e`polardb_o`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbPg`\" pulumi-lang-dotnet=\"`PolardbPg`\" pulumi-lang-go=\"`polardbPg`\" pulumi-lang-python=\"`polardb_pg`\" pulumi-lang-yaml=\"`polardbPg`\" pulumi-lang-java=\"`polardbPg`\"\u003e`polardb_pg`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tidb`\" pulumi-lang-dotnet=\"`Tidb`\" pulumi-lang-go=\"`tidb`\" pulumi-lang-python=\"`tidb`\" pulumi-lang-yaml=\"`tidb`\" pulumi-lang-java=\"`tidb`\"\u003e`tidb`\u003c/span\u003e. For the correspondence between the supported source and target libraries, see [Supported Databases, Synchronization Initialization Types and Synchronization Topologies](https://help.aliyun.com/document_detail/130744.html), [Supported Databases and Migration Types](https://help.aliyun.com/document_detail/26618.html).\n","willReplaceOnChanges":true},"sourceEndpointRegion":{"type":"string","description":"The region of source instance.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status.\n"},"syncArchitecture":{"type":"string","description":"The sync architecture. Valid values: \u003cspan pulumi-lang-nodejs=\"`oneway`\" pulumi-lang-dotnet=\"`Oneway`\" pulumi-lang-go=\"`oneway`\" pulumi-lang-python=\"`oneway`\" pulumi-lang-yaml=\"`oneway`\" pulumi-lang-java=\"`oneway`\"\u003e`oneway`\u003c/span\u003e.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:dts/migrationJob:MigrationJob":{"description":"Provides a DTS Migration Job resource.\n\nFor information about DTS Migration Job and how to use it, see [What is Migration Job](https://www.alibabacloud.com/help/en/doc-detail/208399.html).\n\n\u003e **NOTE:** Available since v1.157.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = alicloud.getRegions({\n    current: true,\n});\nconst exampleGetZones = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst exampleGetInstanceClasses = exampleGetZones.then(exampleGetZones =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: exampleGetZones.zones?.[0]?.id,\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n}));\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vpcId: exampleNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: exampleGetZones.then(exampleGetZones =\u003e exampleGetZones.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: name,\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance: alicloud.rds.Instance[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleInstance.push(new alicloud.rds.Instance(`example-${range.value}`, {\n        engine: \"MySQL\",\n        engineVersion: \"8.0\",\n        instanceType: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n        instanceStorage: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n        instanceChargeType: \"Postpaid\",\n        instanceName: std.format({\n            input: `${name}_%d`,\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        vswitchId: exampleSwitch.id,\n        monitoringPeriod: 60,\n        dbInstanceStorageType: \"cloud_essd\",\n        securityGroupIds: [exampleSecurityGroup.id],\n    }));\n}\nconst exampleRdsAccount: alicloud.rds.RdsAccount[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleRdsAccount.push(new alicloud.rds.RdsAccount(`example-${range.value}`, {\n        dbInstanceId: exampleInstance[range.value].id,\n        accountName: std.format({\n            input: \"example_name_%d\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        accountPassword: std.format({\n            input: \"example_password_%d\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst exampleDatabase: alicloud.rds.Database[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleDatabase.push(new alicloud.rds.Database(`example-${range.value}`, {\n        instanceId: exampleInstance[range.value].id,\n        name: std.format({\n            input: `${name}_%d`,\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst exampleAccountPrivilege: alicloud.rds.AccountPrivilege[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleAccountPrivilege.push(new alicloud.rds.AccountPrivilege(`example-${range.value}`, {\n        instanceId: exampleInstance[range.value].id,\n        accountName: exampleRdsAccount[range.value].name,\n        privilege: \"ReadWrite\",\n        dbNames: [exampleDatabase[range.value].name],\n    }));\n}\nconst exampleMigrationInstance = new alicloud.dts.MigrationInstance(\"example\", {\n    paymentType: \"PayAsYouGo\",\n    sourceEndpointEngineName: \"MySQL\",\n    sourceEndpointRegion: example.then(example =\u003e example.regions?.[0]?.id),\n    destinationEndpointEngineName: \"MySQL\",\n    destinationEndpointRegion: example.then(example =\u003e example.regions?.[0]?.id),\n    instanceClass: \"small\",\n    syncArchitecture: \"oneway\",\n});\nconst exampleMigrationJob = new alicloud.dts.MigrationJob(\"example\", {\n    dtsInstanceId: exampleMigrationInstance.id,\n    dtsJobName: name,\n    sourceEndpointInstanceType: \"RDS\",\n    sourceEndpointInstanceId: exampleAccountPrivilege[0].instanceId,\n    sourceEndpointEngineName: \"MySQL\",\n    sourceEndpointRegion: example.then(example =\u003e example.regions?.[0]?.id),\n    sourceEndpointUserName: exampleRdsAccount[0].accountName,\n    sourceEndpointPassword: exampleRdsAccount[0].accountPassword,\n    destinationEndpointInstanceType: \"RDS\",\n    destinationEndpointInstanceId: exampleAccountPrivilege[1].instanceId,\n    destinationEndpointEngineName: \"MySQL\",\n    destinationEndpointRegion: example.then(example =\u003e example.regions?.[0]?.id),\n    destinationEndpointUserName: exampleRdsAccount[1].accountName,\n    destinationEndpointPassword: exampleRdsAccount[1].accountPassword,\n    dbList: pulumi.jsonStringify(pulumi.all([exampleDatabase[0].name, exampleDatabase[1].name]).apply(([exampleDatabaseName, exampleDatabaseName1]) =\u003e {\n        [exampleDatabaseName]: {\n            name: exampleDatabaseName1,\n            all: true,\n        },\n    })),\n    structureInitialization: true,\n    dataInitialization: true,\n    dataSynchronization: true,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.get_regions(current=True)\nexample_get_zones = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=example_get_zones.zones[0].id,\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vpc_id=example_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=example_get_zones.zones[0].id,\n    vswitch_name=name)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=name,\n    vpc_id=example_network.id)\nexample_instance = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_instance.append(alicloud.rds.Instance(f\"example-{range['value']}\",\n        engine=\"MySQL\",\n        engine_version=\"8.0\",\n        instance_type=example_get_instance_classes.instance_classes[0].instance_class,\n        instance_storage=example_get_instance_classes.instance_classes[0].storage_range.min,\n        instance_charge_type=\"Postpaid\",\n        instance_name=std.format(input=f\"{name}_%d\",\n            args=[range[\"value\"] + 1]).result,\n        vswitch_id=example_switch.id,\n        monitoring_period=60,\n        db_instance_storage_type=\"cloud_essd\",\n        security_group_ids=[example_security_group.id]))\nexample_rds_account = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_rds_account.append(alicloud.rds.RdsAccount(f\"example-{range['value']}\",\n        db_instance_id=example_instance[range[\"value\"]].id,\n        account_name=std.format(input=\"example_name_%d\",\n            args=[range[\"value\"] + 1]).result,\n        account_password=std.format(input=\"example_password_%d\",\n            args=[range[\"value\"] + 1]).result))\nexample_database = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_database.append(alicloud.rds.Database(f\"example-{range['value']}\",\n        instance_id=example_instance[range[\"value\"]].id,\n        name=std.format(input=f\"{name}_%d\",\n            args=[range[\"value\"] + 1]).result))\nexample_account_privilege = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_account_privilege.append(alicloud.rds.AccountPrivilege(f\"example-{range['value']}\",\n        instance_id=example_instance[range[\"value\"]].id,\n        account_name=example_rds_account[range[\"value\"]].name,\n        privilege=\"ReadWrite\",\n        db_names=[example_database[range[\"value\"]].name]))\nexample_migration_instance = alicloud.dts.MigrationInstance(\"example\",\n    payment_type=\"PayAsYouGo\",\n    source_endpoint_engine_name=\"MySQL\",\n    source_endpoint_region=example.regions[0].id,\n    destination_endpoint_engine_name=\"MySQL\",\n    destination_endpoint_region=example.regions[0].id,\n    instance_class=\"small\",\n    sync_architecture=\"oneway\")\nexample_migration_job = alicloud.dts.MigrationJob(\"example\",\n    dts_instance_id=example_migration_instance.id,\n    dts_job_name=name,\n    source_endpoint_instance_type=\"RDS\",\n    source_endpoint_instance_id=example_account_privilege[0].instance_id,\n    source_endpoint_engine_name=\"MySQL\",\n    source_endpoint_region=example.regions[0].id,\n    source_endpoint_user_name=example_rds_account[0].account_name,\n    source_endpoint_password=example_rds_account[0].account_password,\n    destination_endpoint_instance_type=\"RDS\",\n    destination_endpoint_instance_id=example_account_privilege[1].instance_id,\n    destination_endpoint_engine_name=\"MySQL\",\n    destination_endpoint_region=example.regions[0].id,\n    destination_endpoint_user_name=example_rds_account[1].account_name,\n    destination_endpoint_password=example_rds_account[1].account_password,\n    db_list=pulumi.Output.json_dumps(pulumi.Output.all(\n        exampleDatabaseName=example_database[0].name,\n        exampleDatabaseName1=example_database[1].name\n).apply(lambda resolved_outputs: {\n        resolved_outputs['exampleDatabaseName']: {\n            \"name\": resolved_outputs['exampleDatabaseName1'],\n            \"all\": True,\n        },\n    })\n),\n    structure_initialization=True,\n    data_initialization=True,\n    data_synchronization=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var exampleGetZones = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = exampleGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VpcId = exampleNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = exampleGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = name,\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = name,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new List\u003cAliCloud.Rds.Instance\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleInstance.Add(new AliCloud.Rds.Instance($\"example-{range.Value}\", new()\n        {\n            Engine = \"MySQL\",\n            EngineVersion = \"8.0\",\n            InstanceType = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n            InstanceStorage = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n            InstanceChargeType = \"Postpaid\",\n            InstanceName = Std.Format.Invoke(new()\n            {\n                Input = $\"{name}_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            VswitchId = exampleSwitch.Id,\n            MonitoringPeriod = 60,\n            DbInstanceStorageType = \"cloud_essd\",\n            SecurityGroupIds = new[]\n            {\n                exampleSecurityGroup.Id,\n            },\n        }));\n    }\n    var exampleRdsAccount = new List\u003cAliCloud.Rds.RdsAccount\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleRdsAccount.Add(new AliCloud.Rds.RdsAccount($\"example-{range.Value}\", new()\n        {\n            DbInstanceId = exampleInstance[range.Value].Id,\n            AccountName = Std.Format.Invoke(new()\n            {\n                Input = \"example_name_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            AccountPassword = Std.Format.Invoke(new()\n            {\n                Input = \"example_password_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var exampleDatabase = new List\u003cAliCloud.Rds.Database\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleDatabase.Add(new AliCloud.Rds.Database($\"example-{range.Value}\", new()\n        {\n            InstanceId = exampleInstance[range.Value].Id,\n            Name = Std.Format.Invoke(new()\n            {\n                Input = $\"{name}_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var exampleAccountPrivilege = new List\u003cAliCloud.Rds.AccountPrivilege\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleAccountPrivilege.Add(new AliCloud.Rds.AccountPrivilege($\"example-{range.Value}\", new()\n        {\n            InstanceId = exampleInstance[range.Value].Id,\n            AccountName = exampleRdsAccount[range.Value].Name,\n            Privilege = \"ReadWrite\",\n            DbNames = new[]\n            {\n                exampleDatabase[range.Value].Name,\n            },\n        }));\n    }\n    var exampleMigrationInstance = new AliCloud.Dts.MigrationInstance(\"example\", new()\n    {\n        PaymentType = \"PayAsYouGo\",\n        SourceEndpointEngineName = \"MySQL\",\n        SourceEndpointRegion = example.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        DestinationEndpointEngineName = \"MySQL\",\n        DestinationEndpointRegion = example.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        InstanceClass = \"small\",\n        SyncArchitecture = \"oneway\",\n    });\n\n    var exampleMigrationJob = new AliCloud.Dts.MigrationJob(\"example\", new()\n    {\n        DtsInstanceId = exampleMigrationInstance.Id,\n        DtsJobName = name,\n        SourceEndpointInstanceType = \"RDS\",\n        SourceEndpointInstanceId = exampleAccountPrivilege[0].InstanceId,\n        SourceEndpointEngineName = \"MySQL\",\n        SourceEndpointRegion = example.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        SourceEndpointUserName = exampleRdsAccount[0].AccountName,\n        SourceEndpointPassword = exampleRdsAccount[0].AccountPassword,\n        DestinationEndpointInstanceType = \"RDS\",\n        DestinationEndpointInstanceId = exampleAccountPrivilege[1].InstanceId,\n        DestinationEndpointEngineName = \"MySQL\",\n        DestinationEndpointRegion = example.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        DestinationEndpointUserName = exampleRdsAccount[1].AccountName,\n        DestinationEndpointPassword = exampleRdsAccount[1].AccountPassword,\n        DbList = Output.JsonSerialize(Output.Create(Output.Tuple(exampleDatabase[0].Name, exampleDatabase[1].Name).Apply(values =\u003e\n        {\n            var exampleDatabaseName = values.Item1;\n            var exampleDatabaseName1 = values.Item2;\n            return \n            {\n                { exampleDatabaseName, \n                {\n                    { \"name\", exampleDatabaseName1 },\n                    { \"all\", true },\n                } },\n            };\n        }))),\n        StructureInitialization = true,\n        DataInitialization = true,\n        DataSynchronization = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dts\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetZones, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(exampleGetZones.Zones[0].Id),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(exampleGetZones.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: fmt.Sprintf(\"%v%v\", name, \"_%d\"),\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar exampleInstance []*rds.Instance\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := rds.NewInstance(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026rds.InstanceArgs{\n\t\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\t\tInstanceType:          pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\t\tInstanceStorage:       pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\t\tInstanceName:          pulumi.String(invokeFormat.Result),\n\t\t\t\tVswitchId:             exampleSwitch.ID(),\n\t\t\t\tMonitoringPeriod:      pulumi.Int(60),\n\t\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texampleInstance = append(exampleInstance, __res)\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"example_name_%d\",\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat2, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"example_password_%d\",\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar exampleRdsAccount []*rds.RdsAccount\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := rds.NewRdsAccount(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026rds.RdsAccountArgs{\n\t\t\t\tDbInstanceId:    exampleInstance[val0].ID(),\n\t\t\t\tAccountName:     pulumi.String(invokeFormat1.Result),\n\t\t\t\tAccountPassword: pulumi.String(invokeFormat2.Result),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texampleRdsAccount = append(exampleRdsAccount, __res)\n\t\t}\n\t\tinvokeFormat3, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: fmt.Sprintf(\"%v%v\", name, \"_%d\"),\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar exampleDatabase []*rds.Database\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := rds.NewDatabase(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026rds.DatabaseArgs{\n\t\t\t\tInstanceId: exampleInstance[val0].ID(),\n\t\t\t\tName:       pulumi.String(invokeFormat3.Result),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texampleDatabase = append(exampleDatabase, __res)\n\t\t}\n\t\tvar exampleAccountPrivilege []*rds.AccountPrivilege\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := rds.NewAccountPrivilege(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026rds.AccountPrivilegeArgs{\n\t\t\t\tInstanceId:  exampleInstance[val0].ID(),\n\t\t\t\tAccountName: exampleRdsAccount[val0].Name,\n\t\t\t\tPrivilege:   pulumi.String(\"ReadWrite\"),\n\t\t\t\tDbNames: pulumi.StringArray{\n\t\t\t\t\texampleDatabase[val0].Name,\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texampleAccountPrivilege = append(exampleAccountPrivilege, __res)\n\t\t}\n\t\texampleMigrationInstance, err := dts.NewMigrationInstance(ctx, \"example\", \u0026dts.MigrationInstanceArgs{\n\t\t\tPaymentType:                   pulumi.String(\"PayAsYouGo\"),\n\t\t\tSourceEndpointEngineName:      pulumi.String(\"MySQL\"),\n\t\t\tSourceEndpointRegion:          pulumi.String(example.Regions[0].Id),\n\t\t\tDestinationEndpointEngineName: pulumi.String(\"MySQL\"),\n\t\t\tDestinationEndpointRegion:     pulumi.String(example.Regions[0].Id),\n\t\t\tInstanceClass:                 pulumi.String(\"small\"),\n\t\t\tSyncArchitecture:              pulumi.String(\"oneway\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dts.NewMigrationJob(ctx, \"example\", \u0026dts.MigrationJobArgs{\n\t\t\tDtsInstanceId:                   exampleMigrationInstance.ID(),\n\t\t\tDtsJobName:                      pulumi.String(name),\n\t\t\tSourceEndpointInstanceType:      pulumi.String(\"RDS\"),\n\t\t\tSourceEndpointInstanceId:        exampleAccountPrivilege[0].InstanceId,\n\t\t\tSourceEndpointEngineName:        pulumi.String(\"MySQL\"),\n\t\t\tSourceEndpointRegion:            pulumi.String(example.Regions[0].Id),\n\t\t\tSourceEndpointUserName:          exampleRdsAccount[0].AccountName,\n\t\t\tSourceEndpointPassword:          exampleRdsAccount[0].AccountPassword,\n\t\t\tDestinationEndpointInstanceType: pulumi.String(\"RDS\"),\n\t\t\tDestinationEndpointInstanceId:   exampleAccountPrivilege[1].InstanceId,\n\t\t\tDestinationEndpointEngineName:   pulumi.String(\"MySQL\"),\n\t\t\tDestinationEndpointRegion:       pulumi.String(example.Regions[0].Id),\n\t\t\tDestinationEndpointUserName:     exampleRdsAccount[1].AccountName,\n\t\t\tDestinationEndpointPassword:     exampleRdsAccount[1].AccountPassword,\n\t\t\tDbList: pulumi.All(exampleDatabase[0].Name, exampleDatabase[1].Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\texampleDatabaseName := _args[0].(string)\n\t\t\t\texampleDatabaseName1 := _args[1].(string)\n\t\t\t\tvar _zero string\n\t\t\t\ttmpJSON0, err := json.Marshal(map[string]map[string]interface{}{\n\t\t\t\t\texampleDatabaseName: map[string]interface{}{\n\t\t\t\t\t\t\"name\": exampleDatabaseName1,\n\t\t\t\t\t\t\"all\":  true,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson0 := string(tmpJSON0)\n\t\t\t\treturn json0, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tStructureInitialization: pulumi.Bool(true),\n\t\t\tDataInitialization:      pulumi.Bool(true),\n\t\t\tDataSynchronization:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.rds.RdsAccount;\nimport com.pulumi.alicloud.rds.RdsAccountArgs;\nimport com.pulumi.alicloud.rds.Database;\nimport com.pulumi.alicloud.rds.DatabaseArgs;\nimport com.pulumi.alicloud.rds.AccountPrivilege;\nimport com.pulumi.alicloud.rds.AccountPrivilegeArgs;\nimport com.pulumi.alicloud.dts.MigrationInstance;\nimport com.pulumi.alicloud.dts.MigrationInstanceArgs;\nimport com.pulumi.alicloud.dts.MigrationJob;\nimport com.pulumi.alicloud.dts.MigrationJobArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var example = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var exampleGetZones = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var exampleGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(exampleGetZones.zones()[0].id())\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vpcId(exampleNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(exampleGetZones.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Instance(\"exampleInstance-\" + i, InstanceArgs.builder()\n                .engine(\"MySQL\")\n                .engineVersion(\"8.0\")\n                .instanceType(exampleGetInstanceClasses.instanceClasses()[0].instanceClass())\n                .instanceStorage(exampleGetInstanceClasses.instanceClasses()[0].storageRange().min())\n                .instanceChargeType(\"Postpaid\")\n                .instanceName(StdFunctions.format(FormatArgs.builder()\n                    .input(String.format(\"%s_%d\", name))\n                    .args(range.value() + 1)\n                    .build()).result())\n                .vswitchId(exampleSwitch.id())\n                .monitoringPeriod(60)\n                .dbInstanceStorageType(\"cloud_essd\")\n                .securityGroupIds(exampleSecurityGroup.id())\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c 2; i++) {\n            new RdsAccount(\"exampleRdsAccount-\" + i, RdsAccountArgs.builder()\n                .dbInstanceId(exampleInstance[range.value()].id())\n                .accountName(StdFunctions.format(FormatArgs.builder()\n                    .input(\"example_name_%d\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .accountPassword(StdFunctions.format(FormatArgs.builder()\n                    .input(\"example_password_%d\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c 2; i++) {\n            new Database(\"exampleDatabase-\" + i, DatabaseArgs.builder()\n                .instanceId(exampleInstance[range.value()].id())\n                .name(StdFunctions.format(FormatArgs.builder()\n                    .input(String.format(\"%s_%d\", name))\n                    .args(range.value() + 1)\n                    .build()).result())\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c 2; i++) {\n            new AccountPrivilege(\"exampleAccountPrivilege-\" + i, AccountPrivilegeArgs.builder()\n                .instanceId(exampleInstance[range.value()].id())\n                .accountName(exampleRdsAccount[range.value()].name())\n                .privilege(\"ReadWrite\")\n                .dbNames(exampleDatabase[range.value()].name())\n                .build());\n\n        \n}\n        var exampleMigrationInstance = new MigrationInstance(\"exampleMigrationInstance\", MigrationInstanceArgs.builder()\n            .paymentType(\"PayAsYouGo\")\n            .sourceEndpointEngineName(\"MySQL\")\n            .sourceEndpointRegion(example.regions()[0].id())\n            .destinationEndpointEngineName(\"MySQL\")\n            .destinationEndpointRegion(example.regions()[0].id())\n            .instanceClass(\"small\")\n            .syncArchitecture(\"oneway\")\n            .build());\n\n        var exampleMigrationJob = new MigrationJob(\"exampleMigrationJob\", MigrationJobArgs.builder()\n            .dtsInstanceId(exampleMigrationInstance.id())\n            .dtsJobName(name)\n            .sourceEndpointInstanceType(\"RDS\")\n            .sourceEndpointInstanceId(exampleAccountPrivilege[0].instanceId())\n            .sourceEndpointEngineName(\"MySQL\")\n            .sourceEndpointRegion(example.regions()[0].id())\n            .sourceEndpointUserName(exampleRdsAccount[0].accountName())\n            .sourceEndpointPassword(exampleRdsAccount[0].accountPassword())\n            .destinationEndpointInstanceType(\"RDS\")\n            .destinationEndpointInstanceId(exampleAccountPrivilege[1].instanceId())\n            .destinationEndpointEngineName(\"MySQL\")\n            .destinationEndpointRegion(example.regions()[0].id())\n            .destinationEndpointUserName(exampleRdsAccount[1].accountName())\n            .destinationEndpointPassword(exampleRdsAccount[1].accountPassword())\n            .dbList(Output.tuple(exampleDatabase[0].name(), exampleDatabase[1].name()).applyValue(values -\u003e {\n                var exampleDatabaseName = values.t1;\n                var exampleDatabaseName1 = values.t2;\n                return serializeJson(\n                    jsonObject(\n                        jsonProperty(exampleDatabaseName, jsonObject(\n                            jsonProperty(\"name\", exampleDatabaseName1),\n                            jsonProperty(\"all\", true)\n                        ))\n                    ));\n            }))\n            .structureInitialization(true)\n            .dataInitialization(true)\n            .dataSynchronization(true)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Notice\n\n1. The expiration time cannot be changed after the work of the annual and monthly subscription suspended;\n2. After the pay-as-you-go type job suspended, your job configuration fee will still be charged;\n3. If the task suspended for more than 6 hours, the task will not start successfully.\n4. Suspending the task will only stop writing to the target library, but will still continue to obtain the incremental log of the source, so that the task can be quickly resumed after the suspension is canceled. Therefore, some resources of the source library, such as bandwidth resources, will continue to be occupied during the period.\n5. Charges will continue during the task suspension period. If you need to stop charging, please release the instance\n6. When a DTS instance suspended for more than 7 days, the instance cannot be resumed, and the status will change from suspended to failed.\n\n## Import\n\nDTS Migration Job can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dts/migrationJob:MigrationJob example \u003cid\u003e\n```\n\n","properties":{"checkpoint":{"type":"string","description":"Start time in Unix timestamp format.\n"},"dataInitialization":{"type":"boolean","description":"Whether to execute DTS supports schema migration.\n"},"dataSynchronization":{"type":"boolean","description":"Whether to perform incremental data migration.\n"},"dbList":{"type":"string","description":"Migration object, in the format of JSON strings. For detailed definition instructions, please refer to [the description of migration, migration or subscription objects](https://help.aliyun.com/document_detail/209545.html).\n"},"destinationEndpointDatabaseName":{"type":"string","description":"The name of migrate the database.\n"},"destinationEndpointEngineName":{"type":"string","description":"The type of destination database. Valid values: `ADS`, `ADB30`, `AS400`, `DATAHUB`, `DB2`, `GREENPLUM`, `KAFKA`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `PostgreSQL`.\n"},"destinationEndpointInstanceId":{"type":"string","description":"The ID of destination instance.\n"},"destinationEndpointInstanceType":{"type":"string","description":"The type of destination instance. Valid values: `ADS`, `CEN`, `DATAHUB`, `DG`, `ECS`, `EXPRESS`, `GREENPLUM`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.\n"},"destinationEndpointIp":{"type":"string","description":"The ip of source endpoint.\n"},"destinationEndpointOracleSid":{"type":"string","description":"The SID of Oracle database.\n"},"destinationEndpointPassword":{"type":"string","description":"The password of database account.\n"},"destinationEndpointPort":{"type":"string","description":"The port of source endpoint.\n"},"destinationEndpointRegion":{"type":"string","description":"The region of destination instance.\n"},"destinationEndpointUserName":{"type":"string","description":"The username of database account.\n"},"dtsInstanceId":{"type":"string","description":"The Migration instance ID. The ID of \u003cspan pulumi-lang-nodejs=\"`alicloud.dts.MigrationInstance`\" pulumi-lang-dotnet=\"`alicloud.dts.MigrationInstance`\" pulumi-lang-go=\"`dts.MigrationInstance`\" pulumi-lang-python=\"`dts.MigrationInstance`\" pulumi-lang-yaml=\"`alicloud.dts.MigrationInstance`\" pulumi-lang-java=\"`alicloud.dts.MigrationInstance`\"\u003e`alicloud.dts.MigrationInstance`\u003c/span\u003e.\n"},"dtsJobName":{"type":"string","description":"The name of migration job.\n"},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`micro`\" pulumi-lang-dotnet=\"`Micro`\" pulumi-lang-go=\"`micro`\" pulumi-lang-python=\"`micro`\" pulumi-lang-yaml=\"`micro`\" pulumi-lang-java=\"`micro`\"\u003e`micro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xxlarge`\" pulumi-lang-dotnet=\"`Xxlarge`\" pulumi-lang-go=\"`xxlarge`\" pulumi-lang-python=\"`xxlarge`\" pulumi-lang-yaml=\"`xxlarge`\" pulumi-lang-java=\"`xxlarge`\"\u003e`xxlarge`\u003c/span\u003e.\n"},"sourceEndpointDatabaseName":{"type":"string","description":"The name of migrate the database.\n"},"sourceEndpointEngineName":{"type":"string","description":"The type of source database. Valid values: `AS400`, `DB2`, `DMSPOLARDB`, `HBASE`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `POSTGRESQL`, `TERADATA`.\n"},"sourceEndpointInstanceId":{"type":"string","description":"The ID of source instance.\n"},"sourceEndpointInstanceType":{"type":"string","description":"The type of source instance. Valid values: `CEN`, `DG`, `DISTRIBUTED_DMSLOGICDB`, `ECS`, `EXPRESS`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.\n"},"sourceEndpointIp":{"type":"string","description":"The ip of source endpoint.\n"},"sourceEndpointOracleSid":{"type":"string","description":"The SID of Oracle database.\n"},"sourceEndpointOwnerId":{"type":"string","description":"The Alibaba Cloud account ID to which the source instance belongs.\n"},"sourceEndpointPassword":{"type":"string","description":"The password of database account.\n"},"sourceEndpointPort":{"type":"string","description":"The port of source endpoint.\n"},"sourceEndpointRegion":{"type":"string","description":"The region of source instance.\n"},"sourceEndpointRole":{"type":"string","description":"The name of the role configured for the cloud account to which the source instance belongs.\n"},"sourceEndpointUserName":{"type":"string","description":"The username of database account.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Migrating`, `Suspending`. You can suspend the task by specifying `Suspending` and start the task by specifying `Migrating`.\n"},"structureInitialization":{"type":"boolean","description":"Whether to perform a database table structure to migrate.\n"}},"required":["checkpoint","dataInitialization","dataSynchronization","dbList","destinationEndpointEngineName","destinationEndpointInstanceType","dtsInstanceId","dtsJobName","instanceClass","sourceEndpointEngineName","sourceEndpointInstanceType","status","structureInitialization"],"inputProperties":{"checkpoint":{"type":"string","description":"Start time in Unix timestamp format.\n","willReplaceOnChanges":true},"dataInitialization":{"type":"boolean","description":"Whether to execute DTS supports schema migration.\n","willReplaceOnChanges":true},"dataSynchronization":{"type":"boolean","description":"Whether to perform incremental data migration.\n","willReplaceOnChanges":true},"dbList":{"type":"string","description":"Migration object, in the format of JSON strings. For detailed definition instructions, please refer to [the description of migration, migration or subscription objects](https://help.aliyun.com/document_detail/209545.html).\n","willReplaceOnChanges":true},"destinationEndpointDatabaseName":{"type":"string","description":"The name of migrate the database.\n","willReplaceOnChanges":true},"destinationEndpointEngineName":{"type":"string","description":"The type of destination database. Valid values: `ADS`, `ADB30`, `AS400`, `DATAHUB`, `DB2`, `GREENPLUM`, `KAFKA`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `PostgreSQL`.\n","willReplaceOnChanges":true},"destinationEndpointInstanceId":{"type":"string","description":"The ID of destination instance.\n","willReplaceOnChanges":true},"destinationEndpointInstanceType":{"type":"string","description":"The type of destination instance. Valid values: `ADS`, `CEN`, `DATAHUB`, `DG`, `ECS`, `EXPRESS`, `GREENPLUM`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.\n","willReplaceOnChanges":true},"destinationEndpointIp":{"type":"string","description":"The ip of source endpoint.\n","willReplaceOnChanges":true},"destinationEndpointOracleSid":{"type":"string","description":"The SID of Oracle database.\n","willReplaceOnChanges":true},"destinationEndpointPassword":{"type":"string","description":"The password of database account.\n"},"destinationEndpointPort":{"type":"string","description":"The port of source endpoint.\n","willReplaceOnChanges":true},"destinationEndpointRegion":{"type":"string","description":"The region of destination instance.\n","willReplaceOnChanges":true},"destinationEndpointUserName":{"type":"string","description":"The username of database account.\n","willReplaceOnChanges":true},"dtsInstanceId":{"type":"string","description":"The Migration instance ID. The ID of \u003cspan pulumi-lang-nodejs=\"`alicloud.dts.MigrationInstance`\" pulumi-lang-dotnet=\"`alicloud.dts.MigrationInstance`\" pulumi-lang-go=\"`dts.MigrationInstance`\" pulumi-lang-python=\"`dts.MigrationInstance`\" pulumi-lang-yaml=\"`alicloud.dts.MigrationInstance`\" pulumi-lang-java=\"`alicloud.dts.MigrationInstance`\"\u003e`alicloud.dts.MigrationInstance`\u003c/span\u003e.\n","willReplaceOnChanges":true},"dtsJobName":{"type":"string","description":"The name of migration job.\n","willReplaceOnChanges":true},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`micro`\" pulumi-lang-dotnet=\"`Micro`\" pulumi-lang-go=\"`micro`\" pulumi-lang-python=\"`micro`\" pulumi-lang-yaml=\"`micro`\" pulumi-lang-java=\"`micro`\"\u003e`micro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xxlarge`\" pulumi-lang-dotnet=\"`Xxlarge`\" pulumi-lang-go=\"`xxlarge`\" pulumi-lang-python=\"`xxlarge`\" pulumi-lang-yaml=\"`xxlarge`\" pulumi-lang-java=\"`xxlarge`\"\u003e`xxlarge`\u003c/span\u003e.\n"},"sourceEndpointDatabaseName":{"type":"string","description":"The name of migrate the database.\n","willReplaceOnChanges":true},"sourceEndpointEngineName":{"type":"string","description":"The type of source database. Valid values: `AS400`, `DB2`, `DMSPOLARDB`, `HBASE`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `POSTGRESQL`, `TERADATA`.\n","willReplaceOnChanges":true},"sourceEndpointInstanceId":{"type":"string","description":"The ID of source instance.\n","willReplaceOnChanges":true},"sourceEndpointInstanceType":{"type":"string","description":"The type of source instance. Valid values: `CEN`, `DG`, `DISTRIBUTED_DMSLOGICDB`, `ECS`, `EXPRESS`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.\n","willReplaceOnChanges":true},"sourceEndpointIp":{"type":"string","description":"The ip of source endpoint.\n","willReplaceOnChanges":true},"sourceEndpointOracleSid":{"type":"string","description":"The SID of Oracle database.\n","willReplaceOnChanges":true},"sourceEndpointOwnerId":{"type":"string","description":"The Alibaba Cloud account ID to which the source instance belongs.\n","willReplaceOnChanges":true},"sourceEndpointPassword":{"type":"string","description":"The password of database account.\n"},"sourceEndpointPort":{"type":"string","description":"The port of source endpoint.\n","willReplaceOnChanges":true},"sourceEndpointRegion":{"type":"string","description":"The region of source instance.\n","willReplaceOnChanges":true},"sourceEndpointRole":{"type":"string","description":"The name of the role configured for the cloud account to which the source instance belongs.\n","willReplaceOnChanges":true},"sourceEndpointUserName":{"type":"string","description":"The username of database account.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `Migrating`, `Suspending`. You can suspend the task by specifying `Suspending` and start the task by specifying `Migrating`.\n"},"structureInitialization":{"type":"boolean","description":"Whether to perform a database table structure to migrate.\n","willReplaceOnChanges":true}},"requiredInputs":["dataInitialization","dataSynchronization","dbList","destinationEndpointEngineName","destinationEndpointInstanceType","dtsInstanceId","sourceEndpointEngineName","sourceEndpointInstanceType","structureInitialization"],"stateInputs":{"description":"Input properties used for looking up and filtering MigrationJob resources.\n","properties":{"checkpoint":{"type":"string","description":"Start time in Unix timestamp format.\n","willReplaceOnChanges":true},"dataInitialization":{"type":"boolean","description":"Whether to execute DTS supports schema migration.\n","willReplaceOnChanges":true},"dataSynchronization":{"type":"boolean","description":"Whether to perform incremental data migration.\n","willReplaceOnChanges":true},"dbList":{"type":"string","description":"Migration object, in the format of JSON strings. For detailed definition instructions, please refer to [the description of migration, migration or subscription objects](https://help.aliyun.com/document_detail/209545.html).\n","willReplaceOnChanges":true},"destinationEndpointDatabaseName":{"type":"string","description":"The name of migrate the database.\n","willReplaceOnChanges":true},"destinationEndpointEngineName":{"type":"string","description":"The type of destination database. Valid values: `ADS`, `ADB30`, `AS400`, `DATAHUB`, `DB2`, `GREENPLUM`, `KAFKA`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `PostgreSQL`.\n","willReplaceOnChanges":true},"destinationEndpointInstanceId":{"type":"string","description":"The ID of destination instance.\n","willReplaceOnChanges":true},"destinationEndpointInstanceType":{"type":"string","description":"The type of destination instance. Valid values: `ADS`, `CEN`, `DATAHUB`, `DG`, `ECS`, `EXPRESS`, `GREENPLUM`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.\n","willReplaceOnChanges":true},"destinationEndpointIp":{"type":"string","description":"The ip of source endpoint.\n","willReplaceOnChanges":true},"destinationEndpointOracleSid":{"type":"string","description":"The SID of Oracle database.\n","willReplaceOnChanges":true},"destinationEndpointPassword":{"type":"string","description":"The password of database account.\n"},"destinationEndpointPort":{"type":"string","description":"The port of source endpoint.\n","willReplaceOnChanges":true},"destinationEndpointRegion":{"type":"string","description":"The region of destination instance.\n","willReplaceOnChanges":true},"destinationEndpointUserName":{"type":"string","description":"The username of database account.\n","willReplaceOnChanges":true},"dtsInstanceId":{"type":"string","description":"The Migration instance ID. The ID of \u003cspan pulumi-lang-nodejs=\"`alicloud.dts.MigrationInstance`\" pulumi-lang-dotnet=\"`alicloud.dts.MigrationInstance`\" pulumi-lang-go=\"`dts.MigrationInstance`\" pulumi-lang-python=\"`dts.MigrationInstance`\" pulumi-lang-yaml=\"`alicloud.dts.MigrationInstance`\" pulumi-lang-java=\"`alicloud.dts.MigrationInstance`\"\u003e`alicloud.dts.MigrationInstance`\u003c/span\u003e.\n","willReplaceOnChanges":true},"dtsJobName":{"type":"string","description":"The name of migration job.\n","willReplaceOnChanges":true},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`micro`\" pulumi-lang-dotnet=\"`Micro`\" pulumi-lang-go=\"`micro`\" pulumi-lang-python=\"`micro`\" pulumi-lang-yaml=\"`micro`\" pulumi-lang-java=\"`micro`\"\u003e`micro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xxlarge`\" pulumi-lang-dotnet=\"`Xxlarge`\" pulumi-lang-go=\"`xxlarge`\" pulumi-lang-python=\"`xxlarge`\" pulumi-lang-yaml=\"`xxlarge`\" pulumi-lang-java=\"`xxlarge`\"\u003e`xxlarge`\u003c/span\u003e.\n"},"sourceEndpointDatabaseName":{"type":"string","description":"The name of migrate the database.\n","willReplaceOnChanges":true},"sourceEndpointEngineName":{"type":"string","description":"The type of source database. Valid values: `AS400`, `DB2`, `DMSPOLARDB`, `HBASE`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `POSTGRESQL`, `TERADATA`.\n","willReplaceOnChanges":true},"sourceEndpointInstanceId":{"type":"string","description":"The ID of source instance.\n","willReplaceOnChanges":true},"sourceEndpointInstanceType":{"type":"string","description":"The type of source instance. Valid values: `CEN`, `DG`, `DISTRIBUTED_DMSLOGICDB`, `ECS`, `EXPRESS`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.\n","willReplaceOnChanges":true},"sourceEndpointIp":{"type":"string","description":"The ip of source endpoint.\n","willReplaceOnChanges":true},"sourceEndpointOracleSid":{"type":"string","description":"The SID of Oracle database.\n","willReplaceOnChanges":true},"sourceEndpointOwnerId":{"type":"string","description":"The Alibaba Cloud account ID to which the source instance belongs.\n","willReplaceOnChanges":true},"sourceEndpointPassword":{"type":"string","description":"The password of database account.\n"},"sourceEndpointPort":{"type":"string","description":"The port of source endpoint.\n","willReplaceOnChanges":true},"sourceEndpointRegion":{"type":"string","description":"The region of source instance.\n","willReplaceOnChanges":true},"sourceEndpointRole":{"type":"string","description":"The name of the role configured for the cloud account to which the source instance belongs.\n","willReplaceOnChanges":true},"sourceEndpointUserName":{"type":"string","description":"The username of database account.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `Migrating`, `Suspending`. You can suspend the task by specifying `Suspending` and start the task by specifying `Migrating`.\n"},"structureInitialization":{"type":"boolean","description":"Whether to perform a database table structure to migrate.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:dts/subscriptionJob:SubscriptionJob":{"description":"Provides a DTS Subscription Job resource.\n\nFor information about DTS Subscription Job and how to use it, see [What is Subscription Job](https://www.alibabacloud.com/help/en/data-transmission-service/latest/configuresubscription).\n\n\u003e **NOTE:** Available since v1.138.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = alicloud.getRegions({\n    current: true,\n});\nconst exampleGetZones = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst exampleGetInstanceClasses = exampleGetZones.then(exampleGetZones =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: exampleGetZones.zones?.[0]?.id,\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n}));\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vpcId: exampleNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: exampleGetZones.then(exampleGetZones =\u003e exampleGetZones.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: name,\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.rds.Instance(\"example\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceType: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    instanceChargeType: \"Postpaid\",\n    instanceName: name,\n    vswitchId: exampleSwitch.id,\n    monitoringPeriod: 60,\n    dbInstanceStorageType: \"cloud_essd\",\n    securityGroupIds: [exampleSecurityGroup.id],\n});\nconst exampleRdsAccount = new alicloud.rds.RdsAccount(\"example\", {\n    dbInstanceId: exampleInstance.id,\n    accountName: \"test_mysql\",\n    accountPassword: \"N1cetest\",\n});\nconst exampleDatabase = new alicloud.rds.Database(\"example\", {\n    instanceId: exampleInstance.id,\n    name: name,\n});\nconst exampleAccountPrivilege = new alicloud.rds.AccountPrivilege(\"example\", {\n    instanceId: exampleInstance.id,\n    accountName: exampleRdsAccount.accountName,\n    privilege: \"ReadWrite\",\n    dbNames: [exampleDatabase.name],\n});\nconst exampleSubscriptionJob = new alicloud.dts.SubscriptionJob(\"example\", {\n    dtsJobName: name,\n    paymentType: \"PayAsYouGo\",\n    sourceEndpointEngineName: \"MySQL\",\n    sourceEndpointRegion: example.then(example =\u003e example.regions?.[0]?.id),\n    sourceEndpointInstanceType: \"RDS\",\n    sourceEndpointInstanceId: exampleInstance.id,\n    sourceEndpointDatabaseName: exampleDatabase.name,\n    sourceEndpointUserName: exampleRdsAccount.accountName,\n    sourceEndpointPassword: exampleRdsAccount.accountPassword,\n    dbList: pulumi.jsonStringify(pulumi.all([exampleDatabase.name, exampleDatabase.name]).apply(([exampleDatabaseName, exampleDatabaseName1]) =\u003e {\n        [exampleDatabaseName]: {\n            name: exampleDatabaseName1,\n            all: true,\n        },\n    })),\n    subscriptionInstanceNetworkType: \"vpc\",\n    subscriptionInstanceVpcId: exampleNetwork.id,\n    subscriptionInstanceVswitchId: exampleSwitch.id,\n    status: \"Normal\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.get_regions(current=True)\nexample_get_zones = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=example_get_zones.zones[0].id,\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vpc_id=example_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=example_get_zones.zones[0].id,\n    vswitch_name=name)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=name,\n    vpc_id=example_network.id)\nexample_instance = alicloud.rds.Instance(\"example\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_type=example_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=example_get_instance_classes.instance_classes[0].storage_range.min,\n    instance_charge_type=\"Postpaid\",\n    instance_name=name,\n    vswitch_id=example_switch.id,\n    monitoring_period=60,\n    db_instance_storage_type=\"cloud_essd\",\n    security_group_ids=[example_security_group.id])\nexample_rds_account = alicloud.rds.RdsAccount(\"example\",\n    db_instance_id=example_instance.id,\n    account_name=\"test_mysql\",\n    account_password=\"N1cetest\")\nexample_database = alicloud.rds.Database(\"example\",\n    instance_id=example_instance.id,\n    name=name)\nexample_account_privilege = alicloud.rds.AccountPrivilege(\"example\",\n    instance_id=example_instance.id,\n    account_name=example_rds_account.account_name,\n    privilege=\"ReadWrite\",\n    db_names=[example_database.name])\nexample_subscription_job = alicloud.dts.SubscriptionJob(\"example\",\n    dts_job_name=name,\n    payment_type=\"PayAsYouGo\",\n    source_endpoint_engine_name=\"MySQL\",\n    source_endpoint_region=example.regions[0].id,\n    source_endpoint_instance_type=\"RDS\",\n    source_endpoint_instance_id=example_instance.id,\n    source_endpoint_database_name=example_database.name,\n    source_endpoint_user_name=example_rds_account.account_name,\n    source_endpoint_password=example_rds_account.account_password,\n    db_list=pulumi.Output.json_dumps(pulumi.Output.all(\n        exampleDatabaseName=example_database.name,\n        exampleDatabaseName1=example_database.name\n).apply(lambda resolved_outputs: {\n        resolved_outputs['exampleDatabaseName']: {\n            \"name\": resolved_outputs['exampleDatabaseName1'],\n            \"all\": True,\n        },\n    })\n),\n    subscription_instance_network_type=\"vpc\",\n    subscription_instance_vpc_id=example_network.id,\n    subscription_instance_vswitch_id=example_switch.id,\n    status=\"Normal\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var exampleGetZones = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = exampleGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VpcId = exampleNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = exampleGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = name,\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = name,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Rds.Instance(\"example\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceType = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = name,\n        VswitchId = exampleSwitch.Id,\n        MonitoringPeriod = 60,\n        DbInstanceStorageType = \"cloud_essd\",\n        SecurityGroupIds = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n    });\n\n    var exampleRdsAccount = new AliCloud.Rds.RdsAccount(\"example\", new()\n    {\n        DbInstanceId = exampleInstance.Id,\n        AccountName = \"test_mysql\",\n        AccountPassword = \"N1cetest\",\n    });\n\n    var exampleDatabase = new AliCloud.Rds.Database(\"example\", new()\n    {\n        InstanceId = exampleInstance.Id,\n        Name = name,\n    });\n\n    var exampleAccountPrivilege = new AliCloud.Rds.AccountPrivilege(\"example\", new()\n    {\n        InstanceId = exampleInstance.Id,\n        AccountName = exampleRdsAccount.AccountName,\n        Privilege = \"ReadWrite\",\n        DbNames = new[]\n        {\n            exampleDatabase.Name,\n        },\n    });\n\n    var exampleSubscriptionJob = new AliCloud.Dts.SubscriptionJob(\"example\", new()\n    {\n        DtsJobName = name,\n        PaymentType = \"PayAsYouGo\",\n        SourceEndpointEngineName = \"MySQL\",\n        SourceEndpointRegion = example.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        SourceEndpointInstanceType = \"RDS\",\n        SourceEndpointInstanceId = exampleInstance.Id,\n        SourceEndpointDatabaseName = exampleDatabase.Name,\n        SourceEndpointUserName = exampleRdsAccount.AccountName,\n        SourceEndpointPassword = exampleRdsAccount.AccountPassword,\n        DbList = Output.JsonSerialize(Output.Create(Output.Tuple(exampleDatabase.Name, exampleDatabase.Name).Apply(values =\u003e\n        {\n            var exampleDatabaseName = values.Item1;\n            var exampleDatabaseName1 = values.Item2;\n            return \n            {\n                { exampleDatabaseName, \n                {\n                    { \"name\", exampleDatabaseName1 },\n                    { \"all\", true },\n                } },\n            };\n        }))),\n        SubscriptionInstanceNetworkType = \"vpc\",\n        SubscriptionInstanceVpcId = exampleNetwork.Id,\n        SubscriptionInstanceVswitchId = exampleSwitch.Id,\n        Status = \"Normal\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dts\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetZones, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(exampleGetZones.Zones[0].Id),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(exampleGetZones.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := rds.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\tInstanceType:          pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceStorage:       pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t\tVswitchId:             exampleSwitch.ID(),\n\t\t\tMonitoringPeriod:      pulumi.Int(60),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRdsAccount, err := rds.NewRdsAccount(ctx, \"example\", \u0026rds.RdsAccountArgs{\n\t\t\tDbInstanceId:    exampleInstance.ID(),\n\t\t\tAccountName:     pulumi.String(\"test_mysql\"),\n\t\t\tAccountPassword: pulumi.String(\"N1cetest\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDatabase, err := rds.NewDatabase(ctx, \"example\", \u0026rds.DatabaseArgs{\n\t\t\tInstanceId: exampleInstance.ID(),\n\t\t\tName:       pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewAccountPrivilege(ctx, \"example\", \u0026rds.AccountPrivilegeArgs{\n\t\t\tInstanceId:  exampleInstance.ID(),\n\t\t\tAccountName: exampleRdsAccount.AccountName,\n\t\t\tPrivilege:   pulumi.String(\"ReadWrite\"),\n\t\t\tDbNames: pulumi.StringArray{\n\t\t\t\texampleDatabase.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dts.NewSubscriptionJob(ctx, \"example\", \u0026dts.SubscriptionJobArgs{\n\t\t\tDtsJobName:                 pulumi.String(name),\n\t\t\tPaymentType:                pulumi.String(\"PayAsYouGo\"),\n\t\t\tSourceEndpointEngineName:   pulumi.String(\"MySQL\"),\n\t\t\tSourceEndpointRegion:       pulumi.String(example.Regions[0].Id),\n\t\t\tSourceEndpointInstanceType: pulumi.String(\"RDS\"),\n\t\t\tSourceEndpointInstanceId:   exampleInstance.ID(),\n\t\t\tSourceEndpointDatabaseName: exampleDatabase.Name,\n\t\t\tSourceEndpointUserName:     exampleRdsAccount.AccountName,\n\t\t\tSourceEndpointPassword:     exampleRdsAccount.AccountPassword,\n\t\t\tDbList: pulumi.All(exampleDatabase.Name, exampleDatabase.Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\texampleDatabaseName := _args[0].(string)\n\t\t\t\texampleDatabaseName1 := _args[1].(string)\n\t\t\t\tvar _zero string\n\t\t\t\ttmpJSON0, err := json.Marshal(map[string]map[string]interface{}{\n\t\t\t\t\texampleDatabaseName: map[string]interface{}{\n\t\t\t\t\t\t\"name\": exampleDatabaseName1,\n\t\t\t\t\t\t\"all\":  true,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson0 := string(tmpJSON0)\n\t\t\t\treturn json0, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tSubscriptionInstanceNetworkType: pulumi.String(\"vpc\"),\n\t\t\tSubscriptionInstanceVpcId:       exampleNetwork.ID(),\n\t\t\tSubscriptionInstanceVswitchId:   exampleSwitch.ID(),\n\t\t\tStatus:                          pulumi.String(\"Normal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.RdsAccount;\nimport com.pulumi.alicloud.rds.RdsAccountArgs;\nimport com.pulumi.alicloud.rds.Database;\nimport com.pulumi.alicloud.rds.DatabaseArgs;\nimport com.pulumi.alicloud.rds.AccountPrivilege;\nimport com.pulumi.alicloud.rds.AccountPrivilegeArgs;\nimport com.pulumi.alicloud.dts.SubscriptionJob;\nimport com.pulumi.alicloud.dts.SubscriptionJobArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var example = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var exampleGetZones = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var exampleGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(exampleGetZones.zones()[0].id())\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vpcId(exampleNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(exampleGetZones.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceType(exampleGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(exampleGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(name)\n            .vswitchId(exampleSwitch.id())\n            .monitoringPeriod(60)\n            .dbInstanceStorageType(\"cloud_essd\")\n            .securityGroupIds(exampleSecurityGroup.id())\n            .build());\n\n        var exampleRdsAccount = new RdsAccount(\"exampleRdsAccount\", RdsAccountArgs.builder()\n            .dbInstanceId(exampleInstance.id())\n            .accountName(\"test_mysql\")\n            .accountPassword(\"N1cetest\")\n            .build());\n\n        var exampleDatabase = new Database(\"exampleDatabase\", DatabaseArgs.builder()\n            .instanceId(exampleInstance.id())\n            .name(name)\n            .build());\n\n        var exampleAccountPrivilege = new AccountPrivilege(\"exampleAccountPrivilege\", AccountPrivilegeArgs.builder()\n            .instanceId(exampleInstance.id())\n            .accountName(exampleRdsAccount.accountName())\n            .privilege(\"ReadWrite\")\n            .dbNames(exampleDatabase.name())\n            .build());\n\n        var exampleSubscriptionJob = new SubscriptionJob(\"exampleSubscriptionJob\", SubscriptionJobArgs.builder()\n            .dtsJobName(name)\n            .paymentType(\"PayAsYouGo\")\n            .sourceEndpointEngineName(\"MySQL\")\n            .sourceEndpointRegion(example.regions()[0].id())\n            .sourceEndpointInstanceType(\"RDS\")\n            .sourceEndpointInstanceId(exampleInstance.id())\n            .sourceEndpointDatabaseName(exampleDatabase.name())\n            .sourceEndpointUserName(exampleRdsAccount.accountName())\n            .sourceEndpointPassword(exampleRdsAccount.accountPassword())\n            .dbList(Output.tuple(exampleDatabase.name(), exampleDatabase.name()).applyValue(values -\u003e {\n                var exampleDatabaseName = values.t1;\n                var exampleDatabaseName1 = values.t2;\n                return serializeJson(\n                    jsonObject(\n                        jsonProperty(exampleDatabaseName, jsonObject(\n                            jsonProperty(\"name\", exampleDatabaseName1),\n                            jsonProperty(\"all\", true)\n                        ))\n                    ));\n            }))\n            .subscriptionInstanceNetworkType(\"vpc\")\n            .subscriptionInstanceVpcId(exampleNetwork.id())\n            .subscriptionInstanceVswitchId(exampleSwitch.id())\n            .status(\"Normal\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vpcId: ${exampleNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${exampleGetZones.zones[0].id}\n      vswitchName: ${name}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: ${name}\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:rds:Instance\n    name: example\n    properties:\n      engine: MySQL\n      engineVersion: '8.0'\n      instanceType: ${exampleGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceStorage: ${exampleGetInstanceClasses.instanceClasses[0].storageRange.min}\n      instanceChargeType: Postpaid\n      instanceName: ${name}\n      vswitchId: ${exampleSwitch.id}\n      monitoringPeriod: '60'\n      dbInstanceStorageType: cloud_essd\n      securityGroupIds:\n        - ${exampleSecurityGroup.id}\n  exampleRdsAccount:\n    type: alicloud:rds:RdsAccount\n    name: example\n    properties:\n      dbInstanceId: ${exampleInstance.id}\n      accountName: test_mysql\n      accountPassword: N1cetest\n  exampleDatabase:\n    type: alicloud:rds:Database\n    name: example\n    properties:\n      instanceId: ${exampleInstance.id}\n      name: ${name}\n  exampleAccountPrivilege:\n    type: alicloud:rds:AccountPrivilege\n    name: example\n    properties:\n      instanceId: ${exampleInstance.id}\n      accountName: ${exampleRdsAccount.accountName}\n      privilege: ReadWrite\n      dbNames:\n        - ${exampleDatabase.name}\n  exampleSubscriptionJob:\n    type: alicloud:dts:SubscriptionJob\n    name: example\n    properties:\n      dtsJobName: ${name}\n      paymentType: PayAsYouGo\n      sourceEndpointEngineName: MySQL\n      sourceEndpointRegion: ${example.regions[0].id}\n      sourceEndpointInstanceType: RDS\n      sourceEndpointInstanceId: ${exampleInstance.id}\n      sourceEndpointDatabaseName: ${exampleDatabase.name}\n      sourceEndpointUserName: ${exampleRdsAccount.accountName}\n      sourceEndpointPassword: ${exampleRdsAccount.accountPassword}\n      dbList:\n        fn::toJSON:\n          ${exampleDatabase.name}:\n            name: ${exampleDatabase.name}\n            all: true\n      subscriptionInstanceNetworkType: vpc\n      subscriptionInstanceVpcId: ${exampleNetwork.id}\n      subscriptionInstanceVswitchId: ${exampleSwitch.id}\n      status: Normal\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  exampleGetZones:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: PostPaid\n        category: Basic\n        dbInstanceStorageType: cloud_essd\n  exampleGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${exampleGetZones.zones[0].id}\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: PostPaid\n        category: Basic\n        dbInstanceStorageType: cloud_essd\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDTS Subscription Job can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dts/subscriptionJob:SubscriptionJob example \u003cid\u003e\n```\n\n","properties":{"checkpoint":{"type":"string","description":"Subscription start time in Unix timestamp format.\n"},"computeUnit":{"type":"integer","description":"[ETL specifications](https://help.aliyun.com/document_detail/212324.html). The unit is the computing unit ComputeUnit (CU), 1CU=1vCPU+4 GB memory. The value range is an integer greater than or equal to 2.\n"},"databaseCount":{"type":"integer","description":"The number of private customized RDS instances under PolarDB-X. The default value is 1. This parameter needs to be passed only when \u003cspan pulumi-lang-nodejs=\"`sourceEndpointEngineName`\" pulumi-lang-dotnet=\"`SourceEndpointEngineName`\" pulumi-lang-go=\"`sourceEndpointEngineName`\" pulumi-lang-python=\"`source_endpoint_engine_name`\" pulumi-lang-yaml=\"`sourceEndpointEngineName`\" pulumi-lang-java=\"`sourceEndpointEngineName`\"\u003e`source_endpoint_engine_name`\u003c/span\u003e equals \u003cspan pulumi-lang-nodejs=\"`drds`\" pulumi-lang-dotnet=\"`Drds`\" pulumi-lang-go=\"`drds`\" pulumi-lang-python=\"`drds`\" pulumi-lang-yaml=\"`drds`\" pulumi-lang-java=\"`drds`\"\u003e`drds`\u003c/span\u003e.\n"},"dbList":{"type":"string","description":"Subscription object, in the format of JSON strings. For detailed definitions, please refer to the description of migration, synchronization or subscription objects [document](https://help.aliyun.com/document_detail/209545.html).\n"},"delayNotice":{"type":"boolean","description":"This parameter decides whether to monitor the delay status. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"delayPhone":{"type":"string","description":"The mobile phone number of the contact who delayed the alarm. Multiple mobile phone numbers separated by English commas `,`. This parameter currently only supports China stations, and only supports mainland mobile phone numbers, and up to 10 mobile phone numbers can be passed in.\n"},"delayRuleTime":{"type":"string","description":"When \u003cspan pulumi-lang-nodejs=\"`delayNotice`\" pulumi-lang-dotnet=\"`DelayNotice`\" pulumi-lang-go=\"`delayNotice`\" pulumi-lang-python=\"`delay_notice`\" pulumi-lang-yaml=\"`delayNotice`\" pulumi-lang-java=\"`delayNotice`\"\u003e`delay_notice`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this parameter must be passed in. The threshold for triggering the delay alarm. The unit is second and needs to be an integer. The threshold can be set according to business needs. It is recommended to set it above 10 seconds to avoid delay fluctuations caused by network and database load.\n"},"destinationEndpointEngineName":{"type":"string","description":"The destination endpoint engine name. Valid values: `ADS`, `DB2`, `DRDS`, `DataHub`, `Greenplum`, `MSSQL`, `MySQL`, `PolarDB`, `PostgreSQL`, `Redis`, `Tablestore`, \u003cspan pulumi-lang-nodejs=\"`as400`\" pulumi-lang-dotnet=\"`As400`\" pulumi-lang-go=\"`as400`\" pulumi-lang-python=\"`as400`\" pulumi-lang-yaml=\"`as400`\" pulumi-lang-java=\"`as400`\"\u003e`as400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\"\u003e`kafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`odps`\" pulumi-lang-dotnet=\"`Odps`\" pulumi-lang-go=\"`odps`\" pulumi-lang-python=\"`odps`\" pulumi-lang-yaml=\"`odps`\" pulumi-lang-java=\"`odps`\"\u003e`odps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oracle`\" pulumi-lang-dotnet=\"`Oracle`\" pulumi-lang-go=\"`oracle`\" pulumi-lang-python=\"`oracle`\" pulumi-lang-yaml=\"`oracle`\" pulumi-lang-java=\"`oracle`\"\u003e`oracle`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbO`\" pulumi-lang-dotnet=\"`PolardbO`\" pulumi-lang-go=\"`polardbO`\" pulumi-lang-python=\"`polardb_o`\" pulumi-lang-yaml=\"`polardbO`\" pulumi-lang-java=\"`polardbO`\"\u003e`polardb_o`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbPg`\" pulumi-lang-dotnet=\"`PolardbPg`\" pulumi-lang-go=\"`polardbPg`\" pulumi-lang-python=\"`polardb_pg`\" pulumi-lang-yaml=\"`polardbPg`\" pulumi-lang-java=\"`polardbPg`\"\u003e`polardb_pg`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tidb`\" pulumi-lang-dotnet=\"`Tidb`\" pulumi-lang-go=\"`tidb`\" pulumi-lang-python=\"`tidb`\" pulumi-lang-yaml=\"`tidb`\" pulumi-lang-java=\"`tidb`\"\u003e`tidb`\u003c/span\u003e.\n"},"destinationRegion":{"type":"string","description":"The destination region. List of [supported regions](https://help.aliyun.com/document_detail/141033.html).\n"},"dtsInstanceId":{"type":"string","description":"The ID of subscription instance.\n"},"dtsJobName":{"type":"string","description":"The name of subscription task.\n"},"errorNotice":{"type":"boolean","description":"This parameter decides whether to monitor abnormal status. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"errorPhone":{"type":"string","description":"The mobile phone number of the contact for abnormal alarm. Multiple mobile phone numbers separated by English commas `,`. This parameter currently only supports China stations, and only supports mainland mobile phone numbers, and up to 10 mobile phone numbers can be passed in.\n"},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`micro`\" pulumi-lang-dotnet=\"`Micro`\" pulumi-lang-go=\"`micro`\" pulumi-lang-python=\"`micro`\" pulumi-lang-yaml=\"`micro`\" pulumi-lang-java=\"`micro`\"\u003e`micro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xxlarge`\" pulumi-lang-dotnet=\"`Xxlarge`\" pulumi-lang-go=\"`xxlarge`\" pulumi-lang-python=\"`xxlarge`\" pulumi-lang-yaml=\"`xxlarge`\" pulumi-lang-java=\"`xxlarge`\"\u003e`xxlarge`\u003c/span\u003e.\n"},"paymentDuration":{"type":"integer","description":"The duration of prepaid instance purchase. When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`, this parameter is valid and must be passed in.\n"},"paymentDurationUnit":{"type":"string","description":"The payment duration unit. Valid values: `Month`, `Year`. When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`, this parameter is valid and must be passed in.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`.\n"},"reserve":{"type":"string","description":"DTS reserves parameters, the format is a JSON string, you can pass in this parameter to complete the source and target database information (such as the data storage format of the target Kafka database, the instance ID of the cloud enterprise network CEN). For more information, please refer to the parameter description of the [Reserve parameter](https://help.aliyun.com/document_detail/176470.html).\n"},"sourceEndpointDatabaseName":{"type":"string","description":"To subscribe to the name of the database.\n"},"sourceEndpointEngineName":{"type":"string","description":"The source database type value is MySQL or Oracle. Valid values: `MySQL`, `Oracle`.\n"},"sourceEndpointInstanceId":{"type":"string","description":"The ID of source instance. Only when the type of source database instance was RDS MySQL, PolarDB-X 1.0, PolarDB MySQL, this parameter can be available and must be set.\n"},"sourceEndpointInstanceType":{"type":"string","description":"The type of source instance. Valid values: `RDS`, `PolarDB`, `DRDS`, `LocalInstance`, `ECS`, `Express`, `CEN`, \u003cspan pulumi-lang-nodejs=\"`dg`\" pulumi-lang-dotnet=\"`Dg`\" pulumi-lang-go=\"`dg`\" pulumi-lang-python=\"`dg`\" pulumi-lang-yaml=\"`dg`\" pulumi-lang-java=\"`dg`\"\u003e`dg`\u003c/span\u003e.\n"},"sourceEndpointIp":{"type":"string","description":"The IP of source endpoint.\n"},"sourceEndpointOracleSid":{"type":"string","description":"The SID of Oracle Database. When the source database is self-built Oracle and the Oracle database is a non-RAC instance, this parameter is available and must be passed in.\n"},"sourceEndpointOwnerId":{"type":"string","description":"The Alibaba Cloud account ID to which the source instance belongs. This parameter is only available when configuring data subscriptions across Alibaba Cloud accounts and must be passed in.\n"},"sourceEndpointPassword":{"type":"string","description":"The password of source database instance account.\n"},"sourceEndpointPort":{"type":"string","description":"The port of source database.\n"},"sourceEndpointRegion":{"type":"string","description":"The region of source database.\n"},"sourceEndpointRole":{"type":"string","description":"Both the authorization roles. When the source instance and configure subscriptions task of the Alibaba Cloud account is not the same as the need to pass the parameter, to specify the source of the authorization roles, to allow configuration subscription task of the Alibaba Cloud account to access the source of the source instance information.\n"},"sourceEndpointUserName":{"type":"string","description":"The username of source database instance account.\n"},"status":{"type":"string","description":"The status of the task. Valid values: `Normal`, `Abnormal`. When a task created, it is in this state of `NotStarted`. You can specify this state to `Normal` to start the job, and specify this state of `Abnormal` to stop the job. **Note: We treat the state `Starting` as the state of `Normal`, and consider the two states to be consistent on the user side.**\n"},"subscriptionDataTypeDdl":{"type":"boolean","description":"Whether to subscribe the DDL type of data. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"subscriptionDataTypeDml":{"type":"boolean","description":"Whether to subscribe the DML type of data. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"subscriptionInstanceNetworkType":{"type":"string","description":"Subscription task type of network value: classic: classic Network. Virtual Private Cloud (vpc): a vpc. Valid values: \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n"},"subscriptionInstanceVpcId":{"type":"string","description":"The ID of subscription vpc instance. When the value of \u003cspan pulumi-lang-nodejs=\"`subscriptionInstanceNetworkType`\" pulumi-lang-dotnet=\"`SubscriptionInstanceNetworkType`\" pulumi-lang-go=\"`subscriptionInstanceNetworkType`\" pulumi-lang-python=\"`subscription_instance_network_type`\" pulumi-lang-yaml=\"`subscriptionInstanceNetworkType`\" pulumi-lang-java=\"`subscriptionInstanceNetworkType`\"\u003e`subscription_instance_network_type`\u003c/span\u003e is vpc, this parameter is available and must be passed in.\n"},"subscriptionInstanceVswitchId":{"type":"string","description":"The ID of subscription VSwitch instance. When the value of \u003cspan pulumi-lang-nodejs=\"`subscriptionInstanceNetworkType`\" pulumi-lang-dotnet=\"`SubscriptionInstanceNetworkType`\" pulumi-lang-go=\"`subscriptionInstanceNetworkType`\" pulumi-lang-python=\"`subscription_instance_network_type`\" pulumi-lang-yaml=\"`subscriptionInstanceNetworkType`\" pulumi-lang-java=\"`subscriptionInstanceNetworkType`\"\u003e`subscription_instance_network_type`\u003c/span\u003e is vpc, this parameter is available and must be passed in.\n"},"syncArchitecture":{"type":"string","description":"The sync architecture. Valid values: \u003cspan pulumi-lang-nodejs=\"`bidirectional`\" pulumi-lang-dotnet=\"`Bidirectional`\" pulumi-lang-go=\"`bidirectional`\" pulumi-lang-python=\"`bidirectional`\" pulumi-lang-yaml=\"`bidirectional`\" pulumi-lang-java=\"`bidirectional`\"\u003e`bidirectional`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oneway`\" pulumi-lang-dotnet=\"`Oneway`\" pulumi-lang-go=\"`oneway`\" pulumi-lang-python=\"`oneway`\" pulumi-lang-yaml=\"`oneway`\" pulumi-lang-java=\"`oneway`\"\u003e`oneway`\u003c/span\u003e.\n"},"synchronizationDirection":{"type":"string","description":"The synchronization direction. Valid values: `Forward`, `Reverse`. When the topology type of the data synchronization instance is bidirectional, it can be passed in to reverse to start the reverse synchronization link.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["checkpoint","dtsInstanceId","paymentType","sourceEndpointEngineName","sourceEndpointInstanceType","sourceEndpointRegion","status","subscriptionDataTypeDdl","subscriptionDataTypeDml"],"inputProperties":{"checkpoint":{"type":"string","description":"Subscription start time in Unix timestamp format.\n"},"computeUnit":{"type":"integer","description":"[ETL specifications](https://help.aliyun.com/document_detail/212324.html). The unit is the computing unit ComputeUnit (CU), 1CU=1vCPU+4 GB memory. The value range is an integer greater than or equal to 2.\n"},"databaseCount":{"type":"integer","description":"The number of private customized RDS instances under PolarDB-X. The default value is 1. This parameter needs to be passed only when \u003cspan pulumi-lang-nodejs=\"`sourceEndpointEngineName`\" pulumi-lang-dotnet=\"`SourceEndpointEngineName`\" pulumi-lang-go=\"`sourceEndpointEngineName`\" pulumi-lang-python=\"`source_endpoint_engine_name`\" pulumi-lang-yaml=\"`sourceEndpointEngineName`\" pulumi-lang-java=\"`sourceEndpointEngineName`\"\u003e`source_endpoint_engine_name`\u003c/span\u003e equals \u003cspan pulumi-lang-nodejs=\"`drds`\" pulumi-lang-dotnet=\"`Drds`\" pulumi-lang-go=\"`drds`\" pulumi-lang-python=\"`drds`\" pulumi-lang-yaml=\"`drds`\" pulumi-lang-java=\"`drds`\"\u003e`drds`\u003c/span\u003e.\n"},"dbList":{"type":"string","description":"Subscription object, in the format of JSON strings. For detailed definitions, please refer to the description of migration, synchronization or subscription objects [document](https://help.aliyun.com/document_detail/209545.html).\n"},"delayNotice":{"type":"boolean","description":"This parameter decides whether to monitor the delay status. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"delayPhone":{"type":"string","description":"The mobile phone number of the contact who delayed the alarm. Multiple mobile phone numbers separated by English commas `,`. This parameter currently only supports China stations, and only supports mainland mobile phone numbers, and up to 10 mobile phone numbers can be passed in.\n"},"delayRuleTime":{"type":"string","description":"When \u003cspan pulumi-lang-nodejs=\"`delayNotice`\" pulumi-lang-dotnet=\"`DelayNotice`\" pulumi-lang-go=\"`delayNotice`\" pulumi-lang-python=\"`delay_notice`\" pulumi-lang-yaml=\"`delayNotice`\" pulumi-lang-java=\"`delayNotice`\"\u003e`delay_notice`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this parameter must be passed in. The threshold for triggering the delay alarm. The unit is second and needs to be an integer. The threshold can be set according to business needs. It is recommended to set it above 10 seconds to avoid delay fluctuations caused by network and database load.\n"},"destinationEndpointEngineName":{"type":"string","description":"The destination endpoint engine name. Valid values: `ADS`, `DB2`, `DRDS`, `DataHub`, `Greenplum`, `MSSQL`, `MySQL`, `PolarDB`, `PostgreSQL`, `Redis`, `Tablestore`, \u003cspan pulumi-lang-nodejs=\"`as400`\" pulumi-lang-dotnet=\"`As400`\" pulumi-lang-go=\"`as400`\" pulumi-lang-python=\"`as400`\" pulumi-lang-yaml=\"`as400`\" pulumi-lang-java=\"`as400`\"\u003e`as400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\"\u003e`kafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`odps`\" pulumi-lang-dotnet=\"`Odps`\" pulumi-lang-go=\"`odps`\" pulumi-lang-python=\"`odps`\" pulumi-lang-yaml=\"`odps`\" pulumi-lang-java=\"`odps`\"\u003e`odps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oracle`\" pulumi-lang-dotnet=\"`Oracle`\" pulumi-lang-go=\"`oracle`\" pulumi-lang-python=\"`oracle`\" pulumi-lang-yaml=\"`oracle`\" pulumi-lang-java=\"`oracle`\"\u003e`oracle`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbO`\" pulumi-lang-dotnet=\"`PolardbO`\" pulumi-lang-go=\"`polardbO`\" pulumi-lang-python=\"`polardb_o`\" pulumi-lang-yaml=\"`polardbO`\" pulumi-lang-java=\"`polardbO`\"\u003e`polardb_o`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbPg`\" pulumi-lang-dotnet=\"`PolardbPg`\" pulumi-lang-go=\"`polardbPg`\" pulumi-lang-python=\"`polardb_pg`\" pulumi-lang-yaml=\"`polardbPg`\" pulumi-lang-java=\"`polardbPg`\"\u003e`polardb_pg`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tidb`\" pulumi-lang-dotnet=\"`Tidb`\" pulumi-lang-go=\"`tidb`\" pulumi-lang-python=\"`tidb`\" pulumi-lang-yaml=\"`tidb`\" pulumi-lang-java=\"`tidb`\"\u003e`tidb`\u003c/span\u003e.\n"},"destinationRegion":{"type":"string","description":"The destination region. List of [supported regions](https://help.aliyun.com/document_detail/141033.html).\n"},"dtsInstanceId":{"type":"string","description":"The ID of subscription instance.\n","willReplaceOnChanges":true},"dtsJobName":{"type":"string","description":"The name of subscription task.\n"},"errorNotice":{"type":"boolean","description":"This parameter decides whether to monitor abnormal status. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"errorPhone":{"type":"string","description":"The mobile phone number of the contact for abnormal alarm. Multiple mobile phone numbers separated by English commas `,`. This parameter currently only supports China stations, and only supports mainland mobile phone numbers, and up to 10 mobile phone numbers can be passed in.\n"},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`micro`\" pulumi-lang-dotnet=\"`Micro`\" pulumi-lang-go=\"`micro`\" pulumi-lang-python=\"`micro`\" pulumi-lang-yaml=\"`micro`\" pulumi-lang-java=\"`micro`\"\u003e`micro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xxlarge`\" pulumi-lang-dotnet=\"`Xxlarge`\" pulumi-lang-go=\"`xxlarge`\" pulumi-lang-python=\"`xxlarge`\" pulumi-lang-yaml=\"`xxlarge`\" pulumi-lang-java=\"`xxlarge`\"\u003e`xxlarge`\u003c/span\u003e.\n"},"paymentDuration":{"type":"integer","description":"The duration of prepaid instance purchase. When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`, this parameter is valid and must be passed in.\n"},"paymentDurationUnit":{"type":"string","description":"The payment duration unit. Valid values: `Month`, `Year`. When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`, this parameter is valid and must be passed in.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`.\n","willReplaceOnChanges":true},"reserve":{"type":"string","description":"DTS reserves parameters, the format is a JSON string, you can pass in this parameter to complete the source and target database information (such as the data storage format of the target Kafka database, the instance ID of the cloud enterprise network CEN). For more information, please refer to the parameter description of the [Reserve parameter](https://help.aliyun.com/document_detail/176470.html).\n"},"sourceEndpointDatabaseName":{"type":"string","description":"To subscribe to the name of the database.\n"},"sourceEndpointEngineName":{"type":"string","description":"The source database type value is MySQL or Oracle. Valid values: `MySQL`, `Oracle`.\n"},"sourceEndpointInstanceId":{"type":"string","description":"The ID of source instance. Only when the type of source database instance was RDS MySQL, PolarDB-X 1.0, PolarDB MySQL, this parameter can be available and must be set.\n"},"sourceEndpointInstanceType":{"type":"string","description":"The type of source instance. Valid values: `RDS`, `PolarDB`, `DRDS`, `LocalInstance`, `ECS`, `Express`, `CEN`, \u003cspan pulumi-lang-nodejs=\"`dg`\" pulumi-lang-dotnet=\"`Dg`\" pulumi-lang-go=\"`dg`\" pulumi-lang-python=\"`dg`\" pulumi-lang-yaml=\"`dg`\" pulumi-lang-java=\"`dg`\"\u003e`dg`\u003c/span\u003e.\n"},"sourceEndpointIp":{"type":"string","description":"The IP of source endpoint.\n"},"sourceEndpointOracleSid":{"type":"string","description":"The SID of Oracle Database. When the source database is self-built Oracle and the Oracle database is a non-RAC instance, this parameter is available and must be passed in.\n"},"sourceEndpointOwnerId":{"type":"string","description":"The Alibaba Cloud account ID to which the source instance belongs. This parameter is only available when configuring data subscriptions across Alibaba Cloud accounts and must be passed in.\n"},"sourceEndpointPassword":{"type":"string","description":"The password of source database instance account.\n"},"sourceEndpointPort":{"type":"string","description":"The port of source database.\n"},"sourceEndpointRegion":{"type":"string","description":"The region of source database.\n"},"sourceEndpointRole":{"type":"string","description":"Both the authorization roles. When the source instance and configure subscriptions task of the Alibaba Cloud account is not the same as the need to pass the parameter, to specify the source of the authorization roles, to allow configuration subscription task of the Alibaba Cloud account to access the source of the source instance information.\n"},"sourceEndpointUserName":{"type":"string","description":"The username of source database instance account.\n"},"status":{"type":"string","description":"The status of the task. Valid values: `Normal`, `Abnormal`. When a task created, it is in this state of `NotStarted`. You can specify this state to `Normal` to start the job, and specify this state of `Abnormal` to stop the job. **Note: We treat the state `Starting` as the state of `Normal`, and consider the two states to be consistent on the user side.**\n"},"subscriptionDataTypeDdl":{"type":"boolean","description":"Whether to subscribe the DDL type of data. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"subscriptionDataTypeDml":{"type":"boolean","description":"Whether to subscribe the DML type of data. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"subscriptionInstanceNetworkType":{"type":"string","description":"Subscription task type of network value: classic: classic Network. Virtual Private Cloud (vpc): a vpc. Valid values: \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n","willReplaceOnChanges":true},"subscriptionInstanceVpcId":{"type":"string","description":"The ID of subscription vpc instance. When the value of \u003cspan pulumi-lang-nodejs=\"`subscriptionInstanceNetworkType`\" pulumi-lang-dotnet=\"`SubscriptionInstanceNetworkType`\" pulumi-lang-go=\"`subscriptionInstanceNetworkType`\" pulumi-lang-python=\"`subscription_instance_network_type`\" pulumi-lang-yaml=\"`subscriptionInstanceNetworkType`\" pulumi-lang-java=\"`subscriptionInstanceNetworkType`\"\u003e`subscription_instance_network_type`\u003c/span\u003e is vpc, this parameter is available and must be passed in.\n"},"subscriptionInstanceVswitchId":{"type":"string","description":"The ID of subscription VSwitch instance. When the value of \u003cspan pulumi-lang-nodejs=\"`subscriptionInstanceNetworkType`\" pulumi-lang-dotnet=\"`SubscriptionInstanceNetworkType`\" pulumi-lang-go=\"`subscriptionInstanceNetworkType`\" pulumi-lang-python=\"`subscription_instance_network_type`\" pulumi-lang-yaml=\"`subscriptionInstanceNetworkType`\" pulumi-lang-java=\"`subscriptionInstanceNetworkType`\"\u003e`subscription_instance_network_type`\u003c/span\u003e is vpc, this parameter is available and must be passed in.\n"},"syncArchitecture":{"type":"string","description":"The sync architecture. Valid values: \u003cspan pulumi-lang-nodejs=\"`bidirectional`\" pulumi-lang-dotnet=\"`Bidirectional`\" pulumi-lang-go=\"`bidirectional`\" pulumi-lang-python=\"`bidirectional`\" pulumi-lang-yaml=\"`bidirectional`\" pulumi-lang-java=\"`bidirectional`\"\u003e`bidirectional`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oneway`\" pulumi-lang-dotnet=\"`Oneway`\" pulumi-lang-go=\"`oneway`\" pulumi-lang-python=\"`oneway`\" pulumi-lang-yaml=\"`oneway`\" pulumi-lang-java=\"`oneway`\"\u003e`oneway`\u003c/span\u003e.\n"},"synchronizationDirection":{"type":"string","description":"The synchronization direction. Valid values: `Forward`, `Reverse`. When the topology type of the data synchronization instance is bidirectional, it can be passed in to reverse to start the reverse synchronization link.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"requiredInputs":["paymentType","sourceEndpointEngineName","sourceEndpointInstanceType","sourceEndpointRegion"],"stateInputs":{"description":"Input properties used for looking up and filtering SubscriptionJob resources.\n","properties":{"checkpoint":{"type":"string","description":"Subscription start time in Unix timestamp format.\n"},"computeUnit":{"type":"integer","description":"[ETL specifications](https://help.aliyun.com/document_detail/212324.html). The unit is the computing unit ComputeUnit (CU), 1CU=1vCPU+4 GB memory. The value range is an integer greater than or equal to 2.\n"},"databaseCount":{"type":"integer","description":"The number of private customized RDS instances under PolarDB-X. The default value is 1. This parameter needs to be passed only when \u003cspan pulumi-lang-nodejs=\"`sourceEndpointEngineName`\" pulumi-lang-dotnet=\"`SourceEndpointEngineName`\" pulumi-lang-go=\"`sourceEndpointEngineName`\" pulumi-lang-python=\"`source_endpoint_engine_name`\" pulumi-lang-yaml=\"`sourceEndpointEngineName`\" pulumi-lang-java=\"`sourceEndpointEngineName`\"\u003e`source_endpoint_engine_name`\u003c/span\u003e equals \u003cspan pulumi-lang-nodejs=\"`drds`\" pulumi-lang-dotnet=\"`Drds`\" pulumi-lang-go=\"`drds`\" pulumi-lang-python=\"`drds`\" pulumi-lang-yaml=\"`drds`\" pulumi-lang-java=\"`drds`\"\u003e`drds`\u003c/span\u003e.\n"},"dbList":{"type":"string","description":"Subscription object, in the format of JSON strings. For detailed definitions, please refer to the description of migration, synchronization or subscription objects [document](https://help.aliyun.com/document_detail/209545.html).\n"},"delayNotice":{"type":"boolean","description":"This parameter decides whether to monitor the delay status. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"delayPhone":{"type":"string","description":"The mobile phone number of the contact who delayed the alarm. Multiple mobile phone numbers separated by English commas `,`. This parameter currently only supports China stations, and only supports mainland mobile phone numbers, and up to 10 mobile phone numbers can be passed in.\n"},"delayRuleTime":{"type":"string","description":"When \u003cspan pulumi-lang-nodejs=\"`delayNotice`\" pulumi-lang-dotnet=\"`DelayNotice`\" pulumi-lang-go=\"`delayNotice`\" pulumi-lang-python=\"`delay_notice`\" pulumi-lang-yaml=\"`delayNotice`\" pulumi-lang-java=\"`delayNotice`\"\u003e`delay_notice`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this parameter must be passed in. The threshold for triggering the delay alarm. The unit is second and needs to be an integer. The threshold can be set according to business needs. It is recommended to set it above 10 seconds to avoid delay fluctuations caused by network and database load.\n"},"destinationEndpointEngineName":{"type":"string","description":"The destination endpoint engine name. Valid values: `ADS`, `DB2`, `DRDS`, `DataHub`, `Greenplum`, `MSSQL`, `MySQL`, `PolarDB`, `PostgreSQL`, `Redis`, `Tablestore`, \u003cspan pulumi-lang-nodejs=\"`as400`\" pulumi-lang-dotnet=\"`As400`\" pulumi-lang-go=\"`as400`\" pulumi-lang-python=\"`as400`\" pulumi-lang-yaml=\"`as400`\" pulumi-lang-java=\"`as400`\"\u003e`as400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\"\u003e`kafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`odps`\" pulumi-lang-dotnet=\"`Odps`\" pulumi-lang-go=\"`odps`\" pulumi-lang-python=\"`odps`\" pulumi-lang-yaml=\"`odps`\" pulumi-lang-java=\"`odps`\"\u003e`odps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oracle`\" pulumi-lang-dotnet=\"`Oracle`\" pulumi-lang-go=\"`oracle`\" pulumi-lang-python=\"`oracle`\" pulumi-lang-yaml=\"`oracle`\" pulumi-lang-java=\"`oracle`\"\u003e`oracle`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbO`\" pulumi-lang-dotnet=\"`PolardbO`\" pulumi-lang-go=\"`polardbO`\" pulumi-lang-python=\"`polardb_o`\" pulumi-lang-yaml=\"`polardbO`\" pulumi-lang-java=\"`polardbO`\"\u003e`polardb_o`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbPg`\" pulumi-lang-dotnet=\"`PolardbPg`\" pulumi-lang-go=\"`polardbPg`\" pulumi-lang-python=\"`polardb_pg`\" pulumi-lang-yaml=\"`polardbPg`\" pulumi-lang-java=\"`polardbPg`\"\u003e`polardb_pg`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tidb`\" pulumi-lang-dotnet=\"`Tidb`\" pulumi-lang-go=\"`tidb`\" pulumi-lang-python=\"`tidb`\" pulumi-lang-yaml=\"`tidb`\" pulumi-lang-java=\"`tidb`\"\u003e`tidb`\u003c/span\u003e.\n"},"destinationRegion":{"type":"string","description":"The destination region. List of [supported regions](https://help.aliyun.com/document_detail/141033.html).\n"},"dtsInstanceId":{"type":"string","description":"The ID of subscription instance.\n","willReplaceOnChanges":true},"dtsJobName":{"type":"string","description":"The name of subscription task.\n"},"errorNotice":{"type":"boolean","description":"This parameter decides whether to monitor abnormal status. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"errorPhone":{"type":"string","description":"The mobile phone number of the contact for abnormal alarm. Multiple mobile phone numbers separated by English commas `,`. This parameter currently only supports China stations, and only supports mainland mobile phone numbers, and up to 10 mobile phone numbers can be passed in.\n"},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`micro`\" pulumi-lang-dotnet=\"`Micro`\" pulumi-lang-go=\"`micro`\" pulumi-lang-python=\"`micro`\" pulumi-lang-yaml=\"`micro`\" pulumi-lang-java=\"`micro`\"\u003e`micro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xxlarge`\" pulumi-lang-dotnet=\"`Xxlarge`\" pulumi-lang-go=\"`xxlarge`\" pulumi-lang-python=\"`xxlarge`\" pulumi-lang-yaml=\"`xxlarge`\" pulumi-lang-java=\"`xxlarge`\"\u003e`xxlarge`\u003c/span\u003e.\n"},"paymentDuration":{"type":"integer","description":"The duration of prepaid instance purchase. When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`, this parameter is valid and must be passed in.\n"},"paymentDurationUnit":{"type":"string","description":"The payment duration unit. Valid values: `Month`, `Year`. When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`, this parameter is valid and must be passed in.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`.\n","willReplaceOnChanges":true},"reserve":{"type":"string","description":"DTS reserves parameters, the format is a JSON string, you can pass in this parameter to complete the source and target database information (such as the data storage format of the target Kafka database, the instance ID of the cloud enterprise network CEN). For more information, please refer to the parameter description of the [Reserve parameter](https://help.aliyun.com/document_detail/176470.html).\n"},"sourceEndpointDatabaseName":{"type":"string","description":"To subscribe to the name of the database.\n"},"sourceEndpointEngineName":{"type":"string","description":"The source database type value is MySQL or Oracle. Valid values: `MySQL`, `Oracle`.\n"},"sourceEndpointInstanceId":{"type":"string","description":"The ID of source instance. Only when the type of source database instance was RDS MySQL, PolarDB-X 1.0, PolarDB MySQL, this parameter can be available and must be set.\n"},"sourceEndpointInstanceType":{"type":"string","description":"The type of source instance. Valid values: `RDS`, `PolarDB`, `DRDS`, `LocalInstance`, `ECS`, `Express`, `CEN`, \u003cspan pulumi-lang-nodejs=\"`dg`\" pulumi-lang-dotnet=\"`Dg`\" pulumi-lang-go=\"`dg`\" pulumi-lang-python=\"`dg`\" pulumi-lang-yaml=\"`dg`\" pulumi-lang-java=\"`dg`\"\u003e`dg`\u003c/span\u003e.\n"},"sourceEndpointIp":{"type":"string","description":"The IP of source endpoint.\n"},"sourceEndpointOracleSid":{"type":"string","description":"The SID of Oracle Database. When the source database is self-built Oracle and the Oracle database is a non-RAC instance, this parameter is available and must be passed in.\n"},"sourceEndpointOwnerId":{"type":"string","description":"The Alibaba Cloud account ID to which the source instance belongs. This parameter is only available when configuring data subscriptions across Alibaba Cloud accounts and must be passed in.\n"},"sourceEndpointPassword":{"type":"string","description":"The password of source database instance account.\n"},"sourceEndpointPort":{"type":"string","description":"The port of source database.\n"},"sourceEndpointRegion":{"type":"string","description":"The region of source database.\n"},"sourceEndpointRole":{"type":"string","description":"Both the authorization roles. When the source instance and configure subscriptions task of the Alibaba Cloud account is not the same as the need to pass the parameter, to specify the source of the authorization roles, to allow configuration subscription task of the Alibaba Cloud account to access the source of the source instance information.\n"},"sourceEndpointUserName":{"type":"string","description":"The username of source database instance account.\n"},"status":{"type":"string","description":"The status of the task. Valid values: `Normal`, `Abnormal`. When a task created, it is in this state of `NotStarted`. You can specify this state to `Normal` to start the job, and specify this state of `Abnormal` to stop the job. **Note: We treat the state `Starting` as the state of `Normal`, and consider the two states to be consistent on the user side.**\n"},"subscriptionDataTypeDdl":{"type":"boolean","description":"Whether to subscribe the DDL type of data. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"subscriptionDataTypeDml":{"type":"boolean","description":"Whether to subscribe the DML type of data. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"subscriptionInstanceNetworkType":{"type":"string","description":"Subscription task type of network value: classic: classic Network. Virtual Private Cloud (vpc): a vpc. Valid values: \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n","willReplaceOnChanges":true},"subscriptionInstanceVpcId":{"type":"string","description":"The ID of subscription vpc instance. When the value of \u003cspan pulumi-lang-nodejs=\"`subscriptionInstanceNetworkType`\" pulumi-lang-dotnet=\"`SubscriptionInstanceNetworkType`\" pulumi-lang-go=\"`subscriptionInstanceNetworkType`\" pulumi-lang-python=\"`subscription_instance_network_type`\" pulumi-lang-yaml=\"`subscriptionInstanceNetworkType`\" pulumi-lang-java=\"`subscriptionInstanceNetworkType`\"\u003e`subscription_instance_network_type`\u003c/span\u003e is vpc, this parameter is available and must be passed in.\n"},"subscriptionInstanceVswitchId":{"type":"string","description":"The ID of subscription VSwitch instance. When the value of \u003cspan pulumi-lang-nodejs=\"`subscriptionInstanceNetworkType`\" pulumi-lang-dotnet=\"`SubscriptionInstanceNetworkType`\" pulumi-lang-go=\"`subscriptionInstanceNetworkType`\" pulumi-lang-python=\"`subscription_instance_network_type`\" pulumi-lang-yaml=\"`subscriptionInstanceNetworkType`\" pulumi-lang-java=\"`subscriptionInstanceNetworkType`\"\u003e`subscription_instance_network_type`\u003c/span\u003e is vpc, this parameter is available and must be passed in.\n"},"syncArchitecture":{"type":"string","description":"The sync architecture. Valid values: \u003cspan pulumi-lang-nodejs=\"`bidirectional`\" pulumi-lang-dotnet=\"`Bidirectional`\" pulumi-lang-go=\"`bidirectional`\" pulumi-lang-python=\"`bidirectional`\" pulumi-lang-yaml=\"`bidirectional`\" pulumi-lang-java=\"`bidirectional`\"\u003e`bidirectional`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oneway`\" pulumi-lang-dotnet=\"`Oneway`\" pulumi-lang-go=\"`oneway`\" pulumi-lang-python=\"`oneway`\" pulumi-lang-yaml=\"`oneway`\" pulumi-lang-java=\"`oneway`\"\u003e`oneway`\u003c/span\u003e.\n"},"synchronizationDirection":{"type":"string","description":"The synchronization direction. Valid values: `Forward`, `Reverse`. When the topology type of the data synchronization instance is bidirectional, it can be passed in to reverse to start the reverse synchronization link.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:dts/synchronizationInstance:SynchronizationInstance":{"description":"Provides a DTS Synchronization Instance resource.\n\nFor information about DTS Synchronization Instance and how to use it, see [What is Synchronization Instance](https://www.alibabacloud.com/help/en/doc-detail/130744.html).\n\n\u003e **NOTE:** Available since v1.138.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultSynchronizationInstance = new alicloud.dts.SynchronizationInstance(\"default\", {\n    paymentType: \"PayAsYouGo\",\n    sourceEndpointEngineName: \"MySQL\",\n    sourceEndpointRegion: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    destinationEndpointEngineName: \"MySQL\",\n    destinationEndpointRegion: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    instanceClass: \"small\",\n    syncArchitecture: \"oneway\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_regions(current=True)\ndefault_synchronization_instance = alicloud.dts.SynchronizationInstance(\"default\",\n    payment_type=\"PayAsYouGo\",\n    source_endpoint_engine_name=\"MySQL\",\n    source_endpoint_region=default.regions[0].id,\n    destination_endpoint_engine_name=\"MySQL\",\n    destination_endpoint_region=default.regions[0].id,\n    instance_class=\"small\",\n    sync_architecture=\"oneway\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultSynchronizationInstance = new AliCloud.Dts.SynchronizationInstance(\"default\", new()\n    {\n        PaymentType = \"PayAsYouGo\",\n        SourceEndpointEngineName = \"MySQL\",\n        SourceEndpointRegion = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        DestinationEndpointEngineName = \"MySQL\",\n        DestinationEndpointRegion = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        InstanceClass = \"small\",\n        SyncArchitecture = \"oneway\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dts\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dts.NewSynchronizationInstance(ctx, \"default\", \u0026dts.SynchronizationInstanceArgs{\n\t\t\tPaymentType:                   pulumi.String(\"PayAsYouGo\"),\n\t\t\tSourceEndpointEngineName:      pulumi.String(\"MySQL\"),\n\t\t\tSourceEndpointRegion:          pulumi.String(_default.Regions[0].Id),\n\t\t\tDestinationEndpointEngineName: pulumi.String(\"MySQL\"),\n\t\t\tDestinationEndpointRegion:     pulumi.String(_default.Regions[0].Id),\n\t\t\tInstanceClass:                 pulumi.String(\"small\"),\n\t\t\tSyncArchitecture:              pulumi.String(\"oneway\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.dts.SynchronizationInstance;\nimport com.pulumi.alicloud.dts.SynchronizationInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultSynchronizationInstance = new SynchronizationInstance(\"defaultSynchronizationInstance\", SynchronizationInstanceArgs.builder()\n            .paymentType(\"PayAsYouGo\")\n            .sourceEndpointEngineName(\"MySQL\")\n            .sourceEndpointRegion(default_.regions()[0].id())\n            .destinationEndpointEngineName(\"MySQL\")\n            .destinationEndpointRegion(default_.regions()[0].id())\n            .instanceClass(\"small\")\n            .syncArchitecture(\"oneway\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultSynchronizationInstance:\n    type: alicloud:dts:SynchronizationInstance\n    name: default\n    properties:\n      paymentType: PayAsYouGo\n      sourceEndpointEngineName: MySQL\n      sourceEndpointRegion: ${default.regions[0].id}\n      destinationEndpointEngineName: MySQL\n      destinationEndpointRegion: ${default.regions[0].id}\n      instanceClass: small\n      syncArchitecture: oneway\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nDTS Synchronization Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dts/synchronizationInstance:SynchronizationInstance example \u003cid\u003e\n```\n\n","properties":{"autoPay":{"type":"string","description":"Whether to automatically renew when it expires. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoStart":{"type":"string","description":"Whether to automatically start the task after the purchase completed. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"computeUnit":{"type":"integer","description":"[ETL specifications](https://help.aliyun.com/document_detail/212324.html). The unit is the computing unit ComputeUnit (CU), 1CU=1vCPU+4 GB memory. The value range is an integer greater than or equal to 2.\n"},"databaseCount":{"type":"integer","description":"The number of private customized RDS instances under PolarDB-X. The default value is 1. This parameter needs to be passed only when \u003cspan pulumi-lang-nodejs=\"`sourceEndpointEngineName`\" pulumi-lang-dotnet=\"`SourceEndpointEngineName`\" pulumi-lang-go=\"`sourceEndpointEngineName`\" pulumi-lang-python=\"`source_endpoint_engine_name`\" pulumi-lang-yaml=\"`sourceEndpointEngineName`\" pulumi-lang-java=\"`sourceEndpointEngineName`\"\u003e`source_endpoint_engine_name`\u003c/span\u003e equals \u003cspan pulumi-lang-nodejs=\"`drds`\" pulumi-lang-dotnet=\"`Drds`\" pulumi-lang-go=\"`drds`\" pulumi-lang-python=\"`drds`\" pulumi-lang-yaml=\"`drds`\" pulumi-lang-java=\"`drds`\"\u003e`drds`\u003c/span\u003e.\n"},"destinationEndpointEngineName":{"type":"string","description":"The type of destination engine. Valid values: `ADS`, `DB2`, `DRDS`, `DataHub`, `Greenplum`, `MSSQL`, `MySQL`, `PolarDB`, `PostgreSQL`, `Redis`, `Tablestore`, \u003cspan pulumi-lang-nodejs=\"`as400`\" pulumi-lang-dotnet=\"`As400`\" pulumi-lang-go=\"`as400`\" pulumi-lang-python=\"`as400`\" pulumi-lang-yaml=\"`as400`\" pulumi-lang-java=\"`as400`\"\u003e`as400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\"\u003e`kafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`odps`\" pulumi-lang-dotnet=\"`Odps`\" pulumi-lang-go=\"`odps`\" pulumi-lang-python=\"`odps`\" pulumi-lang-yaml=\"`odps`\" pulumi-lang-java=\"`odps`\"\u003e`odps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oracle`\" pulumi-lang-dotnet=\"`Oracle`\" pulumi-lang-go=\"`oracle`\" pulumi-lang-python=\"`oracle`\" pulumi-lang-yaml=\"`oracle`\" pulumi-lang-java=\"`oracle`\"\u003e`oracle`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbO`\" pulumi-lang-dotnet=\"`PolardbO`\" pulumi-lang-go=\"`polardbO`\" pulumi-lang-python=\"`polardb_o`\" pulumi-lang-yaml=\"`polardbO`\" pulumi-lang-java=\"`polardbO`\"\u003e`polardb_o`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbPg`\" pulumi-lang-dotnet=\"`PolardbPg`\" pulumi-lang-go=\"`polardbPg`\" pulumi-lang-python=\"`polardb_pg`\" pulumi-lang-yaml=\"`polardbPg`\" pulumi-lang-java=\"`polardbPg`\"\u003e`polardb_pg`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tidb`\" pulumi-lang-dotnet=\"`Tidb`\" pulumi-lang-go=\"`tidb`\" pulumi-lang-python=\"`tidb`\" pulumi-lang-yaml=\"`tidb`\" pulumi-lang-java=\"`tidb`\"\u003e`tidb`\u003c/span\u003e. For the correspondence between the supported source and target libraries, see [Supported Databases, Synchronization Initialization Types and Synchronization Topologies](https://help.aliyun.com/document_detail/130744.html), [Supported Databases and Migration Types](https://help.aliyun.com/document_detail/26618.html).\n"},"destinationEndpointRegion":{"type":"string","description":"The region of destination instance. List of [supported regions](https://help.aliyun.com/document_detail/141033.html).\n"},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`micro`\" pulumi-lang-dotnet=\"`Micro`\" pulumi-lang-go=\"`micro`\" pulumi-lang-python=\"`micro`\" pulumi-lang-yaml=\"`micro`\" pulumi-lang-java=\"`micro`\"\u003e`micro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xxlarge`\" pulumi-lang-dotnet=\"`Xxlarge`\" pulumi-lang-go=\"`xxlarge`\" pulumi-lang-python=\"`xxlarge`\" pulumi-lang-yaml=\"`xxlarge`\" pulumi-lang-java=\"`xxlarge`\"\u003e`xxlarge`\u003c/span\u003e. You can only upgrade the configuration, not downgrade the configuration. If you downgrade the instance, you need to [submit a ticket](https://selfservice.console.aliyun.com/ticket/category/dts/today).\n"},"paymentDuration":{"type":"integer","description":"The duration of prepaid instance purchase. this parameter is required When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e equals `Subscription`.\n"},"paymentDurationUnit":{"type":"string","description":"The payment duration unit. Valid values: `Month`, `Year`. When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`, this parameter is valid and must be passed in.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`.\n"},"quantity":{"type":"integer","description":"The number of instances purchased.\n"},"sourceEndpointEngineName":{"type":"string","description":"The type of source endpoint engine. Valid values: `ADS`, `DB2`, `DRDS`, `DataHub`, `Greenplum`, `MSSQL`, `MySQL`, `PolarDB`, `PostgreSQL`, `Redis`, `Tablestore`, \u003cspan pulumi-lang-nodejs=\"`as400`\" pulumi-lang-dotnet=\"`As400`\" pulumi-lang-go=\"`as400`\" pulumi-lang-python=\"`as400`\" pulumi-lang-yaml=\"`as400`\" pulumi-lang-java=\"`as400`\"\u003e`as400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\"\u003e`kafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`odps`\" pulumi-lang-dotnet=\"`Odps`\" pulumi-lang-go=\"`odps`\" pulumi-lang-python=\"`odps`\" pulumi-lang-yaml=\"`odps`\" pulumi-lang-java=\"`odps`\"\u003e`odps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oracle`\" pulumi-lang-dotnet=\"`Oracle`\" pulumi-lang-go=\"`oracle`\" pulumi-lang-python=\"`oracle`\" pulumi-lang-yaml=\"`oracle`\" pulumi-lang-java=\"`oracle`\"\u003e`oracle`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbO`\" pulumi-lang-dotnet=\"`PolardbO`\" pulumi-lang-go=\"`polardbO`\" pulumi-lang-python=\"`polardb_o`\" pulumi-lang-yaml=\"`polardbO`\" pulumi-lang-java=\"`polardbO`\"\u003e`polardb_o`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbPg`\" pulumi-lang-dotnet=\"`PolardbPg`\" pulumi-lang-go=\"`polardbPg`\" pulumi-lang-python=\"`polardb_pg`\" pulumi-lang-yaml=\"`polardbPg`\" pulumi-lang-java=\"`polardbPg`\"\u003e`polardb_pg`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tidb`\" pulumi-lang-dotnet=\"`Tidb`\" pulumi-lang-go=\"`tidb`\" pulumi-lang-python=\"`tidb`\" pulumi-lang-yaml=\"`tidb`\" pulumi-lang-java=\"`tidb`\"\u003e`tidb`\u003c/span\u003e. For the correspondence between the supported source and target libraries, see [Supported Databases, Synchronization Initialization Types and Synchronization Topologies](https://help.aliyun.com/document_detail/130744.html), [Supported Databases and Migration Types](https://help.aliyun.com/document_detail/26618.html).\n"},"sourceEndpointRegion":{"type":"string","description":"The region of source instance.\n"},"status":{"type":"string","description":"The status.\n"},"syncArchitecture":{"type":"string","description":"The sync architecture. Valid values: \u003cspan pulumi-lang-nodejs=\"`oneway`\" pulumi-lang-dotnet=\"`Oneway`\" pulumi-lang-go=\"`oneway`\" pulumi-lang-python=\"`oneway`\" pulumi-lang-yaml=\"`oneway`\" pulumi-lang-java=\"`oneway`\"\u003e`oneway`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bidirectional`\" pulumi-lang-dotnet=\"`Bidirectional`\" pulumi-lang-go=\"`bidirectional`\" pulumi-lang-python=\"`bidirectional`\" pulumi-lang-yaml=\"`bidirectional`\" pulumi-lang-java=\"`bidirectional`\"\u003e`bidirectional`\u003c/span\u003e.\n"}},"required":["destinationEndpointEngineName","destinationEndpointRegion","instanceClass","paymentType","sourceEndpointEngineName","sourceEndpointRegion","status"],"inputProperties":{"autoPay":{"type":"string","description":"Whether to automatically renew when it expires. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoStart":{"type":"string","description":"Whether to automatically start the task after the purchase completed. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"computeUnit":{"type":"integer","description":"[ETL specifications](https://help.aliyun.com/document_detail/212324.html). The unit is the computing unit ComputeUnit (CU), 1CU=1vCPU+4 GB memory. The value range is an integer greater than or equal to 2.\n"},"databaseCount":{"type":"integer","description":"The number of private customized RDS instances under PolarDB-X. The default value is 1. This parameter needs to be passed only when \u003cspan pulumi-lang-nodejs=\"`sourceEndpointEngineName`\" pulumi-lang-dotnet=\"`SourceEndpointEngineName`\" pulumi-lang-go=\"`sourceEndpointEngineName`\" pulumi-lang-python=\"`source_endpoint_engine_name`\" pulumi-lang-yaml=\"`sourceEndpointEngineName`\" pulumi-lang-java=\"`sourceEndpointEngineName`\"\u003e`source_endpoint_engine_name`\u003c/span\u003e equals \u003cspan pulumi-lang-nodejs=\"`drds`\" pulumi-lang-dotnet=\"`Drds`\" pulumi-lang-go=\"`drds`\" pulumi-lang-python=\"`drds`\" pulumi-lang-yaml=\"`drds`\" pulumi-lang-java=\"`drds`\"\u003e`drds`\u003c/span\u003e.\n"},"destinationEndpointEngineName":{"type":"string","description":"The type of destination engine. Valid values: `ADS`, `DB2`, `DRDS`, `DataHub`, `Greenplum`, `MSSQL`, `MySQL`, `PolarDB`, `PostgreSQL`, `Redis`, `Tablestore`, \u003cspan pulumi-lang-nodejs=\"`as400`\" pulumi-lang-dotnet=\"`As400`\" pulumi-lang-go=\"`as400`\" pulumi-lang-python=\"`as400`\" pulumi-lang-yaml=\"`as400`\" pulumi-lang-java=\"`as400`\"\u003e`as400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\"\u003e`kafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`odps`\" pulumi-lang-dotnet=\"`Odps`\" pulumi-lang-go=\"`odps`\" pulumi-lang-python=\"`odps`\" pulumi-lang-yaml=\"`odps`\" pulumi-lang-java=\"`odps`\"\u003e`odps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oracle`\" pulumi-lang-dotnet=\"`Oracle`\" pulumi-lang-go=\"`oracle`\" pulumi-lang-python=\"`oracle`\" pulumi-lang-yaml=\"`oracle`\" pulumi-lang-java=\"`oracle`\"\u003e`oracle`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbO`\" pulumi-lang-dotnet=\"`PolardbO`\" pulumi-lang-go=\"`polardbO`\" pulumi-lang-python=\"`polardb_o`\" pulumi-lang-yaml=\"`polardbO`\" pulumi-lang-java=\"`polardbO`\"\u003e`polardb_o`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbPg`\" pulumi-lang-dotnet=\"`PolardbPg`\" pulumi-lang-go=\"`polardbPg`\" pulumi-lang-python=\"`polardb_pg`\" pulumi-lang-yaml=\"`polardbPg`\" pulumi-lang-java=\"`polardbPg`\"\u003e`polardb_pg`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tidb`\" pulumi-lang-dotnet=\"`Tidb`\" pulumi-lang-go=\"`tidb`\" pulumi-lang-python=\"`tidb`\" pulumi-lang-yaml=\"`tidb`\" pulumi-lang-java=\"`tidb`\"\u003e`tidb`\u003c/span\u003e. For the correspondence between the supported source and target libraries, see [Supported Databases, Synchronization Initialization Types and Synchronization Topologies](https://help.aliyun.com/document_detail/130744.html), [Supported Databases and Migration Types](https://help.aliyun.com/document_detail/26618.html).\n","willReplaceOnChanges":true},"destinationEndpointRegion":{"type":"string","description":"The region of destination instance. List of [supported regions](https://help.aliyun.com/document_detail/141033.html).\n","willReplaceOnChanges":true},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`micro`\" pulumi-lang-dotnet=\"`Micro`\" pulumi-lang-go=\"`micro`\" pulumi-lang-python=\"`micro`\" pulumi-lang-yaml=\"`micro`\" pulumi-lang-java=\"`micro`\"\u003e`micro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xxlarge`\" pulumi-lang-dotnet=\"`Xxlarge`\" pulumi-lang-go=\"`xxlarge`\" pulumi-lang-python=\"`xxlarge`\" pulumi-lang-yaml=\"`xxlarge`\" pulumi-lang-java=\"`xxlarge`\"\u003e`xxlarge`\u003c/span\u003e. You can only upgrade the configuration, not downgrade the configuration. If you downgrade the instance, you need to [submit a ticket](https://selfservice.console.aliyun.com/ticket/category/dts/today).\n"},"paymentDuration":{"type":"integer","description":"The duration of prepaid instance purchase. this parameter is required When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e equals `Subscription`.\n"},"paymentDurationUnit":{"type":"string","description":"The payment duration unit. Valid values: `Month`, `Year`. When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`, this parameter is valid and must be passed in.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`.\n","willReplaceOnChanges":true},"quantity":{"type":"integer","description":"The number of instances purchased.\n"},"sourceEndpointEngineName":{"type":"string","description":"The type of source endpoint engine. Valid values: `ADS`, `DB2`, `DRDS`, `DataHub`, `Greenplum`, `MSSQL`, `MySQL`, `PolarDB`, `PostgreSQL`, `Redis`, `Tablestore`, \u003cspan pulumi-lang-nodejs=\"`as400`\" pulumi-lang-dotnet=\"`As400`\" pulumi-lang-go=\"`as400`\" pulumi-lang-python=\"`as400`\" pulumi-lang-yaml=\"`as400`\" pulumi-lang-java=\"`as400`\"\u003e`as400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\"\u003e`kafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`odps`\" pulumi-lang-dotnet=\"`Odps`\" pulumi-lang-go=\"`odps`\" pulumi-lang-python=\"`odps`\" pulumi-lang-yaml=\"`odps`\" pulumi-lang-java=\"`odps`\"\u003e`odps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oracle`\" pulumi-lang-dotnet=\"`Oracle`\" pulumi-lang-go=\"`oracle`\" pulumi-lang-python=\"`oracle`\" pulumi-lang-yaml=\"`oracle`\" pulumi-lang-java=\"`oracle`\"\u003e`oracle`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbO`\" pulumi-lang-dotnet=\"`PolardbO`\" pulumi-lang-go=\"`polardbO`\" pulumi-lang-python=\"`polardb_o`\" pulumi-lang-yaml=\"`polardbO`\" pulumi-lang-java=\"`polardbO`\"\u003e`polardb_o`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbPg`\" pulumi-lang-dotnet=\"`PolardbPg`\" pulumi-lang-go=\"`polardbPg`\" pulumi-lang-python=\"`polardb_pg`\" pulumi-lang-yaml=\"`polardbPg`\" pulumi-lang-java=\"`polardbPg`\"\u003e`polardb_pg`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tidb`\" pulumi-lang-dotnet=\"`Tidb`\" pulumi-lang-go=\"`tidb`\" pulumi-lang-python=\"`tidb`\" pulumi-lang-yaml=\"`tidb`\" pulumi-lang-java=\"`tidb`\"\u003e`tidb`\u003c/span\u003e. For the correspondence between the supported source and target libraries, see [Supported Databases, Synchronization Initialization Types and Synchronization Topologies](https://help.aliyun.com/document_detail/130744.html), [Supported Databases and Migration Types](https://help.aliyun.com/document_detail/26618.html).\n","willReplaceOnChanges":true},"sourceEndpointRegion":{"type":"string","description":"The region of source instance.\n","willReplaceOnChanges":true},"syncArchitecture":{"type":"string","description":"The sync architecture. Valid values: \u003cspan pulumi-lang-nodejs=\"`oneway`\" pulumi-lang-dotnet=\"`Oneway`\" pulumi-lang-go=\"`oneway`\" pulumi-lang-python=\"`oneway`\" pulumi-lang-yaml=\"`oneway`\" pulumi-lang-java=\"`oneway`\"\u003e`oneway`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bidirectional`\" pulumi-lang-dotnet=\"`Bidirectional`\" pulumi-lang-go=\"`bidirectional`\" pulumi-lang-python=\"`bidirectional`\" pulumi-lang-yaml=\"`bidirectional`\" pulumi-lang-java=\"`bidirectional`\"\u003e`bidirectional`\u003c/span\u003e.\n"}},"requiredInputs":["destinationEndpointEngineName","destinationEndpointRegion","paymentType","sourceEndpointEngineName","sourceEndpointRegion"],"stateInputs":{"description":"Input properties used for looking up and filtering SynchronizationInstance resources.\n","properties":{"autoPay":{"type":"string","description":"Whether to automatically renew when it expires. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoStart":{"type":"string","description":"Whether to automatically start the task after the purchase completed. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"computeUnit":{"type":"integer","description":"[ETL specifications](https://help.aliyun.com/document_detail/212324.html). The unit is the computing unit ComputeUnit (CU), 1CU=1vCPU+4 GB memory. The value range is an integer greater than or equal to 2.\n"},"databaseCount":{"type":"integer","description":"The number of private customized RDS instances under PolarDB-X. The default value is 1. This parameter needs to be passed only when \u003cspan pulumi-lang-nodejs=\"`sourceEndpointEngineName`\" pulumi-lang-dotnet=\"`SourceEndpointEngineName`\" pulumi-lang-go=\"`sourceEndpointEngineName`\" pulumi-lang-python=\"`source_endpoint_engine_name`\" pulumi-lang-yaml=\"`sourceEndpointEngineName`\" pulumi-lang-java=\"`sourceEndpointEngineName`\"\u003e`source_endpoint_engine_name`\u003c/span\u003e equals \u003cspan pulumi-lang-nodejs=\"`drds`\" pulumi-lang-dotnet=\"`Drds`\" pulumi-lang-go=\"`drds`\" pulumi-lang-python=\"`drds`\" pulumi-lang-yaml=\"`drds`\" pulumi-lang-java=\"`drds`\"\u003e`drds`\u003c/span\u003e.\n"},"destinationEndpointEngineName":{"type":"string","description":"The type of destination engine. Valid values: `ADS`, `DB2`, `DRDS`, `DataHub`, `Greenplum`, `MSSQL`, `MySQL`, `PolarDB`, `PostgreSQL`, `Redis`, `Tablestore`, \u003cspan pulumi-lang-nodejs=\"`as400`\" pulumi-lang-dotnet=\"`As400`\" pulumi-lang-go=\"`as400`\" pulumi-lang-python=\"`as400`\" pulumi-lang-yaml=\"`as400`\" pulumi-lang-java=\"`as400`\"\u003e`as400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\"\u003e`kafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`odps`\" pulumi-lang-dotnet=\"`Odps`\" pulumi-lang-go=\"`odps`\" pulumi-lang-python=\"`odps`\" pulumi-lang-yaml=\"`odps`\" pulumi-lang-java=\"`odps`\"\u003e`odps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oracle`\" pulumi-lang-dotnet=\"`Oracle`\" pulumi-lang-go=\"`oracle`\" pulumi-lang-python=\"`oracle`\" pulumi-lang-yaml=\"`oracle`\" pulumi-lang-java=\"`oracle`\"\u003e`oracle`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbO`\" pulumi-lang-dotnet=\"`PolardbO`\" pulumi-lang-go=\"`polardbO`\" pulumi-lang-python=\"`polardb_o`\" pulumi-lang-yaml=\"`polardbO`\" pulumi-lang-java=\"`polardbO`\"\u003e`polardb_o`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbPg`\" pulumi-lang-dotnet=\"`PolardbPg`\" pulumi-lang-go=\"`polardbPg`\" pulumi-lang-python=\"`polardb_pg`\" pulumi-lang-yaml=\"`polardbPg`\" pulumi-lang-java=\"`polardbPg`\"\u003e`polardb_pg`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tidb`\" pulumi-lang-dotnet=\"`Tidb`\" pulumi-lang-go=\"`tidb`\" pulumi-lang-python=\"`tidb`\" pulumi-lang-yaml=\"`tidb`\" pulumi-lang-java=\"`tidb`\"\u003e`tidb`\u003c/span\u003e. For the correspondence between the supported source and target libraries, see [Supported Databases, Synchronization Initialization Types and Synchronization Topologies](https://help.aliyun.com/document_detail/130744.html), [Supported Databases and Migration Types](https://help.aliyun.com/document_detail/26618.html).\n","willReplaceOnChanges":true},"destinationEndpointRegion":{"type":"string","description":"The region of destination instance. List of [supported regions](https://help.aliyun.com/document_detail/141033.html).\n","willReplaceOnChanges":true},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`micro`\" pulumi-lang-dotnet=\"`Micro`\" pulumi-lang-go=\"`micro`\" pulumi-lang-python=\"`micro`\" pulumi-lang-yaml=\"`micro`\" pulumi-lang-java=\"`micro`\"\u003e`micro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xxlarge`\" pulumi-lang-dotnet=\"`Xxlarge`\" pulumi-lang-go=\"`xxlarge`\" pulumi-lang-python=\"`xxlarge`\" pulumi-lang-yaml=\"`xxlarge`\" pulumi-lang-java=\"`xxlarge`\"\u003e`xxlarge`\u003c/span\u003e. You can only upgrade the configuration, not downgrade the configuration. If you downgrade the instance, you need to [submit a ticket](https://selfservice.console.aliyun.com/ticket/category/dts/today).\n"},"paymentDuration":{"type":"integer","description":"The duration of prepaid instance purchase. this parameter is required When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e equals `Subscription`.\n"},"paymentDurationUnit":{"type":"string","description":"The payment duration unit. Valid values: `Month`, `Year`. When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`, this parameter is valid and must be passed in.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`.\n","willReplaceOnChanges":true},"quantity":{"type":"integer","description":"The number of instances purchased.\n"},"sourceEndpointEngineName":{"type":"string","description":"The type of source endpoint engine. Valid values: `ADS`, `DB2`, `DRDS`, `DataHub`, `Greenplum`, `MSSQL`, `MySQL`, `PolarDB`, `PostgreSQL`, `Redis`, `Tablestore`, \u003cspan pulumi-lang-nodejs=\"`as400`\" pulumi-lang-dotnet=\"`As400`\" pulumi-lang-go=\"`as400`\" pulumi-lang-python=\"`as400`\" pulumi-lang-yaml=\"`as400`\" pulumi-lang-java=\"`as400`\"\u003e`as400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clickhouse`\" pulumi-lang-dotnet=\"`Clickhouse`\" pulumi-lang-go=\"`clickhouse`\" pulumi-lang-python=\"`clickhouse`\" pulumi-lang-yaml=\"`clickhouse`\" pulumi-lang-java=\"`clickhouse`\"\u003e`clickhouse`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kafka`\" pulumi-lang-dotnet=\"`Kafka`\" pulumi-lang-go=\"`kafka`\" pulumi-lang-python=\"`kafka`\" pulumi-lang-yaml=\"`kafka`\" pulumi-lang-java=\"`kafka`\"\u003e`kafka`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`odps`\" pulumi-lang-dotnet=\"`Odps`\" pulumi-lang-go=\"`odps`\" pulumi-lang-python=\"`odps`\" pulumi-lang-yaml=\"`odps`\" pulumi-lang-java=\"`odps`\"\u003e`odps`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oracle`\" pulumi-lang-dotnet=\"`Oracle`\" pulumi-lang-go=\"`oracle`\" pulumi-lang-python=\"`oracle`\" pulumi-lang-yaml=\"`oracle`\" pulumi-lang-java=\"`oracle`\"\u003e`oracle`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbO`\" pulumi-lang-dotnet=\"`PolardbO`\" pulumi-lang-go=\"`polardbO`\" pulumi-lang-python=\"`polardb_o`\" pulumi-lang-yaml=\"`polardbO`\" pulumi-lang-java=\"`polardbO`\"\u003e`polardb_o`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`polardbPg`\" pulumi-lang-dotnet=\"`PolardbPg`\" pulumi-lang-go=\"`polardbPg`\" pulumi-lang-python=\"`polardb_pg`\" pulumi-lang-yaml=\"`polardbPg`\" pulumi-lang-java=\"`polardbPg`\"\u003e`polardb_pg`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tidb`\" pulumi-lang-dotnet=\"`Tidb`\" pulumi-lang-go=\"`tidb`\" pulumi-lang-python=\"`tidb`\" pulumi-lang-yaml=\"`tidb`\" pulumi-lang-java=\"`tidb`\"\u003e`tidb`\u003c/span\u003e. For the correspondence between the supported source and target libraries, see [Supported Databases, Synchronization Initialization Types and Synchronization Topologies](https://help.aliyun.com/document_detail/130744.html), [Supported Databases and Migration Types](https://help.aliyun.com/document_detail/26618.html).\n","willReplaceOnChanges":true},"sourceEndpointRegion":{"type":"string","description":"The region of source instance.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status.\n"},"syncArchitecture":{"type":"string","description":"The sync architecture. Valid values: \u003cspan pulumi-lang-nodejs=\"`oneway`\" pulumi-lang-dotnet=\"`Oneway`\" pulumi-lang-go=\"`oneway`\" pulumi-lang-python=\"`oneway`\" pulumi-lang-yaml=\"`oneway`\" pulumi-lang-java=\"`oneway`\"\u003e`oneway`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bidirectional`\" pulumi-lang-dotnet=\"`Bidirectional`\" pulumi-lang-go=\"`bidirectional`\" pulumi-lang-python=\"`bidirectional`\" pulumi-lang-yaml=\"`bidirectional`\" pulumi-lang-java=\"`bidirectional`\"\u003e`bidirectional`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:dts/synchronizationJob:SynchronizationJob":{"description":"Provides a DTS Synchronization Job resource.\n\nFor information about DTS Synchronization Job and how to use it, see [What is Synchronization Job](https://www.alibabacloud.com/help/en/dts/developer-reference/api-configuredtsjob).\n\n\u003e **NOTE:** Available since v1.138.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = alicloud.getRegions({\n    current: true,\n});\nconst exampleGetZones = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst exampleGetInstanceClasses = exampleGetZones.then(exampleGetZones =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: exampleGetZones.zones?.[0]?.id,\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n}));\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vpcId: exampleNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: exampleGetZones.then(exampleGetZones =\u003e exampleGetZones.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    securityGroupName: name,\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance: alicloud.rds.Instance[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleInstance.push(new alicloud.rds.Instance(`example-${range.value}`, {\n        engine: \"MySQL\",\n        engineVersion: \"8.0\",\n        instanceType: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n        instanceStorage: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n        instanceChargeType: \"Postpaid\",\n        instanceName: std.format({\n            input: \"%s_%d\",\n            args: [\n                name,\n                range.value + 1,\n            ],\n        }).then(invoke =\u003e invoke.result),\n        vswitchId: exampleSwitch.id,\n        monitoringPeriod: 60,\n        dbInstanceStorageType: \"cloud_essd\",\n        securityGroupIds: [exampleSecurityGroup.id],\n    }));\n}\nconst exampleRdsAccount: alicloud.rds.RdsAccount[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleRdsAccount.push(new alicloud.rds.RdsAccount(`example-${range.value}`, {\n        dbInstanceId: exampleInstance[range.value].id,\n        accountName: std.format({\n            input: \"example_name_%d\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        accountPassword: std.format({\n            input: \"example_password_%d\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst exampleDatabase: alicloud.rds.Database[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleDatabase.push(new alicloud.rds.Database(`example-${range.value}`, {\n        instanceId: exampleInstance[range.value].id,\n        name: std.format({\n            input: \"%s_%d\",\n            args: [\n                name,\n                range.value + 1,\n            ],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst exampleAccountPrivilege: alicloud.rds.AccountPrivilege[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleAccountPrivilege.push(new alicloud.rds.AccountPrivilege(`example-${range.value}`, {\n        instanceId: exampleInstance[range.value].id,\n        accountName: exampleRdsAccount[range.value].accountName,\n        privilege: \"ReadWrite\",\n        dbNames: [exampleDatabase[range.value].name],\n    }));\n}\nconst exampleSynchronizationInstance = new alicloud.dts.SynchronizationInstance(\"example\", {\n    paymentType: \"PayAsYouGo\",\n    sourceEndpointEngineName: \"MySQL\",\n    sourceEndpointRegion: example.then(example =\u003e example.regions?.[0]?.id),\n    destinationEndpointEngineName: \"MySQL\",\n    destinationEndpointRegion: example.then(example =\u003e example.regions?.[0]?.id),\n    instanceClass: \"small\",\n    syncArchitecture: \"oneway\",\n});\nconst exampleSynchronizationJob = new alicloud.dts.SynchronizationJob(\"example\", {\n    dtsInstanceId: exampleSynchronizationInstance.id,\n    dtsJobName: name,\n    sourceEndpointInstanceType: \"RDS\",\n    sourceEndpointInstanceId: exampleAccountPrivilege[0].instanceId,\n    sourceEndpointEngineName: \"MySQL\",\n    sourceEndpointRegion: example.then(example =\u003e example.regions?.[0]?.id),\n    sourceEndpointUserName: exampleRdsAccount[0].accountName,\n    sourceEndpointPassword: exampleRdsAccount[0].accountPassword,\n    destinationEndpointInstanceType: \"RDS\",\n    destinationEndpointInstanceId: exampleAccountPrivilege[1].instanceId,\n    destinationEndpointEngineName: \"MySQL\",\n    destinationEndpointRegion: example.then(example =\u003e example.regions?.[0]?.id),\n    destinationEndpointUserName: exampleRdsAccount[1].accountName,\n    destinationEndpointPassword: exampleRdsAccount[1].accountPassword,\n    dbList: pulumi.jsonStringify(pulumi.all([exampleDatabase[0].name, exampleDatabase[1].name]).apply(([exampleDatabaseName, exampleDatabaseName1]) =\u003e {\n        [exampleDatabaseName]: {\n            name: exampleDatabaseName1,\n            all: true,\n        },\n    })),\n    structureInitialization: true,\n    dataInitialization: true,\n    dataSynchronization: true,\n    status: \"Synchronizing\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.get_regions(current=True)\nexample_get_zones = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=example_get_zones.zones[0].id,\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vpc_id=example_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=example_get_zones.zones[0].id,\n    vswitch_name=name)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    security_group_name=name,\n    vpc_id=example_network.id)\nexample_instance = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_instance.append(alicloud.rds.Instance(f\"example-{range['value']}\",\n        engine=\"MySQL\",\n        engine_version=\"8.0\",\n        instance_type=example_get_instance_classes.instance_classes[0].instance_class,\n        instance_storage=example_get_instance_classes.instance_classes[0].storage_range.min,\n        instance_charge_type=\"Postpaid\",\n        instance_name=std.format(input=\"%s_%d\",\n            args=[\n                name,\n                range[\"value\"] + 1,\n            ]).result,\n        vswitch_id=example_switch.id,\n        monitoring_period=60,\n        db_instance_storage_type=\"cloud_essd\",\n        security_group_ids=[example_security_group.id]))\nexample_rds_account = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_rds_account.append(alicloud.rds.RdsAccount(f\"example-{range['value']}\",\n        db_instance_id=example_instance[range[\"value\"]].id,\n        account_name=std.format(input=\"example_name_%d\",\n            args=[range[\"value\"] + 1]).result,\n        account_password=std.format(input=\"example_password_%d\",\n            args=[range[\"value\"] + 1]).result))\nexample_database = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_database.append(alicloud.rds.Database(f\"example-{range['value']}\",\n        instance_id=example_instance[range[\"value\"]].id,\n        name=std.format(input=\"%s_%d\",\n            args=[\n                name,\n                range[\"value\"] + 1,\n            ]).result))\nexample_account_privilege = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_account_privilege.append(alicloud.rds.AccountPrivilege(f\"example-{range['value']}\",\n        instance_id=example_instance[range[\"value\"]].id,\n        account_name=example_rds_account[range[\"value\"]].account_name,\n        privilege=\"ReadWrite\",\n        db_names=[example_database[range[\"value\"]].name]))\nexample_synchronization_instance = alicloud.dts.SynchronizationInstance(\"example\",\n    payment_type=\"PayAsYouGo\",\n    source_endpoint_engine_name=\"MySQL\",\n    source_endpoint_region=example.regions[0].id,\n    destination_endpoint_engine_name=\"MySQL\",\n    destination_endpoint_region=example.regions[0].id,\n    instance_class=\"small\",\n    sync_architecture=\"oneway\")\nexample_synchronization_job = alicloud.dts.SynchronizationJob(\"example\",\n    dts_instance_id=example_synchronization_instance.id,\n    dts_job_name=name,\n    source_endpoint_instance_type=\"RDS\",\n    source_endpoint_instance_id=example_account_privilege[0].instance_id,\n    source_endpoint_engine_name=\"MySQL\",\n    source_endpoint_region=example.regions[0].id,\n    source_endpoint_user_name=example_rds_account[0].account_name,\n    source_endpoint_password=example_rds_account[0].account_password,\n    destination_endpoint_instance_type=\"RDS\",\n    destination_endpoint_instance_id=example_account_privilege[1].instance_id,\n    destination_endpoint_engine_name=\"MySQL\",\n    destination_endpoint_region=example.regions[0].id,\n    destination_endpoint_user_name=example_rds_account[1].account_name,\n    destination_endpoint_password=example_rds_account[1].account_password,\n    db_list=pulumi.Output.json_dumps(pulumi.Output.all(\n        exampleDatabaseName=example_database[0].name,\n        exampleDatabaseName1=example_database[1].name\n).apply(lambda resolved_outputs: {\n        resolved_outputs['exampleDatabaseName']: {\n            \"name\": resolved_outputs['exampleDatabaseName1'],\n            \"all\": True,\n        },\n    })\n),\n    structure_initialization=True,\n    data_initialization=True,\n    data_synchronization=True,\n    status=\"Synchronizing\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var exampleGetZones = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = exampleGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VpcId = exampleNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = exampleGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = name,\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        SecurityGroupName = name,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new List\u003cAliCloud.Rds.Instance\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleInstance.Add(new AliCloud.Rds.Instance($\"example-{range.Value}\", new()\n        {\n            Engine = \"MySQL\",\n            EngineVersion = \"8.0\",\n            InstanceType = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n            InstanceStorage = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n            InstanceChargeType = \"Postpaid\",\n            InstanceName = Std.Format.Invoke(new()\n            {\n                Input = \"%s_%d\",\n                Args = new[]\n                {\n                    name,\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            VswitchId = exampleSwitch.Id,\n            MonitoringPeriod = 60,\n            DbInstanceStorageType = \"cloud_essd\",\n            SecurityGroupIds = new[]\n            {\n                exampleSecurityGroup.Id,\n            },\n        }));\n    }\n    var exampleRdsAccount = new List\u003cAliCloud.Rds.RdsAccount\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleRdsAccount.Add(new AliCloud.Rds.RdsAccount($\"example-{range.Value}\", new()\n        {\n            DbInstanceId = exampleInstance[range.Value].Id,\n            AccountName = Std.Format.Invoke(new()\n            {\n                Input = \"example_name_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            AccountPassword = Std.Format.Invoke(new()\n            {\n                Input = \"example_password_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var exampleDatabase = new List\u003cAliCloud.Rds.Database\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleDatabase.Add(new AliCloud.Rds.Database($\"example-{range.Value}\", new()\n        {\n            InstanceId = exampleInstance[range.Value].Id,\n            Name = Std.Format.Invoke(new()\n            {\n                Input = \"%s_%d\",\n                Args = new[]\n                {\n                    name,\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var exampleAccountPrivilege = new List\u003cAliCloud.Rds.AccountPrivilege\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleAccountPrivilege.Add(new AliCloud.Rds.AccountPrivilege($\"example-{range.Value}\", new()\n        {\n            InstanceId = exampleInstance[range.Value].Id,\n            AccountName = exampleRdsAccount[range.Value].AccountName,\n            Privilege = \"ReadWrite\",\n            DbNames = new[]\n            {\n                exampleDatabase[range.Value].Name,\n            },\n        }));\n    }\n    var exampleSynchronizationInstance = new AliCloud.Dts.SynchronizationInstance(\"example\", new()\n    {\n        PaymentType = \"PayAsYouGo\",\n        SourceEndpointEngineName = \"MySQL\",\n        SourceEndpointRegion = example.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        DestinationEndpointEngineName = \"MySQL\",\n        DestinationEndpointRegion = example.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        InstanceClass = \"small\",\n        SyncArchitecture = \"oneway\",\n    });\n\n    var exampleSynchronizationJob = new AliCloud.Dts.SynchronizationJob(\"example\", new()\n    {\n        DtsInstanceId = exampleSynchronizationInstance.Id,\n        DtsJobName = name,\n        SourceEndpointInstanceType = \"RDS\",\n        SourceEndpointInstanceId = exampleAccountPrivilege[0].InstanceId,\n        SourceEndpointEngineName = \"MySQL\",\n        SourceEndpointRegion = example.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        SourceEndpointUserName = exampleRdsAccount[0].AccountName,\n        SourceEndpointPassword = exampleRdsAccount[0].AccountPassword,\n        DestinationEndpointInstanceType = \"RDS\",\n        DestinationEndpointInstanceId = exampleAccountPrivilege[1].InstanceId,\n        DestinationEndpointEngineName = \"MySQL\",\n        DestinationEndpointRegion = example.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        DestinationEndpointUserName = exampleRdsAccount[1].AccountName,\n        DestinationEndpointPassword = exampleRdsAccount[1].AccountPassword,\n        DbList = Output.JsonSerialize(Output.Create(Output.Tuple(exampleDatabase[0].Name, exampleDatabase[1].Name).Apply(values =\u003e\n        {\n            var exampleDatabaseName = values.Item1;\n            var exampleDatabaseName1 = values.Item2;\n            return \n            {\n                { exampleDatabaseName, \n                {\n                    { \"name\", exampleDatabaseName1 },\n                    { \"all\", true },\n                } },\n            };\n        }))),\n        StructureInitialization = true,\n        DataInitialization = true,\n        DataSynchronization = true,\n        Status = \"Synchronizing\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dts\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetZones, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(exampleGetZones.Zones[0].Id),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(exampleGetZones.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(name),\n\t\t\tVpcId:             exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s_%d\",\n\t\t\tArgs: []interface{}{\n\t\t\t\tname,\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar exampleInstance []*rds.Instance\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := rds.NewInstance(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026rds.InstanceArgs{\n\t\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\t\tInstanceType:          pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\t\tInstanceStorage:       pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\t\tInstanceName:          pulumi.String(invokeFormat.Result),\n\t\t\t\tVswitchId:             exampleSwitch.ID(),\n\t\t\t\tMonitoringPeriod:      pulumi.Int(60),\n\t\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texampleInstance = append(exampleInstance, __res)\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"example_name_%d\",\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat2, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"example_password_%d\",\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar exampleRdsAccount []*rds.RdsAccount\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := rds.NewRdsAccount(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026rds.RdsAccountArgs{\n\t\t\t\tDbInstanceId:    exampleInstance[val0].ID(),\n\t\t\t\tAccountName:     pulumi.String(invokeFormat1.Result),\n\t\t\t\tAccountPassword: pulumi.String(invokeFormat2.Result),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texampleRdsAccount = append(exampleRdsAccount, __res)\n\t\t}\n\t\tinvokeFormat3, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s_%d\",\n\t\t\tArgs: []interface{}{\n\t\t\t\tname,\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar exampleDatabase []*rds.Database\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := rds.NewDatabase(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026rds.DatabaseArgs{\n\t\t\t\tInstanceId: exampleInstance[val0].ID(),\n\t\t\t\tName:       pulumi.String(invokeFormat3.Result),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texampleDatabase = append(exampleDatabase, __res)\n\t\t}\n\t\tvar exampleAccountPrivilege []*rds.AccountPrivilege\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := rds.NewAccountPrivilege(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026rds.AccountPrivilegeArgs{\n\t\t\t\tInstanceId:  exampleInstance[val0].ID(),\n\t\t\t\tAccountName: exampleRdsAccount[val0].AccountName,\n\t\t\t\tPrivilege:   pulumi.String(\"ReadWrite\"),\n\t\t\t\tDbNames: pulumi.StringArray{\n\t\t\t\t\texampleDatabase[val0].Name,\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texampleAccountPrivilege = append(exampleAccountPrivilege, __res)\n\t\t}\n\t\texampleSynchronizationInstance, err := dts.NewSynchronizationInstance(ctx, \"example\", \u0026dts.SynchronizationInstanceArgs{\n\t\t\tPaymentType:                   pulumi.String(\"PayAsYouGo\"),\n\t\t\tSourceEndpointEngineName:      pulumi.String(\"MySQL\"),\n\t\t\tSourceEndpointRegion:          pulumi.String(example.Regions[0].Id),\n\t\t\tDestinationEndpointEngineName: pulumi.String(\"MySQL\"),\n\t\t\tDestinationEndpointRegion:     pulumi.String(example.Regions[0].Id),\n\t\t\tInstanceClass:                 pulumi.String(\"small\"),\n\t\t\tSyncArchitecture:              pulumi.String(\"oneway\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dts.NewSynchronizationJob(ctx, \"example\", \u0026dts.SynchronizationJobArgs{\n\t\t\tDtsInstanceId:                   exampleSynchronizationInstance.ID(),\n\t\t\tDtsJobName:                      pulumi.String(name),\n\t\t\tSourceEndpointInstanceType:      pulumi.String(\"RDS\"),\n\t\t\tSourceEndpointInstanceId:        exampleAccountPrivilege[0].InstanceId,\n\t\t\tSourceEndpointEngineName:        pulumi.String(\"MySQL\"),\n\t\t\tSourceEndpointRegion:            pulumi.String(example.Regions[0].Id),\n\t\t\tSourceEndpointUserName:          exampleRdsAccount[0].AccountName,\n\t\t\tSourceEndpointPassword:          exampleRdsAccount[0].AccountPassword,\n\t\t\tDestinationEndpointInstanceType: pulumi.String(\"RDS\"),\n\t\t\tDestinationEndpointInstanceId:   exampleAccountPrivilege[1].InstanceId,\n\t\t\tDestinationEndpointEngineName:   pulumi.String(\"MySQL\"),\n\t\t\tDestinationEndpointRegion:       pulumi.String(example.Regions[0].Id),\n\t\t\tDestinationEndpointUserName:     exampleRdsAccount[1].AccountName,\n\t\t\tDestinationEndpointPassword:     exampleRdsAccount[1].AccountPassword,\n\t\t\tDbList: pulumi.All(exampleDatabase[0].Name, exampleDatabase[1].Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\texampleDatabaseName := _args[0].(string)\n\t\t\t\texampleDatabaseName1 := _args[1].(string)\n\t\t\t\tvar _zero string\n\t\t\t\ttmpJSON0, err := json.Marshal(map[string]map[string]interface{}{\n\t\t\t\t\texampleDatabaseName: map[string]interface{}{\n\t\t\t\t\t\t\"name\": exampleDatabaseName1,\n\t\t\t\t\t\t\"all\":  true,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson0 := string(tmpJSON0)\n\t\t\t\treturn json0, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tStructureInitialization: pulumi.Bool(true),\n\t\t\tDataInitialization:      pulumi.Bool(true),\n\t\t\tDataSynchronization:     pulumi.Bool(true),\n\t\t\tStatus:                  pulumi.String(\"Synchronizing\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.rds.RdsAccount;\nimport com.pulumi.alicloud.rds.RdsAccountArgs;\nimport com.pulumi.alicloud.rds.Database;\nimport com.pulumi.alicloud.rds.DatabaseArgs;\nimport com.pulumi.alicloud.rds.AccountPrivilege;\nimport com.pulumi.alicloud.rds.AccountPrivilegeArgs;\nimport com.pulumi.alicloud.dts.SynchronizationInstance;\nimport com.pulumi.alicloud.dts.SynchronizationInstanceArgs;\nimport com.pulumi.alicloud.dts.SynchronizationJob;\nimport com.pulumi.alicloud.dts.SynchronizationJobArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var example = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var exampleGetZones = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var exampleGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(exampleGetZones.zones()[0].id())\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vpcId(exampleNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(exampleGetZones.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(name)\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Instance(\"exampleInstance-\" + i, InstanceArgs.builder()\n                .engine(\"MySQL\")\n                .engineVersion(\"8.0\")\n                .instanceType(exampleGetInstanceClasses.instanceClasses()[0].instanceClass())\n                .instanceStorage(exampleGetInstanceClasses.instanceClasses()[0].storageRange().min())\n                .instanceChargeType(\"Postpaid\")\n                .instanceName(StdFunctions.format(FormatArgs.builder()\n                    .input(\"%s_%d\")\n                    .args(                    \n                        name,\n                        range.value() + 1)\n                    .build()).result())\n                .vswitchId(exampleSwitch.id())\n                .monitoringPeriod(60)\n                .dbInstanceStorageType(\"cloud_essd\")\n                .securityGroupIds(exampleSecurityGroup.id())\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c 2; i++) {\n            new RdsAccount(\"exampleRdsAccount-\" + i, RdsAccountArgs.builder()\n                .dbInstanceId(exampleInstance[range.value()].id())\n                .accountName(StdFunctions.format(FormatArgs.builder()\n                    .input(\"example_name_%d\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .accountPassword(StdFunctions.format(FormatArgs.builder()\n                    .input(\"example_password_%d\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c 2; i++) {\n            new Database(\"exampleDatabase-\" + i, DatabaseArgs.builder()\n                .instanceId(exampleInstance[range.value()].id())\n                .name(StdFunctions.format(FormatArgs.builder()\n                    .input(\"%s_%d\")\n                    .args(                    \n                        name,\n                        range.value() + 1)\n                    .build()).result())\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c 2; i++) {\n            new AccountPrivilege(\"exampleAccountPrivilege-\" + i, AccountPrivilegeArgs.builder()\n                .instanceId(exampleInstance[range.value()].id())\n                .accountName(exampleRdsAccount[range.value()].accountName())\n                .privilege(\"ReadWrite\")\n                .dbNames(exampleDatabase[range.value()].name())\n                .build());\n\n        \n}\n        var exampleSynchronizationInstance = new SynchronizationInstance(\"exampleSynchronizationInstance\", SynchronizationInstanceArgs.builder()\n            .paymentType(\"PayAsYouGo\")\n            .sourceEndpointEngineName(\"MySQL\")\n            .sourceEndpointRegion(example.regions()[0].id())\n            .destinationEndpointEngineName(\"MySQL\")\n            .destinationEndpointRegion(example.regions()[0].id())\n            .instanceClass(\"small\")\n            .syncArchitecture(\"oneway\")\n            .build());\n\n        var exampleSynchronizationJob = new SynchronizationJob(\"exampleSynchronizationJob\", SynchronizationJobArgs.builder()\n            .dtsInstanceId(exampleSynchronizationInstance.id())\n            .dtsJobName(name)\n            .sourceEndpointInstanceType(\"RDS\")\n            .sourceEndpointInstanceId(exampleAccountPrivilege[0].instanceId())\n            .sourceEndpointEngineName(\"MySQL\")\n            .sourceEndpointRegion(example.regions()[0].id())\n            .sourceEndpointUserName(exampleRdsAccount[0].accountName())\n            .sourceEndpointPassword(exampleRdsAccount[0].accountPassword())\n            .destinationEndpointInstanceType(\"RDS\")\n            .destinationEndpointInstanceId(exampleAccountPrivilege[1].instanceId())\n            .destinationEndpointEngineName(\"MySQL\")\n            .destinationEndpointRegion(example.regions()[0].id())\n            .destinationEndpointUserName(exampleRdsAccount[1].accountName())\n            .destinationEndpointPassword(exampleRdsAccount[1].accountPassword())\n            .dbList(Output.tuple(exampleDatabase[0].name(), exampleDatabase[1].name()).applyValue(values -\u003e {\n                var exampleDatabaseName = values.t1;\n                var exampleDatabaseName1 = values.t2;\n                return serializeJson(\n                    jsonObject(\n                        jsonProperty(exampleDatabaseName, jsonObject(\n                            jsonProperty(\"name\", exampleDatabaseName1),\n                            jsonProperty(\"all\", true)\n                        ))\n                    ));\n            }))\n            .structureInitialization(true)\n            .dataInitialization(true)\n            .dataSynchronization(true)\n            .status(\"Synchronizing\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Notice\n\n1. The expiration time cannot be changed after the work of the annual and monthly subscription suspended;\n2. After the pay-as-you-go type job suspended, your job configuration fee will still be charged;\n3. If the task suspended for more than 6 hours, the task will not start successfully.\n4. Suspending the task will only stop writing to the target library, but will still continue to obtain the incremental log of the source, so that the task can be quickly resumed after the suspension is canceled. Therefore, some resources of the source library, such as bandwidth resources, will continue to be occupied during the period.\n5. Charges will continue during the task suspension period. If you need to stop charging, please release the instance\n6. When a DTS instance suspended for more than 7 days, the instance cannot be resumed, and the status will change from suspended to failed.\n\n## Import\n\nDTS Synchronization Job can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:dts/synchronizationJob:SynchronizationJob example \u003cid\u003e\n```\n\n","properties":{"checkpoint":{"type":"string","description":"The start point or synchronization point of incremental data migration, the format is Unix timestamp, and the unit is seconds.\n"},"dataCheckConfigure":{"type":"string","description":"The data verification task of the migration or synchronization instance, in the format of a JSON string, such as parameter limits or alarm configurations. For more information, see the DataCheckConfigure parameter description [datacheckconfigure-parameter](https://help.aliyun.com/zh/dts/developer-reference/datacheckconfigure-parameter).\n"},"dataInitialization":{"type":"boolean","description":"Whether to perform full data migration or full data initialization. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dataSynchronization":{"type":"boolean","description":"Whether to perform incremental data migration or synchronization. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dbList":{"type":"string","description":"Migration object, in the format of JSON strings. For detailed definition instructions, please refer to [the description of migration, synchronization or subscription objects](https://help.aliyun.com/document_detail/209545.html). **NOTE:** From version 1.173.0, \u003cspan pulumi-lang-nodejs=\"`dbList`\" pulumi-lang-dotnet=\"`DbList`\" pulumi-lang-go=\"`dbList`\" pulumi-lang-python=\"`db_list`\" pulumi-lang-yaml=\"`dbList`\" pulumi-lang-java=\"`dbList`\"\u003e`db_list`\u003c/span\u003e can be modified.\n"},"dedicatedClusterId":{"type":"string","description":"When the ID of the dedicated cluster is input, the task is scheduled to the corresponding cluster.\n"},"delayNotice":{"type":"boolean","description":"The delay notice. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"delayPhone":{"type":"string","description":"The delay phone. The mobile phone number of the contact who delayed the alarm. Multiple mobile phone numbers separated by English commas `,`. This parameter currently only supports China stations, and only supports mainland mobile phone numbers, and up to 10 mobile phone numbers can be passed in.\n"},"delayRuleTime":{"type":"string","description":"The delay rule time. When \u003cspan pulumi-lang-nodejs=\"`delayNotice`\" pulumi-lang-dotnet=\"`DelayNotice`\" pulumi-lang-go=\"`delayNotice`\" pulumi-lang-python=\"`delay_notice`\" pulumi-lang-yaml=\"`delayNotice`\" pulumi-lang-java=\"`delayNotice`\"\u003e`delay_notice`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this parameter must be passed in. The threshold for triggering the delay alarm. The unit is second and needs to be an integer. The threshold can be set according to business needs. It is recommended to set it above 10 seconds to avoid delay fluctuations caused by network and database load.\n"},"destinationEndpointDatabaseName":{"type":"string","description":"The name of the database to which the migration object belongs in the target instance. Note: when the target instance or target database type is PolarDB O engine, AnalyticDB PostgreSQL, PostgreSQL, MongoDB database, this parameter is available and must be passed in.\n"},"destinationEndpointEngineName":{"type":"string","description":"The type of destination database. The default value is MYSQL. For the correspondence between supported target libraries and source libraries, see [Supported Databases](https://help.aliyun.com/document_detail/131497.htm). When the database type of the target instance is KAFKA or MONGODB, you also need to pass in some information in the reserved parameter \u003cspan pulumi-lang-nodejs=\"`reserve`\" pulumi-lang-dotnet=\"`Reserve`\" pulumi-lang-go=\"`reserve`\" pulumi-lang-python=\"`reserve`\" pulumi-lang-yaml=\"`reserve`\" pulumi-lang-java=\"`reserve`\"\u003e`reserve`\u003c/span\u003e. For the configuration method, see the description of \u003cspan pulumi-lang-nodejs=\"`reserve`\" pulumi-lang-dotnet=\"`Reserve`\" pulumi-lang-go=\"`reserve`\" pulumi-lang-python=\"`reserve`\" pulumi-lang-yaml=\"`reserve`\" pulumi-lang-java=\"`reserve`\"\u003e`reserve`\u003c/span\u003e parameters. Valid values: `ADS`, `ADB30`, `AS400`, `DATAHUB`, `DB2`, `GREENPLUM`, `KAFKA`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `PostgreSQL`,` POLARDB_PG`, `MARIADB`, `POLARDBX10`, `ODPS`, `Tablestore`, `ELK`, `REDIS`.\n"},"destinationEndpointInstanceId":{"type":"string","description":"The ID of destination instance. If the target instance is a cloud database (such as RDS MySQL), you need to pass in the instance ID of the cloud database (such as the instance ID of RDS MySQL). If the target instance is a self-built database, the value of this parameter changes according to the value of \u003cspan pulumi-lang-nodejs=\"`destinationEndpointInstanceType`\" pulumi-lang-dotnet=\"`DestinationEndpointInstanceType`\" pulumi-lang-go=\"`destinationEndpointInstanceType`\" pulumi-lang-python=\"`destination_endpoint_instance_type`\" pulumi-lang-yaml=\"`destinationEndpointInstanceType`\" pulumi-lang-java=\"`destinationEndpointInstanceType`\"\u003e`destination_endpoint_instance_type`\u003c/span\u003e. For example, the value of \u003cspan pulumi-lang-nodejs=\"`destinationEndpointInstanceType`\" pulumi-lang-dotnet=\"`DestinationEndpointInstanceType`\" pulumi-lang-go=\"`destinationEndpointInstanceType`\" pulumi-lang-python=\"`destination_endpoint_instance_type`\" pulumi-lang-yaml=\"`destinationEndpointInstanceType`\" pulumi-lang-java=\"`destinationEndpointInstanceType`\"\u003e`destination_endpoint_instance_type`\u003c/span\u003e is:\n** `ECS`, then this parameter needs to be passed into the instance ID of ECS.\n** `DG`, then this parameter needs to be passed into the ID of database gateway.\n** `EXPRESS`, `CEN`, then this parameter needs to be passed in the ID of VPC that has been interconnected with the source database. **Note**: when the value is `CEN`, you also need to pass in the ID of CEN instance in the cloud enterprise network with the reserved parameter \u003cspan pulumi-lang-nodejs=\"`reserve`\" pulumi-lang-dotnet=\"`Reserve`\" pulumi-lang-go=\"`reserve`\" pulumi-lang-python=\"`reserve`\" pulumi-lang-yaml=\"`reserve`\" pulumi-lang-java=\"`reserve`\"\u003e`reserve`\u003c/span\u003e.\n"},"destinationEndpointInstanceType":{"type":"string","description":"The type of destination instance. If the target instance is a PolarDB O engine cluster, the target instance type needs to be `OTHER` or `EXPRESS` as a self-built database, and access via public IP or dedicated line. If the target instance is the Kafka version of Message Queuing, the target instance type needs to be `ECS` or `EXPRESS` as a self-built database, and access via ECS or dedicated line. For the correspondence between supported targets and source instances, see [Supported Databases](https://help.aliyun.com/document_detail/131497.htm). When the target instance is a self-built database, you also need to perform corresponding preparations, please refer to the [overview of preparations](https://help.aliyun.com/document_detail/146958.htm). Valid values: `ADS`, `CEN`, `DATAHUB`, `DG`, `ECS`, `EXPRESS`, `GREENPLUM`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.\n"},"destinationEndpointIp":{"type":"string","description":"The IP of source endpoint. When \u003cspan pulumi-lang-nodejs=\"`destinationEndpointInstanceType`\" pulumi-lang-dotnet=\"`DestinationEndpointInstanceType`\" pulumi-lang-go=\"`destinationEndpointInstanceType`\" pulumi-lang-python=\"`destination_endpoint_instance_type`\" pulumi-lang-yaml=\"`destinationEndpointInstanceType`\" pulumi-lang-java=\"`destinationEndpointInstanceType`\"\u003e`destination_endpoint_instance_type`\u003c/span\u003e is `OTHER`, `EXPRESS`, `DG`, `CEN`, this parameter is available and must be passed in.\n"},"destinationEndpointOracleSid":{"type":"string","description":"The SID of Oracle database. Note: when the value of DestinationEndpointEngineName is Oracle and the Oracle database is a non-RAC instance, this parameter is available and must be passed in.\n"},"destinationEndpointOwnerId":{"type":"string","description":"The ID of the Alibaba Cloud account to which the target RDS MySQL instance belongs. can be configured only when the target instance is RDS MySQL. This parameter is used to migrate or synchronize data across Alibaba Cloud accounts. You also need to enter the **destinationendpointrle** parameter.\n"},"destinationEndpointPassword":{"type":"string","description":"The password of database account.\n"},"destinationEndpointPort":{"type":"string","description":"The port of source endpoint. When the target instance is a self-built database, this parameter is available and must be passed in.\n"},"destinationEndpointRegion":{"type":"string","description":"The region of destination instance. For the target instance region, please refer to the [list of supported regions](https://help.aliyun.com/document_detail/141033.htm). Note: if the target is an Alibaba Cloud database, this parameter must be passed in.\n"},"destinationEndpointRole":{"type":"string","description":"The role name of the Alibaba Cloud account to which the target instance belongs. This parameter must be entered when data migration or synchronization across Alibaba Cloud accounts is performed. For the permissions and authorization methods required by this role.\n"},"destinationEndpointUserName":{"type":"string","description":"The username of database account. Note: in most cases, you need to pass in the database account of the source library. The permissions required for migrating or synchronizing different databases are different. For specific permission requirements, see [Preparing database accounts for data migration](https://help.aliyun.com/document_detail/175878.htm) and [Preparing database accounts for data synchronization](https://help.aliyun.com/document_detail/213152.htm).\n"},"dtsBisLabel":{"type":"string","description":"The environment label of the DTS instance. The value is: **normal**, **online**.\n\n\u003e **NOTE:** From the status of `NotStarted` to `Synchronizing`, the resource goes through the `Prechecking` and `Initializing` phases. Because of the `Initializing` phase takes too long, and once the resource passes to the status of `Prechecking`, it can be considered that the task can be executed normally. Therefore, we treat the status of `Initializing` as an equivalent to `Synchronizing`.\n\n\u003e **NOTE:** If you want to upgrade the synchronization job specifications by the property \u003cspan pulumi-lang-nodejs=\"`instanceClass`\" pulumi-lang-dotnet=\"`InstanceClass`\" pulumi-lang-go=\"`instanceClass`\" pulumi-lang-python=\"`instance_class`\" pulumi-lang-yaml=\"`instanceClass`\" pulumi-lang-java=\"`instanceClass`\"\u003e`instance_class`\u003c/span\u003e, you must also modify the property \u003cspan pulumi-lang-nodejs=\"`instanceClass`\" pulumi-lang-dotnet=\"`InstanceClass`\" pulumi-lang-go=\"`instanceClass`\" pulumi-lang-python=\"`instance_class`\" pulumi-lang-yaml=\"`instanceClass`\" pulumi-lang-java=\"`instanceClass`\"\u003e`instance_class`\u003c/span\u003e of it's instance to keep them consistent.\n"},"dtsInstanceId":{"type":"string","description":"The ID of synchronization instance, it must be an ID of \u003cspan pulumi-lang-nodejs=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-dotnet=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-go=\"`dts.SynchronizationInstance`\" pulumi-lang-python=\"`dts.SynchronizationInstance`\" pulumi-lang-yaml=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-java=\"`alicloud.dts.SynchronizationInstance`\"\u003e`alicloud.dts.SynchronizationInstance`\u003c/span\u003e.\n"},"dtsJobName":{"type":"string","description":"The name of synchronization job.\n"},"errorNotice":{"type":"boolean","description":"The error notice. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"errorPhone":{"type":"string","description":"The error phone. The mobile phone number of the contact who error the alarm. Multiple mobile phone numbers separated by English commas `,`. This parameter currently only supports China stations, and only supports mainland mobile phone numbers, and up to 10 mobile phone numbers can be passed in.\n"},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`micro`\" pulumi-lang-dotnet=\"`Micro`\" pulumi-lang-go=\"`micro`\" pulumi-lang-python=\"`micro`\" pulumi-lang-yaml=\"`micro`\" pulumi-lang-java=\"`micro`\"\u003e`micro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xxlarge`\" pulumi-lang-dotnet=\"`Xxlarge`\" pulumi-lang-go=\"`xxlarge`\" pulumi-lang-python=\"`xxlarge`\" pulumi-lang-yaml=\"`xxlarge`\" pulumi-lang-java=\"`xxlarge`\"\u003e`xxlarge`\u003c/span\u003e. You can only upgrade the configuration, not downgrade the configuration. If you downgrade the instance, you need to [submit a ticket](https://selfservice.console.aliyun.com/ticket/category/dts/today).\n"},"jobParameters":{"type":"string","description":"DTS modifiable runtime parameters, you can modify the parameters of a running DTS (Data Transmission Service) task by providing a JSON array. This allows for real-time adjustments to the task's behavior.Please note that you can only modify these parameters while the task is active; they are not available during the initial setup. For more information, please refer to the parameter [description of the Runtime parameter](https://help.aliyun.com/zh/dts/developer-reference/parameter-description).\n"},"reserve":{"type":"string","description":"DTS reserves parameters, the format is a JSON string, you can pass in this parameter to complete the source and target database information (such as the data storage format of the target Kafka database, the instance ID of the cloud enterprise network CEN). For more information, please refer to the parameter [description of the Reserve parameter](https://help.aliyun.com/document_detail/273111.html).\n"},"sourceEndpointDatabaseName":{"type":"string","description":"The name of the database to which the migration object belongs in the source instance. Note: this parameter is only available and must be passed in when the source instance, or the database type of the source instance is PolarDB O engine, PostgreSQL, or MongoDB database.\n"},"sourceEndpointEngineName":{"type":"string","description":"The type of source database. The default value is `MySQL`. For the correspondence between supported source libraries and target libraries, see [Supported Databases](https://help.aliyun.com/document_detail/131497.htm). When the database type of the source instance is `MONGODB`, you also need to pass in some information in the reserved parameter `Reserve`, for the configuration method, see the description of Reserve parameters. Valid values: `AS400`, `DB2`, `DMSPOLARDB`, `HBASE`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `POSTGRESQL`, `TERADATA`, `POLARDB_PG`, `MARIADB`, `POLARDBX10`, `TiDB`, `REDIS`.\n"},"sourceEndpointInstanceId":{"type":"string","description":"The ID of source instance. If the source instance is a cloud database (such as RDS MySQL), you need to pass in the instance ID of the cloud database (such as the instance ID of RDS MySQL). If the source instance is a self-built database, the value of this parameter changes according to the value of \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e. For example, the value of \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is:\n** `ECS`, then this parameter needs to be passed into the instance ID of ECS.\n** `DG`, then this parameter needs to be passed into the ID of database gateway.\n** `EXPRESS`, `CEN`, then this parameter needs to be passed in the ID of VPC that has been interconnected with the source database. **Note**: when the value is `CEN`, you also need to pass in the ID of CEN instance in the cloud enterprise network with the reserved parameter \u003cspan pulumi-lang-nodejs=\"`reserve`\" pulumi-lang-dotnet=\"`Reserve`\" pulumi-lang-go=\"`reserve`\" pulumi-lang-python=\"`reserve`\" pulumi-lang-yaml=\"`reserve`\" pulumi-lang-java=\"`reserve`\"\u003e`reserve`\u003c/span\u003e.\n"},"sourceEndpointInstanceType":{"type":"string","description":"The type of source instance. If the source instance is a `PolarDB O` engine cluster, the source instance type needs to be `OTHER` or `EXPRESS` as a self-built database, and access via public IP or dedicated line. For the correspondence between supported source and target instances, see [Supported Databases](https://help.aliyun.com/document_detail/131497.htm). When the source instance is a self-built database, you also need to perform corresponding preparations, for details, see [Preparations Overview](https://help.aliyun.com/document_detail/146958.htm). Valid values: `CEN`, `DG`, `DISTRIBUTED_DMSLOGICDB`, `ECS`, `EXPRESS`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.\n"},"sourceEndpointIp":{"type":"string","description":"The IP of source endpoint. When \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `OTHER`, `EXPRESS`, `DG`, `CEN`, this parameter is available and must be passed in.\n"},"sourceEndpointOracleSid":{"type":"string","description":"The SID of Oracle database. When the value of SourceEndpointEngineName is Oracle and the Oracle database is a non-RAC instance, this parameter is available and must be passed in.\n"},"sourceEndpointOwnerId":{"type":"string","description":"The ID of Alibaba Cloud account to which the source instance belongs. Note: passing in this parameter means performing data migration or synchronization across Alibaba Cloud accounts, and you also need to pass in the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointRole`\" pulumi-lang-dotnet=\"`SourceEndpointRole`\" pulumi-lang-go=\"`sourceEndpointRole`\" pulumi-lang-python=\"`source_endpoint_role`\" pulumi-lang-yaml=\"`sourceEndpointRole`\" pulumi-lang-java=\"`sourceEndpointRole`\"\u003e`source_endpoint_role`\u003c/span\u003e parameter.\n"},"sourceEndpointPassword":{"type":"string","description":"The password of database account.\n"},"sourceEndpointPort":{"type":"string","description":"The port of source endpoint. When the source instance is a self-built database, this parameter is available and must be passed in.\n"},"sourceEndpointRegion":{"type":"string","description":"Source instance area, please refer to the [list of supported areas](https://help.aliyun.com/document_detail/141033.htm) for details. Note if the source is an Alibaba Cloud database, this parameter must be passed in.\n"},"sourceEndpointRole":{"type":"string","description":"The name of the role configured for the cloud account to which the source instance belongs. Note: this parameter must be passed in when performing cross Alibaba Cloud account data migration or synchronization. For the permissions and authorization methods required by this role, please refer to [How to configure RAM authorization when cross-Alibaba Cloud account data migration or synchronization](https://help.aliyun.com/document_detail/48468.htm).\n"},"sourceEndpointUserName":{"type":"string","description":"The username of database account. Note: in most cases, you need to pass in the database account of the source library. The permissions required for migrating or synchronizing different databases are different. For specific permission requirements, see [Preparing database accounts for data migration](https://help.aliyun.com/document_detail/175878.htm) and [Preparing database accounts for data synchronization](https://help.aliyun.com/document_detail/213152.htm).\n"},"sourceEndpointVswitchId":{"type":"string","description":"Data Delivery link switch instance id\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Synchronizing`, `Suspending`. You can stop the task by specifying `Suspending` and start the task by specifying `Synchronizing`.\n"},"structureInitialization":{"type":"boolean","description":"Whether to perform library table structure migration or initialization. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"synchronizationDirection":{"type":"string","description":"Synchronization direction. Valid values: `Forward`, `Reverse`. Only when the property \u003cspan pulumi-lang-nodejs=\"`syncArchitecture`\" pulumi-lang-dotnet=\"`SyncArchitecture`\" pulumi-lang-go=\"`syncArchitecture`\" pulumi-lang-python=\"`sync_architecture`\" pulumi-lang-yaml=\"`syncArchitecture`\" pulumi-lang-java=\"`syncArchitecture`\"\u003e`sync_architecture`\u003c/span\u003e of the \u003cspan pulumi-lang-nodejs=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-dotnet=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-go=\"`dts.SynchronizationInstance`\" pulumi-lang-python=\"`dts.SynchronizationInstance`\" pulumi-lang-yaml=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-java=\"`alicloud.dts.SynchronizationInstance`\"\u003e`alicloud.dts.SynchronizationInstance`\u003c/span\u003e was \u003cspan pulumi-lang-nodejs=\"`bidirectional`\" pulumi-lang-dotnet=\"`Bidirectional`\" pulumi-lang-go=\"`bidirectional`\" pulumi-lang-python=\"`bidirectional`\" pulumi-lang-yaml=\"`bidirectional`\" pulumi-lang-java=\"`bidirectional`\"\u003e`bidirectional`\u003c/span\u003e this parameter should be passed, otherwise this parameter should not be specified.\n"}},"required":["checkpoint","dataInitialization","dataSynchronization","dbList","destinationEndpointEngineName","destinationEndpointInstanceType","dtsInstanceId","dtsJobName","instanceClass","reserve","sourceEndpointEngineName","sourceEndpointInstanceType","status","structureInitialization","synchronizationDirection"],"inputProperties":{"checkpoint":{"type":"string","description":"The start point or synchronization point of incremental data migration, the format is Unix timestamp, and the unit is seconds.\n","willReplaceOnChanges":true},"dataCheckConfigure":{"type":"string","description":"The data verification task of the migration or synchronization instance, in the format of a JSON string, such as parameter limits or alarm configurations. For more information, see the DataCheckConfigure parameter description [datacheckconfigure-parameter](https://help.aliyun.com/zh/dts/developer-reference/datacheckconfigure-parameter).\n","willReplaceOnChanges":true},"dataInitialization":{"type":"boolean","description":"Whether to perform full data migration or full data initialization. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"dataSynchronization":{"type":"boolean","description":"Whether to perform incremental data migration or synchronization. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"dbList":{"type":"string","description":"Migration object, in the format of JSON strings. For detailed definition instructions, please refer to [the description of migration, synchronization or subscription objects](https://help.aliyun.com/document_detail/209545.html). **NOTE:** From version 1.173.0, \u003cspan pulumi-lang-nodejs=\"`dbList`\" pulumi-lang-dotnet=\"`DbList`\" pulumi-lang-go=\"`dbList`\" pulumi-lang-python=\"`db_list`\" pulumi-lang-yaml=\"`dbList`\" pulumi-lang-java=\"`dbList`\"\u003e`db_list`\u003c/span\u003e can be modified.\n"},"dedicatedClusterId":{"type":"string","description":"When the ID of the dedicated cluster is input, the task is scheduled to the corresponding cluster.\n","willReplaceOnChanges":true},"delayNotice":{"type":"boolean","description":"The delay notice. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"delayPhone":{"type":"string","description":"The delay phone. The mobile phone number of the contact who delayed the alarm. Multiple mobile phone numbers separated by English commas `,`. This parameter currently only supports China stations, and only supports mainland mobile phone numbers, and up to 10 mobile phone numbers can be passed in.\n","willReplaceOnChanges":true},"delayRuleTime":{"type":"string","description":"The delay rule time. When \u003cspan pulumi-lang-nodejs=\"`delayNotice`\" pulumi-lang-dotnet=\"`DelayNotice`\" pulumi-lang-go=\"`delayNotice`\" pulumi-lang-python=\"`delay_notice`\" pulumi-lang-yaml=\"`delayNotice`\" pulumi-lang-java=\"`delayNotice`\"\u003e`delay_notice`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this parameter must be passed in. The threshold for triggering the delay alarm. The unit is second and needs to be an integer. The threshold can be set according to business needs. It is recommended to set it above 10 seconds to avoid delay fluctuations caused by network and database load.\n","willReplaceOnChanges":true},"destinationEndpointDatabaseName":{"type":"string","description":"The name of the database to which the migration object belongs in the target instance. Note: when the target instance or target database type is PolarDB O engine, AnalyticDB PostgreSQL, PostgreSQL, MongoDB database, this parameter is available and must be passed in.\n","willReplaceOnChanges":true},"destinationEndpointEngineName":{"type":"string","description":"The type of destination database. The default value is MYSQL. For the correspondence between supported target libraries and source libraries, see [Supported Databases](https://help.aliyun.com/document_detail/131497.htm). When the database type of the target instance is KAFKA or MONGODB, you also need to pass in some information in the reserved parameter \u003cspan pulumi-lang-nodejs=\"`reserve`\" pulumi-lang-dotnet=\"`Reserve`\" pulumi-lang-go=\"`reserve`\" pulumi-lang-python=\"`reserve`\" pulumi-lang-yaml=\"`reserve`\" pulumi-lang-java=\"`reserve`\"\u003e`reserve`\u003c/span\u003e. For the configuration method, see the description of \u003cspan pulumi-lang-nodejs=\"`reserve`\" pulumi-lang-dotnet=\"`Reserve`\" pulumi-lang-go=\"`reserve`\" pulumi-lang-python=\"`reserve`\" pulumi-lang-yaml=\"`reserve`\" pulumi-lang-java=\"`reserve`\"\u003e`reserve`\u003c/span\u003e parameters. Valid values: `ADS`, `ADB30`, `AS400`, `DATAHUB`, `DB2`, `GREENPLUM`, `KAFKA`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `PostgreSQL`,` POLARDB_PG`, `MARIADB`, `POLARDBX10`, `ODPS`, `Tablestore`, `ELK`, `REDIS`.\n","willReplaceOnChanges":true},"destinationEndpointInstanceId":{"type":"string","description":"The ID of destination instance. If the target instance is a cloud database (such as RDS MySQL), you need to pass in the instance ID of the cloud database (such as the instance ID of RDS MySQL). If the target instance is a self-built database, the value of this parameter changes according to the value of \u003cspan pulumi-lang-nodejs=\"`destinationEndpointInstanceType`\" pulumi-lang-dotnet=\"`DestinationEndpointInstanceType`\" pulumi-lang-go=\"`destinationEndpointInstanceType`\" pulumi-lang-python=\"`destination_endpoint_instance_type`\" pulumi-lang-yaml=\"`destinationEndpointInstanceType`\" pulumi-lang-java=\"`destinationEndpointInstanceType`\"\u003e`destination_endpoint_instance_type`\u003c/span\u003e. For example, the value of \u003cspan pulumi-lang-nodejs=\"`destinationEndpointInstanceType`\" pulumi-lang-dotnet=\"`DestinationEndpointInstanceType`\" pulumi-lang-go=\"`destinationEndpointInstanceType`\" pulumi-lang-python=\"`destination_endpoint_instance_type`\" pulumi-lang-yaml=\"`destinationEndpointInstanceType`\" pulumi-lang-java=\"`destinationEndpointInstanceType`\"\u003e`destination_endpoint_instance_type`\u003c/span\u003e is:\n** `ECS`, then this parameter needs to be passed into the instance ID of ECS.\n** `DG`, then this parameter needs to be passed into the ID of database gateway.\n** `EXPRESS`, `CEN`, then this parameter needs to be passed in the ID of VPC that has been interconnected with the source database. **Note**: when the value is `CEN`, you also need to pass in the ID of CEN instance in the cloud enterprise network with the reserved parameter \u003cspan pulumi-lang-nodejs=\"`reserve`\" pulumi-lang-dotnet=\"`Reserve`\" pulumi-lang-go=\"`reserve`\" pulumi-lang-python=\"`reserve`\" pulumi-lang-yaml=\"`reserve`\" pulumi-lang-java=\"`reserve`\"\u003e`reserve`\u003c/span\u003e.\n","willReplaceOnChanges":true},"destinationEndpointInstanceType":{"type":"string","description":"The type of destination instance. If the target instance is a PolarDB O engine cluster, the target instance type needs to be `OTHER` or `EXPRESS` as a self-built database, and access via public IP or dedicated line. If the target instance is the Kafka version of Message Queuing, the target instance type needs to be `ECS` or `EXPRESS` as a self-built database, and access via ECS or dedicated line. For the correspondence between supported targets and source instances, see [Supported Databases](https://help.aliyun.com/document_detail/131497.htm). When the target instance is a self-built database, you also need to perform corresponding preparations, please refer to the [overview of preparations](https://help.aliyun.com/document_detail/146958.htm). Valid values: `ADS`, `CEN`, `DATAHUB`, `DG`, `ECS`, `EXPRESS`, `GREENPLUM`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.\n","willReplaceOnChanges":true},"destinationEndpointIp":{"type":"string","description":"The IP of source endpoint. When \u003cspan pulumi-lang-nodejs=\"`destinationEndpointInstanceType`\" pulumi-lang-dotnet=\"`DestinationEndpointInstanceType`\" pulumi-lang-go=\"`destinationEndpointInstanceType`\" pulumi-lang-python=\"`destination_endpoint_instance_type`\" pulumi-lang-yaml=\"`destinationEndpointInstanceType`\" pulumi-lang-java=\"`destinationEndpointInstanceType`\"\u003e`destination_endpoint_instance_type`\u003c/span\u003e is `OTHER`, `EXPRESS`, `DG`, `CEN`, this parameter is available and must be passed in.\n","willReplaceOnChanges":true},"destinationEndpointOracleSid":{"type":"string","description":"The SID of Oracle database. Note: when the value of DestinationEndpointEngineName is Oracle and the Oracle database is a non-RAC instance, this parameter is available and must be passed in.\n","willReplaceOnChanges":true},"destinationEndpointOwnerId":{"type":"string","description":"The ID of the Alibaba Cloud account to which the target RDS MySQL instance belongs. can be configured only when the target instance is RDS MySQL. This parameter is used to migrate or synchronize data across Alibaba Cloud accounts. You also need to enter the **destinationendpointrle** parameter.\n","willReplaceOnChanges":true},"destinationEndpointPassword":{"type":"string","description":"The password of database account.\n"},"destinationEndpointPort":{"type":"string","description":"The port of source endpoint. When the target instance is a self-built database, this parameter is available and must be passed in.\n","willReplaceOnChanges":true},"destinationEndpointRegion":{"type":"string","description":"The region of destination instance. For the target instance region, please refer to the [list of supported regions](https://help.aliyun.com/document_detail/141033.htm). Note: if the target is an Alibaba Cloud database, this parameter must be passed in.\n","willReplaceOnChanges":true},"destinationEndpointRole":{"type":"string","description":"The role name of the Alibaba Cloud account to which the target instance belongs. This parameter must be entered when data migration or synchronization across Alibaba Cloud accounts is performed. For the permissions and authorization methods required by this role.\n","willReplaceOnChanges":true},"destinationEndpointUserName":{"type":"string","description":"The username of database account. Note: in most cases, you need to pass in the database account of the source library. The permissions required for migrating or synchronizing different databases are different. For specific permission requirements, see [Preparing database accounts for data migration](https://help.aliyun.com/document_detail/175878.htm) and [Preparing database accounts for data synchronization](https://help.aliyun.com/document_detail/213152.htm).\n","willReplaceOnChanges":true},"dtsBisLabel":{"type":"string","description":"The environment label of the DTS instance. The value is: **normal**, **online**.\n\n\u003e **NOTE:** From the status of `NotStarted` to `Synchronizing`, the resource goes through the `Prechecking` and `Initializing` phases. Because of the `Initializing` phase takes too long, and once the resource passes to the status of `Prechecking`, it can be considered that the task can be executed normally. Therefore, we treat the status of `Initializing` as an equivalent to `Synchronizing`.\n\n\u003e **NOTE:** If you want to upgrade the synchronization job specifications by the property \u003cspan pulumi-lang-nodejs=\"`instanceClass`\" pulumi-lang-dotnet=\"`InstanceClass`\" pulumi-lang-go=\"`instanceClass`\" pulumi-lang-python=\"`instance_class`\" pulumi-lang-yaml=\"`instanceClass`\" pulumi-lang-java=\"`instanceClass`\"\u003e`instance_class`\u003c/span\u003e, you must also modify the property \u003cspan pulumi-lang-nodejs=\"`instanceClass`\" pulumi-lang-dotnet=\"`InstanceClass`\" pulumi-lang-go=\"`instanceClass`\" pulumi-lang-python=\"`instance_class`\" pulumi-lang-yaml=\"`instanceClass`\" pulumi-lang-java=\"`instanceClass`\"\u003e`instance_class`\u003c/span\u003e of it's instance to keep them consistent.\n","willReplaceOnChanges":true},"dtsInstanceId":{"type":"string","description":"The ID of synchronization instance, it must be an ID of \u003cspan pulumi-lang-nodejs=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-dotnet=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-go=\"`dts.SynchronizationInstance`\" pulumi-lang-python=\"`dts.SynchronizationInstance`\" pulumi-lang-yaml=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-java=\"`alicloud.dts.SynchronizationInstance`\"\u003e`alicloud.dts.SynchronizationInstance`\u003c/span\u003e.\n","willReplaceOnChanges":true},"dtsJobName":{"type":"string","description":"The name of synchronization job.\n"},"errorNotice":{"type":"boolean","description":"The error notice. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"errorPhone":{"type":"string","description":"The error phone. The mobile phone number of the contact who error the alarm. Multiple mobile phone numbers separated by English commas `,`. This parameter currently only supports China stations, and only supports mainland mobile phone numbers, and up to 10 mobile phone numbers can be passed in.\n","willReplaceOnChanges":true},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`micro`\" pulumi-lang-dotnet=\"`Micro`\" pulumi-lang-go=\"`micro`\" pulumi-lang-python=\"`micro`\" pulumi-lang-yaml=\"`micro`\" pulumi-lang-java=\"`micro`\"\u003e`micro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xxlarge`\" pulumi-lang-dotnet=\"`Xxlarge`\" pulumi-lang-go=\"`xxlarge`\" pulumi-lang-python=\"`xxlarge`\" pulumi-lang-yaml=\"`xxlarge`\" pulumi-lang-java=\"`xxlarge`\"\u003e`xxlarge`\u003c/span\u003e. You can only upgrade the configuration, not downgrade the configuration. If you downgrade the instance, you need to [submit a ticket](https://selfservice.console.aliyun.com/ticket/category/dts/today).\n"},"jobParameters":{"type":"string","description":"DTS modifiable runtime parameters, you can modify the parameters of a running DTS (Data Transmission Service) task by providing a JSON array. This allows for real-time adjustments to the task's behavior.Please note that you can only modify these parameters while the task is active; they are not available during the initial setup. For more information, please refer to the parameter [description of the Runtime parameter](https://help.aliyun.com/zh/dts/developer-reference/parameter-description).\n"},"reserve":{"type":"string","description":"DTS reserves parameters, the format is a JSON string, you can pass in this parameter to complete the source and target database information (such as the data storage format of the target Kafka database, the instance ID of the cloud enterprise network CEN). For more information, please refer to the parameter [description of the Reserve parameter](https://help.aliyun.com/document_detail/273111.html).\n"},"sourceEndpointDatabaseName":{"type":"string","description":"The name of the database to which the migration object belongs in the source instance. Note: this parameter is only available and must be passed in when the source instance, or the database type of the source instance is PolarDB O engine, PostgreSQL, or MongoDB database.\n","willReplaceOnChanges":true},"sourceEndpointEngineName":{"type":"string","description":"The type of source database. The default value is `MySQL`. For the correspondence between supported source libraries and target libraries, see [Supported Databases](https://help.aliyun.com/document_detail/131497.htm). When the database type of the source instance is `MONGODB`, you also need to pass in some information in the reserved parameter `Reserve`, for the configuration method, see the description of Reserve parameters. Valid values: `AS400`, `DB2`, `DMSPOLARDB`, `HBASE`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `POSTGRESQL`, `TERADATA`, `POLARDB_PG`, `MARIADB`, `POLARDBX10`, `TiDB`, `REDIS`.\n","willReplaceOnChanges":true},"sourceEndpointInstanceId":{"type":"string","description":"The ID of source instance. If the source instance is a cloud database (such as RDS MySQL), you need to pass in the instance ID of the cloud database (such as the instance ID of RDS MySQL). If the source instance is a self-built database, the value of this parameter changes according to the value of \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e. For example, the value of \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is:\n** `ECS`, then this parameter needs to be passed into the instance ID of ECS.\n** `DG`, then this parameter needs to be passed into the ID of database gateway.\n** `EXPRESS`, `CEN`, then this parameter needs to be passed in the ID of VPC that has been interconnected with the source database. **Note**: when the value is `CEN`, you also need to pass in the ID of CEN instance in the cloud enterprise network with the reserved parameter \u003cspan pulumi-lang-nodejs=\"`reserve`\" pulumi-lang-dotnet=\"`Reserve`\" pulumi-lang-go=\"`reserve`\" pulumi-lang-python=\"`reserve`\" pulumi-lang-yaml=\"`reserve`\" pulumi-lang-java=\"`reserve`\"\u003e`reserve`\u003c/span\u003e.\n","willReplaceOnChanges":true},"sourceEndpointInstanceType":{"type":"string","description":"The type of source instance. If the source instance is a `PolarDB O` engine cluster, the source instance type needs to be `OTHER` or `EXPRESS` as a self-built database, and access via public IP or dedicated line. For the correspondence between supported source and target instances, see [Supported Databases](https://help.aliyun.com/document_detail/131497.htm). When the source instance is a self-built database, you also need to perform corresponding preparations, for details, see [Preparations Overview](https://help.aliyun.com/document_detail/146958.htm). Valid values: `CEN`, `DG`, `DISTRIBUTED_DMSLOGICDB`, `ECS`, `EXPRESS`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.\n","willReplaceOnChanges":true},"sourceEndpointIp":{"type":"string","description":"The IP of source endpoint. When \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `OTHER`, `EXPRESS`, `DG`, `CEN`, this parameter is available and must be passed in.\n","willReplaceOnChanges":true},"sourceEndpointOracleSid":{"type":"string","description":"The SID of Oracle database. When the value of SourceEndpointEngineName is Oracle and the Oracle database is a non-RAC instance, this parameter is available and must be passed in.\n","willReplaceOnChanges":true},"sourceEndpointOwnerId":{"type":"string","description":"The ID of Alibaba Cloud account to which the source instance belongs. Note: passing in this parameter means performing data migration or synchronization across Alibaba Cloud accounts, and you also need to pass in the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointRole`\" pulumi-lang-dotnet=\"`SourceEndpointRole`\" pulumi-lang-go=\"`sourceEndpointRole`\" pulumi-lang-python=\"`source_endpoint_role`\" pulumi-lang-yaml=\"`sourceEndpointRole`\" pulumi-lang-java=\"`sourceEndpointRole`\"\u003e`source_endpoint_role`\u003c/span\u003e parameter.\n","willReplaceOnChanges":true},"sourceEndpointPassword":{"type":"string","description":"The password of database account.\n"},"sourceEndpointPort":{"type":"string","description":"The port of source endpoint. When the source instance is a self-built database, this parameter is available and must be passed in.\n","willReplaceOnChanges":true},"sourceEndpointRegion":{"type":"string","description":"Source instance area, please refer to the [list of supported areas](https://help.aliyun.com/document_detail/141033.htm) for details. Note if the source is an Alibaba Cloud database, this parameter must be passed in.\n","willReplaceOnChanges":true},"sourceEndpointRole":{"type":"string","description":"The name of the role configured for the cloud account to which the source instance belongs. Note: this parameter must be passed in when performing cross Alibaba Cloud account data migration or synchronization. For the permissions and authorization methods required by this role, please refer to [How to configure RAM authorization when cross-Alibaba Cloud account data migration or synchronization](https://help.aliyun.com/document_detail/48468.htm).\n","willReplaceOnChanges":true},"sourceEndpointUserName":{"type":"string","description":"The username of database account. Note: in most cases, you need to pass in the database account of the source library. The permissions required for migrating or synchronizing different databases are different. For specific permission requirements, see [Preparing database accounts for data migration](https://help.aliyun.com/document_detail/175878.htm) and [Preparing database accounts for data synchronization](https://help.aliyun.com/document_detail/213152.htm).\n","willReplaceOnChanges":true},"sourceEndpointVswitchId":{"type":"string","description":"Data Delivery link switch instance id\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `Synchronizing`, `Suspending`. You can stop the task by specifying `Suspending` and start the task by specifying `Synchronizing`.\n"},"structureInitialization":{"type":"boolean","description":"Whether to perform library table structure migration or initialization. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"synchronizationDirection":{"type":"string","description":"Synchronization direction. Valid values: `Forward`, `Reverse`. Only when the property \u003cspan pulumi-lang-nodejs=\"`syncArchitecture`\" pulumi-lang-dotnet=\"`SyncArchitecture`\" pulumi-lang-go=\"`syncArchitecture`\" pulumi-lang-python=\"`sync_architecture`\" pulumi-lang-yaml=\"`syncArchitecture`\" pulumi-lang-java=\"`syncArchitecture`\"\u003e`sync_architecture`\u003c/span\u003e of the \u003cspan pulumi-lang-nodejs=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-dotnet=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-go=\"`dts.SynchronizationInstance`\" pulumi-lang-python=\"`dts.SynchronizationInstance`\" pulumi-lang-yaml=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-java=\"`alicloud.dts.SynchronizationInstance`\"\u003e`alicloud.dts.SynchronizationInstance`\u003c/span\u003e was \u003cspan pulumi-lang-nodejs=\"`bidirectional`\" pulumi-lang-dotnet=\"`Bidirectional`\" pulumi-lang-go=\"`bidirectional`\" pulumi-lang-python=\"`bidirectional`\" pulumi-lang-yaml=\"`bidirectional`\" pulumi-lang-java=\"`bidirectional`\"\u003e`bidirectional`\u003c/span\u003e this parameter should be passed, otherwise this parameter should not be specified.\n","willReplaceOnChanges":true}},"requiredInputs":["dataInitialization","dataSynchronization","dbList","destinationEndpointEngineName","destinationEndpointInstanceType","dtsInstanceId","dtsJobName","sourceEndpointEngineName","sourceEndpointInstanceType","structureInitialization"],"stateInputs":{"description":"Input properties used for looking up and filtering SynchronizationJob resources.\n","properties":{"checkpoint":{"type":"string","description":"The start point or synchronization point of incremental data migration, the format is Unix timestamp, and the unit is seconds.\n","willReplaceOnChanges":true},"dataCheckConfigure":{"type":"string","description":"The data verification task of the migration or synchronization instance, in the format of a JSON string, such as parameter limits or alarm configurations. For more information, see the DataCheckConfigure parameter description [datacheckconfigure-parameter](https://help.aliyun.com/zh/dts/developer-reference/datacheckconfigure-parameter).\n","willReplaceOnChanges":true},"dataInitialization":{"type":"boolean","description":"Whether to perform full data migration or full data initialization. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"dataSynchronization":{"type":"boolean","description":"Whether to perform incremental data migration or synchronization. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"dbList":{"type":"string","description":"Migration object, in the format of JSON strings. For detailed definition instructions, please refer to [the description of migration, synchronization or subscription objects](https://help.aliyun.com/document_detail/209545.html). **NOTE:** From version 1.173.0, \u003cspan pulumi-lang-nodejs=\"`dbList`\" pulumi-lang-dotnet=\"`DbList`\" pulumi-lang-go=\"`dbList`\" pulumi-lang-python=\"`db_list`\" pulumi-lang-yaml=\"`dbList`\" pulumi-lang-java=\"`dbList`\"\u003e`db_list`\u003c/span\u003e can be modified.\n"},"dedicatedClusterId":{"type":"string","description":"When the ID of the dedicated cluster is input, the task is scheduled to the corresponding cluster.\n","willReplaceOnChanges":true},"delayNotice":{"type":"boolean","description":"The delay notice. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"delayPhone":{"type":"string","description":"The delay phone. The mobile phone number of the contact who delayed the alarm. Multiple mobile phone numbers separated by English commas `,`. This parameter currently only supports China stations, and only supports mainland mobile phone numbers, and up to 10 mobile phone numbers can be passed in.\n","willReplaceOnChanges":true},"delayRuleTime":{"type":"string","description":"The delay rule time. When \u003cspan pulumi-lang-nodejs=\"`delayNotice`\" pulumi-lang-dotnet=\"`DelayNotice`\" pulumi-lang-go=\"`delayNotice`\" pulumi-lang-python=\"`delay_notice`\" pulumi-lang-yaml=\"`delayNotice`\" pulumi-lang-java=\"`delayNotice`\"\u003e`delay_notice`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this parameter must be passed in. The threshold for triggering the delay alarm. The unit is second and needs to be an integer. The threshold can be set according to business needs. It is recommended to set it above 10 seconds to avoid delay fluctuations caused by network and database load.\n","willReplaceOnChanges":true},"destinationEndpointDatabaseName":{"type":"string","description":"The name of the database to which the migration object belongs in the target instance. Note: when the target instance or target database type is PolarDB O engine, AnalyticDB PostgreSQL, PostgreSQL, MongoDB database, this parameter is available and must be passed in.\n","willReplaceOnChanges":true},"destinationEndpointEngineName":{"type":"string","description":"The type of destination database. The default value is MYSQL. For the correspondence between supported target libraries and source libraries, see [Supported Databases](https://help.aliyun.com/document_detail/131497.htm). When the database type of the target instance is KAFKA or MONGODB, you also need to pass in some information in the reserved parameter \u003cspan pulumi-lang-nodejs=\"`reserve`\" pulumi-lang-dotnet=\"`Reserve`\" pulumi-lang-go=\"`reserve`\" pulumi-lang-python=\"`reserve`\" pulumi-lang-yaml=\"`reserve`\" pulumi-lang-java=\"`reserve`\"\u003e`reserve`\u003c/span\u003e. For the configuration method, see the description of \u003cspan pulumi-lang-nodejs=\"`reserve`\" pulumi-lang-dotnet=\"`Reserve`\" pulumi-lang-go=\"`reserve`\" pulumi-lang-python=\"`reserve`\" pulumi-lang-yaml=\"`reserve`\" pulumi-lang-java=\"`reserve`\"\u003e`reserve`\u003c/span\u003e parameters. Valid values: `ADS`, `ADB30`, `AS400`, `DATAHUB`, `DB2`, `GREENPLUM`, `KAFKA`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `PostgreSQL`,` POLARDB_PG`, `MARIADB`, `POLARDBX10`, `ODPS`, `Tablestore`, `ELK`, `REDIS`.\n","willReplaceOnChanges":true},"destinationEndpointInstanceId":{"type":"string","description":"The ID of destination instance. If the target instance is a cloud database (such as RDS MySQL), you need to pass in the instance ID of the cloud database (such as the instance ID of RDS MySQL). If the target instance is a self-built database, the value of this parameter changes according to the value of \u003cspan pulumi-lang-nodejs=\"`destinationEndpointInstanceType`\" pulumi-lang-dotnet=\"`DestinationEndpointInstanceType`\" pulumi-lang-go=\"`destinationEndpointInstanceType`\" pulumi-lang-python=\"`destination_endpoint_instance_type`\" pulumi-lang-yaml=\"`destinationEndpointInstanceType`\" pulumi-lang-java=\"`destinationEndpointInstanceType`\"\u003e`destination_endpoint_instance_type`\u003c/span\u003e. For example, the value of \u003cspan pulumi-lang-nodejs=\"`destinationEndpointInstanceType`\" pulumi-lang-dotnet=\"`DestinationEndpointInstanceType`\" pulumi-lang-go=\"`destinationEndpointInstanceType`\" pulumi-lang-python=\"`destination_endpoint_instance_type`\" pulumi-lang-yaml=\"`destinationEndpointInstanceType`\" pulumi-lang-java=\"`destinationEndpointInstanceType`\"\u003e`destination_endpoint_instance_type`\u003c/span\u003e is:\n** `ECS`, then this parameter needs to be passed into the instance ID of ECS.\n** `DG`, then this parameter needs to be passed into the ID of database gateway.\n** `EXPRESS`, `CEN`, then this parameter needs to be passed in the ID of VPC that has been interconnected with the source database. **Note**: when the value is `CEN`, you also need to pass in the ID of CEN instance in the cloud enterprise network with the reserved parameter \u003cspan pulumi-lang-nodejs=\"`reserve`\" pulumi-lang-dotnet=\"`Reserve`\" pulumi-lang-go=\"`reserve`\" pulumi-lang-python=\"`reserve`\" pulumi-lang-yaml=\"`reserve`\" pulumi-lang-java=\"`reserve`\"\u003e`reserve`\u003c/span\u003e.\n","willReplaceOnChanges":true},"destinationEndpointInstanceType":{"type":"string","description":"The type of destination instance. If the target instance is a PolarDB O engine cluster, the target instance type needs to be `OTHER` or `EXPRESS` as a self-built database, and access via public IP or dedicated line. If the target instance is the Kafka version of Message Queuing, the target instance type needs to be `ECS` or `EXPRESS` as a self-built database, and access via ECS or dedicated line. For the correspondence between supported targets and source instances, see [Supported Databases](https://help.aliyun.com/document_detail/131497.htm). When the target instance is a self-built database, you also need to perform corresponding preparations, please refer to the [overview of preparations](https://help.aliyun.com/document_detail/146958.htm). Valid values: `ADS`, `CEN`, `DATAHUB`, `DG`, `ECS`, `EXPRESS`, `GREENPLUM`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.\n","willReplaceOnChanges":true},"destinationEndpointIp":{"type":"string","description":"The IP of source endpoint. When \u003cspan pulumi-lang-nodejs=\"`destinationEndpointInstanceType`\" pulumi-lang-dotnet=\"`DestinationEndpointInstanceType`\" pulumi-lang-go=\"`destinationEndpointInstanceType`\" pulumi-lang-python=\"`destination_endpoint_instance_type`\" pulumi-lang-yaml=\"`destinationEndpointInstanceType`\" pulumi-lang-java=\"`destinationEndpointInstanceType`\"\u003e`destination_endpoint_instance_type`\u003c/span\u003e is `OTHER`, `EXPRESS`, `DG`, `CEN`, this parameter is available and must be passed in.\n","willReplaceOnChanges":true},"destinationEndpointOracleSid":{"type":"string","description":"The SID of Oracle database. Note: when the value of DestinationEndpointEngineName is Oracle and the Oracle database is a non-RAC instance, this parameter is available and must be passed in.\n","willReplaceOnChanges":true},"destinationEndpointOwnerId":{"type":"string","description":"The ID of the Alibaba Cloud account to which the target RDS MySQL instance belongs. can be configured only when the target instance is RDS MySQL. This parameter is used to migrate or synchronize data across Alibaba Cloud accounts. You also need to enter the **destinationendpointrle** parameter.\n","willReplaceOnChanges":true},"destinationEndpointPassword":{"type":"string","description":"The password of database account.\n"},"destinationEndpointPort":{"type":"string","description":"The port of source endpoint. When the target instance is a self-built database, this parameter is available and must be passed in.\n","willReplaceOnChanges":true},"destinationEndpointRegion":{"type":"string","description":"The region of destination instance. For the target instance region, please refer to the [list of supported regions](https://help.aliyun.com/document_detail/141033.htm). Note: if the target is an Alibaba Cloud database, this parameter must be passed in.\n","willReplaceOnChanges":true},"destinationEndpointRole":{"type":"string","description":"The role name of the Alibaba Cloud account to which the target instance belongs. This parameter must be entered when data migration or synchronization across Alibaba Cloud accounts is performed. For the permissions and authorization methods required by this role.\n","willReplaceOnChanges":true},"destinationEndpointUserName":{"type":"string","description":"The username of database account. Note: in most cases, you need to pass in the database account of the source library. The permissions required for migrating or synchronizing different databases are different. For specific permission requirements, see [Preparing database accounts for data migration](https://help.aliyun.com/document_detail/175878.htm) and [Preparing database accounts for data synchronization](https://help.aliyun.com/document_detail/213152.htm).\n","willReplaceOnChanges":true},"dtsBisLabel":{"type":"string","description":"The environment label of the DTS instance. The value is: **normal**, **online**.\n\n\u003e **NOTE:** From the status of `NotStarted` to `Synchronizing`, the resource goes through the `Prechecking` and `Initializing` phases. Because of the `Initializing` phase takes too long, and once the resource passes to the status of `Prechecking`, it can be considered that the task can be executed normally. Therefore, we treat the status of `Initializing` as an equivalent to `Synchronizing`.\n\n\u003e **NOTE:** If you want to upgrade the synchronization job specifications by the property \u003cspan pulumi-lang-nodejs=\"`instanceClass`\" pulumi-lang-dotnet=\"`InstanceClass`\" pulumi-lang-go=\"`instanceClass`\" pulumi-lang-python=\"`instance_class`\" pulumi-lang-yaml=\"`instanceClass`\" pulumi-lang-java=\"`instanceClass`\"\u003e`instance_class`\u003c/span\u003e, you must also modify the property \u003cspan pulumi-lang-nodejs=\"`instanceClass`\" pulumi-lang-dotnet=\"`InstanceClass`\" pulumi-lang-go=\"`instanceClass`\" pulumi-lang-python=\"`instance_class`\" pulumi-lang-yaml=\"`instanceClass`\" pulumi-lang-java=\"`instanceClass`\"\u003e`instance_class`\u003c/span\u003e of it's instance to keep them consistent.\n","willReplaceOnChanges":true},"dtsInstanceId":{"type":"string","description":"The ID of synchronization instance, it must be an ID of \u003cspan pulumi-lang-nodejs=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-dotnet=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-go=\"`dts.SynchronizationInstance`\" pulumi-lang-python=\"`dts.SynchronizationInstance`\" pulumi-lang-yaml=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-java=\"`alicloud.dts.SynchronizationInstance`\"\u003e`alicloud.dts.SynchronizationInstance`\u003c/span\u003e.\n","willReplaceOnChanges":true},"dtsJobName":{"type":"string","description":"The name of synchronization job.\n"},"errorNotice":{"type":"boolean","description":"The error notice. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"errorPhone":{"type":"string","description":"The error phone. The mobile phone number of the contact who error the alarm. Multiple mobile phone numbers separated by English commas `,`. This parameter currently only supports China stations, and only supports mainland mobile phone numbers, and up to 10 mobile phone numbers can be passed in.\n","willReplaceOnChanges":true},"instanceClass":{"type":"string","description":"The instance class. Valid values: \u003cspan pulumi-lang-nodejs=\"`large`\" pulumi-lang-dotnet=\"`Large`\" pulumi-lang-go=\"`large`\" pulumi-lang-python=\"`large`\" pulumi-lang-yaml=\"`large`\" pulumi-lang-java=\"`large`\"\u003e`large`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`micro`\" pulumi-lang-dotnet=\"`Micro`\" pulumi-lang-go=\"`micro`\" pulumi-lang-python=\"`micro`\" pulumi-lang-yaml=\"`micro`\" pulumi-lang-java=\"`micro`\"\u003e`micro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`small`\" pulumi-lang-dotnet=\"`Small`\" pulumi-lang-go=\"`small`\" pulumi-lang-python=\"`small`\" pulumi-lang-yaml=\"`small`\" pulumi-lang-java=\"`small`\"\u003e`small`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xlarge`\" pulumi-lang-dotnet=\"`Xlarge`\" pulumi-lang-go=\"`xlarge`\" pulumi-lang-python=\"`xlarge`\" pulumi-lang-yaml=\"`xlarge`\" pulumi-lang-java=\"`xlarge`\"\u003e`xlarge`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xxlarge`\" pulumi-lang-dotnet=\"`Xxlarge`\" pulumi-lang-go=\"`xxlarge`\" pulumi-lang-python=\"`xxlarge`\" pulumi-lang-yaml=\"`xxlarge`\" pulumi-lang-java=\"`xxlarge`\"\u003e`xxlarge`\u003c/span\u003e. You can only upgrade the configuration, not downgrade the configuration. If you downgrade the instance, you need to [submit a ticket](https://selfservice.console.aliyun.com/ticket/category/dts/today).\n"},"jobParameters":{"type":"string","description":"DTS modifiable runtime parameters, you can modify the parameters of a running DTS (Data Transmission Service) task by providing a JSON array. This allows for real-time adjustments to the task's behavior.Please note that you can only modify these parameters while the task is active; they are not available during the initial setup. For more information, please refer to the parameter [description of the Runtime parameter](https://help.aliyun.com/zh/dts/developer-reference/parameter-description).\n"},"reserve":{"type":"string","description":"DTS reserves parameters, the format is a JSON string, you can pass in this parameter to complete the source and target database information (such as the data storage format of the target Kafka database, the instance ID of the cloud enterprise network CEN). For more information, please refer to the parameter [description of the Reserve parameter](https://help.aliyun.com/document_detail/273111.html).\n"},"sourceEndpointDatabaseName":{"type":"string","description":"The name of the database to which the migration object belongs in the source instance. Note: this parameter is only available and must be passed in when the source instance, or the database type of the source instance is PolarDB O engine, PostgreSQL, or MongoDB database.\n","willReplaceOnChanges":true},"sourceEndpointEngineName":{"type":"string","description":"The type of source database. The default value is `MySQL`. For the correspondence between supported source libraries and target libraries, see [Supported Databases](https://help.aliyun.com/document_detail/131497.htm). When the database type of the source instance is `MONGODB`, you also need to pass in some information in the reserved parameter `Reserve`, for the configuration method, see the description of Reserve parameters. Valid values: `AS400`, `DB2`, `DMSPOLARDB`, `HBASE`, `MONGODB`, `MSSQL`, `MySQL`, `ORACLE`, `PolarDB`, `POLARDBX20`, `POLARDB_O`, `POSTGRESQL`, `TERADATA`, `POLARDB_PG`, `MARIADB`, `POLARDBX10`, `TiDB`, `REDIS`.\n","willReplaceOnChanges":true},"sourceEndpointInstanceId":{"type":"string","description":"The ID of source instance. If the source instance is a cloud database (such as RDS MySQL), you need to pass in the instance ID of the cloud database (such as the instance ID of RDS MySQL). If the source instance is a self-built database, the value of this parameter changes according to the value of \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e. For example, the value of \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is:\n** `ECS`, then this parameter needs to be passed into the instance ID of ECS.\n** `DG`, then this parameter needs to be passed into the ID of database gateway.\n** `EXPRESS`, `CEN`, then this parameter needs to be passed in the ID of VPC that has been interconnected with the source database. **Note**: when the value is `CEN`, you also need to pass in the ID of CEN instance in the cloud enterprise network with the reserved parameter \u003cspan pulumi-lang-nodejs=\"`reserve`\" pulumi-lang-dotnet=\"`Reserve`\" pulumi-lang-go=\"`reserve`\" pulumi-lang-python=\"`reserve`\" pulumi-lang-yaml=\"`reserve`\" pulumi-lang-java=\"`reserve`\"\u003e`reserve`\u003c/span\u003e.\n","willReplaceOnChanges":true},"sourceEndpointInstanceType":{"type":"string","description":"The type of source instance. If the source instance is a `PolarDB O` engine cluster, the source instance type needs to be `OTHER` or `EXPRESS` as a self-built database, and access via public IP or dedicated line. For the correspondence between supported source and target instances, see [Supported Databases](https://help.aliyun.com/document_detail/131497.htm). When the source instance is a self-built database, you also need to perform corresponding preparations, for details, see [Preparations Overview](https://help.aliyun.com/document_detail/146958.htm). Valid values: `CEN`, `DG`, `DISTRIBUTED_DMSLOGICDB`, `ECS`, `EXPRESS`, `MONGODB`, `OTHER`, `PolarDB`, `POLARDBX20`, `RDS`.\n","willReplaceOnChanges":true},"sourceEndpointIp":{"type":"string","description":"The IP of source endpoint. When \u003cspan pulumi-lang-nodejs=\"`sourceEndpointInstanceType`\" pulumi-lang-dotnet=\"`SourceEndpointInstanceType`\" pulumi-lang-go=\"`sourceEndpointInstanceType`\" pulumi-lang-python=\"`source_endpoint_instance_type`\" pulumi-lang-yaml=\"`sourceEndpointInstanceType`\" pulumi-lang-java=\"`sourceEndpointInstanceType`\"\u003e`source_endpoint_instance_type`\u003c/span\u003e is `OTHER`, `EXPRESS`, `DG`, `CEN`, this parameter is available and must be passed in.\n","willReplaceOnChanges":true},"sourceEndpointOracleSid":{"type":"string","description":"The SID of Oracle database. When the value of SourceEndpointEngineName is Oracle and the Oracle database is a non-RAC instance, this parameter is available and must be passed in.\n","willReplaceOnChanges":true},"sourceEndpointOwnerId":{"type":"string","description":"The ID of Alibaba Cloud account to which the source instance belongs. Note: passing in this parameter means performing data migration or synchronization across Alibaba Cloud accounts, and you also need to pass in the \u003cspan pulumi-lang-nodejs=\"`sourceEndpointRole`\" pulumi-lang-dotnet=\"`SourceEndpointRole`\" pulumi-lang-go=\"`sourceEndpointRole`\" pulumi-lang-python=\"`source_endpoint_role`\" pulumi-lang-yaml=\"`sourceEndpointRole`\" pulumi-lang-java=\"`sourceEndpointRole`\"\u003e`source_endpoint_role`\u003c/span\u003e parameter.\n","willReplaceOnChanges":true},"sourceEndpointPassword":{"type":"string","description":"The password of database account.\n"},"sourceEndpointPort":{"type":"string","description":"The port of source endpoint. When the source instance is a self-built database, this parameter is available and must be passed in.\n","willReplaceOnChanges":true},"sourceEndpointRegion":{"type":"string","description":"Source instance area, please refer to the [list of supported areas](https://help.aliyun.com/document_detail/141033.htm) for details. Note if the source is an Alibaba Cloud database, this parameter must be passed in.\n","willReplaceOnChanges":true},"sourceEndpointRole":{"type":"string","description":"The name of the role configured for the cloud account to which the source instance belongs. Note: this parameter must be passed in when performing cross Alibaba Cloud account data migration or synchronization. For the permissions and authorization methods required by this role, please refer to [How to configure RAM authorization when cross-Alibaba Cloud account data migration or synchronization](https://help.aliyun.com/document_detail/48468.htm).\n","willReplaceOnChanges":true},"sourceEndpointUserName":{"type":"string","description":"The username of database account. Note: in most cases, you need to pass in the database account of the source library. The permissions required for migrating or synchronizing different databases are different. For specific permission requirements, see [Preparing database accounts for data migration](https://help.aliyun.com/document_detail/175878.htm) and [Preparing database accounts for data synchronization](https://help.aliyun.com/document_detail/213152.htm).\n","willReplaceOnChanges":true},"sourceEndpointVswitchId":{"type":"string","description":"Data Delivery link switch instance id\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `Synchronizing`, `Suspending`. You can stop the task by specifying `Suspending` and start the task by specifying `Synchronizing`.\n"},"structureInitialization":{"type":"boolean","description":"Whether to perform library table structure migration or initialization. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"synchronizationDirection":{"type":"string","description":"Synchronization direction. Valid values: `Forward`, `Reverse`. Only when the property \u003cspan pulumi-lang-nodejs=\"`syncArchitecture`\" pulumi-lang-dotnet=\"`SyncArchitecture`\" pulumi-lang-go=\"`syncArchitecture`\" pulumi-lang-python=\"`sync_architecture`\" pulumi-lang-yaml=\"`syncArchitecture`\" pulumi-lang-java=\"`syncArchitecture`\"\u003e`sync_architecture`\u003c/span\u003e of the \u003cspan pulumi-lang-nodejs=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-dotnet=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-go=\"`dts.SynchronizationInstance`\" pulumi-lang-python=\"`dts.SynchronizationInstance`\" pulumi-lang-yaml=\"`alicloud.dts.SynchronizationInstance`\" pulumi-lang-java=\"`alicloud.dts.SynchronizationInstance`\"\u003e`alicloud.dts.SynchronizationInstance`\u003c/span\u003e was \u003cspan pulumi-lang-nodejs=\"`bidirectional`\" pulumi-lang-dotnet=\"`Bidirectional`\" pulumi-lang-go=\"`bidirectional`\" pulumi-lang-python=\"`bidirectional`\" pulumi-lang-yaml=\"`bidirectional`\" pulumi-lang-java=\"`bidirectional`\"\u003e`bidirectional`\u003c/span\u003e this parameter should be passed, otherwise this parameter should not be specified.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:eais/clientInstanceAttachment:ClientInstanceAttachment":{"description":"Provides a EAIS Client Instance Attachment resource.\n\nBind an ECS or ECI instance.\n\nFor information about EAIS Client Instance Attachment and how to use it, see [What is Client Instance Attachment](https://www.alibabacloud.com/help/en/resource-orchestration-service/latest/aliyun-eais-clientinstanceattachment).\n\n\u003e **NOTE:** Available since v1.246.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst zone = config.get(\"zone\") || \"cn-hangzhou-i\";\nconst ecsImage = config.get(\"ecsImage\") || \"ubuntu_20_04_x64_20G_alibase_20230316.vhd\";\nconst ecsType = config.get(\"ecsType\") || \"ecs.g7.large\";\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst category = config.get(\"category\") || \"ei\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst example = alicloud.ecs.getInstanceTypes({\n    availabilityZone: \"cn-hangzhou-i\",\n    cpuCoreCount: 1,\n    memorySize: 2,\n});\nconst exampleGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: \"cn-hangzhou-i\",\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    securityGroupName: name,\n    description: name,\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.ecs.Instance(\"example\", {\n    availabilityZone: \"cn-hangzhou-i\",\n    vswitchId: exampleSwitch.id,\n    imageId: exampleGetImages.then(exampleGetImages =\u003e exampleGetImages.images?.[0]?.id),\n    instanceType: example.then(example =\u003e example.instanceTypes?.[0]?.id),\n    systemDiskCategory: \"cloud_efficiency\",\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 5,\n    securityGroups: [exampleSecurityGroup.id],\n    instanceName: name,\n    userData: \"echo 'net.ipv4.ip_forward=1'\u003e\u003e /etc/sysctl.conf\",\n});\nconst eais = new alicloud.eais.Instance(\"eais\", {\n    instanceName: name,\n    vswitchId: exampleSwitch.id,\n    securityGroupId: exampleSecurityGroup.id,\n    instanceType: \"eais.ei-a6.2xlarge\",\n    category: \"ei\",\n});\nconst defaultClientInstanceAttachment = new alicloud.eais.ClientInstanceAttachment(\"default\", {\n    instanceId: eais.id,\n    clientInstanceId: exampleInstance.id,\n    category: \"ei\",\n    status: \"Bound\",\n    eiInstanceType: \"eais.ei-a6.2xlarge\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nzone = config.get(\"zone\")\nif zone is None:\n    zone = \"cn-hangzhou-i\"\necs_image = config.get(\"ecsImage\")\nif ecs_image is None:\n    ecs_image = \"ubuntu_20_04_x64_20G_alibase_20230316.vhd\"\necs_type = config.get(\"ecsType\")\nif ecs_type is None:\n    ecs_type = \"ecs.g7.large\"\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\ncategory = config.get(\"category\")\nif category is None:\n    category = \"ei\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample = alicloud.ecs.get_instance_types(availability_zone=\"cn-hangzhou-i\",\n    cpu_core_count=1,\n    memory_size=2)\nexample_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=example_network.id,\n    zone_id=\"cn-hangzhou-i\")\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    security_group_name=name,\n    description=name,\n    vpc_id=example_network.id)\nexample_instance = alicloud.ecs.Instance(\"example\",\n    availability_zone=\"cn-hangzhou-i\",\n    vswitch_id=example_switch.id,\n    image_id=example_get_images.images[0].id,\n    instance_type=example.instance_types[0].id,\n    system_disk_category=\"cloud_efficiency\",\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=5,\n    security_groups=[example_security_group.id],\n    instance_name=name,\n    user_data=\"echo 'net.ipv4.ip_forward=1'\u003e\u003e /etc/sysctl.conf\")\neais = alicloud.eais.Instance(\"eais\",\n    instance_name=name,\n    vswitch_id=example_switch.id,\n    security_group_id=example_security_group.id,\n    instance_type=\"eais.ei-a6.2xlarge\",\n    category=\"ei\")\ndefault_client_instance_attachment = alicloud.eais.ClientInstanceAttachment(\"default\",\n    instance_id=eais.id,\n    client_instance_id=example_instance.id,\n    category=\"ei\",\n    status=\"Bound\",\n    ei_instance_type=\"eais.ei-a6.2xlarge\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var zone = config.Get(\"zone\") ?? \"cn-hangzhou-i\";\n    var ecsImage = config.Get(\"ecsImage\") ?? \"ubuntu_20_04_x64_20G_alibase_20230316.vhd\";\n    var ecsType = config.Get(\"ecsType\") ?? \"ecs.g7.large\";\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var category = config.Get(\"category\") ?? \"ei\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var example = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = \"cn-hangzhou-i\",\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var exampleGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = \"cn-hangzhou-i\",\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        SecurityGroupName = name,\n        Description = name,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Ecs.Instance(\"example\", new()\n    {\n        AvailabilityZone = \"cn-hangzhou-i\",\n        VswitchId = exampleSwitch.Id,\n        ImageId = exampleGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = example.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SystemDiskCategory = \"cloud_efficiency\",\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 5,\n        SecurityGroups = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n        InstanceName = name,\n        UserData = \"echo 'net.ipv4.ip_forward=1'\u003e\u003e /etc/sysctl.conf\",\n    });\n\n    var eais = new AliCloud.Eais.Instance(\"eais\", new()\n    {\n        InstanceName = name,\n        VswitchId = exampleSwitch.Id,\n        SecurityGroupId = exampleSecurityGroup.Id,\n        InstanceType = \"eais.ei-a6.2xlarge\",\n        Category = \"ei\",\n    });\n\n    var defaultClientInstanceAttachment = new AliCloud.Eais.ClientInstanceAttachment(\"default\", new()\n    {\n        InstanceId = eais.Id,\n        ClientInstanceId = exampleInstance.Id,\n        Category = \"ei\",\n        Status = \"Bound\",\n        EiInstanceType = \"eais.ei-a6.2xlarge\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eais\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tzone := \"cn-hangzhou-i\"\n\t\tif param := cfg.Get(\"zone\"); param != \"\" {\n\t\t\tzone = param\n\t\t}\n\t\tecsImage := \"ubuntu_20_04_x64_20G_alibase_20230316.vhd\"\n\t\tif param := cfg.Get(\"ecsImage\"); param != \"\" {\n\t\t\tecsImage = param\n\t\t}\n\t\tecsType := \"ecs.g7.large\"\n\t\tif param := cfg.Get(\"ecsType\"); param != \"\" {\n\t\t\tecsType = param\n\t\t}\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tcategory := \"ei\"\n\t\tif param := cfg.Get(\"category\"); param != \"\" {\n\t\t\tcategory = param\n\t\t}\n\t\t_, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(\"cn-hangzhou-i\"),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-i\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(name),\n\t\t\tDescription:       pulumi.String(name),\n\t\t\tVpcId:             exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := ecs.NewInstance(ctx, \"example\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone:        pulumi.String(\"cn-hangzhou-i\"),\n\t\t\tVswitchId:               exampleSwitch.ID(),\n\t\t\tImageId:                 pulumi.String(exampleGetImages.Images[0].Id),\n\t\t\tInstanceType:            pulumi.String(example.InstanceTypes[0].Id),\n\t\t\tSystemDiskCategory:      pulumi.String(\"cloud_efficiency\"),\n\t\t\tInternetChargeType:      pulumi.String(\"PayByTraffic\"),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(5),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t\tInstanceName: pulumi.String(name),\n\t\t\tUserData:     pulumi.String(\"echo 'net.ipv4.ip_forward=1'\u003e\u003e /etc/sysctl.conf\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\teais, err := eais.NewInstance(ctx, \"eais\", \u0026eais.InstanceArgs{\n\t\t\tInstanceName:    pulumi.String(name),\n\t\t\tVswitchId:       exampleSwitch.ID(),\n\t\t\tSecurityGroupId: exampleSecurityGroup.ID(),\n\t\t\tInstanceType:    pulumi.String(\"eais.ei-a6.2xlarge\"),\n\t\t\tCategory:        pulumi.String(\"ei\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eais.NewClientInstanceAttachment(ctx, \"default\", \u0026eais.ClientInstanceAttachmentArgs{\n\t\t\tInstanceId:       eais.ID(),\n\t\t\tClientInstanceId: exampleInstance.ID(),\n\t\t\tCategory:         pulumi.String(\"ei\"),\n\t\t\tStatus:           pulumi.String(\"Bound\"),\n\t\t\tEiInstanceType:   pulumi.String(\"eais.ei-a6.2xlarge\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.eais.ClientInstanceAttachment;\nimport com.pulumi.alicloud.eais.ClientInstanceAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var zone = config.get(\"zone\").orElse(\"cn-hangzhou-i\");\n        final var ecsImage = config.get(\"ecsImage\").orElse(\"ubuntu_20_04_x64_20G_alibase_20230316.vhd\");\n        final var ecsType = config.get(\"ecsType\").orElse(\"ecs.g7.large\");\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var category = config.get(\"category\").orElse(\"ei\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var example = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(\"cn-hangzhou-i\")\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        final var exampleGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(\"cn-hangzhou-i\")\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(name)\n            .description(name)\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new com.pulumi.alicloud.ecs.Instance(\"exampleInstance\", com.pulumi.alicloud.ecs.InstanceArgs.builder()\n            .availabilityZone(\"cn-hangzhou-i\")\n            .vswitchId(exampleSwitch.id())\n            .imageId(exampleGetImages.images()[0].id())\n            .instanceType(example.instanceTypes()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(5)\n            .securityGroups(exampleSecurityGroup.id())\n            .instanceName(name)\n            .userData(\"echo 'net.ipv4.ip_forward=1'\u003e\u003e /etc/sysctl.conf\")\n            .build());\n\n        var eais = new com.pulumi.alicloud.eais.Instance(\"eais\", com.pulumi.alicloud.eais.InstanceArgs.builder()\n            .instanceName(name)\n            .vswitchId(exampleSwitch.id())\n            .securityGroupId(exampleSecurityGroup.id())\n            .instanceType(\"eais.ei-a6.2xlarge\")\n            .category(\"ei\")\n            .build());\n\n        var defaultClientInstanceAttachment = new ClientInstanceAttachment(\"defaultClientInstanceAttachment\", ClientInstanceAttachmentArgs.builder()\n            .instanceId(eais.id())\n            .clientInstanceId(exampleInstance.id())\n            .category(\"ei\")\n            .status(\"Bound\")\n            .eiInstanceType(\"eais.ei-a6.2xlarge\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  zone:\n    type: string\n    default: cn-hangzhou-i\n  ecsImage:\n    type: string\n    default: ubuntu_20_04_x64_20G_alibase_20230316.vhd\n  ecsType:\n    type: string\n    default: ecs.g7.large\n  region:\n    type: string\n    default: cn-hangzhou\n  category:\n    type: string\n    default: ei\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: cn-hangzhou-i\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      securityGroupName: ${name}\n      description: ${name}\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:ecs:Instance\n    name: example\n    properties:\n      availabilityZone: cn-hangzhou-i\n      vswitchId: ${exampleSwitch.id}\n      imageId: ${exampleGetImages.images[0].id}\n      instanceType: ${example.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      internetChargeType: PayByTraffic\n      internetMaxBandwidthOut: 5\n      securityGroups:\n        - ${exampleSecurityGroup.id}\n      instanceName: ${name}\n      userData: echo 'net.ipv4.ip_forward=1'\u003e\u003e /etc/sysctl.conf\n  eais:\n    type: alicloud:eais:Instance\n    properties:\n      instanceName: ${name}\n      vswitchId: ${exampleSwitch.id}\n      securityGroupId: ${exampleSecurityGroup.id}\n      instanceType: eais.ei-a6.2xlarge\n      category: ei\n  defaultClientInstanceAttachment:\n    type: alicloud:eais:ClientInstanceAttachment\n    name: default\n    properties:\n      instanceId: ${eais.id}\n      clientInstanceId: ${exampleInstance.id}\n      category: ei\n      status: Bound\n      eiInstanceType: eais.ei-a6.2xlarge\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  example:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: cn-hangzhou-i\n        cpuCoreCount: 1\n        memorySize: 2\n  exampleGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.eais.ClientInstanceAttachment`\" pulumi-lang-dotnet=\"`alicloud.eais.ClientInstanceAttachment`\" pulumi-lang-go=\"`eais.ClientInstanceAttachment`\" pulumi-lang-python=\"`eais.ClientInstanceAttachment`\" pulumi-lang-yaml=\"`alicloud.eais.ClientInstanceAttachment`\" pulumi-lang-java=\"`alicloud.eais.ClientInstanceAttachment`\"\u003e`alicloud.eais.ClientInstanceAttachment`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.eais.ClientInstanceAttachment`\" pulumi-lang-dotnet=\"`alicloud.eais.ClientInstanceAttachment`\" pulumi-lang-go=\"`eais.ClientInstanceAttachment`\" pulumi-lang-python=\"`eais.ClientInstanceAttachment`\" pulumi-lang-yaml=\"`alicloud.eais.ClientInstanceAttachment`\" pulumi-lang-java=\"`alicloud.eais.ClientInstanceAttachment`\"\u003e`alicloud.eais.ClientInstanceAttachment`\u003c/span\u003e resource allows you to manage  `category = \"eais\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEAIS Client Instance Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eais/clientInstanceAttachment:ClientInstanceAttachment example \u003cinstance_id\u003e:\u003cclient_instance_id\u003e\n```\n\n","properties":{"category":{"type":"string","description":"EAIS instance category, valid values: \u003cspan pulumi-lang-nodejs=\"`eais`\" pulumi-lang-dotnet=\"`Eais`\" pulumi-lang-go=\"`eais`\" pulumi-lang-python=\"`eais`\" pulumi-lang-yaml=\"`eais`\" pulumi-lang-java=\"`eais`\"\u003e`eais`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ei`\" pulumi-lang-dotnet=\"`Ei`\" pulumi-lang-go=\"`ei`\" pulumi-lang-python=\"`ei`\" pulumi-lang-yaml=\"`ei`\" pulumi-lang-java=\"`ei`\"\u003e`ei`\u003c/span\u003e, default is \u003cspan pulumi-lang-nodejs=\"`eais`\" pulumi-lang-dotnet=\"`Eais`\" pulumi-lang-go=\"`eais`\" pulumi-lang-python=\"`eais`\" pulumi-lang-yaml=\"`eais`\" pulumi-lang-java=\"`eais`\"\u003e`eais`\u003c/span\u003e.\n"},"clientInstanceId":{"type":"string","description":"The ID of the ECS or ECI instance bound to the EAIS instance.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"eiInstanceType":{"type":"string","description":"The Ei instance specification, which is used to filter matching specifications for updating.\n"},"instanceId":{"type":"string","description":"The EAIS instance ID.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"status":{"type":"string","description":"The status of the resource\n"}},"required":["clientInstanceId","createTime","eiInstanceType","instanceId","regionId","status"],"inputProperties":{"category":{"type":"string","description":"EAIS instance category, valid values: \u003cspan pulumi-lang-nodejs=\"`eais`\" pulumi-lang-dotnet=\"`Eais`\" pulumi-lang-go=\"`eais`\" pulumi-lang-python=\"`eais`\" pulumi-lang-yaml=\"`eais`\" pulumi-lang-java=\"`eais`\"\u003e`eais`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ei`\" pulumi-lang-dotnet=\"`Ei`\" pulumi-lang-go=\"`ei`\" pulumi-lang-python=\"`ei`\" pulumi-lang-yaml=\"`ei`\" pulumi-lang-java=\"`ei`\"\u003e`ei`\u003c/span\u003e, default is \u003cspan pulumi-lang-nodejs=\"`eais`\" pulumi-lang-dotnet=\"`Eais`\" pulumi-lang-go=\"`eais`\" pulumi-lang-python=\"`eais`\" pulumi-lang-yaml=\"`eais`\" pulumi-lang-java=\"`eais`\"\u003e`eais`\u003c/span\u003e.\n"},"clientInstanceId":{"type":"string","description":"The ID of the ECS or ECI instance bound to the EAIS instance.\n","willReplaceOnChanges":true},"eiInstanceType":{"type":"string","description":"The Ei instance specification, which is used to filter matching specifications for updating.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The EAIS instance ID.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"}},"requiredInputs":["clientInstanceId","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering ClientInstanceAttachment resources.\n","properties":{"category":{"type":"string","description":"EAIS instance category, valid values: \u003cspan pulumi-lang-nodejs=\"`eais`\" pulumi-lang-dotnet=\"`Eais`\" pulumi-lang-go=\"`eais`\" pulumi-lang-python=\"`eais`\" pulumi-lang-yaml=\"`eais`\" pulumi-lang-java=\"`eais`\"\u003e`eais`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ei`\" pulumi-lang-dotnet=\"`Ei`\" pulumi-lang-go=\"`ei`\" pulumi-lang-python=\"`ei`\" pulumi-lang-yaml=\"`ei`\" pulumi-lang-java=\"`ei`\"\u003e`ei`\u003c/span\u003e, default is \u003cspan pulumi-lang-nodejs=\"`eais`\" pulumi-lang-dotnet=\"`Eais`\" pulumi-lang-go=\"`eais`\" pulumi-lang-python=\"`eais`\" pulumi-lang-yaml=\"`eais`\" pulumi-lang-java=\"`eais`\"\u003e`eais`\u003c/span\u003e.\n"},"clientInstanceId":{"type":"string","description":"The ID of the ECS or ECI instance bound to the EAIS instance.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource\n"},"eiInstanceType":{"type":"string","description":"The Ei instance specification, which is used to filter matching specifications for updating.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The EAIS instance ID.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The region ID of the resource\n"},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object"}},"alicloud:eais/instance:Instance":{"description":"Provides a EAIS Instance resource.\n\nInstance resource definition.\n\nFor information about EAIS Instance and how to use it, see [What is Instance](https://www.alibabacloud.com/help/en/resource-orchestration-service/latest/aliyun-eais-instance).\n\n\u003e **NOTE:** Available since v1.137.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst zoneId = \"cn-hangzhou-h\";\nconst _default = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    vpcId: _default.id,\n    cidrBlock: \"192.168.192.0/24\",\n    zoneId: zoneId,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: _default.id,\n});\nconst defaultInstance = new alicloud.eais.Instance(\"default\", {\n    instanceType: \"eais.ei-a6.2xlarge\",\n    vswitchId: defaultSwitch.id,\n    securityGroupId: defaultSecurityGroup.id,\n    instanceName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nzone_id = \"cn-hangzhou-h\"\ndefault = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    vpc_id=default.id,\n    cidr_block=\"192.168.192.0/24\",\n    zone_id=zone_id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default.id)\ndefault_instance = alicloud.eais.Instance(\"default\",\n    instance_type=\"eais.ei-a6.2xlarge\",\n    vswitch_id=default_switch.id,\n    security_group_id=default_security_group.id,\n    instance_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var zoneId = \"cn-hangzhou-h\";\n\n    var @default = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        VpcId = @default.Id,\n        CidrBlock = \"192.168.192.0/24\",\n        ZoneId = zoneId,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = @default.Id,\n    });\n\n    var defaultInstance = new AliCloud.Eais.Instance(\"default\", new()\n    {\n        InstanceType = \"eais.ei-a6.2xlarge\",\n        VswitchId = defaultSwitch.Id,\n        SecurityGroupId = defaultSecurityGroup.Id,\n        InstanceName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eais\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tzoneId := \"cn-hangzhou-h\"\n\t\t_default, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tVpcId:       _default.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.192.0/24\"),\n\t\t\tZoneId:      pulumi.String(zoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eais.NewInstance(ctx, \"default\", \u0026eais.InstanceArgs{\n\t\t\tInstanceType:    pulumi.String(\"eais.ei-a6.2xlarge\"),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tInstanceName:    pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.eais.Instance;\nimport com.pulumi.alicloud.eais.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var zoneId = \"cn-hangzhou-h\";\n\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(default_.id())\n            .cidrBlock(\"192.168.192.0/24\")\n            .zoneId(zoneId)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(default_.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .instanceType(\"eais.ei-a6.2xlarge\")\n            .vswitchId(defaultSwitch.id())\n            .securityGroupId(defaultSecurityGroup.id())\n            .instanceName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      vpcId: ${default.id}\n      cidrBlock: 192.168.192.0/24\n      zoneId: ${zoneId}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${default.id}\n  defaultInstance:\n    type: alicloud:eais:Instance\n    name: default\n    properties:\n      instanceType: eais.ei-a6.2xlarge\n      vswitchId: ${defaultSwitch.id}\n      securityGroupId: ${defaultSecurityGroup.id}\n      instanceName: ${name}\nvariables:\n  zoneId: cn-hangzhou-h\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.eais.Instance`\" pulumi-lang-dotnet=\"`alicloud.eais.Instance`\" pulumi-lang-go=\"`eais.Instance`\" pulumi-lang-python=\"`eais.Instance`\" pulumi-lang-yaml=\"`alicloud.eais.Instance`\" pulumi-lang-java=\"`alicloud.eais.Instance`\"\u003e`alicloud.eais.Instance`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.eais.Instance`\" pulumi-lang-dotnet=\"`alicloud.eais.Instance`\" pulumi-lang-go=\"`eais.Instance`\" pulumi-lang-python=\"`eais.Instance`\" pulumi-lang-yaml=\"`alicloud.eais.Instance`\" pulumi-lang-java=\"`alicloud.eais.Instance`\"\u003e`alicloud.eais.Instance`\u003c/span\u003e resource allows you to manage  `category = \"ei\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEAIS Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eais/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"category":{"type":"string","description":"EAIS instance category, valid values: \u003cspan pulumi-lang-nodejs=\"`eais`\" pulumi-lang-dotnet=\"`Eais`\" pulumi-lang-go=\"`eais`\" pulumi-lang-python=\"`eais`\" pulumi-lang-yaml=\"`eais`\" pulumi-lang-java=\"`eais`\"\u003e`eais`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`jupyter`\" pulumi-lang-dotnet=\"`Jupyter`\" pulumi-lang-go=\"`jupyter`\" pulumi-lang-python=\"`jupyter`\" pulumi-lang-yaml=\"`jupyter`\" pulumi-lang-java=\"`jupyter`\"\u003e`jupyter`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ei`\" pulumi-lang-dotnet=\"`Ei`\" pulumi-lang-go=\"`ei`\" pulumi-lang-python=\"`ei`\" pulumi-lang-yaml=\"`ei`\" pulumi-lang-java=\"`ei`\"\u003e`ei`\u003c/span\u003e, default is \u003cspan pulumi-lang-nodejs=\"`eais`\" pulumi-lang-dotnet=\"`Eais`\" pulumi-lang-go=\"`eais`\" pulumi-lang-python=\"`eais`\" pulumi-lang-yaml=\"`eais`\" pulumi-lang-java=\"`eais`\"\u003e`eais`\u003c/span\u003e.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"environmentVars":{"type":"array","items":{"$ref":"#/types/alicloud:eais/InstanceEnvironmentVar:InstanceEnvironmentVar"},"description":"Setting environment variables in eais instance on Initialization See \u003cspan pulumi-lang-nodejs=\"`environmentVar`\" pulumi-lang-dotnet=\"`EnvironmentVar`\" pulumi-lang-go=\"`environmentVar`\" pulumi-lang-python=\"`environment_var`\" pulumi-lang-yaml=\"`environmentVar`\" pulumi-lang-java=\"`environmentVar`\"\u003e`environment_var`\u003c/span\u003e below.\n"},"force":{"type":"boolean","description":"Whether to force the deletion when the instance status does not meet the deletion conditions.\n","deprecationMessage":"Field 'force' is deprecated and will be removed in a future release."},"image":{"type":"string","description":"EAIS instance image.\n"},"instanceName":{"type":"string","description":"Name of the instance\n"},"instanceType":{"type":"string","description":"EAIS instance type\n"},"regionId":{"type":"string","description":"Region ID\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"securityGroupId":{"type":"string","description":"Security group ID\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags.\n"},"vswitchId":{"type":"string","description":"Switch ID.\n"}},"required":["category","createTime","instanceName","instanceType","regionId","resourceGroupId","securityGroupId","status","vswitchId"],"inputProperties":{"category":{"type":"string","description":"EAIS instance category, valid values: \u003cspan pulumi-lang-nodejs=\"`eais`\" pulumi-lang-dotnet=\"`Eais`\" pulumi-lang-go=\"`eais`\" pulumi-lang-python=\"`eais`\" pulumi-lang-yaml=\"`eais`\" pulumi-lang-java=\"`eais`\"\u003e`eais`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`jupyter`\" pulumi-lang-dotnet=\"`Jupyter`\" pulumi-lang-go=\"`jupyter`\" pulumi-lang-python=\"`jupyter`\" pulumi-lang-yaml=\"`jupyter`\" pulumi-lang-java=\"`jupyter`\"\u003e`jupyter`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ei`\" pulumi-lang-dotnet=\"`Ei`\" pulumi-lang-go=\"`ei`\" pulumi-lang-python=\"`ei`\" pulumi-lang-yaml=\"`ei`\" pulumi-lang-java=\"`ei`\"\u003e`ei`\u003c/span\u003e, default is \u003cspan pulumi-lang-nodejs=\"`eais`\" pulumi-lang-dotnet=\"`Eais`\" pulumi-lang-go=\"`eais`\" pulumi-lang-python=\"`eais`\" pulumi-lang-yaml=\"`eais`\" pulumi-lang-java=\"`eais`\"\u003e`eais`\u003c/span\u003e.\n"},"environmentVars":{"type":"array","items":{"$ref":"#/types/alicloud:eais/InstanceEnvironmentVar:InstanceEnvironmentVar"},"description":"Setting environment variables in eais instance on Initialization See \u003cspan pulumi-lang-nodejs=\"`environmentVar`\" pulumi-lang-dotnet=\"`EnvironmentVar`\" pulumi-lang-go=\"`environmentVar`\" pulumi-lang-python=\"`environment_var`\" pulumi-lang-yaml=\"`environmentVar`\" pulumi-lang-java=\"`environmentVar`\"\u003e`environment_var`\u003c/span\u003e below.\n"},"force":{"type":"boolean","description":"Whether to force the deletion when the instance status does not meet the deletion conditions.\n","deprecationMessage":"Field 'force' is deprecated and will be removed in a future release."},"image":{"type":"string","description":"EAIS instance image.\n"},"instanceName":{"type":"string","description":"Name of the instance\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"EAIS instance type\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"securityGroupId":{"type":"string","description":"Security group ID\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags.\n"},"vswitchId":{"type":"string","description":"Switch ID.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceType","securityGroupId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"category":{"type":"string","description":"EAIS instance category, valid values: \u003cspan pulumi-lang-nodejs=\"`eais`\" pulumi-lang-dotnet=\"`Eais`\" pulumi-lang-go=\"`eais`\" pulumi-lang-python=\"`eais`\" pulumi-lang-yaml=\"`eais`\" pulumi-lang-java=\"`eais`\"\u003e`eais`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`jupyter`\" pulumi-lang-dotnet=\"`Jupyter`\" pulumi-lang-go=\"`jupyter`\" pulumi-lang-python=\"`jupyter`\" pulumi-lang-yaml=\"`jupyter`\" pulumi-lang-java=\"`jupyter`\"\u003e`jupyter`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ei`\" pulumi-lang-dotnet=\"`Ei`\" pulumi-lang-go=\"`ei`\" pulumi-lang-python=\"`ei`\" pulumi-lang-yaml=\"`ei`\" pulumi-lang-java=\"`ei`\"\u003e`ei`\u003c/span\u003e, default is \u003cspan pulumi-lang-nodejs=\"`eais`\" pulumi-lang-dotnet=\"`Eais`\" pulumi-lang-go=\"`eais`\" pulumi-lang-python=\"`eais`\" pulumi-lang-yaml=\"`eais`\" pulumi-lang-java=\"`eais`\"\u003e`eais`\u003c/span\u003e.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"environmentVars":{"type":"array","items":{"$ref":"#/types/alicloud:eais/InstanceEnvironmentVar:InstanceEnvironmentVar"},"description":"Setting environment variables in eais instance on Initialization See \u003cspan pulumi-lang-nodejs=\"`environmentVar`\" pulumi-lang-dotnet=\"`EnvironmentVar`\" pulumi-lang-go=\"`environmentVar`\" pulumi-lang-python=\"`environment_var`\" pulumi-lang-yaml=\"`environmentVar`\" pulumi-lang-java=\"`environmentVar`\"\u003e`environment_var`\u003c/span\u003e below.\n"},"force":{"type":"boolean","description":"Whether to force the deletion when the instance status does not meet the deletion conditions.\n","deprecationMessage":"Field 'force' is deprecated and will be removed in a future release."},"image":{"type":"string","description":"EAIS instance image.\n"},"instanceName":{"type":"string","description":"Name of the instance\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"EAIS instance type\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"Region ID\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"securityGroupId":{"type":"string","description":"Security group ID\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags.\n"},"vswitchId":{"type":"string","description":"Switch ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ebs/dedicatedBlockStorageCluster:DedicatedBlockStorageCluster":{"description":"Provides a Ebs Dedicated Block Storage Cluster resource.\n\nFor information about Ebs Dedicated Block Storage Cluster and how to use it, see [What is Dedicated Block Storage Cluster](https://www.alibabacloud.com/help/en/ecs/developer-reference/api-ebs-2021-07-30-creatededicatedblockstoragecluster).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ebs.DedicatedBlockStorageCluster(\"default\", {\n    type: \"Premium\",\n    zoneId: \"cn-heyuan-b\",\n    dedicatedBlockStorageClusterName: \"dedicated_block_storage_cluster_name\",\n    totalCapacity: \"61440\",\n    regionId: \"cn-heyuan\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ebs.DedicatedBlockStorageCluster(\"default\",\n    type=\"Premium\",\n    zone_id=\"cn-heyuan-b\",\n    dedicated_block_storage_cluster_name=\"dedicated_block_storage_cluster_name\",\n    total_capacity=\"61440\",\n    region_id=\"cn-heyuan\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ebs.DedicatedBlockStorageCluster(\"default\", new()\n    {\n        Type = \"Premium\",\n        ZoneId = \"cn-heyuan-b\",\n        DedicatedBlockStorageClusterName = \"dedicated_block_storage_cluster_name\",\n        TotalCapacity = \"61440\",\n        RegionId = \"cn-heyuan\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ebs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ebs.NewDedicatedBlockStorageCluster(ctx, \"default\", \u0026ebs.DedicatedBlockStorageClusterArgs{\n\t\t\tType:                             pulumi.String(\"Premium\"),\n\t\t\tZoneId:                           pulumi.String(\"cn-heyuan-b\"),\n\t\t\tDedicatedBlockStorageClusterName: pulumi.String(\"dedicated_block_storage_cluster_name\"),\n\t\t\tTotalCapacity:                    pulumi.String(\"61440\"),\n\t\t\tRegionId:                         \"cn-heyuan\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ebs.DedicatedBlockStorageCluster;\nimport com.pulumi.alicloud.ebs.DedicatedBlockStorageClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new DedicatedBlockStorageCluster(\"default\", DedicatedBlockStorageClusterArgs.builder()\n            .type(\"Premium\")\n            .zoneId(\"cn-heyuan-b\")\n            .dedicatedBlockStorageClusterName(\"dedicated_block_storage_cluster_name\")\n            .totalCapacity(\"61440\")\n            .regionId(\"cn-heyuan\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ebs:DedicatedBlockStorageCluster\n    properties:\n      type: Premium\n      zoneId: cn-heyuan-b\n      dedicatedBlockStorageClusterName: dedicated_block_storage_cluster_name\n      totalCapacity: 61440\n      regionId: cn-heyuan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEbs Dedicated Block Storage Cluster can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_disk_dedicated_block_storage_cluster.example \u003cid\u003e\n```\n\n","properties":{"availableCapacity":{"type":"string","description":"The available capacity of the dedicated block storage cluster. Unit: GiB.\n"},"category":{"type":"string","description":"The type of cloud disk that can be created by a dedicated block storage cluster.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"dedicatedBlockStorageClusterId":{"type":"string","description":"The first ID of the resource\n"},"dedicatedBlockStorageClusterName":{"type":"string","description":"The name of the resource\n"},"deliveryCapacity":{"type":"string","description":"Capacity to be delivered in GB.\n"},"description":{"type":"string","description":"The description of the dedicated block storage cluster.\n"},"expiredTime":{"type":"string","description":"The expiration time of the dedicated block storage cluster, in the Unix timestamp format, in seconds.\n"},"performanceLevel":{"type":"string","description":"Cloud disk performance level, possible values:-PL0.-PL1.-PL2.-PL3.\u003e Only valid in SupportedCategory = cloud_essd.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"The status of the resource\n"},"supportedCategory":{"type":"string","description":"This parameter is not supported.\n"},"totalCapacity":{"type":"string","description":"The total capacity of the dedicated block storage cluster. Unit: GiB.\n"},"type":{"type":"string","description":"The dedicated block storage cluster performance type. Possible values:-Standard: Basic type. This type of dedicated block storage cluster can create an ESSD PL0 cloud disk.-Premium: performance type. This type of dedicated block storage cluster can create an ESSD PL1 cloud disk.\n"},"usedCapacity":{"type":"string","description":"The used (created disk) capacity of the current cluster, in GB\n"},"zoneId":{"type":"string","description":"The zone ID  of the resource\n"}},"required":["availableCapacity","category","createTime","dedicatedBlockStorageClusterId","dedicatedBlockStorageClusterName","deliveryCapacity","description","expiredTime","performanceLevel","resourceGroupId","status","supportedCategory","totalCapacity","type","usedCapacity","zoneId"],"inputProperties":{"dedicatedBlockStorageClusterName":{"type":"string","description":"The name of the resource\n"},"description":{"type":"string","description":"The description of the dedicated block storage cluster.\n"},"totalCapacity":{"type":"string","description":"The total capacity of the dedicated block storage cluster. Unit: GiB.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The dedicated block storage cluster performance type. Possible values:-Standard: Basic type. This type of dedicated block storage cluster can create an ESSD PL0 cloud disk.-Premium: performance type. This type of dedicated block storage cluster can create an ESSD PL1 cloud disk.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID  of the resource\n","willReplaceOnChanges":true}},"requiredInputs":["dedicatedBlockStorageClusterName","totalCapacity","type","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering DedicatedBlockStorageCluster resources.\n","properties":{"availableCapacity":{"type":"string","description":"The available capacity of the dedicated block storage cluster. Unit: GiB.\n"},"category":{"type":"string","description":"The type of cloud disk that can be created by a dedicated block storage cluster.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"dedicatedBlockStorageClusterId":{"type":"string","description":"The first ID of the resource\n"},"dedicatedBlockStorageClusterName":{"type":"string","description":"The name of the resource\n"},"deliveryCapacity":{"type":"string","description":"Capacity to be delivered in GB.\n"},"description":{"type":"string","description":"The description of the dedicated block storage cluster.\n"},"expiredTime":{"type":"string","description":"The expiration time of the dedicated block storage cluster, in the Unix timestamp format, in seconds.\n"},"performanceLevel":{"type":"string","description":"Cloud disk performance level, possible values:-PL0.-PL1.-PL2.-PL3.\u003e Only valid in SupportedCategory = cloud_essd.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"The status of the resource\n"},"supportedCategory":{"type":"string","description":"This parameter is not supported.\n"},"totalCapacity":{"type":"string","description":"The total capacity of the dedicated block storage cluster. Unit: GiB.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The dedicated block storage cluster performance type. Possible values:-Standard: Basic type. This type of dedicated block storage cluster can create an ESSD PL0 cloud disk.-Premium: performance type. This type of dedicated block storage cluster can create an ESSD PL1 cloud disk.\n","willReplaceOnChanges":true},"usedCapacity":{"type":"string","description":"The used (created disk) capacity of the current cluster, in GB\n"},"zoneId":{"type":"string","description":"The zone ID  of the resource\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ebs/diskReplicaGroup:DiskReplicaGroup":{"description":"Provides a Elastic Block Storage(EBS) Disk Replica Group resource.\n\nconsistent replica group.\n\nFor information about Elastic Block Storage(EBS) Disk Replica Group and how to use it, see [What is Disk Replica Group](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/creatediskreplicagroup).\n\n\u003e **NOTE:** Available since v1.187.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultGetRegions = _default.then(_default =\u003e alicloud.ebs.getRegions({\n    regionId: _default.regions?.[0]?.id,\n}));\nconst defaultDiskReplicaGroup = new alicloud.ebs.DiskReplicaGroup(\"default\", {\n    sourceRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    sourceZoneId: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.zones?.[0]?.zoneId),\n    destinationRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    destinationZoneId: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.zones?.[1]?.zoneId),\n    groupName: name,\n    description: name,\n    rpo: 900,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_get_regions = alicloud.ebs.get_regions(region_id=default.regions[0].id)\ndefault_disk_replica_group = alicloud.ebs.DiskReplicaGroup(\"default\",\n    source_region_id=default.regions[0].id,\n    source_zone_id=default_get_regions.regions[0].zones[0].zone_id,\n    destination_region_id=default.regions[0].id,\n    destination_zone_id=default_get_regions.regions[0].zones[1].zone_id,\n    group_name=name,\n    description=name,\n    rpo=900)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultGetRegions = AliCloud.Ebs.GetRegions.Invoke(new()\n    {\n        RegionId = @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n    });\n\n    var defaultDiskReplicaGroup = new AliCloud.Ebs.DiskReplicaGroup(\"default\", new()\n    {\n        SourceRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        SourceZoneId = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Zones[0]?.ZoneId),\n        DestinationRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        DestinationZoneId = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Zones[1]?.ZoneId),\n        GroupName = name,\n        Description = name,\n        Rpo = 900,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ebs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRegions, err := ebs.GetRegions(ctx, \u0026ebs.GetRegionsArgs{\n\t\t\tRegionId: pulumi.StringRef(_default.Regions[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ebs.NewDiskReplicaGroup(ctx, \"default\", \u0026ebs.DiskReplicaGroupArgs{\n\t\t\tSourceRegionId:      pulumi.String(_default.Regions[0].Id),\n\t\t\tSourceZoneId:        pulumi.String(defaultGetRegions.Regions[0].Zones[0].ZoneId),\n\t\t\tDestinationRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t\tDestinationZoneId:   pulumi.String(defaultGetRegions.Regions[0].Zones[1].ZoneId),\n\t\t\tGroupName:           pulumi.String(name),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tRpo:                 pulumi.Int(900),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.ebs.EbsFunctions;\nimport com.pulumi.alicloud.ebs.DiskReplicaGroup;\nimport com.pulumi.alicloud.ebs.DiskReplicaGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var defaultGetRegions = EbsFunctions.getRegions(GetRegionsArgs.builder()\n            .regionId(default_.regions()[0].id())\n            .build());\n\n        var defaultDiskReplicaGroup = new DiskReplicaGroup(\"defaultDiskReplicaGroup\", DiskReplicaGroupArgs.builder()\n            .sourceRegionId(default_.regions()[0].id())\n            .sourceZoneId(defaultGetRegions.regions()[0].zones()[0].zoneId())\n            .destinationRegionId(default_.regions()[0].id())\n            .destinationZoneId(defaultGetRegions.regions()[0].zones()[1].zoneId())\n            .groupName(name)\n            .description(name)\n            .rpo(900)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultDiskReplicaGroup:\n    type: alicloud:ebs:DiskReplicaGroup\n    name: default\n    properties:\n      sourceRegionId: ${default.regions[0].id}\n      sourceZoneId: ${defaultGetRegions.regions[0].zones[0].zoneId}\n      destinationRegionId: ${default.regions[0].id}\n      destinationZoneId: ${defaultGetRegions.regions[0].zones[1].zoneId}\n      groupName: ${name}\n      description: ${name}\n      rpo: 900\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetRegions:\n    fn::invoke:\n      function: alicloud:ebs:getRegions\n      arguments:\n        regionId: ${default.regions[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nElastic Block Storage(EBS) Disk Replica Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ebs/diskReplicaGroup:DiskReplicaGroup example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the consistent replication group.\n"},"destinationRegionId":{"type":"string","description":"The ID of the region to which the disaster recovery site belongs.\n"},"destinationZoneId":{"type":"string","description":"The ID of the zone to which the disaster recovery site belongs.\n"},"diskReplicaGroupName":{"type":"string","description":"Consistent replication group name.\n"},"groupName":{"type":"string","description":". Field 'group_name' has been deprecated from provider version 1.245.0. New field 'disk_replica_group_name' instead.\n","deprecationMessage":"Field 'group_name' has been deprecated since provider version 1.245.0. New field 'disk_replica_group_name' instead."},"oneShot":{"type":"boolean","description":"Whether to synchronize immediately. Value range:\n- true: Start data synchronization immediately.\n- false: Data Synchronization starts after the RPO time period.\n\nDefault value: false.\n"},"pairIds":{"type":"array","items":{"type":"string"},"description":"List of replication pair IDs contained in a consistent replication group.\n"},"resourceGroupId":{"type":"string","description":"resource group ID of enterprise\n"},"reverseReplicate":{"type":"boolean","description":"Specifies whether to enable the reverse replication sub-feature. Valid values: true and false. Default value: true.\n"},"rpo":{"type":"integer","description":"The RPO value set by the consistency group in seconds. Currently only 900 seconds are supported.\n"},"sourceRegionId":{"type":"string","description":"The ID of the region to which the production site belongs.\n"},"sourceZoneId":{"type":"string","description":"The ID of the zone to which the production site belongs.\n"},"status":{"type":"string","description":"The status of the consistent replication group. Possible values:\n- invalid: invalid. This state indicates that there is an exception to the replication pair in the consistent replication group.\n- creating: creating.\n- created: created.\n- create_failed: creation failed.\n- manual_syncing: in a single synchronization. If it is the first single synchronization, this status is also displayed in the synchronization.\n- syncing: synchronization. This state is the first time data is copied asynchronously between the master and slave disks.\n- normal: normal. When data replication is completed within the current cycle of asynchronous replication, it will be in this state.\n- stopping: stopping.\n- stopped: stopped.\n- stop_failed: Stop failed.\n- Failover: failover.\n- Failed: failover completed.\n- failover_failed: failover failed.\n- Reprotection: In reverse copy operation.\n- reprotect_failed: reverse replication failed.\n- deleting: deleting.\n- delete_failed: delete failed.\n- deleted: deleted.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["destinationRegionId","destinationZoneId","diskReplicaGroupName","groupName","resourceGroupId","sourceRegionId","sourceZoneId","status"],"inputProperties":{"description":{"type":"string","description":"The description of the consistent replication group.\n"},"destinationRegionId":{"type":"string","description":"The ID of the region to which the disaster recovery site belongs.\n","willReplaceOnChanges":true},"destinationZoneId":{"type":"string","description":"The ID of the zone to which the disaster recovery site belongs.\n","willReplaceOnChanges":true},"diskReplicaGroupName":{"type":"string","description":"Consistent replication group name.\n"},"groupName":{"type":"string","description":". Field 'group_name' has been deprecated from provider version 1.245.0. New field 'disk_replica_group_name' instead.\n","deprecationMessage":"Field 'group_name' has been deprecated since provider version 1.245.0. New field 'disk_replica_group_name' instead."},"oneShot":{"type":"boolean","description":"Whether to synchronize immediately. Value range:\n- true: Start data synchronization immediately.\n- false: Data Synchronization starts after the RPO time period.\n\nDefault value: false.\n"},"pairIds":{"type":"array","items":{"type":"string"},"description":"List of replication pair IDs contained in a consistent replication group.\n"},"resourceGroupId":{"type":"string","description":"resource group ID of enterprise\n"},"reverseReplicate":{"type":"boolean","description":"Specifies whether to enable the reverse replication sub-feature. Valid values: true and false. Default value: true.\n"},"rpo":{"type":"integer","description":"The RPO value set by the consistency group in seconds. Currently only 900 seconds are supported.\n","willReplaceOnChanges":true},"sourceRegionId":{"type":"string","description":"The ID of the region to which the production site belongs.\n","willReplaceOnChanges":true},"sourceZoneId":{"type":"string","description":"The ID of the zone to which the production site belongs.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the consistent replication group. Possible values:\n- invalid: invalid. This state indicates that there is an exception to the replication pair in the consistent replication group.\n- creating: creating.\n- created: created.\n- create_failed: creation failed.\n- manual_syncing: in a single synchronization. If it is the first single synchronization, this status is also displayed in the synchronization.\n- syncing: synchronization. This state is the first time data is copied asynchronously between the master and slave disks.\n- normal: normal. When data replication is completed within the current cycle of asynchronous replication, it will be in this state.\n- stopping: stopping.\n- stopped: stopped.\n- stop_failed: Stop failed.\n- Failover: failover.\n- Failed: failover completed.\n- failover_failed: failover failed.\n- Reprotection: In reverse copy operation.\n- reprotect_failed: reverse replication failed.\n- deleting: deleting.\n- delete_failed: delete failed.\n- deleted: deleted.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"requiredInputs":["destinationRegionId","destinationZoneId","sourceRegionId","sourceZoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering DiskReplicaGroup resources.\n","properties":{"description":{"type":"string","description":"The description of the consistent replication group.\n"},"destinationRegionId":{"type":"string","description":"The ID of the region to which the disaster recovery site belongs.\n","willReplaceOnChanges":true},"destinationZoneId":{"type":"string","description":"The ID of the zone to which the disaster recovery site belongs.\n","willReplaceOnChanges":true},"diskReplicaGroupName":{"type":"string","description":"Consistent replication group name.\n"},"groupName":{"type":"string","description":". Field 'group_name' has been deprecated from provider version 1.245.0. New field 'disk_replica_group_name' instead.\n","deprecationMessage":"Field 'group_name' has been deprecated since provider version 1.245.0. New field 'disk_replica_group_name' instead."},"oneShot":{"type":"boolean","description":"Whether to synchronize immediately. Value range:\n- true: Start data synchronization immediately.\n- false: Data Synchronization starts after the RPO time period.\n\nDefault value: false.\n"},"pairIds":{"type":"array","items":{"type":"string"},"description":"List of replication pair IDs contained in a consistent replication group.\n"},"resourceGroupId":{"type":"string","description":"resource group ID of enterprise\n"},"reverseReplicate":{"type":"boolean","description":"Specifies whether to enable the reverse replication sub-feature. Valid values: true and false. Default value: true.\n"},"rpo":{"type":"integer","description":"The RPO value set by the consistency group in seconds. Currently only 900 seconds are supported.\n","willReplaceOnChanges":true},"sourceRegionId":{"type":"string","description":"The ID of the region to which the production site belongs.\n","willReplaceOnChanges":true},"sourceZoneId":{"type":"string","description":"The ID of the zone to which the production site belongs.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the consistent replication group. Possible values:\n- invalid: invalid. This state indicates that there is an exception to the replication pair in the consistent replication group.\n- creating: creating.\n- created: created.\n- create_failed: creation failed.\n- manual_syncing: in a single synchronization. If it is the first single synchronization, this status is also displayed in the synchronization.\n- syncing: synchronization. This state is the first time data is copied asynchronously between the master and slave disks.\n- normal: normal. When data replication is completed within the current cycle of asynchronous replication, it will be in this state.\n- stopping: stopping.\n- stopped: stopped.\n- stop_failed: Stop failed.\n- Failover: failover.\n- Failed: failover completed.\n- failover_failed: failover failed.\n- Reprotection: In reverse copy operation.\n- reprotect_failed: reverse replication failed.\n- deleting: deleting.\n- delete_failed: delete failed.\n- deleted: deleted.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"type":"object"}},"alicloud:ebs/diskReplicaPair:DiskReplicaPair":{"description":"Provides a Elastic Block Storage(EBS) Disk Replica Pair resource.\n\n\n\nFor information about Elastic Block Storage(EBS) Disk Replica Pair and how to use it, see [What is Disk Replica Pair](https://www.alibabacloud.com/help/en/ecs/developer-reference/api-ebs-2021-07-30-creatediskreplicapair).\n\n\u003e **NOTE:** Available since v1.196.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultGetRegions = _default.then(_default =\u003e alicloud.ebs.getRegions({\n    regionId: _default.regions?.[0]?.id,\n}));\nconst defaultEcsDisk = new alicloud.ecs.EcsDisk(\"default\", {\n    zoneId: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.zones?.[0]?.zoneId),\n    category: \"cloud_essd\",\n    deleteAutoSnapshot: true,\n    deleteWithInstance: true,\n    description: name,\n    diskName: name,\n    enableAutoSnapshot: true,\n    encrypted: true,\n    size: 500,\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n        controlledBy: \"ear\",\n    },\n});\nconst destination = new alicloud.ecs.EcsDisk(\"destination\", {\n    zoneId: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.zones?.[1]?.zoneId),\n    category: \"cloud_essd\",\n    deleteAutoSnapshot: true,\n    deleteWithInstance: true,\n    description: std.format({\n        input: \"%s-destination\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    diskName: name,\n    enableAutoSnapshot: true,\n    encrypted: true,\n    size: 500,\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n        controlledBy: \"ear\",\n    },\n});\nconst defaultDiskReplicaPair = new alicloud.ebs.DiskReplicaPair(\"default\", {\n    destinationDiskId: destination.id,\n    destinationRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    paymentType: \"POSTPAY\",\n    destinationZoneId: destination.zoneId,\n    sourceZoneId: defaultEcsDisk.zoneId,\n    diskId: defaultEcsDisk.id,\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_get_regions = alicloud.ebs.get_regions(region_id=default.regions[0].id)\ndefault_ecs_disk = alicloud.ecs.EcsDisk(\"default\",\n    zone_id=default_get_regions.regions[0].zones[0].zone_id,\n    category=\"cloud_essd\",\n    delete_auto_snapshot=True,\n    delete_with_instance=True,\n    description=name,\n    disk_name=name,\n    enable_auto_snapshot=True,\n    encrypted=True,\n    size=500,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n        \"controlledBy\": \"ear\",\n    })\ndestination = alicloud.ecs.EcsDisk(\"destination\",\n    zone_id=default_get_regions.regions[0].zones[1].zone_id,\n    category=\"cloud_essd\",\n    delete_auto_snapshot=True,\n    delete_with_instance=True,\n    description=std.format(input=\"%s-destination\",\n        args=[name]).result,\n    disk_name=name,\n    enable_auto_snapshot=True,\n    encrypted=True,\n    size=500,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n        \"controlledBy\": \"ear\",\n    })\ndefault_disk_replica_pair = alicloud.ebs.DiskReplicaPair(\"default\",\n    destination_disk_id=destination.id,\n    destination_region_id=default.regions[0].id,\n    payment_type=\"POSTPAY\",\n    destination_zone_id=destination.zone_id,\n    source_zone_id=default_ecs_disk.zone_id,\n    disk_id=default_ecs_disk.id,\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultGetRegions = AliCloud.Ebs.GetRegions.Invoke(new()\n    {\n        RegionId = @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n    });\n\n    var defaultEcsDisk = new AliCloud.Ecs.EcsDisk(\"default\", new()\n    {\n        ZoneId = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Zones[0]?.ZoneId),\n        Category = \"cloud_essd\",\n        DeleteAutoSnapshot = true,\n        DeleteWithInstance = true,\n        Description = name,\n        DiskName = name,\n        EnableAutoSnapshot = true,\n        Encrypted = true,\n        Size = 500,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n            { \"controlledBy\", \"ear\" },\n        },\n    });\n\n    var destination = new AliCloud.Ecs.EcsDisk(\"destination\", new()\n    {\n        ZoneId = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Zones[1]?.ZoneId),\n        Category = \"cloud_essd\",\n        DeleteAutoSnapshot = true,\n        DeleteWithInstance = true,\n        Description = Std.Format.Invoke(new()\n        {\n            Input = \"%s-destination\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        DiskName = name,\n        EnableAutoSnapshot = true,\n        Encrypted = true,\n        Size = 500,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n            { \"controlledBy\", \"ear\" },\n        },\n    });\n\n    var defaultDiskReplicaPair = new AliCloud.Ebs.DiskReplicaPair(\"default\", new()\n    {\n        DestinationDiskId = destination.Id,\n        DestinationRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        PaymentType = \"POSTPAY\",\n        DestinationZoneId = destination.ZoneId,\n        SourceZoneId = defaultEcsDisk.ZoneId,\n        DiskId = defaultEcsDisk.Id,\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ebs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRegions, err := ebs.GetRegions(ctx, \u0026ebs.GetRegionsArgs{\n\t\t\tRegionId: pulumi.StringRef(_default.Regions[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcsDisk, err := ecs.NewEcsDisk(ctx, \"default\", \u0026ecs.EcsDiskArgs{\n\t\t\tZoneId:             pulumi.String(defaultGetRegions.Regions[0].Zones[0].ZoneId),\n\t\t\tCategory:           pulumi.String(\"cloud_essd\"),\n\t\t\tDeleteAutoSnapshot: pulumi.Bool(true),\n\t\t\tDeleteWithInstance: pulumi.Bool(true),\n\t\t\tDescription:        pulumi.String(name),\n\t\t\tDiskName:           pulumi.String(name),\n\t\t\tEnableAutoSnapshot: pulumi.Bool(true),\n\t\t\tEncrypted:          pulumi.Bool(true),\n\t\t\tSize:               pulumi.Int(500),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\":      pulumi.String(\"TF\"),\n\t\t\t\t\"For\":          pulumi.String(\"example\"),\n\t\t\t\t\"controlledBy\": pulumi.String(\"ear\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s-destination\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestination, err := ecs.NewEcsDisk(ctx, \"destination\", \u0026ecs.EcsDiskArgs{\n\t\t\tZoneId:             pulumi.String(defaultGetRegions.Regions[0].Zones[1].ZoneId),\n\t\t\tCategory:           pulumi.String(\"cloud_essd\"),\n\t\t\tDeleteAutoSnapshot: pulumi.Bool(true),\n\t\t\tDeleteWithInstance: pulumi.Bool(true),\n\t\t\tDescription:        pulumi.String(invokeFormat.Result),\n\t\t\tDiskName:           pulumi.String(name),\n\t\t\tEnableAutoSnapshot: pulumi.Bool(true),\n\t\t\tEncrypted:          pulumi.Bool(true),\n\t\t\tSize:               pulumi.Int(500),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\":      pulumi.String(\"TF\"),\n\t\t\t\t\"For\":          pulumi.String(\"example\"),\n\t\t\t\t\"controlledBy\": pulumi.String(\"ear\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ebs.NewDiskReplicaPair(ctx, \"default\", \u0026ebs.DiskReplicaPairArgs{\n\t\t\tDestinationDiskId:   destination.ID(),\n\t\t\tDestinationRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t\tPaymentType:         pulumi.String(\"POSTPAY\"),\n\t\t\tDestinationZoneId:   destination.ZoneId,\n\t\t\tSourceZoneId:        defaultEcsDisk.ZoneId,\n\t\t\tDiskId:              defaultEcsDisk.ID(),\n\t\t\tDescription:         pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.ebs.EbsFunctions;\nimport com.pulumi.alicloud.ecs.EcsDisk;\nimport com.pulumi.alicloud.ecs.EcsDiskArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.ebs.DiskReplicaPair;\nimport com.pulumi.alicloud.ebs.DiskReplicaPairArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var defaultGetRegions = EbsFunctions.getRegions(GetRegionsArgs.builder()\n            .regionId(default_.regions()[0].id())\n            .build());\n\n        var defaultEcsDisk = new EcsDisk(\"defaultEcsDisk\", EcsDiskArgs.builder()\n            .zoneId(defaultGetRegions.regions()[0].zones()[0].zoneId())\n            .category(\"cloud_essd\")\n            .deleteAutoSnapshot(true)\n            .deleteWithInstance(true)\n            .description(name)\n            .diskName(name)\n            .enableAutoSnapshot(true)\n            .encrypted(true)\n            .size(500)\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\"),\n                Map.entry(\"controlledBy\", \"ear\")\n            ))\n            .build());\n\n        var destination = new EcsDisk(\"destination\", EcsDiskArgs.builder()\n            .zoneId(defaultGetRegions.regions()[0].zones()[1].zoneId())\n            .category(\"cloud_essd\")\n            .deleteAutoSnapshot(true)\n            .deleteWithInstance(true)\n            .description(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s-destination\")\n                .args(name)\n                .build()).result())\n            .diskName(name)\n            .enableAutoSnapshot(true)\n            .encrypted(true)\n            .size(500)\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\"),\n                Map.entry(\"controlledBy\", \"ear\")\n            ))\n            .build());\n\n        var defaultDiskReplicaPair = new DiskReplicaPair(\"defaultDiskReplicaPair\", DiskReplicaPairArgs.builder()\n            .destinationDiskId(destination.id())\n            .destinationRegionId(default_.regions()[0].id())\n            .paymentType(\"POSTPAY\")\n            .destinationZoneId(destination.zoneId())\n            .sourceZoneId(defaultEcsDisk.zoneId())\n            .diskId(defaultEcsDisk.id())\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultEcsDisk:\n    type: alicloud:ecs:EcsDisk\n    name: default\n    properties:\n      zoneId: ${defaultGetRegions.regions[0].zones[0].zoneId}\n      category: cloud_essd\n      deleteAutoSnapshot: 'true'\n      deleteWithInstance: 'true'\n      description: ${name}\n      diskName: ${name}\n      enableAutoSnapshot: 'true'\n      encrypted: 'true'\n      size: '500'\n      tags:\n        Created: TF\n        For: example\n        controlledBy: ear\n  destination:\n    type: alicloud:ecs:EcsDisk\n    properties:\n      zoneId: ${defaultGetRegions.regions[0].zones[1].zoneId}\n      category: cloud_essd\n      deleteAutoSnapshot: 'true'\n      deleteWithInstance: 'true'\n      description:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s-destination'\n            args:\n              - ${name}\n          return: result\n      diskName: ${name}\n      enableAutoSnapshot: 'true'\n      encrypted: 'true'\n      size: '500'\n      tags:\n        Created: TF\n        For: example\n        controlledBy: ear\n  defaultDiskReplicaPair:\n    type: alicloud:ebs:DiskReplicaPair\n    name: default\n    properties:\n      destinationDiskId: ${destination.id}\n      destinationRegionId: ${default.regions[0].id}\n      paymentType: POSTPAY\n      destinationZoneId: ${destination.zoneId}\n      sourceZoneId: ${defaultEcsDisk.zoneId}\n      diskId: ${defaultEcsDisk.id}\n      description: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetRegions:\n    fn::invoke:\n      function: alicloud:ebs:getRegions\n      arguments:\n        regionId: ${default.regions[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nElastic Block Storage(EBS) Disk Replica Pair can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ebs/diskReplicaPair:DiskReplicaPair example \u003cid\u003e\n```\n\n","properties":{"bandwidth":{"type":"integer","description":"The bandwidth for asynchronous data replication between cloud disks. The unit is Kbps. Value range:\n- 10240 Kbps: equal to 10 Mbps.\n- 20480 Kbps: equal to 20 Mbps.\n- 51200 Kbps: equal to 50 Mbps.\n- 102400 Kbps: equal to 100 Mbps.\n\nDefault value: 10240.\nThis parameter cannot be specified when the ChargeType value is PayAsYouGo The system value is 0, which indicates that the disk is dynamically allocated according to data write changes during asynchronous replication.\n"},"createTime":{"type":"integer","description":"The creation time of the resource\n"},"description":{"type":"string","description":"The description of the asynchronous replication relationship. 2 to 256 English or Chinese characters in length and cannot start with' http:// 'or' https.\n"},"destinationDiskId":{"type":"string","description":"The ID of the standby disk.\n"},"destinationRegionId":{"type":"string","description":"The ID of the region to which the disaster recovery site belongs.\n"},"destinationZoneId":{"type":"string","description":"The ID of the zone to which the disaster recovery site belongs.\n"},"diskId":{"type":"string","description":"The ID of the primary disk.\n"},"diskReplicaPairName":{"type":"string","description":"The name of the asynchronous replication relationship. The length must be 2 to 128 characters in length and must start with a letter or Chinese name. It cannot start with http:// or https. It can contain Chinese, English, numbers, half-width colons (:), underscores (_), half-width periods (.), or dashes (-).\n"},"oneShot":{"type":"boolean","description":"Whether to synchronize immediately. Value range:\n- true: Start data synchronization immediately.\n- false: Data Synchronization starts after the RPO time period.\n\nDefault value: false.\n"},"pairName":{"type":"string","description":". Field 'pair_name' has been deprecated from provider version 1.245.0. New field 'disk_replica_pair_name' instead.\n","deprecationMessage":"Field 'pair_name' has been deprecated since provider version 1.245.0. New field 'disk_replica_pair_name' instead."},"paymentType":{"type":"string","description":"The payment type of the resource\n"},"period":{"type":"integer","description":"The purchase duration of the asynchronous replication relationship. This parameter is required when 'ChargeType = PrePay. The duration unit is specified by'periodunit', and the value range is:\n- When 'PeriodUnit = Week', the value range of this parameter is 1, 2, 3, and 4.\n- When 'PeriodUnit = Month', the value range of this parameter is 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 48, 60.\n"},"periodUnit":{"type":"string","description":"The unit of the purchase time of the asynchronous replication relationship. Value range:\n- Week: Week.\n- Month: Month.\n\nDefault value: Month.\n"},"regionId":{"type":"string","description":"The region ID  of the resource\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"reverseReplicate":{"type":"boolean","description":"Specifies whether to enable the reverse replication sub-feature. Valid values: true and false. Default value: true.\n"},"rpo":{"type":"integer","description":"The RPO value set by the consistency group in seconds. Currently only 900 seconds are supported.\n"},"sourceZoneId":{"type":"string","description":"The ID of the zone to which the production site belongs.\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["createTime","destinationDiskId","destinationRegionId","destinationZoneId","diskId","diskReplicaPairName","pairName","paymentType","regionId","resourceGroupId","rpo","sourceZoneId","status"],"inputProperties":{"bandwidth":{"type":"integer","description":"The bandwidth for asynchronous data replication between cloud disks. The unit is Kbps. Value range:\n- 10240 Kbps: equal to 10 Mbps.\n- 20480 Kbps: equal to 20 Mbps.\n- 51200 Kbps: equal to 50 Mbps.\n- 102400 Kbps: equal to 100 Mbps.\n\nDefault value: 10240.\nThis parameter cannot be specified when the ChargeType value is PayAsYouGo The system value is 0, which indicates that the disk is dynamically allocated according to data write changes during asynchronous replication.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the asynchronous replication relationship. 2 to 256 English or Chinese characters in length and cannot start with' http:// 'or' https.\n"},"destinationDiskId":{"type":"string","description":"The ID of the standby disk.\n","willReplaceOnChanges":true},"destinationRegionId":{"type":"string","description":"The ID of the region to which the disaster recovery site belongs.\n","willReplaceOnChanges":true},"destinationZoneId":{"type":"string","description":"The ID of the zone to which the disaster recovery site belongs.\n","willReplaceOnChanges":true},"diskId":{"type":"string","description":"The ID of the primary disk.\n","willReplaceOnChanges":true},"diskReplicaPairName":{"type":"string","description":"The name of the asynchronous replication relationship. The length must be 2 to 128 characters in length and must start with a letter or Chinese name. It cannot start with http:// or https. It can contain Chinese, English, numbers, half-width colons (:), underscores (_), half-width periods (.), or dashes (-).\n"},"oneShot":{"type":"boolean","description":"Whether to synchronize immediately. Value range:\n- true: Start data synchronization immediately.\n- false: Data Synchronization starts after the RPO time period.\n\nDefault value: false.\n"},"pairName":{"type":"string","description":". Field 'pair_name' has been deprecated from provider version 1.245.0. New field 'disk_replica_pair_name' instead.\n","deprecationMessage":"Field 'pair_name' has been deprecated since provider version 1.245.0. New field 'disk_replica_pair_name' instead."},"paymentType":{"type":"string","description":"The payment type of the resource\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The purchase duration of the asynchronous replication relationship. This parameter is required when 'ChargeType = PrePay. The duration unit is specified by'periodunit', and the value range is:\n- When 'PeriodUnit = Week', the value range of this parameter is 1, 2, 3, and 4.\n- When 'PeriodUnit = Month', the value range of this parameter is 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 48, 60.\n"},"periodUnit":{"type":"string","description":"The unit of the purchase time of the asynchronous replication relationship. Value range:\n- Week: Week.\n- Month: Month.\n\nDefault value: Month.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"reverseReplicate":{"type":"boolean","description":"Specifies whether to enable the reverse replication sub-feature. Valid values: true and false. Default value: true.\n"},"rpo":{"type":"integer","description":"The RPO value set by the consistency group in seconds. Currently only 900 seconds are supported.\n","willReplaceOnChanges":true},"sourceZoneId":{"type":"string","description":"The ID of the zone to which the production site belongs.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"requiredInputs":["destinationDiskId","destinationRegionId","destinationZoneId","diskId","sourceZoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering DiskReplicaPair resources.\n","properties":{"bandwidth":{"type":"integer","description":"The bandwidth for asynchronous data replication between cloud disks. The unit is Kbps. Value range:\n- 10240 Kbps: equal to 10 Mbps.\n- 20480 Kbps: equal to 20 Mbps.\n- 51200 Kbps: equal to 50 Mbps.\n- 102400 Kbps: equal to 100 Mbps.\n\nDefault value: 10240.\nThis parameter cannot be specified when the ChargeType value is PayAsYouGo The system value is 0, which indicates that the disk is dynamically allocated according to data write changes during asynchronous replication.\n","willReplaceOnChanges":true},"createTime":{"type":"integer","description":"The creation time of the resource\n"},"description":{"type":"string","description":"The description of the asynchronous replication relationship. 2 to 256 English or Chinese characters in length and cannot start with' http:// 'or' https.\n"},"destinationDiskId":{"type":"string","description":"The ID of the standby disk.\n","willReplaceOnChanges":true},"destinationRegionId":{"type":"string","description":"The ID of the region to which the disaster recovery site belongs.\n","willReplaceOnChanges":true},"destinationZoneId":{"type":"string","description":"The ID of the zone to which the disaster recovery site belongs.\n","willReplaceOnChanges":true},"diskId":{"type":"string","description":"The ID of the primary disk.\n","willReplaceOnChanges":true},"diskReplicaPairName":{"type":"string","description":"The name of the asynchronous replication relationship. The length must be 2 to 128 characters in length and must start with a letter or Chinese name. It cannot start with http:// or https. It can contain Chinese, English, numbers, half-width colons (:), underscores (_), half-width periods (.), or dashes (-).\n"},"oneShot":{"type":"boolean","description":"Whether to synchronize immediately. Value range:\n- true: Start data synchronization immediately.\n- false: Data Synchronization starts after the RPO time period.\n\nDefault value: false.\n"},"pairName":{"type":"string","description":". Field 'pair_name' has been deprecated from provider version 1.245.0. New field 'disk_replica_pair_name' instead.\n","deprecationMessage":"Field 'pair_name' has been deprecated since provider version 1.245.0. New field 'disk_replica_pair_name' instead."},"paymentType":{"type":"string","description":"The payment type of the resource\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The purchase duration of the asynchronous replication relationship. This parameter is required when 'ChargeType = PrePay. The duration unit is specified by'periodunit', and the value range is:\n- When 'PeriodUnit = Week', the value range of this parameter is 1, 2, 3, and 4.\n- When 'PeriodUnit = Month', the value range of this parameter is 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 48, 60.\n"},"periodUnit":{"type":"string","description":"The unit of the purchase time of the asynchronous replication relationship. Value range:\n- Week: Week.\n- Month: Month.\n\nDefault value: Month.\n"},"regionId":{"type":"string","description":"The region ID  of the resource\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"reverseReplicate":{"type":"boolean","description":"Specifies whether to enable the reverse replication sub-feature. Valid values: true and false. Default value: true.\n"},"rpo":{"type":"integer","description":"The RPO value set by the consistency group in seconds. Currently only 900 seconds are supported.\n","willReplaceOnChanges":true},"sourceZoneId":{"type":"string","description":"The ID of the zone to which the production site belongs.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"type":"object"}},"alicloud:ebs/enterpriseSnapshotPolicy:EnterpriseSnapshotPolicy":{"description":"Provides a EBS Enterprise Snapshot Policy resource. enterprise snapshot policy.\n\nFor information about EBS Enterprise Snapshot Policy and how to use it, see [What is Enterprise Snapshot Policy](https://next.api.aliyun.com/api/ebs/2021-07-30/CreateEnterpriseSnapshotPolicy).\n\n\u003e **NOTE:** Available since v1.215.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultJkW46o = new alicloud.ecs.EcsDisk(\"defaultJkW46o\", {\n    category: \"cloud_essd\",\n    description: \"esp-attachment-test\",\n    zoneId: \"cn-hangzhou-i\",\n    performanceLevel: \"PL1\",\n    size: 20,\n    diskName: name,\n});\nconst defaultPE3jjR = new alicloud.ebs.EnterpriseSnapshotPolicy(\"defaultPE3jjR\", {\n    status: \"DISABLED\",\n    desc: \"DESC\",\n    schedule: {\n        cronExpression: \"0 0 0 1 * ?\",\n    },\n    enterpriseSnapshotPolicyName: name,\n    targetType: \"DISK\",\n    retainRule: {\n        timeInterval: 120,\n        timeUnit: \"DAYS\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_jk_w46o = alicloud.ecs.EcsDisk(\"defaultJkW46o\",\n    category=\"cloud_essd\",\n    description=\"esp-attachment-test\",\n    zone_id=\"cn-hangzhou-i\",\n    performance_level=\"PL1\",\n    size=20,\n    disk_name=name)\ndefault_pe3jj_r = alicloud.ebs.EnterpriseSnapshotPolicy(\"defaultPE3jjR\",\n    status=\"DISABLED\",\n    desc=\"DESC\",\n    schedule={\n        \"cron_expression\": \"0 0 0 1 * ?\",\n    },\n    enterprise_snapshot_policy_name=name,\n    target_type=\"DISK\",\n    retain_rule={\n        \"time_interval\": 120,\n        \"time_unit\": \"DAYS\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultJkW46o = new AliCloud.Ecs.EcsDisk(\"defaultJkW46o\", new()\n    {\n        Category = \"cloud_essd\",\n        Description = \"esp-attachment-test\",\n        ZoneId = \"cn-hangzhou-i\",\n        PerformanceLevel = \"PL1\",\n        Size = 20,\n        DiskName = name,\n    });\n\n    var defaultPE3jjR = new AliCloud.Ebs.EnterpriseSnapshotPolicy(\"defaultPE3jjR\", new()\n    {\n        Status = \"DISABLED\",\n        Desc = \"DESC\",\n        Schedule = new AliCloud.Ebs.Inputs.EnterpriseSnapshotPolicyScheduleArgs\n        {\n            CronExpression = \"0 0 0 1 * ?\",\n        },\n        EnterpriseSnapshotPolicyName = name,\n        TargetType = \"DISK\",\n        RetainRule = new AliCloud.Ebs.Inputs.EnterpriseSnapshotPolicyRetainRuleArgs\n        {\n            TimeInterval = 120,\n            TimeUnit = \"DAYS\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ebs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ecs.NewEcsDisk(ctx, \"defaultJkW46o\", \u0026ecs.EcsDiskArgs{\n\t\t\tCategory:         pulumi.String(\"cloud_essd\"),\n\t\t\tDescription:      pulumi.String(\"esp-attachment-test\"),\n\t\t\tZoneId:           pulumi.String(\"cn-hangzhou-i\"),\n\t\t\tPerformanceLevel: pulumi.String(\"PL1\"),\n\t\t\tSize:             pulumi.Int(20),\n\t\t\tDiskName:         pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ebs.NewEnterpriseSnapshotPolicy(ctx, \"defaultPE3jjR\", \u0026ebs.EnterpriseSnapshotPolicyArgs{\n\t\t\tStatus: pulumi.String(\"DISABLED\"),\n\t\t\tDesc:   pulumi.String(\"DESC\"),\n\t\t\tSchedule: \u0026ebs.EnterpriseSnapshotPolicyScheduleArgs{\n\t\t\t\tCronExpression: pulumi.String(\"0 0 0 1 * ?\"),\n\t\t\t},\n\t\t\tEnterpriseSnapshotPolicyName: pulumi.String(name),\n\t\t\tTargetType:                   pulumi.String(\"DISK\"),\n\t\t\tRetainRule: \u0026ebs.EnterpriseSnapshotPolicyRetainRuleArgs{\n\t\t\t\tTimeInterval: pulumi.Int(120),\n\t\t\t\tTimeUnit:     pulumi.String(\"DAYS\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsDisk;\nimport com.pulumi.alicloud.ecs.EcsDiskArgs;\nimport com.pulumi.alicloud.ebs.EnterpriseSnapshotPolicy;\nimport com.pulumi.alicloud.ebs.EnterpriseSnapshotPolicyArgs;\nimport com.pulumi.alicloud.ebs.inputs.EnterpriseSnapshotPolicyScheduleArgs;\nimport com.pulumi.alicloud.ebs.inputs.EnterpriseSnapshotPolicyRetainRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultJkW46o = new EcsDisk(\"defaultJkW46o\", EcsDiskArgs.builder()\n            .category(\"cloud_essd\")\n            .description(\"esp-attachment-test\")\n            .zoneId(\"cn-hangzhou-i\")\n            .performanceLevel(\"PL1\")\n            .size(20)\n            .diskName(name)\n            .build());\n\n        var defaultPE3jjR = new EnterpriseSnapshotPolicy(\"defaultPE3jjR\", EnterpriseSnapshotPolicyArgs.builder()\n            .status(\"DISABLED\")\n            .desc(\"DESC\")\n            .schedule(EnterpriseSnapshotPolicyScheduleArgs.builder()\n                .cronExpression(\"0 0 0 1 * ?\")\n                .build())\n            .enterpriseSnapshotPolicyName(name)\n            .targetType(\"DISK\")\n            .retainRule(EnterpriseSnapshotPolicyRetainRuleArgs.builder()\n                .timeInterval(120)\n                .timeUnit(\"DAYS\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultJkW46o:\n    type: alicloud:ecs:EcsDisk\n    properties:\n      category: cloud_essd\n      description: esp-attachment-test\n      zoneId: cn-hangzhou-i\n      performanceLevel: PL1\n      size: '20'\n      diskName: ${name}\n  defaultPE3jjR:\n    type: alicloud:ebs:EnterpriseSnapshotPolicy\n    properties:\n      status: DISABLED\n      desc: DESC\n      schedule:\n        cronExpression: 0 0 0 1 * ?\n      enterpriseSnapshotPolicyName: ${name}\n      targetType: DISK\n      retainRule:\n        timeInterval: '120'\n        timeUnit: DAYS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEBS Enterprise Snapshot Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ebs/enterpriseSnapshotPolicy:EnterpriseSnapshotPolicy example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"crossRegionCopyInfo":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicyCrossRegionCopyInfo:EnterpriseSnapshotPolicyCrossRegionCopyInfo","description":"Snapshot replication information. See \u003cspan pulumi-lang-nodejs=\"`crossRegionCopyInfo`\" pulumi-lang-dotnet=\"`CrossRegionCopyInfo`\" pulumi-lang-go=\"`crossRegionCopyInfo`\" pulumi-lang-python=\"`cross_region_copy_info`\" pulumi-lang-yaml=\"`crossRegionCopyInfo`\" pulumi-lang-java=\"`crossRegionCopyInfo`\"\u003e`cross_region_copy_info`\u003c/span\u003e below.\n"},"desc":{"type":"string","description":"Description information representing the resource.\n"},"enterpriseSnapshotPolicyName":{"type":"string","description":"The name of the resource.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"retainRule":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicyRetainRule:EnterpriseSnapshotPolicyRetainRule","description":"Snapshot retention policy representing resources. See \u003cspan pulumi-lang-nodejs=\"`retainRule`\" pulumi-lang-dotnet=\"`RetainRule`\" pulumi-lang-go=\"`retainRule`\" pulumi-lang-python=\"`retain_rule`\" pulumi-lang-yaml=\"`retainRule`\" pulumi-lang-java=\"`retainRule`\"\u003e`retain_rule`\u003c/span\u003e below.\n"},"schedule":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicySchedule:EnterpriseSnapshotPolicySchedule","description":"The scheduling plan that represents the resource. See \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e below.\n"},"specialRetainRules":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicySpecialRetainRules:EnterpriseSnapshotPolicySpecialRetainRules","description":"Snapshot special retention rules. See \u003cspan pulumi-lang-nodejs=\"`specialRetainRules`\" pulumi-lang-dotnet=\"`SpecialRetainRules`\" pulumi-lang-go=\"`specialRetainRules`\" pulumi-lang-python=\"`special_retain_rules`\" pulumi-lang-yaml=\"`specialRetainRules`\" pulumi-lang-java=\"`specialRetainRules`\"\u003e`special_retain_rules`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"storageRule":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicyStorageRule:EnterpriseSnapshotPolicyStorageRule","description":"Snapshot storage policy. See \u003cspan pulumi-lang-nodejs=\"`storageRule`\" pulumi-lang-dotnet=\"`StorageRule`\" pulumi-lang-go=\"`storageRule`\" pulumi-lang-python=\"`storage_rule`\" pulumi-lang-yaml=\"`storageRule`\" pulumi-lang-java=\"`storageRule`\"\u003e`storage_rule`\u003c/span\u003e below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"targetType":{"type":"string","description":"Represents the target type of resource binding.\n"}},"required":["createTime","crossRegionCopyInfo","enterpriseSnapshotPolicyName","resourceGroupId","retainRule","schedule","specialRetainRules","status","targetType"],"inputProperties":{"crossRegionCopyInfo":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicyCrossRegionCopyInfo:EnterpriseSnapshotPolicyCrossRegionCopyInfo","description":"Snapshot replication information. See \u003cspan pulumi-lang-nodejs=\"`crossRegionCopyInfo`\" pulumi-lang-dotnet=\"`CrossRegionCopyInfo`\" pulumi-lang-go=\"`crossRegionCopyInfo`\" pulumi-lang-python=\"`cross_region_copy_info`\" pulumi-lang-yaml=\"`crossRegionCopyInfo`\" pulumi-lang-java=\"`crossRegionCopyInfo`\"\u003e`cross_region_copy_info`\u003c/span\u003e below.\n"},"desc":{"type":"string","description":"Description information representing the resource.\n"},"enterpriseSnapshotPolicyName":{"type":"string","description":"The name of the resource.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"retainRule":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicyRetainRule:EnterpriseSnapshotPolicyRetainRule","description":"Snapshot retention policy representing resources. See \u003cspan pulumi-lang-nodejs=\"`retainRule`\" pulumi-lang-dotnet=\"`RetainRule`\" pulumi-lang-go=\"`retainRule`\" pulumi-lang-python=\"`retain_rule`\" pulumi-lang-yaml=\"`retainRule`\" pulumi-lang-java=\"`retainRule`\"\u003e`retain_rule`\u003c/span\u003e below.\n"},"schedule":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicySchedule:EnterpriseSnapshotPolicySchedule","description":"The scheduling plan that represents the resource. See \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e below.\n"},"specialRetainRules":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicySpecialRetainRules:EnterpriseSnapshotPolicySpecialRetainRules","description":"Snapshot special retention rules. See \u003cspan pulumi-lang-nodejs=\"`specialRetainRules`\" pulumi-lang-dotnet=\"`SpecialRetainRules`\" pulumi-lang-go=\"`specialRetainRules`\" pulumi-lang-python=\"`special_retain_rules`\" pulumi-lang-yaml=\"`specialRetainRules`\" pulumi-lang-java=\"`specialRetainRules`\"\u003e`special_retain_rules`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"},"storageRule":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicyStorageRule:EnterpriseSnapshotPolicyStorageRule","description":"Snapshot storage policy. See \u003cspan pulumi-lang-nodejs=\"`storageRule`\" pulumi-lang-dotnet=\"`StorageRule`\" pulumi-lang-go=\"`storageRule`\" pulumi-lang-python=\"`storage_rule`\" pulumi-lang-yaml=\"`storageRule`\" pulumi-lang-java=\"`storageRule`\"\u003e`storage_rule`\u003c/span\u003e below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"targetType":{"type":"string","description":"Represents the target type of resource binding.\n","willReplaceOnChanges":true}},"requiredInputs":["enterpriseSnapshotPolicyName","retainRule","schedule","targetType"],"stateInputs":{"description":"Input properties used for looking up and filtering EnterpriseSnapshotPolicy resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"crossRegionCopyInfo":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicyCrossRegionCopyInfo:EnterpriseSnapshotPolicyCrossRegionCopyInfo","description":"Snapshot replication information. See \u003cspan pulumi-lang-nodejs=\"`crossRegionCopyInfo`\" pulumi-lang-dotnet=\"`CrossRegionCopyInfo`\" pulumi-lang-go=\"`crossRegionCopyInfo`\" pulumi-lang-python=\"`cross_region_copy_info`\" pulumi-lang-yaml=\"`crossRegionCopyInfo`\" pulumi-lang-java=\"`crossRegionCopyInfo`\"\u003e`cross_region_copy_info`\u003c/span\u003e below.\n"},"desc":{"type":"string","description":"Description information representing the resource.\n"},"enterpriseSnapshotPolicyName":{"type":"string","description":"The name of the resource.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"retainRule":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicyRetainRule:EnterpriseSnapshotPolicyRetainRule","description":"Snapshot retention policy representing resources. See \u003cspan pulumi-lang-nodejs=\"`retainRule`\" pulumi-lang-dotnet=\"`RetainRule`\" pulumi-lang-go=\"`retainRule`\" pulumi-lang-python=\"`retain_rule`\" pulumi-lang-yaml=\"`retainRule`\" pulumi-lang-java=\"`retainRule`\"\u003e`retain_rule`\u003c/span\u003e below.\n"},"schedule":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicySchedule:EnterpriseSnapshotPolicySchedule","description":"The scheduling plan that represents the resource. See \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e below.\n"},"specialRetainRules":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicySpecialRetainRules:EnterpriseSnapshotPolicySpecialRetainRules","description":"Snapshot special retention rules. See \u003cspan pulumi-lang-nodejs=\"`specialRetainRules`\" pulumi-lang-dotnet=\"`SpecialRetainRules`\" pulumi-lang-go=\"`specialRetainRules`\" pulumi-lang-python=\"`special_retain_rules`\" pulumi-lang-yaml=\"`specialRetainRules`\" pulumi-lang-java=\"`specialRetainRules`\"\u003e`special_retain_rules`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"},"storageRule":{"$ref":"#/types/alicloud:ebs/EnterpriseSnapshotPolicyStorageRule:EnterpriseSnapshotPolicyStorageRule","description":"Snapshot storage policy. See \u003cspan pulumi-lang-nodejs=\"`storageRule`\" pulumi-lang-dotnet=\"`StorageRule`\" pulumi-lang-go=\"`storageRule`\" pulumi-lang-python=\"`storage_rule`\" pulumi-lang-yaml=\"`storageRule`\" pulumi-lang-java=\"`storageRule`\"\u003e`storage_rule`\u003c/span\u003e below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"targetType":{"type":"string","description":"Represents the target type of resource binding.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ebs/enterpriseSnapshotPolicyAttachment:EnterpriseSnapshotPolicyAttachment":{"description":"Provides a EBS Enterprise Snapshot Policy Attachment resource. Enterprise-level snapshot policy cloud disk binding relationship.\n\nFor information about EBS Enterprise Snapshot Policy Attachment and how to use it, see [What is Enterprise Snapshot Policy Attachment](https://next.api.aliyun.com/api/ebs/2021-07-30/BindEnterpriseSnapshotPolicy).\n\n\u003e **NOTE:** Available since v1.215.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultJkW46o = new alicloud.ecs.EcsDisk(\"defaultJkW46o\", {\n    category: \"cloud_essd\",\n    description: \"esp-attachment-test\",\n    zoneId: \"cn-hangzhou-i\",\n    performanceLevel: \"PL1\",\n    size: 20,\n    diskName: name,\n});\nconst defaultPE3jjR = new alicloud.ebs.EnterpriseSnapshotPolicy(\"defaultPE3jjR\", {\n    status: \"DISABLED\",\n    desc: \"DESC\",\n    schedule: {\n        cronExpression: \"0 0 0 1 * ?\",\n    },\n    enterpriseSnapshotPolicyName: name,\n    targetType: \"DISK\",\n    retainRule: {\n        timeInterval: 120,\n        timeUnit: \"DAYS\",\n    },\n});\nconst _default = new alicloud.ebs.EnterpriseSnapshotPolicyAttachment(\"default\", {\n    policyId: defaultPE3jjR.id,\n    diskId: defaultJkW46o.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_jk_w46o = alicloud.ecs.EcsDisk(\"defaultJkW46o\",\n    category=\"cloud_essd\",\n    description=\"esp-attachment-test\",\n    zone_id=\"cn-hangzhou-i\",\n    performance_level=\"PL1\",\n    size=20,\n    disk_name=name)\ndefault_pe3jj_r = alicloud.ebs.EnterpriseSnapshotPolicy(\"defaultPE3jjR\",\n    status=\"DISABLED\",\n    desc=\"DESC\",\n    schedule={\n        \"cron_expression\": \"0 0 0 1 * ?\",\n    },\n    enterprise_snapshot_policy_name=name,\n    target_type=\"DISK\",\n    retain_rule={\n        \"time_interval\": 120,\n        \"time_unit\": \"DAYS\",\n    })\ndefault = alicloud.ebs.EnterpriseSnapshotPolicyAttachment(\"default\",\n    policy_id=default_pe3jj_r.id,\n    disk_id=default_jk_w46o.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultJkW46o = new AliCloud.Ecs.EcsDisk(\"defaultJkW46o\", new()\n    {\n        Category = \"cloud_essd\",\n        Description = \"esp-attachment-test\",\n        ZoneId = \"cn-hangzhou-i\",\n        PerformanceLevel = \"PL1\",\n        Size = 20,\n        DiskName = name,\n    });\n\n    var defaultPE3jjR = new AliCloud.Ebs.EnterpriseSnapshotPolicy(\"defaultPE3jjR\", new()\n    {\n        Status = \"DISABLED\",\n        Desc = \"DESC\",\n        Schedule = new AliCloud.Ebs.Inputs.EnterpriseSnapshotPolicyScheduleArgs\n        {\n            CronExpression = \"0 0 0 1 * ?\",\n        },\n        EnterpriseSnapshotPolicyName = name,\n        TargetType = \"DISK\",\n        RetainRule = new AliCloud.Ebs.Inputs.EnterpriseSnapshotPolicyRetainRuleArgs\n        {\n            TimeInterval = 120,\n            TimeUnit = \"DAYS\",\n        },\n    });\n\n    var @default = new AliCloud.Ebs.EnterpriseSnapshotPolicyAttachment(\"default\", new()\n    {\n        PolicyId = defaultPE3jjR.Id,\n        DiskId = defaultJkW46o.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ebs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultJkW46o, err := ecs.NewEcsDisk(ctx, \"defaultJkW46o\", \u0026ecs.EcsDiskArgs{\n\t\t\tCategory:         pulumi.String(\"cloud_essd\"),\n\t\t\tDescription:      pulumi.String(\"esp-attachment-test\"),\n\t\t\tZoneId:           pulumi.String(\"cn-hangzhou-i\"),\n\t\t\tPerformanceLevel: pulumi.String(\"PL1\"),\n\t\t\tSize:             pulumi.Int(20),\n\t\t\tDiskName:         pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultPE3jjR, err := ebs.NewEnterpriseSnapshotPolicy(ctx, \"defaultPE3jjR\", \u0026ebs.EnterpriseSnapshotPolicyArgs{\n\t\t\tStatus: pulumi.String(\"DISABLED\"),\n\t\t\tDesc:   pulumi.String(\"DESC\"),\n\t\t\tSchedule: \u0026ebs.EnterpriseSnapshotPolicyScheduleArgs{\n\t\t\t\tCronExpression: pulumi.String(\"0 0 0 1 * ?\"),\n\t\t\t},\n\t\t\tEnterpriseSnapshotPolicyName: pulumi.String(name),\n\t\t\tTargetType:                   pulumi.String(\"DISK\"),\n\t\t\tRetainRule: \u0026ebs.EnterpriseSnapshotPolicyRetainRuleArgs{\n\t\t\t\tTimeInterval: pulumi.Int(120),\n\t\t\t\tTimeUnit:     pulumi.String(\"DAYS\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ebs.NewEnterpriseSnapshotPolicyAttachment(ctx, \"default\", \u0026ebs.EnterpriseSnapshotPolicyAttachmentArgs{\n\t\t\tPolicyId: defaultPE3jjR.ID(),\n\t\t\tDiskId:   defaultJkW46o.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsDisk;\nimport com.pulumi.alicloud.ecs.EcsDiskArgs;\nimport com.pulumi.alicloud.ebs.EnterpriseSnapshotPolicy;\nimport com.pulumi.alicloud.ebs.EnterpriseSnapshotPolicyArgs;\nimport com.pulumi.alicloud.ebs.inputs.EnterpriseSnapshotPolicyScheduleArgs;\nimport com.pulumi.alicloud.ebs.inputs.EnterpriseSnapshotPolicyRetainRuleArgs;\nimport com.pulumi.alicloud.ebs.EnterpriseSnapshotPolicyAttachment;\nimport com.pulumi.alicloud.ebs.EnterpriseSnapshotPolicyAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultJkW46o = new EcsDisk(\"defaultJkW46o\", EcsDiskArgs.builder()\n            .category(\"cloud_essd\")\n            .description(\"esp-attachment-test\")\n            .zoneId(\"cn-hangzhou-i\")\n            .performanceLevel(\"PL1\")\n            .size(20)\n            .diskName(name)\n            .build());\n\n        var defaultPE3jjR = new EnterpriseSnapshotPolicy(\"defaultPE3jjR\", EnterpriseSnapshotPolicyArgs.builder()\n            .status(\"DISABLED\")\n            .desc(\"DESC\")\n            .schedule(EnterpriseSnapshotPolicyScheduleArgs.builder()\n                .cronExpression(\"0 0 0 1 * ?\")\n                .build())\n            .enterpriseSnapshotPolicyName(name)\n            .targetType(\"DISK\")\n            .retainRule(EnterpriseSnapshotPolicyRetainRuleArgs.builder()\n                .timeInterval(120)\n                .timeUnit(\"DAYS\")\n                .build())\n            .build());\n\n        var default_ = new EnterpriseSnapshotPolicyAttachment(\"default\", EnterpriseSnapshotPolicyAttachmentArgs.builder()\n            .policyId(defaultPE3jjR.id())\n            .diskId(defaultJkW46o.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultJkW46o:\n    type: alicloud:ecs:EcsDisk\n    properties:\n      category: cloud_essd\n      description: esp-attachment-test\n      zoneId: cn-hangzhou-i\n      performanceLevel: PL1\n      size: '20'\n      diskName: ${name}\n  defaultPE3jjR:\n    type: alicloud:ebs:EnterpriseSnapshotPolicy\n    properties:\n      status: DISABLED\n      desc: DESC\n      schedule:\n        cronExpression: 0 0 0 1 * ?\n      enterpriseSnapshotPolicyName: ${name}\n      targetType: DISK\n      retainRule:\n        timeInterval: '120'\n        timeUnit: DAYS\n  default:\n    type: alicloud:ebs:EnterpriseSnapshotPolicyAttachment\n    properties:\n      policyId: ${defaultPE3jjR.id}\n      diskId: ${defaultJkW46o.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEBS Enterprise Snapshot Policy Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ebs/enterpriseSnapshotPolicyAttachment:EnterpriseSnapshotPolicyAttachment example \u003cpolicy_id\u003e:\u003cdisk_id\u003e\n```\n\n","properties":{"diskId":{"type":"string","description":"Cloud Disk ID.\n"},"policyId":{"type":"string","description":"the enterprise snapshot policy id.\n"}},"required":["diskId","policyId"],"inputProperties":{"diskId":{"type":"string","description":"Cloud Disk ID.\n","willReplaceOnChanges":true},"policyId":{"type":"string","description":"the enterprise snapshot policy id.\n","willReplaceOnChanges":true}},"requiredInputs":["policyId"],"stateInputs":{"description":"Input properties used for looking up and filtering EnterpriseSnapshotPolicyAttachment resources.\n","properties":{"diskId":{"type":"string","description":"Cloud Disk ID.\n","willReplaceOnChanges":true},"policyId":{"type":"string","description":"the enterprise snapshot policy id.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ebs/replicaGroupDrill:ReplicaGroupDrill":{"description":"Provides a EBS Replica Group Drill resource. \n\nFor information about Elastic Block Storage(EBS) Replica Group Drill and how to use it, see [What is Replica Group Drill](https://next.api.alibabacloud.com/document/ebs/2021-07-30/StartReplicaGroupDrill).\n\n\u003e **NOTE:** Available since v1.215.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ebs.ReplicaGroupDrill(\"default\", {groupId: \"pg-m1H9aaOUIGsDUwgZ\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ebs.ReplicaGroupDrill(\"default\", group_id=\"pg-m1H9aaOUIGsDUwgZ\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ebs.ReplicaGroupDrill(\"default\", new()\n    {\n        GroupId = \"pg-m1H9aaOUIGsDUwgZ\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ebs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ebs.NewReplicaGroupDrill(ctx, \"default\", \u0026ebs.ReplicaGroupDrillArgs{\n\t\t\tGroupId: pulumi.String(\"pg-m1H9aaOUIGsDUwgZ\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ebs.ReplicaGroupDrill;\nimport com.pulumi.alicloud.ebs.ReplicaGroupDrillArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ReplicaGroupDrill(\"default\", ReplicaGroupDrillArgs.builder()\n            .groupId(\"pg-m1H9aaOUIGsDUwgZ\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ebs:ReplicaGroupDrill\n    properties:\n      groupId: pg-m1H9aaOUIGsDUwgZ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEBS Replica Group Drill can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ebs/replicaGroupDrill:ReplicaGroupDrill example \u003cgroup_id\u003e:\u003creplica_group_drill_id\u003e\n```\n\n","properties":{"groupId":{"type":"string","description":"The ID of the replication group. You can use the describediskreplicaggroups interface to query the asynchronous replication group list to obtain the value of the replication group ID input parameter.\n"},"replicaGroupDrillId":{"type":"string","description":"The first ID of the resource.\n"},"status":{"type":"string","description":"Walkthrough status. _failed: Execution failed._failed: Cleanup failed.\n"}},"required":["groupId","replicaGroupDrillId","status"],"inputProperties":{"groupId":{"type":"string","description":"The ID of the replication group. You can use the describediskreplicaggroups interface to query the asynchronous replication group list to obtain the value of the replication group ID input parameter.\n","willReplaceOnChanges":true}},"requiredInputs":["groupId"],"stateInputs":{"description":"Input properties used for looking up and filtering ReplicaGroupDrill resources.\n","properties":{"groupId":{"type":"string","description":"The ID of the replication group. You can use the describediskreplicaggroups interface to query the asynchronous replication group list to obtain the value of the replication group ID input parameter.\n","willReplaceOnChanges":true},"replicaGroupDrillId":{"type":"string","description":"The first ID of the resource.\n"},"status":{"type":"string","description":"Walkthrough status. _failed: Execution failed._failed: Cleanup failed.\n"}},"type":"object"}},"alicloud:ebs/replicaPairDrill:ReplicaPairDrill":{"description":"Provides a EBS Replica Pair Drill resource. \n\nFor information about Elastic Block Storage(EBS) Replica Pair Drill and how to use it, see [What is Replica Pair Drill](https://next.api.alibabacloud.com/document/ebs/2021-07-30/StartPairDrill).\n\n\u003e **NOTE:** Available since v1.215.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ebs.ReplicaPairDrill(\"default\", {pairId: \"pair-cn-wwo3kjfq5001\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ebs.ReplicaPairDrill(\"default\", pair_id=\"pair-cn-wwo3kjfq5001\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ebs.ReplicaPairDrill(\"default\", new()\n    {\n        PairId = \"pair-cn-wwo3kjfq5001\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ebs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ebs.NewReplicaPairDrill(ctx, \"default\", \u0026ebs.ReplicaPairDrillArgs{\n\t\t\tPairId: pulumi.String(\"pair-cn-wwo3kjfq5001\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ebs.ReplicaPairDrill;\nimport com.pulumi.alicloud.ebs.ReplicaPairDrillArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ReplicaPairDrill(\"default\", ReplicaPairDrillArgs.builder()\n            .pairId(\"pair-cn-wwo3kjfq5001\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ebs:ReplicaPairDrill\n    properties:\n      pairId: pair-cn-wwo3kjfq5001\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEBS Replica Pair Drill can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ebs/replicaPairDrill:ReplicaPairDrill example \u003cpair_id\u003e:\u003creplica_pair_drill_id\u003e\n```\n\n","properties":{"pairId":{"type":"string","description":"Copy the ID of the pair. You can call DescribeDiskReplicaPairs to query the list of asynchronous replication pairs to obtain the replication pair ID.\n"},"replicaPairDrillId":{"type":"string","description":"The first ID of the resource.\n"},"status":{"type":"string","description":"Walkthrough status. _failed: Execution failed._failed: Cleanup failed.\n"}},"required":["pairId","replicaPairDrillId","status"],"inputProperties":{"pairId":{"type":"string","description":"Copy the ID of the pair. You can call DescribeDiskReplicaPairs to query the list of asynchronous replication pairs to obtain the replication pair ID.\n","willReplaceOnChanges":true}},"requiredInputs":["pairId"],"stateInputs":{"description":"Input properties used for looking up and filtering ReplicaPairDrill resources.\n","properties":{"pairId":{"type":"string","description":"Copy the ID of the pair. You can call DescribeDiskReplicaPairs to query the list of asynchronous replication pairs to obtain the replication pair ID.\n","willReplaceOnChanges":true},"replicaPairDrillId":{"type":"string","description":"The first ID of the resource.\n"},"status":{"type":"string","description":"Walkthrough status. _failed: Execution failed._failed: Cleanup failed.\n"}},"type":"object"}},"alicloud:ebs/solutionInstance:SolutionInstance":{"description":"Provides a EBS Solution Instance resource. \n\nFor information about EBS Solution Instance and how to use it, see [What is Solution Instance](https://www.alibabacloud.com/help/en/).\n\n\u003e **NOTE:** Available since v1.216.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst zoneId = config.get(\"zoneId\") || \"cn-shanghai-l\";\nconst regionId = config.get(\"regionId\") || \"cn-shanghai\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultSolutionInstance = new alicloud.ebs.SolutionInstance(\"default\", {\n    solutionInstanceName: name,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    description: \"description\",\n    solutionId: \"mysql\",\n    parameters: [\n        {\n            parameterKey: \"zoneId\",\n            parameterValue: zoneId,\n        },\n        {\n            parameterKey: \"ecsType\",\n            parameterValue: \"ecs.c6.large\",\n        },\n        {\n            parameterKey: \"ecsImageId\",\n            parameterValue: \"CentOS_7\",\n        },\n        {\n            parameterKey: \"internetMaxBandwidthOut\",\n            parameterValue: \"100\",\n        },\n        {\n            parameterKey: \"internetChargeType\",\n            parameterValue: \"PayByTraffic\",\n        },\n        {\n            parameterKey: \"ecsPassword\",\n            parameterValue: \"Ebs12345\",\n        },\n        {\n            parameterKey: \"sysDiskType\",\n            parameterValue: \"cloud_essd\",\n        },\n        {\n            parameterKey: \"sysDiskPerformance\",\n            parameterValue: \"PL0\",\n        },\n        {\n            parameterKey: \"sysDiskSize\",\n            parameterValue: \"40\",\n        },\n        {\n            parameterKey: \"dataDiskType\",\n            parameterValue: \"cloud_essd\",\n        },\n        {\n            parameterKey: \"dataDiskPerformance\",\n            parameterValue: \"PL0\",\n        },\n        {\n            parameterKey: \"dataDiskSize\",\n            parameterValue: \"40\",\n        },\n        {\n            parameterKey: \"mysqlVersion\",\n            parameterValue: \"MySQL80\",\n        },\n        {\n            parameterKey: \"mysqlUser\",\n            parameterValue: \"root\",\n        },\n        {\n            parameterKey: \"mysqlPassword\",\n            parameterValue: \"Ebs12345\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nzone_id = config.get(\"zoneId\")\nif zone_id is None:\n    zone_id = \"cn-shanghai-l\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-shanghai\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_solution_instance = alicloud.ebs.SolutionInstance(\"default\",\n    solution_instance_name=name,\n    resource_group_id=default.ids[0],\n    description=\"description\",\n    solution_id=\"mysql\",\n    parameters=[\n        {\n            \"parameter_key\": \"zoneId\",\n            \"parameter_value\": zone_id,\n        },\n        {\n            \"parameter_key\": \"ecsType\",\n            \"parameter_value\": \"ecs.c6.large\",\n        },\n        {\n            \"parameter_key\": \"ecsImageId\",\n            \"parameter_value\": \"CentOS_7\",\n        },\n        {\n            \"parameter_key\": \"internetMaxBandwidthOut\",\n            \"parameter_value\": \"100\",\n        },\n        {\n            \"parameter_key\": \"internetChargeType\",\n            \"parameter_value\": \"PayByTraffic\",\n        },\n        {\n            \"parameter_key\": \"ecsPassword\",\n            \"parameter_value\": \"Ebs12345\",\n        },\n        {\n            \"parameter_key\": \"sysDiskType\",\n            \"parameter_value\": \"cloud_essd\",\n        },\n        {\n            \"parameter_key\": \"sysDiskPerformance\",\n            \"parameter_value\": \"PL0\",\n        },\n        {\n            \"parameter_key\": \"sysDiskSize\",\n            \"parameter_value\": \"40\",\n        },\n        {\n            \"parameter_key\": \"dataDiskType\",\n            \"parameter_value\": \"cloud_essd\",\n        },\n        {\n            \"parameter_key\": \"dataDiskPerformance\",\n            \"parameter_value\": \"PL0\",\n        },\n        {\n            \"parameter_key\": \"dataDiskSize\",\n            \"parameter_value\": \"40\",\n        },\n        {\n            \"parameter_key\": \"mysqlVersion\",\n            \"parameter_value\": \"MySQL80\",\n        },\n        {\n            \"parameter_key\": \"mysqlUser\",\n            \"parameter_value\": \"root\",\n        },\n        {\n            \"parameter_key\": \"mysqlPassword\",\n            \"parameter_value\": \"Ebs12345\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var zoneId = config.Get(\"zoneId\") ?? \"cn-shanghai-l\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-shanghai\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultSolutionInstance = new AliCloud.Ebs.SolutionInstance(\"default\", new()\n    {\n        SolutionInstanceName = name,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        Description = \"description\",\n        SolutionId = \"mysql\",\n        Parameters = new[]\n        {\n            new AliCloud.Ebs.Inputs.SolutionInstanceParameterArgs\n            {\n                ParameterKey = \"zoneId\",\n                ParameterValue = zoneId,\n            },\n            new AliCloud.Ebs.Inputs.SolutionInstanceParameterArgs\n            {\n                ParameterKey = \"ecsType\",\n                ParameterValue = \"ecs.c6.large\",\n            },\n            new AliCloud.Ebs.Inputs.SolutionInstanceParameterArgs\n            {\n                ParameterKey = \"ecsImageId\",\n                ParameterValue = \"CentOS_7\",\n            },\n            new AliCloud.Ebs.Inputs.SolutionInstanceParameterArgs\n            {\n                ParameterKey = \"internetMaxBandwidthOut\",\n                ParameterValue = \"100\",\n            },\n            new AliCloud.Ebs.Inputs.SolutionInstanceParameterArgs\n            {\n                ParameterKey = \"internetChargeType\",\n                ParameterValue = \"PayByTraffic\",\n            },\n            new AliCloud.Ebs.Inputs.SolutionInstanceParameterArgs\n            {\n                ParameterKey = \"ecsPassword\",\n                ParameterValue = \"Ebs12345\",\n            },\n            new AliCloud.Ebs.Inputs.SolutionInstanceParameterArgs\n            {\n                ParameterKey = \"sysDiskType\",\n                ParameterValue = \"cloud_essd\",\n            },\n            new AliCloud.Ebs.Inputs.SolutionInstanceParameterArgs\n            {\n                ParameterKey = \"sysDiskPerformance\",\n                ParameterValue = \"PL0\",\n            },\n            new AliCloud.Ebs.Inputs.SolutionInstanceParameterArgs\n            {\n                ParameterKey = \"sysDiskSize\",\n                ParameterValue = \"40\",\n            },\n            new AliCloud.Ebs.Inputs.SolutionInstanceParameterArgs\n            {\n                ParameterKey = \"dataDiskType\",\n                ParameterValue = \"cloud_essd\",\n            },\n            new AliCloud.Ebs.Inputs.SolutionInstanceParameterArgs\n            {\n                ParameterKey = \"dataDiskPerformance\",\n                ParameterValue = \"PL0\",\n            },\n            new AliCloud.Ebs.Inputs.SolutionInstanceParameterArgs\n            {\n                ParameterKey = \"dataDiskSize\",\n                ParameterValue = \"40\",\n            },\n            new AliCloud.Ebs.Inputs.SolutionInstanceParameterArgs\n            {\n                ParameterKey = \"mysqlVersion\",\n                ParameterValue = \"MySQL80\",\n            },\n            new AliCloud.Ebs.Inputs.SolutionInstanceParameterArgs\n            {\n                ParameterKey = \"mysqlUser\",\n                ParameterValue = \"root\",\n            },\n            new AliCloud.Ebs.Inputs.SolutionInstanceParameterArgs\n            {\n                ParameterKey = \"mysqlPassword\",\n                ParameterValue = \"Ebs12345\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ebs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tzoneId := \"cn-shanghai-l\"\n\t\tif param := cfg.Get(\"zoneId\"); param != \"\" {\n\t\t\tzoneId = param\n\t\t}\n\t\tregionId := \"cn-shanghai\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ebs.NewSolutionInstance(ctx, \"default\", \u0026ebs.SolutionInstanceArgs{\n\t\t\tSolutionInstanceName: pulumi.String(name),\n\t\t\tResourceGroupId:      pulumi.String(_default.Ids[0]),\n\t\t\tDescription:          pulumi.String(\"description\"),\n\t\t\tSolutionId:           pulumi.String(\"mysql\"),\n\t\t\tParameters: ebs.SolutionInstanceParameterArray{\n\t\t\t\t\u0026ebs.SolutionInstanceParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"zoneId\"),\n\t\t\t\t\tParameterValue: pulumi.String(zoneId),\n\t\t\t\t},\n\t\t\t\t\u0026ebs.SolutionInstanceParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"ecsType\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"ecs.c6.large\"),\n\t\t\t\t},\n\t\t\t\t\u0026ebs.SolutionInstanceParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"ecsImageId\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"CentOS_7\"),\n\t\t\t\t},\n\t\t\t\t\u0026ebs.SolutionInstanceParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"internetMaxBandwidthOut\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"100\"),\n\t\t\t\t},\n\t\t\t\t\u0026ebs.SolutionInstanceParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"internetChargeType\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"PayByTraffic\"),\n\t\t\t\t},\n\t\t\t\t\u0026ebs.SolutionInstanceParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"ecsPassword\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"Ebs12345\"),\n\t\t\t\t},\n\t\t\t\t\u0026ebs.SolutionInstanceParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"sysDiskType\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"cloud_essd\"),\n\t\t\t\t},\n\t\t\t\t\u0026ebs.SolutionInstanceParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"sysDiskPerformance\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"PL0\"),\n\t\t\t\t},\n\t\t\t\t\u0026ebs.SolutionInstanceParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"sysDiskSize\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"40\"),\n\t\t\t\t},\n\t\t\t\t\u0026ebs.SolutionInstanceParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"dataDiskType\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"cloud_essd\"),\n\t\t\t\t},\n\t\t\t\t\u0026ebs.SolutionInstanceParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"dataDiskPerformance\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"PL0\"),\n\t\t\t\t},\n\t\t\t\t\u0026ebs.SolutionInstanceParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"dataDiskSize\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"40\"),\n\t\t\t\t},\n\t\t\t\t\u0026ebs.SolutionInstanceParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"mysqlVersion\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"MySQL80\"),\n\t\t\t\t},\n\t\t\t\t\u0026ebs.SolutionInstanceParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"mysqlUser\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"root\"),\n\t\t\t\t},\n\t\t\t\t\u0026ebs.SolutionInstanceParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"mysqlPassword\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"Ebs12345\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.ebs.SolutionInstance;\nimport com.pulumi.alicloud.ebs.SolutionInstanceArgs;\nimport com.pulumi.alicloud.ebs.inputs.SolutionInstanceParameterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var zoneId = config.get(\"zoneId\").orElse(\"cn-shanghai-l\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-shanghai\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultSolutionInstance = new SolutionInstance(\"defaultSolutionInstance\", SolutionInstanceArgs.builder()\n            .solutionInstanceName(name)\n            .resourceGroupId(default_.ids()[0])\n            .description(\"description\")\n            .solutionId(\"mysql\")\n            .parameters(            \n                SolutionInstanceParameterArgs.builder()\n                    .parameterKey(\"zoneId\")\n                    .parameterValue(zoneId)\n                    .build(),\n                SolutionInstanceParameterArgs.builder()\n                    .parameterKey(\"ecsType\")\n                    .parameterValue(\"ecs.c6.large\")\n                    .build(),\n                SolutionInstanceParameterArgs.builder()\n                    .parameterKey(\"ecsImageId\")\n                    .parameterValue(\"CentOS_7\")\n                    .build(),\n                SolutionInstanceParameterArgs.builder()\n                    .parameterKey(\"internetMaxBandwidthOut\")\n                    .parameterValue(\"100\")\n                    .build(),\n                SolutionInstanceParameterArgs.builder()\n                    .parameterKey(\"internetChargeType\")\n                    .parameterValue(\"PayByTraffic\")\n                    .build(),\n                SolutionInstanceParameterArgs.builder()\n                    .parameterKey(\"ecsPassword\")\n                    .parameterValue(\"Ebs12345\")\n                    .build(),\n                SolutionInstanceParameterArgs.builder()\n                    .parameterKey(\"sysDiskType\")\n                    .parameterValue(\"cloud_essd\")\n                    .build(),\n                SolutionInstanceParameterArgs.builder()\n                    .parameterKey(\"sysDiskPerformance\")\n                    .parameterValue(\"PL0\")\n                    .build(),\n                SolutionInstanceParameterArgs.builder()\n                    .parameterKey(\"sysDiskSize\")\n                    .parameterValue(\"40\")\n                    .build(),\n                SolutionInstanceParameterArgs.builder()\n                    .parameterKey(\"dataDiskType\")\n                    .parameterValue(\"cloud_essd\")\n                    .build(),\n                SolutionInstanceParameterArgs.builder()\n                    .parameterKey(\"dataDiskPerformance\")\n                    .parameterValue(\"PL0\")\n                    .build(),\n                SolutionInstanceParameterArgs.builder()\n                    .parameterKey(\"dataDiskSize\")\n                    .parameterValue(\"40\")\n                    .build(),\n                SolutionInstanceParameterArgs.builder()\n                    .parameterKey(\"mysqlVersion\")\n                    .parameterValue(\"MySQL80\")\n                    .build(),\n                SolutionInstanceParameterArgs.builder()\n                    .parameterKey(\"mysqlUser\")\n                    .parameterValue(\"root\")\n                    .build(),\n                SolutionInstanceParameterArgs.builder()\n                    .parameterKey(\"mysqlPassword\")\n                    .parameterValue(\"Ebs12345\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  zoneId:\n    type: string\n    default: cn-shanghai-l\n  regionId:\n    type: string\n    default: cn-shanghai\nresources:\n  defaultSolutionInstance:\n    type: alicloud:ebs:SolutionInstance\n    name: default\n    properties:\n      solutionInstanceName: ${name}\n      resourceGroupId: ${default.ids[0]}\n      description: description\n      solutionId: mysql\n      parameters:\n        - parameterKey: zoneId\n          parameterValue: ${zoneId}\n        - parameterKey: ecsType\n          parameterValue: ecs.c6.large\n        - parameterKey: ecsImageId\n          parameterValue: CentOS_7\n        - parameterKey: internetMaxBandwidthOut\n          parameterValue: '100'\n        - parameterKey: internetChargeType\n          parameterValue: PayByTraffic\n        - parameterKey: ecsPassword\n          parameterValue: Ebs12345\n        - parameterKey: sysDiskType\n          parameterValue: cloud_essd\n        - parameterKey: sysDiskPerformance\n          parameterValue: PL0\n        - parameterKey: sysDiskSize\n          parameterValue: '40'\n        - parameterKey: dataDiskType\n          parameterValue: cloud_essd\n        - parameterKey: dataDiskPerformance\n          parameterValue: PL0\n        - parameterKey: dataDiskSize\n          parameterValue: '40'\n        - parameterKey: mysqlVersion\n          parameterValue: MySQL80\n        - parameterKey: mysqlUser\n          parameterValue: root\n        - parameterKey: mysqlPassword\n          parameterValue: Ebs12345\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEBS Solution Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ebs/solutionInstance:SolutionInstance example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"Solution Instance Creation Time.\n"},"description":{"type":"string","description":"Solution Instance Description.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:ebs/SolutionInstanceParameter:SolutionInstanceParameter"},"description":"Solution Instance Creation Parameters. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"solutionId":{"type":"string","description":"Solution ID.\n"},"solutionInstanceName":{"type":"string","description":"Solution Instance Name.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"required":["createTime","resourceGroupId","solutionId","solutionInstanceName","status"],"inputProperties":{"description":{"type":"string","description":"Solution Instance Description.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:ebs/SolutionInstanceParameter:SolutionInstanceParameter"},"description":"Solution Instance Creation Parameters. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"solutionId":{"type":"string","description":"Solution ID.\n","willReplaceOnChanges":true},"solutionInstanceName":{"type":"string","description":"Solution Instance Name.\n"}},"requiredInputs":["solutionId"],"stateInputs":{"description":"Input properties used for looking up and filtering SolutionInstance resources.\n","properties":{"createTime":{"type":"string","description":"Solution Instance Creation Time.\n"},"description":{"type":"string","description":"Solution Instance Description.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:ebs/SolutionInstanceParameter:SolutionInstanceParameter"},"description":"Solution Instance Creation Parameters. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"solutionId":{"type":"string","description":"Solution ID.\n","willReplaceOnChanges":true},"solutionInstanceName":{"type":"string","description":"Solution Instance Name.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object"}},"alicloud:eci/containerGroup:ContainerGroup":{"description":"Provides ECI Container Group resource.\n\nFor information about ECI Container Group and how to use it, see [What is Container Group](https://www.alibabacloud.com/help/en/elastic-container-instance/latest/api-eci-2018-08-08-createcontainergroup).\n\n\u003e **NOTE:** Available since v1.111.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.eci.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.0.0.0/8\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.1.0.0/16\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.zoneIds?.[0]),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultContainerGroup = new alicloud.eci.ContainerGroup(\"default\", {\n    containerGroupName: name,\n    cpu: 8,\n    memory: 16,\n    restartPolicy: \"OnFailure\",\n    securityGroupId: defaultSecurityGroup.id,\n    vswitchId: defaultSwitch.id,\n    autoCreateEip: true,\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    containers: [{\n        image: \"registry.cn-beijing.aliyuncs.com/eci_open/nginx:alpine\",\n        name: \"nginx\",\n        workingDir: \"/tmp/nginx\",\n        imagePullPolicy: \"IfNotPresent\",\n        commands: [\n            \"/bin/sh\",\n            \"-c\",\n            \"sleep 9999\",\n        ],\n        volumeMounts: [{\n            mountPath: \"/tmp/example\",\n            readOnly: false,\n            name: \"empty1\",\n        }],\n        ports: [{\n            port: 80,\n            protocol: \"TCP\",\n        }],\n        environmentVars: [{\n            key: \"name\",\n            value: \"nginx\",\n        }],\n        livenessProbes: [{\n            periodSeconds: 5,\n            initialDelaySeconds: 5,\n            successThreshold: 1,\n            failureThreshold: 3,\n            timeoutSeconds: 1,\n            execs: [{\n                commands: [\"cat /tmp/healthy\"],\n            }],\n        }],\n        readinessProbes: [{\n            periodSeconds: 5,\n            initialDelaySeconds: 5,\n            successThreshold: 1,\n            failureThreshold: 3,\n            timeoutSeconds: 1,\n            execs: [{\n                commands: [\"cat /tmp/healthy\"],\n            }],\n        }],\n    }],\n    initContainers: [{\n        name: \"init-busybox\",\n        image: \"registry.cn-beijing.aliyuncs.com/eci_open/busybox:1.30\",\n        imagePullPolicy: \"IfNotPresent\",\n        commands: [\"echo\"],\n        args: [\"hello initcontainer\"],\n    }],\n    volumes: [\n        {\n            name: \"empty1\",\n            type: \"EmptyDirVolume\",\n        },\n        {\n            name: \"empty2\",\n            type: \"EmptyDirVolume\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.eci.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.0.0.0/8\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.1.0.0/16\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].zone_ids[0])\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_container_group = alicloud.eci.ContainerGroup(\"default\",\n    container_group_name=name,\n    cpu=8,\n    memory=16,\n    restart_policy=\"OnFailure\",\n    security_group_id=default_security_group.id,\n    vswitch_id=default_switch.id,\n    auto_create_eip=True,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    containers=[{\n        \"image\": \"registry.cn-beijing.aliyuncs.com/eci_open/nginx:alpine\",\n        \"name\": \"nginx\",\n        \"working_dir\": \"/tmp/nginx\",\n        \"image_pull_policy\": \"IfNotPresent\",\n        \"commands\": [\n            \"/bin/sh\",\n            \"-c\",\n            \"sleep 9999\",\n        ],\n        \"volume_mounts\": [{\n            \"mount_path\": \"/tmp/example\",\n            \"read_only\": False,\n            \"name\": \"empty1\",\n        }],\n        \"ports\": [{\n            \"port\": 80,\n            \"protocol\": \"TCP\",\n        }],\n        \"environment_vars\": [{\n            \"key\": \"name\",\n            \"value\": \"nginx\",\n        }],\n        \"liveness_probes\": [{\n            \"period_seconds\": 5,\n            \"initial_delay_seconds\": 5,\n            \"success_threshold\": 1,\n            \"failure_threshold\": 3,\n            \"timeout_seconds\": 1,\n            \"execs\": [{\n                \"commands\": [\"cat /tmp/healthy\"],\n            }],\n        }],\n        \"readiness_probes\": [{\n            \"period_seconds\": 5,\n            \"initial_delay_seconds\": 5,\n            \"success_threshold\": 1,\n            \"failure_threshold\": 3,\n            \"timeout_seconds\": 1,\n            \"execs\": [{\n                \"commands\": [\"cat /tmp/healthy\"],\n            }],\n        }],\n    }],\n    init_containers=[{\n        \"name\": \"init-busybox\",\n        \"image\": \"registry.cn-beijing.aliyuncs.com/eci_open/busybox:1.30\",\n        \"image_pull_policy\": \"IfNotPresent\",\n        \"commands\": [\"echo\"],\n        \"args\": [\"hello initcontainer\"],\n    }],\n    volumes=[\n        {\n            \"name\": \"empty1\",\n            \"type\": \"EmptyDirVolume\",\n        },\n        {\n            \"name\": \"empty2\",\n            \"type\": \"EmptyDirVolume\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Eci.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.1.0.0/16\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.ZoneIds[0])),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultContainerGroup = new AliCloud.Eci.ContainerGroup(\"default\", new()\n    {\n        ContainerGroupName = name,\n        Cpu = 8,\n        Memory = 16,\n        RestartPolicy = \"OnFailure\",\n        SecurityGroupId = defaultSecurityGroup.Id,\n        VswitchId = defaultSwitch.Id,\n        AutoCreateEip = true,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        Containers = new[]\n        {\n            new AliCloud.Eci.Inputs.ContainerGroupContainerArgs\n            {\n                Image = \"registry.cn-beijing.aliyuncs.com/eci_open/nginx:alpine\",\n                Name = \"nginx\",\n                WorkingDir = \"/tmp/nginx\",\n                ImagePullPolicy = \"IfNotPresent\",\n                Commands = new[]\n                {\n                    \"/bin/sh\",\n                    \"-c\",\n                    \"sleep 9999\",\n                },\n                VolumeMounts = new[]\n                {\n                    new AliCloud.Eci.Inputs.ContainerGroupContainerVolumeMountArgs\n                    {\n                        MountPath = \"/tmp/example\",\n                        ReadOnly = false,\n                        Name = \"empty1\",\n                    },\n                },\n                Ports = new[]\n                {\n                    new AliCloud.Eci.Inputs.ContainerGroupContainerPortArgs\n                    {\n                        Port = 80,\n                        Protocol = \"TCP\",\n                    },\n                },\n                EnvironmentVars = new[]\n                {\n                    new AliCloud.Eci.Inputs.ContainerGroupContainerEnvironmentVarArgs\n                    {\n                        Key = \"name\",\n                        Value = \"nginx\",\n                    },\n                },\n                LivenessProbes = new[]\n                {\n                    new AliCloud.Eci.Inputs.ContainerGroupContainerLivenessProbeArgs\n                    {\n                        PeriodSeconds = 5,\n                        InitialDelaySeconds = 5,\n                        SuccessThreshold = 1,\n                        FailureThreshold = 3,\n                        TimeoutSeconds = 1,\n                        Execs = new[]\n                        {\n                            new AliCloud.Eci.Inputs.ContainerGroupContainerLivenessProbeExecArgs\n                            {\n                                Commands = new[]\n                                {\n                                    \"cat /tmp/healthy\",\n                                },\n                            },\n                        },\n                    },\n                },\n                ReadinessProbes = new[]\n                {\n                    new AliCloud.Eci.Inputs.ContainerGroupContainerReadinessProbeArgs\n                    {\n                        PeriodSeconds = 5,\n                        InitialDelaySeconds = 5,\n                        SuccessThreshold = 1,\n                        FailureThreshold = 3,\n                        TimeoutSeconds = 1,\n                        Execs = new[]\n                        {\n                            new AliCloud.Eci.Inputs.ContainerGroupContainerReadinessProbeExecArgs\n                            {\n                                Commands = new[]\n                                {\n                                    \"cat /tmp/healthy\",\n                                },\n                            },\n                        },\n                    },\n                },\n            },\n        },\n        InitContainers = new[]\n        {\n            new AliCloud.Eci.Inputs.ContainerGroupInitContainerArgs\n            {\n                Name = \"init-busybox\",\n                Image = \"registry.cn-beijing.aliyuncs.com/eci_open/busybox:1.30\",\n                ImagePullPolicy = \"IfNotPresent\",\n                Commands = new[]\n                {\n                    \"echo\",\n                },\n                Args = new[]\n                {\n                    \"hello initcontainer\",\n                },\n            },\n        },\n        Volumes = new[]\n        {\n            new AliCloud.Eci.Inputs.ContainerGroupVolumeArgs\n            {\n                Name = \"empty1\",\n                Type = \"EmptyDirVolume\",\n            },\n            new AliCloud.Eci.Inputs.ContainerGroupVolumeArgs\n            {\n                Name = \"empty2\",\n                Type = \"EmptyDirVolume\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eci\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := eci.GetZones(ctx, \u0026eci.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.1.0.0/16\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].ZoneIds[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eci.NewContainerGroup(ctx, \"default\", \u0026eci.ContainerGroupArgs{\n\t\t\tContainerGroupName: pulumi.String(name),\n\t\t\tCpu:                pulumi.Float64(8),\n\t\t\tMemory:             pulumi.Float64(16),\n\t\t\tRestartPolicy:      pulumi.String(\"OnFailure\"),\n\t\t\tSecurityGroupId:    defaultSecurityGroup.ID(),\n\t\t\tVswitchId:          defaultSwitch.ID(),\n\t\t\tAutoCreateEip:      pulumi.Bool(true),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tContainers: eci.ContainerGroupContainerArray{\n\t\t\t\t\u0026eci.ContainerGroupContainerArgs{\n\t\t\t\t\tImage:           pulumi.String(\"registry.cn-beijing.aliyuncs.com/eci_open/nginx:alpine\"),\n\t\t\t\t\tName:            pulumi.String(\"nginx\"),\n\t\t\t\t\tWorkingDir:      pulumi.String(\"/tmp/nginx\"),\n\t\t\t\t\tImagePullPolicy: pulumi.String(\"IfNotPresent\"),\n\t\t\t\t\tCommands: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"/bin/sh\"),\n\t\t\t\t\t\tpulumi.String(\"-c\"),\n\t\t\t\t\t\tpulumi.String(\"sleep 9999\"),\n\t\t\t\t\t},\n\t\t\t\t\tVolumeMounts: eci.ContainerGroupContainerVolumeMountArray{\n\t\t\t\t\t\t\u0026eci.ContainerGroupContainerVolumeMountArgs{\n\t\t\t\t\t\t\tMountPath: pulumi.String(\"/tmp/example\"),\n\t\t\t\t\t\t\tReadOnly:  pulumi.Bool(false),\n\t\t\t\t\t\t\tName:      pulumi.String(\"empty1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tPorts: eci.ContainerGroupContainerPortArray{\n\t\t\t\t\t\t\u0026eci.ContainerGroupContainerPortArgs{\n\t\t\t\t\t\t\tPort:     pulumi.Int(80),\n\t\t\t\t\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tEnvironmentVars: eci.ContainerGroupContainerEnvironmentVarArray{\n\t\t\t\t\t\t\u0026eci.ContainerGroupContainerEnvironmentVarArgs{\n\t\t\t\t\t\t\tKey:   pulumi.String(\"name\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"nginx\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tLivenessProbes: eci.ContainerGroupContainerLivenessProbeArray{\n\t\t\t\t\t\t\u0026eci.ContainerGroupContainerLivenessProbeArgs{\n\t\t\t\t\t\t\tPeriodSeconds:       pulumi.Int(5),\n\t\t\t\t\t\t\tInitialDelaySeconds: pulumi.Int(5),\n\t\t\t\t\t\t\tSuccessThreshold:    pulumi.Int(1),\n\t\t\t\t\t\t\tFailureThreshold:    pulumi.Int(3),\n\t\t\t\t\t\t\tTimeoutSeconds:      pulumi.Int(1),\n\t\t\t\t\t\t\tExecs: eci.ContainerGroupContainerLivenessProbeExecArray{\n\t\t\t\t\t\t\t\t\u0026eci.ContainerGroupContainerLivenessProbeExecArgs{\n\t\t\t\t\t\t\t\t\tCommands: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"cat /tmp/healthy\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tReadinessProbes: eci.ContainerGroupContainerReadinessProbeArray{\n\t\t\t\t\t\t\u0026eci.ContainerGroupContainerReadinessProbeArgs{\n\t\t\t\t\t\t\tPeriodSeconds:       pulumi.Int(5),\n\t\t\t\t\t\t\tInitialDelaySeconds: pulumi.Int(5),\n\t\t\t\t\t\t\tSuccessThreshold:    pulumi.Int(1),\n\t\t\t\t\t\t\tFailureThreshold:    pulumi.Int(3),\n\t\t\t\t\t\t\tTimeoutSeconds:      pulumi.Int(1),\n\t\t\t\t\t\t\tExecs: eci.ContainerGroupContainerReadinessProbeExecArray{\n\t\t\t\t\t\t\t\t\u0026eci.ContainerGroupContainerReadinessProbeExecArgs{\n\t\t\t\t\t\t\t\t\tCommands: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"cat /tmp/healthy\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInitContainers: eci.ContainerGroupInitContainerArray{\n\t\t\t\t\u0026eci.ContainerGroupInitContainerArgs{\n\t\t\t\t\tName:            pulumi.String(\"init-busybox\"),\n\t\t\t\t\tImage:           pulumi.String(\"registry.cn-beijing.aliyuncs.com/eci_open/busybox:1.30\"),\n\t\t\t\t\tImagePullPolicy: pulumi.String(\"IfNotPresent\"),\n\t\t\t\t\tCommands: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"echo\"),\n\t\t\t\t\t},\n\t\t\t\t\tArgs: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"hello initcontainer\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tVolumes: eci.ContainerGroupVolumeArray{\n\t\t\t\t\u0026eci.ContainerGroupVolumeArgs{\n\t\t\t\t\tName: pulumi.String(\"empty1\"),\n\t\t\t\t\tType: pulumi.String(\"EmptyDirVolume\"),\n\t\t\t\t},\n\t\t\t\t\u0026eci.ContainerGroupVolumeArgs{\n\t\t\t\t\tName: pulumi.String(\"empty2\"),\n\t\t\t\t\tType: pulumi.String(\"EmptyDirVolume\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eci.EciFunctions;\nimport com.pulumi.alicloud.eci.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.eci.ContainerGroup;\nimport com.pulumi.alicloud.eci.ContainerGroupArgs;\nimport com.pulumi.alicloud.eci.inputs.ContainerGroupContainerArgs;\nimport com.pulumi.alicloud.eci.inputs.ContainerGroupInitContainerArgs;\nimport com.pulumi.alicloud.eci.inputs.ContainerGroupVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = EciFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.1.0.0/16\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].zoneIds()[0])\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultContainerGroup = new ContainerGroup(\"defaultContainerGroup\", ContainerGroupArgs.builder()\n            .containerGroupName(name)\n            .cpu(8.0)\n            .memory(16.0)\n            .restartPolicy(\"OnFailure\")\n            .securityGroupId(defaultSecurityGroup.id())\n            .vswitchId(defaultSwitch.id())\n            .autoCreateEip(true)\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .containers(ContainerGroupContainerArgs.builder()\n                .image(\"registry.cn-beijing.aliyuncs.com/eci_open/nginx:alpine\")\n                .name(\"nginx\")\n                .workingDir(\"/tmp/nginx\")\n                .imagePullPolicy(\"IfNotPresent\")\n                .commands(                \n                    \"/bin/sh\",\n                    \"-c\",\n                    \"sleep 9999\")\n                .volumeMounts(ContainerGroupContainerVolumeMountArgs.builder()\n                    .mountPath(\"/tmp/example\")\n                    .readOnly(false)\n                    .name(\"empty1\")\n                    .build())\n                .ports(ContainerGroupContainerPortArgs.builder()\n                    .port(80)\n                    .protocol(\"TCP\")\n                    .build())\n                .environmentVars(ContainerGroupContainerEnvironmentVarArgs.builder()\n                    .key(\"name\")\n                    .value(\"nginx\")\n                    .build())\n                .livenessProbes(ContainerGroupContainerLivenessProbeArgs.builder()\n                    .periodSeconds(5)\n                    .initialDelaySeconds(5)\n                    .successThreshold(1)\n                    .failureThreshold(3)\n                    .timeoutSeconds(1)\n                    .execs(ContainerGroupContainerLivenessProbeExecArgs.builder()\n                        .commands(\"cat /tmp/healthy\")\n                        .build())\n                    .build())\n                .readinessProbes(ContainerGroupContainerReadinessProbeArgs.builder()\n                    .periodSeconds(5)\n                    .initialDelaySeconds(5)\n                    .successThreshold(1)\n                    .failureThreshold(3)\n                    .timeoutSeconds(1)\n                    .execs(ContainerGroupContainerReadinessProbeExecArgs.builder()\n                        .commands(\"cat /tmp/healthy\")\n                        .build())\n                    .build())\n                .build())\n            .initContainers(ContainerGroupInitContainerArgs.builder()\n                .name(\"init-busybox\")\n                .image(\"registry.cn-beijing.aliyuncs.com/eci_open/busybox:1.30\")\n                .imagePullPolicy(\"IfNotPresent\")\n                .commands(\"echo\")\n                .args(\"hello initcontainer\")\n                .build())\n            .volumes(            \n                ContainerGroupVolumeArgs.builder()\n                    .name(\"empty1\")\n                    .type(\"EmptyDirVolume\")\n                    .build(),\n                ContainerGroupVolumeArgs.builder()\n                    .name(\"empty2\")\n                    .type(\"EmptyDirVolume\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.0.0.0/8\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.1.0.0/16\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].zoneIds[0]}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultContainerGroup:\n    type: alicloud:eci:ContainerGroup\n    name: default\n    properties:\n      containerGroupName: ${name}\n      cpu: 8\n      memory: 16\n      restartPolicy: OnFailure\n      securityGroupId: ${defaultSecurityGroup.id}\n      vswitchId: ${defaultSwitch.id}\n      autoCreateEip: true\n      tags:\n        Created: TF\n        For: example\n      containers:\n        - image: registry.cn-beijing.aliyuncs.com/eci_open/nginx:alpine\n          name: nginx\n          workingDir: /tmp/nginx\n          imagePullPolicy: IfNotPresent\n          commands:\n            - /bin/sh\n            - -c\n            - sleep 9999\n          volumeMounts:\n            - mountPath: /tmp/example\n              readOnly: false\n              name: empty1\n          ports:\n            - port: 80\n              protocol: TCP\n          environmentVars:\n            - key: name\n              value: nginx\n          livenessProbes:\n            - periodSeconds: '5'\n              initialDelaySeconds: '5'\n              successThreshold: '1'\n              failureThreshold: '3'\n              timeoutSeconds: '1'\n              execs:\n                - commands:\n                    - cat /tmp/healthy\n          readinessProbes:\n            - periodSeconds: '5'\n              initialDelaySeconds: '5'\n              successThreshold: '1'\n              failureThreshold: '3'\n              timeoutSeconds: '1'\n              execs:\n                - commands:\n                    - cat /tmp/healthy\n      initContainers:\n        - name: init-busybox\n          image: registry.cn-beijing.aliyuncs.com/eci_open/busybox:1.30\n          imagePullPolicy: IfNotPresent\n          commands:\n            - echo\n          args:\n            - hello initcontainer\n      volumes:\n        - name: empty1\n          type: EmptyDirVolume\n        - name: empty2\n          type: EmptyDirVolume\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eci:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECI Container Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eci/containerGroup:ContainerGroup example \u003ccontainer_group_id\u003e\n```\n\n","properties":{"acrRegistryInfos":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupAcrRegistryInfo:ContainerGroupAcrRegistryInfo"},"description":"The ACR enterprise edition example properties. See \u003cspan pulumi-lang-nodejs=\"`acrRegistryInfo`\" pulumi-lang-dotnet=\"`AcrRegistryInfo`\" pulumi-lang-go=\"`acrRegistryInfo`\" pulumi-lang-python=\"`acr_registry_info`\" pulumi-lang-yaml=\"`acrRegistryInfo`\" pulumi-lang-java=\"`acrRegistryInfo`\"\u003e`acr_registry_info`\u003c/span\u003e below.\n"},"autoCreateEip":{"type":"boolean","description":"Specifies whether to automatically create an EIP and bind the EIP to the elastic container instance.\n"},"autoMatchImageCache":{"type":"boolean","description":"Specifies whether to automatically match the image cache. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"containerGroupName":{"type":"string","description":"The name of the container group.\n"},"containers":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainer:ContainerGroupContainer"},"description":"The list of containers. See \u003cspan pulumi-lang-nodejs=\"`containers`\" pulumi-lang-dotnet=\"`Containers`\" pulumi-lang-go=\"`containers`\" pulumi-lang-python=\"`containers`\" pulumi-lang-yaml=\"`containers`\" pulumi-lang-java=\"`containers`\"\u003e`containers`\u003c/span\u003e below.\n"},"cpu":{"type":"number","description":"The amount of CPU resources allocated to the container group.\n"},"dnsConfig":{"$ref":"#/types/alicloud:eci/ContainerGroupDnsConfig:ContainerGroupDnsConfig","description":"The structure of dnsConfig. See \u003cspan pulumi-lang-nodejs=\"`dnsConfig`\" pulumi-lang-dotnet=\"`DnsConfig`\" pulumi-lang-go=\"`dnsConfig`\" pulumi-lang-python=\"`dns_config`\" pulumi-lang-yaml=\"`dnsConfig`\" pulumi-lang-java=\"`dnsConfig`\"\u003e`dns_config`\u003c/span\u003e below.\n"},"dnsPolicy":{"type":"string","description":"The policy of DNS. Default value: `Default`. Valid values: `Default` and `None`.\n"},"eipBandwidth":{"type":"integer","description":"The bandwidth of the EIP. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"eipInstanceId":{"type":"string","description":"The ID of the elastic IP address (EIP).\n"},"ephemeralStorage":{"type":"integer","description":"The size of the temporary storage space to add. Unit: GiB.\n"},"hostAliases":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupHostAlias:ContainerGroupHostAlias"},"description":"HostAliases. See \u003cspan pulumi-lang-nodejs=\"`hostAliases`\" pulumi-lang-dotnet=\"`HostAliases`\" pulumi-lang-go=\"`hostAliases`\" pulumi-lang-python=\"`host_aliases`\" pulumi-lang-yaml=\"`hostAliases`\" pulumi-lang-java=\"`hostAliases`\"\u003e`host_aliases`\u003c/span\u003e below.\n"},"imageRegistryCredentials":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupImageRegistryCredential:ContainerGroupImageRegistryCredential"},"description":"The image registry credential. See \u003cspan pulumi-lang-nodejs=\"`imageRegistryCredential`\" pulumi-lang-dotnet=\"`ImageRegistryCredential`\" pulumi-lang-go=\"`imageRegistryCredential`\" pulumi-lang-python=\"`image_registry_credential`\" pulumi-lang-yaml=\"`imageRegistryCredential`\" pulumi-lang-java=\"`imageRegistryCredential`\"\u003e`image_registry_credential`\u003c/span\u003e below.\n"},"initContainers":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupInitContainer:ContainerGroupInitContainer"},"description":"The list of initContainers. See \u003cspan pulumi-lang-nodejs=\"`initContainers`\" pulumi-lang-dotnet=\"`InitContainers`\" pulumi-lang-go=\"`initContainers`\" pulumi-lang-python=\"`init_containers`\" pulumi-lang-yaml=\"`initContainers`\" pulumi-lang-java=\"`initContainers`\"\u003e`init_containers`\u003c/span\u003e below.\n"},"insecureRegistry":{"type":"string","description":"The address of the self-built mirror warehouse. When creating an image cache using an image in a self-built image repository with a self-signed certificate, you need to configure this parameter to skip certificate authentication to avoid image pull failure due to certificate authentication failure.\n"},"instanceType":{"type":"string","description":"The type of the ECS instance.\n"},"internetIp":{"type":"string","description":"(Available since v1.170.0) The Public IP of the container group.\n"},"intranetIp":{"type":"string","description":"(Available since v1.170.0) The Private IP of the container group.\n"},"memory":{"type":"number","description":"The amount of memory resources allocated to the container group.\n"},"plainHttpRegistry":{"type":"string","description":"The address of the self-built mirror warehouse. When creating an image cache from an image in a self-built image repository using the HTTP protocol, you need to configure this parameter so that the ECI uses the HTTP protocol to pull the image to avoid image pull failure due to different protocols.\n"},"ramRoleName":{"type":"string","description":"The RAM role that the container group assumes. ECI and ECS share the same RAM role.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **NOTE:** From version 1.208.0, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e can be modified.\n"},"restartPolicy":{"type":"string","description":"The restart policy of the container group. Valid values: `Always`, `Never`, `OnFailure`.\n"},"securityContext":{"$ref":"#/types/alicloud:eci/ContainerGroupSecurityContext:ContainerGroupSecurityContext","description":"The security context of the container group. See \u003cspan pulumi-lang-nodejs=\"`securityContext`\" pulumi-lang-dotnet=\"`SecurityContext`\" pulumi-lang-go=\"`securityContext`\" pulumi-lang-python=\"`security_context`\" pulumi-lang-yaml=\"`securityContext`\" pulumi-lang-java=\"`securityContext`\"\u003e`security_context`\u003c/span\u003e below.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group to which the container group belongs. Container groups within the same security group can access each other.\n"},"spotPriceLimit":{"type":"number","description":"The maximum hourly price of the ECI spot instance.\n"},"spotStrategy":{"type":"string","description":"Filter the results by ECI spot type. Valid values: `NoSpot`, `SpotWithPriceLimit` and `SpotAsPriceGo`. Default to `NoSpot`.\n"},"status":{"type":"string","description":"The status of container group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"terminationGracePeriodSeconds":{"type":"integer","description":"The buffer time during which the program handles operations before the program stops. Unit: seconds.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupVolume:ContainerGroupVolume"},"description":"The list of volumes. See \u003cspan pulumi-lang-nodejs=\"`volumes`\" pulumi-lang-dotnet=\"`Volumes`\" pulumi-lang-go=\"`volumes`\" pulumi-lang-python=\"`volumes`\" pulumi-lang-yaml=\"`volumes`\" pulumi-lang-java=\"`volumes`\"\u003e`volumes`\u003c/span\u003e below.\n"},"vswitchId":{"type":"string","description":"The ID of the VSwitch. Currently, container groups can only be deployed in VPC networks. The number of IP addresses in the VSwitch CIDR block determines the maximum number of container groups that can be created in the VSwitch. Before you can create an ECI instance, plan the CIDR block of the VSwitch.\n**NOTE:** From version 1.208.0, You can specify up to 10 \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e. Separate multiple vSwitch IDs with commas (,), such as vsw-***,vsw-***.  attribute \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e updating diff will be ignored when you set multiple vSwitchIds, there is only one valid \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e exists in the set vSwitchIds.\n"},"zoneId":{"type":"string","description":"The ID of the zone where you want to deploy the container group. If no value is specified, the system assigns a zone to the container group. By default, no value is specified.\n"}},"required":["autoMatchImageCache","containerGroupName","containers","cpu","dnsPolicy","instanceType","internetIp","intranetIp","memory","resourceGroupId","restartPolicy","securityGroupId","spotPriceLimit","spotStrategy","status","vswitchId","zoneId"],"inputProperties":{"acrRegistryInfos":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupAcrRegistryInfo:ContainerGroupAcrRegistryInfo"},"description":"The ACR enterprise edition example properties. See \u003cspan pulumi-lang-nodejs=\"`acrRegistryInfo`\" pulumi-lang-dotnet=\"`AcrRegistryInfo`\" pulumi-lang-go=\"`acrRegistryInfo`\" pulumi-lang-python=\"`acr_registry_info`\" pulumi-lang-yaml=\"`acrRegistryInfo`\" pulumi-lang-java=\"`acrRegistryInfo`\"\u003e`acr_registry_info`\u003c/span\u003e below.\n"},"autoCreateEip":{"type":"boolean","description":"Specifies whether to automatically create an EIP and bind the EIP to the elastic container instance.\n"},"autoMatchImageCache":{"type":"boolean","description":"Specifies whether to automatically match the image cache. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"containerGroupName":{"type":"string","description":"The name of the container group.\n","willReplaceOnChanges":true},"containers":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainer:ContainerGroupContainer"},"description":"The list of containers. See \u003cspan pulumi-lang-nodejs=\"`containers`\" pulumi-lang-dotnet=\"`Containers`\" pulumi-lang-go=\"`containers`\" pulumi-lang-python=\"`containers`\" pulumi-lang-yaml=\"`containers`\" pulumi-lang-java=\"`containers`\"\u003e`containers`\u003c/span\u003e below.\n"},"cpu":{"type":"number","description":"The amount of CPU resources allocated to the container group.\n","willReplaceOnChanges":true},"dnsConfig":{"$ref":"#/types/alicloud:eci/ContainerGroupDnsConfig:ContainerGroupDnsConfig","description":"The structure of dnsConfig. See \u003cspan pulumi-lang-nodejs=\"`dnsConfig`\" pulumi-lang-dotnet=\"`DnsConfig`\" pulumi-lang-go=\"`dnsConfig`\" pulumi-lang-python=\"`dns_config`\" pulumi-lang-yaml=\"`dnsConfig`\" pulumi-lang-java=\"`dnsConfig`\"\u003e`dns_config`\u003c/span\u003e below.\n"},"dnsPolicy":{"type":"string","description":"The policy of DNS. Default value: `Default`. Valid values: `Default` and `None`.\n","willReplaceOnChanges":true},"eipBandwidth":{"type":"integer","description":"The bandwidth of the EIP. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"eipInstanceId":{"type":"string","description":"The ID of the elastic IP address (EIP).\n"},"ephemeralStorage":{"type":"integer","description":"The size of the temporary storage space to add. Unit: GiB.\n","willReplaceOnChanges":true},"hostAliases":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupHostAlias:ContainerGroupHostAlias"},"description":"HostAliases. See \u003cspan pulumi-lang-nodejs=\"`hostAliases`\" pulumi-lang-dotnet=\"`HostAliases`\" pulumi-lang-go=\"`hostAliases`\" pulumi-lang-python=\"`host_aliases`\" pulumi-lang-yaml=\"`hostAliases`\" pulumi-lang-java=\"`hostAliases`\"\u003e`host_aliases`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"imageRegistryCredentials":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupImageRegistryCredential:ContainerGroupImageRegistryCredential"},"description":"The image registry credential. See \u003cspan pulumi-lang-nodejs=\"`imageRegistryCredential`\" pulumi-lang-dotnet=\"`ImageRegistryCredential`\" pulumi-lang-go=\"`imageRegistryCredential`\" pulumi-lang-python=\"`image_registry_credential`\" pulumi-lang-yaml=\"`imageRegistryCredential`\" pulumi-lang-java=\"`imageRegistryCredential`\"\u003e`image_registry_credential`\u003c/span\u003e below.\n"},"initContainers":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupInitContainer:ContainerGroupInitContainer"},"description":"The list of initContainers. See \u003cspan pulumi-lang-nodejs=\"`initContainers`\" pulumi-lang-dotnet=\"`InitContainers`\" pulumi-lang-go=\"`initContainers`\" pulumi-lang-python=\"`init_containers`\" pulumi-lang-yaml=\"`initContainers`\" pulumi-lang-java=\"`initContainers`\"\u003e`init_containers`\u003c/span\u003e below.\n"},"insecureRegistry":{"type":"string","description":"The address of the self-built mirror warehouse. When creating an image cache using an image in a self-built image repository with a self-signed certificate, you need to configure this parameter to skip certificate authentication to avoid image pull failure due to certificate authentication failure.\n"},"instanceType":{"type":"string","description":"The type of the ECS instance.\n","willReplaceOnChanges":true},"memory":{"type":"number","description":"The amount of memory resources allocated to the container group.\n","willReplaceOnChanges":true},"plainHttpRegistry":{"type":"string","description":"The address of the self-built mirror warehouse. When creating an image cache from an image in a self-built image repository using the HTTP protocol, you need to configure this parameter so that the ECI uses the HTTP protocol to pull the image to avoid image pull failure due to different protocols.\n"},"ramRoleName":{"type":"string","description":"The RAM role that the container group assumes. ECI and ECS share the same RAM role.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **NOTE:** From version 1.208.0, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e can be modified.\n"},"restartPolicy":{"type":"string","description":"The restart policy of the container group. Valid values: `Always`, `Never`, `OnFailure`.\n"},"securityContext":{"$ref":"#/types/alicloud:eci/ContainerGroupSecurityContext:ContainerGroupSecurityContext","description":"The security context of the container group. See \u003cspan pulumi-lang-nodejs=\"`securityContext`\" pulumi-lang-dotnet=\"`SecurityContext`\" pulumi-lang-go=\"`securityContext`\" pulumi-lang-python=\"`security_context`\" pulumi-lang-yaml=\"`securityContext`\" pulumi-lang-java=\"`securityContext`\"\u003e`security_context`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group to which the container group belongs. Container groups within the same security group can access each other.\n","willReplaceOnChanges":true},"spotPriceLimit":{"type":"number","description":"The maximum hourly price of the ECI spot instance.\n","willReplaceOnChanges":true},"spotStrategy":{"type":"string","description":"Filter the results by ECI spot type. Valid values: `NoSpot`, `SpotWithPriceLimit` and `SpotAsPriceGo`. Default to `NoSpot`.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"terminationGracePeriodSeconds":{"type":"integer","description":"The buffer time during which the program handles operations before the program stops. Unit: seconds.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupVolume:ContainerGroupVolume"},"description":"The list of volumes. See \u003cspan pulumi-lang-nodejs=\"`volumes`\" pulumi-lang-dotnet=\"`Volumes`\" pulumi-lang-go=\"`volumes`\" pulumi-lang-python=\"`volumes`\" pulumi-lang-yaml=\"`volumes`\" pulumi-lang-java=\"`volumes`\"\u003e`volumes`\u003c/span\u003e below.\n"},"vswitchId":{"type":"string","description":"The ID of the VSwitch. Currently, container groups can only be deployed in VPC networks. The number of IP addresses in the VSwitch CIDR block determines the maximum number of container groups that can be created in the VSwitch. Before you can create an ECI instance, plan the CIDR block of the VSwitch.\n**NOTE:** From version 1.208.0, You can specify up to 10 \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e. Separate multiple vSwitch IDs with commas (,), such as vsw-***,vsw-***.  attribute \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e updating diff will be ignored when you set multiple vSwitchIds, there is only one valid \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e exists in the set vSwitchIds.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The ID of the zone where you want to deploy the container group. If no value is specified, the system assigns a zone to the container group. By default, no value is specified.\n","willReplaceOnChanges":true}},"requiredInputs":["containerGroupName","containers","securityGroupId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering ContainerGroup resources.\n","properties":{"acrRegistryInfos":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupAcrRegistryInfo:ContainerGroupAcrRegistryInfo"},"description":"The ACR enterprise edition example properties. See \u003cspan pulumi-lang-nodejs=\"`acrRegistryInfo`\" pulumi-lang-dotnet=\"`AcrRegistryInfo`\" pulumi-lang-go=\"`acrRegistryInfo`\" pulumi-lang-python=\"`acr_registry_info`\" pulumi-lang-yaml=\"`acrRegistryInfo`\" pulumi-lang-java=\"`acrRegistryInfo`\"\u003e`acr_registry_info`\u003c/span\u003e below.\n"},"autoCreateEip":{"type":"boolean","description":"Specifies whether to automatically create an EIP and bind the EIP to the elastic container instance.\n"},"autoMatchImageCache":{"type":"boolean","description":"Specifies whether to automatically match the image cache. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"containerGroupName":{"type":"string","description":"The name of the container group.\n","willReplaceOnChanges":true},"containers":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupContainer:ContainerGroupContainer"},"description":"The list of containers. See \u003cspan pulumi-lang-nodejs=\"`containers`\" pulumi-lang-dotnet=\"`Containers`\" pulumi-lang-go=\"`containers`\" pulumi-lang-python=\"`containers`\" pulumi-lang-yaml=\"`containers`\" pulumi-lang-java=\"`containers`\"\u003e`containers`\u003c/span\u003e below.\n"},"cpu":{"type":"number","description":"The amount of CPU resources allocated to the container group.\n","willReplaceOnChanges":true},"dnsConfig":{"$ref":"#/types/alicloud:eci/ContainerGroupDnsConfig:ContainerGroupDnsConfig","description":"The structure of dnsConfig. See \u003cspan pulumi-lang-nodejs=\"`dnsConfig`\" pulumi-lang-dotnet=\"`DnsConfig`\" pulumi-lang-go=\"`dnsConfig`\" pulumi-lang-python=\"`dns_config`\" pulumi-lang-yaml=\"`dnsConfig`\" pulumi-lang-java=\"`dnsConfig`\"\u003e`dns_config`\u003c/span\u003e below.\n"},"dnsPolicy":{"type":"string","description":"The policy of DNS. Default value: `Default`. Valid values: `Default` and `None`.\n","willReplaceOnChanges":true},"eipBandwidth":{"type":"integer","description":"The bandwidth of the EIP. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"eipInstanceId":{"type":"string","description":"The ID of the elastic IP address (EIP).\n"},"ephemeralStorage":{"type":"integer","description":"The size of the temporary storage space to add. Unit: GiB.\n","willReplaceOnChanges":true},"hostAliases":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupHostAlias:ContainerGroupHostAlias"},"description":"HostAliases. See \u003cspan pulumi-lang-nodejs=\"`hostAliases`\" pulumi-lang-dotnet=\"`HostAliases`\" pulumi-lang-go=\"`hostAliases`\" pulumi-lang-python=\"`host_aliases`\" pulumi-lang-yaml=\"`hostAliases`\" pulumi-lang-java=\"`hostAliases`\"\u003e`host_aliases`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"imageRegistryCredentials":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupImageRegistryCredential:ContainerGroupImageRegistryCredential"},"description":"The image registry credential. See \u003cspan pulumi-lang-nodejs=\"`imageRegistryCredential`\" pulumi-lang-dotnet=\"`ImageRegistryCredential`\" pulumi-lang-go=\"`imageRegistryCredential`\" pulumi-lang-python=\"`image_registry_credential`\" pulumi-lang-yaml=\"`imageRegistryCredential`\" pulumi-lang-java=\"`imageRegistryCredential`\"\u003e`image_registry_credential`\u003c/span\u003e below.\n"},"initContainers":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupInitContainer:ContainerGroupInitContainer"},"description":"The list of initContainers. See \u003cspan pulumi-lang-nodejs=\"`initContainers`\" pulumi-lang-dotnet=\"`InitContainers`\" pulumi-lang-go=\"`initContainers`\" pulumi-lang-python=\"`init_containers`\" pulumi-lang-yaml=\"`initContainers`\" pulumi-lang-java=\"`initContainers`\"\u003e`init_containers`\u003c/span\u003e below.\n"},"insecureRegistry":{"type":"string","description":"The address of the self-built mirror warehouse. When creating an image cache using an image in a self-built image repository with a self-signed certificate, you need to configure this parameter to skip certificate authentication to avoid image pull failure due to certificate authentication failure.\n"},"instanceType":{"type":"string","description":"The type of the ECS instance.\n","willReplaceOnChanges":true},"internetIp":{"type":"string","description":"(Available since v1.170.0) The Public IP of the container group.\n"},"intranetIp":{"type":"string","description":"(Available since v1.170.0) The Private IP of the container group.\n"},"memory":{"type":"number","description":"The amount of memory resources allocated to the container group.\n","willReplaceOnChanges":true},"plainHttpRegistry":{"type":"string","description":"The address of the self-built mirror warehouse. When creating an image cache from an image in a self-built image repository using the HTTP protocol, you need to configure this parameter so that the ECI uses the HTTP protocol to pull the image to avoid image pull failure due to different protocols.\n"},"ramRoleName":{"type":"string","description":"The RAM role that the container group assumes. ECI and ECS share the same RAM role.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **NOTE:** From version 1.208.0, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e can be modified.\n"},"restartPolicy":{"type":"string","description":"The restart policy of the container group. Valid values: `Always`, `Never`, `OnFailure`.\n"},"securityContext":{"$ref":"#/types/alicloud:eci/ContainerGroupSecurityContext:ContainerGroupSecurityContext","description":"The security context of the container group. See \u003cspan pulumi-lang-nodejs=\"`securityContext`\" pulumi-lang-dotnet=\"`SecurityContext`\" pulumi-lang-go=\"`securityContext`\" pulumi-lang-python=\"`security_context`\" pulumi-lang-yaml=\"`securityContext`\" pulumi-lang-java=\"`securityContext`\"\u003e`security_context`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group to which the container group belongs. Container groups within the same security group can access each other.\n","willReplaceOnChanges":true},"spotPriceLimit":{"type":"number","description":"The maximum hourly price of the ECI spot instance.\n","willReplaceOnChanges":true},"spotStrategy":{"type":"string","description":"Filter the results by ECI spot type. Valid values: `NoSpot`, `SpotWithPriceLimit` and `SpotAsPriceGo`. Default to `NoSpot`.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of container group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"terminationGracePeriodSeconds":{"type":"integer","description":"The buffer time during which the program handles operations before the program stops. Unit: seconds.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ContainerGroupVolume:ContainerGroupVolume"},"description":"The list of volumes. See \u003cspan pulumi-lang-nodejs=\"`volumes`\" pulumi-lang-dotnet=\"`Volumes`\" pulumi-lang-go=\"`volumes`\" pulumi-lang-python=\"`volumes`\" pulumi-lang-yaml=\"`volumes`\" pulumi-lang-java=\"`volumes`\"\u003e`volumes`\u003c/span\u003e below.\n"},"vswitchId":{"type":"string","description":"The ID of the VSwitch. Currently, container groups can only be deployed in VPC networks. The number of IP addresses in the VSwitch CIDR block determines the maximum number of container groups that can be created in the VSwitch. Before you can create an ECI instance, plan the CIDR block of the VSwitch.\n**NOTE:** From version 1.208.0, You can specify up to 10 \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e. Separate multiple vSwitch IDs with commas (,), such as vsw-***,vsw-***.  attribute \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e updating diff will be ignored when you set multiple vSwitchIds, there is only one valid \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e exists in the set vSwitchIds.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The ID of the zone where you want to deploy the container group. If no value is specified, the system assigns a zone to the container group. By default, no value is specified.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:eci/imageCache:ImageCache":{"description":"An ECI Image Cache can help user to solve the time-consuming problem of image pull. For information about Alicloud ECI Image Cache and how to use it, see [What is Resource Alicloud ECI Image Cache](https://www.alibabacloud.com/help/doc-detail/146891.htm).\n\n\u003e **NOTE:** Available since v1.89.0.\n\n\u003e **NOTE:** Each image cache corresponds to a snapshot, and the user does not delete the snapshot directly, otherwise the cache will fail.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.eci.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.0.0.0/8\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.1.0.0/16\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.zoneIds?.[0]),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultEipAddress = new alicloud.ecs.EipAddress(\"default\", {\n    isp: \"BGP\",\n    addressName: name,\n    netmode: \"public\",\n    bandwidth: \"1\",\n    securityProtectionTypes: [\"AntiDDoS_Enhanced\"],\n    paymentType: \"PayAsYouGo\",\n});\nconst defaultGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst defaultImageCache = new alicloud.eci.ImageCache(\"default\", {\n    imageCacheName: name,\n    images: [defaultGetRegions.then(defaultGetRegions =\u003e `registry-vpc.${defaultGetRegions.regions?.[0]?.id}.aliyuncs.com/eci_open/nginx:alpine`)],\n    securityGroupId: defaultSecurityGroup.id,\n    vswitchId: defaultSwitch.id,\n    eipInstanceId: defaultEipAddress.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.eci.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.0.0.0/8\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.1.0.0/16\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].zone_ids[0])\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_eip_address = alicloud.ecs.EipAddress(\"default\",\n    isp=\"BGP\",\n    address_name=name,\n    netmode=\"public\",\n    bandwidth=\"1\",\n    security_protection_types=[\"AntiDDoS_Enhanced\"],\n    payment_type=\"PayAsYouGo\")\ndefault_get_regions = alicloud.get_regions(current=True)\ndefault_image_cache = alicloud.eci.ImageCache(\"default\",\n    image_cache_name=name,\n    images=[f\"registry-vpc.{default_get_regions.regions[0].id}.aliyuncs.com/eci_open/nginx:alpine\"],\n    security_group_id=default_security_group.id,\n    vswitch_id=default_switch.id,\n    eip_instance_id=default_eip_address.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Eci.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.1.0.0/16\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.ZoneIds[0])),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultEipAddress = new AliCloud.Ecs.EipAddress(\"default\", new()\n    {\n        Isp = \"BGP\",\n        AddressName = name,\n        Netmode = \"public\",\n        Bandwidth = \"1\",\n        SecurityProtectionTypes = new[]\n        {\n            \"AntiDDoS_Enhanced\",\n        },\n        PaymentType = \"PayAsYouGo\",\n    });\n\n    var defaultGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultImageCache = new AliCloud.Eci.ImageCache(\"default\", new()\n    {\n        ImageCacheName = name,\n        Images = new[]\n        {\n            $\"registry-vpc.{defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}.aliyuncs.com/eci_open/nginx:alpine\",\n        },\n        SecurityGroupId = defaultSecurityGroup.Id,\n        VswitchId = defaultSwitch.Id,\n        EipInstanceId = defaultEipAddress.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eci\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := eci.GetZones(ctx, \u0026eci.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.1.0.0/16\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].ZoneIds[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEipAddress, err := ecs.NewEipAddress(ctx, \"default\", \u0026ecs.EipAddressArgs{\n\t\t\tIsp:         pulumi.String(\"BGP\"),\n\t\t\tAddressName: pulumi.String(name),\n\t\t\tNetmode:     pulumi.String(\"public\"),\n\t\t\tBandwidth:   pulumi.String(\"1\"),\n\t\t\tSecurityProtectionTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"AntiDDoS_Enhanced\"),\n\t\t\t},\n\t\t\tPaymentType: pulumi.String(\"PayAsYouGo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRegions, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eci.NewImageCache(ctx, \"default\", \u0026eci.ImageCacheArgs{\n\t\t\tImageCacheName: pulumi.String(name),\n\t\t\tImages: pulumi.StringArray{\n\t\t\t\tpulumi.Sprintf(\"registry-vpc.%v.aliyuncs.com/eci_open/nginx:alpine\", defaultGetRegions.Regions[0].Id),\n\t\t\t},\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\tEipInstanceId:   defaultEipAddress.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eci.EciFunctions;\nimport com.pulumi.alicloud.eci.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAddressArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.eci.ImageCache;\nimport com.pulumi.alicloud.eci.ImageCacheArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = EciFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.1.0.0/16\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].zoneIds()[0])\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultEipAddress = new EipAddress(\"defaultEipAddress\", EipAddressArgs.builder()\n            .isp(\"BGP\")\n            .addressName(name)\n            .netmode(\"public\")\n            .bandwidth(\"1\")\n            .securityProtectionTypes(\"AntiDDoS_Enhanced\")\n            .paymentType(\"PayAsYouGo\")\n            .build());\n\n        final var defaultGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultImageCache = new ImageCache(\"defaultImageCache\", ImageCacheArgs.builder()\n            .imageCacheName(name)\n            .images(String.format(\"registry-vpc.%s.aliyuncs.com/eci_open/nginx:alpine\", defaultGetRegions.regions()[0].id()))\n            .securityGroupId(defaultSecurityGroup.id())\n            .vswitchId(defaultSwitch.id())\n            .eipInstanceId(defaultEipAddress.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.0.0.0/8\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.1.0.0/16\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].zoneIds[0]}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultEipAddress:\n    type: alicloud:ecs:EipAddress\n    name: default\n    properties:\n      isp: BGP\n      addressName: ${name}\n      netmode: public\n      bandwidth: '1'\n      securityProtectionTypes:\n        - AntiDDoS_Enhanced\n      paymentType: PayAsYouGo\n  defaultImageCache:\n    type: alicloud:eci:ImageCache\n    name: default\n    properties:\n      imageCacheName: ${name}\n      images:\n        - registry-vpc.${defaultGetRegions.regions[0].id}.aliyuncs.com/eci_open/nginx:alpine\n      securityGroupId: ${defaultSecurityGroup.id}\n      vswitchId: ${defaultSwitch.id}\n      eipInstanceId: ${defaultEipAddress.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eci:getZones\n      arguments: {}\n  defaultGetRegions:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECI Image Cache can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eci/imageCache:ImageCache example abc123456\n```\n\n","properties":{"containerGroupId":{"type":"string","description":"The ID of the container group job that is used to create the image cache.\n"},"eipInstanceId":{"type":"string","description":"The instance ID of the Elastic IP Address (EIP). If you want to pull images from the Internet, you must specify an EIP to make sure that the container group can access the Internet. You can also configure the network address translation (NAT) gateway. We recommend that you configure the NAT gateway for the Internet access. Refer to [Public Network Access Method](https://help.aliyun.com/document_detail/99146.html)\n"},"imageCacheName":{"type":"string","description":"The name of the image cache.\n"},"imageCacheSize":{"type":"integer","description":"The size of the image cache. Default to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e. Unit: GiB.\n"},"imageRegistryCredentials":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ImageCacheImageRegistryCredential:ImageCacheImageRegistryCredential"},"description":"The Image Registry parameters about the image to be cached. See \u003cspan pulumi-lang-nodejs=\"`imageRegistryCredential`\" pulumi-lang-dotnet=\"`ImageRegistryCredential`\" pulumi-lang-go=\"`imageRegistryCredential`\" pulumi-lang-python=\"`image_registry_credential`\" pulumi-lang-yaml=\"`imageRegistryCredential`\" pulumi-lang-java=\"`imageRegistryCredential`\"\u003e`image_registry_credential`\u003c/span\u003e below.\n"},"images":{"type":"array","items":{"type":"string"},"description":"The images to be cached. The image name must be versioned.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"retentionDays":{"type":"integer","description":"The retention days of the image cache. Once the image cache expires, it will be cleared. By default, the image cache never expires. Note: The image cache that fails to be created is retained for only one day.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group. You do not need to specify the same security group as the container group.\n"},"status":{"type":"string","description":"The status of the image cache.\n"},"vswitchId":{"type":"string","description":"The ID of the VSwitch. You do not need to specify the same VSwitch as the container group.\n"},"zoneId":{"type":"string","description":"The zone id to cache image.\n"}},"required":["containerGroupId","imageCacheName","images","securityGroupId","status","vswitchId"],"inputProperties":{"eipInstanceId":{"type":"string","description":"The instance ID of the Elastic IP Address (EIP). If you want to pull images from the Internet, you must specify an EIP to make sure that the container group can access the Internet. You can also configure the network address translation (NAT) gateway. We recommend that you configure the NAT gateway for the Internet access. Refer to [Public Network Access Method](https://help.aliyun.com/document_detail/99146.html)\n","willReplaceOnChanges":true},"imageCacheName":{"type":"string","description":"The name of the image cache.\n","willReplaceOnChanges":true},"imageCacheSize":{"type":"integer","description":"The size of the image cache. Default to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e. Unit: GiB.\n","willReplaceOnChanges":true},"imageRegistryCredentials":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ImageCacheImageRegistryCredential:ImageCacheImageRegistryCredential"},"description":"The Image Registry parameters about the image to be cached. See \u003cspan pulumi-lang-nodejs=\"`imageRegistryCredential`\" pulumi-lang-dotnet=\"`ImageRegistryCredential`\" pulumi-lang-go=\"`imageRegistryCredential`\" pulumi-lang-python=\"`image_registry_credential`\" pulumi-lang-yaml=\"`imageRegistryCredential`\" pulumi-lang-java=\"`imageRegistryCredential`\"\u003e`image_registry_credential`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"images":{"type":"array","items":{"type":"string"},"description":"The images to be cached. The image name must be versioned.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"retentionDays":{"type":"integer","description":"The retention days of the image cache. Once the image cache expires, it will be cleared. By default, the image cache never expires. Note: The image cache that fails to be created is retained for only one day.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group. You do not need to specify the same security group as the container group.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the VSwitch. You do not need to specify the same VSwitch as the container group.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone id to cache image.\n","willReplaceOnChanges":true}},"requiredInputs":["imageCacheName","images","securityGroupId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering ImageCache resources.\n","properties":{"containerGroupId":{"type":"string","description":"The ID of the container group job that is used to create the image cache.\n"},"eipInstanceId":{"type":"string","description":"The instance ID of the Elastic IP Address (EIP). If you want to pull images from the Internet, you must specify an EIP to make sure that the container group can access the Internet. You can also configure the network address translation (NAT) gateway. We recommend that you configure the NAT gateway for the Internet access. Refer to [Public Network Access Method](https://help.aliyun.com/document_detail/99146.html)\n","willReplaceOnChanges":true},"imageCacheName":{"type":"string","description":"The name of the image cache.\n","willReplaceOnChanges":true},"imageCacheSize":{"type":"integer","description":"The size of the image cache. Default to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e. Unit: GiB.\n","willReplaceOnChanges":true},"imageRegistryCredentials":{"type":"array","items":{"$ref":"#/types/alicloud:eci/ImageCacheImageRegistryCredential:ImageCacheImageRegistryCredential"},"description":"The Image Registry parameters about the image to be cached. See \u003cspan pulumi-lang-nodejs=\"`imageRegistryCredential`\" pulumi-lang-dotnet=\"`ImageRegistryCredential`\" pulumi-lang-go=\"`imageRegistryCredential`\" pulumi-lang-python=\"`image_registry_credential`\" pulumi-lang-yaml=\"`imageRegistryCredential`\" pulumi-lang-java=\"`imageRegistryCredential`\"\u003e`image_registry_credential`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"images":{"type":"array","items":{"type":"string"},"description":"The images to be cached. The image name must be versioned.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"retentionDays":{"type":"integer","description":"The retention days of the image cache. Once the image cache expires, it will be cleared. By default, the image cache never expires. Note: The image cache that fails to be created is retained for only one day.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group. You do not need to specify the same security group as the container group.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the image cache.\n"},"vswitchId":{"type":"string","description":"The ID of the VSwitch. You do not need to specify the same VSwitch as the container group.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone id to cache image.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:eci/openApiImageCache:OpenApiImageCache":{"properties":{"containerGroupId":{"type":"string"},"eipInstanceId":{"type":"string"},"imageCacheName":{"type":"string"},"imageCacheSize":{"type":"integer"},"imageRegistryCredentials":{"type":"array","items":{"$ref":"#/types/alicloud:eci/OpenApiImageCacheImageRegistryCredential:OpenApiImageCacheImageRegistryCredential"}},"images":{"type":"array","items":{"type":"string"}},"resourceGroupId":{"type":"string"},"retentionDays":{"type":"integer"},"securityGroupId":{"type":"string"},"status":{"type":"string"},"vswitchId":{"type":"string"},"zoneId":{"type":"string"}},"required":["containerGroupId","imageCacheName","images","securityGroupId","status","vswitchId"],"inputProperties":{"eipInstanceId":{"type":"string","willReplaceOnChanges":true},"imageCacheName":{"type":"string","willReplaceOnChanges":true},"imageCacheSize":{"type":"integer","willReplaceOnChanges":true},"imageRegistryCredentials":{"type":"array","items":{"$ref":"#/types/alicloud:eci/OpenApiImageCacheImageRegistryCredential:OpenApiImageCacheImageRegistryCredential"},"willReplaceOnChanges":true},"images":{"type":"array","items":{"type":"string"},"willReplaceOnChanges":true},"resourceGroupId":{"type":"string","willReplaceOnChanges":true},"retentionDays":{"type":"integer","willReplaceOnChanges":true},"securityGroupId":{"type":"string","willReplaceOnChanges":true},"vswitchId":{"type":"string","willReplaceOnChanges":true},"zoneId":{"type":"string","willReplaceOnChanges":true}},"requiredInputs":["imageCacheName","images","securityGroupId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering OpenApiImageCache resources.\n","properties":{"containerGroupId":{"type":"string"},"eipInstanceId":{"type":"string","willReplaceOnChanges":true},"imageCacheName":{"type":"string","willReplaceOnChanges":true},"imageCacheSize":{"type":"integer","willReplaceOnChanges":true},"imageRegistryCredentials":{"type":"array","items":{"$ref":"#/types/alicloud:eci/OpenApiImageCacheImageRegistryCredential:OpenApiImageCacheImageRegistryCredential"},"willReplaceOnChanges":true},"images":{"type":"array","items":{"type":"string"},"willReplaceOnChanges":true},"resourceGroupId":{"type":"string","willReplaceOnChanges":true},"retentionDays":{"type":"integer","willReplaceOnChanges":true},"securityGroupId":{"type":"string","willReplaceOnChanges":true},"status":{"type":"string"},"vswitchId":{"type":"string","willReplaceOnChanges":true},"zoneId":{"type":"string","willReplaceOnChanges":true}},"type":"object"}},"alicloud:eci/virtualNode:VirtualNode":{"description":"Provides a ECI Virtual Node resource.\n\nFor information about ECI Virtual Node and how to use it, see [What is Virtual Node](https://www.alibabacloud.com/help/en/doc-detail/89129.html).\n\n\u003e **NOTE:** Available since v1.145.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.eci.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.0.0.0/8\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.1.0.0/16\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.zoneIds?.[0]),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultEipAddress = new alicloud.ecs.EipAddress(\"default\", {\n    isp: \"BGP\",\n    addressName: name,\n    netmode: \"public\",\n    bandwidth: \"1\",\n    securityProtectionTypes: [\"AntiDDoS_Enhanced\"],\n    paymentType: \"PayAsYouGo\",\n});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultVirtualNode = new alicloud.eci.VirtualNode(\"default\", {\n    securityGroupId: defaultSecurityGroup.id,\n    virtualNodeName: name,\n    vswitchId: defaultSwitch.id,\n    enablePublicNetwork: false,\n    eipInstanceId: defaultEipAddress.id,\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    kubeConfig: \"kube_config\",\n    tags: {\n        Created: \"TF\",\n    },\n    taints: [{\n        effect: \"NoSchedule\",\n        key: \"TF\",\n        value: \"example\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.eci.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.0.0.0/8\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.1.0.0/16\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].zone_ids[0])\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_eip_address = alicloud.ecs.EipAddress(\"default\",\n    isp=\"BGP\",\n    address_name=name,\n    netmode=\"public\",\n    bandwidth=\"1\",\n    security_protection_types=[\"AntiDDoS_Enhanced\"],\n    payment_type=\"PayAsYouGo\")\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_virtual_node = alicloud.eci.VirtualNode(\"default\",\n    security_group_id=default_security_group.id,\n    virtual_node_name=name,\n    vswitch_id=default_switch.id,\n    enable_public_network=False,\n    eip_instance_id=default_eip_address.id,\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    kube_config=\"kube_config\",\n    tags={\n        \"Created\": \"TF\",\n    },\n    taints=[{\n        \"effect\": \"NoSchedule\",\n        \"key\": \"TF\",\n        \"value\": \"example\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Eci.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.1.0.0/16\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.ZoneIds[0])),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultEipAddress = new AliCloud.Ecs.EipAddress(\"default\", new()\n    {\n        Isp = \"BGP\",\n        AddressName = name,\n        Netmode = \"public\",\n        Bandwidth = \"1\",\n        SecurityProtectionTypes = new[]\n        {\n            \"AntiDDoS_Enhanced\",\n        },\n        PaymentType = \"PayAsYouGo\",\n    });\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultVirtualNode = new AliCloud.Eci.VirtualNode(\"default\", new()\n    {\n        SecurityGroupId = defaultSecurityGroup.Id,\n        VirtualNodeName = name,\n        VswitchId = defaultSwitch.Id,\n        EnablePublicNetwork = false,\n        EipInstanceId = defaultEipAddress.Id,\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        KubeConfig = \"kube_config\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n        Taints = new[]\n        {\n            new AliCloud.Eci.Inputs.VirtualNodeTaintArgs\n            {\n                Effect = \"NoSchedule\",\n                Key = \"TF\",\n                Value = \"example\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eci\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := eci.GetZones(ctx, \u0026eci.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.1.0.0/16\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].ZoneIds[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEipAddress, err := ecs.NewEipAddress(ctx, \"default\", \u0026ecs.EipAddressArgs{\n\t\t\tIsp:         pulumi.String(\"BGP\"),\n\t\t\tAddressName: pulumi.String(name),\n\t\t\tNetmode:     pulumi.String(\"public\"),\n\t\t\tBandwidth:   pulumi.String(\"1\"),\n\t\t\tSecurityProtectionTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"AntiDDoS_Enhanced\"),\n\t\t\t},\n\t\t\tPaymentType: pulumi.String(\"PayAsYouGo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eci.NewVirtualNode(ctx, \"default\", \u0026eci.VirtualNodeArgs{\n\t\t\tSecurityGroupId:     defaultSecurityGroup.ID(),\n\t\t\tVirtualNodeName:     pulumi.String(name),\n\t\t\tVswitchId:           defaultSwitch.ID(),\n\t\t\tEnablePublicNetwork: pulumi.Bool(false),\n\t\t\tEipInstanceId:       defaultEipAddress.ID(),\n\t\t\tResourceGroupId:     pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tKubeConfig:          pulumi.String(\"kube_config\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t\tTaints: eci.VirtualNodeTaintArray{\n\t\t\t\t\u0026eci.VirtualNodeTaintArgs{\n\t\t\t\t\tEffect: pulumi.String(\"NoSchedule\"),\n\t\t\t\t\tKey:    pulumi.String(\"TF\"),\n\t\t\t\t\tValue:  pulumi.String(\"example\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eci.EciFunctions;\nimport com.pulumi.alicloud.eci.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAddressArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.eci.VirtualNode;\nimport com.pulumi.alicloud.eci.VirtualNodeArgs;\nimport com.pulumi.alicloud.eci.inputs.VirtualNodeTaintArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = EciFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.1.0.0/16\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].zoneIds()[0])\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultEipAddress = new EipAddress(\"defaultEipAddress\", EipAddressArgs.builder()\n            .isp(\"BGP\")\n            .addressName(name)\n            .netmode(\"public\")\n            .bandwidth(\"1\")\n            .securityProtectionTypes(\"AntiDDoS_Enhanced\")\n            .paymentType(\"PayAsYouGo\")\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultVirtualNode = new VirtualNode(\"defaultVirtualNode\", VirtualNodeArgs.builder()\n            .securityGroupId(defaultSecurityGroup.id())\n            .virtualNodeName(name)\n            .vswitchId(defaultSwitch.id())\n            .enablePublicNetwork(false)\n            .eipInstanceId(defaultEipAddress.id())\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .kubeConfig(\"kube_config\")\n            .tags(Map.of(\"Created\", \"TF\"))\n            .taints(VirtualNodeTaintArgs.builder()\n                .effect(\"NoSchedule\")\n                .key(\"TF\")\n                .value(\"example\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.0.0.0/8\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.1.0.0/16\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].zoneIds[0]}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultEipAddress:\n    type: alicloud:ecs:EipAddress\n    name: default\n    properties:\n      isp: BGP\n      addressName: ${name}\n      netmode: public\n      bandwidth: '1'\n      securityProtectionTypes:\n        - AntiDDoS_Enhanced\n      paymentType: PayAsYouGo\n  defaultVirtualNode:\n    type: alicloud:eci:VirtualNode\n    name: default\n    properties:\n      securityGroupId: ${defaultSecurityGroup.id}\n      virtualNodeName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      enablePublicNetwork: false\n      eipInstanceId: ${defaultEipAddress.id}\n      resourceGroupId: ${defaultGetResourceGroups.groups[0].id}\n      kubeConfig: kube_config\n      tags:\n        Created: TF\n      taints:\n        - effect: NoSchedule\n          key: TF\n          value: example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eci:getZones\n      arguments: {}\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECI Virtual Node can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eci/virtualNode:VirtualNode example \u003cid\u003e\n```\n\n","properties":{"eipInstanceId":{"type":"string","description":"The Id of eip.\n"},"enablePublicNetwork":{"type":"boolean","description":"Whether to enable public network. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`eipInstanceId`\" pulumi-lang-dotnet=\"`EipInstanceId`\" pulumi-lang-go=\"`eipInstanceId`\" pulumi-lang-python=\"`eip_instance_id`\" pulumi-lang-yaml=\"`eipInstanceId`\" pulumi-lang-java=\"`eipInstanceId`\"\u003e`eip_instance_id`\u003c/span\u003e is not configured and \u003cspan pulumi-lang-nodejs=\"`enablePublicNetwork`\" pulumi-lang-dotnet=\"`EnablePublicNetwork`\" pulumi-lang-go=\"`enablePublicNetwork`\" pulumi-lang-python=\"`enable_public_network`\" pulumi-lang-yaml=\"`enablePublicNetwork`\" pulumi-lang-java=\"`enablePublicNetwork`\"\u003e`enable_public_network`\u003c/span\u003e is true, the system will create an elastic public network IP.\n"},"kubeConfig":{"type":"string","description":"The kube config for the k8s cluster. It needs to be connected after Base64 encoding.\n"},"resourceGroupId":{"type":"string","description":"The resource group ID.\n"},"securityGroupId":{"type":"string","description":"The security group ID.\n"},"status":{"type":"string","description":"The Status of the virtual node. Valid values: `Cleaned`, `Failed`, `Pending`, `Ready`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"taints":{"type":"array","items":{"$ref":"#/types/alicloud:eci/VirtualNodeTaint:VirtualNodeTaint"},"description":"The taint. See \u003cspan pulumi-lang-nodejs=\"`taints`\" pulumi-lang-dotnet=\"`Taints`\" pulumi-lang-go=\"`taints`\" pulumi-lang-python=\"`taints`\" pulumi-lang-yaml=\"`taints`\" pulumi-lang-java=\"`taints`\"\u003e`taints`\u003c/span\u003e below.\n"},"virtualNodeName":{"type":"string","description":"The name of the virtual node. The length of the name is limited to \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters. It can contain uppercase and lowercase letters, Chinese characters, numbers, half-width colon (:), underscores (_), or hyphens (-), and must start with letters.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string","description":"The Zone.\n"}},"required":["eipInstanceId","kubeConfig","securityGroupId","status","vswitchId","zoneId"],"inputProperties":{"eipInstanceId":{"type":"string","description":"The Id of eip.\n","willReplaceOnChanges":true},"enablePublicNetwork":{"type":"boolean","description":"Whether to enable public network. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`eipInstanceId`\" pulumi-lang-dotnet=\"`EipInstanceId`\" pulumi-lang-go=\"`eipInstanceId`\" pulumi-lang-python=\"`eip_instance_id`\" pulumi-lang-yaml=\"`eipInstanceId`\" pulumi-lang-java=\"`eipInstanceId`\"\u003e`eip_instance_id`\u003c/span\u003e is not configured and \u003cspan pulumi-lang-nodejs=\"`enablePublicNetwork`\" pulumi-lang-dotnet=\"`EnablePublicNetwork`\" pulumi-lang-go=\"`enablePublicNetwork`\" pulumi-lang-python=\"`enable_public_network`\" pulumi-lang-yaml=\"`enablePublicNetwork`\" pulumi-lang-java=\"`enablePublicNetwork`\"\u003e`enable_public_network`\u003c/span\u003e is true, the system will create an elastic public network IP.\n","willReplaceOnChanges":true},"kubeConfig":{"type":"string","description":"The kube config for the k8s cluster. It needs to be connected after Base64 encoding.\n"},"resourceGroupId":{"type":"string","description":"The resource group ID.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The security group ID.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true},"taints":{"type":"array","items":{"$ref":"#/types/alicloud:eci/VirtualNodeTaint:VirtualNodeTaint"},"description":"The taint. See \u003cspan pulumi-lang-nodejs=\"`taints`\" pulumi-lang-dotnet=\"`Taints`\" pulumi-lang-go=\"`taints`\" pulumi-lang-python=\"`taints`\" pulumi-lang-yaml=\"`taints`\" pulumi-lang-java=\"`taints`\"\u003e`taints`\u003c/span\u003e below.\n"},"virtualNodeName":{"type":"string","description":"The name of the virtual node. The length of the name is limited to \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters. It can contain uppercase and lowercase letters, Chinese characters, numbers, half-width colon (:), underscores (_), or hyphens (-), and must start with letters.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vswitch id.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone.\n","willReplaceOnChanges":true}},"requiredInputs":["kubeConfig","securityGroupId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering VirtualNode resources.\n","properties":{"eipInstanceId":{"type":"string","description":"The Id of eip.\n","willReplaceOnChanges":true},"enablePublicNetwork":{"type":"boolean","description":"Whether to enable public network. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`eipInstanceId`\" pulumi-lang-dotnet=\"`EipInstanceId`\" pulumi-lang-go=\"`eipInstanceId`\" pulumi-lang-python=\"`eip_instance_id`\" pulumi-lang-yaml=\"`eipInstanceId`\" pulumi-lang-java=\"`eipInstanceId`\"\u003e`eip_instance_id`\u003c/span\u003e is not configured and \u003cspan pulumi-lang-nodejs=\"`enablePublicNetwork`\" pulumi-lang-dotnet=\"`EnablePublicNetwork`\" pulumi-lang-go=\"`enablePublicNetwork`\" pulumi-lang-python=\"`enable_public_network`\" pulumi-lang-yaml=\"`enablePublicNetwork`\" pulumi-lang-java=\"`enablePublicNetwork`\"\u003e`enable_public_network`\u003c/span\u003e is true, the system will create an elastic public network IP.\n","willReplaceOnChanges":true},"kubeConfig":{"type":"string","description":"The kube config for the k8s cluster. It needs to be connected after Base64 encoding.\n"},"resourceGroupId":{"type":"string","description":"The resource group ID.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The security group ID.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The Status of the virtual node. Valid values: `Cleaned`, `Failed`, `Pending`, `Ready`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true},"taints":{"type":"array","items":{"$ref":"#/types/alicloud:eci/VirtualNodeTaint:VirtualNodeTaint"},"description":"The taint. See \u003cspan pulumi-lang-nodejs=\"`taints`\" pulumi-lang-dotnet=\"`Taints`\" pulumi-lang-go=\"`taints`\" pulumi-lang-python=\"`taints`\" pulumi-lang-yaml=\"`taints`\" pulumi-lang-java=\"`taints`\"\u003e`taints`\u003c/span\u003e below.\n"},"virtualNodeName":{"type":"string","description":"The name of the virtual node. The length of the name is limited to \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters. It can contain uppercase and lowercase letters, Chinese characters, numbers, half-width colon (:), underscores (_), or hyphens (-), and must start with letters.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vswitch id.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecp/instance:Instance":{"description":"Provides a Elastic Cloud Phone (ECP) Instance resource.\n\nFor information about Elastic Cloud Phone (ECP) Instance and how to use it, see [What is Instance](https://next.api.aliyun.com/document/cloudphone/2020-12-30/RunInstances).\n\n\u003e **NOTE:** Available since v1.158.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.ecp.getZones({});\nconst defaultGetInstanceTypes = alicloud.ecp.getInstanceTypes({});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: `${name}-${defaultInteger.result}`,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: `${name}-${defaultInteger.result}`,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"192.168.192.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.zoneId),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: `${name}-${defaultInteger.result}`,\n    vpcId: defaultNetwork.id,\n});\nconst defaultKeyPair = new alicloud.ecp.KeyPair(\"default\", {\n    keyPairName: `${name}-${defaultInteger.result}`,\n    publicKeyBody: \"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\",\n});\nconst defaultInstance = new alicloud.ecp.Instance(\"default\", {\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.instanceType),\n    imageId: \"android-image-release5501072_a11_20240530.raw\",\n    vswitchId: defaultSwitch.id,\n    securityGroupId: defaultSecurityGroup.id,\n    keyPairName: defaultKeyPair.keyPairName,\n    vncPassword: \"Ecp123\",\n    paymentType: \"PayAsYouGo\",\n    instanceName: name,\n    description: name,\n    force: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ecp.get_zones()\ndefault_get_instance_types = alicloud.ecp.get_instance_types()\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=f\"{name}-{default_integer['result']}\",\n    cidr_block=\"192.168.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=f\"{name}-{default_integer['result']}\",\n    vpc_id=default_network.id,\n    cidr_block=\"192.168.192.0/24\",\n    zone_id=default.zones[0].zone_id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=f\"{name}-{default_integer['result']}\",\n    vpc_id=default_network.id)\ndefault_key_pair = alicloud.ecp.KeyPair(\"default\",\n    key_pair_name=f\"{name}-{default_integer['result']}\",\n    public_key_body=\"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\")\ndefault_instance = alicloud.ecp.Instance(\"default\",\n    instance_type=default_get_instance_types.instance_types[0].instance_type,\n    image_id=\"android-image-release5501072_a11_20240530.raw\",\n    vswitch_id=default_switch.id,\n    security_group_id=default_security_group.id,\n    key_pair_name=default_key_pair.key_pair_name,\n    vnc_password=\"Ecp123\",\n    payment_type=\"PayAsYouGo\",\n    instance_name=name,\n    description=name,\n    force=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Ecp.GetZones.Invoke();\n\n    var defaultGetInstanceTypes = AliCloud.Ecp.GetInstanceTypes.Invoke();\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = $\"{name}-{defaultInteger.Result}\",\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = $\"{name}-{defaultInteger.Result}\",\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"192.168.192.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.ZoneId)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = $\"{name}-{defaultInteger.Result}\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultKeyPair = new AliCloud.Ecp.KeyPair(\"default\", new()\n    {\n        KeyPairName = $\"{name}-{defaultInteger.Result}\",\n        PublicKeyBody = \"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\",\n    });\n\n    var defaultInstance = new AliCloud.Ecp.Instance(\"default\", new()\n    {\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.InstanceType),\n        ImageId = \"android-image-release5501072_a11_20240530.raw\",\n        VswitchId = defaultSwitch.Id,\n        SecurityGroupId = defaultSecurityGroup.Id,\n        KeyPairName = defaultKeyPair.KeyPairName,\n        VncPassword = \"Ecp123\",\n        PaymentType = \"PayAsYouGo\",\n        InstanceName = name,\n        Description = name,\n        Force = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecp\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := ecp.GetZones(ctx, \u0026ecp.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecp.GetInstanceTypes(ctx, \u0026ecp.GetInstanceTypesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.192.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].ZoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultKeyPair, err := ecp.NewKeyPair(ctx, \"default\", \u0026ecp.KeyPairArgs{\n\t\t\tKeyPairName:   pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tPublicKeyBody: pulumi.String(\"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecp.NewInstance(ctx, \"default\", \u0026ecp.InstanceArgs{\n\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].InstanceType),\n\t\t\tImageId:         pulumi.String(\"android-image-release5501072_a11_20240530.raw\"),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tKeyPairName:     defaultKeyPair.KeyPairName,\n\t\t\tVncPassword:     pulumi.String(\"Ecp123\"),\n\t\t\tPaymentType:     pulumi.String(\"PayAsYouGo\"),\n\t\t\tInstanceName:    pulumi.String(name),\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tForce:           pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecp.EcpFunctions;\nimport com.pulumi.alicloud.ecp.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecp.inputs.GetInstanceTypesArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecp.KeyPair;\nimport com.pulumi.alicloud.ecp.KeyPairArgs;\nimport com.pulumi.alicloud.ecp.Instance;\nimport com.pulumi.alicloud.ecp.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = EcpFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetInstanceTypes = EcpFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"192.168.192.0/24\")\n            .zoneId(default_.zones()[0].zoneId())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultKeyPair = new KeyPair(\"defaultKeyPair\", KeyPairArgs.builder()\n            .keyPairName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .publicKeyBody(\"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].instanceType())\n            .imageId(\"android-image-release5501072_a11_20240530.raw\")\n            .vswitchId(defaultSwitch.id())\n            .securityGroupId(defaultSecurityGroup.id())\n            .keyPairName(defaultKeyPair.keyPairName())\n            .vncPassword(\"Ecp123\")\n            .paymentType(\"PayAsYouGo\")\n            .instanceName(name)\n            .description(name)\n            .force(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}-${defaultInteger.result}\n      cidrBlock: 192.168.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}-${defaultInteger.result}\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 192.168.192.0/24\n      zoneId: ${default.zones[0].zoneId}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}-${defaultInteger.result}\n      vpcId: ${defaultNetwork.id}\n  defaultKeyPair:\n    type: alicloud:ecp:KeyPair\n    name: default\n    properties:\n      keyPairName: ${name}-${defaultInteger.result}\n      publicKeyBody: ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\n  defaultInstance:\n    type: alicloud:ecp:Instance\n    name: default\n    properties:\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].instanceType}\n      imageId: android-image-release5501072_a11_20240530.raw\n      vswitchId: ${defaultSwitch.id}\n      securityGroupId: ${defaultSecurityGroup.id}\n      keyPairName: ${defaultKeyPair.keyPairName}\n      vncPassword: Ecp123\n      paymentType: PayAsYouGo\n      instanceName: ${name}\n      description: ${name}\n      force: 'true'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ecp:getZones\n      arguments: {}\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecp:getInstanceTypes\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nElastic Cloud Phone (ECP) Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecp/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"autoPay":{"type":"boolean","description":"Specifies whether to enable the auto-payment feature. Valid values:\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to enable the auto-renewal feature. Valid values:\n"},"description":{"type":"string","description":"The description of the ECP instance. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length and cannot start with `http://` or `https://`.\n"},"eipBandwidth":{"type":"integer","description":"The bandwidth of the elastic IP address (EIP). **NOTE:** From version 1.232.0, \u003cspan pulumi-lang-nodejs=\"`eipBandwidth`\" pulumi-lang-dotnet=\"`EipBandwidth`\" pulumi-lang-go=\"`eipBandwidth`\" pulumi-lang-python=\"`eip_bandwidth`\" pulumi-lang-yaml=\"`eipBandwidth`\" pulumi-lang-java=\"`eipBandwidth`\"\u003e`eip_bandwidth`\u003c/span\u003e cannot be modified.\n"},"force":{"type":"boolean","description":"Specifies whether to forcefully stop and release the instance. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"imageId":{"type":"string","description":"The ID of the image.\n"},"instanceName":{"type":"string","description":"The name of the ECP instance. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a letter but cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), periods (.), and hyphens (-).\n"},"instanceType":{"type":"string","description":"The specifications of the ECP instance.\n"},"keyPairName":{"type":"string","description":"The name of the key pair that you want to use to connect to the instance.\n"},"paymentType":{"type":"string","description":"The billing method of the ECP instance. Default value: `PayAsYouGo`. Valid values: `PayAsYouGo`,`Subscription`. **NOTE:** From version 1.232.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e cannot be modified.\n"},"period":{"type":"string","description":"The subscription duration. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to `Month`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to `Year`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"periodUnit":{"type":"string","description":"The unit of the subscription duration. Default value: `Month`. Valid values: `Month`, `Year`.\n"},"resolution":{"type":"string","description":"The resolution that you want to select for the ECP instance. **NOTE:** From version 1.232.0, \u003cspan pulumi-lang-nodejs=\"`resolution`\" pulumi-lang-dotnet=\"`Resolution`\" pulumi-lang-go=\"`resolution`\" pulumi-lang-python=\"`resolution`\" pulumi-lang-yaml=\"`resolution`\" pulumi-lang-java=\"`resolution`\"\u003e`resolution`\u003c/span\u003e can be modified.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n"},"status":{"type":"string","description":"The status of the Instance. Valid values: `Running`, `Stopped`.\n"},"vncPassword":{"type":"string","description":"The VNC password of the instance. The password must be \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e characters in length and can contain only uppercase letters, lowercase letters, and digits.\n","secret":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n"}},"required":["imageId","instanceName","instanceType","paymentType","resolution","securityGroupId","status","vswitchId"],"inputProperties":{"autoPay":{"type":"boolean","description":"Specifies whether to enable the auto-payment feature. Valid values:\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to enable the auto-renewal feature. Valid values:\n"},"description":{"type":"string","description":"The description of the ECP instance. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length and cannot start with `http://` or `https://`.\n"},"eipBandwidth":{"type":"integer","description":"The bandwidth of the elastic IP address (EIP). **NOTE:** From version 1.232.0, \u003cspan pulumi-lang-nodejs=\"`eipBandwidth`\" pulumi-lang-dotnet=\"`EipBandwidth`\" pulumi-lang-go=\"`eipBandwidth`\" pulumi-lang-python=\"`eip_bandwidth`\" pulumi-lang-yaml=\"`eipBandwidth`\" pulumi-lang-java=\"`eipBandwidth`\"\u003e`eip_bandwidth`\u003c/span\u003e cannot be modified.\n","willReplaceOnChanges":true},"force":{"type":"boolean","description":"Specifies whether to forcefully stop and release the instance. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"imageId":{"type":"string","description":"The ID of the image.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the ECP instance. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a letter but cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), periods (.), and hyphens (-).\n"},"instanceType":{"type":"string","description":"The specifications of the ECP instance.\n","willReplaceOnChanges":true},"keyPairName":{"type":"string","description":"The name of the key pair that you want to use to connect to the instance.\n"},"paymentType":{"type":"string","description":"The billing method of the ECP instance. Default value: `PayAsYouGo`. Valid values: `PayAsYouGo`,`Subscription`. **NOTE:** From version 1.232.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e cannot be modified.\n","willReplaceOnChanges":true},"period":{"type":"string","description":"The subscription duration. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to `Month`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to `Year`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"periodUnit":{"type":"string","description":"The unit of the subscription duration. Default value: `Month`. Valid values: `Month`, `Year`.\n"},"resolution":{"type":"string","description":"The resolution that you want to select for the ECP instance. **NOTE:** From version 1.232.0, \u003cspan pulumi-lang-nodejs=\"`resolution`\" pulumi-lang-dotnet=\"`Resolution`\" pulumi-lang-go=\"`resolution`\" pulumi-lang-python=\"`resolution`\" pulumi-lang-yaml=\"`resolution`\" pulumi-lang-java=\"`resolution`\"\u003e`resolution`\u003c/span\u003e can be modified.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Instance. Valid values: `Running`, `Stopped`.\n"},"vncPassword":{"type":"string","description":"The VNC password of the instance. The password must be \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e characters in length and can contain only uppercase letters, lowercase letters, and digits.\n","secret":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n","willReplaceOnChanges":true}},"requiredInputs":["imageId","instanceType","securityGroupId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"autoPay":{"type":"boolean","description":"Specifies whether to enable the auto-payment feature. Valid values:\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to enable the auto-renewal feature. Valid values:\n"},"description":{"type":"string","description":"The description of the ECP instance. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length and cannot start with `http://` or `https://`.\n"},"eipBandwidth":{"type":"integer","description":"The bandwidth of the elastic IP address (EIP). **NOTE:** From version 1.232.0, \u003cspan pulumi-lang-nodejs=\"`eipBandwidth`\" pulumi-lang-dotnet=\"`EipBandwidth`\" pulumi-lang-go=\"`eipBandwidth`\" pulumi-lang-python=\"`eip_bandwidth`\" pulumi-lang-yaml=\"`eipBandwidth`\" pulumi-lang-java=\"`eipBandwidth`\"\u003e`eip_bandwidth`\u003c/span\u003e cannot be modified.\n","willReplaceOnChanges":true},"force":{"type":"boolean","description":"Specifies whether to forcefully stop and release the instance. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"imageId":{"type":"string","description":"The ID of the image.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the ECP instance. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a letter but cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), periods (.), and hyphens (-).\n"},"instanceType":{"type":"string","description":"The specifications of the ECP instance.\n","willReplaceOnChanges":true},"keyPairName":{"type":"string","description":"The name of the key pair that you want to use to connect to the instance.\n"},"paymentType":{"type":"string","description":"The billing method of the ECP instance. Default value: `PayAsYouGo`. Valid values: `PayAsYouGo`,`Subscription`. **NOTE:** From version 1.232.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e cannot be modified.\n","willReplaceOnChanges":true},"period":{"type":"string","description":"The subscription duration. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to `Month`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to `Year`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"periodUnit":{"type":"string","description":"The unit of the subscription duration. Default value: `Month`. Valid values: `Month`, `Year`.\n"},"resolution":{"type":"string","description":"The resolution that you want to select for the ECP instance. **NOTE:** From version 1.232.0, \u003cspan pulumi-lang-nodejs=\"`resolution`\" pulumi-lang-dotnet=\"`Resolution`\" pulumi-lang-go=\"`resolution`\" pulumi-lang-python=\"`resolution`\" pulumi-lang-yaml=\"`resolution`\" pulumi-lang-java=\"`resolution`\"\u003e`resolution`\u003c/span\u003e can be modified.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Instance. Valid values: `Running`, `Stopped`.\n"},"vncPassword":{"type":"string","description":"The VNC password of the instance. The password must be \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e characters in length and can contain only uppercase letters, lowercase letters, and digits.\n","secret":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecp/keyPair:KeyPair":{"description":"Provides a Elastic Cloud Phone (ECP) Key Pair resource.\n\nFor information about Elastic Cloud Phone (ECP) Key Pair and how to use it, see [What is Key Pair](https://next.api.aliyun.com/document/cloudphone/2020-12-30/ImportImage).\n\n\u003e **NOTE:** Available since v1.130.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.ecp.KeyPair(\"example\", {\n    keyPairName: \"my-KeyPair\",\n    publicKeyBody: \"ssh-rsa AAAAxxxxxxxxxxtyuudsfsg\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ecp.KeyPair(\"example\",\n    key_pair_name=\"my-KeyPair\",\n    public_key_body=\"ssh-rsa AAAAxxxxxxxxxxtyuudsfsg\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Ecp.KeyPair(\"example\", new()\n    {\n        KeyPairName = \"my-KeyPair\",\n        PublicKeyBody = \"ssh-rsa AAAAxxxxxxxxxxtyuudsfsg\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecp.NewKeyPair(ctx, \"example\", \u0026ecp.KeyPairArgs{\n\t\t\tKeyPairName:   pulumi.String(\"my-KeyPair\"),\n\t\t\tPublicKeyBody: pulumi.String(\"ssh-rsa AAAAxxxxxxxxxxtyuudsfsg\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecp.KeyPair;\nimport com.pulumi.alicloud.ecp.KeyPairArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new KeyPair(\"example\", KeyPairArgs.builder()\n            .keyPairName(\"my-KeyPair\")\n            .publicKeyBody(\"ssh-rsa AAAAxxxxxxxxxxtyuudsfsg\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:ecp:KeyPair\n    properties:\n      keyPairName: my-KeyPair\n      publicKeyBody: ssh-rsa AAAAxxxxxxxxxxtyuudsfsg\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nElastic Cloud Phone (ECP) Key Pair can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecp/keyPair:KeyPair example \u003ckey_pair_name\u003e\n```\n\n","properties":{"keyPairName":{"type":"string","description":"The Key Name.\n"},"publicKeyBody":{"type":"string","description":"The public key body.\n"}},"required":["keyPairName","publicKeyBody"],"inputProperties":{"keyPairName":{"type":"string","description":"The Key Name.\n","willReplaceOnChanges":true},"publicKeyBody":{"type":"string","description":"The public key body.\n"}},"requiredInputs":["keyPairName","publicKeyBody"],"stateInputs":{"description":"Input properties used for looking up and filtering KeyPair resources.\n","properties":{"keyPairName":{"type":"string","description":"The Key Name.\n","willReplaceOnChanges":true},"publicKeyBody":{"type":"string","description":"The public key body.\n"}},"type":"object"}},"alicloud:ecs/activation:Activation":{"description":"Provides a ECS Activation resource.\n\nFor information about ECS Activation and how to use it, see [What is Activation](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/createactivation#doc-api-Ecs-CreateActivation).\n\n\u003e **NOTE:** Available since v1.177.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.ecs.Activation(\"example\", {\n    description: \"terraform-example\",\n    instanceCount: 10,\n    instanceName: \"terraform-example\",\n    ipAddressRange: \"0.0.0.0/0\",\n    timeToLiveInHours: 4,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ecs.Activation(\"example\",\n    description=\"terraform-example\",\n    instance_count=10,\n    instance_name=\"terraform-example\",\n    ip_address_range=\"0.0.0.0/0\",\n    time_to_live_in_hours=4)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Ecs.Activation(\"example\", new()\n    {\n        Description = \"terraform-example\",\n        InstanceCount = 10,\n        InstanceName = \"terraform-example\",\n        IpAddressRange = \"0.0.0.0/0\",\n        TimeToLiveInHours = 4,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewActivation(ctx, \"example\", \u0026ecs.ActivationArgs{\n\t\t\tDescription:       pulumi.String(\"terraform-example\"),\n\t\t\tInstanceCount:     pulumi.Int(10),\n\t\t\tInstanceName:      pulumi.String(\"terraform-example\"),\n\t\t\tIpAddressRange:    pulumi.String(\"0.0.0.0/0\"),\n\t\t\tTimeToLiveInHours: pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.Activation;\nimport com.pulumi.alicloud.ecs.ActivationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Activation(\"example\", ActivationArgs.builder()\n            .description(\"terraform-example\")\n            .instanceCount(10)\n            .instanceName(\"terraform-example\")\n            .ipAddressRange(\"0.0.0.0/0\")\n            .timeToLiveInHours(4)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:ecs:Activation\n    properties:\n      description: terraform-example\n      instanceCount: 10\n      instanceName: terraform-example\n      ipAddressRange: 0.0.0.0/0\n      timeToLiveInHours: 4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Activation can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/activation:Activation example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the activation code. The description can be 1 to 100 characters in length and cannot start with `http://` or `https://`.\n"},"instanceCount":{"type":"integer","description":"The maximum number of times that the activation code can be used to register managed instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\n"},"instanceName":{"type":"string","description":"The default instance name prefix. The instance name prefix must be 1 to 50 characters in length. It must start with a letter and cannot start with `http://` or `https://`. The instance name prefix can contain only letters, digits, periods (.), underscores (_), hyphens (-), and colons (:).\n- If you use the activation code created by the CreateActivation operation to register managed instances, the instances are assigned sequential names that are prefixed by the value of this parameter. You can also specify a new instance name to override the assigned sequential name when you register a managed instance.\n- If you specify InstanceName when you register a managed instance, an instance name in the format of `\u003cInstanceName\u003e-\u003cNumber\u003e` is generated. The number of digits in the \u003cNumber\u003e value is determined by that in the InstanceCount value. Example: 001. If you do not specify InstanceName, the hostname (Hostname) is used as the instance name.\n"},"ipAddressRange":{"type":"string","description":"The IP addresses of hosts that are allowed to use the activation code. The value can be IPv4 addresses, IPv6 addresses, or CIDR blocks.\n"},"timeToLiveInHours":{"type":"integer","description":"The validity period of the activation code. The activation code cannot be used to register new instances after the validity period expires. Unit: hours. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e.\n"}},"required":["instanceCount","ipAddressRange","timeToLiveInHours"],"inputProperties":{"description":{"type":"string","description":"The description of the activation code. The description can be 1 to 100 characters in length and cannot start with `http://` or `https://`.\n","willReplaceOnChanges":true},"instanceCount":{"type":"integer","description":"The maximum number of times that the activation code can be used to register managed instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The default instance name prefix. The instance name prefix must be 1 to 50 characters in length. It must start with a letter and cannot start with `http://` or `https://`. The instance name prefix can contain only letters, digits, periods (.), underscores (_), hyphens (-), and colons (:).\n- If you use the activation code created by the CreateActivation operation to register managed instances, the instances are assigned sequential names that are prefixed by the value of this parameter. You can also specify a new instance name to override the assigned sequential name when you register a managed instance.\n- If you specify InstanceName when you register a managed instance, an instance name in the format of `\u003cInstanceName\u003e-\u003cNumber\u003e` is generated. The number of digits in the \u003cNumber\u003e value is determined by that in the InstanceCount value. Example: 001. If you do not specify InstanceName, the hostname (Hostname) is used as the instance name.\n","willReplaceOnChanges":true},"ipAddressRange":{"type":"string","description":"The IP addresses of hosts that are allowed to use the activation code. The value can be IPv4 addresses, IPv6 addresses, or CIDR blocks.\n","willReplaceOnChanges":true},"timeToLiveInHours":{"type":"integer","description":"The validity period of the activation code. The activation code cannot be used to register new instances after the validity period expires. Unit: hours. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Activation resources.\n","properties":{"description":{"type":"string","description":"The description of the activation code. The description can be 1 to 100 characters in length and cannot start with `http://` or `https://`.\n","willReplaceOnChanges":true},"instanceCount":{"type":"integer","description":"The maximum number of times that the activation code can be used to register managed instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The default instance name prefix. The instance name prefix must be 1 to 50 characters in length. It must start with a letter and cannot start with `http://` or `https://`. The instance name prefix can contain only letters, digits, periods (.), underscores (_), hyphens (-), and colons (:).\n- If you use the activation code created by the CreateActivation operation to register managed instances, the instances are assigned sequential names that are prefixed by the value of this parameter. You can also specify a new instance name to override the assigned sequential name when you register a managed instance.\n- If you specify InstanceName when you register a managed instance, an instance name in the format of `\u003cInstanceName\u003e-\u003cNumber\u003e` is generated. The number of digits in the \u003cNumber\u003e value is determined by that in the InstanceCount value. Example: 001. If you do not specify InstanceName, the hostname (Hostname) is used as the instance name.\n","willReplaceOnChanges":true},"ipAddressRange":{"type":"string","description":"The IP addresses of hosts that are allowed to use the activation code. The value can be IPv4 addresses, IPv6 addresses, or CIDR blocks.\n","willReplaceOnChanges":true},"timeToLiveInHours":{"type":"integer","description":"The validity period of the activation code. The activation code cannot be used to register new instances after the validity period expires. Unit: hours. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/autoProvisioningGroup:AutoProvisioningGroup":{"description":"Provides a ECS auto provisioning group resource which is a solution that uses preemptive instances and\u003cspan pulumi-lang-nodejs=\" payAsYouGo \" pulumi-lang-dotnet=\" PayAsYouGo \" pulumi-lang-go=\" payAsYouGo \" pulumi-lang-python=\" pay_as_you_go \" pulumi-lang-yaml=\" payAsYouGo \" pulumi-lang-java=\" payAsYouGo \"\u003e pay_as_you_go \u003c/span\u003einstances to rapidly deploy clusters.\n\n\u003e **NOTE:** Available in 1.79.0+\n\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"auto_provisioning_group\";\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst template = new alicloud.ecs.EcsLaunchTemplate(\"template\", {\n    launchTemplateName: name,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: \"ecs.n1.tiny\",\n    securityGroupId: defaultSecurityGroup.id,\n});\nconst defaultAutoProvisioningGroup = new alicloud.ecs.AutoProvisioningGroup(\"default\", {\n    launchTemplateId: template.id,\n    totalTargetCapacity: \"4\",\n    payAsYouGoTargetCapacity: \"1\",\n    spotTargetCapacity: \"2\",\n    launchTemplateConfigs: [{\n        instanceType: \"ecs.n1.small\",\n        vswitchId: defaultSwitch.id,\n        weightedCapacity: \"2\",\n        maxPrice: \"2\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"auto_provisioning_group\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ntemplate = alicloud.ecs.EcsLaunchTemplate(\"template\",\n    launch_template_name=name,\n    image_id=default_get_images.images[0].id,\n    instance_type=\"ecs.n1.tiny\",\n    security_group_id=default_security_group.id)\ndefault_auto_provisioning_group = alicloud.ecs.AutoProvisioningGroup(\"default\",\n    launch_template_id=template.id,\n    total_target_capacity=\"4\",\n    pay_as_you_go_target_capacity=\"1\",\n    spot_target_capacity=\"2\",\n    launch_template_configs=[{\n        \"instance_type\": \"ecs.n1.small\",\n        \"vswitch_id\": default_switch.id,\n        \"weighted_capacity\": \"2\",\n        \"max_price\": \"2\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"auto_provisioning_group\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var template = new AliCloud.Ecs.EcsLaunchTemplate(\"template\", new()\n    {\n        LaunchTemplateName = name,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = \"ecs.n1.tiny\",\n        SecurityGroupId = defaultSecurityGroup.Id,\n    });\n\n    var defaultAutoProvisioningGroup = new AliCloud.Ecs.AutoProvisioningGroup(\"default\", new()\n    {\n        LaunchTemplateId = template.Id,\n        TotalTargetCapacity = \"4\",\n        PayAsYouGoTargetCapacity = \"1\",\n        SpotTargetCapacity = \"2\",\n        LaunchTemplateConfigs = new[]\n        {\n            new AliCloud.Ecs.Inputs.AutoProvisioningGroupLaunchTemplateConfigArgs\n            {\n                InstanceType = \"ecs.n1.small\",\n                VswitchId = defaultSwitch.Id,\n                WeightedCapacity = \"2\",\n                MaxPrice = \"2\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"auto_provisioning_group\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttemplate, err := ecs.NewEcsLaunchTemplate(ctx, \"template\", \u0026ecs.EcsLaunchTemplateArgs{\n\t\t\tLaunchTemplateName: pulumi.String(name),\n\t\t\tImageId:            pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:       pulumi.String(\"ecs.n1.tiny\"),\n\t\t\tSecurityGroupId:    defaultSecurityGroup.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewAutoProvisioningGroup(ctx, \"default\", \u0026ecs.AutoProvisioningGroupArgs{\n\t\t\tLaunchTemplateId:         template.ID(),\n\t\t\tTotalTargetCapacity:      pulumi.String(\"4\"),\n\t\t\tPayAsYouGoTargetCapacity: pulumi.String(\"1\"),\n\t\t\tSpotTargetCapacity:       pulumi.String(\"2\"),\n\t\t\tLaunchTemplateConfigs: ecs.AutoProvisioningGroupLaunchTemplateConfigArray{\n\t\t\t\t\u0026ecs.AutoProvisioningGroupLaunchTemplateConfigArgs{\n\t\t\t\t\tInstanceType:     pulumi.String(\"ecs.n1.small\"),\n\t\t\t\t\tVswitchId:        defaultSwitch.ID(),\n\t\t\t\t\tWeightedCapacity: pulumi.String(\"2\"),\n\t\t\t\t\tMaxPrice:         pulumi.String(\"2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.EcsLaunchTemplate;\nimport com.pulumi.alicloud.ecs.EcsLaunchTemplateArgs;\nimport com.pulumi.alicloud.ecs.AutoProvisioningGroup;\nimport com.pulumi.alicloud.ecs.AutoProvisioningGroupArgs;\nimport com.pulumi.alicloud.ecs.inputs.AutoProvisioningGroupLaunchTemplateConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"auto_provisioning_group\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var template = new EcsLaunchTemplate(\"template\", EcsLaunchTemplateArgs.builder()\n            .launchTemplateName(name)\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(\"ecs.n1.tiny\")\n            .securityGroupId(defaultSecurityGroup.id())\n            .build());\n\n        var defaultAutoProvisioningGroup = new AutoProvisioningGroup(\"defaultAutoProvisioningGroup\", AutoProvisioningGroupArgs.builder()\n            .launchTemplateId(template.id())\n            .totalTargetCapacity(\"4\")\n            .payAsYouGoTargetCapacity(\"1\")\n            .spotTargetCapacity(\"2\")\n            .launchTemplateConfigs(AutoProvisioningGroupLaunchTemplateConfigArgs.builder()\n                .instanceType(\"ecs.n1.small\")\n                .vswitchId(defaultSwitch.id())\n                .weightedCapacity(\"2\")\n                .maxPrice(\"2\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: auto_provisioning_group\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultAutoProvisioningGroup:\n    type: alicloud:ecs:AutoProvisioningGroup\n    name: default\n    properties:\n      launchTemplateId: ${template.id}\n      totalTargetCapacity: '4'\n      payAsYouGoTargetCapacity: '1'\n      spotTargetCapacity: '2'\n      launchTemplateConfigs:\n        - instanceType: ecs.n1.small\n          vswitchId: ${defaultSwitch.id}\n          weightedCapacity: '2'\n          maxPrice: '2'\n  template:\n    type: alicloud:ecs:EcsLaunchTemplate\n    properties:\n      launchTemplateName: ${name}\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ecs.n1.tiny\n      securityGroupId: ${defaultSecurityGroup.id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS auto provisioning group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/autoProvisioningGroup:AutoProvisioningGroup example asg-abc123456\n```\n\n","properties":{"autoProvisioningGroupName":{"type":"string","description":"The name of the auto provisioning group to be created. It must be 2 to 128 characters in length. It must start with a letter but cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), and hyphens (-)\n"},"autoProvisioningGroupType":{"type":"string","description":"The type of the auto provisioning group. Valid values:\u003cspan pulumi-lang-nodejs=\"`request`\" pulumi-lang-dotnet=\"`Request`\" pulumi-lang-go=\"`request`\" pulumi-lang-python=\"`request`\" pulumi-lang-yaml=\"`request`\" pulumi-lang-java=\"`request`\"\u003e`request`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`maintain`\" pulumi-lang-dotnet=\"`Maintain`\" pulumi-lang-go=\"`maintain`\" pulumi-lang-python=\"`maintain`\" pulumi-lang-yaml=\"`maintain`\" pulumi-lang-java=\"`maintain`\"\u003e`maintain`\u003c/span\u003e,Default value: \u003cspan pulumi-lang-nodejs=\"`maintain`\" pulumi-lang-dotnet=\"`Maintain`\" pulumi-lang-go=\"`maintain`\" pulumi-lang-python=\"`maintain`\" pulumi-lang-yaml=\"`maintain`\" pulumi-lang-java=\"`maintain`\"\u003e`maintain`\u003c/span\u003e.\n"},"defaultTargetCapacityType":{"type":"string","description":"The type of supplemental instances. When the total value of `PayAsYouGoTargetCapacity` and `SpotTargetCapacity` is smaller than the value of TotalTargetCapacity, the auto provisioning group will create instances of the specified type to meet the capacity requirements. Valid values:`PayAsYouGo`: Pay-as-you-go instances; `Spot`: Preemptible instances, Default value: `Spot`.\n"},"description":{"type":"string","description":"The description of the auto provisioning group.\n"},"excessCapacityTerminationPolicy":{"type":"string","description":"The shutdown policy for excess preemptible instances followed when the capacity of the auto provisioning group exceeds the target capacity. Valid values: `no-termination` and \u003cspan pulumi-lang-nodejs=\"`termination`\" pulumi-lang-dotnet=\"`Termination`\" pulumi-lang-go=\"`termination`\" pulumi-lang-python=\"`termination`\" pulumi-lang-yaml=\"`termination`\" pulumi-lang-java=\"`termination`\"\u003e`termination`\u003c/span\u003e,Default value: `no-termination`.\n"},"launchTemplateConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/AutoProvisioningGroupLaunchTemplateConfig:AutoProvisioningGroupLaunchTemplateConfig"},"description":"DataDisk mappings to attach to ecs instance. See `block-config` below for details.\n"},"launchTemplateId":{"type":"string","description":"The ID of the instance launch template associated with the auto provisioning group.\n"},"launchTemplateVersion":{"type":"string","description":"The version of the instance launch template associated with the auto provisioning group.\n"},"maxSpotPrice":{"type":"number","description":"The global maximum price for preemptible instances in the auto provisioning group. If both the `MaxSpotPrice` and `LaunchTemplateConfig.N.MaxPrice` parameters are specified, the maximum price is the lower value of the two.\n"},"payAsYouGoAllocationStrategy":{"type":"string","description":"The scale-out policy for pay-as-you-go instances. Valid values: `lowest-price` and \u003cspan pulumi-lang-nodejs=\"`prioritized`\" pulumi-lang-dotnet=\"`Prioritized`\" pulumi-lang-go=\"`prioritized`\" pulumi-lang-python=\"`prioritized`\" pulumi-lang-yaml=\"`prioritized`\" pulumi-lang-java=\"`prioritized`\"\u003e`prioritized`\u003c/span\u003e,Default value: `lowest-price`.\n"},"payAsYouGoTargetCapacity":{"type":"string","description":"The target capacity of pay-as-you-go instances in the auto provisioning group.\n"},"spotAllocationStrategy":{"type":"string","description":"The scale-out policy for preemptible instances. Valid values:`lowest-price` and \u003cspan pulumi-lang-nodejs=\"`diversified`\" pulumi-lang-dotnet=\"`Diversified`\" pulumi-lang-go=\"`diversified`\" pulumi-lang-python=\"`diversified`\" pulumi-lang-yaml=\"`diversified`\" pulumi-lang-java=\"`diversified`\"\u003e`diversified`\u003c/span\u003e,Default value: `lowest-price`.\n"},"spotInstanceInterruptionBehavior":{"type":"string","description":"The default behavior after preemptible instances are shut down. Valid values: \u003cspan pulumi-lang-nodejs=\"`stop`\" pulumi-lang-dotnet=\"`Stop`\" pulumi-lang-go=\"`stop`\" pulumi-lang-python=\"`stop`\" pulumi-lang-yaml=\"`stop`\" pulumi-lang-java=\"`stop`\"\u003e`stop`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`terminate`\" pulumi-lang-dotnet=\"`Terminate`\" pulumi-lang-go=\"`terminate`\" pulumi-lang-python=\"`terminate`\" pulumi-lang-yaml=\"`terminate`\" pulumi-lang-java=\"`terminate`\"\u003e`terminate`\u003c/span\u003e,Default value: \u003cspan pulumi-lang-nodejs=\"`stop`\" pulumi-lang-dotnet=\"`Stop`\" pulumi-lang-go=\"`stop`\" pulumi-lang-python=\"`stop`\" pulumi-lang-yaml=\"`stop`\" pulumi-lang-java=\"`stop`\"\u003e`stop`\u003c/span\u003e.\n"},"spotInstancePoolsToUseCount":{"type":"integer","description":"This parameter takes effect when the `SpotAllocationStrategy` parameter is set to `lowest-price`. The auto provisioning group selects instance types of the lowest cost to create instances.\n"},"spotTargetCapacity":{"type":"string","description":"The target capacity of preemptible instances in the auto provisioning group.\n"},"terminateInstances":{"type":"boolean","description":"Specifies whether to release instances of the auto provisioning group. Valid values:\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"terminateInstancesWithExpiration":{"type":"boolean","description":"The shutdown policy for preemptible instances when the auto provisioning group expires. Valid values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"totalTargetCapacity":{"type":"string","description":"The total target capacity of the auto provisioning group. The target capacity consists of the following three parts:PayAsYouGoTargetCapacity,SpotTargetCapacity and the supplemental capacity besides PayAsYouGoTargetCapacity and SpotTargetCapacity.\n"},"validFrom":{"type":"string","description":"The time when the auto provisioning group is started. The period of time between this point in time and the point in time specified by the \u003cspan pulumi-lang-nodejs=\"`validUntil`\" pulumi-lang-dotnet=\"`ValidUntil`\" pulumi-lang-go=\"`validUntil`\" pulumi-lang-python=\"`valid_until`\" pulumi-lang-yaml=\"`validUntil`\" pulumi-lang-java=\"`validUntil`\"\u003e`valid_until`\u003c/span\u003e parameter is the effective time period of the auto provisioning group.By default, an auto provisioning group is immediately started after creation.\n"},"validUntil":{"type":"string","description":"The time when the auto provisioning group expires. The period of time between this point in time and the point in time specified by the \u003cspan pulumi-lang-nodejs=\"`validFrom`\" pulumi-lang-dotnet=\"`ValidFrom`\" pulumi-lang-go=\"`validFrom`\" pulumi-lang-python=\"`valid_from`\" pulumi-lang-yaml=\"`validFrom`\" pulumi-lang-java=\"`validFrom`\"\u003e`valid_from`\u003c/span\u003e parameter is the effective time period of the auto provisioning group.By default, an auto provisioning group never expires.\n"}},"required":["autoProvisioningGroupName","launchTemplateConfigs","launchTemplateId","launchTemplateVersion","maxSpotPrice","spotInstancePoolsToUseCount","totalTargetCapacity","validFrom","validUntil"],"inputProperties":{"autoProvisioningGroupName":{"type":"string","description":"The name of the auto provisioning group to be created. It must be 2 to 128 characters in length. It must start with a letter but cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), and hyphens (-)\n"},"autoProvisioningGroupType":{"type":"string","description":"The type of the auto provisioning group. Valid values:\u003cspan pulumi-lang-nodejs=\"`request`\" pulumi-lang-dotnet=\"`Request`\" pulumi-lang-go=\"`request`\" pulumi-lang-python=\"`request`\" pulumi-lang-yaml=\"`request`\" pulumi-lang-java=\"`request`\"\u003e`request`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`maintain`\" pulumi-lang-dotnet=\"`Maintain`\" pulumi-lang-go=\"`maintain`\" pulumi-lang-python=\"`maintain`\" pulumi-lang-yaml=\"`maintain`\" pulumi-lang-java=\"`maintain`\"\u003e`maintain`\u003c/span\u003e,Default value: \u003cspan pulumi-lang-nodejs=\"`maintain`\" pulumi-lang-dotnet=\"`Maintain`\" pulumi-lang-go=\"`maintain`\" pulumi-lang-python=\"`maintain`\" pulumi-lang-yaml=\"`maintain`\" pulumi-lang-java=\"`maintain`\"\u003e`maintain`\u003c/span\u003e.\n","willReplaceOnChanges":true},"defaultTargetCapacityType":{"type":"string","description":"The type of supplemental instances. When the total value of `PayAsYouGoTargetCapacity` and `SpotTargetCapacity` is smaller than the value of TotalTargetCapacity, the auto provisioning group will create instances of the specified type to meet the capacity requirements. Valid values:`PayAsYouGo`: Pay-as-you-go instances; `Spot`: Preemptible instances, Default value: `Spot`.\n"},"description":{"type":"string","description":"The description of the auto provisioning group.\n","willReplaceOnChanges":true},"excessCapacityTerminationPolicy":{"type":"string","description":"The shutdown policy for excess preemptible instances followed when the capacity of the auto provisioning group exceeds the target capacity. Valid values: `no-termination` and \u003cspan pulumi-lang-nodejs=\"`termination`\" pulumi-lang-dotnet=\"`Termination`\" pulumi-lang-go=\"`termination`\" pulumi-lang-python=\"`termination`\" pulumi-lang-yaml=\"`termination`\" pulumi-lang-java=\"`termination`\"\u003e`termination`\u003c/span\u003e,Default value: `no-termination`.\n"},"launchTemplateConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/AutoProvisioningGroupLaunchTemplateConfig:AutoProvisioningGroupLaunchTemplateConfig"},"description":"DataDisk mappings to attach to ecs instance. See `block-config` below for details.\n","willReplaceOnChanges":true},"launchTemplateId":{"type":"string","description":"The ID of the instance launch template associated with the auto provisioning group.\n","willReplaceOnChanges":true},"launchTemplateVersion":{"type":"string","description":"The version of the instance launch template associated with the auto provisioning group.\n","willReplaceOnChanges":true},"maxSpotPrice":{"type":"number","description":"The global maximum price for preemptible instances in the auto provisioning group. If both the `MaxSpotPrice` and `LaunchTemplateConfig.N.MaxPrice` parameters are specified, the maximum price is the lower value of the two.\n"},"payAsYouGoAllocationStrategy":{"type":"string","description":"The scale-out policy for pay-as-you-go instances. Valid values: `lowest-price` and \u003cspan pulumi-lang-nodejs=\"`prioritized`\" pulumi-lang-dotnet=\"`Prioritized`\" pulumi-lang-go=\"`prioritized`\" pulumi-lang-python=\"`prioritized`\" pulumi-lang-yaml=\"`prioritized`\" pulumi-lang-java=\"`prioritized`\"\u003e`prioritized`\u003c/span\u003e,Default value: `lowest-price`.\n","willReplaceOnChanges":true},"payAsYouGoTargetCapacity":{"type":"string","description":"The target capacity of pay-as-you-go instances in the auto provisioning group.\n"},"spotAllocationStrategy":{"type":"string","description":"The scale-out policy for preemptible instances. Valid values:`lowest-price` and \u003cspan pulumi-lang-nodejs=\"`diversified`\" pulumi-lang-dotnet=\"`Diversified`\" pulumi-lang-go=\"`diversified`\" pulumi-lang-python=\"`diversified`\" pulumi-lang-yaml=\"`diversified`\" pulumi-lang-java=\"`diversified`\"\u003e`diversified`\u003c/span\u003e,Default value: `lowest-price`.\n","willReplaceOnChanges":true},"spotInstanceInterruptionBehavior":{"type":"string","description":"The default behavior after preemptible instances are shut down. Valid values: \u003cspan pulumi-lang-nodejs=\"`stop`\" pulumi-lang-dotnet=\"`Stop`\" pulumi-lang-go=\"`stop`\" pulumi-lang-python=\"`stop`\" pulumi-lang-yaml=\"`stop`\" pulumi-lang-java=\"`stop`\"\u003e`stop`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`terminate`\" pulumi-lang-dotnet=\"`Terminate`\" pulumi-lang-go=\"`terminate`\" pulumi-lang-python=\"`terminate`\" pulumi-lang-yaml=\"`terminate`\" pulumi-lang-java=\"`terminate`\"\u003e`terminate`\u003c/span\u003e,Default value: \u003cspan pulumi-lang-nodejs=\"`stop`\" pulumi-lang-dotnet=\"`Stop`\" pulumi-lang-go=\"`stop`\" pulumi-lang-python=\"`stop`\" pulumi-lang-yaml=\"`stop`\" pulumi-lang-java=\"`stop`\"\u003e`stop`\u003c/span\u003e.\n","willReplaceOnChanges":true},"spotInstancePoolsToUseCount":{"type":"integer","description":"This parameter takes effect when the `SpotAllocationStrategy` parameter is set to `lowest-price`. The auto provisioning group selects instance types of the lowest cost to create instances.\n","willReplaceOnChanges":true},"spotTargetCapacity":{"type":"string","description":"The target capacity of preemptible instances in the auto provisioning group.\n"},"terminateInstances":{"type":"boolean","description":"Specifies whether to release instances of the auto provisioning group. Valid values:\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"terminateInstancesWithExpiration":{"type":"boolean","description":"The shutdown policy for preemptible instances when the auto provisioning group expires. Valid values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"totalTargetCapacity":{"type":"string","description":"The total target capacity of the auto provisioning group. The target capacity consists of the following three parts:PayAsYouGoTargetCapacity,SpotTargetCapacity and the supplemental capacity besides PayAsYouGoTargetCapacity and SpotTargetCapacity.\n"},"validFrom":{"type":"string","description":"The time when the auto provisioning group is started. The period of time between this point in time and the point in time specified by the \u003cspan pulumi-lang-nodejs=\"`validUntil`\" pulumi-lang-dotnet=\"`ValidUntil`\" pulumi-lang-go=\"`validUntil`\" pulumi-lang-python=\"`valid_until`\" pulumi-lang-yaml=\"`validUntil`\" pulumi-lang-java=\"`validUntil`\"\u003e`valid_until`\u003c/span\u003e parameter is the effective time period of the auto provisioning group.By default, an auto provisioning group is immediately started after creation.\n","willReplaceOnChanges":true},"validUntil":{"type":"string","description":"The time when the auto provisioning group expires. The period of time between this point in time and the point in time specified by the \u003cspan pulumi-lang-nodejs=\"`validFrom`\" pulumi-lang-dotnet=\"`ValidFrom`\" pulumi-lang-go=\"`validFrom`\" pulumi-lang-python=\"`valid_from`\" pulumi-lang-yaml=\"`validFrom`\" pulumi-lang-java=\"`validFrom`\"\u003e`valid_from`\u003c/span\u003e parameter is the effective time period of the auto provisioning group.By default, an auto provisioning group never expires.\n","willReplaceOnChanges":true}},"requiredInputs":["launchTemplateConfigs","launchTemplateId","totalTargetCapacity"],"stateInputs":{"description":"Input properties used for looking up and filtering AutoProvisioningGroup resources.\n","properties":{"autoProvisioningGroupName":{"type":"string","description":"The name of the auto provisioning group to be created. It must be 2 to 128 characters in length. It must start with a letter but cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), and hyphens (-)\n"},"autoProvisioningGroupType":{"type":"string","description":"The type of the auto provisioning group. Valid values:\u003cspan pulumi-lang-nodejs=\"`request`\" pulumi-lang-dotnet=\"`Request`\" pulumi-lang-go=\"`request`\" pulumi-lang-python=\"`request`\" pulumi-lang-yaml=\"`request`\" pulumi-lang-java=\"`request`\"\u003e`request`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`maintain`\" pulumi-lang-dotnet=\"`Maintain`\" pulumi-lang-go=\"`maintain`\" pulumi-lang-python=\"`maintain`\" pulumi-lang-yaml=\"`maintain`\" pulumi-lang-java=\"`maintain`\"\u003e`maintain`\u003c/span\u003e,Default value: \u003cspan pulumi-lang-nodejs=\"`maintain`\" pulumi-lang-dotnet=\"`Maintain`\" pulumi-lang-go=\"`maintain`\" pulumi-lang-python=\"`maintain`\" pulumi-lang-yaml=\"`maintain`\" pulumi-lang-java=\"`maintain`\"\u003e`maintain`\u003c/span\u003e.\n","willReplaceOnChanges":true},"defaultTargetCapacityType":{"type":"string","description":"The type of supplemental instances. When the total value of `PayAsYouGoTargetCapacity` and `SpotTargetCapacity` is smaller than the value of TotalTargetCapacity, the auto provisioning group will create instances of the specified type to meet the capacity requirements. Valid values:`PayAsYouGo`: Pay-as-you-go instances; `Spot`: Preemptible instances, Default value: `Spot`.\n"},"description":{"type":"string","description":"The description of the auto provisioning group.\n","willReplaceOnChanges":true},"excessCapacityTerminationPolicy":{"type":"string","description":"The shutdown policy for excess preemptible instances followed when the capacity of the auto provisioning group exceeds the target capacity. Valid values: `no-termination` and \u003cspan pulumi-lang-nodejs=\"`termination`\" pulumi-lang-dotnet=\"`Termination`\" pulumi-lang-go=\"`termination`\" pulumi-lang-python=\"`termination`\" pulumi-lang-yaml=\"`termination`\" pulumi-lang-java=\"`termination`\"\u003e`termination`\u003c/span\u003e,Default value: `no-termination`.\n"},"launchTemplateConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/AutoProvisioningGroupLaunchTemplateConfig:AutoProvisioningGroupLaunchTemplateConfig"},"description":"DataDisk mappings to attach to ecs instance. See `block-config` below for details.\n","willReplaceOnChanges":true},"launchTemplateId":{"type":"string","description":"The ID of the instance launch template associated with the auto provisioning group.\n","willReplaceOnChanges":true},"launchTemplateVersion":{"type":"string","description":"The version of the instance launch template associated with the auto provisioning group.\n","willReplaceOnChanges":true},"maxSpotPrice":{"type":"number","description":"The global maximum price for preemptible instances in the auto provisioning group. If both the `MaxSpotPrice` and `LaunchTemplateConfig.N.MaxPrice` parameters are specified, the maximum price is the lower value of the two.\n"},"payAsYouGoAllocationStrategy":{"type":"string","description":"The scale-out policy for pay-as-you-go instances. Valid values: `lowest-price` and \u003cspan pulumi-lang-nodejs=\"`prioritized`\" pulumi-lang-dotnet=\"`Prioritized`\" pulumi-lang-go=\"`prioritized`\" pulumi-lang-python=\"`prioritized`\" pulumi-lang-yaml=\"`prioritized`\" pulumi-lang-java=\"`prioritized`\"\u003e`prioritized`\u003c/span\u003e,Default value: `lowest-price`.\n","willReplaceOnChanges":true},"payAsYouGoTargetCapacity":{"type":"string","description":"The target capacity of pay-as-you-go instances in the auto provisioning group.\n"},"spotAllocationStrategy":{"type":"string","description":"The scale-out policy for preemptible instances. Valid values:`lowest-price` and \u003cspan pulumi-lang-nodejs=\"`diversified`\" pulumi-lang-dotnet=\"`Diversified`\" pulumi-lang-go=\"`diversified`\" pulumi-lang-python=\"`diversified`\" pulumi-lang-yaml=\"`diversified`\" pulumi-lang-java=\"`diversified`\"\u003e`diversified`\u003c/span\u003e,Default value: `lowest-price`.\n","willReplaceOnChanges":true},"spotInstanceInterruptionBehavior":{"type":"string","description":"The default behavior after preemptible instances are shut down. Valid values: \u003cspan pulumi-lang-nodejs=\"`stop`\" pulumi-lang-dotnet=\"`Stop`\" pulumi-lang-go=\"`stop`\" pulumi-lang-python=\"`stop`\" pulumi-lang-yaml=\"`stop`\" pulumi-lang-java=\"`stop`\"\u003e`stop`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`terminate`\" pulumi-lang-dotnet=\"`Terminate`\" pulumi-lang-go=\"`terminate`\" pulumi-lang-python=\"`terminate`\" pulumi-lang-yaml=\"`terminate`\" pulumi-lang-java=\"`terminate`\"\u003e`terminate`\u003c/span\u003e,Default value: \u003cspan pulumi-lang-nodejs=\"`stop`\" pulumi-lang-dotnet=\"`Stop`\" pulumi-lang-go=\"`stop`\" pulumi-lang-python=\"`stop`\" pulumi-lang-yaml=\"`stop`\" pulumi-lang-java=\"`stop`\"\u003e`stop`\u003c/span\u003e.\n","willReplaceOnChanges":true},"spotInstancePoolsToUseCount":{"type":"integer","description":"This parameter takes effect when the `SpotAllocationStrategy` parameter is set to `lowest-price`. The auto provisioning group selects instance types of the lowest cost to create instances.\n","willReplaceOnChanges":true},"spotTargetCapacity":{"type":"string","description":"The target capacity of preemptible instances in the auto provisioning group.\n"},"terminateInstances":{"type":"boolean","description":"Specifies whether to release instances of the auto provisioning group. Valid values:\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"terminateInstancesWithExpiration":{"type":"boolean","description":"The shutdown policy for preemptible instances when the auto provisioning group expires. Valid values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"totalTargetCapacity":{"type":"string","description":"The total target capacity of the auto provisioning group. The target capacity consists of the following three parts:PayAsYouGoTargetCapacity,SpotTargetCapacity and the supplemental capacity besides PayAsYouGoTargetCapacity and SpotTargetCapacity.\n"},"validFrom":{"type":"string","description":"The time when the auto provisioning group is started. The period of time between this point in time and the point in time specified by the \u003cspan pulumi-lang-nodejs=\"`validUntil`\" pulumi-lang-dotnet=\"`ValidUntil`\" pulumi-lang-go=\"`validUntil`\" pulumi-lang-python=\"`valid_until`\" pulumi-lang-yaml=\"`validUntil`\" pulumi-lang-java=\"`validUntil`\"\u003e`valid_until`\u003c/span\u003e parameter is the effective time period of the auto provisioning group.By default, an auto provisioning group is immediately started after creation.\n","willReplaceOnChanges":true},"validUntil":{"type":"string","description":"The time when the auto provisioning group expires. The period of time between this point in time and the point in time specified by the \u003cspan pulumi-lang-nodejs=\"`validFrom`\" pulumi-lang-dotnet=\"`ValidFrom`\" pulumi-lang-go=\"`validFrom`\" pulumi-lang-python=\"`valid_from`\" pulumi-lang-yaml=\"`validFrom`\" pulumi-lang-java=\"`validFrom`\"\u003e`valid_from`\u003c/span\u003e parameter is the effective time period of the auto provisioning group.By default, an auto provisioning group never expires.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/autoSnapshotPolicy:AutoSnapshotPolicy":{"description":"Provides a ECS Auto Snapshot Policy resource.\n\nFor information about ECS Auto Snapshot Policy and how to use it, see [What is Auto Snapshot Policy](https://www.alibabacloud.com/help/en/doc-detail/25527.htm).\n\n\u003e **NOTE:** Available since v1.117.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.ecs.AutoSnapshotPolicy(\"example\", {\n    name: \"terraform-example\",\n    repeatWeekdays: [\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retentionDays: -1,\n    timePoints: [\n        \"1\",\n        \"22\",\n        \"23\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ecs.AutoSnapshotPolicy(\"example\",\n    name=\"terraform-example\",\n    repeat_weekdays=[\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retention_days=-1,\n    time_points=[\n        \"1\",\n        \"22\",\n        \"23\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Ecs.AutoSnapshotPolicy(\"example\", new()\n    {\n        Name = \"terraform-example\",\n        RepeatWeekdays = new[]\n        {\n            \"1\",\n            \"2\",\n            \"3\",\n        },\n        RetentionDays = -1,\n        TimePoints = new[]\n        {\n            \"1\",\n            \"22\",\n            \"23\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewAutoSnapshotPolicy(ctx, \"example\", \u0026ecs.AutoSnapshotPolicyArgs{\n\t\t\tName: pulumi.String(\"terraform-example\"),\n\t\t\tRepeatWeekdays: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\tpulumi.String(\"3\"),\n\t\t\t},\n\t\t\tRetentionDays: pulumi.Int(-1),\n\t\t\tTimePoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\tpulumi.String(\"22\"),\n\t\t\t\tpulumi.String(\"23\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.AutoSnapshotPolicy;\nimport com.pulumi.alicloud.ecs.AutoSnapshotPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new AutoSnapshotPolicy(\"example\", AutoSnapshotPolicyArgs.builder()\n            .name(\"terraform-example\")\n            .repeatWeekdays(            \n                \"1\",\n                \"2\",\n                \"3\")\n            .retentionDays(-1)\n            .timePoints(            \n                \"1\",\n                \"22\",\n                \"23\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:ecs:AutoSnapshotPolicy\n    properties:\n      name: terraform-example\n      repeatWeekdays:\n        - '1'\n        - '2'\n        - '3'\n      retentionDays: -1\n      timePoints:\n        - '1'\n        - '22'\n        - '23'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Auto Snapshot Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/autoSnapshotPolicy:AutoSnapshotPolicy example \u003cid\u003e\n```\n\n","properties":{"autoSnapshotPolicyName":{"type":"string","description":"The name of the automatic snapshot policy. The name must be 2 to 128 characters in length. The name must start with a letter and cannot start with http:// or https://. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n"},"copiedSnapshotsRetentionDays":{"type":"integer","description":"The retention period of the snapshot copy in the destination region. Unit: days. Valid values:\n- `-1`: The snapshot copy is retained until it is deleted.\n"},"copyEncryptionConfiguration":{"$ref":"#/types/alicloud:ecs/AutoSnapshotPolicyCopyEncryptionConfiguration:AutoSnapshotPolicyCopyEncryptionConfiguration","description":"The encryption parameters for cross-region snapshot replication. See \u003cspan pulumi-lang-nodejs=\"`copyEncryptionConfiguration`\" pulumi-lang-dotnet=\"`CopyEncryptionConfiguration`\" pulumi-lang-go=\"`copyEncryptionConfiguration`\" pulumi-lang-python=\"`copy_encryption_configuration`\" pulumi-lang-yaml=\"`copyEncryptionConfiguration`\" pulumi-lang-java=\"`copyEncryptionConfiguration`\"\u003e`copy_encryption_configuration`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"(Available since v1.236.0) The time when the automatic snapshot policy was created. The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mm:ssZ format. The time is displayed in UTC.\n"},"enableCrossRegionCopy":{"type":"boolean","description":"Specifies whether to enable cross-region replication for snapshots. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"name":{"type":"string","description":". Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.236.0. New field \u003cspan pulumi-lang-nodejs=\"`autoSnapshotPolicyName`\" pulumi-lang-dotnet=\"`AutoSnapshotPolicyName`\" pulumi-lang-go=\"`autoSnapshotPolicyName`\" pulumi-lang-python=\"`auto_snapshot_policy_name`\" pulumi-lang-yaml=\"`autoSnapshotPolicyName`\" pulumi-lang-java=\"`autoSnapshotPolicyName`\"\u003e`auto_snapshot_policy_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.236.0. New field \u003cspan pulumi-lang-nodejs=\"`autoSnapshotPolicyName`\" pulumi-lang-dotnet=\"`AutoSnapshotPolicyName`\" pulumi-lang-go=\"`autoSnapshotPolicyName`\" pulumi-lang-python=\"`auto_snapshot_policy_name`\" pulumi-lang-yaml=\"`autoSnapshotPolicyName`\" pulumi-lang-java=\"`autoSnapshotPolicyName`\"\u003e`auto_snapshot_policy_name`\u003c/span\u003e instead."},"regionId":{"type":"string","description":"(Available since v1.236.0) The region ID of the automatic snapshot policy.\n"},"repeatWeekdays":{"type":"array","items":{"type":"string"},"description":"The days of the week on which to create automatic snapshots. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e, which correspond to the days of the week. For example, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e indicates Monday. One or more days can be specified.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. If this parameter is specified to query resources, up to 1,000 resources that belong to the specified resource group can be displayed in the response.\n"},"retentionDays":{"type":"integer","description":"The retention period of the automatic snapshots. Unit: days. Valid values:\n- `-1`: Automatic snapshots are retained until they are deleted.\n"},"status":{"type":"string","description":"The status of the automatic snapshot policy.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"targetCopyRegions":{"type":"array","items":{"type":"string"},"description":"The destination region to which to copy the snapshot. You can specify only a single destination region.\n"},"timePoints":{"type":"array","items":{"type":"string"},"description":"The points in time of the day at which to create automatic snapshots.\n\nThe time is displayed in UTC+8. Unit: hours. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e, which correspond to the 24 points in time on the hour from 00:00:00 to 23:00:00. For example, 1 indicates 01:00:00. Multiple points in time can be specified.\n\nThe parameter value is a JSON array that contains up to 24 points in time separated by commas (,). Example: [\"0\", \"1\", ... \"23\"].\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["autoSnapshotPolicyName","copiedSnapshotsRetentionDays","createTime","name","regionId","repeatWeekdays","retentionDays","status","timePoints"],"inputProperties":{"autoSnapshotPolicyName":{"type":"string","description":"The name of the automatic snapshot policy. The name must be 2 to 128 characters in length. The name must start with a letter and cannot start with http:// or https://. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n"},"copiedSnapshotsRetentionDays":{"type":"integer","description":"The retention period of the snapshot copy in the destination region. Unit: days. Valid values:\n- `-1`: The snapshot copy is retained until it is deleted.\n"},"copyEncryptionConfiguration":{"$ref":"#/types/alicloud:ecs/AutoSnapshotPolicyCopyEncryptionConfiguration:AutoSnapshotPolicyCopyEncryptionConfiguration","description":"The encryption parameters for cross-region snapshot replication. See \u003cspan pulumi-lang-nodejs=\"`copyEncryptionConfiguration`\" pulumi-lang-dotnet=\"`CopyEncryptionConfiguration`\" pulumi-lang-go=\"`copyEncryptionConfiguration`\" pulumi-lang-python=\"`copy_encryption_configuration`\" pulumi-lang-yaml=\"`copyEncryptionConfiguration`\" pulumi-lang-java=\"`copyEncryptionConfiguration`\"\u003e`copy_encryption_configuration`\u003c/span\u003e below.\n"},"enableCrossRegionCopy":{"type":"boolean","description":"Specifies whether to enable cross-region replication for snapshots. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"name":{"type":"string","description":". Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.236.0. New field \u003cspan pulumi-lang-nodejs=\"`autoSnapshotPolicyName`\" pulumi-lang-dotnet=\"`AutoSnapshotPolicyName`\" pulumi-lang-go=\"`autoSnapshotPolicyName`\" pulumi-lang-python=\"`auto_snapshot_policy_name`\" pulumi-lang-yaml=\"`autoSnapshotPolicyName`\" pulumi-lang-java=\"`autoSnapshotPolicyName`\"\u003e`auto_snapshot_policy_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.236.0. New field \u003cspan pulumi-lang-nodejs=\"`autoSnapshotPolicyName`\" pulumi-lang-dotnet=\"`AutoSnapshotPolicyName`\" pulumi-lang-go=\"`autoSnapshotPolicyName`\" pulumi-lang-python=\"`auto_snapshot_policy_name`\" pulumi-lang-yaml=\"`autoSnapshotPolicyName`\" pulumi-lang-java=\"`autoSnapshotPolicyName`\"\u003e`auto_snapshot_policy_name`\u003c/span\u003e instead."},"repeatWeekdays":{"type":"array","items":{"type":"string"},"description":"The days of the week on which to create automatic snapshots. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e, which correspond to the days of the week. For example, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e indicates Monday. One or more days can be specified.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. If this parameter is specified to query resources, up to 1,000 resources that belong to the specified resource group can be displayed in the response.\n"},"retentionDays":{"type":"integer","description":"The retention period of the automatic snapshots. Unit: days. Valid values:\n- `-1`: Automatic snapshots are retained until they are deleted.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"targetCopyRegions":{"type":"array","items":{"type":"string"},"description":"The destination region to which to copy the snapshot. You can specify only a single destination region.\n"},"timePoints":{"type":"array","items":{"type":"string"},"description":"The points in time of the day at which to create automatic snapshots.\n\nThe time is displayed in UTC+8. Unit: hours. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e, which correspond to the 24 points in time on the hour from 00:00:00 to 23:00:00. For example, 1 indicates 01:00:00. Multiple points in time can be specified.\n\nThe parameter value is a JSON array that contains up to 24 points in time separated by commas (,). Example: [\"0\", \"1\", ... \"23\"].\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"requiredInputs":["repeatWeekdays","retentionDays","timePoints"],"stateInputs":{"description":"Input properties used for looking up and filtering AutoSnapshotPolicy resources.\n","properties":{"autoSnapshotPolicyName":{"type":"string","description":"The name of the automatic snapshot policy. The name must be 2 to 128 characters in length. The name must start with a letter and cannot start with http:// or https://. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n"},"copiedSnapshotsRetentionDays":{"type":"integer","description":"The retention period of the snapshot copy in the destination region. Unit: days. Valid values:\n- `-1`: The snapshot copy is retained until it is deleted.\n"},"copyEncryptionConfiguration":{"$ref":"#/types/alicloud:ecs/AutoSnapshotPolicyCopyEncryptionConfiguration:AutoSnapshotPolicyCopyEncryptionConfiguration","description":"The encryption parameters for cross-region snapshot replication. See \u003cspan pulumi-lang-nodejs=\"`copyEncryptionConfiguration`\" pulumi-lang-dotnet=\"`CopyEncryptionConfiguration`\" pulumi-lang-go=\"`copyEncryptionConfiguration`\" pulumi-lang-python=\"`copy_encryption_configuration`\" pulumi-lang-yaml=\"`copyEncryptionConfiguration`\" pulumi-lang-java=\"`copyEncryptionConfiguration`\"\u003e`copy_encryption_configuration`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"(Available since v1.236.0) The time when the automatic snapshot policy was created. The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mm:ssZ format. The time is displayed in UTC.\n"},"enableCrossRegionCopy":{"type":"boolean","description":"Specifies whether to enable cross-region replication for snapshots. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"name":{"type":"string","description":". Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.236.0. New field \u003cspan pulumi-lang-nodejs=\"`autoSnapshotPolicyName`\" pulumi-lang-dotnet=\"`AutoSnapshotPolicyName`\" pulumi-lang-go=\"`autoSnapshotPolicyName`\" pulumi-lang-python=\"`auto_snapshot_policy_name`\" pulumi-lang-yaml=\"`autoSnapshotPolicyName`\" pulumi-lang-java=\"`autoSnapshotPolicyName`\"\u003e`auto_snapshot_policy_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.236.0. New field \u003cspan pulumi-lang-nodejs=\"`autoSnapshotPolicyName`\" pulumi-lang-dotnet=\"`AutoSnapshotPolicyName`\" pulumi-lang-go=\"`autoSnapshotPolicyName`\" pulumi-lang-python=\"`auto_snapshot_policy_name`\" pulumi-lang-yaml=\"`autoSnapshotPolicyName`\" pulumi-lang-java=\"`autoSnapshotPolicyName`\"\u003e`auto_snapshot_policy_name`\u003c/span\u003e instead."},"regionId":{"type":"string","description":"(Available since v1.236.0) The region ID of the automatic snapshot policy.\n"},"repeatWeekdays":{"type":"array","items":{"type":"string"},"description":"The days of the week on which to create automatic snapshots. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e, which correspond to the days of the week. For example, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e indicates Monday. One or more days can be specified.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. If this parameter is specified to query resources, up to 1,000 resources that belong to the specified resource group can be displayed in the response.\n"},"retentionDays":{"type":"integer","description":"The retention period of the automatic snapshots. Unit: days. Valid values:\n- `-1`: Automatic snapshots are retained until they are deleted.\n"},"status":{"type":"string","description":"The status of the automatic snapshot policy.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"targetCopyRegions":{"type":"array","items":{"type":"string"},"description":"The destination region to which to copy the snapshot. You can specify only a single destination region.\n"},"timePoints":{"type":"array","items":{"type":"string"},"description":"The points in time of the day at which to create automatic snapshots.\n\nThe time is displayed in UTC+8. Unit: hours. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`23`\" pulumi-lang-dotnet=\"`23`\" pulumi-lang-go=\"`23`\" pulumi-lang-python=\"`23`\" pulumi-lang-yaml=\"`23`\" pulumi-lang-java=\"`23`\"\u003e`23`\u003c/span\u003e, which correspond to the 24 points in time on the hour from 00:00:00 to 23:00:00. For example, 1 indicates 01:00:00. Multiple points in time can be specified.\n\nThe parameter value is a JSON array that contains up to 24 points in time separated by commas (,). Example: [\"0\", \"1\", ... \"23\"].\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"type":"object"}},"alicloud:ecs/capacityReservation:CapacityReservation":{"description":"Provides a Ecs Capacity Reservation resource.\n\nFor information about Ecs Capacity Reservation and how to use it, see [What is Capacity Reservation](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/createcapacityreservation).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ecs.getInstanceTypes({\n    instanceTypeFamily: \"ecs.g5\",\n});\nconst defaultGetZones = _default.then(_default =\u003e alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n    availableInstanceType: _default.ids?.[0],\n}));\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultCapacityReservation = new alicloud.ecs.CapacityReservation(\"default\", {\n    description: \"terraform-example\",\n    platform: \"linux\",\n    capacityReservationName: \"terraform-example\",\n    endTimeType: \"Unlimited\",\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.ids?.[0]),\n    instanceAmount: 1,\n    instanceType: _default.then(_default =\u003e _default.ids?.[0]),\n    matchCriteria: \"Open\",\n    tags: {\n        Created: \"terraform-example\",\n    },\n    zoneIds: [defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id)],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ecs.get_instance_types(instance_type_family=\"ecs.g5\")\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"Instance\",\n    available_instance_type=default.ids[0])\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_capacity_reservation = alicloud.ecs.CapacityReservation(\"default\",\n    description=\"terraform-example\",\n    platform=\"linux\",\n    capacity_reservation_name=\"terraform-example\",\n    end_time_type=\"Unlimited\",\n    resource_group_id=default_get_resource_groups.ids[0],\n    instance_amount=1,\n    instance_type=default.ids[0],\n    match_criteria=\"Open\",\n    tags={\n        \"Created\": \"terraform-example\",\n    },\n    zone_ids=[default_get_zones.zones[0].id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        InstanceTypeFamily = \"ecs.g5\",\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n        AvailableInstanceType = @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Ids[0]),\n    });\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultCapacityReservation = new AliCloud.Ecs.CapacityReservation(\"default\", new()\n    {\n        Description = \"terraform-example\",\n        Platform = \"linux\",\n        CapacityReservationName = \"terraform-example\",\n        EndTimeType = \"Unlimited\",\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0]),\n        InstanceAmount = 1,\n        InstanceType = @default.Apply(@default =\u003e @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Ids[0])),\n        MatchCriteria = \"Open\",\n        Tags = \n        {\n            { \"Created\", \"terraform-example\" },\n        },\n        ZoneIds = new[]\n        {\n            defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tInstanceTypeFamily: pulumi.StringRef(\"ecs.g5\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t\tAvailableInstanceType:     pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewCapacityReservation(ctx, \"default\", \u0026ecs.CapacityReservationArgs{\n\t\t\tDescription:             pulumi.String(\"terraform-example\"),\n\t\t\tPlatform:                pulumi.String(\"linux\"),\n\t\t\tCapacityReservationName: pulumi.String(\"terraform-example\"),\n\t\t\tEndTimeType:             pulumi.String(\"Unlimited\"),\n\t\t\tResourceGroupId:         pulumi.String(defaultGetResourceGroups.Ids[0]),\n\t\t\tInstanceAmount:          pulumi.Int(1),\n\t\t\tInstanceType:            pulumi.String(_default.Ids[0]),\n\t\t\tMatchCriteria:           pulumi.String(\"Open\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"terraform-example\"),\n\t\t\t},\n\t\t\tZoneIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.ecs.CapacityReservation;\nimport com.pulumi.alicloud.ecs.CapacityReservationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .instanceTypeFamily(\"ecs.g5\")\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .availableInstanceType(default_.ids()[0])\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var defaultCapacityReservation = new CapacityReservation(\"defaultCapacityReservation\", CapacityReservationArgs.builder()\n            .description(\"terraform-example\")\n            .platform(\"linux\")\n            .capacityReservationName(\"terraform-example\")\n            .endTimeType(\"Unlimited\")\n            .resourceGroupId(defaultGetResourceGroups.ids()[0])\n            .instanceAmount(1)\n            .instanceType(default_.ids()[0])\n            .matchCriteria(\"Open\")\n            .tags(Map.of(\"Created\", \"terraform-example\"))\n            .zoneIds(defaultGetZones.zones()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultCapacityReservation:\n    type: alicloud:ecs:CapacityReservation\n    name: default\n    properties:\n      description: terraform-example\n      platform: linux\n      capacityReservationName: terraform-example\n      endTimeType: Unlimited\n      resourceGroupId: ${defaultGetResourceGroups.ids[0]}\n      instanceAmount: 1\n      instanceType: ${default.ids[0]}\n      matchCriteria: Open\n      tags:\n        Created: terraform-example\n      zoneIds:\n        - ${defaultGetZones.zones[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        instanceTypeFamily: ecs.g5\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n        availableInstanceType: ${default.ids[0]}\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEcs Capacity Reservation can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_ecs_capacity_reservation.example \u003cid\u003e\n```\n\n","properties":{"capacityReservationName":{"type":"string","description":"Capacity reservation service name.\n"},"description":{"type":"string","description":"description of the capacity reservation instance.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to pre-check the API request. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"endTime":{"type":"string","description":"end time of the capacity reservation. the capacity reservation will be  released at the end time automatically if set. otherwise it will last until manually released\n"},"endTimeType":{"type":"string","description":"Release mode of capacity reservation service. Value range:Limited: release at specified time. The EndTime parameter must be specified at the same time.Unlimited: manual release. No time limit.\n"},"instanceAmount":{"type":"integer","description":"The total number of instances that need to be reserved within the capacity reservation.\n"},"instanceType":{"type":"string","description":"Instance type. Currently, you can only set the capacity reservation service for one instance type.\n"},"matchCriteria":{"type":"string","description":"The type of private resource pool generated after the capacity reservation service takes effect. Value range:Open: Open mode.Target: dedicated mode.Default value: Open\n"},"paymentType":{"type":"string","description":"The payment type of the resource\n"},"platform":{"type":"string","description":"platform of the capacity reservation, value range \u003cspan pulumi-lang-nodejs=\"`windows`\" pulumi-lang-dotnet=\"`Windows`\" pulumi-lang-go=\"`windows`\" pulumi-lang-python=\"`windows`\" pulumi-lang-yaml=\"`windows`\" pulumi-lang-java=\"`windows`\"\u003e`windows`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\"\u003e`linux`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"startTime":{"type":"string","description":"time of the capacity reservation which become active.\n"},"startTimeType":{"type":"string","description":"The capacity is scheduled to take effect. Possible values:-Now: Effective immediately.-Later: the specified time takes effect.\n"},"status":{"type":"string","description":"The status of the capacity reservation.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"timeSlot":{"type":"string","description":"This parameter is under test and is not yet open for use.\n"},"zoneIds":{"type":"array","items":{"type":"string"},"description":"The ID of the zone in the region to which the capacity reservation service belongs. Currently, it is only supported to create a capacity reservation service in one zone.\n"}},"required":["capacityReservationName","endTime","endTimeType","instanceAmount","instanceType","matchCriteria","paymentType","platform","startTime","startTimeType","status","timeSlot","zoneIds"],"inputProperties":{"capacityReservationName":{"type":"string","description":"Capacity reservation service name.\n"},"description":{"type":"string","description":"description of the capacity reservation instance.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to pre-check the API request. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"endTime":{"type":"string","description":"end time of the capacity reservation. the capacity reservation will be  released at the end time automatically if set. otherwise it will last until manually released\n"},"endTimeType":{"type":"string","description":"Release mode of capacity reservation service. Value range:Limited: release at specified time. The EndTime parameter must be specified at the same time.Unlimited: manual release. No time limit.\n"},"instanceAmount":{"type":"integer","description":"The total number of instances that need to be reserved within the capacity reservation.\n"},"instanceType":{"type":"string","description":"Instance type. Currently, you can only set the capacity reservation service for one instance type.\n","willReplaceOnChanges":true},"matchCriteria":{"type":"string","description":"The type of private resource pool generated after the capacity reservation service takes effect. Value range:Open: Open mode.Target: dedicated mode.Default value: Open\n","willReplaceOnChanges":true},"platform":{"type":"string","description":"platform of the capacity reservation, value range \u003cspan pulumi-lang-nodejs=\"`windows`\" pulumi-lang-dotnet=\"`Windows`\" pulumi-lang-go=\"`windows`\" pulumi-lang-python=\"`windows`\" pulumi-lang-yaml=\"`windows`\" pulumi-lang-java=\"`windows`\"\u003e`windows`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\"\u003e`linux`\u003c/span\u003e.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The resource group id.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"zoneIds":{"type":"array","items":{"type":"string"},"description":"The ID of the zone in the region to which the capacity reservation service belongs. Currently, it is only supported to create a capacity reservation service in one zone.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceAmount","instanceType","zoneIds"],"stateInputs":{"description":"Input properties used for looking up and filtering CapacityReservation resources.\n","properties":{"capacityReservationName":{"type":"string","description":"Capacity reservation service name.\n"},"description":{"type":"string","description":"description of the capacity reservation instance.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to pre-check the API request. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"endTime":{"type":"string","description":"end time of the capacity reservation. the capacity reservation will be  released at the end time automatically if set. otherwise it will last until manually released\n"},"endTimeType":{"type":"string","description":"Release mode of capacity reservation service. Value range:Limited: release at specified time. The EndTime parameter must be specified at the same time.Unlimited: manual release. No time limit.\n"},"instanceAmount":{"type":"integer","description":"The total number of instances that need to be reserved within the capacity reservation.\n"},"instanceType":{"type":"string","description":"Instance type. Currently, you can only set the capacity reservation service for one instance type.\n","willReplaceOnChanges":true},"matchCriteria":{"type":"string","description":"The type of private resource pool generated after the capacity reservation service takes effect. Value range:Open: Open mode.Target: dedicated mode.Default value: Open\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The payment type of the resource\n"},"platform":{"type":"string","description":"platform of the capacity reservation, value range \u003cspan pulumi-lang-nodejs=\"`windows`\" pulumi-lang-dotnet=\"`Windows`\" pulumi-lang-go=\"`windows`\" pulumi-lang-python=\"`windows`\" pulumi-lang-yaml=\"`windows`\" pulumi-lang-java=\"`windows`\"\u003e`windows`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\"\u003e`linux`\u003c/span\u003e.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The resource group id.\n","willReplaceOnChanges":true},"startTime":{"type":"string","description":"time of the capacity reservation which become active.\n"},"startTimeType":{"type":"string","description":"The capacity is scheduled to take effect. Possible values:-Now: Effective immediately.-Later: the specified time takes effect.\n"},"status":{"type":"string","description":"The status of the capacity reservation.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"timeSlot":{"type":"string","description":"This parameter is under test and is not yet open for use.\n"},"zoneIds":{"type":"array","items":{"type":"string"},"description":"The ID of the zone in the region to which the capacity reservation service belongs. Currently, it is only supported to create a capacity reservation service in one zone.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/command:Command":{"description":"Provides a ECS Command resource.\n\nFor information about ECS Command and how to use it, see [What is Command](https://www.alibabacloud.com/help/en/doc-detail/64844.htm).\n\n\u003e **NOTE:** Available in v1.116.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.ecs.Command(\"example\", {\n    name: \"tf-testAcc\",\n    commandContent: \"bHMK\",\n    description: \"For Terraform Test\",\n    type: \"RunShellScript\",\n    workingDir: \"/root\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ecs.Command(\"example\",\n    name=\"tf-testAcc\",\n    command_content=\"bHMK\",\n    description=\"For Terraform Test\",\n    type=\"RunShellScript\",\n    working_dir=\"/root\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Ecs.Command(\"example\", new()\n    {\n        Name = \"tf-testAcc\",\n        CommandContent = \"bHMK\",\n        Description = \"For Terraform Test\",\n        Type = \"RunShellScript\",\n        WorkingDir = \"/root\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewCommand(ctx, \"example\", \u0026ecs.CommandArgs{\n\t\t\tName:           pulumi.String(\"tf-testAcc\"),\n\t\t\tCommandContent: pulumi.String(\"bHMK\"),\n\t\t\tDescription:    pulumi.String(\"For Terraform Test\"),\n\t\t\tType:           pulumi.String(\"RunShellScript\"),\n\t\t\tWorkingDir:     pulumi.String(\"/root\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.Command;\nimport com.pulumi.alicloud.ecs.CommandArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Command(\"example\", CommandArgs.builder()\n            .name(\"tf-testAcc\")\n            .commandContent(\"bHMK\")\n            .description(\"For Terraform Test\")\n            .type(\"RunShellScript\")\n            .workingDir(\"/root\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:ecs:Command\n    properties:\n      name: tf-testAcc\n      commandContent: bHMK\n      description: For Terraform Test\n      type: RunShellScript\n      workingDir: /root\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Command can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/command:Command example \u003cid\u003e\n```\n\n","properties":{"commandContent":{"type":"string","description":"The Base64-encoded content of the command.\n"},"description":{"type":"string","description":"The description of command.\n"},"enableParameter":{"type":"boolean","description":"Specifies whether to use custom parameters in the command to be created. Default to: false.\n"},"name":{"type":"string","description":"The name of the command, which supports all character sets. It can be up to 128 characters in length.\n"},"timeout":{"type":"integer","description":"The timeout period that is specified for the command to be run on ECS instances. Unit: seconds. Default to: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The command type. Valid Values: `RunBatScript`, `RunPowerShellScript` and `RunShellScript`.\n"},"workingDir":{"type":"string","description":"The execution path of the command in the ECS instance.\n"}},"required":["commandContent","name","type"],"inputProperties":{"commandContent":{"type":"string","description":"The Base64-encoded content of the command.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of command.\n","willReplaceOnChanges":true},"enableParameter":{"type":"boolean","description":"Specifies whether to use custom parameters in the command to be created. Default to: false.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the command, which supports all character sets. It can be up to 128 characters in length.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"The timeout period that is specified for the command to be run on ECS instances. Unit: seconds. Default to: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The command type. Valid Values: `RunBatScript`, `RunPowerShellScript` and `RunShellScript`.\n","willReplaceOnChanges":true},"workingDir":{"type":"string","description":"The execution path of the command in the ECS instance.\n","willReplaceOnChanges":true}},"requiredInputs":["commandContent","type"],"stateInputs":{"description":"Input properties used for looking up and filtering Command resources.\n","properties":{"commandContent":{"type":"string","description":"The Base64-encoded content of the command.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of command.\n","willReplaceOnChanges":true},"enableParameter":{"type":"boolean","description":"Specifies whether to use custom parameters in the command to be created. Default to: false.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the command, which supports all character sets. It can be up to 128 characters in length.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"The timeout period that is specified for the command to be run on ECS instances. Unit: seconds. Default to: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The command type. Valid Values: `RunBatScript`, `RunPowerShellScript` and `RunShellScript`.\n","willReplaceOnChanges":true},"workingDir":{"type":"string","description":"The execution path of the command in the ECS instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/copyImage:CopyImage":{"properties":{"deleteAutoSnapshot":{"type":"boolean"},"description":{"type":"string"},"encrypted":{"type":"boolean"},"force":{"type":"boolean"},"imageName":{"type":"string"},"kmsKeyId":{"type":"string"},"name":{"type":"string","deprecationMessage":"Attribute 'name' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e instead."},"sourceImageId":{"type":"string"},"sourceRegionId":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"required":["imageName","name","sourceImageId","sourceRegionId"],"inputProperties":{"deleteAutoSnapshot":{"type":"boolean"},"description":{"type":"string"},"encrypted":{"type":"boolean","willReplaceOnChanges":true},"force":{"type":"boolean"},"imageName":{"type":"string"},"kmsKeyId":{"type":"string","willReplaceOnChanges":true},"name":{"type":"string","deprecationMessage":"Attribute 'name' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e instead."},"sourceImageId":{"type":"string","willReplaceOnChanges":true},"sourceRegionId":{"type":"string","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"requiredInputs":["sourceImageId","sourceRegionId"],"stateInputs":{"description":"Input properties used for looking up and filtering CopyImage resources.\n","properties":{"deleteAutoSnapshot":{"type":"boolean"},"description":{"type":"string"},"encrypted":{"type":"boolean","willReplaceOnChanges":true},"force":{"type":"boolean"},"imageName":{"type":"string"},"kmsKeyId":{"type":"string","willReplaceOnChanges":true},"name":{"type":"string","deprecationMessage":"Attribute 'name' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e instead."},"sourceImageId":{"type":"string","willReplaceOnChanges":true},"sourceRegionId":{"type":"string","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"type":"object"}},"alicloud:ecs/dedicatedHost:DedicatedHost":{"description":"This resouce used to create a dedicated host and store its initial version. For information about Aliecs Dedicated Host and how to use it, see [What is Resource Aliecs Dedicated Host](https://www.alibabacloud.com/help/doc-detail/134238.htm).\n\n\u003e **NOTE:** Available since v1.91.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ecs.DedicatedHost(\"default\", {\n    dedicatedHostType: \"ddh.g6\",\n    tags: {\n        Create: \"Terraform\",\n        For: \"DDH\",\n    },\n    description: \"From_Terraform\",\n    dedicatedHostName: \"dedicated_host_name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ecs.DedicatedHost(\"default\",\n    dedicated_host_type=\"ddh.g6\",\n    tags={\n        \"Create\": \"Terraform\",\n        \"For\": \"DDH\",\n    },\n    description=\"From_Terraform\",\n    dedicated_host_name=\"dedicated_host_name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ecs.DedicatedHost(\"default\", new()\n    {\n        DedicatedHostType = \"ddh.g6\",\n        Tags = \n        {\n            { \"Create\", \"Terraform\" },\n            { \"For\", \"DDH\" },\n        },\n        Description = \"From_Terraform\",\n        DedicatedHostName = \"dedicated_host_name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewDedicatedHost(ctx, \"default\", \u0026ecs.DedicatedHostArgs{\n\t\t\tDedicatedHostType: pulumi.String(\"ddh.g6\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Create\": pulumi.String(\"Terraform\"),\n\t\t\t\t\"For\":    pulumi.String(\"DDH\"),\n\t\t\t},\n\t\t\tDescription:       pulumi.String(\"From_Terraform\"),\n\t\t\tDedicatedHostName: pulumi.String(\"dedicated_host_name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.DedicatedHost;\nimport com.pulumi.alicloud.ecs.DedicatedHostArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new DedicatedHost(\"default\", DedicatedHostArgs.builder()\n            .dedicatedHostType(\"ddh.g6\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Create\", \"Terraform\"),\n                Map.entry(\"For\", \"DDH\")\n            ))\n            .description(\"From_Terraform\")\n            .dedicatedHostName(\"dedicated_host_name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ecs:DedicatedHost\n    properties:\n      dedicatedHostType: ddh.g6\n      tags:\n        Create: Terraform\n        For: DDH\n      description: From_Terraform\n      dedicatedHostName: dedicated_host_name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nCreate Prepaid DDH\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.ecs.DedicatedHost(\"example\", {\n    dedicatedHostType: \"ddh.g5\",\n    tags: {\n        Create: \"Terraform\",\n        For: \"DDH\",\n    },\n    description: \"terraform-example\",\n    dedicatedHostName: \"terraform-example\",\n    paymentType: \"PrePaid\",\n    expiredTime: \"1\",\n    saleCycle: \"Month\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ecs.DedicatedHost(\"example\",\n    dedicated_host_type=\"ddh.g5\",\n    tags={\n        \"Create\": \"Terraform\",\n        \"For\": \"DDH\",\n    },\n    description=\"terraform-example\",\n    dedicated_host_name=\"terraform-example\",\n    payment_type=\"PrePaid\",\n    expired_time=\"1\",\n    sale_cycle=\"Month\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Ecs.DedicatedHost(\"example\", new()\n    {\n        DedicatedHostType = \"ddh.g5\",\n        Tags = \n        {\n            { \"Create\", \"Terraform\" },\n            { \"For\", \"DDH\" },\n        },\n        Description = \"terraform-example\",\n        DedicatedHostName = \"terraform-example\",\n        PaymentType = \"PrePaid\",\n        ExpiredTime = \"1\",\n        SaleCycle = \"Month\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewDedicatedHost(ctx, \"example\", \u0026ecs.DedicatedHostArgs{\n\t\t\tDedicatedHostType: pulumi.String(\"ddh.g5\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Create\": pulumi.String(\"Terraform\"),\n\t\t\t\t\"For\":    pulumi.String(\"DDH\"),\n\t\t\t},\n\t\t\tDescription:       pulumi.String(\"terraform-example\"),\n\t\t\tDedicatedHostName: pulumi.String(\"terraform-example\"),\n\t\t\tPaymentType:       pulumi.String(\"PrePaid\"),\n\t\t\tExpiredTime:       pulumi.String(\"1\"),\n\t\t\tSaleCycle:         pulumi.String(\"Month\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.DedicatedHost;\nimport com.pulumi.alicloud.ecs.DedicatedHostArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new DedicatedHost(\"example\", DedicatedHostArgs.builder()\n            .dedicatedHostType(\"ddh.g5\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Create\", \"Terraform\"),\n                Map.entry(\"For\", \"DDH\")\n            ))\n            .description(\"terraform-example\")\n            .dedicatedHostName(\"terraform-example\")\n            .paymentType(\"PrePaid\")\n            .expiredTime(\"1\")\n            .saleCycle(\"Month\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:ecs:DedicatedHost\n    properties:\n      dedicatedHostType: ddh.g5\n      tags:\n        Create: Terraform\n        For: DDH\n      description: terraform-example\n      dedicatedHostName: terraform-example\n      paymentType: PrePaid\n      expiredTime: 1\n      saleCycle: Month\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Deleting\u003cspan pulumi-lang-nodejs=\" alicloud.ecs.DedicatedHost \" pulumi-lang-dotnet=\" alicloud.ecs.DedicatedHost \" pulumi-lang-go=\" ecs.DedicatedHost \" pulumi-lang-python=\" ecs.DedicatedHost \" pulumi-lang-yaml=\" alicloud.ecs.DedicatedHost \" pulumi-lang-java=\" alicloud.ecs.DedicatedHost \"\u003e alicloud.ecs.DedicatedHost \u003c/span\u003eor removing it from your configuration\n\nThe\u003cspan pulumi-lang-nodejs=\" alicloud.ecs.DedicatedHost \" pulumi-lang-dotnet=\" alicloud.ecs.DedicatedHost \" pulumi-lang-go=\" ecs.DedicatedHost \" pulumi-lang-python=\" ecs.DedicatedHost \" pulumi-lang-yaml=\" alicloud.ecs.DedicatedHost \" pulumi-lang-java=\" alicloud.ecs.DedicatedHost \"\u003e alicloud.ecs.DedicatedHost \u003c/span\u003eresource allows you to manage\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003e= \"PrePaid\" dedicated host, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration\nwill remove it from your state file and management, but will not destroy the Dedicated Host.\nYou can resume managing the subscription dedicated host via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEcs dedicated host can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/dedicatedHost:DedicatedHost default dh-2zedmxxxx\n```\n\n","properties":{"actionOnMaintenance":{"type":"string","description":"The policy used to migrate the instances from the dedicated host when the dedicated host fails or needs to be repaired online. Valid values: `Migrate`, `Stop`.\n"},"autoPlacement":{"type":"string","description":"Specifies whether to add the dedicated host to the resource pool for automatic deployment. If you do not specify the DedicatedHostId parameter when you create an instance on a dedicated host, Alibaba Cloud automatically selects a dedicated host from the resource pool to host the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Default: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e.\n"},"autoReleaseTime":{"type":"string","description":"The automatic release time of the dedicated host. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC+0.\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to automatically renew the subscription dedicated host.\n"},"autoRenewPeriod":{"type":"integer","description":"The auto-renewal period of the dedicated host. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e. takes effect and is required only when the AutoRenew parameter is set to true.\n"},"cpuOverCommitRatio":{"type":"number","description":"CPU oversold ratio. Only custom specifications g6s, c6s, r6s support setting the CPU oversold ratio.\n"},"dedicatedHostClusterId":{"type":"string","description":"The dedicated host cluster ID to which the dedicated host belongs.\n"},"dedicatedHostName":{"type":"string","description":"The name of the dedicated host. The name must be 2 to 128 characters in length. It must start with a letter but cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n"},"dedicatedHostType":{"type":"string","description":"The type of the dedicated host. You can call the [DescribeDedicatedHostTypes](https://www.alibabacloud.com/help/doc-detail/134240.htm) operation to obtain the most recent list of dedicated host types.\n"},"description":{"type":"string","description":"The description of the dedicated host. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"detailFee":{"type":"boolean","description":"Specifies whether to return the billing details of the order when the billing method is changed from subscription to pay-as-you-go. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to only validate the request. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"expiredTime":{"type":"string","description":"The subscription period of the dedicated host. The Period parameter takes effect and is required only when the ChargeType parameter is set to PrePaid.\n"},"minQuantity":{"type":"integer","description":"Specify the minimum purchase quantity of a dedicated host.\n"},"networkAttributes":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/DedicatedHostNetworkAttribute:DedicatedHostNetworkAttribute"},"description":"dedicated host network parameters. contains the following attributes:\n"},"paymentType":{"type":"string","description":"The billing method of the dedicated host. Valid values: `PrePaid`, `PostPaid`. Default: `PostPaid`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the dedicated host belongs.\n"},"saleCycle":{"type":"string","description":"The unit of the subscription period of the dedicated host.\n"},"status":{"type":"string","description":"The status of the dedicated host.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"zoneId":{"type":"string","description":"The zone ID of the dedicated host. This parameter is empty by default. If you do not specify this parameter, the system automatically selects a zone.\n"}},"required":["autoReleaseTime","dedicatedHostType","expiredTime","paymentType","resourceGroupId","saleCycle","status","zoneId"],"inputProperties":{"actionOnMaintenance":{"type":"string","description":"The policy used to migrate the instances from the dedicated host when the dedicated host fails or needs to be repaired online. Valid values: `Migrate`, `Stop`.\n"},"autoPlacement":{"type":"string","description":"Specifies whether to add the dedicated host to the resource pool for automatic deployment. If you do not specify the DedicatedHostId parameter when you create an instance on a dedicated host, Alibaba Cloud automatically selects a dedicated host from the resource pool to host the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Default: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e.\n"},"autoReleaseTime":{"type":"string","description":"The automatic release time of the dedicated host. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC+0.\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to automatically renew the subscription dedicated host.\n"},"autoRenewPeriod":{"type":"integer","description":"The auto-renewal period of the dedicated host. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e. takes effect and is required only when the AutoRenew parameter is set to true.\n"},"cpuOverCommitRatio":{"type":"number","description":"CPU oversold ratio. Only custom specifications g6s, c6s, r6s support setting the CPU oversold ratio.\n"},"dedicatedHostClusterId":{"type":"string","description":"The dedicated host cluster ID to which the dedicated host belongs.\n"},"dedicatedHostName":{"type":"string","description":"The name of the dedicated host. The name must be 2 to 128 characters in length. It must start with a letter but cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n"},"dedicatedHostType":{"type":"string","description":"The type of the dedicated host. You can call the [DescribeDedicatedHostTypes](https://www.alibabacloud.com/help/doc-detail/134240.htm) operation to obtain the most recent list of dedicated host types.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the dedicated host. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"detailFee":{"type":"boolean","description":"Specifies whether to return the billing details of the order when the billing method is changed from subscription to pay-as-you-go. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to only validate the request. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"expiredTime":{"type":"string","description":"The subscription period of the dedicated host. The Period parameter takes effect and is required only when the ChargeType parameter is set to PrePaid.\n"},"minQuantity":{"type":"integer","description":"Specify the minimum purchase quantity of a dedicated host.\n"},"networkAttributes":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/DedicatedHostNetworkAttribute:DedicatedHostNetworkAttribute"},"description":"dedicated host network parameters. contains the following attributes:\n"},"paymentType":{"type":"string","description":"The billing method of the dedicated host. Valid values: `PrePaid`, `PostPaid`. Default: `PostPaid`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the dedicated host belongs.\n"},"saleCycle":{"type":"string","description":"The unit of the subscription period of the dedicated host.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"zoneId":{"type":"string","description":"The zone ID of the dedicated host. This parameter is empty by default. If you do not specify this parameter, the system automatically selects a zone.\n","willReplaceOnChanges":true}},"requiredInputs":["dedicatedHostType"],"stateInputs":{"description":"Input properties used for looking up and filtering DedicatedHost resources.\n","properties":{"actionOnMaintenance":{"type":"string","description":"The policy used to migrate the instances from the dedicated host when the dedicated host fails or needs to be repaired online. Valid values: `Migrate`, `Stop`.\n"},"autoPlacement":{"type":"string","description":"Specifies whether to add the dedicated host to the resource pool for automatic deployment. If you do not specify the DedicatedHostId parameter when you create an instance on a dedicated host, Alibaba Cloud automatically selects a dedicated host from the resource pool to host the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Default: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e.\n"},"autoReleaseTime":{"type":"string","description":"The automatic release time of the dedicated host. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC+0.\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to automatically renew the subscription dedicated host.\n"},"autoRenewPeriod":{"type":"integer","description":"The auto-renewal period of the dedicated host. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e. takes effect and is required only when the AutoRenew parameter is set to true.\n"},"cpuOverCommitRatio":{"type":"number","description":"CPU oversold ratio. Only custom specifications g6s, c6s, r6s support setting the CPU oversold ratio.\n"},"dedicatedHostClusterId":{"type":"string","description":"The dedicated host cluster ID to which the dedicated host belongs.\n"},"dedicatedHostName":{"type":"string","description":"The name of the dedicated host. The name must be 2 to 128 characters in length. It must start with a letter but cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n"},"dedicatedHostType":{"type":"string","description":"The type of the dedicated host. You can call the [DescribeDedicatedHostTypes](https://www.alibabacloud.com/help/doc-detail/134240.htm) operation to obtain the most recent list of dedicated host types.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the dedicated host. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"detailFee":{"type":"boolean","description":"Specifies whether to return the billing details of the order when the billing method is changed from subscription to pay-as-you-go. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to only validate the request. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"expiredTime":{"type":"string","description":"The subscription period of the dedicated host. The Period parameter takes effect and is required only when the ChargeType parameter is set to PrePaid.\n"},"minQuantity":{"type":"integer","description":"Specify the minimum purchase quantity of a dedicated host.\n"},"networkAttributes":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/DedicatedHostNetworkAttribute:DedicatedHostNetworkAttribute"},"description":"dedicated host network parameters. contains the following attributes:\n"},"paymentType":{"type":"string","description":"The billing method of the dedicated host. Valid values: `PrePaid`, `PostPaid`. Default: `PostPaid`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the dedicated host belongs.\n"},"saleCycle":{"type":"string","description":"The unit of the subscription period of the dedicated host.\n"},"status":{"type":"string","description":"The status of the dedicated host.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"zoneId":{"type":"string","description":"The zone ID of the dedicated host. This parameter is empty by default. If you do not specify this parameter, the system automatically selects a zone.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/disk:Disk":{"description":"Provides a ECS disk resource.\n\n\u003e **DEPRECATED:** This resource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.ecs.EcsDisk \" pulumi-lang-dotnet=\" alicloud.ecs.EcsDisk \" pulumi-lang-go=\" ecs.EcsDisk \" pulumi-lang-python=\" ecs.EcsDisk \" pulumi-lang-yaml=\" alicloud.ecs.EcsDisk \" pulumi-lang-java=\" alicloud.ecs.EcsDisk \"\u003e alicloud.ecs.EcsDisk \u003c/span\u003efrom version 1.122.0.\n\n\u003e **NOTE:** One of \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e is required when specifying an ECS disk. If all of them be specified, \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e must more than the size of snapshot which \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e represents. Currently, \u003cspan pulumi-lang-nodejs=\"`alicloud.ecs.Disk`\" pulumi-lang-dotnet=\"`alicloud.ecs.Disk`\" pulumi-lang-go=\"`ecs.Disk`\" pulumi-lang-python=\"`ecs.Disk`\" pulumi-lang-yaml=\"`alicloud.ecs.Disk`\" pulumi-lang-java=\"`alicloud.ecs.Disk`\"\u003e`alicloud.ecs.Disk`\u003c/span\u003e doesn't resize disk.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Create a new ECS disk.\nconst ecsDisk = new alicloud.ecs.Disk(\"ecs_disk\", {\n    availabilityZone: \"cn-beijing-b\",\n    name: \"New-disk\",\n    description: \"Hello ecs disk.\",\n    category: \"cloud_efficiency\",\n    size: 30,\n    encrypted: true,\n    kmsKeyId: \"2a6767f0-a16c-4679-a60f-13bf*****\",\n    tags: {\n        Name: \"TerraformTest\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Create a new ECS disk.\necs_disk = alicloud.ecs.Disk(\"ecs_disk\",\n    availability_zone=\"cn-beijing-b\",\n    name=\"New-disk\",\n    description=\"Hello ecs disk.\",\n    category=\"cloud_efficiency\",\n    size=30,\n    encrypted=True,\n    kms_key_id=\"2a6767f0-a16c-4679-a60f-13bf*****\",\n    tags={\n        \"Name\": \"TerraformTest\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new ECS disk.\n    var ecsDisk = new AliCloud.Ecs.Disk(\"ecs_disk\", new()\n    {\n        AvailabilityZone = \"cn-beijing-b\",\n        Name = \"New-disk\",\n        Description = \"Hello ecs disk.\",\n        Category = \"cloud_efficiency\",\n        Size = 30,\n        Encrypted = true,\n        KmsKeyId = \"2a6767f0-a16c-4679-a60f-13bf*****\",\n        Tags = \n        {\n            { \"Name\", \"TerraformTest\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new ECS disk.\n\t\t_, err := ecs.NewDisk(ctx, \"ecs_disk\", \u0026ecs.DiskArgs{\n\t\t\tAvailabilityZone: pulumi.String(\"cn-beijing-b\"),\n\t\t\tName:             pulumi.String(\"New-disk\"),\n\t\t\tDescription:      pulumi.String(\"Hello ecs disk.\"),\n\t\t\tCategory:         pulumi.String(\"cloud_efficiency\"),\n\t\t\tSize:             pulumi.Int(30),\n\t\t\tEncrypted:        pulumi.Bool(true),\n\t\t\tKmsKeyId:         pulumi.String(\"2a6767f0-a16c-4679-a60f-13bf*****\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"TerraformTest\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.Disk;\nimport com.pulumi.alicloud.ecs.DiskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new ECS disk.\n        var ecsDisk = new Disk(\"ecsDisk\", DiskArgs.builder()\n            .availabilityZone(\"cn-beijing-b\")\n            .name(\"New-disk\")\n            .description(\"Hello ecs disk.\")\n            .category(\"cloud_efficiency\")\n            .size(30)\n            .encrypted(true)\n            .kmsKeyId(\"2a6767f0-a16c-4679-a60f-13bf*****\")\n            .tags(Map.of(\"Name\", \"TerraformTest\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new ECS disk.\n  ecsDisk:\n    type: alicloud:ecs:Disk\n    name: ecs_disk\n    properties:\n      availabilityZone: cn-beijing-b\n      name: New-disk\n      description: Hello ecs disk.\n      category: cloud_efficiency\n      size: '30'\n      encrypted: true\n      kmsKeyId: 2a6767f0-a16c-4679-a60f-13bf*****\n      tags:\n        Name: TerraformTest\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nCloud disk can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/disk:Disk example d-abc12345678\n```\n\n","properties":{"advancedFeatures":{"type":"string"},"availabilityZone":{"type":"string","description":"The Zone to create the disk in.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead"},"burstingEnabled":{"type":"boolean"},"category":{"type":"string","description":"Category of the disk. Valid values are \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e. Default is \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n"},"createTime":{"type":"string"},"deleteAutoSnapshot":{"type":"boolean","description":"Indicates whether the automatic snapshot is deleted when the disk is released. Default value: false.\n"},"deleteWithInstance":{"type":"boolean","description":"Indicates whether the disk is released together with the instance: Default value: false.\n"},"description":{"type":"string","description":"Description of the disk. This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.\n"},"diskName":{"type":"string"},"dryRun":{"type":"boolean"},"enableAutoSnapshot":{"type":"boolean","description":"Indicates whether to apply a created automatic snapshot policy to the disk. Default value: false.\n"},"encryptAlgorithm":{"type":"string"},"encrypted":{"type":"boolean","description":"If true, the disk will be encrypted, conflict with \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e.\n"},"instanceId":{"type":"string"},"kmsKeyId":{"type":"string","description":"The ID of the KMS key corresponding to the data disk, The specified parameter `Encrypted` must be \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e when KmsKeyId is not empty.\n"},"multiAttach":{"type":"string"},"name":{"type":"string","description":"Name of the ECS disk. This name 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://. Default value is null.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`diskName`\" pulumi-lang-dotnet=\"`DiskName`\" pulumi-lang-go=\"`diskName`\" pulumi-lang-python=\"`disk_name`\" pulumi-lang-yaml=\"`diskName`\" pulumi-lang-java=\"`diskName`\"\u003e`disk_name`\u003c/span\u003e instead."},"paymentType":{"type":"string"},"performanceLevel":{"type":"string","description":"Specifies the performance level of an ESSD when you create the ESSD. Default value: `PL1`. Valid values:                                                       \n* `PL1`: A single ESSD delivers up to 50,000 random read/write IOPS.\n* `PL2`: A single ESSD delivers up to 100,000 random read/write IOPS.\n* `PL3`: A single ESSD delivers up to 1,000,000 random read/write IOPS.\n"},"provisionedIops":{"type":"integer"},"regionId":{"type":"string"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the disk belongs.\n\u003e **NOTE:** Disk category \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e has been outdated and it only can be used none I/O Optimized ECS instances. Recommend \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e disk.\n"},"size":{"type":"integer","description":"The size of the disk in GiBs. When resize the disk, the new size must be greater than the former value, or you would get an error `InvalidDiskSize.TooSmall`.\n"},"snapshotId":{"type":"string","description":"A snapshot to base the disk off of. If the disk size required by snapshot is greater than \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e, the \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e will be ignored, conflict with \u003cspan pulumi-lang-nodejs=\"`encrypted`\" pulumi-lang-dotnet=\"`Encrypted`\" pulumi-lang-go=\"`encrypted`\" pulumi-lang-python=\"`encrypted`\" pulumi-lang-yaml=\"`encrypted`\" pulumi-lang-java=\"`encrypted`\"\u003e`encrypted`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The disk status.\n"},"storageSetId":{"type":"string"},"storageSetPartitionNumber":{"type":"integer"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string"},"zoneId":{"type":"string"}},"required":["availabilityZone","createTime","deleteWithInstance","diskName","enableAutoSnapshot","encrypted","instanceId","kmsKeyId","multiAttach","name","paymentType","performanceLevel","regionId","resourceGroupId","size","snapshotId","status","zoneId"],"inputProperties":{"advancedFeatures":{"type":"string"},"availabilityZone":{"type":"string","description":"The Zone to create the disk in.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead","willReplaceOnChanges":true},"burstingEnabled":{"type":"boolean"},"category":{"type":"string","description":"Category of the disk. Valid values are \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e. Default is \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n"},"deleteAutoSnapshot":{"type":"boolean","description":"Indicates whether the automatic snapshot is deleted when the disk is released. Default value: false.\n"},"deleteWithInstance":{"type":"boolean","description":"Indicates whether the disk is released together with the instance: Default value: false.\n"},"description":{"type":"string","description":"Description of the disk. This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.\n"},"diskName":{"type":"string"},"dryRun":{"type":"boolean"},"enableAutoSnapshot":{"type":"boolean","description":"Indicates whether to apply a created automatic snapshot policy to the disk. Default value: false.\n"},"encryptAlgorithm":{"type":"string"},"encrypted":{"type":"boolean","description":"If true, the disk will be encrypted, conflict with \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceId":{"type":"string"},"kmsKeyId":{"type":"string","description":"The ID of the KMS key corresponding to the data disk, The specified parameter `Encrypted` must be \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e when KmsKeyId is not empty.\n","willReplaceOnChanges":true},"multiAttach":{"type":"string","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the ECS disk. This name 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://. Default value is null.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`diskName`\" pulumi-lang-dotnet=\"`DiskName`\" pulumi-lang-go=\"`diskName`\" pulumi-lang-python=\"`disk_name`\" pulumi-lang-yaml=\"`diskName`\" pulumi-lang-java=\"`diskName`\"\u003e`disk_name`\u003c/span\u003e instead."},"paymentType":{"type":"string"},"performanceLevel":{"type":"string","description":"Specifies the performance level of an ESSD when you create the ESSD. Default value: `PL1`. Valid values:                                                       \n* `PL1`: A single ESSD delivers up to 50,000 random read/write IOPS.\n* `PL2`: A single ESSD delivers up to 100,000 random read/write IOPS.\n* `PL3`: A single ESSD delivers up to 1,000,000 random read/write IOPS.\n"},"provisionedIops":{"type":"integer"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the disk belongs.\n\u003e **NOTE:** Disk category \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e has been outdated and it only can be used none I/O Optimized ECS instances. Recommend \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e disk.\n"},"size":{"type":"integer","description":"The size of the disk in GiBs. When resize the disk, the new size must be greater than the former value, or you would get an error `InvalidDiskSize.TooSmall`.\n"},"snapshotId":{"type":"string","description":"A snapshot to base the disk off of. If the disk size required by snapshot is greater than \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e, the \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e will be ignored, conflict with \u003cspan pulumi-lang-nodejs=\"`encrypted`\" pulumi-lang-dotnet=\"`Encrypted`\" pulumi-lang-go=\"`encrypted`\" pulumi-lang-python=\"`encrypted`\" pulumi-lang-yaml=\"`encrypted`\" pulumi-lang-java=\"`encrypted`\"\u003e`encrypted`\u003c/span\u003e.\n","willReplaceOnChanges":true},"storageSetId":{"type":"string","willReplaceOnChanges":true},"storageSetPartitionNumber":{"type":"integer","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string"},"zoneId":{"type":"string","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Disk resources.\n","properties":{"advancedFeatures":{"type":"string"},"availabilityZone":{"type":"string","description":"The Zone to create the disk in.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead","willReplaceOnChanges":true},"burstingEnabled":{"type":"boolean"},"category":{"type":"string","description":"Category of the disk. Valid values are \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e. Default is \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n"},"createTime":{"type":"string"},"deleteAutoSnapshot":{"type":"boolean","description":"Indicates whether the automatic snapshot is deleted when the disk is released. Default value: false.\n"},"deleteWithInstance":{"type":"boolean","description":"Indicates whether the disk is released together with the instance: Default value: false.\n"},"description":{"type":"string","description":"Description of the disk. This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.\n"},"diskName":{"type":"string"},"dryRun":{"type":"boolean"},"enableAutoSnapshot":{"type":"boolean","description":"Indicates whether to apply a created automatic snapshot policy to the disk. Default value: false.\n"},"encryptAlgorithm":{"type":"string"},"encrypted":{"type":"boolean","description":"If true, the disk will be encrypted, conflict with \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceId":{"type":"string"},"kmsKeyId":{"type":"string","description":"The ID of the KMS key corresponding to the data disk, The specified parameter `Encrypted` must be \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e when KmsKeyId is not empty.\n","willReplaceOnChanges":true},"multiAttach":{"type":"string","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the ECS disk. This name 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://. Default value is null.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`diskName`\" pulumi-lang-dotnet=\"`DiskName`\" pulumi-lang-go=\"`diskName`\" pulumi-lang-python=\"`disk_name`\" pulumi-lang-yaml=\"`diskName`\" pulumi-lang-java=\"`diskName`\"\u003e`disk_name`\u003c/span\u003e instead."},"paymentType":{"type":"string"},"performanceLevel":{"type":"string","description":"Specifies the performance level of an ESSD when you create the ESSD. Default value: `PL1`. Valid values:                                                       \n* `PL1`: A single ESSD delivers up to 50,000 random read/write IOPS.\n* `PL2`: A single ESSD delivers up to 100,000 random read/write IOPS.\n* `PL3`: A single ESSD delivers up to 1,000,000 random read/write IOPS.\n"},"provisionedIops":{"type":"integer"},"regionId":{"type":"string"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the disk belongs.\n\u003e **NOTE:** Disk category \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e has been outdated and it only can be used none I/O Optimized ECS instances. Recommend \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e disk.\n"},"size":{"type":"integer","description":"The size of the disk in GiBs. When resize the disk, the new size must be greater than the former value, or you would get an error `InvalidDiskSize.TooSmall`.\n"},"snapshotId":{"type":"string","description":"A snapshot to base the disk off of. If the disk size required by snapshot is greater than \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e, the \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e will be ignored, conflict with \u003cspan pulumi-lang-nodejs=\"`encrypted`\" pulumi-lang-dotnet=\"`Encrypted`\" pulumi-lang-go=\"`encrypted`\" pulumi-lang-python=\"`encrypted`\" pulumi-lang-yaml=\"`encrypted`\" pulumi-lang-java=\"`encrypted`\"\u003e`encrypted`\u003c/span\u003e.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The disk status.\n"},"storageSetId":{"type":"string","willReplaceOnChanges":true},"storageSetPartitionNumber":{"type":"integer","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string"},"zoneId":{"type":"string","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/diskAttachment:DiskAttachment":{"description":"\u003e **DEPRECATED:** This resource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.ecs.EcsDiskAttachment \" pulumi-lang-dotnet=\" alicloud.ecs.EcsDiskAttachment \" pulumi-lang-go=\" ecs.EcsDiskAttachment \" pulumi-lang-python=\" ecs.EcsDiskAttachment \" pulumi-lang-yaml=\" alicloud.ecs.EcsDiskAttachment \" pulumi-lang-java=\" alicloud.ecs.EcsDiskAttachment \"\u003e alicloud.ecs.EcsDiskAttachment \u003c/span\u003efrom version 1.122.0.\n\nProvides an Alicloud ECS Disk Attachment as a resource, to attach and detach disks from ECS Instances.\n\n## Example Usage\n\nBasic usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Create a new ECS disk-attachment and use it attach one disk to a new instance.\nconst ecsSg = new alicloud.ecs.SecurityGroup(\"ecs_sg\", {\n    name: \"terraform-test-group\",\n    description: \"New security group\",\n});\nconst ecsDisk = new alicloud.ecs.Disk(\"ecs_disk\", {\n    availabilityZone: \"cn-beijing-a\",\n    size: 50,\n    tags: {\n        Name: \"TerraformTest-disk\",\n    },\n});\nconst ecsInstance = new alicloud.ecs.Instance(\"ecs_instance\", {\n    imageId: \"ubuntu_18_04_64_20G_alibase_20190624.vhd\",\n    instanceType: \"ecs.n4.small\",\n    availabilityZone: \"cn-beijing-a\",\n    securityGroups: [ecsSg.id],\n    instanceName: \"Hello\",\n    internetChargeType: \"PayByBandwidth\",\n    tags: {\n        Name: \"TerraformTest-instance\",\n    },\n});\nconst ecsDiskAtt = new alicloud.ecs.DiskAttachment(\"ecs_disk_att\", {\n    diskId: ecsDisk.id,\n    instanceId: ecsInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Create a new ECS disk-attachment and use it attach one disk to a new instance.\necs_sg = alicloud.ecs.SecurityGroup(\"ecs_sg\",\n    name=\"terraform-test-group\",\n    description=\"New security group\")\necs_disk = alicloud.ecs.Disk(\"ecs_disk\",\n    availability_zone=\"cn-beijing-a\",\n    size=50,\n    tags={\n        \"Name\": \"TerraformTest-disk\",\n    })\necs_instance = alicloud.ecs.Instance(\"ecs_instance\",\n    image_id=\"ubuntu_18_04_64_20G_alibase_20190624.vhd\",\n    instance_type=\"ecs.n4.small\",\n    availability_zone=\"cn-beijing-a\",\n    security_groups=[ecs_sg.id],\n    instance_name=\"Hello\",\n    internet_charge_type=\"PayByBandwidth\",\n    tags={\n        \"Name\": \"TerraformTest-instance\",\n    })\necs_disk_att = alicloud.ecs.DiskAttachment(\"ecs_disk_att\",\n    disk_id=ecs_disk.id,\n    instance_id=ecs_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new ECS disk-attachment and use it attach one disk to a new instance.\n    var ecsSg = new AliCloud.Ecs.SecurityGroup(\"ecs_sg\", new()\n    {\n        Name = \"terraform-test-group\",\n        Description = \"New security group\",\n    });\n\n    var ecsDisk = new AliCloud.Ecs.Disk(\"ecs_disk\", new()\n    {\n        AvailabilityZone = \"cn-beijing-a\",\n        Size = 50,\n        Tags = \n        {\n            { \"Name\", \"TerraformTest-disk\" },\n        },\n    });\n\n    var ecsInstance = new AliCloud.Ecs.Instance(\"ecs_instance\", new()\n    {\n        ImageId = \"ubuntu_18_04_64_20G_alibase_20190624.vhd\",\n        InstanceType = \"ecs.n4.small\",\n        AvailabilityZone = \"cn-beijing-a\",\n        SecurityGroups = new[]\n        {\n            ecsSg.Id,\n        },\n        InstanceName = \"Hello\",\n        InternetChargeType = \"PayByBandwidth\",\n        Tags = \n        {\n            { \"Name\", \"TerraformTest-instance\" },\n        },\n    });\n\n    var ecsDiskAtt = new AliCloud.Ecs.DiskAttachment(\"ecs_disk_att\", new()\n    {\n        DiskId = ecsDisk.Id,\n        InstanceId = ecsInstance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new ECS disk-attachment and use it attach one disk to a new instance.\n\t\tecsSg, err := ecs.NewSecurityGroup(ctx, \"ecs_sg\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:        pulumi.String(\"terraform-test-group\"),\n\t\t\tDescription: pulumi.String(\"New security group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tecsDisk, err := ecs.NewDisk(ctx, \"ecs_disk\", \u0026ecs.DiskArgs{\n\t\t\tAvailabilityZone: pulumi.String(\"cn-beijing-a\"),\n\t\t\tSize:             pulumi.Int(50),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"TerraformTest-disk\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tecsInstance, err := ecs.NewInstance(ctx, \"ecs_instance\", \u0026ecs.InstanceArgs{\n\t\t\tImageId:          pulumi.String(\"ubuntu_18_04_64_20G_alibase_20190624.vhd\"),\n\t\t\tInstanceType:     pulumi.String(\"ecs.n4.small\"),\n\t\t\tAvailabilityZone: pulumi.String(\"cn-beijing-a\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tecsSg.ID(),\n\t\t\t},\n\t\t\tInstanceName:       pulumi.String(\"Hello\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByBandwidth\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"TerraformTest-instance\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewDiskAttachment(ctx, \"ecs_disk_att\", \u0026ecs.DiskAttachmentArgs{\n\t\t\tDiskId:     ecsDisk.ID(),\n\t\t\tInstanceId: ecsInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Disk;\nimport com.pulumi.alicloud.ecs.DiskArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.ecs.DiskAttachment;\nimport com.pulumi.alicloud.ecs.DiskAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new ECS disk-attachment and use it attach one disk to a new instance.\n        var ecsSg = new SecurityGroup(\"ecsSg\", SecurityGroupArgs.builder()\n            .name(\"terraform-test-group\")\n            .description(\"New security group\")\n            .build());\n\n        var ecsDisk = new Disk(\"ecsDisk\", DiskArgs.builder()\n            .availabilityZone(\"cn-beijing-a\")\n            .size(50)\n            .tags(Map.of(\"Name\", \"TerraformTest-disk\"))\n            .build());\n\n        var ecsInstance = new Instance(\"ecsInstance\", InstanceArgs.builder()\n            .imageId(\"ubuntu_18_04_64_20G_alibase_20190624.vhd\")\n            .instanceType(\"ecs.n4.small\")\n            .availabilityZone(\"cn-beijing-a\")\n            .securityGroups(ecsSg.id())\n            .instanceName(\"Hello\")\n            .internetChargeType(\"PayByBandwidth\")\n            .tags(Map.of(\"Name\", \"TerraformTest-instance\"))\n            .build());\n\n        var ecsDiskAtt = new DiskAttachment(\"ecsDiskAtt\", DiskAttachmentArgs.builder()\n            .diskId(ecsDisk.id())\n            .instanceId(ecsInstance.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new ECS disk-attachment and use it attach one disk to a new instance.\n  ecsSg:\n    type: alicloud:ecs:SecurityGroup\n    name: ecs_sg\n    properties:\n      name: terraform-test-group\n      description: New security group\n  ecsDisk:\n    type: alicloud:ecs:Disk\n    name: ecs_disk\n    properties:\n      availabilityZone: cn-beijing-a\n      size: '50'\n      tags:\n        Name: TerraformTest-disk\n  ecsInstance:\n    type: alicloud:ecs:Instance\n    name: ecs_instance\n    properties:\n      imageId: ubuntu_18_04_64_20G_alibase_20190624.vhd\n      instanceType: ecs.n4.small\n      availabilityZone: cn-beijing-a\n      securityGroups:\n        - ${ecsSg.id}\n      instanceName: Hello\n      internetChargeType: PayByBandwidth\n      tags:\n        Name: TerraformTest-instance\n  ecsDiskAtt:\n    type: alicloud:ecs:DiskAttachment\n    name: ecs_disk_att\n    properties:\n      diskId: ${ecsDisk.id}\n      instanceId: ${ecsInstance.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe disk attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/diskAttachment:DiskAttachment example d-abc12345678:i-abc12355\n```\n\n","properties":{"bootable":{"type":"boolean"},"deleteWithInstance":{"type":"boolean"},"device":{"type":"string"},"diskId":{"type":"string","description":"ID of the Disk to be attached.\n"},"instanceId":{"type":"string","description":"ID of the Instance to attach to.\n"},"keyPairName":{"type":"string"},"password":{"type":"string"}},"required":["device","diskId","instanceId"],"inputProperties":{"bootable":{"type":"boolean","willReplaceOnChanges":true},"deleteWithInstance":{"type":"boolean"},"diskId":{"type":"string","description":"ID of the Disk to be attached.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"ID of the Instance to attach to.\n","willReplaceOnChanges":true},"keyPairName":{"type":"string","willReplaceOnChanges":true},"password":{"type":"string","willReplaceOnChanges":true}},"requiredInputs":["diskId","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DiskAttachment resources.\n","properties":{"bootable":{"type":"boolean","willReplaceOnChanges":true},"deleteWithInstance":{"type":"boolean"},"device":{"type":"string"},"diskId":{"type":"string","description":"ID of the Disk to be attached.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"ID of the Instance to attach to.\n","willReplaceOnChanges":true},"keyPairName":{"type":"string","willReplaceOnChanges":true},"password":{"type":"string","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/ecsAutoSnapshotPolicyAttachment:EcsAutoSnapshotPolicyAttachment":{"description":"Provides a ECS Auto Snapshot Policy Attachment resource.\n\nAutomatic snapshot policy Mount relationship.\n\nFor information about ECS Auto Snapshot Policy Attachment and how to use it, see [What is Auto Snapshot Policy Attachment](https://www.alibabacloud.com/help/en/doc-detail/25531.htm).\n\n\u003e **NOTE:** Available since v1.122.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultAutoSnapshotPolicy = new alicloud.ecs.AutoSnapshotPolicy(\"default\", {\n    autoSnapshotPolicyName: name,\n    repeatWeekdays: [\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retentionDays: 1,\n    timePoints: [\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n});\nconst defaultEcsDisk = new alicloud.ecs.EcsDisk(\"default\", {\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    size: 500,\n});\nconst defaultEcsAutoSnapshotPolicyAttachment = new alicloud.ecs.EcsAutoSnapshotPolicyAttachment(\"default\", {\n    autoSnapshotPolicyId: defaultAutoSnapshotPolicy.id,\n    diskId: defaultEcsDisk.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_auto_snapshot_policy = alicloud.ecs.AutoSnapshotPolicy(\"default\",\n    auto_snapshot_policy_name=name,\n    repeat_weekdays=[\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retention_days=1,\n    time_points=[\n        \"1\",\n        \"2\",\n        \"3\",\n    ])\ndefault_ecs_disk = alicloud.ecs.EcsDisk(\"default\",\n    zone_id=default.zones[0].id,\n    size=500)\ndefault_ecs_auto_snapshot_policy_attachment = alicloud.ecs.EcsAutoSnapshotPolicyAttachment(\"default\",\n    auto_snapshot_policy_id=default_auto_snapshot_policy.id,\n    disk_id=default_ecs_disk.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultAutoSnapshotPolicy = new AliCloud.Ecs.AutoSnapshotPolicy(\"default\", new()\n    {\n        AutoSnapshotPolicyName = name,\n        RepeatWeekdays = new[]\n        {\n            \"1\",\n            \"2\",\n            \"3\",\n        },\n        RetentionDays = 1,\n        TimePoints = new[]\n        {\n            \"1\",\n            \"2\",\n            \"3\",\n        },\n    });\n\n    var defaultEcsDisk = new AliCloud.Ecs.EcsDisk(\"default\", new()\n    {\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        Size = 500,\n    });\n\n    var defaultEcsAutoSnapshotPolicyAttachment = new AliCloud.Ecs.EcsAutoSnapshotPolicyAttachment(\"default\", new()\n    {\n        AutoSnapshotPolicyId = defaultAutoSnapshotPolicy.Id,\n        DiskId = defaultEcsDisk.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAutoSnapshotPolicy, err := ecs.NewAutoSnapshotPolicy(ctx, \"default\", \u0026ecs.AutoSnapshotPolicyArgs{\n\t\t\tAutoSnapshotPolicyName: pulumi.String(name),\n\t\t\tRepeatWeekdays: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\tpulumi.String(\"3\"),\n\t\t\t},\n\t\t\tRetentionDays: pulumi.Int(1),\n\t\t\tTimePoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\tpulumi.String(\"3\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcsDisk, err := ecs.NewEcsDisk(ctx, \"default\", \u0026ecs.EcsDiskArgs{\n\t\t\tZoneId: pulumi.String(_default.Zones[0].Id),\n\t\t\tSize:   pulumi.Int(500),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEcsAutoSnapshotPolicyAttachment(ctx, \"default\", \u0026ecs.EcsAutoSnapshotPolicyAttachmentArgs{\n\t\t\tAutoSnapshotPolicyId: defaultAutoSnapshotPolicy.ID(),\n\t\t\tDiskId:               defaultEcsDisk.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.AutoSnapshotPolicy;\nimport com.pulumi.alicloud.ecs.AutoSnapshotPolicyArgs;\nimport com.pulumi.alicloud.ecs.EcsDisk;\nimport com.pulumi.alicloud.ecs.EcsDiskArgs;\nimport com.pulumi.alicloud.ecs.EcsAutoSnapshotPolicyAttachment;\nimport com.pulumi.alicloud.ecs.EcsAutoSnapshotPolicyAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultAutoSnapshotPolicy = new AutoSnapshotPolicy(\"defaultAutoSnapshotPolicy\", AutoSnapshotPolicyArgs.builder()\n            .autoSnapshotPolicyName(name)\n            .repeatWeekdays(            \n                \"1\",\n                \"2\",\n                \"3\")\n            .retentionDays(1)\n            .timePoints(            \n                \"1\",\n                \"2\",\n                \"3\")\n            .build());\n\n        var defaultEcsDisk = new EcsDisk(\"defaultEcsDisk\", EcsDiskArgs.builder()\n            .zoneId(default_.zones()[0].id())\n            .size(500)\n            .build());\n\n        var defaultEcsAutoSnapshotPolicyAttachment = new EcsAutoSnapshotPolicyAttachment(\"defaultEcsAutoSnapshotPolicyAttachment\", EcsAutoSnapshotPolicyAttachmentArgs.builder()\n            .autoSnapshotPolicyId(defaultAutoSnapshotPolicy.id())\n            .diskId(defaultEcsDisk.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultAutoSnapshotPolicy:\n    type: alicloud:ecs:AutoSnapshotPolicy\n    name: default\n    properties:\n      autoSnapshotPolicyName: ${name}\n      repeatWeekdays:\n        - '1'\n        - '2'\n        - '3'\n      retentionDays: 1\n      timePoints:\n        - '1'\n        - '2'\n        - '3'\n  defaultEcsDisk:\n    type: alicloud:ecs:EcsDisk\n    name: default\n    properties:\n      zoneId: ${default.zones[0].id}\n      size: '500'\n  defaultEcsAutoSnapshotPolicyAttachment:\n    type: alicloud:ecs:EcsAutoSnapshotPolicyAttachment\n    name: default\n    properties:\n      autoSnapshotPolicyId: ${defaultAutoSnapshotPolicy.id}\n      diskId: ${defaultEcsDisk.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Auto Snapshot Policy Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsAutoSnapshotPolicyAttachment:EcsAutoSnapshotPolicyAttachment example \u003cauto_snapshot_policy_id\u003e:\u003cdisk_id\u003e\n```\n\n","properties":{"autoSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy that is applied to the cloud disk.\n"},"diskId":{"type":"string","description":"The ID of the disk.\n"},"regionId":{"type":"string","description":"(Available since v1.271.0) The ID of the region where the automatic snapshot policy and the cloud disk are located.\n"}},"required":["autoSnapshotPolicyId","diskId","regionId"],"inputProperties":{"autoSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy that is applied to the cloud disk.\n","willReplaceOnChanges":true},"diskId":{"type":"string","description":"The ID of the disk.\n","willReplaceOnChanges":true}},"requiredInputs":["autoSnapshotPolicyId","diskId"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsAutoSnapshotPolicyAttachment resources.\n","properties":{"autoSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy that is applied to the cloud disk.\n","willReplaceOnChanges":true},"diskId":{"type":"string","description":"The ID of the disk.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"(Available since v1.271.0) The ID of the region where the automatic snapshot policy and the cloud disk are located.\n"}},"type":"object"}},"alicloud:ecs/ecsDedicatedHostCluster:EcsDedicatedHostCluster":{"description":"Provides a ECS Dedicated Host Cluster resource.\n\nFor information about ECS Dedicated Host Cluster and how to use it, see [What is Dedicated Host Cluster](https://www.alibabacloud.com/help/en/doc-detail/184667.html).\n\n\u003e **NOTE:** Available since v1.146.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.getZones({});\nconst exampleEcsDedicatedHostCluster = new alicloud.ecs.EcsDedicatedHostCluster(\"example\", {\n    dedicatedHostClusterName: \"example_value\",\n    description: \"example_value\",\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n    tags: {\n        Create: \"TF\",\n        For: \"DDH_Cluster_Test\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.get_zones()\nexample_ecs_dedicated_host_cluster = alicloud.ecs.EcsDedicatedHostCluster(\"example\",\n    dedicated_host_cluster_name=\"example_value\",\n    description=\"example_value\",\n    zone_id=example.zones[0].id,\n    tags={\n        \"Create\": \"TF\",\n        \"For\": \"DDH_Cluster_Test\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.GetZones.Invoke();\n\n    var exampleEcsDedicatedHostCluster = new AliCloud.Ecs.EcsDedicatedHostCluster(\"example\", new()\n    {\n        DedicatedHostClusterName = \"example_value\",\n        Description = \"example_value\",\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Tags = \n        {\n            { \"Create\", \"TF\" },\n            { \"For\", \"DDH_Cluster_Test\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEcsDedicatedHostCluster(ctx, \"example\", \u0026ecs.EcsDedicatedHostClusterArgs{\n\t\t\tDedicatedHostClusterName: pulumi.String(\"example_value\"),\n\t\t\tDescription:              pulumi.String(\"example_value\"),\n\t\t\tZoneId:                   pulumi.String(example.Zones[0].Id),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Create\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":    pulumi.String(\"DDH_Cluster_Test\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsDedicatedHostCluster;\nimport com.pulumi.alicloud.ecs.EcsDedicatedHostClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var exampleEcsDedicatedHostCluster = new EcsDedicatedHostCluster(\"exampleEcsDedicatedHostCluster\", EcsDedicatedHostClusterArgs.builder()\n            .dedicatedHostClusterName(\"example_value\")\n            .description(\"example_value\")\n            .zoneId(example.zones()[0].id())\n            .tags(Map.ofEntries(\n                Map.entry(\"Create\", \"TF\"),\n                Map.entry(\"For\", \"DDH_Cluster_Test\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleEcsDedicatedHostCluster:\n    type: alicloud:ecs:EcsDedicatedHostCluster\n    name: example\n    properties:\n      dedicatedHostClusterName: example_value\n      description: example_value\n      zoneId: ${example.zones[0].id}\n      tags:\n        Create: TF\n        For: DDH_Cluster_Test\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Dedicated Host Cluster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsDedicatedHostCluster:EcsDedicatedHostCluster example \u003cid\u003e\n```\n\n","properties":{"dedicatedHostClusterName":{"type":"string","description":"The name of the dedicated host cluster. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length and can contain letters, digits, periods (.), underscores (_), and hyphens (-). It must start with a letter. It cannot contain `http://` or `https://`.\n"},"description":{"type":"string","description":"The description of the dedicated host cluster. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length. It cannot start with `http://` or `https://`.\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"zoneId":{"type":"string","description":"The ID of the zone in which to create the dedicated host cluster.\n"}},"required":["zoneId"],"inputProperties":{"dedicatedHostClusterName":{"type":"string","description":"The name of the dedicated host cluster. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length and can contain letters, digits, periods (.), underscores (_), and hyphens (-). It must start with a letter. It cannot contain `http://` or `https://`.\n"},"description":{"type":"string","description":"The description of the dedicated host cluster. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length. It cannot start with `http://` or `https://`.\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"zoneId":{"type":"string","description":"The ID of the zone in which to create the dedicated host cluster.\n","willReplaceOnChanges":true}},"requiredInputs":["zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsDedicatedHostCluster resources.\n","properties":{"dedicatedHostClusterName":{"type":"string","description":"The name of the dedicated host cluster. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length and can contain letters, digits, periods (.), underscores (_), and hyphens (-). It must start with a letter. It cannot contain `http://` or `https://`.\n"},"description":{"type":"string","description":"The description of the dedicated host cluster. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length. It cannot start with `http://` or `https://`.\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"zoneId":{"type":"string","description":"The ID of the zone in which to create the dedicated host cluster.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/ecsDeploymentSet:EcsDeploymentSet":{"description":"Provides a ECS Deployment Set resource.\n\nFor information about ECS Deployment Set and how to use it, see [What is Deployment Set](https://www.alibabacloud.com/help/en/doc-detail/91269.htm).\n\n\u003e **NOTE:** Available since v1.140.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ecs.EcsDeploymentSet(\"default\", {\n    strategy: \"Availability\",\n    deploymentSetName: name,\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ecs.EcsDeploymentSet(\"default\",\n    strategy=\"Availability\",\n    deployment_set_name=name,\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ecs.EcsDeploymentSet(\"default\", new()\n    {\n        Strategy = \"Availability\",\n        DeploymentSetName = name,\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ecs.NewEcsDeploymentSet(ctx, \"default\", \u0026ecs.EcsDeploymentSetArgs{\n\t\t\tStrategy:          pulumi.String(\"Availability\"),\n\t\t\tDeploymentSetName: pulumi.String(name),\n\t\t\tDescription:       pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsDeploymentSet;\nimport com.pulumi.alicloud.ecs.EcsDeploymentSetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new EcsDeploymentSet(\"default\", EcsDeploymentSetArgs.builder()\n            .strategy(\"Availability\")\n            .deploymentSetName(name)\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ecs:EcsDeploymentSet\n    properties:\n      strategy: Availability\n      deploymentSetName: ${name}\n      description: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Deployment Set can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsDeploymentSet:EcsDeploymentSet example \u003cid\u003e\n```\n\n","properties":{"deploymentSetName":{"type":"string","description":"The name of the deployment set. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length and can contain letters, digits, colons (:), underscores (_), and hyphens (-). It must start with a letter and cannot start with `http://` or `https://`.\n"},"description":{"type":"string","description":"The description of the deployment set. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length and cannot start with `http://` or `https://`.\n"},"domain":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e has been deprecated from provider version 1.243.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e has been deprecated from provider version 1.243.0."},"granularity":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`granularity`\" pulumi-lang-dotnet=\"`Granularity`\" pulumi-lang-go=\"`granularity`\" pulumi-lang-python=\"`granularity`\" pulumi-lang-yaml=\"`granularity`\" pulumi-lang-java=\"`granularity`\"\u003e`granularity`\u003c/span\u003e has been deprecated from provider version 1.243.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`granularity`\" pulumi-lang-dotnet=\"`Granularity`\" pulumi-lang-go=\"`granularity`\" pulumi-lang-python=\"`granularity`\" pulumi-lang-yaml=\"`granularity`\" pulumi-lang-java=\"`granularity`\"\u003e`granularity`\u003c/span\u003e has been deprecated from provider version 1.243.0."},"onUnableToRedeployFailedInstance":{"type":"string","description":"The emergency solution to use in the situation where instances in the deployment set cannot be evenly distributed to different zones due to resource insufficiency after the instances failover. Valid values:\n- `CancelMembershipAndStart` - Removes the instances from the deployment set and starts the instances immediately after they are failed over.\n- `KeepStopped`- Leaves the instances in the Stopped state and starts them after resources are replenished.\n"},"strategy":{"type":"string","description":"The deployment strategy. Default value: `Availability`. Valid values: `Availability`, `AvailabilityGroup`, `LowLatency`.\n"}},"required":["domain","granularity","strategy"],"inputProperties":{"deploymentSetName":{"type":"string","description":"The name of the deployment set. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length and can contain letters, digits, colons (:), underscores (_), and hyphens (-). It must start with a letter and cannot start with `http://` or `https://`.\n"},"description":{"type":"string","description":"The description of the deployment set. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length and cannot start with `http://` or `https://`.\n"},"domain":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e has been deprecated from provider version 1.243.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e has been deprecated from provider version 1.243.0.","willReplaceOnChanges":true},"granularity":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`granularity`\" pulumi-lang-dotnet=\"`Granularity`\" pulumi-lang-go=\"`granularity`\" pulumi-lang-python=\"`granularity`\" pulumi-lang-yaml=\"`granularity`\" pulumi-lang-java=\"`granularity`\"\u003e`granularity`\u003c/span\u003e has been deprecated from provider version 1.243.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`granularity`\" pulumi-lang-dotnet=\"`Granularity`\" pulumi-lang-go=\"`granularity`\" pulumi-lang-python=\"`granularity`\" pulumi-lang-yaml=\"`granularity`\" pulumi-lang-java=\"`granularity`\"\u003e`granularity`\u003c/span\u003e has been deprecated from provider version 1.243.0.","willReplaceOnChanges":true},"onUnableToRedeployFailedInstance":{"type":"string","description":"The emergency solution to use in the situation where instances in the deployment set cannot be evenly distributed to different zones due to resource insufficiency after the instances failover. Valid values:\n- `CancelMembershipAndStart` - Removes the instances from the deployment set and starts the instances immediately after they are failed over.\n- `KeepStopped`- Leaves the instances in the Stopped state and starts them after resources are replenished.\n"},"strategy":{"type":"string","description":"The deployment strategy. Default value: `Availability`. Valid values: `Availability`, `AvailabilityGroup`, `LowLatency`.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering EcsDeploymentSet resources.\n","properties":{"deploymentSetName":{"type":"string","description":"The name of the deployment set. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length and can contain letters, digits, colons (:), underscores (_), and hyphens (-). It must start with a letter and cannot start with `http://` or `https://`.\n"},"description":{"type":"string","description":"The description of the deployment set. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length and cannot start with `http://` or `https://`.\n"},"domain":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e has been deprecated from provider version 1.243.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e has been deprecated from provider version 1.243.0.","willReplaceOnChanges":true},"granularity":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`granularity`\" pulumi-lang-dotnet=\"`Granularity`\" pulumi-lang-go=\"`granularity`\" pulumi-lang-python=\"`granularity`\" pulumi-lang-yaml=\"`granularity`\" pulumi-lang-java=\"`granularity`\"\u003e`granularity`\u003c/span\u003e has been deprecated from provider version 1.243.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`granularity`\" pulumi-lang-dotnet=\"`Granularity`\" pulumi-lang-go=\"`granularity`\" pulumi-lang-python=\"`granularity`\" pulumi-lang-yaml=\"`granularity`\" pulumi-lang-java=\"`granularity`\"\u003e`granularity`\u003c/span\u003e has been deprecated from provider version 1.243.0.","willReplaceOnChanges":true},"onUnableToRedeployFailedInstance":{"type":"string","description":"The emergency solution to use in the situation where instances in the deployment set cannot be evenly distributed to different zones due to resource insufficiency after the instances failover. Valid values:\n- `CancelMembershipAndStart` - Removes the instances from the deployment set and starts the instances immediately after they are failed over.\n- `KeepStopped`- Leaves the instances in the Stopped state and starts them after resources are replenished.\n"},"strategy":{"type":"string","description":"The deployment strategy. Default value: `Availability`. Valid values: `Availability`, `AvailabilityGroup`, `LowLatency`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/ecsDisk:EcsDisk":{"description":"Provides an ECS Disk resource.\n\nFor information about ECS Disk and how to use it, see [What is Disk](https://www.alibabacloud.com/help/en/doc-detail/25513.htm).\n\n\u003e **NOTE:** Available since v1.122.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst exampleKey = new alicloud.kms.Key(\"example\", {\n    description: \"terraform-example\",\n    pendingWindowInDays: 7,\n    status: \"Enabled\",\n});\nconst exampleEcsDisk = new alicloud.ecs.EcsDisk(\"example\", {\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n    diskName: \"terraform-example\",\n    description: \"terraform-example\",\n    category: \"cloud_efficiency\",\n    size: 30,\n    encrypted: true,\n    kmsKeyId: exampleKey.id,\n    tags: {\n        Name: \"terraform-example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample_key = alicloud.kms.Key(\"example\",\n    description=\"terraform-example\",\n    pending_window_in_days=7,\n    status=\"Enabled\")\nexample_ecs_disk = alicloud.ecs.EcsDisk(\"example\",\n    zone_id=example.zones[0].id,\n    disk_name=\"terraform-example\",\n    description=\"terraform-example\",\n    category=\"cloud_efficiency\",\n    size=30,\n    encrypted=True,\n    kms_key_id=example_key.id,\n    tags={\n        \"Name\": \"terraform-example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var exampleKey = new AliCloud.Kms.Key(\"example\", new()\n    {\n        Description = \"terraform-example\",\n        PendingWindowInDays = 7,\n        Status = \"Enabled\",\n    });\n\n    var exampleEcsDisk = new AliCloud.Ecs.EcsDisk(\"example\", new()\n    {\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        DiskName = \"terraform-example\",\n        Description = \"terraform-example\",\n        Category = \"cloud_efficiency\",\n        Size = 30,\n        Encrypted = true,\n        KmsKeyId = exampleKey.Id,\n        Tags = \n        {\n            { \"Name\", \"terraform-example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKey, err := kms.NewKey(ctx, \"example\", \u0026kms.KeyArgs{\n\t\t\tDescription:         pulumi.String(\"terraform-example\"),\n\t\t\tPendingWindowInDays: pulumi.Int(7),\n\t\t\tStatus:              pulumi.String(\"Enabled\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEcsDisk(ctx, \"example\", \u0026ecs.EcsDiskArgs{\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t\tDiskName:    pulumi.String(\"terraform-example\"),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t\tCategory:    pulumi.String(\"cloud_efficiency\"),\n\t\t\tSize:        pulumi.Int(30),\n\t\t\tEncrypted:   pulumi.Bool(true),\n\t\t\tKmsKeyId:    exampleKey.ID(),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"terraform-example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.kms.Key;\nimport com.pulumi.alicloud.kms.KeyArgs;\nimport com.pulumi.alicloud.ecs.EcsDisk;\nimport com.pulumi.alicloud.ecs.EcsDiskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var exampleKey = new Key(\"exampleKey\", KeyArgs.builder()\n            .description(\"terraform-example\")\n            .pendingWindowInDays(7)\n            .status(\"Enabled\")\n            .build());\n\n        var exampleEcsDisk = new EcsDisk(\"exampleEcsDisk\", EcsDiskArgs.builder()\n            .zoneId(example.zones()[0].id())\n            .diskName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .category(\"cloud_efficiency\")\n            .size(30)\n            .encrypted(true)\n            .kmsKeyId(exampleKey.id())\n            .tags(Map.of(\"Name\", \"terraform-example\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleKey:\n    type: alicloud:kms:Key\n    name: example\n    properties:\n      description: terraform-example\n      pendingWindowInDays: '7'\n      status: Enabled\n  exampleEcsDisk:\n    type: alicloud:ecs:EcsDisk\n    name: example\n    properties:\n      zoneId: ${example.zones[0].id}\n      diskName: terraform-example\n      description: terraform-example\n      category: cloud_efficiency\n      size: '30'\n      encrypted: true\n      kmsKeyId: ${exampleKey.id}\n      tags:\n        Name: terraform-example\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.ecs.EcsDisk`\" pulumi-lang-dotnet=\"`alicloud.ecs.EcsDisk`\" pulumi-lang-go=\"`ecs.EcsDisk`\" pulumi-lang-python=\"`ecs.EcsDisk`\" pulumi-lang-yaml=\"`alicloud.ecs.EcsDisk`\" pulumi-lang-java=\"`alicloud.ecs.EcsDisk`\"\u003e`alicloud.ecs.EcsDisk`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.ecs.EcsDisk`\" pulumi-lang-dotnet=\"`alicloud.ecs.EcsDisk`\" pulumi-lang-go=\"`ecs.EcsDisk`\" pulumi-lang-python=\"`ecs.EcsDisk`\" pulumi-lang-yaml=\"`alicloud.ecs.EcsDisk`\" pulumi-lang-java=\"`alicloud.ecs.EcsDisk`\"\u003e`alicloud.ecs.EcsDisk`\u003c/span\u003e resource allows you to manage \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"Subscription\"` and \u003cspan pulumi-lang-nodejs=\"`deleteWithInstance \" pulumi-lang-dotnet=\"`DeleteWithInstance \" pulumi-lang-go=\"`deleteWithInstance \" pulumi-lang-python=\"`delete_with_instance \" pulumi-lang-yaml=\"`deleteWithInstance \" pulumi-lang-java=\"`deleteWithInstance \"\u003e`delete_with_instance \u003c/span\u003e= true` disk, \nbut Terraform cannot destroy it. Deleting the subscription resource or removing it from your configuration will \nremove it from your state file and management, but will not destroy it.\nIf you want to delete it, you can change it to `PayAsYouGo` and setting \u003cspan pulumi-lang-nodejs=\"`deleteWithInstance \" pulumi-lang-dotnet=\"`DeleteWithInstance \" pulumi-lang-go=\"`deleteWithInstance \" pulumi-lang-python=\"`delete_with_instance \" pulumi-lang-yaml=\"`deleteWithInstance \" pulumi-lang-java=\"`deleteWithInstance \"\u003e`delete_with_instance \u003c/span\u003e= true` and detach it from instance.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Disk can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsDisk:EcsDisk example \u003cid\u003e\n```\n\n","properties":{"advancedFeatures":{"type":"string"},"availabilityZone":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead"},"burstingEnabled":{"type":"boolean","description":"Specifies whether to enable the performance burst feature. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`burstingEnabled`\" pulumi-lang-dotnet=\"`BurstingEnabled`\" pulumi-lang-go=\"`burstingEnabled`\" pulumi-lang-python=\"`bursting_enabled`\" pulumi-lang-yaml=\"`burstingEnabled`\" pulumi-lang-java=\"`burstingEnabled`\"\u003e`bursting_enabled`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"category":{"type":"string","description":"The category of the data disk. Default value: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. Valid Values: \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`elasticEphemeralDiskStandard`\" pulumi-lang-dotnet=\"`ElasticEphemeralDiskStandard`\" pulumi-lang-go=\"`elasticEphemeralDiskStandard`\" pulumi-lang-python=\"`elastic_ephemeral_disk_standard`\" pulumi-lang-yaml=\"`elasticEphemeralDiskStandard`\" pulumi-lang-java=\"`elasticEphemeralDiskStandard`\"\u003e`elastic_ephemeral_disk_standard`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`elasticEphemeralDiskPremium`\" pulumi-lang-dotnet=\"`ElasticEphemeralDiskPremium`\" pulumi-lang-go=\"`elasticEphemeralDiskPremium`\" pulumi-lang-python=\"`elastic_ephemeral_disk_premium`\" pulumi-lang-yaml=\"`elasticEphemeralDiskPremium`\" pulumi-lang-java=\"`elasticEphemeralDiskPremium`\"\u003e`elastic_ephemeral_disk_premium`\u003c/span\u003e.\n"},"createTime":{"type":"string","description":"(Available since v1.237.0) The time when the disk was created.\n"},"deleteAutoSnapshot":{"type":"boolean","description":"Specifies whether to delete the automatic snapshots of the disk when the disk is released. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"deleteWithInstance":{"type":"boolean","description":"Specifies whether to release the disk along with its associated instance. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The description of the disk. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"diskName":{"type":"string","description":"The name of the data disk. The name must be 2 to 128 characters in length and can contain letters, digits, colons (:), underscores (_), periods (.), and hyphens (-). The name must start with a letter.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to check the validity of the request without actually making the request.request Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"enableAutoSnapshot":{"type":"boolean","description":"Specifies whether to enable the automatic snapshot policy feature for the cloud disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"encryptAlgorithm":{"type":"string"},"encrypted":{"type":"boolean","description":"Specifies whether to encrypt the disk. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"instanceId":{"type":"string","description":"The ID of the instance to which the created subscription disk is automatically attached.\n* After you specify the instance ID, the specified \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`kmsKeyId`\" pulumi-lang-dotnet=\"`KmsKeyId`\" pulumi-lang-go=\"`kmsKeyId`\" pulumi-lang-python=\"`kms_key_id`\" pulumi-lang-yaml=\"`kmsKeyId`\" pulumi-lang-java=\"`kmsKeyId`\"\u003e`kms_key_id`\u003c/span\u003e parameters are ignored.\n* One of the \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e must be set but can not be set at the same time.\n"},"kmsKeyId":{"type":"string","description":"The ID of the Key Management Service (KMS) key that is used for the disk. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`kmsKeyId`\" pulumi-lang-dotnet=\"`KmsKeyId`\" pulumi-lang-go=\"`kmsKeyId`\" pulumi-lang-python=\"`kms_key_id`\" pulumi-lang-yaml=\"`kmsKeyId`\" pulumi-lang-java=\"`kmsKeyId`\"\u003e`kms_key_id`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`encrypted`\" pulumi-lang-dotnet=\"`Encrypted`\" pulumi-lang-go=\"`encrypted`\" pulumi-lang-python=\"`encrypted`\" pulumi-lang-yaml=\"`encrypted`\" pulumi-lang-java=\"`encrypted`\"\u003e`encrypted`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"multiAttach":{"type":"string","description":"Specifies whether to enable the multi-attach feature for the disk. Default value: `Disabled`. Valid values: `Enabled`, `Disabled`. **NOTE:** Currently, \u003cspan pulumi-lang-nodejs=\"`multiAttach`\" pulumi-lang-dotnet=\"`MultiAttach`\" pulumi-lang-go=\"`multiAttach`\" pulumi-lang-python=\"`multi_attach`\" pulumi-lang-yaml=\"`multiAttach`\" pulumi-lang-java=\"`multiAttach`\"\u003e`multi_attach`\u003c/span\u003e can only be set to `Enabled` when \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`diskName`\" pulumi-lang-dotnet=\"`DiskName`\" pulumi-lang-go=\"`diskName`\" pulumi-lang-python=\"`disk_name`\" pulumi-lang-yaml=\"`diskName`\" pulumi-lang-java=\"`diskName`\"\u003e`disk_name`\u003c/span\u003e instead.\n\n\u003e **NOTE:** Disk category \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e has been outdated, and it only can be used none I/O Optimized ECS instances. Recommend \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e disk.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`diskName`\" pulumi-lang-dotnet=\"`DiskName`\" pulumi-lang-go=\"`diskName`\" pulumi-lang-python=\"`disk_name`\" pulumi-lang-yaml=\"`diskName`\" pulumi-lang-java=\"`diskName`\"\u003e`disk_name`\u003c/span\u003e instead."},"paymentType":{"type":"string","description":"The payment type of the disk. Default to `PayAsYouGo`. Valid values: `PayAsYouGo`, `Subscription`. If you want to change the disk payment type, the \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e is required.\n"},"performanceLevel":{"type":"string","description":"Specifies the performance level of an ESSD when you create the ESSD. Valid values:\n- `PL0`: A single ESSD delivers up to 10,000 random read/write IOPS.\n- `PL1`: A single ESSD delivers up to 50,000 random read/write IOPS.\n- `PL2`: A single ESSD delivers up to 100,000 random read/write IOPS.\n- `PL3`: A single ESSD delivers up to 1,000,000 random read/write IOPS.\n"},"provisionedIops":{"type":"integer","description":"The provisioned read/write IOPS of the ESSD AutoPL disk. Valid values: 0 to min{50,000, 1,000 × Capacity - Baseline IOPS}. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`provisionedIops`\" pulumi-lang-dotnet=\"`ProvisionedIops`\" pulumi-lang-go=\"`provisionedIops`\" pulumi-lang-python=\"`provisioned_iops`\" pulumi-lang-yaml=\"`provisionedIops`\" pulumi-lang-java=\"`provisionedIops`\"\u003e`provisioned_iops`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"regionId":{"type":"string","description":"(Available since v1.237.0) The ID of the region to which the disk belongs.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which to add the disk.\n"},"size":{"type":"integer","description":"The size of the disk. Unit: GiB. This parameter is required. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`elasticEphemeralDiskStandard`\" pulumi-lang-dotnet=\"`ElasticEphemeralDiskStandard`\" pulumi-lang-go=\"`elasticEphemeralDiskStandard`\" pulumi-lang-python=\"`elastic_ephemeral_disk_standard`\" pulumi-lang-yaml=\"`elasticEphemeralDiskStandard`\" pulumi-lang-java=\"`elasticEphemeralDiskStandard`\"\u003e`elastic_ephemeral_disk_standard`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`8192`\" pulumi-lang-dotnet=\"`8192`\" pulumi-lang-go=\"`8192`\" pulumi-lang-python=\"`8192`\" pulumi-lang-yaml=\"`8192`\" pulumi-lang-java=\"`8192`\"\u003e`8192`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`elasticEphemeralDiskPremium`\" pulumi-lang-dotnet=\"`ElasticEphemeralDiskPremium`\" pulumi-lang-go=\"`elasticEphemeralDiskPremium`\" pulumi-lang-python=\"`elastic_ephemeral_disk_premium`\" pulumi-lang-yaml=\"`elasticEphemeralDiskPremium`\" pulumi-lang-java=\"`elasticEphemeralDiskPremium`\"\u003e`elastic_ephemeral_disk_premium`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`8192`\" pulumi-lang-dotnet=\"`8192`\" pulumi-lang-go=\"`8192`\" pulumi-lang-python=\"`8192`\" pulumi-lang-yaml=\"`8192`\" pulumi-lang-java=\"`8192`\"\u003e`8192`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, the valid values are related to \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e is set to `PL0`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e is set to `PL1`. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e is set to `PL2`. Valid values: \u003cspan pulumi-lang-nodejs=\"`461`\" pulumi-lang-dotnet=\"`461`\" pulumi-lang-go=\"`461`\" pulumi-lang-python=\"`461`\" pulumi-lang-yaml=\"`461`\" pulumi-lang-java=\"`461`\"\u003e`461`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e is set to `PL3`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1261`\" pulumi-lang-dotnet=\"`1261`\" pulumi-lang-go=\"`1261`\" pulumi-lang-python=\"`1261`\" pulumi-lang-yaml=\"`1261`\" pulumi-lang-java=\"`1261`\"\u003e`1261`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot to use to create the disk. **NOTE:** If the size of the snapshot specified by \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e is larger than the value of \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e, the size of the created disk is equal to the specified snapshot size. If the size of the snapshot specified by \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e is smaller than the value of \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e, the size of the created disk is equal to the value of \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the disk.\n"},"storageSetId":{"type":"string","description":"The ID of the storage set.\n"},"storageSetPartitionNumber":{"type":"integer","description":"The number of partitions in the storage set.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"The type to expand cloud disks. Valid Values: \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e.\n"},"zoneId":{"type":"string","description":"ID of the free zone to which the disk belongs. One of the \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e must be set but can not be set at the same time.\n"}},"required":["availabilityZone","createTime","deleteWithInstance","diskName","enableAutoSnapshot","encrypted","instanceId","kmsKeyId","multiAttach","name","paymentType","performanceLevel","regionId","resourceGroupId","size","snapshotId","status","zoneId"],"inputProperties":{"advancedFeatures":{"type":"string"},"availabilityZone":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead","willReplaceOnChanges":true},"burstingEnabled":{"type":"boolean","description":"Specifies whether to enable the performance burst feature. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`burstingEnabled`\" pulumi-lang-dotnet=\"`BurstingEnabled`\" pulumi-lang-go=\"`burstingEnabled`\" pulumi-lang-python=\"`bursting_enabled`\" pulumi-lang-yaml=\"`burstingEnabled`\" pulumi-lang-java=\"`burstingEnabled`\"\u003e`bursting_enabled`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"category":{"type":"string","description":"The category of the data disk. Default value: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. Valid Values: \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`elasticEphemeralDiskStandard`\" pulumi-lang-dotnet=\"`ElasticEphemeralDiskStandard`\" pulumi-lang-go=\"`elasticEphemeralDiskStandard`\" pulumi-lang-python=\"`elastic_ephemeral_disk_standard`\" pulumi-lang-yaml=\"`elasticEphemeralDiskStandard`\" pulumi-lang-java=\"`elasticEphemeralDiskStandard`\"\u003e`elastic_ephemeral_disk_standard`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`elasticEphemeralDiskPremium`\" pulumi-lang-dotnet=\"`ElasticEphemeralDiskPremium`\" pulumi-lang-go=\"`elasticEphemeralDiskPremium`\" pulumi-lang-python=\"`elastic_ephemeral_disk_premium`\" pulumi-lang-yaml=\"`elasticEphemeralDiskPremium`\" pulumi-lang-java=\"`elasticEphemeralDiskPremium`\"\u003e`elastic_ephemeral_disk_premium`\u003c/span\u003e.\n"},"deleteAutoSnapshot":{"type":"boolean","description":"Specifies whether to delete the automatic snapshots of the disk when the disk is released. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"deleteWithInstance":{"type":"boolean","description":"Specifies whether to release the disk along with its associated instance. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The description of the disk. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"diskName":{"type":"string","description":"The name of the data disk. The name must be 2 to 128 characters in length and can contain letters, digits, colons (:), underscores (_), periods (.), and hyphens (-). The name must start with a letter.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to check the validity of the request without actually making the request.request Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"enableAutoSnapshot":{"type":"boolean","description":"Specifies whether to enable the automatic snapshot policy feature for the cloud disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"encryptAlgorithm":{"type":"string"},"encrypted":{"type":"boolean","description":"Specifies whether to encrypt the disk. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the instance to which the created subscription disk is automatically attached.\n* After you specify the instance ID, the specified \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`kmsKeyId`\" pulumi-lang-dotnet=\"`KmsKeyId`\" pulumi-lang-go=\"`kmsKeyId`\" pulumi-lang-python=\"`kms_key_id`\" pulumi-lang-yaml=\"`kmsKeyId`\" pulumi-lang-java=\"`kmsKeyId`\"\u003e`kms_key_id`\u003c/span\u003e parameters are ignored.\n* One of the \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e must be set but can not be set at the same time.\n"},"kmsKeyId":{"type":"string","description":"The ID of the Key Management Service (KMS) key that is used for the disk. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`kmsKeyId`\" pulumi-lang-dotnet=\"`KmsKeyId`\" pulumi-lang-go=\"`kmsKeyId`\" pulumi-lang-python=\"`kms_key_id`\" pulumi-lang-yaml=\"`kmsKeyId`\" pulumi-lang-java=\"`kmsKeyId`\"\u003e`kms_key_id`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`encrypted`\" pulumi-lang-dotnet=\"`Encrypted`\" pulumi-lang-go=\"`encrypted`\" pulumi-lang-python=\"`encrypted`\" pulumi-lang-yaml=\"`encrypted`\" pulumi-lang-java=\"`encrypted`\"\u003e`encrypted`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"multiAttach":{"type":"string","description":"Specifies whether to enable the multi-attach feature for the disk. Default value: `Disabled`. Valid values: `Enabled`, `Disabled`. **NOTE:** Currently, \u003cspan pulumi-lang-nodejs=\"`multiAttach`\" pulumi-lang-dotnet=\"`MultiAttach`\" pulumi-lang-go=\"`multiAttach`\" pulumi-lang-python=\"`multi_attach`\" pulumi-lang-yaml=\"`multiAttach`\" pulumi-lang-java=\"`multiAttach`\"\u003e`multi_attach`\u003c/span\u003e can only be set to `Enabled` when \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`diskName`\" pulumi-lang-dotnet=\"`DiskName`\" pulumi-lang-go=\"`diskName`\" pulumi-lang-python=\"`disk_name`\" pulumi-lang-yaml=\"`diskName`\" pulumi-lang-java=\"`diskName`\"\u003e`disk_name`\u003c/span\u003e instead.\n\n\u003e **NOTE:** Disk category \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e has been outdated, and it only can be used none I/O Optimized ECS instances. Recommend \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e disk.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`diskName`\" pulumi-lang-dotnet=\"`DiskName`\" pulumi-lang-go=\"`diskName`\" pulumi-lang-python=\"`disk_name`\" pulumi-lang-yaml=\"`diskName`\" pulumi-lang-java=\"`diskName`\"\u003e`disk_name`\u003c/span\u003e instead."},"paymentType":{"type":"string","description":"The payment type of the disk. Default to `PayAsYouGo`. Valid values: `PayAsYouGo`, `Subscription`. If you want to change the disk payment type, the \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e is required.\n"},"performanceLevel":{"type":"string","description":"Specifies the performance level of an ESSD when you create the ESSD. Valid values:\n- `PL0`: A single ESSD delivers up to 10,000 random read/write IOPS.\n- `PL1`: A single ESSD delivers up to 50,000 random read/write IOPS.\n- `PL2`: A single ESSD delivers up to 100,000 random read/write IOPS.\n- `PL3`: A single ESSD delivers up to 1,000,000 random read/write IOPS.\n"},"provisionedIops":{"type":"integer","description":"The provisioned read/write IOPS of the ESSD AutoPL disk. Valid values: 0 to min{50,000, 1,000 × Capacity - Baseline IOPS}. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`provisionedIops`\" pulumi-lang-dotnet=\"`ProvisionedIops`\" pulumi-lang-go=\"`provisionedIops`\" pulumi-lang-python=\"`provisioned_iops`\" pulumi-lang-yaml=\"`provisionedIops`\" pulumi-lang-java=\"`provisionedIops`\"\u003e`provisioned_iops`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which to add the disk.\n"},"size":{"type":"integer","description":"The size of the disk. Unit: GiB. This parameter is required. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`elasticEphemeralDiskStandard`\" pulumi-lang-dotnet=\"`ElasticEphemeralDiskStandard`\" pulumi-lang-go=\"`elasticEphemeralDiskStandard`\" pulumi-lang-python=\"`elastic_ephemeral_disk_standard`\" pulumi-lang-yaml=\"`elasticEphemeralDiskStandard`\" pulumi-lang-java=\"`elasticEphemeralDiskStandard`\"\u003e`elastic_ephemeral_disk_standard`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`8192`\" pulumi-lang-dotnet=\"`8192`\" pulumi-lang-go=\"`8192`\" pulumi-lang-python=\"`8192`\" pulumi-lang-yaml=\"`8192`\" pulumi-lang-java=\"`8192`\"\u003e`8192`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`elasticEphemeralDiskPremium`\" pulumi-lang-dotnet=\"`ElasticEphemeralDiskPremium`\" pulumi-lang-go=\"`elasticEphemeralDiskPremium`\" pulumi-lang-python=\"`elastic_ephemeral_disk_premium`\" pulumi-lang-yaml=\"`elasticEphemeralDiskPremium`\" pulumi-lang-java=\"`elasticEphemeralDiskPremium`\"\u003e`elastic_ephemeral_disk_premium`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`8192`\" pulumi-lang-dotnet=\"`8192`\" pulumi-lang-go=\"`8192`\" pulumi-lang-python=\"`8192`\" pulumi-lang-yaml=\"`8192`\" pulumi-lang-java=\"`8192`\"\u003e`8192`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, the valid values are related to \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e is set to `PL0`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e is set to `PL1`. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e is set to `PL2`. Valid values: \u003cspan pulumi-lang-nodejs=\"`461`\" pulumi-lang-dotnet=\"`461`\" pulumi-lang-go=\"`461`\" pulumi-lang-python=\"`461`\" pulumi-lang-yaml=\"`461`\" pulumi-lang-java=\"`461`\"\u003e`461`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e is set to `PL3`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1261`\" pulumi-lang-dotnet=\"`1261`\" pulumi-lang-go=\"`1261`\" pulumi-lang-python=\"`1261`\" pulumi-lang-yaml=\"`1261`\" pulumi-lang-java=\"`1261`\"\u003e`1261`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot to use to create the disk. **NOTE:** If the size of the snapshot specified by \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e is larger than the value of \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e, the size of the created disk is equal to the specified snapshot size. If the size of the snapshot specified by \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e is smaller than the value of \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e, the size of the created disk is equal to the value of \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e.\n","willReplaceOnChanges":true},"storageSetId":{"type":"string","description":"The ID of the storage set.\n","willReplaceOnChanges":true},"storageSetPartitionNumber":{"type":"integer","description":"The number of partitions in the storage set.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"The type to expand cloud disks. Valid Values: \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e.\n"},"zoneId":{"type":"string","description":"ID of the free zone to which the disk belongs. One of the \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e must be set but can not be set at the same time.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering EcsDisk resources.\n","properties":{"advancedFeatures":{"type":"string"},"availabilityZone":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead","willReplaceOnChanges":true},"burstingEnabled":{"type":"boolean","description":"Specifies whether to enable the performance burst feature. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`burstingEnabled`\" pulumi-lang-dotnet=\"`BurstingEnabled`\" pulumi-lang-go=\"`burstingEnabled`\" pulumi-lang-python=\"`bursting_enabled`\" pulumi-lang-yaml=\"`burstingEnabled`\" pulumi-lang-java=\"`burstingEnabled`\"\u003e`bursting_enabled`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"category":{"type":"string","description":"The category of the data disk. Default value: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. Valid Values: \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`elasticEphemeralDiskStandard`\" pulumi-lang-dotnet=\"`ElasticEphemeralDiskStandard`\" pulumi-lang-go=\"`elasticEphemeralDiskStandard`\" pulumi-lang-python=\"`elastic_ephemeral_disk_standard`\" pulumi-lang-yaml=\"`elasticEphemeralDiskStandard`\" pulumi-lang-java=\"`elasticEphemeralDiskStandard`\"\u003e`elastic_ephemeral_disk_standard`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`elasticEphemeralDiskPremium`\" pulumi-lang-dotnet=\"`ElasticEphemeralDiskPremium`\" pulumi-lang-go=\"`elasticEphemeralDiskPremium`\" pulumi-lang-python=\"`elastic_ephemeral_disk_premium`\" pulumi-lang-yaml=\"`elasticEphemeralDiskPremium`\" pulumi-lang-java=\"`elasticEphemeralDiskPremium`\"\u003e`elastic_ephemeral_disk_premium`\u003c/span\u003e.\n"},"createTime":{"type":"string","description":"(Available since v1.237.0) The time when the disk was created.\n"},"deleteAutoSnapshot":{"type":"boolean","description":"Specifies whether to delete the automatic snapshots of the disk when the disk is released. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"deleteWithInstance":{"type":"boolean","description":"Specifies whether to release the disk along with its associated instance. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The description of the disk. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"diskName":{"type":"string","description":"The name of the data disk. The name must be 2 to 128 characters in length and can contain letters, digits, colons (:), underscores (_), periods (.), and hyphens (-). The name must start with a letter.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to check the validity of the request without actually making the request.request Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"enableAutoSnapshot":{"type":"boolean","description":"Specifies whether to enable the automatic snapshot policy feature for the cloud disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"encryptAlgorithm":{"type":"string"},"encrypted":{"type":"boolean","description":"Specifies whether to encrypt the disk. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the instance to which the created subscription disk is automatically attached.\n* After you specify the instance ID, the specified \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`kmsKeyId`\" pulumi-lang-dotnet=\"`KmsKeyId`\" pulumi-lang-go=\"`kmsKeyId`\" pulumi-lang-python=\"`kms_key_id`\" pulumi-lang-yaml=\"`kmsKeyId`\" pulumi-lang-java=\"`kmsKeyId`\"\u003e`kms_key_id`\u003c/span\u003e parameters are ignored.\n* One of the \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e must be set but can not be set at the same time.\n"},"kmsKeyId":{"type":"string","description":"The ID of the Key Management Service (KMS) key that is used for the disk. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`kmsKeyId`\" pulumi-lang-dotnet=\"`KmsKeyId`\" pulumi-lang-go=\"`kmsKeyId`\" pulumi-lang-python=\"`kms_key_id`\" pulumi-lang-yaml=\"`kmsKeyId`\" pulumi-lang-java=\"`kmsKeyId`\"\u003e`kms_key_id`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`encrypted`\" pulumi-lang-dotnet=\"`Encrypted`\" pulumi-lang-go=\"`encrypted`\" pulumi-lang-python=\"`encrypted`\" pulumi-lang-yaml=\"`encrypted`\" pulumi-lang-java=\"`encrypted`\"\u003e`encrypted`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"multiAttach":{"type":"string","description":"Specifies whether to enable the multi-attach feature for the disk. Default value: `Disabled`. Valid values: `Enabled`, `Disabled`. **NOTE:** Currently, \u003cspan pulumi-lang-nodejs=\"`multiAttach`\" pulumi-lang-dotnet=\"`MultiAttach`\" pulumi-lang-go=\"`multiAttach`\" pulumi-lang-python=\"`multi_attach`\" pulumi-lang-yaml=\"`multiAttach`\" pulumi-lang-java=\"`multiAttach`\"\u003e`multi_attach`\u003c/span\u003e can only be set to `Enabled` when \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`diskName`\" pulumi-lang-dotnet=\"`DiskName`\" pulumi-lang-go=\"`diskName`\" pulumi-lang-python=\"`disk_name`\" pulumi-lang-yaml=\"`diskName`\" pulumi-lang-java=\"`diskName`\"\u003e`disk_name`\u003c/span\u003e instead.\n\n\u003e **NOTE:** Disk category \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e has been outdated, and it only can be used none I/O Optimized ECS instances. Recommend \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e disk.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`diskName`\" pulumi-lang-dotnet=\"`DiskName`\" pulumi-lang-go=\"`diskName`\" pulumi-lang-python=\"`disk_name`\" pulumi-lang-yaml=\"`diskName`\" pulumi-lang-java=\"`diskName`\"\u003e`disk_name`\u003c/span\u003e instead."},"paymentType":{"type":"string","description":"The payment type of the disk. Default to `PayAsYouGo`. Valid values: `PayAsYouGo`, `Subscription`. If you want to change the disk payment type, the \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e is required.\n"},"performanceLevel":{"type":"string","description":"Specifies the performance level of an ESSD when you create the ESSD. Valid values:\n- `PL0`: A single ESSD delivers up to 10,000 random read/write IOPS.\n- `PL1`: A single ESSD delivers up to 50,000 random read/write IOPS.\n- `PL2`: A single ESSD delivers up to 100,000 random read/write IOPS.\n- `PL3`: A single ESSD delivers up to 1,000,000 random read/write IOPS.\n"},"provisionedIops":{"type":"integer","description":"The provisioned read/write IOPS of the ESSD AutoPL disk. Valid values: 0 to min{50,000, 1,000 × Capacity - Baseline IOPS}. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`provisionedIops`\" pulumi-lang-dotnet=\"`ProvisionedIops`\" pulumi-lang-go=\"`provisionedIops`\" pulumi-lang-python=\"`provisioned_iops`\" pulumi-lang-yaml=\"`provisionedIops`\" pulumi-lang-java=\"`provisionedIops`\"\u003e`provisioned_iops`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"regionId":{"type":"string","description":"(Available since v1.237.0) The ID of the region to which the disk belongs.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which to add the disk.\n"},"size":{"type":"integer","description":"The size of the disk. Unit: GiB. This parameter is required. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`elasticEphemeralDiskStandard`\" pulumi-lang-dotnet=\"`ElasticEphemeralDiskStandard`\" pulumi-lang-go=\"`elasticEphemeralDiskStandard`\" pulumi-lang-python=\"`elastic_ephemeral_disk_standard`\" pulumi-lang-yaml=\"`elasticEphemeralDiskStandard`\" pulumi-lang-java=\"`elasticEphemeralDiskStandard`\"\u003e`elastic_ephemeral_disk_standard`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`8192`\" pulumi-lang-dotnet=\"`8192`\" pulumi-lang-go=\"`8192`\" pulumi-lang-python=\"`8192`\" pulumi-lang-yaml=\"`8192`\" pulumi-lang-java=\"`8192`\"\u003e`8192`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`elasticEphemeralDiskPremium`\" pulumi-lang-dotnet=\"`ElasticEphemeralDiskPremium`\" pulumi-lang-go=\"`elasticEphemeralDiskPremium`\" pulumi-lang-python=\"`elastic_ephemeral_disk_premium`\" pulumi-lang-yaml=\"`elasticEphemeralDiskPremium`\" pulumi-lang-java=\"`elasticEphemeralDiskPremium`\"\u003e`elastic_ephemeral_disk_premium`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`8192`\" pulumi-lang-dotnet=\"`8192`\" pulumi-lang-go=\"`8192`\" pulumi-lang-python=\"`8192`\" pulumi-lang-yaml=\"`8192`\" pulumi-lang-java=\"`8192`\"\u003e`8192`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`category`\" pulumi-lang-dotnet=\"`Category`\" pulumi-lang-go=\"`category`\" pulumi-lang-python=\"`category`\" pulumi-lang-yaml=\"`category`\" pulumi-lang-java=\"`category`\"\u003e`category`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, the valid values are related to \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e is set to `PL0`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e is set to `PL1`. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e is set to `PL2`. Valid values: \u003cspan pulumi-lang-nodejs=\"`461`\" pulumi-lang-dotnet=\"`461`\" pulumi-lang-go=\"`461`\" pulumi-lang-python=\"`461`\" pulumi-lang-yaml=\"`461`\" pulumi-lang-java=\"`461`\"\u003e`461`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`performanceLevel`\" pulumi-lang-dotnet=\"`PerformanceLevel`\" pulumi-lang-go=\"`performanceLevel`\" pulumi-lang-python=\"`performance_level`\" pulumi-lang-yaml=\"`performanceLevel`\" pulumi-lang-java=\"`performanceLevel`\"\u003e`performance_level`\u003c/span\u003e is set to `PL3`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1261`\" pulumi-lang-dotnet=\"`1261`\" pulumi-lang-go=\"`1261`\" pulumi-lang-python=\"`1261`\" pulumi-lang-yaml=\"`1261`\" pulumi-lang-java=\"`1261`\"\u003e`1261`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot to use to create the disk. **NOTE:** If the size of the snapshot specified by \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e is larger than the value of \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e, the size of the created disk is equal to the specified snapshot size. If the size of the snapshot specified by \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e is smaller than the value of \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e, the size of the created disk is equal to the value of \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the disk.\n"},"storageSetId":{"type":"string","description":"The ID of the storage set.\n","willReplaceOnChanges":true},"storageSetPartitionNumber":{"type":"integer","description":"The number of partitions in the storage set.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"The type to expand cloud disks. Valid Values: \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e.\n"},"zoneId":{"type":"string","description":"ID of the free zone to which the disk belongs. One of the \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e must be set but can not be set at the same time.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/ecsDiskAttachment:EcsDiskAttachment":{"description":"Provides an Alicloud ECS Disk Attachment as a resource, to attach and detach disks from ECS Instances.\n\nFor information about ECS Disk Attachment and how to use it, see [What is Disk Attachment](https://www.alibabacloud.com/help/en/doc-detail/25515.htm).\n\n\u003e **NOTE:** Available since v1.122.0.\n\n## Example Usage\n\nBasic usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    instanceTypeFamily: \"ecs.sn1ne\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"10.4.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: \"tf-example\",\n    description: \"New security group\",\n    vpcId: defaultNetwork.id,\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceName: name,\n    hostName: name,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup.id],\n    vswitchId: defaultSwitch.id,\n});\nconst disk = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultEcsDisk = new alicloud.ecs.EcsDisk(\"default\", {\n    zoneId: disk.then(disk =\u003e disk.zones?.[0]?.id),\n    category: \"cloud_efficiency\",\n    deleteAutoSnapshot: true,\n    description: \"Test For Terraform\",\n    diskName: name,\n    enableAutoSnapshot: true,\n    encrypted: true,\n    size: 500,\n    tags: {\n        Created: \"TF\",\n        Environment: \"Acceptance-test\",\n    },\n});\nconst defaultEcsDiskAttachment = new alicloud.ecs.EcsDiskAttachment(\"default\", {\n    diskId: defaultEcsDisk.id,\n    instanceId: defaultInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"Instance\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    instance_type_family=\"ecs.sn1ne\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"10.4.0.0/24\",\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=\"tf-example\",\n    description=\"New security group\",\n    vpc_id=default_network.id)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    availability_zone=default.zones[0].id,\n    instance_name=name,\n    host_name=name,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[default_security_group.id],\n    vswitch_id=default_switch.id)\ndisk = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_ecs_disk = alicloud.ecs.EcsDisk(\"default\",\n    zone_id=disk.zones[0].id,\n    category=\"cloud_efficiency\",\n    delete_auto_snapshot=True,\n    description=\"Test For Terraform\",\n    disk_name=name,\n    enable_auto_snapshot=True,\n    encrypted=True,\n    size=500,\n    tags={\n        \"Created\": \"TF\",\n        \"Environment\": \"Acceptance-test\",\n    })\ndefault_ecs_disk_attachment = alicloud.ecs.EcsDiskAttachment(\"default\",\n    disk_id=default_ecs_disk.id,\n    instance_id=default_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"10.4.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = \"tf-example\",\n        Description = \"New security group\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceName = name,\n        HostName = name,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var disk = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultEcsDisk = new AliCloud.Ecs.EcsDisk(\"default\", new()\n    {\n        ZoneId = disk.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Category = \"cloud_efficiency\",\n        DeleteAutoSnapshot = true,\n        Description = \"Test For Terraform\",\n        DiskName = name,\n        EnableAutoSnapshot = true,\n        Encrypted = true,\n        Size = 500,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"Environment\", \"Acceptance-test\" },\n        },\n    });\n\n    var defaultEcsDiskAttachment = new AliCloud.Ecs.EcsDiskAttachment(\"default\", new()\n    {\n        DiskId = defaultEcsDisk.Id,\n        InstanceId = defaultInstance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone:   pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tInstanceTypeFamily: pulumi.StringRef(\"ecs.sn1ne\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultNetwork.ID(),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/24\"),\n\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:        pulumi.String(\"tf-example\"),\n\t\t\tDescription: pulumi.String(\"New security group\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(_default.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(name),\n\t\t\tHostName:         pulumi.String(name),\n\t\t\tImageId:          pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdisk, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcsDisk, err := ecs.NewEcsDisk(ctx, \"default\", \u0026ecs.EcsDiskArgs{\n\t\t\tZoneId:             pulumi.String(disk.Zones[0].Id),\n\t\t\tCategory:           pulumi.String(\"cloud_efficiency\"),\n\t\t\tDeleteAutoSnapshot: pulumi.Bool(true),\n\t\t\tDescription:        pulumi.String(\"Test For Terraform\"),\n\t\t\tDiskName:           pulumi.String(name),\n\t\t\tEnableAutoSnapshot: pulumi.Bool(true),\n\t\t\tEncrypted:          pulumi.Bool(true),\n\t\t\tSize:               pulumi.Int(500),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\":     pulumi.String(\"TF\"),\n\t\t\t\t\"Environment\": pulumi.String(\"Acceptance-test\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEcsDiskAttachment(ctx, \"default\", \u0026ecs.EcsDiskAttachmentArgs{\n\t\t\tDiskId:     defaultEcsDisk.ID(),\n\t\t\tInstanceId: defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.ecs.EcsDisk;\nimport com.pulumi.alicloud.ecs.EcsDiskArgs;\nimport com.pulumi.alicloud.ecs.EcsDiskAttachment;\nimport com.pulumi.alicloud.ecs.EcsDiskAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"10.4.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"tf-example\")\n            .description(\"New security group\")\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .instanceName(name)\n            .hostName(name)\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.id())\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        final var disk = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultEcsDisk = new EcsDisk(\"defaultEcsDisk\", EcsDiskArgs.builder()\n            .zoneId(disk.zones()[0].id())\n            .category(\"cloud_efficiency\")\n            .deleteAutoSnapshot(true)\n            .description(\"Test For Terraform\")\n            .diskName(name)\n            .enableAutoSnapshot(true)\n            .encrypted(true)\n            .size(500)\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"Environment\", \"Acceptance-test\")\n            ))\n            .build());\n\n        var defaultEcsDiskAttachment = new EcsDiskAttachment(\"defaultEcsDiskAttachment\", EcsDiskAttachmentArgs.builder()\n            .diskId(defaultEcsDisk.id())\n            .instanceId(defaultInstance.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  # Create a new ECS disk-attachment and use it attach one disk to a new instance.\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 10.4.0.0/24\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: tf-example\n      description: New security group\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:ecs:Instance\n    name: default\n    properties:\n      availabilityZone: ${default.zones[0].id}\n      instanceName: ${name}\n      hostName: ${name}\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      securityGroups:\n        - ${defaultSecurityGroup.id}\n      vswitchId: ${defaultSwitch.id}\n  defaultEcsDisk:\n    type: alicloud:ecs:EcsDisk\n    name: default\n    properties:\n      zoneId: ${disk.zones[0].id}\n      category: cloud_efficiency\n      deleteAutoSnapshot: 'true'\n      description: Test For Terraform\n      diskName: ${name}\n      enableAutoSnapshot: 'true'\n      encrypted: 'true'\n      size: '500'\n      tags:\n        Created: TF\n        Environment: Acceptance-test\n  defaultEcsDiskAttachment:\n    type: alicloud:ecs:EcsDiskAttachment\n    name: default\n    properties:\n      diskId: ${defaultEcsDisk.id}\n      instanceId: ${defaultInstance.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        instanceTypeFamily: ecs.sn1ne\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n  disk:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe disk attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsDiskAttachment:EcsDiskAttachment example d-abc12345678:i-abc12355\n```\n\n","properties":{"bootable":{"type":"boolean","description":"Whether to mount as a system disk. Default to: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"deleteWithInstance":{"type":"boolean","description":"Indicates whether the disk is released together with the instance. Default to: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"device":{"type":"string","description":"The name of the cloud disk device.\n"},"diskId":{"type":"string","description":"ID of the Disk to be attached.\n"},"instanceId":{"type":"string","description":"ID of the Instance to attach to.\n"},"keyPairName":{"type":"string","description":"The name of key pair\n"},"password":{"type":"string","description":"When mounting the system disk, setting the user name and password of the instance is only effective for the administrator and root user names, and other user names are not effective.\n"}},"required":["device","diskId","instanceId"],"inputProperties":{"bootable":{"type":"boolean","description":"Whether to mount as a system disk. Default to: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"deleteWithInstance":{"type":"boolean","description":"Indicates whether the disk is released together with the instance. Default to: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"diskId":{"type":"string","description":"ID of the Disk to be attached.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"ID of the Instance to attach to.\n","willReplaceOnChanges":true},"keyPairName":{"type":"string","description":"The name of key pair\n","willReplaceOnChanges":true},"password":{"type":"string","description":"When mounting the system disk, setting the user name and password of the instance is only effective for the administrator and root user names, and other user names are not effective.\n","willReplaceOnChanges":true}},"requiredInputs":["diskId","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsDiskAttachment resources.\n","properties":{"bootable":{"type":"boolean","description":"Whether to mount as a system disk. Default to: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"deleteWithInstance":{"type":"boolean","description":"Indicates whether the disk is released together with the instance. Default to: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"device":{"type":"string","description":"The name of the cloud disk device.\n"},"diskId":{"type":"string","description":"ID of the Disk to be attached.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"ID of the Instance to attach to.\n","willReplaceOnChanges":true},"keyPairName":{"type":"string","description":"The name of key pair\n","willReplaceOnChanges":true},"password":{"type":"string","description":"When mounting the system disk, setting the user name and password of the instance is only effective for the administrator and root user names, and other user names are not effective.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/ecsImageComponent:EcsImageComponent":{"description":"Provides a ECS Image Component resource.\n\n\n\nFor information about ECS Image Component and how to use it, see [What is Image Component](https://www.alibabacloud.com/help/en/doc-detail/200424.htm).\n\n\u003e **NOTE:** Available since v1.159.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    nameRegex: \"default\",\n});\nconst example = new alicloud.ecs.EcsImageComponent(\"example\", {\n    componentType: \"Build\",\n    content: \"RUN yum update -y\",\n    description: \"example_value\",\n    imageComponentName: \"example_value\",\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n    systemType: \"Linux\",\n    tags: {\n        Created: \"TF\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.get_resource_groups(name_regex=\"default\")\nexample = alicloud.ecs.EcsImageComponent(\"example\",\n    component_type=\"Build\",\n    content=\"RUN yum update -y\",\n    description=\"example_value\",\n    image_component_name=\"example_value\",\n    resource_group_id=default.groups[0].id,\n    system_type=\"Linux\",\n    tags={\n        \"Created\": \"TF\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        NameRegex = \"default\",\n    });\n\n    var example = new AliCloud.Ecs.EcsImageComponent(\"example\", new()\n    {\n        ComponentType = \"Build\",\n        Content = \"RUN yum update -y\",\n        Description = \"example_value\",\n        ImageComponentName = \"example_value\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n        SystemType = \"Linux\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEcsImageComponent(ctx, \"example\", \u0026ecs.EcsImageComponentArgs{\n\t\t\tComponentType:      pulumi.String(\"Build\"),\n\t\t\tContent:            pulumi.String(\"RUN yum update -y\"),\n\t\t\tDescription:        pulumi.String(\"example_value\"),\n\t\t\tImageComponentName: pulumi.String(\"example_value\"),\n\t\t\tResourceGroupId:    pulumi.String(_default.Groups[0].Id),\n\t\t\tSystemType:         pulumi.String(\"Linux\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.ecs.EcsImageComponent;\nimport com.pulumi.alicloud.ecs.EcsImageComponentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .nameRegex(\"default\")\n            .build());\n\n        var example = new EcsImageComponent(\"example\", EcsImageComponentArgs.builder()\n            .componentType(\"Build\")\n            .content(\"RUN yum update -y\")\n            .description(\"example_value\")\n            .imageComponentName(\"example_value\")\n            .resourceGroupId(default_.groups()[0].id())\n            .systemType(\"Linux\")\n            .tags(Map.of(\"Created\", \"TF\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:ecs:EcsImageComponent\n    properties:\n      componentType: Build\n      content: RUN yum update -y\n      description: example_value\n      imageComponentName: example_value\n      resourceGroupId: ${default.groups[0].id}\n      systemType: Linux\n      tags:\n        Created: TF\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        nameRegex: default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Image Component can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsImageComponent:EcsImageComponent example \u003cid\u003e\n```\n\n","properties":{"componentType":{"type":"string","description":"The component type. Supports mirrored build components and test components.\n\nValue range:\n- Build\n- Test\n\nDefault value: Build.\n\n\u003e **NOTE:**  Build components can only be used in build templates and test components can only be used in test templates.\n"},"componentVersion":{"type":"string","description":"The component version number, which is used in conjunction with the component name, is in the format of major.minor.patch and is a non-negative integer.\n\nDefault value:(x +1).0.0, where x is the maximum major version of the current component.\n"},"content":{"type":"string","description":"Component content. Consists of multiple commands. The maximum number of commands cannot exceed 127. Details of supported commands and command formats,\n"},"createTime":{"type":"string","description":"Component creation time.\n"},"description":{"type":"string","description":"Description information. It must be 2 to 256 characters in length and cannot start with http:// or https.\n"},"imageComponentName":{"type":"string","description":"The component name. It must be 2 to 128 characters in length and start with an uppercase letter or a Chinese character. It cannot start with http:// or https. Can contain Chinese, English, numbers, half-length colons (:), underscores (_), half-length periods (.), or dashes (-).\n\n\u003e **NOTE:**  When 'Name' is not set, the 'ImageComponentId' return value is used by default.\n"},"resourceGroupId":{"type":"string","description":"The ID of the enterprise resource group to which the created image component belongs.\n"},"systemType":{"type":"string","description":"The operating system supported by the component.\n\nValue range:\n- Linux\n- Windows\n\nDefault value: Linux.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"List of label key-value pairs.\n"}},"required":["componentType","componentVersion","content","createTime","imageComponentName","resourceGroupId","systemType"],"inputProperties":{"componentType":{"type":"string","description":"The component type. Supports mirrored build components and test components.\n\nValue range:\n- Build\n- Test\n\nDefault value: Build.\n\n\u003e **NOTE:**  Build components can only be used in build templates and test components can only be used in test templates.\n","willReplaceOnChanges":true},"componentVersion":{"type":"string","description":"The component version number, which is used in conjunction with the component name, is in the format of major.minor.patch and is a non-negative integer.\n\nDefault value:(x +1).0.0, where x is the maximum major version of the current component.\n","willReplaceOnChanges":true},"content":{"type":"string","description":"Component content. Consists of multiple commands. The maximum number of commands cannot exceed 127. Details of supported commands and command formats,\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description information. It must be 2 to 256 characters in length and cannot start with http:// or https.\n","willReplaceOnChanges":true},"imageComponentName":{"type":"string","description":"The component name. It must be 2 to 128 characters in length and start with an uppercase letter or a Chinese character. It cannot start with http:// or https. Can contain Chinese, English, numbers, half-length colons (:), underscores (_), half-length periods (.), or dashes (-).\n\n\u003e **NOTE:**  When 'Name' is not set, the 'ImageComponentId' return value is used by default.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the enterprise resource group to which the created image component belongs.\n"},"systemType":{"type":"string","description":"The operating system supported by the component.\n\nValue range:\n- Linux\n- Windows\n\nDefault value: Linux.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"List of label key-value pairs.\n"}},"requiredInputs":["content"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsImageComponent resources.\n","properties":{"componentType":{"type":"string","description":"The component type. Supports mirrored build components and test components.\n\nValue range:\n- Build\n- Test\n\nDefault value: Build.\n\n\u003e **NOTE:**  Build components can only be used in build templates and test components can only be used in test templates.\n","willReplaceOnChanges":true},"componentVersion":{"type":"string","description":"The component version number, which is used in conjunction with the component name, is in the format of major.minor.patch and is a non-negative integer.\n\nDefault value:(x +1).0.0, where x is the maximum major version of the current component.\n","willReplaceOnChanges":true},"content":{"type":"string","description":"Component content. Consists of multiple commands. The maximum number of commands cannot exceed 127. Details of supported commands and command formats,\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"Component creation time.\n"},"description":{"type":"string","description":"Description information. It must be 2 to 256 characters in length and cannot start with http:// or https.\n","willReplaceOnChanges":true},"imageComponentName":{"type":"string","description":"The component name. It must be 2 to 128 characters in length and start with an uppercase letter or a Chinese character. It cannot start with http:// or https. Can contain Chinese, English, numbers, half-length colons (:), underscores (_), half-length periods (.), or dashes (-).\n\n\u003e **NOTE:**  When 'Name' is not set, the 'ImageComponentId' return value is used by default.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the enterprise resource group to which the created image component belongs.\n"},"systemType":{"type":"string","description":"The operating system supported by the component.\n\nValue range:\n- Linux\n- Windows\n\nDefault value: Linux.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"List of label key-value pairs.\n"}},"type":"object"}},"alicloud:ecs/ecsImagePipeline:EcsImagePipeline":{"description":"Provides a ECS Image Pipeline resource.\n\nFor information about ECS Image Pipeline and how to use it, see [What is Image Pipeline](https://www.alibabacloud.com/help/en/doc-detail/200427.html).\n\n\u003e **NOTE:** Available in v1.163.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    nameRegex: \"default\",\n});\nconst defaultGetZones = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = defaultGetImages.then(defaultGetImages =\u003e alicloud.ecs.getInstanceTypes({\n    imageId: defaultGetImages.ids?.[0],\n}));\nconst defaultGetAccount = alicloud.getAccount({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultEcsImagePipeline = new alicloud.ecs.EcsImagePipeline(\"default\", {\n    addAccounts: [defaultGetAccount.then(defaultGetAccount =\u003e defaultGetAccount.id)],\n    baseImage: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.ids?.[0]),\n    baseImageType: \"IMAGE\",\n    buildContent: \"RUN yum update -y\",\n    deleteInstanceOnFailure: false,\n    imageName: \"terraform-example\",\n    name: \"terraform-example\",\n    description: \"terraform-example\",\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.ids?.[0]),\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n    internetMaxBandwidthOut: 20,\n    systemDiskSize: 40,\n    toRegionIds: [\n        \"cn-qingdao\",\n        \"cn-zhangjiakou\",\n    ],\n    vswitchId: defaultSwitch.id,\n    tags: {\n        Created: \"TF\",\n        For: \"Acceptance-test\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.get_resource_groups(name_regex=\"default\")\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(image_id=default_get_images.ids[0])\ndefault_get_account = alicloud.get_account()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_ecs_image_pipeline = alicloud.ecs.EcsImagePipeline(\"default\",\n    add_accounts=[default_get_account.id],\n    base_image=default_get_images.ids[0],\n    base_image_type=\"IMAGE\",\n    build_content=\"RUN yum update -y\",\n    delete_instance_on_failure=False,\n    image_name=\"terraform-example\",\n    name=\"terraform-example\",\n    description=\"terraform-example\",\n    instance_type=default_get_instance_types.ids[0],\n    resource_group_id=default.groups[0].id,\n    internet_max_bandwidth_out=20,\n    system_disk_size=40,\n    to_region_ids=[\n        \"cn-qingdao\",\n        \"cn-zhangjiakou\",\n    ],\n    vswitch_id=default_switch.id,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Acceptance-test\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        NameRegex = \"default\",\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Ids[0]),\n    });\n\n    var defaultGetAccount = AliCloud.GetAccount.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultEcsImagePipeline = new AliCloud.Ecs.EcsImagePipeline(\"default\", new()\n    {\n        AddAccounts = new[]\n        {\n            defaultGetAccount.Apply(getAccountResult =\u003e getAccountResult.Id),\n        },\n        BaseImage = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Ids[0]),\n        BaseImageType = \"IMAGE\",\n        BuildContent = \"RUN yum update -y\",\n        DeleteInstanceOnFailure = false,\n        ImageName = \"terraform-example\",\n        Name = \"terraform-example\",\n        Description = \"terraform-example\",\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Ids[0]),\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n        InternetMaxBandwidthOut = 20,\n        SystemDiskSize = 40,\n        ToRegionIds = new[]\n        {\n            \"cn-qingdao\",\n            \"cn-zhangjiakou\",\n        },\n        VswitchId = defaultSwitch.Id,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Acceptance-test\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tImageId: pulumi.StringRef(defaultGetImages.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetAccount, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEcsImagePipeline(ctx, \"default\", \u0026ecs.EcsImagePipelineArgs{\n\t\t\tAddAccounts: pulumi.StringArray{\n\t\t\t\tpulumi.String(defaultGetAccount.Id),\n\t\t\t},\n\t\t\tBaseImage:               pulumi.String(defaultGetImages.Ids[0]),\n\t\t\tBaseImageType:           pulumi.String(\"IMAGE\"),\n\t\t\tBuildContent:            pulumi.String(\"RUN yum update -y\"),\n\t\t\tDeleteInstanceOnFailure: pulumi.Bool(false),\n\t\t\tImageName:               pulumi.String(\"terraform-example\"),\n\t\t\tName:                    pulumi.String(\"terraform-example\"),\n\t\t\tDescription:             pulumi.String(\"terraform-example\"),\n\t\t\tInstanceType:            pulumi.String(defaultGetInstanceTypes.Ids[0]),\n\t\t\tResourceGroupId:         pulumi.String(_default.Groups[0].Id),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(20),\n\t\t\tSystemDiskSize:          pulumi.Int(40),\n\t\t\tToRegionIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"cn-qingdao\"),\n\t\t\t\tpulumi.String(\"cn-zhangjiakou\"),\n\t\t\t},\n\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"Acceptance-test\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.EcsImagePipeline;\nimport com.pulumi.alicloud.ecs.EcsImagePipelineArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .nameRegex(\"default\")\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .imageId(defaultGetImages.ids()[0])\n            .build());\n\n        final var defaultGetAccount = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultEcsImagePipeline = new EcsImagePipeline(\"defaultEcsImagePipeline\", EcsImagePipelineArgs.builder()\n            .addAccounts(defaultGetAccount.id())\n            .baseImage(defaultGetImages.ids()[0])\n            .baseImageType(\"IMAGE\")\n            .buildContent(\"RUN yum update -y\")\n            .deleteInstanceOnFailure(false)\n            .imageName(\"terraform-example\")\n            .name(\"terraform-example\")\n            .description(\"terraform-example\")\n            .instanceType(defaultGetInstanceTypes.ids()[0])\n            .resourceGroupId(default_.groups()[0].id())\n            .internetMaxBandwidthOut(20)\n            .systemDiskSize(40)\n            .toRegionIds(            \n                \"cn-qingdao\",\n                \"cn-zhangjiakou\")\n            .vswitchId(defaultSwitch.id())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Acceptance-test\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  defaultEcsImagePipeline:\n    type: alicloud:ecs:EcsImagePipeline\n    name: default\n    properties:\n      addAccounts:\n        - ${defaultGetAccount.id}\n      baseImage: ${defaultGetImages.ids[0]}\n      baseImageType: IMAGE\n      buildContent: RUN yum update -y\n      deleteInstanceOnFailure: false\n      imageName: terraform-example\n      name: terraform-example\n      description: terraform-example\n      instanceType: ${defaultGetInstanceTypes.ids[0]}\n      resourceGroupId: ${default.groups[0].id}\n      internetMaxBandwidthOut: 20\n      systemDiskSize: 40\n      toRegionIds:\n        - cn-qingdao\n        - cn-zhangjiakou\n      vswitchId: ${defaultSwitch.id}\n      tags:\n        Created: TF\n        For: Acceptance-test\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        nameRegex: default\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        imageId: ${defaultGetImages.ids[0]}\n  defaultGetAccount:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Image Pipeline can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsImagePipeline:EcsImagePipeline example \u003cid\u003e\n```\n\n","properties":{"addAccounts":{"type":"array","items":{"type":"string"},"description":"The ID of Alibaba Cloud account to which to share the created image.\n"},"baseImage":{"type":"string","description":"The source image. When you set \u003cspan pulumi-lang-nodejs=\"`baseImageType`\" pulumi-lang-dotnet=\"`BaseImageType`\" pulumi-lang-go=\"`baseImageType`\" pulumi-lang-python=\"`base_image_type`\" pulumi-lang-yaml=\"`baseImageType`\" pulumi-lang-java=\"`baseImageType`\"\u003e`base_image_type`\u003c/span\u003e to `IMAGE`, set \u003cspan pulumi-lang-nodejs=\"`baseImage`\" pulumi-lang-dotnet=\"`BaseImage`\" pulumi-lang-go=\"`baseImage`\" pulumi-lang-python=\"`base_image`\" pulumi-lang-yaml=\"`baseImage`\" pulumi-lang-java=\"`baseImage`\"\u003e`base_image`\u003c/span\u003e to the ID of a custom image. When you set \u003cspan pulumi-lang-nodejs=\"`baseImageType`\" pulumi-lang-dotnet=\"`BaseImageType`\" pulumi-lang-go=\"`baseImageType`\" pulumi-lang-python=\"`base_image_type`\" pulumi-lang-yaml=\"`baseImageType`\" pulumi-lang-java=\"`baseImageType`\"\u003e`base_image_type`\u003c/span\u003e to `IMAGE_FAMILY`, set \u003cspan pulumi-lang-nodejs=\"`baseImage`\" pulumi-lang-dotnet=\"`BaseImage`\" pulumi-lang-go=\"`baseImage`\" pulumi-lang-python=\"`base_image`\" pulumi-lang-yaml=\"`baseImage`\" pulumi-lang-java=\"`baseImage`\"\u003e`base_image`\u003c/span\u003e to the name of an image family.\n"},"baseImageType":{"type":"string","description":"The type of the source image. Valid values: `IMAGE`, `IMAGE_FAMILY`.\n- IMAGE: custom image.\n- IMAGE_FAMILY: image family.\n"},"buildContent":{"type":"string","description":"The content of the image template. The content cannot be greater than 16 KB in size, and can contain up to 127 commands.\n"},"deleteInstanceOnFailure":{"type":"boolean","description":"Specifies whether to release the intermediate instance if the image cannot be created.\n"},"description":{"type":"string","description":"The description of the image template. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length and cannot start with `http://` or `https://`. **Note:** If the intermediate instance cannot be started, the instance is released by default.\n"},"imageName":{"type":"string","description":"The name prefix of the image to be created. The prefix must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), periods (.),and hyphens (-).\n"},"instanceType":{"type":"string","description":"The instance type of the instance. You can call the DescribeInstanceTypes operation to query instance types. If you do not specify this parameter, an instance type that provides the fewest vCPUs and memory resources is automatically selected. This configuration is subject to resource availability of instance types. For example, the `ecs.g6.large` instance type is selected by default. If available `ecs.g6.large` resources are insufficient, the `ecs.g6.xlarge` instance type is selected.\n"},"internetMaxBandwidthOut":{"type":"integer","description":"The size of the outbound public bandwidth for the intermediate instance. Unit: `Mbit/s`. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the image template. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), periods (.),and hyphens (-).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"systemDiskSize":{"type":"integer","description":"The size of the system disk of the intermediate instance. Unit: GiB. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`40`\" pulumi-lang-dotnet=\"`40`\" pulumi-lang-go=\"`40`\" pulumi-lang-python=\"`40`\" pulumi-lang-yaml=\"`40`\" pulumi-lang-java=\"`40`\"\u003e`40`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"toRegionIds":{"type":"array","items":{"type":"string"},"description":"The ID of region to which to distribute the created image.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch. If you do not specify this parameter, a virtual private cloud (VPC) and a vSwitch are created by default.\n"}},"required":["baseImage","baseImageType","deleteInstanceOnFailure","internetMaxBandwidthOut","name","resourceGroupId","systemDiskSize"],"inputProperties":{"addAccounts":{"type":"array","items":{"type":"string"},"description":"The ID of Alibaba Cloud account to which to share the created image.\n","willReplaceOnChanges":true},"baseImage":{"type":"string","description":"The source image. When you set \u003cspan pulumi-lang-nodejs=\"`baseImageType`\" pulumi-lang-dotnet=\"`BaseImageType`\" pulumi-lang-go=\"`baseImageType`\" pulumi-lang-python=\"`base_image_type`\" pulumi-lang-yaml=\"`baseImageType`\" pulumi-lang-java=\"`baseImageType`\"\u003e`base_image_type`\u003c/span\u003e to `IMAGE`, set \u003cspan pulumi-lang-nodejs=\"`baseImage`\" pulumi-lang-dotnet=\"`BaseImage`\" pulumi-lang-go=\"`baseImage`\" pulumi-lang-python=\"`base_image`\" pulumi-lang-yaml=\"`baseImage`\" pulumi-lang-java=\"`baseImage`\"\u003e`base_image`\u003c/span\u003e to the ID of a custom image. When you set \u003cspan pulumi-lang-nodejs=\"`baseImageType`\" pulumi-lang-dotnet=\"`BaseImageType`\" pulumi-lang-go=\"`baseImageType`\" pulumi-lang-python=\"`base_image_type`\" pulumi-lang-yaml=\"`baseImageType`\" pulumi-lang-java=\"`baseImageType`\"\u003e`base_image_type`\u003c/span\u003e to `IMAGE_FAMILY`, set \u003cspan pulumi-lang-nodejs=\"`baseImage`\" pulumi-lang-dotnet=\"`BaseImage`\" pulumi-lang-go=\"`baseImage`\" pulumi-lang-python=\"`base_image`\" pulumi-lang-yaml=\"`baseImage`\" pulumi-lang-java=\"`baseImage`\"\u003e`base_image`\u003c/span\u003e to the name of an image family.\n","willReplaceOnChanges":true},"baseImageType":{"type":"string","description":"The type of the source image. Valid values: `IMAGE`, `IMAGE_FAMILY`.\n- IMAGE: custom image.\n- IMAGE_FAMILY: image family.\n","willReplaceOnChanges":true},"buildContent":{"type":"string","description":"The content of the image template. The content cannot be greater than 16 KB in size, and can contain up to 127 commands.\n","willReplaceOnChanges":true},"deleteInstanceOnFailure":{"type":"boolean","description":"Specifies whether to release the intermediate instance if the image cannot be created.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the image template. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length and cannot start with `http://` or `https://`. **Note:** If the intermediate instance cannot be started, the instance is released by default.\n","willReplaceOnChanges":true},"imageName":{"type":"string","description":"The name prefix of the image to be created. The prefix must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), periods (.),and hyphens (-).\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The instance type of the instance. You can call the DescribeInstanceTypes operation to query instance types. If you do not specify this parameter, an instance type that provides the fewest vCPUs and memory resources is automatically selected. This configuration is subject to resource availability of instance types. For example, the `ecs.g6.large` instance type is selected by default. If available `ecs.g6.large` resources are insufficient, the `ecs.g6.xlarge` instance type is selected.\n","willReplaceOnChanges":true},"internetMaxBandwidthOut":{"type":"integer","description":"The size of the outbound public bandwidth for the intermediate instance. Unit: `Mbit/s`. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the image template. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), periods (.),and hyphens (-).\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"systemDiskSize":{"type":"integer","description":"The size of the system disk of the intermediate instance. Unit: GiB. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`40`\" pulumi-lang-dotnet=\"`40`\" pulumi-lang-go=\"`40`\" pulumi-lang-python=\"`40`\" pulumi-lang-yaml=\"`40`\" pulumi-lang-java=\"`40`\"\u003e`40`\u003c/span\u003e.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true},"toRegionIds":{"type":"array","items":{"type":"string"},"description":"The ID of region to which to distribute the created image.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch. If you do not specify this parameter, a virtual private cloud (VPC) and a vSwitch are created by default.\n","willReplaceOnChanges":true}},"requiredInputs":["baseImage","baseImageType"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsImagePipeline resources.\n","properties":{"addAccounts":{"type":"array","items":{"type":"string"},"description":"The ID of Alibaba Cloud account to which to share the created image.\n","willReplaceOnChanges":true},"baseImage":{"type":"string","description":"The source image. When you set \u003cspan pulumi-lang-nodejs=\"`baseImageType`\" pulumi-lang-dotnet=\"`BaseImageType`\" pulumi-lang-go=\"`baseImageType`\" pulumi-lang-python=\"`base_image_type`\" pulumi-lang-yaml=\"`baseImageType`\" pulumi-lang-java=\"`baseImageType`\"\u003e`base_image_type`\u003c/span\u003e to `IMAGE`, set \u003cspan pulumi-lang-nodejs=\"`baseImage`\" pulumi-lang-dotnet=\"`BaseImage`\" pulumi-lang-go=\"`baseImage`\" pulumi-lang-python=\"`base_image`\" pulumi-lang-yaml=\"`baseImage`\" pulumi-lang-java=\"`baseImage`\"\u003e`base_image`\u003c/span\u003e to the ID of a custom image. When you set \u003cspan pulumi-lang-nodejs=\"`baseImageType`\" pulumi-lang-dotnet=\"`BaseImageType`\" pulumi-lang-go=\"`baseImageType`\" pulumi-lang-python=\"`base_image_type`\" pulumi-lang-yaml=\"`baseImageType`\" pulumi-lang-java=\"`baseImageType`\"\u003e`base_image_type`\u003c/span\u003e to `IMAGE_FAMILY`, set \u003cspan pulumi-lang-nodejs=\"`baseImage`\" pulumi-lang-dotnet=\"`BaseImage`\" pulumi-lang-go=\"`baseImage`\" pulumi-lang-python=\"`base_image`\" pulumi-lang-yaml=\"`baseImage`\" pulumi-lang-java=\"`baseImage`\"\u003e`base_image`\u003c/span\u003e to the name of an image family.\n","willReplaceOnChanges":true},"baseImageType":{"type":"string","description":"The type of the source image. Valid values: `IMAGE`, `IMAGE_FAMILY`.\n- IMAGE: custom image.\n- IMAGE_FAMILY: image family.\n","willReplaceOnChanges":true},"buildContent":{"type":"string","description":"The content of the image template. The content cannot be greater than 16 KB in size, and can contain up to 127 commands.\n","willReplaceOnChanges":true},"deleteInstanceOnFailure":{"type":"boolean","description":"Specifies whether to release the intermediate instance if the image cannot be created.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the image template. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length and cannot start with `http://` or `https://`. **Note:** If the intermediate instance cannot be started, the instance is released by default.\n","willReplaceOnChanges":true},"imageName":{"type":"string","description":"The name prefix of the image to be created. The prefix must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), periods (.),and hyphens (-).\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The instance type of the instance. You can call the DescribeInstanceTypes operation to query instance types. If you do not specify this parameter, an instance type that provides the fewest vCPUs and memory resources is automatically selected. This configuration is subject to resource availability of instance types. For example, the `ecs.g6.large` instance type is selected by default. If available `ecs.g6.large` resources are insufficient, the `ecs.g6.xlarge` instance type is selected.\n","willReplaceOnChanges":true},"internetMaxBandwidthOut":{"type":"integer","description":"The size of the outbound public bandwidth for the intermediate instance. Unit: `Mbit/s`. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the image template. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), periods (.),and hyphens (-).\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"systemDiskSize":{"type":"integer","description":"The size of the system disk of the intermediate instance. Unit: GiB. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`40`\" pulumi-lang-dotnet=\"`40`\" pulumi-lang-go=\"`40`\" pulumi-lang-python=\"`40`\" pulumi-lang-yaml=\"`40`\" pulumi-lang-java=\"`40`\"\u003e`40`\u003c/span\u003e.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true},"toRegionIds":{"type":"array","items":{"type":"string"},"description":"The ID of region to which to distribute the created image.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch. If you do not specify this parameter, a virtual private cloud (VPC) and a vSwitch are created by default.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/ecsInstanceSet:EcsInstanceSet":{"description":"Provides a ECS Instance Set resource.\n\nFor information about ECS Instance Set and how to use it, see [What is Instance Set](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/runinstances).\n\n\u003e **NOTE:** Available since v1.173.0.\n\n\u003e **NOTE:** This resource is used to batch create a group of instance resources with the same configuration. However, this resource is not recommended. \u003cspan pulumi-lang-nodejs=\"`alicloud.ecs.Instance`\" pulumi-lang-dotnet=\"`alicloud.ecs.Instance`\" pulumi-lang-go=\"`ecs.Instance`\" pulumi-lang-python=\"`ecs.Instance`\" pulumi-lang-yaml=\"`alicloud.ecs.Instance`\" pulumi-lang-java=\"`alicloud.ecs.Instance`\"\u003e`alicloud.ecs.Instance`\u003c/span\u003e is preferred.\n\n\u003e **NOTE:** In the instances managed by this resource, names are automatically generated based on \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`uniqueSuffix`\" pulumi-lang-dotnet=\"`UniqueSuffix`\" pulumi-lang-go=\"`uniqueSuffix`\" pulumi-lang-python=\"`unique_suffix`\" pulumi-lang-yaml=\"`uniqueSuffix`\" pulumi-lang-java=\"`uniqueSuffix`\"\u003e`unique_suffix`\u003c/span\u003e.\n\n\u003e **NOTE:** Only \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e support batch modification.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst beijingK = new alicloud.ecs.EcsInstanceSet(\"beijing_k\", {\n    amount: 10,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    instanceName: name,\n    instanceChargeType: \"PostPaid\",\n    systemDiskPerformanceLevel: \"PL0\",\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 200,\n    vswitchId: defaultSwitch.id,\n    securityGroupIds: [defaultSecurityGroup].map(__item =\u003e __item.id),\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\nbeijing_k = alicloud.ecs.EcsInstanceSet(\"beijing_k\",\n    amount=10,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    instance_name=name,\n    instance_charge_type=\"PostPaid\",\n    system_disk_performance_level=\"PL0\",\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=200,\n    vswitch_id=default_switch.id,\n    security_group_ids=[__item.id for __item in [default_security_group]],\n    zone_id=default.zones[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var beijingK = new AliCloud.Ecs.EcsInstanceSet(\"beijing_k\", new()\n    {\n        Amount = 10,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        InstanceName = name,\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskPerformanceLevel = \"PL0\",\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 200,\n        VswitchId = defaultSwitch.Id,\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup,\n        }.Select(__item =\u003e __item.Id).ToList(),\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableDiskCategory: pulumi.StringRef(\"cloud_efficiency\"),\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\nCpuCoreCount: pulumi.IntRef(1),\nMemorySize: pulumi.Float64Ref(2),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\nMostRecent: pulumi.BoolRef(true),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.String(name),\nCidrBlock: pulumi.String(\"172.17.3.0/24\"),\nVpcId: defaultNetwork.ID(),\nZoneId: pulumi.String(_default.Zones[0].Id),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\n_, err = ecs.NewEcsInstanceSet(ctx, \"beijing_k\", \u0026ecs.EcsInstanceSetArgs{\nAmount: pulumi.Int(10),\nImageId: pulumi.String(defaultGetImages.Images[0].Id),\nInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\nInstanceName: pulumi.String(name),\nInstanceChargeType: pulumi.String(\"PostPaid\"),\nSystemDiskPerformanceLevel: pulumi.String(\"PL0\"),\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nSystemDiskSize: pulumi.Int(200),\nVswitchId: defaultSwitch.ID(),\nSecurityGroupIds: splat0,\nZoneId: pulumi.String(_default.Zones[0].Id),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.EcsInstanceSet;\nimport com.pulumi.alicloud.ecs.EcsInstanceSetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var beijingK = new EcsInstanceSet(\"beijingK\", EcsInstanceSetArgs.builder()\n            .amount(10)\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .instanceName(name)\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskPerformanceLevel(\"PL0\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(200)\n            .vswitchId(defaultSwitch.id())\n            .securityGroupIds(defaultSecurityGroup.stream().map(element -\u003e element.id()).collect(toList()))\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"amount":{"type":"integer","description":"The number of instances that you want to create. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"autoReleaseTime":{"type":"string","description":"The automatic release time of the `PostPaid` instance.\n"},"autoRenew":{"type":"boolean","description":"Whether to enable auto-renewal for the instance. **Note:** \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PrePaid`.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto renewal period of an instance, in the unit of month. Valid values:\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Month`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Week`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n**Note:** \u003cspan pulumi-lang-nodejs=\"`autoRenewPeriod`\" pulumi-lang-dotnet=\"`AutoRenewPeriod`\" pulumi-lang-go=\"`autoRenewPeriod`\" pulumi-lang-python=\"`auto_renew_period`\" pulumi-lang-yaml=\"`autoRenewPeriod`\" pulumi-lang-java=\"`autoRenewPeriod`\"\u003e`auto_renew_period`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PrePaid`.\n"},"bootCheckOsWithAssistant":{"type":"boolean","description":"Indicate how to check instance ready to use. Valid values:\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/EcsInstanceSetDataDisk:EcsInstanceSetDataDisk"},"description":"The list of data disks created with instance. See \u003cspan pulumi-lang-nodejs=\"`dataDisks`\" pulumi-lang-dotnet=\"`DataDisks`\" pulumi-lang-go=\"`dataDisks`\" pulumi-lang-python=\"`data_disks`\" pulumi-lang-yaml=\"`dataDisks`\" pulumi-lang-java=\"`dataDisks`\"\u003e`data_disks`\u003c/span\u003e below.\n"},"dedicatedHostId":{"type":"string","description":"The ID of the dedicated host on which to create the instance. If the \u003cspan pulumi-lang-nodejs=\"`dedicatedHostId`\" pulumi-lang-dotnet=\"`DedicatedHostId`\" pulumi-lang-go=\"`dedicatedHostId`\" pulumi-lang-python=\"`dedicated_host_id`\" pulumi-lang-yaml=\"`dedicatedHostId`\" pulumi-lang-java=\"`dedicatedHostId`\"\u003e`dedicated_host_id`\u003c/span\u003e is specified, the \u003cspan pulumi-lang-nodejs=\"`spotStrategy`\" pulumi-lang-dotnet=\"`SpotStrategy`\" pulumi-lang-go=\"`spotStrategy`\" pulumi-lang-python=\"`spot_strategy`\" pulumi-lang-yaml=\"`spotStrategy`\" pulumi-lang-java=\"`spotStrategy`\"\u003e`spot_strategy`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`spotPriceLimit`\" pulumi-lang-dotnet=\"`SpotPriceLimit`\" pulumi-lang-go=\"`spotPriceLimit`\" pulumi-lang-python=\"`spot_price_limit`\" pulumi-lang-yaml=\"`spotPriceLimit`\" pulumi-lang-java=\"`spotPriceLimit`\"\u003e`spot_price_limit`\u003c/span\u003e  are ignored. This is because preemptible instances cannot be created on dedicated hosts.\n"},"deletionProtection":{"type":"boolean","description":"Whether to enable release protection for the instance.\n"},"deploymentSetId":{"type":"string","description":"The ID of the deployment set to which to deploy the instance.\n"},"description":{"type":"string","description":"The description of the instance, This description can have a string of 2 to 256 characters, It cannot begin with `http://` or `https://`.\n"},"excludeInstanceFilter":{"$ref":"#/types/alicloud:ecs/EcsInstanceSetExcludeInstanceFilter:EcsInstanceSetExcludeInstanceFilter","description":"The instances that need to be excluded from the Instance Set.  See \u003cspan pulumi-lang-nodejs=\"`excludeInstanceFilter`\" pulumi-lang-dotnet=\"`ExcludeInstanceFilter`\" pulumi-lang-go=\"`excludeInstanceFilter`\" pulumi-lang-python=\"`exclude_instance_filter`\" pulumi-lang-yaml=\"`excludeInstanceFilter`\" pulumi-lang-java=\"`excludeInstanceFilter`\"\u003e`exclude_instance_filter`\u003c/span\u003e below.\n"},"hostName":{"type":"string","description":"The hostname of instance.\n"},"hpcClusterId":{"type":"string","description":"The ID of the Elastic High Performance Computing (E-HPC) cluster to which to assign the instance.\n"},"imageId":{"type":"string","description":"The Image to use for the instance.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the instance. Valid values: `PrePaid`, `PostPaid`.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"A list of ECS Instance ID.\n"},"instanceName":{"type":"string","description":"The name of the ECS. This\u003cspan pulumi-lang-nodejs=\" instanceName \" pulumi-lang-dotnet=\" InstanceName \" pulumi-lang-go=\" instanceName \" pulumi-lang-python=\" instance_name \" pulumi-lang-yaml=\" instanceName \" pulumi-lang-java=\" instanceName \"\u003e instance_name \u003c/span\u003ecan have a string of 2 to 128 characters, must contain only alphanumeric characters or hyphens, such as \"-\",\".\",\"_\", and must not begin with a hyphen, and must not begin with `http://` or `https://`.\n"},"instanceType":{"type":"string","description":"The type of instance to start.\n"},"internetChargeType":{"type":"string","description":"The Internet charge type of the instance. Valid values: `PayByBandwidth`, `PayByTraffic`.\n"},"internetMaxBandwidthOut":{"type":"integer","description":"The Maximum outgoing bandwidth to the public network, measured in Mbps (Mega bit per second). Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"keyPairName":{"type":"string","description":"The name of key pair that can login ECS instance successfully without password.\n"},"launchTemplateId":{"type":"string","description":"The ID of the launch template.\n"},"launchTemplateName":{"type":"string","description":"The name of the launch template. To use a launch template to create an instance, you must use the \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e parameter to specify the launch template.\n"},"launchTemplateVersion":{"type":"string","description":"The version of the launch template.\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/EcsInstanceSetNetworkInterface:EcsInstanceSetNetworkInterface"},"description":"A list of NetworkInterface. See \u003cspan pulumi-lang-nodejs=\"`networkInterfaces`\" pulumi-lang-dotnet=\"`NetworkInterfaces`\" pulumi-lang-go=\"`networkInterfaces`\" pulumi-lang-python=\"`network_interfaces`\" pulumi-lang-yaml=\"`networkInterfaces`\" pulumi-lang-java=\"`networkInterfaces`\"\u003e`network_interfaces`\u003c/span\u003e below.\n"},"password":{"type":"string","description":"The password to an instance is a string of 8 to 30 characters. It must contain uppercase/lowercase letters and numerals, but cannot contain special symbols.\n","secret":true},"passwordInherit":{"type":"boolean","description":"Whether to use the password preset in the image.\n"},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. Valid values:\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Month`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`48`\" pulumi-lang-dotnet=\"`48`\" pulumi-lang-go=\"`48`\" pulumi-lang-python=\"`48`\" pulumi-lang-yaml=\"`48`\" pulumi-lang-java=\"`48`\"\u003e`48`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Week`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n**Note:** \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PrePaid`.\n"},"periodUnit":{"type":"string","description":"The duration unit that you will buy the resource. Valid values: `Week`, `Month`. **Note:** \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PrePaid`.\n"},"ramRoleName":{"type":"string","description":"The Instance RAM role name.\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the instance belongs.\n"},"securityEnhancementStrategy":{"type":"string","description":"The security enhancement strategy. Valid values:\n- `Active`: Enable security enhancement strategy, it only works on system images.\n- `Deactive`: Disable security enhancement strategy, it works on all images.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"A list of security group ids to associate with.\n"},"spotPriceLimit":{"type":"number","description":"The hourly price threshold of a instance. Three decimals is allowed at most. **Note:** \u003cspan pulumi-lang-nodejs=\"`spotPriceLimit`\" pulumi-lang-dotnet=\"`SpotPriceLimit`\" pulumi-lang-go=\"`spotPriceLimit`\" pulumi-lang-python=\"`spot_price_limit`\" pulumi-lang-yaml=\"`spotPriceLimit`\" pulumi-lang-java=\"`spotPriceLimit`\"\u003e`spot_price_limit`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`spotStrategy`\" pulumi-lang-dotnet=\"`SpotStrategy`\" pulumi-lang-go=\"`spotStrategy`\" pulumi-lang-python=\"`spot_strategy`\" pulumi-lang-yaml=\"`spotStrategy`\" pulumi-lang-java=\"`spotStrategy`\"\u003e`spot_strategy`\u003c/span\u003e is set to `SpotWithPriceLimit`.\n"},"spotStrategy":{"type":"string","description":"The spot strategy of a Pay-As-You-Go instance. Valid values:\n- `NoSpot`: A regular Pay-As-You-Go instance.\n- `SpotWithPriceLimit`: A price threshold for a spot instance.\n- `SpotAsPriceGo`: A price that is based on the highest Pay-As-You-Go instance.\n**Note:** \u003cspan pulumi-lang-nodejs=\"`spotStrategy`\" pulumi-lang-dotnet=\"`SpotStrategy`\" pulumi-lang-go=\"`spotStrategy`\" pulumi-lang-python=\"`spot_strategy`\" pulumi-lang-yaml=\"`spotStrategy`\" pulumi-lang-java=\"`spotStrategy`\"\u003e`spot_strategy`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PostPaid`.\n"},"systemDiskAutoSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy applied to the system disk.\n"},"systemDiskCategory":{"type":"string","description":"The category of the system disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e.\n"},"systemDiskDescription":{"type":"string","description":"The description of the system disk. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.\n"},"systemDiskName":{"type":"string","description":"The name of the system disk.\n"},"systemDiskPerformanceLevel":{"type":"string","description":"The performance level of the ESSD used as the system disk. Valid values: `PL0`, `PL1`, `PL2`, `PL3`.\n"},"systemDiskSize":{"type":"integer","description":"The size of the system disk, measured in GiB. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"uniqueSuffix":{"type":"boolean","description":"Whether to automatically append incremental suffixes to the hostname specified by the HostName parameter and to the instance name specified by the InstanceName parameter when you batch create instances. The incremental suffixes can range from \u003cspan pulumi-lang-nodejs=\"`001`\" pulumi-lang-dotnet=\"`001`\" pulumi-lang-go=\"`001`\" pulumi-lang-python=\"`001`\" pulumi-lang-yaml=\"`001`\" pulumi-lang-java=\"`001`\"\u003e`001`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`999`\" pulumi-lang-dotnet=\"`999`\" pulumi-lang-go=\"`999`\" pulumi-lang-python=\"`999`\" pulumi-lang-yaml=\"`999`\" pulumi-lang-java=\"`999`\"\u003e`999`\u003c/span\u003e.\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch in VPC.\n"},"zoneId":{"type":"string","description":"The ID of the zone in which to create the instance.\n"}},"required":["deletionProtection","hostName","imageId","instanceIds","instanceType","internetChargeType","internetMaxBandwidthOut","securityGroupIds","spotPriceLimit","spotStrategy","systemDiskCategory","systemDiskPerformanceLevel","systemDiskSize","zoneId"],"inputProperties":{"amount":{"type":"integer","description":"The number of instances that you want to create. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n","willReplaceOnChanges":true},"autoReleaseTime":{"type":"string","description":"The automatic release time of the `PostPaid` instance.\n","willReplaceOnChanges":true},"autoRenew":{"type":"boolean","description":"Whether to enable auto-renewal for the instance. **Note:** \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PrePaid`.\n","willReplaceOnChanges":true},"autoRenewPeriod":{"type":"integer","description":"Auto renewal period of an instance, in the unit of month. Valid values:\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Month`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Week`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n**Note:** \u003cspan pulumi-lang-nodejs=\"`autoRenewPeriod`\" pulumi-lang-dotnet=\"`AutoRenewPeriod`\" pulumi-lang-go=\"`autoRenewPeriod`\" pulumi-lang-python=\"`auto_renew_period`\" pulumi-lang-yaml=\"`autoRenewPeriod`\" pulumi-lang-java=\"`autoRenewPeriod`\"\u003e`auto_renew_period`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PrePaid`.\n","willReplaceOnChanges":true},"bootCheckOsWithAssistant":{"type":"boolean","description":"Indicate how to check instance ready to use. Valid values:\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/EcsInstanceSetDataDisk:EcsInstanceSetDataDisk"},"description":"The list of data disks created with instance. See \u003cspan pulumi-lang-nodejs=\"`dataDisks`\" pulumi-lang-dotnet=\"`DataDisks`\" pulumi-lang-go=\"`dataDisks`\" pulumi-lang-python=\"`data_disks`\" pulumi-lang-yaml=\"`dataDisks`\" pulumi-lang-java=\"`dataDisks`\"\u003e`data_disks`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"dedicatedHostId":{"type":"string","description":"The ID of the dedicated host on which to create the instance. If the \u003cspan pulumi-lang-nodejs=\"`dedicatedHostId`\" pulumi-lang-dotnet=\"`DedicatedHostId`\" pulumi-lang-go=\"`dedicatedHostId`\" pulumi-lang-python=\"`dedicated_host_id`\" pulumi-lang-yaml=\"`dedicatedHostId`\" pulumi-lang-java=\"`dedicatedHostId`\"\u003e`dedicated_host_id`\u003c/span\u003e is specified, the \u003cspan pulumi-lang-nodejs=\"`spotStrategy`\" pulumi-lang-dotnet=\"`SpotStrategy`\" pulumi-lang-go=\"`spotStrategy`\" pulumi-lang-python=\"`spot_strategy`\" pulumi-lang-yaml=\"`spotStrategy`\" pulumi-lang-java=\"`spotStrategy`\"\u003e`spot_strategy`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`spotPriceLimit`\" pulumi-lang-dotnet=\"`SpotPriceLimit`\" pulumi-lang-go=\"`spotPriceLimit`\" pulumi-lang-python=\"`spot_price_limit`\" pulumi-lang-yaml=\"`spotPriceLimit`\" pulumi-lang-java=\"`spotPriceLimit`\"\u003e`spot_price_limit`\u003c/span\u003e  are ignored. This is because preemptible instances cannot be created on dedicated hosts.\n","willReplaceOnChanges":true},"deletionProtection":{"type":"boolean","description":"Whether to enable release protection for the instance.\n","willReplaceOnChanges":true},"deploymentSetId":{"type":"string","description":"The ID of the deployment set to which to deploy the instance.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the instance, This description can have a string of 2 to 256 characters, It cannot begin with `http://` or `https://`.\n","willReplaceOnChanges":true},"excludeInstanceFilter":{"$ref":"#/types/alicloud:ecs/EcsInstanceSetExcludeInstanceFilter:EcsInstanceSetExcludeInstanceFilter","description":"The instances that need to be excluded from the Instance Set.  See \u003cspan pulumi-lang-nodejs=\"`excludeInstanceFilter`\" pulumi-lang-dotnet=\"`ExcludeInstanceFilter`\" pulumi-lang-go=\"`excludeInstanceFilter`\" pulumi-lang-python=\"`exclude_instance_filter`\" pulumi-lang-yaml=\"`excludeInstanceFilter`\" pulumi-lang-java=\"`excludeInstanceFilter`\"\u003e`exclude_instance_filter`\u003c/span\u003e below.\n"},"hostName":{"type":"string","description":"The hostname of instance.\n","willReplaceOnChanges":true},"hpcClusterId":{"type":"string","description":"The ID of the Elastic High Performance Computing (E-HPC) cluster to which to assign the instance.\n","willReplaceOnChanges":true},"imageId":{"type":"string","description":"The Image to use for the instance.\n","willReplaceOnChanges":true},"instanceChargeType":{"type":"string","description":"The billing method of the instance. Valid values: `PrePaid`, `PostPaid`.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the ECS. This\u003cspan pulumi-lang-nodejs=\" instanceName \" pulumi-lang-dotnet=\" InstanceName \" pulumi-lang-go=\" instanceName \" pulumi-lang-python=\" instance_name \" pulumi-lang-yaml=\" instanceName \" pulumi-lang-java=\" instanceName \"\u003e instance_name \u003c/span\u003ecan have a string of 2 to 128 characters, must contain only alphanumeric characters or hyphens, such as \"-\",\".\",\"_\", and must not begin with a hyphen, and must not begin with `http://` or `https://`.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of instance to start.\n","willReplaceOnChanges":true},"internetChargeType":{"type":"string","description":"The Internet charge type of the instance. Valid values: `PayByBandwidth`, `PayByTraffic`.\n","willReplaceOnChanges":true},"internetMaxBandwidthOut":{"type":"integer","description":"The Maximum outgoing bandwidth to the public network, measured in Mbps (Mega bit per second). Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n","willReplaceOnChanges":true},"keyPairName":{"type":"string","description":"The name of key pair that can login ECS instance successfully without password.\n","willReplaceOnChanges":true},"launchTemplateId":{"type":"string","description":"The ID of the launch template.\n","willReplaceOnChanges":true},"launchTemplateName":{"type":"string","description":"The name of the launch template. To use a launch template to create an instance, you must use the \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e parameter to specify the launch template.\n","willReplaceOnChanges":true},"launchTemplateVersion":{"type":"string","description":"The version of the launch template.\n","willReplaceOnChanges":true},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/EcsInstanceSetNetworkInterface:EcsInstanceSetNetworkInterface"},"description":"A list of NetworkInterface. See \u003cspan pulumi-lang-nodejs=\"`networkInterfaces`\" pulumi-lang-dotnet=\"`NetworkInterfaces`\" pulumi-lang-go=\"`networkInterfaces`\" pulumi-lang-python=\"`network_interfaces`\" pulumi-lang-yaml=\"`networkInterfaces`\" pulumi-lang-java=\"`networkInterfaces`\"\u003e`network_interfaces`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password to an instance is a string of 8 to 30 characters. It must contain uppercase/lowercase letters and numerals, but cannot contain special symbols.\n","secret":true,"willReplaceOnChanges":true},"passwordInherit":{"type":"boolean","description":"Whether to use the password preset in the image.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. Valid values:\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Month`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`48`\" pulumi-lang-dotnet=\"`48`\" pulumi-lang-go=\"`48`\" pulumi-lang-python=\"`48`\" pulumi-lang-yaml=\"`48`\" pulumi-lang-java=\"`48`\"\u003e`48`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Week`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n**Note:** \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PrePaid`.\n","willReplaceOnChanges":true},"periodUnit":{"type":"string","description":"The duration unit that you will buy the resource. Valid values: `Week`, `Month`. **Note:** \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PrePaid`.\n","willReplaceOnChanges":true},"ramRoleName":{"type":"string","description":"The Instance RAM role name.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of resource group which the instance belongs.\n","willReplaceOnChanges":true},"securityEnhancementStrategy":{"type":"string","description":"The security enhancement strategy. Valid values:\n- `Active`: Enable security enhancement strategy, it only works on system images.\n- `Deactive`: Disable security enhancement strategy, it works on all images.\n","willReplaceOnChanges":true},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"A list of security group ids to associate with.\n","willReplaceOnChanges":true},"spotPriceLimit":{"type":"number","description":"The hourly price threshold of a instance. Three decimals is allowed at most. **Note:** \u003cspan pulumi-lang-nodejs=\"`spotPriceLimit`\" pulumi-lang-dotnet=\"`SpotPriceLimit`\" pulumi-lang-go=\"`spotPriceLimit`\" pulumi-lang-python=\"`spot_price_limit`\" pulumi-lang-yaml=\"`spotPriceLimit`\" pulumi-lang-java=\"`spotPriceLimit`\"\u003e`spot_price_limit`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`spotStrategy`\" pulumi-lang-dotnet=\"`SpotStrategy`\" pulumi-lang-go=\"`spotStrategy`\" pulumi-lang-python=\"`spot_strategy`\" pulumi-lang-yaml=\"`spotStrategy`\" pulumi-lang-java=\"`spotStrategy`\"\u003e`spot_strategy`\u003c/span\u003e is set to `SpotWithPriceLimit`.\n","willReplaceOnChanges":true},"spotStrategy":{"type":"string","description":"The spot strategy of a Pay-As-You-Go instance. Valid values:\n- `NoSpot`: A regular Pay-As-You-Go instance.\n- `SpotWithPriceLimit`: A price threshold for a spot instance.\n- `SpotAsPriceGo`: A price that is based on the highest Pay-As-You-Go instance.\n**Note:** \u003cspan pulumi-lang-nodejs=\"`spotStrategy`\" pulumi-lang-dotnet=\"`SpotStrategy`\" pulumi-lang-go=\"`spotStrategy`\" pulumi-lang-python=\"`spot_strategy`\" pulumi-lang-yaml=\"`spotStrategy`\" pulumi-lang-java=\"`spotStrategy`\"\u003e`spot_strategy`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PostPaid`.\n","willReplaceOnChanges":true},"systemDiskAutoSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy applied to the system disk.\n","willReplaceOnChanges":true},"systemDiskCategory":{"type":"string","description":"The category of the system disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e.\n","willReplaceOnChanges":true},"systemDiskDescription":{"type":"string","description":"The description of the system disk. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.\n","willReplaceOnChanges":true},"systemDiskName":{"type":"string","description":"The name of the system disk.\n","willReplaceOnChanges":true},"systemDiskPerformanceLevel":{"type":"string","description":"The performance level of the ESSD used as the system disk. Valid values: `PL0`, `PL1`, `PL2`, `PL3`.\n","willReplaceOnChanges":true},"systemDiskSize":{"type":"integer","description":"The size of the system disk, measured in GiB. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"uniqueSuffix":{"type":"boolean","description":"Whether to automatically append incremental suffixes to the hostname specified by the HostName parameter and to the instance name specified by the InstanceName parameter when you batch create instances. The incremental suffixes can range from \u003cspan pulumi-lang-nodejs=\"`001`\" pulumi-lang-dotnet=\"`001`\" pulumi-lang-go=\"`001`\" pulumi-lang-python=\"`001`\" pulumi-lang-yaml=\"`001`\" pulumi-lang-java=\"`001`\"\u003e`001`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`999`\" pulumi-lang-dotnet=\"`999`\" pulumi-lang-go=\"`999`\" pulumi-lang-python=\"`999`\" pulumi-lang-yaml=\"`999`\" pulumi-lang-java=\"`999`\"\u003e`999`\u003c/span\u003e.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The virtual switch ID to launch in VPC.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The ID of the zone in which to create the instance.\n","willReplaceOnChanges":true}},"requiredInputs":["imageId","instanceType","securityGroupIds"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsInstanceSet resources.\n","properties":{"amount":{"type":"integer","description":"The number of instances that you want to create. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n","willReplaceOnChanges":true},"autoReleaseTime":{"type":"string","description":"The automatic release time of the `PostPaid` instance.\n","willReplaceOnChanges":true},"autoRenew":{"type":"boolean","description":"Whether to enable auto-renewal for the instance. **Note:** \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PrePaid`.\n","willReplaceOnChanges":true},"autoRenewPeriod":{"type":"integer","description":"Auto renewal period of an instance, in the unit of month. Valid values:\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Month`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Week`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n**Note:** \u003cspan pulumi-lang-nodejs=\"`autoRenewPeriod`\" pulumi-lang-dotnet=\"`AutoRenewPeriod`\" pulumi-lang-go=\"`autoRenewPeriod`\" pulumi-lang-python=\"`auto_renew_period`\" pulumi-lang-yaml=\"`autoRenewPeriod`\" pulumi-lang-java=\"`autoRenewPeriod`\"\u003e`auto_renew_period`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PrePaid`.\n","willReplaceOnChanges":true},"bootCheckOsWithAssistant":{"type":"boolean","description":"Indicate how to check instance ready to use. Valid values:\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/EcsInstanceSetDataDisk:EcsInstanceSetDataDisk"},"description":"The list of data disks created with instance. See \u003cspan pulumi-lang-nodejs=\"`dataDisks`\" pulumi-lang-dotnet=\"`DataDisks`\" pulumi-lang-go=\"`dataDisks`\" pulumi-lang-python=\"`data_disks`\" pulumi-lang-yaml=\"`dataDisks`\" pulumi-lang-java=\"`dataDisks`\"\u003e`data_disks`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"dedicatedHostId":{"type":"string","description":"The ID of the dedicated host on which to create the instance. If the \u003cspan pulumi-lang-nodejs=\"`dedicatedHostId`\" pulumi-lang-dotnet=\"`DedicatedHostId`\" pulumi-lang-go=\"`dedicatedHostId`\" pulumi-lang-python=\"`dedicated_host_id`\" pulumi-lang-yaml=\"`dedicatedHostId`\" pulumi-lang-java=\"`dedicatedHostId`\"\u003e`dedicated_host_id`\u003c/span\u003e is specified, the \u003cspan pulumi-lang-nodejs=\"`spotStrategy`\" pulumi-lang-dotnet=\"`SpotStrategy`\" pulumi-lang-go=\"`spotStrategy`\" pulumi-lang-python=\"`spot_strategy`\" pulumi-lang-yaml=\"`spotStrategy`\" pulumi-lang-java=\"`spotStrategy`\"\u003e`spot_strategy`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`spotPriceLimit`\" pulumi-lang-dotnet=\"`SpotPriceLimit`\" pulumi-lang-go=\"`spotPriceLimit`\" pulumi-lang-python=\"`spot_price_limit`\" pulumi-lang-yaml=\"`spotPriceLimit`\" pulumi-lang-java=\"`spotPriceLimit`\"\u003e`spot_price_limit`\u003c/span\u003e  are ignored. This is because preemptible instances cannot be created on dedicated hosts.\n","willReplaceOnChanges":true},"deletionProtection":{"type":"boolean","description":"Whether to enable release protection for the instance.\n","willReplaceOnChanges":true},"deploymentSetId":{"type":"string","description":"The ID of the deployment set to which to deploy the instance.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the instance, This description can have a string of 2 to 256 characters, It cannot begin with `http://` or `https://`.\n","willReplaceOnChanges":true},"excludeInstanceFilter":{"$ref":"#/types/alicloud:ecs/EcsInstanceSetExcludeInstanceFilter:EcsInstanceSetExcludeInstanceFilter","description":"The instances that need to be excluded from the Instance Set.  See \u003cspan pulumi-lang-nodejs=\"`excludeInstanceFilter`\" pulumi-lang-dotnet=\"`ExcludeInstanceFilter`\" pulumi-lang-go=\"`excludeInstanceFilter`\" pulumi-lang-python=\"`exclude_instance_filter`\" pulumi-lang-yaml=\"`excludeInstanceFilter`\" pulumi-lang-java=\"`excludeInstanceFilter`\"\u003e`exclude_instance_filter`\u003c/span\u003e below.\n"},"hostName":{"type":"string","description":"The hostname of instance.\n","willReplaceOnChanges":true},"hpcClusterId":{"type":"string","description":"The ID of the Elastic High Performance Computing (E-HPC) cluster to which to assign the instance.\n","willReplaceOnChanges":true},"imageId":{"type":"string","description":"The Image to use for the instance.\n","willReplaceOnChanges":true},"instanceChargeType":{"type":"string","description":"The billing method of the instance. Valid values: `PrePaid`, `PostPaid`.\n","willReplaceOnChanges":true},"instanceIds":{"type":"array","items":{"type":"string"},"description":"A list of ECS Instance ID.\n"},"instanceName":{"type":"string","description":"The name of the ECS. This\u003cspan pulumi-lang-nodejs=\" instanceName \" pulumi-lang-dotnet=\" InstanceName \" pulumi-lang-go=\" instanceName \" pulumi-lang-python=\" instance_name \" pulumi-lang-yaml=\" instanceName \" pulumi-lang-java=\" instanceName \"\u003e instance_name \u003c/span\u003ecan have a string of 2 to 128 characters, must contain only alphanumeric characters or hyphens, such as \"-\",\".\",\"_\", and must not begin with a hyphen, and must not begin with `http://` or `https://`.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of instance to start.\n","willReplaceOnChanges":true},"internetChargeType":{"type":"string","description":"The Internet charge type of the instance. Valid values: `PayByBandwidth`, `PayByTraffic`.\n","willReplaceOnChanges":true},"internetMaxBandwidthOut":{"type":"integer","description":"The Maximum outgoing bandwidth to the public network, measured in Mbps (Mega bit per second). Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n","willReplaceOnChanges":true},"keyPairName":{"type":"string","description":"The name of key pair that can login ECS instance successfully without password.\n","willReplaceOnChanges":true},"launchTemplateId":{"type":"string","description":"The ID of the launch template.\n","willReplaceOnChanges":true},"launchTemplateName":{"type":"string","description":"The name of the launch template. To use a launch template to create an instance, you must use the \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e parameter to specify the launch template.\n","willReplaceOnChanges":true},"launchTemplateVersion":{"type":"string","description":"The version of the launch template.\n","willReplaceOnChanges":true},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/EcsInstanceSetNetworkInterface:EcsInstanceSetNetworkInterface"},"description":"A list of NetworkInterface. See \u003cspan pulumi-lang-nodejs=\"`networkInterfaces`\" pulumi-lang-dotnet=\"`NetworkInterfaces`\" pulumi-lang-go=\"`networkInterfaces`\" pulumi-lang-python=\"`network_interfaces`\" pulumi-lang-yaml=\"`networkInterfaces`\" pulumi-lang-java=\"`networkInterfaces`\"\u003e`network_interfaces`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password to an instance is a string of 8 to 30 characters. It must contain uppercase/lowercase letters and numerals, but cannot contain special symbols.\n","secret":true,"willReplaceOnChanges":true},"passwordInherit":{"type":"boolean","description":"Whether to use the password preset in the image.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. Valid values:\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Month`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`48`\" pulumi-lang-dotnet=\"`48`\" pulumi-lang-go=\"`48`\" pulumi-lang-python=\"`48`\" pulumi-lang-yaml=\"`48`\" pulumi-lang-java=\"`48`\"\u003e`48`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Week`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n**Note:** \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PrePaid`.\n","willReplaceOnChanges":true},"periodUnit":{"type":"string","description":"The duration unit that you will buy the resource. Valid values: `Week`, `Month`. **Note:** \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PrePaid`.\n","willReplaceOnChanges":true},"ramRoleName":{"type":"string","description":"The Instance RAM role name.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of resource group which the instance belongs.\n","willReplaceOnChanges":true},"securityEnhancementStrategy":{"type":"string","description":"The security enhancement strategy. Valid values:\n- `Active`: Enable security enhancement strategy, it only works on system images.\n- `Deactive`: Disable security enhancement strategy, it works on all images.\n","willReplaceOnChanges":true},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"A list of security group ids to associate with.\n","willReplaceOnChanges":true},"spotPriceLimit":{"type":"number","description":"The hourly price threshold of a instance. Three decimals is allowed at most. **Note:** \u003cspan pulumi-lang-nodejs=\"`spotPriceLimit`\" pulumi-lang-dotnet=\"`SpotPriceLimit`\" pulumi-lang-go=\"`spotPriceLimit`\" pulumi-lang-python=\"`spot_price_limit`\" pulumi-lang-yaml=\"`spotPriceLimit`\" pulumi-lang-java=\"`spotPriceLimit`\"\u003e`spot_price_limit`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`spotStrategy`\" pulumi-lang-dotnet=\"`SpotStrategy`\" pulumi-lang-go=\"`spotStrategy`\" pulumi-lang-python=\"`spot_strategy`\" pulumi-lang-yaml=\"`spotStrategy`\" pulumi-lang-java=\"`spotStrategy`\"\u003e`spot_strategy`\u003c/span\u003e is set to `SpotWithPriceLimit`.\n","willReplaceOnChanges":true},"spotStrategy":{"type":"string","description":"The spot strategy of a Pay-As-You-Go instance. Valid values:\n- `NoSpot`: A regular Pay-As-You-Go instance.\n- `SpotWithPriceLimit`: A price threshold for a spot instance.\n- `SpotAsPriceGo`: A price that is based on the highest Pay-As-You-Go instance.\n**Note:** \u003cspan pulumi-lang-nodejs=\"`spotStrategy`\" pulumi-lang-dotnet=\"`SpotStrategy`\" pulumi-lang-go=\"`spotStrategy`\" pulumi-lang-python=\"`spot_strategy`\" pulumi-lang-yaml=\"`spotStrategy`\" pulumi-lang-java=\"`spotStrategy`\"\u003e`spot_strategy`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `PostPaid`.\n","willReplaceOnChanges":true},"systemDiskAutoSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy applied to the system disk.\n","willReplaceOnChanges":true},"systemDiskCategory":{"type":"string","description":"The category of the system disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e.\n","willReplaceOnChanges":true},"systemDiskDescription":{"type":"string","description":"The description of the system disk. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.\n","willReplaceOnChanges":true},"systemDiskName":{"type":"string","description":"The name of the system disk.\n","willReplaceOnChanges":true},"systemDiskPerformanceLevel":{"type":"string","description":"The performance level of the ESSD used as the system disk. Valid values: `PL0`, `PL1`, `PL2`, `PL3`.\n","willReplaceOnChanges":true},"systemDiskSize":{"type":"integer","description":"The size of the system disk, measured in GiB. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"uniqueSuffix":{"type":"boolean","description":"Whether to automatically append incremental suffixes to the hostname specified by the HostName parameter and to the instance name specified by the InstanceName parameter when you batch create instances. The incremental suffixes can range from \u003cspan pulumi-lang-nodejs=\"`001`\" pulumi-lang-dotnet=\"`001`\" pulumi-lang-go=\"`001`\" pulumi-lang-python=\"`001`\" pulumi-lang-yaml=\"`001`\" pulumi-lang-java=\"`001`\"\u003e`001`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`999`\" pulumi-lang-dotnet=\"`999`\" pulumi-lang-go=\"`999`\" pulumi-lang-python=\"`999`\" pulumi-lang-yaml=\"`999`\" pulumi-lang-java=\"`999`\"\u003e`999`\u003c/span\u003e.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The virtual switch ID to launch in VPC.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The ID of the zone in which to create the instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/ecsInvocation:EcsInvocation":{"description":"Provides a ECS Invocation resource.\n\nFor information about ECS Invocation and how to use it, see [What is Invocation](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/invokecommand#t9958.html).\n\n\u003e **NOTE:** Available since v1.168.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 2,\n    memorySize: 8,\n    instanceTypeFamily: \"ecs.g6\",\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    securityGroupName: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultSecurityGroupRule = new alicloud.ecs.SecurityGroupRule(\"default\", {\n    type: \"ingress\",\n    ipProtocol: \"tcp\",\n    nicType: \"intranet\",\n    policy: \"accept\",\n    portRange: \"22/22\",\n    priority: 1,\n    securityGroupId: defaultSecurityGroup.id,\n    cidrIp: \"172.16.0.0/24\",\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    vswitchId: defaultSwitch.id,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    systemDiskCategory: \"cloud_efficiency\",\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 5,\n    securityGroups: [defaultSecurityGroup.id],\n    instanceName: name,\n});\nconst defaultCommand = new alicloud.ecs.Command(\"default\", {\n    name: name,\n    commandContent: \"ZWNobyBoZWxsbyx7e25hbWV9fQ==\",\n    description: \"For Terraform Test\",\n    type: \"RunShellScript\",\n    workingDir: \"/root\",\n    enableParameter: true,\n});\nconst defaultEcsInvocation = new alicloud.ecs.EcsInvocation(\"default\", {\n    commandId: defaultCommand.id,\n    instanceIds: [defaultInstance.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=2,\n    memory_size=8,\n    instance_type_family=\"ecs.g6\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    security_group_name=name,\n    vpc_id=default_network.id)\ndefault_security_group_rule = alicloud.ecs.SecurityGroupRule(\"default\",\n    type=\"ingress\",\n    ip_protocol=\"tcp\",\n    nic_type=\"intranet\",\n    policy=\"accept\",\n    port_range=\"22/22\",\n    priority=1,\n    security_group_id=default_security_group.id,\n    cidr_ip=\"172.16.0.0/24\")\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    vswitch_id=default_switch.id,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    system_disk_category=\"cloud_efficiency\",\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=5,\n    security_groups=[default_security_group.id],\n    instance_name=name)\ndefault_command = alicloud.ecs.Command(\"default\",\n    name=name,\n    command_content=\"ZWNobyBoZWxsbyx7e25hbWV9fQ==\",\n    description=\"For Terraform Test\",\n    type=\"RunShellScript\",\n    working_dir=\"/root\",\n    enable_parameter=True)\ndefault_ecs_invocation = alicloud.ecs.EcsInvocation(\"default\",\n    command_id=default_command.id,\n    instance_ids=[default_instance.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 2,\n        MemorySize = 8,\n        InstanceTypeFamily = \"ecs.g6\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultSecurityGroupRule = new AliCloud.Ecs.SecurityGroupRule(\"default\", new()\n    {\n        Type = \"ingress\",\n        IpProtocol = \"tcp\",\n        NicType = \"intranet\",\n        Policy = \"accept\",\n        PortRange = \"22/22\",\n        Priority = 1,\n        SecurityGroupId = defaultSecurityGroup.Id,\n        CidrIp = \"172.16.0.0/24\",\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        VswitchId = defaultSwitch.Id,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SystemDiskCategory = \"cloud_efficiency\",\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 5,\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        InstanceName = name,\n    });\n\n    var defaultCommand = new AliCloud.Ecs.Command(\"default\", new()\n    {\n        Name = name,\n        CommandContent = \"ZWNobyBoZWxsbyx7e25hbWV9fQ==\",\n        Description = \"For Terraform Test\",\n        Type = \"RunShellScript\",\n        WorkingDir = \"/root\",\n        EnableParameter = true,\n    });\n\n    var defaultEcsInvocation = new AliCloud.Ecs.EcsInvocation(\"default\", new()\n    {\n        CommandId = defaultCommand.Id,\n        InstanceIds = new[]\n        {\n            defaultInstance.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone:   pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:       pulumi.IntRef(2),\n\t\t\tMemorySize:         pulumi.Float64Ref(8),\n\t\t\tInstanceTypeFamily: pulumi.StringRef(\"ecs.g6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(name),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroupRule(ctx, \"default\", \u0026ecs.SecurityGroupRuleArgs{\n\t\t\tType:            pulumi.String(\"ingress\"),\n\t\t\tIpProtocol:      pulumi.String(\"tcp\"),\n\t\t\tNicType:         pulumi.String(\"intranet\"),\n\t\t\tPolicy:          pulumi.String(\"accept\"),\n\t\t\tPortRange:       pulumi.String(\"22/22\"),\n\t\t\tPriority:        pulumi.Int(1),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tCidrIp:          pulumi.String(\"172.16.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tVswitchId:               defaultSwitch.ID(),\n\t\t\tImageId:                 pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:            pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSystemDiskCategory:      pulumi.String(\"cloud_efficiency\"),\n\t\t\tInternetChargeType:      pulumi.String(\"PayByTraffic\"),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(5),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tInstanceName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCommand, err := ecs.NewCommand(ctx, \"default\", \u0026ecs.CommandArgs{\n\t\t\tName:            pulumi.String(name),\n\t\t\tCommandContent:  pulumi.String(\"ZWNobyBoZWxsbyx7e25hbWV9fQ==\"),\n\t\t\tDescription:     pulumi.String(\"For Terraform Test\"),\n\t\t\tType:            pulumi.String(\"RunShellScript\"),\n\t\t\tWorkingDir:      pulumi.String(\"/root\"),\n\t\t\tEnableParameter: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEcsInvocation(ctx, \"default\", \u0026ecs.EcsInvocationArgs{\n\t\t\tCommandId: defaultCommand.ID(),\n\t\t\tInstanceIds: pulumi.StringArray{\n\t\t\t\tdefaultInstance.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroupRule;\nimport com.pulumi.alicloud.ecs.SecurityGroupRuleArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.ecs.Command;\nimport com.pulumi.alicloud.ecs.CommandArgs;\nimport com.pulumi.alicloud.ecs.EcsInvocation;\nimport com.pulumi.alicloud.ecs.EcsInvocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(2)\n            .memorySize(8)\n            .instanceTypeFamily(\"ecs.g6\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultSecurityGroupRule = new SecurityGroupRule(\"defaultSecurityGroupRule\", SecurityGroupRuleArgs.builder()\n            .type(\"ingress\")\n            .ipProtocol(\"tcp\")\n            .nicType(\"intranet\")\n            .policy(\"accept\")\n            .portRange(\"22/22\")\n            .priority(1)\n            .securityGroupId(defaultSecurityGroup.id())\n            .cidrIp(\"172.16.0.0/24\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .vswitchId(defaultSwitch.id())\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(5)\n            .securityGroups(defaultSecurityGroup.id())\n            .instanceName(name)\n            .build());\n\n        var defaultCommand = new Command(\"defaultCommand\", CommandArgs.builder()\n            .name(name)\n            .commandContent(\"ZWNobyBoZWxsbyx7e25hbWV9fQ==\")\n            .description(\"For Terraform Test\")\n            .type(\"RunShellScript\")\n            .workingDir(\"/root\")\n            .enableParameter(true)\n            .build());\n\n        var defaultEcsInvocation = new EcsInvocation(\"defaultEcsInvocation\", EcsInvocationArgs.builder()\n            .commandId(defaultCommand.id())\n            .instanceIds(defaultInstance.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      securityGroupName: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultSecurityGroupRule:\n    type: alicloud:ecs:SecurityGroupRule\n    name: default\n    properties:\n      type: ingress\n      ipProtocol: tcp\n      nicType: intranet\n      policy: accept\n      portRange: 22/22\n      priority: 1\n      securityGroupId: ${defaultSecurityGroup.id}\n      cidrIp: 172.16.0.0/24\n  defaultInstance:\n    type: alicloud:ecs:Instance\n    name: default\n    properties:\n      vswitchId: ${defaultSwitch.id}\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      internetChargeType: PayByTraffic\n      internetMaxBandwidthOut: 5\n      securityGroups:\n        - ${defaultSecurityGroup.id}\n      instanceName: ${name}\n  defaultCommand:\n    type: alicloud:ecs:Command\n    name: default\n    properties:\n      name: ${name}\n      commandContent: ZWNobyBoZWxsbyx7e25hbWV9fQ==\n      description: For Terraform Test\n      type: RunShellScript\n      workingDir: /root\n      enableParameter: true\n  defaultEcsInvocation:\n    type: alicloud:ecs:EcsInvocation\n    name: default\n    properties:\n      commandId: ${defaultCommand.id}\n      instanceIds:\n        - ${defaultInstance.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 2\n        memorySize: 8\n        instanceTypeFamily: ecs.g6\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Invocation can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsInvocation:EcsInvocation example \u003cid\u003e\n```\n\n","properties":{"commandId":{"type":"string","description":"The ID of the command.\n"},"frequency":{"type":"string","description":"The schedule on which the recurring execution of the command takes place. Take note of the following items:\n* The interval between two consecutive executions must be 10 seconds or longer. The minimum interval cannot be less than the timeout period of the execution.\n* When you set Timed to true, you must specify Frequency.\n* The value of the Frequency parameter is a cron expression. For more information, see [Cron expression](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/cron-expression).\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"The list of instances to execute the command. You can specify up to 50 instance IDs.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"The key-value pairs of custom parameters to be passed in when the custom parameter feature is enabled.  Number of custom parameters: 0 to 10.\n"},"repeatMode":{"type":"string","description":"Specifies how to run the command. Valid values: `Once`, `Period`, `NextRebootOnly`, `EveryReboot`. Default value: When \u003cspan pulumi-lang-nodejs=\"`timed`\" pulumi-lang-dotnet=\"`Timed`\" pulumi-lang-go=\"`timed`\" pulumi-lang-python=\"`timed`\" pulumi-lang-yaml=\"`timed`\" pulumi-lang-java=\"`timed`\"\u003e`timed`\u003c/span\u003e is set to false and Frequency is not specified, the default value of \u003cspan pulumi-lang-nodejs=\"`repeatMode`\" pulumi-lang-dotnet=\"`RepeatMode`\" pulumi-lang-go=\"`repeatMode`\" pulumi-lang-python=\"`repeat_mode`\" pulumi-lang-yaml=\"`repeatMode`\" pulumi-lang-java=\"`repeatMode`\"\u003e`repeat_mode`\u003c/span\u003e is `Once`. When `Timed` is set to true and Frequency is specified, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is used as the value of RepeatMode regardless of whether \u003cspan pulumi-lang-nodejs=\"`repeatMode`\" pulumi-lang-dotnet=\"`RepeatMode`\" pulumi-lang-go=\"`repeatMode`\" pulumi-lang-python=\"`repeat_mode`\" pulumi-lang-yaml=\"`repeatMode`\" pulumi-lang-java=\"`repeatMode`\"\u003e`repeat_mode`\u003c/span\u003e is specified.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"timed":{"type":"boolean","description":"Specifies whether to periodically run the command. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"username":{"type":"string","description":"The username that is used to run the command on the ECS instance. \n* For Linux instances, the root username is used.\n* For Windows instances, the System username is used.\n* You can also specify other usernames that already exist in the ECS instance to run the command. It is more secure to run Cloud Assistant commands as a regular user. For more information, see [Configure a regular user to run Cloud Assistant commands](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/run-cloud-assistant-commands-as-a-regular-user).\n"},"windowsPasswordName":{"type":"string","description":"The name of the password used to run the command on a Windows instance.\n"}},"required":["commandId","instanceIds","repeatMode","status","timed","username"],"inputProperties":{"commandId":{"type":"string","description":"The ID of the command.\n","willReplaceOnChanges":true},"frequency":{"type":"string","description":"The schedule on which the recurring execution of the command takes place. Take note of the following items:\n* The interval between two consecutive executions must be 10 seconds or longer. The minimum interval cannot be less than the timeout period of the execution.\n* When you set Timed to true, you must specify Frequency.\n* The value of the Frequency parameter is a cron expression. For more information, see [Cron expression](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/cron-expression).\n","willReplaceOnChanges":true},"instanceIds":{"type":"array","items":{"type":"string"},"description":"The list of instances to execute the command. You can specify up to 50 instance IDs.\n","willReplaceOnChanges":true},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"The key-value pairs of custom parameters to be passed in when the custom parameter feature is enabled.  Number of custom parameters: 0 to 10.\n","willReplaceOnChanges":true},"repeatMode":{"type":"string","description":"Specifies how to run the command. Valid values: `Once`, `Period`, `NextRebootOnly`, `EveryReboot`. Default value: When \u003cspan pulumi-lang-nodejs=\"`timed`\" pulumi-lang-dotnet=\"`Timed`\" pulumi-lang-go=\"`timed`\" pulumi-lang-python=\"`timed`\" pulumi-lang-yaml=\"`timed`\" pulumi-lang-java=\"`timed`\"\u003e`timed`\u003c/span\u003e is set to false and Frequency is not specified, the default value of \u003cspan pulumi-lang-nodejs=\"`repeatMode`\" pulumi-lang-dotnet=\"`RepeatMode`\" pulumi-lang-go=\"`repeatMode`\" pulumi-lang-python=\"`repeat_mode`\" pulumi-lang-yaml=\"`repeatMode`\" pulumi-lang-java=\"`repeatMode`\"\u003e`repeat_mode`\u003c/span\u003e is `Once`. When `Timed` is set to true and Frequency is specified, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is used as the value of RepeatMode regardless of whether \u003cspan pulumi-lang-nodejs=\"`repeatMode`\" pulumi-lang-dotnet=\"`RepeatMode`\" pulumi-lang-go=\"`repeatMode`\" pulumi-lang-python=\"`repeat_mode`\" pulumi-lang-yaml=\"`repeatMode`\" pulumi-lang-java=\"`repeatMode`\"\u003e`repeat_mode`\u003c/span\u003e is specified.\n","willReplaceOnChanges":true},"timed":{"type":"boolean","description":"Specifies whether to periodically run the command. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"username":{"type":"string","description":"The username that is used to run the command on the ECS instance. \n* For Linux instances, the root username is used.\n* For Windows instances, the System username is used.\n* You can also specify other usernames that already exist in the ECS instance to run the command. It is more secure to run Cloud Assistant commands as a regular user. For more information, see [Configure a regular user to run Cloud Assistant commands](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/run-cloud-assistant-commands-as-a-regular-user).\n","willReplaceOnChanges":true},"windowsPasswordName":{"type":"string","description":"The name of the password used to run the command on a Windows instance.\n","willReplaceOnChanges":true}},"requiredInputs":["commandId","instanceIds"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsInvocation resources.\n","properties":{"commandId":{"type":"string","description":"The ID of the command.\n","willReplaceOnChanges":true},"frequency":{"type":"string","description":"The schedule on which the recurring execution of the command takes place. Take note of the following items:\n* The interval between two consecutive executions must be 10 seconds or longer. The minimum interval cannot be less than the timeout period of the execution.\n* When you set Timed to true, you must specify Frequency.\n* The value of the Frequency parameter is a cron expression. For more information, see [Cron expression](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/cron-expression).\n","willReplaceOnChanges":true},"instanceIds":{"type":"array","items":{"type":"string"},"description":"The list of instances to execute the command. You can specify up to 50 instance IDs.\n","willReplaceOnChanges":true},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"The key-value pairs of custom parameters to be passed in when the custom parameter feature is enabled.  Number of custom parameters: 0 to 10.\n","willReplaceOnChanges":true},"repeatMode":{"type":"string","description":"Specifies how to run the command. Valid values: `Once`, `Period`, `NextRebootOnly`, `EveryReboot`. Default value: When \u003cspan pulumi-lang-nodejs=\"`timed`\" pulumi-lang-dotnet=\"`Timed`\" pulumi-lang-go=\"`timed`\" pulumi-lang-python=\"`timed`\" pulumi-lang-yaml=\"`timed`\" pulumi-lang-java=\"`timed`\"\u003e`timed`\u003c/span\u003e is set to false and Frequency is not specified, the default value of \u003cspan pulumi-lang-nodejs=\"`repeatMode`\" pulumi-lang-dotnet=\"`RepeatMode`\" pulumi-lang-go=\"`repeatMode`\" pulumi-lang-python=\"`repeat_mode`\" pulumi-lang-yaml=\"`repeatMode`\" pulumi-lang-java=\"`repeatMode`\"\u003e`repeat_mode`\u003c/span\u003e is `Once`. When `Timed` is set to true and Frequency is specified, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is used as the value of RepeatMode regardless of whether \u003cspan pulumi-lang-nodejs=\"`repeatMode`\" pulumi-lang-dotnet=\"`RepeatMode`\" pulumi-lang-go=\"`repeatMode`\" pulumi-lang-python=\"`repeat_mode`\" pulumi-lang-yaml=\"`repeatMode`\" pulumi-lang-java=\"`repeatMode`\"\u003e`repeat_mode`\u003c/span\u003e is specified.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"},"timed":{"type":"boolean","description":"Specifies whether to periodically run the command. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"username":{"type":"string","description":"The username that is used to run the command on the ECS instance. \n* For Linux instances, the root username is used.\n* For Windows instances, the System username is used.\n* You can also specify other usernames that already exist in the ECS instance to run the command. It is more secure to run Cloud Assistant commands as a regular user. For more information, see [Configure a regular user to run Cloud Assistant commands](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/run-cloud-assistant-commands-as-a-regular-user).\n","willReplaceOnChanges":true},"windowsPasswordName":{"type":"string","description":"The name of the password used to run the command on a Windows instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/ecsKeyPair:EcsKeyPair":{"description":"Provides a ECS Key Pair resource.\n\nFor information about ECS Key Pair and how to use it, see [What is Key Pair](https://www.alibabacloud.com/help/en/doc-detail/51771.htm).\n\n\u003e **NOTE:** Available since v1.121.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.ecs.EcsKeyPair(\"example\", {keyPairName: \"key_pair_name\"});\n// Using name prefix to build key pair\nconst prefix = new alicloud.ecs.EcsKeyPair(\"prefix\", {keyNamePrefix: \"terraform-test-key-pair-prefix\"});\n// Import an existing public key to build a alicloud key pair\nconst publickey = new alicloud.ecs.EcsKeyPair(\"publickey\", {\n    keyPairName: \"my_public_key\",\n    publicKey: \"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ecs.EcsKeyPair(\"example\", key_pair_name=\"key_pair_name\")\n# Using name prefix to build key pair\nprefix = alicloud.ecs.EcsKeyPair(\"prefix\", key_name_prefix=\"terraform-test-key-pair-prefix\")\n# Import an existing public key to build a alicloud key pair\npublickey = alicloud.ecs.EcsKeyPair(\"publickey\",\n    key_pair_name=\"my_public_key\",\n    public_key=\"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Ecs.EcsKeyPair(\"example\", new()\n    {\n        KeyPairName = \"key_pair_name\",\n    });\n\n    // Using name prefix to build key pair\n    var prefix = new AliCloud.Ecs.EcsKeyPair(\"prefix\", new()\n    {\n        KeyNamePrefix = \"terraform-test-key-pair-prefix\",\n    });\n\n    // Import an existing public key to build a alicloud key pair\n    var publickey = new AliCloud.Ecs.EcsKeyPair(\"publickey\", new()\n    {\n        KeyPairName = \"my_public_key\",\n        PublicKey = \"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewEcsKeyPair(ctx, \"example\", \u0026ecs.EcsKeyPairArgs{\n\t\t\tKeyPairName: pulumi.String(\"key_pair_name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Using name prefix to build key pair\n\t\t_, err = ecs.NewEcsKeyPair(ctx, \"prefix\", \u0026ecs.EcsKeyPairArgs{\n\t\t\tKeyNamePrefix: pulumi.String(\"terraform-test-key-pair-prefix\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Import an existing public key to build a alicloud key pair\n\t\t_, err = ecs.NewEcsKeyPair(ctx, \"publickey\", \u0026ecs.EcsKeyPairArgs{\n\t\t\tKeyPairName: pulumi.String(\"my_public_key\"),\n\t\t\tPublicKey:   pulumi.String(\"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsKeyPair;\nimport com.pulumi.alicloud.ecs.EcsKeyPairArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new EcsKeyPair(\"example\", EcsKeyPairArgs.builder()\n            .keyPairName(\"key_pair_name\")\n            .build());\n\n        // Using name prefix to build key pair\n        var prefix = new EcsKeyPair(\"prefix\", EcsKeyPairArgs.builder()\n            .keyNamePrefix(\"terraform-test-key-pair-prefix\")\n            .build());\n\n        // Import an existing public key to build a alicloud key pair\n        var publickey = new EcsKeyPair(\"publickey\", EcsKeyPairArgs.builder()\n            .keyPairName(\"my_public_key\")\n            .publicKey(\"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:ecs:EcsKeyPair\n    properties:\n      keyPairName: key_pair_name\n  # Using name prefix to build key pair\n  prefix:\n    type: alicloud:ecs:EcsKeyPair\n    properties:\n      keyNamePrefix: terraform-test-key-pair-prefix\n  # Import an existing public key to build a alicloud key pair\n  publickey:\n    type: alicloud:ecs:EcsKeyPair\n    properties:\n      keyPairName: my_public_key\n      publicKey: ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Key Pair can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsKeyPair:EcsKeyPair example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"(Available since v1.237.0) The time when the key pair was created.\n"},"fingerPrint":{"type":"string","description":"The fingerprint of the key pair.\n"},"keyFile":{"type":"string","description":"The key file.\n"},"keyName":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e instead.\n\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`keyNamePrefix`\" pulumi-lang-dotnet=\"`KeyNamePrefix`\" pulumi-lang-go=\"`keyNamePrefix`\" pulumi-lang-python=\"`key_name_prefix`\" pulumi-lang-yaml=\"`keyNamePrefix`\" pulumi-lang-java=\"`keyNamePrefix`\"\u003e`key_name_prefix`\u003c/span\u003e are not set, terraform will produce a specified ID to replace.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e instead."},"keyNamePrefix":{"type":"string","description":"The key pair name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e. If it is specified, terraform will using it to build the only key name.\n"},"keyPairName":{"type":"string","description":"The name of the key pair. The name must be 2 to 128 characters in length. The name must start with a letter and cannot start with http:// or https://. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n"},"publicKey":{"type":"string","description":"The public key of the key pair.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which to add the key pair.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["createTime","fingerPrint","keyName","keyPairName","resourceGroupId"],"inputProperties":{"keyFile":{"type":"string","description":"The key file.\n","willReplaceOnChanges":true},"keyName":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e instead.\n\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`keyNamePrefix`\" pulumi-lang-dotnet=\"`KeyNamePrefix`\" pulumi-lang-go=\"`keyNamePrefix`\" pulumi-lang-python=\"`key_name_prefix`\" pulumi-lang-yaml=\"`keyNamePrefix`\" pulumi-lang-java=\"`keyNamePrefix`\"\u003e`key_name_prefix`\u003c/span\u003e are not set, terraform will produce a specified ID to replace.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e instead.","willReplaceOnChanges":true},"keyNamePrefix":{"type":"string","description":"The key pair name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e. If it is specified, terraform will using it to build the only key name.\n","willReplaceOnChanges":true},"keyPairName":{"type":"string","description":"The name of the key pair. The name must be 2 to 128 characters in length. The name must start with a letter and cannot start with http:// or https://. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n","willReplaceOnChanges":true},"publicKey":{"type":"string","description":"The public key of the key pair.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which to add the key pair.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering EcsKeyPair resources.\n","properties":{"createTime":{"type":"string","description":"(Available since v1.237.0) The time when the key pair was created.\n"},"fingerPrint":{"type":"string","description":"The fingerprint of the key pair.\n"},"keyFile":{"type":"string","description":"The key file.\n","willReplaceOnChanges":true},"keyName":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e instead.\n\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`keyNamePrefix`\" pulumi-lang-dotnet=\"`KeyNamePrefix`\" pulumi-lang-go=\"`keyNamePrefix`\" pulumi-lang-python=\"`key_name_prefix`\" pulumi-lang-yaml=\"`keyNamePrefix`\" pulumi-lang-java=\"`keyNamePrefix`\"\u003e`key_name_prefix`\u003c/span\u003e are not set, terraform will produce a specified ID to replace.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e instead.","willReplaceOnChanges":true},"keyNamePrefix":{"type":"string","description":"The key pair name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e. If it is specified, terraform will using it to build the only key name.\n","willReplaceOnChanges":true},"keyPairName":{"type":"string","description":"The name of the key pair. The name must be 2 to 128 characters in length. The name must start with a letter and cannot start with http:// or https://. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n","willReplaceOnChanges":true},"publicKey":{"type":"string","description":"The public key of the key pair.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which to add the key pair.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:ecs/ecsKeyPairAttachment:EcsKeyPairAttachment":{"description":"Provides a ECS Key Pair Attachment resource.\n\nFor information about ECS Key Pair Attachment and how to use it, see [What is Key Pair Attachment](https://www.alibabacloud.com/help/en/doc-detail/51775.htm).\n\n\u003e **NOTE:** Available since v1.121.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst example = alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n});\nconst exampleGetInstanceTypes = example.then(example =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: example.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst exampleGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: \"terraform-example\",\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.ecs.Instance(\"example\", {\n    imageId: exampleGetImages.then(exampleGetImages =\u003e exampleGetImages.images?.[0]?.id),\n    instanceType: exampleGetInstanceTypes.then(exampleGetInstanceTypes =\u003e exampleGetInstanceTypes.instanceTypes?.[0]?.id),\n    availabilityZone: example.then(example =\u003e example.zones?.[0]?.id),\n    securityGroups: [exampleSecurityGroup.id],\n    instanceName: \"terraform-example\",\n    internetChargeType: \"PayByBandwidth\",\n    vswitchId: exampleSwitch.id,\n});\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst exampleEcsKeyPair = new alicloud.ecs.EcsKeyPair(\"example\", {keyPairName: `tf-example-${_default.result}`});\nconst exampleEcsKeyPairAttachment = new alicloud.ecs.EcsKeyPairAttachment(\"example\", {\n    keyPairName: exampleEcsKeyPair.keyPairName,\n    instanceIds: [exampleInstance.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nexample = alicloud.get_zones(available_resource_creation=\"Instance\")\nexample_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=example.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\nexample_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=\"terraform-example\",\n    vpc_id=example_network.id)\nexample_instance = alicloud.ecs.Instance(\"example\",\n    image_id=example_get_images.images[0].id,\n    instance_type=example_get_instance_types.instance_types[0].id,\n    availability_zone=example.zones[0].id,\n    security_groups=[example_security_group.id],\n    instance_name=\"terraform-example\",\n    internet_charge_type=\"PayByBandwidth\",\n    vswitch_id=example_switch.id)\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample_ecs_key_pair = alicloud.ecs.EcsKeyPair(\"example\", key_pair_name=f\"tf-example-{default['result']}\")\nexample_ecs_key_pair_attachment = alicloud.ecs.EcsKeyPairAttachment(\"example\",\n    key_pair_name=example_ecs_key_pair.key_pair_name,\n    instance_ids=[example_instance.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n    });\n\n    var exampleGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var exampleGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = \"terraform-example\",\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Ecs.Instance(\"example\", new()\n    {\n        ImageId = exampleGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = exampleGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        AvailabilityZone = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        SecurityGroups = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n        InstanceName = \"terraform-example\",\n        InternetChargeType = \"PayByBandwidth\",\n        VswitchId = exampleSwitch.Id,\n    });\n\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var exampleEcsKeyPair = new AliCloud.Ecs.EcsKeyPair(\"example\", new()\n    {\n        KeyPairName = $\"tf-example-{@default.Result}\",\n    });\n\n    var exampleEcsKeyPairAttachment = new AliCloud.Ecs.EcsKeyPairAttachment(\"example\", new()\n    {\n        KeyPairName = exampleEcsKeyPair.KeyPairName,\n        InstanceIds = new[]\n        {\n            exampleInstance.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(example.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(\"terraform-example\"),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := ecs.NewInstance(ctx, \"example\", \u0026ecs.InstanceArgs{\n\t\t\tImageId:          pulumi.String(exampleGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(exampleGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tAvailabilityZone: pulumi.String(example.Zones[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t\tInstanceName:       pulumi.String(\"terraform-example\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByBandwidth\"),\n\t\t\tVswitchId:          exampleSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEcsKeyPair, err := ecs.NewEcsKeyPair(ctx, \"example\", \u0026ecs.EcsKeyPairArgs{\n\t\t\tKeyPairName: pulumi.Sprintf(\"tf-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEcsKeyPairAttachment(ctx, \"example\", \u0026ecs.EcsKeyPairAttachmentArgs{\n\t\t\tKeyPairName: exampleEcsKeyPair.KeyPairName,\n\t\t\tInstanceIds: pulumi.StringArray{\n\t\t\t\texampleInstance.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ecs.EcsKeyPair;\nimport com.pulumi.alicloud.ecs.EcsKeyPairArgs;\nimport com.pulumi.alicloud.ecs.EcsKeyPairAttachment;\nimport com.pulumi.alicloud.ecs.EcsKeyPairAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .build());\n\n        final var exampleGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(example.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        final var exampleGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"terraform-example\")\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .imageId(exampleGetImages.images()[0].id())\n            .instanceType(exampleGetInstanceTypes.instanceTypes()[0].id())\n            .availabilityZone(example.zones()[0].id())\n            .securityGroups(exampleSecurityGroup.id())\n            .instanceName(\"terraform-example\")\n            .internetChargeType(\"PayByBandwidth\")\n            .vswitchId(exampleSwitch.id())\n            .build());\n\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var exampleEcsKeyPair = new EcsKeyPair(\"exampleEcsKeyPair\", EcsKeyPairArgs.builder()\n            .keyPairName(String.format(\"tf-example-%s\", default_.result()))\n            .build());\n\n        var exampleEcsKeyPairAttachment = new EcsKeyPairAttachment(\"exampleEcsKeyPairAttachment\", EcsKeyPairAttachmentArgs.builder()\n            .keyPairName(exampleEcsKeyPair.keyPairName())\n            .instanceIds(exampleInstance.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: terraform-example\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:ecs:Instance\n    name: example\n    properties:\n      imageId: ${exampleGetImages.images[0].id}\n      instanceType: ${exampleGetInstanceTypes.instanceTypes[0].id}\n      availabilityZone: ${example.zones[0].id}\n      securityGroups:\n        - ${exampleSecurityGroup.id}\n      instanceName: terraform-example\n      internetChargeType: PayByBandwidth\n      vswitchId: ${exampleSwitch.id}\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  exampleEcsKeyPair:\n    type: alicloud:ecs:EcsKeyPair\n    name: example\n    properties:\n      keyPairName: tf-example-${default.result}\n  exampleEcsKeyPairAttachment:\n    type: alicloud:ecs:EcsKeyPairAttachment\n    name: example\n    properties:\n      keyPairName: ${exampleEcsKeyPair.keyPairName}\n      instanceIds:\n        - ${exampleInstance.id}\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n  exampleGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${example.zones[0].id}\n        cpuCoreCount: 1\n        memorySize: 2\n  exampleGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Key Pair Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsKeyPairAttachment:EcsKeyPairAttachment example \u003ckey_pair_name\u003e:\u003cinstance_ids\u003e\n```\n\n","properties":{"force":{"type":"boolean","description":"Set it to true and it will reboot instances which attached with the key pair to make key pair affect immediately.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"The list of ECS instance's IDs.\n"},"keyName":{"type":"string","description":"New field 'key_pair_name' instead.\n","deprecationMessage":"Field 'key_name' has been deprecated from provider version 1.121.0. New field 'key_pair_name' instead."},"keyPairName":{"type":"string","description":"The name of key pair used to bind.\n"}},"required":["instanceIds","keyName","keyPairName"],"inputProperties":{"force":{"type":"boolean","description":"Set it to true and it will reboot instances which attached with the key pair to make key pair affect immediately.\n","willReplaceOnChanges":true},"instanceIds":{"type":"array","items":{"type":"string"},"description":"The list of ECS instance's IDs.\n","willReplaceOnChanges":true},"keyName":{"type":"string","description":"New field 'key_pair_name' instead.\n","deprecationMessage":"Field 'key_name' has been deprecated from provider version 1.121.0. New field 'key_pair_name' instead.","willReplaceOnChanges":true},"keyPairName":{"type":"string","description":"The name of key pair used to bind.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceIds"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsKeyPairAttachment resources.\n","properties":{"force":{"type":"boolean","description":"Set it to true and it will reboot instances which attached with the key pair to make key pair affect immediately.\n","willReplaceOnChanges":true},"instanceIds":{"type":"array","items":{"type":"string"},"description":"The list of ECS instance's IDs.\n","willReplaceOnChanges":true},"keyName":{"type":"string","description":"New field 'key_pair_name' instead.\n","deprecationMessage":"Field 'key_name' has been deprecated from provider version 1.121.0. New field 'key_pair_name' instead.","willReplaceOnChanges":true},"keyPairName":{"type":"string","description":"The name of key pair used to bind.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/ecsLaunchTemplate:EcsLaunchTemplate":{"description":"Provides a ECS Launch Template resource.\n\nFor information about ECS Launch Template and how to use it, see [What is Launch Template](https://www.alibabacloud.com/help/en/doc-detail/74686.htm).\n\n\u003e **NOTE:** Available since v1.120.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    securityGroupName: \"terraform-example\",\n    vpcId: defaultNetwork.id,\n});\nconst defaultEcsLaunchTemplate = new alicloud.ecs.EcsLaunchTemplate(\"default\", {\n    launchTemplateName: \"terraform-example\",\n    description: \"terraform-example\",\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    hostName: \"terraform-example\",\n    instanceChargeType: \"PrePaid\",\n    instanceName: \"terraform-example\",\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    internetChargeType: \"PayByBandwidth\",\n    internetMaxBandwidthIn: 5,\n    internetMaxBandwidthOut: 5,\n    ioOptimized: \"optimized\",\n    keyPairName: \"key_pair_name\",\n    ramRoleName: \"ram_role_name\",\n    networkType: \"vpc\",\n    securityEnhancementStrategy: \"Active\",\n    spotPriceLimit: 5,\n    spotStrategy: \"SpotWithPriceLimit\",\n    securityGroupIds: [defaultSecurityGroup.id],\n    systemDisk: {\n        category: \"cloud_ssd\",\n        description: \"Test For Terraform\",\n        name: \"terraform-example\",\n        size: 40,\n        deleteWithInstance: false,\n    },\n    userData: \"xxxxxxx\",\n    vswitchId: defaultSwitch.id,\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    templateTags: {\n        Create: \"Terraform\",\n        For: \"example\",\n    },\n    networkInterfaces: {\n        name: \"eth0\",\n        description: \"hello1\",\n        primaryIp: \"10.0.0.2\",\n        securityGroupId: defaultSecurityGroup.id,\n        vswitchId: defaultSwitch.id,\n    },\n    dataDisks: [\n        {\n            name: \"disk1\",\n            description: \"description\",\n            deleteWithInstance: true,\n            category: \"cloud\",\n            encrypted: false,\n            performanceLevel: \"PL0\",\n            size: 20,\n        },\n        {\n            name: \"disk2\",\n            description: \"description2\",\n            deleteWithInstance: true,\n            category: \"cloud\",\n            encrypted: false,\n            performanceLevel: \"PL0\",\n            size: 20,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    security_group_name=\"terraform-example\",\n    vpc_id=default_network.id)\ndefault_ecs_launch_template = alicloud.ecs.EcsLaunchTemplate(\"default\",\n    launch_template_name=\"terraform-example\",\n    description=\"terraform-example\",\n    image_id=default_get_images.images[0].id,\n    host_name=\"terraform-example\",\n    instance_charge_type=\"PrePaid\",\n    instance_name=\"terraform-example\",\n    instance_type=default_get_instance_types.instance_types[0].id,\n    internet_charge_type=\"PayByBandwidth\",\n    internet_max_bandwidth_in=5,\n    internet_max_bandwidth_out=5,\n    io_optimized=\"optimized\",\n    key_pair_name=\"key_pair_name\",\n    ram_role_name=\"ram_role_name\",\n    network_type=\"vpc\",\n    security_enhancement_strategy=\"Active\",\n    spot_price_limit=5,\n    spot_strategy=\"SpotWithPriceLimit\",\n    security_group_ids=[default_security_group.id],\n    system_disk={\n        \"category\": \"cloud_ssd\",\n        \"description\": \"Test For Terraform\",\n        \"name\": \"terraform-example\",\n        \"size\": 40,\n        \"delete_with_instance\": False,\n    },\n    user_data=\"xxxxxxx\",\n    vswitch_id=default_switch.id,\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id,\n    template_tags={\n        \"Create\": \"Terraform\",\n        \"For\": \"example\",\n    },\n    network_interfaces={\n        \"name\": \"eth0\",\n        \"description\": \"hello1\",\n        \"primary_ip\": \"10.0.0.2\",\n        \"security_group_id\": default_security_group.id,\n        \"vswitch_id\": default_switch.id,\n    },\n    data_disks=[\n        {\n            \"name\": \"disk1\",\n            \"description\": \"description\",\n            \"delete_with_instance\": True,\n            \"category\": \"cloud\",\n            \"encrypted\": False,\n            \"performance_level\": \"PL0\",\n            \"size\": 20,\n        },\n        {\n            \"name\": \"disk2\",\n            \"description\": \"description2\",\n            \"delete_with_instance\": True,\n            \"category\": \"cloud\",\n            \"encrypted\": False,\n            \"performance_level\": \"PL0\",\n            \"size\": 20,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = \"terraform-example\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultEcsLaunchTemplate = new AliCloud.Ecs.EcsLaunchTemplate(\"default\", new()\n    {\n        LaunchTemplateName = \"terraform-example\",\n        Description = \"terraform-example\",\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        HostName = \"terraform-example\",\n        InstanceChargeType = \"PrePaid\",\n        InstanceName = \"terraform-example\",\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        InternetChargeType = \"PayByBandwidth\",\n        InternetMaxBandwidthIn = 5,\n        InternetMaxBandwidthOut = 5,\n        IoOptimized = \"optimized\",\n        KeyPairName = \"key_pair_name\",\n        RamRoleName = \"ram_role_name\",\n        NetworkType = \"vpc\",\n        SecurityEnhancementStrategy = \"Active\",\n        SpotPriceLimit = 5,\n        SpotStrategy = \"SpotWithPriceLimit\",\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        SystemDisk = new AliCloud.Ecs.Inputs.EcsLaunchTemplateSystemDiskArgs\n        {\n            Category = \"cloud_ssd\",\n            Description = \"Test For Terraform\",\n            Name = \"terraform-example\",\n            Size = 40,\n            DeleteWithInstance = false,\n        },\n        UserData = \"xxxxxxx\",\n        VswitchId = defaultSwitch.Id,\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        TemplateTags = \n        {\n            { \"Create\", \"Terraform\" },\n            { \"For\", \"example\" },\n        },\n        NetworkInterfaces = new AliCloud.Ecs.Inputs.EcsLaunchTemplateNetworkInterfacesArgs\n        {\n            Name = \"eth0\",\n            Description = \"hello1\",\n            PrimaryIp = \"10.0.0.2\",\n            SecurityGroupId = defaultSecurityGroup.Id,\n            VswitchId = defaultSwitch.Id,\n        },\n        DataDisks = new[]\n        {\n            new AliCloud.Ecs.Inputs.EcsLaunchTemplateDataDiskArgs\n            {\n                Name = \"disk1\",\n                Description = \"description\",\n                DeleteWithInstance = true,\n                Category = \"cloud\",\n                Encrypted = false,\n                PerformanceLevel = \"PL0\",\n                Size = 20,\n            },\n            new AliCloud.Ecs.Inputs.EcsLaunchTemplateDataDiskArgs\n            {\n                Name = \"disk2\",\n                Description = \"description2\",\n                DeleteWithInstance = true,\n                Category = \"cloud\",\n                Encrypted = false,\n                PerformanceLevel = \"PL0\",\n                Size = 20,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(\"terraform-example\"),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEcsLaunchTemplate(ctx, \"default\", \u0026ecs.EcsLaunchTemplateArgs{\n\t\t\tLaunchTemplateName:          pulumi.String(\"terraform-example\"),\n\t\t\tDescription:                 pulumi.String(\"terraform-example\"),\n\t\t\tImageId:                     pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tHostName:                    pulumi.String(\"terraform-example\"),\n\t\t\tInstanceChargeType:          pulumi.String(\"PrePaid\"),\n\t\t\tInstanceName:                pulumi.String(\"terraform-example\"),\n\t\t\tInstanceType:                pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tInternetChargeType:          pulumi.String(\"PayByBandwidth\"),\n\t\t\tInternetMaxBandwidthIn:      pulumi.Int(5),\n\t\t\tInternetMaxBandwidthOut:     pulumi.Int(5),\n\t\t\tIoOptimized:                 pulumi.String(\"optimized\"),\n\t\t\tKeyPairName:                 pulumi.String(\"key_pair_name\"),\n\t\t\tRamRoleName:                 pulumi.String(\"ram_role_name\"),\n\t\t\tNetworkType:                 pulumi.String(\"vpc\"),\n\t\t\tSecurityEnhancementStrategy: pulumi.String(\"Active\"),\n\t\t\tSpotPriceLimit:              pulumi.Float64(5),\n\t\t\tSpotStrategy:                pulumi.String(\"SpotWithPriceLimit\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tSystemDisk: \u0026ecs.EcsLaunchTemplateSystemDiskArgs{\n\t\t\t\tCategory:           pulumi.String(\"cloud_ssd\"),\n\t\t\t\tDescription:        pulumi.String(\"Test For Terraform\"),\n\t\t\t\tName:               pulumi.String(\"terraform-example\"),\n\t\t\t\tSize:               pulumi.Int(40),\n\t\t\t\tDeleteWithInstance: pulumi.Bool(false),\n\t\t\t},\n\t\t\tUserData:  pulumi.String(\"xxxxxxx\"),\n\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t\tVpcId:     defaultNetwork.ID(),\n\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t\tTemplateTags: pulumi.StringMap{\n\t\t\t\t\"Create\": pulumi.String(\"Terraform\"),\n\t\t\t\t\"For\":    pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tNetworkInterfaces: \u0026ecs.EcsLaunchTemplateNetworkInterfacesArgs{\n\t\t\t\tName:            pulumi.String(\"eth0\"),\n\t\t\t\tDescription:     pulumi.String(\"hello1\"),\n\t\t\t\tPrimaryIp:       pulumi.String(\"10.0.0.2\"),\n\t\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\t},\n\t\t\tDataDisks: ecs.EcsLaunchTemplateDataDiskArray{\n\t\t\t\t\u0026ecs.EcsLaunchTemplateDataDiskArgs{\n\t\t\t\t\tName:               pulumi.String(\"disk1\"),\n\t\t\t\t\tDescription:        pulumi.String(\"description\"),\n\t\t\t\t\tDeleteWithInstance: pulumi.Bool(true),\n\t\t\t\t\tCategory:           pulumi.String(\"cloud\"),\n\t\t\t\t\tEncrypted:          pulumi.Bool(false),\n\t\t\t\t\tPerformanceLevel:   pulumi.String(\"PL0\"),\n\t\t\t\t\tSize:               pulumi.Int(20),\n\t\t\t\t},\n\t\t\t\t\u0026ecs.EcsLaunchTemplateDataDiskArgs{\n\t\t\t\t\tName:               pulumi.String(\"disk2\"),\n\t\t\t\t\tDescription:        pulumi.String(\"description2\"),\n\t\t\t\t\tDeleteWithInstance: pulumi.Bool(true),\n\t\t\t\t\tCategory:           pulumi.String(\"cloud\"),\n\t\t\t\t\tEncrypted:          pulumi.Bool(false),\n\t\t\t\t\tPerformanceLevel:   pulumi.String(\"PL0\"),\n\t\t\t\t\tSize:               pulumi.Int(20),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.EcsLaunchTemplate;\nimport com.pulumi.alicloud.ecs.EcsLaunchTemplateArgs;\nimport com.pulumi.alicloud.ecs.inputs.EcsLaunchTemplateSystemDiskArgs;\nimport com.pulumi.alicloud.ecs.inputs.EcsLaunchTemplateNetworkInterfacesArgs;\nimport com.pulumi.alicloud.ecs.inputs.EcsLaunchTemplateDataDiskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(\"terraform-example\")\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultEcsLaunchTemplate = new EcsLaunchTemplate(\"defaultEcsLaunchTemplate\", EcsLaunchTemplateArgs.builder()\n            .launchTemplateName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .imageId(defaultGetImages.images()[0].id())\n            .hostName(\"terraform-example\")\n            .instanceChargeType(\"PrePaid\")\n            .instanceName(\"terraform-example\")\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .internetChargeType(\"PayByBandwidth\")\n            .internetMaxBandwidthIn(5)\n            .internetMaxBandwidthOut(5)\n            .ioOptimized(\"optimized\")\n            .keyPairName(\"key_pair_name\")\n            .ramRoleName(\"ram_role_name\")\n            .networkType(\"vpc\")\n            .securityEnhancementStrategy(\"Active\")\n            .spotPriceLimit(5.0)\n            .spotStrategy(\"SpotWithPriceLimit\")\n            .securityGroupIds(defaultSecurityGroup.id())\n            .systemDisk(EcsLaunchTemplateSystemDiskArgs.builder()\n                .category(\"cloud_ssd\")\n                .description(\"Test For Terraform\")\n                .name(\"terraform-example\")\n                .size(40)\n                .deleteWithInstance(false)\n                .build())\n            .userData(\"xxxxxxx\")\n            .vswitchId(defaultSwitch.id())\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .templateTags(Map.ofEntries(\n                Map.entry(\"Create\", \"Terraform\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .networkInterfaces(EcsLaunchTemplateNetworkInterfacesArgs.builder()\n                .name(\"eth0\")\n                .description(\"hello1\")\n                .primaryIp(\"10.0.0.2\")\n                .securityGroupId(defaultSecurityGroup.id())\n                .vswitchId(defaultSwitch.id())\n                .build())\n            .dataDisks(            \n                EcsLaunchTemplateDataDiskArgs.builder()\n                    .name(\"disk1\")\n                    .description(\"description\")\n                    .deleteWithInstance(true)\n                    .category(\"cloud\")\n                    .encrypted(false)\n                    .performanceLevel(\"PL0\")\n                    .size(20)\n                    .build(),\n                EcsLaunchTemplateDataDiskArgs.builder()\n                    .name(\"disk2\")\n                    .description(\"description2\")\n                    .deleteWithInstance(true)\n                    .category(\"cloud\")\n                    .encrypted(false)\n                    .performanceLevel(\"PL0\")\n                    .size(20)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      securityGroupName: terraform-example\n      vpcId: ${defaultNetwork.id}\n  defaultEcsLaunchTemplate:\n    type: alicloud:ecs:EcsLaunchTemplate\n    name: default\n    properties:\n      launchTemplateName: terraform-example\n      description: terraform-example\n      imageId: ${defaultGetImages.images[0].id}\n      hostName: terraform-example\n      instanceChargeType: PrePaid\n      instanceName: terraform-example\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      internetChargeType: PayByBandwidth\n      internetMaxBandwidthIn: '5'\n      internetMaxBandwidthOut: '5'\n      ioOptimized: optimized\n      keyPairName: key_pair_name\n      ramRoleName: ram_role_name\n      networkType: vpc\n      securityEnhancementStrategy: Active\n      spotPriceLimit: '5'\n      spotStrategy: SpotWithPriceLimit\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n      systemDisk:\n        category: cloud_ssd\n        description: Test For Terraform\n        name: terraform-example\n        size: '40'\n        deleteWithInstance: 'false'\n      userData: xxxxxxx\n      vswitchId: ${defaultSwitch.id}\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n      templateTags:\n        Create: Terraform\n        For: example\n      networkInterfaces:\n        name: eth0\n        description: hello1\n        primaryIp: 10.0.0.2\n        securityGroupId: ${defaultSecurityGroup.id}\n        vswitchId: ${defaultSwitch.id}\n      dataDisks:\n        - name: disk1\n          description: description\n          deleteWithInstance: 'true'\n          category: cloud\n          encrypted: 'false'\n          performanceLevel: PL0\n          size: '20'\n        - name: disk2\n          description: description2\n          deleteWithInstance: 'true'\n          category: cloud\n          encrypted: 'false'\n          performanceLevel: PL0\n          size: '20'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Launch Template can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsLaunchTemplate:EcsLaunchTemplate example \u003cid\u003e\n```\n\n","properties":{"autoReleaseTime":{"type":"string","description":"Instance auto release time. The time is presented using the ISO8601 standard and in UTC time. The format is  YYYY-MM-DDTHH:MM:SSZ.\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to enable auto-renewal for the instance. This parameter is valid only if \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is set to `PrePaid`.\n"},"autoRenewPeriod":{"type":"integer","description":"The auto-renewal period of the instance. Valid values when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to `Month`: 1, 2, 3, 6, 12, 24, 36, 48, and 60. Default value: 1.\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/EcsLaunchTemplateDataDisk:EcsLaunchTemplateDataDisk"},"description":"The list of data disks created with instance. See \u003cspan pulumi-lang-nodejs=\"`dataDisks`\" pulumi-lang-dotnet=\"`DataDisks`\" pulumi-lang-go=\"`dataDisks`\" pulumi-lang-python=\"`data_disks`\" pulumi-lang-yaml=\"`dataDisks`\" pulumi-lang-java=\"`dataDisks`\"\u003e`data_disks`\u003c/span\u003e below.\n"},"defaultVersionNumber":{"type":"integer","description":"The version number of the default launch template version. Default to 1. It is conflict with \u003cspan pulumi-lang-nodejs=\"`updateDefaultVersionNumber`\" pulumi-lang-dotnet=\"`UpdateDefaultVersionNumber`\" pulumi-lang-go=\"`updateDefaultVersionNumber`\" pulumi-lang-python=\"`update_default_version_number`\" pulumi-lang-yaml=\"`updateDefaultVersionNumber`\" pulumi-lang-java=\"`updateDefaultVersionNumber`\"\u003e`update_default_version_number`\u003c/span\u003e.\n"},"deploymentSetId":{"type":"string","description":"The Deployment Set Id.\n"},"description":{"type":"string","description":"Description of instance launch template version 1. It can be [2, 256] characters in length. It cannot start with \"http://\" or \"https://\". The default value is null.\n"},"enableVmOsConfig":{"type":"boolean","description":"Whether to enable the instance operating system configuration.\n"},"hostName":{"type":"string","description":"Instance host name.It cannot start or end with a period (.) or a hyphen (-) and it cannot have two or more consecutive periods (.) or hyphens (-).For Windows: The host name can be [2, 15] characters in length. It can contain A-Z, a-z, numbers, periods (.), and hyphens (-). It cannot only contain numbers. For other operating systems: The host name can be [2, 64] characters in length. It can be segments separated by periods (.). It can contain A-Z, a-z, numbers, and hyphens (-).\n"},"httpEndpoint":{"type":"string","description":"Whether to enable access to instance metadata. Valid values:\n- enabled: Enabled.\n- disabled: Disabled.\n**NOTE:** From version 1.260.0, \u003cspan pulumi-lang-nodejs=\"`httpEndpoint`\" pulumi-lang-dotnet=\"`HttpEndpoint`\" pulumi-lang-go=\"`httpEndpoint`\" pulumi-lang-python=\"`http_endpoint`\" pulumi-lang-yaml=\"`httpEndpoint`\" pulumi-lang-java=\"`httpEndpoint`\"\u003e`http_endpoint`\u003c/span\u003e can be modified.\n"},"httpPutResponseHopLimit":{"type":"integer","description":"The HTTP PUT response hop limit required for instance metadata requests. **NOTE:** From version 1.260.0, \u003cspan pulumi-lang-nodejs=\"`httpPutResponseHopLimit`\" pulumi-lang-dotnet=\"`HttpPutResponseHopLimit`\" pulumi-lang-go=\"`httpPutResponseHopLimit`\" pulumi-lang-python=\"`http_put_response_hop_limit`\" pulumi-lang-yaml=\"`httpPutResponseHopLimit`\" pulumi-lang-java=\"`httpPutResponseHopLimit`\"\u003e`http_put_response_hop_limit`\u003c/span\u003e can be modified.\n"},"httpTokens":{"type":"string","description":"Whether to use the hardened mode (IMDSv2) when accessing instance metadata. Valid values:\n- optional: Not mandatory.\n- required: Mandatory. After this value is set, the normal mode cannot access instance metadata.\n**NOTE:** From version 1.260.0, \u003cspan pulumi-lang-nodejs=\"`httpTokens`\" pulumi-lang-dotnet=\"`HttpTokens`\" pulumi-lang-go=\"`httpTokens`\" pulumi-lang-python=\"`http_tokens`\" pulumi-lang-yaml=\"`httpTokens`\" pulumi-lang-java=\"`httpTokens`\"\u003e`http_tokens`\u003c/span\u003e can be modified.\n"},"imageId":{"type":"string","description":"The Image ID.\n"},"imageOptions":{"$ref":"#/types/alicloud:ecs/EcsLaunchTemplateImageOptions:EcsLaunchTemplateImageOptions","description":"The options of images. See \u003cspan pulumi-lang-nodejs=\"`imageOptions`\" pulumi-lang-dotnet=\"`ImageOptions`\" pulumi-lang-go=\"`imageOptions`\" pulumi-lang-python=\"`image_options`\" pulumi-lang-yaml=\"`imageOptions`\" pulumi-lang-java=\"`imageOptions`\"\u003e`image_options`\u003c/span\u003e below.\n"},"imageOwnerAlias":{"type":"string","description":"Mirror source. Valid values: \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`self`\" pulumi-lang-dotnet=\"`Self`\" pulumi-lang-go=\"`self`\" pulumi-lang-python=\"`self`\" pulumi-lang-yaml=\"`self`\" pulumi-lang-java=\"`self`\"\u003e`self`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`others`\" pulumi-lang-dotnet=\"`Others`\" pulumi-lang-go=\"`others`\" pulumi-lang-python=\"`others`\" pulumi-lang-yaml=\"`others`\" pulumi-lang-java=\"`others`\"\u003e`others`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`marketplace`\" pulumi-lang-dotnet=\"`Marketplace`\" pulumi-lang-go=\"`marketplace`\" pulumi-lang-python=\"`marketplace`\" pulumi-lang-yaml=\"`marketplace`\" pulumi-lang-java=\"`marketplace`\"\u003e`marketplace`\u003c/span\u003e, `\"\"`. Default to: `\"\"`.\n"},"instanceChargeType":{"type":"string","description":"Billing methods. Valid values: `PostPaid`, `PrePaid`.\n"},"instanceName":{"type":"string","description":"The name of the instance. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a letter and cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), periods (.), commas (,), brackets ([]), and hyphens (-).\n"},"instanceType":{"type":"string","description":"Instance type. For more information, call\u003cspan pulumi-lang-nodejs=\" resourceAlicloudInstances \" pulumi-lang-dotnet=\" ResourceAlicloudInstances \" pulumi-lang-go=\" resourceAlicloudInstances \" pulumi-lang-python=\" resource_alicloud_instances \" pulumi-lang-yaml=\" resourceAlicloudInstances \" pulumi-lang-java=\" resourceAlicloudInstances \"\u003e resource_alicloud_instances \u003c/span\u003eto obtain the latest instance type list.\n"},"internetChargeType":{"type":"string","description":"Internet bandwidth billing method. Valid values: `PayByTraffic`, `PayByBandwidth`.\n"},"internetMaxBandwidthIn":{"type":"integer","description":"The maximum inbound bandwidth from the Internet network, measured in Mbit/s. Value range: [1, 200].\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Maximum outbound bandwidth from the Internet, its unit of measurement is Mbit/s. Value range: [0, 100].\n"},"ioOptimized":{"type":"string","description":"Whether it is an I/O-optimized instance or not. Valid values: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`optimized`\" pulumi-lang-dotnet=\"`Optimized`\" pulumi-lang-go=\"`optimized`\" pulumi-lang-python=\"`optimized`\" pulumi-lang-yaml=\"`optimized`\" pulumi-lang-java=\"`optimized`\"\u003e`optimized`\u003c/span\u003e.\n"},"keyPairName":{"type":"string","description":"The name of the key pair.\n- Ignore this parameter for Windows instances. It is null by default. Even if you enter this parameter, only the  Password content is used.\n- The password logon method for Linux instances is set to forbidden upon initialization.\n"},"latestVersionNumber":{"type":"integer","description":"The latest version number of the launch template.\n"},"launchTemplateName":{"type":"string","description":"The name of Launch Template.\n"},"name":{"type":"string","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.120.0. New field 'launch_template_name' instead."},"networkInterfaces":{"$ref":"#/types/alicloud:ecs/EcsLaunchTemplateNetworkInterfaces:EcsLaunchTemplateNetworkInterfaces","description":"The list of network interfaces created with instance. See \u003cspan pulumi-lang-nodejs=\"`networkInterfaces`\" pulumi-lang-dotnet=\"`NetworkInterfaces`\" pulumi-lang-go=\"`networkInterfaces`\" pulumi-lang-python=\"`network_interfaces`\" pulumi-lang-yaml=\"`networkInterfaces`\" pulumi-lang-java=\"`networkInterfaces`\"\u003e`network_interfaces`\u003c/span\u003e below.\n"},"networkType":{"type":"string","description":"Network type of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n"},"passwordInherit":{"type":"boolean","description":"Whether to use the password preset by the mirror.\n"},"period":{"type":"integer","description":"The subscription period of the instance. Unit: months. This parameter takes effect and is required only when InstanceChargeType is set to PrePaid. If the DedicatedHostId parameter is specified, the value of the Period parameter must be within the subscription period of the dedicated host.\n- When the \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to `Week`, the valid values of the Period parameter are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n- When the \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to `Month`, the valid values of the Period parameter are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`48`\" pulumi-lang-dotnet=\"`48`\" pulumi-lang-go=\"`48`\" pulumi-lang-python=\"`48`\" pulumi-lang-yaml=\"`48`\" pulumi-lang-java=\"`48`\"\u003e`48`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"periodUnit":{"type":"string","description":"The unit of the subscription period. Default value: `Month`. Valid values: `Week`, `Month`.\n"},"privateIpAddress":{"type":"string","description":"The private IP address of the instance.\n"},"ramRoleName":{"type":"string","description":"The RAM role name of the instance. You can use the RAM API ListRoles to query instance RAM role names.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which to assign the instance, Elastic Block Storage (EBS) device, and ENI.\n"},"securityEnhancementStrategy":{"type":"string","description":"Whether or not to activate the security enhancement feature and install network security software free of charge. Valid values: `Active`, `Deactive`.\n"},"securityGroupId":{"type":"string","description":"The security group ID.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The ID of security group N to which to assign the instance.\n"},"spotDuration":{"type":"string","description":"The protection period of the preemptible instance. Unit: hours. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e. Default to: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"spotPriceLimit":{"type":"number","description":"Sets the maximum hourly instance price. Supports up to three decimal places.\n"},"spotStrategy":{"type":"string","description":"The spot strategy for a Pay-As-You-Go instance. This parameter is valid and required only when InstanceChargeType is set to PostPaid. Valid values: `NoSpot`, `SpotAsPriceGo`, `SpotWithPriceLimit`.\n"},"systemDisk":{"$ref":"#/types/alicloud:ecs/EcsLaunchTemplateSystemDisk:EcsLaunchTemplateSystemDisk","description":"The System Disk. See \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e below.\n"},"systemDiskCategory":{"type":"string","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'system_disk_category' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskDescription":{"type":"string","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'system_disk_description' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskName":{"type":"string","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'system_disk_name' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskSize":{"type":"integer","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'system_disk_size' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to instance, block storage, and elastic network.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"templateResourceGroupId":{"type":"string","description":"The template resource group id.\n"},"templateTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the launch template.\n"},"updateDefaultVersionNumber":{"type":"boolean","description":"Whether to update the default version of the launch template to the latest version automatically. It is conflict with \u003cspan pulumi-lang-nodejs=\"`defaultVersionNumber`\" pulumi-lang-dotnet=\"`DefaultVersionNumber`\" pulumi-lang-go=\"`defaultVersionNumber`\" pulumi-lang-python=\"`default_version_number`\" pulumi-lang-yaml=\"`defaultVersionNumber`\" pulumi-lang-java=\"`defaultVersionNumber`\"\u003e`default_version_number`\u003c/span\u003e.\n"},"userData":{"type":"string","description":"The User Data.\n"},"userdata":{"type":"string","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`userData`\" pulumi-lang-dotnet=\"`UserData`\" pulumi-lang-go=\"`userData`\" pulumi-lang-python=\"`user_data`\" pulumi-lang-yaml=\"`userData`\" pulumi-lang-java=\"`userData`\"\u003e`user_data`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'userdata' has been deprecated from provider version 1.120.0. New field 'user_data' instead."},"versionDescription":{"type":"string","description":"The description of the launch template version. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchId":{"type":"string","description":"When creating a VPC-Connected instance, you must specify its VSwitch ID.\n"},"zoneId":{"type":"string","description":"The zone ID of the instance.\n"}},"required":["autoRenew","autoRenewPeriod","defaultVersionNumber","httpEndpoint","httpPutResponseHopLimit","httpTokens","imageOptions","internetMaxBandwidthIn","latestVersionNumber","launchTemplateName","name","period","periodUnit","systemDisk","systemDiskCategory","systemDiskDescription","systemDiskName","systemDiskSize","userData","userdata","vpcId","zoneId"],"inputProperties":{"autoReleaseTime":{"type":"string","description":"Instance auto release time. The time is presented using the ISO8601 standard and in UTC time. The format is  YYYY-MM-DDTHH:MM:SSZ.\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to enable auto-renewal for the instance. This parameter is valid only if \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is set to `PrePaid`.\n","willReplaceOnChanges":true},"autoRenewPeriod":{"type":"integer","description":"The auto-renewal period of the instance. Valid values when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to `Month`: 1, 2, 3, 6, 12, 24, 36, 48, and 60. Default value: 1.\n","willReplaceOnChanges":true},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/EcsLaunchTemplateDataDisk:EcsLaunchTemplateDataDisk"},"description":"The list of data disks created with instance. See \u003cspan pulumi-lang-nodejs=\"`dataDisks`\" pulumi-lang-dotnet=\"`DataDisks`\" pulumi-lang-go=\"`dataDisks`\" pulumi-lang-python=\"`data_disks`\" pulumi-lang-yaml=\"`dataDisks`\" pulumi-lang-java=\"`dataDisks`\"\u003e`data_disks`\u003c/span\u003e below.\n"},"defaultVersionNumber":{"type":"integer","description":"The version number of the default launch template version. Default to 1. It is conflict with \u003cspan pulumi-lang-nodejs=\"`updateDefaultVersionNumber`\" pulumi-lang-dotnet=\"`UpdateDefaultVersionNumber`\" pulumi-lang-go=\"`updateDefaultVersionNumber`\" pulumi-lang-python=\"`update_default_version_number`\" pulumi-lang-yaml=\"`updateDefaultVersionNumber`\" pulumi-lang-java=\"`updateDefaultVersionNumber`\"\u003e`update_default_version_number`\u003c/span\u003e.\n"},"deploymentSetId":{"type":"string","description":"The Deployment Set Id.\n"},"description":{"type":"string","description":"Description of instance launch template version 1. It can be [2, 256] characters in length. It cannot start with \"http://\" or \"https://\". The default value is null.\n"},"enableVmOsConfig":{"type":"boolean","description":"Whether to enable the instance operating system configuration.\n"},"hostName":{"type":"string","description":"Instance host name.It cannot start or end with a period (.) or a hyphen (-) and it cannot have two or more consecutive periods (.) or hyphens (-).For Windows: The host name can be [2, 15] characters in length. It can contain A-Z, a-z, numbers, periods (.), and hyphens (-). It cannot only contain numbers. For other operating systems: The host name can be [2, 64] characters in length. It can be segments separated by periods (.). It can contain A-Z, a-z, numbers, and hyphens (-).\n"},"httpEndpoint":{"type":"string","description":"Whether to enable access to instance metadata. Valid values:\n- enabled: Enabled.\n- disabled: Disabled.\n**NOTE:** From version 1.260.0, \u003cspan pulumi-lang-nodejs=\"`httpEndpoint`\" pulumi-lang-dotnet=\"`HttpEndpoint`\" pulumi-lang-go=\"`httpEndpoint`\" pulumi-lang-python=\"`http_endpoint`\" pulumi-lang-yaml=\"`httpEndpoint`\" pulumi-lang-java=\"`httpEndpoint`\"\u003e`http_endpoint`\u003c/span\u003e can be modified.\n"},"httpPutResponseHopLimit":{"type":"integer","description":"The HTTP PUT response hop limit required for instance metadata requests. **NOTE:** From version 1.260.0, \u003cspan pulumi-lang-nodejs=\"`httpPutResponseHopLimit`\" pulumi-lang-dotnet=\"`HttpPutResponseHopLimit`\" pulumi-lang-go=\"`httpPutResponseHopLimit`\" pulumi-lang-python=\"`http_put_response_hop_limit`\" pulumi-lang-yaml=\"`httpPutResponseHopLimit`\" pulumi-lang-java=\"`httpPutResponseHopLimit`\"\u003e`http_put_response_hop_limit`\u003c/span\u003e can be modified.\n"},"httpTokens":{"type":"string","description":"Whether to use the hardened mode (IMDSv2) when accessing instance metadata. Valid values:\n- optional: Not mandatory.\n- required: Mandatory. After this value is set, the normal mode cannot access instance metadata.\n**NOTE:** From version 1.260.0, \u003cspan pulumi-lang-nodejs=\"`httpTokens`\" pulumi-lang-dotnet=\"`HttpTokens`\" pulumi-lang-go=\"`httpTokens`\" pulumi-lang-python=\"`http_tokens`\" pulumi-lang-yaml=\"`httpTokens`\" pulumi-lang-java=\"`httpTokens`\"\u003e`http_tokens`\u003c/span\u003e can be modified.\n"},"imageId":{"type":"string","description":"The Image ID.\n"},"imageOptions":{"$ref":"#/types/alicloud:ecs/EcsLaunchTemplateImageOptions:EcsLaunchTemplateImageOptions","description":"The options of images. See \u003cspan pulumi-lang-nodejs=\"`imageOptions`\" pulumi-lang-dotnet=\"`ImageOptions`\" pulumi-lang-go=\"`imageOptions`\" pulumi-lang-python=\"`image_options`\" pulumi-lang-yaml=\"`imageOptions`\" pulumi-lang-java=\"`imageOptions`\"\u003e`image_options`\u003c/span\u003e below.\n"},"imageOwnerAlias":{"type":"string","description":"Mirror source. Valid values: \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`self`\" pulumi-lang-dotnet=\"`Self`\" pulumi-lang-go=\"`self`\" pulumi-lang-python=\"`self`\" pulumi-lang-yaml=\"`self`\" pulumi-lang-java=\"`self`\"\u003e`self`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`others`\" pulumi-lang-dotnet=\"`Others`\" pulumi-lang-go=\"`others`\" pulumi-lang-python=\"`others`\" pulumi-lang-yaml=\"`others`\" pulumi-lang-java=\"`others`\"\u003e`others`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`marketplace`\" pulumi-lang-dotnet=\"`Marketplace`\" pulumi-lang-go=\"`marketplace`\" pulumi-lang-python=\"`marketplace`\" pulumi-lang-yaml=\"`marketplace`\" pulumi-lang-java=\"`marketplace`\"\u003e`marketplace`\u003c/span\u003e, `\"\"`. Default to: `\"\"`.\n"},"instanceChargeType":{"type":"string","description":"Billing methods. Valid values: `PostPaid`, `PrePaid`.\n"},"instanceName":{"type":"string","description":"The name of the instance. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a letter and cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), periods (.), commas (,), brackets ([]), and hyphens (-).\n"},"instanceType":{"type":"string","description":"Instance type. For more information, call\u003cspan pulumi-lang-nodejs=\" resourceAlicloudInstances \" pulumi-lang-dotnet=\" ResourceAlicloudInstances \" pulumi-lang-go=\" resourceAlicloudInstances \" pulumi-lang-python=\" resource_alicloud_instances \" pulumi-lang-yaml=\" resourceAlicloudInstances \" pulumi-lang-java=\" resourceAlicloudInstances \"\u003e resource_alicloud_instances \u003c/span\u003eto obtain the latest instance type list.\n"},"internetChargeType":{"type":"string","description":"Internet bandwidth billing method. Valid values: `PayByTraffic`, `PayByBandwidth`.\n"},"internetMaxBandwidthIn":{"type":"integer","description":"The maximum inbound bandwidth from the Internet network, measured in Mbit/s. Value range: [1, 200].\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Maximum outbound bandwidth from the Internet, its unit of measurement is Mbit/s. Value range: [0, 100].\n"},"ioOptimized":{"type":"string","description":"Whether it is an I/O-optimized instance or not. Valid values: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`optimized`\" pulumi-lang-dotnet=\"`Optimized`\" pulumi-lang-go=\"`optimized`\" pulumi-lang-python=\"`optimized`\" pulumi-lang-yaml=\"`optimized`\" pulumi-lang-java=\"`optimized`\"\u003e`optimized`\u003c/span\u003e.\n"},"keyPairName":{"type":"string","description":"The name of the key pair.\n- Ignore this parameter for Windows instances. It is null by default. Even if you enter this parameter, only the  Password content is used.\n- The password logon method for Linux instances is set to forbidden upon initialization.\n"},"launchTemplateName":{"type":"string","description":"The name of Launch Template.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.120.0. New field 'launch_template_name' instead.","willReplaceOnChanges":true},"networkInterfaces":{"$ref":"#/types/alicloud:ecs/EcsLaunchTemplateNetworkInterfaces:EcsLaunchTemplateNetworkInterfaces","description":"The list of network interfaces created with instance. See \u003cspan pulumi-lang-nodejs=\"`networkInterfaces`\" pulumi-lang-dotnet=\"`NetworkInterfaces`\" pulumi-lang-go=\"`networkInterfaces`\" pulumi-lang-python=\"`network_interfaces`\" pulumi-lang-yaml=\"`networkInterfaces`\" pulumi-lang-java=\"`networkInterfaces`\"\u003e`network_interfaces`\u003c/span\u003e below.\n"},"networkType":{"type":"string","description":"Network type of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n"},"passwordInherit":{"type":"boolean","description":"Whether to use the password preset by the mirror.\n"},"period":{"type":"integer","description":"The subscription period of the instance. Unit: months. This parameter takes effect and is required only when InstanceChargeType is set to PrePaid. If the DedicatedHostId parameter is specified, the value of the Period parameter must be within the subscription period of the dedicated host.\n- When the \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to `Week`, the valid values of the Period parameter are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n- When the \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to `Month`, the valid values of the Period parameter are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`48`\" pulumi-lang-dotnet=\"`48`\" pulumi-lang-go=\"`48`\" pulumi-lang-python=\"`48`\" pulumi-lang-yaml=\"`48`\" pulumi-lang-java=\"`48`\"\u003e`48`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n","willReplaceOnChanges":true},"periodUnit":{"type":"string","description":"The unit of the subscription period. Default value: `Month`. Valid values: `Week`, `Month`.\n","willReplaceOnChanges":true},"privateIpAddress":{"type":"string","description":"The private IP address of the instance.\n"},"ramRoleName":{"type":"string","description":"The RAM role name of the instance. You can use the RAM API ListRoles to query instance RAM role names.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which to assign the instance, Elastic Block Storage (EBS) device, and ENI.\n"},"securityEnhancementStrategy":{"type":"string","description":"Whether or not to activate the security enhancement feature and install network security software free of charge. Valid values: `Active`, `Deactive`.\n"},"securityGroupId":{"type":"string","description":"The security group ID.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The ID of security group N to which to assign the instance.\n"},"spotDuration":{"type":"string","description":"The protection period of the preemptible instance. Unit: hours. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e. Default to: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"spotPriceLimit":{"type":"number","description":"Sets the maximum hourly instance price. Supports up to three decimal places.\n"},"spotStrategy":{"type":"string","description":"The spot strategy for a Pay-As-You-Go instance. This parameter is valid and required only when InstanceChargeType is set to PostPaid. Valid values: `NoSpot`, `SpotAsPriceGo`, `SpotWithPriceLimit`.\n"},"systemDisk":{"$ref":"#/types/alicloud:ecs/EcsLaunchTemplateSystemDisk:EcsLaunchTemplateSystemDisk","description":"The System Disk. See \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e below.\n"},"systemDiskCategory":{"type":"string","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'system_disk_category' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskDescription":{"type":"string","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'system_disk_description' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskName":{"type":"string","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'system_disk_name' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskSize":{"type":"integer","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'system_disk_size' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to instance, block storage, and elastic network.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"templateResourceGroupId":{"type":"string","description":"The template resource group id.\n","willReplaceOnChanges":true},"templateTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the launch template.\n"},"updateDefaultVersionNumber":{"type":"boolean","description":"Whether to update the default version of the launch template to the latest version automatically. It is conflict with \u003cspan pulumi-lang-nodejs=\"`defaultVersionNumber`\" pulumi-lang-dotnet=\"`DefaultVersionNumber`\" pulumi-lang-go=\"`defaultVersionNumber`\" pulumi-lang-python=\"`default_version_number`\" pulumi-lang-yaml=\"`defaultVersionNumber`\" pulumi-lang-java=\"`defaultVersionNumber`\"\u003e`default_version_number`\u003c/span\u003e.\n"},"userData":{"type":"string","description":"The User Data.\n"},"userdata":{"type":"string","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`userData`\" pulumi-lang-dotnet=\"`UserData`\" pulumi-lang-go=\"`userData`\" pulumi-lang-python=\"`user_data`\" pulumi-lang-yaml=\"`userData`\" pulumi-lang-java=\"`userData`\"\u003e`user_data`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'userdata' has been deprecated from provider version 1.120.0. New field 'user_data' instead."},"versionDescription":{"type":"string","description":"The description of the launch template version. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchId":{"type":"string","description":"When creating a VPC-Connected instance, you must specify its VSwitch ID.\n"},"zoneId":{"type":"string","description":"The zone ID of the instance.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering EcsLaunchTemplate resources.\n","properties":{"autoReleaseTime":{"type":"string","description":"Instance auto release time. The time is presented using the ISO8601 standard and in UTC time. The format is  YYYY-MM-DDTHH:MM:SSZ.\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to enable auto-renewal for the instance. This parameter is valid only if \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is set to `PrePaid`.\n","willReplaceOnChanges":true},"autoRenewPeriod":{"type":"integer","description":"The auto-renewal period of the instance. Valid values when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to `Month`: 1, 2, 3, 6, 12, 24, 36, 48, and 60. Default value: 1.\n","willReplaceOnChanges":true},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/EcsLaunchTemplateDataDisk:EcsLaunchTemplateDataDisk"},"description":"The list of data disks created with instance. See \u003cspan pulumi-lang-nodejs=\"`dataDisks`\" pulumi-lang-dotnet=\"`DataDisks`\" pulumi-lang-go=\"`dataDisks`\" pulumi-lang-python=\"`data_disks`\" pulumi-lang-yaml=\"`dataDisks`\" pulumi-lang-java=\"`dataDisks`\"\u003e`data_disks`\u003c/span\u003e below.\n"},"defaultVersionNumber":{"type":"integer","description":"The version number of the default launch template version. Default to 1. It is conflict with \u003cspan pulumi-lang-nodejs=\"`updateDefaultVersionNumber`\" pulumi-lang-dotnet=\"`UpdateDefaultVersionNumber`\" pulumi-lang-go=\"`updateDefaultVersionNumber`\" pulumi-lang-python=\"`update_default_version_number`\" pulumi-lang-yaml=\"`updateDefaultVersionNumber`\" pulumi-lang-java=\"`updateDefaultVersionNumber`\"\u003e`update_default_version_number`\u003c/span\u003e.\n"},"deploymentSetId":{"type":"string","description":"The Deployment Set Id.\n"},"description":{"type":"string","description":"Description of instance launch template version 1. It can be [2, 256] characters in length. It cannot start with \"http://\" or \"https://\". The default value is null.\n"},"enableVmOsConfig":{"type":"boolean","description":"Whether to enable the instance operating system configuration.\n"},"hostName":{"type":"string","description":"Instance host name.It cannot start or end with a period (.) or a hyphen (-) and it cannot have two or more consecutive periods (.) or hyphens (-).For Windows: The host name can be [2, 15] characters in length. It can contain A-Z, a-z, numbers, periods (.), and hyphens (-). It cannot only contain numbers. For other operating systems: The host name can be [2, 64] characters in length. It can be segments separated by periods (.). It can contain A-Z, a-z, numbers, and hyphens (-).\n"},"httpEndpoint":{"type":"string","description":"Whether to enable access to instance metadata. Valid values:\n- enabled: Enabled.\n- disabled: Disabled.\n**NOTE:** From version 1.260.0, \u003cspan pulumi-lang-nodejs=\"`httpEndpoint`\" pulumi-lang-dotnet=\"`HttpEndpoint`\" pulumi-lang-go=\"`httpEndpoint`\" pulumi-lang-python=\"`http_endpoint`\" pulumi-lang-yaml=\"`httpEndpoint`\" pulumi-lang-java=\"`httpEndpoint`\"\u003e`http_endpoint`\u003c/span\u003e can be modified.\n"},"httpPutResponseHopLimit":{"type":"integer","description":"The HTTP PUT response hop limit required for instance metadata requests. **NOTE:** From version 1.260.0, \u003cspan pulumi-lang-nodejs=\"`httpPutResponseHopLimit`\" pulumi-lang-dotnet=\"`HttpPutResponseHopLimit`\" pulumi-lang-go=\"`httpPutResponseHopLimit`\" pulumi-lang-python=\"`http_put_response_hop_limit`\" pulumi-lang-yaml=\"`httpPutResponseHopLimit`\" pulumi-lang-java=\"`httpPutResponseHopLimit`\"\u003e`http_put_response_hop_limit`\u003c/span\u003e can be modified.\n"},"httpTokens":{"type":"string","description":"Whether to use the hardened mode (IMDSv2) when accessing instance metadata. Valid values:\n- optional: Not mandatory.\n- required: Mandatory. After this value is set, the normal mode cannot access instance metadata.\n**NOTE:** From version 1.260.0, \u003cspan pulumi-lang-nodejs=\"`httpTokens`\" pulumi-lang-dotnet=\"`HttpTokens`\" pulumi-lang-go=\"`httpTokens`\" pulumi-lang-python=\"`http_tokens`\" pulumi-lang-yaml=\"`httpTokens`\" pulumi-lang-java=\"`httpTokens`\"\u003e`http_tokens`\u003c/span\u003e can be modified.\n"},"imageId":{"type":"string","description":"The Image ID.\n"},"imageOptions":{"$ref":"#/types/alicloud:ecs/EcsLaunchTemplateImageOptions:EcsLaunchTemplateImageOptions","description":"The options of images. See \u003cspan pulumi-lang-nodejs=\"`imageOptions`\" pulumi-lang-dotnet=\"`ImageOptions`\" pulumi-lang-go=\"`imageOptions`\" pulumi-lang-python=\"`image_options`\" pulumi-lang-yaml=\"`imageOptions`\" pulumi-lang-java=\"`imageOptions`\"\u003e`image_options`\u003c/span\u003e below.\n"},"imageOwnerAlias":{"type":"string","description":"Mirror source. Valid values: \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`self`\" pulumi-lang-dotnet=\"`Self`\" pulumi-lang-go=\"`self`\" pulumi-lang-python=\"`self`\" pulumi-lang-yaml=\"`self`\" pulumi-lang-java=\"`self`\"\u003e`self`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`others`\" pulumi-lang-dotnet=\"`Others`\" pulumi-lang-go=\"`others`\" pulumi-lang-python=\"`others`\" pulumi-lang-yaml=\"`others`\" pulumi-lang-java=\"`others`\"\u003e`others`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`marketplace`\" pulumi-lang-dotnet=\"`Marketplace`\" pulumi-lang-go=\"`marketplace`\" pulumi-lang-python=\"`marketplace`\" pulumi-lang-yaml=\"`marketplace`\" pulumi-lang-java=\"`marketplace`\"\u003e`marketplace`\u003c/span\u003e, `\"\"`. Default to: `\"\"`.\n"},"instanceChargeType":{"type":"string","description":"Billing methods. Valid values: `PostPaid`, `PrePaid`.\n"},"instanceName":{"type":"string","description":"The name of the instance. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a letter and cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), periods (.), commas (,), brackets ([]), and hyphens (-).\n"},"instanceType":{"type":"string","description":"Instance type. For more information, call\u003cspan pulumi-lang-nodejs=\" resourceAlicloudInstances \" pulumi-lang-dotnet=\" ResourceAlicloudInstances \" pulumi-lang-go=\" resourceAlicloudInstances \" pulumi-lang-python=\" resource_alicloud_instances \" pulumi-lang-yaml=\" resourceAlicloudInstances \" pulumi-lang-java=\" resourceAlicloudInstances \"\u003e resource_alicloud_instances \u003c/span\u003eto obtain the latest instance type list.\n"},"internetChargeType":{"type":"string","description":"Internet bandwidth billing method. Valid values: `PayByTraffic`, `PayByBandwidth`.\n"},"internetMaxBandwidthIn":{"type":"integer","description":"The maximum inbound bandwidth from the Internet network, measured in Mbit/s. Value range: [1, 200].\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Maximum outbound bandwidth from the Internet, its unit of measurement is Mbit/s. Value range: [0, 100].\n"},"ioOptimized":{"type":"string","description":"Whether it is an I/O-optimized instance or not. Valid values: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`optimized`\" pulumi-lang-dotnet=\"`Optimized`\" pulumi-lang-go=\"`optimized`\" pulumi-lang-python=\"`optimized`\" pulumi-lang-yaml=\"`optimized`\" pulumi-lang-java=\"`optimized`\"\u003e`optimized`\u003c/span\u003e.\n"},"keyPairName":{"type":"string","description":"The name of the key pair.\n- Ignore this parameter for Windows instances. It is null by default. Even if you enter this parameter, only the  Password content is used.\n- The password logon method for Linux instances is set to forbidden upon initialization.\n"},"latestVersionNumber":{"type":"integer","description":"The latest version number of the launch template.\n"},"launchTemplateName":{"type":"string","description":"The name of Launch Template.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.120.0. New field 'launch_template_name' instead.","willReplaceOnChanges":true},"networkInterfaces":{"$ref":"#/types/alicloud:ecs/EcsLaunchTemplateNetworkInterfaces:EcsLaunchTemplateNetworkInterfaces","description":"The list of network interfaces created with instance. See \u003cspan pulumi-lang-nodejs=\"`networkInterfaces`\" pulumi-lang-dotnet=\"`NetworkInterfaces`\" pulumi-lang-go=\"`networkInterfaces`\" pulumi-lang-python=\"`network_interfaces`\" pulumi-lang-yaml=\"`networkInterfaces`\" pulumi-lang-java=\"`networkInterfaces`\"\u003e`network_interfaces`\u003c/span\u003e below.\n"},"networkType":{"type":"string","description":"Network type of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n"},"passwordInherit":{"type":"boolean","description":"Whether to use the password preset by the mirror.\n"},"period":{"type":"integer","description":"The subscription period of the instance. Unit: months. This parameter takes effect and is required only when InstanceChargeType is set to PrePaid. If the DedicatedHostId parameter is specified, the value of the Period parameter must be within the subscription period of the dedicated host.\n- When the \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to `Week`, the valid values of the Period parameter are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n- When the \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to `Month`, the valid values of the Period parameter are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`48`\" pulumi-lang-dotnet=\"`48`\" pulumi-lang-go=\"`48`\" pulumi-lang-python=\"`48`\" pulumi-lang-yaml=\"`48`\" pulumi-lang-java=\"`48`\"\u003e`48`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n","willReplaceOnChanges":true},"periodUnit":{"type":"string","description":"The unit of the subscription period. Default value: `Month`. Valid values: `Week`, `Month`.\n","willReplaceOnChanges":true},"privateIpAddress":{"type":"string","description":"The private IP address of the instance.\n"},"ramRoleName":{"type":"string","description":"The RAM role name of the instance. You can use the RAM API ListRoles to query instance RAM role names.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which to assign the instance, Elastic Block Storage (EBS) device, and ENI.\n"},"securityEnhancementStrategy":{"type":"string","description":"Whether or not to activate the security enhancement feature and install network security software free of charge. Valid values: `Active`, `Deactive`.\n"},"securityGroupId":{"type":"string","description":"The security group ID.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The ID of security group N to which to assign the instance.\n"},"spotDuration":{"type":"string","description":"The protection period of the preemptible instance. Unit: hours. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e. Default to: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"spotPriceLimit":{"type":"number","description":"Sets the maximum hourly instance price. Supports up to three decimal places.\n"},"spotStrategy":{"type":"string","description":"The spot strategy for a Pay-As-You-Go instance. This parameter is valid and required only when InstanceChargeType is set to PostPaid. Valid values: `NoSpot`, `SpotAsPriceGo`, `SpotWithPriceLimit`.\n"},"systemDisk":{"$ref":"#/types/alicloud:ecs/EcsLaunchTemplateSystemDisk:EcsLaunchTemplateSystemDisk","description":"The System Disk. See \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e below.\n"},"systemDiskCategory":{"type":"string","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'system_disk_category' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskDescription":{"type":"string","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'system_disk_description' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskName":{"type":"string","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'system_disk_name' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskSize":{"type":"integer","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'system_disk_size' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to instance, block storage, and elastic network.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"templateResourceGroupId":{"type":"string","description":"The template resource group id.\n","willReplaceOnChanges":true},"templateTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the launch template.\n"},"updateDefaultVersionNumber":{"type":"boolean","description":"Whether to update the default version of the launch template to the latest version automatically. It is conflict with \u003cspan pulumi-lang-nodejs=\"`defaultVersionNumber`\" pulumi-lang-dotnet=\"`DefaultVersionNumber`\" pulumi-lang-go=\"`defaultVersionNumber`\" pulumi-lang-python=\"`default_version_number`\" pulumi-lang-yaml=\"`defaultVersionNumber`\" pulumi-lang-java=\"`defaultVersionNumber`\"\u003e`default_version_number`\u003c/span\u003e.\n"},"userData":{"type":"string","description":"The User Data.\n"},"userdata":{"type":"string","description":"It has been deprecated from version 1.120.0, and use field \u003cspan pulumi-lang-nodejs=\"`userData`\" pulumi-lang-dotnet=\"`UserData`\" pulumi-lang-go=\"`userData`\" pulumi-lang-python=\"`user_data`\" pulumi-lang-yaml=\"`userData`\" pulumi-lang-java=\"`userData`\"\u003e`user_data`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'userdata' has been deprecated from provider version 1.120.0. New field 'user_data' instead."},"versionDescription":{"type":"string","description":"The description of the launch template version. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchId":{"type":"string","description":"When creating a VPC-Connected instance, you must specify its VSwitch ID.\n"},"zoneId":{"type":"string","description":"The zone ID of the instance.\n"}},"type":"object"}},"alicloud:ecs/ecsNetworkInterface:EcsNetworkInterface":{"description":"Provides a ECS Network Interface resource.\n\nFor information about ECS Network Interface and how to use it, see [What is Network Interface](https://www.alibabacloud.com/help/en/doc-detail/58504.htm).\n\n\u003e **NOTE:** Available since v1.123.1.\n\n\u003e **NOTE** Only one of \u003cspan pulumi-lang-nodejs=\"`privateIpAddresses`\" pulumi-lang-dotnet=\"`PrivateIpAddresses`\" pulumi-lang-go=\"`privateIpAddresses`\" pulumi-lang-python=\"`private_ip_addresses`\" pulumi-lang-yaml=\"`privateIpAddresses`\" pulumi-lang-java=\"`privateIpAddresses`\"\u003e`private_ip_addresses`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-dotnet=\"`SecondaryPrivateIpAddressCount`\" pulumi-lang-go=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-python=\"`secondary_private_ip_address_count`\" pulumi-lang-yaml=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-java=\"`secondaryPrivateIpAddressCount`\"\u003e`secondary_private_ip_address_count`\u003c/span\u003e can be specified when assign private IPs. \n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/24\",\n});\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"192.168.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vpcId: defaultNetwork.id,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    securityGroupName: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultEcsNetworkInterface = new alicloud.ecs.EcsNetworkInterface(\"default\", {\n    networkInterfaceName: name,\n    vswitchId: defaultSwitch.id,\n    securityGroupIds: [defaultSecurityGroup.id],\n    description: \"Basic test\",\n    primaryIpAddress: \"192.168.0.2\",\n    tags: {\n        Created: \"TF\",\n        For: \"Test\",\n    },\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.ids?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/24\")\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"192.168.0.0/24\",\n    zone_id=default.zones[0].id,\n    vpc_id=default_network.id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    security_group_name=name,\n    vpc_id=default_network.id)\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_ecs_network_interface = alicloud.ecs.EcsNetworkInterface(\"default\",\n    network_interface_name=name,\n    vswitch_id=default_switch.id,\n    security_group_ids=[default_security_group.id],\n    description=\"Basic test\",\n    primary_ip_address=\"192.168.0.2\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Test\",\n    },\n    resource_group_id=default_get_resource_groups.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/24\",\n    });\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"192.168.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultEcsNetworkInterface = new AliCloud.Ecs.EcsNetworkInterface(\"default\", new()\n    {\n        NetworkInterfaceName = name,\n        VswitchId = defaultSwitch.Id,\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        Description = \"Basic test\",\n        PrimaryIpAddress = \"192.168.0.2\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Test\" },\n        },\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0]),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(name),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEcsNetworkInterface(ctx, \"default\", \u0026ecs.EcsNetworkInterfaceArgs{\n\t\t\tNetworkInterfaceName: pulumi.String(name),\n\t\t\tVswitchId:            defaultSwitch.ID(),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tDescription:      pulumi.String(\"Basic test\"),\n\t\t\tPrimaryIpAddress: pulumi.String(\"192.168.0.2\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"Test\"),\n\t\t\t},\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterface;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/24\")\n            .build());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"192.168.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var defaultEcsNetworkInterface = new EcsNetworkInterface(\"defaultEcsNetworkInterface\", EcsNetworkInterfaceArgs.builder()\n            .networkInterfaceName(name)\n            .vswitchId(defaultSwitch.id())\n            .securityGroupIds(defaultSecurityGroup.id())\n            .description(\"Basic test\")\n            .primaryIpAddress(\"192.168.0.2\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Test\")\n            ))\n            .resourceGroupId(defaultGetResourceGroups.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 192.168.0.0/24\n      zoneId: ${default.zones[0].id}\n      vpcId: ${defaultNetwork.id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      securityGroupName: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultEcsNetworkInterface:\n    type: alicloud:ecs:EcsNetworkInterface\n    name: default\n    properties:\n      networkInterfaceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n      description: Basic test\n      primaryIpAddress: 192.168.0.2\n      tags:\n        Created: TF\n        For: Test\n      resourceGroupId: ${defaultGetResourceGroups.ids[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Network Interface can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsNetworkInterface:EcsNetworkInterface example eni-abcd12345\n```\n\n","properties":{"deleteOnRelease":{"type":"boolean","description":"Specifies whether to release the ENI when the associated instance is released. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The description of the ENI. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"instanceType":{"type":"string","description":"The type of the ENI. Default value: `Secondary`. Valid values: `Secondary`, `Trunk`.\n"},"ipv4PrefixCount":{"type":"integer","description":"The number of IPv4 prefixes that can be automatically created by ECS. Valid values: 1 to 10. **NOTE:** You cannot specify both the \u003cspan pulumi-lang-nodejs=\"`ipv4Prefixes`\" pulumi-lang-dotnet=\"`Ipv4Prefixes`\" pulumi-lang-go=\"`ipv4Prefixes`\" pulumi-lang-python=\"`ipv4_prefixes`\" pulumi-lang-yaml=\"`ipv4Prefixes`\" pulumi-lang-java=\"`ipv4Prefixes`\"\u003e`ipv4_prefixes`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipv4PrefixCount`\" pulumi-lang-dotnet=\"`Ipv4PrefixCount`\" pulumi-lang-go=\"`ipv4PrefixCount`\" pulumi-lang-python=\"`ipv4_prefix_count`\" pulumi-lang-yaml=\"`ipv4PrefixCount`\" pulumi-lang-java=\"`ipv4PrefixCount`\"\u003e`ipv4_prefix_count`\u003c/span\u003e parameters.\n"},"ipv4Prefixes":{"type":"array","items":{"type":"string"},"description":"A list of IPv4 prefixes to be assigned to the ENI. Support up to 10.\n"},"ipv6AddressCount":{"type":"integer","description":"The number of IPv6 addresses to randomly generate for the primary ENI. Valid values: 1 to 10. **NOTE:** You cannot specify both the \u003cspan pulumi-lang-nodejs=\"`ipv6Addresses`\" pulumi-lang-dotnet=\"`Ipv6Addresses`\" pulumi-lang-go=\"`ipv6Addresses`\" pulumi-lang-python=\"`ipv6_addresses`\" pulumi-lang-yaml=\"`ipv6Addresses`\" pulumi-lang-java=\"`ipv6Addresses`\"\u003e`ipv6_addresses`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipv6AddressCount`\" pulumi-lang-dotnet=\"`Ipv6AddressCount`\" pulumi-lang-go=\"`ipv6AddressCount`\" pulumi-lang-python=\"`ipv6_address_count`\" pulumi-lang-yaml=\"`ipv6AddressCount`\" pulumi-lang-java=\"`ipv6AddressCount`\"\u003e`ipv6_address_count`\u003c/span\u003e parameters.\n"},"ipv6Addresses":{"type":"array","items":{"type":"string"},"description":"A list of IPv6 address to be assigned to the primary ENI. Support up to 10.\n"},"mac":{"type":"string","description":"The MAC address of the ENI.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`networkInterfaceName`\" pulumi-lang-dotnet=\"`NetworkInterfaceName`\" pulumi-lang-go=\"`networkInterfaceName`\" pulumi-lang-python=\"`network_interface_name`\" pulumi-lang-yaml=\"`networkInterfaceName`\" pulumi-lang-java=\"`networkInterfaceName`\"\u003e`network_interface_name`\u003c/span\u003e instead\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'network_interface_name' instead"},"networkInterfaceName":{"type":"string","description":"The name of the ENI. The name must be 2 to 128 characters in length, and can contain letters, digits, colons (:), underscores (_), and hyphens (-). It must start with a letter and cannot start with http:// or https://.\n"},"networkInterfaceTrafficMode":{"type":"string","description":"The communication mode of the ENI. Default value: `Standard`. Valid values: `Standard`, `HighPerformance`.\n"},"primaryIpAddress":{"type":"string","description":"The primary private IP address of the ENI. The specified IP address must be available within the CIDR block of the VSwitch. If this parameter is not specified, an available IP address is assigned from the VSwitch CIDR block at random.\n"},"privateIp":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`privateIp`\" pulumi-lang-dotnet=\"`PrivateIp`\" pulumi-lang-go=\"`privateIp`\" pulumi-lang-python=\"`private_ip`\" pulumi-lang-yaml=\"`privateIp`\" pulumi-lang-java=\"`privateIp`\"\u003e`private_ip`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`primaryIpAddress`\" pulumi-lang-dotnet=\"`PrimaryIpAddress`\" pulumi-lang-go=\"`primaryIpAddress`\" pulumi-lang-python=\"`primary_ip_address`\" pulumi-lang-yaml=\"`primaryIpAddress`\" pulumi-lang-java=\"`primaryIpAddress`\"\u003e`primary_ip_address`\u003c/span\u003e instead\n","deprecationMessage":"Field 'private_ip' has been deprecated from provider version 1.123.1. New field 'primary_ip_address' instead"},"privateIpAddresses":{"type":"array","items":{"type":"string"},"description":"Specifies secondary private IP address N of the ENI. This IP address must be an available IP address within the CIDR block of the VSwitch to which the ENI belongs.\n"},"privateIps":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`privateIps`\" pulumi-lang-dotnet=\"`PrivateIps`\" pulumi-lang-go=\"`privateIps`\" pulumi-lang-python=\"`private_ips`\" pulumi-lang-yaml=\"`privateIps`\" pulumi-lang-java=\"`privateIps`\"\u003e`private_ips`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`privateIpAddresses`\" pulumi-lang-dotnet=\"`PrivateIpAddresses`\" pulumi-lang-go=\"`privateIpAddresses`\" pulumi-lang-python=\"`private_ip_addresses`\" pulumi-lang-yaml=\"`privateIpAddresses`\" pulumi-lang-java=\"`privateIpAddresses`\"\u003e`private_ip_addresses`\u003c/span\u003e instead\n","deprecationMessage":"Field 'private_ips' has been deprecated from provider version 1.123.1. New field 'private_ip_addresses' instead"},"privateIpsCount":{"type":"integer","description":"Field \u003cspan pulumi-lang-nodejs=\"`privateIpsCount`\" pulumi-lang-dotnet=\"`PrivateIpsCount`\" pulumi-lang-go=\"`privateIpsCount`\" pulumi-lang-python=\"`private_ips_count`\" pulumi-lang-yaml=\"`privateIpsCount`\" pulumi-lang-java=\"`privateIpsCount`\"\u003e`private_ips_count`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-dotnet=\"`SecondaryPrivateIpAddressCount`\" pulumi-lang-go=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-python=\"`secondary_private_ip_address_count`\" pulumi-lang-yaml=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-java=\"`secondaryPrivateIpAddressCount`\"\u003e`secondary_private_ip_address_count`\u003c/span\u003e instead\n","deprecationMessage":"Field 'private_ips_count' has been deprecated from provider version 1.123.1. New field 'secondary_private_ip_address_count' instead"},"queueNumber":{"type":"integer","description":"The queue number of the ENI.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"secondaryPrivateIpAddressCount":{"type":"integer","description":"The number of private IP addresses that can be automatically created by ECS.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The ID of security group N. The security groups and the ENI must belong to the same VPC. The valid values of N are based on the maximum number of security groups to which an ENI can be added. **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`securityGroups`\" pulumi-lang-dotnet=\"`SecurityGroups`\" pulumi-lang-go=\"`securityGroups`\" pulumi-lang-python=\"`security_groups`\" pulumi-lang-yaml=\"`securityGroups`\" pulumi-lang-java=\"`securityGroups`\"\u003e`security_groups`\u003c/span\u003e must be set with valid security group IDs.\n"},"securityGroups":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`securityGroups`\" pulumi-lang-dotnet=\"`SecurityGroups`\" pulumi-lang-go=\"`securityGroups`\" pulumi-lang-python=\"`security_groups`\" pulumi-lang-yaml=\"`securityGroups`\" pulumi-lang-java=\"`securityGroups`\"\u003e`security_groups`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e instead. **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`securityGroups`\" pulumi-lang-dotnet=\"`SecurityGroups`\" pulumi-lang-go=\"`securityGroups`\" pulumi-lang-python=\"`security_groups`\" pulumi-lang-yaml=\"`securityGroups`\" pulumi-lang-java=\"`securityGroups`\"\u003e`security_groups`\u003c/span\u003e must be set with valid security group IDs.\n","deprecationMessage":"Field 'security_groups' has been deprecated from provider version 1.123.1. New field 'security_group_ids' instead"},"sourceDestCheck":{"type":"boolean","description":"Indicates whether the source and destination IP address check feature is enabled. To improve network security, enable this feature. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the ENI.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"The ID of the VSwitch in the specified VPC. The private IP addresses assigned to the ENI must be available IP addresses within the CIDR block of the VSwitch.\n"}},"required":["deleteOnRelease","instanceType","ipv4PrefixCount","ipv4Prefixes","ipv6AddressCount","ipv6Addresses","mac","name","networkInterfaceName","networkInterfaceTrafficMode","primaryIpAddress","privateIp","privateIpAddresses","privateIps","privateIpsCount","queueNumber","secondaryPrivateIpAddressCount","securityGroupIds","securityGroups","status","vswitchId"],"inputProperties":{"deleteOnRelease":{"type":"boolean","description":"Specifies whether to release the ENI when the associated instance is released. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The description of the ENI. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"instanceType":{"type":"string","description":"The type of the ENI. Default value: `Secondary`. Valid values: `Secondary`, `Trunk`.\n","willReplaceOnChanges":true},"ipv4PrefixCount":{"type":"integer","description":"The number of IPv4 prefixes that can be automatically created by ECS. Valid values: 1 to 10. **NOTE:** You cannot specify both the \u003cspan pulumi-lang-nodejs=\"`ipv4Prefixes`\" pulumi-lang-dotnet=\"`Ipv4Prefixes`\" pulumi-lang-go=\"`ipv4Prefixes`\" pulumi-lang-python=\"`ipv4_prefixes`\" pulumi-lang-yaml=\"`ipv4Prefixes`\" pulumi-lang-java=\"`ipv4Prefixes`\"\u003e`ipv4_prefixes`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipv4PrefixCount`\" pulumi-lang-dotnet=\"`Ipv4PrefixCount`\" pulumi-lang-go=\"`ipv4PrefixCount`\" pulumi-lang-python=\"`ipv4_prefix_count`\" pulumi-lang-yaml=\"`ipv4PrefixCount`\" pulumi-lang-java=\"`ipv4PrefixCount`\"\u003e`ipv4_prefix_count`\u003c/span\u003e parameters.\n"},"ipv4Prefixes":{"type":"array","items":{"type":"string"},"description":"A list of IPv4 prefixes to be assigned to the ENI. Support up to 10.\n"},"ipv6AddressCount":{"type":"integer","description":"The number of IPv6 addresses to randomly generate for the primary ENI. Valid values: 1 to 10. **NOTE:** You cannot specify both the \u003cspan pulumi-lang-nodejs=\"`ipv6Addresses`\" pulumi-lang-dotnet=\"`Ipv6Addresses`\" pulumi-lang-go=\"`ipv6Addresses`\" pulumi-lang-python=\"`ipv6_addresses`\" pulumi-lang-yaml=\"`ipv6Addresses`\" pulumi-lang-java=\"`ipv6Addresses`\"\u003e`ipv6_addresses`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipv6AddressCount`\" pulumi-lang-dotnet=\"`Ipv6AddressCount`\" pulumi-lang-go=\"`ipv6AddressCount`\" pulumi-lang-python=\"`ipv6_address_count`\" pulumi-lang-yaml=\"`ipv6AddressCount`\" pulumi-lang-java=\"`ipv6AddressCount`\"\u003e`ipv6_address_count`\u003c/span\u003e parameters.\n"},"ipv6Addresses":{"type":"array","items":{"type":"string"},"description":"A list of IPv6 address to be assigned to the primary ENI. Support up to 10.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`networkInterfaceName`\" pulumi-lang-dotnet=\"`NetworkInterfaceName`\" pulumi-lang-go=\"`networkInterfaceName`\" pulumi-lang-python=\"`network_interface_name`\" pulumi-lang-yaml=\"`networkInterfaceName`\" pulumi-lang-java=\"`networkInterfaceName`\"\u003e`network_interface_name`\u003c/span\u003e instead\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'network_interface_name' instead"},"networkInterfaceName":{"type":"string","description":"The name of the ENI. The name must be 2 to 128 characters in length, and can contain letters, digits, colons (:), underscores (_), and hyphens (-). It must start with a letter and cannot start with http:// or https://.\n"},"networkInterfaceTrafficMode":{"type":"string","description":"The communication mode of the ENI. Default value: `Standard`. Valid values: `Standard`, `HighPerformance`.\n","willReplaceOnChanges":true},"primaryIpAddress":{"type":"string","description":"The primary private IP address of the ENI. The specified IP address must be available within the CIDR block of the VSwitch. If this parameter is not specified, an available IP address is assigned from the VSwitch CIDR block at random.\n","willReplaceOnChanges":true},"privateIp":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`privateIp`\" pulumi-lang-dotnet=\"`PrivateIp`\" pulumi-lang-go=\"`privateIp`\" pulumi-lang-python=\"`private_ip`\" pulumi-lang-yaml=\"`privateIp`\" pulumi-lang-java=\"`privateIp`\"\u003e`private_ip`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`primaryIpAddress`\" pulumi-lang-dotnet=\"`PrimaryIpAddress`\" pulumi-lang-go=\"`primaryIpAddress`\" pulumi-lang-python=\"`primary_ip_address`\" pulumi-lang-yaml=\"`primaryIpAddress`\" pulumi-lang-java=\"`primaryIpAddress`\"\u003e`primary_ip_address`\u003c/span\u003e instead\n","deprecationMessage":"Field 'private_ip' has been deprecated from provider version 1.123.1. New field 'primary_ip_address' instead","willReplaceOnChanges":true},"privateIpAddresses":{"type":"array","items":{"type":"string"},"description":"Specifies secondary private IP address N of the ENI. This IP address must be an available IP address within the CIDR block of the VSwitch to which the ENI belongs.\n"},"privateIps":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`privateIps`\" pulumi-lang-dotnet=\"`PrivateIps`\" pulumi-lang-go=\"`privateIps`\" pulumi-lang-python=\"`private_ips`\" pulumi-lang-yaml=\"`privateIps`\" pulumi-lang-java=\"`privateIps`\"\u003e`private_ips`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`privateIpAddresses`\" pulumi-lang-dotnet=\"`PrivateIpAddresses`\" pulumi-lang-go=\"`privateIpAddresses`\" pulumi-lang-python=\"`private_ip_addresses`\" pulumi-lang-yaml=\"`privateIpAddresses`\" pulumi-lang-java=\"`privateIpAddresses`\"\u003e`private_ip_addresses`\u003c/span\u003e instead\n","deprecationMessage":"Field 'private_ips' has been deprecated from provider version 1.123.1. New field 'private_ip_addresses' instead"},"privateIpsCount":{"type":"integer","description":"Field \u003cspan pulumi-lang-nodejs=\"`privateIpsCount`\" pulumi-lang-dotnet=\"`PrivateIpsCount`\" pulumi-lang-go=\"`privateIpsCount`\" pulumi-lang-python=\"`private_ips_count`\" pulumi-lang-yaml=\"`privateIpsCount`\" pulumi-lang-java=\"`privateIpsCount`\"\u003e`private_ips_count`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-dotnet=\"`SecondaryPrivateIpAddressCount`\" pulumi-lang-go=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-python=\"`secondary_private_ip_address_count`\" pulumi-lang-yaml=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-java=\"`secondaryPrivateIpAddressCount`\"\u003e`secondary_private_ip_address_count`\u003c/span\u003e instead\n","deprecationMessage":"Field 'private_ips_count' has been deprecated from provider version 1.123.1. New field 'secondary_private_ip_address_count' instead"},"queueNumber":{"type":"integer","description":"The queue number of the ENI.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n","willReplaceOnChanges":true},"secondaryPrivateIpAddressCount":{"type":"integer","description":"The number of private IP addresses that can be automatically created by ECS.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The ID of security group N. The security groups and the ENI must belong to the same VPC. The valid values of N are based on the maximum number of security groups to which an ENI can be added. **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`securityGroups`\" pulumi-lang-dotnet=\"`SecurityGroups`\" pulumi-lang-go=\"`securityGroups`\" pulumi-lang-python=\"`security_groups`\" pulumi-lang-yaml=\"`securityGroups`\" pulumi-lang-java=\"`securityGroups`\"\u003e`security_groups`\u003c/span\u003e must be set with valid security group IDs.\n"},"securityGroups":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`securityGroups`\" pulumi-lang-dotnet=\"`SecurityGroups`\" pulumi-lang-go=\"`securityGroups`\" pulumi-lang-python=\"`security_groups`\" pulumi-lang-yaml=\"`securityGroups`\" pulumi-lang-java=\"`securityGroups`\"\u003e`security_groups`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e instead. **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`securityGroups`\" pulumi-lang-dotnet=\"`SecurityGroups`\" pulumi-lang-go=\"`securityGroups`\" pulumi-lang-python=\"`security_groups`\" pulumi-lang-yaml=\"`securityGroups`\" pulumi-lang-java=\"`securityGroups`\"\u003e`security_groups`\u003c/span\u003e must be set with valid security group IDs.\n","deprecationMessage":"Field 'security_groups' has been deprecated from provider version 1.123.1. New field 'security_group_ids' instead"},"sourceDestCheck":{"type":"boolean","description":"Indicates whether the source and destination IP address check feature is enabled. To improve network security, enable this feature. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"The ID of the VSwitch in the specified VPC. The private IP addresses assigned to the ENI must be available IP addresses within the CIDR block of the VSwitch.\n","willReplaceOnChanges":true}},"requiredInputs":["vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsNetworkInterface resources.\n","properties":{"deleteOnRelease":{"type":"boolean","description":"Specifies whether to release the ENI when the associated instance is released. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The description of the ENI. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"instanceType":{"type":"string","description":"The type of the ENI. Default value: `Secondary`. Valid values: `Secondary`, `Trunk`.\n","willReplaceOnChanges":true},"ipv4PrefixCount":{"type":"integer","description":"The number of IPv4 prefixes that can be automatically created by ECS. Valid values: 1 to 10. **NOTE:** You cannot specify both the \u003cspan pulumi-lang-nodejs=\"`ipv4Prefixes`\" pulumi-lang-dotnet=\"`Ipv4Prefixes`\" pulumi-lang-go=\"`ipv4Prefixes`\" pulumi-lang-python=\"`ipv4_prefixes`\" pulumi-lang-yaml=\"`ipv4Prefixes`\" pulumi-lang-java=\"`ipv4Prefixes`\"\u003e`ipv4_prefixes`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipv4PrefixCount`\" pulumi-lang-dotnet=\"`Ipv4PrefixCount`\" pulumi-lang-go=\"`ipv4PrefixCount`\" pulumi-lang-python=\"`ipv4_prefix_count`\" pulumi-lang-yaml=\"`ipv4PrefixCount`\" pulumi-lang-java=\"`ipv4PrefixCount`\"\u003e`ipv4_prefix_count`\u003c/span\u003e parameters.\n"},"ipv4Prefixes":{"type":"array","items":{"type":"string"},"description":"A list of IPv4 prefixes to be assigned to the ENI. Support up to 10.\n"},"ipv6AddressCount":{"type":"integer","description":"The number of IPv6 addresses to randomly generate for the primary ENI. Valid values: 1 to 10. **NOTE:** You cannot specify both the \u003cspan pulumi-lang-nodejs=\"`ipv6Addresses`\" pulumi-lang-dotnet=\"`Ipv6Addresses`\" pulumi-lang-go=\"`ipv6Addresses`\" pulumi-lang-python=\"`ipv6_addresses`\" pulumi-lang-yaml=\"`ipv6Addresses`\" pulumi-lang-java=\"`ipv6Addresses`\"\u003e`ipv6_addresses`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipv6AddressCount`\" pulumi-lang-dotnet=\"`Ipv6AddressCount`\" pulumi-lang-go=\"`ipv6AddressCount`\" pulumi-lang-python=\"`ipv6_address_count`\" pulumi-lang-yaml=\"`ipv6AddressCount`\" pulumi-lang-java=\"`ipv6AddressCount`\"\u003e`ipv6_address_count`\u003c/span\u003e parameters.\n"},"ipv6Addresses":{"type":"array","items":{"type":"string"},"description":"A list of IPv6 address to be assigned to the primary ENI. Support up to 10.\n"},"mac":{"type":"string","description":"The MAC address of the ENI.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`networkInterfaceName`\" pulumi-lang-dotnet=\"`NetworkInterfaceName`\" pulumi-lang-go=\"`networkInterfaceName`\" pulumi-lang-python=\"`network_interface_name`\" pulumi-lang-yaml=\"`networkInterfaceName`\" pulumi-lang-java=\"`networkInterfaceName`\"\u003e`network_interface_name`\u003c/span\u003e instead\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'network_interface_name' instead"},"networkInterfaceName":{"type":"string","description":"The name of the ENI. The name must be 2 to 128 characters in length, and can contain letters, digits, colons (:), underscores (_), and hyphens (-). It must start with a letter and cannot start with http:// or https://.\n"},"networkInterfaceTrafficMode":{"type":"string","description":"The communication mode of the ENI. Default value: `Standard`. Valid values: `Standard`, `HighPerformance`.\n","willReplaceOnChanges":true},"primaryIpAddress":{"type":"string","description":"The primary private IP address of the ENI. The specified IP address must be available within the CIDR block of the VSwitch. If this parameter is not specified, an available IP address is assigned from the VSwitch CIDR block at random.\n","willReplaceOnChanges":true},"privateIp":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`privateIp`\" pulumi-lang-dotnet=\"`PrivateIp`\" pulumi-lang-go=\"`privateIp`\" pulumi-lang-python=\"`private_ip`\" pulumi-lang-yaml=\"`privateIp`\" pulumi-lang-java=\"`privateIp`\"\u003e`private_ip`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`primaryIpAddress`\" pulumi-lang-dotnet=\"`PrimaryIpAddress`\" pulumi-lang-go=\"`primaryIpAddress`\" pulumi-lang-python=\"`primary_ip_address`\" pulumi-lang-yaml=\"`primaryIpAddress`\" pulumi-lang-java=\"`primaryIpAddress`\"\u003e`primary_ip_address`\u003c/span\u003e instead\n","deprecationMessage":"Field 'private_ip' has been deprecated from provider version 1.123.1. New field 'primary_ip_address' instead","willReplaceOnChanges":true},"privateIpAddresses":{"type":"array","items":{"type":"string"},"description":"Specifies secondary private IP address N of the ENI. This IP address must be an available IP address within the CIDR block of the VSwitch to which the ENI belongs.\n"},"privateIps":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`privateIps`\" pulumi-lang-dotnet=\"`PrivateIps`\" pulumi-lang-go=\"`privateIps`\" pulumi-lang-python=\"`private_ips`\" pulumi-lang-yaml=\"`privateIps`\" pulumi-lang-java=\"`privateIps`\"\u003e`private_ips`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`privateIpAddresses`\" pulumi-lang-dotnet=\"`PrivateIpAddresses`\" pulumi-lang-go=\"`privateIpAddresses`\" pulumi-lang-python=\"`private_ip_addresses`\" pulumi-lang-yaml=\"`privateIpAddresses`\" pulumi-lang-java=\"`privateIpAddresses`\"\u003e`private_ip_addresses`\u003c/span\u003e instead\n","deprecationMessage":"Field 'private_ips' has been deprecated from provider version 1.123.1. New field 'private_ip_addresses' instead"},"privateIpsCount":{"type":"integer","description":"Field \u003cspan pulumi-lang-nodejs=\"`privateIpsCount`\" pulumi-lang-dotnet=\"`PrivateIpsCount`\" pulumi-lang-go=\"`privateIpsCount`\" pulumi-lang-python=\"`private_ips_count`\" pulumi-lang-yaml=\"`privateIpsCount`\" pulumi-lang-java=\"`privateIpsCount`\"\u003e`private_ips_count`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-dotnet=\"`SecondaryPrivateIpAddressCount`\" pulumi-lang-go=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-python=\"`secondary_private_ip_address_count`\" pulumi-lang-yaml=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-java=\"`secondaryPrivateIpAddressCount`\"\u003e`secondary_private_ip_address_count`\u003c/span\u003e instead\n","deprecationMessage":"Field 'private_ips_count' has been deprecated from provider version 1.123.1. New field 'secondary_private_ip_address_count' instead"},"queueNumber":{"type":"integer","description":"The queue number of the ENI.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n","willReplaceOnChanges":true},"secondaryPrivateIpAddressCount":{"type":"integer","description":"The number of private IP addresses that can be automatically created by ECS.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The ID of security group N. The security groups and the ENI must belong to the same VPC. The valid values of N are based on the maximum number of security groups to which an ENI can be added. **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`securityGroups`\" pulumi-lang-dotnet=\"`SecurityGroups`\" pulumi-lang-go=\"`securityGroups`\" pulumi-lang-python=\"`security_groups`\" pulumi-lang-yaml=\"`securityGroups`\" pulumi-lang-java=\"`securityGroups`\"\u003e`security_groups`\u003c/span\u003e must be set with valid security group IDs.\n"},"securityGroups":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`securityGroups`\" pulumi-lang-dotnet=\"`SecurityGroups`\" pulumi-lang-go=\"`securityGroups`\" pulumi-lang-python=\"`security_groups`\" pulumi-lang-yaml=\"`securityGroups`\" pulumi-lang-java=\"`securityGroups`\"\u003e`security_groups`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e instead. **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`securityGroups`\" pulumi-lang-dotnet=\"`SecurityGroups`\" pulumi-lang-go=\"`securityGroups`\" pulumi-lang-python=\"`security_groups`\" pulumi-lang-yaml=\"`securityGroups`\" pulumi-lang-java=\"`securityGroups`\"\u003e`security_groups`\u003c/span\u003e must be set with valid security group IDs.\n","deprecationMessage":"Field 'security_groups' has been deprecated from provider version 1.123.1. New field 'security_group_ids' instead"},"sourceDestCheck":{"type":"boolean","description":"Indicates whether the source and destination IP address check feature is enabled. To improve network security, enable this feature. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the ENI.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"The ID of the VSwitch in the specified VPC. The private IP addresses assigned to the ENI must be available IP addresses within the CIDR block of the VSwitch.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/ecsNetworkInterfaceAttachment:EcsNetworkInterfaceAttachment":{"description":"Provides a ECS Network Interface Attachment resource.\n\nFor information about ECS Network Interface Attachment and how to use it, see [What is Network Interface Attachment](https://www.alibabacloud.com/help/en/doc-detail/58515.htm).\n\n\u003e **NOTE:** Available since v1.123.1.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    eniAmount: 3,\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"192.168.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vpcId: defaultNetwork.id,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    description: \"New security group\",\n    vpcId: defaultNetwork.id,\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceName: name,\n    hostName: \"tf-example\",\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup.id],\n    vswitchId: defaultSwitch.id,\n});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultEcsNetworkInterface = new alicloud.ecs.EcsNetworkInterface(\"default\", {\n    networkInterfaceName: name,\n    vswitchId: defaultSwitch.id,\n    securityGroupIds: [defaultSecurityGroup.id],\n    description: \"Basic example\",\n    primaryIpAddress: \"192.168.0.2\",\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.ids?.[0]),\n});\nconst defaultEcsNetworkInterfaceAttachment = new alicloud.ecs.EcsNetworkInterfaceAttachment(\"default\", {\n    networkInterfaceId: defaultEcsNetworkInterface.id,\n    instanceId: defaultInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"Instance\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    eni_amount=3)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"192.168.0.0/24\",\n    zone_id=default.zones[0].id,\n    vpc_id=default_network.id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    description=\"New security group\",\n    vpc_id=default_network.id)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    availability_zone=default.zones[0].id,\n    instance_name=name,\n    host_name=\"tf-example\",\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[default_security_group.id],\n    vswitch_id=default_switch.id)\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_ecs_network_interface = alicloud.ecs.EcsNetworkInterface(\"default\",\n    network_interface_name=name,\n    vswitch_id=default_switch.id,\n    security_group_ids=[default_security_group.id],\n    description=\"Basic example\",\n    primary_ip_address=\"192.168.0.2\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    resource_group_id=default_get_resource_groups.ids[0])\ndefault_ecs_network_interface_attachment = alicloud.ecs.EcsNetworkInterfaceAttachment(\"default\",\n    network_interface_id=default_ecs_network_interface.id,\n    instance_id=default_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        EniAmount = 3,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"192.168.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        Description = \"New security group\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceName = name,\n        HostName = \"tf-example\",\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultEcsNetworkInterface = new AliCloud.Ecs.EcsNetworkInterface(\"default\", new()\n    {\n        NetworkInterfaceName = name,\n        VswitchId = defaultSwitch.Id,\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        Description = \"Basic example\",\n        PrimaryIpAddress = \"192.168.0.2\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0]),\n    });\n\n    var defaultEcsNetworkInterfaceAttachment = new AliCloud.Ecs.EcsNetworkInterfaceAttachment(\"default\", new()\n    {\n        NetworkInterfaceId = defaultEcsNetworkInterface.Id,\n        InstanceId = defaultInstance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tEniAmount:        pulumi.IntRef(3),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tDescription: pulumi.String(\"New security group\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(_default.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(name),\n\t\t\tHostName:         pulumi.String(\"tf-example\"),\n\t\t\tImageId:          pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcsNetworkInterface, err := ecs.NewEcsNetworkInterface(ctx, \"default\", \u0026ecs.EcsNetworkInterfaceArgs{\n\t\t\tNetworkInterfaceName: pulumi.String(name),\n\t\t\tVswitchId:            defaultSwitch.ID(),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tDescription:      pulumi.String(\"Basic example\"),\n\t\t\tPrimaryIpAddress: pulumi.String(\"192.168.0.2\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEcsNetworkInterfaceAttachment(ctx, \"default\", \u0026ecs.EcsNetworkInterfaceAttachmentArgs{\n\t\t\tNetworkInterfaceId: defaultEcsNetworkInterface.ID(),\n\t\t\tInstanceId:         defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterface;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfaceArgs;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfaceAttachment;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfaceAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .eniAmount(3)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"192.168.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .description(\"New security group\")\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .instanceName(name)\n            .hostName(\"tf-example\")\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.id())\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var defaultEcsNetworkInterface = new EcsNetworkInterface(\"defaultEcsNetworkInterface\", EcsNetworkInterfaceArgs.builder()\n            .networkInterfaceName(name)\n            .vswitchId(defaultSwitch.id())\n            .securityGroupIds(defaultSecurityGroup.id())\n            .description(\"Basic example\")\n            .primaryIpAddress(\"192.168.0.2\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .resourceGroupId(defaultGetResourceGroups.ids()[0])\n            .build());\n\n        var defaultEcsNetworkInterfaceAttachment = new EcsNetworkInterfaceAttachment(\"defaultEcsNetworkInterfaceAttachment\", EcsNetworkInterfaceAttachmentArgs.builder()\n            .networkInterfaceId(defaultEcsNetworkInterface.id())\n            .instanceId(defaultInstance.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 192.168.0.0/24\n      zoneId: ${default.zones[0].id}\n      vpcId: ${defaultNetwork.id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      description: New security group\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:ecs:Instance\n    name: default\n    properties:\n      availabilityZone: ${default.zones[0].id}\n      instanceName: ${name}\n      hostName: tf-example\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      securityGroups:\n        - ${defaultSecurityGroup.id}\n      vswitchId: ${defaultSwitch.id}\n  defaultEcsNetworkInterface:\n    type: alicloud:ecs:EcsNetworkInterface\n    name: default\n    properties:\n      networkInterfaceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n      description: Basic example\n      primaryIpAddress: 192.168.0.2\n      tags:\n        Created: TF\n        For: example\n      resourceGroupId: ${defaultGetResourceGroups.ids[0]}\n  defaultEcsNetworkInterfaceAttachment:\n    type: alicloud:ecs:EcsNetworkInterfaceAttachment\n    name: default\n    properties:\n      networkInterfaceId: ${defaultEcsNetworkInterface.id}\n      instanceId: ${defaultInstance.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        eniAmount: 3\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Network Interface Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsNetworkInterfaceAttachment:EcsNetworkInterfaceAttachment example \u003cnetwork_interface_id\u003e:\u003cinstance_id\u003e\n```\n\n","properties":{"instanceId":{"type":"string","description":"The ID of the ECS instance.\n"},"networkCardIndex":{"type":"integer","description":"The index of the network card.\n"},"networkInterfaceId":{"type":"string","description":"The ID of the network interface.\n"},"trunkNetworkInstanceId":{"type":"string","description":"The ID of the trunk network instance.\n"},"waitForNetworkConfigurationReady":{"type":"boolean","description":"The wait for network configuration ready.\n"}},"required":["instanceId","networkInterfaceId"],"inputProperties":{"instanceId":{"type":"string","description":"The ID of the ECS instance.\n","willReplaceOnChanges":true},"networkCardIndex":{"type":"integer","description":"The index of the network card.\n","willReplaceOnChanges":true},"networkInterfaceId":{"type":"string","description":"The ID of the network interface.\n","willReplaceOnChanges":true},"trunkNetworkInstanceId":{"type":"string","description":"The ID of the trunk network instance.\n","willReplaceOnChanges":true},"waitForNetworkConfigurationReady":{"type":"boolean","description":"The wait for network configuration ready.\n"}},"requiredInputs":["instanceId","networkInterfaceId"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsNetworkInterfaceAttachment resources.\n","properties":{"instanceId":{"type":"string","description":"The ID of the ECS instance.\n","willReplaceOnChanges":true},"networkCardIndex":{"type":"integer","description":"The index of the network card.\n","willReplaceOnChanges":true},"networkInterfaceId":{"type":"string","description":"The ID of the network interface.\n","willReplaceOnChanges":true},"trunkNetworkInstanceId":{"type":"string","description":"The ID of the trunk network instance.\n","willReplaceOnChanges":true},"waitForNetworkConfigurationReady":{"type":"boolean","description":"The wait for network configuration ready.\n"}},"type":"object"}},"alicloud:ecs/ecsNetworkInterfacePermission:EcsNetworkInterfacePermission":{"description":"Provides a ECS Network Interface Permission resource.\n\nFor information about ECS Network Interface Permission and how to use it, see [What is Network Interface Permission](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/elastic-network-interfaces-overview).\n\n\u003e **NOTE:** Available since v1.166.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetAccount = alicloud.getAccount({});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: \"terraform-example\",\n    vpcId: defaultNetwork.id,\n});\nconst defaultEcsNetworkInterface = new alicloud.ecs.EcsNetworkInterface(\"default\", {\n    networkInterfaceName: \"terraform-example\",\n    vswitchId: defaultSwitch.id,\n    securityGroupIds: [defaultSecurityGroup.id],\n    description: \"terraform-example\",\n    primaryIpAddress: defaultSwitch.cidrBlock.apply(cidrBlock =\u003e std.cidrhostOutput({\n        input: cidrBlock,\n        host: 100,\n    })).apply(invoke =\u003e invoke.result),\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.ids?.[0]),\n});\nconst example = new alicloud.ecs.EcsNetworkInterfacePermission(\"example\", {\n    accountId: defaultGetAccount.then(defaultGetAccount =\u003e defaultGetAccount.id),\n    networkInterfaceId: defaultEcsNetworkInterface.id,\n    permission: \"InstanceAttach\",\n    force: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_account = alicloud.get_account()\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=\"terraform-example\",\n    vpc_id=default_network.id)\ndefault_ecs_network_interface = alicloud.ecs.EcsNetworkInterface(\"default\",\n    network_interface_name=\"terraform-example\",\n    vswitch_id=default_switch.id,\n    security_group_ids=[default_security_group.id],\n    description=\"terraform-example\",\n    primary_ip_address=default_switch.cidr_block.apply(lambda cidr_block: std.cidrhost_output(input=cidr_block,\n        host=100)).apply(lambda invoke: invoke.result),\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    resource_group_id=default_get_resource_groups.ids[0])\nexample = alicloud.ecs.EcsNetworkInterfacePermission(\"example\",\n    account_id=default_get_account.id,\n    network_interface_id=default_ecs_network_interface.id,\n    permission=\"InstanceAttach\",\n    force=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetAccount = AliCloud.GetAccount.Invoke();\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = \"terraform-example\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultEcsNetworkInterface = new AliCloud.Ecs.EcsNetworkInterface(\"default\", new()\n    {\n        NetworkInterfaceName = \"terraform-example\",\n        VswitchId = defaultSwitch.Id,\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        Description = \"terraform-example\",\n        PrimaryIpAddress = defaultSwitch.CidrBlock.Apply(cidrBlock =\u003e Std.Cidrhost.Invoke(new()\n        {\n            Input = cidrBlock,\n            Host = 100,\n        })).Apply(invoke =\u003e invoke.Result),\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0]),\n    });\n\n    var example = new AliCloud.Ecs.EcsNetworkInterfacePermission(\"example\", new()\n    {\n        AccountId = defaultGetAccount.Apply(getAccountResult =\u003e getAccountResult.Id),\n        NetworkInterfaceId = defaultEcsNetworkInterface.Id,\n        Permission = \"InstanceAttach\",\n        Force = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetAccount, err := alicloud.GetAccount(ctx, map[string]interface{}{\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(\"terraform-example\"),\nCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.String(\"terraform-example\"),\nCidrBlock: pulumi.String(\"172.17.3.0/24\"),\nVpcId: defaultNetwork.ID(),\nZoneId: pulumi.String(_default.Zones[0].Id),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(\"terraform-example\"),\nVpcId: defaultNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrhost, err := std.Cidrhost(ctx, \u0026std.CidrhostArgs{\nInput: cidrBlock,\nHost: 100,\n}, nil)\nif err != nil {\nreturn err\n}\ndefaultEcsNetworkInterface, err := ecs.NewEcsNetworkInterface(ctx, \"default\", \u0026ecs.EcsNetworkInterfaceArgs{\nNetworkInterfaceName: pulumi.String(\"terraform-example\"),\nVswitchId: defaultSwitch.ID(),\nSecurityGroupIds: pulumi.StringArray{\ndefaultSecurityGroup.ID(),\n},\nDescription: pulumi.String(\"terraform-example\"),\nPrimaryIpAddress: pulumi.String(defaultSwitch.CidrBlock.ApplyT(func(cidrBlock string) (std.CidrhostResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrhostResultOutput).ApplyT(func(invoke std.CidrhostResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\nTags: pulumi.StringMap{\n\"Created\": pulumi.String(\"TF\"),\n\"For\": pulumi.String(\"example\"),\n},\nResourceGroupId: pulumi.String(defaultGetResourceGroups.Ids[0]),\n})\nif err != nil {\nreturn err\n}\n_, err = ecs.NewEcsNetworkInterfacePermission(ctx, \"example\", \u0026ecs.EcsNetworkInterfacePermissionArgs{\nAccountId: pulumi.String(defaultGetAccount.Id),\nNetworkInterfaceId: defaultEcsNetworkInterface.ID(),\nPermission: pulumi.String(\"InstanceAttach\"),\nForce: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterface;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfaceArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrhostArgs;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfacePermission;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfacePermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetAccount = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"terraform-example\")\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultEcsNetworkInterface = new EcsNetworkInterface(\"defaultEcsNetworkInterface\", EcsNetworkInterfaceArgs.builder()\n            .networkInterfaceName(\"terraform-example\")\n            .vswitchId(defaultSwitch.id())\n            .securityGroupIds(defaultSecurityGroup.id())\n            .description(\"terraform-example\")\n            .primaryIpAddress(defaultSwitch.cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrhost(CidrhostArgs.builder()\n                .input(_cidrBlock)\n                .host(100)\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .resourceGroupId(defaultGetResourceGroups.ids()[0])\n            .build());\n\n        var example = new EcsNetworkInterfacePermission(\"example\", EcsNetworkInterfacePermissionArgs.builder()\n            .accountId(defaultGetAccount.id())\n            .networkInterfaceId(defaultEcsNetworkInterface.id())\n            .permission(\"InstanceAttach\")\n            .force(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: terraform-example\n      vpcId: ${defaultNetwork.id}\n  defaultEcsNetworkInterface:\n    type: alicloud:ecs:EcsNetworkInterface\n    name: default\n    properties:\n      networkInterfaceName: terraform-example\n      vswitchId: ${defaultSwitch.id}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n      description: terraform-example\n      primaryIpAddress:\n        fn::invoke:\n          function: std:cidrhost\n          arguments:\n            input: ${defaultSwitch.cidrBlock}\n            host: 100\n          return: result\n      tags:\n        Created: TF\n        For: example\n      resourceGroupId: ${defaultGetResourceGroups.ids[0]}\n  example:\n    type: alicloud:ecs:EcsNetworkInterfacePermission\n    properties:\n      accountId: ${defaultGetAccount.id}\n      networkInterfaceId: ${defaultEcsNetworkInterface.id}\n      permission: InstanceAttach\n      force: true\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetAccount:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Network Interface Permission can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsNetworkInterfacePermission:EcsNetworkInterfacePermission example \u003cid\u003e\n```\n\n","properties":{"accountId":{"type":"string","description":"Alibaba Cloud Partner (Certified ISV) account ID or individual user ID.\n"},"force":{"type":"boolean","description":"Whether to force deletion of Network Interface Permission. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"networkInterfaceId":{"type":"string","description":"The ID of the network interface.\n"},"permission":{"type":"string","description":"The permissions of the Network Interface. Valid values: `InstanceAttach`. `InstanceAttach`: Allows authorized users to mount your ENI to the other ECS instance. The ECS instance must be in the same zone as the ENI.\n"},"status":{"type":"string","description":"The Status of the Network Interface Permissions. Valid values: `Pending`, `Granted`, `Revoking`, `Revoked`.\n"}},"required":["accountId","networkInterfaceId","permission","status"],"inputProperties":{"accountId":{"type":"string","description":"Alibaba Cloud Partner (Certified ISV) account ID or individual user ID.\n","willReplaceOnChanges":true},"force":{"type":"boolean","description":"Whether to force deletion of Network Interface Permission. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"networkInterfaceId":{"type":"string","description":"The ID of the network interface.\n","willReplaceOnChanges":true},"permission":{"type":"string","description":"The permissions of the Network Interface. Valid values: `InstanceAttach`. `InstanceAttach`: Allows authorized users to mount your ENI to the other ECS instance. The ECS instance must be in the same zone as the ENI.\n","willReplaceOnChanges":true}},"requiredInputs":["accountId","networkInterfaceId","permission"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsNetworkInterfacePermission resources.\n","properties":{"accountId":{"type":"string","description":"Alibaba Cloud Partner (Certified ISV) account ID or individual user ID.\n","willReplaceOnChanges":true},"force":{"type":"boolean","description":"Whether to force deletion of Network Interface Permission. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"networkInterfaceId":{"type":"string","description":"The ID of the network interface.\n","willReplaceOnChanges":true},"permission":{"type":"string","description":"The permissions of the Network Interface. Valid values: `InstanceAttach`. `InstanceAttach`: Allows authorized users to mount your ENI to the other ECS instance. The ECS instance must be in the same zone as the ENI.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The Status of the Network Interface Permissions. Valid values: `Pending`, `Granted`, `Revoking`, `Revoked`.\n"}},"type":"object"}},"alicloud:ecs/ecsPrefixList:EcsPrefixList":{"description":"Provides a ECS Prefix List resource.\n\nFor information about ECS Prefix List and how to use it, see [What is Prefix List.](https://www.alibabacloud.com/help/en/doc-detail/207969.html).\n\n\u003e **NOTE:** Available in v1.152.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ecs.EcsPrefixList(\"default\", {\n    addressFamily: \"IPv4\",\n    maxEntries: 2,\n    prefixListName: \"tftest\",\n    description: \"description\",\n    entries: [{\n        cidr: \"192.168.0.0/24\",\n        description: \"description\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ecs.EcsPrefixList(\"default\",\n    address_family=\"IPv4\",\n    max_entries=2,\n    prefix_list_name=\"tftest\",\n    description=\"description\",\n    entries=[{\n        \"cidr\": \"192.168.0.0/24\",\n        \"description\": \"description\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ecs.EcsPrefixList(\"default\", new()\n    {\n        AddressFamily = \"IPv4\",\n        MaxEntries = 2,\n        PrefixListName = \"tftest\",\n        Description = \"description\",\n        Entries = new[]\n        {\n            new AliCloud.Ecs.Inputs.EcsPrefixListEntryArgs\n            {\n                Cidr = \"192.168.0.0/24\",\n                Description = \"description\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewEcsPrefixList(ctx, \"default\", \u0026ecs.EcsPrefixListArgs{\n\t\t\tAddressFamily:  pulumi.String(\"IPv4\"),\n\t\t\tMaxEntries:     pulumi.Int(2),\n\t\t\tPrefixListName: pulumi.String(\"tftest\"),\n\t\t\tDescription:    pulumi.String(\"description\"),\n\t\t\tEntries: ecs.EcsPrefixListEntryArray{\n\t\t\t\t\u0026ecs.EcsPrefixListEntryArgs{\n\t\t\t\t\tCidr:        pulumi.String(\"192.168.0.0/24\"),\n\t\t\t\t\tDescription: pulumi.String(\"description\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsPrefixList;\nimport com.pulumi.alicloud.ecs.EcsPrefixListArgs;\nimport com.pulumi.alicloud.ecs.inputs.EcsPrefixListEntryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new EcsPrefixList(\"default\", EcsPrefixListArgs.builder()\n            .addressFamily(\"IPv4\")\n            .maxEntries(2)\n            .prefixListName(\"tftest\")\n            .description(\"description\")\n            .entries(EcsPrefixListEntryArgs.builder()\n                .cidr(\"192.168.0.0/24\")\n                .description(\"description\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ecs:EcsPrefixList\n    properties:\n      addressFamily: IPv4\n      maxEntries: 2\n      prefixListName: tftest\n      description: description\n      entries:\n        - cidr: 192.168.0.0/24\n          description: description\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Prefix List can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsPrefixList:EcsPrefixList example \u003cid\u003e\n```\n\n","properties":{"addressFamily":{"type":"string","description":"The IP address family. Valid values: `IPv4`,`IPv6`.\n"},"description":{"type":"string","description":"The description of the prefix list. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.\n"},"entries":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/EcsPrefixListEntry:EcsPrefixListEntry"},"description":"The Entry. The details see Block \u003cspan pulumi-lang-nodejs=\"`entry`\" pulumi-lang-dotnet=\"`Entry`\" pulumi-lang-go=\"`entry`\" pulumi-lang-python=\"`entry`\" pulumi-lang-yaml=\"`entry`\" pulumi-lang-java=\"`entry`\"\u003e`entry`\u003c/span\u003e.\n"},"maxEntries":{"type":"integer","description":"The maximum number of entries that the prefix list can contain.  Valid values: 1 to 200.\n"},"prefixListName":{"type":"string","description":"The name of the prefix. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with `http://`, `https://`, `com.aliyun`, or `com.alibabacloud`. It can contain letters, digits, colons (:), underscores (_), periods (.), and hyphens (-).\n"}},"required":["addressFamily","entries","maxEntries","prefixListName"],"inputProperties":{"addressFamily":{"type":"string","description":"The IP address family. Valid values: `IPv4`,`IPv6`.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the prefix list. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.\n"},"entries":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/EcsPrefixListEntry:EcsPrefixListEntry"},"description":"The Entry. The details see Block \u003cspan pulumi-lang-nodejs=\"`entry`\" pulumi-lang-dotnet=\"`Entry`\" pulumi-lang-go=\"`entry`\" pulumi-lang-python=\"`entry`\" pulumi-lang-yaml=\"`entry`\" pulumi-lang-java=\"`entry`\"\u003e`entry`\u003c/span\u003e.\n"},"maxEntries":{"type":"integer","description":"The maximum number of entries that the prefix list can contain.  Valid values: 1 to 200.\n","willReplaceOnChanges":true},"prefixListName":{"type":"string","description":"The name of the prefix. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with `http://`, `https://`, `com.aliyun`, or `com.alibabacloud`. It can contain letters, digits, colons (:), underscores (_), periods (.), and hyphens (-).\n"}},"requiredInputs":["addressFamily","entries","maxEntries","prefixListName"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsPrefixList resources.\n","properties":{"addressFamily":{"type":"string","description":"The IP address family. Valid values: `IPv4`,`IPv6`.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the prefix list. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.\n"},"entries":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/EcsPrefixListEntry:EcsPrefixListEntry"},"description":"The Entry. The details see Block \u003cspan pulumi-lang-nodejs=\"`entry`\" pulumi-lang-dotnet=\"`Entry`\" pulumi-lang-go=\"`entry`\" pulumi-lang-python=\"`entry`\" pulumi-lang-yaml=\"`entry`\" pulumi-lang-java=\"`entry`\"\u003e`entry`\u003c/span\u003e.\n"},"maxEntries":{"type":"integer","description":"The maximum number of entries that the prefix list can contain.  Valid values: 1 to 200.\n","willReplaceOnChanges":true},"prefixListName":{"type":"string","description":"The name of the prefix. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with `http://`, `https://`, `com.aliyun`, or `com.alibabacloud`. It can contain letters, digits, colons (:), underscores (_), periods (.), and hyphens (-).\n"}},"type":"object"}},"alicloud:ecs/ecsSessionManagerStatus:EcsSessionManagerStatus":{"description":"Provides a ECS Session Manager Status resource.\n\nFor information about ECS Session Manager Status and how to use it, see [What is Session Manager Status](https://www.alibabacloud.com/help/zh/doc-detail/337915.html).\n\n\u003e **NOTE:** Available since v1.148.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ecs.EcsSessionManagerStatus(\"default\", {\n    sessionManagerStatusName: \"sessionManagerStatus\",\n    status: \"Disabled\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ecs.EcsSessionManagerStatus(\"default\",\n    session_manager_status_name=\"sessionManagerStatus\",\n    status=\"Disabled\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ecs.EcsSessionManagerStatus(\"default\", new()\n    {\n        SessionManagerStatusName = \"sessionManagerStatus\",\n        Status = \"Disabled\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewEcsSessionManagerStatus(ctx, \"default\", \u0026ecs.EcsSessionManagerStatusArgs{\n\t\t\tSessionManagerStatusName: pulumi.String(\"sessionManagerStatus\"),\n\t\t\tStatus:                   pulumi.String(\"Disabled\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsSessionManagerStatus;\nimport com.pulumi.alicloud.ecs.EcsSessionManagerStatusArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new EcsSessionManagerStatus(\"default\", EcsSessionManagerStatusArgs.builder()\n            .sessionManagerStatusName(\"sessionManagerStatus\")\n            .status(\"Disabled\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ecs:EcsSessionManagerStatus\n    properties:\n      sessionManagerStatusName: sessionManagerStatus\n      status: Disabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Session Manager Status can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsSessionManagerStatus:EcsSessionManagerStatus example \u003cid\u003e\n```\n\n","properties":{"sessionManagerStatusName":{"type":"string","description":"The name of the Session Manager Status. Valid values: `sessionManagerStatus`.\n"},"status":{"type":"string","description":"The status of the Session Manager Status. Valid values: `Enabled`, `Disabled`.\n"}},"required":["sessionManagerStatusName","status"],"inputProperties":{"sessionManagerStatusName":{"type":"string","description":"The name of the Session Manager Status. Valid values: `sessionManagerStatus`.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Session Manager Status. Valid values: `Enabled`, `Disabled`.\n"}},"requiredInputs":["sessionManagerStatusName","status"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsSessionManagerStatus resources.\n","properties":{"sessionManagerStatusName":{"type":"string","description":"The name of the Session Manager Status. Valid values: `sessionManagerStatus`.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Session Manager Status. Valid values: `Enabled`, `Disabled`.\n"}},"type":"object"}},"alicloud:ecs/ecsSnapshot:EcsSnapshot":{"description":"Provides a ECS Snapshot resource.\n\n\n\nFor information about ECS Snapshot and how to use it, see [What is Snapshot](https://www.alibabacloud.com/help/en/doc-detail/25524.htm).\n\n\u003e **NOTE:** Available since v1.120.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_essd\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = Promise.all([_default, defaultGetImages]).then(([_default, defaultGetImages]) =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    imageId: defaultGetImages.images?.[0]?.id,\n    systemDiskCategory: \"cloud_essd\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"192.168.192.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    securityGroupName: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup].map(__item =\u003e __item.id),\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 10,\n    availabilityZone: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.availabilityZones?.[0]),\n    instanceChargeType: \"PostPaid\",\n    systemDiskCategory: \"cloud_essd\",\n    vswitchId: defaultSwitch.id,\n    instanceName: name,\n    dataDisks: [{\n        category: \"cloud_essd\",\n        size: 20,\n    }],\n});\nconst defaultEcsDisk = new alicloud.ecs.EcsDisk(\"default\", {\n    diskName: name,\n    zoneId: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.availabilityZones?.[0]),\n    category: \"cloud_essd\",\n    size: 500,\n});\nconst defaultEcsDiskAttachment = new alicloud.ecs.EcsDiskAttachment(\"default\", {\n    diskId: defaultEcsDisk.id,\n    instanceId: defaultInstance.id,\n});\nconst defaultEcsSnapshot = new alicloud.ecs.EcsSnapshot(\"default\", {\n    diskId: defaultEcsDiskAttachment.diskId,\n    category: \"standard\",\n    retentionDays: 20,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_essd\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(most_recent=True,\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    image_id=default_get_images.images[0].id,\n    system_disk_category=\"cloud_essd\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"192.168.192.0/24\",\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    security_group_name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[__item.id for __item in [default_security_group]],\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=10,\n    availability_zone=default_get_instance_types.instance_types[0].availability_zones[0],\n    instance_charge_type=\"PostPaid\",\n    system_disk_category=\"cloud_essd\",\n    vswitch_id=default_switch.id,\n    instance_name=name,\n    data_disks=[{\n        \"category\": \"cloud_essd\",\n        \"size\": 20,\n    }])\ndefault_ecs_disk = alicloud.ecs.EcsDisk(\"default\",\n    disk_name=name,\n    zone_id=default_get_instance_types.instance_types[0].availability_zones[0],\n    category=\"cloud_essd\",\n    size=500)\ndefault_ecs_disk_attachment = alicloud.ecs.EcsDiskAttachment(\"default\",\n    disk_id=default_ecs_disk.id,\n    instance_id=default_instance.id)\ndefault_ecs_snapshot = alicloud.ecs.EcsSnapshot(\"default\",\n    disk_id=default_ecs_disk_attachment.disk_id,\n    category=\"standard\",\n    retention_days=20)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_essd\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        SystemDiskCategory = \"cloud_essd\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"192.168.192.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup,\n        }.Select(__item =\u003e __item.Id).ToList(),\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 10,\n        AvailabilityZone = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.AvailabilityZones[0]),\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskCategory = \"cloud_essd\",\n        VswitchId = defaultSwitch.Id,\n        InstanceName = name,\n        DataDisks = new[]\n        {\n            new AliCloud.Ecs.Inputs.InstanceDataDiskArgs\n            {\n                Category = \"cloud_essd\",\n                Size = 20,\n            },\n        },\n    });\n\n    var defaultEcsDisk = new AliCloud.Ecs.EcsDisk(\"default\", new()\n    {\n        DiskName = name,\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.AvailabilityZones[0]),\n        Category = \"cloud_essd\",\n        Size = 500,\n    });\n\n    var defaultEcsDiskAttachment = new AliCloud.Ecs.EcsDiskAttachment(\"default\", new()\n    {\n        DiskId = defaultEcsDisk.Id,\n        InstanceId = defaultInstance.Id,\n    });\n\n    var defaultEcsSnapshot = new AliCloud.Ecs.EcsSnapshot(\"default\", new()\n    {\n        DiskId = defaultEcsDiskAttachment.DiskId,\n        Category = \"standard\",\n        RetentionDays = 20,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableDiskCategory: pulumi.StringRef(\"cloud_essd\"),\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nMostRecent: pulumi.BoolRef(true),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\nImageId: pulumi.StringRef(defaultGetImages.Images[0].Id),\nSystemDiskCategory: pulumi.StringRef(\"cloud_essd\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"192.168.192.0/24\"),\nZoneId: pulumi.String(_default.Zones[0].Id),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nSecurityGroupName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\ndefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\nImageId: pulumi.String(defaultGetImages.Images[0].Id),\nInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\nSecurityGroups: splat0,\nInternetChargeType: pulumi.String(\"PayByTraffic\"),\nInternetMaxBandwidthOut: pulumi.Int(10),\nAvailabilityZone: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].AvailabilityZones[0]),\nInstanceChargeType: pulumi.String(\"PostPaid\"),\nSystemDiskCategory: pulumi.String(\"cloud_essd\"),\nVswitchId: defaultSwitch.ID(),\nInstanceName: pulumi.String(name),\nDataDisks: ecs.InstanceDataDiskArray{\n\u0026ecs.InstanceDataDiskArgs{\nCategory: pulumi.String(\"cloud_essd\"),\nSize: pulumi.Int(20),\n},\n},\n})\nif err != nil {\nreturn err\n}\ndefaultEcsDisk, err := ecs.NewEcsDisk(ctx, \"default\", \u0026ecs.EcsDiskArgs{\nDiskName: pulumi.String(name),\nZoneId: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].AvailabilityZones[0]),\nCategory: pulumi.String(\"cloud_essd\"),\nSize: pulumi.Int(500),\n})\nif err != nil {\nreturn err\n}\ndefaultEcsDiskAttachment, err := ecs.NewEcsDiskAttachment(ctx, \"default\", \u0026ecs.EcsDiskAttachmentArgs{\nDiskId: defaultEcsDisk.ID(),\nInstanceId: defaultInstance.ID(),\n})\nif err != nil {\nreturn err\n}\n_, err = ecs.NewEcsSnapshot(ctx, \"default\", \u0026ecs.EcsSnapshotArgs{\nDiskId: defaultEcsDiskAttachment.DiskId,\nCategory: pulumi.String(\"standard\"),\nRetentionDays: pulumi.Int(20),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.ecs.inputs.InstanceDataDiskArgs;\nimport com.pulumi.alicloud.ecs.EcsDisk;\nimport com.pulumi.alicloud.ecs.EcsDiskArgs;\nimport com.pulumi.alicloud.ecs.EcsDiskAttachment;\nimport com.pulumi.alicloud.ecs.EcsDiskAttachmentArgs;\nimport com.pulumi.alicloud.ecs.EcsSnapshot;\nimport com.pulumi.alicloud.ecs.EcsSnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_essd\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .imageId(defaultGetImages.images()[0].id())\n            .systemDiskCategory(\"cloud_essd\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"192.168.192.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.stream().map(element -\u003e element.id()).collect(toList()))\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(10)\n            .availabilityZone(defaultGetInstanceTypes.instanceTypes()[0].availabilityZones()[0])\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskCategory(\"cloud_essd\")\n            .vswitchId(defaultSwitch.id())\n            .instanceName(name)\n            .dataDisks(InstanceDataDiskArgs.builder()\n                .category(\"cloud_essd\")\n                .size(20)\n                .build())\n            .build());\n\n        var defaultEcsDisk = new EcsDisk(\"defaultEcsDisk\", EcsDiskArgs.builder()\n            .diskName(name)\n            .zoneId(defaultGetInstanceTypes.instanceTypes()[0].availabilityZones()[0])\n            .category(\"cloud_essd\")\n            .size(500)\n            .build());\n\n        var defaultEcsDiskAttachment = new EcsDiskAttachment(\"defaultEcsDiskAttachment\", EcsDiskAttachmentArgs.builder()\n            .diskId(defaultEcsDisk.id())\n            .instanceId(defaultInstance.id())\n            .build());\n\n        var defaultEcsSnapshot = new EcsSnapshot(\"defaultEcsSnapshot\", EcsSnapshotArgs.builder()\n            .diskId(defaultEcsDiskAttachment.diskId())\n            .category(\"standard\")\n            .retentionDays(20)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Snapshot can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsSnapshot:EcsSnapshot example \u003cid\u003e\n```\n\n","properties":{"category":{"type":"string","description":"The category of the snapshot. Valid values:\n"},"createTime":{"type":"string","description":"(Available since v1.239.0) The time when the snapshot was created.\n"},"description":{"type":"string","description":"The description of the snapshot.\n"},"diskId":{"type":"string","description":"The ID of the disk.\n"},"force":{"type":"boolean","description":"Specifies whether to force delete the snapshot that has been used to create disks. Valid values:\n"},"instantAccess":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccess`\" pulumi-lang-dotnet=\"`InstantAccess`\" pulumi-lang-go=\"`instantAccess`\" pulumi-lang-python=\"`instant_access`\" pulumi-lang-yaml=\"`instantAccess`\" pulumi-lang-java=\"`instantAccess`\"\u003e`instant_access`\u003c/span\u003e has been deprecated from provider version 1.231.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccess`\" pulumi-lang-dotnet=\"`InstantAccess`\" pulumi-lang-go=\"`instantAccess`\" pulumi-lang-python=\"`instant_access`\" pulumi-lang-yaml=\"`instantAccess`\" pulumi-lang-java=\"`instantAccess`\"\u003e`instant_access`\u003c/span\u003e has been deprecated from provider version 1.231.0."},"instantAccessRetentionDays":{"type":"integer","description":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccessRetentionDays`\" pulumi-lang-dotnet=\"`InstantAccessRetentionDays`\" pulumi-lang-go=\"`instantAccessRetentionDays`\" pulumi-lang-python=\"`instant_access_retention_days`\" pulumi-lang-yaml=\"`instantAccessRetentionDays`\" pulumi-lang-java=\"`instantAccessRetentionDays`\"\u003e`instant_access_retention_days`\u003c/span\u003e has been deprecated from provider version 1.231.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccessRetentionDays`\" pulumi-lang-dotnet=\"`InstantAccessRetentionDays`\" pulumi-lang-go=\"`instantAccessRetentionDays`\" pulumi-lang-python=\"`instant_access_retention_days`\" pulumi-lang-yaml=\"`instantAccessRetentionDays`\" pulumi-lang-java=\"`instantAccessRetentionDays`\"\u003e`instant_access_retention_days`\u003c/span\u003e has been deprecated from provider version 1.231.0."},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.120.0. New field \u003cspan pulumi-lang-nodejs=\"`snapshotName`\" pulumi-lang-dotnet=\"`SnapshotName`\" pulumi-lang-go=\"`snapshotName`\" pulumi-lang-python=\"`snapshot_name`\" pulumi-lang-yaml=\"`snapshotName`\" pulumi-lang-java=\"`snapshotName`\"\u003e`snapshot_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.120.0. New field \u003cspan pulumi-lang-nodejs=\"`snapshotName`\" pulumi-lang-dotnet=\"`SnapshotName`\" pulumi-lang-go=\"`snapshotName`\" pulumi-lang-python=\"`snapshot_name`\" pulumi-lang-yaml=\"`snapshotName`\" pulumi-lang-java=\"`snapshotName`\"\u003e`snapshot_name`\u003c/span\u003e instead."},"regionId":{"type":"string","description":"(Available since v1.239.0) The region ID of the snapshot.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **NOTE:** From version 1.239.0, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e can be modified.\n"},"retentionDays":{"type":"integer","description":"The retention period of the snapshot. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e. **NOTE:** From version 1.231.0, \u003cspan pulumi-lang-nodejs=\"`retentionDays`\" pulumi-lang-dotnet=\"`RetentionDays`\" pulumi-lang-go=\"`retentionDays`\" pulumi-lang-python=\"`retention_days`\" pulumi-lang-yaml=\"`retentionDays`\" pulumi-lang-java=\"`retentionDays`\"\u003e`retention_days`\u003c/span\u003e can be modified.\n"},"snapshotName":{"type":"string","description":"The name of the snapshot.\n"},"status":{"type":"string","description":"The status of the Snapshot.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["category","createTime","diskId","name","regionId","snapshotName","status"],"inputProperties":{"category":{"type":"string","description":"The category of the snapshot. Valid values:\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the snapshot.\n"},"diskId":{"type":"string","description":"The ID of the disk.\n","willReplaceOnChanges":true},"force":{"type":"boolean","description":"Specifies whether to force delete the snapshot that has been used to create disks. Valid values:\n"},"instantAccess":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccess`\" pulumi-lang-dotnet=\"`InstantAccess`\" pulumi-lang-go=\"`instantAccess`\" pulumi-lang-python=\"`instant_access`\" pulumi-lang-yaml=\"`instantAccess`\" pulumi-lang-java=\"`instantAccess`\"\u003e`instant_access`\u003c/span\u003e has been deprecated from provider version 1.231.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccess`\" pulumi-lang-dotnet=\"`InstantAccess`\" pulumi-lang-go=\"`instantAccess`\" pulumi-lang-python=\"`instant_access`\" pulumi-lang-yaml=\"`instantAccess`\" pulumi-lang-java=\"`instantAccess`\"\u003e`instant_access`\u003c/span\u003e has been deprecated from provider version 1.231.0."},"instantAccessRetentionDays":{"type":"integer","description":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccessRetentionDays`\" pulumi-lang-dotnet=\"`InstantAccessRetentionDays`\" pulumi-lang-go=\"`instantAccessRetentionDays`\" pulumi-lang-python=\"`instant_access_retention_days`\" pulumi-lang-yaml=\"`instantAccessRetentionDays`\" pulumi-lang-java=\"`instantAccessRetentionDays`\"\u003e`instant_access_retention_days`\u003c/span\u003e has been deprecated from provider version 1.231.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccessRetentionDays`\" pulumi-lang-dotnet=\"`InstantAccessRetentionDays`\" pulumi-lang-go=\"`instantAccessRetentionDays`\" pulumi-lang-python=\"`instant_access_retention_days`\" pulumi-lang-yaml=\"`instantAccessRetentionDays`\" pulumi-lang-java=\"`instantAccessRetentionDays`\"\u003e`instant_access_retention_days`\u003c/span\u003e has been deprecated from provider version 1.231.0."},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.120.0. New field \u003cspan pulumi-lang-nodejs=\"`snapshotName`\" pulumi-lang-dotnet=\"`SnapshotName`\" pulumi-lang-go=\"`snapshotName`\" pulumi-lang-python=\"`snapshot_name`\" pulumi-lang-yaml=\"`snapshotName`\" pulumi-lang-java=\"`snapshotName`\"\u003e`snapshot_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.120.0. New field \u003cspan pulumi-lang-nodejs=\"`snapshotName`\" pulumi-lang-dotnet=\"`SnapshotName`\" pulumi-lang-go=\"`snapshotName`\" pulumi-lang-python=\"`snapshot_name`\" pulumi-lang-yaml=\"`snapshotName`\" pulumi-lang-java=\"`snapshotName`\"\u003e`snapshot_name`\u003c/span\u003e instead."},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **NOTE:** From version 1.239.0, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e can be modified.\n"},"retentionDays":{"type":"integer","description":"The retention period of the snapshot. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e. **NOTE:** From version 1.231.0, \u003cspan pulumi-lang-nodejs=\"`retentionDays`\" pulumi-lang-dotnet=\"`RetentionDays`\" pulumi-lang-go=\"`retentionDays`\" pulumi-lang-python=\"`retention_days`\" pulumi-lang-yaml=\"`retentionDays`\" pulumi-lang-java=\"`retentionDays`\"\u003e`retention_days`\u003c/span\u003e can be modified.\n"},"snapshotName":{"type":"string","description":"The name of the snapshot.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"requiredInputs":["diskId"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsSnapshot resources.\n","properties":{"category":{"type":"string","description":"The category of the snapshot. Valid values:\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"(Available since v1.239.0) The time when the snapshot was created.\n"},"description":{"type":"string","description":"The description of the snapshot.\n"},"diskId":{"type":"string","description":"The ID of the disk.\n","willReplaceOnChanges":true},"force":{"type":"boolean","description":"Specifies whether to force delete the snapshot that has been used to create disks. Valid values:\n"},"instantAccess":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccess`\" pulumi-lang-dotnet=\"`InstantAccess`\" pulumi-lang-go=\"`instantAccess`\" pulumi-lang-python=\"`instant_access`\" pulumi-lang-yaml=\"`instantAccess`\" pulumi-lang-java=\"`instantAccess`\"\u003e`instant_access`\u003c/span\u003e has been deprecated from provider version 1.231.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccess`\" pulumi-lang-dotnet=\"`InstantAccess`\" pulumi-lang-go=\"`instantAccess`\" pulumi-lang-python=\"`instant_access`\" pulumi-lang-yaml=\"`instantAccess`\" pulumi-lang-java=\"`instantAccess`\"\u003e`instant_access`\u003c/span\u003e has been deprecated from provider version 1.231.0."},"instantAccessRetentionDays":{"type":"integer","description":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccessRetentionDays`\" pulumi-lang-dotnet=\"`InstantAccessRetentionDays`\" pulumi-lang-go=\"`instantAccessRetentionDays`\" pulumi-lang-python=\"`instant_access_retention_days`\" pulumi-lang-yaml=\"`instantAccessRetentionDays`\" pulumi-lang-java=\"`instantAccessRetentionDays`\"\u003e`instant_access_retention_days`\u003c/span\u003e has been deprecated from provider version 1.231.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccessRetentionDays`\" pulumi-lang-dotnet=\"`InstantAccessRetentionDays`\" pulumi-lang-go=\"`instantAccessRetentionDays`\" pulumi-lang-python=\"`instant_access_retention_days`\" pulumi-lang-yaml=\"`instantAccessRetentionDays`\" pulumi-lang-java=\"`instantAccessRetentionDays`\"\u003e`instant_access_retention_days`\u003c/span\u003e has been deprecated from provider version 1.231.0."},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.120.0. New field \u003cspan pulumi-lang-nodejs=\"`snapshotName`\" pulumi-lang-dotnet=\"`SnapshotName`\" pulumi-lang-go=\"`snapshotName`\" pulumi-lang-python=\"`snapshot_name`\" pulumi-lang-yaml=\"`snapshotName`\" pulumi-lang-java=\"`snapshotName`\"\u003e`snapshot_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.120.0. New field \u003cspan pulumi-lang-nodejs=\"`snapshotName`\" pulumi-lang-dotnet=\"`SnapshotName`\" pulumi-lang-go=\"`snapshotName`\" pulumi-lang-python=\"`snapshot_name`\" pulumi-lang-yaml=\"`snapshotName`\" pulumi-lang-java=\"`snapshotName`\"\u003e`snapshot_name`\u003c/span\u003e instead."},"regionId":{"type":"string","description":"(Available since v1.239.0) The region ID of the snapshot.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **NOTE:** From version 1.239.0, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e can be modified.\n"},"retentionDays":{"type":"integer","description":"The retention period of the snapshot. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e. **NOTE:** From version 1.231.0, \u003cspan pulumi-lang-nodejs=\"`retentionDays`\" pulumi-lang-dotnet=\"`RetentionDays`\" pulumi-lang-go=\"`retentionDays`\" pulumi-lang-python=\"`retention_days`\" pulumi-lang-yaml=\"`retentionDays`\" pulumi-lang-java=\"`retentionDays`\"\u003e`retention_days`\u003c/span\u003e can be modified.\n"},"snapshotName":{"type":"string","description":"The name of the snapshot.\n"},"status":{"type":"string","description":"The status of the Snapshot.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:ecs/ecsSnapshotGroup:EcsSnapshotGroup":{"description":"Provides a ECS Snapshot Group resource.\n\nFor information about ECS Snapshot Group and how to use it, see [What is Snapshot Group](https://www.alibabacloud.com/help/en/doc-detail/210939.html).\n\n\u003e **NOTE:** Available since v1.160.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n    availableDiskCategory: \"cloud_essd\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    systemDiskCategory: \"cloud_essd\",\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    owners: \"system\",\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: \"terraform-example\",\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceName: \"terraform-example\",\n    securityGroups: [defaultSecurityGroup.id],\n    vswitchId: defaultSwitch.id,\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    internetMaxBandwidthOut: 10,\n});\nconst defaultEcsDisk = new alicloud.ecs.EcsDisk(\"default\", {\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    diskName: \"terraform-example\",\n    description: \"terraform-example\",\n    category: \"cloud_essd\",\n    size: 30,\n});\nconst defaultDiskAttachment = new alicloud.ecs.DiskAttachment(\"default\", {\n    diskId: defaultEcsDisk.id,\n    instanceId: defaultInstance.id,\n});\nconst defaultEcsSnapshotGroup = new alicloud.ecs.EcsSnapshotGroup(\"default\", {\n    description: \"terraform-example\",\n    diskIds: [defaultDiskAttachment.diskId],\n    snapshotGroupName: \"terraform-example\",\n    instanceId: defaultInstance.id,\n    instantAccess: true,\n    instantAccessRetentionDays: 1,\n    tags: {\n        Created: \"TF\",\n        For: \"Acceptance\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_zones(available_resource_creation=\"Instance\",\n    available_disk_category=\"cloud_essd\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    system_disk_category=\"cloud_essd\")\ndefault_get_images = alicloud.ecs.get_images(owners=\"system\",\n    name_regex=\"^ubuntu_18.*64\",\n    most_recent=True)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=\"terraform-example\",\n    vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    availability_zone=default.zones[0].id,\n    instance_name=\"terraform-example\",\n    security_groups=[default_security_group.id],\n    vswitch_id=default_switch.id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    image_id=default_get_images.images[0].id,\n    internet_max_bandwidth_out=10)\ndefault_ecs_disk = alicloud.ecs.EcsDisk(\"default\",\n    zone_id=default.zones[0].id,\n    disk_name=\"terraform-example\",\n    description=\"terraform-example\",\n    category=\"cloud_essd\",\n    size=30)\ndefault_disk_attachment = alicloud.ecs.DiskAttachment(\"default\",\n    disk_id=default_ecs_disk.id,\n    instance_id=default_instance.id)\ndefault_ecs_snapshot_group = alicloud.ecs.EcsSnapshotGroup(\"default\",\n    description=\"terraform-example\",\n    disk_ids=[default_disk_attachment.disk_id],\n    snapshot_group_name=\"terraform-example\",\n    instance_id=default_instance.id,\n    instant_access=True,\n    instant_access_retention_days=1,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Acceptance\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n        AvailableDiskCategory = \"cloud_essd\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        SystemDiskCategory = \"cloud_essd\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        Owners = \"system\",\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = \"terraform-example\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceName = \"terraform-example\",\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        VswitchId = defaultSwitch.Id,\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InternetMaxBandwidthOut = 10,\n    });\n\n    var defaultEcsDisk = new AliCloud.Ecs.EcsDisk(\"default\", new()\n    {\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        DiskName = \"terraform-example\",\n        Description = \"terraform-example\",\n        Category = \"cloud_essd\",\n        Size = 30,\n    });\n\n    var defaultDiskAttachment = new AliCloud.Ecs.DiskAttachment(\"default\", new()\n    {\n        DiskId = defaultEcsDisk.Id,\n        InstanceId = defaultInstance.Id,\n    });\n\n    var defaultEcsSnapshotGroup = new AliCloud.Ecs.EcsSnapshotGroup(\"default\", new()\n    {\n        Description = \"terraform-example\",\n        DiskIds = new[]\n        {\n            defaultDiskAttachment.DiskId,\n        },\n        SnapshotGroupName = \"terraform-example\",\n        InstanceId = defaultInstance.Id,\n        InstantAccess = true,\n        InstantAccessRetentionDays = 1,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Acceptance\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone:   pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tSystemDiskCategory: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(\"terraform-example\"),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(_default.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(\"terraform-example\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId:               defaultSwitch.ID(),\n\t\t\tInstanceType:            pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tImageId:                 pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcsDisk, err := ecs.NewEcsDisk(ctx, \"default\", \u0026ecs.EcsDiskArgs{\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tDiskName:    pulumi.String(\"terraform-example\"),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t\tCategory:    pulumi.String(\"cloud_essd\"),\n\t\t\tSize:        pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDiskAttachment, err := ecs.NewDiskAttachment(ctx, \"default\", \u0026ecs.DiskAttachmentArgs{\n\t\t\tDiskId:     defaultEcsDisk.ID(),\n\t\t\tInstanceId: defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEcsSnapshotGroup(ctx, \"default\", \u0026ecs.EcsSnapshotGroupArgs{\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t\tDiskIds: pulumi.StringArray{\n\t\t\t\tdefaultDiskAttachment.DiskId,\n\t\t\t},\n\t\t\tSnapshotGroupName:          pulumi.String(\"terraform-example\"),\n\t\t\tInstanceId:                 defaultInstance.ID(),\n\t\t\tInstantAccess:              pulumi.Bool(true),\n\t\t\tInstantAccessRetentionDays: pulumi.Int(1),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"Acceptance\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.ecs.EcsDisk;\nimport com.pulumi.alicloud.ecs.EcsDiskArgs;\nimport com.pulumi.alicloud.ecs.DiskAttachment;\nimport com.pulumi.alicloud.ecs.DiskAttachmentArgs;\nimport com.pulumi.alicloud.ecs.EcsSnapshotGroup;\nimport com.pulumi.alicloud.ecs.EcsSnapshotGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .availableDiskCategory(\"cloud_essd\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .systemDiskCategory(\"cloud_essd\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .owners(\"system\")\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"terraform-example\")\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .instanceName(\"terraform-example\")\n            .securityGroups(defaultSecurityGroup.id())\n            .vswitchId(defaultSwitch.id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .imageId(defaultGetImages.images()[0].id())\n            .internetMaxBandwidthOut(10)\n            .build());\n\n        var defaultEcsDisk = new EcsDisk(\"defaultEcsDisk\", EcsDiskArgs.builder()\n            .zoneId(default_.zones()[0].id())\n            .diskName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .category(\"cloud_essd\")\n            .size(30)\n            .build());\n\n        var defaultDiskAttachment = new DiskAttachment(\"defaultDiskAttachment\", DiskAttachmentArgs.builder()\n            .diskId(defaultEcsDisk.id())\n            .instanceId(defaultInstance.id())\n            .build());\n\n        var defaultEcsSnapshotGroup = new EcsSnapshotGroup(\"defaultEcsSnapshotGroup\", EcsSnapshotGroupArgs.builder()\n            .description(\"terraform-example\")\n            .diskIds(defaultDiskAttachment.diskId())\n            .snapshotGroupName(\"terraform-example\")\n            .instanceId(defaultInstance.id())\n            .instantAccess(true)\n            .instantAccessRetentionDays(1)\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Acceptance\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: terraform-example\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:ecs:Instance\n    name: default\n    properties:\n      availabilityZone: ${default.zones[0].id}\n      instanceName: terraform-example\n      securityGroups:\n        - ${defaultSecurityGroup.id}\n      vswitchId: ${defaultSwitch.id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      imageId: ${defaultGetImages.images[0].id}\n      internetMaxBandwidthOut: 10\n  defaultEcsDisk:\n    type: alicloud:ecs:EcsDisk\n    name: default\n    properties:\n      zoneId: ${default.zones[0].id}\n      diskName: terraform-example\n      description: terraform-example\n      category: cloud_essd\n      size: '30'\n  defaultDiskAttachment:\n    type: alicloud:ecs:DiskAttachment\n    name: default\n    properties:\n      diskId: ${defaultEcsDisk.id}\n      instanceId: ${defaultInstance.id}\n  defaultEcsSnapshotGroup:\n    type: alicloud:ecs:EcsSnapshotGroup\n    name: default\n    properties:\n      description: terraform-example\n      diskIds:\n        - ${defaultDiskAttachment.diskId}\n      snapshotGroupName: terraform-example\n      instanceId: ${defaultInstance.id}\n      instantAccess: true\n      instantAccessRetentionDays: 1\n      tags:\n        Created: TF\n        For: Acceptance\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n        availableDiskCategory: cloud_essd\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        systemDiskCategory: cloud_essd\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        owners: system\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Snapshot Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ecsSnapshotGroup:EcsSnapshotGroup example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the snapshot-consistent group. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"diskIds":{"type":"array","items":{"type":"string"},"description":"The ID of disk for which to create snapshots. You can specify multiple disk IDs across instances with the same zone.\n"},"excludeDiskIds":{"type":"array","items":{"type":"string"},"description":"The ID of disk N for which you do not need to create snapshots. After this parameter is specified, the created snapshot-consistent group does not contain snapshots of the disk.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"instantAccess":{"type":"boolean","description":"Specifies whether to enable the instant access feature.\n"},"instantAccessRetentionDays":{"type":"integer","description":"Specify the number of days for which the instant access feature is available. Unit: days. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the snapshot consistency group belongs.\n"},"snapshotGroupName":{"type":"string","description":"The name of the snapshot-consistent group. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain letters, digits, periods (.), underscores (_), hyphens (-), and colons (:). It must start with a letter or a digit and cannot start with `http://` or `https://`.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the snapshot group.\n"}},"required":["resourceGroupId","status"],"inputProperties":{"description":{"type":"string","description":"The description of the snapshot-consistent group. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"diskIds":{"type":"array","items":{"type":"string"},"description":"The ID of disk for which to create snapshots. You can specify multiple disk IDs across instances with the same zone.\n"},"excludeDiskIds":{"type":"array","items":{"type":"string"},"description":"The ID of disk N for which you do not need to create snapshots. After this parameter is specified, the created snapshot-consistent group does not contain snapshots of the disk.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"instantAccess":{"type":"boolean","description":"Specifies whether to enable the instant access feature.\n"},"instantAccessRetentionDays":{"type":"integer","description":"Specify the number of days for which the instant access feature is available. Unit: days. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the snapshot consistency group belongs.\n"},"snapshotGroupName":{"type":"string","description":"The name of the snapshot-consistent group. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain letters, digits, periods (.), underscores (_), hyphens (-), and colons (:). It must start with a letter or a digit and cannot start with `http://` or `https://`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the snapshot group.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering EcsSnapshotGroup resources.\n","properties":{"description":{"type":"string","description":"The description of the snapshot-consistent group. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"diskIds":{"type":"array","items":{"type":"string"},"description":"The ID of disk for which to create snapshots. You can specify multiple disk IDs across instances with the same zone.\n"},"excludeDiskIds":{"type":"array","items":{"type":"string"},"description":"The ID of disk N for which you do not need to create snapshots. After this parameter is specified, the created snapshot-consistent group does not contain snapshots of the disk.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"instantAccess":{"type":"boolean","description":"Specifies whether to enable the instant access feature.\n"},"instantAccessRetentionDays":{"type":"integer","description":"Specify the number of days for which the instant access feature is available. Unit: days. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the snapshot consistency group belongs.\n"},"snapshotGroupName":{"type":"string","description":"The name of the snapshot-consistent group. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain letters, digits, periods (.), underscores (_), hyphens (-), and colons (:). It must start with a letter or a digit and cannot start with `http://` or `https://`.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the snapshot group.\n"}},"type":"object"}},"alicloud:ecs/eip:Eip":{"description":"Provides an elastic IP resource.\n\n\u003e **DEPRECATED:**  This resource  has been deprecated from version `1.126.0`. Please use new resource alicloud_eip_address.\n\n\u003e **NOTE:** The resource only supports to create `PostPaid PayByTraffic`  or `PrePaid PayByBandwidth` elastic IP for international account. Otherwise, you will happened error `COMMODITY.INVALID_COMPONENT`.\nYour account is international if you can use it to login in [International Web Console](https://account.alibabacloud.com/login/login.htm).\n\n\u003e **NOTE:** From version 1.10.1, this resource supports creating \"PrePaid\" EIP. In addition, it supports setting EIP name and description.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Create a new EIP.\nconst example = new alicloud.ecs.Eip(\"example\", {\n    bandwidth: \"10\",\n    internetChargeType: \"PayByBandwidth\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Create a new EIP.\nexample = alicloud.ecs.Eip(\"example\",\n    bandwidth=\"10\",\n    internet_charge_type=\"PayByBandwidth\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new EIP.\n    var example = new AliCloud.Ecs.Eip(\"example\", new()\n    {\n        Bandwidth = \"10\",\n        InternetChargeType = \"PayByBandwidth\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new EIP.\n\t\t_, err := ecs.NewEip(ctx, \"example\", \u0026ecs.EipArgs{\n\t\t\tBandwidth:          pulumi.String(\"10\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByBandwidth\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.Eip;\nimport com.pulumi.alicloud.ecs.EipArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new EIP.\n        var example = new Eip(\"example\", EipArgs.builder()\n            .bandwidth(\"10\")\n            .internetChargeType(\"PayByBandwidth\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new EIP.\n  example:\n    type: alicloud:ecs:Eip\n    properties:\n      bandwidth: '10'\n      internetChargeType: PayByBandwidth\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use the existing eip module \nto create several EIP instances and associate them with other resources one-click, like ECS instances, SLB, Nat Gateway and so on.\n\n## Import\n\nElastic IP address can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/eip:Eip example eip-abc12345678\n```\n\n","properties":{"activityId":{"type":"string"},"addressName":{"type":"string","description":"The name of the EIP instance. This name 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://.\n"},"allocationId":{"type":"string"},"autoPay":{"type":"boolean"},"bandwidth":{"type":"string","description":"Maximum bandwidth to the elastic public network, measured in Mbps (Mega bit per second). If this value is not specified, then automatically sets it to 5 Mbps.\n"},"createTime":{"type":"string"},"deletionProtection":{"type":"boolean","description":"Whether enable the deletion protection or not. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n- true: Enable deletion protection.\n- false: Disable deletion protection.\n"},"description":{"type":"string","description":"Description of the EIP instance, This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.\n"},"highDefinitionMonitorLogStatus":{"type":"string"},"instanceChargeType":{"type":"string","description":"(It has been deprecated from version 1.126.0 and using new attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead) Elastic IP instance charge type. Valid values are \"PrePaid\" and \"PostPaid\". Default to \"PostPaid\".\n","deprecationMessage":"Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field 'payment_type' instead."},"internetChargeType":{"type":"string","description":"Internet charge type of the EIP, Valid values are `PayByBandwidth`, `PayByTraffic`. Default to `PayByBandwidth`. **NOTE:** From version `1.7.1` to `1.125.0`, it defaults to `PayByTraffic`. It is only \"PayByBandwidth\" when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is PrePaid.\n"},"ipAddress":{"type":"string","description":"The elastic ip address\n"},"isp":{"type":"string","description":"The line type of the Elastic IP instance. Default to `BGP`. Other type of the isp need to open a whitelist.\n"},"logProject":{"type":"string"},"logStore":{"type":"string"},"mode":{"type":"string"},"name":{"type":"string","description":"It has been deprecated from version 1.126.0 and using new attribute \u003cspan pulumi-lang-nodejs=\"`addressName`\" pulumi-lang-dotnet=\"`AddressName`\" pulumi-lang-go=\"`addressName`\" pulumi-lang-python=\"`address_name`\" pulumi-lang-yaml=\"`addressName`\" pulumi-lang-java=\"`addressName`\"\u003e`address_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.126.0. New field 'address_name' instead."},"netmode":{"type":"string"},"paymentType":{"type":"string","description":"The billing method of the EIP. Valid values: `Subscription` and `PayAsYouGo`. Default value is `PayAsYouGo`.\n"},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify \"period\" and you can do that via web console.\n**NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"pricingCycle":{"type":"string"},"publicIpAddressPoolId":{"type":"string"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the eip belongs.\n"},"securityProtectionTypes":{"type":"array","items":{"type":"string"}},"status":{"type":"string","description":"The EIP current status.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"zone":{"type":"string"}},"required":["addressName","allocationId","bandwidth","createTime","deletionProtection","description","highDefinitionMonitorLogStatus","instanceChargeType","internetChargeType","ipAddress","isp","mode","name","netmode","paymentType","resourceGroupId","status","zone"],"inputProperties":{"activityId":{"type":"string"},"addressName":{"type":"string","description":"The name of the EIP instance. This name 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://.\n"},"allocationId":{"type":"string","willReplaceOnChanges":true},"autoPay":{"type":"boolean"},"bandwidth":{"type":"string","description":"Maximum bandwidth to the elastic public network, measured in Mbps (Mega bit per second). If this value is not specified, then automatically sets it to 5 Mbps.\n"},"deletionProtection":{"type":"boolean","description":"Whether enable the deletion protection or not. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n- true: Enable deletion protection.\n- false: Disable deletion protection.\n"},"description":{"type":"string","description":"Description of the EIP instance, This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.\n"},"highDefinitionMonitorLogStatus":{"type":"string","willReplaceOnChanges":true},"instanceChargeType":{"type":"string","description":"(It has been deprecated from version 1.126.0 and using new attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead) Elastic IP instance charge type. Valid values are \"PrePaid\" and \"PostPaid\". Default to \"PostPaid\".\n","deprecationMessage":"Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field 'payment_type' instead.","willReplaceOnChanges":true},"internetChargeType":{"type":"string","description":"Internet charge type of the EIP, Valid values are `PayByBandwidth`, `PayByTraffic`. Default to `PayByBandwidth`. **NOTE:** From version `1.7.1` to `1.125.0`, it defaults to `PayByTraffic`. It is only \"PayByBandwidth\" when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is PrePaid.\n","willReplaceOnChanges":true},"ipAddress":{"type":"string","description":"The elastic ip address\n","willReplaceOnChanges":true},"isp":{"type":"string","description":"The line type of the Elastic IP instance. Default to `BGP`. Other type of the isp need to open a whitelist.\n","willReplaceOnChanges":true},"logProject":{"type":"string"},"logStore":{"type":"string"},"mode":{"type":"string"},"name":{"type":"string","description":"It has been deprecated from version 1.126.0 and using new attribute \u003cspan pulumi-lang-nodejs=\"`addressName`\" pulumi-lang-dotnet=\"`AddressName`\" pulumi-lang-go=\"`addressName`\" pulumi-lang-python=\"`address_name`\" pulumi-lang-yaml=\"`addressName`\" pulumi-lang-java=\"`addressName`\"\u003e`address_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.126.0. New field 'address_name' instead."},"netmode":{"type":"string","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The billing method of the EIP. Valid values: `Subscription` and `PayAsYouGo`. Default value is `PayAsYouGo`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify \"period\" and you can do that via web console.\n**NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"pricingCycle":{"type":"string"},"publicIpAddressPoolId":{"type":"string","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The Id of resource group which the eip belongs.\n"},"securityProtectionTypes":{"type":"array","items":{"type":"string"},"willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"zone":{"type":"string","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Eip resources.\n","properties":{"activityId":{"type":"string"},"addressName":{"type":"string","description":"The name of the EIP instance. This name 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://.\n"},"allocationId":{"type":"string","willReplaceOnChanges":true},"autoPay":{"type":"boolean"},"bandwidth":{"type":"string","description":"Maximum bandwidth to the elastic public network, measured in Mbps (Mega bit per second). If this value is not specified, then automatically sets it to 5 Mbps.\n"},"createTime":{"type":"string"},"deletionProtection":{"type":"boolean","description":"Whether enable the deletion protection or not. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n- true: Enable deletion protection.\n- false: Disable deletion protection.\n"},"description":{"type":"string","description":"Description of the EIP instance, This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.\n"},"highDefinitionMonitorLogStatus":{"type":"string","willReplaceOnChanges":true},"instanceChargeType":{"type":"string","description":"(It has been deprecated from version 1.126.0 and using new attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead) Elastic IP instance charge type. Valid values are \"PrePaid\" and \"PostPaid\". Default to \"PostPaid\".\n","deprecationMessage":"Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field 'payment_type' instead.","willReplaceOnChanges":true},"internetChargeType":{"type":"string","description":"Internet charge type of the EIP, Valid values are `PayByBandwidth`, `PayByTraffic`. Default to `PayByBandwidth`. **NOTE:** From version `1.7.1` to `1.125.0`, it defaults to `PayByTraffic`. It is only \"PayByBandwidth\" when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is PrePaid.\n","willReplaceOnChanges":true},"ipAddress":{"type":"string","description":"The elastic ip address\n","willReplaceOnChanges":true},"isp":{"type":"string","description":"The line type of the Elastic IP instance. Default to `BGP`. Other type of the isp need to open a whitelist.\n","willReplaceOnChanges":true},"logProject":{"type":"string"},"logStore":{"type":"string"},"mode":{"type":"string"},"name":{"type":"string","description":"It has been deprecated from version 1.126.0 and using new attribute \u003cspan pulumi-lang-nodejs=\"`addressName`\" pulumi-lang-dotnet=\"`AddressName`\" pulumi-lang-go=\"`addressName`\" pulumi-lang-python=\"`address_name`\" pulumi-lang-yaml=\"`addressName`\" pulumi-lang-java=\"`addressName`\"\u003e`address_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.126.0. New field 'address_name' instead."},"netmode":{"type":"string","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The billing method of the EIP. Valid values: `Subscription` and `PayAsYouGo`. Default value is `PayAsYouGo`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify \"period\" and you can do that via web console.\n**NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"pricingCycle":{"type":"string"},"publicIpAddressPoolId":{"type":"string","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The Id of resource group which the eip belongs.\n"},"securityProtectionTypes":{"type":"array","items":{"type":"string"},"willReplaceOnChanges":true},"status":{"type":"string","description":"The EIP current status.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"zone":{"type":"string","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"This resource has been deprecated in favour of the EipAddress resource"},"alicloud:ecs/eipAddress:EipAddress":{"description":"Provides a EIP Address resource.\n\n\u003e **NOTE:** BGP (Multi-ISP) lines are supported in all regions. BGP (Multi-ISP) Pro lines are supported only in the China (Hong Kong) region.\n\n\u003e **NOTE:** The resource only supports to create `PayAsYouGo PayByTraffic`  or `Subscription PayByBandwidth` elastic IP for international account. Otherwise, you will happened error `COMMODITY.INVALID_COMPONENT`.\nYour account is international if you can use it to login in [International Web Console](https://account.alibabacloud.com/login/login.htm).\n\nFor information about EIP Address and how to use it, see [What is Address](https://www.alibabacloud.com/help/en/doc-detail/36016.htm).\n\n\u003e **NOTE:** Available since v1.126.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ecs.EipAddress(\"default\", {\n    description: name,\n    isp: \"BGP\",\n    addressName: name,\n    netmode: \"public\",\n    bandwidth: \"1\",\n    securityProtectionTypes: [\"AntiDDoS_Enhanced\"],\n    paymentType: \"PayAsYouGo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ecs.EipAddress(\"default\",\n    description=name,\n    isp=\"BGP\",\n    address_name=name,\n    netmode=\"public\",\n    bandwidth=\"1\",\n    security_protection_types=[\"AntiDDoS_Enhanced\"],\n    payment_type=\"PayAsYouGo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ecs.EipAddress(\"default\", new()\n    {\n        Description = name,\n        Isp = \"BGP\",\n        AddressName = name,\n        Netmode = \"public\",\n        Bandwidth = \"1\",\n        SecurityProtectionTypes = new[]\n        {\n            \"AntiDDoS_Enhanced\",\n        },\n        PaymentType = \"PayAsYouGo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ecs.NewEipAddress(ctx, \"default\", \u0026ecs.EipAddressArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tIsp:         pulumi.String(\"BGP\"),\n\t\t\tAddressName: pulumi.String(name),\n\t\t\tNetmode:     pulumi.String(\"public\"),\n\t\t\tBandwidth:   pulumi.String(\"1\"),\n\t\t\tSecurityProtectionTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"AntiDDoS_Enhanced\"),\n\t\t\t},\n\t\t\tPaymentType: pulumi.String(\"PayAsYouGo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAddressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new EipAddress(\"default\", EipAddressArgs.builder()\n            .description(name)\n            .isp(\"BGP\")\n            .addressName(name)\n            .netmode(\"public\")\n            .bandwidth(\"1\")\n            .securityProtectionTypes(\"AntiDDoS_Enhanced\")\n            .paymentType(\"PayAsYouGo\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ecs:EipAddress\n    properties:\n      description: ${name}\n      isp: BGP\n      addressName: ${name}\n      netmode: public\n      bandwidth: '1'\n      securityProtectionTypes:\n        - AntiDDoS_Enhanced\n      paymentType: PayAsYouGo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.ecs.EipAddress`\" pulumi-lang-dotnet=\"`alicloud.ecs.EipAddress`\" pulumi-lang-go=\"`ecs.EipAddress`\" pulumi-lang-python=\"`ecs.EipAddress`\" pulumi-lang-yaml=\"`alicloud.ecs.EipAddress`\" pulumi-lang-java=\"`alicloud.ecs.EipAddress`\"\u003e`alicloud.ecs.EipAddress`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.ecs.EipAddress`\" pulumi-lang-dotnet=\"`alicloud.ecs.EipAddress`\" pulumi-lang-go=\"`ecs.EipAddress`\" pulumi-lang-python=\"`ecs.EipAddress`\" pulumi-lang-yaml=\"`alicloud.ecs.EipAddress`\" pulumi-lang-java=\"`alicloud.ecs.EipAddress`\"\u003e`alicloud.ecs.EipAddress`\u003c/span\u003e resource allows you to manage  \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"Subscription\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEIP Address can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/eipAddress:EipAddress example \u003cid\u003e\n```\n\n","properties":{"activityId":{"type":"string","description":"The promotion code. This parameter is not required.\n"},"addressName":{"type":"string","description":"The EIP name.\n\nThe name must be 1 to 128 characters in length and start with a letter, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).\n\n\u003e **NOTE:**   You cannot specify this parameter if you create a subscription EIP.\n"},"allocationId":{"type":"string","description":"The ID of the EIP instance.\n"},"autoPay":{"type":"boolean","description":"Specifies whether to enable automatic payment. Valid values:\n"},"bandwidth":{"type":"string","description":"The maximum bandwidth of the specified EIP. Unit: Mbit/s.\n- When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo` and \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is set to `PayByBandwidth`, valid values for \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo` and \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is set to `PayByTraffic`, valid values for \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, valid values for \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e Mbit /s.\n"},"createTime":{"type":"string","description":"The time when the EIP was created.\n"},"deletionProtection":{"type":"boolean","description":"Specifies whether to enable deletion protection. Valid values:\n"},"description":{"type":"string","description":"The description of the EIP.\n\nThe description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.\n\n\u003e **NOTE:**   You cannot specify this parameter if you create a subscription EIP.\n"},"highDefinitionMonitorLogStatus":{"type":"string","description":"The status of fine-grained monitoring. Valid values:\n- `ON`\n- `OFF`\n"},"instanceChargeType":{"type":"string","description":". Field 'instance_charge_type' has been deprecated from provider version 1.126.0. New field 'payment_type' instead.\n","deprecationMessage":"Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field 'payment_type' instead."},"internetChargeType":{"type":"string","description":"The metering method of the EIP. Valid values:\n- `PayByBandwidth` (default): pay-by-bandwidth.\n- `PayByTraffic`: pay-by-data-transfer.\n\nWhen \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, you must set \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e to `PayByBandwidth`.\n\nWhen \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, set \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e to `PayByBandwidth` or `PayByTraffic`.\n"},"ipAddress":{"type":"string","description":"The IP address of the EIP. Supports a maximum of 50 EIPs.\n"},"isp":{"type":"string","description":"The line type. Valid values:\n- `BGP` (default): BGP (Multi-ISP) line The BGP (Multi-ISP) line is supported in all regions.\n- `BGP_PRO`: BGP (Multi-ISP) Pro line The BGP (Multi-ISP) Pro line is supported in the China (Hong Kong), Singapore, Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions.\n\nFor more information about the BGP (Multi-ISP) line and BGP (Multi-ISP) Pro line, see the \"Line types\" section of [What is EIP?](https://www.alibabacloud.com/help/en/doc-detail/32321.html)\n\nIf you are allowed to use single-ISP bandwidth, you can also choose one of the following values:\n- `ChinaTelecom`\n- `ChinaUnicom`\n- `ChinaMobile`\n- `ChinaTelecom_L2`\n- `ChinaUnicom_L2`\n- `ChinaMobile_L2`\n\nIf your services are deployed in China East 1 Finance, this parameter is required and you must set the parameter to `BGP_FinanceCloud`.\n"},"logProject":{"type":"string","description":"The name of the Simple Log Service (SLS) project.\n"},"logStore":{"type":"string","description":"The name of the Logstore.\n"},"mode":{"type":"string","description":"The association mode. Valid values:\n- `NAT` (default): NAT mode\n- `MULTI_BINDED`: multi-EIP-to-ENI mode\n- `BINDED`: cut-network interface controller mode\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.126.0. New field 'address_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.126.0. New field 'address_name' instead."},"netmode":{"type":"string","description":"The network type. By default, this value is set to \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e, which specifies the public network type.\n"},"paymentType":{"type":"string","description":"The billing method of the EIP. Valid values:\n- `Subscription`: subscription\n- `PayAsYouGo` (default): pay-as-you-go\n\nIf \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, set \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e to `PayByBandwidth`. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, set \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e to `PayByBandwidth` or `PayByTraffic`.\n"},"period":{"type":"integer","description":"Duration of purchase. When the value of \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e is `Month`, the value range of \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e. When the value of \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e is `Year`, the value range of \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. If the value of the \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e parameter is `Subscription`, this parameter is required. If the value of the \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e parameter is `PayAsYouGo`, this parameter is left blank.\n"},"pricingCycle":{"type":"string","description":"The billing cycle of the subscription EIP. Valid values:\n- `Month` (default)\n- `Year`\n\nIf \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, this parameter is required. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, this parameter is not required.\n"},"publicIpAddressPoolId":{"type":"string","description":"The ID of the IP address pool. The EIP is allocated from the IP address pool. By default, the IP address pool feature is unavailable. To use the IP address pool, apply for the privilege in the Quota Center console. For more information, see the \"Request a quota increase in the Quota Center console\" section in [Manage EIP quotas](https://www.alibabacloud.com/help/en/doc-detail/108213.html).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which you want to move the resource.\n\n\u003e **NOTE:**   You can use resource groups to facilitate resource grouping and permission management for an Alibaba Cloud. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"securityProtectionTypes":{"type":"array","items":{"type":"string"},"description":"Security protection level.\n- When the return is empty, the basic DDoS protection is specified.\n- When \u003cspan pulumi-lang-nodejs=\"`antidosEnhanced`\" pulumi-lang-dotnet=\"`AntidosEnhanced`\" pulumi-lang-go=\"`antidosEnhanced`\" pulumi-lang-python=\"`antidos_enhanced`\" pulumi-lang-yaml=\"`antidosEnhanced`\" pulumi-lang-java=\"`antidosEnhanced`\"\u003e`antidos_enhanced`\u003c/span\u003e is returned, it indicates DDoS protection (enhanced version).\n"},"status":{"type":"string","description":"The state of the EIP.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"zone":{"type":"string","description":"The zone of the EIP. When the service type of the IP address pool specified by `PublicIpAddressPoolId` is CloudBox, the default value is the zone of the IP address pool. For more information, see [ListPublicIpAddressPools](https://www.alibabacloud.com/help/en/doc-detail/429433.html). \n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["addressName","allocationId","bandwidth","createTime","deletionProtection","description","highDefinitionMonitorLogStatus","instanceChargeType","internetChargeType","ipAddress","isp","mode","name","netmode","paymentType","resourceGroupId","status","zone"],"inputProperties":{"activityId":{"type":"string","description":"The promotion code. This parameter is not required.\n"},"addressName":{"type":"string","description":"The EIP name.\n\nThe name must be 1 to 128 characters in length and start with a letter, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).\n\n\u003e **NOTE:**   You cannot specify this parameter if you create a subscription EIP.\n"},"allocationId":{"type":"string","description":"The ID of the EIP instance.\n","willReplaceOnChanges":true},"autoPay":{"type":"boolean","description":"Specifies whether to enable automatic payment. Valid values:\n"},"bandwidth":{"type":"string","description":"The maximum bandwidth of the specified EIP. Unit: Mbit/s.\n- When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo` and \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is set to `PayByBandwidth`, valid values for \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo` and \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is set to `PayByTraffic`, valid values for \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, valid values for \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e Mbit /s.\n"},"deletionProtection":{"type":"boolean","description":"Specifies whether to enable deletion protection. Valid values:\n"},"description":{"type":"string","description":"The description of the EIP.\n\nThe description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.\n\n\u003e **NOTE:**   You cannot specify this parameter if you create a subscription EIP.\n"},"highDefinitionMonitorLogStatus":{"type":"string","description":"The status of fine-grained monitoring. Valid values:\n- `ON`\n- `OFF`\n","willReplaceOnChanges":true},"instanceChargeType":{"type":"string","description":". Field 'instance_charge_type' has been deprecated from provider version 1.126.0. New field 'payment_type' instead.\n","deprecationMessage":"Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field 'payment_type' instead.","willReplaceOnChanges":true},"internetChargeType":{"type":"string","description":"The metering method of the EIP. Valid values:\n- `PayByBandwidth` (default): pay-by-bandwidth.\n- `PayByTraffic`: pay-by-data-transfer.\n\nWhen \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, you must set \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e to `PayByBandwidth`.\n\nWhen \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, set \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e to `PayByBandwidth` or `PayByTraffic`.\n","willReplaceOnChanges":true},"ipAddress":{"type":"string","description":"The IP address of the EIP. Supports a maximum of 50 EIPs.\n","willReplaceOnChanges":true},"isp":{"type":"string","description":"The line type. Valid values:\n- `BGP` (default): BGP (Multi-ISP) line The BGP (Multi-ISP) line is supported in all regions.\n- `BGP_PRO`: BGP (Multi-ISP) Pro line The BGP (Multi-ISP) Pro line is supported in the China (Hong Kong), Singapore, Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions.\n\nFor more information about the BGP (Multi-ISP) line and BGP (Multi-ISP) Pro line, see the \"Line types\" section of [What is EIP?](https://www.alibabacloud.com/help/en/doc-detail/32321.html)\n\nIf you are allowed to use single-ISP bandwidth, you can also choose one of the following values:\n- `ChinaTelecom`\n- `ChinaUnicom`\n- `ChinaMobile`\n- `ChinaTelecom_L2`\n- `ChinaUnicom_L2`\n- `ChinaMobile_L2`\n\nIf your services are deployed in China East 1 Finance, this parameter is required and you must set the parameter to `BGP_FinanceCloud`.\n","willReplaceOnChanges":true},"logProject":{"type":"string","description":"The name of the Simple Log Service (SLS) project.\n"},"logStore":{"type":"string","description":"The name of the Logstore.\n"},"mode":{"type":"string","description":"The association mode. Valid values:\n- `NAT` (default): NAT mode\n- `MULTI_BINDED`: multi-EIP-to-ENI mode\n- `BINDED`: cut-network interface controller mode\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.126.0. New field 'address_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.126.0. New field 'address_name' instead."},"netmode":{"type":"string","description":"The network type. By default, this value is set to \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e, which specifies the public network type.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The billing method of the EIP. Valid values:\n- `Subscription`: subscription\n- `PayAsYouGo` (default): pay-as-you-go\n\nIf \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, set \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e to `PayByBandwidth`. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, set \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e to `PayByBandwidth` or `PayByTraffic`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Duration of purchase. When the value of \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e is `Month`, the value range of \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e. When the value of \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e is `Year`, the value range of \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. If the value of the \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e parameter is `Subscription`, this parameter is required. If the value of the \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e parameter is `PayAsYouGo`, this parameter is left blank.\n"},"pricingCycle":{"type":"string","description":"The billing cycle of the subscription EIP. Valid values:\n- `Month` (default)\n- `Year`\n\nIf \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, this parameter is required. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, this parameter is not required.\n"},"publicIpAddressPoolId":{"type":"string","description":"The ID of the IP address pool. The EIP is allocated from the IP address pool. By default, the IP address pool feature is unavailable. To use the IP address pool, apply for the privilege in the Quota Center console. For more information, see the \"Request a quota increase in the Quota Center console\" section in [Manage EIP quotas](https://www.alibabacloud.com/help/en/doc-detail/108213.html).\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which you want to move the resource.\n\n\u003e **NOTE:**   You can use resource groups to facilitate resource grouping and permission management for an Alibaba Cloud. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"securityProtectionTypes":{"type":"array","items":{"type":"string"},"description":"Security protection level.\n- When the return is empty, the basic DDoS protection is specified.\n- When \u003cspan pulumi-lang-nodejs=\"`antidosEnhanced`\" pulumi-lang-dotnet=\"`AntidosEnhanced`\" pulumi-lang-go=\"`antidosEnhanced`\" pulumi-lang-python=\"`antidos_enhanced`\" pulumi-lang-yaml=\"`antidosEnhanced`\" pulumi-lang-java=\"`antidosEnhanced`\"\u003e`antidos_enhanced`\u003c/span\u003e is returned, it indicates DDoS protection (enhanced version).\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"zone":{"type":"string","description":"The zone of the EIP. When the service type of the IP address pool specified by `PublicIpAddressPoolId` is CloudBox, the default value is the zone of the IP address pool. For more information, see [ListPublicIpAddressPools](https://www.alibabacloud.com/help/en/doc-detail/429433.html). \n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering EipAddress resources.\n","properties":{"activityId":{"type":"string","description":"The promotion code. This parameter is not required.\n"},"addressName":{"type":"string","description":"The EIP name.\n\nThe name must be 1 to 128 characters in length and start with a letter, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).\n\n\u003e **NOTE:**   You cannot specify this parameter if you create a subscription EIP.\n"},"allocationId":{"type":"string","description":"The ID of the EIP instance.\n","willReplaceOnChanges":true},"autoPay":{"type":"boolean","description":"Specifies whether to enable automatic payment. Valid values:\n"},"bandwidth":{"type":"string","description":"The maximum bandwidth of the specified EIP. Unit: Mbit/s.\n- When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo` and \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is set to `PayByBandwidth`, valid values for \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo` and \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is set to `PayByTraffic`, valid values for \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, valid values for \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e Mbit /s.\n"},"createTime":{"type":"string","description":"The time when the EIP was created.\n"},"deletionProtection":{"type":"boolean","description":"Specifies whether to enable deletion protection. Valid values:\n"},"description":{"type":"string","description":"The description of the EIP.\n\nThe description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.\n\n\u003e **NOTE:**   You cannot specify this parameter if you create a subscription EIP.\n"},"highDefinitionMonitorLogStatus":{"type":"string","description":"The status of fine-grained monitoring. Valid values:\n- `ON`\n- `OFF`\n","willReplaceOnChanges":true},"instanceChargeType":{"type":"string","description":". Field 'instance_charge_type' has been deprecated from provider version 1.126.0. New field 'payment_type' instead.\n","deprecationMessage":"Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field 'payment_type' instead.","willReplaceOnChanges":true},"internetChargeType":{"type":"string","description":"The metering method of the EIP. Valid values:\n- `PayByBandwidth` (default): pay-by-bandwidth.\n- `PayByTraffic`: pay-by-data-transfer.\n\nWhen \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, you must set \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e to `PayByBandwidth`.\n\nWhen \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, set \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e to `PayByBandwidth` or `PayByTraffic`.\n","willReplaceOnChanges":true},"ipAddress":{"type":"string","description":"The IP address of the EIP. Supports a maximum of 50 EIPs.\n","willReplaceOnChanges":true},"isp":{"type":"string","description":"The line type. Valid values:\n- `BGP` (default): BGP (Multi-ISP) line The BGP (Multi-ISP) line is supported in all regions.\n- `BGP_PRO`: BGP (Multi-ISP) Pro line The BGP (Multi-ISP) Pro line is supported in the China (Hong Kong), Singapore, Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions.\n\nFor more information about the BGP (Multi-ISP) line and BGP (Multi-ISP) Pro line, see the \"Line types\" section of [What is EIP?](https://www.alibabacloud.com/help/en/doc-detail/32321.html)\n\nIf you are allowed to use single-ISP bandwidth, you can also choose one of the following values:\n- `ChinaTelecom`\n- `ChinaUnicom`\n- `ChinaMobile`\n- `ChinaTelecom_L2`\n- `ChinaUnicom_L2`\n- `ChinaMobile_L2`\n\nIf your services are deployed in China East 1 Finance, this parameter is required and you must set the parameter to `BGP_FinanceCloud`.\n","willReplaceOnChanges":true},"logProject":{"type":"string","description":"The name of the Simple Log Service (SLS) project.\n"},"logStore":{"type":"string","description":"The name of the Logstore.\n"},"mode":{"type":"string","description":"The association mode. Valid values:\n- `NAT` (default): NAT mode\n- `MULTI_BINDED`: multi-EIP-to-ENI mode\n- `BINDED`: cut-network interface controller mode\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.126.0. New field 'address_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.126.0. New field 'address_name' instead."},"netmode":{"type":"string","description":"The network type. By default, this value is set to \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e, which specifies the public network type.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The billing method of the EIP. Valid values:\n- `Subscription`: subscription\n- `PayAsYouGo` (default): pay-as-you-go\n\nIf \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, set \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e to `PayByBandwidth`. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, set \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e to `PayByBandwidth` or `PayByTraffic`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Duration of purchase. When the value of \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e is `Month`, the value range of \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e. When the value of \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e is `Year`, the value range of \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. If the value of the \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e parameter is `Subscription`, this parameter is required. If the value of the \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e parameter is `PayAsYouGo`, this parameter is left blank.\n"},"pricingCycle":{"type":"string","description":"The billing cycle of the subscription EIP. Valid values:\n- `Month` (default)\n- `Year`\n\nIf \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, this parameter is required. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, this parameter is not required.\n"},"publicIpAddressPoolId":{"type":"string","description":"The ID of the IP address pool. The EIP is allocated from the IP address pool. By default, the IP address pool feature is unavailable. To use the IP address pool, apply for the privilege in the Quota Center console. For more information, see the \"Request a quota increase in the Quota Center console\" section in [Manage EIP quotas](https://www.alibabacloud.com/help/en/doc-detail/108213.html).\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which you want to move the resource.\n\n\u003e **NOTE:**   You can use resource groups to facilitate resource grouping and permission management for an Alibaba Cloud. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"securityProtectionTypes":{"type":"array","items":{"type":"string"},"description":"Security protection level.\n- When the return is empty, the basic DDoS protection is specified.\n- When \u003cspan pulumi-lang-nodejs=\"`antidosEnhanced`\" pulumi-lang-dotnet=\"`AntidosEnhanced`\" pulumi-lang-go=\"`antidosEnhanced`\" pulumi-lang-python=\"`antidos_enhanced`\" pulumi-lang-yaml=\"`antidosEnhanced`\" pulumi-lang-java=\"`antidosEnhanced`\"\u003e`antidos_enhanced`\u003c/span\u003e is returned, it indicates DDoS protection (enhanced version).\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The state of the EIP.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"zone":{"type":"string","description":"The zone of the EIP. When the service type of the IP address pool specified by `PublicIpAddressPoolId` is CloudBox, the default value is the zone of the IP address pool. For more information, see [ListPublicIpAddressPools](https://www.alibabacloud.com/help/en/doc-detail/429433.html). \n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/eipAssociation:EipAssociation":{"description":"Provides a EIP Association resource.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`alicloud.ecs.EipAssociation`\" pulumi-lang-dotnet=\"`alicloud.ecs.EipAssociation`\" pulumi-lang-go=\"`ecs.EipAssociation`\" pulumi-lang-python=\"`ecs.EipAssociation`\" pulumi-lang-yaml=\"`alicloud.ecs.EipAssociation`\" pulumi-lang-java=\"`alicloud.ecs.EipAssociation`\"\u003e`alicloud.ecs.EipAssociation`\u003c/span\u003e is useful in scenarios where EIPs are either\n pre-existing or distributed to customers or users and therefore cannot be changed.\n\n\u003e **NOTE:** From version 1.7.1, the resource support to associate EIP to SLB Instance or Nat Gateway.\n\n\u003e **NOTE:** One EIP can only be associated with ECS or SLB instance which in the VPC.\n\nFor information about EIP Association and how to use it, see [What is Association](https://www.alibabacloud.com/help/en/vpc/developer-reference/api-vpc-2016-04-28-associateeipaddress).\n\n\u003e **NOTE:** Available since v1.117.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst example = alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n});\nconst exampleGetInstanceTypes = example.then(example =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: example.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst exampleGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: name,\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.ecs.Instance(\"example\", {\n    availabilityZone: example.then(example =\u003e example.zones?.[0]?.id),\n    instanceName: name,\n    imageId: exampleGetImages.then(exampleGetImages =\u003e exampleGetImages.images?.[0]?.id),\n    instanceType: exampleGetInstanceTypes.then(exampleGetInstanceTypes =\u003e exampleGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [exampleSecurityGroup.id],\n    vswitchId: exampleSwitch.id,\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst exampleEipAddress = new alicloud.ecs.EipAddress(\"example\", {addressName: name});\nconst exampleEipAssociation = new alicloud.ecs.EipAssociation(\"example\", {\n    allocationId: exampleEipAddress.id,\n    instanceId: exampleInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nexample = alicloud.get_zones(available_resource_creation=\"Instance\")\nexample_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=example.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\nexample_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=name,\n    vpc_id=example_network.id)\nexample_instance = alicloud.ecs.Instance(\"example\",\n    availability_zone=example.zones[0].id,\n    instance_name=name,\n    image_id=example_get_images.images[0].id,\n    instance_type=example_get_instance_types.instance_types[0].id,\n    security_groups=[example_security_group.id],\n    vswitch_id=example_switch.id,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\nexample_eip_address = alicloud.ecs.EipAddress(\"example\", address_name=name)\nexample_eip_association = alicloud.ecs.EipAssociation(\"example\",\n    allocation_id=example_eip_address.id,\n    instance_id=example_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n    });\n\n    var exampleGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var exampleGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = name,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Ecs.Instance(\"example\", new()\n    {\n        AvailabilityZone = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceName = name,\n        ImageId = exampleGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = exampleGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n        VswitchId = exampleSwitch.Id,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var exampleEipAddress = new AliCloud.Ecs.EipAddress(\"example\", new()\n    {\n        AddressName = name,\n    });\n\n    var exampleEipAssociation = new AliCloud.Ecs.EipAssociation(\"example\", new()\n    {\n        AllocationId = exampleEipAddress.Id,\n        InstanceId = exampleInstance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(example.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := ecs.NewInstance(ctx, \"example\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(example.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(name),\n\t\t\tImageId:          pulumi.String(exampleGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(exampleGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId: exampleSwitch.ID(),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEipAddress, err := ecs.NewEipAddress(ctx, \"example\", \u0026ecs.EipAddressArgs{\n\t\t\tAddressName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEipAssociation(ctx, \"example\", \u0026ecs.EipAssociationArgs{\n\t\t\tAllocationId: exampleEipAddress.ID(),\n\t\t\tInstanceId:   exampleInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAddressArgs;\nimport com.pulumi.alicloud.ecs.EipAssociation;\nimport com.pulumi.alicloud.ecs.EipAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .build());\n\n        final var exampleGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(example.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        final var exampleGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .availabilityZone(example.zones()[0].id())\n            .instanceName(name)\n            .imageId(exampleGetImages.images()[0].id())\n            .instanceType(exampleGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(exampleSecurityGroup.id())\n            .vswitchId(exampleSwitch.id())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var exampleEipAddress = new EipAddress(\"exampleEipAddress\", EipAddressArgs.builder()\n            .addressName(name)\n            .build());\n\n        var exampleEipAssociation = new EipAssociation(\"exampleEipAssociation\", EipAssociationArgs.builder()\n            .allocationId(exampleEipAddress.id())\n            .instanceId(exampleInstance.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: ${name}\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:ecs:Instance\n    name: example\n    properties:\n      availabilityZone: ${example.zones[0].id}\n      instanceName: ${name}\n      imageId: ${exampleGetImages.images[0].id}\n      instanceType: ${exampleGetInstanceTypes.instanceTypes[0].id}\n      securityGroups:\n        - ${exampleSecurityGroup.id}\n      vswitchId: ${exampleSwitch.id}\n      tags:\n        Created: TF\n        For: example\n  exampleEipAddress:\n    type: alicloud:ecs:EipAddress\n    name: example\n    properties:\n      addressName: ${name}\n  exampleEipAssociation:\n    type: alicloud:ecs:EipAssociation\n    name: example\n    properties:\n      allocationId: ${exampleEipAddress.id}\n      instanceId: ${exampleInstance.id}\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n  exampleGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${example.zones[0].id}\n        cpuCoreCount: 1\n        memorySize: 2\n  exampleGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEIP Association can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/eipAssociation:EipAssociation example \u003callocation_id\u003e:\u003cinstance_id\u003e\n```\n\n","properties":{"allocationId":{"type":"string","description":"The ID of the EIP instance.\n"},"force":{"type":"boolean","description":"Specifies whether to disassociate the EIP from a NAT gateway if a DNAT or SNAT entry is added to the NAT gateway. Valid values:\n"},"instanceId":{"type":"string","description":"The ID of the instance with which you want to associate the EIP. You can enter the ID of a NAT gateway, CLB instance, ECS instance, secondary ENI, HAVIP, or IP address.\n"},"instanceType":{"type":"string","description":"The type of the instance with which you want to associate the EIP. Valid values:\n- `Nat`: NAT gateway\n- `SlbInstance`: CLB instance\n- `EcsInstance` (default): ECS instance\n- `NetworkInterface`: secondary ENI\n- `HaVip`: HAVIP\n- `IpAddress`: IP address\n\n\u003e **NOTE:**   The default value is `EcsInstance`. If the instance with which you want to associate the EIP is not an ECS instance, this parameter is required.\n"},"mode":{"type":"string","description":"The association mode. Valid values:\n- `NAT` (default): NAT mode\n- `MULTI_BINDED`: multi-EIP-to-ENI mode\n- `BINDED`: cut-network interface controller mode\n\n\u003e **NOTE:**   This parameter is required only when \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to `NetworkInterface`.\n"},"privateIpAddress":{"type":"string","description":"The IP address in the CIDR block of the vSwitch.\n\nIf you leave this parameter empty, the system allocates a private IP address based on the VPC ID and vSwitch ID.\n\n\u003e **NOTE:**   This parameter is required if \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to `IpAddress`, which indicates that the EIP is to be associated with an IP address.\n"},"vpcId":{"type":"string","description":"The ID of the VPC in which an IPv4 gateway is created. The VPC and the EIP must be in the same region.\n\nWhen you associate an EIP with an IP address, the system can enable the IP address to access the Internet based on VPC route configurations.\n\n\u003e **NOTE:**   This parameter is required if \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to `IpAddress`, which indicates that the EIP is to be associated with an IP address.\n"}},"required":["allocationId","instanceId","instanceType","mode"],"inputProperties":{"allocationId":{"type":"string","description":"The ID of the EIP instance.\n","willReplaceOnChanges":true},"force":{"type":"boolean","description":"Specifies whether to disassociate the EIP from a NAT gateway if a DNAT or SNAT entry is added to the NAT gateway. Valid values:\n"},"instanceId":{"type":"string","description":"The ID of the instance with which you want to associate the EIP. You can enter the ID of a NAT gateway, CLB instance, ECS instance, secondary ENI, HAVIP, or IP address.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of the instance with which you want to associate the EIP. Valid values:\n- `Nat`: NAT gateway\n- `SlbInstance`: CLB instance\n- `EcsInstance` (default): ECS instance\n- `NetworkInterface`: secondary ENI\n- `HaVip`: HAVIP\n- `IpAddress`: IP address\n\n\u003e **NOTE:**   The default value is `EcsInstance`. If the instance with which you want to associate the EIP is not an ECS instance, this parameter is required.\n","willReplaceOnChanges":true},"mode":{"type":"string","description":"The association mode. Valid values:\n- `NAT` (default): NAT mode\n- `MULTI_BINDED`: multi-EIP-to-ENI mode\n- `BINDED`: cut-network interface controller mode\n\n\u003e **NOTE:**   This parameter is required only when \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to `NetworkInterface`.\n"},"privateIpAddress":{"type":"string","description":"The IP address in the CIDR block of the vSwitch.\n\nIf you leave this parameter empty, the system allocates a private IP address based on the VPC ID and vSwitch ID.\n\n\u003e **NOTE:**   This parameter is required if \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to `IpAddress`, which indicates that the EIP is to be associated with an IP address.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the VPC in which an IPv4 gateway is created. The VPC and the EIP must be in the same region.\n\nWhen you associate an EIP with an IP address, the system can enable the IP address to access the Internet based on VPC route configurations.\n\n\u003e **NOTE:**   This parameter is required if \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to `IpAddress`, which indicates that the EIP is to be associated with an IP address.\n","willReplaceOnChanges":true}},"requiredInputs":["allocationId","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering EipAssociation resources.\n","properties":{"allocationId":{"type":"string","description":"The ID of the EIP instance.\n","willReplaceOnChanges":true},"force":{"type":"boolean","description":"Specifies whether to disassociate the EIP from a NAT gateway if a DNAT or SNAT entry is added to the NAT gateway. Valid values:\n"},"instanceId":{"type":"string","description":"The ID of the instance with which you want to associate the EIP. You can enter the ID of a NAT gateway, CLB instance, ECS instance, secondary ENI, HAVIP, or IP address.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of the instance with which you want to associate the EIP. Valid values:\n- `Nat`: NAT gateway\n- `SlbInstance`: CLB instance\n- `EcsInstance` (default): ECS instance\n- `NetworkInterface`: secondary ENI\n- `HaVip`: HAVIP\n- `IpAddress`: IP address\n\n\u003e **NOTE:**   The default value is `EcsInstance`. If the instance with which you want to associate the EIP is not an ECS instance, this parameter is required.\n","willReplaceOnChanges":true},"mode":{"type":"string","description":"The association mode. Valid values:\n- `NAT` (default): NAT mode\n- `MULTI_BINDED`: multi-EIP-to-ENI mode\n- `BINDED`: cut-network interface controller mode\n\n\u003e **NOTE:**   This parameter is required only when \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to `NetworkInterface`.\n"},"privateIpAddress":{"type":"string","description":"The IP address in the CIDR block of the vSwitch.\n\nIf you leave this parameter empty, the system allocates a private IP address based on the VPC ID and vSwitch ID.\n\n\u003e **NOTE:**   This parameter is required if \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to `IpAddress`, which indicates that the EIP is to be associated with an IP address.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the VPC in which an IPv4 gateway is created. The VPC and the EIP must be in the same region.\n\nWhen you associate an EIP with an IP address, the system can enable the IP address to access the Internet based on VPC route configurations.\n\n\u003e **NOTE:**   This parameter is required if \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e is set to `IpAddress`, which indicates that the EIP is to be associated with an IP address.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/eipSegmentAddress:EipSegmentAddress":{"description":"Provides a EIP Segment Address resource.\n\nFor information about EIP Segment Address and how to use it, see [What is Segment Address](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/allocateeipsegmentaddress).\n\n\u003e **NOTE:** Available since v1.207.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ecs.EipSegmentAddress(\"default\", {\n    eipMask: \"28\",\n    bandwidth: \"5\",\n    isp: \"BGP\",\n    internetChargeType: \"PayByBandwidth\",\n    netmode: \"public\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ecs.EipSegmentAddress(\"default\",\n    eip_mask=\"28\",\n    bandwidth=\"5\",\n    isp=\"BGP\",\n    internet_charge_type=\"PayByBandwidth\",\n    netmode=\"public\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ecs.EipSegmentAddress(\"default\", new()\n    {\n        EipMask = \"28\",\n        Bandwidth = \"5\",\n        Isp = \"BGP\",\n        InternetChargeType = \"PayByBandwidth\",\n        Netmode = \"public\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ecs.NewEipSegmentAddress(ctx, \"default\", \u0026ecs.EipSegmentAddressArgs{\n\t\t\tEipMask:            pulumi.String(\"28\"),\n\t\t\tBandwidth:          pulumi.String(\"5\"),\n\t\t\tIsp:                pulumi.String(\"BGP\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByBandwidth\"),\n\t\t\tNetmode:            pulumi.String(\"public\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EipSegmentAddress;\nimport com.pulumi.alicloud.ecs.EipSegmentAddressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new EipSegmentAddress(\"default\", EipSegmentAddressArgs.builder()\n            .eipMask(\"28\")\n            .bandwidth(\"5\")\n            .isp(\"BGP\")\n            .internetChargeType(\"PayByBandwidth\")\n            .netmode(\"public\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ecs:EipSegmentAddress\n    properties:\n      eipMask: '28'\n      bandwidth: '5'\n      isp: BGP\n      internetChargeType: PayByBandwidth\n      netmode: public\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEIP Segment Address can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/eipSegmentAddress:EipSegmentAddress example \u003cid\u003e\n```\n\n","properties":{"bandwidth":{"type":"string","description":"The maximum bandwidth of the contiguous EIP group. Unit: Mbit/s.\n- Valid values when `InstanceChargeType` is set to `PostPaid` and `InternetChargeType` is set to `PayByBandwidth`: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e.****\n- Valid values when `InstanceChargeType` is set to `PostPaid` and `InternetChargeType` is set to `PayByTraffic`: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e.****\n- Valid values when `InstanceChargeType` is set to `PrePaid`: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.****\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. Unit: Mbit/s.\n"},"createTime":{"type":"string","description":"The time when the contiguous Elastic IP address group was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"eipMask":{"type":"string","description":"The subnet mask of the contiguous EIP group. Valid values:\n"},"internetChargeType":{"type":"string","description":"The metering method of the contiguous EIP group. Valid values:\n- `PayByBandwidth` (default)\n- `PayByTraffic`\n"},"isp":{"type":"string","description":"The line type. Valid values:\n- `BGP` (default): BGP (Multi-ISP) line The BGP (Multi-ISP) line is supported in all regions.\n- `BGP_PRO`: BGP (Multi-ISP) Pro line BGP (Multi-ISP) Pro line is supported only in the China (Hong Kong), Singapore, Japan (Tokyo), Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions.\n\nFor more information about the BGP (Multi-ISP) line and BGP (Multi-ISP) Pro line, see [EIP line types](https://www.alibabacloud.com/help/en/doc-detail/32321.html).\n\nIf you are allowed to use single-ISP bandwidth, you can also use one of the following values:\n- `ChinaTelecom`\n- `ChinaUnicom`\n- `ChinaMobile`\n- `ChinaTelecom_L2`\n- `ChinaUnicom_L2`\n- `ChinaMobile_L2`\n\nIf your services are deployed in China East 1 Finance, this parameter is required and you must set the parameter to `BGP_FinanceCloud`.\n"},"netmode":{"type":"string","description":"The network type. Set the value to \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e, which specifies the public network type.\n"},"resourceGroupId":{"type":"string","description":"The resource group ID.\n"},"segmentAddressName":{"type":"string","description":"The name of the contiguous Elastic IP address group.\n"},"status":{"type":"string","description":"The status of the resource\n"},"zone":{"type":"string","description":"The zone of the contiguous EIP group.\n"}},"required":["createTime","eipMask","segmentAddressName","status","zone"],"inputProperties":{"bandwidth":{"type":"string","description":"The maximum bandwidth of the contiguous EIP group. Unit: Mbit/s.\n- Valid values when `InstanceChargeType` is set to `PostPaid` and `InternetChargeType` is set to `PayByBandwidth`: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e.****\n- Valid values when `InstanceChargeType` is set to `PostPaid` and `InternetChargeType` is set to `PayByTraffic`: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e.****\n- Valid values when `InstanceChargeType` is set to `PrePaid`: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.****\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. Unit: Mbit/s.\n"},"eipMask":{"type":"string","description":"The subnet mask of the contiguous EIP group. Valid values:\n"},"internetChargeType":{"type":"string","description":"The metering method of the contiguous EIP group. Valid values:\n- `PayByBandwidth` (default)\n- `PayByTraffic`\n"},"isp":{"type":"string","description":"The line type. Valid values:\n- `BGP` (default): BGP (Multi-ISP) line The BGP (Multi-ISP) line is supported in all regions.\n- `BGP_PRO`: BGP (Multi-ISP) Pro line BGP (Multi-ISP) Pro line is supported only in the China (Hong Kong), Singapore, Japan (Tokyo), Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions.\n\nFor more information about the BGP (Multi-ISP) line and BGP (Multi-ISP) Pro line, see [EIP line types](https://www.alibabacloud.com/help/en/doc-detail/32321.html).\n\nIf you are allowed to use single-ISP bandwidth, you can also use one of the following values:\n- `ChinaTelecom`\n- `ChinaUnicom`\n- `ChinaMobile`\n- `ChinaTelecom_L2`\n- `ChinaUnicom_L2`\n- `ChinaMobile_L2`\n\nIf your services are deployed in China East 1 Finance, this parameter is required and you must set the parameter to `BGP_FinanceCloud`.\n"},"netmode":{"type":"string","description":"The network type. Set the value to \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e, which specifies the public network type.\n"},"resourceGroupId":{"type":"string","description":"The resource group ID.\n"},"zone":{"type":"string","description":"The zone of the contiguous EIP group.\n","willReplaceOnChanges":true}},"requiredInputs":["eipMask"],"stateInputs":{"description":"Input properties used for looking up and filtering EipSegmentAddress resources.\n","properties":{"bandwidth":{"type":"string","description":"The maximum bandwidth of the contiguous EIP group. Unit: Mbit/s.\n- Valid values when `InstanceChargeType` is set to `PostPaid` and `InternetChargeType` is set to `PayByBandwidth`: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e.****\n- Valid values when `InstanceChargeType` is set to `PostPaid` and `InternetChargeType` is set to `PayByTraffic`: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e.****\n- Valid values when `InstanceChargeType` is set to `PrePaid`: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.****\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. Unit: Mbit/s.\n"},"createTime":{"type":"string","description":"The time when the contiguous Elastic IP address group was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"eipMask":{"type":"string","description":"The subnet mask of the contiguous EIP group. Valid values:\n"},"internetChargeType":{"type":"string","description":"The metering method of the contiguous EIP group. Valid values:\n- `PayByBandwidth` (default)\n- `PayByTraffic`\n"},"isp":{"type":"string","description":"The line type. Valid values:\n- `BGP` (default): BGP (Multi-ISP) line The BGP (Multi-ISP) line is supported in all regions.\n- `BGP_PRO`: BGP (Multi-ISP) Pro line BGP (Multi-ISP) Pro line is supported only in the China (Hong Kong), Singapore, Japan (Tokyo), Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions.\n\nFor more information about the BGP (Multi-ISP) line and BGP (Multi-ISP) Pro line, see [EIP line types](https://www.alibabacloud.com/help/en/doc-detail/32321.html).\n\nIf you are allowed to use single-ISP bandwidth, you can also use one of the following values:\n- `ChinaTelecom`\n- `ChinaUnicom`\n- `ChinaMobile`\n- `ChinaTelecom_L2`\n- `ChinaUnicom_L2`\n- `ChinaMobile_L2`\n\nIf your services are deployed in China East 1 Finance, this parameter is required and you must set the parameter to `BGP_FinanceCloud`.\n"},"netmode":{"type":"string","description":"The network type. Set the value to \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e, which specifies the public network type.\n"},"resourceGroupId":{"type":"string","description":"The resource group ID.\n"},"segmentAddressName":{"type":"string","description":"The name of the contiguous Elastic IP address group.\n"},"status":{"type":"string","description":"The status of the resource\n"},"zone":{"type":"string","description":"The zone of the contiguous EIP group.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/elasticityAssurance:ElasticityAssurance":{"description":"Provides a ECS Elasticity Assurance resource.\n\n\n\nFor information about ECS Elasticity Assurance and how to use it, see [What is Elasticity Assurance](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/createelasticityassurance).\n\n\u003e **NOTE:** Available since v1.196.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultGetInstanceTypes = alicloud.ecs.getInstanceTypes({\n    instanceTypeFamily: \"ecs.c6\",\n});\nconst defaultElasticityAssurance = new alicloud.ecs.ElasticityAssurance(\"default\", {\n    instanceAmount: 1,\n    description: \"before\",\n    zoneIds: [defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.availabilityZones?.[0])],\n    privatePoolOptionsName: name,\n    period: 1,\n    privatePoolOptionsMatchCriteria: \"Open\",\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    periodUnit: \"Month\",\n    assuranceTimes: \"Unlimited\",\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(instance_type_family=\"ecs.c6\")\ndefault_elasticity_assurance = alicloud.ecs.ElasticityAssurance(\"default\",\n    instance_amount=1,\n    description=\"before\",\n    zone_ids=[default_get_instance_types.instance_types[0].availability_zones[0]],\n    private_pool_options_name=name,\n    period=1,\n    private_pool_options_match_criteria=\"Open\",\n    instance_type=default_get_instance_types.instance_types[0].id,\n    period_unit=\"Month\",\n    assurance_times=\"Unlimited\",\n    resource_group_id=default.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        InstanceTypeFamily = \"ecs.c6\",\n    });\n\n    var defaultElasticityAssurance = new AliCloud.Ecs.ElasticityAssurance(\"default\", new()\n    {\n        InstanceAmount = 1,\n        Description = \"before\",\n        ZoneIds = new[]\n        {\n            defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.AvailabilityZones[0]),\n        },\n        PrivatePoolOptionsName = name,\n        Period = 1,\n        PrivatePoolOptionsMatchCriteria = \"Open\",\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        PeriodUnit = \"Month\",\n        AssuranceTimes = \"Unlimited\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tInstanceTypeFamily: pulumi.StringRef(\"ecs.c6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewElasticityAssurance(ctx, \"default\", \u0026ecs.ElasticityAssuranceArgs{\n\t\t\tInstanceAmount: pulumi.Int(1),\n\t\t\tDescription:    pulumi.String(\"before\"),\n\t\t\tZoneIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(defaultGetInstanceTypes.InstanceTypes[0].AvailabilityZones[0]),\n\t\t\t},\n\t\t\tPrivatePoolOptionsName:          pulumi.String(name),\n\t\t\tPeriod:                          pulumi.Int(1),\n\t\t\tPrivatePoolOptionsMatchCriteria: pulumi.String(\"Open\"),\n\t\t\tInstanceType:                    pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tPeriodUnit:                      pulumi.String(\"Month\"),\n\t\t\tAssuranceTimes:                  pulumi.String(\"Unlimited\"),\n\t\t\tResourceGroupId:                 pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.ElasticityAssurance;\nimport com.pulumi.alicloud.ecs.ElasticityAssuranceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .instanceTypeFamily(\"ecs.c6\")\n            .build());\n\n        var defaultElasticityAssurance = new ElasticityAssurance(\"defaultElasticityAssurance\", ElasticityAssuranceArgs.builder()\n            .instanceAmount(1)\n            .description(\"before\")\n            .zoneIds(defaultGetInstanceTypes.instanceTypes()[0].availabilityZones()[0])\n            .privatePoolOptionsName(name)\n            .period(1)\n            .privatePoolOptionsMatchCriteria(\"Open\")\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .periodUnit(\"Month\")\n            .assuranceTimes(\"Unlimited\")\n            .resourceGroupId(default_.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultElasticityAssurance:\n    type: alicloud:ecs:ElasticityAssurance\n    name: default\n    properties:\n      instanceAmount: 1\n      description: before\n      zoneIds:\n        - ${defaultGetInstanceTypes.instanceTypes[0].availabilityZones[0]}\n      privatePoolOptionsName: ${name}\n      period: 1\n      privatePoolOptionsMatchCriteria: Open\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      periodUnit: Month\n      assuranceTimes: Unlimited\n      resourceGroupId: ${default.ids[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        instanceTypeFamily: ecs.c6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Elasticity Assurance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/elasticityAssurance:ElasticityAssurance example \u003cid\u003e\n```\n\n","properties":{"assuranceTimes":{"type":"string","description":"The total number of times that the elasticity assurance can be applied. Set the value to Unlimited. This value indicates that the elasticity assurance can be applied an unlimited number of times within its effective duration. Default value: Unlimited.\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to enable auto-renewal for the elasticity assurance. Valid values:\n- true\n- false\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"The auto-renewal period. Unit: month. Valid values: 1, 2, 3, 6, 12, 24, and 36.\n- Default value when `PeriodUnit` is set to Month: 1.\n- Default value when `PeriodUnit` is set to Year: 12.\n\n\u003e **NOTE:**  If you set `AutoRenew` to true, you must specify this parameter.\n"},"autoRenewPeriodUnit":{"type":"string","description":"Unit of duration. Value range:\n- Month: Month\n- Year: Year\n\nDefault value: Year\n"},"description":{"type":"string","description":"Description of flexible guarantee service.\n"},"elasticityAssuranceId":{"type":"string","description":"The first ID of the resource\n"},"endTime":{"type":"string","description":"Flexible guarantee service failure time.\n"},"instanceAmount":{"type":"integer","description":"The total number of instances for which to reserve the capacity of an instance type. Valid values: 1 to 1000. **NOTE:** From version 1.261.0, \u003cspan pulumi-lang-nodejs=\"`instanceAmount`\" pulumi-lang-dotnet=\"`InstanceAmount`\" pulumi-lang-go=\"`instanceAmount`\" pulumi-lang-python=\"`instance_amount`\" pulumi-lang-yaml=\"`instanceAmount`\" pulumi-lang-java=\"`instanceAmount`\"\u003e`instance_amount`\u003c/span\u003e can be modified.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the instance. Possible value: PostPaid. Currently, only pay-as-you-go is supported.\n"},"instanceType":{"type":"string","description":"Instance type. Currently, only one instance type is supported.\n"},"period":{"type":"integer","description":"Length of purchase. The unit of duration is determined by the 'period_unit' parameter. Default value: 1.\n- When the \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e parameter is set to Month, the valid values are 1, 2, 3, 4, 5, 6, 7, 8, and 9.\n- When the \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e parameter is set to Year, the valid values are 1, 2, 3, 4, and 5.\n"},"periodUnit":{"type":"string","description":"Duration unit. Value range:-Month: Month-Year: YearDefault value: Year\n"},"privatePoolOptionsMatchCriteria":{"type":"string","description":"The matching mode of flexible guarantee service. Possible values:-Open: flexible guarantee service for Open mode.-Target: specifies the flexible guarantee service of the mode.\n"},"privatePoolOptionsName":{"type":"string","description":"The name of the flexible protection service.\n"},"regionId":{"type":"string","description":"(Available since v1.261.0) The region ID of the elasticity assurance.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"startTime":{"type":"string","description":"Flexible guarantee service effective time.\n"},"startTimeType":{"type":"string","description":"Flexible guarantee effective way. Possible values:-Now: Effective immediately.-Later: the specified time takes effect.\n"},"status":{"type":"string","description":"The status of flexible guarantee services. Possible values:-Preparing: in preparation.-Prepared: to take effect.-Active: in effect.-Released: Released.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag key-value pair information bound by the elastic guarantee service.\n"},"usedAssuranceTimes":{"type":"integer","description":"This parameter is not yet available.\n"},"zoneIds":{"type":"array","items":{"type":"string"},"description":"The zone ID of the region to which the elastic Protection Service belongs. Currently, only the creation of flexible protection services in one available area is supported.\n"}},"required":["assuranceTimes","autoRenewPeriodUnit","elasticityAssuranceId","endTime","instanceAmount","instanceChargeType","instanceType","privatePoolOptionsMatchCriteria","privatePoolOptionsName","regionId","resourceGroupId","startTime","startTimeType","status","usedAssuranceTimes","zoneIds"],"inputProperties":{"assuranceTimes":{"type":"string","description":"The total number of times that the elasticity assurance can be applied. Set the value to Unlimited. This value indicates that the elasticity assurance can be applied an unlimited number of times within its effective duration. Default value: Unlimited.\n","willReplaceOnChanges":true},"autoRenew":{"type":"boolean","description":"Specifies whether to enable auto-renewal for the elasticity assurance. Valid values:\n- true\n- false\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"The auto-renewal period. Unit: month. Valid values: 1, 2, 3, 6, 12, 24, and 36.\n- Default value when `PeriodUnit` is set to Month: 1.\n- Default value when `PeriodUnit` is set to Year: 12.\n\n\u003e **NOTE:**  If you set `AutoRenew` to true, you must specify this parameter.\n"},"autoRenewPeriodUnit":{"type":"string","description":"Unit of duration. Value range:\n- Month: Month\n- Year: Year\n\nDefault value: Year\n"},"description":{"type":"string","description":"Description of flexible guarantee service.\n"},"instanceAmount":{"type":"integer","description":"The total number of instances for which to reserve the capacity of an instance type. Valid values: 1 to 1000. **NOTE:** From version 1.261.0, \u003cspan pulumi-lang-nodejs=\"`instanceAmount`\" pulumi-lang-dotnet=\"`InstanceAmount`\" pulumi-lang-go=\"`instanceAmount`\" pulumi-lang-python=\"`instance_amount`\" pulumi-lang-yaml=\"`instanceAmount`\" pulumi-lang-java=\"`instanceAmount`\"\u003e`instance_amount`\u003c/span\u003e can be modified.\n"},"instanceType":{"type":"string","description":"Instance type. Currently, only one instance type is supported.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Length of purchase. The unit of duration is determined by the 'period_unit' parameter. Default value: 1.\n- When the \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e parameter is set to Month, the valid values are 1, 2, 3, 4, 5, 6, 7, 8, and 9.\n- When the \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e parameter is set to Year, the valid values are 1, 2, 3, 4, and 5.\n"},"periodUnit":{"type":"string","description":"Duration unit. Value range:-Month: Month-Year: YearDefault value: Year\n"},"privatePoolOptionsMatchCriteria":{"type":"string","description":"The matching mode of flexible guarantee service. Possible values:-Open: flexible guarantee service for Open mode.-Target: specifies the flexible guarantee service of the mode.\n","willReplaceOnChanges":true},"privatePoolOptionsName":{"type":"string","description":"The name of the flexible protection service.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"startTime":{"type":"string","description":"Flexible guarantee service effective time.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag key-value pair information bound by the elastic guarantee service.\n"},"zoneIds":{"type":"array","items":{"type":"string"},"description":"The zone ID of the region to which the elastic Protection Service belongs. Currently, only the creation of flexible protection services in one available area is supported.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceAmount","instanceType","zoneIds"],"stateInputs":{"description":"Input properties used for looking up and filtering ElasticityAssurance resources.\n","properties":{"assuranceTimes":{"type":"string","description":"The total number of times that the elasticity assurance can be applied. Set the value to Unlimited. This value indicates that the elasticity assurance can be applied an unlimited number of times within its effective duration. Default value: Unlimited.\n","willReplaceOnChanges":true},"autoRenew":{"type":"boolean","description":"Specifies whether to enable auto-renewal for the elasticity assurance. Valid values:\n- true\n- false\n\nDefault value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"The auto-renewal period. Unit: month. Valid values: 1, 2, 3, 6, 12, 24, and 36.\n- Default value when `PeriodUnit` is set to Month: 1.\n- Default value when `PeriodUnit` is set to Year: 12.\n\n\u003e **NOTE:**  If you set `AutoRenew` to true, you must specify this parameter.\n"},"autoRenewPeriodUnit":{"type":"string","description":"Unit of duration. Value range:\n- Month: Month\n- Year: Year\n\nDefault value: Year\n"},"description":{"type":"string","description":"Description of flexible guarantee service.\n"},"elasticityAssuranceId":{"type":"string","description":"The first ID of the resource\n"},"endTime":{"type":"string","description":"Flexible guarantee service failure time.\n"},"instanceAmount":{"type":"integer","description":"The total number of instances for which to reserve the capacity of an instance type. Valid values: 1 to 1000. **NOTE:** From version 1.261.0, \u003cspan pulumi-lang-nodejs=\"`instanceAmount`\" pulumi-lang-dotnet=\"`InstanceAmount`\" pulumi-lang-go=\"`instanceAmount`\" pulumi-lang-python=\"`instance_amount`\" pulumi-lang-yaml=\"`instanceAmount`\" pulumi-lang-java=\"`instanceAmount`\"\u003e`instance_amount`\u003c/span\u003e can be modified.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the instance. Possible value: PostPaid. Currently, only pay-as-you-go is supported.\n"},"instanceType":{"type":"string","description":"Instance type. Currently, only one instance type is supported.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Length of purchase. The unit of duration is determined by the 'period_unit' parameter. Default value: 1.\n- When the \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e parameter is set to Month, the valid values are 1, 2, 3, 4, 5, 6, 7, 8, and 9.\n- When the \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e parameter is set to Year, the valid values are 1, 2, 3, 4, and 5.\n"},"periodUnit":{"type":"string","description":"Duration unit. Value range:-Month: Month-Year: YearDefault value: Year\n"},"privatePoolOptionsMatchCriteria":{"type":"string","description":"The matching mode of flexible guarantee service. Possible values:-Open: flexible guarantee service for Open mode.-Target: specifies the flexible guarantee service of the mode.\n","willReplaceOnChanges":true},"privatePoolOptionsName":{"type":"string","description":"The name of the flexible protection service.\n"},"regionId":{"type":"string","description":"(Available since v1.261.0) The region ID of the elasticity assurance.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"startTime":{"type":"string","description":"Flexible guarantee service effective time.\n","willReplaceOnChanges":true},"startTimeType":{"type":"string","description":"Flexible guarantee effective way. Possible values:-Now: Effective immediately.-Later: the specified time takes effect.\n"},"status":{"type":"string","description":"The status of flexible guarantee services. Possible values:-Preparing: in preparation.-Prepared: to take effect.-Active: in effect.-Released: Released.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag key-value pair information bound by the elastic guarantee service.\n"},"usedAssuranceTimes":{"type":"integer","description":"This parameter is not yet available.\n"},"zoneIds":{"type":"array","items":{"type":"string"},"description":"The zone ID of the region to which the elastic Protection Service belongs. Currently, only the creation of flexible protection services in one available area is supported.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/hpcCluster:HpcCluster":{"description":"Provides a ECS Hpc Cluster resource.\n\nFor information about ECS Hpc Cluster and how to use it, see [What is Hpc Cluster](https://www.alibabacloud.com/help/en/doc-detail/109138.htm).\n\n\u003e **NOTE:** Available in v1.116.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.ecs.HpcCluster(\"example\", {\n    name: \"tf-testAcc\",\n    description: \"For Terraform Test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ecs.HpcCluster(\"example\",\n    name=\"tf-testAcc\",\n    description=\"For Terraform Test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Ecs.HpcCluster(\"example\", new()\n    {\n        Name = \"tf-testAcc\",\n        Description = \"For Terraform Test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewHpcCluster(ctx, \"example\", \u0026ecs.HpcClusterArgs{\n\t\t\tName:        pulumi.String(\"tf-testAcc\"),\n\t\t\tDescription: pulumi.String(\"For Terraform Test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.HpcCluster;\nimport com.pulumi.alicloud.ecs.HpcClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new HpcCluster(\"example\", HpcClusterArgs.builder()\n            .name(\"tf-testAcc\")\n            .description(\"For Terraform Test\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:ecs:HpcCluster\n    properties:\n      name: tf-testAcc\n      description: For Terraform Test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Hpc Cluster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/hpcCluster:HpcCluster example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of ECS Hpc Cluster.\n"},"name":{"type":"string","description":"The name of ECS Hpc Cluster.\n"}},"required":["name"],"inputProperties":{"description":{"type":"string","description":"The description of ECS Hpc Cluster.\n"},"name":{"type":"string","description":"The name of ECS Hpc Cluster.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering HpcCluster resources.\n","properties":{"description":{"type":"string","description":"The description of ECS Hpc Cluster.\n"},"name":{"type":"string","description":"The name of ECS Hpc Cluster.\n"}},"type":"object"}},"alicloud:ecs/image:Image":{"description":"Provides a ECS Image resource.\n\n\u003e **NOTE:**  If you want to create a template from an ECS instance, you can specify the instance ID (InstanceId) to create a custom image. You must make sure that the status of the specified instance is Running or Stopped. After a successful invocation, each disk of the specified instance has a new snapshot created.\n\n\u003e **NOTE:**  If you want to create a custom image based on the system disk of your ECS instance, you can specify one of the system disk snapshots (SnapshotId) to create a custom image. However, the specified snapshot cannot be created on or before July 15, 2013.\n\n\u003e **NOTE:**  If you want to combine snapshots of multiple disks into an image template, you can specify DiskDeviceMapping to create a custom image.\n\nFor information about ECS Image and how to use it, see [What is Image](https://www.alibabacloud.com/help/en/ecs/developer-reference/api-ecs-2014-05-26-createimage).\n\n\u003e **NOTE:** Available since v1.64.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n});\nconst defaultGetInstanceTypes = alicloud.ecs.getInstanceTypes({\n    instanceTypeFamily: \"ecs.sn1ne\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: \"terraform-example\",\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceName: \"terraform-example\",\n    securityGroups: [defaultSecurityGroup.id],\n    vswitchId: defaultSwitch.id,\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.ids?.[0]),\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.ids?.[0]),\n    internetMaxBandwidthOut: 10,\n});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultImage = new alicloud.ecs.Image(\"default\", {\n    instanceId: defaultInstance.id,\n    imageName: `terraform-example-${defaultInteger.result}`,\n    description: \"terraform-example\",\n    architecture: \"x86_64\",\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.ids?.[0]),\n    tags: {\n        FinanceDept: \"FinanceDeptJoshua\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = alicloud.get_zones(available_resource_creation=\"Instance\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(instance_type_family=\"ecs.sn1ne\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=\"terraform-example\",\n    vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    availability_zone=default.zones[0].id,\n    instance_name=\"terraform-example\",\n    security_groups=[default_security_group.id],\n    vswitch_id=default_switch.id,\n    instance_type=default_get_instance_types.ids[0],\n    image_id=default_get_images.ids[0],\n    internet_max_bandwidth_out=10)\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_image = alicloud.ecs.Image(\"default\",\n    instance_id=default_instance.id,\n    image_name=f\"terraform-example-{default_integer['result']}\",\n    description=\"terraform-example\",\n    architecture=\"x86_64\",\n    resource_group_id=default_get_resource_groups.ids[0],\n    tags={\n        \"FinanceDept\": \"FinanceDeptJoshua\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = \"terraform-example\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceName = \"terraform-example\",\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        VswitchId = defaultSwitch.Id,\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Ids[0]),\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Ids[0]),\n        InternetMaxBandwidthOut = 10,\n    });\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultImage = new AliCloud.Ecs.Image(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        ImageName = $\"terraform-example-{defaultInteger.Result}\",\n        Description = \"terraform-example\",\n        Architecture = \"x86_64\",\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0]),\n        Tags = \n        {\n            { \"FinanceDept\", \"FinanceDeptJoshua\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tInstanceTypeFamily: pulumi.StringRef(\"ecs.sn1ne\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(\"terraform-example\"),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(_default.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(\"terraform-example\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId:               defaultSwitch.ID(),\n\t\t\tInstanceType:            pulumi.String(defaultGetInstanceTypes.Ids[0]),\n\t\t\tImageId:                 pulumi.String(defaultGetImages.Ids[0]),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewImage(ctx, \"default\", \u0026ecs.ImageArgs{\n\t\t\tInstanceId:      defaultInstance.ID(),\n\t\t\tImageName:       pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t\tDescription:     pulumi.String(\"terraform-example\"),\n\t\t\tArchitecture:    pulumi.String(\"x86_64\"),\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Ids[0]),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"FinanceDept\": pulumi.String(\"FinanceDeptJoshua\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ecs.Image;\nimport com.pulumi.alicloud.ecs.ImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"terraform-example\")\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .instanceName(\"terraform-example\")\n            .securityGroups(defaultSecurityGroup.id())\n            .vswitchId(defaultSwitch.id())\n            .instanceType(defaultGetInstanceTypes.ids()[0])\n            .imageId(defaultGetImages.ids()[0])\n            .internetMaxBandwidthOut(10)\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultImage = new Image(\"defaultImage\", ImageArgs.builder()\n            .instanceId(defaultInstance.id())\n            .imageName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .description(\"terraform-example\")\n            .architecture(\"x86_64\")\n            .resourceGroupId(defaultGetResourceGroups.ids()[0])\n            .tags(Map.of(\"FinanceDept\", \"FinanceDeptJoshua\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: terraform-example\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:ecs:Instance\n    name: default\n    properties:\n      availabilityZone: ${default.zones[0].id}\n      instanceName: terraform-example\n      securityGroups:\n        - ${defaultSecurityGroup.id}\n      vswitchId: ${defaultSwitch.id}\n      instanceType: ${defaultGetInstanceTypes.ids[0]}\n      imageId: ${defaultGetImages.ids[0]}\n      internetMaxBandwidthOut: 10\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultImage:\n    type: alicloud:ecs:Image\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      imageName: terraform-example-${defaultInteger.result}\n      description: terraform-example\n      architecture: x86_64\n      resourceGroupId: ${defaultGetResourceGroups.ids[0]}\n      tags:\n        FinanceDept: FinanceDeptJoshua\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        instanceTypeFamily: ecs.sn1ne\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Image can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/image:Image example \u003cid\u003e\n```\n\n","properties":{"architecture":{"type":"string","description":"The system architecture of the system disk. If you specify a data disk snapshot to create the system disk of the custom image, you must use Architecture to specify the system architecture of the system disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`i386`\" pulumi-lang-dotnet=\"`I386`\" pulumi-lang-go=\"`i386`\" pulumi-lang-python=\"`i386`\" pulumi-lang-yaml=\"`i386`\" pulumi-lang-java=\"`i386`\"\u003e`i386`\u003c/span\u003e, `x86\\_64`, \u003cspan pulumi-lang-nodejs=\"`arm64`\" pulumi-lang-dotnet=\"`Arm64`\" pulumi-lang-go=\"`arm64`\" pulumi-lang-python=\"`arm64`\" pulumi-lang-yaml=\"`arm64`\" pulumi-lang-java=\"`arm64`\"\u003e`arm64`\u003c/span\u003e. Default value: `x86\\_64`.\n"},"bootMode":{"type":"string","description":"The new boot mode of the image. Valid values:\n\n*   BIOS: Basic Input/Output System (BIOS)\n\n*   UEFI: Unified Extensible Firmware Interface (UEFI)\n\n*   UEFI-Preferred: BIOS and UEFI\n\n\u003e **NOTE:**   Before you change the boot mode, we recommend that you obtain the boot modes supported by the image. If you specify an unsupported boot mode for the image, ECS instances that use the image cannot start as expected. If you do not know which boot modes are supported by the image, we recommend that you use the image check feature to perform a check. For information about the image check feature, see [Overview](https://www.alibabacloud.com/help/en/doc-detail/439819.html).\n\n\u003e **NOTE:**   For information about the UEFI-Preferred boot mode, see [Best practices for ECS instance boot modes](https://www.alibabacloud.com/help/en/doc-detail/2244655.html).\n"},"createTime":{"type":"string","description":"The create time\n"},"deleteAutoSnapshot":{"type":"boolean","description":"Not the public attribute and it used to automatically delete dependence snapshots while deleting the image.\n"},"description":{"type":"string","description":"The new description of the custom image. The description must be 2 to 256 characters in length It cannot start with `http://` or `https://`. This parameter is empty by default, which specifies that the original description is retained.\n"},"detectionStrategy":{"type":"string","description":"The mode in which to check the custom image. If you do not specify this parameter, the image is not checked. Only the standard check mode is supported.\n\n\u003e **NOTE:**   This parameter is supported for most Linux and Windows operating system versions. For information about image check items and operating system limits for image check, see [Overview of image check](https://www.alibabacloud.com/help/en/doc-detail/439819.html) and [Operating system limits for image check](https://www.alibabacloud.com/help/en/doc-detail/475800.html).\n"},"diskDeviceMappings":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/ImageDiskDeviceMapping:ImageDiskDeviceMapping"},"description":"Snapshot information for the image See \u003cspan pulumi-lang-nodejs=\"`diskDeviceMapping`\" pulumi-lang-dotnet=\"`DiskDeviceMapping`\" pulumi-lang-go=\"`diskDeviceMapping`\" pulumi-lang-python=\"`disk_device_mapping`\" pulumi-lang-yaml=\"`diskDeviceMapping`\" pulumi-lang-java=\"`diskDeviceMapping`\"\u003e`disk_device_mapping`\u003c/span\u003e below.\n"},"features":{"$ref":"#/types/alicloud:ecs/ImageFeatures:ImageFeatures","description":"Features See \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e below.\n"},"force":{"type":"boolean","description":"Whether to perform forced deletion. Value range:\n- true: forcibly deletes the custom image, ignoring whether the current image is used by other instances.\n- false: The custom image is deleted normally. Before deleting the custom image, check whether the current image is used by other instances.\n\nDefault value: false\n"},"imageFamily":{"type":"string","description":"The name of the image family. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with acs: or aliyun. It cannot contain http:// or https://. It can contain letters, digits, periods (.), colons (:), underscores (\\_), and hyphens (-). By default, this parameter is empty.\n"},"imageName":{"type":"string","description":"The name of the custom image. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with acs: or aliyun. It cannot contain http:// or https://. It can contain letters, digits, periods (.), colons (:), underscores (\\_), and hyphens (-). By default, this parameter is empty. In this case, the original name is retained.\n"},"imageVersion":{"type":"string","description":"The image version.\n\n\u003e **NOTE:**  If you specify an instance by configuring `InstanceId`, and the instance uses an Alibaba Cloud Marketplace image or a custom image that is created from an Alibaba Cloud Marketplace image, you must leave this parameter empty or set this parameter to the value of ImageVersion of the instance.\n"},"instanceId":{"type":"string","description":"The instance ID.\n"},"licenseType":{"type":"string","description":"The type of the license that is used to activate the operating system after the image is imported. Set the value to BYOL. BYOL: The license that comes with the source operating system is used. When you use the BYOL license, make sure that your license key is supported by Alibaba Cloud.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.227.0. New field 'image_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.227.0. New field 'image_name' instead."},"platform":{"type":"string","description":"The operating system distribution for the system disk in the custom image. If you specify a data disk snapshot to create the system disk of the custom image, use Platform to specify the operating system distribution for the system disk. Valid values: `Aliyun`, `Anolis`, `CentOS`, `Ubuntu`, `CoreOS`, `SUSE`, `Debian`, `OpenSUSE`, `FreeBSD`, `RedHat`, `Kylin`, `UOS`, `Fedora`, `Fedora CoreOS`, `CentOS Stream`, `AlmaLinux`, `Rocky Linux`, `Gentoo`, `Customized Linux`, `Others Linux`, `Windows Server 2022`, `Windows Server 2019`, `Windows Server 2016`, `Windows Server 2012`, `Windows Server 2008`, `Windows Server 2003`. Default value: `Others Linux`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which to assign the custom image. If you do not specify this parameter, the image is assigned to the default resource group.\n\n\u003e **NOTE:**   If you call the CreateImage operation as a Resource Access Management (RAM) user who does not have the permissions to manage the default resource group and do not specify `ResourceGroupId`, the `Forbbiden: User not authorized to operate on the specified resource` error message is returned. You must specify the ID of a resource group that the RAM user has the permissions to manage or grant the RAM user the permissions to manage the default resource group before you call the CreateImage operation again.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot that you want to use to create the custom image.\n"},"status":{"type":"string","description":"The status of the image. By default, if you do not specify this parameter, only images in the Available state are returned.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["bootMode","createTime","diskDeviceMappings","features","imageName","name","platform","resourceGroupId","status"],"inputProperties":{"architecture":{"type":"string","description":"The system architecture of the system disk. If you specify a data disk snapshot to create the system disk of the custom image, you must use Architecture to specify the system architecture of the system disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`i386`\" pulumi-lang-dotnet=\"`I386`\" pulumi-lang-go=\"`i386`\" pulumi-lang-python=\"`i386`\" pulumi-lang-yaml=\"`i386`\" pulumi-lang-java=\"`i386`\"\u003e`i386`\u003c/span\u003e, `x86\\_64`, \u003cspan pulumi-lang-nodejs=\"`arm64`\" pulumi-lang-dotnet=\"`Arm64`\" pulumi-lang-go=\"`arm64`\" pulumi-lang-python=\"`arm64`\" pulumi-lang-yaml=\"`arm64`\" pulumi-lang-java=\"`arm64`\"\u003e`arm64`\u003c/span\u003e. Default value: `x86\\_64`.\n","willReplaceOnChanges":true},"bootMode":{"type":"string","description":"The new boot mode of the image. Valid values:\n\n*   BIOS: Basic Input/Output System (BIOS)\n\n*   UEFI: Unified Extensible Firmware Interface (UEFI)\n\n*   UEFI-Preferred: BIOS and UEFI\n\n\u003e **NOTE:**   Before you change the boot mode, we recommend that you obtain the boot modes supported by the image. If you specify an unsupported boot mode for the image, ECS instances that use the image cannot start as expected. If you do not know which boot modes are supported by the image, we recommend that you use the image check feature to perform a check. For information about the image check feature, see [Overview](https://www.alibabacloud.com/help/en/doc-detail/439819.html).\n\n\u003e **NOTE:**   For information about the UEFI-Preferred boot mode, see [Best practices for ECS instance boot modes](https://www.alibabacloud.com/help/en/doc-detail/2244655.html).\n"},"deleteAutoSnapshot":{"type":"boolean","description":"Not the public attribute and it used to automatically delete dependence snapshots while deleting the image.\n"},"description":{"type":"string","description":"The new description of the custom image. The description must be 2 to 256 characters in length It cannot start with `http://` or `https://`. This parameter is empty by default, which specifies that the original description is retained.\n"},"detectionStrategy":{"type":"string","description":"The mode in which to check the custom image. If you do not specify this parameter, the image is not checked. Only the standard check mode is supported.\n\n\u003e **NOTE:**   This parameter is supported for most Linux and Windows operating system versions. For information about image check items and operating system limits for image check, see [Overview of image check](https://www.alibabacloud.com/help/en/doc-detail/439819.html) and [Operating system limits for image check](https://www.alibabacloud.com/help/en/doc-detail/475800.html).\n"},"diskDeviceMappings":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/ImageDiskDeviceMapping:ImageDiskDeviceMapping"},"description":"Snapshot information for the image See \u003cspan pulumi-lang-nodejs=\"`diskDeviceMapping`\" pulumi-lang-dotnet=\"`DiskDeviceMapping`\" pulumi-lang-go=\"`diskDeviceMapping`\" pulumi-lang-python=\"`disk_device_mapping`\" pulumi-lang-yaml=\"`diskDeviceMapping`\" pulumi-lang-java=\"`diskDeviceMapping`\"\u003e`disk_device_mapping`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"features":{"$ref":"#/types/alicloud:ecs/ImageFeatures:ImageFeatures","description":"Features See \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e below.\n"},"force":{"type":"boolean","description":"Whether to perform forced deletion. Value range:\n- true: forcibly deletes the custom image, ignoring whether the current image is used by other instances.\n- false: The custom image is deleted normally. Before deleting the custom image, check whether the current image is used by other instances.\n\nDefault value: false\n"},"imageFamily":{"type":"string","description":"The name of the image family. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with acs: or aliyun. It cannot contain http:// or https://. It can contain letters, digits, periods (.), colons (:), underscores (\\_), and hyphens (-). By default, this parameter is empty.\n"},"imageName":{"type":"string","description":"The name of the custom image. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with acs: or aliyun. It cannot contain http:// or https://. It can contain letters, digits, periods (.), colons (:), underscores (\\_), and hyphens (-). By default, this parameter is empty. In this case, the original name is retained.\n"},"imageVersion":{"type":"string","description":"The image version.\n\n\u003e **NOTE:**  If you specify an instance by configuring `InstanceId`, and the instance uses an Alibaba Cloud Marketplace image or a custom image that is created from an Alibaba Cloud Marketplace image, you must leave this parameter empty or set this parameter to the value of ImageVersion of the instance.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The instance ID.\n"},"licenseType":{"type":"string","description":"The type of the license that is used to activate the operating system after the image is imported. Set the value to BYOL. BYOL: The license that comes with the source operating system is used. When you use the BYOL license, make sure that your license key is supported by Alibaba Cloud.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.227.0. New field 'image_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.227.0. New field 'image_name' instead."},"platform":{"type":"string","description":"The operating system distribution for the system disk in the custom image. If you specify a data disk snapshot to create the system disk of the custom image, use Platform to specify the operating system distribution for the system disk. Valid values: `Aliyun`, `Anolis`, `CentOS`, `Ubuntu`, `CoreOS`, `SUSE`, `Debian`, `OpenSUSE`, `FreeBSD`, `RedHat`, `Kylin`, `UOS`, `Fedora`, `Fedora CoreOS`, `CentOS Stream`, `AlmaLinux`, `Rocky Linux`, `Gentoo`, `Customized Linux`, `Others Linux`, `Windows Server 2022`, `Windows Server 2019`, `Windows Server 2016`, `Windows Server 2012`, `Windows Server 2008`, `Windows Server 2003`. Default value: `Others Linux`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which to assign the custom image. If you do not specify this parameter, the image is assigned to the default resource group.\n\n\u003e **NOTE:**   If you call the CreateImage operation as a Resource Access Management (RAM) user who does not have the permissions to manage the default resource group and do not specify `ResourceGroupId`, the `Forbbiden: User not authorized to operate on the specified resource` error message is returned. You must specify the ID of a resource group that the RAM user has the permissions to manage or grant the RAM user the permissions to manage the default resource group before you call the CreateImage operation again.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot that you want to use to create the custom image.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Image resources.\n","properties":{"architecture":{"type":"string","description":"The system architecture of the system disk. If you specify a data disk snapshot to create the system disk of the custom image, you must use Architecture to specify the system architecture of the system disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`i386`\" pulumi-lang-dotnet=\"`I386`\" pulumi-lang-go=\"`i386`\" pulumi-lang-python=\"`i386`\" pulumi-lang-yaml=\"`i386`\" pulumi-lang-java=\"`i386`\"\u003e`i386`\u003c/span\u003e, `x86\\_64`, \u003cspan pulumi-lang-nodejs=\"`arm64`\" pulumi-lang-dotnet=\"`Arm64`\" pulumi-lang-go=\"`arm64`\" pulumi-lang-python=\"`arm64`\" pulumi-lang-yaml=\"`arm64`\" pulumi-lang-java=\"`arm64`\"\u003e`arm64`\u003c/span\u003e. Default value: `x86\\_64`.\n","willReplaceOnChanges":true},"bootMode":{"type":"string","description":"The new boot mode of the image. Valid values:\n\n*   BIOS: Basic Input/Output System (BIOS)\n\n*   UEFI: Unified Extensible Firmware Interface (UEFI)\n\n*   UEFI-Preferred: BIOS and UEFI\n\n\u003e **NOTE:**   Before you change the boot mode, we recommend that you obtain the boot modes supported by the image. If you specify an unsupported boot mode for the image, ECS instances that use the image cannot start as expected. If you do not know which boot modes are supported by the image, we recommend that you use the image check feature to perform a check. For information about the image check feature, see [Overview](https://www.alibabacloud.com/help/en/doc-detail/439819.html).\n\n\u003e **NOTE:**   For information about the UEFI-Preferred boot mode, see [Best practices for ECS instance boot modes](https://www.alibabacloud.com/help/en/doc-detail/2244655.html).\n"},"createTime":{"type":"string","description":"The create time\n"},"deleteAutoSnapshot":{"type":"boolean","description":"Not the public attribute and it used to automatically delete dependence snapshots while deleting the image.\n"},"description":{"type":"string","description":"The new description of the custom image. The description must be 2 to 256 characters in length It cannot start with `http://` or `https://`. This parameter is empty by default, which specifies that the original description is retained.\n"},"detectionStrategy":{"type":"string","description":"The mode in which to check the custom image. If you do not specify this parameter, the image is not checked. Only the standard check mode is supported.\n\n\u003e **NOTE:**   This parameter is supported for most Linux and Windows operating system versions. For information about image check items and operating system limits for image check, see [Overview of image check](https://www.alibabacloud.com/help/en/doc-detail/439819.html) and [Operating system limits for image check](https://www.alibabacloud.com/help/en/doc-detail/475800.html).\n"},"diskDeviceMappings":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/ImageDiskDeviceMapping:ImageDiskDeviceMapping"},"description":"Snapshot information for the image See \u003cspan pulumi-lang-nodejs=\"`diskDeviceMapping`\" pulumi-lang-dotnet=\"`DiskDeviceMapping`\" pulumi-lang-go=\"`diskDeviceMapping`\" pulumi-lang-python=\"`disk_device_mapping`\" pulumi-lang-yaml=\"`diskDeviceMapping`\" pulumi-lang-java=\"`diskDeviceMapping`\"\u003e`disk_device_mapping`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"features":{"$ref":"#/types/alicloud:ecs/ImageFeatures:ImageFeatures","description":"Features See \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e below.\n"},"force":{"type":"boolean","description":"Whether to perform forced deletion. Value range:\n- true: forcibly deletes the custom image, ignoring whether the current image is used by other instances.\n- false: The custom image is deleted normally. Before deleting the custom image, check whether the current image is used by other instances.\n\nDefault value: false\n"},"imageFamily":{"type":"string","description":"The name of the image family. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with acs: or aliyun. It cannot contain http:// or https://. It can contain letters, digits, periods (.), colons (:), underscores (\\_), and hyphens (-). By default, this parameter is empty.\n"},"imageName":{"type":"string","description":"The name of the custom image. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with acs: or aliyun. It cannot contain http:// or https://. It can contain letters, digits, periods (.), colons (:), underscores (\\_), and hyphens (-). By default, this parameter is empty. In this case, the original name is retained.\n"},"imageVersion":{"type":"string","description":"The image version.\n\n\u003e **NOTE:**  If you specify an instance by configuring `InstanceId`, and the instance uses an Alibaba Cloud Marketplace image or a custom image that is created from an Alibaba Cloud Marketplace image, you must leave this parameter empty or set this parameter to the value of ImageVersion of the instance.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The instance ID.\n"},"licenseType":{"type":"string","description":"The type of the license that is used to activate the operating system after the image is imported. Set the value to BYOL. BYOL: The license that comes with the source operating system is used. When you use the BYOL license, make sure that your license key is supported by Alibaba Cloud.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.227.0. New field 'image_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.227.0. New field 'image_name' instead."},"platform":{"type":"string","description":"The operating system distribution for the system disk in the custom image. If you specify a data disk snapshot to create the system disk of the custom image, use Platform to specify the operating system distribution for the system disk. Valid values: `Aliyun`, `Anolis`, `CentOS`, `Ubuntu`, `CoreOS`, `SUSE`, `Debian`, `OpenSUSE`, `FreeBSD`, `RedHat`, `Kylin`, `UOS`, `Fedora`, `Fedora CoreOS`, `CentOS Stream`, `AlmaLinux`, `Rocky Linux`, `Gentoo`, `Customized Linux`, `Others Linux`, `Windows Server 2022`, `Windows Server 2019`, `Windows Server 2016`, `Windows Server 2012`, `Windows Server 2008`, `Windows Server 2003`. Default value: `Others Linux`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which to assign the custom image. If you do not specify this parameter, the image is assigned to the default resource group.\n\n\u003e **NOTE:**   If you call the CreateImage operation as a Resource Access Management (RAM) user who does not have the permissions to manage the default resource group and do not specify `ResourceGroupId`, the `Forbbiden: User not authorized to operate on the specified resource` error message is returned. You must specify the ID of a resource group that the RAM user has the permissions to manage or grant the RAM user the permissions to manage the default resource group before you call the CreateImage operation again.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot that you want to use to create the custom image.\n"},"status":{"type":"string","description":"The status of the image. By default, if you do not specify this parameter, only images in the Available state are returned.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"type":"object"}},"alicloud:ecs/imageCopy:ImageCopy":{"description":"Copies a custom image from one region to another. You can use copied images to perform operations in the target region, such as creating instances (RunInstances) and replacing system disks (ReplaceSystemDisk).\n\n\u003e **NOTE:** You can only copy the custom image when it is in the Available state.\n\n\u003e **NOTE:** You can only copy the image belonging to your Alibaba Cloud account. Images cannot be copied from one account to another.\n\n\u003e **NOTE:** If the copying is not completed, you cannot call DeleteImage to delete the image but you can call CancelCopyImage to cancel the copying.\n\n\u003e **NOTE:** Available since v1.66.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n});\nconst defaultGetInstanceTypes = alicloud.ecs.getInstanceTypes({\n    instanceTypeFamily: \"ecs.sn1ne\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: \"terraform-example\",\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceName: \"terraform-example\",\n    securityGroups: [defaultSecurityGroup.id],\n    vswitchId: defaultSwitch.id,\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.ids?.[0]),\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.ids?.[0]),\n    internetMaxBandwidthOut: 10,\n});\nconst defaultImage = new alicloud.ecs.Image(\"default\", {\n    instanceId: defaultInstance.id,\n    imageName: \"terraform-example\",\n    description: \"terraform-example\",\n});\nconst defaultImageCopy = new alicloud.ecs.ImageCopy(\"default\", {\n    sourceImageId: defaultImage.id,\n    sourceRegionId: \"cn-hangzhou\",\n    imageName: \"terraform-example\",\n    description: \"terraform-example\",\n    tags: {\n        FinanceDept: \"FinanceDeptJoshua\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_zones(available_resource_creation=\"Instance\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(instance_type_family=\"ecs.sn1ne\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=\"terraform-example\",\n    vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    availability_zone=default.zones[0].id,\n    instance_name=\"terraform-example\",\n    security_groups=[default_security_group.id],\n    vswitch_id=default_switch.id,\n    instance_type=default_get_instance_types.ids[0],\n    image_id=default_get_images.ids[0],\n    internet_max_bandwidth_out=10)\ndefault_image = alicloud.ecs.Image(\"default\",\n    instance_id=default_instance.id,\n    image_name=\"terraform-example\",\n    description=\"terraform-example\")\ndefault_image_copy = alicloud.ecs.ImageCopy(\"default\",\n    source_image_id=default_image.id,\n    source_region_id=\"cn-hangzhou\",\n    image_name=\"terraform-example\",\n    description=\"terraform-example\",\n    tags={\n        \"FinanceDept\": \"FinanceDeptJoshua\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = \"terraform-example\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceName = \"terraform-example\",\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        VswitchId = defaultSwitch.Id,\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Ids[0]),\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Ids[0]),\n        InternetMaxBandwidthOut = 10,\n    });\n\n    var defaultImage = new AliCloud.Ecs.Image(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        ImageName = \"terraform-example\",\n        Description = \"terraform-example\",\n    });\n\n    var defaultImageCopy = new AliCloud.Ecs.ImageCopy(\"default\", new()\n    {\n        SourceImageId = defaultImage.Id,\n        SourceRegionId = \"cn-hangzhou\",\n        ImageName = \"terraform-example\",\n        Description = \"terraform-example\",\n        Tags = \n        {\n            { \"FinanceDept\", \"FinanceDeptJoshua\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tInstanceTypeFamily: pulumi.StringRef(\"ecs.sn1ne\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(\"terraform-example\"),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(_default.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(\"terraform-example\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId:               defaultSwitch.ID(),\n\t\t\tInstanceType:            pulumi.String(defaultGetInstanceTypes.Ids[0]),\n\t\t\tImageId:                 pulumi.String(defaultGetImages.Ids[0]),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultImage, err := ecs.NewImage(ctx, \"default\", \u0026ecs.ImageArgs{\n\t\t\tInstanceId:  defaultInstance.ID(),\n\t\t\tImageName:   pulumi.String(\"terraform-example\"),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewImageCopy(ctx, \"default\", \u0026ecs.ImageCopyArgs{\n\t\t\tSourceImageId:  defaultImage.ID(),\n\t\t\tSourceRegionId: pulumi.String(\"cn-hangzhou\"),\n\t\t\tImageName:      pulumi.String(\"terraform-example\"),\n\t\t\tDescription:    pulumi.String(\"terraform-example\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"FinanceDept\": pulumi.String(\"FinanceDeptJoshua\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.ecs.Image;\nimport com.pulumi.alicloud.ecs.ImageArgs;\nimport com.pulumi.alicloud.ecs.ImageCopy;\nimport com.pulumi.alicloud.ecs.ImageCopyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"terraform-example\")\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .instanceName(\"terraform-example\")\n            .securityGroups(defaultSecurityGroup.id())\n            .vswitchId(defaultSwitch.id())\n            .instanceType(defaultGetInstanceTypes.ids()[0])\n            .imageId(defaultGetImages.ids()[0])\n            .internetMaxBandwidthOut(10)\n            .build());\n\n        var defaultImage = new Image(\"defaultImage\", ImageArgs.builder()\n            .instanceId(defaultInstance.id())\n            .imageName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultImageCopy = new ImageCopy(\"defaultImageCopy\", ImageCopyArgs.builder()\n            .sourceImageId(defaultImage.id())\n            .sourceRegionId(\"cn-hangzhou\")\n            .imageName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .tags(Map.of(\"FinanceDept\", \"FinanceDeptJoshua\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: terraform-example\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:ecs:Instance\n    name: default\n    properties:\n      availabilityZone: ${default.zones[0].id}\n      instanceName: terraform-example\n      securityGroups:\n        - ${defaultSecurityGroup.id}\n      vswitchId: ${defaultSwitch.id}\n      instanceType: ${defaultGetInstanceTypes.ids[0]}\n      imageId: ${defaultGetImages.ids[0]}\n      internetMaxBandwidthOut: 10\n  defaultImage:\n    type: alicloud:ecs:Image\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      imageName: terraform-example\n      description: terraform-example\n  defaultImageCopy:\n    type: alicloud:ecs:ImageCopy\n    name: default\n    properties:\n      sourceImageId: ${defaultImage.id}\n      sourceRegionId: cn-hangzhou\n      imageName: terraform-example\n      description: terraform-example\n      tags:\n        FinanceDept: FinanceDeptJoshua\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        instanceTypeFamily: ecs.sn1ne\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Attributes Reference0\n \n The following attributes are exported:\n \n* \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e - ID of the image.\n\n## Import\n\n \nimage can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/imageCopy:ImageCopy default m-uf66871ape***yg1q***\n```\n\n","properties":{"deleteAutoSnapshot":{"type":"boolean"},"description":{"type":"string","description":"The description of the image. It must be 2 to 256 characters in length and must not start with http:// or https://. Default value: null.\n"},"encrypted":{"type":"boolean","description":"Indicates whether to encrypt the image.\n"},"force":{"type":"boolean","description":"Indicates whether to force delete the custom image, Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. \n- true：Force deletes the custom image, regardless of whether the image is currently being used by other instances.\n- false：Verifies that the image is not currently in use by any other instances before deleting the image.\n"},"imageName":{"type":"string","description":"The image name. It must be 2 to 128 characters in length, and must begin with a letter or Chinese character (beginning with http:// or https:// is not allowed). It can contain digits, colons (:), underscores (_), or hyphens (-). Default value: null.\n"},"kmsKeyId":{"type":"string","description":"Key ID used to encrypt the image.\n"},"name":{"type":"string","deprecationMessage":"Attribute 'name' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e instead."},"sourceImageId":{"type":"string","description":"The source image ID.\n"},"sourceRegionId":{"type":"string","description":"The ID of the region to which the source custom image belongs. You can call [DescribeRegions](https://www.alibabacloud.com/help/doc-detail/25609.htm) to view the latest regions of Alibaba Cloud.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag value of an image. The value of N ranges from 1 to 20.\n"}},"required":["imageName","name","sourceImageId","sourceRegionId"],"inputProperties":{"deleteAutoSnapshot":{"type":"boolean"},"description":{"type":"string","description":"The description of the image. It must be 2 to 256 characters in length and must not start with http:// or https://. Default value: null.\n"},"encrypted":{"type":"boolean","description":"Indicates whether to encrypt the image.\n","willReplaceOnChanges":true},"force":{"type":"boolean","description":"Indicates whether to force delete the custom image, Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. \n- true：Force deletes the custom image, regardless of whether the image is currently being used by other instances.\n- false：Verifies that the image is not currently in use by any other instances before deleting the image.\n"},"imageName":{"type":"string","description":"The image name. It must be 2 to 128 characters in length, and must begin with a letter or Chinese character (beginning with http:// or https:// is not allowed). It can contain digits, colons (:), underscores (_), or hyphens (-). Default value: null.\n"},"kmsKeyId":{"type":"string","description":"Key ID used to encrypt the image.\n","willReplaceOnChanges":true},"name":{"type":"string","deprecationMessage":"Attribute 'name' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e instead."},"sourceImageId":{"type":"string","description":"The source image ID.\n","willReplaceOnChanges":true},"sourceRegionId":{"type":"string","description":"The ID of the region to which the source custom image belongs. You can call [DescribeRegions](https://www.alibabacloud.com/help/doc-detail/25609.htm) to view the latest regions of Alibaba Cloud.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag value of an image. The value of N ranges from 1 to 20.\n"}},"requiredInputs":["sourceImageId","sourceRegionId"],"stateInputs":{"description":"Input properties used for looking up and filtering ImageCopy resources.\n","properties":{"deleteAutoSnapshot":{"type":"boolean"},"description":{"type":"string","description":"The description of the image. It must be 2 to 256 characters in length and must not start with http:// or https://. Default value: null.\n"},"encrypted":{"type":"boolean","description":"Indicates whether to encrypt the image.\n","willReplaceOnChanges":true},"force":{"type":"boolean","description":"Indicates whether to force delete the custom image, Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. \n- true：Force deletes the custom image, regardless of whether the image is currently being used by other instances.\n- false：Verifies that the image is not currently in use by any other instances before deleting the image.\n"},"imageName":{"type":"string","description":"The image name. It must be 2 to 128 characters in length, and must begin with a letter or Chinese character (beginning with http:// or https:// is not allowed). It can contain digits, colons (:), underscores (_), or hyphens (-). Default value: null.\n"},"kmsKeyId":{"type":"string","description":"Key ID used to encrypt the image.\n","willReplaceOnChanges":true},"name":{"type":"string","deprecationMessage":"Attribute 'name' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e instead."},"sourceImageId":{"type":"string","description":"The source image ID.\n","willReplaceOnChanges":true},"sourceRegionId":{"type":"string","description":"The ID of the region to which the source custom image belongs. You can call [DescribeRegions](https://www.alibabacloud.com/help/doc-detail/25609.htm) to view the latest regions of Alibaba Cloud.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag value of an image. The value of N ranges from 1 to 20.\n"}},"type":"object"}},"alicloud:ecs/imageExport:ImageExport":{"description":"Export a custom image to the OSS bucket in the same region as the custom image.\n\n\u003e **NOTE:** If you create an ECS instance using a mirror image and create a system disk snapshot again, exporting a custom image created from the system disk snapshot is not supported.\n\n\u003e **NOTE:** Support for exporting custom images that include data disk snapshot information in the image. The number of data disks cannot exceed 4 and the maximum capacity of a single data disk cannot exceed 500 GiB.\n\n\u003e **NOTE:** Before exporting the image, you must authorize the cloud server ECS official service account to write OSS permissions through RAM.\n\n\u003e **NOTE:** Available since v1.68.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n});\nconst defaultGetInstanceTypes = alicloud.ecs.getInstanceTypes({\n    instanceTypeFamily: \"ecs.sn1ne\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: \"terraform-example\",\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceName: \"terraform-example\",\n    securityGroups: [defaultSecurityGroup.id],\n    vswitchId: defaultSwitch.id,\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.ids?.[0]),\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.ids?.[0]),\n    internetMaxBandwidthOut: 10,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultImage = new alicloud.ecs.Image(\"default\", {\n    instanceId: defaultInstance.id,\n    imageName: `terraform-example-${defaultInteger.result}`,\n    description: \"terraform-example\",\n});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: `example-value-${defaultInteger.result}`});\nconst defaultImageExport = new alicloud.ecs.ImageExport(\"default\", {\n    imageId: defaultImage.id,\n    ossBucket: defaultBucket.id,\n    ossPrefix: \"ecsExport\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = alicloud.get_zones(available_resource_creation=\"Instance\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(instance_type_family=\"ecs.sn1ne\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=\"terraform-example\",\n    vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    availability_zone=default.zones[0].id,\n    instance_name=\"terraform-example\",\n    security_groups=[default_security_group.id],\n    vswitch_id=default_switch.id,\n    instance_type=default_get_instance_types.ids[0],\n    image_id=default_get_images.ids[0],\n    internet_max_bandwidth_out=10)\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_image = alicloud.ecs.Image(\"default\",\n    instance_id=default_instance.id,\n    image_name=f\"terraform-example-{default_integer['result']}\",\n    description=\"terraform-example\")\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=f\"example-value-{default_integer['result']}\")\ndefault_image_export = alicloud.ecs.ImageExport(\"default\",\n    image_id=default_image.id,\n    oss_bucket=default_bucket.id,\n    oss_prefix=\"ecsExport\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = \"terraform-example\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceName = \"terraform-example\",\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        VswitchId = defaultSwitch.Id,\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Ids[0]),\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Ids[0]),\n        InternetMaxBandwidthOut = 10,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultImage = new AliCloud.Ecs.Image(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        ImageName = $\"terraform-example-{defaultInteger.Result}\",\n        Description = \"terraform-example\",\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = $\"example-value-{defaultInteger.Result}\",\n    });\n\n    var defaultImageExport = new AliCloud.Ecs.ImageExport(\"default\", new()\n    {\n        ImageId = defaultImage.Id,\n        OssBucket = defaultBucket.Id,\n        OssPrefix = \"ecsExport\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tInstanceTypeFamily: pulumi.StringRef(\"ecs.sn1ne\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(\"terraform-example\"),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(_default.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(\"terraform-example\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId:               defaultSwitch.ID(),\n\t\t\tInstanceType:            pulumi.String(defaultGetInstanceTypes.Ids[0]),\n\t\t\tImageId:                 pulumi.String(defaultGetImages.Ids[0]),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultImage, err := ecs.NewImage(ctx, \"default\", \u0026ecs.ImageArgs{\n\t\t\tInstanceId:  defaultInstance.ID(),\n\t\t\tImageName:   pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"example-value-%v\", defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewImageExport(ctx, \"default\", \u0026ecs.ImageExportArgs{\n\t\t\tImageId:   defaultImage.ID(),\n\t\t\tOssBucket: defaultBucket.ID(),\n\t\t\tOssPrefix: pulumi.String(\"ecsExport\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ecs.Image;\nimport com.pulumi.alicloud.ecs.ImageArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.ecs.ImageExport;\nimport com.pulumi.alicloud.ecs.ImageExportArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"terraform-example\")\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .instanceName(\"terraform-example\")\n            .securityGroups(defaultSecurityGroup.id())\n            .vswitchId(defaultSwitch.id())\n            .instanceType(defaultGetInstanceTypes.ids()[0])\n            .imageId(defaultGetImages.ids()[0])\n            .internetMaxBandwidthOut(10)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultImage = new Image(\"defaultImage\", ImageArgs.builder()\n            .instanceId(defaultInstance.id())\n            .imageName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(String.format(\"example-value-%s\", defaultInteger.result()))\n            .build());\n\n        var defaultImageExport = new ImageExport(\"defaultImageExport\", ImageExportArgs.builder()\n            .imageId(defaultImage.id())\n            .ossBucket(defaultBucket.id())\n            .ossPrefix(\"ecsExport\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: terraform-example\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:ecs:Instance\n    name: default\n    properties:\n      availabilityZone: ${default.zones[0].id}\n      instanceName: terraform-example\n      securityGroups:\n        - ${defaultSecurityGroup.id}\n      vswitchId: ${defaultSwitch.id}\n      instanceType: ${defaultGetInstanceTypes.ids[0]}\n      imageId: ${defaultGetImages.ids[0]}\n      internetMaxBandwidthOut: 10\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultImage:\n    type: alicloud:ecs:Image\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      imageName: terraform-example-${defaultInteger.result}\n      description: terraform-example\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket: example-value-${defaultInteger.result}\n  defaultImageExport:\n    type: alicloud:ecs:ImageExport\n    name: default\n    properties:\n      imageId: ${defaultImage.id}\n      ossBucket: ${defaultBucket.id}\n      ossPrefix: ecsExport\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        instanceTypeFamily: ecs.sn1ne\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"imageId":{"type":"string","description":"The source image ID.\n"},"ossBucket":{"type":"string","description":"Save the exported OSS bucket.\n"},"ossPrefix":{"type":"string","description":"The prefix of your OSS Object. It can be composed of numbers or letters, and the character length is 1 ~ 30.\n"}},"required":["imageId","ossBucket"],"inputProperties":{"imageId":{"type":"string","description":"The source image ID.\n","willReplaceOnChanges":true},"ossBucket":{"type":"string","description":"Save the exported OSS bucket.\n","willReplaceOnChanges":true},"ossPrefix":{"type":"string","description":"The prefix of your OSS Object. It can be composed of numbers or letters, and the character length is 1 ~ 30.\n","willReplaceOnChanges":true}},"requiredInputs":["imageId","ossBucket"],"stateInputs":{"description":"Input properties used for looking up and filtering ImageExport resources.\n","properties":{"imageId":{"type":"string","description":"The source image ID.\n","willReplaceOnChanges":true},"ossBucket":{"type":"string","description":"Save the exported OSS bucket.\n","willReplaceOnChanges":true},"ossPrefix":{"type":"string","description":"The prefix of your OSS Object. It can be composed of numbers or letters, and the character length is 1 ~ 30.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/imageImport:ImageImport":{"description":"Provides a ECS Image Import resource.\n\nFor information about ECS Image Import and how to use it, see [What is Image Import](https://www.alibabacloud.com/help/en/ecs/developer-reference/api-ecs-2014-05-26-importimage).\n\n\u003e **NOTE:** Available since v1.69.0.\n\n\u003e **NOTE:** You must upload the image file to the object storage OSS in advance.\n\n\u003e **NOTE:** The region where the image is imported must be the same region as the OSS bucket where the image file is uploaded.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-image-import-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: `${name}-${_default.result}`});\nconst defaultBucketObject = new alicloud.oss.BucketObject(\"default\", {\n    bucket: defaultBucket.id,\n    key: \"fc/hello.zip\",\n    content: `    # -*- coding: utf-8 -*-\n    def handler(event, context):\n    print \\\\\"hello world\\\\\"\n    return 'hello world'\n`,\n});\nconst defaultImageImport = new alicloud.ecs.ImageImport(\"default\", {\n    architecture: \"x86_64\",\n    osType: \"linux\",\n    platform: \"Ubuntu\",\n    licenseType: \"Auto\",\n    imageName: name,\n    description: name,\n    diskDeviceMappings: [{\n        ossBucket: defaultBucket.id,\n        ossObject: defaultBucketObject.id,\n        diskImageSize: 5,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-image-import-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=f\"{name}-{default['result']}\")\ndefault_bucket_object = alicloud.oss.BucketObject(\"default\",\n    bucket=default_bucket.id,\n    key=\"fc/hello.zip\",\n    content=\"\"\"    # -*- coding: utf-8 -*-\n    def handler(event, context):\n    print \\\"hello world\\\"\n    return 'hello world'\n\"\"\")\ndefault_image_import = alicloud.ecs.ImageImport(\"default\",\n    architecture=\"x86_64\",\n    os_type=\"linux\",\n    platform=\"Ubuntu\",\n    license_type=\"Auto\",\n    image_name=name,\n    description=name,\n    disk_device_mappings=[{\n        \"oss_bucket\": default_bucket.id,\n        \"oss_object\": default_bucket_object.id,\n        \"disk_image_size\": 5,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-image-import-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultBucketObject = new AliCloud.Oss.BucketObject(\"default\", new()\n    {\n        Bucket = defaultBucket.Id,\n        Key = \"fc/hello.zip\",\n        Content = @\"    # -*- coding: utf-8 -*-\n    def handler(event, context):\n    print \\\"\"hello world\\\"\"\n    return 'hello world'\n\",\n    });\n\n    var defaultImageImport = new AliCloud.Ecs.ImageImport(\"default\", new()\n    {\n        Architecture = \"x86_64\",\n        OsType = \"linux\",\n        Platform = \"Ubuntu\",\n        LicenseType = \"Auto\",\n        ImageName = name,\n        Description = name,\n        DiskDeviceMappings = new[]\n        {\n            new AliCloud.Ecs.Inputs.ImageImportDiskDeviceMappingArgs\n            {\n                OssBucket = defaultBucket.Id,\n                OssObject = defaultBucketObject.Id,\n                DiskImageSize = 5,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-image-import-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucketObject, err := oss.NewBucketObject(ctx, \"default\", \u0026oss.BucketObjectArgs{\n\t\t\tBucket:  defaultBucket.ID(),\n\t\t\tKey:     pulumi.String(\"fc/hello.zip\"),\n\t\t\tContent: pulumi.String(\"    # -*- coding: utf-8 -*-\\n    def handler(event, context):\\n    print \\\\\\\"hello world\\\\\\\"\\n    return 'hello world'\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewImageImport(ctx, \"default\", \u0026ecs.ImageImportArgs{\n\t\t\tArchitecture: pulumi.String(\"x86_64\"),\n\t\t\tOsType:       pulumi.String(\"linux\"),\n\t\t\tPlatform:     pulumi.String(\"Ubuntu\"),\n\t\t\tLicenseType:  pulumi.String(\"Auto\"),\n\t\t\tImageName:    pulumi.String(name),\n\t\t\tDescription:  pulumi.String(name),\n\t\t\tDiskDeviceMappings: ecs.ImageImportDiskDeviceMappingArray{\n\t\t\t\t\u0026ecs.ImageImportDiskDeviceMappingArgs{\n\t\t\t\t\tOssBucket:     defaultBucket.ID(),\n\t\t\t\t\tOssObject:     defaultBucketObject.ID(),\n\t\t\t\t\tDiskImageSize: pulumi.Int(5),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketObject;\nimport com.pulumi.alicloud.oss.BucketObjectArgs;\nimport com.pulumi.alicloud.ecs.ImageImport;\nimport com.pulumi.alicloud.ecs.ImageImportArgs;\nimport com.pulumi.alicloud.ecs.inputs.ImageImportDiskDeviceMappingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-image-import-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultBucketObject = new BucketObject(\"defaultBucketObject\", BucketObjectArgs.builder()\n            .bucket(defaultBucket.id())\n            .key(\"fc/hello.zip\")\n            .content(\"\"\"\n    # -*- coding: utf-8 -*-\n    def handler(event, context):\n    print \\\"hello world\\\"\n    return 'hello world'\n            \"\"\")\n            .build());\n\n        var defaultImageImport = new ImageImport(\"defaultImageImport\", ImageImportArgs.builder()\n            .architecture(\"x86_64\")\n            .osType(\"linux\")\n            .platform(\"Ubuntu\")\n            .licenseType(\"Auto\")\n            .imageName(name)\n            .description(name)\n            .diskDeviceMappings(ImageImportDiskDeviceMappingArgs.builder()\n                .ossBucket(defaultBucket.id())\n                .ossObject(defaultBucketObject.id())\n                .diskImageSize(5)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-image-import-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket: ${name}-${default.result}\n  defaultBucketObject:\n    type: alicloud:oss:BucketObject\n    name: default\n    properties:\n      bucket: ${defaultBucket.id}\n      key: fc/hello.zip\n      content: |2\n            # -*- coding: utf-8 -*-\n            def handler(event, context):\n            print \\\"hello world\\\"\n            return 'hello world'\n  defaultImageImport:\n    type: alicloud:ecs:ImageImport\n    name: default\n    properties:\n      architecture: x86_64\n      osType: linux\n      platform: Ubuntu\n      licenseType: Auto\n      imageName: ${name}\n      description: ${name}\n      diskDeviceMappings:\n        - ossBucket: ${defaultBucket.id}\n          ossObject: ${defaultBucketObject.id}\n          diskImageSize: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Image Import can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/imageImport:ImageImport example \u003cid\u003e\n```\n\n","properties":{"architecture":{"type":"string","description":"The architecture of the image. Default value: \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`i386`\" pulumi-lang-dotnet=\"`I386`\" pulumi-lang-go=\"`i386`\" pulumi-lang-python=\"`i386`\" pulumi-lang-yaml=\"`i386`\" pulumi-lang-java=\"`i386`\"\u003e`i386`\u003c/span\u003e.\n"},"bootMode":{"type":"string","description":"The boot mode of the image. Valid values: `BIOS`, `UEFI`.\n"},"description":{"type":"string","description":"The description of the image. The \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"diskDeviceMappings":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/ImageImportDiskDeviceMapping:ImageImportDiskDeviceMapping"},"description":"The information about the custom image. See \u003cspan pulumi-lang-nodejs=\"`diskDeviceMapping`\" pulumi-lang-dotnet=\"`DiskDeviceMapping`\" pulumi-lang-go=\"`diskDeviceMapping`\" pulumi-lang-python=\"`disk_device_mapping`\" pulumi-lang-yaml=\"`diskDeviceMapping`\" pulumi-lang-java=\"`diskDeviceMapping`\"\u003e`disk_device_mapping`\u003c/span\u003e below.\n"},"imageName":{"type":"string","description":"The name of the image. The \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. The \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e must start with a letter and cannot start with acs: or aliyun. The \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e cannot contain http:// or https://. The \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e can contain letters, digits, periods (.), colons (:), underscores (_), and hyphens (-).\n"},"licenseType":{"type":"string","description":"The type of the license used to activate the operating system after the image is imported. Default value: `Auto`. Valid values: `Auto`, `Aliyun`, `BYOL`.\n"},"osType":{"type":"string","description":"The type of the operating system. Default value: \u003cspan pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\"\u003e`linux`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`windows`\" pulumi-lang-dotnet=\"`Windows`\" pulumi-lang-go=\"`windows`\" pulumi-lang-python=\"`windows`\" pulumi-lang-yaml=\"`windows`\" pulumi-lang-java=\"`windows`\"\u003e`windows`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\"\u003e`linux`\u003c/span\u003e.\n"},"platform":{"type":"string","description":"The operating system platform. More valid values refer to [ImportImage OpenAPI](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/importimage).\n\u003e **NOTE:** Before provider version 1.197.0, the default value of \u003cspan pulumi-lang-nodejs=\"`platform`\" pulumi-lang-dotnet=\"`Platform`\" pulumi-lang-go=\"`platform`\" pulumi-lang-python=\"`platform`\" pulumi-lang-yaml=\"`platform`\" pulumi-lang-java=\"`platform`\"\u003e`platform`\u003c/span\u003e is `Ubuntu`.\n"}},"required":["bootMode","diskDeviceMappings","imageName","platform"],"inputProperties":{"architecture":{"type":"string","description":"The architecture of the image. Default value: \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`i386`\" pulumi-lang-dotnet=\"`I386`\" pulumi-lang-go=\"`i386`\" pulumi-lang-python=\"`i386`\" pulumi-lang-yaml=\"`i386`\" pulumi-lang-java=\"`i386`\"\u003e`i386`\u003c/span\u003e.\n","willReplaceOnChanges":true},"bootMode":{"type":"string","description":"The boot mode of the image. Valid values: `BIOS`, `UEFI`.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the image. The \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"diskDeviceMappings":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/ImageImportDiskDeviceMapping:ImageImportDiskDeviceMapping"},"description":"The information about the custom image. See \u003cspan pulumi-lang-nodejs=\"`diskDeviceMapping`\" pulumi-lang-dotnet=\"`DiskDeviceMapping`\" pulumi-lang-go=\"`diskDeviceMapping`\" pulumi-lang-python=\"`disk_device_mapping`\" pulumi-lang-yaml=\"`diskDeviceMapping`\" pulumi-lang-java=\"`diskDeviceMapping`\"\u003e`disk_device_mapping`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"imageName":{"type":"string","description":"The name of the image. The \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. The \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e must start with a letter and cannot start with acs: or aliyun. The \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e cannot contain http:// or https://. The \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e can contain letters, digits, periods (.), colons (:), underscores (_), and hyphens (-).\n"},"licenseType":{"type":"string","description":"The type of the license used to activate the operating system after the image is imported. Default value: `Auto`. Valid values: `Auto`, `Aliyun`, `BYOL`.\n"},"osType":{"type":"string","description":"The type of the operating system. Default value: \u003cspan pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\"\u003e`linux`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`windows`\" pulumi-lang-dotnet=\"`Windows`\" pulumi-lang-go=\"`windows`\" pulumi-lang-python=\"`windows`\" pulumi-lang-yaml=\"`windows`\" pulumi-lang-java=\"`windows`\"\u003e`windows`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\"\u003e`linux`\u003c/span\u003e.\n","willReplaceOnChanges":true},"platform":{"type":"string","description":"The operating system platform. More valid values refer to [ImportImage OpenAPI](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/importimage).\n\u003e **NOTE:** Before provider version 1.197.0, the default value of \u003cspan pulumi-lang-nodejs=\"`platform`\" pulumi-lang-dotnet=\"`Platform`\" pulumi-lang-go=\"`platform`\" pulumi-lang-python=\"`platform`\" pulumi-lang-yaml=\"`platform`\" pulumi-lang-java=\"`platform`\"\u003e`platform`\u003c/span\u003e is `Ubuntu`.\n","willReplaceOnChanges":true}},"requiredInputs":["diskDeviceMappings"],"stateInputs":{"description":"Input properties used for looking up and filtering ImageImport resources.\n","properties":{"architecture":{"type":"string","description":"The architecture of the image. Default value: \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`i386`\" pulumi-lang-dotnet=\"`I386`\" pulumi-lang-go=\"`i386`\" pulumi-lang-python=\"`i386`\" pulumi-lang-yaml=\"`i386`\" pulumi-lang-java=\"`i386`\"\u003e`i386`\u003c/span\u003e.\n","willReplaceOnChanges":true},"bootMode":{"type":"string","description":"The boot mode of the image. Valid values: `BIOS`, `UEFI`.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the image. The \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"diskDeviceMappings":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/ImageImportDiskDeviceMapping:ImageImportDiskDeviceMapping"},"description":"The information about the custom image. See \u003cspan pulumi-lang-nodejs=\"`diskDeviceMapping`\" pulumi-lang-dotnet=\"`DiskDeviceMapping`\" pulumi-lang-go=\"`diskDeviceMapping`\" pulumi-lang-python=\"`disk_device_mapping`\" pulumi-lang-yaml=\"`diskDeviceMapping`\" pulumi-lang-java=\"`diskDeviceMapping`\"\u003e`disk_device_mapping`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"imageName":{"type":"string","description":"The name of the image. The \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. The \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e must start with a letter and cannot start with acs: or aliyun. The \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e cannot contain http:// or https://. The \u003cspan pulumi-lang-nodejs=\"`imageName`\" pulumi-lang-dotnet=\"`ImageName`\" pulumi-lang-go=\"`imageName`\" pulumi-lang-python=\"`image_name`\" pulumi-lang-yaml=\"`imageName`\" pulumi-lang-java=\"`imageName`\"\u003e`image_name`\u003c/span\u003e can contain letters, digits, periods (.), colons (:), underscores (_), and hyphens (-).\n"},"licenseType":{"type":"string","description":"The type of the license used to activate the operating system after the image is imported. Default value: `Auto`. Valid values: `Auto`, `Aliyun`, `BYOL`.\n"},"osType":{"type":"string","description":"The type of the operating system. Default value: \u003cspan pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\"\u003e`linux`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`windows`\" pulumi-lang-dotnet=\"`Windows`\" pulumi-lang-go=\"`windows`\" pulumi-lang-python=\"`windows`\" pulumi-lang-yaml=\"`windows`\" pulumi-lang-java=\"`windows`\"\u003e`windows`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\"\u003e`linux`\u003c/span\u003e.\n","willReplaceOnChanges":true},"platform":{"type":"string","description":"The operating system platform. More valid values refer to [ImportImage OpenAPI](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/importimage).\n\u003e **NOTE:** Before provider version 1.197.0, the default value of \u003cspan pulumi-lang-nodejs=\"`platform`\" pulumi-lang-dotnet=\"`Platform`\" pulumi-lang-go=\"`platform`\" pulumi-lang-python=\"`platform`\" pulumi-lang-yaml=\"`platform`\" pulumi-lang-java=\"`platform`\"\u003e`platform`\u003c/span\u003e is `Ubuntu`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/imagePipelineExecution:ImagePipelineExecution":{"description":"Provides a ECS Image Pipeline Execution resource.\n\nThe mirror template performs the build mirror task.\n\nFor information about ECS Image Pipeline Execution and how to use it, see [What is Image Pipeline Execution](https://www.alibabacloud.com/help/en/ecs/developer-reference/api-ecs-2014-05-26-startimagepipelineexecution).\n\n\u003e **NOTE:** Available since v1.237.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst pipelineExecution_vpc = new alicloud.vpc.Network(\"pipelineExecution-vpc\", {\n    description: \"example-pipeline\",\n    enableIpv6: true,\n    vpcName: name,\n});\nconst vs = new alicloud.vpc.Switch(\"vs\", {\n    description: \"pipelineExecution-start\",\n    vpcId: pipelineExecution_vpc.id,\n    cidrBlock: \"172.16.0.0/24\",\n    vswitchName: std.format({\n        input: \"%s1\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    zoneId: \"cn-hangzhou-i\",\n});\nconst pipelineExection_pipeline = new alicloud.ecs.EcsImagePipeline(\"pipelineExection-pipeline\", {\n    baseImageType: \"IMAGE\",\n    description: \"example\",\n    systemDiskSize: 40,\n    vswitchId: vs.id,\n    addAccounts: [\"1284387915995949\"],\n    imageName: \"example-image-pipeline\",\n    deleteInstanceOnFailure: true,\n    internetMaxBandwidthOut: 5,\n    toRegionIds: [\"cn-beijing\"],\n    baseImage: \"aliyun_3_x64_20G_dengbao_alibase_20240819.vhd\",\n    buildContent: \"COMPONENT ic-bp122acttbs2sxdyq2ky\",\n});\nconst _default = new alicloud.ecs.ImagePipelineExecution(\"default\", {imagePipelineId: pipelineExection_pipeline.id});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\npipeline_execution_vpc = alicloud.vpc.Network(\"pipelineExecution-vpc\",\n    description=\"example-pipeline\",\n    enable_ipv6=True,\n    vpc_name=name)\nvs = alicloud.vpc.Switch(\"vs\",\n    description=\"pipelineExecution-start\",\n    vpc_id=pipeline_execution_vpc.id,\n    cidr_block=\"172.16.0.0/24\",\n    vswitch_name=std.format(input=\"%s1\",\n        args=[name]).result,\n    zone_id=\"cn-hangzhou-i\")\npipeline_exection_pipeline = alicloud.ecs.EcsImagePipeline(\"pipelineExection-pipeline\",\n    base_image_type=\"IMAGE\",\n    description=\"example\",\n    system_disk_size=40,\n    vswitch_id=vs.id,\n    add_accounts=[\"1284387915995949\"],\n    image_name=\"example-image-pipeline\",\n    delete_instance_on_failure=True,\n    internet_max_bandwidth_out=5,\n    to_region_ids=[\"cn-beijing\"],\n    base_image=\"aliyun_3_x64_20G_dengbao_alibase_20240819.vhd\",\n    build_content=\"COMPONENT ic-bp122acttbs2sxdyq2ky\")\ndefault = alicloud.ecs.ImagePipelineExecution(\"default\", image_pipeline_id=pipeline_exection_pipeline.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var pipelineExecution_vpc = new AliCloud.Vpc.Network(\"pipelineExecution-vpc\", new()\n    {\n        Description = \"example-pipeline\",\n        EnableIpv6 = true,\n        VpcName = name,\n    });\n\n    var vs = new AliCloud.Vpc.Switch(\"vs\", new()\n    {\n        Description = \"pipelineExecution-start\",\n        VpcId = pipelineExecution_vpc.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        VswitchName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        ZoneId = \"cn-hangzhou-i\",\n    });\n\n    var pipelineExection_pipeline = new AliCloud.Ecs.EcsImagePipeline(\"pipelineExection-pipeline\", new()\n    {\n        BaseImageType = \"IMAGE\",\n        Description = \"example\",\n        SystemDiskSize = 40,\n        VswitchId = vs.Id,\n        AddAccounts = new[]\n        {\n            \"1284387915995949\",\n        },\n        ImageName = \"example-image-pipeline\",\n        DeleteInstanceOnFailure = true,\n        InternetMaxBandwidthOut = 5,\n        ToRegionIds = new[]\n        {\n            \"cn-beijing\",\n        },\n        BaseImage = \"aliyun_3_x64_20G_dengbao_alibase_20240819.vhd\",\n        BuildContent = \"COMPONENT ic-bp122acttbs2sxdyq2ky\",\n    });\n\n    var @default = new AliCloud.Ecs.ImagePipelineExecution(\"default\", new()\n    {\n        ImagePipelineId = pipelineExection_pipeline.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tpipelineExecution_vpc, err := vpc.NewNetwork(ctx, \"pipelineExecution-vpc\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(\"example-pipeline\"),\n\t\t\tEnableIpv6:  pulumi.Bool(true),\n\t\t\tVpcName:     pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvs, err := vpc.NewSwitch(ctx, \"vs\", \u0026vpc.SwitchArgs{\n\t\t\tDescription: pulumi.String(\"pipelineExecution-start\"),\n\t\t\tVpcId:       pipelineExecution_vpc.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(invokeFormat.Result),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-i\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpipelineExection_pipeline, err := ecs.NewEcsImagePipeline(ctx, \"pipelineExection-pipeline\", \u0026ecs.EcsImagePipelineArgs{\n\t\t\tBaseImageType:  pulumi.String(\"IMAGE\"),\n\t\t\tDescription:    pulumi.String(\"example\"),\n\t\t\tSystemDiskSize: pulumi.Int(40),\n\t\t\tVswitchId:      vs.ID(),\n\t\t\tAddAccounts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1284387915995949\"),\n\t\t\t},\n\t\t\tImageName:               pulumi.String(\"example-image-pipeline\"),\n\t\t\tDeleteInstanceOnFailure: pulumi.Bool(true),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(5),\n\t\t\tToRegionIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"cn-beijing\"),\n\t\t\t},\n\t\t\tBaseImage:    pulumi.String(\"aliyun_3_x64_20G_dengbao_alibase_20240819.vhd\"),\n\t\t\tBuildContent: pulumi.String(\"COMPONENT ic-bp122acttbs2sxdyq2ky\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewImagePipelineExecution(ctx, \"default\", \u0026ecs.ImagePipelineExecutionArgs{\n\t\t\tImagePipelineId: pipelineExection_pipeline.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.ecs.EcsImagePipeline;\nimport com.pulumi.alicloud.ecs.EcsImagePipelineArgs;\nimport com.pulumi.alicloud.ecs.ImagePipelineExecution;\nimport com.pulumi.alicloud.ecs.ImagePipelineExecutionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var pipelineExecution_vpc = new Network(\"pipelineExecution-vpc\", NetworkArgs.builder()\n            .description(\"example-pipeline\")\n            .enableIpv6(true)\n            .vpcName(name)\n            .build());\n\n        var vs = new Switch(\"vs\", SwitchArgs.builder()\n            .description(\"pipelineExecution-start\")\n            .vpcId(pipelineExecution_vpc.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .vswitchName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1\")\n                .args(name)\n                .build()).result())\n            .zoneId(\"cn-hangzhou-i\")\n            .build());\n\n        var pipelineExection_pipeline = new EcsImagePipeline(\"pipelineExection-pipeline\", EcsImagePipelineArgs.builder()\n            .baseImageType(\"IMAGE\")\n            .description(\"example\")\n            .systemDiskSize(40)\n            .vswitchId(vs.id())\n            .addAccounts(\"1284387915995949\")\n            .imageName(\"example-image-pipeline\")\n            .deleteInstanceOnFailure(true)\n            .internetMaxBandwidthOut(5)\n            .toRegionIds(\"cn-beijing\")\n            .baseImage(\"aliyun_3_x64_20G_dengbao_alibase_20240819.vhd\")\n            .buildContent(\"COMPONENT ic-bp122acttbs2sxdyq2ky\")\n            .build());\n\n        var default_ = new ImagePipelineExecution(\"default\", ImagePipelineExecutionArgs.builder()\n            .imagePipelineId(pipelineExection_pipeline.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  pipelineExecution-vpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: example-pipeline\n      enableIpv6: true\n      vpcName: ${name}\n  vs:\n    type: alicloud:vpc:Switch\n    properties:\n      description: pipelineExecution-start\n      vpcId: ${[\"pipelineExecution-vpc\"].id}\n      cidrBlock: 172.16.0.0/24\n      vswitchName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1'\n            args:\n              - ${name}\n          return: result\n      zoneId: cn-hangzhou-i\n  pipelineExection-pipeline:\n    type: alicloud:ecs:EcsImagePipeline\n    properties:\n      baseImageType: IMAGE\n      description: example\n      systemDiskSize: '40'\n      vswitchId: ${vs.id}\n      addAccounts:\n        - '1284387915995949'\n      imageName: example-image-pipeline\n      deleteInstanceOnFailure: true\n      internetMaxBandwidthOut: '5'\n      toRegionIds:\n        - cn-beijing\n      baseImage: aliyun_3_x64_20G_dengbao_alibase_20240819.vhd\n      buildContent: COMPONENT ic-bp122acttbs2sxdyq2ky\n  default:\n    type: alicloud:ecs:ImagePipelineExecution\n    properties:\n      imagePipelineId: ${[\"pipelineExection-pipeline\"].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.ecs.ImagePipelineExecution`\" pulumi-lang-dotnet=\"`alicloud.ecs.ImagePipelineExecution`\" pulumi-lang-go=\"`ecs.ImagePipelineExecution`\" pulumi-lang-python=\"`ecs.ImagePipelineExecution`\" pulumi-lang-yaml=\"`alicloud.ecs.ImagePipelineExecution`\" pulumi-lang-java=\"`alicloud.ecs.ImagePipelineExecution`\"\u003e`alicloud.ecs.ImagePipelineExecution`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ecs.ImagePipelineExecution`\" pulumi-lang-dotnet=\"`alicloud.ecs.ImagePipelineExecution`\" pulumi-lang-go=\"`ecs.ImagePipelineExecution`\" pulumi-lang-python=\"`ecs.ImagePipelineExecution`\" pulumi-lang-yaml=\"`alicloud.ecs.ImagePipelineExecution`\" pulumi-lang-java=\"`alicloud.ecs.ImagePipelineExecution`\"\u003e`alicloud.ecs.ImagePipelineExecution`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Image Pipeline Execution can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/imagePipelineExecution:ImagePipelineExecution example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The time when the image build task was created.\n"},"imagePipelineId":{"type":"string","description":"The ID of the image template.\n"},"status":{"type":"string","description":"The status of the image build task. Valid values:\n- CANCELLED: canceled. The build process has been canceled.\n"}},"required":["createTime","imagePipelineId","status"],"inputProperties":{"imagePipelineId":{"type":"string","description":"The ID of the image template.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the image build task. Valid values:\n- CANCELLED: canceled. The build process has been canceled.\n"}},"requiredInputs":["imagePipelineId"],"stateInputs":{"description":"Input properties used for looking up and filtering ImagePipelineExecution resources.\n","properties":{"createTime":{"type":"string","description":"The time when the image build task was created.\n"},"imagePipelineId":{"type":"string","description":"The ID of the image template.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the image build task. Valid values:\n- CANCELLED: canceled. The build process has been canceled.\n"}},"type":"object"}},"alicloud:ecs/imageSharePermission:ImageSharePermission":{"description":"Manage image sharing permissions. You can share your custom image to other Alibaba Cloud users. The user can use the shared custom image to create ECS instances or replace the system disk of the instance.\n\n\u003e **NOTE:** You can only share your own custom images to other Alibaba Cloud users.\n\n\u003e **NOTE:** Each custom image can be shared with up to 50 Alibaba Cloud accounts. You can submit a ticket to share with more users.\n\n\u003e **NOTE:** After creating an ECS instance using a shared image, once the custom image owner releases the image sharing relationship or deletes the custom image, the instance cannot initialize the system disk.\n\n\u003e **NOTE:** Available in 1.68.0+.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n});\nconst defaultGetInstanceTypes = alicloud.ecs.getInstanceTypes({\n    instanceTypeFamily: \"ecs.sn1ne\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: \"terraform-example\",\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceName: \"terraform-example\",\n    securityGroups: [defaultSecurityGroup.id],\n    vswitchId: defaultSwitch.id,\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.ids?.[0]),\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.ids?.[0]),\n    internetMaxBandwidthOut: 10,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultImage = new alicloud.ecs.Image(\"default\", {\n    instanceId: defaultInstance.id,\n    imageName: `terraform-example-${defaultInteger.result}`,\n    description: \"terraform-example\",\n});\nconst config = new pulumi.Config();\nconst anotherUid = config.get(\"anotherUid\") || \"123456789\";\nconst defaultImageSharePermission = new alicloud.ecs.ImageSharePermission(\"default\", {\n    imageId: defaultImage.id,\n    accountId: anotherUid,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = alicloud.get_zones(available_resource_creation=\"Instance\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(instance_type_family=\"ecs.sn1ne\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=\"terraform-example\",\n    vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    availability_zone=default.zones[0].id,\n    instance_name=\"terraform-example\",\n    security_groups=[default_security_group.id],\n    vswitch_id=default_switch.id,\n    instance_type=default_get_instance_types.ids[0],\n    image_id=default_get_images.ids[0],\n    internet_max_bandwidth_out=10)\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_image = alicloud.ecs.Image(\"default\",\n    instance_id=default_instance.id,\n    image_name=f\"terraform-example-{default_integer['result']}\",\n    description=\"terraform-example\")\nconfig = pulumi.Config()\nanother_uid = config.get(\"anotherUid\")\nif another_uid is None:\n    another_uid = \"123456789\"\ndefault_image_share_permission = alicloud.ecs.ImageSharePermission(\"default\",\n    image_id=default_image.id,\n    account_id=another_uid)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = \"terraform-example\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceName = \"terraform-example\",\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        VswitchId = defaultSwitch.Id,\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Ids[0]),\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Ids[0]),\n        InternetMaxBandwidthOut = 10,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultImage = new AliCloud.Ecs.Image(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        ImageName = $\"terraform-example-{defaultInteger.Result}\",\n        Description = \"terraform-example\",\n    });\n\n    var config = new Config();\n    var anotherUid = config.Get(\"anotherUid\") ?? \"123456789\";\n    var defaultImageSharePermission = new AliCloud.Ecs.ImageSharePermission(\"default\", new()\n    {\n        ImageId = defaultImage.Id,\n        AccountId = anotherUid,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tInstanceTypeFamily: pulumi.StringRef(\"ecs.sn1ne\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(\"terraform-example\"),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(_default.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(\"terraform-example\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId:               defaultSwitch.ID(),\n\t\t\tInstanceType:            pulumi.String(defaultGetInstanceTypes.Ids[0]),\n\t\t\tImageId:                 pulumi.String(defaultGetImages.Ids[0]),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultImage, err := ecs.NewImage(ctx, \"default\", \u0026ecs.ImageArgs{\n\t\t\tInstanceId:  defaultInstance.ID(),\n\t\t\tImageName:   pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfg := config.New(ctx, \"\")\n\t\tanotherUid := \"123456789\"\n\t\tif param := cfg.Get(\"anotherUid\"); param != \"\" {\n\t\t\tanotherUid = param\n\t\t}\n\t\t_, err = ecs.NewImageSharePermission(ctx, \"default\", \u0026ecs.ImageSharePermissionArgs{\n\t\t\tImageId:   defaultImage.ID(),\n\t\t\tAccountId: pulumi.String(anotherUid),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ecs.Image;\nimport com.pulumi.alicloud.ecs.ImageArgs;\nimport com.pulumi.alicloud.ecs.ImageSharePermission;\nimport com.pulumi.alicloud.ecs.ImageSharePermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"terraform-example\")\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .instanceName(\"terraform-example\")\n            .securityGroups(defaultSecurityGroup.id())\n            .vswitchId(defaultSwitch.id())\n            .instanceType(defaultGetInstanceTypes.ids()[0])\n            .imageId(defaultGetImages.ids()[0])\n            .internetMaxBandwidthOut(10)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultImage = new Image(\"defaultImage\", ImageArgs.builder()\n            .instanceId(defaultInstance.id())\n            .imageName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .description(\"terraform-example\")\n            .build());\n\n        final var anotherUid = config.get(\"anotherUid\").orElse(\"123456789\");\n        var defaultImageSharePermission = new ImageSharePermission(\"defaultImageSharePermission\", ImageSharePermissionArgs.builder()\n            .imageId(defaultImage.id())\n            .accountId(anotherUid)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  anotherUid:\n    type: string\n    default: '123456789'\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: terraform-example\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:ecs:Instance\n    name: default\n    properties:\n      availabilityZone: ${default.zones[0].id}\n      instanceName: terraform-example\n      securityGroups:\n        - ${defaultSecurityGroup.id}\n      vswitchId: ${defaultSwitch.id}\n      instanceType: ${defaultGetInstanceTypes.ids[0]}\n      imageId: ${defaultGetImages.ids[0]}\n      internetMaxBandwidthOut: 10\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultImage:\n    type: alicloud:ecs:Image\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      imageName: terraform-example-${defaultInteger.result}\n      description: terraform-example\n  defaultImageSharePermission:\n    type: alicloud:ecs:ImageSharePermission\n    name: default\n    properties:\n      imageId: ${defaultImage.id}\n      accountId: ${anotherUid}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        instanceTypeFamily: ecs.sn1ne\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Attributes Reference0\n \n The following attributes are exported:\n \n* \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e - ID of the image. It formats as `\u003cimage_id\u003e:\u003caccount_id\u003e`\n\n## Import\n\n \nimage can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/imageSharePermission:ImageSharePermission default m-uf66yg1q:123456789\n```\n\n","properties":{"accountId":{"type":"string","description":"Alibaba Cloud Account ID. It is used to share images.\n"},"imageId":{"type":"string","description":"The source image ID.\n"}},"required":["accountId","imageId"],"inputProperties":{"accountId":{"type":"string","description":"Alibaba Cloud Account ID. It is used to share images.\n","willReplaceOnChanges":true},"imageId":{"type":"string","description":"The source image ID.\n","willReplaceOnChanges":true}},"requiredInputs":["accountId","imageId"],"stateInputs":{"description":"Input properties used for looking up and filtering ImageSharePermission resources.\n","properties":{"accountId":{"type":"string","description":"Alibaba Cloud Account ID. It is used to share images.\n","willReplaceOnChanges":true},"imageId":{"type":"string","description":"The source image ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/instance:Instance":{"description":"Provides a ECS instance resource.\n\n\u003e **NOTE:** Available since v1.0.0\n\n\u003e **NOTE:** From version v1.213.0, you can specify \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`launchTemplateVersion`\" pulumi-lang-dotnet=\"`LaunchTemplateVersion`\" pulumi-lang-go=\"`launchTemplateVersion`\" pulumi-lang-python=\"`launch_template_version`\" pulumi-lang-yaml=\"`launchTemplateVersion`\" pulumi-lang-java=\"`launchTemplateVersion`\"\u003e`launch_template_version`\u003c/span\u003e to use a launch template. This eliminates the need to configure a large number of parameters every time you create instances.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst instanceType = config.get(\"instanceType\") || \"ecs.n4.large\";\nconst imageId = config.get(\"imageId\") || \"ubuntu_18_04_64_20G_alibase_20190624.vhd\";\n// Create a new ECS instance for VPC\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\n// Create a new ECS instance for a VPC\nconst group = new alicloud.ecs.SecurityGroup(\"group\", {\n    securityGroupName: name,\n    description: \"foo\",\n    vpcId: vpc.id,\n});\nconst key = new alicloud.kms.Key(\"key\", {\n    description: \"Hello KMS\",\n    pendingWindowInDays: 7,\n    status: \"Enabled\",\n});\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n    availableInstanceType: instanceType,\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    vpcId: vpc.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst instance = new alicloud.ecs.Instance(\"instance\", {\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    securityGroups: [group].map(__item =\u003e __item.id),\n    instanceType: instanceType,\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskName: name,\n    systemDiskDescription: \"test_foo_system_disk_description\",\n    imageId: imageId,\n    instanceName: name,\n    vswitchId: vswitch.id,\n    internetMaxBandwidthOut: 10,\n    dataDisks: [{\n        name: \"disk2\",\n        size: 20,\n        category: \"cloud_efficiency\",\n        description: \"disk2\",\n        encrypted: true,\n        kmsKeyId: key.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ninstance_type = config.get(\"instanceType\")\nif instance_type is None:\n    instance_type = \"ecs.n4.large\"\nimage_id = config.get(\"imageId\")\nif image_id is None:\n    image_id = \"ubuntu_18_04_64_20G_alibase_20190624.vhd\"\n# Create a new ECS instance for VPC\nvpc = alicloud.vpc.Network(\"vpc\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\n# Create a new ECS instance for a VPC\ngroup = alicloud.ecs.SecurityGroup(\"group\",\n    security_group_name=name,\n    description=\"foo\",\n    vpc_id=vpc.id)\nkey = alicloud.kms.Key(\"key\",\n    description=\"Hello KMS\",\n    pending_window_in_days=7,\n    status=\"Enabled\")\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\",\n    available_instance_type=instance_type)\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    vpc_id=vpc.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ninstance = alicloud.ecs.Instance(\"instance\",\n    availability_zone=default.zones[0].id,\n    security_groups=[__item.id for __item in [group]],\n    instance_type=instance_type,\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_name=name,\n    system_disk_description=\"test_foo_system_disk_description\",\n    image_id=image_id,\n    instance_name=name,\n    vswitch_id=vswitch.id,\n    internet_max_bandwidth_out=10,\n    data_disks=[{\n        \"name\": \"disk2\",\n        \"size\": 20,\n        \"category\": \"cloud_efficiency\",\n        \"description\": \"disk2\",\n        \"encrypted\": True,\n        \"kms_key_id\": key.id,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var instanceType = config.Get(\"instanceType\") ?? \"ecs.n4.large\";\n    var imageId = config.Get(\"imageId\") ?? \"ubuntu_18_04_64_20G_alibase_20190624.vhd\";\n    // Create a new ECS instance for VPC\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    // Create a new ECS instance for a VPC\n    var @group = new AliCloud.Ecs.SecurityGroup(\"group\", new()\n    {\n        SecurityGroupName = name,\n        Description = \"foo\",\n        VpcId = vpc.Id,\n    });\n\n    var key = new AliCloud.Kms.Key(\"key\", new()\n    {\n        Description = \"Hello KMS\",\n        PendingWindowInDays = 7,\n        Status = \"Enabled\",\n    });\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n        AvailableInstanceType = instanceType,\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        VpcId = vpc.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var instance = new AliCloud.Ecs.Instance(\"instance\", new()\n    {\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        SecurityGroups = new[]\n        {\n            @group,\n        }.Select(__item =\u003e __item.Id).ToList(),\n        InstanceType = instanceType,\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskName = name,\n        SystemDiskDescription = \"test_foo_system_disk_description\",\n        ImageId = imageId,\n        InstanceName = name,\n        VswitchId = vswitch.Id,\n        InternetMaxBandwidthOut = 10,\n        DataDisks = new[]\n        {\n            new AliCloud.Ecs.Inputs.InstanceDataDiskArgs\n            {\n                Name = \"disk2\",\n                Size = 20,\n                Category = \"cloud_efficiency\",\n                Description = \"disk2\",\n                Encrypted = true,\n                KmsKeyId = key.Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ninstanceType := \"ecs.n4.large\";\nif param := cfg.Get(\"instanceType\"); param != \"\"{\ninstanceType = param\n}\nimageId := \"ubuntu_18_04_64_20G_alibase_20190624.vhd\";\nif param := cfg.Get(\"imageId\"); param != \"\"{\nimageId = param\n}\n// Create a new ECS instance for VPC\nvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\n// Create a new ECS instance for a VPC\ngroup, err := ecs.NewSecurityGroup(ctx, \"group\", \u0026ecs.SecurityGroupArgs{\nSecurityGroupName: pulumi.String(name),\nDescription: pulumi.String(\"foo\"),\nVpcId: vpc.ID(),\n})\nif err != nil {\nreturn err\n}\nkey, err := kms.NewKey(ctx, \"key\", \u0026kms.KeyArgs{\nDescription: pulumi.String(\"Hello KMS\"),\nPendingWindowInDays: pulumi.Int(7),\nStatus: pulumi.String(\"Enabled\"),\n})\nif err != nil {\nreturn err\n}\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableDiskCategory: pulumi.StringRef(\"cloud_efficiency\"),\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\nAvailableInstanceType: pulumi.StringRef(instanceType),\n}, nil);\nif err != nil {\nreturn err\n}\nvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\nVpcId: vpc.ID(),\nCidrBlock: pulumi.String(\"172.16.0.0/24\"),\nZoneId: pulumi.String(_default.Zones[0].Id),\nVswitchName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\n_, err = ecs.NewInstance(ctx, \"instance\", \u0026ecs.InstanceArgs{\nAvailabilityZone: pulumi.String(_default.Zones[0].Id),\nSecurityGroups: splat0,\nInstanceType: pulumi.String(instanceType),\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nSystemDiskName: pulumi.String(name),\nSystemDiskDescription: pulumi.String(\"test_foo_system_disk_description\"),\nImageId: pulumi.String(imageId),\nInstanceName: pulumi.String(name),\nVswitchId: vswitch.ID(),\nInternetMaxBandwidthOut: pulumi.Int(10),\nDataDisks: ecs.InstanceDataDiskArray{\n\u0026ecs.InstanceDataDiskArgs{\nName: pulumi.String(\"disk2\"),\nSize: pulumi.Int(20),\nCategory: pulumi.String(\"cloud_efficiency\"),\nDescription: pulumi.String(\"disk2\"),\nEncrypted: pulumi.Bool(true),\nKmsKeyId: key.ID(),\n},\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.kms.Key;\nimport com.pulumi.alicloud.kms.KeyArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.ecs.inputs.InstanceDataDiskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var instanceType = config.get(\"instanceType\").orElse(\"ecs.n4.large\");\n        final var imageId = config.get(\"imageId\").orElse(\"ubuntu_18_04_64_20G_alibase_20190624.vhd\");\n        // Create a new ECS instance for VPC\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        // Create a new ECS instance for a VPC\n        var group = new SecurityGroup(\"group\", SecurityGroupArgs.builder()\n            .securityGroupName(name)\n            .description(\"foo\")\n            .vpcId(vpc.id())\n            .build());\n\n        var key = new Key(\"key\", KeyArgs.builder()\n            .description(\"Hello KMS\")\n            .pendingWindowInDays(7)\n            .status(\"Enabled\")\n            .build());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .availableInstanceType(instanceType)\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .vpcId(vpc.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var instance = new Instance(\"instance\", InstanceArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .securityGroups(group.stream().map(element -\u003e element.id()).collect(toList()))\n            .instanceType(instanceType)\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskName(name)\n            .systemDiskDescription(\"test_foo_system_disk_description\")\n            .imageId(imageId)\n            .instanceName(name)\n            .vswitchId(vswitch.id())\n            .internetMaxBandwidthOut(10)\n            .dataDisks(InstanceDataDiskArgs.builder()\n                .name(\"disk2\")\n                .size(20)\n                .category(\"cloud_efficiency\")\n                .description(\"disk2\")\n                .encrypted(true)\n                .kmsKeyId(key.id())\n                .build())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use the existing ecs-instance module\nto create several ECS instances one-click.\n\n## Import\n\nInstance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/instance:Instance example i-abc12345678\n```\n\n","properties":{"allocatePublicIp":{"type":"boolean","description":"It has been deprecated from version \"1.7.0\". Setting \u003cspan pulumi-lang-nodejs=\"\"internetMaxBandwidthOut\"\" pulumi-lang-dotnet=\"\"InternetMaxBandwidthOut\"\" pulumi-lang-go=\"\"internetMaxBandwidthOut\"\" pulumi-lang-python=\"\"internet_max_bandwidth_out\"\" pulumi-lang-yaml=\"\"internetMaxBandwidthOut\"\" pulumi-lang-java=\"\"internetMaxBandwidthOut\"\"\u003e\"internet_max_bandwidth_out\"\u003c/span\u003e larger than 0 can allocate a public ip address for an instance.\n","deprecationMessage":"Field 'allocate_public_ip' has been deprecated from provider version 1.6.1. Setting 'internet_max_bandwidth_out' larger than 0 will allocate public ip for instance."},"autoReleaseTime":{"type":"string","description":"The automatic release time of the `PostPaid` instance.\nThe time follows the ISO 8601 standard and is in UTC time. Format: yyyy-MM-ddTHH:mm:ssZ. It must be at least half an hour later than the current time and less than 3 years since the current time.\nSetting it to null can cancel automatic release feature, and the ECS instance will not be released automatically.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto renewal period of an instance, in the unit of month. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Default to 1. Valid value:\n- [1, 2, 3, 6, 12] when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e in \"Month\"\n- [1, 2, 3] when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e in \"Week\"\n"},"availabilityZone":{"type":"string","description":"The Zone to start the instance in. It is ignored and will be computed when set \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e.\n"},"cpu":{"type":"integer","description":"The number of vCPUs.\n"},"cpuOptions":{"$ref":"#/types/alicloud:ecs/InstanceCpuOptions:InstanceCpuOptions","description":"The options of cpu. See \u003cspan pulumi-lang-nodejs=\"`cpuOptions`\" pulumi-lang-dotnet=\"`CpuOptions`\" pulumi-lang-go=\"`cpuOptions`\" pulumi-lang-python=\"`cpu_options`\" pulumi-lang-yaml=\"`cpuOptions`\" pulumi-lang-java=\"`cpuOptions`\"\u003e`cpu_options`\u003c/span\u003e below.\n\n\u003e **NOTE:** System disk category \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e has been outdated and it only can be used none I/O Optimized ECS instances. Recommend \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e disk.\n\n\u003e **NOTE:** From version 1.5.0, instance's charge type can be changed to `PrePaid` by specifying \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e, but it is irreversible.\n\n\u003e **NOTE:** From version 1.5.0, instance's private IP address can be specified when creating VPC network instance.\n\n\u003e **NOTE:** From version 1.5.0, instance's vswitch and private IP can be changed in the same availability zone. When they are changed, the instance will reboot to make the change take effect.\n\n\u003e **NOTE:** From version 1.7.0, setting \u003cspan pulumi-lang-nodejs=\"\"internetMaxBandwidthOut\"\" pulumi-lang-dotnet=\"\"InternetMaxBandwidthOut\"\" pulumi-lang-go=\"\"internetMaxBandwidthOut\"\" pulumi-lang-python=\"\"internet_max_bandwidth_out\"\" pulumi-lang-yaml=\"\"internetMaxBandwidthOut\"\" pulumi-lang-java=\"\"internetMaxBandwidthOut\"\"\u003e\"internet_max_bandwidth_out\"\u003c/span\u003e larger than 0 can allocate a public IP for an instance.\nSetting \u003cspan pulumi-lang-nodejs=\"\"internetMaxBandwidthOut\"\" pulumi-lang-dotnet=\"\"InternetMaxBandwidthOut\"\" pulumi-lang-go=\"\"internetMaxBandwidthOut\"\" pulumi-lang-python=\"\"internet_max_bandwidth_out\"\" pulumi-lang-yaml=\"\"internetMaxBandwidthOut\"\" pulumi-lang-java=\"\"internetMaxBandwidthOut\"\"\u003e\"internet_max_bandwidth_out\"\u003c/span\u003e to 0 can release allocated public IP for VPC instance(For Classic instnace, its public IP cannot be release once it allocated, even thougth its bandwidth out is 0).\nHowever, at present, 'PrePaid' instance cannot narrow its max bandwidth out when its 'internet_charge_type' is \"PayByBandwidth\".\n\n\u003e **NOTE:** From version 1.7.0, instance's type can be changed. When it is changed, the instance will reboot to make the change take effect.\n"},"createTime":{"type":"string","description":"(Available since v1.232.0) The time when the instance was created.\n"},"creditSpecification":{"type":"string","description":"Performance mode of the t5 burstable instance. Valid values: 'Standard', 'Unlimited'.\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/InstanceDataDisk:InstanceDataDisk"},"description":"The list of data disks created with instance. See \u003cspan pulumi-lang-nodejs=\"`dataDisks`\" pulumi-lang-dotnet=\"`DataDisks`\" pulumi-lang-go=\"`dataDisks`\" pulumi-lang-python=\"`data_disks`\" pulumi-lang-yaml=\"`dataDisks`\" pulumi-lang-java=\"`dataDisks`\"\u003e`data_disks`\u003c/span\u003e below.\n"},"dedicatedHostId":{"type":"string","description":"The ID of the dedicated host on which to create the instance. If you set the DedicatedHostId parameter, the \u003cspan pulumi-lang-nodejs=\"`spotStrategy`\" pulumi-lang-dotnet=\"`SpotStrategy`\" pulumi-lang-go=\"`spotStrategy`\" pulumi-lang-python=\"`spot_strategy`\" pulumi-lang-yaml=\"`spotStrategy`\" pulumi-lang-java=\"`spotStrategy`\"\u003e`spot_strategy`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`spotPriceLimit`\" pulumi-lang-dotnet=\"`SpotPriceLimit`\" pulumi-lang-go=\"`spotPriceLimit`\" pulumi-lang-python=\"`spot_price_limit`\" pulumi-lang-yaml=\"`spotPriceLimit`\" pulumi-lang-java=\"`spotPriceLimit`\"\u003e`spot_price_limit`\u003c/span\u003e parameters cannot be set. This is because preemptible instances cannot be created on dedicated hosts.\n"},"deletionProtection":{"type":"boolean","description":"Whether enable the deletion protection or not. It does not work when the instance is spot. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"deploymentSetGroupNo":{"type":"string","description":"The group number of the instance in a deployment set when the deployment set is use.\n"},"deploymentSetId":{"type":"string","description":"The ID of the deployment set to which to deploy the instance. **NOTE:** From version 1.176.0, instance's deploymentSetId can be removed when 'deployment_set_id' = \"\".\n"},"description":{"type":"string","description":"Description of the instance, This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to send a dry-run request. Default to false.\n- true: Only a dry-run request is sent and no instance is created. The system checks whether the required parameters are set, and validates the request format, service permissions, and available ECS instances. If the validation fails, the corresponding error code is returned. If the validation succeeds, the `DryRunOperation` error code is returned.\n- false: A request is sent. If the validation succeeds, the instance is created.\n"},"enableJumboFrame":{"type":"boolean","description":"Specifies whether to enable the Jumbo Frames feature for the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"expiredTime":{"type":"string","description":"(Available since v1.232.0) The expiration time of the instance.\n"},"forceDelete":{"type":"boolean","description":"If it is true, the `PrePaid` instance will be change to `PostPaid` and then deleted forcibly.\nHowever, because of changing instance charge type has CPU core count quota limitation, so strongly recommand that \"Don't modify instance charge type frequentlly in one month\".\n"},"hostName":{"type":"string","description":"Host name of the ECS, which is a string of at least two characters. “hostname” cannot start or end with “.” or “-“. In addition, two or more consecutive “.” or “-“ symbols are not allowed. On Windows, the host name can contain a maximum of 15 characters, which can be a combination of uppercase/lowercase letters, numerals, and “-“. The host name cannot contain dots (“.”) or contain only numeric characters. When it is changed, the instance will reboot to make the change take effect.\nOn other OSs such as Linux, the host name can contain a maximum of 64 characters, which can be segments separated by dots (“.”), where each segment can contain uppercase/lowercase letters, numerals, or “_“. When it is changed, the instance will reboot to make the change take effect.\n"},"hpcClusterId":{"type":"string","description":"The ID of the Elastic High Performance Computing (E-HPC) cluster to which to assign the instance.\n"},"httpEndpoint":{"type":"string","description":"Specifies whether to enable the access channel for instance metadata. Valid values: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"httpPutResponseHopLimit":{"type":"integer","description":"**NOTE:**: This parameter is not available for use yet. The HTTP PUT response hop limit for accessing instance metadata. Valid values: 1 to 64. Default value: 1.\n"},"httpTokens":{"type":"string","description":"Specifies whether to forcefully use the security-enhanced mode (IMDSv2) to access instance metadata. Default value: optional. Valid values:\n- optional: does not forcefully use the security-enhanced mode (IMDSv2).\n- required: forcefully uses the security-enhanced mode (IMDSv2). After you set this parameter to required, you cannot access instance metadata in normal mode.\n"},"imageId":{"type":"string","description":"The Image to use for the instance. ECS instance's image can be replaced via changing \u003cspan pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\"\u003e`image_id`\u003c/span\u003e. When it is changed, the instance will reboot to make the change take effect. If you do not use \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e to specify a launch template, you must specify \u003cspan pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\"\u003e`image_id`\u003c/span\u003e.\n"},"imageOptions":{"$ref":"#/types/alicloud:ecs/InstanceImageOptions:InstanceImageOptions","description":"The options of images. See \u003cspan pulumi-lang-nodejs=\"`imageOptions`\" pulumi-lang-dotnet=\"`ImageOptions`\" pulumi-lang-go=\"`imageOptions`\" pulumi-lang-python=\"`image_options`\" pulumi-lang-yaml=\"`imageOptions`\" pulumi-lang-java=\"`imageOptions`\"\u003e`image_options`\u003c/span\u003e below.\n"},"includeDataDisks":{"type":"boolean","description":"Whether to change instance disks charge type when changing instance charge type.\n"},"instanceChargeType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`. **NOTE:** From version 1.243.0, the default value `PostPaid` will be removed.\n**NOTE:** Since 1.9.6, it can be changed each other between `PostPaid` and `PrePaid`.\nHowever, since [some limitation about CPU core count in one month](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/modifyinstancechargetype),\nthere strongly recommends that `Don't change\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003efrequentlly in one month`.\n"},"instanceName":{"type":"string","description":"The name of the ECS. This\u003cspan pulumi-lang-nodejs=\" instanceName \" pulumi-lang-dotnet=\" InstanceName \" pulumi-lang-go=\" instanceName \" pulumi-lang-python=\" instance_name \" pulumi-lang-yaml=\" instanceName \" pulumi-lang-java=\" instanceName \"\u003e instance_name \u003c/span\u003ecan have a string of 2 to 128 characters, must contain only alphanumeric characters or hyphens, such as \"-\",\".\",\"_\", and must not begin with a hyphen, and must not begin with http:// or https://. **NOTE:** From version 1.243.0, the default value `ECS-Instance` will be removed.\n"},"instanceType":{"type":"string","description":"The type of instance to start. When it is changed, the instance will reboot to make the change take effect. If you do not use \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e to specify a launch template, you must specify \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e.\n"},"internetChargeType":{"type":"string","description":"Internet charge type of the instance, Valid values are `PayByBandwidth`, `PayByTraffic`. At present, 'PrePaid' instance cannot change the value to \"PayByBandwidth\" from \"PayByTraffic\". **NOTE:** From version 1.243.0, the default value `PayByTraffic` will be removed.\n"},"internetMaxBandwidthIn":{"type":"integer","description":"Maximum incoming bandwidth from the public network, measured in Mbps (Mega bit per second). Value range: [1, 200]. If this value is not specified, then automatically sets it to 200 Mbps.\n","deprecationMessage":"The attribute is invalid and no any affect for the instance. So it has been deprecated since version v1.121.2."},"internetMaxBandwidthOut":{"type":"integer","description":"Maximum outgoing bandwidth to the public network, measured in Mbps (Mega bit per second). Value range:  [0, 100]. **NOTE:** From version 1.243.0, the default value \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e will be removed.\n"},"ipv6AddressCount":{"type":"integer","description":"The number of IPv6 addresses to randomly generate for the primary ENI. Valid values: 1 to 10. **NOTE:** You cannot specify both the \u003cspan pulumi-lang-nodejs=\"`ipv6Addresses`\" pulumi-lang-dotnet=\"`Ipv6Addresses`\" pulumi-lang-go=\"`ipv6Addresses`\" pulumi-lang-python=\"`ipv6_addresses`\" pulumi-lang-yaml=\"`ipv6Addresses`\" pulumi-lang-java=\"`ipv6Addresses`\"\u003e`ipv6_addresses`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipv6AddressCount`\" pulumi-lang-dotnet=\"`Ipv6AddressCount`\" pulumi-lang-go=\"`ipv6AddressCount`\" pulumi-lang-python=\"`ipv6_address_count`\" pulumi-lang-yaml=\"`ipv6AddressCount`\" pulumi-lang-java=\"`ipv6AddressCount`\"\u003e`ipv6_address_count`\u003c/span\u003e parameters.\n"},"ipv6Addresses":{"type":"array","items":{"type":"string"},"description":"A list of IPv6 address to be assigned to the primary ENI. Support up to 10. **NOTE:** From version 1.241.0, \u003cspan pulumi-lang-nodejs=\"`ipv6Addresses`\" pulumi-lang-dotnet=\"`Ipv6Addresses`\" pulumi-lang-go=\"`ipv6Addresses`\" pulumi-lang-python=\"`ipv6_addresses`\" pulumi-lang-yaml=\"`ipv6Addresses`\" pulumi-lang-java=\"`ipv6Addresses`\"\u003e`ipv6_addresses`\u003c/span\u003e can be modified.\n"},"isOutdated":{"type":"boolean","description":"Whether to use outdated instance type.\n"},"keyName":{"type":"string","description":"The name of key pair that can login ECS instance successfully without password. If it is specified, the password would be invalid. **NOTE:** From version 1.268.0, \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e can be modified. If you want to use \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e, We recommend you to use the resource alicloud_ecs_key_pair_attachment.\n\u003e **NOTE:** When modifying \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e, if the instance status is `Running`, the ECS instance will be rebooted; If the instance status is `Stopped`, the ECS instance status will be changed to `Running`.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to an instance. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored. When it is changed, the instance will reboot to make the change take effect.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating an instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set. When it is changed, the instance will reboot to make the change take effect.\n"},"launchTemplateId":{"type":"string","description":"The ID of the launch template. For more information, see [DescribeLaunchTemplates](https://www.alibabacloud.com/help/en/ecs/developer-reference/api-describelaunchtemplates).To use a launch template to create an instance, you must use the \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e parameter to specify the launch template.\n"},"launchTemplateName":{"type":"string","description":"The name of the launch template.\n"},"launchTemplateVersion":{"type":"string","description":"The version of the launch template. If you set \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e parameter but do not set the version number of the launch template, the default template version is used.\n"},"maintenanceAction":{"type":"string","description":"The maintenance action. Valid values: `Stop`, `AutoRecover` and `AutoRedeploy`.\n* `Stop` : stops the instance.\n* `AutoRecover` : automatically recovers the instance.\n* `AutoRedeploy` : fails the instance over, which may cause damage to the data disks attached to the instance.\n"},"maintenanceNotify":{"type":"boolean","description":"Specifies whether to send an event notification before instance shutdown. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"maintenanceTime":{"$ref":"#/types/alicloud:ecs/InstanceMaintenanceTime:InstanceMaintenanceTime","description":"The time of maintenance. See \u003cspan pulumi-lang-nodejs=\"`maintenanceTime`\" pulumi-lang-dotnet=\"`MaintenanceTime`\" pulumi-lang-go=\"`maintenanceTime`\" pulumi-lang-python=\"`maintenance_time`\" pulumi-lang-yaml=\"`maintenanceTime`\" pulumi-lang-java=\"`maintenanceTime`\"\u003e`maintenance_time`\u003c/span\u003e below.\n"},"memory":{"type":"integer","description":"The memory size of the instance. Unit: MiB.\n"},"networkCardIndex":{"type":"integer","description":"The index of the network card for Primary ENI.\n"},"networkInterfaceId":{"type":"string","description":"The ID of the Primary ENI.\n"},"networkInterfaceTrafficMode":{"type":"string","description":"The communication mode of the Primary ENI. Default value: `Standard`. Valid values:\n- `Standard`: Uses the TCP communication mode.\n- `HighPerformance`: Uses the remote direct memory access (RDMA) communication mode with Elastic RDMA Interface (ERI) enabled.\n"},"networkInterfaces":{"$ref":"#/types/alicloud:ecs/InstanceNetworkInterfaces:InstanceNetworkInterfaces","description":"The list of network interfaces created with instance. See \u003cspan pulumi-lang-nodejs=\"`networkInterfaces`\" pulumi-lang-dotnet=\"`NetworkInterfaces`\" pulumi-lang-go=\"`networkInterfaces`\" pulumi-lang-python=\"`network_interfaces`\" pulumi-lang-yaml=\"`networkInterfaces`\" pulumi-lang-java=\"`networkInterfaces`\"\u003e`network_interfaces`\u003c/span\u003e below.\n"},"operatorType":{"type":"string","description":"The operation type. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Default value: \u003cspan pulumi-lang-nodejs=\"`upgrade`\" pulumi-lang-dotnet=\"`Upgrade`\" pulumi-lang-go=\"`upgrade`\" pulumi-lang-python=\"`upgrade`\" pulumi-lang-yaml=\"`upgrade`\" pulumi-lang-java=\"`upgrade`\"\u003e`upgrade`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`upgrade`\" pulumi-lang-dotnet=\"`Upgrade`\" pulumi-lang-go=\"`upgrade`\" pulumi-lang-python=\"`upgrade`\" pulumi-lang-yaml=\"`upgrade`\" pulumi-lang-java=\"`upgrade`\"\u003e`upgrade`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`downgrade`\" pulumi-lang-dotnet=\"`Downgrade`\" pulumi-lang-go=\"`downgrade`\" pulumi-lang-python=\"`downgrade`\" pulumi-lang-yaml=\"`downgrade`\" pulumi-lang-java=\"`downgrade`\"\u003e`downgrade`\u003c/span\u003e. **NOTE:**  When the new instance type specified by the \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e parameter has lower specifications than the current instance type, you must set \u003cspan pulumi-lang-nodejs=\"`operatorType`\" pulumi-lang-dotnet=\"`OperatorType`\" pulumi-lang-go=\"`operatorType`\" pulumi-lang-python=\"`operator_type`\" pulumi-lang-yaml=\"`operatorType`\" pulumi-lang-java=\"`operatorType`\"\u003e`operator_type`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`downgrade`\" pulumi-lang-dotnet=\"`Downgrade`\" pulumi-lang-go=\"`downgrade`\" pulumi-lang-python=\"`downgrade`\" pulumi-lang-yaml=\"`downgrade`\" pulumi-lang-java=\"`downgrade`\"\u003e`downgrade`\u003c/span\u003e.\n"},"osName":{"type":"string","description":"The name of the operating system of the instance.\n"},"osType":{"type":"string","description":"The type of the operating system of the instance.\n"},"password":{"type":"string","description":"Password to an instance is a string of 8 to 30 characters. It must contain uppercase/lowercase letters and numerals, but cannot contain special symbols. When it is changed, the instance will reboot to make the change take effect.\n","secret":true},"passwordInherit":{"type":"boolean","description":"Specifies whether to use the password preset in the image. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid and required when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Valid values:\n- [1-9, 12, 24, 36, 48, 60] when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e in \"Month\"\n- [1-3] when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e in \"Week\"\n\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"periodUnit":{"type":"string","description":"The duration unit that you will buy the resource. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is 'PrePaid'. Valid value: [\"Week\", \"Month\"]. Default to \"Month\".\n"},"primaryIpAddress":{"type":"string","description":"The primary private IP address of the ENI.\n"},"privateIp":{"type":"string","description":"Instance private IP address can be specified when you creating new instance. It is valid when \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified. When it is changed, the instance will reboot to make the change take effect.\n"},"privatePoolOptionsId":{"type":"string","description":"The ID of the private pool.\n"},"privatePoolOptionsMatchCriteria":{"type":"string","description":"The type of the private pool. Default value: `None`. Valid values:\n- `Open`: Open private pool.\n- `Target`: Specified private pool. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`privatePoolOptionsMatchCriteria`\" pulumi-lang-dotnet=\"`PrivatePoolOptionsMatchCriteria`\" pulumi-lang-go=\"`privatePoolOptionsMatchCriteria`\" pulumi-lang-python=\"`private_pool_options_match_criteria`\" pulumi-lang-yaml=\"`privatePoolOptionsMatchCriteria`\" pulumi-lang-java=\"`privatePoolOptionsMatchCriteria`\"\u003e`private_pool_options_match_criteria`\u003c/span\u003e is set to `Target`, \u003cspan pulumi-lang-nodejs=\"`privatePoolOptionsId`\" pulumi-lang-dotnet=\"`PrivatePoolOptionsId`\" pulumi-lang-go=\"`privatePoolOptionsId`\" pulumi-lang-python=\"`private_pool_options_id`\" pulumi-lang-yaml=\"`privatePoolOptionsId`\" pulumi-lang-java=\"`privatePoolOptionsId`\"\u003e`private_pool_options_id`\u003c/span\u003e is required.\n- `None`: No private pool. The capacity in private pools is not used.\n"},"publicIp":{"type":"string","description":"The instance public ip.\n"},"queuePairNumber":{"type":"integer","description":"The number of queues supported by the ERI.\n"},"renewalStatus":{"type":"string","description":"Whether to renew an ECS instance automatically or not. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Default to \"Normal\". Valid values:\n- `AutoRenewal`: Enable auto renewal.\n- `Normal`: Disable auto renewal.\n- `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the instance belongs.\n"},"roleName":{"type":"string","description":"The name of the Resource Access Management (RAM) role. **NOTE:** From version 1.250.0, If you want to use \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e, We recommend you to use the resource alicloud_ecs_ram_role_attachment.\n"},"secondaryPrivateIpAddressCount":{"type":"integer","description":"The number of private IP addresses to be automatically assigned from within the CIDR block of the vswitch. **NOTE:** To assign secondary private IP addresses, you must specify \u003cspan pulumi-lang-nodejs=\"`secondaryPrivateIps`\" pulumi-lang-dotnet=\"`SecondaryPrivateIps`\" pulumi-lang-go=\"`secondaryPrivateIps`\" pulumi-lang-python=\"`secondary_private_ips`\" pulumi-lang-yaml=\"`secondaryPrivateIps`\" pulumi-lang-java=\"`secondaryPrivateIps`\"\u003e`secondary_private_ips`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-dotnet=\"`SecondaryPrivateIpAddressCount`\" pulumi-lang-go=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-python=\"`secondary_private_ip_address_count`\" pulumi-lang-yaml=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-java=\"`secondaryPrivateIpAddressCount`\"\u003e`secondary_private_ip_address_count`\u003c/span\u003e but not both.\n"},"secondaryPrivateIps":{"type":"array","items":{"type":"string"},"description":"A list of Secondary private IP addresses which is selected from within the CIDR block of the vSwitch.\n"},"securityEnhancementStrategy":{"type":"string","description":"The security enhancement strategy.\n- Active: Enable security enhancement strategy, it only works on system images.\n- Deactive: Disable security enhancement strategy, it works on all images.\n"},"securityGroups":{"type":"array","items":{"type":"string"},"description":"A list of security group ids to associate with. If you do not use \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e to specify a launch template, you must specify \u003cspan pulumi-lang-nodejs=\"`securityGroups`\" pulumi-lang-dotnet=\"`SecurityGroups`\" pulumi-lang-go=\"`securityGroups`\" pulumi-lang-python=\"`security_groups`\" pulumi-lang-yaml=\"`securityGroups`\" pulumi-lang-java=\"`securityGroups`\"\u003e`security_groups`\u003c/span\u003e.\n"},"spotDuration":{"type":"integer","description":"The retention time of the preemptive instance in hours. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e. Retention duration 2~6 is under invitation test, please submit a work order if you need to open. If the value is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, the mode is no protection period. Default value is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"spotPriceLimit":{"type":"number","description":"The hourly price threshold of a instance, and it takes effect only when parameter 'spot_strategy' is 'SpotWithPriceLimit'. Three decimals is allowed at most.\n"},"spotStrategy":{"type":"string","description":"The spot strategy of a Pay-As-You-Go instance, and it takes effect only when parameter \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is 'PostPaid'. Value range:\n- NoSpot: A regular Pay-As-You-Go instance.\n- SpotWithPriceLimit: A price threshold for a spot instance\n- SpotAsPriceGo: A price that is based on the highest Pay-As-You-Go instance\n\nDefault to NoSpot. Note: Currently, the spot instance only supports domestic site account.\n"},"startTime":{"type":"string","description":"(Available since v1.232.0) The time when the instance was last started.\n"},"status":{"type":"string","description":"The instance status. Valid values: [\"Running\", \"Stopped\"]. You can control the instance start and stop through this parameter. Default to `Running`.\n"},"stoppedMode":{"type":"string","description":"The stop mode of the pay-as-you-go instance. Valid values: `StopCharging`,`KeepCharging`, `Not-applicable`. Default value: If the prerequisites required for enabling the economical mode are met, and you have enabled this mode in the ECS console, the default value is `StopCharging`. For more information, see \"Enable the economical mode\" in [Economical mode](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/economical-mode). Otherwise, the default value is `KeepCharging`. **Note:** `Not-applicable`: Economical mode is not applicable to the instance.`\n* `KeepCharging`: standard mode. Billing of the instance continues after the instance is stopped, and resources are retained for the instance.\n* `StopCharging`: economical mode. Billing of some resources of the instance stops after the instance is stopped. When the instance is stopped, its resources such as vCPUs, memory, and public IP address are released. You may be unable to restart the instance if some types of resources are out of stock in the current region.\n"},"systemDiskAutoSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy applied to the system disk. **NOTE:** If you want to use \u003cspan pulumi-lang-nodejs=\"`systemDiskAutoSnapshotPolicyId`\" pulumi-lang-dotnet=\"`SystemDiskAutoSnapshotPolicyId`\" pulumi-lang-go=\"`systemDiskAutoSnapshotPolicyId`\" pulumi-lang-python=\"`system_disk_auto_snapshot_policy_id`\" pulumi-lang-yaml=\"`systemDiskAutoSnapshotPolicyId`\" pulumi-lang-java=\"`systemDiskAutoSnapshotPolicyId`\"\u003e`system_disk_auto_snapshot_policy_id`\u003c/span\u003e, We recommend you to use the resource alicloud_ecs_auto_snapshot_policy_attachment.\n"},"systemDiskBurstingEnabled":{"type":"boolean","description":"Specifies whether to enable the performance burst feature for the system disk. Valid values:\n"},"systemDiskCategory":{"type":"string","description":"Valid values are \u003cspan pulumi-lang-nodejs=\"`ephemeralSsd`\" pulumi-lang-dotnet=\"`EphemeralSsd`\" pulumi-lang-go=\"`ephemeralSsd`\" pulumi-lang-python=\"`ephemeral_ssd`\" pulumi-lang-yaml=\"`ephemeralSsd`\" pulumi-lang-java=\"`ephemeralSsd`\"\u003e`ephemeral_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e. only is used to some none I/O optimized instance. Valid values \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e Available since v1.184.0.\n"},"systemDiskDescription":{"type":"string","description":"The description of the system disk. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"systemDiskEncryptAlgorithm":{"type":"string","description":"The algorithm to be used to encrypt the system disk. Valid values are `aes-256`, `sm4-128`. Default value is `aes-256`.\n"},"systemDiskEncrypted":{"type":"boolean","description":"Specifies whether to encrypt the system disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"systemDiskId":{"type":"string","description":"(Available since v1.210.0) The ID of system disk.\n"},"systemDiskKmsKeyId":{"type":"string","description":"The ID of the Key Management Service (KMS) key to be used for the system disk.\n"},"systemDiskName":{"type":"string","description":"The name of the system disk. The name must be 2 to 128 characters in length and can contain letters, digits, periods (.), colons (:), underscores (_), and hyphens (-). It must start with a letter and cannot start with http:// or https://.\n"},"systemDiskPerformanceLevel":{"type":"string","description":"The performance level of the ESSD used as the system disk, Valid values: `PL0`, `PL1`, `PL2`, `PL3`, Default to `PL1`;For more information about ESSD, See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/122389.htm).\n"},"systemDiskProvisionedIops":{"type":"integer","description":"The provisioned read/write IOPS of the ESSD AutoPL disk to use as the system disk.\n"},"systemDiskSize":{"type":"integer","description":"Size of the system disk, measured in GiB. Value range: [20, 500]. The specified value must be equal to or greater than max{20, Imagesize}. Default value: max{40, ImageSize}.\n"},"systemDiskStorageClusterId":{"type":"string","description":"The ID of the dedicated block storage cluster. If you want to use disks in a dedicated block storage cluster as system disks when you create instances, you must specify this parameter. For more information about dedicated block storage clusters.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"userData":{"type":"string","description":"User-defined data to customize the startup behaviors of an ECS instance and to pass data into an ECS instance.\nIt supports to setting a base64-encoded value, and it is the recommended usage.\nFrom version 1.60.0, it can be updated in-place. If updated, the instance will reboot to make the change take effect.\nNote: Not all changes will take effect, and it depends on [cloud-init module type](https://cloudinit.readthedocs.io/en/latest/topics/modules.html).\n"},"volumeTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the devices created by the instance at launch time.\n- Key: It can be up to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch in VPC. This parameter must be set unless you can create classic network instances. When it is changed, the instance will reboot to make the change take effect.\n"}},"required":["availabilityZone","cpu","cpuOptions","createTime","creditSpecification","deploymentSetGroupNo","description","enableJumboFrame","expiredTime","hostName","httpEndpoint","httpPutResponseHopLimit","httpTokens","imageId","imageOptions","instanceChargeType","instanceName","instanceType","internetChargeType","internetMaxBandwidthIn","internetMaxBandwidthOut","ipv6AddressCount","ipv6Addresses","keyName","maintenanceAction","memory","networkInterfaceId","networkInterfaceTrafficMode","networkInterfaces","osName","osType","period","primaryIpAddress","privateIp","privatePoolOptionsId","privatePoolOptionsMatchCriteria","publicIp","resourceGroupId","roleName","secondaryPrivateIpAddressCount","secondaryPrivateIps","securityEnhancementStrategy","securityGroups","spotDuration","spotPriceLimit","spotStrategy","startTime","status","stoppedMode","systemDiskAutoSnapshotPolicyId","systemDiskCategory","systemDiskDescription","systemDiskEncrypted","systemDiskId","systemDiskKmsKeyId","systemDiskName","systemDiskPerformanceLevel","systemDiskSize","volumeTags","vpcId","vswitchId"],"inputProperties":{"allocatePublicIp":{"type":"boolean","description":"It has been deprecated from version \"1.7.0\". Setting \u003cspan pulumi-lang-nodejs=\"\"internetMaxBandwidthOut\"\" pulumi-lang-dotnet=\"\"InternetMaxBandwidthOut\"\" pulumi-lang-go=\"\"internetMaxBandwidthOut\"\" pulumi-lang-python=\"\"internet_max_bandwidth_out\"\" pulumi-lang-yaml=\"\"internetMaxBandwidthOut\"\" pulumi-lang-java=\"\"internetMaxBandwidthOut\"\"\u003e\"internet_max_bandwidth_out\"\u003c/span\u003e larger than 0 can allocate a public ip address for an instance.\n","deprecationMessage":"Field 'allocate_public_ip' has been deprecated from provider version 1.6.1. Setting 'internet_max_bandwidth_out' larger than 0 will allocate public ip for instance."},"autoReleaseTime":{"type":"string","description":"The automatic release time of the `PostPaid` instance.\nThe time follows the ISO 8601 standard and is in UTC time. Format: yyyy-MM-ddTHH:mm:ssZ. It must be at least half an hour later than the current time and less than 3 years since the current time.\nSetting it to null can cancel automatic release feature, and the ECS instance will not be released automatically.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto renewal period of an instance, in the unit of month. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Default to 1. Valid value:\n- [1, 2, 3, 6, 12] when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e in \"Month\"\n- [1, 2, 3] when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e in \"Week\"\n"},"availabilityZone":{"type":"string","description":"The Zone to start the instance in. It is ignored and will be computed when set \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e.\n","willReplaceOnChanges":true},"cpuOptions":{"$ref":"#/types/alicloud:ecs/InstanceCpuOptions:InstanceCpuOptions","description":"The options of cpu. See \u003cspan pulumi-lang-nodejs=\"`cpuOptions`\" pulumi-lang-dotnet=\"`CpuOptions`\" pulumi-lang-go=\"`cpuOptions`\" pulumi-lang-python=\"`cpu_options`\" pulumi-lang-yaml=\"`cpuOptions`\" pulumi-lang-java=\"`cpuOptions`\"\u003e`cpu_options`\u003c/span\u003e below.\n\n\u003e **NOTE:** System disk category \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e has been outdated and it only can be used none I/O Optimized ECS instances. Recommend \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e disk.\n\n\u003e **NOTE:** From version 1.5.0, instance's charge type can be changed to `PrePaid` by specifying \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e, but it is irreversible.\n\n\u003e **NOTE:** From version 1.5.0, instance's private IP address can be specified when creating VPC network instance.\n\n\u003e **NOTE:** From version 1.5.0, instance's vswitch and private IP can be changed in the same availability zone. When they are changed, the instance will reboot to make the change take effect.\n\n\u003e **NOTE:** From version 1.7.0, setting \u003cspan pulumi-lang-nodejs=\"\"internetMaxBandwidthOut\"\" pulumi-lang-dotnet=\"\"InternetMaxBandwidthOut\"\" pulumi-lang-go=\"\"internetMaxBandwidthOut\"\" pulumi-lang-python=\"\"internet_max_bandwidth_out\"\" pulumi-lang-yaml=\"\"internetMaxBandwidthOut\"\" pulumi-lang-java=\"\"internetMaxBandwidthOut\"\"\u003e\"internet_max_bandwidth_out\"\u003c/span\u003e larger than 0 can allocate a public IP for an instance.\nSetting \u003cspan pulumi-lang-nodejs=\"\"internetMaxBandwidthOut\"\" pulumi-lang-dotnet=\"\"InternetMaxBandwidthOut\"\" pulumi-lang-go=\"\"internetMaxBandwidthOut\"\" pulumi-lang-python=\"\"internet_max_bandwidth_out\"\" pulumi-lang-yaml=\"\"internetMaxBandwidthOut\"\" pulumi-lang-java=\"\"internetMaxBandwidthOut\"\"\u003e\"internet_max_bandwidth_out\"\u003c/span\u003e to 0 can release allocated public IP for VPC instance(For Classic instnace, its public IP cannot be release once it allocated, even thougth its bandwidth out is 0).\nHowever, at present, 'PrePaid' instance cannot narrow its max bandwidth out when its 'internet_charge_type' is \"PayByBandwidth\".\n\n\u003e **NOTE:** From version 1.7.0, instance's type can be changed. When it is changed, the instance will reboot to make the change take effect.\n"},"creditSpecification":{"type":"string","description":"Performance mode of the t5 burstable instance. Valid values: 'Standard', 'Unlimited'.\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/InstanceDataDisk:InstanceDataDisk"},"description":"The list of data disks created with instance. See \u003cspan pulumi-lang-nodejs=\"`dataDisks`\" pulumi-lang-dotnet=\"`DataDisks`\" pulumi-lang-go=\"`dataDisks`\" pulumi-lang-python=\"`data_disks`\" pulumi-lang-yaml=\"`dataDisks`\" pulumi-lang-java=\"`dataDisks`\"\u003e`data_disks`\u003c/span\u003e below.\n"},"dedicatedHostId":{"type":"string","description":"The ID of the dedicated host on which to create the instance. If you set the DedicatedHostId parameter, the \u003cspan pulumi-lang-nodejs=\"`spotStrategy`\" pulumi-lang-dotnet=\"`SpotStrategy`\" pulumi-lang-go=\"`spotStrategy`\" pulumi-lang-python=\"`spot_strategy`\" pulumi-lang-yaml=\"`spotStrategy`\" pulumi-lang-java=\"`spotStrategy`\"\u003e`spot_strategy`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`spotPriceLimit`\" pulumi-lang-dotnet=\"`SpotPriceLimit`\" pulumi-lang-go=\"`spotPriceLimit`\" pulumi-lang-python=\"`spot_price_limit`\" pulumi-lang-yaml=\"`spotPriceLimit`\" pulumi-lang-java=\"`spotPriceLimit`\"\u003e`spot_price_limit`\u003c/span\u003e parameters cannot be set. This is because preemptible instances cannot be created on dedicated hosts.\n","willReplaceOnChanges":true},"deletionProtection":{"type":"boolean","description":"Whether enable the deletion protection or not. It does not work when the instance is spot. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"deploymentSetId":{"type":"string","description":"The ID of the deployment set to which to deploy the instance. **NOTE:** From version 1.176.0, instance's deploymentSetId can be removed when 'deployment_set_id' = \"\".\n"},"description":{"type":"string","description":"Description of the instance, This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to send a dry-run request. Default to false.\n- true: Only a dry-run request is sent and no instance is created. The system checks whether the required parameters are set, and validates the request format, service permissions, and available ECS instances. If the validation fails, the corresponding error code is returned. If the validation succeeds, the `DryRunOperation` error code is returned.\n- false: A request is sent. If the validation succeeds, the instance is created.\n"},"enableJumboFrame":{"type":"boolean","description":"Specifies whether to enable the Jumbo Frames feature for the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"forceDelete":{"type":"boolean","description":"If it is true, the `PrePaid` instance will be change to `PostPaid` and then deleted forcibly.\nHowever, because of changing instance charge type has CPU core count quota limitation, so strongly recommand that \"Don't modify instance charge type frequentlly in one month\".\n"},"hostName":{"type":"string","description":"Host name of the ECS, which is a string of at least two characters. “hostname” cannot start or end with “.” or “-“. In addition, two or more consecutive “.” or “-“ symbols are not allowed. On Windows, the host name can contain a maximum of 15 characters, which can be a combination of uppercase/lowercase letters, numerals, and “-“. The host name cannot contain dots (“.”) or contain only numeric characters. When it is changed, the instance will reboot to make the change take effect.\nOn other OSs such as Linux, the host name can contain a maximum of 64 characters, which can be segments separated by dots (“.”), where each segment can contain uppercase/lowercase letters, numerals, or “_“. When it is changed, the instance will reboot to make the change take effect.\n"},"hpcClusterId":{"type":"string","description":"The ID of the Elastic High Performance Computing (E-HPC) cluster to which to assign the instance.\n","willReplaceOnChanges":true},"httpEndpoint":{"type":"string","description":"Specifies whether to enable the access channel for instance metadata. Valid values: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"httpPutResponseHopLimit":{"type":"integer","description":"**NOTE:**: This parameter is not available for use yet. The HTTP PUT response hop limit for accessing instance metadata. Valid values: 1 to 64. Default value: 1.\n","willReplaceOnChanges":true},"httpTokens":{"type":"string","description":"Specifies whether to forcefully use the security-enhanced mode (IMDSv2) to access instance metadata. Default value: optional. Valid values:\n- optional: does not forcefully use the security-enhanced mode (IMDSv2).\n- required: forcefully uses the security-enhanced mode (IMDSv2). After you set this parameter to required, you cannot access instance metadata in normal mode.\n"},"imageId":{"type":"string","description":"The Image to use for the instance. ECS instance's image can be replaced via changing \u003cspan pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\"\u003e`image_id`\u003c/span\u003e. When it is changed, the instance will reboot to make the change take effect. If you do not use \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e to specify a launch template, you must specify \u003cspan pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\"\u003e`image_id`\u003c/span\u003e.\n"},"imageOptions":{"$ref":"#/types/alicloud:ecs/InstanceImageOptions:InstanceImageOptions","description":"The options of images. See \u003cspan pulumi-lang-nodejs=\"`imageOptions`\" pulumi-lang-dotnet=\"`ImageOptions`\" pulumi-lang-go=\"`imageOptions`\" pulumi-lang-python=\"`image_options`\" pulumi-lang-yaml=\"`imageOptions`\" pulumi-lang-java=\"`imageOptions`\"\u003e`image_options`\u003c/span\u003e below.\n"},"includeDataDisks":{"type":"boolean","description":"Whether to change instance disks charge type when changing instance charge type.\n"},"instanceChargeType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`. **NOTE:** From version 1.243.0, the default value `PostPaid` will be removed.\n**NOTE:** Since 1.9.6, it can be changed each other between `PostPaid` and `PrePaid`.\nHowever, since [some limitation about CPU core count in one month](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/modifyinstancechargetype),\nthere strongly recommends that `Don't change\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003efrequentlly in one month`.\n"},"instanceName":{"type":"string","description":"The name of the ECS. This\u003cspan pulumi-lang-nodejs=\" instanceName \" pulumi-lang-dotnet=\" InstanceName \" pulumi-lang-go=\" instanceName \" pulumi-lang-python=\" instance_name \" pulumi-lang-yaml=\" instanceName \" pulumi-lang-java=\" instanceName \"\u003e instance_name \u003c/span\u003ecan have a string of 2 to 128 characters, must contain only alphanumeric characters or hyphens, such as \"-\",\".\",\"_\", and must not begin with a hyphen, and must not begin with http:// or https://. **NOTE:** From version 1.243.0, the default value `ECS-Instance` will be removed.\n"},"instanceType":{"type":"string","description":"The type of instance to start. When it is changed, the instance will reboot to make the change take effect. If you do not use \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e to specify a launch template, you must specify \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e.\n"},"internetChargeType":{"type":"string","description":"Internet charge type of the instance, Valid values are `PayByBandwidth`, `PayByTraffic`. At present, 'PrePaid' instance cannot change the value to \"PayByBandwidth\" from \"PayByTraffic\". **NOTE:** From version 1.243.0, the default value `PayByTraffic` will be removed.\n"},"internetMaxBandwidthIn":{"type":"integer","description":"Maximum incoming bandwidth from the public network, measured in Mbps (Mega bit per second). Value range: [1, 200]. If this value is not specified, then automatically sets it to 200 Mbps.\n","deprecationMessage":"The attribute is invalid and no any affect for the instance. So it has been deprecated since version v1.121.2."},"internetMaxBandwidthOut":{"type":"integer","description":"Maximum outgoing bandwidth to the public network, measured in Mbps (Mega bit per second). Value range:  [0, 100]. **NOTE:** From version 1.243.0, the default value \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e will be removed.\n"},"ipv6AddressCount":{"type":"integer","description":"The number of IPv6 addresses to randomly generate for the primary ENI. Valid values: 1 to 10. **NOTE:** You cannot specify both the \u003cspan pulumi-lang-nodejs=\"`ipv6Addresses`\" pulumi-lang-dotnet=\"`Ipv6Addresses`\" pulumi-lang-go=\"`ipv6Addresses`\" pulumi-lang-python=\"`ipv6_addresses`\" pulumi-lang-yaml=\"`ipv6Addresses`\" pulumi-lang-java=\"`ipv6Addresses`\"\u003e`ipv6_addresses`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipv6AddressCount`\" pulumi-lang-dotnet=\"`Ipv6AddressCount`\" pulumi-lang-go=\"`ipv6AddressCount`\" pulumi-lang-python=\"`ipv6_address_count`\" pulumi-lang-yaml=\"`ipv6AddressCount`\" pulumi-lang-java=\"`ipv6AddressCount`\"\u003e`ipv6_address_count`\u003c/span\u003e parameters.\n","willReplaceOnChanges":true},"ipv6Addresses":{"type":"array","items":{"type":"string"},"description":"A list of IPv6 address to be assigned to the primary ENI. Support up to 10. **NOTE:** From version 1.241.0, \u003cspan pulumi-lang-nodejs=\"`ipv6Addresses`\" pulumi-lang-dotnet=\"`Ipv6Addresses`\" pulumi-lang-go=\"`ipv6Addresses`\" pulumi-lang-python=\"`ipv6_addresses`\" pulumi-lang-yaml=\"`ipv6Addresses`\" pulumi-lang-java=\"`ipv6Addresses`\"\u003e`ipv6_addresses`\u003c/span\u003e can be modified.\n"},"isOutdated":{"type":"boolean","description":"Whether to use outdated instance type.\n"},"keyName":{"type":"string","description":"The name of key pair that can login ECS instance successfully without password. If it is specified, the password would be invalid. **NOTE:** From version 1.268.0, \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e can be modified. If you want to use \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e, We recommend you to use the resource alicloud_ecs_key_pair_attachment.\n\u003e **NOTE:** When modifying \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e, if the instance status is `Running`, the ECS instance will be rebooted; If the instance status is `Stopped`, the ECS instance status will be changed to `Running`.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to an instance. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored. When it is changed, the instance will reboot to make the change take effect.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating an instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set. When it is changed, the instance will reboot to make the change take effect.\n"},"launchTemplateId":{"type":"string","description":"The ID of the launch template. For more information, see [DescribeLaunchTemplates](https://www.alibabacloud.com/help/en/ecs/developer-reference/api-describelaunchtemplates).To use a launch template to create an instance, you must use the \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e parameter to specify the launch template.\n","willReplaceOnChanges":true},"launchTemplateName":{"type":"string","description":"The name of the launch template.\n","willReplaceOnChanges":true},"launchTemplateVersion":{"type":"string","description":"The version of the launch template. If you set \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e parameter but do not set the version number of the launch template, the default template version is used.\n","willReplaceOnChanges":true},"maintenanceAction":{"type":"string","description":"The maintenance action. Valid values: `Stop`, `AutoRecover` and `AutoRedeploy`.\n* `Stop` : stops the instance.\n* `AutoRecover` : automatically recovers the instance.\n* `AutoRedeploy` : fails the instance over, which may cause damage to the data disks attached to the instance.\n"},"maintenanceNotify":{"type":"boolean","description":"Specifies whether to send an event notification before instance shutdown. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"maintenanceTime":{"$ref":"#/types/alicloud:ecs/InstanceMaintenanceTime:InstanceMaintenanceTime","description":"The time of maintenance. See \u003cspan pulumi-lang-nodejs=\"`maintenanceTime`\" pulumi-lang-dotnet=\"`MaintenanceTime`\" pulumi-lang-go=\"`maintenanceTime`\" pulumi-lang-python=\"`maintenance_time`\" pulumi-lang-yaml=\"`maintenanceTime`\" pulumi-lang-java=\"`maintenanceTime`\"\u003e`maintenance_time`\u003c/span\u003e below.\n"},"networkCardIndex":{"type":"integer","description":"The index of the network card for Primary ENI.\n","willReplaceOnChanges":true},"networkInterfaceTrafficMode":{"type":"string","description":"The communication mode of the Primary ENI. Default value: `Standard`. Valid values:\n- `Standard`: Uses the TCP communication mode.\n- `HighPerformance`: Uses the remote direct memory access (RDMA) communication mode with Elastic RDMA Interface (ERI) enabled.\n","willReplaceOnChanges":true},"networkInterfaces":{"$ref":"#/types/alicloud:ecs/InstanceNetworkInterfaces:InstanceNetworkInterfaces","description":"The list of network interfaces created with instance. See \u003cspan pulumi-lang-nodejs=\"`networkInterfaces`\" pulumi-lang-dotnet=\"`NetworkInterfaces`\" pulumi-lang-go=\"`networkInterfaces`\" pulumi-lang-python=\"`network_interfaces`\" pulumi-lang-yaml=\"`networkInterfaces`\" pulumi-lang-java=\"`networkInterfaces`\"\u003e`network_interfaces`\u003c/span\u003e below.\n"},"operatorType":{"type":"string","description":"The operation type. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Default value: \u003cspan pulumi-lang-nodejs=\"`upgrade`\" pulumi-lang-dotnet=\"`Upgrade`\" pulumi-lang-go=\"`upgrade`\" pulumi-lang-python=\"`upgrade`\" pulumi-lang-yaml=\"`upgrade`\" pulumi-lang-java=\"`upgrade`\"\u003e`upgrade`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`upgrade`\" pulumi-lang-dotnet=\"`Upgrade`\" pulumi-lang-go=\"`upgrade`\" pulumi-lang-python=\"`upgrade`\" pulumi-lang-yaml=\"`upgrade`\" pulumi-lang-java=\"`upgrade`\"\u003e`upgrade`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`downgrade`\" pulumi-lang-dotnet=\"`Downgrade`\" pulumi-lang-go=\"`downgrade`\" pulumi-lang-python=\"`downgrade`\" pulumi-lang-yaml=\"`downgrade`\" pulumi-lang-java=\"`downgrade`\"\u003e`downgrade`\u003c/span\u003e. **NOTE:**  When the new instance type specified by the \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e parameter has lower specifications than the current instance type, you must set \u003cspan pulumi-lang-nodejs=\"`operatorType`\" pulumi-lang-dotnet=\"`OperatorType`\" pulumi-lang-go=\"`operatorType`\" pulumi-lang-python=\"`operator_type`\" pulumi-lang-yaml=\"`operatorType`\" pulumi-lang-java=\"`operatorType`\"\u003e`operator_type`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`downgrade`\" pulumi-lang-dotnet=\"`Downgrade`\" pulumi-lang-go=\"`downgrade`\" pulumi-lang-python=\"`downgrade`\" pulumi-lang-yaml=\"`downgrade`\" pulumi-lang-java=\"`downgrade`\"\u003e`downgrade`\u003c/span\u003e.\n"},"password":{"type":"string","description":"Password to an instance is a string of 8 to 30 characters. It must contain uppercase/lowercase letters and numerals, but cannot contain special symbols. When it is changed, the instance will reboot to make the change take effect.\n","secret":true},"passwordInherit":{"type":"boolean","description":"Specifies whether to use the password preset in the image. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid and required when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Valid values:\n- [1-9, 12, 24, 36, 48, 60] when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e in \"Month\"\n- [1-3] when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e in \"Week\"\n\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"periodUnit":{"type":"string","description":"The duration unit that you will buy the resource. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is 'PrePaid'. Valid value: [\"Week\", \"Month\"]. Default to \"Month\".\n"},"privateIp":{"type":"string","description":"Instance private IP address can be specified when you creating new instance. It is valid when \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified. When it is changed, the instance will reboot to make the change take effect.\n"},"privatePoolOptionsId":{"type":"string","description":"The ID of the private pool.\n"},"privatePoolOptionsMatchCriteria":{"type":"string","description":"The type of the private pool. Default value: `None`. Valid values:\n- `Open`: Open private pool.\n- `Target`: Specified private pool. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`privatePoolOptionsMatchCriteria`\" pulumi-lang-dotnet=\"`PrivatePoolOptionsMatchCriteria`\" pulumi-lang-go=\"`privatePoolOptionsMatchCriteria`\" pulumi-lang-python=\"`private_pool_options_match_criteria`\" pulumi-lang-yaml=\"`privatePoolOptionsMatchCriteria`\" pulumi-lang-java=\"`privatePoolOptionsMatchCriteria`\"\u003e`private_pool_options_match_criteria`\u003c/span\u003e is set to `Target`, \u003cspan pulumi-lang-nodejs=\"`privatePoolOptionsId`\" pulumi-lang-dotnet=\"`PrivatePoolOptionsId`\" pulumi-lang-go=\"`privatePoolOptionsId`\" pulumi-lang-python=\"`private_pool_options_id`\" pulumi-lang-yaml=\"`privatePoolOptionsId`\" pulumi-lang-java=\"`privatePoolOptionsId`\"\u003e`private_pool_options_id`\u003c/span\u003e is required.\n- `None`: No private pool. The capacity in private pools is not used.\n"},"queuePairNumber":{"type":"integer","description":"The number of queues supported by the ERI.\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Whether to renew an ECS instance automatically or not. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Default to \"Normal\". Valid values:\n- `AutoRenewal`: Enable auto renewal.\n- `Normal`: Disable auto renewal.\n- `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the instance belongs.\n"},"roleName":{"type":"string","description":"The name of the Resource Access Management (RAM) role. **NOTE:** From version 1.250.0, If you want to use \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e, We recommend you to use the resource alicloud_ecs_ram_role_attachment.\n","willReplaceOnChanges":true},"secondaryPrivateIpAddressCount":{"type":"integer","description":"The number of private IP addresses to be automatically assigned from within the CIDR block of the vswitch. **NOTE:** To assign secondary private IP addresses, you must specify \u003cspan pulumi-lang-nodejs=\"`secondaryPrivateIps`\" pulumi-lang-dotnet=\"`SecondaryPrivateIps`\" pulumi-lang-go=\"`secondaryPrivateIps`\" pulumi-lang-python=\"`secondary_private_ips`\" pulumi-lang-yaml=\"`secondaryPrivateIps`\" pulumi-lang-java=\"`secondaryPrivateIps`\"\u003e`secondary_private_ips`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-dotnet=\"`SecondaryPrivateIpAddressCount`\" pulumi-lang-go=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-python=\"`secondary_private_ip_address_count`\" pulumi-lang-yaml=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-java=\"`secondaryPrivateIpAddressCount`\"\u003e`secondary_private_ip_address_count`\u003c/span\u003e but not both.\n"},"secondaryPrivateIps":{"type":"array","items":{"type":"string"},"description":"A list of Secondary private IP addresses which is selected from within the CIDR block of the vSwitch.\n"},"securityEnhancementStrategy":{"type":"string","description":"The security enhancement strategy.\n- Active: Enable security enhancement strategy, it only works on system images.\n- Deactive: Disable security enhancement strategy, it works on all images.\n","willReplaceOnChanges":true},"securityGroups":{"type":"array","items":{"type":"string"},"description":"A list of security group ids to associate with. If you do not use \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e to specify a launch template, you must specify \u003cspan pulumi-lang-nodejs=\"`securityGroups`\" pulumi-lang-dotnet=\"`SecurityGroups`\" pulumi-lang-go=\"`securityGroups`\" pulumi-lang-python=\"`security_groups`\" pulumi-lang-yaml=\"`securityGroups`\" pulumi-lang-java=\"`securityGroups`\"\u003e`security_groups`\u003c/span\u003e.\n"},"spotDuration":{"type":"integer","description":"The retention time of the preemptive instance in hours. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e. Retention duration 2~6 is under invitation test, please submit a work order if you need to open. If the value is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, the mode is no protection period. Default value is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"spotPriceLimit":{"type":"number","description":"The hourly price threshold of a instance, and it takes effect only when parameter 'spot_strategy' is 'SpotWithPriceLimit'. Three decimals is allowed at most.\n","willReplaceOnChanges":true},"spotStrategy":{"type":"string","description":"The spot strategy of a Pay-As-You-Go instance, and it takes effect only when parameter \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is 'PostPaid'. Value range:\n- NoSpot: A regular Pay-As-You-Go instance.\n- SpotWithPriceLimit: A price threshold for a spot instance\n- SpotAsPriceGo: A price that is based on the highest Pay-As-You-Go instance\n\nDefault to NoSpot. Note: Currently, the spot instance only supports domestic site account.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The instance status. Valid values: [\"Running\", \"Stopped\"]. You can control the instance start and stop through this parameter. Default to `Running`.\n"},"stoppedMode":{"type":"string","description":"The stop mode of the pay-as-you-go instance. Valid values: `StopCharging`,`KeepCharging`, `Not-applicable`. Default value: If the prerequisites required for enabling the economical mode are met, and you have enabled this mode in the ECS console, the default value is `StopCharging`. For more information, see \"Enable the economical mode\" in [Economical mode](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/economical-mode). Otherwise, the default value is `KeepCharging`. **Note:** `Not-applicable`: Economical mode is not applicable to the instance.`\n* `KeepCharging`: standard mode. Billing of the instance continues after the instance is stopped, and resources are retained for the instance.\n* `StopCharging`: economical mode. Billing of some resources of the instance stops after the instance is stopped. When the instance is stopped, its resources such as vCPUs, memory, and public IP address are released. You may be unable to restart the instance if some types of resources are out of stock in the current region.\n"},"systemDiskAutoSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy applied to the system disk. **NOTE:** If you want to use \u003cspan pulumi-lang-nodejs=\"`systemDiskAutoSnapshotPolicyId`\" pulumi-lang-dotnet=\"`SystemDiskAutoSnapshotPolicyId`\" pulumi-lang-go=\"`systemDiskAutoSnapshotPolicyId`\" pulumi-lang-python=\"`system_disk_auto_snapshot_policy_id`\" pulumi-lang-yaml=\"`systemDiskAutoSnapshotPolicyId`\" pulumi-lang-java=\"`systemDiskAutoSnapshotPolicyId`\"\u003e`system_disk_auto_snapshot_policy_id`\u003c/span\u003e, We recommend you to use the resource alicloud_ecs_auto_snapshot_policy_attachment.\n"},"systemDiskBurstingEnabled":{"type":"boolean","description":"Specifies whether to enable the performance burst feature for the system disk. Valid values:\n"},"systemDiskCategory":{"type":"string","description":"Valid values are \u003cspan pulumi-lang-nodejs=\"`ephemeralSsd`\" pulumi-lang-dotnet=\"`EphemeralSsd`\" pulumi-lang-go=\"`ephemeralSsd`\" pulumi-lang-python=\"`ephemeral_ssd`\" pulumi-lang-yaml=\"`ephemeralSsd`\" pulumi-lang-java=\"`ephemeralSsd`\"\u003e`ephemeral_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e. only is used to some none I/O optimized instance. Valid values \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e Available since v1.184.0.\n","willReplaceOnChanges":true},"systemDiskDescription":{"type":"string","description":"The description of the system disk. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"systemDiskEncryptAlgorithm":{"type":"string","description":"The algorithm to be used to encrypt the system disk. Valid values are `aes-256`, `sm4-128`. Default value is `aes-256`.\n","willReplaceOnChanges":true},"systemDiskEncrypted":{"type":"boolean","description":"Specifies whether to encrypt the system disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"systemDiskKmsKeyId":{"type":"string","description":"The ID of the Key Management Service (KMS) key to be used for the system disk.\n","willReplaceOnChanges":true},"systemDiskName":{"type":"string","description":"The name of the system disk. The name must be 2 to 128 characters in length and can contain letters, digits, periods (.), colons (:), underscores (_), and hyphens (-). It must start with a letter and cannot start with http:// or https://.\n"},"systemDiskPerformanceLevel":{"type":"string","description":"The performance level of the ESSD used as the system disk, Valid values: `PL0`, `PL1`, `PL2`, `PL3`, Default to `PL1`;For more information about ESSD, See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/122389.htm).\n"},"systemDiskProvisionedIops":{"type":"integer","description":"The provisioned read/write IOPS of the ESSD AutoPL disk to use as the system disk.\n"},"systemDiskSize":{"type":"integer","description":"Size of the system disk, measured in GiB. Value range: [20, 500]. The specified value must be equal to or greater than max{20, Imagesize}. Default value: max{40, ImageSize}.\n"},"systemDiskStorageClusterId":{"type":"string","description":"The ID of the dedicated block storage cluster. If you want to use disks in a dedicated block storage cluster as system disks when you create instances, you must specify this parameter. For more information about dedicated block storage clusters.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"userData":{"type":"string","description":"User-defined data to customize the startup behaviors of an ECS instance and to pass data into an ECS instance.\nIt supports to setting a base64-encoded value, and it is the recommended usage.\nFrom version 1.60.0, it can be updated in-place. If updated, the instance will reboot to make the change take effect.\nNote: Not all changes will take effect, and it depends on [cloud-init module type](https://cloudinit.readthedocs.io/en/latest/topics/modules.html).\n"},"volumeTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the devices created by the instance at launch time.\n- Key: It can be up to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch in VPC. This parameter must be set unless you can create classic network instances. When it is changed, the instance will reboot to make the change take effect.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"allocatePublicIp":{"type":"boolean","description":"It has been deprecated from version \"1.7.0\". Setting \u003cspan pulumi-lang-nodejs=\"\"internetMaxBandwidthOut\"\" pulumi-lang-dotnet=\"\"InternetMaxBandwidthOut\"\" pulumi-lang-go=\"\"internetMaxBandwidthOut\"\" pulumi-lang-python=\"\"internet_max_bandwidth_out\"\" pulumi-lang-yaml=\"\"internetMaxBandwidthOut\"\" pulumi-lang-java=\"\"internetMaxBandwidthOut\"\"\u003e\"internet_max_bandwidth_out\"\u003c/span\u003e larger than 0 can allocate a public ip address for an instance.\n","deprecationMessage":"Field 'allocate_public_ip' has been deprecated from provider version 1.6.1. Setting 'internet_max_bandwidth_out' larger than 0 will allocate public ip for instance."},"autoReleaseTime":{"type":"string","description":"The automatic release time of the `PostPaid` instance.\nThe time follows the ISO 8601 standard and is in UTC time. Format: yyyy-MM-ddTHH:mm:ssZ. It must be at least half an hour later than the current time and less than 3 years since the current time.\nSetting it to null can cancel automatic release feature, and the ECS instance will not be released automatically.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto renewal period of an instance, in the unit of month. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Default to 1. Valid value:\n- [1, 2, 3, 6, 12] when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e in \"Month\"\n- [1, 2, 3] when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e in \"Week\"\n"},"availabilityZone":{"type":"string","description":"The Zone to start the instance in. It is ignored and will be computed when set \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e.\n","willReplaceOnChanges":true},"cpu":{"type":"integer","description":"The number of vCPUs.\n"},"cpuOptions":{"$ref":"#/types/alicloud:ecs/InstanceCpuOptions:InstanceCpuOptions","description":"The options of cpu. See \u003cspan pulumi-lang-nodejs=\"`cpuOptions`\" pulumi-lang-dotnet=\"`CpuOptions`\" pulumi-lang-go=\"`cpuOptions`\" pulumi-lang-python=\"`cpu_options`\" pulumi-lang-yaml=\"`cpuOptions`\" pulumi-lang-java=\"`cpuOptions`\"\u003e`cpu_options`\u003c/span\u003e below.\n\n\u003e **NOTE:** System disk category \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e has been outdated and it only can be used none I/O Optimized ECS instances. Recommend \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e disk.\n\n\u003e **NOTE:** From version 1.5.0, instance's charge type can be changed to `PrePaid` by specifying \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e, but it is irreversible.\n\n\u003e **NOTE:** From version 1.5.0, instance's private IP address can be specified when creating VPC network instance.\n\n\u003e **NOTE:** From version 1.5.0, instance's vswitch and private IP can be changed in the same availability zone. When they are changed, the instance will reboot to make the change take effect.\n\n\u003e **NOTE:** From version 1.7.0, setting \u003cspan pulumi-lang-nodejs=\"\"internetMaxBandwidthOut\"\" pulumi-lang-dotnet=\"\"InternetMaxBandwidthOut\"\" pulumi-lang-go=\"\"internetMaxBandwidthOut\"\" pulumi-lang-python=\"\"internet_max_bandwidth_out\"\" pulumi-lang-yaml=\"\"internetMaxBandwidthOut\"\" pulumi-lang-java=\"\"internetMaxBandwidthOut\"\"\u003e\"internet_max_bandwidth_out\"\u003c/span\u003e larger than 0 can allocate a public IP for an instance.\nSetting \u003cspan pulumi-lang-nodejs=\"\"internetMaxBandwidthOut\"\" pulumi-lang-dotnet=\"\"InternetMaxBandwidthOut\"\" pulumi-lang-go=\"\"internetMaxBandwidthOut\"\" pulumi-lang-python=\"\"internet_max_bandwidth_out\"\" pulumi-lang-yaml=\"\"internetMaxBandwidthOut\"\" pulumi-lang-java=\"\"internetMaxBandwidthOut\"\"\u003e\"internet_max_bandwidth_out\"\u003c/span\u003e to 0 can release allocated public IP for VPC instance(For Classic instnace, its public IP cannot be release once it allocated, even thougth its bandwidth out is 0).\nHowever, at present, 'PrePaid' instance cannot narrow its max bandwidth out when its 'internet_charge_type' is \"PayByBandwidth\".\n\n\u003e **NOTE:** From version 1.7.0, instance's type can be changed. When it is changed, the instance will reboot to make the change take effect.\n"},"createTime":{"type":"string","description":"(Available since v1.232.0) The time when the instance was created.\n"},"creditSpecification":{"type":"string","description":"Performance mode of the t5 burstable instance. Valid values: 'Standard', 'Unlimited'.\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/InstanceDataDisk:InstanceDataDisk"},"description":"The list of data disks created with instance. See \u003cspan pulumi-lang-nodejs=\"`dataDisks`\" pulumi-lang-dotnet=\"`DataDisks`\" pulumi-lang-go=\"`dataDisks`\" pulumi-lang-python=\"`data_disks`\" pulumi-lang-yaml=\"`dataDisks`\" pulumi-lang-java=\"`dataDisks`\"\u003e`data_disks`\u003c/span\u003e below.\n"},"dedicatedHostId":{"type":"string","description":"The ID of the dedicated host on which to create the instance. If you set the DedicatedHostId parameter, the \u003cspan pulumi-lang-nodejs=\"`spotStrategy`\" pulumi-lang-dotnet=\"`SpotStrategy`\" pulumi-lang-go=\"`spotStrategy`\" pulumi-lang-python=\"`spot_strategy`\" pulumi-lang-yaml=\"`spotStrategy`\" pulumi-lang-java=\"`spotStrategy`\"\u003e`spot_strategy`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`spotPriceLimit`\" pulumi-lang-dotnet=\"`SpotPriceLimit`\" pulumi-lang-go=\"`spotPriceLimit`\" pulumi-lang-python=\"`spot_price_limit`\" pulumi-lang-yaml=\"`spotPriceLimit`\" pulumi-lang-java=\"`spotPriceLimit`\"\u003e`spot_price_limit`\u003c/span\u003e parameters cannot be set. This is because preemptible instances cannot be created on dedicated hosts.\n","willReplaceOnChanges":true},"deletionProtection":{"type":"boolean","description":"Whether enable the deletion protection or not. It does not work when the instance is spot. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"deploymentSetGroupNo":{"type":"string","description":"The group number of the instance in a deployment set when the deployment set is use.\n"},"deploymentSetId":{"type":"string","description":"The ID of the deployment set to which to deploy the instance. **NOTE:** From version 1.176.0, instance's deploymentSetId can be removed when 'deployment_set_id' = \"\".\n"},"description":{"type":"string","description":"Description of the instance, This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to send a dry-run request. Default to false.\n- true: Only a dry-run request is sent and no instance is created. The system checks whether the required parameters are set, and validates the request format, service permissions, and available ECS instances. If the validation fails, the corresponding error code is returned. If the validation succeeds, the `DryRunOperation` error code is returned.\n- false: A request is sent. If the validation succeeds, the instance is created.\n"},"enableJumboFrame":{"type":"boolean","description":"Specifies whether to enable the Jumbo Frames feature for the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"expiredTime":{"type":"string","description":"(Available since v1.232.0) The expiration time of the instance.\n"},"forceDelete":{"type":"boolean","description":"If it is true, the `PrePaid` instance will be change to `PostPaid` and then deleted forcibly.\nHowever, because of changing instance charge type has CPU core count quota limitation, so strongly recommand that \"Don't modify instance charge type frequentlly in one month\".\n"},"hostName":{"type":"string","description":"Host name of the ECS, which is a string of at least two characters. “hostname” cannot start or end with “.” or “-“. In addition, two or more consecutive “.” or “-“ symbols are not allowed. On Windows, the host name can contain a maximum of 15 characters, which can be a combination of uppercase/lowercase letters, numerals, and “-“. The host name cannot contain dots (“.”) or contain only numeric characters. When it is changed, the instance will reboot to make the change take effect.\nOn other OSs such as Linux, the host name can contain a maximum of 64 characters, which can be segments separated by dots (“.”), where each segment can contain uppercase/lowercase letters, numerals, or “_“. When it is changed, the instance will reboot to make the change take effect.\n"},"hpcClusterId":{"type":"string","description":"The ID of the Elastic High Performance Computing (E-HPC) cluster to which to assign the instance.\n","willReplaceOnChanges":true},"httpEndpoint":{"type":"string","description":"Specifies whether to enable the access channel for instance metadata. Valid values: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"httpPutResponseHopLimit":{"type":"integer","description":"**NOTE:**: This parameter is not available for use yet. The HTTP PUT response hop limit for accessing instance metadata. Valid values: 1 to 64. Default value: 1.\n","willReplaceOnChanges":true},"httpTokens":{"type":"string","description":"Specifies whether to forcefully use the security-enhanced mode (IMDSv2) to access instance metadata. Default value: optional. Valid values:\n- optional: does not forcefully use the security-enhanced mode (IMDSv2).\n- required: forcefully uses the security-enhanced mode (IMDSv2). After you set this parameter to required, you cannot access instance metadata in normal mode.\n"},"imageId":{"type":"string","description":"The Image to use for the instance. ECS instance's image can be replaced via changing \u003cspan pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\"\u003e`image_id`\u003c/span\u003e. When it is changed, the instance will reboot to make the change take effect. If you do not use \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e to specify a launch template, you must specify \u003cspan pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\"\u003e`image_id`\u003c/span\u003e.\n"},"imageOptions":{"$ref":"#/types/alicloud:ecs/InstanceImageOptions:InstanceImageOptions","description":"The options of images. See \u003cspan pulumi-lang-nodejs=\"`imageOptions`\" pulumi-lang-dotnet=\"`ImageOptions`\" pulumi-lang-go=\"`imageOptions`\" pulumi-lang-python=\"`image_options`\" pulumi-lang-yaml=\"`imageOptions`\" pulumi-lang-java=\"`imageOptions`\"\u003e`image_options`\u003c/span\u003e below.\n"},"includeDataDisks":{"type":"boolean","description":"Whether to change instance disks charge type when changing instance charge type.\n"},"instanceChargeType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`. **NOTE:** From version 1.243.0, the default value `PostPaid` will be removed.\n**NOTE:** Since 1.9.6, it can be changed each other between `PostPaid` and `PrePaid`.\nHowever, since [some limitation about CPU core count in one month](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/modifyinstancechargetype),\nthere strongly recommends that `Don't change\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003efrequentlly in one month`.\n"},"instanceName":{"type":"string","description":"The name of the ECS. This\u003cspan pulumi-lang-nodejs=\" instanceName \" pulumi-lang-dotnet=\" InstanceName \" pulumi-lang-go=\" instanceName \" pulumi-lang-python=\" instance_name \" pulumi-lang-yaml=\" instanceName \" pulumi-lang-java=\" instanceName \"\u003e instance_name \u003c/span\u003ecan have a string of 2 to 128 characters, must contain only alphanumeric characters or hyphens, such as \"-\",\".\",\"_\", and must not begin with a hyphen, and must not begin with http:// or https://. **NOTE:** From version 1.243.0, the default value `ECS-Instance` will be removed.\n"},"instanceType":{"type":"string","description":"The type of instance to start. When it is changed, the instance will reboot to make the change take effect. If you do not use \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e to specify a launch template, you must specify \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e.\n"},"internetChargeType":{"type":"string","description":"Internet charge type of the instance, Valid values are `PayByBandwidth`, `PayByTraffic`. At present, 'PrePaid' instance cannot change the value to \"PayByBandwidth\" from \"PayByTraffic\". **NOTE:** From version 1.243.0, the default value `PayByTraffic` will be removed.\n"},"internetMaxBandwidthIn":{"type":"integer","description":"Maximum incoming bandwidth from the public network, measured in Mbps (Mega bit per second). Value range: [1, 200]. If this value is not specified, then automatically sets it to 200 Mbps.\n","deprecationMessage":"The attribute is invalid and no any affect for the instance. So it has been deprecated since version v1.121.2."},"internetMaxBandwidthOut":{"type":"integer","description":"Maximum outgoing bandwidth to the public network, measured in Mbps (Mega bit per second). Value range:  [0, 100]. **NOTE:** From version 1.243.0, the default value \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e will be removed.\n"},"ipv6AddressCount":{"type":"integer","description":"The number of IPv6 addresses to randomly generate for the primary ENI. Valid values: 1 to 10. **NOTE:** You cannot specify both the \u003cspan pulumi-lang-nodejs=\"`ipv6Addresses`\" pulumi-lang-dotnet=\"`Ipv6Addresses`\" pulumi-lang-go=\"`ipv6Addresses`\" pulumi-lang-python=\"`ipv6_addresses`\" pulumi-lang-yaml=\"`ipv6Addresses`\" pulumi-lang-java=\"`ipv6Addresses`\"\u003e`ipv6_addresses`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipv6AddressCount`\" pulumi-lang-dotnet=\"`Ipv6AddressCount`\" pulumi-lang-go=\"`ipv6AddressCount`\" pulumi-lang-python=\"`ipv6_address_count`\" pulumi-lang-yaml=\"`ipv6AddressCount`\" pulumi-lang-java=\"`ipv6AddressCount`\"\u003e`ipv6_address_count`\u003c/span\u003e parameters.\n","willReplaceOnChanges":true},"ipv6Addresses":{"type":"array","items":{"type":"string"},"description":"A list of IPv6 address to be assigned to the primary ENI. Support up to 10. **NOTE:** From version 1.241.0, \u003cspan pulumi-lang-nodejs=\"`ipv6Addresses`\" pulumi-lang-dotnet=\"`Ipv6Addresses`\" pulumi-lang-go=\"`ipv6Addresses`\" pulumi-lang-python=\"`ipv6_addresses`\" pulumi-lang-yaml=\"`ipv6Addresses`\" pulumi-lang-java=\"`ipv6Addresses`\"\u003e`ipv6_addresses`\u003c/span\u003e can be modified.\n"},"isOutdated":{"type":"boolean","description":"Whether to use outdated instance type.\n"},"keyName":{"type":"string","description":"The name of key pair that can login ECS instance successfully without password. If it is specified, the password would be invalid. **NOTE:** From version 1.268.0, \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e can be modified. If you want to use \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e, We recommend you to use the resource alicloud_ecs_key_pair_attachment.\n\u003e **NOTE:** When modifying \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e, if the instance status is `Running`, the ECS instance will be rebooted; If the instance status is `Stopped`, the ECS instance status will be changed to `Running`.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to an instance. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored. When it is changed, the instance will reboot to make the change take effect.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating an instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set. When it is changed, the instance will reboot to make the change take effect.\n"},"launchTemplateId":{"type":"string","description":"The ID of the launch template. For more information, see [DescribeLaunchTemplates](https://www.alibabacloud.com/help/en/ecs/developer-reference/api-describelaunchtemplates).To use a launch template to create an instance, you must use the \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e parameter to specify the launch template.\n","willReplaceOnChanges":true},"launchTemplateName":{"type":"string","description":"The name of the launch template.\n","willReplaceOnChanges":true},"launchTemplateVersion":{"type":"string","description":"The version of the launch template. If you set \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e parameter but do not set the version number of the launch template, the default template version is used.\n","willReplaceOnChanges":true},"maintenanceAction":{"type":"string","description":"The maintenance action. Valid values: `Stop`, `AutoRecover` and `AutoRedeploy`.\n* `Stop` : stops the instance.\n* `AutoRecover` : automatically recovers the instance.\n* `AutoRedeploy` : fails the instance over, which may cause damage to the data disks attached to the instance.\n"},"maintenanceNotify":{"type":"boolean","description":"Specifies whether to send an event notification before instance shutdown. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"maintenanceTime":{"$ref":"#/types/alicloud:ecs/InstanceMaintenanceTime:InstanceMaintenanceTime","description":"The time of maintenance. See \u003cspan pulumi-lang-nodejs=\"`maintenanceTime`\" pulumi-lang-dotnet=\"`MaintenanceTime`\" pulumi-lang-go=\"`maintenanceTime`\" pulumi-lang-python=\"`maintenance_time`\" pulumi-lang-yaml=\"`maintenanceTime`\" pulumi-lang-java=\"`maintenanceTime`\"\u003e`maintenance_time`\u003c/span\u003e below.\n"},"memory":{"type":"integer","description":"The memory size of the instance. Unit: MiB.\n"},"networkCardIndex":{"type":"integer","description":"The index of the network card for Primary ENI.\n","willReplaceOnChanges":true},"networkInterfaceId":{"type":"string","description":"The ID of the Primary ENI.\n"},"networkInterfaceTrafficMode":{"type":"string","description":"The communication mode of the Primary ENI. Default value: `Standard`. Valid values:\n- `Standard`: Uses the TCP communication mode.\n- `HighPerformance`: Uses the remote direct memory access (RDMA) communication mode with Elastic RDMA Interface (ERI) enabled.\n","willReplaceOnChanges":true},"networkInterfaces":{"$ref":"#/types/alicloud:ecs/InstanceNetworkInterfaces:InstanceNetworkInterfaces","description":"The list of network interfaces created with instance. See \u003cspan pulumi-lang-nodejs=\"`networkInterfaces`\" pulumi-lang-dotnet=\"`NetworkInterfaces`\" pulumi-lang-go=\"`networkInterfaces`\" pulumi-lang-python=\"`network_interfaces`\" pulumi-lang-yaml=\"`networkInterfaces`\" pulumi-lang-java=\"`networkInterfaces`\"\u003e`network_interfaces`\u003c/span\u003e below.\n"},"operatorType":{"type":"string","description":"The operation type. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Default value: \u003cspan pulumi-lang-nodejs=\"`upgrade`\" pulumi-lang-dotnet=\"`Upgrade`\" pulumi-lang-go=\"`upgrade`\" pulumi-lang-python=\"`upgrade`\" pulumi-lang-yaml=\"`upgrade`\" pulumi-lang-java=\"`upgrade`\"\u003e`upgrade`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`upgrade`\" pulumi-lang-dotnet=\"`Upgrade`\" pulumi-lang-go=\"`upgrade`\" pulumi-lang-python=\"`upgrade`\" pulumi-lang-yaml=\"`upgrade`\" pulumi-lang-java=\"`upgrade`\"\u003e`upgrade`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`downgrade`\" pulumi-lang-dotnet=\"`Downgrade`\" pulumi-lang-go=\"`downgrade`\" pulumi-lang-python=\"`downgrade`\" pulumi-lang-yaml=\"`downgrade`\" pulumi-lang-java=\"`downgrade`\"\u003e`downgrade`\u003c/span\u003e. **NOTE:**  When the new instance type specified by the \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e parameter has lower specifications than the current instance type, you must set \u003cspan pulumi-lang-nodejs=\"`operatorType`\" pulumi-lang-dotnet=\"`OperatorType`\" pulumi-lang-go=\"`operatorType`\" pulumi-lang-python=\"`operator_type`\" pulumi-lang-yaml=\"`operatorType`\" pulumi-lang-java=\"`operatorType`\"\u003e`operator_type`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`downgrade`\" pulumi-lang-dotnet=\"`Downgrade`\" pulumi-lang-go=\"`downgrade`\" pulumi-lang-python=\"`downgrade`\" pulumi-lang-yaml=\"`downgrade`\" pulumi-lang-java=\"`downgrade`\"\u003e`downgrade`\u003c/span\u003e.\n"},"osName":{"type":"string","description":"The name of the operating system of the instance.\n"},"osType":{"type":"string","description":"The type of the operating system of the instance.\n"},"password":{"type":"string","description":"Password to an instance is a string of 8 to 30 characters. It must contain uppercase/lowercase letters and numerals, but cannot contain special symbols. When it is changed, the instance will reboot to make the change take effect.\n","secret":true},"passwordInherit":{"type":"boolean","description":"Specifies whether to use the password preset in the image. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid and required when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Valid values:\n- [1-9, 12, 24, 36, 48, 60] when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e in \"Month\"\n- [1-3] when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e in \"Week\"\n\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"periodUnit":{"type":"string","description":"The duration unit that you will buy the resource. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is 'PrePaid'. Valid value: [\"Week\", \"Month\"]. Default to \"Month\".\n"},"primaryIpAddress":{"type":"string","description":"The primary private IP address of the ENI.\n"},"privateIp":{"type":"string","description":"Instance private IP address can be specified when you creating new instance. It is valid when \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified. When it is changed, the instance will reboot to make the change take effect.\n"},"privatePoolOptionsId":{"type":"string","description":"The ID of the private pool.\n"},"privatePoolOptionsMatchCriteria":{"type":"string","description":"The type of the private pool. Default value: `None`. Valid values:\n- `Open`: Open private pool.\n- `Target`: Specified private pool. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`privatePoolOptionsMatchCriteria`\" pulumi-lang-dotnet=\"`PrivatePoolOptionsMatchCriteria`\" pulumi-lang-go=\"`privatePoolOptionsMatchCriteria`\" pulumi-lang-python=\"`private_pool_options_match_criteria`\" pulumi-lang-yaml=\"`privatePoolOptionsMatchCriteria`\" pulumi-lang-java=\"`privatePoolOptionsMatchCriteria`\"\u003e`private_pool_options_match_criteria`\u003c/span\u003e is set to `Target`, \u003cspan pulumi-lang-nodejs=\"`privatePoolOptionsId`\" pulumi-lang-dotnet=\"`PrivatePoolOptionsId`\" pulumi-lang-go=\"`privatePoolOptionsId`\" pulumi-lang-python=\"`private_pool_options_id`\" pulumi-lang-yaml=\"`privatePoolOptionsId`\" pulumi-lang-java=\"`privatePoolOptionsId`\"\u003e`private_pool_options_id`\u003c/span\u003e is required.\n- `None`: No private pool. The capacity in private pools is not used.\n"},"publicIp":{"type":"string","description":"The instance public ip.\n"},"queuePairNumber":{"type":"integer","description":"The number of queues supported by the ERI.\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Whether to renew an ECS instance automatically or not. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Default to \"Normal\". Valid values:\n- `AutoRenewal`: Enable auto renewal.\n- `Normal`: Disable auto renewal.\n- `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the instance belongs.\n"},"roleName":{"type":"string","description":"The name of the Resource Access Management (RAM) role. **NOTE:** From version 1.250.0, If you want to use \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e, We recommend you to use the resource alicloud_ecs_ram_role_attachment.\n","willReplaceOnChanges":true},"secondaryPrivateIpAddressCount":{"type":"integer","description":"The number of private IP addresses to be automatically assigned from within the CIDR block of the vswitch. **NOTE:** To assign secondary private IP addresses, you must specify \u003cspan pulumi-lang-nodejs=\"`secondaryPrivateIps`\" pulumi-lang-dotnet=\"`SecondaryPrivateIps`\" pulumi-lang-go=\"`secondaryPrivateIps`\" pulumi-lang-python=\"`secondary_private_ips`\" pulumi-lang-yaml=\"`secondaryPrivateIps`\" pulumi-lang-java=\"`secondaryPrivateIps`\"\u003e`secondary_private_ips`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-dotnet=\"`SecondaryPrivateIpAddressCount`\" pulumi-lang-go=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-python=\"`secondary_private_ip_address_count`\" pulumi-lang-yaml=\"`secondaryPrivateIpAddressCount`\" pulumi-lang-java=\"`secondaryPrivateIpAddressCount`\"\u003e`secondary_private_ip_address_count`\u003c/span\u003e but not both.\n"},"secondaryPrivateIps":{"type":"array","items":{"type":"string"},"description":"A list of Secondary private IP addresses which is selected from within the CIDR block of the vSwitch.\n"},"securityEnhancementStrategy":{"type":"string","description":"The security enhancement strategy.\n- Active: Enable security enhancement strategy, it only works on system images.\n- Deactive: Disable security enhancement strategy, it works on all images.\n","willReplaceOnChanges":true},"securityGroups":{"type":"array","items":{"type":"string"},"description":"A list of security group ids to associate with. If you do not use \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e to specify a launch template, you must specify \u003cspan pulumi-lang-nodejs=\"`securityGroups`\" pulumi-lang-dotnet=\"`SecurityGroups`\" pulumi-lang-go=\"`securityGroups`\" pulumi-lang-python=\"`security_groups`\" pulumi-lang-yaml=\"`securityGroups`\" pulumi-lang-java=\"`securityGroups`\"\u003e`security_groups`\u003c/span\u003e.\n"},"spotDuration":{"type":"integer","description":"The retention time of the preemptive instance in hours. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e. Retention duration 2~6 is under invitation test, please submit a work order if you need to open. If the value is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, the mode is no protection period. Default value is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"spotPriceLimit":{"type":"number","description":"The hourly price threshold of a instance, and it takes effect only when parameter 'spot_strategy' is 'SpotWithPriceLimit'. Three decimals is allowed at most.\n","willReplaceOnChanges":true},"spotStrategy":{"type":"string","description":"The spot strategy of a Pay-As-You-Go instance, and it takes effect only when parameter \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is 'PostPaid'. Value range:\n- NoSpot: A regular Pay-As-You-Go instance.\n- SpotWithPriceLimit: A price threshold for a spot instance\n- SpotAsPriceGo: A price that is based on the highest Pay-As-You-Go instance\n\nDefault to NoSpot. Note: Currently, the spot instance only supports domestic site account.\n","willReplaceOnChanges":true},"startTime":{"type":"string","description":"(Available since v1.232.0) The time when the instance was last started.\n"},"status":{"type":"string","description":"The instance status. Valid values: [\"Running\", \"Stopped\"]. You can control the instance start and stop through this parameter. Default to `Running`.\n"},"stoppedMode":{"type":"string","description":"The stop mode of the pay-as-you-go instance. Valid values: `StopCharging`,`KeepCharging`, `Not-applicable`. Default value: If the prerequisites required for enabling the economical mode are met, and you have enabled this mode in the ECS console, the default value is `StopCharging`. For more information, see \"Enable the economical mode\" in [Economical mode](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/economical-mode). Otherwise, the default value is `KeepCharging`. **Note:** `Not-applicable`: Economical mode is not applicable to the instance.`\n* `KeepCharging`: standard mode. Billing of the instance continues after the instance is stopped, and resources are retained for the instance.\n* `StopCharging`: economical mode. Billing of some resources of the instance stops after the instance is stopped. When the instance is stopped, its resources such as vCPUs, memory, and public IP address are released. You may be unable to restart the instance if some types of resources are out of stock in the current region.\n"},"systemDiskAutoSnapshotPolicyId":{"type":"string","description":"The ID of the automatic snapshot policy applied to the system disk. **NOTE:** If you want to use \u003cspan pulumi-lang-nodejs=\"`systemDiskAutoSnapshotPolicyId`\" pulumi-lang-dotnet=\"`SystemDiskAutoSnapshotPolicyId`\" pulumi-lang-go=\"`systemDiskAutoSnapshotPolicyId`\" pulumi-lang-python=\"`system_disk_auto_snapshot_policy_id`\" pulumi-lang-yaml=\"`systemDiskAutoSnapshotPolicyId`\" pulumi-lang-java=\"`systemDiskAutoSnapshotPolicyId`\"\u003e`system_disk_auto_snapshot_policy_id`\u003c/span\u003e, We recommend you to use the resource alicloud_ecs_auto_snapshot_policy_attachment.\n"},"systemDiskBurstingEnabled":{"type":"boolean","description":"Specifies whether to enable the performance burst feature for the system disk. Valid values:\n"},"systemDiskCategory":{"type":"string","description":"Valid values are \u003cspan pulumi-lang-nodejs=\"`ephemeralSsd`\" pulumi-lang-dotnet=\"`EphemeralSsd`\" pulumi-lang-go=\"`ephemeralSsd`\" pulumi-lang-python=\"`ephemeral_ssd`\" pulumi-lang-yaml=\"`ephemeralSsd`\" pulumi-lang-java=\"`ephemeralSsd`\"\u003e`ephemeral_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e. only is used to some none I/O optimized instance. Valid values \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e Available since v1.184.0.\n","willReplaceOnChanges":true},"systemDiskDescription":{"type":"string","description":"The description of the system disk. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"systemDiskEncryptAlgorithm":{"type":"string","description":"The algorithm to be used to encrypt the system disk. Valid values are `aes-256`, `sm4-128`. Default value is `aes-256`.\n","willReplaceOnChanges":true},"systemDiskEncrypted":{"type":"boolean","description":"Specifies whether to encrypt the system disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"systemDiskId":{"type":"string","description":"(Available since v1.210.0) The ID of system disk.\n"},"systemDiskKmsKeyId":{"type":"string","description":"The ID of the Key Management Service (KMS) key to be used for the system disk.\n","willReplaceOnChanges":true},"systemDiskName":{"type":"string","description":"The name of the system disk. The name must be 2 to 128 characters in length and can contain letters, digits, periods (.), colons (:), underscores (_), and hyphens (-). It must start with a letter and cannot start with http:// or https://.\n"},"systemDiskPerformanceLevel":{"type":"string","description":"The performance level of the ESSD used as the system disk, Valid values: `PL0`, `PL1`, `PL2`, `PL3`, Default to `PL1`;For more information about ESSD, See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/122389.htm).\n"},"systemDiskProvisionedIops":{"type":"integer","description":"The provisioned read/write IOPS of the ESSD AutoPL disk to use as the system disk.\n"},"systemDiskSize":{"type":"integer","description":"Size of the system disk, measured in GiB. Value range: [20, 500]. The specified value must be equal to or greater than max{20, Imagesize}. Default value: max{40, ImageSize}.\n"},"systemDiskStorageClusterId":{"type":"string","description":"The ID of the dedicated block storage cluster. If you want to use disks in a dedicated block storage cluster as system disks when you create instances, you must specify this parameter. For more information about dedicated block storage clusters.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"userData":{"type":"string","description":"User-defined data to customize the startup behaviors of an ECS instance and to pass data into an ECS instance.\nIt supports to setting a base64-encoded value, and it is the recommended usage.\nFrom version 1.60.0, it can be updated in-place. If updated, the instance will reboot to make the change take effect.\nNote: Not all changes will take effect, and it depends on [cloud-init module type](https://cloudinit.readthedocs.io/en/latest/topics/modules.html).\n"},"volumeTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the devices created by the instance at launch time.\n- Key: It can be up to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch in VPC. This parameter must be set unless you can create classic network instances. When it is changed, the instance will reboot to make the change take effect.\n"}},"type":"object"}},"alicloud:ecs/keyPair:KeyPair":{"description":"\u003e **DEPRECATED:** This resource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.ecs.EcsKeyPair \" pulumi-lang-dotnet=\" alicloud.ecs.EcsKeyPair \" pulumi-lang-go=\" ecs.EcsKeyPair \" pulumi-lang-python=\" ecs.EcsKeyPair \" pulumi-lang-yaml=\" alicloud.ecs.EcsKeyPair \" pulumi-lang-java=\" alicloud.ecs.EcsKeyPair \"\u003e alicloud.ecs.EcsKeyPair \u003c/span\u003efrom version 1.121.0.\n\nProvides a key pair resource.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst basic = new alicloud.ecs.KeyPair(\"basic\", {keyName: \"terraform-test-key-pair\"});\n// Using name prefix to build key pair\nconst prefix = new alicloud.ecs.KeyPair(\"prefix\", {keyNamePrefix: \"terraform-test-key-pair-prefix\"});\n// Import an existing public key to build a alicloud key pair\nconst publickey = new alicloud.ecs.KeyPair(\"publickey\", {\n    keyName: \"my_public_key\",\n    publicKey: \"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nbasic = alicloud.ecs.KeyPair(\"basic\", key_name=\"terraform-test-key-pair\")\n# Using name prefix to build key pair\nprefix = alicloud.ecs.KeyPair(\"prefix\", key_name_prefix=\"terraform-test-key-pair-prefix\")\n# Import an existing public key to build a alicloud key pair\npublickey = alicloud.ecs.KeyPair(\"publickey\",\n    key_name=\"my_public_key\",\n    public_key=\"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var basic = new AliCloud.Ecs.KeyPair(\"basic\", new()\n    {\n        KeyName = \"terraform-test-key-pair\",\n    });\n\n    // Using name prefix to build key pair\n    var prefix = new AliCloud.Ecs.KeyPair(\"prefix\", new()\n    {\n        KeyNamePrefix = \"terraform-test-key-pair-prefix\",\n    });\n\n    // Import an existing public key to build a alicloud key pair\n    var publickey = new AliCloud.Ecs.KeyPair(\"publickey\", new()\n    {\n        KeyName = \"my_public_key\",\n        PublicKey = \"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewKeyPair(ctx, \"basic\", \u0026ecs.KeyPairArgs{\n\t\t\tKeyName: pulumi.String(\"terraform-test-key-pair\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Using name prefix to build key pair\n\t\t_, err = ecs.NewKeyPair(ctx, \"prefix\", \u0026ecs.KeyPairArgs{\n\t\t\tKeyNamePrefix: pulumi.String(\"terraform-test-key-pair-prefix\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Import an existing public key to build a alicloud key pair\n\t\t_, err = ecs.NewKeyPair(ctx, \"publickey\", \u0026ecs.KeyPairArgs{\n\t\t\tKeyName:   pulumi.String(\"my_public_key\"),\n\t\t\tPublicKey: pulumi.String(\"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.KeyPair;\nimport com.pulumi.alicloud.ecs.KeyPairArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var basic = new KeyPair(\"basic\", KeyPairArgs.builder()\n            .keyName(\"terraform-test-key-pair\")\n            .build());\n\n        // Using name prefix to build key pair\n        var prefix = new KeyPair(\"prefix\", KeyPairArgs.builder()\n            .keyNamePrefix(\"terraform-test-key-pair-prefix\")\n            .build());\n\n        // Import an existing public key to build a alicloud key pair\n        var publickey = new KeyPair(\"publickey\", KeyPairArgs.builder()\n            .keyName(\"my_public_key\")\n            .publicKey(\"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  basic:\n    type: alicloud:ecs:KeyPair\n    properties:\n      keyName: terraform-test-key-pair\n  # Using name prefix to build key pair\n  prefix:\n    type: alicloud:ecs:KeyPair\n    properties:\n      keyNamePrefix: terraform-test-key-pair-prefix\n  # Import an existing public key to build a alicloud key pair\n  publickey:\n    type: alicloud:ecs:KeyPair\n    properties:\n      keyName: my_public_key\n      publicKey: ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nKey pair can be imported using the name, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/keyPair:KeyPair example my_public_key\n```\n\n","properties":{"createTime":{"type":"string"},"fingerPrint":{"type":"string"},"keyFile":{"type":"string","description":"The name of file to save your new key pair's private key. Strongly suggest you to specified it when you creating key pair, otherwise, you wouldn't get its private key ever.\n"},"keyName":{"type":"string","description":"The key pair's name. It is the only in one Alicloud account.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e instead."},"keyNamePrefix":{"type":"string","description":"The key pair name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e. If it is specified, terraform will using it to build the only key name.\n"},"keyPairName":{"type":"string"},"publicKey":{"type":"string","description":"You can import an existing public key and using Alicloud key pair to manage it. If this parameter is specified, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e is the key pair belongs.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the key pair belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`keyNamePrefix`\" pulumi-lang-dotnet=\"`KeyNamePrefix`\" pulumi-lang-go=\"`keyNamePrefix`\" pulumi-lang-python=\"`key_name_prefix`\" pulumi-lang-yaml=\"`keyNamePrefix`\" pulumi-lang-java=\"`keyNamePrefix`\"\u003e`key_name_prefix`\u003c/span\u003e are not set, terraform will produce a specified ID to replace.\n"}},"required":["createTime","fingerPrint","keyName","keyPairName","resourceGroupId"],"inputProperties":{"keyFile":{"type":"string","description":"The name of file to save your new key pair's private key. Strongly suggest you to specified it when you creating key pair, otherwise, you wouldn't get its private key ever.\n","willReplaceOnChanges":true},"keyName":{"type":"string","description":"The key pair's name. It is the only in one Alicloud account.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e instead.","willReplaceOnChanges":true},"keyNamePrefix":{"type":"string","description":"The key pair name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e. If it is specified, terraform will using it to build the only key name.\n","willReplaceOnChanges":true},"keyPairName":{"type":"string","willReplaceOnChanges":true},"publicKey":{"type":"string","description":"You can import an existing public key and using Alicloud key pair to manage it. If this parameter is specified, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e is the key pair belongs.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the key pair belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`keyNamePrefix`\" pulumi-lang-dotnet=\"`KeyNamePrefix`\" pulumi-lang-go=\"`keyNamePrefix`\" pulumi-lang-python=\"`key_name_prefix`\" pulumi-lang-yaml=\"`keyNamePrefix`\" pulumi-lang-java=\"`keyNamePrefix`\"\u003e`key_name_prefix`\u003c/span\u003e are not set, terraform will produce a specified ID to replace.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering KeyPair resources.\n","properties":{"createTime":{"type":"string"},"fingerPrint":{"type":"string"},"keyFile":{"type":"string","description":"The name of file to save your new key pair's private key. Strongly suggest you to specified it when you creating key pair, otherwise, you wouldn't get its private key ever.\n","willReplaceOnChanges":true},"keyName":{"type":"string","description":"The key pair's name. It is the only in one Alicloud account.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e instead.","willReplaceOnChanges":true},"keyNamePrefix":{"type":"string","description":"The key pair name's prefix. It is conflict with \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e. If it is specified, terraform will using it to build the only key name.\n","willReplaceOnChanges":true},"keyPairName":{"type":"string","willReplaceOnChanges":true},"publicKey":{"type":"string","description":"You can import an existing public key and using Alicloud key pair to manage it. If this parameter is specified, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e is the key pair belongs.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the key pair belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`keyName`\" pulumi-lang-dotnet=\"`KeyName`\" pulumi-lang-go=\"`keyName`\" pulumi-lang-python=\"`key_name`\" pulumi-lang-yaml=\"`keyName`\" pulumi-lang-java=\"`keyName`\"\u003e`key_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`keyNamePrefix`\" pulumi-lang-dotnet=\"`KeyNamePrefix`\" pulumi-lang-go=\"`keyNamePrefix`\" pulumi-lang-python=\"`key_name_prefix`\" pulumi-lang-yaml=\"`keyNamePrefix`\" pulumi-lang-java=\"`keyNamePrefix`\"\u003e`key_name_prefix`\u003c/span\u003e are not set, terraform will produce a specified ID to replace.\n"}},"type":"object"}},"alicloud:ecs/keyPairAttachment:KeyPairAttachment":{"description":"\u003e **DEPRECATED:** This resource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.ecs.EcsKeyPairAttachment \" pulumi-lang-dotnet=\" alicloud.ecs.EcsKeyPairAttachment \" pulumi-lang-go=\" ecs.EcsKeyPairAttachment \" pulumi-lang-python=\" ecs.EcsKeyPairAttachment \" pulumi-lang-yaml=\" alicloud.ecs.EcsKeyPairAttachment \" pulumi-lang-java=\" alicloud.ecs.EcsKeyPairAttachment \"\u003e alicloud.ecs.EcsKeyPairAttachment \u003c/span\u003efrom version 1.121.0.\n\nProvides a key pair attachment resource to bind key pair for several ECS instances.\n\n\u003e **NOTE:** After the key pair is attached with sone instances, there instances must be rebooted to make the key pair affect.\n\n","properties":{"force":{"type":"boolean","description":"Set it to true and it will reboot instances which attached with the key pair to make key pair affect immediately.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"The list of ECS instance's IDs.\n"},"keyName":{"type":"string","description":"The name of key pair used to bind.\n","deprecationMessage":"Field 'key_name' has been deprecated from provider version 1.121.0. New field 'key_pair_name' instead."},"keyPairName":{"type":"string"}},"required":["instanceIds","keyName","keyPairName"],"inputProperties":{"force":{"type":"boolean","description":"Set it to true and it will reboot instances which attached with the key pair to make key pair affect immediately.\n","willReplaceOnChanges":true},"instanceIds":{"type":"array","items":{"type":"string"},"description":"The list of ECS instance's IDs.\n","willReplaceOnChanges":true},"keyName":{"type":"string","description":"The name of key pair used to bind.\n","deprecationMessage":"Field 'key_name' has been deprecated from provider version 1.121.0. New field 'key_pair_name' instead.","willReplaceOnChanges":true},"keyPairName":{"type":"string","willReplaceOnChanges":true}},"requiredInputs":["instanceIds"],"stateInputs":{"description":"Input properties used for looking up and filtering KeyPairAttachment resources.\n","properties":{"force":{"type":"boolean","description":"Set it to true and it will reboot instances which attached with the key pair to make key pair affect immediately.\n","willReplaceOnChanges":true},"instanceIds":{"type":"array","items":{"type":"string"},"description":"The list of ECS instance's IDs.\n","willReplaceOnChanges":true},"keyName":{"type":"string","description":"The name of key pair used to bind.\n","deprecationMessage":"Field 'key_name' has been deprecated from provider version 1.121.0. New field 'key_pair_name' instead.","willReplaceOnChanges":true},"keyPairName":{"type":"string","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/launchTemplate:LaunchTemplate":{"description":"Provides an ECS Launch Template resource.\n\nFor information about Launch Template and how to use it, see [Launch Template](https://www.alibabacloud.com/help/doc-detail/73916.html).\n\n\u003e **DEPRECATED:**  This resource  has been deprecated from version `1.120.0`. Please use new resource alicloud_ecs_launch_template.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst images = alicloud.ecs.getImages({\n    owners: \"system\",\n});\nconst instances = alicloud.ecs.getInstances({});\nconst template = new alicloud.ecs.LaunchTemplate(\"template\", {\n    name: \"tf-test-template\",\n    description: \"test1\",\n    imageId: images.then(images =\u003e images.images?.[0]?.id),\n    hostName: \"tf-test-host\",\n    instanceChargeType: \"PrePaid\",\n    instanceName: \"tf-instance-name\",\n    instanceType: instances.then(instances =\u003e instances.instances?.[0]?.instanceType),\n    internetChargeType: \"PayByBandwidth\",\n    internetMaxBandwidthIn: 5,\n    internetMaxBandwidthOut: 0,\n    ioOptimized: \"none\",\n    keyPairName: \"test-key-pair\",\n    ramRoleName: \"xxxxx\",\n    networkType: \"vpc\",\n    securityEnhancementStrategy: \"Active\",\n    spotPriceLimit: 5,\n    spotStrategy: \"SpotWithPriceLimit\",\n    securityGroupId: \"sg-zxcvj0lasdf102350asdf9a\",\n    systemDiskCategory: \"cloud_ssd\",\n    systemDiskDescription: \"test disk\",\n    systemDiskName: \"hello\",\n    systemDiskSize: 40,\n    resourceGroupId: \"rg-zkdfjahg9zxncv0\",\n    userdata: \"xxxxxxxxxxxxxx\",\n    vswitchId: \"sw-ljkngaksdjfj0nnasdf\",\n    vpcId: \"vpc-asdfnbg0as8dfk1nb2\",\n    zoneId: \"beijing-a\",\n    tags: {\n        tag1: \"hello\",\n        tag2: \"world\",\n    },\n    networkInterfaces: {\n        name: \"eth0\",\n        description: \"hello1\",\n        primaryIp: \"10.0.0.2\",\n        securityGroupId: \"xxxx\",\n        vswitchId: \"xxxxxxx\",\n    },\n    dataDisks: [\n        {\n            name: \"disk1\",\n            description: \"test1\",\n        },\n        {\n            name: \"disk2\",\n            description: \"test2\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nimages = alicloud.ecs.get_images(owners=\"system\")\ninstances = alicloud.ecs.get_instances()\ntemplate = alicloud.ecs.LaunchTemplate(\"template\",\n    name=\"tf-test-template\",\n    description=\"test1\",\n    image_id=images.images[0].id,\n    host_name=\"tf-test-host\",\n    instance_charge_type=\"PrePaid\",\n    instance_name=\"tf-instance-name\",\n    instance_type=instances.instances[0].instance_type,\n    internet_charge_type=\"PayByBandwidth\",\n    internet_max_bandwidth_in=5,\n    internet_max_bandwidth_out=0,\n    io_optimized=\"none\",\n    key_pair_name=\"test-key-pair\",\n    ram_role_name=\"xxxxx\",\n    network_type=\"vpc\",\n    security_enhancement_strategy=\"Active\",\n    spot_price_limit=5,\n    spot_strategy=\"SpotWithPriceLimit\",\n    security_group_id=\"sg-zxcvj0lasdf102350asdf9a\",\n    system_disk_category=\"cloud_ssd\",\n    system_disk_description=\"test disk\",\n    system_disk_name=\"hello\",\n    system_disk_size=40,\n    resource_group_id=\"rg-zkdfjahg9zxncv0\",\n    userdata=\"xxxxxxxxxxxxxx\",\n    vswitch_id=\"sw-ljkngaksdjfj0nnasdf\",\n    vpc_id=\"vpc-asdfnbg0as8dfk1nb2\",\n    zone_id=\"beijing-a\",\n    tags={\n        \"tag1\": \"hello\",\n        \"tag2\": \"world\",\n    },\n    network_interfaces={\n        \"name\": \"eth0\",\n        \"description\": \"hello1\",\n        \"primary_ip\": \"10.0.0.2\",\n        \"security_group_id\": \"xxxx\",\n        \"vswitch_id\": \"xxxxxxx\",\n    },\n    data_disks=[\n        {\n            \"name\": \"disk1\",\n            \"description\": \"test1\",\n        },\n        {\n            \"name\": \"disk2\",\n            \"description\": \"test2\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var images = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        Owners = \"system\",\n    });\n\n    var instances = AliCloud.Ecs.GetInstances.Invoke();\n\n    var template = new AliCloud.Ecs.LaunchTemplate(\"template\", new()\n    {\n        Name = \"tf-test-template\",\n        Description = \"test1\",\n        ImageId = images.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        HostName = \"tf-test-host\",\n        InstanceChargeType = \"PrePaid\",\n        InstanceName = \"tf-instance-name\",\n        InstanceType = instances.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.InstanceType),\n        InternetChargeType = \"PayByBandwidth\",\n        InternetMaxBandwidthIn = 5,\n        InternetMaxBandwidthOut = 0,\n        IoOptimized = \"none\",\n        KeyPairName = \"test-key-pair\",\n        RamRoleName = \"xxxxx\",\n        NetworkType = \"vpc\",\n        SecurityEnhancementStrategy = \"Active\",\n        SpotPriceLimit = 5,\n        SpotStrategy = \"SpotWithPriceLimit\",\n        SecurityGroupId = \"sg-zxcvj0lasdf102350asdf9a\",\n        SystemDiskCategory = \"cloud_ssd\",\n        SystemDiskDescription = \"test disk\",\n        SystemDiskName = \"hello\",\n        SystemDiskSize = 40,\n        ResourceGroupId = \"rg-zkdfjahg9zxncv0\",\n        Userdata = \"xxxxxxxxxxxxxx\",\n        VswitchId = \"sw-ljkngaksdjfj0nnasdf\",\n        VpcId = \"vpc-asdfnbg0as8dfk1nb2\",\n        ZoneId = \"beijing-a\",\n        Tags = \n        {\n            { \"tag1\", \"hello\" },\n            { \"tag2\", \"world\" },\n        },\n        NetworkInterfaces = new AliCloud.Ecs.Inputs.LaunchTemplateNetworkInterfacesArgs\n        {\n            Name = \"eth0\",\n            Description = \"hello1\",\n            PrimaryIp = \"10.0.0.2\",\n            SecurityGroupId = \"xxxx\",\n            VswitchId = \"xxxxxxx\",\n        },\n        DataDisks = new[]\n        {\n            new AliCloud.Ecs.Inputs.LaunchTemplateDataDiskArgs\n            {\n                Name = \"disk1\",\n                Description = \"test1\",\n            },\n            new AliCloud.Ecs.Inputs.LaunchTemplateDataDiskArgs\n            {\n                Name = \"disk2\",\n                Description = \"test2\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\timages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tOwners: pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstances, err := ecs.GetInstances(ctx, \u0026ecs.GetInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewLaunchTemplate(ctx, \"template\", \u0026ecs.LaunchTemplateArgs{\n\t\t\tName:                        pulumi.String(\"tf-test-template\"),\n\t\t\tDescription:                 pulumi.String(\"test1\"),\n\t\t\tImageId:                     pulumi.String(images.Images[0].Id),\n\t\t\tHostName:                    pulumi.String(\"tf-test-host\"),\n\t\t\tInstanceChargeType:          pulumi.String(\"PrePaid\"),\n\t\t\tInstanceName:                pulumi.String(\"tf-instance-name\"),\n\t\t\tInstanceType:                pulumi.String(instances.Instances[0].InstanceType),\n\t\t\tInternetChargeType:          pulumi.String(\"PayByBandwidth\"),\n\t\t\tInternetMaxBandwidthIn:      pulumi.Int(5),\n\t\t\tInternetMaxBandwidthOut:     pulumi.Int(0),\n\t\t\tIoOptimized:                 pulumi.String(\"none\"),\n\t\t\tKeyPairName:                 pulumi.String(\"test-key-pair\"),\n\t\t\tRamRoleName:                 pulumi.String(\"xxxxx\"),\n\t\t\tNetworkType:                 pulumi.String(\"vpc\"),\n\t\t\tSecurityEnhancementStrategy: pulumi.String(\"Active\"),\n\t\t\tSpotPriceLimit:              pulumi.Float64(5),\n\t\t\tSpotStrategy:                pulumi.String(\"SpotWithPriceLimit\"),\n\t\t\tSecurityGroupId:             pulumi.String(\"sg-zxcvj0lasdf102350asdf9a\"),\n\t\t\tSystemDiskCategory:          pulumi.String(\"cloud_ssd\"),\n\t\t\tSystemDiskDescription:       pulumi.String(\"test disk\"),\n\t\t\tSystemDiskName:              pulumi.String(\"hello\"),\n\t\t\tSystemDiskSize:              pulumi.Int(40),\n\t\t\tResourceGroupId:             pulumi.String(\"rg-zkdfjahg9zxncv0\"),\n\t\t\tUserdata:                    pulumi.String(\"xxxxxxxxxxxxxx\"),\n\t\t\tVswitchId:                   pulumi.String(\"sw-ljkngaksdjfj0nnasdf\"),\n\t\t\tVpcId:                       pulumi.String(\"vpc-asdfnbg0as8dfk1nb2\"),\n\t\t\tZoneId:                      pulumi.String(\"beijing-a\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"tag1\": pulumi.String(\"hello\"),\n\t\t\t\t\"tag2\": pulumi.String(\"world\"),\n\t\t\t},\n\t\t\tNetworkInterfaces: \u0026ecs.LaunchTemplateNetworkInterfacesArgs{\n\t\t\t\tName:            pulumi.String(\"eth0\"),\n\t\t\t\tDescription:     pulumi.String(\"hello1\"),\n\t\t\t\tPrimaryIp:       pulumi.String(\"10.0.0.2\"),\n\t\t\t\tSecurityGroupId: pulumi.String(\"xxxx\"),\n\t\t\t\tVswitchId:       pulumi.String(\"xxxxxxx\"),\n\t\t\t},\n\t\t\tDataDisks: ecs.LaunchTemplateDataDiskArray{\n\t\t\t\t\u0026ecs.LaunchTemplateDataDiskArgs{\n\t\t\t\t\tName:        pulumi.String(\"disk1\"),\n\t\t\t\t\tDescription: pulumi.String(\"test1\"),\n\t\t\t\t},\n\t\t\t\t\u0026ecs.LaunchTemplateDataDiskArgs{\n\t\t\t\t\tName:        pulumi.String(\"disk2\"),\n\t\t\t\t\tDescription: pulumi.String(\"test2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.ecs.LaunchTemplate;\nimport com.pulumi.alicloud.ecs.LaunchTemplateArgs;\nimport com.pulumi.alicloud.ecs.inputs.LaunchTemplateNetworkInterfacesArgs;\nimport com.pulumi.alicloud.ecs.inputs.LaunchTemplateDataDiskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var images = EcsFunctions.getImages(GetImagesArgs.builder()\n            .owners(\"system\")\n            .build());\n\n        final var instances = EcsFunctions.getInstances(GetInstancesArgs.builder()\n            .build());\n\n        var template = new LaunchTemplate(\"template\", LaunchTemplateArgs.builder()\n            .name(\"tf-test-template\")\n            .description(\"test1\")\n            .imageId(images.images()[0].id())\n            .hostName(\"tf-test-host\")\n            .instanceChargeType(\"PrePaid\")\n            .instanceName(\"tf-instance-name\")\n            .instanceType(instances.instances()[0].instanceType())\n            .internetChargeType(\"PayByBandwidth\")\n            .internetMaxBandwidthIn(5)\n            .internetMaxBandwidthOut(0)\n            .ioOptimized(\"none\")\n            .keyPairName(\"test-key-pair\")\n            .ramRoleName(\"xxxxx\")\n            .networkType(\"vpc\")\n            .securityEnhancementStrategy(\"Active\")\n            .spotPriceLimit(5.0)\n            .spotStrategy(\"SpotWithPriceLimit\")\n            .securityGroupId(\"sg-zxcvj0lasdf102350asdf9a\")\n            .systemDiskCategory(\"cloud_ssd\")\n            .systemDiskDescription(\"test disk\")\n            .systemDiskName(\"hello\")\n            .systemDiskSize(40)\n            .resourceGroupId(\"rg-zkdfjahg9zxncv0\")\n            .userdata(\"xxxxxxxxxxxxxx\")\n            .vswitchId(\"sw-ljkngaksdjfj0nnasdf\")\n            .vpcId(\"vpc-asdfnbg0as8dfk1nb2\")\n            .zoneId(\"beijing-a\")\n            .tags(Map.ofEntries(\n                Map.entry(\"tag1\", \"hello\"),\n                Map.entry(\"tag2\", \"world\")\n            ))\n            .networkInterfaces(LaunchTemplateNetworkInterfacesArgs.builder()\n                .name(\"eth0\")\n                .description(\"hello1\")\n                .primaryIp(\"10.0.0.2\")\n                .securityGroupId(\"xxxx\")\n                .vswitchId(\"xxxxxxx\")\n                .build())\n            .dataDisks(            \n                LaunchTemplateDataDiskArgs.builder()\n                    .name(\"disk1\")\n                    .description(\"test1\")\n                    .build(),\n                LaunchTemplateDataDiskArgs.builder()\n                    .name(\"disk2\")\n                    .description(\"test2\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  template:\n    type: alicloud:ecs:LaunchTemplate\n    properties:\n      name: tf-test-template\n      description: test1\n      imageId: ${images.images[0].id}\n      hostName: tf-test-host\n      instanceChargeType: PrePaid\n      instanceName: tf-instance-name\n      instanceType: ${instances.instances[0].instanceType}\n      internetChargeType: PayByBandwidth\n      internetMaxBandwidthIn: 5\n      internetMaxBandwidthOut: 0\n      ioOptimized: none\n      keyPairName: test-key-pair\n      ramRoleName: xxxxx\n      networkType: vpc\n      securityEnhancementStrategy: Active\n      spotPriceLimit: 5\n      spotStrategy: SpotWithPriceLimit\n      securityGroupId: sg-zxcvj0lasdf102350asdf9a\n      systemDiskCategory: cloud_ssd\n      systemDiskDescription: test disk\n      systemDiskName: hello\n      systemDiskSize: 40\n      resourceGroupId: rg-zkdfjahg9zxncv0\n      userdata: xxxxxxxxxxxxxx\n      vswitchId: sw-ljkngaksdjfj0nnasdf\n      vpcId: vpc-asdfnbg0as8dfk1nb2\n      zoneId: beijing-a\n      tags:\n        tag1: hello\n        tag2: world\n      networkInterfaces:\n        name: eth0\n        description: hello1\n        primaryIp: 10.0.0.2\n        securityGroupId: xxxx\n        vswitchId: xxxxxxx\n      dataDisks:\n        - name: disk1\n          description: test1\n        - name: disk2\n          description: test2\nvariables:\n  images:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        owners: system\n  instances:\n    fn::invoke:\n      function: alicloud:ecs:getInstances\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLaunch Template can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/launchTemplate:LaunchTemplate lt lt-abc1234567890000\n```\n\n","properties":{"autoReleaseTime":{"type":"string","description":"Instance auto release time. The time is presented using the ISO8601 standard and in UTC time. The format is  YYYY-MM-DDTHH:MM:SSZ.\n"},"autoRenew":{"type":"boolean"},"autoRenewPeriod":{"type":"integer"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/LaunchTemplateDataDisk:LaunchTemplateDataDisk"},"description":"The list of data disks created with instance.\n"},"defaultVersionNumber":{"type":"integer"},"deploymentSetId":{"type":"string"},"description":{"type":"string","description":"Description of instance launch template version 1. It can be [2, 256] characters in length. It cannot start with \"http://\" or \"https://\". The default value is null.\n"},"enableVmOsConfig":{"type":"boolean"},"hostName":{"type":"string","description":"Instance host name.It cannot start or end with a period (.) or a hyphen (-) and it cannot have two or more consecutive periods (.) or hyphens (-).For Windows: The host name can be [2, 15] characters in length. It can contain A-Z, a-z, numbers, periods (.), and hyphens (-). It cannot only contain numbers. For other operating systems: The host name can be [2, 64] characters in length. It can be segments separated by periods (.). It can contain A-Z, a-z, numbers, and hyphens (-).\n"},"httpEndpoint":{"type":"string"},"httpPutResponseHopLimit":{"type":"integer"},"httpTokens":{"type":"string"},"imageId":{"type":"string","description":"Image ID.\n"},"imageOptions":{"$ref":"#/types/alicloud:ecs/LaunchTemplateImageOptions:LaunchTemplateImageOptions"},"imageOwnerAlias":{"type":"string"},"instanceChargeType":{"type":"string","description":"Billing methods. Optional values:\n- PrePaid: Monthly, or annual subscription. Make sure that your registered credit card is invalid or you have insufficient balance in your PayPal account. Otherwise, InvalidPayMethod error may occur.\n- PostPaid: Pay-As-You-Go.\n\nDefault value: PostPaid.\n"},"instanceName":{"type":"string","description":"The name of the instance. The name is a string of 2 to 128 characters. It must begin with an English or a Chinese character. It can contain A-Z, a-z, Chinese characters, numbers, periods (.), colons (:), underscores (_), and hyphens (-).\n"},"instanceType":{"type":"string","description":"Instance type. For more information, call\u003cspan pulumi-lang-nodejs=\" resourceAlicloudInstances \" pulumi-lang-dotnet=\" ResourceAlicloudInstances \" pulumi-lang-go=\" resourceAlicloudInstances \" pulumi-lang-python=\" resource_alicloud_instances \" pulumi-lang-yaml=\" resourceAlicloudInstances \" pulumi-lang-java=\" resourceAlicloudInstances \"\u003e resource_alicloud_instances \u003c/span\u003eto obtain the latest instance type list.\n"},"internetChargeType":{"type":"string","description":"Internet bandwidth billing method. Optional values: `PayByTraffic` | `PayByBandwidth`.\n"},"internetMaxBandwidthIn":{"type":"integer","description":"The maximum inbound bandwidth from the Internet network, measured in Mbit/s. Value range: [1, 200].\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Maximum outbound bandwidth from the Internet, its unit of measurement is Mbit/s. Value range: [0, 100].\n"},"ioOptimized":{"type":"string","description":"Whether it is an I/O-optimized instance or not. Optional values:\n- none\n- optimized\n"},"keyPairName":{"type":"string","description":"The name of the key pair.\n- Ignore this parameter for Windows instances. It is null by default. Even if you enter this parameter, only the  Password content is used.\n- The password logon method for Linux instances is set to forbidden upon initialization.\n"},"latestVersionNumber":{"type":"integer"},"launchTemplateName":{"type":"string"},"name":{"type":"string","description":"Instance launch template name. Can contain [2, 128] characters in length. It must start with an English letter or Chinese, can contain numbers, periods (.), colons (:), underscores (_), and hyphens (-). It cannot start with \"http://\" or \"https://\".\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.120.0. New field 'launch_template_name' instead."},"networkInterfaces":{"$ref":"#/types/alicloud:ecs/LaunchTemplateNetworkInterfaces:LaunchTemplateNetworkInterfaces","description":"The list of network interfaces created with instance.\n"},"networkType":{"type":"string","description":"Network type of the instance. Value options: \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e | \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n"},"passwordInherit":{"type":"boolean"},"period":{"type":"integer"},"periodUnit":{"type":"string"},"privateIpAddress":{"type":"string"},"ramRoleName":{"type":"string","description":"The RAM role name of the instance. You can use the RAM API ListRoles to query instance RAM role names.\n"},"resourceGroupId":{"type":"string"},"securityEnhancementStrategy":{"type":"string","description":"Whether or not to activate the security enhancement feature and install network security software free of charge. Optional values: Active | Deactive.\n"},"securityGroupId":{"type":"string","description":"The security group ID.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"}},"spotDuration":{"type":"string"},"spotPriceLimit":{"type":"number","description":"Sets the maximum hourly instance price. Supports up to three decimal places.\n"},"spotStrategy":{"type":"string","description":"The spot strategy for a Pay-As-You-Go instance. This parameter is valid and required only when InstanceChargeType is set to PostPaid. Value range:\n- NoSpot: Normal Pay-As-You-Go instance.\n- SpotWithPriceLimit: Sets the maximum price for a spot instance.\n- SpotAsPriceGo: The system automatically calculates the price. The maximum value is the Pay-As-You-Go price.\n"},"systemDisk":{"$ref":"#/types/alicloud:ecs/LaunchTemplateSystemDisk:LaunchTemplateSystemDisk"},"systemDiskCategory":{"type":"string","description":"The category of the system disk. System disk type. Optional values:\n- cloud: Basic cloud disk.\n- cloud_efficiency: Ultra cloud disk.\n- cloud_ssd: SSD cloud Disks.\n- ephemeral_ssd: local SSD Disks\n- cloud_essd: ESSD cloud Disks.\n","deprecationMessage":"Field 'system_disk_category' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskDescription":{"type":"string","description":"System disk description. It cannot begin with http:// or https://.\n","deprecationMessage":"Field 'system_disk_description' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskName":{"type":"string","description":"System disk name. The name is a string of 2 to 128 characters. It must begin with an English or a Chinese character. It can contain A-Z, a-z, Chinese characters, numbers, periods (.), colons (:), underscores (_), and hyphens (-).\n","deprecationMessage":"Field 'system_disk_name' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskSize":{"type":"integer","description":"Size of the system disk, measured in GB. Value range: [20, 500].\n","deprecationMessage":"Field 'system_disk_size' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"templateResourceGroupId":{"type":"string"},"templateTags":{"type":"object","additionalProperties":{"type":"string"}},"updateDefaultVersionNumber":{"type":"boolean"},"userData":{"type":"string"},"userdata":{"type":"string","description":"User data of the instance, which is Base64-encoded. Size of the raw data cannot exceed 16 KB.\n","deprecationMessage":"Field 'userdata' has been deprecated from provider version 1.120.0. New field 'user_data' instead."},"versionDescription":{"type":"string"},"vpcId":{"type":"string"},"vswitchId":{"type":"string","description":"When creating a VPC-Connected instance, you must specify its VSwitch ID.\n"},"zoneId":{"type":"string","description":"The zone ID of the instance.\n"}},"required":["autoRenew","autoRenewPeriod","defaultVersionNumber","httpEndpoint","httpPutResponseHopLimit","httpTokens","imageOptions","internetMaxBandwidthIn","latestVersionNumber","launchTemplateName","name","period","periodUnit","systemDisk","systemDiskCategory","systemDiskDescription","systemDiskName","systemDiskSize","userData","userdata","vpcId","zoneId"],"inputProperties":{"autoReleaseTime":{"type":"string","description":"Instance auto release time. The time is presented using the ISO8601 standard and in UTC time. The format is  YYYY-MM-DDTHH:MM:SSZ.\n"},"autoRenew":{"type":"boolean","willReplaceOnChanges":true},"autoRenewPeriod":{"type":"integer","willReplaceOnChanges":true},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/LaunchTemplateDataDisk:LaunchTemplateDataDisk"},"description":"The list of data disks created with instance.\n"},"defaultVersionNumber":{"type":"integer"},"deploymentSetId":{"type":"string"},"description":{"type":"string","description":"Description of instance launch template version 1. It can be [2, 256] characters in length. It cannot start with \"http://\" or \"https://\". The default value is null.\n"},"enableVmOsConfig":{"type":"boolean"},"hostName":{"type":"string","description":"Instance host name.It cannot start or end with a period (.) or a hyphen (-) and it cannot have two or more consecutive periods (.) or hyphens (-).For Windows: The host name can be [2, 15] characters in length. It can contain A-Z, a-z, numbers, periods (.), and hyphens (-). It cannot only contain numbers. For other operating systems: The host name can be [2, 64] characters in length. It can be segments separated by periods (.). It can contain A-Z, a-z, numbers, and hyphens (-).\n"},"httpEndpoint":{"type":"string"},"httpPutResponseHopLimit":{"type":"integer"},"httpTokens":{"type":"string"},"imageId":{"type":"string","description":"Image ID.\n"},"imageOptions":{"$ref":"#/types/alicloud:ecs/LaunchTemplateImageOptions:LaunchTemplateImageOptions"},"imageOwnerAlias":{"type":"string"},"instanceChargeType":{"type":"string","description":"Billing methods. Optional values:\n- PrePaid: Monthly, or annual subscription. Make sure that your registered credit card is invalid or you have insufficient balance in your PayPal account. Otherwise, InvalidPayMethod error may occur.\n- PostPaid: Pay-As-You-Go.\n\nDefault value: PostPaid.\n"},"instanceName":{"type":"string","description":"The name of the instance. The name is a string of 2 to 128 characters. It must begin with an English or a Chinese character. It can contain A-Z, a-z, Chinese characters, numbers, periods (.), colons (:), underscores (_), and hyphens (-).\n"},"instanceType":{"type":"string","description":"Instance type. For more information, call\u003cspan pulumi-lang-nodejs=\" resourceAlicloudInstances \" pulumi-lang-dotnet=\" ResourceAlicloudInstances \" pulumi-lang-go=\" resourceAlicloudInstances \" pulumi-lang-python=\" resource_alicloud_instances \" pulumi-lang-yaml=\" resourceAlicloudInstances \" pulumi-lang-java=\" resourceAlicloudInstances \"\u003e resource_alicloud_instances \u003c/span\u003eto obtain the latest instance type list.\n"},"internetChargeType":{"type":"string","description":"Internet bandwidth billing method. Optional values: `PayByTraffic` | `PayByBandwidth`.\n"},"internetMaxBandwidthIn":{"type":"integer","description":"The maximum inbound bandwidth from the Internet network, measured in Mbit/s. Value range: [1, 200].\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Maximum outbound bandwidth from the Internet, its unit of measurement is Mbit/s. Value range: [0, 100].\n"},"ioOptimized":{"type":"string","description":"Whether it is an I/O-optimized instance or not. Optional values:\n- none\n- optimized\n"},"keyPairName":{"type":"string","description":"The name of the key pair.\n- Ignore this parameter for Windows instances. It is null by default. Even if you enter this parameter, only the  Password content is used.\n- The password logon method for Linux instances is set to forbidden upon initialization.\n"},"launchTemplateName":{"type":"string","willReplaceOnChanges":true},"name":{"type":"string","description":"Instance launch template name. Can contain [2, 128] characters in length. It must start with an English letter or Chinese, can contain numbers, periods (.), colons (:), underscores (_), and hyphens (-). It cannot start with \"http://\" or \"https://\".\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.120.0. New field 'launch_template_name' instead.","willReplaceOnChanges":true},"networkInterfaces":{"$ref":"#/types/alicloud:ecs/LaunchTemplateNetworkInterfaces:LaunchTemplateNetworkInterfaces","description":"The list of network interfaces created with instance.\n"},"networkType":{"type":"string","description":"Network type of the instance. Value options: \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e | \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n"},"passwordInherit":{"type":"boolean"},"period":{"type":"integer","willReplaceOnChanges":true},"periodUnit":{"type":"string","willReplaceOnChanges":true},"privateIpAddress":{"type":"string"},"ramRoleName":{"type":"string","description":"The RAM role name of the instance. You can use the RAM API ListRoles to query instance RAM role names.\n"},"resourceGroupId":{"type":"string"},"securityEnhancementStrategy":{"type":"string","description":"Whether or not to activate the security enhancement feature and install network security software free of charge. Optional values: Active | Deactive.\n"},"securityGroupId":{"type":"string","description":"The security group ID.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"}},"spotDuration":{"type":"string"},"spotPriceLimit":{"type":"number","description":"Sets the maximum hourly instance price. Supports up to three decimal places.\n"},"spotStrategy":{"type":"string","description":"The spot strategy for a Pay-As-You-Go instance. This parameter is valid and required only when InstanceChargeType is set to PostPaid. Value range:\n- NoSpot: Normal Pay-As-You-Go instance.\n- SpotWithPriceLimit: Sets the maximum price for a spot instance.\n- SpotAsPriceGo: The system automatically calculates the price. The maximum value is the Pay-As-You-Go price.\n"},"systemDisk":{"$ref":"#/types/alicloud:ecs/LaunchTemplateSystemDisk:LaunchTemplateSystemDisk"},"systemDiskCategory":{"type":"string","description":"The category of the system disk. System disk type. Optional values:\n- cloud: Basic cloud disk.\n- cloud_efficiency: Ultra cloud disk.\n- cloud_ssd: SSD cloud Disks.\n- ephemeral_ssd: local SSD Disks\n- cloud_essd: ESSD cloud Disks.\n","deprecationMessage":"Field 'system_disk_category' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskDescription":{"type":"string","description":"System disk description. It cannot begin with http:// or https://.\n","deprecationMessage":"Field 'system_disk_description' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskName":{"type":"string","description":"System disk name. The name is a string of 2 to 128 characters. It must begin with an English or a Chinese character. It can contain A-Z, a-z, Chinese characters, numbers, periods (.), colons (:), underscores (_), and hyphens (-).\n","deprecationMessage":"Field 'system_disk_name' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskSize":{"type":"integer","description":"Size of the system disk, measured in GB. Value range: [20, 500].\n","deprecationMessage":"Field 'system_disk_size' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"templateResourceGroupId":{"type":"string","willReplaceOnChanges":true},"templateTags":{"type":"object","additionalProperties":{"type":"string"}},"updateDefaultVersionNumber":{"type":"boolean"},"userData":{"type":"string"},"userdata":{"type":"string","description":"User data of the instance, which is Base64-encoded. Size of the raw data cannot exceed 16 KB.\n","deprecationMessage":"Field 'userdata' has been deprecated from provider version 1.120.0. New field 'user_data' instead."},"versionDescription":{"type":"string"},"vpcId":{"type":"string"},"vswitchId":{"type":"string","description":"When creating a VPC-Connected instance, you must specify its VSwitch ID.\n"},"zoneId":{"type":"string","description":"The zone ID of the instance.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering LaunchTemplate resources.\n","properties":{"autoReleaseTime":{"type":"string","description":"Instance auto release time. The time is presented using the ISO8601 standard and in UTC time. The format is  YYYY-MM-DDTHH:MM:SSZ.\n"},"autoRenew":{"type":"boolean","willReplaceOnChanges":true},"autoRenewPeriod":{"type":"integer","willReplaceOnChanges":true},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/LaunchTemplateDataDisk:LaunchTemplateDataDisk"},"description":"The list of data disks created with instance.\n"},"defaultVersionNumber":{"type":"integer"},"deploymentSetId":{"type":"string"},"description":{"type":"string","description":"Description of instance launch template version 1. It can be [2, 256] characters in length. It cannot start with \"http://\" or \"https://\". The default value is null.\n"},"enableVmOsConfig":{"type":"boolean"},"hostName":{"type":"string","description":"Instance host name.It cannot start or end with a period (.) or a hyphen (-) and it cannot have two or more consecutive periods (.) or hyphens (-).For Windows: The host name can be [2, 15] characters in length. It can contain A-Z, a-z, numbers, periods (.), and hyphens (-). It cannot only contain numbers. For other operating systems: The host name can be [2, 64] characters in length. It can be segments separated by periods (.). It can contain A-Z, a-z, numbers, and hyphens (-).\n"},"httpEndpoint":{"type":"string"},"httpPutResponseHopLimit":{"type":"integer"},"httpTokens":{"type":"string"},"imageId":{"type":"string","description":"Image ID.\n"},"imageOptions":{"$ref":"#/types/alicloud:ecs/LaunchTemplateImageOptions:LaunchTemplateImageOptions"},"imageOwnerAlias":{"type":"string"},"instanceChargeType":{"type":"string","description":"Billing methods. Optional values:\n- PrePaid: Monthly, or annual subscription. Make sure that your registered credit card is invalid or you have insufficient balance in your PayPal account. Otherwise, InvalidPayMethod error may occur.\n- PostPaid: Pay-As-You-Go.\n\nDefault value: PostPaid.\n"},"instanceName":{"type":"string","description":"The name of the instance. The name is a string of 2 to 128 characters. It must begin with an English or a Chinese character. It can contain A-Z, a-z, Chinese characters, numbers, periods (.), colons (:), underscores (_), and hyphens (-).\n"},"instanceType":{"type":"string","description":"Instance type. For more information, call\u003cspan pulumi-lang-nodejs=\" resourceAlicloudInstances \" pulumi-lang-dotnet=\" ResourceAlicloudInstances \" pulumi-lang-go=\" resourceAlicloudInstances \" pulumi-lang-python=\" resource_alicloud_instances \" pulumi-lang-yaml=\" resourceAlicloudInstances \" pulumi-lang-java=\" resourceAlicloudInstances \"\u003e resource_alicloud_instances \u003c/span\u003eto obtain the latest instance type list.\n"},"internetChargeType":{"type":"string","description":"Internet bandwidth billing method. Optional values: `PayByTraffic` | `PayByBandwidth`.\n"},"internetMaxBandwidthIn":{"type":"integer","description":"The maximum inbound bandwidth from the Internet network, measured in Mbit/s. Value range: [1, 200].\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Maximum outbound bandwidth from the Internet, its unit of measurement is Mbit/s. Value range: [0, 100].\n"},"ioOptimized":{"type":"string","description":"Whether it is an I/O-optimized instance or not. Optional values:\n- none\n- optimized\n"},"keyPairName":{"type":"string","description":"The name of the key pair.\n- Ignore this parameter for Windows instances. It is null by default. Even if you enter this parameter, only the  Password content is used.\n- The password logon method for Linux instances is set to forbidden upon initialization.\n"},"latestVersionNumber":{"type":"integer"},"launchTemplateName":{"type":"string","willReplaceOnChanges":true},"name":{"type":"string","description":"Instance launch template name. Can contain [2, 128] characters in length. It must start with an English letter or Chinese, can contain numbers, periods (.), colons (:), underscores (_), and hyphens (-). It cannot start with \"http://\" or \"https://\".\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.120.0. New field 'launch_template_name' instead.","willReplaceOnChanges":true},"networkInterfaces":{"$ref":"#/types/alicloud:ecs/LaunchTemplateNetworkInterfaces:LaunchTemplateNetworkInterfaces","description":"The list of network interfaces created with instance.\n"},"networkType":{"type":"string","description":"Network type of the instance. Value options: \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e | \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n"},"passwordInherit":{"type":"boolean"},"period":{"type":"integer","willReplaceOnChanges":true},"periodUnit":{"type":"string","willReplaceOnChanges":true},"privateIpAddress":{"type":"string"},"ramRoleName":{"type":"string","description":"The RAM role name of the instance. You can use the RAM API ListRoles to query instance RAM role names.\n"},"resourceGroupId":{"type":"string"},"securityEnhancementStrategy":{"type":"string","description":"Whether or not to activate the security enhancement feature and install network security software free of charge. Optional values: Active | Deactive.\n"},"securityGroupId":{"type":"string","description":"The security group ID.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"}},"spotDuration":{"type":"string"},"spotPriceLimit":{"type":"number","description":"Sets the maximum hourly instance price. Supports up to three decimal places.\n"},"spotStrategy":{"type":"string","description":"The spot strategy for a Pay-As-You-Go instance. This parameter is valid and required only when InstanceChargeType is set to PostPaid. Value range:\n- NoSpot: Normal Pay-As-You-Go instance.\n- SpotWithPriceLimit: Sets the maximum price for a spot instance.\n- SpotAsPriceGo: The system automatically calculates the price. The maximum value is the Pay-As-You-Go price.\n"},"systemDisk":{"$ref":"#/types/alicloud:ecs/LaunchTemplateSystemDisk:LaunchTemplateSystemDisk"},"systemDiskCategory":{"type":"string","description":"The category of the system disk. System disk type. Optional values:\n- cloud: Basic cloud disk.\n- cloud_efficiency: Ultra cloud disk.\n- cloud_ssd: SSD cloud Disks.\n- ephemeral_ssd: local SSD Disks\n- cloud_essd: ESSD cloud Disks.\n","deprecationMessage":"Field 'system_disk_category' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskDescription":{"type":"string","description":"System disk description. It cannot begin with http:// or https://.\n","deprecationMessage":"Field 'system_disk_description' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskName":{"type":"string","description":"System disk name. The name is a string of 2 to 128 characters. It must begin with an English or a Chinese character. It can contain A-Z, a-z, Chinese characters, numbers, periods (.), colons (:), underscores (_), and hyphens (-).\n","deprecationMessage":"Field 'system_disk_name' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"systemDiskSize":{"type":"integer","description":"Size of the system disk, measured in GB. Value range: [20, 500].\n","deprecationMessage":"Field 'system_disk_size' has been deprecated from provider version 1.120.0. New field 'system_disk' instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"templateResourceGroupId":{"type":"string","willReplaceOnChanges":true},"templateTags":{"type":"object","additionalProperties":{"type":"string"}},"updateDefaultVersionNumber":{"type":"boolean"},"userData":{"type":"string"},"userdata":{"type":"string","description":"User data of the instance, which is Base64-encoded. Size of the raw data cannot exceed 16 KB.\n","deprecationMessage":"Field 'userdata' has been deprecated from provider version 1.120.0. New field 'user_data' instead."},"versionDescription":{"type":"string"},"vpcId":{"type":"string"},"vswitchId":{"type":"string","description":"When creating a VPC-Connected instance, you must specify its VSwitch ID.\n"},"zoneId":{"type":"string","description":"The zone ID of the instance.\n"}},"type":"object"}},"alicloud:ecs/ramRoleAttachment:RamRoleAttachment":{"description":"Provides a ECS Ram Role Attachment resource.\n\nMount RAM role.\n\nFor information about ECS Ram Role Attachment and how to use it, see [What is Ram Role Attachment](https://next.api.alibabacloud.com/document/Ecs/2014-05-26/AttachInstanceRamRole).\n\n\u003e **NOTE:** Available since v1.250.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = Promise.all([_default, defaultGetImages]).then(([_default, defaultGetImages]) =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    imageId: defaultGetImages.images?.[0]?.id,\n}));\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    name: `${name}-${defaultInteger.result}`,\n    document: `\\\\t\\\\t{\n\\\\t\\\\t\\\\t\\\\\"Statement\\\\\": [\n\\\\t\\\\t\\\\t\\\\t{\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\"Principal\\\\\": {\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\"Service\\\\\": [\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\"ecs.aliyuncs.com\\\\\"\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t]\n\\\\t\\\\t\\\\t\\\\t\\\\t}\n\\\\t\\\\t\\\\t\\\\t}\n\\\\t\\\\t  \\\\t],\n\\\\t\\\\t\\\\t\\\\\"Version\\\\\": \\\\\"1\\\\\"\n\\\\t\\\\t}\n`,\n    force: true,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: `${name}-${defaultInteger.result}`,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: `${name}-${defaultInteger.result}`,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"192.168.192.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup].map(__item =\u003e __item.id),\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 10,\n    availabilityZone: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.availabilityZones?.[0]),\n    instanceChargeType: \"PostPaid\",\n    systemDiskCategory: \"cloud_efficiency\",\n    vswitchId: defaultSwitch.id,\n    instanceName: `${name}-${defaultInteger.result}`,\n});\nconst defaultRamRoleAttachment = new alicloud.ecs.RamRoleAttachment(\"default\", {\n    ramRoleName: defaultRole.id,\n    instanceId: defaultInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(most_recent=True,\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    image_id=default_get_images.images[0].id)\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_role = alicloud.ram.Role(\"default\",\n    name=f\"{name}-{default_integer['result']}\",\n    document=\"\"\"\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [\n\\t\\t\\t\\t{\n\\t\\t\\t\\t\\t\\\"Action\\\": \\\"sts:AssumeRole\\\",\n\\t\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\t\\\"Principal\\\": {\n\\t\\t\\t\\t\\t\\t\\\"Service\\\": [\n\\t\\t\\t\\t\\t\\t\\t\\\"ecs.aliyuncs.com\\\"\n\\t\\t\\t\\t\\t\\t]\n\\t\\t\\t\\t\\t}\n\\t\\t\\t\\t}\n\\t\\t  \\t],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n\"\"\",\n    force=True)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=f\"{name}-{default_integer['result']}\",\n    cidr_block=\"192.168.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=f\"{name}-{default_integer['result']}\",\n    vpc_id=default_network.id,\n    cidr_block=\"192.168.192.0/24\",\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[__item.id for __item in [default_security_group]],\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=10,\n    availability_zone=default_get_instance_types.instance_types[0].availability_zones[0],\n    instance_charge_type=\"PostPaid\",\n    system_disk_category=\"cloud_efficiency\",\n    vswitch_id=default_switch.id,\n    instance_name=f\"{name}-{default_integer['result']}\")\ndefault_ram_role_attachment = alicloud.ecs.RamRoleAttachment(\"default\",\n    ram_role_name=default_role.id,\n    instance_id=default_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = $\"{name}-{defaultInteger.Result}\",\n        Document = @\"\\t\\t{\n\\t\\t\\t\\\"\"Statement\\\"\": [\n\\t\\t\\t\\t{\n\\t\\t\\t\\t\\t\\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n\\t\\t\\t\\t\\t\\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n\\t\\t\\t\\t\\t\\\"\"Principal\\\"\": {\n\\t\\t\\t\\t\\t\\t\\\"\"Service\\\"\": [\n\\t\\t\\t\\t\\t\\t\\t\\\"\"ecs.aliyuncs.com\\\"\"\n\\t\\t\\t\\t\\t\\t]\n\\t\\t\\t\\t\\t}\n\\t\\t\\t\\t}\n\\t\\t  \\t],\n\\t\\t\\t\\\"\"Version\\\"\": \\\"\"1\\\"\"\n\\t\\t}\n\",\n        Force = true,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = $\"{name}-{defaultInteger.Result}\",\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = $\"{name}-{defaultInteger.Result}\",\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"192.168.192.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup,\n        }.Select(__item =\u003e __item.Id).ToList(),\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 10,\n        AvailabilityZone = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.AvailabilityZones[0]),\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskCategory = \"cloud_efficiency\",\n        VswitchId = defaultSwitch.Id,\n        InstanceName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultRamRoleAttachment = new AliCloud.Ecs.RamRoleAttachment(\"default\", new()\n    {\n        RamRoleName = defaultRole.Id,\n        InstanceId = defaultInstance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableDiskCategory: pulumi.StringRef(\"cloud_efficiency\"),\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nMostRecent: pulumi.BoolRef(true),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\nImageId: pulumi.StringRef(defaultGetImages.Images[0].Id),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMin: 10000,\nMax: 99999,\n})\nif err != nil {\nreturn err\n}\ndefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\nName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nDocument: pulumi.String(`\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [\n\\t\\t\\t\\t{\n\\t\\t\\t\\t\\t\\\"Action\\\": \\\"sts:AssumeRole\\\",\n\\t\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\t\\\"Principal\\\": {\n\\t\\t\\t\\t\\t\\t\\\"Service\\\": [\n\\t\\t\\t\\t\\t\\t\\t\\\"ecs.aliyuncs.com\\\"\n\\t\\t\\t\\t\\t\\t]\n\\t\\t\\t\\t\\t}\n\\t\\t\\t\\t}\n\\t\\t  \\t],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n`),\nForce: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"192.168.192.0/24\"),\nZoneId: pulumi.String(_default.Zones[0].Id),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nVpcId: defaultNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\ndefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\nImageId: pulumi.String(defaultGetImages.Images[0].Id),\nInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\nSecurityGroups: splat0,\nInternetChargeType: pulumi.String(\"PayByTraffic\"),\nInternetMaxBandwidthOut: pulumi.Int(10),\nAvailabilityZone: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].AvailabilityZones[0]),\nInstanceChargeType: pulumi.String(\"PostPaid\"),\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nVswitchId: defaultSwitch.ID(),\nInstanceName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\n_, err = ecs.NewRamRoleAttachment(ctx, \"default\", \u0026ecs.RamRoleAttachmentArgs{\nRamRoleName: defaultRole.ID(),\nInstanceId: defaultInstance.ID(),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.ecs.RamRoleAttachment;\nimport com.pulumi.alicloud.ecs.RamRoleAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .imageId(defaultGetImages.images()[0].id())\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .document(\"\"\"\n\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [\n\\t\\t\\t\\t{\n\\t\\t\\t\\t\\t\\\"Action\\\": \\\"sts:AssumeRole\\\",\n\\t\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\t\\\"Principal\\\": {\n\\t\\t\\t\\t\\t\\t\\\"Service\\\": [\n\\t\\t\\t\\t\\t\\t\\t\\\"ecs.aliyuncs.com\\\"\n\\t\\t\\t\\t\\t\\t]\n\\t\\t\\t\\t\\t}\n\\t\\t\\t\\t}\n\\t\\t  \\t],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n            \"\"\")\n            .force(true)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"192.168.192.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.stream().map(element -\u003e element.id()).collect(toList()))\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(10)\n            .availabilityZone(defaultGetInstanceTypes.instanceTypes()[0].availabilityZones()[0])\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .vswitchId(defaultSwitch.id())\n            .instanceName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultRamRoleAttachment = new RamRoleAttachment(\"defaultRamRoleAttachment\", RamRoleAttachmentArgs.builder()\n            .ramRoleName(defaultRole.id())\n            .instanceId(defaultInstance.id())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Ram Role Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/ramRoleAttachment:RamRoleAttachment example \u003cinstance_id\u003e:\u003cram_role_name\u003e\n```\n\n","properties":{"instanceId":{"type":"string","description":"The ID of the instance.\n"},"policy":{"type":"string","description":"The additional policy. When you attach an instance RAM role to instances, you can specify an additional policy to further limit the permissions of the role.\n"},"ramRoleName":{"type":"string","description":"The name of the instance RAM role.\n"}},"required":["instanceId","ramRoleName"],"inputProperties":{"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"policy":{"type":"string","description":"The additional policy. When you attach an instance RAM role to instances, you can specify an additional policy to further limit the permissions of the role.\n"},"ramRoleName":{"type":"string","description":"The name of the instance RAM role.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId","ramRoleName"],"stateInputs":{"description":"Input properties used for looking up and filtering RamRoleAttachment resources.\n","properties":{"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"policy":{"type":"string","description":"The additional policy. When you attach an instance RAM role to instances, you can specify an additional policy to further limit the permissions of the role.\n"},"ramRoleName":{"type":"string","description":"The name of the instance RAM role.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/reservedInstance:ReservedInstance":{"description":"Provides an Reserved Instance resource.\n\n\u003e **NOTE:** Available since v1.65.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ecs.getInstanceTypes({\n    instanceTypeFamily: \"ecs.g6\",\n});\nconst defaultReservedInstance = new alicloud.ecs.ReservedInstance(\"default\", {\n    instanceType: _default.then(_default =\u003e _default.instanceTypes?.[0]?.id),\n    instanceAmount: 1,\n    periodUnit: \"Month\",\n    offeringType: \"All Upfront\",\n    reservedInstanceName: \"terraform-example\",\n    description: \"ReservedInstance\",\n    zoneId: _default.then(_default =\u003e _default.instanceTypes?.[0]?.availabilityZones?.[0]),\n    scope: \"Zone\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ecs.get_instance_types(instance_type_family=\"ecs.g6\")\ndefault_reserved_instance = alicloud.ecs.ReservedInstance(\"default\",\n    instance_type=default.instance_types[0].id,\n    instance_amount=1,\n    period_unit=\"Month\",\n    offering_type=\"All Upfront\",\n    reserved_instance_name=\"terraform-example\",\n    description=\"ReservedInstance\",\n    zone_id=default.instance_types[0].availability_zones[0],\n    scope=\"Zone\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        InstanceTypeFamily = \"ecs.g6\",\n    });\n\n    var defaultReservedInstance = new AliCloud.Ecs.ReservedInstance(\"default\", new()\n    {\n        InstanceType = @default.Apply(@default =\u003e @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id)),\n        InstanceAmount = 1,\n        PeriodUnit = \"Month\",\n        OfferingType = \"All Upfront\",\n        ReservedInstanceName = \"terraform-example\",\n        Description = \"ReservedInstance\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.AvailabilityZones[0])),\n        Scope = \"Zone\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tInstanceTypeFamily: pulumi.StringRef(\"ecs.g6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewReservedInstance(ctx, \"default\", \u0026ecs.ReservedInstanceArgs{\n\t\t\tInstanceType:         pulumi.String(_default.InstanceTypes[0].Id),\n\t\t\tInstanceAmount:       pulumi.Int(1),\n\t\t\tPeriodUnit:           pulumi.String(\"Month\"),\n\t\t\tOfferingType:         pulumi.String(\"All Upfront\"),\n\t\t\tReservedInstanceName: pulumi.String(\"terraform-example\"),\n\t\t\tDescription:          pulumi.String(\"ReservedInstance\"),\n\t\t\tZoneId:               pulumi.String(_default.InstanceTypes[0].AvailabilityZones[0]),\n\t\t\tScope:                pulumi.String(\"Zone\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.ReservedInstance;\nimport com.pulumi.alicloud.ecs.ReservedInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .instanceTypeFamily(\"ecs.g6\")\n            .build());\n\n        var defaultReservedInstance = new ReservedInstance(\"defaultReservedInstance\", ReservedInstanceArgs.builder()\n            .instanceType(default_.instanceTypes()[0].id())\n            .instanceAmount(1)\n            .periodUnit(\"Month\")\n            .offeringType(\"All Upfront\")\n            .reservedInstanceName(\"terraform-example\")\n            .description(\"ReservedInstance\")\n            .zoneId(default_.instanceTypes()[0].availabilityZones()[0])\n            .scope(\"Zone\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultReservedInstance:\n    type: alicloud:ecs:ReservedInstance\n    name: default\n    properties:\n      instanceType: ${default.instanceTypes[0].id}\n      instanceAmount: '1'\n      periodUnit: Month\n      offeringType: All Upfront\n      reservedInstanceName: terraform-example\n      description: ReservedInstance\n      zoneId: ${default.instanceTypes[0].availabilityZones[0]}\n      scope: Zone\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        instanceTypeFamily: ecs.g6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nreservedInstance can be imported using id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/reservedInstance:ReservedInstance default ecsri-uf6df4xm0h3licit****\n```\n\n","properties":{"allocationStatus":{"type":"string","description":"Indicates the sharing status of the reserved instance when the AllocationType parameter is set to Shared. Valid values: \u003cspan pulumi-lang-nodejs=\"`allocated`\" pulumi-lang-dotnet=\"`Allocated`\" pulumi-lang-go=\"`allocated`\" pulumi-lang-python=\"`allocated`\" pulumi-lang-yaml=\"`allocated`\" pulumi-lang-java=\"`allocated`\"\u003e`allocated`\u003c/span\u003e: The reserved instance is allocated to another account. `beAllocated`: The reserved instance is allocated by another account.\n"},"autoRenewPeriod":{"type":"integer","description":"The auto-renewal term of the reserved instance. This parameter takes effect only when AutoRenew is set to true. Valid values: 1, 12, 36, and 60. Default value when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to Month: 1 Default value when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to Year: 12\n"},"createTime":{"type":"string","description":"The time when the reserved instance was created.\n"},"description":{"type":"string","description":"Description of the RI. 2 to 256 English or Chinese characters. It cannot start with `http://` or `https://`.\n"},"expiredTime":{"type":"string","description":"The time when the reserved instance expires.\n"},"instanceAmount":{"type":"integer","description":"Number of instances allocated to an RI (An RI is a coupon that includes one or more allocated instances.).\n"},"instanceType":{"type":"string","description":"Instance type of the RI. For more information, see [Instance type families](https://www.alibabacloud.com/help/doc-detail/25378.html).\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.194.0. New field \u003cspan pulumi-lang-nodejs=\"`reservedInstanceName`\" pulumi-lang-dotnet=\"`ReservedInstanceName`\" pulumi-lang-go=\"`reservedInstanceName`\" pulumi-lang-python=\"`reserved_instance_name`\" pulumi-lang-yaml=\"`reservedInstanceName`\" pulumi-lang-java=\"`reservedInstanceName`\"\u003e`reserved_instance_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.194.0. New field 'reserved_instance_name' instead."},"offeringType":{"type":"string","description":"Payment type of the RI. Default value: `All Upfront`. Valid values:\n- `No Upfront`: No upfront payment.\n- `Partial Upfront`: A portion of upfront payment.\n- `All Upfront`: Full upfront payment.\n"},"operationLocks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/ReservedInstanceOperationLock:ReservedInstanceOperationLock"},"description":"Details about the lock status of the reserved instance.\n"},"period":{"type":"integer","description":"The validity period of the reserved instance. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. **NOTE:** From version 1.183.0, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Year`.\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Year`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Month`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"periodUnit":{"type":"string","description":"The unit of the validity period of the reserved instance. Valid value: `Month`, `Year`. Default value: `Year`. **NOTE:** From version 1.183.0, \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e can be set to `Month`.\n"},"platform":{"type":"string","description":"The operating system type of the image used by the instance. Optional values: `Windows`, `Linux`. Default is `Linux`.\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`,`Normal`.\n"},"reservedInstanceName":{"type":"string","description":"Name of the RI. The name must be a string of 2 to 128 characters in length and can contain letters, numbers, colons (:), underscores (_), and hyphens. It must start with a letter. It cannot start with http:// or https://.\n"},"resourceGroupId":{"type":"string","description":"Resource group ID.\n"},"scope":{"type":"string","description":"Scope of the RI. Optional values: `Region`: region-level, `Zone`: zone-level. Default is `Region`.\n"},"startTime":{"type":"string","description":"The time when the reserved instance took effect.\n"},"status":{"type":"string","description":"The status of the reserved instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"zoneId":{"type":"string","description":"ID of the zone to which the RI belongs. When Scope is set to Zone, this parameter is required. For information about the zone list, see [DescribeZones](https://www.alibabacloud.com/help/doc-detail/25610.html).\n"}},"required":["allocationStatus","autoRenewPeriod","createTime","expiredTime","instanceAmount","instanceType","name","offeringType","operationLocks","platform","renewalStatus","reservedInstanceName","resourceGroupId","scope","startTime","status"],"inputProperties":{"autoRenewPeriod":{"type":"integer","description":"The auto-renewal term of the reserved instance. This parameter takes effect only when AutoRenew is set to true. Valid values: 1, 12, 36, and 60. Default value when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to Month: 1 Default value when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to Year: 12\n"},"description":{"type":"string","description":"Description of the RI. 2 to 256 English or Chinese characters. It cannot start with `http://` or `https://`.\n"},"instanceAmount":{"type":"integer","description":"Number of instances allocated to an RI (An RI is a coupon that includes one or more allocated instances.).\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"Instance type of the RI. For more information, see [Instance type families](https://www.alibabacloud.com/help/doc-detail/25378.html).\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.194.0. New field \u003cspan pulumi-lang-nodejs=\"`reservedInstanceName`\" pulumi-lang-dotnet=\"`ReservedInstanceName`\" pulumi-lang-go=\"`reservedInstanceName`\" pulumi-lang-python=\"`reserved_instance_name`\" pulumi-lang-yaml=\"`reservedInstanceName`\" pulumi-lang-java=\"`reservedInstanceName`\"\u003e`reserved_instance_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.194.0. New field 'reserved_instance_name' instead."},"offeringType":{"type":"string","description":"Payment type of the RI. Default value: `All Upfront`. Valid values:\n- `No Upfront`: No upfront payment.\n- `Partial Upfront`: A portion of upfront payment.\n- `All Upfront`: Full upfront payment.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The validity period of the reserved instance. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. **NOTE:** From version 1.183.0, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Year`.\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Year`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Month`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n","willReplaceOnChanges":true},"periodUnit":{"type":"string","description":"The unit of the validity period of the reserved instance. Valid value: `Month`, `Year`. Default value: `Year`. **NOTE:** From version 1.183.0, \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e can be set to `Month`.\n","willReplaceOnChanges":true},"platform":{"type":"string","description":"The operating system type of the image used by the instance. Optional values: `Windows`, `Linux`. Default is `Linux`.\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`,`Normal`.\n"},"reservedInstanceName":{"type":"string","description":"Name of the RI. The name must be a string of 2 to 128 characters in length and can contain letters, numbers, colons (:), underscores (_), and hyphens. It must start with a letter. It cannot start with http:// or https://.\n"},"resourceGroupId":{"type":"string","description":"Resource group ID.\n","willReplaceOnChanges":true},"scope":{"type":"string","description":"Scope of the RI. Optional values: `Region`: region-level, `Zone`: zone-level. Default is `Region`.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"zoneId":{"type":"string","description":"ID of the zone to which the RI belongs. When Scope is set to Zone, this parameter is required. For information about the zone list, see [DescribeZones](https://www.alibabacloud.com/help/doc-detail/25610.html).\n","willReplaceOnChanges":true}},"requiredInputs":["instanceType"],"stateInputs":{"description":"Input properties used for looking up and filtering ReservedInstance resources.\n","properties":{"allocationStatus":{"type":"string","description":"Indicates the sharing status of the reserved instance when the AllocationType parameter is set to Shared. Valid values: \u003cspan pulumi-lang-nodejs=\"`allocated`\" pulumi-lang-dotnet=\"`Allocated`\" pulumi-lang-go=\"`allocated`\" pulumi-lang-python=\"`allocated`\" pulumi-lang-yaml=\"`allocated`\" pulumi-lang-java=\"`allocated`\"\u003e`allocated`\u003c/span\u003e: The reserved instance is allocated to another account. `beAllocated`: The reserved instance is allocated by another account.\n"},"autoRenewPeriod":{"type":"integer","description":"The auto-renewal term of the reserved instance. This parameter takes effect only when AutoRenew is set to true. Valid values: 1, 12, 36, and 60. Default value when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to Month: 1 Default value when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is set to Year: 12\n"},"createTime":{"type":"string","description":"The time when the reserved instance was created.\n"},"description":{"type":"string","description":"Description of the RI. 2 to 256 English or Chinese characters. It cannot start with `http://` or `https://`.\n"},"expiredTime":{"type":"string","description":"The time when the reserved instance expires.\n"},"instanceAmount":{"type":"integer","description":"Number of instances allocated to an RI (An RI is a coupon that includes one or more allocated instances.).\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"Instance type of the RI. For more information, see [Instance type families](https://www.alibabacloud.com/help/doc-detail/25378.html).\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.194.0. New field \u003cspan pulumi-lang-nodejs=\"`reservedInstanceName`\" pulumi-lang-dotnet=\"`ReservedInstanceName`\" pulumi-lang-go=\"`reservedInstanceName`\" pulumi-lang-python=\"`reserved_instance_name`\" pulumi-lang-yaml=\"`reservedInstanceName`\" pulumi-lang-java=\"`reservedInstanceName`\"\u003e`reserved_instance_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.194.0. New field 'reserved_instance_name' instead."},"offeringType":{"type":"string","description":"Payment type of the RI. Default value: `All Upfront`. Valid values:\n- `No Upfront`: No upfront payment.\n- `Partial Upfront`: A portion of upfront payment.\n- `All Upfront`: Full upfront payment.\n","willReplaceOnChanges":true},"operationLocks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/ReservedInstanceOperationLock:ReservedInstanceOperationLock"},"description":"Details about the lock status of the reserved instance.\n"},"period":{"type":"integer","description":"The validity period of the reserved instance. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. **NOTE:** From version 1.183.0, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, when \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Year`.\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Year`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n- When \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e is `Month`, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n","willReplaceOnChanges":true},"periodUnit":{"type":"string","description":"The unit of the validity period of the reserved instance. Valid value: `Month`, `Year`. Default value: `Year`. **NOTE:** From version 1.183.0, \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e can be set to `Month`.\n","willReplaceOnChanges":true},"platform":{"type":"string","description":"The operating system type of the image used by the instance. Optional values: `Windows`, `Linux`. Default is `Linux`.\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`,`Normal`.\n"},"reservedInstanceName":{"type":"string","description":"Name of the RI. The name must be a string of 2 to 128 characters in length and can contain letters, numbers, colons (:), underscores (_), and hyphens. It must start with a letter. It cannot start with http:// or https://.\n"},"resourceGroupId":{"type":"string","description":"Resource group ID.\n","willReplaceOnChanges":true},"scope":{"type":"string","description":"Scope of the RI. Optional values: `Region`: region-level, `Zone`: zone-level. Default is `Region`.\n","willReplaceOnChanges":true},"startTime":{"type":"string","description":"The time when the reserved instance took effect.\n"},"status":{"type":"string","description":"The status of the reserved instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"zoneId":{"type":"string","description":"ID of the zone to which the RI belongs. When Scope is set to Zone, this parameter is required. For information about the zone list, see [DescribeZones](https://www.alibabacloud.com/help/doc-detail/25610.html).\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/securityGroup:SecurityGroup":{"description":"Provides a ECS Security Group resource.\n\n\n\nFor information about ECS Security Group and how to use it, see [What is Security Group](https://www.alibabacloud.com/help/en/ecs/developer-reference/api-createsecuritygroup).\n\n\u003e **NOTE:** Available since v1.0.0.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`alicloud.ecs.SecurityGroup`\" pulumi-lang-dotnet=\"`alicloud.ecs.SecurityGroup`\" pulumi-lang-go=\"`ecs.SecurityGroup`\" pulumi-lang-python=\"`ecs.SecurityGroup`\" pulumi-lang-yaml=\"`alicloud.ecs.SecurityGroup`\" pulumi-lang-java=\"`alicloud.ecs.SecurityGroup`\"\u003e`alicloud.ecs.SecurityGroup`\u003c/span\u003e is used to build and manage a security group, and \u003cspan pulumi-lang-nodejs=\"`alicloud.ecs.SecurityGroupRule`\" pulumi-lang-dotnet=\"`alicloud.ecs.SecurityGroupRule`\" pulumi-lang-go=\"`ecs.SecurityGroupRule`\" pulumi-lang-python=\"`ecs.SecurityGroupRule`\" pulumi-lang-yaml=\"`alicloud.ecs.SecurityGroupRule`\" pulumi-lang-java=\"`alicloud.ecs.SecurityGroupRule`\"\u003e`alicloud.ecs.SecurityGroupRule`\u003c/span\u003e can define ingress or egress rules for it.\n\n\u003e **NOTE:** From version 1.7.2, \u003cspan pulumi-lang-nodejs=\"`alicloud.ecs.SecurityGroup`\" pulumi-lang-dotnet=\"`alicloud.ecs.SecurityGroup`\" pulumi-lang-go=\"`ecs.SecurityGroup`\" pulumi-lang-python=\"`ecs.SecurityGroup`\" pulumi-lang-yaml=\"`alicloud.ecs.SecurityGroup`\" pulumi-lang-java=\"`alicloud.ecs.SecurityGroup`\"\u003e`alicloud.ecs.SecurityGroup`\u003c/span\u003e has supported to segregate different ECS instance in which the same security group.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ecs.SecurityGroup(\"default\", {securityGroupName: \"terraform-example\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ecs.SecurityGroup(\"default\", security_group_name=\"terraform-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = \"terraform-example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new SecurityGroup(\"default\", SecurityGroupArgs.builder()\n            .securityGroupName(\"terraform-example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ecs:SecurityGroup\n    properties:\n      securityGroupName: terraform-example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nBasic Usage for VPC\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    securityGroupName: \"terraform-example\",\n    vpcId: _default.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    security_group_name=\"terraform-example\",\n    vpc_id=default.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = \"terraform-example\",\n        VpcId = @default.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(\"terraform-example\"),\n\t\t\tVpcId:             _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(\"terraform-example\")\n            .vpcId(default_.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      securityGroupName: terraform-example\n      vpcId: ${default.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use the existing security-group module \nto create a security group and add several rules one-click.\n\n## Import\n\nECS Security Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/securityGroup:SecurityGroup example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"(Available since v1.239.0) The time when the security group was created.\n"},"description":{"type":"string","description":"The description of the security group. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length. It cannot start with `http://` or `https://`.\n"},"innerAccess":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`innerAccess`\" pulumi-lang-dotnet=\"`InnerAccess`\" pulumi-lang-go=\"`innerAccess`\" pulumi-lang-python=\"`inner_access`\" pulumi-lang-yaml=\"`innerAccess`\" pulumi-lang-java=\"`innerAccess`\"\u003e`inner_access`\u003c/span\u003e has been deprecated from provider version 1.55.3. New field \u003cspan pulumi-lang-nodejs=\"`innerAccessPolicy`\" pulumi-lang-dotnet=\"`InnerAccessPolicy`\" pulumi-lang-go=\"`innerAccessPolicy`\" pulumi-lang-python=\"`inner_access_policy`\" pulumi-lang-yaml=\"`innerAccessPolicy`\" pulumi-lang-java=\"`innerAccessPolicy`\"\u003e`inner_access_policy`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`innerAccess`\" pulumi-lang-dotnet=\"`InnerAccess`\" pulumi-lang-go=\"`innerAccess`\" pulumi-lang-python=\"`inner_access`\" pulumi-lang-yaml=\"`innerAccess`\" pulumi-lang-java=\"`innerAccess`\"\u003e`inner_access`\u003c/span\u003e has been deprecated from provider version 1.55.3. New field \u003cspan pulumi-lang-nodejs=\"`innerAccessPolicy`\" pulumi-lang-dotnet=\"`InnerAccessPolicy`\" pulumi-lang-go=\"`innerAccessPolicy`\" pulumi-lang-python=\"`inner_access_policy`\" pulumi-lang-yaml=\"`innerAccessPolicy`\" pulumi-lang-java=\"`innerAccessPolicy`\"\u003e`inner_access_policy`\u003c/span\u003e instead."},"innerAccessPolicy":{"type":"string","description":"The internal access control policy of the security group. Valid values:\n- `Accept`: The internal interconnectivity policy.\n- `Drop`: The internal isolation policy.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.239.0. New field \u003cspan pulumi-lang-nodejs=\"`securityGroupName`\" pulumi-lang-dotnet=\"`SecurityGroupName`\" pulumi-lang-go=\"`securityGroupName`\" pulumi-lang-python=\"`security_group_name`\" pulumi-lang-yaml=\"`securityGroupName`\" pulumi-lang-java=\"`securityGroupName`\"\u003e`security_group_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.239.0. New field \u003cspan pulumi-lang-nodejs=\"`securityGroupName`\" pulumi-lang-dotnet=\"`SecurityGroupName`\" pulumi-lang-go=\"`securityGroupName`\" pulumi-lang-python=\"`security_group_name`\" pulumi-lang-yaml=\"`securityGroupName`\" pulumi-lang-java=\"`securityGroupName`\"\u003e`security_group_name`\u003c/span\u003e instead."},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the security group belongs. **NOTE:** From version 1.115.0, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e can be modified.\n"},"securityGroupName":{"type":"string","description":"The name of the security group. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. The name must start with a letter and cannot start with `http://` or `https://`. The name can contain Unicode characters under the Decimal Number category and the categories whose names contain Letter. The name can also contain colons (:), underscores (\\_), periods (.), and hyphens (-).\n"},"securityGroupType":{"type":"string","description":"The type of the security group. Default value: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e. Valid values:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC in which you want to create the security group.\n"}},"required":["createTime","innerAccess","innerAccessPolicy","name","resourceGroupId","securityGroupName","securityGroupType","vpcId"],"inputProperties":{"description":{"type":"string","description":"The description of the security group. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length. It cannot start with `http://` or `https://`.\n"},"innerAccess":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`innerAccess`\" pulumi-lang-dotnet=\"`InnerAccess`\" pulumi-lang-go=\"`innerAccess`\" pulumi-lang-python=\"`inner_access`\" pulumi-lang-yaml=\"`innerAccess`\" pulumi-lang-java=\"`innerAccess`\"\u003e`inner_access`\u003c/span\u003e has been deprecated from provider version 1.55.3. New field \u003cspan pulumi-lang-nodejs=\"`innerAccessPolicy`\" pulumi-lang-dotnet=\"`InnerAccessPolicy`\" pulumi-lang-go=\"`innerAccessPolicy`\" pulumi-lang-python=\"`inner_access_policy`\" pulumi-lang-yaml=\"`innerAccessPolicy`\" pulumi-lang-java=\"`innerAccessPolicy`\"\u003e`inner_access_policy`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`innerAccess`\" pulumi-lang-dotnet=\"`InnerAccess`\" pulumi-lang-go=\"`innerAccess`\" pulumi-lang-python=\"`inner_access`\" pulumi-lang-yaml=\"`innerAccess`\" pulumi-lang-java=\"`innerAccess`\"\u003e`inner_access`\u003c/span\u003e has been deprecated from provider version 1.55.3. New field \u003cspan pulumi-lang-nodejs=\"`innerAccessPolicy`\" pulumi-lang-dotnet=\"`InnerAccessPolicy`\" pulumi-lang-go=\"`innerAccessPolicy`\" pulumi-lang-python=\"`inner_access_policy`\" pulumi-lang-yaml=\"`innerAccessPolicy`\" pulumi-lang-java=\"`innerAccessPolicy`\"\u003e`inner_access_policy`\u003c/span\u003e instead."},"innerAccessPolicy":{"type":"string","description":"The internal access control policy of the security group. Valid values:\n- `Accept`: The internal interconnectivity policy.\n- `Drop`: The internal isolation policy.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.239.0. New field \u003cspan pulumi-lang-nodejs=\"`securityGroupName`\" pulumi-lang-dotnet=\"`SecurityGroupName`\" pulumi-lang-go=\"`securityGroupName`\" pulumi-lang-python=\"`security_group_name`\" pulumi-lang-yaml=\"`securityGroupName`\" pulumi-lang-java=\"`securityGroupName`\"\u003e`security_group_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.239.0. New field \u003cspan pulumi-lang-nodejs=\"`securityGroupName`\" pulumi-lang-dotnet=\"`SecurityGroupName`\" pulumi-lang-go=\"`securityGroupName`\" pulumi-lang-python=\"`security_group_name`\" pulumi-lang-yaml=\"`securityGroupName`\" pulumi-lang-java=\"`securityGroupName`\"\u003e`security_group_name`\u003c/span\u003e instead."},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the security group belongs. **NOTE:** From version 1.115.0, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e can be modified.\n"},"securityGroupName":{"type":"string","description":"The name of the security group. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. The name must start with a letter and cannot start with `http://` or `https://`. The name can contain Unicode characters under the Decimal Number category and the categories whose names contain Letter. The name can also contain colons (:), underscores (\\_), periods (.), and hyphens (-).\n"},"securityGroupType":{"type":"string","description":"The type of the security group. Default value: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC in which you want to create the security group.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering SecurityGroup resources.\n","properties":{"createTime":{"type":"string","description":"(Available since v1.239.0) The time when the security group was created.\n"},"description":{"type":"string","description":"The description of the security group. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length. It cannot start with `http://` or `https://`.\n"},"innerAccess":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`innerAccess`\" pulumi-lang-dotnet=\"`InnerAccess`\" pulumi-lang-go=\"`innerAccess`\" pulumi-lang-python=\"`inner_access`\" pulumi-lang-yaml=\"`innerAccess`\" pulumi-lang-java=\"`innerAccess`\"\u003e`inner_access`\u003c/span\u003e has been deprecated from provider version 1.55.3. New field \u003cspan pulumi-lang-nodejs=\"`innerAccessPolicy`\" pulumi-lang-dotnet=\"`InnerAccessPolicy`\" pulumi-lang-go=\"`innerAccessPolicy`\" pulumi-lang-python=\"`inner_access_policy`\" pulumi-lang-yaml=\"`innerAccessPolicy`\" pulumi-lang-java=\"`innerAccessPolicy`\"\u003e`inner_access_policy`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`innerAccess`\" pulumi-lang-dotnet=\"`InnerAccess`\" pulumi-lang-go=\"`innerAccess`\" pulumi-lang-python=\"`inner_access`\" pulumi-lang-yaml=\"`innerAccess`\" pulumi-lang-java=\"`innerAccess`\"\u003e`inner_access`\u003c/span\u003e has been deprecated from provider version 1.55.3. New field \u003cspan pulumi-lang-nodejs=\"`innerAccessPolicy`\" pulumi-lang-dotnet=\"`InnerAccessPolicy`\" pulumi-lang-go=\"`innerAccessPolicy`\" pulumi-lang-python=\"`inner_access_policy`\" pulumi-lang-yaml=\"`innerAccessPolicy`\" pulumi-lang-java=\"`innerAccessPolicy`\"\u003e`inner_access_policy`\u003c/span\u003e instead."},"innerAccessPolicy":{"type":"string","description":"The internal access control policy of the security group. Valid values:\n- `Accept`: The internal interconnectivity policy.\n- `Drop`: The internal isolation policy.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.239.0. New field \u003cspan pulumi-lang-nodejs=\"`securityGroupName`\" pulumi-lang-dotnet=\"`SecurityGroupName`\" pulumi-lang-go=\"`securityGroupName`\" pulumi-lang-python=\"`security_group_name`\" pulumi-lang-yaml=\"`securityGroupName`\" pulumi-lang-java=\"`securityGroupName`\"\u003e`security_group_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.239.0. New field \u003cspan pulumi-lang-nodejs=\"`securityGroupName`\" pulumi-lang-dotnet=\"`SecurityGroupName`\" pulumi-lang-go=\"`securityGroupName`\" pulumi-lang-python=\"`security_group_name`\" pulumi-lang-yaml=\"`securityGroupName`\" pulumi-lang-java=\"`securityGroupName`\"\u003e`security_group_name`\u003c/span\u003e instead."},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the security group belongs. **NOTE:** From version 1.115.0, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e can be modified.\n"},"securityGroupName":{"type":"string","description":"The name of the security group. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. The name must start with a letter and cannot start with `http://` or `https://`. The name can contain Unicode characters under the Decimal Number category and the categories whose names contain Letter. The name can also contain colons (:), underscores (\\_), periods (.), and hyphens (-).\n"},"securityGroupType":{"type":"string","description":"The type of the security group. Default value: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC in which you want to create the security group.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/securityGroupRule:SecurityGroupRule":{"description":"Provides a Security Group Rule resource.\n\nFor information about Security Group Rule and how to use it, see [What is Rule](https://www.alibabacloud.com/help/en/ecs/user-guide/security-group-rules).\n\n\u003e **NOTE:** Available since v0.1.0.\n\nRepresents a single \u003cspan pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\"\u003e`ingress`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\"\u003e`egress`\u003c/span\u003e group rule, which can be added to external Security Groups.\n\n\u003e **NOTE:**  \u003cspan pulumi-lang-nodejs=\"`nicType`\" pulumi-lang-dotnet=\"`NicType`\" pulumi-lang-go=\"`nicType`\" pulumi-lang-python=\"`nic_type`\" pulumi-lang-yaml=\"`nicType`\" pulumi-lang-java=\"`nicType`\"\u003e`nic_type`\u003c/span\u003e should set to \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e when security group type is \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e or specifying the \u003cspan pulumi-lang-nodejs=\"`sourceSecurityGroupId`\" pulumi-lang-dotnet=\"`SourceSecurityGroupId`\" pulumi-lang-go=\"`sourceSecurityGroupId`\" pulumi-lang-python=\"`source_security_group_id`\" pulumi-lang-yaml=\"`sourceSecurityGroupId`\" pulumi-lang-java=\"`sourceSecurityGroupId`\"\u003e`source_security_group_id`\u003c/span\u003e. In this situation it does not distinguish between intranet and internet, the rule is effective on them both.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ecs.SecurityGroup(\"default\", {securityGroupName: \"default\"});\nconst allowAllTcp = new alicloud.ecs.SecurityGroupRule(\"allow_all_tcp\", {\n    type: \"ingress\",\n    ipProtocol: \"tcp\",\n    nicType: \"intranet\",\n    policy: \"accept\",\n    portRange: \"1/65535\",\n    priority: 1,\n    securityGroupId: _default.id,\n    cidrIp: \"0.0.0.0/0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ecs.SecurityGroup(\"default\", security_group_name=\"default\")\nallow_all_tcp = alicloud.ecs.SecurityGroupRule(\"allow_all_tcp\",\n    type=\"ingress\",\n    ip_protocol=\"tcp\",\n    nic_type=\"intranet\",\n    policy=\"accept\",\n    port_range=\"1/65535\",\n    priority=1,\n    security_group_id=default.id,\n    cidr_ip=\"0.0.0.0/0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = \"default\",\n    });\n\n    var allowAllTcp = new AliCloud.Ecs.SecurityGroupRule(\"allow_all_tcp\", new()\n    {\n        Type = \"ingress\",\n        IpProtocol = \"tcp\",\n        NicType = \"intranet\",\n        Policy = \"accept\",\n        PortRange = \"1/65535\",\n        Priority = 1,\n        SecurityGroupId = @default.Id,\n        CidrIp = \"0.0.0.0/0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(\"default\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroupRule(ctx, \"allow_all_tcp\", \u0026ecs.SecurityGroupRuleArgs{\n\t\t\tType:            pulumi.String(\"ingress\"),\n\t\t\tIpProtocol:      pulumi.String(\"tcp\"),\n\t\t\tNicType:         pulumi.String(\"intranet\"),\n\t\t\tPolicy:          pulumi.String(\"accept\"),\n\t\t\tPortRange:       pulumi.String(\"1/65535\"),\n\t\t\tPriority:        pulumi.Int(1),\n\t\t\tSecurityGroupId: _default.ID(),\n\t\t\tCidrIp:          pulumi.String(\"0.0.0.0/0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroupRule;\nimport com.pulumi.alicloud.ecs.SecurityGroupRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new SecurityGroup(\"default\", SecurityGroupArgs.builder()\n            .securityGroupName(\"default\")\n            .build());\n\n        var allowAllTcp = new SecurityGroupRule(\"allowAllTcp\", SecurityGroupRuleArgs.builder()\n            .type(\"ingress\")\n            .ipProtocol(\"tcp\")\n            .nicType(\"intranet\")\n            .policy(\"accept\")\n            .portRange(\"1/65535\")\n            .priority(1)\n            .securityGroupId(default_.id())\n            .cidrIp(\"0.0.0.0/0\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ecs:SecurityGroup\n    properties:\n      securityGroupName: default\n  allowAllTcp:\n    type: alicloud:ecs:SecurityGroupRule\n    name: allow_all_tcp\n    properties:\n      type: ingress\n      ipProtocol: tcp\n      nicType: intranet\n      policy: accept\n      portRange: 1/65535\n      priority: 1\n      securityGroupId: ${default.id}\n      cidrIp: 0.0.0.0/0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use the existing security-group module \nto create a security group and add several rules one-click.\n\n## Import\n\n\u003e **NOTE:** Available since v1.224.0.\n\nSecurity Group Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/securityGroupRule:SecurityGroupRule example \u003cid\u003e\n```\n\n","properties":{"cidrIp":{"type":"string","description":"The target IP address range. The default value is 0.0.0.0/0 (which means no restriction will be applied). Other supported formats include 10.159.6.18/12. Only IPv4 is supported.\n"},"description":{"type":"string","description":"The description of the security group rule. The description can be up to 1 to 512 characters in length. Defaults to null.\n\n\u003e **NOTE:**  You must specify one of the following field: \u003cspan pulumi-lang-nodejs=\"`cidrIp`\" pulumi-lang-dotnet=\"`CidrIp`\" pulumi-lang-go=\"`cidrIp`\" pulumi-lang-python=\"`cidr_ip`\" pulumi-lang-yaml=\"`cidrIp`\" pulumi-lang-java=\"`cidrIp`\"\u003e`cidr_ip`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`sourceSecurityGroupId`\" pulumi-lang-dotnet=\"`SourceSecurityGroupId`\" pulumi-lang-go=\"`sourceSecurityGroupId`\" pulumi-lang-python=\"`source_security_group_id`\" pulumi-lang-yaml=\"`sourceSecurityGroupId`\" pulumi-lang-java=\"`sourceSecurityGroupId`\"\u003e`source_security_group_id`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`prefixListId`\" pulumi-lang-dotnet=\"`PrefixListId`\" pulumi-lang-go=\"`prefixListId`\" pulumi-lang-python=\"`prefix_list_id`\" pulumi-lang-yaml=\"`prefixListId`\" pulumi-lang-java=\"`prefixListId`\"\u003e`prefix_list_id`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`ipv6CidrIp`\" pulumi-lang-dotnet=\"`Ipv6CidrIp`\" pulumi-lang-go=\"`ipv6CidrIp`\" pulumi-lang-python=\"`ipv6_cidr_ip`\" pulumi-lang-yaml=\"`ipv6CidrIp`\" pulumi-lang-java=\"`ipv6CidrIp`\"\u003e`ipv6_cidr_ip`\u003c/span\u003e.\n"},"ipProtocol":{"type":"string","description":"The transport layer protocol of the Security Group Rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`icmp`\" pulumi-lang-dotnet=\"`Icmp`\" pulumi-lang-go=\"`icmp`\" pulumi-lang-python=\"`icmp`\" pulumi-lang-yaml=\"`icmp`\" pulumi-lang-java=\"`icmp`\"\u003e`icmp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`icmpv6`\" pulumi-lang-dotnet=\"`Icmpv6`\" pulumi-lang-go=\"`icmpv6`\" pulumi-lang-python=\"`icmpv6`\" pulumi-lang-yaml=\"`icmpv6`\" pulumi-lang-java=\"`icmpv6`\"\u003e`icmpv6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gre`\" pulumi-lang-dotnet=\"`Gre`\" pulumi-lang-go=\"`gre`\" pulumi-lang-python=\"`gre`\" pulumi-lang-yaml=\"`gre`\" pulumi-lang-java=\"`gre`\"\u003e`gre`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e. **NOTE:** From version 1.262.0, \u003cspan pulumi-lang-nodejs=\"`ipProtocol`\" pulumi-lang-dotnet=\"`IpProtocol`\" pulumi-lang-go=\"`ipProtocol`\" pulumi-lang-python=\"`ip_protocol`\" pulumi-lang-yaml=\"`ipProtocol`\" pulumi-lang-java=\"`ipProtocol`\"\u003e`ip_protocol`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`icmpv6`\" pulumi-lang-dotnet=\"`Icmpv6`\" pulumi-lang-go=\"`icmpv6`\" pulumi-lang-python=\"`icmpv6`\" pulumi-lang-yaml=\"`icmpv6`\" pulumi-lang-java=\"`icmpv6`\"\u003e`icmpv6`\u003c/span\u003e.\n"},"ipv6CidrIp":{"type":"string","description":"Source IPv6 CIDR address block that requires access. Supports IP address ranges in CIDR format and IPv6 format. **NOTE:** This parameter cannot be set at the same time as the \u003cspan pulumi-lang-nodejs=\"`cidrIp`\" pulumi-lang-dotnet=\"`CidrIp`\" pulumi-lang-go=\"`cidrIp`\" pulumi-lang-python=\"`cidr_ip`\" pulumi-lang-yaml=\"`cidrIp`\" pulumi-lang-java=\"`cidrIp`\"\u003e`cidr_ip`\u003c/span\u003e parameter.\n"},"nicType":{"type":"string","description":"Network type, can be either \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e, the default value is \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e.\n"},"policy":{"type":"string","description":"The action of the Security Group Rule that determines whether to allow inbound access. Default value: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"portRange":{"type":"string","description":"The range of port numbers relevant to the IP protocol. Default to \"-1/-1\". When the protocol is tcp or udp, each side port number range from 1 to 65535 and '-1/-1' will be invalid.\nFor example, `1/200` means that the range of the port numbers is 1-200. Other protocols' 'port_range' can only be \"-1/-1\", and other values will be invalid.\n"},"prefixListId":{"type":"string","description":"The ID of the source/destination prefix list to which you want to control access. **NOTE:** If you specify \u003cspan pulumi-lang-nodejs=\"`cidrIp`\" pulumi-lang-dotnet=\"`CidrIp`\" pulumi-lang-go=\"`cidrIp`\" pulumi-lang-python=\"`cidr_ip`\" pulumi-lang-yaml=\"`cidrIp`\" pulumi-lang-java=\"`cidrIp`\"\u003e`cidr_ip`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`sourceSecurityGroupId`\" pulumi-lang-dotnet=\"`SourceSecurityGroupId`\" pulumi-lang-go=\"`sourceSecurityGroupId`\" pulumi-lang-python=\"`source_security_group_id`\" pulumi-lang-yaml=\"`sourceSecurityGroupId`\" pulumi-lang-java=\"`sourceSecurityGroupId`\"\u003e`source_security_group_id`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`ipv6CidrIp`\" pulumi-lang-dotnet=\"`Ipv6CidrIp`\" pulumi-lang-go=\"`ipv6CidrIp`\" pulumi-lang-python=\"`ipv6_cidr_ip`\" pulumi-lang-yaml=\"`ipv6CidrIp`\" pulumi-lang-java=\"`ipv6CidrIp`\"\u003e`ipv6_cidr_ip`\u003c/span\u003e parameter, this parameter is ignored.\n"},"priority":{"type":"integer","description":"The priority of the Security Group Rule. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"securityGroupId":{"type":"string","description":"The ID of the Security Group.\n"},"securityGroupRuleId":{"type":"string","description":"The ID of the Security Group Rule.\n"},"sourceGroupOwnerAccount":{"type":"string","description":"The Alibaba Cloud user account Id of the target security group when security groups are authorized across accounts.  This parameter is invalid if \u003cspan pulumi-lang-nodejs=\"`cidrIp`\" pulumi-lang-dotnet=\"`CidrIp`\" pulumi-lang-go=\"`cidrIp`\" pulumi-lang-python=\"`cidr_ip`\" pulumi-lang-yaml=\"`cidrIp`\" pulumi-lang-java=\"`cidrIp`\"\u003e`cidr_ip`\u003c/span\u003e has already been set.\n"},"sourceSecurityGroupId":{"type":"string","description":"The target security group ID within the same region. If this field is specified, the \u003cspan pulumi-lang-nodejs=\"`nicType`\" pulumi-lang-dotnet=\"`NicType`\" pulumi-lang-go=\"`nicType`\" pulumi-lang-python=\"`nic_type`\" pulumi-lang-yaml=\"`nicType`\" pulumi-lang-java=\"`nicType`\"\u003e`nic_type`\u003c/span\u003e can only select \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of the Security Group Rule. Valid values:\n"}},"required":["ipProtocol","nicType","prefixListId","securityGroupId","securityGroupRuleId","type"],"inputProperties":{"cidrIp":{"type":"string","description":"The target IP address range. The default value is 0.0.0.0/0 (which means no restriction will be applied). Other supported formats include 10.159.6.18/12. Only IPv4 is supported.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the security group rule. The description can be up to 1 to 512 characters in length. Defaults to null.\n\n\u003e **NOTE:**  You must specify one of the following field: \u003cspan pulumi-lang-nodejs=\"`cidrIp`\" pulumi-lang-dotnet=\"`CidrIp`\" pulumi-lang-go=\"`cidrIp`\" pulumi-lang-python=\"`cidr_ip`\" pulumi-lang-yaml=\"`cidrIp`\" pulumi-lang-java=\"`cidrIp`\"\u003e`cidr_ip`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`sourceSecurityGroupId`\" pulumi-lang-dotnet=\"`SourceSecurityGroupId`\" pulumi-lang-go=\"`sourceSecurityGroupId`\" pulumi-lang-python=\"`source_security_group_id`\" pulumi-lang-yaml=\"`sourceSecurityGroupId`\" pulumi-lang-java=\"`sourceSecurityGroupId`\"\u003e`source_security_group_id`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`prefixListId`\" pulumi-lang-dotnet=\"`PrefixListId`\" pulumi-lang-go=\"`prefixListId`\" pulumi-lang-python=\"`prefix_list_id`\" pulumi-lang-yaml=\"`prefixListId`\" pulumi-lang-java=\"`prefixListId`\"\u003e`prefix_list_id`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`ipv6CidrIp`\" pulumi-lang-dotnet=\"`Ipv6CidrIp`\" pulumi-lang-go=\"`ipv6CidrIp`\" pulumi-lang-python=\"`ipv6_cidr_ip`\" pulumi-lang-yaml=\"`ipv6CidrIp`\" pulumi-lang-java=\"`ipv6CidrIp`\"\u003e`ipv6_cidr_ip`\u003c/span\u003e.\n"},"ipProtocol":{"type":"string","description":"The transport layer protocol of the Security Group Rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`icmp`\" pulumi-lang-dotnet=\"`Icmp`\" pulumi-lang-go=\"`icmp`\" pulumi-lang-python=\"`icmp`\" pulumi-lang-yaml=\"`icmp`\" pulumi-lang-java=\"`icmp`\"\u003e`icmp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`icmpv6`\" pulumi-lang-dotnet=\"`Icmpv6`\" pulumi-lang-go=\"`icmpv6`\" pulumi-lang-python=\"`icmpv6`\" pulumi-lang-yaml=\"`icmpv6`\" pulumi-lang-java=\"`icmpv6`\"\u003e`icmpv6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gre`\" pulumi-lang-dotnet=\"`Gre`\" pulumi-lang-go=\"`gre`\" pulumi-lang-python=\"`gre`\" pulumi-lang-yaml=\"`gre`\" pulumi-lang-java=\"`gre`\"\u003e`gre`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e. **NOTE:** From version 1.262.0, \u003cspan pulumi-lang-nodejs=\"`ipProtocol`\" pulumi-lang-dotnet=\"`IpProtocol`\" pulumi-lang-go=\"`ipProtocol`\" pulumi-lang-python=\"`ip_protocol`\" pulumi-lang-yaml=\"`ipProtocol`\" pulumi-lang-java=\"`ipProtocol`\"\u003e`ip_protocol`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`icmpv6`\" pulumi-lang-dotnet=\"`Icmpv6`\" pulumi-lang-go=\"`icmpv6`\" pulumi-lang-python=\"`icmpv6`\" pulumi-lang-yaml=\"`icmpv6`\" pulumi-lang-java=\"`icmpv6`\"\u003e`icmpv6`\u003c/span\u003e.\n","willReplaceOnChanges":true},"ipv6CidrIp":{"type":"string","description":"Source IPv6 CIDR address block that requires access. Supports IP address ranges in CIDR format and IPv6 format. **NOTE:** This parameter cannot be set at the same time as the \u003cspan pulumi-lang-nodejs=\"`cidrIp`\" pulumi-lang-dotnet=\"`CidrIp`\" pulumi-lang-go=\"`cidrIp`\" pulumi-lang-python=\"`cidr_ip`\" pulumi-lang-yaml=\"`cidrIp`\" pulumi-lang-java=\"`cidrIp`\"\u003e`cidr_ip`\u003c/span\u003e parameter.\n","willReplaceOnChanges":true},"nicType":{"type":"string","description":"Network type, can be either \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e, the default value is \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e.\n","willReplaceOnChanges":true},"policy":{"type":"string","description":"The action of the Security Group Rule that determines whether to allow inbound access. Default value: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n","willReplaceOnChanges":true},"portRange":{"type":"string","description":"The range of port numbers relevant to the IP protocol. Default to \"-1/-1\". When the protocol is tcp or udp, each side port number range from 1 to 65535 and '-1/-1' will be invalid.\nFor example, `1/200` means that the range of the port numbers is 1-200. Other protocols' 'port_range' can only be \"-1/-1\", and other values will be invalid.\n","willReplaceOnChanges":true},"prefixListId":{"type":"string","description":"The ID of the source/destination prefix list to which you want to control access. **NOTE:** If you specify \u003cspan pulumi-lang-nodejs=\"`cidrIp`\" pulumi-lang-dotnet=\"`CidrIp`\" pulumi-lang-go=\"`cidrIp`\" pulumi-lang-python=\"`cidr_ip`\" pulumi-lang-yaml=\"`cidrIp`\" pulumi-lang-java=\"`cidrIp`\"\u003e`cidr_ip`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`sourceSecurityGroupId`\" pulumi-lang-dotnet=\"`SourceSecurityGroupId`\" pulumi-lang-go=\"`sourceSecurityGroupId`\" pulumi-lang-python=\"`source_security_group_id`\" pulumi-lang-yaml=\"`sourceSecurityGroupId`\" pulumi-lang-java=\"`sourceSecurityGroupId`\"\u003e`source_security_group_id`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`ipv6CidrIp`\" pulumi-lang-dotnet=\"`Ipv6CidrIp`\" pulumi-lang-go=\"`ipv6CidrIp`\" pulumi-lang-python=\"`ipv6_cidr_ip`\" pulumi-lang-yaml=\"`ipv6CidrIp`\" pulumi-lang-java=\"`ipv6CidrIp`\"\u003e`ipv6_cidr_ip`\u003c/span\u003e parameter, this parameter is ignored.\n","willReplaceOnChanges":true},"priority":{"type":"integer","description":"The priority of the Security Group Rule. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the Security Group.\n","willReplaceOnChanges":true},"sourceGroupOwnerAccount":{"type":"string","description":"The Alibaba Cloud user account Id of the target security group when security groups are authorized across accounts.  This parameter is invalid if \u003cspan pulumi-lang-nodejs=\"`cidrIp`\" pulumi-lang-dotnet=\"`CidrIp`\" pulumi-lang-go=\"`cidrIp`\" pulumi-lang-python=\"`cidr_ip`\" pulumi-lang-yaml=\"`cidrIp`\" pulumi-lang-java=\"`cidrIp`\"\u003e`cidr_ip`\u003c/span\u003e has already been set.\n","willReplaceOnChanges":true},"sourceSecurityGroupId":{"type":"string","description":"The target security group ID within the same region. If this field is specified, the \u003cspan pulumi-lang-nodejs=\"`nicType`\" pulumi-lang-dotnet=\"`NicType`\" pulumi-lang-go=\"`nicType`\" pulumi-lang-python=\"`nic_type`\" pulumi-lang-yaml=\"`nicType`\" pulumi-lang-java=\"`nicType`\"\u003e`nic_type`\u003c/span\u003e can only select \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the Security Group Rule. Valid values:\n","willReplaceOnChanges":true}},"requiredInputs":["ipProtocol","securityGroupId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering SecurityGroupRule resources.\n","properties":{"cidrIp":{"type":"string","description":"The target IP address range. The default value is 0.0.0.0/0 (which means no restriction will be applied). Other supported formats include 10.159.6.18/12. Only IPv4 is supported.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the security group rule. The description can be up to 1 to 512 characters in length. Defaults to null.\n\n\u003e **NOTE:**  You must specify one of the following field: \u003cspan pulumi-lang-nodejs=\"`cidrIp`\" pulumi-lang-dotnet=\"`CidrIp`\" pulumi-lang-go=\"`cidrIp`\" pulumi-lang-python=\"`cidr_ip`\" pulumi-lang-yaml=\"`cidrIp`\" pulumi-lang-java=\"`cidrIp`\"\u003e`cidr_ip`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`sourceSecurityGroupId`\" pulumi-lang-dotnet=\"`SourceSecurityGroupId`\" pulumi-lang-go=\"`sourceSecurityGroupId`\" pulumi-lang-python=\"`source_security_group_id`\" pulumi-lang-yaml=\"`sourceSecurityGroupId`\" pulumi-lang-java=\"`sourceSecurityGroupId`\"\u003e`source_security_group_id`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`prefixListId`\" pulumi-lang-dotnet=\"`PrefixListId`\" pulumi-lang-go=\"`prefixListId`\" pulumi-lang-python=\"`prefix_list_id`\" pulumi-lang-yaml=\"`prefixListId`\" pulumi-lang-java=\"`prefixListId`\"\u003e`prefix_list_id`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`ipv6CidrIp`\" pulumi-lang-dotnet=\"`Ipv6CidrIp`\" pulumi-lang-go=\"`ipv6CidrIp`\" pulumi-lang-python=\"`ipv6_cidr_ip`\" pulumi-lang-yaml=\"`ipv6CidrIp`\" pulumi-lang-java=\"`ipv6CidrIp`\"\u003e`ipv6_cidr_ip`\u003c/span\u003e.\n"},"ipProtocol":{"type":"string","description":"The transport layer protocol of the Security Group Rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`icmp`\" pulumi-lang-dotnet=\"`Icmp`\" pulumi-lang-go=\"`icmp`\" pulumi-lang-python=\"`icmp`\" pulumi-lang-yaml=\"`icmp`\" pulumi-lang-java=\"`icmp`\"\u003e`icmp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`icmpv6`\" pulumi-lang-dotnet=\"`Icmpv6`\" pulumi-lang-go=\"`icmpv6`\" pulumi-lang-python=\"`icmpv6`\" pulumi-lang-yaml=\"`icmpv6`\" pulumi-lang-java=\"`icmpv6`\"\u003e`icmpv6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gre`\" pulumi-lang-dotnet=\"`Gre`\" pulumi-lang-go=\"`gre`\" pulumi-lang-python=\"`gre`\" pulumi-lang-yaml=\"`gre`\" pulumi-lang-java=\"`gre`\"\u003e`gre`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e. **NOTE:** From version 1.262.0, \u003cspan pulumi-lang-nodejs=\"`ipProtocol`\" pulumi-lang-dotnet=\"`IpProtocol`\" pulumi-lang-go=\"`ipProtocol`\" pulumi-lang-python=\"`ip_protocol`\" pulumi-lang-yaml=\"`ipProtocol`\" pulumi-lang-java=\"`ipProtocol`\"\u003e`ip_protocol`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`icmpv6`\" pulumi-lang-dotnet=\"`Icmpv6`\" pulumi-lang-go=\"`icmpv6`\" pulumi-lang-python=\"`icmpv6`\" pulumi-lang-yaml=\"`icmpv6`\" pulumi-lang-java=\"`icmpv6`\"\u003e`icmpv6`\u003c/span\u003e.\n","willReplaceOnChanges":true},"ipv6CidrIp":{"type":"string","description":"Source IPv6 CIDR address block that requires access. Supports IP address ranges in CIDR format and IPv6 format. **NOTE:** This parameter cannot be set at the same time as the \u003cspan pulumi-lang-nodejs=\"`cidrIp`\" pulumi-lang-dotnet=\"`CidrIp`\" pulumi-lang-go=\"`cidrIp`\" pulumi-lang-python=\"`cidr_ip`\" pulumi-lang-yaml=\"`cidrIp`\" pulumi-lang-java=\"`cidrIp`\"\u003e`cidr_ip`\u003c/span\u003e parameter.\n","willReplaceOnChanges":true},"nicType":{"type":"string","description":"Network type, can be either \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e, the default value is \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e.\n","willReplaceOnChanges":true},"policy":{"type":"string","description":"The action of the Security Group Rule that determines whether to allow inbound access. Default value: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n","willReplaceOnChanges":true},"portRange":{"type":"string","description":"The range of port numbers relevant to the IP protocol. Default to \"-1/-1\". When the protocol is tcp or udp, each side port number range from 1 to 65535 and '-1/-1' will be invalid.\nFor example, `1/200` means that the range of the port numbers is 1-200. Other protocols' 'port_range' can only be \"-1/-1\", and other values will be invalid.\n","willReplaceOnChanges":true},"prefixListId":{"type":"string","description":"The ID of the source/destination prefix list to which you want to control access. **NOTE:** If you specify \u003cspan pulumi-lang-nodejs=\"`cidrIp`\" pulumi-lang-dotnet=\"`CidrIp`\" pulumi-lang-go=\"`cidrIp`\" pulumi-lang-python=\"`cidr_ip`\" pulumi-lang-yaml=\"`cidrIp`\" pulumi-lang-java=\"`cidrIp`\"\u003e`cidr_ip`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`sourceSecurityGroupId`\" pulumi-lang-dotnet=\"`SourceSecurityGroupId`\" pulumi-lang-go=\"`sourceSecurityGroupId`\" pulumi-lang-python=\"`source_security_group_id`\" pulumi-lang-yaml=\"`sourceSecurityGroupId`\" pulumi-lang-java=\"`sourceSecurityGroupId`\"\u003e`source_security_group_id`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`ipv6CidrIp`\" pulumi-lang-dotnet=\"`Ipv6CidrIp`\" pulumi-lang-go=\"`ipv6CidrIp`\" pulumi-lang-python=\"`ipv6_cidr_ip`\" pulumi-lang-yaml=\"`ipv6CidrIp`\" pulumi-lang-java=\"`ipv6CidrIp`\"\u003e`ipv6_cidr_ip`\u003c/span\u003e parameter, this parameter is ignored.\n","willReplaceOnChanges":true},"priority":{"type":"integer","description":"The priority of the Security Group Rule. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the Security Group.\n","willReplaceOnChanges":true},"securityGroupRuleId":{"type":"string","description":"The ID of the Security Group Rule.\n"},"sourceGroupOwnerAccount":{"type":"string","description":"The Alibaba Cloud user account Id of the target security group when security groups are authorized across accounts.  This parameter is invalid if \u003cspan pulumi-lang-nodejs=\"`cidrIp`\" pulumi-lang-dotnet=\"`CidrIp`\" pulumi-lang-go=\"`cidrIp`\" pulumi-lang-python=\"`cidr_ip`\" pulumi-lang-yaml=\"`cidrIp`\" pulumi-lang-java=\"`cidrIp`\"\u003e`cidr_ip`\u003c/span\u003e has already been set.\n","willReplaceOnChanges":true},"sourceSecurityGroupId":{"type":"string","description":"The target security group ID within the same region. If this field is specified, the \u003cspan pulumi-lang-nodejs=\"`nicType`\" pulumi-lang-dotnet=\"`NicType`\" pulumi-lang-go=\"`nicType`\" pulumi-lang-python=\"`nic_type`\" pulumi-lang-yaml=\"`nicType`\" pulumi-lang-java=\"`nicType`\"\u003e`nic_type`\u003c/span\u003e can only select \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the Security Group Rule. Valid values:\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ecs/snapshot:Snapshot":{"description":"Provides an ECS snapshot resource.\n\nFor information about snapshot and how to use it, see [Snapshot](https://www.alibabacloud.com/help/doc-detail/25460.html).\n\n\u003e **NOTE:** Deprecated since v1.120.0.\n\n\u003e **DEPRECATED:** This resource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.ecs.EcsSnapshot \" pulumi-lang-dotnet=\" alicloud.ecs.EcsSnapshot \" pulumi-lang-go=\" ecs.EcsSnapshot \" pulumi-lang-python=\" ecs.EcsSnapshot \" pulumi-lang-yaml=\" alicloud.ecs.EcsSnapshot \" pulumi-lang-java=\" alicloud.ecs.EcsSnapshot \"\u003e alicloud.ecs.EcsSnapshot \u003c/span\u003efrom version 1.120.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst snapshot = new alicloud.ecs.Snapshot(\"snapshot\", {\n    diskId: instance_attachment.diskId,\n    name: \"test-snapshot\",\n    description: \"this snapshot is created for testing\",\n    tags: {\n        version: \"1.2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nsnapshot = alicloud.ecs.Snapshot(\"snapshot\",\n    disk_id=instance_attachment[\"diskId\"],\n    name=\"test-snapshot\",\n    description=\"this snapshot is created for testing\",\n    tags={\n        \"version\": \"1.2\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var snapshot = new AliCloud.Ecs.Snapshot(\"snapshot\", new()\n    {\n        DiskId = instance_attachment.DiskId,\n        Name = \"test-snapshot\",\n        Description = \"this snapshot is created for testing\",\n        Tags = \n        {\n            { \"version\", \"1.2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewSnapshot(ctx, \"snapshot\", \u0026ecs.SnapshotArgs{\n\t\t\tDiskId:      pulumi.Any(instance_attachment.DiskId),\n\t\t\tName:        pulumi.String(\"test-snapshot\"),\n\t\t\tDescription: pulumi.String(\"this snapshot is created for testing\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"version\": pulumi.String(\"1.2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.Snapshot;\nimport com.pulumi.alicloud.ecs.SnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var snapshot = new Snapshot(\"snapshot\", SnapshotArgs.builder()\n            .diskId(instance_attachment.diskId())\n            .name(\"test-snapshot\")\n            .description(\"this snapshot is created for testing\")\n            .tags(Map.of(\"version\", \"1.2\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  snapshot:\n    type: alicloud:ecs:Snapshot\n    properties:\n      diskId: ${[\"instance-attachment\"].diskId}\n      name: test-snapshot\n      description: this snapshot is created for testing\n      tags:\n        version: '1.2'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSnapshot can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/snapshot:Snapshot snapshot s-abc1234567890000\n```\n\n","properties":{"category":{"type":"string"},"createTime":{"type":"string"},"description":{"type":"string","description":"Description of the snapshot. This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.\n"},"diskId":{"type":"string","description":"The source disk ID.\n"},"force":{"type":"boolean"},"instantAccess":{"type":"boolean","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccess`\" pulumi-lang-dotnet=\"`InstantAccess`\" pulumi-lang-go=\"`instantAccess`\" pulumi-lang-python=\"`instant_access`\" pulumi-lang-yaml=\"`instantAccess`\" pulumi-lang-java=\"`instantAccess`\"\u003e`instant_access`\u003c/span\u003e has been deprecated from provider version 1.231.0."},"instantAccessRetentionDays":{"type":"integer","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccessRetentionDays`\" pulumi-lang-dotnet=\"`InstantAccessRetentionDays`\" pulumi-lang-go=\"`instantAccessRetentionDays`\" pulumi-lang-python=\"`instant_access_retention_days`\" pulumi-lang-yaml=\"`instantAccessRetentionDays`\" pulumi-lang-java=\"`instantAccessRetentionDays`\"\u003e`instant_access_retention_days`\u003c/span\u003e has been deprecated from provider version 1.231.0."},"name":{"type":"string","description":"The name of the snapshot to be created. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), and hyphens (-).\nIt cannot start with auto, because snapshot names starting with auto are recognized as automatic snapshots.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.120.0. New field \u003cspan pulumi-lang-nodejs=\"`snapshotName`\" pulumi-lang-dotnet=\"`SnapshotName`\" pulumi-lang-go=\"`snapshotName`\" pulumi-lang-python=\"`snapshot_name`\" pulumi-lang-yaml=\"`snapshotName`\" pulumi-lang-java=\"`snapshotName`\"\u003e`snapshot_name`\u003c/span\u003e instead."},"regionId":{"type":"string"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"retentionDays":{"type":"integer"},"snapshotName":{"type":"string"},"status":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["category","createTime","diskId","name","regionId","snapshotName","status"],"inputProperties":{"category":{"type":"string","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of the snapshot. This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.\n"},"diskId":{"type":"string","description":"The source disk ID.\n","willReplaceOnChanges":true},"force":{"type":"boolean"},"instantAccess":{"type":"boolean","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccess`\" pulumi-lang-dotnet=\"`InstantAccess`\" pulumi-lang-go=\"`instantAccess`\" pulumi-lang-python=\"`instant_access`\" pulumi-lang-yaml=\"`instantAccess`\" pulumi-lang-java=\"`instantAccess`\"\u003e`instant_access`\u003c/span\u003e has been deprecated from provider version 1.231.0."},"instantAccessRetentionDays":{"type":"integer","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccessRetentionDays`\" pulumi-lang-dotnet=\"`InstantAccessRetentionDays`\" pulumi-lang-go=\"`instantAccessRetentionDays`\" pulumi-lang-python=\"`instant_access_retention_days`\" pulumi-lang-yaml=\"`instantAccessRetentionDays`\" pulumi-lang-java=\"`instantAccessRetentionDays`\"\u003e`instant_access_retention_days`\u003c/span\u003e has been deprecated from provider version 1.231.0."},"name":{"type":"string","description":"The name of the snapshot to be created. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), and hyphens (-).\nIt cannot start with auto, because snapshot names starting with auto are recognized as automatic snapshots.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.120.0. New field \u003cspan pulumi-lang-nodejs=\"`snapshotName`\" pulumi-lang-dotnet=\"`SnapshotName`\" pulumi-lang-go=\"`snapshotName`\" pulumi-lang-python=\"`snapshot_name`\" pulumi-lang-yaml=\"`snapshotName`\" pulumi-lang-java=\"`snapshotName`\"\u003e`snapshot_name`\u003c/span\u003e instead."},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"retentionDays":{"type":"integer"},"snapshotName":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"requiredInputs":["diskId"],"stateInputs":{"description":"Input properties used for looking up and filtering Snapshot resources.\n","properties":{"category":{"type":"string","willReplaceOnChanges":true},"createTime":{"type":"string"},"description":{"type":"string","description":"Description of the snapshot. This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.\n"},"diskId":{"type":"string","description":"The source disk ID.\n","willReplaceOnChanges":true},"force":{"type":"boolean"},"instantAccess":{"type":"boolean","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccess`\" pulumi-lang-dotnet=\"`InstantAccess`\" pulumi-lang-go=\"`instantAccess`\" pulumi-lang-python=\"`instant_access`\" pulumi-lang-yaml=\"`instantAccess`\" pulumi-lang-java=\"`instantAccess`\"\u003e`instant_access`\u003c/span\u003e has been deprecated from provider version 1.231.0."},"instantAccessRetentionDays":{"type":"integer","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instantAccessRetentionDays`\" pulumi-lang-dotnet=\"`InstantAccessRetentionDays`\" pulumi-lang-go=\"`instantAccessRetentionDays`\" pulumi-lang-python=\"`instant_access_retention_days`\" pulumi-lang-yaml=\"`instantAccessRetentionDays`\" pulumi-lang-java=\"`instantAccessRetentionDays`\"\u003e`instant_access_retention_days`\u003c/span\u003e has been deprecated from provider version 1.231.0."},"name":{"type":"string","description":"The name of the snapshot to be created. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), and hyphens (-).\nIt cannot start with auto, because snapshot names starting with auto are recognized as automatic snapshots.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.120.0. New field \u003cspan pulumi-lang-nodejs=\"`snapshotName`\" pulumi-lang-dotnet=\"`SnapshotName`\" pulumi-lang-go=\"`snapshotName`\" pulumi-lang-python=\"`snapshot_name`\" pulumi-lang-yaml=\"`snapshotName`\" pulumi-lang-java=\"`snapshotName`\"\u003e`snapshot_name`\u003c/span\u003e instead."},"regionId":{"type":"string"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"retentionDays":{"type":"integer"},"snapshotName":{"type":"string"},"status":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:ecs/snapshotPolicy:SnapshotPolicy":{"description":"\u003e **DEPRECATED:** This resource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.ecs.AutoSnapshotPolicy \" pulumi-lang-dotnet=\" alicloud.ecs.AutoSnapshotPolicy \" pulumi-lang-go=\" ecs.AutoSnapshotPolicy \" pulumi-lang-python=\" ecs.AutoSnapshotPolicy \" pulumi-lang-yaml=\" alicloud.ecs.AutoSnapshotPolicy \" pulumi-lang-java=\" alicloud.ecs.AutoSnapshotPolicy \"\u003e alicloud.ecs.AutoSnapshotPolicy \u003c/span\u003efrom version 1.117.0.\n\nProvides an ECS snapshot policy resource.\n\nFor information about snapshot policy and how to use it, see [Snapshot](https://www.alibabacloud.com/help/doc-detail/25460.html).\n\n\u003e **NOTE:** Available in 1.42.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst sp = new alicloud.ecs.SnapshotPolicy(\"sp\", {\n    name: \"tf-testAcc-sp\",\n    repeatWeekdays: [\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retentionDays: -1,\n    timePoints: [\n        \"1\",\n        \"22\",\n        \"23\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nsp = alicloud.ecs.SnapshotPolicy(\"sp\",\n    name=\"tf-testAcc-sp\",\n    repeat_weekdays=[\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retention_days=-1,\n    time_points=[\n        \"1\",\n        \"22\",\n        \"23\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var sp = new AliCloud.Ecs.SnapshotPolicy(\"sp\", new()\n    {\n        Name = \"tf-testAcc-sp\",\n        RepeatWeekdays = new[]\n        {\n            \"1\",\n            \"2\",\n            \"3\",\n        },\n        RetentionDays = -1,\n        TimePoints = new[]\n        {\n            \"1\",\n            \"22\",\n            \"23\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewSnapshotPolicy(ctx, \"sp\", \u0026ecs.SnapshotPolicyArgs{\n\t\t\tName: pulumi.String(\"tf-testAcc-sp\"),\n\t\t\tRepeatWeekdays: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\tpulumi.String(\"3\"),\n\t\t\t},\n\t\t\tRetentionDays: pulumi.Int(-1),\n\t\t\tTimePoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\tpulumi.String(\"22\"),\n\t\t\t\tpulumi.String(\"23\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.SnapshotPolicy;\nimport com.pulumi.alicloud.ecs.SnapshotPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var sp = new SnapshotPolicy(\"sp\", SnapshotPolicyArgs.builder()\n            .name(\"tf-testAcc-sp\")\n            .repeatWeekdays(            \n                \"1\",\n                \"2\",\n                \"3\")\n            .retentionDays(-1)\n            .timePoints(            \n                \"1\",\n                \"22\",\n                \"23\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  sp:\n    type: alicloud:ecs:SnapshotPolicy\n    properties:\n      name: tf-testAcc-sp\n      repeatWeekdays:\n        - '1'\n        - '2'\n        - '3'\n      retentionDays: -1\n      timePoints:\n        - '1'\n        - '22'\n        - '23'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSnapshot can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/snapshotPolicy:SnapshotPolicy snapshot sp-abc1234567890000\n```\n\n","properties":{"autoSnapshotPolicyName":{"type":"string"},"copiedSnapshotsRetentionDays":{"type":"integer"},"copyEncryptionConfiguration":{"$ref":"#/types/alicloud:ecs/SnapshotPolicyCopyEncryptionConfiguration:SnapshotPolicyCopyEncryptionConfiguration"},"createTime":{"type":"string"},"enableCrossRegionCopy":{"type":"boolean"},"name":{"type":"string","description":"The snapshot policy name.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.236.0. New field \u003cspan pulumi-lang-nodejs=\"`autoSnapshotPolicyName`\" pulumi-lang-dotnet=\"`AutoSnapshotPolicyName`\" pulumi-lang-go=\"`autoSnapshotPolicyName`\" pulumi-lang-python=\"`auto_snapshot_policy_name`\" pulumi-lang-yaml=\"`autoSnapshotPolicyName`\" pulumi-lang-java=\"`autoSnapshotPolicyName`\"\u003e`auto_snapshot_policy_name`\u003c/span\u003e instead."},"regionId":{"type":"string"},"repeatWeekdays":{"type":"array","items":{"type":"string"},"description":"The automatic snapshot repetition dates. The unit of measurement is day and the repeating cycle is a week. Value range: [1, 7], which represents days starting from Monday to Sunday, for example 1  indicates Monday. When you want to schedule multiple automatic snapshot tasks for a disk in a week, you can set the RepeatWeekdays to an array.\n- A maximum of seven time points can be selected.\n- The format is  an JSON array of [\"1\", \"2\", … \"7\"]  and the time points are separated by commas (,).\n"},"resourceGroupId":{"type":"string"},"retentionDays":{"type":"integer","description":"The snapshot retention time, and the unit of measurement is day. Optional values:\n- -1: The automatic snapshots are retained permanently.\n- [1, 65536]: The number of days retained.\n\nDefault value: -1.\n"},"status":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"}},"targetCopyRegions":{"type":"array","items":{"type":"string"}},"timePoints":{"type":"array","items":{"type":"string"},"description":"The automatic snapshot creation schedule, and the unit of measurement is hour. Value range: [0, 23], which represents from 00:00 to 24:00,  for example 1 indicates 01:00. When you want to schedule multiple automatic snapshot tasks for a disk in a day, you can set the TimePoints to an array.\n- A maximum of 24 time points can be selected.\n- The format is  an JSON array of [\"0\", \"1\", … \"23\"] and the time points are separated by commas (,).\n"}},"required":["autoSnapshotPolicyName","copiedSnapshotsRetentionDays","createTime","name","regionId","repeatWeekdays","retentionDays","status","timePoints"],"inputProperties":{"autoSnapshotPolicyName":{"type":"string"},"copiedSnapshotsRetentionDays":{"type":"integer"},"copyEncryptionConfiguration":{"$ref":"#/types/alicloud:ecs/SnapshotPolicyCopyEncryptionConfiguration:SnapshotPolicyCopyEncryptionConfiguration"},"enableCrossRegionCopy":{"type":"boolean"},"name":{"type":"string","description":"The snapshot policy name.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.236.0. New field \u003cspan pulumi-lang-nodejs=\"`autoSnapshotPolicyName`\" pulumi-lang-dotnet=\"`AutoSnapshotPolicyName`\" pulumi-lang-go=\"`autoSnapshotPolicyName`\" pulumi-lang-python=\"`auto_snapshot_policy_name`\" pulumi-lang-yaml=\"`autoSnapshotPolicyName`\" pulumi-lang-java=\"`autoSnapshotPolicyName`\"\u003e`auto_snapshot_policy_name`\u003c/span\u003e instead."},"repeatWeekdays":{"type":"array","items":{"type":"string"},"description":"The automatic snapshot repetition dates. The unit of measurement is day and the repeating cycle is a week. Value range: [1, 7], which represents days starting from Monday to Sunday, for example 1  indicates Monday. When you want to schedule multiple automatic snapshot tasks for a disk in a week, you can set the RepeatWeekdays to an array.\n- A maximum of seven time points can be selected.\n- The format is  an JSON array of [\"1\", \"2\", … \"7\"]  and the time points are separated by commas (,).\n"},"resourceGroupId":{"type":"string"},"retentionDays":{"type":"integer","description":"The snapshot retention time, and the unit of measurement is day. Optional values:\n- -1: The automatic snapshots are retained permanently.\n- [1, 65536]: The number of days retained.\n\nDefault value: -1.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"}},"targetCopyRegions":{"type":"array","items":{"type":"string"}},"timePoints":{"type":"array","items":{"type":"string"},"description":"The automatic snapshot creation schedule, and the unit of measurement is hour. Value range: [0, 23], which represents from 00:00 to 24:00,  for example 1 indicates 01:00. When you want to schedule multiple automatic snapshot tasks for a disk in a day, you can set the TimePoints to an array.\n- A maximum of 24 time points can be selected.\n- The format is  an JSON array of [\"0\", \"1\", … \"23\"] and the time points are separated by commas (,).\n"}},"requiredInputs":["repeatWeekdays","retentionDays","timePoints"],"stateInputs":{"description":"Input properties used for looking up and filtering SnapshotPolicy resources.\n","properties":{"autoSnapshotPolicyName":{"type":"string"},"copiedSnapshotsRetentionDays":{"type":"integer"},"copyEncryptionConfiguration":{"$ref":"#/types/alicloud:ecs/SnapshotPolicyCopyEncryptionConfiguration:SnapshotPolicyCopyEncryptionConfiguration"},"createTime":{"type":"string"},"enableCrossRegionCopy":{"type":"boolean"},"name":{"type":"string","description":"The snapshot policy name.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.236.0. New field \u003cspan pulumi-lang-nodejs=\"`autoSnapshotPolicyName`\" pulumi-lang-dotnet=\"`AutoSnapshotPolicyName`\" pulumi-lang-go=\"`autoSnapshotPolicyName`\" pulumi-lang-python=\"`auto_snapshot_policy_name`\" pulumi-lang-yaml=\"`autoSnapshotPolicyName`\" pulumi-lang-java=\"`autoSnapshotPolicyName`\"\u003e`auto_snapshot_policy_name`\u003c/span\u003e instead."},"regionId":{"type":"string"},"repeatWeekdays":{"type":"array","items":{"type":"string"},"description":"The automatic snapshot repetition dates. The unit of measurement is day and the repeating cycle is a week. Value range: [1, 7], which represents days starting from Monday to Sunday, for example 1  indicates Monday. When you want to schedule multiple automatic snapshot tasks for a disk in a week, you can set the RepeatWeekdays to an array.\n- A maximum of seven time points can be selected.\n- The format is  an JSON array of [\"1\", \"2\", … \"7\"]  and the time points are separated by commas (,).\n"},"resourceGroupId":{"type":"string"},"retentionDays":{"type":"integer","description":"The snapshot retention time, and the unit of measurement is day. Optional values:\n- -1: The automatic snapshots are retained permanently.\n- [1, 65536]: The number of days retained.\n\nDefault value: -1.\n"},"status":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"}},"targetCopyRegions":{"type":"array","items":{"type":"string"}},"timePoints":{"type":"array","items":{"type":"string"},"description":"The automatic snapshot creation schedule, and the unit of measurement is hour. Value range: [0, 23], which represents from 00:00 to 24:00,  for example 1 indicates 01:00. When you want to schedule multiple automatic snapshot tasks for a disk in a day, you can set the TimePoints to an array.\n- A maximum of 24 time points can be selected.\n- The format is  an JSON array of [\"0\", \"1\", … \"23\"] and the time points are separated by commas (,).\n"}},"type":"object"}},"alicloud:ecs/storageCapacityUnit:StorageCapacityUnit":{"description":"Provides a ECS Storage Capacity Unit resource.\n\nFor information about ECS Storage Capacity Unit and how to use it, see [What is Storage Capacity Unit](https://www.alibabacloud.com/help/en/doc-detail/161157.html).\n\n\u003e **NOTE:** Available since v1.155.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ecs.StorageCapacityUnit(\"default\", {\n    capacity: 20,\n    description: \"tftestdescription\",\n    storageCapacityUnitName: \"tftestname\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ecs.StorageCapacityUnit(\"default\",\n    capacity=20,\n    description=\"tftestdescription\",\n    storage_capacity_unit_name=\"tftestname\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ecs.StorageCapacityUnit(\"default\", new()\n    {\n        Capacity = 20,\n        Description = \"tftestdescription\",\n        StorageCapacityUnitName = \"tftestname\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewStorageCapacityUnit(ctx, \"default\", \u0026ecs.StorageCapacityUnitArgs{\n\t\t\tCapacity:                pulumi.Int(20),\n\t\t\tDescription:             pulumi.String(\"tftestdescription\"),\n\t\t\tStorageCapacityUnitName: pulumi.String(\"tftestname\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.StorageCapacityUnit;\nimport com.pulumi.alicloud.ecs.StorageCapacityUnitArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new StorageCapacityUnit(\"default\", StorageCapacityUnitArgs.builder()\n            .capacity(20)\n            .description(\"tftestdescription\")\n            .storageCapacityUnitName(\"tftestname\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ecs:StorageCapacityUnit\n    properties:\n      capacity: 20\n      description: tftestdescription\n      storageCapacityUnitName: tftestname\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECS Storage Capacity Unit can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ecs/storageCapacityUnit:StorageCapacityUnit example \u003cid\u003e\n```\n\n","properties":{"capacity":{"type":"integer","description":"The capacity of the Storage Capacity Unit. Unit: GiB. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`40`\" pulumi-lang-dotnet=\"`40`\" pulumi-lang-go=\"`40`\" pulumi-lang-python=\"`40`\" pulumi-lang-yaml=\"`40`\" pulumi-lang-java=\"`40`\"\u003e`40`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2048`\" pulumi-lang-dotnet=\"`2048`\" pulumi-lang-go=\"`2048`\" pulumi-lang-python=\"`2048`\" pulumi-lang-yaml=\"`2048`\" pulumi-lang-java=\"`2048`\"\u003e`2048`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5120`\" pulumi-lang-dotnet=\"`5120`\" pulumi-lang-go=\"`5120`\" pulumi-lang-python=\"`5120`\" pulumi-lang-yaml=\"`5120`\" pulumi-lang-java=\"`5120`\"\u003e`5120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`10240`\" pulumi-lang-dotnet=\"`10240`\" pulumi-lang-go=\"`10240`\" pulumi-lang-python=\"`10240`\" pulumi-lang-yaml=\"`10240`\" pulumi-lang-java=\"`10240`\"\u003e`10240`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`20480`\" pulumi-lang-dotnet=\"`20480`\" pulumi-lang-go=\"`20480`\" pulumi-lang-python=\"`20480`\" pulumi-lang-yaml=\"`20480`\" pulumi-lang-java=\"`20480`\"\u003e`20480`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`51200`\" pulumi-lang-dotnet=\"`51200`\" pulumi-lang-go=\"`51200`\" pulumi-lang-python=\"`51200`\" pulumi-lang-yaml=\"`51200`\" pulumi-lang-java=\"`51200`\"\u003e`51200`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The description of the Storage Capacity Unit. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.\n"},"period":{"type":"integer","description":"The validity period of the Storage Capacity Unit. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n* When PeriodUnit is set to Month, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e.\n* When PeriodUnit is set to Year, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"periodUnit":{"type":"string","description":"The unit of the validity period of the Storage Capacity Unit. Default value: `Month`. Valid values: `Month`, `Year`.\n"},"startTime":{"type":"string","description":"The time when the Storage Capacity Unit takes effect. It cannot be earlier than or more than six months later than the time when the Storage Capacity Unit is created. Specify the time in the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in UTC. **NOTE:** This parameter is empty by default. The Storage Capacity Unit immediately takes effect after it is created.\n"},"status":{"type":"string","description":"The status of Storage Capacity Unit.\n"},"storageCapacityUnitName":{"type":"string","description":"The name of the Storage Capacity Unit.\n"}},"required":["capacity","period","periodUnit","startTime","status","storageCapacityUnitName"],"inputProperties":{"capacity":{"type":"integer","description":"The capacity of the Storage Capacity Unit. Unit: GiB. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`40`\" pulumi-lang-dotnet=\"`40`\" pulumi-lang-go=\"`40`\" pulumi-lang-python=\"`40`\" pulumi-lang-yaml=\"`40`\" pulumi-lang-java=\"`40`\"\u003e`40`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2048`\" pulumi-lang-dotnet=\"`2048`\" pulumi-lang-go=\"`2048`\" pulumi-lang-python=\"`2048`\" pulumi-lang-yaml=\"`2048`\" pulumi-lang-java=\"`2048`\"\u003e`2048`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5120`\" pulumi-lang-dotnet=\"`5120`\" pulumi-lang-go=\"`5120`\" pulumi-lang-python=\"`5120`\" pulumi-lang-yaml=\"`5120`\" pulumi-lang-java=\"`5120`\"\u003e`5120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`10240`\" pulumi-lang-dotnet=\"`10240`\" pulumi-lang-go=\"`10240`\" pulumi-lang-python=\"`10240`\" pulumi-lang-yaml=\"`10240`\" pulumi-lang-java=\"`10240`\"\u003e`10240`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`20480`\" pulumi-lang-dotnet=\"`20480`\" pulumi-lang-go=\"`20480`\" pulumi-lang-python=\"`20480`\" pulumi-lang-yaml=\"`20480`\" pulumi-lang-java=\"`20480`\"\u003e`20480`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`51200`\" pulumi-lang-dotnet=\"`51200`\" pulumi-lang-go=\"`51200`\" pulumi-lang-python=\"`51200`\" pulumi-lang-yaml=\"`51200`\" pulumi-lang-java=\"`51200`\"\u003e`51200`\u003c/span\u003e.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the Storage Capacity Unit. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.\n"},"period":{"type":"integer","description":"The validity period of the Storage Capacity Unit. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n* When PeriodUnit is set to Month, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e.\n* When PeriodUnit is set to Year, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"periodUnit":{"type":"string","description":"The unit of the validity period of the Storage Capacity Unit. Default value: `Month`. Valid values: `Month`, `Year`.\n"},"startTime":{"type":"string","description":"The time when the Storage Capacity Unit takes effect. It cannot be earlier than or more than six months later than the time when the Storage Capacity Unit is created. Specify the time in the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in UTC. **NOTE:** This parameter is empty by default. The Storage Capacity Unit immediately takes effect after it is created.\n","willReplaceOnChanges":true},"storageCapacityUnitName":{"type":"string","description":"The name of the Storage Capacity Unit.\n"}},"requiredInputs":["capacity"],"stateInputs":{"description":"Input properties used for looking up and filtering StorageCapacityUnit resources.\n","properties":{"capacity":{"type":"integer","description":"The capacity of the Storage Capacity Unit. Unit: GiB. Valid values: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`40`\" pulumi-lang-dotnet=\"`40`\" pulumi-lang-go=\"`40`\" pulumi-lang-python=\"`40`\" pulumi-lang-yaml=\"`40`\" pulumi-lang-java=\"`40`\"\u003e`40`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2048`\" pulumi-lang-dotnet=\"`2048`\" pulumi-lang-go=\"`2048`\" pulumi-lang-python=\"`2048`\" pulumi-lang-yaml=\"`2048`\" pulumi-lang-java=\"`2048`\"\u003e`2048`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5120`\" pulumi-lang-dotnet=\"`5120`\" pulumi-lang-go=\"`5120`\" pulumi-lang-python=\"`5120`\" pulumi-lang-yaml=\"`5120`\" pulumi-lang-java=\"`5120`\"\u003e`5120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`10240`\" pulumi-lang-dotnet=\"`10240`\" pulumi-lang-go=\"`10240`\" pulumi-lang-python=\"`10240`\" pulumi-lang-yaml=\"`10240`\" pulumi-lang-java=\"`10240`\"\u003e`10240`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`20480`\" pulumi-lang-dotnet=\"`20480`\" pulumi-lang-go=\"`20480`\" pulumi-lang-python=\"`20480`\" pulumi-lang-yaml=\"`20480`\" pulumi-lang-java=\"`20480`\"\u003e`20480`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`51200`\" pulumi-lang-dotnet=\"`51200`\" pulumi-lang-go=\"`51200`\" pulumi-lang-python=\"`51200`\" pulumi-lang-yaml=\"`51200`\" pulumi-lang-java=\"`51200`\"\u003e`51200`\u003c/span\u003e.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the Storage Capacity Unit. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.\n"},"period":{"type":"integer","description":"The validity period of the Storage Capacity Unit. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n* When PeriodUnit is set to Month, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e.\n* When PeriodUnit is set to Year, Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"periodUnit":{"type":"string","description":"The unit of the validity period of the Storage Capacity Unit. Default value: `Month`. Valid values: `Month`, `Year`.\n"},"startTime":{"type":"string","description":"The time when the Storage Capacity Unit takes effect. It cannot be earlier than or more than six months later than the time when the Storage Capacity Unit is created. Specify the time in the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in UTC. **NOTE:** This parameter is empty by default. The Storage Capacity Unit immediately takes effect after it is created.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of Storage Capacity Unit.\n"},"storageCapacityUnitName":{"type":"string","description":"The name of the Storage Capacity Unit.\n"}},"type":"object"}},"alicloud:edas/application:Application":{"description":"Creates an EDAS ecs application on EDAS, see [What is EDAS Application](https://www.alibabacloud.com/help/en/edas/developer-reference/api-edas-2017-08-01-insertapplication). The application will be deployed when \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`warUrl`\" pulumi-lang-dotnet=\"`WarUrl`\" pulumi-lang-go=\"`warUrl`\" pulumi-lang-python=\"`war_url`\" pulumi-lang-yaml=\"`warUrl`\" pulumi-lang-java=\"`warUrl`\"\u003e`war_url`\u003c/span\u003e are given.\n\n\u003e **NOTE:** Available since v1.82.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: `${name}-${defaultInteger.result}`,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultCluster = new alicloud.edas.Cluster(\"default\", {\n    clusterName: `${name}-${defaultInteger.result}`,\n    clusterType: 2,\n    networkMode: 2,\n    logicalRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    vpcId: defaultNetwork.id,\n});\nconst defaultApplication = new alicloud.edas.Application(\"default\", {\n    applicationName: `${name}-${defaultInteger.result}`,\n    clusterId: defaultCluster.id,\n    packageType: \"JAR\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.get_regions(current=True)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=f\"{name}-{default_integer['result']}\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_cluster = alicloud.edas.Cluster(\"default\",\n    cluster_name=f\"{name}-{default_integer['result']}\",\n    cluster_type=2,\n    network_mode=2,\n    logical_region_id=default.regions[0].id,\n    vpc_id=default_network.id)\ndefault_application = alicloud.edas.Application(\"default\",\n    application_name=f\"{name}-{default_integer['result']}\",\n    cluster_id=default_cluster.id,\n    package_type=\"JAR\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = $\"{name}-{defaultInteger.Result}\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultCluster = new AliCloud.Edas.Cluster(\"default\", new()\n    {\n        ClusterName = $\"{name}-{defaultInteger.Result}\",\n        ClusterType = 2,\n        NetworkMode = 2,\n        LogicalRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultApplication = new AliCloud.Edas.Application(\"default\", new()\n    {\n        ApplicationName = $\"{name}-{defaultInteger.Result}\",\n        ClusterId = defaultCluster.Id,\n        PackageType = \"JAR\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/edas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := edas.NewCluster(ctx, \"default\", \u0026edas.ClusterArgs{\n\t\t\tClusterName:     pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tClusterType:     pulumi.Int(2),\n\t\t\tNetworkMode:     pulumi.Int(2),\n\t\t\tLogicalRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edas.NewApplication(ctx, \"default\", \u0026edas.ApplicationArgs{\n\t\t\tApplicationName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tClusterId:       defaultCluster.ID(),\n\t\t\tPackageType:     pulumi.String(\"JAR\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.edas.Cluster;\nimport com.pulumi.alicloud.edas.ClusterArgs;\nimport com.pulumi.alicloud.edas.Application;\nimport com.pulumi.alicloud.edas.ApplicationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .clusterName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .clusterType(2)\n            .networkMode(2)\n            .logicalRegionId(default_.regions()[0].id())\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultApplication = new Application(\"defaultApplication\", ApplicationArgs.builder()\n            .applicationName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .clusterId(defaultCluster.id())\n            .packageType(\"JAR\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}-${defaultInteger.result}\n      cidrBlock: 10.4.0.0/16\n  defaultCluster:\n    type: alicloud:edas:Cluster\n    name: default\n    properties:\n      clusterName: ${name}-${defaultInteger.result}\n      clusterType: '2'\n      networkMode: '2'\n      logicalRegionId: ${default.regions[0].id}\n      vpcId: ${defaultNetwork.id}\n  defaultApplication:\n    type: alicloud:edas:Application\n    name: default\n    properties:\n      applicationName: ${name}-${defaultInteger.result}\n      clusterId: ${defaultCluster.id}\n      packageType: JAR\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEDAS application can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:edas/application:Application app app_Id\n```\n\n","properties":{"applicationName":{"type":"string","description":"Name of your EDAS application. Only letters '-' '_' and numbers are allowed. The length cannot exceed 36 characters.\n"},"buildPackId":{"type":"integer","description":"The package ID of Enterprise Distributed Application Service (EDAS) Container, which can be retrieved by calling container version list interface ListBuildPack or the \"Pack ID\" column in container version list. When creating High-speed Service Framework (HSF) application, this parameter is required.\n"},"clusterId":{"type":"string","description":"The ID of the cluster that you want to create the application. The default cluster will be used if you do not specify this parameter.\n"},"descriotion":{"type":"string","description":"The description of the application that you want to create.\n"},"ecuInfos":{"type":"array","items":{"type":"string"},"description":"The ID of the Elastic Compute Unit (ECU) where you want to deploy the application. Type: List.\n"},"groupId":{"type":"string","description":"The ID of the instance group where the application is going to be deployed. Set this parameter to all if you want to deploy the application to all groups.\n"},"healthCheckUrl":{"type":"string","description":"The URL for health checking of the application.\n"},"logicalRegionId":{"type":"string","description":"The ID of the namespace where you want to create the application. You can call the ListUserDefineRegion operation to query the namespace ID.\n"},"packageType":{"type":"string","description":"The type of the package for the deployment of the application that you want to create. The valid values are: WAR and JAR. We strongly recommend you to set this parameter when creating the application.\n"},"packageVersion":{"type":"string","description":"The version of the application that you want to deploy. It must be unique for every application. The length cannot exceed 64 characters. We recommended you to use a timestamp.\n"},"warUrl":{"type":"string","description":"The address to store the uploaded web application (WAR) package for application deployment. This parameter is required when the deployType parameter is set as url.\n"}},"required":["applicationName","clusterId","packageType"],"inputProperties":{"applicationName":{"type":"string","description":"Name of your EDAS application. Only letters '-' '_' and numbers are allowed. The length cannot exceed 36 characters.\n"},"buildPackId":{"type":"integer","description":"The package ID of Enterprise Distributed Application Service (EDAS) Container, which can be retrieved by calling container version list interface ListBuildPack or the \"Pack ID\" column in container version list. When creating High-speed Service Framework (HSF) application, this parameter is required.\n"},"clusterId":{"type":"string","description":"The ID of the cluster that you want to create the application. The default cluster will be used if you do not specify this parameter.\n","willReplaceOnChanges":true},"descriotion":{"type":"string","description":"The description of the application that you want to create.\n"},"ecuInfos":{"type":"array","items":{"type":"string"},"description":"The ID of the Elastic Compute Unit (ECU) where you want to deploy the application. Type: List.\n"},"groupId":{"type":"string","description":"The ID of the instance group where the application is going to be deployed. Set this parameter to all if you want to deploy the application to all groups.\n"},"healthCheckUrl":{"type":"string","description":"The URL for health checking of the application.\n"},"logicalRegionId":{"type":"string","description":"The ID of the namespace where you want to create the application. You can call the ListUserDefineRegion operation to query the namespace ID.\n"},"packageType":{"type":"string","description":"The type of the package for the deployment of the application that you want to create. The valid values are: WAR and JAR. We strongly recommend you to set this parameter when creating the application.\n","willReplaceOnChanges":true},"packageVersion":{"type":"string","description":"The version of the application that you want to deploy. It must be unique for every application. The length cannot exceed 64 characters. We recommended you to use a timestamp.\n"},"warUrl":{"type":"string","description":"The address to store the uploaded web application (WAR) package for application deployment. This parameter is required when the deployType parameter is set as url.\n"}},"requiredInputs":["applicationName","clusterId","packageType"],"stateInputs":{"description":"Input properties used for looking up and filtering Application resources.\n","properties":{"applicationName":{"type":"string","description":"Name of your EDAS application. Only letters '-' '_' and numbers are allowed. The length cannot exceed 36 characters.\n"},"buildPackId":{"type":"integer","description":"The package ID of Enterprise Distributed Application Service (EDAS) Container, which can be retrieved by calling container version list interface ListBuildPack or the \"Pack ID\" column in container version list. When creating High-speed Service Framework (HSF) application, this parameter is required.\n"},"clusterId":{"type":"string","description":"The ID of the cluster that you want to create the application. The default cluster will be used if you do not specify this parameter.\n","willReplaceOnChanges":true},"descriotion":{"type":"string","description":"The description of the application that you want to create.\n"},"ecuInfos":{"type":"array","items":{"type":"string"},"description":"The ID of the Elastic Compute Unit (ECU) where you want to deploy the application. Type: List.\n"},"groupId":{"type":"string","description":"The ID of the instance group where the application is going to be deployed. Set this parameter to all if you want to deploy the application to all groups.\n"},"healthCheckUrl":{"type":"string","description":"The URL for health checking of the application.\n"},"logicalRegionId":{"type":"string","description":"The ID of the namespace where you want to create the application. You can call the ListUserDefineRegion operation to query the namespace ID.\n"},"packageType":{"type":"string","description":"The type of the package for the deployment of the application that you want to create. The valid values are: WAR and JAR. We strongly recommend you to set this parameter when creating the application.\n","willReplaceOnChanges":true},"packageVersion":{"type":"string","description":"The version of the application that you want to deploy. It must be unique for every application. The length cannot exceed 64 characters. We recommended you to use a timestamp.\n"},"warUrl":{"type":"string","description":"The address to store the uploaded web application (WAR) package for application deployment. This parameter is required when the deployType parameter is set as url.\n"}},"type":"object"}},"alicloud:edas/applicationDeployment:ApplicationDeployment":{"description":"Deploys applications on EDAS, see [What is EDAS Application Deployment](https://www.alibabacloud.com/help/en/edas/developer-reference/api-edas-2017-08-01-deployapplication).\n\n\u003e **NOTE:** Available since v1.82.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultGetZones = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_[0-9]+_[0-9]+_x64*\",\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = defaultGetZones.then(defaultGetZones =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: defaultGetZones.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    availabilityZone: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n    instanceName: name,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup.id],\n    vswitchId: defaultSwitch.id,\n});\nconst defaultCluster = new alicloud.edas.Cluster(\"default\", {\n    clusterName: name,\n    clusterType: 2,\n    networkMode: 2,\n    logicalRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstanceClusterAttachment = new alicloud.edas.InstanceClusterAttachment(\"default\", {\n    clusterId: defaultCluster.id,\n    instanceIds: [defaultInstance.id],\n});\nconst defaultApplication = new alicloud.edas.Application(\"default\", {\n    applicationName: name,\n    clusterId: defaultCluster.id,\n    packageType: \"JAR\",\n});\nconst defaultDeployGroup = new alicloud.edas.DeployGroup(\"default\", {\n    appId: defaultApplication.id,\n    groupName: name,\n});\nconst defaultApplicationDeployment = new alicloud.edas.ApplicationDeployment(\"default\", {\n    appId: defaultApplication.id,\n    groupId: \"all\",\n    warUrl: \"http://edas-sz.oss-cn-shenzhen.aliyuncs.com/prod/demo/SPRING_CLOUD_CONSUMER.jar\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_[0-9]+_[0-9]+_x64*\",\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default_get_zones.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    availability_zone=default_get_zones.zones[0].id,\n    instance_name=name,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[default_security_group.id],\n    vswitch_id=default_switch.id)\ndefault_cluster = alicloud.edas.Cluster(\"default\",\n    cluster_name=name,\n    cluster_type=2,\n    network_mode=2,\n    logical_region_id=default.regions[0].id,\n    vpc_id=default_network.id)\ndefault_instance_cluster_attachment = alicloud.edas.InstanceClusterAttachment(\"default\",\n    cluster_id=default_cluster.id,\n    instance_ids=[default_instance.id])\ndefault_application = alicloud.edas.Application(\"default\",\n    application_name=name,\n    cluster_id=default_cluster.id,\n    package_type=\"JAR\")\ndefault_deploy_group = alicloud.edas.DeployGroup(\"default\",\n    app_id=default_application.id,\n    group_name=name)\ndefault_application_deployment = alicloud.edas.ApplicationDeployment(\"default\",\n    app_id=default_application.id,\n    group_id=\"all\",\n    war_url=\"http://edas-sz.oss-cn-shenzhen.aliyuncs.com/prod/demo/SPRING_CLOUD_CONSUMER.jar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_[0-9]+_[0-9]+_x64*\",\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        AvailabilityZone = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceName = name,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var defaultCluster = new AliCloud.Edas.Cluster(\"default\", new()\n    {\n        ClusterName = name,\n        ClusterType = 2,\n        NetworkMode = 2,\n        LogicalRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstanceClusterAttachment = new AliCloud.Edas.InstanceClusterAttachment(\"default\", new()\n    {\n        ClusterId = defaultCluster.Id,\n        InstanceIds = new[]\n        {\n            defaultInstance.Id,\n        },\n    });\n\n    var defaultApplication = new AliCloud.Edas.Application(\"default\", new()\n    {\n        ApplicationName = name,\n        ClusterId = defaultCluster.Id,\n        PackageType = \"JAR\",\n    });\n\n    var defaultDeployGroup = new AliCloud.Edas.DeployGroup(\"default\", new()\n    {\n        AppId = defaultApplication.Id,\n        GroupName = name,\n    });\n\n    var defaultApplicationDeployment = new AliCloud.Edas.ApplicationDeployment(\"default\", new()\n    {\n        AppId = defaultApplication.Id,\n        GroupId = \"all\",\n        WarUrl = \"http://edas-sz.oss-cn-shenzhen.aliyuncs.com/prod/demo/SPRING_CLOUD_CONSUMER.jar\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/edas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_[0-9]+_[0-9]+_x64*\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(defaultGetZones.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(name),\n\t\t\tImageId:          pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := edas.NewCluster(ctx, \"default\", \u0026edas.ClusterArgs{\n\t\t\tClusterName:     pulumi.String(name),\n\t\t\tClusterType:     pulumi.Int(2),\n\t\t\tNetworkMode:     pulumi.Int(2),\n\t\t\tLogicalRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edas.NewInstanceClusterAttachment(ctx, \"default\", \u0026edas.InstanceClusterAttachmentArgs{\n\t\t\tClusterId: defaultCluster.ID(),\n\t\t\tInstanceIds: pulumi.StringArray{\n\t\t\t\tdefaultInstance.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplication, err := edas.NewApplication(ctx, \"default\", \u0026edas.ApplicationArgs{\n\t\t\tApplicationName: pulumi.String(name),\n\t\t\tClusterId:       defaultCluster.ID(),\n\t\t\tPackageType:     pulumi.String(\"JAR\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edas.NewDeployGroup(ctx, \"default\", \u0026edas.DeployGroupArgs{\n\t\t\tAppId:     defaultApplication.ID(),\n\t\t\tGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edas.NewApplicationDeployment(ctx, \"default\", \u0026edas.ApplicationDeploymentArgs{\n\t\t\tAppId:   defaultApplication.ID(),\n\t\t\tGroupId: pulumi.String(\"all\"),\n\t\t\tWarUrl:  pulumi.String(\"http://edas-sz.oss-cn-shenzhen.aliyuncs.com/prod/demo/SPRING_CLOUD_CONSUMER.jar\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.edas.Cluster;\nimport com.pulumi.alicloud.edas.ClusterArgs;\nimport com.pulumi.alicloud.edas.InstanceClusterAttachment;\nimport com.pulumi.alicloud.edas.InstanceClusterAttachmentArgs;\nimport com.pulumi.alicloud.edas.Application;\nimport com.pulumi.alicloud.edas.ApplicationArgs;\nimport com.pulumi.alicloud.edas.DeployGroup;\nimport com.pulumi.alicloud.edas.DeployGroupArgs;\nimport com.pulumi.alicloud.edas.ApplicationDeployment;\nimport com.pulumi.alicloud.edas.ApplicationDeploymentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_[0-9]+_[0-9]+_x64*\")\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(defaultGetZones.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .availabilityZone(defaultGetZones.zones()[0].id())\n            .instanceName(name)\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.id())\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .clusterName(name)\n            .clusterType(2)\n            .networkMode(2)\n            .logicalRegionId(default_.regions()[0].id())\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstanceClusterAttachment = new InstanceClusterAttachment(\"defaultInstanceClusterAttachment\", InstanceClusterAttachmentArgs.builder()\n            .clusterId(defaultCluster.id())\n            .instanceIds(defaultInstance.id())\n            .build());\n\n        var defaultApplication = new Application(\"defaultApplication\", ApplicationArgs.builder()\n            .applicationName(name)\n            .clusterId(defaultCluster.id())\n            .packageType(\"JAR\")\n            .build());\n\n        var defaultDeployGroup = new DeployGroup(\"defaultDeployGroup\", DeployGroupArgs.builder()\n            .appId(defaultApplication.id())\n            .groupName(name)\n            .build());\n\n        var defaultApplicationDeployment = new ApplicationDeployment(\"defaultApplicationDeployment\", ApplicationDeploymentArgs.builder()\n            .appId(defaultApplication.id())\n            .groupId(\"all\")\n            .warUrl(\"http://edas-sz.oss-cn-shenzhen.aliyuncs.com/prod/demo/SPRING_CLOUD_CONSUMER.jar\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:ecs:Instance\n    name: default\n    properties:\n      availabilityZone: ${defaultGetZones.zones[0].id}\n      instanceName: ${name}\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      securityGroups:\n        - ${defaultSecurityGroup.id}\n      vswitchId: ${defaultSwitch.id}\n  defaultCluster:\n    type: alicloud:edas:Cluster\n    name: default\n    properties:\n      clusterName: ${name}\n      clusterType: '2'\n      networkMode: '2'\n      logicalRegionId: ${default.regions[0].id}\n      vpcId: ${defaultNetwork.id}\n  defaultInstanceClusterAttachment:\n    type: alicloud:edas:InstanceClusterAttachment\n    name: default\n    properties:\n      clusterId: ${defaultCluster.id}\n      instanceIds:\n        - ${defaultInstance.id}\n  defaultApplication:\n    type: alicloud:edas:Application\n    name: default\n    properties:\n      applicationName: ${name}\n      clusterId: ${defaultCluster.id}\n      packageType: JAR\n  defaultDeployGroup:\n    type: alicloud:edas:DeployGroup\n    name: default\n    properties:\n      appId: ${defaultApplication.id}\n      groupName: ${name}\n  defaultApplicationDeployment:\n    type: alicloud:edas:ApplicationDeployment\n    name: default\n    properties:\n      appId: ${defaultApplication.id}\n      groupId: all\n      warUrl: http://edas-sz.oss-cn-shenzhen.aliyuncs.com/prod/demo/SPRING_CLOUD_CONSUMER.jar\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_[0-9]+_[0-9]+_x64*\n        owners: system\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${defaultGetZones.zones[0].id}\n        cpuCoreCount: 1\n        memorySize: 2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"appId":{"type":"string","description":"The ID of the application that you want to deploy.\n"},"groupId":{"type":"string","description":"The ID of the instance group where the application is going to be deployed. Set this parameter to all if you want to deploy the application to all groups.\n"},"lastPackageVersion":{"type":"string","description":"Last package version deployed.\n"},"packageVersion":{"type":"string","description":"The version of the application that you want to deploy. It must be unique for every application. The length cannot exceed 64 characters. We recommended you to use a timestamp.\n"},"warUrl":{"type":"string","description":"The address to store the uploaded web application (WAR) package for application deployment. This parameter is required when the deployType parameter is set as url.\n"}},"required":["appId","groupId","lastPackageVersion","warUrl"],"inputProperties":{"appId":{"type":"string","description":"The ID of the application that you want to deploy.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"The ID of the instance group where the application is going to be deployed. Set this parameter to all if you want to deploy the application to all groups.\n","willReplaceOnChanges":true},"packageVersion":{"type":"string","description":"The version of the application that you want to deploy. It must be unique for every application. The length cannot exceed 64 characters. We recommended you to use a timestamp.\n","willReplaceOnChanges":true},"warUrl":{"type":"string","description":"The address to store the uploaded web application (WAR) package for application deployment. This parameter is required when the deployType parameter is set as url.\n","willReplaceOnChanges":true}},"requiredInputs":["appId","groupId","warUrl"],"stateInputs":{"description":"Input properties used for looking up and filtering ApplicationDeployment resources.\n","properties":{"appId":{"type":"string","description":"The ID of the application that you want to deploy.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"The ID of the instance group where the application is going to be deployed. Set this parameter to all if you want to deploy the application to all groups.\n","willReplaceOnChanges":true},"lastPackageVersion":{"type":"string","description":"Last package version deployed.\n"},"packageVersion":{"type":"string","description":"The version of the application that you want to deploy. It must be unique for every application. The length cannot exceed 64 characters. We recommended you to use a timestamp.\n","willReplaceOnChanges":true},"warUrl":{"type":"string","description":"The address to store the uploaded web application (WAR) package for application deployment. This parameter is required when the deployType parameter is set as url.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:edas/applicationScale:ApplicationScale":{"description":"This operation is provided to scale out an EDAS application, see [What is EDAS Application Scale](https://www.alibabacloud.com/help/en/edas/developer-reference/api-edas-2017-08-01-scaleoutapplication).\n\n\n\u003e **NOTE:** Available since v1.82.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultGetZones = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_[0-9]+_[0-9]+_x64*\",\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = defaultGetZones.then(defaultGetZones =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: defaultGetZones.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    availabilityZone: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n    instanceName: name,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup.id],\n    vswitchId: defaultSwitch.id,\n    internetMaxBandwidthOut: 10,\n    internetChargeType: \"PayByTraffic\",\n    instanceChargeType: \"PostPaid\",\n    systemDiskCategory: \"cloud_efficiency\",\n});\nconst defaultCluster = new alicloud.edas.Cluster(\"default\", {\n    clusterName: name,\n    clusterType: 2,\n    networkMode: 2,\n    logicalRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstanceClusterAttachment = new alicloud.edas.InstanceClusterAttachment(\"default\", {\n    clusterId: defaultCluster.id,\n    instanceIds: [defaultInstance.id],\n});\nconst defaultApplication = new alicloud.edas.Application(\"default\", {\n    applicationName: name,\n    clusterId: defaultCluster.id,\n    packageType: \"WAR\",\n});\nconst defaultDeployGroup = new alicloud.edas.DeployGroup(\"default\", {\n    appId: defaultApplication.id,\n    groupName: name,\n});\nconst defaultGetDeployGroups = alicloud.edas.getDeployGroupsOutput({\n    appId: defaultDeployGroup.appId,\n});\nconst defaultApplicationScale = new alicloud.edas.ApplicationScale(\"default\", {\n    appId: defaultApplication.id,\n    deployGroup: defaultGetDeployGroups.apply(defaultGetDeployGroups =\u003e defaultGetDeployGroups.groups?.[0]?.groupId),\n    ecuInfos: [pulumi.all([defaultInstanceClusterAttachment.ecuMap, defaultInstance.id]).apply(([ecuMap, id]) =\u003e ecuMap[id])],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_[0-9]+_[0-9]+_x64*\",\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default_get_zones.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    availability_zone=default_get_zones.zones[0].id,\n    instance_name=name,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[default_security_group.id],\n    vswitch_id=default_switch.id,\n    internet_max_bandwidth_out=10,\n    internet_charge_type=\"PayByTraffic\",\n    instance_charge_type=\"PostPaid\",\n    system_disk_category=\"cloud_efficiency\")\ndefault_cluster = alicloud.edas.Cluster(\"default\",\n    cluster_name=name,\n    cluster_type=2,\n    network_mode=2,\n    logical_region_id=default.regions[0].id,\n    vpc_id=default_network.id)\ndefault_instance_cluster_attachment = alicloud.edas.InstanceClusterAttachment(\"default\",\n    cluster_id=default_cluster.id,\n    instance_ids=[default_instance.id])\ndefault_application = alicloud.edas.Application(\"default\",\n    application_name=name,\n    cluster_id=default_cluster.id,\n    package_type=\"WAR\")\ndefault_deploy_group = alicloud.edas.DeployGroup(\"default\",\n    app_id=default_application.id,\n    group_name=name)\ndefault_get_deploy_groups = alicloud.edas.get_deploy_groups_output(app_id=default_deploy_group.app_id)\ndefault_application_scale = alicloud.edas.ApplicationScale(\"default\",\n    app_id=default_application.id,\n    deploy_group=default_get_deploy_groups.groups[0].group_id,\n    ecu_infos=[pulumi.Output.all(\n        ecu_map=default_instance_cluster_attachment.ecu_map,\n        id=default_instance.id\n).apply(lambda resolved_outputs: resolved_outputs['ecu_map'][resolved_outputs['id']])\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_[0-9]+_[0-9]+_x64*\",\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        AvailabilityZone = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceName = name,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        VswitchId = defaultSwitch.Id,\n        InternetMaxBandwidthOut = 10,\n        InternetChargeType = \"PayByTraffic\",\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskCategory = \"cloud_efficiency\",\n    });\n\n    var defaultCluster = new AliCloud.Edas.Cluster(\"default\", new()\n    {\n        ClusterName = name,\n        ClusterType = 2,\n        NetworkMode = 2,\n        LogicalRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstanceClusterAttachment = new AliCloud.Edas.InstanceClusterAttachment(\"default\", new()\n    {\n        ClusterId = defaultCluster.Id,\n        InstanceIds = new[]\n        {\n            defaultInstance.Id,\n        },\n    });\n\n    var defaultApplication = new AliCloud.Edas.Application(\"default\", new()\n    {\n        ApplicationName = name,\n        ClusterId = defaultCluster.Id,\n        PackageType = \"WAR\",\n    });\n\n    var defaultDeployGroup = new AliCloud.Edas.DeployGroup(\"default\", new()\n    {\n        AppId = defaultApplication.Id,\n        GroupName = name,\n    });\n\n    var defaultGetDeployGroups = AliCloud.Edas.GetDeployGroups.Invoke(new()\n    {\n        AppId = defaultDeployGroup.AppId,\n    });\n\n    var defaultApplicationScale = new AliCloud.Edas.ApplicationScale(\"default\", new()\n    {\n        AppId = defaultApplication.Id,\n        DeployGroup = defaultGetDeployGroups.Apply(getDeployGroupsResult =\u003e getDeployGroupsResult.Groups[0]?.GroupId),\n        EcuInfos = new[]\n        {\n            Output.Tuple(defaultInstanceClusterAttachment.EcuMap, defaultInstance.Id).Apply(values =\u003e\n            {\n                var ecuMap = values.Item1;\n                var id = values.Item2;\n                return ecuMap[id];\n            }),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/edas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_[0-9]+_[0-9]+_x64*\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(defaultGetZones.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(name),\n\t\t\tImageId:          pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId:               defaultSwitch.ID(),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t\tInternetChargeType:      pulumi.String(\"PayByTraffic\"),\n\t\t\tInstanceChargeType:      pulumi.String(\"PostPaid\"),\n\t\t\tSystemDiskCategory:      pulumi.String(\"cloud_efficiency\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := edas.NewCluster(ctx, \"default\", \u0026edas.ClusterArgs{\n\t\t\tClusterName:     pulumi.String(name),\n\t\t\tClusterType:     pulumi.Int(2),\n\t\t\tNetworkMode:     pulumi.Int(2),\n\t\t\tLogicalRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstanceClusterAttachment, err := edas.NewInstanceClusterAttachment(ctx, \"default\", \u0026edas.InstanceClusterAttachmentArgs{\n\t\t\tClusterId: defaultCluster.ID(),\n\t\t\tInstanceIds: pulumi.StringArray{\n\t\t\t\tdefaultInstance.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplication, err := edas.NewApplication(ctx, \"default\", \u0026edas.ApplicationArgs{\n\t\t\tApplicationName: pulumi.String(name),\n\t\t\tClusterId:       defaultCluster.ID(),\n\t\t\tPackageType:     pulumi.String(\"WAR\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDeployGroup, err := edas.NewDeployGroup(ctx, \"default\", \u0026edas.DeployGroupArgs{\n\t\t\tAppId:     defaultApplication.ID(),\n\t\t\tGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetDeployGroups := edas.GetDeployGroupsOutput(ctx, edas.GetDeployGroupsOutputArgs{\n\t\t\tAppId: defaultDeployGroup.AppId,\n\t\t}, nil)\n\t\t_, err = edas.NewApplicationScale(ctx, \"default\", \u0026edas.ApplicationScaleArgs{\n\t\t\tAppId: defaultApplication.ID(),\n\t\t\tDeployGroup: pulumi.String(defaultGetDeployGroups.ApplyT(func(defaultGetDeployGroups edas.GetDeployGroupsResult) (*string, error) {\n\t\t\t\treturn \u0026defaultGetDeployGroups.Groups[0].GroupId, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tEcuInfos: pulumi.StringArray{\n\t\t\t\tpulumi.All(defaultInstanceClusterAttachment.EcuMap, defaultInstance.ID()).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tecuMap := _args[0].(map[string]string)\n\t\t\t\t\tid := _args[1].(string)\n\t\t\t\t\treturn ecuMap[id], nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.edas.Cluster;\nimport com.pulumi.alicloud.edas.ClusterArgs;\nimport com.pulumi.alicloud.edas.InstanceClusterAttachment;\nimport com.pulumi.alicloud.edas.InstanceClusterAttachmentArgs;\nimport com.pulumi.alicloud.edas.Application;\nimport com.pulumi.alicloud.edas.ApplicationArgs;\nimport com.pulumi.alicloud.edas.DeployGroup;\nimport com.pulumi.alicloud.edas.DeployGroupArgs;\nimport com.pulumi.alicloud.edas.EdasFunctions;\nimport com.pulumi.alicloud.edas.inputs.GetDeployGroupsArgs;\nimport com.pulumi.alicloud.edas.ApplicationScale;\nimport com.pulumi.alicloud.edas.ApplicationScaleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_[0-9]+_[0-9]+_x64*\")\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(defaultGetZones.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .availabilityZone(defaultGetZones.zones()[0].id())\n            .instanceName(name)\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.id())\n            .vswitchId(defaultSwitch.id())\n            .internetMaxBandwidthOut(10)\n            .internetChargeType(\"PayByTraffic\")\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .clusterName(name)\n            .clusterType(2)\n            .networkMode(2)\n            .logicalRegionId(default_.regions()[0].id())\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstanceClusterAttachment = new InstanceClusterAttachment(\"defaultInstanceClusterAttachment\", InstanceClusterAttachmentArgs.builder()\n            .clusterId(defaultCluster.id())\n            .instanceIds(defaultInstance.id())\n            .build());\n\n        var defaultApplication = new Application(\"defaultApplication\", ApplicationArgs.builder()\n            .applicationName(name)\n            .clusterId(defaultCluster.id())\n            .packageType(\"WAR\")\n            .build());\n\n        var defaultDeployGroup = new DeployGroup(\"defaultDeployGroup\", DeployGroupArgs.builder()\n            .appId(defaultApplication.id())\n            .groupName(name)\n            .build());\n\n        final var defaultGetDeployGroups = EdasFunctions.getDeployGroups(GetDeployGroupsArgs.builder()\n            .appId(defaultDeployGroup.appId())\n            .build());\n\n        var defaultApplicationScale = new ApplicationScale(\"defaultApplicationScale\", ApplicationScaleArgs.builder()\n            .appId(defaultApplication.id())\n            .deployGroup(defaultGetDeployGroups.applyValue(_defaultGetDeployGroups -\u003e _defaultGetDeployGroups.groups()[0].groupId()))\n            .ecuInfos(Output.tuple(defaultInstanceClusterAttachment.ecuMap(), defaultInstance.id()).applyValue(values -\u003e {\n                var ecuMap = values.t1;\n                var id = values.t2;\n                return ecuMap[id];\n            }))\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"appId":{"type":"string","description":"The ID of the application that you want to deploy.\n"},"deployGroup":{"type":"string","description":"The ID of the instance group to which you want to add ECS instances to scale out the application.\n"},"eccInfo":{"type":"string","description":"The ecc information of the resource supplied above. The value is formulated as `\u003cecc1,ecc2\u003e`.\n"},"ecuInfos":{"type":"array","items":{"type":"string"},"description":"The IDs of the Elastic Compute Unit (ECU) where you want to deploy the application. Type: List.\n"},"forceStatus":{"type":"boolean","description":"This parameter specifies whether to forcibly remove an ECS instance where the application is deployed. It is set as true only after the ECS instance expires. In normal cases, this parameter do not need to be specified.\n"}},"required":["appId","deployGroup","eccInfo","ecuInfos"],"inputProperties":{"appId":{"type":"string","description":"The ID of the application that you want to deploy.\n","willReplaceOnChanges":true},"deployGroup":{"type":"string","description":"The ID of the instance group to which you want to add ECS instances to scale out the application.\n","willReplaceOnChanges":true},"ecuInfos":{"type":"array","items":{"type":"string"},"description":"The IDs of the Elastic Compute Unit (ECU) where you want to deploy the application. Type: List.\n","willReplaceOnChanges":true},"forceStatus":{"type":"boolean","description":"This parameter specifies whether to forcibly remove an ECS instance where the application is deployed. It is set as true only after the ECS instance expires. In normal cases, this parameter do not need to be specified.\n"}},"requiredInputs":["appId","deployGroup","ecuInfos"],"stateInputs":{"description":"Input properties used for looking up and filtering ApplicationScale resources.\n","properties":{"appId":{"type":"string","description":"The ID of the application that you want to deploy.\n","willReplaceOnChanges":true},"deployGroup":{"type":"string","description":"The ID of the instance group to which you want to add ECS instances to scale out the application.\n","willReplaceOnChanges":true},"eccInfo":{"type":"string","description":"The ecc information of the resource supplied above. The value is formulated as `\u003cecc1,ecc2\u003e`.\n"},"ecuInfos":{"type":"array","items":{"type":"string"},"description":"The IDs of the Elastic Compute Unit (ECU) where you want to deploy the application. Type: List.\n","willReplaceOnChanges":true},"forceStatus":{"type":"boolean","description":"This parameter specifies whether to forcibly remove an ECS instance where the application is deployed. It is set as true only after the ECS instance expires. In normal cases, this parameter do not need to be specified.\n"}},"type":"object"}},"alicloud:edas/cluster:Cluster":{"description":"Provides an EDAS cluster resource, see [What is EDAS Cluster](https://www.alibabacloud.com/help/en/edas/developer-reference/api-edas-2017-08-01-insertcluster).\n\n\u003e **NOTE:** Available since v1.82.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultCluster = new alicloud.edas.Cluster(\"default\", {\n    clusterName: name,\n    clusterType: 2,\n    networkMode: 2,\n    logicalRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    vpcId: defaultNetwork.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_cluster = alicloud.edas.Cluster(\"default\",\n    cluster_name=name,\n    cluster_type=2,\n    network_mode=2,\n    logical_region_id=default.regions[0].id,\n    vpc_id=default_network.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultCluster = new AliCloud.Edas.Cluster(\"default\", new()\n    {\n        ClusterName = name,\n        ClusterType = 2,\n        NetworkMode = 2,\n        LogicalRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        VpcId = defaultNetwork.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/edas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edas.NewCluster(ctx, \"default\", \u0026edas.ClusterArgs{\n\t\t\tClusterName:     pulumi.String(name),\n\t\t\tClusterType:     pulumi.Int(2),\n\t\t\tNetworkMode:     pulumi.Int(2),\n\t\t\tLogicalRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.edas.Cluster;\nimport com.pulumi.alicloud.edas.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .clusterName(name)\n            .clusterType(2)\n            .networkMode(2)\n            .logicalRegionId(default_.regions()[0].id())\n            .vpcId(defaultNetwork.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultCluster:\n    type: alicloud:edas:Cluster\n    name: default\n    properties:\n      clusterName: ${name}\n      clusterType: '2'\n      networkMode: '2'\n      logicalRegionId: ${default.regions[0].id}\n      vpcId: ${defaultNetwork.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEDAS cluster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:edas/cluster:Cluster cluster cluster_id\n```\n\n","properties":{"clusterName":{"type":"string","description":"The name of the cluster that you want to create.\n"},"clusterType":{"type":"integer","description":"The type of the cluster that you want to create. Valid values only: 2: ECS cluster.\n"},"logicalRegionId":{"type":"string","description":"The ID of the namespace where you want to create the application. You can call the ListUserDefineRegion operation to query the namespace ID.\n"},"networkMode":{"type":"integer","description":"The network type of the cluster that you want to create. Valid values: 1: classic network. 2: VPC.\n"},"vpcId":{"type":"string","description":"The ID of the Virtual Private Cloud (VPC) for the cluster.\n"}},"required":["clusterName","clusterType","networkMode"],"inputProperties":{"clusterName":{"type":"string","description":"The name of the cluster that you want to create.\n","willReplaceOnChanges":true},"clusterType":{"type":"integer","description":"The type of the cluster that you want to create. Valid values only: 2: ECS cluster.\n","willReplaceOnChanges":true},"logicalRegionId":{"type":"string","description":"The ID of the namespace where you want to create the application. You can call the ListUserDefineRegion operation to query the namespace ID.\n","willReplaceOnChanges":true},"networkMode":{"type":"integer","description":"The network type of the cluster that you want to create. Valid values: 1: classic network. 2: VPC.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the Virtual Private Cloud (VPC) for the cluster.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterName","clusterType","networkMode"],"stateInputs":{"description":"Input properties used for looking up and filtering Cluster resources.\n","properties":{"clusterName":{"type":"string","description":"The name of the cluster that you want to create.\n","willReplaceOnChanges":true},"clusterType":{"type":"integer","description":"The type of the cluster that you want to create. Valid values only: 2: ECS cluster.\n","willReplaceOnChanges":true},"logicalRegionId":{"type":"string","description":"The ID of the namespace where you want to create the application. You can call the ListUserDefineRegion operation to query the namespace ID.\n","willReplaceOnChanges":true},"networkMode":{"type":"integer","description":"The network type of the cluster that you want to create. Valid values: 1: classic network. 2: VPC.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the Virtual Private Cloud (VPC) for the cluster.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:edas/deployGroup:DeployGroup":{"description":"Provides an EDAS deploy group resource, see [What is EDAS Deploy Group](https://www.alibabacloud.com/help/en/edas/developer-reference/api-edas-2017-08-01-insertdeploygroup).\n\n\u003e **NOTE:** Available since v1.82.0.\n\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: `${name}-${defaultInteger.result}`,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultCluster = new alicloud.edas.Cluster(\"default\", {\n    clusterName: `${name}-${defaultInteger.result}`,\n    clusterType: 2,\n    networkMode: 2,\n    logicalRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    vpcId: defaultNetwork.id,\n});\nconst defaultApplication = new alicloud.edas.Application(\"default\", {\n    applicationName: `${name}-${defaultInteger.result}`,\n    clusterId: defaultCluster.id,\n    packageType: \"JAR\",\n});\nconst defaultDeployGroup = new alicloud.edas.DeployGroup(\"default\", {\n    appId: defaultApplication.id,\n    groupName: `${name}-${defaultInteger.result}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.get_regions(current=True)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=f\"{name}-{default_integer['result']}\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_cluster = alicloud.edas.Cluster(\"default\",\n    cluster_name=f\"{name}-{default_integer['result']}\",\n    cluster_type=2,\n    network_mode=2,\n    logical_region_id=default.regions[0].id,\n    vpc_id=default_network.id)\ndefault_application = alicloud.edas.Application(\"default\",\n    application_name=f\"{name}-{default_integer['result']}\",\n    cluster_id=default_cluster.id,\n    package_type=\"JAR\")\ndefault_deploy_group = alicloud.edas.DeployGroup(\"default\",\n    app_id=default_application.id,\n    group_name=f\"{name}-{default_integer['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = $\"{name}-{defaultInteger.Result}\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultCluster = new AliCloud.Edas.Cluster(\"default\", new()\n    {\n        ClusterName = $\"{name}-{defaultInteger.Result}\",\n        ClusterType = 2,\n        NetworkMode = 2,\n        LogicalRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultApplication = new AliCloud.Edas.Application(\"default\", new()\n    {\n        ApplicationName = $\"{name}-{defaultInteger.Result}\",\n        ClusterId = defaultCluster.Id,\n        PackageType = \"JAR\",\n    });\n\n    var defaultDeployGroup = new AliCloud.Edas.DeployGroup(\"default\", new()\n    {\n        AppId = defaultApplication.Id,\n        GroupName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/edas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := edas.NewCluster(ctx, \"default\", \u0026edas.ClusterArgs{\n\t\t\tClusterName:     pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tClusterType:     pulumi.Int(2),\n\t\t\tNetworkMode:     pulumi.Int(2),\n\t\t\tLogicalRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplication, err := edas.NewApplication(ctx, \"default\", \u0026edas.ApplicationArgs{\n\t\t\tApplicationName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tClusterId:       defaultCluster.ID(),\n\t\t\tPackageType:     pulumi.String(\"JAR\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edas.NewDeployGroup(ctx, \"default\", \u0026edas.DeployGroupArgs{\n\t\t\tAppId:     defaultApplication.ID(),\n\t\t\tGroupName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.edas.Cluster;\nimport com.pulumi.alicloud.edas.ClusterArgs;\nimport com.pulumi.alicloud.edas.Application;\nimport com.pulumi.alicloud.edas.ApplicationArgs;\nimport com.pulumi.alicloud.edas.DeployGroup;\nimport com.pulumi.alicloud.edas.DeployGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .clusterName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .clusterType(2)\n            .networkMode(2)\n            .logicalRegionId(default_.regions()[0].id())\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultApplication = new Application(\"defaultApplication\", ApplicationArgs.builder()\n            .applicationName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .clusterId(defaultCluster.id())\n            .packageType(\"JAR\")\n            .build());\n\n        var defaultDeployGroup = new DeployGroup(\"defaultDeployGroup\", DeployGroupArgs.builder()\n            .appId(defaultApplication.id())\n            .groupName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}-${defaultInteger.result}\n      cidrBlock: 10.4.0.0/16\n  defaultCluster:\n    type: alicloud:edas:Cluster\n    name: default\n    properties:\n      clusterName: ${name}-${defaultInteger.result}\n      clusterType: '2'\n      networkMode: '2'\n      logicalRegionId: ${default.regions[0].id}\n      vpcId: ${defaultNetwork.id}\n  defaultApplication:\n    type: alicloud:edas:Application\n    name: default\n    properties:\n      applicationName: ${name}-${defaultInteger.result}\n      clusterId: ${defaultCluster.id}\n      packageType: JAR\n  defaultDeployGroup:\n    type: alicloud:edas:DeployGroup\n    name: default\n    properties:\n      appId: ${defaultApplication.id}\n      groupName: ${name}-${defaultInteger.result}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEDAS deploy group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:edas/deployGroup:DeployGroup group app_id:group_name:group_id\n```\n\n","properties":{"appId":{"type":"string","description":"The ID of the application that you want to deploy.\n"},"groupName":{"type":"string","description":"The name of the instance group that you want to create.\n"},"groupType":{"type":"integer","description":"The type of the instance group that you want to create. Valid values: 0: Default group. 1: Phased release is disabled for traffic management. 2: Phased release is enabled for traffic management.\n"}},"required":["appId","groupName","groupType"],"inputProperties":{"appId":{"type":"string","description":"The ID of the application that you want to deploy.\n","willReplaceOnChanges":true},"groupName":{"type":"string","description":"The name of the instance group that you want to create.\n","willReplaceOnChanges":true}},"requiredInputs":["appId","groupName"],"stateInputs":{"description":"Input properties used for looking up and filtering DeployGroup resources.\n","properties":{"appId":{"type":"string","description":"The ID of the application that you want to deploy.\n","willReplaceOnChanges":true},"groupName":{"type":"string","description":"The name of the instance group that you want to create.\n","willReplaceOnChanges":true},"groupType":{"type":"integer","description":"The type of the instance group that you want to create. Valid values: 0: Default group. 1: Phased release is disabled for traffic management. 2: Phased release is enabled for traffic management.\n"}},"type":"object"}},"alicloud:edas/instanceClusterAttachment:InstanceClusterAttachment":{"description":"Provides an EDAS instance cluster attachment resource, see [What is EDAS Instance Cluster Attachment](https://www.alibabacloud.com/help/en/edas/developer-reference/api-edas-2017-08-01-installagent).\n\n\u003e **NOTE:** Available since v1.82.0.\n\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultGetZones = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = defaultGetZones.then(defaultGetZones =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: defaultGetZones.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    availabilityZone: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n    instanceName: name,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup.id],\n    vswitchId: defaultSwitch.id,\n});\nconst defaultCluster = new alicloud.edas.Cluster(\"default\", {\n    clusterName: name,\n    clusterType: 2,\n    networkMode: 2,\n    logicalRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstanceClusterAttachment = new alicloud.edas.InstanceClusterAttachment(\"default\", {\n    clusterId: defaultCluster.id,\n    instanceIds: [defaultInstance.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default_get_zones.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    availability_zone=default_get_zones.zones[0].id,\n    instance_name=name,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[default_security_group.id],\n    vswitch_id=default_switch.id)\ndefault_cluster = alicloud.edas.Cluster(\"default\",\n    cluster_name=name,\n    cluster_type=2,\n    network_mode=2,\n    logical_region_id=default.regions[0].id,\n    vpc_id=default_network.id)\ndefault_instance_cluster_attachment = alicloud.edas.InstanceClusterAttachment(\"default\",\n    cluster_id=default_cluster.id,\n    instance_ids=[default_instance.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        AvailabilityZone = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceName = name,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var defaultCluster = new AliCloud.Edas.Cluster(\"default\", new()\n    {\n        ClusterName = name,\n        ClusterType = 2,\n        NetworkMode = 2,\n        LogicalRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstanceClusterAttachment = new AliCloud.Edas.InstanceClusterAttachment(\"default\", new()\n    {\n        ClusterId = defaultCluster.Id,\n        InstanceIds = new[]\n        {\n            defaultInstance.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/edas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(defaultGetZones.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(name),\n\t\t\tImageId:          pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := edas.NewCluster(ctx, \"default\", \u0026edas.ClusterArgs{\n\t\t\tClusterName:     pulumi.String(name),\n\t\t\tClusterType:     pulumi.Int(2),\n\t\t\tNetworkMode:     pulumi.Int(2),\n\t\t\tLogicalRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edas.NewInstanceClusterAttachment(ctx, \"default\", \u0026edas.InstanceClusterAttachmentArgs{\n\t\t\tClusterId: defaultCluster.ID(),\n\t\t\tInstanceIds: pulumi.StringArray{\n\t\t\t\tdefaultInstance.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.edas.Cluster;\nimport com.pulumi.alicloud.edas.ClusterArgs;\nimport com.pulumi.alicloud.edas.InstanceClusterAttachment;\nimport com.pulumi.alicloud.edas.InstanceClusterAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(defaultGetZones.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .availabilityZone(defaultGetZones.zones()[0].id())\n            .instanceName(name)\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.id())\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .clusterName(name)\n            .clusterType(2)\n            .networkMode(2)\n            .logicalRegionId(default_.regions()[0].id())\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstanceClusterAttachment = new InstanceClusterAttachment(\"defaultInstanceClusterAttachment\", InstanceClusterAttachmentArgs.builder()\n            .clusterId(defaultCluster.id())\n            .instanceIds(defaultInstance.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:ecs:Instance\n    name: default\n    properties:\n      availabilityZone: ${defaultGetZones.zones[0].id}\n      instanceName: ${name}\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      securityGroups:\n        - ${defaultSecurityGroup.id}\n      vswitchId: ${defaultSwitch.id}\n  defaultCluster:\n    type: alicloud:edas:Cluster\n    name: default\n    properties:\n      clusterName: ${name}\n      clusterType: '2'\n      networkMode: '2'\n      logicalRegionId: ${default.regions[0].id}\n      vpcId: ${defaultNetwork.id}\n  defaultInstanceClusterAttachment:\n    type: alicloud:edas:InstanceClusterAttachment\n    name: default\n    properties:\n      clusterId: ${defaultCluster.id}\n      instanceIds:\n        - ${defaultInstance.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${defaultGetZones.zones[0].id}\n        cpuCoreCount: 1\n        memorySize: 2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"clusterId":{"type":"string","description":"The ID of the cluster that you want to create the application.\n"},"clusterMemberIds":{"type":"object","additionalProperties":{"type":"string"},"description":"The cluster members map of the resource supplied above. The key is\u003cspan pulumi-lang-nodejs=\" instanceId \" pulumi-lang-dotnet=\" InstanceId \" pulumi-lang-go=\" instanceId \" pulumi-lang-python=\" instance_id \" pulumi-lang-yaml=\" instanceId \" pulumi-lang-java=\" instanceId \"\u003e instance_id \u003c/span\u003eand the value is cluster_member_id.\n"},"ecuMap":{"type":"object","additionalProperties":{"type":"string"},"description":"The ecu map of the resource supplied above. The key is\u003cspan pulumi-lang-nodejs=\" instanceId \" pulumi-lang-dotnet=\" InstanceId \" pulumi-lang-go=\" instanceId \" pulumi-lang-python=\" instance_id \" pulumi-lang-yaml=\" instanceId \" pulumi-lang-java=\" instanceId \"\u003e instance_id \u003c/span\u003eand the value is ecu_id.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"The ID of instance. Type: list.\n"},"statusMap":{"type":"object","additionalProperties":{"type":"integer"},"description":"The status map of the resource supplied above. The key is\u003cspan pulumi-lang-nodejs=\" instanceId \" pulumi-lang-dotnet=\" InstanceId \" pulumi-lang-go=\" instanceId \" pulumi-lang-python=\" instance_id \" pulumi-lang-yaml=\" instanceId \" pulumi-lang-java=\" instanceId \"\u003e instance_id \u003c/span\u003eand the values are 1(running) 0(converting) -1(failed) and -2(offline).\n"}},"required":["clusterId","clusterMemberIds","ecuMap","instanceIds","statusMap"],"inputProperties":{"clusterId":{"type":"string","description":"The ID of the cluster that you want to create the application.\n","willReplaceOnChanges":true},"instanceIds":{"type":"array","items":{"type":"string"},"description":"The ID of instance. Type: list.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","instanceIds"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceClusterAttachment resources.\n","properties":{"clusterId":{"type":"string","description":"The ID of the cluster that you want to create the application.\n","willReplaceOnChanges":true},"clusterMemberIds":{"type":"object","additionalProperties":{"type":"string"},"description":"The cluster members map of the resource supplied above. The key is\u003cspan pulumi-lang-nodejs=\" instanceId \" pulumi-lang-dotnet=\" InstanceId \" pulumi-lang-go=\" instanceId \" pulumi-lang-python=\" instance_id \" pulumi-lang-yaml=\" instanceId \" pulumi-lang-java=\" instanceId \"\u003e instance_id \u003c/span\u003eand the value is cluster_member_id.\n"},"ecuMap":{"type":"object","additionalProperties":{"type":"string"},"description":"The ecu map of the resource supplied above. The key is\u003cspan pulumi-lang-nodejs=\" instanceId \" pulumi-lang-dotnet=\" InstanceId \" pulumi-lang-go=\" instanceId \" pulumi-lang-python=\" instance_id \" pulumi-lang-yaml=\" instanceId \" pulumi-lang-java=\" instanceId \"\u003e instance_id \u003c/span\u003eand the value is ecu_id.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"The ID of instance. Type: list.\n","willReplaceOnChanges":true},"statusMap":{"type":"object","additionalProperties":{"type":"integer"},"description":"The status map of the resource supplied above. The key is\u003cspan pulumi-lang-nodejs=\" instanceId \" pulumi-lang-dotnet=\" InstanceId \" pulumi-lang-go=\" instanceId \" pulumi-lang-python=\" instance_id \" pulumi-lang-yaml=\" instanceId \" pulumi-lang-java=\" instanceId \"\u003e instance_id \u003c/span\u003eand the values are 1(running) 0(converting) -1(failed) and -2(offline).\n"}},"type":"object"}},"alicloud:edas/k8sApplication:K8sApplication":{"description":"Create an EDAS k8s application.For information about EDAS K8s Application and how to use it, see [What is EDAS K8s Application](https://www.alibabacloud.com/help/en/edas/developer-reference/api-edas-2017-08-01-insertk8sapplication). \n\n\u003e **NOTE:** Available since v1.105.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 4,\n    memorySize: 8,\n    kubernetesNodeRole: \"Worker\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    namePrefix: name,\n    clusterSpec: \"ack.pro.small\",\n    workerVswitchIds: [defaultSwitch.id],\n    newNatGateway: true,\n    podCidr: std.cidrsubnet({\n        input: \"10.0.0.0/8\",\n        newbits: 8,\n        netnum: 36,\n    }).then(invoke =\u003e invoke.result),\n    serviceCidr: std.cidrsubnet({\n        input: \"172.16.0.0/16\",\n        newbits: 4,\n        netnum: 7,\n    }).then(invoke =\u003e invoke.result),\n    slbInternetEnabled: true,\n});\nconst defaultNodePool = new alicloud.cs.NodePool(\"default\", {\n    name: name,\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [defaultSwitch.id],\n    instanceTypes: [defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    desiredSize: \"2\",\n});\nconst defaultK8sCluster = new alicloud.edas.K8sCluster(\"default\", {csClusterId: defaultNodePool.clusterId});\nconst defaultK8sApplication = new alicloud.edas.K8sApplication(\"default\", {\n    applicationName: name,\n    clusterId: defaultK8sCluster.id,\n    packageType: \"FatJar\",\n    packageUrl: \"http://edas-bj.oss-cn-beijing.aliyuncs.com/prod/demo/SPRING_CLOUD_PROVIDER.jar\",\n    jdk: \"Open JDK 8\",\n    replicas: 2,\n    readiness: \"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\",\n    liveness: \"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\",\n    applicationDescriotion: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=4,\n    memory_size=8,\n    kubernetes_node_role=\"Worker\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name_prefix=name,\n    cluster_spec=\"ack.pro.small\",\n    worker_vswitch_ids=[default_switch.id],\n    new_nat_gateway=True,\n    pod_cidr=std.cidrsubnet(input=\"10.0.0.0/8\",\n        newbits=8,\n        netnum=36).result,\n    service_cidr=std.cidrsubnet(input=\"172.16.0.0/16\",\n        newbits=4,\n        netnum=7).result,\n    slb_internet_enabled=True)\ndefault_node_pool = alicloud.cs.NodePool(\"default\",\n    name=name,\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[default_switch.id],\n    instance_types=[default_get_instance_types.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    desired_size=\"2\")\ndefault_k8s_cluster = alicloud.edas.K8sCluster(\"default\", cs_cluster_id=default_node_pool.cluster_id)\ndefault_k8s_application = alicloud.edas.K8sApplication(\"default\",\n    application_name=name,\n    cluster_id=default_k8s_cluster.id,\n    package_type=\"FatJar\",\n    package_url=\"http://edas-bj.oss-cn-beijing.aliyuncs.com/prod/demo/SPRING_CLOUD_PROVIDER.jar\",\n    jdk=\"Open JDK 8\",\n    replicas=2,\n    readiness=\"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\",\n    liveness=\"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\",\n    application_descriotion=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 4,\n        MemorySize = 8,\n        KubernetesNodeRole = \"Worker\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        NamePrefix = name,\n        ClusterSpec = \"ack.pro.small\",\n        WorkerVswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        NewNatGateway = true,\n        PodCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"10.0.0.0/8\",\n            Newbits = 8,\n            Netnum = 36,\n        }).Apply(invoke =\u003e invoke.Result),\n        ServiceCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"172.16.0.0/16\",\n            Newbits = 4,\n            Netnum = 7,\n        }).Apply(invoke =\u003e invoke.Result),\n        SlbInternetEnabled = true,\n    });\n\n    var defaultNodePool = new AliCloud.CS.NodePool(\"default\", new()\n    {\n        Name = name,\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        DesiredSize = \"2\",\n    });\n\n    var defaultK8sCluster = new AliCloud.Edas.K8sCluster(\"default\", new()\n    {\n        CsClusterId = defaultNodePool.ClusterId,\n    });\n\n    var defaultK8sApplication = new AliCloud.Edas.K8sApplication(\"default\", new()\n    {\n        ApplicationName = name,\n        ClusterId = defaultK8sCluster.Id,\n        PackageType = \"FatJar\",\n        PackageUrl = \"http://edas-bj.oss-cn-beijing.aliyuncs.com/prod/demo/SPRING_CLOUD_PROVIDER.jar\",\n        Jdk = \"Open JDK 8\",\n        Replicas = 2,\n        Readiness = \"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\",\n        Liveness = \"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\",\n        ApplicationDescriotion = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/edas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone:   pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:       pulumi.IntRef(4),\n\t\t\tMemorySize:         pulumi.Float64Ref(8),\n\t\t\tKubernetesNodeRole: pulumi.StringRef(\"Worker\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"10.0.0.0/8\",\n\t\t\tNewbits: 8,\n\t\t\tNetnum:  36,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet1, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"172.16.0.0/16\",\n\t\t\tNewbits: 4,\n\t\t\tNetnum:  7,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\n\t\t\tNamePrefix:  pulumi.String(name),\n\t\t\tClusterSpec: pulumi.String(\"ack.pro.small\"),\n\t\t\tWorkerVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tNewNatGateway:      pulumi.Bool(true),\n\t\t\tPodCidr:            pulumi.String(invokeCidrsubnet.Result),\n\t\t\tServiceCidr:        pulumi.String(invokeCidrsubnet1.Result),\n\t\t\tSlbInternetEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNodePool, err := cs.NewNodePool(ctx, \"default\", \u0026cs.NodePoolArgs{\n\t\t\tName:      pulumi.String(name),\n\t\t\tClusterId: defaultManagedKubernetes.ID(),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\t},\n\t\t\tSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tSystemDiskSize:     pulumi.Int(40),\n\t\t\tDesiredSize:        pulumi.String(\"2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultK8sCluster, err := edas.NewK8sCluster(ctx, \"default\", \u0026edas.K8sClusterArgs{\n\t\t\tCsClusterId: defaultNodePool.ClusterId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edas.NewK8sApplication(ctx, \"default\", \u0026edas.K8sApplicationArgs{\n\t\t\tApplicationName:        pulumi.String(name),\n\t\t\tClusterId:              defaultK8sCluster.ID(),\n\t\t\tPackageType:            pulumi.String(\"FatJar\"),\n\t\t\tPackageUrl:             pulumi.String(\"http://edas-bj.oss-cn-beijing.aliyuncs.com/prod/demo/SPRING_CLOUD_PROVIDER.jar\"),\n\t\t\tJdk:                    pulumi.String(\"Open JDK 8\"),\n\t\t\tReplicas:               pulumi.Int(2),\n\t\t\tReadiness:              pulumi.String(\"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\"),\n\t\t\tLiveness:               pulumi.String(\"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\"),\n\t\t\tApplicationDescriotion: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.edas.K8sCluster;\nimport com.pulumi.alicloud.edas.K8sClusterArgs;\nimport com.pulumi.alicloud.edas.K8sApplication;\nimport com.pulumi.alicloud.edas.K8sApplicationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(4)\n            .memorySize(8)\n            .kubernetesNodeRole(\"Worker\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .namePrefix(name)\n            .clusterSpec(\"ack.pro.small\")\n            .workerVswitchIds(defaultSwitch.id())\n            .newNatGateway(true)\n            .podCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"10.0.0.0/8\")\n                .newbits(8)\n                .netnum(36)\n                .build()).result())\n            .serviceCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"172.16.0.0/16\")\n                .newbits(4)\n                .netnum(7)\n                .build()).result())\n            .slbInternetEnabled(true)\n            .build());\n\n        var defaultNodePool = new NodePool(\"defaultNodePool\", NodePoolArgs.builder()\n            .name(name)\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(defaultSwitch.id())\n            .instanceTypes(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .desiredSize(\"2\")\n            .build());\n\n        var defaultK8sCluster = new K8sCluster(\"defaultK8sCluster\", K8sClusterArgs.builder()\n            .csClusterId(defaultNodePool.clusterId())\n            .build());\n\n        var defaultK8sApplication = new K8sApplication(\"defaultK8sApplication\", K8sApplicationArgs.builder()\n            .applicationName(name)\n            .clusterId(defaultK8sCluster.id())\n            .packageType(\"FatJar\")\n            .packageUrl(\"http://edas-bj.oss-cn-beijing.aliyuncs.com/prod/demo/SPRING_CLOUD_PROVIDER.jar\")\n            .jdk(\"Open JDK 8\")\n            .replicas(2)\n            .readiness(\"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\")\n            .liveness(\"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\")\n            .applicationDescriotion(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      namePrefix: ${name}\n      clusterSpec: ack.pro.small\n      workerVswitchIds:\n        - ${defaultSwitch.id}\n      newNatGateway: true\n      podCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 10.0.0.0/8\n            newbits: 8\n            netnum: 36\n          return: result\n      serviceCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 172.16.0.0/16\n            newbits: 4\n            netnum: 7\n          return: result\n      slbInternetEnabled: true\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      name: ${name}\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      instanceTypes:\n        - ${defaultGetInstanceTypes.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      desiredSize: 2\n  defaultK8sCluster:\n    type: alicloud:edas:K8sCluster\n    name: default\n    properties:\n      csClusterId: ${defaultNodePool.clusterId}\n  defaultK8sApplication:\n    type: alicloud:edas:K8sApplication\n    name: default\n    properties:\n      applicationName: ${name}\n      clusterId: ${defaultK8sCluster.id}\n      packageType: FatJar\n      packageUrl: http://edas-bj.oss-cn-beijing.aliyuncs.com/prod/demo/SPRING_CLOUD_PROVIDER.jar\n      jdk: Open JDK 8\n      replicas: 2\n      readiness: '{\"failureThreshold\": 3,\"initialDelaySeconds\": 5,\"successThreshold\": 1,\"timeoutSeconds\": 1,\"tcpSocket\":{\"port\":18081}}'\n      liveness: '{\"failureThreshold\": 3,\"initialDelaySeconds\": 5,\"successThreshold\": 1,\"timeoutSeconds\": 1,\"tcpSocket\":{\"port\":18081}}'\n      applicationDescriotion: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 4\n        memorySize: 8\n        kubernetesNodeRole: Worker\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEDAS k8s application can be imported as below, e.g.\n\n```sh\n$ pulumi import alicloud:edas/k8sApplication:K8sApplication new_k8s_application application_id\n```\n\n","properties":{"applicationDescriotion":{"type":"string","description":"The description of the application\n"},"applicationName":{"type":"string","description":"The name of the application you want to create. Must start with character,supports numbers, letters and dashes (-), supports up to 36 characters\n"},"clusterId":{"type":"string","description":"The ID of the alicloud container service kubernetes cluster that you want to import to. You can call the ListCluster operation to query.\n"},"command":{"type":"string","description":"The set command, if set, will replace the startup command in the mirror when the mirror is started.\n"},"commandArgs":{"type":"array","items":{"type":"string"},"description":"Used in combination with the command, the parameter of the command is a JsonArray string in the format: `[{\"argument\":\"-c\"},{\"argument\":\"test\"}]`. Among them, -c and test are two parameters that need to be set.\n"},"edasContainerVersion":{"type":"string","description":"EDAS-Container version that the deployed package depends on. Image does not support this parameter.\n"},"envs":{"type":"object","additionalProperties":{"type":"string"},"description":"Deployment environment variables, the format must conform to the JSON object array, such as: `{\"name\":\"x\",\"value\":\"y\"},{\"name\":\"x2\",\"value\":\"y2\"}`, If you want to cancel the configuration, you need to set an empty JSON array \"\" to indicate no configuration.\n"},"imageUrl":{"type":"string","description":"Mirror address. When the\u003cspan pulumi-lang-nodejs=\" packageType \" pulumi-lang-dotnet=\" PackageType \" pulumi-lang-go=\" packageType \" pulumi-lang-python=\" package_type \" pulumi-lang-yaml=\" packageType \" pulumi-lang-java=\" packageType \"\u003e package_type \u003c/span\u003eis set to 'Image', this parameter item is required.\n"},"internetSlbId":{"type":"string","description":"Public network SLB ID. If not configured, EDAS will automatically purchase a new SLB for the user.\nIt has been deprecated, and new resource 'alicloud_edas_k8s_slb_attachment' replaces it.\n","deprecationMessage":"Field 'internet_slb_id' has been deprecated, New Resource 'alicloud_edas_k8s_slb_attachment' replaces it"},"internetSlbPort":{"type":"integer","description":"The public network SLB front-end port, range 1~65535. It has been deprecated and new resource 'alicloud_edas_k8s_slb_attachment' replaces it.\n","deprecationMessage":"Field 'internet_slb_port' has been deprecated, New Resource 'alicloud_edas_k8s_slb_attachment' replaces it"},"internetSlbProtocol":{"type":"string","description":"The public network SLB protocol supports TCP, HTTP and HTTPS protocols. It has been deprecated, and new resource 'alicloud_edas_k8s_slb_attachment' replaces it.\n","deprecationMessage":"Field 'internet_slb_protocol' has been deprecated, New Resource 'alicloud_edas_k8s_slb_attachment' replaces it"},"internetTargetPort":{"type":"integer","description":"The private SLB back-end port, is also the service port of the application, ranging from 1 to 65535.\nIt has been deprecated, and new resource 'alicloud_edas_k8s_slb_attachment' replaces it.\n","deprecationMessage":"Field 'internet_target_port' has been deprecated, New Resource 'alicloud_edas_k8s_slb_attachment' replaces it"},"jdk":{"type":"string","description":"The JDK version that the deployed package depends on. The optional parameter values are Open JDK 7 and Open JDK 8. Image does not support this parameter.\n"},"limitMCpu":{"type":"integer","description":"The CPU quota of the application instance during application operation. Unit: Number of millcores, set to 0 means unlimited, similar to request_cpu.\n"},"limitMem":{"type":"integer","description":"The memory limit of the application instance during application operation, unit: M.\n"},"liveness":{"type":"string","description":"Container survival status monitoring, format such as: `{\"failureThreshold\": 3,\"initialDelaySeconds\": 5,\"successThreshold\": 1,\"timeoutSeconds\": 1,\"tcpSocket\":{\"host\":\"\", \"port\":8080} }`.\n"},"localVolume":{"type":"string","description":"The configuration of the host file mounted to the container. For example: `[{\"type\":\"\",\"nodePath\":\"/localfiles\",\"mountPath\":\"/app/files\"},{\"type\":\"Directory\",\"nodePath\":\"/mnt\", \"mountPath\":\"/app/storage\"}]`. Among them, nodePath is the host path; mountPath is the path in the container; type is the mount type.\n"},"logicalRegionId":{"type":"string","description":"The ID corresponding to the EDAS namespace, the non-default namespace must be filled in.\n"},"mountDescs":{"type":"string","description":"Mount configuration description, as a serialized JSON. For example: `[{\"nasPath\": \"/k8s\",\"mountPath\": \"/mnt\"},{\"nasPath\": \"/files\",\"mountPath\": \"/app/files\"}]`. Among them, nasPath refers to the file storage path; mountPath refers to the path mounted in the container.\n"},"namespace":{"type":"string","description":"The namespace of the K8s cluster, it will determine which K8s namespace your application is deployed in. The default is 'default'.\n"},"nasId":{"type":"string","description":"The ID of the mounted NAS must be in the same region as the cluster. It must have an available mount point creation quota, or its mount point must be on a switch in the VPC. If it is not filled in and the mountDescs field exists, a NAS will be automatically purchased and mounted on the switch in the VPC by default.\n"},"packageType":{"type":"string","description":"Application package type. Optional parameter values include: FatJar, WAR and Image.\n"},"packageUrl":{"type":"string","description":"The url of the package to deploy.Applications deployed through FatJar or WAR packages need to configure it.\n"},"packageVersion":{"type":"string","description":"The version number of the deployment package. WAR and FatJar types are required. Please customize its meaning.\n"},"postStart":{"type":"string","description":"Execute script after startup\n"},"preStop":{"type":"string","description":"Execute script before stopping\n"},"readiness":{"type":"string","description":"Container service status check. If the check fails, the traffic passing through K8s Service will not be transferred to the container. The format is: `{\"failureThreshold\": 3,\"initialDelaySeconds\": 5,\"successThreshold\": 1,\"timeoutSeconds\": 1, \"httpGet\": {\"path\": \"/consumer\",\"port\": 8080,\"scheme\": \"HTTP\",\"httpHeaders\": [{\"name\": \"test\",\"value\": \"testvalue\"} ]}}`.\n"},"replicas":{"type":"integer","description":"Number of application instances.\n"},"requestsMCpu":{"type":"integer","description":"When the application is created, the CPU quota of the application instance, unit: number of millcores, similar to request_cpu\n"},"requestsMem":{"type":"integer","description":"When the application is created, the memory limit of the application instance, unit: M. When set to 0, it means unlimited.\n"},"webContainer":{"type":"string","description":"The Tomcat version that the deployment package depends on. Applicable to Spring Cloud and Dubbo applications deployed through WAR packages. Image does not support this parameter.\n"}},"required":["applicationName","clusterId","packageVersion"],"inputProperties":{"applicationDescriotion":{"type":"string","description":"The description of the application\n"},"applicationName":{"type":"string","description":"The name of the application you want to create. Must start with character,supports numbers, letters and dashes (-), supports up to 36 characters\n","willReplaceOnChanges":true},"clusterId":{"type":"string","description":"The ID of the alicloud container service kubernetes cluster that you want to import to. You can call the ListCluster operation to query.\n","willReplaceOnChanges":true},"command":{"type":"string","description":"The set command, if set, will replace the startup command in the mirror when the mirror is started.\n"},"commandArgs":{"type":"array","items":{"type":"string"},"description":"Used in combination with the command, the parameter of the command is a JsonArray string in the format: `[{\"argument\":\"-c\"},{\"argument\":\"test\"}]`. Among them, -c and test are two parameters that need to be set.\n"},"edasContainerVersion":{"type":"string","description":"EDAS-Container version that the deployed package depends on. Image does not support this parameter.\n"},"envs":{"type":"object","additionalProperties":{"type":"string"},"description":"Deployment environment variables, the format must conform to the JSON object array, such as: `{\"name\":\"x\",\"value\":\"y\"},{\"name\":\"x2\",\"value\":\"y2\"}`, If you want to cancel the configuration, you need to set an empty JSON array \"\" to indicate no configuration.\n"},"imageUrl":{"type":"string","description":"Mirror address. When the\u003cspan pulumi-lang-nodejs=\" packageType \" pulumi-lang-dotnet=\" PackageType \" pulumi-lang-go=\" packageType \" pulumi-lang-python=\" package_type \" pulumi-lang-yaml=\" packageType \" pulumi-lang-java=\" packageType \"\u003e package_type \u003c/span\u003eis set to 'Image', this parameter item is required.\n"},"internetSlbId":{"type":"string","description":"Public network SLB ID. If not configured, EDAS will automatically purchase a new SLB for the user.\nIt has been deprecated, and new resource 'alicloud_edas_k8s_slb_attachment' replaces it.\n","deprecationMessage":"Field 'internet_slb_id' has been deprecated, New Resource 'alicloud_edas_k8s_slb_attachment' replaces it","willReplaceOnChanges":true},"internetSlbPort":{"type":"integer","description":"The public network SLB front-end port, range 1~65535. It has been deprecated and new resource 'alicloud_edas_k8s_slb_attachment' replaces it.\n","deprecationMessage":"Field 'internet_slb_port' has been deprecated, New Resource 'alicloud_edas_k8s_slb_attachment' replaces it","willReplaceOnChanges":true},"internetSlbProtocol":{"type":"string","description":"The public network SLB protocol supports TCP, HTTP and HTTPS protocols. It has been deprecated, and new resource 'alicloud_edas_k8s_slb_attachment' replaces it.\n","deprecationMessage":"Field 'internet_slb_protocol' has been deprecated, New Resource 'alicloud_edas_k8s_slb_attachment' replaces it","willReplaceOnChanges":true},"internetTargetPort":{"type":"integer","description":"The private SLB back-end port, is also the service port of the application, ranging from 1 to 65535.\nIt has been deprecated, and new resource 'alicloud_edas_k8s_slb_attachment' replaces it.\n","deprecationMessage":"Field 'internet_target_port' has been deprecated, New Resource 'alicloud_edas_k8s_slb_attachment' replaces it","willReplaceOnChanges":true},"jdk":{"type":"string","description":"The JDK version that the deployed package depends on. The optional parameter values are Open JDK 7 and Open JDK 8. Image does not support this parameter.\n"},"limitMCpu":{"type":"integer","description":"The CPU quota of the application instance during application operation. Unit: Number of millcores, set to 0 means unlimited, similar to request_cpu.\n"},"limitMem":{"type":"integer","description":"The memory limit of the application instance during application operation, unit: M.\n"},"liveness":{"type":"string","description":"Container survival status monitoring, format such as: `{\"failureThreshold\": 3,\"initialDelaySeconds\": 5,\"successThreshold\": 1,\"timeoutSeconds\": 1,\"tcpSocket\":{\"host\":\"\", \"port\":8080} }`.\n"},"localVolume":{"type":"string","description":"The configuration of the host file mounted to the container. For example: `[{\"type\":\"\",\"nodePath\":\"/localfiles\",\"mountPath\":\"/app/files\"},{\"type\":\"Directory\",\"nodePath\":\"/mnt\", \"mountPath\":\"/app/storage\"}]`. Among them, nodePath is the host path; mountPath is the path in the container; type is the mount type.\n"},"logicalRegionId":{"type":"string","description":"The ID corresponding to the EDAS namespace, the non-default namespace must be filled in.\n"},"mountDescs":{"type":"string","description":"Mount configuration description, as a serialized JSON. For example: `[{\"nasPath\": \"/k8s\",\"mountPath\": \"/mnt\"},{\"nasPath\": \"/files\",\"mountPath\": \"/app/files\"}]`. Among them, nasPath refers to the file storage path; mountPath refers to the path mounted in the container.\n"},"namespace":{"type":"string","description":"The namespace of the K8s cluster, it will determine which K8s namespace your application is deployed in. The default is 'default'.\n"},"nasId":{"type":"string","description":"The ID of the mounted NAS must be in the same region as the cluster. It must have an available mount point creation quota, or its mount point must be on a switch in the VPC. If it is not filled in and the mountDescs field exists, a NAS will be automatically purchased and mounted on the switch in the VPC by default.\n"},"packageType":{"type":"string","description":"Application package type. Optional parameter values include: FatJar, WAR and Image.\n","willReplaceOnChanges":true},"packageUrl":{"type":"string","description":"The url of the package to deploy.Applications deployed through FatJar or WAR packages need to configure it.\n"},"packageVersion":{"type":"string","description":"The version number of the deployment package. WAR and FatJar types are required. Please customize its meaning.\n"},"postStart":{"type":"string","description":"Execute script after startup\n"},"preStop":{"type":"string","description":"Execute script before stopping\n"},"readiness":{"type":"string","description":"Container service status check. If the check fails, the traffic passing through K8s Service will not be transferred to the container. The format is: `{\"failureThreshold\": 3,\"initialDelaySeconds\": 5,\"successThreshold\": 1,\"timeoutSeconds\": 1, \"httpGet\": {\"path\": \"/consumer\",\"port\": 8080,\"scheme\": \"HTTP\",\"httpHeaders\": [{\"name\": \"test\",\"value\": \"testvalue\"} ]}}`.\n"},"replicas":{"type":"integer","description":"Number of application instances.\n"},"requestsMCpu":{"type":"integer","description":"When the application is created, the CPU quota of the application instance, unit: number of millcores, similar to request_cpu\n"},"requestsMem":{"type":"integer","description":"When the application is created, the memory limit of the application instance, unit: M. When set to 0, it means unlimited.\n"},"webContainer":{"type":"string","description":"The Tomcat version that the deployment package depends on. Applicable to Spring Cloud and Dubbo applications deployed through WAR packages. Image does not support this parameter.\n"}},"requiredInputs":["applicationName","clusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering K8sApplication resources.\n","properties":{"applicationDescriotion":{"type":"string","description":"The description of the application\n"},"applicationName":{"type":"string","description":"The name of the application you want to create. Must start with character,supports numbers, letters and dashes (-), supports up to 36 characters\n","willReplaceOnChanges":true},"clusterId":{"type":"string","description":"The ID of the alicloud container service kubernetes cluster that you want to import to. You can call the ListCluster operation to query.\n","willReplaceOnChanges":true},"command":{"type":"string","description":"The set command, if set, will replace the startup command in the mirror when the mirror is started.\n"},"commandArgs":{"type":"array","items":{"type":"string"},"description":"Used in combination with the command, the parameter of the command is a JsonArray string in the format: `[{\"argument\":\"-c\"},{\"argument\":\"test\"}]`. Among them, -c and test are two parameters that need to be set.\n"},"edasContainerVersion":{"type":"string","description":"EDAS-Container version that the deployed package depends on. Image does not support this parameter.\n"},"envs":{"type":"object","additionalProperties":{"type":"string"},"description":"Deployment environment variables, the format must conform to the JSON object array, such as: `{\"name\":\"x\",\"value\":\"y\"},{\"name\":\"x2\",\"value\":\"y2\"}`, If you want to cancel the configuration, you need to set an empty JSON array \"\" to indicate no configuration.\n"},"imageUrl":{"type":"string","description":"Mirror address. When the\u003cspan pulumi-lang-nodejs=\" packageType \" pulumi-lang-dotnet=\" PackageType \" pulumi-lang-go=\" packageType \" pulumi-lang-python=\" package_type \" pulumi-lang-yaml=\" packageType \" pulumi-lang-java=\" packageType \"\u003e package_type \u003c/span\u003eis set to 'Image', this parameter item is required.\n"},"internetSlbId":{"type":"string","description":"Public network SLB ID. If not configured, EDAS will automatically purchase a new SLB for the user.\nIt has been deprecated, and new resource 'alicloud_edas_k8s_slb_attachment' replaces it.\n","deprecationMessage":"Field 'internet_slb_id' has been deprecated, New Resource 'alicloud_edas_k8s_slb_attachment' replaces it","willReplaceOnChanges":true},"internetSlbPort":{"type":"integer","description":"The public network SLB front-end port, range 1~65535. It has been deprecated and new resource 'alicloud_edas_k8s_slb_attachment' replaces it.\n","deprecationMessage":"Field 'internet_slb_port' has been deprecated, New Resource 'alicloud_edas_k8s_slb_attachment' replaces it","willReplaceOnChanges":true},"internetSlbProtocol":{"type":"string","description":"The public network SLB protocol supports TCP, HTTP and HTTPS protocols. It has been deprecated, and new resource 'alicloud_edas_k8s_slb_attachment' replaces it.\n","deprecationMessage":"Field 'internet_slb_protocol' has been deprecated, New Resource 'alicloud_edas_k8s_slb_attachment' replaces it","willReplaceOnChanges":true},"internetTargetPort":{"type":"integer","description":"The private SLB back-end port, is also the service port of the application, ranging from 1 to 65535.\nIt has been deprecated, and new resource 'alicloud_edas_k8s_slb_attachment' replaces it.\n","deprecationMessage":"Field 'internet_target_port' has been deprecated, New Resource 'alicloud_edas_k8s_slb_attachment' replaces it","willReplaceOnChanges":true},"jdk":{"type":"string","description":"The JDK version that the deployed package depends on. The optional parameter values are Open JDK 7 and Open JDK 8. Image does not support this parameter.\n"},"limitMCpu":{"type":"integer","description":"The CPU quota of the application instance during application operation. Unit: Number of millcores, set to 0 means unlimited, similar to request_cpu.\n"},"limitMem":{"type":"integer","description":"The memory limit of the application instance during application operation, unit: M.\n"},"liveness":{"type":"string","description":"Container survival status monitoring, format such as: `{\"failureThreshold\": 3,\"initialDelaySeconds\": 5,\"successThreshold\": 1,\"timeoutSeconds\": 1,\"tcpSocket\":{\"host\":\"\", \"port\":8080} }`.\n"},"localVolume":{"type":"string","description":"The configuration of the host file mounted to the container. For example: `[{\"type\":\"\",\"nodePath\":\"/localfiles\",\"mountPath\":\"/app/files\"},{\"type\":\"Directory\",\"nodePath\":\"/mnt\", \"mountPath\":\"/app/storage\"}]`. Among them, nodePath is the host path; mountPath is the path in the container; type is the mount type.\n"},"logicalRegionId":{"type":"string","description":"The ID corresponding to the EDAS namespace, the non-default namespace must be filled in.\n"},"mountDescs":{"type":"string","description":"Mount configuration description, as a serialized JSON. For example: `[{\"nasPath\": \"/k8s\",\"mountPath\": \"/mnt\"},{\"nasPath\": \"/files\",\"mountPath\": \"/app/files\"}]`. Among them, nasPath refers to the file storage path; mountPath refers to the path mounted in the container.\n"},"namespace":{"type":"string","description":"The namespace of the K8s cluster, it will determine which K8s namespace your application is deployed in. The default is 'default'.\n"},"nasId":{"type":"string","description":"The ID of the mounted NAS must be in the same region as the cluster. It must have an available mount point creation quota, or its mount point must be on a switch in the VPC. If it is not filled in and the mountDescs field exists, a NAS will be automatically purchased and mounted on the switch in the VPC by default.\n"},"packageType":{"type":"string","description":"Application package type. Optional parameter values include: FatJar, WAR and Image.\n","willReplaceOnChanges":true},"packageUrl":{"type":"string","description":"The url of the package to deploy.Applications deployed through FatJar or WAR packages need to configure it.\n"},"packageVersion":{"type":"string","description":"The version number of the deployment package. WAR and FatJar types are required. Please customize its meaning.\n"},"postStart":{"type":"string","description":"Execute script after startup\n"},"preStop":{"type":"string","description":"Execute script before stopping\n"},"readiness":{"type":"string","description":"Container service status check. If the check fails, the traffic passing through K8s Service will not be transferred to the container. The format is: `{\"failureThreshold\": 3,\"initialDelaySeconds\": 5,\"successThreshold\": 1,\"timeoutSeconds\": 1, \"httpGet\": {\"path\": \"/consumer\",\"port\": 8080,\"scheme\": \"HTTP\",\"httpHeaders\": [{\"name\": \"test\",\"value\": \"testvalue\"} ]}}`.\n"},"replicas":{"type":"integer","description":"Number of application instances.\n"},"requestsMCpu":{"type":"integer","description":"When the application is created, the CPU quota of the application instance, unit: number of millcores, similar to request_cpu\n"},"requestsMem":{"type":"integer","description":"When the application is created, the memory limit of the application instance, unit: M. When set to 0, it means unlimited.\n"},"webContainer":{"type":"string","description":"The Tomcat version that the deployment package depends on. Applicable to Spring Cloud and Dubbo applications deployed through WAR packages. Image does not support this parameter.\n"}},"type":"object"}},"alicloud:edas/k8sCluster:K8sCluster":{"description":"Provides an EDAS K8s cluster resource. For information about EDAS K8s Cluster and how to use it, see[What is EDAS K8s Cluster](https://www.alibabacloud.com/help/en/doc-detail/85108.htm).\n\n\u003e **NOTE:** Available since v1.93.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 4,\n    memorySize: 8,\n    kubernetesNodeRole: \"Worker\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    namePrefix: name,\n    clusterSpec: \"ack.pro.small\",\n    workerVswitchIds: [defaultSwitch.id],\n    newNatGateway: true,\n    podCidr: std.cidrsubnet({\n        input: \"10.0.0.0/8\",\n        newbits: 8,\n        netnum: 36,\n    }).then(invoke =\u003e invoke.result),\n    serviceCidr: std.cidrsubnet({\n        input: \"172.16.0.0/16\",\n        newbits: 4,\n        netnum: 7,\n    }).then(invoke =\u003e invoke.result),\n    slbInternetEnabled: true,\n});\nconst defaultNodePool = new alicloud.cs.NodePool(\"default\", {\n    name: name,\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [defaultSwitch.id],\n    instanceTypes: [defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    desiredSize: \"2\",\n});\nconst defaultK8sCluster = new alicloud.edas.K8sCluster(\"default\", {csClusterId: defaultNodePool.clusterId});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=4,\n    memory_size=8,\n    kubernetes_node_role=\"Worker\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name_prefix=name,\n    cluster_spec=\"ack.pro.small\",\n    worker_vswitch_ids=[default_switch.id],\n    new_nat_gateway=True,\n    pod_cidr=std.cidrsubnet(input=\"10.0.0.0/8\",\n        newbits=8,\n        netnum=36).result,\n    service_cidr=std.cidrsubnet(input=\"172.16.0.0/16\",\n        newbits=4,\n        netnum=7).result,\n    slb_internet_enabled=True)\ndefault_node_pool = alicloud.cs.NodePool(\"default\",\n    name=name,\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[default_switch.id],\n    instance_types=[default_get_instance_types.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    desired_size=\"2\")\ndefault_k8s_cluster = alicloud.edas.K8sCluster(\"default\", cs_cluster_id=default_node_pool.cluster_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 4,\n        MemorySize = 8,\n        KubernetesNodeRole = \"Worker\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        NamePrefix = name,\n        ClusterSpec = \"ack.pro.small\",\n        WorkerVswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        NewNatGateway = true,\n        PodCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"10.0.0.0/8\",\n            Newbits = 8,\n            Netnum = 36,\n        }).Apply(invoke =\u003e invoke.Result),\n        ServiceCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"172.16.0.0/16\",\n            Newbits = 4,\n            Netnum = 7,\n        }).Apply(invoke =\u003e invoke.Result),\n        SlbInternetEnabled = true,\n    });\n\n    var defaultNodePool = new AliCloud.CS.NodePool(\"default\", new()\n    {\n        Name = name,\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        DesiredSize = \"2\",\n    });\n\n    var defaultK8sCluster = new AliCloud.Edas.K8sCluster(\"default\", new()\n    {\n        CsClusterId = defaultNodePool.ClusterId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/edas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone:   pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:       pulumi.IntRef(4),\n\t\t\tMemorySize:         pulumi.Float64Ref(8),\n\t\t\tKubernetesNodeRole: pulumi.StringRef(\"Worker\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"10.0.0.0/8\",\n\t\t\tNewbits: 8,\n\t\t\tNetnum:  36,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet1, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"172.16.0.0/16\",\n\t\t\tNewbits: 4,\n\t\t\tNetnum:  7,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\n\t\t\tNamePrefix:  pulumi.String(name),\n\t\t\tClusterSpec: pulumi.String(\"ack.pro.small\"),\n\t\t\tWorkerVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tNewNatGateway:      pulumi.Bool(true),\n\t\t\tPodCidr:            pulumi.String(invokeCidrsubnet.Result),\n\t\t\tServiceCidr:        pulumi.String(invokeCidrsubnet1.Result),\n\t\t\tSlbInternetEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNodePool, err := cs.NewNodePool(ctx, \"default\", \u0026cs.NodePoolArgs{\n\t\t\tName:      pulumi.String(name),\n\t\t\tClusterId: defaultManagedKubernetes.ID(),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\t},\n\t\t\tSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tSystemDiskSize:     pulumi.Int(40),\n\t\t\tDesiredSize:        pulumi.String(\"2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edas.NewK8sCluster(ctx, \"default\", \u0026edas.K8sClusterArgs{\n\t\t\tCsClusterId: defaultNodePool.ClusterId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.edas.K8sCluster;\nimport com.pulumi.alicloud.edas.K8sClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(4)\n            .memorySize(8)\n            .kubernetesNodeRole(\"Worker\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .namePrefix(name)\n            .clusterSpec(\"ack.pro.small\")\n            .workerVswitchIds(defaultSwitch.id())\n            .newNatGateway(true)\n            .podCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"10.0.0.0/8\")\n                .newbits(8)\n                .netnum(36)\n                .build()).result())\n            .serviceCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"172.16.0.0/16\")\n                .newbits(4)\n                .netnum(7)\n                .build()).result())\n            .slbInternetEnabled(true)\n            .build());\n\n        var defaultNodePool = new NodePool(\"defaultNodePool\", NodePoolArgs.builder()\n            .name(name)\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(defaultSwitch.id())\n            .instanceTypes(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .desiredSize(\"2\")\n            .build());\n\n        var defaultK8sCluster = new K8sCluster(\"defaultK8sCluster\", K8sClusterArgs.builder()\n            .csClusterId(defaultNodePool.clusterId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      namePrefix: ${name}\n      clusterSpec: ack.pro.small\n      workerVswitchIds:\n        - ${defaultSwitch.id}\n      newNatGateway: true\n      podCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 10.0.0.0/8\n            newbits: 8\n            netnum: 36\n          return: result\n      serviceCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 172.16.0.0/16\n            newbits: 4\n            netnum: 7\n          return: result\n      slbInternetEnabled: true\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      name: ${name}\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      instanceTypes:\n        - ${defaultGetInstanceTypes.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      desiredSize: 2\n  defaultK8sCluster:\n    type: alicloud:edas:K8sCluster\n    name: default\n    properties:\n      csClusterId: ${defaultNodePool.clusterId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 4\n        memorySize: 8\n        kubernetesNodeRole: Worker\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEDAS cluster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:edas/k8sCluster:K8sCluster cluster cluster_id\n```\n\n","properties":{"clusterImportStatus":{"type":"integer","description":"The import status of cluster: \n\u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: success.\n\u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: failed.\n\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: importing.\n\u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e: deleted.\n"},"clusterName":{"type":"string","description":"The name of the cluster that you want to create.\n"},"clusterType":{"type":"integer","description":"The type of the cluster that you want to create. Valid values only: 5: K8s cluster.\n"},"csClusterId":{"type":"string","description":"The ID of the alicloud container service kubernetes cluster that you want to import.\n"},"namespaceId":{"type":"string","description":"The ID of the namespace where you want to import. You can call the [ListUserDefineRegion](https://www.alibabacloud.com/help/en/doc-detail/149377.htm?spm=a2c63.p38356.879954.34.331054faK2yNvC#doc-api-Edas-ListUserDefineRegion) operation to query the namespace ID.\n"},"networkMode":{"type":"integer","description":"The network type of the cluster that you want to create. Valid values: 1: classic network. 2: VPC.\n"},"vpcId":{"type":"string","description":"The ID of the Virtual Private Cloud (VPC) for the cluster.\n"}},"required":["clusterImportStatus","clusterName","clusterType","csClusterId","networkMode","vpcId"],"inputProperties":{"csClusterId":{"type":"string","description":"The ID of the alicloud container service kubernetes cluster that you want to import.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The ID of the namespace where you want to import. You can call the [ListUserDefineRegion](https://www.alibabacloud.com/help/en/doc-detail/149377.htm?spm=a2c63.p38356.879954.34.331054faK2yNvC#doc-api-Edas-ListUserDefineRegion) operation to query the namespace ID.\n","willReplaceOnChanges":true}},"requiredInputs":["csClusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering K8sCluster resources.\n","properties":{"clusterImportStatus":{"type":"integer","description":"The import status of cluster: \n\u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: success.\n\u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: failed.\n\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: importing.\n\u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e: deleted.\n"},"clusterName":{"type":"string","description":"The name of the cluster that you want to create.\n"},"clusterType":{"type":"integer","description":"The type of the cluster that you want to create. Valid values only: 5: K8s cluster.\n"},"csClusterId":{"type":"string","description":"The ID of the alicloud container service kubernetes cluster that you want to import.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The ID of the namespace where you want to import. You can call the [ListUserDefineRegion](https://www.alibabacloud.com/help/en/doc-detail/149377.htm?spm=a2c63.p38356.879954.34.331054faK2yNvC#doc-api-Edas-ListUserDefineRegion) operation to query the namespace ID.\n","willReplaceOnChanges":true},"networkMode":{"type":"integer","description":"The network type of the cluster that you want to create. Valid values: 1: classic network. 2: VPC.\n"},"vpcId":{"type":"string","description":"The ID of the Virtual Private Cloud (VPC) for the cluster.\n"}},"type":"object"}},"alicloud:edas/k8sSlbAttachment:K8sSlbAttachment":{"description":"Binds SLBs to an EDAS k8s application.\n\nFor information about EDAS k8s slb attachment and how to use it, see [What is k8s slb attachment](https://www.alibabacloud.com/help/en/enterprise-distributed-application-service/latest/bindk8sslb).\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 4,\n    memorySize: 8,\n    kubernetesNodeRole: \"Worker\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    namePrefix: name,\n    clusterSpec: \"ack.pro.small\",\n    workerVswitchIds: [defaultSwitch.id],\n    newNatGateway: true,\n    podCidr: std.cidrsubnet({\n        input: \"10.0.0.0/8\",\n        newbits: 8,\n        netnum: 36,\n    }).then(invoke =\u003e invoke.result),\n    serviceCidr: std.cidrsubnet({\n        input: \"172.16.0.0/16\",\n        newbits: 4,\n        netnum: 7,\n    }).then(invoke =\u003e invoke.result),\n    slbInternetEnabled: true,\n});\nconst defaultNodePool = new alicloud.cs.NodePool(\"default\", {\n    name: name,\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [defaultSwitch.id],\n    instanceTypes: [defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    desiredSize: \"2\",\n});\nconst defaultK8sCluster = new alicloud.edas.K8sCluster(\"default\", {csClusterId: defaultNodePool.clusterId});\nconst defaultK8sApplication = new alicloud.edas.K8sApplication(\"default\", {\n    applicationName: name,\n    clusterId: defaultK8sCluster.id,\n    packageType: \"FatJar\",\n    packageUrl: \"http://edas-bj.oss-cn-beijing.aliyuncs.com/prod/demo/SPRING_CLOUD_PROVIDER.jar\",\n    jdk: \"Open JDK 8\",\n    replicas: 2,\n    readiness: \"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\",\n    liveness: \"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\",\n    applicationDescriotion: name,\n});\nconst defaultK8sSlbAttachment = new alicloud.edas.K8sSlbAttachment(\"default\", {\n    appId: defaultK8sApplication.id,\n    slbConfigs: [{\n        type: \"internet\",\n        scheduler: \"rr\",\n        portMappings: [{\n            loadbalancerProtocol: \"TCP\",\n            servicePort: {\n                port: 80,\n                protocol: \"TCP\",\n                targetPort: 8080,\n            },\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=4,\n    memory_size=8,\n    kubernetes_node_role=\"Worker\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name_prefix=name,\n    cluster_spec=\"ack.pro.small\",\n    worker_vswitch_ids=[default_switch.id],\n    new_nat_gateway=True,\n    pod_cidr=std.cidrsubnet(input=\"10.0.0.0/8\",\n        newbits=8,\n        netnum=36).result,\n    service_cidr=std.cidrsubnet(input=\"172.16.0.0/16\",\n        newbits=4,\n        netnum=7).result,\n    slb_internet_enabled=True)\ndefault_node_pool = alicloud.cs.NodePool(\"default\",\n    name=name,\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[default_switch.id],\n    instance_types=[default_get_instance_types.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    desired_size=\"2\")\ndefault_k8s_cluster = alicloud.edas.K8sCluster(\"default\", cs_cluster_id=default_node_pool.cluster_id)\ndefault_k8s_application = alicloud.edas.K8sApplication(\"default\",\n    application_name=name,\n    cluster_id=default_k8s_cluster.id,\n    package_type=\"FatJar\",\n    package_url=\"http://edas-bj.oss-cn-beijing.aliyuncs.com/prod/demo/SPRING_CLOUD_PROVIDER.jar\",\n    jdk=\"Open JDK 8\",\n    replicas=2,\n    readiness=\"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\",\n    liveness=\"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\",\n    application_descriotion=name)\ndefault_k8s_slb_attachment = alicloud.edas.K8sSlbAttachment(\"default\",\n    app_id=default_k8s_application.id,\n    slb_configs=[{\n        \"type\": \"internet\",\n        \"scheduler\": \"rr\",\n        \"port_mappings\": [{\n            \"loadbalancer_protocol\": \"TCP\",\n            \"service_port\": {\n                \"port\": 80,\n                \"protocol\": \"TCP\",\n                \"target_port\": 8080,\n            },\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 4,\n        MemorySize = 8,\n        KubernetesNodeRole = \"Worker\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        NamePrefix = name,\n        ClusterSpec = \"ack.pro.small\",\n        WorkerVswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        NewNatGateway = true,\n        PodCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"10.0.0.0/8\",\n            Newbits = 8,\n            Netnum = 36,\n        }).Apply(invoke =\u003e invoke.Result),\n        ServiceCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"172.16.0.0/16\",\n            Newbits = 4,\n            Netnum = 7,\n        }).Apply(invoke =\u003e invoke.Result),\n        SlbInternetEnabled = true,\n    });\n\n    var defaultNodePool = new AliCloud.CS.NodePool(\"default\", new()\n    {\n        Name = name,\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        DesiredSize = \"2\",\n    });\n\n    var defaultK8sCluster = new AliCloud.Edas.K8sCluster(\"default\", new()\n    {\n        CsClusterId = defaultNodePool.ClusterId,\n    });\n\n    var defaultK8sApplication = new AliCloud.Edas.K8sApplication(\"default\", new()\n    {\n        ApplicationName = name,\n        ClusterId = defaultK8sCluster.Id,\n        PackageType = \"FatJar\",\n        PackageUrl = \"http://edas-bj.oss-cn-beijing.aliyuncs.com/prod/demo/SPRING_CLOUD_PROVIDER.jar\",\n        Jdk = \"Open JDK 8\",\n        Replicas = 2,\n        Readiness = \"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\",\n        Liveness = \"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\",\n        ApplicationDescriotion = name,\n    });\n\n    var defaultK8sSlbAttachment = new AliCloud.Edas.K8sSlbAttachment(\"default\", new()\n    {\n        AppId = defaultK8sApplication.Id,\n        SlbConfigs = new[]\n        {\n            new AliCloud.Edas.Inputs.K8sSlbAttachmentSlbConfigArgs\n            {\n                Type = \"internet\",\n                Scheduler = \"rr\",\n                PortMappings = new[]\n                {\n                    new AliCloud.Edas.Inputs.K8sSlbAttachmentSlbConfigPortMappingArgs\n                    {\n                        LoadbalancerProtocol = \"TCP\",\n                        ServicePort = new AliCloud.Edas.Inputs.K8sSlbAttachmentSlbConfigPortMappingServicePortArgs\n                        {\n                            Port = 80,\n                            Protocol = \"TCP\",\n                            TargetPort = 8080,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/edas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone:   pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:       pulumi.IntRef(4),\n\t\t\tMemorySize:         pulumi.Float64Ref(8),\n\t\t\tKubernetesNodeRole: pulumi.StringRef(\"Worker\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"10.0.0.0/8\",\n\t\t\tNewbits: 8,\n\t\t\tNetnum:  36,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet1, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"172.16.0.0/16\",\n\t\t\tNewbits: 4,\n\t\t\tNetnum:  7,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\n\t\t\tNamePrefix:  pulumi.String(name),\n\t\t\tClusterSpec: pulumi.String(\"ack.pro.small\"),\n\t\t\tWorkerVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tNewNatGateway:      pulumi.Bool(true),\n\t\t\tPodCidr:            pulumi.String(invokeCidrsubnet.Result),\n\t\t\tServiceCidr:        pulumi.String(invokeCidrsubnet1.Result),\n\t\t\tSlbInternetEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNodePool, err := cs.NewNodePool(ctx, \"default\", \u0026cs.NodePoolArgs{\n\t\t\tName:      pulumi.String(name),\n\t\t\tClusterId: defaultManagedKubernetes.ID(),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\t},\n\t\t\tSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tSystemDiskSize:     pulumi.Int(40),\n\t\t\tDesiredSize:        pulumi.String(\"2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultK8sCluster, err := edas.NewK8sCluster(ctx, \"default\", \u0026edas.K8sClusterArgs{\n\t\t\tCsClusterId: defaultNodePool.ClusterId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultK8sApplication, err := edas.NewK8sApplication(ctx, \"default\", \u0026edas.K8sApplicationArgs{\n\t\t\tApplicationName:        pulumi.String(name),\n\t\t\tClusterId:              defaultK8sCluster.ID(),\n\t\t\tPackageType:            pulumi.String(\"FatJar\"),\n\t\t\tPackageUrl:             pulumi.String(\"http://edas-bj.oss-cn-beijing.aliyuncs.com/prod/demo/SPRING_CLOUD_PROVIDER.jar\"),\n\t\t\tJdk:                    pulumi.String(\"Open JDK 8\"),\n\t\t\tReplicas:               pulumi.Int(2),\n\t\t\tReadiness:              pulumi.String(\"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\"),\n\t\t\tLiveness:               pulumi.String(\"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\"),\n\t\t\tApplicationDescriotion: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edas.NewK8sSlbAttachment(ctx, \"default\", \u0026edas.K8sSlbAttachmentArgs{\n\t\t\tAppId: defaultK8sApplication.ID(),\n\t\t\tSlbConfigs: edas.K8sSlbAttachmentSlbConfigArray{\n\t\t\t\t\u0026edas.K8sSlbAttachmentSlbConfigArgs{\n\t\t\t\t\tType:      pulumi.String(\"internet\"),\n\t\t\t\t\tScheduler: pulumi.String(\"rr\"),\n\t\t\t\t\tPortMappings: edas.K8sSlbAttachmentSlbConfigPortMappingArray{\n\t\t\t\t\t\t\u0026edas.K8sSlbAttachmentSlbConfigPortMappingArgs{\n\t\t\t\t\t\t\tLoadbalancerProtocol: pulumi.String(\"TCP\"),\n\t\t\t\t\t\t\tServicePort: \u0026edas.K8sSlbAttachmentSlbConfigPortMappingServicePortArgs{\n\t\t\t\t\t\t\t\tPort:       pulumi.Int(80),\n\t\t\t\t\t\t\t\tProtocol:   pulumi.String(\"TCP\"),\n\t\t\t\t\t\t\t\tTargetPort: pulumi.Int(8080),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.edas.K8sCluster;\nimport com.pulumi.alicloud.edas.K8sClusterArgs;\nimport com.pulumi.alicloud.edas.K8sApplication;\nimport com.pulumi.alicloud.edas.K8sApplicationArgs;\nimport com.pulumi.alicloud.edas.K8sSlbAttachment;\nimport com.pulumi.alicloud.edas.K8sSlbAttachmentArgs;\nimport com.pulumi.alicloud.edas.inputs.K8sSlbAttachmentSlbConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(4)\n            .memorySize(8)\n            .kubernetesNodeRole(\"Worker\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .namePrefix(name)\n            .clusterSpec(\"ack.pro.small\")\n            .workerVswitchIds(defaultSwitch.id())\n            .newNatGateway(true)\n            .podCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"10.0.0.0/8\")\n                .newbits(8)\n                .netnum(36)\n                .build()).result())\n            .serviceCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"172.16.0.0/16\")\n                .newbits(4)\n                .netnum(7)\n                .build()).result())\n            .slbInternetEnabled(true)\n            .build());\n\n        var defaultNodePool = new NodePool(\"defaultNodePool\", NodePoolArgs.builder()\n            .name(name)\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(defaultSwitch.id())\n            .instanceTypes(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .desiredSize(\"2\")\n            .build());\n\n        var defaultK8sCluster = new K8sCluster(\"defaultK8sCluster\", K8sClusterArgs.builder()\n            .csClusterId(defaultNodePool.clusterId())\n            .build());\n\n        var defaultK8sApplication = new K8sApplication(\"defaultK8sApplication\", K8sApplicationArgs.builder()\n            .applicationName(name)\n            .clusterId(defaultK8sCluster.id())\n            .packageType(\"FatJar\")\n            .packageUrl(\"http://edas-bj.oss-cn-beijing.aliyuncs.com/prod/demo/SPRING_CLOUD_PROVIDER.jar\")\n            .jdk(\"Open JDK 8\")\n            .replicas(2)\n            .readiness(\"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\")\n            .liveness(\"{\\\"failureThreshold\\\": 3,\\\"initialDelaySeconds\\\": 5,\\\"successThreshold\\\": 1,\\\"timeoutSeconds\\\": 1,\\\"tcpSocket\\\":{\\\"port\\\":18081}}\")\n            .applicationDescriotion(name)\n            .build());\n\n        var defaultK8sSlbAttachment = new K8sSlbAttachment(\"defaultK8sSlbAttachment\", K8sSlbAttachmentArgs.builder()\n            .appId(defaultK8sApplication.id())\n            .slbConfigs(K8sSlbAttachmentSlbConfigArgs.builder()\n                .type(\"internet\")\n                .scheduler(\"rr\")\n                .portMappings(K8sSlbAttachmentSlbConfigPortMappingArgs.builder()\n                    .loadbalancerProtocol(\"TCP\")\n                    .servicePort(K8sSlbAttachmentSlbConfigPortMappingServicePortArgs.builder()\n                        .port(80)\n                        .protocol(\"TCP\")\n                        .targetPort(8080)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      namePrefix: ${name}\n      clusterSpec: ack.pro.small\n      workerVswitchIds:\n        - ${defaultSwitch.id}\n      newNatGateway: true\n      podCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 10.0.0.0/8\n            newbits: 8\n            netnum: 36\n          return: result\n      serviceCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 172.16.0.0/16\n            newbits: 4\n            netnum: 7\n          return: result\n      slbInternetEnabled: true\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      name: ${name}\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      instanceTypes:\n        - ${defaultGetInstanceTypes.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      desiredSize: 2\n  defaultK8sCluster:\n    type: alicloud:edas:K8sCluster\n    name: default\n    properties:\n      csClusterId: ${defaultNodePool.clusterId}\n  defaultK8sApplication:\n    type: alicloud:edas:K8sApplication\n    name: default\n    properties:\n      applicationName: ${name}\n      clusterId: ${defaultK8sCluster.id}\n      packageType: FatJar\n      packageUrl: http://edas-bj.oss-cn-beijing.aliyuncs.com/prod/demo/SPRING_CLOUD_PROVIDER.jar\n      jdk: Open JDK 8\n      replicas: 2\n      readiness: '{\"failureThreshold\": 3,\"initialDelaySeconds\": 5,\"successThreshold\": 1,\"timeoutSeconds\": 1,\"tcpSocket\":{\"port\":18081}}'\n      liveness: '{\"failureThreshold\": 3,\"initialDelaySeconds\": 5,\"successThreshold\": 1,\"timeoutSeconds\": 1,\"tcpSocket\":{\"port\":18081}}'\n      applicationDescriotion: ${name}\n  defaultK8sSlbAttachment:\n    type: alicloud:edas:K8sSlbAttachment\n    name: default\n    properties:\n      appId: ${defaultK8sApplication.id}\n      slbConfigs:\n        - type: internet\n          scheduler: rr\n          portMappings:\n            - loadbalancerProtocol: TCP\n              servicePort:\n                port: 80\n                protocol: TCP\n                targetPort: 8080\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 4\n        memorySize: 8\n        kubernetesNodeRole: Worker\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSlb information of EDAS k8s application can be imported using the ID of an EDAS k8s application. e.g.\n\n```sh\n$ terraform import alicloud_edas_k8s_slb_attachment.example \u003cEDAS k8s app id\u003e\n```\n\n","properties":{"appId":{"type":"string","description":"The ID of the EDAS k8s application to which you want to bind SLB instances.\n"},"slbConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:edas/K8sSlbAttachmentSlbConfig:K8sSlbAttachmentSlbConfig"},"description":"The configurations of SLB attachment, which is supported for multiple configurations. See \u003cspan pulumi-lang-nodejs=\"`slbConfigs`\" pulumi-lang-dotnet=\"`SlbConfigs`\" pulumi-lang-go=\"`slbConfigs`\" pulumi-lang-python=\"`slb_configs`\" pulumi-lang-yaml=\"`slbConfigs`\" pulumi-lang-java=\"`slbConfigs`\"\u003e`slb_configs`\u003c/span\u003e below.\n"}},"required":["appId","slbConfigs"],"inputProperties":{"appId":{"type":"string","description":"The ID of the EDAS k8s application to which you want to bind SLB instances.\n","willReplaceOnChanges":true},"slbConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:edas/K8sSlbAttachmentSlbConfig:K8sSlbAttachmentSlbConfig"},"description":"The configurations of SLB attachment, which is supported for multiple configurations. See \u003cspan pulumi-lang-nodejs=\"`slbConfigs`\" pulumi-lang-dotnet=\"`SlbConfigs`\" pulumi-lang-go=\"`slbConfigs`\" pulumi-lang-python=\"`slb_configs`\" pulumi-lang-yaml=\"`slbConfigs`\" pulumi-lang-java=\"`slbConfigs`\"\u003e`slb_configs`\u003c/span\u003e below.\n"}},"requiredInputs":["appId"],"stateInputs":{"description":"Input properties used for looking up and filtering K8sSlbAttachment resources.\n","properties":{"appId":{"type":"string","description":"The ID of the EDAS k8s application to which you want to bind SLB instances.\n","willReplaceOnChanges":true},"slbConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:edas/K8sSlbAttachmentSlbConfig:K8sSlbAttachmentSlbConfig"},"description":"The configurations of SLB attachment, which is supported for multiple configurations. See \u003cspan pulumi-lang-nodejs=\"`slbConfigs`\" pulumi-lang-dotnet=\"`SlbConfigs`\" pulumi-lang-go=\"`slbConfigs`\" pulumi-lang-python=\"`slb_configs`\" pulumi-lang-yaml=\"`slbConfigs`\" pulumi-lang-java=\"`slbConfigs`\"\u003e`slb_configs`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:edas/namespace:Namespace":{"description":"Provides a EDAS Namespace resource.\n\nFor information about EDAS Namespace and how to use it, see [What is Namespace](https://www.alibabacloud.com/help/en/enterprise-distributed-application-service/latest/insertorupdateregion).\n\n\u003e **NOTE:** Available since v1.173.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst name = config.get(\"name\") || \"tfexample\";\nconst _default = new alicloud.edas.Namespace(\"default\", {\n    debugEnable: false,\n    description: name,\n    namespaceLogicalId: `${region}:${name}`,\n    namespaceName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\ndefault = alicloud.edas.Namespace(\"default\",\n    debug_enable=False,\n    description=name,\n    namespace_logical_id=f\"{region}:{name}\",\n    namespace_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var @default = new AliCloud.Edas.Namespace(\"default\", new()\n    {\n        DebugEnable = false,\n        Description = name,\n        NamespaceLogicalId = $\"{region}:{name}\",\n        NamespaceName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/edas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := edas.NewNamespace(ctx, \"default\", \u0026edas.NamespaceArgs{\n\t\t\tDebugEnable:        pulumi.Bool(false),\n\t\t\tDescription:        pulumi.String(name),\n\t\t\tNamespaceLogicalId: pulumi.Sprintf(\"%v:%v\", region, name),\n\t\t\tNamespaceName:      pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.edas.Namespace;\nimport com.pulumi.alicloud.edas.NamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        var default_ = new Namespace(\"default\", NamespaceArgs.builder()\n            .debugEnable(false)\n            .description(name)\n            .namespaceLogicalId(String.format(\"%s:%s\", region,name))\n            .namespaceName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\n  name:\n    type: string\n    default: tfexample\nresources:\n  default:\n    type: alicloud:edas:Namespace\n    properties:\n      debugEnable: false\n      description: ${name}\n      namespaceLogicalId: ${region}:${name}\n      namespaceName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEDAS Namespace can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:edas/namespace:Namespace example \u003cid\u003e\n```\n\n","properties":{"debugEnable":{"type":"boolean","description":"Specifies whether to enable remote debugging.\n"},"description":{"type":"string","description":"The description of the namespace, The description can be up to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length.\n"},"namespaceLogicalId":{"type":"string","description":"The ID of the namespace.\n- The ID of a custom namespace is in the `region ID:namespace identifier` format. An example is `cn-beijing:tdy218`.\n- The ID of the default namespace is in the `region ID` format. An example is cn-beijing.\n"},"namespaceName":{"type":"string","description":"The name of the namespace, The name can be up to \u003cspan pulumi-lang-nodejs=\"`63`\" pulumi-lang-dotnet=\"`63`\" pulumi-lang-go=\"`63`\" pulumi-lang-python=\"`63`\" pulumi-lang-yaml=\"`63`\" pulumi-lang-java=\"`63`\"\u003e`63`\u003c/span\u003e characters in length.\n"}},"required":["debugEnable","namespaceLogicalId","namespaceName"],"inputProperties":{"debugEnable":{"type":"boolean","description":"Specifies whether to enable remote debugging.\n"},"description":{"type":"string","description":"The description of the namespace, The description can be up to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length.\n"},"namespaceLogicalId":{"type":"string","description":"The ID of the namespace.\n- The ID of a custom namespace is in the `region ID:namespace identifier` format. An example is `cn-beijing:tdy218`.\n- The ID of the default namespace is in the `region ID` format. An example is cn-beijing.\n","willReplaceOnChanges":true},"namespaceName":{"type":"string","description":"The name of the namespace, The name can be up to \u003cspan pulumi-lang-nodejs=\"`63`\" pulumi-lang-dotnet=\"`63`\" pulumi-lang-go=\"`63`\" pulumi-lang-python=\"`63`\" pulumi-lang-yaml=\"`63`\" pulumi-lang-java=\"`63`\"\u003e`63`\u003c/span\u003e characters in length.\n"}},"requiredInputs":["namespaceLogicalId","namespaceName"],"stateInputs":{"description":"Input properties used for looking up and filtering Namespace resources.\n","properties":{"debugEnable":{"type":"boolean","description":"Specifies whether to enable remote debugging.\n"},"description":{"type":"string","description":"The description of the namespace, The description can be up to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length.\n"},"namespaceLogicalId":{"type":"string","description":"The ID of the namespace.\n- The ID of a custom namespace is in the `region ID:namespace identifier` format. An example is `cn-beijing:tdy218`.\n- The ID of the default namespace is in the `region ID` format. An example is cn-beijing.\n","willReplaceOnChanges":true},"namespaceName":{"type":"string","description":"The name of the namespace, The name can be up to \u003cspan pulumi-lang-nodejs=\"`63`\" pulumi-lang-dotnet=\"`63`\" pulumi-lang-go=\"`63`\" pulumi-lang-python=\"`63`\" pulumi-lang-yaml=\"`63`\" pulumi-lang-java=\"`63`\"\u003e`63`\u003c/span\u003e characters in length.\n"}},"type":"object"}},"alicloud:edas/slbAttachment:SlbAttachment":{"description":"Binds SLB to an EDAS application.\n\n\u003e **NOTE:** Available since v1.82.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultGetZones = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_[0-9]+_[0-9]+_x64*\",\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = defaultGetZones.then(defaultGetZones =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: defaultGetZones.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    availabilityZone: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n    instanceName: name,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup.id],\n    vswitchId: defaultSwitch.id,\n    internetMaxBandwidthOut: 10,\n    internetChargeType: \"PayByTraffic\",\n    instanceChargeType: \"PostPaid\",\n    systemDiskCategory: \"cloud_efficiency\",\n});\nconst defaultCluster = new alicloud.edas.Cluster(\"default\", {\n    clusterName: name,\n    clusterType: 2,\n    networkMode: 2,\n    logicalRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstanceClusterAttachment = new alicloud.edas.InstanceClusterAttachment(\"default\", {\n    clusterId: defaultCluster.id,\n    instanceIds: [defaultInstance.id],\n});\nconst defaultApplication = new alicloud.edas.Application(\"default\", {\n    applicationName: name,\n    clusterId: defaultCluster.id,\n    packageType: \"JAR\",\n});\nconst defaultApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"default\", {\n    loadBalancerName: name,\n    vswitchId: defaultSwitch.id,\n    loadBalancerSpec: \"slb.s2.small\",\n    addressType: \"intranet\",\n});\nconst defaultSlbAttachment = new alicloud.edas.SlbAttachment(\"default\", {\n    appId: defaultApplication.id,\n    slbId: defaultApplicationLoadBalancer.id,\n    slbIp: defaultApplicationLoadBalancer.address,\n    type: defaultApplicationLoadBalancer.addressType,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_[0-9]+_[0-9]+_x64*\",\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default_get_zones.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    availability_zone=default_get_zones.zones[0].id,\n    instance_name=name,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[default_security_group.id],\n    vswitch_id=default_switch.id,\n    internet_max_bandwidth_out=10,\n    internet_charge_type=\"PayByTraffic\",\n    instance_charge_type=\"PostPaid\",\n    system_disk_category=\"cloud_efficiency\")\ndefault_cluster = alicloud.edas.Cluster(\"default\",\n    cluster_name=name,\n    cluster_type=2,\n    network_mode=2,\n    logical_region_id=default.regions[0].id,\n    vpc_id=default_network.id)\ndefault_instance_cluster_attachment = alicloud.edas.InstanceClusterAttachment(\"default\",\n    cluster_id=default_cluster.id,\n    instance_ids=[default_instance.id])\ndefault_application = alicloud.edas.Application(\"default\",\n    application_name=name,\n    cluster_id=default_cluster.id,\n    package_type=\"JAR\")\ndefault_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"default\",\n    load_balancer_name=name,\n    vswitch_id=default_switch.id,\n    load_balancer_spec=\"slb.s2.small\",\n    address_type=\"intranet\")\ndefault_slb_attachment = alicloud.edas.SlbAttachment(\"default\",\n    app_id=default_application.id,\n    slb_id=default_application_load_balancer.id,\n    slb_ip=default_application_load_balancer.address,\n    type=default_application_load_balancer.address_type)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_[0-9]+_[0-9]+_x64*\",\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        AvailabilityZone = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceName = name,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        VswitchId = defaultSwitch.Id,\n        InternetMaxBandwidthOut = 10,\n        InternetChargeType = \"PayByTraffic\",\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskCategory = \"cloud_efficiency\",\n    });\n\n    var defaultCluster = new AliCloud.Edas.Cluster(\"default\", new()\n    {\n        ClusterName = name,\n        ClusterType = 2,\n        NetworkMode = 2,\n        LogicalRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstanceClusterAttachment = new AliCloud.Edas.InstanceClusterAttachment(\"default\", new()\n    {\n        ClusterId = defaultCluster.Id,\n        InstanceIds = new[]\n        {\n            defaultInstance.Id,\n        },\n    });\n\n    var defaultApplication = new AliCloud.Edas.Application(\"default\", new()\n    {\n        ApplicationName = name,\n        ClusterId = defaultCluster.Id,\n        PackageType = \"JAR\",\n    });\n\n    var defaultApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = name,\n        VswitchId = defaultSwitch.Id,\n        LoadBalancerSpec = \"slb.s2.small\",\n        AddressType = \"intranet\",\n    });\n\n    var defaultSlbAttachment = new AliCloud.Edas.SlbAttachment(\"default\", new()\n    {\n        AppId = defaultApplication.Id,\n        SlbId = defaultApplicationLoadBalancer.Id,\n        SlbIp = defaultApplicationLoadBalancer.Address,\n        Type = defaultApplicationLoadBalancer.AddressType,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/edas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_[0-9]+_[0-9]+_x64*\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(defaultGetZones.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone: pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\tInstanceName:     pulumi.String(name),\n\t\t\tImageId:          pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVswitchId:               defaultSwitch.ID(),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t\tInternetChargeType:      pulumi.String(\"PayByTraffic\"),\n\t\t\tInstanceChargeType:      pulumi.String(\"PostPaid\"),\n\t\t\tSystemDiskCategory:      pulumi.String(\"cloud_efficiency\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := edas.NewCluster(ctx, \"default\", \u0026edas.ClusterArgs{\n\t\t\tClusterName:     pulumi.String(name),\n\t\t\tClusterType:     pulumi.Int(2),\n\t\t\tNetworkMode:     pulumi.Int(2),\n\t\t\tLogicalRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edas.NewInstanceClusterAttachment(ctx, \"default\", \u0026edas.InstanceClusterAttachmentArgs{\n\t\t\tClusterId: defaultCluster.ID(),\n\t\t\tInstanceIds: pulumi.StringArray{\n\t\t\t\tdefaultInstance.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplication, err := edas.NewApplication(ctx, \"default\", \u0026edas.ApplicationArgs{\n\t\t\tApplicationName: pulumi.String(name),\n\t\t\tClusterId:       defaultCluster.ID(),\n\t\t\tPackageType:     pulumi.String(\"JAR\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplicationLoadBalancer, err := slb.NewApplicationLoadBalancer(ctx, \"default\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tVswitchId:        defaultSwitch.ID(),\n\t\t\tLoadBalancerSpec: pulumi.String(\"slb.s2.small\"),\n\t\t\tAddressType:      pulumi.String(\"intranet\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edas.NewSlbAttachment(ctx, \"default\", \u0026edas.SlbAttachmentArgs{\n\t\t\tAppId: defaultApplication.ID(),\n\t\t\tSlbId: defaultApplicationLoadBalancer.ID(),\n\t\t\tSlbIp: defaultApplicationLoadBalancer.Address,\n\t\t\tType:  defaultApplicationLoadBalancer.AddressType,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.edas.Cluster;\nimport com.pulumi.alicloud.edas.ClusterArgs;\nimport com.pulumi.alicloud.edas.InstanceClusterAttachment;\nimport com.pulumi.alicloud.edas.InstanceClusterAttachmentArgs;\nimport com.pulumi.alicloud.edas.Application;\nimport com.pulumi.alicloud.edas.ApplicationArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.edas.SlbAttachment;\nimport com.pulumi.alicloud.edas.SlbAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_[0-9]+_[0-9]+_x64*\")\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(defaultGetZones.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .availabilityZone(defaultGetZones.zones()[0].id())\n            .instanceName(name)\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.id())\n            .vswitchId(defaultSwitch.id())\n            .internetMaxBandwidthOut(10)\n            .internetChargeType(\"PayByTraffic\")\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .clusterName(name)\n            .clusterType(2)\n            .networkMode(2)\n            .logicalRegionId(default_.regions()[0].id())\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstanceClusterAttachment = new InstanceClusterAttachment(\"defaultInstanceClusterAttachment\", InstanceClusterAttachmentArgs.builder()\n            .clusterId(defaultCluster.id())\n            .instanceIds(defaultInstance.id())\n            .build());\n\n        var defaultApplication = new Application(\"defaultApplication\", ApplicationArgs.builder()\n            .applicationName(name)\n            .clusterId(defaultCluster.id())\n            .packageType(\"JAR\")\n            .build());\n\n        var defaultApplicationLoadBalancer = new ApplicationLoadBalancer(\"defaultApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .vswitchId(defaultSwitch.id())\n            .loadBalancerSpec(\"slb.s2.small\")\n            .addressType(\"intranet\")\n            .build());\n\n        var defaultSlbAttachment = new SlbAttachment(\"defaultSlbAttachment\", SlbAttachmentArgs.builder()\n            .appId(defaultApplication.id())\n            .slbId(defaultApplicationLoadBalancer.id())\n            .slbIp(defaultApplicationLoadBalancer.address())\n            .type(defaultApplicationLoadBalancer.addressType())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:ecs:Instance\n    name: default\n    properties:\n      availabilityZone: ${defaultGetZones.zones[0].id}\n      instanceName: ${name}\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      securityGroups:\n        - ${defaultSecurityGroup.id}\n      vswitchId: ${defaultSwitch.id}\n      internetMaxBandwidthOut: '10'\n      internetChargeType: PayByTraffic\n      instanceChargeType: PostPaid\n      systemDiskCategory: cloud_efficiency\n  defaultCluster:\n    type: alicloud:edas:Cluster\n    name: default\n    properties:\n      clusterName: ${name}\n      clusterType: '2'\n      networkMode: '2'\n      logicalRegionId: ${default.regions[0].id}\n      vpcId: ${defaultNetwork.id}\n  defaultInstanceClusterAttachment:\n    type: alicloud:edas:InstanceClusterAttachment\n    name: default\n    properties:\n      clusterId: ${defaultCluster.id}\n      instanceIds:\n        - ${defaultInstance.id}\n  defaultApplication:\n    type: alicloud:edas:Application\n    name: default\n    properties:\n      applicationName: ${name}\n      clusterId: ${defaultCluster.id}\n      packageType: JAR\n  defaultApplicationLoadBalancer:\n    type: alicloud:slb:ApplicationLoadBalancer\n    name: default\n    properties:\n      loadBalancerName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      loadBalancerSpec: slb.s2.small\n      addressType: intranet\n  defaultSlbAttachment:\n    type: alicloud:edas:SlbAttachment\n    name: default\n    properties:\n      appId: ${defaultApplication.id}\n      slbId: ${defaultApplicationLoadBalancer.id}\n      slbIp: ${defaultApplicationLoadBalancer.address}\n      type: ${defaultApplicationLoadBalancer.addressType}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_[0-9]+_[0-9]+_x64*\n        owners: system\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${defaultGetZones.zones[0].id}\n        cpuCoreCount: 1\n        memorySize: 2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"appId":{"type":"string","description":"The ID of the application to which you want to bind an SLB instance.\n"},"listenerPort":{"type":"integer","description":"The listening port for the bound SLB instance.\n"},"slbId":{"type":"string","description":"The ID of the SLB instance that is going to be bound.\n"},"slbIp":{"type":"string","description":"The IP address that is allocated to the bound SLB instance.\n"},"slbStatus":{"type":"string","description":"Running Status of SLB instance. Inactive：The instance is stopped, and listener will not monitor and forward traffic. Active：The instance is running. After the instance is created, the default state is active. Locked：The instance is locked, the instance has been owed or locked by Alibaba Cloud. Expired: The instance has expired.\n"},"type":{"type":"string","description":"The type of the bound SLB instance.\n"},"vserverGroupId":{"type":"string","description":"The ID of the virtual server (VServer) group associated with the intranet SLB instance.\n"},"vswitchId":{"type":"string","description":"VPC related vswitch ID.\n"}},"required":["appId","slbId","slbIp","slbStatus","type","vswitchId"],"inputProperties":{"appId":{"type":"string","description":"The ID of the application to which you want to bind an SLB instance.\n","willReplaceOnChanges":true},"listenerPort":{"type":"integer","description":"The listening port for the bound SLB instance.\n","willReplaceOnChanges":true},"slbId":{"type":"string","description":"The ID of the SLB instance that is going to be bound.\n","willReplaceOnChanges":true},"slbIp":{"type":"string","description":"The IP address that is allocated to the bound SLB instance.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the bound SLB instance.\n","willReplaceOnChanges":true},"vserverGroupId":{"type":"string","description":"The ID of the virtual server (VServer) group associated with the intranet SLB instance.\n","willReplaceOnChanges":true}},"requiredInputs":["appId","slbId","slbIp","type"],"stateInputs":{"description":"Input properties used for looking up and filtering SlbAttachment resources.\n","properties":{"appId":{"type":"string","description":"The ID of the application to which you want to bind an SLB instance.\n","willReplaceOnChanges":true},"listenerPort":{"type":"integer","description":"The listening port for the bound SLB instance.\n","willReplaceOnChanges":true},"slbId":{"type":"string","description":"The ID of the SLB instance that is going to be bound.\n","willReplaceOnChanges":true},"slbIp":{"type":"string","description":"The IP address that is allocated to the bound SLB instance.\n","willReplaceOnChanges":true},"slbStatus":{"type":"string","description":"Running Status of SLB instance. Inactive：The instance is stopped, and listener will not monitor and forward traffic. Active：The instance is running. After the instance is created, the default state is active. Locked：The instance is locked, the instance has been owed or locked by Alibaba Cloud. Expired: The instance has expired.\n"},"type":{"type":"string","description":"The type of the bound SLB instance.\n","willReplaceOnChanges":true},"vserverGroupId":{"type":"string","description":"The ID of the virtual server (VServer) group associated with the intranet SLB instance.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"VPC related vswitch ID.\n"}},"type":"object"}},"alicloud:eds/adConnectorDirectory:AdConnectorDirectory":{"description":"Provides a ECD Ad Connector Directory resource.\n\nFor information about ECD Ad Connector Directory and how to use it, see [What is Ad Connector Directory](https://www.alibabacloud.com/help/en/wuying-workspace/developer-reference/api-ecd-2020-09-30-createadconnectordirectory).\n\n\u003e **NOTE:** Available since v1.174.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.eds.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n    vswitchName: name,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultAdConnectorDirectory = new alicloud.eds.AdConnectorDirectory(\"default\", {\n    directoryName: `${name}-${defaultInteger.result}`,\n    desktopAccessType: \"INTERNET\",\n    dnsAddresses: [\"127.0.0.2\"],\n    domainName: \"corp.example.com\",\n    domainPassword: \"Example1234\",\n    domainUserName: \"sAMAccountName\",\n    enableAdminAccess: false,\n    mfaEnabled: false,\n    specification: 1,\n    subDomainDnsAddresses: [\"127.0.0.3\"],\n    subDomainName: \"child.example.com\",\n    vswitchIds: [defaultSwitch.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.eds.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.ids[0],\n    vswitch_name=name)\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_ad_connector_directory = alicloud.eds.AdConnectorDirectory(\"default\",\n    directory_name=f\"{name}-{default_integer['result']}\",\n    desktop_access_type=\"INTERNET\",\n    dns_addresses=[\"127.0.0.2\"],\n    domain_name=\"corp.example.com\",\n    domain_password=\"Example1234\",\n    domain_user_name=\"sAMAccountName\",\n    enable_admin_access=False,\n    mfa_enabled=False,\n    specification=1,\n    sub_domain_dns_addresses=[\"127.0.0.3\"],\n    sub_domain_name=\"child.example.com\",\n    vswitch_ids=[default_switch.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Eds.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n        VswitchName = name,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultAdConnectorDirectory = new AliCloud.Eds.AdConnectorDirectory(\"default\", new()\n    {\n        DirectoryName = $\"{name}-{defaultInteger.Result}\",\n        DesktopAccessType = \"INTERNET\",\n        DnsAddresses = new[]\n        {\n            \"127.0.0.2\",\n        },\n        DomainName = \"corp.example.com\",\n        DomainPassword = \"Example1234\",\n        DomainUserName = \"sAMAccountName\",\n        EnableAdminAccess = false,\n        MfaEnabled = false,\n        Specification = 1,\n        SubDomainDnsAddresses = new[]\n        {\n            \"127.0.0.3\",\n        },\n        SubDomainName = \"child.example.com\",\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := eds.GetZones(ctx, \u0026eds.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Ids[0]),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eds.NewAdConnectorDirectory(ctx, \"default\", \u0026eds.AdConnectorDirectoryArgs{\n\t\t\tDirectoryName:     pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tDesktopAccessType: pulumi.String(\"INTERNET\"),\n\t\t\tDnsAddresses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"127.0.0.2\"),\n\t\t\t},\n\t\t\tDomainName:        pulumi.String(\"corp.example.com\"),\n\t\t\tDomainPassword:    pulumi.String(\"Example1234\"),\n\t\t\tDomainUserName:    pulumi.String(\"sAMAccountName\"),\n\t\t\tEnableAdminAccess: pulumi.Bool(false),\n\t\t\tMfaEnabled:        pulumi.Bool(false),\n\t\t\tSpecification:     pulumi.Int(1),\n\t\t\tSubDomainDnsAddresses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"127.0.0.3\"),\n\t\t\t},\n\t\t\tSubDomainName: pulumi.String(\"child.example.com\"),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.eds.AdConnectorDirectory;\nimport com.pulumi.alicloud.eds.AdConnectorDirectoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = EdsFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.ids()[0])\n            .vswitchName(name)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultAdConnectorDirectory = new AdConnectorDirectory(\"defaultAdConnectorDirectory\", AdConnectorDirectoryArgs.builder()\n            .directoryName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .desktopAccessType(\"INTERNET\")\n            .dnsAddresses(\"127.0.0.2\")\n            .domainName(\"corp.example.com\")\n            .domainPassword(\"Example1234\")\n            .domainUserName(\"sAMAccountName\")\n            .enableAdminAccess(false)\n            .mfaEnabled(false)\n            .specification(1)\n            .subDomainDnsAddresses(\"127.0.0.3\")\n            .subDomainName(\"child.example.com\")\n            .vswitchIds(defaultSwitch.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.ids[0]}\n      vswitchName: ${name}\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultAdConnectorDirectory:\n    type: alicloud:eds:AdConnectorDirectory\n    name: default\n    properties:\n      directoryName: ${name}-${defaultInteger.result}\n      desktopAccessType: INTERNET\n      dnsAddresses:\n        - 127.0.0.2\n      domainName: corp.example.com\n      domainPassword: Example1234\n      domainUserName: sAMAccountName\n      enableAdminAccess: false\n      mfaEnabled: false\n      specification: 1\n      subDomainDnsAddresses:\n        - 127.0.0.3\n      subDomainName: child.example.com\n      vswitchIds:\n        - ${defaultSwitch.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eds:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECD Ad Connector Directory can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eds/adConnectorDirectory:AdConnectorDirectory example \u003cid\u003e\n```\n\n","properties":{"desktopAccessType":{"type":"string","description":"The desktop access type. Valid values: `VPC`, `INTERNET`, `ANY`.\n"},"directoryName":{"type":"string","description":"The name of the directory. The name must be 2 to 255 characters in length. It must start with a letter but cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n"},"dnsAddresses":{"type":"array","items":{"type":"string"},"description":"The DNS address list.\n"},"domainName":{"type":"string","description":"The name of the domain.\n"},"domainPassword":{"type":"string","description":"The user password of the domain administrator. The maximum number of English characters is 64.\n","secret":true},"domainUserName":{"type":"string","description":"The username of the domain administrator. The maximum number of English characters is 64.\n"},"enableAdminAccess":{"type":"boolean","description":"Whether to grant local administrator rights to users who use cloud desktops.\n"},"mfaEnabled":{"type":"boolean","description":"Whether MFA authentication is enabled. After all AD users in this directory log on to the cloud desktop, enter the correct password and then enter the dynamic verification code generated by the MFA device. **NOTE:** The MFA device needs to be bound when logging in for the first time.\n"},"specification":{"type":"integer","description":"The AD Connector specifications. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of directory.\n"},"subDomainDnsAddresses":{"type":"array","items":{"type":"string"},"description":"The Enterprise already has the DNS address of the AD subdomain. If \u003cspan pulumi-lang-nodejs=\"`subDomainName`\" pulumi-lang-dotnet=\"`SubDomainName`\" pulumi-lang-go=\"`subDomainName`\" pulumi-lang-python=\"`sub_domain_name`\" pulumi-lang-yaml=\"`subDomainName`\" pulumi-lang-java=\"`subDomainName`\"\u003e`sub_domain_name`\u003c/span\u003e is set and this parameter is not set, the child Domain DNS is considered consistent with the parent domain.\n"},"subDomainName":{"type":"string","description":"The Enterprise already has a fully qualified domain name (FQDN) of an AD subdomain, with both a host name and a domain name.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"List of VSwitch IDs in the directory.\n"}},"required":["desktopAccessType","directoryName","dnsAddresses","domainName","domainPassword","domainUserName","enableAdminAccess","mfaEnabled","status","vswitchIds"],"inputProperties":{"desktopAccessType":{"type":"string","description":"The desktop access type. Valid values: `VPC`, `INTERNET`, `ANY`.\n","willReplaceOnChanges":true},"directoryName":{"type":"string","description":"The name of the directory. The name must be 2 to 255 characters in length. It must start with a letter but cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n","willReplaceOnChanges":true},"dnsAddresses":{"type":"array","items":{"type":"string"},"description":"The DNS address list.\n","willReplaceOnChanges":true},"domainName":{"type":"string","description":"The name of the domain.\n","willReplaceOnChanges":true},"domainPassword":{"type":"string","description":"The user password of the domain administrator. The maximum number of English characters is 64.\n","secret":true},"domainUserName":{"type":"string","description":"The username of the domain administrator. The maximum number of English characters is 64.\n","willReplaceOnChanges":true},"enableAdminAccess":{"type":"boolean","description":"Whether to grant local administrator rights to users who use cloud desktops.\n","willReplaceOnChanges":true},"mfaEnabled":{"type":"boolean","description":"Whether MFA authentication is enabled. After all AD users in this directory log on to the cloud desktop, enter the correct password and then enter the dynamic verification code generated by the MFA device. **NOTE:** The MFA device needs to be bound when logging in for the first time.\n","willReplaceOnChanges":true},"specification":{"type":"integer","description":"The AD Connector specifications. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"},"subDomainDnsAddresses":{"type":"array","items":{"type":"string"},"description":"The Enterprise already has the DNS address of the AD subdomain. If \u003cspan pulumi-lang-nodejs=\"`subDomainName`\" pulumi-lang-dotnet=\"`SubDomainName`\" pulumi-lang-go=\"`subDomainName`\" pulumi-lang-python=\"`sub_domain_name`\" pulumi-lang-yaml=\"`subDomainName`\" pulumi-lang-java=\"`subDomainName`\"\u003e`sub_domain_name`\u003c/span\u003e is set and this parameter is not set, the child Domain DNS is considered consistent with the parent domain.\n","willReplaceOnChanges":true},"subDomainName":{"type":"string","description":"The Enterprise already has a fully qualified domain name (FQDN) of an AD subdomain, with both a host name and a domain name.\n","willReplaceOnChanges":true},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"List of VSwitch IDs in the directory.\n","willReplaceOnChanges":true}},"requiredInputs":["directoryName","dnsAddresses","domainName","domainPassword","domainUserName","vswitchIds"],"stateInputs":{"description":"Input properties used for looking up and filtering AdConnectorDirectory resources.\n","properties":{"desktopAccessType":{"type":"string","description":"The desktop access type. Valid values: `VPC`, `INTERNET`, `ANY`.\n","willReplaceOnChanges":true},"directoryName":{"type":"string","description":"The name of the directory. The name must be 2 to 255 characters in length. It must start with a letter but cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n","willReplaceOnChanges":true},"dnsAddresses":{"type":"array","items":{"type":"string"},"description":"The DNS address list.\n","willReplaceOnChanges":true},"domainName":{"type":"string","description":"The name of the domain.\n","willReplaceOnChanges":true},"domainPassword":{"type":"string","description":"The user password of the domain administrator. The maximum number of English characters is 64.\n","secret":true},"domainUserName":{"type":"string","description":"The username of the domain administrator. The maximum number of English characters is 64.\n","willReplaceOnChanges":true},"enableAdminAccess":{"type":"boolean","description":"Whether to grant local administrator rights to users who use cloud desktops.\n","willReplaceOnChanges":true},"mfaEnabled":{"type":"boolean","description":"Whether MFA authentication is enabled. After all AD users in this directory log on to the cloud desktop, enter the correct password and then enter the dynamic verification code generated by the MFA device. **NOTE:** The MFA device needs to be bound when logging in for the first time.\n","willReplaceOnChanges":true},"specification":{"type":"integer","description":"The AD Connector specifications. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of directory.\n"},"subDomainDnsAddresses":{"type":"array","items":{"type":"string"},"description":"The Enterprise already has the DNS address of the AD subdomain. If \u003cspan pulumi-lang-nodejs=\"`subDomainName`\" pulumi-lang-dotnet=\"`SubDomainName`\" pulumi-lang-go=\"`subDomainName`\" pulumi-lang-python=\"`sub_domain_name`\" pulumi-lang-yaml=\"`subDomainName`\" pulumi-lang-java=\"`subDomainName`\"\u003e`sub_domain_name`\u003c/span\u003e is set and this parameter is not set, the child Domain DNS is considered consistent with the parent domain.\n","willReplaceOnChanges":true},"subDomainName":{"type":"string","description":"The Enterprise already has a fully qualified domain name (FQDN) of an AD subdomain, with both a host name and a domain name.\n","willReplaceOnChanges":true},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"List of VSwitch IDs in the directory.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:eds/adConnectorOfficeSite:AdConnectorOfficeSite":{"description":"Provides a ECD Ad Connector Office Site resource.\n\nFor information about ECD Ad Connector Office Site and how to use it, see [What is Ad Connector Office Site](https://www.alibabacloud.com/help/en/wuying-workspace/developer-reference/api-ecd-2020-09-30-createadconnectorofficesite).\n\n\u003e **NOTE:** Available since v1.176.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cen.Instance(\"default\", {\n    cenInstanceName: name,\n    protectionLevel: \"REDUCED\",\n});\nconst defaultAdConnectorOfficeSite = new alicloud.eds.AdConnectorOfficeSite(\"default\", {\n    adConnectorOfficeSiteName: name,\n    bandwidth: 100,\n    cenId: _default.id,\n    cidrBlock: \"10.0.0.0/12\",\n    desktopAccessType: \"INTERNET\",\n    dnsAddresses: [\"127.0.0.2\"],\n    domainName: \"corp.example.com\",\n    domainPassword: \"Example1234\",\n    domainUserName: \"sAMAccountName\",\n    enableAdminAccess: false,\n    enableInternetAccess: false,\n    mfaEnabled: false,\n    subDomainDnsAddresses: [\"127.0.0.3\"],\n    subDomainName: \"child.example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cen.Instance(\"default\",\n    cen_instance_name=name,\n    protection_level=\"REDUCED\")\ndefault_ad_connector_office_site = alicloud.eds.AdConnectorOfficeSite(\"default\",\n    ad_connector_office_site_name=name,\n    bandwidth=100,\n    cen_id=default.id,\n    cidr_block=\"10.0.0.0/12\",\n    desktop_access_type=\"INTERNET\",\n    dns_addresses=[\"127.0.0.2\"],\n    domain_name=\"corp.example.com\",\n    domain_password=\"Example1234\",\n    domain_user_name=\"sAMAccountName\",\n    enable_admin_access=False,\n    enable_internet_access=False,\n    mfa_enabled=False,\n    sub_domain_dns_addresses=[\"127.0.0.3\"],\n    sub_domain_name=\"child.example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        CenInstanceName = name,\n        ProtectionLevel = \"REDUCED\",\n    });\n\n    var defaultAdConnectorOfficeSite = new AliCloud.Eds.AdConnectorOfficeSite(\"default\", new()\n    {\n        AdConnectorOfficeSiteName = name,\n        Bandwidth = 100,\n        CenId = @default.Id,\n        CidrBlock = \"10.0.0.0/12\",\n        DesktopAccessType = \"INTERNET\",\n        DnsAddresses = new[]\n        {\n            \"127.0.0.2\",\n        },\n        DomainName = \"corp.example.com\",\n        DomainPassword = \"Example1234\",\n        DomainUserName = \"sAMAccountName\",\n        EnableAdminAccess = false,\n        EnableInternetAccess = false,\n        MfaEnabled = false,\n        SubDomainDnsAddresses = new[]\n        {\n            \"127.0.0.3\",\n        },\n        SubDomainName = \"child.example.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tProtectionLevel: pulumi.String(\"REDUCED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eds.NewAdConnectorOfficeSite(ctx, \"default\", \u0026eds.AdConnectorOfficeSiteArgs{\n\t\t\tAdConnectorOfficeSiteName: pulumi.String(name),\n\t\t\tBandwidth:                 pulumi.Int(100),\n\t\t\tCenId:                     _default.ID(),\n\t\t\tCidrBlock:                 pulumi.String(\"10.0.0.0/12\"),\n\t\t\tDesktopAccessType:         pulumi.String(\"INTERNET\"),\n\t\t\tDnsAddresses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"127.0.0.2\"),\n\t\t\t},\n\t\t\tDomainName:           pulumi.String(\"corp.example.com\"),\n\t\t\tDomainPassword:       pulumi.String(\"Example1234\"),\n\t\t\tDomainUserName:       pulumi.String(\"sAMAccountName\"),\n\t\t\tEnableAdminAccess:    pulumi.Bool(false),\n\t\t\tEnableInternetAccess: pulumi.Bool(false),\n\t\t\tMfaEnabled:           pulumi.Bool(false),\n\t\t\tSubDomainDnsAddresses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"127.0.0.3\"),\n\t\t\t},\n\t\t\tSubDomainName: pulumi.String(\"child.example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.eds.AdConnectorOfficeSite;\nimport com.pulumi.alicloud.eds.AdConnectorOfficeSiteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .protectionLevel(\"REDUCED\")\n            .build());\n\n        var defaultAdConnectorOfficeSite = new AdConnectorOfficeSite(\"defaultAdConnectorOfficeSite\", AdConnectorOfficeSiteArgs.builder()\n            .adConnectorOfficeSiteName(name)\n            .bandwidth(100)\n            .cenId(default_.id())\n            .cidrBlock(\"10.0.0.0/12\")\n            .desktopAccessType(\"INTERNET\")\n            .dnsAddresses(\"127.0.0.2\")\n            .domainName(\"corp.example.com\")\n            .domainPassword(\"Example1234\")\n            .domainUserName(\"sAMAccountName\")\n            .enableAdminAccess(false)\n            .enableInternetAccess(false)\n            .mfaEnabled(false)\n            .subDomainDnsAddresses(\"127.0.0.3\")\n            .subDomainName(\"child.example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: ${name}\n      protectionLevel: REDUCED\n  defaultAdConnectorOfficeSite:\n    type: alicloud:eds:AdConnectorOfficeSite\n    name: default\n    properties:\n      adConnectorOfficeSiteName: ${name}\n      bandwidth: 100\n      cenId: ${default.id}\n      cidrBlock: 10.0.0.0/12\n      desktopAccessType: INTERNET\n      dnsAddresses:\n        - 127.0.0.2\n      domainName: corp.example.com\n      domainPassword: Example1234\n      domainUserName: sAMAccountName\n      enableAdminAccess: false\n      enableInternetAccess: false\n      mfaEnabled: false\n      subDomainDnsAddresses:\n        - 127.0.0.3\n      subDomainName: child.example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECD Ad Connector Office Site can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eds/adConnectorOfficeSite:AdConnectorOfficeSite example \u003cid\u003e\n```\n\n","properties":{"adConnectorOfficeSiteName":{"type":"string","description":"The name of the workspace. The name must be 2 to 255 characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain digits, colons (:), underscores (_), and hyphens (-).\n"},"adHostname":{"type":"string","description":"The ad hostname.\n"},"bandwidth":{"type":"integer","description":"The maximum public bandwidth value. Valid values: 0 to 200. If you do not specify this parameter or you set this parameter to 0, Internet access is disabled.\n"},"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"cenOwnerId":{"type":"string","description":"The cen owner id.\n"},"cidrBlock":{"type":"string","description":"Workspace Corresponds to the Security Office Network of IPv4 Segment.\n"},"desktopAccessType":{"type":"string","description":"The method that you use to connect to cloud desktops. **Note:** The VPC connection method is provided by Alibaba Cloud PrivateLink. You are not charged for PrivateLink. When you set this parameter to VPC or Any, PrivateLink is automatically activated. Default value: `INTERNET`. Valid values:\n- `INTERNET`: connects clients to cloud desktops only over the Internet.\n- `VPC`: connects clients to cloud desktops only over a VPC.\n- `ANY`: connects clients to cloud desktops over the Internet or a VPC. You can select a connection method when you use a client to connect to the cloud desktop.\n"},"dnsAddresses":{"type":"array","items":{"type":"string"},"description":"The IP address N of the DNS server of the enterprise AD system. You can specify only one IP address.\n"},"domainName":{"type":"string","description":"The domain name of the enterprise AD system. You can register each domain name only once.\n"},"domainPassword":{"type":"string","description":"The password of the domain administrator. The password can be up to 64 characters in length.\n","secret":true},"domainUserName":{"type":"string","description":"The username of the domain administrator. The username can be up to 64 characters in length.\n"},"enableAdminAccess":{"type":"boolean","description":"Specifies whether to grant the permissions of the local administrator to the desktop users. Default value: true.\n"},"enableInternetAccess":{"type":"boolean","description":"Specifies whether to enable Internet access.\n"},"mfaEnabled":{"type":"boolean","description":"Specifies whether to enable multi-factor authentication (MFA).\n"},"protocolType":{"type":"string","description":"The protocol type. Valid values: `ASP`, `HDX`.\n"},"specification":{"type":"integer","description":"The AD Connector specifications. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The resource State.\n"},"subDomainDnsAddresses":{"type":"array","items":{"type":"string"},"description":"The DNS address N of the enterprise AD subdomain. If you specify a value for the \u003cspan pulumi-lang-nodejs=\"`subDomainName`\" pulumi-lang-dotnet=\"`SubDomainName`\" pulumi-lang-go=\"`subDomainName`\" pulumi-lang-python=\"`sub_domain_name`\" pulumi-lang-yaml=\"`subDomainName`\" pulumi-lang-java=\"`subDomainName`\"\u003e`sub_domain_name`\u003c/span\u003e parameter but you do not specify a value for this parameter, the DNS address of the subdomain is the same as the DNS address of the parent domain.\n"},"subDomainName":{"type":"string","description":"The domain name of the enterprise AD subdomain.\n"},"verifyCode":{"type":"string","description":"The verification code. If the CEN instance that you specify for the CenId parameter belongs to another Alibaba Cloud account, you must call the SendVerifyCode operation to obtain the verification code.\n"}},"required":["adConnectorOfficeSiteName","cenId","cidrBlock","desktopAccessType","dnsAddresses","domainName","enableAdminAccess","enableInternetAccess","status"],"inputProperties":{"adConnectorOfficeSiteName":{"type":"string","description":"The name of the workspace. The name must be 2 to 255 characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain digits, colons (:), underscores (_), and hyphens (-).\n"},"adHostname":{"type":"string","description":"The ad hostname.\n"},"bandwidth":{"type":"integer","description":"The maximum public bandwidth value. Valid values: 0 to 200. If you do not specify this parameter or you set this parameter to 0, Internet access is disabled.\n","willReplaceOnChanges":true},"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"cenOwnerId":{"type":"string","description":"The cen owner id.\n"},"cidrBlock":{"type":"string","description":"Workspace Corresponds to the Security Office Network of IPv4 Segment.\n","willReplaceOnChanges":true},"desktopAccessType":{"type":"string","description":"The method that you use to connect to cloud desktops. **Note:** The VPC connection method is provided by Alibaba Cloud PrivateLink. You are not charged for PrivateLink. When you set this parameter to VPC or Any, PrivateLink is automatically activated. Default value: `INTERNET`. Valid values:\n- `INTERNET`: connects clients to cloud desktops only over the Internet.\n- `VPC`: connects clients to cloud desktops only over a VPC.\n- `ANY`: connects clients to cloud desktops over the Internet or a VPC. You can select a connection method when you use a client to connect to the cloud desktop.\n"},"dnsAddresses":{"type":"array","items":{"type":"string"},"description":"The IP address N of the DNS server of the enterprise AD system. You can specify only one IP address.\n"},"domainName":{"type":"string","description":"The domain name of the enterprise AD system. You can register each domain name only once.\n"},"domainPassword":{"type":"string","description":"The password of the domain administrator. The password can be up to 64 characters in length.\n","secret":true},"domainUserName":{"type":"string","description":"The username of the domain administrator. The username can be up to 64 characters in length.\n"},"enableAdminAccess":{"type":"boolean","description":"Specifies whether to grant the permissions of the local administrator to the desktop users. Default value: true.\n","willReplaceOnChanges":true},"enableInternetAccess":{"type":"boolean","description":"Specifies whether to enable Internet access.\n","willReplaceOnChanges":true},"mfaEnabled":{"type":"boolean","description":"Specifies whether to enable multi-factor authentication (MFA).\n"},"protocolType":{"type":"string","description":"The protocol type. Valid values: `ASP`, `HDX`.\n"},"specification":{"type":"integer","description":"The AD Connector specifications. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"},"subDomainDnsAddresses":{"type":"array","items":{"type":"string"},"description":"The DNS address N of the enterprise AD subdomain. If you specify a value for the \u003cspan pulumi-lang-nodejs=\"`subDomainName`\" pulumi-lang-dotnet=\"`SubDomainName`\" pulumi-lang-go=\"`subDomainName`\" pulumi-lang-python=\"`sub_domain_name`\" pulumi-lang-yaml=\"`subDomainName`\" pulumi-lang-java=\"`subDomainName`\"\u003e`sub_domain_name`\u003c/span\u003e parameter but you do not specify a value for this parameter, the DNS address of the subdomain is the same as the DNS address of the parent domain.\n"},"subDomainName":{"type":"string","description":"The domain name of the enterprise AD subdomain.\n"},"verifyCode":{"type":"string","description":"The verification code. If the CEN instance that you specify for the CenId parameter belongs to another Alibaba Cloud account, you must call the SendVerifyCode operation to obtain the verification code.\n"}},"requiredInputs":["adConnectorOfficeSiteName","cenId","cidrBlock","dnsAddresses","domainName"],"stateInputs":{"description":"Input properties used for looking up and filtering AdConnectorOfficeSite resources.\n","properties":{"adConnectorOfficeSiteName":{"type":"string","description":"The name of the workspace. The name must be 2 to 255 characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain digits, colons (:), underscores (_), and hyphens (-).\n"},"adHostname":{"type":"string","description":"The ad hostname.\n"},"bandwidth":{"type":"integer","description":"The maximum public bandwidth value. Valid values: 0 to 200. If you do not specify this parameter or you set this parameter to 0, Internet access is disabled.\n","willReplaceOnChanges":true},"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"cenOwnerId":{"type":"string","description":"The cen owner id.\n"},"cidrBlock":{"type":"string","description":"Workspace Corresponds to the Security Office Network of IPv4 Segment.\n","willReplaceOnChanges":true},"desktopAccessType":{"type":"string","description":"The method that you use to connect to cloud desktops. **Note:** The VPC connection method is provided by Alibaba Cloud PrivateLink. You are not charged for PrivateLink. When you set this parameter to VPC or Any, PrivateLink is automatically activated. Default value: `INTERNET`. Valid values:\n- `INTERNET`: connects clients to cloud desktops only over the Internet.\n- `VPC`: connects clients to cloud desktops only over a VPC.\n- `ANY`: connects clients to cloud desktops over the Internet or a VPC. You can select a connection method when you use a client to connect to the cloud desktop.\n"},"dnsAddresses":{"type":"array","items":{"type":"string"},"description":"The IP address N of the DNS server of the enterprise AD system. You can specify only one IP address.\n"},"domainName":{"type":"string","description":"The domain name of the enterprise AD system. You can register each domain name only once.\n"},"domainPassword":{"type":"string","description":"The password of the domain administrator. The password can be up to 64 characters in length.\n","secret":true},"domainUserName":{"type":"string","description":"The username of the domain administrator. The username can be up to 64 characters in length.\n"},"enableAdminAccess":{"type":"boolean","description":"Specifies whether to grant the permissions of the local administrator to the desktop users. Default value: true.\n","willReplaceOnChanges":true},"enableInternetAccess":{"type":"boolean","description":"Specifies whether to enable Internet access.\n","willReplaceOnChanges":true},"mfaEnabled":{"type":"boolean","description":"Specifies whether to enable multi-factor authentication (MFA).\n"},"protocolType":{"type":"string","description":"The protocol type. Valid values: `ASP`, `HDX`.\n"},"specification":{"type":"integer","description":"The AD Connector specifications. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The resource State.\n"},"subDomainDnsAddresses":{"type":"array","items":{"type":"string"},"description":"The DNS address N of the enterprise AD subdomain. If you specify a value for the \u003cspan pulumi-lang-nodejs=\"`subDomainName`\" pulumi-lang-dotnet=\"`SubDomainName`\" pulumi-lang-go=\"`subDomainName`\" pulumi-lang-python=\"`sub_domain_name`\" pulumi-lang-yaml=\"`subDomainName`\" pulumi-lang-java=\"`subDomainName`\"\u003e`sub_domain_name`\u003c/span\u003e parameter but you do not specify a value for this parameter, the DNS address of the subdomain is the same as the DNS address of the parent domain.\n"},"subDomainName":{"type":"string","description":"The domain name of the enterprise AD subdomain.\n"},"verifyCode":{"type":"string","description":"The verification code. If the CEN instance that you specify for the CenId parameter belongs to another Alibaba Cloud account, you must call the SendVerifyCode operation to obtain the verification code.\n"}},"type":"object"}},"alicloud:eds/bundle:Bundle":{"description":"Provides a ECD Bundle resource.\n\nFor information about ECD Bundle and how to use it, see [What is Bundle](https://www.alibabacloud.com/help/en/wuying-workspace/developer-reference/api-ecd-2020-09-30-createbundle).\n\n\u003e **NOTE:** Available since v1.170.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.eds.getImages({\n    imageType: \"SYSTEM\",\n    osType: \"Windows\",\n    desktopInstanceType: \"eds.hf.4c8g\",\n});\nconst defaultGetDesktopTypes = alicloud.eds.getDesktopTypes({\n    instanceTypeFamily: \"eds.hf\",\n    cpuCount: 4,\n    memorySize: 8192,\n});\nconst defaultBundle = new alicloud.eds.Bundle(\"default\", {\n    description: name,\n    desktopType: defaultGetDesktopTypes.then(defaultGetDesktopTypes =\u003e defaultGetDesktopTypes.ids?.[0]),\n    bundleName: name,\n    imageId: _default.then(_default =\u003e _default.ids?.[0]),\n    userDiskSizeGibs: [70],\n    rootDiskSizeGib: 80,\n    rootDiskPerformanceLevel: \"PL1\",\n    userDiskPerformanceLevel: \"PL1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.eds.get_images(image_type=\"SYSTEM\",\n    os_type=\"Windows\",\n    desktop_instance_type=\"eds.hf.4c8g\")\ndefault_get_desktop_types = alicloud.eds.get_desktop_types(instance_type_family=\"eds.hf\",\n    cpu_count=4,\n    memory_size=8192)\ndefault_bundle = alicloud.eds.Bundle(\"default\",\n    description=name,\n    desktop_type=default_get_desktop_types.ids[0],\n    bundle_name=name,\n    image_id=default.ids[0],\n    user_disk_size_gibs=[70],\n    root_disk_size_gib=80,\n    root_disk_performance_level=\"PL1\",\n    user_disk_performance_level=\"PL1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Eds.GetImages.Invoke(new()\n    {\n        ImageType = \"SYSTEM\",\n        OsType = \"Windows\",\n        DesktopInstanceType = \"eds.hf.4c8g\",\n    });\n\n    var defaultGetDesktopTypes = AliCloud.Eds.GetDesktopTypes.Invoke(new()\n    {\n        InstanceTypeFamily = \"eds.hf\",\n        CpuCount = 4,\n        MemorySize = 8192,\n    });\n\n    var defaultBundle = new AliCloud.Eds.Bundle(\"default\", new()\n    {\n        Description = name,\n        DesktopType = defaultGetDesktopTypes.Apply(getDesktopTypesResult =\u003e getDesktopTypesResult.Ids[0]),\n        BundleName = name,\n        ImageId = @default.Apply(@default =\u003e @default.Apply(getImagesResult =\u003e getImagesResult.Ids[0])),\n        UserDiskSizeGibs = new[]\n        {\n            70,\n        },\n        RootDiskSizeGib = 80,\n        RootDiskPerformanceLevel = \"PL1\",\n        UserDiskPerformanceLevel = \"PL1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := eds.GetImages(ctx, \u0026eds.GetImagesArgs{\n\t\t\tImageType:           pulumi.StringRef(\"SYSTEM\"),\n\t\t\tOsType:              pulumi.StringRef(\"Windows\"),\n\t\t\tDesktopInstanceType: pulumi.StringRef(\"eds.hf.4c8g\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetDesktopTypes, err := eds.GetDesktopTypes(ctx, \u0026eds.GetDesktopTypesArgs{\n\t\t\tInstanceTypeFamily: pulumi.StringRef(\"eds.hf\"),\n\t\t\tCpuCount:           pulumi.IntRef(4),\n\t\t\tMemorySize:         pulumi.IntRef(8192),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eds.NewBundle(ctx, \"default\", \u0026eds.BundleArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tDesktopType: pulumi.String(defaultGetDesktopTypes.Ids[0]),\n\t\t\tBundleName:  pulumi.String(name),\n\t\t\tImageId:     pulumi.String(_default.Ids[0]),\n\t\t\tUserDiskSizeGibs: pulumi.IntArray{\n\t\t\t\tpulumi.Int(70),\n\t\t\t},\n\t\t\tRootDiskSizeGib:          pulumi.Int(80),\n\t\t\tRootDiskPerformanceLevel: pulumi.String(\"PL1\"),\n\t\t\tUserDiskPerformanceLevel: pulumi.String(\"PL1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.eds.inputs.GetDesktopTypesArgs;\nimport com.pulumi.alicloud.eds.Bundle;\nimport com.pulumi.alicloud.eds.BundleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = EdsFunctions.getImages(GetImagesArgs.builder()\n            .imageType(\"SYSTEM\")\n            .osType(\"Windows\")\n            .desktopInstanceType(\"eds.hf.4c8g\")\n            .build());\n\n        final var defaultGetDesktopTypes = EdsFunctions.getDesktopTypes(GetDesktopTypesArgs.builder()\n            .instanceTypeFamily(\"eds.hf\")\n            .cpuCount(4)\n            .memorySize(8192)\n            .build());\n\n        var defaultBundle = new Bundle(\"defaultBundle\", BundleArgs.builder()\n            .description(name)\n            .desktopType(defaultGetDesktopTypes.ids()[0])\n            .bundleName(name)\n            .imageId(default_.ids()[0])\n            .userDiskSizeGibs(70)\n            .rootDiskSizeGib(80)\n            .rootDiskPerformanceLevel(\"PL1\")\n            .userDiskPerformanceLevel(\"PL1\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultBundle:\n    type: alicloud:eds:Bundle\n    name: default\n    properties:\n      description: ${name}\n      desktopType: ${defaultGetDesktopTypes.ids[0]}\n      bundleName: ${name}\n      imageId: ${default.ids[0]}\n      userDiskSizeGibs:\n        - 70\n      rootDiskSizeGib: 80\n      rootDiskPerformanceLevel: PL1\n      userDiskPerformanceLevel: PL1\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eds:getImages\n      arguments:\n        imageType: SYSTEM\n        osType: Windows\n        desktopInstanceType: eds.hf.4c8g\n  defaultGetDesktopTypes:\n    fn::invoke:\n      function: alicloud:eds:getDesktopTypes\n      arguments:\n        instanceTypeFamily: eds.hf\n        cpuCount: 4\n        memorySize: 8192\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECD Bundle can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eds/bundle:Bundle example \u003cid\u003e\n```\n\n","properties":{"bundleName":{"type":"string","description":"The name of the bundle.\n"},"description":{"type":"string","description":"The description of the bundle.\n"},"desktopType":{"type":"string","description":"The desktop type. You can call \u003cspan pulumi-lang-nodejs=\"`alicloud.eds.getDesktopTypes`\" pulumi-lang-dotnet=\"`alicloud.eds.getDesktopTypes`\" pulumi-lang-go=\"`eds.getDesktopTypes`\" pulumi-lang-python=\"`eds_get_desktop_types`\" pulumi-lang-yaml=\"`alicloud.eds.getDesktopTypes`\" pulumi-lang-java=\"`alicloud.eds.getDesktopTypes`\"\u003e`alicloud.eds.getDesktopTypes`\u003c/span\u003e to query desktop type.\n"},"imageId":{"type":"string","description":"The ID of the image.\n"},"language":{"type":"string","description":"The language. Valid values: `zh-CN`, `zh-HK`, `en-US`, `ja-JP`.\n"},"rootDiskPerformanceLevel":{"type":"string","description":"The root disk performance level. Valid values: `PL0`, `PL1`, `PL2`, `PL3`.\n"},"rootDiskSizeGib":{"type":"integer","description":"The root disk size gib.\n"},"userDiskPerformanceLevel":{"type":"string","description":"The user disk performance level. Valid values: `PL0`, `PL1`, `PL2`, `PL3`.\n"},"userDiskSizeGibs":{"type":"array","items":{"type":"integer"},"description":"The size of the data disk. Currently, only one data disk can be set. Unit: GiB.\n- The size of the data disk that supports the setting corresponds to the specification. For more information, see [Overview of Desktop Specifications](https://help.aliyun.com/document_detail/188609.htm?spm=a2c4g.11186623.0.0.6406297bE0U5DG).\n- The data disk size (user_disk_size_gib) set in the template must be greater than the data disk size (data_disk_size) in the mirror.\n"}},"required":["desktopType","imageId","rootDiskPerformanceLevel","rootDiskSizeGib","userDiskPerformanceLevel","userDiskSizeGibs"],"inputProperties":{"bundleName":{"type":"string","description":"The name of the bundle.\n"},"description":{"type":"string","description":"The description of the bundle.\n"},"desktopType":{"type":"string","description":"The desktop type. You can call \u003cspan pulumi-lang-nodejs=\"`alicloud.eds.getDesktopTypes`\" pulumi-lang-dotnet=\"`alicloud.eds.getDesktopTypes`\" pulumi-lang-go=\"`eds.getDesktopTypes`\" pulumi-lang-python=\"`eds_get_desktop_types`\" pulumi-lang-yaml=\"`alicloud.eds.getDesktopTypes`\" pulumi-lang-java=\"`alicloud.eds.getDesktopTypes`\"\u003e`alicloud.eds.getDesktopTypes`\u003c/span\u003e to query desktop type.\n","willReplaceOnChanges":true},"imageId":{"type":"string","description":"The ID of the image.\n"},"language":{"type":"string","description":"The language. Valid values: `zh-CN`, `zh-HK`, `en-US`, `ja-JP`.\n"},"rootDiskPerformanceLevel":{"type":"string","description":"The root disk performance level. Valid values: `PL0`, `PL1`, `PL2`, `PL3`.\n","willReplaceOnChanges":true},"rootDiskSizeGib":{"type":"integer","description":"The root disk size gib.\n","willReplaceOnChanges":true},"userDiskPerformanceLevel":{"type":"string","description":"The user disk performance level. Valid values: `PL0`, `PL1`, `PL2`, `PL3`.\n","willReplaceOnChanges":true},"userDiskSizeGibs":{"type":"array","items":{"type":"integer"},"description":"The size of the data disk. Currently, only one data disk can be set. Unit: GiB.\n- The size of the data disk that supports the setting corresponds to the specification. For more information, see [Overview of Desktop Specifications](https://help.aliyun.com/document_detail/188609.htm?spm=a2c4g.11186623.0.0.6406297bE0U5DG).\n- The data disk size (user_disk_size_gib) set in the template must be greater than the data disk size (data_disk_size) in the mirror.\n","willReplaceOnChanges":true}},"requiredInputs":["desktopType","imageId","rootDiskSizeGib","userDiskSizeGibs"],"stateInputs":{"description":"Input properties used for looking up and filtering Bundle resources.\n","properties":{"bundleName":{"type":"string","description":"The name of the bundle.\n"},"description":{"type":"string","description":"The description of the bundle.\n"},"desktopType":{"type":"string","description":"The desktop type. You can call \u003cspan pulumi-lang-nodejs=\"`alicloud.eds.getDesktopTypes`\" pulumi-lang-dotnet=\"`alicloud.eds.getDesktopTypes`\" pulumi-lang-go=\"`eds.getDesktopTypes`\" pulumi-lang-python=\"`eds_get_desktop_types`\" pulumi-lang-yaml=\"`alicloud.eds.getDesktopTypes`\" pulumi-lang-java=\"`alicloud.eds.getDesktopTypes`\"\u003e`alicloud.eds.getDesktopTypes`\u003c/span\u003e to query desktop type.\n","willReplaceOnChanges":true},"imageId":{"type":"string","description":"The ID of the image.\n"},"language":{"type":"string","description":"The language. Valid values: `zh-CN`, `zh-HK`, `en-US`, `ja-JP`.\n"},"rootDiskPerformanceLevel":{"type":"string","description":"The root disk performance level. Valid values: `PL0`, `PL1`, `PL2`, `PL3`.\n","willReplaceOnChanges":true},"rootDiskSizeGib":{"type":"integer","description":"The root disk size gib.\n","willReplaceOnChanges":true},"userDiskPerformanceLevel":{"type":"string","description":"The user disk performance level. Valid values: `PL0`, `PL1`, `PL2`, `PL3`.\n","willReplaceOnChanges":true},"userDiskSizeGibs":{"type":"array","items":{"type":"integer"},"description":"The size of the data disk. Currently, only one data disk can be set. Unit: GiB.\n- The size of the data disk that supports the setting corresponds to the specification. For more information, see [Overview of Desktop Specifications](https://help.aliyun.com/document_detail/188609.htm?spm=a2c4g.11186623.0.0.6406297bE0U5DG).\n- The data disk size (user_disk_size_gib) set in the template must be greater than the data disk size (data_disk_size) in the mirror.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:eds/command:Command":{"description":"Provides a ECD Command resource.\n\nFor information about ECD Command and how to use it, see [What is Command](https://www.alibabacloud.com/help/en/wuying-workspace/developer-reference/api-ecd-2020-09-30-runcommand).\n\n\u003e **NOTE:** Available since v1.146.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultSimpleOfficeSite = new alicloud.eds.SimpleOfficeSite(\"default\", {\n    cidrBlock: \"172.16.0.0/12\",\n    enableAdminAccess: true,\n    desktopAccessType: \"Internet\",\n    officeSiteName: `${name}-${defaultInteger.result}`,\n});\nconst defaultEcdPolicyGroup = new alicloud.eds.EcdPolicyGroup(\"default\", {\n    policyGroupName: name,\n    clipboard: \"read\",\n    localDrive: \"read\",\n    usbRedirect: \"off\",\n    watermark: \"off\",\n    authorizeAccessPolicyRules: [{\n        description: name,\n        cidrIp: \"1.2.3.45/24\",\n    }],\n    authorizeSecurityPolicyRules: [{\n        type: \"inflow\",\n        policy: \"accept\",\n        description: name,\n        portRange: \"80/80\",\n        ipProtocol: \"TCP\",\n        priority: \"1\",\n        cidrIp: \"1.2.3.4/24\",\n    }],\n});\nconst _default = alicloud.eds.getBundles({\n    bundleType: \"SYSTEM\",\n    bundleIds: [\n        \"bundle_eds_enterprise_office_4c8g_s8d2_win2019_edu\",\n        \"bundle_eds_enterprise_office_8c16g_s8d2_win2019_edu\",\n    ],\n});\nconst defaultDesktop = new alicloud.eds.Desktop(\"default\", {\n    officeSiteId: defaultSimpleOfficeSite.id,\n    policyGroupId: defaultEcdPolicyGroup.id,\n    bundleId: _default.then(_default =\u003e _default.bundles?.[0]?.id),\n    desktopName: name,\n});\nconst defaultCommand = new alicloud.eds.Command(\"default\", {\n    commandContent: \"ipconfig\",\n    commandType: \"RunPowerShellScript\",\n    desktopId: defaultDesktop.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_simple_office_site = alicloud.eds.SimpleOfficeSite(\"default\",\n    cidr_block=\"172.16.0.0/12\",\n    enable_admin_access=True,\n    desktop_access_type=\"Internet\",\n    office_site_name=f\"{name}-{default_integer['result']}\")\ndefault_ecd_policy_group = alicloud.eds.EcdPolicyGroup(\"default\",\n    policy_group_name=name,\n    clipboard=\"read\",\n    local_drive=\"read\",\n    usb_redirect=\"off\",\n    watermark=\"off\",\n    authorize_access_policy_rules=[{\n        \"description\": name,\n        \"cidr_ip\": \"1.2.3.45/24\",\n    }],\n    authorize_security_policy_rules=[{\n        \"type\": \"inflow\",\n        \"policy\": \"accept\",\n        \"description\": name,\n        \"port_range\": \"80/80\",\n        \"ip_protocol\": \"TCP\",\n        \"priority\": \"1\",\n        \"cidr_ip\": \"1.2.3.4/24\",\n    }])\ndefault = alicloud.eds.get_bundles(bundle_type=\"SYSTEM\",\n    bundle_ids=[\n        \"bundle_eds_enterprise_office_4c8g_s8d2_win2019_edu\",\n        \"bundle_eds_enterprise_office_8c16g_s8d2_win2019_edu\",\n    ])\ndefault_desktop = alicloud.eds.Desktop(\"default\",\n    office_site_id=default_simple_office_site.id,\n    policy_group_id=default_ecd_policy_group.id,\n    bundle_id=default.bundles[0].id,\n    desktop_name=name)\ndefault_command = alicloud.eds.Command(\"default\",\n    command_content=\"ipconfig\",\n    command_type=\"RunPowerShellScript\",\n    desktop_id=default_desktop.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultSimpleOfficeSite = new AliCloud.Eds.SimpleOfficeSite(\"default\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        EnableAdminAccess = true,\n        DesktopAccessType = \"Internet\",\n        OfficeSiteName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultEcdPolicyGroup = new AliCloud.Eds.EcdPolicyGroup(\"default\", new()\n    {\n        PolicyGroupName = name,\n        Clipboard = \"read\",\n        LocalDrive = \"read\",\n        UsbRedirect = \"off\",\n        Watermark = \"off\",\n        AuthorizeAccessPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs\n            {\n                Description = name,\n                CidrIp = \"1.2.3.45/24\",\n            },\n        },\n        AuthorizeSecurityPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs\n            {\n                Type = \"inflow\",\n                Policy = \"accept\",\n                Description = name,\n                PortRange = \"80/80\",\n                IpProtocol = \"TCP\",\n                Priority = \"1\",\n                CidrIp = \"1.2.3.4/24\",\n            },\n        },\n    });\n\n    var @default = AliCloud.Eds.GetBundles.Invoke(new()\n    {\n        BundleType = \"SYSTEM\",\n        BundleIds = new[]\n        {\n            \"bundle_eds_enterprise_office_4c8g_s8d2_win2019_edu\",\n            \"bundle_eds_enterprise_office_8c16g_s8d2_win2019_edu\",\n        },\n    });\n\n    var defaultDesktop = new AliCloud.Eds.Desktop(\"default\", new()\n    {\n        OfficeSiteId = defaultSimpleOfficeSite.Id,\n        PolicyGroupId = defaultEcdPolicyGroup.Id,\n        BundleId = @default.Apply(@default =\u003e @default.Apply(getBundlesResult =\u003e getBundlesResult.Bundles[0]?.Id)),\n        DesktopName = name,\n    });\n\n    var defaultCommand = new AliCloud.Eds.Command(\"default\", new()\n    {\n        CommandContent = \"ipconfig\",\n        CommandType = \"RunPowerShellScript\",\n        DesktopId = defaultDesktop.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSimpleOfficeSite, err := eds.NewSimpleOfficeSite(ctx, \"default\", \u0026eds.SimpleOfficeSiteArgs{\n\t\t\tCidrBlock:         pulumi.String(\"172.16.0.0/12\"),\n\t\t\tEnableAdminAccess: pulumi.Bool(true),\n\t\t\tDesktopAccessType: pulumi.String(\"Internet\"),\n\t\t\tOfficeSiteName:    pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcdPolicyGroup, err := eds.NewEcdPolicyGroup(ctx, \"default\", \u0026eds.EcdPolicyGroupArgs{\n\t\t\tPolicyGroupName: pulumi.String(name),\n\t\t\tClipboard:       pulumi.String(\"read\"),\n\t\t\tLocalDrive:      pulumi.String(\"read\"),\n\t\t\tUsbRedirect:     pulumi.String(\"off\"),\n\t\t\tWatermark:       pulumi.String(\"off\"),\n\t\t\tAuthorizeAccessPolicyRules: eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs{\n\t\t\t\t\tDescription: pulumi.String(name),\n\t\t\t\t\tCidrIp:      pulumi.String(\"1.2.3.45/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAuthorizeSecurityPolicyRules: eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs{\n\t\t\t\t\tType:        pulumi.String(\"inflow\"),\n\t\t\t\t\tPolicy:      pulumi.String(\"accept\"),\n\t\t\t\t\tDescription: pulumi.String(name),\n\t\t\t\t\tPortRange:   pulumi.String(\"80/80\"),\n\t\t\t\t\tIpProtocol:  pulumi.String(\"TCP\"),\n\t\t\t\t\tPriority:    pulumi.String(\"1\"),\n\t\t\t\t\tCidrIp:      pulumi.String(\"1.2.3.4/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := eds.GetBundles(ctx, \u0026eds.GetBundlesArgs{\n\t\t\tBundleType: pulumi.StringRef(\"SYSTEM\"),\n\t\t\tBundleIds: []string{\n\t\t\t\t\"bundle_eds_enterprise_office_4c8g_s8d2_win2019_edu\",\n\t\t\t\t\"bundle_eds_enterprise_office_8c16g_s8d2_win2019_edu\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDesktop, err := eds.NewDesktop(ctx, \"default\", \u0026eds.DesktopArgs{\n\t\t\tOfficeSiteId:  defaultSimpleOfficeSite.ID(),\n\t\t\tPolicyGroupId: defaultEcdPolicyGroup.ID(),\n\t\t\tBundleId:      pulumi.String(_default.Bundles[0].Id),\n\t\t\tDesktopName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eds.NewCommand(ctx, \"default\", \u0026eds.CommandArgs{\n\t\t\tCommandContent: pulumi.String(\"ipconfig\"),\n\t\t\tCommandType:    pulumi.String(\"RunPowerShellScript\"),\n\t\t\tDesktopId:      defaultDesktop.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.eds.SimpleOfficeSite;\nimport com.pulumi.alicloud.eds.SimpleOfficeSiteArgs;\nimport com.pulumi.alicloud.eds.EcdPolicyGroup;\nimport com.pulumi.alicloud.eds.EcdPolicyGroupArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetBundlesArgs;\nimport com.pulumi.alicloud.eds.Desktop;\nimport com.pulumi.alicloud.eds.DesktopArgs;\nimport com.pulumi.alicloud.eds.Command;\nimport com.pulumi.alicloud.eds.CommandArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultSimpleOfficeSite = new SimpleOfficeSite(\"defaultSimpleOfficeSite\", SimpleOfficeSiteArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .enableAdminAccess(true)\n            .desktopAccessType(\"Internet\")\n            .officeSiteName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultEcdPolicyGroup = new EcdPolicyGroup(\"defaultEcdPolicyGroup\", EcdPolicyGroupArgs.builder()\n            .policyGroupName(name)\n            .clipboard(\"read\")\n            .localDrive(\"read\")\n            .usbRedirect(\"off\")\n            .watermark(\"off\")\n            .authorizeAccessPolicyRules(EcdPolicyGroupAuthorizeAccessPolicyRuleArgs.builder()\n                .description(name)\n                .cidrIp(\"1.2.3.45/24\")\n                .build())\n            .authorizeSecurityPolicyRules(EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs.builder()\n                .type(\"inflow\")\n                .policy(\"accept\")\n                .description(name)\n                .portRange(\"80/80\")\n                .ipProtocol(\"TCP\")\n                .priority(\"1\")\n                .cidrIp(\"1.2.3.4/24\")\n                .build())\n            .build());\n\n        final var default = EdsFunctions.getBundles(GetBundlesArgs.builder()\n            .bundleType(\"SYSTEM\")\n            .bundleIds(            \n                \"bundle_eds_enterprise_office_4c8g_s8d2_win2019_edu\",\n                \"bundle_eds_enterprise_office_8c16g_s8d2_win2019_edu\")\n            .build());\n\n        var defaultDesktop = new Desktop(\"defaultDesktop\", DesktopArgs.builder()\n            .officeSiteId(defaultSimpleOfficeSite.id())\n            .policyGroupId(defaultEcdPolicyGroup.id())\n            .bundleId(default_.bundles()[0].id())\n            .desktopName(name)\n            .build());\n\n        var defaultCommand = new Command(\"defaultCommand\", CommandArgs.builder()\n            .commandContent(\"ipconfig\")\n            .commandType(\"RunPowerShellScript\")\n            .desktopId(defaultDesktop.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultSimpleOfficeSite:\n    type: alicloud:eds:SimpleOfficeSite\n    name: default\n    properties:\n      cidrBlock: 172.16.0.0/12\n      enableAdminAccess: true\n      desktopAccessType: Internet\n      officeSiteName: ${name}-${defaultInteger.result}\n  defaultEcdPolicyGroup:\n    type: alicloud:eds:EcdPolicyGroup\n    name: default\n    properties:\n      policyGroupName: ${name}\n      clipboard: read\n      localDrive: read\n      usbRedirect: off\n      watermark: off\n      authorizeAccessPolicyRules:\n        - description: ${name}\n          cidrIp: 1.2.3.45/24\n      authorizeSecurityPolicyRules:\n        - type: inflow\n          policy: accept\n          description: ${name}\n          portRange: 80/80\n          ipProtocol: TCP\n          priority: '1'\n          cidrIp: 1.2.3.4/24\n  defaultDesktop:\n    type: alicloud:eds:Desktop\n    name: default\n    properties:\n      officeSiteId: ${defaultSimpleOfficeSite.id}\n      policyGroupId: ${defaultEcdPolicyGroup.id}\n      bundleId: ${default.bundles[0].id}\n      desktopName: ${name}\n  defaultCommand:\n    type: alicloud:eds:Command\n    name: default\n    properties:\n      commandContent: ipconfig\n      commandType: RunPowerShellScript\n      desktopId: ${defaultDesktop.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eds:getBundles\n      arguments:\n        bundleType: SYSTEM\n        bundleIds:\n          - bundle_eds_enterprise_office_4c8g_s8d2_win2019_edu\n          - bundle_eds_enterprise_office_8c16g_s8d2_win2019_edu\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECD Command can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eds/command:Command example \u003cid\u003e\n```\n\n","properties":{"commandContent":{"type":"string","description":"The Contents of the Script to Base64 Encoded Transmission.\n"},"commandType":{"type":"string","description":"The Script Type. Valid values: `RunBatScript`, `RunPowerShellScript`.\n"},"contentEncoding":{"type":"string","description":"That Returns the Data Encoding Method. Valid values: `Base64`, `PlainText`.\n"},"desktopId":{"type":"string","description":"The desktop id of the Desktop.\n"},"status":{"type":"string","description":"Script Is Executed in the Overall Implementation of the State. Valid values: `Pending`, `Failed`, `PartialFailed`, `Running`, `Stopped`, `Stopping`, `Finished`, `Success`.\n"},"timeout":{"type":"string","description":"The timeout period for script execution the unit is seconds. Default to: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"}},"required":["commandContent","commandType","desktopId","status"],"inputProperties":{"commandContent":{"type":"string","description":"The Contents of the Script to Base64 Encoded Transmission.\n","willReplaceOnChanges":true},"commandType":{"type":"string","description":"The Script Type. Valid values: `RunBatScript`, `RunPowerShellScript`.\n","willReplaceOnChanges":true},"contentEncoding":{"type":"string","description":"That Returns the Data Encoding Method. Valid values: `Base64`, `PlainText`.\n"},"desktopId":{"type":"string","description":"The desktop id of the Desktop.\n","willReplaceOnChanges":true},"timeout":{"type":"string","description":"The timeout period for script execution the unit is seconds. Default to: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"}},"requiredInputs":["commandContent","commandType","desktopId"],"stateInputs":{"description":"Input properties used for looking up and filtering Command resources.\n","properties":{"commandContent":{"type":"string","description":"The Contents of the Script to Base64 Encoded Transmission.\n","willReplaceOnChanges":true},"commandType":{"type":"string","description":"The Script Type. Valid values: `RunBatScript`, `RunPowerShellScript`.\n","willReplaceOnChanges":true},"contentEncoding":{"type":"string","description":"That Returns the Data Encoding Method. Valid values: `Base64`, `PlainText`.\n"},"desktopId":{"type":"string","description":"The desktop id of the Desktop.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Script Is Executed in the Overall Implementation of the State. Valid values: `Pending`, `Failed`, `PartialFailed`, `Running`, `Stopped`, `Stopping`, `Finished`, `Success`.\n"},"timeout":{"type":"string","description":"The timeout period for script execution the unit is seconds. Default to: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:eds/customProperty:CustomProperty":{"description":"Provides a ECD Custom Property resource.\n\nFor information about ECD Custom Property and how to use it, see [What is Custom Property](https://www.alibabacloud.com/help/en/wuying-workspace/developer-reference/api-eds-user-2021-03-08-createproperty-desktop).\n\n\u003e **NOTE:** Available since v1.176.0.\n\n\u003e **NOTE:** Up to 10 different attributes can be created under an alibaba cloud account. Up to 50 different attribute values can be added under an attribute.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.eds.CustomProperty(\"example\", {\n    propertyKey: \"example_key\",\n    propertyValues: [{\n        propertyValue: \"example_value\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.eds.CustomProperty(\"example\",\n    property_key=\"example_key\",\n    property_values=[{\n        \"property_value\": \"example_value\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Eds.CustomProperty(\"example\", new()\n    {\n        PropertyKey = \"example_key\",\n        PropertyValues = new[]\n        {\n            new AliCloud.Eds.Inputs.CustomPropertyPropertyValueArgs\n            {\n                PropertyValue = \"example_value\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := eds.NewCustomProperty(ctx, \"example\", \u0026eds.CustomPropertyArgs{\n\t\t\tPropertyKey: pulumi.String(\"example_key\"),\n\t\t\tPropertyValues: eds.CustomPropertyPropertyValueArray{\n\t\t\t\t\u0026eds.CustomPropertyPropertyValueArgs{\n\t\t\t\t\tPropertyValue: pulumi.String(\"example_value\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.CustomProperty;\nimport com.pulumi.alicloud.eds.CustomPropertyArgs;\nimport com.pulumi.alicloud.eds.inputs.CustomPropertyPropertyValueArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new CustomProperty(\"example\", CustomPropertyArgs.builder()\n            .propertyKey(\"example_key\")\n            .propertyValues(CustomPropertyPropertyValueArgs.builder()\n                .propertyValue(\"example_value\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:eds:CustomProperty\n    properties:\n      propertyKey: example_key\n      propertyValues:\n        - propertyValue: example_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECD Custom Property can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eds/customProperty:CustomProperty example \u003cid\u003e\n```\n\n","properties":{"propertyKey":{"type":"string","description":"The Custom attribute key.\n"},"propertyValues":{"type":"array","items":{"$ref":"#/types/alicloud:eds/CustomPropertyPropertyValue:CustomPropertyPropertyValue"},"description":"Custom attribute sets the value of. See \u003cspan pulumi-lang-nodejs=\"`propertyValues`\" pulumi-lang-dotnet=\"`PropertyValues`\" pulumi-lang-go=\"`propertyValues`\" pulumi-lang-python=\"`property_values`\" pulumi-lang-yaml=\"`propertyValues`\" pulumi-lang-java=\"`propertyValues`\"\u003e`property_values`\u003c/span\u003e below.\n"}},"required":["propertyKey"],"inputProperties":{"propertyKey":{"type":"string","description":"The Custom attribute key.\n"},"propertyValues":{"type":"array","items":{"$ref":"#/types/alicloud:eds/CustomPropertyPropertyValue:CustomPropertyPropertyValue"},"description":"Custom attribute sets the value of. See \u003cspan pulumi-lang-nodejs=\"`propertyValues`\" pulumi-lang-dotnet=\"`PropertyValues`\" pulumi-lang-go=\"`propertyValues`\" pulumi-lang-python=\"`property_values`\" pulumi-lang-yaml=\"`propertyValues`\" pulumi-lang-java=\"`propertyValues`\"\u003e`property_values`\u003c/span\u003e below.\n"}},"requiredInputs":["propertyKey"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomProperty resources.\n","properties":{"propertyKey":{"type":"string","description":"The Custom attribute key.\n"},"propertyValues":{"type":"array","items":{"$ref":"#/types/alicloud:eds/CustomPropertyPropertyValue:CustomPropertyPropertyValue"},"description":"Custom attribute sets the value of. See \u003cspan pulumi-lang-nodejs=\"`propertyValues`\" pulumi-lang-dotnet=\"`PropertyValues`\" pulumi-lang-go=\"`propertyValues`\" pulumi-lang-python=\"`property_values`\" pulumi-lang-yaml=\"`propertyValues`\" pulumi-lang-java=\"`propertyValues`\"\u003e`property_values`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:eds/desktop:Desktop":{"description":"Provides a ECD Desktop resource.\n\nFor information about ECD Desktop and how to use it, see [What is Desktop](https://www.alibabacloud.com/help/en/wuying-workspace/developer-reference/api-ecd-2020-09-30-createdesktops)\n\n\u003e **NOTE:** Available since v1.144.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultSimpleOfficeSite = new alicloud.eds.SimpleOfficeSite(\"default\", {\n    cidrBlock: \"172.16.0.0/12\",\n    enableAdminAccess: true,\n    desktopAccessType: \"Internet\",\n    officeSiteName: `${name}-${defaultInteger.result}`,\n});\nconst defaultEcdPolicyGroup = new alicloud.eds.EcdPolicyGroup(\"default\", {\n    policyGroupName: name,\n    clipboard: \"read\",\n    localDrive: \"read\",\n    usbRedirect: \"off\",\n    watermark: \"off\",\n    authorizeAccessPolicyRules: [{\n        description: name,\n        cidrIp: \"1.2.3.45/24\",\n    }],\n    authorizeSecurityPolicyRules: [{\n        type: \"inflow\",\n        policy: \"accept\",\n        description: name,\n        portRange: \"80/80\",\n        ipProtocol: \"TCP\",\n        priority: \"1\",\n        cidrIp: \"1.2.3.4/24\",\n    }],\n});\nconst _default = alicloud.eds.getBundles({\n    bundleType: \"SYSTEM\",\n});\nconst defaultDesktop = new alicloud.eds.Desktop(\"default\", {\n    officeSiteId: defaultSimpleOfficeSite.id,\n    policyGroupId: defaultEcdPolicyGroup.id,\n    bundleId: _default.then(_default =\u003e _default.bundles?.[1]?.id),\n    desktopName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_simple_office_site = alicloud.eds.SimpleOfficeSite(\"default\",\n    cidr_block=\"172.16.0.0/12\",\n    enable_admin_access=True,\n    desktop_access_type=\"Internet\",\n    office_site_name=f\"{name}-{default_integer['result']}\")\ndefault_ecd_policy_group = alicloud.eds.EcdPolicyGroup(\"default\",\n    policy_group_name=name,\n    clipboard=\"read\",\n    local_drive=\"read\",\n    usb_redirect=\"off\",\n    watermark=\"off\",\n    authorize_access_policy_rules=[{\n        \"description\": name,\n        \"cidr_ip\": \"1.2.3.45/24\",\n    }],\n    authorize_security_policy_rules=[{\n        \"type\": \"inflow\",\n        \"policy\": \"accept\",\n        \"description\": name,\n        \"port_range\": \"80/80\",\n        \"ip_protocol\": \"TCP\",\n        \"priority\": \"1\",\n        \"cidr_ip\": \"1.2.3.4/24\",\n    }])\ndefault = alicloud.eds.get_bundles(bundle_type=\"SYSTEM\")\ndefault_desktop = alicloud.eds.Desktop(\"default\",\n    office_site_id=default_simple_office_site.id,\n    policy_group_id=default_ecd_policy_group.id,\n    bundle_id=default.bundles[1].id,\n    desktop_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultSimpleOfficeSite = new AliCloud.Eds.SimpleOfficeSite(\"default\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        EnableAdminAccess = true,\n        DesktopAccessType = \"Internet\",\n        OfficeSiteName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultEcdPolicyGroup = new AliCloud.Eds.EcdPolicyGroup(\"default\", new()\n    {\n        PolicyGroupName = name,\n        Clipboard = \"read\",\n        LocalDrive = \"read\",\n        UsbRedirect = \"off\",\n        Watermark = \"off\",\n        AuthorizeAccessPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs\n            {\n                Description = name,\n                CidrIp = \"1.2.3.45/24\",\n            },\n        },\n        AuthorizeSecurityPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs\n            {\n                Type = \"inflow\",\n                Policy = \"accept\",\n                Description = name,\n                PortRange = \"80/80\",\n                IpProtocol = \"TCP\",\n                Priority = \"1\",\n                CidrIp = \"1.2.3.4/24\",\n            },\n        },\n    });\n\n    var @default = AliCloud.Eds.GetBundles.Invoke(new()\n    {\n        BundleType = \"SYSTEM\",\n    });\n\n    var defaultDesktop = new AliCloud.Eds.Desktop(\"default\", new()\n    {\n        OfficeSiteId = defaultSimpleOfficeSite.Id,\n        PolicyGroupId = defaultEcdPolicyGroup.Id,\n        BundleId = @default.Apply(@default =\u003e @default.Apply(getBundlesResult =\u003e getBundlesResult.Bundles[1]?.Id)),\n        DesktopName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSimpleOfficeSite, err := eds.NewSimpleOfficeSite(ctx, \"default\", \u0026eds.SimpleOfficeSiteArgs{\n\t\t\tCidrBlock:         pulumi.String(\"172.16.0.0/12\"),\n\t\t\tEnableAdminAccess: pulumi.Bool(true),\n\t\t\tDesktopAccessType: pulumi.String(\"Internet\"),\n\t\t\tOfficeSiteName:    pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcdPolicyGroup, err := eds.NewEcdPolicyGroup(ctx, \"default\", \u0026eds.EcdPolicyGroupArgs{\n\t\t\tPolicyGroupName: pulumi.String(name),\n\t\t\tClipboard:       pulumi.String(\"read\"),\n\t\t\tLocalDrive:      pulumi.String(\"read\"),\n\t\t\tUsbRedirect:     pulumi.String(\"off\"),\n\t\t\tWatermark:       pulumi.String(\"off\"),\n\t\t\tAuthorizeAccessPolicyRules: eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs{\n\t\t\t\t\tDescription: pulumi.String(name),\n\t\t\t\t\tCidrIp:      pulumi.String(\"1.2.3.45/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAuthorizeSecurityPolicyRules: eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs{\n\t\t\t\t\tType:        pulumi.String(\"inflow\"),\n\t\t\t\t\tPolicy:      pulumi.String(\"accept\"),\n\t\t\t\t\tDescription: pulumi.String(name),\n\t\t\t\t\tPortRange:   pulumi.String(\"80/80\"),\n\t\t\t\t\tIpProtocol:  pulumi.String(\"TCP\"),\n\t\t\t\t\tPriority:    pulumi.String(\"1\"),\n\t\t\t\t\tCidrIp:      pulumi.String(\"1.2.3.4/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := eds.GetBundles(ctx, \u0026eds.GetBundlesArgs{\n\t\t\tBundleType: pulumi.StringRef(\"SYSTEM\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eds.NewDesktop(ctx, \"default\", \u0026eds.DesktopArgs{\n\t\t\tOfficeSiteId:  defaultSimpleOfficeSite.ID(),\n\t\t\tPolicyGroupId: defaultEcdPolicyGroup.ID(),\n\t\t\tBundleId:      pulumi.String(_default.Bundles[1].Id),\n\t\t\tDesktopName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.eds.SimpleOfficeSite;\nimport com.pulumi.alicloud.eds.SimpleOfficeSiteArgs;\nimport com.pulumi.alicloud.eds.EcdPolicyGroup;\nimport com.pulumi.alicloud.eds.EcdPolicyGroupArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetBundlesArgs;\nimport com.pulumi.alicloud.eds.Desktop;\nimport com.pulumi.alicloud.eds.DesktopArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultSimpleOfficeSite = new SimpleOfficeSite(\"defaultSimpleOfficeSite\", SimpleOfficeSiteArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .enableAdminAccess(true)\n            .desktopAccessType(\"Internet\")\n            .officeSiteName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultEcdPolicyGroup = new EcdPolicyGroup(\"defaultEcdPolicyGroup\", EcdPolicyGroupArgs.builder()\n            .policyGroupName(name)\n            .clipboard(\"read\")\n            .localDrive(\"read\")\n            .usbRedirect(\"off\")\n            .watermark(\"off\")\n            .authorizeAccessPolicyRules(EcdPolicyGroupAuthorizeAccessPolicyRuleArgs.builder()\n                .description(name)\n                .cidrIp(\"1.2.3.45/24\")\n                .build())\n            .authorizeSecurityPolicyRules(EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs.builder()\n                .type(\"inflow\")\n                .policy(\"accept\")\n                .description(name)\n                .portRange(\"80/80\")\n                .ipProtocol(\"TCP\")\n                .priority(\"1\")\n                .cidrIp(\"1.2.3.4/24\")\n                .build())\n            .build());\n\n        final var default = EdsFunctions.getBundles(GetBundlesArgs.builder()\n            .bundleType(\"SYSTEM\")\n            .build());\n\n        var defaultDesktop = new Desktop(\"defaultDesktop\", DesktopArgs.builder()\n            .officeSiteId(defaultSimpleOfficeSite.id())\n            .policyGroupId(defaultEcdPolicyGroup.id())\n            .bundleId(default_.bundles()[1].id())\n            .desktopName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultSimpleOfficeSite:\n    type: alicloud:eds:SimpleOfficeSite\n    name: default\n    properties:\n      cidrBlock: 172.16.0.0/12\n      enableAdminAccess: true\n      desktopAccessType: Internet\n      officeSiteName: ${name}-${defaultInteger.result}\n  defaultEcdPolicyGroup:\n    type: alicloud:eds:EcdPolicyGroup\n    name: default\n    properties:\n      policyGroupName: ${name}\n      clipboard: read\n      localDrive: read\n      usbRedirect: off\n      watermark: off\n      authorizeAccessPolicyRules:\n        - description: ${name}\n          cidrIp: 1.2.3.45/24\n      authorizeSecurityPolicyRules:\n        - type: inflow\n          policy: accept\n          description: ${name}\n          portRange: 80/80\n          ipProtocol: TCP\n          priority: '1'\n          cidrIp: 1.2.3.4/24\n  defaultDesktop:\n    type: alicloud:eds:Desktop\n    name: default\n    properties:\n      officeSiteId: ${defaultSimpleOfficeSite.id}\n      policyGroupId: ${defaultEcdPolicyGroup.id}\n      bundleId: ${default.bundles[1].id}\n      desktopName: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eds:getBundles\n      arguments:\n        bundleType: SYSTEM\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECD Desktop can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eds/desktop:Desktop example \u003cid\u003e\n```\n\n","properties":{"amount":{"type":"integer","description":"The amount of the Desktop.\n"},"autoPay":{"type":"boolean","description":"The auto-pay of the Desktop whether to pay automatically. values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenew":{"type":"boolean","description":"The auto-renewal of the Desktop whether to renew automatically. It takes effect only when the parameter ChargeType is set to PrePaid. values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"bundleId":{"type":"string","description":"The bundle id of the Desktop.\n"},"desktopName":{"type":"string","description":"The desktop name of the Desktop.\n"},"desktopType":{"type":"string","description":"The desktop type of the Desktop.\n"},"endUserIds":{"type":"array","items":{"type":"string"},"description":"The desktop end user id of the Desktop.\n"},"hostName":{"type":"string","description":"The hostname of the Desktop.\n"},"officeSiteId":{"type":"string","description":"The ID of the Simple Office Site.\n"},"paymentType":{"type":"string","description":"The payment type of the Desktop. Valid values: `PayAsYouGo`, `Subscription`. Default to `PayAsYouGo`.\n"},"period":{"type":"integer","description":"The period of the Desktop.\n"},"periodUnit":{"type":"string","description":"The period unit of the Desktop.\n"},"policyGroupId":{"type":"string","description":"The policy group id of the Desktop.\n"},"rootDiskSizeGib":{"type":"integer","description":"The root disk size gib of the Desktop.\n"},"status":{"type":"string","description":"The status of the Desktop. Valid values: `Deleted`, `Expired`, `Pending`, `Running`, `Starting`, `Stopped`, `Stopping`.\n"},"stoppedMode":{"type":"string","description":"The stopped mode of the Desktop.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"userAssignMode":{"type":"string","description":"The user assign mode of the Desktop. Valid values: `ALL`, `PER_USER`. Default to `ALL`.\n"},"userDiskSizeGib":{"type":"integer","description":"The user disk size gib of the Desktop.\n"}},"required":["bundleId","desktopType","officeSiteId","paymentType","policyGroupId","status","stoppedMode","userAssignMode"],"inputProperties":{"amount":{"type":"integer","description":"The amount of the Desktop.\n"},"autoPay":{"type":"boolean","description":"The auto-pay of the Desktop whether to pay automatically. values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenew":{"type":"boolean","description":"The auto-renewal of the Desktop whether to renew automatically. It takes effect only when the parameter ChargeType is set to PrePaid. values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"bundleId":{"type":"string","description":"The bundle id of the Desktop.\n"},"desktopName":{"type":"string","description":"The desktop name of the Desktop.\n"},"desktopType":{"type":"string","description":"The desktop type of the Desktop.\n"},"endUserIds":{"type":"array","items":{"type":"string"},"description":"The desktop end user id of the Desktop.\n","willReplaceOnChanges":true},"hostName":{"type":"string","description":"The hostname of the Desktop.\n"},"officeSiteId":{"type":"string","description":"The ID of the Simple Office Site.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The payment type of the Desktop. Valid values: `PayAsYouGo`, `Subscription`. Default to `PayAsYouGo`.\n"},"period":{"type":"integer","description":"The period of the Desktop.\n"},"periodUnit":{"type":"string","description":"The period unit of the Desktop.\n"},"policyGroupId":{"type":"string","description":"The policy group id of the Desktop.\n"},"rootDiskSizeGib":{"type":"integer","description":"The root disk size gib of the Desktop.\n"},"status":{"type":"string","description":"The status of the Desktop. Valid values: `Deleted`, `Expired`, `Pending`, `Running`, `Starting`, `Stopped`, `Stopping`.\n"},"stoppedMode":{"type":"string","description":"The stopped mode of the Desktop.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"userAssignMode":{"type":"string","description":"The user assign mode of the Desktop. Valid values: `ALL`, `PER_USER`. Default to `ALL`.\n"},"userDiskSizeGib":{"type":"integer","description":"The user disk size gib of the Desktop.\n"}},"requiredInputs":["bundleId","officeSiteId","policyGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering Desktop resources.\n","properties":{"amount":{"type":"integer","description":"The amount of the Desktop.\n"},"autoPay":{"type":"boolean","description":"The auto-pay of the Desktop whether to pay automatically. values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenew":{"type":"boolean","description":"The auto-renewal of the Desktop whether to renew automatically. It takes effect only when the parameter ChargeType is set to PrePaid. values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"bundleId":{"type":"string","description":"The bundle id of the Desktop.\n"},"desktopName":{"type":"string","description":"The desktop name of the Desktop.\n"},"desktopType":{"type":"string","description":"The desktop type of the Desktop.\n"},"endUserIds":{"type":"array","items":{"type":"string"},"description":"The desktop end user id of the Desktop.\n","willReplaceOnChanges":true},"hostName":{"type":"string","description":"The hostname of the Desktop.\n"},"officeSiteId":{"type":"string","description":"The ID of the Simple Office Site.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The payment type of the Desktop. Valid values: `PayAsYouGo`, `Subscription`. Default to `PayAsYouGo`.\n"},"period":{"type":"integer","description":"The period of the Desktop.\n"},"periodUnit":{"type":"string","description":"The period unit of the Desktop.\n"},"policyGroupId":{"type":"string","description":"The policy group id of the Desktop.\n"},"rootDiskSizeGib":{"type":"integer","description":"The root disk size gib of the Desktop.\n"},"status":{"type":"string","description":"The status of the Desktop. Valid values: `Deleted`, `Expired`, `Pending`, `Running`, `Starting`, `Stopped`, `Stopping`.\n"},"stoppedMode":{"type":"string","description":"The stopped mode of the Desktop.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"userAssignMode":{"type":"string","description":"The user assign mode of the Desktop. Valid values: `ALL`, `PER_USER`. Default to `ALL`.\n"},"userDiskSizeGib":{"type":"integer","description":"The user disk size gib of the Desktop.\n"}},"type":"object"}},"alicloud:eds/ecdPolicyGroup:EcdPolicyGroup":{"description":"Provides a Elastic Desktop Service (ECD) Policy Group resource.\n\nFor information about Elastic Desktop Service (ECD) Policy Group and how to use it, see [What is Policy Group](https://www.alibabacloud.com/help/en/wuying-workspace/developer-reference/api-ecd-2020-09-30-createpolicygroup).\n\n\u003e **NOTE:** Available since v1.130.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.eds.EcdPolicyGroup(\"default\", {\n    policyGroupName: \"terraform-example\",\n    clipboard: \"read\",\n    localDrive: \"read\",\n    usbRedirect: \"off\",\n    watermark: \"off\",\n    authorizeAccessPolicyRules: [{\n        description: \"terraform-example\",\n        cidrIp: \"1.2.3.45/24\",\n    }],\n    authorizeSecurityPolicyRules: [{\n        type: \"inflow\",\n        policy: \"accept\",\n        description: \"terraform-example\",\n        portRange: \"80/80\",\n        ipProtocol: \"TCP\",\n        priority: \"1\",\n        cidrIp: \"1.2.3.4/24\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.eds.EcdPolicyGroup(\"default\",\n    policy_group_name=\"terraform-example\",\n    clipboard=\"read\",\n    local_drive=\"read\",\n    usb_redirect=\"off\",\n    watermark=\"off\",\n    authorize_access_policy_rules=[{\n        \"description\": \"terraform-example\",\n        \"cidr_ip\": \"1.2.3.45/24\",\n    }],\n    authorize_security_policy_rules=[{\n        \"type\": \"inflow\",\n        \"policy\": \"accept\",\n        \"description\": \"terraform-example\",\n        \"port_range\": \"80/80\",\n        \"ip_protocol\": \"TCP\",\n        \"priority\": \"1\",\n        \"cidr_ip\": \"1.2.3.4/24\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Eds.EcdPolicyGroup(\"default\", new()\n    {\n        PolicyGroupName = \"terraform-example\",\n        Clipboard = \"read\",\n        LocalDrive = \"read\",\n        UsbRedirect = \"off\",\n        Watermark = \"off\",\n        AuthorizeAccessPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs\n            {\n                Description = \"terraform-example\",\n                CidrIp = \"1.2.3.45/24\",\n            },\n        },\n        AuthorizeSecurityPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs\n            {\n                Type = \"inflow\",\n                Policy = \"accept\",\n                Description = \"terraform-example\",\n                PortRange = \"80/80\",\n                IpProtocol = \"TCP\",\n                Priority = \"1\",\n                CidrIp = \"1.2.3.4/24\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := eds.NewEcdPolicyGroup(ctx, \"default\", \u0026eds.EcdPolicyGroupArgs{\n\t\t\tPolicyGroupName: pulumi.String(\"terraform-example\"),\n\t\t\tClipboard:       pulumi.String(\"read\"),\n\t\t\tLocalDrive:      pulumi.String(\"read\"),\n\t\t\tUsbRedirect:     pulumi.String(\"off\"),\n\t\t\tWatermark:       pulumi.String(\"off\"),\n\t\t\tAuthorizeAccessPolicyRules: eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs{\n\t\t\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t\t\t\tCidrIp:      pulumi.String(\"1.2.3.45/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAuthorizeSecurityPolicyRules: eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs{\n\t\t\t\t\tType:        pulumi.String(\"inflow\"),\n\t\t\t\t\tPolicy:      pulumi.String(\"accept\"),\n\t\t\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t\t\t\tPortRange:   pulumi.String(\"80/80\"),\n\t\t\t\t\tIpProtocol:  pulumi.String(\"TCP\"),\n\t\t\t\t\tPriority:    pulumi.String(\"1\"),\n\t\t\t\t\tCidrIp:      pulumi.String(\"1.2.3.4/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.EcdPolicyGroup;\nimport com.pulumi.alicloud.eds.EcdPolicyGroupArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new EcdPolicyGroup(\"default\", EcdPolicyGroupArgs.builder()\n            .policyGroupName(\"terraform-example\")\n            .clipboard(\"read\")\n            .localDrive(\"read\")\n            .usbRedirect(\"off\")\n            .watermark(\"off\")\n            .authorizeAccessPolicyRules(EcdPolicyGroupAuthorizeAccessPolicyRuleArgs.builder()\n                .description(\"terraform-example\")\n                .cidrIp(\"1.2.3.45/24\")\n                .build())\n            .authorizeSecurityPolicyRules(EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs.builder()\n                .type(\"inflow\")\n                .policy(\"accept\")\n                .description(\"terraform-example\")\n                .portRange(\"80/80\")\n                .ipProtocol(\"TCP\")\n                .priority(\"1\")\n                .cidrIp(\"1.2.3.4/24\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:eds:EcdPolicyGroup\n    properties:\n      policyGroupName: terraform-example\n      clipboard: read\n      localDrive: read\n      usbRedirect: off\n      watermark: off\n      authorizeAccessPolicyRules:\n        - description: terraform-example\n          cidrIp: 1.2.3.45/24\n      authorizeSecurityPolicyRules:\n        - type: inflow\n          policy: accept\n          description: terraform-example\n          portRange: 80/80\n          ipProtocol: TCP\n          priority: '1'\n          cidrIp: 1.2.3.4/24\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nElastic Desktop Service (ECD) Policy Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eds/ecdPolicyGroup:EcdPolicyGroup example \u003cid\u003e\n```\n\n","properties":{"authorizeAccessPolicyRules":{"type":"array","items":{"$ref":"#/types/alicloud:eds/EcdPolicyGroupAuthorizeAccessPolicyRule:EcdPolicyGroupAuthorizeAccessPolicyRule"},"description":"The rule of authorize access rule. See \u003cspan pulumi-lang-nodejs=\"`authorizeAccessPolicyRules`\" pulumi-lang-dotnet=\"`AuthorizeAccessPolicyRules`\" pulumi-lang-go=\"`authorizeAccessPolicyRules`\" pulumi-lang-python=\"`authorize_access_policy_rules`\" pulumi-lang-yaml=\"`authorizeAccessPolicyRules`\" pulumi-lang-java=\"`authorizeAccessPolicyRules`\"\u003e`authorize_access_policy_rules`\u003c/span\u003e below.\n"},"authorizeSecurityPolicyRules":{"type":"array","items":{"$ref":"#/types/alicloud:eds/EcdPolicyGroupAuthorizeSecurityPolicyRule:EcdPolicyGroupAuthorizeSecurityPolicyRule"},"description":"The policy rule. See \u003cspan pulumi-lang-nodejs=\"`authorizeSecurityPolicyRules`\" pulumi-lang-dotnet=\"`AuthorizeSecurityPolicyRules`\" pulumi-lang-go=\"`authorizeSecurityPolicyRules`\" pulumi-lang-python=\"`authorize_security_policy_rules`\" pulumi-lang-yaml=\"`authorizeSecurityPolicyRules`\" pulumi-lang-java=\"`authorizeSecurityPolicyRules`\"\u003e`authorize_security_policy_rules`\u003c/span\u003e below.\n"},"cameraRedirect":{"type":"string","description":"Whether to enable local camera redirection. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"clipboard":{"type":"string","description":"The clipboard policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readwrite`\" pulumi-lang-dotnet=\"`Readwrite`\" pulumi-lang-go=\"`readwrite`\" pulumi-lang-python=\"`readwrite`\" pulumi-lang-yaml=\"`readwrite`\" pulumi-lang-java=\"`readwrite`\"\u003e`readwrite`\u003c/span\u003e.\n"},"domainList":{"type":"string","description":"The list of domain.\n"},"htmlAccess":{"type":"string","description":"The access of html5. Valid values: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e.\n"},"htmlFileTransfer":{"type":"string","description":"The html5 file transfer. Valid values: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`download`\" pulumi-lang-dotnet=\"`Download`\" pulumi-lang-go=\"`download`\" pulumi-lang-python=\"`download`\" pulumi-lang-yaml=\"`download`\" pulumi-lang-java=\"`download`\"\u003e`download`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`upload`\" pulumi-lang-dotnet=\"`Upload`\" pulumi-lang-go=\"`upload`\" pulumi-lang-python=\"`upload`\" pulumi-lang-yaml=\"`upload`\" pulumi-lang-java=\"`upload`\"\u003e`upload`\u003c/span\u003e.\n"},"localDrive":{"type":"string","description":"Local drive redirect policy. Valid values: ` readwrite`, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e.\n"},"policyGroupName":{"type":"string","description":"The name of policy group.\n"},"recording":{"type":"string","description":"Whether to enable screen recording. Valid values: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, `all-time`, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"},"recordingEndTime":{"type":"string","description":"The end time of recording, value: `HH:MM:SS`. This return value is meaningful only when the value of \u003cspan pulumi-lang-nodejs=\"`recording`\" pulumi-lang-dotnet=\"`Recording`\" pulumi-lang-go=\"`recording`\" pulumi-lang-python=\"`recording`\" pulumi-lang-yaml=\"`recording`\" pulumi-lang-java=\"`recording`\"\u003e`recording`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"},"recordingExpires":{"type":"integer","description":"The screen recording video retention. Valid values between 30 and 180. This return value is meaningful only when the value of \u003cspan pulumi-lang-nodejs=\"`recording`\" pulumi-lang-dotnet=\"`Recording`\" pulumi-lang-go=\"`recording`\" pulumi-lang-python=\"`recording`\" pulumi-lang-yaml=\"`recording`\" pulumi-lang-java=\"`recording`\"\u003e`recording`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e or `all-time`.\n"},"recordingFps":{"type":"integer","description":"The fps of recording. Valid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e.\n"},"recordingStartTime":{"type":"string","description":"The start time of recording, value: `HH:MM:SS`. This return value is meaningful only when the value of \u003cspan pulumi-lang-nodejs=\"`recording`\" pulumi-lang-dotnet=\"`Recording`\" pulumi-lang-go=\"`recording`\" pulumi-lang-python=\"`recording`\" pulumi-lang-yaml=\"`recording`\" pulumi-lang-java=\"`recording`\"\u003e`recording`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of policy.\n"},"usbRedirect":{"type":"string","description":"The usb redirect policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e.\n"},"visualQuality":{"type":"string","description":"The quality of visual. Valid values: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`lossless`\" pulumi-lang-dotnet=\"`Lossless`\" pulumi-lang-go=\"`lossless`\" pulumi-lang-python=\"`lossless`\" pulumi-lang-yaml=\"`lossless`\" pulumi-lang-java=\"`lossless`\"\u003e`lossless`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e.\n"},"watermark":{"type":"string","description":"The watermark policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e.\n"},"watermarkTransparency":{"type":"string","description":"The watermark transparency. Valid values: `DARK`, `LIGHT`, `MIDDLE`.\n"},"watermarkType":{"type":"string","description":"The type of watemark. Valid values: `EndUserId`, `HostName`.\n"}},"required":["cameraRedirect","clipboard","htmlAccess","htmlFileTransfer","localDrive","recording","recordingExpires","recordingFps","status","usbRedirect","visualQuality","watermark","watermarkTransparency","watermarkType"],"inputProperties":{"authorizeAccessPolicyRules":{"type":"array","items":{"$ref":"#/types/alicloud:eds/EcdPolicyGroupAuthorizeAccessPolicyRule:EcdPolicyGroupAuthorizeAccessPolicyRule"},"description":"The rule of authorize access rule. See \u003cspan pulumi-lang-nodejs=\"`authorizeAccessPolicyRules`\" pulumi-lang-dotnet=\"`AuthorizeAccessPolicyRules`\" pulumi-lang-go=\"`authorizeAccessPolicyRules`\" pulumi-lang-python=\"`authorize_access_policy_rules`\" pulumi-lang-yaml=\"`authorizeAccessPolicyRules`\" pulumi-lang-java=\"`authorizeAccessPolicyRules`\"\u003e`authorize_access_policy_rules`\u003c/span\u003e below.\n"},"authorizeSecurityPolicyRules":{"type":"array","items":{"$ref":"#/types/alicloud:eds/EcdPolicyGroupAuthorizeSecurityPolicyRule:EcdPolicyGroupAuthorizeSecurityPolicyRule"},"description":"The policy rule. See \u003cspan pulumi-lang-nodejs=\"`authorizeSecurityPolicyRules`\" pulumi-lang-dotnet=\"`AuthorizeSecurityPolicyRules`\" pulumi-lang-go=\"`authorizeSecurityPolicyRules`\" pulumi-lang-python=\"`authorize_security_policy_rules`\" pulumi-lang-yaml=\"`authorizeSecurityPolicyRules`\" pulumi-lang-java=\"`authorizeSecurityPolicyRules`\"\u003e`authorize_security_policy_rules`\u003c/span\u003e below.\n"},"cameraRedirect":{"type":"string","description":"Whether to enable local camera redirection. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"clipboard":{"type":"string","description":"The clipboard policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readwrite`\" pulumi-lang-dotnet=\"`Readwrite`\" pulumi-lang-go=\"`readwrite`\" pulumi-lang-python=\"`readwrite`\" pulumi-lang-yaml=\"`readwrite`\" pulumi-lang-java=\"`readwrite`\"\u003e`readwrite`\u003c/span\u003e.\n"},"domainList":{"type":"string","description":"The list of domain.\n"},"htmlAccess":{"type":"string","description":"The access of html5. Valid values: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e.\n"},"htmlFileTransfer":{"type":"string","description":"The html5 file transfer. Valid values: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`download`\" pulumi-lang-dotnet=\"`Download`\" pulumi-lang-go=\"`download`\" pulumi-lang-python=\"`download`\" pulumi-lang-yaml=\"`download`\" pulumi-lang-java=\"`download`\"\u003e`download`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`upload`\" pulumi-lang-dotnet=\"`Upload`\" pulumi-lang-go=\"`upload`\" pulumi-lang-python=\"`upload`\" pulumi-lang-yaml=\"`upload`\" pulumi-lang-java=\"`upload`\"\u003e`upload`\u003c/span\u003e.\n"},"localDrive":{"type":"string","description":"Local drive redirect policy. Valid values: ` readwrite`, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e.\n"},"policyGroupName":{"type":"string","description":"The name of policy group.\n"},"recording":{"type":"string","description":"Whether to enable screen recording. Valid values: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, `all-time`, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"},"recordingEndTime":{"type":"string","description":"The end time of recording, value: `HH:MM:SS`. This return value is meaningful only when the value of \u003cspan pulumi-lang-nodejs=\"`recording`\" pulumi-lang-dotnet=\"`Recording`\" pulumi-lang-go=\"`recording`\" pulumi-lang-python=\"`recording`\" pulumi-lang-yaml=\"`recording`\" pulumi-lang-java=\"`recording`\"\u003e`recording`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"},"recordingExpires":{"type":"integer","description":"The screen recording video retention. Valid values between 30 and 180. This return value is meaningful only when the value of \u003cspan pulumi-lang-nodejs=\"`recording`\" pulumi-lang-dotnet=\"`Recording`\" pulumi-lang-go=\"`recording`\" pulumi-lang-python=\"`recording`\" pulumi-lang-yaml=\"`recording`\" pulumi-lang-java=\"`recording`\"\u003e`recording`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e or `all-time`.\n"},"recordingFps":{"type":"integer","description":"The fps of recording. Valid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e.\n"},"recordingStartTime":{"type":"string","description":"The start time of recording, value: `HH:MM:SS`. This return value is meaningful only when the value of \u003cspan pulumi-lang-nodejs=\"`recording`\" pulumi-lang-dotnet=\"`Recording`\" pulumi-lang-go=\"`recording`\" pulumi-lang-python=\"`recording`\" pulumi-lang-yaml=\"`recording`\" pulumi-lang-java=\"`recording`\"\u003e`recording`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"},"usbRedirect":{"type":"string","description":"The usb redirect policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e.\n"},"visualQuality":{"type":"string","description":"The quality of visual. Valid values: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`lossless`\" pulumi-lang-dotnet=\"`Lossless`\" pulumi-lang-go=\"`lossless`\" pulumi-lang-python=\"`lossless`\" pulumi-lang-yaml=\"`lossless`\" pulumi-lang-java=\"`lossless`\"\u003e`lossless`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e.\n"},"watermark":{"type":"string","description":"The watermark policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e.\n"},"watermarkTransparency":{"type":"string","description":"The watermark transparency. Valid values: `DARK`, `LIGHT`, `MIDDLE`.\n"},"watermarkType":{"type":"string","description":"The type of watemark. Valid values: `EndUserId`, `HostName`.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering EcdPolicyGroup resources.\n","properties":{"authorizeAccessPolicyRules":{"type":"array","items":{"$ref":"#/types/alicloud:eds/EcdPolicyGroupAuthorizeAccessPolicyRule:EcdPolicyGroupAuthorizeAccessPolicyRule"},"description":"The rule of authorize access rule. See \u003cspan pulumi-lang-nodejs=\"`authorizeAccessPolicyRules`\" pulumi-lang-dotnet=\"`AuthorizeAccessPolicyRules`\" pulumi-lang-go=\"`authorizeAccessPolicyRules`\" pulumi-lang-python=\"`authorize_access_policy_rules`\" pulumi-lang-yaml=\"`authorizeAccessPolicyRules`\" pulumi-lang-java=\"`authorizeAccessPolicyRules`\"\u003e`authorize_access_policy_rules`\u003c/span\u003e below.\n"},"authorizeSecurityPolicyRules":{"type":"array","items":{"$ref":"#/types/alicloud:eds/EcdPolicyGroupAuthorizeSecurityPolicyRule:EcdPolicyGroupAuthorizeSecurityPolicyRule"},"description":"The policy rule. See \u003cspan pulumi-lang-nodejs=\"`authorizeSecurityPolicyRules`\" pulumi-lang-dotnet=\"`AuthorizeSecurityPolicyRules`\" pulumi-lang-go=\"`authorizeSecurityPolicyRules`\" pulumi-lang-python=\"`authorize_security_policy_rules`\" pulumi-lang-yaml=\"`authorizeSecurityPolicyRules`\" pulumi-lang-java=\"`authorizeSecurityPolicyRules`\"\u003e`authorize_security_policy_rules`\u003c/span\u003e below.\n"},"cameraRedirect":{"type":"string","description":"Whether to enable local camera redirection. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"clipboard":{"type":"string","description":"The clipboard policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readwrite`\" pulumi-lang-dotnet=\"`Readwrite`\" pulumi-lang-go=\"`readwrite`\" pulumi-lang-python=\"`readwrite`\" pulumi-lang-yaml=\"`readwrite`\" pulumi-lang-java=\"`readwrite`\"\u003e`readwrite`\u003c/span\u003e.\n"},"domainList":{"type":"string","description":"The list of domain.\n"},"htmlAccess":{"type":"string","description":"The access of html5. Valid values: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e.\n"},"htmlFileTransfer":{"type":"string","description":"The html5 file transfer. Valid values: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`download`\" pulumi-lang-dotnet=\"`Download`\" pulumi-lang-go=\"`download`\" pulumi-lang-python=\"`download`\" pulumi-lang-yaml=\"`download`\" pulumi-lang-java=\"`download`\"\u003e`download`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`upload`\" pulumi-lang-dotnet=\"`Upload`\" pulumi-lang-go=\"`upload`\" pulumi-lang-python=\"`upload`\" pulumi-lang-yaml=\"`upload`\" pulumi-lang-java=\"`upload`\"\u003e`upload`\u003c/span\u003e.\n"},"localDrive":{"type":"string","description":"Local drive redirect policy. Valid values: ` readwrite`, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e.\n"},"policyGroupName":{"type":"string","description":"The name of policy group.\n"},"recording":{"type":"string","description":"Whether to enable screen recording. Valid values: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, `all-time`, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"},"recordingEndTime":{"type":"string","description":"The end time of recording, value: `HH:MM:SS`. This return value is meaningful only when the value of \u003cspan pulumi-lang-nodejs=\"`recording`\" pulumi-lang-dotnet=\"`Recording`\" pulumi-lang-go=\"`recording`\" pulumi-lang-python=\"`recording`\" pulumi-lang-yaml=\"`recording`\" pulumi-lang-java=\"`recording`\"\u003e`recording`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"},"recordingExpires":{"type":"integer","description":"The screen recording video retention. Valid values between 30 and 180. This return value is meaningful only when the value of \u003cspan pulumi-lang-nodejs=\"`recording`\" pulumi-lang-dotnet=\"`Recording`\" pulumi-lang-go=\"`recording`\" pulumi-lang-python=\"`recording`\" pulumi-lang-yaml=\"`recording`\" pulumi-lang-java=\"`recording`\"\u003e`recording`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e or `all-time`.\n"},"recordingFps":{"type":"integer","description":"The fps of recording. Valid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e.\n"},"recordingStartTime":{"type":"string","description":"The start time of recording, value: `HH:MM:SS`. This return value is meaningful only when the value of \u003cspan pulumi-lang-nodejs=\"`recording`\" pulumi-lang-dotnet=\"`Recording`\" pulumi-lang-go=\"`recording`\" pulumi-lang-python=\"`recording`\" pulumi-lang-yaml=\"`recording`\" pulumi-lang-java=\"`recording`\"\u003e`recording`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of policy.\n"},"usbRedirect":{"type":"string","description":"The usb redirect policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e.\n"},"visualQuality":{"type":"string","description":"The quality of visual. Valid values: \u003cspan pulumi-lang-nodejs=\"`high`\" pulumi-lang-dotnet=\"`High`\" pulumi-lang-go=\"`high`\" pulumi-lang-python=\"`high`\" pulumi-lang-yaml=\"`high`\" pulumi-lang-java=\"`high`\"\u003e`high`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`lossless`\" pulumi-lang-dotnet=\"`Lossless`\" pulumi-lang-go=\"`lossless`\" pulumi-lang-python=\"`lossless`\" pulumi-lang-yaml=\"`lossless`\" pulumi-lang-java=\"`lossless`\"\u003e`lossless`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`medium`\" pulumi-lang-dotnet=\"`Medium`\" pulumi-lang-go=\"`medium`\" pulumi-lang-python=\"`medium`\" pulumi-lang-yaml=\"`medium`\" pulumi-lang-java=\"`medium`\"\u003e`medium`\u003c/span\u003e.\n"},"watermark":{"type":"string","description":"The watermark policy. Valid values: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e.\n"},"watermarkTransparency":{"type":"string","description":"The watermark transparency. Valid values: `DARK`, `LIGHT`, `MIDDLE`.\n"},"watermarkType":{"type":"string","description":"The type of watemark. Valid values: `EndUserId`, `HostName`.\n"}},"type":"object"}},"alicloud:eds/image:Image":{"description":"Provides a ECD Image resource.\n\nFor information about ECD Image and how to use it, see [What is Image](https://www.alibabacloud.com/help/en/wuying-workspace/developer-reference/api-ecd-2020-09-30-createimage).\n\n\u003e **NOTE:** Available since v1.146.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultSimpleOfficeSite = new alicloud.eds.SimpleOfficeSite(\"default\", {\n    cidrBlock: \"172.16.0.0/12\",\n    enableAdminAccess: true,\n    desktopAccessType: \"Internet\",\n    officeSiteName: `${name}-${defaultInteger.result}`,\n});\nconst defaultEcdPolicyGroup = new alicloud.eds.EcdPolicyGroup(\"default\", {\n    policyGroupName: name,\n    clipboard: \"read\",\n    localDrive: \"read\",\n    usbRedirect: \"off\",\n    watermark: \"off\",\n    authorizeAccessPolicyRules: [{\n        description: name,\n        cidrIp: \"1.2.3.45/24\",\n    }],\n    authorizeSecurityPolicyRules: [{\n        type: \"inflow\",\n        policy: \"accept\",\n        description: name,\n        portRange: \"80/80\",\n        ipProtocol: \"TCP\",\n        priority: \"1\",\n        cidrIp: \"1.2.3.4/24\",\n    }],\n});\nconst _default = alicloud.eds.getBundles({\n    bundleType: \"SYSTEM\",\n});\nconst defaultDesktop = new alicloud.eds.Desktop(\"default\", {\n    officeSiteId: defaultSimpleOfficeSite.id,\n    policyGroupId: defaultEcdPolicyGroup.id,\n    bundleId: _default.then(_default =\u003e _default.bundles?.[1]?.id),\n    desktopName: name,\n});\nconst defaultImage = new alicloud.eds.Image(\"default\", {\n    imageName: name,\n    desktopId: defaultDesktop.id,\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_simple_office_site = alicloud.eds.SimpleOfficeSite(\"default\",\n    cidr_block=\"172.16.0.0/12\",\n    enable_admin_access=True,\n    desktop_access_type=\"Internet\",\n    office_site_name=f\"{name}-{default_integer['result']}\")\ndefault_ecd_policy_group = alicloud.eds.EcdPolicyGroup(\"default\",\n    policy_group_name=name,\n    clipboard=\"read\",\n    local_drive=\"read\",\n    usb_redirect=\"off\",\n    watermark=\"off\",\n    authorize_access_policy_rules=[{\n        \"description\": name,\n        \"cidr_ip\": \"1.2.3.45/24\",\n    }],\n    authorize_security_policy_rules=[{\n        \"type\": \"inflow\",\n        \"policy\": \"accept\",\n        \"description\": name,\n        \"port_range\": \"80/80\",\n        \"ip_protocol\": \"TCP\",\n        \"priority\": \"1\",\n        \"cidr_ip\": \"1.2.3.4/24\",\n    }])\ndefault = alicloud.eds.get_bundles(bundle_type=\"SYSTEM\")\ndefault_desktop = alicloud.eds.Desktop(\"default\",\n    office_site_id=default_simple_office_site.id,\n    policy_group_id=default_ecd_policy_group.id,\n    bundle_id=default.bundles[1].id,\n    desktop_name=name)\ndefault_image = alicloud.eds.Image(\"default\",\n    image_name=name,\n    desktop_id=default_desktop.id,\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultSimpleOfficeSite = new AliCloud.Eds.SimpleOfficeSite(\"default\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        EnableAdminAccess = true,\n        DesktopAccessType = \"Internet\",\n        OfficeSiteName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultEcdPolicyGroup = new AliCloud.Eds.EcdPolicyGroup(\"default\", new()\n    {\n        PolicyGroupName = name,\n        Clipboard = \"read\",\n        LocalDrive = \"read\",\n        UsbRedirect = \"off\",\n        Watermark = \"off\",\n        AuthorizeAccessPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs\n            {\n                Description = name,\n                CidrIp = \"1.2.3.45/24\",\n            },\n        },\n        AuthorizeSecurityPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs\n            {\n                Type = \"inflow\",\n                Policy = \"accept\",\n                Description = name,\n                PortRange = \"80/80\",\n                IpProtocol = \"TCP\",\n                Priority = \"1\",\n                CidrIp = \"1.2.3.4/24\",\n            },\n        },\n    });\n\n    var @default = AliCloud.Eds.GetBundles.Invoke(new()\n    {\n        BundleType = \"SYSTEM\",\n    });\n\n    var defaultDesktop = new AliCloud.Eds.Desktop(\"default\", new()\n    {\n        OfficeSiteId = defaultSimpleOfficeSite.Id,\n        PolicyGroupId = defaultEcdPolicyGroup.Id,\n        BundleId = @default.Apply(@default =\u003e @default.Apply(getBundlesResult =\u003e getBundlesResult.Bundles[1]?.Id)),\n        DesktopName = name,\n    });\n\n    var defaultImage = new AliCloud.Eds.Image(\"default\", new()\n    {\n        ImageName = name,\n        DesktopId = defaultDesktop.Id,\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSimpleOfficeSite, err := eds.NewSimpleOfficeSite(ctx, \"default\", \u0026eds.SimpleOfficeSiteArgs{\n\t\t\tCidrBlock:         pulumi.String(\"172.16.0.0/12\"),\n\t\t\tEnableAdminAccess: pulumi.Bool(true),\n\t\t\tDesktopAccessType: pulumi.String(\"Internet\"),\n\t\t\tOfficeSiteName:    pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcdPolicyGroup, err := eds.NewEcdPolicyGroup(ctx, \"default\", \u0026eds.EcdPolicyGroupArgs{\n\t\t\tPolicyGroupName: pulumi.String(name),\n\t\t\tClipboard:       pulumi.String(\"read\"),\n\t\t\tLocalDrive:      pulumi.String(\"read\"),\n\t\t\tUsbRedirect:     pulumi.String(\"off\"),\n\t\t\tWatermark:       pulumi.String(\"off\"),\n\t\t\tAuthorizeAccessPolicyRules: eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs{\n\t\t\t\t\tDescription: pulumi.String(name),\n\t\t\t\t\tCidrIp:      pulumi.String(\"1.2.3.45/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAuthorizeSecurityPolicyRules: eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs{\n\t\t\t\t\tType:        pulumi.String(\"inflow\"),\n\t\t\t\t\tPolicy:      pulumi.String(\"accept\"),\n\t\t\t\t\tDescription: pulumi.String(name),\n\t\t\t\t\tPortRange:   pulumi.String(\"80/80\"),\n\t\t\t\t\tIpProtocol:  pulumi.String(\"TCP\"),\n\t\t\t\t\tPriority:    pulumi.String(\"1\"),\n\t\t\t\t\tCidrIp:      pulumi.String(\"1.2.3.4/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := eds.GetBundles(ctx, \u0026eds.GetBundlesArgs{\n\t\t\tBundleType: pulumi.StringRef(\"SYSTEM\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDesktop, err := eds.NewDesktop(ctx, \"default\", \u0026eds.DesktopArgs{\n\t\t\tOfficeSiteId:  defaultSimpleOfficeSite.ID(),\n\t\t\tPolicyGroupId: defaultEcdPolicyGroup.ID(),\n\t\t\tBundleId:      pulumi.String(_default.Bundles[1].Id),\n\t\t\tDesktopName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eds.NewImage(ctx, \"default\", \u0026eds.ImageArgs{\n\t\t\tImageName:   pulumi.String(name),\n\t\t\tDesktopId:   defaultDesktop.ID(),\n\t\t\tDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.eds.SimpleOfficeSite;\nimport com.pulumi.alicloud.eds.SimpleOfficeSiteArgs;\nimport com.pulumi.alicloud.eds.EcdPolicyGroup;\nimport com.pulumi.alicloud.eds.EcdPolicyGroupArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetBundlesArgs;\nimport com.pulumi.alicloud.eds.Desktop;\nimport com.pulumi.alicloud.eds.DesktopArgs;\nimport com.pulumi.alicloud.eds.Image;\nimport com.pulumi.alicloud.eds.ImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultSimpleOfficeSite = new SimpleOfficeSite(\"defaultSimpleOfficeSite\", SimpleOfficeSiteArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .enableAdminAccess(true)\n            .desktopAccessType(\"Internet\")\n            .officeSiteName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultEcdPolicyGroup = new EcdPolicyGroup(\"defaultEcdPolicyGroup\", EcdPolicyGroupArgs.builder()\n            .policyGroupName(name)\n            .clipboard(\"read\")\n            .localDrive(\"read\")\n            .usbRedirect(\"off\")\n            .watermark(\"off\")\n            .authorizeAccessPolicyRules(EcdPolicyGroupAuthorizeAccessPolicyRuleArgs.builder()\n                .description(name)\n                .cidrIp(\"1.2.3.45/24\")\n                .build())\n            .authorizeSecurityPolicyRules(EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs.builder()\n                .type(\"inflow\")\n                .policy(\"accept\")\n                .description(name)\n                .portRange(\"80/80\")\n                .ipProtocol(\"TCP\")\n                .priority(\"1\")\n                .cidrIp(\"1.2.3.4/24\")\n                .build())\n            .build());\n\n        final var default = EdsFunctions.getBundles(GetBundlesArgs.builder()\n            .bundleType(\"SYSTEM\")\n            .build());\n\n        var defaultDesktop = new Desktop(\"defaultDesktop\", DesktopArgs.builder()\n            .officeSiteId(defaultSimpleOfficeSite.id())\n            .policyGroupId(defaultEcdPolicyGroup.id())\n            .bundleId(default_.bundles()[1].id())\n            .desktopName(name)\n            .build());\n\n        var defaultImage = new Image(\"defaultImage\", ImageArgs.builder()\n            .imageName(name)\n            .desktopId(defaultDesktop.id())\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultSimpleOfficeSite:\n    type: alicloud:eds:SimpleOfficeSite\n    name: default\n    properties:\n      cidrBlock: 172.16.0.0/12\n      enableAdminAccess: true\n      desktopAccessType: Internet\n      officeSiteName: ${name}-${defaultInteger.result}\n  defaultEcdPolicyGroup:\n    type: alicloud:eds:EcdPolicyGroup\n    name: default\n    properties:\n      policyGroupName: ${name}\n      clipboard: read\n      localDrive: read\n      usbRedirect: off\n      watermark: off\n      authorizeAccessPolicyRules:\n        - description: ${name}\n          cidrIp: 1.2.3.45/24\n      authorizeSecurityPolicyRules:\n        - type: inflow\n          policy: accept\n          description: ${name}\n          portRange: 80/80\n          ipProtocol: TCP\n          priority: '1'\n          cidrIp: 1.2.3.4/24\n  defaultDesktop:\n    type: alicloud:eds:Desktop\n    name: default\n    properties:\n      officeSiteId: ${defaultSimpleOfficeSite.id}\n      policyGroupId: ${defaultEcdPolicyGroup.id}\n      bundleId: ${default.bundles[1].id}\n      desktopName: ${name}\n  defaultImage:\n    type: alicloud:eds:Image\n    name: default\n    properties:\n      imageName: ${name}\n      desktopId: ${defaultDesktop.id}\n      description: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eds:getBundles\n      arguments:\n        bundleType: SYSTEM\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECD Image can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eds/image:Image example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the image.\n"},"desktopId":{"type":"string","description":"The desktop id of the desktop.\n"},"imageName":{"type":"string","description":"The name of the image.\n"},"status":{"type":"string","description":"The status of the image. Valid values: `Creating`, `Available`, `CreateFailed`.\n"}},"required":["desktopId","status"],"inputProperties":{"description":{"type":"string","description":"The description of the image.\n"},"desktopId":{"type":"string","description":"The desktop id of the desktop.\n"},"imageName":{"type":"string","description":"The name of the image.\n"}},"requiredInputs":["desktopId"],"stateInputs":{"description":"Input properties used for looking up and filtering Image resources.\n","properties":{"description":{"type":"string","description":"The description of the image.\n"},"desktopId":{"type":"string","description":"The desktop id of the desktop.\n"},"imageName":{"type":"string","description":"The name of the image.\n"},"status":{"type":"string","description":"The status of the image. Valid values: `Creating`, `Available`, `CreateFailed`.\n"}},"type":"object"}},"alicloud:eds/nasFileSystem:NasFileSystem":{"description":"Provides a ECD Nas File System resource.\n\nFor information about ECD Nas File System and how to use it, see [What is Nas File System](https://www.alibabacloud.com/help/en/elastic-desktop-service/latest/api-reference-for-easy-use-1).\n\n\u003e **NOTE:** Available since v1.141.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultSimpleOfficeSite = new alicloud.eds.SimpleOfficeSite(\"default\", {\n    cidrBlock: \"172.16.0.0/12\",\n    enableAdminAccess: false,\n    desktopAccessType: \"Internet\",\n    officeSiteName: `${name}-${_default.result}`,\n});\nconst example = new alicloud.eds.NasFileSystem(\"example\", {\n    nasFileSystemName: name,\n    officeSiteId: defaultSimpleOfficeSite.id,\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_simple_office_site = alicloud.eds.SimpleOfficeSite(\"default\",\n    cidr_block=\"172.16.0.0/12\",\n    enable_admin_access=False,\n    desktop_access_type=\"Internet\",\n    office_site_name=f\"{name}-{default['result']}\")\nexample = alicloud.eds.NasFileSystem(\"example\",\n    nas_file_system_name=name,\n    office_site_id=default_simple_office_site.id,\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultSimpleOfficeSite = new AliCloud.Eds.SimpleOfficeSite(\"default\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        EnableAdminAccess = false,\n        DesktopAccessType = \"Internet\",\n        OfficeSiteName = $\"{name}-{@default.Result}\",\n    });\n\n    var example = new AliCloud.Eds.NasFileSystem(\"example\", new()\n    {\n        NasFileSystemName = name,\n        OfficeSiteId = defaultSimpleOfficeSite.Id,\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSimpleOfficeSite, err := eds.NewSimpleOfficeSite(ctx, \"default\", \u0026eds.SimpleOfficeSiteArgs{\n\t\t\tCidrBlock:         pulumi.String(\"172.16.0.0/12\"),\n\t\t\tEnableAdminAccess: pulumi.Bool(false),\n\t\t\tDesktopAccessType: pulumi.String(\"Internet\"),\n\t\t\tOfficeSiteName:    pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eds.NewNasFileSystem(ctx, \"example\", \u0026eds.NasFileSystemArgs{\n\t\t\tNasFileSystemName: pulumi.String(name),\n\t\t\tOfficeSiteId:      defaultSimpleOfficeSite.ID(),\n\t\t\tDescription:       pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.eds.SimpleOfficeSite;\nimport com.pulumi.alicloud.eds.SimpleOfficeSiteArgs;\nimport com.pulumi.alicloud.eds.NasFileSystem;\nimport com.pulumi.alicloud.eds.NasFileSystemArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultSimpleOfficeSite = new SimpleOfficeSite(\"defaultSimpleOfficeSite\", SimpleOfficeSiteArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .enableAdminAccess(false)\n            .desktopAccessType(\"Internet\")\n            .officeSiteName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var example = new NasFileSystem(\"example\", NasFileSystemArgs.builder()\n            .nasFileSystemName(name)\n            .officeSiteId(defaultSimpleOfficeSite.id())\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultSimpleOfficeSite:\n    type: alicloud:eds:SimpleOfficeSite\n    name: default\n    properties:\n      cidrBlock: 172.16.0.0/12\n      enableAdminAccess: false\n      desktopAccessType: Internet\n      officeSiteName: ${name}-${default.result}\n  example:\n    type: alicloud:eds:NasFileSystem\n    properties:\n      nasFileSystemName: ${name}\n      officeSiteId: ${defaultSimpleOfficeSite.id}\n      description: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECD Nas File System can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eds/nasFileSystem:NasFileSystem example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of nas file system.\n"},"fileSystemId":{"type":"string","description":"The filesystem id of nas file system.\n"},"mountTargetDomain":{"type":"string","description":"The domain of mount target.\n"},"nasFileSystemName":{"type":"string","description":"The name of nas file system.\n"},"officeSiteId":{"type":"string","description":"The ID of office site.\n"},"reset":{"type":"boolean","description":"The mount point is in an inactive state, reset the mount point of the NAS file system. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of nas file system. Valid values: `Pending`, `Running`, `Stopped`,`Deleting`, `Deleted`, `Invalid`.\n"}},"required":["fileSystemId","mountTargetDomain","officeSiteId","status"],"inputProperties":{"description":{"type":"string","description":"The description of nas file system.\n","willReplaceOnChanges":true},"fileSystemId":{"type":"string","description":"The filesystem id of nas file system.\n"},"mountTargetDomain":{"type":"string","description":"The domain of mount target.\n"},"nasFileSystemName":{"type":"string","description":"The name of nas file system.\n","willReplaceOnChanges":true},"officeSiteId":{"type":"string","description":"The ID of office site.\n","willReplaceOnChanges":true},"reset":{"type":"boolean","description":"The mount point is in an inactive state, reset the mount point of the NAS file system. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"requiredInputs":["officeSiteId"],"stateInputs":{"description":"Input properties used for looking up and filtering NasFileSystem resources.\n","properties":{"description":{"type":"string","description":"The description of nas file system.\n","willReplaceOnChanges":true},"fileSystemId":{"type":"string","description":"The filesystem id of nas file system.\n"},"mountTargetDomain":{"type":"string","description":"The domain of mount target.\n"},"nasFileSystemName":{"type":"string","description":"The name of nas file system.\n","willReplaceOnChanges":true},"officeSiteId":{"type":"string","description":"The ID of office site.\n","willReplaceOnChanges":true},"reset":{"type":"boolean","description":"The mount point is in an inactive state, reset the mount point of the NAS file system. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of nas file system. Valid values: `Pending`, `Running`, `Stopped`,`Deleting`, `Deleted`, `Invalid`.\n"}},"type":"object"}},"alicloud:eds/networkPackage:NetworkPackage":{"description":"Provides a ECD Network Package resource.\n\nFor information about ECD Network Package and how to use it, see [What is Network Package](https://www.alibabacloud.com/help/en/wuying-workspace/developer-reference/api-ecd-2020-09-30-createnetworkpackage).\n\n\u003e **NOTE:** Available since v1.142.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultSimpleOfficeSite = new alicloud.eds.SimpleOfficeSite(\"default\", {\n    cidrBlock: \"172.16.0.0/12\",\n    enableAdminAccess: true,\n    desktopAccessType: \"Internet\",\n    officeSiteName: `terraform-example-${_default.result}`,\n});\nconst defaultNetworkPackage = new alicloud.eds.NetworkPackage(\"default\", {\n    bandwidth: 10,\n    officeSiteId: defaultSimpleOfficeSite.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_simple_office_site = alicloud.eds.SimpleOfficeSite(\"default\",\n    cidr_block=\"172.16.0.0/12\",\n    enable_admin_access=True,\n    desktop_access_type=\"Internet\",\n    office_site_name=f\"terraform-example-{default['result']}\")\ndefault_network_package = alicloud.eds.NetworkPackage(\"default\",\n    bandwidth=10,\n    office_site_id=default_simple_office_site.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultSimpleOfficeSite = new AliCloud.Eds.SimpleOfficeSite(\"default\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        EnableAdminAccess = true,\n        DesktopAccessType = \"Internet\",\n        OfficeSiteName = $\"terraform-example-{@default.Result}\",\n    });\n\n    var defaultNetworkPackage = new AliCloud.Eds.NetworkPackage(\"default\", new()\n    {\n        Bandwidth = 10,\n        OfficeSiteId = defaultSimpleOfficeSite.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSimpleOfficeSite, err := eds.NewSimpleOfficeSite(ctx, \"default\", \u0026eds.SimpleOfficeSiteArgs{\n\t\t\tCidrBlock:         pulumi.String(\"172.16.0.0/12\"),\n\t\t\tEnableAdminAccess: pulumi.Bool(true),\n\t\t\tDesktopAccessType: pulumi.String(\"Internet\"),\n\t\t\tOfficeSiteName:    pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eds.NewNetworkPackage(ctx, \"default\", \u0026eds.NetworkPackageArgs{\n\t\t\tBandwidth:    pulumi.Int(10),\n\t\t\tOfficeSiteId: defaultSimpleOfficeSite.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.eds.SimpleOfficeSite;\nimport com.pulumi.alicloud.eds.SimpleOfficeSiteArgs;\nimport com.pulumi.alicloud.eds.NetworkPackage;\nimport com.pulumi.alicloud.eds.NetworkPackageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultSimpleOfficeSite = new SimpleOfficeSite(\"defaultSimpleOfficeSite\", SimpleOfficeSiteArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .enableAdminAccess(true)\n            .desktopAccessType(\"Internet\")\n            .officeSiteName(String.format(\"terraform-example-%s\", default_.result()))\n            .build());\n\n        var defaultNetworkPackage = new NetworkPackage(\"defaultNetworkPackage\", NetworkPackageArgs.builder()\n            .bandwidth(10)\n            .officeSiteId(defaultSimpleOfficeSite.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultSimpleOfficeSite:\n    type: alicloud:eds:SimpleOfficeSite\n    name: default\n    properties:\n      cidrBlock: 172.16.0.0/12\n      enableAdminAccess: true\n      desktopAccessType: Internet\n      officeSiteName: terraform-example-${default.result}\n  defaultNetworkPackage:\n    type: alicloud:eds:NetworkPackage\n    name: default\n    properties:\n      bandwidth: 10\n      officeSiteId: ${defaultSimpleOfficeSite.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECD Network Package can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eds/networkPackage:NetworkPackage example \u003cid\u003e\n```\n\n","properties":{"bandwidth":{"type":"integer","description":"The bandwidth of package public network bandwidth peak. Valid values: 1~200. Unit:Mbps.\n"},"internetChargeType":{"type":"string","description":"The internet charge type  of  package.\n"},"officeSiteId":{"type":"string","description":"The ID of office site.\n"},"status":{"type":"string","description":"The status of network package. Valid values: `Creating`, `InUse`, `Releasing`,`Released`.\n"}},"required":["bandwidth","internetChargeType","officeSiteId","status"],"inputProperties":{"bandwidth":{"type":"integer","description":"The bandwidth of package public network bandwidth peak. Valid values: 1~200. Unit:Mbps.\n"},"officeSiteId":{"type":"string","description":"The ID of office site.\n","willReplaceOnChanges":true}},"requiredInputs":["bandwidth","officeSiteId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkPackage resources.\n","properties":{"bandwidth":{"type":"integer","description":"The bandwidth of package public network bandwidth peak. Valid values: 1~200. Unit:Mbps.\n"},"internetChargeType":{"type":"string","description":"The internet charge type  of  package.\n"},"officeSiteId":{"type":"string","description":"The ID of office site.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of network package. Valid values: `Creating`, `InUse`, `Releasing`,`Released`.\n"}},"type":"object"}},"alicloud:eds/ramDirectory:RamDirectory":{"description":"Provides a ECD Ram Directory resource.\n\nFor information about ECD Ram Directory and how to use it, see [What is Ram Directory](https://www.alibabacloud.com/help/en/wuying-workspace/developer-reference/api-ecd-2020-09-30-createramdirectory).\n\n\u003e **NOTE:** Available since v1.174.0.\n\n\u003e **DEPRECATED:** This resource has been deprecated from version `1.239.0`.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.eds.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n    vswitchName: name,\n});\nconst defaultRamDirectory = new alicloud.eds.RamDirectory(\"default\", {\n    desktopAccessType: \"INTERNET\",\n    enableAdminAccess: true,\n    ramDirectoryName: name,\n    vswitchIds: [defaultSwitch.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.eds.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.ids[0],\n    vswitch_name=name)\ndefault_ram_directory = alicloud.eds.RamDirectory(\"default\",\n    desktop_access_type=\"INTERNET\",\n    enable_admin_access=True,\n    ram_directory_name=name,\n    vswitch_ids=[default_switch.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Eds.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n        VswitchName = name,\n    });\n\n    var defaultRamDirectory = new AliCloud.Eds.RamDirectory(\"default\", new()\n    {\n        DesktopAccessType = \"INTERNET\",\n        EnableAdminAccess = true,\n        RamDirectoryName = name,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := eds.GetZones(ctx, \u0026eds.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Ids[0]),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eds.NewRamDirectory(ctx, \"default\", \u0026eds.RamDirectoryArgs{\n\t\t\tDesktopAccessType: pulumi.String(\"INTERNET\"),\n\t\t\tEnableAdminAccess: pulumi.Bool(true),\n\t\t\tRamDirectoryName:  pulumi.String(name),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.eds.RamDirectory;\nimport com.pulumi.alicloud.eds.RamDirectoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = EdsFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.ids()[0])\n            .vswitchName(name)\n            .build());\n\n        var defaultRamDirectory = new RamDirectory(\"defaultRamDirectory\", RamDirectoryArgs.builder()\n            .desktopAccessType(\"INTERNET\")\n            .enableAdminAccess(true)\n            .ramDirectoryName(name)\n            .vswitchIds(defaultSwitch.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.ids[0]}\n      vswitchName: ${name}\n  defaultRamDirectory:\n    type: alicloud:eds:RamDirectory\n    name: default\n    properties:\n      desktopAccessType: INTERNET\n      enableAdminAccess: true\n      ramDirectoryName: ${name}\n      vswitchIds:\n        - ${defaultSwitch.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eds:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECD Ram Directory can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eds/ramDirectory:RamDirectory example \u003cid\u003e\n```\n\n","properties":{"desktopAccessType":{"type":"string","description":"The desktop access type. Valid values: `VPC`, `INTERNET`, `ANY`.\n"},"enableAdminAccess":{"type":"boolean","description":"Whether to enable public network access.\n"},"enableInternetAccess":{"type":"boolean","description":"Whether to grant local administrator rights to users who use cloud desktops.\n"},"ramDirectoryName":{"type":"string","description":"The name of the directory. The name must be 2 to 255 characters in length. It must start with a letter but cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n"},"status":{"type":"string","description":"The status of directory.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"List of VSwitch IDs in the directory.\n"}},"required":["desktopAccessType","enableAdminAccess","enableInternetAccess","ramDirectoryName","status","vswitchIds"],"inputProperties":{"desktopAccessType":{"type":"string","description":"The desktop access type. Valid values: `VPC`, `INTERNET`, `ANY`.\n","willReplaceOnChanges":true},"enableAdminAccess":{"type":"boolean","description":"Whether to enable public network access.\n","willReplaceOnChanges":true},"enableInternetAccess":{"type":"boolean","description":"Whether to grant local administrator rights to users who use cloud desktops.\n","willReplaceOnChanges":true},"ramDirectoryName":{"type":"string","description":"The name of the directory. The name must be 2 to 255 characters in length. It must start with a letter but cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n","willReplaceOnChanges":true},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"List of VSwitch IDs in the directory.\n","willReplaceOnChanges":true}},"requiredInputs":["ramDirectoryName","vswitchIds"],"stateInputs":{"description":"Input properties used for looking up and filtering RamDirectory resources.\n","properties":{"desktopAccessType":{"type":"string","description":"The desktop access type. Valid values: `VPC`, `INTERNET`, `ANY`.\n","willReplaceOnChanges":true},"enableAdminAccess":{"type":"boolean","description":"Whether to enable public network access.\n","willReplaceOnChanges":true},"enableInternetAccess":{"type":"boolean","description":"Whether to grant local administrator rights to users who use cloud desktops.\n","willReplaceOnChanges":true},"ramDirectoryName":{"type":"string","description":"The name of the directory. The name must be 2 to 255 characters in length. It must start with a letter but cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of directory.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"List of VSwitch IDs in the directory.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:eds/simpleOfficeSite:SimpleOfficeSite":{"description":"Provides a ECD Simple Office Site resource.\n\nFor information about ECD Simple Office Site and how to use it, see [What is Simple Office Site](https://www.alibabacloud.com/help/en/wuying-workspace/developer-reference/api-ecd-2020-09-30-createsimpleofficesite).\n\n\u003e **NOTE:** Available since v1.140.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultSimpleOfficeSite = new alicloud.eds.SimpleOfficeSite(\"default\", {\n    cidrBlock: \"172.16.0.0/12\",\n    enableAdminAccess: true,\n    desktopAccessType: \"Internet\",\n    officeSiteName: `terraform-example-${_default.result}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_simple_office_site = alicloud.eds.SimpleOfficeSite(\"default\",\n    cidr_block=\"172.16.0.0/12\",\n    enable_admin_access=True,\n    desktop_access_type=\"Internet\",\n    office_site_name=f\"terraform-example-{default['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultSimpleOfficeSite = new AliCloud.Eds.SimpleOfficeSite(\"default\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        EnableAdminAccess = true,\n        DesktopAccessType = \"Internet\",\n        OfficeSiteName = $\"terraform-example-{@default.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eds.NewSimpleOfficeSite(ctx, \"default\", \u0026eds.SimpleOfficeSiteArgs{\n\t\t\tCidrBlock:         pulumi.String(\"172.16.0.0/12\"),\n\t\t\tEnableAdminAccess: pulumi.Bool(true),\n\t\t\tDesktopAccessType: pulumi.String(\"Internet\"),\n\t\t\tOfficeSiteName:    pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.eds.SimpleOfficeSite;\nimport com.pulumi.alicloud.eds.SimpleOfficeSiteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultSimpleOfficeSite = new SimpleOfficeSite(\"defaultSimpleOfficeSite\", SimpleOfficeSiteArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .enableAdminAccess(true)\n            .desktopAccessType(\"Internet\")\n            .officeSiteName(String.format(\"terraform-example-%s\", default_.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultSimpleOfficeSite:\n    type: alicloud:eds:SimpleOfficeSite\n    name: default\n    properties:\n      cidrBlock: 172.16.0.0/12\n      enableAdminAccess: true\n      desktopAccessType: Internet\n      officeSiteName: terraform-example-${default.result}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECD Simple Office Site can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eds/simpleOfficeSite:SimpleOfficeSite example \u003cid\u003e\n```\n\n","properties":{"bandwidth":{"type":"integer","description":"The Internet Bandwidth Peak. It has been deprecated from version 1.142.0 and can be found in the new resource alicloud_ecd_network_package.\n","deprecationMessage":"Field 'bandwidth' has been deprecated from provider version 1.142.0."},"cenId":{"type":"string","description":"Cloud Enterprise Network Instance ID.\n"},"cenOwnerId":{"type":"string","description":"The cen owner id.\n"},"cidrBlock":{"type":"string","description":"Workspace Corresponds to the Security Office Network of IPv4 Segment.\n"},"desktopAccessType":{"type":"string","description":"Connect to the Cloud Desktop Allows the Use of the Access Mode of. Valid values: `Any`, `Internet`, `VPC`.\n"},"enableAdminAccess":{"type":"boolean","description":"Whether to Use Cloud Desktop User Empowerment of Local Administrator Permissions.\n"},"enableCrossDesktopAccess":{"type":"boolean","description":"Enable Cross-Desktop Access.\n"},"enableInternetAccess":{"type":"boolean","description":"Whether the Open Internet Access Function.\n","deprecationMessage":"Field 'enable_internet_access' has been deprecated from provider version 1.142.0."},"mfaEnabled":{"type":"boolean","description":"Whether to Enable Multi-Factor Authentication MFA.\n"},"officeSiteName":{"type":"string","description":"The office site name.\n"},"ssoEnabled":{"type":"boolean","description":"Whether to Enable Single Sign-on (SSO) for User-Based SSO.\n"},"status":{"type":"string","description":"Workspace State. Valid Values: `REGISTERED`,`REGISTERING`.\n"}},"required":["bandwidth","cidrBlock","desktopAccessType","enableAdminAccess","enableCrossDesktopAccess","enableInternetAccess","mfaEnabled","ssoEnabled","status"],"inputProperties":{"bandwidth":{"type":"integer","description":"The Internet Bandwidth Peak. It has been deprecated from version 1.142.0 and can be found in the new resource alicloud_ecd_network_package.\n","deprecationMessage":"Field 'bandwidth' has been deprecated from provider version 1.142.0."},"cenId":{"type":"string","description":"Cloud Enterprise Network Instance ID.\n","willReplaceOnChanges":true},"cenOwnerId":{"type":"string","description":"The cen owner id.\n"},"cidrBlock":{"type":"string","description":"Workspace Corresponds to the Security Office Network of IPv4 Segment.\n","willReplaceOnChanges":true},"desktopAccessType":{"type":"string","description":"Connect to the Cloud Desktop Allows the Use of the Access Mode of. Valid values: `Any`, `Internet`, `VPC`.\n"},"enableAdminAccess":{"type":"boolean","description":"Whether to Use Cloud Desktop User Empowerment of Local Administrator Permissions.\n","willReplaceOnChanges":true},"enableCrossDesktopAccess":{"type":"boolean","description":"Enable Cross-Desktop Access.\n"},"enableInternetAccess":{"type":"boolean","description":"Whether the Open Internet Access Function.\n","deprecationMessage":"Field 'enable_internet_access' has been deprecated from provider version 1.142.0."},"mfaEnabled":{"type":"boolean","description":"Whether to Enable Multi-Factor Authentication MFA.\n"},"officeSiteName":{"type":"string","description":"The office site name.\n"},"ssoEnabled":{"type":"boolean","description":"Whether to Enable Single Sign-on (SSO) for User-Based SSO.\n"}},"requiredInputs":["cidrBlock"],"stateInputs":{"description":"Input properties used for looking up and filtering SimpleOfficeSite resources.\n","properties":{"bandwidth":{"type":"integer","description":"The Internet Bandwidth Peak. It has been deprecated from version 1.142.0 and can be found in the new resource alicloud_ecd_network_package.\n","deprecationMessage":"Field 'bandwidth' has been deprecated from provider version 1.142.0."},"cenId":{"type":"string","description":"Cloud Enterprise Network Instance ID.\n","willReplaceOnChanges":true},"cenOwnerId":{"type":"string","description":"The cen owner id.\n"},"cidrBlock":{"type":"string","description":"Workspace Corresponds to the Security Office Network of IPv4 Segment.\n","willReplaceOnChanges":true},"desktopAccessType":{"type":"string","description":"Connect to the Cloud Desktop Allows the Use of the Access Mode of. Valid values: `Any`, `Internet`, `VPC`.\n"},"enableAdminAccess":{"type":"boolean","description":"Whether to Use Cloud Desktop User Empowerment of Local Administrator Permissions.\n","willReplaceOnChanges":true},"enableCrossDesktopAccess":{"type":"boolean","description":"Enable Cross-Desktop Access.\n"},"enableInternetAccess":{"type":"boolean","description":"Whether the Open Internet Access Function.\n","deprecationMessage":"Field 'enable_internet_access' has been deprecated from provider version 1.142.0."},"mfaEnabled":{"type":"boolean","description":"Whether to Enable Multi-Factor Authentication MFA.\n"},"officeSiteName":{"type":"string","description":"The office site name.\n"},"ssoEnabled":{"type":"boolean","description":"Whether to Enable Single Sign-on (SSO) for User-Based SSO.\n"},"status":{"type":"string","description":"Workspace State. Valid Values: `REGISTERED`,`REGISTERING`.\n"}},"type":"object"}},"alicloud:eds/snapshot:Snapshot":{"description":"Provides a ECD Snapshot resource.\n\nFor information about ECD Snapshot and how to use it, see [What is Snapshot](https://www.alibabacloud.com/help/en/wuying-workspace/developer-reference/api-ecd-2020-09-30-createsnapshot).\n\n\u003e **NOTE:** Available since v1.169.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultSimpleOfficeSite = new alicloud.eds.SimpleOfficeSite(\"default\", {\n    cidrBlock: \"172.16.0.0/12\",\n    enableAdminAccess: true,\n    desktopAccessType: \"Internet\",\n    officeSiteName: `${name}-${defaultInteger.result}`,\n});\nconst defaultEcdPolicyGroup = new alicloud.eds.EcdPolicyGroup(\"default\", {\n    policyGroupName: name,\n    clipboard: \"read\",\n    localDrive: \"read\",\n    usbRedirect: \"off\",\n    watermark: \"off\",\n    authorizeAccessPolicyRules: [{\n        description: name,\n        cidrIp: \"1.2.3.45/24\",\n    }],\n    authorizeSecurityPolicyRules: [{\n        type: \"inflow\",\n        policy: \"accept\",\n        description: name,\n        portRange: \"80/80\",\n        ipProtocol: \"TCP\",\n        priority: \"1\",\n        cidrIp: \"1.2.3.4/24\",\n    }],\n});\nconst _default = alicloud.eds.getBundles({\n    bundleType: \"SYSTEM\",\n});\nconst defaultDesktop = new alicloud.eds.Desktop(\"default\", {\n    officeSiteId: defaultSimpleOfficeSite.id,\n    policyGroupId: defaultEcdPolicyGroup.id,\n    bundleId: _default.then(_default =\u003e _default.bundles?.[1]?.id),\n    desktopName: name,\n});\nconst defaultSnapshot = new alicloud.eds.Snapshot(\"default\", {\n    description: name,\n    desktopId: defaultDesktop.id,\n    snapshotName: name,\n    sourceDiskType: \"SYSTEM\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_simple_office_site = alicloud.eds.SimpleOfficeSite(\"default\",\n    cidr_block=\"172.16.0.0/12\",\n    enable_admin_access=True,\n    desktop_access_type=\"Internet\",\n    office_site_name=f\"{name}-{default_integer['result']}\")\ndefault_ecd_policy_group = alicloud.eds.EcdPolicyGroup(\"default\",\n    policy_group_name=name,\n    clipboard=\"read\",\n    local_drive=\"read\",\n    usb_redirect=\"off\",\n    watermark=\"off\",\n    authorize_access_policy_rules=[{\n        \"description\": name,\n        \"cidr_ip\": \"1.2.3.45/24\",\n    }],\n    authorize_security_policy_rules=[{\n        \"type\": \"inflow\",\n        \"policy\": \"accept\",\n        \"description\": name,\n        \"port_range\": \"80/80\",\n        \"ip_protocol\": \"TCP\",\n        \"priority\": \"1\",\n        \"cidr_ip\": \"1.2.3.4/24\",\n    }])\ndefault = alicloud.eds.get_bundles(bundle_type=\"SYSTEM\")\ndefault_desktop = alicloud.eds.Desktop(\"default\",\n    office_site_id=default_simple_office_site.id,\n    policy_group_id=default_ecd_policy_group.id,\n    bundle_id=default.bundles[1].id,\n    desktop_name=name)\ndefault_snapshot = alicloud.eds.Snapshot(\"default\",\n    description=name,\n    desktop_id=default_desktop.id,\n    snapshot_name=name,\n    source_disk_type=\"SYSTEM\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultSimpleOfficeSite = new AliCloud.Eds.SimpleOfficeSite(\"default\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        EnableAdminAccess = true,\n        DesktopAccessType = \"Internet\",\n        OfficeSiteName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultEcdPolicyGroup = new AliCloud.Eds.EcdPolicyGroup(\"default\", new()\n    {\n        PolicyGroupName = name,\n        Clipboard = \"read\",\n        LocalDrive = \"read\",\n        UsbRedirect = \"off\",\n        Watermark = \"off\",\n        AuthorizeAccessPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs\n            {\n                Description = name,\n                CidrIp = \"1.2.3.45/24\",\n            },\n        },\n        AuthorizeSecurityPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs\n            {\n                Type = \"inflow\",\n                Policy = \"accept\",\n                Description = name,\n                PortRange = \"80/80\",\n                IpProtocol = \"TCP\",\n                Priority = \"1\",\n                CidrIp = \"1.2.3.4/24\",\n            },\n        },\n    });\n\n    var @default = AliCloud.Eds.GetBundles.Invoke(new()\n    {\n        BundleType = \"SYSTEM\",\n    });\n\n    var defaultDesktop = new AliCloud.Eds.Desktop(\"default\", new()\n    {\n        OfficeSiteId = defaultSimpleOfficeSite.Id,\n        PolicyGroupId = defaultEcdPolicyGroup.Id,\n        BundleId = @default.Apply(@default =\u003e @default.Apply(getBundlesResult =\u003e getBundlesResult.Bundles[1]?.Id)),\n        DesktopName = name,\n    });\n\n    var defaultSnapshot = new AliCloud.Eds.Snapshot(\"default\", new()\n    {\n        Description = name,\n        DesktopId = defaultDesktop.Id,\n        SnapshotName = name,\n        SourceDiskType = \"SYSTEM\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSimpleOfficeSite, err := eds.NewSimpleOfficeSite(ctx, \"default\", \u0026eds.SimpleOfficeSiteArgs{\n\t\t\tCidrBlock:         pulumi.String(\"172.16.0.0/12\"),\n\t\t\tEnableAdminAccess: pulumi.Bool(true),\n\t\t\tDesktopAccessType: pulumi.String(\"Internet\"),\n\t\t\tOfficeSiteName:    pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcdPolicyGroup, err := eds.NewEcdPolicyGroup(ctx, \"default\", \u0026eds.EcdPolicyGroupArgs{\n\t\t\tPolicyGroupName: pulumi.String(name),\n\t\t\tClipboard:       pulumi.String(\"read\"),\n\t\t\tLocalDrive:      pulumi.String(\"read\"),\n\t\t\tUsbRedirect:     pulumi.String(\"off\"),\n\t\t\tWatermark:       pulumi.String(\"off\"),\n\t\t\tAuthorizeAccessPolicyRules: eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs{\n\t\t\t\t\tDescription: pulumi.String(name),\n\t\t\t\t\tCidrIp:      pulumi.String(\"1.2.3.45/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAuthorizeSecurityPolicyRules: eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs{\n\t\t\t\t\tType:        pulumi.String(\"inflow\"),\n\t\t\t\t\tPolicy:      pulumi.String(\"accept\"),\n\t\t\t\t\tDescription: pulumi.String(name),\n\t\t\t\t\tPortRange:   pulumi.String(\"80/80\"),\n\t\t\t\t\tIpProtocol:  pulumi.String(\"TCP\"),\n\t\t\t\t\tPriority:    pulumi.String(\"1\"),\n\t\t\t\t\tCidrIp:      pulumi.String(\"1.2.3.4/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := eds.GetBundles(ctx, \u0026eds.GetBundlesArgs{\n\t\t\tBundleType: pulumi.StringRef(\"SYSTEM\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDesktop, err := eds.NewDesktop(ctx, \"default\", \u0026eds.DesktopArgs{\n\t\t\tOfficeSiteId:  defaultSimpleOfficeSite.ID(),\n\t\t\tPolicyGroupId: defaultEcdPolicyGroup.ID(),\n\t\t\tBundleId:      pulumi.String(_default.Bundles[1].Id),\n\t\t\tDesktopName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eds.NewSnapshot(ctx, \"default\", \u0026eds.SnapshotArgs{\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tDesktopId:      defaultDesktop.ID(),\n\t\t\tSnapshotName:   pulumi.String(name),\n\t\t\tSourceDiskType: pulumi.String(\"SYSTEM\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.eds.SimpleOfficeSite;\nimport com.pulumi.alicloud.eds.SimpleOfficeSiteArgs;\nimport com.pulumi.alicloud.eds.EcdPolicyGroup;\nimport com.pulumi.alicloud.eds.EcdPolicyGroupArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetBundlesArgs;\nimport com.pulumi.alicloud.eds.Desktop;\nimport com.pulumi.alicloud.eds.DesktopArgs;\nimport com.pulumi.alicloud.eds.Snapshot;\nimport com.pulumi.alicloud.eds.SnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultSimpleOfficeSite = new SimpleOfficeSite(\"defaultSimpleOfficeSite\", SimpleOfficeSiteArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .enableAdminAccess(true)\n            .desktopAccessType(\"Internet\")\n            .officeSiteName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultEcdPolicyGroup = new EcdPolicyGroup(\"defaultEcdPolicyGroup\", EcdPolicyGroupArgs.builder()\n            .policyGroupName(name)\n            .clipboard(\"read\")\n            .localDrive(\"read\")\n            .usbRedirect(\"off\")\n            .watermark(\"off\")\n            .authorizeAccessPolicyRules(EcdPolicyGroupAuthorizeAccessPolicyRuleArgs.builder()\n                .description(name)\n                .cidrIp(\"1.2.3.45/24\")\n                .build())\n            .authorizeSecurityPolicyRules(EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs.builder()\n                .type(\"inflow\")\n                .policy(\"accept\")\n                .description(name)\n                .portRange(\"80/80\")\n                .ipProtocol(\"TCP\")\n                .priority(\"1\")\n                .cidrIp(\"1.2.3.4/24\")\n                .build())\n            .build());\n\n        final var default = EdsFunctions.getBundles(GetBundlesArgs.builder()\n            .bundleType(\"SYSTEM\")\n            .build());\n\n        var defaultDesktop = new Desktop(\"defaultDesktop\", DesktopArgs.builder()\n            .officeSiteId(defaultSimpleOfficeSite.id())\n            .policyGroupId(defaultEcdPolicyGroup.id())\n            .bundleId(default_.bundles()[1].id())\n            .desktopName(name)\n            .build());\n\n        var defaultSnapshot = new Snapshot(\"defaultSnapshot\", SnapshotArgs.builder()\n            .description(name)\n            .desktopId(defaultDesktop.id())\n            .snapshotName(name)\n            .sourceDiskType(\"SYSTEM\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultSimpleOfficeSite:\n    type: alicloud:eds:SimpleOfficeSite\n    name: default\n    properties:\n      cidrBlock: 172.16.0.0/12\n      enableAdminAccess: true\n      desktopAccessType: Internet\n      officeSiteName: ${name}-${defaultInteger.result}\n  defaultEcdPolicyGroup:\n    type: alicloud:eds:EcdPolicyGroup\n    name: default\n    properties:\n      policyGroupName: ${name}\n      clipboard: read\n      localDrive: read\n      usbRedirect: off\n      watermark: off\n      authorizeAccessPolicyRules:\n        - description: ${name}\n          cidrIp: 1.2.3.45/24\n      authorizeSecurityPolicyRules:\n        - type: inflow\n          policy: accept\n          description: ${name}\n          portRange: 80/80\n          ipProtocol: TCP\n          priority: '1'\n          cidrIp: 1.2.3.4/24\n  defaultDesktop:\n    type: alicloud:eds:Desktop\n    name: default\n    properties:\n      officeSiteId: ${defaultSimpleOfficeSite.id}\n      policyGroupId: ${defaultEcdPolicyGroup.id}\n      bundleId: ${default.bundles[1].id}\n      desktopName: ${name}\n  defaultSnapshot:\n    type: alicloud:eds:Snapshot\n    name: default\n    properties:\n      description: ${name}\n      desktopId: ${defaultDesktop.id}\n      snapshotName: ${name}\n      sourceDiskType: SYSTEM\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eds:getBundles\n      arguments:\n        bundleType: SYSTEM\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECD Snapshot can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eds/snapshot:Snapshot example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the Snapshot.\n"},"desktopId":{"type":"string","description":"The ID of the Desktop.\n"},"snapshotName":{"type":"string","description":"The name of the Snapshot.\n"},"sourceDiskType":{"type":"string","description":"The type of the disk for which to create a snapshot. Valid values: `SYSTEM`, `DATA`.\n"},"status":{"type":"string","description":"The status of the snapshot.\n"}},"required":["desktopId","snapshotName","sourceDiskType","status"],"inputProperties":{"description":{"type":"string","description":"The description of the Snapshot.\n","willReplaceOnChanges":true},"desktopId":{"type":"string","description":"The ID of the Desktop.\n","willReplaceOnChanges":true},"snapshotName":{"type":"string","description":"The name of the Snapshot.\n","willReplaceOnChanges":true},"sourceDiskType":{"type":"string","description":"The type of the disk for which to create a snapshot. Valid values: `SYSTEM`, `DATA`.\n","willReplaceOnChanges":true}},"requiredInputs":["desktopId","snapshotName","sourceDiskType"],"stateInputs":{"description":"Input properties used for looking up and filtering Snapshot resources.\n","properties":{"description":{"type":"string","description":"The description of the Snapshot.\n","willReplaceOnChanges":true},"desktopId":{"type":"string","description":"The ID of the Desktop.\n","willReplaceOnChanges":true},"snapshotName":{"type":"string","description":"The name of the Snapshot.\n","willReplaceOnChanges":true},"sourceDiskType":{"type":"string","description":"The type of the disk for which to create a snapshot. Valid values: `SYSTEM`, `DATA`.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the snapshot.\n"}},"type":"object"}},"alicloud:eds/user:User":{"description":"Provides a Elastic Desktop Service (ECD) User resource.\n\nFor information about Elastic Desktop Service (ECD) User and how to use it, see [What is User](https://www.alibabacloud.com/help/en/wuying-workspace/developer-reference/api-eds-user-2021-03-08-createusers-desktop).\n\n\u003e **NOTE:** Available since v1.142.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.eds.User(\"default\", {\n    endUserId: \"terraform_example123\",\n    email: \"tf.example@abc.com\",\n    phone: \"18888888888\",\n    password: \"Example_123\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.eds.User(\"default\",\n    end_user_id=\"terraform_example123\",\n    email=\"tf.example@abc.com\",\n    phone=\"18888888888\",\n    password=\"Example_123\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Eds.User(\"default\", new()\n    {\n        EndUserId = \"terraform_example123\",\n        Email = \"tf.example@abc.com\",\n        Phone = \"18888888888\",\n        Password = \"Example_123\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := eds.NewUser(ctx, \"default\", \u0026eds.UserArgs{\n\t\t\tEndUserId: pulumi.String(\"terraform_example123\"),\n\t\t\tEmail:     pulumi.String(\"tf.example@abc.com\"),\n\t\t\tPhone:     pulumi.String(\"18888888888\"),\n\t\t\tPassword:  pulumi.String(\"Example_123\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.User;\nimport com.pulumi.alicloud.eds.UserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new User(\"default\", UserArgs.builder()\n            .endUserId(\"terraform_example123\")\n            .email(\"tf.example@abc.com\")\n            .phone(\"18888888888\")\n            .password(\"Example_123\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:eds:User\n    properties:\n      endUserId: terraform_example123\n      email: tf.example@abc.com\n      phone: '18888888888'\n      password: Example_123\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nECD User can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eds/user:User example \u003cend_user_id\u003e\n```\n\n","properties":{"email":{"type":"string","description":"The email of the user email.\n"},"endUserId":{"type":"string","description":"The Username. The custom setting is composed of lowercase letters, numbers and underscores, and the length is 3~24 characters.\n"},"password":{"type":"string","description":"The password of the user password.\n","secret":true},"phone":{"type":"string","description":"The phone of the mobile phone number.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Unlocked`, `Locked`.\n"}},"required":["email","endUserId","status"],"inputProperties":{"email":{"type":"string","description":"The email of the user email.\n","willReplaceOnChanges":true},"endUserId":{"type":"string","description":"The Username. The custom setting is composed of lowercase letters, numbers and underscores, and the length is 3~24 characters.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of the user password.\n","secret":true,"willReplaceOnChanges":true},"phone":{"type":"string","description":"The phone of the mobile phone number.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `Unlocked`, `Locked`.\n"}},"requiredInputs":["email","endUserId"],"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"email":{"type":"string","description":"The email of the user email.\n","willReplaceOnChanges":true},"endUserId":{"type":"string","description":"The Username. The custom setting is composed of lowercase letters, numbers and underscores, and the length is 3~24 characters.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of the user password.\n","secret":true,"willReplaceOnChanges":true},"phone":{"type":"string","description":"The phone of the mobile phone number.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `Unlocked`, `Locked`.\n"}},"type":"object"}},"alicloud:eflo/cluster:Cluster":{"description":"Provides a Eflo Cluster resource.\n\nLarge computing cluster.\n\nFor information about Eflo Cluster and how to use it, see [What is Cluster](https://next.api.alibabacloud.com/document/eflo-controller/2022-12-15/CreateCluster).\n\n\u003e **NOTE:** Available since v1.246.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst createVpc = new alicloud.vpc.Network(\"create_vpc\", {\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: \"cluster-resoure-example\",\n});\nconst createVswitch = new alicloud.vpc.Switch(\"create_vswitch\", {\n    vpcId: createVpc.id,\n    zoneId: \"cn-hangzhou-b\",\n    cidrBlock: \"192.168.0.0/24\",\n    vswitchName: \"cluster-resoure-example\",\n});\nconst createSecurityGroup = new alicloud.ecs.SecurityGroup(\"create_security_group\", {\n    description: \"sg\",\n    securityGroupName: \"cluster-resoure-example\",\n    securityGroupType: \"normal\",\n    vpcId: createVpc.id,\n});\nconst defaultCluster = new alicloud.eflo.Cluster(\"default\", {\n    clusterDescription: \"cluster-resource-example\",\n    openEniJumboFrame: false,\n    hpnZone: \"B1\",\n    nimizVswitches: [\"1111\"],\n    ignoreFailedNodeTasks: true,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[1]),\n    nodeGroups: [{\n        imageId: \"i198448731735114628708\",\n        zoneId: \"cn-hangzhou-b\",\n        nodeGroupName: \"cluster-resource-example\",\n        nodeGroupDescription: \"cluster-resource-example\",\n        machineType: \"efg2.C48cA3sen\",\n    }],\n    networks: {\n        tailIpVersion: \"ipv4\",\n        newVpdInfo: {\n            monitorVpcId: createVpc.id,\n            monitorVswitchId: createVswitch.id,\n            cenId: \"11111\",\n            cloudLinkId: \"1111\",\n            vpdCidr: \"111\",\n            vpdSubnets: [{\n                zoneId: \"1111\",\n                subnetCidr: \"111\",\n                subnetType: \"111\",\n            }],\n            cloudLinkCidr: \"169.254.128.0/23\",\n        },\n        securityGroupId: createSecurityGroup.id,\n        vswitchZoneId: \"cn-hangzhou-b\",\n        vpcId: createVpc.id,\n        vswitchId: createVswitch.id,\n        vpdInfo: {\n            vpdId: \"111\",\n            vpdSubnets: [\"111\"],\n        },\n        ipAllocationPolicies: [{\n            bondPolicy: {\n                bondDefaultSubnet: \"111\",\n                bonds: [{\n                    name: \"111\",\n                    subnet: \"111\",\n                }],\n            },\n            machineTypePolicies: [{\n                bonds: [{\n                    name: \"111\",\n                    subnet: \"111\",\n                }],\n                machineType: \"111\",\n            }],\n            nodePolicies: [{\n                bonds: [{\n                    name: \"111\",\n                    subnet: \"111\",\n                }],\n                nodeId: \"111\",\n            }],\n        }],\n    },\n    clusterName: \"tfacceflo7165\",\n    clusterType: \"Lite\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ncreate_vpc = alicloud.vpc.Network(\"create_vpc\",\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=\"cluster-resoure-example\")\ncreate_vswitch = alicloud.vpc.Switch(\"create_vswitch\",\n    vpc_id=create_vpc.id,\n    zone_id=\"cn-hangzhou-b\",\n    cidr_block=\"192.168.0.0/24\",\n    vswitch_name=\"cluster-resoure-example\")\ncreate_security_group = alicloud.ecs.SecurityGroup(\"create_security_group\",\n    description=\"sg\",\n    security_group_name=\"cluster-resoure-example\",\n    security_group_type=\"normal\",\n    vpc_id=create_vpc.id)\ndefault_cluster = alicloud.eflo.Cluster(\"default\",\n    cluster_description=\"cluster-resource-example\",\n    open_eni_jumbo_frame=False,\n    hpn_zone=\"B1\",\n    nimiz_vswitches=[\"1111\"],\n    ignore_failed_node_tasks=True,\n    resource_group_id=default.ids[1],\n    node_groups=[{\n        \"image_id\": \"i198448731735114628708\",\n        \"zone_id\": \"cn-hangzhou-b\",\n        \"node_group_name\": \"cluster-resource-example\",\n        \"node_group_description\": \"cluster-resource-example\",\n        \"machine_type\": \"efg2.C48cA3sen\",\n    }],\n    networks={\n        \"tail_ip_version\": \"ipv4\",\n        \"new_vpd_info\": {\n            \"monitor_vpc_id\": create_vpc.id,\n            \"monitor_vswitch_id\": create_vswitch.id,\n            \"cen_id\": \"11111\",\n            \"cloud_link_id\": \"1111\",\n            \"vpd_cidr\": \"111\",\n            \"vpd_subnets\": [{\n                \"zone_id\": \"1111\",\n                \"subnet_cidr\": \"111\",\n                \"subnet_type\": \"111\",\n            }],\n            \"cloud_link_cidr\": \"169.254.128.0/23\",\n        },\n        \"security_group_id\": create_security_group.id,\n        \"vswitch_zone_id\": \"cn-hangzhou-b\",\n        \"vpc_id\": create_vpc.id,\n        \"vswitch_id\": create_vswitch.id,\n        \"vpd_info\": {\n            \"vpd_id\": \"111\",\n            \"vpd_subnets\": [\"111\"],\n        },\n        \"ip_allocation_policies\": [{\n            \"bond_policy\": {\n                \"bond_default_subnet\": \"111\",\n                \"bonds\": [{\n                    \"name\": \"111\",\n                    \"subnet\": \"111\",\n                }],\n            },\n            \"machine_type_policies\": [{\n                \"bonds\": [{\n                    \"name\": \"111\",\n                    \"subnet\": \"111\",\n                }],\n                \"machine_type\": \"111\",\n            }],\n            \"node_policies\": [{\n                \"bonds\": [{\n                    \"name\": \"111\",\n                    \"subnet\": \"111\",\n                }],\n                \"node_id\": \"111\",\n            }],\n        }],\n    },\n    cluster_name=\"tfacceflo7165\",\n    cluster_type=\"Lite\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var createVpc = new AliCloud.Vpc.Network(\"create_vpc\", new()\n    {\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = \"cluster-resoure-example\",\n    });\n\n    var createVswitch = new AliCloud.Vpc.Switch(\"create_vswitch\", new()\n    {\n        VpcId = createVpc.Id,\n        ZoneId = \"cn-hangzhou-b\",\n        CidrBlock = \"192.168.0.0/24\",\n        VswitchName = \"cluster-resoure-example\",\n    });\n\n    var createSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"create_security_group\", new()\n    {\n        Description = \"sg\",\n        SecurityGroupName = \"cluster-resoure-example\",\n        SecurityGroupType = \"normal\",\n        VpcId = createVpc.Id,\n    });\n\n    var defaultCluster = new AliCloud.Eflo.Cluster(\"default\", new()\n    {\n        ClusterDescription = \"cluster-resource-example\",\n        OpenEniJumboFrame = false,\n        HpnZone = \"B1\",\n        NimizVswitches = new[]\n        {\n            \"1111\",\n        },\n        IgnoreFailedNodeTasks = true,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[1])),\n        NodeGroups = new[]\n        {\n            new AliCloud.Eflo.Inputs.ClusterNodeGroupArgs\n            {\n                ImageId = \"i198448731735114628708\",\n                ZoneId = \"cn-hangzhou-b\",\n                NodeGroupName = \"cluster-resource-example\",\n                NodeGroupDescription = \"cluster-resource-example\",\n                MachineType = \"efg2.C48cA3sen\",\n            },\n        },\n        Networks = new AliCloud.Eflo.Inputs.ClusterNetworksArgs\n        {\n            TailIpVersion = \"ipv4\",\n            NewVpdInfo = new AliCloud.Eflo.Inputs.ClusterNetworksNewVpdInfoArgs\n            {\n                MonitorVpcId = createVpc.Id,\n                MonitorVswitchId = createVswitch.Id,\n                CenId = \"11111\",\n                CloudLinkId = \"1111\",\n                VpdCidr = \"111\",\n                VpdSubnets = new[]\n                {\n                    new AliCloud.Eflo.Inputs.ClusterNetworksNewVpdInfoVpdSubnetArgs\n                    {\n                        ZoneId = \"1111\",\n                        SubnetCidr = \"111\",\n                        SubnetType = \"111\",\n                    },\n                },\n                CloudLinkCidr = \"169.254.128.0/23\",\n            },\n            SecurityGroupId = createSecurityGroup.Id,\n            VswitchZoneId = \"cn-hangzhou-b\",\n            VpcId = createVpc.Id,\n            VswitchId = createVswitch.Id,\n            VpdInfo = new AliCloud.Eflo.Inputs.ClusterNetworksVpdInfoArgs\n            {\n                VpdId = \"111\",\n                VpdSubnets = new[]\n                {\n                    \"111\",\n                },\n            },\n            IpAllocationPolicies = new[]\n            {\n                new AliCloud.Eflo.Inputs.ClusterNetworksIpAllocationPolicyArgs\n                {\n                    BondPolicy = new AliCloud.Eflo.Inputs.ClusterNetworksIpAllocationPolicyBondPolicyArgs\n                    {\n                        BondDefaultSubnet = \"111\",\n                        Bonds = new[]\n                        {\n                            new AliCloud.Eflo.Inputs.ClusterNetworksIpAllocationPolicyBondPolicyBondArgs\n                            {\n                                Name = \"111\",\n                                Subnet = \"111\",\n                            },\n                        },\n                    },\n                    MachineTypePolicies = new[]\n                    {\n                        new AliCloud.Eflo.Inputs.ClusterNetworksIpAllocationPolicyMachineTypePolicyArgs\n                        {\n                            Bonds = new[]\n                            {\n                                new AliCloud.Eflo.Inputs.ClusterNetworksIpAllocationPolicyMachineTypePolicyBondArgs\n                                {\n                                    Name = \"111\",\n                                    Subnet = \"111\",\n                                },\n                            },\n                            MachineType = \"111\",\n                        },\n                    },\n                    NodePolicies = new[]\n                    {\n                        new AliCloud.Eflo.Inputs.ClusterNetworksIpAllocationPolicyNodePolicyArgs\n                        {\n                            Bonds = new[]\n                            {\n                                new AliCloud.Eflo.Inputs.ClusterNetworksIpAllocationPolicyNodePolicyBondArgs\n                                {\n                                    Name = \"111\",\n                                    Subnet = \"111\",\n                                },\n                            },\n                            NodeId = \"111\",\n                        },\n                    },\n                },\n            },\n        },\n        ClusterName = \"tfacceflo7165\",\n        ClusterType = \"Lite\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eflo\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateVpc, err := vpc.NewNetwork(ctx, \"create_vpc\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t\tVpcName:   pulumi.String(\"cluster-resoure-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateVswitch, err := vpc.NewSwitch(ctx, \"create_vswitch\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       createVpc.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-b\"),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"cluster-resoure-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"create_security_group\", \u0026ecs.SecurityGroupArgs{\n\t\t\tDescription:       pulumi.String(\"sg\"),\n\t\t\tSecurityGroupName: pulumi.String(\"cluster-resoure-example\"),\n\t\t\tSecurityGroupType: pulumi.String(\"normal\"),\n\t\t\tVpcId:             createVpc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eflo.NewCluster(ctx, \"default\", \u0026eflo.ClusterArgs{\n\t\t\tClusterDescription: pulumi.String(\"cluster-resource-example\"),\n\t\t\tOpenEniJumboFrame:  pulumi.Bool(false),\n\t\t\tHpnZone:            pulumi.String(\"B1\"),\n\t\t\tNimizVswitches: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1111\"),\n\t\t\t},\n\t\t\tIgnoreFailedNodeTasks: pulumi.Bool(true),\n\t\t\tResourceGroupId:       pulumi.String(_default.Ids[1]),\n\t\t\tNodeGroups: eflo.ClusterNodeGroupArray{\n\t\t\t\t\u0026eflo.ClusterNodeGroupArgs{\n\t\t\t\t\tImageId:              pulumi.String(\"i198448731735114628708\"),\n\t\t\t\t\tZoneId:               pulumi.String(\"cn-hangzhou-b\"),\n\t\t\t\t\tNodeGroupName:        pulumi.String(\"cluster-resource-example\"),\n\t\t\t\t\tNodeGroupDescription: pulumi.String(\"cluster-resource-example\"),\n\t\t\t\t\tMachineType:          pulumi.String(\"efg2.C48cA3sen\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworks: \u0026eflo.ClusterNetworksArgs{\n\t\t\t\tTailIpVersion: pulumi.String(\"ipv4\"),\n\t\t\t\tNewVpdInfo: \u0026eflo.ClusterNetworksNewVpdInfoArgs{\n\t\t\t\t\tMonitorVpcId:     createVpc.ID(),\n\t\t\t\t\tMonitorVswitchId: createVswitch.ID(),\n\t\t\t\t\tCenId:            pulumi.String(\"11111\"),\n\t\t\t\t\tCloudLinkId:      pulumi.String(\"1111\"),\n\t\t\t\t\tVpdCidr:          pulumi.String(\"111\"),\n\t\t\t\t\tVpdSubnets: eflo.ClusterNetworksNewVpdInfoVpdSubnetArray{\n\t\t\t\t\t\t\u0026eflo.ClusterNetworksNewVpdInfoVpdSubnetArgs{\n\t\t\t\t\t\t\tZoneId:     pulumi.String(\"1111\"),\n\t\t\t\t\t\t\tSubnetCidr: pulumi.String(\"111\"),\n\t\t\t\t\t\t\tSubnetType: pulumi.String(\"111\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tCloudLinkCidr: pulumi.String(\"169.254.128.0/23\"),\n\t\t\t\t},\n\t\t\t\tSecurityGroupId: createSecurityGroup.ID(),\n\t\t\t\tVswitchZoneId:   pulumi.String(\"cn-hangzhou-b\"),\n\t\t\t\tVpcId:           createVpc.ID(),\n\t\t\t\tVswitchId:       createVswitch.ID(),\n\t\t\t\tVpdInfo: \u0026eflo.ClusterNetworksVpdInfoArgs{\n\t\t\t\t\tVpdId: pulumi.String(\"111\"),\n\t\t\t\t\tVpdSubnets: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"111\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tIpAllocationPolicies: eflo.ClusterNetworksIpAllocationPolicyArray{\n\t\t\t\t\t\u0026eflo.ClusterNetworksIpAllocationPolicyArgs{\n\t\t\t\t\t\tBondPolicy: \u0026eflo.ClusterNetworksIpAllocationPolicyBondPolicyArgs{\n\t\t\t\t\t\t\tBondDefaultSubnet: pulumi.String(\"111\"),\n\t\t\t\t\t\t\tBonds: eflo.ClusterNetworksIpAllocationPolicyBondPolicyBondArray{\n\t\t\t\t\t\t\t\t\u0026eflo.ClusterNetworksIpAllocationPolicyBondPolicyBondArgs{\n\t\t\t\t\t\t\t\t\tName:   pulumi.String(\"111\"),\n\t\t\t\t\t\t\t\t\tSubnet: pulumi.String(\"111\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tMachineTypePolicies: eflo.ClusterNetworksIpAllocationPolicyMachineTypePolicyArray{\n\t\t\t\t\t\t\t\u0026eflo.ClusterNetworksIpAllocationPolicyMachineTypePolicyArgs{\n\t\t\t\t\t\t\t\tBonds: eflo.ClusterNetworksIpAllocationPolicyMachineTypePolicyBondArray{\n\t\t\t\t\t\t\t\t\t\u0026eflo.ClusterNetworksIpAllocationPolicyMachineTypePolicyBondArgs{\n\t\t\t\t\t\t\t\t\t\tName:   pulumi.String(\"111\"),\n\t\t\t\t\t\t\t\t\t\tSubnet: pulumi.String(\"111\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tMachineType: pulumi.String(\"111\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tNodePolicies: eflo.ClusterNetworksIpAllocationPolicyNodePolicyArray{\n\t\t\t\t\t\t\t\u0026eflo.ClusterNetworksIpAllocationPolicyNodePolicyArgs{\n\t\t\t\t\t\t\t\tBonds: eflo.ClusterNetworksIpAllocationPolicyNodePolicyBondArray{\n\t\t\t\t\t\t\t\t\t\u0026eflo.ClusterNetworksIpAllocationPolicyNodePolicyBondArgs{\n\t\t\t\t\t\t\t\t\t\tName:   pulumi.String(\"111\"),\n\t\t\t\t\t\t\t\t\t\tSubnet: pulumi.String(\"111\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tNodeId: pulumi.String(\"111\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tClusterName: pulumi.String(\"tfacceflo7165\"),\n\t\t\tClusterType: pulumi.String(\"Lite\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.eflo.Cluster;\nimport com.pulumi.alicloud.eflo.ClusterArgs;\nimport com.pulumi.alicloud.eflo.inputs.ClusterNodeGroupArgs;\nimport com.pulumi.alicloud.eflo.inputs.ClusterNetworksArgs;\nimport com.pulumi.alicloud.eflo.inputs.ClusterNetworksNewVpdInfoArgs;\nimport com.pulumi.alicloud.eflo.inputs.ClusterNetworksVpdInfoArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var createVpc = new Network(\"createVpc\", NetworkArgs.builder()\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(\"cluster-resoure-example\")\n            .build());\n\n        var createVswitch = new Switch(\"createVswitch\", SwitchArgs.builder()\n            .vpcId(createVpc.id())\n            .zoneId(\"cn-hangzhou-b\")\n            .cidrBlock(\"192.168.0.0/24\")\n            .vswitchName(\"cluster-resoure-example\")\n            .build());\n\n        var createSecurityGroup = new SecurityGroup(\"createSecurityGroup\", SecurityGroupArgs.builder()\n            .description(\"sg\")\n            .securityGroupName(\"cluster-resoure-example\")\n            .securityGroupType(\"normal\")\n            .vpcId(createVpc.id())\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .clusterDescription(\"cluster-resource-example\")\n            .openEniJumboFrame(false)\n            .hpnZone(\"B1\")\n            .nimizVswitches(\"1111\")\n            .ignoreFailedNodeTasks(true)\n            .resourceGroupId(default_.ids()[1])\n            .nodeGroups(ClusterNodeGroupArgs.builder()\n                .imageId(\"i198448731735114628708\")\n                .zoneId(\"cn-hangzhou-b\")\n                .nodeGroupName(\"cluster-resource-example\")\n                .nodeGroupDescription(\"cluster-resource-example\")\n                .machineType(\"efg2.C48cA3sen\")\n                .build())\n            .networks(ClusterNetworksArgs.builder()\n                .tailIpVersion(\"ipv4\")\n                .newVpdInfo(ClusterNetworksNewVpdInfoArgs.builder()\n                    .monitorVpcId(createVpc.id())\n                    .monitorVswitchId(createVswitch.id())\n                    .cenId(\"11111\")\n                    .cloudLinkId(\"1111\")\n                    .vpdCidr(\"111\")\n                    .vpdSubnets(ClusterNetworksNewVpdInfoVpdSubnetArgs.builder()\n                        .zoneId(\"1111\")\n                        .subnetCidr(\"111\")\n                        .subnetType(\"111\")\n                        .build())\n                    .cloudLinkCidr(\"169.254.128.0/23\")\n                    .build())\n                .securityGroupId(createSecurityGroup.id())\n                .vswitchZoneId(\"cn-hangzhou-b\")\n                .vpcId(createVpc.id())\n                .vswitchId(createVswitch.id())\n                .vpdInfo(ClusterNetworksVpdInfoArgs.builder()\n                    .vpdId(\"111\")\n                    .vpdSubnets(\"111\")\n                    .build())\n                .ipAllocationPolicies(ClusterNetworksIpAllocationPolicyArgs.builder()\n                    .bondPolicy(ClusterNetworksIpAllocationPolicyBondPolicyArgs.builder()\n                        .bondDefaultSubnet(\"111\")\n                        .bonds(ClusterNetworksIpAllocationPolicyBondPolicyBondArgs.builder()\n                            .name(\"111\")\n                            .subnet(\"111\")\n                            .build())\n                        .build())\n                    .machineTypePolicies(ClusterNetworksIpAllocationPolicyMachineTypePolicyArgs.builder()\n                        .bonds(ClusterNetworksIpAllocationPolicyMachineTypePolicyBondArgs.builder()\n                            .name(\"111\")\n                            .subnet(\"111\")\n                            .build())\n                        .machineType(\"111\")\n                        .build())\n                    .nodePolicies(ClusterNetworksIpAllocationPolicyNodePolicyArgs.builder()\n                        .bonds(ClusterNetworksIpAllocationPolicyNodePolicyBondArgs.builder()\n                            .name(\"111\")\n                            .subnet(\"111\")\n                            .build())\n                        .nodeId(\"111\")\n                        .build())\n                    .build())\n                .build())\n            .clusterName(\"tfacceflo7165\")\n            .clusterType(\"Lite\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  # Before executing this example, you need to confirm with the product team whether the resources are sufficient or you will get an error message with \"Failure to check order before create instance\"\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createVpc:\n    type: alicloud:vpc:Network\n    name: create_vpc\n    properties:\n      cidrBlock: 192.168.0.0/16\n      vpcName: cluster-resoure-example\n  createVswitch:\n    type: alicloud:vpc:Switch\n    name: create_vswitch\n    properties:\n      vpcId: ${createVpc.id}\n      zoneId: cn-hangzhou-b\n      cidrBlock: 192.168.0.0/24\n      vswitchName: cluster-resoure-example\n  createSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: create_security_group\n    properties:\n      description: sg\n      securityGroupName: cluster-resoure-example\n      securityGroupType: normal\n      vpcId: ${createVpc.id}\n  defaultCluster:\n    type: alicloud:eflo:Cluster\n    name: default\n    properties:\n      clusterDescription: cluster-resource-example\n      openEniJumboFrame: 'false'\n      hpnZone: B1\n      nimizVswitches:\n        - '1111'\n      ignoreFailedNodeTasks: 'true'\n      resourceGroupId: ${default.ids[1]}\n      nodeGroups:\n        - imageId: i198448731735114628708\n          zoneId: cn-hangzhou-b\n          nodeGroupName: cluster-resource-example\n          nodeGroupDescription: cluster-resource-example\n          machineType: efg2.C48cA3sen\n      networks:\n        tailIpVersion: ipv4\n        newVpdInfo:\n          monitorVpcId: ${createVpc.id}\n          monitorVswitchId: ${createVswitch.id}\n          cenId: '11111'\n          cloudLinkId: '1111'\n          vpdCidr: '111'\n          vpdSubnets:\n            - zoneId: '1111'\n              subnetCidr: '111'\n              subnetType: '111'\n          cloudLinkCidr: 169.254.128.0/23\n        securityGroupId: ${createSecurityGroup.id}\n        vswitchZoneId: cn-hangzhou-b\n        vpcId: ${createVpc.id}\n        vswitchId: ${createVswitch.id}\n        vpdInfo:\n          vpdId: '111'\n          vpdSubnets:\n            - '111'\n        ipAllocationPolicies:\n          - bondPolicy:\n              bondDefaultSubnet: '111'\n              bonds:\n                - name: '111'\n                  subnet: '111'\n            machineTypePolicies:\n              - bonds:\n                  - name: '111'\n                    subnet: '111'\n                machineType: '111'\n            nodePolicies:\n              - bonds:\n                  - name: '111'\n                    subnet: '111'\n                nodeId: '111'\n      clusterName: tfacceflo7165\n      clusterType: Lite\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEflo Cluster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eflo/cluster:Cluster example \u003cid\u003e\n```\n\n","properties":{"clusterDescription":{"type":"string","description":"cluster description\n"},"clusterName":{"type":"string","description":"ClusterName\n"},"clusterType":{"type":"string","description":"cluster type\n"},"components":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ClusterComponent:ClusterComponent"},"description":"Component (software instance) See \u003cspan pulumi-lang-nodejs=\"`components`\" pulumi-lang-dotnet=\"`Components`\" pulumi-lang-go=\"`components`\" pulumi-lang-python=\"`components`\" pulumi-lang-yaml=\"`components`\" pulumi-lang-java=\"`components`\"\u003e`components`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"hpnZone":{"type":"string","description":"Cluster Number\n"},"ignoreFailedNodeTasks":{"type":"boolean","description":"Whether to allow skipping failed nodes. Default value: False\n"},"networks":{"$ref":"#/types/alicloud:eflo/ClusterNetworks:ClusterNetworks","description":"Network Information See \u003cspan pulumi-lang-nodejs=\"`networks`\" pulumi-lang-dotnet=\"`Networks`\" pulumi-lang-go=\"`networks`\" pulumi-lang-python=\"`networks`\" pulumi-lang-yaml=\"`networks`\" pulumi-lang-java=\"`networks`\"\u003e`networks`\u003c/span\u003e below.\n"},"nimizVswitches":{"type":"array","items":{"type":"string"},"description":"Node virtual switch\n"},"nodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ClusterNodeGroup:ClusterNodeGroup"},"description":"Node Group List See \u003cspan pulumi-lang-nodejs=\"`nodeGroups`\" pulumi-lang-dotnet=\"`NodeGroups`\" pulumi-lang-go=\"`nodeGroups`\" pulumi-lang-python=\"`node_groups`\" pulumi-lang-yaml=\"`nodeGroups`\" pulumi-lang-java=\"`nodeGroups`\"\u003e`node_groups`\u003c/span\u003e below.\n"},"openEniJumboFrame":{"type":"boolean","description":"Whether the network interface supports jumbo frames\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"tag\n"}},"required":["createTime","resourceGroupId","status"],"inputProperties":{"clusterDescription":{"type":"string","description":"cluster description\n","willReplaceOnChanges":true},"clusterName":{"type":"string","description":"ClusterName\n","willReplaceOnChanges":true},"clusterType":{"type":"string","description":"cluster type\n","willReplaceOnChanges":true},"components":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ClusterComponent:ClusterComponent"},"description":"Component (software instance) See \u003cspan pulumi-lang-nodejs=\"`components`\" pulumi-lang-dotnet=\"`Components`\" pulumi-lang-go=\"`components`\" pulumi-lang-python=\"`components`\" pulumi-lang-yaml=\"`components`\" pulumi-lang-java=\"`components`\"\u003e`components`\u003c/span\u003e below.\n"},"hpnZone":{"type":"string","description":"Cluster Number\n"},"ignoreFailedNodeTasks":{"type":"boolean","description":"Whether to allow skipping failed nodes. Default value: False\n"},"networks":{"$ref":"#/types/alicloud:eflo/ClusterNetworks:ClusterNetworks","description":"Network Information See \u003cspan pulumi-lang-nodejs=\"`networks`\" pulumi-lang-dotnet=\"`Networks`\" pulumi-lang-go=\"`networks`\" pulumi-lang-python=\"`networks`\" pulumi-lang-yaml=\"`networks`\" pulumi-lang-java=\"`networks`\"\u003e`networks`\u003c/span\u003e below.\n"},"nimizVswitches":{"type":"array","items":{"type":"string"},"description":"Node virtual switch\n"},"nodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ClusterNodeGroup:ClusterNodeGroup"},"description":"Node Group List See \u003cspan pulumi-lang-nodejs=\"`nodeGroups`\" pulumi-lang-dotnet=\"`NodeGroups`\" pulumi-lang-go=\"`nodeGroups`\" pulumi-lang-python=\"`node_groups`\" pulumi-lang-yaml=\"`nodeGroups`\" pulumi-lang-java=\"`nodeGroups`\"\u003e`node_groups`\u003c/span\u003e below.\n"},"openEniJumboFrame":{"type":"boolean","description":"Whether the network interface supports jumbo frames\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"tag\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Cluster resources.\n","properties":{"clusterDescription":{"type":"string","description":"cluster description\n","willReplaceOnChanges":true},"clusterName":{"type":"string","description":"ClusterName\n","willReplaceOnChanges":true},"clusterType":{"type":"string","description":"cluster type\n","willReplaceOnChanges":true},"components":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ClusterComponent:ClusterComponent"},"description":"Component (software instance) See \u003cspan pulumi-lang-nodejs=\"`components`\" pulumi-lang-dotnet=\"`Components`\" pulumi-lang-go=\"`components`\" pulumi-lang-python=\"`components`\" pulumi-lang-yaml=\"`components`\" pulumi-lang-java=\"`components`\"\u003e`components`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"hpnZone":{"type":"string","description":"Cluster Number\n"},"ignoreFailedNodeTasks":{"type":"boolean","description":"Whether to allow skipping failed nodes. Default value: False\n"},"networks":{"$ref":"#/types/alicloud:eflo/ClusterNetworks:ClusterNetworks","description":"Network Information See \u003cspan pulumi-lang-nodejs=\"`networks`\" pulumi-lang-dotnet=\"`Networks`\" pulumi-lang-go=\"`networks`\" pulumi-lang-python=\"`networks`\" pulumi-lang-yaml=\"`networks`\" pulumi-lang-java=\"`networks`\"\u003e`networks`\u003c/span\u003e below.\n"},"nimizVswitches":{"type":"array","items":{"type":"string"},"description":"Node virtual switch\n"},"nodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ClusterNodeGroup:ClusterNodeGroup"},"description":"Node Group List See \u003cspan pulumi-lang-nodejs=\"`nodeGroups`\" pulumi-lang-dotnet=\"`NodeGroups`\" pulumi-lang-go=\"`nodeGroups`\" pulumi-lang-python=\"`node_groups`\" pulumi-lang-yaml=\"`nodeGroups`\" pulumi-lang-java=\"`nodeGroups`\"\u003e`node_groups`\u003c/span\u003e below.\n"},"openEniJumboFrame":{"type":"boolean","description":"Whether the network interface supports jumbo frames\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"tag\n"}},"type":"object"}},"alicloud:eflo/er:Er":{"description":"Provides a Eflo Er resource.\n\n\n\nFor information about Eflo Er and how to use it, see [What is Er](https://next.api.alibabacloud.com/document/eflo/2022-05-30/CreateEr).\n\n\u003e **NOTE:** Available since v1.258.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultEr = new alicloud.eflo.Er(\"default\", {\n    erName: \"er-example-tf\",\n    masterZoneId: \"cn-hangzhou-a\",\n    description: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_er = alicloud.eflo.Er(\"default\",\n    er_name=\"er-example-tf\",\n    master_zone_id=\"cn-hangzhou-a\",\n    description=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultEr = new AliCloud.Eflo.Er(\"default\", new()\n    {\n        ErName = \"er-example-tf\",\n        MasterZoneId = \"cn-hangzhou-a\",\n        Description = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eflo\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eflo.NewEr(ctx, \"default\", \u0026eflo.ErArgs{\n\t\t\tErName:       pulumi.String(\"er-example-tf\"),\n\t\t\tMasterZoneId: pulumi.String(\"cn-hangzhou-a\"),\n\t\t\tDescription:  pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.eflo.Er;\nimport com.pulumi.alicloud.eflo.ErArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultEr = new Er(\"defaultEr\", ErArgs.builder()\n            .erName(\"er-example-tf\")\n            .masterZoneId(\"cn-hangzhou-a\")\n            .description(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultEr:\n    type: alicloud:eflo:Er\n    name: default\n    properties:\n      erName: er-example-tf\n      masterZoneId: cn-hangzhou-a\n      description: example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEflo Er can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eflo/er:Er example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Description.\n"},"erName":{"type":"string","description":"Lingjun HUB name\n"},"masterZoneId":{"type":"string","description":"Primary zone\n"},"regionId":{"type":"string","description":"region information\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group instance.\n"},"status":{"type":"string","description":"Status\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Label List\n"}},"required":["createTime","erName","masterZoneId","regionId","resourceGroupId","status"],"inputProperties":{"description":{"type":"string","description":"Description.\n"},"erName":{"type":"string","description":"Lingjun HUB name\n"},"masterZoneId":{"type":"string","description":"Primary zone\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Label List\n"}},"requiredInputs":["erName","masterZoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering Er resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Description.\n"},"erName":{"type":"string","description":"Lingjun HUB name\n"},"masterZoneId":{"type":"string","description":"Primary zone\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"region information\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group instance.\n"},"status":{"type":"string","description":"Status\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Label List\n"}},"type":"object"}},"alicloud:eflo/experimentPlan:ExperimentPlan":{"description":"Provides a Eflo Experiment Plan resource.\n\n\n\nFor information about Eflo Experiment Plan and how to use it, see [What is Experiment Plan](https://www.alibabacloud.com/help/en/pai/developer-reference/api-eflo-cnp-2023-08-28-createexperimentplan).\n\n\u003e **NOTE:** Available since v1.248.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultpSZN7t = new alicloud.eflo.ExperimentPlanTemplate(\"defaultpSZN7t\", {\n    templatePipelines: [{\n        workloadId: 2,\n        workloadName: \"MatMul\",\n        envParams: {\n            cpuPerWorker: 90,\n            gpuPerWorker: 8,\n            memoryPerWorker: 500,\n            shareMemory: 500,\n            workerNum: 1,\n            pyTorchVersion: \"1\",\n            gpuDriverVersion: \"1\",\n            cudaVersion: \"1\",\n            ncclVersion: \"1\",\n        },\n        pipelineOrder: 1,\n        scene: \"baseline\",\n    }],\n    privacyLevel: \"private\",\n    templateName: name,\n    templateDescription: name,\n});\nconst defaultResource = new alicloud.eflo.Resource(\"default\", {\n    userAccessParam: {\n        accessId: \"your_access_id\",\n        accessKey: \"your_access_key\",\n        workspaceId: \"your_workspace_id\",\n        endpoint: \"your_endpoint\",\n    },\n    clusterId: `terraform-${_default.result}`,\n    machineTypes: {\n        memoryInfo: \"32x 64GB DDR4 4800 Memory\",\n        type: \"Private\",\n        bondNum: 5,\n        nodeCount: 1,\n        cpuInfo: \"2x Intel Saphhire Rapid 8469C 48C CPU\",\n        networkInfo: \"1x 200Gbps Dual Port BF3 DPU for VPC 4x 200Gbps Dual Port EIC\",\n        gpuInfo: \"8x OAM 810 GPU\",\n        diskInfo: \"2x 480GB SATA SSD 4x 3.84TB NVMe SSD\",\n        networkMode: \"net\",\n        name: \"lingjun\",\n    },\n    clusterName: name,\n    clusterDesc: name,\n});\nconst defaultExperimentPlan = new alicloud.eflo.ExperimentPlan(\"default\", {\n    resourceId: defaultResource.resourceId,\n    planName: name,\n    templateId: defaultpSZN7t.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefaultp_szn7t = alicloud.eflo.ExperimentPlanTemplate(\"defaultpSZN7t\",\n    template_pipelines=[{\n        \"workload_id\": 2,\n        \"workload_name\": \"MatMul\",\n        \"env_params\": {\n            \"cpu_per_worker\": 90,\n            \"gpu_per_worker\": 8,\n            \"memory_per_worker\": 500,\n            \"share_memory\": 500,\n            \"worker_num\": 1,\n            \"py_torch_version\": \"1\",\n            \"gpu_driver_version\": \"1\",\n            \"cuda_version\": \"1\",\n            \"nccl_version\": \"1\",\n        },\n        \"pipeline_order\": 1,\n        \"scene\": \"baseline\",\n    }],\n    privacy_level=\"private\",\n    template_name=name,\n    template_description=name)\ndefault_resource = alicloud.eflo.Resource(\"default\",\n    user_access_param={\n        \"access_id\": \"your_access_id\",\n        \"access_key\": \"your_access_key\",\n        \"workspace_id\": \"your_workspace_id\",\n        \"endpoint\": \"your_endpoint\",\n    },\n    cluster_id=f\"terraform-{default['result']}\",\n    machine_types={\n        \"memory_info\": \"32x 64GB DDR4 4800 Memory\",\n        \"type\": \"Private\",\n        \"bond_num\": 5,\n        \"node_count\": 1,\n        \"cpu_info\": \"2x Intel Saphhire Rapid 8469C 48C CPU\",\n        \"network_info\": \"1x 200Gbps Dual Port BF3 DPU for VPC 4x 200Gbps Dual Port EIC\",\n        \"gpu_info\": \"8x OAM 810 GPU\",\n        \"disk_info\": \"2x 480GB SATA SSD 4x 3.84TB NVMe SSD\",\n        \"network_mode\": \"net\",\n        \"name\": \"lingjun\",\n    },\n    cluster_name=name,\n    cluster_desc=name)\ndefault_experiment_plan = alicloud.eflo.ExperimentPlan(\"default\",\n    resource_id=default_resource.resource_id,\n    plan_name=name,\n    template_id=defaultp_szn7t.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultpSZN7t = new AliCloud.Eflo.ExperimentPlanTemplate(\"defaultpSZN7t\", new()\n    {\n        TemplatePipelines = new[]\n        {\n            new AliCloud.Eflo.Inputs.ExperimentPlanTemplateTemplatePipelineArgs\n            {\n                WorkloadId = 2,\n                WorkloadName = \"MatMul\",\n                EnvParams = new AliCloud.Eflo.Inputs.ExperimentPlanTemplateTemplatePipelineEnvParamsArgs\n                {\n                    CpuPerWorker = 90,\n                    GpuPerWorker = 8,\n                    MemoryPerWorker = 500,\n                    ShareMemory = 500,\n                    WorkerNum = 1,\n                    PyTorchVersion = \"1\",\n                    GpuDriverVersion = \"1\",\n                    CudaVersion = \"1\",\n                    NcclVersion = \"1\",\n                },\n                PipelineOrder = 1,\n                Scene = \"baseline\",\n            },\n        },\n        PrivacyLevel = \"private\",\n        TemplateName = name,\n        TemplateDescription = name,\n    });\n\n    var defaultResource = new AliCloud.Eflo.Resource(\"default\", new()\n    {\n        UserAccessParam = new AliCloud.Eflo.Inputs.ResourceUserAccessParamArgs\n        {\n            AccessId = \"your_access_id\",\n            AccessKey = \"your_access_key\",\n            WorkspaceId = \"your_workspace_id\",\n            Endpoint = \"your_endpoint\",\n        },\n        ClusterId = $\"terraform-{@default.Result}\",\n        MachineTypes = new AliCloud.Eflo.Inputs.ResourceMachineTypesArgs\n        {\n            MemoryInfo = \"32x 64GB DDR4 4800 Memory\",\n            Type = \"Private\",\n            BondNum = 5,\n            NodeCount = 1,\n            CpuInfo = \"2x Intel Saphhire Rapid 8469C 48C CPU\",\n            NetworkInfo = \"1x 200Gbps Dual Port BF3 DPU for VPC 4x 200Gbps Dual Port EIC\",\n            GpuInfo = \"8x OAM 810 GPU\",\n            DiskInfo = \"2x 480GB SATA SSD 4x 3.84TB NVMe SSD\",\n            NetworkMode = \"net\",\n            Name = \"lingjun\",\n        },\n        ClusterName = name,\n        ClusterDesc = name,\n    });\n\n    var defaultExperimentPlan = new AliCloud.Eflo.ExperimentPlan(\"default\", new()\n    {\n        ResourceId = defaultResource.ResourceId,\n        PlanName = name,\n        TemplateId = defaultpSZN7t.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eflo\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultpSZN7t, err := eflo.NewExperimentPlanTemplate(ctx, \"defaultpSZN7t\", \u0026eflo.ExperimentPlanTemplateArgs{\n\t\t\tTemplatePipelines: eflo.ExperimentPlanTemplateTemplatePipelineArray{\n\t\t\t\t\u0026eflo.ExperimentPlanTemplateTemplatePipelineArgs{\n\t\t\t\t\tWorkloadId:   pulumi.Int(2),\n\t\t\t\t\tWorkloadName: pulumi.String(\"MatMul\"),\n\t\t\t\t\tEnvParams: \u0026eflo.ExperimentPlanTemplateTemplatePipelineEnvParamsArgs{\n\t\t\t\t\t\tCpuPerWorker:     pulumi.Int(90),\n\t\t\t\t\t\tGpuPerWorker:     pulumi.Int(8),\n\t\t\t\t\t\tMemoryPerWorker:  pulumi.Int(500),\n\t\t\t\t\t\tShareMemory:      pulumi.Int(500),\n\t\t\t\t\t\tWorkerNum:        pulumi.Int(1),\n\t\t\t\t\t\tPyTorchVersion:   pulumi.String(\"1\"),\n\t\t\t\t\t\tGpuDriverVersion: pulumi.String(\"1\"),\n\t\t\t\t\t\tCudaVersion:      pulumi.String(\"1\"),\n\t\t\t\t\t\tNcclVersion:      pulumi.String(\"1\"),\n\t\t\t\t\t},\n\t\t\t\t\tPipelineOrder: pulumi.Int(1),\n\t\t\t\t\tScene:         pulumi.String(\"baseline\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPrivacyLevel:        pulumi.String(\"private\"),\n\t\t\tTemplateName:        pulumi.String(name),\n\t\t\tTemplateDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultResource, err := eflo.NewResource(ctx, \"default\", \u0026eflo.ResourceArgs{\n\t\t\tUserAccessParam: \u0026eflo.ResourceUserAccessParamArgs{\n\t\t\t\tAccessId:    pulumi.String(\"your_access_id\"),\n\t\t\t\tAccessKey:   pulumi.String(\"your_access_key\"),\n\t\t\t\tWorkspaceId: pulumi.String(\"your_workspace_id\"),\n\t\t\t\tEndpoint:    pulumi.String(\"your_endpoint\"),\n\t\t\t},\n\t\t\tClusterId: pulumi.Sprintf(\"terraform-%v\", _default.Result),\n\t\t\tMachineTypes: \u0026eflo.ResourceMachineTypesArgs{\n\t\t\t\tMemoryInfo:  pulumi.String(\"32x 64GB DDR4 4800 Memory\"),\n\t\t\t\tType:        pulumi.String(\"Private\"),\n\t\t\t\tBondNum:     pulumi.Int(5),\n\t\t\t\tNodeCount:   pulumi.Int(1),\n\t\t\t\tCpuInfo:     pulumi.String(\"2x Intel Saphhire Rapid 8469C 48C CPU\"),\n\t\t\t\tNetworkInfo: pulumi.String(\"1x 200Gbps Dual Port BF3 DPU for VPC 4x 200Gbps Dual Port EIC\"),\n\t\t\t\tGpuInfo:     pulumi.String(\"8x OAM 810 GPU\"),\n\t\t\t\tDiskInfo:    pulumi.String(\"2x 480GB SATA SSD 4x 3.84TB NVMe SSD\"),\n\t\t\t\tNetworkMode: pulumi.String(\"net\"),\n\t\t\t\tName:        pulumi.String(\"lingjun\"),\n\t\t\t},\n\t\t\tClusterName: pulumi.String(name),\n\t\t\tClusterDesc: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eflo.NewExperimentPlan(ctx, \"default\", \u0026eflo.ExperimentPlanArgs{\n\t\t\tResourceId: defaultResource.ResourceId,\n\t\t\tPlanName:   pulumi.String(name),\n\t\t\tTemplateId: defaultpSZN7t.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.eflo.ExperimentPlanTemplate;\nimport com.pulumi.alicloud.eflo.ExperimentPlanTemplateArgs;\nimport com.pulumi.alicloud.eflo.inputs.ExperimentPlanTemplateTemplatePipelineArgs;\nimport com.pulumi.alicloud.eflo.inputs.ExperimentPlanTemplateTemplatePipelineEnvParamsArgs;\nimport com.pulumi.alicloud.eflo.Resource;\nimport com.pulumi.alicloud.eflo.ResourceArgs;\nimport com.pulumi.alicloud.eflo.inputs.ResourceUserAccessParamArgs;\nimport com.pulumi.alicloud.eflo.inputs.ResourceMachineTypesArgs;\nimport com.pulumi.alicloud.eflo.ExperimentPlan;\nimport com.pulumi.alicloud.eflo.ExperimentPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultpSZN7t = new ExperimentPlanTemplate(\"defaultpSZN7t\", ExperimentPlanTemplateArgs.builder()\n            .templatePipelines(ExperimentPlanTemplateTemplatePipelineArgs.builder()\n                .workloadId(2)\n                .workloadName(\"MatMul\")\n                .envParams(ExperimentPlanTemplateTemplatePipelineEnvParamsArgs.builder()\n                    .cpuPerWorker(90)\n                    .gpuPerWorker(8)\n                    .memoryPerWorker(500)\n                    .shareMemory(500)\n                    .workerNum(1)\n                    .pyTorchVersion(\"1\")\n                    .gpuDriverVersion(\"1\")\n                    .cudaVersion(\"1\")\n                    .ncclVersion(\"1\")\n                    .build())\n                .pipelineOrder(1)\n                .scene(\"baseline\")\n                .build())\n            .privacyLevel(\"private\")\n            .templateName(name)\n            .templateDescription(name)\n            .build());\n\n        var defaultResource = new Resource(\"defaultResource\", ResourceArgs.builder()\n            .userAccessParam(ResourceUserAccessParamArgs.builder()\n                .accessId(\"your_access_id\")\n                .accessKey(\"your_access_key\")\n                .workspaceId(\"your_workspace_id\")\n                .endpoint(\"your_endpoint\")\n                .build())\n            .clusterId(String.format(\"terraform-%s\", default_.result()))\n            .machineTypes(ResourceMachineTypesArgs.builder()\n                .memoryInfo(\"32x 64GB DDR4 4800 Memory\")\n                .type(\"Private\")\n                .bondNum(5)\n                .nodeCount(1)\n                .cpuInfo(\"2x Intel Saphhire Rapid 8469C 48C CPU\")\n                .networkInfo(\"1x 200Gbps Dual Port BF3 DPU for VPC 4x 200Gbps Dual Port EIC\")\n                .gpuInfo(\"8x OAM 810 GPU\")\n                .diskInfo(\"2x 480GB SATA SSD 4x 3.84TB NVMe SSD\")\n                .networkMode(\"net\")\n                .name(\"lingjun\")\n                .build())\n            .clusterName(name)\n            .clusterDesc(name)\n            .build());\n\n        var defaultExperimentPlan = new ExperimentPlan(\"defaultExperimentPlan\", ExperimentPlanArgs.builder()\n            .resourceId(defaultResource.resourceId())\n            .planName(name)\n            .templateId(defaultpSZN7t.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultpSZN7t:\n    type: alicloud:eflo:ExperimentPlanTemplate\n    properties:\n      templatePipelines:\n        - workloadId: '2'\n          workloadName: MatMul\n          envParams:\n            cpuPerWorker: '90'\n            gpuPerWorker: '8'\n            memoryPerWorker: '500'\n            shareMemory: '500'\n            workerNum: '1'\n            pyTorchVersion: '1'\n            gpuDriverVersion: '1'\n            cudaVersion: '1'\n            ncclVersion: '1'\n          pipelineOrder: '1'\n          scene: baseline\n      privacyLevel: private\n      templateName: ${name}\n      templateDescription: ${name}\n  defaultResource:\n    type: alicloud:eflo:Resource\n    name: default\n    properties:\n      userAccessParam:\n        accessId: your_access_id\n        accessKey: your_access_key\n        workspaceId: your_workspace_id\n        endpoint: your_endpoint\n      clusterId: terraform-${default.result}\n      machineTypes:\n        memoryInfo: 32x 64GB DDR4 4800 Memory\n        type: Private\n        bondNum: '5'\n        nodeCount: '1'\n        cpuInfo: 2x Intel Saphhire Rapid 8469C 48C CPU\n        networkInfo: 1x 200Gbps Dual Port BF3 DPU for VPC 4x 200Gbps Dual Port EIC\n        gpuInfo: 8x OAM 810 GPU\n        diskInfo: 2x 480GB SATA SSD 4x 3.84TB NVMe SSD\n        networkMode: net\n        name: lingjun\n      clusterName: ${name}\n      clusterDesc: ${name}\n  defaultExperimentPlan:\n    type: alicloud:eflo:ExperimentPlan\n    name: default\n    properties:\n      resourceId: ${defaultResource.resourceId}\n      planName: ${name}\n      templateId: ${defaultpSZN7t.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEflo Experiment Plan can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eflo/experimentPlan:ExperimentPlan example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"externalParams":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional operating parameters. You can include information about the specified node.\n"},"planName":{"type":"string","description":"Indicates the name of the experiment plan, which is used to distinguish different experiment plans.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"resourceId":{"type":"integer","description":"The ID of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"templateId":{"type":"integer","description":"The ID of the template.\n"}},"required":["createTime","planName","resourceGroupId","resourceId","templateId"],"inputProperties":{"externalParams":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional operating parameters. You can include information about the specified node.\n"},"planName":{"type":"string","description":"Indicates the name of the experiment plan, which is used to distinguish different experiment plans.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"resourceId":{"type":"integer","description":"The ID of the resource.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"templateId":{"type":"integer","description":"The ID of the template.\n","willReplaceOnChanges":true}},"requiredInputs":["resourceId","templateId"],"stateInputs":{"description":"Input properties used for looking up and filtering ExperimentPlan resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"externalParams":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional operating parameters. You can include information about the specified node.\n"},"planName":{"type":"string","description":"Indicates the name of the experiment plan, which is used to distinguish different experiment plans.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"resourceId":{"type":"integer","description":"The ID of the resource.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"templateId":{"type":"integer","description":"The ID of the template.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:eflo/experimentPlanTemplate:ExperimentPlanTemplate":{"description":"Provides a Eflo Experiment Plan Template resource.\n\n\n\nFor information about Eflo Experiment Plan Template and how to use it, see [What is Experiment Plan Template](https://www.alibabacloud.com/help/en/pai/developer-reference/api-eflo-cnp-2023-08-28-createexperimentplantemplate).\n\n\u003e **NOTE:** Available since v1.248.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.eflo.ExperimentPlanTemplate(\"default\", {\n    templatePipelines: [{\n        workloadId: 2,\n        workloadName: \"MatMul\",\n        envParams: {\n            cpuPerWorker: 90,\n            gpuPerWorker: 8,\n            memoryPerWorker: 500,\n            shareMemory: 500,\n            workerNum: 1,\n            pyTorchVersion: \"1\",\n            gpuDriverVersion: \"1\",\n            cudaVersion: \"1\",\n            ncclVersion: \"1\",\n        },\n        pipelineOrder: 1,\n        scene: \"baseline\",\n    }],\n    privacyLevel: \"private\",\n    templateName: name,\n    templateDescription: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.eflo.ExperimentPlanTemplate(\"default\",\n    template_pipelines=[{\n        \"workload_id\": 2,\n        \"workload_name\": \"MatMul\",\n        \"env_params\": {\n            \"cpu_per_worker\": 90,\n            \"gpu_per_worker\": 8,\n            \"memory_per_worker\": 500,\n            \"share_memory\": 500,\n            \"worker_num\": 1,\n            \"py_torch_version\": \"1\",\n            \"gpu_driver_version\": \"1\",\n            \"cuda_version\": \"1\",\n            \"nccl_version\": \"1\",\n        },\n        \"pipeline_order\": 1,\n        \"scene\": \"baseline\",\n    }],\n    privacy_level=\"private\",\n    template_name=name,\n    template_description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Eflo.ExperimentPlanTemplate(\"default\", new()\n    {\n        TemplatePipelines = new[]\n        {\n            new AliCloud.Eflo.Inputs.ExperimentPlanTemplateTemplatePipelineArgs\n            {\n                WorkloadId = 2,\n                WorkloadName = \"MatMul\",\n                EnvParams = new AliCloud.Eflo.Inputs.ExperimentPlanTemplateTemplatePipelineEnvParamsArgs\n                {\n                    CpuPerWorker = 90,\n                    GpuPerWorker = 8,\n                    MemoryPerWorker = 500,\n                    ShareMemory = 500,\n                    WorkerNum = 1,\n                    PyTorchVersion = \"1\",\n                    GpuDriverVersion = \"1\",\n                    CudaVersion = \"1\",\n                    NcclVersion = \"1\",\n                },\n                PipelineOrder = 1,\n                Scene = \"baseline\",\n            },\n        },\n        PrivacyLevel = \"private\",\n        TemplateName = name,\n        TemplateDescription = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eflo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := eflo.NewExperimentPlanTemplate(ctx, \"default\", \u0026eflo.ExperimentPlanTemplateArgs{\n\t\t\tTemplatePipelines: eflo.ExperimentPlanTemplateTemplatePipelineArray{\n\t\t\t\t\u0026eflo.ExperimentPlanTemplateTemplatePipelineArgs{\n\t\t\t\t\tWorkloadId:   pulumi.Int(2),\n\t\t\t\t\tWorkloadName: pulumi.String(\"MatMul\"),\n\t\t\t\t\tEnvParams: \u0026eflo.ExperimentPlanTemplateTemplatePipelineEnvParamsArgs{\n\t\t\t\t\t\tCpuPerWorker:     pulumi.Int(90),\n\t\t\t\t\t\tGpuPerWorker:     pulumi.Int(8),\n\t\t\t\t\t\tMemoryPerWorker:  pulumi.Int(500),\n\t\t\t\t\t\tShareMemory:      pulumi.Int(500),\n\t\t\t\t\t\tWorkerNum:        pulumi.Int(1),\n\t\t\t\t\t\tPyTorchVersion:   pulumi.String(\"1\"),\n\t\t\t\t\t\tGpuDriverVersion: pulumi.String(\"1\"),\n\t\t\t\t\t\tCudaVersion:      pulumi.String(\"1\"),\n\t\t\t\t\t\tNcclVersion:      pulumi.String(\"1\"),\n\t\t\t\t\t},\n\t\t\t\t\tPipelineOrder: pulumi.Int(1),\n\t\t\t\t\tScene:         pulumi.String(\"baseline\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPrivacyLevel:        pulumi.String(\"private\"),\n\t\t\tTemplateName:        pulumi.String(name),\n\t\t\tTemplateDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eflo.ExperimentPlanTemplate;\nimport com.pulumi.alicloud.eflo.ExperimentPlanTemplateArgs;\nimport com.pulumi.alicloud.eflo.inputs.ExperimentPlanTemplateTemplatePipelineArgs;\nimport com.pulumi.alicloud.eflo.inputs.ExperimentPlanTemplateTemplatePipelineEnvParamsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ExperimentPlanTemplate(\"default\", ExperimentPlanTemplateArgs.builder()\n            .templatePipelines(ExperimentPlanTemplateTemplatePipelineArgs.builder()\n                .workloadId(2)\n                .workloadName(\"MatMul\")\n                .envParams(ExperimentPlanTemplateTemplatePipelineEnvParamsArgs.builder()\n                    .cpuPerWorker(90)\n                    .gpuPerWorker(8)\n                    .memoryPerWorker(500)\n                    .shareMemory(500)\n                    .workerNum(1)\n                    .pyTorchVersion(\"1\")\n                    .gpuDriverVersion(\"1\")\n                    .cudaVersion(\"1\")\n                    .ncclVersion(\"1\")\n                    .build())\n                .pipelineOrder(1)\n                .scene(\"baseline\")\n                .build())\n            .privacyLevel(\"private\")\n            .templateName(name)\n            .templateDescription(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:eflo:ExperimentPlanTemplate\n    properties:\n      templatePipelines:\n        - workloadId: '2'\n          workloadName: MatMul\n          envParams:\n            cpuPerWorker: '90'\n            gpuPerWorker: '8'\n            memoryPerWorker: '500'\n            shareMemory: '500'\n            workerNum: '1'\n            pyTorchVersion: '1'\n            gpuDriverVersion: '1'\n            cudaVersion: '1'\n            ncclVersion: '1'\n          pipelineOrder: '1'\n          scene: baseline\n      privacyLevel: private\n      templateName: ${name}\n      templateDescription: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEflo Experiment Plan Template can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eflo/experimentPlanTemplate:ExperimentPlanTemplate example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"privacyLevel":{"type":"string","description":"Used to indicate the privacy level of the content or information. It can have the following optional parameters:\n- private: Indicates that the content is private and restricted to specific users or permission groups. Private content is usually not publicly displayed, and only authorized users can view or edit it.\n- public: Indicates that the content is public and can be accessed by anyone. Public content is usually viewable by all users and is suitable for sharing information or resources\n"},"templateDescription":{"type":"string","description":"Describe the purpose of this template.\n"},"templateId":{"type":"string","description":"The ID of the template.\n"},"templateName":{"type":"string","description":"Help users identify and select specific templates.\n"},"templatePipelines":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ExperimentPlanTemplateTemplatePipeline:ExperimentPlanTemplateTemplatePipeline"},"description":"Representative Template Pipeline. See \u003cspan pulumi-lang-nodejs=\"`templatePipeline`\" pulumi-lang-dotnet=\"`TemplatePipeline`\" pulumi-lang-go=\"`templatePipeline`\" pulumi-lang-python=\"`template_pipeline`\" pulumi-lang-yaml=\"`templatePipeline`\" pulumi-lang-java=\"`templatePipeline`\"\u003e`template_pipeline`\u003c/span\u003e below.\n"}},"required":["createTime","privacyLevel","templateId","templateName","templatePipelines"],"inputProperties":{"privacyLevel":{"type":"string","description":"Used to indicate the privacy level of the content or information. It can have the following optional parameters:\n- private: Indicates that the content is private and restricted to specific users or permission groups. Private content is usually not publicly displayed, and only authorized users can view or edit it.\n- public: Indicates that the content is public and can be accessed by anyone. Public content is usually viewable by all users and is suitable for sharing information or resources\n","willReplaceOnChanges":true},"templateDescription":{"type":"string","description":"Describe the purpose of this template.\n","willReplaceOnChanges":true},"templateName":{"type":"string","description":"Help users identify and select specific templates.\n","willReplaceOnChanges":true},"templatePipelines":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ExperimentPlanTemplateTemplatePipeline:ExperimentPlanTemplateTemplatePipeline"},"description":"Representative Template Pipeline. See \u003cspan pulumi-lang-nodejs=\"`templatePipeline`\" pulumi-lang-dotnet=\"`TemplatePipeline`\" pulumi-lang-go=\"`templatePipeline`\" pulumi-lang-python=\"`template_pipeline`\" pulumi-lang-yaml=\"`templatePipeline`\" pulumi-lang-java=\"`templatePipeline`\"\u003e`template_pipeline`\u003c/span\u003e below.\n"}},"requiredInputs":["privacyLevel","templateName","templatePipelines"],"stateInputs":{"description":"Input properties used for looking up and filtering ExperimentPlanTemplate resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"privacyLevel":{"type":"string","description":"Used to indicate the privacy level of the content or information. It can have the following optional parameters:\n- private: Indicates that the content is private and restricted to specific users or permission groups. Private content is usually not publicly displayed, and only authorized users can view or edit it.\n- public: Indicates that the content is public and can be accessed by anyone. Public content is usually viewable by all users and is suitable for sharing information or resources\n","willReplaceOnChanges":true},"templateDescription":{"type":"string","description":"Describe the purpose of this template.\n","willReplaceOnChanges":true},"templateId":{"type":"string","description":"The ID of the template.\n"},"templateName":{"type":"string","description":"Help users identify and select specific templates.\n","willReplaceOnChanges":true},"templatePipelines":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/ExperimentPlanTemplateTemplatePipeline:ExperimentPlanTemplateTemplatePipeline"},"description":"Representative Template Pipeline. See \u003cspan pulumi-lang-nodejs=\"`templatePipeline`\" pulumi-lang-dotnet=\"`TemplatePipeline`\" pulumi-lang-go=\"`templatePipeline`\" pulumi-lang-python=\"`template_pipeline`\" pulumi-lang-yaml=\"`templatePipeline`\" pulumi-lang-java=\"`templatePipeline`\"\u003e`template_pipeline`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:eflo/hyperNode:HyperNode":{"description":"Provides a Eflo Hyper Node resource.\n\nHyper computing node.\n\nFor information about Eflo Hyper Node and how to use it, see [What is Hyper Node](https://www.alibabacloud.com/help/en/pai/developer-reference/api-eflo-controller-2022-12-15-overview).\n\n\u003e **NOTE:** Available since v1.264.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.eflo.HyperNode(\"default\", {\n    zoneId: \"ap-southeast-7a\",\n    machineType: \"efg3.GN9A.ch72\",\n    hpnZone: \"A1\",\n    serverArch: \"bmserver\",\n    paymentDuration: 1,\n    paymentType: \"Subscription\",\n    stageNum: \"1\",\n    renewalDuration: 2,\n    renewalStatus: \"ManualRenewal\",\n    tags: {\n        From: \"Terraform\",\n        Env: \"Product\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.eflo.HyperNode(\"default\",\n    zone_id=\"ap-southeast-7a\",\n    machine_type=\"efg3.GN9A.ch72\",\n    hpn_zone=\"A1\",\n    server_arch=\"bmserver\",\n    payment_duration=1,\n    payment_type=\"Subscription\",\n    stage_num=\"1\",\n    renewal_duration=2,\n    renewal_status=\"ManualRenewal\",\n    tags={\n        \"From\": \"Terraform\",\n        \"Env\": \"Product\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Eflo.HyperNode(\"default\", new()\n    {\n        ZoneId = \"ap-southeast-7a\",\n        MachineType = \"efg3.GN9A.ch72\",\n        HpnZone = \"A1\",\n        ServerArch = \"bmserver\",\n        PaymentDuration = 1,\n        PaymentType = \"Subscription\",\n        StageNum = \"1\",\n        RenewalDuration = 2,\n        RenewalStatus = \"ManualRenewal\",\n        Tags = \n        {\n            { \"From\", \"Terraform\" },\n            { \"Env\", \"Product\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eflo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := eflo.NewHyperNode(ctx, \"default\", \u0026eflo.HyperNodeArgs{\n\t\t\tZoneId:          pulumi.String(\"ap-southeast-7a\"),\n\t\t\tMachineType:     pulumi.String(\"efg3.GN9A.ch72\"),\n\t\t\tHpnZone:         pulumi.String(\"A1\"),\n\t\t\tServerArch:      pulumi.String(\"bmserver\"),\n\t\t\tPaymentDuration: pulumi.Int(1),\n\t\t\tPaymentType:     pulumi.String(\"Subscription\"),\n\t\t\tStageNum:        pulumi.String(\"1\"),\n\t\t\tRenewalDuration: pulumi.Int(2),\n\t\t\tRenewalStatus:   pulumi.String(\"ManualRenewal\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"From\": pulumi.String(\"Terraform\"),\n\t\t\t\t\"Env\":  pulumi.String(\"Product\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eflo.HyperNode;\nimport com.pulumi.alicloud.eflo.HyperNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new HyperNode(\"default\", HyperNodeArgs.builder()\n            .zoneId(\"ap-southeast-7a\")\n            .machineType(\"efg3.GN9A.ch72\")\n            .hpnZone(\"A1\")\n            .serverArch(\"bmserver\")\n            .paymentDuration(1)\n            .paymentType(\"Subscription\")\n            .stageNum(\"1\")\n            .renewalDuration(2)\n            .renewalStatus(\"ManualRenewal\")\n            .tags(Map.ofEntries(\n                Map.entry(\"From\", \"Terraform\"),\n                Map.entry(\"Env\", \"Product\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:eflo:HyperNode\n    properties:\n      zoneId: ap-southeast-7a\n      machineType: efg3.GN9A.ch72\n      hpnZone: A1\n      serverArch: bmserver\n      paymentDuration: '1'\n      paymentType: Subscription\n      stageNum: '1'\n      renewalDuration: 2\n      renewalStatus: ManualRenewal\n      tags:\n        From: Terraform\n        Env: Product\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEflo Hyper Node can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eflo/hyperNode:HyperNode example \u003cid\u003e\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/HyperNodeDataDisk:HyperNodeDataDisk"},"description":"List of disk information of attaching to each sub computing node.  See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"hostname":{"type":"string","description":"The host name prefix of the sub computing node\n"},"hpnZone":{"type":"string","description":"Number of the cluster to which the hyper computing node belongs\n"},"loginPassword":{"type":"string","description":"Login Password of the sub computing node\n","secret":true},"machineType":{"type":"string","description":"The model used by the hyper computing node\n"},"nodeGroupId":{"type":"string","description":"Node group ID\n"},"paymentDuration":{"type":"integer","description":"The duration of the instance purchase, in units.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"paymentType":{"type":"string","description":"The payment type of the resource\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"renewalDuration":{"type":"integer","description":"Number of auto-renewal cycles\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status. Value: AutoRenewal: automatic renewal. ManualRenewal: manual renewal. The default ManualRenewal.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"serverArch":{"type":"string","description":"Hyper Node Architecture\n"},"stageNum":{"type":"string","description":"The number of installments of the hyper computing node of the fixed fee installment.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"userData":{"type":"string","description":"Custom user data for the sub computing node\n"},"vpcId":{"type":"string","description":"The ID of the vpc to which the sub computing node\n"},"vswitchId":{"type":"string","description":"The ID of the vswitch to which the sub computing node\n"},"zoneId":{"type":"string","description":"The zone where the hyper compute node is located\n"}},"required":["createTime","paymentType","regionId","renewalStatus","resourceGroupId","status"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/HyperNodeDataDisk:HyperNodeDataDisk"},"description":"List of disk information of attaching to each sub computing node.  See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"hostname":{"type":"string","description":"The host name prefix of the sub computing node\n"},"hpnZone":{"type":"string","description":"Number of the cluster to which the hyper computing node belongs\n","willReplaceOnChanges":true},"loginPassword":{"type":"string","description":"Login Password of the sub computing node\n","secret":true},"machineType":{"type":"string","description":"The model used by the hyper computing node\n","willReplaceOnChanges":true},"nodeGroupId":{"type":"string","description":"Node group ID\n"},"paymentDuration":{"type":"integer","description":"The duration of the instance purchase, in units.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"paymentType":{"type":"string","description":"The payment type of the resource\n","willReplaceOnChanges":true},"renewalDuration":{"type":"integer","description":"Number of auto-renewal cycles\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status. Value: AutoRenewal: automatic renewal. ManualRenewal: manual renewal. The default ManualRenewal.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"serverArch":{"type":"string","description":"Hyper Node Architecture\n","willReplaceOnChanges":true},"stageNum":{"type":"string","description":"The number of installments of the hyper computing node of the fixed fee installment.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"userData":{"type":"string","description":"Custom user data for the sub computing node\n"},"vpcId":{"type":"string","description":"The ID of the vpc to which the sub computing node\n"},"vswitchId":{"type":"string","description":"The ID of the vswitch to which the sub computing node\n"},"zoneId":{"type":"string","description":"The zone where the hyper compute node is located\n","willReplaceOnChanges":true}},"requiredInputs":["paymentType"],"stateInputs":{"description":"Input properties used for looking up and filtering HyperNode resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/HyperNodeDataDisk:HyperNodeDataDisk"},"description":"List of disk information of attaching to each sub computing node.  See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"hostname":{"type":"string","description":"The host name prefix of the sub computing node\n"},"hpnZone":{"type":"string","description":"Number of the cluster to which the hyper computing node belongs\n","willReplaceOnChanges":true},"loginPassword":{"type":"string","description":"Login Password of the sub computing node\n","secret":true},"machineType":{"type":"string","description":"The model used by the hyper computing node\n","willReplaceOnChanges":true},"nodeGroupId":{"type":"string","description":"Node group ID\n"},"paymentDuration":{"type":"integer","description":"The duration of the instance purchase, in units.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"paymentType":{"type":"string","description":"The payment type of the resource\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The region ID of the resource\n"},"renewalDuration":{"type":"integer","description":"Number of auto-renewal cycles\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status. Value: AutoRenewal: automatic renewal. ManualRenewal: manual renewal. The default ManualRenewal.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"serverArch":{"type":"string","description":"Hyper Node Architecture\n","willReplaceOnChanges":true},"stageNum":{"type":"string","description":"The number of installments of the hyper computing node of the fixed fee installment.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"userData":{"type":"string","description":"Custom user data for the sub computing node\n"},"vpcId":{"type":"string","description":"The ID of the vpc to which the sub computing node\n"},"vswitchId":{"type":"string","description":"The ID of the vswitch to which the sub computing node\n"},"zoneId":{"type":"string","description":"The zone where the hyper compute node is located\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:eflo/invocation:Invocation":{"description":"Provides a Eflo Invocation resource.\n\nCloud assistant command execution on the node.\n\nFor information about Eflo Invocation and how to use it, see [What is Invocation](https://next.api.alibabacloud.com/document/eflo-controller/2022-12-15/RunCommand).\n\n\u003e **NOTE:** Available since v1.246.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nconfiguration:\n  # Before executing this example, you need to confirm with the product team whether the resources are sufficient or you will get an error message with \"Failure to check order before create instance\"\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createVpc:\n    type: alicloud:vpc:Network\n    name: create_vpc\n    properties:\n      cidrBlock: 192.168.0.0/16\n      vpcName: cluster-resoure-example\n  createVswitch:\n    type: alicloud:vpc:Switch\n    name: create_vswitch\n    properties:\n      vpcId: ${createVpc.id}\n      zoneId: cn-hangzhou-b\n      cidrBlock: 192.168.0.0/24\n      vswitchName: cluster-resoure-example\n  createSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: create_security_group\n    properties:\n      description: sg\n      securityGroupName: cluster-resoure-example\n      securityGroupType: normal\n      vpcId: ${createVpc.id}\n  defaultCluster:\n    type: alicloud:eflo:Cluster\n    name: default\n    properties:\n      clusterDescription: cluster-resource-example\n      openEniJumboFrame: 'false'\n      hpnZone: B1\n      nimizVswitches:\n        - '1111'\n      ignoreFailedNodeTasks: 'true'\n      resourceGroupId: ${default.ids[1]}\n      nodeGroups:\n        - imageId: i198448731735114628708\n          zoneId: cn-hangzhou-b\n          nodeGroupName: cluster-resource-example\n          nodeGroupDescription: cluster-resource-example\n          machineType: efg2.C48cA3sen\n      networks:\n        tailIpVersion: ipv4\n        newVpdInfo:\n          monitorVpcId: ${createVpc.id}\n          monitorVswitchId: ${createVswitch.id}\n          cenId: '11111'\n          cloudLinkId: '1111'\n          vpdCidr: '111'\n          vpdSubnets:\n            - zoneId: '1111'\n              subnetCidr: '111'\n              subnetType: '111'\n          cloudLinkCidr: 169.254.128.0/23\n        securityGroupId: ${createSecurityGroup.id}\n        vswitchZoneId: cn-hangzhou-b\n        vpcId: ${createVpc.id}\n        vswitchId: ${createVswitch.id}\n        vpdInfo:\n          vpdId: '111'\n          vpdSubnets:\n            - '111'\n        ipAllocationPolicies:\n          - bondPolicy:\n              bondDefaultSubnet: '111'\n              bonds:\n                - name: '111'\n                  subnet: '111'\n            machineTypePolicies:\n              - bonds:\n                  - name: '111'\n                    subnet: '111'\n                machineType: '111'\n            nodePolicies:\n              - bonds:\n                  - name: '111'\n                    subnet: '111'\n                nodeId: '111'\n      clusterName: tfacceflo7165\n      clusterType: Lite\n  defaultNode:\n    type: alicloud:eflo:Node\n    name: default\n    properties:\n      period: '36'\n      discountLevel: '36'\n      billingCycle: 1month\n      classify: gpuserver\n      zone: cn-hangzhou-b\n      productForm: instance\n      paymentRatio: '0'\n      hpnZone: B1\n      serverArch: bmserver\n      computingServer: efg1.nvga1n\n      stageNum: '36'\n      renewalStatus: AutoRenewal\n      renewPeriod: '36'\n      status: Unused\n  defaultNodeGroup:\n    type: alicloud:eflo:NodeGroup\n    name: default\n    properties:\n      nodes:\n        - nodeId: ${defaultNode.id}\n          vpcId: ${createVpc.id}\n          vswitchId: ${createVswitch.id}\n          hostname: jxyhostname\n          loginPassword: Alibaba@2025\n      ignoreFailedNodeTasks: 'true'\n      clusterId: ${defaultCluster.id}\n      imageId: i195048661660874208657\n      zoneId: cn-hangzhou-b\n      vpdSubnets:\n        - example\n      userData: YWxpLGFsaSxhbGliYWJh\n      vswitchZoneId: cn-hangzhou-b\n      ipAllocationPolicies:\n        - bondPolicy:\n            bondDefaultSubnet: example\n            bonds:\n              - name: example\n                subnet: example\n          machineTypePolicies:\n            - bonds:\n                - name: example\n                  subnet: example\n              machineType: example\n          nodePolicies:\n            - nodeId: ${defaultNode.id}\n              bonds:\n                - name: example\n                  subnet: example\n      machineType: efg1.nvga1\n      az: cn-hangzhou-b\n      nodeGroupDescription: resource-example1\n      nodeGroupName: tfacceflo63657_update\n  defaultInvocation:\n    type: alicloud:eflo:Invocation\n    name: default\n    properties:\n      description: example\n      contentEncoding: Base64\n      name: resource-example\n      repeatMode: Once\n      parameters:\n        - name: example\n      nodeIdLists:\n        - ${defaultNode.id}\n      timeout: '68'\n      commandContent: ZWNobyAxMjM=\n      workingDir: /home/\n      username: root\n      enableParameter: false\n      terminationMode: ProcessTree\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.eflo.Invocation`\" pulumi-lang-dotnet=\"`alicloud.eflo.Invocation`\" pulumi-lang-go=\"`eflo.Invocation`\" pulumi-lang-python=\"`eflo.Invocation`\" pulumi-lang-yaml=\"`alicloud.eflo.Invocation`\" pulumi-lang-java=\"`alicloud.eflo.Invocation`\"\u003e`alicloud.eflo.Invocation`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.eflo.Invocation`\" pulumi-lang-dotnet=\"`alicloud.eflo.Invocation`\" pulumi-lang-go=\"`eflo.Invocation`\" pulumi-lang-python=\"`eflo.Invocation`\" pulumi-lang-yaml=\"`alicloud.eflo.Invocation`\" pulumi-lang-java=\"`alicloud.eflo.Invocation`\"\u003e`alicloud.eflo.Invocation`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEflo Invocation can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eflo/invocation:Invocation example \u003cid\u003e\n```\n\n","properties":{"commandContent":{"type":"string","description":"The command content. You need to pay attention:\n- Specify the parameter 'EnableParameter = true' to enable the custom parameter feature in the command content.\n- Define custom parameters in the form of {{}} inclusion, and spaces and line breaks before and after the parameter name in '{{}}' are ignored.\n- The number of custom parameters cannot exceed 20.\n- Custom parameter names can a-zA-Z0-9 a combination of-_. Other characters are not supported. Parameter names are not case-sensitive.\n- A single custom parameter name cannot exceed 64 bytes.\n"},"commandId":{"type":"string","description":"Command ID\n"},"contentEncoding":{"type":"string","description":"The encoding of the script content. Value range:\n- PlainText: no encoding, using PlainText transmission.\n- Base64:Base64 encoding.\n\nDefault value: PlainText. If you fill it randomly or wrongly, the value will be treated as a PlainText.\n"},"description":{"type":"string","description":"The command description.\n"},"enableParameter":{"type":"boolean","description":"Whether custom parameters are included in the command.\nDefault value: false.\n"},"frequency":{"type":"string","description":"The execution time of the scheduled execution command. Currently, three scheduled execution methods are supported: fixed interval execution (based on Rate expression), only once at a specified time, and timed execution based on clock (based on Cron expression).\n- Fixed time interval execution: Based on the Rate expression, the command is executed at the set time interval. Time intervals can be selected by seconds (s), minutes (m), hours (h), and days (d), which is suitable for scenarios where tasks are executed at fixed time intervals. The format is rate( ). If the execution is performed every 5 minutes, the format is rate(5m). Executing with a fixed time interval has the following limitations:\n- The set time interval is no more than 7 days and no less than 60 seconds, and must be greater than the timeout period of the scheduled task.\n- The execution interval is based only on a fixed frequency, independent of the time the task actually takes to execute. For example, if the command is executed every 5 minutes and the task takes 2 minutes to complete, the next round will be executed 3 minutes after the task is completed.\n- The task is not executed immediately when it is created. For example, if a command is executed every 5 minutes, the command is not executed immediately when a task is created, but is executed 5 minutes after the task is created.\n- Execute only once at the specified time: Execute the command once according to the set time zone and execution time point. The format is at(yyyy-MM-dd HH:mm:ss ), that is, at (year-month-day time: minute: Second ). If you do not specify a time zone, the default is the UTC time zone. Time zones can be in the following three formats: the full name of the time zone, such as Asia/Shanghai (China/Shanghai time), America/los_angles (United States/Los Angeles time), and so on. The offset of the time zone relative to Greenwich Mean Time: E.G. GMT +8:00 (East Zone 8), GMT-7 (West Zone 7), etc. When using the GMT format, the hour bit does not support adding leading zeros. Time zone abbreviation: Only UTC (Coordinated Universal Time) is supported.\nIf it is specified to be executed once 13:15:30 June 06, 2022, China/Shanghai time, the format is at (Asia/Shanghai, 2022-06-06 13:15:30); If it is specified to be executed once 13:15:30 June 06, 2022, the format is at(2022-06-06 13:15:30 GMT-7:00).\n- Timing based on clock (based on Cron expression): Based on Cron expression, commands are executed according to the set timing task. The format is        , that is,  . In the specified time zone, calculate the execution time of the scheduled task based on the Cron expression and execute it. If no time zone is specified, the default time zone is the internal time zone of the scheduled task instance. For more information about Cron expressions, see Cron Expressions. Time zones support the following three forms:\n- Full time zone name: such as Asia/Shanghai (China/Shanghai time), America/los_angles (US/Los Angeles time), etc.\n- The offset of the time zone relative to Greenwich Mean Time: E.G. GMT +8:00 (East Zone 8), GMT-7 (West Zone 7), etc. When using the GMT format, the hour bit does not support adding leading zeros.\n- Time zone abbreviation: Only UTC (Coordinated Universal Time) is supported.\n\nFor example, in China/Shanghai time, the command will be executed once every day at 10:15 am in 2022 in the format 0 15 10? * * 2022 Asia/Shanghai; In the eastern 8th District time, it will be executed every half hour from 10:00 a.m. to 11:30 a.m. every day in 2022, in the format of 0 0/30 10-11 * *? 2022 GMT +8:00; In UTC time, starting from 2022, it will be executed every 5 minutes from 14:00 P.M. to 14:55 p. M. Every two years in October, in the format of 0 0/5 14*10? 2022/2 UTC.\n"},"launcher":{"type":"string","description":"The bootstrapper for script execution. The length cannot exceed 1KB.\n"},"name":{"type":"string","description":"The command name.\n"},"nodeIdLists":{"type":"array","items":{"type":"string"},"description":"A list of nodes.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"When the command contains custom parameters, the key-value pair of the custom parameters passed in when the command is executed. For example, if the command content is 'echo {{name}}', the key-value pair'{\"name\":\"Jack\"}'can be passed through the 'Parameter' parameter'. The custom parameter will automatically replace the variable value 'name' to get a new command that actually executes 'echo Jack '.\n\nThe number of custom parameters ranges from 0 to 10, and you need to pay attention:\n- The key is not allowed to be an empty string and supports a maximum of 64 characters.\n- The value is allowed to be an empty string.\n- After the custom parameters and the original command content are encoded in Base64, if the command is saved, the size of the command content after Base64 encoding cannot exceed 18KB. If the command is not saved, the size of the command content after Base64 encoding cannot exceed 24KB. You can set whether to keep the command through 'KeepCommand.\n- The set of custom parameter names must be a subset of the parameter set defined when the command is created. For parameters that are not passed in, you can use an empty string instead.\n\nThe default value is empty, which means that the parameter is unset and the custom parameter is disabled.\n"},"repeatMode":{"type":"string","description":"Sets the way the command is executed. Value range:\n- Once: Execute the command immediately.\n- Period: executes the command regularly. When the value of this parameter is 'Period', the 'Frequency' parameter must also be specified.\n- NextRebootOnly: Automatically execute the command when the instance is next started.\n- EveryReboot: The command is automatically executed every time the instance is started.\n\nDefault:\n- When the'frequency' parameter is not specified, the default value is'once '.\n- When the'frequency' parameter is specified, regardless of whether the parameter value has been set or not, it will be processed according to'period.\n"},"terminationMode":{"type":"string","description":"The mode when the task is stopped (manually stopped or execution time-out interrupted). Possible values:\nProcess: Stops the current script Process.\nProcessTree: Stops the current process tree (the script process and the collection of all child processes it created)\n"},"timeout":{"type":"integer","description":"The timeout period for command execution. Unit: seconds. A timeout occurs when a command cannot be run due to a process, a missing module, or a missing cloud assistant Agent. After the timeout, the command process is forcibly terminated. Default value: 60.\n"},"username":{"type":"string","description":"The name of the user who executed the command in the instance. The length must not exceed 255 characters.\nThe instance of the Linux system. By default, the root user runs commands.\n"},"workingDir":{"type":"string","description":"You can customize the command execution path. The default path is as follows:\nLinux instance: the execution path is in the/home directory of the root user by default.\n"}},"required":["name"],"inputProperties":{"commandContent":{"type":"string","description":"The command content. You need to pay attention:\n- Specify the parameter 'EnableParameter = true' to enable the custom parameter feature in the command content.\n- Define custom parameters in the form of {{}} inclusion, and spaces and line breaks before and after the parameter name in '{{}}' are ignored.\n- The number of custom parameters cannot exceed 20.\n- Custom parameter names can a-zA-Z0-9 a combination of-_. Other characters are not supported. Parameter names are not case-sensitive.\n- A single custom parameter name cannot exceed 64 bytes.\n"},"commandId":{"type":"string","description":"Command ID\n"},"contentEncoding":{"type":"string","description":"The encoding of the script content. Value range:\n- PlainText: no encoding, using PlainText transmission.\n- Base64:Base64 encoding.\n\nDefault value: PlainText. If you fill it randomly or wrongly, the value will be treated as a PlainText.\n"},"description":{"type":"string","description":"The command description.\n"},"enableParameter":{"type":"boolean","description":"Whether custom parameters are included in the command.\nDefault value: false.\n"},"frequency":{"type":"string","description":"The execution time of the scheduled execution command. Currently, three scheduled execution methods are supported: fixed interval execution (based on Rate expression), only once at a specified time, and timed execution based on clock (based on Cron expression).\n- Fixed time interval execution: Based on the Rate expression, the command is executed at the set time interval. Time intervals can be selected by seconds (s), minutes (m), hours (h), and days (d), which is suitable for scenarios where tasks are executed at fixed time intervals. The format is rate( ). If the execution is performed every 5 minutes, the format is rate(5m). Executing with a fixed time interval has the following limitations:\n- The set time interval is no more than 7 days and no less than 60 seconds, and must be greater than the timeout period of the scheduled task.\n- The execution interval is based only on a fixed frequency, independent of the time the task actually takes to execute. For example, if the command is executed every 5 minutes and the task takes 2 minutes to complete, the next round will be executed 3 minutes after the task is completed.\n- The task is not executed immediately when it is created. For example, if a command is executed every 5 minutes, the command is not executed immediately when a task is created, but is executed 5 minutes after the task is created.\n- Execute only once at the specified time: Execute the command once according to the set time zone and execution time point. The format is at(yyyy-MM-dd HH:mm:ss ), that is, at (year-month-day time: minute: Second ). If you do not specify a time zone, the default is the UTC time zone. Time zones can be in the following three formats: the full name of the time zone, such as Asia/Shanghai (China/Shanghai time), America/los_angles (United States/Los Angeles time), and so on. The offset of the time zone relative to Greenwich Mean Time: E.G. GMT +8:00 (East Zone 8), GMT-7 (West Zone 7), etc. When using the GMT format, the hour bit does not support adding leading zeros. Time zone abbreviation: Only UTC (Coordinated Universal Time) is supported.\nIf it is specified to be executed once 13:15:30 June 06, 2022, China/Shanghai time, the format is at (Asia/Shanghai, 2022-06-06 13:15:30); If it is specified to be executed once 13:15:30 June 06, 2022, the format is at(2022-06-06 13:15:30 GMT-7:00).\n- Timing based on clock (based on Cron expression): Based on Cron expression, commands are executed according to the set timing task. The format is        , that is,  . In the specified time zone, calculate the execution time of the scheduled task based on the Cron expression and execute it. If no time zone is specified, the default time zone is the internal time zone of the scheduled task instance. For more information about Cron expressions, see Cron Expressions. Time zones support the following three forms:\n- Full time zone name: such as Asia/Shanghai (China/Shanghai time), America/los_angles (US/Los Angeles time), etc.\n- The offset of the time zone relative to Greenwich Mean Time: E.G. GMT +8:00 (East Zone 8), GMT-7 (West Zone 7), etc. When using the GMT format, the hour bit does not support adding leading zeros.\n- Time zone abbreviation: Only UTC (Coordinated Universal Time) is supported.\n\nFor example, in China/Shanghai time, the command will be executed once every day at 10:15 am in 2022 in the format 0 15 10? * * 2022 Asia/Shanghai; In the eastern 8th District time, it will be executed every half hour from 10:00 a.m. to 11:30 a.m. every day in 2022, in the format of 0 0/30 10-11 * *? 2022 GMT +8:00; In UTC time, starting from 2022, it will be executed every 5 minutes from 14:00 P.M. to 14:55 p. M. Every two years in October, in the format of 0 0/5 14*10? 2022/2 UTC.\n"},"launcher":{"type":"string","description":"The bootstrapper for script execution. The length cannot exceed 1KB.\n"},"name":{"type":"string","description":"The command name.\n"},"nodeIdLists":{"type":"array","items":{"type":"string"},"description":"A list of nodes.\n","willReplaceOnChanges":true},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"When the command contains custom parameters, the key-value pair of the custom parameters passed in when the command is executed. For example, if the command content is 'echo {{name}}', the key-value pair'{\"name\":\"Jack\"}'can be passed through the 'Parameter' parameter'. The custom parameter will automatically replace the variable value 'name' to get a new command that actually executes 'echo Jack '.\n\nThe number of custom parameters ranges from 0 to 10, and you need to pay attention:\n- The key is not allowed to be an empty string and supports a maximum of 64 characters.\n- The value is allowed to be an empty string.\n- After the custom parameters and the original command content are encoded in Base64, if the command is saved, the size of the command content after Base64 encoding cannot exceed 18KB. If the command is not saved, the size of the command content after Base64 encoding cannot exceed 24KB. You can set whether to keep the command through 'KeepCommand.\n- The set of custom parameter names must be a subset of the parameter set defined when the command is created. For parameters that are not passed in, you can use an empty string instead.\n\nThe default value is empty, which means that the parameter is unset and the custom parameter is disabled.\n"},"repeatMode":{"type":"string","description":"Sets the way the command is executed. Value range:\n- Once: Execute the command immediately.\n- Period: executes the command regularly. When the value of this parameter is 'Period', the 'Frequency' parameter must also be specified.\n- NextRebootOnly: Automatically execute the command when the instance is next started.\n- EveryReboot: The command is automatically executed every time the instance is started.\n\nDefault:\n- When the'frequency' parameter is not specified, the default value is'once '.\n- When the'frequency' parameter is specified, regardless of whether the parameter value has been set or not, it will be processed according to'period.\n"},"terminationMode":{"type":"string","description":"The mode when the task is stopped (manually stopped or execution time-out interrupted). Possible values:\nProcess: Stops the current script Process.\nProcessTree: Stops the current process tree (the script process and the collection of all child processes it created)\n"},"timeout":{"type":"integer","description":"The timeout period for command execution. Unit: seconds. A timeout occurs when a command cannot be run due to a process, a missing module, or a missing cloud assistant Agent. After the timeout, the command process is forcibly terminated. Default value: 60.\n"},"username":{"type":"string","description":"The name of the user who executed the command in the instance. The length must not exceed 255 characters.\nThe instance of the Linux system. By default, the root user runs commands.\n"},"workingDir":{"type":"string","description":"You can customize the command execution path. The default path is as follows:\nLinux instance: the execution path is in the/home directory of the root user by default.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Invocation resources.\n","properties":{"commandContent":{"type":"string","description":"The command content. You need to pay attention:\n- Specify the parameter 'EnableParameter = true' to enable the custom parameter feature in the command content.\n- Define custom parameters in the form of {{}} inclusion, and spaces and line breaks before and after the parameter name in '{{}}' are ignored.\n- The number of custom parameters cannot exceed 20.\n- Custom parameter names can a-zA-Z0-9 a combination of-_. Other characters are not supported. Parameter names are not case-sensitive.\n- A single custom parameter name cannot exceed 64 bytes.\n"},"commandId":{"type":"string","description":"Command ID\n"},"contentEncoding":{"type":"string","description":"The encoding of the script content. Value range:\n- PlainText: no encoding, using PlainText transmission.\n- Base64:Base64 encoding.\n\nDefault value: PlainText. If you fill it randomly or wrongly, the value will be treated as a PlainText.\n"},"description":{"type":"string","description":"The command description.\n"},"enableParameter":{"type":"boolean","description":"Whether custom parameters are included in the command.\nDefault value: false.\n"},"frequency":{"type":"string","description":"The execution time of the scheduled execution command. Currently, three scheduled execution methods are supported: fixed interval execution (based on Rate expression), only once at a specified time, and timed execution based on clock (based on Cron expression).\n- Fixed time interval execution: Based on the Rate expression, the command is executed at the set time interval. Time intervals can be selected by seconds (s), minutes (m), hours (h), and days (d), which is suitable for scenarios where tasks are executed at fixed time intervals. The format is rate( ). If the execution is performed every 5 minutes, the format is rate(5m). Executing with a fixed time interval has the following limitations:\n- The set time interval is no more than 7 days and no less than 60 seconds, and must be greater than the timeout period of the scheduled task.\n- The execution interval is based only on a fixed frequency, independent of the time the task actually takes to execute. For example, if the command is executed every 5 minutes and the task takes 2 minutes to complete, the next round will be executed 3 minutes after the task is completed.\n- The task is not executed immediately when it is created. For example, if a command is executed every 5 minutes, the command is not executed immediately when a task is created, but is executed 5 minutes after the task is created.\n- Execute only once at the specified time: Execute the command once according to the set time zone and execution time point. The format is at(yyyy-MM-dd HH:mm:ss ), that is, at (year-month-day time: minute: Second ). If you do not specify a time zone, the default is the UTC time zone. Time zones can be in the following three formats: the full name of the time zone, such as Asia/Shanghai (China/Shanghai time), America/los_angles (United States/Los Angeles time), and so on. The offset of the time zone relative to Greenwich Mean Time: E.G. GMT +8:00 (East Zone 8), GMT-7 (West Zone 7), etc. When using the GMT format, the hour bit does not support adding leading zeros. Time zone abbreviation: Only UTC (Coordinated Universal Time) is supported.\nIf it is specified to be executed once 13:15:30 June 06, 2022, China/Shanghai time, the format is at (Asia/Shanghai, 2022-06-06 13:15:30); If it is specified to be executed once 13:15:30 June 06, 2022, the format is at(2022-06-06 13:15:30 GMT-7:00).\n- Timing based on clock (based on Cron expression): Based on Cron expression, commands are executed according to the set timing task. The format is        , that is,  . In the specified time zone, calculate the execution time of the scheduled task based on the Cron expression and execute it. If no time zone is specified, the default time zone is the internal time zone of the scheduled task instance. For more information about Cron expressions, see Cron Expressions. Time zones support the following three forms:\n- Full time zone name: such as Asia/Shanghai (China/Shanghai time), America/los_angles (US/Los Angeles time), etc.\n- The offset of the time zone relative to Greenwich Mean Time: E.G. GMT +8:00 (East Zone 8), GMT-7 (West Zone 7), etc. When using the GMT format, the hour bit does not support adding leading zeros.\n- Time zone abbreviation: Only UTC (Coordinated Universal Time) is supported.\n\nFor example, in China/Shanghai time, the command will be executed once every day at 10:15 am in 2022 in the format 0 15 10? * * 2022 Asia/Shanghai; In the eastern 8th District time, it will be executed every half hour from 10:00 a.m. to 11:30 a.m. every day in 2022, in the format of 0 0/30 10-11 * *? 2022 GMT +8:00; In UTC time, starting from 2022, it will be executed every 5 minutes from 14:00 P.M. to 14:55 p. M. Every two years in October, in the format of 0 0/5 14*10? 2022/2 UTC.\n"},"launcher":{"type":"string","description":"The bootstrapper for script execution. The length cannot exceed 1KB.\n"},"name":{"type":"string","description":"The command name.\n"},"nodeIdLists":{"type":"array","items":{"type":"string"},"description":"A list of nodes.\n","willReplaceOnChanges":true},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"When the command contains custom parameters, the key-value pair of the custom parameters passed in when the command is executed. For example, if the command content is 'echo {{name}}', the key-value pair'{\"name\":\"Jack\"}'can be passed through the 'Parameter' parameter'. The custom parameter will automatically replace the variable value 'name' to get a new command that actually executes 'echo Jack '.\n\nThe number of custom parameters ranges from 0 to 10, and you need to pay attention:\n- The key is not allowed to be an empty string and supports a maximum of 64 characters.\n- The value is allowed to be an empty string.\n- After the custom parameters and the original command content are encoded in Base64, if the command is saved, the size of the command content after Base64 encoding cannot exceed 18KB. If the command is not saved, the size of the command content after Base64 encoding cannot exceed 24KB. You can set whether to keep the command through 'KeepCommand.\n- The set of custom parameter names must be a subset of the parameter set defined when the command is created. For parameters that are not passed in, you can use an empty string instead.\n\nThe default value is empty, which means that the parameter is unset and the custom parameter is disabled.\n"},"repeatMode":{"type":"string","description":"Sets the way the command is executed. Value range:\n- Once: Execute the command immediately.\n- Period: executes the command regularly. When the value of this parameter is 'Period', the 'Frequency' parameter must also be specified.\n- NextRebootOnly: Automatically execute the command when the instance is next started.\n- EveryReboot: The command is automatically executed every time the instance is started.\n\nDefault:\n- When the'frequency' parameter is not specified, the default value is'once '.\n- When the'frequency' parameter is specified, regardless of whether the parameter value has been set or not, it will be processed according to'period.\n"},"terminationMode":{"type":"string","description":"The mode when the task is stopped (manually stopped or execution time-out interrupted). Possible values:\nProcess: Stops the current script Process.\nProcessTree: Stops the current process tree (the script process and the collection of all child processes it created)\n"},"timeout":{"type":"integer","description":"The timeout period for command execution. Unit: seconds. A timeout occurs when a command cannot be run due to a process, a missing module, or a missing cloud assistant Agent. After the timeout, the command process is forcibly terminated. Default value: 60.\n"},"username":{"type":"string","description":"The name of the user who executed the command in the instance. The length must not exceed 255 characters.\nThe instance of the Linux system. By default, the root user runs commands.\n"},"workingDir":{"type":"string","description":"You can customize the command execution path. The default path is as follows:\nLinux instance: the execution path is in the/home directory of the root user by default.\n"}},"type":"object"}},"alicloud:eflo/node:Node":{"description":"Provides a Eflo Node resource.\n\nLarge computing node.\n\nFor information about Eflo Node and how to use it, see [What is Node](https://next.api.alibabacloud.com/document/BssOpenApi/2017-12-14/CreateInstance).\n\n\u003e **NOTE:** Available since v1.246.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultNode = new alicloud.eflo.Node(\"default\", {\n    period: 36,\n    discountLevel: \"36\",\n    billingCycle: \"1month\",\n    classify: \"gpuserver\",\n    zone: \"cn-hangzhou-b\",\n    productForm: \"instance\",\n    paymentRatio: \"0\",\n    hpnZone: \"B1\",\n    serverArch: \"bmserver\",\n    machineType: \"efg1.nvga1n\",\n    stageNum: \"36\",\n    renewalStatus: \"AutoRenewal\",\n    renewPeriod: 36,\n    status: \"Unused\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_node = alicloud.eflo.Node(\"default\",\n    period=36,\n    discount_level=\"36\",\n    billing_cycle=\"1month\",\n    classify=\"gpuserver\",\n    zone=\"cn-hangzhou-b\",\n    product_form=\"instance\",\n    payment_ratio=\"0\",\n    hpn_zone=\"B1\",\n    server_arch=\"bmserver\",\n    machine_type=\"efg1.nvga1n\",\n    stage_num=\"36\",\n    renewal_status=\"AutoRenewal\",\n    renew_period=36,\n    status=\"Unused\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultNode = new AliCloud.Eflo.Node(\"default\", new()\n    {\n        Period = 36,\n        DiscountLevel = \"36\",\n        BillingCycle = \"1month\",\n        Classify = \"gpuserver\",\n        Zone = \"cn-hangzhou-b\",\n        ProductForm = \"instance\",\n        PaymentRatio = \"0\",\n        HpnZone = \"B1\",\n        ServerArch = \"bmserver\",\n        MachineType = \"efg1.nvga1n\",\n        StageNum = \"36\",\n        RenewalStatus = \"AutoRenewal\",\n        RenewPeriod = 36,\n        Status = \"Unused\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eflo\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eflo.NewNode(ctx, \"default\", \u0026eflo.NodeArgs{\n\t\t\tPeriod:        pulumi.Int(36),\n\t\t\tDiscountLevel: pulumi.String(\"36\"),\n\t\t\tBillingCycle:  pulumi.String(\"1month\"),\n\t\t\tClassify:      pulumi.String(\"gpuserver\"),\n\t\t\tZone:          pulumi.String(\"cn-hangzhou-b\"),\n\t\t\tProductForm:   pulumi.String(\"instance\"),\n\t\t\tPaymentRatio:  pulumi.String(\"0\"),\n\t\t\tHpnZone:       pulumi.String(\"B1\"),\n\t\t\tServerArch:    pulumi.String(\"bmserver\"),\n\t\t\tMachineType:   pulumi.String(\"efg1.nvga1n\"),\n\t\t\tStageNum:      pulumi.String(\"36\"),\n\t\t\tRenewalStatus: pulumi.String(\"AutoRenewal\"),\n\t\t\tRenewPeriod:   pulumi.Int(36),\n\t\t\tStatus:        pulumi.String(\"Unused\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.eflo.Node;\nimport com.pulumi.alicloud.eflo.NodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultNode = new Node(\"defaultNode\", NodeArgs.builder()\n            .period(36)\n            .discountLevel(\"36\")\n            .billingCycle(\"1month\")\n            .classify(\"gpuserver\")\n            .zone(\"cn-hangzhou-b\")\n            .productForm(\"instance\")\n            .paymentRatio(\"0\")\n            .hpnZone(\"B1\")\n            .serverArch(\"bmserver\")\n            .machineType(\"efg1.nvga1n\")\n            .stageNum(\"36\")\n            .renewalStatus(\"AutoRenewal\")\n            .renewPeriod(36)\n            .status(\"Unused\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  # Before executing this example, you need to confirm with the product team whether the resources are sufficient or you will get an error message with \"Failure to check order before create instance\"\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNode:\n    type: alicloud:eflo:Node\n    name: default\n    properties:\n      period: '36'\n      discountLevel: '36'\n      billingCycle: 1month\n      classify: gpuserver\n      zone: cn-hangzhou-b\n      productForm: instance\n      paymentRatio: '0'\n      hpnZone: B1\n      serverArch: bmserver\n      machineType: efg1.nvga1n\n      stageNum: '36'\n      renewalStatus: AutoRenewal\n      renewPeriod: '36'\n      status: Unused\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\nCreating a PayAsYouGo eflo node\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst payasyougo = new alicloud.eflo.Node(\"payasyougo\", {\n    machineType: \"efg1.nvga8n\",\n    paymentType: \"PayAsYouGo\",\n    hpnZone: \"A1\",\n    productForm: \"instance\",\n    renewalStatus: \"ManualRenewal\",\n    zone: \"cn-wulanchabu-a\",\n    tags: {\n        From: \"Terraform\",\n    },\n    clusterId: \"i11922307xxxxxxx\",\n    nodeGroupId: \"i1254705xxxxxxxx\",\n    hostname: \"terraform-example\",\n    loginPassword: \"xxxxxxxx\",\n    dataDisks: [\n        {\n            size: 120,\n            category: \"cloud_essd\",\n            performanceLevel: \"PL0\",\n        },\n        {\n            size: 120,\n            category: \"cloud_essd\",\n            performanceLevel: \"PL1\",\n        },\n    ],\n    ipAllocationPolicies: [{\n        machineTypePolicies: [{\n            machineType: \"efg1.nvga8n\",\n            bonds: [\n                {\n                    subnet: \"subnet-x1xxx\",\n                    name: \"example01\",\n                },\n                {\n                    subnet: \"subnet-xxxx\",\n                    name: \"example02\",\n                },\n                {\n                    subnet: \"subnet-xxxx\",\n                    name: \"example03\",\n                },\n                {\n                    subnet: \"subnet-xxxx\",\n                    name: \"example04\",\n                },\n                {\n                    subnet: \"subnet-xxxx\",\n                    name: \"example05\",\n                },\n            ],\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\npayasyougo = alicloud.eflo.Node(\"payasyougo\",\n    machine_type=\"efg1.nvga8n\",\n    payment_type=\"PayAsYouGo\",\n    hpn_zone=\"A1\",\n    product_form=\"instance\",\n    renewal_status=\"ManualRenewal\",\n    zone=\"cn-wulanchabu-a\",\n    tags={\n        \"From\": \"Terraform\",\n    },\n    cluster_id=\"i11922307xxxxxxx\",\n    node_group_id=\"i1254705xxxxxxxx\",\n    hostname=\"terraform-example\",\n    login_password=\"xxxxxxxx\",\n    data_disks=[\n        {\n            \"size\": 120,\n            \"category\": \"cloud_essd\",\n            \"performance_level\": \"PL0\",\n        },\n        {\n            \"size\": 120,\n            \"category\": \"cloud_essd\",\n            \"performance_level\": \"PL1\",\n        },\n    ],\n    ip_allocation_policies=[{\n        \"machine_type_policies\": [{\n            \"machine_type\": \"efg1.nvga8n\",\n            \"bonds\": [\n                {\n                    \"subnet\": \"subnet-x1xxx\",\n                    \"name\": \"example01\",\n                },\n                {\n                    \"subnet\": \"subnet-xxxx\",\n                    \"name\": \"example02\",\n                },\n                {\n                    \"subnet\": \"subnet-xxxx\",\n                    \"name\": \"example03\",\n                },\n                {\n                    \"subnet\": \"subnet-xxxx\",\n                    \"name\": \"example04\",\n                },\n                {\n                    \"subnet\": \"subnet-xxxx\",\n                    \"name\": \"example05\",\n                },\n            ],\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var payasyougo = new AliCloud.Eflo.Node(\"payasyougo\", new()\n    {\n        MachineType = \"efg1.nvga8n\",\n        PaymentType = \"PayAsYouGo\",\n        HpnZone = \"A1\",\n        ProductForm = \"instance\",\n        RenewalStatus = \"ManualRenewal\",\n        Zone = \"cn-wulanchabu-a\",\n        Tags = \n        {\n            { \"From\", \"Terraform\" },\n        },\n        ClusterId = \"i11922307xxxxxxx\",\n        NodeGroupId = \"i1254705xxxxxxxx\",\n        Hostname = \"terraform-example\",\n        LoginPassword = \"xxxxxxxx\",\n        DataDisks = new[]\n        {\n            new AliCloud.Eflo.Inputs.NodeDataDiskArgs\n            {\n                Size = 120,\n                Category = \"cloud_essd\",\n                PerformanceLevel = \"PL0\",\n            },\n            new AliCloud.Eflo.Inputs.NodeDataDiskArgs\n            {\n                Size = 120,\n                Category = \"cloud_essd\",\n                PerformanceLevel = \"PL1\",\n            },\n        },\n        IpAllocationPolicies = new[]\n        {\n            new AliCloud.Eflo.Inputs.NodeIpAllocationPolicyArgs\n            {\n                MachineTypePolicies = new[]\n                {\n                    new AliCloud.Eflo.Inputs.NodeIpAllocationPolicyMachineTypePolicyArgs\n                    {\n                        MachineType = \"efg1.nvga8n\",\n                        Bonds = new[]\n                        {\n                            new AliCloud.Eflo.Inputs.NodeIpAllocationPolicyMachineTypePolicyBondArgs\n                            {\n                                Subnet = \"subnet-x1xxx\",\n                                Name = \"example01\",\n                            },\n                            new AliCloud.Eflo.Inputs.NodeIpAllocationPolicyMachineTypePolicyBondArgs\n                            {\n                                Subnet = \"subnet-xxxx\",\n                                Name = \"example02\",\n                            },\n                            new AliCloud.Eflo.Inputs.NodeIpAllocationPolicyMachineTypePolicyBondArgs\n                            {\n                                Subnet = \"subnet-xxxx\",\n                                Name = \"example03\",\n                            },\n                            new AliCloud.Eflo.Inputs.NodeIpAllocationPolicyMachineTypePolicyBondArgs\n                            {\n                                Subnet = \"subnet-xxxx\",\n                                Name = \"example04\",\n                            },\n                            new AliCloud.Eflo.Inputs.NodeIpAllocationPolicyMachineTypePolicyBondArgs\n                            {\n                                Subnet = \"subnet-xxxx\",\n                                Name = \"example05\",\n                            },\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eflo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := eflo.NewNode(ctx, \"payasyougo\", \u0026eflo.NodeArgs{\n\t\t\tMachineType:   pulumi.String(\"efg1.nvga8n\"),\n\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\tHpnZone:       pulumi.String(\"A1\"),\n\t\t\tProductForm:   pulumi.String(\"instance\"),\n\t\t\tRenewalStatus: pulumi.String(\"ManualRenewal\"),\n\t\t\tZone:          pulumi.String(\"cn-wulanchabu-a\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"From\": pulumi.String(\"Terraform\"),\n\t\t\t},\n\t\t\tClusterId:     pulumi.String(\"i11922307xxxxxxx\"),\n\t\t\tNodeGroupId:   pulumi.String(\"i1254705xxxxxxxx\"),\n\t\t\tHostname:      pulumi.String(\"terraform-example\"),\n\t\t\tLoginPassword: pulumi.String(\"xxxxxxxx\"),\n\t\t\tDataDisks: eflo.NodeDataDiskArray{\n\t\t\t\t\u0026eflo.NodeDataDiskArgs{\n\t\t\t\t\tSize:             pulumi.Int(120),\n\t\t\t\t\tCategory:         pulumi.String(\"cloud_essd\"),\n\t\t\t\t\tPerformanceLevel: pulumi.String(\"PL0\"),\n\t\t\t\t},\n\t\t\t\t\u0026eflo.NodeDataDiskArgs{\n\t\t\t\t\tSize:             pulumi.Int(120),\n\t\t\t\t\tCategory:         pulumi.String(\"cloud_essd\"),\n\t\t\t\t\tPerformanceLevel: pulumi.String(\"PL1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tIpAllocationPolicies: eflo.NodeIpAllocationPolicyArray{\n\t\t\t\t\u0026eflo.NodeIpAllocationPolicyArgs{\n\t\t\t\t\tMachineTypePolicies: eflo.NodeIpAllocationPolicyMachineTypePolicyArray{\n\t\t\t\t\t\t\u0026eflo.NodeIpAllocationPolicyMachineTypePolicyArgs{\n\t\t\t\t\t\t\tMachineType: pulumi.String(\"efg1.nvga8n\"),\n\t\t\t\t\t\t\tBonds: eflo.NodeIpAllocationPolicyMachineTypePolicyBondArray{\n\t\t\t\t\t\t\t\t\u0026eflo.NodeIpAllocationPolicyMachineTypePolicyBondArgs{\n\t\t\t\t\t\t\t\t\tSubnet: pulumi.String(\"subnet-x1xxx\"),\n\t\t\t\t\t\t\t\t\tName:   pulumi.String(\"example01\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026eflo.NodeIpAllocationPolicyMachineTypePolicyBondArgs{\n\t\t\t\t\t\t\t\t\tSubnet: pulumi.String(\"subnet-xxxx\"),\n\t\t\t\t\t\t\t\t\tName:   pulumi.String(\"example02\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026eflo.NodeIpAllocationPolicyMachineTypePolicyBondArgs{\n\t\t\t\t\t\t\t\t\tSubnet: pulumi.String(\"subnet-xxxx\"),\n\t\t\t\t\t\t\t\t\tName:   pulumi.String(\"example03\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026eflo.NodeIpAllocationPolicyMachineTypePolicyBondArgs{\n\t\t\t\t\t\t\t\t\tSubnet: pulumi.String(\"subnet-xxxx\"),\n\t\t\t\t\t\t\t\t\tName:   pulumi.String(\"example04\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026eflo.NodeIpAllocationPolicyMachineTypePolicyBondArgs{\n\t\t\t\t\t\t\t\t\tSubnet: pulumi.String(\"subnet-xxxx\"),\n\t\t\t\t\t\t\t\t\tName:   pulumi.String(\"example05\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eflo.Node;\nimport com.pulumi.alicloud.eflo.NodeArgs;\nimport com.pulumi.alicloud.eflo.inputs.NodeDataDiskArgs;\nimport com.pulumi.alicloud.eflo.inputs.NodeIpAllocationPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var payasyougo = new Node(\"payasyougo\", NodeArgs.builder()\n            .machineType(\"efg1.nvga8n\")\n            .paymentType(\"PayAsYouGo\")\n            .hpnZone(\"A1\")\n            .productForm(\"instance\")\n            .renewalStatus(\"ManualRenewal\")\n            .zone(\"cn-wulanchabu-a\")\n            .tags(Map.of(\"From\", \"Terraform\"))\n            .clusterId(\"i11922307xxxxxxx\")\n            .nodeGroupId(\"i1254705xxxxxxxx\")\n            .hostname(\"terraform-example\")\n            .loginPassword(\"xxxxxxxx\")\n            .dataDisks(            \n                NodeDataDiskArgs.builder()\n                    .size(120)\n                    .category(\"cloud_essd\")\n                    .performanceLevel(\"PL0\")\n                    .build(),\n                NodeDataDiskArgs.builder()\n                    .size(120)\n                    .category(\"cloud_essd\")\n                    .performanceLevel(\"PL1\")\n                    .build())\n            .ipAllocationPolicies(NodeIpAllocationPolicyArgs.builder()\n                .machineTypePolicies(NodeIpAllocationPolicyMachineTypePolicyArgs.builder()\n                    .machineType(\"efg1.nvga8n\")\n                    .bonds(                    \n                        NodeIpAllocationPolicyMachineTypePolicyBondArgs.builder()\n                            .subnet(\"subnet-x1xxx\")\n                            .name(\"example01\")\n                            .build(),\n                        NodeIpAllocationPolicyMachineTypePolicyBondArgs.builder()\n                            .subnet(\"subnet-xxxx\")\n                            .name(\"example02\")\n                            .build(),\n                        NodeIpAllocationPolicyMachineTypePolicyBondArgs.builder()\n                            .subnet(\"subnet-xxxx\")\n                            .name(\"example03\")\n                            .build(),\n                        NodeIpAllocationPolicyMachineTypePolicyBondArgs.builder()\n                            .subnet(\"subnet-xxxx\")\n                            .name(\"example04\")\n                            .build(),\n                        NodeIpAllocationPolicyMachineTypePolicyBondArgs.builder()\n                            .subnet(\"subnet-xxxx\")\n                            .name(\"example05\")\n                            .build())\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  payasyougo:\n    type: alicloud:eflo:Node\n    properties:\n      machineType: efg1.nvga8n\n      paymentType: PayAsYouGo\n      hpnZone: A1\n      productForm: instance\n      renewalStatus: ManualRenewal\n      zone: cn-wulanchabu-a\n      tags:\n        From: Terraform\n      clusterId: i11922307xxxxxxx\n      nodeGroupId: i1254705xxxxxxxx\n      hostname: terraform-example\n      loginPassword: xxxxxxxx\n      dataDisks:\n        - size: 120\n          category: cloud_essd\n          performanceLevel: PL0\n        - size: 120\n          category: cloud_essd\n          performanceLevel: PL1\n      ipAllocationPolicies:\n        - machineTypePolicies:\n            - machineType: efg1.nvga8n\n              bonds:\n                - subnet: subnet-x1xxx\n                  name: example01\n                - subnet: subnet-xxxx\n                  name: example02\n                - subnet: subnet-xxxx\n                  name: example03\n                - subnet: subnet-xxxx\n                  name: example04\n                - subnet: subnet-xxxx\n                  name: example05\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.eflo.Node`\" pulumi-lang-dotnet=\"`alicloud.eflo.Node`\" pulumi-lang-go=\"`eflo.Node`\" pulumi-lang-python=\"`eflo.Node`\" pulumi-lang-yaml=\"`alicloud.eflo.Node`\" pulumi-lang-java=\"`alicloud.eflo.Node`\"\u003e`alicloud.eflo.Node`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.eflo.Node`\" pulumi-lang-dotnet=\"`alicloud.eflo.Node`\" pulumi-lang-go=\"`eflo.Node`\" pulumi-lang-python=\"`eflo.Node`\" pulumi-lang-yaml=\"`alicloud.eflo.Node`\" pulumi-lang-java=\"`alicloud.eflo.Node`\"\u003e`alicloud.eflo.Node`\u003c/span\u003e resource allows you to manage  \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"Subscription\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEflo Node can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eflo/node:Node example \u003cid\u003e\n```\n\n","properties":{"billingCycle":{"type":"string","description":"Billing cycle\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"classify":{"type":"string","description":"Classification\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"clusterId":{"type":"string","description":"Cluster id\n"},"computingServer":{"type":"string","description":"Node Model\n","deprecationMessage":"Field 'computing_server' has been deprecated from provider version 1.261.0. New field 'machine_type' instead."},"createTime":{"type":"string","description":"The creation time of the resource\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeDataDisk:NodeDataDisk"},"description":"The data disk of the cloud disk to be attached to the node. See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below.\n"},"discountLevel":{"type":"string","description":"Offer Information\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"hostname":{"type":"string","description":"Host name\n"},"hpnZone":{"type":"string","description":"Cluster Number\n"},"installPai":{"type":"boolean","description":"Whether to buy PAI. default value \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ipAllocationPolicies":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeIpAllocationPolicy:NodeIpAllocationPolicy"},"description":"IP address combination policy: only one policy type can be selected for each policy, and multiple policies can be combined. See \u003cspan pulumi-lang-nodejs=\"`ipAllocationPolicy`\" pulumi-lang-dotnet=\"`IpAllocationPolicy`\" pulumi-lang-go=\"`ipAllocationPolicy`\" pulumi-lang-python=\"`ip_allocation_policy`\" pulumi-lang-yaml=\"`ipAllocationPolicy`\" pulumi-lang-java=\"`ipAllocationPolicy`\"\u003e`ip_allocation_policy`\u003c/span\u003e below.\n"},"loginPassword":{"type":"string","description":"Login Password\n","secret":true},"machineType":{"type":"string","description":"Model\n"},"nodeGroupId":{"type":"string","description":"node group id\n"},"nodeType":{"type":"string","description":"node type\n"},"paymentRatio":{"type":"string","description":"Down payment ratio\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"paymentType":{"type":"string","description":"The payment method of the node. Value range: Subscription: fixed fee installment; PayAsYouGo: pay by volume.\nThe default is Subscription.\n"},"period":{"type":"integer","description":"Prepaid cycle. The unit is Month, please enter an integer multiple of 12 for the annual payment product.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"productForm":{"type":"string","description":"Form\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period, in months.\n\n\u003e **NOTE:**  When setting `RenewalStatus` to `AutoRenewal`, it must be set.\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status, value:\n- AutoRenewal: automatic renewal.\n- ManualRenewal: manual renewal.\n\nThe default ManualRenewal.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"serverArch":{"type":"string","description":"Architecture\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"stageNum":{"type":"string","description":"Number of stages\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"userData":{"type":"string","description":"Custom Data\n"},"vpcId":{"type":"string","description":"VPC ID\n"},"vswitchId":{"type":"string","description":"Switch ID\n"},"zone":{"type":"string","description":"Availability Zone\n"}},"required":["clusterId","computingServer","createTime","dataDisks","hostname","machineType","nodeGroupId","nodeType","paymentType","regionId","resourceGroupId","status","userData","vpcId","vswitchId"],"inputProperties":{"billingCycle":{"type":"string","description":"Billing cycle\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"classify":{"type":"string","description":"Classification\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"clusterId":{"type":"string","description":"Cluster id\n"},"computingServer":{"type":"string","description":"Node Model\n","deprecationMessage":"Field 'computing_server' has been deprecated from provider version 1.261.0. New field 'machine_type' instead."},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeDataDisk:NodeDataDisk"},"description":"The data disk of the cloud disk to be attached to the node. See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below.\n"},"discountLevel":{"type":"string","description":"Offer Information\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"hostname":{"type":"string","description":"Host name\n"},"hpnZone":{"type":"string","description":"Cluster Number\n","willReplaceOnChanges":true},"installPai":{"type":"boolean","description":"Whether to buy PAI. default value \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ipAllocationPolicies":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeIpAllocationPolicy:NodeIpAllocationPolicy"},"description":"IP address combination policy: only one policy type can be selected for each policy, and multiple policies can be combined. See \u003cspan pulumi-lang-nodejs=\"`ipAllocationPolicy`\" pulumi-lang-dotnet=\"`IpAllocationPolicy`\" pulumi-lang-go=\"`ipAllocationPolicy`\" pulumi-lang-python=\"`ip_allocation_policy`\" pulumi-lang-yaml=\"`ipAllocationPolicy`\" pulumi-lang-java=\"`ipAllocationPolicy`\"\u003e`ip_allocation_policy`\u003c/span\u003e below.\n"},"loginPassword":{"type":"string","description":"Login Password\n","secret":true},"machineType":{"type":"string","description":"Model\n","willReplaceOnChanges":true},"nodeGroupId":{"type":"string","description":"node group id\n"},"nodeType":{"type":"string","description":"node type\n"},"paymentRatio":{"type":"string","description":"Down payment ratio\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"paymentType":{"type":"string","description":"The payment method of the node. Value range: Subscription: fixed fee installment; PayAsYouGo: pay by volume.\nThe default is Subscription.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Prepaid cycle. The unit is Month, please enter an integer multiple of 12 for the annual payment product.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"productForm":{"type":"string","description":"Form\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period, in months.\n\n\u003e **NOTE:**  When setting `RenewalStatus` to `AutoRenewal`, it must be set.\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status, value:\n- AutoRenewal: automatic renewal.\n- ManualRenewal: manual renewal.\n\nThe default ManualRenewal.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"serverArch":{"type":"string","description":"Architecture\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"stageNum":{"type":"string","description":"Number of stages\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"userData":{"type":"string","description":"Custom Data\n"},"vpcId":{"type":"string","description":"VPC ID\n"},"vswitchId":{"type":"string","description":"Switch ID\n"},"zone":{"type":"string","description":"Availability Zone\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Node resources.\n","properties":{"billingCycle":{"type":"string","description":"Billing cycle\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"classify":{"type":"string","description":"Classification\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"clusterId":{"type":"string","description":"Cluster id\n"},"computingServer":{"type":"string","description":"Node Model\n","deprecationMessage":"Field 'computing_server' has been deprecated from provider version 1.261.0. New field 'machine_type' instead."},"createTime":{"type":"string","description":"The creation time of the resource\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeDataDisk:NodeDataDisk"},"description":"The data disk of the cloud disk to be attached to the node. See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below.\n"},"discountLevel":{"type":"string","description":"Offer Information\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"hostname":{"type":"string","description":"Host name\n"},"hpnZone":{"type":"string","description":"Cluster Number\n","willReplaceOnChanges":true},"installPai":{"type":"boolean","description":"Whether to buy PAI. default value \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ipAllocationPolicies":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeIpAllocationPolicy:NodeIpAllocationPolicy"},"description":"IP address combination policy: only one policy type can be selected for each policy, and multiple policies can be combined. See \u003cspan pulumi-lang-nodejs=\"`ipAllocationPolicy`\" pulumi-lang-dotnet=\"`IpAllocationPolicy`\" pulumi-lang-go=\"`ipAllocationPolicy`\" pulumi-lang-python=\"`ip_allocation_policy`\" pulumi-lang-yaml=\"`ipAllocationPolicy`\" pulumi-lang-java=\"`ipAllocationPolicy`\"\u003e`ip_allocation_policy`\u003c/span\u003e below.\n"},"loginPassword":{"type":"string","description":"Login Password\n","secret":true},"machineType":{"type":"string","description":"Model\n","willReplaceOnChanges":true},"nodeGroupId":{"type":"string","description":"node group id\n"},"nodeType":{"type":"string","description":"node type\n"},"paymentRatio":{"type":"string","description":"Down payment ratio\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"paymentType":{"type":"string","description":"The payment method of the node. Value range: Subscription: fixed fee installment; PayAsYouGo: pay by volume.\nThe default is Subscription.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Prepaid cycle. The unit is Month, please enter an integer multiple of 12 for the annual payment product.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"productForm":{"type":"string","description":"Form\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period, in months.\n\n\u003e **NOTE:**  When setting `RenewalStatus` to `AutoRenewal`, it must be set.\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status, value:\n- AutoRenewal: automatic renewal.\n- ManualRenewal: manual renewal.\n\nThe default ManualRenewal.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"serverArch":{"type":"string","description":"Architecture\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"stageNum":{"type":"string","description":"Number of stages\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"userData":{"type":"string","description":"Custom Data\n"},"vpcId":{"type":"string","description":"VPC ID\n"},"vswitchId":{"type":"string","description":"Switch ID\n"},"zone":{"type":"string","description":"Availability Zone\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:eflo/nodeGroup:NodeGroup":{"description":"Provides a Eflo Node Group resource.\n\nNode group. Divide a cluster into multiple node groups, each containing multiple nodes.\n\nFor 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).\n\n\u003e **NOTE:** Available since v1.246.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst createVpc = new alicloud.vpc.Network(\"create_vpc\", {\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: \"cluster-resoure-example\",\n});\nconst createVswitch = new alicloud.vpc.Switch(\"create_vswitch\", {\n    vpcId: createVpc.id,\n    zoneId: \"cn-hangzhou-b\",\n    cidrBlock: \"192.168.0.0/24\",\n    vswitchName: \"cluster-resoure-example\",\n});\nconst createSecurityGroup = new alicloud.ecs.SecurityGroup(\"create_security_group\", {\n    description: \"sg\",\n    securityGroupName: \"cluster-resoure-example\",\n    securityGroupType: \"normal\",\n    vpcId: createVpc.id,\n});\nconst defaultCluster = new alicloud.eflo.Cluster(\"default\", {\n    clusterDescription: \"cluster-resource-example\",\n    openEniJumboFrame: false,\n    hpnZone: \"B1\",\n    nimizVswitches: [\"1111\"],\n    ignoreFailedNodeTasks: true,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[1]),\n    nodeGroups: [{\n        imageId: \"i198448731735114628708\",\n        zoneId: \"cn-hangzhou-b\",\n        nodeGroupName: \"cluster-resource-example\",\n        nodeGroupDescription: \"cluster-resource-example\",\n        machineType: \"efg2.C48cA3sen\",\n    }],\n    networks: {\n        tailIpVersion: \"ipv4\",\n        newVpdInfo: {\n            monitorVpcId: createVpc.id,\n            monitorVswitchId: createVswitch.id,\n            cenId: \"11111\",\n            cloudLinkId: \"1111\",\n            vpdCidr: \"111\",\n            vpdSubnets: [{\n                zoneId: \"1111\",\n                subnetCidr: \"111\",\n                subnetType: \"111\",\n            }],\n            cloudLinkCidr: \"169.254.128.0/23\",\n        },\n        securityGroupId: createSecurityGroup.id,\n        vswitchZoneId: \"cn-hangzhou-b\",\n        vpcId: createVpc.id,\n        vswitchId: createVswitch.id,\n        vpdInfo: {\n            vpdId: \"111\",\n            vpdSubnets: [\"111\"],\n        },\n        ipAllocationPolicies: [{\n            bondPolicy: {\n                bondDefaultSubnet: \"111\",\n                bonds: [{\n                    name: \"111\",\n                    subnet: \"111\",\n                }],\n            },\n            machineTypePolicies: [{\n                bonds: [{\n                    name: \"111\",\n                    subnet: \"111\",\n                }],\n                machineType: \"111\",\n            }],\n            nodePolicies: [{\n                bonds: [{\n                    name: \"111\",\n                    subnet: \"111\",\n                }],\n                nodeId: \"111\",\n            }],\n        }],\n    },\n    clusterName: \"tfacceflo7165\",\n    clusterType: \"Lite\",\n});\nconst defaultNode = new alicloud.eflo.Node(\"default\", {\n    period: 36,\n    discountLevel: \"36\",\n    billingCycle: \"1month\",\n    classify: \"gpuserver\",\n    zone: \"cn-hangzhou-b\",\n    productForm: \"instance\",\n    paymentRatio: \"0\",\n    hpnZone: \"B1\",\n    serverArch: \"bmserver\",\n    computingServer: \"efg1.nvga1n\",\n    stageNum: \"36\",\n    renewalStatus: \"AutoRenewal\",\n    renewPeriod: 36,\n    status: \"Unused\",\n});\nconst defaultNodeGroup = new alicloud.eflo.NodeGroup(\"default\", {\n    nodes: [{\n        nodeId: defaultNode.id,\n        vpcId: createVpc.id,\n        vswitchId: createVswitch.id,\n        hostname: \"jxyhostname\",\n        loginPassword: \"Alibaba@2025\",\n    }],\n    ignoreFailedNodeTasks: true,\n    clusterId: defaultCluster.id,\n    imageId: \"i195048661660874208657\",\n    zoneId: \"cn-hangzhou-b\",\n    vpdSubnets: [\"example\"],\n    userData: \"YWxpLGFsaSxhbGliYWJh\",\n    vswitchZoneId: \"cn-hangzhou-b\",\n    ipAllocationPolicies: [{\n        bondPolicy: {\n            bondDefaultSubnet: \"example\",\n            bonds: [{\n                name: \"example\",\n                subnet: \"example\",\n            }],\n        },\n        machineTypePolicies: [{\n            bonds: [{\n                name: \"example\",\n                subnet: \"example\",\n            }],\n            machineType: \"example\",\n        }],\n        nodePolicies: [{\n            nodeId: defaultNode.id,\n            bonds: [{\n                name: \"example\",\n                subnet: \"example\",\n            }],\n        }],\n    }],\n    machineType: \"efg1.nvga1\",\n    az: \"cn-hangzhou-b\",\n    nodeGroupDescription: \"resource-example1\",\n    nodeGroupName: \"tfacceflo63657_update\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ncreate_vpc = alicloud.vpc.Network(\"create_vpc\",\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=\"cluster-resoure-example\")\ncreate_vswitch = alicloud.vpc.Switch(\"create_vswitch\",\n    vpc_id=create_vpc.id,\n    zone_id=\"cn-hangzhou-b\",\n    cidr_block=\"192.168.0.0/24\",\n    vswitch_name=\"cluster-resoure-example\")\ncreate_security_group = alicloud.ecs.SecurityGroup(\"create_security_group\",\n    description=\"sg\",\n    security_group_name=\"cluster-resoure-example\",\n    security_group_type=\"normal\",\n    vpc_id=create_vpc.id)\ndefault_cluster = alicloud.eflo.Cluster(\"default\",\n    cluster_description=\"cluster-resource-example\",\n    open_eni_jumbo_frame=False,\n    hpn_zone=\"B1\",\n    nimiz_vswitches=[\"1111\"],\n    ignore_failed_node_tasks=True,\n    resource_group_id=default.ids[1],\n    node_groups=[{\n        \"image_id\": \"i198448731735114628708\",\n        \"zone_id\": \"cn-hangzhou-b\",\n        \"node_group_name\": \"cluster-resource-example\",\n        \"node_group_description\": \"cluster-resource-example\",\n        \"machine_type\": \"efg2.C48cA3sen\",\n    }],\n    networks={\n        \"tail_ip_version\": \"ipv4\",\n        \"new_vpd_info\": {\n            \"monitor_vpc_id\": create_vpc.id,\n            \"monitor_vswitch_id\": create_vswitch.id,\n            \"cen_id\": \"11111\",\n            \"cloud_link_id\": \"1111\",\n            \"vpd_cidr\": \"111\",\n            \"vpd_subnets\": [{\n                \"zone_id\": \"1111\",\n                \"subnet_cidr\": \"111\",\n                \"subnet_type\": \"111\",\n            }],\n            \"cloud_link_cidr\": \"169.254.128.0/23\",\n        },\n        \"security_group_id\": create_security_group.id,\n        \"vswitch_zone_id\": \"cn-hangzhou-b\",\n        \"vpc_id\": create_vpc.id,\n        \"vswitch_id\": create_vswitch.id,\n        \"vpd_info\": {\n            \"vpd_id\": \"111\",\n            \"vpd_subnets\": [\"111\"],\n        },\n        \"ip_allocation_policies\": [{\n            \"bond_policy\": {\n                \"bond_default_subnet\": \"111\",\n                \"bonds\": [{\n                    \"name\": \"111\",\n                    \"subnet\": \"111\",\n                }],\n            },\n            \"machine_type_policies\": [{\n                \"bonds\": [{\n                    \"name\": \"111\",\n                    \"subnet\": \"111\",\n                }],\n                \"machine_type\": \"111\",\n            }],\n            \"node_policies\": [{\n                \"bonds\": [{\n                    \"name\": \"111\",\n                    \"subnet\": \"111\",\n                }],\n                \"node_id\": \"111\",\n            }],\n        }],\n    },\n    cluster_name=\"tfacceflo7165\",\n    cluster_type=\"Lite\")\ndefault_node = alicloud.eflo.Node(\"default\",\n    period=36,\n    discount_level=\"36\",\n    billing_cycle=\"1month\",\n    classify=\"gpuserver\",\n    zone=\"cn-hangzhou-b\",\n    product_form=\"instance\",\n    payment_ratio=\"0\",\n    hpn_zone=\"B1\",\n    server_arch=\"bmserver\",\n    computing_server=\"efg1.nvga1n\",\n    stage_num=\"36\",\n    renewal_status=\"AutoRenewal\",\n    renew_period=36,\n    status=\"Unused\")\ndefault_node_group = alicloud.eflo.NodeGroup(\"default\",\n    nodes=[{\n        \"node_id\": default_node.id,\n        \"vpc_id\": create_vpc.id,\n        \"vswitch_id\": create_vswitch.id,\n        \"hostname\": \"jxyhostname\",\n        \"login_password\": \"Alibaba@2025\",\n    }],\n    ignore_failed_node_tasks=True,\n    cluster_id=default_cluster.id,\n    image_id=\"i195048661660874208657\",\n    zone_id=\"cn-hangzhou-b\",\n    vpd_subnets=[\"example\"],\n    user_data=\"YWxpLGFsaSxhbGliYWJh\",\n    vswitch_zone_id=\"cn-hangzhou-b\",\n    ip_allocation_policies=[{\n        \"bond_policy\": {\n            \"bond_default_subnet\": \"example\",\n            \"bonds\": [{\n                \"name\": \"example\",\n                \"subnet\": \"example\",\n            }],\n        },\n        \"machine_type_policies\": [{\n            \"bonds\": [{\n                \"name\": \"example\",\n                \"subnet\": \"example\",\n            }],\n            \"machine_type\": \"example\",\n        }],\n        \"node_policies\": [{\n            \"node_id\": default_node.id,\n            \"bonds\": [{\n                \"name\": \"example\",\n                \"subnet\": \"example\",\n            }],\n        }],\n    }],\n    machine_type=\"efg1.nvga1\",\n    az=\"cn-hangzhou-b\",\n    node_group_description=\"resource-example1\",\n    node_group_name=\"tfacceflo63657_update\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var createVpc = new AliCloud.Vpc.Network(\"create_vpc\", new()\n    {\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = \"cluster-resoure-example\",\n    });\n\n    var createVswitch = new AliCloud.Vpc.Switch(\"create_vswitch\", new()\n    {\n        VpcId = createVpc.Id,\n        ZoneId = \"cn-hangzhou-b\",\n        CidrBlock = \"192.168.0.0/24\",\n        VswitchName = \"cluster-resoure-example\",\n    });\n\n    var createSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"create_security_group\", new()\n    {\n        Description = \"sg\",\n        SecurityGroupName = \"cluster-resoure-example\",\n        SecurityGroupType = \"normal\",\n        VpcId = createVpc.Id,\n    });\n\n    var defaultCluster = new AliCloud.Eflo.Cluster(\"default\", new()\n    {\n        ClusterDescription = \"cluster-resource-example\",\n        OpenEniJumboFrame = false,\n        HpnZone = \"B1\",\n        NimizVswitches = new[]\n        {\n            \"1111\",\n        },\n        IgnoreFailedNodeTasks = true,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[1])),\n        NodeGroups = new[]\n        {\n            new AliCloud.Eflo.Inputs.ClusterNodeGroupArgs\n            {\n                ImageId = \"i198448731735114628708\",\n                ZoneId = \"cn-hangzhou-b\",\n                NodeGroupName = \"cluster-resource-example\",\n                NodeGroupDescription = \"cluster-resource-example\",\n                MachineType = \"efg2.C48cA3sen\",\n            },\n        },\n        Networks = new AliCloud.Eflo.Inputs.ClusterNetworksArgs\n        {\n            TailIpVersion = \"ipv4\",\n            NewVpdInfo = new AliCloud.Eflo.Inputs.ClusterNetworksNewVpdInfoArgs\n            {\n                MonitorVpcId = createVpc.Id,\n                MonitorVswitchId = createVswitch.Id,\n                CenId = \"11111\",\n                CloudLinkId = \"1111\",\n                VpdCidr = \"111\",\n                VpdSubnets = new[]\n                {\n                    new AliCloud.Eflo.Inputs.ClusterNetworksNewVpdInfoVpdSubnetArgs\n                    {\n                        ZoneId = \"1111\",\n                        SubnetCidr = \"111\",\n                        SubnetType = \"111\",\n                    },\n                },\n                CloudLinkCidr = \"169.254.128.0/23\",\n            },\n            SecurityGroupId = createSecurityGroup.Id,\n            VswitchZoneId = \"cn-hangzhou-b\",\n            VpcId = createVpc.Id,\n            VswitchId = createVswitch.Id,\n            VpdInfo = new AliCloud.Eflo.Inputs.ClusterNetworksVpdInfoArgs\n            {\n                VpdId = \"111\",\n                VpdSubnets = new[]\n                {\n                    \"111\",\n                },\n            },\n            IpAllocationPolicies = new[]\n            {\n                new AliCloud.Eflo.Inputs.ClusterNetworksIpAllocationPolicyArgs\n                {\n                    BondPolicy = new AliCloud.Eflo.Inputs.ClusterNetworksIpAllocationPolicyBondPolicyArgs\n                    {\n                        BondDefaultSubnet = \"111\",\n                        Bonds = new[]\n                        {\n                            new AliCloud.Eflo.Inputs.ClusterNetworksIpAllocationPolicyBondPolicyBondArgs\n                            {\n                                Name = \"111\",\n                                Subnet = \"111\",\n                            },\n                        },\n                    },\n                    MachineTypePolicies = new[]\n                    {\n                        new AliCloud.Eflo.Inputs.ClusterNetworksIpAllocationPolicyMachineTypePolicyArgs\n                        {\n                            Bonds = new[]\n                            {\n                                new AliCloud.Eflo.Inputs.ClusterNetworksIpAllocationPolicyMachineTypePolicyBondArgs\n                                {\n                                    Name = \"111\",\n                                    Subnet = \"111\",\n                                },\n                            },\n                            MachineType = \"111\",\n                        },\n                    },\n                    NodePolicies = new[]\n                    {\n                        new AliCloud.Eflo.Inputs.ClusterNetworksIpAllocationPolicyNodePolicyArgs\n                        {\n                            Bonds = new[]\n                            {\n                                new AliCloud.Eflo.Inputs.ClusterNetworksIpAllocationPolicyNodePolicyBondArgs\n                                {\n                                    Name = \"111\",\n                                    Subnet = \"111\",\n                                },\n                            },\n                            NodeId = \"111\",\n                        },\n                    },\n                },\n            },\n        },\n        ClusterName = \"tfacceflo7165\",\n        ClusterType = \"Lite\",\n    });\n\n    var defaultNode = new AliCloud.Eflo.Node(\"default\", new()\n    {\n        Period = 36,\n        DiscountLevel = \"36\",\n        BillingCycle = \"1month\",\n        Classify = \"gpuserver\",\n        Zone = \"cn-hangzhou-b\",\n        ProductForm = \"instance\",\n        PaymentRatio = \"0\",\n        HpnZone = \"B1\",\n        ServerArch = \"bmserver\",\n        ComputingServer = \"efg1.nvga1n\",\n        StageNum = \"36\",\n        RenewalStatus = \"AutoRenewal\",\n        RenewPeriod = 36,\n        Status = \"Unused\",\n    });\n\n    var defaultNodeGroup = new AliCloud.Eflo.NodeGroup(\"default\", new()\n    {\n        Nodes = new[]\n        {\n            new AliCloud.Eflo.Inputs.NodeGroupNodeArgs\n            {\n                NodeId = defaultNode.Id,\n                VpcId = createVpc.Id,\n                VswitchId = createVswitch.Id,\n                Hostname = \"jxyhostname\",\n                LoginPassword = \"Alibaba@2025\",\n            },\n        },\n        IgnoreFailedNodeTasks = true,\n        ClusterId = defaultCluster.Id,\n        ImageId = \"i195048661660874208657\",\n        ZoneId = \"cn-hangzhou-b\",\n        VpdSubnets = new[]\n        {\n            \"example\",\n        },\n        UserData = \"YWxpLGFsaSxhbGliYWJh\",\n        VswitchZoneId = \"cn-hangzhou-b\",\n        IpAllocationPolicies = new[]\n        {\n            new AliCloud.Eflo.Inputs.NodeGroupIpAllocationPolicyArgs\n            {\n                BondPolicy = new AliCloud.Eflo.Inputs.NodeGroupIpAllocationPolicyBondPolicyArgs\n                {\n                    BondDefaultSubnet = \"example\",\n                    Bonds = new[]\n                    {\n                        new AliCloud.Eflo.Inputs.NodeGroupIpAllocationPolicyBondPolicyBondArgs\n                        {\n                            Name = \"example\",\n                            Subnet = \"example\",\n                        },\n                    },\n                },\n                MachineTypePolicies = new[]\n                {\n                    new AliCloud.Eflo.Inputs.NodeGroupIpAllocationPolicyMachineTypePolicyArgs\n                    {\n                        Bonds = new[]\n                        {\n                            new AliCloud.Eflo.Inputs.NodeGroupIpAllocationPolicyMachineTypePolicyBondArgs\n                            {\n                                Name = \"example\",\n                                Subnet = \"example\",\n                            },\n                        },\n                        MachineType = \"example\",\n                    },\n                },\n                NodePolicies = new[]\n                {\n                    new AliCloud.Eflo.Inputs.NodeGroupIpAllocationPolicyNodePolicyArgs\n                    {\n                        NodeId = defaultNode.Id,\n                        Bonds = new[]\n                        {\n                            new AliCloud.Eflo.Inputs.NodeGroupIpAllocationPolicyNodePolicyBondArgs\n                            {\n                                Name = \"example\",\n                                Subnet = \"example\",\n                            },\n                        },\n                    },\n                },\n            },\n        },\n        MachineType = \"efg1.nvga1\",\n        Az = \"cn-hangzhou-b\",\n        NodeGroupDescription = \"resource-example1\",\n        NodeGroupName = \"tfacceflo63657_update\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eflo\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateVpc, err := vpc.NewNetwork(ctx, \"create_vpc\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t\tVpcName:   pulumi.String(\"cluster-resoure-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateVswitch, err := vpc.NewSwitch(ctx, \"create_vswitch\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       createVpc.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-b\"),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"cluster-resoure-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"create_security_group\", \u0026ecs.SecurityGroupArgs{\n\t\t\tDescription:       pulumi.String(\"sg\"),\n\t\t\tSecurityGroupName: pulumi.String(\"cluster-resoure-example\"),\n\t\t\tSecurityGroupType: pulumi.String(\"normal\"),\n\t\t\tVpcId:             createVpc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := eflo.NewCluster(ctx, \"default\", \u0026eflo.ClusterArgs{\n\t\t\tClusterDescription: pulumi.String(\"cluster-resource-example\"),\n\t\t\tOpenEniJumboFrame:  pulumi.Bool(false),\n\t\t\tHpnZone:            pulumi.String(\"B1\"),\n\t\t\tNimizVswitches: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1111\"),\n\t\t\t},\n\t\t\tIgnoreFailedNodeTasks: pulumi.Bool(true),\n\t\t\tResourceGroupId:       pulumi.String(_default.Ids[1]),\n\t\t\tNodeGroups: eflo.ClusterNodeGroupArray{\n\t\t\t\t\u0026eflo.ClusterNodeGroupArgs{\n\t\t\t\t\tImageId:              pulumi.String(\"i198448731735114628708\"),\n\t\t\t\t\tZoneId:               pulumi.String(\"cn-hangzhou-b\"),\n\t\t\t\t\tNodeGroupName:        pulumi.String(\"cluster-resource-example\"),\n\t\t\t\t\tNodeGroupDescription: pulumi.String(\"cluster-resource-example\"),\n\t\t\t\t\tMachineType:          pulumi.String(\"efg2.C48cA3sen\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworks: \u0026eflo.ClusterNetworksArgs{\n\t\t\t\tTailIpVersion: pulumi.String(\"ipv4\"),\n\t\t\t\tNewVpdInfo: \u0026eflo.ClusterNetworksNewVpdInfoArgs{\n\t\t\t\t\tMonitorVpcId:     createVpc.ID(),\n\t\t\t\t\tMonitorVswitchId: createVswitch.ID(),\n\t\t\t\t\tCenId:            pulumi.String(\"11111\"),\n\t\t\t\t\tCloudLinkId:      pulumi.String(\"1111\"),\n\t\t\t\t\tVpdCidr:          pulumi.String(\"111\"),\n\t\t\t\t\tVpdSubnets: eflo.ClusterNetworksNewVpdInfoVpdSubnetArray{\n\t\t\t\t\t\t\u0026eflo.ClusterNetworksNewVpdInfoVpdSubnetArgs{\n\t\t\t\t\t\t\tZoneId:     pulumi.String(\"1111\"),\n\t\t\t\t\t\t\tSubnetCidr: pulumi.String(\"111\"),\n\t\t\t\t\t\t\tSubnetType: pulumi.String(\"111\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tCloudLinkCidr: pulumi.String(\"169.254.128.0/23\"),\n\t\t\t\t},\n\t\t\t\tSecurityGroupId: createSecurityGroup.ID(),\n\t\t\t\tVswitchZoneId:   pulumi.String(\"cn-hangzhou-b\"),\n\t\t\t\tVpcId:           createVpc.ID(),\n\t\t\t\tVswitchId:       createVswitch.ID(),\n\t\t\t\tVpdInfo: \u0026eflo.ClusterNetworksVpdInfoArgs{\n\t\t\t\t\tVpdId: pulumi.String(\"111\"),\n\t\t\t\t\tVpdSubnets: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"111\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tIpAllocationPolicies: eflo.ClusterNetworksIpAllocationPolicyArray{\n\t\t\t\t\t\u0026eflo.ClusterNetworksIpAllocationPolicyArgs{\n\t\t\t\t\t\tBondPolicy: \u0026eflo.ClusterNetworksIpAllocationPolicyBondPolicyArgs{\n\t\t\t\t\t\t\tBondDefaultSubnet: pulumi.String(\"111\"),\n\t\t\t\t\t\t\tBonds: eflo.ClusterNetworksIpAllocationPolicyBondPolicyBondArray{\n\t\t\t\t\t\t\t\t\u0026eflo.ClusterNetworksIpAllocationPolicyBondPolicyBondArgs{\n\t\t\t\t\t\t\t\t\tName:   pulumi.String(\"111\"),\n\t\t\t\t\t\t\t\t\tSubnet: pulumi.String(\"111\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tMachineTypePolicies: eflo.ClusterNetworksIpAllocationPolicyMachineTypePolicyArray{\n\t\t\t\t\t\t\t\u0026eflo.ClusterNetworksIpAllocationPolicyMachineTypePolicyArgs{\n\t\t\t\t\t\t\t\tBonds: eflo.ClusterNetworksIpAllocationPolicyMachineTypePolicyBondArray{\n\t\t\t\t\t\t\t\t\t\u0026eflo.ClusterNetworksIpAllocationPolicyMachineTypePolicyBondArgs{\n\t\t\t\t\t\t\t\t\t\tName:   pulumi.String(\"111\"),\n\t\t\t\t\t\t\t\t\t\tSubnet: pulumi.String(\"111\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tMachineType: pulumi.String(\"111\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tNodePolicies: eflo.ClusterNetworksIpAllocationPolicyNodePolicyArray{\n\t\t\t\t\t\t\t\u0026eflo.ClusterNetworksIpAllocationPolicyNodePolicyArgs{\n\t\t\t\t\t\t\t\tBonds: eflo.ClusterNetworksIpAllocationPolicyNodePolicyBondArray{\n\t\t\t\t\t\t\t\t\t\u0026eflo.ClusterNetworksIpAllocationPolicyNodePolicyBondArgs{\n\t\t\t\t\t\t\t\t\t\tName:   pulumi.String(\"111\"),\n\t\t\t\t\t\t\t\t\t\tSubnet: pulumi.String(\"111\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tNodeId: pulumi.String(\"111\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tClusterName: pulumi.String(\"tfacceflo7165\"),\n\t\t\tClusterType: pulumi.String(\"Lite\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNode, err := eflo.NewNode(ctx, \"default\", \u0026eflo.NodeArgs{\n\t\t\tPeriod:          pulumi.Int(36),\n\t\t\tDiscountLevel:   pulumi.String(\"36\"),\n\t\t\tBillingCycle:    pulumi.String(\"1month\"),\n\t\t\tClassify:        pulumi.String(\"gpuserver\"),\n\t\t\tZone:            pulumi.String(\"cn-hangzhou-b\"),\n\t\t\tProductForm:     pulumi.String(\"instance\"),\n\t\t\tPaymentRatio:    pulumi.String(\"0\"),\n\t\t\tHpnZone:         pulumi.String(\"B1\"),\n\t\t\tServerArch:      pulumi.String(\"bmserver\"),\n\t\t\tComputingServer: pulumi.String(\"efg1.nvga1n\"),\n\t\t\tStageNum:        pulumi.String(\"36\"),\n\t\t\tRenewalStatus:   pulumi.String(\"AutoRenewal\"),\n\t\t\tRenewPeriod:     pulumi.Int(36),\n\t\t\tStatus:          pulumi.String(\"Unused\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eflo.NewNodeGroup(ctx, \"default\", \u0026eflo.NodeGroupArgs{\n\t\t\tNodes: eflo.NodeGroupNodeArray{\n\t\t\t\t\u0026eflo.NodeGroupNodeArgs{\n\t\t\t\t\tNodeId:        defaultNode.ID(),\n\t\t\t\t\tVpcId:         createVpc.ID(),\n\t\t\t\t\tVswitchId:     createVswitch.ID(),\n\t\t\t\t\tHostname:      pulumi.String(\"jxyhostname\"),\n\t\t\t\t\tLoginPassword: pulumi.String(\"Alibaba@2025\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tIgnoreFailedNodeTasks: pulumi.Bool(true),\n\t\t\tClusterId:             defaultCluster.ID(),\n\t\t\tImageId:               pulumi.String(\"i195048661660874208657\"),\n\t\t\tZoneId:                pulumi.String(\"cn-hangzhou-b\"),\n\t\t\tVpdSubnets: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"example\"),\n\t\t\t},\n\t\t\tUserData:      pulumi.String(\"YWxpLGFsaSxhbGliYWJh\"),\n\t\t\tVswitchZoneId: pulumi.String(\"cn-hangzhou-b\"),\n\t\t\tIpAllocationPolicies: eflo.NodeGroupIpAllocationPolicyArray{\n\t\t\t\t\u0026eflo.NodeGroupIpAllocationPolicyArgs{\n\t\t\t\t\tBondPolicy: \u0026eflo.NodeGroupIpAllocationPolicyBondPolicyArgs{\n\t\t\t\t\t\tBondDefaultSubnet: pulumi.String(\"example\"),\n\t\t\t\t\t\tBonds: eflo.NodeGroupIpAllocationPolicyBondPolicyBondArray{\n\t\t\t\t\t\t\t\u0026eflo.NodeGroupIpAllocationPolicyBondPolicyBondArgs{\n\t\t\t\t\t\t\t\tName:   pulumi.String(\"example\"),\n\t\t\t\t\t\t\t\tSubnet: pulumi.String(\"example\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tMachineTypePolicies: eflo.NodeGroupIpAllocationPolicyMachineTypePolicyArray{\n\t\t\t\t\t\t\u0026eflo.NodeGroupIpAllocationPolicyMachineTypePolicyArgs{\n\t\t\t\t\t\t\tBonds: eflo.NodeGroupIpAllocationPolicyMachineTypePolicyBondArray{\n\t\t\t\t\t\t\t\t\u0026eflo.NodeGroupIpAllocationPolicyMachineTypePolicyBondArgs{\n\t\t\t\t\t\t\t\t\tName:   pulumi.String(\"example\"),\n\t\t\t\t\t\t\t\t\tSubnet: pulumi.String(\"example\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tMachineType: pulumi.String(\"example\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tNodePolicies: eflo.NodeGroupIpAllocationPolicyNodePolicyArray{\n\t\t\t\t\t\t\u0026eflo.NodeGroupIpAllocationPolicyNodePolicyArgs{\n\t\t\t\t\t\t\tNodeId: defaultNode.ID(),\n\t\t\t\t\t\t\tBonds: eflo.NodeGroupIpAllocationPolicyNodePolicyBondArray{\n\t\t\t\t\t\t\t\t\u0026eflo.NodeGroupIpAllocationPolicyNodePolicyBondArgs{\n\t\t\t\t\t\t\t\t\tName:   pulumi.String(\"example\"),\n\t\t\t\t\t\t\t\t\tSubnet: pulumi.String(\"example\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tMachineType:          pulumi.String(\"efg1.nvga1\"),\n\t\t\tAz:                   pulumi.String(\"cn-hangzhou-b\"),\n\t\t\tNodeGroupDescription: pulumi.String(\"resource-example1\"),\n\t\t\tNodeGroupName:        pulumi.String(\"tfacceflo63657_update\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.eflo.Cluster;\nimport com.pulumi.alicloud.eflo.ClusterArgs;\nimport com.pulumi.alicloud.eflo.inputs.ClusterNodeGroupArgs;\nimport com.pulumi.alicloud.eflo.inputs.ClusterNetworksArgs;\nimport com.pulumi.alicloud.eflo.inputs.ClusterNetworksNewVpdInfoArgs;\nimport com.pulumi.alicloud.eflo.inputs.ClusterNetworksVpdInfoArgs;\nimport com.pulumi.alicloud.eflo.Node;\nimport com.pulumi.alicloud.eflo.NodeArgs;\nimport com.pulumi.alicloud.eflo.NodeGroup;\nimport com.pulumi.alicloud.eflo.NodeGroupArgs;\nimport com.pulumi.alicloud.eflo.inputs.NodeGroupNodeArgs;\nimport com.pulumi.alicloud.eflo.inputs.NodeGroupIpAllocationPolicyArgs;\nimport com.pulumi.alicloud.eflo.inputs.NodeGroupIpAllocationPolicyBondPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var createVpc = new Network(\"createVpc\", NetworkArgs.builder()\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(\"cluster-resoure-example\")\n            .build());\n\n        var createVswitch = new Switch(\"createVswitch\", SwitchArgs.builder()\n            .vpcId(createVpc.id())\n            .zoneId(\"cn-hangzhou-b\")\n            .cidrBlock(\"192.168.0.0/24\")\n            .vswitchName(\"cluster-resoure-example\")\n            .build());\n\n        var createSecurityGroup = new SecurityGroup(\"createSecurityGroup\", SecurityGroupArgs.builder()\n            .description(\"sg\")\n            .securityGroupName(\"cluster-resoure-example\")\n            .securityGroupType(\"normal\")\n            .vpcId(createVpc.id())\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .clusterDescription(\"cluster-resource-example\")\n            .openEniJumboFrame(false)\n            .hpnZone(\"B1\")\n            .nimizVswitches(\"1111\")\n            .ignoreFailedNodeTasks(true)\n            .resourceGroupId(default_.ids()[1])\n            .nodeGroups(ClusterNodeGroupArgs.builder()\n                .imageId(\"i198448731735114628708\")\n                .zoneId(\"cn-hangzhou-b\")\n                .nodeGroupName(\"cluster-resource-example\")\n                .nodeGroupDescription(\"cluster-resource-example\")\n                .machineType(\"efg2.C48cA3sen\")\n                .build())\n            .networks(ClusterNetworksArgs.builder()\n                .tailIpVersion(\"ipv4\")\n                .newVpdInfo(ClusterNetworksNewVpdInfoArgs.builder()\n                    .monitorVpcId(createVpc.id())\n                    .monitorVswitchId(createVswitch.id())\n                    .cenId(\"11111\")\n                    .cloudLinkId(\"1111\")\n                    .vpdCidr(\"111\")\n                    .vpdSubnets(ClusterNetworksNewVpdInfoVpdSubnetArgs.builder()\n                        .zoneId(\"1111\")\n                        .subnetCidr(\"111\")\n                        .subnetType(\"111\")\n                        .build())\n                    .cloudLinkCidr(\"169.254.128.0/23\")\n                    .build())\n                .securityGroupId(createSecurityGroup.id())\n                .vswitchZoneId(\"cn-hangzhou-b\")\n                .vpcId(createVpc.id())\n                .vswitchId(createVswitch.id())\n                .vpdInfo(ClusterNetworksVpdInfoArgs.builder()\n                    .vpdId(\"111\")\n                    .vpdSubnets(\"111\")\n                    .build())\n                .ipAllocationPolicies(ClusterNetworksIpAllocationPolicyArgs.builder()\n                    .bondPolicy(ClusterNetworksIpAllocationPolicyBondPolicyArgs.builder()\n                        .bondDefaultSubnet(\"111\")\n                        .bonds(ClusterNetworksIpAllocationPolicyBondPolicyBondArgs.builder()\n                            .name(\"111\")\n                            .subnet(\"111\")\n                            .build())\n                        .build())\n                    .machineTypePolicies(ClusterNetworksIpAllocationPolicyMachineTypePolicyArgs.builder()\n                        .bonds(ClusterNetworksIpAllocationPolicyMachineTypePolicyBondArgs.builder()\n                            .name(\"111\")\n                            .subnet(\"111\")\n                            .build())\n                        .machineType(\"111\")\n                        .build())\n                    .nodePolicies(ClusterNetworksIpAllocationPolicyNodePolicyArgs.builder()\n                        .bonds(ClusterNetworksIpAllocationPolicyNodePolicyBondArgs.builder()\n                            .name(\"111\")\n                            .subnet(\"111\")\n                            .build())\n                        .nodeId(\"111\")\n                        .build())\n                    .build())\n                .build())\n            .clusterName(\"tfacceflo7165\")\n            .clusterType(\"Lite\")\n            .build());\n\n        var defaultNode = new Node(\"defaultNode\", NodeArgs.builder()\n            .period(36)\n            .discountLevel(\"36\")\n            .billingCycle(\"1month\")\n            .classify(\"gpuserver\")\n            .zone(\"cn-hangzhou-b\")\n            .productForm(\"instance\")\n            .paymentRatio(\"0\")\n            .hpnZone(\"B1\")\n            .serverArch(\"bmserver\")\n            .computingServer(\"efg1.nvga1n\")\n            .stageNum(\"36\")\n            .renewalStatus(\"AutoRenewal\")\n            .renewPeriod(36)\n            .status(\"Unused\")\n            .build());\n\n        var defaultNodeGroup = new NodeGroup(\"defaultNodeGroup\", NodeGroupArgs.builder()\n            .nodes(NodeGroupNodeArgs.builder()\n                .nodeId(defaultNode.id())\n                .vpcId(createVpc.id())\n                .vswitchId(createVswitch.id())\n                .hostname(\"jxyhostname\")\n                .loginPassword(\"Alibaba@2025\")\n                .build())\n            .ignoreFailedNodeTasks(true)\n            .clusterId(defaultCluster.id())\n            .imageId(\"i195048661660874208657\")\n            .zoneId(\"cn-hangzhou-b\")\n            .vpdSubnets(\"example\")\n            .userData(\"YWxpLGFsaSxhbGliYWJh\")\n            .vswitchZoneId(\"cn-hangzhou-b\")\n            .ipAllocationPolicies(NodeGroupIpAllocationPolicyArgs.builder()\n                .bondPolicy(NodeGroupIpAllocationPolicyBondPolicyArgs.builder()\n                    .bondDefaultSubnet(\"example\")\n                    .bonds(NodeGroupIpAllocationPolicyBondPolicyBondArgs.builder()\n                        .name(\"example\")\n                        .subnet(\"example\")\n                        .build())\n                    .build())\n                .machineTypePolicies(NodeGroupIpAllocationPolicyMachineTypePolicyArgs.builder()\n                    .bonds(NodeGroupIpAllocationPolicyMachineTypePolicyBondArgs.builder()\n                        .name(\"example\")\n                        .subnet(\"example\")\n                        .build())\n                    .machineType(\"example\")\n                    .build())\n                .nodePolicies(NodeGroupIpAllocationPolicyNodePolicyArgs.builder()\n                    .nodeId(defaultNode.id())\n                    .bonds(NodeGroupIpAllocationPolicyNodePolicyBondArgs.builder()\n                        .name(\"example\")\n                        .subnet(\"example\")\n                        .build())\n                    .build())\n                .build())\n            .machineType(\"efg1.nvga1\")\n            .az(\"cn-hangzhou-b\")\n            .nodeGroupDescription(\"resource-example1\")\n            .nodeGroupName(\"tfacceflo63657_update\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  # Before executing this example, you need to confirm with the product team whether the resources are sufficient or you will get an error message with \"Failure to check order before create instance\"\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createVpc:\n    type: alicloud:vpc:Network\n    name: create_vpc\n    properties:\n      cidrBlock: 192.168.0.0/16\n      vpcName: cluster-resoure-example\n  createVswitch:\n    type: alicloud:vpc:Switch\n    name: create_vswitch\n    properties:\n      vpcId: ${createVpc.id}\n      zoneId: cn-hangzhou-b\n      cidrBlock: 192.168.0.0/24\n      vswitchName: cluster-resoure-example\n  createSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: create_security_group\n    properties:\n      description: sg\n      securityGroupName: cluster-resoure-example\n      securityGroupType: normal\n      vpcId: ${createVpc.id}\n  defaultCluster:\n    type: alicloud:eflo:Cluster\n    name: default\n    properties:\n      clusterDescription: cluster-resource-example\n      openEniJumboFrame: 'false'\n      hpnZone: B1\n      nimizVswitches:\n        - '1111'\n      ignoreFailedNodeTasks: 'true'\n      resourceGroupId: ${default.ids[1]}\n      nodeGroups:\n        - imageId: i198448731735114628708\n          zoneId: cn-hangzhou-b\n          nodeGroupName: cluster-resource-example\n          nodeGroupDescription: cluster-resource-example\n          machineType: efg2.C48cA3sen\n      networks:\n        tailIpVersion: ipv4\n        newVpdInfo:\n          monitorVpcId: ${createVpc.id}\n          monitorVswitchId: ${createVswitch.id}\n          cenId: '11111'\n          cloudLinkId: '1111'\n          vpdCidr: '111'\n          vpdSubnets:\n            - zoneId: '1111'\n              subnetCidr: '111'\n              subnetType: '111'\n          cloudLinkCidr: 169.254.128.0/23\n        securityGroupId: ${createSecurityGroup.id}\n        vswitchZoneId: cn-hangzhou-b\n        vpcId: ${createVpc.id}\n        vswitchId: ${createVswitch.id}\n        vpdInfo:\n          vpdId: '111'\n          vpdSubnets:\n            - '111'\n        ipAllocationPolicies:\n          - bondPolicy:\n              bondDefaultSubnet: '111'\n              bonds:\n                - name: '111'\n                  subnet: '111'\n            machineTypePolicies:\n              - bonds:\n                  - name: '111'\n                    subnet: '111'\n                machineType: '111'\n            nodePolicies:\n              - bonds:\n                  - name: '111'\n                    subnet: '111'\n                nodeId: '111'\n      clusterName: tfacceflo7165\n      clusterType: Lite\n  defaultNode:\n    type: alicloud:eflo:Node\n    name: default\n    properties:\n      period: '36'\n      discountLevel: '36'\n      billingCycle: 1month\n      classify: gpuserver\n      zone: cn-hangzhou-b\n      productForm: instance\n      paymentRatio: '0'\n      hpnZone: B1\n      serverArch: bmserver\n      computingServer: efg1.nvga1n\n      stageNum: '36'\n      renewalStatus: AutoRenewal\n      renewPeriod: '36'\n      status: Unused\n  defaultNodeGroup:\n    type: alicloud:eflo:NodeGroup\n    name: default\n    properties:\n      nodes:\n        - nodeId: ${defaultNode.id}\n          vpcId: ${createVpc.id}\n          vswitchId: ${createVswitch.id}\n          hostname: jxyhostname\n          loginPassword: Alibaba@2025\n      ignoreFailedNodeTasks: 'true'\n      clusterId: ${defaultCluster.id}\n      imageId: i195048661660874208657\n      zoneId: cn-hangzhou-b\n      vpdSubnets:\n        - example\n      userData: YWxpLGFsaSxhbGliYWJh\n      vswitchZoneId: cn-hangzhou-b\n      ipAllocationPolicies:\n        - bondPolicy:\n            bondDefaultSubnet: example\n            bonds:\n              - name: example\n                subnet: example\n          machineTypePolicies:\n            - bonds:\n                - name: example\n                  subnet: example\n              machineType: example\n          nodePolicies:\n            - nodeId: ${defaultNode.id}\n              bonds:\n                - name: example\n                  subnet: example\n      machineType: efg1.nvga1\n      az: cn-hangzhou-b\n      nodeGroupDescription: resource-example1\n      nodeGroupName: tfacceflo63657_update\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEflo Node Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eflo/nodeGroup:NodeGroup example \u003ccluster_id\u003e:\u003cnode_group_id\u003e\n```\n\n","properties":{"az":{"type":"string","description":"Az\n"},"clusterId":{"type":"string","description":"Cluster ID\n"},"createTime":{"type":"string","description":"Create time\n"},"ignoreFailedNodeTasks":{"type":"boolean","description":"Whether to allow skipping failed nodes. Default value: False\n"},"imageId":{"type":"string","description":"Image ID. You can modify the image ID since v1.252.0.\n"},"ipAllocationPolicies":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeGroupIpAllocationPolicy:NodeGroupIpAllocationPolicy"},"description":"IP address combination policy: only one policy type can be selected for each policy, and multiple policies can be combined. See \u003cspan pulumi-lang-nodejs=\"`ipAllocationPolicy`\" pulumi-lang-dotnet=\"`IpAllocationPolicy`\" pulumi-lang-go=\"`ipAllocationPolicy`\" pulumi-lang-python=\"`ip_allocation_policy`\" pulumi-lang-yaml=\"`ipAllocationPolicy`\" pulumi-lang-java=\"`ipAllocationPolicy`\"\u003e`ip_allocation_policy`\u003c/span\u003e below.\n"},"keyPairName":{"type":"string","description":"key pair name\n"},"loginPassword":{"type":"string","description":"Login Password\n","secret":true},"machineType":{"type":"string","description":"Machine type\n"},"nodeGroupDescription":{"type":"string","description":"NodeGroupDescription\n"},"nodeGroupId":{"type":"string","description":"The first ID of the resource\n"},"nodeGroupName":{"type":"string","description":"The name of the resource\n"},"nodes":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeGroupNode:NodeGroupNode"},"description":"Node List See \u003cspan pulumi-lang-nodejs=\"`nodes`\" pulumi-lang-dotnet=\"`Nodes`\" pulumi-lang-go=\"`nodes`\" pulumi-lang-python=\"`nodes`\" pulumi-lang-yaml=\"`nodes`\" pulumi-lang-java=\"`nodes`\"\u003e`nodes`\u003c/span\u003e below.\n"},"userData":{"type":"string","description":"Custom Data\n"},"vpdSubnets":{"type":"array","items":{"type":"string"},"description":"Cluster subnet list\n"},"vswitchZoneId":{"type":"string","description":"Zone ID of the switch\n"},"zoneId":{"type":"string","description":"Zone ID\n"}},"required":["az","clusterId","createTime","imageId","machineType","nodeGroupId","nodeGroupName"],"inputProperties":{"az":{"type":"string","description":"Az\n","willReplaceOnChanges":true},"clusterId":{"type":"string","description":"Cluster ID\n","willReplaceOnChanges":true},"ignoreFailedNodeTasks":{"type":"boolean","description":"Whether to allow skipping failed nodes. Default value: False\n"},"imageId":{"type":"string","description":"Image ID. You can modify the image ID since v1.252.0.\n"},"ipAllocationPolicies":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeGroupIpAllocationPolicy:NodeGroupIpAllocationPolicy"},"description":"IP address combination policy: only one policy type can be selected for each policy, and multiple policies can be combined. See \u003cspan pulumi-lang-nodejs=\"`ipAllocationPolicy`\" pulumi-lang-dotnet=\"`IpAllocationPolicy`\" pulumi-lang-go=\"`ipAllocationPolicy`\" pulumi-lang-python=\"`ip_allocation_policy`\" pulumi-lang-yaml=\"`ipAllocationPolicy`\" pulumi-lang-java=\"`ipAllocationPolicy`\"\u003e`ip_allocation_policy`\u003c/span\u003e below.\n"},"keyPairName":{"type":"string","description":"key pair name\n","willReplaceOnChanges":true},"loginPassword":{"type":"string","description":"Login Password\n","secret":true},"machineType":{"type":"string","description":"Machine type\n","willReplaceOnChanges":true},"nodeGroupDescription":{"type":"string","description":"NodeGroupDescription\n","willReplaceOnChanges":true},"nodeGroupName":{"type":"string","description":"The name of the resource\n"},"nodes":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeGroupNode:NodeGroupNode"},"description":"Node List See \u003cspan pulumi-lang-nodejs=\"`nodes`\" pulumi-lang-dotnet=\"`Nodes`\" pulumi-lang-go=\"`nodes`\" pulumi-lang-python=\"`nodes`\" pulumi-lang-yaml=\"`nodes`\" pulumi-lang-java=\"`nodes`\"\u003e`nodes`\u003c/span\u003e below.\n"},"userData":{"type":"string","description":"Custom Data\n"},"vpdSubnets":{"type":"array","items":{"type":"string"},"description":"Cluster subnet list\n"},"vswitchZoneId":{"type":"string","description":"Zone ID of the switch\n"},"zoneId":{"type":"string","description":"Zone ID\n"}},"requiredInputs":["az","clusterId","imageId","machineType","nodeGroupName"],"stateInputs":{"description":"Input properties used for looking up and filtering NodeGroup resources.\n","properties":{"az":{"type":"string","description":"Az\n","willReplaceOnChanges":true},"clusterId":{"type":"string","description":"Cluster ID\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"Create time\n"},"ignoreFailedNodeTasks":{"type":"boolean","description":"Whether to allow skipping failed nodes. Default value: False\n"},"imageId":{"type":"string","description":"Image ID. You can modify the image ID since v1.252.0.\n"},"ipAllocationPolicies":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeGroupIpAllocationPolicy:NodeGroupIpAllocationPolicy"},"description":"IP address combination policy: only one policy type can be selected for each policy, and multiple policies can be combined. See \u003cspan pulumi-lang-nodejs=\"`ipAllocationPolicy`\" pulumi-lang-dotnet=\"`IpAllocationPolicy`\" pulumi-lang-go=\"`ipAllocationPolicy`\" pulumi-lang-python=\"`ip_allocation_policy`\" pulumi-lang-yaml=\"`ipAllocationPolicy`\" pulumi-lang-java=\"`ipAllocationPolicy`\"\u003e`ip_allocation_policy`\u003c/span\u003e below.\n"},"keyPairName":{"type":"string","description":"key pair name\n","willReplaceOnChanges":true},"loginPassword":{"type":"string","description":"Login Password\n","secret":true},"machineType":{"type":"string","description":"Machine type\n","willReplaceOnChanges":true},"nodeGroupDescription":{"type":"string","description":"NodeGroupDescription\n","willReplaceOnChanges":true},"nodeGroupId":{"type":"string","description":"The first ID of the resource\n"},"nodeGroupName":{"type":"string","description":"The name of the resource\n"},"nodes":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeGroupNode:NodeGroupNode"},"description":"Node List See \u003cspan pulumi-lang-nodejs=\"`nodes`\" pulumi-lang-dotnet=\"`Nodes`\" pulumi-lang-go=\"`nodes`\" pulumi-lang-python=\"`nodes`\" pulumi-lang-yaml=\"`nodes`\" pulumi-lang-java=\"`nodes`\"\u003e`nodes`\u003c/span\u003e below.\n"},"userData":{"type":"string","description":"Custom Data\n"},"vpdSubnets":{"type":"array","items":{"type":"string"},"description":"Cluster subnet list\n"},"vswitchZoneId":{"type":"string","description":"Zone ID of the switch\n"},"zoneId":{"type":"string","description":"Zone ID\n"}},"type":"object"}},"alicloud:eflo/nodeGroupAttachment:NodeGroupAttachment":{"description":"Provides a Eflo Node Group Attachment resource.\n\nNode Association Node Group Resources.\n\nFor information about Eflo Node Group Attachment and how to use it, see [What is Node Group Attachment](https://next.api.alibabacloud.com/document/eflo-controller/2022-12-15/ExtendCluster).\n\n\u003e **NOTE:** Available since v1.255.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.eflo.NodeGroupAttachment(\"default\", {\n    vswitchId: \"vsw-uf63gbmvwgreao66opmie\",\n    hostname: \"attachment-example-e01-cn-smw4d1bzd0a\",\n    loginPassword: \"G7f$2kL9@vQx3Zp5*\",\n    clusterId: \"i118976621753269898628\",\n    nodeGroupId: \"i127582271753269898630\",\n    nodeId: \"e01-cn-smw4d1bzd0a\",\n    vpcId: \"vpc-uf6t73bb01dfprb2qvpqa\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.eflo.NodeGroupAttachment(\"default\",\n    vswitch_id=\"vsw-uf63gbmvwgreao66opmie\",\n    hostname=\"attachment-example-e01-cn-smw4d1bzd0a\",\n    login_password=\"G7f$2kL9@vQx3Zp5*\",\n    cluster_id=\"i118976621753269898628\",\n    node_group_id=\"i127582271753269898630\",\n    node_id=\"e01-cn-smw4d1bzd0a\",\n    vpc_id=\"vpc-uf6t73bb01dfprb2qvpqa\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Eflo.NodeGroupAttachment(\"default\", new()\n    {\n        VswitchId = \"vsw-uf63gbmvwgreao66opmie\",\n        Hostname = \"attachment-example-e01-cn-smw4d1bzd0a\",\n        LoginPassword = \"G7f$2kL9@vQx3Zp5*\",\n        ClusterId = \"i118976621753269898628\",\n        NodeGroupId = \"i127582271753269898630\",\n        NodeId = \"e01-cn-smw4d1bzd0a\",\n        VpcId = \"vpc-uf6t73bb01dfprb2qvpqa\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eflo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := eflo.NewNodeGroupAttachment(ctx, \"default\", \u0026eflo.NodeGroupAttachmentArgs{\n\t\t\tVswitchId:     pulumi.String(\"vsw-uf63gbmvwgreao66opmie\"),\n\t\t\tHostname:      pulumi.String(\"attachment-example-e01-cn-smw4d1bzd0a\"),\n\t\t\tLoginPassword: pulumi.String(\"G7f$2kL9@vQx3Zp5*\"),\n\t\t\tClusterId:     pulumi.String(\"i118976621753269898628\"),\n\t\t\tNodeGroupId:   pulumi.String(\"i127582271753269898630\"),\n\t\t\tNodeId:        pulumi.String(\"e01-cn-smw4d1bzd0a\"),\n\t\t\tVpcId:         pulumi.String(\"vpc-uf6t73bb01dfprb2qvpqa\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eflo.NodeGroupAttachment;\nimport com.pulumi.alicloud.eflo.NodeGroupAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new NodeGroupAttachment(\"default\", NodeGroupAttachmentArgs.builder()\n            .vswitchId(\"vsw-uf63gbmvwgreao66opmie\")\n            .hostname(\"attachment-example-e01-cn-smw4d1bzd0a\")\n            .loginPassword(\"G7f$2kL9@vQx3Zp5*\")\n            .clusterId(\"i118976621753269898628\")\n            .nodeGroupId(\"i127582271753269898630\")\n            .nodeId(\"e01-cn-smw4d1bzd0a\")\n            .vpcId(\"vpc-uf6t73bb01dfprb2qvpqa\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:eflo:NodeGroupAttachment\n    properties:\n      vswitchId: vsw-uf63gbmvwgreao66opmie\n      hostname: attachment-example-e01-cn-smw4d1bzd0a\n      loginPassword: G7f$2kL9@vQx3Zp5*\n      clusterId: i118976621753269898628\n      nodeGroupId: i127582271753269898630\n      nodeId: e01-cn-smw4d1bzd0a\n      vpcId: vpc-uf6t73bb01dfprb2qvpqa\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEflo Node Group Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eflo/nodeGroupAttachment:NodeGroupAttachment example \u003ccluster_id\u003e:\u003cnode_group_id\u003e:\u003cnode_id\u003e\n```\n\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeGroupAttachmentDataDisk:NodeGroupAttachmentDataDisk"},"description":"The data disk of the cloud disk to be attached to the node. See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below.\n"},"hostname":{"type":"string","description":"Node hostname\n"},"loginPassword":{"type":"string","description":"Node login password\n"},"nodeGroupId":{"type":"string","description":"Node group ID\n"},"nodeId":{"type":"string","description":"Node ID\n"},"userData":{"type":"string","description":"User-defined data\n"},"vpcId":{"type":"string","description":"Vpc id\n"},"vswitchId":{"type":"string","description":"vswitch id\n"}},"required":["clusterId","hostname","nodeGroupId","nodeId","vpcId","vswitchId"],"inputProperties":{"clusterId":{"type":"string","description":"Cluster ID\n","willReplaceOnChanges":true},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeGroupAttachmentDataDisk:NodeGroupAttachmentDataDisk"},"description":"The data disk of the cloud disk to be attached to the node. See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below.\n"},"hostname":{"type":"string","description":"Node hostname\n","willReplaceOnChanges":true},"loginPassword":{"type":"string","description":"Node login password\n"},"nodeGroupId":{"type":"string","description":"Node group ID\n","willReplaceOnChanges":true},"nodeId":{"type":"string","description":"Node ID\n","willReplaceOnChanges":true},"userData":{"type":"string","description":"User-defined data\n"},"vpcId":{"type":"string","description":"Vpc id\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"vswitch id\n","willReplaceOnChanges":true}},"requiredInputs":["hostname","vpcId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering NodeGroupAttachment resources.\n","properties":{"clusterId":{"type":"string","description":"Cluster ID\n","willReplaceOnChanges":true},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:eflo/NodeGroupAttachmentDataDisk:NodeGroupAttachmentDataDisk"},"description":"The data disk of the cloud disk to be attached to the node. See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below.\n"},"hostname":{"type":"string","description":"Node hostname\n","willReplaceOnChanges":true},"loginPassword":{"type":"string","description":"Node login password\n"},"nodeGroupId":{"type":"string","description":"Node group ID\n","willReplaceOnChanges":true},"nodeId":{"type":"string","description":"Node ID\n","willReplaceOnChanges":true},"userData":{"type":"string","description":"User-defined data\n"},"vpcId":{"type":"string","description":"Vpc id\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"vswitch id\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:eflo/resource:Resource":{"description":"Provides a Eflo Resource resource.\n\n\n\nFor information about Eflo Resource and how to use it, see [What is Resource](https://www.alibabacloud.com/help/en/pai/developer-reference/api-eflo-cnp-2023-08-28-createresource).\n\n\u003e **NOTE:** Available since v1.248.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultResource = new alicloud.eflo.Resource(\"default\", {\n    userAccessParam: {\n        accessId: \"your_access_id\",\n        accessKey: \"your_access_key\",\n        workspaceId: \"your_workspace_id\",\n        endpoint: \"your_endpoint\",\n    },\n    clusterId: `terraform-${_default.result}`,\n    machineTypes: {\n        memoryInfo: \"32x 64GB DDR4 4800 Memory\",\n        type: \"Private\",\n        bondNum: 5,\n        nodeCount: 1,\n        cpuInfo: \"2x Intel Saphhire Rapid 8469C 48C CPU\",\n        networkInfo: \"1x 200Gbps Dual Port BF3 DPU for VPC 4x 200Gbps Dual Port EIC\",\n        gpuInfo: \"8x OAM 810 GPU\",\n        diskInfo: \"2x 480GB SATA SSD 4x 3.84TB NVMe SSD\",\n        networkMode: \"net\",\n        name: \"lingjun\",\n    },\n    clusterName: name,\n    clusterDesc: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_resource = alicloud.eflo.Resource(\"default\",\n    user_access_param={\n        \"access_id\": \"your_access_id\",\n        \"access_key\": \"your_access_key\",\n        \"workspace_id\": \"your_workspace_id\",\n        \"endpoint\": \"your_endpoint\",\n    },\n    cluster_id=f\"terraform-{default['result']}\",\n    machine_types={\n        \"memory_info\": \"32x 64GB DDR4 4800 Memory\",\n        \"type\": \"Private\",\n        \"bond_num\": 5,\n        \"node_count\": 1,\n        \"cpu_info\": \"2x Intel Saphhire Rapid 8469C 48C CPU\",\n        \"network_info\": \"1x 200Gbps Dual Port BF3 DPU for VPC 4x 200Gbps Dual Port EIC\",\n        \"gpu_info\": \"8x OAM 810 GPU\",\n        \"disk_info\": \"2x 480GB SATA SSD 4x 3.84TB NVMe SSD\",\n        \"network_mode\": \"net\",\n        \"name\": \"lingjun\",\n    },\n    cluster_name=name,\n    cluster_desc=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultResource = new AliCloud.Eflo.Resource(\"default\", new()\n    {\n        UserAccessParam = new AliCloud.Eflo.Inputs.ResourceUserAccessParamArgs\n        {\n            AccessId = \"your_access_id\",\n            AccessKey = \"your_access_key\",\n            WorkspaceId = \"your_workspace_id\",\n            Endpoint = \"your_endpoint\",\n        },\n        ClusterId = $\"terraform-{@default.Result}\",\n        MachineTypes = new AliCloud.Eflo.Inputs.ResourceMachineTypesArgs\n        {\n            MemoryInfo = \"32x 64GB DDR4 4800 Memory\",\n            Type = \"Private\",\n            BondNum = 5,\n            NodeCount = 1,\n            CpuInfo = \"2x Intel Saphhire Rapid 8469C 48C CPU\",\n            NetworkInfo = \"1x 200Gbps Dual Port BF3 DPU for VPC 4x 200Gbps Dual Port EIC\",\n            GpuInfo = \"8x OAM 810 GPU\",\n            DiskInfo = \"2x 480GB SATA SSD 4x 3.84TB NVMe SSD\",\n            NetworkMode = \"net\",\n            Name = \"lingjun\",\n        },\n        ClusterName = name,\n        ClusterDesc = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eflo\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eflo.NewResource(ctx, \"default\", \u0026eflo.ResourceArgs{\n\t\t\tUserAccessParam: \u0026eflo.ResourceUserAccessParamArgs{\n\t\t\t\tAccessId:    pulumi.String(\"your_access_id\"),\n\t\t\t\tAccessKey:   pulumi.String(\"your_access_key\"),\n\t\t\t\tWorkspaceId: pulumi.String(\"your_workspace_id\"),\n\t\t\t\tEndpoint:    pulumi.String(\"your_endpoint\"),\n\t\t\t},\n\t\t\tClusterId: pulumi.Sprintf(\"terraform-%v\", _default.Result),\n\t\t\tMachineTypes: \u0026eflo.ResourceMachineTypesArgs{\n\t\t\t\tMemoryInfo:  pulumi.String(\"32x 64GB DDR4 4800 Memory\"),\n\t\t\t\tType:        pulumi.String(\"Private\"),\n\t\t\t\tBondNum:     pulumi.Int(5),\n\t\t\t\tNodeCount:   pulumi.Int(1),\n\t\t\t\tCpuInfo:     pulumi.String(\"2x Intel Saphhire Rapid 8469C 48C CPU\"),\n\t\t\t\tNetworkInfo: pulumi.String(\"1x 200Gbps Dual Port BF3 DPU for VPC 4x 200Gbps Dual Port EIC\"),\n\t\t\t\tGpuInfo:     pulumi.String(\"8x OAM 810 GPU\"),\n\t\t\t\tDiskInfo:    pulumi.String(\"2x 480GB SATA SSD 4x 3.84TB NVMe SSD\"),\n\t\t\t\tNetworkMode: pulumi.String(\"net\"),\n\t\t\t\tName:        pulumi.String(\"lingjun\"),\n\t\t\t},\n\t\t\tClusterName: pulumi.String(name),\n\t\t\tClusterDesc: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.eflo.Resource;\nimport com.pulumi.alicloud.eflo.ResourceArgs;\nimport com.pulumi.alicloud.eflo.inputs.ResourceUserAccessParamArgs;\nimport com.pulumi.alicloud.eflo.inputs.ResourceMachineTypesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultResource = new Resource(\"defaultResource\", ResourceArgs.builder()\n            .userAccessParam(ResourceUserAccessParamArgs.builder()\n                .accessId(\"your_access_id\")\n                .accessKey(\"your_access_key\")\n                .workspaceId(\"your_workspace_id\")\n                .endpoint(\"your_endpoint\")\n                .build())\n            .clusterId(String.format(\"terraform-%s\", default_.result()))\n            .machineTypes(ResourceMachineTypesArgs.builder()\n                .memoryInfo(\"32x 64GB DDR4 4800 Memory\")\n                .type(\"Private\")\n                .bondNum(5)\n                .nodeCount(1)\n                .cpuInfo(\"2x Intel Saphhire Rapid 8469C 48C CPU\")\n                .networkInfo(\"1x 200Gbps Dual Port BF3 DPU for VPC 4x 200Gbps Dual Port EIC\")\n                .gpuInfo(\"8x OAM 810 GPU\")\n                .diskInfo(\"2x 480GB SATA SSD 4x 3.84TB NVMe SSD\")\n                .networkMode(\"net\")\n                .name(\"lingjun\")\n                .build())\n            .clusterName(name)\n            .clusterDesc(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultResource:\n    type: alicloud:eflo:Resource\n    name: default\n    properties:\n      userAccessParam:\n        accessId: your_access_id\n        accessKey: your_access_key\n        workspaceId: your_workspace_id\n        endpoint: your_endpoint\n      clusterId: terraform-${default.result}\n      machineTypes:\n        memoryInfo: 32x 64GB DDR4 4800 Memory\n        type: Private\n        bondNum: '5'\n        nodeCount: '1'\n        cpuInfo: 2x Intel Saphhire Rapid 8469C 48C CPU\n        networkInfo: 1x 200Gbps Dual Port BF3 DPU for VPC 4x 200Gbps Dual Port EIC\n        gpuInfo: 8x OAM 810 GPU\n        diskInfo: 2x 480GB SATA SSD 4x 3.84TB NVMe SSD\n        networkMode: net\n        name: lingjun\n      clusterName: ${name}\n      clusterDesc: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.eflo.Resource`\" pulumi-lang-dotnet=\"`alicloud.eflo.Resource`\" pulumi-lang-go=\"`eflo.Resource`\" pulumi-lang-python=\"`eflo.Resource`\" pulumi-lang-yaml=\"`alicloud.eflo.Resource`\" pulumi-lang-java=\"`alicloud.eflo.Resource`\"\u003e`alicloud.eflo.Resource`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.eflo.Resource`\" pulumi-lang-dotnet=\"`alicloud.eflo.Resource`\" pulumi-lang-go=\"`eflo.Resource`\" pulumi-lang-python=\"`eflo.Resource`\" pulumi-lang-yaml=\"`alicloud.eflo.Resource`\" pulumi-lang-java=\"`alicloud.eflo.Resource`\"\u003e`alicloud.eflo.Resource`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEflo Resource can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eflo/resource:Resource example \u003cid\u003e\n```\n\n","properties":{"clusterDesc":{"type":"string","description":"Used to provide a description or comment on the compute cluster.\n"},"clusterId":{"type":"string","description":"Used to uniquely identify a computing cluster.\n"},"clusterName":{"type":"string","description":"Represents the name of the compute cluster, usually including the model number.\n"},"machineTypes":{"$ref":"#/types/alicloud:eflo/ResourceMachineTypes:ResourceMachineTypes","description":"Generally refers to the type or instance type of a computing resource. See \u003cspan pulumi-lang-nodejs=\"`machineTypes`\" pulumi-lang-dotnet=\"`MachineTypes`\" pulumi-lang-go=\"`machineTypes`\" pulumi-lang-python=\"`machine_types`\" pulumi-lang-yaml=\"`machineTypes`\" pulumi-lang-java=\"`machineTypes`\"\u003e`machine_types`\u003c/span\u003e below.\n"},"resourceId":{"type":"string","description":"The ID of the Resource.\n"},"userAccessParam":{"$ref":"#/types/alicloud:eflo/ResourceUserAccessParam:ResourceUserAccessParam","description":"Used to define the access parameters for the user. See \u003cspan pulumi-lang-nodejs=\"`userAccessParam`\" pulumi-lang-dotnet=\"`UserAccessParam`\" pulumi-lang-go=\"`userAccessParam`\" pulumi-lang-python=\"`user_access_param`\" pulumi-lang-yaml=\"`userAccessParam`\" pulumi-lang-java=\"`userAccessParam`\"\u003e`user_access_param`\u003c/span\u003e below.\n"}},"required":["clusterId","clusterName","machineTypes","resourceId","userAccessParam"],"inputProperties":{"clusterDesc":{"type":"string","description":"Used to provide a description or comment on the compute cluster.\n","willReplaceOnChanges":true},"clusterId":{"type":"string","description":"Used to uniquely identify a computing cluster.\n","willReplaceOnChanges":true},"clusterName":{"type":"string","description":"Represents the name of the compute cluster, usually including the model number.\n","willReplaceOnChanges":true},"machineTypes":{"$ref":"#/types/alicloud:eflo/ResourceMachineTypes:ResourceMachineTypes","description":"Generally refers to the type or instance type of a computing resource. See \u003cspan pulumi-lang-nodejs=\"`machineTypes`\" pulumi-lang-dotnet=\"`MachineTypes`\" pulumi-lang-go=\"`machineTypes`\" pulumi-lang-python=\"`machine_types`\" pulumi-lang-yaml=\"`machineTypes`\" pulumi-lang-java=\"`machineTypes`\"\u003e`machine_types`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"userAccessParam":{"$ref":"#/types/alicloud:eflo/ResourceUserAccessParam:ResourceUserAccessParam","description":"Used to define the access parameters for the user. See \u003cspan pulumi-lang-nodejs=\"`userAccessParam`\" pulumi-lang-dotnet=\"`UserAccessParam`\" pulumi-lang-go=\"`userAccessParam`\" pulumi-lang-python=\"`user_access_param`\" pulumi-lang-yaml=\"`userAccessParam`\" pulumi-lang-java=\"`userAccessParam`\"\u003e`user_access_param`\u003c/span\u003e below.\n"}},"requiredInputs":["clusterId","clusterName","machineTypes","userAccessParam"],"stateInputs":{"description":"Input properties used for looking up and filtering Resource resources.\n","properties":{"clusterDesc":{"type":"string","description":"Used to provide a description or comment on the compute cluster.\n","willReplaceOnChanges":true},"clusterId":{"type":"string","description":"Used to uniquely identify a computing cluster.\n","willReplaceOnChanges":true},"clusterName":{"type":"string","description":"Represents the name of the compute cluster, usually including the model number.\n","willReplaceOnChanges":true},"machineTypes":{"$ref":"#/types/alicloud:eflo/ResourceMachineTypes:ResourceMachineTypes","description":"Generally refers to the type or instance type of a computing resource. See \u003cspan pulumi-lang-nodejs=\"`machineTypes`\" pulumi-lang-dotnet=\"`MachineTypes`\" pulumi-lang-go=\"`machineTypes`\" pulumi-lang-python=\"`machine_types`\" pulumi-lang-yaml=\"`machineTypes`\" pulumi-lang-java=\"`machineTypes`\"\u003e`machine_types`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"The ID of the Resource.\n"},"userAccessParam":{"$ref":"#/types/alicloud:eflo/ResourceUserAccessParam:ResourceUserAccessParam","description":"Used to define the access parameters for the user. See \u003cspan pulumi-lang-nodejs=\"`userAccessParam`\" pulumi-lang-dotnet=\"`UserAccessParam`\" pulumi-lang-go=\"`userAccessParam`\" pulumi-lang-python=\"`user_access_param`\" pulumi-lang-yaml=\"`userAccessParam`\" pulumi-lang-java=\"`userAccessParam`\"\u003e`user_access_param`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:eflo/subnet:Subnet":{"description":"Provides a Eflo Subnet resource.\n\nFor information about Eflo Subnet and how to use it, see [What is Subnet](https://www.alibabacloud.com/help/en/pai/user-guide/overview-of-intelligent-computing-lingjun).\n\n\u003e **NOTE:** Available since v1.204.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultVpd = new alicloud.eflo.Vpd(\"default\", {\n    cidr: \"10.0.0.0/8\",\n    vpdName: name,\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n});\nconst defaultSubnet = new alicloud.eflo.Subnet(\"default\", {\n    subnetName: name,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    cidr: \"10.0.0.0/16\",\n    vpdId: defaultVpd.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones()\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_vpd = alicloud.eflo.Vpd(\"default\",\n    cidr=\"10.0.0.0/8\",\n    vpd_name=name,\n    resource_group_id=default_get_resource_groups.groups[0].id)\ndefault_subnet = alicloud.eflo.Subnet(\"default\",\n    subnet_name=name,\n    zone_id=default.zones[0].id,\n    cidr=\"10.0.0.0/16\",\n    vpd_id=default_vpd.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke();\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultVpd = new AliCloud.Eflo.Vpd(\"default\", new()\n    {\n        Cidr = \"10.0.0.0/8\",\n        VpdName = name,\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n    });\n\n    var defaultSubnet = new AliCloud.Eflo.Subnet(\"default\", new()\n    {\n        SubnetName = name,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        Cidr = \"10.0.0.0/16\",\n        VpdId = defaultVpd.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eflo\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVpd, err := eflo.NewVpd(ctx, \"default\", \u0026eflo.VpdArgs{\n\t\t\tCidr:            pulumi.String(\"10.0.0.0/8\"),\n\t\t\tVpdName:         pulumi.String(name),\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eflo.NewSubnet(ctx, \"default\", \u0026eflo.SubnetArgs{\n\t\t\tSubnetName: pulumi.String(name),\n\t\t\tZoneId:     pulumi.String(_default.Zones[0].Id),\n\t\t\tCidr:       pulumi.String(\"10.0.0.0/16\"),\n\t\t\tVpdId:      defaultVpd.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.eflo.Vpd;\nimport com.pulumi.alicloud.eflo.VpdArgs;\nimport com.pulumi.alicloud.eflo.Subnet;\nimport com.pulumi.alicloud.eflo.SubnetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultVpd = new Vpd(\"defaultVpd\", VpdArgs.builder()\n            .cidr(\"10.0.0.0/8\")\n            .vpdName(name)\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .build());\n\n        var defaultSubnet = new Subnet(\"defaultSubnet\", SubnetArgs.builder()\n            .subnetName(name)\n            .zoneId(default_.zones()[0].id())\n            .cidr(\"10.0.0.0/16\")\n            .vpdId(defaultVpd.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultVpd:\n    type: alicloud:eflo:Vpd\n    name: default\n    properties:\n      cidr: 10.0.0.0/8\n      vpdName: ${name}\n      resourceGroupId: ${defaultGetResourceGroups.groups[0].id}\n  defaultSubnet:\n    type: alicloud:eflo:Subnet\n    name: default\n    properties:\n      subnetName: ${name}\n      zoneId: ${default.zones[0].id}\n      cidr: 10.0.0.0/16\n      vpdId: ${defaultVpd.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments: {}\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEflo Subnet can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eflo/subnet:Subnet example \u003cvpd_id\u003e:\u003csubnet_id\u003e\n```\n\n","properties":{"cidr":{"type":"string","description":"CIDR network segment.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"gmtModified":{"type":"string","description":"Modification time.\n"},"message":{"type":"string","description":"Error message.\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"subnetId":{"type":"string","description":"The id of the subnet.\n"},"subnetName":{"type":"string","description":"The Subnet name.\n"},"type":{"type":"string","description":"Eflo subnet usage type. optional value:\n- General type is not filled in\n- OOB:OOB type\n- LB: LB type\n"},"vpdId":{"type":"string","description":"The Eflo VPD ID.\n"},"zoneId":{"type":"string","description":"The zone ID  of the resource.\n"}},"required":["cidr","createTime","gmtModified","message","resourceGroupId","status","subnetId","subnetName","vpdId","zoneId"],"inputProperties":{"cidr":{"type":"string","description":"CIDR network segment.\n","willReplaceOnChanges":true},"subnetName":{"type":"string","description":"The Subnet name.\n"},"type":{"type":"string","description":"Eflo subnet usage type. optional value:\n- General type is not filled in\n- OOB:OOB type\n- LB: LB type\n","willReplaceOnChanges":true},"vpdId":{"type":"string","description":"The Eflo VPD ID.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID  of the resource.\n","willReplaceOnChanges":true}},"requiredInputs":["cidr","subnetName","vpdId","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering Subnet resources.\n","properties":{"cidr":{"type":"string","description":"CIDR network segment.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"gmtModified":{"type":"string","description":"Modification time.\n"},"message":{"type":"string","description":"Error message.\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"subnetId":{"type":"string","description":"The id of the subnet.\n"},"subnetName":{"type":"string","description":"The Subnet name.\n"},"type":{"type":"string","description":"Eflo subnet usage type. optional value:\n- General type is not filled in\n- OOB:OOB type\n- LB: LB type\n","willReplaceOnChanges":true},"vpdId":{"type":"string","description":"The Eflo VPD ID.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID  of the resource.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:eflo/vpd:Vpd":{"description":"Provides a Eflo Vpd resource.\n\nLingjun Network Segment.\n\nFor information about Eflo Vpd and how to use it, see [What is Vpd](https://next.api.alibabacloud.com/document/eflo/2022-05-30/CreateVpd).\n\n\u003e **NOTE:** Available since v1.201.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultVpd = new alicloud.eflo.Vpd(\"default\", {\n    cidr: \"10.0.0.0/8\",\n    vpdName: name,\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_vpd = alicloud.eflo.Vpd(\"default\",\n    cidr=\"10.0.0.0/8\",\n    vpd_name=name,\n    resource_group_id=default.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultVpd = new AliCloud.Eflo.Vpd(\"default\", new()\n    {\n        Cidr = \"10.0.0.0/8\",\n        VpdName = name,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eflo\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eflo.NewVpd(ctx, \"default\", \u0026eflo.VpdArgs{\n\t\t\tCidr:            pulumi.String(\"10.0.0.0/8\"),\n\t\t\tVpdName:         pulumi.String(name),\n\t\t\tResourceGroupId: pulumi.String(_default.Groups[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.eflo.Vpd;\nimport com.pulumi.alicloud.eflo.VpdArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultVpd = new Vpd(\"defaultVpd\", VpdArgs.builder()\n            .cidr(\"10.0.0.0/8\")\n            .vpdName(name)\n            .resourceGroupId(default_.groups()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultVpd:\n    type: alicloud:eflo:Vpd\n    name: default\n    properties:\n      cidr: 10.0.0.0/8\n      vpdName: ${name}\n      resourceGroupId: ${default.groups[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEflo Vpd can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eflo/vpd:Vpd example \u003cid\u003e\n```\n\n","properties":{"cidr":{"type":"string","description":"The CIDR block of the VPD.\n"},"createTime":{"type":"string","description":"The time when the activation code was created.\n"},"gmtModified":{"type":"string","description":"The time when the O\u0026M task was modified.\n"},"regionId":{"type":"string","description":"(Available since v1.263.0) The region ID.\n"},"resourceGroupId":{"type":"string","description":"The Resource group ID. **NOTE:** From version 1.263.0, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e can be modified.\n"},"secondaryCidrBlocks":{"type":"array","items":{"type":"string"},"description":"The additional CIDR block.\n"},"status":{"type":"string","description":"The current state of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"vpdName":{"type":"string","description":"The name of the VPD instance.\n"}},"required":["cidr","createTime","gmtModified","regionId","resourceGroupId","status","vpdName"],"inputProperties":{"cidr":{"type":"string","description":"The CIDR block of the VPD.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The Resource group ID. **NOTE:** From version 1.263.0, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e can be modified.\n"},"secondaryCidrBlocks":{"type":"array","items":{"type":"string"},"description":"The additional CIDR block.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"vpdName":{"type":"string","description":"The name of the VPD instance.\n"}},"requiredInputs":["cidr","vpdName"],"stateInputs":{"description":"Input properties used for looking up and filtering Vpd resources.\n","properties":{"cidr":{"type":"string","description":"The CIDR block of the VPD.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The time when the activation code was created.\n"},"gmtModified":{"type":"string","description":"The time when the O\u0026M task was modified.\n"},"regionId":{"type":"string","description":"(Available since v1.263.0) The region ID.\n"},"resourceGroupId":{"type":"string","description":"The Resource group ID. **NOTE:** From version 1.263.0, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e can be modified.\n"},"secondaryCidrBlocks":{"type":"array","items":{"type":"string"},"description":"The additional CIDR block.\n"},"status":{"type":"string","description":"The current state of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"vpdName":{"type":"string","description":"The name of the VPD instance.\n"}},"type":"object"}},"alicloud:eflo/vpdGrantRule:VpdGrantRule":{"description":"Provides a Eflo Vpd Grant Rule resource.\n\nLingjun Network Segment Cross-Account Authorization Information.\n\nFor information about Eflo Vpd Grant Rule and how to use it, see [What is Vpd Grant Rule](https://next.api.alibabacloud.com/document/eflo/2022-05-30/CreateVpdGrantRule).\n\n\u003e **NOTE:** Available since v1.263.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getAccount({});\nconst defaultEr = new alicloud.eflo.Er(\"default\", {\n    erName: name,\n    masterZoneId: \"cn-hangzhou-a\",\n});\nconst defaultVpd = new alicloud.eflo.Vpd(\"default\", {\n    cidr: \"10.0.0.0/8\",\n    vpdName: name,\n});\nconst defaultVpdGrantRule = new alicloud.eflo.VpdGrantRule(\"default\", {\n    grantTenantId: _default.then(_default =\u003e _default.id),\n    erId: defaultEr.id,\n    instanceId: defaultVpd.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_account()\ndefault_er = alicloud.eflo.Er(\"default\",\n    er_name=name,\n    master_zone_id=\"cn-hangzhou-a\")\ndefault_vpd = alicloud.eflo.Vpd(\"default\",\n    cidr=\"10.0.0.0/8\",\n    vpd_name=name)\ndefault_vpd_grant_rule = alicloud.eflo.VpdGrantRule(\"default\",\n    grant_tenant_id=default.id,\n    er_id=default_er.id,\n    instance_id=default_vpd.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultEr = new AliCloud.Eflo.Er(\"default\", new()\n    {\n        ErName = name,\n        MasterZoneId = \"cn-hangzhou-a\",\n    });\n\n    var defaultVpd = new AliCloud.Eflo.Vpd(\"default\", new()\n    {\n        Cidr = \"10.0.0.0/8\",\n        VpdName = name,\n    });\n\n    var defaultVpdGrantRule = new AliCloud.Eflo.VpdGrantRule(\"default\", new()\n    {\n        GrantTenantId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        ErId = defaultEr.Id,\n        InstanceId = defaultVpd.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eflo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEr, err := eflo.NewEr(ctx, \"default\", \u0026eflo.ErArgs{\n\t\t\tErName:       pulumi.String(name),\n\t\t\tMasterZoneId: pulumi.String(\"cn-hangzhou-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVpd, err := eflo.NewVpd(ctx, \"default\", \u0026eflo.VpdArgs{\n\t\t\tCidr:    pulumi.String(\"10.0.0.0/8\"),\n\t\t\tVpdName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eflo.NewVpdGrantRule(ctx, \"default\", \u0026eflo.VpdGrantRuleArgs{\n\t\t\tGrantTenantId: pulumi.String(_default.Id),\n\t\t\tErId:          defaultEr.ID(),\n\t\t\tInstanceId:    defaultVpd.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.eflo.Er;\nimport com.pulumi.alicloud.eflo.ErArgs;\nimport com.pulumi.alicloud.eflo.Vpd;\nimport com.pulumi.alicloud.eflo.VpdArgs;\nimport com.pulumi.alicloud.eflo.VpdGrantRule;\nimport com.pulumi.alicloud.eflo.VpdGrantRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var defaultEr = new Er(\"defaultEr\", ErArgs.builder()\n            .erName(name)\n            .masterZoneId(\"cn-hangzhou-a\")\n            .build());\n\n        var defaultVpd = new Vpd(\"defaultVpd\", VpdArgs.builder()\n            .cidr(\"10.0.0.0/8\")\n            .vpdName(name)\n            .build());\n\n        var defaultVpdGrantRule = new VpdGrantRule(\"defaultVpdGrantRule\", VpdGrantRuleArgs.builder()\n            .grantTenantId(default_.id())\n            .erId(defaultEr.id())\n            .instanceId(defaultVpd.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultEr:\n    type: alicloud:eflo:Er\n    name: default\n    properties:\n      erName: ${name}\n      masterZoneId: cn-hangzhou-a\n  defaultVpd:\n    type: alicloud:eflo:Vpd\n    name: default\n    properties:\n      cidr: 10.0.0.0/8\n      vpdName: ${name}\n  defaultVpdGrantRule:\n    type: alicloud:eflo:VpdGrantRule\n    name: default\n    properties:\n      grantTenantId: ${default.id}\n      erId: ${defaultEr.id}\n      instanceId: ${defaultVpd.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEflo Vpd Grant Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eflo/vpdGrantRule:VpdGrantRule example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The Creation time.\n"},"erId":{"type":"string","description":"The ID of the ER instance under the cross-account tenant.\n"},"grantTenantId":{"type":"string","description":"Cross-account authorized tenant ID.\n"},"instanceId":{"type":"string","description":"Instance ID of VPD.\n"},"regionId":{"type":"string","description":"The Region ID.\n"}},"required":["createTime","erId","grantTenantId","instanceId","regionId"],"inputProperties":{"erId":{"type":"string","description":"The ID of the ER instance under the cross-account tenant.\n","willReplaceOnChanges":true},"grantTenantId":{"type":"string","description":"Cross-account authorized tenant ID.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"Instance ID of VPD.\n","willReplaceOnChanges":true}},"requiredInputs":["erId","grantTenantId","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering VpdGrantRule resources.\n","properties":{"createTime":{"type":"string","description":"The Creation time.\n"},"erId":{"type":"string","description":"The ID of the ER instance under the cross-account tenant.\n","willReplaceOnChanges":true},"grantTenantId":{"type":"string","description":"Cross-account authorized tenant ID.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"Instance ID of VPD.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The Region ID.\n"}},"type":"object"}},"alicloud:eflo/vsc:Vsc":{"description":"Provides a Eflo Vsc resource.\n\nVirtual Storage Channel.\n\nFor information about Eflo Vsc and how to use it, see [What is Vsc](https://www.alibabacloud.com/help/en/pai/developer-reference/api-eflo-controller-2022-12-15-createvsc).\n\n\u003e **NOTE:** Available since v1.250.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.eflo.Vsc(\"default\", {\n    vscType: \"primary\",\n    nodeId: \"e01-cn-9me49omda01\",\n    vscName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.eflo.Vsc(\"default\",\n    vsc_type=\"primary\",\n    node_id=\"e01-cn-9me49omda01\",\n    vsc_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Eflo.Vsc(\"default\", new()\n    {\n        VscType = \"primary\",\n        NodeId = \"e01-cn-9me49omda01\",\n        VscName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eflo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := eflo.NewVsc(ctx, \"default\", \u0026eflo.VscArgs{\n\t\t\tVscType: pulumi.String(\"primary\"),\n\t\t\tNodeId:  pulumi.String(\"e01-cn-9me49omda01\"),\n\t\t\tVscName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eflo.Vsc;\nimport com.pulumi.alicloud.eflo.VscArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Vsc(\"default\", VscArgs.builder()\n            .vscType(\"primary\")\n            .nodeId(\"e01-cn-9me49omda01\")\n            .vscName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:eflo:Vsc\n    properties:\n      vscType: primary\n      nodeId: e01-cn-9me49omda01\n      vscName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEflo Vsc can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eflo/vsc:Vsc example \u003cid\u003e\n```\n\n","properties":{"nodeId":{"type":"string","description":"The ID of the Node.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the Vsc.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"vscName":{"type":"string","description":"The name of the Vsc.\n"},"vscType":{"type":"string","description":"The type of the Vsc. Default value: \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e.\n"}},"required":["nodeId","resourceGroupId","status","vscType"],"inputProperties":{"nodeId":{"type":"string","description":"The ID of the Node.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"vscName":{"type":"string","description":"The name of the Vsc.\n","willReplaceOnChanges":true},"vscType":{"type":"string","description":"The type of the Vsc. Default value: \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["nodeId"],"stateInputs":{"description":"Input properties used for looking up and filtering Vsc resources.\n","properties":{"nodeId":{"type":"string","description":"The ID of the Node.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the Vsc.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"vscName":{"type":"string","description":"The name of the Vsc.\n","willReplaceOnChanges":true},"vscType":{"type":"string","description":"The type of the Vsc. Default value: \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ehpc/cluster:Cluster":{"description":"Provides a Ehpc Cluster resource.\n\nFor information about Ehpc Cluster and how to use it, see [What is Cluster](https://www.alibabacloud.com/help/en/e-hpc/developer-reference/api-ehpc-2018-04-12-createcluster).\n\n\u003e **NOTE:** Available since v1.173.0.\n\n\u003e **DEPRECATED:** This resource has been deprecated. Please use \u003cspan pulumi-lang-nodejs=\"`alicloud.ehpc.ClusterV2`\" pulumi-lang-dotnet=\"`alicloud.ehpc.ClusterV2`\" pulumi-lang-go=\"`ehpc.ClusterV2`\" pulumi-lang-python=\"`ehpc.ClusterV2`\" pulumi-lang-yaml=\"`alicloud.ehpc.ClusterV2`\" pulumi-lang-java=\"`alicloud.ehpc.ClusterV2`\"\u003e`alicloud.ehpc.ClusterV2`\u003c/span\u003e for new deployments as it provides enhanced functionality and is actively maintained.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^centos_7_6_x64*\",\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.0.0.0/8\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.1.0.0/16\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultFileSystem = new alicloud.nas.FileSystem(\"default\", {\n    storageType: \"Performance\",\n    protocolType: \"NFS\",\n});\nconst defaultMountTarget = new alicloud.nas.MountTarget(\"default\", {\n    fileSystemId: defaultFileSystem.id,\n    accessGroupName: \"DEFAULT_VPC_GROUP_NAME\",\n    vswitchId: defaultSwitch.id,\n});\nconst defaultCluster = new alicloud.ehpc.Cluster(\"default\", {\n    clusterName: name,\n    deployMode: \"Simple\",\n    description: name,\n    haEnable: false,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    imageOwnerAlias: \"system\",\n    volumeProtocol: \"nfs\",\n    volumeId: defaultFileSystem.id,\n    volumeMountpoint: defaultMountTarget.mountTargetDomain,\n    computeCount: 1,\n    computeInstanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    loginCount: 1,\n    loginInstanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    managerCount: 1,\n    managerInstanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    osTag: \"CentOS_7.6_64\",\n    schedulerType: \"pbs\",\n    password: \"your-password123\",\n    vswitchId: defaultSwitch.id,\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^centos_7_6_x64*\",\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.0.0.0/8\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.1.0.0/16\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_file_system = alicloud.nas.FileSystem(\"default\",\n    storage_type=\"Performance\",\n    protocol_type=\"NFS\")\ndefault_mount_target = alicloud.nas.MountTarget(\"default\",\n    file_system_id=default_file_system.id,\n    access_group_name=\"DEFAULT_VPC_GROUP_NAME\",\n    vswitch_id=default_switch.id)\ndefault_cluster = alicloud.ehpc.Cluster(\"default\",\n    cluster_name=name,\n    deploy_mode=\"Simple\",\n    description=name,\n    ha_enable=False,\n    image_id=default_get_images.images[0].id,\n    image_owner_alias=\"system\",\n    volume_protocol=\"nfs\",\n    volume_id=default_file_system.id,\n    volume_mountpoint=default_mount_target.mount_target_domain,\n    compute_count=1,\n    compute_instance_type=default_get_instance_types.instance_types[0].id,\n    login_count=1,\n    login_instance_type=default_get_instance_types.instance_types[0].id,\n    manager_count=1,\n    manager_instance_type=default_get_instance_types.instance_types[0].id,\n    os_tag=\"CentOS_7.6_64\",\n    scheduler_type=\"pbs\",\n    password=\"your-password123\",\n    vswitch_id=default_switch.id,\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^centos_7_6_x64*\",\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.1.0.0/16\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultFileSystem = new AliCloud.Nas.FileSystem(\"default\", new()\n    {\n        StorageType = \"Performance\",\n        ProtocolType = \"NFS\",\n    });\n\n    var defaultMountTarget = new AliCloud.Nas.MountTarget(\"default\", new()\n    {\n        FileSystemId = defaultFileSystem.Id,\n        AccessGroupName = \"DEFAULT_VPC_GROUP_NAME\",\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var defaultCluster = new AliCloud.Ehpc.Cluster(\"default\", new()\n    {\n        ClusterName = name,\n        DeployMode = \"Simple\",\n        Description = name,\n        HaEnable = false,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        ImageOwnerAlias = \"system\",\n        VolumeProtocol = \"nfs\",\n        VolumeId = defaultFileSystem.Id,\n        VolumeMountpoint = defaultMountTarget.MountTargetDomain,\n        ComputeCount = 1,\n        ComputeInstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        LoginCount = 1,\n        LoginInstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        ManagerCount = 1,\n        ManagerInstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        OsTag = \"CentOS_7.6_64\",\n        SchedulerType = \"pbs\",\n        Password = \"your-password123\",\n        VswitchId = defaultSwitch.Id,\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ehpc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^centos_7_6_x64*\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.1.0.0/16\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultFileSystem, err := nas.NewFileSystem(ctx, \"default\", \u0026nas.FileSystemArgs{\n\t\t\tStorageType:  pulumi.String(\"Performance\"),\n\t\t\tProtocolType: pulumi.String(\"NFS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultMountTarget, err := nas.NewMountTarget(ctx, \"default\", \u0026nas.MountTargetArgs{\n\t\t\tFileSystemId:    defaultFileSystem.ID(),\n\t\t\tAccessGroupName: pulumi.String(\"DEFAULT_VPC_GROUP_NAME\"),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ehpc.NewCluster(ctx, \"default\", \u0026ehpc.ClusterArgs{\n\t\t\tClusterName:         pulumi.String(name),\n\t\t\tDeployMode:          pulumi.String(\"Simple\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tHaEnable:            pulumi.Bool(false),\n\t\t\tImageId:             pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tImageOwnerAlias:     pulumi.String(\"system\"),\n\t\t\tVolumeProtocol:      pulumi.String(\"nfs\"),\n\t\t\tVolumeId:            defaultFileSystem.ID(),\n\t\t\tVolumeMountpoint:    defaultMountTarget.MountTargetDomain,\n\t\t\tComputeCount:        pulumi.Int(1),\n\t\t\tComputeInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tLoginCount:          pulumi.Int(1),\n\t\t\tLoginInstanceType:   pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tManagerCount:        pulumi.Int(1),\n\t\t\tManagerInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tOsTag:               pulumi.String(\"CentOS_7.6_64\"),\n\t\t\tSchedulerType:       pulumi.String(\"pbs\"),\n\t\t\tPassword:            pulumi.String(\"your-password123\"),\n\t\t\tVswitchId:           defaultSwitch.ID(),\n\t\t\tVpcId:               defaultNetwork.ID(),\n\t\t\tZoneId:              pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.nas.FileSystem;\nimport com.pulumi.alicloud.nas.FileSystemArgs;\nimport com.pulumi.alicloud.nas.MountTarget;\nimport com.pulumi.alicloud.nas.MountTargetArgs;\nimport com.pulumi.alicloud.ehpc.Cluster;\nimport com.pulumi.alicloud.ehpc.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^centos_7_6_x64*\")\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.1.0.0/16\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultFileSystem = new FileSystem(\"defaultFileSystem\", FileSystemArgs.builder()\n            .storageType(\"Performance\")\n            .protocolType(\"NFS\")\n            .build());\n\n        var defaultMountTarget = new MountTarget(\"defaultMountTarget\", MountTargetArgs.builder()\n            .fileSystemId(defaultFileSystem.id())\n            .accessGroupName(\"DEFAULT_VPC_GROUP_NAME\")\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .clusterName(name)\n            .deployMode(\"Simple\")\n            .description(name)\n            .haEnable(false)\n            .imageId(defaultGetImages.images()[0].id())\n            .imageOwnerAlias(\"system\")\n            .volumeProtocol(\"nfs\")\n            .volumeId(defaultFileSystem.id())\n            .volumeMountpoint(defaultMountTarget.mountTargetDomain())\n            .computeCount(1)\n            .computeInstanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .loginCount(1)\n            .loginInstanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .managerCount(1)\n            .managerInstanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .osTag(\"CentOS_7.6_64\")\n            .schedulerType(\"pbs\")\n            .password(\"your-password123\")\n            .vswitchId(defaultSwitch.id())\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.0.0.0/8\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.1.0.0/16\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultFileSystem:\n    type: alicloud:nas:FileSystem\n    name: default\n    properties:\n      storageType: Performance\n      protocolType: NFS\n  defaultMountTarget:\n    type: alicloud:nas:MountTarget\n    name: default\n    properties:\n      fileSystemId: ${defaultFileSystem.id}\n      accessGroupName: DEFAULT_VPC_GROUP_NAME\n      vswitchId: ${defaultSwitch.id}\n  defaultCluster:\n    type: alicloud:ehpc:Cluster\n    name: default\n    properties:\n      clusterName: ${name}\n      deployMode: Simple\n      description: ${name}\n      haEnable: false\n      imageId: ${defaultGetImages.images[0].id}\n      imageOwnerAlias: system\n      volumeProtocol: nfs\n      volumeId: ${defaultFileSystem.id}\n      volumeMountpoint: ${defaultMountTarget.mountTargetDomain}\n      computeCount: 1\n      computeInstanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      loginCount: 1\n      loginInstanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      managerCount: 1\n      managerInstanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      osTag: CentOS_7.6_64\n      schedulerType: pbs\n      password: your-password123\n      vswitchId: ${defaultSwitch.id}\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^centos_7_6_x64*\n        owners: system\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEhpc Cluster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ehpc/cluster:Cluster example \u003cid\u003e\n```\n\n","properties":{"accountType":{"type":"string","description":"The type of the domain account service. Valid values: \u003cspan pulumi-lang-nodejs=\"`nis`\" pulumi-lang-dotnet=\"`Nis`\" pulumi-lang-go=\"`nis`\" pulumi-lang-python=\"`nis`\" pulumi-lang-yaml=\"`nis`\" pulumi-lang-java=\"`nis`\"\u003e`nis`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ldap`\" pulumi-lang-dotnet=\"`Ldap`\" pulumi-lang-go=\"`ldap`\" pulumi-lang-python=\"`ldap`\" pulumi-lang-yaml=\"`ldap`\" pulumi-lang-java=\"`ldap`\"\u003e`ldap`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`nis`\" pulumi-lang-dotnet=\"`Nis`\" pulumi-lang-go=\"`nis`\" pulumi-lang-python=\"`nis`\" pulumi-lang-yaml=\"`nis`\" pulumi-lang-java=\"`nis`\"\u003e`nis`\u003c/span\u003e\n"},"additionalVolumes":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/ClusterAdditionalVolume:ClusterAdditionalVolume"},"description":"The additional volumes. See \u003cspan pulumi-lang-nodejs=\"`additionalVolumes`\" pulumi-lang-dotnet=\"`AdditionalVolumes`\" pulumi-lang-go=\"`additionalVolumes`\" pulumi-lang-python=\"`additional_volumes`\" pulumi-lang-yaml=\"`additionalVolumes`\" pulumi-lang-java=\"`additionalVolumes`\"\u003e`additional_volumes`\u003c/span\u003e below.\n"},"applications":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/ClusterApplication:ClusterApplication"},"description":"The application. See \u003cspan pulumi-lang-nodejs=\"`application`\" pulumi-lang-dotnet=\"`Application`\" pulumi-lang-go=\"`application`\" pulumi-lang-python=\"`application`\" pulumi-lang-yaml=\"`application`\" pulumi-lang-java=\"`application`\"\u003e`application`\u003c/span\u003e below.\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to enable auto-renewal for the subscription. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"The auto-renewal period of the subscription compute nodes. The parameter takes effect when AutoRenew is set to true.\n"},"clientVersion":{"type":"string","description":"The version of the E-HPC client. By default, the parameter is set to the latest version number.\n"},"clusterName":{"type":"string","description":"The name of the cluster. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters in length.\n"},"clusterVersion":{"type":"string","description":"The version of the cluster. Default value: `1.0`.\n"},"computeCount":{"type":"integer","description":"The number of the compute nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`99`\" pulumi-lang-dotnet=\"`99`\" pulumi-lang-go=\"`99`\" pulumi-lang-python=\"`99`\" pulumi-lang-yaml=\"`99`\" pulumi-lang-java=\"`99`\"\u003e`99`\u003c/span\u003e.\n"},"computeEnableHt":{"type":"boolean","description":"Specifies whether the compute nodes support hyper-threading. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"computeInstanceType":{"type":"string","description":"The instance type of the compute nodes.\n"},"computeSpotPriceLimit":{"type":"string","description":"The maximum hourly price of the compute nodes. A maximum of three decimal places can be used in the value of the parameter. The parameter is valid only when the ComputeSpotStrategy parameter is set to SpotWithPriceLimit.\n"},"computeSpotStrategy":{"type":"string","description":"The bidding method of the compute nodes. Default value: `NoSpot`. Valid values:\n- `NoSpot`: The compute nodes are pay-as-you-go instances.\n- `SpotWithPriceLimit`: The compute nodes are preemptible instances that have a user-defined maximum hourly price.\n- `SpotAsPriceGo`: The compute nodes are preemptible instances for which the market price at the time of purchase is used as the bid price.\n"},"deployMode":{"type":"string","description":"The mode in which the cluster is deployed. Valid values: `Standard`, `Simple`, `Tiny`. Default value: Standard.\n- `Standard`: An account node, a scheduling node, a logon node, and multiple compute nodes are separately deployed.\n- `Simple`: A management node, a logon node, and multiple compute nodes are deployed. The management node consists of an account node and a scheduling node. The logon node and compute nodes are separately deployed.\n- `Tiny`: A management node and multiple compute nodes are deployed. The management node consists of an account node, a scheduling node, and a logon node. The compute nodes are separately deployed.\n"},"description":{"type":"string","description":"The description of the cluster. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length. It cannot start with `http://` or `https://`.\n"},"domain":{"type":"string","description":"The domain name of the on-premises cluster. This parameter takes effect only when the AccoutType parameter is set to Idap.\n"},"ecsChargeType":{"type":"string","description":"The billing method of the nodes.\n"},"ehpcVersion":{"type":"string","description":"The version of E-HPC. By default, the parameter is set to the latest version number.\n"},"haEnable":{"type":"boolean","description":"Specifies whether to enable the high availability feature. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.  **Note:** If high availability is enabled, a primary management node and a secondary management node are used.\n"},"imageId":{"type":"string","description":"The ID of the image.\n"},"imageOwnerAlias":{"type":"string","description":"The type of the image. Valid values: \u003cspan pulumi-lang-nodejs=\"`others`\" pulumi-lang-dotnet=\"`Others`\" pulumi-lang-go=\"`others`\" pulumi-lang-python=\"`others`\" pulumi-lang-yaml=\"`others`\" pulumi-lang-java=\"`others`\"\u003e`others`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`self`\" pulumi-lang-dotnet=\"`Self`\" pulumi-lang-go=\"`self`\" pulumi-lang-python=\"`self`\" pulumi-lang-yaml=\"`self`\" pulumi-lang-java=\"`self`\"\u003e`self`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`marketplace`\" pulumi-lang-dotnet=\"`Marketplace`\" pulumi-lang-go=\"`marketplace`\" pulumi-lang-python=\"`marketplace`\" pulumi-lang-yaml=\"`marketplace`\" pulumi-lang-java=\"`marketplace`\"\u003e`marketplace`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e.\n"},"inputFileUrl":{"type":"string","description":"The URL of the job files that are uploaded to an Object Storage Service (OSS) bucket.\n"},"isComputeEss":{"type":"boolean","description":"Specifies whether to enable auto scaling. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"jobQueue":{"type":"string","description":"The queue to which the compute nodes are added.\n"},"keyPairName":{"type":"string","description":"The name of the AccessKey pair.\n"},"loginCount":{"type":"integer","description":"The number of the logon nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"loginInstanceType":{"type":"string","description":"The instance type of the logon nodes.\n"},"managerCount":{"type":"integer","description":"The number of the management nodes. Valid values: 1 and 2.\n"},"managerInstanceType":{"type":"string","description":"The instance type of the management nodes.\n"},"osTag":{"type":"string","description":"The image tag of the operating system.\n"},"password":{"type":"string","description":"The root password of the logon node. The password must be 8 to 30 characters in length and contain at least three of the following items: uppercase letters, lowercase letters, digits, and special characters. The password can contain the following special characters: `( ) ~ ! @ # $ % ^ \u0026 * - + = { } [ ] : ; ‘ \u003c \u003e , . ? /`. You must specify either \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e. If both are specified, the Password parameter prevails.\n","secret":true},"period":{"type":"integer","description":"The duration of the subscription. The unit of the duration is specified by the \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e parameter. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n* If you set PriceUnit to Year, the valid values of the Period parameter are 1, 2, and 3.\n* If you set PriceUnit to Month, the valid values of the Period parameter are 1, 2, 3, 4, 5, 6, 7, 8, and 9.\n* If you set PriceUnit to Hour, the valid value of the Period parameter is 1.\n"},"periodUnit":{"type":"string","description":"The unit of the subscription duration. Valid values: `Year`, `Month`, `Hour`. Default value: `Month`.\n"},"plugin":{"type":"string","description":"The mode configurations of the plug-in. This parameter takes effect only when the SchedulerType parameter is set to custom. The value must be a JSON string. The parameter contains the following parameters: pluginMod, pluginLocalPath, and pluginOssPath.\n- pluginMod: the mode of the plug-in. The following modes are supported:\n- oss: The plug-in is downloaded and decompressed from OSS to a local path. The local path is specified by the pluginLocalPath parameter.\n- image: By default, the plug-in is stored in a pre-defined local path. The local path is specified by the pluginLocalPath parameter.\n- pluginLocalPath: the local path where the plug-in is stored. We recommend that you select a shared directory in oss mode and a non-shared directory in image mode.\n- pluginOssPath: the remote path where the plug-in is stored in OSS. This parameter takes effect only when the pluginMod parameter is set to oss.\n"},"postInstallScripts":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/ClusterPostInstallScript:ClusterPostInstallScript"},"description":"The post install script. See \u003cspan pulumi-lang-nodejs=\"`postInstallScript`\" pulumi-lang-dotnet=\"`PostInstallScript`\" pulumi-lang-go=\"`postInstallScript`\" pulumi-lang-python=\"`post_install_script`\" pulumi-lang-yaml=\"`postInstallScript`\" pulumi-lang-java=\"`postInstallScript`\"\u003e`post_install_script`\u003c/span\u003e below.\n"},"ramNodeTypes":{"type":"array","items":{"type":"string"},"description":"The node of the RAM role.\n"},"ramRoleName":{"type":"string","description":"The name of the Resource Access Management (RAM) role.\n"},"releaseInstance":{"type":"boolean","description":"The release instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"remoteDirectory":{"type":"string","description":"The remote directory to which the file system is mounted.\n"},"remoteVisEnable":{"type":"boolean","description":"Specifies whether to enable Virtual Network Computing (VNC). Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sccClusterId":{"type":"string","description":"The ID of the Super Computing Cluster (SCC) instance. If you specify the parameter, the SCC instance is moved to a new SCC cluster.\n"},"schedulerType":{"type":"string","description":"The type of the scheduler. Valid values: \u003cspan pulumi-lang-nodejs=\"`pbs`\" pulumi-lang-dotnet=\"`Pbs`\" pulumi-lang-go=\"`pbs`\" pulumi-lang-python=\"`pbs`\" pulumi-lang-yaml=\"`pbs`\" pulumi-lang-java=\"`pbs`\"\u003e`pbs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slurm`\" pulumi-lang-dotnet=\"`Slurm`\" pulumi-lang-go=\"`slurm`\" pulumi-lang-python=\"`slurm`\" pulumi-lang-yaml=\"`slurm`\" pulumi-lang-java=\"`slurm`\"\u003e`slurm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`opengridscheduler`\" pulumi-lang-dotnet=\"`Opengridscheduler`\" pulumi-lang-go=\"`opengridscheduler`\" pulumi-lang-python=\"`opengridscheduler`\" pulumi-lang-yaml=\"`opengridscheduler`\" pulumi-lang-java=\"`opengridscheduler`\"\u003e`opengridscheduler`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`deadline`\" pulumi-lang-dotnet=\"`Deadline`\" pulumi-lang-go=\"`deadline`\" pulumi-lang-python=\"`deadline`\" pulumi-lang-yaml=\"`deadline`\" pulumi-lang-java=\"`deadline`\"\u003e`deadline`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`pbs`\" pulumi-lang-dotnet=\"`Pbs`\" pulumi-lang-go=\"`pbs`\" pulumi-lang-python=\"`pbs`\" pulumi-lang-yaml=\"`pbs`\" pulumi-lang-java=\"`pbs`\"\u003e`pbs`\u003c/span\u003e.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group to which the cluster belongs.\n"},"securityGroupName":{"type":"string","description":"If you do not use an existing security group, set the parameter to the name of a new security group. A default policy is applied to the new security group.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"systemDiskLevel":{"type":"string","description":"The performance level of the ESSD that is used as the system disk. Default value: `PL1` For more information, see [ESSDs](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/essds). Valid values:\n* `PL0`: A single ESSD can deliver up to 10,000 random read/write IOPS.\n* `PL1`: A single ESSD can deliver up to 50,000 random read/write IOPS.\n* `PL2`: A single ESSD can deliver up to 100,000 random read/write IOPS.\n* `PL3`: A single ESSD can deliver up to 1,000,000 random read/write IOPS.\n"},"systemDiskSize":{"type":"integer","description":"The size of the system disk. Unit: `GB`. Valid values: \u003cspan pulumi-lang-nodejs=\"`40`\" pulumi-lang-dotnet=\"`40`\" pulumi-lang-go=\"`40`\" pulumi-lang-python=\"`40`\" pulumi-lang-yaml=\"`40`\" pulumi-lang-java=\"`40`\"\u003e`40`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`40`\" pulumi-lang-dotnet=\"`40`\" pulumi-lang-go=\"`40`\" pulumi-lang-python=\"`40`\" pulumi-lang-yaml=\"`40`\" pulumi-lang-java=\"`40`\"\u003e`40`\u003c/span\u003e.\n"},"systemDiskType":{"type":"string","description":"The type of the system disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e.\n"},"volumeId":{"type":"string","description":"The ID of the file system. If you leave the parameter empty, a Performance NAS file system is created by default.\n"},"volumeMountOption":{"type":"string","description":"The mount options of the file system.\n"},"volumeMountpoint":{"type":"string","description":"The mount target of the file system. Take note of the following information:\n- If you do not specify the VolumeId parameter, you can leave the VolumeMountpoint parameter empty. A mount target is created by default.\n- If you specify the VolumeId parameter, the VolumeMountpoint parameter is required.\n"},"volumeProtocol":{"type":"string","description":"The type of the protocol that is used by the file system. Valid values: `NFS`, `SMB`. Default value: `NFS`.\n"},"volumeType":{"type":"string","description":"The type of the shared storage. Only Apsara File Storage NAS file systems are supported.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) to which the cluster belongs.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch. E-HPC supports only VPC networks.\n"},"withoutAgent":{"type":"boolean","description":"Specifies whether not to install the agent. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"withoutElasticIp":{"type":"boolean","description":"Specifies whether the logon node uses an elastic IP address (EIP). Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"zoneId":{"type":"string","description":"The ID of the zone.\n"}},"required":["accountType","applications","clientVersion","clusterName","clusterVersion","computeCount","computeInstanceType","deployMode","description","ecsChargeType","ehpcVersion","haEnable","imageId","imageOwnerAlias","loginCount","loginInstanceType","managerCount","managerInstanceType","osTag","remoteDirectory","sccClusterId","schedulerType","securityGroupId","status","volumeId","volumeMountpoint","volumeProtocol","volumeType","vpcId","vswitchId","zoneId"],"inputProperties":{"accountType":{"type":"string","description":"The type of the domain account service. Valid values: \u003cspan pulumi-lang-nodejs=\"`nis`\" pulumi-lang-dotnet=\"`Nis`\" pulumi-lang-go=\"`nis`\" pulumi-lang-python=\"`nis`\" pulumi-lang-yaml=\"`nis`\" pulumi-lang-java=\"`nis`\"\u003e`nis`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ldap`\" pulumi-lang-dotnet=\"`Ldap`\" pulumi-lang-go=\"`ldap`\" pulumi-lang-python=\"`ldap`\" pulumi-lang-yaml=\"`ldap`\" pulumi-lang-java=\"`ldap`\"\u003e`ldap`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`nis`\" pulumi-lang-dotnet=\"`Nis`\" pulumi-lang-go=\"`nis`\" pulumi-lang-python=\"`nis`\" pulumi-lang-yaml=\"`nis`\" pulumi-lang-java=\"`nis`\"\u003e`nis`\u003c/span\u003e\n","willReplaceOnChanges":true},"additionalVolumes":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/ClusterAdditionalVolume:ClusterAdditionalVolume"},"description":"The additional volumes. See \u003cspan pulumi-lang-nodejs=\"`additionalVolumes`\" pulumi-lang-dotnet=\"`AdditionalVolumes`\" pulumi-lang-go=\"`additionalVolumes`\" pulumi-lang-python=\"`additional_volumes`\" pulumi-lang-yaml=\"`additionalVolumes`\" pulumi-lang-java=\"`additionalVolumes`\"\u003e`additional_volumes`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"applications":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/ClusterApplication:ClusterApplication"},"description":"The application. See \u003cspan pulumi-lang-nodejs=\"`application`\" pulumi-lang-dotnet=\"`Application`\" pulumi-lang-go=\"`application`\" pulumi-lang-python=\"`application`\" pulumi-lang-yaml=\"`application`\" pulumi-lang-java=\"`application`\"\u003e`application`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"autoRenew":{"type":"boolean","description":"Specifies whether to enable auto-renewal for the subscription. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"The auto-renewal period of the subscription compute nodes. The parameter takes effect when AutoRenew is set to true.\n"},"clientVersion":{"type":"string","description":"The version of the E-HPC client. By default, the parameter is set to the latest version number.\n","willReplaceOnChanges":true},"clusterName":{"type":"string","description":"The name of the cluster. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters in length.\n"},"clusterVersion":{"type":"string","description":"The version of the cluster. Default value: `1.0`.\n"},"computeCount":{"type":"integer","description":"The number of the compute nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`99`\" pulumi-lang-dotnet=\"`99`\" pulumi-lang-go=\"`99`\" pulumi-lang-python=\"`99`\" pulumi-lang-yaml=\"`99`\" pulumi-lang-java=\"`99`\"\u003e`99`\u003c/span\u003e.\n","willReplaceOnChanges":true},"computeEnableHt":{"type":"boolean","description":"Specifies whether the compute nodes support hyper-threading. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"computeInstanceType":{"type":"string","description":"The instance type of the compute nodes.\n","willReplaceOnChanges":true},"computeSpotPriceLimit":{"type":"string","description":"The maximum hourly price of the compute nodes. A maximum of three decimal places can be used in the value of the parameter. The parameter is valid only when the ComputeSpotStrategy parameter is set to SpotWithPriceLimit.\n"},"computeSpotStrategy":{"type":"string","description":"The bidding method of the compute nodes. Default value: `NoSpot`. Valid values:\n- `NoSpot`: The compute nodes are pay-as-you-go instances.\n- `SpotWithPriceLimit`: The compute nodes are preemptible instances that have a user-defined maximum hourly price.\n- `SpotAsPriceGo`: The compute nodes are preemptible instances for which the market price at the time of purchase is used as the bid price.\n"},"deployMode":{"type":"string","description":"The mode in which the cluster is deployed. Valid values: `Standard`, `Simple`, `Tiny`. Default value: Standard.\n- `Standard`: An account node, a scheduling node, a logon node, and multiple compute nodes are separately deployed.\n- `Simple`: A management node, a logon node, and multiple compute nodes are deployed. The management node consists of an account node and a scheduling node. The logon node and compute nodes are separately deployed.\n- `Tiny`: A management node and multiple compute nodes are deployed. The management node consists of an account node, a scheduling node, and a logon node. The compute nodes are separately deployed.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the cluster. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length. It cannot start with `http://` or `https://`.\n"},"domain":{"type":"string","description":"The domain name of the on-premises cluster. This parameter takes effect only when the AccoutType parameter is set to Idap.\n"},"ecsChargeType":{"type":"string","description":"The billing method of the nodes.\n","willReplaceOnChanges":true},"ehpcVersion":{"type":"string","description":"The version of E-HPC. By default, the parameter is set to the latest version number.\n"},"haEnable":{"type":"boolean","description":"Specifies whether to enable the high availability feature. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.  **Note:** If high availability is enabled, a primary management node and a secondary management node are used.\n","willReplaceOnChanges":true},"imageId":{"type":"string","description":"The ID of the image.\n"},"imageOwnerAlias":{"type":"string","description":"The type of the image. Valid values: \u003cspan pulumi-lang-nodejs=\"`others`\" pulumi-lang-dotnet=\"`Others`\" pulumi-lang-go=\"`others`\" pulumi-lang-python=\"`others`\" pulumi-lang-yaml=\"`others`\" pulumi-lang-java=\"`others`\"\u003e`others`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`self`\" pulumi-lang-dotnet=\"`Self`\" pulumi-lang-go=\"`self`\" pulumi-lang-python=\"`self`\" pulumi-lang-yaml=\"`self`\" pulumi-lang-java=\"`self`\"\u003e`self`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`marketplace`\" pulumi-lang-dotnet=\"`Marketplace`\" pulumi-lang-go=\"`marketplace`\" pulumi-lang-python=\"`marketplace`\" pulumi-lang-yaml=\"`marketplace`\" pulumi-lang-java=\"`marketplace`\"\u003e`marketplace`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e.\n"},"inputFileUrl":{"type":"string","description":"The URL of the job files that are uploaded to an Object Storage Service (OSS) bucket.\n"},"isComputeEss":{"type":"boolean","description":"Specifies whether to enable auto scaling. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"jobQueue":{"type":"string","description":"The queue to which the compute nodes are added.\n"},"keyPairName":{"type":"string","description":"The name of the AccessKey pair.\n","willReplaceOnChanges":true},"loginCount":{"type":"integer","description":"The number of the logon nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n","willReplaceOnChanges":true},"loginInstanceType":{"type":"string","description":"The instance type of the logon nodes.\n","willReplaceOnChanges":true},"managerCount":{"type":"integer","description":"The number of the management nodes. Valid values: 1 and 2.\n","willReplaceOnChanges":true},"managerInstanceType":{"type":"string","description":"The instance type of the management nodes.\n","willReplaceOnChanges":true},"osTag":{"type":"string","description":"The image tag of the operating system.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The root password of the logon node. The password must be 8 to 30 characters in length and contain at least three of the following items: uppercase letters, lowercase letters, digits, and special characters. The password can contain the following special characters: `( ) ~ ! @ # $ % ^ \u0026 * - + = { } [ ] : ; ‘ \u003c \u003e , . ? /`. You must specify either \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e. If both are specified, the Password parameter prevails.\n","secret":true,"willReplaceOnChanges":true},"period":{"type":"integer","description":"The duration of the subscription. The unit of the duration is specified by the \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e parameter. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n* If you set PriceUnit to Year, the valid values of the Period parameter are 1, 2, and 3.\n* If you set PriceUnit to Month, the valid values of the Period parameter are 1, 2, 3, 4, 5, 6, 7, 8, and 9.\n* If you set PriceUnit to Hour, the valid value of the Period parameter is 1.\n"},"periodUnit":{"type":"string","description":"The unit of the subscription duration. Valid values: `Year`, `Month`, `Hour`. Default value: `Month`.\n"},"plugin":{"type":"string","description":"The mode configurations of the plug-in. This parameter takes effect only when the SchedulerType parameter is set to custom. The value must be a JSON string. The parameter contains the following parameters: pluginMod, pluginLocalPath, and pluginOssPath.\n- pluginMod: the mode of the plug-in. The following modes are supported:\n- oss: The plug-in is downloaded and decompressed from OSS to a local path. The local path is specified by the pluginLocalPath parameter.\n- image: By default, the plug-in is stored in a pre-defined local path. The local path is specified by the pluginLocalPath parameter.\n- pluginLocalPath: the local path where the plug-in is stored. We recommend that you select a shared directory in oss mode and a non-shared directory in image mode.\n- pluginOssPath: the remote path where the plug-in is stored in OSS. This parameter takes effect only when the pluginMod parameter is set to oss.\n"},"postInstallScripts":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/ClusterPostInstallScript:ClusterPostInstallScript"},"description":"The post install script. See \u003cspan pulumi-lang-nodejs=\"`postInstallScript`\" pulumi-lang-dotnet=\"`PostInstallScript`\" pulumi-lang-go=\"`postInstallScript`\" pulumi-lang-python=\"`post_install_script`\" pulumi-lang-yaml=\"`postInstallScript`\" pulumi-lang-java=\"`postInstallScript`\"\u003e`post_install_script`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"ramNodeTypes":{"type":"array","items":{"type":"string"},"description":"The node of the RAM role.\n"},"ramRoleName":{"type":"string","description":"The name of the Resource Access Management (RAM) role.\n"},"releaseInstance":{"type":"boolean","description":"The release instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"remoteDirectory":{"type":"string","description":"The remote directory to which the file system is mounted.\n","willReplaceOnChanges":true},"remoteVisEnable":{"type":"boolean","description":"Specifies whether to enable Virtual Network Computing (VNC). Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sccClusterId":{"type":"string","description":"The ID of the Super Computing Cluster (SCC) instance. If you specify the parameter, the SCC instance is moved to a new SCC cluster.\n","willReplaceOnChanges":true},"schedulerType":{"type":"string","description":"The type of the scheduler. Valid values: \u003cspan pulumi-lang-nodejs=\"`pbs`\" pulumi-lang-dotnet=\"`Pbs`\" pulumi-lang-go=\"`pbs`\" pulumi-lang-python=\"`pbs`\" pulumi-lang-yaml=\"`pbs`\" pulumi-lang-java=\"`pbs`\"\u003e`pbs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slurm`\" pulumi-lang-dotnet=\"`Slurm`\" pulumi-lang-go=\"`slurm`\" pulumi-lang-python=\"`slurm`\" pulumi-lang-yaml=\"`slurm`\" pulumi-lang-java=\"`slurm`\"\u003e`slurm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`opengridscheduler`\" pulumi-lang-dotnet=\"`Opengridscheduler`\" pulumi-lang-go=\"`opengridscheduler`\" pulumi-lang-python=\"`opengridscheduler`\" pulumi-lang-yaml=\"`opengridscheduler`\" pulumi-lang-java=\"`opengridscheduler`\"\u003e`opengridscheduler`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`deadline`\" pulumi-lang-dotnet=\"`Deadline`\" pulumi-lang-go=\"`deadline`\" pulumi-lang-python=\"`deadline`\" pulumi-lang-yaml=\"`deadline`\" pulumi-lang-java=\"`deadline`\"\u003e`deadline`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`pbs`\" pulumi-lang-dotnet=\"`Pbs`\" pulumi-lang-go=\"`pbs`\" pulumi-lang-python=\"`pbs`\" pulumi-lang-yaml=\"`pbs`\" pulumi-lang-java=\"`pbs`\"\u003e`pbs`\u003c/span\u003e.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group to which the cluster belongs.\n","willReplaceOnChanges":true},"securityGroupName":{"type":"string","description":"If you do not use an existing security group, set the parameter to the name of a new security group. A default policy is applied to the new security group.\n"},"systemDiskLevel":{"type":"string","description":"The performance level of the ESSD that is used as the system disk. Default value: `PL1` For more information, see [ESSDs](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/essds). Valid values:\n* `PL0`: A single ESSD can deliver up to 10,000 random read/write IOPS.\n* `PL1`: A single ESSD can deliver up to 50,000 random read/write IOPS.\n* `PL2`: A single ESSD can deliver up to 100,000 random read/write IOPS.\n* `PL3`: A single ESSD can deliver up to 1,000,000 random read/write IOPS.\n"},"systemDiskSize":{"type":"integer","description":"The size of the system disk. Unit: `GB`. Valid values: \u003cspan pulumi-lang-nodejs=\"`40`\" pulumi-lang-dotnet=\"`40`\" pulumi-lang-go=\"`40`\" pulumi-lang-python=\"`40`\" pulumi-lang-yaml=\"`40`\" pulumi-lang-java=\"`40`\"\u003e`40`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`40`\" pulumi-lang-dotnet=\"`40`\" pulumi-lang-go=\"`40`\" pulumi-lang-python=\"`40`\" pulumi-lang-yaml=\"`40`\" pulumi-lang-java=\"`40`\"\u003e`40`\u003c/span\u003e.\n"},"systemDiskType":{"type":"string","description":"The type of the system disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e.\n"},"volumeId":{"type":"string","description":"The ID of the file system. If you leave the parameter empty, a Performance NAS file system is created by default.\n","willReplaceOnChanges":true},"volumeMountOption":{"type":"string","description":"The mount options of the file system.\n"},"volumeMountpoint":{"type":"string","description":"The mount target of the file system. Take note of the following information:\n- If you do not specify the VolumeId parameter, you can leave the VolumeMountpoint parameter empty. A mount target is created by default.\n- If you specify the VolumeId parameter, the VolumeMountpoint parameter is required.\n","willReplaceOnChanges":true},"volumeProtocol":{"type":"string","description":"The type of the protocol that is used by the file system. Valid values: `NFS`, `SMB`. Default value: `NFS`.\n","willReplaceOnChanges":true},"volumeType":{"type":"string","description":"The type of the shared storage. Only Apsara File Storage NAS file systems are supported.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) to which the cluster belongs.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch. E-HPC supports only VPC networks.\n","willReplaceOnChanges":true},"withoutAgent":{"type":"boolean","description":"Specifies whether not to install the agent. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"withoutElasticIp":{"type":"boolean","description":"Specifies whether the logon node uses an elastic IP address (EIP). Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"zoneId":{"type":"string","description":"The ID of the zone.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterName","computeCount","computeInstanceType","loginCount","loginInstanceType","managerInstanceType","osTag"],"stateInputs":{"description":"Input properties used for looking up and filtering Cluster resources.\n","properties":{"accountType":{"type":"string","description":"The type of the domain account service. Valid values: \u003cspan pulumi-lang-nodejs=\"`nis`\" pulumi-lang-dotnet=\"`Nis`\" pulumi-lang-go=\"`nis`\" pulumi-lang-python=\"`nis`\" pulumi-lang-yaml=\"`nis`\" pulumi-lang-java=\"`nis`\"\u003e`nis`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ldap`\" pulumi-lang-dotnet=\"`Ldap`\" pulumi-lang-go=\"`ldap`\" pulumi-lang-python=\"`ldap`\" pulumi-lang-yaml=\"`ldap`\" pulumi-lang-java=\"`ldap`\"\u003e`ldap`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`nis`\" pulumi-lang-dotnet=\"`Nis`\" pulumi-lang-go=\"`nis`\" pulumi-lang-python=\"`nis`\" pulumi-lang-yaml=\"`nis`\" pulumi-lang-java=\"`nis`\"\u003e`nis`\u003c/span\u003e\n","willReplaceOnChanges":true},"additionalVolumes":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/ClusterAdditionalVolume:ClusterAdditionalVolume"},"description":"The additional volumes. See \u003cspan pulumi-lang-nodejs=\"`additionalVolumes`\" pulumi-lang-dotnet=\"`AdditionalVolumes`\" pulumi-lang-go=\"`additionalVolumes`\" pulumi-lang-python=\"`additional_volumes`\" pulumi-lang-yaml=\"`additionalVolumes`\" pulumi-lang-java=\"`additionalVolumes`\"\u003e`additional_volumes`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"applications":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/ClusterApplication:ClusterApplication"},"description":"The application. See \u003cspan pulumi-lang-nodejs=\"`application`\" pulumi-lang-dotnet=\"`Application`\" pulumi-lang-go=\"`application`\" pulumi-lang-python=\"`application`\" pulumi-lang-yaml=\"`application`\" pulumi-lang-java=\"`application`\"\u003e`application`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"autoRenew":{"type":"boolean","description":"Specifies whether to enable auto-renewal for the subscription. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"The auto-renewal period of the subscription compute nodes. The parameter takes effect when AutoRenew is set to true.\n"},"clientVersion":{"type":"string","description":"The version of the E-HPC client. By default, the parameter is set to the latest version number.\n","willReplaceOnChanges":true},"clusterName":{"type":"string","description":"The name of the cluster. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e characters in length.\n"},"clusterVersion":{"type":"string","description":"The version of the cluster. Default value: `1.0`.\n"},"computeCount":{"type":"integer","description":"The number of the compute nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`99`\" pulumi-lang-dotnet=\"`99`\" pulumi-lang-go=\"`99`\" pulumi-lang-python=\"`99`\" pulumi-lang-yaml=\"`99`\" pulumi-lang-java=\"`99`\"\u003e`99`\u003c/span\u003e.\n","willReplaceOnChanges":true},"computeEnableHt":{"type":"boolean","description":"Specifies whether the compute nodes support hyper-threading. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"computeInstanceType":{"type":"string","description":"The instance type of the compute nodes.\n","willReplaceOnChanges":true},"computeSpotPriceLimit":{"type":"string","description":"The maximum hourly price of the compute nodes. A maximum of three decimal places can be used in the value of the parameter. The parameter is valid only when the ComputeSpotStrategy parameter is set to SpotWithPriceLimit.\n"},"computeSpotStrategy":{"type":"string","description":"The bidding method of the compute nodes. Default value: `NoSpot`. Valid values:\n- `NoSpot`: The compute nodes are pay-as-you-go instances.\n- `SpotWithPriceLimit`: The compute nodes are preemptible instances that have a user-defined maximum hourly price.\n- `SpotAsPriceGo`: The compute nodes are preemptible instances for which the market price at the time of purchase is used as the bid price.\n"},"deployMode":{"type":"string","description":"The mode in which the cluster is deployed. Valid values: `Standard`, `Simple`, `Tiny`. Default value: Standard.\n- `Standard`: An account node, a scheduling node, a logon node, and multiple compute nodes are separately deployed.\n- `Simple`: A management node, a logon node, and multiple compute nodes are deployed. The management node consists of an account node and a scheduling node. The logon node and compute nodes are separately deployed.\n- `Tiny`: A management node and multiple compute nodes are deployed. The management node consists of an account node, a scheduling node, and a logon node. The compute nodes are separately deployed.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the cluster. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length. It cannot start with `http://` or `https://`.\n"},"domain":{"type":"string","description":"The domain name of the on-premises cluster. This parameter takes effect only when the AccoutType parameter is set to Idap.\n"},"ecsChargeType":{"type":"string","description":"The billing method of the nodes.\n","willReplaceOnChanges":true},"ehpcVersion":{"type":"string","description":"The version of E-HPC. By default, the parameter is set to the latest version number.\n"},"haEnable":{"type":"boolean","description":"Specifies whether to enable the high availability feature. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.  **Note:** If high availability is enabled, a primary management node and a secondary management node are used.\n","willReplaceOnChanges":true},"imageId":{"type":"string","description":"The ID of the image.\n"},"imageOwnerAlias":{"type":"string","description":"The type of the image. Valid values: \u003cspan pulumi-lang-nodejs=\"`others`\" pulumi-lang-dotnet=\"`Others`\" pulumi-lang-go=\"`others`\" pulumi-lang-python=\"`others`\" pulumi-lang-yaml=\"`others`\" pulumi-lang-java=\"`others`\"\u003e`others`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`self`\" pulumi-lang-dotnet=\"`Self`\" pulumi-lang-go=\"`self`\" pulumi-lang-python=\"`self`\" pulumi-lang-yaml=\"`self`\" pulumi-lang-java=\"`self`\"\u003e`self`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`marketplace`\" pulumi-lang-dotnet=\"`Marketplace`\" pulumi-lang-go=\"`marketplace`\" pulumi-lang-python=\"`marketplace`\" pulumi-lang-yaml=\"`marketplace`\" pulumi-lang-java=\"`marketplace`\"\u003e`marketplace`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e.\n"},"inputFileUrl":{"type":"string","description":"The URL of the job files that are uploaded to an Object Storage Service (OSS) bucket.\n"},"isComputeEss":{"type":"boolean","description":"Specifies whether to enable auto scaling. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"jobQueue":{"type":"string","description":"The queue to which the compute nodes are added.\n"},"keyPairName":{"type":"string","description":"The name of the AccessKey pair.\n","willReplaceOnChanges":true},"loginCount":{"type":"integer","description":"The number of the logon nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n","willReplaceOnChanges":true},"loginInstanceType":{"type":"string","description":"The instance type of the logon nodes.\n","willReplaceOnChanges":true},"managerCount":{"type":"integer","description":"The number of the management nodes. Valid values: 1 and 2.\n","willReplaceOnChanges":true},"managerInstanceType":{"type":"string","description":"The instance type of the management nodes.\n","willReplaceOnChanges":true},"osTag":{"type":"string","description":"The image tag of the operating system.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The root password of the logon node. The password must be 8 to 30 characters in length and contain at least three of the following items: uppercase letters, lowercase letters, digits, and special characters. The password can contain the following special characters: `( ) ~ ! @ # $ % ^ \u0026 * - + = { } [ ] : ; ‘ \u003c \u003e , . ? /`. You must specify either \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`keyPairName`\" pulumi-lang-dotnet=\"`KeyPairName`\" pulumi-lang-go=\"`keyPairName`\" pulumi-lang-python=\"`key_pair_name`\" pulumi-lang-yaml=\"`keyPairName`\" pulumi-lang-java=\"`keyPairName`\"\u003e`key_pair_name`\u003c/span\u003e. If both are specified, the Password parameter prevails.\n","secret":true,"willReplaceOnChanges":true},"period":{"type":"integer","description":"The duration of the subscription. The unit of the duration is specified by the \u003cspan pulumi-lang-nodejs=\"`periodUnit`\" pulumi-lang-dotnet=\"`PeriodUnit`\" pulumi-lang-go=\"`periodUnit`\" pulumi-lang-python=\"`period_unit`\" pulumi-lang-yaml=\"`periodUnit`\" pulumi-lang-java=\"`periodUnit`\"\u003e`period_unit`\u003c/span\u003e parameter. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n* If you set PriceUnit to Year, the valid values of the Period parameter are 1, 2, and 3.\n* If you set PriceUnit to Month, the valid values of the Period parameter are 1, 2, 3, 4, 5, 6, 7, 8, and 9.\n* If you set PriceUnit to Hour, the valid value of the Period parameter is 1.\n"},"periodUnit":{"type":"string","description":"The unit of the subscription duration. Valid values: `Year`, `Month`, `Hour`. Default value: `Month`.\n"},"plugin":{"type":"string","description":"The mode configurations of the plug-in. This parameter takes effect only when the SchedulerType parameter is set to custom. The value must be a JSON string. The parameter contains the following parameters: pluginMod, pluginLocalPath, and pluginOssPath.\n- pluginMod: the mode of the plug-in. The following modes are supported:\n- oss: The plug-in is downloaded and decompressed from OSS to a local path. The local path is specified by the pluginLocalPath parameter.\n- image: By default, the plug-in is stored in a pre-defined local path. The local path is specified by the pluginLocalPath parameter.\n- pluginLocalPath: the local path where the plug-in is stored. We recommend that you select a shared directory in oss mode and a non-shared directory in image mode.\n- pluginOssPath: the remote path where the plug-in is stored in OSS. This parameter takes effect only when the pluginMod parameter is set to oss.\n"},"postInstallScripts":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/ClusterPostInstallScript:ClusterPostInstallScript"},"description":"The post install script. See \u003cspan pulumi-lang-nodejs=\"`postInstallScript`\" pulumi-lang-dotnet=\"`PostInstallScript`\" pulumi-lang-go=\"`postInstallScript`\" pulumi-lang-python=\"`post_install_script`\" pulumi-lang-yaml=\"`postInstallScript`\" pulumi-lang-java=\"`postInstallScript`\"\u003e`post_install_script`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"ramNodeTypes":{"type":"array","items":{"type":"string"},"description":"The node of the RAM role.\n"},"ramRoleName":{"type":"string","description":"The name of the Resource Access Management (RAM) role.\n"},"releaseInstance":{"type":"boolean","description":"The release instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"remoteDirectory":{"type":"string","description":"The remote directory to which the file system is mounted.\n","willReplaceOnChanges":true},"remoteVisEnable":{"type":"boolean","description":"Specifies whether to enable Virtual Network Computing (VNC). Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sccClusterId":{"type":"string","description":"The ID of the Super Computing Cluster (SCC) instance. If you specify the parameter, the SCC instance is moved to a new SCC cluster.\n","willReplaceOnChanges":true},"schedulerType":{"type":"string","description":"The type of the scheduler. Valid values: \u003cspan pulumi-lang-nodejs=\"`pbs`\" pulumi-lang-dotnet=\"`Pbs`\" pulumi-lang-go=\"`pbs`\" pulumi-lang-python=\"`pbs`\" pulumi-lang-yaml=\"`pbs`\" pulumi-lang-java=\"`pbs`\"\u003e`pbs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slurm`\" pulumi-lang-dotnet=\"`Slurm`\" pulumi-lang-go=\"`slurm`\" pulumi-lang-python=\"`slurm`\" pulumi-lang-yaml=\"`slurm`\" pulumi-lang-java=\"`slurm`\"\u003e`slurm`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`opengridscheduler`\" pulumi-lang-dotnet=\"`Opengridscheduler`\" pulumi-lang-go=\"`opengridscheduler`\" pulumi-lang-python=\"`opengridscheduler`\" pulumi-lang-yaml=\"`opengridscheduler`\" pulumi-lang-java=\"`opengridscheduler`\"\u003e`opengridscheduler`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`deadline`\" pulumi-lang-dotnet=\"`Deadline`\" pulumi-lang-go=\"`deadline`\" pulumi-lang-python=\"`deadline`\" pulumi-lang-yaml=\"`deadline`\" pulumi-lang-java=\"`deadline`\"\u003e`deadline`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`pbs`\" pulumi-lang-dotnet=\"`Pbs`\" pulumi-lang-go=\"`pbs`\" pulumi-lang-python=\"`pbs`\" pulumi-lang-yaml=\"`pbs`\" pulumi-lang-java=\"`pbs`\"\u003e`pbs`\u003c/span\u003e.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group to which the cluster belongs.\n","willReplaceOnChanges":true},"securityGroupName":{"type":"string","description":"If you do not use an existing security group, set the parameter to the name of a new security group. A default policy is applied to the new security group.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"systemDiskLevel":{"type":"string","description":"The performance level of the ESSD that is used as the system disk. Default value: `PL1` For more information, see [ESSDs](https://www.alibabacloud.com/help/en/elastic-compute-service/latest/essds). Valid values:\n* `PL0`: A single ESSD can deliver up to 10,000 random read/write IOPS.\n* `PL1`: A single ESSD can deliver up to 50,000 random read/write IOPS.\n* `PL2`: A single ESSD can deliver up to 100,000 random read/write IOPS.\n* `PL3`: A single ESSD can deliver up to 1,000,000 random read/write IOPS.\n"},"systemDiskSize":{"type":"integer","description":"The size of the system disk. Unit: `GB`. Valid values: \u003cspan pulumi-lang-nodejs=\"`40`\" pulumi-lang-dotnet=\"`40`\" pulumi-lang-go=\"`40`\" pulumi-lang-python=\"`40`\" pulumi-lang-yaml=\"`40`\" pulumi-lang-java=\"`40`\"\u003e`40`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`40`\" pulumi-lang-dotnet=\"`40`\" pulumi-lang-go=\"`40`\" pulumi-lang-python=\"`40`\" pulumi-lang-yaml=\"`40`\" pulumi-lang-java=\"`40`\"\u003e`40`\u003c/span\u003e.\n"},"systemDiskType":{"type":"string","description":"The type of the system disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e.\n"},"volumeId":{"type":"string","description":"The ID of the file system. If you leave the parameter empty, a Performance NAS file system is created by default.\n","willReplaceOnChanges":true},"volumeMountOption":{"type":"string","description":"The mount options of the file system.\n"},"volumeMountpoint":{"type":"string","description":"The mount target of the file system. Take note of the following information:\n- If you do not specify the VolumeId parameter, you can leave the VolumeMountpoint parameter empty. A mount target is created by default.\n- If you specify the VolumeId parameter, the VolumeMountpoint parameter is required.\n","willReplaceOnChanges":true},"volumeProtocol":{"type":"string","description":"The type of the protocol that is used by the file system. Valid values: `NFS`, `SMB`. Default value: `NFS`.\n","willReplaceOnChanges":true},"volumeType":{"type":"string","description":"The type of the shared storage. Only Apsara File Storage NAS file systems are supported.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) to which the cluster belongs.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch. E-HPC supports only VPC networks.\n","willReplaceOnChanges":true},"withoutAgent":{"type":"boolean","description":"Specifies whether not to install the agent. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"withoutElasticIp":{"type":"boolean","description":"Specifies whether the logon node uses an elastic IP address (EIP). Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"zoneId":{"type":"string","description":"The ID of the zone.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ehpc/clusterV2:ClusterV2":{"description":"Provides a Ehpc Cluster V2 resource.\n\nE-HPC Cluster Resources.\n\nFor information about Ehpc Cluster V2 and how to use it, see [What is Cluster V2](https://next.api.alibabacloud.com/document/EHPC/2024-07-30/CreateCluster).\n\n\u003e **NOTE:** Available since v1.266.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = new alicloud.vpc.Network(\"example\", {\n    isDefault: false,\n    cidrBlock: \"10.0.0.0/24\",\n    vpcName: \"example-cluster-vpc\",\n});\nconst exampleAccessGroup = new alicloud.nas.AccessGroup(\"example\", {\n    accessGroupType: \"Vpc\",\n    description: name,\n    accessGroupName: \"StandardMountTarget\",\n    fileSystemType: \"standard\",\n});\nconst exampleFileSystem = new alicloud.nas.FileSystem(\"example\", {\n    description: \"example-cluster-nas\",\n    storageType: \"Capacity\",\n    nfsAcl: {\n        enabled: false,\n    },\n    zoneId: \"cn-hangzhou-k\",\n    encryptType: 0,\n    protocolType: \"NFS\",\n    fileSystemType: \"standard\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    isDefault: false,\n    vpcId: example.id,\n    zoneId: \"cn-hangzhou-k\",\n    cidrBlock: \"10.0.0.0/24\",\n    vswitchName: \"example-cluster-vsw\",\n});\nconst exampleAccessRule = new alicloud.nas.AccessRule(\"example\", {\n    priority: 1,\n    accessGroupName: exampleAccessGroup.accessGroupName,\n    fileSystemType: exampleFileSystem.fileSystemType,\n    sourceCidrIp: \"10.0.0.0/24\",\n});\nconst exampleEcsKeyPair = new alicloud.ecs.EcsKeyPair(\"example\", {keyPairName: name});\nconst exampleMountTarget = new alicloud.nas.MountTarget(\"example\", {\n    vpcId: example.id,\n    networkType: \"Vpc\",\n    accessGroupName: exampleAccessGroup.accessGroupName,\n    vswitchId: exampleSwitch.id,\n    fileSystemId: exampleFileSystem.id,\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    vpcId: example.id,\n    securityGroupType: \"normal\",\n});\nconst _default = new alicloud.ehpc.ClusterV2(\"default\", {\n    clusterCredentials: {\n        keyPairName: exampleEcsKeyPair.id,\n    },\n    clusterMode: \"Integrated\",\n    clusterVpcId: example.id,\n    deletionProtection: true,\n    sharedStorages: [\n        {\n            mountDirectory: \"/home\",\n            nasDirectory: \"/\",\n            mountTargetDomain: exampleMountTarget.mountTargetDomain,\n            protocolType: \"NFS\",\n            fileSystemId: exampleFileSystem.id,\n            mountOptions: \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n        },\n        {\n            nasDirectory: \"/\",\n            mountTargetDomain: exampleMountTarget.mountTargetDomain,\n            protocolType: \"NFS\",\n            fileSystemId: exampleFileSystem.id,\n            mountOptions: \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n            mountDirectory: \"/opt\",\n        },\n        {\n            mountOptions: \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n            mountDirectory: \"/ehpcdata\",\n            nasDirectory: \"/\",\n            mountTargetDomain: exampleMountTarget.mountTargetDomain,\n            protocolType: \"NFS\",\n            fileSystemId: exampleFileSystem.id,\n        },\n    ],\n    clusterVswitchId: exampleSwitch.id,\n    clusterCategory: \"Standard\",\n    securityGroupId: exampleSecurityGroup.id,\n    clusterName: name,\n    manager: {\n        managerNode: {\n            spotStrategy: \"NoSpot\",\n            systemDisk: {\n                category: \"cloud_essd\",\n                size: 40,\n                level: \"PL0\",\n            },\n            enableHt: true,\n            instanceChargeType: \"PostPaid\",\n            imageId: \"centos_7_6_x64_20G_alibase_20211130.vhd\",\n            instanceType: \"ecs.c6.xlarge\",\n        },\n        scheduler: {\n            type: \"SLURM\",\n            version: \"22.05.8\",\n        },\n        dns: {\n            type: \"nis\",\n            version: \"1.0\",\n        },\n        directoryService: {\n            type: \"nis\",\n            version: \"1.0\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.vpc.Network(\"example\",\n    is_default=False,\n    cidr_block=\"10.0.0.0/24\",\n    vpc_name=\"example-cluster-vpc\")\nexample_access_group = alicloud.nas.AccessGroup(\"example\",\n    access_group_type=\"Vpc\",\n    description=name,\n    access_group_name=\"StandardMountTarget\",\n    file_system_type=\"standard\")\nexample_file_system = alicloud.nas.FileSystem(\"example\",\n    description=\"example-cluster-nas\",\n    storage_type=\"Capacity\",\n    nfs_acl={\n        \"enabled\": False,\n    },\n    zone_id=\"cn-hangzhou-k\",\n    encrypt_type=0,\n    protocol_type=\"NFS\",\n    file_system_type=\"standard\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    is_default=False,\n    vpc_id=example.id,\n    zone_id=\"cn-hangzhou-k\",\n    cidr_block=\"10.0.0.0/24\",\n    vswitch_name=\"example-cluster-vsw\")\nexample_access_rule = alicloud.nas.AccessRule(\"example\",\n    priority=1,\n    access_group_name=example_access_group.access_group_name,\n    file_system_type=example_file_system.file_system_type,\n    source_cidr_ip=\"10.0.0.0/24\")\nexample_ecs_key_pair = alicloud.ecs.EcsKeyPair(\"example\", key_pair_name=name)\nexample_mount_target = alicloud.nas.MountTarget(\"example\",\n    vpc_id=example.id,\n    network_type=\"Vpc\",\n    access_group_name=example_access_group.access_group_name,\n    vswitch_id=example_switch.id,\n    file_system_id=example_file_system.id)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    vpc_id=example.id,\n    security_group_type=\"normal\")\ndefault = alicloud.ehpc.ClusterV2(\"default\",\n    cluster_credentials={\n        \"key_pair_name\": example_ecs_key_pair.id,\n    },\n    cluster_mode=\"Integrated\",\n    cluster_vpc_id=example.id,\n    deletion_protection=True,\n    shared_storages=[\n        {\n            \"mount_directory\": \"/home\",\n            \"nas_directory\": \"/\",\n            \"mount_target_domain\": example_mount_target.mount_target_domain,\n            \"protocol_type\": \"NFS\",\n            \"file_system_id\": example_file_system.id,\n            \"mount_options\": \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n        },\n        {\n            \"nas_directory\": \"/\",\n            \"mount_target_domain\": example_mount_target.mount_target_domain,\n            \"protocol_type\": \"NFS\",\n            \"file_system_id\": example_file_system.id,\n            \"mount_options\": \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n            \"mount_directory\": \"/opt\",\n        },\n        {\n            \"mount_options\": \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n            \"mount_directory\": \"/ehpcdata\",\n            \"nas_directory\": \"/\",\n            \"mount_target_domain\": example_mount_target.mount_target_domain,\n            \"protocol_type\": \"NFS\",\n            \"file_system_id\": example_file_system.id,\n        },\n    ],\n    cluster_vswitch_id=example_switch.id,\n    cluster_category=\"Standard\",\n    security_group_id=example_security_group.id,\n    cluster_name=name,\n    manager={\n        \"manager_node\": {\n            \"spot_strategy\": \"NoSpot\",\n            \"system_disk\": {\n                \"category\": \"cloud_essd\",\n                \"size\": 40,\n                \"level\": \"PL0\",\n            },\n            \"enable_ht\": True,\n            \"instance_charge_type\": \"PostPaid\",\n            \"image_id\": \"centos_7_6_x64_20G_alibase_20211130.vhd\",\n            \"instance_type\": \"ecs.c6.xlarge\",\n        },\n        \"scheduler\": {\n            \"type\": \"SLURM\",\n            \"version\": \"22.05.8\",\n        },\n        \"dns\": {\n            \"type\": \"nis\",\n            \"version\": \"1.0\",\n        },\n        \"directory_service\": {\n            \"type\": \"nis\",\n            \"version\": \"1.0\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        IsDefault = false,\n        CidrBlock = \"10.0.0.0/24\",\n        VpcName = \"example-cluster-vpc\",\n    });\n\n    var exampleAccessGroup = new AliCloud.Nas.AccessGroup(\"example\", new()\n    {\n        AccessGroupType = \"Vpc\",\n        Description = name,\n        AccessGroupName = \"StandardMountTarget\",\n        FileSystemType = \"standard\",\n    });\n\n    var exampleFileSystem = new AliCloud.Nas.FileSystem(\"example\", new()\n    {\n        Description = \"example-cluster-nas\",\n        StorageType = \"Capacity\",\n        NfsAcl = new AliCloud.Nas.Inputs.FileSystemNfsAclArgs\n        {\n            Enabled = false,\n        },\n        ZoneId = \"cn-hangzhou-k\",\n        EncryptType = 0,\n        ProtocolType = \"NFS\",\n        FileSystemType = \"standard\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        IsDefault = false,\n        VpcId = example.Id,\n        ZoneId = \"cn-hangzhou-k\",\n        CidrBlock = \"10.0.0.0/24\",\n        VswitchName = \"example-cluster-vsw\",\n    });\n\n    var exampleAccessRule = new AliCloud.Nas.AccessRule(\"example\", new()\n    {\n        Priority = 1,\n        AccessGroupName = exampleAccessGroup.AccessGroupName,\n        FileSystemType = exampleFileSystem.FileSystemType,\n        SourceCidrIp = \"10.0.0.0/24\",\n    });\n\n    var exampleEcsKeyPair = new AliCloud.Ecs.EcsKeyPair(\"example\", new()\n    {\n        KeyPairName = name,\n    });\n\n    var exampleMountTarget = new AliCloud.Nas.MountTarget(\"example\", new()\n    {\n        VpcId = example.Id,\n        NetworkType = \"Vpc\",\n        AccessGroupName = exampleAccessGroup.AccessGroupName,\n        VswitchId = exampleSwitch.Id,\n        FileSystemId = exampleFileSystem.Id,\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        VpcId = example.Id,\n        SecurityGroupType = \"normal\",\n    });\n\n    var @default = new AliCloud.Ehpc.ClusterV2(\"default\", new()\n    {\n        ClusterCredentials = new AliCloud.Ehpc.Inputs.ClusterV2ClusterCredentialsArgs\n        {\n            KeyPairName = exampleEcsKeyPair.Id,\n        },\n        ClusterMode = \"Integrated\",\n        ClusterVpcId = example.Id,\n        DeletionProtection = true,\n        SharedStorages = new[]\n        {\n            new AliCloud.Ehpc.Inputs.ClusterV2SharedStorageArgs\n            {\n                MountDirectory = \"/home\",\n                NasDirectory = \"/\",\n                MountTargetDomain = exampleMountTarget.MountTargetDomain,\n                ProtocolType = \"NFS\",\n                FileSystemId = exampleFileSystem.Id,\n                MountOptions = \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n            },\n            new AliCloud.Ehpc.Inputs.ClusterV2SharedStorageArgs\n            {\n                NasDirectory = \"/\",\n                MountTargetDomain = exampleMountTarget.MountTargetDomain,\n                ProtocolType = \"NFS\",\n                FileSystemId = exampleFileSystem.Id,\n                MountOptions = \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n                MountDirectory = \"/opt\",\n            },\n            new AliCloud.Ehpc.Inputs.ClusterV2SharedStorageArgs\n            {\n                MountOptions = \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n                MountDirectory = \"/ehpcdata\",\n                NasDirectory = \"/\",\n                MountTargetDomain = exampleMountTarget.MountTargetDomain,\n                ProtocolType = \"NFS\",\n                FileSystemId = exampleFileSystem.Id,\n            },\n        },\n        ClusterVswitchId = exampleSwitch.Id,\n        ClusterCategory = \"Standard\",\n        SecurityGroupId = exampleSecurityGroup.Id,\n        ClusterName = name,\n        Manager = new AliCloud.Ehpc.Inputs.ClusterV2ManagerArgs\n        {\n            ManagerNode = new AliCloud.Ehpc.Inputs.ClusterV2ManagerManagerNodeArgs\n            {\n                SpotStrategy = \"NoSpot\",\n                SystemDisk = new AliCloud.Ehpc.Inputs.ClusterV2ManagerManagerNodeSystemDiskArgs\n                {\n                    Category = \"cloud_essd\",\n                    Size = 40,\n                    Level = \"PL0\",\n                },\n                EnableHt = true,\n                InstanceChargeType = \"PostPaid\",\n                ImageId = \"centos_7_6_x64_20G_alibase_20211130.vhd\",\n                InstanceType = \"ecs.c6.xlarge\",\n            },\n            Scheduler = new AliCloud.Ehpc.Inputs.ClusterV2ManagerSchedulerArgs\n            {\n                Type = \"SLURM\",\n                Version = \"22.05.8\",\n            },\n            Dns = new AliCloud.Ehpc.Inputs.ClusterV2ManagerDnsArgs\n            {\n                Type = \"nis\",\n                Version = \"1.0\",\n            },\n            DirectoryService = new AliCloud.Ehpc.Inputs.ClusterV2ManagerDirectoryServiceArgs\n            {\n                Type = \"nis\",\n                Version = \"1.0\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ehpc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tIsDefault: pulumi.Bool(false),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/24\"),\n\t\t\tVpcName:   pulumi.String(\"example-cluster-vpc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccessGroup, err := nas.NewAccessGroup(ctx, \"example\", \u0026nas.AccessGroupArgs{\n\t\t\tAccessGroupType: pulumi.String(\"Vpc\"),\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tAccessGroupName: pulumi.String(\"StandardMountTarget\"),\n\t\t\tFileSystemType:  pulumi.String(\"standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFileSystem, err := nas.NewFileSystem(ctx, \"example\", \u0026nas.FileSystemArgs{\n\t\t\tDescription: pulumi.String(\"example-cluster-nas\"),\n\t\t\tStorageType: pulumi.String(\"Capacity\"),\n\t\t\tNfsAcl: \u0026nas.FileSystemNfsAclArgs{\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tZoneId:         pulumi.String(\"cn-hangzhou-k\"),\n\t\t\tEncryptType:    pulumi.Int(0),\n\t\t\tProtocolType:   pulumi.String(\"NFS\"),\n\t\t\tFileSystemType: pulumi.String(\"standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tIsDefault:   pulumi.Bool(false),\n\t\t\tVpcId:       example.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-k\"),\n\t\t\tCidrBlock:   pulumi.String(\"10.0.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"example-cluster-vsw\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nas.NewAccessRule(ctx, \"example\", \u0026nas.AccessRuleArgs{\n\t\t\tPriority:        pulumi.Int(1),\n\t\t\tAccessGroupName: exampleAccessGroup.AccessGroupName,\n\t\t\tFileSystemType:  exampleFileSystem.FileSystemType,\n\t\t\tSourceCidrIp:    pulumi.String(\"10.0.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEcsKeyPair, err := ecs.NewEcsKeyPair(ctx, \"example\", \u0026ecs.EcsKeyPairArgs{\n\t\t\tKeyPairName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleMountTarget, err := nas.NewMountTarget(ctx, \"example\", \u0026nas.MountTargetArgs{\n\t\t\tVpcId:           example.ID(),\n\t\t\tNetworkType:     pulumi.String(\"Vpc\"),\n\t\t\tAccessGroupName: exampleAccessGroup.AccessGroupName,\n\t\t\tVswitchId:       exampleSwitch.ID(),\n\t\t\tFileSystemId:    exampleFileSystem.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId:             example.ID(),\n\t\t\tSecurityGroupType: pulumi.String(\"normal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ehpc.NewClusterV2(ctx, \"default\", \u0026ehpc.ClusterV2Args{\n\t\t\tClusterCredentials: \u0026ehpc.ClusterV2ClusterCredentialsArgs{\n\t\t\t\tKeyPairName: exampleEcsKeyPair.ID(),\n\t\t\t},\n\t\t\tClusterMode:        pulumi.String(\"Integrated\"),\n\t\t\tClusterVpcId:       example.ID(),\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t\tSharedStorages: ehpc.ClusterV2SharedStorageArray{\n\t\t\t\t\u0026ehpc.ClusterV2SharedStorageArgs{\n\t\t\t\t\tMountDirectory:    pulumi.String(\"/home\"),\n\t\t\t\t\tNasDirectory:      pulumi.String(\"/\"),\n\t\t\t\t\tMountTargetDomain: exampleMountTarget.MountTargetDomain,\n\t\t\t\t\tProtocolType:      pulumi.String(\"NFS\"),\n\t\t\t\t\tFileSystemId:      exampleFileSystem.ID(),\n\t\t\t\t\tMountOptions:      pulumi.String(\"-t nfs -o vers=3,nolock,proto=tcp,noresvport\"),\n\t\t\t\t},\n\t\t\t\t\u0026ehpc.ClusterV2SharedStorageArgs{\n\t\t\t\t\tNasDirectory:      pulumi.String(\"/\"),\n\t\t\t\t\tMountTargetDomain: exampleMountTarget.MountTargetDomain,\n\t\t\t\t\tProtocolType:      pulumi.String(\"NFS\"),\n\t\t\t\t\tFileSystemId:      exampleFileSystem.ID(),\n\t\t\t\t\tMountOptions:      pulumi.String(\"-t nfs -o vers=3,nolock,proto=tcp,noresvport\"),\n\t\t\t\t\tMountDirectory:    pulumi.String(\"/opt\"),\n\t\t\t\t},\n\t\t\t\t\u0026ehpc.ClusterV2SharedStorageArgs{\n\t\t\t\t\tMountOptions:      pulumi.String(\"-t nfs -o vers=3,nolock,proto=tcp,noresvport\"),\n\t\t\t\t\tMountDirectory:    pulumi.String(\"/ehpcdata\"),\n\t\t\t\t\tNasDirectory:      pulumi.String(\"/\"),\n\t\t\t\t\tMountTargetDomain: exampleMountTarget.MountTargetDomain,\n\t\t\t\t\tProtocolType:      pulumi.String(\"NFS\"),\n\t\t\t\t\tFileSystemId:      exampleFileSystem.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tClusterVswitchId: exampleSwitch.ID(),\n\t\t\tClusterCategory:  pulumi.String(\"Standard\"),\n\t\t\tSecurityGroupId:  exampleSecurityGroup.ID(),\n\t\t\tClusterName:      pulumi.String(name),\n\t\t\tManager: \u0026ehpc.ClusterV2ManagerArgs{\n\t\t\t\tManagerNode: \u0026ehpc.ClusterV2ManagerManagerNodeArgs{\n\t\t\t\t\tSpotStrategy: pulumi.String(\"NoSpot\"),\n\t\t\t\t\tSystemDisk: \u0026ehpc.ClusterV2ManagerManagerNodeSystemDiskArgs{\n\t\t\t\t\t\tCategory: pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\tSize:     pulumi.Int(40),\n\t\t\t\t\t\tLevel:    pulumi.String(\"PL0\"),\n\t\t\t\t\t},\n\t\t\t\t\tEnableHt:           pulumi.Bool(true),\n\t\t\t\t\tInstanceChargeType: pulumi.String(\"PostPaid\"),\n\t\t\t\t\tImageId:            pulumi.String(\"centos_7_6_x64_20G_alibase_20211130.vhd\"),\n\t\t\t\t\tInstanceType:       pulumi.String(\"ecs.c6.xlarge\"),\n\t\t\t\t},\n\t\t\t\tScheduler: \u0026ehpc.ClusterV2ManagerSchedulerArgs{\n\t\t\t\t\tType:    pulumi.String(\"SLURM\"),\n\t\t\t\t\tVersion: pulumi.String(\"22.05.8\"),\n\t\t\t\t},\n\t\t\t\tDns: \u0026ehpc.ClusterV2ManagerDnsArgs{\n\t\t\t\t\tType:    pulumi.String(\"nis\"),\n\t\t\t\t\tVersion: pulumi.String(\"1.0\"),\n\t\t\t\t},\n\t\t\t\tDirectoryService: \u0026ehpc.ClusterV2ManagerDirectoryServiceArgs{\n\t\t\t\t\tType:    pulumi.String(\"nis\"),\n\t\t\t\t\tVersion: pulumi.String(\"1.0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.nas.AccessGroup;\nimport com.pulumi.alicloud.nas.AccessGroupArgs;\nimport com.pulumi.alicloud.nas.FileSystem;\nimport com.pulumi.alicloud.nas.FileSystemArgs;\nimport com.pulumi.alicloud.nas.inputs.FileSystemNfsAclArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.nas.AccessRule;\nimport com.pulumi.alicloud.nas.AccessRuleArgs;\nimport com.pulumi.alicloud.ecs.EcsKeyPair;\nimport com.pulumi.alicloud.ecs.EcsKeyPairArgs;\nimport com.pulumi.alicloud.nas.MountTarget;\nimport com.pulumi.alicloud.nas.MountTargetArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ehpc.ClusterV2;\nimport com.pulumi.alicloud.ehpc.ClusterV2Args;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2ClusterCredentialsArgs;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2SharedStorageArgs;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2ManagerArgs;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2ManagerManagerNodeArgs;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2ManagerManagerNodeSystemDiskArgs;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2ManagerSchedulerArgs;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2ManagerDnsArgs;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2ManagerDirectoryServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .isDefault(false)\n            .cidrBlock(\"10.0.0.0/24\")\n            .vpcName(\"example-cluster-vpc\")\n            .build());\n\n        var exampleAccessGroup = new AccessGroup(\"exampleAccessGroup\", AccessGroupArgs.builder()\n            .accessGroupType(\"Vpc\")\n            .description(name)\n            .accessGroupName(\"StandardMountTarget\")\n            .fileSystemType(\"standard\")\n            .build());\n\n        var exampleFileSystem = new FileSystem(\"exampleFileSystem\", FileSystemArgs.builder()\n            .description(\"example-cluster-nas\")\n            .storageType(\"Capacity\")\n            .nfsAcl(FileSystemNfsAclArgs.builder()\n                .enabled(false)\n                .build())\n            .zoneId(\"cn-hangzhou-k\")\n            .encryptType(0)\n            .protocolType(\"NFS\")\n            .fileSystemType(\"standard\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .isDefault(false)\n            .vpcId(example.id())\n            .zoneId(\"cn-hangzhou-k\")\n            .cidrBlock(\"10.0.0.0/24\")\n            .vswitchName(\"example-cluster-vsw\")\n            .build());\n\n        var exampleAccessRule = new AccessRule(\"exampleAccessRule\", AccessRuleArgs.builder()\n            .priority(1)\n            .accessGroupName(exampleAccessGroup.accessGroupName())\n            .fileSystemType(exampleFileSystem.fileSystemType())\n            .sourceCidrIp(\"10.0.0.0/24\")\n            .build());\n\n        var exampleEcsKeyPair = new EcsKeyPair(\"exampleEcsKeyPair\", EcsKeyPairArgs.builder()\n            .keyPairName(name)\n            .build());\n\n        var exampleMountTarget = new MountTarget(\"exampleMountTarget\", MountTargetArgs.builder()\n            .vpcId(example.id())\n            .networkType(\"Vpc\")\n            .accessGroupName(exampleAccessGroup.accessGroupName())\n            .vswitchId(exampleSwitch.id())\n            .fileSystemId(exampleFileSystem.id())\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(example.id())\n            .securityGroupType(\"normal\")\n            .build());\n\n        var default_ = new ClusterV2(\"default\", ClusterV2Args.builder()\n            .clusterCredentials(ClusterV2ClusterCredentialsArgs.builder()\n                .keyPairName(exampleEcsKeyPair.id())\n                .build())\n            .clusterMode(\"Integrated\")\n            .clusterVpcId(example.id())\n            .deletionProtection(true)\n            .sharedStorages(            \n                ClusterV2SharedStorageArgs.builder()\n                    .mountDirectory(\"/home\")\n                    .nasDirectory(\"/\")\n                    .mountTargetDomain(exampleMountTarget.mountTargetDomain())\n                    .protocolType(\"NFS\")\n                    .fileSystemId(exampleFileSystem.id())\n                    .mountOptions(\"-t nfs -o vers=3,nolock,proto=tcp,noresvport\")\n                    .build(),\n                ClusterV2SharedStorageArgs.builder()\n                    .nasDirectory(\"/\")\n                    .mountTargetDomain(exampleMountTarget.mountTargetDomain())\n                    .protocolType(\"NFS\")\n                    .fileSystemId(exampleFileSystem.id())\n                    .mountOptions(\"-t nfs -o vers=3,nolock,proto=tcp,noresvport\")\n                    .mountDirectory(\"/opt\")\n                    .build(),\n                ClusterV2SharedStorageArgs.builder()\n                    .mountOptions(\"-t nfs -o vers=3,nolock,proto=tcp,noresvport\")\n                    .mountDirectory(\"/ehpcdata\")\n                    .nasDirectory(\"/\")\n                    .mountTargetDomain(exampleMountTarget.mountTargetDomain())\n                    .protocolType(\"NFS\")\n                    .fileSystemId(exampleFileSystem.id())\n                    .build())\n            .clusterVswitchId(exampleSwitch.id())\n            .clusterCategory(\"Standard\")\n            .securityGroupId(exampleSecurityGroup.id())\n            .clusterName(name)\n            .manager(ClusterV2ManagerArgs.builder()\n                .managerNode(ClusterV2ManagerManagerNodeArgs.builder()\n                    .spotStrategy(\"NoSpot\")\n                    .systemDisk(ClusterV2ManagerManagerNodeSystemDiskArgs.builder()\n                        .category(\"cloud_essd\")\n                        .size(40)\n                        .level(\"PL0\")\n                        .build())\n                    .enableHt(true)\n                    .instanceChargeType(\"PostPaid\")\n                    .imageId(\"centos_7_6_x64_20G_alibase_20211130.vhd\")\n                    .instanceType(\"ecs.c6.xlarge\")\n                    .build())\n                .scheduler(ClusterV2ManagerSchedulerArgs.builder()\n                    .type(\"SLURM\")\n                    .version(\"22.05.8\")\n                    .build())\n                .dns(ClusterV2ManagerDnsArgs.builder()\n                    .type(\"nis\")\n                    .version(\"1.0\")\n                    .build())\n                .directoryService(ClusterV2ManagerDirectoryServiceArgs.builder()\n                    .type(\"nis\")\n                    .version(\"1.0\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      isDefault: false\n      cidrBlock: 10.0.0.0/24\n      vpcName: example-cluster-vpc\n  exampleAccessGroup:\n    type: alicloud:nas:AccessGroup\n    name: example\n    properties:\n      accessGroupType: Vpc\n      description: ${name}\n      accessGroupName: StandardMountTarget\n      fileSystemType: standard\n  exampleFileSystem:\n    type: alicloud:nas:FileSystem\n    name: example\n    properties:\n      description: example-cluster-nas\n      storageType: Capacity\n      nfsAcl:\n        enabled: false\n      zoneId: cn-hangzhou-k\n      encryptType: '0'\n      protocolType: NFS\n      fileSystemType: standard\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      isDefault: false\n      vpcId: ${example.id}\n      zoneId: cn-hangzhou-k\n      cidrBlock: 10.0.0.0/24\n      vswitchName: example-cluster-vsw\n  exampleAccessRule:\n    type: alicloud:nas:AccessRule\n    name: example\n    properties:\n      priority: '1'\n      accessGroupName: ${exampleAccessGroup.accessGroupName}\n      fileSystemType: ${exampleFileSystem.fileSystemType}\n      sourceCidrIp: 10.0.0.0/24\n  exampleEcsKeyPair:\n    type: alicloud:ecs:EcsKeyPair\n    name: example\n    properties:\n      keyPairName: ${name}\n  exampleMountTarget:\n    type: alicloud:nas:MountTarget\n    name: example\n    properties:\n      vpcId: ${example.id}\n      networkType: Vpc\n      accessGroupName: ${exampleAccessGroup.accessGroupName}\n      vswitchId: ${exampleSwitch.id}\n      fileSystemId: ${exampleFileSystem.id}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      vpcId: ${example.id}\n      securityGroupType: normal\n  default:\n    type: alicloud:ehpc:ClusterV2\n    properties:\n      clusterCredentials:\n        keyPairName: ${exampleEcsKeyPair.id}\n      clusterMode: Integrated\n      clusterVpcId: ${example.id}\n      deletionProtection: 'true'\n      sharedStorages:\n        - mountDirectory: /home\n          nasDirectory: /\n          mountTargetDomain: ${exampleMountTarget.mountTargetDomain}\n          protocolType: NFS\n          fileSystemId: ${exampleFileSystem.id}\n          mountOptions: -t nfs -o vers=3,nolock,proto=tcp,noresvport\n        - nasDirectory: /\n          mountTargetDomain: ${exampleMountTarget.mountTargetDomain}\n          protocolType: NFS\n          fileSystemId: ${exampleFileSystem.id}\n          mountOptions: -t nfs -o vers=3,nolock,proto=tcp,noresvport\n          mountDirectory: /opt\n        - mountOptions: -t nfs -o vers=3,nolock,proto=tcp,noresvport\n          mountDirectory: /ehpcdata\n          nasDirectory: /\n          mountTargetDomain: ${exampleMountTarget.mountTargetDomain}\n          protocolType: NFS\n          fileSystemId: ${exampleFileSystem.id}\n      clusterVswitchId: ${exampleSwitch.id}\n      clusterCategory: Standard\n      securityGroupId: ${exampleSecurityGroup.id}\n      clusterName: ${name}\n      manager:\n        managerNode:\n          spotStrategy: NoSpot\n          systemDisk:\n            category: cloud_essd\n            size: '40'\n            level: PL0\n          enableHt: 'true'\n          instanceChargeType: PostPaid\n          imageId: centos_7_6_x64_20G_alibase_20211130.vhd\n          instanceType: ecs.c6.xlarge\n        scheduler:\n          type: SLURM\n          version: 22.05.8\n        dns:\n          type: nis\n          version: '1.0'\n        directoryService:\n          type: nis\n          version: '1.0'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEhpc Cluster V2 can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ehpc/clusterV2:ClusterV2 example \u003ccluster_id\u003e\n```\n\n","properties":{"addons":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/ClusterV2Addon:ClusterV2Addon"},"description":"The cluster custom service component configuration. Only one component is supported. See \u003cspan pulumi-lang-nodejs=\"`addons`\" pulumi-lang-dotnet=\"`Addons`\" pulumi-lang-go=\"`addons`\" pulumi-lang-python=\"`addons`\" pulumi-lang-yaml=\"`addons`\" pulumi-lang-java=\"`addons`\"\u003e`addons`\u003c/span\u003e below.\n","secret":true},"clientVersion":{"type":"string","description":"Specifies whether to enable auto scale-out for the cluster. Valid values:\n\n- true\n- false\n"},"clusterCategory":{"type":"string","description":"The cluster type. Valid values:\n\n- Standard\n- Serverless\n"},"clusterCredentials":{"$ref":"#/types/alicloud:ehpc/ClusterV2ClusterCredentials:ClusterV2ClusterCredentials","description":"Security credentials for the cluster. See \u003cspan pulumi-lang-nodejs=\"`clusterCredentials`\" pulumi-lang-dotnet=\"`ClusterCredentials`\" pulumi-lang-go=\"`clusterCredentials`\" pulumi-lang-python=\"`cluster_credentials`\" pulumi-lang-yaml=\"`clusterCredentials`\" pulumi-lang-java=\"`clusterCredentials`\"\u003e`cluster_credentials`\u003c/span\u003e below.\n","secret":true},"clusterMode":{"type":"string","description":"The deployment mode of the cluster. Valid values:\n\n- Integrated\n- Hybrid\n- Custom\n"},"clusterName":{"type":"string","description":"The post-processing script of the cluster.\n"},"clusterVpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) in which the cluster resides.\n"},"clusterVswitchId":{"type":"string","description":"The ID of the vSwitch that you want the cluster to use. The vSwitch must reside in the VPC that is specified by the `ClusterVpcId` parameter.\nYou can call the [DescribeVpcs](https://www.alibabacloud.com/help/en/doc-detail/448581.html) operation to query information about the created VPCs and vSwitches.\n"},"createTime":{"type":"string","description":"The time when the cluster was created.\n"},"deletionProtection":{"type":"boolean","description":"The idle duration of the compute nodes allowed by the cluster.\n"},"manager":{"$ref":"#/types/alicloud:ehpc/ClusterV2Manager:ClusterV2Manager","description":"The configurations of the cluster management node. See \u003cspan pulumi-lang-nodejs=\"`manager`\" pulumi-lang-dotnet=\"`Manager`\" pulumi-lang-go=\"`manager`\" pulumi-lang-python=\"`manager`\" pulumi-lang-yaml=\"`manager`\" pulumi-lang-java=\"`manager`\"\u003e`manager`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the cluster belongs.\nYou can call the [ListResourceGroups](https://www.alibabacloud.com/help/en/doc-detail/158855.html) operation to obtain the IDs of the resource groups.\n"},"securityGroupId":{"type":"string","description":"The security group ID.\n"},"sharedStorages":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/ClusterV2SharedStorage:ClusterV2SharedStorage"},"description":"List of cluster shared storage configurations. See \u003cspan pulumi-lang-nodejs=\"`sharedStorages`\" pulumi-lang-dotnet=\"`SharedStorages`\" pulumi-lang-go=\"`sharedStorages`\" pulumi-lang-python=\"`shared_storages`\" pulumi-lang-yaml=\"`sharedStorages`\" pulumi-lang-java=\"`sharedStorages`\"\u003e`shared_storages`\u003c/span\u003e below.\n"}},"required":["clientVersion","clusterCredentials","createTime","resourceGroupId","sharedStorages"],"inputProperties":{"addons":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/ClusterV2Addon:ClusterV2Addon"},"description":"The cluster custom service component configuration. Only one component is supported. See \u003cspan pulumi-lang-nodejs=\"`addons`\" pulumi-lang-dotnet=\"`Addons`\" pulumi-lang-go=\"`addons`\" pulumi-lang-python=\"`addons`\" pulumi-lang-yaml=\"`addons`\" pulumi-lang-java=\"`addons`\"\u003e`addons`\u003c/span\u003e below.\n","secret":true,"willReplaceOnChanges":true},"clientVersion":{"type":"string","description":"Specifies whether to enable auto scale-out for the cluster. Valid values:\n\n- true\n- false\n"},"clusterCategory":{"type":"string","description":"The cluster type. Valid values:\n\n- Standard\n- Serverless\n","willReplaceOnChanges":true},"clusterCredentials":{"$ref":"#/types/alicloud:ehpc/ClusterV2ClusterCredentials:ClusterV2ClusterCredentials","description":"Security credentials for the cluster. See \u003cspan pulumi-lang-nodejs=\"`clusterCredentials`\" pulumi-lang-dotnet=\"`ClusterCredentials`\" pulumi-lang-go=\"`clusterCredentials`\" pulumi-lang-python=\"`cluster_credentials`\" pulumi-lang-yaml=\"`clusterCredentials`\" pulumi-lang-java=\"`clusterCredentials`\"\u003e`cluster_credentials`\u003c/span\u003e below.\n","secret":true,"willReplaceOnChanges":true},"clusterMode":{"type":"string","description":"The deployment mode of the cluster. Valid values:\n\n- Integrated\n- Hybrid\n- Custom\n","willReplaceOnChanges":true},"clusterName":{"type":"string","description":"The post-processing script of the cluster.\n"},"clusterVpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) in which the cluster resides.\n","willReplaceOnChanges":true},"clusterVswitchId":{"type":"string","description":"The ID of the vSwitch that you want the cluster to use. The vSwitch must reside in the VPC that is specified by the `ClusterVpcId` parameter.\nYou can call the [DescribeVpcs](https://www.alibabacloud.com/help/en/doc-detail/448581.html) operation to query information about the created VPCs and vSwitches.\n","willReplaceOnChanges":true},"deletionProtection":{"type":"boolean","description":"The idle duration of the compute nodes allowed by the cluster.\n"},"manager":{"$ref":"#/types/alicloud:ehpc/ClusterV2Manager:ClusterV2Manager","description":"The configurations of the cluster management node. See \u003cspan pulumi-lang-nodejs=\"`manager`\" pulumi-lang-dotnet=\"`Manager`\" pulumi-lang-go=\"`manager`\" pulumi-lang-python=\"`manager`\" pulumi-lang-yaml=\"`manager`\" pulumi-lang-java=\"`manager`\"\u003e`manager`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the cluster belongs.\nYou can call the [ListResourceGroups](https://www.alibabacloud.com/help/en/doc-detail/158855.html) operation to obtain the IDs of the resource groups.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The security group ID.\n","willReplaceOnChanges":true},"sharedStorages":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/ClusterV2SharedStorage:ClusterV2SharedStorage"},"description":"List of cluster shared storage configurations. See \u003cspan pulumi-lang-nodejs=\"`sharedStorages`\" pulumi-lang-dotnet=\"`SharedStorages`\" pulumi-lang-go=\"`sharedStorages`\" pulumi-lang-python=\"`shared_storages`\" pulumi-lang-yaml=\"`sharedStorages`\" pulumi-lang-java=\"`sharedStorages`\"\u003e`shared_storages`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterCredentials","sharedStorages"],"stateInputs":{"description":"Input properties used for looking up and filtering ClusterV2 resources.\n","properties":{"addons":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/ClusterV2Addon:ClusterV2Addon"},"description":"The cluster custom service component configuration. Only one component is supported. See \u003cspan pulumi-lang-nodejs=\"`addons`\" pulumi-lang-dotnet=\"`Addons`\" pulumi-lang-go=\"`addons`\" pulumi-lang-python=\"`addons`\" pulumi-lang-yaml=\"`addons`\" pulumi-lang-java=\"`addons`\"\u003e`addons`\u003c/span\u003e below.\n","secret":true,"willReplaceOnChanges":true},"clientVersion":{"type":"string","description":"Specifies whether to enable auto scale-out for the cluster. Valid values:\n\n- true\n- false\n"},"clusterCategory":{"type":"string","description":"The cluster type. Valid values:\n\n- Standard\n- Serverless\n","willReplaceOnChanges":true},"clusterCredentials":{"$ref":"#/types/alicloud:ehpc/ClusterV2ClusterCredentials:ClusterV2ClusterCredentials","description":"Security credentials for the cluster. See \u003cspan pulumi-lang-nodejs=\"`clusterCredentials`\" pulumi-lang-dotnet=\"`ClusterCredentials`\" pulumi-lang-go=\"`clusterCredentials`\" pulumi-lang-python=\"`cluster_credentials`\" pulumi-lang-yaml=\"`clusterCredentials`\" pulumi-lang-java=\"`clusterCredentials`\"\u003e`cluster_credentials`\u003c/span\u003e below.\n","secret":true,"willReplaceOnChanges":true},"clusterMode":{"type":"string","description":"The deployment mode of the cluster. Valid values:\n\n- Integrated\n- Hybrid\n- Custom\n","willReplaceOnChanges":true},"clusterName":{"type":"string","description":"The post-processing script of the cluster.\n"},"clusterVpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) in which the cluster resides.\n","willReplaceOnChanges":true},"clusterVswitchId":{"type":"string","description":"The ID of the vSwitch that you want the cluster to use. The vSwitch must reside in the VPC that is specified by the `ClusterVpcId` parameter.\nYou can call the [DescribeVpcs](https://www.alibabacloud.com/help/en/doc-detail/448581.html) operation to query information about the created VPCs and vSwitches.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The time when the cluster was created.\n"},"deletionProtection":{"type":"boolean","description":"The idle duration of the compute nodes allowed by the cluster.\n"},"manager":{"$ref":"#/types/alicloud:ehpc/ClusterV2Manager:ClusterV2Manager","description":"The configurations of the cluster management node. See \u003cspan pulumi-lang-nodejs=\"`manager`\" pulumi-lang-dotnet=\"`Manager`\" pulumi-lang-go=\"`manager`\" pulumi-lang-python=\"`manager`\" pulumi-lang-yaml=\"`manager`\" pulumi-lang-java=\"`manager`\"\u003e`manager`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the cluster belongs.\nYou can call the [ListResourceGroups](https://www.alibabacloud.com/help/en/doc-detail/158855.html) operation to obtain the IDs of the resource groups.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The security group ID.\n","willReplaceOnChanges":true},"sharedStorages":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/ClusterV2SharedStorage:ClusterV2SharedStorage"},"description":"List of cluster shared storage configurations. See \u003cspan pulumi-lang-nodejs=\"`sharedStorages`\" pulumi-lang-dotnet=\"`SharedStorages`\" pulumi-lang-go=\"`sharedStorages`\" pulumi-lang-python=\"`shared_storages`\" pulumi-lang-yaml=\"`sharedStorages`\" pulumi-lang-java=\"`sharedStorages`\"\u003e`shared_storages`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ehpc/jobTemplate:JobTemplate":{"description":"Provides a Ehpc Job Template resource.\n\nFor information about Ehpc Job Template and how to use it, see [What is Job Template](https://www.alibabacloud.com/help/product/57664.html).\n\n\u003e **NOTE:** Available since v1.133.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ehpc.JobTemplate(\"default\", {\n    jobTemplateName: \"example_value\",\n    commandLine: \"./LammpsTest/lammps.pbs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ehpc.JobTemplate(\"default\",\n    job_template_name=\"example_value\",\n    command_line=\"./LammpsTest/lammps.pbs\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ehpc.JobTemplate(\"default\", new()\n    {\n        JobTemplateName = \"example_value\",\n        CommandLine = \"./LammpsTest/lammps.pbs\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ehpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ehpc.NewJobTemplate(ctx, \"default\", \u0026ehpc.JobTemplateArgs{\n\t\t\tJobTemplateName: pulumi.String(\"example_value\"),\n\t\t\tCommandLine:     pulumi.String(\"./LammpsTest/lammps.pbs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ehpc.JobTemplate;\nimport com.pulumi.alicloud.ehpc.JobTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new JobTemplate(\"default\", JobTemplateArgs.builder()\n            .jobTemplateName(\"example_value\")\n            .commandLine(\"./LammpsTest/lammps.pbs\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ehpc:JobTemplate\n    properties:\n      jobTemplateName: example_value\n      commandLine: ./LammpsTest/lammps.pbs\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEhpc Job Template can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ehpc/jobTemplate:JobTemplate example \u003cid\u003e\n```\n\n","properties":{"arrayRequest":{"type":"string","description":"Queue Jobs, Is of the Form: 1-10:2.\n"},"clockTime":{"type":"string","description":"Job Maximum Run Time.\n"},"commandLine":{"type":"string","description":"Job Commands.\n"},"gpu":{"type":"integer","description":"A Single Compute Node Using the GPU Number.Possible Values: 1~20000.\n"},"jobTemplateName":{"type":"string","description":"A Job Template Name.\n"},"mem":{"type":"string","description":"A Single Compute Node Maximum Memory.\n"},"node":{"type":"integer","description":"Submit a Task Is Required for Computing the Number of Data Nodes to Be. Possible Values: 1~5000 .\n"},"packagePath":{"type":"string","description":"Job Commands the Directory.\n"},"priority":{"type":"integer","description":"The Job Priority.\n"},"queue":{"type":"string","description":"The Job Queue.\n"},"reRunable":{"type":"boolean","description":"If the Job Is Support for the Re-Run.\n"},"runasUser":{"type":"string","description":"The name of the user who performed the job.\n"},"stderrRedirectPath":{"type":"string","description":"Error Output Path.\n"},"stdoutRedirectPath":{"type":"string","description":"Standard Output Path and.\n"},"task":{"type":"integer","description":"A Single Compute Node Required Number of Tasks. Possible Values: 1~20000 .\n"},"thread":{"type":"integer","description":"A Single Task and the Number of Required Threads.\n"},"variables":{"type":"string","description":"The Job of the Environment Variable.\n"}},"required":["commandLine","jobTemplateName","reRunable"],"inputProperties":{"arrayRequest":{"type":"string","description":"Queue Jobs, Is of the Form: 1-10:2.\n"},"clockTime":{"type":"string","description":"Job Maximum Run Time.\n"},"commandLine":{"type":"string","description":"Job Commands.\n"},"gpu":{"type":"integer","description":"A Single Compute Node Using the GPU Number.Possible Values: 1~20000.\n"},"jobTemplateName":{"type":"string","description":"A Job Template Name.\n"},"mem":{"type":"string","description":"A Single Compute Node Maximum Memory.\n"},"node":{"type":"integer","description":"Submit a Task Is Required for Computing the Number of Data Nodes to Be. Possible Values: 1~5000 .\n"},"packagePath":{"type":"string","description":"Job Commands the Directory.\n"},"priority":{"type":"integer","description":"The Job Priority.\n"},"queue":{"type":"string","description":"The Job Queue.\n"},"reRunable":{"type":"boolean","description":"If the Job Is Support for the Re-Run.\n"},"runasUser":{"type":"string","description":"The name of the user who performed the job.\n"},"stderrRedirectPath":{"type":"string","description":"Error Output Path.\n"},"stdoutRedirectPath":{"type":"string","description":"Standard Output Path and.\n"},"task":{"type":"integer","description":"A Single Compute Node Required Number of Tasks. Possible Values: 1~20000 .\n"},"thread":{"type":"integer","description":"A Single Task and the Number of Required Threads.\n"},"variables":{"type":"string","description":"The Job of the Environment Variable.\n"}},"requiredInputs":["commandLine","jobTemplateName"],"stateInputs":{"description":"Input properties used for looking up and filtering JobTemplate resources.\n","properties":{"arrayRequest":{"type":"string","description":"Queue Jobs, Is of the Form: 1-10:2.\n"},"clockTime":{"type":"string","description":"Job Maximum Run Time.\n"},"commandLine":{"type":"string","description":"Job Commands.\n"},"gpu":{"type":"integer","description":"A Single Compute Node Using the GPU Number.Possible Values: 1~20000.\n"},"jobTemplateName":{"type":"string","description":"A Job Template Name.\n"},"mem":{"type":"string","description":"A Single Compute Node Maximum Memory.\n"},"node":{"type":"integer","description":"Submit a Task Is Required for Computing the Number of Data Nodes to Be. Possible Values: 1~5000 .\n"},"packagePath":{"type":"string","description":"Job Commands the Directory.\n"},"priority":{"type":"integer","description":"The Job Priority.\n"},"queue":{"type":"string","description":"The Job Queue.\n"},"reRunable":{"type":"boolean","description":"If the Job Is Support for the Re-Run.\n"},"runasUser":{"type":"string","description":"The name of the user who performed the job.\n"},"stderrRedirectPath":{"type":"string","description":"Error Output Path.\n"},"stdoutRedirectPath":{"type":"string","description":"Standard Output Path and.\n"},"task":{"type":"integer","description":"A Single Compute Node Required Number of Tasks. Possible Values: 1~20000 .\n"},"thread":{"type":"integer","description":"A Single Task and the Number of Required Threads.\n"},"variables":{"type":"string","description":"The Job of the Environment Variable.\n"}},"type":"object"}},"alicloud:ehpc/queue:Queue":{"description":"Provides a Ehpc Queue resource.\n\nE-HPC the compute queue of the cluster.\n\nFor information about Ehpc Queue and how to use it, see [What is Queue](https://next.api.alibabacloud.com/document/EHPC/2024-07-30/CreateQueue).\n\n\u003e **NOTE:** Available since v1.266.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst queueMinimalExampleVpc = new alicloud.vpc.Network(\"queue_minimal_example_vpc\", {\n    isDefault: false,\n    cidrBlock: \"10.0.0.0/8\",\n    vpcName: \"example-cluster-vpc\",\n});\nconst queueMinimalExampleVswitch = new alicloud.vpc.Switch(\"queue_minimal_example_vswitch\", {\n    isDefault: false,\n    vpcId: queueMinimalExampleVpc.id,\n    zoneId: \"cn-hangzhou-k\",\n    cidrBlock: \"10.0.0.0/24\",\n    vswitchName: \"example-cluster-vsw\",\n});\nconst queueMinimalExampleNas = new alicloud.nas.FileSystem(\"queue_minimal_example_nas\", {\n    description: \"example-cluster-nas\",\n    storageType: \"Capacity\",\n    nfsAcl: {\n        enabled: false,\n    },\n    zoneId: \"cn-hangzhou-k\",\n    encryptType: 0,\n    protocolType: \"NFS\",\n    fileSystemType: \"standard\",\n});\nconst queueMinimalExampleAccessGroup = new alicloud.nas.AccessGroup(\"queue_minimal_example_access_group\", {\n    accessGroupType: \"Vpc\",\n    description: name,\n    accessGroupName: \"StandardMountTarget\",\n    fileSystemType: \"standard\",\n});\nconst queueMinimalExampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"queue_minimal_example_security_group\", {\n    vpcId: queueMinimalExampleVpc.id,\n    securityGroupType: \"normal\",\n});\nconst queueMinimalExampleMountDomain = new alicloud.nas.MountTarget(\"queue_minimal_example_mount_domain\", {\n    vpcId: queueMinimalExampleVpc.id,\n    networkType: \"Vpc\",\n    accessGroupName: queueMinimalExampleAccessGroup.accessGroupName,\n    vswitchId: queueMinimalExampleVswitch.id,\n    fileSystemId: queueMinimalExampleNas.id,\n});\nconst queueMinimalExampleAccessRule = new alicloud.nas.AccessRule(\"queue_minimal_example_access_rule\", {\n    priority: 1,\n    accessGroupName: queueMinimalExampleAccessGroup.accessGroupName,\n    fileSystemType: queueMinimalExampleNas.fileSystemType,\n    sourceCidrIp: \"10.0.0.0/8\",\n});\nconst queueMinimalClusterExample = new alicloud.ehpc.ClusterV2(\"queue_minimal_cluster_example\", {\n    clusterCredentials: {\n        password: \"aliHPC123\",\n    },\n    clusterVpcId: queueMinimalExampleVpc.id,\n    clusterCategory: \"Standard\",\n    clusterMode: \"Integrated\",\n    securityGroupId: queueMinimalExampleSecurityGroup.id,\n    addons: [{\n        version: \"1.0\",\n        servicesSpec: `[\n        {\n          \\\\\"ServiceName\\\\\": \\\\\"SSH\\\\\",\n          \\\\\"NetworkACL\\\\\": [\n            {\n              \\\\\"Port\\\\\": 22,\n              \\\\\"SourceCidrIp\\\\\": \\\\\"0.0.0.0/0\\\\\",\n              \\\\\"IpProtocol\\\\\": \\\\\"TCP\\\\\"\n            }\n          ]\n        },\n        {\n          \\\\\"ServiceName\\\\\": \\\\\"VNC\\\\\",\n          \\\\\"NetworkACL\\\\\": [\n            {\n              \\\\\"Port\\\\\": 12016,\n              \\\\\"SourceCidrIp\\\\\": \\\\\"0.0.0.0/0\\\\\",\n              \\\\\"IpProtocol\\\\\": \\\\\"TCP\\\\\"\n            }\n          ]\n        },\n        {\n          \\\\\"ServiceName\\\\\": \\\\\"CLIENT\\\\\",\n          \\\\\"ServiceAccessType\\\\\": \\\\\"URL\\\\\",\n          \\\\\"ServiceAccessUrl\\\\\": \\\\\"https://ehpc-app.oss-cn-hangzhou.aliyuncs.com/ClientRelease/E-HPC-Client-Mac-zh-cn.zip\\\\\",\n          \\\\\"NetworkACL\\\\\": [\n            {\n              \\\\\"Port\\\\\": 12011,\n              \\\\\"SourceCidrIp\\\\\": \\\\\"0.0.0.0/0\\\\\",\n              \\\\\"IpProtocol\\\\\": \\\\\"TCP\\\\\"\n            }\n          ]\n        }\n      ]\n`,\n        resourcesSpec: `{\n        \\\\\"EipResource\\\\\": {\n          \\\\\"AutoCreate\\\\\": true\n        },\n        \\\\\"EcsResources\\\\\": [\n          {\n            \\\\\"ImageId\\\\\": \\\\\"centos_7_6_x64_20G_alibase_20211130.vhd\\\\\",\n            \\\\\"EnableHT\\\\\": true,\n            \\\\\"InstanceChargeType\\\\\": \\\\\"PostPaid\\\\\",\n            \\\\\"InstanceType\\\\\": \\\\\"ecs.c7.xlarge\\\\\",\n            \\\\\"SpotStrategy\\\\\": \\\\\"NoSpot\\\\\",\n            \\\\\"SystemDisk\\\\\": {\n              \\\\\"Category\\\\\": \\\\\"cloud_essd\\\\\",\n              \\\\\"Size\\\\\": 40,\n              \\\\\"Level\\\\\": \\\\\"PL0\\\\\"\n            },\n            \\\\\"DataDisks\\\\\": [\n              {\n                \\\\\"Category\\\\\": \\\\\"cloud_essd\\\\\",\n                \\\\\"Size\\\\\": 40,\n                \\\\\"Level\\\\\": \\\\\"PL0\\\\\"\n              }\n            ]\n          }\n        ]\n      }\n`,\n        name: \"Login\",\n    }],\n    clusterName: \"minimal-example-cluster\",\n    deletionProtection: false,\n    sharedStorages: [\n        {\n            mountDirectory: \"/home\",\n            nasDirectory: \"/\",\n            mountTargetDomain: queueMinimalExampleMountDomain.mountTargetDomain,\n            protocolType: \"NFS\",\n            fileSystemId: queueMinimalExampleNas.id,\n            mountOptions: \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n        },\n        {\n            mountDirectory: \"/opt\",\n            nasDirectory: \"/\",\n            mountTargetDomain: queueMinimalExampleMountDomain.mountTargetDomain,\n            protocolType: \"NFS\",\n            fileSystemId: queueMinimalExampleNas.id,\n            mountOptions: \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n        },\n        {\n            mountDirectory: \"/ehpcdata\",\n            nasDirectory: \"/\",\n            mountTargetDomain: queueMinimalExampleMountDomain.mountTargetDomain,\n            protocolType: \"NFS\",\n            fileSystemId: queueMinimalExampleNas.id,\n            mountOptions: \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n        },\n    ],\n    clusterVswitchId: queueMinimalExampleVswitch.id,\n    manager: {\n        managerNode: {\n            systemDisk: {\n                category: \"cloud_essd\",\n                size: 40,\n                level: \"PL0\",\n            },\n            enableHt: true,\n            instanceChargeType: \"PostPaid\",\n            imageId: \"centos_7_6_x64_20G_alibase_20211130.vhd\",\n            instanceType: \"ecs.c6.xlarge\",\n            spotStrategy: \"NoSpot\",\n        },\n        scheduler: {\n            type: \"SLURM\",\n            version: \"22.05.8\",\n        },\n        dns: {\n            type: \"nis\",\n            version: \"1.0\",\n        },\n        directoryService: {\n            type: \"nis\",\n            version: \"1.0\",\n        },\n    },\n}, {\n    dependsOn: [queueMinimalExampleAccessRule],\n});\nconst _default = new alicloud.ehpc.Queue(\"default\", {\n    clusterId: queueMinimalClusterExample.id,\n    queueName: \"autoque1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nqueue_minimal_example_vpc = alicloud.vpc.Network(\"queue_minimal_example_vpc\",\n    is_default=False,\n    cidr_block=\"10.0.0.0/8\",\n    vpc_name=\"example-cluster-vpc\")\nqueue_minimal_example_vswitch = alicloud.vpc.Switch(\"queue_minimal_example_vswitch\",\n    is_default=False,\n    vpc_id=queue_minimal_example_vpc.id,\n    zone_id=\"cn-hangzhou-k\",\n    cidr_block=\"10.0.0.0/24\",\n    vswitch_name=\"example-cluster-vsw\")\nqueue_minimal_example_nas = alicloud.nas.FileSystem(\"queue_minimal_example_nas\",\n    description=\"example-cluster-nas\",\n    storage_type=\"Capacity\",\n    nfs_acl={\n        \"enabled\": False,\n    },\n    zone_id=\"cn-hangzhou-k\",\n    encrypt_type=0,\n    protocol_type=\"NFS\",\n    file_system_type=\"standard\")\nqueue_minimal_example_access_group = alicloud.nas.AccessGroup(\"queue_minimal_example_access_group\",\n    access_group_type=\"Vpc\",\n    description=name,\n    access_group_name=\"StandardMountTarget\",\n    file_system_type=\"standard\")\nqueue_minimal_example_security_group = alicloud.ecs.SecurityGroup(\"queue_minimal_example_security_group\",\n    vpc_id=queue_minimal_example_vpc.id,\n    security_group_type=\"normal\")\nqueue_minimal_example_mount_domain = alicloud.nas.MountTarget(\"queue_minimal_example_mount_domain\",\n    vpc_id=queue_minimal_example_vpc.id,\n    network_type=\"Vpc\",\n    access_group_name=queue_minimal_example_access_group.access_group_name,\n    vswitch_id=queue_minimal_example_vswitch.id,\n    file_system_id=queue_minimal_example_nas.id)\nqueue_minimal_example_access_rule = alicloud.nas.AccessRule(\"queue_minimal_example_access_rule\",\n    priority=1,\n    access_group_name=queue_minimal_example_access_group.access_group_name,\n    file_system_type=queue_minimal_example_nas.file_system_type,\n    source_cidr_ip=\"10.0.0.0/8\")\nqueue_minimal_cluster_example = alicloud.ehpc.ClusterV2(\"queue_minimal_cluster_example\",\n    cluster_credentials={\n        \"password\": \"aliHPC123\",\n    },\n    cluster_vpc_id=queue_minimal_example_vpc.id,\n    cluster_category=\"Standard\",\n    cluster_mode=\"Integrated\",\n    security_group_id=queue_minimal_example_security_group.id,\n    addons=[{\n        \"version\": \"1.0\",\n        \"services_spec\": \"\"\"[\n        {\n          \\\"ServiceName\\\": \\\"SSH\\\",\n          \\\"NetworkACL\\\": [\n            {\n              \\\"Port\\\": 22,\n              \\\"SourceCidrIp\\\": \\\"0.0.0.0/0\\\",\n              \\\"IpProtocol\\\": \\\"TCP\\\"\n            }\n          ]\n        },\n        {\n          \\\"ServiceName\\\": \\\"VNC\\\",\n          \\\"NetworkACL\\\": [\n            {\n              \\\"Port\\\": 12016,\n              \\\"SourceCidrIp\\\": \\\"0.0.0.0/0\\\",\n              \\\"IpProtocol\\\": \\\"TCP\\\"\n            }\n          ]\n        },\n        {\n          \\\"ServiceName\\\": \\\"CLIENT\\\",\n          \\\"ServiceAccessType\\\": \\\"URL\\\",\n          \\\"ServiceAccessUrl\\\": \\\"https://ehpc-app.oss-cn-hangzhou.aliyuncs.com/ClientRelease/E-HPC-Client-Mac-zh-cn.zip\\\",\n          \\\"NetworkACL\\\": [\n            {\n              \\\"Port\\\": 12011,\n              \\\"SourceCidrIp\\\": \\\"0.0.0.0/0\\\",\n              \\\"IpProtocol\\\": \\\"TCP\\\"\n            }\n          ]\n        }\n      ]\n\"\"\",\n        \"resources_spec\": \"\"\"{\n        \\\"EipResource\\\": {\n          \\\"AutoCreate\\\": true\n        },\n        \\\"EcsResources\\\": [\n          {\n            \\\"ImageId\\\": \\\"centos_7_6_x64_20G_alibase_20211130.vhd\\\",\n            \\\"EnableHT\\\": true,\n            \\\"InstanceChargeType\\\": \\\"PostPaid\\\",\n            \\\"InstanceType\\\": \\\"ecs.c7.xlarge\\\",\n            \\\"SpotStrategy\\\": \\\"NoSpot\\\",\n            \\\"SystemDisk\\\": {\n              \\\"Category\\\": \\\"cloud_essd\\\",\n              \\\"Size\\\": 40,\n              \\\"Level\\\": \\\"PL0\\\"\n            },\n            \\\"DataDisks\\\": [\n              {\n                \\\"Category\\\": \\\"cloud_essd\\\",\n                \\\"Size\\\": 40,\n                \\\"Level\\\": \\\"PL0\\\"\n              }\n            ]\n          }\n        ]\n      }\n\"\"\",\n        \"name\": \"Login\",\n    }],\n    cluster_name=\"minimal-example-cluster\",\n    deletion_protection=False,\n    shared_storages=[\n        {\n            \"mount_directory\": \"/home\",\n            \"nas_directory\": \"/\",\n            \"mount_target_domain\": queue_minimal_example_mount_domain.mount_target_domain,\n            \"protocol_type\": \"NFS\",\n            \"file_system_id\": queue_minimal_example_nas.id,\n            \"mount_options\": \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n        },\n        {\n            \"mount_directory\": \"/opt\",\n            \"nas_directory\": \"/\",\n            \"mount_target_domain\": queue_minimal_example_mount_domain.mount_target_domain,\n            \"protocol_type\": \"NFS\",\n            \"file_system_id\": queue_minimal_example_nas.id,\n            \"mount_options\": \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n        },\n        {\n            \"mount_directory\": \"/ehpcdata\",\n            \"nas_directory\": \"/\",\n            \"mount_target_domain\": queue_minimal_example_mount_domain.mount_target_domain,\n            \"protocol_type\": \"NFS\",\n            \"file_system_id\": queue_minimal_example_nas.id,\n            \"mount_options\": \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n        },\n    ],\n    cluster_vswitch_id=queue_minimal_example_vswitch.id,\n    manager={\n        \"manager_node\": {\n            \"system_disk\": {\n                \"category\": \"cloud_essd\",\n                \"size\": 40,\n                \"level\": \"PL0\",\n            },\n            \"enable_ht\": True,\n            \"instance_charge_type\": \"PostPaid\",\n            \"image_id\": \"centos_7_6_x64_20G_alibase_20211130.vhd\",\n            \"instance_type\": \"ecs.c6.xlarge\",\n            \"spot_strategy\": \"NoSpot\",\n        },\n        \"scheduler\": {\n            \"type\": \"SLURM\",\n            \"version\": \"22.05.8\",\n        },\n        \"dns\": {\n            \"type\": \"nis\",\n            \"version\": \"1.0\",\n        },\n        \"directory_service\": {\n            \"type\": \"nis\",\n            \"version\": \"1.0\",\n        },\n    },\n    opts = pulumi.ResourceOptions(depends_on=[queue_minimal_example_access_rule]))\ndefault = alicloud.ehpc.Queue(\"default\",\n    cluster_id=queue_minimal_cluster_example.id,\n    queue_name=\"autoque1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var queueMinimalExampleVpc = new AliCloud.Vpc.Network(\"queue_minimal_example_vpc\", new()\n    {\n        IsDefault = false,\n        CidrBlock = \"10.0.0.0/8\",\n        VpcName = \"example-cluster-vpc\",\n    });\n\n    var queueMinimalExampleVswitch = new AliCloud.Vpc.Switch(\"queue_minimal_example_vswitch\", new()\n    {\n        IsDefault = false,\n        VpcId = queueMinimalExampleVpc.Id,\n        ZoneId = \"cn-hangzhou-k\",\n        CidrBlock = \"10.0.0.0/24\",\n        VswitchName = \"example-cluster-vsw\",\n    });\n\n    var queueMinimalExampleNas = new AliCloud.Nas.FileSystem(\"queue_minimal_example_nas\", new()\n    {\n        Description = \"example-cluster-nas\",\n        StorageType = \"Capacity\",\n        NfsAcl = new AliCloud.Nas.Inputs.FileSystemNfsAclArgs\n        {\n            Enabled = false,\n        },\n        ZoneId = \"cn-hangzhou-k\",\n        EncryptType = 0,\n        ProtocolType = \"NFS\",\n        FileSystemType = \"standard\",\n    });\n\n    var queueMinimalExampleAccessGroup = new AliCloud.Nas.AccessGroup(\"queue_minimal_example_access_group\", new()\n    {\n        AccessGroupType = \"Vpc\",\n        Description = name,\n        AccessGroupName = \"StandardMountTarget\",\n        FileSystemType = \"standard\",\n    });\n\n    var queueMinimalExampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"queue_minimal_example_security_group\", new()\n    {\n        VpcId = queueMinimalExampleVpc.Id,\n        SecurityGroupType = \"normal\",\n    });\n\n    var queueMinimalExampleMountDomain = new AliCloud.Nas.MountTarget(\"queue_minimal_example_mount_domain\", new()\n    {\n        VpcId = queueMinimalExampleVpc.Id,\n        NetworkType = \"Vpc\",\n        AccessGroupName = queueMinimalExampleAccessGroup.AccessGroupName,\n        VswitchId = queueMinimalExampleVswitch.Id,\n        FileSystemId = queueMinimalExampleNas.Id,\n    });\n\n    var queueMinimalExampleAccessRule = new AliCloud.Nas.AccessRule(\"queue_minimal_example_access_rule\", new()\n    {\n        Priority = 1,\n        AccessGroupName = queueMinimalExampleAccessGroup.AccessGroupName,\n        FileSystemType = queueMinimalExampleNas.FileSystemType,\n        SourceCidrIp = \"10.0.0.0/8\",\n    });\n\n    var queueMinimalClusterExample = new AliCloud.Ehpc.ClusterV2(\"queue_minimal_cluster_example\", new()\n    {\n        ClusterCredentials = new AliCloud.Ehpc.Inputs.ClusterV2ClusterCredentialsArgs\n        {\n            Password = \"aliHPC123\",\n        },\n        ClusterVpcId = queueMinimalExampleVpc.Id,\n        ClusterCategory = \"Standard\",\n        ClusterMode = \"Integrated\",\n        SecurityGroupId = queueMinimalExampleSecurityGroup.Id,\n        Addons = new[]\n        {\n            new AliCloud.Ehpc.Inputs.ClusterV2AddonArgs\n            {\n                Version = \"1.0\",\n                ServicesSpec = @\"[\n        {\n          \\\"\"ServiceName\\\"\": \\\"\"SSH\\\"\",\n          \\\"\"NetworkACL\\\"\": [\n            {\n              \\\"\"Port\\\"\": 22,\n              \\\"\"SourceCidrIp\\\"\": \\\"\"0.0.0.0/0\\\"\",\n              \\\"\"IpProtocol\\\"\": \\\"\"TCP\\\"\"\n            }\n          ]\n        },\n        {\n          \\\"\"ServiceName\\\"\": \\\"\"VNC\\\"\",\n          \\\"\"NetworkACL\\\"\": [\n            {\n              \\\"\"Port\\\"\": 12016,\n              \\\"\"SourceCidrIp\\\"\": \\\"\"0.0.0.0/0\\\"\",\n              \\\"\"IpProtocol\\\"\": \\\"\"TCP\\\"\"\n            }\n          ]\n        },\n        {\n          \\\"\"ServiceName\\\"\": \\\"\"CLIENT\\\"\",\n          \\\"\"ServiceAccessType\\\"\": \\\"\"URL\\\"\",\n          \\\"\"ServiceAccessUrl\\\"\": \\\"\"https://ehpc-app.oss-cn-hangzhou.aliyuncs.com/ClientRelease/E-HPC-Client-Mac-zh-cn.zip\\\"\",\n          \\\"\"NetworkACL\\\"\": [\n            {\n              \\\"\"Port\\\"\": 12011,\n              \\\"\"SourceCidrIp\\\"\": \\\"\"0.0.0.0/0\\\"\",\n              \\\"\"IpProtocol\\\"\": \\\"\"TCP\\\"\"\n            }\n          ]\n        }\n      ]\n\",\n                ResourcesSpec = @\"{\n        \\\"\"EipResource\\\"\": {\n          \\\"\"AutoCreate\\\"\": true\n        },\n        \\\"\"EcsResources\\\"\": [\n          {\n            \\\"\"ImageId\\\"\": \\\"\"centos_7_6_x64_20G_alibase_20211130.vhd\\\"\",\n            \\\"\"EnableHT\\\"\": true,\n            \\\"\"InstanceChargeType\\\"\": \\\"\"PostPaid\\\"\",\n            \\\"\"InstanceType\\\"\": \\\"\"ecs.c7.xlarge\\\"\",\n            \\\"\"SpotStrategy\\\"\": \\\"\"NoSpot\\\"\",\n            \\\"\"SystemDisk\\\"\": {\n              \\\"\"Category\\\"\": \\\"\"cloud_essd\\\"\",\n              \\\"\"Size\\\"\": 40,\n              \\\"\"Level\\\"\": \\\"\"PL0\\\"\"\n            },\n            \\\"\"DataDisks\\\"\": [\n              {\n                \\\"\"Category\\\"\": \\\"\"cloud_essd\\\"\",\n                \\\"\"Size\\\"\": 40,\n                \\\"\"Level\\\"\": \\\"\"PL0\\\"\"\n              }\n            ]\n          }\n        ]\n      }\n\",\n                Name = \"Login\",\n            },\n        },\n        ClusterName = \"minimal-example-cluster\",\n        DeletionProtection = false,\n        SharedStorages = new[]\n        {\n            new AliCloud.Ehpc.Inputs.ClusterV2SharedStorageArgs\n            {\n                MountDirectory = \"/home\",\n                NasDirectory = \"/\",\n                MountTargetDomain = queueMinimalExampleMountDomain.MountTargetDomain,\n                ProtocolType = \"NFS\",\n                FileSystemId = queueMinimalExampleNas.Id,\n                MountOptions = \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n            },\n            new AliCloud.Ehpc.Inputs.ClusterV2SharedStorageArgs\n            {\n                MountDirectory = \"/opt\",\n                NasDirectory = \"/\",\n                MountTargetDomain = queueMinimalExampleMountDomain.MountTargetDomain,\n                ProtocolType = \"NFS\",\n                FileSystemId = queueMinimalExampleNas.Id,\n                MountOptions = \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n            },\n            new AliCloud.Ehpc.Inputs.ClusterV2SharedStorageArgs\n            {\n                MountDirectory = \"/ehpcdata\",\n                NasDirectory = \"/\",\n                MountTargetDomain = queueMinimalExampleMountDomain.MountTargetDomain,\n                ProtocolType = \"NFS\",\n                FileSystemId = queueMinimalExampleNas.Id,\n                MountOptions = \"-t nfs -o vers=3,nolock,proto=tcp,noresvport\",\n            },\n        },\n        ClusterVswitchId = queueMinimalExampleVswitch.Id,\n        Manager = new AliCloud.Ehpc.Inputs.ClusterV2ManagerArgs\n        {\n            ManagerNode = new AliCloud.Ehpc.Inputs.ClusterV2ManagerManagerNodeArgs\n            {\n                SystemDisk = new AliCloud.Ehpc.Inputs.ClusterV2ManagerManagerNodeSystemDiskArgs\n                {\n                    Category = \"cloud_essd\",\n                    Size = 40,\n                    Level = \"PL0\",\n                },\n                EnableHt = true,\n                InstanceChargeType = \"PostPaid\",\n                ImageId = \"centos_7_6_x64_20G_alibase_20211130.vhd\",\n                InstanceType = \"ecs.c6.xlarge\",\n                SpotStrategy = \"NoSpot\",\n            },\n            Scheduler = new AliCloud.Ehpc.Inputs.ClusterV2ManagerSchedulerArgs\n            {\n                Type = \"SLURM\",\n                Version = \"22.05.8\",\n            },\n            Dns = new AliCloud.Ehpc.Inputs.ClusterV2ManagerDnsArgs\n            {\n                Type = \"nis\",\n                Version = \"1.0\",\n            },\n            DirectoryService = new AliCloud.Ehpc.Inputs.ClusterV2ManagerDirectoryServiceArgs\n            {\n                Type = \"nis\",\n                Version = \"1.0\",\n            },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            queueMinimalExampleAccessRule,\n        },\n    });\n\n    var @default = new AliCloud.Ehpc.Queue(\"default\", new()\n    {\n        ClusterId = queueMinimalClusterExample.Id,\n        QueueName = \"autoque1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ehpc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tqueueMinimalExampleVpc, err := vpc.NewNetwork(ctx, \"queue_minimal_example_vpc\", \u0026vpc.NetworkArgs{\n\t\t\tIsDefault: pulumi.Bool(false),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t\tVpcName:   pulumi.String(\"example-cluster-vpc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqueueMinimalExampleVswitch, err := vpc.NewSwitch(ctx, \"queue_minimal_example_vswitch\", \u0026vpc.SwitchArgs{\n\t\t\tIsDefault:   pulumi.Bool(false),\n\t\t\tVpcId:       queueMinimalExampleVpc.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-k\"),\n\t\t\tCidrBlock:   pulumi.String(\"10.0.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"example-cluster-vsw\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqueueMinimalExampleNas, err := nas.NewFileSystem(ctx, \"queue_minimal_example_nas\", \u0026nas.FileSystemArgs{\n\t\t\tDescription: pulumi.String(\"example-cluster-nas\"),\n\t\t\tStorageType: pulumi.String(\"Capacity\"),\n\t\t\tNfsAcl: \u0026nas.FileSystemNfsAclArgs{\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tZoneId:         pulumi.String(\"cn-hangzhou-k\"),\n\t\t\tEncryptType:    pulumi.Int(0),\n\t\t\tProtocolType:   pulumi.String(\"NFS\"),\n\t\t\tFileSystemType: pulumi.String(\"standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqueueMinimalExampleAccessGroup, err := nas.NewAccessGroup(ctx, \"queue_minimal_example_access_group\", \u0026nas.AccessGroupArgs{\n\t\t\tAccessGroupType: pulumi.String(\"Vpc\"),\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tAccessGroupName: pulumi.String(\"StandardMountTarget\"),\n\t\t\tFileSystemType:  pulumi.String(\"standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqueueMinimalExampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"queue_minimal_example_security_group\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId:             queueMinimalExampleVpc.ID(),\n\t\t\tSecurityGroupType: pulumi.String(\"normal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqueueMinimalExampleMountDomain, err := nas.NewMountTarget(ctx, \"queue_minimal_example_mount_domain\", \u0026nas.MountTargetArgs{\n\t\t\tVpcId:           queueMinimalExampleVpc.ID(),\n\t\t\tNetworkType:     pulumi.String(\"Vpc\"),\n\t\t\tAccessGroupName: queueMinimalExampleAccessGroup.AccessGroupName,\n\t\t\tVswitchId:       queueMinimalExampleVswitch.ID(),\n\t\t\tFileSystemId:    queueMinimalExampleNas.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqueueMinimalExampleAccessRule, err := nas.NewAccessRule(ctx, \"queue_minimal_example_access_rule\", \u0026nas.AccessRuleArgs{\n\t\t\tPriority:        pulumi.Int(1),\n\t\t\tAccessGroupName: queueMinimalExampleAccessGroup.AccessGroupName,\n\t\t\tFileSystemType:  queueMinimalExampleNas.FileSystemType,\n\t\t\tSourceCidrIp:    pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqueueMinimalClusterExample, err := ehpc.NewClusterV2(ctx, \"queue_minimal_cluster_example\", \u0026ehpc.ClusterV2Args{\n\t\t\tClusterCredentials: \u0026ehpc.ClusterV2ClusterCredentialsArgs{\n\t\t\t\tPassword: pulumi.String(\"aliHPC123\"),\n\t\t\t},\n\t\t\tClusterVpcId:    queueMinimalExampleVpc.ID(),\n\t\t\tClusterCategory: pulumi.String(\"Standard\"),\n\t\t\tClusterMode:     pulumi.String(\"Integrated\"),\n\t\t\tSecurityGroupId: queueMinimalExampleSecurityGroup.ID(),\n\t\t\tAddons: ehpc.ClusterV2AddonArray{\n\t\t\t\t\u0026ehpc.ClusterV2AddonArgs{\n\t\t\t\t\tVersion: pulumi.String(\"1.0\"),\n\t\t\t\t\tServicesSpec: pulumi.String(`[\n        {\n          \\\"ServiceName\\\": \\\"SSH\\\",\n          \\\"NetworkACL\\\": [\n            {\n              \\\"Port\\\": 22,\n              \\\"SourceCidrIp\\\": \\\"0.0.0.0/0\\\",\n              \\\"IpProtocol\\\": \\\"TCP\\\"\n            }\n          ]\n        },\n        {\n          \\\"ServiceName\\\": \\\"VNC\\\",\n          \\\"NetworkACL\\\": [\n            {\n              \\\"Port\\\": 12016,\n              \\\"SourceCidrIp\\\": \\\"0.0.0.0/0\\\",\n              \\\"IpProtocol\\\": \\\"TCP\\\"\n            }\n          ]\n        },\n        {\n          \\\"ServiceName\\\": \\\"CLIENT\\\",\n          \\\"ServiceAccessType\\\": \\\"URL\\\",\n          \\\"ServiceAccessUrl\\\": \\\"https://ehpc-app.oss-cn-hangzhou.aliyuncs.com/ClientRelease/E-HPC-Client-Mac-zh-cn.zip\\\",\n          \\\"NetworkACL\\\": [\n            {\n              \\\"Port\\\": 12011,\n              \\\"SourceCidrIp\\\": \\\"0.0.0.0/0\\\",\n              \\\"IpProtocol\\\": \\\"TCP\\\"\n            }\n          ]\n        }\n      ]\n`),\n\t\t\t\t\tResourcesSpec: pulumi.String(`{\n        \\\"EipResource\\\": {\n          \\\"AutoCreate\\\": true\n        },\n        \\\"EcsResources\\\": [\n          {\n            \\\"ImageId\\\": \\\"centos_7_6_x64_20G_alibase_20211130.vhd\\\",\n            \\\"EnableHT\\\": true,\n            \\\"InstanceChargeType\\\": \\\"PostPaid\\\",\n            \\\"InstanceType\\\": \\\"ecs.c7.xlarge\\\",\n            \\\"SpotStrategy\\\": \\\"NoSpot\\\",\n            \\\"SystemDisk\\\": {\n              \\\"Category\\\": \\\"cloud_essd\\\",\n              \\\"Size\\\": 40,\n              \\\"Level\\\": \\\"PL0\\\"\n            },\n            \\\"DataDisks\\\": [\n              {\n                \\\"Category\\\": \\\"cloud_essd\\\",\n                \\\"Size\\\": 40,\n                \\\"Level\\\": \\\"PL0\\\"\n              }\n            ]\n          }\n        ]\n      }\n`),\n\t\t\t\t\tName: pulumi.String(\"Login\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tClusterName:        pulumi.String(\"minimal-example-cluster\"),\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tSharedStorages: ehpc.ClusterV2SharedStorageArray{\n\t\t\t\t\u0026ehpc.ClusterV2SharedStorageArgs{\n\t\t\t\t\tMountDirectory:    pulumi.String(\"/home\"),\n\t\t\t\t\tNasDirectory:      pulumi.String(\"/\"),\n\t\t\t\t\tMountTargetDomain: queueMinimalExampleMountDomain.MountTargetDomain,\n\t\t\t\t\tProtocolType:      pulumi.String(\"NFS\"),\n\t\t\t\t\tFileSystemId:      queueMinimalExampleNas.ID(),\n\t\t\t\t\tMountOptions:      pulumi.String(\"-t nfs -o vers=3,nolock,proto=tcp,noresvport\"),\n\t\t\t\t},\n\t\t\t\t\u0026ehpc.ClusterV2SharedStorageArgs{\n\t\t\t\t\tMountDirectory:    pulumi.String(\"/opt\"),\n\t\t\t\t\tNasDirectory:      pulumi.String(\"/\"),\n\t\t\t\t\tMountTargetDomain: queueMinimalExampleMountDomain.MountTargetDomain,\n\t\t\t\t\tProtocolType:      pulumi.String(\"NFS\"),\n\t\t\t\t\tFileSystemId:      queueMinimalExampleNas.ID(),\n\t\t\t\t\tMountOptions:      pulumi.String(\"-t nfs -o vers=3,nolock,proto=tcp,noresvport\"),\n\t\t\t\t},\n\t\t\t\t\u0026ehpc.ClusterV2SharedStorageArgs{\n\t\t\t\t\tMountDirectory:    pulumi.String(\"/ehpcdata\"),\n\t\t\t\t\tNasDirectory:      pulumi.String(\"/\"),\n\t\t\t\t\tMountTargetDomain: queueMinimalExampleMountDomain.MountTargetDomain,\n\t\t\t\t\tProtocolType:      pulumi.String(\"NFS\"),\n\t\t\t\t\tFileSystemId:      queueMinimalExampleNas.ID(),\n\t\t\t\t\tMountOptions:      pulumi.String(\"-t nfs -o vers=3,nolock,proto=tcp,noresvport\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tClusterVswitchId: queueMinimalExampleVswitch.ID(),\n\t\t\tManager: \u0026ehpc.ClusterV2ManagerArgs{\n\t\t\t\tManagerNode: \u0026ehpc.ClusterV2ManagerManagerNodeArgs{\n\t\t\t\t\tSystemDisk: \u0026ehpc.ClusterV2ManagerManagerNodeSystemDiskArgs{\n\t\t\t\t\t\tCategory: pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\tSize:     pulumi.Int(40),\n\t\t\t\t\t\tLevel:    pulumi.String(\"PL0\"),\n\t\t\t\t\t},\n\t\t\t\t\tEnableHt:           pulumi.Bool(true),\n\t\t\t\t\tInstanceChargeType: pulumi.String(\"PostPaid\"),\n\t\t\t\t\tImageId:            pulumi.String(\"centos_7_6_x64_20G_alibase_20211130.vhd\"),\n\t\t\t\t\tInstanceType:       pulumi.String(\"ecs.c6.xlarge\"),\n\t\t\t\t\tSpotStrategy:       pulumi.String(\"NoSpot\"),\n\t\t\t\t},\n\t\t\t\tScheduler: \u0026ehpc.ClusterV2ManagerSchedulerArgs{\n\t\t\t\t\tType:    pulumi.String(\"SLURM\"),\n\t\t\t\t\tVersion: pulumi.String(\"22.05.8\"),\n\t\t\t\t},\n\t\t\t\tDns: \u0026ehpc.ClusterV2ManagerDnsArgs{\n\t\t\t\t\tType:    pulumi.String(\"nis\"),\n\t\t\t\t\tVersion: pulumi.String(\"1.0\"),\n\t\t\t\t},\n\t\t\t\tDirectoryService: \u0026ehpc.ClusterV2ManagerDirectoryServiceArgs{\n\t\t\t\t\tType:    pulumi.String(\"nis\"),\n\t\t\t\t\tVersion: pulumi.String(\"1.0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tqueueMinimalExampleAccessRule,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ehpc.NewQueue(ctx, \"default\", \u0026ehpc.QueueArgs{\n\t\t\tClusterId: queueMinimalClusterExample.ID(),\n\t\t\tQueueName: pulumi.String(\"autoque1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.nas.FileSystem;\nimport com.pulumi.alicloud.nas.FileSystemArgs;\nimport com.pulumi.alicloud.nas.inputs.FileSystemNfsAclArgs;\nimport com.pulumi.alicloud.nas.AccessGroup;\nimport com.pulumi.alicloud.nas.AccessGroupArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.nas.MountTarget;\nimport com.pulumi.alicloud.nas.MountTargetArgs;\nimport com.pulumi.alicloud.nas.AccessRule;\nimport com.pulumi.alicloud.nas.AccessRuleArgs;\nimport com.pulumi.alicloud.ehpc.ClusterV2;\nimport com.pulumi.alicloud.ehpc.ClusterV2Args;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2ClusterCredentialsArgs;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2AddonArgs;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2SharedStorageArgs;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2ManagerArgs;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2ManagerManagerNodeArgs;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2ManagerManagerNodeSystemDiskArgs;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2ManagerSchedulerArgs;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2ManagerDnsArgs;\nimport com.pulumi.alicloud.ehpc.inputs.ClusterV2ManagerDirectoryServiceArgs;\nimport com.pulumi.alicloud.ehpc.Queue;\nimport com.pulumi.alicloud.ehpc.QueueArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var queueMinimalExampleVpc = new Network(\"queueMinimalExampleVpc\", NetworkArgs.builder()\n            .isDefault(false)\n            .cidrBlock(\"10.0.0.0/8\")\n            .vpcName(\"example-cluster-vpc\")\n            .build());\n\n        var queueMinimalExampleVswitch = new Switch(\"queueMinimalExampleVswitch\", SwitchArgs.builder()\n            .isDefault(false)\n            .vpcId(queueMinimalExampleVpc.id())\n            .zoneId(\"cn-hangzhou-k\")\n            .cidrBlock(\"10.0.0.0/24\")\n            .vswitchName(\"example-cluster-vsw\")\n            .build());\n\n        var queueMinimalExampleNas = new FileSystem(\"queueMinimalExampleNas\", FileSystemArgs.builder()\n            .description(\"example-cluster-nas\")\n            .storageType(\"Capacity\")\n            .nfsAcl(FileSystemNfsAclArgs.builder()\n                .enabled(false)\n                .build())\n            .zoneId(\"cn-hangzhou-k\")\n            .encryptType(0)\n            .protocolType(\"NFS\")\n            .fileSystemType(\"standard\")\n            .build());\n\n        var queueMinimalExampleAccessGroup = new AccessGroup(\"queueMinimalExampleAccessGroup\", AccessGroupArgs.builder()\n            .accessGroupType(\"Vpc\")\n            .description(name)\n            .accessGroupName(\"StandardMountTarget\")\n            .fileSystemType(\"standard\")\n            .build());\n\n        var queueMinimalExampleSecurityGroup = new SecurityGroup(\"queueMinimalExampleSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(queueMinimalExampleVpc.id())\n            .securityGroupType(\"normal\")\n            .build());\n\n        var queueMinimalExampleMountDomain = new MountTarget(\"queueMinimalExampleMountDomain\", MountTargetArgs.builder()\n            .vpcId(queueMinimalExampleVpc.id())\n            .networkType(\"Vpc\")\n            .accessGroupName(queueMinimalExampleAccessGroup.accessGroupName())\n            .vswitchId(queueMinimalExampleVswitch.id())\n            .fileSystemId(queueMinimalExampleNas.id())\n            .build());\n\n        var queueMinimalExampleAccessRule = new AccessRule(\"queueMinimalExampleAccessRule\", AccessRuleArgs.builder()\n            .priority(1)\n            .accessGroupName(queueMinimalExampleAccessGroup.accessGroupName())\n            .fileSystemType(queueMinimalExampleNas.fileSystemType())\n            .sourceCidrIp(\"10.0.0.0/8\")\n            .build());\n\n        var queueMinimalClusterExample = new ClusterV2(\"queueMinimalClusterExample\", ClusterV2Args.builder()\n            .clusterCredentials(ClusterV2ClusterCredentialsArgs.builder()\n                .password(\"aliHPC123\")\n                .build())\n            .clusterVpcId(queueMinimalExampleVpc.id())\n            .clusterCategory(\"Standard\")\n            .clusterMode(\"Integrated\")\n            .securityGroupId(queueMinimalExampleSecurityGroup.id())\n            .addons(ClusterV2AddonArgs.builder()\n                .version(\"1.0\")\n                .servicesSpec(\"\"\"\n[\n        {\n          \\\"ServiceName\\\": \\\"SSH\\\",\n          \\\"NetworkACL\\\": [\n            {\n              \\\"Port\\\": 22,\n              \\\"SourceCidrIp\\\": \\\"0.0.0.0/0\\\",\n              \\\"IpProtocol\\\": \\\"TCP\\\"\n            }\n          ]\n        },\n        {\n          \\\"ServiceName\\\": \\\"VNC\\\",\n          \\\"NetworkACL\\\": [\n            {\n              \\\"Port\\\": 12016,\n              \\\"SourceCidrIp\\\": \\\"0.0.0.0/0\\\",\n              \\\"IpProtocol\\\": \\\"TCP\\\"\n            }\n          ]\n        },\n        {\n          \\\"ServiceName\\\": \\\"CLIENT\\\",\n          \\\"ServiceAccessType\\\": \\\"URL\\\",\n          \\\"ServiceAccessUrl\\\": \\\"https://ehpc-app.oss-cn-hangzhou.aliyuncs.com/ClientRelease/E-HPC-Client-Mac-zh-cn.zip\\\",\n          \\\"NetworkACL\\\": [\n            {\n              \\\"Port\\\": 12011,\n              \\\"SourceCidrIp\\\": \\\"0.0.0.0/0\\\",\n              \\\"IpProtocol\\\": \\\"TCP\\\"\n            }\n          ]\n        }\n      ]\n                \"\"\")\n                .resourcesSpec(\"\"\"\n{\n        \\\"EipResource\\\": {\n          \\\"AutoCreate\\\": true\n        },\n        \\\"EcsResources\\\": [\n          {\n            \\\"ImageId\\\": \\\"centos_7_6_x64_20G_alibase_20211130.vhd\\\",\n            \\\"EnableHT\\\": true,\n            \\\"InstanceChargeType\\\": \\\"PostPaid\\\",\n            \\\"InstanceType\\\": \\\"ecs.c7.xlarge\\\",\n            \\\"SpotStrategy\\\": \\\"NoSpot\\\",\n            \\\"SystemDisk\\\": {\n              \\\"Category\\\": \\\"cloud_essd\\\",\n              \\\"Size\\\": 40,\n              \\\"Level\\\": \\\"PL0\\\"\n            },\n            \\\"DataDisks\\\": [\n              {\n                \\\"Category\\\": \\\"cloud_essd\\\",\n                \\\"Size\\\": 40,\n                \\\"Level\\\": \\\"PL0\\\"\n              }\n            ]\n          }\n        ]\n      }\n                \"\"\")\n                .name(\"Login\")\n                .build())\n            .clusterName(\"minimal-example-cluster\")\n            .deletionProtection(false)\n            .sharedStorages(            \n                ClusterV2SharedStorageArgs.builder()\n                    .mountDirectory(\"/home\")\n                    .nasDirectory(\"/\")\n                    .mountTargetDomain(queueMinimalExampleMountDomain.mountTargetDomain())\n                    .protocolType(\"NFS\")\n                    .fileSystemId(queueMinimalExampleNas.id())\n                    .mountOptions(\"-t nfs -o vers=3,nolock,proto=tcp,noresvport\")\n                    .build(),\n                ClusterV2SharedStorageArgs.builder()\n                    .mountDirectory(\"/opt\")\n                    .nasDirectory(\"/\")\n                    .mountTargetDomain(queueMinimalExampleMountDomain.mountTargetDomain())\n                    .protocolType(\"NFS\")\n                    .fileSystemId(queueMinimalExampleNas.id())\n                    .mountOptions(\"-t nfs -o vers=3,nolock,proto=tcp,noresvport\")\n                    .build(),\n                ClusterV2SharedStorageArgs.builder()\n                    .mountDirectory(\"/ehpcdata\")\n                    .nasDirectory(\"/\")\n                    .mountTargetDomain(queueMinimalExampleMountDomain.mountTargetDomain())\n                    .protocolType(\"NFS\")\n                    .fileSystemId(queueMinimalExampleNas.id())\n                    .mountOptions(\"-t nfs -o vers=3,nolock,proto=tcp,noresvport\")\n                    .build())\n            .clusterVswitchId(queueMinimalExampleVswitch.id())\n            .manager(ClusterV2ManagerArgs.builder()\n                .managerNode(ClusterV2ManagerManagerNodeArgs.builder()\n                    .systemDisk(ClusterV2ManagerManagerNodeSystemDiskArgs.builder()\n                        .category(\"cloud_essd\")\n                        .size(40)\n                        .level(\"PL0\")\n                        .build())\n                    .enableHt(true)\n                    .instanceChargeType(\"PostPaid\")\n                    .imageId(\"centos_7_6_x64_20G_alibase_20211130.vhd\")\n                    .instanceType(\"ecs.c6.xlarge\")\n                    .spotStrategy(\"NoSpot\")\n                    .build())\n                .scheduler(ClusterV2ManagerSchedulerArgs.builder()\n                    .type(\"SLURM\")\n                    .version(\"22.05.8\")\n                    .build())\n                .dns(ClusterV2ManagerDnsArgs.builder()\n                    .type(\"nis\")\n                    .version(\"1.0\")\n                    .build())\n                .directoryService(ClusterV2ManagerDirectoryServiceArgs.builder()\n                    .type(\"nis\")\n                    .version(\"1.0\")\n                    .build())\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(queueMinimalExampleAccessRule)\n                .build());\n\n        var default_ = new Queue(\"default\", QueueArgs.builder()\n            .clusterId(queueMinimalClusterExample.id())\n            .queueName(\"autoque1\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  queueMinimalExampleVpc:\n    type: alicloud:vpc:Network\n    name: queue_minimal_example_vpc\n    properties:\n      isDefault: false\n      cidrBlock: 10.0.0.0/8\n      vpcName: example-cluster-vpc\n  queueMinimalExampleVswitch:\n    type: alicloud:vpc:Switch\n    name: queue_minimal_example_vswitch\n    properties:\n      isDefault: false\n      vpcId: ${queueMinimalExampleVpc.id}\n      zoneId: cn-hangzhou-k\n      cidrBlock: 10.0.0.0/24\n      vswitchName: example-cluster-vsw\n  queueMinimalExampleNas:\n    type: alicloud:nas:FileSystem\n    name: queue_minimal_example_nas\n    properties:\n      description: example-cluster-nas\n      storageType: Capacity\n      nfsAcl:\n        enabled: false\n      zoneId: cn-hangzhou-k\n      encryptType: '0'\n      protocolType: NFS\n      fileSystemType: standard\n  queueMinimalExampleAccessGroup:\n    type: alicloud:nas:AccessGroup\n    name: queue_minimal_example_access_group\n    properties:\n      accessGroupType: Vpc\n      description: ${name}\n      accessGroupName: StandardMountTarget\n      fileSystemType: standard\n  queueMinimalExampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: queue_minimal_example_security_group\n    properties:\n      vpcId: ${queueMinimalExampleVpc.id}\n      securityGroupType: normal\n  queueMinimalExampleMountDomain:\n    type: alicloud:nas:MountTarget\n    name: queue_minimal_example_mount_domain\n    properties:\n      vpcId: ${queueMinimalExampleVpc.id}\n      networkType: Vpc\n      accessGroupName: ${queueMinimalExampleAccessGroup.accessGroupName}\n      vswitchId: ${queueMinimalExampleVswitch.id}\n      fileSystemId: ${queueMinimalExampleNas.id}\n  queueMinimalExampleAccessRule:\n    type: alicloud:nas:AccessRule\n    name: queue_minimal_example_access_rule\n    properties:\n      priority: '1'\n      accessGroupName: ${queueMinimalExampleAccessGroup.accessGroupName}\n      fileSystemType: ${queueMinimalExampleNas.fileSystemType}\n      sourceCidrIp: 10.0.0.0/8\n  queueMinimalClusterExample:\n    type: alicloud:ehpc:ClusterV2\n    name: queue_minimal_cluster_example\n    properties:\n      clusterCredentials:\n        password: aliHPC123\n      clusterVpcId: ${queueMinimalExampleVpc.id}\n      clusterCategory: Standard\n      clusterMode: Integrated\n      securityGroupId: ${queueMinimalExampleSecurityGroup.id}\n      addons:\n        - version: '1.0'\n          servicesSpec: |\n            [\n                    {\n                      \\\"ServiceName\\\": \\\"SSH\\\",\n                      \\\"NetworkACL\\\": [\n                        {\n                          \\\"Port\\\": 22,\n                          \\\"SourceCidrIp\\\": \\\"0.0.0.0/0\\\",\n                          \\\"IpProtocol\\\": \\\"TCP\\\"\n                        }\n                      ]\n                    },\n                    {\n                      \\\"ServiceName\\\": \\\"VNC\\\",\n                      \\\"NetworkACL\\\": [\n                        {\n                          \\\"Port\\\": 12016,\n                          \\\"SourceCidrIp\\\": \\\"0.0.0.0/0\\\",\n                          \\\"IpProtocol\\\": \\\"TCP\\\"\n                        }\n                      ]\n                    },\n                    {\n                      \\\"ServiceName\\\": \\\"CLIENT\\\",\n                      \\\"ServiceAccessType\\\": \\\"URL\\\",\n                      \\\"ServiceAccessUrl\\\": \\\"https://ehpc-app.oss-cn-hangzhou.aliyuncs.com/ClientRelease/E-HPC-Client-Mac-zh-cn.zip\\\",\n                      \\\"NetworkACL\\\": [\n                        {\n                          \\\"Port\\\": 12011,\n                          \\\"SourceCidrIp\\\": \\\"0.0.0.0/0\\\",\n                          \\\"IpProtocol\\\": \\\"TCP\\\"\n                        }\n                      ]\n                    }\n                  ]\n          resourcesSpec: |\n            {\n                    \\\"EipResource\\\": {\n                      \\\"AutoCreate\\\": true\n                    },\n                    \\\"EcsResources\\\": [\n                      {\n                        \\\"ImageId\\\": \\\"centos_7_6_x64_20G_alibase_20211130.vhd\\\",\n                        \\\"EnableHT\\\": true,\n                        \\\"InstanceChargeType\\\": \\\"PostPaid\\\",\n                        \\\"InstanceType\\\": \\\"ecs.c7.xlarge\\\",\n                        \\\"SpotStrategy\\\": \\\"NoSpot\\\",\n                        \\\"SystemDisk\\\": {\n                          \\\"Category\\\": \\\"cloud_essd\\\",\n                          \\\"Size\\\": 40,\n                          \\\"Level\\\": \\\"PL0\\\"\n                        },\n                        \\\"DataDisks\\\": [\n                          {\n                            \\\"Category\\\": \\\"cloud_essd\\\",\n                            \\\"Size\\\": 40,\n                            \\\"Level\\\": \\\"PL0\\\"\n                          }\n                        ]\n                      }\n                    ]\n                  }\n          name: Login\n      clusterName: minimal-example-cluster\n      deletionProtection: false\n      sharedStorages:\n        - mountDirectory: /home\n          nasDirectory: /\n          mountTargetDomain: ${queueMinimalExampleMountDomain.mountTargetDomain}\n          protocolType: NFS\n          fileSystemId: ${queueMinimalExampleNas.id}\n          mountOptions: -t nfs -o vers=3,nolock,proto=tcp,noresvport\n        - mountDirectory: /opt\n          nasDirectory: /\n          mountTargetDomain: ${queueMinimalExampleMountDomain.mountTargetDomain}\n          protocolType: NFS\n          fileSystemId: ${queueMinimalExampleNas.id}\n          mountOptions: -t nfs -o vers=3,nolock,proto=tcp,noresvport\n        - mountDirectory: /ehpcdata\n          nasDirectory: /\n          mountTargetDomain: ${queueMinimalExampleMountDomain.mountTargetDomain}\n          protocolType: NFS\n          fileSystemId: ${queueMinimalExampleNas.id}\n          mountOptions: -t nfs -o vers=3,nolock,proto=tcp,noresvport\n      clusterVswitchId: ${queueMinimalExampleVswitch.id}\n      manager:\n        managerNode:\n          systemDisk:\n            category: cloud_essd\n            size: '40'\n            level: PL0\n          enableHt: true\n          instanceChargeType: PostPaid\n          imageId: centos_7_6_x64_20G_alibase_20211130.vhd\n          instanceType: ecs.c6.xlarge\n          spotStrategy: NoSpot\n        scheduler:\n          type: SLURM\n          version: 22.05.8\n        dns:\n          type: nis\n          version: '1.0'\n        directoryService:\n          type: nis\n          version: '1.0'\n    options:\n      dependsOn:\n        - ${queueMinimalExampleAccessRule}\n  default:\n    type: alicloud:ehpc:Queue\n    properties:\n      clusterId: ${queueMinimalClusterExample.id}\n      queueName: autoque1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEhpc Queue can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ehpc/queue:Queue example \u003ccluster_id\u003e:\u003cqueue_name\u003e\n```\n\n","properties":{"clusterId":{"type":"string","description":"The cluster ID.\nYou can call the ListClusters operation to query the cluster ID.\n"},"computeNodes":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/QueueComputeNode:QueueComputeNode"},"description":"The hardware configurations of the compute nodes in the queue. Valid values of N: 1 to 10. See \u003cspan pulumi-lang-nodejs=\"`computeNodes`\" pulumi-lang-dotnet=\"`ComputeNodes`\" pulumi-lang-go=\"`computeNodes`\" pulumi-lang-python=\"`compute_nodes`\" pulumi-lang-yaml=\"`computeNodes`\" pulumi-lang-java=\"`computeNodes`\"\u003e`compute_nodes`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"enableScaleIn":{"type":"boolean","description":"Specifies whether to enable auto scale-in for the queue. Valid values:\n\n- true\n- false\n"},"enableScaleOut":{"type":"boolean","description":"Specifies whether to enable auto scale-out for the queue. Valid values:\n\n- true\n- false\n"},"hostnamePrefix":{"type":"string","description":"The hostname prefix of the added compute nodes.\n"},"hostnameSuffix":{"type":"string","description":"The hostname suffix of the compute nodes in the queue.\n"},"initialCount":{"type":"integer","description":"The initial number of compute nodes in the queue.\n"},"interConnect":{"type":"string","description":"The type of the network for interconnecting compute nodes in the queue.\n"},"maxCount":{"type":"integer","description":"The maximum number of compute nodes that the queue can contain.\n"},"minCount":{"type":"integer","description":"The minimum number of compute nodes that the queue must contain.\n"},"queueName":{"type":"string","description":"The queue name.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vSwitches available for use by compute nodes in the queue.\n"}},"required":["clusterId","computeNodes","createTime","enableScaleIn","enableScaleOut","hostnamePrefix","hostnameSuffix","initialCount","interConnect","maxCount","minCount","queueName"],"inputProperties":{"clusterId":{"type":"string","description":"The cluster ID.\nYou can call the ListClusters operation to query the cluster ID.\n","willReplaceOnChanges":true},"computeNodes":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/QueueComputeNode:QueueComputeNode"},"description":"The hardware configurations of the compute nodes in the queue. Valid values of N: 1 to 10. See \u003cspan pulumi-lang-nodejs=\"`computeNodes`\" pulumi-lang-dotnet=\"`ComputeNodes`\" pulumi-lang-go=\"`computeNodes`\" pulumi-lang-python=\"`compute_nodes`\" pulumi-lang-yaml=\"`computeNodes`\" pulumi-lang-java=\"`computeNodes`\"\u003e`compute_nodes`\u003c/span\u003e below.\n"},"enableScaleIn":{"type":"boolean","description":"Specifies whether to enable auto scale-in for the queue. Valid values:\n\n- true\n- false\n"},"enableScaleOut":{"type":"boolean","description":"Specifies whether to enable auto scale-out for the queue. Valid values:\n\n- true\n- false\n"},"hostnamePrefix":{"type":"string","description":"The hostname prefix of the added compute nodes.\n"},"hostnameSuffix":{"type":"string","description":"The hostname suffix of the compute nodes in the queue.\n"},"initialCount":{"type":"integer","description":"The initial number of compute nodes in the queue.\n","willReplaceOnChanges":true},"interConnect":{"type":"string","description":"The type of the network for interconnecting compute nodes in the queue.\n"},"maxCount":{"type":"integer","description":"The maximum number of compute nodes that the queue can contain.\n"},"minCount":{"type":"integer","description":"The minimum number of compute nodes that the queue must contain.\n"},"queueName":{"type":"string","description":"The queue name.\n","willReplaceOnChanges":true},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vSwitches available for use by compute nodes in the queue.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Queue resources.\n","properties":{"clusterId":{"type":"string","description":"The cluster ID.\nYou can call the ListClusters operation to query the cluster ID.\n","willReplaceOnChanges":true},"computeNodes":{"type":"array","items":{"$ref":"#/types/alicloud:ehpc/QueueComputeNode:QueueComputeNode"},"description":"The hardware configurations of the compute nodes in the queue. Valid values of N: 1 to 10. See \u003cspan pulumi-lang-nodejs=\"`computeNodes`\" pulumi-lang-dotnet=\"`ComputeNodes`\" pulumi-lang-go=\"`computeNodes`\" pulumi-lang-python=\"`compute_nodes`\" pulumi-lang-yaml=\"`computeNodes`\" pulumi-lang-java=\"`computeNodes`\"\u003e`compute_nodes`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"enableScaleIn":{"type":"boolean","description":"Specifies whether to enable auto scale-in for the queue. Valid values:\n\n- true\n- false\n"},"enableScaleOut":{"type":"boolean","description":"Specifies whether to enable auto scale-out for the queue. Valid values:\n\n- true\n- false\n"},"hostnamePrefix":{"type":"string","description":"The hostname prefix of the added compute nodes.\n"},"hostnameSuffix":{"type":"string","description":"The hostname suffix of the compute nodes in the queue.\n"},"initialCount":{"type":"integer","description":"The initial number of compute nodes in the queue.\n","willReplaceOnChanges":true},"interConnect":{"type":"string","description":"The type of the network for interconnecting compute nodes in the queue.\n"},"maxCount":{"type":"integer","description":"The maximum number of compute nodes that the queue can contain.\n"},"minCount":{"type":"integer","description":"The minimum number of compute nodes that the queue must contain.\n"},"queueName":{"type":"string","description":"The queue name.\n","willReplaceOnChanges":true},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vSwitches available for use by compute nodes in the queue.\n"}},"type":"object"}},"alicloud:eipanycast/anycastEipAddress:AnycastEipAddress":{"description":"Provides a Eipanycast Anycast Eip Address resource.\n\nAnycast Elastic IP Address.\n\nFor information about Eipanycast Anycast Eip Address and how to use it, see [What is Anycast Eip Address](https://www.alibabacloud.com/help/en/anycast-eip/latest/api-eipanycast-2020-03-09-allocateanycasteipaddress).\n\n\u003e **NOTE:** Available since v1.113.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new alicloud.eipanycast.AnycastEipAddress(\"default\", {\n    anycastEipAddressName: name,\n    description: name,\n    bandwidth: 200,\n    serviceLocation: \"international\",\n    internetChargeType: \"PayByTraffic\",\n    paymentType: \"PayAsYouGo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.eipanycast.AnycastEipAddress(\"default\",\n    anycast_eip_address_name=name,\n    description=name,\n    bandwidth=200,\n    service_location=\"international\",\n    internet_charge_type=\"PayByTraffic\",\n    payment_type=\"PayAsYouGo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new AliCloud.EipAnycast.AnycastEipAddress(\"default\", new()\n    {\n        AnycastEipAddressName = name,\n        Description = name,\n        Bandwidth = 200,\n        ServiceLocation = \"international\",\n        InternetChargeType = \"PayByTraffic\",\n        PaymentType = \"PayAsYouGo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eipanycast\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := eipanycast.NewAnycastEipAddress(ctx, \"default\", \u0026eipanycast.AnycastEipAddressArgs{\n\t\t\tAnycastEipAddressName: pulumi.String(name),\n\t\t\tDescription:           pulumi.String(name),\n\t\t\tBandwidth:             pulumi.Int(200),\n\t\t\tServiceLocation:       pulumi.String(\"international\"),\n\t\t\tInternetChargeType:    pulumi.String(\"PayByTraffic\"),\n\t\t\tPaymentType:           pulumi.String(\"PayAsYouGo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eipanycast.AnycastEipAddress;\nimport com.pulumi.alicloud.eipanycast.AnycastEipAddressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new AnycastEipAddress(\"default\", AnycastEipAddressArgs.builder()\n            .anycastEipAddressName(name)\n            .description(name)\n            .bandwidth(200)\n            .serviceLocation(\"international\")\n            .internetChargeType(\"PayByTraffic\")\n            .paymentType(\"PayAsYouGo\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:eipanycast:AnycastEipAddress\n    properties:\n      anycastEipAddressName: ${name}\n      description: ${name}\n      bandwidth: 200\n      serviceLocation: international\n      internetChargeType: PayByTraffic\n      paymentType: PayAsYouGo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEipanycast Anycast Eip Address can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eipanycast/anycastEipAddress:AnycastEipAddress example \u003cid\u003e\n```\n\n","properties":{"anycastEipAddressName":{"type":"string","description":"Anycast EIP instance name.\n"},"bandwidth":{"type":"integer","description":"The peak bandwidth of the Anycast EIP instance, in Mbps.\n"},"createTime":{"type":"string","description":"Anycast EIP instance creation time.\n"},"description":{"type":"string","description":"Anycast EIP instance description\n"},"internetChargeType":{"type":"string","description":"The billing method of Anycast EIP instance. \"PayByBandwidth\": refers to the method of billing based on traffic.\n"},"paymentType":{"type":"string","description":"The payment model of Anycast EIP instance. \"PayAsYouGo\": Refers to the post-paid mode\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"serviceLocation":{"type":"string","description":"Anycast EIP instance access area. \"international\": Refers to areas outside of Mainland China.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"List of resource-bound tags.\n"}},"required":["bandwidth","createTime","resourceGroupId","serviceLocation","status"],"inputProperties":{"anycastEipAddressName":{"type":"string","description":"Anycast EIP instance name.\n"},"bandwidth":{"type":"integer","description":"The peak bandwidth of the Anycast EIP instance, in Mbps.\n"},"description":{"type":"string","description":"Anycast EIP instance description\n"},"internetChargeType":{"type":"string","description":"The billing method of Anycast EIP instance. \"PayByBandwidth\": refers to the method of billing based on traffic.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The payment model of Anycast EIP instance. \"PayAsYouGo\": Refers to the post-paid mode\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"serviceLocation":{"type":"string","description":"Anycast EIP instance access area. \"international\": Refers to areas outside of Mainland China.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"List of resource-bound tags.\n"}},"requiredInputs":["serviceLocation"],"stateInputs":{"description":"Input properties used for looking up and filtering AnycastEipAddress resources.\n","properties":{"anycastEipAddressName":{"type":"string","description":"Anycast EIP instance name.\n"},"bandwidth":{"type":"integer","description":"The peak bandwidth of the Anycast EIP instance, in Mbps.\n"},"createTime":{"type":"string","description":"Anycast EIP instance creation time.\n"},"description":{"type":"string","description":"Anycast EIP instance description\n"},"internetChargeType":{"type":"string","description":"The billing method of Anycast EIP instance. \"PayByBandwidth\": refers to the method of billing based on traffic.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The payment model of Anycast EIP instance. \"PayAsYouGo\": Refers to the post-paid mode\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"serviceLocation":{"type":"string","description":"Anycast EIP instance access area. \"international\": Refers to areas outside of Mainland China.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"List of resource-bound tags.\n"}},"type":"object"}},"alicloud:eipanycast/anycastEipAddressAttachment:AnycastEipAddressAttachment":{"description":"Provides a Eipanycast Anycast Eip Address Attachment resource.\n\nFor information about Eipanycast Anycast Eip Address Attachment and how to use it, see [What is Anycast Eip Address Attachment](https://www.alibabacloud.com/help/en/anycast-eip/latest/api-eipanycast-2020-03-09-associateanycasteipaddress).\n\n\u003e **NOTE:** Available since v1.113.0.\n\n\u003e **NOTE:** The following regions support currently while Slb instance support bound. \n[eu-west-1-gb33-a01,cn-hongkong-am4-c04,ap-southeast-os30-a01,us-west-ot7-a01,ap-south-in73-a01,ap-southeast-my88-a01]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.slb.getZones({\n    availableSlbAddressType: \"vpc\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.0.0.0/8\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.1.0.0/16\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"default\", {\n    addressType: \"intranet\",\n    vswitchId: defaultSwitch.id,\n    loadBalancerName: name,\n    loadBalancerSpec: \"slb.s1.small\",\n    masterZoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultAnycastEipAddress = new alicloud.eipanycast.AnycastEipAddress(\"default\", {\n    anycastEipAddressName: name,\n    serviceLocation: \"ChineseMainland\",\n});\nconst defaultGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst defaultAnycastEipAddressAttachment = new alicloud.eipanycast.AnycastEipAddressAttachment(\"default\", {\n    bindInstanceId: defaultApplicationLoadBalancer.id,\n    bindInstanceType: \"SlbInstance\",\n    bindInstanceRegionId: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.id),\n    anycastId: defaultAnycastEipAddress.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.slb.get_zones(available_slb_address_type=\"vpc\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.0.0.0/8\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.1.0.0/16\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"default\",\n    address_type=\"intranet\",\n    vswitch_id=default_switch.id,\n    load_balancer_name=name,\n    load_balancer_spec=\"slb.s1.small\",\n    master_zone_id=default.zones[0].id)\ndefault_anycast_eip_address = alicloud.eipanycast.AnycastEipAddress(\"default\",\n    anycast_eip_address_name=name,\n    service_location=\"ChineseMainland\")\ndefault_get_regions = alicloud.get_regions(current=True)\ndefault_anycast_eip_address_attachment = alicloud.eipanycast.AnycastEipAddressAttachment(\"default\",\n    bind_instance_id=default_application_load_balancer.id,\n    bind_instance_type=\"SlbInstance\",\n    bind_instance_region_id=default_get_regions.regions[0].id,\n    anycast_id=default_anycast_eip_address.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Slb.GetZones.Invoke(new()\n    {\n        AvailableSlbAddressType = \"vpc\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.1.0.0/16\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"default\", new()\n    {\n        AddressType = \"intranet\",\n        VswitchId = defaultSwitch.Id,\n        LoadBalancerName = name,\n        LoadBalancerSpec = \"slb.s1.small\",\n        MasterZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultAnycastEipAddress = new AliCloud.EipAnycast.AnycastEipAddress(\"default\", new()\n    {\n        AnycastEipAddressName = name,\n        ServiceLocation = \"ChineseMainland\",\n    });\n\n    var defaultGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultAnycastEipAddressAttachment = new AliCloud.EipAnycast.AnycastEipAddressAttachment(\"default\", new()\n    {\n        BindInstanceId = defaultApplicationLoadBalancer.Id,\n        BindInstanceType = \"SlbInstance\",\n        BindInstanceRegionId = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        AnycastId = defaultAnycastEipAddress.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eipanycast\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := slb.GetZones(ctx, \u0026slb.GetZonesArgs{\n\t\t\tAvailableSlbAddressType: pulumi.StringRef(\"vpc\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.1.0.0/16\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplicationLoadBalancer, err := slb.NewApplicationLoadBalancer(ctx, \"default\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tAddressType:      pulumi.String(\"intranet\"),\n\t\t\tVswitchId:        defaultSwitch.ID(),\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tLoadBalancerSpec: pulumi.String(\"slb.s1.small\"),\n\t\t\tMasterZoneId:     pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAnycastEipAddress, err := eipanycast.NewAnycastEipAddress(ctx, \"default\", \u0026eipanycast.AnycastEipAddressArgs{\n\t\t\tAnycastEipAddressName: pulumi.String(name),\n\t\t\tServiceLocation:       pulumi.String(\"ChineseMainland\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRegions, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eipanycast.NewAnycastEipAddressAttachment(ctx, \"default\", \u0026eipanycast.AnycastEipAddressAttachmentArgs{\n\t\t\tBindInstanceId:       defaultApplicationLoadBalancer.ID(),\n\t\t\tBindInstanceType:     pulumi.String(\"SlbInstance\"),\n\t\t\tBindInstanceRegionId: pulumi.String(defaultGetRegions.Regions[0].Id),\n\t\t\tAnycastId:            defaultAnycastEipAddress.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.eipanycast.AnycastEipAddress;\nimport com.pulumi.alicloud.eipanycast.AnycastEipAddressArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.eipanycast.AnycastEipAddressAttachment;\nimport com.pulumi.alicloud.eipanycast.AnycastEipAddressAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = SlbFunctions.getZones(GetZonesArgs.builder()\n            .availableSlbAddressType(\"vpc\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.1.0.0/16\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultApplicationLoadBalancer = new ApplicationLoadBalancer(\"defaultApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .addressType(\"intranet\")\n            .vswitchId(defaultSwitch.id())\n            .loadBalancerName(name)\n            .loadBalancerSpec(\"slb.s1.small\")\n            .masterZoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultAnycastEipAddress = new AnycastEipAddress(\"defaultAnycastEipAddress\", AnycastEipAddressArgs.builder()\n            .anycastEipAddressName(name)\n            .serviceLocation(\"ChineseMainland\")\n            .build());\n\n        final var defaultGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultAnycastEipAddressAttachment = new AnycastEipAddressAttachment(\"defaultAnycastEipAddressAttachment\", AnycastEipAddressAttachmentArgs.builder()\n            .bindInstanceId(defaultApplicationLoadBalancer.id())\n            .bindInstanceType(\"SlbInstance\")\n            .bindInstanceRegionId(defaultGetRegions.regions()[0].id())\n            .anycastId(defaultAnycastEipAddress.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.0.0.0/8\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.1.0.0/16\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultApplicationLoadBalancer:\n    type: alicloud:slb:ApplicationLoadBalancer\n    name: default\n    properties:\n      addressType: intranet\n      vswitchId: ${defaultSwitch.id}\n      loadBalancerName: ${name}\n      loadBalancerSpec: slb.s1.small\n      masterZoneId: ${default.zones[0].id}\n  defaultAnycastEipAddress:\n    type: alicloud:eipanycast:AnycastEipAddress\n    name: default\n    properties:\n      anycastEipAddressName: ${name}\n      serviceLocation: ChineseMainland\n  defaultAnycastEipAddressAttachment:\n    type: alicloud:eipanycast:AnycastEipAddressAttachment\n    name: default\n    properties:\n      bindInstanceId: ${defaultApplicationLoadBalancer.id}\n      bindInstanceType: SlbInstance\n      bindInstanceRegionId: ${defaultGetRegions.regions[0].id}\n      anycastId: ${defaultAnycastEipAddress.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:slb:getZones\n      arguments:\n        availableSlbAddressType: vpc\n  defaultGetRegions:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nMultiple Usage\n\n\u003e **NOTE:**  Anycast EIP supports binding cloud resource instances in multiple regions. Only one cloud resource instance is supported as the default origin station, and the rest are normal origin stations. When no access point is specified or an access point is added, the access request is forwarded to the default origin by default.  If you are bound for the first time, the Default value of the binding mode is **Default * *. /li\u003e li\u003e If you are not binding for the first time, you can set the binding mode to **Default**, and the new Default origin will take effect. The original Default origin will be changed to a common origin.\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst defaultVpc = new alicloud.vpc.Network(\"defaultVpc\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultVsw = new alicloud.vpc.Switch(\"defaultVsw\", {\n    vpcId: defaultVpc.id,\n    cidrBlock: \"192.168.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultuBsECI = new alicloud.ecs.SecurityGroup(\"defaultuBsECI\", {vpcId: defaultVpc.id});\nconst default9KDlN7 = new alicloud.ecs.Instance(\"default9KDlN7\", {\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    instanceName: name,\n    securityGroups: [defaultuBsECI.id],\n    availabilityZone: defaultVsw.zoneId,\n    instanceChargeType: \"PostPaid\",\n    systemDiskCategory: \"cloud_efficiency\",\n    vswitchId: defaultVsw.id,\n});\nconst defaultXkpFRs = new alicloud.eipanycast.AnycastEipAddress(\"defaultXkpFRs\", {serviceLocation: \"ChineseMainland\"});\nconst defaultVpc2 = new alicloud.vpc.Network(\"defaultVpc2\", {\n    vpcName: `${name}6`,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst default2 = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst default2GetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst default2GetInstanceTypes = default2.then(default2 =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: default2.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst defaultdsVsw2 = new alicloud.vpc.Switch(\"defaultdsVsw2\", {\n    vpcId: defaultVpc2.id,\n    cidrBlock: \"192.168.0.0/24\",\n    zoneId: default2.then(default2 =\u003e default2.zones?.[1]?.id),\n});\nconst defaultuBsECI2 = new alicloud.ecs.SecurityGroup(\"defaultuBsECI2\", {vpcId: defaultVpc2.id});\nconst defaultEcs2 = new alicloud.ecs.Instance(\"defaultEcs2\", {\n    imageId: default2GetImages.then(default2GetImages =\u003e default2GetImages.images?.[0]?.id),\n    instanceType: default2GetInstanceTypes.then(default2GetInstanceTypes =\u003e default2GetInstanceTypes.instanceTypes?.[0]?.id),\n    instanceName: name,\n    securityGroups: [defaultuBsECI2.id],\n    availabilityZone: defaultdsVsw2.zoneId,\n    instanceChargeType: \"PostPaid\",\n    systemDiskCategory: \"cloud_efficiency\",\n    vswitchId: defaultdsVsw2.id,\n});\nconst defaultEfYBJY = new alicloud.eipanycast.AnycastEipAddressAttachment(\"defaultEfYBJY\", {\n    bindInstanceId: default9KDlN7.networkInterfaceId,\n    bindInstanceType: \"NetworkInterface\",\n    bindInstanceRegionId: \"cn-beijing\",\n    anycastId: defaultXkpFRs.id,\n    associationMode: \"Default\",\n});\nconst normal = new alicloud.eipanycast.AnycastEipAddressAttachment(\"normal\", {\n    bindInstanceId: defaultEcs2.networkInterfaceId,\n    bindInstanceType: \"NetworkInterface\",\n    bindInstanceRegionId: \"cn-hangzhou\",\n    anycastId: defaultEfYBJY.anycastId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\ndefault_vpc = alicloud.vpc.Network(\"defaultVpc\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ndefault_vsw = alicloud.vpc.Switch(\"defaultVsw\",\n    vpc_id=default_vpc.id,\n    cidr_block=\"192.168.0.0/24\",\n    zone_id=default.zones[0].id)\ndefaultu_bs_eci = alicloud.ecs.SecurityGroup(\"defaultuBsECI\", vpc_id=default_vpc.id)\ndefault9_k_dl_n7 = alicloud.ecs.Instance(\"default9KDlN7\",\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    instance_name=name,\n    security_groups=[defaultu_bs_eci.id],\n    availability_zone=default_vsw.zone_id,\n    instance_charge_type=\"PostPaid\",\n    system_disk_category=\"cloud_efficiency\",\n    vswitch_id=default_vsw.id)\ndefault_xkp_frs = alicloud.eipanycast.AnycastEipAddress(\"defaultXkpFRs\", service_location=\"ChineseMainland\")\ndefault_vpc2 = alicloud.vpc.Network(\"defaultVpc2\",\n    vpc_name=f\"{name}6\",\n    cidr_block=\"192.168.0.0/16\")\ndefault2 = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault2_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault2_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default2.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\ndefaultds_vsw2 = alicloud.vpc.Switch(\"defaultdsVsw2\",\n    vpc_id=default_vpc2.id,\n    cidr_block=\"192.168.0.0/24\",\n    zone_id=default2.zones[1].id)\ndefaultu_bs_eci2 = alicloud.ecs.SecurityGroup(\"defaultuBsECI2\", vpc_id=default_vpc2.id)\ndefault_ecs2 = alicloud.ecs.Instance(\"defaultEcs2\",\n    image_id=default2_get_images.images[0].id,\n    instance_type=default2_get_instance_types.instance_types[0].id,\n    instance_name=name,\n    security_groups=[defaultu_bs_eci2.id],\n    availability_zone=defaultds_vsw2.zone_id,\n    instance_charge_type=\"PostPaid\",\n    system_disk_category=\"cloud_efficiency\",\n    vswitch_id=defaultds_vsw2.id)\ndefault_ef_ybjy = alicloud.eipanycast.AnycastEipAddressAttachment(\"defaultEfYBJY\",\n    bind_instance_id=default9_k_dl_n7.network_interface_id,\n    bind_instance_type=\"NetworkInterface\",\n    bind_instance_region_id=\"cn-beijing\",\n    anycast_id=default_xkp_frs.id,\n    association_mode=\"Default\")\nnormal = alicloud.eipanycast.AnycastEipAddressAttachment(\"normal\",\n    bind_instance_id=default_ecs2.network_interface_id,\n    bind_instance_type=\"NetworkInterface\",\n    bind_instance_region_id=\"cn-hangzhou\",\n    anycast_id=default_ef_ybjy.anycast_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var defaultVpc = new AliCloud.Vpc.Network(\"defaultVpc\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultVsw = new AliCloud.Vpc.Switch(\"defaultVsw\", new()\n    {\n        VpcId = defaultVpc.Id,\n        CidrBlock = \"192.168.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultuBsECI = new AliCloud.Ecs.SecurityGroup(\"defaultuBsECI\", new()\n    {\n        VpcId = defaultVpc.Id,\n    });\n\n    var default9KDlN7 = new AliCloud.Ecs.Instance(\"default9KDlN7\", new()\n    {\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        InstanceName = name,\n        SecurityGroups = new[]\n        {\n            defaultuBsECI.Id,\n        },\n        AvailabilityZone = defaultVsw.ZoneId,\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskCategory = \"cloud_efficiency\",\n        VswitchId = defaultVsw.Id,\n    });\n\n    var defaultXkpFRs = new AliCloud.EipAnycast.AnycastEipAddress(\"defaultXkpFRs\", new()\n    {\n        ServiceLocation = \"ChineseMainland\",\n    });\n\n    var defaultVpc2 = new AliCloud.Vpc.Network(\"defaultVpc2\", new()\n    {\n        VpcName = $\"{name}6\",\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var default2 = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var default2GetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var default2GetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = default2.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var defaultdsVsw2 = new AliCloud.Vpc.Switch(\"defaultdsVsw2\", new()\n    {\n        VpcId = defaultVpc2.Id,\n        CidrBlock = \"192.168.0.0/24\",\n        ZoneId = default2.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n    });\n\n    var defaultuBsECI2 = new AliCloud.Ecs.SecurityGroup(\"defaultuBsECI2\", new()\n    {\n        VpcId = defaultVpc2.Id,\n    });\n\n    var defaultEcs2 = new AliCloud.Ecs.Instance(\"defaultEcs2\", new()\n    {\n        ImageId = default2GetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = default2GetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        InstanceName = name,\n        SecurityGroups = new[]\n        {\n            defaultuBsECI2.Id,\n        },\n        AvailabilityZone = defaultdsVsw2.ZoneId,\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskCategory = \"cloud_efficiency\",\n        VswitchId = defaultdsVsw2.Id,\n    });\n\n    var defaultEfYBJY = new AliCloud.EipAnycast.AnycastEipAddressAttachment(\"defaultEfYBJY\", new()\n    {\n        BindInstanceId = default9KDlN7.NetworkInterfaceId,\n        BindInstanceType = \"NetworkInterface\",\n        BindInstanceRegionId = \"cn-beijing\",\n        AnycastId = defaultXkpFRs.Id,\n        AssociationMode = \"Default\",\n    });\n\n    var normal = new AliCloud.EipAnycast.AnycastEipAddressAttachment(\"normal\", new()\n    {\n        BindInstanceId = defaultEcs2.NetworkInterfaceId,\n        BindInstanceType = \"NetworkInterface\",\n        BindInstanceRegionId = \"cn-hangzhou\",\n        AnycastId = defaultEfYBJY.AnycastId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eipanycast\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVpc, err := vpc.NewNetwork(ctx, \"defaultVpc\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVsw, err := vpc.NewSwitch(ctx, \"defaultVsw\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultVpc.ID(),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/24\"),\n\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultuBsECI, err := ecs.NewSecurityGroup(ctx, \"defaultuBsECI\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultVpc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault9KDlN7, err := ecs.NewInstance(ctx, \"default9KDlN7\", \u0026ecs.InstanceArgs{\n\t\t\tImageId:      pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tInstanceName: pulumi.String(name),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultuBsECI.ID(),\n\t\t\t},\n\t\t\tAvailabilityZone:   defaultVsw.ZoneId,\n\t\t\tInstanceChargeType: pulumi.String(\"PostPaid\"),\n\t\t\tSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tVswitchId:          defaultVsw.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultXkpFRs, err := eipanycast.NewAnycastEipAddress(ctx, \"defaultXkpFRs\", \u0026eipanycast.AnycastEipAddressArgs{\n\t\t\tServiceLocation: pulumi.String(\"ChineseMainland\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVpc2, err := vpc.NewNetwork(ctx, \"defaultVpc2\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.Sprintf(\"%v6\", name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault2, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault2GetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault2GetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(default2.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultdsVsw2, err := vpc.NewSwitch(ctx, \"defaultdsVsw2\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultVpc2.ID(),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/24\"),\n\t\t\tZoneId:    pulumi.String(default2.Zones[1].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultuBsECI2, err := ecs.NewSecurityGroup(ctx, \"defaultuBsECI2\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultVpc2.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcs2, err := ecs.NewInstance(ctx, \"defaultEcs2\", \u0026ecs.InstanceArgs{\n\t\t\tImageId:      pulumi.String(default2GetImages.Images[0].Id),\n\t\t\tInstanceType: pulumi.String(default2GetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tInstanceName: pulumi.String(name),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultuBsECI2.ID(),\n\t\t\t},\n\t\t\tAvailabilityZone:   defaultdsVsw2.ZoneId,\n\t\t\tInstanceChargeType: pulumi.String(\"PostPaid\"),\n\t\t\tSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\tVswitchId:          defaultdsVsw2.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEfYBJY, err := eipanycast.NewAnycastEipAddressAttachment(ctx, \"defaultEfYBJY\", \u0026eipanycast.AnycastEipAddressAttachmentArgs{\n\t\t\tBindInstanceId:       default9KDlN7.NetworkInterfaceId,\n\t\t\tBindInstanceType:     pulumi.String(\"NetworkInterface\"),\n\t\t\tBindInstanceRegionId: pulumi.String(\"cn-beijing\"),\n\t\t\tAnycastId:            defaultXkpFRs.ID(),\n\t\t\tAssociationMode:      pulumi.String(\"Default\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eipanycast.NewAnycastEipAddressAttachment(ctx, \"normal\", \u0026eipanycast.AnycastEipAddressAttachmentArgs{\n\t\t\tBindInstanceId:       defaultEcs2.NetworkInterfaceId,\n\t\t\tBindInstanceType:     pulumi.String(\"NetworkInterface\"),\n\t\t\tBindInstanceRegionId: pulumi.String(\"cn-hangzhou\"),\n\t\t\tAnycastId:            defaultEfYBJY.AnycastId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.eipanycast.AnycastEipAddress;\nimport com.pulumi.alicloud.eipanycast.AnycastEipAddressArgs;\nimport com.pulumi.alicloud.eipanycast.AnycastEipAddressAttachment;\nimport com.pulumi.alicloud.eipanycast.AnycastEipAddressAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        var defaultVpc = new Network(\"defaultVpc\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultVsw = new Switch(\"defaultVsw\", SwitchArgs.builder()\n            .vpcId(defaultVpc.id())\n            .cidrBlock(\"192.168.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultuBsECI = new SecurityGroup(\"defaultuBsECI\", SecurityGroupArgs.builder()\n            .vpcId(defaultVpc.id())\n            .build());\n\n        var default9KDlN7 = new Instance(\"default9KDlN7\", InstanceArgs.builder()\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .instanceName(name)\n            .securityGroups(defaultuBsECI.id())\n            .availabilityZone(defaultVsw.zoneId())\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .vswitchId(defaultVsw.id())\n            .build());\n\n        var defaultXkpFRs = new AnycastEipAddress(\"defaultXkpFRs\", AnycastEipAddressArgs.builder()\n            .serviceLocation(\"ChineseMainland\")\n            .build());\n\n        var defaultVpc2 = new Network(\"defaultVpc2\", NetworkArgs.builder()\n            .vpcName(String.format(\"%s6\", name))\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        final var default2 = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var default2GetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var default2GetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default2.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        var defaultdsVsw2 = new Switch(\"defaultdsVsw2\", SwitchArgs.builder()\n            .vpcId(defaultVpc2.id())\n            .cidrBlock(\"192.168.0.0/24\")\n            .zoneId(default2.zones()[1].id())\n            .build());\n\n        var defaultuBsECI2 = new SecurityGroup(\"defaultuBsECI2\", SecurityGroupArgs.builder()\n            .vpcId(defaultVpc2.id())\n            .build());\n\n        var defaultEcs2 = new Instance(\"defaultEcs2\", InstanceArgs.builder()\n            .imageId(default2GetImages.images()[0].id())\n            .instanceType(default2GetInstanceTypes.instanceTypes()[0].id())\n            .instanceName(name)\n            .securityGroups(defaultuBsECI2.id())\n            .availabilityZone(defaultdsVsw2.zoneId())\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .vswitchId(defaultdsVsw2.id())\n            .build());\n\n        var defaultEfYBJY = new AnycastEipAddressAttachment(\"defaultEfYBJY\", AnycastEipAddressAttachmentArgs.builder()\n            .bindInstanceId(default9KDlN7.networkInterfaceId())\n            .bindInstanceType(\"NetworkInterface\")\n            .bindInstanceRegionId(\"cn-beijing\")\n            .anycastId(defaultXkpFRs.id())\n            .associationMode(\"Default\")\n            .build());\n\n        var normal = new AnycastEipAddressAttachment(\"normal\", AnycastEipAddressAttachmentArgs.builder()\n            .bindInstanceId(defaultEcs2.networkInterfaceId())\n            .bindInstanceType(\"NetworkInterface\")\n            .bindInstanceRegionId(\"cn-hangzhou\")\n            .anycastId(defaultEfYBJY.anycastId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultVpc:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  defaultVsw:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultVpc.id}\n      cidrBlock: 192.168.0.0/24\n      zoneId: ${default.zones[0].id}\n  defaultuBsECI:\n    type: alicloud:ecs:SecurityGroup\n    properties:\n      vpcId: ${defaultVpc.id}\n  default9KDlN7:\n    type: alicloud:ecs:Instance\n    properties:\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      instanceName: ${name}\n      securityGroups:\n        - ${defaultuBsECI.id}\n      availabilityZone: ${defaultVsw.zoneId}\n      instanceChargeType: PostPaid\n      systemDiskCategory: cloud_efficiency\n      vswitchId: ${defaultVsw.id}\n  defaultXkpFRs:\n    type: alicloud:eipanycast:AnycastEipAddress\n    properties:\n      serviceLocation: ChineseMainland\n  defaultVpc2:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}6\n      cidrBlock: 192.168.0.0/16\n  defaultdsVsw2:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultVpc2.id}\n      cidrBlock: 192.168.0.0/24\n      zoneId: ${default2.zones[1].id}\n  defaultuBsECI2:\n    type: alicloud:ecs:SecurityGroup\n    properties:\n      vpcId: ${defaultVpc2.id}\n  defaultEcs2:\n    type: alicloud:ecs:Instance\n    properties:\n      imageId: ${default2GetImages.images[0].id}\n      instanceType: ${default2GetInstanceTypes.instanceTypes[0].id}\n      instanceName: ${name}\n      securityGroups:\n        - ${defaultuBsECI2.id}\n      availabilityZone: ${defaultdsVsw2.zoneId}\n      instanceChargeType: PostPaid\n      systemDiskCategory: cloud_efficiency\n      vswitchId: ${defaultdsVsw2.id}\n  defaultEfYBJY:\n    type: alicloud:eipanycast:AnycastEipAddressAttachment\n    properties:\n      bindInstanceId: ${default9KDlN7.networkInterfaceId}\n      bindInstanceType: NetworkInterface\n      bindInstanceRegionId: cn-beijing\n      anycastId: ${defaultXkpFRs.id}\n      associationMode: Default\n  normal:\n    type: alicloud:eipanycast:AnycastEipAddressAttachment\n    properties:\n      bindInstanceId: ${defaultEcs2.networkInterfaceId}\n      bindInstanceType: NetworkInterface\n      bindInstanceRegionId: cn-hangzhou\n      anycastId: ${defaultEfYBJY.anycastId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 1\n        memorySize: 2\n  default2:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  default2GetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n  default2GetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default2.zones[0].id}\n        cpuCoreCount: 1\n        memorySize: 2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEipanycast Anycast Eip Address Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eipanycast/anycastEipAddressAttachment:AnycastEipAddressAttachment example \u003canycast_id\u003e:\u003cbind_instance_id\u003e:\u003cbind_instance_region_id\u003e:\u003cbind_instance_type\u003e\n```\n\n","properties":{"anycastId":{"type":"string","description":"The ID of the Anycast EIP instance.\n"},"associationMode":{"type":"string","description":"Binding mode, value:\n- **Default**: The Default mode. The cloud resource instance to be bound is set as the Default origin.\n- **Normal**: In Normal mode, the cloud resource instance to be bound is set to the common source station.\n"},"bindInstanceId":{"type":"string","description":"The ID of the cloud resource instance to be bound.\n"},"bindInstanceRegionId":{"type":"string","description":"The region ID of the cloud resource instance to be bound.You can only bind cloud resource instances in some regions. You can call the describeanystserverregions operation to obtain the region ID of the cloud resource instances that can be bound.\n"},"bindInstanceType":{"type":"string","description":"The type of the cloud resource instance to be bound. Value:\n- **SlbInstance**: a private network SLB instance.\n- **NetworkInterface**: ENI.\n"},"bindTime":{"type":"string","description":"Binding time.Time is expressed according to ISO8601 standard and UTC time is used. The format is: 'YYYY-MM-DDThh:mm:ssZ'.\n"},"popLocations":{"type":"array","items":{"$ref":"#/types/alicloud:eipanycast/AnycastEipAddressAttachmentPopLocation:AnycastEipAddressAttachmentPopLocation"},"description":"The access point information of the associated access area when the cloud resource instance is bound.If you are binding for the first time, this parameter does not need to be configured, and the system automatically associates all access areas. See \u003cspan pulumi-lang-nodejs=\"`popLocations`\" pulumi-lang-dotnet=\"`PopLocations`\" pulumi-lang-go=\"`popLocations`\" pulumi-lang-python=\"`pop_locations`\" pulumi-lang-yaml=\"`popLocations`\" pulumi-lang-java=\"`popLocations`\"\u003e`pop_locations`\u003c/span\u003e below.\n"},"privateIpAddress":{"type":"string","description":"The secondary private IP address of the elastic network card to be bound.This parameter takes effect only when **BindInstanceType** is set to **NetworkInterface. When you do not enter, this parameter is the primary private IP of the ENI by default.\n"},"status":{"type":"string","description":"The status of the bound cloud resource instance. Value:BINDING: BINDING.Bound: Bound.UNBINDING: UNBINDING.DELETED: DELETED.MODIFYING: being modified.\n"}},"required":["anycastId","associationMode","bindInstanceId","bindInstanceRegionId","bindInstanceType","bindTime","status"],"inputProperties":{"anycastId":{"type":"string","description":"The ID of the Anycast EIP instance.\n","willReplaceOnChanges":true},"associationMode":{"type":"string","description":"Binding mode, value:\n- **Default**: The Default mode. The cloud resource instance to be bound is set as the Default origin.\n- **Normal**: In Normal mode, the cloud resource instance to be bound is set to the common source station.\n"},"bindInstanceId":{"type":"string","description":"The ID of the cloud resource instance to be bound.\n","willReplaceOnChanges":true},"bindInstanceRegionId":{"type":"string","description":"The region ID of the cloud resource instance to be bound.You can only bind cloud resource instances in some regions. You can call the describeanystserverregions operation to obtain the region ID of the cloud resource instances that can be bound.\n","willReplaceOnChanges":true},"bindInstanceType":{"type":"string","description":"The type of the cloud resource instance to be bound. Value:\n- **SlbInstance**: a private network SLB instance.\n- **NetworkInterface**: ENI.\n","willReplaceOnChanges":true},"popLocations":{"type":"array","items":{"$ref":"#/types/alicloud:eipanycast/AnycastEipAddressAttachmentPopLocation:AnycastEipAddressAttachmentPopLocation"},"description":"The access point information of the associated access area when the cloud resource instance is bound.If you are binding for the first time, this parameter does not need to be configured, and the system automatically associates all access areas. See \u003cspan pulumi-lang-nodejs=\"`popLocations`\" pulumi-lang-dotnet=\"`PopLocations`\" pulumi-lang-go=\"`popLocations`\" pulumi-lang-python=\"`pop_locations`\" pulumi-lang-yaml=\"`popLocations`\" pulumi-lang-java=\"`popLocations`\"\u003e`pop_locations`\u003c/span\u003e below.\n"},"privateIpAddress":{"type":"string","description":"The secondary private IP address of the elastic network card to be bound.This parameter takes effect only when **BindInstanceType** is set to **NetworkInterface. When you do not enter, this parameter is the primary private IP of the ENI by default.\n","willReplaceOnChanges":true}},"requiredInputs":["anycastId","bindInstanceId","bindInstanceRegionId","bindInstanceType"],"stateInputs":{"description":"Input properties used for looking up and filtering AnycastEipAddressAttachment resources.\n","properties":{"anycastId":{"type":"string","description":"The ID of the Anycast EIP instance.\n","willReplaceOnChanges":true},"associationMode":{"type":"string","description":"Binding mode, value:\n- **Default**: The Default mode. The cloud resource instance to be bound is set as the Default origin.\n- **Normal**: In Normal mode, the cloud resource instance to be bound is set to the common source station.\n"},"bindInstanceId":{"type":"string","description":"The ID of the cloud resource instance to be bound.\n","willReplaceOnChanges":true},"bindInstanceRegionId":{"type":"string","description":"The region ID of the cloud resource instance to be bound.You can only bind cloud resource instances in some regions. You can call the describeanystserverregions operation to obtain the region ID of the cloud resource instances that can be bound.\n","willReplaceOnChanges":true},"bindInstanceType":{"type":"string","description":"The type of the cloud resource instance to be bound. Value:\n- **SlbInstance**: a private network SLB instance.\n- **NetworkInterface**: ENI.\n","willReplaceOnChanges":true},"bindTime":{"type":"string","description":"Binding time.Time is expressed according to ISO8601 standard and UTC time is used. The format is: 'YYYY-MM-DDThh:mm:ssZ'.\n"},"popLocations":{"type":"array","items":{"$ref":"#/types/alicloud:eipanycast/AnycastEipAddressAttachmentPopLocation:AnycastEipAddressAttachmentPopLocation"},"description":"The access point information of the associated access area when the cloud resource instance is bound.If you are binding for the first time, this parameter does not need to be configured, and the system automatically associates all access areas. See \u003cspan pulumi-lang-nodejs=\"`popLocations`\" pulumi-lang-dotnet=\"`PopLocations`\" pulumi-lang-go=\"`popLocations`\" pulumi-lang-python=\"`pop_locations`\" pulumi-lang-yaml=\"`popLocations`\" pulumi-lang-java=\"`popLocations`\"\u003e`pop_locations`\u003c/span\u003e below.\n"},"privateIpAddress":{"type":"string","description":"The secondary private IP address of the elastic network card to be bound.This parameter takes effect only when **BindInstanceType** is set to **NetworkInterface. When you do not enter, this parameter is the primary private IP of the ENI by default.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the bound cloud resource instance. Value:BINDING: BINDING.Bound: Bound.UNBINDING: UNBINDING.DELETED: DELETED.MODIFYING: being modified.\n"}},"type":"object"}},"alicloud:elasticsearch/instance:Instance":{"description":"Provides a Elasticsearch Instance resource.\n\n\n\nFor information about Elasticsearch Instance and how to use it, see [What is Instance](https://next.api.alibabacloud.com/document/elasticsearch/2017-06-13/createInstance).\n\n\u003e **NOTE:** Available since v1.30.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.elasticsearch.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.0.0.0/8\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.1.0.0/16\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultInstance = new alicloud.elasticsearch.Instance(\"default\", {\n    description: name,\n    vswitchId: defaultSwitch.id,\n    password: \"Examplw1234\",\n    version: \"7.10_with_X-Pack\",\n    paymentType: \"PayAsYouGo\",\n    dataNodeAmount: 2,\n    dataNodeSpec: \"elasticsearch.sn2ne.large\",\n    dataNodeDiskSize: 20,\n    dataNodeDiskType: \"cloud_ssd\",\n    kibanaNodeSpec: \"elasticsearch.sn2ne.large\",\n    dataNodeDiskPerformanceLevel: \"PL1\",\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.elasticsearch.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.0.0.0/8\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.1.0.0/16\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_instance = alicloud.elasticsearch.Instance(\"default\",\n    description=name,\n    vswitch_id=default_switch.id,\n    password=\"Examplw1234\",\n    version=\"7.10_with_X-Pack\",\n    payment_type=\"PayAsYouGo\",\n    data_node_amount=2,\n    data_node_spec=\"elasticsearch.sn2ne.large\",\n    data_node_disk_size=20,\n    data_node_disk_type=\"cloud_ssd\",\n    kibana_node_spec=\"elasticsearch.sn2ne.large\",\n    data_node_disk_performance_level=\"PL1\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ElasticSearch.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.1.0.0/16\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultInstance = new AliCloud.ElasticSearch.Instance(\"default\", new()\n    {\n        Description = name,\n        VswitchId = defaultSwitch.Id,\n        Password = \"Examplw1234\",\n        Version = \"7.10_with_X-Pack\",\n        PaymentType = \"PayAsYouGo\",\n        DataNodeAmount = 2,\n        DataNodeSpec = \"elasticsearch.sn2ne.large\",\n        DataNodeDiskSize = 20,\n        DataNodeDiskType = \"cloud_ssd\",\n        KibanaNodeSpec = \"elasticsearch.sn2ne.large\",\n        DataNodeDiskPerformanceLevel = \"PL1\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/elasticsearch\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := elasticsearch.GetZones(ctx, \u0026elasticsearch.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.1.0.0/16\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticsearch.NewInstance(ctx, \"default\", \u0026elasticsearch.InstanceArgs{\n\t\t\tDescription:                  pulumi.String(name),\n\t\t\tVswitchId:                    defaultSwitch.ID(),\n\t\t\tPassword:                     pulumi.String(\"Examplw1234\"),\n\t\t\tVersion:                      pulumi.String(\"7.10_with_X-Pack\"),\n\t\t\tPaymentType:                  pulumi.String(\"PayAsYouGo\"),\n\t\t\tDataNodeAmount:               pulumi.Int(2),\n\t\t\tDataNodeSpec:                 pulumi.String(\"elasticsearch.sn2ne.large\"),\n\t\t\tDataNodeDiskSize:             pulumi.Int(20),\n\t\t\tDataNodeDiskType:             pulumi.String(\"cloud_ssd\"),\n\t\t\tKibanaNodeSpec:               pulumi.String(\"elasticsearch.sn2ne.large\"),\n\t\t\tDataNodeDiskPerformanceLevel: pulumi.String(\"PL1\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.elasticsearch.ElasticsearchFunctions;\nimport com.pulumi.alicloud.elasticsearch.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.elasticsearch.Instance;\nimport com.pulumi.alicloud.elasticsearch.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ElasticsearchFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.1.0.0/16\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .description(name)\n            .vswitchId(defaultSwitch.id())\n            .password(\"Examplw1234\")\n            .version(\"7.10_with_X-Pack\")\n            .paymentType(\"PayAsYouGo\")\n            .dataNodeAmount(2)\n            .dataNodeSpec(\"elasticsearch.sn2ne.large\")\n            .dataNodeDiskSize(20)\n            .dataNodeDiskType(\"cloud_ssd\")\n            .kibanaNodeSpec(\"elasticsearch.sn2ne.large\")\n            .dataNodeDiskPerformanceLevel(\"PL1\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.0.0.0/8\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.1.0.0/16\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultInstance:\n    type: alicloud:elasticsearch:Instance\n    name: default\n    properties:\n      description: ${name}\n      vswitchId: ${defaultSwitch.id}\n      password: Examplw1234\n      version: 7.10_with_X-Pack\n      paymentType: PayAsYouGo\n      dataNodeAmount: '2'\n      dataNodeSpec: elasticsearch.sn2ne.large\n      dataNodeDiskSize: '20'\n      dataNodeDiskType: cloud_ssd\n      kibanaNodeSpec: elasticsearch.sn2ne.large\n      dataNodeDiskPerformanceLevel: PL1\n      tags:\n        Created: TF\n        For: example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:elasticsearch:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nElasticsearch Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:elasticsearch/instance:Instance example \u003cinstance_id\u003e\n```\n\n","properties":{"archType":{"type":"string","description":"The deployment mode or architecture type:.\n"},"autoRenewDuration":{"type":"integer","description":"Number of auto-renewal periods.\n"},"clientNodeAmount":{"type":"integer","description":"The Elasticsearch cluster's client node quantity, between 2 and 25.\n","deprecationMessage":"Field 'client_node_amount' has been deprecated since provider version 1.262.0. New field 'client_node_configuration.amount' instead."},"clientNodeConfiguration":{"$ref":"#/types/alicloud:elasticsearch/InstanceClientNodeConfiguration:InstanceClientNodeConfiguration","description":"Configuration of dedicated coordinating nodes in the Elasticsearch cluster.   See \u003cspan pulumi-lang-nodejs=\"`clientNodeConfiguration`\" pulumi-lang-dotnet=\"`ClientNodeConfiguration`\" pulumi-lang-go=\"`clientNodeConfiguration`\" pulumi-lang-python=\"`client_node_configuration`\" pulumi-lang-yaml=\"`clientNodeConfiguration`\" pulumi-lang-java=\"`clientNodeConfiguration`\"\u003e`client_node_configuration`\u003c/span\u003e below.\n"},"clientNodeSpec":{"type":"string","description":"The client node spec. If specified, client node will be created.\n","deprecationMessage":"Field 'client_node_spec' has been deprecated since provider version 1.262.0. New field 'client_node_configuration.spec' instead."},"createTime":{"type":"string","description":"The time when the instance was created.\n"},"dataNodeAmount":{"type":"integer","description":"The Elasticsearch cluster's data node quantity, between 2 and 50.\n","deprecationMessage":"Field 'data_node_amount' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.amount' instead."},"dataNodeConfiguration":{"$ref":"#/types/alicloud:elasticsearch/InstanceDataNodeConfiguration:InstanceDataNodeConfiguration","description":"Elasticsearch data node information. See \u003cspan pulumi-lang-nodejs=\"`dataNodeConfiguration`\" pulumi-lang-dotnet=\"`DataNodeConfiguration`\" pulumi-lang-go=\"`dataNodeConfiguration`\" pulumi-lang-python=\"`data_node_configuration`\" pulumi-lang-yaml=\"`dataNodeConfiguration`\" pulumi-lang-java=\"`dataNodeConfiguration`\"\u003e`data_node_configuration`\u003c/span\u003e below.\n"},"dataNodeDiskEncrypted":{"type":"boolean","description":"If encrypt the data node disk. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","deprecationMessage":"Field 'data_node_disk_encrypted' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.disk_encrypted' instead."},"dataNodeDiskPerformanceLevel":{"type":"string","description":"Cloud disk performance level. Valid values are `PL0`, `PL1`, `PL2`, `PL3`. The \u003cspan pulumi-lang-nodejs=\"`dataNodeDiskType`\" pulumi-lang-dotnet=\"`DataNodeDiskType`\" pulumi-lang-go=\"`dataNodeDiskType`\" pulumi-lang-python=\"`data_node_disk_type`\" pulumi-lang-yaml=\"`dataNodeDiskType`\" pulumi-lang-java=\"`dataNodeDiskType`\"\u003e`data_node_disk_type`\u003c/span\u003e muse be \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e.\n","deprecationMessage":"Field 'data_node_disk_performance_level' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.performance_level' instead."},"dataNodeDiskSize":{"type":"integer","description":"The single data node storage space.\n","deprecationMessage":"Field 'data_node_disk_size' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.disk' instead."},"dataNodeDiskType":{"type":"string","description":"The data node disk type. Supported values: cloud_ssd, cloud_efficiency.\n","deprecationMessage":"Field 'data_node_disk_type' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.disk_type' instead."},"dataNodeSpec":{"type":"string","description":"The data node specifications of the Elasticsearch instance.\n","deprecationMessage":"Field 'data_node_spec' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.spec' instead."},"description":{"type":"string","description":"Instance name, which supports fuzzy search. For example, searching for all instances containing \u003cspan pulumi-lang-nodejs=\"`abc`\" pulumi-lang-dotnet=\"`Abc`\" pulumi-lang-go=\"`abc`\" pulumi-lang-python=\"`abc`\" pulumi-lang-yaml=\"`abc`\" pulumi-lang-java=\"`abc`\"\u003e`abc`\u003c/span\u003e may return instances named \u003cspan pulumi-lang-nodejs=\"`abc`\" pulumi-lang-dotnet=\"`Abc`\" pulumi-lang-go=\"`abc`\" pulumi-lang-python=\"`abc`\" pulumi-lang-yaml=\"`abc`\" pulumi-lang-java=\"`abc`\"\u003e`abc`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`abcde`\" pulumi-lang-dotnet=\"`Abcde`\" pulumi-lang-go=\"`abcde`\" pulumi-lang-python=\"`abcde`\" pulumi-lang-yaml=\"`abcde`\" pulumi-lang-java=\"`abcde`\"\u003e`abcde`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xyabc`\" pulumi-lang-dotnet=\"`Xyabc`\" pulumi-lang-go=\"`xyabc`\" pulumi-lang-python=\"`xyabc`\" pulumi-lang-yaml=\"`xyabc`\" pulumi-lang-java=\"`xyabc`\"\u003e`xyabc`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`xabcy`\" pulumi-lang-dotnet=\"`Xabcy`\" pulumi-lang-go=\"`xabcy`\" pulumi-lang-python=\"`xabcy`\" pulumi-lang-yaml=\"`xabcy`\" pulumi-lang-java=\"`xabcy`\"\u003e`xabcy`\u003c/span\u003e.\n"},"domain":{"type":"string","description":"The internal network address of the instance.\n"},"enableKibanaPrivateNetwork":{"type":"boolean","description":"Indicates whether private network access to Kibana is enabled. Valid values:  \n- true: Enabled\n- false: Disabled\n"},"enableKibanaPublicNetwork":{"type":"boolean","description":"Specifies whether to enable public access to Kibana. Valid values:  \n- true: Enables public access.\n- false: Disables public access.\n"},"enablePublic":{"type":"boolean","description":"Specifies whether to enable a public endpoint for the instance. Valid values:\n- true: Enables the public endpoint.\n- false: Disables the public endpoint.\n"},"force":{"type":"boolean","description":"Whether to force a restart:\n- true: Yes\n- false (default): No.\n\n\u003e **NOTE:** This parameter only takes effect when other resource properties are also modified. Changing this parameter alone will not trigger a resource update.\n"},"instanceCategory":{"type":"string","description":"Edition type:  \n- x-pack: Creates a commercial edition instance, or a kernel-enhanced edition instance without Indexing Service or OpenStore enabled.\n- IS: Creates a kernel-enhanced edition instance with Indexing Service or OpenStore enabled.\n"},"instanceChargeType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`. Default to `PostPaid`. From version 1.69.0, the Elasticsearch cluster allows you to update your\u003cspan pulumi-lang-nodejs=\" instanceChargeYpe \" pulumi-lang-dotnet=\" InstanceChargeYpe \" pulumi-lang-go=\" instanceChargeYpe \" pulumi-lang-python=\" instance_charge_ype \" pulumi-lang-yaml=\" instanceChargeYpe \" pulumi-lang-java=\" instanceChargeYpe \"\u003e instance_charge_ype \u003c/span\u003efrom `PostPaid` to `PrePaid`, the following attributes are required: \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e. Use \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead with values `PayAsYouGo` or `Subscription`.\n","deprecationMessage":"Field 'instance_charge_type' has been deprecated since provider version 1.262.0. New field 'payment_type' instead."},"kibanaConfiguration":{"$ref":"#/types/alicloud:elasticsearch/InstanceKibanaConfiguration:InstanceKibanaConfiguration","description":"The configuration of Elasticsearch Kibana nodes. See \u003cspan pulumi-lang-nodejs=\"`kibanaConfiguration`\" pulumi-lang-dotnet=\"`KibanaConfiguration`\" pulumi-lang-go=\"`kibanaConfiguration`\" pulumi-lang-python=\"`kibana_configuration`\" pulumi-lang-yaml=\"`kibanaConfiguration`\" pulumi-lang-java=\"`kibanaConfiguration`\"\u003e`kibana_configuration`\u003c/span\u003e below.\n"},"kibanaDomain":{"type":"string","description":"Kibana endpoint.\n"},"kibanaNodeSpec":{"type":"string","description":"The kibana node specifications of the Elasticsearch instance. Default is `elasticsearch.n4.small`.\n","deprecationMessage":"Field 'kibana_node_spec' has been deprecated since provider version 1.262.0. New field 'kibana_configuration.spec' instead."},"kibanaPort":{"type":"integer","description":"The access port for Kibana.\n"},"kibanaPrivateDomain":{"type":"string","description":"The private endpoint of Kibana.\n"},"kibanaPrivateSecurityGroupId":{"type":"string","description":"List of security groups.\n"},"kibanaPrivateWhitelists":{"type":"array","items":{"type":"string"},"description":"List of IP addresses in the whitelist. This parameter is available when whiteIpGroup is empty and is used to modify the default group's whitelist.\n"},"kibanaWhitelists":{"type":"array","items":{"type":"string"},"description":"The list of IP addresses in the whitelist. This parameter is available when whiteIpGroup is empty and modifies the default group's whitelist.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to an instance. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored, but you have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"masterConfiguration":{"$ref":"#/types/alicloud:elasticsearch/InstanceMasterConfiguration:InstanceMasterConfiguration","description":"Configuration information for Elasticsearch dedicated master nodes. See \u003cspan pulumi-lang-nodejs=\"`masterConfiguration`\" pulumi-lang-dotnet=\"`MasterConfiguration`\" pulumi-lang-go=\"`masterConfiguration`\" pulumi-lang-python=\"`master_configuration`\" pulumi-lang-yaml=\"`masterConfiguration`\" pulumi-lang-java=\"`masterConfiguration`\"\u003e`master_configuration`\u003c/span\u003e below.\n"},"masterNodeDiskType":{"type":"string","description":"The single master node storage space. Valid values are `PrePaid`, `PostPaid`.\n","deprecationMessage":"Field 'master_node_disk_type' has been deprecated since provider version 1.262.0. New field 'master_configuration.disk_type' instead."},"masterNodeSpec":{"type":"string","description":"The dedicated master node spec. If specified, dedicated master node will be created.\n","deprecationMessage":"Field 'master_node_spec' has been deprecated since provider version 1.262.0. New field 'master_configuration.spec' instead."},"orderActionType":{"type":"string","description":"Configuration change type. Valid values:\n- upgrade (default): Upgrade configuration\n- downgrade: Downgrade configuration.\n\n\u003e **NOTE:** This parameter only takes effect when other resource properties are also modified. Changing this parameter alone will not trigger a resource update.\n"},"password":{"type":"string","description":"The access password for the instance. It must be 8 to 32 characters in length and contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters (!@#$%^\u0026*()_+-=).\n","secret":true},"paymentType":{"type":"string","description":"The billing method of the instance. Supported values:\n- `PayAsYouGo`: Pay-as-you-go\n- `Subscription`: Subscription\n"},"period":{"type":"integer","description":"The duration that you will buy Elasticsearch instance (in month). It is valid when PaymentType is `Subscription`. Valid values: [1~9], 12, 24, 36. Default to 1. From version 1.69.2, when to modify this value, the resource can renewal a `PrePaid` instance.\n"},"port":{"type":"integer","description":"Instance connection port.\n"},"privateWhitelists":{"type":"array","items":{"type":"string"},"description":"The list of IP addresses in the whitelist. This parameter is available when whiteIpGroup is empty and modifies the default group's whitelist.\n"},"protocol":{"type":"string","description":"The access protocol. Supported protocols: HTTP and HTTPS.\n"},"publicDomain":{"type":"string","description":"The public endpoint of the instance.\n"},"publicPort":{"type":"integer","description":"The public access port of the instance.\n"},"publicWhitelists":{"type":"array","items":{"type":"string"},"description":"The IP address whitelist. This parameter is available when whiteIpGroup is empty and is used to modify the default group's whitelist.\n"},"renewStatus":{"type":"string","description":"The renewal status. Valid values:\n- AutoRenewal: Auto-renewal.\n- ManualRenewal: Manual renewal.\n- NotRenewal: No renewal.\n"},"renewalDurationUnit":{"type":"string","description":"The unit of the auto-renewal period. Valid values:  \n- M: Month.\n- Y: Year.\n\n\u003e **NOTE:**  This parameter is required when RenewalStatus is set to AutoRenewal.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"settingConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"YML configuration file settings for the instance.\n"},"status":{"type":"string","description":"The status of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Instance tag group.\n"},"updateStrategy":{"type":"string","description":"Elasticsearch update strategy (for example, index updates, cluster upgrades, or service deployments). Valid values:\n- blue_green: Blue-green deployment, which enables seamless switching by running two identical environments (blue and green) in parallel.\n- normal: In-place update, which applies changes directly in the current environment (for example, upgrades or scaling) without requiring additional resources.\n- intelligent: Intelligent update, where the system automatically analyzes the update type and environment status to dynamically select the optimal strategy (either blue-green or in-place).\n\n\u003e **NOTE:** This parameter only takes effect when other resource properties are also modified. Changing this parameter alone will not trigger a resource update.\n"},"version":{"type":"string","description":"The instance version. Valid values:\n- 8.5.1_with_X-Pack\n- 7.10_with_X-Pack\n- 6.7_with_X-Pack\n- 7.7_with_X-Pack\n- 6.8_with_X-Pack\n- 6.3_with_X-Pack\n- 5.6_with_X-Pack\n- 5.5.3_with_X-Pack\n\n\u003e **NOTE:**  The versions listed above might not include all versions supported by Elasticsearch instances. You can call the [GetRegionConfiguration](https://help.aliyun.com/document_detail/254099.html) operation to view the actual supported versions.\n"},"vswitchId":{"type":"string","description":"The ID of VSwitch.\n"},"warmNodeAmount":{"type":"integer","description":"The Elasticsearch cluster's warm node quantity, between 3 and 50.\n","deprecationMessage":"Field 'warm_node_amount' has been deprecated since provider version 1.262.0. New field 'warm_node_configuration.amount' instead."},"warmNodeConfiguration":{"$ref":"#/types/alicloud:elasticsearch/InstanceWarmNodeConfiguration:InstanceWarmNodeConfiguration","description":"Cold data node configuration for the Elasticsearch cluster. See \u003cspan pulumi-lang-nodejs=\"`warmNodeConfiguration`\" pulumi-lang-dotnet=\"`WarmNodeConfiguration`\" pulumi-lang-go=\"`warmNodeConfiguration`\" pulumi-lang-python=\"`warm_node_configuration`\" pulumi-lang-yaml=\"`warmNodeConfiguration`\" pulumi-lang-java=\"`warmNodeConfiguration`\"\u003e`warm_node_configuration`\u003c/span\u003e below.\n"},"warmNodeDiskEncrypted":{"type":"boolean","description":"If encrypt the warm node disk. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","deprecationMessage":"Field 'warm_node_amount' has been deprecated since provider version 1.262.0. New field 'warm_node_configuration.disk_encrypted' instead."},"warmNodeDiskSize":{"type":"integer","description":"The single warm node storage space, should between 500 and 20480\n","deprecationMessage":"Field 'warm_node_amount' has been deprecated since provider version 1.262.0. New field 'warm_node_configuration.disk' instead."},"warmNodeDiskType":{"type":"string","description":"The warm node disk type. Supported values:  cloud_efficiency.\n","deprecationMessage":"Field 'warm_node_amount' has been deprecated since provider version 1.262.0. New field 'warm_node_configuration.disk_type' instead."},"warmNodeSpec":{"type":"string","description":"The warm node specifications of the Elasticsearch instance.\n","deprecationMessage":"Field 'warm_node_amount' has been deprecated since provider version 1.262.0. New field 'warm_node_configuration.spec' instead."},"zoneCount":{"type":"integer","description":"The number of zones for the instance. Valid values: 1, 2, and 3. Default value: 1.  \n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["archType","clientNodeAmount","clientNodeConfiguration","clientNodeSpec","createTime","dataNodeAmount","dataNodeConfiguration","dataNodeDiskEncrypted","dataNodeDiskPerformanceLevel","dataNodeDiskSize","dataNodeDiskType","dataNodeSpec","description","domain","enableKibanaPrivateNetwork","enableKibanaPublicNetwork","enablePublic","instanceCategory","instanceChargeType","kibanaConfiguration","kibanaDomain","kibanaNodeSpec","kibanaPort","kibanaPrivateDomain","kibanaPrivateWhitelists","kibanaWhitelists","masterConfiguration","masterNodeDiskType","masterNodeSpec","paymentType","period","port","privateWhitelists","protocol","publicDomain","publicPort","publicWhitelists","renewStatus","renewalDurationUnit","resourceGroupId","settingConfig","status","version","vswitchId","warmNodeAmount","warmNodeConfiguration","warmNodeDiskEncrypted","warmNodeDiskSize","warmNodeDiskType","warmNodeSpec","zoneCount"],"inputProperties":{"autoRenewDuration":{"type":"integer","description":"Number of auto-renewal periods.\n"},"clientNodeAmount":{"type":"integer","description":"The Elasticsearch cluster's client node quantity, between 2 and 25.\n","deprecationMessage":"Field 'client_node_amount' has been deprecated since provider version 1.262.0. New field 'client_node_configuration.amount' instead."},"clientNodeConfiguration":{"$ref":"#/types/alicloud:elasticsearch/InstanceClientNodeConfiguration:InstanceClientNodeConfiguration","description":"Configuration of dedicated coordinating nodes in the Elasticsearch cluster.   See \u003cspan pulumi-lang-nodejs=\"`clientNodeConfiguration`\" pulumi-lang-dotnet=\"`ClientNodeConfiguration`\" pulumi-lang-go=\"`clientNodeConfiguration`\" pulumi-lang-python=\"`client_node_configuration`\" pulumi-lang-yaml=\"`clientNodeConfiguration`\" pulumi-lang-java=\"`clientNodeConfiguration`\"\u003e`client_node_configuration`\u003c/span\u003e below.\n"},"clientNodeSpec":{"type":"string","description":"The client node spec. If specified, client node will be created.\n","deprecationMessage":"Field 'client_node_spec' has been deprecated since provider version 1.262.0. New field 'client_node_configuration.spec' instead."},"dataNodeAmount":{"type":"integer","description":"The Elasticsearch cluster's data node quantity, between 2 and 50.\n","deprecationMessage":"Field 'data_node_amount' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.amount' instead."},"dataNodeConfiguration":{"$ref":"#/types/alicloud:elasticsearch/InstanceDataNodeConfiguration:InstanceDataNodeConfiguration","description":"Elasticsearch data node information. See \u003cspan pulumi-lang-nodejs=\"`dataNodeConfiguration`\" pulumi-lang-dotnet=\"`DataNodeConfiguration`\" pulumi-lang-go=\"`dataNodeConfiguration`\" pulumi-lang-python=\"`data_node_configuration`\" pulumi-lang-yaml=\"`dataNodeConfiguration`\" pulumi-lang-java=\"`dataNodeConfiguration`\"\u003e`data_node_configuration`\u003c/span\u003e below.\n"},"dataNodeDiskEncrypted":{"type":"boolean","description":"If encrypt the data node disk. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","deprecationMessage":"Field 'data_node_disk_encrypted' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.disk_encrypted' instead.","willReplaceOnChanges":true},"dataNodeDiskPerformanceLevel":{"type":"string","description":"Cloud disk performance level. Valid values are `PL0`, `PL1`, `PL2`, `PL3`. The \u003cspan pulumi-lang-nodejs=\"`dataNodeDiskType`\" pulumi-lang-dotnet=\"`DataNodeDiskType`\" pulumi-lang-go=\"`dataNodeDiskType`\" pulumi-lang-python=\"`data_node_disk_type`\" pulumi-lang-yaml=\"`dataNodeDiskType`\" pulumi-lang-java=\"`dataNodeDiskType`\"\u003e`data_node_disk_type`\u003c/span\u003e muse be \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e.\n","deprecationMessage":"Field 'data_node_disk_performance_level' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.performance_level' instead."},"dataNodeDiskSize":{"type":"integer","description":"The single data node storage space.\n","deprecationMessage":"Field 'data_node_disk_size' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.disk' instead."},"dataNodeDiskType":{"type":"string","description":"The data node disk type. Supported values: cloud_ssd, cloud_efficiency.\n","deprecationMessage":"Field 'data_node_disk_type' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.disk_type' instead.","willReplaceOnChanges":true},"dataNodeSpec":{"type":"string","description":"The data node specifications of the Elasticsearch instance.\n","deprecationMessage":"Field 'data_node_spec' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.spec' instead."},"description":{"type":"string","description":"Instance name, which supports fuzzy search. For example, searching for all instances containing \u003cspan pulumi-lang-nodejs=\"`abc`\" pulumi-lang-dotnet=\"`Abc`\" pulumi-lang-go=\"`abc`\" pulumi-lang-python=\"`abc`\" pulumi-lang-yaml=\"`abc`\" pulumi-lang-java=\"`abc`\"\u003e`abc`\u003c/span\u003e may return instances named \u003cspan pulumi-lang-nodejs=\"`abc`\" pulumi-lang-dotnet=\"`Abc`\" pulumi-lang-go=\"`abc`\" pulumi-lang-python=\"`abc`\" pulumi-lang-yaml=\"`abc`\" pulumi-lang-java=\"`abc`\"\u003e`abc`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`abcde`\" pulumi-lang-dotnet=\"`Abcde`\" pulumi-lang-go=\"`abcde`\" pulumi-lang-python=\"`abcde`\" pulumi-lang-yaml=\"`abcde`\" pulumi-lang-java=\"`abcde`\"\u003e`abcde`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xyabc`\" pulumi-lang-dotnet=\"`Xyabc`\" pulumi-lang-go=\"`xyabc`\" pulumi-lang-python=\"`xyabc`\" pulumi-lang-yaml=\"`xyabc`\" pulumi-lang-java=\"`xyabc`\"\u003e`xyabc`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`xabcy`\" pulumi-lang-dotnet=\"`Xabcy`\" pulumi-lang-go=\"`xabcy`\" pulumi-lang-python=\"`xabcy`\" pulumi-lang-yaml=\"`xabcy`\" pulumi-lang-java=\"`xabcy`\"\u003e`xabcy`\u003c/span\u003e.\n"},"enableKibanaPrivateNetwork":{"type":"boolean","description":"Indicates whether private network access to Kibana is enabled. Valid values:  \n- true: Enabled\n- false: Disabled\n"},"enableKibanaPublicNetwork":{"type":"boolean","description":"Specifies whether to enable public access to Kibana. Valid values:  \n- true: Enables public access.\n- false: Disables public access.\n"},"enablePublic":{"type":"boolean","description":"Specifies whether to enable a public endpoint for the instance. Valid values:\n- true: Enables the public endpoint.\n- false: Disables the public endpoint.\n"},"force":{"type":"boolean","description":"Whether to force a restart:\n- true: Yes\n- false (default): No.\n\n\u003e **NOTE:** This parameter only takes effect when other resource properties are also modified. Changing this parameter alone will not trigger a resource update.\n"},"instanceCategory":{"type":"string","description":"Edition type:  \n- x-pack: Creates a commercial edition instance, or a kernel-enhanced edition instance without Indexing Service or OpenStore enabled.\n- IS: Creates a kernel-enhanced edition instance with Indexing Service or OpenStore enabled.\n","willReplaceOnChanges":true},"instanceChargeType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`. Default to `PostPaid`. From version 1.69.0, the Elasticsearch cluster allows you to update your\u003cspan pulumi-lang-nodejs=\" instanceChargeYpe \" pulumi-lang-dotnet=\" InstanceChargeYpe \" pulumi-lang-go=\" instanceChargeYpe \" pulumi-lang-python=\" instance_charge_ype \" pulumi-lang-yaml=\" instanceChargeYpe \" pulumi-lang-java=\" instanceChargeYpe \"\u003e instance_charge_ype \u003c/span\u003efrom `PostPaid` to `PrePaid`, the following attributes are required: \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e. Use \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead with values `PayAsYouGo` or `Subscription`.\n","deprecationMessage":"Field 'instance_charge_type' has been deprecated since provider version 1.262.0. New field 'payment_type' instead."},"kibanaConfiguration":{"$ref":"#/types/alicloud:elasticsearch/InstanceKibanaConfiguration:InstanceKibanaConfiguration","description":"The configuration of Elasticsearch Kibana nodes. See \u003cspan pulumi-lang-nodejs=\"`kibanaConfiguration`\" pulumi-lang-dotnet=\"`KibanaConfiguration`\" pulumi-lang-go=\"`kibanaConfiguration`\" pulumi-lang-python=\"`kibana_configuration`\" pulumi-lang-yaml=\"`kibanaConfiguration`\" pulumi-lang-java=\"`kibanaConfiguration`\"\u003e`kibana_configuration`\u003c/span\u003e below.\n"},"kibanaNodeSpec":{"type":"string","description":"The kibana node specifications of the Elasticsearch instance. Default is `elasticsearch.n4.small`.\n","deprecationMessage":"Field 'kibana_node_spec' has been deprecated since provider version 1.262.0. New field 'kibana_configuration.spec' instead."},"kibanaPrivateSecurityGroupId":{"type":"string","description":"List of security groups.\n"},"kibanaPrivateWhitelists":{"type":"array","items":{"type":"string"},"description":"List of IP addresses in the whitelist. This parameter is available when whiteIpGroup is empty and is used to modify the default group's whitelist.\n"},"kibanaWhitelists":{"type":"array","items":{"type":"string"},"description":"The list of IP addresses in the whitelist. This parameter is available when whiteIpGroup is empty and modifies the default group's whitelist.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to an instance. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored, but you have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"masterConfiguration":{"$ref":"#/types/alicloud:elasticsearch/InstanceMasterConfiguration:InstanceMasterConfiguration","description":"Configuration information for Elasticsearch dedicated master nodes. See \u003cspan pulumi-lang-nodejs=\"`masterConfiguration`\" pulumi-lang-dotnet=\"`MasterConfiguration`\" pulumi-lang-go=\"`masterConfiguration`\" pulumi-lang-python=\"`master_configuration`\" pulumi-lang-yaml=\"`masterConfiguration`\" pulumi-lang-java=\"`masterConfiguration`\"\u003e`master_configuration`\u003c/span\u003e below.\n"},"masterNodeDiskType":{"type":"string","description":"The single master node storage space. Valid values are `PrePaid`, `PostPaid`.\n","deprecationMessage":"Field 'master_node_disk_type' has been deprecated since provider version 1.262.0. New field 'master_configuration.disk_type' instead."},"masterNodeSpec":{"type":"string","description":"The dedicated master node spec. If specified, dedicated master node will be created.\n","deprecationMessage":"Field 'master_node_spec' has been deprecated since provider version 1.262.0. New field 'master_configuration.spec' instead."},"orderActionType":{"type":"string","description":"Configuration change type. Valid values:\n- upgrade (default): Upgrade configuration\n- downgrade: Downgrade configuration.\n\n\u003e **NOTE:** This parameter only takes effect when other resource properties are also modified. Changing this parameter alone will not trigger a resource update.\n"},"password":{"type":"string","description":"The access password for the instance. It must be 8 to 32 characters in length and contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters (!@#$%^\u0026*()_+-=).\n","secret":true},"paymentType":{"type":"string","description":"The billing method of the instance. Supported values:\n- `PayAsYouGo`: Pay-as-you-go\n- `Subscription`: Subscription\n"},"period":{"type":"integer","description":"The duration that you will buy Elasticsearch instance (in month). It is valid when PaymentType is `Subscription`. Valid values: [1~9], 12, 24, 36. Default to 1. From version 1.69.2, when to modify this value, the resource can renewal a `PrePaid` instance.\n"},"privateWhitelists":{"type":"array","items":{"type":"string"},"description":"The list of IP addresses in the whitelist. This parameter is available when whiteIpGroup is empty and modifies the default group's whitelist.\n"},"protocol":{"type":"string","description":"The access protocol. Supported protocols: HTTP and HTTPS.\n"},"publicWhitelists":{"type":"array","items":{"type":"string"},"description":"The IP address whitelist. This parameter is available when whiteIpGroup is empty and is used to modify the default group's whitelist.\n"},"renewStatus":{"type":"string","description":"The renewal status. Valid values:\n- AutoRenewal: Auto-renewal.\n- ManualRenewal: Manual renewal.\n- NotRenewal: No renewal.\n"},"renewalDurationUnit":{"type":"string","description":"The unit of the auto-renewal period. Valid values:  \n- M: Month.\n- Y: Year.\n\n\u003e **NOTE:**  This parameter is required when RenewalStatus is set to AutoRenewal.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n","willReplaceOnChanges":true},"settingConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"YML configuration file settings for the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Instance tag group.\n"},"updateStrategy":{"type":"string","description":"Elasticsearch update strategy (for example, index updates, cluster upgrades, or service deployments). Valid values:\n- blue_green: Blue-green deployment, which enables seamless switching by running two identical environments (blue and green) in parallel.\n- normal: In-place update, which applies changes directly in the current environment (for example, upgrades or scaling) without requiring additional resources.\n- intelligent: Intelligent update, where the system automatically analyzes the update type and environment status to dynamically select the optimal strategy (either blue-green or in-place).\n\n\u003e **NOTE:** This parameter only takes effect when other resource properties are also modified. Changing this parameter alone will not trigger a resource update.\n"},"version":{"type":"string","description":"The instance version. Valid values:\n- 8.5.1_with_X-Pack\n- 7.10_with_X-Pack\n- 6.7_with_X-Pack\n- 7.7_with_X-Pack\n- 6.8_with_X-Pack\n- 6.3_with_X-Pack\n- 5.6_with_X-Pack\n- 5.5.3_with_X-Pack\n\n\u003e **NOTE:**  The versions listed above might not include all versions supported by Elasticsearch instances. You can call the [GetRegionConfiguration](https://help.aliyun.com/document_detail/254099.html) operation to view the actual supported versions.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of VSwitch.\n","willReplaceOnChanges":true},"warmNodeAmount":{"type":"integer","description":"The Elasticsearch cluster's warm node quantity, between 3 and 50.\n","deprecationMessage":"Field 'warm_node_amount' has been deprecated since provider version 1.262.0. New field 'warm_node_configuration.amount' instead."},"warmNodeConfiguration":{"$ref":"#/types/alicloud:elasticsearch/InstanceWarmNodeConfiguration:InstanceWarmNodeConfiguration","description":"Cold data node configuration for the Elasticsearch cluster. See \u003cspan pulumi-lang-nodejs=\"`warmNodeConfiguration`\" pulumi-lang-dotnet=\"`WarmNodeConfiguration`\" pulumi-lang-go=\"`warmNodeConfiguration`\" pulumi-lang-python=\"`warm_node_configuration`\" pulumi-lang-yaml=\"`warmNodeConfiguration`\" pulumi-lang-java=\"`warmNodeConfiguration`\"\u003e`warm_node_configuration`\u003c/span\u003e below.\n"},"warmNodeDiskEncrypted":{"type":"boolean","description":"If encrypt the warm node disk. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","deprecationMessage":"Field 'warm_node_amount' has been deprecated since provider version 1.262.0. New field 'warm_node_configuration.disk_encrypted' instead.","willReplaceOnChanges":true},"warmNodeDiskSize":{"type":"integer","description":"The single warm node storage space, should between 500 and 20480\n","deprecationMessage":"Field 'warm_node_amount' has been deprecated since provider version 1.262.0. New field 'warm_node_configuration.disk' instead."},"warmNodeDiskType":{"type":"string","description":"The warm node disk type. Supported values:  cloud_efficiency.\n","deprecationMessage":"Field 'warm_node_amount' has been deprecated since provider version 1.262.0. New field 'warm_node_configuration.disk_type' instead."},"warmNodeSpec":{"type":"string","description":"The warm node specifications of the Elasticsearch instance.\n","deprecationMessage":"Field 'warm_node_amount' has been deprecated since provider version 1.262.0. New field 'warm_node_configuration.spec' instead."},"zoneCount":{"type":"integer","description":"The number of zones for the instance. Valid values: 1, 2, and 3. Default value: 1.  \n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"requiredInputs":["version","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"archType":{"type":"string","description":"The deployment mode or architecture type:.\n"},"autoRenewDuration":{"type":"integer","description":"Number of auto-renewal periods.\n"},"clientNodeAmount":{"type":"integer","description":"The Elasticsearch cluster's client node quantity, between 2 and 25.\n","deprecationMessage":"Field 'client_node_amount' has been deprecated since provider version 1.262.0. New field 'client_node_configuration.amount' instead."},"clientNodeConfiguration":{"$ref":"#/types/alicloud:elasticsearch/InstanceClientNodeConfiguration:InstanceClientNodeConfiguration","description":"Configuration of dedicated coordinating nodes in the Elasticsearch cluster.   See \u003cspan pulumi-lang-nodejs=\"`clientNodeConfiguration`\" pulumi-lang-dotnet=\"`ClientNodeConfiguration`\" pulumi-lang-go=\"`clientNodeConfiguration`\" pulumi-lang-python=\"`client_node_configuration`\" pulumi-lang-yaml=\"`clientNodeConfiguration`\" pulumi-lang-java=\"`clientNodeConfiguration`\"\u003e`client_node_configuration`\u003c/span\u003e below.\n"},"clientNodeSpec":{"type":"string","description":"The client node spec. If specified, client node will be created.\n","deprecationMessage":"Field 'client_node_spec' has been deprecated since provider version 1.262.0. New field 'client_node_configuration.spec' instead."},"createTime":{"type":"string","description":"The time when the instance was created.\n"},"dataNodeAmount":{"type":"integer","description":"The Elasticsearch cluster's data node quantity, between 2 and 50.\n","deprecationMessage":"Field 'data_node_amount' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.amount' instead."},"dataNodeConfiguration":{"$ref":"#/types/alicloud:elasticsearch/InstanceDataNodeConfiguration:InstanceDataNodeConfiguration","description":"Elasticsearch data node information. See \u003cspan pulumi-lang-nodejs=\"`dataNodeConfiguration`\" pulumi-lang-dotnet=\"`DataNodeConfiguration`\" pulumi-lang-go=\"`dataNodeConfiguration`\" pulumi-lang-python=\"`data_node_configuration`\" pulumi-lang-yaml=\"`dataNodeConfiguration`\" pulumi-lang-java=\"`dataNodeConfiguration`\"\u003e`data_node_configuration`\u003c/span\u003e below.\n"},"dataNodeDiskEncrypted":{"type":"boolean","description":"If encrypt the data node disk. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","deprecationMessage":"Field 'data_node_disk_encrypted' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.disk_encrypted' instead.","willReplaceOnChanges":true},"dataNodeDiskPerformanceLevel":{"type":"string","description":"Cloud disk performance level. Valid values are `PL0`, `PL1`, `PL2`, `PL3`. The \u003cspan pulumi-lang-nodejs=\"`dataNodeDiskType`\" pulumi-lang-dotnet=\"`DataNodeDiskType`\" pulumi-lang-go=\"`dataNodeDiskType`\" pulumi-lang-python=\"`data_node_disk_type`\" pulumi-lang-yaml=\"`dataNodeDiskType`\" pulumi-lang-java=\"`dataNodeDiskType`\"\u003e`data_node_disk_type`\u003c/span\u003e muse be \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e.\n","deprecationMessage":"Field 'data_node_disk_performance_level' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.performance_level' instead."},"dataNodeDiskSize":{"type":"integer","description":"The single data node storage space.\n","deprecationMessage":"Field 'data_node_disk_size' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.disk' instead."},"dataNodeDiskType":{"type":"string","description":"The data node disk type. Supported values: cloud_ssd, cloud_efficiency.\n","deprecationMessage":"Field 'data_node_disk_type' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.disk_type' instead.","willReplaceOnChanges":true},"dataNodeSpec":{"type":"string","description":"The data node specifications of the Elasticsearch instance.\n","deprecationMessage":"Field 'data_node_spec' has been deprecated since provider version 1.262.0. New field 'data_node_configuration.spec' instead."},"description":{"type":"string","description":"Instance name, which supports fuzzy search. For example, searching for all instances containing \u003cspan pulumi-lang-nodejs=\"`abc`\" pulumi-lang-dotnet=\"`Abc`\" pulumi-lang-go=\"`abc`\" pulumi-lang-python=\"`abc`\" pulumi-lang-yaml=\"`abc`\" pulumi-lang-java=\"`abc`\"\u003e`abc`\u003c/span\u003e may return instances named \u003cspan pulumi-lang-nodejs=\"`abc`\" pulumi-lang-dotnet=\"`Abc`\" pulumi-lang-go=\"`abc`\" pulumi-lang-python=\"`abc`\" pulumi-lang-yaml=\"`abc`\" pulumi-lang-java=\"`abc`\"\u003e`abc`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`abcde`\" pulumi-lang-dotnet=\"`Abcde`\" pulumi-lang-go=\"`abcde`\" pulumi-lang-python=\"`abcde`\" pulumi-lang-yaml=\"`abcde`\" pulumi-lang-java=\"`abcde`\"\u003e`abcde`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`xyabc`\" pulumi-lang-dotnet=\"`Xyabc`\" pulumi-lang-go=\"`xyabc`\" pulumi-lang-python=\"`xyabc`\" pulumi-lang-yaml=\"`xyabc`\" pulumi-lang-java=\"`xyabc`\"\u003e`xyabc`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`xabcy`\" pulumi-lang-dotnet=\"`Xabcy`\" pulumi-lang-go=\"`xabcy`\" pulumi-lang-python=\"`xabcy`\" pulumi-lang-yaml=\"`xabcy`\" pulumi-lang-java=\"`xabcy`\"\u003e`xabcy`\u003c/span\u003e.\n"},"domain":{"type":"string","description":"The internal network address of the instance.\n"},"enableKibanaPrivateNetwork":{"type":"boolean","description":"Indicates whether private network access to Kibana is enabled. Valid values:  \n- true: Enabled\n- false: Disabled\n"},"enableKibanaPublicNetwork":{"type":"boolean","description":"Specifies whether to enable public access to Kibana. Valid values:  \n- true: Enables public access.\n- false: Disables public access.\n"},"enablePublic":{"type":"boolean","description":"Specifies whether to enable a public endpoint for the instance. Valid values:\n- true: Enables the public endpoint.\n- false: Disables the public endpoint.\n"},"force":{"type":"boolean","description":"Whether to force a restart:\n- true: Yes\n- false (default): No.\n\n\u003e **NOTE:** This parameter only takes effect when other resource properties are also modified. Changing this parameter alone will not trigger a resource update.\n"},"instanceCategory":{"type":"string","description":"Edition type:  \n- x-pack: Creates a commercial edition instance, or a kernel-enhanced edition instance without Indexing Service or OpenStore enabled.\n- IS: Creates a kernel-enhanced edition instance with Indexing Service or OpenStore enabled.\n","willReplaceOnChanges":true},"instanceChargeType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`. Default to `PostPaid`. From version 1.69.0, the Elasticsearch cluster allows you to update your\u003cspan pulumi-lang-nodejs=\" instanceChargeYpe \" pulumi-lang-dotnet=\" InstanceChargeYpe \" pulumi-lang-go=\" instanceChargeYpe \" pulumi-lang-python=\" instance_charge_ype \" pulumi-lang-yaml=\" instanceChargeYpe \" pulumi-lang-java=\" instanceChargeYpe \"\u003e instance_charge_ype \u003c/span\u003efrom `PostPaid` to `PrePaid`, the following attributes are required: \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e. Use \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead with values `PayAsYouGo` or `Subscription`.\n","deprecationMessage":"Field 'instance_charge_type' has been deprecated since provider version 1.262.0. New field 'payment_type' instead."},"kibanaConfiguration":{"$ref":"#/types/alicloud:elasticsearch/InstanceKibanaConfiguration:InstanceKibanaConfiguration","description":"The configuration of Elasticsearch Kibana nodes. See \u003cspan pulumi-lang-nodejs=\"`kibanaConfiguration`\" pulumi-lang-dotnet=\"`KibanaConfiguration`\" pulumi-lang-go=\"`kibanaConfiguration`\" pulumi-lang-python=\"`kibana_configuration`\" pulumi-lang-yaml=\"`kibanaConfiguration`\" pulumi-lang-java=\"`kibanaConfiguration`\"\u003e`kibana_configuration`\u003c/span\u003e below.\n"},"kibanaDomain":{"type":"string","description":"Kibana endpoint.\n"},"kibanaNodeSpec":{"type":"string","description":"The kibana node specifications of the Elasticsearch instance. Default is `elasticsearch.n4.small`.\n","deprecationMessage":"Field 'kibana_node_spec' has been deprecated since provider version 1.262.0. New field 'kibana_configuration.spec' instead."},"kibanaPort":{"type":"integer","description":"The access port for Kibana.\n"},"kibanaPrivateDomain":{"type":"string","description":"The private endpoint of Kibana.\n"},"kibanaPrivateSecurityGroupId":{"type":"string","description":"List of security groups.\n"},"kibanaPrivateWhitelists":{"type":"array","items":{"type":"string"},"description":"List of IP addresses in the whitelist. This parameter is available when whiteIpGroup is empty and is used to modify the default group's whitelist.\n"},"kibanaWhitelists":{"type":"array","items":{"type":"string"},"description":"The list of IP addresses in the whitelist. This parameter is available when whiteIpGroup is empty and modifies the default group's whitelist.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to an instance. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored, but you have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"masterConfiguration":{"$ref":"#/types/alicloud:elasticsearch/InstanceMasterConfiguration:InstanceMasterConfiguration","description":"Configuration information for Elasticsearch dedicated master nodes. See \u003cspan pulumi-lang-nodejs=\"`masterConfiguration`\" pulumi-lang-dotnet=\"`MasterConfiguration`\" pulumi-lang-go=\"`masterConfiguration`\" pulumi-lang-python=\"`master_configuration`\" pulumi-lang-yaml=\"`masterConfiguration`\" pulumi-lang-java=\"`masterConfiguration`\"\u003e`master_configuration`\u003c/span\u003e below.\n"},"masterNodeDiskType":{"type":"string","description":"The single master node storage space. Valid values are `PrePaid`, `PostPaid`.\n","deprecationMessage":"Field 'master_node_disk_type' has been deprecated since provider version 1.262.0. New field 'master_configuration.disk_type' instead."},"masterNodeSpec":{"type":"string","description":"The dedicated master node spec. If specified, dedicated master node will be created.\n","deprecationMessage":"Field 'master_node_spec' has been deprecated since provider version 1.262.0. New field 'master_configuration.spec' instead."},"orderActionType":{"type":"string","description":"Configuration change type. Valid values:\n- upgrade (default): Upgrade configuration\n- downgrade: Downgrade configuration.\n\n\u003e **NOTE:** This parameter only takes effect when other resource properties are also modified. Changing this parameter alone will not trigger a resource update.\n"},"password":{"type":"string","description":"The access password for the instance. It must be 8 to 32 characters in length and contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters (!@#$%^\u0026*()_+-=).\n","secret":true},"paymentType":{"type":"string","description":"The billing method of the instance. Supported values:\n- `PayAsYouGo`: Pay-as-you-go\n- `Subscription`: Subscription\n"},"period":{"type":"integer","description":"The duration that you will buy Elasticsearch instance (in month). It is valid when PaymentType is `Subscription`. Valid values: [1~9], 12, 24, 36. Default to 1. From version 1.69.2, when to modify this value, the resource can renewal a `PrePaid` instance.\n"},"port":{"type":"integer","description":"Instance connection port.\n"},"privateWhitelists":{"type":"array","items":{"type":"string"},"description":"The list of IP addresses in the whitelist. This parameter is available when whiteIpGroup is empty and modifies the default group's whitelist.\n"},"protocol":{"type":"string","description":"The access protocol. Supported protocols: HTTP and HTTPS.\n"},"publicDomain":{"type":"string","description":"The public endpoint of the instance.\n"},"publicPort":{"type":"integer","description":"The public access port of the instance.\n"},"publicWhitelists":{"type":"array","items":{"type":"string"},"description":"The IP address whitelist. This parameter is available when whiteIpGroup is empty and is used to modify the default group's whitelist.\n"},"renewStatus":{"type":"string","description":"The renewal status. Valid values:\n- AutoRenewal: Auto-renewal.\n- ManualRenewal: Manual renewal.\n- NotRenewal: No renewal.\n"},"renewalDurationUnit":{"type":"string","description":"The unit of the auto-renewal period. Valid values:  \n- M: Month.\n- Y: Year.\n\n\u003e **NOTE:**  This parameter is required when RenewalStatus is set to AutoRenewal.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n","willReplaceOnChanges":true},"settingConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"YML configuration file settings for the instance.\n"},"status":{"type":"string","description":"The status of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Instance tag group.\n"},"updateStrategy":{"type":"string","description":"Elasticsearch update strategy (for example, index updates, cluster upgrades, or service deployments). Valid values:\n- blue_green: Blue-green deployment, which enables seamless switching by running two identical environments (blue and green) in parallel.\n- normal: In-place update, which applies changes directly in the current environment (for example, upgrades or scaling) without requiring additional resources.\n- intelligent: Intelligent update, where the system automatically analyzes the update type and environment status to dynamically select the optimal strategy (either blue-green or in-place).\n\n\u003e **NOTE:** This parameter only takes effect when other resource properties are also modified. Changing this parameter alone will not trigger a resource update.\n"},"version":{"type":"string","description":"The instance version. Valid values:\n- 8.5.1_with_X-Pack\n- 7.10_with_X-Pack\n- 6.7_with_X-Pack\n- 7.7_with_X-Pack\n- 6.8_with_X-Pack\n- 6.3_with_X-Pack\n- 5.6_with_X-Pack\n- 5.5.3_with_X-Pack\n\n\u003e **NOTE:**  The versions listed above might not include all versions supported by Elasticsearch instances. You can call the [GetRegionConfiguration](https://help.aliyun.com/document_detail/254099.html) operation to view the actual supported versions.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of VSwitch.\n","willReplaceOnChanges":true},"warmNodeAmount":{"type":"integer","description":"The Elasticsearch cluster's warm node quantity, between 3 and 50.\n","deprecationMessage":"Field 'warm_node_amount' has been deprecated since provider version 1.262.0. New field 'warm_node_configuration.amount' instead."},"warmNodeConfiguration":{"$ref":"#/types/alicloud:elasticsearch/InstanceWarmNodeConfiguration:InstanceWarmNodeConfiguration","description":"Cold data node configuration for the Elasticsearch cluster. See \u003cspan pulumi-lang-nodejs=\"`warmNodeConfiguration`\" pulumi-lang-dotnet=\"`WarmNodeConfiguration`\" pulumi-lang-go=\"`warmNodeConfiguration`\" pulumi-lang-python=\"`warm_node_configuration`\" pulumi-lang-yaml=\"`warmNodeConfiguration`\" pulumi-lang-java=\"`warmNodeConfiguration`\"\u003e`warm_node_configuration`\u003c/span\u003e below.\n"},"warmNodeDiskEncrypted":{"type":"boolean","description":"If encrypt the warm node disk. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","deprecationMessage":"Field 'warm_node_amount' has been deprecated since provider version 1.262.0. New field 'warm_node_configuration.disk_encrypted' instead.","willReplaceOnChanges":true},"warmNodeDiskSize":{"type":"integer","description":"The single warm node storage space, should between 500 and 20480\n","deprecationMessage":"Field 'warm_node_amount' has been deprecated since provider version 1.262.0. New field 'warm_node_configuration.disk' instead."},"warmNodeDiskType":{"type":"string","description":"The warm node disk type. Supported values:  cloud_efficiency.\n","deprecationMessage":"Field 'warm_node_amount' has been deprecated since provider version 1.262.0. New field 'warm_node_configuration.disk_type' instead."},"warmNodeSpec":{"type":"string","description":"The warm node specifications of the Elasticsearch instance.\n","deprecationMessage":"Field 'warm_node_amount' has been deprecated since provider version 1.262.0. New field 'warm_node_configuration.spec' instead."},"zoneCount":{"type":"integer","description":"The number of zones for the instance. Valid values: 1, 2, and 3. Default value: 1.  \n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:emr/cluster:Cluster":{"description":"Provides a EMR Cluster resource. With this you can create, read, and release  EMR Cluster. \n\n\u003e **DEPRECATED:**  This resource has been deprecated from version `1.204.0`. Please use new resource emrv2_cluster.\n\n\u003e **NOTE:** Available since v1.57.0.\n\n## Example Usage\n\n### 1. Create A Cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.emr.getMainVersions({});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.emr.getInstanceTypes({\n    destinationResource: \"InstanceType\",\n    clusterType: _default.mainVersions?.[0]?.clusterTypes?.[0],\n    supportLocalStorage: false,\n    instanceChargeType: \"PostPaid\",\n    supportNodeTypes: [\n        \"MASTER\",\n        \"CORE\",\n        \"TASK\",\n    ],\n}));\nconst dataDisk = Promise.all([_default, defaultGetInstanceTypes, defaultGetInstanceTypes]).then(([_default, defaultGetInstanceTypes, defaultGetInstanceTypes1]) =\u003e alicloud.emr.getDiskTypes({\n    destinationResource: \"DataDisk\",\n    clusterType: _default.mainVersions?.[0]?.clusterTypes?.[0],\n    instanceChargeType: \"PostPaid\",\n    instanceType: defaultGetInstanceTypes.types?.[0]?.id,\n    zoneId: defaultGetInstanceTypes1.types?.[0]?.zoneId,\n}));\nconst systemDisk = Promise.all([_default, defaultGetInstanceTypes, defaultGetInstanceTypes]).then(([_default, defaultGetInstanceTypes, defaultGetInstanceTypes1]) =\u003e alicloud.emr.getDiskTypes({\n    destinationResource: \"SystemDisk\",\n    clusterType: _default.mainVersions?.[0]?.clusterTypes?.[0],\n    instanceChargeType: \"PostPaid\",\n    instanceType: defaultGetInstanceTypes.types?.[0]?.id,\n    zoneId: defaultGetInstanceTypes1.types?.[0]?.zoneId,\n}));\nconst vpc: alicloud.vpc.Network[] = [];\nfor (const range = {value: 0}; range.value \u003c (vpcId == \"\" ? 1 : 0); range.value++) {\n    vpc.push(new alicloud.vpc.Network(`vpc-${range.value}`, {\n        name: vpcName,\n        cidrBlock: vpcCidr,\n    }));\n}\nconst defaultSecurityGroup: alicloud.ecs.SecurityGroup[] = [];\nfor (const range = {value: 0}; range.value \u003c (securityGroupId == \"\" ? 1 : 0); range.value++) {\n    defaultSecurityGroup.push(new alicloud.ecs.SecurityGroup(`default-${range.value}`, {\n        name: securityGroupName,\n        vpcId: vpcId == \"\" ? vpc[0].id : vpcId,\n    }));\n}\n// VSwitch Resource for Module\nconst vswitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c (vswitchId == \"\" ? 1 : 0); range.value++) {\n    vswitch.push(new alicloud.vpc.Switch(`vswitch-${range.value}`, {\n        availabilityZone: availabilityZone == \"\" ? defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.zoneId) : availabilityZone,\n        vswitchName: vswitchName,\n        cidrBlock: vswitchCidr,\n        vpcId: vpcId == \"\" ? vpc[0].id : vpcId,\n    }));\n}\n// Ram role Resource for Module\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    name: ramName,\n    document: `    {\n        \\\\\"Statement\\\\\": [\n        {\n            \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n            \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n            \\\\\"Principal\\\\\": {\n            \\\\\"Service\\\\\": [\n                \\\\\"emr.aliyuncs.com\\\\\",\n                \\\\\"ecs.aliyuncs.com\\\\\"\n            ]\n            }\n        }\n        ],\n        \\\\\"Version\\\\\": \\\\\"1\\\\\"\n    }\n`,\n    description: \"this is a role test.\",\n    force: true,\n});\nconst defaultCluster = new alicloud.emr.Cluster(\"default\", {\n    name: \"terraform-create-cluster-test\",\n    emrVer: _default.then(_default =\u003e _default.mainVersions?.[0]?.emrVersion),\n    clusterType: _default.then(_default =\u003e _default.mainVersions?.[0]?.clusterTypes?.[0]),\n    hostGroups: [\n        {\n            hostGroupName: \"master_group\",\n            hostGroupType: \"MASTER\",\n            nodeCount: \"2\",\n            instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.id),\n            diskType: dataDisk.then(dataDisk =\u003e dataDisk.types?.[0]?.value),\n            diskCapacity: Promise.all([dataDisk, dataDisk]).then(([dataDisk, dataDisk1]) =\u003e dataDisk.types?.[0]?.min \u003e 160 ? dataDisk1.types?.[0]?.min : 160),\n            diskCount: \"1\",\n            sysDiskType: systemDisk.then(systemDisk =\u003e systemDisk.types?.[0]?.value),\n            sysDiskCapacity: Promise.all([systemDisk, systemDisk]).then(([systemDisk, systemDisk1]) =\u003e systemDisk.types?.[0]?.min \u003e 160 ? systemDisk1.types?.[0]?.min : 160),\n        },\n        {\n            hostGroupName: \"core_group\",\n            hostGroupType: \"CORE\",\n            nodeCount: \"3\",\n            instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.id),\n            diskType: dataDisk.then(dataDisk =\u003e dataDisk.types?.[0]?.value),\n            diskCapacity: Promise.all([dataDisk, dataDisk]).then(([dataDisk, dataDisk1]) =\u003e dataDisk.types?.[0]?.min \u003e 160 ? dataDisk1.types?.[0]?.min : 160),\n            diskCount: \"4\",\n            sysDiskType: systemDisk.then(systemDisk =\u003e systemDisk.types?.[0]?.value),\n            sysDiskCapacity: Promise.all([systemDisk, systemDisk]).then(([systemDisk, systemDisk1]) =\u003e systemDisk.types?.[0]?.min \u003e 160 ? systemDisk1.types?.[0]?.min : 160),\n        },\n        {\n            hostGroupName: \"task_group\",\n            hostGroupType: \"TASK\",\n            nodeCount: \"2\",\n            instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.id),\n            diskType: dataDisk.then(dataDisk =\u003e dataDisk.types?.[0]?.value),\n            diskCapacity: Promise.all([dataDisk, dataDisk]).then(([dataDisk, dataDisk1]) =\u003e dataDisk.types?.[0]?.min \u003e 160 ? dataDisk1.types?.[0]?.min : 160),\n            diskCount: \"4\",\n            sysDiskType: systemDisk.then(systemDisk =\u003e systemDisk.types?.[0]?.value),\n            sysDiskCapacity: Promise.all([systemDisk, systemDisk]).then(([systemDisk, systemDisk1]) =\u003e systemDisk.types?.[0]?.min \u003e 160 ? systemDisk1.types?.[0]?.min : 160),\n        },\n    ],\n    highAvailabilityEnable: true,\n    zoneId: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.zoneId),\n    securityGroupId: securityGroupId == \"\" ? defaultSecurityGroup[0].id : securityGroupId,\n    isOpenPublicIp: true,\n    chargeType: \"PostPaid\",\n    vswitchId: vswitchId == \"\" ? vswitch[0].id : vswitchId,\n    userDefinedEmrEcsRole: defaultRole.name,\n    sshEnable: true,\n    masterPwd: \"ABCtest1234!\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.emr.get_main_versions()\ndefault_get_instance_types = alicloud.emr.get_instance_types(destination_resource=\"InstanceType\",\n    cluster_type=default.main_versions[0].cluster_types[0],\n    support_local_storage=False,\n    instance_charge_type=\"PostPaid\",\n    support_node_types=[\n        \"MASTER\",\n        \"CORE\",\n        \"TASK\",\n    ])\ndata_disk = alicloud.emr.get_disk_types(destination_resource=\"DataDisk\",\n    cluster_type=default.main_versions[0].cluster_types[0],\n    instance_charge_type=\"PostPaid\",\n    instance_type=default_get_instance_types.types[0].id,\n    zone_id=default_get_instance_types.types[0].zone_id)\nsystem_disk = alicloud.emr.get_disk_types(destination_resource=\"SystemDisk\",\n    cluster_type=default.main_versions[0].cluster_types[0],\n    instance_charge_type=\"PostPaid\",\n    instance_type=default_get_instance_types.types[0].id,\n    zone_id=default_get_instance_types.types[0].zone_id)\nvpc = []\nfor range in [{\"value\": i} for i in range(0, 1 if vpc_id ==  else 0)]:\n    vpc.append(alicloud.vpc.Network(f\"vpc-{range['value']}\",\n        name=vpc_name,\n        cidr_block=vpc_cidr))\ndefault_security_group = []\nfor range in [{\"value\": i} for i in range(0, 1 if security_group_id ==  else 0)]:\n    default_security_group.append(alicloud.ecs.SecurityGroup(f\"default-{range['value']}\",\n        name=security_group_name,\n        vpc_id=vpc[0].id if vpc_id == \"\" else vpc_id))\n# VSwitch Resource for Module\nvswitch = []\nfor range in [{\"value\": i} for i in range(0, 1 if vswitch_id ==  else 0)]:\n    vswitch.append(alicloud.vpc.Switch(f\"vswitch-{range['value']}\",\n        availability_zone=default_get_instance_types.types[0].zone_id if availability_zone == \"\" else availability_zone,\n        vswitch_name=vswitch_name,\n        cidr_block=vswitch_cidr,\n        vpc_id=vpc[0].id if vpc_id == \"\" else vpc_id))\n# Ram role Resource for Module\ndefault_role = alicloud.ram.Role(\"default\",\n    name=ram_name,\n    document=\"\"\"    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n\"\"\",\n    description=\"this is a role test.\",\n    force=True)\ndefault_cluster = alicloud.emr.Cluster(\"default\",\n    name=\"terraform-create-cluster-test\",\n    emr_ver=default.main_versions[0].emr_version,\n    cluster_type=default.main_versions[0].cluster_types[0],\n    host_groups=[\n        {\n            \"host_group_name\": \"master_group\",\n            \"host_group_type\": \"MASTER\",\n            \"node_count\": \"2\",\n            \"instance_type\": default_get_instance_types.types[0].id,\n            \"disk_type\": data_disk.types[0].value,\n            \"disk_capacity\": data_disk.types[0].min if data_disk.types[0].min \u003e 160 else \"160\",\n            \"disk_count\": \"1\",\n            \"sys_disk_type\": system_disk.types[0].value,\n            \"sys_disk_capacity\": system_disk.types[0].min if system_disk.types[0].min \u003e 160 else \"160\",\n        },\n        {\n            \"host_group_name\": \"core_group\",\n            \"host_group_type\": \"CORE\",\n            \"node_count\": \"3\",\n            \"instance_type\": default_get_instance_types.types[0].id,\n            \"disk_type\": data_disk.types[0].value,\n            \"disk_capacity\": data_disk.types[0].min if data_disk.types[0].min \u003e 160 else \"160\",\n            \"disk_count\": \"4\",\n            \"sys_disk_type\": system_disk.types[0].value,\n            \"sys_disk_capacity\": system_disk.types[0].min if system_disk.types[0].min \u003e 160 else \"160\",\n        },\n        {\n            \"host_group_name\": \"task_group\",\n            \"host_group_type\": \"TASK\",\n            \"node_count\": \"2\",\n            \"instance_type\": default_get_instance_types.types[0].id,\n            \"disk_type\": data_disk.types[0].value,\n            \"disk_capacity\": data_disk.types[0].min if data_disk.types[0].min \u003e 160 else \"160\",\n            \"disk_count\": \"4\",\n            \"sys_disk_type\": system_disk.types[0].value,\n            \"sys_disk_capacity\": system_disk.types[0].min if system_disk.types[0].min \u003e 160 else \"160\",\n        },\n    ],\n    high_availability_enable=True,\n    zone_id=default_get_instance_types.types[0].zone_id,\n    security_group_id=default_security_group[0].id if security_group_id == \"\" else security_group_id,\n    is_open_public_ip=True,\n    charge_type=\"PostPaid\",\n    vswitch_id=vswitch[0].id if vswitch_id == \"\" else vswitch_id,\n    user_defined_emr_ecs_role=default_role.name,\n    ssh_enable=True,\n    master_pwd=\"ABCtest1234!\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Emr.GetMainVersions.Invoke();\n\n    var defaultGetInstanceTypes = AliCloud.Emr.GetInstanceTypes.Invoke(new()\n    {\n        DestinationResource = \"InstanceType\",\n        ClusterType = @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0]),\n        SupportLocalStorage = false,\n        InstanceChargeType = \"PostPaid\",\n        SupportNodeTypes = new[]\n        {\n            \"MASTER\",\n            \"CORE\",\n            \"TASK\",\n        },\n    });\n\n    var dataDisk = AliCloud.Emr.GetDiskTypes.Invoke(new()\n    {\n        DestinationResource = \"DataDisk\",\n        ClusterType = @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0]),\n        InstanceChargeType = \"PostPaid\",\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId),\n    });\n\n    var systemDisk = AliCloud.Emr.GetDiskTypes.Invoke(new()\n    {\n        DestinationResource = \"SystemDisk\",\n        ClusterType = @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0]),\n        InstanceChargeType = \"PostPaid\",\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId),\n    });\n\n    var vpc = new List\u003cAliCloud.Vpc.Network\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (vpcId == \"\" ? 1 : 0); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        vpc.Add(new AliCloud.Vpc.Network($\"vpc-{range.Value}\", new()\n        {\n            Name = vpcName,\n            CidrBlock = vpcCidr,\n        }));\n    }\n    var defaultSecurityGroup = new List\u003cAliCloud.Ecs.SecurityGroup\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (securityGroupId == \"\" ? 1 : 0); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSecurityGroup.Add(new AliCloud.Ecs.SecurityGroup($\"default-{range.Value}\", new()\n        {\n            Name = securityGroupName,\n            VpcId = vpcId == \"\" ? vpc[0].Id : vpcId,\n        }));\n    }\n    // VSwitch Resource for Module\n    var vswitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (vswitchId == \"\" ? 1 : 0); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        vswitch.Add(new AliCloud.Vpc.Switch($\"vswitch-{range.Value}\", new()\n        {\n            AvailabilityZone = availabilityZone == \"\" ? defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId) : availabilityZone,\n            VswitchName = vswitchName,\n            CidrBlock = vswitchCidr,\n            VpcId = vpcId == \"\" ? vpc[0].Id : vpcId,\n        }));\n    }\n    // Ram role Resource for Module\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = ramName,\n        Document = @\"    {\n        \\\"\"Statement\\\"\": [\n        {\n            \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n            \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n            \\\"\"Principal\\\"\": {\n            \\\"\"Service\\\"\": [\n                \\\"\"emr.aliyuncs.com\\\"\",\n                \\\"\"ecs.aliyuncs.com\\\"\"\n            ]\n            }\n        }\n        ],\n        \\\"\"Version\\\"\": \\\"\"1\\\"\"\n    }\n\",\n        Description = \"this is a role test.\",\n        Force = true,\n    });\n\n    var defaultCluster = new AliCloud.Emr.Cluster(\"default\", new()\n    {\n        Name = \"terraform-create-cluster-test\",\n        EmrVer = @default.Apply(@default =\u003e @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.EmrVersion)),\n        ClusterType = @default.Apply(@default =\u003e @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0])),\n        HostGroups = new[]\n        {\n            new AliCloud.Emr.Inputs.ClusterHostGroupArgs\n            {\n                HostGroupName = \"master_group\",\n                HostGroupType = \"MASTER\",\n                NodeCount = \"2\",\n                InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n                DiskType = dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                DiskCapacity = Output.Tuple(dataDisk, dataDisk).Apply(values =\u003e\n                {\n                    var dataDisk = values.Item1;\n                    var dataDisk1 = values.Item2;\n                    return dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? dataDisk1.Types[0]?.Min : 160;\n                }),\n                DiskCount = \"1\",\n                SysDiskType = systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                SysDiskCapacity = Output.Tuple(systemDisk, systemDisk).Apply(values =\u003e\n                {\n                    var systemDisk = values.Item1;\n                    var systemDisk1 = values.Item2;\n                    return systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? systemDisk1.Types[0]?.Min : 160;\n                }),\n            },\n            new AliCloud.Emr.Inputs.ClusterHostGroupArgs\n            {\n                HostGroupName = \"core_group\",\n                HostGroupType = \"CORE\",\n                NodeCount = \"3\",\n                InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n                DiskType = dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                DiskCapacity = Output.Tuple(dataDisk, dataDisk).Apply(values =\u003e\n                {\n                    var dataDisk = values.Item1;\n                    var dataDisk1 = values.Item2;\n                    return dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? dataDisk1.Types[0]?.Min : 160;\n                }),\n                DiskCount = \"4\",\n                SysDiskType = systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                SysDiskCapacity = Output.Tuple(systemDisk, systemDisk).Apply(values =\u003e\n                {\n                    var systemDisk = values.Item1;\n                    var systemDisk1 = values.Item2;\n                    return systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? systemDisk1.Types[0]?.Min : 160;\n                }),\n            },\n            new AliCloud.Emr.Inputs.ClusterHostGroupArgs\n            {\n                HostGroupName = \"task_group\",\n                HostGroupType = \"TASK\",\n                NodeCount = \"2\",\n                InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n                DiskType = dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                DiskCapacity = Output.Tuple(dataDisk, dataDisk).Apply(values =\u003e\n                {\n                    var dataDisk = values.Item1;\n                    var dataDisk1 = values.Item2;\n                    return dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? dataDisk1.Types[0]?.Min : 160;\n                }),\n                DiskCount = \"4\",\n                SysDiskType = systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                SysDiskCapacity = Output.Tuple(systemDisk, systemDisk).Apply(values =\u003e\n                {\n                    var systemDisk = values.Item1;\n                    var systemDisk1 = values.Item2;\n                    return systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? systemDisk1.Types[0]?.Min : 160;\n                }),\n            },\n        },\n        HighAvailabilityEnable = true,\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId),\n        SecurityGroupId = securityGroupId == \"\" ? defaultSecurityGroup[0].Id : securityGroupId,\n        IsOpenPublicIp = true,\n        ChargeType = \"PostPaid\",\n        VswitchId = vswitchId == \"\" ? vswitch[0].Id : vswitchId,\n        UserDefinedEmrEcsRole = defaultRole.Name,\n        SshEnable = true,\n        MasterPwd = \"ABCtest1234!\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/emr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := emr.GetMainVersions(ctx, \u0026emr.GetMainVersionsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := emr.GetInstanceTypes(ctx, \u0026emr.GetInstanceTypesArgs{\n\t\t\tDestinationResource: \"InstanceType\",\n\t\t\tClusterType:         _default.MainVersions[0].ClusterTypes[0],\n\t\t\tSupportLocalStorage: pulumi.BoolRef(false),\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tSupportNodeTypes: []string{\n\t\t\t\t\"MASTER\",\n\t\t\t\t\"CORE\",\n\t\t\t\t\"TASK\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdataDisk, err := emr.GetDiskTypes(ctx, \u0026emr.GetDiskTypesArgs{\n\t\t\tDestinationResource: \"DataDisk\",\n\t\t\tClusterType:         _default.MainVersions[0].ClusterTypes[0],\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tInstanceType:        defaultGetInstanceTypes.Types[0].Id,\n\t\t\tZoneId:              pulumi.StringRef(defaultGetInstanceTypes.Types[0].ZoneId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsystemDisk, err := emr.GetDiskTypes(ctx, \u0026emr.GetDiskTypesArgs{\n\t\t\tDestinationResource: \"SystemDisk\",\n\t\t\tClusterType:         _default.MainVersions[0].ClusterTypes[0],\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tInstanceType:        defaultGetInstanceTypes.Types[0].Id,\n\t\t\tZoneId:              pulumi.StringRef(defaultGetInstanceTypes.Types[0].ZoneId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp0 float64\n\t\tif vpcId == \"\" {\n\t\t\ttmp0 = 1\n\t\t} else {\n\t\t\ttmp0 = 0\n\t\t}\n\t\tvar vpc []*vpc.Network\n\t\tfor index := 0; index \u003c tmp0; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := vpc.NewNetwork(ctx, fmt.Sprintf(\"vpc-%v\", key0), \u0026vpc.NetworkArgs{\n\t\t\t\tName:      pulumi.Any(vpcName),\n\t\t\t\tCidrBlock: pulumi.Any(vpcCidr),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tvpc = append(vpc, __res)\n\t\t}\n\t\tvar tmp1 pulumi.String\n\t\tif vpcId == \"\" {\n\t\t\ttmp1 = vpc[0].ID()\n\t\t} else {\n\t\t\ttmp1 = pulumi.Any(vpcId)\n\t\t}\n\t\tvar tmp2 float64\n\t\tif securityGroupId == \"\" {\n\t\t\ttmp2 = 1\n\t\t} else {\n\t\t\ttmp2 = 0\n\t\t}\n\t\tvar defaultSecurityGroup []*ecs.SecurityGroup\n\t\tfor index := 0; index \u003c tmp2; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := ecs.NewSecurityGroup(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026ecs.SecurityGroupArgs{\n\t\t\t\tName:  pulumi.Any(securityGroupName),\n\t\t\t\tVpcId: pulumi.String(tmp1),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultSecurityGroup = append(defaultSecurityGroup, __res)\n\t\t}\n\t\tvar tmp3 pulumi.String\n\t\tif availabilityZone == \"\" {\n\t\t\ttmp3 = pulumi.String(defaultGetInstanceTypes.Types[0].ZoneId)\n\t\t} else {\n\t\t\ttmp3 = pulumi.Any(availabilityZone)\n\t\t}\n\t\tvar tmp4 pulumi.String\n\t\tif vpcId == \"\" {\n\t\t\ttmp4 = vpc[0].ID()\n\t\t} else {\n\t\t\ttmp4 = pulumi.Any(vpcId)\n\t\t}\n\t\t// VSwitch Resource for Module\n\t\tvar tmp5 float64\n\t\tif vswitchId == \"\" {\n\t\t\ttmp5 = 1\n\t\t} else {\n\t\t\ttmp5 = 0\n\t\t}\n\t\tvar vswitch []*vpc.Switch\n\t\tfor index := 0; index \u003c tmp5; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"vswitch-%v\", key0), \u0026vpc.SwitchArgs{\n\t\t\t\tAvailabilityZone: pulumi.String(tmp3),\n\t\t\t\tVswitchName:      pulumi.Any(vswitchName),\n\t\t\t\tCidrBlock:        pulumi.Any(vswitchCidr),\n\t\t\t\tVpcId:            pulumi.String(tmp4),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tvswitch = append(vswitch, __res)\n\t\t}\n\t\t// Ram role Resource for Module\n\t\tdefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.Any(ramName),\n\t\t\tDocument: pulumi.String(`    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n`),\n\t\t\tDescription: pulumi.String(\"this is a role test.\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp6 pulumi.String\n\t\tif dataDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp6 = pulumi.Int(dataDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp6 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp7 pulumi.String\n\t\tif systemDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp7 = pulumi.Int(systemDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp7 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp8 pulumi.String\n\t\tif dataDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp8 = pulumi.Int(dataDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp8 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp9 pulumi.String\n\t\tif systemDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp9 = pulumi.Int(systemDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp9 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp10 pulumi.String\n\t\tif dataDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp10 = pulumi.Int(dataDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp10 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp11 pulumi.String\n\t\tif systemDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp11 = pulumi.Int(systemDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp11 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp12 pulumi.String\n\t\tif securityGroupId == \"\" {\n\t\t\ttmp12 = defaultSecurityGroup[0].ID()\n\t\t} else {\n\t\t\ttmp12 = pulumi.Any(securityGroupId)\n\t\t}\n\t\tvar tmp13 pulumi.String\n\t\tif vswitchId == \"\" {\n\t\t\ttmp13 = vswitch[0].ID()\n\t\t} else {\n\t\t\ttmp13 = pulumi.Any(vswitchId)\n\t\t}\n\t\t_, err = emr.NewCluster(ctx, \"default\", \u0026emr.ClusterArgs{\n\t\t\tName:        pulumi.String(\"terraform-create-cluster-test\"),\n\t\t\tEmrVer:      pulumi.String(_default.MainVersions[0].EmrVersion),\n\t\t\tClusterType: pulumi.String(_default.MainVersions[0].ClusterTypes[0]),\n\t\t\tHostGroups: emr.ClusterHostGroupArray{\n\t\t\t\t\u0026emr.ClusterHostGroupArgs{\n\t\t\t\t\tHostGroupName:   pulumi.String(\"master_group\"),\n\t\t\t\t\tHostGroupType:   pulumi.String(\"MASTER\"),\n\t\t\t\t\tNodeCount:       pulumi.String(\"2\"),\n\t\t\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.Types[0].Id),\n\t\t\t\t\tDiskType:        pulumi.String(dataDisk.Types[0].Value),\n\t\t\t\t\tDiskCapacity:    pulumi.String(tmp6),\n\t\t\t\t\tDiskCount:       pulumi.String(\"1\"),\n\t\t\t\t\tSysDiskType:     pulumi.String(systemDisk.Types[0].Value),\n\t\t\t\t\tSysDiskCapacity: pulumi.String(tmp7),\n\t\t\t\t},\n\t\t\t\t\u0026emr.ClusterHostGroupArgs{\n\t\t\t\t\tHostGroupName:   pulumi.String(\"core_group\"),\n\t\t\t\t\tHostGroupType:   pulumi.String(\"CORE\"),\n\t\t\t\t\tNodeCount:       pulumi.String(\"3\"),\n\t\t\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.Types[0].Id),\n\t\t\t\t\tDiskType:        pulumi.String(dataDisk.Types[0].Value),\n\t\t\t\t\tDiskCapacity:    pulumi.String(tmp8),\n\t\t\t\t\tDiskCount:       pulumi.String(\"4\"),\n\t\t\t\t\tSysDiskType:     pulumi.String(systemDisk.Types[0].Value),\n\t\t\t\t\tSysDiskCapacity: pulumi.String(tmp9),\n\t\t\t\t},\n\t\t\t\t\u0026emr.ClusterHostGroupArgs{\n\t\t\t\t\tHostGroupName:   pulumi.String(\"task_group\"),\n\t\t\t\t\tHostGroupType:   pulumi.String(\"TASK\"),\n\t\t\t\t\tNodeCount:       pulumi.String(\"2\"),\n\t\t\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.Types[0].Id),\n\t\t\t\t\tDiskType:        pulumi.String(dataDisk.Types[0].Value),\n\t\t\t\t\tDiskCapacity:    pulumi.String(tmp10),\n\t\t\t\t\tDiskCount:       pulumi.String(\"4\"),\n\t\t\t\t\tSysDiskType:     pulumi.String(systemDisk.Types[0].Value),\n\t\t\t\t\tSysDiskCapacity: pulumi.String(tmp11),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHighAvailabilityEnable: pulumi.Bool(true),\n\t\t\tZoneId:                 pulumi.String(defaultGetInstanceTypes.Types[0].ZoneId),\n\t\t\tSecurityGroupId:        pulumi.String(tmp12),\n\t\t\tIsOpenPublicIp:         pulumi.Bool(true),\n\t\t\tChargeType:             pulumi.String(\"PostPaid\"),\n\t\t\tVswitchId:              pulumi.String(tmp13),\n\t\t\tUserDefinedEmrEcsRole:  defaultRole.Name,\n\t\t\tSshEnable:              pulumi.Bool(true),\n\t\t\tMasterPwd:              pulumi.String(\"ABCtest1234!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.emr.EmrFunctions;\nimport com.pulumi.alicloud.emr.inputs.GetMainVersionsArgs;\nimport com.pulumi.alicloud.emr.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.emr.inputs.GetDiskTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.emr.Cluster;\nimport com.pulumi.alicloud.emr.ClusterArgs;\nimport com.pulumi.alicloud.emr.inputs.ClusterHostGroupArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EmrFunctions.getMainVersions(GetMainVersionsArgs.builder()\n            .build());\n\n        final var defaultGetInstanceTypes = EmrFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .destinationResource(\"InstanceType\")\n            .clusterType(default_.mainVersions()[0].clusterTypes()[0])\n            .supportLocalStorage(false)\n            .instanceChargeType(\"PostPaid\")\n            .supportNodeTypes(            \n                \"MASTER\",\n                \"CORE\",\n                \"TASK\")\n            .build());\n\n        final var dataDisk = EmrFunctions.getDiskTypes(GetDiskTypesArgs.builder()\n            .destinationResource(\"DataDisk\")\n            .clusterType(default_.mainVersions()[0].clusterTypes()[0])\n            .instanceChargeType(\"PostPaid\")\n            .instanceType(defaultGetInstanceTypes.types()[0].id())\n            .zoneId(defaultGetInstanceTypes.types()[0].zoneId())\n            .build());\n\n        final var systemDisk = EmrFunctions.getDiskTypes(GetDiskTypesArgs.builder()\n            .destinationResource(\"SystemDisk\")\n            .clusterType(default_.mainVersions()[0].clusterTypes()[0])\n            .instanceChargeType(\"PostPaid\")\n            .instanceType(defaultGetInstanceTypes.types()[0].id())\n            .zoneId(defaultGetInstanceTypes.types()[0].zoneId())\n            .build());\n\n        for (var i = 0; i \u003c (vpcId == \"\" ? 1 : 0); i++) {\n            new Network(\"vpc-\" + i, NetworkArgs.builder()\n                .name(vpcName)\n                .cidrBlock(vpcCidr)\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c (securityGroupId == \"\" ? 1 : 0); i++) {\n            new SecurityGroup(\"defaultSecurityGroup-\" + i, SecurityGroupArgs.builder()\n                .name(securityGroupName)\n                .vpcId(vpcId == \"\" ? vpc[0].id() : vpcId)\n                .build());\n\n        \n}\n        // VSwitch Resource for Module\n        for (var i = 0; i \u003c (vswitchId == \"\" ? 1 : 0); i++) {\n            new Switch(\"vswitch-\" + i, SwitchArgs.builder()\n                .availabilityZone(availabilityZone == \"\" ? defaultGetInstanceTypes.types()[0].zoneId() : availabilityZone)\n                .vswitchName(vswitchName)\n                .cidrBlock(vswitchCidr)\n                .vpcId(vpcId == \"\" ? vpc[0].id() : vpcId)\n                .build());\n\n        \n}\n        // Ram role Resource for Module\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .name(ramName)\n            .document(\"\"\"\n    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n            \"\"\")\n            .description(\"this is a role test.\")\n            .force(true)\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .name(\"terraform-create-cluster-test\")\n            .emrVer(default_.mainVersions()[0].emrVersion())\n            .clusterType(default_.mainVersions()[0].clusterTypes()[0])\n            .hostGroups(            \n                ClusterHostGroupArgs.builder()\n                    .hostGroupName(\"master_group\")\n                    .hostGroupType(\"MASTER\")\n                    .nodeCount(\"2\")\n                    .instanceType(defaultGetInstanceTypes.types()[0].id())\n                    .diskType(dataDisk.types()[0].value())\n                    .diskCapacity(dataDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? dataDisk.types()[0].min() : \"160\")\n                    .diskCount(\"1\")\n                    .sysDiskType(systemDisk.types()[0].value())\n                    .sysDiskCapacity(systemDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? systemDisk.types()[0].min() : \"160\")\n                    .build(),\n                ClusterHostGroupArgs.builder()\n                    .hostGroupName(\"core_group\")\n                    .hostGroupType(\"CORE\")\n                    .nodeCount(\"3\")\n                    .instanceType(defaultGetInstanceTypes.types()[0].id())\n                    .diskType(dataDisk.types()[0].value())\n                    .diskCapacity(dataDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? dataDisk.types()[0].min() : \"160\")\n                    .diskCount(\"4\")\n                    .sysDiskType(systemDisk.types()[0].value())\n                    .sysDiskCapacity(systemDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? systemDisk.types()[0].min() : \"160\")\n                    .build(),\n                ClusterHostGroupArgs.builder()\n                    .hostGroupName(\"task_group\")\n                    .hostGroupType(\"TASK\")\n                    .nodeCount(\"2\")\n                    .instanceType(defaultGetInstanceTypes.types()[0].id())\n                    .diskType(dataDisk.types()[0].value())\n                    .diskCapacity(dataDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? dataDisk.types()[0].min() : \"160\")\n                    .diskCount(\"4\")\n                    .sysDiskType(systemDisk.types()[0].value())\n                    .sysDiskCapacity(systemDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? systemDisk.types()[0].min() : \"160\")\n                    .build())\n            .highAvailabilityEnable(true)\n            .zoneId(defaultGetInstanceTypes.types()[0].zoneId())\n            .securityGroupId(securityGroupId == \"\" ? defaultSecurityGroup[0].id() : securityGroupId)\n            .isOpenPublicIp(true)\n            .chargeType(\"PostPaid\")\n            .vswitchId(vswitchId == \"\" ? vswitch[0].id() : vswitchId)\n            .userDefinedEmrEcsRole(defaultRole.name())\n            .sshEnable(true)\n            .masterPwd(\"ABCtest1234!\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### 2. Scale Up\nThe hosts of EMR Cluster are orginized as host group. Scaling up/down is operating host group. \n\nIn the case of scaling up cluster, we should add the\u003cspan pulumi-lang-nodejs=\" nodeCount \" pulumi-lang-dotnet=\" NodeCount \" pulumi-lang-go=\" nodeCount \" pulumi-lang-python=\" node_count \" pulumi-lang-yaml=\" nodeCount \" pulumi-lang-java=\" nodeCount \"\u003e node_count \u003c/span\u003eof some host group. \n\n\u003e **NOTE:** Scaling up is only applicable to CORE and TASK group. Cost time of scaling up will vary with the number of scaling-up nodes. \nScaling down is only applicable to TASK group. If you want to scale down CORE group, please submit tickets or contact EMR support team.\n\nAs the following case, we scale up the TASK group 2 nodes by increasing host_group.node_count by 2.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.emr.getMainVersions({});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.emr.getInstanceTypes({\n    destinationResource: \"InstanceType\",\n    clusterType: _default.mainVersions?.[0]?.clusterTypes?.[0],\n    supportLocalStorage: false,\n    instanceChargeType: \"PostPaid\",\n    supportNodeTypes: [\n        \"MASTER\",\n        \"CORE\",\n        \"TASK\",\n    ],\n}));\nconst dataDisk = Promise.all([_default, defaultGetInstanceTypes, defaultGetInstanceTypes]).then(([_default, defaultGetInstanceTypes, defaultGetInstanceTypes1]) =\u003e alicloud.emr.getDiskTypes({\n    destinationResource: \"DataDisk\",\n    clusterType: _default.mainVersions?.[0]?.clusterTypes?.[0],\n    instanceChargeType: \"PostPaid\",\n    instanceType: defaultGetInstanceTypes.types?.[0]?.id,\n    zoneId: defaultGetInstanceTypes1.types?.[0]?.zoneId,\n}));\nconst systemDisk = Promise.all([_default, defaultGetInstanceTypes, defaultGetInstanceTypes]).then(([_default, defaultGetInstanceTypes, defaultGetInstanceTypes1]) =\u003e alicloud.emr.getDiskTypes({\n    destinationResource: \"SystemDisk\",\n    clusterType: _default.mainVersions?.[0]?.clusterTypes?.[0],\n    instanceChargeType: \"PostPaid\",\n    instanceType: defaultGetInstanceTypes.types?.[0]?.id,\n    zoneId: defaultGetInstanceTypes1.types?.[0]?.zoneId,\n}));\nconst vpc: alicloud.vpc.Network[] = [];\nfor (const range = {value: 0}; range.value \u003c (vpcId == \"\" ? 1 : 0); range.value++) {\n    vpc.push(new alicloud.vpc.Network(`vpc-${range.value}`, {\n        name: vpcName,\n        cidrBlock: vpcCidr,\n    }));\n}\nconst defaultSecurityGroup: alicloud.ecs.SecurityGroup[] = [];\nfor (const range = {value: 0}; range.value \u003c (securityGroupId == \"\" ? 1 : 0); range.value++) {\n    defaultSecurityGroup.push(new alicloud.ecs.SecurityGroup(`default-${range.value}`, {\n        name: securityGroupName,\n        vpcId: vpcId == \"\" ? vpc[0].id : vpcId,\n    }));\n}\n// VSwitch Resource for Module\nconst vswitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c (vswitchId == \"\" ? 1 : 0); range.value++) {\n    vswitch.push(new alicloud.vpc.Switch(`vswitch-${range.value}`, {\n        availabilityZone: availabilityZone == \"\" ? defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.zoneId) : availabilityZone,\n        vswitchName: vswitchName,\n        cidrBlock: vswitchCidr,\n        vpcId: vpcId == \"\" ? vpc[0].id : vpcId,\n    }));\n}\n// Ram role Resource for Module\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    name: ramName,\n    document: `    {\n        \\\\\"Statement\\\\\": [\n        {\n            \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n            \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n            \\\\\"Principal\\\\\": {\n            \\\\\"Service\\\\\": [\n                \\\\\"emr.aliyuncs.com\\\\\",\n                \\\\\"ecs.aliyuncs.com\\\\\"\n            ]\n            }\n        }\n        ],\n        \\\\\"Version\\\\\": \\\\\"1\\\\\"\n    }\n`,\n    description: \"this is a role test.\",\n    force: true,\n});\nconst defaultCluster = new alicloud.emr.Cluster(\"default\", {\n    name: \"terraform-resize-cluster-test\",\n    emrVer: _default.then(_default =\u003e _default.mainVersions?.[0]?.emrVersion),\n    clusterType: _default.then(_default =\u003e _default.mainVersions?.[0]?.clusterTypes?.[0]),\n    hostGroups: [\n        {\n            hostGroupName: \"master_group\",\n            hostGroupType: \"MASTER\",\n            nodeCount: \"2\",\n            instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.id),\n            diskType: dataDisk.then(dataDisk =\u003e dataDisk.types?.[0]?.value),\n            diskCapacity: Promise.all([dataDisk, dataDisk]).then(([dataDisk, dataDisk1]) =\u003e dataDisk.types?.[0]?.min \u003e 160 ? dataDisk1.types?.[0]?.min : 160),\n            diskCount: \"1\",\n            sysDiskType: systemDisk.then(systemDisk =\u003e systemDisk.types?.[0]?.value),\n            sysDiskCapacity: Promise.all([systemDisk, systemDisk]).then(([systemDisk, systemDisk1]) =\u003e systemDisk.types?.[0]?.min \u003e 160 ? systemDisk1.types?.[0]?.min : 160),\n        },\n        {\n            hostGroupName: \"core_group\",\n            hostGroupType: \"CORE\",\n            nodeCount: \"3\",\n            instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.id),\n            diskType: dataDisk.then(dataDisk =\u003e dataDisk.types?.[0]?.value),\n            diskCapacity: Promise.all([dataDisk, dataDisk]).then(([dataDisk, dataDisk1]) =\u003e dataDisk.types?.[0]?.min \u003e 160 ? dataDisk1.types?.[0]?.min : 160),\n            diskCount: \"4\",\n            sysDiskType: systemDisk.then(systemDisk =\u003e systemDisk.types?.[0]?.value),\n            sysDiskCapacity: Promise.all([systemDisk, systemDisk]).then(([systemDisk, systemDisk1]) =\u003e systemDisk.types?.[0]?.min \u003e 160 ? systemDisk1.types?.[0]?.min : 160),\n        },\n        {\n            hostGroupName: \"task_group\",\n            hostGroupType: \"TASK\",\n            nodeCount: \"4\",\n            instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.id),\n            diskType: dataDisk.then(dataDisk =\u003e dataDisk.types?.[0]?.value),\n            diskCapacity: Promise.all([dataDisk, dataDisk]).then(([dataDisk, dataDisk1]) =\u003e dataDisk.types?.[0]?.min \u003e 160 ? dataDisk1.types?.[0]?.min : 160),\n            diskCount: \"4\",\n            sysDiskType: systemDisk.then(systemDisk =\u003e systemDisk.types?.[0]?.value),\n            sysDiskCapacity: Promise.all([systemDisk, systemDisk]).then(([systemDisk, systemDisk1]) =\u003e systemDisk.types?.[0]?.min \u003e 160 ? systemDisk1.types?.[0]?.min : 160),\n        },\n    ],\n    highAvailabilityEnable: true,\n    zoneId: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.zoneId),\n    securityGroupId: securityGroupId == \"\" ? defaultSecurityGroup[0].id : securityGroupId,\n    isOpenPublicIp: true,\n    chargeType: \"PostPaid\",\n    vswitchId: vswitchId == \"\" ? vswitch[0].id : vswitchId,\n    userDefinedEmrEcsRole: defaultRole.name,\n    sshEnable: true,\n    masterPwd: \"ABCtest1234!\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.emr.get_main_versions()\ndefault_get_instance_types = alicloud.emr.get_instance_types(destination_resource=\"InstanceType\",\n    cluster_type=default.main_versions[0].cluster_types[0],\n    support_local_storage=False,\n    instance_charge_type=\"PostPaid\",\n    support_node_types=[\n        \"MASTER\",\n        \"CORE\",\n        \"TASK\",\n    ])\ndata_disk = alicloud.emr.get_disk_types(destination_resource=\"DataDisk\",\n    cluster_type=default.main_versions[0].cluster_types[0],\n    instance_charge_type=\"PostPaid\",\n    instance_type=default_get_instance_types.types[0].id,\n    zone_id=default_get_instance_types.types[0].zone_id)\nsystem_disk = alicloud.emr.get_disk_types(destination_resource=\"SystemDisk\",\n    cluster_type=default.main_versions[0].cluster_types[0],\n    instance_charge_type=\"PostPaid\",\n    instance_type=default_get_instance_types.types[0].id,\n    zone_id=default_get_instance_types.types[0].zone_id)\nvpc = []\nfor range in [{\"value\": i} for i in range(0, 1 if vpc_id ==  else 0)]:\n    vpc.append(alicloud.vpc.Network(f\"vpc-{range['value']}\",\n        name=vpc_name,\n        cidr_block=vpc_cidr))\ndefault_security_group = []\nfor range in [{\"value\": i} for i in range(0, 1 if security_group_id ==  else 0)]:\n    default_security_group.append(alicloud.ecs.SecurityGroup(f\"default-{range['value']}\",\n        name=security_group_name,\n        vpc_id=vpc[0].id if vpc_id == \"\" else vpc_id))\n# VSwitch Resource for Module\nvswitch = []\nfor range in [{\"value\": i} for i in range(0, 1 if vswitch_id ==  else 0)]:\n    vswitch.append(alicloud.vpc.Switch(f\"vswitch-{range['value']}\",\n        availability_zone=default_get_instance_types.types[0].zone_id if availability_zone == \"\" else availability_zone,\n        vswitch_name=vswitch_name,\n        cidr_block=vswitch_cidr,\n        vpc_id=vpc[0].id if vpc_id == \"\" else vpc_id))\n# Ram role Resource for Module\ndefault_role = alicloud.ram.Role(\"default\",\n    name=ram_name,\n    document=\"\"\"    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n\"\"\",\n    description=\"this is a role test.\",\n    force=True)\ndefault_cluster = alicloud.emr.Cluster(\"default\",\n    name=\"terraform-resize-cluster-test\",\n    emr_ver=default.main_versions[0].emr_version,\n    cluster_type=default.main_versions[0].cluster_types[0],\n    host_groups=[\n        {\n            \"host_group_name\": \"master_group\",\n            \"host_group_type\": \"MASTER\",\n            \"node_count\": \"2\",\n            \"instance_type\": default_get_instance_types.types[0].id,\n            \"disk_type\": data_disk.types[0].value,\n            \"disk_capacity\": data_disk.types[0].min if data_disk.types[0].min \u003e 160 else \"160\",\n            \"disk_count\": \"1\",\n            \"sys_disk_type\": system_disk.types[0].value,\n            \"sys_disk_capacity\": system_disk.types[0].min if system_disk.types[0].min \u003e 160 else \"160\",\n        },\n        {\n            \"host_group_name\": \"core_group\",\n            \"host_group_type\": \"CORE\",\n            \"node_count\": \"3\",\n            \"instance_type\": default_get_instance_types.types[0].id,\n            \"disk_type\": data_disk.types[0].value,\n            \"disk_capacity\": data_disk.types[0].min if data_disk.types[0].min \u003e 160 else \"160\",\n            \"disk_count\": \"4\",\n            \"sys_disk_type\": system_disk.types[0].value,\n            \"sys_disk_capacity\": system_disk.types[0].min if system_disk.types[0].min \u003e 160 else \"160\",\n        },\n        {\n            \"host_group_name\": \"task_group\",\n            \"host_group_type\": \"TASK\",\n            \"node_count\": \"4\",\n            \"instance_type\": default_get_instance_types.types[0].id,\n            \"disk_type\": data_disk.types[0].value,\n            \"disk_capacity\": data_disk.types[0].min if data_disk.types[0].min \u003e 160 else \"160\",\n            \"disk_count\": \"4\",\n            \"sys_disk_type\": system_disk.types[0].value,\n            \"sys_disk_capacity\": system_disk.types[0].min if system_disk.types[0].min \u003e 160 else \"160\",\n        },\n    ],\n    high_availability_enable=True,\n    zone_id=default_get_instance_types.types[0].zone_id,\n    security_group_id=default_security_group[0].id if security_group_id == \"\" else security_group_id,\n    is_open_public_ip=True,\n    charge_type=\"PostPaid\",\n    vswitch_id=vswitch[0].id if vswitch_id == \"\" else vswitch_id,\n    user_defined_emr_ecs_role=default_role.name,\n    ssh_enable=True,\n    master_pwd=\"ABCtest1234!\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Emr.GetMainVersions.Invoke();\n\n    var defaultGetInstanceTypes = AliCloud.Emr.GetInstanceTypes.Invoke(new()\n    {\n        DestinationResource = \"InstanceType\",\n        ClusterType = @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0]),\n        SupportLocalStorage = false,\n        InstanceChargeType = \"PostPaid\",\n        SupportNodeTypes = new[]\n        {\n            \"MASTER\",\n            \"CORE\",\n            \"TASK\",\n        },\n    });\n\n    var dataDisk = AliCloud.Emr.GetDiskTypes.Invoke(new()\n    {\n        DestinationResource = \"DataDisk\",\n        ClusterType = @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0]),\n        InstanceChargeType = \"PostPaid\",\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId),\n    });\n\n    var systemDisk = AliCloud.Emr.GetDiskTypes.Invoke(new()\n    {\n        DestinationResource = \"SystemDisk\",\n        ClusterType = @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0]),\n        InstanceChargeType = \"PostPaid\",\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId),\n    });\n\n    var vpc = new List\u003cAliCloud.Vpc.Network\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (vpcId == \"\" ? 1 : 0); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        vpc.Add(new AliCloud.Vpc.Network($\"vpc-{range.Value}\", new()\n        {\n            Name = vpcName,\n            CidrBlock = vpcCidr,\n        }));\n    }\n    var defaultSecurityGroup = new List\u003cAliCloud.Ecs.SecurityGroup\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (securityGroupId == \"\" ? 1 : 0); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSecurityGroup.Add(new AliCloud.Ecs.SecurityGroup($\"default-{range.Value}\", new()\n        {\n            Name = securityGroupName,\n            VpcId = vpcId == \"\" ? vpc[0].Id : vpcId,\n        }));\n    }\n    // VSwitch Resource for Module\n    var vswitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (vswitchId == \"\" ? 1 : 0); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        vswitch.Add(new AliCloud.Vpc.Switch($\"vswitch-{range.Value}\", new()\n        {\n            AvailabilityZone = availabilityZone == \"\" ? defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId) : availabilityZone,\n            VswitchName = vswitchName,\n            CidrBlock = vswitchCidr,\n            VpcId = vpcId == \"\" ? vpc[0].Id : vpcId,\n        }));\n    }\n    // Ram role Resource for Module\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = ramName,\n        Document = @\"    {\n        \\\"\"Statement\\\"\": [\n        {\n            \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n            \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n            \\\"\"Principal\\\"\": {\n            \\\"\"Service\\\"\": [\n                \\\"\"emr.aliyuncs.com\\\"\",\n                \\\"\"ecs.aliyuncs.com\\\"\"\n            ]\n            }\n        }\n        ],\n        \\\"\"Version\\\"\": \\\"\"1\\\"\"\n    }\n\",\n        Description = \"this is a role test.\",\n        Force = true,\n    });\n\n    var defaultCluster = new AliCloud.Emr.Cluster(\"default\", new()\n    {\n        Name = \"terraform-resize-cluster-test\",\n        EmrVer = @default.Apply(@default =\u003e @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.EmrVersion)),\n        ClusterType = @default.Apply(@default =\u003e @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0])),\n        HostGroups = new[]\n        {\n            new AliCloud.Emr.Inputs.ClusterHostGroupArgs\n            {\n                HostGroupName = \"master_group\",\n                HostGroupType = \"MASTER\",\n                NodeCount = \"2\",\n                InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n                DiskType = dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                DiskCapacity = Output.Tuple(dataDisk, dataDisk).Apply(values =\u003e\n                {\n                    var dataDisk = values.Item1;\n                    var dataDisk1 = values.Item2;\n                    return dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? dataDisk1.Types[0]?.Min : 160;\n                }),\n                DiskCount = \"1\",\n                SysDiskType = systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                SysDiskCapacity = Output.Tuple(systemDisk, systemDisk).Apply(values =\u003e\n                {\n                    var systemDisk = values.Item1;\n                    var systemDisk1 = values.Item2;\n                    return systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? systemDisk1.Types[0]?.Min : 160;\n                }),\n            },\n            new AliCloud.Emr.Inputs.ClusterHostGroupArgs\n            {\n                HostGroupName = \"core_group\",\n                HostGroupType = \"CORE\",\n                NodeCount = \"3\",\n                InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n                DiskType = dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                DiskCapacity = Output.Tuple(dataDisk, dataDisk).Apply(values =\u003e\n                {\n                    var dataDisk = values.Item1;\n                    var dataDisk1 = values.Item2;\n                    return dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? dataDisk1.Types[0]?.Min : 160;\n                }),\n                DiskCount = \"4\",\n                SysDiskType = systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                SysDiskCapacity = Output.Tuple(systemDisk, systemDisk).Apply(values =\u003e\n                {\n                    var systemDisk = values.Item1;\n                    var systemDisk1 = values.Item2;\n                    return systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? systemDisk1.Types[0]?.Min : 160;\n                }),\n            },\n            new AliCloud.Emr.Inputs.ClusterHostGroupArgs\n            {\n                HostGroupName = \"task_group\",\n                HostGroupType = \"TASK\",\n                NodeCount = \"4\",\n                InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n                DiskType = dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                DiskCapacity = Output.Tuple(dataDisk, dataDisk).Apply(values =\u003e\n                {\n                    var dataDisk = values.Item1;\n                    var dataDisk1 = values.Item2;\n                    return dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? dataDisk1.Types[0]?.Min : 160;\n                }),\n                DiskCount = \"4\",\n                SysDiskType = systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                SysDiskCapacity = Output.Tuple(systemDisk, systemDisk).Apply(values =\u003e\n                {\n                    var systemDisk = values.Item1;\n                    var systemDisk1 = values.Item2;\n                    return systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? systemDisk1.Types[0]?.Min : 160;\n                }),\n            },\n        },\n        HighAvailabilityEnable = true,\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId),\n        SecurityGroupId = securityGroupId == \"\" ? defaultSecurityGroup[0].Id : securityGroupId,\n        IsOpenPublicIp = true,\n        ChargeType = \"PostPaid\",\n        VswitchId = vswitchId == \"\" ? vswitch[0].Id : vswitchId,\n        UserDefinedEmrEcsRole = defaultRole.Name,\n        SshEnable = true,\n        MasterPwd = \"ABCtest1234!\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/emr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := emr.GetMainVersions(ctx, \u0026emr.GetMainVersionsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := emr.GetInstanceTypes(ctx, \u0026emr.GetInstanceTypesArgs{\n\t\t\tDestinationResource: \"InstanceType\",\n\t\t\tClusterType:         _default.MainVersions[0].ClusterTypes[0],\n\t\t\tSupportLocalStorage: pulumi.BoolRef(false),\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tSupportNodeTypes: []string{\n\t\t\t\t\"MASTER\",\n\t\t\t\t\"CORE\",\n\t\t\t\t\"TASK\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdataDisk, err := emr.GetDiskTypes(ctx, \u0026emr.GetDiskTypesArgs{\n\t\t\tDestinationResource: \"DataDisk\",\n\t\t\tClusterType:         _default.MainVersions[0].ClusterTypes[0],\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tInstanceType:        defaultGetInstanceTypes.Types[0].Id,\n\t\t\tZoneId:              pulumi.StringRef(defaultGetInstanceTypes.Types[0].ZoneId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsystemDisk, err := emr.GetDiskTypes(ctx, \u0026emr.GetDiskTypesArgs{\n\t\t\tDestinationResource: \"SystemDisk\",\n\t\t\tClusterType:         _default.MainVersions[0].ClusterTypes[0],\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tInstanceType:        defaultGetInstanceTypes.Types[0].Id,\n\t\t\tZoneId:              pulumi.StringRef(defaultGetInstanceTypes.Types[0].ZoneId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp0 float64\n\t\tif vpcId == \"\" {\n\t\t\ttmp0 = 1\n\t\t} else {\n\t\t\ttmp0 = 0\n\t\t}\n\t\tvar vpc []*vpc.Network\n\t\tfor index := 0; index \u003c tmp0; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := vpc.NewNetwork(ctx, fmt.Sprintf(\"vpc-%v\", key0), \u0026vpc.NetworkArgs{\n\t\t\t\tName:      pulumi.Any(vpcName),\n\t\t\t\tCidrBlock: pulumi.Any(vpcCidr),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tvpc = append(vpc, __res)\n\t\t}\n\t\tvar tmp1 pulumi.String\n\t\tif vpcId == \"\" {\n\t\t\ttmp1 = vpc[0].ID()\n\t\t} else {\n\t\t\ttmp1 = pulumi.Any(vpcId)\n\t\t}\n\t\tvar tmp2 float64\n\t\tif securityGroupId == \"\" {\n\t\t\ttmp2 = 1\n\t\t} else {\n\t\t\ttmp2 = 0\n\t\t}\n\t\tvar defaultSecurityGroup []*ecs.SecurityGroup\n\t\tfor index := 0; index \u003c tmp2; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := ecs.NewSecurityGroup(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026ecs.SecurityGroupArgs{\n\t\t\t\tName:  pulumi.Any(securityGroupName),\n\t\t\t\tVpcId: pulumi.String(tmp1),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultSecurityGroup = append(defaultSecurityGroup, __res)\n\t\t}\n\t\tvar tmp3 pulumi.String\n\t\tif availabilityZone == \"\" {\n\t\t\ttmp3 = pulumi.String(defaultGetInstanceTypes.Types[0].ZoneId)\n\t\t} else {\n\t\t\ttmp3 = pulumi.Any(availabilityZone)\n\t\t}\n\t\tvar tmp4 pulumi.String\n\t\tif vpcId == \"\" {\n\t\t\ttmp4 = vpc[0].ID()\n\t\t} else {\n\t\t\ttmp4 = pulumi.Any(vpcId)\n\t\t}\n\t\t// VSwitch Resource for Module\n\t\tvar tmp5 float64\n\t\tif vswitchId == \"\" {\n\t\t\ttmp5 = 1\n\t\t} else {\n\t\t\ttmp5 = 0\n\t\t}\n\t\tvar vswitch []*vpc.Switch\n\t\tfor index := 0; index \u003c tmp5; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"vswitch-%v\", key0), \u0026vpc.SwitchArgs{\n\t\t\t\tAvailabilityZone: pulumi.String(tmp3),\n\t\t\t\tVswitchName:      pulumi.Any(vswitchName),\n\t\t\t\tCidrBlock:        pulumi.Any(vswitchCidr),\n\t\t\t\tVpcId:            pulumi.String(tmp4),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tvswitch = append(vswitch, __res)\n\t\t}\n\t\t// Ram role Resource for Module\n\t\tdefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.Any(ramName),\n\t\t\tDocument: pulumi.String(`    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n`),\n\t\t\tDescription: pulumi.String(\"this is a role test.\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp6 pulumi.String\n\t\tif dataDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp6 = pulumi.Int(dataDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp6 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp7 pulumi.String\n\t\tif systemDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp7 = pulumi.Int(systemDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp7 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp8 pulumi.String\n\t\tif dataDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp8 = pulumi.Int(dataDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp8 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp9 pulumi.String\n\t\tif systemDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp9 = pulumi.Int(systemDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp9 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp10 pulumi.String\n\t\tif dataDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp10 = pulumi.Int(dataDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp10 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp11 pulumi.String\n\t\tif systemDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp11 = pulumi.Int(systemDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp11 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp12 pulumi.String\n\t\tif securityGroupId == \"\" {\n\t\t\ttmp12 = defaultSecurityGroup[0].ID()\n\t\t} else {\n\t\t\ttmp12 = pulumi.Any(securityGroupId)\n\t\t}\n\t\tvar tmp13 pulumi.String\n\t\tif vswitchId == \"\" {\n\t\t\ttmp13 = vswitch[0].ID()\n\t\t} else {\n\t\t\ttmp13 = pulumi.Any(vswitchId)\n\t\t}\n\t\t_, err = emr.NewCluster(ctx, \"default\", \u0026emr.ClusterArgs{\n\t\t\tName:        pulumi.String(\"terraform-resize-cluster-test\"),\n\t\t\tEmrVer:      pulumi.String(_default.MainVersions[0].EmrVersion),\n\t\t\tClusterType: pulumi.String(_default.MainVersions[0].ClusterTypes[0]),\n\t\t\tHostGroups: emr.ClusterHostGroupArray{\n\t\t\t\t\u0026emr.ClusterHostGroupArgs{\n\t\t\t\t\tHostGroupName:   pulumi.String(\"master_group\"),\n\t\t\t\t\tHostGroupType:   pulumi.String(\"MASTER\"),\n\t\t\t\t\tNodeCount:       pulumi.String(\"2\"),\n\t\t\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.Types[0].Id),\n\t\t\t\t\tDiskType:        pulumi.String(dataDisk.Types[0].Value),\n\t\t\t\t\tDiskCapacity:    pulumi.String(tmp6),\n\t\t\t\t\tDiskCount:       pulumi.String(\"1\"),\n\t\t\t\t\tSysDiskType:     pulumi.String(systemDisk.Types[0].Value),\n\t\t\t\t\tSysDiskCapacity: pulumi.String(tmp7),\n\t\t\t\t},\n\t\t\t\t\u0026emr.ClusterHostGroupArgs{\n\t\t\t\t\tHostGroupName:   pulumi.String(\"core_group\"),\n\t\t\t\t\tHostGroupType:   pulumi.String(\"CORE\"),\n\t\t\t\t\tNodeCount:       pulumi.String(\"3\"),\n\t\t\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.Types[0].Id),\n\t\t\t\t\tDiskType:        pulumi.String(dataDisk.Types[0].Value),\n\t\t\t\t\tDiskCapacity:    pulumi.String(tmp8),\n\t\t\t\t\tDiskCount:       pulumi.String(\"4\"),\n\t\t\t\t\tSysDiskType:     pulumi.String(systemDisk.Types[0].Value),\n\t\t\t\t\tSysDiskCapacity: pulumi.String(tmp9),\n\t\t\t\t},\n\t\t\t\t\u0026emr.ClusterHostGroupArgs{\n\t\t\t\t\tHostGroupName:   pulumi.String(\"task_group\"),\n\t\t\t\t\tHostGroupType:   pulumi.String(\"TASK\"),\n\t\t\t\t\tNodeCount:       pulumi.String(\"4\"),\n\t\t\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.Types[0].Id),\n\t\t\t\t\tDiskType:        pulumi.String(dataDisk.Types[0].Value),\n\t\t\t\t\tDiskCapacity:    pulumi.String(tmp10),\n\t\t\t\t\tDiskCount:       pulumi.String(\"4\"),\n\t\t\t\t\tSysDiskType:     pulumi.String(systemDisk.Types[0].Value),\n\t\t\t\t\tSysDiskCapacity: pulumi.String(tmp11),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHighAvailabilityEnable: pulumi.Bool(true),\n\t\t\tZoneId:                 pulumi.String(defaultGetInstanceTypes.Types[0].ZoneId),\n\t\t\tSecurityGroupId:        pulumi.String(tmp12),\n\t\t\tIsOpenPublicIp:         pulumi.Bool(true),\n\t\t\tChargeType:             pulumi.String(\"PostPaid\"),\n\t\t\tVswitchId:              pulumi.String(tmp13),\n\t\t\tUserDefinedEmrEcsRole:  defaultRole.Name,\n\t\t\tSshEnable:              pulumi.Bool(true),\n\t\t\tMasterPwd:              pulumi.String(\"ABCtest1234!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.emr.EmrFunctions;\nimport com.pulumi.alicloud.emr.inputs.GetMainVersionsArgs;\nimport com.pulumi.alicloud.emr.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.emr.inputs.GetDiskTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.emr.Cluster;\nimport com.pulumi.alicloud.emr.ClusterArgs;\nimport com.pulumi.alicloud.emr.inputs.ClusterHostGroupArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EmrFunctions.getMainVersions(GetMainVersionsArgs.builder()\n            .build());\n\n        final var defaultGetInstanceTypes = EmrFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .destinationResource(\"InstanceType\")\n            .clusterType(default_.mainVersions()[0].clusterTypes()[0])\n            .supportLocalStorage(false)\n            .instanceChargeType(\"PostPaid\")\n            .supportNodeTypes(            \n                \"MASTER\",\n                \"CORE\",\n                \"TASK\")\n            .build());\n\n        final var dataDisk = EmrFunctions.getDiskTypes(GetDiskTypesArgs.builder()\n            .destinationResource(\"DataDisk\")\n            .clusterType(default_.mainVersions()[0].clusterTypes()[0])\n            .instanceChargeType(\"PostPaid\")\n            .instanceType(defaultGetInstanceTypes.types()[0].id())\n            .zoneId(defaultGetInstanceTypes.types()[0].zoneId())\n            .build());\n\n        final var systemDisk = EmrFunctions.getDiskTypes(GetDiskTypesArgs.builder()\n            .destinationResource(\"SystemDisk\")\n            .clusterType(default_.mainVersions()[0].clusterTypes()[0])\n            .instanceChargeType(\"PostPaid\")\n            .instanceType(defaultGetInstanceTypes.types()[0].id())\n            .zoneId(defaultGetInstanceTypes.types()[0].zoneId())\n            .build());\n\n        for (var i = 0; i \u003c (vpcId == \"\" ? 1 : 0); i++) {\n            new Network(\"vpc-\" + i, NetworkArgs.builder()\n                .name(vpcName)\n                .cidrBlock(vpcCidr)\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c (securityGroupId == \"\" ? 1 : 0); i++) {\n            new SecurityGroup(\"defaultSecurityGroup-\" + i, SecurityGroupArgs.builder()\n                .name(securityGroupName)\n                .vpcId(vpcId == \"\" ? vpc[0].id() : vpcId)\n                .build());\n\n        \n}\n        // VSwitch Resource for Module\n        for (var i = 0; i \u003c (vswitchId == \"\" ? 1 : 0); i++) {\n            new Switch(\"vswitch-\" + i, SwitchArgs.builder()\n                .availabilityZone(availabilityZone == \"\" ? defaultGetInstanceTypes.types()[0].zoneId() : availabilityZone)\n                .vswitchName(vswitchName)\n                .cidrBlock(vswitchCidr)\n                .vpcId(vpcId == \"\" ? vpc[0].id() : vpcId)\n                .build());\n\n        \n}\n        // Ram role Resource for Module\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .name(ramName)\n            .document(\"\"\"\n    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n            \"\"\")\n            .description(\"this is a role test.\")\n            .force(true)\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .name(\"terraform-resize-cluster-test\")\n            .emrVer(default_.mainVersions()[0].emrVersion())\n            .clusterType(default_.mainVersions()[0].clusterTypes()[0])\n            .hostGroups(            \n                ClusterHostGroupArgs.builder()\n                    .hostGroupName(\"master_group\")\n                    .hostGroupType(\"MASTER\")\n                    .nodeCount(\"2\")\n                    .instanceType(defaultGetInstanceTypes.types()[0].id())\n                    .diskType(dataDisk.types()[0].value())\n                    .diskCapacity(dataDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? dataDisk.types()[0].min() : \"160\")\n                    .diskCount(\"1\")\n                    .sysDiskType(systemDisk.types()[0].value())\n                    .sysDiskCapacity(systemDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? systemDisk.types()[0].min() : \"160\")\n                    .build(),\n                ClusterHostGroupArgs.builder()\n                    .hostGroupName(\"core_group\")\n                    .hostGroupType(\"CORE\")\n                    .nodeCount(\"3\")\n                    .instanceType(defaultGetInstanceTypes.types()[0].id())\n                    .diskType(dataDisk.types()[0].value())\n                    .diskCapacity(dataDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? dataDisk.types()[0].min() : \"160\")\n                    .diskCount(\"4\")\n                    .sysDiskType(systemDisk.types()[0].value())\n                    .sysDiskCapacity(systemDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? systemDisk.types()[0].min() : \"160\")\n                    .build(),\n                ClusterHostGroupArgs.builder()\n                    .hostGroupName(\"task_group\")\n                    .hostGroupType(\"TASK\")\n                    .nodeCount(\"4\")\n                    .instanceType(defaultGetInstanceTypes.types()[0].id())\n                    .diskType(dataDisk.types()[0].value())\n                    .diskCapacity(dataDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? dataDisk.types()[0].min() : \"160\")\n                    .diskCount(\"4\")\n                    .sysDiskType(systemDisk.types()[0].value())\n                    .sysDiskCapacity(systemDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? systemDisk.types()[0].min() : \"160\")\n                    .build())\n            .highAvailabilityEnable(true)\n            .zoneId(defaultGetInstanceTypes.types()[0].zoneId())\n            .securityGroupId(securityGroupId == \"\" ? defaultSecurityGroup[0].id() : securityGroupId)\n            .isOpenPublicIp(true)\n            .chargeType(\"PostPaid\")\n            .vswitchId(vswitchId == \"\" ? vswitch[0].id() : vswitchId)\n            .userDefinedEmrEcsRole(defaultRole.name())\n            .sshEnable(true)\n            .masterPwd(\"ABCtest1234!\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### 3. Scale Down\n\nIn the case of scaling down a cluster, we need to specified the host group and the instance list. \n\n\u003e **NOTE:** Graceful decommission of hadoop cluster has been supported Available since v1.168.0.\n\nThe following is an example. We scale down the cluster by decreasing the node count by 2, and specifying the scale-down instance list.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.emr.getMainVersions({});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.emr.getInstanceTypes({\n    destinationResource: \"InstanceType\",\n    clusterType: _default.mainVersions?.[0]?.clusterTypes?.[0],\n    supportLocalStorage: false,\n    instanceChargeType: \"PostPaid\",\n    supportNodeTypes: [\n        \"MASTER\",\n        \"CORE\",\n        \"TASK\",\n    ],\n}));\nconst dataDisk = Promise.all([_default, defaultGetInstanceTypes, defaultGetInstanceTypes]).then(([_default, defaultGetInstanceTypes, defaultGetInstanceTypes1]) =\u003e alicloud.emr.getDiskTypes({\n    destinationResource: \"DataDisk\",\n    clusterType: _default.mainVersions?.[0]?.clusterTypes?.[0],\n    instanceChargeType: \"PostPaid\",\n    instanceType: defaultGetInstanceTypes.types?.[0]?.id,\n    zoneId: defaultGetInstanceTypes1.types?.[0]?.zoneId,\n}));\nconst systemDisk = Promise.all([_default, defaultGetInstanceTypes, defaultGetInstanceTypes]).then(([_default, defaultGetInstanceTypes, defaultGetInstanceTypes1]) =\u003e alicloud.emr.getDiskTypes({\n    destinationResource: \"SystemDisk\",\n    clusterType: _default.mainVersions?.[0]?.clusterTypes?.[0],\n    instanceChargeType: \"PostPaid\",\n    instanceType: defaultGetInstanceTypes.types?.[0]?.id,\n    zoneId: defaultGetInstanceTypes1.types?.[0]?.zoneId,\n}));\nconst vpc: alicloud.vpc.Network[] = [];\nfor (const range = {value: 0}; range.value \u003c (vpcId == \"\" ? 1 : 0); range.value++) {\n    vpc.push(new alicloud.vpc.Network(`vpc-${range.value}`, {\n        name: vpcName,\n        cidrBlock: vpcCidr,\n    }));\n}\nconst defaultSecurityGroup: alicloud.ecs.SecurityGroup[] = [];\nfor (const range = {value: 0}; range.value \u003c (securityGroupId == \"\" ? 1 : 0); range.value++) {\n    defaultSecurityGroup.push(new alicloud.ecs.SecurityGroup(`default-${range.value}`, {\n        name: securityGroupName,\n        vpcId: vpcId == \"\" ? vpc[0].id : vpcId,\n    }));\n}\n// VSwitch Resource for Module\nconst vswitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c (vswitchId == \"\" ? 1 : 0); range.value++) {\n    vswitch.push(new alicloud.vpc.Switch(`vswitch-${range.value}`, {\n        availabilityZone: availabilityZone == \"\" ? defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.zoneId) : availabilityZone,\n        vswitchName: vswitchName,\n        cidrBlock: vswitchCidr,\n        vpcId: vpcId == \"\" ? vpc[0].id : vpcId,\n    }));\n}\n// Ram role Resource for Module\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    name: ramName,\n    document: `    {\n        \\\\\"Statement\\\\\": [\n        {\n            \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n            \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n            \\\\\"Principal\\\\\": {\n            \\\\\"Service\\\\\": [\n                \\\\\"emr.aliyuncs.com\\\\\",\n                \\\\\"ecs.aliyuncs.com\\\\\"\n            ]\n            }\n        }\n        ],\n        \\\\\"Version\\\\\": \\\\\"1\\\\\"\n    }\n`,\n    description: \"this is a role test.\",\n    force: true,\n});\nconst defaultCluster = new alicloud.emr.Cluster(\"default\", {\n    name: \"terraform-resize-cluster-test\",\n    emrVer: _default.then(_default =\u003e _default.mainVersions?.[0]?.emrVersion),\n    clusterType: _default.then(_default =\u003e _default.mainVersions?.[0]?.clusterTypes?.[0]),\n    hostGroups: [\n        {\n            hostGroupName: \"master_group\",\n            hostGroupType: \"MASTER\",\n            nodeCount: \"2\",\n            instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.id),\n            diskType: dataDisk.then(dataDisk =\u003e dataDisk.types?.[0]?.value),\n            diskCapacity: Promise.all([dataDisk, dataDisk]).then(([dataDisk, dataDisk1]) =\u003e dataDisk.types?.[0]?.min \u003e 160 ? dataDisk1.types?.[0]?.min : 160),\n            diskCount: \"1\",\n            sysDiskType: systemDisk.then(systemDisk =\u003e systemDisk.types?.[0]?.value),\n            sysDiskCapacity: Promise.all([systemDisk, systemDisk]).then(([systemDisk, systemDisk1]) =\u003e systemDisk.types?.[0]?.min \u003e 160 ? systemDisk1.types?.[0]?.min : 160),\n        },\n        {\n            hostGroupName: \"core_group\",\n            hostGroupType: \"CORE\",\n            nodeCount: \"3\",\n            instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.id),\n            diskType: dataDisk.then(dataDisk =\u003e dataDisk.types?.[0]?.value),\n            diskCapacity: Promise.all([dataDisk, dataDisk]).then(([dataDisk, dataDisk1]) =\u003e dataDisk.types?.[0]?.min \u003e 160 ? dataDisk1.types?.[0]?.min : 160),\n            diskCount: \"4\",\n            sysDiskType: systemDisk.then(systemDisk =\u003e systemDisk.types?.[0]?.value),\n            sysDiskCapacity: Promise.all([systemDisk, systemDisk]).then(([systemDisk, systemDisk1]) =\u003e systemDisk.types?.[0]?.min \u003e 160 ? systemDisk1.types?.[0]?.min : 160),\n        },\n        {\n            hostGroupName: \"task_group\",\n            hostGroupType: \"TASK\",\n            nodeCount: \"2\",\n            instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.id),\n            diskType: dataDisk.then(dataDisk =\u003e dataDisk.types?.[0]?.value),\n            diskCapacity: Promise.all([dataDisk, dataDisk]).then(([dataDisk, dataDisk1]) =\u003e dataDisk.types?.[0]?.min \u003e 160 ? dataDisk1.types?.[0]?.min : 160),\n            diskCount: \"4\",\n            sysDiskType: systemDisk.then(systemDisk =\u003e systemDisk.types?.[0]?.value),\n            sysDiskCapacity: Promise.all([systemDisk, systemDisk]).then(([systemDisk, systemDisk1]) =\u003e systemDisk.types?.[0]?.min \u003e 160 ? systemDisk1.types?.[0]?.min : 160),\n        },\n    ],\n    highAvailabilityEnable: true,\n    zoneId: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.zoneId),\n    securityGroupId: securityGroupId == \"\" ? defaultSecurityGroup[0].id : securityGroupId,\n    isOpenPublicIp: true,\n    chargeType: \"PostPaid\",\n    vswitchId: vswitchId == \"\" ? vswitch[0].id : vswitchId,\n    userDefinedEmrEcsRole: defaultRole.name,\n    sshEnable: true,\n    masterPwd: \"ABCtest1234!\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.emr.get_main_versions()\ndefault_get_instance_types = alicloud.emr.get_instance_types(destination_resource=\"InstanceType\",\n    cluster_type=default.main_versions[0].cluster_types[0],\n    support_local_storage=False,\n    instance_charge_type=\"PostPaid\",\n    support_node_types=[\n        \"MASTER\",\n        \"CORE\",\n        \"TASK\",\n    ])\ndata_disk = alicloud.emr.get_disk_types(destination_resource=\"DataDisk\",\n    cluster_type=default.main_versions[0].cluster_types[0],\n    instance_charge_type=\"PostPaid\",\n    instance_type=default_get_instance_types.types[0].id,\n    zone_id=default_get_instance_types.types[0].zone_id)\nsystem_disk = alicloud.emr.get_disk_types(destination_resource=\"SystemDisk\",\n    cluster_type=default.main_versions[0].cluster_types[0],\n    instance_charge_type=\"PostPaid\",\n    instance_type=default_get_instance_types.types[0].id,\n    zone_id=default_get_instance_types.types[0].zone_id)\nvpc = []\nfor range in [{\"value\": i} for i in range(0, 1 if vpc_id ==  else 0)]:\n    vpc.append(alicloud.vpc.Network(f\"vpc-{range['value']}\",\n        name=vpc_name,\n        cidr_block=vpc_cidr))\ndefault_security_group = []\nfor range in [{\"value\": i} for i in range(0, 1 if security_group_id ==  else 0)]:\n    default_security_group.append(alicloud.ecs.SecurityGroup(f\"default-{range['value']}\",\n        name=security_group_name,\n        vpc_id=vpc[0].id if vpc_id == \"\" else vpc_id))\n# VSwitch Resource for Module\nvswitch = []\nfor range in [{\"value\": i} for i in range(0, 1 if vswitch_id ==  else 0)]:\n    vswitch.append(alicloud.vpc.Switch(f\"vswitch-{range['value']}\",\n        availability_zone=default_get_instance_types.types[0].zone_id if availability_zone == \"\" else availability_zone,\n        vswitch_name=vswitch_name,\n        cidr_block=vswitch_cidr,\n        vpc_id=vpc[0].id if vpc_id == \"\" else vpc_id))\n# Ram role Resource for Module\ndefault_role = alicloud.ram.Role(\"default\",\n    name=ram_name,\n    document=\"\"\"    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n\"\"\",\n    description=\"this is a role test.\",\n    force=True)\ndefault_cluster = alicloud.emr.Cluster(\"default\",\n    name=\"terraform-resize-cluster-test\",\n    emr_ver=default.main_versions[0].emr_version,\n    cluster_type=default.main_versions[0].cluster_types[0],\n    host_groups=[\n        {\n            \"host_group_name\": \"master_group\",\n            \"host_group_type\": \"MASTER\",\n            \"node_count\": \"2\",\n            \"instance_type\": default_get_instance_types.types[0].id,\n            \"disk_type\": data_disk.types[0].value,\n            \"disk_capacity\": data_disk.types[0].min if data_disk.types[0].min \u003e 160 else \"160\",\n            \"disk_count\": \"1\",\n            \"sys_disk_type\": system_disk.types[0].value,\n            \"sys_disk_capacity\": system_disk.types[0].min if system_disk.types[0].min \u003e 160 else \"160\",\n        },\n        {\n            \"host_group_name\": \"core_group\",\n            \"host_group_type\": \"CORE\",\n            \"node_count\": \"3\",\n            \"instance_type\": default_get_instance_types.types[0].id,\n            \"disk_type\": data_disk.types[0].value,\n            \"disk_capacity\": data_disk.types[0].min if data_disk.types[0].min \u003e 160 else \"160\",\n            \"disk_count\": \"4\",\n            \"sys_disk_type\": system_disk.types[0].value,\n            \"sys_disk_capacity\": system_disk.types[0].min if system_disk.types[0].min \u003e 160 else \"160\",\n        },\n        {\n            \"host_group_name\": \"task_group\",\n            \"host_group_type\": \"TASK\",\n            \"node_count\": \"2\",\n            \"instance_type\": default_get_instance_types.types[0].id,\n            \"disk_type\": data_disk.types[0].value,\n            \"disk_capacity\": data_disk.types[0].min if data_disk.types[0].min \u003e 160 else \"160\",\n            \"disk_count\": \"4\",\n            \"sys_disk_type\": system_disk.types[0].value,\n            \"sys_disk_capacity\": system_disk.types[0].min if system_disk.types[0].min \u003e 160 else \"160\",\n        },\n    ],\n    high_availability_enable=True,\n    zone_id=default_get_instance_types.types[0].zone_id,\n    security_group_id=default_security_group[0].id if security_group_id == \"\" else security_group_id,\n    is_open_public_ip=True,\n    charge_type=\"PostPaid\",\n    vswitch_id=vswitch[0].id if vswitch_id == \"\" else vswitch_id,\n    user_defined_emr_ecs_role=default_role.name,\n    ssh_enable=True,\n    master_pwd=\"ABCtest1234!\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Emr.GetMainVersions.Invoke();\n\n    var defaultGetInstanceTypes = AliCloud.Emr.GetInstanceTypes.Invoke(new()\n    {\n        DestinationResource = \"InstanceType\",\n        ClusterType = @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0]),\n        SupportLocalStorage = false,\n        InstanceChargeType = \"PostPaid\",\n        SupportNodeTypes = new[]\n        {\n            \"MASTER\",\n            \"CORE\",\n            \"TASK\",\n        },\n    });\n\n    var dataDisk = AliCloud.Emr.GetDiskTypes.Invoke(new()\n    {\n        DestinationResource = \"DataDisk\",\n        ClusterType = @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0]),\n        InstanceChargeType = \"PostPaid\",\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId),\n    });\n\n    var systemDisk = AliCloud.Emr.GetDiskTypes.Invoke(new()\n    {\n        DestinationResource = \"SystemDisk\",\n        ClusterType = @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0]),\n        InstanceChargeType = \"PostPaid\",\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId),\n    });\n\n    var vpc = new List\u003cAliCloud.Vpc.Network\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (vpcId == \"\" ? 1 : 0); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        vpc.Add(new AliCloud.Vpc.Network($\"vpc-{range.Value}\", new()\n        {\n            Name = vpcName,\n            CidrBlock = vpcCidr,\n        }));\n    }\n    var defaultSecurityGroup = new List\u003cAliCloud.Ecs.SecurityGroup\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (securityGroupId == \"\" ? 1 : 0); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSecurityGroup.Add(new AliCloud.Ecs.SecurityGroup($\"default-{range.Value}\", new()\n        {\n            Name = securityGroupName,\n            VpcId = vpcId == \"\" ? vpc[0].Id : vpcId,\n        }));\n    }\n    // VSwitch Resource for Module\n    var vswitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (vswitchId == \"\" ? 1 : 0); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        vswitch.Add(new AliCloud.Vpc.Switch($\"vswitch-{range.Value}\", new()\n        {\n            AvailabilityZone = availabilityZone == \"\" ? defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId) : availabilityZone,\n            VswitchName = vswitchName,\n            CidrBlock = vswitchCidr,\n            VpcId = vpcId == \"\" ? vpc[0].Id : vpcId,\n        }));\n    }\n    // Ram role Resource for Module\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = ramName,\n        Document = @\"    {\n        \\\"\"Statement\\\"\": [\n        {\n            \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n            \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n            \\\"\"Principal\\\"\": {\n            \\\"\"Service\\\"\": [\n                \\\"\"emr.aliyuncs.com\\\"\",\n                \\\"\"ecs.aliyuncs.com\\\"\"\n            ]\n            }\n        }\n        ],\n        \\\"\"Version\\\"\": \\\"\"1\\\"\"\n    }\n\",\n        Description = \"this is a role test.\",\n        Force = true,\n    });\n\n    var defaultCluster = new AliCloud.Emr.Cluster(\"default\", new()\n    {\n        Name = \"terraform-resize-cluster-test\",\n        EmrVer = @default.Apply(@default =\u003e @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.EmrVersion)),\n        ClusterType = @default.Apply(@default =\u003e @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0])),\n        HostGroups = new[]\n        {\n            new AliCloud.Emr.Inputs.ClusterHostGroupArgs\n            {\n                HostGroupName = \"master_group\",\n                HostGroupType = \"MASTER\",\n                NodeCount = \"2\",\n                InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n                DiskType = dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                DiskCapacity = Output.Tuple(dataDisk, dataDisk).Apply(values =\u003e\n                {\n                    var dataDisk = values.Item1;\n                    var dataDisk1 = values.Item2;\n                    return dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? dataDisk1.Types[0]?.Min : 160;\n                }),\n                DiskCount = \"1\",\n                SysDiskType = systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                SysDiskCapacity = Output.Tuple(systemDisk, systemDisk).Apply(values =\u003e\n                {\n                    var systemDisk = values.Item1;\n                    var systemDisk1 = values.Item2;\n                    return systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? systemDisk1.Types[0]?.Min : 160;\n                }),\n            },\n            new AliCloud.Emr.Inputs.ClusterHostGroupArgs\n            {\n                HostGroupName = \"core_group\",\n                HostGroupType = \"CORE\",\n                NodeCount = \"3\",\n                InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n                DiskType = dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                DiskCapacity = Output.Tuple(dataDisk, dataDisk).Apply(values =\u003e\n                {\n                    var dataDisk = values.Item1;\n                    var dataDisk1 = values.Item2;\n                    return dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? dataDisk1.Types[0]?.Min : 160;\n                }),\n                DiskCount = \"4\",\n                SysDiskType = systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                SysDiskCapacity = Output.Tuple(systemDisk, systemDisk).Apply(values =\u003e\n                {\n                    var systemDisk = values.Item1;\n                    var systemDisk1 = values.Item2;\n                    return systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? systemDisk1.Types[0]?.Min : 160;\n                }),\n            },\n            new AliCloud.Emr.Inputs.ClusterHostGroupArgs\n            {\n                HostGroupName = \"task_group\",\n                HostGroupType = \"TASK\",\n                NodeCount = \"2\",\n                InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n                DiskType = dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                DiskCapacity = Output.Tuple(dataDisk, dataDisk).Apply(values =\u003e\n                {\n                    var dataDisk = values.Item1;\n                    var dataDisk1 = values.Item2;\n                    return dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? dataDisk1.Types[0]?.Min : 160;\n                }),\n                DiskCount = \"4\",\n                SysDiskType = systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                SysDiskCapacity = Output.Tuple(systemDisk, systemDisk).Apply(values =\u003e\n                {\n                    var systemDisk = values.Item1;\n                    var systemDisk1 = values.Item2;\n                    return systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? systemDisk1.Types[0]?.Min : 160;\n                }),\n            },\n        },\n        HighAvailabilityEnable = true,\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId),\n        SecurityGroupId = securityGroupId == \"\" ? defaultSecurityGroup[0].Id : securityGroupId,\n        IsOpenPublicIp = true,\n        ChargeType = \"PostPaid\",\n        VswitchId = vswitchId == \"\" ? vswitch[0].Id : vswitchId,\n        UserDefinedEmrEcsRole = defaultRole.Name,\n        SshEnable = true,\n        MasterPwd = \"ABCtest1234!\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/emr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := emr.GetMainVersions(ctx, \u0026emr.GetMainVersionsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := emr.GetInstanceTypes(ctx, \u0026emr.GetInstanceTypesArgs{\n\t\t\tDestinationResource: \"InstanceType\",\n\t\t\tClusterType:         _default.MainVersions[0].ClusterTypes[0],\n\t\t\tSupportLocalStorage: pulumi.BoolRef(false),\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tSupportNodeTypes: []string{\n\t\t\t\t\"MASTER\",\n\t\t\t\t\"CORE\",\n\t\t\t\t\"TASK\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdataDisk, err := emr.GetDiskTypes(ctx, \u0026emr.GetDiskTypesArgs{\n\t\t\tDestinationResource: \"DataDisk\",\n\t\t\tClusterType:         _default.MainVersions[0].ClusterTypes[0],\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tInstanceType:        defaultGetInstanceTypes.Types[0].Id,\n\t\t\tZoneId:              pulumi.StringRef(defaultGetInstanceTypes.Types[0].ZoneId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsystemDisk, err := emr.GetDiskTypes(ctx, \u0026emr.GetDiskTypesArgs{\n\t\t\tDestinationResource: \"SystemDisk\",\n\t\t\tClusterType:         _default.MainVersions[0].ClusterTypes[0],\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tInstanceType:        defaultGetInstanceTypes.Types[0].Id,\n\t\t\tZoneId:              pulumi.StringRef(defaultGetInstanceTypes.Types[0].ZoneId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp0 float64\n\t\tif vpcId == \"\" {\n\t\t\ttmp0 = 1\n\t\t} else {\n\t\t\ttmp0 = 0\n\t\t}\n\t\tvar vpc []*vpc.Network\n\t\tfor index := 0; index \u003c tmp0; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := vpc.NewNetwork(ctx, fmt.Sprintf(\"vpc-%v\", key0), \u0026vpc.NetworkArgs{\n\t\t\t\tName:      pulumi.Any(vpcName),\n\t\t\t\tCidrBlock: pulumi.Any(vpcCidr),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tvpc = append(vpc, __res)\n\t\t}\n\t\tvar tmp1 pulumi.String\n\t\tif vpcId == \"\" {\n\t\t\ttmp1 = vpc[0].ID()\n\t\t} else {\n\t\t\ttmp1 = pulumi.Any(vpcId)\n\t\t}\n\t\tvar tmp2 float64\n\t\tif securityGroupId == \"\" {\n\t\t\ttmp2 = 1\n\t\t} else {\n\t\t\ttmp2 = 0\n\t\t}\n\t\tvar defaultSecurityGroup []*ecs.SecurityGroup\n\t\tfor index := 0; index \u003c tmp2; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := ecs.NewSecurityGroup(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026ecs.SecurityGroupArgs{\n\t\t\t\tName:  pulumi.Any(securityGroupName),\n\t\t\t\tVpcId: pulumi.String(tmp1),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultSecurityGroup = append(defaultSecurityGroup, __res)\n\t\t}\n\t\tvar tmp3 pulumi.String\n\t\tif availabilityZone == \"\" {\n\t\t\ttmp3 = pulumi.String(defaultGetInstanceTypes.Types[0].ZoneId)\n\t\t} else {\n\t\t\ttmp3 = pulumi.Any(availabilityZone)\n\t\t}\n\t\tvar tmp4 pulumi.String\n\t\tif vpcId == \"\" {\n\t\t\ttmp4 = vpc[0].ID()\n\t\t} else {\n\t\t\ttmp4 = pulumi.Any(vpcId)\n\t\t}\n\t\t// VSwitch Resource for Module\n\t\tvar tmp5 float64\n\t\tif vswitchId == \"\" {\n\t\t\ttmp5 = 1\n\t\t} else {\n\t\t\ttmp5 = 0\n\t\t}\n\t\tvar vswitch []*vpc.Switch\n\t\tfor index := 0; index \u003c tmp5; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"vswitch-%v\", key0), \u0026vpc.SwitchArgs{\n\t\t\t\tAvailabilityZone: pulumi.String(tmp3),\n\t\t\t\tVswitchName:      pulumi.Any(vswitchName),\n\t\t\t\tCidrBlock:        pulumi.Any(vswitchCidr),\n\t\t\t\tVpcId:            pulumi.String(tmp4),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tvswitch = append(vswitch, __res)\n\t\t}\n\t\t// Ram role Resource for Module\n\t\tdefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.Any(ramName),\n\t\t\tDocument: pulumi.String(`    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n`),\n\t\t\tDescription: pulumi.String(\"this is a role test.\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp6 pulumi.String\n\t\tif dataDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp6 = pulumi.Int(dataDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp6 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp7 pulumi.String\n\t\tif systemDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp7 = pulumi.Int(systemDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp7 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp8 pulumi.String\n\t\tif dataDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp8 = pulumi.Int(dataDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp8 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp9 pulumi.String\n\t\tif systemDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp9 = pulumi.Int(systemDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp9 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp10 pulumi.String\n\t\tif dataDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp10 = pulumi.Int(dataDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp10 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp11 pulumi.String\n\t\tif systemDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp11 = pulumi.Int(systemDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp11 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp12 pulumi.String\n\t\tif securityGroupId == \"\" {\n\t\t\ttmp12 = defaultSecurityGroup[0].ID()\n\t\t} else {\n\t\t\ttmp12 = pulumi.Any(securityGroupId)\n\t\t}\n\t\tvar tmp13 pulumi.String\n\t\tif vswitchId == \"\" {\n\t\t\ttmp13 = vswitch[0].ID()\n\t\t} else {\n\t\t\ttmp13 = pulumi.Any(vswitchId)\n\t\t}\n\t\t_, err = emr.NewCluster(ctx, \"default\", \u0026emr.ClusterArgs{\n\t\t\tName:        pulumi.String(\"terraform-resize-cluster-test\"),\n\t\t\tEmrVer:      pulumi.String(_default.MainVersions[0].EmrVersion),\n\t\t\tClusterType: pulumi.String(_default.MainVersions[0].ClusterTypes[0]),\n\t\t\tHostGroups: emr.ClusterHostGroupArray{\n\t\t\t\t\u0026emr.ClusterHostGroupArgs{\n\t\t\t\t\tHostGroupName:   pulumi.String(\"master_group\"),\n\t\t\t\t\tHostGroupType:   pulumi.String(\"MASTER\"),\n\t\t\t\t\tNodeCount:       pulumi.String(\"2\"),\n\t\t\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.Types[0].Id),\n\t\t\t\t\tDiskType:        pulumi.String(dataDisk.Types[0].Value),\n\t\t\t\t\tDiskCapacity:    pulumi.String(tmp6),\n\t\t\t\t\tDiskCount:       pulumi.String(\"1\"),\n\t\t\t\t\tSysDiskType:     pulumi.String(systemDisk.Types[0].Value),\n\t\t\t\t\tSysDiskCapacity: pulumi.String(tmp7),\n\t\t\t\t},\n\t\t\t\t\u0026emr.ClusterHostGroupArgs{\n\t\t\t\t\tHostGroupName:   pulumi.String(\"core_group\"),\n\t\t\t\t\tHostGroupType:   pulumi.String(\"CORE\"),\n\t\t\t\t\tNodeCount:       pulumi.String(\"3\"),\n\t\t\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.Types[0].Id),\n\t\t\t\t\tDiskType:        pulumi.String(dataDisk.Types[0].Value),\n\t\t\t\t\tDiskCapacity:    pulumi.String(tmp8),\n\t\t\t\t\tDiskCount:       pulumi.String(\"4\"),\n\t\t\t\t\tSysDiskType:     pulumi.String(systemDisk.Types[0].Value),\n\t\t\t\t\tSysDiskCapacity: pulumi.String(tmp9),\n\t\t\t\t},\n\t\t\t\t\u0026emr.ClusterHostGroupArgs{\n\t\t\t\t\tHostGroupName:   pulumi.String(\"task_group\"),\n\t\t\t\t\tHostGroupType:   pulumi.String(\"TASK\"),\n\t\t\t\t\tNodeCount:       pulumi.String(\"2\"),\n\t\t\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.Types[0].Id),\n\t\t\t\t\tDiskType:        pulumi.String(dataDisk.Types[0].Value),\n\t\t\t\t\tDiskCapacity:    pulumi.String(tmp10),\n\t\t\t\t\tDiskCount:       pulumi.String(\"4\"),\n\t\t\t\t\tSysDiskType:     pulumi.String(systemDisk.Types[0].Value),\n\t\t\t\t\tSysDiskCapacity: pulumi.String(tmp11),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHighAvailabilityEnable: pulumi.Bool(true),\n\t\t\tZoneId:                 pulumi.String(defaultGetInstanceTypes.Types[0].ZoneId),\n\t\t\tSecurityGroupId:        pulumi.String(tmp12),\n\t\t\tIsOpenPublicIp:         pulumi.Bool(true),\n\t\t\tChargeType:             pulumi.String(\"PostPaid\"),\n\t\t\tVswitchId:              pulumi.String(tmp13),\n\t\t\tUserDefinedEmrEcsRole:  defaultRole.Name,\n\t\t\tSshEnable:              pulumi.Bool(true),\n\t\t\tMasterPwd:              pulumi.String(\"ABCtest1234!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.emr.EmrFunctions;\nimport com.pulumi.alicloud.emr.inputs.GetMainVersionsArgs;\nimport com.pulumi.alicloud.emr.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.emr.inputs.GetDiskTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.emr.Cluster;\nimport com.pulumi.alicloud.emr.ClusterArgs;\nimport com.pulumi.alicloud.emr.inputs.ClusterHostGroupArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EmrFunctions.getMainVersions(GetMainVersionsArgs.builder()\n            .build());\n\n        final var defaultGetInstanceTypes = EmrFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .destinationResource(\"InstanceType\")\n            .clusterType(default_.mainVersions()[0].clusterTypes()[0])\n            .supportLocalStorage(false)\n            .instanceChargeType(\"PostPaid\")\n            .supportNodeTypes(            \n                \"MASTER\",\n                \"CORE\",\n                \"TASK\")\n            .build());\n\n        final var dataDisk = EmrFunctions.getDiskTypes(GetDiskTypesArgs.builder()\n            .destinationResource(\"DataDisk\")\n            .clusterType(default_.mainVersions()[0].clusterTypes()[0])\n            .instanceChargeType(\"PostPaid\")\n            .instanceType(defaultGetInstanceTypes.types()[0].id())\n            .zoneId(defaultGetInstanceTypes.types()[0].zoneId())\n            .build());\n\n        final var systemDisk = EmrFunctions.getDiskTypes(GetDiskTypesArgs.builder()\n            .destinationResource(\"SystemDisk\")\n            .clusterType(default_.mainVersions()[0].clusterTypes()[0])\n            .instanceChargeType(\"PostPaid\")\n            .instanceType(defaultGetInstanceTypes.types()[0].id())\n            .zoneId(defaultGetInstanceTypes.types()[0].zoneId())\n            .build());\n\n        for (var i = 0; i \u003c (vpcId == \"\" ? 1 : 0); i++) {\n            new Network(\"vpc-\" + i, NetworkArgs.builder()\n                .name(vpcName)\n                .cidrBlock(vpcCidr)\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c (securityGroupId == \"\" ? 1 : 0); i++) {\n            new SecurityGroup(\"defaultSecurityGroup-\" + i, SecurityGroupArgs.builder()\n                .name(securityGroupName)\n                .vpcId(vpcId == \"\" ? vpc[0].id() : vpcId)\n                .build());\n\n        \n}\n        // VSwitch Resource for Module\n        for (var i = 0; i \u003c (vswitchId == \"\" ? 1 : 0); i++) {\n            new Switch(\"vswitch-\" + i, SwitchArgs.builder()\n                .availabilityZone(availabilityZone == \"\" ? defaultGetInstanceTypes.types()[0].zoneId() : availabilityZone)\n                .vswitchName(vswitchName)\n                .cidrBlock(vswitchCidr)\n                .vpcId(vpcId == \"\" ? vpc[0].id() : vpcId)\n                .build());\n\n        \n}\n        // Ram role Resource for Module\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .name(ramName)\n            .document(\"\"\"\n    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n            \"\"\")\n            .description(\"this is a role test.\")\n            .force(true)\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .name(\"terraform-resize-cluster-test\")\n            .emrVer(default_.mainVersions()[0].emrVersion())\n            .clusterType(default_.mainVersions()[0].clusterTypes()[0])\n            .hostGroups(            \n                ClusterHostGroupArgs.builder()\n                    .hostGroupName(\"master_group\")\n                    .hostGroupType(\"MASTER\")\n                    .nodeCount(\"2\")\n                    .instanceType(defaultGetInstanceTypes.types()[0].id())\n                    .diskType(dataDisk.types()[0].value())\n                    .diskCapacity(dataDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? dataDisk.types()[0].min() : \"160\")\n                    .diskCount(\"1\")\n                    .sysDiskType(systemDisk.types()[0].value())\n                    .sysDiskCapacity(systemDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? systemDisk.types()[0].min() : \"160\")\n                    .build(),\n                ClusterHostGroupArgs.builder()\n                    .hostGroupName(\"core_group\")\n                    .hostGroupType(\"CORE\")\n                    .nodeCount(\"3\")\n                    .instanceType(defaultGetInstanceTypes.types()[0].id())\n                    .diskType(dataDisk.types()[0].value())\n                    .diskCapacity(dataDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? dataDisk.types()[0].min() : \"160\")\n                    .diskCount(\"4\")\n                    .sysDiskType(systemDisk.types()[0].value())\n                    .sysDiskCapacity(systemDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? systemDisk.types()[0].min() : \"160\")\n                    .build(),\n                ClusterHostGroupArgs.builder()\n                    .hostGroupName(\"task_group\")\n                    .hostGroupType(\"TASK\")\n                    .nodeCount(\"2\")\n                    .instanceType(defaultGetInstanceTypes.types()[0].id())\n                    .diskType(dataDisk.types()[0].value())\n                    .diskCapacity(dataDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? dataDisk.types()[0].min() : \"160\")\n                    .diskCount(\"4\")\n                    .sysDiskType(systemDisk.types()[0].value())\n                    .sysDiskCapacity(systemDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? systemDisk.types()[0].min() : \"160\")\n                    .build())\n            .highAvailabilityEnable(true)\n            .zoneId(defaultGetInstanceTypes.types()[0].zoneId())\n            .securityGroupId(securityGroupId == \"\" ? defaultSecurityGroup[0].id() : securityGroupId)\n            .isOpenPublicIp(true)\n            .chargeType(\"PostPaid\")\n            .vswitchId(vswitchId == \"\" ? vswitch[0].id() : vswitchId)\n            .userDefinedEmrEcsRole(defaultRole.name())\n            .sshEnable(true)\n            .masterPwd(\"ABCtest1234!\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### 4. Create a emr gateway cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.emr.getMainVersions({});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.emr.getInstanceTypes({\n    destinationResource: \"InstanceType\",\n    clusterType: _default.mainVersions?.[0]?.clusterTypes?.[0],\n    supportLocalStorage: false,\n    instanceChargeType: \"PostPaid\",\n    supportNodeTypes: [\"GATEWAY\"],\n}));\nconst dataDisk = Promise.all([_default, defaultGetInstanceTypes, defaultGetInstanceTypes]).then(([_default, defaultGetInstanceTypes, defaultGetInstanceTypes1]) =\u003e alicloud.emr.getDiskTypes({\n    destinationResource: \"DataDisk\",\n    clusterType: _default.mainVersions?.[0]?.clusterTypes?.[0],\n    instanceChargeType: \"PostPaid\",\n    instanceType: defaultGetInstanceTypes.types?.[0]?.id,\n    zoneId: defaultGetInstanceTypes1.types?.[0]?.zoneId,\n}));\nconst systemDisk = Promise.all([_default, defaultGetInstanceTypes, defaultGetInstanceTypes]).then(([_default, defaultGetInstanceTypes, defaultGetInstanceTypes1]) =\u003e alicloud.emr.getDiskTypes({\n    destinationResource: \"SystemDisk\",\n    clusterType: _default.mainVersions?.[0]?.clusterTypes?.[0],\n    instanceChargeType: \"PostPaid\",\n    instanceType: defaultGetInstanceTypes.types?.[0]?.id,\n    zoneId: defaultGetInstanceTypes1.types?.[0]?.zoneId,\n}));\nconst vpc: alicloud.vpc.Network[] = [];\nfor (const range = {value: 0}; range.value \u003c (vpcId == \"\" ? 1 : 0); range.value++) {\n    vpc.push(new alicloud.vpc.Network(`vpc-${range.value}`, {\n        name: vpcName,\n        cidrBlock: vpcCidr,\n    }));\n}\nconst defaultSecurityGroup: alicloud.ecs.SecurityGroup[] = [];\nfor (const range = {value: 0}; range.value \u003c (securityGroupId == \"\" ? 1 : 0); range.value++) {\n    defaultSecurityGroup.push(new alicloud.ecs.SecurityGroup(`default-${range.value}`, {\n        name: securityGroupName,\n        vpcId: vpcId == \"\" ? vpc[0].id : vpcId,\n    }));\n}\n// VSwitch Resource for Module\nconst vswitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c (vswitchId == \"\" ? 1 : 0); range.value++) {\n    vswitch.push(new alicloud.vpc.Switch(`vswitch-${range.value}`, {\n        availabilityZone: availabilityZone == \"\" ? defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.zoneId) : availabilityZone,\n        vswitchName: vswitchName,\n        cidrBlock: vswitchCidr,\n        vpcId: vpcId == \"\" ? vpc[0].id : vpcId,\n    }));\n}\n// Ram role Resource for Module\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    name: ramName,\n    document: `    {\n        \\\\\"Statement\\\\\": [\n        {\n            \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n            \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n            \\\\\"Principal\\\\\": {\n            \\\\\"Service\\\\\": [\n                \\\\\"emr.aliyuncs.com\\\\\",\n                \\\\\"ecs.aliyuncs.com\\\\\"\n            ]\n            }\n        }\n        ],\n        \\\\\"Version\\\\\": \\\\\"1\\\\\"\n    }\n`,\n    description: \"this is a role test.\",\n    force: true,\n});\nconst gateway = new alicloud.emr.Cluster(\"gateway\", {\n    name: \"terraform-gateway-cluster-test\",\n    emrVer: _default.then(_default =\u003e _default.mainVersions?.[0]?.emrVersion),\n    clusterType: \"GATEWAY\",\n    hostGroups: [{\n        hostGroupName: \"master_group\",\n        hostGroupType: \"GATEWAY\",\n        nodeCount: \"1\",\n        instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.id),\n        diskType: dataDisk.then(dataDisk =\u003e dataDisk.types?.[0]?.value),\n        diskCapacity: Promise.all([dataDisk, dataDisk]).then(([dataDisk, dataDisk1]) =\u003e dataDisk.types?.[0]?.min \u003e 160 ? dataDisk1.types?.[0]?.min : 160),\n        diskCount: \"1\",\n        sysDiskType: systemDisk.then(systemDisk =\u003e systemDisk.types?.[0]?.value),\n        sysDiskCapacity: Promise.all([systemDisk, systemDisk]).then(([systemDisk, systemDisk1]) =\u003e systemDisk.types?.[0]?.min \u003e 160 ? systemDisk1.types?.[0]?.min : 160),\n    }],\n    highAvailabilityEnable: true,\n    zoneId: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.zoneId),\n    securityGroupId: securityGroupId == \"\" ? defaultSecurityGroup[0].id : securityGroupId,\n    isOpenPublicIp: true,\n    chargeType: \"PostPaid\",\n    vswitchId: vswitchId == \"\" ? vswitch[0].id : vswitchId,\n    userDefinedEmrEcsRole: defaultRole.name,\n    sshEnable: true,\n    masterPwd: \"ABCtest1234!\",\n    relatedClusterId: relatedClusterId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.emr.get_main_versions()\ndefault_get_instance_types = alicloud.emr.get_instance_types(destination_resource=\"InstanceType\",\n    cluster_type=default.main_versions[0].cluster_types[0],\n    support_local_storage=False,\n    instance_charge_type=\"PostPaid\",\n    support_node_types=[\"GATEWAY\"])\ndata_disk = alicloud.emr.get_disk_types(destination_resource=\"DataDisk\",\n    cluster_type=default.main_versions[0].cluster_types[0],\n    instance_charge_type=\"PostPaid\",\n    instance_type=default_get_instance_types.types[0].id,\n    zone_id=default_get_instance_types.types[0].zone_id)\nsystem_disk = alicloud.emr.get_disk_types(destination_resource=\"SystemDisk\",\n    cluster_type=default.main_versions[0].cluster_types[0],\n    instance_charge_type=\"PostPaid\",\n    instance_type=default_get_instance_types.types[0].id,\n    zone_id=default_get_instance_types.types[0].zone_id)\nvpc = []\nfor range in [{\"value\": i} for i in range(0, 1 if vpc_id ==  else 0)]:\n    vpc.append(alicloud.vpc.Network(f\"vpc-{range['value']}\",\n        name=vpc_name,\n        cidr_block=vpc_cidr))\ndefault_security_group = []\nfor range in [{\"value\": i} for i in range(0, 1 if security_group_id ==  else 0)]:\n    default_security_group.append(alicloud.ecs.SecurityGroup(f\"default-{range['value']}\",\n        name=security_group_name,\n        vpc_id=vpc[0].id if vpc_id == \"\" else vpc_id))\n# VSwitch Resource for Module\nvswitch = []\nfor range in [{\"value\": i} for i in range(0, 1 if vswitch_id ==  else 0)]:\n    vswitch.append(alicloud.vpc.Switch(f\"vswitch-{range['value']}\",\n        availability_zone=default_get_instance_types.types[0].zone_id if availability_zone == \"\" else availability_zone,\n        vswitch_name=vswitch_name,\n        cidr_block=vswitch_cidr,\n        vpc_id=vpc[0].id if vpc_id == \"\" else vpc_id))\n# Ram role Resource for Module\ndefault_role = alicloud.ram.Role(\"default\",\n    name=ram_name,\n    document=\"\"\"    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n\"\"\",\n    description=\"this is a role test.\",\n    force=True)\ngateway = alicloud.emr.Cluster(\"gateway\",\n    name=\"terraform-gateway-cluster-test\",\n    emr_ver=default.main_versions[0].emr_version,\n    cluster_type=\"GATEWAY\",\n    host_groups=[{\n        \"host_group_name\": \"master_group\",\n        \"host_group_type\": \"GATEWAY\",\n        \"node_count\": \"1\",\n        \"instance_type\": default_get_instance_types.types[0].id,\n        \"disk_type\": data_disk.types[0].value,\n        \"disk_capacity\": data_disk.types[0].min if data_disk.types[0].min \u003e 160 else \"160\",\n        \"disk_count\": \"1\",\n        \"sys_disk_type\": system_disk.types[0].value,\n        \"sys_disk_capacity\": system_disk.types[0].min if system_disk.types[0].min \u003e 160 else \"160\",\n    }],\n    high_availability_enable=True,\n    zone_id=default_get_instance_types.types[0].zone_id,\n    security_group_id=default_security_group[0].id if security_group_id == \"\" else security_group_id,\n    is_open_public_ip=True,\n    charge_type=\"PostPaid\",\n    vswitch_id=vswitch[0].id if vswitch_id == \"\" else vswitch_id,\n    user_defined_emr_ecs_role=default_role.name,\n    ssh_enable=True,\n    master_pwd=\"ABCtest1234!\",\n    related_cluster_id=related_cluster_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Emr.GetMainVersions.Invoke();\n\n    var defaultGetInstanceTypes = AliCloud.Emr.GetInstanceTypes.Invoke(new()\n    {\n        DestinationResource = \"InstanceType\",\n        ClusterType = @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0]),\n        SupportLocalStorage = false,\n        InstanceChargeType = \"PostPaid\",\n        SupportNodeTypes = new[]\n        {\n            \"GATEWAY\",\n        },\n    });\n\n    var dataDisk = AliCloud.Emr.GetDiskTypes.Invoke(new()\n    {\n        DestinationResource = \"DataDisk\",\n        ClusterType = @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0]),\n        InstanceChargeType = \"PostPaid\",\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId),\n    });\n\n    var systemDisk = AliCloud.Emr.GetDiskTypes.Invoke(new()\n    {\n        DestinationResource = \"SystemDisk\",\n        ClusterType = @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0]),\n        InstanceChargeType = \"PostPaid\",\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId),\n    });\n\n    var vpc = new List\u003cAliCloud.Vpc.Network\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (vpcId == \"\" ? 1 : 0); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        vpc.Add(new AliCloud.Vpc.Network($\"vpc-{range.Value}\", new()\n        {\n            Name = vpcName,\n            CidrBlock = vpcCidr,\n        }));\n    }\n    var defaultSecurityGroup = new List\u003cAliCloud.Ecs.SecurityGroup\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (securityGroupId == \"\" ? 1 : 0); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSecurityGroup.Add(new AliCloud.Ecs.SecurityGroup($\"default-{range.Value}\", new()\n        {\n            Name = securityGroupName,\n            VpcId = vpcId == \"\" ? vpc[0].Id : vpcId,\n        }));\n    }\n    // VSwitch Resource for Module\n    var vswitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (vswitchId == \"\" ? 1 : 0); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        vswitch.Add(new AliCloud.Vpc.Switch($\"vswitch-{range.Value}\", new()\n        {\n            AvailabilityZone = availabilityZone == \"\" ? defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId) : availabilityZone,\n            VswitchName = vswitchName,\n            CidrBlock = vswitchCidr,\n            VpcId = vpcId == \"\" ? vpc[0].Id : vpcId,\n        }));\n    }\n    // Ram role Resource for Module\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = ramName,\n        Document = @\"    {\n        \\\"\"Statement\\\"\": [\n        {\n            \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n            \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n            \\\"\"Principal\\\"\": {\n            \\\"\"Service\\\"\": [\n                \\\"\"emr.aliyuncs.com\\\"\",\n                \\\"\"ecs.aliyuncs.com\\\"\"\n            ]\n            }\n        }\n        ],\n        \\\"\"Version\\\"\": \\\"\"1\\\"\"\n    }\n\",\n        Description = \"this is a role test.\",\n        Force = true,\n    });\n\n    var gateway = new AliCloud.Emr.Cluster(\"gateway\", new()\n    {\n        Name = \"terraform-gateway-cluster-test\",\n        EmrVer = @default.Apply(@default =\u003e @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.EmrVersion)),\n        ClusterType = \"GATEWAY\",\n        HostGroups = new[]\n        {\n            new AliCloud.Emr.Inputs.ClusterHostGroupArgs\n            {\n                HostGroupName = \"master_group\",\n                HostGroupType = \"GATEWAY\",\n                NodeCount = \"1\",\n                InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n                DiskType = dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                DiskCapacity = Output.Tuple(dataDisk, dataDisk).Apply(values =\u003e\n                {\n                    var dataDisk = values.Item1;\n                    var dataDisk1 = values.Item2;\n                    return dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? dataDisk1.Types[0]?.Min : 160;\n                }),\n                DiskCount = \"1\",\n                SysDiskType = systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                SysDiskCapacity = Output.Tuple(systemDisk, systemDisk).Apply(values =\u003e\n                {\n                    var systemDisk = values.Item1;\n                    var systemDisk1 = values.Item2;\n                    return systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? systemDisk1.Types[0]?.Min : 160;\n                }),\n            },\n        },\n        HighAvailabilityEnable = true,\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId),\n        SecurityGroupId = securityGroupId == \"\" ? defaultSecurityGroup[0].Id : securityGroupId,\n        IsOpenPublicIp = true,\n        ChargeType = \"PostPaid\",\n        VswitchId = vswitchId == \"\" ? vswitch[0].Id : vswitchId,\n        UserDefinedEmrEcsRole = defaultRole.Name,\n        SshEnable = true,\n        MasterPwd = \"ABCtest1234!\",\n        RelatedClusterId = relatedClusterId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/emr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := emr.GetMainVersions(ctx, \u0026emr.GetMainVersionsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := emr.GetInstanceTypes(ctx, \u0026emr.GetInstanceTypesArgs{\n\t\t\tDestinationResource: \"InstanceType\",\n\t\t\tClusterType:         _default.MainVersions[0].ClusterTypes[0],\n\t\t\tSupportLocalStorage: pulumi.BoolRef(false),\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tSupportNodeTypes: []string{\n\t\t\t\t\"GATEWAY\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdataDisk, err := emr.GetDiskTypes(ctx, \u0026emr.GetDiskTypesArgs{\n\t\t\tDestinationResource: \"DataDisk\",\n\t\t\tClusterType:         _default.MainVersions[0].ClusterTypes[0],\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tInstanceType:        defaultGetInstanceTypes.Types[0].Id,\n\t\t\tZoneId:              pulumi.StringRef(defaultGetInstanceTypes.Types[0].ZoneId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsystemDisk, err := emr.GetDiskTypes(ctx, \u0026emr.GetDiskTypesArgs{\n\t\t\tDestinationResource: \"SystemDisk\",\n\t\t\tClusterType:         _default.MainVersions[0].ClusterTypes[0],\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tInstanceType:        defaultGetInstanceTypes.Types[0].Id,\n\t\t\tZoneId:              pulumi.StringRef(defaultGetInstanceTypes.Types[0].ZoneId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp0 float64\n\t\tif vpcId == \"\" {\n\t\t\ttmp0 = 1\n\t\t} else {\n\t\t\ttmp0 = 0\n\t\t}\n\t\tvar vpc []*vpc.Network\n\t\tfor index := 0; index \u003c tmp0; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := vpc.NewNetwork(ctx, fmt.Sprintf(\"vpc-%v\", key0), \u0026vpc.NetworkArgs{\n\t\t\t\tName:      pulumi.Any(vpcName),\n\t\t\t\tCidrBlock: pulumi.Any(vpcCidr),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tvpc = append(vpc, __res)\n\t\t}\n\t\tvar tmp1 pulumi.String\n\t\tif vpcId == \"\" {\n\t\t\ttmp1 = vpc[0].ID()\n\t\t} else {\n\t\t\ttmp1 = pulumi.Any(vpcId)\n\t\t}\n\t\tvar tmp2 float64\n\t\tif securityGroupId == \"\" {\n\t\t\ttmp2 = 1\n\t\t} else {\n\t\t\ttmp2 = 0\n\t\t}\n\t\tvar defaultSecurityGroup []*ecs.SecurityGroup\n\t\tfor index := 0; index \u003c tmp2; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := ecs.NewSecurityGroup(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026ecs.SecurityGroupArgs{\n\t\t\t\tName:  pulumi.Any(securityGroupName),\n\t\t\t\tVpcId: pulumi.String(tmp1),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultSecurityGroup = append(defaultSecurityGroup, __res)\n\t\t}\n\t\tvar tmp3 pulumi.String\n\t\tif availabilityZone == \"\" {\n\t\t\ttmp3 = pulumi.String(defaultGetInstanceTypes.Types[0].ZoneId)\n\t\t} else {\n\t\t\ttmp3 = pulumi.Any(availabilityZone)\n\t\t}\n\t\tvar tmp4 pulumi.String\n\t\tif vpcId == \"\" {\n\t\t\ttmp4 = vpc[0].ID()\n\t\t} else {\n\t\t\ttmp4 = pulumi.Any(vpcId)\n\t\t}\n\t\t// VSwitch Resource for Module\n\t\tvar tmp5 float64\n\t\tif vswitchId == \"\" {\n\t\t\ttmp5 = 1\n\t\t} else {\n\t\t\ttmp5 = 0\n\t\t}\n\t\tvar vswitch []*vpc.Switch\n\t\tfor index := 0; index \u003c tmp5; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"vswitch-%v\", key0), \u0026vpc.SwitchArgs{\n\t\t\t\tAvailabilityZone: pulumi.String(tmp3),\n\t\t\t\tVswitchName:      pulumi.Any(vswitchName),\n\t\t\t\tCidrBlock:        pulumi.Any(vswitchCidr),\n\t\t\t\tVpcId:            pulumi.String(tmp4),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tvswitch = append(vswitch, __res)\n\t\t}\n\t\t// Ram role Resource for Module\n\t\tdefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.Any(ramName),\n\t\t\tDocument: pulumi.String(`    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n`),\n\t\t\tDescription: pulumi.String(\"this is a role test.\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp6 pulumi.String\n\t\tif dataDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp6 = pulumi.Int(dataDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp6 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp7 pulumi.String\n\t\tif systemDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp7 = pulumi.Int(systemDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp7 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp8 pulumi.String\n\t\tif securityGroupId == \"\" {\n\t\t\ttmp8 = defaultSecurityGroup[0].ID()\n\t\t} else {\n\t\t\ttmp8 = pulumi.Any(securityGroupId)\n\t\t}\n\t\tvar tmp9 pulumi.String\n\t\tif vswitchId == \"\" {\n\t\t\ttmp9 = vswitch[0].ID()\n\t\t} else {\n\t\t\ttmp9 = pulumi.Any(vswitchId)\n\t\t}\n\t\t_, err = emr.NewCluster(ctx, \"gateway\", \u0026emr.ClusterArgs{\n\t\t\tName:        pulumi.String(\"terraform-gateway-cluster-test\"),\n\t\t\tEmrVer:      pulumi.String(_default.MainVersions[0].EmrVersion),\n\t\t\tClusterType: pulumi.String(\"GATEWAY\"),\n\t\t\tHostGroups: emr.ClusterHostGroupArray{\n\t\t\t\t\u0026emr.ClusterHostGroupArgs{\n\t\t\t\t\tHostGroupName:   pulumi.String(\"master_group\"),\n\t\t\t\t\tHostGroupType:   pulumi.String(\"GATEWAY\"),\n\t\t\t\t\tNodeCount:       pulumi.String(\"1\"),\n\t\t\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.Types[0].Id),\n\t\t\t\t\tDiskType:        pulumi.String(dataDisk.Types[0].Value),\n\t\t\t\t\tDiskCapacity:    pulumi.String(tmp6),\n\t\t\t\t\tDiskCount:       pulumi.String(\"1\"),\n\t\t\t\t\tSysDiskType:     pulumi.String(systemDisk.Types[0].Value),\n\t\t\t\t\tSysDiskCapacity: pulumi.String(tmp7),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHighAvailabilityEnable: pulumi.Bool(true),\n\t\t\tZoneId:                 pulumi.String(defaultGetInstanceTypes.Types[0].ZoneId),\n\t\t\tSecurityGroupId:        pulumi.String(tmp8),\n\t\t\tIsOpenPublicIp:         pulumi.Bool(true),\n\t\t\tChargeType:             pulumi.String(\"PostPaid\"),\n\t\t\tVswitchId:              pulumi.String(tmp9),\n\t\t\tUserDefinedEmrEcsRole:  defaultRole.Name,\n\t\t\tSshEnable:              pulumi.Bool(true),\n\t\t\tMasterPwd:              pulumi.String(\"ABCtest1234!\"),\n\t\t\tRelatedClusterId:       pulumi.Any(relatedClusterId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.emr.EmrFunctions;\nimport com.pulumi.alicloud.emr.inputs.GetMainVersionsArgs;\nimport com.pulumi.alicloud.emr.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.emr.inputs.GetDiskTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.emr.Cluster;\nimport com.pulumi.alicloud.emr.ClusterArgs;\nimport com.pulumi.alicloud.emr.inputs.ClusterHostGroupArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EmrFunctions.getMainVersions(GetMainVersionsArgs.builder()\n            .build());\n\n        final var defaultGetInstanceTypes = EmrFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .destinationResource(\"InstanceType\")\n            .clusterType(default_.mainVersions()[0].clusterTypes()[0])\n            .supportLocalStorage(false)\n            .instanceChargeType(\"PostPaid\")\n            .supportNodeTypes(\"GATEWAY\")\n            .build());\n\n        final var dataDisk = EmrFunctions.getDiskTypes(GetDiskTypesArgs.builder()\n            .destinationResource(\"DataDisk\")\n            .clusterType(default_.mainVersions()[0].clusterTypes()[0])\n            .instanceChargeType(\"PostPaid\")\n            .instanceType(defaultGetInstanceTypes.types()[0].id())\n            .zoneId(defaultGetInstanceTypes.types()[0].zoneId())\n            .build());\n\n        final var systemDisk = EmrFunctions.getDiskTypes(GetDiskTypesArgs.builder()\n            .destinationResource(\"SystemDisk\")\n            .clusterType(default_.mainVersions()[0].clusterTypes()[0])\n            .instanceChargeType(\"PostPaid\")\n            .instanceType(defaultGetInstanceTypes.types()[0].id())\n            .zoneId(defaultGetInstanceTypes.types()[0].zoneId())\n            .build());\n\n        for (var i = 0; i \u003c (vpcId == \"\" ? 1 : 0); i++) {\n            new Network(\"vpc-\" + i, NetworkArgs.builder()\n                .name(vpcName)\n                .cidrBlock(vpcCidr)\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c (securityGroupId == \"\" ? 1 : 0); i++) {\n            new SecurityGroup(\"defaultSecurityGroup-\" + i, SecurityGroupArgs.builder()\n                .name(securityGroupName)\n                .vpcId(vpcId == \"\" ? vpc[0].id() : vpcId)\n                .build());\n\n        \n}\n        // VSwitch Resource for Module\n        for (var i = 0; i \u003c (vswitchId == \"\" ? 1 : 0); i++) {\n            new Switch(\"vswitch-\" + i, SwitchArgs.builder()\n                .availabilityZone(availabilityZone == \"\" ? defaultGetInstanceTypes.types()[0].zoneId() : availabilityZone)\n                .vswitchName(vswitchName)\n                .cidrBlock(vswitchCidr)\n                .vpcId(vpcId == \"\" ? vpc[0].id() : vpcId)\n                .build());\n\n        \n}\n        // Ram role Resource for Module\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .name(ramName)\n            .document(\"\"\"\n    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n            \"\"\")\n            .description(\"this is a role test.\")\n            .force(true)\n            .build());\n\n        var gateway = new Cluster(\"gateway\", ClusterArgs.builder()\n            .name(\"terraform-gateway-cluster-test\")\n            .emrVer(default_.mainVersions()[0].emrVersion())\n            .clusterType(\"GATEWAY\")\n            .hostGroups(ClusterHostGroupArgs.builder()\n                .hostGroupName(\"master_group\")\n                .hostGroupType(\"GATEWAY\")\n                .nodeCount(\"1\")\n                .instanceType(defaultGetInstanceTypes.types()[0].id())\n                .diskType(dataDisk.types()[0].value())\n                .diskCapacity(dataDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? dataDisk.types()[0].min() : \"160\")\n                .diskCount(\"1\")\n                .sysDiskType(systemDisk.types()[0].value())\n                .sysDiskCapacity(systemDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? systemDisk.types()[0].min() : \"160\")\n                .build())\n            .highAvailabilityEnable(true)\n            .zoneId(defaultGetInstanceTypes.types()[0].zoneId())\n            .securityGroupId(securityGroupId == \"\" ? defaultSecurityGroup[0].id() : securityGroupId)\n            .isOpenPublicIp(true)\n            .chargeType(\"PostPaid\")\n            .vswitchId(vswitchId == \"\" ? vswitch[0].id() : vswitchId)\n            .userDefinedEmrEcsRole(defaultRole.name())\n            .sshEnable(true)\n            .masterPwd(\"ABCtest1234!\")\n            .relatedClusterId(relatedClusterId)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAliclioud E-MapReduce cluster can be imported using the id e.g.\n\n```sh\n$ pulumi import alicloud:emr/cluster:Cluster default C-B47FB8FE96C67XXXX\n```\n\n","properties":{"bootstrapActions":{"type":"array","items":{"$ref":"#/types/alicloud:emr/ClusterBootstrapAction:ClusterBootstrapAction"},"description":"Boot action parameters.\n"},"chargeType":{"type":"string","description":"Charge Type for this cluster. Supported value: PostPaid or PrePaid. Default value: PostPaid.\n"},"clusterType":{"type":"string","description":"EMR Cluster Type, e.g. HADOOP, KAFKA, DRUID, GATEWAY etc. You can find all valid EMR cluster type in emr web console. Supported 'GATEWAY' available in 1.61.0+.\n"},"configs":{"type":"array","items":{"$ref":"#/types/alicloud:emr/ClusterConfig:ClusterConfig"},"description":"The custom configurations of emr-cluster service.\n"},"depositType":{"type":"string","description":"Cluster deposit type, HALF_MANAGED or FULL_MANAGED.\n"},"easEnable":{"type":"boolean","description":"High security cluster (true) or not. Default value is false.\n"},"emrVer":{"type":"string","description":"EMR Version, e.g. EMR-3.22.0. You can find the all valid EMR Version in emr web console.\n"},"highAvailabilityEnable":{"type":"boolean","description":"High Available for HDFS and YARN. If this is set true, MASTER group must have two nodes.\n"},"hostGroups":{"type":"array","items":{"$ref":"#/types/alicloud:emr/ClusterHostGroup:ClusterHostGroup"},"description":"Groups of Host, You can specify MASTER as a group, CORE as a group (just like the above example).\n"},"isOpenPublicIp":{"type":"boolean","description":"Whether the MASTER node has a public IP address enabled. Default value is false.\n"},"keyPairName":{"type":"string","description":"Ssh key pair.\n"},"masterPwd":{"type":"string","description":"Master ssh password.\n"},"metaStoreConf":{"$ref":"#/types/alicloud:emr/ClusterMetaStoreConf:ClusterMetaStoreConf","description":"The configuration of emr-cluster service component metadata storage. If meta store type is ’user_rds’, this should be specified.\n"},"metaStoreType":{"type":"string","description":"The type of emr-cluster service component metadata storage. ’dlf’ or ’local’ or ’user_rds’ .\n"},"modifyClusterServiceConfig":{"$ref":"#/types/alicloud:emr/ClusterModifyClusterServiceConfig:ClusterModifyClusterServiceConfig","description":"The configurations of emr-cluster service modification after cluster created.\n"},"name":{"type":"string","description":"The name of emr cluster. The name length must be less than 64. Supported characters: chinese character, english character, number, \"-\", \"_\".\n"},"optionSoftwareLists":{"type":"array","items":{"type":"string"},"description":"Optional software list.\n"},"period":{"type":"integer","description":"If charge type is PrePaid, this should be specified, unit is month. Supported value: 1、2、3、4、5、6、7、8、9、12、24、36.\n"},"relatedClusterId":{"type":"string","description":"This specify the related cluster id, if this cluster is a Gateway.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the emr-cluster belongs.\n"},"securityGroupId":{"type":"string","description":"Security Group ID for Cluster, you can also specify this key for each host group.\n"},"sshEnable":{"type":"boolean","description":"If this is set true, we can ssh into cluster. Default value is false.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"useLocalMetadb":{"type":"boolean","description":"Use local metadb. Default is false.\n"},"userDefinedEmrEcsRole":{"type":"string","description":"Alicloud EMR uses roles to perform actions on your behalf when provisioning cluster resources, running applications, dynamically scaling resources. EMR uses the following roles when interacting with other Alicloud services. Default value is AliyunEmrEcsDefaultRole.\n"},"vswitchId":{"type":"string","description":"Global vswitch id, you can also specify it in host group.\n"},"zoneId":{"type":"string","description":"Zone ID, e.g. cn-huhehaote-a\n"}},"required":["clusterType","emrVer","metaStoreType","name","tags","zoneId"],"inputProperties":{"bootstrapActions":{"type":"array","items":{"$ref":"#/types/alicloud:emr/ClusterBootstrapAction:ClusterBootstrapAction"},"description":"Boot action parameters.\n"},"chargeType":{"type":"string","description":"Charge Type for this cluster. Supported value: PostPaid or PrePaid. Default value: PostPaid.\n","willReplaceOnChanges":true},"clusterType":{"type":"string","description":"EMR Cluster Type, e.g. HADOOP, KAFKA, DRUID, GATEWAY etc. You can find all valid EMR cluster type in emr web console. Supported 'GATEWAY' available in 1.61.0+.\n","willReplaceOnChanges":true},"configs":{"type":"array","items":{"$ref":"#/types/alicloud:emr/ClusterConfig:ClusterConfig"},"description":"The custom configurations of emr-cluster service.\n"},"depositType":{"type":"string","description":"Cluster deposit type, HALF_MANAGED or FULL_MANAGED.\n","willReplaceOnChanges":true},"easEnable":{"type":"boolean","description":"High security cluster (true) or not. Default value is false.\n","willReplaceOnChanges":true},"emrVer":{"type":"string","description":"EMR Version, e.g. EMR-3.22.0. You can find the all valid EMR Version in emr web console.\n","willReplaceOnChanges":true},"highAvailabilityEnable":{"type":"boolean","description":"High Available for HDFS and YARN. If this is set true, MASTER group must have two nodes.\n","willReplaceOnChanges":true},"hostGroups":{"type":"array","items":{"$ref":"#/types/alicloud:emr/ClusterHostGroup:ClusterHostGroup"},"description":"Groups of Host, You can specify MASTER as a group, CORE as a group (just like the above example).\n"},"isOpenPublicIp":{"type":"boolean","description":"Whether the MASTER node has a public IP address enabled. Default value is false.\n","willReplaceOnChanges":true},"keyPairName":{"type":"string","description":"Ssh key pair.\n","willReplaceOnChanges":true},"masterPwd":{"type":"string","description":"Master ssh password.\n","willReplaceOnChanges":true},"metaStoreConf":{"$ref":"#/types/alicloud:emr/ClusterMetaStoreConf:ClusterMetaStoreConf","description":"The configuration of emr-cluster service component metadata storage. If meta store type is ’user_rds’, this should be specified.\n"},"metaStoreType":{"type":"string","description":"The type of emr-cluster service component metadata storage. ’dlf’ or ’local’ or ’user_rds’ .\n","willReplaceOnChanges":true},"modifyClusterServiceConfig":{"$ref":"#/types/alicloud:emr/ClusterModifyClusterServiceConfig:ClusterModifyClusterServiceConfig","description":"The configurations of emr-cluster service modification after cluster created.\n"},"name":{"type":"string","description":"The name of emr cluster. The name length must be less than 64. Supported characters: chinese character, english character, number, \"-\", \"_\".\n"},"optionSoftwareLists":{"type":"array","items":{"type":"string"},"description":"Optional software list.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"If charge type is PrePaid, this should be specified, unit is month. Supported value: 1、2、3、4、5、6、7、8、9、12、24、36.\n"},"relatedClusterId":{"type":"string","description":"This specify the related cluster id, if this cluster is a Gateway.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The Id of resource group which the emr-cluster belongs.\n"},"securityGroupId":{"type":"string","description":"Security Group ID for Cluster, you can also specify this key for each host group.\n","willReplaceOnChanges":true},"sshEnable":{"type":"boolean","description":"If this is set true, we can ssh into cluster. Default value is false.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"useLocalMetadb":{"type":"boolean","description":"Use local metadb. Default is false.\n","willReplaceOnChanges":true},"userDefinedEmrEcsRole":{"type":"string","description":"Alicloud EMR uses roles to perform actions on your behalf when provisioning cluster resources, running applications, dynamically scaling resources. EMR uses the following roles when interacting with other Alicloud services. Default value is AliyunEmrEcsDefaultRole.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"Global vswitch id, you can also specify it in host group.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"Zone ID, e.g. cn-huhehaote-a\n","willReplaceOnChanges":true}},"requiredInputs":["clusterType","emrVer","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering Cluster resources.\n","properties":{"bootstrapActions":{"type":"array","items":{"$ref":"#/types/alicloud:emr/ClusterBootstrapAction:ClusterBootstrapAction"},"description":"Boot action parameters.\n"},"chargeType":{"type":"string","description":"Charge Type for this cluster. Supported value: PostPaid or PrePaid. Default value: PostPaid.\n","willReplaceOnChanges":true},"clusterType":{"type":"string","description":"EMR Cluster Type, e.g. HADOOP, KAFKA, DRUID, GATEWAY etc. You can find all valid EMR cluster type in emr web console. Supported 'GATEWAY' available in 1.61.0+.\n","willReplaceOnChanges":true},"configs":{"type":"array","items":{"$ref":"#/types/alicloud:emr/ClusterConfig:ClusterConfig"},"description":"The custom configurations of emr-cluster service.\n"},"depositType":{"type":"string","description":"Cluster deposit type, HALF_MANAGED or FULL_MANAGED.\n","willReplaceOnChanges":true},"easEnable":{"type":"boolean","description":"High security cluster (true) or not. Default value is false.\n","willReplaceOnChanges":true},"emrVer":{"type":"string","description":"EMR Version, e.g. EMR-3.22.0. You can find the all valid EMR Version in emr web console.\n","willReplaceOnChanges":true},"highAvailabilityEnable":{"type":"boolean","description":"High Available for HDFS and YARN. If this is set true, MASTER group must have two nodes.\n","willReplaceOnChanges":true},"hostGroups":{"type":"array","items":{"$ref":"#/types/alicloud:emr/ClusterHostGroup:ClusterHostGroup"},"description":"Groups of Host, You can specify MASTER as a group, CORE as a group (just like the above example).\n"},"isOpenPublicIp":{"type":"boolean","description":"Whether the MASTER node has a public IP address enabled. Default value is false.\n","willReplaceOnChanges":true},"keyPairName":{"type":"string","description":"Ssh key pair.\n","willReplaceOnChanges":true},"masterPwd":{"type":"string","description":"Master ssh password.\n","willReplaceOnChanges":true},"metaStoreConf":{"$ref":"#/types/alicloud:emr/ClusterMetaStoreConf:ClusterMetaStoreConf","description":"The configuration of emr-cluster service component metadata storage. If meta store type is ’user_rds’, this should be specified.\n"},"metaStoreType":{"type":"string","description":"The type of emr-cluster service component metadata storage. ’dlf’ or ’local’ or ’user_rds’ .\n","willReplaceOnChanges":true},"modifyClusterServiceConfig":{"$ref":"#/types/alicloud:emr/ClusterModifyClusterServiceConfig:ClusterModifyClusterServiceConfig","description":"The configurations of emr-cluster service modification after cluster created.\n"},"name":{"type":"string","description":"The name of emr cluster. The name length must be less than 64. Supported characters: chinese character, english character, number, \"-\", \"_\".\n"},"optionSoftwareLists":{"type":"array","items":{"type":"string"},"description":"Optional software list.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"If charge type is PrePaid, this should be specified, unit is month. Supported value: 1、2、3、4、5、6、7、8、9、12、24、36.\n"},"relatedClusterId":{"type":"string","description":"This specify the related cluster id, if this cluster is a Gateway.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The Id of resource group which the emr-cluster belongs.\n"},"securityGroupId":{"type":"string","description":"Security Group ID for Cluster, you can also specify this key for each host group.\n","willReplaceOnChanges":true},"sshEnable":{"type":"boolean","description":"If this is set true, we can ssh into cluster. Default value is false.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"useLocalMetadb":{"type":"boolean","description":"Use local metadb. Default is false.\n","willReplaceOnChanges":true},"userDefinedEmrEcsRole":{"type":"string","description":"Alicloud EMR uses roles to perform actions on your behalf when provisioning cluster resources, running applications, dynamically scaling resources. EMR uses the following roles when interacting with other Alicloud services. Default value is AliyunEmrEcsDefaultRole.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"Global vswitch id, you can also specify it in host group.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"Zone ID, e.g. cn-huhehaote-a\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:emrv2/cluster:Cluster":{"description":"Provides a EMR cluster resource. This resource is based on EMR's new version OpenAPI.\n\nFor information about EMR New and how to use it, see [Add a domain](https://www.alibabacloud.com/help/doc-detail/28068.htm).\n\n\u003e **NOTE:** Available since v1.199.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultGetKeys = alicloud.kms.getKeys({\n    status: \"Enabled\",\n});\nconst defaultGetZones = alicloud.getZones({\n    availableInstanceType: \"ecs.g7.xlarge\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultEcsKeyPair = new alicloud.ecs.EcsKeyPair(\"default\", {keyPairName: `${name}-${defaultInteger.result}`});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    name: name,\n    document: `    {\n        \\\\\"Statement\\\\\": [\n        {\n            \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n            \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n            \\\\\"Principal\\\\\": {\n            \\\\\"Service\\\\\": [\n                \\\\\"emr.aliyuncs.com\\\\\",\n                \\\\\"ecs.aliyuncs.com\\\\\"\n            ]\n            }\n        }\n        ],\n        \\\\\"Version\\\\\": \\\\\"1\\\\\"\n    }\n`,\n    description: \"this is a role example.\",\n    force: true,\n});\nconst defaultCluster = new alicloud.emrv2.Cluster(\"default\", {\n    nodeGroups: [\n        {\n            vswitchIds: [defaultSwitch.id],\n            instanceTypes: [\"ecs.g7.xlarge\"],\n            nodeCount: 1,\n            spotInstanceRemedy: false,\n            dataDisks: [{\n                count: 3,\n                category: \"cloud_essd\",\n                size: 80,\n                performanceLevel: \"PL0\",\n            }],\n            nodeGroupName: \"emr-master\",\n            paymentType: \"PayAsYouGo\",\n            withPublicIp: false,\n            gracefulShutdown: false,\n            systemDisk: {\n                category: \"cloud_essd\",\n                size: 80,\n                performanceLevel: \"PL0\",\n                count: 1,\n            },\n            nodeGroupType: \"MASTER\",\n        },\n        {\n            spotInstanceRemedy: false,\n            nodeGroupType: \"CORE\",\n            vswitchIds: [defaultSwitch.id],\n            nodeCount: 2,\n            gracefulShutdown: false,\n            systemDisk: {\n                performanceLevel: \"PL0\",\n                count: 1,\n                category: \"cloud_essd\",\n                size: 80,\n            },\n            dataDisks: [{\n                count: 3,\n                performanceLevel: \"PL0\",\n                category: \"cloud_essd\",\n                size: 80,\n            }],\n            nodeGroupName: \"emr-core\",\n            paymentType: \"PayAsYouGo\",\n            instanceTypes: [\"ecs.g7.xlarge\"],\n            withPublicIp: false,\n        },\n    ],\n    deployMode: \"NORMAL\",\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    releaseVersion: \"EMR-5.10.0\",\n    applications: [\n        \"HADOOP-COMMON\",\n        \"HDFS\",\n        \"YARN\",\n    ],\n    nodeAttributes: [{\n        zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n        keyPairName: defaultEcsKeyPair.id,\n        dataDiskEncrypted: true,\n        dataDiskKmsKeyId: defaultGetKeys.then(defaultGetKeys =\u003e defaultGetKeys.ids?.[0]),\n        vpcId: defaultNetwork.id,\n        ramRole: defaultRole.name,\n        securityGroupId: defaultSecurityGroup.id,\n    }],\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    clusterName: name,\n    paymentType: \"PayAsYouGo\",\n    clusterType: \"DATAFLOW\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_get_keys = alicloud.kms.get_keys(status=\"Enabled\")\ndefault_get_zones = alicloud.get_zones(available_instance_type=\"ecs.g7.xlarge\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default_get_zones.zones[0].id,\n    vswitch_name=name)\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_ecs_key_pair = alicloud.ecs.EcsKeyPair(\"default\", key_pair_name=f\"{name}-{default_integer['result']}\")\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_role = alicloud.ram.Role(\"default\",\n    name=name,\n    document=\"\"\"    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n\"\"\",\n    description=\"this is a role example.\",\n    force=True)\ndefault_cluster = alicloud.emrv2.Cluster(\"default\",\n    node_groups=[\n        {\n            \"vswitch_ids\": [default_switch.id],\n            \"instance_types\": [\"ecs.g7.xlarge\"],\n            \"node_count\": 1,\n            \"spot_instance_remedy\": False,\n            \"data_disks\": [{\n                \"count\": 3,\n                \"category\": \"cloud_essd\",\n                \"size\": 80,\n                \"performance_level\": \"PL0\",\n            }],\n            \"node_group_name\": \"emr-master\",\n            \"payment_type\": \"PayAsYouGo\",\n            \"with_public_ip\": False,\n            \"graceful_shutdown\": False,\n            \"system_disk\": {\n                \"category\": \"cloud_essd\",\n                \"size\": 80,\n                \"performance_level\": \"PL0\",\n                \"count\": 1,\n            },\n            \"node_group_type\": \"MASTER\",\n        },\n        {\n            \"spot_instance_remedy\": False,\n            \"node_group_type\": \"CORE\",\n            \"vswitch_ids\": [default_switch.id],\n            \"node_count\": 2,\n            \"graceful_shutdown\": False,\n            \"system_disk\": {\n                \"performance_level\": \"PL0\",\n                \"count\": 1,\n                \"category\": \"cloud_essd\",\n                \"size\": 80,\n            },\n            \"data_disks\": [{\n                \"count\": 3,\n                \"performance_level\": \"PL0\",\n                \"category\": \"cloud_essd\",\n                \"size\": 80,\n            }],\n            \"node_group_name\": \"emr-core\",\n            \"payment_type\": \"PayAsYouGo\",\n            \"instance_types\": [\"ecs.g7.xlarge\"],\n            \"with_public_ip\": False,\n        },\n    ],\n    deploy_mode=\"NORMAL\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    release_version=\"EMR-5.10.0\",\n    applications=[\n        \"HADOOP-COMMON\",\n        \"HDFS\",\n        \"YARN\",\n    ],\n    node_attributes=[{\n        \"zone_id\": default_get_zones.zones[0].id,\n        \"key_pair_name\": default_ecs_key_pair.id,\n        \"data_disk_encrypted\": True,\n        \"data_disk_kms_key_id\": default_get_keys.ids[0],\n        \"vpc_id\": default_network.id,\n        \"ram_role\": default_role.name,\n        \"security_group_id\": default_security_group.id,\n    }],\n    resource_group_id=default.ids[0],\n    cluster_name=name,\n    payment_type=\"PayAsYouGo\",\n    cluster_type=\"DATAFLOW\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultGetKeys = AliCloud.Kms.GetKeys.Invoke(new()\n    {\n        Status = \"Enabled\",\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableInstanceType = \"ecs.g7.xlarge\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = name,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultEcsKeyPair = new AliCloud.Ecs.EcsKeyPair(\"default\", new()\n    {\n        KeyPairName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = name,\n        Document = @\"    {\n        \\\"\"Statement\\\"\": [\n        {\n            \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n            \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n            \\\"\"Principal\\\"\": {\n            \\\"\"Service\\\"\": [\n                \\\"\"emr.aliyuncs.com\\\"\",\n                \\\"\"ecs.aliyuncs.com\\\"\"\n            ]\n            }\n        }\n        ],\n        \\\"\"Version\\\"\": \\\"\"1\\\"\"\n    }\n\",\n        Description = \"this is a role example.\",\n        Force = true,\n    });\n\n    var defaultCluster = new AliCloud.Emrv2.Cluster(\"default\", new()\n    {\n        NodeGroups = new[]\n        {\n            new AliCloud.Emrv2.Inputs.ClusterNodeGroupArgs\n            {\n                VswitchIds = new[]\n                {\n                    defaultSwitch.Id,\n                },\n                InstanceTypes = new[]\n                {\n                    \"ecs.g7.xlarge\",\n                },\n                NodeCount = 1,\n                SpotInstanceRemedy = false,\n                DataDisks = new[]\n                {\n                    new AliCloud.Emrv2.Inputs.ClusterNodeGroupDataDiskArgs\n                    {\n                        Count = 3,\n                        Category = \"cloud_essd\",\n                        Size = 80,\n                        PerformanceLevel = \"PL0\",\n                    },\n                },\n                NodeGroupName = \"emr-master\",\n                PaymentType = \"PayAsYouGo\",\n                WithPublicIp = false,\n                GracefulShutdown = false,\n                SystemDisk = new AliCloud.Emrv2.Inputs.ClusterNodeGroupSystemDiskArgs\n                {\n                    Category = \"cloud_essd\",\n                    Size = 80,\n                    PerformanceLevel = \"PL0\",\n                    Count = 1,\n                },\n                NodeGroupType = \"MASTER\",\n            },\n            new AliCloud.Emrv2.Inputs.ClusterNodeGroupArgs\n            {\n                SpotInstanceRemedy = false,\n                NodeGroupType = \"CORE\",\n                VswitchIds = new[]\n                {\n                    defaultSwitch.Id,\n                },\n                NodeCount = 2,\n                GracefulShutdown = false,\n                SystemDisk = new AliCloud.Emrv2.Inputs.ClusterNodeGroupSystemDiskArgs\n                {\n                    PerformanceLevel = \"PL0\",\n                    Count = 1,\n                    Category = \"cloud_essd\",\n                    Size = 80,\n                },\n                DataDisks = new[]\n                {\n                    new AliCloud.Emrv2.Inputs.ClusterNodeGroupDataDiskArgs\n                    {\n                        Count = 3,\n                        PerformanceLevel = \"PL0\",\n                        Category = \"cloud_essd\",\n                        Size = 80,\n                    },\n                },\n                NodeGroupName = \"emr-core\",\n                PaymentType = \"PayAsYouGo\",\n                InstanceTypes = new[]\n                {\n                    \"ecs.g7.xlarge\",\n                },\n                WithPublicIp = false,\n            },\n        },\n        DeployMode = \"NORMAL\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        ReleaseVersion = \"EMR-5.10.0\",\n        Applications = new[]\n        {\n            \"HADOOP-COMMON\",\n            \"HDFS\",\n            \"YARN\",\n        },\n        NodeAttributes = new[]\n        {\n            new AliCloud.Emrv2.Inputs.ClusterNodeAttributeArgs\n            {\n                ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n                KeyPairName = defaultEcsKeyPair.Id,\n                DataDiskEncrypted = true,\n                DataDiskKmsKeyId = defaultGetKeys.Apply(getKeysResult =\u003e getKeysResult.Ids[0]),\n                VpcId = defaultNetwork.Id,\n                RamRole = defaultRole.Name,\n                SecurityGroupId = defaultSecurityGroup.Id,\n            },\n        },\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        ClusterName = name,\n        PaymentType = \"PayAsYouGo\",\n        ClusterType = \"DATAFLOW\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/emrv2\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetKeys, err := kms.GetKeys(ctx, \u0026kms.GetKeysArgs{\n\t\t\tStatus: pulumi.StringRef(\"Enabled\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableInstanceType: pulumi.StringRef(\"ecs.g7.xlarge\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcsKeyPair, err := ecs.NewEcsKeyPair(ctx, \"default\", \u0026ecs.EcsKeyPairArgs{\n\t\t\tKeyPairName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.String(name),\n\t\t\tDocument: pulumi.String(`    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n`),\n\t\t\tDescription: pulumi.String(\"this is a role example.\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = emrv2.NewCluster(ctx, \"default\", \u0026emrv2.ClusterArgs{\n\t\t\tNodeGroups: emrv2.ClusterNodeGroupArray{\n\t\t\t\t\u0026emrv2.ClusterNodeGroupArgs{\n\t\t\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\t\t\tdefaultSwitch.ID(),\n\t\t\t\t\t},\n\t\t\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ecs.g7.xlarge\"),\n\t\t\t\t\t},\n\t\t\t\t\tNodeCount:          pulumi.Int(1),\n\t\t\t\t\tSpotInstanceRemedy: pulumi.Bool(false),\n\t\t\t\t\tDataDisks: emrv2.ClusterNodeGroupDataDiskArray{\n\t\t\t\t\t\t\u0026emrv2.ClusterNodeGroupDataDiskArgs{\n\t\t\t\t\t\t\tCount:            pulumi.Int(3),\n\t\t\t\t\t\t\tCategory:         pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\t\tSize:             pulumi.Int(80),\n\t\t\t\t\t\t\tPerformanceLevel: pulumi.String(\"PL0\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tNodeGroupName:    pulumi.String(\"emr-master\"),\n\t\t\t\t\tPaymentType:      pulumi.String(\"PayAsYouGo\"),\n\t\t\t\t\tWithPublicIp:     pulumi.Bool(false),\n\t\t\t\t\tGracefulShutdown: pulumi.Bool(false),\n\t\t\t\t\tSystemDisk: \u0026emrv2.ClusterNodeGroupSystemDiskArgs{\n\t\t\t\t\t\tCategory:         pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\tSize:             pulumi.Int(80),\n\t\t\t\t\t\tPerformanceLevel: pulumi.String(\"PL0\"),\n\t\t\t\t\t\tCount:            pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t\tNodeGroupType: pulumi.String(\"MASTER\"),\n\t\t\t\t},\n\t\t\t\t\u0026emrv2.ClusterNodeGroupArgs{\n\t\t\t\t\tSpotInstanceRemedy: pulumi.Bool(false),\n\t\t\t\t\tNodeGroupType:      pulumi.String(\"CORE\"),\n\t\t\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\t\t\tdefaultSwitch.ID(),\n\t\t\t\t\t},\n\t\t\t\t\tNodeCount:        pulumi.Int(2),\n\t\t\t\t\tGracefulShutdown: pulumi.Bool(false),\n\t\t\t\t\tSystemDisk: \u0026emrv2.ClusterNodeGroupSystemDiskArgs{\n\t\t\t\t\t\tPerformanceLevel: pulumi.String(\"PL0\"),\n\t\t\t\t\t\tCount:            pulumi.Int(1),\n\t\t\t\t\t\tCategory:         pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\tSize:             pulumi.Int(80),\n\t\t\t\t\t},\n\t\t\t\t\tDataDisks: emrv2.ClusterNodeGroupDataDiskArray{\n\t\t\t\t\t\t\u0026emrv2.ClusterNodeGroupDataDiskArgs{\n\t\t\t\t\t\t\tCount:            pulumi.Int(3),\n\t\t\t\t\t\t\tPerformanceLevel: pulumi.String(\"PL0\"),\n\t\t\t\t\t\t\tCategory:         pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\t\tSize:             pulumi.Int(80),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tNodeGroupName: pulumi.String(\"emr-core\"),\n\t\t\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ecs.g7.xlarge\"),\n\t\t\t\t\t},\n\t\t\t\t\tWithPublicIp: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeployMode: pulumi.String(\"NORMAL\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tReleaseVersion: pulumi.String(\"EMR-5.10.0\"),\n\t\t\tApplications: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"HADOOP-COMMON\"),\n\t\t\t\tpulumi.String(\"HDFS\"),\n\t\t\t\tpulumi.String(\"YARN\"),\n\t\t\t},\n\t\t\tNodeAttributes: emrv2.ClusterNodeAttributeArray{\n\t\t\t\t\u0026emrv2.ClusterNodeAttributeArgs{\n\t\t\t\t\tZoneId:            pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\t\t\tKeyPairName:       defaultEcsKeyPair.ID(),\n\t\t\t\t\tDataDiskEncrypted: pulumi.Bool(true),\n\t\t\t\t\tDataDiskKmsKeyId:  pulumi.String(defaultGetKeys.Ids[0]),\n\t\t\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t\t\t\tRamRole:           defaultRole.Name,\n\t\t\t\t\tSecurityGroupId:   defaultSecurityGroup.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupId: pulumi.String(_default.Ids[0]),\n\t\t\tClusterName:     pulumi.String(name),\n\t\t\tPaymentType:     pulumi.String(\"PayAsYouGo\"),\n\t\t\tClusterType:     pulumi.String(\"DATAFLOW\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.kms.KmsFunctions;\nimport com.pulumi.alicloud.kms.inputs.GetKeysArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ecs.EcsKeyPair;\nimport com.pulumi.alicloud.ecs.EcsKeyPairArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.emrv2.Cluster;\nimport com.pulumi.alicloud.emrv2.ClusterArgs;\nimport com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupArgs;\nimport com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupSystemDiskArgs;\nimport com.pulumi.alicloud.emrv2.inputs.ClusterNodeAttributeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        final var defaultGetKeys = KmsFunctions.getKeys(GetKeysArgs.builder()\n            .status(\"Enabled\")\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableInstanceType(\"ecs.g7.xlarge\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(defaultGetZones.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultEcsKeyPair = new EcsKeyPair(\"defaultEcsKeyPair\", EcsKeyPairArgs.builder()\n            .keyPairName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .name(name)\n            .document(\"\"\"\n    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n            \"\"\")\n            .description(\"this is a role example.\")\n            .force(true)\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .nodeGroups(            \n                ClusterNodeGroupArgs.builder()\n                    .vswitchIds(defaultSwitch.id())\n                    .instanceTypes(\"ecs.g7.xlarge\")\n                    .nodeCount(1)\n                    .spotInstanceRemedy(false)\n                    .dataDisks(ClusterNodeGroupDataDiskArgs.builder()\n                        .count(3)\n                        .category(\"cloud_essd\")\n                        .size(80)\n                        .performanceLevel(\"PL0\")\n                        .build())\n                    .nodeGroupName(\"emr-master\")\n                    .paymentType(\"PayAsYouGo\")\n                    .withPublicIp(false)\n                    .gracefulShutdown(false)\n                    .systemDisk(ClusterNodeGroupSystemDiskArgs.builder()\n                        .category(\"cloud_essd\")\n                        .size(80)\n                        .performanceLevel(\"PL0\")\n                        .count(1)\n                        .build())\n                    .nodeGroupType(\"MASTER\")\n                    .build(),\n                ClusterNodeGroupArgs.builder()\n                    .spotInstanceRemedy(false)\n                    .nodeGroupType(\"CORE\")\n                    .vswitchIds(defaultSwitch.id())\n                    .nodeCount(2)\n                    .gracefulShutdown(false)\n                    .systemDisk(ClusterNodeGroupSystemDiskArgs.builder()\n                        .performanceLevel(\"PL0\")\n                        .count(1)\n                        .category(\"cloud_essd\")\n                        .size(80)\n                        .build())\n                    .dataDisks(ClusterNodeGroupDataDiskArgs.builder()\n                        .count(3)\n                        .performanceLevel(\"PL0\")\n                        .category(\"cloud_essd\")\n                        .size(80)\n                        .build())\n                    .nodeGroupName(\"emr-core\")\n                    .paymentType(\"PayAsYouGo\")\n                    .instanceTypes(\"ecs.g7.xlarge\")\n                    .withPublicIp(false)\n                    .build())\n            .deployMode(\"NORMAL\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .releaseVersion(\"EMR-5.10.0\")\n            .applications(            \n                \"HADOOP-COMMON\",\n                \"HDFS\",\n                \"YARN\")\n            .nodeAttributes(ClusterNodeAttributeArgs.builder()\n                .zoneId(defaultGetZones.zones()[0].id())\n                .keyPairName(defaultEcsKeyPair.id())\n                .dataDiskEncrypted(true)\n                .dataDiskKmsKeyId(defaultGetKeys.ids()[0])\n                .vpcId(defaultNetwork.id())\n                .ramRole(defaultRole.name())\n                .securityGroupId(defaultSecurityGroup.id())\n                .build())\n            .resourceGroupId(default_.ids()[0])\n            .clusterName(name)\n            .paymentType(\"PayAsYouGo\")\n            .clusterType(\"DATAFLOW\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${defaultGetZones.zones[0].id}\n      vswitchName: ${name}\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultEcsKeyPair:\n    type: alicloud:ecs:EcsKeyPair\n    name: default\n    properties:\n      keyPairName: ${name}-${defaultInteger.result}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultRole:\n    type: alicloud:ram:Role\n    name: default\n    properties:\n      name: ${name}\n      document: |2\n            {\n                \\\"Statement\\\": [\n                {\n                    \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                    \\\"Effect\\\": \\\"Allow\\\",\n                    \\\"Principal\\\": {\n                    \\\"Service\\\": [\n                        \\\"emr.aliyuncs.com\\\",\n                        \\\"ecs.aliyuncs.com\\\"\n                    ]\n                    }\n                }\n                ],\n                \\\"Version\\\": \\\"1\\\"\n            }\n      description: this is a role example.\n      force: true\n  defaultCluster:\n    type: alicloud:emrv2:Cluster\n    name: default\n    properties:\n      nodeGroups:\n        - vswitchIds:\n            - ${defaultSwitch.id}\n          instanceTypes:\n            - ecs.g7.xlarge\n          nodeCount: '1'\n          spotInstanceRemedy: 'false'\n          dataDisks:\n            - count: '3'\n              category: cloud_essd\n              size: '80'\n              performanceLevel: PL0\n          nodeGroupName: emr-master\n          paymentType: PayAsYouGo\n          withPublicIp: 'false'\n          gracefulShutdown: 'false'\n          systemDisk:\n            category: cloud_essd\n            size: '80'\n            performanceLevel: PL0\n            count: '1'\n          nodeGroupType: MASTER\n        - spotInstanceRemedy: 'false'\n          nodeGroupType: CORE\n          vswitchIds:\n            - ${defaultSwitch.id}\n          nodeCount: '2'\n          gracefulShutdown: 'false'\n          systemDisk:\n            performanceLevel: PL0\n            count: '1'\n            category: cloud_essd\n            size: '80'\n          dataDisks:\n            - count: '3'\n              performanceLevel: PL0\n              category: cloud_essd\n              size: '80'\n          nodeGroupName: emr-core\n          paymentType: PayAsYouGo\n          instanceTypes:\n            - ecs.g7.xlarge\n          withPublicIp: 'false'\n      deployMode: NORMAL\n      tags:\n        Created: TF\n        For: example\n      releaseVersion: EMR-5.10.0\n      applications:\n        - HADOOP-COMMON\n        - HDFS\n        - YARN\n      nodeAttributes:\n        - zoneId: ${defaultGetZones.zones[0].id}\n          keyPairName: ${defaultEcsKeyPair.id}\n          dataDiskEncrypted: 'true'\n          dataDiskKmsKeyId: ${defaultGetKeys.ids[0]}\n          vpcId: ${defaultNetwork.id}\n          ramRole: ${defaultRole.name}\n          securityGroupId: ${defaultSecurityGroup.id}\n      resourceGroupId: ${default.ids[0]}\n      clusterName: ${name}\n      paymentType: PayAsYouGo\n      clusterType: DATAFLOW\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n  defaultGetKeys:\n    fn::invoke:\n      function: alicloud:kms:getKeys\n      arguments:\n        status: Enabled\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableInstanceType: ecs.g7.xlarge\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAliclioud E-MapReduce cluster can be imported using the id e.g.\n\n```sh\n$ pulumi import alicloud:emrv2/cluster:Cluster default \u003cid\u003e\n```\n\n","properties":{"applicationConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterApplicationConfig:ClusterApplicationConfig"},"description":"The application configurations of EMR cluster. See \u003cspan pulumi-lang-nodejs=\"`applicationConfigs`\" pulumi-lang-dotnet=\"`ApplicationConfigs`\" pulumi-lang-go=\"`applicationConfigs`\" pulumi-lang-python=\"`application_configs`\" pulumi-lang-yaml=\"`applicationConfigs`\" pulumi-lang-java=\"`applicationConfigs`\"\u003e`application_configs`\u003c/span\u003e below.\n"},"applications":{"type":"array","items":{"type":"string"},"description":"The applications of EMR cluster to be installed, e.g. HADOOP-COMMON, HDFS, YARN, HIVE, SPARK2, SPARK3, ZOOKEEPER etc. You can find all valid applications in emr web console.\n"},"bootstrapScripts":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterBootstrapScript:ClusterBootstrapScript"},"description":"The bootstrap scripts to be effected when creating emr-cluster or resize emr-cluster, if priority is not specified, the scripts will execute in the declared order. See \u003cspan pulumi-lang-nodejs=\"`bootstrapScripts`\" pulumi-lang-dotnet=\"`BootstrapScripts`\" pulumi-lang-go=\"`bootstrapScripts`\" pulumi-lang-python=\"`bootstrap_scripts`\" pulumi-lang-yaml=\"`bootstrapScripts`\" pulumi-lang-java=\"`bootstrapScripts`\"\u003e`bootstrap_scripts`\u003c/span\u003e below.\n"},"clusterName":{"type":"string","description":"The name of emr cluster. The name length must be less than 64. Supported characters: chinese character, english character, number, \"-\", \"_\".\n"},"clusterType":{"type":"string","description":"EMR Cluster Type, e.g. DATALAKE, OLAP, DATAFLOW, DATASERVING, CUSTOM etc. You can find all valid EMR cluster type in emr web console.\n"},"deletionProtection":{"type":"boolean","description":"The deletion protection of EMR cluster.\n"},"deployMode":{"type":"string","description":"The deploy mode of EMR cluster. Supported value: NORMAL or HA.\n"},"logCollectStrategy":{"type":"string","description":"The log collect strategy of EMR cluster.\n"},"nodeAttributes":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeAttribute:ClusterNodeAttribute"},"description":"The node attributes of ecs instances which the emr-cluster belongs. See \u003cspan pulumi-lang-nodejs=\"`nodeAttributes`\" pulumi-lang-dotnet=\"`NodeAttributes`\" pulumi-lang-go=\"`nodeAttributes`\" pulumi-lang-python=\"`node_attributes`\" pulumi-lang-yaml=\"`nodeAttributes`\" pulumi-lang-java=\"`nodeAttributes`\"\u003e`node_attributes`\u003c/span\u003e below.\n"},"nodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroup:ClusterNodeGroup"},"description":"Groups of node, You can specify MASTER as a group, CORE as a group (just like the above example). See \u003cspan pulumi-lang-nodejs=\"`nodeGroups`\" pulumi-lang-dotnet=\"`NodeGroups`\" pulumi-lang-go=\"`nodeGroups`\" pulumi-lang-python=\"`node_groups`\" pulumi-lang-yaml=\"`nodeGroups`\" pulumi-lang-java=\"`nodeGroups`\"\u003e`node_groups`\u003c/span\u003e below. **NOTE:** Since version 1.227.0, the type of \u003cspan pulumi-lang-nodejs=\"`nodeGroups`\" pulumi-lang-dotnet=\"`NodeGroups`\" pulumi-lang-go=\"`nodeGroups`\" pulumi-lang-python=\"`node_groups`\" pulumi-lang-yaml=\"`nodeGroups`\" pulumi-lang-java=\"`nodeGroups`\"\u003e`node_groups`\u003c/span\u003e changed from Set to List.\n"},"paymentType":{"type":"string","description":"Payment Type for this cluster. Supported value: PayAsYouGo or Subscription. **NOTE:** From version 1.227.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e can be modified.\n"},"releaseVersion":{"type":"string","description":"EMR Version, e.g. EMR-5.10.0. You can find the all valid EMR Version in emr web console.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the emr-cluster belongs.\n"},"securityMode":{"type":"string","description":"The security mode of EMR cluster. Supported value: NORMAL or KERBEROS.\n"},"subscriptionConfig":{"$ref":"#/types/alicloud:emrv2/ClusterSubscriptionConfig:ClusterSubscriptionConfig","description":"The detail configuration of subscription payment type. See \u003cspan pulumi-lang-nodejs=\"`subscriptionConfig`\" pulumi-lang-dotnet=\"`SubscriptionConfig`\" pulumi-lang-go=\"`subscriptionConfig`\" pulumi-lang-python=\"`subscription_config`\" pulumi-lang-yaml=\"`subscriptionConfig`\" pulumi-lang-java=\"`subscriptionConfig`\"\u003e`subscription_config`\u003c/span\u003e below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["applications","clusterName","clusterType","deployMode","logCollectStrategy","nodeAttributes","nodeGroups","paymentType","releaseVersion","resourceGroupId","securityMode"],"inputProperties":{"applicationConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterApplicationConfig:ClusterApplicationConfig"},"description":"The application configurations of EMR cluster. See \u003cspan pulumi-lang-nodejs=\"`applicationConfigs`\" pulumi-lang-dotnet=\"`ApplicationConfigs`\" pulumi-lang-go=\"`applicationConfigs`\" pulumi-lang-python=\"`application_configs`\" pulumi-lang-yaml=\"`applicationConfigs`\" pulumi-lang-java=\"`applicationConfigs`\"\u003e`application_configs`\u003c/span\u003e below.\n"},"applications":{"type":"array","items":{"type":"string"},"description":"The applications of EMR cluster to be installed, e.g. HADOOP-COMMON, HDFS, YARN, HIVE, SPARK2, SPARK3, ZOOKEEPER etc. You can find all valid applications in emr web console.\n","willReplaceOnChanges":true},"bootstrapScripts":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterBootstrapScript:ClusterBootstrapScript"},"description":"The bootstrap scripts to be effected when creating emr-cluster or resize emr-cluster, if priority is not specified, the scripts will execute in the declared order. See \u003cspan pulumi-lang-nodejs=\"`bootstrapScripts`\" pulumi-lang-dotnet=\"`BootstrapScripts`\" pulumi-lang-go=\"`bootstrapScripts`\" pulumi-lang-python=\"`bootstrap_scripts`\" pulumi-lang-yaml=\"`bootstrapScripts`\" pulumi-lang-java=\"`bootstrapScripts`\"\u003e`bootstrap_scripts`\u003c/span\u003e below.\n"},"clusterName":{"type":"string","description":"The name of emr cluster. The name length must be less than 64. Supported characters: chinese character, english character, number, \"-\", \"_\".\n"},"clusterType":{"type":"string","description":"EMR Cluster Type, e.g. DATALAKE, OLAP, DATAFLOW, DATASERVING, CUSTOM etc. You can find all valid EMR cluster type in emr web console.\n","willReplaceOnChanges":true},"deletionProtection":{"type":"boolean","description":"The deletion protection of EMR cluster.\n"},"deployMode":{"type":"string","description":"The deploy mode of EMR cluster. Supported value: NORMAL or HA.\n","willReplaceOnChanges":true},"logCollectStrategy":{"type":"string","description":"The log collect strategy of EMR cluster.\n"},"nodeAttributes":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeAttribute:ClusterNodeAttribute"},"description":"The node attributes of ecs instances which the emr-cluster belongs. See \u003cspan pulumi-lang-nodejs=\"`nodeAttributes`\" pulumi-lang-dotnet=\"`NodeAttributes`\" pulumi-lang-go=\"`nodeAttributes`\" pulumi-lang-python=\"`node_attributes`\" pulumi-lang-yaml=\"`nodeAttributes`\" pulumi-lang-java=\"`nodeAttributes`\"\u003e`node_attributes`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"nodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroup:ClusterNodeGroup"},"description":"Groups of node, You can specify MASTER as a group, CORE as a group (just like the above example). See \u003cspan pulumi-lang-nodejs=\"`nodeGroups`\" pulumi-lang-dotnet=\"`NodeGroups`\" pulumi-lang-go=\"`nodeGroups`\" pulumi-lang-python=\"`node_groups`\" pulumi-lang-yaml=\"`nodeGroups`\" pulumi-lang-java=\"`nodeGroups`\"\u003e`node_groups`\u003c/span\u003e below. **NOTE:** Since version 1.227.0, the type of \u003cspan pulumi-lang-nodejs=\"`nodeGroups`\" pulumi-lang-dotnet=\"`NodeGroups`\" pulumi-lang-go=\"`nodeGroups`\" pulumi-lang-python=\"`node_groups`\" pulumi-lang-yaml=\"`nodeGroups`\" pulumi-lang-java=\"`nodeGroups`\"\u003e`node_groups`\u003c/span\u003e changed from Set to List.\n"},"paymentType":{"type":"string","description":"Payment Type for this cluster. Supported value: PayAsYouGo or Subscription. **NOTE:** From version 1.227.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e can be modified.\n"},"releaseVersion":{"type":"string","description":"EMR Version, e.g. EMR-5.10.0. You can find the all valid EMR Version in emr web console.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The Id of resource group which the emr-cluster belongs.\n"},"securityMode":{"type":"string","description":"The security mode of EMR cluster. Supported value: NORMAL or KERBEROS.\n"},"subscriptionConfig":{"$ref":"#/types/alicloud:emrv2/ClusterSubscriptionConfig:ClusterSubscriptionConfig","description":"The detail configuration of subscription payment type. See \u003cspan pulumi-lang-nodejs=\"`subscriptionConfig`\" pulumi-lang-dotnet=\"`SubscriptionConfig`\" pulumi-lang-go=\"`subscriptionConfig`\" pulumi-lang-python=\"`subscription_config`\" pulumi-lang-yaml=\"`subscriptionConfig`\" pulumi-lang-java=\"`subscriptionConfig`\"\u003e`subscription_config`\u003c/span\u003e below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"requiredInputs":["applications","clusterName","clusterType","nodeAttributes","nodeGroups","releaseVersion"],"stateInputs":{"description":"Input properties used for looking up and filtering Cluster resources.\n","properties":{"applicationConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterApplicationConfig:ClusterApplicationConfig"},"description":"The application configurations of EMR cluster. See \u003cspan pulumi-lang-nodejs=\"`applicationConfigs`\" pulumi-lang-dotnet=\"`ApplicationConfigs`\" pulumi-lang-go=\"`applicationConfigs`\" pulumi-lang-python=\"`application_configs`\" pulumi-lang-yaml=\"`applicationConfigs`\" pulumi-lang-java=\"`applicationConfigs`\"\u003e`application_configs`\u003c/span\u003e below.\n"},"applications":{"type":"array","items":{"type":"string"},"description":"The applications of EMR cluster to be installed, e.g. HADOOP-COMMON, HDFS, YARN, HIVE, SPARK2, SPARK3, ZOOKEEPER etc. You can find all valid applications in emr web console.\n","willReplaceOnChanges":true},"bootstrapScripts":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterBootstrapScript:ClusterBootstrapScript"},"description":"The bootstrap scripts to be effected when creating emr-cluster or resize emr-cluster, if priority is not specified, the scripts will execute in the declared order. See \u003cspan pulumi-lang-nodejs=\"`bootstrapScripts`\" pulumi-lang-dotnet=\"`BootstrapScripts`\" pulumi-lang-go=\"`bootstrapScripts`\" pulumi-lang-python=\"`bootstrap_scripts`\" pulumi-lang-yaml=\"`bootstrapScripts`\" pulumi-lang-java=\"`bootstrapScripts`\"\u003e`bootstrap_scripts`\u003c/span\u003e below.\n"},"clusterName":{"type":"string","description":"The name of emr cluster. The name length must be less than 64. Supported characters: chinese character, english character, number, \"-\", \"_\".\n"},"clusterType":{"type":"string","description":"EMR Cluster Type, e.g. DATALAKE, OLAP, DATAFLOW, DATASERVING, CUSTOM etc. You can find all valid EMR cluster type in emr web console.\n","willReplaceOnChanges":true},"deletionProtection":{"type":"boolean","description":"The deletion protection of EMR cluster.\n"},"deployMode":{"type":"string","description":"The deploy mode of EMR cluster. Supported value: NORMAL or HA.\n","willReplaceOnChanges":true},"logCollectStrategy":{"type":"string","description":"The log collect strategy of EMR cluster.\n"},"nodeAttributes":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeAttribute:ClusterNodeAttribute"},"description":"The node attributes of ecs instances which the emr-cluster belongs. See \u003cspan pulumi-lang-nodejs=\"`nodeAttributes`\" pulumi-lang-dotnet=\"`NodeAttributes`\" pulumi-lang-go=\"`nodeAttributes`\" pulumi-lang-python=\"`node_attributes`\" pulumi-lang-yaml=\"`nodeAttributes`\" pulumi-lang-java=\"`nodeAttributes`\"\u003e`node_attributes`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"nodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:emrv2/ClusterNodeGroup:ClusterNodeGroup"},"description":"Groups of node, You can specify MASTER as a group, CORE as a group (just like the above example). See \u003cspan pulumi-lang-nodejs=\"`nodeGroups`\" pulumi-lang-dotnet=\"`NodeGroups`\" pulumi-lang-go=\"`nodeGroups`\" pulumi-lang-python=\"`node_groups`\" pulumi-lang-yaml=\"`nodeGroups`\" pulumi-lang-java=\"`nodeGroups`\"\u003e`node_groups`\u003c/span\u003e below. **NOTE:** Since version 1.227.0, the type of \u003cspan pulumi-lang-nodejs=\"`nodeGroups`\" pulumi-lang-dotnet=\"`NodeGroups`\" pulumi-lang-go=\"`nodeGroups`\" pulumi-lang-python=\"`node_groups`\" pulumi-lang-yaml=\"`nodeGroups`\" pulumi-lang-java=\"`nodeGroups`\"\u003e`node_groups`\u003c/span\u003e changed from Set to List.\n"},"paymentType":{"type":"string","description":"Payment Type for this cluster. Supported value: PayAsYouGo or Subscription. **NOTE:** From version 1.227.0, \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e can be modified.\n"},"releaseVersion":{"type":"string","description":"EMR Version, e.g. EMR-5.10.0. You can find the all valid EMR Version in emr web console.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The Id of resource group which the emr-cluster belongs.\n"},"securityMode":{"type":"string","description":"The security mode of EMR cluster. Supported value: NORMAL or KERBEROS.\n"},"subscriptionConfig":{"$ref":"#/types/alicloud:emrv2/ClusterSubscriptionConfig:ClusterSubscriptionConfig","description":"The detail configuration of subscription payment type. See \u003cspan pulumi-lang-nodejs=\"`subscriptionConfig`\" pulumi-lang-dotnet=\"`SubscriptionConfig`\" pulumi-lang-go=\"`subscriptionConfig`\" pulumi-lang-python=\"`subscription_config`\" pulumi-lang-yaml=\"`subscriptionConfig`\" pulumi-lang-java=\"`subscriptionConfig`\"\u003e`subscription_config`\u003c/span\u003e below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:ens/disk:Disk":{"description":"Provides a ENS Disk resource.\n\nThe disk. When you use it for the first time, please contact the product classmates to add a resource whitelist.\n\nFor information about ENS Disk and how to use it, see [What is Disk](https://www.alibabacloud.com/help/en/ens/developer-reference/api-ens-2017-11-10-createdisk).\n\n\u003e **NOTE:** Available since v1.213.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ens.Disk(\"default\", {\n    category: \"cloud_ssd\",\n    size: 20,\n    paymentType: \"PayAsYouGo\",\n    ensRegionId: \"cn-chongqing-11\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ens.Disk(\"default\",\n    category=\"cloud_ssd\",\n    size=20,\n    payment_type=\"PayAsYouGo\",\n    ens_region_id=\"cn-chongqing-11\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ens.Disk(\"default\", new()\n    {\n        Category = \"cloud_ssd\",\n        Size = 20,\n        PaymentType = \"PayAsYouGo\",\n        EnsRegionId = \"cn-chongqing-11\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ens\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ens.NewDisk(ctx, \"default\", \u0026ens.DiskArgs{\n\t\t\tCategory:    pulumi.String(\"cloud_ssd\"),\n\t\t\tSize:        pulumi.Int(20),\n\t\t\tPaymentType: pulumi.String(\"PayAsYouGo\"),\n\t\t\tEnsRegionId: pulumi.String(\"cn-chongqing-11\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ens.Disk;\nimport com.pulumi.alicloud.ens.DiskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Disk(\"default\", DiskArgs.builder()\n            .category(\"cloud_ssd\")\n            .size(20)\n            .paymentType(\"PayAsYouGo\")\n            .ensRegionId(\"cn-chongqing-11\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ens:Disk\n    properties:\n      category: cloud_ssd\n      size: '20'\n      paymentType: PayAsYouGo\n      ensRegionId: cn-chongqing-11\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nENS Disk can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ens/disk:Disk example \u003cid\u003e\n```\n\n","properties":{"category":{"type":"string","description":"The category of the disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e (high-efficiency cloud disk), \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e (full Flash cloud disk), \u003cspan pulumi-lang-nodejs=\"`localHdd`\" pulumi-lang-dotnet=\"`LocalHdd`\" pulumi-lang-go=\"`localHdd`\" pulumi-lang-python=\"`local_hdd`\" pulumi-lang-yaml=\"`localHdd`\" pulumi-lang-java=\"`localHdd`\"\u003e`local_hdd`\u003c/span\u003e (local HDD), \u003cspan pulumi-lang-nodejs=\"`localSsd`\" pulumi-lang-dotnet=\"`LocalSsd`\" pulumi-lang-go=\"`localSsd`\" pulumi-lang-python=\"`local_ssd`\" pulumi-lang-yaml=\"`localSsd`\" pulumi-lang-java=\"`localSsd`\"\u003e`local_ssd`\u003c/span\u003e (local ssd).\n"},"createTime":{"type":"string","description":"The time when the disk was created.\n"},"diskName":{"type":"string","description":"The name of the disk.\n"},"encrypted":{"type":"boolean","description":"Specifies whether to encrypt the new system disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e(default).\n"},"ensRegionId":{"type":"string","description":"The ID of the edge node.\n"},"kmsKeyId":{"type":"string","description":"The ID of the KMS key used by the cloud disk. If \u003cspan pulumi-lang-nodejs=\"`encrypted`\" pulumi-lang-dotnet=\"`Encrypted`\" pulumi-lang-go=\"`encrypted`\" pulumi-lang-python=\"`encrypted`\" pulumi-lang-yaml=\"`encrypted`\" pulumi-lang-java=\"`encrypted`\"\u003e`encrypted`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the service default key is used when KMSKeyId is empty.\n"},"paymentType":{"type":"string","description":"The billing method of the instance. Valid values: `PayAsYouGo`.\n"},"size":{"type":"integer","description":"The size of the disk instance. Unit: GiB.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot used to create the cloud disk.\n\nThe SnapshotId and Size parameters have the following limitations:\n- If the snapshot capacity corresponding to the \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e parameter is greater than the specified \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e parameter, the Size of the cloud disk created is the Size of the specified snapshot.\n- If the snapshot capacity corresponding to the \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e parameter is less than the set \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e parameter value, the Size of the cloud disk created is the specified \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e parameter value.\n"},"status":{"type":"string","description":"The status of the disk.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The label to which the instance is bound.\n"}},"required":["category","createTime","ensRegionId","kmsKeyId","paymentType","status"],"inputProperties":{"category":{"type":"string","description":"The category of the disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e (high-efficiency cloud disk), \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e (full Flash cloud disk), \u003cspan pulumi-lang-nodejs=\"`localHdd`\" pulumi-lang-dotnet=\"`LocalHdd`\" pulumi-lang-go=\"`localHdd`\" pulumi-lang-python=\"`local_hdd`\" pulumi-lang-yaml=\"`localHdd`\" pulumi-lang-java=\"`localHdd`\"\u003e`local_hdd`\u003c/span\u003e (local HDD), \u003cspan pulumi-lang-nodejs=\"`localSsd`\" pulumi-lang-dotnet=\"`LocalSsd`\" pulumi-lang-go=\"`localSsd`\" pulumi-lang-python=\"`local_ssd`\" pulumi-lang-yaml=\"`localSsd`\" pulumi-lang-java=\"`localSsd`\"\u003e`local_ssd`\u003c/span\u003e (local ssd).\n","willReplaceOnChanges":true},"diskName":{"type":"string","description":"The name of the disk.\n"},"encrypted":{"type":"boolean","description":"Specifies whether to encrypt the new system disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e(default).\n","willReplaceOnChanges":true},"ensRegionId":{"type":"string","description":"The ID of the edge node.\n","willReplaceOnChanges":true},"kmsKeyId":{"type":"string","description":"The ID of the KMS key used by the cloud disk. If \u003cspan pulumi-lang-nodejs=\"`encrypted`\" pulumi-lang-dotnet=\"`Encrypted`\" pulumi-lang-go=\"`encrypted`\" pulumi-lang-python=\"`encrypted`\" pulumi-lang-yaml=\"`encrypted`\" pulumi-lang-java=\"`encrypted`\"\u003e`encrypted`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the service default key is used when KMSKeyId is empty.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The billing method of the instance. Valid values: `PayAsYouGo`.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"The size of the disk instance. Unit: GiB.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot used to create the cloud disk.\n\nThe SnapshotId and Size parameters have the following limitations:\n- If the snapshot capacity corresponding to the \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e parameter is greater than the specified \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e parameter, the Size of the cloud disk created is the Size of the specified snapshot.\n- If the snapshot capacity corresponding to the \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e parameter is less than the set \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e parameter value, the Size of the cloud disk created is the specified \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e parameter value.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The label to which the instance is bound.\n"}},"requiredInputs":["category","ensRegionId","paymentType"],"stateInputs":{"description":"Input properties used for looking up and filtering Disk resources.\n","properties":{"category":{"type":"string","description":"The category of the disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e (high-efficiency cloud disk), \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e (full Flash cloud disk), \u003cspan pulumi-lang-nodejs=\"`localHdd`\" pulumi-lang-dotnet=\"`LocalHdd`\" pulumi-lang-go=\"`localHdd`\" pulumi-lang-python=\"`local_hdd`\" pulumi-lang-yaml=\"`localHdd`\" pulumi-lang-java=\"`localHdd`\"\u003e`local_hdd`\u003c/span\u003e (local HDD), \u003cspan pulumi-lang-nodejs=\"`localSsd`\" pulumi-lang-dotnet=\"`LocalSsd`\" pulumi-lang-go=\"`localSsd`\" pulumi-lang-python=\"`local_ssd`\" pulumi-lang-yaml=\"`localSsd`\" pulumi-lang-java=\"`localSsd`\"\u003e`local_ssd`\u003c/span\u003e (local ssd).\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The time when the disk was created.\n"},"diskName":{"type":"string","description":"The name of the disk.\n"},"encrypted":{"type":"boolean","description":"Specifies whether to encrypt the new system disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e(default).\n","willReplaceOnChanges":true},"ensRegionId":{"type":"string","description":"The ID of the edge node.\n","willReplaceOnChanges":true},"kmsKeyId":{"type":"string","description":"The ID of the KMS key used by the cloud disk. If \u003cspan pulumi-lang-nodejs=\"`encrypted`\" pulumi-lang-dotnet=\"`Encrypted`\" pulumi-lang-go=\"`encrypted`\" pulumi-lang-python=\"`encrypted`\" pulumi-lang-yaml=\"`encrypted`\" pulumi-lang-java=\"`encrypted`\"\u003e`encrypted`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the service default key is used when KMSKeyId is empty.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The billing method of the instance. Valid values: `PayAsYouGo`.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"The size of the disk instance. Unit: GiB.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot used to create the cloud disk.\n\nThe SnapshotId and Size parameters have the following limitations:\n- If the snapshot capacity corresponding to the \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e parameter is greater than the specified \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e parameter, the Size of the cloud disk created is the Size of the specified snapshot.\n- If the snapshot capacity corresponding to the \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e parameter is less than the set \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e parameter value, the Size of the cloud disk created is the specified \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e parameter value.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the disk.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The label to which the instance is bound.\n"}},"type":"object"}},"alicloud:ens/diskInstanceAttachment:DiskInstanceAttachment":{"description":"Provides a ENS Disk Instance Attachment resource. Disk instance mount.\n\nFor information about ENS Disk Instance Attachment and how to use it, see [What is Disk Instance Attachment](https://www.alibabacloud.com/help/en/ens/developer-reference/api-ens-2017-11-10-attachdisk).\n\n\u003e **NOTE:** Available since v1.216.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ens.Disk(\"default\", {\n    size: 20,\n    ensRegionId: \"cn-chenzhou-telecom_unicom_cmcc\",\n    paymentType: \"PayAsYouGo\",\n    category: \"cloud_efficiency\",\n});\nconst defaultInstance = new alicloud.ens.Instance(\"default\", {\n    systemDisk: {\n        size: 20,\n    },\n    imageId: \"centos_6_08_64_20G_alibase_20171208\",\n    paymentType: \"Subscription\",\n    instanceType: \"ens.sn1.stiny\",\n    password: \"12345678ABCabc\",\n    amount: 1,\n    internetMaxBandwidthOut: 10,\n    uniqueSuffix: true,\n    publicIpIdentification: true,\n    ensRegionId: \"cn-chenzhou-telecom_unicom_cmcc\",\n    scheduleAreaLevel: \"Region\",\n    periodUnit: \"Month\",\n    period: 1,\n});\nconst defaultDiskInstanceAttachment = new alicloud.ens.DiskInstanceAttachment(\"default\", {\n    instanceId: defaultInstance.id,\n    deleteWithInstance: \"false\",\n    diskId: _default.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ens.Disk(\"default\",\n    size=20,\n    ens_region_id=\"cn-chenzhou-telecom_unicom_cmcc\",\n    payment_type=\"PayAsYouGo\",\n    category=\"cloud_efficiency\")\ndefault_instance = alicloud.ens.Instance(\"default\",\n    system_disk={\n        \"size\": 20,\n    },\n    image_id=\"centos_6_08_64_20G_alibase_20171208\",\n    payment_type=\"Subscription\",\n    instance_type=\"ens.sn1.stiny\",\n    password=\"12345678ABCabc\",\n    amount=1,\n    internet_max_bandwidth_out=10,\n    unique_suffix=True,\n    public_ip_identification=True,\n    ens_region_id=\"cn-chenzhou-telecom_unicom_cmcc\",\n    schedule_area_level=\"Region\",\n    period_unit=\"Month\",\n    period=1)\ndefault_disk_instance_attachment = alicloud.ens.DiskInstanceAttachment(\"default\",\n    instance_id=default_instance.id,\n    delete_with_instance=\"false\",\n    disk_id=default.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ens.Disk(\"default\", new()\n    {\n        Size = 20,\n        EnsRegionId = \"cn-chenzhou-telecom_unicom_cmcc\",\n        PaymentType = \"PayAsYouGo\",\n        Category = \"cloud_efficiency\",\n    });\n\n    var defaultInstance = new AliCloud.Ens.Instance(\"default\", new()\n    {\n        SystemDisk = new AliCloud.Ens.Inputs.InstanceSystemDiskArgs\n        {\n            Size = 20,\n        },\n        ImageId = \"centos_6_08_64_20G_alibase_20171208\",\n        PaymentType = \"Subscription\",\n        InstanceType = \"ens.sn1.stiny\",\n        Password = \"12345678ABCabc\",\n        Amount = 1,\n        InternetMaxBandwidthOut = 10,\n        UniqueSuffix = true,\n        PublicIpIdentification = true,\n        EnsRegionId = \"cn-chenzhou-telecom_unicom_cmcc\",\n        ScheduleAreaLevel = \"Region\",\n        PeriodUnit = \"Month\",\n        Period = 1,\n    });\n\n    var defaultDiskInstanceAttachment = new AliCloud.Ens.DiskInstanceAttachment(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        DeleteWithInstance = \"false\",\n        DiskId = @default.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ens\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := ens.NewDisk(ctx, \"default\", \u0026ens.DiskArgs{\n\t\t\tSize:        pulumi.Int(20),\n\t\t\tEnsRegionId: pulumi.String(\"cn-chenzhou-telecom_unicom_cmcc\"),\n\t\t\tPaymentType: pulumi.String(\"PayAsYouGo\"),\n\t\t\tCategory:    pulumi.String(\"cloud_efficiency\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ens.NewInstance(ctx, \"default\", \u0026ens.InstanceArgs{\n\t\t\tSystemDisk: \u0026ens.InstanceSystemDiskArgs{\n\t\t\t\tSize: pulumi.Int(20),\n\t\t\t},\n\t\t\tImageId:                 pulumi.String(\"centos_6_08_64_20G_alibase_20171208\"),\n\t\t\tPaymentType:             pulumi.String(\"Subscription\"),\n\t\t\tInstanceType:            pulumi.String(\"ens.sn1.stiny\"),\n\t\t\tPassword:                pulumi.String(\"12345678ABCabc\"),\n\t\t\tAmount:                  pulumi.Int(1),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t\tUniqueSuffix:            pulumi.Bool(true),\n\t\t\tPublicIpIdentification:  pulumi.Bool(true),\n\t\t\tEnsRegionId:             pulumi.String(\"cn-chenzhou-telecom_unicom_cmcc\"),\n\t\t\tScheduleAreaLevel:       pulumi.String(\"Region\"),\n\t\t\tPeriodUnit:              pulumi.String(\"Month\"),\n\t\t\tPeriod:                  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ens.NewDiskInstanceAttachment(ctx, \"default\", \u0026ens.DiskInstanceAttachmentArgs{\n\t\t\tInstanceId:         defaultInstance.ID(),\n\t\t\tDeleteWithInstance: pulumi.String(\"false\"),\n\t\t\tDiskId:             _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ens.Disk;\nimport com.pulumi.alicloud.ens.DiskArgs;\nimport com.pulumi.alicloud.ens.Instance;\nimport com.pulumi.alicloud.ens.InstanceArgs;\nimport com.pulumi.alicloud.ens.inputs.InstanceSystemDiskArgs;\nimport com.pulumi.alicloud.ens.DiskInstanceAttachment;\nimport com.pulumi.alicloud.ens.DiskInstanceAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Disk(\"default\", DiskArgs.builder()\n            .size(20)\n            .ensRegionId(\"cn-chenzhou-telecom_unicom_cmcc\")\n            .paymentType(\"PayAsYouGo\")\n            .category(\"cloud_efficiency\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .systemDisk(InstanceSystemDiskArgs.builder()\n                .size(20)\n                .build())\n            .imageId(\"centos_6_08_64_20G_alibase_20171208\")\n            .paymentType(\"Subscription\")\n            .instanceType(\"ens.sn1.stiny\")\n            .password(\"12345678ABCabc\")\n            .amount(1)\n            .internetMaxBandwidthOut(10)\n            .uniqueSuffix(true)\n            .publicIpIdentification(true)\n            .ensRegionId(\"cn-chenzhou-telecom_unicom_cmcc\")\n            .scheduleAreaLevel(\"Region\")\n            .periodUnit(\"Month\")\n            .period(1)\n            .build());\n\n        var defaultDiskInstanceAttachment = new DiskInstanceAttachment(\"defaultDiskInstanceAttachment\", DiskInstanceAttachmentArgs.builder()\n            .instanceId(defaultInstance.id())\n            .deleteWithInstance(\"false\")\n            .diskId(default_.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ens:Disk\n    properties:\n      size: '20'\n      ensRegionId: cn-chenzhou-telecom_unicom_cmcc\n      paymentType: PayAsYouGo\n      category: cloud_efficiency\n  defaultInstance:\n    type: alicloud:ens:Instance\n    name: default\n    properties:\n      systemDisk:\n        size: '20'\n      imageId: centos_6_08_64_20G_alibase_20171208\n      paymentType: Subscription\n      instanceType: ens.sn1.stiny\n      password: 12345678ABCabc\n      amount: '1'\n      internetMaxBandwidthOut: '10'\n      uniqueSuffix: true\n      publicIpIdentification: true\n      ensRegionId: cn-chenzhou-telecom_unicom_cmcc\n      scheduleAreaLevel: Region\n      periodUnit: Month\n      period: '1'\n  defaultDiskInstanceAttachment:\n    type: alicloud:ens:DiskInstanceAttachment\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      deleteWithInstance: 'false'\n      diskId: ${default.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nENS Disk Instance Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ens/diskInstanceAttachment:DiskInstanceAttachment example \u003cdisk_id\u003e:\u003cinstance_id\u003e\n```\n\n","properties":{"deleteWithInstance":{"type":"string","description":"Whether the cloud disk to be mounted is released with the instance  Value: true: When the instance is released, the cloud disk is released together with the instance. false: When the instance is released, the cloud disk is retained and is not released together with the instance. Empty means false by default.\n"},"diskId":{"type":"string","description":"The ID of the cloud disk to be mounted. The Cloud Disk (DiskId) and the instance (InstanceId) must be on the same node.\n"},"instanceId":{"type":"string","description":"Instance ID.\n"}},"required":["diskId","instanceId"],"inputProperties":{"deleteWithInstance":{"type":"string","description":"Whether the cloud disk to be mounted is released with the instance  Value: true: When the instance is released, the cloud disk is released together with the instance. false: When the instance is released, the cloud disk is retained and is not released together with the instance. Empty means false by default.\n"},"diskId":{"type":"string","description":"The ID of the cloud disk to be mounted. The Cloud Disk (DiskId) and the instance (InstanceId) must be on the same node.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"Instance ID.\n","willReplaceOnChanges":true}},"requiredInputs":["diskId","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DiskInstanceAttachment resources.\n","properties":{"deleteWithInstance":{"type":"string","description":"Whether the cloud disk to be mounted is released with the instance  Value: true: When the instance is released, the cloud disk is released together with the instance. false: When the instance is released, the cloud disk is retained and is not released together with the instance. Empty means false by default.\n"},"diskId":{"type":"string","description":"The ID of the cloud disk to be mounted. The Cloud Disk (DiskId) and the instance (InstanceId) must be on the same node.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"Instance ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ens/eip:Eip":{"description":"Provides a ENS Eip resource.\n\nEdge elastic public network IP. When you use it for the first time, please contact the product classmates to add a resource whitelist.\n\nFor information about ENS Eip and how to use it, see [What is Eip](https://www.alibabacloud.com/help/en/ens/developer-reference/api-createeipinstance).\n\n\u003e **NOTE:** Available since v1.213.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ens.Eip(\"default\", {\n    description: \"EipDescription_autotest\",\n    bandwidth: 5,\n    isp: \"cmcc\",\n    paymentType: \"PayAsYouGo\",\n    ensRegionId: \"cn-chenzhou-telecom_unicom_cmcc\",\n    eipName: name,\n    internetChargeType: \"95BandwidthByMonth\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ens.Eip(\"default\",\n    description=\"EipDescription_autotest\",\n    bandwidth=5,\n    isp=\"cmcc\",\n    payment_type=\"PayAsYouGo\",\n    ens_region_id=\"cn-chenzhou-telecom_unicom_cmcc\",\n    eip_name=name,\n    internet_charge_type=\"95BandwidthByMonth\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ens.Eip(\"default\", new()\n    {\n        Description = \"EipDescription_autotest\",\n        Bandwidth = 5,\n        Isp = \"cmcc\",\n        PaymentType = \"PayAsYouGo\",\n        EnsRegionId = \"cn-chenzhou-telecom_unicom_cmcc\",\n        EipName = name,\n        InternetChargeType = \"95BandwidthByMonth\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ens\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ens.NewEip(ctx, \"default\", \u0026ens.EipArgs{\n\t\t\tDescription:        pulumi.String(\"EipDescription_autotest\"),\n\t\t\tBandwidth:          pulumi.Int(5),\n\t\t\tIsp:                pulumi.String(\"cmcc\"),\n\t\t\tPaymentType:        pulumi.String(\"PayAsYouGo\"),\n\t\t\tEnsRegionId:        pulumi.String(\"cn-chenzhou-telecom_unicom_cmcc\"),\n\t\t\tEipName:            pulumi.String(name),\n\t\t\tInternetChargeType: pulumi.String(\"95BandwidthByMonth\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ens.Eip;\nimport com.pulumi.alicloud.ens.EipArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Eip(\"default\", EipArgs.builder()\n            .description(\"EipDescription_autotest\")\n            .bandwidth(5)\n            .isp(\"cmcc\")\n            .paymentType(\"PayAsYouGo\")\n            .ensRegionId(\"cn-chenzhou-telecom_unicom_cmcc\")\n            .eipName(name)\n            .internetChargeType(\"95BandwidthByMonth\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ens:Eip\n    properties:\n      description: EipDescription_autotest\n      bandwidth: '5'\n      isp: cmcc\n      paymentType: PayAsYouGo\n      ensRegionId: cn-chenzhou-telecom_unicom_cmcc\n      eipName: ${name}\n      internetChargeType: 95BandwidthByMonth\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nENS Eip can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ens/eip:Eip example \u003cid\u003e\n```\n\n","properties":{"bandwidth":{"type":"integer","description":"The maximum bandwidth of the EIP. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10000`\" pulumi-lang-dotnet=\"`10000`\" pulumi-lang-go=\"`10000`\" pulumi-lang-python=\"`10000`\" pulumi-lang-yaml=\"`10000`\" pulumi-lang-java=\"`10000`\"\u003e`10000`\u003c/span\u003e. Unit: Mbit/s.\n"},"createTime":{"type":"string","description":"The creation time of the EIP instance.\n"},"description":{"type":"string","description":"The description of the EIP.\n"},"eipName":{"type":"string","description":"The name of the EIP.\n"},"ensRegionId":{"type":"string","description":"Ens node ID.\n"},"internetChargeType":{"type":"string","description":"The metering method of the EIP. Valid value: `95BandwidthByMonth`.\n"},"isp":{"type":"string","description":"The Internet service provider. Valid value: \u003cspan pulumi-lang-nodejs=\"`cmcc`\" pulumi-lang-dotnet=\"`Cmcc`\" pulumi-lang-go=\"`cmcc`\" pulumi-lang-python=\"`cmcc`\" pulumi-lang-yaml=\"`cmcc`\" pulumi-lang-java=\"`cmcc`\"\u003e`cmcc`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unicom`\" pulumi-lang-dotnet=\"`Unicom`\" pulumi-lang-go=\"`unicom`\" pulumi-lang-python=\"`unicom`\" pulumi-lang-yaml=\"`unicom`\" pulumi-lang-java=\"`unicom`\"\u003e`unicom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`telecom`\" pulumi-lang-dotnet=\"`Telecom`\" pulumi-lang-go=\"`telecom`\" pulumi-lang-python=\"`telecom`\" pulumi-lang-yaml=\"`telecom`\" pulumi-lang-java=\"`telecom`\"\u003e`telecom`\u003c/span\u003e.\n"},"paymentType":{"type":"string","description":"The billing method of the EIP. Valid value: `PayAsYouGo`.\n"},"status":{"type":"string","description":"The status of the EIP.\n"}},"required":["bandwidth","createTime","ensRegionId","internetChargeType","isp","paymentType","status"],"inputProperties":{"bandwidth":{"type":"integer","description":"The maximum bandwidth of the EIP. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10000`\" pulumi-lang-dotnet=\"`10000`\" pulumi-lang-go=\"`10000`\" pulumi-lang-python=\"`10000`\" pulumi-lang-yaml=\"`10000`\" pulumi-lang-java=\"`10000`\"\u003e`10000`\u003c/span\u003e. Unit: Mbit/s.\n"},"description":{"type":"string","description":"The description of the EIP.\n"},"eipName":{"type":"string","description":"The name of the EIP.\n"},"ensRegionId":{"type":"string","description":"Ens node ID.\n","willReplaceOnChanges":true},"internetChargeType":{"type":"string","description":"The metering method of the EIP. Valid value: `95BandwidthByMonth`.\n","willReplaceOnChanges":true},"isp":{"type":"string","description":"The Internet service provider. Valid value: \u003cspan pulumi-lang-nodejs=\"`cmcc`\" pulumi-lang-dotnet=\"`Cmcc`\" pulumi-lang-go=\"`cmcc`\" pulumi-lang-python=\"`cmcc`\" pulumi-lang-yaml=\"`cmcc`\" pulumi-lang-java=\"`cmcc`\"\u003e`cmcc`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unicom`\" pulumi-lang-dotnet=\"`Unicom`\" pulumi-lang-go=\"`unicom`\" pulumi-lang-python=\"`unicom`\" pulumi-lang-yaml=\"`unicom`\" pulumi-lang-java=\"`unicom`\"\u003e`unicom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`telecom`\" pulumi-lang-dotnet=\"`Telecom`\" pulumi-lang-go=\"`telecom`\" pulumi-lang-python=\"`telecom`\" pulumi-lang-yaml=\"`telecom`\" pulumi-lang-java=\"`telecom`\"\u003e`telecom`\u003c/span\u003e.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The billing method of the EIP. Valid value: `PayAsYouGo`.\n","willReplaceOnChanges":true}},"requiredInputs":["ensRegionId","internetChargeType","paymentType"],"stateInputs":{"description":"Input properties used for looking up and filtering Eip resources.\n","properties":{"bandwidth":{"type":"integer","description":"The maximum bandwidth of the EIP. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10000`\" pulumi-lang-dotnet=\"`10000`\" pulumi-lang-go=\"`10000`\" pulumi-lang-python=\"`10000`\" pulumi-lang-yaml=\"`10000`\" pulumi-lang-java=\"`10000`\"\u003e`10000`\u003c/span\u003e. Unit: Mbit/s.\n"},"createTime":{"type":"string","description":"The creation time of the EIP instance.\n"},"description":{"type":"string","description":"The description of the EIP.\n"},"eipName":{"type":"string","description":"The name of the EIP.\n"},"ensRegionId":{"type":"string","description":"Ens node ID.\n","willReplaceOnChanges":true},"internetChargeType":{"type":"string","description":"The metering method of the EIP. Valid value: `95BandwidthByMonth`.\n","willReplaceOnChanges":true},"isp":{"type":"string","description":"The Internet service provider. Valid value: \u003cspan pulumi-lang-nodejs=\"`cmcc`\" pulumi-lang-dotnet=\"`Cmcc`\" pulumi-lang-go=\"`cmcc`\" pulumi-lang-python=\"`cmcc`\" pulumi-lang-yaml=\"`cmcc`\" pulumi-lang-java=\"`cmcc`\"\u003e`cmcc`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unicom`\" pulumi-lang-dotnet=\"`Unicom`\" pulumi-lang-go=\"`unicom`\" pulumi-lang-python=\"`unicom`\" pulumi-lang-yaml=\"`unicom`\" pulumi-lang-java=\"`unicom`\"\u003e`unicom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`telecom`\" pulumi-lang-dotnet=\"`Telecom`\" pulumi-lang-go=\"`telecom`\" pulumi-lang-python=\"`telecom`\" pulumi-lang-yaml=\"`telecom`\" pulumi-lang-java=\"`telecom`\"\u003e`telecom`\u003c/span\u003e.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The billing method of the EIP. Valid value: `PayAsYouGo`.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the EIP.\n"}},"type":"object"}},"alicloud:ens/eipInstanceAttachment:EipInstanceAttachment":{"description":"Provides a Ens Eip Instance Attachment resource.\n\nBind an EIP to an instance.\n\nFor information about Ens Eip Instance Attachment and how to use it, see [What is Eip Instance Attachment](https://www.alibabacloud.com/help/en/ens/developer-reference/api-ens-2017-11-10-associateenseipaddress).\n\n\u003e **NOTE:** Available since v1.227.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst ensRegionId = config.get(\"ensRegionId\") || \"cn-chenzhou-telecom_unicom_cmcc\";\nconst defaultXKjq1W = new alicloud.ens.Instance(\"defaultXKjq1W\", {\n    systemDisk: {\n        size: 20,\n        category: \"cloud_efficiency\",\n    },\n    schedulingStrategy: \"Concentrate\",\n    scheduleAreaLevel: \"Region\",\n    imageId: \"centos_6_08_64_20G_alibase_20171208\",\n    paymentType: \"Subscription\",\n    instanceType: \"ens.sn1.stiny\",\n    password: \"12345678abcABC\",\n    status: \"Running\",\n    amount: 1,\n    internetChargeType: \"95BandwidthByMonth\",\n    instanceName: name,\n    autoUseCoupon: \"true\",\n    instanceChargeStrategy: \"PriceHighPriority\",\n    ensRegionId: ensRegionId,\n    periodUnit: \"Month\",\n});\nconst defaultsGsN4e = new alicloud.ens.Eip(\"defaultsGsN4e\", {\n    bandwidth: 5,\n    eipName: name,\n    ensRegionId: ensRegionId,\n    internetChargeType: \"95BandwidthByMonth\",\n    paymentType: \"PayAsYouGo\",\n});\nconst _default = new alicloud.ens.EipInstanceAttachment(\"default\", {\n    instanceId: defaultXKjq1W.id,\n    allocationId: defaultsGsN4e.id,\n    instanceType: \"EnsInstance\",\n    standby: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nens_region_id = config.get(\"ensRegionId\")\nif ens_region_id is None:\n    ens_region_id = \"cn-chenzhou-telecom_unicom_cmcc\"\ndefault_x_kjq1_w = alicloud.ens.Instance(\"defaultXKjq1W\",\n    system_disk={\n        \"size\": 20,\n        \"category\": \"cloud_efficiency\",\n    },\n    scheduling_strategy=\"Concentrate\",\n    schedule_area_level=\"Region\",\n    image_id=\"centos_6_08_64_20G_alibase_20171208\",\n    payment_type=\"Subscription\",\n    instance_type=\"ens.sn1.stiny\",\n    password=\"12345678abcABC\",\n    status=\"Running\",\n    amount=1,\n    internet_charge_type=\"95BandwidthByMonth\",\n    instance_name=name,\n    auto_use_coupon=\"true\",\n    instance_charge_strategy=\"PriceHighPriority\",\n    ens_region_id=ens_region_id,\n    period_unit=\"Month\")\ndefaults_gs_n4e = alicloud.ens.Eip(\"defaultsGsN4e\",\n    bandwidth=5,\n    eip_name=name,\n    ens_region_id=ens_region_id,\n    internet_charge_type=\"95BandwidthByMonth\",\n    payment_type=\"PayAsYouGo\")\ndefault = alicloud.ens.EipInstanceAttachment(\"default\",\n    instance_id=default_x_kjq1_w.id,\n    allocation_id=defaults_gs_n4e.id,\n    instance_type=\"EnsInstance\",\n    standby=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var ensRegionId = config.Get(\"ensRegionId\") ?? \"cn-chenzhou-telecom_unicom_cmcc\";\n    var defaultXKjq1W = new AliCloud.Ens.Instance(\"defaultXKjq1W\", new()\n    {\n        SystemDisk = new AliCloud.Ens.Inputs.InstanceSystemDiskArgs\n        {\n            Size = 20,\n            Category = \"cloud_efficiency\",\n        },\n        SchedulingStrategy = \"Concentrate\",\n        ScheduleAreaLevel = \"Region\",\n        ImageId = \"centos_6_08_64_20G_alibase_20171208\",\n        PaymentType = \"Subscription\",\n        InstanceType = \"ens.sn1.stiny\",\n        Password = \"12345678abcABC\",\n        Status = \"Running\",\n        Amount = 1,\n        InternetChargeType = \"95BandwidthByMonth\",\n        InstanceName = name,\n        AutoUseCoupon = \"true\",\n        InstanceChargeStrategy = \"PriceHighPriority\",\n        EnsRegionId = ensRegionId,\n        PeriodUnit = \"Month\",\n    });\n\n    var defaultsGsN4e = new AliCloud.Ens.Eip(\"defaultsGsN4e\", new()\n    {\n        Bandwidth = 5,\n        EipName = name,\n        EnsRegionId = ensRegionId,\n        InternetChargeType = \"95BandwidthByMonth\",\n        PaymentType = \"PayAsYouGo\",\n    });\n\n    var @default = new AliCloud.Ens.EipInstanceAttachment(\"default\", new()\n    {\n        InstanceId = defaultXKjq1W.Id,\n        AllocationId = defaultsGsN4e.Id,\n        InstanceType = \"EnsInstance\",\n        Standby = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ens\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tensRegionId := \"cn-chenzhou-telecom_unicom_cmcc\"\n\t\tif param := cfg.Get(\"ensRegionId\"); param != \"\" {\n\t\t\tensRegionId = param\n\t\t}\n\t\tdefaultXKjq1W, err := ens.NewInstance(ctx, \"defaultXKjq1W\", \u0026ens.InstanceArgs{\n\t\t\tSystemDisk: \u0026ens.InstanceSystemDiskArgs{\n\t\t\t\tSize:     pulumi.Int(20),\n\t\t\t\tCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\t},\n\t\t\tSchedulingStrategy:     pulumi.String(\"Concentrate\"),\n\t\t\tScheduleAreaLevel:      pulumi.String(\"Region\"),\n\t\t\tImageId:                pulumi.String(\"centos_6_08_64_20G_alibase_20171208\"),\n\t\t\tPaymentType:            pulumi.String(\"Subscription\"),\n\t\t\tInstanceType:           pulumi.String(\"ens.sn1.stiny\"),\n\t\t\tPassword:               pulumi.String(\"12345678abcABC\"),\n\t\t\tStatus:                 pulumi.String(\"Running\"),\n\t\t\tAmount:                 pulumi.Int(1),\n\t\t\tInternetChargeType:     pulumi.String(\"95BandwidthByMonth\"),\n\t\t\tInstanceName:           pulumi.String(name),\n\t\t\tAutoUseCoupon:          pulumi.String(\"true\"),\n\t\t\tInstanceChargeStrategy: pulumi.String(\"PriceHighPriority\"),\n\t\t\tEnsRegionId:            pulumi.String(ensRegionId),\n\t\t\tPeriodUnit:             pulumi.String(\"Month\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultsGsN4e, err := ens.NewEip(ctx, \"defaultsGsN4e\", \u0026ens.EipArgs{\n\t\t\tBandwidth:          pulumi.Int(5),\n\t\t\tEipName:            pulumi.String(name),\n\t\t\tEnsRegionId:        pulumi.String(ensRegionId),\n\t\t\tInternetChargeType: pulumi.String(\"95BandwidthByMonth\"),\n\t\t\tPaymentType:        pulumi.String(\"PayAsYouGo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ens.NewEipInstanceAttachment(ctx, \"default\", \u0026ens.EipInstanceAttachmentArgs{\n\t\t\tInstanceId:   defaultXKjq1W.ID(),\n\t\t\tAllocationId: defaultsGsN4e.ID(),\n\t\t\tInstanceType: pulumi.String(\"EnsInstance\"),\n\t\t\tStandby:      pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ens.Instance;\nimport com.pulumi.alicloud.ens.InstanceArgs;\nimport com.pulumi.alicloud.ens.inputs.InstanceSystemDiskArgs;\nimport com.pulumi.alicloud.ens.Eip;\nimport com.pulumi.alicloud.ens.EipArgs;\nimport com.pulumi.alicloud.ens.EipInstanceAttachment;\nimport com.pulumi.alicloud.ens.EipInstanceAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var ensRegionId = config.get(\"ensRegionId\").orElse(\"cn-chenzhou-telecom_unicom_cmcc\");\n        var defaultXKjq1W = new Instance(\"defaultXKjq1W\", InstanceArgs.builder()\n            .systemDisk(InstanceSystemDiskArgs.builder()\n                .size(20)\n                .category(\"cloud_efficiency\")\n                .build())\n            .schedulingStrategy(\"Concentrate\")\n            .scheduleAreaLevel(\"Region\")\n            .imageId(\"centos_6_08_64_20G_alibase_20171208\")\n            .paymentType(\"Subscription\")\n            .instanceType(\"ens.sn1.stiny\")\n            .password(\"12345678abcABC\")\n            .status(\"Running\")\n            .amount(1)\n            .internetChargeType(\"95BandwidthByMonth\")\n            .instanceName(name)\n            .autoUseCoupon(\"true\")\n            .instanceChargeStrategy(\"PriceHighPriority\")\n            .ensRegionId(ensRegionId)\n            .periodUnit(\"Month\")\n            .build());\n\n        var defaultsGsN4e = new Eip(\"defaultsGsN4e\", EipArgs.builder()\n            .bandwidth(5)\n            .eipName(name)\n            .ensRegionId(ensRegionId)\n            .internetChargeType(\"95BandwidthByMonth\")\n            .paymentType(\"PayAsYouGo\")\n            .build());\n\n        var default_ = new EipInstanceAttachment(\"default\", EipInstanceAttachmentArgs.builder()\n            .instanceId(defaultXKjq1W.id())\n            .allocationId(defaultsGsN4e.id())\n            .instanceType(\"EnsInstance\")\n            .standby(false)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  ensRegionId:\n    type: string\n    default: cn-chenzhou-telecom_unicom_cmcc\nresources:\n  defaultXKjq1W:\n    type: alicloud:ens:Instance\n    properties:\n      systemDisk:\n        size: '20'\n        category: cloud_efficiency\n      schedulingStrategy: Concentrate\n      scheduleAreaLevel: Region\n      imageId: centos_6_08_64_20G_alibase_20171208\n      paymentType: Subscription\n      instanceType: ens.sn1.stiny\n      password: 12345678abcABC\n      status: Running\n      amount: '1'\n      internetChargeType: 95BandwidthByMonth\n      instanceName: ${name}\n      autoUseCoupon: 'true'\n      instanceChargeStrategy: PriceHighPriority\n      ensRegionId: ${ensRegionId}\n      periodUnit: Month\n  defaultsGsN4e:\n    type: alicloud:ens:Eip\n    properties:\n      bandwidth: '5'\n      eipName: ${name}\n      ensRegionId: ${ensRegionId}\n      internetChargeType: 95BandwidthByMonth\n      paymentType: PayAsYouGo\n  default:\n    type: alicloud:ens:EipInstanceAttachment\n    properties:\n      instanceId: ${defaultXKjq1W.id}\n      allocationId: ${defaultsGsN4e.id}\n      instanceType: EnsInstance\n      standby: 'false'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEns Eip Instance Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ens/eipInstanceAttachment:EipInstanceAttachment example \u003callocation_id\u003e:\u003cinstance_id\u003e:\u003cinstance_type\u003e\n```\n\n","properties":{"allocationId":{"type":"string","description":"The first ID of the resource\n"},"instanceId":{"type":"string","description":"Instance ID\n"},"instanceType":{"type":"string","description":"The type of the EIP instance. Value:\n- `Nat`:NAT gateway.\n- `SlbInstance`: Server Load Balancer (ELB).\n- `NetworkInterface`: Secondary ENI.\n- `EnsInstance` (default): The ENS instance.\n"},"standby":{"type":"boolean","description":"Indicates whether the EIP is a backup EIP. Value:\n- true: Spare.\n- false: not standby.\n"},"status":{"type":"string","description":"The status of the EIP.\n"}},"required":["allocationId","instanceId","instanceType","status"],"inputProperties":{"allocationId":{"type":"string","description":"The first ID of the resource\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"Instance ID\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of the EIP instance. Value:\n- `Nat`:NAT gateway.\n- `SlbInstance`: Server Load Balancer (ELB).\n- `NetworkInterface`: Secondary ENI.\n- `EnsInstance` (default): The ENS instance.\n","willReplaceOnChanges":true},"standby":{"type":"boolean","description":"Indicates whether the EIP is a backup EIP. Value:\n- true: Spare.\n- false: not standby.\n","willReplaceOnChanges":true}},"requiredInputs":["allocationId","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering EipInstanceAttachment resources.\n","properties":{"allocationId":{"type":"string","description":"The first ID of the resource\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"Instance ID\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of the EIP instance. Value:\n- `Nat`:NAT gateway.\n- `SlbInstance`: Server Load Balancer (ELB).\n- `NetworkInterface`: Secondary ENI.\n- `EnsInstance` (default): The ENS instance.\n","willReplaceOnChanges":true},"standby":{"type":"boolean","description":"Indicates whether the EIP is a backup EIP. Value:\n- true: Spare.\n- false: not standby.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the EIP.\n"}},"type":"object"}},"alicloud:ens/image:Image":{"description":"Provides a ENS Image resource.\n\n\n\nFor information about ENS Image and how to use it, see [What is Image](https://www.alibabacloud.com/help/en/ens/developer-reference/api-ens-2017-11-10-createimage).\n\n\u003e **NOTE:** Available since v1.216.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ens.Instance(\"default\", {\n    systemDisk: {\n        size: 20,\n    },\n    scheduleAreaLevel: \"Region\",\n    imageId: \"centos_6_08_64_20G_alibase_20171208\",\n    paymentType: \"PayAsYouGo\",\n    password: \"12345678ABCabc\",\n    amount: 1,\n    internetMaxBandwidthOut: 10,\n    publicIpIdentification: true,\n    ensRegionId: \"cn-chenzhou-telecom_unicom_cmcc\",\n    periodUnit: \"Month\",\n    instanceType: \"ens.sn1.stiny\",\n    status: \"Stopped\",\n});\nconst defaultImage = new alicloud.ens.Image(\"default\", {\n    imageName: name,\n    instanceId: _default.id,\n    deleteAfterImageUpload: \"false\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ens.Instance(\"default\",\n    system_disk={\n        \"size\": 20,\n    },\n    schedule_area_level=\"Region\",\n    image_id=\"centos_6_08_64_20G_alibase_20171208\",\n    payment_type=\"PayAsYouGo\",\n    password=\"12345678ABCabc\",\n    amount=1,\n    internet_max_bandwidth_out=10,\n    public_ip_identification=True,\n    ens_region_id=\"cn-chenzhou-telecom_unicom_cmcc\",\n    period_unit=\"Month\",\n    instance_type=\"ens.sn1.stiny\",\n    status=\"Stopped\")\ndefault_image = alicloud.ens.Image(\"default\",\n    image_name=name,\n    instance_id=default.id,\n    delete_after_image_upload=\"false\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ens.Instance(\"default\", new()\n    {\n        SystemDisk = new AliCloud.Ens.Inputs.InstanceSystemDiskArgs\n        {\n            Size = 20,\n        },\n        ScheduleAreaLevel = \"Region\",\n        ImageId = \"centos_6_08_64_20G_alibase_20171208\",\n        PaymentType = \"PayAsYouGo\",\n        Password = \"12345678ABCabc\",\n        Amount = 1,\n        InternetMaxBandwidthOut = 10,\n        PublicIpIdentification = true,\n        EnsRegionId = \"cn-chenzhou-telecom_unicom_cmcc\",\n        PeriodUnit = \"Month\",\n        InstanceType = \"ens.sn1.stiny\",\n        Status = \"Stopped\",\n    });\n\n    var defaultImage = new AliCloud.Ens.Image(\"default\", new()\n    {\n        ImageName = name,\n        InstanceId = @default.Id,\n        DeleteAfterImageUpload = \"false\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ens\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := ens.NewInstance(ctx, \"default\", \u0026ens.InstanceArgs{\n\t\t\tSystemDisk: \u0026ens.InstanceSystemDiskArgs{\n\t\t\t\tSize: pulumi.Int(20),\n\t\t\t},\n\t\t\tScheduleAreaLevel:       pulumi.String(\"Region\"),\n\t\t\tImageId:                 pulumi.String(\"centos_6_08_64_20G_alibase_20171208\"),\n\t\t\tPaymentType:             pulumi.String(\"PayAsYouGo\"),\n\t\t\tPassword:                pulumi.String(\"12345678ABCabc\"),\n\t\t\tAmount:                  pulumi.Int(1),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t\tPublicIpIdentification:  pulumi.Bool(true),\n\t\t\tEnsRegionId:             pulumi.String(\"cn-chenzhou-telecom_unicom_cmcc\"),\n\t\t\tPeriodUnit:              pulumi.String(\"Month\"),\n\t\t\tInstanceType:            pulumi.String(\"ens.sn1.stiny\"),\n\t\t\tStatus:                  pulumi.String(\"Stopped\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ens.NewImage(ctx, \"default\", \u0026ens.ImageArgs{\n\t\t\tImageName:              pulumi.String(name),\n\t\t\tInstanceId:             _default.ID(),\n\t\t\tDeleteAfterImageUpload: pulumi.String(\"false\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ens.Instance;\nimport com.pulumi.alicloud.ens.InstanceArgs;\nimport com.pulumi.alicloud.ens.inputs.InstanceSystemDiskArgs;\nimport com.pulumi.alicloud.ens.Image;\nimport com.pulumi.alicloud.ens.ImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .systemDisk(InstanceSystemDiskArgs.builder()\n                .size(20)\n                .build())\n            .scheduleAreaLevel(\"Region\")\n            .imageId(\"centos_6_08_64_20G_alibase_20171208\")\n            .paymentType(\"PayAsYouGo\")\n            .password(\"12345678ABCabc\")\n            .amount(1)\n            .internetMaxBandwidthOut(10)\n            .publicIpIdentification(true)\n            .ensRegionId(\"cn-chenzhou-telecom_unicom_cmcc\")\n            .periodUnit(\"Month\")\n            .instanceType(\"ens.sn1.stiny\")\n            .status(\"Stopped\")\n            .build());\n\n        var defaultImage = new Image(\"defaultImage\", ImageArgs.builder()\n            .imageName(name)\n            .instanceId(default_.id())\n            .deleteAfterImageUpload(\"false\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ens:Instance\n    properties:\n      systemDisk:\n        size: '20'\n      scheduleAreaLevel: Region\n      imageId: centos_6_08_64_20G_alibase_20171208\n      paymentType: PayAsYouGo\n      password: 12345678ABCabc\n      amount: '1'\n      internetMaxBandwidthOut: '10'\n      publicIpIdentification: true\n      ensRegionId: cn-chenzhou-telecom_unicom_cmcc\n      periodUnit: Month\n      instanceType: ens.sn1.stiny\n      status: Stopped\n  defaultImage:\n    type: alicloud:ens:Image\n    name: default\n    properties:\n      imageName: ${name}\n      instanceId: ${default.id}\n      deleteAfterImageUpload: 'false'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nENS Image can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ens/image:Image example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The image creation time.\n"},"deleteAfterImageUpload":{"type":"string","description":"Specifies whether to automatically release the instance after the image is packaged and uploaded. Only image builders are supported. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"imageName":{"type":"string","description":"The name of the image. The name must be 2 to 128 characters in length. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-). It must start with a letter but cannot start with http:// or https://. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"status":{"type":"string","description":"The state of the image.\n"},"targetOssRegionId":{"type":"string","description":"The region of the target OSS where the image is to be stored.\n"}},"required":["createTime","imageName","status","targetOssRegionId"],"inputProperties":{"deleteAfterImageUpload":{"type":"string","description":"Specifies whether to automatically release the instance after the image is packaged and uploaded. Only image builders are supported. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"imageName":{"type":"string","description":"The name of the image. The name must be 2 to 128 characters in length. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-). It must start with a letter but cannot start with http:// or https://. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"targetOssRegionId":{"type":"string","description":"The region of the target OSS where the image is to be stored.\n","willReplaceOnChanges":true}},"requiredInputs":["imageName"],"stateInputs":{"description":"Input properties used for looking up and filtering Image resources.\n","properties":{"createTime":{"type":"string","description":"The image creation time.\n"},"deleteAfterImageUpload":{"type":"string","description":"Specifies whether to automatically release the instance after the image is packaged and uploaded. Only image builders are supported. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"imageName":{"type":"string","description":"The name of the image. The name must be 2 to 128 characters in length. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-). It must start with a letter but cannot start with http:// or https://. The name can contain letters, digits, colons (:), underscores (_), and hyphens (-).\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The state of the image.\n"},"targetOssRegionId":{"type":"string","description":"The region of the target OSS where the image is to be stored.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ens/instance:Instance":{"description":"Provides a Ens Instance resource.\n\n\nFor information about ENS Instance and how to use it, see [What is Instance](https://next.api.alibabacloud.com/document/Ens/2017-11-10/RunInstances).\n\n\u003e **NOTE:** Available since v1.216.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ens.Instance(\"default\", {\n    period: 1,\n    dataDisks: [\n        {\n            size: 20,\n            category: \"cloud_efficiency\",\n        },\n        {\n            size: 30,\n            category: \"cloud_efficiency\",\n        },\n        {\n            size: 40,\n            category: \"cloud_efficiency\",\n        },\n    ],\n    publicIpIdentification: true,\n    periodUnit: \"Month\",\n    schedulingStrategy: \"Concentrate\",\n    scheduleAreaLevel: \"Region\",\n    imageId: \"centos_6_08_64_20G_alibase_20171208\",\n    carrier: \"cmcc\",\n    instanceType: \"ens.sn1.tiny\",\n    hostName: \"exampleHost80\",\n    password: \"Example123456@@\",\n    netDistrictCode: \"100102\",\n    internetChargeType: \"95BandwidthByMonth\",\n    instanceName: name,\n    internetMaxBandwidthOut: 100,\n    ensRegionId: \"cn-wuxi-telecom_unicom_cmcc-2\",\n    systemDisk: {\n        size: 20,\n    },\n    schedulingPriceStrategy: \"PriceHighPriority\",\n    userData: \"IyEvYmluL3NoCmVjaG8gIkhlbGxvIFdvcmxkLiAgVGhlIHRpbWUgaXMgbm93ICQoZGF0ZSAtUikhIiB8IHRlZSAvcm9vdC9vdXRwdXQudHh0\",\n    instanceChargeStrategy: \"user\",\n    paymentType: \"Subscription\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ens.Instance(\"default\",\n    period=1,\n    data_disks=[\n        {\n            \"size\": 20,\n            \"category\": \"cloud_efficiency\",\n        },\n        {\n            \"size\": 30,\n            \"category\": \"cloud_efficiency\",\n        },\n        {\n            \"size\": 40,\n            \"category\": \"cloud_efficiency\",\n        },\n    ],\n    public_ip_identification=True,\n    period_unit=\"Month\",\n    scheduling_strategy=\"Concentrate\",\n    schedule_area_level=\"Region\",\n    image_id=\"centos_6_08_64_20G_alibase_20171208\",\n    carrier=\"cmcc\",\n    instance_type=\"ens.sn1.tiny\",\n    host_name=\"exampleHost80\",\n    password=\"Example123456@@\",\n    net_district_code=\"100102\",\n    internet_charge_type=\"95BandwidthByMonth\",\n    instance_name=name,\n    internet_max_bandwidth_out=100,\n    ens_region_id=\"cn-wuxi-telecom_unicom_cmcc-2\",\n    system_disk={\n        \"size\": 20,\n    },\n    scheduling_price_strategy=\"PriceHighPriority\",\n    user_data=\"IyEvYmluL3NoCmVjaG8gIkhlbGxvIFdvcmxkLiAgVGhlIHRpbWUgaXMgbm93ICQoZGF0ZSAtUikhIiB8IHRlZSAvcm9vdC9vdXRwdXQudHh0\",\n    instance_charge_strategy=\"user\",\n    payment_type=\"Subscription\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ens.Instance(\"default\", new()\n    {\n        Period = 1,\n        DataDisks = new[]\n        {\n            new AliCloud.Ens.Inputs.InstanceDataDiskArgs\n            {\n                Size = 20,\n                Category = \"cloud_efficiency\",\n            },\n            new AliCloud.Ens.Inputs.InstanceDataDiskArgs\n            {\n                Size = 30,\n                Category = \"cloud_efficiency\",\n            },\n            new AliCloud.Ens.Inputs.InstanceDataDiskArgs\n            {\n                Size = 40,\n                Category = \"cloud_efficiency\",\n            },\n        },\n        PublicIpIdentification = true,\n        PeriodUnit = \"Month\",\n        SchedulingStrategy = \"Concentrate\",\n        ScheduleAreaLevel = \"Region\",\n        ImageId = \"centos_6_08_64_20G_alibase_20171208\",\n        Carrier = \"cmcc\",\n        InstanceType = \"ens.sn1.tiny\",\n        HostName = \"exampleHost80\",\n        Password = \"Example123456@@\",\n        NetDistrictCode = \"100102\",\n        InternetChargeType = \"95BandwidthByMonth\",\n        InstanceName = name,\n        InternetMaxBandwidthOut = 100,\n        EnsRegionId = \"cn-wuxi-telecom_unicom_cmcc-2\",\n        SystemDisk = new AliCloud.Ens.Inputs.InstanceSystemDiskArgs\n        {\n            Size = 20,\n        },\n        SchedulingPriceStrategy = \"PriceHighPriority\",\n        UserData = \"IyEvYmluL3NoCmVjaG8gIkhlbGxvIFdvcmxkLiAgVGhlIHRpbWUgaXMgbm93ICQoZGF0ZSAtUikhIiB8IHRlZSAvcm9vdC9vdXRwdXQudHh0\",\n        InstanceChargeStrategy = \"user\",\n        PaymentType = \"Subscription\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ens\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ens.NewInstance(ctx, \"default\", \u0026ens.InstanceArgs{\n\t\t\tPeriod: pulumi.Int(1),\n\t\t\tDataDisks: ens.InstanceDataDiskArray{\n\t\t\t\t\u0026ens.InstanceDataDiskArgs{\n\t\t\t\t\tSize:     pulumi.Int(20),\n\t\t\t\t\tCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\t\t},\n\t\t\t\t\u0026ens.InstanceDataDiskArgs{\n\t\t\t\t\tSize:     pulumi.Int(30),\n\t\t\t\t\tCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\t\t},\n\t\t\t\t\u0026ens.InstanceDataDiskArgs{\n\t\t\t\t\tSize:     pulumi.Int(40),\n\t\t\t\t\tCategory: pulumi.String(\"cloud_efficiency\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPublicIpIdentification:  pulumi.Bool(true),\n\t\t\tPeriodUnit:              pulumi.String(\"Month\"),\n\t\t\tSchedulingStrategy:      pulumi.String(\"Concentrate\"),\n\t\t\tScheduleAreaLevel:       pulumi.String(\"Region\"),\n\t\t\tImageId:                 pulumi.String(\"centos_6_08_64_20G_alibase_20171208\"),\n\t\t\tCarrier:                 pulumi.String(\"cmcc\"),\n\t\t\tInstanceType:            pulumi.String(\"ens.sn1.tiny\"),\n\t\t\tHostName:                pulumi.String(\"exampleHost80\"),\n\t\t\tPassword:                pulumi.String(\"Example123456@@\"),\n\t\t\tNetDistrictCode:         pulumi.String(\"100102\"),\n\t\t\tInternetChargeType:      pulumi.String(\"95BandwidthByMonth\"),\n\t\t\tInstanceName:            pulumi.String(name),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(100),\n\t\t\tEnsRegionId:             pulumi.String(\"cn-wuxi-telecom_unicom_cmcc-2\"),\n\t\t\tSystemDisk: \u0026ens.InstanceSystemDiskArgs{\n\t\t\t\tSize: pulumi.Int(20),\n\t\t\t},\n\t\t\tSchedulingPriceStrategy: pulumi.String(\"PriceHighPriority\"),\n\t\t\tUserData:                pulumi.String(\"IyEvYmluL3NoCmVjaG8gIkhlbGxvIFdvcmxkLiAgVGhlIHRpbWUgaXMgbm93ICQoZGF0ZSAtUikhIiB8IHRlZSAvcm9vdC9vdXRwdXQudHh0\"),\n\t\t\tInstanceChargeStrategy:  pulumi.String(\"user\"),\n\t\t\tPaymentType:             pulumi.String(\"Subscription\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ens.Instance;\nimport com.pulumi.alicloud.ens.InstanceArgs;\nimport com.pulumi.alicloud.ens.inputs.InstanceDataDiskArgs;\nimport com.pulumi.alicloud.ens.inputs.InstanceSystemDiskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .period(1)\n            .dataDisks(            \n                InstanceDataDiskArgs.builder()\n                    .size(20)\n                    .category(\"cloud_efficiency\")\n                    .build(),\n                InstanceDataDiskArgs.builder()\n                    .size(30)\n                    .category(\"cloud_efficiency\")\n                    .build(),\n                InstanceDataDiskArgs.builder()\n                    .size(40)\n                    .category(\"cloud_efficiency\")\n                    .build())\n            .publicIpIdentification(true)\n            .periodUnit(\"Month\")\n            .schedulingStrategy(\"Concentrate\")\n            .scheduleAreaLevel(\"Region\")\n            .imageId(\"centos_6_08_64_20G_alibase_20171208\")\n            .carrier(\"cmcc\")\n            .instanceType(\"ens.sn1.tiny\")\n            .hostName(\"exampleHost80\")\n            .password(\"Example123456@@\")\n            .netDistrictCode(\"100102\")\n            .internetChargeType(\"95BandwidthByMonth\")\n            .instanceName(name)\n            .internetMaxBandwidthOut(100)\n            .ensRegionId(\"cn-wuxi-telecom_unicom_cmcc-2\")\n            .systemDisk(InstanceSystemDiskArgs.builder()\n                .size(20)\n                .build())\n            .schedulingPriceStrategy(\"PriceHighPriority\")\n            .userData(\"IyEvYmluL3NoCmVjaG8gIkhlbGxvIFdvcmxkLiAgVGhlIHRpbWUgaXMgbm93ICQoZGF0ZSAtUikhIiB8IHRlZSAvcm9vdC9vdXRwdXQudHh0\")\n            .instanceChargeStrategy(\"user\")\n            .paymentType(\"Subscription\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ens:Instance\n    properties:\n      period: 1\n      dataDisks:\n        - size: 20\n          category: cloud_efficiency\n        - size: 30\n          category: cloud_efficiency\n        - size: 40\n          category: cloud_efficiency\n      publicIpIdentification: true\n      periodUnit: Month\n      schedulingStrategy: Concentrate\n      scheduleAreaLevel: Region\n      imageId: centos_6_08_64_20G_alibase_20171208\n      carrier: cmcc\n      instanceType: ens.sn1.tiny\n      hostName: exampleHost80\n      password: Example123456@@\n      netDistrictCode: '100102'\n      internetChargeType: 95BandwidthByMonth\n      instanceName: ${name}\n      internetMaxBandwidthOut: 100\n      ensRegionId: cn-wuxi-telecom_unicom_cmcc-2\n      systemDisk:\n        size: 20\n      schedulingPriceStrategy: PriceHighPriority\n      userData: IyEvYmluL3NoCmVjaG8gIkhlbGxvIFdvcmxkLiAgVGhlIHRpbWUgaXMgbm93ICQoZGF0ZSAtUikhIiB8IHRlZSAvcm9vdC9vdXRwdXQudHh0\n      instanceChargeStrategy: user\n      paymentType: Subscription\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.ens.Instance`\" pulumi-lang-dotnet=\"`alicloud.ens.Instance`\" pulumi-lang-go=\"`ens.Instance`\" pulumi-lang-python=\"`ens.Instance`\" pulumi-lang-yaml=\"`alicloud.ens.Instance`\" pulumi-lang-java=\"`alicloud.ens.Instance`\"\u003e`alicloud.ens.Instance`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.ens.Instance`\" pulumi-lang-dotnet=\"`alicloud.ens.Instance`\" pulumi-lang-go=\"`ens.Instance`\" pulumi-lang-python=\"`ens.Instance`\" pulumi-lang-yaml=\"`alicloud.ens.Instance`\" pulumi-lang-java=\"`alicloud.ens.Instance`\"\u003e`alicloud.ens.Instance`\u003c/span\u003e resource allows you to manage  \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"Subscription\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEns Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ens/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"amount":{"type":"integer","description":"The number of instances created, with a minimum of 1 and a maximum of 100\n"},"autoReleaseTime":{"type":"string","description":"The automatic release time of the pay-as-you-go instance. According to the [ISO 8601] standard, UTC +0 time is used. The format is: 'yyyy-MM-ddTHH:mm:ssZ '.\n- If the second ('ss') value is not '00', it is automatically taken as the start of the current minute ('mm').\n- The minimum release time is one hour after the current time.\n"},"autoRenew":{"type":"boolean","description":"Whether to automatically renew the logo. The default value is false. This parameter is invalid when you pay by volume.\n"},"autoUseCoupon":{"type":"string","description":"Whether to use vouchers. The default is to use. Value:\n- true (used)\n- false (not used)\n"},"billingCycle":{"type":"string","description":"The billing cycle for instance computing resources. Only instance-level pay-as-you-go is supported. Value\n- Hour: hourly billing\n- Day: Daily billing\n- Month: monthly billing\n"},"carrier":{"type":"string","description":"Operator, required for regional scheduling. Optional values:\n- cmcc (mobile)\n- unicom\n- telecom\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ens/InstanceDataDisk:InstanceDataDisk"},"description":"Data disk specifications See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below.\n"},"ensRegionId":{"type":"string","description":"The node ID. When ScheduleAreaLevel is Region, EnsRegionId is required. When ScheduleAreaLevel is Big,Middle,Small, EnsRegionId is invalid.\n"},"forceStop":{"type":"string","description":"Whether to force the identity when operating the instance. Optional values:\n- true: Force\n- false (default): non-mandatory\n"},"hostName":{"type":"string","description":"The host name of the instance. Example value: test-HostName\n"},"imageId":{"type":"string","description":"The image ID of the instance. The arm version card cannot be filled in. Other specifications are required. Example value: m-5si16wo6simkt267p8b7h * * * *\n"},"includeDataDisks":{"type":"boolean","description":"Whether the Payment type of the disk created with the instance is converted.\n"},"instanceChargeStrategy":{"type":"string","description":"The instance billing policy. Optional values:\n- instance: instance granularity (the subscription method does not support instance)\n- user: user Dimension (user is not transmitted or supported in the prepaid mode)\n"},"instanceName":{"type":"string","description":"The instance name. Example value: test-InstanceName. It must be 2 to 128 characters in length and must start with an uppercase or lowercase letter or a Chinese character. It cannot start with http:// or https. Can contain Chinese, English, numbers, half-width colons (:), underscores (_), periods (.), or hyphens (-)\n\nThe default value is the InstanceId of the instance.\n"},"instanceType":{"type":"string","description":"The specification of the instance. Example value: ens.sn1.small\n"},"internetChargeType":{"type":"string","description":"Instance bandwidth billing method. If the billing method can be selected for the first purchase, the subsequent value of this field will be processed by default according to the billing method selected for the first time. Optional values:\n- BandwidthByDay: Daily peak bandwidth\n- 95bandwidthbymonth: 95 peak bandwidth\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Maximum public network bandwidth. The field type is Long, and the precision may be lost during serialization/deserialization. Please note that the value must not be greater than 9007199254740991\n"},"ipType":{"type":"string","description":"The IP type. Value:\n- ipv4 (default):IPv4\n- ipv6:IPv6\n- ipv4Andipv6:IPv4 and IPv6\n"},"keyPairName":{"type":"string","description":"The key pair name.\n\n\u003e **NOTE:**  At least one of `Password`, `KeyPairName`, and **PasswordInherit.\n"},"netDistrictCode":{"type":"string","description":"The area code. Example value: 350000. Required for regional-level scheduling, invalid for node-level scheduling\n"},"netWorkId":{"type":"string","description":"The network ID of the instance. Can only be used in node-level scheduling\n"},"password":{"type":"string","description":"The instance password. At least one of Password, KeyPairName, and PasswordInherit\n","secret":true},"passwordInherit":{"type":"boolean","description":"Whether to use image preset password prompt: Password and KeyPairNamePasswordInherit must be passed\n"},"paymentType":{"type":"string","description":"Instance payment method. Since v1.230.0, you can modify payment_type. Optional values:\n- Subscription: prepaid, annual and monthly\n- PayAsYouGo: Pay by volume\n"},"period":{"type":"integer","description":"The duration of the resource purchase. Value method:\n- If PeriodUnit is set to Day, Period can only be set to 3.\n- If PeriodUnit is set to Month, Period can be set to 1-9,12.\n"},"periodUnit":{"type":"string","description":"The unit of time for purchasing resources. Value:\n- Month (default): purchase by Month\n- Day: buy by Day\n"},"privateIpAddress":{"type":"string","description":"The private IP address. Can only be used for node-level scheduling. If a private IP address is specified, the number of instances can only be one, and both the private IP address and the vSwitch ID are not empty, the private IP address takes effect.\n"},"publicIpIdentification":{"type":"boolean","description":"Whether to assign a public IP identifier. Value:\n- true (default): Assign\n- false: do not assign\n"},"scheduleAreaLevel":{"type":"string","description":"Scheduling level, through which node-level scheduling or area scheduling is performed. Optional values:\n- Node-level scheduling: Region\n- Regional scheduling: Big (region),Middle (province),Small (city)\n"},"schedulingPriceStrategy":{"type":"string","description":"Scheduling price policy. If it is not filled in, the default priority is low price. Value:\n- PriceLowPriority\n- PriceLowPriority (priority low price)\n"},"schedulingStrategy":{"type":"string","description":"Scheduling policy. Optional values:\n- Concentrate for node-level scheduling\n- For regional scheduling, Concentrate, Disperse\n"},"securityId":{"type":"string","description":"ID of the security group to which the instance belongs.\n"},"spotStrategy":{"type":"string","description":"The bidding strategy for pay-as-you-go instances. It takes effect when the value of the 'InstanceChargeType' parameter is set to 'PostPaid. Value range:\n- NoSpot: normal pay-as-you-go instance (default)\n- SpotAsPriceGo: The system automatically bids, following the actual price in the current market.\n"},"status":{"type":"string","description":"Status of the instance\n"},"systemDisk":{"$ref":"#/types/alicloud:ens/InstanceSystemDisk:InstanceSystemDisk","description":"System Disk Specification. SystemDisk is a non-required parameter when InstanceType is x86_pm,x86_bmi,x86_bm,pc_bmi, or arm_bmi. SystemDisk is a required parameter when instanceType is other specification families. See \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag bound to the instance\n"},"uniqueSuffix":{"type":"boolean","description":"Indicates whether to add an ordered suffix to HostName and InstanceName. The ordered suffix starts from 001 and cannot exceed 999.\n"},"userData":{"type":"string","description":"User-defined data, maximum support 16KB. You can pass in the UserData information. The UserData is encoded in Base64 format.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which the instance belongs. Can only be used in node-level scheduling\n"}},"required":["dataDisks","ensRegionId","hostName","instanceName","instanceType","internetMaxBandwidthOut","netWorkId","paymentType","privateIpAddress","scheduleAreaLevel","securityId","status","vswitchId"],"inputProperties":{"amount":{"type":"integer","description":"The number of instances created, with a minimum of 1 and a maximum of 100\n"},"autoReleaseTime":{"type":"string","description":"The automatic release time of the pay-as-you-go instance. According to the [ISO 8601] standard, UTC +0 time is used. The format is: 'yyyy-MM-ddTHH:mm:ssZ '.\n- If the second ('ss') value is not '00', it is automatically taken as the start of the current minute ('mm').\n- The minimum release time is one hour after the current time.\n","willReplaceOnChanges":true},"autoRenew":{"type":"boolean","description":"Whether to automatically renew the logo. The default value is false. This parameter is invalid when you pay by volume.\n"},"autoUseCoupon":{"type":"string","description":"Whether to use vouchers. The default is to use. Value:\n- true (used)\n- false (not used)\n"},"billingCycle":{"type":"string","description":"The billing cycle for instance computing resources. Only instance-level pay-as-you-go is supported. Value\n- Hour: hourly billing\n- Day: Daily billing\n- Month: monthly billing\n"},"carrier":{"type":"string","description":"Operator, required for regional scheduling. Optional values:\n- cmcc (mobile)\n- unicom\n- telecom\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ens/InstanceDataDisk:InstanceDataDisk"},"description":"Data disk specifications See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"ensRegionId":{"type":"string","description":"The node ID. When ScheduleAreaLevel is Region, EnsRegionId is required. When ScheduleAreaLevel is Big,Middle,Small, EnsRegionId is invalid.\n","willReplaceOnChanges":true},"forceStop":{"type":"string","description":"Whether to force the identity when operating the instance. Optional values:\n- true: Force\n- false (default): non-mandatory\n"},"hostName":{"type":"string","description":"The host name of the instance. Example value: test-HostName\n"},"imageId":{"type":"string","description":"The image ID of the instance. The arm version card cannot be filled in. Other specifications are required. Example value: m-5si16wo6simkt267p8b7h * * * *\n","willReplaceOnChanges":true},"includeDataDisks":{"type":"boolean","description":"Whether the Payment type of the disk created with the instance is converted.\n"},"instanceChargeStrategy":{"type":"string","description":"The instance billing policy. Optional values:\n- instance: instance granularity (the subscription method does not support instance)\n- user: user Dimension (user is not transmitted or supported in the prepaid mode)\n"},"instanceName":{"type":"string","description":"The instance name. Example value: test-InstanceName. It must be 2 to 128 characters in length and must start with an uppercase or lowercase letter or a Chinese character. It cannot start with http:// or https. Can contain Chinese, English, numbers, half-width colons (:), underscores (_), periods (.), or hyphens (-)\n\nThe default value is the InstanceId of the instance.\n"},"instanceType":{"type":"string","description":"The specification of the instance. Example value: ens.sn1.small\n"},"internetChargeType":{"type":"string","description":"Instance bandwidth billing method. If the billing method can be selected for the first purchase, the subsequent value of this field will be processed by default according to the billing method selected for the first time. Optional values:\n- BandwidthByDay: Daily peak bandwidth\n- 95bandwidthbymonth: 95 peak bandwidth\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Maximum public network bandwidth. The field type is Long, and the precision may be lost during serialization/deserialization. Please note that the value must not be greater than 9007199254740991\n","willReplaceOnChanges":true},"ipType":{"type":"string","description":"The IP type. Value:\n- ipv4 (default):IPv4\n- ipv6:IPv6\n- ipv4Andipv6:IPv4 and IPv6\n"},"keyPairName":{"type":"string","description":"The key pair name.\n\n\u003e **NOTE:**  At least one of `Password`, `KeyPairName`, and **PasswordInherit.\n","willReplaceOnChanges":true},"netDistrictCode":{"type":"string","description":"The area code. Example value: 350000. Required for regional-level scheduling, invalid for node-level scheduling\n"},"netWorkId":{"type":"string","description":"The network ID of the instance. Can only be used in node-level scheduling\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The instance password. At least one of Password, KeyPairName, and PasswordInherit\n","secret":true},"passwordInherit":{"type":"boolean","description":"Whether to use image preset password prompt: Password and KeyPairNamePasswordInherit must be passed\n"},"paymentType":{"type":"string","description":"Instance payment method. Since v1.230.0, you can modify payment_type. Optional values:\n- Subscription: prepaid, annual and monthly\n- PayAsYouGo: Pay by volume\n"},"period":{"type":"integer","description":"The duration of the resource purchase. Value method:\n- If PeriodUnit is set to Day, Period can only be set to 3.\n- If PeriodUnit is set to Month, Period can be set to 1-9,12.\n"},"periodUnit":{"type":"string","description":"The unit of time for purchasing resources. Value:\n- Month (default): purchase by Month\n- Day: buy by Day\n"},"privateIpAddress":{"type":"string","description":"The private IP address. Can only be used for node-level scheduling. If a private IP address is specified, the number of instances can only be one, and both the private IP address and the vSwitch ID are not empty, the private IP address takes effect.\n","willReplaceOnChanges":true},"publicIpIdentification":{"type":"boolean","description":"Whether to assign a public IP identifier. Value:\n- true (default): Assign\n- false: do not assign\n"},"scheduleAreaLevel":{"type":"string","description":"Scheduling level, through which node-level scheduling or area scheduling is performed. Optional values:\n- Node-level scheduling: Region\n- Regional scheduling: Big (region),Middle (province),Small (city)\n"},"schedulingPriceStrategy":{"type":"string","description":"Scheduling price policy. If it is not filled in, the default priority is low price. Value:\n- PriceLowPriority\n- PriceLowPriority (priority low price)\n"},"schedulingStrategy":{"type":"string","description":"Scheduling policy. Optional values:\n- Concentrate for node-level scheduling\n- For regional scheduling, Concentrate, Disperse\n"},"securityId":{"type":"string","description":"ID of the security group to which the instance belongs.\n","willReplaceOnChanges":true},"spotStrategy":{"type":"string","description":"The bidding strategy for pay-as-you-go instances. It takes effect when the value of the 'InstanceChargeType' parameter is set to 'PostPaid. Value range:\n- NoSpot: normal pay-as-you-go instance (default)\n- SpotAsPriceGo: The system automatically bids, following the actual price in the current market.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Status of the instance\n"},"systemDisk":{"$ref":"#/types/alicloud:ens/InstanceSystemDisk:InstanceSystemDisk","description":"System Disk Specification. SystemDisk is a non-required parameter when InstanceType is x86_pm,x86_bmi,x86_bm,pc_bmi, or arm_bmi. SystemDisk is a required parameter when instanceType is other specification families. See \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag bound to the instance\n"},"uniqueSuffix":{"type":"boolean","description":"Indicates whether to add an ordered suffix to HostName and InstanceName. The ordered suffix starts from 001 and cannot exceed 999.\n"},"userData":{"type":"string","description":"User-defined data, maximum support 16KB. You can pass in the UserData information. The UserData is encoded in Base64 format.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which the instance belongs. Can only be used in node-level scheduling\n","willReplaceOnChanges":true}},"requiredInputs":["instanceType","paymentType","scheduleAreaLevel"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"amount":{"type":"integer","description":"The number of instances created, with a minimum of 1 and a maximum of 100\n"},"autoReleaseTime":{"type":"string","description":"The automatic release time of the pay-as-you-go instance. According to the [ISO 8601] standard, UTC +0 time is used. The format is: 'yyyy-MM-ddTHH:mm:ssZ '.\n- If the second ('ss') value is not '00', it is automatically taken as the start of the current minute ('mm').\n- The minimum release time is one hour after the current time.\n","willReplaceOnChanges":true},"autoRenew":{"type":"boolean","description":"Whether to automatically renew the logo. The default value is false. This parameter is invalid when you pay by volume.\n"},"autoUseCoupon":{"type":"string","description":"Whether to use vouchers. The default is to use. Value:\n- true (used)\n- false (not used)\n"},"billingCycle":{"type":"string","description":"The billing cycle for instance computing resources. Only instance-level pay-as-you-go is supported. Value\n- Hour: hourly billing\n- Day: Daily billing\n- Month: monthly billing\n"},"carrier":{"type":"string","description":"Operator, required for regional scheduling. Optional values:\n- cmcc (mobile)\n- unicom\n- telecom\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ens/InstanceDataDisk:InstanceDataDisk"},"description":"Data disk specifications See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"ensRegionId":{"type":"string","description":"The node ID. When ScheduleAreaLevel is Region, EnsRegionId is required. When ScheduleAreaLevel is Big,Middle,Small, EnsRegionId is invalid.\n","willReplaceOnChanges":true},"forceStop":{"type":"string","description":"Whether to force the identity when operating the instance. Optional values:\n- true: Force\n- false (default): non-mandatory\n"},"hostName":{"type":"string","description":"The host name of the instance. Example value: test-HostName\n"},"imageId":{"type":"string","description":"The image ID of the instance. The arm version card cannot be filled in. Other specifications are required. Example value: m-5si16wo6simkt267p8b7h * * * *\n","willReplaceOnChanges":true},"includeDataDisks":{"type":"boolean","description":"Whether the Payment type of the disk created with the instance is converted.\n"},"instanceChargeStrategy":{"type":"string","description":"The instance billing policy. Optional values:\n- instance: instance granularity (the subscription method does not support instance)\n- user: user Dimension (user is not transmitted or supported in the prepaid mode)\n"},"instanceName":{"type":"string","description":"The instance name. Example value: test-InstanceName. It must be 2 to 128 characters in length and must start with an uppercase or lowercase letter or a Chinese character. It cannot start with http:// or https. Can contain Chinese, English, numbers, half-width colons (:), underscores (_), periods (.), or hyphens (-)\n\nThe default value is the InstanceId of the instance.\n"},"instanceType":{"type":"string","description":"The specification of the instance. Example value: ens.sn1.small\n"},"internetChargeType":{"type":"string","description":"Instance bandwidth billing method. If the billing method can be selected for the first purchase, the subsequent value of this field will be processed by default according to the billing method selected for the first time. Optional values:\n- BandwidthByDay: Daily peak bandwidth\n- 95bandwidthbymonth: 95 peak bandwidth\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Maximum public network bandwidth. The field type is Long, and the precision may be lost during serialization/deserialization. Please note that the value must not be greater than 9007199254740991\n","willReplaceOnChanges":true},"ipType":{"type":"string","description":"The IP type. Value:\n- ipv4 (default):IPv4\n- ipv6:IPv6\n- ipv4Andipv6:IPv4 and IPv6\n"},"keyPairName":{"type":"string","description":"The key pair name.\n\n\u003e **NOTE:**  At least one of `Password`, `KeyPairName`, and **PasswordInherit.\n","willReplaceOnChanges":true},"netDistrictCode":{"type":"string","description":"The area code. Example value: 350000. Required for regional-level scheduling, invalid for node-level scheduling\n"},"netWorkId":{"type":"string","description":"The network ID of the instance. Can only be used in node-level scheduling\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The instance password. At least one of Password, KeyPairName, and PasswordInherit\n","secret":true},"passwordInherit":{"type":"boolean","description":"Whether to use image preset password prompt: Password and KeyPairNamePasswordInherit must be passed\n"},"paymentType":{"type":"string","description":"Instance payment method. Since v1.230.0, you can modify payment_type. Optional values:\n- Subscription: prepaid, annual and monthly\n- PayAsYouGo: Pay by volume\n"},"period":{"type":"integer","description":"The duration of the resource purchase. Value method:\n- If PeriodUnit is set to Day, Period can only be set to 3.\n- If PeriodUnit is set to Month, Period can be set to 1-9,12.\n"},"periodUnit":{"type":"string","description":"The unit of time for purchasing resources. Value:\n- Month (default): purchase by Month\n- Day: buy by Day\n"},"privateIpAddress":{"type":"string","description":"The private IP address. Can only be used for node-level scheduling. If a private IP address is specified, the number of instances can only be one, and both the private IP address and the vSwitch ID are not empty, the private IP address takes effect.\n","willReplaceOnChanges":true},"publicIpIdentification":{"type":"boolean","description":"Whether to assign a public IP identifier. Value:\n- true (default): Assign\n- false: do not assign\n"},"scheduleAreaLevel":{"type":"string","description":"Scheduling level, through which node-level scheduling or area scheduling is performed. Optional values:\n- Node-level scheduling: Region\n- Regional scheduling: Big (region),Middle (province),Small (city)\n"},"schedulingPriceStrategy":{"type":"string","description":"Scheduling price policy. If it is not filled in, the default priority is low price. Value:\n- PriceLowPriority\n- PriceLowPriority (priority low price)\n"},"schedulingStrategy":{"type":"string","description":"Scheduling policy. Optional values:\n- Concentrate for node-level scheduling\n- For regional scheduling, Concentrate, Disperse\n"},"securityId":{"type":"string","description":"ID of the security group to which the instance belongs.\n","willReplaceOnChanges":true},"spotStrategy":{"type":"string","description":"The bidding strategy for pay-as-you-go instances. It takes effect when the value of the 'InstanceChargeType' parameter is set to 'PostPaid. Value range:\n- NoSpot: normal pay-as-you-go instance (default)\n- SpotAsPriceGo: The system automatically bids, following the actual price in the current market.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Status of the instance\n"},"systemDisk":{"$ref":"#/types/alicloud:ens/InstanceSystemDisk:InstanceSystemDisk","description":"System Disk Specification. SystemDisk is a non-required parameter when InstanceType is x86_pm,x86_bmi,x86_bm,pc_bmi, or arm_bmi. SystemDisk is a required parameter when instanceType is other specification families. See \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag bound to the instance\n"},"uniqueSuffix":{"type":"boolean","description":"Indicates whether to add an ordered suffix to HostName and InstanceName. The ordered suffix starts from 001 and cannot exceed 999.\n"},"userData":{"type":"string","description":"User-defined data, maximum support 16KB. You can pass in the UserData information. The UserData is encoded in Base64 format.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which the instance belongs. Can only be used in node-level scheduling\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ens/instanceSecurityGroupAttachment:InstanceSecurityGroupAttachment":{"description":"Provides a ENS Instance Security Group Attachment resource.\n\nBind instance and security group.\n\nFor information about ENS Instance Security Group Attachment and how to use it, see [What is Instance Security Group Attachment](https://next.api.alibabacloud.com/document/Ens/2017-11-10/JoinSecurityGroup).\n\n\u003e **NOTE:** Available since v1.216.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ens.Instance(\"default\", {\n    systemDisk: {\n        size: 20,\n    },\n    scheduleAreaLevel: \"Region\",\n    imageId: \"centos_6_08_64_20G_alibase_20171208\",\n    paymentType: \"Subscription\",\n    instanceType: \"ens.sn1.stiny\",\n    password: \"12345678ABCabc\",\n    amount: 1,\n    period: 1,\n    internetMaxBandwidthOut: 10,\n    publicIpIdentification: true,\n    ensRegionId: \"cn-chenzhou-telecom_unicom_cmcc\",\n    periodUnit: \"Month\",\n});\nconst defaultSecurityGroup = new alicloud.ens.SecurityGroup(\"default\", {\n    description: \"InstanceSecurityGroupAttachment_Description\",\n    securityGroupName: name,\n});\nconst defaultInstanceSecurityGroupAttachment = new alicloud.ens.InstanceSecurityGroupAttachment(\"default\", {\n    instanceId: _default.id,\n    securityGroupId: defaultSecurityGroup.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ens.Instance(\"default\",\n    system_disk={\n        \"size\": 20,\n    },\n    schedule_area_level=\"Region\",\n    image_id=\"centos_6_08_64_20G_alibase_20171208\",\n    payment_type=\"Subscription\",\n    instance_type=\"ens.sn1.stiny\",\n    password=\"12345678ABCabc\",\n    amount=1,\n    period=1,\n    internet_max_bandwidth_out=10,\n    public_ip_identification=True,\n    ens_region_id=\"cn-chenzhou-telecom_unicom_cmcc\",\n    period_unit=\"Month\")\ndefault_security_group = alicloud.ens.SecurityGroup(\"default\",\n    description=\"InstanceSecurityGroupAttachment_Description\",\n    security_group_name=name)\ndefault_instance_security_group_attachment = alicloud.ens.InstanceSecurityGroupAttachment(\"default\",\n    instance_id=default.id,\n    security_group_id=default_security_group.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ens.Instance(\"default\", new()\n    {\n        SystemDisk = new AliCloud.Ens.Inputs.InstanceSystemDiskArgs\n        {\n            Size = 20,\n        },\n        ScheduleAreaLevel = \"Region\",\n        ImageId = \"centos_6_08_64_20G_alibase_20171208\",\n        PaymentType = \"Subscription\",\n        InstanceType = \"ens.sn1.stiny\",\n        Password = \"12345678ABCabc\",\n        Amount = 1,\n        Period = 1,\n        InternetMaxBandwidthOut = 10,\n        PublicIpIdentification = true,\n        EnsRegionId = \"cn-chenzhou-telecom_unicom_cmcc\",\n        PeriodUnit = \"Month\",\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ens.SecurityGroup(\"default\", new()\n    {\n        Description = \"InstanceSecurityGroupAttachment_Description\",\n        SecurityGroupName = name,\n    });\n\n    var defaultInstanceSecurityGroupAttachment = new AliCloud.Ens.InstanceSecurityGroupAttachment(\"default\", new()\n    {\n        InstanceId = @default.Id,\n        SecurityGroupId = defaultSecurityGroup.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ens\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := ens.NewInstance(ctx, \"default\", \u0026ens.InstanceArgs{\n\t\t\tSystemDisk: \u0026ens.InstanceSystemDiskArgs{\n\t\t\t\tSize: pulumi.Int(20),\n\t\t\t},\n\t\t\tScheduleAreaLevel:       pulumi.String(\"Region\"),\n\t\t\tImageId:                 pulumi.String(\"centos_6_08_64_20G_alibase_20171208\"),\n\t\t\tPaymentType:             pulumi.String(\"Subscription\"),\n\t\t\tInstanceType:            pulumi.String(\"ens.sn1.stiny\"),\n\t\t\tPassword:                pulumi.String(\"12345678ABCabc\"),\n\t\t\tAmount:                  pulumi.Int(1),\n\t\t\tPeriod:                  pulumi.Int(1),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t\tPublicIpIdentification:  pulumi.Bool(true),\n\t\t\tEnsRegionId:             pulumi.String(\"cn-chenzhou-telecom_unicom_cmcc\"),\n\t\t\tPeriodUnit:              pulumi.String(\"Month\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ens.NewSecurityGroup(ctx, \"default\", \u0026ens.SecurityGroupArgs{\n\t\t\tDescription:       pulumi.String(\"InstanceSecurityGroupAttachment_Description\"),\n\t\t\tSecurityGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ens.NewInstanceSecurityGroupAttachment(ctx, \"default\", \u0026ens.InstanceSecurityGroupAttachmentArgs{\n\t\t\tInstanceId:      _default.ID(),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ens.Instance;\nimport com.pulumi.alicloud.ens.InstanceArgs;\nimport com.pulumi.alicloud.ens.inputs.InstanceSystemDiskArgs;\nimport com.pulumi.alicloud.ens.SecurityGroup;\nimport com.pulumi.alicloud.ens.SecurityGroupArgs;\nimport com.pulumi.alicloud.ens.InstanceSecurityGroupAttachment;\nimport com.pulumi.alicloud.ens.InstanceSecurityGroupAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .systemDisk(InstanceSystemDiskArgs.builder()\n                .size(20)\n                .build())\n            .scheduleAreaLevel(\"Region\")\n            .imageId(\"centos_6_08_64_20G_alibase_20171208\")\n            .paymentType(\"Subscription\")\n            .instanceType(\"ens.sn1.stiny\")\n            .password(\"12345678ABCabc\")\n            .amount(1)\n            .period(1)\n            .internetMaxBandwidthOut(10)\n            .publicIpIdentification(true)\n            .ensRegionId(\"cn-chenzhou-telecom_unicom_cmcc\")\n            .periodUnit(\"Month\")\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .description(\"InstanceSecurityGroupAttachment_Description\")\n            .securityGroupName(name)\n            .build());\n\n        var defaultInstanceSecurityGroupAttachment = new InstanceSecurityGroupAttachment(\"defaultInstanceSecurityGroupAttachment\", InstanceSecurityGroupAttachmentArgs.builder()\n            .instanceId(default_.id())\n            .securityGroupId(defaultSecurityGroup.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ens:Instance\n    properties:\n      systemDisk:\n        size: '20'\n      scheduleAreaLevel: Region\n      imageId: centos_6_08_64_20G_alibase_20171208\n      paymentType: Subscription\n      instanceType: ens.sn1.stiny\n      password: 12345678ABCabc\n      amount: '1'\n      period: '1'\n      internetMaxBandwidthOut: '10'\n      publicIpIdentification: true\n      ensRegionId: cn-chenzhou-telecom_unicom_cmcc\n      periodUnit: Month\n  defaultSecurityGroup:\n    type: alicloud:ens:SecurityGroup\n    name: default\n    properties:\n      description: InstanceSecurityGroupAttachment_Description\n      securityGroupName: ${name}\n  defaultInstanceSecurityGroupAttachment:\n    type: alicloud:ens:InstanceSecurityGroupAttachment\n    name: default\n    properties:\n      instanceId: ${default.id}\n      securityGroupId: ${defaultSecurityGroup.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nENS Instance Security Group Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ens/instanceSecurityGroupAttachment:InstanceSecurityGroupAttachment example \u003cinstance_id\u003e:\u003csecurity_group_id\u003e\n```\n\n","properties":{"instanceId":{"type":"string","description":"Instance ID.\n"},"securityGroupId":{"type":"string","description":"Security group ID.\n"}},"required":["instanceId","securityGroupId"],"inputProperties":{"instanceId":{"type":"string","description":"Instance ID.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"Security group ID.\n","willReplaceOnChanges":true}},"requiredInputs":["securityGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceSecurityGroupAttachment resources.\n","properties":{"instanceId":{"type":"string","description":"Instance ID.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"Security group ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ens/keyPair:KeyPair":{"description":"Provides a ENS Key Pair resource.\n\nFor information about ENS Key Pair and how to use it, see [What is Key Pair](https://www.alibabacloud.com/help/en/ens/latest/createkeypair).\n\n\u003e **NOTE:** Available since v1.133.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = new alicloud.ens.KeyPair(\"example\", {\n    keyPairName: name,\n    version: \"2017-11-10\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.ens.KeyPair(\"example\",\n    key_pair_name=name,\n    version=\"2017-11-10\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = new AliCloud.Ens.KeyPair(\"example\", new()\n    {\n        KeyPairName = name,\n        Version = \"2017-11-10\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ens\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ens.NewKeyPair(ctx, \"example\", \u0026ens.KeyPairArgs{\n\t\t\tKeyPairName: pulumi.String(name),\n\t\t\tVersion:     pulumi.String(\"2017-11-10\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ens.KeyPair;\nimport com.pulumi.alicloud.ens.KeyPairArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var example = new KeyPair(\"example\", KeyPairArgs.builder()\n            .keyPairName(name)\n            .version(\"2017-11-10\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  example:\n    type: alicloud:ens:KeyPair\n    properties:\n      keyPairName: ${name}\n      version: 2017-11-10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nENS Key Pair can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ens/keyPair:KeyPair example \u003ckey_pair_name\u003e:\u003cversion\u003e\n```\n\n","properties":{"keyPairName":{"type":"string","description":"The name of the key pair.\n"},"version":{"type":"string","description":"The version number.\n"}},"required":["keyPairName","version"],"inputProperties":{"keyPairName":{"type":"string","description":"The name of the key pair.\n","willReplaceOnChanges":true},"version":{"type":"string","description":"The version number.\n","willReplaceOnChanges":true}},"requiredInputs":["keyPairName","version"],"stateInputs":{"description":"Input properties used for looking up and filtering KeyPair resources.\n","properties":{"keyPairName":{"type":"string","description":"The name of the key pair.\n","willReplaceOnChanges":true},"version":{"type":"string","description":"The version number.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ens/loadBalancer:LoadBalancer":{"description":"Provides a ENS Load Balancer resource.\n\nLoad balancing.\n\nFor information about ENS Load Balancer and how to use it, see [What is Load Balancer](https://www.alibabacloud.com/help/en/ens/developer-reference/api-createloadbalancer).\n\n\u003e **NOTE:** Available since v1.213.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst network = new alicloud.ens.Network(\"network\", {\n    networkName: name,\n    description: name,\n    cidrBlock: \"192.168.2.0/24\",\n    ensRegionId: \"cn-chenzhou-telecom_unicom_cmcc\",\n});\nconst _switch = new alicloud.ens.Vswitch(\"switch\", {\n    description: name,\n    cidrBlock: \"192.168.2.0/24\",\n    vswitchName: name,\n    ensRegionId: \"cn-chenzhou-telecom_unicom_cmcc\",\n    networkId: network.id,\n});\nconst _default = new alicloud.ens.LoadBalancer(\"default\", {\n    loadBalancerName: name,\n    paymentType: \"PayAsYouGo\",\n    ensRegionId: \"cn-chenzhou-telecom_unicom_cmcc\",\n    loadBalancerSpec: \"elb.s1.small\",\n    vswitchId: _switch.id,\n    networkId: network.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nnetwork = alicloud.ens.Network(\"network\",\n    network_name=name,\n    description=name,\n    cidr_block=\"192.168.2.0/24\",\n    ens_region_id=\"cn-chenzhou-telecom_unicom_cmcc\")\nswitch = alicloud.ens.Vswitch(\"switch\",\n    description=name,\n    cidr_block=\"192.168.2.0/24\",\n    vswitch_name=name,\n    ens_region_id=\"cn-chenzhou-telecom_unicom_cmcc\",\n    network_id=network.id)\ndefault = alicloud.ens.LoadBalancer(\"default\",\n    load_balancer_name=name,\n    payment_type=\"PayAsYouGo\",\n    ens_region_id=\"cn-chenzhou-telecom_unicom_cmcc\",\n    load_balancer_spec=\"elb.s1.small\",\n    vswitch_id=switch.id,\n    network_id=network.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var network = new AliCloud.Ens.Network(\"network\", new()\n    {\n        NetworkName = name,\n        Description = name,\n        CidrBlock = \"192.168.2.0/24\",\n        EnsRegionId = \"cn-chenzhou-telecom_unicom_cmcc\",\n    });\n\n    var @switch = new AliCloud.Ens.Vswitch(\"switch\", new()\n    {\n        Description = name,\n        CidrBlock = \"192.168.2.0/24\",\n        VswitchName = name,\n        EnsRegionId = \"cn-chenzhou-telecom_unicom_cmcc\",\n        NetworkId = network.Id,\n    });\n\n    var @default = new AliCloud.Ens.LoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = name,\n        PaymentType = \"PayAsYouGo\",\n        EnsRegionId = \"cn-chenzhou-telecom_unicom_cmcc\",\n        LoadBalancerSpec = \"elb.s1.small\",\n        VswitchId = @switch.Id,\n        NetworkId = network.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ens\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tnetwork, err := ens.NewNetwork(ctx, \"network\", \u0026ens.NetworkArgs{\n\t\t\tNetworkName: pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.2.0/24\"),\n\t\t\tEnsRegionId: pulumi.String(\"cn-chenzhou-telecom_unicom_cmcc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_switch, err := ens.NewVswitch(ctx, \"switch\", \u0026ens.VswitchArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.2.0/24\"),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tEnsRegionId: pulumi.String(\"cn-chenzhou-telecom_unicom_cmcc\"),\n\t\t\tNetworkId:   network.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ens.NewLoadBalancer(ctx, \"default\", \u0026ens.LoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tPaymentType:      pulumi.String(\"PayAsYouGo\"),\n\t\t\tEnsRegionId:      pulumi.String(\"cn-chenzhou-telecom_unicom_cmcc\"),\n\t\t\tLoadBalancerSpec: pulumi.String(\"elb.s1.small\"),\n\t\t\tVswitchId:        _switch.ID(),\n\t\t\tNetworkId:        network.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ens.Network;\nimport com.pulumi.alicloud.ens.NetworkArgs;\nimport com.pulumi.alicloud.ens.Vswitch;\nimport com.pulumi.alicloud.ens.VswitchArgs;\nimport com.pulumi.alicloud.ens.LoadBalancer;\nimport com.pulumi.alicloud.ens.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var network = new Network(\"network\", NetworkArgs.builder()\n            .networkName(name)\n            .description(name)\n            .cidrBlock(\"192.168.2.0/24\")\n            .ensRegionId(\"cn-chenzhou-telecom_unicom_cmcc\")\n            .build());\n\n        var switch_ = new Vswitch(\"switch\", VswitchArgs.builder()\n            .description(name)\n            .cidrBlock(\"192.168.2.0/24\")\n            .vswitchName(name)\n            .ensRegionId(\"cn-chenzhou-telecom_unicom_cmcc\")\n            .networkId(network.id())\n            .build());\n\n        var default_ = new LoadBalancer(\"default\", LoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .paymentType(\"PayAsYouGo\")\n            .ensRegionId(\"cn-chenzhou-telecom_unicom_cmcc\")\n            .loadBalancerSpec(\"elb.s1.small\")\n            .vswitchId(switch_.id())\n            .networkId(network.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  network:\n    type: alicloud:ens:Network\n    properties:\n      networkName: ${name}\n      description: ${name}\n      cidrBlock: 192.168.2.0/24\n      ensRegionId: cn-chenzhou-telecom_unicom_cmcc\n  switch:\n    type: alicloud:ens:Vswitch\n    properties:\n      description: ${name}\n      cidrBlock: 192.168.2.0/24\n      vswitchName: ${name}\n      ensRegionId: cn-chenzhou-telecom_unicom_cmcc\n      networkId: ${network.id}\n  default:\n    type: alicloud:ens:LoadBalancer\n    properties:\n      loadBalancerName: ${name}\n      paymentType: PayAsYouGo\n      ensRegionId: cn-chenzhou-telecom_unicom_cmcc\n      loadBalancerSpec: elb.s1.small\n      vswitchId: ${switch.id}\n      networkId: ${network.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nENS Load Balancer can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ens/loadBalancer:LoadBalancer example \u003cid\u003e\n```\n\n","properties":{"backendServers":{"type":"array","items":{"$ref":"#/types/alicloud:ens/LoadBalancerBackendServer:LoadBalancerBackendServer"},"description":"The list of backend servers. See \u003cspan pulumi-lang-nodejs=\"`backendServers`\" pulumi-lang-dotnet=\"`BackendServers`\" pulumi-lang-go=\"`backendServers`\" pulumi-lang-python=\"`backend_servers`\" pulumi-lang-yaml=\"`backendServers`\" pulumi-lang-java=\"`backendServers`\"\u003e`backend_servers`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"The creation Time (UTC) of the load balancing instance.\n"},"ensRegionId":{"type":"string","description":"The ID of the ENS node.\n"},"loadBalancerName":{"type":"string","description":"Name of the Server Load Balancer instance. The length is 1~80 English or Chinese characters. When this parameter is not specified, the system randomly assigns an instance name. Cannot start with http:// and https.\n"},"loadBalancerSpec":{"type":"string","description":"Specifications of the Server Load Balancer instance. Optional values: elb.s1.small,elb.s3.medium,elb.s2.small,elb.s2.medium,elb.s3.small.\n"},"networkId":{"type":"string","description":"The network ID of the created edge load balancing (ELB) instance.\n"},"paymentType":{"type":"string","description":"Server Load Balancer Instance Payment Type. Value:PayAsYouGo\n"},"status":{"type":"string","description":"The status of the SLB instance.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which the VPC instance belongs.\n"}},"required":["createTime","ensRegionId","loadBalancerSpec","networkId","paymentType","status","vswitchId"],"inputProperties":{"backendServers":{"type":"array","items":{"$ref":"#/types/alicloud:ens/LoadBalancerBackendServer:LoadBalancerBackendServer"},"description":"The list of backend servers. See \u003cspan pulumi-lang-nodejs=\"`backendServers`\" pulumi-lang-dotnet=\"`BackendServers`\" pulumi-lang-go=\"`backendServers`\" pulumi-lang-python=\"`backend_servers`\" pulumi-lang-yaml=\"`backendServers`\" pulumi-lang-java=\"`backendServers`\"\u003e`backend_servers`\u003c/span\u003e below.\n"},"ensRegionId":{"type":"string","description":"The ID of the ENS node.\n","willReplaceOnChanges":true},"loadBalancerName":{"type":"string","description":"Name of the Server Load Balancer instance. The length is 1~80 English or Chinese characters. When this parameter is not specified, the system randomly assigns an instance name. Cannot start with http:// and https.\n"},"loadBalancerSpec":{"type":"string","description":"Specifications of the Server Load Balancer instance. Optional values: elb.s1.small,elb.s3.medium,elb.s2.small,elb.s2.medium,elb.s3.small.\n","willReplaceOnChanges":true},"networkId":{"type":"string","description":"The network ID of the created edge load balancing (ELB) instance.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"Server Load Balancer Instance Payment Type. Value:PayAsYouGo\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which the VPC instance belongs.\n","willReplaceOnChanges":true}},"requiredInputs":["ensRegionId","loadBalancerSpec","networkId","paymentType","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancer resources.\n","properties":{"backendServers":{"type":"array","items":{"$ref":"#/types/alicloud:ens/LoadBalancerBackendServer:LoadBalancerBackendServer"},"description":"The list of backend servers. See \u003cspan pulumi-lang-nodejs=\"`backendServers`\" pulumi-lang-dotnet=\"`BackendServers`\" pulumi-lang-go=\"`backendServers`\" pulumi-lang-python=\"`backend_servers`\" pulumi-lang-yaml=\"`backendServers`\" pulumi-lang-java=\"`backendServers`\"\u003e`backend_servers`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"The creation Time (UTC) of the load balancing instance.\n"},"ensRegionId":{"type":"string","description":"The ID of the ENS node.\n","willReplaceOnChanges":true},"loadBalancerName":{"type":"string","description":"Name of the Server Load Balancer instance. The length is 1~80 English or Chinese characters. When this parameter is not specified, the system randomly assigns an instance name. Cannot start with http:// and https.\n"},"loadBalancerSpec":{"type":"string","description":"Specifications of the Server Load Balancer instance. Optional values: elb.s1.small,elb.s3.medium,elb.s2.small,elb.s2.medium,elb.s3.small.\n","willReplaceOnChanges":true},"networkId":{"type":"string","description":"The network ID of the created edge load balancing (ELB) instance.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"Server Load Balancer Instance Payment Type. Value:PayAsYouGo\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the SLB instance.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which the VPC instance belongs.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ens/natGateway:NatGateway":{"description":"Provides a ENS Nat Gateway resource.\n\nNat gateway of ENS.\n\nFor information about ENS Nat Gateway and how to use it, see [What is Nat Gateway](https://next.api.alibabacloud.com/document/Ens/2017-11-10/CreateNatGateway).\n\n\u003e **NOTE:** Available since v1.227.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst ensRegionId = config.get(\"ensRegionId\") || \"cn-chenzhou-telecom_unicom_cmcc\";\nconst defaultObbrL7 = new alicloud.ens.Network(\"defaultObbrL7\", {\n    networkName: name,\n    description: name,\n    cidrBlock: \"10.0.0.0/8\",\n    ensRegionId: ensRegionId,\n});\nconst defaulteFw783 = new alicloud.ens.Vswitch(\"defaulteFw783\", {\n    cidrBlock: \"10.0.8.0/24\",\n    vswitchName: name,\n    ensRegionId: defaultObbrL7.ensRegionId,\n    networkId: defaultObbrL7.id,\n});\nconst _default = new alicloud.ens.NatGateway(\"default\", {\n    vswitchId: defaulteFw783.id,\n    ensRegionId: defaulteFw783.ensRegionId,\n    networkId: defaulteFw783.networkId,\n    instanceType: \"enat.default\",\n    natName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nens_region_id = config.get(\"ensRegionId\")\nif ens_region_id is None:\n    ens_region_id = \"cn-chenzhou-telecom_unicom_cmcc\"\ndefault_obbr_l7 = alicloud.ens.Network(\"defaultObbrL7\",\n    network_name=name,\n    description=name,\n    cidr_block=\"10.0.0.0/8\",\n    ens_region_id=ens_region_id)\ndefaulte_fw783 = alicloud.ens.Vswitch(\"defaulteFw783\",\n    cidr_block=\"10.0.8.0/24\",\n    vswitch_name=name,\n    ens_region_id=default_obbr_l7.ens_region_id,\n    network_id=default_obbr_l7.id)\ndefault = alicloud.ens.NatGateway(\"default\",\n    vswitch_id=defaulte_fw783.id,\n    ens_region_id=defaulte_fw783.ens_region_id,\n    network_id=defaulte_fw783.network_id,\n    instance_type=\"enat.default\",\n    nat_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var ensRegionId = config.Get(\"ensRegionId\") ?? \"cn-chenzhou-telecom_unicom_cmcc\";\n    var defaultObbrL7 = new AliCloud.Ens.Network(\"defaultObbrL7\", new()\n    {\n        NetworkName = name,\n        Description = name,\n        CidrBlock = \"10.0.0.0/8\",\n        EnsRegionId = ensRegionId,\n    });\n\n    var defaulteFw783 = new AliCloud.Ens.Vswitch(\"defaulteFw783\", new()\n    {\n        CidrBlock = \"10.0.8.0/24\",\n        VswitchName = name,\n        EnsRegionId = defaultObbrL7.EnsRegionId,\n        NetworkId = defaultObbrL7.Id,\n    });\n\n    var @default = new AliCloud.Ens.NatGateway(\"default\", new()\n    {\n        VswitchId = defaulteFw783.Id,\n        EnsRegionId = defaulteFw783.EnsRegionId,\n        NetworkId = defaulteFw783.NetworkId,\n        InstanceType = \"enat.default\",\n        NatName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ens\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tensRegionId := \"cn-chenzhou-telecom_unicom_cmcc\"\n\t\tif param := cfg.Get(\"ensRegionId\"); param != \"\" {\n\t\t\tensRegionId = param\n\t\t}\n\t\tdefaultObbrL7, err := ens.NewNetwork(ctx, \"defaultObbrL7\", \u0026ens.NetworkArgs{\n\t\t\tNetworkName: pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.0.0.0/8\"),\n\t\t\tEnsRegionId: pulumi.String(ensRegionId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaulteFw783, err := ens.NewVswitch(ctx, \"defaulteFw783\", \u0026ens.VswitchArgs{\n\t\t\tCidrBlock:   pulumi.String(\"10.0.8.0/24\"),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tEnsRegionId: defaultObbrL7.EnsRegionId,\n\t\t\tNetworkId:   defaultObbrL7.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ens.NewNatGateway(ctx, \"default\", \u0026ens.NatGatewayArgs{\n\t\t\tVswitchId:    defaulteFw783.ID(),\n\t\t\tEnsRegionId:  defaulteFw783.EnsRegionId,\n\t\t\tNetworkId:    defaulteFw783.NetworkId,\n\t\t\tInstanceType: pulumi.String(\"enat.default\"),\n\t\t\tNatName:      pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ens.Network;\nimport com.pulumi.alicloud.ens.NetworkArgs;\nimport com.pulumi.alicloud.ens.Vswitch;\nimport com.pulumi.alicloud.ens.VswitchArgs;\nimport com.pulumi.alicloud.ens.NatGateway;\nimport com.pulumi.alicloud.ens.NatGatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var ensRegionId = config.get(\"ensRegionId\").orElse(\"cn-chenzhou-telecom_unicom_cmcc\");\n        var defaultObbrL7 = new Network(\"defaultObbrL7\", NetworkArgs.builder()\n            .networkName(name)\n            .description(name)\n            .cidrBlock(\"10.0.0.0/8\")\n            .ensRegionId(ensRegionId)\n            .build());\n\n        var defaulteFw783 = new Vswitch(\"defaulteFw783\", VswitchArgs.builder()\n            .cidrBlock(\"10.0.8.0/24\")\n            .vswitchName(name)\n            .ensRegionId(defaultObbrL7.ensRegionId())\n            .networkId(defaultObbrL7.id())\n            .build());\n\n        var default_ = new NatGateway(\"default\", NatGatewayArgs.builder()\n            .vswitchId(defaulteFw783.id())\n            .ensRegionId(defaulteFw783.ensRegionId())\n            .networkId(defaulteFw783.networkId())\n            .instanceType(\"enat.default\")\n            .natName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  ensRegionId:\n    type: string\n    default: cn-chenzhou-telecom_unicom_cmcc\nresources:\n  defaultObbrL7:\n    type: alicloud:ens:Network\n    properties:\n      networkName: ${name}\n      description: ${name}\n      cidrBlock: 10.0.0.0/8\n      ensRegionId: ${ensRegionId}\n  defaulteFw783:\n    type: alicloud:ens:Vswitch\n    properties:\n      cidrBlock: 10.0.8.0/24\n      vswitchName: ${name}\n      ensRegionId: ${defaultObbrL7.ensRegionId}\n      networkId: ${defaultObbrL7.id}\n  default:\n    type: alicloud:ens:NatGateway\n    properties:\n      vswitchId: ${defaulteFw783.id}\n      ensRegionId: ${defaulteFw783.ensRegionId}\n      networkId: ${defaulteFw783.networkId}\n      instanceType: enat.default\n      natName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nENS Nat Gateway can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ens/natGateway:NatGateway example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"Creation time. UTC time, in the format of YYYY-MM-DDThh:mm:ssZ.\n"},"ensRegionId":{"type":"string","description":"The ID of the ENS node.\n"},"instanceType":{"type":"string","description":"NAT specifications. Value: `enat.default`.\n"},"natName":{"type":"string","description":"The name of the NAT gateway. The length is 1 to 128 characters, but it cannot start with 'http:// 'or 'https.\n"},"networkId":{"type":"string","description":"The network ID.\n"},"vswitchId":{"type":"string","description":"The vSwitch ID.\n"}},"required":["createTime","ensRegionId","instanceType","networkId","vswitchId"],"inputProperties":{"ensRegionId":{"type":"string","description":"The ID of the ENS node.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"NAT specifications. Value: `enat.default`.\n","willReplaceOnChanges":true},"natName":{"type":"string","description":"The name of the NAT gateway. The length is 1 to 128 characters, but it cannot start with 'http:// 'or 'https.\n"},"networkId":{"type":"string","description":"The network ID.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vSwitch ID.\n","willReplaceOnChanges":true}},"requiredInputs":["ensRegionId","networkId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering NatGateway resources.\n","properties":{"createTime":{"type":"string","description":"Creation time. UTC time, in the format of YYYY-MM-DDThh:mm:ssZ.\n"},"ensRegionId":{"type":"string","description":"The ID of the ENS node.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"NAT specifications. Value: `enat.default`.\n","willReplaceOnChanges":true},"natName":{"type":"string","description":"The name of the NAT gateway. The length is 1 to 128 characters, but it cannot start with 'http:// 'or 'https.\n"},"networkId":{"type":"string","description":"The network ID.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vSwitch ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ens/network:Network":{"description":"Provides a ENS Network resource. \n\nFor information about ENS Network and how to use it, see [What is Network](https://www.alibabacloud.com/help/en/ens/developer-reference/api-createnetwork-1).\n\n\u003e **NOTE:** Available since v1.213.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ens.Network(\"default\", {\n    networkName: name,\n    description: name,\n    cidrBlock: \"192.168.2.0/24\",\n    ensRegionId: \"cn-chenzhou-telecom_unicom_cmcc\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ens.Network(\"default\",\n    network_name=name,\n    description=name,\n    cidr_block=\"192.168.2.0/24\",\n    ens_region_id=\"cn-chenzhou-telecom_unicom_cmcc\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ens.Network(\"default\", new()\n    {\n        NetworkName = name,\n        Description = name,\n        CidrBlock = \"192.168.2.0/24\",\n        EnsRegionId = \"cn-chenzhou-telecom_unicom_cmcc\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ens\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ens.NewNetwork(ctx, \"default\", \u0026ens.NetworkArgs{\n\t\t\tNetworkName: pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.2.0/24\"),\n\t\t\tEnsRegionId: pulumi.String(\"cn-chenzhou-telecom_unicom_cmcc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ens.Network;\nimport com.pulumi.alicloud.ens.NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .networkName(name)\n            .description(name)\n            .cidrBlock(\"192.168.2.0/24\")\n            .ensRegionId(\"cn-chenzhou-telecom_unicom_cmcc\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ens:Network\n    properties:\n      networkName: ${name}\n      description: ${name}\n      cidrBlock: 192.168.2.0/24\n      ensRegionId: cn-chenzhou-telecom_unicom_cmcc\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nENS Network can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ens/network:Network example \u003cid\u003e\n```\n\n","properties":{"cidrBlock":{"type":"string","description":"The network segment of the network. You can use the following network segments or a subset of them as the network segment: `10.0.0.0/8` (default), `172.16.0.0/12`, `192.168.0.0/16`.\n"},"createTime":{"type":"string","description":"Creation time, timestamp (MS).\n"},"description":{"type":"string","description":"Description information.Rules:It must be 2 to 256 characters in length and must start with a letter or Chinese, but cannot start with `http://` or `https://`. Example value: this is my first network.\n"},"ensRegionId":{"type":"string","description":"Ens node IDExample value: cn-beijing-telecom.\n"},"networkName":{"type":"string","description":"Name of the network instanceThe naming rules are as follows: 1. Length is 2~128 English or Chinese characters; 2. It must start with a large or small letter or Chinese, not with `http://` and `https://`; 3. Can contain numbers, colons (:), underscores (_), or dashes (-).\n"},"status":{"type":"string","description":"The status of the network instance. Pending: Configuring, Available: Available.\n"}},"required":["cidrBlock","createTime","ensRegionId","status"],"inputProperties":{"cidrBlock":{"type":"string","description":"The network segment of the network. You can use the following network segments or a subset of them as the network segment: `10.0.0.0/8` (default), `172.16.0.0/12`, `192.168.0.0/16`.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description information.Rules:It must be 2 to 256 characters in length and must start with a letter or Chinese, but cannot start with `http://` or `https://`. Example value: this is my first network.\n"},"ensRegionId":{"type":"string","description":"Ens node IDExample value: cn-beijing-telecom.\n","willReplaceOnChanges":true},"networkName":{"type":"string","description":"Name of the network instanceThe naming rules are as follows: 1. Length is 2~128 English or Chinese characters; 2. It must start with a large or small letter or Chinese, not with `http://` and `https://`; 3. Can contain numbers, colons (:), underscores (_), or dashes (-).\n"}},"requiredInputs":["cidrBlock","ensRegionId"],"stateInputs":{"description":"Input properties used for looking up and filtering Network resources.\n","properties":{"cidrBlock":{"type":"string","description":"The network segment of the network. You can use the following network segments or a subset of them as the network segment: `10.0.0.0/8` (default), `172.16.0.0/12`, `192.168.0.0/16`.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"Creation time, timestamp (MS).\n"},"description":{"type":"string","description":"Description information.Rules:It must be 2 to 256 characters in length and must start with a letter or Chinese, but cannot start with `http://` or `https://`. Example value: this is my first network.\n"},"ensRegionId":{"type":"string","description":"Ens node IDExample value: cn-beijing-telecom.\n","willReplaceOnChanges":true},"networkName":{"type":"string","description":"Name of the network instanceThe naming rules are as follows: 1. Length is 2~128 English or Chinese characters; 2. It must start with a large or small letter or Chinese, not with `http://` and `https://`; 3. Can contain numbers, colons (:), underscores (_), or dashes (-).\n"},"status":{"type":"string","description":"The status of the network instance. Pending: Configuring, Available: Available.\n"}},"type":"object"}},"alicloud:ens/securityGroup:SecurityGroup":{"description":"Provides a ENS Security Group resource. \n\nFor information about ENS Security Group and how to use it, see [What is Security Group](https://www.alibabacloud.com/help/en/ens/developer-reference/api-createsnapshot).\n\n\u003e **NOTE:** Available since v1.213.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ens.SecurityGroup(\"default\", {\n    description: name,\n    securityGroupName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ens.SecurityGroup(\"default\",\n    description=name,\n    security_group_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ens.SecurityGroup(\"default\", new()\n    {\n        Description = name,\n        SecurityGroupName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ens\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ens.NewSecurityGroup(ctx, \"default\", \u0026ens.SecurityGroupArgs{\n\t\t\tDescription:       pulumi.String(name),\n\t\t\tSecurityGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ens.SecurityGroup;\nimport com.pulumi.alicloud.ens.SecurityGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new SecurityGroup(\"default\", SecurityGroupArgs.builder()\n            .description(name)\n            .securityGroupName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ens:SecurityGroup\n    properties:\n      description: ${name}\n      securityGroupName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nENS Security Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ens/securityGroup:SecurityGroup example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"Security group description informationIt must be 2 to 256 characters in length and must start with a letter or Chinese, but cannot start with `http://` or `https://`.\n"},"securityGroupName":{"type":"string","description":"Security group nameThe security group name. The length is 2~128 English or Chinese characters. It must start with an uppercase or lowcase letter or a Chinese character and cannot start with `http://` or \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e. Can contain digits, colons (:), underscores (_), or hyphens (-).\n"}},"inputProperties":{"description":{"type":"string","description":"Security group description informationIt must be 2 to 256 characters in length and must start with a letter or Chinese, but cannot start with `http://` or `https://`.\n"},"securityGroupName":{"type":"string","description":"Security group nameThe security group name. The length is 2~128 English or Chinese characters. It must start with an uppercase or lowcase letter or a Chinese character and cannot start with `http://` or \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e. Can contain digits, colons (:), underscores (_), or hyphens (-).\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering SecurityGroup resources.\n","properties":{"description":{"type":"string","description":"Security group description informationIt must be 2 to 256 characters in length and must start with a letter or Chinese, but cannot start with `http://` or `https://`.\n"},"securityGroupName":{"type":"string","description":"Security group nameThe security group name. The length is 2~128 English or Chinese characters. It must start with an uppercase or lowcase letter or a Chinese character and cannot start with `http://` or \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e. Can contain digits, colons (:), underscores (_), or hyphens (-).\n"}},"type":"object"}},"alicloud:ens/snapshot:Snapshot":{"description":"Provides a ENS Snapshot resource. Snapshot. When you use it for the first time, please contact the product classmates to add a resource whitelist.\n\nFor information about ENS Snapshot and how to use it, see [What is Snapshot](https://www.alibabacloud.com/help/en/ens/developer-reference/api-createsnapshot).\n\n\u003e **NOTE:** Available since v1.213.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst disk = new alicloud.ens.Disk(\"disk\", {\n    category: \"cloud_efficiency\",\n    size: 20,\n    paymentType: \"PayAsYouGo\",\n    ensRegionId: \"ch-zurich-1\",\n});\nconst _default = new alicloud.ens.Snapshot(\"default\", {\n    description: name,\n    ensRegionId: \"ch-zurich-1\",\n    snapshotName: name,\n    diskId: disk.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndisk = alicloud.ens.Disk(\"disk\",\n    category=\"cloud_efficiency\",\n    size=20,\n    payment_type=\"PayAsYouGo\",\n    ens_region_id=\"ch-zurich-1\")\ndefault = alicloud.ens.Snapshot(\"default\",\n    description=name,\n    ens_region_id=\"ch-zurich-1\",\n    snapshot_name=name,\n    disk_id=disk.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var disk = new AliCloud.Ens.Disk(\"disk\", new()\n    {\n        Category = \"cloud_efficiency\",\n        Size = 20,\n        PaymentType = \"PayAsYouGo\",\n        EnsRegionId = \"ch-zurich-1\",\n    });\n\n    var @default = new AliCloud.Ens.Snapshot(\"default\", new()\n    {\n        Description = name,\n        EnsRegionId = \"ch-zurich-1\",\n        SnapshotName = name,\n        DiskId = disk.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ens\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdisk, err := ens.NewDisk(ctx, \"disk\", \u0026ens.DiskArgs{\n\t\t\tCategory:    pulumi.String(\"cloud_efficiency\"),\n\t\t\tSize:        pulumi.Int(20),\n\t\t\tPaymentType: pulumi.String(\"PayAsYouGo\"),\n\t\t\tEnsRegionId: pulumi.String(\"ch-zurich-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ens.NewSnapshot(ctx, \"default\", \u0026ens.SnapshotArgs{\n\t\t\tDescription:  pulumi.String(name),\n\t\t\tEnsRegionId:  pulumi.String(\"ch-zurich-1\"),\n\t\t\tSnapshotName: pulumi.String(name),\n\t\t\tDiskId:       disk.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ens.Disk;\nimport com.pulumi.alicloud.ens.DiskArgs;\nimport com.pulumi.alicloud.ens.Snapshot;\nimport com.pulumi.alicloud.ens.SnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var disk = new Disk(\"disk\", DiskArgs.builder()\n            .category(\"cloud_efficiency\")\n            .size(20)\n            .paymentType(\"PayAsYouGo\")\n            .ensRegionId(\"ch-zurich-1\")\n            .build());\n\n        var default_ = new Snapshot(\"default\", SnapshotArgs.builder()\n            .description(name)\n            .ensRegionId(\"ch-zurich-1\")\n            .snapshotName(name)\n            .diskId(disk.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  disk:\n    type: alicloud:ens:Disk\n    properties:\n      category: cloud_efficiency\n      size: '20'\n      paymentType: PayAsYouGo\n      ensRegionId: ch-zurich-1\n  default:\n    type: alicloud:ens:Snapshot\n    properties:\n      description: ${name}\n      ensRegionId: ch-zurich-1\n      snapshotName: ${name}\n      diskId: ${disk.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nENS Snapshot can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ens/snapshot:Snapshot example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"Instance creation timeIt is expressed in accordance with the ISO8601 standard and uses UTC +0 time in the format of yyyy-MM-ddTHH:mm:ssZ.Example value: 2020-08-20 T14:52:28Z.\n"},"description":{"type":"string","description":"Snapshot Description Information.\n"},"diskId":{"type":"string","description":"Cloud Disk ID.\n"},"ensRegionId":{"type":"string","description":"The node ID of ENS.\n"},"snapshotName":{"type":"string","description":"Name of the snapshot instance.\n"},"status":{"type":"string","description":"Snapshot Status. Valid values: creating, available, deleting, error.\n"}},"required":["createTime","diskId","ensRegionId","status"],"inputProperties":{"description":{"type":"string","description":"Snapshot Description Information.\n"},"diskId":{"type":"string","description":"Cloud Disk ID.\n","willReplaceOnChanges":true},"ensRegionId":{"type":"string","description":"The node ID of ENS.\n","willReplaceOnChanges":true},"snapshotName":{"type":"string","description":"Name of the snapshot instance.\n"}},"requiredInputs":["diskId","ensRegionId"],"stateInputs":{"description":"Input properties used for looking up and filtering Snapshot resources.\n","properties":{"createTime":{"type":"string","description":"Instance creation timeIt is expressed in accordance with the ISO8601 standard and uses UTC +0 time in the format of yyyy-MM-ddTHH:mm:ssZ.Example value: 2020-08-20 T14:52:28Z.\n"},"description":{"type":"string","description":"Snapshot Description Information.\n"},"diskId":{"type":"string","description":"Cloud Disk ID.\n","willReplaceOnChanges":true},"ensRegionId":{"type":"string","description":"The node ID of ENS.\n","willReplaceOnChanges":true},"snapshotName":{"type":"string","description":"Name of the snapshot instance.\n"},"status":{"type":"string","description":"Snapshot Status. Valid values: creating, available, deleting, error.\n"}},"type":"object"}},"alicloud:ens/vswitch:Vswitch":{"description":"Provides a ENS Vswitch resource.\n\n\n\nFor information about ENS Vswitch and how to use it, see [What is Vswitch](https://www.alibabacloud.com/help/en/ens/developer-reference/api-createvswitch).\n\n\u003e **NOTE:** Available since v1.213.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ens.Network(\"default\", {\n    networkName: name,\n    description: name,\n    cidrBlock: \"192.168.2.0/24\",\n    ensRegionId: \"cn-chenzhou-telecom_unicom_cmcc\",\n});\nconst defaultVswitch = new alicloud.ens.Vswitch(\"default\", {\n    description: name,\n    cidrBlock: \"192.168.2.0/24\",\n    vswitchName: name,\n    ensRegionId: \"cn-chenzhou-telecom_unicom_cmcc\",\n    networkId: _default.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ens.Network(\"default\",\n    network_name=name,\n    description=name,\n    cidr_block=\"192.168.2.0/24\",\n    ens_region_id=\"cn-chenzhou-telecom_unicom_cmcc\")\ndefault_vswitch = alicloud.ens.Vswitch(\"default\",\n    description=name,\n    cidr_block=\"192.168.2.0/24\",\n    vswitch_name=name,\n    ens_region_id=\"cn-chenzhou-telecom_unicom_cmcc\",\n    network_id=default.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ens.Network(\"default\", new()\n    {\n        NetworkName = name,\n        Description = name,\n        CidrBlock = \"192.168.2.0/24\",\n        EnsRegionId = \"cn-chenzhou-telecom_unicom_cmcc\",\n    });\n\n    var defaultVswitch = new AliCloud.Ens.Vswitch(\"default\", new()\n    {\n        Description = name,\n        CidrBlock = \"192.168.2.0/24\",\n        VswitchName = name,\n        EnsRegionId = \"cn-chenzhou-telecom_unicom_cmcc\",\n        NetworkId = @default.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ens\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := ens.NewNetwork(ctx, \"default\", \u0026ens.NetworkArgs{\n\t\t\tNetworkName: pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.2.0/24\"),\n\t\t\tEnsRegionId: pulumi.String(\"cn-chenzhou-telecom_unicom_cmcc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ens.NewVswitch(ctx, \"default\", \u0026ens.VswitchArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.2.0/24\"),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tEnsRegionId: pulumi.String(\"cn-chenzhou-telecom_unicom_cmcc\"),\n\t\t\tNetworkId:   _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ens.Network;\nimport com.pulumi.alicloud.ens.NetworkArgs;\nimport com.pulumi.alicloud.ens.Vswitch;\nimport com.pulumi.alicloud.ens.VswitchArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .networkName(name)\n            .description(name)\n            .cidrBlock(\"192.168.2.0/24\")\n            .ensRegionId(\"cn-chenzhou-telecom_unicom_cmcc\")\n            .build());\n\n        var defaultVswitch = new Vswitch(\"defaultVswitch\", VswitchArgs.builder()\n            .description(name)\n            .cidrBlock(\"192.168.2.0/24\")\n            .vswitchName(name)\n            .ensRegionId(\"cn-chenzhou-telecom_unicom_cmcc\")\n            .networkId(default_.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ens:Network\n    properties:\n      networkName: ${name}\n      description: ${name}\n      cidrBlock: 192.168.2.0/24\n      ensRegionId: cn-chenzhou-telecom_unicom_cmcc\n  defaultVswitch:\n    type: alicloud:ens:Vswitch\n    name: default\n    properties:\n      description: ${name}\n      cidrBlock: 192.168.2.0/24\n      vswitchName: ${name}\n      ensRegionId: cn-chenzhou-telecom_unicom_cmcc\n      networkId: ${default.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nENS Vswitch can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ens/vswitch:Vswitch example \u003cid\u003e\n```\n\n","properties":{"cidrBlock":{"type":"string","description":"The CIDR block of the vSwitch.\n"},"createTime":{"type":"string","description":"The time when the VPC was created.\n"},"description":{"type":"string","description":"The description of the vSwitch.\n"},"ensRegionId":{"type":"string","description":"ENS Region ID.\n"},"networkId":{"type":"string","description":"The ID of the network to which the vSwitch that you want to create belongs.\n"},"status":{"type":"string","description":"The status of the vSwitch.\n"},"vswitchName":{"type":"string","description":"The name of the vSwitch.\n"}},"required":["cidrBlock","createTime","ensRegionId","networkId","status"],"inputProperties":{"cidrBlock":{"type":"string","description":"The CIDR block of the vSwitch.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the vSwitch.\n"},"ensRegionId":{"type":"string","description":"ENS Region ID.\n","willReplaceOnChanges":true},"networkId":{"type":"string","description":"The ID of the network to which the vSwitch that you want to create belongs.\n","willReplaceOnChanges":true},"vswitchName":{"type":"string","description":"The name of the vSwitch.\n"}},"requiredInputs":["cidrBlock","ensRegionId"],"stateInputs":{"description":"Input properties used for looking up and filtering Vswitch resources.\n","properties":{"cidrBlock":{"type":"string","description":"The CIDR block of the vSwitch.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The time when the VPC was created.\n"},"description":{"type":"string","description":"The description of the vSwitch.\n"},"ensRegionId":{"type":"string","description":"ENS Region ID.\n","willReplaceOnChanges":true},"networkId":{"type":"string","description":"The ID of the network to which the vSwitch that you want to create belongs.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the vSwitch.\n"},"vswitchName":{"type":"string","description":"The name of the vSwitch.\n"}},"type":"object"}},"alicloud:esa/cacheReserveInstance:CacheReserveInstance":{"description":"Provides a ESA Cache Reserve Instance resource.\n\n\n\nFor information about ESA Cache Reserve Instance and how to use it, see [What is Cache Reserve Instance](https://next.api.alibabacloud.com/document/ESA/2024-09-10/PurchaseCacheReserve).\n\n\u003e **NOTE:** Available since v1.247.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.esa.CacheReserveInstance(\"default\", {\n    quotaGb: 10240,\n    crRegion: \"CN-beijing\",\n    autoRenew: true,\n    period: 1,\n    paymentType: \"Subscription\",\n    autoPay: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.esa.CacheReserveInstance(\"default\",\n    quota_gb=10240,\n    cr_region=\"CN-beijing\",\n    auto_renew=True,\n    period=1,\n    payment_type=\"Subscription\",\n    auto_pay=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Esa.CacheReserveInstance(\"default\", new()\n    {\n        QuotaGb = 10240,\n        CrRegion = \"CN-beijing\",\n        AutoRenew = true,\n        Period = 1,\n        PaymentType = \"Subscription\",\n        AutoPay = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := esa.NewCacheReserveInstance(ctx, \"default\", \u0026esa.CacheReserveInstanceArgs{\n\t\t\tQuotaGb:     pulumi.Int(10240),\n\t\t\tCrRegion:    pulumi.String(\"CN-beijing\"),\n\t\t\tAutoRenew:   pulumi.Bool(true),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tPaymentType: pulumi.String(\"Subscription\"),\n\t\t\tAutoPay:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.CacheReserveInstance;\nimport com.pulumi.alicloud.esa.CacheReserveInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new CacheReserveInstance(\"default\", CacheReserveInstanceArgs.builder()\n            .quotaGb(10240)\n            .crRegion(\"CN-beijing\")\n            .autoRenew(true)\n            .period(1)\n            .paymentType(\"Subscription\")\n            .autoPay(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:esa:CacheReserveInstance\n    properties:\n      quotaGb: '10240'\n      crRegion: CN-beijing\n      autoRenew: true\n      period: '1'\n      paymentType: Subscription\n      autoPay: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Cache Reserve Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/cacheReserveInstance:CacheReserveInstance example \u003cid\u003e\n```\n\n","properties":{"autoPay":{"type":"boolean","description":"Automatic payment.\n"},"autoRenew":{"type":"boolean","description":"Whether to auto-renew:\n"},"crRegion":{"type":"string","description":"Cache holding area\n- `HK`: Hong Kong, China\n- `CN`: Mainland China\n"},"createTime":{"type":"string","description":"Instance purchase time.\n"},"paymentType":{"type":"string","description":"Specifies whether to enable auto payment.\n"},"period":{"type":"integer","description":"Purchase period (unit: month).\n"},"quotaGb":{"type":"integer","description":"Cache retention specification (unit: GB).\n"},"status":{"type":"string","description":"The status of the cache reserve instance. , it is unavailable.\n"}},"required":["createTime","paymentType","status"],"inputProperties":{"autoPay":{"type":"boolean","description":"Automatic payment.\n"},"autoRenew":{"type":"boolean","description":"Whether to auto-renew:\n"},"crRegion":{"type":"string","description":"Cache holding area\n- `HK`: Hong Kong, China\n- `CN`: Mainland China\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"Specifies whether to enable auto payment.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Purchase period (unit: month).\n","willReplaceOnChanges":true},"quotaGb":{"type":"integer","description":"Cache retention specification (unit: GB).\n"}},"requiredInputs":["paymentType"],"stateInputs":{"description":"Input properties used for looking up and filtering CacheReserveInstance resources.\n","properties":{"autoPay":{"type":"boolean","description":"Automatic payment.\n"},"autoRenew":{"type":"boolean","description":"Whether to auto-renew:\n"},"crRegion":{"type":"string","description":"Cache holding area\n- `HK`: Hong Kong, China\n- `CN`: Mainland China\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"Instance purchase time.\n"},"paymentType":{"type":"string","description":"Specifies whether to enable auto payment.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Purchase period (unit: month).\n","willReplaceOnChanges":true},"quotaGb":{"type":"integer","description":"Cache retention specification (unit: GB).\n"},"status":{"type":"string","description":"The status of the cache reserve instance. , it is unavailable.\n"}},"type":"object"}},"alicloud:esa/cacheRule:CacheRule":{"description":"Provides a ESA Cache Rule resource.\n\n\n\nFor information about ESA Cache Rule and how to use it, see [What is Cache Rule](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateCacheRule).\n\n\u003e **NOTE:** Available since v1.244.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultCacheRule = new alicloud.esa.CacheRule(\"default\", {\n    userDeviceType: \"off\",\n    browserCacheMode: \"no_cache\",\n    userLanguage: \"off\",\n    checkPresenceHeader: \"headername\",\n    includeCookie: \"cookie_exapmle\",\n    edgeCacheMode: \"follow_origin\",\n    additionalCacheablePorts: \"2053\",\n    ruleName: \"rule_example\",\n    edgeStatusCodeCacheTtl: \"300\",\n    browserCacheTtl: \"300\",\n    queryString: \"example\",\n    userGeo: \"off\",\n    sortQueryStringForCache: \"off\",\n    checkPresenceCookie: \"cookiename\",\n    cacheReserveEligibility: \"bypass_cache_reserve\",\n    queryStringMode: \"ignore_all\",\n    rule: \"http.host eq \\\"video.example.com\\\"\",\n    cacheDeceptionArmor: \"off\",\n    siteId: _default.then(_default =\u003e _default.sites?.[0]?.id),\n    bypassCache: \"cache_all\",\n    edgeCacheTtl: \"300\",\n    ruleEnable: \"off\",\n    siteVersion: 0,\n    includeHeader: \"example\",\n    serveStale: \"off\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_cache_rule = alicloud.esa.CacheRule(\"default\",\n    user_device_type=\"off\",\n    browser_cache_mode=\"no_cache\",\n    user_language=\"off\",\n    check_presence_header=\"headername\",\n    include_cookie=\"cookie_exapmle\",\n    edge_cache_mode=\"follow_origin\",\n    additional_cacheable_ports=\"2053\",\n    rule_name=\"rule_example\",\n    edge_status_code_cache_ttl=\"300\",\n    browser_cache_ttl=\"300\",\n    query_string=\"example\",\n    user_geo=\"off\",\n    sort_query_string_for_cache=\"off\",\n    check_presence_cookie=\"cookiename\",\n    cache_reserve_eligibility=\"bypass_cache_reserve\",\n    query_string_mode=\"ignore_all\",\n    rule=\"http.host eq \\\"video.example.com\\\"\",\n    cache_deception_armor=\"off\",\n    site_id=default.sites[0].id,\n    bypass_cache=\"cache_all\",\n    edge_cache_ttl=\"300\",\n    rule_enable=\"off\",\n    site_version=0,\n    include_header=\"example\",\n    serve_stale=\"off\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultCacheRule = new AliCloud.Esa.CacheRule(\"default\", new()\n    {\n        UserDeviceType = \"off\",\n        BrowserCacheMode = \"no_cache\",\n        UserLanguage = \"off\",\n        CheckPresenceHeader = \"headername\",\n        IncludeCookie = \"cookie_exapmle\",\n        EdgeCacheMode = \"follow_origin\",\n        AdditionalCacheablePorts = \"2053\",\n        RuleName = \"rule_example\",\n        EdgeStatusCodeCacheTtl = \"300\",\n        BrowserCacheTtl = \"300\",\n        QueryString = \"example\",\n        UserGeo = \"off\",\n        SortQueryStringForCache = \"off\",\n        CheckPresenceCookie = \"cookiename\",\n        CacheReserveEligibility = \"bypass_cache_reserve\",\n        QueryStringMode = \"ignore_all\",\n        Rule = \"http.host eq \\\"video.example.com\\\"\",\n        CacheDeceptionArmor = \"off\",\n        SiteId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.Id)),\n        BypassCache = \"cache_all\",\n        EdgeCacheTtl = \"300\",\n        RuleEnable = \"off\",\n        SiteVersion = 0,\n        IncludeHeader = \"example\",\n        ServeStale = \"off\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewCacheRule(ctx, \"default\", \u0026esa.CacheRuleArgs{\n\t\t\tUserDeviceType:           pulumi.String(\"off\"),\n\t\t\tBrowserCacheMode:         pulumi.String(\"no_cache\"),\n\t\t\tUserLanguage:             pulumi.String(\"off\"),\n\t\t\tCheckPresenceHeader:      pulumi.String(\"headername\"),\n\t\t\tIncludeCookie:            pulumi.String(\"cookie_exapmle\"),\n\t\t\tEdgeCacheMode:            pulumi.String(\"follow_origin\"),\n\t\t\tAdditionalCacheablePorts: pulumi.String(\"2053\"),\n\t\t\tRuleName:                 pulumi.String(\"rule_example\"),\n\t\t\tEdgeStatusCodeCacheTtl:   pulumi.String(\"300\"),\n\t\t\tBrowserCacheTtl:          pulumi.String(\"300\"),\n\t\t\tQueryString:              pulumi.String(\"example\"),\n\t\t\tUserGeo:                  pulumi.String(\"off\"),\n\t\t\tSortQueryStringForCache:  pulumi.String(\"off\"),\n\t\t\tCheckPresenceCookie:      pulumi.String(\"cookiename\"),\n\t\t\tCacheReserveEligibility:  pulumi.String(\"bypass_cache_reserve\"),\n\t\t\tQueryStringMode:          pulumi.String(\"ignore_all\"),\n\t\t\tRule:                     pulumi.String(\"http.host eq \\\"video.example.com\\\"\"),\n\t\t\tCacheDeceptionArmor:      pulumi.String(\"off\"),\n\t\t\tSiteId:                   pulumi.Int(_default.Sites[0].Id),\n\t\t\tBypassCache:              pulumi.String(\"cache_all\"),\n\t\t\tEdgeCacheTtl:             pulumi.String(\"300\"),\n\t\t\tRuleEnable:               pulumi.String(\"off\"),\n\t\t\tSiteVersion:              pulumi.Int(0),\n\t\t\tIncludeHeader:            pulumi.String(\"example\"),\n\t\t\tServeStale:               pulumi.String(\"off\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.CacheRule;\nimport com.pulumi.alicloud.esa.CacheRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultCacheRule = new CacheRule(\"defaultCacheRule\", CacheRuleArgs.builder()\n            .userDeviceType(\"off\")\n            .browserCacheMode(\"no_cache\")\n            .userLanguage(\"off\")\n            .checkPresenceHeader(\"headername\")\n            .includeCookie(\"cookie_exapmle\")\n            .edgeCacheMode(\"follow_origin\")\n            .additionalCacheablePorts(\"2053\")\n            .ruleName(\"rule_example\")\n            .edgeStatusCodeCacheTtl(\"300\")\n            .browserCacheTtl(\"300\")\n            .queryString(\"example\")\n            .userGeo(\"off\")\n            .sortQueryStringForCache(\"off\")\n            .checkPresenceCookie(\"cookiename\")\n            .cacheReserveEligibility(\"bypass_cache_reserve\")\n            .queryStringMode(\"ignore_all\")\n            .rule(\"http.host eq \\\"video.example.com\\\"\")\n            .cacheDeceptionArmor(\"off\")\n            .siteId(default_.sites()[0].id())\n            .bypassCache(\"cache_all\")\n            .edgeCacheTtl(\"300\")\n            .ruleEnable(\"off\")\n            .siteVersion(0)\n            .includeHeader(\"example\")\n            .serveStale(\"off\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultCacheRule:\n    type: alicloud:esa:CacheRule\n    name: default\n    properties:\n      userDeviceType: off\n      browserCacheMode: no_cache\n      userLanguage: off\n      checkPresenceHeader: headername\n      includeCookie: cookie_exapmle\n      edgeCacheMode: follow_origin\n      additionalCacheablePorts: '2053'\n      ruleName: rule_example\n      edgeStatusCodeCacheTtl: '300'\n      browserCacheTtl: '300'\n      queryString: example\n      userGeo: off\n      sortQueryStringForCache: off\n      checkPresenceCookie: cookiename\n      cacheReserveEligibility: bypass_cache_reserve\n      queryStringMode: ignore_all\n      rule: http.host eq \"video.example.com\"\n      cacheDeceptionArmor: off\n      siteId: ${default.sites[0].id}\n      bypassCache: cache_all\n      edgeCacheTtl: '300'\n      ruleEnable: off\n      siteVersion: '0'\n      includeHeader: example\n      serveStale: off\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Cache Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/cacheRule:CacheRule example \u003csite_id\u003e:\u003ccache_rule_id\u003e\n```\n\n","properties":{"additionalCacheablePorts":{"type":"string","description":"Enable caching on specified ports. Value range: 8880, 2052, 2082, 2086, 2095, 2053, 2083, 2087, 2096\n"},"browserCacheMode":{"type":"string","description":"Browser cache mode. Possible values:\n"},"browserCacheTtl":{"type":"string","description":"Browser cache expiration time in seconds.\n"},"bypassCache":{"type":"string","description":"Set the bypass cache mode. Possible values:\n"},"cacheDeceptionArmor":{"type":"string","description":"Cache deception protection. Used to defend against web cache deception attacks, only the cache content that passes the validation will be cached. Value range:\n"},"cacheReserveEligibility":{"type":"string","description":"Cache retention eligibility. Used to control whether user requests bypass the cache retention node when returning to the origin. Possible values:\n"},"cacheRuleId":{"type":"integer","description":"Cache Rule Id.\n"},"checkPresenceCookie":{"type":"string","description":"When generating the cache key, check if the cookie exists. If it does, add the cookie name (case-insensitive) to the cache key. Multiple cookie names are supported, separated by spaces.\n"},"checkPresenceHeader":{"type":"string","description":"When generating the cache key, check if the header exists. If it does, add the header name (case-insensitive) to the cache key. Multiple header names are supported, separated by spaces.\n"},"edgeCacheMode":{"type":"string","description":"Edge cache mode. Possible values:\n"},"edgeCacheTtl":{"type":"string","description":"Edge cache expiration time in seconds.\n"},"edgeStatusCodeCacheTtl":{"type":"string","description":"Status code cache expiration time in seconds.\n"},"includeCookie":{"type":"string","description":"When generating the cache key, add the specified cookie names and their values. Multiple values are supported, separated by spaces.\n"},"includeHeader":{"type":"string","description":"When generating the cache key, add the specified header names and their values. Multiple values are supported, separated by spaces.\n"},"queryString":{"type":"string","description":"Query strings to be reserved or excluded. Multiple values are supported, separated by spaces.\n"},"queryStringMode":{"type":"string","description":"The processing mode for query strings when generating the cache key. Possible values:\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true.\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\").\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"serveStale":{"type":"string","description":"Serve stale cache. When enabled, the node can still respond to user requests with expired cached files when the origin server is unavailable. Value range:\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the [ListSites] API.\n"},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n"},"sortQueryStringForCache":{"type":"string","description":"Query string sorting, disabled by default. Possible values:\n"},"userDeviceType":{"type":"string","description":"When generating the cache key, add the client device type. Possible values:\n"},"userGeo":{"type":"string","description":"When generating the cache key, add the client's geographic location. Possible values:\n"},"userLanguage":{"type":"string","description":"When generating cache keys, include the client's language type. Possible values:\n"}},"required":["cacheRuleId","sequence","siteId"],"inputProperties":{"additionalCacheablePorts":{"type":"string","description":"Enable caching on specified ports. Value range: 8880, 2052, 2082, 2086, 2095, 2053, 2083, 2087, 2096\n"},"browserCacheMode":{"type":"string","description":"Browser cache mode. Possible values:\n"},"browserCacheTtl":{"type":"string","description":"Browser cache expiration time in seconds.\n"},"bypassCache":{"type":"string","description":"Set the bypass cache mode. Possible values:\n"},"cacheDeceptionArmor":{"type":"string","description":"Cache deception protection. Used to defend against web cache deception attacks, only the cache content that passes the validation will be cached. Value range:\n"},"cacheReserveEligibility":{"type":"string","description":"Cache retention eligibility. Used to control whether user requests bypass the cache retention node when returning to the origin. Possible values:\n"},"checkPresenceCookie":{"type":"string","description":"When generating the cache key, check if the cookie exists. If it does, add the cookie name (case-insensitive) to the cache key. Multiple cookie names are supported, separated by spaces.\n"},"checkPresenceHeader":{"type":"string","description":"When generating the cache key, check if the header exists. If it does, add the header name (case-insensitive) to the cache key. Multiple header names are supported, separated by spaces.\n"},"edgeCacheMode":{"type":"string","description":"Edge cache mode. Possible values:\n"},"edgeCacheTtl":{"type":"string","description":"Edge cache expiration time in seconds.\n"},"edgeStatusCodeCacheTtl":{"type":"string","description":"Status code cache expiration time in seconds.\n"},"includeCookie":{"type":"string","description":"When generating the cache key, add the specified cookie names and their values. Multiple values are supported, separated by spaces.\n"},"includeHeader":{"type":"string","description":"When generating the cache key, add the specified header names and their values. Multiple values are supported, separated by spaces.\n"},"queryString":{"type":"string","description":"Query strings to be reserved or excluded. Multiple values are supported, separated by spaces.\n"},"queryStringMode":{"type":"string","description":"The processing mode for query strings when generating the cache key. Possible values:\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true.\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\").\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"serveStale":{"type":"string","description":"Serve stale cache. When enabled, the node can still respond to user requests with expired cached files when the origin server is unavailable. Value range:\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the [ListSites] API.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true},"sortQueryStringForCache":{"type":"string","description":"Query string sorting, disabled by default. Possible values:\n"},"userDeviceType":{"type":"string","description":"When generating the cache key, add the client device type. Possible values:\n"},"userGeo":{"type":"string","description":"When generating the cache key, add the client's geographic location. Possible values:\n"},"userLanguage":{"type":"string","description":"When generating cache keys, include the client's language type. Possible values:\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering CacheRule resources.\n","properties":{"additionalCacheablePorts":{"type":"string","description":"Enable caching on specified ports. Value range: 8880, 2052, 2082, 2086, 2095, 2053, 2083, 2087, 2096\n"},"browserCacheMode":{"type":"string","description":"Browser cache mode. Possible values:\n"},"browserCacheTtl":{"type":"string","description":"Browser cache expiration time in seconds.\n"},"bypassCache":{"type":"string","description":"Set the bypass cache mode. Possible values:\n"},"cacheDeceptionArmor":{"type":"string","description":"Cache deception protection. Used to defend against web cache deception attacks, only the cache content that passes the validation will be cached. Value range:\n"},"cacheReserveEligibility":{"type":"string","description":"Cache retention eligibility. Used to control whether user requests bypass the cache retention node when returning to the origin. Possible values:\n"},"cacheRuleId":{"type":"integer","description":"Cache Rule Id.\n"},"checkPresenceCookie":{"type":"string","description":"When generating the cache key, check if the cookie exists. If it does, add the cookie name (case-insensitive) to the cache key. Multiple cookie names are supported, separated by spaces.\n"},"checkPresenceHeader":{"type":"string","description":"When generating the cache key, check if the header exists. If it does, add the header name (case-insensitive) to the cache key. Multiple header names are supported, separated by spaces.\n"},"edgeCacheMode":{"type":"string","description":"Edge cache mode. Possible values:\n"},"edgeCacheTtl":{"type":"string","description":"Edge cache expiration time in seconds.\n"},"edgeStatusCodeCacheTtl":{"type":"string","description":"Status code cache expiration time in seconds.\n"},"includeCookie":{"type":"string","description":"When generating the cache key, add the specified cookie names and their values. Multiple values are supported, separated by spaces.\n"},"includeHeader":{"type":"string","description":"When generating the cache key, add the specified header names and their values. Multiple values are supported, separated by spaces.\n"},"queryString":{"type":"string","description":"Query strings to be reserved or excluded. Multiple values are supported, separated by spaces.\n"},"queryStringMode":{"type":"string","description":"The processing mode for query strings when generating the cache key. Possible values:\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true.\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\").\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"serveStale":{"type":"string","description":"Serve stale cache. When enabled, the node can still respond to user requests with expired cached files when the origin server is unavailable. Value range:\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the [ListSites] API.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true},"sortQueryStringForCache":{"type":"string","description":"Query string sorting, disabled by default. Possible values:\n"},"userDeviceType":{"type":"string","description":"When generating the cache key, add the client device type. Possible values:\n"},"userGeo":{"type":"string","description":"When generating the cache key, add the client's geographic location. Possible values:\n"},"userLanguage":{"type":"string","description":"When generating cache keys, include the client's language type. Possible values:\n"}},"type":"object"}},"alicloud:esa/certificate:Certificate":{"description":"Provides a ESA Certificate resource.\n\n\n\nFor information about ESA Certificate and how to use it, see [What is Certificate](https://next.api.alibabacloud.com/document/ESA/2024-09-10/SetCertificate).\n\n\u003e **NOTE:** Available since v1.244.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n    siteName: \"gositecdn.cn\",\n});\nconst defaultCertificate = new alicloud.esa.Certificate(\"default\", {\n    createdType: \"free\",\n    domains: \"101.gositecdn.cn\",\n    siteId: _default.then(_default =\u003e _default.sites?.[0]?.id),\n    type: \"lets_encrypt\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\",\n    site_name=\"gositecdn.cn\")\ndefault_certificate = alicloud.esa.Certificate(\"default\",\n    created_type=\"free\",\n    domains=\"101.gositecdn.cn\",\n    site_id=default.sites[0].id,\n    type=\"lets_encrypt\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n        SiteName = \"gositecdn.cn\",\n    });\n\n    var defaultCertificate = new AliCloud.Esa.Certificate(\"default\", new()\n    {\n        CreatedType = \"free\",\n        Domains = \"101.gositecdn.cn\",\n        SiteId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.Id)),\n        Type = \"lets_encrypt\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t\tSiteName:          pulumi.StringRef(\"gositecdn.cn\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewCertificate(ctx, \"default\", \u0026esa.CertificateArgs{\n\t\t\tCreatedType: pulumi.String(\"free\"),\n\t\t\tDomains:     pulumi.String(\"101.gositecdn.cn\"),\n\t\t\tSiteId:      pulumi.Int(_default.Sites[0].Id),\n\t\t\tType:        pulumi.String(\"lets_encrypt\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Certificate;\nimport com.pulumi.alicloud.esa.CertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .siteName(\"gositecdn.cn\")\n            .build());\n\n        var defaultCertificate = new Certificate(\"defaultCertificate\", CertificateArgs.builder()\n            .createdType(\"free\")\n            .domains(\"101.gositecdn.cn\")\n            .siteId(default_.sites()[0].id())\n            .type(\"lets_encrypt\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultCertificate:\n    type: alicloud:esa:Certificate\n    name: default\n    properties:\n      createdType: free\n      domains: 101.gositecdn.cn\n      siteId: ${default.sites[0].id}\n      type: lets_encrypt\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n        siteName: gositecdn.cn\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Certificate can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/certificate:Certificate example \u003csite_id\u003e:\u003ccert_id\u003e\n```\n\n","properties":{"casId":{"type":"string","description":"Cloud certificate ID.\n"},"certId":{"type":"string","description":"The certificate Id.\n"},"certName":{"type":"string","description":"The certificate name.\n"},"certificate":{"type":"string","description":"Certificate content.\n","language":{"csharp":{"name":"CertificateValue"}}},"createTime":{"type":"string","description":"Creation time.\n"},"createdType":{"type":"string","description":"The certificate type.\n- cas (Certificate Center Certificate)\n- upload (custom upload certificate)\n- free( Free certificate).\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"domains":{"type":"string","description":"A list of domain names. Multiple domain names are separated by commas.\n"},"privateKey":{"type":"string","description":"The certificate private key.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"region":{"type":"string","description":"Region. This parameter is required if the type is CAS.\nFor accounts on the Chinese site, this parameter value is: cn-hangzhou\nFor accounts on the international site, this parameter value is: ap-southeast-1\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites interface.\n"},"status":{"type":"string","description":"Certificate status.(within 30 days).- issued.- applying.- application failed.- canceled.\n"},"type":{"type":"string","description":"Certificate type. Possible values: lets_encrypt: Let's Encrypt certificate;\n"}},"required":["certId","certName","certificate","createTime","createdType","region","siteId","status","type"],"inputProperties":{"casId":{"type":"string","description":"Cloud certificate ID.\n"},"certId":{"type":"string","description":"The certificate Id.\n","willReplaceOnChanges":true},"certName":{"type":"string","description":"The certificate name.\n"},"certificate":{"type":"string","description":"Certificate content.\n","language":{"csharp":{"name":"CertificateValue"}}},"createdType":{"type":"string","description":"The certificate type.\n- cas (Certificate Center Certificate)\n- upload (custom upload certificate)\n- free( Free certificate).\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"domains":{"type":"string","description":"A list of domain names. Multiple domain names are separated by commas.\n","willReplaceOnChanges":true},"privateKey":{"type":"string","description":"The certificate private key.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"region":{"type":"string","description":"Region. This parameter is required if the type is CAS.\nFor accounts on the Chinese site, this parameter value is: cn-hangzhou\nFor accounts on the international site, this parameter value is: ap-southeast-1\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites interface.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Certificate type. Possible values: lets_encrypt: Let's Encrypt certificate;\n","willReplaceOnChanges":true}},"requiredInputs":["createdType","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering Certificate resources.\n","properties":{"casId":{"type":"string","description":"Cloud certificate ID.\n"},"certId":{"type":"string","description":"The certificate Id.\n","willReplaceOnChanges":true},"certName":{"type":"string","description":"The certificate name.\n"},"certificate":{"type":"string","description":"Certificate content.\n","language":{"csharp":{"name":"CertificateValue"}}},"createTime":{"type":"string","description":"Creation time.\n"},"createdType":{"type":"string","description":"The certificate type.\n- cas (Certificate Center Certificate)\n- upload (custom upload certificate)\n- free( Free certificate).\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"domains":{"type":"string","description":"A list of domain names. Multiple domain names are separated by commas.\n","willReplaceOnChanges":true},"privateKey":{"type":"string","description":"The certificate private key.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"region":{"type":"string","description":"Region. This parameter is required if the type is CAS.\nFor accounts on the Chinese site, this parameter value is: cn-hangzhou\nFor accounts on the international site, this parameter value is: ap-southeast-1\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites interface.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Certificate status.(within 30 days).- issued.- applying.- application failed.- canceled.\n"},"type":{"type":"string","description":"Certificate type. Possible values: lets_encrypt: Let's Encrypt certificate;\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/clientCaCertificate:ClientCaCertificate":{"description":"Provides a ESA Client Ca Certificate resource.\n\n\n\nFor information about ESA Client Ca Certificate and how to use it, see [What is Client Ca Certificate](https://next.api.alibabacloud.com/document/ESA/2024-09-10/UploadClientCaCertificate).\n\n\u003e **NOTE:** Available since v1.244.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n    siteName: \"gositecdn.cn\",\n});\nconst defaultClientCaCertificate = new alicloud.esa.ClientCaCertificate(\"default\", {\n    certificate: `-----BEGIN CERTIFICATE-----\n****-----END CERTIFICATE-----`,\n    clientCaCertName: \"example\",\n    siteId: _default.then(_default =\u003e _default.sites?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\",\n    site_name=\"gositecdn.cn\")\ndefault_client_ca_certificate = alicloud.esa.ClientCaCertificate(\"default\",\n    certificate=\"\"\"-----BEGIN CERTIFICATE-----\n****-----END CERTIFICATE-----\"\"\",\n    client_ca_cert_name=\"example\",\n    site_id=default.sites[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n        SiteName = \"gositecdn.cn\",\n    });\n\n    var defaultClientCaCertificate = new AliCloud.Esa.ClientCaCertificate(\"default\", new()\n    {\n        Certificate = @\"-----BEGIN CERTIFICATE-----\n****-----END CERTIFICATE-----\",\n        ClientCaCertName = \"example\",\n        SiteId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t\tSiteName:          pulumi.StringRef(\"gositecdn.cn\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewClientCaCertificate(ctx, \"default\", \u0026esa.ClientCaCertificateArgs{\n\t\t\tCertificate:      pulumi.String(\"-----BEGIN CERTIFICATE-----\\n****-----END CERTIFICATE-----\"),\n\t\t\tClientCaCertName: pulumi.String(\"example\"),\n\t\t\tSiteId:           pulumi.Int(_default.Sites[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.ClientCaCertificate;\nimport com.pulumi.alicloud.esa.ClientCaCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .siteName(\"gositecdn.cn\")\n            .build());\n\n        var defaultClientCaCertificate = new ClientCaCertificate(\"defaultClientCaCertificate\", ClientCaCertificateArgs.builder()\n            .certificate(\"\"\"\n-----BEGIN CERTIFICATE-----\n****-----END CERTIFICATE-----            \"\"\")\n            .clientCaCertName(\"example\")\n            .siteId(default_.sites()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultClientCaCertificate:\n    type: alicloud:esa:ClientCaCertificate\n    name: default\n    properties:\n      certificate: |-\n        -----BEGIN CERTIFICATE-----\n        ****-----END CERTIFICATE-----\n      clientCaCertName: example\n      siteId: ${default.sites[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n        siteName: gositecdn.cn\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Client Ca Certificate can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/clientCaCertificate:ClientCaCertificate example \u003csite_id\u003e:\u003cclient_ca_cert_id\u003e\n```\n\n","properties":{"certificate":{"type":"string","description":"Certificate content.\n"},"clientCaCertId":{"type":"string","description":"ClientCaCertificate Id\n"},"clientCaCertName":{"type":"string","description":"The certificate name.\n"},"createTime":{"type":"string","description":"Creation time.\n"},"siteId":{"type":"string","description":"Site Id\n"},"status":{"type":"string","description":"Certificate status.\n"}},"required":["certificate","clientCaCertId","createTime","siteId","status"],"inputProperties":{"certificate":{"type":"string","description":"Certificate content.\n","willReplaceOnChanges":true},"clientCaCertName":{"type":"string","description":"The certificate name.\n","willReplaceOnChanges":true},"siteId":{"type":"string","description":"Site Id\n","willReplaceOnChanges":true}},"requiredInputs":["certificate","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering ClientCaCertificate resources.\n","properties":{"certificate":{"type":"string","description":"Certificate content.\n","willReplaceOnChanges":true},"clientCaCertId":{"type":"string","description":"ClientCaCertificate Id\n"},"clientCaCertName":{"type":"string","description":"The certificate name.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"Creation time.\n"},"siteId":{"type":"string","description":"Site Id\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Certificate status.\n"}},"type":"object"}},"alicloud:esa/clientCertificate:ClientCertificate":{"description":"Provides a ESA Client Certificate resource.\n\n\n\nFor information about ESA Client Certificate and how to use it, see [What is Client Certificate](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateClientCertificate).\n\n\u003e **NOTE:** Available since v1.244.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n    siteName: \"gositecdn.cn\",\n});\nconst defaultClientCertificate = new alicloud.esa.ClientCertificate(\"default\", {\n    siteId: _default.then(_default =\u003e _default.sites?.[0]?.id),\n    pkeyType: \"RSA\",\n    validityDays: \"365\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\",\n    site_name=\"gositecdn.cn\")\ndefault_client_certificate = alicloud.esa.ClientCertificate(\"default\",\n    site_id=default.sites[0].id,\n    pkey_type=\"RSA\",\n    validity_days=\"365\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n        SiteName = \"gositecdn.cn\",\n    });\n\n    var defaultClientCertificate = new AliCloud.Esa.ClientCertificate(\"default\", new()\n    {\n        SiteId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.Id)),\n        PkeyType = \"RSA\",\n        ValidityDays = \"365\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t\tSiteName:          pulumi.StringRef(\"gositecdn.cn\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewClientCertificate(ctx, \"default\", \u0026esa.ClientCertificateArgs{\n\t\t\tSiteId:       pulumi.Int(_default.Sites[0].Id),\n\t\t\tPkeyType:     pulumi.String(\"RSA\"),\n\t\t\tValidityDays: pulumi.String(\"365\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.ClientCertificate;\nimport com.pulumi.alicloud.esa.ClientCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .siteName(\"gositecdn.cn\")\n            .build());\n\n        var defaultClientCertificate = new ClientCertificate(\"defaultClientCertificate\", ClientCertificateArgs.builder()\n            .siteId(default_.sites()[0].id())\n            .pkeyType(\"RSA\")\n            .validityDays(\"365\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultClientCertificate:\n    type: alicloud:esa:ClientCertificate\n    name: default\n    properties:\n      siteId: ${default.sites[0].id}\n      pkeyType: RSA\n      validityDays: '365'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n        siteName: gositecdn.cn\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Client Certificate can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/clientCertificate:ClientCertificate example \u003csite_id\u003e:\u003cclient_cert_id\u003e\n```\n\n","properties":{"clientCertId":{"type":"string","description":"ClientCertificate Id\n"},"createTime":{"type":"string","description":"The time when the certificate was created.\n"},"csr":{"type":"string","description":"Certificate signing request content.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"pkeyType":{"type":"string","description":"The private key algorithm type.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"siteId":{"type":"string","description":"Site Id\n"},"status":{"type":"string","description":"The certificate status. Valid values: \u003cspan pulumi-lang-nodejs=\"`revoked`\" pulumi-lang-dotnet=\"`Revoked`\" pulumi-lang-go=\"`revoked`\" pulumi-lang-python=\"`revoked`\" pulumi-lang-yaml=\"`revoked`\" pulumi-lang-java=\"`revoked`\"\u003e`revoked`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e.\n"},"validityDays":{"type":"string","description":"Certificate validity period.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"}},"required":["clientCertId","createTime","siteId","status","validityDays"],"inputProperties":{"csr":{"type":"string","description":"Certificate signing request content.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"pkeyType":{"type":"string","description":"The private key algorithm type.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"siteId":{"type":"string","description":"Site Id\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The certificate status. Valid values: \u003cspan pulumi-lang-nodejs=\"`revoked`\" pulumi-lang-dotnet=\"`Revoked`\" pulumi-lang-go=\"`revoked`\" pulumi-lang-python=\"`revoked`\" pulumi-lang-yaml=\"`revoked`\" pulumi-lang-java=\"`revoked`\"\u003e`revoked`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e.\n"},"validityDays":{"type":"string","description":"Certificate validity period.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"}},"requiredInputs":["siteId","validityDays"],"stateInputs":{"description":"Input properties used for looking up and filtering ClientCertificate resources.\n","properties":{"clientCertId":{"type":"string","description":"ClientCertificate Id\n"},"createTime":{"type":"string","description":"The time when the certificate was created.\n"},"csr":{"type":"string","description":"Certificate signing request content.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"pkeyType":{"type":"string","description":"The private key algorithm type.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"siteId":{"type":"string","description":"Site Id\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The certificate status. Valid values: \u003cspan pulumi-lang-nodejs=\"`revoked`\" pulumi-lang-dotnet=\"`Revoked`\" pulumi-lang-go=\"`revoked`\" pulumi-lang-python=\"`revoked`\" pulumi-lang-yaml=\"`revoked`\" pulumi-lang-java=\"`revoked`\"\u003e`revoked`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e.\n"},"validityDays":{"type":"string","description":"Certificate validity period.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"}},"type":"object"}},"alicloud:esa/compressionRule:CompressionRule":{"description":"Provides a ESA Compression Rule resource.\n\n\n\nFor information about ESA Compression Rule and how to use it, see [What is Compression Rule](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateCompressionRule).\n\n\u003e **NOTE:** Available since v1.244.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst example = new alicloud.esa.Site(\"example\", {\n    siteName: \"compression.example.com\",\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"domestic\",\n    accessType: \"NS\",\n});\nconst defaultCompressionRule = new alicloud.esa.CompressionRule(\"default\", {\n    gzip: \"off\",\n    brotli: \"off\",\n    rule: \"http.host eq \\\"video.example.com\\\"\",\n    siteVersion: 0,\n    ruleName: \"rule_example\",\n    siteId: example.id,\n    zstd: \"off\",\n    ruleEnable: \"off\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\nexample = alicloud.esa.Site(\"example\",\n    site_name=\"compression.example.com\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"domestic\",\n    access_type=\"NS\")\ndefault_compression_rule = alicloud.esa.CompressionRule(\"default\",\n    gzip=\"off\",\n    brotli=\"off\",\n    rule=\"http.host eq \\\"video.example.com\\\"\",\n    site_version=0,\n    rule_name=\"rule_example\",\n    site_id=example.id,\n    zstd=\"off\",\n    rule_enable=\"off\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var example = new AliCloud.Esa.Site(\"example\", new()\n    {\n        SiteName = \"compression.example.com\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"domestic\",\n        AccessType = \"NS\",\n    });\n\n    var defaultCompressionRule = new AliCloud.Esa.CompressionRule(\"default\", new()\n    {\n        Gzip = \"off\",\n        Brotli = \"off\",\n        Rule = \"http.host eq \\\"video.example.com\\\"\",\n        SiteVersion = 0,\n        RuleName = \"rule_example\",\n        SiteId = example.Id,\n        Zstd = \"off\",\n        RuleEnable = \"off\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := esa.NewSite(ctx, \"example\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"compression.example.com\"),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"domestic\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewCompressionRule(ctx, \"default\", \u0026esa.CompressionRuleArgs{\n\t\t\tGzip:        pulumi.String(\"off\"),\n\t\t\tBrotli:      pulumi.String(\"off\"),\n\t\t\tRule:        pulumi.String(\"http.host eq \\\"video.example.com\\\"\"),\n\t\t\tSiteVersion: pulumi.Int(0),\n\t\t\tRuleName:    pulumi.String(\"rule_example\"),\n\t\t\tSiteId:      example.ID(),\n\t\t\tZstd:        pulumi.String(\"off\"),\n\t\t\tRuleEnable:  pulumi.String(\"off\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.CompressionRule;\nimport com.pulumi.alicloud.esa.CompressionRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var example = new Site(\"example\", SiteArgs.builder()\n            .siteName(\"compression.example.com\")\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"domestic\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultCompressionRule = new CompressionRule(\"defaultCompressionRule\", CompressionRuleArgs.builder()\n            .gzip(\"off\")\n            .brotli(\"off\")\n            .rule(\"http.host eq \\\"video.example.com\\\"\")\n            .siteVersion(0)\n            .ruleName(\"rule_example\")\n            .siteId(example.id())\n            .zstd(\"off\")\n            .ruleEnable(\"off\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:esa:Site\n    properties:\n      siteName: compression.example.com\n      instanceId: ${default.sites[0].instanceId}\n      coverage: domestic\n      accessType: NS\n  defaultCompressionRule:\n    type: alicloud:esa:CompressionRule\n    name: default\n    properties:\n      gzip: off\n      brotli: off\n      rule: http.host eq \"video.example.com\"\n      siteVersion: '0'\n      ruleName: rule_example\n      siteId: ${example.id}\n      zstd: off\n      ruleEnable: off\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Compression Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/compressionRule:CompressionRule example \u003csite_id\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"brotli":{"type":"string","description":"Brotli compression. Value range:\n"},"configId":{"type":"integer","description":"Config Id\n"},"gzip":{"type":"string","description":"Gzip compression. Value range:\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n"},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n"},"zstd":{"type":"string","description":"Zstd compression. Value range:\n"}},"required":["configId","sequence","siteId"],"inputProperties":{"brotli":{"type":"string","description":"Brotli compression. Value range:\n"},"gzip":{"type":"string","description":"Gzip compression. Value range:\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true},"zstd":{"type":"string","description":"Zstd compression. Value range:\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering CompressionRule resources.\n","properties":{"brotli":{"type":"string","description":"Brotli compression. Value range:\n"},"configId":{"type":"integer","description":"Config Id\n"},"gzip":{"type":"string","description":"Gzip compression. Value range:\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true},"zstd":{"type":"string","description":"Zstd compression. Value range:\n"}},"type":"object"}},"alicloud:esa/customScenePolicy:CustomScenePolicy":{"description":"Provides a ESA Custom Scene Policy resource.\n\n\n\nFor information about ESA Custom Scene Policy and how to use it, see [What is Custom Scene Policy](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateCustomScenePolicy).\n\n\u003e **NOTE:** Available since v1.253.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"bcd58610.com\";\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: name,\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n    versionManagement: true,\n});\nconst defaultCustomScenePolicy = new alicloud.esa.CustomScenePolicy(\"default\", {\n    endTime: \"2025-08-07T17:00:00Z\",\n    createTime: \"2025-07-07T17:00:00Z\",\n    siteIds: defaultSite.id,\n    template: \"promotion\",\n    customScenePolicyName: \"example-policy\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"bcd58610.com\"\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=name,\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\",\n    version_management=True)\ndefault_custom_scene_policy = alicloud.esa.CustomScenePolicy(\"default\",\n    end_time=\"2025-08-07T17:00:00Z\",\n    create_time=\"2025-07-07T17:00:00Z\",\n    site_ids=default_site.id,\n    template=\"promotion\",\n    custom_scene_policy_name=\"example-policy\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"bcd58610.com\";\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = name,\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n        VersionManagement = true,\n    });\n\n    var defaultCustomScenePolicy = new AliCloud.Esa.CustomScenePolicy(\"default\", new()\n    {\n        EndTime = \"2025-08-07T17:00:00Z\",\n        CreateTime = \"2025-07-07T17:00:00Z\",\n        SiteIds = defaultSite.Id,\n        Template = \"promotion\",\n        CustomScenePolicyName = \"example-policy\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"bcd58610.com\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:          pulumi.String(name),\n\t\t\tInstanceId:        pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:          pulumi.String(\"overseas\"),\n\t\t\tAccessType:        pulumi.String(\"NS\"),\n\t\t\tVersionManagement: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewCustomScenePolicy(ctx, \"default\", \u0026esa.CustomScenePolicyArgs{\n\t\t\tEndTime:               pulumi.String(\"2025-08-07T17:00:00Z\"),\n\t\t\tCreateTime:            pulumi.String(\"2025-07-07T17:00:00Z\"),\n\t\t\tSiteIds:               defaultSite.ID(),\n\t\t\tTemplate:              pulumi.String(\"promotion\"),\n\t\t\tCustomScenePolicyName: pulumi.String(\"example-policy\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.CustomScenePolicy;\nimport com.pulumi.alicloud.esa.CustomScenePolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"bcd58610.com\");\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(name)\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .versionManagement(true)\n            .build());\n\n        var defaultCustomScenePolicy = new CustomScenePolicy(\"defaultCustomScenePolicy\", CustomScenePolicyArgs.builder()\n            .endTime(\"2025-08-07T17:00:00Z\")\n            .createTime(\"2025-07-07T17:00:00Z\")\n            .siteIds(defaultSite.id())\n            .template(\"promotion\")\n            .customScenePolicyName(\"example-policy\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: bcd58610.com\nresources:\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: ${name}\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n      versionManagement: true\n  defaultCustomScenePolicy:\n    type: alicloud:esa:CustomScenePolicy\n    name: default\n    properties:\n      endTime: 2025-08-07T17:00:00Z\n      createTime: 2025-07-07T17:00:00Z\n      siteIds: ${defaultSite.id}\n      template: promotion\n      customScenePolicyName: example-policy\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Custom Scene Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/customScenePolicy:CustomScenePolicy example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The time when the policy takes effect.\nThe time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"customScenePolicyName":{"type":"string","description":"The policy name.\n"},"endTime":{"type":"string","description":"The time when the policy expires.\nThe time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"siteIds":{"type":"string","description":"The IDs of websites associated.\n"},"status":{"type":"string","description":"Policy effective status. Valid values: `Disabled`, `Running`.\n"},"template":{"type":"string","description":"The name of the policy template. Valid value:\n"}},"required":["createTime","customScenePolicyName","endTime","siteIds","status","template"],"inputProperties":{"createTime":{"type":"string","description":"The time when the policy takes effect.\nThe time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"customScenePolicyName":{"type":"string","description":"The policy name.\n"},"endTime":{"type":"string","description":"The time when the policy expires.\nThe time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"siteIds":{"type":"string","description":"The IDs of websites associated.\n"},"status":{"type":"string","description":"Policy effective status. Valid values: `Disabled`, `Running`.\n"},"template":{"type":"string","description":"The name of the policy template. Valid value:\n"}},"requiredInputs":["createTime","customScenePolicyName","endTime","siteIds","template"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomScenePolicy resources.\n","properties":{"createTime":{"type":"string","description":"The time when the policy takes effect.\nThe time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"customScenePolicyName":{"type":"string","description":"The policy name.\n"},"endTime":{"type":"string","description":"The time when the policy expires.\nThe time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"siteIds":{"type":"string","description":"The IDs of websites associated.\n"},"status":{"type":"string","description":"Policy effective status. Valid values: `Disabled`, `Running`.\n"},"template":{"type":"string","description":"The name of the policy template. Valid value:\n"}},"type":"object"}},"alicloud:esa/edgeContainerApp:EdgeContainerApp":{"description":"Provides a ESA Edge Container App resource.\n\n\n\nFor information about ESA Edge Container App and how to use it, see [What is Edge Container App](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateEdgeContainerApp).\n\n\u003e **NOTE:** Available since v1.247.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst _default = new alicloud.esa.EdgeContainerApp(\"default\", {\n    targetPort: 3000,\n    healthCheckHost: \"example.com\",\n    remarks: name,\n    healthCheckPort: 80,\n    healthCheckUri: \"/\",\n    healthCheckTimeout: 3,\n    healthCheckMethod: \"HEAD\",\n    healthCheckHttpCode: \"http_2xx\",\n    healthCheckFailTimes: 5,\n    servicePort: 80,\n    healthCheckInterval: 5,\n    healthCheckSuccTimes: 2,\n    edgeContainerAppName: name,\n    healthCheckType: \"l7\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\ndefault = alicloud.esa.EdgeContainerApp(\"default\",\n    target_port=3000,\n    health_check_host=\"example.com\",\n    remarks=name,\n    health_check_port=80,\n    health_check_uri=\"/\",\n    health_check_timeout=3,\n    health_check_method=\"HEAD\",\n    health_check_http_code=\"http_2xx\",\n    health_check_fail_times=5,\n    service_port=80,\n    health_check_interval=5,\n    health_check_succ_times=2,\n    edge_container_app_name=name,\n    health_check_type=\"l7\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var @default = new AliCloud.Esa.EdgeContainerApp(\"default\", new()\n    {\n        TargetPort = 3000,\n        HealthCheckHost = \"example.com\",\n        Remarks = name,\n        HealthCheckPort = 80,\n        HealthCheckUri = \"/\",\n        HealthCheckTimeout = 3,\n        HealthCheckMethod = \"HEAD\",\n        HealthCheckHttpCode = \"http_2xx\",\n        HealthCheckFailTimes = 5,\n        ServicePort = 80,\n        HealthCheckInterval = 5,\n        HealthCheckSuccTimes = 2,\n        EdgeContainerAppName = name,\n        HealthCheckType = \"l7\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := esa.NewEdgeContainerApp(ctx, \"default\", \u0026esa.EdgeContainerAppArgs{\n\t\t\tTargetPort:           pulumi.Int(3000),\n\t\t\tHealthCheckHost:      pulumi.String(\"example.com\"),\n\t\t\tRemarks:              pulumi.String(name),\n\t\t\tHealthCheckPort:      pulumi.Int(80),\n\t\t\tHealthCheckUri:       pulumi.String(\"/\"),\n\t\t\tHealthCheckTimeout:   pulumi.Int(3),\n\t\t\tHealthCheckMethod:    pulumi.String(\"HEAD\"),\n\t\t\tHealthCheckHttpCode:  pulumi.String(\"http_2xx\"),\n\t\t\tHealthCheckFailTimes: pulumi.Int(5),\n\t\t\tServicePort:          pulumi.Int(80),\n\t\t\tHealthCheckInterval:  pulumi.Int(5),\n\t\t\tHealthCheckSuccTimes: pulumi.Int(2),\n\t\t\tEdgeContainerAppName: pulumi.String(name),\n\t\t\tHealthCheckType:      pulumi.String(\"l7\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EdgeContainerApp;\nimport com.pulumi.alicloud.esa.EdgeContainerAppArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        var default_ = new EdgeContainerApp(\"default\", EdgeContainerAppArgs.builder()\n            .targetPort(3000)\n            .healthCheckHost(\"example.com\")\n            .remarks(name)\n            .healthCheckPort(80)\n            .healthCheckUri(\"/\")\n            .healthCheckTimeout(3)\n            .healthCheckMethod(\"HEAD\")\n            .healthCheckHttpCode(\"http_2xx\")\n            .healthCheckFailTimes(5)\n            .servicePort(80)\n            .healthCheckInterval(5)\n            .healthCheckSuccTimes(2)\n            .edgeContainerAppName(name)\n            .healthCheckType(\"l7\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  default:\n    type: alicloud:esa:EdgeContainerApp\n    properties:\n      targetPort: '3000'\n      healthCheckHost: example.com\n      remarks: ${name}\n      healthCheckPort: '80'\n      healthCheckUri: /\n      healthCheckTimeout: '3'\n      healthCheckMethod: HEAD\n      healthCheckHttpCode: http_2xx\n      healthCheckFailTimes: '5'\n      servicePort: '80'\n      healthCheckInterval: '5'\n      healthCheckSuccTimes: '2'\n      edgeContainerAppName: ${name}\n      healthCheckType: l7\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Edge Container App can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/edgeContainerApp:EdgeContainerApp example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The time when the application was created.\n"},"edgeContainerAppName":{"type":"string","description":"The application name must start with a lowercase letter. Lowercase letters, numbers, and bars are supported. The length is limited to 6 to 128 characters.\n"},"healthCheckFailTimes":{"type":"integer","description":"The number of consecutive successful health checks required for an application to be considered as healthy. Valid values: 1 to 10. Default value: 2.\n"},"healthCheckHost":{"type":"string","description":"The health check type. By default, this parameter is left empty.\n\nValid values:\n"},"healthCheckHttpCode":{"type":"string","description":"The domain name that is used for health checks. This parameter is empty by default.\n"},"healthCheckInterval":{"type":"integer","description":"The timeout period of a health check response. If a backend ECS instance does not respond within the specified timeout period, the ECS instance fails the health check. Unit: seconds.\nValid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\nDefault value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"healthCheckMethod":{"type":"string","description":"The HTTP status code returned for a successful health check. Valid values:\n\n- **http\\_2xx** (default)\n- **http\\_3xx**\n"},"healthCheckPort":{"type":"integer","description":"The URI used for health checks. The URI must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`80`\" pulumi-lang-dotnet=\"`80`\" pulumi-lang-go=\"`80`\" pulumi-lang-python=\"`80`\" pulumi-lang-yaml=\"`80`\" pulumi-lang-java=\"`80`\"\u003e`80`\u003c/span\u003e characters in length. Default value: \"/\".\n"},"healthCheckSuccTimes":{"type":"integer","description":"The interval between two consecutive health checks. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"healthCheckTimeout":{"type":"integer","description":"The port used for health checks. Valid values: 1 to 65535. Default value: 80.\n"},"healthCheckType":{"type":"string","description":"The remarks. This parameter is empty by default.\n"},"healthCheckUri":{"type":"string","description":"The HTTP request method for health checks. Valid values:\n\n- `HEAD` (default): requests the headers of the resource.\n- `GET`: requests the specified resource and returns both the headers and entity body.\n"},"remarks":{"type":"string","description":"The backend port, which is also the service port of the application. Valid values: 1 to 65535.\n"},"servicePort":{"type":"integer","description":"The name of the application. The name must start with a lowercase letter and can contain lowercase letters, digits, and hyphens (-). The name must be 6 to 128 characters in length.\n"},"status":{"type":"string","description":"The status of the application.\n"},"targetPort":{"type":"integer","description":"The server port. Valid values: 1 to 65535.\n"}},"required":["createTime","edgeContainerAppName","healthCheckHttpCode","healthCheckInterval","healthCheckMethod","healthCheckPort","healthCheckSuccTimes","healthCheckTimeout","healthCheckType","healthCheckUri","servicePort","status","targetPort"],"inputProperties":{"edgeContainerAppName":{"type":"string","description":"The application name must start with a lowercase letter. Lowercase letters, numbers, and bars are supported. The length is limited to 6 to 128 characters.\n","willReplaceOnChanges":true},"healthCheckFailTimes":{"type":"integer","description":"The number of consecutive successful health checks required for an application to be considered as healthy. Valid values: 1 to 10. Default value: 2.\n","willReplaceOnChanges":true},"healthCheckHost":{"type":"string","description":"The health check type. By default, this parameter is left empty.\n\nValid values:\n","willReplaceOnChanges":true},"healthCheckHttpCode":{"type":"string","description":"The domain name that is used for health checks. This parameter is empty by default.\n","willReplaceOnChanges":true},"healthCheckInterval":{"type":"integer","description":"The timeout period of a health check response. If a backend ECS instance does not respond within the specified timeout period, the ECS instance fails the health check. Unit: seconds.\nValid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\nDefault value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n","willReplaceOnChanges":true},"healthCheckMethod":{"type":"string","description":"The HTTP status code returned for a successful health check. Valid values:\n\n- **http\\_2xx** (default)\n- **http\\_3xx**\n","willReplaceOnChanges":true},"healthCheckPort":{"type":"integer","description":"The URI used for health checks. The URI must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`80`\" pulumi-lang-dotnet=\"`80`\" pulumi-lang-go=\"`80`\" pulumi-lang-python=\"`80`\" pulumi-lang-yaml=\"`80`\" pulumi-lang-java=\"`80`\"\u003e`80`\u003c/span\u003e characters in length. Default value: \"/\".\n","willReplaceOnChanges":true},"healthCheckSuccTimes":{"type":"integer","description":"The interval between two consecutive health checks. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n","willReplaceOnChanges":true},"healthCheckTimeout":{"type":"integer","description":"The port used for health checks. Valid values: 1 to 65535. Default value: 80.\n","willReplaceOnChanges":true},"healthCheckType":{"type":"string","description":"The remarks. This parameter is empty by default.\n","willReplaceOnChanges":true},"healthCheckUri":{"type":"string","description":"The HTTP request method for health checks. Valid values:\n\n- `HEAD` (default): requests the headers of the resource.\n- `GET`: requests the specified resource and returns both the headers and entity body.\n","willReplaceOnChanges":true},"remarks":{"type":"string","description":"The backend port, which is also the service port of the application. Valid values: 1 to 65535.\n","willReplaceOnChanges":true},"servicePort":{"type":"integer","description":"The name of the application. The name must start with a lowercase letter and can contain lowercase letters, digits, and hyphens (-). The name must be 6 to 128 characters in length.\n","willReplaceOnChanges":true},"targetPort":{"type":"integer","description":"The server port. Valid values: 1 to 65535.\n","willReplaceOnChanges":true}},"requiredInputs":["edgeContainerAppName","servicePort","targetPort"],"stateInputs":{"description":"Input properties used for looking up and filtering EdgeContainerApp resources.\n","properties":{"createTime":{"type":"string","description":"The time when the application was created.\n"},"edgeContainerAppName":{"type":"string","description":"The application name must start with a lowercase letter. Lowercase letters, numbers, and bars are supported. The length is limited to 6 to 128 characters.\n","willReplaceOnChanges":true},"healthCheckFailTimes":{"type":"integer","description":"The number of consecutive successful health checks required for an application to be considered as healthy. Valid values: 1 to 10. Default value: 2.\n","willReplaceOnChanges":true},"healthCheckHost":{"type":"string","description":"The health check type. By default, this parameter is left empty.\n\nValid values:\n","willReplaceOnChanges":true},"healthCheckHttpCode":{"type":"string","description":"The domain name that is used for health checks. This parameter is empty by default.\n","willReplaceOnChanges":true},"healthCheckInterval":{"type":"integer","description":"The timeout period of a health check response. If a backend ECS instance does not respond within the specified timeout period, the ECS instance fails the health check. Unit: seconds.\nValid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\nDefault value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n","willReplaceOnChanges":true},"healthCheckMethod":{"type":"string","description":"The HTTP status code returned for a successful health check. Valid values:\n\n- **http\\_2xx** (default)\n- **http\\_3xx**\n","willReplaceOnChanges":true},"healthCheckPort":{"type":"integer","description":"The URI used for health checks. The URI must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`80`\" pulumi-lang-dotnet=\"`80`\" pulumi-lang-go=\"`80`\" pulumi-lang-python=\"`80`\" pulumi-lang-yaml=\"`80`\" pulumi-lang-java=\"`80`\"\u003e`80`\u003c/span\u003e characters in length. Default value: \"/\".\n","willReplaceOnChanges":true},"healthCheckSuccTimes":{"type":"integer","description":"The interval between two consecutive health checks. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n","willReplaceOnChanges":true},"healthCheckTimeout":{"type":"integer","description":"The port used for health checks. Valid values: 1 to 65535. Default value: 80.\n","willReplaceOnChanges":true},"healthCheckType":{"type":"string","description":"The remarks. This parameter is empty by default.\n","willReplaceOnChanges":true},"healthCheckUri":{"type":"string","description":"The HTTP request method for health checks. Valid values:\n\n- `HEAD` (default): requests the headers of the resource.\n- `GET`: requests the specified resource and returns both the headers and entity body.\n","willReplaceOnChanges":true},"remarks":{"type":"string","description":"The backend port, which is also the service port of the application. Valid values: 1 to 65535.\n","willReplaceOnChanges":true},"servicePort":{"type":"integer","description":"The name of the application. The name must start with a lowercase letter and can contain lowercase letters, digits, and hyphens (-). The name must be 6 to 128 characters in length.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the application.\n"},"targetPort":{"type":"integer","description":"The server port. Valid values: 1 to 65535.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/edgeContainerAppRecord:EdgeContainerAppRecord":{"description":"Provides a ESA Edge Container App Record resource.\n\n\n\nFor information about ESA Edge Container App Record and how to use it, see [What is Edge Container App Record](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateEdgeContainerAppRecord).\n\n\u003e **NOTE:** Available since v1.247.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform.com\";\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst resourceSiteOriginPoolTest = new alicloud.esa.Site(\"resource_Site_OriginPool_test\", {\n    siteName: `gositecdn-${defaultInteger.result}.cn`,\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultEdgeContainerApp = new alicloud.esa.EdgeContainerApp(\"default\", {\n    healthCheckHost: \"example.com\",\n    healthCheckType: \"l7\",\n    servicePort: 80,\n    healthCheckInterval: 5,\n    edgeContainerAppName: \"terraform-app2\",\n    healthCheckHttpCode: \"http_2xx\",\n    healthCheckUri: \"/\",\n    healthCheckTimeout: 3,\n    healthCheckSuccTimes: 2,\n    remarks: name,\n    healthCheckMethod: \"HEAD\",\n    healthCheckPort: 80,\n    healthCheckFailTimes: 5,\n    targetPort: 3000,\n});\nconst defaultEdgeContainerAppRecord = new alicloud.esa.EdgeContainerAppRecord(\"default\", {\n    recordName: \"tf.terraform.com\",\n    siteId: resourceSiteOriginPoolTest.id,\n    appId: defaultEdgeContainerApp.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform.com\"\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nresource_site_origin_pool_test = alicloud.esa.Site(\"resource_Site_OriginPool_test\",\n    site_name=f\"gositecdn-{default_integer['result']}.cn\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_edge_container_app = alicloud.esa.EdgeContainerApp(\"default\",\n    health_check_host=\"example.com\",\n    health_check_type=\"l7\",\n    service_port=80,\n    health_check_interval=5,\n    edge_container_app_name=\"terraform-app2\",\n    health_check_http_code=\"http_2xx\",\n    health_check_uri=\"/\",\n    health_check_timeout=3,\n    health_check_succ_times=2,\n    remarks=name,\n    health_check_method=\"HEAD\",\n    health_check_port=80,\n    health_check_fail_times=5,\n    target_port=3000)\ndefault_edge_container_app_record = alicloud.esa.EdgeContainerAppRecord(\"default\",\n    record_name=\"tf.terraform.com\",\n    site_id=resource_site_origin_pool_test.id,\n    app_id=default_edge_container_app.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform.com\";\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var resourceSiteOriginPoolTest = new AliCloud.Esa.Site(\"resource_Site_OriginPool_test\", new()\n    {\n        SiteName = $\"gositecdn-{defaultInteger.Result}.cn\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultEdgeContainerApp = new AliCloud.Esa.EdgeContainerApp(\"default\", new()\n    {\n        HealthCheckHost = \"example.com\",\n        HealthCheckType = \"l7\",\n        ServicePort = 80,\n        HealthCheckInterval = 5,\n        EdgeContainerAppName = \"terraform-app2\",\n        HealthCheckHttpCode = \"http_2xx\",\n        HealthCheckUri = \"/\",\n        HealthCheckTimeout = 3,\n        HealthCheckSuccTimes = 2,\n        Remarks = name,\n        HealthCheckMethod = \"HEAD\",\n        HealthCheckPort = 80,\n        HealthCheckFailTimes = 5,\n        TargetPort = 3000,\n    });\n\n    var defaultEdgeContainerAppRecord = new AliCloud.Esa.EdgeContainerAppRecord(\"default\", new()\n    {\n        RecordName = \"tf.terraform.com\",\n        SiteId = resourceSiteOriginPoolTest.Id,\n        AppId = defaultEdgeContainerApp.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform.com\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresourceSiteOriginPoolTest, err := esa.NewSite(ctx, \"resource_Site_OriginPool_test\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.Sprintf(\"gositecdn-%v.cn\", defaultInteger.Result),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEdgeContainerApp, err := esa.NewEdgeContainerApp(ctx, \"default\", \u0026esa.EdgeContainerAppArgs{\n\t\t\tHealthCheckHost:      pulumi.String(\"example.com\"),\n\t\t\tHealthCheckType:      pulumi.String(\"l7\"),\n\t\t\tServicePort:          pulumi.Int(80),\n\t\t\tHealthCheckInterval:  pulumi.Int(5),\n\t\t\tEdgeContainerAppName: pulumi.String(\"terraform-app2\"),\n\t\t\tHealthCheckHttpCode:  pulumi.String(\"http_2xx\"),\n\t\t\tHealthCheckUri:       pulumi.String(\"/\"),\n\t\t\tHealthCheckTimeout:   pulumi.Int(3),\n\t\t\tHealthCheckSuccTimes: pulumi.Int(2),\n\t\t\tRemarks:              pulumi.String(name),\n\t\t\tHealthCheckMethod:    pulumi.String(\"HEAD\"),\n\t\t\tHealthCheckPort:      pulumi.Int(80),\n\t\t\tHealthCheckFailTimes: pulumi.Int(5),\n\t\t\tTargetPort:           pulumi.Int(3000),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewEdgeContainerAppRecord(ctx, \"default\", \u0026esa.EdgeContainerAppRecordArgs{\n\t\t\tRecordName: pulumi.String(\"tf.terraform.com\"),\n\t\t\tSiteId:     resourceSiteOriginPoolTest.ID(),\n\t\t\tAppId:      defaultEdgeContainerApp.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.EdgeContainerApp;\nimport com.pulumi.alicloud.esa.EdgeContainerAppArgs;\nimport com.pulumi.alicloud.esa.EdgeContainerAppRecord;\nimport com.pulumi.alicloud.esa.EdgeContainerAppRecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform.com\");\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var resourceSiteOriginPoolTest = new Site(\"resourceSiteOriginPoolTest\", SiteArgs.builder()\n            .siteName(String.format(\"gositecdn-%s.cn\", defaultInteger.result()))\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultEdgeContainerApp = new EdgeContainerApp(\"defaultEdgeContainerApp\", EdgeContainerAppArgs.builder()\n            .healthCheckHost(\"example.com\")\n            .healthCheckType(\"l7\")\n            .servicePort(80)\n            .healthCheckInterval(5)\n            .edgeContainerAppName(\"terraform-app2\")\n            .healthCheckHttpCode(\"http_2xx\")\n            .healthCheckUri(\"/\")\n            .healthCheckTimeout(3)\n            .healthCheckSuccTimes(2)\n            .remarks(name)\n            .healthCheckMethod(\"HEAD\")\n            .healthCheckPort(80)\n            .healthCheckFailTimes(5)\n            .targetPort(3000)\n            .build());\n\n        var defaultEdgeContainerAppRecord = new EdgeContainerAppRecord(\"defaultEdgeContainerAppRecord\", EdgeContainerAppRecordArgs.builder()\n            .recordName(\"tf.terraform.com\")\n            .siteId(resourceSiteOriginPoolTest.id())\n            .appId(defaultEdgeContainerApp.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform.com\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  resourceSiteOriginPoolTest:\n    type: alicloud:esa:Site\n    name: resource_Site_OriginPool_test\n    properties:\n      siteName: gositecdn-${defaultInteger.result}.cn\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  defaultEdgeContainerApp:\n    type: alicloud:esa:EdgeContainerApp\n    name: default\n    properties:\n      healthCheckHost: example.com\n      healthCheckType: l7\n      servicePort: '80'\n      healthCheckInterval: '5'\n      edgeContainerAppName: terraform-app2\n      healthCheckHttpCode: http_2xx\n      healthCheckUri: /\n      healthCheckTimeout: '3'\n      healthCheckSuccTimes: '2'\n      remarks: ${name}\n      healthCheckMethod: HEAD\n      healthCheckPort: '80'\n      healthCheckFailTimes: '5'\n      targetPort: '3000'\n  defaultEdgeContainerAppRecord:\n    type: alicloud:esa:EdgeContainerAppRecord\n    name: default\n    properties:\n      recordName: tf.terraform.com\n      siteId: ${resourceSiteOriginPoolTest.id}\n      appId: ${defaultEdgeContainerApp.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Edge Container App Record can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/edgeContainerAppRecord:EdgeContainerAppRecord example \u003csite_id\u003e:\u003capp_id\u003e:\u003crecord_name\u003e\n```\n\n","properties":{"appId":{"type":"string","description":"The application ID\n"},"createTime":{"type":"string","description":"The time when the domain name was added. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ss format. The time is displayed in UTC.\n"},"recordName":{"type":"string","description":"The associated domain name.\n"},"siteId":{"type":"string","description":"The website ID.\n"}},"required":["appId","createTime","recordName","siteId"],"inputProperties":{"appId":{"type":"string","description":"The application ID\n","willReplaceOnChanges":true},"recordName":{"type":"string","description":"The associated domain name.\n","willReplaceOnChanges":true},"siteId":{"type":"string","description":"The website ID.\n","willReplaceOnChanges":true}},"requiredInputs":["appId","recordName"],"stateInputs":{"description":"Input properties used for looking up and filtering EdgeContainerAppRecord resources.\n","properties":{"appId":{"type":"string","description":"The application ID\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The time when the domain name was added. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ss format. The time is displayed in UTC.\n"},"recordName":{"type":"string","description":"The associated domain name.\n","willReplaceOnChanges":true},"siteId":{"type":"string","description":"The website ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/httpIncomingRequestHeaderModificationRule:HttpIncomingRequestHeaderModificationRule":{"description":"Provides a ESA Http Incoming Request Header Modification Rule resource.\n\n\n\nFor information about ESA Http Incoming Request Header Modification Rule and how to use it, see [What is Http Incoming Request Header Modification Rule](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateHttpIncomingRequestHeaderModificationRule).\n\n\u003e **NOTE:** Available since v1.266.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst resourceHttpIncomingRequestHeaderModificationRuleExample = new alicloud.esa.RatePlanInstance(\"resource_HttpIncomingRequestHeaderModificationRule_example\", {\n    type: \"NS\",\n    autoRenew: false,\n    period: 1,\n    paymentType: \"Subscription\",\n    coverage: \"overseas\",\n    autoPay: true,\n    planName: \"high\",\n});\nconst resourceSiteHttpIncomingRequestHeaderModificationRuleExample = new alicloud.esa.Site(\"resource_Site_HttpIncomingRequestHeaderModificationRule_example\", {\n    siteName: `gositecdn${_default.result}.cn`,\n    instanceId: resourceHttpIncomingRequestHeaderModificationRuleExample.id,\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultHttpIncomingRequestHeaderModificationRule = new alicloud.esa.HttpIncomingRequestHeaderModificationRule(\"default\", {\n    siteId: resourceSiteHttpIncomingRequestHeaderModificationRuleExample.id,\n    ruleEnable: \"on\",\n    rule: \"(http.host eq \\\"video.example.com\\\")\",\n    sequence: 1,\n    siteVersion: 0,\n    ruleName: \"example\",\n    requestHeaderModifications: [\n        {\n            type: \"static\",\n            value: \"add\",\n            operation: \"add\",\n            name: \"exampleadd\",\n        },\n        {\n            operation: \"del\",\n            name: \"exampledel\",\n        },\n        {\n            type: \"dynamic\",\n            value: \"ip.geoip.country\",\n            operation: \"modify\",\n            name: \"examplemodify\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nresource_http_incoming_request_header_modification_rule_example = alicloud.esa.RatePlanInstance(\"resource_HttpIncomingRequestHeaderModificationRule_example\",\n    type=\"NS\",\n    auto_renew=False,\n    period=1,\n    payment_type=\"Subscription\",\n    coverage=\"overseas\",\n    auto_pay=True,\n    plan_name=\"high\")\nresource_site_http_incoming_request_header_modification_rule_example = alicloud.esa.Site(\"resource_Site_HttpIncomingRequestHeaderModificationRule_example\",\n    site_name=f\"gositecdn{default['result']}.cn\",\n    instance_id=resource_http_incoming_request_header_modification_rule_example.id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_http_incoming_request_header_modification_rule = alicloud.esa.HttpIncomingRequestHeaderModificationRule(\"default\",\n    site_id=resource_site_http_incoming_request_header_modification_rule_example.id,\n    rule_enable=\"on\",\n    rule=\"(http.host eq \\\"video.example.com\\\")\",\n    sequence=1,\n    site_version=0,\n    rule_name=\"example\",\n    request_header_modifications=[\n        {\n            \"type\": \"static\",\n            \"value\": \"add\",\n            \"operation\": \"add\",\n            \"name\": \"exampleadd\",\n        },\n        {\n            \"operation\": \"del\",\n            \"name\": \"exampledel\",\n        },\n        {\n            \"type\": \"dynamic\",\n            \"value\": \"ip.geoip.country\",\n            \"operation\": \"modify\",\n            \"name\": \"examplemodify\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var resourceHttpIncomingRequestHeaderModificationRuleExample = new AliCloud.Esa.RatePlanInstance(\"resource_HttpIncomingRequestHeaderModificationRule_example\", new()\n    {\n        Type = \"NS\",\n        AutoRenew = false,\n        Period = 1,\n        PaymentType = \"Subscription\",\n        Coverage = \"overseas\",\n        AutoPay = true,\n        PlanName = \"high\",\n    });\n\n    var resourceSiteHttpIncomingRequestHeaderModificationRuleExample = new AliCloud.Esa.Site(\"resource_Site_HttpIncomingRequestHeaderModificationRule_example\", new()\n    {\n        SiteName = $\"gositecdn{@default.Result}.cn\",\n        InstanceId = resourceHttpIncomingRequestHeaderModificationRuleExample.Id,\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultHttpIncomingRequestHeaderModificationRule = new AliCloud.Esa.HttpIncomingRequestHeaderModificationRule(\"default\", new()\n    {\n        SiteId = resourceSiteHttpIncomingRequestHeaderModificationRuleExample.Id,\n        RuleEnable = \"on\",\n        Rule = \"(http.host eq \\\"video.example.com\\\")\",\n        Sequence = 1,\n        SiteVersion = 0,\n        RuleName = \"example\",\n        RequestHeaderModifications = new[]\n        {\n            new AliCloud.Esa.Inputs.HttpIncomingRequestHeaderModificationRuleRequestHeaderModificationArgs\n            {\n                Type = \"static\",\n                Value = \"add\",\n                Operation = \"add\",\n                Name = \"exampleadd\",\n            },\n            new AliCloud.Esa.Inputs.HttpIncomingRequestHeaderModificationRuleRequestHeaderModificationArgs\n            {\n                Operation = \"del\",\n                Name = \"exampledel\",\n            },\n            new AliCloud.Esa.Inputs.HttpIncomingRequestHeaderModificationRuleRequestHeaderModificationArgs\n            {\n                Type = \"dynamic\",\n                Value = \"ip.geoip.country\",\n                Operation = \"modify\",\n                Name = \"examplemodify\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresourceHttpIncomingRequestHeaderModificationRuleExample, err := esa.NewRatePlanInstance(ctx, \"resource_HttpIncomingRequestHeaderModificationRule_example\", \u0026esa.RatePlanInstanceArgs{\n\t\t\tType:        pulumi.String(\"NS\"),\n\t\t\tAutoRenew:   pulumi.Bool(false),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tPaymentType: pulumi.String(\"Subscription\"),\n\t\t\tCoverage:    pulumi.String(\"overseas\"),\n\t\t\tAutoPay:     pulumi.Bool(true),\n\t\t\tPlanName:    pulumi.String(\"high\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresourceSiteHttpIncomingRequestHeaderModificationRuleExample, err := esa.NewSite(ctx, \"resource_Site_HttpIncomingRequestHeaderModificationRule_example\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.Sprintf(\"gositecdn%v.cn\", _default.Result),\n\t\t\tInstanceId: resourceHttpIncomingRequestHeaderModificationRuleExample.ID(),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewHttpIncomingRequestHeaderModificationRule(ctx, \"default\", \u0026esa.HttpIncomingRequestHeaderModificationRuleArgs{\n\t\t\tSiteId:      resourceSiteHttpIncomingRequestHeaderModificationRuleExample.ID(),\n\t\t\tRuleEnable:  pulumi.String(\"on\"),\n\t\t\tRule:        pulumi.String(\"(http.host eq \\\"video.example.com\\\")\"),\n\t\t\tSequence:    pulumi.Int(1),\n\t\t\tSiteVersion: pulumi.Int(0),\n\t\t\tRuleName:    pulumi.String(\"example\"),\n\t\t\tRequestHeaderModifications: esa.HttpIncomingRequestHeaderModificationRuleRequestHeaderModificationArray{\n\t\t\t\t\u0026esa.HttpIncomingRequestHeaderModificationRuleRequestHeaderModificationArgs{\n\t\t\t\t\tType:      pulumi.String(\"static\"),\n\t\t\t\t\tValue:     pulumi.String(\"add\"),\n\t\t\t\t\tOperation: pulumi.String(\"add\"),\n\t\t\t\t\tName:      pulumi.String(\"exampleadd\"),\n\t\t\t\t},\n\t\t\t\t\u0026esa.HttpIncomingRequestHeaderModificationRuleRequestHeaderModificationArgs{\n\t\t\t\t\tOperation: pulumi.String(\"del\"),\n\t\t\t\t\tName:      pulumi.String(\"exampledel\"),\n\t\t\t\t},\n\t\t\t\t\u0026esa.HttpIncomingRequestHeaderModificationRuleRequestHeaderModificationArgs{\n\t\t\t\t\tType:      pulumi.String(\"dynamic\"),\n\t\t\t\t\tValue:     pulumi.String(\"ip.geoip.country\"),\n\t\t\t\t\tOperation: pulumi.String(\"modify\"),\n\t\t\t\t\tName:      pulumi.String(\"examplemodify\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.esa.RatePlanInstance;\nimport com.pulumi.alicloud.esa.RatePlanInstanceArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.HttpIncomingRequestHeaderModificationRule;\nimport com.pulumi.alicloud.esa.HttpIncomingRequestHeaderModificationRuleArgs;\nimport com.pulumi.alicloud.esa.inputs.HttpIncomingRequestHeaderModificationRuleRequestHeaderModificationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var resourceHttpIncomingRequestHeaderModificationRuleExample = new RatePlanInstance(\"resourceHttpIncomingRequestHeaderModificationRuleExample\", RatePlanInstanceArgs.builder()\n            .type(\"NS\")\n            .autoRenew(false)\n            .period(1)\n            .paymentType(\"Subscription\")\n            .coverage(\"overseas\")\n            .autoPay(true)\n            .planName(\"high\")\n            .build());\n\n        var resourceSiteHttpIncomingRequestHeaderModificationRuleExample = new Site(\"resourceSiteHttpIncomingRequestHeaderModificationRuleExample\", SiteArgs.builder()\n            .siteName(String.format(\"gositecdn%s.cn\", default_.result()))\n            .instanceId(resourceHttpIncomingRequestHeaderModificationRuleExample.id())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultHttpIncomingRequestHeaderModificationRule = new HttpIncomingRequestHeaderModificationRule(\"defaultHttpIncomingRequestHeaderModificationRule\", HttpIncomingRequestHeaderModificationRuleArgs.builder()\n            .siteId(resourceSiteHttpIncomingRequestHeaderModificationRuleExample.id())\n            .ruleEnable(\"on\")\n            .rule(\"(http.host eq \\\"video.example.com\\\")\")\n            .sequence(1)\n            .siteVersion(0)\n            .ruleName(\"example\")\n            .requestHeaderModifications(            \n                HttpIncomingRequestHeaderModificationRuleRequestHeaderModificationArgs.builder()\n                    .type(\"static\")\n                    .value(\"add\")\n                    .operation(\"add\")\n                    .name(\"exampleadd\")\n                    .build(),\n                HttpIncomingRequestHeaderModificationRuleRequestHeaderModificationArgs.builder()\n                    .operation(\"del\")\n                    .name(\"exampledel\")\n                    .build(),\n                HttpIncomingRequestHeaderModificationRuleRequestHeaderModificationArgs.builder()\n                    .type(\"dynamic\")\n                    .value(\"ip.geoip.country\")\n                    .operation(\"modify\")\n                    .name(\"examplemodify\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  resourceHttpIncomingRequestHeaderModificationRuleExample:\n    type: alicloud:esa:RatePlanInstance\n    name: resource_HttpIncomingRequestHeaderModificationRule_example\n    properties:\n      type: NS\n      autoRenew: false\n      period: '1'\n      paymentType: Subscription\n      coverage: overseas\n      autoPay: true\n      planName: high\n  resourceSiteHttpIncomingRequestHeaderModificationRuleExample:\n    type: alicloud:esa:Site\n    name: resource_Site_HttpIncomingRequestHeaderModificationRule_example\n    properties:\n      siteName: gositecdn${default.result}.cn\n      instanceId: ${resourceHttpIncomingRequestHeaderModificationRuleExample.id}\n      coverage: overseas\n      accessType: NS\n  defaultHttpIncomingRequestHeaderModificationRule:\n    type: alicloud:esa:HttpIncomingRequestHeaderModificationRule\n    name: default\n    properties:\n      siteId: ${resourceSiteHttpIncomingRequestHeaderModificationRuleExample.id}\n      ruleEnable: on\n      rule: (http.host eq \"video.example.com\")\n      sequence: '1'\n      siteVersion: '0'\n      ruleName: example\n      requestHeaderModifications:\n        - type: static\n          value: add\n          operation: add\n          name: exampleadd\n        - operation: del\n          name: exampledel\n        - type: dynamic\n          value: ip.geoip.country\n          operation: modify\n          name: examplemodify\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Http Incoming Request Header Modification Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/httpIncomingRequestHeaderModificationRule:HttpIncomingRequestHeaderModificationRule example \u003csite_id\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"configId":{"type":"integer","description":"Config Id\n"},"requestHeaderModifications":{"type":"array","items":{"$ref":"#/types/alicloud:esa/HttpIncomingRequestHeaderModificationRuleRequestHeaderModification:HttpIncomingRequestHeaderModificationRuleRequestHeaderModification"},"description":"The configurations of modifying request headers. You can add, delete, or modify a request header. See \u003cspan pulumi-lang-nodejs=\"`requestHeaderModification`\" pulumi-lang-dotnet=\"`RequestHeaderModification`\" pulumi-lang-go=\"`requestHeaderModification`\" pulumi-lang-python=\"`request_header_modification`\" pulumi-lang-yaml=\"`requestHeaderModification`\" pulumi-lang-java=\"`requestHeaderModification`\"\u003e`request_header_modification`\u003c/span\u003e below.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n- on: open.\n- off: close.\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"Order of rule execution. The smaller the value, the higher the priority for execution.\n"},"siteId":{"type":"string","description":"The site ID.\n"},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n"}},"required":["configId","requestHeaderModifications","siteId"],"inputProperties":{"requestHeaderModifications":{"type":"array","items":{"$ref":"#/types/alicloud:esa/HttpIncomingRequestHeaderModificationRuleRequestHeaderModification:HttpIncomingRequestHeaderModificationRuleRequestHeaderModification"},"description":"The configurations of modifying request headers. You can add, delete, or modify a request header. See \u003cspan pulumi-lang-nodejs=\"`requestHeaderModification`\" pulumi-lang-dotnet=\"`RequestHeaderModification`\" pulumi-lang-go=\"`requestHeaderModification`\" pulumi-lang-python=\"`request_header_modification`\" pulumi-lang-yaml=\"`requestHeaderModification`\" pulumi-lang-java=\"`requestHeaderModification`\"\u003e`request_header_modification`\u003c/span\u003e below.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n- on: open.\n- off: close.\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"Order of rule execution. The smaller the value, the higher the priority for execution.\n"},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true}},"requiredInputs":["requestHeaderModifications","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering HttpIncomingRequestHeaderModificationRule resources.\n","properties":{"configId":{"type":"integer","description":"Config Id\n"},"requestHeaderModifications":{"type":"array","items":{"$ref":"#/types/alicloud:esa/HttpIncomingRequestHeaderModificationRuleRequestHeaderModification:HttpIncomingRequestHeaderModificationRuleRequestHeaderModification"},"description":"The configurations of modifying request headers. You can add, delete, or modify a request header. See \u003cspan pulumi-lang-nodejs=\"`requestHeaderModification`\" pulumi-lang-dotnet=\"`RequestHeaderModification`\" pulumi-lang-go=\"`requestHeaderModification`\" pulumi-lang-python=\"`request_header_modification`\" pulumi-lang-yaml=\"`requestHeaderModification`\" pulumi-lang-java=\"`requestHeaderModification`\"\u003e`request_header_modification`\u003c/span\u003e below.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n- on: open.\n- off: close.\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"Order of rule execution. The smaller the value, the higher the priority for execution.\n"},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/httpIncomingResponseHeaderModificationRule:HttpIncomingResponseHeaderModificationRule":{"description":"Provides a ESA Http Incoming Response Header Modification Rule resource.\n\n\n\nFor information about ESA Http Incoming Response Header Modification Rule and how to use it, see [What is Http Incoming Response Header Modification Rule](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateHttpIncomingResponseHeaderModificationRule).\n\n\u003e **NOTE:** Available since v1.266.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst resourceHttpIncomingResponseHeaderModificationRuleExample = new alicloud.esa.RatePlanInstance(\"resource_HttpIncomingResponseHeaderModificationRule_example\", {\n    type: \"NS\",\n    autoRenew: false,\n    period: 1,\n    paymentType: \"Subscription\",\n    coverage: \"overseas\",\n    autoPay: true,\n    planName: \"basic\",\n});\nconst resourceSiteHttpIncomingResponseHeaderModificationRuleExample = new alicloud.esa.Site(\"resource_Site_HttpIncomingResponseHeaderModificationRule_example\", {\n    siteName: `gositecdn${_default.result}.cn`,\n    instanceId: resourceHttpIncomingResponseHeaderModificationRuleExample.id,\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultHttpIncomingResponseHeaderModificationRule = new alicloud.esa.HttpIncomingResponseHeaderModificationRule(\"default\", {\n    siteId: resourceSiteHttpIncomingResponseHeaderModificationRuleExample.id,\n    ruleEnable: \"on\",\n    responseHeaderModifications: [\n        {\n            type: \"static\",\n            value: \"add\",\n            operation: \"add\",\n            name: \"exampleadd\",\n        },\n        {\n            type: \"static\",\n            operation: \"del\",\n            name: \"exampledel\",\n        },\n        {\n            type: \"static\",\n            value: \"modify\",\n            operation: \"modify\",\n            name: \"examplemodify\",\n        },\n    ],\n    rule: \"(http.host eq \\\"video.example.com\\\")\",\n    sequence: 1,\n    siteVersion: 0,\n    ruleName: \"exampleResponseHeader\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nresource_http_incoming_response_header_modification_rule_example = alicloud.esa.RatePlanInstance(\"resource_HttpIncomingResponseHeaderModificationRule_example\",\n    type=\"NS\",\n    auto_renew=False,\n    period=1,\n    payment_type=\"Subscription\",\n    coverage=\"overseas\",\n    auto_pay=True,\n    plan_name=\"basic\")\nresource_site_http_incoming_response_header_modification_rule_example = alicloud.esa.Site(\"resource_Site_HttpIncomingResponseHeaderModificationRule_example\",\n    site_name=f\"gositecdn{default['result']}.cn\",\n    instance_id=resource_http_incoming_response_header_modification_rule_example.id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_http_incoming_response_header_modification_rule = alicloud.esa.HttpIncomingResponseHeaderModificationRule(\"default\",\n    site_id=resource_site_http_incoming_response_header_modification_rule_example.id,\n    rule_enable=\"on\",\n    response_header_modifications=[\n        {\n            \"type\": \"static\",\n            \"value\": \"add\",\n            \"operation\": \"add\",\n            \"name\": \"exampleadd\",\n        },\n        {\n            \"type\": \"static\",\n            \"operation\": \"del\",\n            \"name\": \"exampledel\",\n        },\n        {\n            \"type\": \"static\",\n            \"value\": \"modify\",\n            \"operation\": \"modify\",\n            \"name\": \"examplemodify\",\n        },\n    ],\n    rule=\"(http.host eq \\\"video.example.com\\\")\",\n    sequence=1,\n    site_version=0,\n    rule_name=\"exampleResponseHeader\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var resourceHttpIncomingResponseHeaderModificationRuleExample = new AliCloud.Esa.RatePlanInstance(\"resource_HttpIncomingResponseHeaderModificationRule_example\", new()\n    {\n        Type = \"NS\",\n        AutoRenew = false,\n        Period = 1,\n        PaymentType = \"Subscription\",\n        Coverage = \"overseas\",\n        AutoPay = true,\n        PlanName = \"basic\",\n    });\n\n    var resourceSiteHttpIncomingResponseHeaderModificationRuleExample = new AliCloud.Esa.Site(\"resource_Site_HttpIncomingResponseHeaderModificationRule_example\", new()\n    {\n        SiteName = $\"gositecdn{@default.Result}.cn\",\n        InstanceId = resourceHttpIncomingResponseHeaderModificationRuleExample.Id,\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultHttpIncomingResponseHeaderModificationRule = new AliCloud.Esa.HttpIncomingResponseHeaderModificationRule(\"default\", new()\n    {\n        SiteId = resourceSiteHttpIncomingResponseHeaderModificationRuleExample.Id,\n        RuleEnable = \"on\",\n        ResponseHeaderModifications = new[]\n        {\n            new AliCloud.Esa.Inputs.HttpIncomingResponseHeaderModificationRuleResponseHeaderModificationArgs\n            {\n                Type = \"static\",\n                Value = \"add\",\n                Operation = \"add\",\n                Name = \"exampleadd\",\n            },\n            new AliCloud.Esa.Inputs.HttpIncomingResponseHeaderModificationRuleResponseHeaderModificationArgs\n            {\n                Type = \"static\",\n                Operation = \"del\",\n                Name = \"exampledel\",\n            },\n            new AliCloud.Esa.Inputs.HttpIncomingResponseHeaderModificationRuleResponseHeaderModificationArgs\n            {\n                Type = \"static\",\n                Value = \"modify\",\n                Operation = \"modify\",\n                Name = \"examplemodify\",\n            },\n        },\n        Rule = \"(http.host eq \\\"video.example.com\\\")\",\n        Sequence = 1,\n        SiteVersion = 0,\n        RuleName = \"exampleResponseHeader\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresourceHttpIncomingResponseHeaderModificationRuleExample, err := esa.NewRatePlanInstance(ctx, \"resource_HttpIncomingResponseHeaderModificationRule_example\", \u0026esa.RatePlanInstanceArgs{\n\t\t\tType:        pulumi.String(\"NS\"),\n\t\t\tAutoRenew:   pulumi.Bool(false),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tPaymentType: pulumi.String(\"Subscription\"),\n\t\t\tCoverage:    pulumi.String(\"overseas\"),\n\t\t\tAutoPay:     pulumi.Bool(true),\n\t\t\tPlanName:    pulumi.String(\"basic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresourceSiteHttpIncomingResponseHeaderModificationRuleExample, err := esa.NewSite(ctx, \"resource_Site_HttpIncomingResponseHeaderModificationRule_example\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.Sprintf(\"gositecdn%v.cn\", _default.Result),\n\t\t\tInstanceId: resourceHttpIncomingResponseHeaderModificationRuleExample.ID(),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewHttpIncomingResponseHeaderModificationRule(ctx, \"default\", \u0026esa.HttpIncomingResponseHeaderModificationRuleArgs{\n\t\t\tSiteId:     resourceSiteHttpIncomingResponseHeaderModificationRuleExample.ID(),\n\t\t\tRuleEnable: pulumi.String(\"on\"),\n\t\t\tResponseHeaderModifications: esa.HttpIncomingResponseHeaderModificationRuleResponseHeaderModificationArray{\n\t\t\t\t\u0026esa.HttpIncomingResponseHeaderModificationRuleResponseHeaderModificationArgs{\n\t\t\t\t\tType:      pulumi.String(\"static\"),\n\t\t\t\t\tValue:     pulumi.String(\"add\"),\n\t\t\t\t\tOperation: pulumi.String(\"add\"),\n\t\t\t\t\tName:      pulumi.String(\"exampleadd\"),\n\t\t\t\t},\n\t\t\t\t\u0026esa.HttpIncomingResponseHeaderModificationRuleResponseHeaderModificationArgs{\n\t\t\t\t\tType:      pulumi.String(\"static\"),\n\t\t\t\t\tOperation: pulumi.String(\"del\"),\n\t\t\t\t\tName:      pulumi.String(\"exampledel\"),\n\t\t\t\t},\n\t\t\t\t\u0026esa.HttpIncomingResponseHeaderModificationRuleResponseHeaderModificationArgs{\n\t\t\t\t\tType:      pulumi.String(\"static\"),\n\t\t\t\t\tValue:     pulumi.String(\"modify\"),\n\t\t\t\t\tOperation: pulumi.String(\"modify\"),\n\t\t\t\t\tName:      pulumi.String(\"examplemodify\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRule:        pulumi.String(\"(http.host eq \\\"video.example.com\\\")\"),\n\t\t\tSequence:    pulumi.Int(1),\n\t\t\tSiteVersion: pulumi.Int(0),\n\t\t\tRuleName:    pulumi.String(\"exampleResponseHeader\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.esa.RatePlanInstance;\nimport com.pulumi.alicloud.esa.RatePlanInstanceArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.HttpIncomingResponseHeaderModificationRule;\nimport com.pulumi.alicloud.esa.HttpIncomingResponseHeaderModificationRuleArgs;\nimport com.pulumi.alicloud.esa.inputs.HttpIncomingResponseHeaderModificationRuleResponseHeaderModificationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var resourceHttpIncomingResponseHeaderModificationRuleExample = new RatePlanInstance(\"resourceHttpIncomingResponseHeaderModificationRuleExample\", RatePlanInstanceArgs.builder()\n            .type(\"NS\")\n            .autoRenew(false)\n            .period(1)\n            .paymentType(\"Subscription\")\n            .coverage(\"overseas\")\n            .autoPay(true)\n            .planName(\"basic\")\n            .build());\n\n        var resourceSiteHttpIncomingResponseHeaderModificationRuleExample = new Site(\"resourceSiteHttpIncomingResponseHeaderModificationRuleExample\", SiteArgs.builder()\n            .siteName(String.format(\"gositecdn%s.cn\", default_.result()))\n            .instanceId(resourceHttpIncomingResponseHeaderModificationRuleExample.id())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultHttpIncomingResponseHeaderModificationRule = new HttpIncomingResponseHeaderModificationRule(\"defaultHttpIncomingResponseHeaderModificationRule\", HttpIncomingResponseHeaderModificationRuleArgs.builder()\n            .siteId(resourceSiteHttpIncomingResponseHeaderModificationRuleExample.id())\n            .ruleEnable(\"on\")\n            .responseHeaderModifications(            \n                HttpIncomingResponseHeaderModificationRuleResponseHeaderModificationArgs.builder()\n                    .type(\"static\")\n                    .value(\"add\")\n                    .operation(\"add\")\n                    .name(\"exampleadd\")\n                    .build(),\n                HttpIncomingResponseHeaderModificationRuleResponseHeaderModificationArgs.builder()\n                    .type(\"static\")\n                    .operation(\"del\")\n                    .name(\"exampledel\")\n                    .build(),\n                HttpIncomingResponseHeaderModificationRuleResponseHeaderModificationArgs.builder()\n                    .type(\"static\")\n                    .value(\"modify\")\n                    .operation(\"modify\")\n                    .name(\"examplemodify\")\n                    .build())\n            .rule(\"(http.host eq \\\"video.example.com\\\")\")\n            .sequence(1)\n            .siteVersion(0)\n            .ruleName(\"exampleResponseHeader\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  resourceHttpIncomingResponseHeaderModificationRuleExample:\n    type: alicloud:esa:RatePlanInstance\n    name: resource_HttpIncomingResponseHeaderModificationRule_example\n    properties:\n      type: NS\n      autoRenew: false\n      period: '1'\n      paymentType: Subscription\n      coverage: overseas\n      autoPay: true\n      planName: basic\n  resourceSiteHttpIncomingResponseHeaderModificationRuleExample:\n    type: alicloud:esa:Site\n    name: resource_Site_HttpIncomingResponseHeaderModificationRule_example\n    properties:\n      siteName: gositecdn${default.result}.cn\n      instanceId: ${resourceHttpIncomingResponseHeaderModificationRuleExample.id}\n      coverage: overseas\n      accessType: NS\n  defaultHttpIncomingResponseHeaderModificationRule:\n    type: alicloud:esa:HttpIncomingResponseHeaderModificationRule\n    name: default\n    properties:\n      siteId: ${resourceSiteHttpIncomingResponseHeaderModificationRuleExample.id}\n      ruleEnable: on\n      responseHeaderModifications:\n        - type: static\n          value: add\n          operation: add\n          name: exampleadd\n        - type: static\n          operation: del\n          name: exampledel\n        - type: static\n          value: modify\n          operation: modify\n          name: examplemodify\n      rule: (http.host eq \"video.example.com\")\n      sequence: '1'\n      siteVersion: '0'\n      ruleName: exampleResponseHeader\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Http Incoming Response Header Modification Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/httpIncomingResponseHeaderModificationRule:HttpIncomingResponseHeaderModificationRule example \u003csite_id\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"configId":{"type":"integer","description":"Config Id\n"},"responseHeaderModifications":{"type":"array","items":{"$ref":"#/types/alicloud:esa/HttpIncomingResponseHeaderModificationRuleResponseHeaderModification:HttpIncomingResponseHeaderModificationRuleResponseHeaderModification"},"description":"Modify response headers, supporting add, delete, and modify operations. See \u003cspan pulumi-lang-nodejs=\"`responseHeaderModification`\" pulumi-lang-dotnet=\"`ResponseHeaderModification`\" pulumi-lang-go=\"`responseHeaderModification`\" pulumi-lang-python=\"`response_header_modification`\" pulumi-lang-yaml=\"`responseHeaderModification`\" pulumi-lang-java=\"`responseHeaderModification`\"\u003e`response_header_modification`\u003c/span\u003e below.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"Order of rule execution. The smaller the value, the higher the priority for execution.\n"},"siteId":{"type":"string","description":"The site ID.\n"},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n"}},"required":["configId","responseHeaderModifications","siteId"],"inputProperties":{"responseHeaderModifications":{"type":"array","items":{"$ref":"#/types/alicloud:esa/HttpIncomingResponseHeaderModificationRuleResponseHeaderModification:HttpIncomingResponseHeaderModificationRuleResponseHeaderModification"},"description":"Modify response headers, supporting add, delete, and modify operations. See \u003cspan pulumi-lang-nodejs=\"`responseHeaderModification`\" pulumi-lang-dotnet=\"`ResponseHeaderModification`\" pulumi-lang-go=\"`responseHeaderModification`\" pulumi-lang-python=\"`response_header_modification`\" pulumi-lang-yaml=\"`responseHeaderModification`\" pulumi-lang-java=\"`responseHeaderModification`\"\u003e`response_header_modification`\u003c/span\u003e below.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"Order of rule execution. The smaller the value, the higher the priority for execution.\n"},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true}},"requiredInputs":["responseHeaderModifications","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering HttpIncomingResponseHeaderModificationRule resources.\n","properties":{"configId":{"type":"integer","description":"Config Id\n"},"responseHeaderModifications":{"type":"array","items":{"$ref":"#/types/alicloud:esa/HttpIncomingResponseHeaderModificationRuleResponseHeaderModification:HttpIncomingResponseHeaderModificationRuleResponseHeaderModification"},"description":"Modify response headers, supporting add, delete, and modify operations. See \u003cspan pulumi-lang-nodejs=\"`responseHeaderModification`\" pulumi-lang-dotnet=\"`ResponseHeaderModification`\" pulumi-lang-go=\"`responseHeaderModification`\" pulumi-lang-python=\"`response_header_modification`\" pulumi-lang-yaml=\"`responseHeaderModification`\" pulumi-lang-java=\"`responseHeaderModification`\"\u003e`response_header_modification`\u003c/span\u003e below.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"Order of rule execution. The smaller the value, the higher the priority for execution.\n"},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/httpRequestHeaderModificationRule:HttpRequestHeaderModificationRule":{"description":"Provides a ESA Http Request Header Modification Rule resource.\n\n\n\nFor information about ESA Http Request Header Modification Rule and how to use it, see [What is Http Request Header Modification Rule](https://www.alibabacloud.com/help/en/edge-security-acceleration/esa/api-esa-2024-09-10-createhttprequestheadermodificationrule).\n\n\u003e **NOTE:** Available since v1.242.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst instance = new alicloud.esa.RatePlanInstance(\"instance\", {\n    type: \"NS\",\n    autoRenew: false,\n    period: 1,\n    paymentType: \"Subscription\",\n    coverage: \"overseas\",\n    autoPay: true,\n    planName: \"high\",\n});\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst site = new alicloud.esa.Site(\"site\", {\n    siteName: `gositecdn-${_default.result}.cn`,\n    instanceId: instance.id,\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultHttpRequestHeaderModificationRule = new alicloud.esa.HttpRequestHeaderModificationRule(\"default\", {\n    ruleName: \"example_modify\",\n    requestHeaderModifications: [{\n        value: \"modify1\",\n        operation: \"modify\",\n        name: \"example_modify1\",\n    }],\n    siteId: site.id,\n    ruleEnable: \"off\",\n    rule: \"(http.request.uri eq \\\"/content?page=1234\\\")\",\n    siteVersion: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ninstance = alicloud.esa.RatePlanInstance(\"instance\",\n    type=\"NS\",\n    auto_renew=False,\n    period=1,\n    payment_type=\"Subscription\",\n    coverage=\"overseas\",\n    auto_pay=True,\n    plan_name=\"high\")\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nsite = alicloud.esa.Site(\"site\",\n    site_name=f\"gositecdn-{default['result']}.cn\",\n    instance_id=instance.id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_http_request_header_modification_rule = alicloud.esa.HttpRequestHeaderModificationRule(\"default\",\n    rule_name=\"example_modify\",\n    request_header_modifications=[{\n        \"value\": \"modify1\",\n        \"operation\": \"modify\",\n        \"name\": \"example_modify1\",\n    }],\n    site_id=site.id,\n    rule_enable=\"off\",\n    rule=\"(http.request.uri eq \\\"/content?page=1234\\\")\",\n    site_version=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var instance = new AliCloud.Esa.RatePlanInstance(\"instance\", new()\n    {\n        Type = \"NS\",\n        AutoRenew = false,\n        Period = 1,\n        PaymentType = \"Subscription\",\n        Coverage = \"overseas\",\n        AutoPay = true,\n        PlanName = \"high\",\n    });\n\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var site = new AliCloud.Esa.Site(\"site\", new()\n    {\n        SiteName = $\"gositecdn-{@default.Result}.cn\",\n        InstanceId = instance.Id,\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultHttpRequestHeaderModificationRule = new AliCloud.Esa.HttpRequestHeaderModificationRule(\"default\", new()\n    {\n        RuleName = \"example_modify\",\n        RequestHeaderModifications = new[]\n        {\n            new AliCloud.Esa.Inputs.HttpRequestHeaderModificationRuleRequestHeaderModificationArgs\n            {\n                Value = \"modify1\",\n                Operation = \"modify\",\n                Name = \"example_modify1\",\n            },\n        },\n        SiteId = site.Id,\n        RuleEnable = \"off\",\n        Rule = \"(http.request.uri eq \\\"/content?page=1234\\\")\",\n        SiteVersion = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tinstance, err := esa.NewRatePlanInstance(ctx, \"instance\", \u0026esa.RatePlanInstanceArgs{\n\t\t\tType:        pulumi.String(\"NS\"),\n\t\t\tAutoRenew:   pulumi.Bool(false),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tPaymentType: pulumi.String(\"Subscription\"),\n\t\t\tCoverage:    pulumi.String(\"overseas\"),\n\t\t\tAutoPay:     pulumi.Bool(true),\n\t\t\tPlanName:    pulumi.String(\"high\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsite, err := esa.NewSite(ctx, \"site\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.Sprintf(\"gositecdn-%v.cn\", _default.Result),\n\t\t\tInstanceId: instance.ID(),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewHttpRequestHeaderModificationRule(ctx, \"default\", \u0026esa.HttpRequestHeaderModificationRuleArgs{\n\t\t\tRuleName: pulumi.String(\"example_modify\"),\n\t\t\tRequestHeaderModifications: esa.HttpRequestHeaderModificationRuleRequestHeaderModificationArray{\n\t\t\t\t\u0026esa.HttpRequestHeaderModificationRuleRequestHeaderModificationArgs{\n\t\t\t\t\tValue:     pulumi.String(\"modify1\"),\n\t\t\t\t\tOperation: pulumi.String(\"modify\"),\n\t\t\t\t\tName:      pulumi.String(\"example_modify1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSiteId:      site.ID(),\n\t\t\tRuleEnable:  pulumi.String(\"off\"),\n\t\t\tRule:        pulumi.String(\"(http.request.uri eq \\\"/content?page=1234\\\")\"),\n\t\t\tSiteVersion: pulumi.Int(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.RatePlanInstance;\nimport com.pulumi.alicloud.esa.RatePlanInstanceArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.HttpRequestHeaderModificationRule;\nimport com.pulumi.alicloud.esa.HttpRequestHeaderModificationRuleArgs;\nimport com.pulumi.alicloud.esa.inputs.HttpRequestHeaderModificationRuleRequestHeaderModificationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var instance = new RatePlanInstance(\"instance\", RatePlanInstanceArgs.builder()\n            .type(\"NS\")\n            .autoRenew(false)\n            .period(1)\n            .paymentType(\"Subscription\")\n            .coverage(\"overseas\")\n            .autoPay(true)\n            .planName(\"high\")\n            .build());\n\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var site = new Site(\"site\", SiteArgs.builder()\n            .siteName(String.format(\"gositecdn-%s.cn\", default_.result()))\n            .instanceId(instance.id())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultHttpRequestHeaderModificationRule = new HttpRequestHeaderModificationRule(\"defaultHttpRequestHeaderModificationRule\", HttpRequestHeaderModificationRuleArgs.builder()\n            .ruleName(\"example_modify\")\n            .requestHeaderModifications(HttpRequestHeaderModificationRuleRequestHeaderModificationArgs.builder()\n                .value(\"modify1\")\n                .operation(\"modify\")\n                .name(\"example_modify1\")\n                .build())\n            .siteId(site.id())\n            .ruleEnable(\"off\")\n            .rule(\"(http.request.uri eq \\\"/content?page=1234\\\")\")\n            .siteVersion(0)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  instance:\n    type: alicloud:esa:RatePlanInstance\n    properties:\n      type: NS\n      autoRenew: 'false'\n      period: '1'\n      paymentType: Subscription\n      coverage: overseas\n      autoPay: 'true'\n      planName: high\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  site:\n    type: alicloud:esa:Site\n    properties:\n      siteName: gositecdn-${default.result}.cn\n      instanceId: ${instance.id}\n      coverage: overseas\n      accessType: NS\n  defaultHttpRequestHeaderModificationRule:\n    type: alicloud:esa:HttpRequestHeaderModificationRule\n    name: default\n    properties:\n      ruleName: example_modify\n      requestHeaderModifications:\n        - value: modify1\n          operation: modify\n          name: example_modify1\n      siteId: ${site.id}\n      ruleEnable: off\n      rule: (http.request.uri eq \"/content?page=1234\")\n      siteVersion: '0'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Http Request Header Modification Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/httpRequestHeaderModificationRule:HttpRequestHeaderModificationRule example \u003csite_id\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"configId":{"type":"integer","description":"Config Id\n"},"requestHeaderModifications":{"type":"array","items":{"$ref":"#/types/alicloud:esa/HttpRequestHeaderModificationRuleRequestHeaderModification:HttpRequestHeaderModificationRuleRequestHeaderModification"},"description":"The configurations of modifying request headers. You can add, delete, or modify a request header. See \u003cspan pulumi-lang-nodejs=\"`requestHeaderModification`\" pulumi-lang-dotnet=\"`RequestHeaderModification`\" pulumi-lang-go=\"`requestHeaderModification`\" pulumi-lang-python=\"`request_header_modification`\" pulumi-lang-yaml=\"`requestHeaderModification`\" pulumi-lang-java=\"`requestHeaderModification`\"\u003e`request_header_modification`\u003c/span\u003e below.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n- on: open.\n- off: close.\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID.\n"},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n"}},"required":["configId","requestHeaderModifications","sequence","siteId"],"inputProperties":{"requestHeaderModifications":{"type":"array","items":{"$ref":"#/types/alicloud:esa/HttpRequestHeaderModificationRuleRequestHeaderModification:HttpRequestHeaderModificationRuleRequestHeaderModification"},"description":"The configurations of modifying request headers. You can add, delete, or modify a request header. See \u003cspan pulumi-lang-nodejs=\"`requestHeaderModification`\" pulumi-lang-dotnet=\"`RequestHeaderModification`\" pulumi-lang-go=\"`requestHeaderModification`\" pulumi-lang-python=\"`request_header_modification`\" pulumi-lang-yaml=\"`requestHeaderModification`\" pulumi-lang-java=\"`requestHeaderModification`\"\u003e`request_header_modification`\u003c/span\u003e below.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n- on: open.\n- off: close.\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true}},"requiredInputs":["requestHeaderModifications","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering HttpRequestHeaderModificationRule resources.\n","properties":{"configId":{"type":"integer","description":"Config Id\n"},"requestHeaderModifications":{"type":"array","items":{"$ref":"#/types/alicloud:esa/HttpRequestHeaderModificationRuleRequestHeaderModification:HttpRequestHeaderModificationRuleRequestHeaderModification"},"description":"The configurations of modifying request headers. You can add, delete, or modify a request header. See \u003cspan pulumi-lang-nodejs=\"`requestHeaderModification`\" pulumi-lang-dotnet=\"`RequestHeaderModification`\" pulumi-lang-go=\"`requestHeaderModification`\" pulumi-lang-python=\"`request_header_modification`\" pulumi-lang-yaml=\"`requestHeaderModification`\" pulumi-lang-java=\"`requestHeaderModification`\"\u003e`request_header_modification`\u003c/span\u003e below.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n- on: open.\n- off: close.\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/httpResponseHeaderModificationRule:HttpResponseHeaderModificationRule":{"description":"Provides a ESA Http Response Header Modification Rule resource.\n\n\n\nFor information about ESA Http Response Header Modification Rule and how to use it, see [What is Http Response Header Modification Rule](https://www.alibabacloud.com/help/en/edge-security-acceleration/esa/api-esa-2024-09-10-createhttpresponseheadermodificationrule).\n\n\u003e **NOTE:** Available since v1.243.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst resourceHttpResponseHeaderModificationRuleExample = new alicloud.esa.RatePlanInstance(\"resource_HttpResponseHeaderModificationRule_example\", {\n    type: \"NS\",\n    autoRenew: false,\n    period: 1,\n    paymentType: \"Subscription\",\n    coverage: \"overseas\",\n    autoPay: true,\n    planName: \"high\",\n});\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst resourceSiteHttpResponseHeaderModificationRuleExample = new alicloud.esa.Site(\"resource_Site_HttpResponseHeaderModificationRule_example\", {\n    siteName: `gositecdn-${_default.result}.cn`,\n    instanceId: resourceHttpResponseHeaderModificationRuleExample.id,\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultHttpResponseHeaderModificationRule = new alicloud.esa.HttpResponseHeaderModificationRule(\"default\", {\n    ruleEnable: \"on\",\n    responseHeaderModifications: [\n        {\n            value: \"add\",\n            operation: \"add\",\n            name: \"exampleadd\",\n        },\n        {\n            operation: \"del\",\n            name: \"exampledel\",\n        },\n        {\n            operation: \"modify\",\n            name: \"examplemodify\",\n            value: \"modify\",\n        },\n    ],\n    rule: \"(http.host eq \\\"video.example.com\\\")\",\n    siteVersion: 0,\n    ruleName: \"exampleResponseHeader\",\n    siteId: resourceSiteHttpResponseHeaderModificationRuleExample.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nresource_http_response_header_modification_rule_example = alicloud.esa.RatePlanInstance(\"resource_HttpResponseHeaderModificationRule_example\",\n    type=\"NS\",\n    auto_renew=False,\n    period=1,\n    payment_type=\"Subscription\",\n    coverage=\"overseas\",\n    auto_pay=True,\n    plan_name=\"high\")\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nresource_site_http_response_header_modification_rule_example = alicloud.esa.Site(\"resource_Site_HttpResponseHeaderModificationRule_example\",\n    site_name=f\"gositecdn-{default['result']}.cn\",\n    instance_id=resource_http_response_header_modification_rule_example.id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_http_response_header_modification_rule = alicloud.esa.HttpResponseHeaderModificationRule(\"default\",\n    rule_enable=\"on\",\n    response_header_modifications=[\n        {\n            \"value\": \"add\",\n            \"operation\": \"add\",\n            \"name\": \"exampleadd\",\n        },\n        {\n            \"operation\": \"del\",\n            \"name\": \"exampledel\",\n        },\n        {\n            \"operation\": \"modify\",\n            \"name\": \"examplemodify\",\n            \"value\": \"modify\",\n        },\n    ],\n    rule=\"(http.host eq \\\"video.example.com\\\")\",\n    site_version=0,\n    rule_name=\"exampleResponseHeader\",\n    site_id=resource_site_http_response_header_modification_rule_example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var resourceHttpResponseHeaderModificationRuleExample = new AliCloud.Esa.RatePlanInstance(\"resource_HttpResponseHeaderModificationRule_example\", new()\n    {\n        Type = \"NS\",\n        AutoRenew = false,\n        Period = 1,\n        PaymentType = \"Subscription\",\n        Coverage = \"overseas\",\n        AutoPay = true,\n        PlanName = \"high\",\n    });\n\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var resourceSiteHttpResponseHeaderModificationRuleExample = new AliCloud.Esa.Site(\"resource_Site_HttpResponseHeaderModificationRule_example\", new()\n    {\n        SiteName = $\"gositecdn-{@default.Result}.cn\",\n        InstanceId = resourceHttpResponseHeaderModificationRuleExample.Id,\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultHttpResponseHeaderModificationRule = new AliCloud.Esa.HttpResponseHeaderModificationRule(\"default\", new()\n    {\n        RuleEnable = \"on\",\n        ResponseHeaderModifications = new[]\n        {\n            new AliCloud.Esa.Inputs.HttpResponseHeaderModificationRuleResponseHeaderModificationArgs\n            {\n                Value = \"add\",\n                Operation = \"add\",\n                Name = \"exampleadd\",\n            },\n            new AliCloud.Esa.Inputs.HttpResponseHeaderModificationRuleResponseHeaderModificationArgs\n            {\n                Operation = \"del\",\n                Name = \"exampledel\",\n            },\n            new AliCloud.Esa.Inputs.HttpResponseHeaderModificationRuleResponseHeaderModificationArgs\n            {\n                Operation = \"modify\",\n                Name = \"examplemodify\",\n                Value = \"modify\",\n            },\n        },\n        Rule = \"(http.host eq \\\"video.example.com\\\")\",\n        SiteVersion = 0,\n        RuleName = \"exampleResponseHeader\",\n        SiteId = resourceSiteHttpResponseHeaderModificationRuleExample.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tresourceHttpResponseHeaderModificationRuleExample, err := esa.NewRatePlanInstance(ctx, \"resource_HttpResponseHeaderModificationRule_example\", \u0026esa.RatePlanInstanceArgs{\n\t\t\tType:        pulumi.String(\"NS\"),\n\t\t\tAutoRenew:   pulumi.Bool(false),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tPaymentType: pulumi.String(\"Subscription\"),\n\t\t\tCoverage:    pulumi.String(\"overseas\"),\n\t\t\tAutoPay:     pulumi.Bool(true),\n\t\t\tPlanName:    pulumi.String(\"high\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresourceSiteHttpResponseHeaderModificationRuleExample, err := esa.NewSite(ctx, \"resource_Site_HttpResponseHeaderModificationRule_example\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.Sprintf(\"gositecdn-%v.cn\", _default.Result),\n\t\t\tInstanceId: resourceHttpResponseHeaderModificationRuleExample.ID(),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewHttpResponseHeaderModificationRule(ctx, \"default\", \u0026esa.HttpResponseHeaderModificationRuleArgs{\n\t\t\tRuleEnable: pulumi.String(\"on\"),\n\t\t\tResponseHeaderModifications: esa.HttpResponseHeaderModificationRuleResponseHeaderModificationArray{\n\t\t\t\t\u0026esa.HttpResponseHeaderModificationRuleResponseHeaderModificationArgs{\n\t\t\t\t\tValue:     pulumi.String(\"add\"),\n\t\t\t\t\tOperation: pulumi.String(\"add\"),\n\t\t\t\t\tName:      pulumi.String(\"exampleadd\"),\n\t\t\t\t},\n\t\t\t\t\u0026esa.HttpResponseHeaderModificationRuleResponseHeaderModificationArgs{\n\t\t\t\t\tOperation: pulumi.String(\"del\"),\n\t\t\t\t\tName:      pulumi.String(\"exampledel\"),\n\t\t\t\t},\n\t\t\t\t\u0026esa.HttpResponseHeaderModificationRuleResponseHeaderModificationArgs{\n\t\t\t\t\tOperation: pulumi.String(\"modify\"),\n\t\t\t\t\tName:      pulumi.String(\"examplemodify\"),\n\t\t\t\t\tValue:     pulumi.String(\"modify\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRule:        pulumi.String(\"(http.host eq \\\"video.example.com\\\")\"),\n\t\t\tSiteVersion: pulumi.Int(0),\n\t\t\tRuleName:    pulumi.String(\"exampleResponseHeader\"),\n\t\t\tSiteId:      resourceSiteHttpResponseHeaderModificationRuleExample.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.RatePlanInstance;\nimport com.pulumi.alicloud.esa.RatePlanInstanceArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.HttpResponseHeaderModificationRule;\nimport com.pulumi.alicloud.esa.HttpResponseHeaderModificationRuleArgs;\nimport com.pulumi.alicloud.esa.inputs.HttpResponseHeaderModificationRuleResponseHeaderModificationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var resourceHttpResponseHeaderModificationRuleExample = new RatePlanInstance(\"resourceHttpResponseHeaderModificationRuleExample\", RatePlanInstanceArgs.builder()\n            .type(\"NS\")\n            .autoRenew(false)\n            .period(1)\n            .paymentType(\"Subscription\")\n            .coverage(\"overseas\")\n            .autoPay(true)\n            .planName(\"high\")\n            .build());\n\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var resourceSiteHttpResponseHeaderModificationRuleExample = new Site(\"resourceSiteHttpResponseHeaderModificationRuleExample\", SiteArgs.builder()\n            .siteName(String.format(\"gositecdn-%s.cn\", default_.result()))\n            .instanceId(resourceHttpResponseHeaderModificationRuleExample.id())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultHttpResponseHeaderModificationRule = new HttpResponseHeaderModificationRule(\"defaultHttpResponseHeaderModificationRule\", HttpResponseHeaderModificationRuleArgs.builder()\n            .ruleEnable(\"on\")\n            .responseHeaderModifications(            \n                HttpResponseHeaderModificationRuleResponseHeaderModificationArgs.builder()\n                    .value(\"add\")\n                    .operation(\"add\")\n                    .name(\"exampleadd\")\n                    .build(),\n                HttpResponseHeaderModificationRuleResponseHeaderModificationArgs.builder()\n                    .operation(\"del\")\n                    .name(\"exampledel\")\n                    .build(),\n                HttpResponseHeaderModificationRuleResponseHeaderModificationArgs.builder()\n                    .operation(\"modify\")\n                    .name(\"examplemodify\")\n                    .value(\"modify\")\n                    .build())\n            .rule(\"(http.host eq \\\"video.example.com\\\")\")\n            .siteVersion(0)\n            .ruleName(\"exampleResponseHeader\")\n            .siteId(resourceSiteHttpResponseHeaderModificationRuleExample.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  resourceHttpResponseHeaderModificationRuleExample:\n    type: alicloud:esa:RatePlanInstance\n    name: resource_HttpResponseHeaderModificationRule_example\n    properties:\n      type: NS\n      autoRenew: 'false'\n      period: '1'\n      paymentType: Subscription\n      coverage: overseas\n      autoPay: 'true'\n      planName: high\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  resourceSiteHttpResponseHeaderModificationRuleExample:\n    type: alicloud:esa:Site\n    name: resource_Site_HttpResponseHeaderModificationRule_example\n    properties:\n      siteName: gositecdn-${default.result}.cn\n      instanceId: ${resourceHttpResponseHeaderModificationRuleExample.id}\n      coverage: overseas\n      accessType: NS\n  defaultHttpResponseHeaderModificationRule:\n    type: alicloud:esa:HttpResponseHeaderModificationRule\n    name: default\n    properties:\n      ruleEnable: on\n      responseHeaderModifications:\n        - value: add\n          operation: add\n          name: exampleadd\n        - operation: del\n          name: exampledel\n        - operation: modify\n          name: examplemodify\n          value: modify\n      rule: (http.host eq \"video.example.com\")\n      siteVersion: '0'\n      ruleName: exampleResponseHeader\n      siteId: ${resourceSiteHttpResponseHeaderModificationRuleExample.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Http Response Header Modification Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/httpResponseHeaderModificationRule:HttpResponseHeaderModificationRule example \u003csite_id\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"configId":{"type":"integer","description":"Config Id\n"},"responseHeaderModifications":{"type":"array","items":{"$ref":"#/types/alicloud:esa/HttpResponseHeaderModificationRuleResponseHeaderModification:HttpResponseHeaderModificationRuleResponseHeaderModification"},"description":"Modify response headers, supporting add, delete, and modify operations. See \u003cspan pulumi-lang-nodejs=\"`responseHeaderModification`\" pulumi-lang-dotnet=\"`ResponseHeaderModification`\" pulumi-lang-go=\"`responseHeaderModification`\" pulumi-lang-python=\"`response_header_modification`\" pulumi-lang-yaml=\"`responseHeaderModification`\" pulumi-lang-java=\"`responseHeaderModification`\"\u003e`response_header_modification`\u003c/span\u003e below.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID.\n"},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n"}},"required":["configId","responseHeaderModifications","sequence","siteId"],"inputProperties":{"responseHeaderModifications":{"type":"array","items":{"$ref":"#/types/alicloud:esa/HttpResponseHeaderModificationRuleResponseHeaderModification:HttpResponseHeaderModificationRuleResponseHeaderModification"},"description":"Modify response headers, supporting add, delete, and modify operations. See \u003cspan pulumi-lang-nodejs=\"`responseHeaderModification`\" pulumi-lang-dotnet=\"`ResponseHeaderModification`\" pulumi-lang-go=\"`responseHeaderModification`\" pulumi-lang-python=\"`response_header_modification`\" pulumi-lang-yaml=\"`responseHeaderModification`\" pulumi-lang-java=\"`responseHeaderModification`\"\u003e`response_header_modification`\u003c/span\u003e below.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true}},"requiredInputs":["responseHeaderModifications","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering HttpResponseHeaderModificationRule resources.\n","properties":{"configId":{"type":"integer","description":"Config Id\n"},"responseHeaderModifications":{"type":"array","items":{"$ref":"#/types/alicloud:esa/HttpResponseHeaderModificationRuleResponseHeaderModification:HttpResponseHeaderModificationRuleResponseHeaderModification"},"description":"Modify response headers, supporting add, delete, and modify operations. See \u003cspan pulumi-lang-nodejs=\"`responseHeaderModification`\" pulumi-lang-dotnet=\"`ResponseHeaderModification`\" pulumi-lang-go=\"`responseHeaderModification`\" pulumi-lang-python=\"`response_header_modification`\" pulumi-lang-yaml=\"`responseHeaderModification`\" pulumi-lang-java=\"`responseHeaderModification`\"\u003e`response_header_modification`\u003c/span\u003e below.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/httpsApplicationConfiguration:HttpsApplicationConfiguration":{"description":"Provides a ESA Https Application Configuration resource.\n\n\n\nFor information about ESA Https Application Configuration and how to use it, see [What is Https Application Configuration](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateHttpsApplicationConfiguration).\n\n\u003e **NOTE:** Available since v1.244.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: \"httpsapplicationconfiguration.example.com\",\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"domestic\",\n    accessType: \"NS\",\n});\nconst defaultHttpsApplicationConfiguration = new alicloud.esa.HttpsApplicationConfiguration(\"default\", {\n    hstsMaxAge: \"31536000\",\n    altSvcClear: \"off\",\n    rule: \"http.host eq \\\"video.example.com\\\"\",\n    httpsForce: \"off\",\n    altSvcMa: \"86400\",\n    hsts: \"off\",\n    ruleName: \"rule_example\",\n    ruleEnable: \"off\",\n    siteId: defaultSite.id,\n    altSvcPersist: \"off\",\n    hstsPreload: \"off\",\n    hstsIncludeSubdomains: \"off\",\n    altSvc: \"off\",\n    httpsForceCode: \"301\",\n    siteVersion: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=\"httpsapplicationconfiguration.example.com\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"domestic\",\n    access_type=\"NS\")\ndefault_https_application_configuration = alicloud.esa.HttpsApplicationConfiguration(\"default\",\n    hsts_max_age=\"31536000\",\n    alt_svc_clear=\"off\",\n    rule=\"http.host eq \\\"video.example.com\\\"\",\n    https_force=\"off\",\n    alt_svc_ma=\"86400\",\n    hsts=\"off\",\n    rule_name=\"rule_example\",\n    rule_enable=\"off\",\n    site_id=default_site.id,\n    alt_svc_persist=\"off\",\n    hsts_preload=\"off\",\n    hsts_include_subdomains=\"off\",\n    alt_svc=\"off\",\n    https_force_code=\"301\",\n    site_version=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = \"httpsapplicationconfiguration.example.com\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"domestic\",\n        AccessType = \"NS\",\n    });\n\n    var defaultHttpsApplicationConfiguration = new AliCloud.Esa.HttpsApplicationConfiguration(\"default\", new()\n    {\n        HstsMaxAge = \"31536000\",\n        AltSvcClear = \"off\",\n        Rule = \"http.host eq \\\"video.example.com\\\"\",\n        HttpsForce = \"off\",\n        AltSvcMa = \"86400\",\n        Hsts = \"off\",\n        RuleName = \"rule_example\",\n        RuleEnable = \"off\",\n        SiteId = defaultSite.Id,\n        AltSvcPersist = \"off\",\n        HstsPreload = \"off\",\n        HstsIncludeSubdomains = \"off\",\n        AltSvc = \"off\",\n        HttpsForceCode = \"301\",\n        SiteVersion = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"httpsapplicationconfiguration.example.com\"),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"domestic\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewHttpsApplicationConfiguration(ctx, \"default\", \u0026esa.HttpsApplicationConfigurationArgs{\n\t\t\tHstsMaxAge:            pulumi.String(\"31536000\"),\n\t\t\tAltSvcClear:           pulumi.String(\"off\"),\n\t\t\tRule:                  pulumi.String(\"http.host eq \\\"video.example.com\\\"\"),\n\t\t\tHttpsForce:            pulumi.String(\"off\"),\n\t\t\tAltSvcMa:              pulumi.String(\"86400\"),\n\t\t\tHsts:                  pulumi.String(\"off\"),\n\t\t\tRuleName:              pulumi.String(\"rule_example\"),\n\t\t\tRuleEnable:            pulumi.String(\"off\"),\n\t\t\tSiteId:                defaultSite.ID(),\n\t\t\tAltSvcPersist:         pulumi.String(\"off\"),\n\t\t\tHstsPreload:           pulumi.String(\"off\"),\n\t\t\tHstsIncludeSubdomains: pulumi.String(\"off\"),\n\t\t\tAltSvc:                pulumi.String(\"off\"),\n\t\t\tHttpsForceCode:        pulumi.String(\"301\"),\n\t\t\tSiteVersion:           pulumi.Int(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.HttpsApplicationConfiguration;\nimport com.pulumi.alicloud.esa.HttpsApplicationConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(\"httpsapplicationconfiguration.example.com\")\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"domestic\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultHttpsApplicationConfiguration = new HttpsApplicationConfiguration(\"defaultHttpsApplicationConfiguration\", HttpsApplicationConfigurationArgs.builder()\n            .hstsMaxAge(\"31536000\")\n            .altSvcClear(\"off\")\n            .rule(\"http.host eq \\\"video.example.com\\\"\")\n            .httpsForce(\"off\")\n            .altSvcMa(\"86400\")\n            .hsts(\"off\")\n            .ruleName(\"rule_example\")\n            .ruleEnable(\"off\")\n            .siteId(defaultSite.id())\n            .altSvcPersist(\"off\")\n            .hstsPreload(\"off\")\n            .hstsIncludeSubdomains(\"off\")\n            .altSvc(\"off\")\n            .httpsForceCode(\"301\")\n            .siteVersion(0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: httpsapplicationconfiguration.example.com\n      instanceId: ${default.sites[0].instanceId}\n      coverage: domestic\n      accessType: NS\n  defaultHttpsApplicationConfiguration:\n    type: alicloud:esa:HttpsApplicationConfiguration\n    name: default\n    properties:\n      hstsMaxAge: '31536000'\n      altSvcClear: off\n      rule: http.host eq \"video.example.com\"\n      httpsForce: off\n      altSvcMa: '86400'\n      hsts: off\n      ruleName: rule_example\n      ruleEnable: off\n      siteId: ${defaultSite.id}\n      altSvcPersist: off\n      hstsPreload: off\n      hstsIncludeSubdomains: off\n      altSvc: off\n      httpsForceCode: '301'\n      siteVersion: '0'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Https Application Configuration can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/httpsApplicationConfiguration:HttpsApplicationConfiguration example \u003csite_id\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"altSvc":{"type":"string","description":"Function switch, default off. Value range:\n"},"altSvcClear":{"type":"string","description":"Alt-Svc whether The header contains the clear parameter. This parameter is disabled by default. Value range:\n"},"altSvcMa":{"type":"string","description":"The effective time of the Alt-Svc, in seconds. The default value is 86400 seconds.\n"},"altSvcPersist":{"type":"string","description":"Alt-Svc whether The header contains the persist parameter. This parameter is disabled by default. Value range:\n"},"configId":{"type":"integer","description":"Config Id\n"},"hsts":{"type":"string","description":"Whether to enable HSTS. It is disabled by default. Value range:\n"},"hstsIncludeSubdomains":{"type":"string","description":"Whether to include subdomains in HSTS is disabled by default. Value range:\n"},"hstsMaxAge":{"type":"string","description":"The expiration time of HSTS, in seconds.\n"},"hstsPreload":{"type":"string","description":"Whether to enable HSTS preloading. It is disabled by default. Value range:\n"},"httpsForce":{"type":"string","description":"Whether to enable forced HTTPS. It is disabled by default. Value range:\n"},"httpsForceCode":{"type":"string","description":"Forced HTTPS jump status code, value range:\n"},"httpsNoSniDeny":{"type":"string","description":"Whether to enable to reject TLS handshake requests without SNI. This parameter is disabled by default. Value range:\n"},"httpsSniVerify":{"type":"string","description":"Whether to enable SNI verification. It is disabled by default. Value range:\n"},"httpsSniWhitelist":{"type":"string","description":"Specifies the list of allowed SNI whitelists, separated by spaces.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n"},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n"}},"required":["configId","sequence","siteId"],"inputProperties":{"altSvc":{"type":"string","description":"Function switch, default off. Value range:\n"},"altSvcClear":{"type":"string","description":"Alt-Svc whether The header contains the clear parameter. This parameter is disabled by default. Value range:\n"},"altSvcMa":{"type":"string","description":"The effective time of the Alt-Svc, in seconds. The default value is 86400 seconds.\n"},"altSvcPersist":{"type":"string","description":"Alt-Svc whether The header contains the persist parameter. This parameter is disabled by default. Value range:\n"},"hsts":{"type":"string","description":"Whether to enable HSTS. It is disabled by default. Value range:\n"},"hstsIncludeSubdomains":{"type":"string","description":"Whether to include subdomains in HSTS is disabled by default. Value range:\n"},"hstsMaxAge":{"type":"string","description":"The expiration time of HSTS, in seconds.\n"},"hstsPreload":{"type":"string","description":"Whether to enable HSTS preloading. It is disabled by default. Value range:\n"},"httpsForce":{"type":"string","description":"Whether to enable forced HTTPS. It is disabled by default. Value range:\n"},"httpsForceCode":{"type":"string","description":"Forced HTTPS jump status code, value range:\n"},"httpsNoSniDeny":{"type":"string","description":"Whether to enable to reject TLS handshake requests without SNI. This parameter is disabled by default. Value range:\n"},"httpsSniVerify":{"type":"string","description":"Whether to enable SNI verification. It is disabled by default. Value range:\n"},"httpsSniWhitelist":{"type":"string","description":"Specifies the list of allowed SNI whitelists, separated by spaces.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering HttpsApplicationConfiguration resources.\n","properties":{"altSvc":{"type":"string","description":"Function switch, default off. Value range:\n"},"altSvcClear":{"type":"string","description":"Alt-Svc whether The header contains the clear parameter. This parameter is disabled by default. Value range:\n"},"altSvcMa":{"type":"string","description":"The effective time of the Alt-Svc, in seconds. The default value is 86400 seconds.\n"},"altSvcPersist":{"type":"string","description":"Alt-Svc whether The header contains the persist parameter. This parameter is disabled by default. Value range:\n"},"configId":{"type":"integer","description":"Config Id\n"},"hsts":{"type":"string","description":"Whether to enable HSTS. It is disabled by default. Value range:\n"},"hstsIncludeSubdomains":{"type":"string","description":"Whether to include subdomains in HSTS is disabled by default. Value range:\n"},"hstsMaxAge":{"type":"string","description":"The expiration time of HSTS, in seconds.\n"},"hstsPreload":{"type":"string","description":"Whether to enable HSTS preloading. It is disabled by default. Value range:\n"},"httpsForce":{"type":"string","description":"Whether to enable forced HTTPS. It is disabled by default. Value range:\n"},"httpsForceCode":{"type":"string","description":"Forced HTTPS jump status code, value range:\n"},"httpsNoSniDeny":{"type":"string","description":"Whether to enable to reject TLS handshake requests without SNI. This parameter is disabled by default. Value range:\n"},"httpsSniVerify":{"type":"string","description":"Whether to enable SNI verification. It is disabled by default. Value range:\n"},"httpsSniWhitelist":{"type":"string","description":"Specifies the list of allowed SNI whitelists, separated by spaces.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/httpsBasicConfiguration:HttpsBasicConfiguration":{"description":"Provides a ESA Https Basic Configuration resource.\n\n\n\nFor information about ESA Https Basic Configuration and how to use it, see [What is Https Basic Configuration](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateHttpsBasicConfiguration).\n\n\u003e **NOTE:** Available since v1.243.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = new alicloud.esa.RatePlanInstance(\"example\", {\n    type: \"NS\",\n    autoRenew: false,\n    period: 1,\n    paymentType: \"Subscription\",\n    coverage: \"overseas\",\n    autoPay: true,\n    planName: \"high\",\n});\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst resourceHttpBasicConfigurationSetExample = new alicloud.esa.Site(\"resource_HttpBasicConfiguration_set_example\", {\n    siteName: `gositecdn-${_default.result}.cn`,\n    instanceId: example.id,\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultHttpsBasicConfiguration = new alicloud.esa.HttpsBasicConfiguration(\"default\", {\n    https: \"on\",\n    rule: \"true\",\n    ruleName: \"example2\",\n    siteId: resourceHttpBasicConfigurationSetExample.id,\n    ruleEnable: \"on\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.esa.RatePlanInstance(\"example\",\n    type=\"NS\",\n    auto_renew=False,\n    period=1,\n    payment_type=\"Subscription\",\n    coverage=\"overseas\",\n    auto_pay=True,\n    plan_name=\"high\")\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nresource_http_basic_configuration_set_example = alicloud.esa.Site(\"resource_HttpBasicConfiguration_set_example\",\n    site_name=f\"gositecdn-{default['result']}.cn\",\n    instance_id=example.id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_https_basic_configuration = alicloud.esa.HttpsBasicConfiguration(\"default\",\n    https=\"on\",\n    rule=\"true\",\n    rule_name=\"example2\",\n    site_id=resource_http_basic_configuration_set_example.id,\n    rule_enable=\"on\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = new AliCloud.Esa.RatePlanInstance(\"example\", new()\n    {\n        Type = \"NS\",\n        AutoRenew = false,\n        Period = 1,\n        PaymentType = \"Subscription\",\n        Coverage = \"overseas\",\n        AutoPay = true,\n        PlanName = \"high\",\n    });\n\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var resourceHttpBasicConfigurationSetExample = new AliCloud.Esa.Site(\"resource_HttpBasicConfiguration_set_example\", new()\n    {\n        SiteName = $\"gositecdn-{@default.Result}.cn\",\n        InstanceId = example.Id,\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultHttpsBasicConfiguration = new AliCloud.Esa.HttpsBasicConfiguration(\"default\", new()\n    {\n        Https = \"on\",\n        Rule = \"true\",\n        RuleName = \"example2\",\n        SiteId = resourceHttpBasicConfigurationSetExample.Id,\n        RuleEnable = \"on\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := esa.NewRatePlanInstance(ctx, \"example\", \u0026esa.RatePlanInstanceArgs{\n\t\t\tType:        pulumi.String(\"NS\"),\n\t\t\tAutoRenew:   pulumi.Bool(false),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tPaymentType: pulumi.String(\"Subscription\"),\n\t\t\tCoverage:    pulumi.String(\"overseas\"),\n\t\t\tAutoPay:     pulumi.Bool(true),\n\t\t\tPlanName:    pulumi.String(\"high\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresourceHttpBasicConfigurationSetExample, err := esa.NewSite(ctx, \"resource_HttpBasicConfiguration_set_example\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.Sprintf(\"gositecdn-%v.cn\", _default.Result),\n\t\t\tInstanceId: example.ID(),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewHttpsBasicConfiguration(ctx, \"default\", \u0026esa.HttpsBasicConfigurationArgs{\n\t\t\tHttps:      pulumi.String(\"on\"),\n\t\t\tRule:       pulumi.String(\"true\"),\n\t\t\tRuleName:   pulumi.String(\"example2\"),\n\t\t\tSiteId:     resourceHttpBasicConfigurationSetExample.ID(),\n\t\t\tRuleEnable: pulumi.String(\"on\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.RatePlanInstance;\nimport com.pulumi.alicloud.esa.RatePlanInstanceArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.HttpsBasicConfiguration;\nimport com.pulumi.alicloud.esa.HttpsBasicConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var example = new RatePlanInstance(\"example\", RatePlanInstanceArgs.builder()\n            .type(\"NS\")\n            .autoRenew(false)\n            .period(1)\n            .paymentType(\"Subscription\")\n            .coverage(\"overseas\")\n            .autoPay(true)\n            .planName(\"high\")\n            .build());\n\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var resourceHttpBasicConfigurationSetExample = new Site(\"resourceHttpBasicConfigurationSetExample\", SiteArgs.builder()\n            .siteName(String.format(\"gositecdn-%s.cn\", default_.result()))\n            .instanceId(example.id())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultHttpsBasicConfiguration = new HttpsBasicConfiguration(\"defaultHttpsBasicConfiguration\", HttpsBasicConfigurationArgs.builder()\n            .https(\"on\")\n            .rule(\"true\")\n            .ruleName(\"example2\")\n            .siteId(resourceHttpBasicConfigurationSetExample.id())\n            .ruleEnable(\"on\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  example:\n    type: alicloud:esa:RatePlanInstance\n    properties:\n      type: NS\n      autoRenew: 'false'\n      period: '1'\n      paymentType: Subscription\n      coverage: overseas\n      autoPay: 'true'\n      planName: high\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  resourceHttpBasicConfigurationSetExample:\n    type: alicloud:esa:Site\n    name: resource_HttpBasicConfiguration_set_example\n    properties:\n      siteName: gositecdn-${default.result}.cn\n      instanceId: ${example.id}\n      coverage: overseas\n      accessType: NS\n  defaultHttpsBasicConfiguration:\n    type: alicloud:esa:HttpsBasicConfiguration\n    name: default\n    properties:\n      https: on\n      rule: 'true'\n      ruleName: example2\n      siteId: ${resourceHttpBasicConfigurationSetExample.id}\n      ruleEnable: on\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Https Basic Configuration can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/httpsBasicConfiguration:HttpsBasicConfiguration example \u003csite_id\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"ciphersuite":{"type":"string","description":"Custom cipher suite, indicating the specific encryption algorithm selected when CiphersuiteGroup is set to custom.\n"},"ciphersuiteGroup":{"type":"string","description":"Cipher suite group. Default is all cipher suites. Possible values:\n- all: All cipher suites.\n- strict: Strong cipher suites.\n- custom: Custom cipher suites.\n"},"configId":{"type":"integer","description":"ConfigId of the configuration, which can be obtained by calling the [ListHttpsBasicConfigurations](https://www.alibabacloud.com/help/en/doc-detail/2867470.html) interface.\n"},"http2":{"type":"string","description":"Indicates whether HTTP2 is enabled. Default is on. Possible values:\n- on: Enabled.\n- off: Disabled.\n"},"http3":{"type":"string","description":"Whether to enable HTTP3, which is enabled by default. The value can be:\n- on: Enabled.\n- off: Disabled.\n"},"https":{"type":"string","description":"Whether to enable HTTPS. Default is enabled. Possible values:\n- on: Enable.\n- off: Disable.\n"},"ocspStapling":{"type":"string","description":"Indicates whether OCSP is enabled. Default is off. Possible values:\n- on: Enabled.\n- off: Disabled.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n-  Match all incoming requests: value set to true\n-  Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n- on: open.\n- off: close.\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"Site ID, which can be obtained by calling the ListSites interface.\n"},"tls10":{"type":"string","description":"Whether to enable TLS1.0. Default is disabled. Possible values:\n- on: Enable.\n- off: Disable.\n"},"tls11":{"type":"string","description":"Whether to enable TLS1.1. Default is enabled. Possible values:\n- on: Enable.\n- off: Disable.\n"},"tls12":{"type":"string","description":"Whether to enable TLS1.2. Default is enabled. Possible values:\n- on: Enable.\n- off: Disable.\n"},"tls13":{"type":"string","description":"Whether to enable TLS1.3. Default is enabled. Possible values:\n- on: Enable.\n- off: Disable.\n"}},"required":["configId","sequence","siteId"],"inputProperties":{"ciphersuite":{"type":"string","description":"Custom cipher suite, indicating the specific encryption algorithm selected when CiphersuiteGroup is set to custom.\n"},"ciphersuiteGroup":{"type":"string","description":"Cipher suite group. Default is all cipher suites. Possible values:\n- all: All cipher suites.\n- strict: Strong cipher suites.\n- custom: Custom cipher suites.\n"},"http2":{"type":"string","description":"Indicates whether HTTP2 is enabled. Default is on. Possible values:\n- on: Enabled.\n- off: Disabled.\n"},"http3":{"type":"string","description":"Whether to enable HTTP3, which is enabled by default. The value can be:\n- on: Enabled.\n- off: Disabled.\n"},"https":{"type":"string","description":"Whether to enable HTTPS. Default is enabled. Possible values:\n- on: Enable.\n- off: Disable.\n"},"ocspStapling":{"type":"string","description":"Indicates whether OCSP is enabled. Default is off. Possible values:\n- on: Enabled.\n- off: Disabled.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n-  Match all incoming requests: value set to true\n-  Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n- on: open.\n- off: close.\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"Site ID, which can be obtained by calling the ListSites interface.\n","willReplaceOnChanges":true},"tls10":{"type":"string","description":"Whether to enable TLS1.0. Default is disabled. Possible values:\n- on: Enable.\n- off: Disable.\n"},"tls11":{"type":"string","description":"Whether to enable TLS1.1. Default is enabled. Possible values:\n- on: Enable.\n- off: Disable.\n"},"tls12":{"type":"string","description":"Whether to enable TLS1.2. Default is enabled. Possible values:\n- on: Enable.\n- off: Disable.\n"},"tls13":{"type":"string","description":"Whether to enable TLS1.3. Default is enabled. Possible values:\n- on: Enable.\n- off: Disable.\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering HttpsBasicConfiguration resources.\n","properties":{"ciphersuite":{"type":"string","description":"Custom cipher suite, indicating the specific encryption algorithm selected when CiphersuiteGroup is set to custom.\n"},"ciphersuiteGroup":{"type":"string","description":"Cipher suite group. Default is all cipher suites. Possible values:\n- all: All cipher suites.\n- strict: Strong cipher suites.\n- custom: Custom cipher suites.\n"},"configId":{"type":"integer","description":"ConfigId of the configuration, which can be obtained by calling the [ListHttpsBasicConfigurations](https://www.alibabacloud.com/help/en/doc-detail/2867470.html) interface.\n"},"http2":{"type":"string","description":"Indicates whether HTTP2 is enabled. Default is on. Possible values:\n- on: Enabled.\n- off: Disabled.\n"},"http3":{"type":"string","description":"Whether to enable HTTP3, which is enabled by default. The value can be:\n- on: Enabled.\n- off: Disabled.\n"},"https":{"type":"string","description":"Whether to enable HTTPS. Default is enabled. Possible values:\n- on: Enable.\n- off: Disable.\n"},"ocspStapling":{"type":"string","description":"Indicates whether OCSP is enabled. Default is off. Possible values:\n- on: Enabled.\n- off: Disabled.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n-  Match all incoming requests: value set to true\n-  Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n- on: open.\n- off: close.\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"Site ID, which can be obtained by calling the ListSites interface.\n","willReplaceOnChanges":true},"tls10":{"type":"string","description":"Whether to enable TLS1.0. Default is disabled. Possible values:\n- on: Enable.\n- off: Disable.\n"},"tls11":{"type":"string","description":"Whether to enable TLS1.1. Default is enabled. Possible values:\n- on: Enable.\n- off: Disable.\n"},"tls12":{"type":"string","description":"Whether to enable TLS1.2. Default is enabled. Possible values:\n- on: Enable.\n- off: Disable.\n"},"tls13":{"type":"string","description":"Whether to enable TLS1.3. Default is enabled. Possible values:\n- on: Enable.\n- off: Disable.\n"}},"type":"object"}},"alicloud:esa/imageTransform:ImageTransform":{"description":"Provides a ESA Image Transform resource.\n\n\n\nFor information about ESA Image Transform and how to use it, see [What is Image Transform](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateImageTransform).\n\n\u003e **NOTE:** Available since v1.244.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: \"imagetransform.tf.com\",\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"domestic\",\n    accessType: \"NS\",\n});\nconst defaultImageTransform = new alicloud.esa.ImageTransform(\"default\", {\n    rule: \"http.host eq \\\"video.example.com\\\"\",\n    siteVersion: 0,\n    ruleName: \"rule_example\",\n    siteId: defaultSite.id,\n    ruleEnable: \"off\",\n    enable: \"off\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=\"imagetransform.tf.com\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"domestic\",\n    access_type=\"NS\")\ndefault_image_transform = alicloud.esa.ImageTransform(\"default\",\n    rule=\"http.host eq \\\"video.example.com\\\"\",\n    site_version=0,\n    rule_name=\"rule_example\",\n    site_id=default_site.id,\n    rule_enable=\"off\",\n    enable=\"off\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = \"imagetransform.tf.com\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"domestic\",\n        AccessType = \"NS\",\n    });\n\n    var defaultImageTransform = new AliCloud.Esa.ImageTransform(\"default\", new()\n    {\n        Rule = \"http.host eq \\\"video.example.com\\\"\",\n        SiteVersion = 0,\n        RuleName = \"rule_example\",\n        SiteId = defaultSite.Id,\n        RuleEnable = \"off\",\n        Enable = \"off\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"imagetransform.tf.com\"),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"domestic\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewImageTransform(ctx, \"default\", \u0026esa.ImageTransformArgs{\n\t\t\tRule:        pulumi.String(\"http.host eq \\\"video.example.com\\\"\"),\n\t\t\tSiteVersion: pulumi.Int(0),\n\t\t\tRuleName:    pulumi.String(\"rule_example\"),\n\t\t\tSiteId:      defaultSite.ID(),\n\t\t\tRuleEnable:  pulumi.String(\"off\"),\n\t\t\tEnable:      pulumi.String(\"off\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.ImageTransform;\nimport com.pulumi.alicloud.esa.ImageTransformArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(\"imagetransform.tf.com\")\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"domestic\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultImageTransform = new ImageTransform(\"defaultImageTransform\", ImageTransformArgs.builder()\n            .rule(\"http.host eq \\\"video.example.com\\\"\")\n            .siteVersion(0)\n            .ruleName(\"rule_example\")\n            .siteId(defaultSite.id())\n            .ruleEnable(\"off\")\n            .enable(\"off\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: imagetransform.tf.com\n      instanceId: ${default.sites[0].instanceId}\n      coverage: domestic\n      accessType: NS\n  defaultImageTransform:\n    type: alicloud:esa:ImageTransform\n    name: default\n    properties:\n      rule: http.host eq \"video.example.com\"\n      siteVersion: '0'\n      ruleName: rule_example\n      siteId: ${defaultSite.id}\n      ruleEnable: off\n      enable: off\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Image Transform can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/imageTransform:ImageTransform example \u003csite_id\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"configId":{"type":"integer","description":"Config Id\n"},"enable":{"type":"string","description":"Indicates whether the image transformations feature is enabled. Valid values:\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n"},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n"}},"required":["configId","sequence","siteId"],"inputProperties":{"enable":{"type":"string","description":"Indicates whether the image transformations feature is enabled. Valid values:\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering ImageTransform resources.\n","properties":{"configId":{"type":"integer","description":"Config Id\n"},"enable":{"type":"string","description":"Indicates whether the image transformations feature is enabled. Valid values:\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/kv:Kv":{"description":"Provides a ESA Kv resource.\n\n\n\nFor information about ESA Kv and how to use it, see [What is Kv](https://next.api.alibabacloud.com/document/ESA/2024-09-10/PutKv).\n\n\u003e **NOTE:** Available since v1.251.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.esa.KvNamespace(\"default\", {\n    description: \"this is a example namespace.\",\n    kvNamespace: \"namespace1\",\n});\nconst defaultKv = new alicloud.esa.Kv(\"default\", {\n    isbase: false,\n    expirationTtl: 360,\n    value: \"example_value\",\n    expiration: 1690,\n    namespace: _default.id,\n    key: \"example_key\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.KvNamespace(\"default\",\n    description=\"this is a example namespace.\",\n    kv_namespace=\"namespace1\")\ndefault_kv = alicloud.esa.Kv(\"default\",\n    isbase=False,\n    expiration_ttl=360,\n    value=\"example_value\",\n    expiration=1690,\n    namespace=default.id,\n    key=\"example_key\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Esa.KvNamespace(\"default\", new()\n    {\n        Description = \"this is a example namespace.\",\n        NamespaceValue = \"namespace1\",\n    });\n\n    var defaultKv = new AliCloud.Esa.Kv(\"default\", new()\n    {\n        Isbase = false,\n        ExpirationTtl = 360,\n        Value = \"example_value\",\n        Expiration = 1690,\n        Namespace = @default.Id,\n        Key = \"example_key\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.NewKvNamespace(ctx, \"default\", \u0026esa.KvNamespaceArgs{\n\t\t\tDescription: pulumi.String(\"this is a example namespace.\"),\n\t\t\tKvNamespace: pulumi.String(\"namespace1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewKv(ctx, \"default\", \u0026esa.KvArgs{\n\t\t\tIsbase:        pulumi.Bool(false),\n\t\t\tExpirationTtl: pulumi.Int(360),\n\t\t\tValue:         pulumi.String(\"example_value\"),\n\t\t\tExpiration:    pulumi.Int(1690),\n\t\t\tNamespace:     _default.ID(),\n\t\t\tKey:           pulumi.String(\"example_key\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.KvNamespace;\nimport com.pulumi.alicloud.esa.KvNamespaceArgs;\nimport com.pulumi.alicloud.esa.Kv;\nimport com.pulumi.alicloud.esa.KvArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new KvNamespace(\"default\", KvNamespaceArgs.builder()\n            .description(\"this is a example namespace.\")\n            .kvNamespace(\"namespace1\")\n            .build());\n\n        var defaultKv = new Kv(\"defaultKv\", KvArgs.builder()\n            .isbase(false)\n            .expirationTtl(360)\n            .value(\"example_value\")\n            .expiration(1690)\n            .namespace(default_.id())\n            .key(\"example_key\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:esa:KvNamespace\n    properties:\n      description: this is a example namespace.\n      kvNamespace: namespace1\n  defaultKv:\n    type: alicloud:esa:Kv\n    name: default\n    properties:\n      isbase: 'false'\n      expirationTtl: '360'\n      value: example_value\n      expiration: '1690'\n      namespace: ${default.id}\n      key: example_key\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Kv can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/kv:Kv example \u003cnamespace\u003e:\u003ckey\u003e\n```\n\n","properties":{"expiration":{"type":"integer","description":"The content of the key, which can be up to 2 MB (2 × 1000 × 1000). If the content is larger than 2 MB, call [PutKvWithHighCapacity](https://www.alibabacloud.com/help/en/doc-detail/2850486.html).\n"},"expirationTtl":{"type":"integer","description":"The time when the key-value pair expires, which cannot be earlier than the current time. The value is a timestamp in seconds. If you specify both Expiration and ExpirationTtl, only ExpirationTtl takes effect.\n"},"isbase":{"type":"boolean","description":"The relative expiration time. Unit: seconds. If you specify both Expiration and ExpirationTtl, only ExpirationTtl takes effect.\n"},"key":{"type":"string","description":"kv\n"},"namespace":{"type":"string","description":"The name specified when calling [CreatevNamespace](https://help.aliyun.com/document_detail/2850317.html).\n"},"url":{"type":"string","description":"The key name. The name can be up to 512 characters in length and cannot contain spaces or backslashes (\\\\).\n"},"value":{"type":"string","description":"The content of the key. If the content has more than 256 characters in length, the system displays the first 100 and the last 100 characters, and omits the middle part.\n"}},"required":["key","namespace","value"],"inputProperties":{"expiration":{"type":"integer","description":"The content of the key, which can be up to 2 MB (2 × 1000 × 1000). If the content is larger than 2 MB, call [PutKvWithHighCapacity](https://www.alibabacloud.com/help/en/doc-detail/2850486.html).\n"},"expirationTtl":{"type":"integer","description":"The time when the key-value pair expires, which cannot be earlier than the current time. The value is a timestamp in seconds. If you specify both Expiration and ExpirationTtl, only ExpirationTtl takes effect.\n"},"isbase":{"type":"boolean","description":"The relative expiration time. Unit: seconds. If you specify both Expiration and ExpirationTtl, only ExpirationTtl takes effect.\n"},"key":{"type":"string","description":"kv\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"The name specified when calling [CreatevNamespace](https://help.aliyun.com/document_detail/2850317.html).\n","willReplaceOnChanges":true},"url":{"type":"string","description":"The key name. The name can be up to 512 characters in length and cannot contain spaces or backslashes (\\\\).\n"},"value":{"type":"string","description":"The content of the key. If the content has more than 256 characters in length, the system displays the first 100 and the last 100 characters, and omits the middle part.\n"}},"requiredInputs":["key","namespace"],"stateInputs":{"description":"Input properties used for looking up and filtering Kv resources.\n","properties":{"expiration":{"type":"integer","description":"The content of the key, which can be up to 2 MB (2 × 1000 × 1000). If the content is larger than 2 MB, call [PutKvWithHighCapacity](https://www.alibabacloud.com/help/en/doc-detail/2850486.html).\n"},"expirationTtl":{"type":"integer","description":"The time when the key-value pair expires, which cannot be earlier than the current time. The value is a timestamp in seconds. If you specify both Expiration and ExpirationTtl, only ExpirationTtl takes effect.\n"},"isbase":{"type":"boolean","description":"The relative expiration time. Unit: seconds. If you specify both Expiration and ExpirationTtl, only ExpirationTtl takes effect.\n"},"key":{"type":"string","description":"kv\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"The name specified when calling [CreatevNamespace](https://help.aliyun.com/document_detail/2850317.html).\n","willReplaceOnChanges":true},"url":{"type":"string","description":"The key name. The name can be up to 512 characters in length and cannot contain spaces or backslashes (\\\\).\n"},"value":{"type":"string","description":"The content of the key. If the content has more than 256 characters in length, the system displays the first 100 and the last 100 characters, and omits the middle part.\n"}},"type":"object"}},"alicloud:esa/kvAccount:KvAccount":{"description":"Provides a ESA Kv Account resource.\n\n\n\nFor information about ESA Kv Account and how to use it, see [What is Kv Account](https://next.api.alibabacloud.com/document/ESA/2024-09-10/OpenErService).\n\n\u003e **NOTE:** Available since v1.259.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = new alicloud.esa.KvAccount(\"open\", {});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.esa.KvAccount(\"open\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = new AliCloud.Esa.KvAccount(\"open\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := esa.NewKvAccount(ctx, \"open\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.KvAccount;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var open = new KvAccount(\"open\");\n\n    }\n}\n```\n```yaml\nresources:\n  open:\n    type: alicloud:esa:KvAccount\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.esa.KvAccount`\" pulumi-lang-dotnet=\"`alicloud.esa.KvAccount`\" pulumi-lang-go=\"`esa.KvAccount`\" pulumi-lang-python=\"`esa.KvAccount`\" pulumi-lang-yaml=\"`alicloud.esa.KvAccount`\" pulumi-lang-java=\"`alicloud.esa.KvAccount`\"\u003e`alicloud.esa.KvAccount`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.esa.KvAccount`\" pulumi-lang-dotnet=\"`alicloud.esa.KvAccount`\" pulumi-lang-go=\"`esa.KvAccount`\" pulumi-lang-python=\"`esa.KvAccount`\" pulumi-lang-yaml=\"`alicloud.esa.KvAccount`\" pulumi-lang-java=\"`alicloud.esa.KvAccount`\"\u003e`alicloud.esa.KvAccount`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Kv Account can be imported using the id, e.g.\n\n```sh\n$ terraform import alicloud_esa_kv_account.example \n```\n\n","properties":{"status":{"type":"string","description":"The status of the resource.\n"}},"required":["status"],"stateInputs":{"description":"Input properties used for looking up and filtering KvAccount resources.\n","properties":{"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object"}},"alicloud:esa/kvNamespace:KvNamespace":{"description":"Provides a ESA Kv Namespace resource.\n\n\n\nFor information about ESA Kv Namespace and how to use it, see [What is Kv Namespace](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateKvNamespace).\n\n\u003e **NOTE:** Available since v1.244.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.esa.KvNamespace(\"default\", {\n    description: \"this is a example namespace.\",\n    kvNamespace: \"example_namespace\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.KvNamespace(\"default\",\n    description=\"this is a example namespace.\",\n    kv_namespace=\"example_namespace\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Esa.KvNamespace(\"default\", new()\n    {\n        Description = \"this is a example namespace.\",\n        NamespaceValue = \"example_namespace\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := esa.NewKvNamespace(ctx, \"default\", \u0026esa.KvNamespaceArgs{\n\t\t\tDescription: pulumi.String(\"this is a example namespace.\"),\n\t\t\tKvNamespace: pulumi.String(\"example_namespace\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.KvNamespace;\nimport com.pulumi.alicloud.esa.KvNamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new KvNamespace(\"default\", KvNamespaceArgs.builder()\n            .description(\"this is a example namespace.\")\n            .kvNamespace(\"example_namespace\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:esa:KvNamespace\n    properties:\n      description: this is a example namespace.\n      kvNamespace: example_namespace\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Kv Namespace can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/kvNamespace:KvNamespace example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the namespace.\n"},"kvNamespace":{"type":"string","description":"The name of the namespace.\n","language":{"csharp":{"name":"NamespaceValue"}}},"status":{"type":"string","description":"The status of the namespace.\n"}},"required":["kvNamespace","status"],"inputProperties":{"description":{"type":"string","description":"The description of the namespace.\n","willReplaceOnChanges":true},"kvNamespace":{"type":"string","description":"The name of the namespace.\n","language":{"csharp":{"name":"NamespaceValue"}},"willReplaceOnChanges":true}},"requiredInputs":["kvNamespace"],"stateInputs":{"description":"Input properties used for looking up and filtering KvNamespace resources.\n","properties":{"description":{"type":"string","description":"The description of the namespace.\n","willReplaceOnChanges":true},"kvNamespace":{"type":"string","description":"The name of the namespace.\n","language":{"csharp":{"name":"NamespaceValue"}},"willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the namespace.\n"}},"type":"object"}},"alicloud:esa/list:List":{"description":"Provides a ESA List resource.\n\n\n\nFor information about ESA List and how to use it, see [What is List](https://www.alibabacloud.com/help/en/edge-security-acceleration/esa/user-guide/grouping).\n\n\u003e **NOTE:** Available since v1.242.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.esa.List(\"default\", {\n    description: \"resource example ip list\",\n    kind: \"ip\",\n    items: [\n        \"10.1.1.1\",\n        \"10.1.1.2\",\n        \"10.1.1.3\",\n    ],\n    name: \"resource_example_ip_list\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.esa.List(\"default\",\n    description=\"resource example ip list\",\n    kind=\"ip\",\n    items=[\n        \"10.1.1.1\",\n        \"10.1.1.2\",\n        \"10.1.1.3\",\n    ],\n    name=\"resource_example_ip_list\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Esa.List(\"default\", new()\n    {\n        Description = \"resource example ip list\",\n        Kind = \"ip\",\n        Items = new[]\n        {\n            \"10.1.1.1\",\n            \"10.1.1.2\",\n            \"10.1.1.3\",\n        },\n        Name = \"resource_example_ip_list\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := esa.NewList(ctx, \"default\", \u0026esa.ListArgs{\n\t\t\tDescription: pulumi.String(\"resource example ip list\"),\n\t\t\tKind:        pulumi.String(\"ip\"),\n\t\t\tItems: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.1.1\"),\n\t\t\t\tpulumi.String(\"10.1.1.2\"),\n\t\t\t\tpulumi.String(\"10.1.1.3\"),\n\t\t\t},\n\t\t\tName: pulumi.String(\"resource_example_ip_list\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.List;\nimport com.pulumi.alicloud.esa.ListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new List(\"default\", ListArgs.builder()\n            .description(\"resource example ip list\")\n            .kind(\"ip\")\n            .items(            \n                \"10.1.1.1\",\n                \"10.1.1.2\",\n                \"10.1.1.3\")\n            .name(\"resource_example_ip_list\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:esa:List\n    properties:\n      description: resource example ip list\n      kind: ip\n      items:\n        - 10.1.1.1\n        - 10.1.1.2\n        - 10.1.1.3\n      name: resource_example_ip_list\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA List can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/list:List example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the custom list.\n"},"items":{"type":"array","items":{"type":"string"},"description":"The items in the custom list, which are displayed as an array.\n"},"kind":{"type":"string","description":"The type of the custom list.\n"},"name":{"type":"string","description":"The name of the custom list.\n"}},"required":["name"],"inputProperties":{"description":{"type":"string","description":"The description of the custom list.\n"},"items":{"type":"array","items":{"type":"string"},"description":"The items in the custom list, which are displayed as an array.\n"},"kind":{"type":"string","description":"The type of the custom list.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the custom list.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering List resources.\n","properties":{"description":{"type":"string","description":"The description of the custom list.\n"},"items":{"type":"array","items":{"type":"string"},"description":"The items in the custom list, which are displayed as an array.\n"},"kind":{"type":"string","description":"The type of the custom list.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the custom list.\n"}},"type":"object"}},"alicloud:esa/loadBalancer:LoadBalancer":{"description":"Provides a ESA Load Balancer resource.\n\n\n\nFor information about ESA Load Balancer and how to use it, see [What is Load Balancer](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateLoadBalancer).\n\n\u003e **NOTE:** Available since v1.262.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst resourceSiteOriginPool = new alicloud.esa.Site(\"resource_Site_OriginPool\", {\n    siteName: `${name}${defaultInteger.result}.com`,\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst resourceOriginPoolLoadBalancer11 = new alicloud.esa.OriginPool(\"resource_OriginPool_LoadBalancer_1_1\", {\n    origins: [{\n        type: \"ip_domain\",\n        address: \"www.example.com\",\n        header: \"{\\\"Host\\\":[\\\"www.example.com\\\"]}\",\n        enabled: true,\n        weight: 30,\n        name: \"origin1\",\n    }],\n    siteId: resourceSiteOriginPool.id,\n    originPoolName: \"originpool1\",\n    enabled: true,\n});\nconst defaultLoadBalancer = new alicloud.esa.LoadBalancer(\"default\", {\n    loadBalancerName: \"lb.exampleloadbalancer.top\",\n    fallbackPool: resourceOriginPoolLoadBalancer11.originPoolId,\n    siteId: resourceSiteOriginPool.id,\n    description: name,\n    defaultPools: [resourceOriginPoolLoadBalancer11.originPoolId],\n    steeringPolicy: \"geo\",\n    monitor: {\n        type: \"ICMP Ping\",\n        timeout: 5,\n        monitoringRegion: \"ChineseMainland\",\n        consecutiveUp: 3,\n        consecutiveDown: 5,\n        interval: 60,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nresource_site_origin_pool = alicloud.esa.Site(\"resource_Site_OriginPool\",\n    site_name=f\"{name}{default_integer['result']}.com\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\nresource_origin_pool_load_balancer11 = alicloud.esa.OriginPool(\"resource_OriginPool_LoadBalancer_1_1\",\n    origins=[{\n        \"type\": \"ip_domain\",\n        \"address\": \"www.example.com\",\n        \"header\": \"{\\\"Host\\\":[\\\"www.example.com\\\"]}\",\n        \"enabled\": True,\n        \"weight\": 30,\n        \"name\": \"origin1\",\n    }],\n    site_id=resource_site_origin_pool.id,\n    origin_pool_name=\"originpool1\",\n    enabled=True)\ndefault_load_balancer = alicloud.esa.LoadBalancer(\"default\",\n    load_balancer_name=\"lb.exampleloadbalancer.top\",\n    fallback_pool=resource_origin_pool_load_balancer11.origin_pool_id,\n    site_id=resource_site_origin_pool.id,\n    description=name,\n    default_pools=[resource_origin_pool_load_balancer11.origin_pool_id],\n    steering_policy=\"geo\",\n    monitor={\n        \"type\": \"ICMP Ping\",\n        \"timeout\": 5,\n        \"monitoring_region\": \"ChineseMainland\",\n        \"consecutive_up\": 3,\n        \"consecutive_down\": 5,\n        \"interval\": 60,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var resourceSiteOriginPool = new AliCloud.Esa.Site(\"resource_Site_OriginPool\", new()\n    {\n        SiteName = $\"{name}{defaultInteger.Result}.com\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var resourceOriginPoolLoadBalancer11 = new AliCloud.Esa.OriginPool(\"resource_OriginPool_LoadBalancer_1_1\", new()\n    {\n        Origins = new[]\n        {\n            new AliCloud.Esa.Inputs.OriginPoolOriginArgs\n            {\n                Type = \"ip_domain\",\n                Address = \"www.example.com\",\n                Header = \"{\\\"Host\\\":[\\\"www.example.com\\\"]}\",\n                Enabled = true,\n                Weight = 30,\n                Name = \"origin1\",\n            },\n        },\n        SiteId = resourceSiteOriginPool.Id,\n        OriginPoolName = \"originpool1\",\n        Enabled = true,\n    });\n\n    var defaultLoadBalancer = new AliCloud.Esa.LoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = \"lb.exampleloadbalancer.top\",\n        FallbackPool = resourceOriginPoolLoadBalancer11.OriginPoolId,\n        SiteId = resourceSiteOriginPool.Id,\n        Description = name,\n        DefaultPools = new[]\n        {\n            resourceOriginPoolLoadBalancer11.OriginPoolId,\n        },\n        SteeringPolicy = \"geo\",\n        Monitor = new AliCloud.Esa.Inputs.LoadBalancerMonitorArgs\n        {\n            Type = \"ICMP Ping\",\n            Timeout = 5,\n            MonitoringRegion = \"ChineseMainland\",\n            ConsecutiveUp = 3,\n            ConsecutiveDown = 5,\n            Interval = 60,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresourceSiteOriginPool, err := esa.NewSite(ctx, \"resource_Site_OriginPool\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.Sprintf(\"%v%v.com\", name, defaultInteger.Result),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresourceOriginPoolLoadBalancer11, err := esa.NewOriginPool(ctx, \"resource_OriginPool_LoadBalancer_1_1\", \u0026esa.OriginPoolArgs{\n\t\t\tOrigins: esa.OriginPoolOriginArray{\n\t\t\t\t\u0026esa.OriginPoolOriginArgs{\n\t\t\t\t\tType:    pulumi.String(\"ip_domain\"),\n\t\t\t\t\tAddress: pulumi.String(\"www.example.com\"),\n\t\t\t\t\tHeader:  pulumi.String(\"{\\\"Host\\\":[\\\"www.example.com\\\"]}\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tWeight:  pulumi.Int(30),\n\t\t\t\t\tName:    pulumi.String(\"origin1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSiteId:         resourceSiteOriginPool.ID(),\n\t\t\tOriginPoolName: pulumi.String(\"originpool1\"),\n\t\t\tEnabled:        pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewLoadBalancer(ctx, \"default\", \u0026esa.LoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(\"lb.exampleloadbalancer.top\"),\n\t\t\tFallbackPool:     resourceOriginPoolLoadBalancer11.OriginPoolId,\n\t\t\tSiteId:           resourceSiteOriginPool.ID(),\n\t\t\tDescription:      pulumi.String(name),\n\t\t\tDefaultPools: pulumi.IntArray{\n\t\t\t\tresourceOriginPoolLoadBalancer11.OriginPoolId,\n\t\t\t},\n\t\t\tSteeringPolicy: pulumi.String(\"geo\"),\n\t\t\tMonitor: \u0026esa.LoadBalancerMonitorArgs{\n\t\t\t\tType:             pulumi.String(\"ICMP Ping\"),\n\t\t\t\tTimeout:          pulumi.Int(5),\n\t\t\t\tMonitoringRegion: pulumi.String(\"ChineseMainland\"),\n\t\t\t\tConsecutiveUp:    pulumi.Int(3),\n\t\t\t\tConsecutiveDown:  pulumi.Int(5),\n\t\t\t\tInterval:         pulumi.Int(60),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.OriginPool;\nimport com.pulumi.alicloud.esa.OriginPoolArgs;\nimport com.pulumi.alicloud.esa.inputs.OriginPoolOriginArgs;\nimport com.pulumi.alicloud.esa.LoadBalancer;\nimport com.pulumi.alicloud.esa.LoadBalancerArgs;\nimport com.pulumi.alicloud.esa.inputs.LoadBalancerMonitorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var resourceSiteOriginPool = new Site(\"resourceSiteOriginPool\", SiteArgs.builder()\n            .siteName(String.format(\"%s%s.com\", name,defaultInteger.result()))\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var resourceOriginPoolLoadBalancer11 = new OriginPool(\"resourceOriginPoolLoadBalancer11\", OriginPoolArgs.builder()\n            .origins(OriginPoolOriginArgs.builder()\n                .type(\"ip_domain\")\n                .address(\"www.example.com\")\n                .header(\"{\\\"Host\\\":[\\\"www.example.com\\\"]}\")\n                .enabled(true)\n                .weight(30)\n                .name(\"origin1\")\n                .build())\n            .siteId(resourceSiteOriginPool.id())\n            .originPoolName(\"originpool1\")\n            .enabled(true)\n            .build());\n\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .loadBalancerName(\"lb.exampleloadbalancer.top\")\n            .fallbackPool(resourceOriginPoolLoadBalancer11.originPoolId())\n            .siteId(resourceSiteOriginPool.id())\n            .description(name)\n            .defaultPools(resourceOriginPoolLoadBalancer11.originPoolId())\n            .steeringPolicy(\"geo\")\n            .monitor(LoadBalancerMonitorArgs.builder()\n                .type(\"ICMP Ping\")\n                .timeout(5)\n                .monitoringRegion(\"ChineseMainland\")\n                .consecutiveUp(3)\n                .consecutiveDown(5)\n                .interval(60)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  resourceSiteOriginPool:\n    type: alicloud:esa:Site\n    name: resource_Site_OriginPool\n    properties:\n      siteName: ${name}${defaultInteger.result}.com\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  resourceOriginPoolLoadBalancer11:\n    type: alicloud:esa:OriginPool\n    name: resource_OriginPool_LoadBalancer_1_1\n    properties:\n      origins:\n        - type: ip_domain\n          address: www.example.com\n          header: '{\"Host\":[\"www.example.com\"]}'\n          enabled: true\n          weight: '30'\n          name: origin1\n      siteId: ${resourceSiteOriginPool.id}\n      originPoolName: originpool1\n      enabled: true\n  defaultLoadBalancer:\n    type: alicloud:esa:LoadBalancer\n    name: default\n    properties:\n      loadBalancerName: lb.exampleloadbalancer.top\n      fallbackPool: ${resourceOriginPoolLoadBalancer11.originPoolId}\n      siteId: ${resourceSiteOriginPool.id}\n      description: ${name}\n      defaultPools:\n        - ${resourceOriginPoolLoadBalancer11.originPoolId}\n      steeringPolicy: geo\n      monitor:\n        type: ICMP Ping\n        timeout: 5\n        monitoringRegion: ChineseMainland\n        consecutiveUp: 3\n        consecutiveDown: 5\n        interval: 60\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Load Balancer can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/loadBalancer:LoadBalancer example \u003csite_id\u003e:\u003cload_balancer_id\u003e\n```\n\n","properties":{"adaptiveRouting":{"$ref":"#/types/alicloud:esa/LoadBalancerAdaptiveRouting:LoadBalancerAdaptiveRouting","description":"Cross-pool origin configuration. See \u003cspan pulumi-lang-nodejs=\"`adaptiveRouting`\" pulumi-lang-dotnet=\"`AdaptiveRouting`\" pulumi-lang-go=\"`adaptiveRouting`\" pulumi-lang-python=\"`adaptive_routing`\" pulumi-lang-yaml=\"`adaptiveRouting`\" pulumi-lang-java=\"`adaptiveRouting`\"\u003e`adaptive_routing`\u003c/span\u003e below.\n"},"defaultPools":{"type":"array","items":{"type":"integer"},"description":"List of default pool IDs.\n"},"description":{"type":"string","description":"The detailed description of the load balancer for easy management and identification.\n"},"enabled":{"type":"boolean","description":"Whether the load balancer is enabled.\n"},"fallbackPool":{"type":"integer","description":"The fallback pool ID, to which traffic will be redirected if all other pools are unavailable.\n"},"loadBalancerId":{"type":"integer","description":"The unique identifier ID of the load balancer.\n"},"loadBalancerName":{"type":"string","description":"The name of the load balancer must meet the domain name format verification and be a subdomain name under the site.\n"},"monitor":{"$ref":"#/types/alicloud:esa/LoadBalancerMonitor:LoadBalancerMonitor","description":"Monitor configuration for health check. See \u003cspan pulumi-lang-nodejs=\"`monitor`\" pulumi-lang-dotnet=\"`Monitor`\" pulumi-lang-go=\"`monitor`\" pulumi-lang-python=\"`monitor`\" pulumi-lang-yaml=\"`monitor`\" pulumi-lang-java=\"`monitor`\"\u003e`monitor`\u003c/span\u003e below.\n"},"randomSteering":{"$ref":"#/types/alicloud:esa/LoadBalancerRandomSteering:LoadBalancerRandomSteering","description":"Weighted round-robin configuration, used to control the traffic distribution weights among different pools. See \u003cspan pulumi-lang-nodejs=\"`randomSteering`\" pulumi-lang-dotnet=\"`RandomSteering`\" pulumi-lang-go=\"`randomSteering`\" pulumi-lang-python=\"`random_steering`\" pulumi-lang-yaml=\"`randomSteering`\" pulumi-lang-java=\"`randomSteering`\"\u003e`random_steering`\u003c/span\u003e below.\n"},"regionPools":{"type":"string","description":"Address pools corresponding to primary regions.\n"},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:esa/LoadBalancerRule:LoadBalancerRule"},"description":"Rule configuration list, used to define behavior under specific conditions. See \u003cspan pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\"\u003e`rules`\u003c/span\u003e below.\n"},"sessionAffinity":{"type":"string","description":"Session persistence. Valid values:\n"},"siteId":{"type":"string","description":"The site ID.\n"},"status":{"type":"string","description":"The status of the load balancer.\n"},"steeringPolicy":{"type":"string","description":"Load balancing policy.\n"},"subRegionPools":{"type":"string","description":"Address pools corresponding to secondary regions. When multiple secondary regions share a set of address pools, the keys can be concatenated with commas.\n"},"ttl":{"type":"integer","description":"TTL value, the time-to-live for DNS records. The default value is 30. The value range is 10-600.\n"}},"required":["adaptiveRouting","defaultPools","fallbackPool","loadBalancerId","loadBalancerName","monitor","siteId","status","steeringPolicy","ttl"],"inputProperties":{"adaptiveRouting":{"$ref":"#/types/alicloud:esa/LoadBalancerAdaptiveRouting:LoadBalancerAdaptiveRouting","description":"Cross-pool origin configuration. See \u003cspan pulumi-lang-nodejs=\"`adaptiveRouting`\" pulumi-lang-dotnet=\"`AdaptiveRouting`\" pulumi-lang-go=\"`adaptiveRouting`\" pulumi-lang-python=\"`adaptive_routing`\" pulumi-lang-yaml=\"`adaptiveRouting`\" pulumi-lang-java=\"`adaptiveRouting`\"\u003e`adaptive_routing`\u003c/span\u003e below.\n"},"defaultPools":{"type":"array","items":{"type":"integer"},"description":"List of default pool IDs.\n"},"description":{"type":"string","description":"The detailed description of the load balancer for easy management and identification.\n"},"enabled":{"type":"boolean","description":"Whether the load balancer is enabled.\n"},"fallbackPool":{"type":"integer","description":"The fallback pool ID, to which traffic will be redirected if all other pools are unavailable.\n"},"loadBalancerName":{"type":"string","description":"The name of the load balancer must meet the domain name format verification and be a subdomain name under the site.\n","willReplaceOnChanges":true},"monitor":{"$ref":"#/types/alicloud:esa/LoadBalancerMonitor:LoadBalancerMonitor","description":"Monitor configuration for health check. See \u003cspan pulumi-lang-nodejs=\"`monitor`\" pulumi-lang-dotnet=\"`Monitor`\" pulumi-lang-go=\"`monitor`\" pulumi-lang-python=\"`monitor`\" pulumi-lang-yaml=\"`monitor`\" pulumi-lang-java=\"`monitor`\"\u003e`monitor`\u003c/span\u003e below.\n"},"randomSteering":{"$ref":"#/types/alicloud:esa/LoadBalancerRandomSteering:LoadBalancerRandomSteering","description":"Weighted round-robin configuration, used to control the traffic distribution weights among different pools. See \u003cspan pulumi-lang-nodejs=\"`randomSteering`\" pulumi-lang-dotnet=\"`RandomSteering`\" pulumi-lang-go=\"`randomSteering`\" pulumi-lang-python=\"`random_steering`\" pulumi-lang-yaml=\"`randomSteering`\" pulumi-lang-java=\"`randomSteering`\"\u003e`random_steering`\u003c/span\u003e below.\n"},"regionPools":{"type":"string","description":"Address pools corresponding to primary regions.\n"},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:esa/LoadBalancerRule:LoadBalancerRule"},"description":"Rule configuration list, used to define behavior under specific conditions. See \u003cspan pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\"\u003e`rules`\u003c/span\u003e below.\n"},"sessionAffinity":{"type":"string","description":"Session persistence. Valid values:\n"},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true},"steeringPolicy":{"type":"string","description":"Load balancing policy.\n"},"subRegionPools":{"type":"string","description":"Address pools corresponding to secondary regions. When multiple secondary regions share a set of address pools, the keys can be concatenated with commas.\n"},"ttl":{"type":"integer","description":"TTL value, the time-to-live for DNS records. The default value is 30. The value range is 10-600.\n"}},"requiredInputs":["defaultPools","fallbackPool","loadBalancerName","monitor","siteId","steeringPolicy"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancer resources.\n","properties":{"adaptiveRouting":{"$ref":"#/types/alicloud:esa/LoadBalancerAdaptiveRouting:LoadBalancerAdaptiveRouting","description":"Cross-pool origin configuration. See \u003cspan pulumi-lang-nodejs=\"`adaptiveRouting`\" pulumi-lang-dotnet=\"`AdaptiveRouting`\" pulumi-lang-go=\"`adaptiveRouting`\" pulumi-lang-python=\"`adaptive_routing`\" pulumi-lang-yaml=\"`adaptiveRouting`\" pulumi-lang-java=\"`adaptiveRouting`\"\u003e`adaptive_routing`\u003c/span\u003e below.\n"},"defaultPools":{"type":"array","items":{"type":"integer"},"description":"List of default pool IDs.\n"},"description":{"type":"string","description":"The detailed description of the load balancer for easy management and identification.\n"},"enabled":{"type":"boolean","description":"Whether the load balancer is enabled.\n"},"fallbackPool":{"type":"integer","description":"The fallback pool ID, to which traffic will be redirected if all other pools are unavailable.\n"},"loadBalancerId":{"type":"integer","description":"The unique identifier ID of the load balancer.\n"},"loadBalancerName":{"type":"string","description":"The name of the load balancer must meet the domain name format verification and be a subdomain name under the site.\n","willReplaceOnChanges":true},"monitor":{"$ref":"#/types/alicloud:esa/LoadBalancerMonitor:LoadBalancerMonitor","description":"Monitor configuration for health check. See \u003cspan pulumi-lang-nodejs=\"`monitor`\" pulumi-lang-dotnet=\"`Monitor`\" pulumi-lang-go=\"`monitor`\" pulumi-lang-python=\"`monitor`\" pulumi-lang-yaml=\"`monitor`\" pulumi-lang-java=\"`monitor`\"\u003e`monitor`\u003c/span\u003e below.\n"},"randomSteering":{"$ref":"#/types/alicloud:esa/LoadBalancerRandomSteering:LoadBalancerRandomSteering","description":"Weighted round-robin configuration, used to control the traffic distribution weights among different pools. See \u003cspan pulumi-lang-nodejs=\"`randomSteering`\" pulumi-lang-dotnet=\"`RandomSteering`\" pulumi-lang-go=\"`randomSteering`\" pulumi-lang-python=\"`random_steering`\" pulumi-lang-yaml=\"`randomSteering`\" pulumi-lang-java=\"`randomSteering`\"\u003e`random_steering`\u003c/span\u003e below.\n"},"regionPools":{"type":"string","description":"Address pools corresponding to primary regions.\n"},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:esa/LoadBalancerRule:LoadBalancerRule"},"description":"Rule configuration list, used to define behavior under specific conditions. See \u003cspan pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\"\u003e`rules`\u003c/span\u003e below.\n"},"sessionAffinity":{"type":"string","description":"Session persistence. Valid values:\n"},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the load balancer.\n"},"steeringPolicy":{"type":"string","description":"Load balancing policy.\n"},"subRegionPools":{"type":"string","description":"Address pools corresponding to secondary regions. When multiple secondary regions share a set of address pools, the keys can be concatenated with commas.\n"},"ttl":{"type":"integer","description":"TTL value, the time-to-live for DNS records. The default value is 30. The value range is 10-600.\n"}},"type":"object"}},"alicloud:esa/networkOptimization:NetworkOptimization":{"description":"Provides a ESA Network Optimization resource.\n\n\n\nFor information about ESA Network Optimization and how to use it, see [What is Network Optimization](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateNetworkOptimization).\n\n\u003e **NOTE:** Available since v1.244.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: `gositecdn-${defaultInteger.result}.cn`,\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultNetworkOptimization = new alicloud.esa.NetworkOptimization(\"default\", {\n    siteVersion: 0,\n    siteId: defaultSite.id,\n    ruleEnable: \"on\",\n    websocket: \"off\",\n    rule: \"(http.host eq \\\"tf.example.com\\\")\",\n    grpc: \"off\",\n    http2Origin: \"off\",\n    smartRouting: \"off\",\n    uploadMaxFilesize: \"100\",\n    ruleName: \"network_optimization\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=f\"gositecdn-{default_integer['result']}.cn\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_network_optimization = alicloud.esa.NetworkOptimization(\"default\",\n    site_version=0,\n    site_id=default_site.id,\n    rule_enable=\"on\",\n    websocket=\"off\",\n    rule=\"(http.host eq \\\"tf.example.com\\\")\",\n    grpc=\"off\",\n    http2_origin=\"off\",\n    smart_routing=\"off\",\n    upload_max_filesize=\"100\",\n    rule_name=\"network_optimization\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = $\"gositecdn-{defaultInteger.Result}.cn\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultNetworkOptimization = new AliCloud.Esa.NetworkOptimization(\"default\", new()\n    {\n        SiteVersion = 0,\n        SiteId = defaultSite.Id,\n        RuleEnable = \"on\",\n        Websocket = \"off\",\n        Rule = \"(http.host eq \\\"tf.example.com\\\")\",\n        Grpc = \"off\",\n        Http2Origin = \"off\",\n        SmartRouting = \"off\",\n        UploadMaxFilesize = \"100\",\n        RuleName = \"network_optimization\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.Sprintf(\"gositecdn-%v.cn\", defaultInteger.Result),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewNetworkOptimization(ctx, \"default\", \u0026esa.NetworkOptimizationArgs{\n\t\t\tSiteVersion:       pulumi.Int(0),\n\t\t\tSiteId:            defaultSite.ID(),\n\t\t\tRuleEnable:        pulumi.String(\"on\"),\n\t\t\tWebsocket:         pulumi.String(\"off\"),\n\t\t\tRule:              pulumi.String(\"(http.host eq \\\"tf.example.com\\\")\"),\n\t\t\tGrpc:              pulumi.String(\"off\"),\n\t\t\tHttp2Origin:       pulumi.String(\"off\"),\n\t\t\tSmartRouting:      pulumi.String(\"off\"),\n\t\t\tUploadMaxFilesize: pulumi.String(\"100\"),\n\t\t\tRuleName:          pulumi.String(\"network_optimization\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.NetworkOptimization;\nimport com.pulumi.alicloud.esa.NetworkOptimizationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(String.format(\"gositecdn-%s.cn\", defaultInteger.result()))\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultNetworkOptimization = new NetworkOptimization(\"defaultNetworkOptimization\", NetworkOptimizationArgs.builder()\n            .siteVersion(0)\n            .siteId(defaultSite.id())\n            .ruleEnable(\"on\")\n            .websocket(\"off\")\n            .rule(\"(http.host eq \\\"tf.example.com\\\")\")\n            .grpc(\"off\")\n            .http2Origin(\"off\")\n            .smartRouting(\"off\")\n            .uploadMaxFilesize(\"100\")\n            .ruleName(\"network_optimization\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: gositecdn-${defaultInteger.result}.cn\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  defaultNetworkOptimization:\n    type: alicloud:esa:NetworkOptimization\n    name: default\n    properties:\n      siteVersion: '0'\n      siteId: ${defaultSite.id}\n      ruleEnable: on\n      websocket: off\n      rule: (http.host eq \"tf.example.com\")\n      grpc: off\n      http2Origin: off\n      smartRouting: off\n      uploadMaxFilesize: '100'\n      ruleName: network_optimization\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Network Optimization can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/networkOptimization:NetworkOptimization example \u003csite_id\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"configId":{"type":"integer","description":"ConfigId of the configuration, which can be obtained by calling the ListNetworkOptimizations.\n"},"grpc":{"type":"string","description":"Whether to enable GRPC, default is disabled. Value range:\n"},"http2Origin":{"type":"string","description":"Whether to enable HTTP2 origin, default is disabled. Value range:\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"Site ID.\n"},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n"},"smartRouting":{"type":"string","description":"Whether to enable smart routing service, default is disabled. Value range:\n"},"uploadMaxFilesize":{"type":"string","description":"Maximum upload file size, in MB, value range: 100～500.\n"},"websocket":{"type":"string","description":"Whether to enable Websocket, default is enabled. Value range:\n"}},"required":["configId","sequence","siteId"],"inputProperties":{"grpc":{"type":"string","description":"Whether to enable GRPC, default is disabled. Value range:\n"},"http2Origin":{"type":"string","description":"Whether to enable HTTP2 origin, default is disabled. Value range:\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"Site ID.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true},"smartRouting":{"type":"string","description":"Whether to enable smart routing service, default is disabled. Value range:\n"},"uploadMaxFilesize":{"type":"string","description":"Maximum upload file size, in MB, value range: 100～500.\n"},"websocket":{"type":"string","description":"Whether to enable Websocket, default is enabled. Value range:\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkOptimization resources.\n","properties":{"configId":{"type":"integer","description":"ConfigId of the configuration, which can be obtained by calling the ListNetworkOptimizations.\n"},"grpc":{"type":"string","description":"Whether to enable GRPC, default is disabled. Value range:\n"},"http2Origin":{"type":"string","description":"Whether to enable HTTP2 origin, default is disabled. Value range:\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"Site ID.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true},"smartRouting":{"type":"string","description":"Whether to enable smart routing service, default is disabled. Value range:\n"},"uploadMaxFilesize":{"type":"string","description":"Maximum upload file size, in MB, value range: 100～500.\n"},"websocket":{"type":"string","description":"Whether to enable Websocket, default is enabled. Value range:\n"}},"type":"object"}},"alicloud:esa/originCaCertificate:OriginCaCertificate":{"description":"Provides a ESA Origin Ca Certificate resource.\n\n\n\nFor information about ESA Origin Ca Certificate and how to use it, see [What is Origin Ca Certificate](https://next.api.alibabacloud.com/document/ESA/2024-09-10/UploadOriginCaCertificate).\n\n\u003e **NOTE:** Available since v1.256.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst example = new alicloud.esa.Site(\"example\", {\n    siteName: \"bcd.com\",\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultOriginCaCertificate = new alicloud.esa.OriginCaCertificate(\"default\", {\n    siteId: example.id,\n    certificate: `-----BEGIN CERTIFICATE-----\nMIIDRTCCAi2gAwIBAgIUHRPTIPKP2zN9on/NCzBe0BV68UUwDQYJKoZIhvcNAQEF\nBQAwMzEPMA0GA1UEAwwGU1NMZXllMRMwEQYDVQQKDApTU0xleWUgSW5jMQswCQYD\nVQQGEwJDTjAeFw0yNTA3MzAwODQzMDBaFw0yNTEyMzEwODQwMDBaMGQxCzAJBgNV\nBAYTAkNOMQ8wDQYDVQQIDAbljJfkuqwxEDAOBgNVBAcMB0JlaWppbmcxGzAZBgNV\nBAoMEuenkeaKgOaciemZkOWFrOWPuDEVMBMGA1UEAwwMZ29zaXRlY2RuLmNuMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtu2oW3t2bj9LsFnXj1C2EmaR\nJYJwNgHsTBKl3DxeL2+Ext0qN2Z+UgTqYM1c1HOdwN9x13pnAVe4PmiLAkxpp/4u\n5gKsH1+6p3aXFUk0NvEoLXfESoQpyvoB0o/8oryxNs3+iUfvAk+a7IKAr99a1P9F\nTkpyE6t+dgSLYhHc49ZRdYImmZcYQLmpygYOwWBdv6hlQUFi/tvX16fRZ0GgyUOK\n7xsTWG6qUhPJyLRtj9zn+0khgh5DJhfJQ4KTWZMX63UPiIx7sPu9sR+TPWqJsEuq\nVipxouMys+NNMjDtn55+PE6/sDbkvULHeFUglGMZ9qHcl3ej31zmkhu6bmvNcQID\nAQABoyAwHjALBgNVHREEBDACggAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B\nAQUFAAOCAQEAF6J9TdaDYQ96EaWvb2ttQ6jNrDe4k3t1cdfhPEWMJzxZFxoDBYZ2\nAl9vB2JICEsGDkCwpqYz2UXJsGnq2rHjUxouYo1568K/loownWjwdCgdLGbQpnXY\nQeqPSTRLT71ikH+RqCpoYxcN63i3j9oYWm9KoD5F4arcqlLrEUZ1TqW5csGSY1h6\n2HmGPsINl9KCxwUS+76dxsdHIqLFx0qdnD6S5vmd0sin33jdYhj9ltp0KvhEgMvS\nXMuzECVRvI4MZxebf7gkV3EByqV6XvazBSxuMhplygpAaLra11yV1M/m9wzVwlnS\nS2GNvRkNym9WnH0IQ0kn9hS8hj52Nh12JQ==\n-----END CERTIFICATE-----`,\n    name: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\nexample = alicloud.esa.Site(\"example\",\n    site_name=\"bcd.com\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_origin_ca_certificate = alicloud.esa.OriginCaCertificate(\"default\",\n    site_id=example.id,\n    certificate=\"\"\"-----BEGIN CERTIFICATE-----\nMIIDRTCCAi2gAwIBAgIUHRPTIPKP2zN9on/NCzBe0BV68UUwDQYJKoZIhvcNAQEF\nBQAwMzEPMA0GA1UEAwwGU1NMZXllMRMwEQYDVQQKDApTU0xleWUgSW5jMQswCQYD\nVQQGEwJDTjAeFw0yNTA3MzAwODQzMDBaFw0yNTEyMzEwODQwMDBaMGQxCzAJBgNV\nBAYTAkNOMQ8wDQYDVQQIDAbljJfkuqwxEDAOBgNVBAcMB0JlaWppbmcxGzAZBgNV\nBAoMEuenkeaKgOaciemZkOWFrOWPuDEVMBMGA1UEAwwMZ29zaXRlY2RuLmNuMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtu2oW3t2bj9LsFnXj1C2EmaR\nJYJwNgHsTBKl3DxeL2+Ext0qN2Z+UgTqYM1c1HOdwN9x13pnAVe4PmiLAkxpp/4u\n5gKsH1+6p3aXFUk0NvEoLXfESoQpyvoB0o/8oryxNs3+iUfvAk+a7IKAr99a1P9F\nTkpyE6t+dgSLYhHc49ZRdYImmZcYQLmpygYOwWBdv6hlQUFi/tvX16fRZ0GgyUOK\n7xsTWG6qUhPJyLRtj9zn+0khgh5DJhfJQ4KTWZMX63UPiIx7sPu9sR+TPWqJsEuq\nVipxouMys+NNMjDtn55+PE6/sDbkvULHeFUglGMZ9qHcl3ej31zmkhu6bmvNcQID\nAQABoyAwHjALBgNVHREEBDACggAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B\nAQUFAAOCAQEAF6J9TdaDYQ96EaWvb2ttQ6jNrDe4k3t1cdfhPEWMJzxZFxoDBYZ2\nAl9vB2JICEsGDkCwpqYz2UXJsGnq2rHjUxouYo1568K/loownWjwdCgdLGbQpnXY\nQeqPSTRLT71ikH+RqCpoYxcN63i3j9oYWm9KoD5F4arcqlLrEUZ1TqW5csGSY1h6\n2HmGPsINl9KCxwUS+76dxsdHIqLFx0qdnD6S5vmd0sin33jdYhj9ltp0KvhEgMvS\nXMuzECVRvI4MZxebf7gkV3EByqV6XvazBSxuMhplygpAaLra11yV1M/m9wzVwlnS\nS2GNvRkNym9WnH0IQ0kn9hS8hj52Nh12JQ==\n-----END CERTIFICATE-----\"\"\",\n    name=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var example = new AliCloud.Esa.Site(\"example\", new()\n    {\n        SiteName = \"bcd.com\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultOriginCaCertificate = new AliCloud.Esa.OriginCaCertificate(\"default\", new()\n    {\n        SiteId = example.Id,\n        Certificate = @\"-----BEGIN CERTIFICATE-----\nMIIDRTCCAi2gAwIBAgIUHRPTIPKP2zN9on/NCzBe0BV68UUwDQYJKoZIhvcNAQEF\nBQAwMzEPMA0GA1UEAwwGU1NMZXllMRMwEQYDVQQKDApTU0xleWUgSW5jMQswCQYD\nVQQGEwJDTjAeFw0yNTA3MzAwODQzMDBaFw0yNTEyMzEwODQwMDBaMGQxCzAJBgNV\nBAYTAkNOMQ8wDQYDVQQIDAbljJfkuqwxEDAOBgNVBAcMB0JlaWppbmcxGzAZBgNV\nBAoMEuenkeaKgOaciemZkOWFrOWPuDEVMBMGA1UEAwwMZ29zaXRlY2RuLmNuMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtu2oW3t2bj9LsFnXj1C2EmaR\nJYJwNgHsTBKl3DxeL2+Ext0qN2Z+UgTqYM1c1HOdwN9x13pnAVe4PmiLAkxpp/4u\n5gKsH1+6p3aXFUk0NvEoLXfESoQpyvoB0o/8oryxNs3+iUfvAk+a7IKAr99a1P9F\nTkpyE6t+dgSLYhHc49ZRdYImmZcYQLmpygYOwWBdv6hlQUFi/tvX16fRZ0GgyUOK\n7xsTWG6qUhPJyLRtj9zn+0khgh5DJhfJQ4KTWZMX63UPiIx7sPu9sR+TPWqJsEuq\nVipxouMys+NNMjDtn55+PE6/sDbkvULHeFUglGMZ9qHcl3ej31zmkhu6bmvNcQID\nAQABoyAwHjALBgNVHREEBDACggAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B\nAQUFAAOCAQEAF6J9TdaDYQ96EaWvb2ttQ6jNrDe4k3t1cdfhPEWMJzxZFxoDBYZ2\nAl9vB2JICEsGDkCwpqYz2UXJsGnq2rHjUxouYo1568K/loownWjwdCgdLGbQpnXY\nQeqPSTRLT71ikH+RqCpoYxcN63i3j9oYWm9KoD5F4arcqlLrEUZ1TqW5csGSY1h6\n2HmGPsINl9KCxwUS+76dxsdHIqLFx0qdnD6S5vmd0sin33jdYhj9ltp0KvhEgMvS\nXMuzECVRvI4MZxebf7gkV3EByqV6XvazBSxuMhplygpAaLra11yV1M/m9wzVwlnS\nS2GNvRkNym9WnH0IQ0kn9hS8hj52Nh12JQ==\n-----END CERTIFICATE-----\",\n        Name = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := esa.NewSite(ctx, \"example\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"bcd.com\"),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewOriginCaCertificate(ctx, \"default\", \u0026esa.OriginCaCertificateArgs{\n\t\t\tSiteId: example.ID(),\n\t\t\tCertificate: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIDRTCCAi2gAwIBAgIUHRPTIPKP2zN9on/NCzBe0BV68UUwDQYJKoZIhvcNAQEF\nBQAwMzEPMA0GA1UEAwwGU1NMZXllMRMwEQYDVQQKDApTU0xleWUgSW5jMQswCQYD\nVQQGEwJDTjAeFw0yNTA3MzAwODQzMDBaFw0yNTEyMzEwODQwMDBaMGQxCzAJBgNV\nBAYTAkNOMQ8wDQYDVQQIDAbljJfkuqwxEDAOBgNVBAcMB0JlaWppbmcxGzAZBgNV\nBAoMEuenkeaKgOaciemZkOWFrOWPuDEVMBMGA1UEAwwMZ29zaXRlY2RuLmNuMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtu2oW3t2bj9LsFnXj1C2EmaR\nJYJwNgHsTBKl3DxeL2+Ext0qN2Z+UgTqYM1c1HOdwN9x13pnAVe4PmiLAkxpp/4u\n5gKsH1+6p3aXFUk0NvEoLXfESoQpyvoB0o/8oryxNs3+iUfvAk+a7IKAr99a1P9F\nTkpyE6t+dgSLYhHc49ZRdYImmZcYQLmpygYOwWBdv6hlQUFi/tvX16fRZ0GgyUOK\n7xsTWG6qUhPJyLRtj9zn+0khgh5DJhfJQ4KTWZMX63UPiIx7sPu9sR+TPWqJsEuq\nVipxouMys+NNMjDtn55+PE6/sDbkvULHeFUglGMZ9qHcl3ej31zmkhu6bmvNcQID\nAQABoyAwHjALBgNVHREEBDACggAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B\nAQUFAAOCAQEAF6J9TdaDYQ96EaWvb2ttQ6jNrDe4k3t1cdfhPEWMJzxZFxoDBYZ2\nAl9vB2JICEsGDkCwpqYz2UXJsGnq2rHjUxouYo1568K/loownWjwdCgdLGbQpnXY\nQeqPSTRLT71ikH+RqCpoYxcN63i3j9oYWm9KoD5F4arcqlLrEUZ1TqW5csGSY1h6\n2HmGPsINl9KCxwUS+76dxsdHIqLFx0qdnD6S5vmd0sin33jdYhj9ltp0KvhEgMvS\nXMuzECVRvI4MZxebf7gkV3EByqV6XvazBSxuMhplygpAaLra11yV1M/m9wzVwlnS\nS2GNvRkNym9WnH0IQ0kn9hS8hj52Nh12JQ==\n-----END CERTIFICATE-----`),\n\t\t\tName: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.OriginCaCertificate;\nimport com.pulumi.alicloud.esa.OriginCaCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var example = new Site(\"example\", SiteArgs.builder()\n            .siteName(\"bcd.com\")\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultOriginCaCertificate = new OriginCaCertificate(\"defaultOriginCaCertificate\", OriginCaCertificateArgs.builder()\n            .siteId(example.id())\n            .certificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIDRTCCAi2gAwIBAgIUHRPTIPKP2zN9on/NCzBe0BV68UUwDQYJKoZIhvcNAQEF\nBQAwMzEPMA0GA1UEAwwGU1NMZXllMRMwEQYDVQQKDApTU0xleWUgSW5jMQswCQYD\nVQQGEwJDTjAeFw0yNTA3MzAwODQzMDBaFw0yNTEyMzEwODQwMDBaMGQxCzAJBgNV\nBAYTAkNOMQ8wDQYDVQQIDAbljJfkuqwxEDAOBgNVBAcMB0JlaWppbmcxGzAZBgNV\nBAoMEuenkeaKgOaciemZkOWFrOWPuDEVMBMGA1UEAwwMZ29zaXRlY2RuLmNuMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtu2oW3t2bj9LsFnXj1C2EmaR\nJYJwNgHsTBKl3DxeL2+Ext0qN2Z+UgTqYM1c1HOdwN9x13pnAVe4PmiLAkxpp/4u\n5gKsH1+6p3aXFUk0NvEoLXfESoQpyvoB0o/8oryxNs3+iUfvAk+a7IKAr99a1P9F\nTkpyE6t+dgSLYhHc49ZRdYImmZcYQLmpygYOwWBdv6hlQUFi/tvX16fRZ0GgyUOK\n7xsTWG6qUhPJyLRtj9zn+0khgh5DJhfJQ4KTWZMX63UPiIx7sPu9sR+TPWqJsEuq\nVipxouMys+NNMjDtn55+PE6/sDbkvULHeFUglGMZ9qHcl3ej31zmkhu6bmvNcQID\nAQABoyAwHjALBgNVHREEBDACggAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B\nAQUFAAOCAQEAF6J9TdaDYQ96EaWvb2ttQ6jNrDe4k3t1cdfhPEWMJzxZFxoDBYZ2\nAl9vB2JICEsGDkCwpqYz2UXJsGnq2rHjUxouYo1568K/loownWjwdCgdLGbQpnXY\nQeqPSTRLT71ikH+RqCpoYxcN63i3j9oYWm9KoD5F4arcqlLrEUZ1TqW5csGSY1h6\n2HmGPsINl9KCxwUS+76dxsdHIqLFx0qdnD6S5vmd0sin33jdYhj9ltp0KvhEgMvS\nXMuzECVRvI4MZxebf7gkV3EByqV6XvazBSxuMhplygpAaLra11yV1M/m9wzVwlnS\nS2GNvRkNym9WnH0IQ0kn9hS8hj52Nh12JQ==\n-----END CERTIFICATE-----            \"\"\")\n            .name(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  example:\n    type: alicloud:esa:Site\n    properties:\n      siteName: bcd.com\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  defaultOriginCaCertificate:\n    type: alicloud:esa:OriginCaCertificate\n    name: default\n    properties:\n      siteId: ${example.id}\n      certificate: |-\n        -----BEGIN CERTIFICATE-----\n        MIIDRTCCAi2gAwIBAgIUHRPTIPKP2zN9on/NCzBe0BV68UUwDQYJKoZIhvcNAQEF\n        BQAwMzEPMA0GA1UEAwwGU1NMZXllMRMwEQYDVQQKDApTU0xleWUgSW5jMQswCQYD\n        VQQGEwJDTjAeFw0yNTA3MzAwODQzMDBaFw0yNTEyMzEwODQwMDBaMGQxCzAJBgNV\n        BAYTAkNOMQ8wDQYDVQQIDAbljJfkuqwxEDAOBgNVBAcMB0JlaWppbmcxGzAZBgNV\n        BAoMEuenkeaKgOaciemZkOWFrOWPuDEVMBMGA1UEAwwMZ29zaXRlY2RuLmNuMIIB\n        IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtu2oW3t2bj9LsFnXj1C2EmaR\n        JYJwNgHsTBKl3DxeL2+Ext0qN2Z+UgTqYM1c1HOdwN9x13pnAVe4PmiLAkxpp/4u\n        5gKsH1+6p3aXFUk0NvEoLXfESoQpyvoB0o/8oryxNs3+iUfvAk+a7IKAr99a1P9F\n        TkpyE6t+dgSLYhHc49ZRdYImmZcYQLmpygYOwWBdv6hlQUFi/tvX16fRZ0GgyUOK\n        7xsTWG6qUhPJyLRtj9zn+0khgh5DJhfJQ4KTWZMX63UPiIx7sPu9sR+TPWqJsEuq\n        VipxouMys+NNMjDtn55+PE6/sDbkvULHeFUglGMZ9qHcl3ej31zmkhu6bmvNcQID\n        AQABoyAwHjALBgNVHREEBDACggAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B\n        AQUFAAOCAQEAF6J9TdaDYQ96EaWvb2ttQ6jNrDe4k3t1cdfhPEWMJzxZFxoDBYZ2\n        Al9vB2JICEsGDkCwpqYz2UXJsGnq2rHjUxouYo1568K/loownWjwdCgdLGbQpnXY\n        QeqPSTRLT71ikH+RqCpoYxcN63i3j9oYWm9KoD5F4arcqlLrEUZ1TqW5csGSY1h6\n        2HmGPsINl9KCxwUS+76dxsdHIqLFx0qdnD6S5vmd0sin33jdYhj9ltp0KvhEgMvS\n        XMuzECVRvI4MZxebf7gkV3EByqV6XvazBSxuMhplygpAaLra11yV1M/m9wzVwlnS\n        S2GNvRkNym9WnH0IQ0kn9hS8hj52Nh12JQ==\n        -----END CERTIFICATE-----\n      name: example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Origin Ca Certificate can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/originCaCertificate:OriginCaCertificate example \u003csite_id\u003e:\u003corigin_ca_certificate_id\u003e\n```\n\n","properties":{"certificate":{"type":"string","description":"Certificate content.\n"},"createTime":{"type":"string","description":"Creation time.\n"},"name":{"type":"string","description":"The certificate name.\n"},"originCaCertificateId":{"type":"string","description":"OriginCaCertificate Id\n"},"siteId":{"type":"string","description":"Site Id\n"},"status":{"type":"string","description":"Certificate status.\n"}},"required":["certificate","createTime","name","originCaCertificateId","siteId","status"],"inputProperties":{"certificate":{"type":"string","description":"Certificate content.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The certificate name.\n","willReplaceOnChanges":true},"siteId":{"type":"string","description":"Site Id\n","willReplaceOnChanges":true}},"requiredInputs":["certificate","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering OriginCaCertificate resources.\n","properties":{"certificate":{"type":"string","description":"Certificate content.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"Creation time.\n"},"name":{"type":"string","description":"The certificate name.\n","willReplaceOnChanges":true},"originCaCertificateId":{"type":"string","description":"OriginCaCertificate Id\n"},"siteId":{"type":"string","description":"Site Id\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Certificate status.\n"}},"type":"object"}},"alicloud:esa/originClientCertificate:OriginClientCertificate":{"description":"Provides a ESA Origin Client Certificate resource.\n\n\n\nFor information about ESA Origin Client Certificate and how to use it, see [What is Origin Client Certificate](https://next.api.alibabacloud.com/document/ESA/2024-09-10/UploadOriginClientCertificate).\n\n\u003e **NOTE:** Available since v1.255.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst resourceSiteOriginClientCertificateExample = new alicloud.esa.Site(\"resource_Site_OriginClientCertificate_example\", {\n    siteName: \"chenxin0116.site\",\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultOriginClientCertificate = new alicloud.esa.OriginClientCertificate(\"default\", {\n    siteId: resourceSiteOriginClientCertificateExample.id,\n    privateKey: `-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC+7dgpkQifIqzOU6KNkFRjZtMZOoN7/ihNf/BrYcPhLQSkcPOf\nUsTP/qvH0u965GnYFiAoK3uWGQo9aCBuoawRFKNBa9ZpJVyVbamBWTBQ/Fxsforq\n9jJNR7OWA3fxvDxgwyEkv0qsnh1zaOkjyUlxFYwDiFxZ1/RHAj/SABCubQIDAQAB\nAoGADiobBUprN1MdOtldj98LQ6yXMKH0qzg5yTYaofzIyWXLmF+A02sSitO77sEp\nXxae+5b4n8JKEuKcrd2RumNoHmN47iLQ0M2eodjUQ96kzm5Esq6nln62/NF5KLuK\nJDw63nTsg6K0O+gQZv4SYjZAL3cswSmeQmvmcoNgArfcaoECQQDgYy6S91ZIUsLx\n6BB3tW+x7APYnvKysYbcKUEP8AutZSo4hdMfPQkOD0LwP5dWsrNippDWjNDiPZmt\nVKuZDoDdAkEA2dPxy1eQeJsRYTZmTWIuh3UY9xlL3G9skcSOM4LbFidroHWW9UDJ\nJDSSEMH2+/4quYTdPr28cj7RCjqL0brC0QJABXDCL1QJ5oUDLwRWaeCfTawQR89K\nySRexbXGWxGR5uleBbLQ9J/xOUMLd3HDRJnemZS6TElrwyCFOlukMXjVjQJBALr5\nQC0opmu/vzVQepOl2QaQrrM7VXCLfAfLTbxNcD0d7TY4eTFfQMgBD/euZpB65LWF\npFs8hcsSvGApTObjhmECQEydB1zzjU6kH171XlXCtRFnbORu2IB7rMsDP2CBPHyR\ntYBjBNVHIUGcmrMVFX4LeMuvvmUyzwfgLmLchHxbDP8=\n-----END RSA PRIVATE KEY-----\n`,\n    hostnames: [\n        \"www.example1.com\",\n        \"www.example2.com\",\n        \"www.example3.com\",\n    ],\n    originClientCertificateName: \"exampleCertificate\",\n    certificate: `-----BEGIN CERTIFICATE-----\nMIICQTCCAaoCCQCFfdyqahygLzANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJj\nbjEQMA4GA1UECAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwI\nYWxpY2xvdWQxEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwHhcNMjAw\nODA2MTAwMDAyWhcNMzAwODA0MTAwMDAyWjBlMQswCQYDVQQGEwJjbjEQMA4GA1UE\nCAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwIYWxpY2xvdWQx\nEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwgZ8wDQYJKoZIhvcNAQEB\nBQADgY0AMIGJAoGBAL7t2CmRCJ8irM5Too2QVGNm0xk6g3v+KE1/8Gthw+EtBKRw\n859SxM/+q8fS73rkadgWICgre5YZCj1oIG6hrBEUo0Fr1mklXJVtqYFZMFD8XGx+\niur2Mk1Hs5YDd/G8PGDDISS/SqyeHXNo6SPJSXEVjAOIXFnX9EcCP9IAEK5tAgMB\nAAEwDQYJKoZIhvcNAQEFBQADgYEAavYdM9s5jLFP9/ZPCrsRuRsjSJpe5y9VZL+1\n+Ebbw16V0xMYaqODyFH1meLRW/A4xUs15Ny2vLYOW15Mriif7Sixty3HUedBFa4l\ny6/gQ+mBEeZYzMaTTFgyzEZDMsfZxwV9GKfhOzAmK3jZ2LDpHIhnlJN4WwVf0lME\npCPDN7g=\n-----END CERTIFICATE-----\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\nresource_site_origin_client_certificate_example = alicloud.esa.Site(\"resource_Site_OriginClientCertificate_example\",\n    site_name=\"chenxin0116.site\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_origin_client_certificate = alicloud.esa.OriginClientCertificate(\"default\",\n    site_id=resource_site_origin_client_certificate_example.id,\n    private_key=\"\"\"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC+7dgpkQifIqzOU6KNkFRjZtMZOoN7/ihNf/BrYcPhLQSkcPOf\nUsTP/qvH0u965GnYFiAoK3uWGQo9aCBuoawRFKNBa9ZpJVyVbamBWTBQ/Fxsforq\n9jJNR7OWA3fxvDxgwyEkv0qsnh1zaOkjyUlxFYwDiFxZ1/RHAj/SABCubQIDAQAB\nAoGADiobBUprN1MdOtldj98LQ6yXMKH0qzg5yTYaofzIyWXLmF+A02sSitO77sEp\nXxae+5b4n8JKEuKcrd2RumNoHmN47iLQ0M2eodjUQ96kzm5Esq6nln62/NF5KLuK\nJDw63nTsg6K0O+gQZv4SYjZAL3cswSmeQmvmcoNgArfcaoECQQDgYy6S91ZIUsLx\n6BB3tW+x7APYnvKysYbcKUEP8AutZSo4hdMfPQkOD0LwP5dWsrNippDWjNDiPZmt\nVKuZDoDdAkEA2dPxy1eQeJsRYTZmTWIuh3UY9xlL3G9skcSOM4LbFidroHWW9UDJ\nJDSSEMH2+/4quYTdPr28cj7RCjqL0brC0QJABXDCL1QJ5oUDLwRWaeCfTawQR89K\nySRexbXGWxGR5uleBbLQ9J/xOUMLd3HDRJnemZS6TElrwyCFOlukMXjVjQJBALr5\nQC0opmu/vzVQepOl2QaQrrM7VXCLfAfLTbxNcD0d7TY4eTFfQMgBD/euZpB65LWF\npFs8hcsSvGApTObjhmECQEydB1zzjU6kH171XlXCtRFnbORu2IB7rMsDP2CBPHyR\ntYBjBNVHIUGcmrMVFX4LeMuvvmUyzwfgLmLchHxbDP8=\n-----END RSA PRIVATE KEY-----\n\"\"\",\n    hostnames=[\n        \"www.example1.com\",\n        \"www.example2.com\",\n        \"www.example3.com\",\n    ],\n    origin_client_certificate_name=\"exampleCertificate\",\n    certificate=\"\"\"-----BEGIN CERTIFICATE-----\nMIICQTCCAaoCCQCFfdyqahygLzANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJj\nbjEQMA4GA1UECAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwI\nYWxpY2xvdWQxEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwHhcNMjAw\nODA2MTAwMDAyWhcNMzAwODA0MTAwMDAyWjBlMQswCQYDVQQGEwJjbjEQMA4GA1UE\nCAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwIYWxpY2xvdWQx\nEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwgZ8wDQYJKoZIhvcNAQEB\nBQADgY0AMIGJAoGBAL7t2CmRCJ8irM5Too2QVGNm0xk6g3v+KE1/8Gthw+EtBKRw\n859SxM/+q8fS73rkadgWICgre5YZCj1oIG6hrBEUo0Fr1mklXJVtqYFZMFD8XGx+\niur2Mk1Hs5YDd/G8PGDDISS/SqyeHXNo6SPJSXEVjAOIXFnX9EcCP9IAEK5tAgMB\nAAEwDQYJKoZIhvcNAQEFBQADgYEAavYdM9s5jLFP9/ZPCrsRuRsjSJpe5y9VZL+1\n+Ebbw16V0xMYaqODyFH1meLRW/A4xUs15Ny2vLYOW15Mriif7Sixty3HUedBFa4l\ny6/gQ+mBEeZYzMaTTFgyzEZDMsfZxwV9GKfhOzAmK3jZ2LDpHIhnlJN4WwVf0lME\npCPDN7g=\n-----END CERTIFICATE-----\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var resourceSiteOriginClientCertificateExample = new AliCloud.Esa.Site(\"resource_Site_OriginClientCertificate_example\", new()\n    {\n        SiteName = \"chenxin0116.site\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultOriginClientCertificate = new AliCloud.Esa.OriginClientCertificate(\"default\", new()\n    {\n        SiteId = resourceSiteOriginClientCertificateExample.Id,\n        PrivateKey = @\"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC+7dgpkQifIqzOU6KNkFRjZtMZOoN7/ihNf/BrYcPhLQSkcPOf\nUsTP/qvH0u965GnYFiAoK3uWGQo9aCBuoawRFKNBa9ZpJVyVbamBWTBQ/Fxsforq\n9jJNR7OWA3fxvDxgwyEkv0qsnh1zaOkjyUlxFYwDiFxZ1/RHAj/SABCubQIDAQAB\nAoGADiobBUprN1MdOtldj98LQ6yXMKH0qzg5yTYaofzIyWXLmF+A02sSitO77sEp\nXxae+5b4n8JKEuKcrd2RumNoHmN47iLQ0M2eodjUQ96kzm5Esq6nln62/NF5KLuK\nJDw63nTsg6K0O+gQZv4SYjZAL3cswSmeQmvmcoNgArfcaoECQQDgYy6S91ZIUsLx\n6BB3tW+x7APYnvKysYbcKUEP8AutZSo4hdMfPQkOD0LwP5dWsrNippDWjNDiPZmt\nVKuZDoDdAkEA2dPxy1eQeJsRYTZmTWIuh3UY9xlL3G9skcSOM4LbFidroHWW9UDJ\nJDSSEMH2+/4quYTdPr28cj7RCjqL0brC0QJABXDCL1QJ5oUDLwRWaeCfTawQR89K\nySRexbXGWxGR5uleBbLQ9J/xOUMLd3HDRJnemZS6TElrwyCFOlukMXjVjQJBALr5\nQC0opmu/vzVQepOl2QaQrrM7VXCLfAfLTbxNcD0d7TY4eTFfQMgBD/euZpB65LWF\npFs8hcsSvGApTObjhmECQEydB1zzjU6kH171XlXCtRFnbORu2IB7rMsDP2CBPHyR\ntYBjBNVHIUGcmrMVFX4LeMuvvmUyzwfgLmLchHxbDP8=\n-----END RSA PRIVATE KEY-----\n\",\n        Hostnames = new[]\n        {\n            \"www.example1.com\",\n            \"www.example2.com\",\n            \"www.example3.com\",\n        },\n        OriginClientCertificateName = \"exampleCertificate\",\n        Certificate = @\"-----BEGIN CERTIFICATE-----\nMIICQTCCAaoCCQCFfdyqahygLzANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJj\nbjEQMA4GA1UECAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwI\nYWxpY2xvdWQxEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwHhcNMjAw\nODA2MTAwMDAyWhcNMzAwODA0MTAwMDAyWjBlMQswCQYDVQQGEwJjbjEQMA4GA1UE\nCAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwIYWxpY2xvdWQx\nEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwgZ8wDQYJKoZIhvcNAQEB\nBQADgY0AMIGJAoGBAL7t2CmRCJ8irM5Too2QVGNm0xk6g3v+KE1/8Gthw+EtBKRw\n859SxM/+q8fS73rkadgWICgre5YZCj1oIG6hrBEUo0Fr1mklXJVtqYFZMFD8XGx+\niur2Mk1Hs5YDd/G8PGDDISS/SqyeHXNo6SPJSXEVjAOIXFnX9EcCP9IAEK5tAgMB\nAAEwDQYJKoZIhvcNAQEFBQADgYEAavYdM9s5jLFP9/ZPCrsRuRsjSJpe5y9VZL+1\n+Ebbw16V0xMYaqODyFH1meLRW/A4xUs15Ny2vLYOW15Mriif7Sixty3HUedBFa4l\ny6/gQ+mBEeZYzMaTTFgyzEZDMsfZxwV9GKfhOzAmK3jZ2LDpHIhnlJN4WwVf0lME\npCPDN7g=\n-----END CERTIFICATE-----\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresourceSiteOriginClientCertificateExample, err := esa.NewSite(ctx, \"resource_Site_OriginClientCertificate_example\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"chenxin0116.site\"),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewOriginClientCertificate(ctx, \"default\", \u0026esa.OriginClientCertificateArgs{\n\t\t\tSiteId: resourceSiteOriginClientCertificateExample.ID(),\n\t\t\tPrivateKey: pulumi.String(`-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC+7dgpkQifIqzOU6KNkFRjZtMZOoN7/ihNf/BrYcPhLQSkcPOf\nUsTP/qvH0u965GnYFiAoK3uWGQo9aCBuoawRFKNBa9ZpJVyVbamBWTBQ/Fxsforq\n9jJNR7OWA3fxvDxgwyEkv0qsnh1zaOkjyUlxFYwDiFxZ1/RHAj/SABCubQIDAQAB\nAoGADiobBUprN1MdOtldj98LQ6yXMKH0qzg5yTYaofzIyWXLmF+A02sSitO77sEp\nXxae+5b4n8JKEuKcrd2RumNoHmN47iLQ0M2eodjUQ96kzm5Esq6nln62/NF5KLuK\nJDw63nTsg6K0O+gQZv4SYjZAL3cswSmeQmvmcoNgArfcaoECQQDgYy6S91ZIUsLx\n6BB3tW+x7APYnvKysYbcKUEP8AutZSo4hdMfPQkOD0LwP5dWsrNippDWjNDiPZmt\nVKuZDoDdAkEA2dPxy1eQeJsRYTZmTWIuh3UY9xlL3G9skcSOM4LbFidroHWW9UDJ\nJDSSEMH2+/4quYTdPr28cj7RCjqL0brC0QJABXDCL1QJ5oUDLwRWaeCfTawQR89K\nySRexbXGWxGR5uleBbLQ9J/xOUMLd3HDRJnemZS6TElrwyCFOlukMXjVjQJBALr5\nQC0opmu/vzVQepOl2QaQrrM7VXCLfAfLTbxNcD0d7TY4eTFfQMgBD/euZpB65LWF\npFs8hcsSvGApTObjhmECQEydB1zzjU6kH171XlXCtRFnbORu2IB7rMsDP2CBPHyR\ntYBjBNVHIUGcmrMVFX4LeMuvvmUyzwfgLmLchHxbDP8=\n-----END RSA PRIVATE KEY-----\n`),\n\t\t\tHostnames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"www.example1.com\"),\n\t\t\t\tpulumi.String(\"www.example2.com\"),\n\t\t\t\tpulumi.String(\"www.example3.com\"),\n\t\t\t},\n\t\t\tOriginClientCertificateName: pulumi.String(\"exampleCertificate\"),\n\t\t\tCertificate: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIICQTCCAaoCCQCFfdyqahygLzANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJj\nbjEQMA4GA1UECAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwI\nYWxpY2xvdWQxEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwHhcNMjAw\nODA2MTAwMDAyWhcNMzAwODA0MTAwMDAyWjBlMQswCQYDVQQGEwJjbjEQMA4GA1UE\nCAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwIYWxpY2xvdWQx\nEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwgZ8wDQYJKoZIhvcNAQEB\nBQADgY0AMIGJAoGBAL7t2CmRCJ8irM5Too2QVGNm0xk6g3v+KE1/8Gthw+EtBKRw\n859SxM/+q8fS73rkadgWICgre5YZCj1oIG6hrBEUo0Fr1mklXJVtqYFZMFD8XGx+\niur2Mk1Hs5YDd/G8PGDDISS/SqyeHXNo6SPJSXEVjAOIXFnX9EcCP9IAEK5tAgMB\nAAEwDQYJKoZIhvcNAQEFBQADgYEAavYdM9s5jLFP9/ZPCrsRuRsjSJpe5y9VZL+1\n+Ebbw16V0xMYaqODyFH1meLRW/A4xUs15Ny2vLYOW15Mriif7Sixty3HUedBFa4l\ny6/gQ+mBEeZYzMaTTFgyzEZDMsfZxwV9GKfhOzAmK3jZ2LDpHIhnlJN4WwVf0lME\npCPDN7g=\n-----END CERTIFICATE-----\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.OriginClientCertificate;\nimport com.pulumi.alicloud.esa.OriginClientCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var resourceSiteOriginClientCertificateExample = new Site(\"resourceSiteOriginClientCertificateExample\", SiteArgs.builder()\n            .siteName(\"chenxin0116.site\")\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultOriginClientCertificate = new OriginClientCertificate(\"defaultOriginClientCertificate\", OriginClientCertificateArgs.builder()\n            .siteId(resourceSiteOriginClientCertificateExample.id())\n            .privateKey(\"\"\"\n-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC+7dgpkQifIqzOU6KNkFRjZtMZOoN7/ihNf/BrYcPhLQSkcPOf\nUsTP/qvH0u965GnYFiAoK3uWGQo9aCBuoawRFKNBa9ZpJVyVbamBWTBQ/Fxsforq\n9jJNR7OWA3fxvDxgwyEkv0qsnh1zaOkjyUlxFYwDiFxZ1/RHAj/SABCubQIDAQAB\nAoGADiobBUprN1MdOtldj98LQ6yXMKH0qzg5yTYaofzIyWXLmF+A02sSitO77sEp\nXxae+5b4n8JKEuKcrd2RumNoHmN47iLQ0M2eodjUQ96kzm5Esq6nln62/NF5KLuK\nJDw63nTsg6K0O+gQZv4SYjZAL3cswSmeQmvmcoNgArfcaoECQQDgYy6S91ZIUsLx\n6BB3tW+x7APYnvKysYbcKUEP8AutZSo4hdMfPQkOD0LwP5dWsrNippDWjNDiPZmt\nVKuZDoDdAkEA2dPxy1eQeJsRYTZmTWIuh3UY9xlL3G9skcSOM4LbFidroHWW9UDJ\nJDSSEMH2+/4quYTdPr28cj7RCjqL0brC0QJABXDCL1QJ5oUDLwRWaeCfTawQR89K\nySRexbXGWxGR5uleBbLQ9J/xOUMLd3HDRJnemZS6TElrwyCFOlukMXjVjQJBALr5\nQC0opmu/vzVQepOl2QaQrrM7VXCLfAfLTbxNcD0d7TY4eTFfQMgBD/euZpB65LWF\npFs8hcsSvGApTObjhmECQEydB1zzjU6kH171XlXCtRFnbORu2IB7rMsDP2CBPHyR\ntYBjBNVHIUGcmrMVFX4LeMuvvmUyzwfgLmLchHxbDP8=\n-----END RSA PRIVATE KEY-----\n            \"\"\")\n            .hostnames(            \n                \"www.example1.com\",\n                \"www.example2.com\",\n                \"www.example3.com\")\n            .originClientCertificateName(\"exampleCertificate\")\n            .certificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIICQTCCAaoCCQCFfdyqahygLzANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJj\nbjEQMA4GA1UECAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwI\nYWxpY2xvdWQxEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwHhcNMjAw\nODA2MTAwMDAyWhcNMzAwODA0MTAwMDAyWjBlMQswCQYDVQQGEwJjbjEQMA4GA1UE\nCAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwIYWxpY2xvdWQx\nEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwgZ8wDQYJKoZIhvcNAQEB\nBQADgY0AMIGJAoGBAL7t2CmRCJ8irM5Too2QVGNm0xk6g3v+KE1/8Gthw+EtBKRw\n859SxM/+q8fS73rkadgWICgre5YZCj1oIG6hrBEUo0Fr1mklXJVtqYFZMFD8XGx+\niur2Mk1Hs5YDd/G8PGDDISS/SqyeHXNo6SPJSXEVjAOIXFnX9EcCP9IAEK5tAgMB\nAAEwDQYJKoZIhvcNAQEFBQADgYEAavYdM9s5jLFP9/ZPCrsRuRsjSJpe5y9VZL+1\n+Ebbw16V0xMYaqODyFH1meLRW/A4xUs15Ny2vLYOW15Mriif7Sixty3HUedBFa4l\ny6/gQ+mBEeZYzMaTTFgyzEZDMsfZxwV9GKfhOzAmK3jZ2LDpHIhnlJN4WwVf0lME\npCPDN7g=\n-----END CERTIFICATE-----\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  resourceSiteOriginClientCertificateExample:\n    type: alicloud:esa:Site\n    name: resource_Site_OriginClientCertificate_example\n    properties:\n      siteName: chenxin0116.site\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  defaultOriginClientCertificate:\n    type: alicloud:esa:OriginClientCertificate\n    name: default\n    properties:\n      siteId: ${resourceSiteOriginClientCertificateExample.id}\n      privateKey: |\n        -----BEGIN RSA PRIVATE KEY-----\n        MIICXAIBAAKBgQC+7dgpkQifIqzOU6KNkFRjZtMZOoN7/ihNf/BrYcPhLQSkcPOf\n        UsTP/qvH0u965GnYFiAoK3uWGQo9aCBuoawRFKNBa9ZpJVyVbamBWTBQ/Fxsforq\n        9jJNR7OWA3fxvDxgwyEkv0qsnh1zaOkjyUlxFYwDiFxZ1/RHAj/SABCubQIDAQAB\n        AoGADiobBUprN1MdOtldj98LQ6yXMKH0qzg5yTYaofzIyWXLmF+A02sSitO77sEp\n        Xxae+5b4n8JKEuKcrd2RumNoHmN47iLQ0M2eodjUQ96kzm5Esq6nln62/NF5KLuK\n        JDw63nTsg6K0O+gQZv4SYjZAL3cswSmeQmvmcoNgArfcaoECQQDgYy6S91ZIUsLx\n        6BB3tW+x7APYnvKysYbcKUEP8AutZSo4hdMfPQkOD0LwP5dWsrNippDWjNDiPZmt\n        VKuZDoDdAkEA2dPxy1eQeJsRYTZmTWIuh3UY9xlL3G9skcSOM4LbFidroHWW9UDJ\n        JDSSEMH2+/4quYTdPr28cj7RCjqL0brC0QJABXDCL1QJ5oUDLwRWaeCfTawQR89K\n        ySRexbXGWxGR5uleBbLQ9J/xOUMLd3HDRJnemZS6TElrwyCFOlukMXjVjQJBALr5\n        QC0opmu/vzVQepOl2QaQrrM7VXCLfAfLTbxNcD0d7TY4eTFfQMgBD/euZpB65LWF\n        pFs8hcsSvGApTObjhmECQEydB1zzjU6kH171XlXCtRFnbORu2IB7rMsDP2CBPHyR\n        tYBjBNVHIUGcmrMVFX4LeMuvvmUyzwfgLmLchHxbDP8=\n        -----END RSA PRIVATE KEY-----\n      hostnames:\n        - www.example1.com\n        - www.example2.com\n        - www.example3.com\n      originClientCertificateName: exampleCertificate\n      certificate: |\n        -----BEGIN CERTIFICATE-----\n        MIICQTCCAaoCCQCFfdyqahygLzANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJj\n        bjEQMA4GA1UECAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwI\n        YWxpY2xvdWQxEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwHhcNMjAw\n        ODA2MTAwMDAyWhcNMzAwODA0MTAwMDAyWjBlMQswCQYDVQQGEwJjbjEQMA4GA1UE\n        CAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwIYWxpY2xvdWQx\n        EDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwgZ8wDQYJKoZIhvcNAQEB\n        BQADgY0AMIGJAoGBAL7t2CmRCJ8irM5Too2QVGNm0xk6g3v+KE1/8Gthw+EtBKRw\n        859SxM/+q8fS73rkadgWICgre5YZCj1oIG6hrBEUo0Fr1mklXJVtqYFZMFD8XGx+\n        iur2Mk1Hs5YDd/G8PGDDISS/SqyeHXNo6SPJSXEVjAOIXFnX9EcCP9IAEK5tAgMB\n        AAEwDQYJKoZIhvcNAQEFBQADgYEAavYdM9s5jLFP9/ZPCrsRuRsjSJpe5y9VZL+1\n        +Ebbw16V0xMYaqODyFH1meLRW/A4xUs15Ny2vLYOW15Mriif7Sixty3HUedBFa4l\n        y6/gQ+mBEeZYzMaTTFgyzEZDMsfZxwV9GKfhOzAmK3jZ2LDpHIhnlJN4WwVf0lME\n        pCPDN7g=\n        -----END CERTIFICATE-----\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Origin Client Certificate can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/originClientCertificate:OriginClientCertificate example \u003csite_id\u003e:\u003corigin_client_certificate_id\u003e\n```\n\n","properties":{"certificate":{"type":"string","description":"The certificate content.\n"},"createTime":{"type":"string","description":"The time when the certificate was created.\n"},"hostnames":{"type":"array","items":{"type":"string"},"description":"The domain names to associate.\n"},"originClientCertificateId":{"type":"string","description":"The certificate ID.\n"},"originClientCertificateName":{"type":"string","description":"The certificate name.\n"},"privateKey":{"type":"string","description":"The private key of the certificate.\n","secret":true},"siteId":{"type":"string","description":"Site ID.\n"},"status":{"type":"string","description":"The status of the certificate.\n"}},"required":["certificate","createTime","originClientCertificateId","privateKey","siteId","status"],"inputProperties":{"certificate":{"type":"string","description":"The certificate content.\n","willReplaceOnChanges":true},"hostnames":{"type":"array","items":{"type":"string"},"description":"The domain names to associate.\n"},"originClientCertificateName":{"type":"string","description":"The certificate name.\n","willReplaceOnChanges":true},"privateKey":{"type":"string","description":"The private key of the certificate.\n","secret":true,"willReplaceOnChanges":true},"siteId":{"type":"string","description":"Site ID.\n","willReplaceOnChanges":true}},"requiredInputs":["certificate","privateKey","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering OriginClientCertificate resources.\n","properties":{"certificate":{"type":"string","description":"The certificate content.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The time when the certificate was created.\n"},"hostnames":{"type":"array","items":{"type":"string"},"description":"The domain names to associate.\n"},"originClientCertificateId":{"type":"string","description":"The certificate ID.\n"},"originClientCertificateName":{"type":"string","description":"The certificate name.\n","willReplaceOnChanges":true},"privateKey":{"type":"string","description":"The private key of the certificate.\n","secret":true,"willReplaceOnChanges":true},"siteId":{"type":"string","description":"Site ID.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the certificate.\n"}},"type":"object"}},"alicloud:esa/originPool:OriginPool":{"description":"Provides a ESA Origin Pool resource.\n\n\n\nFor information about ESA Origin Pool and how to use it, see [What is Origin Pool](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateOriginPool).\n\n\u003e **NOTE:** Available since v1.244.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: `gositecdn-${defaultInteger.result}.cn`,\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultOriginPool = new alicloud.esa.OriginPool(\"default\", {\n    origins: [\n        {\n            type: \"OSS\",\n            address: \"example.oss-cn-beijing.aliyuncs.com\",\n            header: \"{\\\"Host\\\":[\\\"example.oss-cn-beijing.aliyuncs.com\\\"]}\",\n            enabled: true,\n            authConf: {\n                secretKey: \"\u003cSecretKeyId\u003e\",\n                authType: \"private_cross_account\",\n                accessKey: \"\u003cAccessKeyId\u003e\",\n            },\n            weight: 50,\n            name: \"origin1\",\n        },\n        {\n            address: \"example.s3.com\",\n            header: \"{\\\"Host\\\": [\\\"example1.com\\\"]}\",\n            enabled: true,\n            authConf: {\n                version: \"v2\",\n                region: \"us-east-1\",\n                authType: \"private\",\n                accessKey: \"\u003cAccessKeyId\u003e\",\n                secretKey: \"\u003cSecretKeyId\u003e\",\n            },\n            weight: 50,\n            name: \"origin2\",\n            type: \"S3\",\n        },\n        {\n            type: \"S3\",\n            address: \"example1111.s3.com\",\n            header: \"{\\\"Host\\\":[\\\"example1111.com\\\"]}\",\n            enabled: true,\n            authConf: {\n                secretKey: \"\u003cSecretKeyId\u003e\",\n                version: \"v2\",\n                region: \"us-east-1\",\n                authType: \"private\",\n                accessKey: \"\u003cAccessKeyId\u003e\",\n            },\n            weight: 30,\n            name: \"origin3\",\n        },\n    ],\n    siteId: defaultSite.id,\n    originPoolName: \"exampleoriginpool\",\n    enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=f\"gositecdn-{default_integer['result']}.cn\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_origin_pool = alicloud.esa.OriginPool(\"default\",\n    origins=[\n        {\n            \"type\": \"OSS\",\n            \"address\": \"example.oss-cn-beijing.aliyuncs.com\",\n            \"header\": \"{\\\"Host\\\":[\\\"example.oss-cn-beijing.aliyuncs.com\\\"]}\",\n            \"enabled\": True,\n            \"auth_conf\": {\n                \"secret_key\": \"\u003cSecretKeyId\u003e\",\n                \"auth_type\": \"private_cross_account\",\n                \"access_key\": \"\u003cAccessKeyId\u003e\",\n            },\n            \"weight\": 50,\n            \"name\": \"origin1\",\n        },\n        {\n            \"address\": \"example.s3.com\",\n            \"header\": \"{\\\"Host\\\": [\\\"example1.com\\\"]}\",\n            \"enabled\": True,\n            \"auth_conf\": {\n                \"version\": \"v2\",\n                \"region\": \"us-east-1\",\n                \"auth_type\": \"private\",\n                \"access_key\": \"\u003cAccessKeyId\u003e\",\n                \"secret_key\": \"\u003cSecretKeyId\u003e\",\n            },\n            \"weight\": 50,\n            \"name\": \"origin2\",\n            \"type\": \"S3\",\n        },\n        {\n            \"type\": \"S3\",\n            \"address\": \"example1111.s3.com\",\n            \"header\": \"{\\\"Host\\\":[\\\"example1111.com\\\"]}\",\n            \"enabled\": True,\n            \"auth_conf\": {\n                \"secret_key\": \"\u003cSecretKeyId\u003e\",\n                \"version\": \"v2\",\n                \"region\": \"us-east-1\",\n                \"auth_type\": \"private\",\n                \"access_key\": \"\u003cAccessKeyId\u003e\",\n            },\n            \"weight\": 30,\n            \"name\": \"origin3\",\n        },\n    ],\n    site_id=default_site.id,\n    origin_pool_name=\"exampleoriginpool\",\n    enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = $\"gositecdn-{defaultInteger.Result}.cn\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultOriginPool = new AliCloud.Esa.OriginPool(\"default\", new()\n    {\n        Origins = new[]\n        {\n            new AliCloud.Esa.Inputs.OriginPoolOriginArgs\n            {\n                Type = \"OSS\",\n                Address = \"example.oss-cn-beijing.aliyuncs.com\",\n                Header = \"{\\\"Host\\\":[\\\"example.oss-cn-beijing.aliyuncs.com\\\"]}\",\n                Enabled = true,\n                AuthConf = new AliCloud.Esa.Inputs.OriginPoolOriginAuthConfArgs\n                {\n                    SecretKey = \"\u003cSecretKeyId\u003e\",\n                    AuthType = \"private_cross_account\",\n                    AccessKey = \"\u003cAccessKeyId\u003e\",\n                },\n                Weight = 50,\n                Name = \"origin1\",\n            },\n            new AliCloud.Esa.Inputs.OriginPoolOriginArgs\n            {\n                Address = \"example.s3.com\",\n                Header = \"{\\\"Host\\\": [\\\"example1.com\\\"]}\",\n                Enabled = true,\n                AuthConf = new AliCloud.Esa.Inputs.OriginPoolOriginAuthConfArgs\n                {\n                    Version = \"v2\",\n                    Region = \"us-east-1\",\n                    AuthType = \"private\",\n                    AccessKey = \"\u003cAccessKeyId\u003e\",\n                    SecretKey = \"\u003cSecretKeyId\u003e\",\n                },\n                Weight = 50,\n                Name = \"origin2\",\n                Type = \"S3\",\n            },\n            new AliCloud.Esa.Inputs.OriginPoolOriginArgs\n            {\n                Type = \"S3\",\n                Address = \"example1111.s3.com\",\n                Header = \"{\\\"Host\\\":[\\\"example1111.com\\\"]}\",\n                Enabled = true,\n                AuthConf = new AliCloud.Esa.Inputs.OriginPoolOriginAuthConfArgs\n                {\n                    SecretKey = \"\u003cSecretKeyId\u003e\",\n                    Version = \"v2\",\n                    Region = \"us-east-1\",\n                    AuthType = \"private\",\n                    AccessKey = \"\u003cAccessKeyId\u003e\",\n                },\n                Weight = 30,\n                Name = \"origin3\",\n            },\n        },\n        SiteId = defaultSite.Id,\n        OriginPoolName = \"exampleoriginpool\",\n        Enabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.Sprintf(\"gositecdn-%v.cn\", defaultInteger.Result),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewOriginPool(ctx, \"default\", \u0026esa.OriginPoolArgs{\n\t\t\tOrigins: esa.OriginPoolOriginArray{\n\t\t\t\t\u0026esa.OriginPoolOriginArgs{\n\t\t\t\t\tType:    pulumi.String(\"OSS\"),\n\t\t\t\t\tAddress: pulumi.String(\"example.oss-cn-beijing.aliyuncs.com\"),\n\t\t\t\t\tHeader:  pulumi.String(\"{\\\"Host\\\":[\\\"example.oss-cn-beijing.aliyuncs.com\\\"]}\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tAuthConf: \u0026esa.OriginPoolOriginAuthConfArgs{\n\t\t\t\t\t\tSecretKey: pulumi.String(\"\u003cSecretKeyId\u003e\"),\n\t\t\t\t\t\tAuthType:  pulumi.String(\"private_cross_account\"),\n\t\t\t\t\t\tAccessKey: pulumi.String(\"\u003cAccessKeyId\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tWeight: pulumi.Int(50),\n\t\t\t\t\tName:   pulumi.String(\"origin1\"),\n\t\t\t\t},\n\t\t\t\t\u0026esa.OriginPoolOriginArgs{\n\t\t\t\t\tAddress: pulumi.String(\"example.s3.com\"),\n\t\t\t\t\tHeader:  pulumi.String(\"{\\\"Host\\\": [\\\"example1.com\\\"]}\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tAuthConf: \u0026esa.OriginPoolOriginAuthConfArgs{\n\t\t\t\t\t\tVersion:   pulumi.String(\"v2\"),\n\t\t\t\t\t\tRegion:    pulumi.String(\"us-east-1\"),\n\t\t\t\t\t\tAuthType:  pulumi.String(\"private\"),\n\t\t\t\t\t\tAccessKey: pulumi.String(\"\u003cAccessKeyId\u003e\"),\n\t\t\t\t\t\tSecretKey: pulumi.String(\"\u003cSecretKeyId\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tWeight: pulumi.Int(50),\n\t\t\t\t\tName:   pulumi.String(\"origin2\"),\n\t\t\t\t\tType:   pulumi.String(\"S3\"),\n\t\t\t\t},\n\t\t\t\t\u0026esa.OriginPoolOriginArgs{\n\t\t\t\t\tType:    pulumi.String(\"S3\"),\n\t\t\t\t\tAddress: pulumi.String(\"example1111.s3.com\"),\n\t\t\t\t\tHeader:  pulumi.String(\"{\\\"Host\\\":[\\\"example1111.com\\\"]}\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tAuthConf: \u0026esa.OriginPoolOriginAuthConfArgs{\n\t\t\t\t\t\tSecretKey: pulumi.String(\"\u003cSecretKeyId\u003e\"),\n\t\t\t\t\t\tVersion:   pulumi.String(\"v2\"),\n\t\t\t\t\t\tRegion:    pulumi.String(\"us-east-1\"),\n\t\t\t\t\t\tAuthType:  pulumi.String(\"private\"),\n\t\t\t\t\t\tAccessKey: pulumi.String(\"\u003cAccessKeyId\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tWeight: pulumi.Int(30),\n\t\t\t\t\tName:   pulumi.String(\"origin3\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSiteId:         defaultSite.ID(),\n\t\t\tOriginPoolName: pulumi.String(\"exampleoriginpool\"),\n\t\t\tEnabled:        pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.OriginPool;\nimport com.pulumi.alicloud.esa.OriginPoolArgs;\nimport com.pulumi.alicloud.esa.inputs.OriginPoolOriginArgs;\nimport com.pulumi.alicloud.esa.inputs.OriginPoolOriginAuthConfArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(String.format(\"gositecdn-%s.cn\", defaultInteger.result()))\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultOriginPool = new OriginPool(\"defaultOriginPool\", OriginPoolArgs.builder()\n            .origins(            \n                OriginPoolOriginArgs.builder()\n                    .type(\"OSS\")\n                    .address(\"example.oss-cn-beijing.aliyuncs.com\")\n                    .header(\"{\\\"Host\\\":[\\\"example.oss-cn-beijing.aliyuncs.com\\\"]}\")\n                    .enabled(true)\n                    .authConf(OriginPoolOriginAuthConfArgs.builder()\n                        .secretKey(\"\u003cSecretKeyId\u003e\")\n                        .authType(\"private_cross_account\")\n                        .accessKey(\"\u003cAccessKeyId\u003e\")\n                        .build())\n                    .weight(50)\n                    .name(\"origin1\")\n                    .build(),\n                OriginPoolOriginArgs.builder()\n                    .address(\"example.s3.com\")\n                    .header(\"{\\\"Host\\\": [\\\"example1.com\\\"]}\")\n                    .enabled(true)\n                    .authConf(OriginPoolOriginAuthConfArgs.builder()\n                        .version(\"v2\")\n                        .region(\"us-east-1\")\n                        .authType(\"private\")\n                        .accessKey(\"\u003cAccessKeyId\u003e\")\n                        .secretKey(\"\u003cSecretKeyId\u003e\")\n                        .build())\n                    .weight(50)\n                    .name(\"origin2\")\n                    .type(\"S3\")\n                    .build(),\n                OriginPoolOriginArgs.builder()\n                    .type(\"S3\")\n                    .address(\"example1111.s3.com\")\n                    .header(\"{\\\"Host\\\":[\\\"example1111.com\\\"]}\")\n                    .enabled(true)\n                    .authConf(OriginPoolOriginAuthConfArgs.builder()\n                        .secretKey(\"\u003cSecretKeyId\u003e\")\n                        .version(\"v2\")\n                        .region(\"us-east-1\")\n                        .authType(\"private\")\n                        .accessKey(\"\u003cAccessKeyId\u003e\")\n                        .build())\n                    .weight(30)\n                    .name(\"origin3\")\n                    .build())\n            .siteId(defaultSite.id())\n            .originPoolName(\"exampleoriginpool\")\n            .enabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: gositecdn-${defaultInteger.result}.cn\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  defaultOriginPool:\n    type: alicloud:esa:OriginPool\n    name: default\n    properties:\n      origins:\n        - type: OSS\n          address: example.oss-cn-beijing.aliyuncs.com\n          header: '{\"Host\":[\"example.oss-cn-beijing.aliyuncs.com\"]}'\n          enabled: 'true'\n          authConf:\n            secretKey: \u003cSecretKeyId\u003e\n            authType: private_cross_account\n            accessKey: \u003cAccessKeyId\u003e\n          weight: '50'\n          name: origin1\n        - address: example.s3.com\n          header: '{\"Host\": [\"example1.com\"]}'\n          enabled: 'true'\n          authConf:\n            version: v2\n            region: us-east-1\n            authType: private\n            accessKey: \u003cAccessKeyId\u003e\n            secretKey: \u003cSecretKeyId\u003e\n          weight: '50'\n          name: origin2\n          type: S3\n        - type: S3\n          address: example1111.s3.com\n          header: '{\"Host\":[\"example1111.com\"]}'\n          enabled: 'true'\n          authConf:\n            secretKey: \u003cSecretKeyId\u003e\n            version: v2\n            region: us-east-1\n            authType: private\n            accessKey: \u003cAccessKeyId\u003e\n          weight: '30'\n          name: origin3\n      siteId: ${defaultSite.id}\n      originPoolName: exampleoriginpool\n      enabled: 'true'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Origin Pool can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/originPool:OriginPool example \u003csite_id\u003e:\u003corigin_pool_id\u003e\n```\n\n","properties":{"enabled":{"type":"boolean","description":"Whether the source address pool is enabled:\n"},"originPoolId":{"type":"integer","description":"OriginPool Id\n"},"originPoolName":{"type":"string","description":"The source address pool name.\n"},"origins":{"type":"array","items":{"$ref":"#/types/alicloud:esa/OriginPoolOrigin:OriginPoolOrigin"},"description":"The Source station information added to the source address pool. Multiple Source stations use arrays to transfer values. See \u003cspan pulumi-lang-nodejs=\"`origins`\" pulumi-lang-dotnet=\"`Origins`\" pulumi-lang-go=\"`origins`\" pulumi-lang-python=\"`origins`\" pulumi-lang-yaml=\"`origins`\" pulumi-lang-java=\"`origins`\"\u003e`origins`\u003c/span\u003e below.\n"},"siteId":{"type":"string","description":"The site ID.\n"}},"required":["originPoolId","originPoolName","siteId"],"inputProperties":{"enabled":{"type":"boolean","description":"Whether the source address pool is enabled:\n"},"originPoolName":{"type":"string","description":"The source address pool name.\n","willReplaceOnChanges":true},"origins":{"type":"array","items":{"$ref":"#/types/alicloud:esa/OriginPoolOrigin:OriginPoolOrigin"},"description":"The Source station information added to the source address pool. Multiple Source stations use arrays to transfer values. See \u003cspan pulumi-lang-nodejs=\"`origins`\" pulumi-lang-dotnet=\"`Origins`\" pulumi-lang-go=\"`origins`\" pulumi-lang-python=\"`origins`\" pulumi-lang-yaml=\"`origins`\" pulumi-lang-java=\"`origins`\"\u003e`origins`\u003c/span\u003e below.\n"},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true}},"requiredInputs":["originPoolName","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering OriginPool resources.\n","properties":{"enabled":{"type":"boolean","description":"Whether the source address pool is enabled:\n"},"originPoolId":{"type":"integer","description":"OriginPool Id\n"},"originPoolName":{"type":"string","description":"The source address pool name.\n","willReplaceOnChanges":true},"origins":{"type":"array","items":{"$ref":"#/types/alicloud:esa/OriginPoolOrigin:OriginPoolOrigin"},"description":"The Source station information added to the source address pool. Multiple Source stations use arrays to transfer values. See \u003cspan pulumi-lang-nodejs=\"`origins`\" pulumi-lang-dotnet=\"`Origins`\" pulumi-lang-go=\"`origins`\" pulumi-lang-python=\"`origins`\" pulumi-lang-yaml=\"`origins`\" pulumi-lang-java=\"`origins`\"\u003e`origins`\u003c/span\u003e below.\n"},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/originProtection:OriginProtection":{"description":"Provides a ESA Origin Protection resource.\n\n\n\nFor information about ESA Origin Protection and how to use it, see [What is Origin Protection](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateOriginProtection).\n\n\u003e **NOTE:** Available since v1.256.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: \"chenxin0116.site\",\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultOriginProtection = new alicloud.esa.OriginProtection(\"default\", {\n    originConverge: \"on\",\n    siteId: defaultSite.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=\"chenxin0116.site\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_origin_protection = alicloud.esa.OriginProtection(\"default\",\n    origin_converge=\"on\",\n    site_id=default_site.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = \"chenxin0116.site\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultOriginProtection = new AliCloud.Esa.OriginProtection(\"default\", new()\n    {\n        OriginConverge = \"on\",\n        SiteId = defaultSite.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"chenxin0116.site\"),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewOriginProtection(ctx, \"default\", \u0026esa.OriginProtectionArgs{\n\t\t\tOriginConverge: pulumi.String(\"on\"),\n\t\t\tSiteId:         defaultSite.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.OriginProtection;\nimport com.pulumi.alicloud.esa.OriginProtectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(\"chenxin0116.site\")\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultOriginProtection = new OriginProtection(\"defaultOriginProtection\", OriginProtectionArgs.builder()\n            .originConverge(\"on\")\n            .siteId(defaultSite.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: chenxin0116.site\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  defaultOriginProtection:\n    type: alicloud:esa:OriginProtection\n    name: default\n    properties:\n      originConverge: on\n      siteId: ${defaultSite.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Origin Protection can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/originProtection:OriginProtection example \u003cid\u003e\n```\n\n","properties":{"originConverge":{"type":"string","description":"The IP convergence status.\n\n- on\n- off\n"},"siteId":{"type":"string","description":"Site Id\n"}},"required":["siteId"],"inputProperties":{"originConverge":{"type":"string","description":"The IP convergence status.\n\n- on\n- off\n"},"siteId":{"type":"string","description":"Site Id\n","willReplaceOnChanges":true}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering OriginProtection resources.\n","properties":{"originConverge":{"type":"string","description":"The IP convergence status.\n\n- on\n- off\n"},"siteId":{"type":"string","description":"Site Id\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/originRule:OriginRule":{"description":"Provides a ESA Origin Rule resource.\n\n\n\nFor information about ESA Origin Rule and how to use it, see [What is Origin Rule](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateOriginRule).\n\n\u003e **NOTE:** Available since v1.244.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultOriginRule = new alicloud.esa.OriginRule(\"default\", {\n    originSni: \"origin.example.com\",\n    siteId: _default.then(_default =\u003e _default.sites?.[0]?.id),\n    originHost: \"origin.example.com\",\n    dnsRecord: \"tf.example.com\",\n    siteVersion: 0,\n    ruleName: \"tf\",\n    originHttpsPort: \"443\",\n    originScheme: \"http\",\n    range: \"on\",\n    originHttpPort: \"8080\",\n    rule: \"(http.host eq \\\"video.example.com\\\")\",\n    ruleEnable: \"on\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_origin_rule = alicloud.esa.OriginRule(\"default\",\n    origin_sni=\"origin.example.com\",\n    site_id=default.sites[0].id,\n    origin_host=\"origin.example.com\",\n    dns_record=\"tf.example.com\",\n    site_version=0,\n    rule_name=\"tf\",\n    origin_https_port=\"443\",\n    origin_scheme=\"http\",\n    range=\"on\",\n    origin_http_port=\"8080\",\n    rule=\"(http.host eq \\\"video.example.com\\\")\",\n    rule_enable=\"on\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultOriginRule = new AliCloud.Esa.OriginRule(\"default\", new()\n    {\n        OriginSni = \"origin.example.com\",\n        SiteId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.Id)),\n        OriginHost = \"origin.example.com\",\n        DnsRecord = \"tf.example.com\",\n        SiteVersion = 0,\n        RuleName = \"tf\",\n        OriginHttpsPort = \"443\",\n        OriginScheme = \"http\",\n        Range = \"on\",\n        OriginHttpPort = \"8080\",\n        Rule = \"(http.host eq \\\"video.example.com\\\")\",\n        RuleEnable = \"on\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewOriginRule(ctx, \"default\", \u0026esa.OriginRuleArgs{\n\t\t\tOriginSni:       pulumi.String(\"origin.example.com\"),\n\t\t\tSiteId:          pulumi.Int(_default.Sites[0].Id),\n\t\t\tOriginHost:      pulumi.String(\"origin.example.com\"),\n\t\t\tDnsRecord:       pulumi.String(\"tf.example.com\"),\n\t\t\tSiteVersion:     pulumi.Int(0),\n\t\t\tRuleName:        pulumi.String(\"tf\"),\n\t\t\tOriginHttpsPort: pulumi.String(\"443\"),\n\t\t\tOriginScheme:    pulumi.String(\"http\"),\n\t\t\tRange:           pulumi.String(\"on\"),\n\t\t\tOriginHttpPort:  pulumi.String(\"8080\"),\n\t\t\tRule:            pulumi.String(\"(http.host eq \\\"video.example.com\\\")\"),\n\t\t\tRuleEnable:      pulumi.String(\"on\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.OriginRule;\nimport com.pulumi.alicloud.esa.OriginRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultOriginRule = new OriginRule(\"defaultOriginRule\", OriginRuleArgs.builder()\n            .originSni(\"origin.example.com\")\n            .siteId(default_.sites()[0].id())\n            .originHost(\"origin.example.com\")\n            .dnsRecord(\"tf.example.com\")\n            .siteVersion(0)\n            .ruleName(\"tf\")\n            .originHttpsPort(\"443\")\n            .originScheme(\"http\")\n            .range(\"on\")\n            .originHttpPort(\"8080\")\n            .rule(\"(http.host eq \\\"video.example.com\\\")\")\n            .ruleEnable(\"on\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultOriginRule:\n    type: alicloud:esa:OriginRule\n    name: default\n    properties:\n      originSni: origin.example.com\n      siteId: ${default.sites[0].id}\n      originHost: origin.example.com\n      dnsRecord: tf.example.com\n      siteVersion: '0'\n      ruleName: tf\n      originHttpsPort: '443'\n      originScheme: http\n      range: on\n      originHttpPort: '8080'\n      rule: (http.host eq \"video.example.com\")\n      ruleEnable: on\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Origin Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/originRule:OriginRule example \u003csite_id\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"configId":{"type":"integer","description":"Back-to-source rule configuration ID\n"},"dnsRecord":{"type":"string","description":"Overwrite the DNS resolution record of the origin request.\n"},"follow302Enable":{"type":"string","description":"Return Source 302 follow switch. Value range:\n"},"follow302MaxTries":{"type":"string","description":"302 follows the upper limit of the number of times, with a value range of [1-5].\n"},"follow302RetainArgs":{"type":"string","description":"Retain the original request parameter switch. Value range:\n"},"follow302RetainHeader":{"type":"string","description":"Retain the original request header switch. Value range:\n"},"follow302TargetHost":{"type":"string","description":"Modify the source host after 302.\n"},"originHost":{"type":"string","description":"The HOST carried in the back-to-origin request.\n"},"originHttpPort":{"type":"string","description":"The port of the origin station accessed when the HTTP protocol is used to return to the origin.\n"},"originHttpsPort":{"type":"string","description":"The port of the origin station accessed when the HTTPS protocol is used to return to the origin.\n"},"originMtls":{"type":"string","description":"The mtls switch. Value range:\n"},"originReadTimeout":{"type":"string","description":"Read timeout interval of the source station (s).\n"},"originScheme":{"type":"string","description":"The protocol used by the back-to-origin request. Value range:\n"},"originSni":{"type":"string","description":"SNI carried in the back-to-origin request.\n"},"originVerify":{"type":"string","description":"Source station certificate verification switch. Value range:\n"},"range":{"type":"string","description":"Use the range sharding method to download the file from the source. Value range:\n"},"rangeChunkSize":{"type":"string","description":"range shard size.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID.\n"},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n"}},"required":["configId","sequence","siteId"],"inputProperties":{"dnsRecord":{"type":"string","description":"Overwrite the DNS resolution record of the origin request.\n"},"follow302Enable":{"type":"string","description":"Return Source 302 follow switch. Value range:\n"},"follow302MaxTries":{"type":"string","description":"302 follows the upper limit of the number of times, with a value range of [1-5].\n"},"follow302RetainArgs":{"type":"string","description":"Retain the original request parameter switch. Value range:\n"},"follow302RetainHeader":{"type":"string","description":"Retain the original request header switch. Value range:\n"},"follow302TargetHost":{"type":"string","description":"Modify the source host after 302.\n"},"originHost":{"type":"string","description":"The HOST carried in the back-to-origin request.\n"},"originHttpPort":{"type":"string","description":"The port of the origin station accessed when the HTTP protocol is used to return to the origin.\n"},"originHttpsPort":{"type":"string","description":"The port of the origin station accessed when the HTTPS protocol is used to return to the origin.\n"},"originMtls":{"type":"string","description":"The mtls switch. Value range:\n"},"originReadTimeout":{"type":"string","description":"Read timeout interval of the source station (s).\n"},"originScheme":{"type":"string","description":"The protocol used by the back-to-origin request. Value range:\n"},"originSni":{"type":"string","description":"SNI carried in the back-to-origin request.\n"},"originVerify":{"type":"string","description":"Source station certificate verification switch. Value range:\n"},"range":{"type":"string","description":"Use the range sharding method to download the file from the source. Value range:\n"},"rangeChunkSize":{"type":"string","description":"range shard size.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering OriginRule resources.\n","properties":{"configId":{"type":"integer","description":"Back-to-source rule configuration ID\n"},"dnsRecord":{"type":"string","description":"Overwrite the DNS resolution record of the origin request.\n"},"follow302Enable":{"type":"string","description":"Return Source 302 follow switch. Value range:\n"},"follow302MaxTries":{"type":"string","description":"302 follows the upper limit of the number of times, with a value range of [1-5].\n"},"follow302RetainArgs":{"type":"string","description":"Retain the original request parameter switch. Value range:\n"},"follow302RetainHeader":{"type":"string","description":"Retain the original request header switch. Value range:\n"},"follow302TargetHost":{"type":"string","description":"Modify the source host after 302.\n"},"originHost":{"type":"string","description":"The HOST carried in the back-to-origin request.\n"},"originHttpPort":{"type":"string","description":"The port of the origin station accessed when the HTTP protocol is used to return to the origin.\n"},"originHttpsPort":{"type":"string","description":"The port of the origin station accessed when the HTTPS protocol is used to return to the origin.\n"},"originMtls":{"type":"string","description":"The mtls switch. Value range:\n"},"originReadTimeout":{"type":"string","description":"Read timeout interval of the source station (s).\n"},"originScheme":{"type":"string","description":"The protocol used by the back-to-origin request. Value range:\n"},"originSni":{"type":"string","description":"SNI carried in the back-to-origin request.\n"},"originVerify":{"type":"string","description":"Source station certificate verification switch. Value range:\n"},"range":{"type":"string","description":"Use the range sharding method to download the file from the source. Value range:\n"},"rangeChunkSize":{"type":"string","description":"range shard size.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/page:Page":{"description":"Provides a ESA Page resource.\n\n\n\nFor information about ESA Page and how to use it, see [What is Page](https://www.alibabacloud.com/help/en/edge-security-acceleration/esa/user-guide/customize-page).\n\n\u003e **NOTE:** Available since v1.242.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.esa.Page(\"default\", {\n    description: \"example resource html page\",\n    contentType: \"text/html\",\n    content: \"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InpoLUNOIj4KICA8aGVhZD4KICAgIDx0aXRsZT40MDMgRm9yYmlkZGVuPC90aXRsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8aDE+NDAzIEZvcmJpZGRlbjwvaDE+CiAgPC9ib2R5Pgo8L2h0bWw+\",\n    pageName: \"resource_example_html_page\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.esa.Page(\"default\",\n    description=\"example resource html page\",\n    content_type=\"text/html\",\n    content=\"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InpoLUNOIj4KICA8aGVhZD4KICAgIDx0aXRsZT40MDMgRm9yYmlkZGVuPC90aXRsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8aDE+NDAzIEZvcmJpZGRlbjwvaDE+CiAgPC9ib2R5Pgo8L2h0bWw+\",\n    page_name=\"resource_example_html_page\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Esa.Page(\"default\", new()\n    {\n        Description = \"example resource html page\",\n        ContentType = \"text/html\",\n        Content = \"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InpoLUNOIj4KICA8aGVhZD4KICAgIDx0aXRsZT40MDMgRm9yYmlkZGVuPC90aXRsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8aDE+NDAzIEZvcmJpZGRlbjwvaDE+CiAgPC9ib2R5Pgo8L2h0bWw+\",\n        PageName = \"resource_example_html_page\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := esa.NewPage(ctx, \"default\", \u0026esa.PageArgs{\n\t\t\tDescription: pulumi.String(\"example resource html page\"),\n\t\t\tContentType: pulumi.String(\"text/html\"),\n\t\t\tContent:     pulumi.String(\"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InpoLUNOIj4KICA8aGVhZD4KICAgIDx0aXRsZT40MDMgRm9yYmlkZGVuPC90aXRsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8aDE+NDAzIEZvcmJpZGRlbjwvaDE+CiAgPC9ib2R5Pgo8L2h0bWw+\"),\n\t\t\tPageName:    pulumi.String(\"resource_example_html_page\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.Page;\nimport com.pulumi.alicloud.esa.PageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Page(\"default\", PageArgs.builder()\n            .description(\"example resource html page\")\n            .contentType(\"text/html\")\n            .content(\"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InpoLUNOIj4KICA8aGVhZD4KICAgIDx0aXRsZT40MDMgRm9yYmlkZGVuPC90aXRsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8aDE+NDAzIEZvcmJpZGRlbjwvaDE+CiAgPC9ib2R5Pgo8L2h0bWw+\")\n            .pageName(\"resource_example_html_page\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:esa:Page\n    properties:\n      description: example resource html page\n      contentType: text/html\n      content: PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InpoLUNOIj4KICA8aGVhZD4KICAgIDx0aXRsZT40MDMgRm9yYmlkZGVuPC90aXRsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8aDE+NDAzIEZvcmJpZGRlbjwvaDE+CiAgPC9ib2R5Pgo8L2h0bWw+\n      pageName: resource_example_html_page\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Page can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/page:Page example \u003cid\u003e\n```\n\n","properties":{"content":{"type":"string","description":"The Base64-encoded content of the error page. The content type is specified by the Content-Type field.\n"},"contentType":{"type":"string","description":"The Content-Type field in the HTTP header.\n"},"description":{"type":"string","description":"The description of the custom error page.\n"},"pageName":{"type":"string","description":"The name of the custom response page.\n"}},"required":["contentType","pageName"],"inputProperties":{"content":{"type":"string","description":"The Base64-encoded content of the error page. The content type is specified by the Content-Type field.\n"},"contentType":{"type":"string","description":"The Content-Type field in the HTTP header.\n"},"description":{"type":"string","description":"The description of the custom error page.\n"},"pageName":{"type":"string","description":"The name of the custom response page.\n"}},"requiredInputs":["contentType","pageName"],"stateInputs":{"description":"Input properties used for looking up and filtering Page resources.\n","properties":{"content":{"type":"string","description":"The Base64-encoded content of the error page. The content type is specified by the Content-Type field.\n"},"contentType":{"type":"string","description":"The Content-Type field in the HTTP header.\n"},"description":{"type":"string","description":"The description of the custom error page.\n"},"pageName":{"type":"string","description":"The name of the custom response page.\n"}},"type":"object"}},"alicloud:esa/ratePlanInstance:RatePlanInstance":{"description":"Provides a ESA Rate Plan Instance resource.\n\n\n\nFor information about ESA Rate Plan Instance and how to use it, see [What is Rate Plan Instance](https://www.alibabacloud.com/help/en/edge-security-acceleration/esa/product-overview/query-package-information).\n\n\u003e **NOTE:** Available since v1.234.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.esa.RatePlanInstance(\"default\", {\n    type: \"NS\",\n    autoRenew: true,\n    period: 1,\n    paymentType: \"Subscription\",\n    coverage: \"overseas\",\n    planName: \"basic\",\n    autoPay: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.esa.RatePlanInstance(\"default\",\n    type=\"NS\",\n    auto_renew=True,\n    period=1,\n    payment_type=\"Subscription\",\n    coverage=\"overseas\",\n    plan_name=\"basic\",\n    auto_pay=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Esa.RatePlanInstance(\"default\", new()\n    {\n        Type = \"NS\",\n        AutoRenew = true,\n        Period = 1,\n        PaymentType = \"Subscription\",\n        Coverage = \"overseas\",\n        PlanName = \"basic\",\n        AutoPay = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := esa.NewRatePlanInstance(ctx, \"default\", \u0026esa.RatePlanInstanceArgs{\n\t\t\tType:        pulumi.String(\"NS\"),\n\t\t\tAutoRenew:   pulumi.Bool(true),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tPaymentType: pulumi.String(\"Subscription\"),\n\t\t\tCoverage:    pulumi.String(\"overseas\"),\n\t\t\tPlanName:    pulumi.String(\"basic\"),\n\t\t\tAutoPay:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.RatePlanInstance;\nimport com.pulumi.alicloud.esa.RatePlanInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new RatePlanInstance(\"default\", RatePlanInstanceArgs.builder()\n            .type(\"NS\")\n            .autoRenew(true)\n            .period(1)\n            .paymentType(\"Subscription\")\n            .coverage(\"overseas\")\n            .planName(\"basic\")\n            .autoPay(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:esa:RatePlanInstance\n    properties:\n      type: NS\n      autoRenew: true\n      period: '1'\n      paymentType: Subscription\n      coverage: overseas\n      planName: basic\n      autoPay: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Rate Plan Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/ratePlanInstance:RatePlanInstance example \u003cid\u003e\n```\n\n","properties":{"autoPay":{"type":"boolean","description":"Specifies whether to enable auto payment.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"autoRenew":{"type":"boolean","description":"Auto-renewal:\n"},"coverage":{"type":"string","description":"The service locations for the websites that can be associated with the plan. Multiple values are separated by commas (,). Valid values:\n"},"createTime":{"type":"string","description":"The time when the plan was purchased.\n"},"instanceStatus":{"type":"string","description":"The instance status.\n"},"paymentType":{"type":"string","description":"The billing method. Valid values:\n- `Subscription`: subscription.\n"},"period":{"type":"integer","description":"Subscription period (in months).\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"planName":{"type":"string","description":"Package name.  \n\nChinese website account:\n"},"status":{"type":"string","description":"The plan status. , the plan is unavailable.\n"},"type":{"type":"string","description":"The DNS setup option for the website. Valid values:\n- `NS`\n- `CNAME`\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"}},"required":["createTime","instanceStatus","paymentType","status"],"inputProperties":{"autoPay":{"type":"boolean","description":"Specifies whether to enable auto payment.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"autoRenew":{"type":"boolean","description":"Auto-renewal:\n"},"coverage":{"type":"string","description":"The service locations for the websites that can be associated with the plan. Multiple values are separated by commas (,). Valid values:\n"},"paymentType":{"type":"string","description":"The billing method. Valid values:\n- `Subscription`: subscription.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Subscription period (in months).\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"planName":{"type":"string","description":"Package name.  \n\nChinese website account:\n"},"type":{"type":"string","description":"The DNS setup option for the website. Valid values:\n- `NS`\n- `CNAME`\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering RatePlanInstance resources.\n","properties":{"autoPay":{"type":"boolean","description":"Specifies whether to enable auto payment.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"autoRenew":{"type":"boolean","description":"Auto-renewal:\n"},"coverage":{"type":"string","description":"The service locations for the websites that can be associated with the plan. Multiple values are separated by commas (,). Valid values:\n"},"createTime":{"type":"string","description":"The time when the plan was purchased.\n"},"instanceStatus":{"type":"string","description":"The instance status.\n"},"paymentType":{"type":"string","description":"The billing method. Valid values:\n- `Subscription`: subscription.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Subscription period (in months).\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"planName":{"type":"string","description":"Package name.  \n\nChinese website account:\n"},"status":{"type":"string","description":"The plan status. , the plan is unavailable.\n"},"type":{"type":"string","description":"The DNS setup option for the website. Valid values:\n- `NS`\n- `CNAME`\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"}},"type":"object"}},"alicloud:esa/record:Record":{"description":"Provides a ESA Record resource.\n\n\n\nFor information about ESA Record and how to use it, see [What is Record](https://www.alibabacloud.com/help/en/edge-security-acceleration/esa/user-guide/add-parsing-record/).\n\n\u003e **NOTE:** Available since v1.240.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.esa.RatePlanInstance(\"default\", {\n    type: \"NS\",\n    autoRenew: false,\n    period: 1,\n    paymentType: \"Subscription\",\n    coverage: \"overseas\",\n    autoPay: true,\n    planName: \"high\",\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: \"idlexamplerecord.com\",\n    instanceId: _default.id,\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultRecord = new alicloud.esa.Record(\"default\", {\n    data: {\n        value: \"www.eerrraaa.com\",\n        weight: 1,\n        priority: 1,\n        port: 80,\n    },\n    ttl: 100,\n    recordName: \"_udp._sip.idlexamplerecord.com\",\n    comment: \"This is a remark\",\n    siteId: defaultSite.id,\n    recordType: \"SRV\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.esa.RatePlanInstance(\"default\",\n    type=\"NS\",\n    auto_renew=False,\n    period=1,\n    payment_type=\"Subscription\",\n    coverage=\"overseas\",\n    auto_pay=True,\n    plan_name=\"high\")\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=\"idlexamplerecord.com\",\n    instance_id=default.id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_record = alicloud.esa.Record(\"default\",\n    data={\n        \"value\": \"www.eerrraaa.com\",\n        \"weight\": 1,\n        \"priority\": 1,\n        \"port\": 80,\n    },\n    ttl=100,\n    record_name=\"_udp._sip.idlexamplerecord.com\",\n    comment=\"This is a remark\",\n    site_id=default_site.id,\n    record_type=\"SRV\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Esa.RatePlanInstance(\"default\", new()\n    {\n        Type = \"NS\",\n        AutoRenew = false,\n        Period = 1,\n        PaymentType = \"Subscription\",\n        Coverage = \"overseas\",\n        AutoPay = true,\n        PlanName = \"high\",\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = \"idlexamplerecord.com\",\n        InstanceId = @default.Id,\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultRecord = new AliCloud.Esa.Record(\"default\", new()\n    {\n        Data = new AliCloud.Esa.Inputs.RecordDataArgs\n        {\n            Value = \"www.eerrraaa.com\",\n            Weight = 1,\n            Priority = 1,\n            Port = 80,\n        },\n        Ttl = 100,\n        RecordName = \"_udp._sip.idlexamplerecord.com\",\n        Comment = \"This is a remark\",\n        SiteId = defaultSite.Id,\n        RecordType = \"SRV\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := esa.NewRatePlanInstance(ctx, \"default\", \u0026esa.RatePlanInstanceArgs{\n\t\t\tType:        pulumi.String(\"NS\"),\n\t\t\tAutoRenew:   pulumi.Bool(false),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tPaymentType: pulumi.String(\"Subscription\"),\n\t\t\tCoverage:    pulumi.String(\"overseas\"),\n\t\t\tAutoPay:     pulumi.Bool(true),\n\t\t\tPlanName:    pulumi.String(\"high\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"idlexamplerecord.com\"),\n\t\t\tInstanceId: _default.ID(),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewRecord(ctx, \"default\", \u0026esa.RecordArgs{\n\t\t\tData: \u0026esa.RecordDataArgs{\n\t\t\t\tValue:    pulumi.String(\"www.eerrraaa.com\"),\n\t\t\t\tWeight:   pulumi.Int(1),\n\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\tPort:     pulumi.Int(80),\n\t\t\t},\n\t\t\tTtl:        pulumi.Int(100),\n\t\t\tRecordName: pulumi.String(\"_udp._sip.idlexamplerecord.com\"),\n\t\t\tComment:    pulumi.String(\"This is a remark\"),\n\t\t\tSiteId:     defaultSite.ID(),\n\t\t\tRecordType: pulumi.String(\"SRV\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.RatePlanInstance;\nimport com.pulumi.alicloud.esa.RatePlanInstanceArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.Record;\nimport com.pulumi.alicloud.esa.RecordArgs;\nimport com.pulumi.alicloud.esa.inputs.RecordDataArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new RatePlanInstance(\"default\", RatePlanInstanceArgs.builder()\n            .type(\"NS\")\n            .autoRenew(false)\n            .period(1)\n            .paymentType(\"Subscription\")\n            .coverage(\"overseas\")\n            .autoPay(true)\n            .planName(\"high\")\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(\"idlexamplerecord.com\")\n            .instanceId(default_.id())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultRecord = new Record(\"defaultRecord\", RecordArgs.builder()\n            .data(RecordDataArgs.builder()\n                .value(\"www.eerrraaa.com\")\n                .weight(1)\n                .priority(1)\n                .port(80)\n                .build())\n            .ttl(100)\n            .recordName(\"_udp._sip.idlexamplerecord.com\")\n            .comment(\"This is a remark\")\n            .siteId(defaultSite.id())\n            .recordType(\"SRV\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:esa:RatePlanInstance\n    properties:\n      type: NS\n      autoRenew: 'false'\n      period: '1'\n      paymentType: Subscription\n      coverage: overseas\n      autoPay: 'true'\n      planName: high\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: idlexamplerecord.com\n      instanceId: ${default.id}\n      coverage: overseas\n      accessType: NS\n  defaultRecord:\n    type: alicloud:esa:Record\n    name: default\n    properties:\n      data:\n        value: www.eerrraaa.com\n        weight: '1'\n        priority: '1'\n        port: '80'\n      ttl: '100'\n      recordName: _udp._sip.idlexamplerecord.com\n      comment: This is a remark\n      siteId: ${defaultSite.id}\n      recordType: SRV\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Record can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/record:Record example \u003cid\u003e\n```\n\n","properties":{"authConf":{"$ref":"#/types/alicloud:esa/RecordAuthConf:RecordAuthConf","description":"The origin authentication information of the CNAME record. See \u003cspan pulumi-lang-nodejs=\"`authConf`\" pulumi-lang-dotnet=\"`AuthConf`\" pulumi-lang-go=\"`authConf`\" pulumi-lang-python=\"`auth_conf`\" pulumi-lang-yaml=\"`authConf`\" pulumi-lang-java=\"`authConf`\"\u003e`auth_conf`\u003c/span\u003e below.\n"},"bizName":{"type":"string","description":"The business scenario of the record for acceleration. Leave the parameter empty if your record is not proxied. Valid values:\n"},"comment":{"type":"string","description":"The comment of the record. The maximum length is 100 characters.\n"},"createTime":{"type":"string","description":"The time when the record was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"data":{"$ref":"#/types/alicloud:esa/RecordData:RecordData","description":"The DNS record information. The format of this field varies based on the record type. For more information, see [References](https://www.alibabacloud.com/help/doc-detail/2708761.html?spm=openapi-amp.newDocPublishment.0.0.6a0f281feoeVWr). See \u003cspan pulumi-lang-nodejs=\"`data`\" pulumi-lang-dotnet=\"`Data`\" pulumi-lang-go=\"`data`\" pulumi-lang-python=\"`data`\" pulumi-lang-yaml=\"`data`\" pulumi-lang-java=\"`data`\"\u003e`data`\u003c/span\u003e below.\n"},"hostPolicy":{"type":"string","description":"The origin host policy. This policy takes effect when the record type is CNAME. You can set the policy in two modes:\n"},"proxied":{"type":"boolean","description":"Specifies whether to proxy the record. Only CNAME and A/AAAA records can be proxied. Valid values:\n"},"recordName":{"type":"string","description":"The record name. This parameter specifies a filter condition for the query.\n"},"recordType":{"type":"string","description":"The type of the DNS record, such as A/AAAA, CNAME, and TXT.\n"},"siteId":{"type":"string","description":"The website ID.\n"},"sourceType":{"type":"string","description":"The origin type for the CNAME record. This parameter is required when you add a CNAME record. Valid values:\n- `OSS`: OSS bucket.\n- `S3`: S3 bucket.\n- `LB`: load balancer.\n- `OP`: origin pool.\n- `Domain`: domain name.\n- If you do not pass this parameter or if you leave its value empty, Domain is used by default.\n"},"ttl":{"type":"integer","description":"The TTL of the record. Unit: seconds. If the value is 1, the TTL of the record is determined by the system.\n"}},"required":["createTime","data","recordName","recordType","siteId"],"inputProperties":{"authConf":{"$ref":"#/types/alicloud:esa/RecordAuthConf:RecordAuthConf","description":"The origin authentication information of the CNAME record. See \u003cspan pulumi-lang-nodejs=\"`authConf`\" pulumi-lang-dotnet=\"`AuthConf`\" pulumi-lang-go=\"`authConf`\" pulumi-lang-python=\"`auth_conf`\" pulumi-lang-yaml=\"`authConf`\" pulumi-lang-java=\"`authConf`\"\u003e`auth_conf`\u003c/span\u003e below.\n"},"bizName":{"type":"string","description":"The business scenario of the record for acceleration. Leave the parameter empty if your record is not proxied. Valid values:\n"},"comment":{"type":"string","description":"The comment of the record. The maximum length is 100 characters.\n"},"data":{"$ref":"#/types/alicloud:esa/RecordData:RecordData","description":"The DNS record information. The format of this field varies based on the record type. For more information, see [References](https://www.alibabacloud.com/help/doc-detail/2708761.html?spm=openapi-amp.newDocPublishment.0.0.6a0f281feoeVWr). See \u003cspan pulumi-lang-nodejs=\"`data`\" pulumi-lang-dotnet=\"`Data`\" pulumi-lang-go=\"`data`\" pulumi-lang-python=\"`data`\" pulumi-lang-yaml=\"`data`\" pulumi-lang-java=\"`data`\"\u003e`data`\u003c/span\u003e below.\n"},"hostPolicy":{"type":"string","description":"The origin host policy. This policy takes effect when the record type is CNAME. You can set the policy in two modes:\n"},"proxied":{"type":"boolean","description":"Specifies whether to proxy the record. Only CNAME and A/AAAA records can be proxied. Valid values:\n"},"recordName":{"type":"string","description":"The record name. This parameter specifies a filter condition for the query.\n","willReplaceOnChanges":true},"recordType":{"type":"string","description":"The type of the DNS record, such as A/AAAA, CNAME, and TXT.\n","willReplaceOnChanges":true},"siteId":{"type":"string","description":"The website ID.\n","willReplaceOnChanges":true},"sourceType":{"type":"string","description":"The origin type for the CNAME record. This parameter is required when you add a CNAME record. Valid values:\n- `OSS`: OSS bucket.\n- `S3`: S3 bucket.\n- `LB`: load balancer.\n- `OP`: origin pool.\n- `Domain`: domain name.\n- If you do not pass this parameter or if you leave its value empty, Domain is used by default.\n"},"ttl":{"type":"integer","description":"The TTL of the record. Unit: seconds. If the value is 1, the TTL of the record is determined by the system.\n"}},"requiredInputs":["data","recordName","recordType","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering Record resources.\n","properties":{"authConf":{"$ref":"#/types/alicloud:esa/RecordAuthConf:RecordAuthConf","description":"The origin authentication information of the CNAME record. See \u003cspan pulumi-lang-nodejs=\"`authConf`\" pulumi-lang-dotnet=\"`AuthConf`\" pulumi-lang-go=\"`authConf`\" pulumi-lang-python=\"`auth_conf`\" pulumi-lang-yaml=\"`authConf`\" pulumi-lang-java=\"`authConf`\"\u003e`auth_conf`\u003c/span\u003e below.\n"},"bizName":{"type":"string","description":"The business scenario of the record for acceleration. Leave the parameter empty if your record is not proxied. Valid values:\n"},"comment":{"type":"string","description":"The comment of the record. The maximum length is 100 characters.\n"},"createTime":{"type":"string","description":"The time when the record was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"data":{"$ref":"#/types/alicloud:esa/RecordData:RecordData","description":"The DNS record information. The format of this field varies based on the record type. For more information, see [References](https://www.alibabacloud.com/help/doc-detail/2708761.html?spm=openapi-amp.newDocPublishment.0.0.6a0f281feoeVWr). See \u003cspan pulumi-lang-nodejs=\"`data`\" pulumi-lang-dotnet=\"`Data`\" pulumi-lang-go=\"`data`\" pulumi-lang-python=\"`data`\" pulumi-lang-yaml=\"`data`\" pulumi-lang-java=\"`data`\"\u003e`data`\u003c/span\u003e below.\n"},"hostPolicy":{"type":"string","description":"The origin host policy. This policy takes effect when the record type is CNAME. You can set the policy in two modes:\n"},"proxied":{"type":"boolean","description":"Specifies whether to proxy the record. Only CNAME and A/AAAA records can be proxied. Valid values:\n"},"recordName":{"type":"string","description":"The record name. This parameter specifies a filter condition for the query.\n","willReplaceOnChanges":true},"recordType":{"type":"string","description":"The type of the DNS record, such as A/AAAA, CNAME, and TXT.\n","willReplaceOnChanges":true},"siteId":{"type":"string","description":"The website ID.\n","willReplaceOnChanges":true},"sourceType":{"type":"string","description":"The origin type for the CNAME record. This parameter is required when you add a CNAME record. Valid values:\n- `OSS`: OSS bucket.\n- `S3`: S3 bucket.\n- `LB`: load balancer.\n- `OP`: origin pool.\n- `Domain`: domain name.\n- If you do not pass this parameter or if you leave its value empty, Domain is used by default.\n"},"ttl":{"type":"integer","description":"The TTL of the record. Unit: seconds. If the value is 1, the TTL of the record is determined by the system.\n"}},"type":"object"}},"alicloud:esa/redirectRule:RedirectRule":{"description":"Provides a ESA Redirect Rule resource.\n\n\n\nFor information about ESA Redirect Rule and how to use it, see [What is Redirect Rule](https://www.alibabacloud.com/help/en/edge-security-acceleration/esa/api-esa-2024-09-10-createredirectrule).\n\n\u003e **NOTE:** Available since v1.243.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst resourceRedirectRuleExample = new alicloud.esa.RatePlanInstance(\"resource_RedirectRule_example\", {\n    type: \"NS\",\n    autoRenew: false,\n    period: 1,\n    paymentType: \"Subscription\",\n    coverage: \"overseas\",\n    autoPay: true,\n    planName: \"high\",\n});\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst resourceSiteRedirectRuleExample = new alicloud.esa.Site(\"resource_Site_RedirectRule_example\", {\n    siteName: `gositecdn-${_default.result}.cn`,\n    instanceId: resourceRedirectRuleExample.id,\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultRedirectRule = new alicloud.esa.RedirectRule(\"default\", {\n    statusCode: \"301\",\n    ruleName: \"example\",\n    siteId: resourceSiteRedirectRuleExample.id,\n    type: \"static\",\n    reserveQueryString: \"on\",\n    targetUrl: \"http://www.exapmle.com/index.html\",\n    ruleEnable: \"on\",\n    siteVersion: 0,\n    rule: \"(http.host eq \\\"video.example.com\\\")\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nresource_redirect_rule_example = alicloud.esa.RatePlanInstance(\"resource_RedirectRule_example\",\n    type=\"NS\",\n    auto_renew=False,\n    period=1,\n    payment_type=\"Subscription\",\n    coverage=\"overseas\",\n    auto_pay=True,\n    plan_name=\"high\")\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nresource_site_redirect_rule_example = alicloud.esa.Site(\"resource_Site_RedirectRule_example\",\n    site_name=f\"gositecdn-{default['result']}.cn\",\n    instance_id=resource_redirect_rule_example.id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_redirect_rule = alicloud.esa.RedirectRule(\"default\",\n    status_code=\"301\",\n    rule_name=\"example\",\n    site_id=resource_site_redirect_rule_example.id,\n    type=\"static\",\n    reserve_query_string=\"on\",\n    target_url=\"http://www.exapmle.com/index.html\",\n    rule_enable=\"on\",\n    site_version=0,\n    rule=\"(http.host eq \\\"video.example.com\\\")\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var resourceRedirectRuleExample = new AliCloud.Esa.RatePlanInstance(\"resource_RedirectRule_example\", new()\n    {\n        Type = \"NS\",\n        AutoRenew = false,\n        Period = 1,\n        PaymentType = \"Subscription\",\n        Coverage = \"overseas\",\n        AutoPay = true,\n        PlanName = \"high\",\n    });\n\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var resourceSiteRedirectRuleExample = new AliCloud.Esa.Site(\"resource_Site_RedirectRule_example\", new()\n    {\n        SiteName = $\"gositecdn-{@default.Result}.cn\",\n        InstanceId = resourceRedirectRuleExample.Id,\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultRedirectRule = new AliCloud.Esa.RedirectRule(\"default\", new()\n    {\n        StatusCode = \"301\",\n        RuleName = \"example\",\n        SiteId = resourceSiteRedirectRuleExample.Id,\n        Type = \"static\",\n        ReserveQueryString = \"on\",\n        TargetUrl = \"http://www.exapmle.com/index.html\",\n        RuleEnable = \"on\",\n        SiteVersion = 0,\n        Rule = \"(http.host eq \\\"video.example.com\\\")\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tresourceRedirectRuleExample, err := esa.NewRatePlanInstance(ctx, \"resource_RedirectRule_example\", \u0026esa.RatePlanInstanceArgs{\n\t\t\tType:        pulumi.String(\"NS\"),\n\t\t\tAutoRenew:   pulumi.Bool(false),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tPaymentType: pulumi.String(\"Subscription\"),\n\t\t\tCoverage:    pulumi.String(\"overseas\"),\n\t\t\tAutoPay:     pulumi.Bool(true),\n\t\t\tPlanName:    pulumi.String(\"high\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresourceSiteRedirectRuleExample, err := esa.NewSite(ctx, \"resource_Site_RedirectRule_example\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.Sprintf(\"gositecdn-%v.cn\", _default.Result),\n\t\t\tInstanceId: resourceRedirectRuleExample.ID(),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewRedirectRule(ctx, \"default\", \u0026esa.RedirectRuleArgs{\n\t\t\tStatusCode:         pulumi.String(\"301\"),\n\t\t\tRuleName:           pulumi.String(\"example\"),\n\t\t\tSiteId:             resourceSiteRedirectRuleExample.ID(),\n\t\t\tType:               pulumi.String(\"static\"),\n\t\t\tReserveQueryString: pulumi.String(\"on\"),\n\t\t\tTargetUrl:          pulumi.String(\"http://www.exapmle.com/index.html\"),\n\t\t\tRuleEnable:         pulumi.String(\"on\"),\n\t\t\tSiteVersion:        pulumi.Int(0),\n\t\t\tRule:               pulumi.String(\"(http.host eq \\\"video.example.com\\\")\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.RatePlanInstance;\nimport com.pulumi.alicloud.esa.RatePlanInstanceArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.RedirectRule;\nimport com.pulumi.alicloud.esa.RedirectRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var resourceRedirectRuleExample = new RatePlanInstance(\"resourceRedirectRuleExample\", RatePlanInstanceArgs.builder()\n            .type(\"NS\")\n            .autoRenew(false)\n            .period(1)\n            .paymentType(\"Subscription\")\n            .coverage(\"overseas\")\n            .autoPay(true)\n            .planName(\"high\")\n            .build());\n\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var resourceSiteRedirectRuleExample = new Site(\"resourceSiteRedirectRuleExample\", SiteArgs.builder()\n            .siteName(String.format(\"gositecdn-%s.cn\", default_.result()))\n            .instanceId(resourceRedirectRuleExample.id())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultRedirectRule = new RedirectRule(\"defaultRedirectRule\", RedirectRuleArgs.builder()\n            .statusCode(\"301\")\n            .ruleName(\"example\")\n            .siteId(resourceSiteRedirectRuleExample.id())\n            .type(\"static\")\n            .reserveQueryString(\"on\")\n            .targetUrl(\"http://www.exapmle.com/index.html\")\n            .ruleEnable(\"on\")\n            .siteVersion(0)\n            .rule(\"(http.host eq \\\"video.example.com\\\")\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  resourceRedirectRuleExample:\n    type: alicloud:esa:RatePlanInstance\n    name: resource_RedirectRule_example\n    properties:\n      type: NS\n      autoRenew: 'false'\n      period: '1'\n      paymentType: Subscription\n      coverage: overseas\n      autoPay: 'true'\n      planName: high\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  resourceSiteRedirectRuleExample:\n    type: alicloud:esa:Site\n    name: resource_Site_RedirectRule_example\n    properties:\n      siteName: gositecdn-${default.result}.cn\n      instanceId: ${resourceRedirectRuleExample.id}\n      coverage: overseas\n      accessType: NS\n  defaultRedirectRule:\n    type: alicloud:esa:RedirectRule\n    name: default\n    properties:\n      statusCode: '301'\n      ruleName: example\n      siteId: ${resourceSiteRedirectRuleExample.id}\n      type: static\n      reserveQueryString: on\n      targetUrl: http://www.exapmle.com/index.html\n      ruleEnable: on\n      siteVersion: '0'\n      rule: (http.host eq \"video.example.com\")\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Redirect Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/redirectRule:RedirectRule example \u003csite_id\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"configId":{"type":"integer","description":"Config Id\n"},"reserveQueryString":{"type":"string","description":"Indicates whether the feature of retaining the query string is enabled. Valid values:\n\n- on\n- off\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n● Match all incoming requests: value set to true\n● Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"Order of rule execution. The smaller the value, the higher the priority for execution.\n"},"siteId":{"type":"string","description":"The website ID, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.\n"},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n"},"statusCode":{"type":"string","description":"The response code that you want to use to indicate URL redirection. Valid values:\n\n- 301\n- 302\n- 303\n- 307\n- 308\n"},"targetUrl":{"type":"string","description":"The destination URL to which requests are redirected.\n"},"type":{"type":"string","description":"The redirection type. Value range:\n- static: static mode.\n- dynamic: dynamic mode.\n"}},"required":["configId","reserveQueryString","sequence","siteId","statusCode","targetUrl","type"],"inputProperties":{"reserveQueryString":{"type":"string","description":"Indicates whether the feature of retaining the query string is enabled. Valid values:\n\n- on\n- off\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n● Match all incoming requests: value set to true\n● Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"Order of rule execution. The smaller the value, the higher the priority for execution.\n"},"siteId":{"type":"string","description":"The website ID, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true},"statusCode":{"type":"string","description":"The response code that you want to use to indicate URL redirection. Valid values:\n\n- 301\n- 302\n- 303\n- 307\n- 308\n"},"targetUrl":{"type":"string","description":"The destination URL to which requests are redirected.\n"},"type":{"type":"string","description":"The redirection type. Value range:\n- static: static mode.\n- dynamic: dynamic mode.\n"}},"requiredInputs":["reserveQueryString","siteId","statusCode","targetUrl","type"],"stateInputs":{"description":"Input properties used for looking up and filtering RedirectRule resources.\n","properties":{"configId":{"type":"integer","description":"Config Id\n"},"reserveQueryString":{"type":"string","description":"Indicates whether the feature of retaining the query string is enabled. Valid values:\n\n- on\n- off\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n● Match all incoming requests: value set to true\n● Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"Order of rule execution. The smaller the value, the higher the priority for execution.\n"},"siteId":{"type":"string","description":"The website ID, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true},"statusCode":{"type":"string","description":"The response code that you want to use to indicate URL redirection. Valid values:\n\n- 301\n- 302\n- 303\n- 307\n- 308\n"},"targetUrl":{"type":"string","description":"The destination URL to which requests are redirected.\n"},"type":{"type":"string","description":"The redirection type. Value range:\n- static: static mode.\n- dynamic: dynamic mode.\n"}},"type":"object"}},"alicloud:esa/rewriteUrlRule:RewriteUrlRule":{"description":"Provides a ESA Rewrite Url Rule resource.\n\n\n\nFor information about ESA Rewrite Url Rule and how to use it, see [What is Rewrite Url Rule](https://www.alibabacloud.com/help/en/edge-security-acceleration/esa/api-esa-2024-09-10-createrewriteurlrule).\n\n\u003e **NOTE:** Available since v1.243.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst resourceRewriteUrlRuleRatePlanInstanceExample = new alicloud.esa.RatePlanInstance(\"resource_RewriteUrlRule_RatePlanInstance_example\", {\n    type: \"NS\",\n    autoRenew: false,\n    period: 1,\n    paymentType: \"Subscription\",\n    coverage: \"overseas\",\n    autoPay: true,\n    planName: \"high\",\n});\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst resourceRewriteUrlRuleSiteExample = new alicloud.esa.Site(\"resource_RewriteUrlRule_Site_example\", {\n    siteName: `gositecdn-${_default.result}.cn`,\n    instanceId: resourceRewriteUrlRuleRatePlanInstanceExample.id,\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultRewriteUrlRule = new alicloud.esa.RewriteUrlRule(\"default\", {\n    rewriteUriType: \"static\",\n    rewriteQueryStringType: \"static\",\n    siteId: resourceRewriteUrlRuleSiteExample.id,\n    ruleName: \"example\",\n    ruleEnable: \"on\",\n    queryString: \"example=123\",\n    siteVersion: 0,\n    rule: \"http.host eq \\\"video.example.com\\\"\",\n    uri: \"/image/example.jpg\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nresource_rewrite_url_rule_rate_plan_instance_example = alicloud.esa.RatePlanInstance(\"resource_RewriteUrlRule_RatePlanInstance_example\",\n    type=\"NS\",\n    auto_renew=False,\n    period=1,\n    payment_type=\"Subscription\",\n    coverage=\"overseas\",\n    auto_pay=True,\n    plan_name=\"high\")\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nresource_rewrite_url_rule_site_example = alicloud.esa.Site(\"resource_RewriteUrlRule_Site_example\",\n    site_name=f\"gositecdn-{default['result']}.cn\",\n    instance_id=resource_rewrite_url_rule_rate_plan_instance_example.id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_rewrite_url_rule = alicloud.esa.RewriteUrlRule(\"default\",\n    rewrite_uri_type=\"static\",\n    rewrite_query_string_type=\"static\",\n    site_id=resource_rewrite_url_rule_site_example.id,\n    rule_name=\"example\",\n    rule_enable=\"on\",\n    query_string=\"example=123\",\n    site_version=0,\n    rule=\"http.host eq \\\"video.example.com\\\"\",\n    uri=\"/image/example.jpg\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var resourceRewriteUrlRuleRatePlanInstanceExample = new AliCloud.Esa.RatePlanInstance(\"resource_RewriteUrlRule_RatePlanInstance_example\", new()\n    {\n        Type = \"NS\",\n        AutoRenew = false,\n        Period = 1,\n        PaymentType = \"Subscription\",\n        Coverage = \"overseas\",\n        AutoPay = true,\n        PlanName = \"high\",\n    });\n\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var resourceRewriteUrlRuleSiteExample = new AliCloud.Esa.Site(\"resource_RewriteUrlRule_Site_example\", new()\n    {\n        SiteName = $\"gositecdn-{@default.Result}.cn\",\n        InstanceId = resourceRewriteUrlRuleRatePlanInstanceExample.Id,\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultRewriteUrlRule = new AliCloud.Esa.RewriteUrlRule(\"default\", new()\n    {\n        RewriteUriType = \"static\",\n        RewriteQueryStringType = \"static\",\n        SiteId = resourceRewriteUrlRuleSiteExample.Id,\n        RuleName = \"example\",\n        RuleEnable = \"on\",\n        QueryString = \"example=123\",\n        SiteVersion = 0,\n        Rule = \"http.host eq \\\"video.example.com\\\"\",\n        Uri = \"/image/example.jpg\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tresourceRewriteUrlRuleRatePlanInstanceExample, err := esa.NewRatePlanInstance(ctx, \"resource_RewriteUrlRule_RatePlanInstance_example\", \u0026esa.RatePlanInstanceArgs{\n\t\t\tType:        pulumi.String(\"NS\"),\n\t\t\tAutoRenew:   pulumi.Bool(false),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tPaymentType: pulumi.String(\"Subscription\"),\n\t\t\tCoverage:    pulumi.String(\"overseas\"),\n\t\t\tAutoPay:     pulumi.Bool(true),\n\t\t\tPlanName:    pulumi.String(\"high\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresourceRewriteUrlRuleSiteExample, err := esa.NewSite(ctx, \"resource_RewriteUrlRule_Site_example\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.Sprintf(\"gositecdn-%v.cn\", _default.Result),\n\t\t\tInstanceId: resourceRewriteUrlRuleRatePlanInstanceExample.ID(),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewRewriteUrlRule(ctx, \"default\", \u0026esa.RewriteUrlRuleArgs{\n\t\t\tRewriteUriType:         pulumi.String(\"static\"),\n\t\t\tRewriteQueryStringType: pulumi.String(\"static\"),\n\t\t\tSiteId:                 resourceRewriteUrlRuleSiteExample.ID(),\n\t\t\tRuleName:               pulumi.String(\"example\"),\n\t\t\tRuleEnable:             pulumi.String(\"on\"),\n\t\t\tQueryString:            pulumi.String(\"example=123\"),\n\t\t\tSiteVersion:            pulumi.Int(0),\n\t\t\tRule:                   pulumi.String(\"http.host eq \\\"video.example.com\\\"\"),\n\t\t\tUri:                    pulumi.String(\"/image/example.jpg\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.RatePlanInstance;\nimport com.pulumi.alicloud.esa.RatePlanInstanceArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.RewriteUrlRule;\nimport com.pulumi.alicloud.esa.RewriteUrlRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var resourceRewriteUrlRuleRatePlanInstanceExample = new RatePlanInstance(\"resourceRewriteUrlRuleRatePlanInstanceExample\", RatePlanInstanceArgs.builder()\n            .type(\"NS\")\n            .autoRenew(false)\n            .period(1)\n            .paymentType(\"Subscription\")\n            .coverage(\"overseas\")\n            .autoPay(true)\n            .planName(\"high\")\n            .build());\n\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var resourceRewriteUrlRuleSiteExample = new Site(\"resourceRewriteUrlRuleSiteExample\", SiteArgs.builder()\n            .siteName(String.format(\"gositecdn-%s.cn\", default_.result()))\n            .instanceId(resourceRewriteUrlRuleRatePlanInstanceExample.id())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultRewriteUrlRule = new RewriteUrlRule(\"defaultRewriteUrlRule\", RewriteUrlRuleArgs.builder()\n            .rewriteUriType(\"static\")\n            .rewriteQueryStringType(\"static\")\n            .siteId(resourceRewriteUrlRuleSiteExample.id())\n            .ruleName(\"example\")\n            .ruleEnable(\"on\")\n            .queryString(\"example=123\")\n            .siteVersion(0)\n            .rule(\"http.host eq \\\"video.example.com\\\"\")\n            .uri(\"/image/example.jpg\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  resourceRewriteUrlRuleRatePlanInstanceExample:\n    type: alicloud:esa:RatePlanInstance\n    name: resource_RewriteUrlRule_RatePlanInstance_example\n    properties:\n      type: NS\n      autoRenew: 'false'\n      period: '1'\n      paymentType: Subscription\n      coverage: overseas\n      autoPay: 'true'\n      planName: high\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  resourceRewriteUrlRuleSiteExample:\n    type: alicloud:esa:Site\n    name: resource_RewriteUrlRule_Site_example\n    properties:\n      siteName: gositecdn-${default.result}.cn\n      instanceId: ${resourceRewriteUrlRuleRatePlanInstanceExample.id}\n      coverage: overseas\n      accessType: NS\n  defaultRewriteUrlRule:\n    type: alicloud:esa:RewriteUrlRule\n    name: default\n    properties:\n      rewriteUriType: static\n      rewriteQueryStringType: static\n      siteId: ${resourceRewriteUrlRuleSiteExample.id}\n      ruleName: example\n      ruleEnable: on\n      queryString: example=123\n      siteVersion: '0'\n      rule: http.host eq \"video.example.com\"\n      uri: /image/example.jpg\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Rewrite Url Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/rewriteUrlRule:RewriteUrlRule example \u003csite_id\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"configId":{"type":"integer","description":"ConfigId\n"},"queryString":{"type":"string","description":"The desired query string to which you want to rewrite the query string in the original request.\n"},"rewriteQueryStringType":{"type":"string","description":"Query string rewrite type. Value range:\n"},"rewriteUriType":{"type":"string","description":"URI rewrite type. Value range:\n"},"rule":{"type":"string","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n‒ on: open.\n‒ off: close.\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The website ID, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.\n"},"siteVersion":{"type":"integer","description":"Version number of the site configuration. For a site with configuration version management enabled, you can use this parameter to specify the site version in which the configuration takes effect. The default version is 0.\n"},"uri":{"type":"string","description":"The desired URI to which you want to rewrite the path in the original request.\n"}},"required":["configId","sequence","siteId"],"inputProperties":{"queryString":{"type":"string","description":"The desired query string to which you want to rewrite the query string in the original request.\n"},"rewriteQueryStringType":{"type":"string","description":"Query string rewrite type. Value range:\n"},"rewriteUriType":{"type":"string","description":"URI rewrite type. Value range:\n"},"rule":{"type":"string","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n‒ on: open.\n‒ off: close.\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The website ID, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"Version number of the site configuration. For a site with configuration version management enabled, you can use this parameter to specify the site version in which the configuration takes effect. The default version is 0.\n","willReplaceOnChanges":true},"uri":{"type":"string","description":"The desired URI to which you want to rewrite the path in the original request.\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering RewriteUrlRule resources.\n","properties":{"configId":{"type":"integer","description":"ConfigId\n"},"queryString":{"type":"string","description":"The desired query string to which you want to rewrite the query string in the original request.\n"},"rewriteQueryStringType":{"type":"string","description":"Query string rewrite type. Value range:\n"},"rewriteUriType":{"type":"string","description":"URI rewrite type. Value range:\n"},"rule":{"type":"string","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n‒ on: open.\n‒ off: close.\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The website ID, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"Version number of the site configuration. For a site with configuration version management enabled, you can use this parameter to specify the site version in which the configuration takes effect. The default version is 0.\n","willReplaceOnChanges":true},"uri":{"type":"string","description":"The desired URI to which you want to rewrite the path in the original request.\n"}},"type":"object"}},"alicloud:esa/routine:Routine":{"description":"Provides a ESA Routine resource.\n\n\n\nFor information about ESA Routine and how to use it, see [What is Routine](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateRoutine).\n\n\u003e **NOTE:** Available since v1.251.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.esa.Routine(\"default\", {\n    description: name,\n    name: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.esa.Routine(\"default\",\n    description=name,\n    name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Esa.Routine(\"default\", new()\n    {\n        Description = name,\n        Name = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := esa.NewRoutine(ctx, \"default\", \u0026esa.RoutineArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tName:        pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.Routine;\nimport com.pulumi.alicloud.esa.RoutineArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Routine(\"default\", RoutineArgs.builder()\n            .description(name)\n            .name(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:esa:Routine\n    properties:\n      description: ${name}\n      name: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Routine can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/routine:Routine example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The time when the routine was created.\n"},"description":{"type":"string","description":"The routine name, which must be unique in the same account.\n"},"name":{"type":"string","description":"Routine Name\n"}},"required":["createTime","name"],"inputProperties":{"description":{"type":"string","description":"The routine name, which must be unique in the same account.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Routine Name\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Routine resources.\n","properties":{"createTime":{"type":"string","description":"The time when the routine was created.\n"},"description":{"type":"string","description":"The routine name, which must be unique in the same account.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Routine Name\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/routineRelatedRecord:RoutineRelatedRecord":{"description":"Provides a ESA Routine Related Record resource.\n\n\n\nFor information about ESA Routine Related Record and how to use it, see [What is Routine Related Record](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateRoutineRelatedRecord).\n\n\u003e **NOTE:** Available since v1.265.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultRoutine = new alicloud.esa.Routine(\"default\", {\n    description: \"example-routine2\",\n    name: \"example-routine2\",\n});\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultRoutineRelatedRecord = new alicloud.esa.RoutineRelatedRecord(\"default\", {\n    name: defaultRoutine.id,\n    recordName: \"tfexampleacc.com\",\n    siteId: \"618651327383200\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_routine = alicloud.esa.Routine(\"default\",\n    description=\"example-routine2\",\n    name=\"example-routine2\")\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_routine_related_record = alicloud.esa.RoutineRelatedRecord(\"default\",\n    name=default_routine.id,\n    record_name=\"tfexampleacc.com\",\n    site_id=\"618651327383200\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultRoutine = new AliCloud.Esa.Routine(\"default\", new()\n    {\n        Description = \"example-routine2\",\n        Name = \"example-routine2\",\n    });\n\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultRoutineRelatedRecord = new AliCloud.Esa.RoutineRelatedRecord(\"default\", new()\n    {\n        Name = defaultRoutine.Id,\n        RecordName = \"tfexampleacc.com\",\n        SiteId = \"618651327383200\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultRoutine, err := esa.NewRoutine(ctx, \"default\", \u0026esa.RoutineArgs{\n\t\t\tDescription: pulumi.String(\"example-routine2\"),\n\t\t\tName:        pulumi.String(\"example-routine2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewRoutineRelatedRecord(ctx, \"default\", \u0026esa.RoutineRelatedRecordArgs{\n\t\t\tName:       defaultRoutine.ID(),\n\t\t\tRecordName: pulumi.String(\"tfexampleacc.com\"),\n\t\t\tSiteId:     pulumi.String(\"618651327383200\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.Routine;\nimport com.pulumi.alicloud.esa.RoutineArgs;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.RoutineRelatedRecord;\nimport com.pulumi.alicloud.esa.RoutineRelatedRecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultRoutine = new Routine(\"defaultRoutine\", RoutineArgs.builder()\n            .description(\"example-routine2\")\n            .name(\"example-routine2\")\n            .build());\n\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultRoutineRelatedRecord = new RoutineRelatedRecord(\"defaultRoutineRelatedRecord\", RoutineRelatedRecordArgs.builder()\n            .name(defaultRoutine.id())\n            .recordName(\"tfexampleacc.com\")\n            .siteId(\"618651327383200\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultRoutine:\n    type: alicloud:esa:Routine\n    name: default\n    properties:\n      description: example-routine2\n      name: example-routine2\n  defaultRoutineRelatedRecord:\n    type: alicloud:esa:RoutineRelatedRecord\n    name: default\n    properties:\n      name: ${defaultRoutine.id}\n      recordName: tfexampleacc.com\n      siteId: '618651327383200'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Routine Related Record can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/routineRelatedRecord:RoutineRelatedRecord example \u003cname\u003e:\u003crecord_id\u003e\n```\n\n","properties":{"name":{"type":"string","description":"The routine name.\n"},"recordId":{"type":"integer","description":"The record ID.\n"},"recordName":{"type":"string","description":"The record name.\n"},"siteId":{"type":"string","description":"The website ID.\n"}},"required":["name","recordId","recordName","siteId"],"inputProperties":{"name":{"type":"string","description":"The routine name.\n","willReplaceOnChanges":true},"recordName":{"type":"string","description":"The record name.\n","willReplaceOnChanges":true},"siteId":{"type":"string","description":"The website ID.\n","willReplaceOnChanges":true}},"requiredInputs":["recordName","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering RoutineRelatedRecord resources.\n","properties":{"name":{"type":"string","description":"The routine name.\n","willReplaceOnChanges":true},"recordId":{"type":"integer","description":"The record ID.\n"},"recordName":{"type":"string","description":"The record name.\n","willReplaceOnChanges":true},"siteId":{"type":"string","description":"The website ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/routineRoute:RoutineRoute":{"description":"Provides a ESA Routine Route resource.\n\n\n\nFor information about ESA Routine Route and how to use it, see [What is Routine Route](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateRoutineRoute).\n\n\u003e **NOTE:** Available since v1.251.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: \"chenxin0116.site\",\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultRoutine = new alicloud.esa.Routine(\"default\", {\n    description: \"example-routine2\",\n    name: \"example-routine2\",\n});\nconst defaultRoutineRoute = new alicloud.esa.RoutineRoute(\"default\", {\n    routeEnable: \"on\",\n    rule: \"(http.host eq \\\"video.example1.com\\\")\",\n    sequence: 1,\n    routineName: defaultRoutine.name,\n    siteId: defaultSite.id,\n    bypass: \"off\",\n    routeName: \"example_routine\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=\"chenxin0116.site\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_routine = alicloud.esa.Routine(\"default\",\n    description=\"example-routine2\",\n    name=\"example-routine2\")\ndefault_routine_route = alicloud.esa.RoutineRoute(\"default\",\n    route_enable=\"on\",\n    rule=\"(http.host eq \\\"video.example1.com\\\")\",\n    sequence=1,\n    routine_name=default_routine.name,\n    site_id=default_site.id,\n    bypass=\"off\",\n    route_name=\"example_routine\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = \"chenxin0116.site\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultRoutine = new AliCloud.Esa.Routine(\"default\", new()\n    {\n        Description = \"example-routine2\",\n        Name = \"example-routine2\",\n    });\n\n    var defaultRoutineRoute = new AliCloud.Esa.RoutineRoute(\"default\", new()\n    {\n        RouteEnable = \"on\",\n        Rule = \"(http.host eq \\\"video.example1.com\\\")\",\n        Sequence = 1,\n        RoutineName = defaultRoutine.Name,\n        SiteId = defaultSite.Id,\n        Bypass = \"off\",\n        RouteName = \"example_routine\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"chenxin0116.site\"),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRoutine, err := esa.NewRoutine(ctx, \"default\", \u0026esa.RoutineArgs{\n\t\t\tDescription: pulumi.String(\"example-routine2\"),\n\t\t\tName:        pulumi.String(\"example-routine2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewRoutineRoute(ctx, \"default\", \u0026esa.RoutineRouteArgs{\n\t\t\tRouteEnable: pulumi.String(\"on\"),\n\t\t\tRule:        pulumi.String(\"(http.host eq \\\"video.example1.com\\\")\"),\n\t\t\tSequence:    pulumi.Int(1),\n\t\t\tRoutineName: defaultRoutine.Name,\n\t\t\tSiteId:      defaultSite.ID(),\n\t\t\tBypass:      pulumi.String(\"off\"),\n\t\t\tRouteName:   pulumi.String(\"example_routine\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.Routine;\nimport com.pulumi.alicloud.esa.RoutineArgs;\nimport com.pulumi.alicloud.esa.RoutineRoute;\nimport com.pulumi.alicloud.esa.RoutineRouteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(\"chenxin0116.site\")\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultRoutine = new Routine(\"defaultRoutine\", RoutineArgs.builder()\n            .description(\"example-routine2\")\n            .name(\"example-routine2\")\n            .build());\n\n        var defaultRoutineRoute = new RoutineRoute(\"defaultRoutineRoute\", RoutineRouteArgs.builder()\n            .routeEnable(\"on\")\n            .rule(\"(http.host eq \\\"video.example1.com\\\")\")\n            .sequence(1)\n            .routineName(defaultRoutine.name())\n            .siteId(defaultSite.id())\n            .bypass(\"off\")\n            .routeName(\"example_routine\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: chenxin0116.site\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  defaultRoutine:\n    type: alicloud:esa:Routine\n    name: default\n    properties:\n      description: example-routine2\n      name: example-routine2\n  defaultRoutineRoute:\n    type: alicloud:esa:RoutineRoute\n    name: default\n    properties:\n      routeEnable: on\n      rule: (http.host eq \"video.example1.com\")\n      sequence: '1'\n      routineName: ${defaultRoutine.name}\n      siteId: ${defaultSite.id}\n      bypass: off\n      routeName: example_routine\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Routine Route can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/routineRoute:RoutineRoute example \u003csite_id\u003e:\u003croutine_name\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"bypass":{"type":"string","description":"Bypass mode. Value range:\n- on: Open\n- off: off\n"},"configId":{"type":"integer","description":"Config Id\n"},"fallback":{"type":"string","description":"Spare\n"},"routeEnable":{"type":"string","description":"Routing switch. Value range:\n- on: Open\n- off: off\n"},"routeName":{"type":"string","description":"The route name.\n"},"routineName":{"type":"string","description":"The edge function Routine name.\n"},"rule":{"type":"string","description":"The rule content.\n"},"sequence":{"type":"integer","description":"Rule execution order.\n"},"siteId":{"type":"string","description":"Site Id\n"}},"required":["configId","fallback","routineName","siteId"],"inputProperties":{"bypass":{"type":"string","description":"Bypass mode. Value range:\n- on: Open\n- off: off\n"},"fallback":{"type":"string","description":"Spare\n"},"routeEnable":{"type":"string","description":"Routing switch. Value range:\n- on: Open\n- off: off\n"},"routeName":{"type":"string","description":"The route name.\n"},"routineName":{"type":"string","description":"The edge function Routine name.\n","willReplaceOnChanges":true},"rule":{"type":"string","description":"The rule content.\n"},"sequence":{"type":"integer","description":"Rule execution order.\n"},"siteId":{"type":"string","description":"Site Id\n","willReplaceOnChanges":true}},"requiredInputs":["routineName","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering RoutineRoute resources.\n","properties":{"bypass":{"type":"string","description":"Bypass mode. Value range:\n- on: Open\n- off: off\n"},"configId":{"type":"integer","description":"Config Id\n"},"fallback":{"type":"string","description":"Spare\n"},"routeEnable":{"type":"string","description":"Routing switch. Value range:\n- on: Open\n- off: off\n"},"routeName":{"type":"string","description":"The route name.\n"},"routineName":{"type":"string","description":"The edge function Routine name.\n","willReplaceOnChanges":true},"rule":{"type":"string","description":"The rule content.\n"},"sequence":{"type":"integer","description":"Rule execution order.\n"},"siteId":{"type":"string","description":"Site Id\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/scheduledPreloadExecution:ScheduledPreloadExecution":{"description":"Provides a ESA Scheduled Preload Execution resource.\n\n\n\nFor information about ESA Scheduled Preload Execution and how to use it, see [What is Scheduled Preload Execution](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateScheduledPreloadExecutions).\n\n\u003e **NOTE:** Available since v1.248.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: \"terraform.cn\",\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultScheduledPreloadJob = new alicloud.esa.ScheduledPreloadJob(\"default\", {\n    insertWay: \"textBox\",\n    siteId: defaultSite.id,\n    scheduledPreloadJobName: \"example_scheduledpreloadexecution_job\",\n    urlList: \"http://example.gositecdn.cn/example/example.txt\",\n});\nconst defaultScheduledPreloadExecution = new alicloud.esa.ScheduledPreloadExecution(\"default\", {\n    sliceLen: 5,\n    endTime: \"2024-06-04T10:02:09.000+08:00\",\n    startTime: \"2024-06-04T00:00:00.000+08:00\",\n    scheduledPreloadJobId: defaultScheduledPreloadJob.scheduledPreloadJobId,\n    interval: 30,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=\"terraform.cn\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_scheduled_preload_job = alicloud.esa.ScheduledPreloadJob(\"default\",\n    insert_way=\"textBox\",\n    site_id=default_site.id,\n    scheduled_preload_job_name=\"example_scheduledpreloadexecution_job\",\n    url_list=\"http://example.gositecdn.cn/example/example.txt\")\ndefault_scheduled_preload_execution = alicloud.esa.ScheduledPreloadExecution(\"default\",\n    slice_len=5,\n    end_time=\"2024-06-04T10:02:09.000+08:00\",\n    start_time=\"2024-06-04T00:00:00.000+08:00\",\n    scheduled_preload_job_id=default_scheduled_preload_job.scheduled_preload_job_id,\n    interval=30)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = \"terraform.cn\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultScheduledPreloadJob = new AliCloud.Esa.ScheduledPreloadJob(\"default\", new()\n    {\n        InsertWay = \"textBox\",\n        SiteId = defaultSite.Id,\n        ScheduledPreloadJobName = \"example_scheduledpreloadexecution_job\",\n        UrlList = \"http://example.gositecdn.cn/example/example.txt\",\n    });\n\n    var defaultScheduledPreloadExecution = new AliCloud.Esa.ScheduledPreloadExecution(\"default\", new()\n    {\n        SliceLen = 5,\n        EndTime = \"2024-06-04T10:02:09.000+08:00\",\n        StartTime = \"2024-06-04T00:00:00.000+08:00\",\n        ScheduledPreloadJobId = defaultScheduledPreloadJob.ScheduledPreloadJobId,\n        Interval = 30,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"terraform.cn\"),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScheduledPreloadJob, err := esa.NewScheduledPreloadJob(ctx, \"default\", \u0026esa.ScheduledPreloadJobArgs{\n\t\t\tInsertWay:               pulumi.String(\"textBox\"),\n\t\t\tSiteId:                  defaultSite.ID(),\n\t\t\tScheduledPreloadJobName: pulumi.String(\"example_scheduledpreloadexecution_job\"),\n\t\t\tUrlList:                 pulumi.String(\"http://example.gositecdn.cn/example/example.txt\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewScheduledPreloadExecution(ctx, \"default\", \u0026esa.ScheduledPreloadExecutionArgs{\n\t\t\tSliceLen:              pulumi.Int(5),\n\t\t\tEndTime:               pulumi.String(\"2024-06-04T10:02:09.000+08:00\"),\n\t\t\tStartTime:             pulumi.String(\"2024-06-04T00:00:00.000+08:00\"),\n\t\t\tScheduledPreloadJobId: defaultScheduledPreloadJob.ScheduledPreloadJobId,\n\t\t\tInterval:              pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.ScheduledPreloadJob;\nimport com.pulumi.alicloud.esa.ScheduledPreloadJobArgs;\nimport com.pulumi.alicloud.esa.ScheduledPreloadExecution;\nimport com.pulumi.alicloud.esa.ScheduledPreloadExecutionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(\"terraform.cn\")\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultScheduledPreloadJob = new ScheduledPreloadJob(\"defaultScheduledPreloadJob\", ScheduledPreloadJobArgs.builder()\n            .insertWay(\"textBox\")\n            .siteId(defaultSite.id())\n            .scheduledPreloadJobName(\"example_scheduledpreloadexecution_job\")\n            .urlList(\"http://example.gositecdn.cn/example/example.txt\")\n            .build());\n\n        var defaultScheduledPreloadExecution = new ScheduledPreloadExecution(\"defaultScheduledPreloadExecution\", ScheduledPreloadExecutionArgs.builder()\n            .sliceLen(5)\n            .endTime(\"2024-06-04T10:02:09.000+08:00\")\n            .startTime(\"2024-06-04T00:00:00.000+08:00\")\n            .scheduledPreloadJobId(defaultScheduledPreloadJob.scheduledPreloadJobId())\n            .interval(30)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: terraform.cn\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  defaultScheduledPreloadJob:\n    type: alicloud:esa:ScheduledPreloadJob\n    name: default\n    properties:\n      insertWay: textBox\n      siteId: ${defaultSite.id}\n      scheduledPreloadJobName: example_scheduledpreloadexecution_job\n      urlList: http://example.gositecdn.cn/example/example.txt\n  defaultScheduledPreloadExecution:\n    type: alicloud:esa:ScheduledPreloadExecution\n    name: default\n    properties:\n      sliceLen: '5'\n      endTime: 2024-06-04T10:02:09.000+08:00\n      startTime: 2024-06-04T00:00:00.000+08:00\n      scheduledPreloadJobId: ${defaultScheduledPreloadJob.scheduledPreloadJobId}\n      interval: '30'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Scheduled Preload Execution can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/scheduledPreloadExecution:ScheduledPreloadExecution example \u003cscheduled_preload_job_id\u003e:\u003cscheduled_preload_execution_id\u003e\n```\n\n","properties":{"endTime":{"type":"string","description":"The end time of the prefetch plan.\n"},"interval":{"type":"integer","description":"The time interval between each batch execution. Unit: seconds.\n"},"scheduledPreloadExecutionId":{"type":"string","description":"The ID of the prefetch plan.\n"},"scheduledPreloadJobId":{"type":"string","description":"The ID of the prefetch task.\n"},"sliceLen":{"type":"integer","description":"The number of URLs prefetched in each batch.\n"},"startTime":{"type":"string","description":"The start time of the prefetch plan.\n"},"status":{"type":"string","description":"The status of the prefetch plan, including the following statuses.\n"}},"required":["interval","scheduledPreloadExecutionId","scheduledPreloadJobId","sliceLen","status"],"inputProperties":{"endTime":{"type":"string","description":"The end time of the prefetch plan.\n"},"interval":{"type":"integer","description":"The time interval between each batch execution. Unit: seconds.\n"},"scheduledPreloadJobId":{"type":"string","description":"The ID of the prefetch task.\n","willReplaceOnChanges":true},"sliceLen":{"type":"integer","description":"The number of URLs prefetched in each batch.\n"},"startTime":{"type":"string","description":"The start time of the prefetch plan.\n"}},"requiredInputs":["interval","scheduledPreloadJobId","sliceLen"],"stateInputs":{"description":"Input properties used for looking up and filtering ScheduledPreloadExecution resources.\n","properties":{"endTime":{"type":"string","description":"The end time of the prefetch plan.\n"},"interval":{"type":"integer","description":"The time interval between each batch execution. Unit: seconds.\n"},"scheduledPreloadExecutionId":{"type":"string","description":"The ID of the prefetch plan.\n"},"scheduledPreloadJobId":{"type":"string","description":"The ID of the prefetch task.\n","willReplaceOnChanges":true},"sliceLen":{"type":"integer","description":"The number of URLs prefetched in each batch.\n"},"startTime":{"type":"string","description":"The start time of the prefetch plan.\n"},"status":{"type":"string","description":"The status of the prefetch plan, including the following statuses.\n"}},"type":"object"}},"alicloud:esa/scheduledPreloadJob:ScheduledPreloadJob":{"description":"Provides a ESA Scheduled Preload Job resource.\n\n\n\nFor information about ESA Scheduled Preload Job and how to use it, see [What is Scheduled Preload Job](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateScheduledPreloadJob).\n\n\u003e **NOTE:** Available since v1.248.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: \"terraform.cn\",\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultScheduledPreloadJob = new alicloud.esa.ScheduledPreloadJob(\"default\", {\n    insertWay: \"textBox\",\n    siteId: defaultSite.id,\n    scheduledPreloadJobName: \"example_scheduledpreloadexecution_job\",\n    urlList: \"http://example.gositecdn.cn/example/example.txt\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=\"terraform.cn\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_scheduled_preload_job = alicloud.esa.ScheduledPreloadJob(\"default\",\n    insert_way=\"textBox\",\n    site_id=default_site.id,\n    scheduled_preload_job_name=\"example_scheduledpreloadexecution_job\",\n    url_list=\"http://example.gositecdn.cn/example/example.txt\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = \"terraform.cn\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultScheduledPreloadJob = new AliCloud.Esa.ScheduledPreloadJob(\"default\", new()\n    {\n        InsertWay = \"textBox\",\n        SiteId = defaultSite.Id,\n        ScheduledPreloadJobName = \"example_scheduledpreloadexecution_job\",\n        UrlList = \"http://example.gositecdn.cn/example/example.txt\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"terraform.cn\"),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewScheduledPreloadJob(ctx, \"default\", \u0026esa.ScheduledPreloadJobArgs{\n\t\t\tInsertWay:               pulumi.String(\"textBox\"),\n\t\t\tSiteId:                  defaultSite.ID(),\n\t\t\tScheduledPreloadJobName: pulumi.String(\"example_scheduledpreloadexecution_job\"),\n\t\t\tUrlList:                 pulumi.String(\"http://example.gositecdn.cn/example/example.txt\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.ScheduledPreloadJob;\nimport com.pulumi.alicloud.esa.ScheduledPreloadJobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(\"terraform.cn\")\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultScheduledPreloadJob = new ScheduledPreloadJob(\"defaultScheduledPreloadJob\", ScheduledPreloadJobArgs.builder()\n            .insertWay(\"textBox\")\n            .siteId(defaultSite.id())\n            .scheduledPreloadJobName(\"example_scheduledpreloadexecution_job\")\n            .urlList(\"http://example.gositecdn.cn/example/example.txt\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: terraform.cn\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  defaultScheduledPreloadJob:\n    type: alicloud:esa:ScheduledPreloadJob\n    name: default\n    properties:\n      insertWay: textBox\n      siteId: ${defaultSite.id}\n      scheduledPreloadJobName: example_scheduledpreloadexecution_job\n      urlList: http://example.gositecdn.cn/example/example.txt\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Scheduled Preload Job can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/scheduledPreloadJob:ScheduledPreloadJob example \u003csite_id\u003e:\u003cscheduled_preload_job_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The time when the task was created.\n"},"insertWay":{"type":"string","description":"The method to submit the URLs to be prefetched.\n"},"ossUrl":{"type":"string","description":"Preheat OSS files regularly and fill in the OSS file address. Note: The OSS file contains the URL that you need to warm up.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"scheduledPreloadJobId":{"type":"string","description":"The ID of the prefetch task.\n"},"scheduledPreloadJobName":{"type":"string","description":"The task name.\n"},"siteId":{"type":"string","description":"The site ID.\n"},"urlList":{"type":"string","description":"A list of URLs to be preheated, which is used when uploading a preheated file in the text box mode.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"}},"required":["createTime","insertWay","scheduledPreloadJobId","scheduledPreloadJobName","siteId"],"inputProperties":{"insertWay":{"type":"string","description":"The method to submit the URLs to be prefetched.\n","willReplaceOnChanges":true},"ossUrl":{"type":"string","description":"Preheat OSS files regularly and fill in the OSS file address. Note: The OSS file contains the URL that you need to warm up.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"scheduledPreloadJobName":{"type":"string","description":"The task name.\n","willReplaceOnChanges":true},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true},"urlList":{"type":"string","description":"A list of URLs to be preheated, which is used when uploading a preheated file in the text box mode.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"}},"requiredInputs":["insertWay","scheduledPreloadJobName","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering ScheduledPreloadJob resources.\n","properties":{"createTime":{"type":"string","description":"The time when the task was created.\n"},"insertWay":{"type":"string","description":"The method to submit the URLs to be prefetched.\n","willReplaceOnChanges":true},"ossUrl":{"type":"string","description":"Preheat OSS files regularly and fill in the OSS file address. Note: The OSS file contains the URL that you need to warm up.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"scheduledPreloadJobId":{"type":"string","description":"The ID of the prefetch task.\n"},"scheduledPreloadJobName":{"type":"string","description":"The task name.\n","willReplaceOnChanges":true},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true},"urlList":{"type":"string","description":"A list of URLs to be preheated, which is used when uploading a preheated file in the text box mode.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"}},"type":"object"}},"alicloud:esa/site:Site":{"description":"Provides a ESA Site resource.\n\n\n\nFor information about ESA Site and how to use it, see [What is Site](https://www.alibabacloud.com/help/en/edge-security-acceleration/esa/user-guide/site-management).\n\n\u003e **NOTE:** Available since v1.234.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultIEoDfU = new alicloud.esa.RatePlanInstance(\"defaultIEoDfU\", {\n    type: \"NS\",\n    autoRenew: true,\n    period: 1,\n    paymentType: \"Subscription\",\n    coverage: \"overseas\",\n    autoPay: true,\n    planName: \"basic\",\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: `bcd${defaultInteger.result}.com`,\n    coverage: \"overseas\",\n    accessType: \"NS\",\n    instanceId: defaultIEoDfU.id,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_i_eo_df_u = alicloud.esa.RatePlanInstance(\"defaultIEoDfU\",\n    type=\"NS\",\n    auto_renew=True,\n    period=1,\n    payment_type=\"Subscription\",\n    coverage=\"overseas\",\n    auto_pay=True,\n    plan_name=\"basic\")\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=f\"bcd{default_integer['result']}.com\",\n    coverage=\"overseas\",\n    access_type=\"NS\",\n    instance_id=default_i_eo_df_u.id,\n    resource_group_id=default.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultIEoDfU = new AliCloud.Esa.RatePlanInstance(\"defaultIEoDfU\", new()\n    {\n        Type = \"NS\",\n        AutoRenew = true,\n        Period = 1,\n        PaymentType = \"Subscription\",\n        Coverage = \"overseas\",\n        AutoPay = true,\n        PlanName = \"basic\",\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = $\"bcd{defaultInteger.Result}.com\",\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n        InstanceId = defaultIEoDfU.Id,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultIEoDfU, err := esa.NewRatePlanInstance(ctx, \"defaultIEoDfU\", \u0026esa.RatePlanInstanceArgs{\n\t\t\tType:        pulumi.String(\"NS\"),\n\t\t\tAutoRenew:   pulumi.Bool(true),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tPaymentType: pulumi.String(\"Subscription\"),\n\t\t\tCoverage:    pulumi.String(\"overseas\"),\n\t\t\tAutoPay:     pulumi.Bool(true),\n\t\t\tPlanName:    pulumi.String(\"basic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:        pulumi.Sprintf(\"bcd%v.com\", defaultInteger.Result),\n\t\t\tCoverage:        pulumi.String(\"overseas\"),\n\t\t\tAccessType:      pulumi.String(\"NS\"),\n\t\t\tInstanceId:      defaultIEoDfU.ID(),\n\t\t\tResourceGroupId: pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.esa.RatePlanInstance;\nimport com.pulumi.alicloud.esa.RatePlanInstanceArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultIEoDfU = new RatePlanInstance(\"defaultIEoDfU\", RatePlanInstanceArgs.builder()\n            .type(\"NS\")\n            .autoRenew(true)\n            .period(1)\n            .paymentType(\"Subscription\")\n            .coverage(\"overseas\")\n            .autoPay(true)\n            .planName(\"basic\")\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(String.format(\"bcd%s.com\", defaultInteger.result()))\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .instanceId(defaultIEoDfU.id())\n            .resourceGroupId(default_.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultIEoDfU:\n    type: alicloud:esa:RatePlanInstance\n    properties:\n      type: NS\n      autoRenew: true\n      period: '1'\n      paymentType: Subscription\n      coverage: overseas\n      autoPay: true\n      planName: basic\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: bcd${defaultInteger.result}.com\n      coverage: overseas\n      accessType: NS\n      instanceId: ${defaultIEoDfU.id}\n      resourceGroupId: ${default.ids[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Site can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/site:Site example \u003csite_id\u003e\n```\n\n","properties":{"accessType":{"type":"string","description":"The DNS setup. Valid values:\n- `NS`\n- `CNAME`\n"},"addClientGeolocationHeader":{"type":"string","description":"Add visitor geolocation header. Value range:\n"},"addRealClientIpHeader":{"type":"string","description":"Add the \"ali-real-client-ip\" header containing the real client IP. Value range:\n"},"aiMode":{"type":"string","description":"HTTP DDoS Intelligent Protection Mode. Valid values:\n"},"aiTemplate":{"type":"string","description":"HTTP DDoS Intelligent Protection Level. Values:\n"},"cacheArchitectureMode":{"type":"string","description":"Multi-level cache architecture mode. Possible values:\n"},"cacheReserveEnable":{"type":"string","description":"Site cache hold switch. Value:\n"},"cacheReserveInstanceId":{"type":"string","description":"The ID of the cache instance.\n"},"caseInsensitive":{"type":"string","description":"Whether the custom CacheTag name ignores case. Value range:\n"},"coverage":{"type":"string","description":"The service location. Valid values:\n"},"createTime":{"type":"string","description":"The time when the website was added. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"crossBorderOptimization":{"type":"string","description":"Whether to enable mainland China network access optimization, the default is off. Value range:\n"},"developmentMode":{"type":"string","description":"Development mode configuration function switch. Value range:\n"},"flattenMode":{"type":"string","description":"CNAME flattening mode. Possible values:\n"},"globalMode":{"type":"string","description":"HTTP DDoS Attack Protection Policy Modes. Valid values:\n- `very weak`: indicates a very permissive setting.\n"},"instanceId":{"type":"string","description":"The ID of the associated package instance.\n"},"ipv6Enable":{"type":"string","description":"Specifies whether to enable IPv6. Valid values:\n"},"ipv6Region":{"type":"string","description":"The region in which Ipv6 is enabled. The default value is x.x:\n- 'x.x': Global.\n- 'Cn.cn ': Mainland China.\n"},"paused":{"type":"boolean","description":"Specifies whether to temporarily pause ESA on the website. If you set this parameter to true, all requests to the domains in your DNS records go directly to your origin server. Valid values:\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"seoBypass":{"type":"string","description":"Release the search engine crawler configuration. Value:\n"},"siteName":{"type":"string","description":"The website name.\n"},"siteNameExclusive":{"type":"string","description":"Specifies whether to enable site hold.After you enable site hold, other accounts cannot add your website domain or its subdomains to ESA. Valid values:\n"},"siteVersion":{"type":"integer","description":"The version number of the site. For sites with version management enabled, you can use this parameter to specify the site version for which the configuration will take effect, defaulting to version 0.\n"},"status":{"type":"string","description":"The status of the resource\n"},"tagName":{"type":"string","description":"Custom CacheTag name.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags\n"},"versionManagement":{"type":"boolean","description":"Version management enabled. When true, version management is turned on for the table site.\n"}},"required":["aiMode","aiTemplate","cacheArchitectureMode","createTime","globalMode","instanceId","ipv6Enable","ipv6Region","resourceGroupId","siteName","status"],"inputProperties":{"accessType":{"type":"string","description":"The DNS setup. Valid values:\n- `NS`\n- `CNAME`\n","willReplaceOnChanges":true},"addClientGeolocationHeader":{"type":"string","description":"Add visitor geolocation header. Value range:\n"},"addRealClientIpHeader":{"type":"string","description":"Add the \"ali-real-client-ip\" header containing the real client IP. Value range:\n"},"aiMode":{"type":"string","description":"HTTP DDoS Intelligent Protection Mode. Valid values:\n"},"aiTemplate":{"type":"string","description":"HTTP DDoS Intelligent Protection Level. Values:\n"},"cacheArchitectureMode":{"type":"string","description":"Multi-level cache architecture mode. Possible values:\n"},"cacheReserveEnable":{"type":"string","description":"Site cache hold switch. Value:\n"},"cacheReserveInstanceId":{"type":"string","description":"The ID of the cache instance.\n"},"caseInsensitive":{"type":"string","description":"Whether the custom CacheTag name ignores case. Value range:\n"},"coverage":{"type":"string","description":"The service location. Valid values:\n"},"crossBorderOptimization":{"type":"string","description":"Whether to enable mainland China network access optimization, the default is off. Value range:\n"},"developmentMode":{"type":"string","description":"Development mode configuration function switch. Value range:\n"},"flattenMode":{"type":"string","description":"CNAME flattening mode. Possible values:\n"},"globalMode":{"type":"string","description":"HTTP DDoS Attack Protection Policy Modes. Valid values:\n- `very weak`: indicates a very permissive setting.\n"},"instanceId":{"type":"string","description":"The ID of the associated package instance.\n","willReplaceOnChanges":true},"ipv6Enable":{"type":"string","description":"Specifies whether to enable IPv6. Valid values:\n"},"ipv6Region":{"type":"string","description":"The region in which Ipv6 is enabled. The default value is x.x:\n- 'x.x': Global.\n- 'Cn.cn ': Mainland China.\n"},"paused":{"type":"boolean","description":"Specifies whether to temporarily pause ESA on the website. If you set this parameter to true, all requests to the domains in your DNS records go directly to your origin server. Valid values:\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n","willReplaceOnChanges":true},"seoBypass":{"type":"string","description":"Release the search engine crawler configuration. Value:\n"},"siteName":{"type":"string","description":"The website name.\n","willReplaceOnChanges":true},"siteNameExclusive":{"type":"string","description":"Specifies whether to enable site hold.After you enable site hold, other accounts cannot add your website domain or its subdomains to ESA. Valid values:\n"},"siteVersion":{"type":"integer","description":"The version number of the site. For sites with version management enabled, you can use this parameter to specify the site version for which the configuration will take effect, defaulting to version 0.\n"},"tagName":{"type":"string","description":"Custom CacheTag name.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags\n"},"versionManagement":{"type":"boolean","description":"Version management enabled. When true, version management is turned on for the table site.\n"}},"requiredInputs":["instanceId","siteName"],"stateInputs":{"description":"Input properties used for looking up and filtering Site resources.\n","properties":{"accessType":{"type":"string","description":"The DNS setup. Valid values:\n- `NS`\n- `CNAME`\n","willReplaceOnChanges":true},"addClientGeolocationHeader":{"type":"string","description":"Add visitor geolocation header. Value range:\n"},"addRealClientIpHeader":{"type":"string","description":"Add the \"ali-real-client-ip\" header containing the real client IP. Value range:\n"},"aiMode":{"type":"string","description":"HTTP DDoS Intelligent Protection Mode. Valid values:\n"},"aiTemplate":{"type":"string","description":"HTTP DDoS Intelligent Protection Level. Values:\n"},"cacheArchitectureMode":{"type":"string","description":"Multi-level cache architecture mode. Possible values:\n"},"cacheReserveEnable":{"type":"string","description":"Site cache hold switch. Value:\n"},"cacheReserveInstanceId":{"type":"string","description":"The ID of the cache instance.\n"},"caseInsensitive":{"type":"string","description":"Whether the custom CacheTag name ignores case. Value range:\n"},"coverage":{"type":"string","description":"The service location. Valid values:\n"},"createTime":{"type":"string","description":"The time when the website was added. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"crossBorderOptimization":{"type":"string","description":"Whether to enable mainland China network access optimization, the default is off. Value range:\n"},"developmentMode":{"type":"string","description":"Development mode configuration function switch. Value range:\n"},"flattenMode":{"type":"string","description":"CNAME flattening mode. Possible values:\n"},"globalMode":{"type":"string","description":"HTTP DDoS Attack Protection Policy Modes. Valid values:\n- `very weak`: indicates a very permissive setting.\n"},"instanceId":{"type":"string","description":"The ID of the associated package instance.\n","willReplaceOnChanges":true},"ipv6Enable":{"type":"string","description":"Specifies whether to enable IPv6. Valid values:\n"},"ipv6Region":{"type":"string","description":"The region in which Ipv6 is enabled. The default value is x.x:\n- 'x.x': Global.\n- 'Cn.cn ': Mainland China.\n"},"paused":{"type":"boolean","description":"Specifies whether to temporarily pause ESA on the website. If you set this parameter to true, all requests to the domains in your DNS records go directly to your origin server. Valid values:\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n","willReplaceOnChanges":true},"seoBypass":{"type":"string","description":"Release the search engine crawler configuration. Value:\n"},"siteName":{"type":"string","description":"The website name.\n","willReplaceOnChanges":true},"siteNameExclusive":{"type":"string","description":"Specifies whether to enable site hold.After you enable site hold, other accounts cannot add your website domain or its subdomains to ESA. Valid values:\n"},"siteVersion":{"type":"integer","description":"The version number of the site. For sites with version management enabled, you can use this parameter to specify the site version for which the configuration will take effect, defaulting to version 0.\n"},"status":{"type":"string","description":"The status of the resource\n"},"tagName":{"type":"string","description":"Custom CacheTag name.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags\n"},"versionManagement":{"type":"boolean","description":"Version management enabled. When true, version management is turned on for the table site.\n"}},"type":"object"}},"alicloud:esa/siteDeliveryTask:SiteDeliveryTask":{"description":"Provides a ESA Site Delivery Task resource.\n\n\n\nFor information about ESA Site Delivery Task and how to use it, see [What is Site Delivery Task](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateSiteDeliveryTask).\n\n\u003e **NOTE:** Available since v1.247.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst resourceSiteHttpExample = new alicloud.esa.Site(\"resource_Site_http_example\", {\n    siteName: \"chenxin0116.site\",\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultSiteDeliveryTask = new alicloud.esa.SiteDeliveryTask(\"default\", {\n    httpDelivery: {\n        standardAuthParam: {\n            privateKey: \"***\",\n            urlPath: \"v1/log/upload\",\n            expiredTime: 300,\n        },\n        transformTimeout: 10,\n        maxRetry: 3,\n        maxBatchMb: 5,\n        compress: \"gzip\",\n        logBodySuffix: \"cdnVersion:1.0\",\n        standardAuthOn: false,\n        logBodyPrefix: \"cdnVersion:1.0\",\n        destUrl: \"http://11.177.129.13:8081\",\n        maxBatchSize: 1000,\n    },\n    dataCenter: \"global\",\n    discardRate: 0,\n    taskName: \"dcdn-example-task\",\n    businessType: \"dcdn_log_access_l1\",\n    fieldName: \"ConsoleLog,CPUTime,Duration,ErrorCode,ErrorMessage,ResponseSize,ResponseStatus,RoutineName,ClientRequestID,LogTimestamp,FetchStatus,SubRequestID\",\n    deliveryType: \"http\",\n    siteId: resourceSiteHttpExample.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\nresource_site_http_example = alicloud.esa.Site(\"resource_Site_http_example\",\n    site_name=\"chenxin0116.site\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_site_delivery_task = alicloud.esa.SiteDeliveryTask(\"default\",\n    http_delivery={\n        \"standard_auth_param\": {\n            \"private_key\": \"***\",\n            \"url_path\": \"v1/log/upload\",\n            \"expired_time\": 300,\n        },\n        \"transform_timeout\": 10,\n        \"max_retry\": 3,\n        \"max_batch_mb\": 5,\n        \"compress\": \"gzip\",\n        \"log_body_suffix\": \"cdnVersion:1.0\",\n        \"standard_auth_on\": False,\n        \"log_body_prefix\": \"cdnVersion:1.0\",\n        \"dest_url\": \"http://11.177.129.13:8081\",\n        \"max_batch_size\": 1000,\n    },\n    data_center=\"global\",\n    discard_rate=0,\n    task_name=\"dcdn-example-task\",\n    business_type=\"dcdn_log_access_l1\",\n    field_name=\"ConsoleLog,CPUTime,Duration,ErrorCode,ErrorMessage,ResponseSize,ResponseStatus,RoutineName,ClientRequestID,LogTimestamp,FetchStatus,SubRequestID\",\n    delivery_type=\"http\",\n    site_id=resource_site_http_example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var resourceSiteHttpExample = new AliCloud.Esa.Site(\"resource_Site_http_example\", new()\n    {\n        SiteName = \"chenxin0116.site\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultSiteDeliveryTask = new AliCloud.Esa.SiteDeliveryTask(\"default\", new()\n    {\n        HttpDelivery = new AliCloud.Esa.Inputs.SiteDeliveryTaskHttpDeliveryArgs\n        {\n            StandardAuthParam = new AliCloud.Esa.Inputs.SiteDeliveryTaskHttpDeliveryStandardAuthParamArgs\n            {\n                PrivateKey = \"***\",\n                UrlPath = \"v1/log/upload\",\n                ExpiredTime = 300,\n            },\n            TransformTimeout = 10,\n            MaxRetry = 3,\n            MaxBatchMb = 5,\n            Compress = \"gzip\",\n            LogBodySuffix = \"cdnVersion:1.0\",\n            StandardAuthOn = false,\n            LogBodyPrefix = \"cdnVersion:1.0\",\n            DestUrl = \"http://11.177.129.13:8081\",\n            MaxBatchSize = 1000,\n        },\n        DataCenter = \"global\",\n        DiscardRate = 0,\n        TaskName = \"dcdn-example-task\",\n        BusinessType = \"dcdn_log_access_l1\",\n        FieldName = \"ConsoleLog,CPUTime,Duration,ErrorCode,ErrorMessage,ResponseSize,ResponseStatus,RoutineName,ClientRequestID,LogTimestamp,FetchStatus,SubRequestID\",\n        DeliveryType = \"http\",\n        SiteId = resourceSiteHttpExample.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresourceSiteHttpExample, err := esa.NewSite(ctx, \"resource_Site_http_example\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"chenxin0116.site\"),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewSiteDeliveryTask(ctx, \"default\", \u0026esa.SiteDeliveryTaskArgs{\n\t\t\tHttpDelivery: \u0026esa.SiteDeliveryTaskHttpDeliveryArgs{\n\t\t\t\tStandardAuthParam: \u0026esa.SiteDeliveryTaskHttpDeliveryStandardAuthParamArgs{\n\t\t\t\t\tPrivateKey:  pulumi.String(\"***\"),\n\t\t\t\t\tUrlPath:     pulumi.String(\"v1/log/upload\"),\n\t\t\t\t\tExpiredTime: pulumi.Int(300),\n\t\t\t\t},\n\t\t\t\tTransformTimeout: pulumi.Int(10),\n\t\t\t\tMaxRetry:         pulumi.Int(3),\n\t\t\t\tMaxBatchMb:       pulumi.Int(5),\n\t\t\t\tCompress:         pulumi.String(\"gzip\"),\n\t\t\t\tLogBodySuffix:    pulumi.String(\"cdnVersion:1.0\"),\n\t\t\t\tStandardAuthOn:   pulumi.Bool(false),\n\t\t\t\tLogBodyPrefix:    pulumi.String(\"cdnVersion:1.0\"),\n\t\t\t\tDestUrl:          pulumi.String(\"http://11.177.129.13:8081\"),\n\t\t\t\tMaxBatchSize:     pulumi.Int(1000),\n\t\t\t},\n\t\t\tDataCenter:   pulumi.String(\"global\"),\n\t\t\tDiscardRate:  pulumi.Float64(0),\n\t\t\tTaskName:     pulumi.String(\"dcdn-example-task\"),\n\t\t\tBusinessType: pulumi.String(\"dcdn_log_access_l1\"),\n\t\t\tFieldName:    pulumi.String(\"ConsoleLog,CPUTime,Duration,ErrorCode,ErrorMessage,ResponseSize,ResponseStatus,RoutineName,ClientRequestID,LogTimestamp,FetchStatus,SubRequestID\"),\n\t\t\tDeliveryType: pulumi.String(\"http\"),\n\t\t\tSiteId:       resourceSiteHttpExample.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.SiteDeliveryTask;\nimport com.pulumi.alicloud.esa.SiteDeliveryTaskArgs;\nimport com.pulumi.alicloud.esa.inputs.SiteDeliveryTaskHttpDeliveryArgs;\nimport com.pulumi.alicloud.esa.inputs.SiteDeliveryTaskHttpDeliveryStandardAuthParamArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var resourceSiteHttpExample = new Site(\"resourceSiteHttpExample\", SiteArgs.builder()\n            .siteName(\"chenxin0116.site\")\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultSiteDeliveryTask = new SiteDeliveryTask(\"defaultSiteDeliveryTask\", SiteDeliveryTaskArgs.builder()\n            .httpDelivery(SiteDeliveryTaskHttpDeliveryArgs.builder()\n                .standardAuthParam(SiteDeliveryTaskHttpDeliveryStandardAuthParamArgs.builder()\n                    .privateKey(\"***\")\n                    .urlPath(\"v1/log/upload\")\n                    .expiredTime(300)\n                    .build())\n                .transformTimeout(10)\n                .maxRetry(3)\n                .maxBatchMb(5)\n                .compress(\"gzip\")\n                .logBodySuffix(\"cdnVersion:1.0\")\n                .standardAuthOn(false)\n                .logBodyPrefix(\"cdnVersion:1.0\")\n                .destUrl(\"http://11.177.129.13:8081\")\n                .maxBatchSize(1000)\n                .build())\n            .dataCenter(\"global\")\n            .discardRate(0.0)\n            .taskName(\"dcdn-example-task\")\n            .businessType(\"dcdn_log_access_l1\")\n            .fieldName(\"ConsoleLog,CPUTime,Duration,ErrorCode,ErrorMessage,ResponseSize,ResponseStatus,RoutineName,ClientRequestID,LogTimestamp,FetchStatus,SubRequestID\")\n            .deliveryType(\"http\")\n            .siteId(resourceSiteHttpExample.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  resourceSiteHttpExample:\n    type: alicloud:esa:Site\n    name: resource_Site_http_example\n    properties:\n      siteName: chenxin0116.site\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  defaultSiteDeliveryTask:\n    type: alicloud:esa:SiteDeliveryTask\n    name: default\n    properties:\n      httpDelivery:\n        standardAuthParam:\n          privateKey: '***'\n          urlPath: v1/log/upload\n          expiredTime: '300'\n        transformTimeout: '10'\n        maxRetry: '3'\n        maxBatchMb: '5'\n        compress: gzip\n        logBodySuffix: cdnVersion:1.0\n        standardAuthOn: 'false'\n        logBodyPrefix: cdnVersion:1.0\n        destUrl: http://11.177.129.13:8081\n        maxBatchSize: '1000'\n      dataCenter: global\n      discardRate: '0.0'\n      taskName: dcdn-example-task\n      businessType: dcdn_log_access_l1\n      fieldName: ConsoleLog,CPUTime,Duration,ErrorCode,ErrorMessage,ResponseSize,ResponseStatus,RoutineName,ClientRequestID,LogTimestamp,FetchStatus,SubRequestID\n      deliveryType: http\n      siteId: ${resourceSiteHttpExample.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Site Delivery Task can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/siteDeliveryTask:SiteDeliveryTask example \u003csite_id\u003e:\u003ctask_name\u003e\n```\n\n","properties":{"businessType":{"type":"string","description":"Real-time log type. Valid values:\n- \u003cspan pulumi-lang-nodejs=\"`dcdnLogAccessL1 \" pulumi-lang-dotnet=\"`DcdnLogAccessL1 \" pulumi-lang-go=\"`dcdnLogAccessL1 \" pulumi-lang-python=\"`dcdn_log_access_l1 \" pulumi-lang-yaml=\"`dcdnLogAccessL1 \" pulumi-lang-java=\"`dcdnLogAccessL1 \"\u003e`dcdn_log_access_l1 \u003c/span\u003e(default)`: access log.\n"},"dataCenter":{"type":"string","description":"Data Center. Values:\n"},"deliveryType":{"type":"string","description":"Delivery Type:\n"},"discardRate":{"type":"number","description":"If the discard rate is not filled, the default value is 0.\n"},"fieldName":{"type":"string","description":"The list of delivery fields to be modified, separated by commas.\n"},"httpDelivery":{"$ref":"#/types/alicloud:esa/SiteDeliveryTaskHttpDelivery:SiteDeliveryTaskHttpDelivery","description":"HTTP delivery configuration parameters. See \u003cspan pulumi-lang-nodejs=\"`httpDelivery`\" pulumi-lang-dotnet=\"`HttpDelivery`\" pulumi-lang-go=\"`httpDelivery`\" pulumi-lang-python=\"`http_delivery`\" pulumi-lang-yaml=\"`httpDelivery`\" pulumi-lang-java=\"`httpDelivery`\"\u003e`http_delivery`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"kafkaDelivery":{"$ref":"#/types/alicloud:esa/SiteDeliveryTaskKafkaDelivery:SiteDeliveryTaskKafkaDelivery","description":"Kafka delivery configuration parameters. See \u003cspan pulumi-lang-nodejs=\"`kafkaDelivery`\" pulumi-lang-dotnet=\"`KafkaDelivery`\" pulumi-lang-go=\"`kafkaDelivery`\" pulumi-lang-python=\"`kafka_delivery`\" pulumi-lang-yaml=\"`kafkaDelivery`\" pulumi-lang-java=\"`kafkaDelivery`\"\u003e`kafka_delivery`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"ossDelivery":{"$ref":"#/types/alicloud:esa/SiteDeliveryTaskOssDelivery:SiteDeliveryTaskOssDelivery","description":"OSS delivery configuration. See \u003cspan pulumi-lang-nodejs=\"`ossDelivery`\" pulumi-lang-dotnet=\"`OssDelivery`\" pulumi-lang-go=\"`ossDelivery`\" pulumi-lang-python=\"`oss_delivery`\" pulumi-lang-yaml=\"`ossDelivery`\" pulumi-lang-java=\"`ossDelivery`\"\u003e`oss_delivery`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"s3Delivery":{"$ref":"#/types/alicloud:esa/SiteDeliveryTaskS3Delivery:SiteDeliveryTaskS3Delivery","description":"S3/S3 compatible delivery configuration parameters. See \u003cspan pulumi-lang-nodejs=\"`s3Delivery`\" pulumi-lang-dotnet=\"`S3Delivery`\" pulumi-lang-go=\"`s3Delivery`\" pulumi-lang-python=\"`s3_delivery`\" pulumi-lang-yaml=\"`s3Delivery`\" pulumi-lang-java=\"`s3Delivery`\"\u003e`s3_delivery`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the [ListSites](https://help.aliyun.com/document_detail/2850189.html) interface.\n"},"slsDelivery":{"$ref":"#/types/alicloud:esa/SiteDeliveryTaskSlsDelivery:SiteDeliveryTaskSlsDelivery","description":"SLS delivery configuration. See \u003cspan pulumi-lang-nodejs=\"`slsDelivery`\" pulumi-lang-dotnet=\"`SlsDelivery`\" pulumi-lang-go=\"`slsDelivery`\" pulumi-lang-python=\"`sls_delivery`\" pulumi-lang-yaml=\"`slsDelivery`\" pulumi-lang-java=\"`slsDelivery`\"\u003e`sls_delivery`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"status":{"type":"string","description":"Task status, value:\n"},"taskName":{"type":"string","description":"The task name.\n"}},"required":["businessType","dataCenter","deliveryType","fieldName","siteId","status","taskName"],"inputProperties":{"businessType":{"type":"string","description":"Real-time log type. Valid values:\n- \u003cspan pulumi-lang-nodejs=\"`dcdnLogAccessL1 \" pulumi-lang-dotnet=\"`DcdnLogAccessL1 \" pulumi-lang-go=\"`dcdnLogAccessL1 \" pulumi-lang-python=\"`dcdn_log_access_l1 \" pulumi-lang-yaml=\"`dcdnLogAccessL1 \" pulumi-lang-java=\"`dcdnLogAccessL1 \"\u003e`dcdn_log_access_l1 \u003c/span\u003e(default)`: access log.\n"},"dataCenter":{"type":"string","description":"Data Center. Values:\n","willReplaceOnChanges":true},"deliveryType":{"type":"string","description":"Delivery Type:\n","willReplaceOnChanges":true},"discardRate":{"type":"number","description":"If the discard rate is not filled, the default value is 0.\n"},"fieldName":{"type":"string","description":"The list of delivery fields to be modified, separated by commas.\n"},"httpDelivery":{"$ref":"#/types/alicloud:esa/SiteDeliveryTaskHttpDelivery:SiteDeliveryTaskHttpDelivery","description":"HTTP delivery configuration parameters. See \u003cspan pulumi-lang-nodejs=\"`httpDelivery`\" pulumi-lang-dotnet=\"`HttpDelivery`\" pulumi-lang-go=\"`httpDelivery`\" pulumi-lang-python=\"`http_delivery`\" pulumi-lang-yaml=\"`httpDelivery`\" pulumi-lang-java=\"`httpDelivery`\"\u003e`http_delivery`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"kafkaDelivery":{"$ref":"#/types/alicloud:esa/SiteDeliveryTaskKafkaDelivery:SiteDeliveryTaskKafkaDelivery","description":"Kafka delivery configuration parameters. See \u003cspan pulumi-lang-nodejs=\"`kafkaDelivery`\" pulumi-lang-dotnet=\"`KafkaDelivery`\" pulumi-lang-go=\"`kafkaDelivery`\" pulumi-lang-python=\"`kafka_delivery`\" pulumi-lang-yaml=\"`kafkaDelivery`\" pulumi-lang-java=\"`kafkaDelivery`\"\u003e`kafka_delivery`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"ossDelivery":{"$ref":"#/types/alicloud:esa/SiteDeliveryTaskOssDelivery:SiteDeliveryTaskOssDelivery","description":"OSS delivery configuration. See \u003cspan pulumi-lang-nodejs=\"`ossDelivery`\" pulumi-lang-dotnet=\"`OssDelivery`\" pulumi-lang-go=\"`ossDelivery`\" pulumi-lang-python=\"`oss_delivery`\" pulumi-lang-yaml=\"`ossDelivery`\" pulumi-lang-java=\"`ossDelivery`\"\u003e`oss_delivery`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"s3Delivery":{"$ref":"#/types/alicloud:esa/SiteDeliveryTaskS3Delivery:SiteDeliveryTaskS3Delivery","description":"S3/S3 compatible delivery configuration parameters. See \u003cspan pulumi-lang-nodejs=\"`s3Delivery`\" pulumi-lang-dotnet=\"`S3Delivery`\" pulumi-lang-go=\"`s3Delivery`\" pulumi-lang-python=\"`s3_delivery`\" pulumi-lang-yaml=\"`s3Delivery`\" pulumi-lang-java=\"`s3Delivery`\"\u003e`s3_delivery`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the [ListSites](https://help.aliyun.com/document_detail/2850189.html) interface.\n","willReplaceOnChanges":true},"slsDelivery":{"$ref":"#/types/alicloud:esa/SiteDeliveryTaskSlsDelivery:SiteDeliveryTaskSlsDelivery","description":"SLS delivery configuration. See \u003cspan pulumi-lang-nodejs=\"`slsDelivery`\" pulumi-lang-dotnet=\"`SlsDelivery`\" pulumi-lang-go=\"`slsDelivery`\" pulumi-lang-python=\"`sls_delivery`\" pulumi-lang-yaml=\"`slsDelivery`\" pulumi-lang-java=\"`slsDelivery`\"\u003e`sls_delivery`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"status":{"type":"string","description":"Task status, value:\n"},"taskName":{"type":"string","description":"The task name.\n","willReplaceOnChanges":true}},"requiredInputs":["businessType","dataCenter","deliveryType","fieldName","siteId","taskName"],"stateInputs":{"description":"Input properties used for looking up and filtering SiteDeliveryTask resources.\n","properties":{"businessType":{"type":"string","description":"Real-time log type. Valid values:\n- \u003cspan pulumi-lang-nodejs=\"`dcdnLogAccessL1 \" pulumi-lang-dotnet=\"`DcdnLogAccessL1 \" pulumi-lang-go=\"`dcdnLogAccessL1 \" pulumi-lang-python=\"`dcdn_log_access_l1 \" pulumi-lang-yaml=\"`dcdnLogAccessL1 \" pulumi-lang-java=\"`dcdnLogAccessL1 \"\u003e`dcdn_log_access_l1 \u003c/span\u003e(default)`: access log.\n"},"dataCenter":{"type":"string","description":"Data Center. Values:\n","willReplaceOnChanges":true},"deliveryType":{"type":"string","description":"Delivery Type:\n","willReplaceOnChanges":true},"discardRate":{"type":"number","description":"If the discard rate is not filled, the default value is 0.\n"},"fieldName":{"type":"string","description":"The list of delivery fields to be modified, separated by commas.\n"},"httpDelivery":{"$ref":"#/types/alicloud:esa/SiteDeliveryTaskHttpDelivery:SiteDeliveryTaskHttpDelivery","description":"HTTP delivery configuration parameters. See \u003cspan pulumi-lang-nodejs=\"`httpDelivery`\" pulumi-lang-dotnet=\"`HttpDelivery`\" pulumi-lang-go=\"`httpDelivery`\" pulumi-lang-python=\"`http_delivery`\" pulumi-lang-yaml=\"`httpDelivery`\" pulumi-lang-java=\"`httpDelivery`\"\u003e`http_delivery`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"kafkaDelivery":{"$ref":"#/types/alicloud:esa/SiteDeliveryTaskKafkaDelivery:SiteDeliveryTaskKafkaDelivery","description":"Kafka delivery configuration parameters. See \u003cspan pulumi-lang-nodejs=\"`kafkaDelivery`\" pulumi-lang-dotnet=\"`KafkaDelivery`\" pulumi-lang-go=\"`kafkaDelivery`\" pulumi-lang-python=\"`kafka_delivery`\" pulumi-lang-yaml=\"`kafkaDelivery`\" pulumi-lang-java=\"`kafkaDelivery`\"\u003e`kafka_delivery`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"ossDelivery":{"$ref":"#/types/alicloud:esa/SiteDeliveryTaskOssDelivery:SiteDeliveryTaskOssDelivery","description":"OSS delivery configuration. See \u003cspan pulumi-lang-nodejs=\"`ossDelivery`\" pulumi-lang-dotnet=\"`OssDelivery`\" pulumi-lang-go=\"`ossDelivery`\" pulumi-lang-python=\"`oss_delivery`\" pulumi-lang-yaml=\"`ossDelivery`\" pulumi-lang-java=\"`ossDelivery`\"\u003e`oss_delivery`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"s3Delivery":{"$ref":"#/types/alicloud:esa/SiteDeliveryTaskS3Delivery:SiteDeliveryTaskS3Delivery","description":"S3/S3 compatible delivery configuration parameters. See \u003cspan pulumi-lang-nodejs=\"`s3Delivery`\" pulumi-lang-dotnet=\"`S3Delivery`\" pulumi-lang-go=\"`s3Delivery`\" pulumi-lang-python=\"`s3_delivery`\" pulumi-lang-yaml=\"`s3Delivery`\" pulumi-lang-java=\"`s3Delivery`\"\u003e`s3_delivery`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the [ListSites](https://help.aliyun.com/document_detail/2850189.html) interface.\n","willReplaceOnChanges":true},"slsDelivery":{"$ref":"#/types/alicloud:esa/SiteDeliveryTaskSlsDelivery:SiteDeliveryTaskSlsDelivery","description":"SLS delivery configuration. See \u003cspan pulumi-lang-nodejs=\"`slsDelivery`\" pulumi-lang-dotnet=\"`SlsDelivery`\" pulumi-lang-go=\"`slsDelivery`\" pulumi-lang-python=\"`sls_delivery`\" pulumi-lang-yaml=\"`slsDelivery`\" pulumi-lang-java=\"`slsDelivery`\"\u003e`sls_delivery`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"status":{"type":"string","description":"Task status, value:\n"},"taskName":{"type":"string","description":"The task name.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/siteOriginClientCertificate:SiteOriginClientCertificate":{"description":"Provides a ESA Site Origin Client Certificate resource.\n\n\n\nFor information about ESA Site Origin Client Certificate and how to use it, see [What is Site Origin Client Certificate](https://next.api.alibabacloud.com/document/ESA/2024-09-10/UploadSiteOriginClientCertificate).\n\n\u003e **NOTE:** Available since v1.256.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: \"chenxin0116.site\",\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultSiteOriginClientCertificate = new alicloud.esa.SiteOriginClientCertificate(\"default\", {\n    siteOriginClientCertificateName: \"exampleCertificate\",\n    certificate: `-----BEGIN CERTIFICATE-----\nMIICQTCCAaoCCQCFfdyqahygLzANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJj\nbjEQMA4GA1UECAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwI\nYWxpY2xvdWQxEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwHhcNMjAw\nODA2MTAwMDAyWhcNMzAwODA0MTAwMDAyWjBlMQswCQYDVQQGEwJjbjEQMA4GA1UE\nCAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwIYWxpY2xvdWQx\nEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwgZ8wDQYJKoZIhvcNAQEB\nBQADgY0AMIGJAoGBAL7t2CmRCJ8irM5Too2QVGNm0xk6g3v+KE1/8Gthw+EtBKRw\n859SxM/+q8fS73rkadgWICgre5YZCj1oIG6hrBEUo0Fr1mklXJVtqYFZMFD8XGx+\niur2Mk1Hs5YDd/G8PGDDISS/SqyeHXNo6SPJSXEVjAOIXFnX9EcCP9IAEK5tAgMB\nAAEwDQYJKoZIhvcNAQEFBQADgYEAavYdM9s5jLFP9/ZPCrsRuRsjSJpe5y9VZL+1\n+Ebbw16V0xMYaqODyFH1meLRW/A4xUs15Ny2vLYOW15Mriif7Sixty3HUedBFa4l\ny6/gQ+mBEeZYzMaTTFgyzEZDMsfZxwV9GKfhOzAmK3jZ2LDpHIhnlJN4WwVf0lME\npCPDN7g=\n-----END CERTIFICATE-----\n`,\n    siteId: defaultSite.id,\n    privateKey: `-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC+7dgpkQifIqzOU6KNkFRjZtMZOoN7/ihNf/BrYcPhLQSkcPOf\nUsTP/qvH0u965GnYFiAoK3uWGQo9aCBuoawRFKNBa9ZpJVyVbamBWTBQ/Fxsforq\n9jJNR7OWA3fxvDxgwyEkv0qsnh1zaOkjyUlxFYwDiFxZ1/RHAj/SABCubQIDAQAB\nAoGADiobBUprN1MdOtldj98LQ6yXMKH0qzg5yTYaofzIyWXLmF+A02sSitO77sEp\nXxae+5b4n8JKEuKcrd2RumNoHmN47iLQ0M2eodjUQ96kzm5Esq6nln62/NF5KLuK\nJDw63nTsg6K0O+gQZv4SYjZAL3cswSmeQmvmcoNgArfcaoECQQDgYy6S91ZIUsLx\n6BB3tW+x7APYnvKysYbcKUEP8AutZSo4hdMfPQkOD0LwP5dWsrNippDWjNDiPZmt\nVKuZDoDdAkEA2dPxy1eQeJsRYTZmTWIuh3UY9xlL3G9skcSOM4LbFidroHWW9UDJ\nJDSSEMH2+/4quYTdPr28cj7RCjqL0brC0QJABXDCL1QJ5oUDLwRWaeCfTawQR89K\nySRexbXGWxGR5uleBbLQ9J/xOUMLd3HDRJnemZS6TElrwyCFOlukMXjVjQJBALr5\nQC0opmu/vzVQepOl2QaQrrM7VXCLfAfLTbxNcD0d7TY4eTFfQMgBD/euZpB65LWF\npFs8hcsSvGApTObjhmECQEydB1zzjU6kH171XlXCtRFnbORu2IB7rMsDP2CBPHyR\ntYBjBNVHIUGcmrMVFX4LeMuvvmUyzwfgLmLchHxbDP8=\n-----END RSA PRIVATE KEY-----\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=\"chenxin0116.site\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_site_origin_client_certificate = alicloud.esa.SiteOriginClientCertificate(\"default\",\n    site_origin_client_certificate_name=\"exampleCertificate\",\n    certificate=\"\"\"-----BEGIN CERTIFICATE-----\nMIICQTCCAaoCCQCFfdyqahygLzANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJj\nbjEQMA4GA1UECAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwI\nYWxpY2xvdWQxEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwHhcNMjAw\nODA2MTAwMDAyWhcNMzAwODA0MTAwMDAyWjBlMQswCQYDVQQGEwJjbjEQMA4GA1UE\nCAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwIYWxpY2xvdWQx\nEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwgZ8wDQYJKoZIhvcNAQEB\nBQADgY0AMIGJAoGBAL7t2CmRCJ8irM5Too2QVGNm0xk6g3v+KE1/8Gthw+EtBKRw\n859SxM/+q8fS73rkadgWICgre5YZCj1oIG6hrBEUo0Fr1mklXJVtqYFZMFD8XGx+\niur2Mk1Hs5YDd/G8PGDDISS/SqyeHXNo6SPJSXEVjAOIXFnX9EcCP9IAEK5tAgMB\nAAEwDQYJKoZIhvcNAQEFBQADgYEAavYdM9s5jLFP9/ZPCrsRuRsjSJpe5y9VZL+1\n+Ebbw16V0xMYaqODyFH1meLRW/A4xUs15Ny2vLYOW15Mriif7Sixty3HUedBFa4l\ny6/gQ+mBEeZYzMaTTFgyzEZDMsfZxwV9GKfhOzAmK3jZ2LDpHIhnlJN4WwVf0lME\npCPDN7g=\n-----END CERTIFICATE-----\n\"\"\",\n    site_id=default_site.id,\n    private_key=\"\"\"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC+7dgpkQifIqzOU6KNkFRjZtMZOoN7/ihNf/BrYcPhLQSkcPOf\nUsTP/qvH0u965GnYFiAoK3uWGQo9aCBuoawRFKNBa9ZpJVyVbamBWTBQ/Fxsforq\n9jJNR7OWA3fxvDxgwyEkv0qsnh1zaOkjyUlxFYwDiFxZ1/RHAj/SABCubQIDAQAB\nAoGADiobBUprN1MdOtldj98LQ6yXMKH0qzg5yTYaofzIyWXLmF+A02sSitO77sEp\nXxae+5b4n8JKEuKcrd2RumNoHmN47iLQ0M2eodjUQ96kzm5Esq6nln62/NF5KLuK\nJDw63nTsg6K0O+gQZv4SYjZAL3cswSmeQmvmcoNgArfcaoECQQDgYy6S91ZIUsLx\n6BB3tW+x7APYnvKysYbcKUEP8AutZSo4hdMfPQkOD0LwP5dWsrNippDWjNDiPZmt\nVKuZDoDdAkEA2dPxy1eQeJsRYTZmTWIuh3UY9xlL3G9skcSOM4LbFidroHWW9UDJ\nJDSSEMH2+/4quYTdPr28cj7RCjqL0brC0QJABXDCL1QJ5oUDLwRWaeCfTawQR89K\nySRexbXGWxGR5uleBbLQ9J/xOUMLd3HDRJnemZS6TElrwyCFOlukMXjVjQJBALr5\nQC0opmu/vzVQepOl2QaQrrM7VXCLfAfLTbxNcD0d7TY4eTFfQMgBD/euZpB65LWF\npFs8hcsSvGApTObjhmECQEydB1zzjU6kH171XlXCtRFnbORu2IB7rMsDP2CBPHyR\ntYBjBNVHIUGcmrMVFX4LeMuvvmUyzwfgLmLchHxbDP8=\n-----END RSA PRIVATE KEY-----\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = \"chenxin0116.site\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultSiteOriginClientCertificate = new AliCloud.Esa.SiteOriginClientCertificate(\"default\", new()\n    {\n        SiteOriginClientCertificateName = \"exampleCertificate\",\n        Certificate = @\"-----BEGIN CERTIFICATE-----\nMIICQTCCAaoCCQCFfdyqahygLzANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJj\nbjEQMA4GA1UECAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwI\nYWxpY2xvdWQxEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwHhcNMjAw\nODA2MTAwMDAyWhcNMzAwODA0MTAwMDAyWjBlMQswCQYDVQQGEwJjbjEQMA4GA1UE\nCAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwIYWxpY2xvdWQx\nEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwgZ8wDQYJKoZIhvcNAQEB\nBQADgY0AMIGJAoGBAL7t2CmRCJ8irM5Too2QVGNm0xk6g3v+KE1/8Gthw+EtBKRw\n859SxM/+q8fS73rkadgWICgre5YZCj1oIG6hrBEUo0Fr1mklXJVtqYFZMFD8XGx+\niur2Mk1Hs5YDd/G8PGDDISS/SqyeHXNo6SPJSXEVjAOIXFnX9EcCP9IAEK5tAgMB\nAAEwDQYJKoZIhvcNAQEFBQADgYEAavYdM9s5jLFP9/ZPCrsRuRsjSJpe5y9VZL+1\n+Ebbw16V0xMYaqODyFH1meLRW/A4xUs15Ny2vLYOW15Mriif7Sixty3HUedBFa4l\ny6/gQ+mBEeZYzMaTTFgyzEZDMsfZxwV9GKfhOzAmK3jZ2LDpHIhnlJN4WwVf0lME\npCPDN7g=\n-----END CERTIFICATE-----\n\",\n        SiteId = defaultSite.Id,\n        PrivateKey = @\"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC+7dgpkQifIqzOU6KNkFRjZtMZOoN7/ihNf/BrYcPhLQSkcPOf\nUsTP/qvH0u965GnYFiAoK3uWGQo9aCBuoawRFKNBa9ZpJVyVbamBWTBQ/Fxsforq\n9jJNR7OWA3fxvDxgwyEkv0qsnh1zaOkjyUlxFYwDiFxZ1/RHAj/SABCubQIDAQAB\nAoGADiobBUprN1MdOtldj98LQ6yXMKH0qzg5yTYaofzIyWXLmF+A02sSitO77sEp\nXxae+5b4n8JKEuKcrd2RumNoHmN47iLQ0M2eodjUQ96kzm5Esq6nln62/NF5KLuK\nJDw63nTsg6K0O+gQZv4SYjZAL3cswSmeQmvmcoNgArfcaoECQQDgYy6S91ZIUsLx\n6BB3tW+x7APYnvKysYbcKUEP8AutZSo4hdMfPQkOD0LwP5dWsrNippDWjNDiPZmt\nVKuZDoDdAkEA2dPxy1eQeJsRYTZmTWIuh3UY9xlL3G9skcSOM4LbFidroHWW9UDJ\nJDSSEMH2+/4quYTdPr28cj7RCjqL0brC0QJABXDCL1QJ5oUDLwRWaeCfTawQR89K\nySRexbXGWxGR5uleBbLQ9J/xOUMLd3HDRJnemZS6TElrwyCFOlukMXjVjQJBALr5\nQC0opmu/vzVQepOl2QaQrrM7VXCLfAfLTbxNcD0d7TY4eTFfQMgBD/euZpB65LWF\npFs8hcsSvGApTObjhmECQEydB1zzjU6kH171XlXCtRFnbORu2IB7rMsDP2CBPHyR\ntYBjBNVHIUGcmrMVFX4LeMuvvmUyzwfgLmLchHxbDP8=\n-----END RSA PRIVATE KEY-----\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"chenxin0116.site\"),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewSiteOriginClientCertificate(ctx, \"default\", \u0026esa.SiteOriginClientCertificateArgs{\n\t\t\tSiteOriginClientCertificateName: pulumi.String(\"exampleCertificate\"),\n\t\t\tCertificate: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIICQTCCAaoCCQCFfdyqahygLzANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJj\nbjEQMA4GA1UECAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwI\nYWxpY2xvdWQxEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwHhcNMjAw\nODA2MTAwMDAyWhcNMzAwODA0MTAwMDAyWjBlMQswCQYDVQQGEwJjbjEQMA4GA1UE\nCAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwIYWxpY2xvdWQx\nEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwgZ8wDQYJKoZIhvcNAQEB\nBQADgY0AMIGJAoGBAL7t2CmRCJ8irM5Too2QVGNm0xk6g3v+KE1/8Gthw+EtBKRw\n859SxM/+q8fS73rkadgWICgre5YZCj1oIG6hrBEUo0Fr1mklXJVtqYFZMFD8XGx+\niur2Mk1Hs5YDd/G8PGDDISS/SqyeHXNo6SPJSXEVjAOIXFnX9EcCP9IAEK5tAgMB\nAAEwDQYJKoZIhvcNAQEFBQADgYEAavYdM9s5jLFP9/ZPCrsRuRsjSJpe5y9VZL+1\n+Ebbw16V0xMYaqODyFH1meLRW/A4xUs15Ny2vLYOW15Mriif7Sixty3HUedBFa4l\ny6/gQ+mBEeZYzMaTTFgyzEZDMsfZxwV9GKfhOzAmK3jZ2LDpHIhnlJN4WwVf0lME\npCPDN7g=\n-----END CERTIFICATE-----\n`),\n\t\t\tSiteId: defaultSite.ID(),\n\t\t\tPrivateKey: pulumi.String(`-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC+7dgpkQifIqzOU6KNkFRjZtMZOoN7/ihNf/BrYcPhLQSkcPOf\nUsTP/qvH0u965GnYFiAoK3uWGQo9aCBuoawRFKNBa9ZpJVyVbamBWTBQ/Fxsforq\n9jJNR7OWA3fxvDxgwyEkv0qsnh1zaOkjyUlxFYwDiFxZ1/RHAj/SABCubQIDAQAB\nAoGADiobBUprN1MdOtldj98LQ6yXMKH0qzg5yTYaofzIyWXLmF+A02sSitO77sEp\nXxae+5b4n8JKEuKcrd2RumNoHmN47iLQ0M2eodjUQ96kzm5Esq6nln62/NF5KLuK\nJDw63nTsg6K0O+gQZv4SYjZAL3cswSmeQmvmcoNgArfcaoECQQDgYy6S91ZIUsLx\n6BB3tW+x7APYnvKysYbcKUEP8AutZSo4hdMfPQkOD0LwP5dWsrNippDWjNDiPZmt\nVKuZDoDdAkEA2dPxy1eQeJsRYTZmTWIuh3UY9xlL3G9skcSOM4LbFidroHWW9UDJ\nJDSSEMH2+/4quYTdPr28cj7RCjqL0brC0QJABXDCL1QJ5oUDLwRWaeCfTawQR89K\nySRexbXGWxGR5uleBbLQ9J/xOUMLd3HDRJnemZS6TElrwyCFOlukMXjVjQJBALr5\nQC0opmu/vzVQepOl2QaQrrM7VXCLfAfLTbxNcD0d7TY4eTFfQMgBD/euZpB65LWF\npFs8hcsSvGApTObjhmECQEydB1zzjU6kH171XlXCtRFnbORu2IB7rMsDP2CBPHyR\ntYBjBNVHIUGcmrMVFX4LeMuvvmUyzwfgLmLchHxbDP8=\n-----END RSA PRIVATE KEY-----\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.SiteOriginClientCertificate;\nimport com.pulumi.alicloud.esa.SiteOriginClientCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(\"chenxin0116.site\")\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultSiteOriginClientCertificate = new SiteOriginClientCertificate(\"defaultSiteOriginClientCertificate\", SiteOriginClientCertificateArgs.builder()\n            .siteOriginClientCertificateName(\"exampleCertificate\")\n            .certificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIICQTCCAaoCCQCFfdyqahygLzANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJj\nbjEQMA4GA1UECAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwI\nYWxpY2xvdWQxEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwHhcNMjAw\nODA2MTAwMDAyWhcNMzAwODA0MTAwMDAyWjBlMQswCQYDVQQGEwJjbjEQMA4GA1UE\nCAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwIYWxpY2xvdWQx\nEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwgZ8wDQYJKoZIhvcNAQEB\nBQADgY0AMIGJAoGBAL7t2CmRCJ8irM5Too2QVGNm0xk6g3v+KE1/8Gthw+EtBKRw\n859SxM/+q8fS73rkadgWICgre5YZCj1oIG6hrBEUo0Fr1mklXJVtqYFZMFD8XGx+\niur2Mk1Hs5YDd/G8PGDDISS/SqyeHXNo6SPJSXEVjAOIXFnX9EcCP9IAEK5tAgMB\nAAEwDQYJKoZIhvcNAQEFBQADgYEAavYdM9s5jLFP9/ZPCrsRuRsjSJpe5y9VZL+1\n+Ebbw16V0xMYaqODyFH1meLRW/A4xUs15Ny2vLYOW15Mriif7Sixty3HUedBFa4l\ny6/gQ+mBEeZYzMaTTFgyzEZDMsfZxwV9GKfhOzAmK3jZ2LDpHIhnlJN4WwVf0lME\npCPDN7g=\n-----END CERTIFICATE-----\n            \"\"\")\n            .siteId(defaultSite.id())\n            .privateKey(\"\"\"\n-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC+7dgpkQifIqzOU6KNkFRjZtMZOoN7/ihNf/BrYcPhLQSkcPOf\nUsTP/qvH0u965GnYFiAoK3uWGQo9aCBuoawRFKNBa9ZpJVyVbamBWTBQ/Fxsforq\n9jJNR7OWA3fxvDxgwyEkv0qsnh1zaOkjyUlxFYwDiFxZ1/RHAj/SABCubQIDAQAB\nAoGADiobBUprN1MdOtldj98LQ6yXMKH0qzg5yTYaofzIyWXLmF+A02sSitO77sEp\nXxae+5b4n8JKEuKcrd2RumNoHmN47iLQ0M2eodjUQ96kzm5Esq6nln62/NF5KLuK\nJDw63nTsg6K0O+gQZv4SYjZAL3cswSmeQmvmcoNgArfcaoECQQDgYy6S91ZIUsLx\n6BB3tW+x7APYnvKysYbcKUEP8AutZSo4hdMfPQkOD0LwP5dWsrNippDWjNDiPZmt\nVKuZDoDdAkEA2dPxy1eQeJsRYTZmTWIuh3UY9xlL3G9skcSOM4LbFidroHWW9UDJ\nJDSSEMH2+/4quYTdPr28cj7RCjqL0brC0QJABXDCL1QJ5oUDLwRWaeCfTawQR89K\nySRexbXGWxGR5uleBbLQ9J/xOUMLd3HDRJnemZS6TElrwyCFOlukMXjVjQJBALr5\nQC0opmu/vzVQepOl2QaQrrM7VXCLfAfLTbxNcD0d7TY4eTFfQMgBD/euZpB65LWF\npFs8hcsSvGApTObjhmECQEydB1zzjU6kH171XlXCtRFnbORu2IB7rMsDP2CBPHyR\ntYBjBNVHIUGcmrMVFX4LeMuvvmUyzwfgLmLchHxbDP8=\n-----END RSA PRIVATE KEY-----\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: chenxin0116.site\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  defaultSiteOriginClientCertificate:\n    type: alicloud:esa:SiteOriginClientCertificate\n    name: default\n    properties:\n      siteOriginClientCertificateName: exampleCertificate\n      certificate: |\n        -----BEGIN CERTIFICATE-----\n        MIICQTCCAaoCCQCFfdyqahygLzANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJj\n        bjEQMA4GA1UECAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwI\n        YWxpY2xvdWQxEDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwHhcNMjAw\n        ODA2MTAwMDAyWhcNMzAwODA0MTAwMDAyWjBlMQswCQYDVQQGEwJjbjEQMA4GA1UE\n        CAwHYmVpamluZzEQMA4GA1UEBwwHYmVpamluZzERMA8GA1UECgwIYWxpY2xvdWQx\n        EDAOBgNVBAsMB2FsaWJhYmExDTALBgNVBAMMBHRlc3QwgZ8wDQYJKoZIhvcNAQEB\n        BQADgY0AMIGJAoGBAL7t2CmRCJ8irM5Too2QVGNm0xk6g3v+KE1/8Gthw+EtBKRw\n        859SxM/+q8fS73rkadgWICgre5YZCj1oIG6hrBEUo0Fr1mklXJVtqYFZMFD8XGx+\n        iur2Mk1Hs5YDd/G8PGDDISS/SqyeHXNo6SPJSXEVjAOIXFnX9EcCP9IAEK5tAgMB\n        AAEwDQYJKoZIhvcNAQEFBQADgYEAavYdM9s5jLFP9/ZPCrsRuRsjSJpe5y9VZL+1\n        +Ebbw16V0xMYaqODyFH1meLRW/A4xUs15Ny2vLYOW15Mriif7Sixty3HUedBFa4l\n        y6/gQ+mBEeZYzMaTTFgyzEZDMsfZxwV9GKfhOzAmK3jZ2LDpHIhnlJN4WwVf0lME\n        pCPDN7g=\n        -----END CERTIFICATE-----\n      siteId: ${defaultSite.id}\n      privateKey: |\n        -----BEGIN RSA PRIVATE KEY-----\n        MIICXAIBAAKBgQC+7dgpkQifIqzOU6KNkFRjZtMZOoN7/ihNf/BrYcPhLQSkcPOf\n        UsTP/qvH0u965GnYFiAoK3uWGQo9aCBuoawRFKNBa9ZpJVyVbamBWTBQ/Fxsforq\n        9jJNR7OWA3fxvDxgwyEkv0qsnh1zaOkjyUlxFYwDiFxZ1/RHAj/SABCubQIDAQAB\n        AoGADiobBUprN1MdOtldj98LQ6yXMKH0qzg5yTYaofzIyWXLmF+A02sSitO77sEp\n        Xxae+5b4n8JKEuKcrd2RumNoHmN47iLQ0M2eodjUQ96kzm5Esq6nln62/NF5KLuK\n        JDw63nTsg6K0O+gQZv4SYjZAL3cswSmeQmvmcoNgArfcaoECQQDgYy6S91ZIUsLx\n        6BB3tW+x7APYnvKysYbcKUEP8AutZSo4hdMfPQkOD0LwP5dWsrNippDWjNDiPZmt\n        VKuZDoDdAkEA2dPxy1eQeJsRYTZmTWIuh3UY9xlL3G9skcSOM4LbFidroHWW9UDJ\n        JDSSEMH2+/4quYTdPr28cj7RCjqL0brC0QJABXDCL1QJ5oUDLwRWaeCfTawQR89K\n        ySRexbXGWxGR5uleBbLQ9J/xOUMLd3HDRJnemZS6TElrwyCFOlukMXjVjQJBALr5\n        QC0opmu/vzVQepOl2QaQrrM7VXCLfAfLTbxNcD0d7TY4eTFfQMgBD/euZpB65LWF\n        pFs8hcsSvGApTObjhmECQEydB1zzjU6kH171XlXCtRFnbORu2IB7rMsDP2CBPHyR\n        tYBjBNVHIUGcmrMVFX4LeMuvvmUyzwfgLmLchHxbDP8=\n        -----END RSA PRIVATE KEY-----\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Site Origin Client Certificate can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/siteOriginClientCertificate:SiteOriginClientCertificate example \u003csite_id\u003e:\u003csite_origin_client_certificate_id\u003e\n```\n\n","properties":{"certificate":{"type":"string","description":"The certificate content.\n"},"createTime":{"type":"string","description":"The time when the certificate was created.\n"},"privateKey":{"type":"string","description":"The private key of the certificate.\n","secret":true},"siteId":{"type":"string","description":"Site ID.\n"},"siteOriginClientCertificateId":{"type":"string","description":"The certificate ID on ESA.\n"},"siteOriginClientCertificateName":{"type":"string","description":"The certificate name.\n"},"status":{"type":"string","description":"The status of the certificate.\n"}},"required":["certificate","createTime","privateKey","siteId","siteOriginClientCertificateId","status"],"inputProperties":{"certificate":{"type":"string","description":"The certificate content.\n","willReplaceOnChanges":true},"privateKey":{"type":"string","description":"The private key of the certificate.\n","secret":true,"willReplaceOnChanges":true},"siteId":{"type":"string","description":"Site ID.\n","willReplaceOnChanges":true},"siteOriginClientCertificateName":{"type":"string","description":"The certificate name.\n","willReplaceOnChanges":true}},"requiredInputs":["certificate","privateKey","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering SiteOriginClientCertificate resources.\n","properties":{"certificate":{"type":"string","description":"The certificate content.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The time when the certificate was created.\n"},"privateKey":{"type":"string","description":"The private key of the certificate.\n","secret":true,"willReplaceOnChanges":true},"siteId":{"type":"string","description":"Site ID.\n","willReplaceOnChanges":true},"siteOriginClientCertificateId":{"type":"string","description":"The certificate ID on ESA.\n"},"siteOriginClientCertificateName":{"type":"string","description":"The certificate name.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the certificate.\n"}},"type":"object"}},"alicloud:esa/transportLayerApplication:TransportLayerApplication":{"description":"Provides a ESA Transport Layer Application resource.\n\nTransport Layer Acceleration Application.\n\nFor information about ESA Transport Layer Application and how to use it, see [What is Transport Layer Application](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateTransportLayerApplication).\n\n\u003e **NOTE:** Available since v1.260.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n    siteName: \"gositecdn.cn\",\n});\nconst defaultTransportLayerApplication = new alicloud.esa.TransportLayerApplication(\"default\", {\n    recordName: \"resource2.gositecdn.cn\",\n    siteId: _default.then(_default =\u003e _default.sites?.[0]?.siteId),\n    ipAccessRule: \"off\",\n    ipv6: \"off\",\n    crossBorderOptimization: \"off\",\n    rules: [{\n        source: \"1.2.3.4\",\n        comment: \"transportLayerApplication\",\n        edgePort: \"80\",\n        sourceType: \"ip\",\n        protocol: \"TCP\",\n        sourcePort: \"8080\",\n        clientIpPassThroughMode: \"off\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\",\n    site_name=\"gositecdn.cn\")\ndefault_transport_layer_application = alicloud.esa.TransportLayerApplication(\"default\",\n    record_name=\"resource2.gositecdn.cn\",\n    site_id=default.sites[0].site_id,\n    ip_access_rule=\"off\",\n    ipv6=\"off\",\n    cross_border_optimization=\"off\",\n    rules=[{\n        \"source\": \"1.2.3.4\",\n        \"comment\": \"transportLayerApplication\",\n        \"edge_port\": \"80\",\n        \"source_type\": \"ip\",\n        \"protocol\": \"TCP\",\n        \"source_port\": \"8080\",\n        \"client_ip_pass_through_mode\": \"off\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n        SiteName = \"gositecdn.cn\",\n    });\n\n    var defaultTransportLayerApplication = new AliCloud.Esa.TransportLayerApplication(\"default\", new()\n    {\n        RecordName = \"resource2.gositecdn.cn\",\n        SiteId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.SiteId)),\n        IpAccessRule = \"off\",\n        Ipv6 = \"off\",\n        CrossBorderOptimization = \"off\",\n        Rules = new[]\n        {\n            new AliCloud.Esa.Inputs.TransportLayerApplicationRuleArgs\n            {\n                Source = \"1.2.3.4\",\n                Comment = \"transportLayerApplication\",\n                EdgePort = \"80\",\n                SourceType = \"ip\",\n                Protocol = \"TCP\",\n                SourcePort = \"8080\",\n                ClientIpPassThroughMode = \"off\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t\tSiteName:          pulumi.StringRef(\"gositecdn.cn\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewTransportLayerApplication(ctx, \"default\", \u0026esa.TransportLayerApplicationArgs{\n\t\t\tRecordName:              pulumi.String(\"resource2.gositecdn.cn\"),\n\t\t\tSiteId:                  pulumi.Int(_default.Sites[0].SiteId),\n\t\t\tIpAccessRule:            pulumi.String(\"off\"),\n\t\t\tIpv6:                    pulumi.String(\"off\"),\n\t\t\tCrossBorderOptimization: pulumi.String(\"off\"),\n\t\t\tRules: esa.TransportLayerApplicationRuleArray{\n\t\t\t\t\u0026esa.TransportLayerApplicationRuleArgs{\n\t\t\t\t\tSource:                  pulumi.String(\"1.2.3.4\"),\n\t\t\t\t\tComment:                 pulumi.String(\"transportLayerApplication\"),\n\t\t\t\t\tEdgePort:                pulumi.String(\"80\"),\n\t\t\t\t\tSourceType:              pulumi.String(\"ip\"),\n\t\t\t\t\tProtocol:                pulumi.String(\"TCP\"),\n\t\t\t\t\tSourcePort:              pulumi.String(\"8080\"),\n\t\t\t\t\tClientIpPassThroughMode: pulumi.String(\"off\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.TransportLayerApplication;\nimport com.pulumi.alicloud.esa.TransportLayerApplicationArgs;\nimport com.pulumi.alicloud.esa.inputs.TransportLayerApplicationRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .siteName(\"gositecdn.cn\")\n            .build());\n\n        var defaultTransportLayerApplication = new TransportLayerApplication(\"defaultTransportLayerApplication\", TransportLayerApplicationArgs.builder()\n            .recordName(\"resource2.gositecdn.cn\")\n            .siteId(default_.sites()[0].siteId())\n            .ipAccessRule(\"off\")\n            .ipv6(\"off\")\n            .crossBorderOptimization(\"off\")\n            .rules(TransportLayerApplicationRuleArgs.builder()\n                .source(\"1.2.3.4\")\n                .comment(\"transportLayerApplication\")\n                .edgePort(\"80\")\n                .sourceType(\"ip\")\n                .protocol(\"TCP\")\n                .sourcePort(\"8080\")\n                .clientIpPassThroughMode(\"off\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultTransportLayerApplication:\n    type: alicloud:esa:TransportLayerApplication\n    name: default\n    properties:\n      recordName: resource2.gositecdn.cn\n      siteId: ${default.sites[0].siteId}\n      ipAccessRule: off\n      ipv6: off\n      crossBorderOptimization: off\n      rules:\n        - source: 1.2.3.4\n          comment: transportLayerApplication\n          edgePort: '80'\n          sourceType: ip\n          protocol: TCP\n          sourcePort: '8080'\n          clientIpPassThroughMode: off\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n        siteName: gositecdn.cn\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.esa.TransportLayerApplication`\" pulumi-lang-dotnet=\"`alicloud.esa.TransportLayerApplication`\" pulumi-lang-go=\"`esa.TransportLayerApplication`\" pulumi-lang-python=\"`esa.TransportLayerApplication`\" pulumi-lang-yaml=\"`alicloud.esa.TransportLayerApplication`\" pulumi-lang-java=\"`alicloud.esa.TransportLayerApplication`\"\u003e`alicloud.esa.TransportLayerApplication`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.esa.TransportLayerApplication`\" pulumi-lang-dotnet=\"`alicloud.esa.TransportLayerApplication`\" pulumi-lang-go=\"`esa.TransportLayerApplication`\" pulumi-lang-python=\"`esa.TransportLayerApplication`\" pulumi-lang-yaml=\"`alicloud.esa.TransportLayerApplication`\" pulumi-lang-java=\"`alicloud.esa.TransportLayerApplication`\"\u003e`alicloud.esa.TransportLayerApplication`\u003c/span\u003e resource allows you to manage  `status = \"active\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Transport Layer Application can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/transportLayerApplication:TransportLayerApplication example \u003csite_id\u003e:\u003capplication_id\u003e\n```\n\n","properties":{"applicationId":{"type":"integer","description":"Layer 4 application ID.\n"},"crossBorderOptimization":{"type":"string","description":"Whether to enable China mainland network access optimization, default is disabled. Value range:\n"},"ipAccessRule":{"type":"string","description":"IP access rule switch. When enabled, the WAF's IP access rules apply to the transport layer application.\n"},"ipv6":{"type":"string","description":"IPv6 switch.\n"},"recordName":{"type":"string","description":"Domain name of the transport layer application\n"},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:esa/TransportLayerApplicationRule:TransportLayerApplicationRule"},"description":"The list of forwarding rules. Rule details. For each rule, other parameters are required except comments. See \u003cspan pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\"\u003e`rules`\u003c/span\u003e below.\n"},"siteId":{"type":"string","description":"Site ID.\n"},"status":{"type":"string","description":"Status of the transport layer application, modification and deletion are not allowed.\n"}},"required":["applicationId","recordName","rules","siteId","status"],"inputProperties":{"crossBorderOptimization":{"type":"string","description":"Whether to enable China mainland network access optimization, default is disabled. Value range:\n"},"ipAccessRule":{"type":"string","description":"IP access rule switch. When enabled, the WAF's IP access rules apply to the transport layer application.\n"},"ipv6":{"type":"string","description":"IPv6 switch.\n"},"recordName":{"type":"string","description":"Domain name of the transport layer application\n","willReplaceOnChanges":true},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:esa/TransportLayerApplicationRule:TransportLayerApplicationRule"},"description":"The list of forwarding rules. Rule details. For each rule, other parameters are required except comments. See \u003cspan pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\"\u003e`rules`\u003c/span\u003e below.\n"},"siteId":{"type":"string","description":"Site ID.\n","willReplaceOnChanges":true}},"requiredInputs":["recordName","rules","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering TransportLayerApplication resources.\n","properties":{"applicationId":{"type":"integer","description":"Layer 4 application ID.\n"},"crossBorderOptimization":{"type":"string","description":"Whether to enable China mainland network access optimization, default is disabled. Value range:\n"},"ipAccessRule":{"type":"string","description":"IP access rule switch. When enabled, the WAF's IP access rules apply to the transport layer application.\n"},"ipv6":{"type":"string","description":"IPv6 switch.\n"},"recordName":{"type":"string","description":"Domain name of the transport layer application\n","willReplaceOnChanges":true},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:esa/TransportLayerApplicationRule:TransportLayerApplicationRule"},"description":"The list of forwarding rules. Rule details. For each rule, other parameters are required except comments. See \u003cspan pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\"\u003e`rules`\u003c/span\u003e below.\n"},"siteId":{"type":"string","description":"Site ID.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Status of the transport layer application, modification and deletion are not allowed.\n"}},"type":"object"}},"alicloud:esa/urlObservation:UrlObservation":{"description":"Provides a ESA Url Observation resource.\n\nWeb page monitoring.\n\nFor information about ESA Url Observation and how to use it, see [What is Url Observation](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateUrlObservation).\n\n\u003e **NOTE:** Available since v1.259.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: \"terraform.cn\",\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultUrlObservation = new alicloud.esa.UrlObservation(\"default\", {\n    sdkType: \"automatic\",\n    siteId: defaultSite.id,\n    url: \"terraform.cn/a.html\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=\"terraform.cn\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_url_observation = alicloud.esa.UrlObservation(\"default\",\n    sdk_type=\"automatic\",\n    site_id=default_site.id,\n    url=\"terraform.cn/a.html\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = \"terraform.cn\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultUrlObservation = new AliCloud.Esa.UrlObservation(\"default\", new()\n    {\n        SdkType = \"automatic\",\n        SiteId = defaultSite.Id,\n        Url = \"terraform.cn/a.html\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"terraform.cn\"),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewUrlObservation(ctx, \"default\", \u0026esa.UrlObservationArgs{\n\t\t\tSdkType: pulumi.String(\"automatic\"),\n\t\t\tSiteId:  defaultSite.ID(),\n\t\t\tUrl:     pulumi.String(\"terraform.cn/a.html\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.UrlObservation;\nimport com.pulumi.alicloud.esa.UrlObservationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(\"terraform.cn\")\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultUrlObservation = new UrlObservation(\"defaultUrlObservation\", UrlObservationArgs.builder()\n            .sdkType(\"automatic\")\n            .siteId(defaultSite.id())\n            .url(\"terraform.cn/a.html\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: terraform.cn\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  defaultUrlObservation:\n    type: alicloud:esa:UrlObservation\n    name: default\n    properties:\n      sdkType: automatic\n      siteId: ${defaultSite.id}\n      url: terraform.cn/a.html\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Url Observation can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/urlObservation:UrlObservation example \u003csite_id\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"configId":{"type":"integer","description":"Config Id\n"},"sdkType":{"type":"string","description":"SDK integration mode. Value:\n"},"siteId":{"type":"string","description":"The site ID.\n"},"url":{"type":"string","description":"The URL of the page to monitor.\n"}},"required":["configId","sdkType","siteId","url"],"inputProperties":{"sdkType":{"type":"string","description":"SDK integration mode. Value:\n"},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true},"url":{"type":"string","description":"The URL of the page to monitor.\n","willReplaceOnChanges":true}},"requiredInputs":["sdkType","siteId","url"],"stateInputs":{"description":"Input properties used for looking up and filtering UrlObservation resources.\n","properties":{"configId":{"type":"integer","description":"Config Id\n"},"sdkType":{"type":"string","description":"SDK integration mode. Value:\n"},"siteId":{"type":"string","description":"The site ID.\n","willReplaceOnChanges":true},"url":{"type":"string","description":"The URL of the page to monitor.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:esa/version:Version":{"description":"Provides a ESA Version resource.\n\n\n\nFor information about ESA Version and how to use it, see [What is Version](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CloneVersion).\n\n\u003e **NOTE:** Available since v1.251.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"bcd72239.com\";\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: name,\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n    versionManagement: true,\n});\nconst defaultVersion = new alicloud.esa.Version(\"default\", {\n    siteId: defaultSite.id,\n    description: \"example\",\n    originVersion: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"bcd72239.com\"\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=name,\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\",\n    version_management=True)\ndefault_version = alicloud.esa.Version(\"default\",\n    site_id=default_site.id,\n    description=\"example\",\n    origin_version=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"bcd72239.com\";\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = name,\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n        VersionManagement = true,\n    });\n\n    var defaultVersion = new AliCloud.Esa.Version(\"default\", new()\n    {\n        SiteId = defaultSite.Id,\n        Description = \"example\",\n        OriginVersion = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"bcd72239.com\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:          pulumi.String(name),\n\t\t\tInstanceId:        pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:          pulumi.String(\"overseas\"),\n\t\t\tAccessType:        pulumi.String(\"NS\"),\n\t\t\tVersionManagement: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewVersion(ctx, \"default\", \u0026esa.VersionArgs{\n\t\t\tSiteId:        defaultSite.ID(),\n\t\t\tDescription:   pulumi.String(\"example\"),\n\t\t\tOriginVersion: pulumi.Int(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.Version;\nimport com.pulumi.alicloud.esa.VersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"bcd72239.com\");\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(name)\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .versionManagement(true)\n            .build());\n\n        var defaultVersion = new Version(\"defaultVersion\", VersionArgs.builder()\n            .siteId(defaultSite.id())\n            .description(\"example\")\n            .originVersion(0)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: bcd72239.com\nresources:\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: ${name}\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n      versionManagement: true\n  defaultVersion:\n    type: alicloud:esa:Version\n    name: default\n    properties:\n      siteId: ${defaultSite.id}\n      description: example\n      originVersion: '0'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Site Version can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/version:Version example \u003csite_id\u003e:\u003csite_version\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time. The date format follows ISO8601 notation and uses UTC time. The format is yyyy-MM-ddTHH:mm:ssZ.\n"},"description":{"type":"string","description":"The Site version's description.\n"},"originVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n"},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n"},"status":{"type":"string","description":"Site version status:：\u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e.：\u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e._faild`：\u003cspan pulumi-lang-nodejs=\"`configureFaild`\" pulumi-lang-dotnet=\"`ConfigureFaild`\" pulumi-lang-go=\"`configureFaild`\" pulumi-lang-python=\"`configure_faild`\" pulumi-lang-yaml=\"`configureFaild`\" pulumi-lang-java=\"`configureFaild`\"\u003e`configure_faild`\u003c/span\u003e.\n"}},"required":["createTime","originVersion","siteId","siteVersion","status"],"inputProperties":{"description":{"type":"string","description":"The Site version's description.\n"},"originVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n","willReplaceOnChanges":true}},"requiredInputs":["originVersion","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering Version resources.\n","properties":{"createTime":{"type":"string","description":"The creation time. The date format follows ISO8601 notation and uses UTC time. The format is yyyy-MM-ddTHH:mm:ssZ.\n"},"description":{"type":"string","description":"The Site version's description.\n"},"originVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n"},"status":{"type":"string","description":"Site version status:：\u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e.：\u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e._faild`：\u003cspan pulumi-lang-nodejs=\"`configureFaild`\" pulumi-lang-dotnet=\"`ConfigureFaild`\" pulumi-lang-go=\"`configureFaild`\" pulumi-lang-python=\"`configure_faild`\" pulumi-lang-yaml=\"`configureFaild`\" pulumi-lang-java=\"`configureFaild`\"\u003e`configure_faild`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:esa/videoProcessing:VideoProcessing":{"description":"Provides a ESA Video Processing resource.\n\n\n\nFor information about ESA Video Processing and how to use it, see [What is Video Processing](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateVideoProcessing).\n\n\u003e **NOTE:** Available since v1.251.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: \"chenxin0116.site\",\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultVideoProcessing = new alicloud.esa.VideoProcessing(\"default\", {\n    videoSeekEnable: \"on\",\n    ruleEnable: \"on\",\n    mp4SeekEnd: \"end\",\n    flvSeekStart: \"start\",\n    rule: \"(http.host eq \\\"video.example.com\\\")\",\n    flvVideoSeekMode: \"by_byte\",\n    mp4SeekStart: \"start\",\n    flvSeekEnd: \"end\",\n    siteId: defaultSite.id,\n    sequence: 1,\n    siteVersion: 0,\n    ruleName: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=\"chenxin0116.site\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_video_processing = alicloud.esa.VideoProcessing(\"default\",\n    video_seek_enable=\"on\",\n    rule_enable=\"on\",\n    mp4_seek_end=\"end\",\n    flv_seek_start=\"start\",\n    rule=\"(http.host eq \\\"video.example.com\\\")\",\n    flv_video_seek_mode=\"by_byte\",\n    mp4_seek_start=\"start\",\n    flv_seek_end=\"end\",\n    site_id=default_site.id,\n    sequence=1,\n    site_version=0,\n    rule_name=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = \"chenxin0116.site\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultVideoProcessing = new AliCloud.Esa.VideoProcessing(\"default\", new()\n    {\n        VideoSeekEnable = \"on\",\n        RuleEnable = \"on\",\n        Mp4SeekEnd = \"end\",\n        FlvSeekStart = \"start\",\n        Rule = \"(http.host eq \\\"video.example.com\\\")\",\n        FlvVideoSeekMode = \"by_byte\",\n        Mp4SeekStart = \"start\",\n        FlvSeekEnd = \"end\",\n        SiteId = defaultSite.Id,\n        Sequence = 1,\n        SiteVersion = 0,\n        RuleName = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"chenxin0116.site\"),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewVideoProcessing(ctx, \"default\", \u0026esa.VideoProcessingArgs{\n\t\t\tVideoSeekEnable:  pulumi.String(\"on\"),\n\t\t\tRuleEnable:       pulumi.String(\"on\"),\n\t\t\tMp4SeekEnd:       pulumi.String(\"end\"),\n\t\t\tFlvSeekStart:     pulumi.String(\"start\"),\n\t\t\tRule:             pulumi.String(\"(http.host eq \\\"video.example.com\\\")\"),\n\t\t\tFlvVideoSeekMode: pulumi.String(\"by_byte\"),\n\t\t\tMp4SeekStart:     pulumi.String(\"start\"),\n\t\t\tFlvSeekEnd:       pulumi.String(\"end\"),\n\t\t\tSiteId:           defaultSite.ID(),\n\t\t\tSequence:         pulumi.Int(1),\n\t\t\tSiteVersion:      pulumi.Int(0),\n\t\t\tRuleName:         pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.VideoProcessing;\nimport com.pulumi.alicloud.esa.VideoProcessingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(\"chenxin0116.site\")\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultVideoProcessing = new VideoProcessing(\"defaultVideoProcessing\", VideoProcessingArgs.builder()\n            .videoSeekEnable(\"on\")\n            .ruleEnable(\"on\")\n            .mp4SeekEnd(\"end\")\n            .flvSeekStart(\"start\")\n            .rule(\"(http.host eq \\\"video.example.com\\\")\")\n            .flvVideoSeekMode(\"by_byte\")\n            .mp4SeekStart(\"start\")\n            .flvSeekEnd(\"end\")\n            .siteId(defaultSite.id())\n            .sequence(1)\n            .siteVersion(0)\n            .ruleName(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: chenxin0116.site\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  defaultVideoProcessing:\n    type: alicloud:esa:VideoProcessing\n    name: default\n    properties:\n      videoSeekEnable: on\n      ruleEnable: on\n      mp4SeekEnd: end\n      flvSeekStart: start\n      rule: (http.host eq \"video.example.com\")\n      flvVideoSeekMode: by_byte\n      mp4SeekStart: start\n      flvSeekEnd: end\n      siteId: ${defaultSite.id}\n      sequence: '1'\n      siteVersion: '0'\n      ruleName: example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Video Processing can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/videoProcessing:VideoProcessing example \u003csite_id\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"configId":{"type":"integer","description":"Config Id\n"},"flvSeekEnd":{"type":"string","description":"Custom FLV end parameters.\n"},"flvSeekStart":{"type":"string","description":"Custom FLV start parameters.\n"},"flvVideoSeekMode":{"type":"string","description":"FLV drag mode. Value range:\n"},"mp4SeekEnd":{"type":"string","description":"Custom mp4 end parameters.\n"},"mp4SeekStart":{"type":"string","description":"Custom mp4 start parameters.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n"},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n"},"videoSeekEnable":{"type":"string","description":"Drag and drop the play function switch. Value range:\n"}},"required":["configId","siteId"],"inputProperties":{"flvSeekEnd":{"type":"string","description":"Custom FLV end parameters.\n"},"flvSeekStart":{"type":"string","description":"Custom FLV start parameters.\n"},"flvVideoSeekMode":{"type":"string","description":"FLV drag mode. Value range:\n"},"mp4SeekEnd":{"type":"string","description":"Custom mp4 end parameters.\n"},"mp4SeekStart":{"type":"string","description":"Custom mp4 start parameters.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true},"videoSeekEnable":{"type":"string","description":"Drag and drop the play function switch. Value range:\n"}},"requiredInputs":["siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering VideoProcessing resources.\n","properties":{"configId":{"type":"integer","description":"Config Id\n"},"flvSeekEnd":{"type":"string","description":"Custom FLV end parameters.\n"},"flvSeekStart":{"type":"string","description":"Custom FLV start parameters.\n"},"flvVideoSeekMode":{"type":"string","description":"FLV drag mode. Value range:\n"},"mp4SeekEnd":{"type":"string","description":"Custom mp4 end parameters.\n"},"mp4SeekStart":{"type":"string","description":"Custom mp4 start parameters.\n"},"rule":{"type":"string","description":"Rule content, using conditional expressions to match user requests. When adding global configuration, this parameter does not need to be set. There are two usage scenarios:\n- Match all incoming requests: value set to true\n- Match specified request: Set the value to a custom expression, for example: (http.host eq \\\"video.example.com\\\")\n"},"ruleEnable":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n"},"ruleName":{"type":"string","description":"Rule name. When adding global configuration, this parameter does not need to be set.\n"},"sequence":{"type":"integer","description":"The rule execution order prioritizes lower numerical values. It is only applicable when setting or modifying the order of individual rule configurations.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The version number of the site configuration. For sites that have enabled configuration version management, this parameter can be used to specify the effective version of the configuration site, which defaults to version 0.\n","willReplaceOnChanges":true},"videoSeekEnable":{"type":"string","description":"Drag and drop the play function switch. Value range:\n"}},"type":"object"}},"alicloud:esa/wafRule:WafRule":{"description":"Provides a ESA Waf Rule resource.\n\nThe detailed configuration of a Web Application Firewall (WAF) rule.\n\nFor information about ESA Waf Rule and how to use it, see [What is Waf Rule](https://next.api.alibabacloud.com/document/ESA/2024-09-10/BatchCreateWafRules).\n\n\u003e **NOTE:** Available since v1.261.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultWafRuleset = new alicloud.esa.WafRuleset(\"default\", {\n    siteId: _default.then(_default =\u003e _default.sites?.[0]?.siteId),\n    phase: \"http_custom\",\n    siteVersion: 0,\n});\nconst defaultWafRule = new alicloud.esa.WafRule(\"default\", {\n    rulesetId: defaultWafRuleset.rulesetId,\n    phase: \"http_custom\",\n    config: {\n        status: \"on\",\n        action: \"deny\",\n        expression: \"(http.host in {\\\"123.example.top\\\"})\",\n        actions: {\n            response: {\n                id: 0,\n                code: 403,\n            },\n        },\n        name: \"111\",\n    },\n    siteVersion: 0,\n    siteId: _default.then(_default =\u003e _default.sites?.[0]?.siteId),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_waf_ruleset = alicloud.esa.WafRuleset(\"default\",\n    site_id=default.sites[0].site_id,\n    phase=\"http_custom\",\n    site_version=0)\ndefault_waf_rule = alicloud.esa.WafRule(\"default\",\n    ruleset_id=default_waf_ruleset.ruleset_id,\n    phase=\"http_custom\",\n    config={\n        \"status\": \"on\",\n        \"action\": \"deny\",\n        \"expression\": \"(http.host in {\\\"123.example.top\\\"})\",\n        \"actions\": {\n            \"response\": {\n                \"id\": 0,\n                \"code\": 403,\n            },\n        },\n        \"name\": \"111\",\n    },\n    site_version=0,\n    site_id=default.sites[0].site_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultWafRuleset = new AliCloud.Esa.WafRuleset(\"default\", new()\n    {\n        SiteId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.SiteId)),\n        Phase = \"http_custom\",\n        SiteVersion = 0,\n    });\n\n    var defaultWafRule = new AliCloud.Esa.WafRule(\"default\", new()\n    {\n        RulesetId = defaultWafRuleset.RulesetId,\n        Phase = \"http_custom\",\n        Config = new AliCloud.Esa.Inputs.WafRuleConfigArgs\n        {\n            Status = \"on\",\n            Action = \"deny\",\n            Expression = \"(http.host in {\\\"123.example.top\\\"})\",\n            Actions = new AliCloud.Esa.Inputs.WafRuleConfigActionsArgs\n            {\n                Response = new AliCloud.Esa.Inputs.WafRuleConfigActionsResponseArgs\n                {\n                    Id = 0,\n                    Code = 403,\n                },\n            },\n            Name = \"111\",\n        },\n        SiteVersion = 0,\n        SiteId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.SiteId)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultWafRuleset, err := esa.NewWafRuleset(ctx, \"default\", \u0026esa.WafRulesetArgs{\n\t\t\tSiteId:      pulumi.Int(_default.Sites[0].SiteId),\n\t\t\tPhase:       pulumi.String(\"http_custom\"),\n\t\t\tSiteVersion: pulumi.Int(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewWafRule(ctx, \"default\", \u0026esa.WafRuleArgs{\n\t\t\tRulesetId: defaultWafRuleset.RulesetId,\n\t\t\tPhase:     pulumi.String(\"http_custom\"),\n\t\t\tConfig: \u0026esa.WafRuleConfigArgs{\n\t\t\t\tStatus:     pulumi.String(\"on\"),\n\t\t\t\tAction:     pulumi.String(\"deny\"),\n\t\t\t\tExpression: pulumi.String(\"(http.host in {\\\"123.example.top\\\"})\"),\n\t\t\t\tActions: \u0026esa.WafRuleConfigActionsArgs{\n\t\t\t\t\tResponse: \u0026esa.WafRuleConfigActionsResponseArgs{\n\t\t\t\t\t\tId:   pulumi.Int(0),\n\t\t\t\t\t\tCode: pulumi.Int(403),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tName: pulumi.String(\"111\"),\n\t\t\t},\n\t\t\tSiteVersion: pulumi.Int(0),\n\t\t\tSiteId:      pulumi.Int(_default.Sites[0].SiteId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.WafRuleset;\nimport com.pulumi.alicloud.esa.WafRulesetArgs;\nimport com.pulumi.alicloud.esa.WafRule;\nimport com.pulumi.alicloud.esa.WafRuleArgs;\nimport com.pulumi.alicloud.esa.inputs.WafRuleConfigArgs;\nimport com.pulumi.alicloud.esa.inputs.WafRuleConfigActionsArgs;\nimport com.pulumi.alicloud.esa.inputs.WafRuleConfigActionsResponseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultWafRuleset = new WafRuleset(\"defaultWafRuleset\", WafRulesetArgs.builder()\n            .siteId(default_.sites()[0].siteId())\n            .phase(\"http_custom\")\n            .siteVersion(0)\n            .build());\n\n        var defaultWafRule = new WafRule(\"defaultWafRule\", WafRuleArgs.builder()\n            .rulesetId(defaultWafRuleset.rulesetId())\n            .phase(\"http_custom\")\n            .config(WafRuleConfigArgs.builder()\n                .status(\"on\")\n                .action(\"deny\")\n                .expression(\"(http.host in {\\\"123.example.top\\\"})\")\n                .actions(WafRuleConfigActionsArgs.builder()\n                    .response(WafRuleConfigActionsResponseArgs.builder()\n                        .id(0)\n                        .code(403)\n                        .build())\n                    .build())\n                .name(\"111\")\n                .build())\n            .siteVersion(0)\n            .siteId(default_.sites()[0].siteId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultWafRuleset:\n    type: alicloud:esa:WafRuleset\n    name: default\n    properties:\n      siteId: ${default.sites[0].siteId}\n      phase: http_custom\n      siteVersion: '0'\n  defaultWafRule:\n    type: alicloud:esa:WafRule\n    name: default\n    properties:\n      rulesetId: ${defaultWafRuleset.rulesetId}\n      phase: http_custom\n      config:\n        status: on\n        action: deny\n        expression: (http.host in {\"123.example.top\"})\n        actions:\n          response:\n            id: '0'\n            code: '403'\n        name: '111'\n      siteVersion: '0'\n      siteId: ${default.sites[0].siteId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Waf Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/wafRule:WafRule example \u003csite_id\u003e:\u003cwaf_rule_id\u003e\n```\n\n","properties":{"config":{"$ref":"#/types/alicloud:esa/WafRuleConfig:WafRuleConfig","description":"The specific configuration of the WAF rule. See \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e below.\n"},"phase":{"type":"string","description":"The phase in which the WAF processes this rule.\n"},"rulesetId":{"type":"integer","description":"The ID of the WAF ruleset, which can be obtained by calling the [ListWafRulesets](https://www.alibabacloud.com/help/en/doc-detail/2850233.html) operation.\n"},"shared":{"$ref":"#/types/alicloud:esa/WafRuleShared:WafRuleShared","description":"Shared configuration attributes used across multiple rules. See \u003cspan pulumi-lang-nodejs=\"`shared`\" pulumi-lang-dotnet=\"`Shared`\" pulumi-lang-go=\"`shared`\" pulumi-lang-python=\"`shared`\" pulumi-lang-yaml=\"`shared`\" pulumi-lang-java=\"`shared`\"\u003e`shared`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"siteId":{"type":"string","description":"The unique identifier of the website, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.\n"},"siteVersion":{"type":"integer","description":"The website ID, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update or deletion. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"wafRuleId":{"type":"integer","description":"The unique identifier of the WAF rule.\n"}},"required":["phase","siteId","wafRuleId"],"inputProperties":{"config":{"$ref":"#/types/alicloud:esa/WafRuleConfig:WafRuleConfig","description":"The specific configuration of the WAF rule. See \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e below.\n"},"phase":{"type":"string","description":"The phase in which the WAF processes this rule.\n","willReplaceOnChanges":true},"rulesetId":{"type":"integer","description":"The ID of the WAF ruleset, which can be obtained by calling the [ListWafRulesets](https://www.alibabacloud.com/help/en/doc-detail/2850233.html) operation.\n","willReplaceOnChanges":true},"shared":{"$ref":"#/types/alicloud:esa/WafRuleShared:WafRuleShared","description":"Shared configuration attributes used across multiple rules. See \u003cspan pulumi-lang-nodejs=\"`shared`\" pulumi-lang-dotnet=\"`Shared`\" pulumi-lang-go=\"`shared`\" pulumi-lang-python=\"`shared`\" pulumi-lang-yaml=\"`shared`\" pulumi-lang-java=\"`shared`\"\u003e`shared`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"siteId":{"type":"string","description":"The unique identifier of the website, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The website ID, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update or deletion. If modified in isolation without other property changes, Terraform will not trigger any action.\n"}},"requiredInputs":["phase","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering WafRule resources.\n","properties":{"config":{"$ref":"#/types/alicloud:esa/WafRuleConfig:WafRuleConfig","description":"The specific configuration of the WAF rule. See \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e below.\n"},"phase":{"type":"string","description":"The phase in which the WAF processes this rule.\n","willReplaceOnChanges":true},"rulesetId":{"type":"integer","description":"The ID of the WAF ruleset, which can be obtained by calling the [ListWafRulesets](https://www.alibabacloud.com/help/en/doc-detail/2850233.html) operation.\n","willReplaceOnChanges":true},"shared":{"$ref":"#/types/alicloud:esa/WafRuleShared:WafRuleShared","description":"Shared configuration attributes used across multiple rules. See \u003cspan pulumi-lang-nodejs=\"`shared`\" pulumi-lang-dotnet=\"`Shared`\" pulumi-lang-go=\"`shared`\" pulumi-lang-python=\"`shared`\" pulumi-lang-yaml=\"`shared`\" pulumi-lang-java=\"`shared`\"\u003e`shared`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"siteId":{"type":"string","description":"The unique identifier of the website, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The website ID, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update or deletion. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"wafRuleId":{"type":"integer","description":"The unique identifier of the WAF rule.\n"}},"type":"object"}},"alicloud:esa/wafRuleset:WafRuleset":{"description":"Provides a ESA Waf Ruleset resource.\n\nwaf rule set.\n\nFor information about ESA Waf Ruleset and how to use it, see [What is Waf Ruleset](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateWafRuleset).\n\n\u003e **NOTE:** Available since v1.260.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultWafRuleset = new alicloud.esa.WafRuleset(\"default\", {\n    siteId: _default.then(_default =\u003e _default.sites?.[0]?.siteId),\n    phase: \"http_custom\",\n    siteVersion: 0,\n    name: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_waf_ruleset = alicloud.esa.WafRuleset(\"default\",\n    site_id=default.sites[0].site_id,\n    phase=\"http_custom\",\n    site_version=0,\n    name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultWafRuleset = new AliCloud.Esa.WafRuleset(\"default\", new()\n    {\n        SiteId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.SiteId)),\n        Phase = \"http_custom\",\n        SiteVersion = 0,\n        Name = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewWafRuleset(ctx, \"default\", \u0026esa.WafRulesetArgs{\n\t\t\tSiteId:      pulumi.Int(_default.Sites[0].SiteId),\n\t\t\tPhase:       pulumi.String(\"http_custom\"),\n\t\t\tSiteVersion: pulumi.Int(0),\n\t\t\tName:        pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.WafRuleset;\nimport com.pulumi.alicloud.esa.WafRulesetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultWafRuleset = new WafRuleset(\"defaultWafRuleset\", WafRulesetArgs.builder()\n            .siteId(default_.sites()[0].siteId())\n            .phase(\"http_custom\")\n            .siteVersion(0)\n            .name(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultWafRuleset:\n    type: alicloud:esa:WafRuleset\n    name: default\n    properties:\n      siteId: ${default.sites[0].siteId}\n      phase: http_custom\n      siteVersion: '0'\n      name: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Waf Ruleset can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/wafRuleset:WafRuleset example \u003cruleset_id\u003e:\u003csite_id\u003e\n```\n\n","properties":{"name":{"type":"string","description":"The ruleset name.\n"},"phase":{"type":"string","description":"The WAF phase\n"},"rulesetId":{"type":"integer","description":"waf rule set id\n"},"siteId":{"type":"string","description":"The website ID, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.\n"},"siteVersion":{"type":"integer","description":"The site version.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update or deletion. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"status":{"type":"string","description":"Rule Set Status\n"}},"required":["name","phase","rulesetId","siteId","status"],"inputProperties":{"name":{"type":"string","description":"The ruleset name.\n","willReplaceOnChanges":true},"phase":{"type":"string","description":"The WAF phase\n","willReplaceOnChanges":true},"siteId":{"type":"string","description":"The website ID, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The site version.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update or deletion. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"status":{"type":"string","description":"Rule Set Status\n"}},"requiredInputs":["phase","siteId"],"stateInputs":{"description":"Input properties used for looking up and filtering WafRuleset resources.\n","properties":{"name":{"type":"string","description":"The ruleset name.\n","willReplaceOnChanges":true},"phase":{"type":"string","description":"The WAF phase\n","willReplaceOnChanges":true},"rulesetId":{"type":"integer","description":"waf rule set id\n"},"siteId":{"type":"string","description":"The website ID, which can be obtained by calling the [ListSites](https://www.alibabacloud.com/help/en/doc-detail/2850189.html) operation.\n","willReplaceOnChanges":true},"siteVersion":{"type":"integer","description":"The site version.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update or deletion. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"status":{"type":"string","description":"Rule Set Status\n"}},"type":"object"}},"alicloud:esa/waitingRoom:WaitingRoom":{"description":"Provides a ESA Waiting Room resource.\n\n\n\nFor information about ESA Waiting Room and how to use it, see [What is Waiting Room](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateWaitingRoom).\n\n\u003e **NOTE:** Available since v1.244.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst resourceSiteExample = new alicloud.esa.Site(\"resource_Site_example\", {\n    siteName: \"terraform.site\",\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultWaitingRoom = new alicloud.esa.WaitingRoom(\"default\", {\n    queuingMethod: \"fifo\",\n    sessionDuration: \"5\",\n    totalActiveUsers: \"300\",\n    hostNameAndPaths: [\n        {\n            domain: \"sub_domain.com\",\n            path: \"/example\",\n            subdomain: \"example_sub_domain.com.\",\n        },\n        {\n            domain: \"sub_domain.com\",\n            path: \"/example\",\n            subdomain: \"example_sub_domain1.com.\",\n        },\n        {\n            path: \"/example\",\n            subdomain: \"example_sub_domain2.com.\",\n            domain: \"sub_domain.com\",\n        },\n    ],\n    waitingRoomType: \"default\",\n    newUsersPerMinute: \"200\",\n    customPageHtml: \"\",\n    language: \"zhcn\",\n    queuingStatusCode: \"200\",\n    waitingRoomName: \"waitingroom_example\",\n    status: \"off\",\n    siteId: resourceSiteExample.id,\n    queueAllEnable: \"off\",\n    disableSessionRenewalEnable: \"off\",\n    description: \"example\",\n    jsonResponseEnable: \"off\",\n    cookieName: \"__aliwaitingroom_example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\nresource_site_example = alicloud.esa.Site(\"resource_Site_example\",\n    site_name=\"terraform.site\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_waiting_room = alicloud.esa.WaitingRoom(\"default\",\n    queuing_method=\"fifo\",\n    session_duration=\"5\",\n    total_active_users=\"300\",\n    host_name_and_paths=[\n        {\n            \"domain\": \"sub_domain.com\",\n            \"path\": \"/example\",\n            \"subdomain\": \"example_sub_domain.com.\",\n        },\n        {\n            \"domain\": \"sub_domain.com\",\n            \"path\": \"/example\",\n            \"subdomain\": \"example_sub_domain1.com.\",\n        },\n        {\n            \"path\": \"/example\",\n            \"subdomain\": \"example_sub_domain2.com.\",\n            \"domain\": \"sub_domain.com\",\n        },\n    ],\n    waiting_room_type=\"default\",\n    new_users_per_minute=\"200\",\n    custom_page_html=\"\",\n    language=\"zhcn\",\n    queuing_status_code=\"200\",\n    waiting_room_name=\"waitingroom_example\",\n    status=\"off\",\n    site_id=resource_site_example.id,\n    queue_all_enable=\"off\",\n    disable_session_renewal_enable=\"off\",\n    description=\"example\",\n    json_response_enable=\"off\",\n    cookie_name=\"__aliwaitingroom_example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var resourceSiteExample = new AliCloud.Esa.Site(\"resource_Site_example\", new()\n    {\n        SiteName = \"terraform.site\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultWaitingRoom = new AliCloud.Esa.WaitingRoom(\"default\", new()\n    {\n        QueuingMethod = \"fifo\",\n        SessionDuration = \"5\",\n        TotalActiveUsers = \"300\",\n        HostNameAndPaths = new[]\n        {\n            new AliCloud.Esa.Inputs.WaitingRoomHostNameAndPathArgs\n            {\n                Domain = \"sub_domain.com\",\n                Path = \"/example\",\n                Subdomain = \"example_sub_domain.com.\",\n            },\n            new AliCloud.Esa.Inputs.WaitingRoomHostNameAndPathArgs\n            {\n                Domain = \"sub_domain.com\",\n                Path = \"/example\",\n                Subdomain = \"example_sub_domain1.com.\",\n            },\n            new AliCloud.Esa.Inputs.WaitingRoomHostNameAndPathArgs\n            {\n                Path = \"/example\",\n                Subdomain = \"example_sub_domain2.com.\",\n                Domain = \"sub_domain.com\",\n            },\n        },\n        WaitingRoomType = \"default\",\n        NewUsersPerMinute = \"200\",\n        CustomPageHtml = \"\",\n        Language = \"zhcn\",\n        QueuingStatusCode = \"200\",\n        WaitingRoomName = \"waitingroom_example\",\n        Status = \"off\",\n        SiteId = resourceSiteExample.Id,\n        QueueAllEnable = \"off\",\n        DisableSessionRenewalEnable = \"off\",\n        Description = \"example\",\n        JsonResponseEnable = \"off\",\n        CookieName = \"__aliwaitingroom_example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresourceSiteExample, err := esa.NewSite(ctx, \"resource_Site_example\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"terraform.site\"),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewWaitingRoom(ctx, \"default\", \u0026esa.WaitingRoomArgs{\n\t\t\tQueuingMethod:    pulumi.String(\"fifo\"),\n\t\t\tSessionDuration:  pulumi.String(\"5\"),\n\t\t\tTotalActiveUsers: pulumi.String(\"300\"),\n\t\t\tHostNameAndPaths: esa.WaitingRoomHostNameAndPathArray{\n\t\t\t\t\u0026esa.WaitingRoomHostNameAndPathArgs{\n\t\t\t\t\tDomain:    pulumi.String(\"sub_domain.com\"),\n\t\t\t\t\tPath:      pulumi.String(\"/example\"),\n\t\t\t\t\tSubdomain: pulumi.String(\"example_sub_domain.com.\"),\n\t\t\t\t},\n\t\t\t\t\u0026esa.WaitingRoomHostNameAndPathArgs{\n\t\t\t\t\tDomain:    pulumi.String(\"sub_domain.com\"),\n\t\t\t\t\tPath:      pulumi.String(\"/example\"),\n\t\t\t\t\tSubdomain: pulumi.String(\"example_sub_domain1.com.\"),\n\t\t\t\t},\n\t\t\t\t\u0026esa.WaitingRoomHostNameAndPathArgs{\n\t\t\t\t\tPath:      pulumi.String(\"/example\"),\n\t\t\t\t\tSubdomain: pulumi.String(\"example_sub_domain2.com.\"),\n\t\t\t\t\tDomain:    pulumi.String(\"sub_domain.com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tWaitingRoomType:             pulumi.String(\"default\"),\n\t\t\tNewUsersPerMinute:           pulumi.String(\"200\"),\n\t\t\tCustomPageHtml:              pulumi.String(\"\"),\n\t\t\tLanguage:                    pulumi.String(\"zhcn\"),\n\t\t\tQueuingStatusCode:           pulumi.String(\"200\"),\n\t\t\tWaitingRoomName:             pulumi.String(\"waitingroom_example\"),\n\t\t\tStatus:                      pulumi.String(\"off\"),\n\t\t\tSiteId:                      resourceSiteExample.ID(),\n\t\t\tQueueAllEnable:              pulumi.String(\"off\"),\n\t\t\tDisableSessionRenewalEnable: pulumi.String(\"off\"),\n\t\t\tDescription:                 pulumi.String(\"example\"),\n\t\t\tJsonResponseEnable:          pulumi.String(\"off\"),\n\t\t\tCookieName:                  pulumi.String(\"__aliwaitingroom_example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.WaitingRoom;\nimport com.pulumi.alicloud.esa.WaitingRoomArgs;\nimport com.pulumi.alicloud.esa.inputs.WaitingRoomHostNameAndPathArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var resourceSiteExample = new Site(\"resourceSiteExample\", SiteArgs.builder()\n            .siteName(\"terraform.site\")\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultWaitingRoom = new WaitingRoom(\"defaultWaitingRoom\", WaitingRoomArgs.builder()\n            .queuingMethod(\"fifo\")\n            .sessionDuration(\"5\")\n            .totalActiveUsers(\"300\")\n            .hostNameAndPaths(            \n                WaitingRoomHostNameAndPathArgs.builder()\n                    .domain(\"sub_domain.com\")\n                    .path(\"/example\")\n                    .subdomain(\"example_sub_domain.com.\")\n                    .build(),\n                WaitingRoomHostNameAndPathArgs.builder()\n                    .domain(\"sub_domain.com\")\n                    .path(\"/example\")\n                    .subdomain(\"example_sub_domain1.com.\")\n                    .build(),\n                WaitingRoomHostNameAndPathArgs.builder()\n                    .path(\"/example\")\n                    .subdomain(\"example_sub_domain2.com.\")\n                    .domain(\"sub_domain.com\")\n                    .build())\n            .waitingRoomType(\"default\")\n            .newUsersPerMinute(\"200\")\n            .customPageHtml(\"\")\n            .language(\"zhcn\")\n            .queuingStatusCode(\"200\")\n            .waitingRoomName(\"waitingroom_example\")\n            .status(\"off\")\n            .siteId(resourceSiteExample.id())\n            .queueAllEnable(\"off\")\n            .disableSessionRenewalEnable(\"off\")\n            .description(\"example\")\n            .jsonResponseEnable(\"off\")\n            .cookieName(\"__aliwaitingroom_example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  resourceSiteExample:\n    type: alicloud:esa:Site\n    name: resource_Site_example\n    properties:\n      siteName: terraform.site\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  defaultWaitingRoom:\n    type: alicloud:esa:WaitingRoom\n    name: default\n    properties:\n      queuingMethod: fifo\n      sessionDuration: '5'\n      totalActiveUsers: '300'\n      hostNameAndPaths:\n        - domain: sub_domain.com\n          path: /example\n          subdomain: example_sub_domain.com.\n        - domain: sub_domain.com\n          path: /example\n          subdomain: example_sub_domain1.com.\n        - path: /example\n          subdomain: example_sub_domain2.com.\n          domain: sub_domain.com\n      waitingRoomType: default\n      newUsersPerMinute: '200'\n      customPageHtml: \"\"\n      language: zhcn\n      queuingStatusCode: '200'\n      waitingRoomName: waitingroom_example\n      status: off\n      siteId: ${resourceSiteExample.id}\n      queueAllEnable: off\n      disableSessionRenewalEnable: off\n      description: example\n      jsonResponseEnable: off\n      cookieName: __aliwaitingroom_example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Waiting Room can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/waitingRoom:WaitingRoom example \u003csite_id\u003e:\u003cwaiting_room_id\u003e\n```\n\n","properties":{"cookieName":{"type":"string","description":"Custom Cookie name.\n"},"customPageHtml":{"type":"string","description":"User-defined waiting room page content, when the waiting room type is custom type, you need to enter. The incoming content needs to be base64 encoded.\n"},"description":{"type":"string","description":"Waiting room description.\n"},"disableSessionRenewalEnable":{"type":"string","description":"Disable session renewal. Value:\n"},"hostNameAndPaths":{"type":"array","items":{"$ref":"#/types/alicloud:esa/WaitingRoomHostNameAndPath:WaitingRoomHostNameAndPath"},"description":"Host name and path. See \u003cspan pulumi-lang-nodejs=\"`hostNameAndPath`\" pulumi-lang-dotnet=\"`HostNameAndPath`\" pulumi-lang-go=\"`hostNameAndPath`\" pulumi-lang-python=\"`host_name_and_path`\" pulumi-lang-yaml=\"`hostNameAndPath`\" pulumi-lang-java=\"`hostNameAndPath`\"\u003e`host_name_and_path`\u003c/span\u003e below.\n"},"jsonResponseEnable":{"type":"string","description":"The JSON response. If the accept request header contains \"application/json\", JSON data is returned. Value:\n"},"language":{"type":"string","description":"The language of the waiting room page. When the waiting room type is the default type, it needs to be passed in. The following types are supported:\n"},"newUsersPerMinute":{"type":"string","description":"Number of new users per minute.\n"},"queueAllEnable":{"type":"string","description":"All in line. Value:\n"},"queuingMethod":{"type":"string","description":"Way of queuing. Value:\n"},"queuingStatusCode":{"type":"string","description":"Waiting room status code. Value:\n"},"sessionDuration":{"type":"string","description":"Session duration in minutes.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the [ListSites](https://help.aliyun.com/document_detail/2850189.html) interface.\n"},"status":{"type":"string","description":"Waiting room enabled status. Value:\n- 'on': Enable waiting room\n- 'off': Disabled waiting room\n"},"totalActiveUsers":{"type":"string","description":"Total number of active users.\n"},"waitingRoomId":{"type":"string","description":"The waiting room ID, which can be obtained by calling the [ListWaitingRooms](https://help.aliyun.com/document_detail/2850279.html) API.\n"},"waitingRoomName":{"type":"string","description":"The name of the waiting room.\n"},"waitingRoomType":{"type":"string","description":"Waiting room type, support:\n"}},"required":["cookieName","hostNameAndPaths","newUsersPerMinute","queuingMethod","queuingStatusCode","sessionDuration","siteId","status","totalActiveUsers","waitingRoomId","waitingRoomName","waitingRoomType"],"inputProperties":{"cookieName":{"type":"string","description":"Custom Cookie name.\n"},"customPageHtml":{"type":"string","description":"User-defined waiting room page content, when the waiting room type is custom type, you need to enter. The incoming content needs to be base64 encoded.\n"},"description":{"type":"string","description":"Waiting room description.\n"},"disableSessionRenewalEnable":{"type":"string","description":"Disable session renewal. Value:\n"},"hostNameAndPaths":{"type":"array","items":{"$ref":"#/types/alicloud:esa/WaitingRoomHostNameAndPath:WaitingRoomHostNameAndPath"},"description":"Host name and path. See \u003cspan pulumi-lang-nodejs=\"`hostNameAndPath`\" pulumi-lang-dotnet=\"`HostNameAndPath`\" pulumi-lang-go=\"`hostNameAndPath`\" pulumi-lang-python=\"`host_name_and_path`\" pulumi-lang-yaml=\"`hostNameAndPath`\" pulumi-lang-java=\"`hostNameAndPath`\"\u003e`host_name_and_path`\u003c/span\u003e below.\n"},"jsonResponseEnable":{"type":"string","description":"The JSON response. If the accept request header contains \"application/json\", JSON data is returned. Value:\n"},"language":{"type":"string","description":"The language of the waiting room page. When the waiting room type is the default type, it needs to be passed in. The following types are supported:\n"},"newUsersPerMinute":{"type":"string","description":"Number of new users per minute.\n"},"queueAllEnable":{"type":"string","description":"All in line. Value:\n"},"queuingMethod":{"type":"string","description":"Way of queuing. Value:\n"},"queuingStatusCode":{"type":"string","description":"Waiting room status code. Value:\n"},"sessionDuration":{"type":"string","description":"Session duration in minutes.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the [ListSites](https://help.aliyun.com/document_detail/2850189.html) interface.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Waiting room enabled status. Value:\n- 'on': Enable waiting room\n- 'off': Disabled waiting room\n"},"totalActiveUsers":{"type":"string","description":"Total number of active users.\n"},"waitingRoomName":{"type":"string","description":"The name of the waiting room.\n"},"waitingRoomType":{"type":"string","description":"Waiting room type, support:\n"}},"requiredInputs":["cookieName","hostNameAndPaths","newUsersPerMinute","queuingMethod","queuingStatusCode","sessionDuration","siteId","status","totalActiveUsers","waitingRoomName","waitingRoomType"],"stateInputs":{"description":"Input properties used for looking up and filtering WaitingRoom resources.\n","properties":{"cookieName":{"type":"string","description":"Custom Cookie name.\n"},"customPageHtml":{"type":"string","description":"User-defined waiting room page content, when the waiting room type is custom type, you need to enter. The incoming content needs to be base64 encoded.\n"},"description":{"type":"string","description":"Waiting room description.\n"},"disableSessionRenewalEnable":{"type":"string","description":"Disable session renewal. Value:\n"},"hostNameAndPaths":{"type":"array","items":{"$ref":"#/types/alicloud:esa/WaitingRoomHostNameAndPath:WaitingRoomHostNameAndPath"},"description":"Host name and path. See \u003cspan pulumi-lang-nodejs=\"`hostNameAndPath`\" pulumi-lang-dotnet=\"`HostNameAndPath`\" pulumi-lang-go=\"`hostNameAndPath`\" pulumi-lang-python=\"`host_name_and_path`\" pulumi-lang-yaml=\"`hostNameAndPath`\" pulumi-lang-java=\"`hostNameAndPath`\"\u003e`host_name_and_path`\u003c/span\u003e below.\n"},"jsonResponseEnable":{"type":"string","description":"The JSON response. If the accept request header contains \"application/json\", JSON data is returned. Value:\n"},"language":{"type":"string","description":"The language of the waiting room page. When the waiting room type is the default type, it needs to be passed in. The following types are supported:\n"},"newUsersPerMinute":{"type":"string","description":"Number of new users per minute.\n"},"queueAllEnable":{"type":"string","description":"All in line. Value:\n"},"queuingMethod":{"type":"string","description":"Way of queuing. Value:\n"},"queuingStatusCode":{"type":"string","description":"Waiting room status code. Value:\n"},"sessionDuration":{"type":"string","description":"Session duration in minutes.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the [ListSites](https://help.aliyun.com/document_detail/2850189.html) interface.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Waiting room enabled status. Value:\n- 'on': Enable waiting room\n- 'off': Disabled waiting room\n"},"totalActiveUsers":{"type":"string","description":"Total number of active users.\n"},"waitingRoomId":{"type":"string","description":"The waiting room ID, which can be obtained by calling the [ListWaitingRooms](https://help.aliyun.com/document_detail/2850279.html) API.\n"},"waitingRoomName":{"type":"string","description":"The name of the waiting room.\n"},"waitingRoomType":{"type":"string","description":"Waiting room type, support:\n"}},"type":"object"}},"alicloud:esa/waitingRoomEvent:WaitingRoomEvent":{"description":"Provides a ESA Waiting Room Event resource.\n\n\n\nFor information about ESA Waiting Room Event and how to use it, see [What is Waiting Room Event](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateWaitingRoomEvent).\n\n\u003e **NOTE:** Available since v1.244.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: \"chenxin0116.site\",\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultWaitingRoom = new alicloud.esa.WaitingRoom(\"default\", {\n    status: \"off\",\n    siteId: defaultSite.id,\n    jsonResponseEnable: \"off\",\n    description: \"example\",\n    waitingRoomType: \"default\",\n    disableSessionRenewalEnable: \"off\",\n    cookieName: \"__aliwaitingroom_example\",\n    waitingRoomName: \"waitingroom_example\",\n    queueAllEnable: \"off\",\n    queuingStatusCode: \"200\",\n    customPageHtml: \"\",\n    newUsersPerMinute: \"200\",\n    sessionDuration: \"5\",\n    language: \"zhcn\",\n    totalActiveUsers: \"300\",\n    queuingMethod: \"fifo\",\n    hostNameAndPaths: [{\n        domain: \"sub_domain.com\",\n        path: \"/example\",\n        subdomain: \"example_sub_domain.com.\",\n    }],\n});\nconst defaultWaitingRoomEvent = new alicloud.esa.WaitingRoomEvent(\"default\", {\n    waitingRoomId: defaultWaitingRoom.waitingRoomId,\n    endTime: \"1719863200\",\n    waitingRoomEventName: \"WaitingRoomEvent_example\",\n    preQueueStartTime: \"\",\n    randomPreQueueEnable: \"off\",\n    jsonResponseEnable: \"off\",\n    siteId: defaultSite.id,\n    preQueueEnable: \"off\",\n    description: \"example\",\n    newUsersPerMinute: \"200\",\n    queuingStatusCode: \"200\",\n    customPageHtml: \"\",\n    language: \"zhcn\",\n    totalActiveUsers: \"300\",\n    waitingRoomType: \"default\",\n    startTime: \"1719763200\",\n    status: \"off\",\n    disableSessionRenewalEnable: \"off\",\n    queuingMethod: \"fifo\",\n    sessionDuration: \"5\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=\"chenxin0116.site\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_waiting_room = alicloud.esa.WaitingRoom(\"default\",\n    status=\"off\",\n    site_id=default_site.id,\n    json_response_enable=\"off\",\n    description=\"example\",\n    waiting_room_type=\"default\",\n    disable_session_renewal_enable=\"off\",\n    cookie_name=\"__aliwaitingroom_example\",\n    waiting_room_name=\"waitingroom_example\",\n    queue_all_enable=\"off\",\n    queuing_status_code=\"200\",\n    custom_page_html=\"\",\n    new_users_per_minute=\"200\",\n    session_duration=\"5\",\n    language=\"zhcn\",\n    total_active_users=\"300\",\n    queuing_method=\"fifo\",\n    host_name_and_paths=[{\n        \"domain\": \"sub_domain.com\",\n        \"path\": \"/example\",\n        \"subdomain\": \"example_sub_domain.com.\",\n    }])\ndefault_waiting_room_event = alicloud.esa.WaitingRoomEvent(\"default\",\n    waiting_room_id=default_waiting_room.waiting_room_id,\n    end_time=\"1719863200\",\n    waiting_room_event_name=\"WaitingRoomEvent_example\",\n    pre_queue_start_time=\"\",\n    random_pre_queue_enable=\"off\",\n    json_response_enable=\"off\",\n    site_id=default_site.id,\n    pre_queue_enable=\"off\",\n    description=\"example\",\n    new_users_per_minute=\"200\",\n    queuing_status_code=\"200\",\n    custom_page_html=\"\",\n    language=\"zhcn\",\n    total_active_users=\"300\",\n    waiting_room_type=\"default\",\n    start_time=\"1719763200\",\n    status=\"off\",\n    disable_session_renewal_enable=\"off\",\n    queuing_method=\"fifo\",\n    session_duration=\"5\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = \"chenxin0116.site\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultWaitingRoom = new AliCloud.Esa.WaitingRoom(\"default\", new()\n    {\n        Status = \"off\",\n        SiteId = defaultSite.Id,\n        JsonResponseEnable = \"off\",\n        Description = \"example\",\n        WaitingRoomType = \"default\",\n        DisableSessionRenewalEnable = \"off\",\n        CookieName = \"__aliwaitingroom_example\",\n        WaitingRoomName = \"waitingroom_example\",\n        QueueAllEnable = \"off\",\n        QueuingStatusCode = \"200\",\n        CustomPageHtml = \"\",\n        NewUsersPerMinute = \"200\",\n        SessionDuration = \"5\",\n        Language = \"zhcn\",\n        TotalActiveUsers = \"300\",\n        QueuingMethod = \"fifo\",\n        HostNameAndPaths = new[]\n        {\n            new AliCloud.Esa.Inputs.WaitingRoomHostNameAndPathArgs\n            {\n                Domain = \"sub_domain.com\",\n                Path = \"/example\",\n                Subdomain = \"example_sub_domain.com.\",\n            },\n        },\n    });\n\n    var defaultWaitingRoomEvent = new AliCloud.Esa.WaitingRoomEvent(\"default\", new()\n    {\n        WaitingRoomId = defaultWaitingRoom.WaitingRoomId,\n        EndTime = \"1719863200\",\n        WaitingRoomEventName = \"WaitingRoomEvent_example\",\n        PreQueueStartTime = \"\",\n        RandomPreQueueEnable = \"off\",\n        JsonResponseEnable = \"off\",\n        SiteId = defaultSite.Id,\n        PreQueueEnable = \"off\",\n        Description = \"example\",\n        NewUsersPerMinute = \"200\",\n        QueuingStatusCode = \"200\",\n        CustomPageHtml = \"\",\n        Language = \"zhcn\",\n        TotalActiveUsers = \"300\",\n        WaitingRoomType = \"default\",\n        StartTime = \"1719763200\",\n        Status = \"off\",\n        DisableSessionRenewalEnable = \"off\",\n        QueuingMethod = \"fifo\",\n        SessionDuration = \"5\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"chenxin0116.site\"),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultWaitingRoom, err := esa.NewWaitingRoom(ctx, \"default\", \u0026esa.WaitingRoomArgs{\n\t\t\tStatus:                      pulumi.String(\"off\"),\n\t\t\tSiteId:                      defaultSite.ID(),\n\t\t\tJsonResponseEnable:          pulumi.String(\"off\"),\n\t\t\tDescription:                 pulumi.String(\"example\"),\n\t\t\tWaitingRoomType:             pulumi.String(\"default\"),\n\t\t\tDisableSessionRenewalEnable: pulumi.String(\"off\"),\n\t\t\tCookieName:                  pulumi.String(\"__aliwaitingroom_example\"),\n\t\t\tWaitingRoomName:             pulumi.String(\"waitingroom_example\"),\n\t\t\tQueueAllEnable:              pulumi.String(\"off\"),\n\t\t\tQueuingStatusCode:           pulumi.String(\"200\"),\n\t\t\tCustomPageHtml:              pulumi.String(\"\"),\n\t\t\tNewUsersPerMinute:           pulumi.String(\"200\"),\n\t\t\tSessionDuration:             pulumi.String(\"5\"),\n\t\t\tLanguage:                    pulumi.String(\"zhcn\"),\n\t\t\tTotalActiveUsers:            pulumi.String(\"300\"),\n\t\t\tQueuingMethod:               pulumi.String(\"fifo\"),\n\t\t\tHostNameAndPaths: esa.WaitingRoomHostNameAndPathArray{\n\t\t\t\t\u0026esa.WaitingRoomHostNameAndPathArgs{\n\t\t\t\t\tDomain:    pulumi.String(\"sub_domain.com\"),\n\t\t\t\t\tPath:      pulumi.String(\"/example\"),\n\t\t\t\t\tSubdomain: pulumi.String(\"example_sub_domain.com.\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewWaitingRoomEvent(ctx, \"default\", \u0026esa.WaitingRoomEventArgs{\n\t\t\tWaitingRoomId:               defaultWaitingRoom.WaitingRoomId,\n\t\t\tEndTime:                     pulumi.String(\"1719863200\"),\n\t\t\tWaitingRoomEventName:        pulumi.String(\"WaitingRoomEvent_example\"),\n\t\t\tPreQueueStartTime:           pulumi.String(\"\"),\n\t\t\tRandomPreQueueEnable:        pulumi.String(\"off\"),\n\t\t\tJsonResponseEnable:          pulumi.String(\"off\"),\n\t\t\tSiteId:                      defaultSite.ID(),\n\t\t\tPreQueueEnable:              pulumi.String(\"off\"),\n\t\t\tDescription:                 pulumi.String(\"example\"),\n\t\t\tNewUsersPerMinute:           pulumi.String(\"200\"),\n\t\t\tQueuingStatusCode:           pulumi.String(\"200\"),\n\t\t\tCustomPageHtml:              pulumi.String(\"\"),\n\t\t\tLanguage:                    pulumi.String(\"zhcn\"),\n\t\t\tTotalActiveUsers:            pulumi.String(\"300\"),\n\t\t\tWaitingRoomType:             pulumi.String(\"default\"),\n\t\t\tStartTime:                   pulumi.String(\"1719763200\"),\n\t\t\tStatus:                      pulumi.String(\"off\"),\n\t\t\tDisableSessionRenewalEnable: pulumi.String(\"off\"),\n\t\t\tQueuingMethod:               pulumi.String(\"fifo\"),\n\t\t\tSessionDuration:             pulumi.String(\"5\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.WaitingRoom;\nimport com.pulumi.alicloud.esa.WaitingRoomArgs;\nimport com.pulumi.alicloud.esa.inputs.WaitingRoomHostNameAndPathArgs;\nimport com.pulumi.alicloud.esa.WaitingRoomEvent;\nimport com.pulumi.alicloud.esa.WaitingRoomEventArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(\"chenxin0116.site\")\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultWaitingRoom = new WaitingRoom(\"defaultWaitingRoom\", WaitingRoomArgs.builder()\n            .status(\"off\")\n            .siteId(defaultSite.id())\n            .jsonResponseEnable(\"off\")\n            .description(\"example\")\n            .waitingRoomType(\"default\")\n            .disableSessionRenewalEnable(\"off\")\n            .cookieName(\"__aliwaitingroom_example\")\n            .waitingRoomName(\"waitingroom_example\")\n            .queueAllEnable(\"off\")\n            .queuingStatusCode(\"200\")\n            .customPageHtml(\"\")\n            .newUsersPerMinute(\"200\")\n            .sessionDuration(\"5\")\n            .language(\"zhcn\")\n            .totalActiveUsers(\"300\")\n            .queuingMethod(\"fifo\")\n            .hostNameAndPaths(WaitingRoomHostNameAndPathArgs.builder()\n                .domain(\"sub_domain.com\")\n                .path(\"/example\")\n                .subdomain(\"example_sub_domain.com.\")\n                .build())\n            .build());\n\n        var defaultWaitingRoomEvent = new WaitingRoomEvent(\"defaultWaitingRoomEvent\", WaitingRoomEventArgs.builder()\n            .waitingRoomId(defaultWaitingRoom.waitingRoomId())\n            .endTime(\"1719863200\")\n            .waitingRoomEventName(\"WaitingRoomEvent_example\")\n            .preQueueStartTime(\"\")\n            .randomPreQueueEnable(\"off\")\n            .jsonResponseEnable(\"off\")\n            .siteId(defaultSite.id())\n            .preQueueEnable(\"off\")\n            .description(\"example\")\n            .newUsersPerMinute(\"200\")\n            .queuingStatusCode(\"200\")\n            .customPageHtml(\"\")\n            .language(\"zhcn\")\n            .totalActiveUsers(\"300\")\n            .waitingRoomType(\"default\")\n            .startTime(\"1719763200\")\n            .status(\"off\")\n            .disableSessionRenewalEnable(\"off\")\n            .queuingMethod(\"fifo\")\n            .sessionDuration(\"5\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: chenxin0116.site\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  defaultWaitingRoom:\n    type: alicloud:esa:WaitingRoom\n    name: default\n    properties:\n      status: off\n      siteId: ${defaultSite.id}\n      jsonResponseEnable: off\n      description: example\n      waitingRoomType: default\n      disableSessionRenewalEnable: off\n      cookieName: __aliwaitingroom_example\n      waitingRoomName: waitingroom_example\n      queueAllEnable: off\n      queuingStatusCode: '200'\n      customPageHtml: \"\"\n      newUsersPerMinute: '200'\n      sessionDuration: '5'\n      language: zhcn\n      totalActiveUsers: '300'\n      queuingMethod: fifo\n      hostNameAndPaths:\n        - domain: sub_domain.com\n          path: /example\n          subdomain: example_sub_domain.com.\n  defaultWaitingRoomEvent:\n    type: alicloud:esa:WaitingRoomEvent\n    name: default\n    properties:\n      waitingRoomId: ${defaultWaitingRoom.waitingRoomId}\n      endTime: '1719863200'\n      waitingRoomEventName: WaitingRoomEvent_example\n      preQueueStartTime: \"\"\n      randomPreQueueEnable: off\n      jsonResponseEnable: off\n      siteId: ${defaultSite.id}\n      preQueueEnable: off\n      description: example\n      newUsersPerMinute: '200'\n      queuingStatusCode: '200'\n      customPageHtml: \"\"\n      language: zhcn\n      totalActiveUsers: '300'\n      waitingRoomType: default\n      startTime: '1719763200'\n      status: off\n      disableSessionRenewalEnable: off\n      queuingMethod: fifo\n      sessionDuration: '5'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Waiting Room Event can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/waitingRoomEvent:WaitingRoomEvent example \u003csite_id\u003e:\u003cwaiting_room_id\u003e:\u003cwaiting_room_event_id\u003e\n```\n\n","properties":{"customPageHtml":{"type":"string","description":"User-defined waiting room page content, when the waiting room type is custom type, you need to enter. The incoming content needs to be base64 encoded.\n"},"description":{"type":"string","description":"Waiting room description.\n"},"disableSessionRenewalEnable":{"type":"string","description":"Disable session renewal. Value:\n"},"endTime":{"type":"string","description":"The timestamp of the end time of the event.\n"},"jsonResponseEnable":{"type":"string","description":"JSON response switch. Value:\n"},"language":{"type":"string","description":"Default language setting. Values include:\n"},"newUsersPerMinute":{"type":"string","description":"Number of new users per minute.\n"},"preQueueEnable":{"type":"string","description":"Pre-queue switch.\n"},"preQueueStartTime":{"type":"string","description":"Pre-queue start time.\n"},"queuingMethod":{"type":"string","description":"Way of queuing. Value:\n"},"queuingStatusCode":{"type":"string","description":"Waiting room status code. Value:\n"},"randomPreQueueEnable":{"type":"string","description":"Random queue switch.\n"},"sessionDuration":{"type":"string","description":"User session duration in minutes.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n"},"startTime":{"type":"string","description":"The timestamp of the event start time.\n"},"status":{"type":"string","description":"Enabled status. Value:\n"},"totalActiveUsers":{"type":"string","description":"Total number of active users.\n"},"waitingRoomEventId":{"type":"integer","description":"The waiting room event ID, which can be obtained by calling the [ListWaitingRoomEvents](https://help.aliyun.com/document_detail/2850279.html) operation.\n"},"waitingRoomEventName":{"type":"string","description":"Event name, custom event description.\n"},"waitingRoomId":{"type":"string","description":"Waiting room ID, used to identify a specific waiting room. It can be obtained by calling the [listwaitingroom](https://help.aliyun.com/document_detail/2850279.html) interface.\n"},"waitingRoomType":{"type":"string","description":"Waiting room type. The following types are supported:\n"}},"required":["endTime","newUsersPerMinute","queuingMethod","queuingStatusCode","sessionDuration","siteId","startTime","status","totalActiveUsers","waitingRoomEventId","waitingRoomEventName","waitingRoomId","waitingRoomType"],"inputProperties":{"customPageHtml":{"type":"string","description":"User-defined waiting room page content, when the waiting room type is custom type, you need to enter. The incoming content needs to be base64 encoded.\n"},"description":{"type":"string","description":"Waiting room description.\n"},"disableSessionRenewalEnable":{"type":"string","description":"Disable session renewal. Value:\n"},"endTime":{"type":"string","description":"The timestamp of the end time of the event.\n"},"jsonResponseEnable":{"type":"string","description":"JSON response switch. Value:\n"},"language":{"type":"string","description":"Default language setting. Values include:\n"},"newUsersPerMinute":{"type":"string","description":"Number of new users per minute.\n"},"preQueueEnable":{"type":"string","description":"Pre-queue switch.\n"},"preQueueStartTime":{"type":"string","description":"Pre-queue start time.\n"},"queuingMethod":{"type":"string","description":"Way of queuing. Value:\n"},"queuingStatusCode":{"type":"string","description":"Waiting room status code. Value:\n"},"randomPreQueueEnable":{"type":"string","description":"Random queue switch.\n"},"sessionDuration":{"type":"string","description":"User session duration in minutes.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n","willReplaceOnChanges":true},"startTime":{"type":"string","description":"The timestamp of the event start time.\n"},"status":{"type":"string","description":"Enabled status. Value:\n"},"totalActiveUsers":{"type":"string","description":"Total number of active users.\n"},"waitingRoomEventName":{"type":"string","description":"Event name, custom event description.\n"},"waitingRoomId":{"type":"string","description":"Waiting room ID, used to identify a specific waiting room. It can be obtained by calling the [listwaitingroom](https://help.aliyun.com/document_detail/2850279.html) interface.\n","willReplaceOnChanges":true},"waitingRoomType":{"type":"string","description":"Waiting room type. The following types are supported:\n"}},"requiredInputs":["endTime","newUsersPerMinute","queuingMethod","queuingStatusCode","sessionDuration","siteId","startTime","status","totalActiveUsers","waitingRoomEventName","waitingRoomType"],"stateInputs":{"description":"Input properties used for looking up and filtering WaitingRoomEvent resources.\n","properties":{"customPageHtml":{"type":"string","description":"User-defined waiting room page content, when the waiting room type is custom type, you need to enter. The incoming content needs to be base64 encoded.\n"},"description":{"type":"string","description":"Waiting room description.\n"},"disableSessionRenewalEnable":{"type":"string","description":"Disable session renewal. Value:\n"},"endTime":{"type":"string","description":"The timestamp of the end time of the event.\n"},"jsonResponseEnable":{"type":"string","description":"JSON response switch. Value:\n"},"language":{"type":"string","description":"Default language setting. Values include:\n"},"newUsersPerMinute":{"type":"string","description":"Number of new users per minute.\n"},"preQueueEnable":{"type":"string","description":"Pre-queue switch.\n"},"preQueueStartTime":{"type":"string","description":"Pre-queue start time.\n"},"queuingMethod":{"type":"string","description":"Way of queuing. Value:\n"},"queuingStatusCode":{"type":"string","description":"Waiting room status code. Value:\n"},"randomPreQueueEnable":{"type":"string","description":"Random queue switch.\n"},"sessionDuration":{"type":"string","description":"User session duration in minutes.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n","willReplaceOnChanges":true},"startTime":{"type":"string","description":"The timestamp of the event start time.\n"},"status":{"type":"string","description":"Enabled status. Value:\n"},"totalActiveUsers":{"type":"string","description":"Total number of active users.\n"},"waitingRoomEventId":{"type":"integer","description":"The waiting room event ID, which can be obtained by calling the [ListWaitingRoomEvents](https://help.aliyun.com/document_detail/2850279.html) operation.\n"},"waitingRoomEventName":{"type":"string","description":"Event name, custom event description.\n"},"waitingRoomId":{"type":"string","description":"Waiting room ID, used to identify a specific waiting room. It can be obtained by calling the [listwaitingroom](https://help.aliyun.com/document_detail/2850279.html) interface.\n","willReplaceOnChanges":true},"waitingRoomType":{"type":"string","description":"Waiting room type. The following types are supported:\n"}},"type":"object"}},"alicloud:esa/waitingRoomRule:WaitingRoomRule":{"description":"Provides a ESA Waiting Room Rule resource.\n\n\n\nFor information about ESA Waiting Room Rule and how to use it, see [What is Waiting Room Rule](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateWaitingRoomRule).\n\n\u003e **NOTE:** Available since v1.244.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.esa.getSites({\n    planSubscribeType: \"enterpriseplan\",\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: \"terraform.site\",\n    instanceId: _default.then(_default =\u003e _default.sites?.[0]?.instanceId),\n    coverage: \"overseas\",\n    accessType: \"NS\",\n});\nconst defaultWaitingRoom = new alicloud.esa.WaitingRoom(\"default\", {\n    status: \"off\",\n    siteId: defaultSite.id,\n    jsonResponseEnable: \"off\",\n    description: \"example\",\n    waitingRoomType: \"default\",\n    disableSessionRenewalEnable: \"off\",\n    cookieName: \"__aliwaitingroom_example\",\n    waitingRoomName: \"waitingroom_example\",\n    queueAllEnable: \"off\",\n    queuingStatusCode: \"200\",\n    customPageHtml: \"\",\n    newUsersPerMinute: \"200\",\n    sessionDuration: \"5\",\n    language: \"zhcn\",\n    totalActiveUsers: \"300\",\n    queuingMethod: \"fifo\",\n    hostNameAndPaths: [{\n        domain: \"sub_domain.com\",\n        path: \"/example\",\n        subdomain: \"example_sub_domain.com.\",\n    }],\n});\nconst defaultWaitingRoomRule = new alicloud.esa.WaitingRoomRule(\"default\", {\n    rule: \"(http.host eq \\\"video.example.com\\\")\",\n    waitingRoomId: defaultWaitingRoom.waitingRoomId,\n    ruleName: \"WaitingRoomRule_example1\",\n    status: \"off\",\n    siteId: defaultSite.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.esa.get_sites(plan_subscribe_type=\"enterpriseplan\")\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=\"terraform.site\",\n    instance_id=default.sites[0].instance_id,\n    coverage=\"overseas\",\n    access_type=\"NS\")\ndefault_waiting_room = alicloud.esa.WaitingRoom(\"default\",\n    status=\"off\",\n    site_id=default_site.id,\n    json_response_enable=\"off\",\n    description=\"example\",\n    waiting_room_type=\"default\",\n    disable_session_renewal_enable=\"off\",\n    cookie_name=\"__aliwaitingroom_example\",\n    waiting_room_name=\"waitingroom_example\",\n    queue_all_enable=\"off\",\n    queuing_status_code=\"200\",\n    custom_page_html=\"\",\n    new_users_per_minute=\"200\",\n    session_duration=\"5\",\n    language=\"zhcn\",\n    total_active_users=\"300\",\n    queuing_method=\"fifo\",\n    host_name_and_paths=[{\n        \"domain\": \"sub_domain.com\",\n        \"path\": \"/example\",\n        \"subdomain\": \"example_sub_domain.com.\",\n    }])\ndefault_waiting_room_rule = alicloud.esa.WaitingRoomRule(\"default\",\n    rule=\"(http.host eq \\\"video.example.com\\\")\",\n    waiting_room_id=default_waiting_room.waiting_room_id,\n    rule_name=\"WaitingRoomRule_example1\",\n    status=\"off\",\n    site_id=default_site.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        PlanSubscribeType = \"enterpriseplan\",\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = \"terraform.site\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.InstanceId)),\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n    });\n\n    var defaultWaitingRoom = new AliCloud.Esa.WaitingRoom(\"default\", new()\n    {\n        Status = \"off\",\n        SiteId = defaultSite.Id,\n        JsonResponseEnable = \"off\",\n        Description = \"example\",\n        WaitingRoomType = \"default\",\n        DisableSessionRenewalEnable = \"off\",\n        CookieName = \"__aliwaitingroom_example\",\n        WaitingRoomName = \"waitingroom_example\",\n        QueueAllEnable = \"off\",\n        QueuingStatusCode = \"200\",\n        CustomPageHtml = \"\",\n        NewUsersPerMinute = \"200\",\n        SessionDuration = \"5\",\n        Language = \"zhcn\",\n        TotalActiveUsers = \"300\",\n        QueuingMethod = \"fifo\",\n        HostNameAndPaths = new[]\n        {\n            new AliCloud.Esa.Inputs.WaitingRoomHostNameAndPathArgs\n            {\n                Domain = \"sub_domain.com\",\n                Path = \"/example\",\n                Subdomain = \"example_sub_domain.com.\",\n            },\n        },\n    });\n\n    var defaultWaitingRoomRule = new AliCloud.Esa.WaitingRoomRule(\"default\", new()\n    {\n        Rule = \"(http.host eq \\\"video.example.com\\\")\",\n        WaitingRoomId = defaultWaitingRoom.WaitingRoomId,\n        RuleName = \"WaitingRoomRule_example1\",\n        Status = \"off\",\n        SiteId = defaultSite.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := esa.GetSites(ctx, \u0026esa.GetSitesArgs{\n\t\t\tPlanSubscribeType: pulumi.StringRef(\"enterpriseplan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\n\t\t\tSiteName:   pulumi.String(\"terraform.site\"),\n\t\t\tInstanceId: pulumi.String(_default.Sites[0].InstanceId),\n\t\t\tCoverage:   pulumi.String(\"overseas\"),\n\t\t\tAccessType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultWaitingRoom, err := esa.NewWaitingRoom(ctx, \"default\", \u0026esa.WaitingRoomArgs{\n\t\t\tStatus:                      pulumi.String(\"off\"),\n\t\t\tSiteId:                      defaultSite.ID(),\n\t\t\tJsonResponseEnable:          pulumi.String(\"off\"),\n\t\t\tDescription:                 pulumi.String(\"example\"),\n\t\t\tWaitingRoomType:             pulumi.String(\"default\"),\n\t\t\tDisableSessionRenewalEnable: pulumi.String(\"off\"),\n\t\t\tCookieName:                  pulumi.String(\"__aliwaitingroom_example\"),\n\t\t\tWaitingRoomName:             pulumi.String(\"waitingroom_example\"),\n\t\t\tQueueAllEnable:              pulumi.String(\"off\"),\n\t\t\tQueuingStatusCode:           pulumi.String(\"200\"),\n\t\t\tCustomPageHtml:              pulumi.String(\"\"),\n\t\t\tNewUsersPerMinute:           pulumi.String(\"200\"),\n\t\t\tSessionDuration:             pulumi.String(\"5\"),\n\t\t\tLanguage:                    pulumi.String(\"zhcn\"),\n\t\t\tTotalActiveUsers:            pulumi.String(\"300\"),\n\t\t\tQueuingMethod:               pulumi.String(\"fifo\"),\n\t\t\tHostNameAndPaths: esa.WaitingRoomHostNameAndPathArray{\n\t\t\t\t\u0026esa.WaitingRoomHostNameAndPathArgs{\n\t\t\t\t\tDomain:    pulumi.String(\"sub_domain.com\"),\n\t\t\t\t\tPath:      pulumi.String(\"/example\"),\n\t\t\t\t\tSubdomain: pulumi.String(\"example_sub_domain.com.\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = esa.NewWaitingRoomRule(ctx, \"default\", \u0026esa.WaitingRoomRuleArgs{\n\t\t\tRule:          pulumi.String(\"(http.host eq \\\"video.example.com\\\")\"),\n\t\t\tWaitingRoomId: defaultWaitingRoom.WaitingRoomId,\n\t\t\tRuleName:      pulumi.String(\"WaitingRoomRule_example1\"),\n\t\t\tStatus:        pulumi.String(\"off\"),\n\t\t\tSiteId:        defaultSite.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.WaitingRoom;\nimport com.pulumi.alicloud.esa.WaitingRoomArgs;\nimport com.pulumi.alicloud.esa.inputs.WaitingRoomHostNameAndPathArgs;\nimport com.pulumi.alicloud.esa.WaitingRoomRule;\nimport com.pulumi.alicloud.esa.WaitingRoomRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .planSubscribeType(\"enterpriseplan\")\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(\"terraform.site\")\n            .instanceId(default_.sites()[0].instanceId())\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .build());\n\n        var defaultWaitingRoom = new WaitingRoom(\"defaultWaitingRoom\", WaitingRoomArgs.builder()\n            .status(\"off\")\n            .siteId(defaultSite.id())\n            .jsonResponseEnable(\"off\")\n            .description(\"example\")\n            .waitingRoomType(\"default\")\n            .disableSessionRenewalEnable(\"off\")\n            .cookieName(\"__aliwaitingroom_example\")\n            .waitingRoomName(\"waitingroom_example\")\n            .queueAllEnable(\"off\")\n            .queuingStatusCode(\"200\")\n            .customPageHtml(\"\")\n            .newUsersPerMinute(\"200\")\n            .sessionDuration(\"5\")\n            .language(\"zhcn\")\n            .totalActiveUsers(\"300\")\n            .queuingMethod(\"fifo\")\n            .hostNameAndPaths(WaitingRoomHostNameAndPathArgs.builder()\n                .domain(\"sub_domain.com\")\n                .path(\"/example\")\n                .subdomain(\"example_sub_domain.com.\")\n                .build())\n            .build());\n\n        var defaultWaitingRoomRule = new WaitingRoomRule(\"defaultWaitingRoomRule\", WaitingRoomRuleArgs.builder()\n            .rule(\"(http.host eq \\\"video.example.com\\\")\")\n            .waitingRoomId(defaultWaitingRoom.waitingRoomId())\n            .ruleName(\"WaitingRoomRule_example1\")\n            .status(\"off\")\n            .siteId(defaultSite.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: terraform.site\n      instanceId: ${default.sites[0].instanceId}\n      coverage: overseas\n      accessType: NS\n  defaultWaitingRoom:\n    type: alicloud:esa:WaitingRoom\n    name: default\n    properties:\n      status: off\n      siteId: ${defaultSite.id}\n      jsonResponseEnable: off\n      description: example\n      waitingRoomType: default\n      disableSessionRenewalEnable: off\n      cookieName: __aliwaitingroom_example\n      waitingRoomName: waitingroom_example\n      queueAllEnable: off\n      queuingStatusCode: '200'\n      customPageHtml: \"\"\n      newUsersPerMinute: '200'\n      sessionDuration: '5'\n      language: zhcn\n      totalActiveUsers: '300'\n      queuingMethod: fifo\n      hostNameAndPaths:\n        - domain: sub_domain.com\n          path: /example\n          subdomain: example_sub_domain.com.\n  defaultWaitingRoomRule:\n    type: alicloud:esa:WaitingRoomRule\n    name: default\n    properties:\n      rule: (http.host eq \"video.example.com\")\n      waitingRoomId: ${defaultWaitingRoom.waitingRoomId}\n      ruleName: WaitingRoomRule_example1\n      status: off\n      siteId: ${defaultSite.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        planSubscribeType: enterpriseplan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESA Waiting Room Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:esa/waitingRoomRule:WaitingRoomRule example \u003csite_id\u003e:\u003cwaiting_room_id\u003e:\u003cwaiting_room_rule_id\u003e\n```\n\n","properties":{"rule":{"type":"string","description":"The content of the rule, the implemented policy or conditional expression.\n"},"ruleName":{"type":"string","description":"Rule name, optional, used to query by waiting room bypass rule name.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n"},"status":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n- on: open.\n- off: close.\n"},"waitingRoomId":{"type":"string","description":"Waiting room ID, used to identify a specific waiting room. It can be obtained by calling the [listwaitingroom](https://help.aliyun.com/document_detail/2850279.html) interface.\n"},"waitingRoomRuleId":{"type":"integer","description":"The rule ID, which can be used to query a specific rule.\n"}},"required":["rule","ruleName","siteId","status","waitingRoomId","waitingRoomRuleId"],"inputProperties":{"rule":{"type":"string","description":"The content of the rule, the implemented policy or conditional expression.\n"},"ruleName":{"type":"string","description":"Rule name, optional, used to query by waiting room bypass rule name.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n- on: open.\n- off: close.\n"},"waitingRoomId":{"type":"string","description":"Waiting room ID, used to identify a specific waiting room. It can be obtained by calling the [listwaitingroom](https://help.aliyun.com/document_detail/2850279.html) interface.\n","willReplaceOnChanges":true}},"requiredInputs":["rule","ruleName","siteId","status","waitingRoomId"],"stateInputs":{"description":"Input properties used for looking up and filtering WaitingRoomRule resources.\n","properties":{"rule":{"type":"string","description":"The content of the rule, the implemented policy or conditional expression.\n"},"ruleName":{"type":"string","description":"Rule name, optional, used to query by waiting room bypass rule name.\n"},"siteId":{"type":"string","description":"The site ID, which can be obtained by calling the ListSites API.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Rule switch. When adding global configuration, this parameter does not need to be set. Value range:\n- on: open.\n- off: close.\n"},"waitingRoomId":{"type":"string","description":"Waiting room ID, used to identify a specific waiting room. It can be obtained by calling the [listwaitingroom](https://help.aliyun.com/document_detail/2850279.html) interface.\n","willReplaceOnChanges":true},"waitingRoomRuleId":{"type":"integer","description":"The rule ID, which can be used to query a specific rule.\n"}},"type":"object"}},"alicloud:ess/alarm:Alarm":{"description":"Provides a ESS alarm task resource.\n\nFor information about ess alarm, see [CreateAlarm](https://www.alibabacloud.com/help/en/auto-scaling/latest/createalarm).\n\n\u003e **NOTE:** Available since v1.15.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst myName = `${name}-${defaultInteger.result}`;\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 2,\n    memorySize: 4,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: myName,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: myName,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: myName,\n    vpcId: defaultNetwork.id,\n});\nconst defaultSecurityGroupRule = new alicloud.ecs.SecurityGroupRule(\"default\", {\n    type: \"ingress\",\n    ipProtocol: \"tcp\",\n    nicType: \"intranet\",\n    policy: \"accept\",\n    portRange: \"22/22\",\n    priority: 1,\n    securityGroupId: defaultSecurityGroup.id,\n    cidrIp: \"172.16.0.0/24\",\n});\nconst default2 = new alicloud.vpc.Switch(\"default2\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.1.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: `${name}-bar`,\n});\nconst defaultScalingGroup = new alicloud.ess.ScalingGroup(\"default\", {\n    minSize: 1,\n    maxSize: 1,\n    scalingGroupName: myName,\n    defaultCooldown: 20,\n    vswitchIds: [\n        defaultSwitch.id,\n        default2.id,\n    ],\n    removalPolicies: [\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n});\nconst defaultScalingRule = new alicloud.ess.ScalingRule(\"default\", {\n    scalingRuleName: myName,\n    scalingGroupId: defaultScalingGroup.id,\n    adjustmentType: \"TotalCapacity\",\n    adjustmentValue: 2,\n    cooldown: 60,\n});\nconst defaultAlarm = new alicloud.ess.Alarm(\"default\", {\n    name: myName,\n    description: name,\n    alarmActions: [defaultScalingRule.ari],\n    scalingGroupId: defaultScalingGroup.id,\n    metricType: \"system\",\n    metricName: \"CpuUtilization\",\n    period: 300,\n    statistics: \"Average\",\n    threshold: \"200.3\",\n    comparisonOperator: \"\u003e=\",\n    evaluationCount: 2,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nmy_name = f\"{name}-{default_integer['result']}\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=2,\n    memory_size=4)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=my_name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=my_name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=my_name,\n    vpc_id=default_network.id)\ndefault_security_group_rule = alicloud.ecs.SecurityGroupRule(\"default\",\n    type=\"ingress\",\n    ip_protocol=\"tcp\",\n    nic_type=\"intranet\",\n    policy=\"accept\",\n    port_range=\"22/22\",\n    priority=1,\n    security_group_id=default_security_group.id,\n    cidr_ip=\"172.16.0.0/24\")\ndefault2 = alicloud.vpc.Switch(\"default2\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.1.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=f\"{name}-bar\")\ndefault_scaling_group = alicloud.ess.ScalingGroup(\"default\",\n    min_size=1,\n    max_size=1,\n    scaling_group_name=my_name,\n    default_cooldown=20,\n    vswitch_ids=[\n        default_switch.id,\n        default2.id,\n    ],\n    removal_policies=[\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ])\ndefault_scaling_rule = alicloud.ess.ScalingRule(\"default\",\n    scaling_rule_name=my_name,\n    scaling_group_id=default_scaling_group.id,\n    adjustment_type=\"TotalCapacity\",\n    adjustment_value=2,\n    cooldown=60)\ndefault_alarm = alicloud.ess.Alarm(\"default\",\n    name=my_name,\n    description=name,\n    alarm_actions=[default_scaling_rule.ari],\n    scaling_group_id=default_scaling_group.id,\n    metric_type=\"system\",\n    metric_name=\"CpuUtilization\",\n    period=300,\n    statistics=\"Average\",\n    threshold=\"200.3\",\n    comparison_operator=\"\u003e=\",\n    evaluation_count=2)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var myName = $\"{name}-{defaultInteger.Result}\";\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 2,\n        MemorySize = 4,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = myName,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = myName,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = myName,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultSecurityGroupRule = new AliCloud.Ecs.SecurityGroupRule(\"default\", new()\n    {\n        Type = \"ingress\",\n        IpProtocol = \"tcp\",\n        NicType = \"intranet\",\n        Policy = \"accept\",\n        PortRange = \"22/22\",\n        Priority = 1,\n        SecurityGroupId = defaultSecurityGroup.Id,\n        CidrIp = \"172.16.0.0/24\",\n    });\n\n    var default2 = new AliCloud.Vpc.Switch(\"default2\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.1.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = $\"{name}-bar\",\n    });\n\n    var defaultScalingGroup = new AliCloud.Ess.ScalingGroup(\"default\", new()\n    {\n        MinSize = 1,\n        MaxSize = 1,\n        ScalingGroupName = myName,\n        DefaultCooldown = 20,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n            default2.Id,\n        },\n        RemovalPolicies = new[]\n        {\n            \"OldestInstance\",\n            \"NewestInstance\",\n        },\n    });\n\n    var defaultScalingRule = new AliCloud.Ess.ScalingRule(\"default\", new()\n    {\n        ScalingRuleName = myName,\n        ScalingGroupId = defaultScalingGroup.Id,\n        AdjustmentType = \"TotalCapacity\",\n        AdjustmentValue = 2,\n        Cooldown = 60,\n    });\n\n    var defaultAlarm = new AliCloud.Ess.Alarm(\"default\", new()\n    {\n        Name = myName,\n        Description = name,\n        AlarmActions = new[]\n        {\n            defaultScalingRule.Ari,\n        },\n        ScalingGroupId = defaultScalingGroup.Id,\n        MetricType = \"system\",\n        MetricName = \"CpuUtilization\",\n        Period = 300,\n        Statistics = \"Average\",\n        Threshold = \"200.3\",\n        ComparisonOperator = \"\u003e=\",\n        EvaluationCount = 2,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyName := fmt.Sprintf(\"%v-%v\", name, defaultInteger.Result)\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(2),\n\t\t\tMemorySize:       pulumi.Float64Ref(4),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(myName),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(myName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(myName),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroupRule(ctx, \"default\", \u0026ecs.SecurityGroupRuleArgs{\n\t\t\tType:            pulumi.String(\"ingress\"),\n\t\t\tIpProtocol:      pulumi.String(\"tcp\"),\n\t\t\tNicType:         pulumi.String(\"intranet\"),\n\t\t\tPolicy:          pulumi.String(\"accept\"),\n\t\t\tPortRange:       pulumi.String(\"22/22\"),\n\t\t\tPriority:        pulumi.Int(1),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tCidrIp:          pulumi.String(\"172.16.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault2, err := vpc.NewSwitch(ctx, \"default2\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.1.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.Sprintf(\"%v-bar\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingGroup, err := ess.NewScalingGroup(ctx, \"default\", \u0026ess.ScalingGroupArgs{\n\t\t\tMinSize:          pulumi.Int(1),\n\t\t\tMaxSize:          pulumi.Int(1),\n\t\t\tScalingGroupName: pulumi.String(myName),\n\t\t\tDefaultCooldown:  pulumi.Int(20),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t\tdefault2.ID(),\n\t\t\t},\n\t\t\tRemovalPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OldestInstance\"),\n\t\t\t\tpulumi.String(\"NewestInstance\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingRule, err := ess.NewScalingRule(ctx, \"default\", \u0026ess.ScalingRuleArgs{\n\t\t\tScalingRuleName: pulumi.String(myName),\n\t\t\tScalingGroupId:  defaultScalingGroup.ID(),\n\t\t\tAdjustmentType:  pulumi.String(\"TotalCapacity\"),\n\t\t\tAdjustmentValue: pulumi.Int(2),\n\t\t\tCooldown:        pulumi.Int(60),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ess.NewAlarm(ctx, \"default\", \u0026ess.AlarmArgs{\n\t\t\tName:        pulumi.String(myName),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tAlarmActions: pulumi.StringArray{\n\t\t\t\tdefaultScalingRule.Ari,\n\t\t\t},\n\t\t\tScalingGroupId:     defaultScalingGroup.ID(),\n\t\t\tMetricType:         pulumi.String(\"system\"),\n\t\t\tMetricName:         pulumi.String(\"CpuUtilization\"),\n\t\t\tPeriod:             pulumi.Int(300),\n\t\t\tStatistics:         pulumi.String(\"Average\"),\n\t\t\tThreshold:          pulumi.String(\"200.3\"),\n\t\t\tComparisonOperator: pulumi.String(\"\u003e=\"),\n\t\t\tEvaluationCount:    pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroupRule;\nimport com.pulumi.alicloud.ecs.SecurityGroupRuleArgs;\nimport com.pulumi.alicloud.ess.ScalingGroup;\nimport com.pulumi.alicloud.ess.ScalingGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingRule;\nimport com.pulumi.alicloud.ess.ScalingRuleArgs;\nimport com.pulumi.alicloud.ess.Alarm;\nimport com.pulumi.alicloud.ess.AlarmArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var myName = String.format(\"%s-%s\", name,defaultInteger.result());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(myName)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(myName)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(myName)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultSecurityGroupRule = new SecurityGroupRule(\"defaultSecurityGroupRule\", SecurityGroupRuleArgs.builder()\n            .type(\"ingress\")\n            .ipProtocol(\"tcp\")\n            .nicType(\"intranet\")\n            .policy(\"accept\")\n            .portRange(\"22/22\")\n            .priority(1)\n            .securityGroupId(defaultSecurityGroup.id())\n            .cidrIp(\"172.16.0.0/24\")\n            .build());\n\n        var default2 = new Switch(\"default2\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.1.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(String.format(\"%s-bar\", name))\n            .build());\n\n        var defaultScalingGroup = new ScalingGroup(\"defaultScalingGroup\", ScalingGroupArgs.builder()\n            .minSize(1)\n            .maxSize(1)\n            .scalingGroupName(myName)\n            .defaultCooldown(20)\n            .vswitchIds(            \n                defaultSwitch.id(),\n                default2.id())\n            .removalPolicies(            \n                \"OldestInstance\",\n                \"NewestInstance\")\n            .build());\n\n        var defaultScalingRule = new ScalingRule(\"defaultScalingRule\", ScalingRuleArgs.builder()\n            .scalingRuleName(myName)\n            .scalingGroupId(defaultScalingGroup.id())\n            .adjustmentType(\"TotalCapacity\")\n            .adjustmentValue(2)\n            .cooldown(60)\n            .build());\n\n        var defaultAlarm = new Alarm(\"defaultAlarm\", AlarmArgs.builder()\n            .name(myName)\n            .description(name)\n            .alarmActions(defaultScalingRule.ari())\n            .scalingGroupId(defaultScalingGroup.id())\n            .metricType(\"system\")\n            .metricName(\"CpuUtilization\")\n            .period(300)\n            .statistics(\"Average\")\n            .threshold(\"200.3\")\n            .comparisonOperator(\"\u003e=\")\n            .evaluationCount(2)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${myName}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${myName}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${myName}\n      vpcId: ${defaultNetwork.id}\n  defaultSecurityGroupRule:\n    type: alicloud:ecs:SecurityGroupRule\n    name: default\n    properties:\n      type: ingress\n      ipProtocol: tcp\n      nicType: intranet\n      policy: accept\n      portRange: 22/22\n      priority: 1\n      securityGroupId: ${defaultSecurityGroup.id}\n      cidrIp: 172.16.0.0/24\n  default2:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.1.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}-bar\n  defaultScalingGroup:\n    type: alicloud:ess:ScalingGroup\n    name: default\n    properties:\n      minSize: 1\n      maxSize: 1\n      scalingGroupName: ${myName}\n      defaultCooldown: 20\n      vswitchIds:\n        - ${defaultSwitch.id}\n        - ${default2.id}\n      removalPolicies:\n        - OldestInstance\n        - NewestInstance\n  defaultScalingRule:\n    type: alicloud:ess:ScalingRule\n    name: default\n    properties:\n      scalingRuleName: ${myName}\n      scalingGroupId: ${defaultScalingGroup.id}\n      adjustmentType: TotalCapacity\n      adjustmentValue: 2\n      cooldown: 60\n  defaultAlarm:\n    type: alicloud:ess:Alarm\n    name: default\n    properties:\n      name: ${myName}\n      description: ${name}\n      alarmActions:\n        - ${defaultScalingRule.ari}\n      scalingGroupId: ${defaultScalingGroup.id}\n      metricType: system\n      metricName: CpuUtilization\n      period: 300\n      statistics: Average\n      threshold: 200.3\n      comparisonOperator: '\u003e='\n      evaluationCount: 2\nvariables:\n  myName: ${name}-${defaultInteger.result}\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 2\n        memorySize: 4\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use to the existing autoscaling-rule module \nto create alarm task, different type rules and scheduled task one-click.\n\n## Import\n\nEss alarm can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ess/alarm:Alarm example asg-2ze500_045efffe-4d05\n```\n\n","properties":{"alarmActions":{"type":"array","items":{"type":"string"},"description":"The list of actions to execute when this alarm transition into an ALARM state. Each action is specified as ess scaling rule ari.\n"},"cloudMonitorGroupId":{"type":"integer","description":"Defines the application group id defined by CMS which is assigned when you upload custom metric to CMS, only available for custom metirc.\n"},"comparisonOperator":{"type":"string","description":"The arithmetic operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand. Supported value: \u003e=, \u003c=, \u003e, \u003c. Defaults to \u003e=.\n"},"description":{"type":"string","description":"The description for the alarm.\n"},"dimensions":{"type":"object","additionalProperties":{"type":"string"},"description":"The dimension map for the alarm's associated metric. For all metrics, you can not set the dimension key as \u003cspan pulumi-lang-nodejs=\"\"scalingGroup\"\" pulumi-lang-dotnet=\"\"ScalingGroup\"\" pulumi-lang-go=\"\"scalingGroup\"\" pulumi-lang-python=\"\"scaling_group\"\" pulumi-lang-yaml=\"\"scalingGroup\"\" pulumi-lang-java=\"\"scalingGroup\"\"\u003e\"scaling_group\"\u003c/span\u003e or \"userId\", which is set by default, the second dimension for metric, such as \"device\" for \"PackagesNetIn\", need to be set by users. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below.\n"},"effective":{"type":"string","description":"The effective period of the event-triggered task. By default, the event-triggered task is in effect at all times.\n"},"enable":{"type":"boolean","description":"Whether to enable specific ess alarm. Default to true.\n"},"evaluationCount":{"type":"integer","description":"The number of times that needs to satisfies comparison condition before transition into ALARM state. Defaults to 3.\n"},"expressions":{"type":"array","items":{"$ref":"#/types/alicloud:ess/AlarmExpression:AlarmExpression"},"description":"Support multi alert rule. See \u003cspan pulumi-lang-nodejs=\"`expressions`\" pulumi-lang-dotnet=\"`Expressions`\" pulumi-lang-go=\"`expressions`\" pulumi-lang-python=\"`expressions`\" pulumi-lang-yaml=\"`expressions`\" pulumi-lang-java=\"`expressions`\"\u003e`expressions`\u003c/span\u003e below for details.\n"},"expressionsLogicOperator":{"type":"string","description":"The relationship between the trigger conditions in the multi-metric alert rule.\n"},"metricName":{"type":"string","description":"The name for the alarm's associated metric. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below for details.\n"},"metricType":{"type":"string","description":"The type for the alarm's associated metric. Supported value: system, custom. \"system\" means the metric data is collected by Aliyun Cloud Monitor Service(CMS), \"custom\" means the metric data is upload to CMS by users. Defaults to system.\n"},"name":{"type":"string","description":"The name for ess alarm.\n"},"period":{"type":"integer","description":"The period in seconds over which the specified statistic is applied. Supported value: 60, 120, 300, 900. Defaults to 300.\n"},"scalingGroupId":{"type":"string","description":"The scaling group associated with this alarm, the 'ForceNew' attribute is available in 1.56.0+.\n"},"state":{"type":"string","description":"The status of the event-triggered task. Valid values:\n- ALARM: The alert condition is met and an alert is triggered.\n- OK: The alert condition is not met.\n- INSUFFICIENT_DATA: Auto Scaling cannot determine whether the alert condition is met due to insufficient data.\n"},"statistics":{"type":"string","description":"The statistic to apply to the alarm's associated metric. Supported value: Average, Minimum, Maximum. Defaults to Average.\n"},"threshold":{"type":"string","description":"The value against which the specified statistics is compared.\n"}},"required":["alarmActions","comparisonOperator","dimensions","effective","expressions","expressionsLogicOperator","metricName","name","period","scalingGroupId","state","statistics","threshold"],"inputProperties":{"alarmActions":{"type":"array","items":{"type":"string"},"description":"The list of actions to execute when this alarm transition into an ALARM state. Each action is specified as ess scaling rule ari.\n"},"cloudMonitorGroupId":{"type":"integer","description":"Defines the application group id defined by CMS which is assigned when you upload custom metric to CMS, only available for custom metirc.\n"},"comparisonOperator":{"type":"string","description":"The arithmetic operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand. Supported value: \u003e=, \u003c=, \u003e, \u003c. Defaults to \u003e=.\n"},"description":{"type":"string","description":"The description for the alarm.\n"},"dimensions":{"type":"object","additionalProperties":{"type":"string"},"description":"The dimension map for the alarm's associated metric. For all metrics, you can not set the dimension key as \u003cspan pulumi-lang-nodejs=\"\"scalingGroup\"\" pulumi-lang-dotnet=\"\"ScalingGroup\"\" pulumi-lang-go=\"\"scalingGroup\"\" pulumi-lang-python=\"\"scaling_group\"\" pulumi-lang-yaml=\"\"scalingGroup\"\" pulumi-lang-java=\"\"scalingGroup\"\"\u003e\"scaling_group\"\u003c/span\u003e or \"userId\", which is set by default, the second dimension for metric, such as \"device\" for \"PackagesNetIn\", need to be set by users. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below.\n"},"effective":{"type":"string","description":"The effective period of the event-triggered task. By default, the event-triggered task is in effect at all times.\n"},"enable":{"type":"boolean","description":"Whether to enable specific ess alarm. Default to true.\n"},"evaluationCount":{"type":"integer","description":"The number of times that needs to satisfies comparison condition before transition into ALARM state. Defaults to 3.\n"},"expressions":{"type":"array","items":{"$ref":"#/types/alicloud:ess/AlarmExpression:AlarmExpression"},"description":"Support multi alert rule. See \u003cspan pulumi-lang-nodejs=\"`expressions`\" pulumi-lang-dotnet=\"`Expressions`\" pulumi-lang-go=\"`expressions`\" pulumi-lang-python=\"`expressions`\" pulumi-lang-yaml=\"`expressions`\" pulumi-lang-java=\"`expressions`\"\u003e`expressions`\u003c/span\u003e below for details.\n"},"expressionsLogicOperator":{"type":"string","description":"The relationship between the trigger conditions in the multi-metric alert rule.\n"},"metricName":{"type":"string","description":"The name for the alarm's associated metric. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below for details.\n"},"metricType":{"type":"string","description":"The type for the alarm's associated metric. Supported value: system, custom. \"system\" means the metric data is collected by Aliyun Cloud Monitor Service(CMS), \"custom\" means the metric data is upload to CMS by users. Defaults to system.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name for ess alarm.\n"},"period":{"type":"integer","description":"The period in seconds over which the specified statistic is applied. Supported value: 60, 120, 300, 900. Defaults to 300.\n"},"scalingGroupId":{"type":"string","description":"The scaling group associated with this alarm, the 'ForceNew' attribute is available in 1.56.0+.\n","willReplaceOnChanges":true},"statistics":{"type":"string","description":"The statistic to apply to the alarm's associated metric. Supported value: Average, Minimum, Maximum. Defaults to Average.\n"},"threshold":{"type":"string","description":"The value against which the specified statistics is compared.\n"}},"requiredInputs":["alarmActions","scalingGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering Alarm resources.\n","properties":{"alarmActions":{"type":"array","items":{"type":"string"},"description":"The list of actions to execute when this alarm transition into an ALARM state. Each action is specified as ess scaling rule ari.\n"},"cloudMonitorGroupId":{"type":"integer","description":"Defines the application group id defined by CMS which is assigned when you upload custom metric to CMS, only available for custom metirc.\n"},"comparisonOperator":{"type":"string","description":"The arithmetic operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand. Supported value: \u003e=, \u003c=, \u003e, \u003c. Defaults to \u003e=.\n"},"description":{"type":"string","description":"The description for the alarm.\n"},"dimensions":{"type":"object","additionalProperties":{"type":"string"},"description":"The dimension map for the alarm's associated metric. For all metrics, you can not set the dimension key as \u003cspan pulumi-lang-nodejs=\"\"scalingGroup\"\" pulumi-lang-dotnet=\"\"ScalingGroup\"\" pulumi-lang-go=\"\"scalingGroup\"\" pulumi-lang-python=\"\"scaling_group\"\" pulumi-lang-yaml=\"\"scalingGroup\"\" pulumi-lang-java=\"\"scalingGroup\"\"\u003e\"scaling_group\"\u003c/span\u003e or \"userId\", which is set by default, the second dimension for metric, such as \"device\" for \"PackagesNetIn\", need to be set by users. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below.\n"},"effective":{"type":"string","description":"The effective period of the event-triggered task. By default, the event-triggered task is in effect at all times.\n"},"enable":{"type":"boolean","description":"Whether to enable specific ess alarm. Default to true.\n"},"evaluationCount":{"type":"integer","description":"The number of times that needs to satisfies comparison condition before transition into ALARM state. Defaults to 3.\n"},"expressions":{"type":"array","items":{"$ref":"#/types/alicloud:ess/AlarmExpression:AlarmExpression"},"description":"Support multi alert rule. See \u003cspan pulumi-lang-nodejs=\"`expressions`\" pulumi-lang-dotnet=\"`Expressions`\" pulumi-lang-go=\"`expressions`\" pulumi-lang-python=\"`expressions`\" pulumi-lang-yaml=\"`expressions`\" pulumi-lang-java=\"`expressions`\"\u003e`expressions`\u003c/span\u003e below for details.\n"},"expressionsLogicOperator":{"type":"string","description":"The relationship between the trigger conditions in the multi-metric alert rule.\n"},"metricName":{"type":"string","description":"The name for the alarm's associated metric. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below for details.\n"},"metricType":{"type":"string","description":"The type for the alarm's associated metric. Supported value: system, custom. \"system\" means the metric data is collected by Aliyun Cloud Monitor Service(CMS), \"custom\" means the metric data is upload to CMS by users. Defaults to system.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name for ess alarm.\n"},"period":{"type":"integer","description":"The period in seconds over which the specified statistic is applied. Supported value: 60, 120, 300, 900. Defaults to 300.\n"},"scalingGroupId":{"type":"string","description":"The scaling group associated with this alarm, the 'ForceNew' attribute is available in 1.56.0+.\n","willReplaceOnChanges":true},"state":{"type":"string","description":"The status of the event-triggered task. Valid values:\n- ALARM: The alert condition is met and an alert is triggered.\n- OK: The alert condition is not met.\n- INSUFFICIENT_DATA: Auto Scaling cannot determine whether the alert condition is met due to insufficient data.\n"},"statistics":{"type":"string","description":"The statistic to apply to the alarm's associated metric. Supported value: Average, Minimum, Maximum. Defaults to Average.\n"},"threshold":{"type":"string","description":"The value against which the specified statistics is compared.\n"}},"type":"object"}},"alicloud:ess/albServerGroupAttachment:AlbServerGroupAttachment":{"description":"Attaches/Detaches alb server group to a specified scaling group.\n\nFor information about alb server group attachment, see [AttachAlbServerGroups](https://www.alibabacloud.com/help/en/doc-detail/266800.html).\n\n\u003e **NOTE:** If scaling group's network type is `VPC`, the alb server groups must be in the same `VPC`.\n\n\u003e **NOTE:** Alb server group attachment is defined uniquely by \u003cspan pulumi-lang-nodejs=\"`scalingGroupId`\" pulumi-lang-dotnet=\"`ScalingGroupId`\" pulumi-lang-go=\"`scalingGroupId`\" pulumi-lang-python=\"`scaling_group_id`\" pulumi-lang-yaml=\"`scalingGroupId`\" pulumi-lang-java=\"`scalingGroupId`\"\u003e`scaling_group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`albServerGroupId`\" pulumi-lang-dotnet=\"`AlbServerGroupId`\" pulumi-lang-go=\"`albServerGroupId`\" pulumi-lang-python=\"`alb_server_group_id`\" pulumi-lang-yaml=\"`albServerGroupId`\" pulumi-lang-java=\"`albServerGroupId`\"\u003e`alb_server_group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e.\n\n\u003e **NOTE:** Resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ess.AlbServerGroupAttachment`\" pulumi-lang-dotnet=\"`alicloud.ess.AlbServerGroupAttachment`\" pulumi-lang-go=\"`ess.AlbServerGroupAttachment`\" pulumi-lang-python=\"`ess.AlbServerGroupAttachment`\" pulumi-lang-yaml=\"`alicloud.ess.AlbServerGroupAttachment`\" pulumi-lang-java=\"`alicloud.ess.AlbServerGroupAttachment`\"\u003e`alicloud.ess.AlbServerGroupAttachment`\u003c/span\u003e don't support modification.\n\n\u003e **NOTE:** Available since v1.158.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst myName = `${name}-${defaultInteger.result}`;\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 2,\n    memorySize: 4,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: myName,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: myName,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    securityGroupName: myName,\n    vpcId: defaultNetwork.id,\n});\nconst defaultScalingGroup = new alicloud.ess.ScalingGroup(\"default\", {\n    minSize: 0,\n    maxSize: 2,\n    scalingGroupName: myName,\n    defaultCooldown: 200,\n    removalPolicies: [\"OldestInstance\"],\n    vswitchIds: [defaultSwitch.id],\n});\nconst defaultScalingConfiguration = new alicloud.ess.ScalingConfiguration(\"default\", {\n    scalingGroupId: defaultScalingGroup.id,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroupId: defaultSecurityGroup.id,\n    forceDelete: true,\n    active: true,\n    enable: true,\n});\nconst defaultServerGroup = new alicloud.alb.ServerGroup(\"default\", {\n    serverGroupName: myName,\n    vpcId: defaultNetwork.id,\n    healthCheckConfig: {\n        healthCheckEnabled: false,\n    },\n    stickySessionConfig: {\n        stickySessionEnabled: true,\n        cookie: \"tf-example\",\n        stickySessionType: \"Server\",\n    },\n});\nconst defaultAlbServerGroupAttachment = new alicloud.ess.AlbServerGroupAttachment(\"default\", {\n    scalingGroupId: defaultScalingConfiguration.scalingGroupId,\n    albServerGroupId: defaultServerGroup.id,\n    port: 9000,\n    weight: 50,\n    forceAttach: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nmy_name = f\"{name}-{default_integer['result']}\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=2,\n    memory_size=4)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=my_name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=my_name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    security_group_name=my_name,\n    vpc_id=default_network.id)\ndefault_scaling_group = alicloud.ess.ScalingGroup(\"default\",\n    min_size=0,\n    max_size=2,\n    scaling_group_name=my_name,\n    default_cooldown=200,\n    removal_policies=[\"OldestInstance\"],\n    vswitch_ids=[default_switch.id])\ndefault_scaling_configuration = alicloud.ess.ScalingConfiguration(\"default\",\n    scaling_group_id=default_scaling_group.id,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_group_id=default_security_group.id,\n    force_delete=True,\n    active=True,\n    enable=True)\ndefault_server_group = alicloud.alb.ServerGroup(\"default\",\n    server_group_name=my_name,\n    vpc_id=default_network.id,\n    health_check_config={\n        \"health_check_enabled\": False,\n    },\n    sticky_session_config={\n        \"sticky_session_enabled\": True,\n        \"cookie\": \"tf-example\",\n        \"sticky_session_type\": \"Server\",\n    })\ndefault_alb_server_group_attachment = alicloud.ess.AlbServerGroupAttachment(\"default\",\n    scaling_group_id=default_scaling_configuration.scaling_group_id,\n    alb_server_group_id=default_server_group.id,\n    port=9000,\n    weight=50,\n    force_attach=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var myName = $\"{name}-{defaultInteger.Result}\";\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 2,\n        MemorySize = 4,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = myName,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = myName,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = myName,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultScalingGroup = new AliCloud.Ess.ScalingGroup(\"default\", new()\n    {\n        MinSize = 0,\n        MaxSize = 2,\n        ScalingGroupName = myName,\n        DefaultCooldown = 200,\n        RemovalPolicies = new[]\n        {\n            \"OldestInstance\",\n        },\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n    });\n\n    var defaultScalingConfiguration = new AliCloud.Ess.ScalingConfiguration(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroupId = defaultSecurityGroup.Id,\n        ForceDelete = true,\n        Active = true,\n        Enable = true,\n    });\n\n    var defaultServerGroup = new AliCloud.Alb.ServerGroup(\"default\", new()\n    {\n        ServerGroupName = myName,\n        VpcId = defaultNetwork.Id,\n        HealthCheckConfig = new AliCloud.Alb.Inputs.ServerGroupHealthCheckConfigArgs\n        {\n            HealthCheckEnabled = false,\n        },\n        StickySessionConfig = new AliCloud.Alb.Inputs.ServerGroupStickySessionConfigArgs\n        {\n            StickySessionEnabled = true,\n            Cookie = \"tf-example\",\n            StickySessionType = \"Server\",\n        },\n    });\n\n    var defaultAlbServerGroupAttachment = new AliCloud.Ess.AlbServerGroupAttachment(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingConfiguration.ScalingGroupId,\n        AlbServerGroupId = defaultServerGroup.Id,\n        Port = 9000,\n        Weight = 50,\n        ForceAttach = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyName := fmt.Sprintf(\"%v-%v\", name, defaultInteger.Result)\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(2),\n\t\t\tMemorySize:       pulumi.Float64Ref(4),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(myName),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(myName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(myName),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingGroup, err := ess.NewScalingGroup(ctx, \"default\", \u0026ess.ScalingGroupArgs{\n\t\t\tMinSize:          pulumi.Int(0),\n\t\t\tMaxSize:          pulumi.Int(2),\n\t\t\tScalingGroupName: pulumi.String(myName),\n\t\t\tDefaultCooldown:  pulumi.Int(200),\n\t\t\tRemovalPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OldestInstance\"),\n\t\t\t},\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingConfiguration, err := ess.NewScalingConfiguration(ctx, \"default\", \u0026ess.ScalingConfigurationArgs{\n\t\t\tScalingGroupId:  defaultScalingGroup.ID(),\n\t\t\tImageId:         pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tForceDelete:     pulumi.Bool(true),\n\t\t\tActive:          pulumi.Bool(true),\n\t\t\tEnable:          pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultServerGroup, err := alb.NewServerGroup(ctx, \"default\", \u0026alb.ServerGroupArgs{\n\t\t\tServerGroupName: pulumi.String(myName),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t\tHealthCheckConfig: \u0026alb.ServerGroupHealthCheckConfigArgs{\n\t\t\t\tHealthCheckEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tStickySessionConfig: \u0026alb.ServerGroupStickySessionConfigArgs{\n\t\t\t\tStickySessionEnabled: pulumi.Bool(true),\n\t\t\t\tCookie:               pulumi.String(\"tf-example\"),\n\t\t\t\tStickySessionType:    pulumi.String(\"Server\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ess.NewAlbServerGroupAttachment(ctx, \"default\", \u0026ess.AlbServerGroupAttachmentArgs{\n\t\t\tScalingGroupId:   defaultScalingConfiguration.ScalingGroupId,\n\t\t\tAlbServerGroupId: defaultServerGroup.ID(),\n\t\t\tPort:             pulumi.Int(9000),\n\t\t\tWeight:           pulumi.Int(50),\n\t\t\tForceAttach:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingGroup;\nimport com.pulumi.alicloud.ess.ScalingGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingConfiguration;\nimport com.pulumi.alicloud.ess.ScalingConfigurationArgs;\nimport com.pulumi.alicloud.alb.ServerGroup;\nimport com.pulumi.alicloud.alb.ServerGroupArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupHealthCheckConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupStickySessionConfigArgs;\nimport com.pulumi.alicloud.ess.AlbServerGroupAttachment;\nimport com.pulumi.alicloud.ess.AlbServerGroupAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var myName = String.format(\"%s-%s\", name,defaultInteger.result());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(myName)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(myName)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(myName)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultScalingGroup = new ScalingGroup(\"defaultScalingGroup\", ScalingGroupArgs.builder()\n            .minSize(0)\n            .maxSize(2)\n            .scalingGroupName(myName)\n            .defaultCooldown(200)\n            .removalPolicies(\"OldestInstance\")\n            .vswitchIds(defaultSwitch.id())\n            .build());\n\n        var defaultScalingConfiguration = new ScalingConfiguration(\"defaultScalingConfiguration\", ScalingConfigurationArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroupId(defaultSecurityGroup.id())\n            .forceDelete(true)\n            .active(true)\n            .enable(true)\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .serverGroupName(myName)\n            .vpcId(defaultNetwork.id())\n            .healthCheckConfig(ServerGroupHealthCheckConfigArgs.builder()\n                .healthCheckEnabled(false)\n                .build())\n            .stickySessionConfig(ServerGroupStickySessionConfigArgs.builder()\n                .stickySessionEnabled(true)\n                .cookie(\"tf-example\")\n                .stickySessionType(\"Server\")\n                .build())\n            .build());\n\n        var defaultAlbServerGroupAttachment = new AlbServerGroupAttachment(\"defaultAlbServerGroupAttachment\", AlbServerGroupAttachmentArgs.builder()\n            .scalingGroupId(defaultScalingConfiguration.scalingGroupId())\n            .albServerGroupId(defaultServerGroup.id())\n            .port(9000)\n            .weight(50)\n            .forceAttach(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${myName}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${myName}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      securityGroupName: ${myName}\n      vpcId: ${defaultNetwork.id}\n  defaultScalingGroup:\n    type: alicloud:ess:ScalingGroup\n    name: default\n    properties:\n      minSize: '0'\n      maxSize: '2'\n      scalingGroupName: ${myName}\n      defaultCooldown: 200\n      removalPolicies:\n        - OldestInstance\n      vswitchIds:\n        - ${defaultSwitch.id}\n  defaultScalingConfiguration:\n    type: alicloud:ess:ScalingConfiguration\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingGroup.id}\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      securityGroupId: ${defaultSecurityGroup.id}\n      forceDelete: true\n      active: true\n      enable: true\n  defaultServerGroup:\n    type: alicloud:alb:ServerGroup\n    name: default\n    properties:\n      serverGroupName: ${myName}\n      vpcId: ${defaultNetwork.id}\n      healthCheckConfig:\n        healthCheckEnabled: 'false'\n      stickySessionConfig:\n        stickySessionEnabled: true\n        cookie: tf-example\n        stickySessionType: Server\n  defaultAlbServerGroupAttachment:\n    type: alicloud:ess:AlbServerGroupAttachment\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingConfiguration.scalingGroupId}\n      albServerGroupId: ${defaultServerGroup.id}\n      port: 9000\n      weight: 50\n      forceAttach: true\nvariables:\n  myName: ${name}-${defaultInteger.result}\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 2\n        memorySize: 4\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESS alb server groups can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ess/albServerGroupAttachment:AlbServerGroupAttachment example asg-xxx:sgp-xxx:5000\n```\n\n","properties":{"albServerGroupId":{"type":"string","description":"ID of Alb Server Group.\n"},"forceAttach":{"type":"boolean","description":"If instances of scaling group are attached/removed from slb backend server when attach/detach alb\nserver group from scaling group. Default to false.\n"},"port":{"type":"integer","description":"The port will be used for Alb Server Group backend server.\n"},"scalingGroupId":{"type":"string","description":"ID of the scaling group.\n"},"weight":{"type":"integer","description":"The weight of an ECS instance attached to the Alb Server Group.\n"}},"required":["albServerGroupId","port","scalingGroupId","weight"],"inputProperties":{"albServerGroupId":{"type":"string","description":"ID of Alb Server Group.\n","willReplaceOnChanges":true},"forceAttach":{"type":"boolean","description":"If instances of scaling group are attached/removed from slb backend server when attach/detach alb\nserver group from scaling group. Default to false.\n"},"port":{"type":"integer","description":"The port will be used for Alb Server Group backend server.\n","willReplaceOnChanges":true},"scalingGroupId":{"type":"string","description":"ID of the scaling group.\n","willReplaceOnChanges":true},"weight":{"type":"integer","description":"The weight of an ECS instance attached to the Alb Server Group.\n","willReplaceOnChanges":true}},"requiredInputs":["albServerGroupId","port","scalingGroupId","weight"],"stateInputs":{"description":"Input properties used for looking up and filtering AlbServerGroupAttachment resources.\n","properties":{"albServerGroupId":{"type":"string","description":"ID of Alb Server Group.\n","willReplaceOnChanges":true},"forceAttach":{"type":"boolean","description":"If instances of scaling group are attached/removed from slb backend server when attach/detach alb\nserver group from scaling group. Default to false.\n"},"port":{"type":"integer","description":"The port will be used for Alb Server Group backend server.\n","willReplaceOnChanges":true},"scalingGroupId":{"type":"string","description":"ID of the scaling group.\n","willReplaceOnChanges":true},"weight":{"type":"integer","description":"The weight of an ECS instance attached to the Alb Server Group.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ess/attachment:Attachment":{"description":"Attaches several ECS instances to a specified scaling group or remove them from it.\n\n\u003e **NOTE:** ECS instances can be attached or remove only when the scaling group is active, and it has no scaling activity in progress.\n\n\u003e **NOTE:** There are two types ECS instances in a scaling group: \"AutoCreated\" and \"Attached\". The total number of them can not larger than the scaling group \"MaxSize\".\n\n\u003e **NOTE:** Available since v1.6.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst myName = `${name}-${defaultInteger.result}`;\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 2,\n    memorySize: 8,\n    instanceTypeFamily: \"ecs.g9i\",\n}));\nconst defaultGetImages = defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e alicloud.ecs.getImages({\n    instanceType: defaultGetInstanceTypes.instanceTypes?.[0]?.id,\n    mostRecent: true,\n    owners: \"system\",\n}));\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0])});\nconst defaultSecurityGroupRule = new alicloud.ecs.SecurityGroupRule(\"default\", {\n    type: \"ingress\",\n    ipProtocol: \"tcp\",\n    nicType: \"intranet\",\n    policy: \"accept\",\n    portRange: \"22/22\",\n    priority: 1,\n    securityGroupId: defaultSecurityGroup.id,\n    cidrIp: \"172.16.0.0/24\",\n});\nconst defaultScalingGroup = new alicloud.ess.ScalingGroup(\"default\", {\n    minSize: 0,\n    maxSize: 2,\n    scalingGroupName: myName,\n    removalPolicies: [\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitchIds: [defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0])],\n});\nconst defaultScalingConfiguration = new alicloud.ess.ScalingConfiguration(\"default\", {\n    scalingGroupId: defaultScalingGroup.id,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroupId: defaultSecurityGroup.id,\n    systemDiskCategory: \"cloud_essd\",\n    forceDelete: true,\n    active: true,\n    enable: true,\n});\nconst defaultInstance: alicloud.ecs.Instance[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultInstance.push(new alicloud.ecs.Instance(`default-${range.value}`, {\n        imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n        instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n        securityGroups: [defaultSecurityGroup.id],\n        internetChargeType: \"PayByTraffic\",\n        internetMaxBandwidthOut: 10,\n        instanceChargeType: \"PostPaid\",\n        systemDiskCategory: \"cloud_essd\",\n        vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n        instanceName: name,\n    }));\n}\nconst defaultAttachment = new alicloud.ess.Attachment(\"default\", {\n    scalingGroupId: defaultScalingGroup.id,\n    instanceIds: [\n        defaultInstance[0].id,\n        defaultInstance[1].id,\n    ],\n    force: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nmy_name = f\"{name}-{default_integer['result']}\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=2,\n    memory_size=8,\n    instance_type_family=\"ecs.g9i\")\ndefault_get_images = alicloud.ecs.get_images(instance_type=default_get_instance_types.instance_types[0].id,\n    most_recent=True,\n    owners=\"system\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"10.4.0.0/16\")\ndefault_get_switches = alicloud.vpc.get_switches(cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_get_networks.ids[0])\ndefault_security_group_rule = alicloud.ecs.SecurityGroupRule(\"default\",\n    type=\"ingress\",\n    ip_protocol=\"tcp\",\n    nic_type=\"intranet\",\n    policy=\"accept\",\n    port_range=\"22/22\",\n    priority=1,\n    security_group_id=default_security_group.id,\n    cidr_ip=\"172.16.0.0/24\")\ndefault_scaling_group = alicloud.ess.ScalingGroup(\"default\",\n    min_size=0,\n    max_size=2,\n    scaling_group_name=my_name,\n    removal_policies=[\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitch_ids=[default_get_switches.ids[0]])\ndefault_scaling_configuration = alicloud.ess.ScalingConfiguration(\"default\",\n    scaling_group_id=default_scaling_group.id,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_group_id=default_security_group.id,\n    system_disk_category=\"cloud_essd\",\n    force_delete=True,\n    active=True,\n    enable=True)\ndefault_instance = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_instance.append(alicloud.ecs.Instance(f\"default-{range['value']}\",\n        image_id=default_get_images.images[0].id,\n        instance_type=default_get_instance_types.instance_types[0].id,\n        security_groups=[default_security_group.id],\n        internet_charge_type=\"PayByTraffic\",\n        internet_max_bandwidth_out=10,\n        instance_charge_type=\"PostPaid\",\n        system_disk_category=\"cloud_essd\",\n        vswitch_id=default_get_switches.ids[0],\n        instance_name=name))\ndefault_attachment = alicloud.ess.Attachment(\"default\",\n    scaling_group_id=default_scaling_group.id,\n    instance_ids=[\n        default_instance[0].id,\n        default_instance[1].id,\n    ],\n    force=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var myName = $\"{name}-{defaultInteger.Result}\";\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 2,\n        MemorySize = 8,\n        InstanceTypeFamily = \"ecs.g9i\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultSecurityGroupRule = new AliCloud.Ecs.SecurityGroupRule(\"default\", new()\n    {\n        Type = \"ingress\",\n        IpProtocol = \"tcp\",\n        NicType = \"intranet\",\n        Policy = \"accept\",\n        PortRange = \"22/22\",\n        Priority = 1,\n        SecurityGroupId = defaultSecurityGroup.Id,\n        CidrIp = \"172.16.0.0/24\",\n    });\n\n    var defaultScalingGroup = new AliCloud.Ess.ScalingGroup(\"default\", new()\n    {\n        MinSize = 0,\n        MaxSize = 2,\n        ScalingGroupName = myName,\n        RemovalPolicies = new[]\n        {\n            \"OldestInstance\",\n            \"NewestInstance\",\n        },\n        VswitchIds = new[]\n        {\n            defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        },\n    });\n\n    var defaultScalingConfiguration = new AliCloud.Ess.ScalingConfiguration(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroupId = defaultSecurityGroup.Id,\n        SystemDiskCategory = \"cloud_essd\",\n        ForceDelete = true,\n        Active = true,\n        Enable = true,\n    });\n\n    var defaultInstance = new List\u003cAliCloud.Ecs.Instance\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultInstance.Add(new AliCloud.Ecs.Instance($\"default-{range.Value}\", new()\n        {\n            ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n            InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n            SecurityGroups = new[]\n            {\n                defaultSecurityGroup.Id,\n            },\n            InternetChargeType = \"PayByTraffic\",\n            InternetMaxBandwidthOut = 10,\n            InstanceChargeType = \"PostPaid\",\n            SystemDiskCategory = \"cloud_essd\",\n            VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n            InstanceName = name,\n        }));\n    }\n    var defaultAttachment = new AliCloud.Ess.Attachment(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        InstanceIds = new[]\n        {\n            defaultInstance[0].Id,\n            defaultInstance[1].Id,\n        },\n        Force = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyName := fmt.Sprintf(\"%v-%v\", name, defaultInteger.Result)\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone:   pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:       pulumi.IntRef(2),\n\t\t\tMemorySize:         pulumi.Float64Ref(8),\n\t\t\tInstanceTypeFamily: pulumi.StringRef(\"ecs.g9i\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tInstanceType: pulumi.StringRef(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tMostRecent:   pulumi.BoolRef(true),\n\t\t\tOwners:       pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"10.4.0.0/24\"),\n\t\t\tVpcId:     pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:    pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroupRule(ctx, \"default\", \u0026ecs.SecurityGroupRuleArgs{\n\t\t\tType:            pulumi.String(\"ingress\"),\n\t\t\tIpProtocol:      pulumi.String(\"tcp\"),\n\t\t\tNicType:         pulumi.String(\"intranet\"),\n\t\t\tPolicy:          pulumi.String(\"accept\"),\n\t\t\tPortRange:       pulumi.String(\"22/22\"),\n\t\t\tPriority:        pulumi.Int(1),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tCidrIp:          pulumi.String(\"172.16.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingGroup, err := ess.NewScalingGroup(ctx, \"default\", \u0026ess.ScalingGroupArgs{\n\t\t\tMinSize:          pulumi.Int(0),\n\t\t\tMaxSize:          pulumi.Int(2),\n\t\t\tScalingGroupName: pulumi.String(myName),\n\t\t\tRemovalPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OldestInstance\"),\n\t\t\t\tpulumi.String(\"NewestInstance\"),\n\t\t\t},\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ess.NewScalingConfiguration(ctx, \"default\", \u0026ess.ScalingConfigurationArgs{\n\t\t\tScalingGroupId:     defaultScalingGroup.ID(),\n\t\t\tImageId:            pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:       pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroupId:    defaultSecurityGroup.ID(),\n\t\t\tSystemDiskCategory: pulumi.String(\"cloud_essd\"),\n\t\t\tForceDelete:        pulumi.Bool(true),\n\t\t\tActive:             pulumi.Bool(true),\n\t\t\tEnable:             pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar defaultInstance []*ecs.Instance\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := ecs.NewInstance(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026ecs.InstanceArgs{\n\t\t\t\tImageId:      pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\t\tInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t\t},\n\t\t\t\tInternetChargeType:      pulumi.String(\"PayByTraffic\"),\n\t\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t\t\tInstanceChargeType:      pulumi.String(\"PostPaid\"),\n\t\t\t\tSystemDiskCategory:      pulumi.String(\"cloud_essd\"),\n\t\t\t\tVswitchId:               pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\t\tInstanceName:            pulumi.String(name),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultInstance = append(defaultInstance, __res)\n\t\t}\n\t\t_, err = ess.NewAttachment(ctx, \"default\", \u0026ess.AttachmentArgs{\n\t\t\tScalingGroupId: defaultScalingGroup.ID(),\n\t\t\tInstanceIds: pulumi.StringArray{\n\t\t\t\tdefaultInstance[0].ID(),\n\t\t\t\tdefaultInstance[1].ID(),\n\t\t\t},\n\t\t\tForce: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroupRule;\nimport com.pulumi.alicloud.ecs.SecurityGroupRuleArgs;\nimport com.pulumi.alicloud.ess.ScalingGroup;\nimport com.pulumi.alicloud.ess.ScalingGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingConfiguration;\nimport com.pulumi.alicloud.ess.ScalingConfigurationArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.ess.Attachment;\nimport com.pulumi.alicloud.ess.AttachmentArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var myName = String.format(\"%s-%s\", name,defaultInteger.result());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(2)\n            .memorySize(8)\n            .instanceTypeFamily(\"ecs.g9i\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultSecurityGroupRule = new SecurityGroupRule(\"defaultSecurityGroupRule\", SecurityGroupRuleArgs.builder()\n            .type(\"ingress\")\n            .ipProtocol(\"tcp\")\n            .nicType(\"intranet\")\n            .policy(\"accept\")\n            .portRange(\"22/22\")\n            .priority(1)\n            .securityGroupId(defaultSecurityGroup.id())\n            .cidrIp(\"172.16.0.0/24\")\n            .build());\n\n        var defaultScalingGroup = new ScalingGroup(\"defaultScalingGroup\", ScalingGroupArgs.builder()\n            .minSize(0)\n            .maxSize(2)\n            .scalingGroupName(myName)\n            .removalPolicies(            \n                \"OldestInstance\",\n                \"NewestInstance\")\n            .vswitchIds(defaultGetSwitches.ids()[0])\n            .build());\n\n        var defaultScalingConfiguration = new ScalingConfiguration(\"defaultScalingConfiguration\", ScalingConfigurationArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroupId(defaultSecurityGroup.id())\n            .systemDiskCategory(\"cloud_essd\")\n            .forceDelete(true)\n            .active(true)\n            .enable(true)\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Instance(\"defaultInstance-\" + i, InstanceArgs.builder()\n                .imageId(defaultGetImages.images()[0].id())\n                .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n                .securityGroups(defaultSecurityGroup.id())\n                .internetChargeType(\"PayByTraffic\")\n                .internetMaxBandwidthOut(10)\n                .instanceChargeType(\"PostPaid\")\n                .systemDiskCategory(\"cloud_essd\")\n                .vswitchId(defaultGetSwitches.ids()[0])\n                .instanceName(name)\n                .build());\n\n        \n}\n        var defaultAttachment = new Attachment(\"defaultAttachment\", AttachmentArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .instanceIds(            \n                defaultInstance[0].id(),\n                defaultInstance[1].id())\n            .force(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultSecurityGroupRule:\n    type: alicloud:ecs:SecurityGroupRule\n    name: default\n    properties:\n      type: ingress\n      ipProtocol: tcp\n      nicType: intranet\n      policy: accept\n      portRange: 22/22\n      priority: 1\n      securityGroupId: ${defaultSecurityGroup.id}\n      cidrIp: 172.16.0.0/24\n  defaultScalingGroup:\n    type: alicloud:ess:ScalingGroup\n    name: default\n    properties:\n      minSize: 0\n      maxSize: 2\n      scalingGroupName: ${myName}\n      removalPolicies:\n        - OldestInstance\n        - NewestInstance\n      vswitchIds:\n        - ${defaultGetSwitches.ids[0]}\n  defaultScalingConfiguration:\n    type: alicloud:ess:ScalingConfiguration\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingGroup.id}\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      securityGroupId: ${defaultSecurityGroup.id}\n      systemDiskCategory: cloud_essd\n      forceDelete: true\n      active: true\n      enable: true\n  defaultInstance:\n    type: alicloud:ecs:Instance\n    name: default\n    properties:\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      securityGroups:\n        - ${defaultSecurityGroup.id}\n      internetChargeType: PayByTraffic\n      internetMaxBandwidthOut: '10'\n      instanceChargeType: PostPaid\n      systemDiskCategory: cloud_essd\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      instanceName: ${name}\n    options: {}\n  defaultAttachment:\n    type: alicloud:ess:Attachment\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingGroup.id}\n      instanceIds:\n        - ${defaultInstance[0].id}\n        - ${defaultInstance[1].id}\n      force: true\nvariables:\n  myName: ${name}-${defaultInteger.result}\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 2\n        memorySize: 8\n        instanceTypeFamily: ecs.g9i\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n        mostRecent: true\n        owners: system\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 10.4.0.0/16\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        cidrBlock: 10.4.0.0/24\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESS attachment can be imported using the id or scaling group id, e.g.\n\n```sh\n$ pulumi import alicloud:ess/attachment:Attachment example asg-abc123456\n```\n\n","properties":{"entrusted":{"type":"boolean","description":"Specifies whether the scaling group manages the lifecycles of the instances that are manually added to the scaling group.\n"},"force":{"type":"boolean","description":"Whether to remove forcibly \"AutoCreated\" ECS instances in order to release scaling group capacity \"MaxSize\" for attaching ECS instances. Default to false.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"ID of the ECS instance to be attached to the scaling group. You can input up to 20 IDs.\n"},"lifecycleHook":{"type":"boolean","description":"Specifies whether to trigger a lifecycle hook for the scaling group to which instances are being added.\n"},"loadBalancerWeights":{"type":"array","items":{"type":"integer"},"description":"The weight of ECS instance N or elastic container instance N as a backend server of the associated Server Load Balancer (SLB) instance. Valid values of N: 1 to 20. Valid values of this parameter: 1 to 100.\n\n\u003e **NOTE:** \"AutoCreated\" ECS instance will be deleted after it is removed from scaling group, but \"Attached\" will be not.\n\n\u003e **NOTE:** Restrictions on attaching ECS instances:\n\n- The attached ECS instances and the scaling group must have the same region and network type(`Classic` or `VPC`).\n- The attached ECS instances and the instance with active scaling configurations must have the same instance type.\n- The attached ECS instances must in the running state.\n- The attached ECS instances has not been attached to other scaling groups.\n- The attached ECS instances supports Subscription and Pay-As-You-Go payment methods.\n"},"scalingGroupId":{"type":"string","description":"ID of the scaling group of a scaling configuration.\n"}},"required":["instanceIds","loadBalancerWeights","scalingGroupId"],"inputProperties":{"entrusted":{"type":"boolean","description":"Specifies whether the scaling group manages the lifecycles of the instances that are manually added to the scaling group.\n","willReplaceOnChanges":true},"force":{"type":"boolean","description":"Whether to remove forcibly \"AutoCreated\" ECS instances in order to release scaling group capacity \"MaxSize\" for attaching ECS instances. Default to false.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"ID of the ECS instance to be attached to the scaling group. You can input up to 20 IDs.\n"},"lifecycleHook":{"type":"boolean","description":"Specifies whether to trigger a lifecycle hook for the scaling group to which instances are being added.\n","willReplaceOnChanges":true},"loadBalancerWeights":{"type":"array","items":{"type":"integer"},"description":"The weight of ECS instance N or elastic container instance N as a backend server of the associated Server Load Balancer (SLB) instance. Valid values of N: 1 to 20. Valid values of this parameter: 1 to 100.\n\n\u003e **NOTE:** \"AutoCreated\" ECS instance will be deleted after it is removed from scaling group, but \"Attached\" will be not.\n\n\u003e **NOTE:** Restrictions on attaching ECS instances:\n\n- The attached ECS instances and the scaling group must have the same region and network type(`Classic` or `VPC`).\n- The attached ECS instances and the instance with active scaling configurations must have the same instance type.\n- The attached ECS instances must in the running state.\n- The attached ECS instances has not been attached to other scaling groups.\n- The attached ECS instances supports Subscription and Pay-As-You-Go payment methods.\n","willReplaceOnChanges":true},"scalingGroupId":{"type":"string","description":"ID of the scaling group of a scaling configuration.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceIds","scalingGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering Attachment resources.\n","properties":{"entrusted":{"type":"boolean","description":"Specifies whether the scaling group manages the lifecycles of the instances that are manually added to the scaling group.\n","willReplaceOnChanges":true},"force":{"type":"boolean","description":"Whether to remove forcibly \"AutoCreated\" ECS instances in order to release scaling group capacity \"MaxSize\" for attaching ECS instances. Default to false.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"ID of the ECS instance to be attached to the scaling group. You can input up to 20 IDs.\n"},"lifecycleHook":{"type":"boolean","description":"Specifies whether to trigger a lifecycle hook for the scaling group to which instances are being added.\n","willReplaceOnChanges":true},"loadBalancerWeights":{"type":"array","items":{"type":"integer"},"description":"The weight of ECS instance N or elastic container instance N as a backend server of the associated Server Load Balancer (SLB) instance. Valid values of N: 1 to 20. Valid values of this parameter: 1 to 100.\n\n\u003e **NOTE:** \"AutoCreated\" ECS instance will be deleted after it is removed from scaling group, but \"Attached\" will be not.\n\n\u003e **NOTE:** Restrictions on attaching ECS instances:\n\n- The attached ECS instances and the scaling group must have the same region and network type(`Classic` or `VPC`).\n- The attached ECS instances and the instance with active scaling configurations must have the same instance type.\n- The attached ECS instances must in the running state.\n- The attached ECS instances has not been attached to other scaling groups.\n- The attached ECS instances supports Subscription and Pay-As-You-Go payment methods.\n","willReplaceOnChanges":true},"scalingGroupId":{"type":"string","description":"ID of the scaling group of a scaling configuration.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ess/eciScalingConfiguration:EciScalingConfiguration":{"description":"Provides a ESS eci scaling configuration resource.\n\nFor information about ess eci scaling configuration, see [CreateEciScalingConfiguration](https://www.alibabacloud.com/help/en/auto-scaling/latest/create-eci-scaling-configuration).\n\n\u003e **NOTE:** Available since v1.164.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst myName = `${name}-${defaultInteger.result}`;\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: myName,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: myName,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    securityGroupName: myName,\n    vpcId: defaultNetwork.id,\n});\nconst defaultScalingGroup = new alicloud.ess.ScalingGroup(\"default\", {\n    minSize: 0,\n    maxSize: 1,\n    scalingGroupName: myName,\n    removalPolicies: [\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitchIds: [defaultSwitch.id],\n    groupType: \"ECI\",\n});\nconst defaultEciScalingConfiguration = new alicloud.ess.EciScalingConfiguration(\"default\", {\n    scalingGroupId: defaultScalingGroup.id,\n    cpu: 2,\n    memory: 4,\n    securityGroupId: defaultSecurityGroup.id,\n    forceDelete: true,\n    active: true,\n    containerGroupName: \"container-group-1649839595174\",\n    containers: [{\n        name: \"container-1\",\n        image: \"registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/alpine:3.5\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nmy_name = f\"{name}-{default_integer['result']}\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=my_name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=my_name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    security_group_name=my_name,\n    vpc_id=default_network.id)\ndefault_scaling_group = alicloud.ess.ScalingGroup(\"default\",\n    min_size=0,\n    max_size=1,\n    scaling_group_name=my_name,\n    removal_policies=[\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitch_ids=[default_switch.id],\n    group_type=\"ECI\")\ndefault_eci_scaling_configuration = alicloud.ess.EciScalingConfiguration(\"default\",\n    scaling_group_id=default_scaling_group.id,\n    cpu=2,\n    memory=4,\n    security_group_id=default_security_group.id,\n    force_delete=True,\n    active=True,\n    container_group_name=\"container-group-1649839595174\",\n    containers=[{\n        \"name\": \"container-1\",\n        \"image\": \"registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/alpine:3.5\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var myName = $\"{name}-{defaultInteger.Result}\";\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = myName,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = myName,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = myName,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultScalingGroup = new AliCloud.Ess.ScalingGroup(\"default\", new()\n    {\n        MinSize = 0,\n        MaxSize = 1,\n        ScalingGroupName = myName,\n        RemovalPolicies = new[]\n        {\n            \"OldestInstance\",\n            \"NewestInstance\",\n        },\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        GroupType = \"ECI\",\n    });\n\n    var defaultEciScalingConfiguration = new AliCloud.Ess.EciScalingConfiguration(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        Cpu = 2,\n        Memory = 4,\n        SecurityGroupId = defaultSecurityGroup.Id,\n        ForceDelete = true,\n        Active = true,\n        ContainerGroupName = \"container-group-1649839595174\",\n        Containers = new[]\n        {\n            new AliCloud.Ess.Inputs.EciScalingConfigurationContainerArgs\n            {\n                Name = \"container-1\",\n                Image = \"registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/alpine:3.5\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyName := fmt.Sprintf(\"%v-%v\", name, defaultInteger.Result)\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(myName),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(myName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(myName),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingGroup, err := ess.NewScalingGroup(ctx, \"default\", \u0026ess.ScalingGroupArgs{\n\t\t\tMinSize:          pulumi.Int(0),\n\t\t\tMaxSize:          pulumi.Int(1),\n\t\t\tScalingGroupName: pulumi.String(myName),\n\t\t\tRemovalPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OldestInstance\"),\n\t\t\t\tpulumi.String(\"NewestInstance\"),\n\t\t\t},\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tGroupType: pulumi.String(\"ECI\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ess.NewEciScalingConfiguration(ctx, \"default\", \u0026ess.EciScalingConfigurationArgs{\n\t\t\tScalingGroupId:     defaultScalingGroup.ID(),\n\t\t\tCpu:                pulumi.Float64(2),\n\t\t\tMemory:             pulumi.Float64(4),\n\t\t\tSecurityGroupId:    defaultSecurityGroup.ID(),\n\t\t\tForceDelete:        pulumi.Bool(true),\n\t\t\tActive:             pulumi.Bool(true),\n\t\t\tContainerGroupName: pulumi.String(\"container-group-1649839595174\"),\n\t\t\tContainers: ess.EciScalingConfigurationContainerArray{\n\t\t\t\t\u0026ess.EciScalingConfigurationContainerArgs{\n\t\t\t\t\tName:  pulumi.String(\"container-1\"),\n\t\t\t\t\tImage: pulumi.String(\"registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/alpine:3.5\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingGroup;\nimport com.pulumi.alicloud.ess.ScalingGroupArgs;\nimport com.pulumi.alicloud.ess.EciScalingConfiguration;\nimport com.pulumi.alicloud.ess.EciScalingConfigurationArgs;\nimport com.pulumi.alicloud.ess.inputs.EciScalingConfigurationContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var myName = String.format(\"%s-%s\", name,defaultInteger.result());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(myName)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(myName)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(myName)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultScalingGroup = new ScalingGroup(\"defaultScalingGroup\", ScalingGroupArgs.builder()\n            .minSize(0)\n            .maxSize(1)\n            .scalingGroupName(myName)\n            .removalPolicies(            \n                \"OldestInstance\",\n                \"NewestInstance\")\n            .vswitchIds(defaultSwitch.id())\n            .groupType(\"ECI\")\n            .build());\n\n        var defaultEciScalingConfiguration = new EciScalingConfiguration(\"defaultEciScalingConfiguration\", EciScalingConfigurationArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .cpu(2.0)\n            .memory(4.0)\n            .securityGroupId(defaultSecurityGroup.id())\n            .forceDelete(true)\n            .active(true)\n            .containerGroupName(\"container-group-1649839595174\")\n            .containers(EciScalingConfigurationContainerArgs.builder()\n                .name(\"container-1\")\n                .image(\"registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/alpine:3.5\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${myName}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${myName}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      securityGroupName: ${myName}\n      vpcId: ${defaultNetwork.id}\n  defaultScalingGroup:\n    type: alicloud:ess:ScalingGroup\n    name: default\n    properties:\n      minSize: 0\n      maxSize: 1\n      scalingGroupName: ${myName}\n      removalPolicies:\n        - OldestInstance\n        - NewestInstance\n      vswitchIds:\n        - ${defaultSwitch.id}\n      groupType: ECI\n  defaultEciScalingConfiguration:\n    type: alicloud:ess:EciScalingConfiguration\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingGroup.id}\n      cpu: 2\n      memory: 4\n      securityGroupId: ${defaultSecurityGroup.id}\n      forceDelete: true\n      active: true\n      containerGroupName: container-group-1649839595174\n      containers:\n        - name: container-1\n          image: registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/alpine:3.5\nvariables:\n  myName: ${name}-${defaultInteger.result}\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESS eci scaling configuration can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ess/eciScalingConfiguration:EciScalingConfiguration example asc-abc123456\n```\n\n","properties":{"acrRegistryInfos":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationAcrRegistryInfo:EciScalingConfigurationAcrRegistryInfo"},"description":"Information about the Container Registry Enterprise Edition instance. See \u003cspan pulumi-lang-nodejs=\"`acrRegistryInfos`\" pulumi-lang-dotnet=\"`AcrRegistryInfos`\" pulumi-lang-go=\"`acrRegistryInfos`\" pulumi-lang-python=\"`acr_registry_infos`\" pulumi-lang-yaml=\"`acrRegistryInfos`\" pulumi-lang-java=\"`acrRegistryInfos`\"\u003e`acr_registry_infos`\u003c/span\u003e below for details.\n"},"active":{"type":"boolean","description":"Whether active current eci scaling configuration in the specified scaling group. Note that only\none configuration can be active. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"activeDeadlineSeconds":{"type":"integer","description":"The duration in seconds relative to the startTime that the job may be active before the system tries to terminate it.\n"},"autoCreateEip":{"type":"boolean","description":"Whether create eip automatically.\n"},"autoMatchImageCache":{"type":"boolean","description":"Whether to automatically match the image cache.\n"},"containerGroupName":{"type":"string","description":"The name series of the elastic container instances created from the scaling configuration. If you want to use an ordered instance name, specify the value for this parameter in the following format: name_prefix(AUTO_INCREMENT)[begin_number,bits]name_suffix.\nname_prefix: the prefix of the hostname.\n(AUTO_INCREMENT): the sort method. This is a static field.\nbegin_number: the start value of the sequential values. Valid values: 0 to 999999.\nbits: the number of digits in sequential values. Valid values: 1 to 6. If the number of digits in the specified\u003cspan pulumi-lang-nodejs=\" beginNumber \" pulumi-lang-dotnet=\" BeginNumber \" pulumi-lang-go=\" beginNumber \" pulumi-lang-python=\" begin_number \" pulumi-lang-yaml=\" beginNumber \" pulumi-lang-java=\" beginNumber \"\u003e begin_number \u003c/span\u003evalue is greater than the value of the bits field, the bits field is automatically set to 6.\nname_suffix: the suffix of the hostname. This field is optional.\n"},"containers":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationContainer:EciScalingConfigurationContainer"},"description":"The list of containers. See \u003cspan pulumi-lang-nodejs=\"`containers`\" pulumi-lang-dotnet=\"`Containers`\" pulumi-lang-go=\"`containers`\" pulumi-lang-python=\"`containers`\" pulumi-lang-yaml=\"`containers`\" pulumi-lang-java=\"`containers`\"\u003e`containers`\u003c/span\u003e below for details.\n"},"costOptimization":{"type":"boolean","description":"Indicates whether the Cost Optimization feature is enabled. Valid values: true,false.\n"},"cpu":{"type":"number","description":"The amount of CPU resources allocated to the container group.\n"},"cpuOptionsCore":{"type":"integer","description":"The number of physical CPU cores. You can specify this parameter for only specific instance types.\n"},"cpuOptionsThreadsPerCore":{"type":"integer","description":"The number of threads per core. You can specify this parameter for only specific instance types. If you set this parameter to 1, Hyper-Threading is disabled.\n"},"description":{"type":"string","description":"The description of data disk N. Valid values of N: 1 to 16. The description must be 2 to\n256 characters in length and cannot start with http:// or https://.\n"},"dnsConfigOptions":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationDnsConfigOption:EciScalingConfigurationDnsConfigOption"},"description":"The options. Each option is a name-value pair. The value in the name-value pair is optional.   See \u003cspan pulumi-lang-nodejs=\"`dnsConfigOptions`\" pulumi-lang-dotnet=\"`DnsConfigOptions`\" pulumi-lang-go=\"`dnsConfigOptions`\" pulumi-lang-python=\"`dns_config_options`\" pulumi-lang-yaml=\"`dnsConfigOptions`\" pulumi-lang-java=\"`dnsConfigOptions`\"\u003e`dns_config_options`\u003c/span\u003e below for\ndetails.\n"},"dnsPolicy":{"type":"string","description":"dns policy of contain group.\n"},"egressBandwidth":{"type":"integer","description":"egress bandwidth.\n"},"eipBandwidth":{"type":"integer","description":"Eip bandwidth.\n"},"enableSls":{"type":"boolean","description":"Enable sls log service.\n"},"ephemeralStorage":{"type":"integer","description":"The size of ephemeral storage.\n"},"forceDelete":{"type":"boolean","description":"The eci scaling configuration will be deleted forcibly with deleting its scaling group.\nDefault to false.\n"},"hostAliases":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationHostAlias:EciScalingConfigurationHostAlias"},"description":"HostAliases. See \u003cspan pulumi-lang-nodejs=\"`hostAliases`\" pulumi-lang-dotnet=\"`HostAliases`\" pulumi-lang-go=\"`hostAliases`\" pulumi-lang-python=\"`host_aliases`\" pulumi-lang-yaml=\"`hostAliases`\" pulumi-lang-java=\"`hostAliases`\"\u003e`host_aliases`\u003c/span\u003e below.\n"},"hostName":{"type":"string","description":"Hostname of an ECI instance.\n"},"imageRegistryCredentials":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationImageRegistryCredential:EciScalingConfigurationImageRegistryCredential"},"description":"The image registry credential.   See \u003cspan pulumi-lang-nodejs=\"`imageRegistryCredentials`\" pulumi-lang-dotnet=\"`ImageRegistryCredentials`\" pulumi-lang-go=\"`imageRegistryCredentials`\" pulumi-lang-python=\"`image_registry_credentials`\" pulumi-lang-yaml=\"`imageRegistryCredentials`\" pulumi-lang-java=\"`imageRegistryCredentials`\"\u003e`image_registry_credentials`\u003c/span\u003e below for\ndetails.\n"},"imageSnapshotId":{"type":"string","description":"The ID of image cache.\n"},"ingressBandwidth":{"type":"integer","description":"Ingress bandwidth.\n"},"initContainers":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationInitContainer:EciScalingConfigurationInitContainer"},"description":"The list of initContainers. See \u003cspan pulumi-lang-nodejs=\"`initContainers`\" pulumi-lang-dotnet=\"`InitContainers`\" pulumi-lang-go=\"`initContainers`\" pulumi-lang-python=\"`init_containers`\" pulumi-lang-yaml=\"`initContainers`\" pulumi-lang-java=\"`initContainers`\"\u003e`init_containers`\u003c/span\u003e below for details.\n"},"instanceFamilyLevel":{"type":"string","description":"The level of the instance family, which is used to filter instance types that meet the specified criteria. This parameter takes effect only if you set CostOptimization to true. Valid values: EntryLevel, EnterpriseLevel, CreditEntryLevel.\n"},"instanceTypes":{"type":"array","items":{"type":"string"},"description":"The specified ECS instance types. You can specify up to five ECS instance types.\n"},"ipv6AddressCount":{"type":"integer","description":"Number of IPv6 addresses.\n"},"loadBalancerWeight":{"type":"integer","description":"The weight of an ECI instance attached to the Server Group.\n"},"memory":{"type":"number","description":"The amount of memory resources allocated to the container group.\n"},"override":{"type":"boolean","description":"Specifies whether to overwrite the data. Valid values: true, false.\n"},"ramRoleName":{"type":"string","description":"The RAM role that the container group assumes. ECI and ECS share the same RAM role.\n"},"resourceGroupId":{"type":"string","description":"ID of resource group.\n"},"restartPolicy":{"type":"string","description":"The restart policy of the container group. Default to `Always`.\n"},"scalingConfigurationName":{"type":"string","description":"Name shown for the scheduled task. which must contain 2-64 characters (\nEnglish or Chinese), starting with numbers, English letters or Chinese characters, and can contain number,\nunderscores `_`, hypens `-`, and decimal point `.`. If this parameter value is not specified, the default value is\nEciScalingConfigurationId.\n"},"scalingGroupId":{"type":"string","description":"ID of the scaling group of a eci scaling configuration.\n"},"securityContextSysctls":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationSecurityContextSysctl:EciScalingConfigurationSecurityContextSysctl"},"description":"The system information about the security context in which the elastic container instance is run.   See \u003cspan pulumi-lang-nodejs=\"`securityContextSysctls`\" pulumi-lang-dotnet=\"`SecurityContextSysctls`\" pulumi-lang-go=\"`securityContextSysctls`\" pulumi-lang-python=\"`security_context_sysctls`\" pulumi-lang-yaml=\"`securityContextSysctls`\" pulumi-lang-java=\"`securityContextSysctls`\"\u003e`security_context_sysctls`\u003c/span\u003e below for\ndetails.\n"},"securityGroupId":{"type":"string","description":"ID of the security group used to create new instance. It is conflict\nwith \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e.\n"},"spotPriceLimit":{"type":"number","description":"The maximum price hourly for spot instance.\n"},"spotStrategy":{"type":"string","description":"The spot strategy for a Pay-As-You-Go instance. Valid values: `NoSpot`, `SpotAsPriceGo`\n, `SpotWithPriceLimit`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource. It will be applied for ECI instances finally.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"http://\", or \"https://\". It cannot\nbe a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"http://\", or \"https://\" It can be\na null string.\n"},"terminationGracePeriodSeconds":{"type":"integer","description":"The program's buffering time before closing.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationVolume:EciScalingConfigurationVolume"},"description":"The list of volumes. See \u003cspan pulumi-lang-nodejs=\"`volumes`\" pulumi-lang-dotnet=\"`Volumes`\" pulumi-lang-go=\"`volumes`\" pulumi-lang-python=\"`volumes`\" pulumi-lang-yaml=\"`volumes`\" pulumi-lang-java=\"`volumes`\"\u003e`volumes`\u003c/span\u003e below for details.\n"}},"required":["scalingConfigurationName","scalingGroupId"],"inputProperties":{"acrRegistryInfos":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationAcrRegistryInfo:EciScalingConfigurationAcrRegistryInfo"},"description":"Information about the Container Registry Enterprise Edition instance. See \u003cspan pulumi-lang-nodejs=\"`acrRegistryInfos`\" pulumi-lang-dotnet=\"`AcrRegistryInfos`\" pulumi-lang-go=\"`acrRegistryInfos`\" pulumi-lang-python=\"`acr_registry_infos`\" pulumi-lang-yaml=\"`acrRegistryInfos`\" pulumi-lang-java=\"`acrRegistryInfos`\"\u003e`acr_registry_infos`\u003c/span\u003e below for details.\n"},"active":{"type":"boolean","description":"Whether active current eci scaling configuration in the specified scaling group. Note that only\none configuration can be active. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"activeDeadlineSeconds":{"type":"integer","description":"The duration in seconds relative to the startTime that the job may be active before the system tries to terminate it.\n"},"autoCreateEip":{"type":"boolean","description":"Whether create eip automatically.\n"},"autoMatchImageCache":{"type":"boolean","description":"Whether to automatically match the image cache.\n"},"containerGroupName":{"type":"string","description":"The name series of the elastic container instances created from the scaling configuration. If you want to use an ordered instance name, specify the value for this parameter in the following format: name_prefix(AUTO_INCREMENT)[begin_number,bits]name_suffix.\nname_prefix: the prefix of the hostname.\n(AUTO_INCREMENT): the sort method. This is a static field.\nbegin_number: the start value of the sequential values. Valid values: 0 to 999999.\nbits: the number of digits in sequential values. Valid values: 1 to 6. If the number of digits in the specified\u003cspan pulumi-lang-nodejs=\" beginNumber \" pulumi-lang-dotnet=\" BeginNumber \" pulumi-lang-go=\" beginNumber \" pulumi-lang-python=\" begin_number \" pulumi-lang-yaml=\" beginNumber \" pulumi-lang-java=\" beginNumber \"\u003e begin_number \u003c/span\u003evalue is greater than the value of the bits field, the bits field is automatically set to 6.\nname_suffix: the suffix of the hostname. This field is optional.\n"},"containers":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationContainer:EciScalingConfigurationContainer"},"description":"The list of containers. See \u003cspan pulumi-lang-nodejs=\"`containers`\" pulumi-lang-dotnet=\"`Containers`\" pulumi-lang-go=\"`containers`\" pulumi-lang-python=\"`containers`\" pulumi-lang-yaml=\"`containers`\" pulumi-lang-java=\"`containers`\"\u003e`containers`\u003c/span\u003e below for details.\n"},"costOptimization":{"type":"boolean","description":"Indicates whether the Cost Optimization feature is enabled. Valid values: true,false.\n"},"cpu":{"type":"number","description":"The amount of CPU resources allocated to the container group.\n"},"cpuOptionsCore":{"type":"integer","description":"The number of physical CPU cores. You can specify this parameter for only specific instance types.\n"},"cpuOptionsThreadsPerCore":{"type":"integer","description":"The number of threads per core. You can specify this parameter for only specific instance types. If you set this parameter to 1, Hyper-Threading is disabled.\n"},"description":{"type":"string","description":"The description of data disk N. Valid values of N: 1 to 16. The description must be 2 to\n256 characters in length and cannot start with http:// or https://.\n"},"dnsConfigOptions":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationDnsConfigOption:EciScalingConfigurationDnsConfigOption"},"description":"The options. Each option is a name-value pair. The value in the name-value pair is optional.   See \u003cspan pulumi-lang-nodejs=\"`dnsConfigOptions`\" pulumi-lang-dotnet=\"`DnsConfigOptions`\" pulumi-lang-go=\"`dnsConfigOptions`\" pulumi-lang-python=\"`dns_config_options`\" pulumi-lang-yaml=\"`dnsConfigOptions`\" pulumi-lang-java=\"`dnsConfigOptions`\"\u003e`dns_config_options`\u003c/span\u003e below for\ndetails.\n"},"dnsPolicy":{"type":"string","description":"dns policy of contain group.\n"},"egressBandwidth":{"type":"integer","description":"egress bandwidth.\n"},"eipBandwidth":{"type":"integer","description":"Eip bandwidth.\n"},"enableSls":{"type":"boolean","description":"Enable sls log service.\n"},"ephemeralStorage":{"type":"integer","description":"The size of ephemeral storage.\n"},"forceDelete":{"type":"boolean","description":"The eci scaling configuration will be deleted forcibly with deleting its scaling group.\nDefault to false.\n"},"hostAliases":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationHostAlias:EciScalingConfigurationHostAlias"},"description":"HostAliases. See \u003cspan pulumi-lang-nodejs=\"`hostAliases`\" pulumi-lang-dotnet=\"`HostAliases`\" pulumi-lang-go=\"`hostAliases`\" pulumi-lang-python=\"`host_aliases`\" pulumi-lang-yaml=\"`hostAliases`\" pulumi-lang-java=\"`hostAliases`\"\u003e`host_aliases`\u003c/span\u003e below.\n"},"hostName":{"type":"string","description":"Hostname of an ECI instance.\n"},"imageRegistryCredentials":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationImageRegistryCredential:EciScalingConfigurationImageRegistryCredential"},"description":"The image registry credential.   See \u003cspan pulumi-lang-nodejs=\"`imageRegistryCredentials`\" pulumi-lang-dotnet=\"`ImageRegistryCredentials`\" pulumi-lang-go=\"`imageRegistryCredentials`\" pulumi-lang-python=\"`image_registry_credentials`\" pulumi-lang-yaml=\"`imageRegistryCredentials`\" pulumi-lang-java=\"`imageRegistryCredentials`\"\u003e`image_registry_credentials`\u003c/span\u003e below for\ndetails.\n"},"imageSnapshotId":{"type":"string","description":"The ID of image cache.\n"},"ingressBandwidth":{"type":"integer","description":"Ingress bandwidth.\n"},"initContainers":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationInitContainer:EciScalingConfigurationInitContainer"},"description":"The list of initContainers. See \u003cspan pulumi-lang-nodejs=\"`initContainers`\" pulumi-lang-dotnet=\"`InitContainers`\" pulumi-lang-go=\"`initContainers`\" pulumi-lang-python=\"`init_containers`\" pulumi-lang-yaml=\"`initContainers`\" pulumi-lang-java=\"`initContainers`\"\u003e`init_containers`\u003c/span\u003e below for details.\n"},"instanceFamilyLevel":{"type":"string","description":"The level of the instance family, which is used to filter instance types that meet the specified criteria. This parameter takes effect only if you set CostOptimization to true. Valid values: EntryLevel, EnterpriseLevel, CreditEntryLevel.\n"},"instanceTypes":{"type":"array","items":{"type":"string"},"description":"The specified ECS instance types. You can specify up to five ECS instance types.\n"},"ipv6AddressCount":{"type":"integer","description":"Number of IPv6 addresses.\n"},"loadBalancerWeight":{"type":"integer","description":"The weight of an ECI instance attached to the Server Group.\n"},"memory":{"type":"number","description":"The amount of memory resources allocated to the container group.\n"},"override":{"type":"boolean","description":"Specifies whether to overwrite the data. Valid values: true, false.\n"},"ramRoleName":{"type":"string","description":"The RAM role that the container group assumes. ECI and ECS share the same RAM role.\n"},"resourceGroupId":{"type":"string","description":"ID of resource group.\n"},"restartPolicy":{"type":"string","description":"The restart policy of the container group. Default to `Always`.\n"},"scalingConfigurationName":{"type":"string","description":"Name shown for the scheduled task. which must contain 2-64 characters (\nEnglish or Chinese), starting with numbers, English letters or Chinese characters, and can contain number,\nunderscores `_`, hypens `-`, and decimal point `.`. If this parameter value is not specified, the default value is\nEciScalingConfigurationId.\n"},"scalingGroupId":{"type":"string","description":"ID of the scaling group of a eci scaling configuration.\n","willReplaceOnChanges":true},"securityContextSysctls":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationSecurityContextSysctl:EciScalingConfigurationSecurityContextSysctl"},"description":"The system information about the security context in which the elastic container instance is run.   See \u003cspan pulumi-lang-nodejs=\"`securityContextSysctls`\" pulumi-lang-dotnet=\"`SecurityContextSysctls`\" pulumi-lang-go=\"`securityContextSysctls`\" pulumi-lang-python=\"`security_context_sysctls`\" pulumi-lang-yaml=\"`securityContextSysctls`\" pulumi-lang-java=\"`securityContextSysctls`\"\u003e`security_context_sysctls`\u003c/span\u003e below for\ndetails.\n"},"securityGroupId":{"type":"string","description":"ID of the security group used to create new instance. It is conflict\nwith \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e.\n"},"spotPriceLimit":{"type":"number","description":"The maximum price hourly for spot instance.\n"},"spotStrategy":{"type":"string","description":"The spot strategy for a Pay-As-You-Go instance. Valid values: `NoSpot`, `SpotAsPriceGo`\n, `SpotWithPriceLimit`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource. It will be applied for ECI instances finally.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"http://\", or \"https://\". It cannot\nbe a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"http://\", or \"https://\" It can be\na null string.\n"},"terminationGracePeriodSeconds":{"type":"integer","description":"The program's buffering time before closing.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationVolume:EciScalingConfigurationVolume"},"description":"The list of volumes. See \u003cspan pulumi-lang-nodejs=\"`volumes`\" pulumi-lang-dotnet=\"`Volumes`\" pulumi-lang-go=\"`volumes`\" pulumi-lang-python=\"`volumes`\" pulumi-lang-yaml=\"`volumes`\" pulumi-lang-java=\"`volumes`\"\u003e`volumes`\u003c/span\u003e below for details.\n"}},"requiredInputs":["scalingGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering EciScalingConfiguration resources.\n","properties":{"acrRegistryInfos":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationAcrRegistryInfo:EciScalingConfigurationAcrRegistryInfo"},"description":"Information about the Container Registry Enterprise Edition instance. See \u003cspan pulumi-lang-nodejs=\"`acrRegistryInfos`\" pulumi-lang-dotnet=\"`AcrRegistryInfos`\" pulumi-lang-go=\"`acrRegistryInfos`\" pulumi-lang-python=\"`acr_registry_infos`\" pulumi-lang-yaml=\"`acrRegistryInfos`\" pulumi-lang-java=\"`acrRegistryInfos`\"\u003e`acr_registry_infos`\u003c/span\u003e below for details.\n"},"active":{"type":"boolean","description":"Whether active current eci scaling configuration in the specified scaling group. Note that only\none configuration can be active. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"activeDeadlineSeconds":{"type":"integer","description":"The duration in seconds relative to the startTime that the job may be active before the system tries to terminate it.\n"},"autoCreateEip":{"type":"boolean","description":"Whether create eip automatically.\n"},"autoMatchImageCache":{"type":"boolean","description":"Whether to automatically match the image cache.\n"},"containerGroupName":{"type":"string","description":"The name series of the elastic container instances created from the scaling configuration. If you want to use an ordered instance name, specify the value for this parameter in the following format: name_prefix(AUTO_INCREMENT)[begin_number,bits]name_suffix.\nname_prefix: the prefix of the hostname.\n(AUTO_INCREMENT): the sort method. This is a static field.\nbegin_number: the start value of the sequential values. Valid values: 0 to 999999.\nbits: the number of digits in sequential values. Valid values: 1 to 6. If the number of digits in the specified\u003cspan pulumi-lang-nodejs=\" beginNumber \" pulumi-lang-dotnet=\" BeginNumber \" pulumi-lang-go=\" beginNumber \" pulumi-lang-python=\" begin_number \" pulumi-lang-yaml=\" beginNumber \" pulumi-lang-java=\" beginNumber \"\u003e begin_number \u003c/span\u003evalue is greater than the value of the bits field, the bits field is automatically set to 6.\nname_suffix: the suffix of the hostname. This field is optional.\n"},"containers":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationContainer:EciScalingConfigurationContainer"},"description":"The list of containers. See \u003cspan pulumi-lang-nodejs=\"`containers`\" pulumi-lang-dotnet=\"`Containers`\" pulumi-lang-go=\"`containers`\" pulumi-lang-python=\"`containers`\" pulumi-lang-yaml=\"`containers`\" pulumi-lang-java=\"`containers`\"\u003e`containers`\u003c/span\u003e below for details.\n"},"costOptimization":{"type":"boolean","description":"Indicates whether the Cost Optimization feature is enabled. Valid values: true,false.\n"},"cpu":{"type":"number","description":"The amount of CPU resources allocated to the container group.\n"},"cpuOptionsCore":{"type":"integer","description":"The number of physical CPU cores. You can specify this parameter for only specific instance types.\n"},"cpuOptionsThreadsPerCore":{"type":"integer","description":"The number of threads per core. You can specify this parameter for only specific instance types. If you set this parameter to 1, Hyper-Threading is disabled.\n"},"description":{"type":"string","description":"The description of data disk N. Valid values of N: 1 to 16. The description must be 2 to\n256 characters in length and cannot start with http:// or https://.\n"},"dnsConfigOptions":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationDnsConfigOption:EciScalingConfigurationDnsConfigOption"},"description":"The options. Each option is a name-value pair. The value in the name-value pair is optional.   See \u003cspan pulumi-lang-nodejs=\"`dnsConfigOptions`\" pulumi-lang-dotnet=\"`DnsConfigOptions`\" pulumi-lang-go=\"`dnsConfigOptions`\" pulumi-lang-python=\"`dns_config_options`\" pulumi-lang-yaml=\"`dnsConfigOptions`\" pulumi-lang-java=\"`dnsConfigOptions`\"\u003e`dns_config_options`\u003c/span\u003e below for\ndetails.\n"},"dnsPolicy":{"type":"string","description":"dns policy of contain group.\n"},"egressBandwidth":{"type":"integer","description":"egress bandwidth.\n"},"eipBandwidth":{"type":"integer","description":"Eip bandwidth.\n"},"enableSls":{"type":"boolean","description":"Enable sls log service.\n"},"ephemeralStorage":{"type":"integer","description":"The size of ephemeral storage.\n"},"forceDelete":{"type":"boolean","description":"The eci scaling configuration will be deleted forcibly with deleting its scaling group.\nDefault to false.\n"},"hostAliases":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationHostAlias:EciScalingConfigurationHostAlias"},"description":"HostAliases. See \u003cspan pulumi-lang-nodejs=\"`hostAliases`\" pulumi-lang-dotnet=\"`HostAliases`\" pulumi-lang-go=\"`hostAliases`\" pulumi-lang-python=\"`host_aliases`\" pulumi-lang-yaml=\"`hostAliases`\" pulumi-lang-java=\"`hostAliases`\"\u003e`host_aliases`\u003c/span\u003e below.\n"},"hostName":{"type":"string","description":"Hostname of an ECI instance.\n"},"imageRegistryCredentials":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationImageRegistryCredential:EciScalingConfigurationImageRegistryCredential"},"description":"The image registry credential.   See \u003cspan pulumi-lang-nodejs=\"`imageRegistryCredentials`\" pulumi-lang-dotnet=\"`ImageRegistryCredentials`\" pulumi-lang-go=\"`imageRegistryCredentials`\" pulumi-lang-python=\"`image_registry_credentials`\" pulumi-lang-yaml=\"`imageRegistryCredentials`\" pulumi-lang-java=\"`imageRegistryCredentials`\"\u003e`image_registry_credentials`\u003c/span\u003e below for\ndetails.\n"},"imageSnapshotId":{"type":"string","description":"The ID of image cache.\n"},"ingressBandwidth":{"type":"integer","description":"Ingress bandwidth.\n"},"initContainers":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationInitContainer:EciScalingConfigurationInitContainer"},"description":"The list of initContainers. See \u003cspan pulumi-lang-nodejs=\"`initContainers`\" pulumi-lang-dotnet=\"`InitContainers`\" pulumi-lang-go=\"`initContainers`\" pulumi-lang-python=\"`init_containers`\" pulumi-lang-yaml=\"`initContainers`\" pulumi-lang-java=\"`initContainers`\"\u003e`init_containers`\u003c/span\u003e below for details.\n"},"instanceFamilyLevel":{"type":"string","description":"The level of the instance family, which is used to filter instance types that meet the specified criteria. This parameter takes effect only if you set CostOptimization to true. Valid values: EntryLevel, EnterpriseLevel, CreditEntryLevel.\n"},"instanceTypes":{"type":"array","items":{"type":"string"},"description":"The specified ECS instance types. You can specify up to five ECS instance types.\n"},"ipv6AddressCount":{"type":"integer","description":"Number of IPv6 addresses.\n"},"loadBalancerWeight":{"type":"integer","description":"The weight of an ECI instance attached to the Server Group.\n"},"memory":{"type":"number","description":"The amount of memory resources allocated to the container group.\n"},"override":{"type":"boolean","description":"Specifies whether to overwrite the data. Valid values: true, false.\n"},"ramRoleName":{"type":"string","description":"The RAM role that the container group assumes. ECI and ECS share the same RAM role.\n"},"resourceGroupId":{"type":"string","description":"ID of resource group.\n"},"restartPolicy":{"type":"string","description":"The restart policy of the container group. Default to `Always`.\n"},"scalingConfigurationName":{"type":"string","description":"Name shown for the scheduled task. which must contain 2-64 characters (\nEnglish or Chinese), starting with numbers, English letters or Chinese characters, and can contain number,\nunderscores `_`, hypens `-`, and decimal point `.`. If this parameter value is not specified, the default value is\nEciScalingConfigurationId.\n"},"scalingGroupId":{"type":"string","description":"ID of the scaling group of a eci scaling configuration.\n","willReplaceOnChanges":true},"securityContextSysctls":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationSecurityContextSysctl:EciScalingConfigurationSecurityContextSysctl"},"description":"The system information about the security context in which the elastic container instance is run.   See \u003cspan pulumi-lang-nodejs=\"`securityContextSysctls`\" pulumi-lang-dotnet=\"`SecurityContextSysctls`\" pulumi-lang-go=\"`securityContextSysctls`\" pulumi-lang-python=\"`security_context_sysctls`\" pulumi-lang-yaml=\"`securityContextSysctls`\" pulumi-lang-java=\"`securityContextSysctls`\"\u003e`security_context_sysctls`\u003c/span\u003e below for\ndetails.\n"},"securityGroupId":{"type":"string","description":"ID of the security group used to create new instance. It is conflict\nwith \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e.\n"},"spotPriceLimit":{"type":"number","description":"The maximum price hourly for spot instance.\n"},"spotStrategy":{"type":"string","description":"The spot strategy for a Pay-As-You-Go instance. Valid values: `NoSpot`, `SpotAsPriceGo`\n, `SpotWithPriceLimit`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource. It will be applied for ECI instances finally.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"http://\", or \"https://\". It cannot\nbe a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"http://\", or \"https://\" It can be\na null string.\n"},"terminationGracePeriodSeconds":{"type":"integer","description":"The program's buffering time before closing.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/alicloud:ess/EciScalingConfigurationVolume:EciScalingConfigurationVolume"},"description":"The list of volumes. See \u003cspan pulumi-lang-nodejs=\"`volumes`\" pulumi-lang-dotnet=\"`Volumes`\" pulumi-lang-go=\"`volumes`\" pulumi-lang-python=\"`volumes`\" pulumi-lang-yaml=\"`volumes`\" pulumi-lang-java=\"`volumes`\"\u003e`volumes`\u003c/span\u003e below for details.\n"}},"type":"object"}},"alicloud:ess/instanceRefresh:InstanceRefresh":{"description":"Provides a ESS instance refresh resource.\n\nFor information about ess instance refresh, see [StartInstanceRefresh](https://www.alibabacloud.com/help/en/auto-scaling/developer-reference/api-startinstancerefresh).\n\n\u003e **NOTE:** Available since v1.261.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst myName = `${name}-${defaultInteger.result}`;\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: myName,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst default1 = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n}));\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: myName,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    securityGroupName: myName,\n    vpcId: defaultNetwork.id,\n});\nconst default1GetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubu\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst default2 = alicloud.ecs.getImages({\n    nameRegex: \"^aliyun\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultScalingGroup = new alicloud.ess.ScalingGroup(\"default\", {\n    minSize: 0,\n    maxSize: 10,\n    scalingGroupName: myName,\n    removalPolicies: [\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitchIds: [defaultSwitch.id],\n    desiredCapacity: 1,\n});\nconst defaultScalingConfiguration = new alicloud.ess.ScalingConfiguration(\"default\", {\n    scalingGroupId: defaultScalingGroup.id,\n    imageId: default1GetImages.then(default1GetImages =\u003e default1GetImages.images?.[0]?.id),\n    instanceType: default1.then(default1 =\u003e default1.instanceTypes?.[0]?.id),\n    securityGroupId: defaultSecurityGroup.id,\n    forceDelete: true,\n    active: true,\n    enable: true,\n});\nconst defaultInstanceRefresh = new alicloud.ess.InstanceRefresh(\"default\", {\n    scalingGroupId: defaultScalingConfiguration.scalingGroupId,\n    desiredConfigurationImageId: default2.then(default2 =\u003e default2.images?.[0]?.id),\n    minHealthyPercentage: 90,\n    maxHealthyPercentage: 150,\n    checkpointPauseTime: 60,\n    skipMatching: false,\n    checkpoints: [{\n        percentage: 100,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nmy_name = f\"{name}-{default_integer['result']}\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=my_name,\n    cidr_block=\"172.16.0.0/16\")\ndefault1 = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id)\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=my_name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    security_group_name=my_name,\n    vpc_id=default_network.id)\ndefault1_get_images = alicloud.ecs.get_images(name_regex=\"^ubu\",\n    most_recent=True,\n    owners=\"system\")\ndefault2 = alicloud.ecs.get_images(name_regex=\"^aliyun\",\n    most_recent=True,\n    owners=\"system\")\ndefault_scaling_group = alicloud.ess.ScalingGroup(\"default\",\n    min_size=0,\n    max_size=10,\n    scaling_group_name=my_name,\n    removal_policies=[\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitch_ids=[default_switch.id],\n    desired_capacity=1)\ndefault_scaling_configuration = alicloud.ess.ScalingConfiguration(\"default\",\n    scaling_group_id=default_scaling_group.id,\n    image_id=default1_get_images.images[0].id,\n    instance_type=default1.instance_types[0].id,\n    security_group_id=default_security_group.id,\n    force_delete=True,\n    active=True,\n    enable=True)\ndefault_instance_refresh = alicloud.ess.InstanceRefresh(\"default\",\n    scaling_group_id=default_scaling_configuration.scaling_group_id,\n    desired_configuration_image_id=default2.images[0].id,\n    min_healthy_percentage=90,\n    max_healthy_percentage=150,\n    checkpoint_pause_time=60,\n    skip_matching=False,\n    checkpoints=[{\n        \"percentage\": 100,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var myName = $\"{name}-{defaultInteger.Result}\";\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = myName,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var default1 = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = myName,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = myName,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var default1GetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubu\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var default2 = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^aliyun\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultScalingGroup = new AliCloud.Ess.ScalingGroup(\"default\", new()\n    {\n        MinSize = 0,\n        MaxSize = 10,\n        ScalingGroupName = myName,\n        RemovalPolicies = new[]\n        {\n            \"OldestInstance\",\n            \"NewestInstance\",\n        },\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        DesiredCapacity = 1,\n    });\n\n    var defaultScalingConfiguration = new AliCloud.Ess.ScalingConfiguration(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        ImageId = default1GetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = default1.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroupId = defaultSecurityGroup.Id,\n        ForceDelete = true,\n        Active = true,\n        Enable = true,\n    });\n\n    var defaultInstanceRefresh = new AliCloud.Ess.InstanceRefresh(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingConfiguration.ScalingGroupId,\n        DesiredConfigurationImageId = default2.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        MinHealthyPercentage = 90,\n        MaxHealthyPercentage = 150,\n        CheckpointPauseTime = 60,\n        SkipMatching = false,\n        Checkpoints = new[]\n        {\n            new AliCloud.Ess.Inputs.InstanceRefreshCheckpointArgs\n            {\n                Percentage = 100,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyName := fmt.Sprintf(\"%v-%v\", name, defaultInteger.Result)\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(myName),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(myName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(myName),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1GetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubu\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault2, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^aliyun\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingGroup, err := ess.NewScalingGroup(ctx, \"default\", \u0026ess.ScalingGroupArgs{\n\t\t\tMinSize:          pulumi.Int(0),\n\t\t\tMaxSize:          pulumi.Int(10),\n\t\t\tScalingGroupName: pulumi.String(myName),\n\t\t\tRemovalPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OldestInstance\"),\n\t\t\t\tpulumi.String(\"NewestInstance\"),\n\t\t\t},\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tDesiredCapacity: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingConfiguration, err := ess.NewScalingConfiguration(ctx, \"default\", \u0026ess.ScalingConfigurationArgs{\n\t\t\tScalingGroupId:  defaultScalingGroup.ID(),\n\t\t\tImageId:         pulumi.String(default1GetImages.Images[0].Id),\n\t\t\tInstanceType:    pulumi.String(default1.InstanceTypes[0].Id),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tForceDelete:     pulumi.Bool(true),\n\t\t\tActive:          pulumi.Bool(true),\n\t\t\tEnable:          pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ess.NewInstanceRefresh(ctx, \"default\", \u0026ess.InstanceRefreshArgs{\n\t\t\tScalingGroupId:              defaultScalingConfiguration.ScalingGroupId,\n\t\t\tDesiredConfigurationImageId: pulumi.String(default2.Images[0].Id),\n\t\t\tMinHealthyPercentage:        pulumi.Int(90),\n\t\t\tMaxHealthyPercentage:        pulumi.Int(150),\n\t\t\tCheckpointPauseTime:         pulumi.Int(60),\n\t\t\tSkipMatching:                pulumi.Bool(false),\n\t\t\tCheckpoints: ess.InstanceRefreshCheckpointArray{\n\t\t\t\t\u0026ess.InstanceRefreshCheckpointArgs{\n\t\t\t\t\tPercentage: pulumi.Int(100),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ess.ScalingGroup;\nimport com.pulumi.alicloud.ess.ScalingGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingConfiguration;\nimport com.pulumi.alicloud.ess.ScalingConfigurationArgs;\nimport com.pulumi.alicloud.ess.InstanceRefresh;\nimport com.pulumi.alicloud.ess.InstanceRefreshArgs;\nimport com.pulumi.alicloud.ess.inputs.InstanceRefreshCheckpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var myName = String.format(\"%s-%s\", name,defaultInteger.result());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(myName)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        final var default1 = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(myName)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(myName)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        final var default1GetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubu\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var default2 = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^aliyun\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultScalingGroup = new ScalingGroup(\"defaultScalingGroup\", ScalingGroupArgs.builder()\n            .minSize(0)\n            .maxSize(10)\n            .scalingGroupName(myName)\n            .removalPolicies(            \n                \"OldestInstance\",\n                \"NewestInstance\")\n            .vswitchIds(defaultSwitch.id())\n            .desiredCapacity(1)\n            .build());\n\n        var defaultScalingConfiguration = new ScalingConfiguration(\"defaultScalingConfiguration\", ScalingConfigurationArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .imageId(default1GetImages.images()[0].id())\n            .instanceType(default1.instanceTypes()[0].id())\n            .securityGroupId(defaultSecurityGroup.id())\n            .forceDelete(true)\n            .active(true)\n            .enable(true)\n            .build());\n\n        var defaultInstanceRefresh = new InstanceRefresh(\"defaultInstanceRefresh\", InstanceRefreshArgs.builder()\n            .scalingGroupId(defaultScalingConfiguration.scalingGroupId())\n            .desiredConfigurationImageId(default2.images()[0].id())\n            .minHealthyPercentage(90)\n            .maxHealthyPercentage(150)\n            .checkpointPauseTime(60)\n            .skipMatching(false)\n            .checkpoints(InstanceRefreshCheckpointArgs.builder()\n                .percentage(100)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${myName}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${myName}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      securityGroupName: ${myName}\n      vpcId: ${defaultNetwork.id}\n  defaultScalingGroup:\n    type: alicloud:ess:ScalingGroup\n    name: default\n    properties:\n      minSize: 0\n      maxSize: 10\n      scalingGroupName: ${myName}\n      removalPolicies:\n        - OldestInstance\n        - NewestInstance\n      vswitchIds:\n        - ${defaultSwitch.id}\n      desiredCapacity: 1\n  defaultScalingConfiguration:\n    type: alicloud:ess:ScalingConfiguration\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingGroup.id}\n      imageId: ${default1GetImages.images[0].id}\n      instanceType: ${default1.instanceTypes[0].id}\n      securityGroupId: ${defaultSecurityGroup.id}\n      forceDelete: true\n      active: true\n      enable: true\n  defaultInstanceRefresh:\n    type: alicloud:ess:InstanceRefresh\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingConfiguration.scalingGroupId}\n      desiredConfigurationImageId: ${default2.images[0].id}\n      minHealthyPercentage: 90\n      maxHealthyPercentage: 150\n      checkpointPauseTime: 60\n      skipMatching: false\n      checkpoints:\n        - percentage: 100\nvariables:\n  myName: ${name}-${defaultInteger.result}\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  default1:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n  default1GetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubu\n        mostRecent: true\n        owners: system\n  default2:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^aliyun\n        mostRecent: true\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.ess.InstanceRefresh`\" pulumi-lang-dotnet=\"`alicloud.ess.InstanceRefresh`\" pulumi-lang-go=\"`ess.InstanceRefresh`\" pulumi-lang-python=\"`ess.InstanceRefresh`\" pulumi-lang-yaml=\"`alicloud.ess.InstanceRefresh`\" pulumi-lang-java=\"`alicloud.ess.InstanceRefresh`\"\u003e`alicloud.ess.InstanceRefresh`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.ess.InstanceRefresh`\" pulumi-lang-dotnet=\"`alicloud.ess.InstanceRefresh`\" pulumi-lang-go=\"`ess.InstanceRefresh`\" pulumi-lang-python=\"`ess.InstanceRefresh`\" pulumi-lang-yaml=\"`alicloud.ess.InstanceRefresh`\" pulumi-lang-java=\"`alicloud.ess.InstanceRefresh`\"\u003e`alicloud.ess.InstanceRefresh`\u003c/span\u003e resource allows you to manage  `status = \"RollbackInProgress\"`  instance refresh, but Terraform cannot destroy it.\nDeleting will remove it from your state file and management, but will not destroy the Instance Refresh.\nYou can resume managing the instance refresh via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESS instance refresh can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ess/instanceRefresh:InstanceRefresh example ir-abc123456\n```\n\n","properties":{"checkpointPauseTime":{"type":"integer","description":"The duration of the pause when the task reaches a checkpoint. Unit: minutes.\n"},"checkpoints":{"type":"array","items":{"$ref":"#/types/alicloud:ess/InstanceRefreshCheckpoint:InstanceRefreshCheckpoint"},"description":"The checkpoints for the refresh task. The task automatically pauses for the duration specified by CheckpointPauseTime when the percentage of new instances reaches a specified value. See \u003cspan pulumi-lang-nodejs=\"`checkpoints`\" pulumi-lang-dotnet=\"`Checkpoints`\" pulumi-lang-go=\"`checkpoints`\" pulumi-lang-python=\"`checkpoints`\" pulumi-lang-yaml=\"`checkpoints`\" pulumi-lang-java=\"`checkpoints`\"\u003e`checkpoints`\u003c/span\u003e below for details.\n"},"desiredConfigurationContainers":{"type":"array","items":{"$ref":"#/types/alicloud:ess/InstanceRefreshDesiredConfigurationContainer:InstanceRefreshDesiredConfigurationContainer"},"description":"The list of containers in the instance. See \u003cspan pulumi-lang-nodejs=\"`desiredConfigurationContainers`\" pulumi-lang-dotnet=\"`DesiredConfigurationContainers`\" pulumi-lang-go=\"`desiredConfigurationContainers`\" pulumi-lang-python=\"`desired_configuration_containers`\" pulumi-lang-yaml=\"`desiredConfigurationContainers`\" pulumi-lang-java=\"`desiredConfigurationContainers`\"\u003e`desired_configuration_containers`\u003c/span\u003e below for details.\n"},"desiredConfigurationImageId":{"type":"string","description":"The ID of the image file. This is the image resource used for automatic instance creation.\n"},"desiredConfigurationLaunchTemplateId":{"type":"string","description":"The ID of the launch template. The scaling group uses this template to obtain launch configuration information.\n"},"desiredConfigurationLaunchTemplateOverrides":{"type":"array","items":{"$ref":"#/types/alicloud:ess/InstanceRefreshDesiredConfigurationLaunchTemplateOverride:InstanceRefreshDesiredConfigurationLaunchTemplateOverride"},"description":"The instance type information in the launch template overrides. See \u003cspan pulumi-lang-nodejs=\"`desiredConfigurationLaunchTemplateOverrides`\" pulumi-lang-dotnet=\"`DesiredConfigurationLaunchTemplateOverrides`\" pulumi-lang-go=\"`desiredConfigurationLaunchTemplateOverrides`\" pulumi-lang-python=\"`desired_configuration_launch_template_overrides`\" pulumi-lang-yaml=\"`desiredConfigurationLaunchTemplateOverrides`\" pulumi-lang-java=\"`desiredConfigurationLaunchTemplateOverrides`\"\u003e`desired_configuration_launch_template_overrides`\u003c/span\u003e below for details.\n"},"desiredConfigurationLaunchTemplateVersion":{"type":"string","description":"The version of the launch template.\n"},"maxHealthyPercentage":{"type":"integer","description":"The percentage by which the number of instances in the scaling group can exceed the group's capacity during the instance refresh.\n"},"minHealthyPercentage":{"type":"integer","description":"The percentage of instances that must be healthy in the scaling group during the instance refresh. The value is a percentage of the scaling group's capacity.\n"},"scalingGroupId":{"type":"string","description":"The ID of the scaling group.\n"},"skipMatching":{"type":"boolean","description":"Indicates whether to skip instances that match the desired configuration.\n"},"status":{"type":"string","description":"The current status of the instance refresh task. Possible values:\n- Pending: The instance refresh task is created and waiting to be scheduled.\n- InProgress: The instance refresh task is in progress.\n- Paused: The instance refresh task is paused.\n- CheckpointPause: The task is paused because it has reached a checkpoint (Checkpoint.Percentage).\n- Failed: The instance refresh task failed.\n- Successful: The instance refresh task was successful.\n- Cancelling: The instance refresh task is being canceled.\n- RollbackInProgress: The instance refresh task is being rolled back.\n- RollbackSuccessful: The instance refresh task was rolled back successfully. Set RollbackSuccessful to rollback the instance refresh task.\n- RollbackFailed: The rollback of the instance refresh task failed.\n- Cancelled:  The instance refresh task is canceled. Set Cancelled to cancel the instance refresh task.\n"}},"required":["checkpointPauseTime","maxHealthyPercentage","minHealthyPercentage","scalingGroupId","skipMatching","status"],"inputProperties":{"checkpointPauseTime":{"type":"integer","description":"The duration of the pause when the task reaches a checkpoint. Unit: minutes.\n","willReplaceOnChanges":true},"checkpoints":{"type":"array","items":{"$ref":"#/types/alicloud:ess/InstanceRefreshCheckpoint:InstanceRefreshCheckpoint"},"description":"The checkpoints for the refresh task. The task automatically pauses for the duration specified by CheckpointPauseTime when the percentage of new instances reaches a specified value. See \u003cspan pulumi-lang-nodejs=\"`checkpoints`\" pulumi-lang-dotnet=\"`Checkpoints`\" pulumi-lang-go=\"`checkpoints`\" pulumi-lang-python=\"`checkpoints`\" pulumi-lang-yaml=\"`checkpoints`\" pulumi-lang-java=\"`checkpoints`\"\u003e`checkpoints`\u003c/span\u003e below for details.\n","willReplaceOnChanges":true},"desiredConfigurationContainers":{"type":"array","items":{"$ref":"#/types/alicloud:ess/InstanceRefreshDesiredConfigurationContainer:InstanceRefreshDesiredConfigurationContainer"},"description":"The list of containers in the instance. See \u003cspan pulumi-lang-nodejs=\"`desiredConfigurationContainers`\" pulumi-lang-dotnet=\"`DesiredConfigurationContainers`\" pulumi-lang-go=\"`desiredConfigurationContainers`\" pulumi-lang-python=\"`desired_configuration_containers`\" pulumi-lang-yaml=\"`desiredConfigurationContainers`\" pulumi-lang-java=\"`desiredConfigurationContainers`\"\u003e`desired_configuration_containers`\u003c/span\u003e below for details.\n","willReplaceOnChanges":true},"desiredConfigurationImageId":{"type":"string","description":"The ID of the image file. This is the image resource used for automatic instance creation.\n","willReplaceOnChanges":true},"desiredConfigurationLaunchTemplateId":{"type":"string","description":"The ID of the launch template. The scaling group uses this template to obtain launch configuration information.\n","willReplaceOnChanges":true},"desiredConfigurationLaunchTemplateOverrides":{"type":"array","items":{"$ref":"#/types/alicloud:ess/InstanceRefreshDesiredConfigurationLaunchTemplateOverride:InstanceRefreshDesiredConfigurationLaunchTemplateOverride"},"description":"The instance type information in the launch template overrides. See \u003cspan pulumi-lang-nodejs=\"`desiredConfigurationLaunchTemplateOverrides`\" pulumi-lang-dotnet=\"`DesiredConfigurationLaunchTemplateOverrides`\" pulumi-lang-go=\"`desiredConfigurationLaunchTemplateOverrides`\" pulumi-lang-python=\"`desired_configuration_launch_template_overrides`\" pulumi-lang-yaml=\"`desiredConfigurationLaunchTemplateOverrides`\" pulumi-lang-java=\"`desiredConfigurationLaunchTemplateOverrides`\"\u003e`desired_configuration_launch_template_overrides`\u003c/span\u003e below for details.\n","willReplaceOnChanges":true},"desiredConfigurationLaunchTemplateVersion":{"type":"string","description":"The version of the launch template.\n","willReplaceOnChanges":true},"maxHealthyPercentage":{"type":"integer","description":"The percentage by which the number of instances in the scaling group can exceed the group's capacity during the instance refresh.\n","willReplaceOnChanges":true},"minHealthyPercentage":{"type":"integer","description":"The percentage of instances that must be healthy in the scaling group during the instance refresh. The value is a percentage of the scaling group's capacity.\n","willReplaceOnChanges":true},"scalingGroupId":{"type":"string","description":"The ID of the scaling group.\n","willReplaceOnChanges":true},"skipMatching":{"type":"boolean","description":"Indicates whether to skip instances that match the desired configuration.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The current status of the instance refresh task. Possible values:\n- Pending: The instance refresh task is created and waiting to be scheduled.\n- InProgress: The instance refresh task is in progress.\n- Paused: The instance refresh task is paused.\n- CheckpointPause: The task is paused because it has reached a checkpoint (Checkpoint.Percentage).\n- Failed: The instance refresh task failed.\n- Successful: The instance refresh task was successful.\n- Cancelling: The instance refresh task is being canceled.\n- RollbackInProgress: The instance refresh task is being rolled back.\n- RollbackSuccessful: The instance refresh task was rolled back successfully. Set RollbackSuccessful to rollback the instance refresh task.\n- RollbackFailed: The rollback of the instance refresh task failed.\n- Cancelled:  The instance refresh task is canceled. Set Cancelled to cancel the instance refresh task.\n"}},"requiredInputs":["scalingGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceRefresh resources.\n","properties":{"checkpointPauseTime":{"type":"integer","description":"The duration of the pause when the task reaches a checkpoint. Unit: minutes.\n","willReplaceOnChanges":true},"checkpoints":{"type":"array","items":{"$ref":"#/types/alicloud:ess/InstanceRefreshCheckpoint:InstanceRefreshCheckpoint"},"description":"The checkpoints for the refresh task. The task automatically pauses for the duration specified by CheckpointPauseTime when the percentage of new instances reaches a specified value. See \u003cspan pulumi-lang-nodejs=\"`checkpoints`\" pulumi-lang-dotnet=\"`Checkpoints`\" pulumi-lang-go=\"`checkpoints`\" pulumi-lang-python=\"`checkpoints`\" pulumi-lang-yaml=\"`checkpoints`\" pulumi-lang-java=\"`checkpoints`\"\u003e`checkpoints`\u003c/span\u003e below for details.\n","willReplaceOnChanges":true},"desiredConfigurationContainers":{"type":"array","items":{"$ref":"#/types/alicloud:ess/InstanceRefreshDesiredConfigurationContainer:InstanceRefreshDesiredConfigurationContainer"},"description":"The list of containers in the instance. See \u003cspan pulumi-lang-nodejs=\"`desiredConfigurationContainers`\" pulumi-lang-dotnet=\"`DesiredConfigurationContainers`\" pulumi-lang-go=\"`desiredConfigurationContainers`\" pulumi-lang-python=\"`desired_configuration_containers`\" pulumi-lang-yaml=\"`desiredConfigurationContainers`\" pulumi-lang-java=\"`desiredConfigurationContainers`\"\u003e`desired_configuration_containers`\u003c/span\u003e below for details.\n","willReplaceOnChanges":true},"desiredConfigurationImageId":{"type":"string","description":"The ID of the image file. This is the image resource used for automatic instance creation.\n","willReplaceOnChanges":true},"desiredConfigurationLaunchTemplateId":{"type":"string","description":"The ID of the launch template. The scaling group uses this template to obtain launch configuration information.\n","willReplaceOnChanges":true},"desiredConfigurationLaunchTemplateOverrides":{"type":"array","items":{"$ref":"#/types/alicloud:ess/InstanceRefreshDesiredConfigurationLaunchTemplateOverride:InstanceRefreshDesiredConfigurationLaunchTemplateOverride"},"description":"The instance type information in the launch template overrides. See \u003cspan pulumi-lang-nodejs=\"`desiredConfigurationLaunchTemplateOverrides`\" pulumi-lang-dotnet=\"`DesiredConfigurationLaunchTemplateOverrides`\" pulumi-lang-go=\"`desiredConfigurationLaunchTemplateOverrides`\" pulumi-lang-python=\"`desired_configuration_launch_template_overrides`\" pulumi-lang-yaml=\"`desiredConfigurationLaunchTemplateOverrides`\" pulumi-lang-java=\"`desiredConfigurationLaunchTemplateOverrides`\"\u003e`desired_configuration_launch_template_overrides`\u003c/span\u003e below for details.\n","willReplaceOnChanges":true},"desiredConfigurationLaunchTemplateVersion":{"type":"string","description":"The version of the launch template.\n","willReplaceOnChanges":true},"maxHealthyPercentage":{"type":"integer","description":"The percentage by which the number of instances in the scaling group can exceed the group's capacity during the instance refresh.\n","willReplaceOnChanges":true},"minHealthyPercentage":{"type":"integer","description":"The percentage of instances that must be healthy in the scaling group during the instance refresh. The value is a percentage of the scaling group's capacity.\n","willReplaceOnChanges":true},"scalingGroupId":{"type":"string","description":"The ID of the scaling group.\n","willReplaceOnChanges":true},"skipMatching":{"type":"boolean","description":"Indicates whether to skip instances that match the desired configuration.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The current status of the instance refresh task. Possible values:\n- Pending: The instance refresh task is created and waiting to be scheduled.\n- InProgress: The instance refresh task is in progress.\n- Paused: The instance refresh task is paused.\n- CheckpointPause: The task is paused because it has reached a checkpoint (Checkpoint.Percentage).\n- Failed: The instance refresh task failed.\n- Successful: The instance refresh task was successful.\n- Cancelling: The instance refresh task is being canceled.\n- RollbackInProgress: The instance refresh task is being rolled back.\n- RollbackSuccessful: The instance refresh task was rolled back successfully. Set RollbackSuccessful to rollback the instance refresh task.\n- RollbackFailed: The rollback of the instance refresh task failed.\n- Cancelled:  The instance refresh task is canceled. Set Cancelled to cancel the instance refresh task.\n"}},"type":"object"}},"alicloud:ess/lifecycleHook:LifecycleHook":{"description":"Provides a ESS lifecycle hook resource. More about Ess lifecycle hook, see [LifecycleHook](https://www.alibabacloud.com/help/doc-detail/73839.htm).\n\n\u003e **NOTE:** Available since v1.13.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst myName = `${name}-${defaultInteger.result}`;\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: myName,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: myName,\n});\nconst default2 = new alicloud.vpc.Switch(\"default2\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.1.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: `${name}-bar`,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: myName,\n    vpcId: defaultNetwork.id,\n});\nconst defaultScalingGroup = new alicloud.ess.ScalingGroup(\"default\", {\n    minSize: 1,\n    maxSize: 1,\n    scalingGroupName: myName,\n    defaultCooldown: 200,\n    removalPolicies: [\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitchIds: [\n        defaultSwitch.id,\n        default2.id,\n    ],\n});\nconst defaultLifecycleHook = new alicloud.ess.LifecycleHook(\"default\", {\n    scalingGroupId: defaultScalingGroup.id,\n    name: myName,\n    lifecycleTransition: \"SCALE_OUT\",\n    heartbeatTimeout: 400,\n    notificationMetadata: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nmy_name = f\"{name}-{default_integer['result']}\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=my_name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=my_name)\ndefault2 = alicloud.vpc.Switch(\"default2\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.1.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=f\"{name}-bar\")\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=my_name,\n    vpc_id=default_network.id)\ndefault_scaling_group = alicloud.ess.ScalingGroup(\"default\",\n    min_size=1,\n    max_size=1,\n    scaling_group_name=my_name,\n    default_cooldown=200,\n    removal_policies=[\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitch_ids=[\n        default_switch.id,\n        default2.id,\n    ])\ndefault_lifecycle_hook = alicloud.ess.LifecycleHook(\"default\",\n    scaling_group_id=default_scaling_group.id,\n    name=my_name,\n    lifecycle_transition=\"SCALE_OUT\",\n    heartbeat_timeout=400,\n    notification_metadata=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var myName = $\"{name}-{defaultInteger.Result}\";\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = myName,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = myName,\n    });\n\n    var default2 = new AliCloud.Vpc.Switch(\"default2\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.1.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = $\"{name}-bar\",\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = myName,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultScalingGroup = new AliCloud.Ess.ScalingGroup(\"default\", new()\n    {\n        MinSize = 1,\n        MaxSize = 1,\n        ScalingGroupName = myName,\n        DefaultCooldown = 200,\n        RemovalPolicies = new[]\n        {\n            \"OldestInstance\",\n            \"NewestInstance\",\n        },\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n            default2.Id,\n        },\n    });\n\n    var defaultLifecycleHook = new AliCloud.Ess.LifecycleHook(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        Name = myName,\n        LifecycleTransition = \"SCALE_OUT\",\n        HeartbeatTimeout = 400,\n        NotificationMetadata = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyName := fmt.Sprintf(\"%v-%v\", name, defaultInteger.Result)\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(myName),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(myName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault2, err := vpc.NewSwitch(ctx, \"default2\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.1.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.Sprintf(\"%v-bar\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(myName),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingGroup, err := ess.NewScalingGroup(ctx, \"default\", \u0026ess.ScalingGroupArgs{\n\t\t\tMinSize:          pulumi.Int(1),\n\t\t\tMaxSize:          pulumi.Int(1),\n\t\t\tScalingGroupName: pulumi.String(myName),\n\t\t\tDefaultCooldown:  pulumi.Int(200),\n\t\t\tRemovalPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OldestInstance\"),\n\t\t\t\tpulumi.String(\"NewestInstance\"),\n\t\t\t},\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t\tdefault2.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ess.NewLifecycleHook(ctx, \"default\", \u0026ess.LifecycleHookArgs{\n\t\t\tScalingGroupId:       defaultScalingGroup.ID(),\n\t\t\tName:                 pulumi.String(myName),\n\t\t\tLifecycleTransition:  pulumi.String(\"SCALE_OUT\"),\n\t\t\tHeartbeatTimeout:     pulumi.Int(400),\n\t\t\tNotificationMetadata: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingGroup;\nimport com.pulumi.alicloud.ess.ScalingGroupArgs;\nimport com.pulumi.alicloud.ess.LifecycleHook;\nimport com.pulumi.alicloud.ess.LifecycleHookArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var myName = String.format(\"%s-%s\", name,defaultInteger.result());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(myName)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(myName)\n            .build());\n\n        var default2 = new Switch(\"default2\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.1.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(String.format(\"%s-bar\", name))\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(myName)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultScalingGroup = new ScalingGroup(\"defaultScalingGroup\", ScalingGroupArgs.builder()\n            .minSize(1)\n            .maxSize(1)\n            .scalingGroupName(myName)\n            .defaultCooldown(200)\n            .removalPolicies(            \n                \"OldestInstance\",\n                \"NewestInstance\")\n            .vswitchIds(            \n                defaultSwitch.id(),\n                default2.id())\n            .build());\n\n        var defaultLifecycleHook = new LifecycleHook(\"defaultLifecycleHook\", LifecycleHookArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .name(myName)\n            .lifecycleTransition(\"SCALE_OUT\")\n            .heartbeatTimeout(400)\n            .notificationMetadata(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${myName}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${myName}\n  default2:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.1.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}-bar\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${myName}\n      vpcId: ${defaultNetwork.id}\n  defaultScalingGroup:\n    type: alicloud:ess:ScalingGroup\n    name: default\n    properties:\n      minSize: '1'\n      maxSize: '1'\n      scalingGroupName: ${myName}\n      defaultCooldown: 200\n      removalPolicies:\n        - OldestInstance\n        - NewestInstance\n      vswitchIds:\n        - ${defaultSwitch.id}\n        - ${default2.id}\n  defaultLifecycleHook:\n    type: alicloud:ess:LifecycleHook\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingGroup.id}\n      name: ${myName}\n      lifecycleTransition: SCALE_OUT\n      heartbeatTimeout: 400\n      notificationMetadata: example\nvariables:\n  myName: ${name}-${defaultInteger.result}\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use to the existing autoscaling module \nto create a lifecycle hook, scaling group and configuration one-click.\n\n## Import\n\nEss lifecycle hook can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ess/lifecycleHook:LifecycleHook example ash-l12345\n```\n\n","properties":{"defaultResult":{"type":"string","description":"Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses. Applicable value: CONTINUE, ABANDON, ROLLBACK, default value: CONTINUE.\n"},"heartbeatTimeout":{"type":"integer","description":"Defines the amount of time, in seconds, that can elapse before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the action defined in the\u003cspan pulumi-lang-nodejs=\" defaultResult \" pulumi-lang-dotnet=\" DefaultResult \" pulumi-lang-go=\" defaultResult \" pulumi-lang-python=\" default_result \" pulumi-lang-yaml=\" defaultResult \" pulumi-lang-java=\" defaultResult \"\u003e default_result \u003c/span\u003eparameter. Default value: 600.\n"},"lifecycleTransition":{"type":"string","description":"Type of Scaling activity attached to lifecycle hook. Supported value: SCALE_OUT, SCALE_IN.\n"},"name":{"type":"string","description":"The name of the lifecycle hook, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores `_`, hypens `-`, and decimal point `.`. If this parameter value is not specified, the default value is lifecycle hook id.\n"},"notificationArn":{"type":"string","description":"The Arn of notification target.\n"},"notificationMetadata":{"type":"string","description":"Additional information that you want to include when Auto Scaling sends a message to the notification target.\n"},"scalingGroupId":{"type":"string","description":"The ID of the Auto Scaling group to which you want to assign the lifecycle hook.\n"}},"required":["lifecycleTransition","name","notificationArn","notificationMetadata","scalingGroupId"],"inputProperties":{"defaultResult":{"type":"string","description":"Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses. Applicable value: CONTINUE, ABANDON, ROLLBACK, default value: CONTINUE.\n"},"heartbeatTimeout":{"type":"integer","description":"Defines the amount of time, in seconds, that can elapse before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the action defined in the\u003cspan pulumi-lang-nodejs=\" defaultResult \" pulumi-lang-dotnet=\" DefaultResult \" pulumi-lang-go=\" defaultResult \" pulumi-lang-python=\" default_result \" pulumi-lang-yaml=\" defaultResult \" pulumi-lang-java=\" defaultResult \"\u003e default_result \u003c/span\u003eparameter. Default value: 600.\n"},"lifecycleTransition":{"type":"string","description":"Type of Scaling activity attached to lifecycle hook. Supported value: SCALE_OUT, SCALE_IN.\n"},"name":{"type":"string","description":"The name of the lifecycle hook, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores `_`, hypens `-`, and decimal point `.`. If this parameter value is not specified, the default value is lifecycle hook id.\n","willReplaceOnChanges":true},"notificationArn":{"type":"string","description":"The Arn of notification target.\n"},"notificationMetadata":{"type":"string","description":"Additional information that you want to include when Auto Scaling sends a message to the notification target.\n"},"scalingGroupId":{"type":"string","description":"The ID of the Auto Scaling group to which you want to assign the lifecycle hook.\n","willReplaceOnChanges":true}},"requiredInputs":["lifecycleTransition","scalingGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering LifecycleHook resources.\n","properties":{"defaultResult":{"type":"string","description":"Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses. Applicable value: CONTINUE, ABANDON, ROLLBACK, default value: CONTINUE.\n"},"heartbeatTimeout":{"type":"integer","description":"Defines the amount of time, in seconds, that can elapse before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the action defined in the\u003cspan pulumi-lang-nodejs=\" defaultResult \" pulumi-lang-dotnet=\" DefaultResult \" pulumi-lang-go=\" defaultResult \" pulumi-lang-python=\" default_result \" pulumi-lang-yaml=\" defaultResult \" pulumi-lang-java=\" defaultResult \"\u003e default_result \u003c/span\u003eparameter. Default value: 600.\n"},"lifecycleTransition":{"type":"string","description":"Type of Scaling activity attached to lifecycle hook. Supported value: SCALE_OUT, SCALE_IN.\n"},"name":{"type":"string","description":"The name of the lifecycle hook, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores `_`, hypens `-`, and decimal point `.`. If this parameter value is not specified, the default value is lifecycle hook id.\n","willReplaceOnChanges":true},"notificationArn":{"type":"string","description":"The Arn of notification target.\n"},"notificationMetadata":{"type":"string","description":"Additional information that you want to include when Auto Scaling sends a message to the notification target.\n"},"scalingGroupId":{"type":"string","description":"The ID of the Auto Scaling group to which you want to assign the lifecycle hook.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ess/notification:Notification":{"description":"Provides a ESS notification resource. More about Ess notification, see [Autoscaling Notification](https://www.alibabacloud.com/help/doc-detail/71114.htm).\n\n\u003e **NOTE:** Available since v1.55.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst myName = `${name}-${defaultInteger.result}`;\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultGetAccount = alicloud.getAccount({});\nconst defaultGetZones = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: myName,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n    vswitchName: myName,\n});\nconst defaultScalingGroup = new alicloud.ess.ScalingGroup(\"default\", {\n    minSize: 1,\n    maxSize: 1,\n    scalingGroupName: myName,\n    removalPolicies: [\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitchIds: [defaultSwitch.id],\n});\nconst defaultQueue = new alicloud.mns.Queue(\"default\", {name: myName});\nconst defaultNotification = new alicloud.ess.Notification(\"default\", {\n    scalingGroupId: defaultScalingGroup.id,\n    notificationTypes: [\n        \"AUTOSCALING:SCALE_OUT_SUCCESS\",\n        \"AUTOSCALING:SCALE_OUT_ERROR\",\n    ],\n    notificationArn: pulumi.all([_default, defaultGetAccount, defaultQueue.name]).apply(([_default, defaultGetAccount, name]) =\u003e `acs:ess:${_default.regions?.[0]?.id}:${defaultGetAccount.id}:queue/${name}`),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nmy_name = f\"{name}-{default_integer['result']}\"\ndefault = alicloud.get_regions(current=True)\ndefault_get_account = alicloud.get_account()\ndefault_get_zones = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=my_name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default_get_zones.zones[0].id,\n    vswitch_name=my_name)\ndefault_scaling_group = alicloud.ess.ScalingGroup(\"default\",\n    min_size=1,\n    max_size=1,\n    scaling_group_name=my_name,\n    removal_policies=[\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitch_ids=[default_switch.id])\ndefault_queue = alicloud.mns.Queue(\"default\", name=my_name)\ndefault_notification = alicloud.ess.Notification(\"default\",\n    scaling_group_id=default_scaling_group.id,\n    notification_types=[\n        \"AUTOSCALING:SCALE_OUT_SUCCESS\",\n        \"AUTOSCALING:SCALE_OUT_ERROR\",\n    ],\n    notification_arn=default_queue.name.apply(lambda name: f\"acs:ess:{default.regions[0].id}:{default_get_account.id}:queue/{name}\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var myName = $\"{name}-{defaultInteger.Result}\";\n\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultGetAccount = AliCloud.GetAccount.Invoke();\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = myName,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = myName,\n    });\n\n    var defaultScalingGroup = new AliCloud.Ess.ScalingGroup(\"default\", new()\n    {\n        MinSize = 1,\n        MaxSize = 1,\n        ScalingGroupName = myName,\n        RemovalPolicies = new[]\n        {\n            \"OldestInstance\",\n            \"NewestInstance\",\n        },\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n    });\n\n    var defaultQueue = new AliCloud.Mns.Queue(\"default\", new()\n    {\n        Name = myName,\n    });\n\n    var defaultNotification = new AliCloud.Ess.Notification(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        NotificationTypes = new[]\n        {\n            \"AUTOSCALING:SCALE_OUT_SUCCESS\",\n            \"AUTOSCALING:SCALE_OUT_ERROR\",\n        },\n        NotificationArn = Output.Tuple(@default, defaultGetAccount, defaultQueue.Name).Apply(values =\u003e\n        {\n            var @default = values.Item1;\n            var defaultGetAccount = values.Item2;\n            var name = values.Item3;\n            return $\"acs:ess:{@default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}:{defaultGetAccount.Apply(getAccountResult =\u003e getAccountResult.Id)}:queue/{name}\";\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mns\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyName := fmt.Sprintf(\"%v-%v\", name, defaultInteger.Result)\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetAccount, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(myName),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(myName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingGroup, err := ess.NewScalingGroup(ctx, \"default\", \u0026ess.ScalingGroupArgs{\n\t\t\tMinSize:          pulumi.Int(1),\n\t\t\tMaxSize:          pulumi.Int(1),\n\t\t\tScalingGroupName: pulumi.String(myName),\n\t\t\tRemovalPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OldestInstance\"),\n\t\t\t\tpulumi.String(\"NewestInstance\"),\n\t\t\t},\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultQueue, err := mns.NewQueue(ctx, \"default\", \u0026mns.QueueArgs{\n\t\t\tName: pulumi.String(myName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ess.NewNotification(ctx, \"default\", \u0026ess.NotificationArgs{\n\t\t\tScalingGroupId: defaultScalingGroup.ID(),\n\t\t\tNotificationTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"AUTOSCALING:SCALE_OUT_SUCCESS\"),\n\t\t\t\tpulumi.String(\"AUTOSCALING:SCALE_OUT_ERROR\"),\n\t\t\t},\n\t\t\tNotificationArn: defaultQueue.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"acs:ess:%v:%v:queue/%v\", _default.Regions[0].Id, defaultGetAccount.Id, name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ess.ScalingGroup;\nimport com.pulumi.alicloud.ess.ScalingGroupArgs;\nimport com.pulumi.alicloud.mns.Queue;\nimport com.pulumi.alicloud.mns.QueueArgs;\nimport com.pulumi.alicloud.ess.Notification;\nimport com.pulumi.alicloud.ess.NotificationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var myName = String.format(\"%s-%s\", name,defaultInteger.result());\n\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var defaultGetAccount = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(myName)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(defaultGetZones.zones()[0].id())\n            .vswitchName(myName)\n            .build());\n\n        var defaultScalingGroup = new ScalingGroup(\"defaultScalingGroup\", ScalingGroupArgs.builder()\n            .minSize(1)\n            .maxSize(1)\n            .scalingGroupName(myName)\n            .removalPolicies(            \n                \"OldestInstance\",\n                \"NewestInstance\")\n            .vswitchIds(defaultSwitch.id())\n            .build());\n\n        var defaultQueue = new Queue(\"defaultQueue\", QueueArgs.builder()\n            .name(myName)\n            .build());\n\n        var defaultNotification = new Notification(\"defaultNotification\", NotificationArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .notificationTypes(            \n                \"AUTOSCALING:SCALE_OUT_SUCCESS\",\n                \"AUTOSCALING:SCALE_OUT_ERROR\")\n            .notificationArn(defaultQueue.name().applyValue(_name -\u003e String.format(\"acs:ess:%s:%s:queue/%s\", default_.regions()[0].id(),defaultGetAccount.id(),_name)))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${myName}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${defaultGetZones.zones[0].id}\n      vswitchName: ${myName}\n  defaultScalingGroup:\n    type: alicloud:ess:ScalingGroup\n    name: default\n    properties:\n      minSize: 1\n      maxSize: 1\n      scalingGroupName: ${myName}\n      removalPolicies:\n        - OldestInstance\n        - NewestInstance\n      vswitchIds:\n        - ${defaultSwitch.id}\n  defaultQueue:\n    type: alicloud:mns:Queue\n    name: default\n    properties:\n      name: ${myName}\n  defaultNotification:\n    type: alicloud:ess:Notification\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingGroup.id}\n      notificationTypes:\n        - AUTOSCALING:SCALE_OUT_SUCCESS\n        - AUTOSCALING:SCALE_OUT_ERROR\n      notificationArn: acs:ess:${default.regions[0].id}:${defaultGetAccount.id}:queue/${defaultQueue.name}\nvariables:\n  myName: ${name}-${defaultInteger.result}\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetAccount:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEss notification can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ess/notification:Notification example 'scaling_group_id:notification_arn'\n```\n\n","properties":{"notificationArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the notification object, The value must be in `acs:ess:{region}:{account-id}:{resource-relative-id}` format.\n* region: the region ID of the scaling group. For more information, see `Regions and zones`\n* account-id: the ID of your account.\n* resource-relative-id: the notification method. Valid values : \u003cspan pulumi-lang-nodejs=\"`cloudmonitor`\" pulumi-lang-dotnet=\"`Cloudmonitor`\" pulumi-lang-go=\"`cloudmonitor`\" pulumi-lang-python=\"`cloudmonitor`\" pulumi-lang-yaml=\"`cloudmonitor`\" pulumi-lang-java=\"`cloudmonitor`\"\u003e`cloudmonitor`\u003c/span\u003e, MNS queue: `queue/{queuename}`, Replace the queuename with the specific MNS queue name, MNS topic: `topic/{topicname}`, Replace the topicname with the specific MNS topic name.\n"},"notificationTypes":{"type":"array","items":{"type":"string"},"description":"The notification types of Auto Scaling events and resource changes. Supported notification types: 'AUTOSCALING:SCALE_OUT_SUCCESS', 'AUTOSCALING:SCALE_IN_SUCCESS', 'AUTOSCALING:SCALE_OUT_ERROR', 'AUTOSCALING:SCALE_IN_ERROR', 'AUTOSCALING:SCALE_REJECT', 'AUTOSCALING:SCALE_OUT_START', 'AUTOSCALING:SCALE_IN_START', 'AUTOSCALING:SCHEDULE_TASK_EXPIRING'.\n"},"scalingGroupId":{"type":"string","description":"The ID of the Auto Scaling group.\n"},"timeZone":{"type":"string","description":"The time zone of the notification. Specify the value in UTC. For example, a value of UTC+8 specifies that the time is 8 hours ahead of Coordinated Universal Time, and a value of UTC-7 specifies that the time is 7 hours behind Coordinated Universal Time.\n"}},"required":["notificationArn","notificationTypes","scalingGroupId"],"inputProperties":{"notificationArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the notification object, The value must be in `acs:ess:{region}:{account-id}:{resource-relative-id}` format.\n* region: the region ID of the scaling group. For more information, see `Regions and zones`\n* account-id: the ID of your account.\n* resource-relative-id: the notification method. Valid values : \u003cspan pulumi-lang-nodejs=\"`cloudmonitor`\" pulumi-lang-dotnet=\"`Cloudmonitor`\" pulumi-lang-go=\"`cloudmonitor`\" pulumi-lang-python=\"`cloudmonitor`\" pulumi-lang-yaml=\"`cloudmonitor`\" pulumi-lang-java=\"`cloudmonitor`\"\u003e`cloudmonitor`\u003c/span\u003e, MNS queue: `queue/{queuename}`, Replace the queuename with the specific MNS queue name, MNS topic: `topic/{topicname}`, Replace the topicname with the specific MNS topic name.\n","willReplaceOnChanges":true},"notificationTypes":{"type":"array","items":{"type":"string"},"description":"The notification types of Auto Scaling events and resource changes. Supported notification types: 'AUTOSCALING:SCALE_OUT_SUCCESS', 'AUTOSCALING:SCALE_IN_SUCCESS', 'AUTOSCALING:SCALE_OUT_ERROR', 'AUTOSCALING:SCALE_IN_ERROR', 'AUTOSCALING:SCALE_REJECT', 'AUTOSCALING:SCALE_OUT_START', 'AUTOSCALING:SCALE_IN_START', 'AUTOSCALING:SCHEDULE_TASK_EXPIRING'.\n"},"scalingGroupId":{"type":"string","description":"The ID of the Auto Scaling group.\n","willReplaceOnChanges":true},"timeZone":{"type":"string","description":"The time zone of the notification. Specify the value in UTC. For example, a value of UTC+8 specifies that the time is 8 hours ahead of Coordinated Universal Time, and a value of UTC-7 specifies that the time is 7 hours behind Coordinated Universal Time.\n"}},"requiredInputs":["notificationArn","notificationTypes","scalingGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering Notification resources.\n","properties":{"notificationArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the notification object, The value must be in `acs:ess:{region}:{account-id}:{resource-relative-id}` format.\n* region: the region ID of the scaling group. For more information, see `Regions and zones`\n* account-id: the ID of your account.\n* resource-relative-id: the notification method. Valid values : \u003cspan pulumi-lang-nodejs=\"`cloudmonitor`\" pulumi-lang-dotnet=\"`Cloudmonitor`\" pulumi-lang-go=\"`cloudmonitor`\" pulumi-lang-python=\"`cloudmonitor`\" pulumi-lang-yaml=\"`cloudmonitor`\" pulumi-lang-java=\"`cloudmonitor`\"\u003e`cloudmonitor`\u003c/span\u003e, MNS queue: `queue/{queuename}`, Replace the queuename with the specific MNS queue name, MNS topic: `topic/{topicname}`, Replace the topicname with the specific MNS topic name.\n","willReplaceOnChanges":true},"notificationTypes":{"type":"array","items":{"type":"string"},"description":"The notification types of Auto Scaling events and resource changes. Supported notification types: 'AUTOSCALING:SCALE_OUT_SUCCESS', 'AUTOSCALING:SCALE_IN_SUCCESS', 'AUTOSCALING:SCALE_OUT_ERROR', 'AUTOSCALING:SCALE_IN_ERROR', 'AUTOSCALING:SCALE_REJECT', 'AUTOSCALING:SCALE_OUT_START', 'AUTOSCALING:SCALE_IN_START', 'AUTOSCALING:SCHEDULE_TASK_EXPIRING'.\n"},"scalingGroupId":{"type":"string","description":"The ID of the Auto Scaling group.\n","willReplaceOnChanges":true},"timeZone":{"type":"string","description":"The time zone of the notification. Specify the value in UTC. For example, a value of UTC+8 specifies that the time is 8 hours ahead of Coordinated Universal Time, and a value of UTC-7 specifies that the time is 7 hours behind Coordinated Universal Time.\n"}},"type":"object"}},"alicloud:ess/scalingConfiguration:ScalingConfiguration":{"description":"Provides a ESS scaling configuration resource.\n\n\u003e **NOTE:** Several instance types have outdated in some regions and availability zones, such as `ecs.t1.*`, `ecs.s2.*`, `ecs.n1.*` and so on. If you want to keep them, you should set \u003cspan pulumi-lang-nodejs=\"`isOutdated`\" pulumi-lang-dotnet=\"`IsOutdated`\" pulumi-lang-go=\"`isOutdated`\" pulumi-lang-python=\"`is_outdated`\" pulumi-lang-yaml=\"`isOutdated`\" pulumi-lang-java=\"`isOutdated`\"\u003e`is_outdated`\u003c/span\u003e to true. For more about the upgraded instance type, refer to \u003cspan pulumi-lang-nodejs=\"`alicloud.ecs.getInstanceTypes`\" pulumi-lang-dotnet=\"`alicloud.ecs.getInstanceTypes`\" pulumi-lang-go=\"`ecs.getInstanceTypes`\" pulumi-lang-python=\"`ecs_get_instance_types`\" pulumi-lang-yaml=\"`alicloud.ecs.getInstanceTypes`\" pulumi-lang-java=\"`alicloud.ecs.getInstanceTypes`\"\u003e`alicloud.ecs.getInstanceTypes`\u003c/span\u003e datasource.\n\n\u003e **NOTE:** Available since v1.39.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst myName = `${name}-${defaultInteger.result}`;\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 2,\n    memorySize: 4,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: myName,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: myName,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    securityGroupName: myName,\n    vpcId: defaultNetwork.id,\n});\nconst defaultSecurityGroupRule = new alicloud.ecs.SecurityGroupRule(\"default\", {\n    type: \"ingress\",\n    ipProtocol: \"tcp\",\n    nicType: \"intranet\",\n    policy: \"accept\",\n    portRange: \"22/22\",\n    priority: 1,\n    securityGroupId: defaultSecurityGroup.id,\n    cidrIp: \"172.16.0.0/24\",\n});\nconst defaultScalingGroup = new alicloud.ess.ScalingGroup(\"default\", {\n    minSize: 1,\n    maxSize: 1,\n    scalingGroupName: myName,\n    removalPolicies: [\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitchIds: [defaultSwitch.id],\n});\nconst defaultScalingConfiguration = new alicloud.ess.ScalingConfiguration(\"default\", {\n    scalingGroupId: defaultScalingGroup.id,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroupId: defaultSecurityGroup.id,\n    forceDelete: true,\n    active: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nmy_name = f\"{name}-{default_integer['result']}\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=2,\n    memory_size=4)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=my_name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=my_name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    security_group_name=my_name,\n    vpc_id=default_network.id)\ndefault_security_group_rule = alicloud.ecs.SecurityGroupRule(\"default\",\n    type=\"ingress\",\n    ip_protocol=\"tcp\",\n    nic_type=\"intranet\",\n    policy=\"accept\",\n    port_range=\"22/22\",\n    priority=1,\n    security_group_id=default_security_group.id,\n    cidr_ip=\"172.16.0.0/24\")\ndefault_scaling_group = alicloud.ess.ScalingGroup(\"default\",\n    min_size=1,\n    max_size=1,\n    scaling_group_name=my_name,\n    removal_policies=[\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitch_ids=[default_switch.id])\ndefault_scaling_configuration = alicloud.ess.ScalingConfiguration(\"default\",\n    scaling_group_id=default_scaling_group.id,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_group_id=default_security_group.id,\n    force_delete=True,\n    active=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var myName = $\"{name}-{defaultInteger.Result}\";\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 2,\n        MemorySize = 4,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = myName,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = myName,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = myName,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultSecurityGroupRule = new AliCloud.Ecs.SecurityGroupRule(\"default\", new()\n    {\n        Type = \"ingress\",\n        IpProtocol = \"tcp\",\n        NicType = \"intranet\",\n        Policy = \"accept\",\n        PortRange = \"22/22\",\n        Priority = 1,\n        SecurityGroupId = defaultSecurityGroup.Id,\n        CidrIp = \"172.16.0.0/24\",\n    });\n\n    var defaultScalingGroup = new AliCloud.Ess.ScalingGroup(\"default\", new()\n    {\n        MinSize = 1,\n        MaxSize = 1,\n        ScalingGroupName = myName,\n        RemovalPolicies = new[]\n        {\n            \"OldestInstance\",\n            \"NewestInstance\",\n        },\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n    });\n\n    var defaultScalingConfiguration = new AliCloud.Ess.ScalingConfiguration(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroupId = defaultSecurityGroup.Id,\n        ForceDelete = true,\n        Active = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyName := fmt.Sprintf(\"%v-%v\", name, defaultInteger.Result)\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(2),\n\t\t\tMemorySize:       pulumi.Float64Ref(4),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(myName),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(myName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(myName),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroupRule(ctx, \"default\", \u0026ecs.SecurityGroupRuleArgs{\n\t\t\tType:            pulumi.String(\"ingress\"),\n\t\t\tIpProtocol:      pulumi.String(\"tcp\"),\n\t\t\tNicType:         pulumi.String(\"intranet\"),\n\t\t\tPolicy:          pulumi.String(\"accept\"),\n\t\t\tPortRange:       pulumi.String(\"22/22\"),\n\t\t\tPriority:        pulumi.Int(1),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tCidrIp:          pulumi.String(\"172.16.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingGroup, err := ess.NewScalingGroup(ctx, \"default\", \u0026ess.ScalingGroupArgs{\n\t\t\tMinSize:          pulumi.Int(1),\n\t\t\tMaxSize:          pulumi.Int(1),\n\t\t\tScalingGroupName: pulumi.String(myName),\n\t\t\tRemovalPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OldestInstance\"),\n\t\t\t\tpulumi.String(\"NewestInstance\"),\n\t\t\t},\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ess.NewScalingConfiguration(ctx, \"default\", \u0026ess.ScalingConfigurationArgs{\n\t\t\tScalingGroupId:  defaultScalingGroup.ID(),\n\t\t\tImageId:         pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tForceDelete:     pulumi.Bool(true),\n\t\t\tActive:          pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroupRule;\nimport com.pulumi.alicloud.ecs.SecurityGroupRuleArgs;\nimport com.pulumi.alicloud.ess.ScalingGroup;\nimport com.pulumi.alicloud.ess.ScalingGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingConfiguration;\nimport com.pulumi.alicloud.ess.ScalingConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var myName = String.format(\"%s-%s\", name,defaultInteger.result());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(myName)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(myName)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(myName)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultSecurityGroupRule = new SecurityGroupRule(\"defaultSecurityGroupRule\", SecurityGroupRuleArgs.builder()\n            .type(\"ingress\")\n            .ipProtocol(\"tcp\")\n            .nicType(\"intranet\")\n            .policy(\"accept\")\n            .portRange(\"22/22\")\n            .priority(1)\n            .securityGroupId(defaultSecurityGroup.id())\n            .cidrIp(\"172.16.0.0/24\")\n            .build());\n\n        var defaultScalingGroup = new ScalingGroup(\"defaultScalingGroup\", ScalingGroupArgs.builder()\n            .minSize(1)\n            .maxSize(1)\n            .scalingGroupName(myName)\n            .removalPolicies(            \n                \"OldestInstance\",\n                \"NewestInstance\")\n            .vswitchIds(defaultSwitch.id())\n            .build());\n\n        var defaultScalingConfiguration = new ScalingConfiguration(\"defaultScalingConfiguration\", ScalingConfigurationArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroupId(defaultSecurityGroup.id())\n            .forceDelete(true)\n            .active(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${myName}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${myName}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      securityGroupName: ${myName}\n      vpcId: ${defaultNetwork.id}\n  defaultSecurityGroupRule:\n    type: alicloud:ecs:SecurityGroupRule\n    name: default\n    properties:\n      type: ingress\n      ipProtocol: tcp\n      nicType: intranet\n      policy: accept\n      portRange: 22/22\n      priority: 1\n      securityGroupId: ${defaultSecurityGroup.id}\n      cidrIp: 172.16.0.0/24\n  defaultScalingGroup:\n    type: alicloud:ess:ScalingGroup\n    name: default\n    properties:\n      minSize: 1\n      maxSize: 1\n      scalingGroupName: ${myName}\n      removalPolicies:\n        - OldestInstance\n        - NewestInstance\n      vswitchIds:\n        - ${defaultSwitch.id}\n  defaultScalingConfiguration:\n    type: alicloud:ess:ScalingConfiguration\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingGroup.id}\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      securityGroupId: ${defaultSecurityGroup.id}\n      forceDelete: true\n      active: true\nvariables:\n  myName: ${name}-${defaultInteger.result}\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 2\n        memorySize: 4\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use to the existing autoscaling module \nto create a configuration, scaling group and lifecycle hook one-click.\n\n## Import\n\nESS scaling configuration can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ess/scalingConfiguration:ScalingConfiguration example asc-abc123456\n```\n\n","properties":{"active":{"type":"boolean","description":"Whether active current scaling configuration in the specified scaling group. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"creditSpecification":{"type":"string","description":"Performance mode of the t5 burstable instance. Valid values: 'Standard', 'Unlimited'.\n"},"customPriorities":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationCustomPriority:ScalingConfigurationCustomPriority"},"description":"You can use CustomPriorities to specify the priority of a custom ECS instance type + vSwitch combination. See \u003cspan pulumi-lang-nodejs=\"`customPriorities`\" pulumi-lang-dotnet=\"`CustomPriorities`\" pulumi-lang-go=\"`customPriorities`\" pulumi-lang-python=\"`custom_priorities`\" pulumi-lang-yaml=\"`customPriorities`\" pulumi-lang-java=\"`customPriorities`\"\u003e`custom_priorities`\u003c/span\u003e below for details.\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationDataDisk:ScalingConfigurationDataDisk"},"description":"DataDisk mappings to attach to ecs instance. See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below for details.\n"},"dedicatedHostClusterId":{"type":"string","description":"The ID of the dedicated host cluster.\n"},"deletionProtection":{"type":"boolean","description":"Specifies whether to enable the Release Protection feature for ECS instances. This parameter is applicable to only pay-as-you-go instances. You can use this parameter to specify whether an ECS instance can be directly released by using the ECS console or calling the DeleteInstance operation. Valid values: true, false. Default value: false.\n"},"enable":{"type":"boolean","description":"Whether enable the specified scaling group(make it active) to which the current scaling configuration belongs.\n"},"forceDelete":{"type":"boolean","description":"The last scaling configuration will be deleted forcibly with deleting its scaling group. Default to false.\n"},"hostName":{"type":"string","description":"Hostname of an ECS instance.\n"},"httpEndpoint":{"type":"string","description":"Specifies whether to enable the access channel for instance metadata. Valid values: enabled, disabled.\n"},"imageId":{"type":"string","description":"ID of an image file, indicating the image resource selected when an instance is enabled.\n"},"imageName":{"type":"string","description":"Name of an image file, indicating the image resource selected when an instance is enabled.\n"},"imageOptionsLoginAsNonRoot":{"type":"boolean","description":"Specifies whether to use ecs-user to log on to an ECS instance. For more information, see Manage the username used to log on to an ECS instance. Valid values: true, false. Default value: false.\n"},"instanceDescription":{"type":"string","description":"The description of ECS instances. The description must be 2 to 256 characters in length. It can contain letters but cannot start with http:// or https://.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"It has been deprecated from version 1.6.0. New resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ess.Attachment`\" pulumi-lang-dotnet=\"`alicloud.ess.Attachment`\" pulumi-lang-go=\"`ess.Attachment`\" pulumi-lang-python=\"`ess.Attachment`\" pulumi-lang-yaml=\"`alicloud.ess.Attachment`\" pulumi-lang-java=\"`alicloud.ess.Attachment`\"\u003e`alicloud.ess.Attachment`\u003c/span\u003e replaces it.\n","deprecationMessage":"Field 'instance_ids' has been deprecated from provider version 1.6.0. New resource 'alicloud_ess_attachment' replaces it."},"instanceName":{"type":"string","description":"Name of an ECS instance. Default to \"ESS-Instance\". It is valid from version 1.7.1.\n"},"instancePatternInfos":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationInstancePatternInfo:ScalingConfigurationInstancePatternInfo"},"description":"intelligent configuration mode. In this mode, you only need to specify the number of vCPUs, memory size, instance family, and maximum price. The system selects an instance type that is provided at the lowest price based on your configurations to create ECS instances. This mode is available only for scaling groups that reside in virtual private clouds (VPCs). This mode helps reduce the failures of scale-out activities caused by insufficient inventory of instance types.  See \u003cspan pulumi-lang-nodejs=\"`instancePatternInfo`\" pulumi-lang-dotnet=\"`InstancePatternInfo`\" pulumi-lang-go=\"`instancePatternInfo`\" pulumi-lang-python=\"`instance_pattern_info`\" pulumi-lang-yaml=\"`instancePatternInfo`\" pulumi-lang-java=\"`instancePatternInfo`\"\u003e`instance_pattern_info`\u003c/span\u003e below for details.\n"},"instanceType":{"type":"string","description":"Resource type of an ECS instance.\n"},"instanceTypeOverrides":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationInstanceTypeOverride:ScalingConfigurationInstanceTypeOverride"},"description":"specify the weight of instance type.  See \u003cspan pulumi-lang-nodejs=\"`instanceTypeOverride`\" pulumi-lang-dotnet=\"`InstanceTypeOverride`\" pulumi-lang-go=\"`instanceTypeOverride`\" pulumi-lang-python=\"`instance_type_override`\" pulumi-lang-yaml=\"`instanceTypeOverride`\" pulumi-lang-java=\"`instanceTypeOverride`\"\u003e`instance_type_override`\u003c/span\u003e below for details.\n"},"instanceTypes":{"type":"array","items":{"type":"string"},"description":"Resource types of an ECS instance.\n"},"internetChargeType":{"type":"string","description":"Network billing type, Values: PayByBandwidth or PayByTraffic. Default to `PayByBandwidth`.\n"},"internetMaxBandwidthIn":{"type":"integer","description":"Maximum incoming bandwidth from the public network, measured in Mbps (Mega bit per second).\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Maximum outgoing bandwidth from the public network, measured in Mbps (Mega bit per second). The value range for PayByBandwidth is [0,1024].\n"},"ioOptimized":{"type":"string","description":"It has been deprecated on instance resource. All the launched alicloud instances will be I/O optimized.\n","deprecationMessage":"Attribute\u003cspan pulumi-lang-nodejs=\" ioOptimized \" pulumi-lang-dotnet=\" IoOptimized \" pulumi-lang-go=\" ioOptimized \" pulumi-lang-python=\" io_optimized \" pulumi-lang-yaml=\" ioOptimized \" pulumi-lang-java=\" ioOptimized \"\u003e io_optimized \u003c/span\u003ehas been deprecated on instance resource. All the launched alicloud instances will be IO optimized. Suggest to remove it from your template."},"isOutdated":{"type":"boolean","description":"Whether to use outdated instance type. Default to false.\n"},"keyName":{"type":"string","description":"The name of key pair that can login ECS instance successfully without password. If it is specified, the password would be invalid.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a db account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationNetworkInterface:ScalingConfigurationNetworkInterface"},"description":"Specify NetworkInterfaces.N to configure primary and secondary ENIs. In this case, specify at least one primary ENI. If you set NetworkInterfaces.N.InstanceType to Primary, a primary ENI is configured. If you set NetworkInterfaces.N.InstanceType to Secondary or leave the parameter empty, a secondary ENI is configured. See \u003cspan pulumi-lang-nodejs=\"`networkInterfaces`\" pulumi-lang-dotnet=\"`NetworkInterfaces`\" pulumi-lang-go=\"`networkInterfaces`\" pulumi-lang-python=\"`network_interfaces`\" pulumi-lang-yaml=\"`networkInterfaces`\" pulumi-lang-java=\"`networkInterfaces`\"\u003e`network_interfaces`\u003c/span\u003e below for details.\n"},"override":{"type":"boolean","description":"Indicates whether to overwrite the existing data. Default to false.\n"},"password":{"type":"string","description":"The password of the ECS instance. The password must be 8 to 30 characters in length. It must contains at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include `() ~!@#$%^\u0026*-_+=\\|{}[]:;'\u003c\u003e,.?/`, The password of Windows-based instances cannot start with a forward slash (/).\n"},"passwordInherit":{"type":"boolean","description":"Specifies whether to use the password that is predefined in the image. If the PasswordInherit parameter is set to true, the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e will be ignored. You must ensure that the selected image has a password configured.\n"},"resourceGroupId":{"type":"string","description":"ID of resource group.\n"},"roleName":{"type":"string","description":"Instance RAM role name. The name is provided and maintained by RAM. You can use \u003cspan pulumi-lang-nodejs=\"`alicloud.ram.Role`\" pulumi-lang-dotnet=\"`alicloud.ram.Role`\" pulumi-lang-go=\"`ram.Role`\" pulumi-lang-python=\"`ram.Role`\" pulumi-lang-yaml=\"`alicloud.ram.Role`\" pulumi-lang-java=\"`alicloud.ram.Role`\"\u003e`alicloud.ram.Role`\u003c/span\u003e to create a new one.\n"},"scalingConfigurationName":{"type":"string","description":"Name shown for the scheduled task. which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores `_`, hypens `-`, and decimal point `.`. If this parameter value is not specified, the default value is ScalingConfigurationId.\n"},"scalingGroupId":{"type":"string","description":"ID of the scaling group of a scaling configuration.\n"},"securityEnhancementStrategy":{"type":"string","description":"Specifies whether to enable Security Hardening. Valid values: Active, Deactive.\n"},"securityGroupId":{"type":"string","description":"ID of the security group used to create new instance. It is conflict with \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"List IDs of the security group used to create new instances. It is conflict with \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e.\n"},"spotDuration":{"type":"integer","description":"The protection period of preemptible instances. Unit: hours. Valid values: 1, 0.\n"},"spotPriceLimits":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationSpotPriceLimit:ScalingConfigurationSpotPriceLimit"},"description":"Sets the maximum price hourly for instance types. See \u003cspan pulumi-lang-nodejs=\"`spotPriceLimit`\" pulumi-lang-dotnet=\"`SpotPriceLimit`\" pulumi-lang-go=\"`spotPriceLimit`\" pulumi-lang-python=\"`spot_price_limit`\" pulumi-lang-yaml=\"`spotPriceLimit`\" pulumi-lang-java=\"`spotPriceLimit`\"\u003e`spot_price_limit`\u003c/span\u003e below for details.\n\n\u003e **NOTE:** Before enabling the scaling group, it must have a active scaling configuration.\n\n\u003e **NOTE:** If the number of attached ECS instances by \u003cspan pulumi-lang-nodejs=\"`instanceIds`\" pulumi-lang-dotnet=\"`InstanceIds`\" pulumi-lang-go=\"`instanceIds`\" pulumi-lang-python=\"`instance_ids`\" pulumi-lang-yaml=\"`instanceIds`\" pulumi-lang-java=\"`instanceIds`\"\u003e`instance_ids`\u003c/span\u003e is smaller than MinSize, the Auto Scaling Service will automatically create ECS Pay-As-You-Go instance to cater to MinSize. For example, MinSize=5 and 2 existing ECS instances has been attached to the scaling group. When the scaling group is enabled, it will create 3 instnaces automatically based on its current active scaling configuration.\n\n\u003e **NOTE:** Restrictions on attaching ECS instances:\n\n- The attached ECS instances and the scaling group must have the same region and network type(`Classic` or `VPC`).\n- The attached ECS instances and the instance with active scaling configurations must have the same instance type.\n- The attached ECS instances must in the running state.\n- The attached ECS instances has not been attached to other scaling groups.\n- The attached ECS instances supports Subscription and Pay-As-You-Go payment methods.\n\n\u003e **NOTE:** The last scaling configuration can't be set to inactive and deleted alone.\n"},"spotStrategy":{"type":"string","description":"The spot strategy for a Pay-As-You-Go instance. Valid values: `NoSpot`, `SpotAsPriceGo`, `SpotWithPriceLimit`.\n"},"substitute":{"type":"string","description":"The another scaling configuration which will be active automatically and replace current configuration when setting \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e to 'false'. It is invalid when \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e is 'true'.\n"},"systemDiskAutoSnapshotPolicyId":{"type":"string","description":"The id of auto snapshot policy for system disk.\n"},"systemDiskCategory":{"type":"string","description":"Category of the system disk. The parameter value options are \u003cspan pulumi-lang-nodejs=\"`ephemeralSsd`\" pulumi-lang-dotnet=\"`EphemeralSsd`\" pulumi-lang-go=\"`ephemeralSsd`\" pulumi-lang-python=\"`ephemeral_ssd`\" pulumi-lang-yaml=\"`ephemeralSsd`\" pulumi-lang-java=\"`ephemeralSsd`\"\u003e`ephemeral_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e only is used to some no I/O optimized instance. Default to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n"},"systemDiskDescription":{"type":"string","description":"The description of the system disk. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"systemDiskEncryptAlgorithm":{"type":"string","description":"The algorithm that you want to use to encrypt the system disk. Valid values: AES-256, SM4-128.\n"},"systemDiskEncrypted":{"type":"boolean","description":"Whether to encrypt the system disk.\n"},"systemDiskKmsKeyId":{"type":"string","description":"The ID of the KMS key that you want to use to encrypt the system disk.\n"},"systemDiskName":{"type":"string","description":"The name of the system disk. It must be 2 to 128 characters in length. It must start with a letter and cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), and hyphens (-). Default value: null.\n"},"systemDiskPerformanceLevel":{"type":"string","description":"The performance level of the ESSD used as the system disk.\n"},"systemDiskProvisionedIops":{"type":"integer","description":"IOPS measures the number of read and write operations that an EBS device can process per second.\n"},"systemDiskSize":{"type":"integer","description":"Size of system disk, in GiB. Valid values: Basic disk: 20 to 500, ESSD: The valid values depend on the performance level (PL) of the system disk (PL0 ESSD: 1 to 2048, PL1 ESSD: 20 to 2048, PL2 ESSD: 461 to 2048, PL3 ESSD: 1261 to 2048) , ESSD AutoPL disk: 1 to 2048, Other disk categories: 20 to 2048. The value of this parameter must be at least 1 and greater than or equal to the image size. Default value: 40 or the size of the image, whichever is larger.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource. It will be applied for ECS instances finally.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"http://\", or \"https://\" It can be a null string.\n"},"userData":{"type":"string","description":"User-defined data to customize the startup behaviors of the ECS instance and to pass data into the ECS instance.\n"}},"required":["active","scalingConfigurationName","scalingGroupId","substitute"],"inputProperties":{"active":{"type":"boolean","description":"Whether active current scaling configuration in the specified scaling group. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"creditSpecification":{"type":"string","description":"Performance mode of the t5 burstable instance. Valid values: 'Standard', 'Unlimited'.\n"},"customPriorities":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationCustomPriority:ScalingConfigurationCustomPriority"},"description":"You can use CustomPriorities to specify the priority of a custom ECS instance type + vSwitch combination. See \u003cspan pulumi-lang-nodejs=\"`customPriorities`\" pulumi-lang-dotnet=\"`CustomPriorities`\" pulumi-lang-go=\"`customPriorities`\" pulumi-lang-python=\"`custom_priorities`\" pulumi-lang-yaml=\"`customPriorities`\" pulumi-lang-java=\"`customPriorities`\"\u003e`custom_priorities`\u003c/span\u003e below for details.\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationDataDisk:ScalingConfigurationDataDisk"},"description":"DataDisk mappings to attach to ecs instance. See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below for details.\n"},"dedicatedHostClusterId":{"type":"string","description":"The ID of the dedicated host cluster.\n"},"deletionProtection":{"type":"boolean","description":"Specifies whether to enable the Release Protection feature for ECS instances. This parameter is applicable to only pay-as-you-go instances. You can use this parameter to specify whether an ECS instance can be directly released by using the ECS console or calling the DeleteInstance operation. Valid values: true, false. Default value: false.\n"},"enable":{"type":"boolean","description":"Whether enable the specified scaling group(make it active) to which the current scaling configuration belongs.\n"},"forceDelete":{"type":"boolean","description":"The last scaling configuration will be deleted forcibly with deleting its scaling group. Default to false.\n"},"hostName":{"type":"string","description":"Hostname of an ECS instance.\n"},"httpEndpoint":{"type":"string","description":"Specifies whether to enable the access channel for instance metadata. Valid values: enabled, disabled.\n"},"imageId":{"type":"string","description":"ID of an image file, indicating the image resource selected when an instance is enabled.\n"},"imageName":{"type":"string","description":"Name of an image file, indicating the image resource selected when an instance is enabled.\n"},"imageOptionsLoginAsNonRoot":{"type":"boolean","description":"Specifies whether to use ecs-user to log on to an ECS instance. For more information, see Manage the username used to log on to an ECS instance. Valid values: true, false. Default value: false.\n"},"instanceDescription":{"type":"string","description":"The description of ECS instances. The description must be 2 to 256 characters in length. It can contain letters but cannot start with http:// or https://.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"It has been deprecated from version 1.6.0. New resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ess.Attachment`\" pulumi-lang-dotnet=\"`alicloud.ess.Attachment`\" pulumi-lang-go=\"`ess.Attachment`\" pulumi-lang-python=\"`ess.Attachment`\" pulumi-lang-yaml=\"`alicloud.ess.Attachment`\" pulumi-lang-java=\"`alicloud.ess.Attachment`\"\u003e`alicloud.ess.Attachment`\u003c/span\u003e replaces it.\n","deprecationMessage":"Field 'instance_ids' has been deprecated from provider version 1.6.0. New resource 'alicloud_ess_attachment' replaces it."},"instanceName":{"type":"string","description":"Name of an ECS instance. Default to \"ESS-Instance\". It is valid from version 1.7.1.\n"},"instancePatternInfos":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationInstancePatternInfo:ScalingConfigurationInstancePatternInfo"},"description":"intelligent configuration mode. In this mode, you only need to specify the number of vCPUs, memory size, instance family, and maximum price. The system selects an instance type that is provided at the lowest price based on your configurations to create ECS instances. This mode is available only for scaling groups that reside in virtual private clouds (VPCs). This mode helps reduce the failures of scale-out activities caused by insufficient inventory of instance types.  See \u003cspan pulumi-lang-nodejs=\"`instancePatternInfo`\" pulumi-lang-dotnet=\"`InstancePatternInfo`\" pulumi-lang-go=\"`instancePatternInfo`\" pulumi-lang-python=\"`instance_pattern_info`\" pulumi-lang-yaml=\"`instancePatternInfo`\" pulumi-lang-java=\"`instancePatternInfo`\"\u003e`instance_pattern_info`\u003c/span\u003e below for details.\n"},"instanceType":{"type":"string","description":"Resource type of an ECS instance.\n"},"instanceTypeOverrides":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationInstanceTypeOverride:ScalingConfigurationInstanceTypeOverride"},"description":"specify the weight of instance type.  See \u003cspan pulumi-lang-nodejs=\"`instanceTypeOverride`\" pulumi-lang-dotnet=\"`InstanceTypeOverride`\" pulumi-lang-go=\"`instanceTypeOverride`\" pulumi-lang-python=\"`instance_type_override`\" pulumi-lang-yaml=\"`instanceTypeOverride`\" pulumi-lang-java=\"`instanceTypeOverride`\"\u003e`instance_type_override`\u003c/span\u003e below for details.\n"},"instanceTypes":{"type":"array","items":{"type":"string"},"description":"Resource types of an ECS instance.\n"},"internetChargeType":{"type":"string","description":"Network billing type, Values: PayByBandwidth or PayByTraffic. Default to `PayByBandwidth`.\n"},"internetMaxBandwidthIn":{"type":"integer","description":"Maximum incoming bandwidth from the public network, measured in Mbps (Mega bit per second).\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Maximum outgoing bandwidth from the public network, measured in Mbps (Mega bit per second). The value range for PayByBandwidth is [0,1024].\n"},"ioOptimized":{"type":"string","description":"It has been deprecated on instance resource. All the launched alicloud instances will be I/O optimized.\n","deprecationMessage":"Attribute\u003cspan pulumi-lang-nodejs=\" ioOptimized \" pulumi-lang-dotnet=\" IoOptimized \" pulumi-lang-go=\" ioOptimized \" pulumi-lang-python=\" io_optimized \" pulumi-lang-yaml=\" ioOptimized \" pulumi-lang-java=\" ioOptimized \"\u003e io_optimized \u003c/span\u003ehas been deprecated on instance resource. All the launched alicloud instances will be IO optimized. Suggest to remove it from your template."},"isOutdated":{"type":"boolean","description":"Whether to use outdated instance type. Default to false.\n"},"keyName":{"type":"string","description":"The name of key pair that can login ECS instance successfully without password. If it is specified, the password would be invalid.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored.\n","willReplaceOnChanges":true},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a db account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationNetworkInterface:ScalingConfigurationNetworkInterface"},"description":"Specify NetworkInterfaces.N to configure primary and secondary ENIs. In this case, specify at least one primary ENI. If you set NetworkInterfaces.N.InstanceType to Primary, a primary ENI is configured. If you set NetworkInterfaces.N.InstanceType to Secondary or leave the parameter empty, a secondary ENI is configured. See \u003cspan pulumi-lang-nodejs=\"`networkInterfaces`\" pulumi-lang-dotnet=\"`NetworkInterfaces`\" pulumi-lang-go=\"`networkInterfaces`\" pulumi-lang-python=\"`network_interfaces`\" pulumi-lang-yaml=\"`networkInterfaces`\" pulumi-lang-java=\"`networkInterfaces`\"\u003e`network_interfaces`\u003c/span\u003e below for details.\n"},"override":{"type":"boolean","description":"Indicates whether to overwrite the existing data. Default to false.\n"},"password":{"type":"string","description":"The password of the ECS instance. The password must be 8 to 30 characters in length. It must contains at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include `() ~!@#$%^\u0026*-_+=\\|{}[]:;'\u003c\u003e,.?/`, The password of Windows-based instances cannot start with a forward slash (/).\n","willReplaceOnChanges":true},"passwordInherit":{"type":"boolean","description":"Specifies whether to use the password that is predefined in the image. If the PasswordInherit parameter is set to true, the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e will be ignored. You must ensure that the selected image has a password configured.\n"},"resourceGroupId":{"type":"string","description":"ID of resource group.\n"},"roleName":{"type":"string","description":"Instance RAM role name. The name is provided and maintained by RAM. You can use \u003cspan pulumi-lang-nodejs=\"`alicloud.ram.Role`\" pulumi-lang-dotnet=\"`alicloud.ram.Role`\" pulumi-lang-go=\"`ram.Role`\" pulumi-lang-python=\"`ram.Role`\" pulumi-lang-yaml=\"`alicloud.ram.Role`\" pulumi-lang-java=\"`alicloud.ram.Role`\"\u003e`alicloud.ram.Role`\u003c/span\u003e to create a new one.\n"},"scalingConfigurationName":{"type":"string","description":"Name shown for the scheduled task. which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores `_`, hypens `-`, and decimal point `.`. If this parameter value is not specified, the default value is ScalingConfigurationId.\n"},"scalingGroupId":{"type":"string","description":"ID of the scaling group of a scaling configuration.\n","willReplaceOnChanges":true},"securityEnhancementStrategy":{"type":"string","description":"Specifies whether to enable Security Hardening. Valid values: Active, Deactive.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"ID of the security group used to create new instance. It is conflict with \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"List IDs of the security group used to create new instances. It is conflict with \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e.\n"},"spotDuration":{"type":"integer","description":"The protection period of preemptible instances. Unit: hours. Valid values: 1, 0.\n"},"spotPriceLimits":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationSpotPriceLimit:ScalingConfigurationSpotPriceLimit"},"description":"Sets the maximum price hourly for instance types. See \u003cspan pulumi-lang-nodejs=\"`spotPriceLimit`\" pulumi-lang-dotnet=\"`SpotPriceLimit`\" pulumi-lang-go=\"`spotPriceLimit`\" pulumi-lang-python=\"`spot_price_limit`\" pulumi-lang-yaml=\"`spotPriceLimit`\" pulumi-lang-java=\"`spotPriceLimit`\"\u003e`spot_price_limit`\u003c/span\u003e below for details.\n\n\u003e **NOTE:** Before enabling the scaling group, it must have a active scaling configuration.\n\n\u003e **NOTE:** If the number of attached ECS instances by \u003cspan pulumi-lang-nodejs=\"`instanceIds`\" pulumi-lang-dotnet=\"`InstanceIds`\" pulumi-lang-go=\"`instanceIds`\" pulumi-lang-python=\"`instance_ids`\" pulumi-lang-yaml=\"`instanceIds`\" pulumi-lang-java=\"`instanceIds`\"\u003e`instance_ids`\u003c/span\u003e is smaller than MinSize, the Auto Scaling Service will automatically create ECS Pay-As-You-Go instance to cater to MinSize. For example, MinSize=5 and 2 existing ECS instances has been attached to the scaling group. When the scaling group is enabled, it will create 3 instnaces automatically based on its current active scaling configuration.\n\n\u003e **NOTE:** Restrictions on attaching ECS instances:\n\n- The attached ECS instances and the scaling group must have the same region and network type(`Classic` or `VPC`).\n- The attached ECS instances and the instance with active scaling configurations must have the same instance type.\n- The attached ECS instances must in the running state.\n- The attached ECS instances has not been attached to other scaling groups.\n- The attached ECS instances supports Subscription and Pay-As-You-Go payment methods.\n\n\u003e **NOTE:** The last scaling configuration can't be set to inactive and deleted alone.\n"},"spotStrategy":{"type":"string","description":"The spot strategy for a Pay-As-You-Go instance. Valid values: `NoSpot`, `SpotAsPriceGo`, `SpotWithPriceLimit`.\n"},"substitute":{"type":"string","description":"The another scaling configuration which will be active automatically and replace current configuration when setting \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e to 'false'. It is invalid when \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e is 'true'.\n"},"systemDiskAutoSnapshotPolicyId":{"type":"string","description":"The id of auto snapshot policy for system disk.\n"},"systemDiskCategory":{"type":"string","description":"Category of the system disk. The parameter value options are \u003cspan pulumi-lang-nodejs=\"`ephemeralSsd`\" pulumi-lang-dotnet=\"`EphemeralSsd`\" pulumi-lang-go=\"`ephemeralSsd`\" pulumi-lang-python=\"`ephemeral_ssd`\" pulumi-lang-yaml=\"`ephemeralSsd`\" pulumi-lang-java=\"`ephemeralSsd`\"\u003e`ephemeral_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e only is used to some no I/O optimized instance. Default to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n"},"systemDiskDescription":{"type":"string","description":"The description of the system disk. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"systemDiskEncryptAlgorithm":{"type":"string","description":"The algorithm that you want to use to encrypt the system disk. Valid values: AES-256, SM4-128.\n"},"systemDiskEncrypted":{"type":"boolean","description":"Whether to encrypt the system disk.\n"},"systemDiskKmsKeyId":{"type":"string","description":"The ID of the KMS key that you want to use to encrypt the system disk.\n"},"systemDiskName":{"type":"string","description":"The name of the system disk. It must be 2 to 128 characters in length. It must start with a letter and cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), and hyphens (-). Default value: null.\n"},"systemDiskPerformanceLevel":{"type":"string","description":"The performance level of the ESSD used as the system disk.\n"},"systemDiskProvisionedIops":{"type":"integer","description":"IOPS measures the number of read and write operations that an EBS device can process per second.\n"},"systemDiskSize":{"type":"integer","description":"Size of system disk, in GiB. Valid values: Basic disk: 20 to 500, ESSD: The valid values depend on the performance level (PL) of the system disk (PL0 ESSD: 1 to 2048, PL1 ESSD: 20 to 2048, PL2 ESSD: 461 to 2048, PL3 ESSD: 1261 to 2048) , ESSD AutoPL disk: 1 to 2048, Other disk categories: 20 to 2048. The value of this parameter must be at least 1 and greater than or equal to the image size. Default value: 40 or the size of the image, whichever is larger.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource. It will be applied for ECS instances finally.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"http://\", or \"https://\" It can be a null string.\n"},"userData":{"type":"string","description":"User-defined data to customize the startup behaviors of the ECS instance and to pass data into the ECS instance.\n"}},"requiredInputs":["scalingGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering ScalingConfiguration resources.\n","properties":{"active":{"type":"boolean","description":"Whether active current scaling configuration in the specified scaling group. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"creditSpecification":{"type":"string","description":"Performance mode of the t5 burstable instance. Valid values: 'Standard', 'Unlimited'.\n"},"customPriorities":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationCustomPriority:ScalingConfigurationCustomPriority"},"description":"You can use CustomPriorities to specify the priority of a custom ECS instance type + vSwitch combination. See \u003cspan pulumi-lang-nodejs=\"`customPriorities`\" pulumi-lang-dotnet=\"`CustomPriorities`\" pulumi-lang-go=\"`customPriorities`\" pulumi-lang-python=\"`custom_priorities`\" pulumi-lang-yaml=\"`customPriorities`\" pulumi-lang-java=\"`customPriorities`\"\u003e`custom_priorities`\u003c/span\u003e below for details.\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationDataDisk:ScalingConfigurationDataDisk"},"description":"DataDisk mappings to attach to ecs instance. See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below for details.\n"},"dedicatedHostClusterId":{"type":"string","description":"The ID of the dedicated host cluster.\n"},"deletionProtection":{"type":"boolean","description":"Specifies whether to enable the Release Protection feature for ECS instances. This parameter is applicable to only pay-as-you-go instances. You can use this parameter to specify whether an ECS instance can be directly released by using the ECS console or calling the DeleteInstance operation. Valid values: true, false. Default value: false.\n"},"enable":{"type":"boolean","description":"Whether enable the specified scaling group(make it active) to which the current scaling configuration belongs.\n"},"forceDelete":{"type":"boolean","description":"The last scaling configuration will be deleted forcibly with deleting its scaling group. Default to false.\n"},"hostName":{"type":"string","description":"Hostname of an ECS instance.\n"},"httpEndpoint":{"type":"string","description":"Specifies whether to enable the access channel for instance metadata. Valid values: enabled, disabled.\n"},"imageId":{"type":"string","description":"ID of an image file, indicating the image resource selected when an instance is enabled.\n"},"imageName":{"type":"string","description":"Name of an image file, indicating the image resource selected when an instance is enabled.\n"},"imageOptionsLoginAsNonRoot":{"type":"boolean","description":"Specifies whether to use ecs-user to log on to an ECS instance. For more information, see Manage the username used to log on to an ECS instance. Valid values: true, false. Default value: false.\n"},"instanceDescription":{"type":"string","description":"The description of ECS instances. The description must be 2 to 256 characters in length. It can contain letters but cannot start with http:// or https://.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"It has been deprecated from version 1.6.0. New resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ess.Attachment`\" pulumi-lang-dotnet=\"`alicloud.ess.Attachment`\" pulumi-lang-go=\"`ess.Attachment`\" pulumi-lang-python=\"`ess.Attachment`\" pulumi-lang-yaml=\"`alicloud.ess.Attachment`\" pulumi-lang-java=\"`alicloud.ess.Attachment`\"\u003e`alicloud.ess.Attachment`\u003c/span\u003e replaces it.\n","deprecationMessage":"Field 'instance_ids' has been deprecated from provider version 1.6.0. New resource 'alicloud_ess_attachment' replaces it."},"instanceName":{"type":"string","description":"Name of an ECS instance. Default to \"ESS-Instance\". It is valid from version 1.7.1.\n"},"instancePatternInfos":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationInstancePatternInfo:ScalingConfigurationInstancePatternInfo"},"description":"intelligent configuration mode. In this mode, you only need to specify the number of vCPUs, memory size, instance family, and maximum price. The system selects an instance type that is provided at the lowest price based on your configurations to create ECS instances. This mode is available only for scaling groups that reside in virtual private clouds (VPCs). This mode helps reduce the failures of scale-out activities caused by insufficient inventory of instance types.  See \u003cspan pulumi-lang-nodejs=\"`instancePatternInfo`\" pulumi-lang-dotnet=\"`InstancePatternInfo`\" pulumi-lang-go=\"`instancePatternInfo`\" pulumi-lang-python=\"`instance_pattern_info`\" pulumi-lang-yaml=\"`instancePatternInfo`\" pulumi-lang-java=\"`instancePatternInfo`\"\u003e`instance_pattern_info`\u003c/span\u003e below for details.\n"},"instanceType":{"type":"string","description":"Resource type of an ECS instance.\n"},"instanceTypeOverrides":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationInstanceTypeOverride:ScalingConfigurationInstanceTypeOverride"},"description":"specify the weight of instance type.  See \u003cspan pulumi-lang-nodejs=\"`instanceTypeOverride`\" pulumi-lang-dotnet=\"`InstanceTypeOverride`\" pulumi-lang-go=\"`instanceTypeOverride`\" pulumi-lang-python=\"`instance_type_override`\" pulumi-lang-yaml=\"`instanceTypeOverride`\" pulumi-lang-java=\"`instanceTypeOverride`\"\u003e`instance_type_override`\u003c/span\u003e below for details.\n"},"instanceTypes":{"type":"array","items":{"type":"string"},"description":"Resource types of an ECS instance.\n"},"internetChargeType":{"type":"string","description":"Network billing type, Values: PayByBandwidth or PayByTraffic. Default to `PayByBandwidth`.\n"},"internetMaxBandwidthIn":{"type":"integer","description":"Maximum incoming bandwidth from the public network, measured in Mbps (Mega bit per second).\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Maximum outgoing bandwidth from the public network, measured in Mbps (Mega bit per second). The value range for PayByBandwidth is [0,1024].\n"},"ioOptimized":{"type":"string","description":"It has been deprecated on instance resource. All the launched alicloud instances will be I/O optimized.\n","deprecationMessage":"Attribute\u003cspan pulumi-lang-nodejs=\" ioOptimized \" pulumi-lang-dotnet=\" IoOptimized \" pulumi-lang-go=\" ioOptimized \" pulumi-lang-python=\" io_optimized \" pulumi-lang-yaml=\" ioOptimized \" pulumi-lang-java=\" ioOptimized \"\u003e io_optimized \u003c/span\u003ehas been deprecated on instance resource. All the launched alicloud instances will be IO optimized. Suggest to remove it from your template."},"isOutdated":{"type":"boolean","description":"Whether to use outdated instance type. Default to false.\n"},"keyName":{"type":"string","description":"The name of key pair that can login ECS instance successfully without password. If it is specified, the password would be invalid.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored.\n","willReplaceOnChanges":true},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a db account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationNetworkInterface:ScalingConfigurationNetworkInterface"},"description":"Specify NetworkInterfaces.N to configure primary and secondary ENIs. In this case, specify at least one primary ENI. If you set NetworkInterfaces.N.InstanceType to Primary, a primary ENI is configured. If you set NetworkInterfaces.N.InstanceType to Secondary or leave the parameter empty, a secondary ENI is configured. See \u003cspan pulumi-lang-nodejs=\"`networkInterfaces`\" pulumi-lang-dotnet=\"`NetworkInterfaces`\" pulumi-lang-go=\"`networkInterfaces`\" pulumi-lang-python=\"`network_interfaces`\" pulumi-lang-yaml=\"`networkInterfaces`\" pulumi-lang-java=\"`networkInterfaces`\"\u003e`network_interfaces`\u003c/span\u003e below for details.\n"},"override":{"type":"boolean","description":"Indicates whether to overwrite the existing data. Default to false.\n"},"password":{"type":"string","description":"The password of the ECS instance. The password must be 8 to 30 characters in length. It must contains at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include `() ~!@#$%^\u0026*-_+=\\|{}[]:;'\u003c\u003e,.?/`, The password of Windows-based instances cannot start with a forward slash (/).\n","willReplaceOnChanges":true},"passwordInherit":{"type":"boolean","description":"Specifies whether to use the password that is predefined in the image. If the PasswordInherit parameter is set to true, the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e will be ignored. You must ensure that the selected image has a password configured.\n"},"resourceGroupId":{"type":"string","description":"ID of resource group.\n"},"roleName":{"type":"string","description":"Instance RAM role name. The name is provided and maintained by RAM. You can use \u003cspan pulumi-lang-nodejs=\"`alicloud.ram.Role`\" pulumi-lang-dotnet=\"`alicloud.ram.Role`\" pulumi-lang-go=\"`ram.Role`\" pulumi-lang-python=\"`ram.Role`\" pulumi-lang-yaml=\"`alicloud.ram.Role`\" pulumi-lang-java=\"`alicloud.ram.Role`\"\u003e`alicloud.ram.Role`\u003c/span\u003e to create a new one.\n"},"scalingConfigurationName":{"type":"string","description":"Name shown for the scheduled task. which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores `_`, hypens `-`, and decimal point `.`. If this parameter value is not specified, the default value is ScalingConfigurationId.\n"},"scalingGroupId":{"type":"string","description":"ID of the scaling group of a scaling configuration.\n","willReplaceOnChanges":true},"securityEnhancementStrategy":{"type":"string","description":"Specifies whether to enable Security Hardening. Valid values: Active, Deactive.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"ID of the security group used to create new instance. It is conflict with \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"List IDs of the security group used to create new instances. It is conflict with \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e.\n"},"spotDuration":{"type":"integer","description":"The protection period of preemptible instances. Unit: hours. Valid values: 1, 0.\n"},"spotPriceLimits":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingConfigurationSpotPriceLimit:ScalingConfigurationSpotPriceLimit"},"description":"Sets the maximum price hourly for instance types. See \u003cspan pulumi-lang-nodejs=\"`spotPriceLimit`\" pulumi-lang-dotnet=\"`SpotPriceLimit`\" pulumi-lang-go=\"`spotPriceLimit`\" pulumi-lang-python=\"`spot_price_limit`\" pulumi-lang-yaml=\"`spotPriceLimit`\" pulumi-lang-java=\"`spotPriceLimit`\"\u003e`spot_price_limit`\u003c/span\u003e below for details.\n\n\u003e **NOTE:** Before enabling the scaling group, it must have a active scaling configuration.\n\n\u003e **NOTE:** If the number of attached ECS instances by \u003cspan pulumi-lang-nodejs=\"`instanceIds`\" pulumi-lang-dotnet=\"`InstanceIds`\" pulumi-lang-go=\"`instanceIds`\" pulumi-lang-python=\"`instance_ids`\" pulumi-lang-yaml=\"`instanceIds`\" pulumi-lang-java=\"`instanceIds`\"\u003e`instance_ids`\u003c/span\u003e is smaller than MinSize, the Auto Scaling Service will automatically create ECS Pay-As-You-Go instance to cater to MinSize. For example, MinSize=5 and 2 existing ECS instances has been attached to the scaling group. When the scaling group is enabled, it will create 3 instnaces automatically based on its current active scaling configuration.\n\n\u003e **NOTE:** Restrictions on attaching ECS instances:\n\n- The attached ECS instances and the scaling group must have the same region and network type(`Classic` or `VPC`).\n- The attached ECS instances and the instance with active scaling configurations must have the same instance type.\n- The attached ECS instances must in the running state.\n- The attached ECS instances has not been attached to other scaling groups.\n- The attached ECS instances supports Subscription and Pay-As-You-Go payment methods.\n\n\u003e **NOTE:** The last scaling configuration can't be set to inactive and deleted alone.\n"},"spotStrategy":{"type":"string","description":"The spot strategy for a Pay-As-You-Go instance. Valid values: `NoSpot`, `SpotAsPriceGo`, `SpotWithPriceLimit`.\n"},"substitute":{"type":"string","description":"The another scaling configuration which will be active automatically and replace current configuration when setting \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e to 'false'. It is invalid when \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e is 'true'.\n"},"systemDiskAutoSnapshotPolicyId":{"type":"string","description":"The id of auto snapshot policy for system disk.\n"},"systemDiskCategory":{"type":"string","description":"Category of the system disk. The parameter value options are \u003cspan pulumi-lang-nodejs=\"`ephemeralSsd`\" pulumi-lang-dotnet=\"`EphemeralSsd`\" pulumi-lang-go=\"`ephemeralSsd`\" pulumi-lang-python=\"`ephemeral_ssd`\" pulumi-lang-yaml=\"`ephemeralSsd`\" pulumi-lang-java=\"`ephemeralSsd`\"\u003e`ephemeral_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e only is used to some no I/O optimized instance. Default to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n"},"systemDiskDescription":{"type":"string","description":"The description of the system disk. The description must be 2 to 256 characters in length and cannot start with http:// or https://.\n"},"systemDiskEncryptAlgorithm":{"type":"string","description":"The algorithm that you want to use to encrypt the system disk. Valid values: AES-256, SM4-128.\n"},"systemDiskEncrypted":{"type":"boolean","description":"Whether to encrypt the system disk.\n"},"systemDiskKmsKeyId":{"type":"string","description":"The ID of the KMS key that you want to use to encrypt the system disk.\n"},"systemDiskName":{"type":"string","description":"The name of the system disk. It must be 2 to 128 characters in length. It must start with a letter and cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), and hyphens (-). Default value: null.\n"},"systemDiskPerformanceLevel":{"type":"string","description":"The performance level of the ESSD used as the system disk.\n"},"systemDiskProvisionedIops":{"type":"integer","description":"IOPS measures the number of read and write operations that an EBS device can process per second.\n"},"systemDiskSize":{"type":"integer","description":"Size of system disk, in GiB. Valid values: Basic disk: 20 to 500, ESSD: The valid values depend on the performance level (PL) of the system disk (PL0 ESSD: 1 to 2048, PL1 ESSD: 20 to 2048, PL2 ESSD: 461 to 2048, PL3 ESSD: 1261 to 2048) , ESSD AutoPL disk: 1 to 2048, Other disk categories: 20 to 2048. The value of this parameter must be at least 1 and greater than or equal to the image size. Default value: 40 or the size of the image, whichever is larger.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource. It will be applied for ECS instances finally.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"http://\", or \"https://\" It can be a null string.\n"},"userData":{"type":"string","description":"User-defined data to customize the startup behaviors of the ECS instance and to pass data into the ECS instance.\n"}},"type":"object"}},"alicloud:ess/scalingGroup:ScalingGroup":{"description":"Provides a ESS scaling group resource which is a collection of ECS instances with the same application scenarios.\n\nIt defines the maximum and minimum numbers of ECS instances in the group, and their associated Server Load Balancer instances, RDS instances, and other attributes.\n\n\u003e **NOTE:** You can launch an ESS scaling group for a VPC network via specifying parameter \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e.\n\nFor information about ess scaling rule, see [CreateScalingGroup](https://www.alibabacloud.com/help/en/auto-scaling/latest/createscalinggroup).\n\n\u003e **NOTE:** Available since v1.39.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst myName = `${name}-${defaultInteger.result}`;\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 2,\n    memorySize: 4,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: myName,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: myName,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    securityGroupName: myName,\n    vpcId: defaultNetwork.id,\n});\nconst defaultSecurityGroupRule = new alicloud.ecs.SecurityGroupRule(\"default\", {\n    type: \"ingress\",\n    ipProtocol: \"tcp\",\n    nicType: \"intranet\",\n    policy: \"accept\",\n    portRange: \"22/22\",\n    priority: 1,\n    securityGroupId: defaultSecurityGroup.id,\n    cidrIp: \"172.16.0.0/24\",\n});\nconst default2 = new alicloud.vpc.Switch(\"default2\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.1.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: `${name}-bar`,\n});\nconst defaultScalingGroup = new alicloud.ess.ScalingGroup(\"default\", {\n    minSize: 1,\n    maxSize: 1,\n    scalingGroupName: myName,\n    defaultCooldown: 20,\n    vswitchIds: [\n        defaultSwitch.id,\n        default2.id,\n    ],\n    removalPolicies: [\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nmy_name = f\"{name}-{default_integer['result']}\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=2,\n    memory_size=4)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=my_name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=my_name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    security_group_name=my_name,\n    vpc_id=default_network.id)\ndefault_security_group_rule = alicloud.ecs.SecurityGroupRule(\"default\",\n    type=\"ingress\",\n    ip_protocol=\"tcp\",\n    nic_type=\"intranet\",\n    policy=\"accept\",\n    port_range=\"22/22\",\n    priority=1,\n    security_group_id=default_security_group.id,\n    cidr_ip=\"172.16.0.0/24\")\ndefault2 = alicloud.vpc.Switch(\"default2\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.1.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=f\"{name}-bar\")\ndefault_scaling_group = alicloud.ess.ScalingGroup(\"default\",\n    min_size=1,\n    max_size=1,\n    scaling_group_name=my_name,\n    default_cooldown=20,\n    vswitch_ids=[\n        default_switch.id,\n        default2.id,\n    ],\n    removal_policies=[\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var myName = $\"{name}-{defaultInteger.Result}\";\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 2,\n        MemorySize = 4,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = myName,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = myName,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = myName,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultSecurityGroupRule = new AliCloud.Ecs.SecurityGroupRule(\"default\", new()\n    {\n        Type = \"ingress\",\n        IpProtocol = \"tcp\",\n        NicType = \"intranet\",\n        Policy = \"accept\",\n        PortRange = \"22/22\",\n        Priority = 1,\n        SecurityGroupId = defaultSecurityGroup.Id,\n        CidrIp = \"172.16.0.0/24\",\n    });\n\n    var default2 = new AliCloud.Vpc.Switch(\"default2\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.1.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = $\"{name}-bar\",\n    });\n\n    var defaultScalingGroup = new AliCloud.Ess.ScalingGroup(\"default\", new()\n    {\n        MinSize = 1,\n        MaxSize = 1,\n        ScalingGroupName = myName,\n        DefaultCooldown = 20,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n            default2.Id,\n        },\n        RemovalPolicies = new[]\n        {\n            \"OldestInstance\",\n            \"NewestInstance\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyName := fmt.Sprintf(\"%v-%v\", name, defaultInteger.Result)\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(2),\n\t\t\tMemorySize:       pulumi.Float64Ref(4),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(myName),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(myName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(myName),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroupRule(ctx, \"default\", \u0026ecs.SecurityGroupRuleArgs{\n\t\t\tType:            pulumi.String(\"ingress\"),\n\t\t\tIpProtocol:      pulumi.String(\"tcp\"),\n\t\t\tNicType:         pulumi.String(\"intranet\"),\n\t\t\tPolicy:          pulumi.String(\"accept\"),\n\t\t\tPortRange:       pulumi.String(\"22/22\"),\n\t\t\tPriority:        pulumi.Int(1),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tCidrIp:          pulumi.String(\"172.16.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault2, err := vpc.NewSwitch(ctx, \"default2\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.1.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.Sprintf(\"%v-bar\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ess.NewScalingGroup(ctx, \"default\", \u0026ess.ScalingGroupArgs{\n\t\t\tMinSize:          pulumi.Int(1),\n\t\t\tMaxSize:          pulumi.Int(1),\n\t\t\tScalingGroupName: pulumi.String(myName),\n\t\t\tDefaultCooldown:  pulumi.Int(20),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t\tdefault2.ID(),\n\t\t\t},\n\t\t\tRemovalPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OldestInstance\"),\n\t\t\t\tpulumi.String(\"NewestInstance\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroupRule;\nimport com.pulumi.alicloud.ecs.SecurityGroupRuleArgs;\nimport com.pulumi.alicloud.ess.ScalingGroup;\nimport com.pulumi.alicloud.ess.ScalingGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var myName = String.format(\"%s-%s\", name,defaultInteger.result());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(myName)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(myName)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(myName)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultSecurityGroupRule = new SecurityGroupRule(\"defaultSecurityGroupRule\", SecurityGroupRuleArgs.builder()\n            .type(\"ingress\")\n            .ipProtocol(\"tcp\")\n            .nicType(\"intranet\")\n            .policy(\"accept\")\n            .portRange(\"22/22\")\n            .priority(1)\n            .securityGroupId(defaultSecurityGroup.id())\n            .cidrIp(\"172.16.0.0/24\")\n            .build());\n\n        var default2 = new Switch(\"default2\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.1.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(String.format(\"%s-bar\", name))\n            .build());\n\n        var defaultScalingGroup = new ScalingGroup(\"defaultScalingGroup\", ScalingGroupArgs.builder()\n            .minSize(1)\n            .maxSize(1)\n            .scalingGroupName(myName)\n            .defaultCooldown(20)\n            .vswitchIds(            \n                defaultSwitch.id(),\n                default2.id())\n            .removalPolicies(            \n                \"OldestInstance\",\n                \"NewestInstance\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${myName}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${myName}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      securityGroupName: ${myName}\n      vpcId: ${defaultNetwork.id}\n  defaultSecurityGroupRule:\n    type: alicloud:ecs:SecurityGroupRule\n    name: default\n    properties:\n      type: ingress\n      ipProtocol: tcp\n      nicType: intranet\n      policy: accept\n      portRange: 22/22\n      priority: 1\n      securityGroupId: ${defaultSecurityGroup.id}\n      cidrIp: 172.16.0.0/24\n  default2:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.1.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}-bar\n  defaultScalingGroup:\n    type: alicloud:ess:ScalingGroup\n    name: default\n    properties:\n      minSize: 1\n      maxSize: 1\n      scalingGroupName: ${myName}\n      defaultCooldown: 20\n      vswitchIds:\n        - ${defaultSwitch.id}\n        - ${default2.id}\n      removalPolicies:\n        - OldestInstance\n        - NewestInstance\nvariables:\n  myName: ${name}-${defaultInteger.result}\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 2\n        memorySize: 4\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use to the existing autoscaling module \nto create a scaling group, configuration and lifecycle hook one-click.\n\n## Import\n\nESS scaling group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ess/scalingGroup:ScalingGroup example asg-abc123456\n```\n\n","properties":{"albServerGroups":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingGroupAlbServerGroup:ScalingGroupAlbServerGroup"},"description":"If a Serve ALB instance is specified in the scaling group, the scaling group automatically attaches its ECS instances to the Server ALB instance.  See \u003cspan pulumi-lang-nodejs=\"`albServerGroup`\" pulumi-lang-dotnet=\"`AlbServerGroup`\" pulumi-lang-go=\"`albServerGroup`\" pulumi-lang-python=\"`alb_server_group`\" pulumi-lang-yaml=\"`albServerGroup`\" pulumi-lang-java=\"`albServerGroup`\"\u003e`alb_server_group`\u003c/span\u003e below for details.\n"},"allocationStrategy":{"type":"string","description":"The allocation policy of instances. Auto Scaling selects instance types based on the allocation policy to create instances. The policy can be applied to pay-as-you-go instances and preemptible instances. This parameter takes effect only if you set MultiAZPolicy to COMPOSABLE.\n"},"autoRebalance":{"type":"boolean","description":"Specifies whether to enable automatic rebalancing for the scaling group. This parameter takes effect only when BalancedOnly is enabled for a zone-balanced scaling group. Valid values: false, true.\n"},"azBalance":{"type":"boolean","description":"Specifies whether to evenly distribute instances in the scaling group across multiple zones. This parameter takes effect only if you set MultiAZPolicy to COMPOSABLE.\n"},"balanceMode":{"type":"string","description":"The zone balancing mode. This parameter takes effect only when zone balancing is enabled. Valid values: BalancedBestEffort, BalancedOnly.\n"},"capacityOptionsCompensateWithOnDemand":{"type":"boolean","description":"Specifies whether to automatically create pay-as-you-go instances to meet the requirement on the number of ECS instances when the expected capacity of preemptible instances cannot be provided due to reasons such as cost-related issues and insufficient resources. This parameter is supported only if you set 'multi_az_policy' to COST_OPTIMIZED. Valid values: true, false.\n"},"capacityOptionsOnDemandBaseCapacity":{"type":"integer","description":"The minimum number of pay-as-you-go instances that must be contained in the scaling group. When the actual number of pay-as-you-go instances in the scaling group drops below the value of this parameter, Auto Scaling preferentially creates pay-as-you-go instances. Valid values: 0 to 1000. If you set 'multi_az_policy' to COMPOSABLE, the default value of this parameter is 0.\n"},"capacityOptionsOnDemandPercentageAboveBaseCapacity":{"type":"integer","description":"The percentage of pay-as-you-go instances in the excess instances when the minimum number of pay-as-you-go instances is reached. 'on_demand_base_capacity' specifies the minimum number of pay-as-you-go instances that must be contained in the scaling group. Valid values: 0 to 100. If you set 'multi_az_policy' to COMPOSABLE, the default value of this parameter is 100.\n"},"capacityOptionsPriceComparisonMode":{"type":"string","description":"The price comparison mode. Valid values: PricePerUnit,PricePerVCpu. Default value: PricePerUnit.\n"},"capacityOptionsSpotAutoReplaceOnDemand":{"type":"boolean","description":"Specifies whether to replace pay-as-you-go instances with preemptible instances. If you specify 'compensate_with_on_demand', it may result in a higher percentage of pay-as-you-go instances compared to the value of 'on_demand_percentage_above_base_capacity'. If you specify this parameter, Auto Scaling preferentially deploys preemptible instances to replace the surplus pay-as-you-go instances when preemptible instance types are available. If you specify 'compensate_with_on_demand', Auto Scaling creates pay-as-you-go instances when preemptible instance types are insufficient. To avoid retaining these pay-as-you-go instances for extended periods, Auto Scaling attempts to replace them with preemptible instances when sufficient preemptible instance types become available. Valid values: true, false.\n"},"compensateWithOnDemand":{"type":"boolean","description":"Specifies whether to automatically create pay-as-you-go instances to meet the requirement on the number of ECS instances when the expected capacity of preemptible instances cannot be provided due to reasons such as cost-related issues and insufficient resources. This parameter is supported only if you set 'multi_az_policy' to COST_OPTIMIZED. Valid values: true, false.\n"},"containerGroupId":{"type":"string","description":"The ID of the elastic container instance.\n"},"dbInstanceIds":{"type":"array","items":{"type":"string"},"description":"If an RDS instance is specified in the scaling group, the scaling group automatically attaches the Intranet IP addresses of its ECS instances to the RDS access whitelist.\n- The specified RDS instance must be in running status.\n- The specified RDS instance’s whitelist must have room for more IP addresses.\n"},"defaultCooldown":{"type":"integer","description":"Default cool-down time (in seconds) of the scaling group. Value range: [0, 86400]. The default value is 300s.\n"},"desiredCapacity":{"type":"integer","description":"Expected number of ECS instances in the scaling group. Value range: [min_size,\u003cspan pulumi-lang-nodejs=\" maxSize]\" pulumi-lang-dotnet=\" MaxSize]\" pulumi-lang-go=\" maxSize]\" pulumi-lang-python=\" max_size]\" pulumi-lang-yaml=\" maxSize]\" pulumi-lang-java=\" maxSize]\"\u003e max_size]\u003c/span\u003e.\n"},"groupDeletionProtection":{"type":"boolean","description":"Specifies whether the scaling group deletion protection is enabled. \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"groupType":{"type":"string","description":"Resource type within scaling group. Optional values: ECS, ECI. Default to ECS.\n"},"healthCheckType":{"type":"string","description":"Resource type within scaling group. Optional values: ECS, ECI, NONE, LOAD_BALANCER. Default to ECS.\n"},"healthCheckTypes":{"type":"array","items":{"type":"string"},"description":"The health check modes of the scaling group. Valid values: ECS, NONE, LOAD_BALANCER.\n"},"instanceId":{"type":"string","description":"The ID of the instance from which Auto Scaling obtains the required configuration information and uses the information to automatically create a scaling configuration.\n"},"launchTemplateId":{"type":"string","description":"Instance launch template ID, scaling group obtains launch configuration from instance launch template, see [Launch Template](https://www.alibabacloud.com/help/doc-detail/73916.html). Creating scaling group from launch template enable group automatically.\n"},"launchTemplateOverrides":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingGroupLaunchTemplateOverride:ScalingGroupLaunchTemplateOverride"},"description":"The details of the instance types that are specified by using the Extend Instance Type of Launch Template feature.  See \u003cspan pulumi-lang-nodejs=\"`launchTemplateOverride`\" pulumi-lang-dotnet=\"`LaunchTemplateOverride`\" pulumi-lang-go=\"`launchTemplateOverride`\" pulumi-lang-python=\"`launch_template_override`\" pulumi-lang-yaml=\"`launchTemplateOverride`\" pulumi-lang-java=\"`launchTemplateOverride`\"\u003e`launch_template_override`\u003c/span\u003e below for details.\n"},"launchTemplateVersion":{"type":"string","description":"The version number of the launch template. Valid values are the version number, `Latest`, or `Default`, Default value: `Default`.\n"},"loadbalancerIds":{"type":"array","items":{"type":"string"},"description":"If a Server Load Balancer instance is specified in the scaling group, the scaling group automatically attaches its ECS instances to the Server Load Balancer instance.\n- The Server Load Balancer instance must be enabled.\n- At least one listener must be configured for each Server Load Balancer and it HealthCheck must be on. Otherwise, creation will fail (it may be useful to add a \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e argument\ntargeting your \u003cspan pulumi-lang-nodejs=\"`alicloud.slb.Listener`\" pulumi-lang-dotnet=\"`alicloud.slb.Listener`\" pulumi-lang-go=\"`slb.Listener`\" pulumi-lang-python=\"`slb.Listener`\" pulumi-lang-yaml=\"`alicloud.slb.Listener`\" pulumi-lang-java=\"`alicloud.slb.Listener`\"\u003e`alicloud.slb.Listener`\u003c/span\u003e in order to make sure the listener with its HealthCheck configuration is ready before creating your scaling group).\n- The Server Load Balancer instance attached with VPC-type ECS instances cannot be attached to the scaling group.\n- The default weight of an ECS instance attached to the Server Load Balancer instance is 50.\n"},"maxInstanceLifetime":{"type":"integer","description":"The maximum life span of an instance in the scaling group. Unit: seconds.\n"},"maxSize":{"type":"integer","description":"Maximum number of ECS instances in the scaling group. Value range: [0, 2000].\n**NOTE:** From version 1.204.1, \u003cspan pulumi-lang-nodejs=\"`maxSize`\" pulumi-lang-dotnet=\"`MaxSize`\" pulumi-lang-go=\"`maxSize`\" pulumi-lang-python=\"`max_size`\" pulumi-lang-yaml=\"`maxSize`\" pulumi-lang-java=\"`maxSize`\"\u003e`max_size`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e.\n"},"minSize":{"type":"integer","description":"Minimum number of ECS instances in the scaling group. Value range: [0, 2000].\n**NOTE:** From version 1.204.1, \u003cspan pulumi-lang-nodejs=\"`minSize`\" pulumi-lang-dotnet=\"`MinSize`\" pulumi-lang-go=\"`minSize`\" pulumi-lang-python=\"`min_size`\" pulumi-lang-yaml=\"`minSize`\" pulumi-lang-java=\"`minSize`\"\u003e`min_size`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e.\n"},"multiAzPolicy":{"type":"string","description":"Multi-AZ scaling group ECS instance expansion and contraction strategy. PRIORITY, COMPOSABLE, BALANCE or COST_OPTIMIZED(Available since v1.54.0).\n"},"onDemandBaseCapacity":{"type":"integer","description":"The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand Instances. This base portion is provisioned first as your group scales.\n"},"onDemandPercentageAboveBaseCapacity":{"type":"integer","description":"Controls the percentages of On-Demand Instances and Spot Instances for your additional capacity beyond OnDemandBaseCapacity.\n"},"protectedInstances":{"type":"array","items":{"type":"string"},"description":"Set or unset instances within group into protected status.\n"},"removalPolicies":{"type":"array","items":{"type":"string"},"description":"RemovalPolicy is used to select the ECS instances you want to remove from the scaling group when multiple candidates for removal exist. Optional values:\n- OldestInstance: removes the ECS instance that is added to the scaling group at the earliest point in time.\n- NewestInstance: removes the ECS instance that is added to the scaling group at the latest point in time.\n- OldestScalingConfiguration: removes the ECS instance that is created based on the earliest scaling configuration.\n- Default values: Default value of RemovalPolicy.1: OldestScalingConfiguration. Default value of RemovalPolicy.2: OldestInstance.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which you want to add the scaling group.\n"},"scalingGroupName":{"type":"string","description":"Name shown for the scaling group, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain numbers, underscores `_`, hyphens `-`, and decimal points `.`. If this parameter is not specified, the default value is ScalingGroupId.\n"},"scalingPolicy":{"type":"string","description":"The reclaim mode of the scaling group. Optional values: recycle, release, forceRecycle, forceRelease.\n"},"spotAllocationStrategy":{"type":"string","description":"The allocation policy of preemptible instances. You can use this parameter to individually specify the allocation policy for preemptible instances. This parameter takes effect only if you set MultiAZPolicy to COMPOSABLE.\n"},"spotInstancePools":{"type":"integer","description":"The number of Spot pools to use to allocate your Spot capacity. The Spot pools is composed of instance types of lowest price.\n"},"spotInstanceRemedy":{"type":"boolean","description":"Whether to replace spot instances with newly created spot/onDemand instance when receive a spot recycling message.\n"},"stopInstanceTimeout":{"type":"integer","description":"The period of time required by the ECS instance to enter the Stopped state. Unit: seconds. Valid values: 30 to 240.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"vswitchId":{"type":"string","description":"It has been deprecated from version 1.7.1 and new field 'vswitch_ids' replaces it.\n","deprecationMessage":"Field 'vswitch_id' has been deprecated from provider version 1.7.1, and new field 'vswitch_ids' can replace it."},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"List of virtual switch IDs in which the ecs instances to be launched.\n"}},"required":["allocationStrategy","capacityOptionsCompensateWithOnDemand","capacityOptionsOnDemandBaseCapacity","capacityOptionsOnDemandPercentageAboveBaseCapacity","capacityOptionsPriceComparisonMode","capacityOptionsSpotAutoReplaceOnDemand","compensateWithOnDemand","groupType","healthCheckType","maxSize","minSize","onDemandBaseCapacity","onDemandPercentageAboveBaseCapacity","removalPolicies","resourceGroupId","scalingPolicy","spotAllocationStrategy","spotInstancePools","spotInstanceRemedy"],"inputProperties":{"albServerGroups":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingGroupAlbServerGroup:ScalingGroupAlbServerGroup"},"description":"If a Serve ALB instance is specified in the scaling group, the scaling group automatically attaches its ECS instances to the Server ALB instance.  See \u003cspan pulumi-lang-nodejs=\"`albServerGroup`\" pulumi-lang-dotnet=\"`AlbServerGroup`\" pulumi-lang-go=\"`albServerGroup`\" pulumi-lang-python=\"`alb_server_group`\" pulumi-lang-yaml=\"`albServerGroup`\" pulumi-lang-java=\"`albServerGroup`\"\u003e`alb_server_group`\u003c/span\u003e below for details.\n"},"allocationStrategy":{"type":"string","description":"The allocation policy of instances. Auto Scaling selects instance types based on the allocation policy to create instances. The policy can be applied to pay-as-you-go instances and preemptible instances. This parameter takes effect only if you set MultiAZPolicy to COMPOSABLE.\n"},"autoRebalance":{"type":"boolean","description":"Specifies whether to enable automatic rebalancing for the scaling group. This parameter takes effect only when BalancedOnly is enabled for a zone-balanced scaling group. Valid values: false, true.\n"},"azBalance":{"type":"boolean","description":"Specifies whether to evenly distribute instances in the scaling group across multiple zones. This parameter takes effect only if you set MultiAZPolicy to COMPOSABLE.\n"},"balanceMode":{"type":"string","description":"The zone balancing mode. This parameter takes effect only when zone balancing is enabled. Valid values: BalancedBestEffort, BalancedOnly.\n"},"capacityOptionsCompensateWithOnDemand":{"type":"boolean","description":"Specifies whether to automatically create pay-as-you-go instances to meet the requirement on the number of ECS instances when the expected capacity of preemptible instances cannot be provided due to reasons such as cost-related issues and insufficient resources. This parameter is supported only if you set 'multi_az_policy' to COST_OPTIMIZED. Valid values: true, false.\n"},"capacityOptionsOnDemandBaseCapacity":{"type":"integer","description":"The minimum number of pay-as-you-go instances that must be contained in the scaling group. When the actual number of pay-as-you-go instances in the scaling group drops below the value of this parameter, Auto Scaling preferentially creates pay-as-you-go instances. Valid values: 0 to 1000. If you set 'multi_az_policy' to COMPOSABLE, the default value of this parameter is 0.\n"},"capacityOptionsOnDemandPercentageAboveBaseCapacity":{"type":"integer","description":"The percentage of pay-as-you-go instances in the excess instances when the minimum number of pay-as-you-go instances is reached. 'on_demand_base_capacity' specifies the minimum number of pay-as-you-go instances that must be contained in the scaling group. Valid values: 0 to 100. If you set 'multi_az_policy' to COMPOSABLE, the default value of this parameter is 100.\n"},"capacityOptionsPriceComparisonMode":{"type":"string","description":"The price comparison mode. Valid values: PricePerUnit,PricePerVCpu. Default value: PricePerUnit.\n"},"capacityOptionsSpotAutoReplaceOnDemand":{"type":"boolean","description":"Specifies whether to replace pay-as-you-go instances with preemptible instances. If you specify 'compensate_with_on_demand', it may result in a higher percentage of pay-as-you-go instances compared to the value of 'on_demand_percentage_above_base_capacity'. If you specify this parameter, Auto Scaling preferentially deploys preemptible instances to replace the surplus pay-as-you-go instances when preemptible instance types are available. If you specify 'compensate_with_on_demand', Auto Scaling creates pay-as-you-go instances when preemptible instance types are insufficient. To avoid retaining these pay-as-you-go instances for extended periods, Auto Scaling attempts to replace them with preemptible instances when sufficient preemptible instance types become available. Valid values: true, false.\n"},"compensateWithOnDemand":{"type":"boolean","description":"Specifies whether to automatically create pay-as-you-go instances to meet the requirement on the number of ECS instances when the expected capacity of preemptible instances cannot be provided due to reasons such as cost-related issues and insufficient resources. This parameter is supported only if you set 'multi_az_policy' to COST_OPTIMIZED. Valid values: true, false.\n"},"containerGroupId":{"type":"string","description":"The ID of the elastic container instance.\n","willReplaceOnChanges":true},"dbInstanceIds":{"type":"array","items":{"type":"string"},"description":"If an RDS instance is specified in the scaling group, the scaling group automatically attaches the Intranet IP addresses of its ECS instances to the RDS access whitelist.\n- The specified RDS instance must be in running status.\n- The specified RDS instance’s whitelist must have room for more IP addresses.\n"},"defaultCooldown":{"type":"integer","description":"Default cool-down time (in seconds) of the scaling group. Value range: [0, 86400]. The default value is 300s.\n"},"desiredCapacity":{"type":"integer","description":"Expected number of ECS instances in the scaling group. Value range: [min_size,\u003cspan pulumi-lang-nodejs=\" maxSize]\" pulumi-lang-dotnet=\" MaxSize]\" pulumi-lang-go=\" maxSize]\" pulumi-lang-python=\" max_size]\" pulumi-lang-yaml=\" maxSize]\" pulumi-lang-java=\" maxSize]\"\u003e max_size]\u003c/span\u003e.\n"},"groupDeletionProtection":{"type":"boolean","description":"Specifies whether the scaling group deletion protection is enabled. \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"groupType":{"type":"string","description":"Resource type within scaling group. Optional values: ECS, ECI. Default to ECS.\n","willReplaceOnChanges":true},"healthCheckType":{"type":"string","description":"Resource type within scaling group. Optional values: ECS, ECI, NONE, LOAD_BALANCER. Default to ECS.\n"},"healthCheckTypes":{"type":"array","items":{"type":"string"},"description":"The health check modes of the scaling group. Valid values: ECS, NONE, LOAD_BALANCER.\n"},"instanceId":{"type":"string","description":"The ID of the instance from which Auto Scaling obtains the required configuration information and uses the information to automatically create a scaling configuration.\n","willReplaceOnChanges":true},"launchTemplateId":{"type":"string","description":"Instance launch template ID, scaling group obtains launch configuration from instance launch template, see [Launch Template](https://www.alibabacloud.com/help/doc-detail/73916.html). Creating scaling group from launch template enable group automatically.\n"},"launchTemplateOverrides":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingGroupLaunchTemplateOverride:ScalingGroupLaunchTemplateOverride"},"description":"The details of the instance types that are specified by using the Extend Instance Type of Launch Template feature.  See \u003cspan pulumi-lang-nodejs=\"`launchTemplateOverride`\" pulumi-lang-dotnet=\"`LaunchTemplateOverride`\" pulumi-lang-go=\"`launchTemplateOverride`\" pulumi-lang-python=\"`launch_template_override`\" pulumi-lang-yaml=\"`launchTemplateOverride`\" pulumi-lang-java=\"`launchTemplateOverride`\"\u003e`launch_template_override`\u003c/span\u003e below for details.\n"},"launchTemplateVersion":{"type":"string","description":"The version number of the launch template. Valid values are the version number, `Latest`, or `Default`, Default value: `Default`.\n"},"loadbalancerIds":{"type":"array","items":{"type":"string"},"description":"If a Server Load Balancer instance is specified in the scaling group, the scaling group automatically attaches its ECS instances to the Server Load Balancer instance.\n- The Server Load Balancer instance must be enabled.\n- At least one listener must be configured for each Server Load Balancer and it HealthCheck must be on. Otherwise, creation will fail (it may be useful to add a \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e argument\ntargeting your \u003cspan pulumi-lang-nodejs=\"`alicloud.slb.Listener`\" pulumi-lang-dotnet=\"`alicloud.slb.Listener`\" pulumi-lang-go=\"`slb.Listener`\" pulumi-lang-python=\"`slb.Listener`\" pulumi-lang-yaml=\"`alicloud.slb.Listener`\" pulumi-lang-java=\"`alicloud.slb.Listener`\"\u003e`alicloud.slb.Listener`\u003c/span\u003e in order to make sure the listener with its HealthCheck configuration is ready before creating your scaling group).\n- The Server Load Balancer instance attached with VPC-type ECS instances cannot be attached to the scaling group.\n- The default weight of an ECS instance attached to the Server Load Balancer instance is 50.\n"},"maxInstanceLifetime":{"type":"integer","description":"The maximum life span of an instance in the scaling group. Unit: seconds.\n"},"maxSize":{"type":"integer","description":"Maximum number of ECS instances in the scaling group. Value range: [0, 2000].\n**NOTE:** From version 1.204.1, \u003cspan pulumi-lang-nodejs=\"`maxSize`\" pulumi-lang-dotnet=\"`MaxSize`\" pulumi-lang-go=\"`maxSize`\" pulumi-lang-python=\"`max_size`\" pulumi-lang-yaml=\"`maxSize`\" pulumi-lang-java=\"`maxSize`\"\u003e`max_size`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e.\n"},"minSize":{"type":"integer","description":"Minimum number of ECS instances in the scaling group. Value range: [0, 2000].\n**NOTE:** From version 1.204.1, \u003cspan pulumi-lang-nodejs=\"`minSize`\" pulumi-lang-dotnet=\"`MinSize`\" pulumi-lang-go=\"`minSize`\" pulumi-lang-python=\"`min_size`\" pulumi-lang-yaml=\"`minSize`\" pulumi-lang-java=\"`minSize`\"\u003e`min_size`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e.\n"},"multiAzPolicy":{"type":"string","description":"Multi-AZ scaling group ECS instance expansion and contraction strategy. PRIORITY, COMPOSABLE, BALANCE or COST_OPTIMIZED(Available since v1.54.0).\n","willReplaceOnChanges":true},"onDemandBaseCapacity":{"type":"integer","description":"The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand Instances. This base portion is provisioned first as your group scales.\n"},"onDemandPercentageAboveBaseCapacity":{"type":"integer","description":"Controls the percentages of On-Demand Instances and Spot Instances for your additional capacity beyond OnDemandBaseCapacity.\n"},"protectedInstances":{"type":"array","items":{"type":"string"},"description":"Set or unset instances within group into protected status.\n"},"removalPolicies":{"type":"array","items":{"type":"string"},"description":"RemovalPolicy is used to select the ECS instances you want to remove from the scaling group when multiple candidates for removal exist. Optional values:\n- OldestInstance: removes the ECS instance that is added to the scaling group at the earliest point in time.\n- NewestInstance: removes the ECS instance that is added to the scaling group at the latest point in time.\n- OldestScalingConfiguration: removes the ECS instance that is created based on the earliest scaling configuration.\n- Default values: Default value of RemovalPolicy.1: OldestScalingConfiguration. Default value of RemovalPolicy.2: OldestInstance.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which you want to add the scaling group.\n"},"scalingGroupName":{"type":"string","description":"Name shown for the scaling group, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain numbers, underscores `_`, hyphens `-`, and decimal points `.`. If this parameter is not specified, the default value is ScalingGroupId.\n"},"scalingPolicy":{"type":"string","description":"The reclaim mode of the scaling group. Optional values: recycle, release, forceRecycle, forceRelease.\n"},"spotAllocationStrategy":{"type":"string","description":"The allocation policy of preemptible instances. You can use this parameter to individually specify the allocation policy for preemptible instances. This parameter takes effect only if you set MultiAZPolicy to COMPOSABLE.\n"},"spotInstancePools":{"type":"integer","description":"The number of Spot pools to use to allocate your Spot capacity. The Spot pools is composed of instance types of lowest price.\n"},"spotInstanceRemedy":{"type":"boolean","description":"Whether to replace spot instances with newly created spot/onDemand instance when receive a spot recycling message.\n"},"stopInstanceTimeout":{"type":"integer","description":"The period of time required by the ECS instance to enter the Stopped state. Unit: seconds. Valid values: 30 to 240.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"vswitchId":{"type":"string","description":"It has been deprecated from version 1.7.1 and new field 'vswitch_ids' replaces it.\n","deprecationMessage":"Field 'vswitch_id' has been deprecated from provider version 1.7.1, and new field 'vswitch_ids' can replace it."},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"List of virtual switch IDs in which the ecs instances to be launched.\n"}},"requiredInputs":["maxSize","minSize"],"stateInputs":{"description":"Input properties used for looking up and filtering ScalingGroup resources.\n","properties":{"albServerGroups":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingGroupAlbServerGroup:ScalingGroupAlbServerGroup"},"description":"If a Serve ALB instance is specified in the scaling group, the scaling group automatically attaches its ECS instances to the Server ALB instance.  See \u003cspan pulumi-lang-nodejs=\"`albServerGroup`\" pulumi-lang-dotnet=\"`AlbServerGroup`\" pulumi-lang-go=\"`albServerGroup`\" pulumi-lang-python=\"`alb_server_group`\" pulumi-lang-yaml=\"`albServerGroup`\" pulumi-lang-java=\"`albServerGroup`\"\u003e`alb_server_group`\u003c/span\u003e below for details.\n"},"allocationStrategy":{"type":"string","description":"The allocation policy of instances. Auto Scaling selects instance types based on the allocation policy to create instances. The policy can be applied to pay-as-you-go instances and preemptible instances. This parameter takes effect only if you set MultiAZPolicy to COMPOSABLE.\n"},"autoRebalance":{"type":"boolean","description":"Specifies whether to enable automatic rebalancing for the scaling group. This parameter takes effect only when BalancedOnly is enabled for a zone-balanced scaling group. Valid values: false, true.\n"},"azBalance":{"type":"boolean","description":"Specifies whether to evenly distribute instances in the scaling group across multiple zones. This parameter takes effect only if you set MultiAZPolicy to COMPOSABLE.\n"},"balanceMode":{"type":"string","description":"The zone balancing mode. This parameter takes effect only when zone balancing is enabled. Valid values: BalancedBestEffort, BalancedOnly.\n"},"capacityOptionsCompensateWithOnDemand":{"type":"boolean","description":"Specifies whether to automatically create pay-as-you-go instances to meet the requirement on the number of ECS instances when the expected capacity of preemptible instances cannot be provided due to reasons such as cost-related issues and insufficient resources. This parameter is supported only if you set 'multi_az_policy' to COST_OPTIMIZED. Valid values: true, false.\n"},"capacityOptionsOnDemandBaseCapacity":{"type":"integer","description":"The minimum number of pay-as-you-go instances that must be contained in the scaling group. When the actual number of pay-as-you-go instances in the scaling group drops below the value of this parameter, Auto Scaling preferentially creates pay-as-you-go instances. Valid values: 0 to 1000. If you set 'multi_az_policy' to COMPOSABLE, the default value of this parameter is 0.\n"},"capacityOptionsOnDemandPercentageAboveBaseCapacity":{"type":"integer","description":"The percentage of pay-as-you-go instances in the excess instances when the minimum number of pay-as-you-go instances is reached. 'on_demand_base_capacity' specifies the minimum number of pay-as-you-go instances that must be contained in the scaling group. Valid values: 0 to 100. If you set 'multi_az_policy' to COMPOSABLE, the default value of this parameter is 100.\n"},"capacityOptionsPriceComparisonMode":{"type":"string","description":"The price comparison mode. Valid values: PricePerUnit,PricePerVCpu. Default value: PricePerUnit.\n"},"capacityOptionsSpotAutoReplaceOnDemand":{"type":"boolean","description":"Specifies whether to replace pay-as-you-go instances with preemptible instances. If you specify 'compensate_with_on_demand', it may result in a higher percentage of pay-as-you-go instances compared to the value of 'on_demand_percentage_above_base_capacity'. If you specify this parameter, Auto Scaling preferentially deploys preemptible instances to replace the surplus pay-as-you-go instances when preemptible instance types are available. If you specify 'compensate_with_on_demand', Auto Scaling creates pay-as-you-go instances when preemptible instance types are insufficient. To avoid retaining these pay-as-you-go instances for extended periods, Auto Scaling attempts to replace them with preemptible instances when sufficient preemptible instance types become available. Valid values: true, false.\n"},"compensateWithOnDemand":{"type":"boolean","description":"Specifies whether to automatically create pay-as-you-go instances to meet the requirement on the number of ECS instances when the expected capacity of preemptible instances cannot be provided due to reasons such as cost-related issues and insufficient resources. This parameter is supported only if you set 'multi_az_policy' to COST_OPTIMIZED. Valid values: true, false.\n"},"containerGroupId":{"type":"string","description":"The ID of the elastic container instance.\n","willReplaceOnChanges":true},"dbInstanceIds":{"type":"array","items":{"type":"string"},"description":"If an RDS instance is specified in the scaling group, the scaling group automatically attaches the Intranet IP addresses of its ECS instances to the RDS access whitelist.\n- The specified RDS instance must be in running status.\n- The specified RDS instance’s whitelist must have room for more IP addresses.\n"},"defaultCooldown":{"type":"integer","description":"Default cool-down time (in seconds) of the scaling group. Value range: [0, 86400]. The default value is 300s.\n"},"desiredCapacity":{"type":"integer","description":"Expected number of ECS instances in the scaling group. Value range: [min_size,\u003cspan pulumi-lang-nodejs=\" maxSize]\" pulumi-lang-dotnet=\" MaxSize]\" pulumi-lang-go=\" maxSize]\" pulumi-lang-python=\" max_size]\" pulumi-lang-yaml=\" maxSize]\" pulumi-lang-java=\" maxSize]\"\u003e max_size]\u003c/span\u003e.\n"},"groupDeletionProtection":{"type":"boolean","description":"Specifies whether the scaling group deletion protection is enabled. \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"groupType":{"type":"string","description":"Resource type within scaling group. Optional values: ECS, ECI. Default to ECS.\n","willReplaceOnChanges":true},"healthCheckType":{"type":"string","description":"Resource type within scaling group. Optional values: ECS, ECI, NONE, LOAD_BALANCER. Default to ECS.\n"},"healthCheckTypes":{"type":"array","items":{"type":"string"},"description":"The health check modes of the scaling group. Valid values: ECS, NONE, LOAD_BALANCER.\n"},"instanceId":{"type":"string","description":"The ID of the instance from which Auto Scaling obtains the required configuration information and uses the information to automatically create a scaling configuration.\n","willReplaceOnChanges":true},"launchTemplateId":{"type":"string","description":"Instance launch template ID, scaling group obtains launch configuration from instance launch template, see [Launch Template](https://www.alibabacloud.com/help/doc-detail/73916.html). Creating scaling group from launch template enable group automatically.\n"},"launchTemplateOverrides":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingGroupLaunchTemplateOverride:ScalingGroupLaunchTemplateOverride"},"description":"The details of the instance types that are specified by using the Extend Instance Type of Launch Template feature.  See \u003cspan pulumi-lang-nodejs=\"`launchTemplateOverride`\" pulumi-lang-dotnet=\"`LaunchTemplateOverride`\" pulumi-lang-go=\"`launchTemplateOverride`\" pulumi-lang-python=\"`launch_template_override`\" pulumi-lang-yaml=\"`launchTemplateOverride`\" pulumi-lang-java=\"`launchTemplateOverride`\"\u003e`launch_template_override`\u003c/span\u003e below for details.\n"},"launchTemplateVersion":{"type":"string","description":"The version number of the launch template. Valid values are the version number, `Latest`, or `Default`, Default value: `Default`.\n"},"loadbalancerIds":{"type":"array","items":{"type":"string"},"description":"If a Server Load Balancer instance is specified in the scaling group, the scaling group automatically attaches its ECS instances to the Server Load Balancer instance.\n- The Server Load Balancer instance must be enabled.\n- At least one listener must be configured for each Server Load Balancer and it HealthCheck must be on. Otherwise, creation will fail (it may be useful to add a \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e argument\ntargeting your \u003cspan pulumi-lang-nodejs=\"`alicloud.slb.Listener`\" pulumi-lang-dotnet=\"`alicloud.slb.Listener`\" pulumi-lang-go=\"`slb.Listener`\" pulumi-lang-python=\"`slb.Listener`\" pulumi-lang-yaml=\"`alicloud.slb.Listener`\" pulumi-lang-java=\"`alicloud.slb.Listener`\"\u003e`alicloud.slb.Listener`\u003c/span\u003e in order to make sure the listener with its HealthCheck configuration is ready before creating your scaling group).\n- The Server Load Balancer instance attached with VPC-type ECS instances cannot be attached to the scaling group.\n- The default weight of an ECS instance attached to the Server Load Balancer instance is 50.\n"},"maxInstanceLifetime":{"type":"integer","description":"The maximum life span of an instance in the scaling group. Unit: seconds.\n"},"maxSize":{"type":"integer","description":"Maximum number of ECS instances in the scaling group. Value range: [0, 2000].\n**NOTE:** From version 1.204.1, \u003cspan pulumi-lang-nodejs=\"`maxSize`\" pulumi-lang-dotnet=\"`MaxSize`\" pulumi-lang-go=\"`maxSize`\" pulumi-lang-python=\"`max_size`\" pulumi-lang-yaml=\"`maxSize`\" pulumi-lang-java=\"`maxSize`\"\u003e`max_size`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e.\n"},"minSize":{"type":"integer","description":"Minimum number of ECS instances in the scaling group. Value range: [0, 2000].\n**NOTE:** From version 1.204.1, \u003cspan pulumi-lang-nodejs=\"`minSize`\" pulumi-lang-dotnet=\"`MinSize`\" pulumi-lang-go=\"`minSize`\" pulumi-lang-python=\"`min_size`\" pulumi-lang-yaml=\"`minSize`\" pulumi-lang-java=\"`minSize`\"\u003e`min_size`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e.\n"},"multiAzPolicy":{"type":"string","description":"Multi-AZ scaling group ECS instance expansion and contraction strategy. PRIORITY, COMPOSABLE, BALANCE or COST_OPTIMIZED(Available since v1.54.0).\n","willReplaceOnChanges":true},"onDemandBaseCapacity":{"type":"integer","description":"The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand Instances. This base portion is provisioned first as your group scales.\n"},"onDemandPercentageAboveBaseCapacity":{"type":"integer","description":"Controls the percentages of On-Demand Instances and Spot Instances for your additional capacity beyond OnDemandBaseCapacity.\n"},"protectedInstances":{"type":"array","items":{"type":"string"},"description":"Set or unset instances within group into protected status.\n"},"removalPolicies":{"type":"array","items":{"type":"string"},"description":"RemovalPolicy is used to select the ECS instances you want to remove from the scaling group when multiple candidates for removal exist. Optional values:\n- OldestInstance: removes the ECS instance that is added to the scaling group at the earliest point in time.\n- NewestInstance: removes the ECS instance that is added to the scaling group at the latest point in time.\n- OldestScalingConfiguration: removes the ECS instance that is created based on the earliest scaling configuration.\n- Default values: Default value of RemovalPolicy.1: OldestScalingConfiguration. Default value of RemovalPolicy.2: OldestInstance.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which you want to add the scaling group.\n"},"scalingGroupName":{"type":"string","description":"Name shown for the scaling group, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain numbers, underscores `_`, hyphens `-`, and decimal points `.`. If this parameter is not specified, the default value is ScalingGroupId.\n"},"scalingPolicy":{"type":"string","description":"The reclaim mode of the scaling group. Optional values: recycle, release, forceRecycle, forceRelease.\n"},"spotAllocationStrategy":{"type":"string","description":"The allocation policy of preemptible instances. You can use this parameter to individually specify the allocation policy for preemptible instances. This parameter takes effect only if you set MultiAZPolicy to COMPOSABLE.\n"},"spotInstancePools":{"type":"integer","description":"The number of Spot pools to use to allocate your Spot capacity. The Spot pools is composed of instance types of lowest price.\n"},"spotInstanceRemedy":{"type":"boolean","description":"Whether to replace spot instances with newly created spot/onDemand instance when receive a spot recycling message.\n"},"stopInstanceTimeout":{"type":"integer","description":"The period of time required by the ECS instance to enter the Stopped state. Unit: seconds. Valid values: 30 to 240.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"vswitchId":{"type":"string","description":"It has been deprecated from version 1.7.1 and new field 'vswitch_ids' replaces it.\n","deprecationMessage":"Field 'vswitch_id' has been deprecated from provider version 1.7.1, and new field 'vswitch_ids' can replace it."},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"List of virtual switch IDs in which the ecs instances to be launched.\n"}},"type":"object"}},"alicloud:ess/scalingGroupVServerGroups:ScalingGroupVServerGroups":{"description":"Attaches/Detaches vserver groups to a specified scaling group.\n\n\u003e **NOTE:** The load balancer of which vserver groups belongs to must be in \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e status.\n\n\u003e **NOTE:** If scaling group's network type is `VPC`, the vserver groups must be in the same `VPC`.\n \n\u003e **NOTE:** A scaling group can have at most 5 vserver groups attached by default.\n\n\u003e **NOTE:** Vserver groups and the default group of loadbalancer share the same backend server quota.\n\n\u003e **NOTE:** When attach vserver groups to scaling group, existing ECS instances will be added to vserver groups; Instead, ECS instances will be removed from vserver group when detach.\n\n\u003e **NOTE:** Detach action will be executed before attach action.\n\n\u003e **NOTE:** Vserver group is defined uniquely by \u003cspan pulumi-lang-nodejs=\"`loadbalancerId`\" pulumi-lang-dotnet=\"`LoadbalancerId`\" pulumi-lang-go=\"`loadbalancerId`\" pulumi-lang-python=\"`loadbalancer_id`\" pulumi-lang-yaml=\"`loadbalancerId`\" pulumi-lang-java=\"`loadbalancerId`\"\u003e`loadbalancer_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vserverGroupId`\" pulumi-lang-dotnet=\"`VserverGroupId`\" pulumi-lang-go=\"`vserverGroupId`\" pulumi-lang-python=\"`vserver_group_id`\" pulumi-lang-yaml=\"`vserverGroupId`\" pulumi-lang-java=\"`vserverGroupId`\"\u003e`vserver_group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e.\n\n\u003e **NOTE:** Modifing \u003cspan pulumi-lang-nodejs=\"`weight`\" pulumi-lang-dotnet=\"`Weight`\" pulumi-lang-go=\"`weight`\" pulumi-lang-python=\"`weight`\" pulumi-lang-yaml=\"`weight`\" pulumi-lang-java=\"`weight`\"\u003e`weight`\u003c/span\u003e attribute means detach vserver group first and then, attach with new weight parameter.\n\n\u003e **NOTE:** Available since v1.53.0.\n\n## Import\n\nESS vserver groups can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ess/scalingGroupVServerGroups:ScalingGroupVServerGroups example abc123456\n```\n\n","properties":{"force":{"type":"boolean","description":"If instances of scaling group are attached/removed from slb backend server when attach/detach vserver group from scaling group. Default to true.\n"},"scalingGroupId":{"type":"string","description":"ID of the scaling group.\n"},"vserverGroups":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingGroupVServerGroupsVserverGroup:ScalingGroupVServerGroupsVserverGroup"},"description":"A list of vserver groups attached on scaling group. See \u003cspan pulumi-lang-nodejs=\"`vserverGroups`\" pulumi-lang-dotnet=\"`VserverGroups`\" pulumi-lang-go=\"`vserverGroups`\" pulumi-lang-python=\"`vserver_groups`\" pulumi-lang-yaml=\"`vserverGroups`\" pulumi-lang-java=\"`vserverGroups`\"\u003e`vserver_groups`\u003c/span\u003e below.\n"}},"required":["scalingGroupId","vserverGroups"],"inputProperties":{"force":{"type":"boolean","description":"If instances of scaling group are attached/removed from slb backend server when attach/detach vserver group from scaling group. Default to true.\n"},"scalingGroupId":{"type":"string","description":"ID of the scaling group.\n","willReplaceOnChanges":true},"vserverGroups":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingGroupVServerGroupsVserverGroup:ScalingGroupVServerGroupsVserverGroup"},"description":"A list of vserver groups attached on scaling group. See \u003cspan pulumi-lang-nodejs=\"`vserverGroups`\" pulumi-lang-dotnet=\"`VserverGroups`\" pulumi-lang-go=\"`vserverGroups`\" pulumi-lang-python=\"`vserver_groups`\" pulumi-lang-yaml=\"`vserverGroups`\" pulumi-lang-java=\"`vserverGroups`\"\u003e`vserver_groups`\u003c/span\u003e below.\n"}},"requiredInputs":["scalingGroupId","vserverGroups"],"stateInputs":{"description":"Input properties used for looking up and filtering ScalingGroupVServerGroups resources.\n","properties":{"force":{"type":"boolean","description":"If instances of scaling group are attached/removed from slb backend server when attach/detach vserver group from scaling group. Default to true.\n"},"scalingGroupId":{"type":"string","description":"ID of the scaling group.\n","willReplaceOnChanges":true},"vserverGroups":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingGroupVServerGroupsVserverGroup:ScalingGroupVServerGroupsVserverGroup"},"description":"A list of vserver groups attached on scaling group. See \u003cspan pulumi-lang-nodejs=\"`vserverGroups`\" pulumi-lang-dotnet=\"`VserverGroups`\" pulumi-lang-go=\"`vserverGroups`\" pulumi-lang-python=\"`vserver_groups`\" pulumi-lang-yaml=\"`vserverGroups`\" pulumi-lang-java=\"`vserverGroups`\"\u003e`vserver_groups`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:ess/scalingRule:ScalingRule":{"description":"Provides a ESS scaling rule resource.\n\nFor information about ess scaling rule, see [CreateScalingRule](https://www.alibabacloud.com/help/en/auto-scaling/latest/createscalingrule).\n\n\u003e **NOTE:** Available since v1.39.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst myName = `${name}-${defaultInteger.result}`;\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 2,\n    memorySize: 4,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: myName,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: myName,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    securityGroupName: myName,\n    vpcId: defaultNetwork.id,\n});\nconst defaultSecurityGroupRule = new alicloud.ecs.SecurityGroupRule(\"default\", {\n    type: \"ingress\",\n    ipProtocol: \"tcp\",\n    nicType: \"intranet\",\n    policy: \"accept\",\n    portRange: \"22/22\",\n    priority: 1,\n    securityGroupId: defaultSecurityGroup.id,\n    cidrIp: \"172.16.0.0/24\",\n});\nconst defaultScalingGroup = new alicloud.ess.ScalingGroup(\"default\", {\n    minSize: 1,\n    maxSize: 1,\n    scalingGroupName: myName,\n    vswitchIds: [defaultSwitch.id],\n    removalPolicies: [\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n});\nconst defaultScalingConfiguration = new alicloud.ess.ScalingConfiguration(\"default\", {\n    scalingGroupId: defaultScalingGroup.id,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroupId: defaultSecurityGroup.id,\n    forceDelete: true,\n});\nconst defaultScalingRule = new alicloud.ess.ScalingRule(\"default\", {\n    scalingGroupId: defaultScalingGroup.id,\n    adjustmentType: \"TotalCapacity\",\n    adjustmentValue: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nmy_name = f\"{name}-{default_integer['result']}\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=2,\n    memory_size=4)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=my_name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=my_name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    security_group_name=my_name,\n    vpc_id=default_network.id)\ndefault_security_group_rule = alicloud.ecs.SecurityGroupRule(\"default\",\n    type=\"ingress\",\n    ip_protocol=\"tcp\",\n    nic_type=\"intranet\",\n    policy=\"accept\",\n    port_range=\"22/22\",\n    priority=1,\n    security_group_id=default_security_group.id,\n    cidr_ip=\"172.16.0.0/24\")\ndefault_scaling_group = alicloud.ess.ScalingGroup(\"default\",\n    min_size=1,\n    max_size=1,\n    scaling_group_name=my_name,\n    vswitch_ids=[default_switch.id],\n    removal_policies=[\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ])\ndefault_scaling_configuration = alicloud.ess.ScalingConfiguration(\"default\",\n    scaling_group_id=default_scaling_group.id,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_group_id=default_security_group.id,\n    force_delete=True)\ndefault_scaling_rule = alicloud.ess.ScalingRule(\"default\",\n    scaling_group_id=default_scaling_group.id,\n    adjustment_type=\"TotalCapacity\",\n    adjustment_value=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var myName = $\"{name}-{defaultInteger.Result}\";\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 2,\n        MemorySize = 4,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = myName,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = myName,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = myName,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultSecurityGroupRule = new AliCloud.Ecs.SecurityGroupRule(\"default\", new()\n    {\n        Type = \"ingress\",\n        IpProtocol = \"tcp\",\n        NicType = \"intranet\",\n        Policy = \"accept\",\n        PortRange = \"22/22\",\n        Priority = 1,\n        SecurityGroupId = defaultSecurityGroup.Id,\n        CidrIp = \"172.16.0.0/24\",\n    });\n\n    var defaultScalingGroup = new AliCloud.Ess.ScalingGroup(\"default\", new()\n    {\n        MinSize = 1,\n        MaxSize = 1,\n        ScalingGroupName = myName,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        RemovalPolicies = new[]\n        {\n            \"OldestInstance\",\n            \"NewestInstance\",\n        },\n    });\n\n    var defaultScalingConfiguration = new AliCloud.Ess.ScalingConfiguration(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroupId = defaultSecurityGroup.Id,\n        ForceDelete = true,\n    });\n\n    var defaultScalingRule = new AliCloud.Ess.ScalingRule(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        AdjustmentType = \"TotalCapacity\",\n        AdjustmentValue = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyName := fmt.Sprintf(\"%v-%v\", name, defaultInteger.Result)\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(2),\n\t\t\tMemorySize:       pulumi.Float64Ref(4),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(myName),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(myName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(myName),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroupRule(ctx, \"default\", \u0026ecs.SecurityGroupRuleArgs{\n\t\t\tType:            pulumi.String(\"ingress\"),\n\t\t\tIpProtocol:      pulumi.String(\"tcp\"),\n\t\t\tNicType:         pulumi.String(\"intranet\"),\n\t\t\tPolicy:          pulumi.String(\"accept\"),\n\t\t\tPortRange:       pulumi.String(\"22/22\"),\n\t\t\tPriority:        pulumi.Int(1),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tCidrIp:          pulumi.String(\"172.16.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingGroup, err := ess.NewScalingGroup(ctx, \"default\", \u0026ess.ScalingGroupArgs{\n\t\t\tMinSize:          pulumi.Int(1),\n\t\t\tMaxSize:          pulumi.Int(1),\n\t\t\tScalingGroupName: pulumi.String(myName),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tRemovalPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OldestInstance\"),\n\t\t\t\tpulumi.String(\"NewestInstance\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ess.NewScalingConfiguration(ctx, \"default\", \u0026ess.ScalingConfigurationArgs{\n\t\t\tScalingGroupId:  defaultScalingGroup.ID(),\n\t\t\tImageId:         pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tForceDelete:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ess.NewScalingRule(ctx, \"default\", \u0026ess.ScalingRuleArgs{\n\t\t\tScalingGroupId:  defaultScalingGroup.ID(),\n\t\t\tAdjustmentType:  pulumi.String(\"TotalCapacity\"),\n\t\t\tAdjustmentValue: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroupRule;\nimport com.pulumi.alicloud.ecs.SecurityGroupRuleArgs;\nimport com.pulumi.alicloud.ess.ScalingGroup;\nimport com.pulumi.alicloud.ess.ScalingGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingConfiguration;\nimport com.pulumi.alicloud.ess.ScalingConfigurationArgs;\nimport com.pulumi.alicloud.ess.ScalingRule;\nimport com.pulumi.alicloud.ess.ScalingRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var myName = String.format(\"%s-%s\", name,defaultInteger.result());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(myName)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(myName)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(myName)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultSecurityGroupRule = new SecurityGroupRule(\"defaultSecurityGroupRule\", SecurityGroupRuleArgs.builder()\n            .type(\"ingress\")\n            .ipProtocol(\"tcp\")\n            .nicType(\"intranet\")\n            .policy(\"accept\")\n            .portRange(\"22/22\")\n            .priority(1)\n            .securityGroupId(defaultSecurityGroup.id())\n            .cidrIp(\"172.16.0.0/24\")\n            .build());\n\n        var defaultScalingGroup = new ScalingGroup(\"defaultScalingGroup\", ScalingGroupArgs.builder()\n            .minSize(1)\n            .maxSize(1)\n            .scalingGroupName(myName)\n            .vswitchIds(defaultSwitch.id())\n            .removalPolicies(            \n                \"OldestInstance\",\n                \"NewestInstance\")\n            .build());\n\n        var defaultScalingConfiguration = new ScalingConfiguration(\"defaultScalingConfiguration\", ScalingConfigurationArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroupId(defaultSecurityGroup.id())\n            .forceDelete(true)\n            .build());\n\n        var defaultScalingRule = new ScalingRule(\"defaultScalingRule\", ScalingRuleArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .adjustmentType(\"TotalCapacity\")\n            .adjustmentValue(1)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${myName}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${myName}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      securityGroupName: ${myName}\n      vpcId: ${defaultNetwork.id}\n  defaultSecurityGroupRule:\n    type: alicloud:ecs:SecurityGroupRule\n    name: default\n    properties:\n      type: ingress\n      ipProtocol: tcp\n      nicType: intranet\n      policy: accept\n      portRange: 22/22\n      priority: 1\n      securityGroupId: ${defaultSecurityGroup.id}\n      cidrIp: 172.16.0.0/24\n  defaultScalingGroup:\n    type: alicloud:ess:ScalingGroup\n    name: default\n    properties:\n      minSize: 1\n      maxSize: 1\n      scalingGroupName: ${myName}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      removalPolicies:\n        - OldestInstance\n        - NewestInstance\n  defaultScalingConfiguration:\n    type: alicloud:ess:ScalingConfiguration\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingGroup.id}\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      securityGroupId: ${defaultSecurityGroup.id}\n      forceDelete: 'true'\n  defaultScalingRule:\n    type: alicloud:ess:ScalingRule\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingGroup.id}\n      adjustmentType: TotalCapacity\n      adjustmentValue: 1\nvariables:\n  myName: ${name}-${defaultInteger.result}\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 2\n        memorySize: 4\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use to the existing autoscaling-rule module \nto create different type rules, alarm task and scheduled task one-click.\n\n## Import\n\nESS scaling rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ess/scalingRule:ScalingRule example abc123456\n```\n\n","properties":{"adjustmentType":{"type":"string","description":"Adjustment mode of a scaling rule. Optional values:\n- QuantityChangeInCapacity: It is used to increase or decrease a specified number of ECS instances.\n- PercentChangeInCapacity: It is used to increase or decrease a specified proportion of ECS instances.\n- TotalCapacity: It is used to adjust the quantity of ECS instances in the current scaling group to a specified value.\n"},"adjustmentValue":{"type":"integer","description":"The number of ECS instances to be adjusted in the scaling rule. This parameter is required and applicable only to simple scaling rules. The number of ECS instances to be adjusted in a single scaling activity cannot exceed 500. Value range:\n- QuantityChangeInCapacity：(0, 500] U (-500, 0]\n- PercentChangeInCapacity：[0, 10000] U [-100, 0]\n- TotalCapacity：[0, 1000]\n"},"alarmDimension":{"$ref":"#/types/alicloud:ess/ScalingRuleAlarmDimension:ScalingRuleAlarmDimension","description":"AlarmDimension for StepScalingRule. See \u003cspan pulumi-lang-nodejs=\"`alarmDimension`\" pulumi-lang-dotnet=\"`AlarmDimension`\" pulumi-lang-go=\"`alarmDimension`\" pulumi-lang-python=\"`alarm_dimension`\" pulumi-lang-yaml=\"`alarmDimension`\" pulumi-lang-java=\"`alarmDimension`\"\u003e`alarm_dimension`\u003c/span\u003e below.\n"},"ari":{"type":"string","description":"The unique identifier of the scaling rule.\n"},"cooldown":{"type":"integer","description":"The cooldown time of the scaling rule. This parameter is applicable only to simple scaling rules. Value range: [0, 86,400], in seconds. The default value is empty，if not set, the return value will be 0, which is the default value of integer.\n"},"disableScaleIn":{"type":"boolean","description":"Indicates whether scale in by the target tracking policy is disabled. Default to false.\n"},"estimatedInstanceWarmup":{"type":"integer","description":"The estimated time, in seconds, until a newly launched instance will contribute CloudMonitor metrics. Default to 300.\n"},"hybridMetrics":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingRuleHybridMetric:ScalingRuleHybridMetric"},"description":"The Hybrid Cloud Monitoring metrics. See \u003cspan pulumi-lang-nodejs=\"`hybridMetrics`\" pulumi-lang-dotnet=\"`HybridMetrics`\" pulumi-lang-go=\"`hybridMetrics`\" pulumi-lang-python=\"`hybrid_metrics`\" pulumi-lang-yaml=\"`hybridMetrics`\" pulumi-lang-java=\"`hybridMetrics`\"\u003e`hybrid_metrics`\u003c/span\u003e below.\n"},"hybridMonitorNamespace":{"type":"string","description":"The ID of the Hybrid Cloud Monitoring metric repository.\n"},"initialMaxSize":{"type":"integer","description":"The maximum number of ECS instances that can be added to the scaling group. If you specify InitialMaxSize, you must also specify PredictiveValueBehavior.\n"},"metricName":{"type":"string","description":"A CloudMonitor metric name.\n"},"metricType":{"type":"string","description":"The type of the metric. Valid values: system, custom, hybrid.\n"},"minAdjustmentMagnitude":{"type":"integer","description":"The minimum number of instances that must be scaled. This parameter takes effect if you set ScalingRuleType to SimpleScalingRule or StepScalingRule, and AdjustmentType to PercentChangeInCapacity.\n"},"predictiveScalingMode":{"type":"string","description":"The mode of the predictive scaling rule. Valid values: PredictAndScale, PredictOnly.\n"},"predictiveTaskBufferTime":{"type":"integer","description":"The amount of buffer time before the prediction task runs. By default, all prediction tasks that are automatically created by a predictive scaling rule run on the hour. You can specify a buffer time to run prediction tasks and prepare resources in advance. Valid values: 0 to 60. Unit: minutes.\n"},"predictiveValueBehavior":{"type":"string","description":"The action on the predicted maximum value. Valid values: MaxOverridePredictiveValue, PredictiveValueOverrideMax, PredictiveValueOverrideMaxWithBuffer.\n"},"predictiveValueBuffer":{"type":"integer","description":"The ratio based on which the predicted value is increased if you set PredictiveValueBehavior to PredictiveValueOverrideMaxWithBuffer. If the predicted value increased by this ratio is greater than the initial maximum capacity, the increased value is used as the maximum value for prediction tasks. Valid values: 0 to 100.\n"},"scaleInEvaluationCount":{"type":"integer","description":"The number of consecutive times that the event-triggered task created for scale-ins must meet the threshold conditions before an alert is triggered. After a target tracking scaling rule is created, an event-triggered task is automatically created and associated with the target tracking scaling rule.\n"},"scaleOutEvaluationCount":{"type":"integer","description":"The number of consecutive times that the event-triggered task created for scale-outs must meet the threshold conditions before an alert is triggered. After a target tracking scaling rule is created, an event-triggered task is automatically created and associated with the target tracking scaling rule.\n"},"scalingGroupId":{"type":"string","description":"ID of the scaling group of a scaling rule.\n"},"scalingRuleName":{"type":"string","description":"Name shown for the scaling rule, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores `_`, hypens `-`, and decimal point `.`. If this parameter value is not specified, the default value is scaling rule id.\n"},"scalingRuleType":{"type":"string","description":"The scaling rule type, either \"SimpleScalingRule\", \"TargetTrackingScalingRule\", \"StepScalingRule\", \"PredictiveScalingRule\". Default to \"SimpleScalingRule\".\n"},"stepAdjustments":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingRuleStepAdjustment:ScalingRuleStepAdjustment"},"description":"Steps for StepScalingRule. See \u003cspan pulumi-lang-nodejs=\"`stepAdjustment`\" pulumi-lang-dotnet=\"`StepAdjustment`\" pulumi-lang-go=\"`stepAdjustment`\" pulumi-lang-python=\"`step_adjustment`\" pulumi-lang-yaml=\"`stepAdjustment`\" pulumi-lang-java=\"`stepAdjustment`\"\u003e`step_adjustment`\u003c/span\u003e below.\n"},"targetValue":{"type":"number","description":"The target value for the metric.\n"}},"required":["ari","estimatedInstanceWarmup","initialMaxSize","metricType","predictiveScalingMode","predictiveTaskBufferTime","predictiveValueBehavior","predictiveValueBuffer","scaleInEvaluationCount","scaleOutEvaluationCount","scalingGroupId","scalingRuleName"],"inputProperties":{"adjustmentType":{"type":"string","description":"Adjustment mode of a scaling rule. Optional values:\n- QuantityChangeInCapacity: It is used to increase or decrease a specified number of ECS instances.\n- PercentChangeInCapacity: It is used to increase or decrease a specified proportion of ECS instances.\n- TotalCapacity: It is used to adjust the quantity of ECS instances in the current scaling group to a specified value.\n"},"adjustmentValue":{"type":"integer","description":"The number of ECS instances to be adjusted in the scaling rule. This parameter is required and applicable only to simple scaling rules. The number of ECS instances to be adjusted in a single scaling activity cannot exceed 500. Value range:\n- QuantityChangeInCapacity：(0, 500] U (-500, 0]\n- PercentChangeInCapacity：[0, 10000] U [-100, 0]\n- TotalCapacity：[0, 1000]\n"},"alarmDimension":{"$ref":"#/types/alicloud:ess/ScalingRuleAlarmDimension:ScalingRuleAlarmDimension","description":"AlarmDimension for StepScalingRule. See \u003cspan pulumi-lang-nodejs=\"`alarmDimension`\" pulumi-lang-dotnet=\"`AlarmDimension`\" pulumi-lang-go=\"`alarmDimension`\" pulumi-lang-python=\"`alarm_dimension`\" pulumi-lang-yaml=\"`alarmDimension`\" pulumi-lang-java=\"`alarmDimension`\"\u003e`alarm_dimension`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"cooldown":{"type":"integer","description":"The cooldown time of the scaling rule. This parameter is applicable only to simple scaling rules. Value range: [0, 86,400], in seconds. The default value is empty，if not set, the return value will be 0, which is the default value of integer.\n"},"disableScaleIn":{"type":"boolean","description":"Indicates whether scale in by the target tracking policy is disabled. Default to false.\n"},"estimatedInstanceWarmup":{"type":"integer","description":"The estimated time, in seconds, until a newly launched instance will contribute CloudMonitor metrics. Default to 300.\n"},"hybridMetrics":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingRuleHybridMetric:ScalingRuleHybridMetric"},"description":"The Hybrid Cloud Monitoring metrics. See \u003cspan pulumi-lang-nodejs=\"`hybridMetrics`\" pulumi-lang-dotnet=\"`HybridMetrics`\" pulumi-lang-go=\"`hybridMetrics`\" pulumi-lang-python=\"`hybrid_metrics`\" pulumi-lang-yaml=\"`hybridMetrics`\" pulumi-lang-java=\"`hybridMetrics`\"\u003e`hybrid_metrics`\u003c/span\u003e below.\n"},"hybridMonitorNamespace":{"type":"string","description":"The ID of the Hybrid Cloud Monitoring metric repository.\n"},"initialMaxSize":{"type":"integer","description":"The maximum number of ECS instances that can be added to the scaling group. If you specify InitialMaxSize, you must also specify PredictiveValueBehavior.\n"},"metricName":{"type":"string","description":"A CloudMonitor metric name.\n"},"metricType":{"type":"string","description":"The type of the metric. Valid values: system, custom, hybrid.\n"},"minAdjustmentMagnitude":{"type":"integer","description":"The minimum number of instances that must be scaled. This parameter takes effect if you set ScalingRuleType to SimpleScalingRule or StepScalingRule, and AdjustmentType to PercentChangeInCapacity.\n"},"predictiveScalingMode":{"type":"string","description":"The mode of the predictive scaling rule. Valid values: PredictAndScale, PredictOnly.\n"},"predictiveTaskBufferTime":{"type":"integer","description":"The amount of buffer time before the prediction task runs. By default, all prediction tasks that are automatically created by a predictive scaling rule run on the hour. You can specify a buffer time to run prediction tasks and prepare resources in advance. Valid values: 0 to 60. Unit: minutes.\n"},"predictiveValueBehavior":{"type":"string","description":"The action on the predicted maximum value. Valid values: MaxOverridePredictiveValue, PredictiveValueOverrideMax, PredictiveValueOverrideMaxWithBuffer.\n"},"predictiveValueBuffer":{"type":"integer","description":"The ratio based on which the predicted value is increased if you set PredictiveValueBehavior to PredictiveValueOverrideMaxWithBuffer. If the predicted value increased by this ratio is greater than the initial maximum capacity, the increased value is used as the maximum value for prediction tasks. Valid values: 0 to 100.\n"},"scaleInEvaluationCount":{"type":"integer","description":"The number of consecutive times that the event-triggered task created for scale-ins must meet the threshold conditions before an alert is triggered. After a target tracking scaling rule is created, an event-triggered task is automatically created and associated with the target tracking scaling rule.\n"},"scaleOutEvaluationCount":{"type":"integer","description":"The number of consecutive times that the event-triggered task created for scale-outs must meet the threshold conditions before an alert is triggered. After a target tracking scaling rule is created, an event-triggered task is automatically created and associated with the target tracking scaling rule.\n"},"scalingGroupId":{"type":"string","description":"ID of the scaling group of a scaling rule.\n","willReplaceOnChanges":true},"scalingRuleName":{"type":"string","description":"Name shown for the scaling rule, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores `_`, hypens `-`, and decimal point `.`. If this parameter value is not specified, the default value is scaling rule id.\n"},"scalingRuleType":{"type":"string","description":"The scaling rule type, either \"SimpleScalingRule\", \"TargetTrackingScalingRule\", \"StepScalingRule\", \"PredictiveScalingRule\". Default to \"SimpleScalingRule\".\n","willReplaceOnChanges":true},"stepAdjustments":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingRuleStepAdjustment:ScalingRuleStepAdjustment"},"description":"Steps for StepScalingRule. See \u003cspan pulumi-lang-nodejs=\"`stepAdjustment`\" pulumi-lang-dotnet=\"`StepAdjustment`\" pulumi-lang-go=\"`stepAdjustment`\" pulumi-lang-python=\"`step_adjustment`\" pulumi-lang-yaml=\"`stepAdjustment`\" pulumi-lang-java=\"`stepAdjustment`\"\u003e`step_adjustment`\u003c/span\u003e below.\n"},"targetValue":{"type":"number","description":"The target value for the metric.\n"}},"requiredInputs":["scalingGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering ScalingRule resources.\n","properties":{"adjustmentType":{"type":"string","description":"Adjustment mode of a scaling rule. Optional values:\n- QuantityChangeInCapacity: It is used to increase or decrease a specified number of ECS instances.\n- PercentChangeInCapacity: It is used to increase or decrease a specified proportion of ECS instances.\n- TotalCapacity: It is used to adjust the quantity of ECS instances in the current scaling group to a specified value.\n"},"adjustmentValue":{"type":"integer","description":"The number of ECS instances to be adjusted in the scaling rule. This parameter is required and applicable only to simple scaling rules. The number of ECS instances to be adjusted in a single scaling activity cannot exceed 500. Value range:\n- QuantityChangeInCapacity：(0, 500] U (-500, 0]\n- PercentChangeInCapacity：[0, 10000] U [-100, 0]\n- TotalCapacity：[0, 1000]\n"},"alarmDimension":{"$ref":"#/types/alicloud:ess/ScalingRuleAlarmDimension:ScalingRuleAlarmDimension","description":"AlarmDimension for StepScalingRule. See \u003cspan pulumi-lang-nodejs=\"`alarmDimension`\" pulumi-lang-dotnet=\"`AlarmDimension`\" pulumi-lang-go=\"`alarmDimension`\" pulumi-lang-python=\"`alarm_dimension`\" pulumi-lang-yaml=\"`alarmDimension`\" pulumi-lang-java=\"`alarmDimension`\"\u003e`alarm_dimension`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"ari":{"type":"string","description":"The unique identifier of the scaling rule.\n"},"cooldown":{"type":"integer","description":"The cooldown time of the scaling rule. This parameter is applicable only to simple scaling rules. Value range: [0, 86,400], in seconds. The default value is empty，if not set, the return value will be 0, which is the default value of integer.\n"},"disableScaleIn":{"type":"boolean","description":"Indicates whether scale in by the target tracking policy is disabled. Default to false.\n"},"estimatedInstanceWarmup":{"type":"integer","description":"The estimated time, in seconds, until a newly launched instance will contribute CloudMonitor metrics. Default to 300.\n"},"hybridMetrics":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingRuleHybridMetric:ScalingRuleHybridMetric"},"description":"The Hybrid Cloud Monitoring metrics. See \u003cspan pulumi-lang-nodejs=\"`hybridMetrics`\" pulumi-lang-dotnet=\"`HybridMetrics`\" pulumi-lang-go=\"`hybridMetrics`\" pulumi-lang-python=\"`hybrid_metrics`\" pulumi-lang-yaml=\"`hybridMetrics`\" pulumi-lang-java=\"`hybridMetrics`\"\u003e`hybrid_metrics`\u003c/span\u003e below.\n"},"hybridMonitorNamespace":{"type":"string","description":"The ID of the Hybrid Cloud Monitoring metric repository.\n"},"initialMaxSize":{"type":"integer","description":"The maximum number of ECS instances that can be added to the scaling group. If you specify InitialMaxSize, you must also specify PredictiveValueBehavior.\n"},"metricName":{"type":"string","description":"A CloudMonitor metric name.\n"},"metricType":{"type":"string","description":"The type of the metric. Valid values: system, custom, hybrid.\n"},"minAdjustmentMagnitude":{"type":"integer","description":"The minimum number of instances that must be scaled. This parameter takes effect if you set ScalingRuleType to SimpleScalingRule or StepScalingRule, and AdjustmentType to PercentChangeInCapacity.\n"},"predictiveScalingMode":{"type":"string","description":"The mode of the predictive scaling rule. Valid values: PredictAndScale, PredictOnly.\n"},"predictiveTaskBufferTime":{"type":"integer","description":"The amount of buffer time before the prediction task runs. By default, all prediction tasks that are automatically created by a predictive scaling rule run on the hour. You can specify a buffer time to run prediction tasks and prepare resources in advance. Valid values: 0 to 60. Unit: minutes.\n"},"predictiveValueBehavior":{"type":"string","description":"The action on the predicted maximum value. Valid values: MaxOverridePredictiveValue, PredictiveValueOverrideMax, PredictiveValueOverrideMaxWithBuffer.\n"},"predictiveValueBuffer":{"type":"integer","description":"The ratio based on which the predicted value is increased if you set PredictiveValueBehavior to PredictiveValueOverrideMaxWithBuffer. If the predicted value increased by this ratio is greater than the initial maximum capacity, the increased value is used as the maximum value for prediction tasks. Valid values: 0 to 100.\n"},"scaleInEvaluationCount":{"type":"integer","description":"The number of consecutive times that the event-triggered task created for scale-ins must meet the threshold conditions before an alert is triggered. After a target tracking scaling rule is created, an event-triggered task is automatically created and associated with the target tracking scaling rule.\n"},"scaleOutEvaluationCount":{"type":"integer","description":"The number of consecutive times that the event-triggered task created for scale-outs must meet the threshold conditions before an alert is triggered. After a target tracking scaling rule is created, an event-triggered task is automatically created and associated with the target tracking scaling rule.\n"},"scalingGroupId":{"type":"string","description":"ID of the scaling group of a scaling rule.\n","willReplaceOnChanges":true},"scalingRuleName":{"type":"string","description":"Name shown for the scaling rule, which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores `_`, hypens `-`, and decimal point `.`. If this parameter value is not specified, the default value is scaling rule id.\n"},"scalingRuleType":{"type":"string","description":"The scaling rule type, either \"SimpleScalingRule\", \"TargetTrackingScalingRule\", \"StepScalingRule\", \"PredictiveScalingRule\". Default to \"SimpleScalingRule\".\n","willReplaceOnChanges":true},"stepAdjustments":{"type":"array","items":{"$ref":"#/types/alicloud:ess/ScalingRuleStepAdjustment:ScalingRuleStepAdjustment"},"description":"Steps for StepScalingRule. See \u003cspan pulumi-lang-nodejs=\"`stepAdjustment`\" pulumi-lang-dotnet=\"`StepAdjustment`\" pulumi-lang-go=\"`stepAdjustment`\" pulumi-lang-python=\"`step_adjustment`\" pulumi-lang-yaml=\"`stepAdjustment`\" pulumi-lang-java=\"`stepAdjustment`\"\u003e`step_adjustment`\u003c/span\u003e below.\n"},"targetValue":{"type":"number","description":"The target value for the metric.\n"}},"type":"object"}},"alicloud:ess/schedule:Schedule":{"description":"\u003e **NOTE:** This resource has been deprecated from v1.45.0. New resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ess.ScheduledTask`\" pulumi-lang-dotnet=\"`alicloud.ess.ScheduledTask`\" pulumi-lang-go=\"`ess.ScheduledTask`\" pulumi-lang-python=\"`ess.ScheduledTask`\" pulumi-lang-yaml=\"`alicloud.ess.ScheduledTask`\" pulumi-lang-java=\"`alicloud.ess.ScheduledTask`\"\u003e`alicloud.ess.ScheduledTask`\u003c/span\u003e will replace.\n","properties":{"description":{"type":"string"},"desiredCapacity":{"type":"integer"},"launchExpirationTime":{"type":"integer"},"launchTime":{"type":"string"},"maxValue":{"type":"integer"},"minValue":{"type":"integer"},"recurrenceEndTime":{"type":"string"},"recurrenceType":{"type":"string"},"recurrenceValue":{"type":"string"},"scalingGroupId":{"type":"string"},"scheduledAction":{"type":"string"},"scheduledTaskName":{"type":"string"},"taskEnabled":{"type":"boolean"}},"required":["description","recurrenceEndTime","recurrenceType","recurrenceValue","scalingGroupId"],"inputProperties":{"description":{"type":"string"},"desiredCapacity":{"type":"integer"},"launchExpirationTime":{"type":"integer"},"launchTime":{"type":"string"},"maxValue":{"type":"integer"},"minValue":{"type":"integer"},"recurrenceEndTime":{"type":"string"},"recurrenceType":{"type":"string"},"recurrenceValue":{"type":"string"},"scalingGroupId":{"type":"string"},"scheduledAction":{"type":"string"},"scheduledTaskName":{"type":"string"},"taskEnabled":{"type":"boolean"}},"stateInputs":{"description":"Input properties used for looking up and filtering Schedule resources.\n","properties":{"description":{"type":"string"},"desiredCapacity":{"type":"integer"},"launchExpirationTime":{"type":"integer"},"launchTime":{"type":"string"},"maxValue":{"type":"integer"},"minValue":{"type":"integer"},"recurrenceEndTime":{"type":"string"},"recurrenceType":{"type":"string"},"recurrenceValue":{"type":"string"},"scalingGroupId":{"type":"string"},"scheduledAction":{"type":"string"},"scheduledTaskName":{"type":"string"},"taskEnabled":{"type":"boolean"}},"type":"object"}},"alicloud:ess/scheduledTask:ScheduledTask":{"description":"Provides a ESS schedule resource.\n\nFor information about ess schedule task, see [Scheduled Tasks](https://www.alibabacloud.com/help/en/auto-scaling/latest/createscheduledtask).\n\n\u003e **NOTE:** Available since v1.60.0.\n\n## Import\n\nESS schedule task can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ess/scheduledTask:ScheduledTask example abc123456\n```\n\n","properties":{"description":{"type":"string","description":"Description of the scheduled task, which is 2-200 characters (English or Chinese) long.\n"},"desiredCapacity":{"type":"integer","description":"The expected number of instances in a scaling group when the scaling method of the scheduled task is to specify the number of instances in a scaling group. **NOTE:** You must specify the `DesiredCapacity` parameter when you create the scaling group.\n"},"launchExpirationTime":{"type":"integer","description":"The time period during which a failed scheduled task is retried. Unit: seconds. Valid values: 0 to 1800, Available since v1.240.0. Default value: 600\n"},"launchTime":{"type":"string","description":"The time at which the scheduled task is triggered. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mmZ format. \nThe time must be in UTC. You cannot enter a time point later than 90 days from the date of scheduled task creation.\nIf the \u003cspan pulumi-lang-nodejs=\"`recurrenceType`\" pulumi-lang-dotnet=\"`RecurrenceType`\" pulumi-lang-go=\"`recurrenceType`\" pulumi-lang-python=\"`recurrence_type`\" pulumi-lang-yaml=\"`recurrenceType`\" pulumi-lang-java=\"`recurrenceType`\"\u003e`recurrence_type`\u003c/span\u003e parameter is specified, the task is executed repeatedly at the time specified by LaunchTime.\nOtherwise, the task is only executed once at the date and time specified by LaunchTime.\n"},"maxValue":{"type":"integer","description":"The maximum number of instances in a scaling group when the scaling method of the scheduled task is to specify the number of instances in a scaling group.\n"},"minValue":{"type":"integer","description":"The minimum number of instances in a scaling group when the scaling method of the scheduled task is to specify the number of instances in a scaling group.\n"},"recurrenceEndTime":{"type":"string","description":"Specifies the end time after which the scheduled task is no longer repeated. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. \nThe time must be in UTC. You cannot enter a time point later than 365 days from the date of scheduled task creation. **NOTE:** You must specify `RecurrenceType`, `RecurrenceValue`, and `RecurrenceEndTime` at the same time.\n"},"recurrenceType":{"type":"string","description":"Specifies the recurrence type of the scheduled task. **NOTE:** You must specify `RecurrenceType`, `RecurrenceValue`, and `RecurrenceEndTime` at the same time. Valid values:\n- Daily: The scheduled task is executed once every specified number of days.\n- Weekly: The scheduled task is executed on each specified day of a week.\n- Monthly: The scheduled task is executed on each specified day of a month.\n- Cron: (Available in 1.60.0+) The scheduled task is executed based on the specified cron expression.\n"},"recurrenceValue":{"type":"string","description":"Specifies how often a scheduled task recurs. **NOTE:** You must specify `RecurrenceType`, `RecurrenceValue`, and `RecurrenceEndTime` at the same time. The valid value depends on \u003cspan pulumi-lang-nodejs=\"`recurrenceType`\" pulumi-lang-dotnet=\"`RecurrenceType`\" pulumi-lang-go=\"`recurrenceType`\" pulumi-lang-python=\"`recurrence_type`\" pulumi-lang-yaml=\"`recurrenceType`\" pulumi-lang-java=\"`recurrenceType`\"\u003e`recurrence_type`\u003c/span\u003e\n- Daily: You can enter one value. Valid values: 1 to 31.\n- Weekly: You can enter multiple values and separate them with commas (,). For example, the values 0 to 6 correspond to the days of the week in sequence from Sunday to Saturday.\n- Monthly: You can enter two values in A-B format. Valid values of A and B: 1 to 31. The value of B must be greater than or equal to the value of A.\n- Cron: You can enter a cron expression which is written in UTC and consists of five fields: minute, hour, day of month (date), month, and day of week. The expression can contain wildcard characters including commas (,), question marks (?), hyphens (-), asterisks (*), number signs (#), forward slashes (/), and the L and W letters.\n"},"scalingGroupId":{"type":"string","description":"The ID of the scaling group where the number of instances is modified when the scheduled task is triggered. After the `ScalingGroupId` parameter is specified, the scaling method of the scheduled task is to specify the number of instances in a scaling group. You must specify at least one of the following parameters: `MinValue`, `MaxValue`, and `DesiredCapacity`. **NOTE:** You cannot specify \u003cspan pulumi-lang-nodejs=\"`scheduledAction`\" pulumi-lang-dotnet=\"`ScheduledAction`\" pulumi-lang-go=\"`scheduledAction`\" pulumi-lang-python=\"`scheduled_action`\" pulumi-lang-yaml=\"`scheduledAction`\" pulumi-lang-java=\"`scheduledAction`\"\u003e`scheduled_action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`scalingGroupId`\" pulumi-lang-dotnet=\"`ScalingGroupId`\" pulumi-lang-go=\"`scalingGroupId`\" pulumi-lang-python=\"`scaling_group_id`\" pulumi-lang-yaml=\"`scalingGroupId`\" pulumi-lang-java=\"`scalingGroupId`\"\u003e`scaling_group_id`\u003c/span\u003e at the same time.\n"},"scheduledAction":{"type":"string","description":"The operation to be performed when a scheduled task is triggered. Enter the unique identifier of a scaling rule. **NOTE:** You cannot specify \u003cspan pulumi-lang-nodejs=\"`scheduledAction`\" pulumi-lang-dotnet=\"`ScheduledAction`\" pulumi-lang-go=\"`scheduledAction`\" pulumi-lang-python=\"`scheduled_action`\" pulumi-lang-yaml=\"`scheduledAction`\" pulumi-lang-java=\"`scheduledAction`\"\u003e`scheduled_action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`scalingGroupId`\" pulumi-lang-dotnet=\"`ScalingGroupId`\" pulumi-lang-go=\"`scalingGroupId`\" pulumi-lang-python=\"`scaling_group_id`\" pulumi-lang-yaml=\"`scalingGroupId`\" pulumi-lang-java=\"`scalingGroupId`\"\u003e`scaling_group_id`\u003c/span\u003e at the same time.\n"},"scheduledTaskName":{"type":"string","description":"Display name of the scheduled task, which must be 2-40 characters (English or Chinese) long.\n"},"taskEnabled":{"type":"boolean","description":"Specifies whether to start the scheduled task. Default to true.\n"}},"required":["description","recurrenceEndTime","recurrenceType","recurrenceValue","scalingGroupId"],"inputProperties":{"description":{"type":"string","description":"Description of the scheduled task, which is 2-200 characters (English or Chinese) long.\n"},"desiredCapacity":{"type":"integer","description":"The expected number of instances in a scaling group when the scaling method of the scheduled task is to specify the number of instances in a scaling group. **NOTE:** You must specify the `DesiredCapacity` parameter when you create the scaling group.\n"},"launchExpirationTime":{"type":"integer","description":"The time period during which a failed scheduled task is retried. Unit: seconds. Valid values: 0 to 1800, Available since v1.240.0. Default value: 600\n"},"launchTime":{"type":"string","description":"The time at which the scheduled task is triggered. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mmZ format. \nThe time must be in UTC. You cannot enter a time point later than 90 days from the date of scheduled task creation.\nIf the \u003cspan pulumi-lang-nodejs=\"`recurrenceType`\" pulumi-lang-dotnet=\"`RecurrenceType`\" pulumi-lang-go=\"`recurrenceType`\" pulumi-lang-python=\"`recurrence_type`\" pulumi-lang-yaml=\"`recurrenceType`\" pulumi-lang-java=\"`recurrenceType`\"\u003e`recurrence_type`\u003c/span\u003e parameter is specified, the task is executed repeatedly at the time specified by LaunchTime.\nOtherwise, the task is only executed once at the date and time specified by LaunchTime.\n"},"maxValue":{"type":"integer","description":"The maximum number of instances in a scaling group when the scaling method of the scheduled task is to specify the number of instances in a scaling group.\n"},"minValue":{"type":"integer","description":"The minimum number of instances in a scaling group when the scaling method of the scheduled task is to specify the number of instances in a scaling group.\n"},"recurrenceEndTime":{"type":"string","description":"Specifies the end time after which the scheduled task is no longer repeated. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. \nThe time must be in UTC. You cannot enter a time point later than 365 days from the date of scheduled task creation. **NOTE:** You must specify `RecurrenceType`, `RecurrenceValue`, and `RecurrenceEndTime` at the same time.\n"},"recurrenceType":{"type":"string","description":"Specifies the recurrence type of the scheduled task. **NOTE:** You must specify `RecurrenceType`, `RecurrenceValue`, and `RecurrenceEndTime` at the same time. Valid values:\n- Daily: The scheduled task is executed once every specified number of days.\n- Weekly: The scheduled task is executed on each specified day of a week.\n- Monthly: The scheduled task is executed on each specified day of a month.\n- Cron: (Available in 1.60.0+) The scheduled task is executed based on the specified cron expression.\n"},"recurrenceValue":{"type":"string","description":"Specifies how often a scheduled task recurs. **NOTE:** You must specify `RecurrenceType`, `RecurrenceValue`, and `RecurrenceEndTime` at the same time. The valid value depends on \u003cspan pulumi-lang-nodejs=\"`recurrenceType`\" pulumi-lang-dotnet=\"`RecurrenceType`\" pulumi-lang-go=\"`recurrenceType`\" pulumi-lang-python=\"`recurrence_type`\" pulumi-lang-yaml=\"`recurrenceType`\" pulumi-lang-java=\"`recurrenceType`\"\u003e`recurrence_type`\u003c/span\u003e\n- Daily: You can enter one value. Valid values: 1 to 31.\n- Weekly: You can enter multiple values and separate them with commas (,). For example, the values 0 to 6 correspond to the days of the week in sequence from Sunday to Saturday.\n- Monthly: You can enter two values in A-B format. Valid values of A and B: 1 to 31. The value of B must be greater than or equal to the value of A.\n- Cron: You can enter a cron expression which is written in UTC and consists of five fields: minute, hour, day of month (date), month, and day of week. The expression can contain wildcard characters including commas (,), question marks (?), hyphens (-), asterisks (*), number signs (#), forward slashes (/), and the L and W letters.\n"},"scalingGroupId":{"type":"string","description":"The ID of the scaling group where the number of instances is modified when the scheduled task is triggered. After the `ScalingGroupId` parameter is specified, the scaling method of the scheduled task is to specify the number of instances in a scaling group. You must specify at least one of the following parameters: `MinValue`, `MaxValue`, and `DesiredCapacity`. **NOTE:** You cannot specify \u003cspan pulumi-lang-nodejs=\"`scheduledAction`\" pulumi-lang-dotnet=\"`ScheduledAction`\" pulumi-lang-go=\"`scheduledAction`\" pulumi-lang-python=\"`scheduled_action`\" pulumi-lang-yaml=\"`scheduledAction`\" pulumi-lang-java=\"`scheduledAction`\"\u003e`scheduled_action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`scalingGroupId`\" pulumi-lang-dotnet=\"`ScalingGroupId`\" pulumi-lang-go=\"`scalingGroupId`\" pulumi-lang-python=\"`scaling_group_id`\" pulumi-lang-yaml=\"`scalingGroupId`\" pulumi-lang-java=\"`scalingGroupId`\"\u003e`scaling_group_id`\u003c/span\u003e at the same time.\n"},"scheduledAction":{"type":"string","description":"The operation to be performed when a scheduled task is triggered. Enter the unique identifier of a scaling rule. **NOTE:** You cannot specify \u003cspan pulumi-lang-nodejs=\"`scheduledAction`\" pulumi-lang-dotnet=\"`ScheduledAction`\" pulumi-lang-go=\"`scheduledAction`\" pulumi-lang-python=\"`scheduled_action`\" pulumi-lang-yaml=\"`scheduledAction`\" pulumi-lang-java=\"`scheduledAction`\"\u003e`scheduled_action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`scalingGroupId`\" pulumi-lang-dotnet=\"`ScalingGroupId`\" pulumi-lang-go=\"`scalingGroupId`\" pulumi-lang-python=\"`scaling_group_id`\" pulumi-lang-yaml=\"`scalingGroupId`\" pulumi-lang-java=\"`scalingGroupId`\"\u003e`scaling_group_id`\u003c/span\u003e at the same time.\n"},"scheduledTaskName":{"type":"string","description":"Display name of the scheduled task, which must be 2-40 characters (English or Chinese) long.\n"},"taskEnabled":{"type":"boolean","description":"Specifies whether to start the scheduled task. Default to true.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ScheduledTask resources.\n","properties":{"description":{"type":"string","description":"Description of the scheduled task, which is 2-200 characters (English or Chinese) long.\n"},"desiredCapacity":{"type":"integer","description":"The expected number of instances in a scaling group when the scaling method of the scheduled task is to specify the number of instances in a scaling group. **NOTE:** You must specify the `DesiredCapacity` parameter when you create the scaling group.\n"},"launchExpirationTime":{"type":"integer","description":"The time period during which a failed scheduled task is retried. Unit: seconds. Valid values: 0 to 1800, Available since v1.240.0. Default value: 600\n"},"launchTime":{"type":"string","description":"The time at which the scheduled task is triggered. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mmZ format. \nThe time must be in UTC. You cannot enter a time point later than 90 days from the date of scheduled task creation.\nIf the \u003cspan pulumi-lang-nodejs=\"`recurrenceType`\" pulumi-lang-dotnet=\"`RecurrenceType`\" pulumi-lang-go=\"`recurrenceType`\" pulumi-lang-python=\"`recurrence_type`\" pulumi-lang-yaml=\"`recurrenceType`\" pulumi-lang-java=\"`recurrenceType`\"\u003e`recurrence_type`\u003c/span\u003e parameter is specified, the task is executed repeatedly at the time specified by LaunchTime.\nOtherwise, the task is only executed once at the date and time specified by LaunchTime.\n"},"maxValue":{"type":"integer","description":"The maximum number of instances in a scaling group when the scaling method of the scheduled task is to specify the number of instances in a scaling group.\n"},"minValue":{"type":"integer","description":"The minimum number of instances in a scaling group when the scaling method of the scheduled task is to specify the number of instances in a scaling group.\n"},"recurrenceEndTime":{"type":"string","description":"Specifies the end time after which the scheduled task is no longer repeated. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. \nThe time must be in UTC. You cannot enter a time point later than 365 days from the date of scheduled task creation. **NOTE:** You must specify `RecurrenceType`, `RecurrenceValue`, and `RecurrenceEndTime` at the same time.\n"},"recurrenceType":{"type":"string","description":"Specifies the recurrence type of the scheduled task. **NOTE:** You must specify `RecurrenceType`, `RecurrenceValue`, and `RecurrenceEndTime` at the same time. Valid values:\n- Daily: The scheduled task is executed once every specified number of days.\n- Weekly: The scheduled task is executed on each specified day of a week.\n- Monthly: The scheduled task is executed on each specified day of a month.\n- Cron: (Available in 1.60.0+) The scheduled task is executed based on the specified cron expression.\n"},"recurrenceValue":{"type":"string","description":"Specifies how often a scheduled task recurs. **NOTE:** You must specify `RecurrenceType`, `RecurrenceValue`, and `RecurrenceEndTime` at the same time. The valid value depends on \u003cspan pulumi-lang-nodejs=\"`recurrenceType`\" pulumi-lang-dotnet=\"`RecurrenceType`\" pulumi-lang-go=\"`recurrenceType`\" pulumi-lang-python=\"`recurrence_type`\" pulumi-lang-yaml=\"`recurrenceType`\" pulumi-lang-java=\"`recurrenceType`\"\u003e`recurrence_type`\u003c/span\u003e\n- Daily: You can enter one value. Valid values: 1 to 31.\n- Weekly: You can enter multiple values and separate them with commas (,). For example, the values 0 to 6 correspond to the days of the week in sequence from Sunday to Saturday.\n- Monthly: You can enter two values in A-B format. Valid values of A and B: 1 to 31. The value of B must be greater than or equal to the value of A.\n- Cron: You can enter a cron expression which is written in UTC and consists of five fields: minute, hour, day of month (date), month, and day of week. The expression can contain wildcard characters including commas (,), question marks (?), hyphens (-), asterisks (*), number signs (#), forward slashes (/), and the L and W letters.\n"},"scalingGroupId":{"type":"string","description":"The ID of the scaling group where the number of instances is modified when the scheduled task is triggered. After the `ScalingGroupId` parameter is specified, the scaling method of the scheduled task is to specify the number of instances in a scaling group. You must specify at least one of the following parameters: `MinValue`, `MaxValue`, and `DesiredCapacity`. **NOTE:** You cannot specify \u003cspan pulumi-lang-nodejs=\"`scheduledAction`\" pulumi-lang-dotnet=\"`ScheduledAction`\" pulumi-lang-go=\"`scheduledAction`\" pulumi-lang-python=\"`scheduled_action`\" pulumi-lang-yaml=\"`scheduledAction`\" pulumi-lang-java=\"`scheduledAction`\"\u003e`scheduled_action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`scalingGroupId`\" pulumi-lang-dotnet=\"`ScalingGroupId`\" pulumi-lang-go=\"`scalingGroupId`\" pulumi-lang-python=\"`scaling_group_id`\" pulumi-lang-yaml=\"`scalingGroupId`\" pulumi-lang-java=\"`scalingGroupId`\"\u003e`scaling_group_id`\u003c/span\u003e at the same time.\n"},"scheduledAction":{"type":"string","description":"The operation to be performed when a scheduled task is triggered. Enter the unique identifier of a scaling rule. **NOTE:** You cannot specify \u003cspan pulumi-lang-nodejs=\"`scheduledAction`\" pulumi-lang-dotnet=\"`ScheduledAction`\" pulumi-lang-go=\"`scheduledAction`\" pulumi-lang-python=\"`scheduled_action`\" pulumi-lang-yaml=\"`scheduledAction`\" pulumi-lang-java=\"`scheduledAction`\"\u003e`scheduled_action`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`scalingGroupId`\" pulumi-lang-dotnet=\"`ScalingGroupId`\" pulumi-lang-go=\"`scalingGroupId`\" pulumi-lang-python=\"`scaling_group_id`\" pulumi-lang-yaml=\"`scalingGroupId`\" pulumi-lang-java=\"`scalingGroupId`\"\u003e`scaling_group_id`\u003c/span\u003e at the same time.\n"},"scheduledTaskName":{"type":"string","description":"Display name of the scheduled task, which must be 2-40 characters (English or Chinese) long.\n"},"taskEnabled":{"type":"boolean","description":"Specifies whether to start the scheduled task. Default to true.\n"}},"type":"object"}},"alicloud:ess/serverGroupAttachment:ServerGroupAttachment":{"description":"Attaches/Detaches server group to a specified scaling group.\n\nFor information about  server group attachment, see [AttachServerGroups](https://www.alibabacloud.com/help/en/auto-scaling/developer-reference/api-attachservergroups).\n\n\u003e **NOTE:** If scaling group's network type is `VPC`, the server groups must be in the same `VPC`.\n\n\u003e **NOTE:** server group attachment is defined uniquely by \u003cspan pulumi-lang-nodejs=\"`scalingGroupId`\" pulumi-lang-dotnet=\"`ScalingGroupId`\" pulumi-lang-go=\"`scalingGroupId`\" pulumi-lang-python=\"`scaling_group_id`\" pulumi-lang-yaml=\"`scalingGroupId`\" pulumi-lang-java=\"`scalingGroupId`\"\u003e`scaling_group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`serverGroupId`\" pulumi-lang-dotnet=\"`ServerGroupId`\" pulumi-lang-go=\"`serverGroupId`\" pulumi-lang-python=\"`server_group_id`\" pulumi-lang-yaml=\"`serverGroupId`\" pulumi-lang-java=\"`serverGroupId`\"\u003e`server_group_id`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e.\n\n\u003e **NOTE:** Resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ess.ServerGroupAttachment`\" pulumi-lang-dotnet=\"`alicloud.ess.ServerGroupAttachment`\" pulumi-lang-go=\"`ess.ServerGroupAttachment`\" pulumi-lang-python=\"`ess.ServerGroupAttachment`\" pulumi-lang-yaml=\"`alicloud.ess.ServerGroupAttachment`\" pulumi-lang-java=\"`alicloud.ess.ServerGroupAttachment`\"\u003e`alicloud.ess.ServerGroupAttachment`\u003c/span\u003e don't support modification.\n\n\u003e **NOTE:** Available since v1.231.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst myName = `${name}-${defaultInteger.result}`;\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 2,\n    memorySize: 4,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: myName,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: myName,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    securityGroupName: myName,\n    vpcId: defaultNetwork.id,\n});\nconst defaultScalingGroup = new alicloud.ess.ScalingGroup(\"default\", {\n    minSize: 0,\n    maxSize: 2,\n    scalingGroupName: myName,\n    defaultCooldown: 200,\n    removalPolicies: [\"OldestInstance\"],\n    vswitchIds: [defaultSwitch.id],\n});\nconst defaultScalingConfiguration = new alicloud.ess.ScalingConfiguration(\"default\", {\n    scalingGroupId: defaultScalingGroup.id,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroupId: defaultSecurityGroup.id,\n    systemDiskSize: 50,\n    forceDelete: true,\n    active: true,\n    enable: true,\n});\nconst defaultServerGroup = new alicloud.alb.ServerGroup(\"default\", {\n    serverGroupName: myName,\n    vpcId: defaultNetwork.id,\n    healthCheckConfig: {\n        healthCheckEnabled: false,\n    },\n    stickySessionConfig: {\n        stickySessionEnabled: true,\n        cookie: \"tf-example\",\n        stickySessionType: \"Server\",\n    },\n});\nconst defaultServerGroupAttachment = new alicloud.ess.ServerGroupAttachment(\"default\", {\n    scalingGroupId: defaultScalingConfiguration.scalingGroupId,\n    serverGroupId: defaultServerGroup.id,\n    port: 9000,\n    type: \"ALB\",\n    weight: 50,\n    forceAttach: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nmy_name = f\"{name}-{default_integer['result']}\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=2,\n    memory_size=4)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=my_name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=my_name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    security_group_name=my_name,\n    vpc_id=default_network.id)\ndefault_scaling_group = alicloud.ess.ScalingGroup(\"default\",\n    min_size=0,\n    max_size=2,\n    scaling_group_name=my_name,\n    default_cooldown=200,\n    removal_policies=[\"OldestInstance\"],\n    vswitch_ids=[default_switch.id])\ndefault_scaling_configuration = alicloud.ess.ScalingConfiguration(\"default\",\n    scaling_group_id=default_scaling_group.id,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_group_id=default_security_group.id,\n    system_disk_size=50,\n    force_delete=True,\n    active=True,\n    enable=True)\ndefault_server_group = alicloud.alb.ServerGroup(\"default\",\n    server_group_name=my_name,\n    vpc_id=default_network.id,\n    health_check_config={\n        \"health_check_enabled\": False,\n    },\n    sticky_session_config={\n        \"sticky_session_enabled\": True,\n        \"cookie\": \"tf-example\",\n        \"sticky_session_type\": \"Server\",\n    })\ndefault_server_group_attachment = alicloud.ess.ServerGroupAttachment(\"default\",\n    scaling_group_id=default_scaling_configuration.scaling_group_id,\n    server_group_id=default_server_group.id,\n    port=9000,\n    type=\"ALB\",\n    weight=50,\n    force_attach=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var myName = $\"{name}-{defaultInteger.Result}\";\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 2,\n        MemorySize = 4,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = myName,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = myName,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = myName,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultScalingGroup = new AliCloud.Ess.ScalingGroup(\"default\", new()\n    {\n        MinSize = 0,\n        MaxSize = 2,\n        ScalingGroupName = myName,\n        DefaultCooldown = 200,\n        RemovalPolicies = new[]\n        {\n            \"OldestInstance\",\n        },\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n    });\n\n    var defaultScalingConfiguration = new AliCloud.Ess.ScalingConfiguration(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroupId = defaultSecurityGroup.Id,\n        SystemDiskSize = 50,\n        ForceDelete = true,\n        Active = true,\n        Enable = true,\n    });\n\n    var defaultServerGroup = new AliCloud.Alb.ServerGroup(\"default\", new()\n    {\n        ServerGroupName = myName,\n        VpcId = defaultNetwork.Id,\n        HealthCheckConfig = new AliCloud.Alb.Inputs.ServerGroupHealthCheckConfigArgs\n        {\n            HealthCheckEnabled = false,\n        },\n        StickySessionConfig = new AliCloud.Alb.Inputs.ServerGroupStickySessionConfigArgs\n        {\n            StickySessionEnabled = true,\n            Cookie = \"tf-example\",\n            StickySessionType = \"Server\",\n        },\n    });\n\n    var defaultServerGroupAttachment = new AliCloud.Ess.ServerGroupAttachment(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingConfiguration.ScalingGroupId,\n        ServerGroupId = defaultServerGroup.Id,\n        Port = 9000,\n        Type = \"ALB\",\n        Weight = 50,\n        ForceAttach = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyName := fmt.Sprintf(\"%v-%v\", name, defaultInteger.Result)\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(2),\n\t\t\tMemorySize:       pulumi.Float64Ref(4),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(myName),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(myName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(myName),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingGroup, err := ess.NewScalingGroup(ctx, \"default\", \u0026ess.ScalingGroupArgs{\n\t\t\tMinSize:          pulumi.Int(0),\n\t\t\tMaxSize:          pulumi.Int(2),\n\t\t\tScalingGroupName: pulumi.String(myName),\n\t\t\tDefaultCooldown:  pulumi.Int(200),\n\t\t\tRemovalPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OldestInstance\"),\n\t\t\t},\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingConfiguration, err := ess.NewScalingConfiguration(ctx, \"default\", \u0026ess.ScalingConfigurationArgs{\n\t\t\tScalingGroupId:  defaultScalingGroup.ID(),\n\t\t\tImageId:         pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tSystemDiskSize:  pulumi.Int(50),\n\t\t\tForceDelete:     pulumi.Bool(true),\n\t\t\tActive:          pulumi.Bool(true),\n\t\t\tEnable:          pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultServerGroup, err := alb.NewServerGroup(ctx, \"default\", \u0026alb.ServerGroupArgs{\n\t\t\tServerGroupName: pulumi.String(myName),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t\tHealthCheckConfig: \u0026alb.ServerGroupHealthCheckConfigArgs{\n\t\t\t\tHealthCheckEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tStickySessionConfig: \u0026alb.ServerGroupStickySessionConfigArgs{\n\t\t\t\tStickySessionEnabled: pulumi.Bool(true),\n\t\t\t\tCookie:               pulumi.String(\"tf-example\"),\n\t\t\t\tStickySessionType:    pulumi.String(\"Server\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ess.NewServerGroupAttachment(ctx, \"default\", \u0026ess.ServerGroupAttachmentArgs{\n\t\t\tScalingGroupId: defaultScalingConfiguration.ScalingGroupId,\n\t\t\tServerGroupId:  defaultServerGroup.ID(),\n\t\t\tPort:           pulumi.Int(9000),\n\t\t\tType:           pulumi.String(\"ALB\"),\n\t\t\tWeight:         pulumi.Int(50),\n\t\t\tForceAttach:    pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingGroup;\nimport com.pulumi.alicloud.ess.ScalingGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingConfiguration;\nimport com.pulumi.alicloud.ess.ScalingConfigurationArgs;\nimport com.pulumi.alicloud.alb.ServerGroup;\nimport com.pulumi.alicloud.alb.ServerGroupArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupHealthCheckConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupStickySessionConfigArgs;\nimport com.pulumi.alicloud.ess.ServerGroupAttachment;\nimport com.pulumi.alicloud.ess.ServerGroupAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var myName = String.format(\"%s-%s\", name,defaultInteger.result());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(myName)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(myName)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(myName)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultScalingGroup = new ScalingGroup(\"defaultScalingGroup\", ScalingGroupArgs.builder()\n            .minSize(0)\n            .maxSize(2)\n            .scalingGroupName(myName)\n            .defaultCooldown(200)\n            .removalPolicies(\"OldestInstance\")\n            .vswitchIds(defaultSwitch.id())\n            .build());\n\n        var defaultScalingConfiguration = new ScalingConfiguration(\"defaultScalingConfiguration\", ScalingConfigurationArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroupId(defaultSecurityGroup.id())\n            .systemDiskSize(50)\n            .forceDelete(true)\n            .active(true)\n            .enable(true)\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .serverGroupName(myName)\n            .vpcId(defaultNetwork.id())\n            .healthCheckConfig(ServerGroupHealthCheckConfigArgs.builder()\n                .healthCheckEnabled(false)\n                .build())\n            .stickySessionConfig(ServerGroupStickySessionConfigArgs.builder()\n                .stickySessionEnabled(true)\n                .cookie(\"tf-example\")\n                .stickySessionType(\"Server\")\n                .build())\n            .build());\n\n        var defaultServerGroupAttachment = new ServerGroupAttachment(\"defaultServerGroupAttachment\", ServerGroupAttachmentArgs.builder()\n            .scalingGroupId(defaultScalingConfiguration.scalingGroupId())\n            .serverGroupId(defaultServerGroup.id())\n            .port(9000)\n            .type(\"ALB\")\n            .weight(50)\n            .forceAttach(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${myName}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${myName}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      securityGroupName: ${myName}\n      vpcId: ${defaultNetwork.id}\n  defaultScalingGroup:\n    type: alicloud:ess:ScalingGroup\n    name: default\n    properties:\n      minSize: '0'\n      maxSize: '2'\n      scalingGroupName: ${myName}\n      defaultCooldown: 200\n      removalPolicies:\n        - OldestInstance\n      vswitchIds:\n        - ${defaultSwitch.id}\n  defaultScalingConfiguration:\n    type: alicloud:ess:ScalingConfiguration\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingGroup.id}\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      securityGroupId: ${defaultSecurityGroup.id}\n      systemDiskSize: 50\n      forceDelete: true\n      active: true\n      enable: true\n  defaultServerGroup:\n    type: alicloud:alb:ServerGroup\n    name: default\n    properties:\n      serverGroupName: ${myName}\n      vpcId: ${defaultNetwork.id}\n      healthCheckConfig:\n        healthCheckEnabled: 'false'\n      stickySessionConfig:\n        stickySessionEnabled: true\n        cookie: tf-example\n        stickySessionType: Server\n  defaultServerGroupAttachment:\n    type: alicloud:ess:ServerGroupAttachment\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingConfiguration.scalingGroupId}\n      serverGroupId: ${defaultServerGroup.id}\n      port: 9000\n      type: ALB\n      weight: 50\n      forceAttach: true\nvariables:\n  myName: ${name}-${defaultInteger.result}\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 2\n        memorySize: 4\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"forceAttach":{"type":"boolean","description":"If instances of scaling group are attached/removed from backend server when\nserver group from scaling group. Default to false.\n"},"port":{"type":"integer","description":"The port will be used for Server Group backend server.\n"},"scalingGroupId":{"type":"string","description":"ID of the scaling group.\n"},"serverGroupId":{"type":"string","description":"ID of Server Group.\n"},"type":{"type":"string","description":"The type of server group N. Valid values: ALB, NLB.\n"},"weight":{"type":"integer","description":"The weight of an ECS instance attached to the Server Group.\n"}},"required":["port","scalingGroupId","serverGroupId","type","weight"],"inputProperties":{"forceAttach":{"type":"boolean","description":"If instances of scaling group are attached/removed from backend server when\nserver group from scaling group. Default to false.\n"},"port":{"type":"integer","description":"The port will be used for Server Group backend server.\n","willReplaceOnChanges":true},"scalingGroupId":{"type":"string","description":"ID of the scaling group.\n","willReplaceOnChanges":true},"serverGroupId":{"type":"string","description":"ID of Server Group.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of server group N. Valid values: ALB, NLB.\n","willReplaceOnChanges":true},"weight":{"type":"integer","description":"The weight of an ECS instance attached to the Server Group.\n","willReplaceOnChanges":true}},"requiredInputs":["port","scalingGroupId","serverGroupId","type","weight"],"stateInputs":{"description":"Input properties used for looking up and filtering ServerGroupAttachment resources.\n","properties":{"forceAttach":{"type":"boolean","description":"If instances of scaling group are attached/removed from backend server when\nserver group from scaling group. Default to false.\n"},"port":{"type":"integer","description":"The port will be used for Server Group backend server.\n","willReplaceOnChanges":true},"scalingGroupId":{"type":"string","description":"ID of the scaling group.\n","willReplaceOnChanges":true},"serverGroupId":{"type":"string","description":"ID of Server Group.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of server group N. Valid values: ALB, NLB.\n","willReplaceOnChanges":true},"weight":{"type":"integer","description":"The weight of an ECS instance attached to the Server Group.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ess/suspendProcess:SuspendProcess":{"description":"Suspend/Resume processes to a specified scaling group.\n\nFor information about scaling group suspend process, see [SuspendProcesses](https://www.alibabacloud.com/help/en/auto-scaling/latest/suspendprocesses).\n\n\u003e **NOTE:** Available since v1.166.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst myName = `${name}-${defaultInteger.result}`;\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 2,\n    memorySize: 4,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: myName,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: myName,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    securityGroupName: myName,\n    vpcId: defaultNetwork.id,\n});\nconst defaultScalingGroup = new alicloud.ess.ScalingGroup(\"default\", {\n    minSize: 1,\n    maxSize: 1,\n    scalingGroupName: myName,\n    vswitchIds: [defaultSwitch.id],\n    removalPolicies: [\"OldestInstance\"],\n    defaultCooldown: 200,\n});\nconst defaultScalingConfiguration = new alicloud.ess.ScalingConfiguration(\"default\", {\n    scalingGroupId: defaultScalingGroup.id,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroupId: defaultSecurityGroup.id,\n    forceDelete: true,\n    active: true,\n    enable: true,\n});\nconst defaultSuspendProcess = new alicloud.ess.SuspendProcess(\"default\", {\n    scalingGroupId: defaultScalingConfiguration.scalingGroupId,\n    process: \"ScaleIn\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nmy_name = f\"{name}-{default_integer['result']}\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=2,\n    memory_size=4)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=my_name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=my_name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    security_group_name=my_name,\n    vpc_id=default_network.id)\ndefault_scaling_group = alicloud.ess.ScalingGroup(\"default\",\n    min_size=1,\n    max_size=1,\n    scaling_group_name=my_name,\n    vswitch_ids=[default_switch.id],\n    removal_policies=[\"OldestInstance\"],\n    default_cooldown=200)\ndefault_scaling_configuration = alicloud.ess.ScalingConfiguration(\"default\",\n    scaling_group_id=default_scaling_group.id,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_group_id=default_security_group.id,\n    force_delete=True,\n    active=True,\n    enable=True)\ndefault_suspend_process = alicloud.ess.SuspendProcess(\"default\",\n    scaling_group_id=default_scaling_configuration.scaling_group_id,\n    process=\"ScaleIn\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var myName = $\"{name}-{defaultInteger.Result}\";\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 2,\n        MemorySize = 4,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = myName,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = myName,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = myName,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultScalingGroup = new AliCloud.Ess.ScalingGroup(\"default\", new()\n    {\n        MinSize = 1,\n        MaxSize = 1,\n        ScalingGroupName = myName,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        RemovalPolicies = new[]\n        {\n            \"OldestInstance\",\n        },\n        DefaultCooldown = 200,\n    });\n\n    var defaultScalingConfiguration = new AliCloud.Ess.ScalingConfiguration(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroupId = defaultSecurityGroup.Id,\n        ForceDelete = true,\n        Active = true,\n        Enable = true,\n    });\n\n    var defaultSuspendProcess = new AliCloud.Ess.SuspendProcess(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingConfiguration.ScalingGroupId,\n        Process = \"ScaleIn\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyName := fmt.Sprintf(\"%v-%v\", name, defaultInteger.Result)\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(2),\n\t\t\tMemorySize:       pulumi.Float64Ref(4),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(myName),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(myName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(myName),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingGroup, err := ess.NewScalingGroup(ctx, \"default\", \u0026ess.ScalingGroupArgs{\n\t\t\tMinSize:          pulumi.Int(1),\n\t\t\tMaxSize:          pulumi.Int(1),\n\t\t\tScalingGroupName: pulumi.String(myName),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tRemovalPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OldestInstance\"),\n\t\t\t},\n\t\t\tDefaultCooldown: pulumi.Int(200),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingConfiguration, err := ess.NewScalingConfiguration(ctx, \"default\", \u0026ess.ScalingConfigurationArgs{\n\t\t\tScalingGroupId:  defaultScalingGroup.ID(),\n\t\t\tImageId:         pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tForceDelete:     pulumi.Bool(true),\n\t\t\tActive:          pulumi.Bool(true),\n\t\t\tEnable:          pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ess.NewSuspendProcess(ctx, \"default\", \u0026ess.SuspendProcessArgs{\n\t\t\tScalingGroupId: defaultScalingConfiguration.ScalingGroupId,\n\t\t\tProcess:        pulumi.String(\"ScaleIn\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingGroup;\nimport com.pulumi.alicloud.ess.ScalingGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingConfiguration;\nimport com.pulumi.alicloud.ess.ScalingConfigurationArgs;\nimport com.pulumi.alicloud.ess.SuspendProcess;\nimport com.pulumi.alicloud.ess.SuspendProcessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var myName = String.format(\"%s-%s\", name,defaultInteger.result());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(myName)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(myName)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(myName)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultScalingGroup = new ScalingGroup(\"defaultScalingGroup\", ScalingGroupArgs.builder()\n            .minSize(1)\n            .maxSize(1)\n            .scalingGroupName(myName)\n            .vswitchIds(defaultSwitch.id())\n            .removalPolicies(\"OldestInstance\")\n            .defaultCooldown(200)\n            .build());\n\n        var defaultScalingConfiguration = new ScalingConfiguration(\"defaultScalingConfiguration\", ScalingConfigurationArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroupId(defaultSecurityGroup.id())\n            .forceDelete(true)\n            .active(true)\n            .enable(true)\n            .build());\n\n        var defaultSuspendProcess = new SuspendProcess(\"defaultSuspendProcess\", SuspendProcessArgs.builder()\n            .scalingGroupId(defaultScalingConfiguration.scalingGroupId())\n            .process(\"ScaleIn\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${myName}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${myName}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      securityGroupName: ${myName}\n      vpcId: ${defaultNetwork.id}\n  defaultScalingGroup:\n    type: alicloud:ess:ScalingGroup\n    name: default\n    properties:\n      minSize: 1\n      maxSize: 1\n      scalingGroupName: ${myName}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      removalPolicies:\n        - OldestInstance\n      defaultCooldown: 200\n  defaultScalingConfiguration:\n    type: alicloud:ess:ScalingConfiguration\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingGroup.id}\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      securityGroupId: ${defaultSecurityGroup.id}\n      forceDelete: true\n      active: true\n      enable: true\n  defaultSuspendProcess:\n    type: alicloud:ess:SuspendProcess\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingConfiguration.scalingGroupId}\n      process: ScaleIn\nvariables:\n  myName: ${name}-${defaultInteger.result}\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 2\n        memorySize: 4\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nESS suspend process can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ess/suspendProcess:SuspendProcess example asg-xxx:sgp-xxx:5000\n```\n\n","properties":{"process":{"type":"string","description":"Activity type N that you want to suspend. Valid values are: `SCALE_OUT`,`SCALE_IN`,`HealthCheck`,`AlarmNotification` and `ScheduledAction`.\n"},"scalingGroupId":{"type":"string","description":"ID of the scaling group.\n"}},"required":["process","scalingGroupId"],"inputProperties":{"process":{"type":"string","description":"Activity type N that you want to suspend. Valid values are: `SCALE_OUT`,`SCALE_IN`,`HealthCheck`,`AlarmNotification` and `ScheduledAction`.\n","willReplaceOnChanges":true},"scalingGroupId":{"type":"string","description":"ID of the scaling group.\n","willReplaceOnChanges":true}},"requiredInputs":["process","scalingGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering SuspendProcess resources.\n","properties":{"process":{"type":"string","description":"Activity type N that you want to suspend. Valid values are: `SCALE_OUT`,`SCALE_IN`,`HealthCheck`,`AlarmNotification` and `ScheduledAction`.\n","willReplaceOnChanges":true},"scalingGroupId":{"type":"string","description":"ID of the scaling group.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:eventbridge/apiDestination:ApiDestination":{"description":"Provides a Event Bridge Api Destination resource. \n\nFor information about Event Bridge Api Destination and how to use it, see [What is Api Destination](https://www.alibabacloud.com/help/en/eventbridge/latest/api-eventbridge-2020-04-01-createapidestination).\n\n\u003e **NOTE:** Available since v1.211.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-chengdu\";\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.eventbridge.Connection(\"default\", {\n    connectionName: name,\n    networkParameters: {\n        networkType: \"PublicNetwork\",\n    },\n});\nconst defaultApiDestination = new alicloud.eventbridge.ApiDestination(\"default\", {\n    connectionName: _default.connectionName,\n    apiDestinationName: name,\n    description: \"test-api-destination-connection\",\n    httpApiParameters: {\n        endpoint: \"http://127.0.0.1:8001\",\n        method: \"POST\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-chengdu\"\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.eventbridge.Connection(\"default\",\n    connection_name=name,\n    network_parameters={\n        \"network_type\": \"PublicNetwork\",\n    })\ndefault_api_destination = alicloud.eventbridge.ApiDestination(\"default\",\n    connection_name=default.connection_name,\n    api_destination_name=name,\n    description=\"test-api-destination-connection\",\n    http_api_parameters={\n        \"endpoint\": \"http://127.0.0.1:8001\",\n        \"method\": \"POST\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-chengdu\";\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.EventBridge.Connection(\"default\", new()\n    {\n        ConnectionName = name,\n        NetworkParameters = new AliCloud.EventBridge.Inputs.ConnectionNetworkParametersArgs\n        {\n            NetworkType = \"PublicNetwork\",\n        },\n    });\n\n    var defaultApiDestination = new AliCloud.EventBridge.ApiDestination(\"default\", new()\n    {\n        ConnectionName = @default.ConnectionName,\n        ApiDestinationName = name,\n        Description = \"test-api-destination-connection\",\n        HttpApiParameters = new AliCloud.EventBridge.Inputs.ApiDestinationHttpApiParametersArgs\n        {\n            Endpoint = \"http://127.0.0.1:8001\",\n            Method = \"POST\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eventbridge\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-chengdu\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := eventbridge.NewConnection(ctx, \"default\", \u0026eventbridge.ConnectionArgs{\n\t\t\tConnectionName: pulumi.String(name),\n\t\t\tNetworkParameters: \u0026eventbridge.ConnectionNetworkParametersArgs{\n\t\t\t\tNetworkType: pulumi.String(\"PublicNetwork\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventbridge.NewApiDestination(ctx, \"default\", \u0026eventbridge.ApiDestinationArgs{\n\t\t\tConnectionName:     _default.ConnectionName,\n\t\t\tApiDestinationName: pulumi.String(name),\n\t\t\tDescription:        pulumi.String(\"test-api-destination-connection\"),\n\t\t\tHttpApiParameters: \u0026eventbridge.ApiDestinationHttpApiParametersArgs{\n\t\t\t\tEndpoint: pulumi.String(\"http://127.0.0.1:8001\"),\n\t\t\t\tMethod:   pulumi.String(\"POST\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eventbridge.Connection;\nimport com.pulumi.alicloud.eventbridge.ConnectionArgs;\nimport com.pulumi.alicloud.eventbridge.inputs.ConnectionNetworkParametersArgs;\nimport com.pulumi.alicloud.eventbridge.ApiDestination;\nimport com.pulumi.alicloud.eventbridge.ApiDestinationArgs;\nimport com.pulumi.alicloud.eventbridge.inputs.ApiDestinationHttpApiParametersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-chengdu\");\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Connection(\"default\", ConnectionArgs.builder()\n            .connectionName(name)\n            .networkParameters(ConnectionNetworkParametersArgs.builder()\n                .networkType(\"PublicNetwork\")\n                .build())\n            .build());\n\n        var defaultApiDestination = new ApiDestination(\"defaultApiDestination\", ApiDestinationArgs.builder()\n            .connectionName(default_.connectionName())\n            .apiDestinationName(name)\n            .description(\"test-api-destination-connection\")\n            .httpApiParameters(ApiDestinationHttpApiParametersArgs.builder()\n                .endpoint(\"http://127.0.0.1:8001\")\n                .method(\"POST\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-chengdu\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:eventbridge:Connection\n    properties:\n      connectionName: ${name}\n      networkParameters:\n        networkType: PublicNetwork\n  defaultApiDestination:\n    type: alicloud:eventbridge:ApiDestination\n    name: default\n    properties:\n      connectionName: ${default.connectionName}\n      apiDestinationName: ${name}\n      description: test-api-destination-connection\n      httpApiParameters:\n        endpoint: http://127.0.0.1:8001\n        method: POST\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEvent Bridge Api Destination can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eventbridge/apiDestination:ApiDestination example \u003cid\u003e\n```\n\n","properties":{"apiDestinationName":{"type":"string","description":"The name of the API destination.\n"},"connectionName":{"type":"string","description":"The name of the connection.\n"},"createTime":{"type":"integer","description":"The creation time of the Api Destination.\n"},"description":{"type":"string","description":"The description of the API destination.\n"},"httpApiParameters":{"$ref":"#/types/alicloud:eventbridge/ApiDestinationHttpApiParameters:ApiDestinationHttpApiParameters","description":"The parameters that are configured for the API destination. See \u003cspan pulumi-lang-nodejs=\"`httpApiParameters`\" pulumi-lang-dotnet=\"`HttpApiParameters`\" pulumi-lang-go=\"`httpApiParameters`\" pulumi-lang-python=\"`http_api_parameters`\" pulumi-lang-yaml=\"`httpApiParameters`\" pulumi-lang-java=\"`httpApiParameters`\"\u003e`http_api_parameters`\u003c/span\u003e below.\n"}},"required":["apiDestinationName","connectionName","createTime","httpApiParameters"],"inputProperties":{"apiDestinationName":{"type":"string","description":"The name of the API destination.\n","willReplaceOnChanges":true},"connectionName":{"type":"string","description":"The name of the connection.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the API destination.\n"},"httpApiParameters":{"$ref":"#/types/alicloud:eventbridge/ApiDestinationHttpApiParameters:ApiDestinationHttpApiParameters","description":"The parameters that are configured for the API destination. See \u003cspan pulumi-lang-nodejs=\"`httpApiParameters`\" pulumi-lang-dotnet=\"`HttpApiParameters`\" pulumi-lang-go=\"`httpApiParameters`\" pulumi-lang-python=\"`http_api_parameters`\" pulumi-lang-yaml=\"`httpApiParameters`\" pulumi-lang-java=\"`httpApiParameters`\"\u003e`http_api_parameters`\u003c/span\u003e below.\n"}},"requiredInputs":["apiDestinationName","connectionName","httpApiParameters"],"stateInputs":{"description":"Input properties used for looking up and filtering ApiDestination resources.\n","properties":{"apiDestinationName":{"type":"string","description":"The name of the API destination.\n","willReplaceOnChanges":true},"connectionName":{"type":"string","description":"The name of the connection.\n","willReplaceOnChanges":true},"createTime":{"type":"integer","description":"The creation time of the Api Destination.\n"},"description":{"type":"string","description":"The description of the API destination.\n"},"httpApiParameters":{"$ref":"#/types/alicloud:eventbridge/ApiDestinationHttpApiParameters:ApiDestinationHttpApiParameters","description":"The parameters that are configured for the API destination. See \u003cspan pulumi-lang-nodejs=\"`httpApiParameters`\" pulumi-lang-dotnet=\"`HttpApiParameters`\" pulumi-lang-go=\"`httpApiParameters`\" pulumi-lang-python=\"`http_api_parameters`\" pulumi-lang-yaml=\"`httpApiParameters`\" pulumi-lang-java=\"`httpApiParameters`\"\u003e`http_api_parameters`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:eventbridge/connection:Connection":{"description":"Provides a Event Bridge Connection resource.\n\nFor information about Event Bridge Connection and how to use it, see [What is Connection](https://www.alibabacloud.com/help/en/eventbridge/latest/api-eventbridge-2020-04-01-createconnection).\n\n\u003e **NOTE:** Available since v1.210.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-chengdu\";\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultSwitch.vpcId,\n});\nconst defaultConnection = new alicloud.eventbridge.Connection(\"default\", {\n    connectionName: name,\n    description: \"test-connection-basic-pre\",\n    networkParameters: {\n        networkType: \"PublicNetwork\",\n        vpcId: defaultNetwork.id,\n        vswitcheId: defaultSwitch.id,\n        securityGroupId: defaultSecurityGroup.id,\n    },\n    authParameters: {\n        authorizationType: \"BASIC_AUTH\",\n        apiKeyAuthParameters: {\n            apiKeyName: \"Token\",\n            apiKeyValue: \"Token-value\",\n        },\n        basicAuthParameters: {\n            username: \"admin\",\n            password: \"admin\",\n        },\n        oauthParameters: {\n            authorizationEndpoint: \"http://127.0.0.1:8080\",\n            httpMethod: \"POST\",\n            clientParameters: {\n                clientId: \"ClientId\",\n                clientSecret: \"ClientSecret\",\n            },\n            oauthHttpParameters: {\n                headerParameters: [{\n                    key: \"name\",\n                    value: \"name\",\n                    isValueSecret: \"true\",\n                }],\n                bodyParameters: [{\n                    key: \"name\",\n                    value: \"name\",\n                    isValueSecret: \"true\",\n                }],\n                queryStringParameters: [{\n                    key: \"name\",\n                    value: \"name\",\n                    isValueSecret: \"true\",\n                }],\n            },\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-chengdu\"\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_switch.vpc_id)\ndefault_connection = alicloud.eventbridge.Connection(\"default\",\n    connection_name=name,\n    description=\"test-connection-basic-pre\",\n    network_parameters={\n        \"network_type\": \"PublicNetwork\",\n        \"vpc_id\": default_network.id,\n        \"vswitche_id\": default_switch.id,\n        \"security_group_id\": default_security_group.id,\n    },\n    auth_parameters={\n        \"authorization_type\": \"BASIC_AUTH\",\n        \"api_key_auth_parameters\": {\n            \"api_key_name\": \"Token\",\n            \"api_key_value\": \"Token-value\",\n        },\n        \"basic_auth_parameters\": {\n            \"username\": \"admin\",\n            \"password\": \"admin\",\n        },\n        \"oauth_parameters\": {\n            \"authorization_endpoint\": \"http://127.0.0.1:8080\",\n            \"http_method\": \"POST\",\n            \"client_parameters\": {\n                \"client_id\": \"ClientId\",\n                \"client_secret\": \"ClientSecret\",\n            },\n            \"oauth_http_parameters\": {\n                \"header_parameters\": [{\n                    \"key\": \"name\",\n                    \"value\": \"name\",\n                    \"is_value_secret\": \"true\",\n                }],\n                \"body_parameters\": [{\n                    \"key\": \"name\",\n                    \"value\": \"name\",\n                    \"is_value_secret\": \"true\",\n                }],\n                \"query_string_parameters\": [{\n                    \"key\": \"name\",\n                    \"value\": \"name\",\n                    \"is_value_secret\": \"true\",\n                }],\n            },\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-chengdu\";\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultSwitch.VpcId,\n    });\n\n    var defaultConnection = new AliCloud.EventBridge.Connection(\"default\", new()\n    {\n        ConnectionName = name,\n        Description = \"test-connection-basic-pre\",\n        NetworkParameters = new AliCloud.EventBridge.Inputs.ConnectionNetworkParametersArgs\n        {\n            NetworkType = \"PublicNetwork\",\n            VpcId = defaultNetwork.Id,\n            VswitcheId = defaultSwitch.Id,\n            SecurityGroupId = defaultSecurityGroup.Id,\n        },\n        AuthParameters = new AliCloud.EventBridge.Inputs.ConnectionAuthParametersArgs\n        {\n            AuthorizationType = \"BASIC_AUTH\",\n            ApiKeyAuthParameters = new AliCloud.EventBridge.Inputs.ConnectionAuthParametersApiKeyAuthParametersArgs\n            {\n                ApiKeyName = \"Token\",\n                ApiKeyValue = \"Token-value\",\n            },\n            BasicAuthParameters = new AliCloud.EventBridge.Inputs.ConnectionAuthParametersBasicAuthParametersArgs\n            {\n                Username = \"admin\",\n                Password = \"admin\",\n            },\n            OauthParameters = new AliCloud.EventBridge.Inputs.ConnectionAuthParametersOauthParametersArgs\n            {\n                AuthorizationEndpoint = \"http://127.0.0.1:8080\",\n                HttpMethod = \"POST\",\n                ClientParameters = new AliCloud.EventBridge.Inputs.ConnectionAuthParametersOauthParametersClientParametersArgs\n                {\n                    ClientId = \"ClientId\",\n                    ClientSecret = \"ClientSecret\",\n                },\n                OauthHttpParameters = new AliCloud.EventBridge.Inputs.ConnectionAuthParametersOauthParametersOauthHttpParametersArgs\n                {\n                    HeaderParameters = new[]\n                    {\n                        new AliCloud.EventBridge.Inputs.ConnectionAuthParametersOauthParametersOauthHttpParametersHeaderParameterArgs\n                        {\n                            Key = \"name\",\n                            Value = \"name\",\n                            IsValueSecret = \"true\",\n                        },\n                    },\n                    BodyParameters = new[]\n                    {\n                        new AliCloud.EventBridge.Inputs.ConnectionAuthParametersOauthParametersOauthHttpParametersBodyParameterArgs\n                        {\n                            Key = \"name\",\n                            Value = \"name\",\n                            IsValueSecret = \"true\",\n                        },\n                    },\n                    QueryStringParameters = new[]\n                    {\n                        new AliCloud.EventBridge.Inputs.ConnectionAuthParametersOauthParametersOauthHttpParametersQueryStringParameterArgs\n                        {\n                            Key = \"name\",\n                            Value = \"name\",\n                            IsValueSecret = \"true\",\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eventbridge\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-chengdu\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultSwitch.VpcId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventbridge.NewConnection(ctx, \"default\", \u0026eventbridge.ConnectionArgs{\n\t\t\tConnectionName: pulumi.String(name),\n\t\t\tDescription:    pulumi.String(\"test-connection-basic-pre\"),\n\t\t\tNetworkParameters: \u0026eventbridge.ConnectionNetworkParametersArgs{\n\t\t\t\tNetworkType:     pulumi.String(\"PublicNetwork\"),\n\t\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t\t\tVswitcheId:      defaultSwitch.ID(),\n\t\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tAuthParameters: \u0026eventbridge.ConnectionAuthParametersArgs{\n\t\t\t\tAuthorizationType: pulumi.String(\"BASIC_AUTH\"),\n\t\t\t\tApiKeyAuthParameters: \u0026eventbridge.ConnectionAuthParametersApiKeyAuthParametersArgs{\n\t\t\t\t\tApiKeyName:  pulumi.String(\"Token\"),\n\t\t\t\t\tApiKeyValue: pulumi.String(\"Token-value\"),\n\t\t\t\t},\n\t\t\t\tBasicAuthParameters: \u0026eventbridge.ConnectionAuthParametersBasicAuthParametersArgs{\n\t\t\t\t\tUsername: pulumi.String(\"admin\"),\n\t\t\t\t\tPassword: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t\tOauthParameters: \u0026eventbridge.ConnectionAuthParametersOauthParametersArgs{\n\t\t\t\t\tAuthorizationEndpoint: pulumi.String(\"http://127.0.0.1:8080\"),\n\t\t\t\t\tHttpMethod:            pulumi.String(\"POST\"),\n\t\t\t\t\tClientParameters: \u0026eventbridge.ConnectionAuthParametersOauthParametersClientParametersArgs{\n\t\t\t\t\t\tClientId:     pulumi.String(\"ClientId\"),\n\t\t\t\t\t\tClientSecret: pulumi.String(\"ClientSecret\"),\n\t\t\t\t\t},\n\t\t\t\t\tOauthHttpParameters: \u0026eventbridge.ConnectionAuthParametersOauthParametersOauthHttpParametersArgs{\n\t\t\t\t\t\tHeaderParameters: eventbridge.ConnectionAuthParametersOauthParametersOauthHttpParametersHeaderParameterArray{\n\t\t\t\t\t\t\t\u0026eventbridge.ConnectionAuthParametersOauthParametersOauthHttpParametersHeaderParameterArgs{\n\t\t\t\t\t\t\t\tKey:           pulumi.String(\"name\"),\n\t\t\t\t\t\t\t\tValue:         pulumi.String(\"name\"),\n\t\t\t\t\t\t\t\tIsValueSecret: pulumi.String(\"true\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tBodyParameters: eventbridge.ConnectionAuthParametersOauthParametersOauthHttpParametersBodyParameterArray{\n\t\t\t\t\t\t\t\u0026eventbridge.ConnectionAuthParametersOauthParametersOauthHttpParametersBodyParameterArgs{\n\t\t\t\t\t\t\t\tKey:           pulumi.String(\"name\"),\n\t\t\t\t\t\t\t\tValue:         pulumi.String(\"name\"),\n\t\t\t\t\t\t\t\tIsValueSecret: pulumi.String(\"true\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tQueryStringParameters: eventbridge.ConnectionAuthParametersOauthParametersOauthHttpParametersQueryStringParameterArray{\n\t\t\t\t\t\t\t\u0026eventbridge.ConnectionAuthParametersOauthParametersOauthHttpParametersQueryStringParameterArgs{\n\t\t\t\t\t\t\t\tKey:           pulumi.String(\"name\"),\n\t\t\t\t\t\t\t\tValue:         pulumi.String(\"name\"),\n\t\t\t\t\t\t\t\tIsValueSecret: pulumi.String(\"true\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.eventbridge.Connection;\nimport com.pulumi.alicloud.eventbridge.ConnectionArgs;\nimport com.pulumi.alicloud.eventbridge.inputs.ConnectionNetworkParametersArgs;\nimport com.pulumi.alicloud.eventbridge.inputs.ConnectionAuthParametersArgs;\nimport com.pulumi.alicloud.eventbridge.inputs.ConnectionAuthParametersApiKeyAuthParametersArgs;\nimport com.pulumi.alicloud.eventbridge.inputs.ConnectionAuthParametersBasicAuthParametersArgs;\nimport com.pulumi.alicloud.eventbridge.inputs.ConnectionAuthParametersOauthParametersArgs;\nimport com.pulumi.alicloud.eventbridge.inputs.ConnectionAuthParametersOauthParametersClientParametersArgs;\nimport com.pulumi.alicloud.eventbridge.inputs.ConnectionAuthParametersOauthParametersOauthHttpParametersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-chengdu\");\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultSwitch.vpcId())\n            .build());\n\n        var defaultConnection = new Connection(\"defaultConnection\", ConnectionArgs.builder()\n            .connectionName(name)\n            .description(\"test-connection-basic-pre\")\n            .networkParameters(ConnectionNetworkParametersArgs.builder()\n                .networkType(\"PublicNetwork\")\n                .vpcId(defaultNetwork.id())\n                .vswitcheId(defaultSwitch.id())\n                .securityGroupId(defaultSecurityGroup.id())\n                .build())\n            .authParameters(ConnectionAuthParametersArgs.builder()\n                .authorizationType(\"BASIC_AUTH\")\n                .apiKeyAuthParameters(ConnectionAuthParametersApiKeyAuthParametersArgs.builder()\n                    .apiKeyName(\"Token\")\n                    .apiKeyValue(\"Token-value\")\n                    .build())\n                .basicAuthParameters(ConnectionAuthParametersBasicAuthParametersArgs.builder()\n                    .username(\"admin\")\n                    .password(\"admin\")\n                    .build())\n                .oauthParameters(ConnectionAuthParametersOauthParametersArgs.builder()\n                    .authorizationEndpoint(\"http://127.0.0.1:8080\")\n                    .httpMethod(\"POST\")\n                    .clientParameters(ConnectionAuthParametersOauthParametersClientParametersArgs.builder()\n                        .clientId(\"ClientId\")\n                        .clientSecret(\"ClientSecret\")\n                        .build())\n                    .oauthHttpParameters(ConnectionAuthParametersOauthParametersOauthHttpParametersArgs.builder()\n                        .headerParameters(ConnectionAuthParametersOauthParametersOauthHttpParametersHeaderParameterArgs.builder()\n                            .key(\"name\")\n                            .value(\"name\")\n                            .isValueSecret(\"true\")\n                            .build())\n                        .bodyParameters(ConnectionAuthParametersOauthParametersOauthHttpParametersBodyParameterArgs.builder()\n                            .key(\"name\")\n                            .value(\"name\")\n                            .isValueSecret(\"true\")\n                            .build())\n                        .queryStringParameters(ConnectionAuthParametersOauthParametersOauthHttpParametersQueryStringParameterArgs.builder()\n                            .key(\"name\")\n                            .value(\"name\")\n                            .isValueSecret(\"true\")\n                            .build())\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-chengdu\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultSwitch.vpcId}\n  defaultConnection:\n    type: alicloud:eventbridge:Connection\n    name: default\n    properties:\n      connectionName: ${name}\n      description: test-connection-basic-pre\n      networkParameters:\n        networkType: PublicNetwork\n        vpcId: ${defaultNetwork.id}\n        vswitcheId: ${defaultSwitch.id}\n        securityGroupId: ${defaultSecurityGroup.id}\n      authParameters:\n        authorizationType: BASIC_AUTH\n        apiKeyAuthParameters:\n          apiKeyName: Token\n          apiKeyValue: Token-value\n        basicAuthParameters:\n          username: admin\n          password: admin\n        oauthParameters:\n          authorizationEndpoint: http://127.0.0.1:8080\n          httpMethod: POST\n          clientParameters:\n            clientId: ClientId\n            clientSecret: ClientSecret\n          oauthHttpParameters:\n            headerParameters:\n              - key: name\n                value: name\n                isValueSecret: 'true'\n            bodyParameters:\n              - key: name\n                value: name\n                isValueSecret: 'true'\n            queryStringParameters:\n              - key: name\n                value: name\n                isValueSecret: 'true'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEvent Bridge Connection can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eventbridge/connection:Connection example \u003cid\u003e\n```\n\n","properties":{"authParameters":{"$ref":"#/types/alicloud:eventbridge/ConnectionAuthParameters:ConnectionAuthParameters","description":"The parameters that are configured for authentication. See \u003cspan pulumi-lang-nodejs=\"`authParameters`\" pulumi-lang-dotnet=\"`AuthParameters`\" pulumi-lang-go=\"`authParameters`\" pulumi-lang-python=\"`auth_parameters`\" pulumi-lang-yaml=\"`authParameters`\" pulumi-lang-java=\"`authParameters`\"\u003e`auth_parameters`\u003c/span\u003e below.\n"},"connectionName":{"type":"string","description":"The name of the connection.\n"},"createTime":{"type":"string","description":"The creation time of the Connection.\n"},"description":{"type":"string","description":"The description of the connection.\n"},"networkParameters":{"$ref":"#/types/alicloud:eventbridge/ConnectionNetworkParameters:ConnectionNetworkParameters","description":"The parameters that are configured for the network. See \u003cspan pulumi-lang-nodejs=\"`networkParameters`\" pulumi-lang-dotnet=\"`NetworkParameters`\" pulumi-lang-go=\"`networkParameters`\" pulumi-lang-python=\"`network_parameters`\" pulumi-lang-yaml=\"`networkParameters`\" pulumi-lang-java=\"`networkParameters`\"\u003e`network_parameters`\u003c/span\u003e below.\n"}},"required":["connectionName","createTime","networkParameters"],"inputProperties":{"authParameters":{"$ref":"#/types/alicloud:eventbridge/ConnectionAuthParameters:ConnectionAuthParameters","description":"The parameters that are configured for authentication. See \u003cspan pulumi-lang-nodejs=\"`authParameters`\" pulumi-lang-dotnet=\"`AuthParameters`\" pulumi-lang-go=\"`authParameters`\" pulumi-lang-python=\"`auth_parameters`\" pulumi-lang-yaml=\"`authParameters`\" pulumi-lang-java=\"`authParameters`\"\u003e`auth_parameters`\u003c/span\u003e below.\n"},"connectionName":{"type":"string","description":"The name of the connection.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the connection.\n"},"networkParameters":{"$ref":"#/types/alicloud:eventbridge/ConnectionNetworkParameters:ConnectionNetworkParameters","description":"The parameters that are configured for the network. See \u003cspan pulumi-lang-nodejs=\"`networkParameters`\" pulumi-lang-dotnet=\"`NetworkParameters`\" pulumi-lang-go=\"`networkParameters`\" pulumi-lang-python=\"`network_parameters`\" pulumi-lang-yaml=\"`networkParameters`\" pulumi-lang-java=\"`networkParameters`\"\u003e`network_parameters`\u003c/span\u003e below.\n"}},"requiredInputs":["connectionName","networkParameters"],"stateInputs":{"description":"Input properties used for looking up and filtering Connection resources.\n","properties":{"authParameters":{"$ref":"#/types/alicloud:eventbridge/ConnectionAuthParameters:ConnectionAuthParameters","description":"The parameters that are configured for authentication. See \u003cspan pulumi-lang-nodejs=\"`authParameters`\" pulumi-lang-dotnet=\"`AuthParameters`\" pulumi-lang-go=\"`authParameters`\" pulumi-lang-python=\"`auth_parameters`\" pulumi-lang-yaml=\"`authParameters`\" pulumi-lang-java=\"`authParameters`\"\u003e`auth_parameters`\u003c/span\u003e below.\n"},"connectionName":{"type":"string","description":"The name of the connection.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the Connection.\n"},"description":{"type":"string","description":"The description of the connection.\n"},"networkParameters":{"$ref":"#/types/alicloud:eventbridge/ConnectionNetworkParameters:ConnectionNetworkParameters","description":"The parameters that are configured for the network. See \u003cspan pulumi-lang-nodejs=\"`networkParameters`\" pulumi-lang-dotnet=\"`NetworkParameters`\" pulumi-lang-go=\"`networkParameters`\" pulumi-lang-python=\"`network_parameters`\" pulumi-lang-yaml=\"`networkParameters`\" pulumi-lang-java=\"`networkParameters`\"\u003e`network_parameters`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:eventbridge/eventBus:EventBus":{"description":"Provides a Event Bridge Event Bus resource.\n\nFor information about Event Bridge Event Bus and how to use it, see [What is Event Bus](https://www.alibabacloud.com/help/en/eventbridge/latest/api-eventbridge-2020-04-01-createeventbus).\n\n\u003e **NOTE:** Available since v1.129.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst example = new alicloud.eventbridge.EventBus(\"example\", {eventBusName: name});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nexample = alicloud.eventbridge.EventBus(\"example\", event_bus_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var example = new AliCloud.EventBridge.EventBus(\"example\", new()\n    {\n        EventBusName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eventbridge\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := eventbridge.NewEventBus(ctx, \"example\", \u0026eventbridge.EventBusArgs{\n\t\t\tEventBusName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eventbridge.EventBus;\nimport com.pulumi.alicloud.eventbridge.EventBusArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var example = new EventBus(\"example\", EventBusArgs.builder()\n            .eventBusName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  example:\n    type: alicloud:eventbridge:EventBus\n    properties:\n      eventBusName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEvent Bridge Event Bus can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eventbridge/eventBus:EventBus example \u003cevent_bus_name\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of event bus.\n"},"eventBusName":{"type":"string","description":"The name of event bus. The length is limited to 2 ~ 127 characters, which can be composed of letters, numbers or hyphens (-)\n"}},"required":["eventBusName"],"inputProperties":{"description":{"type":"string","description":"The description of event bus.\n"},"eventBusName":{"type":"string","description":"The name of event bus. The length is limited to 2 ~ 127 characters, which can be composed of letters, numbers or hyphens (-)\n","willReplaceOnChanges":true}},"requiredInputs":["eventBusName"],"stateInputs":{"description":"Input properties used for looking up and filtering EventBus resources.\n","properties":{"description":{"type":"string","description":"The description of event bus.\n"},"eventBusName":{"type":"string","description":"The name of event bus. The length is limited to 2 ~ 127 characters, which can be composed of letters, numbers or hyphens (-)\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:eventbridge/eventSource:EventSource":{"description":"Provides a Event Bridge Event Source resource.\n\nFor information about Event Bridge Event Source and how to use it, see [What is Event Source](https://www.alibabacloud.com/help/en/eventbridge/latest/api-eventbridge-2020-04-01-createeventsource).\n\n\u003e **NOTE:** Available since v1.130.0.\n\n\u003e **NOTE:** Deprecated since v1.269.0.\n\n\u003e **DEPRECATED:** This resource has been deprecated from version `1.269.0`. Please use new resource alicloud_event_bridge_event_source_v2.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultQueue = new alicloud.mns.Queue(\"default\", {name: `${name}-${_default.result}`});\nconst defaultEventBus = new alicloud.eventbridge.EventBus(\"default\", {eventBusName: `${name}-${_default.result}`});\nconst defaultEventSource = new alicloud.eventbridge.EventSource(\"default\", {\n    eventBusName: defaultEventBus.eventBusName,\n    eventSourceName: `${name}-${_default.result}`,\n    description: name,\n    linkedExternalSource: true,\n    externalSourceType: \"MNS\",\n    externalSourceConfig: {\n        QueueName: defaultQueue.name,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_queue = alicloud.mns.Queue(\"default\", name=f\"{name}-{default['result']}\")\ndefault_event_bus = alicloud.eventbridge.EventBus(\"default\", event_bus_name=f\"{name}-{default['result']}\")\ndefault_event_source = alicloud.eventbridge.EventSource(\"default\",\n    event_bus_name=default_event_bus.event_bus_name,\n    event_source_name=f\"{name}-{default['result']}\",\n    description=name,\n    linked_external_source=True,\n    external_source_type=\"MNS\",\n    external_source_config={\n        \"QueueName\": default_queue.name,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultQueue = new AliCloud.Mns.Queue(\"default\", new()\n    {\n        Name = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultEventBus = new AliCloud.EventBridge.EventBus(\"default\", new()\n    {\n        EventBusName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultEventSource = new AliCloud.EventBridge.EventSource(\"default\", new()\n    {\n        EventBusName = defaultEventBus.EventBusName,\n        EventSourceName = $\"{name}-{@default.Result}\",\n        Description = name,\n        LinkedExternalSource = true,\n        ExternalSourceType = \"MNS\",\n        ExternalSourceConfig = \n        {\n            { \"QueueName\", defaultQueue.Name },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eventbridge\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mns\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultQueue, err := mns.NewQueue(ctx, \"default\", \u0026mns.QueueArgs{\n\t\t\tName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEventBus, err := eventbridge.NewEventBus(ctx, \"default\", \u0026eventbridge.EventBusArgs{\n\t\t\tEventBusName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventbridge.NewEventSource(ctx, \"default\", \u0026eventbridge.EventSourceArgs{\n\t\t\tEventBusName:         defaultEventBus.EventBusName,\n\t\t\tEventSourceName:      pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tDescription:          pulumi.String(name),\n\t\t\tLinkedExternalSource: pulumi.Bool(true),\n\t\t\tExternalSourceType:   pulumi.String(\"MNS\"),\n\t\t\tExternalSourceConfig: pulumi.StringMap{\n\t\t\t\t\"QueueName\": defaultQueue.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.mns.Queue;\nimport com.pulumi.alicloud.mns.QueueArgs;\nimport com.pulumi.alicloud.eventbridge.EventBus;\nimport com.pulumi.alicloud.eventbridge.EventBusArgs;\nimport com.pulumi.alicloud.eventbridge.EventSource;\nimport com.pulumi.alicloud.eventbridge.EventSourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultQueue = new Queue(\"defaultQueue\", QueueArgs.builder()\n            .name(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultEventBus = new EventBus(\"defaultEventBus\", EventBusArgs.builder()\n            .eventBusName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultEventSource = new EventSource(\"defaultEventSource\", EventSourceArgs.builder()\n            .eventBusName(defaultEventBus.eventBusName())\n            .eventSourceName(String.format(\"%s-%s\", name,default_.result()))\n            .description(name)\n            .linkedExternalSource(true)\n            .externalSourceType(\"MNS\")\n            .externalSourceConfig(Map.of(\"QueueName\", defaultQueue.name()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultQueue:\n    type: alicloud:mns:Queue\n    name: default\n    properties:\n      name: ${name}-${default.result}\n  defaultEventBus:\n    type: alicloud:eventbridge:EventBus\n    name: default\n    properties:\n      eventBusName: ${name}-${default.result}\n  defaultEventSource:\n    type: alicloud:eventbridge:EventSource\n    name: default\n    properties:\n      eventBusName: ${defaultEventBus.eventBusName}\n      eventSourceName: ${name}-${default.result}\n      description: ${name}\n      linkedExternalSource: true\n      externalSourceType: MNS\n      externalSourceConfig:\n        QueueName: ${defaultQueue.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEvent Bridge Event Source can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eventbridge/eventSource:EventSource example \u003cevent_source_name\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the event source.\n"},"eventBusName":{"type":"string","description":"The name of the event bus to which the event source is attached.\n"},"eventSourceName":{"type":"string","description":"The name of the event source.\n"},"externalSourceConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"The configuration of the external data source.\nWhen \u003cspan pulumi-lang-nodejs=\"`externalSourceType`\" pulumi-lang-dotnet=\"`ExternalSourceType`\" pulumi-lang-go=\"`externalSourceType`\" pulumi-lang-python=\"`external_source_type`\" pulumi-lang-yaml=\"`externalSourceType`\" pulumi-lang-java=\"`externalSourceType`\"\u003e`external_source_type`\u003c/span\u003e is `RabbitMQ`, The following attributes are supported:\n`RegionId` - The region ID of RabbitMQ.\n`InstanceId` - The instance ID of RabbitMQ.\n`VirtualHostName` - The virtual host name of RabbitMQ.\n`QueueName` - The queue name of RabbitMQ.\nWhen \u003cspan pulumi-lang-nodejs=\"`externalSourceType`\" pulumi-lang-dotnet=\"`ExternalSourceType`\" pulumi-lang-go=\"`externalSourceType`\" pulumi-lang-python=\"`external_source_type`\" pulumi-lang-yaml=\"`externalSourceType`\" pulumi-lang-java=\"`externalSourceType`\"\u003e`external_source_type`\u003c/span\u003e is `RabbitMQ`, The following attributes are supported:\n`RegionId` - The region ID of RabbitMQ.\n`InstanceId` - The instance ID of RabbitMQ.\n`Topic` - The topic of RabbitMQ.\n`Offset` -  The offset of RabbitMQ, valid values: `CONSUME_FROM_FIRST_OFFSET`, `CONSUME_FROM_LAST_OFFSET` and `CONSUME_FROM_TIMESTAMP`.\n`GroupID` - The group ID of consumer.\nWhen \u003cspan pulumi-lang-nodejs=\"`externalSourceType`\" pulumi-lang-dotnet=\"`ExternalSourceType`\" pulumi-lang-go=\"`externalSourceType`\" pulumi-lang-python=\"`external_source_type`\" pulumi-lang-yaml=\"`externalSourceType`\" pulumi-lang-java=\"`externalSourceType`\"\u003e`external_source_type`\u003c/span\u003e is `MNS`, The following attributes are supported:\n`QueueName` - The queue name of MNS.\n"},"externalSourceType":{"type":"string","description":"The type of the external data source. Valid values: `RabbitMQ`, `RocketMQ` and `MNS`.\n"},"linkedExternalSource":{"type":"boolean","description":"Specifies whether to connect to an external data source. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"required":["eventBusName","eventSourceName"],"inputProperties":{"description":{"type":"string","description":"The description of the event source.\n"},"eventBusName":{"type":"string","description":"The name of the event bus to which the event source is attached.\n","willReplaceOnChanges":true},"eventSourceName":{"type":"string","description":"The name of the event source.\n","willReplaceOnChanges":true},"externalSourceConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"The configuration of the external data source.\nWhen \u003cspan pulumi-lang-nodejs=\"`externalSourceType`\" pulumi-lang-dotnet=\"`ExternalSourceType`\" pulumi-lang-go=\"`externalSourceType`\" pulumi-lang-python=\"`external_source_type`\" pulumi-lang-yaml=\"`externalSourceType`\" pulumi-lang-java=\"`externalSourceType`\"\u003e`external_source_type`\u003c/span\u003e is `RabbitMQ`, The following attributes are supported:\n`RegionId` - The region ID of RabbitMQ.\n`InstanceId` - The instance ID of RabbitMQ.\n`VirtualHostName` - The virtual host name of RabbitMQ.\n`QueueName` - The queue name of RabbitMQ.\nWhen \u003cspan pulumi-lang-nodejs=\"`externalSourceType`\" pulumi-lang-dotnet=\"`ExternalSourceType`\" pulumi-lang-go=\"`externalSourceType`\" pulumi-lang-python=\"`external_source_type`\" pulumi-lang-yaml=\"`externalSourceType`\" pulumi-lang-java=\"`externalSourceType`\"\u003e`external_source_type`\u003c/span\u003e is `RabbitMQ`, The following attributes are supported:\n`RegionId` - The region ID of RabbitMQ.\n`InstanceId` - The instance ID of RabbitMQ.\n`Topic` - The topic of RabbitMQ.\n`Offset` -  The offset of RabbitMQ, valid values: `CONSUME_FROM_FIRST_OFFSET`, `CONSUME_FROM_LAST_OFFSET` and `CONSUME_FROM_TIMESTAMP`.\n`GroupID` - The group ID of consumer.\nWhen \u003cspan pulumi-lang-nodejs=\"`externalSourceType`\" pulumi-lang-dotnet=\"`ExternalSourceType`\" pulumi-lang-go=\"`externalSourceType`\" pulumi-lang-python=\"`external_source_type`\" pulumi-lang-yaml=\"`externalSourceType`\" pulumi-lang-java=\"`externalSourceType`\"\u003e`external_source_type`\u003c/span\u003e is `MNS`, The following attributes are supported:\n`QueueName` - The queue name of MNS.\n"},"externalSourceType":{"type":"string","description":"The type of the external data source. Valid values: `RabbitMQ`, `RocketMQ` and `MNS`.\n"},"linkedExternalSource":{"type":"boolean","description":"Specifies whether to connect to an external data source. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"requiredInputs":["eventBusName","eventSourceName"],"stateInputs":{"description":"Input properties used for looking up and filtering EventSource resources.\n","properties":{"description":{"type":"string","description":"The description of the event source.\n"},"eventBusName":{"type":"string","description":"The name of the event bus to which the event source is attached.\n","willReplaceOnChanges":true},"eventSourceName":{"type":"string","description":"The name of the event source.\n","willReplaceOnChanges":true},"externalSourceConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"The configuration of the external data source.\nWhen \u003cspan pulumi-lang-nodejs=\"`externalSourceType`\" pulumi-lang-dotnet=\"`ExternalSourceType`\" pulumi-lang-go=\"`externalSourceType`\" pulumi-lang-python=\"`external_source_type`\" pulumi-lang-yaml=\"`externalSourceType`\" pulumi-lang-java=\"`externalSourceType`\"\u003e`external_source_type`\u003c/span\u003e is `RabbitMQ`, The following attributes are supported:\n`RegionId` - The region ID of RabbitMQ.\n`InstanceId` - The instance ID of RabbitMQ.\n`VirtualHostName` - The virtual host name of RabbitMQ.\n`QueueName` - The queue name of RabbitMQ.\nWhen \u003cspan pulumi-lang-nodejs=\"`externalSourceType`\" pulumi-lang-dotnet=\"`ExternalSourceType`\" pulumi-lang-go=\"`externalSourceType`\" pulumi-lang-python=\"`external_source_type`\" pulumi-lang-yaml=\"`externalSourceType`\" pulumi-lang-java=\"`externalSourceType`\"\u003e`external_source_type`\u003c/span\u003e is `RabbitMQ`, The following attributes are supported:\n`RegionId` - The region ID of RabbitMQ.\n`InstanceId` - The instance ID of RabbitMQ.\n`Topic` - The topic of RabbitMQ.\n`Offset` -  The offset of RabbitMQ, valid values: `CONSUME_FROM_FIRST_OFFSET`, `CONSUME_FROM_LAST_OFFSET` and `CONSUME_FROM_TIMESTAMP`.\n`GroupID` - The group ID of consumer.\nWhen \u003cspan pulumi-lang-nodejs=\"`externalSourceType`\" pulumi-lang-dotnet=\"`ExternalSourceType`\" pulumi-lang-go=\"`externalSourceType`\" pulumi-lang-python=\"`external_source_type`\" pulumi-lang-yaml=\"`externalSourceType`\" pulumi-lang-java=\"`externalSourceType`\"\u003e`external_source_type`\u003c/span\u003e is `MNS`, The following attributes are supported:\n`QueueName` - The queue name of MNS.\n"},"externalSourceType":{"type":"string","description":"The type of the external data source. Valid values: `RabbitMQ`, `RocketMQ` and `MNS`.\n"},"linkedExternalSource":{"type":"boolean","description":"Specifies whether to connect to an external data source. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:eventbridge/eventSourceV2:EventSourceV2":{"description":"Provides a Event Bridge Event Source V2 resource.\n\n\n\nFor information about Event Bridge Event Source V2 and how to use it, see [What is Event Source V2](https://www.alibabacloud.com/help/en/eventbridge/latest/api-eventbridge-2020-04-01-createeventsource).\n\n\u003e **NOTE:** Available since v1.269.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultEventBus = new alicloud.eventbridge.EventBus(\"default\", {eventBusName: `${name}-${_default.result}`});\nconst defaultEventSourceV2 = new alicloud.eventbridge.EventSourceV2(\"default\", {\n    eventBusName: defaultEventBus.eventBusName,\n    eventSourceName: `${name}-${_default.result}`,\n    description: name,\n    linkedExternalSource: true,\n    sourceHttpEventParameters: {\n        type: \"HTTP\",\n        securityConfig: \"referer\",\n        methods: [\n            \"GET\",\n            \"POST\",\n            \"DELETE\",\n        ],\n        referers: [\n            \"www.aliyun.com\",\n            \"www.alicloud.com\",\n            \"www.taobao.com\",\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_event_bus = alicloud.eventbridge.EventBus(\"default\", event_bus_name=f\"{name}-{default['result']}\")\ndefault_event_source_v2 = alicloud.eventbridge.EventSourceV2(\"default\",\n    event_bus_name=default_event_bus.event_bus_name,\n    event_source_name=f\"{name}-{default['result']}\",\n    description=name,\n    linked_external_source=True,\n    source_http_event_parameters={\n        \"type\": \"HTTP\",\n        \"security_config\": \"referer\",\n        \"methods\": [\n            \"GET\",\n            \"POST\",\n            \"DELETE\",\n        ],\n        \"referers\": [\n            \"www.aliyun.com\",\n            \"www.alicloud.com\",\n            \"www.taobao.com\",\n        ],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultEventBus = new AliCloud.EventBridge.EventBus(\"default\", new()\n    {\n        EventBusName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultEventSourceV2 = new AliCloud.EventBridge.EventSourceV2(\"default\", new()\n    {\n        EventBusName = defaultEventBus.EventBusName,\n        EventSourceName = $\"{name}-{@default.Result}\",\n        Description = name,\n        LinkedExternalSource = true,\n        SourceHttpEventParameters = new AliCloud.EventBridge.Inputs.EventSourceV2SourceHttpEventParametersArgs\n        {\n            Type = \"HTTP\",\n            SecurityConfig = \"referer\",\n            Methods = new[]\n            {\n                \"GET\",\n                \"POST\",\n                \"DELETE\",\n            },\n            Referers = new[]\n            {\n                \"www.aliyun.com\",\n                \"www.alicloud.com\",\n                \"www.taobao.com\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eventbridge\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEventBus, err := eventbridge.NewEventBus(ctx, \"default\", \u0026eventbridge.EventBusArgs{\n\t\t\tEventBusName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventbridge.NewEventSourceV2(ctx, \"default\", \u0026eventbridge.EventSourceV2Args{\n\t\t\tEventBusName:         defaultEventBus.EventBusName,\n\t\t\tEventSourceName:      pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tDescription:          pulumi.String(name),\n\t\t\tLinkedExternalSource: pulumi.Bool(true),\n\t\t\tSourceHttpEventParameters: \u0026eventbridge.EventSourceV2SourceHttpEventParametersArgs{\n\t\t\t\tType:           pulumi.String(\"HTTP\"),\n\t\t\t\tSecurityConfig: pulumi.String(\"referer\"),\n\t\t\t\tMethods: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\tpulumi.String(\"POST\"),\n\t\t\t\t\tpulumi.String(\"DELETE\"),\n\t\t\t\t},\n\t\t\t\tReferers: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"www.aliyun.com\"),\n\t\t\t\t\tpulumi.String(\"www.alicloud.com\"),\n\t\t\t\t\tpulumi.String(\"www.taobao.com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.eventbridge.EventBus;\nimport com.pulumi.alicloud.eventbridge.EventBusArgs;\nimport com.pulumi.alicloud.eventbridge.EventSourceV2;\nimport com.pulumi.alicloud.eventbridge.EventSourceV2Args;\nimport com.pulumi.alicloud.eventbridge.inputs.EventSourceV2SourceHttpEventParametersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultEventBus = new EventBus(\"defaultEventBus\", EventBusArgs.builder()\n            .eventBusName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultEventSourceV2 = new EventSourceV2(\"defaultEventSourceV2\", EventSourceV2Args.builder()\n            .eventBusName(defaultEventBus.eventBusName())\n            .eventSourceName(String.format(\"%s-%s\", name,default_.result()))\n            .description(name)\n            .linkedExternalSource(true)\n            .sourceHttpEventParameters(EventSourceV2SourceHttpEventParametersArgs.builder()\n                .type(\"HTTP\")\n                .securityConfig(\"referer\")\n                .methods(                \n                    \"GET\",\n                    \"POST\",\n                    \"DELETE\")\n                .referers(                \n                    \"www.aliyun.com\",\n                    \"www.alicloud.com\",\n                    \"www.taobao.com\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultEventBus:\n    type: alicloud:eventbridge:EventBus\n    name: default\n    properties:\n      eventBusName: ${name}-${default.result}\n  defaultEventSourceV2:\n    type: alicloud:eventbridge:EventSourceV2\n    name: default\n    properties:\n      eventBusName: ${defaultEventBus.eventBusName}\n      eventSourceName: ${name}-${default.result}\n      description: ${name}\n      linkedExternalSource: true\n      sourceHttpEventParameters:\n        type: HTTP\n        securityConfig: referer\n        methods:\n          - GET\n          - POST\n          - DELETE\n        referers:\n          - www.aliyun.com\n          - www.alicloud.com\n          - www.taobao.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEvent Bridge Event Source V2 can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eventbridge/eventSourceV2:EventSourceV2 example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The detail describe of event source\n"},"eventBusName":{"type":"string","description":"Name of the bus associated with the event source\n"},"eventSourceName":{"type":"string","description":"The code name of event source\n"},"linkedExternalSource":{"type":"boolean","description":"Whether to connect to an external data source\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"sourceHttpEventParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceHttpEventParameters:EventSourceV2SourceHttpEventParameters","description":"The request parameter SourceHttpEventParameters. See \u003cspan pulumi-lang-nodejs=\"`sourceHttpEventParameters`\" pulumi-lang-dotnet=\"`SourceHttpEventParameters`\" pulumi-lang-go=\"`sourceHttpEventParameters`\" pulumi-lang-python=\"`source_http_event_parameters`\" pulumi-lang-yaml=\"`sourceHttpEventParameters`\" pulumi-lang-java=\"`sourceHttpEventParameters`\"\u003e`source_http_event_parameters`\u003c/span\u003e below.\n"},"sourceKafkaParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceKafkaParameters:EventSourceV2SourceKafkaParameters","description":"Kafka event source parameter. See \u003cspan pulumi-lang-nodejs=\"`sourceKafkaParameters`\" pulumi-lang-dotnet=\"`SourceKafkaParameters`\" pulumi-lang-go=\"`sourceKafkaParameters`\" pulumi-lang-python=\"`source_kafka_parameters`\" pulumi-lang-yaml=\"`sourceKafkaParameters`\" pulumi-lang-java=\"`sourceKafkaParameters`\"\u003e`source_kafka_parameters`\u003c/span\u003e below.\n"},"sourceMnsParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceMnsParameters:EventSourceV2SourceMnsParameters","description":"Lightweight message queue (formerly MNS) event source parameter. See \u003cspan pulumi-lang-nodejs=\"`sourceMnsParameters`\" pulumi-lang-dotnet=\"`SourceMnsParameters`\" pulumi-lang-go=\"`sourceMnsParameters`\" pulumi-lang-python=\"`source_mns_parameters`\" pulumi-lang-yaml=\"`sourceMnsParameters`\" pulumi-lang-java=\"`sourceMnsParameters`\"\u003e`source_mns_parameters`\u003c/span\u003e below.\n"},"sourceOssEventParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceOssEventParameters:EventSourceV2SourceOssEventParameters","description":"OSS event source parameters See \u003cspan pulumi-lang-nodejs=\"`sourceOssEventParameters`\" pulumi-lang-dotnet=\"`SourceOssEventParameters`\" pulumi-lang-go=\"`sourceOssEventParameters`\" pulumi-lang-python=\"`source_oss_event_parameters`\" pulumi-lang-yaml=\"`sourceOssEventParameters`\" pulumi-lang-java=\"`sourceOssEventParameters`\"\u003e`source_oss_event_parameters`\u003c/span\u003e below.\n"},"sourceRabbitMqParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceRabbitMqParameters:EventSourceV2SourceRabbitMqParameters","description":"The request parameter SourceRabbitMQParameters. See \u003cspan pulumi-lang-nodejs=\"`sourceRabbitMqParameters`\" pulumi-lang-dotnet=\"`SourceRabbitMqParameters`\" pulumi-lang-go=\"`sourceRabbitMqParameters`\" pulumi-lang-python=\"`source_rabbit_mq_parameters`\" pulumi-lang-yaml=\"`sourceRabbitMqParameters`\" pulumi-lang-java=\"`sourceRabbitMqParameters`\"\u003e`source_rabbit_mq_parameters`\u003c/span\u003e below.\n"},"sourceRocketmqParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceRocketmqParameters:EventSourceV2SourceRocketmqParameters","description":"The request parameter SourceRocketMQParameters. See \u003cspan pulumi-lang-nodejs=\"`sourceRocketmqParameters`\" pulumi-lang-dotnet=\"`SourceRocketmqParameters`\" pulumi-lang-go=\"`sourceRocketmqParameters`\" pulumi-lang-python=\"`source_rocketmq_parameters`\" pulumi-lang-yaml=\"`sourceRocketmqParameters`\" pulumi-lang-java=\"`sourceRocketmqParameters`\"\u003e`source_rocketmq_parameters`\u003c/span\u003e below.\n"},"sourceScheduledEventParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceScheduledEventParameters:EventSourceV2SourceScheduledEventParameters","description":"Time event source parameter. See \u003cspan pulumi-lang-nodejs=\"`sourceScheduledEventParameters`\" pulumi-lang-dotnet=\"`SourceScheduledEventParameters`\" pulumi-lang-go=\"`sourceScheduledEventParameters`\" pulumi-lang-python=\"`source_scheduled_event_parameters`\" pulumi-lang-yaml=\"`sourceScheduledEventParameters`\" pulumi-lang-java=\"`sourceScheduledEventParameters`\"\u003e`source_scheduled_event_parameters`\u003c/span\u003e below.\n"},"sourceSlsParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceSlsParameters:EventSourceV2SourceSlsParameters","description":"The request parameter SourceSLSParameters. See \u003cspan pulumi-lang-nodejs=\"`sourceSlsParameters`\" pulumi-lang-dotnet=\"`SourceSlsParameters`\" pulumi-lang-go=\"`sourceSlsParameters`\" pulumi-lang-python=\"`source_sls_parameters`\" pulumi-lang-yaml=\"`sourceSlsParameters`\" pulumi-lang-java=\"`sourceSlsParameters`\"\u003e`source_sls_parameters`\u003c/span\u003e below.\n"}},"required":["eventBusName","eventSourceName"],"inputProperties":{"description":{"type":"string","description":"The detail describe of event source\n"},"eventBusName":{"type":"string","description":"Name of the bus associated with the event source\n","willReplaceOnChanges":true},"eventSourceName":{"type":"string","description":"The code name of event source\n","willReplaceOnChanges":true},"linkedExternalSource":{"type":"boolean","description":"Whether to connect to an external data source\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"sourceHttpEventParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceHttpEventParameters:EventSourceV2SourceHttpEventParameters","description":"The request parameter SourceHttpEventParameters. See \u003cspan pulumi-lang-nodejs=\"`sourceHttpEventParameters`\" pulumi-lang-dotnet=\"`SourceHttpEventParameters`\" pulumi-lang-go=\"`sourceHttpEventParameters`\" pulumi-lang-python=\"`source_http_event_parameters`\" pulumi-lang-yaml=\"`sourceHttpEventParameters`\" pulumi-lang-java=\"`sourceHttpEventParameters`\"\u003e`source_http_event_parameters`\u003c/span\u003e below.\n"},"sourceKafkaParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceKafkaParameters:EventSourceV2SourceKafkaParameters","description":"Kafka event source parameter. See \u003cspan pulumi-lang-nodejs=\"`sourceKafkaParameters`\" pulumi-lang-dotnet=\"`SourceKafkaParameters`\" pulumi-lang-go=\"`sourceKafkaParameters`\" pulumi-lang-python=\"`source_kafka_parameters`\" pulumi-lang-yaml=\"`sourceKafkaParameters`\" pulumi-lang-java=\"`sourceKafkaParameters`\"\u003e`source_kafka_parameters`\u003c/span\u003e below.\n"},"sourceMnsParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceMnsParameters:EventSourceV2SourceMnsParameters","description":"Lightweight message queue (formerly MNS) event source parameter. See \u003cspan pulumi-lang-nodejs=\"`sourceMnsParameters`\" pulumi-lang-dotnet=\"`SourceMnsParameters`\" pulumi-lang-go=\"`sourceMnsParameters`\" pulumi-lang-python=\"`source_mns_parameters`\" pulumi-lang-yaml=\"`sourceMnsParameters`\" pulumi-lang-java=\"`sourceMnsParameters`\"\u003e`source_mns_parameters`\u003c/span\u003e below.\n"},"sourceOssEventParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceOssEventParameters:EventSourceV2SourceOssEventParameters","description":"OSS event source parameters See \u003cspan pulumi-lang-nodejs=\"`sourceOssEventParameters`\" pulumi-lang-dotnet=\"`SourceOssEventParameters`\" pulumi-lang-go=\"`sourceOssEventParameters`\" pulumi-lang-python=\"`source_oss_event_parameters`\" pulumi-lang-yaml=\"`sourceOssEventParameters`\" pulumi-lang-java=\"`sourceOssEventParameters`\"\u003e`source_oss_event_parameters`\u003c/span\u003e below.\n"},"sourceRabbitMqParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceRabbitMqParameters:EventSourceV2SourceRabbitMqParameters","description":"The request parameter SourceRabbitMQParameters. See \u003cspan pulumi-lang-nodejs=\"`sourceRabbitMqParameters`\" pulumi-lang-dotnet=\"`SourceRabbitMqParameters`\" pulumi-lang-go=\"`sourceRabbitMqParameters`\" pulumi-lang-python=\"`source_rabbit_mq_parameters`\" pulumi-lang-yaml=\"`sourceRabbitMqParameters`\" pulumi-lang-java=\"`sourceRabbitMqParameters`\"\u003e`source_rabbit_mq_parameters`\u003c/span\u003e below.\n"},"sourceRocketmqParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceRocketmqParameters:EventSourceV2SourceRocketmqParameters","description":"The request parameter SourceRocketMQParameters. See \u003cspan pulumi-lang-nodejs=\"`sourceRocketmqParameters`\" pulumi-lang-dotnet=\"`SourceRocketmqParameters`\" pulumi-lang-go=\"`sourceRocketmqParameters`\" pulumi-lang-python=\"`source_rocketmq_parameters`\" pulumi-lang-yaml=\"`sourceRocketmqParameters`\" pulumi-lang-java=\"`sourceRocketmqParameters`\"\u003e`source_rocketmq_parameters`\u003c/span\u003e below.\n"},"sourceScheduledEventParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceScheduledEventParameters:EventSourceV2SourceScheduledEventParameters","description":"Time event source parameter. See \u003cspan pulumi-lang-nodejs=\"`sourceScheduledEventParameters`\" pulumi-lang-dotnet=\"`SourceScheduledEventParameters`\" pulumi-lang-go=\"`sourceScheduledEventParameters`\" pulumi-lang-python=\"`source_scheduled_event_parameters`\" pulumi-lang-yaml=\"`sourceScheduledEventParameters`\" pulumi-lang-java=\"`sourceScheduledEventParameters`\"\u003e`source_scheduled_event_parameters`\u003c/span\u003e below.\n"},"sourceSlsParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceSlsParameters:EventSourceV2SourceSlsParameters","description":"The request parameter SourceSLSParameters. See \u003cspan pulumi-lang-nodejs=\"`sourceSlsParameters`\" pulumi-lang-dotnet=\"`SourceSlsParameters`\" pulumi-lang-go=\"`sourceSlsParameters`\" pulumi-lang-python=\"`source_sls_parameters`\" pulumi-lang-yaml=\"`sourceSlsParameters`\" pulumi-lang-java=\"`sourceSlsParameters`\"\u003e`source_sls_parameters`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"requiredInputs":["eventBusName","eventSourceName"],"stateInputs":{"description":"Input properties used for looking up and filtering EventSourceV2 resources.\n","properties":{"description":{"type":"string","description":"The detail describe of event source\n"},"eventBusName":{"type":"string","description":"Name of the bus associated with the event source\n","willReplaceOnChanges":true},"eventSourceName":{"type":"string","description":"The code name of event source\n","willReplaceOnChanges":true},"linkedExternalSource":{"type":"boolean","description":"Whether to connect to an external data source\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"sourceHttpEventParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceHttpEventParameters:EventSourceV2SourceHttpEventParameters","description":"The request parameter SourceHttpEventParameters. See \u003cspan pulumi-lang-nodejs=\"`sourceHttpEventParameters`\" pulumi-lang-dotnet=\"`SourceHttpEventParameters`\" pulumi-lang-go=\"`sourceHttpEventParameters`\" pulumi-lang-python=\"`source_http_event_parameters`\" pulumi-lang-yaml=\"`sourceHttpEventParameters`\" pulumi-lang-java=\"`sourceHttpEventParameters`\"\u003e`source_http_event_parameters`\u003c/span\u003e below.\n"},"sourceKafkaParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceKafkaParameters:EventSourceV2SourceKafkaParameters","description":"Kafka event source parameter. See \u003cspan pulumi-lang-nodejs=\"`sourceKafkaParameters`\" pulumi-lang-dotnet=\"`SourceKafkaParameters`\" pulumi-lang-go=\"`sourceKafkaParameters`\" pulumi-lang-python=\"`source_kafka_parameters`\" pulumi-lang-yaml=\"`sourceKafkaParameters`\" pulumi-lang-java=\"`sourceKafkaParameters`\"\u003e`source_kafka_parameters`\u003c/span\u003e below.\n"},"sourceMnsParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceMnsParameters:EventSourceV2SourceMnsParameters","description":"Lightweight message queue (formerly MNS) event source parameter. See \u003cspan pulumi-lang-nodejs=\"`sourceMnsParameters`\" pulumi-lang-dotnet=\"`SourceMnsParameters`\" pulumi-lang-go=\"`sourceMnsParameters`\" pulumi-lang-python=\"`source_mns_parameters`\" pulumi-lang-yaml=\"`sourceMnsParameters`\" pulumi-lang-java=\"`sourceMnsParameters`\"\u003e`source_mns_parameters`\u003c/span\u003e below.\n"},"sourceOssEventParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceOssEventParameters:EventSourceV2SourceOssEventParameters","description":"OSS event source parameters See \u003cspan pulumi-lang-nodejs=\"`sourceOssEventParameters`\" pulumi-lang-dotnet=\"`SourceOssEventParameters`\" pulumi-lang-go=\"`sourceOssEventParameters`\" pulumi-lang-python=\"`source_oss_event_parameters`\" pulumi-lang-yaml=\"`sourceOssEventParameters`\" pulumi-lang-java=\"`sourceOssEventParameters`\"\u003e`source_oss_event_parameters`\u003c/span\u003e below.\n"},"sourceRabbitMqParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceRabbitMqParameters:EventSourceV2SourceRabbitMqParameters","description":"The request parameter SourceRabbitMQParameters. See \u003cspan pulumi-lang-nodejs=\"`sourceRabbitMqParameters`\" pulumi-lang-dotnet=\"`SourceRabbitMqParameters`\" pulumi-lang-go=\"`sourceRabbitMqParameters`\" pulumi-lang-python=\"`source_rabbit_mq_parameters`\" pulumi-lang-yaml=\"`sourceRabbitMqParameters`\" pulumi-lang-java=\"`sourceRabbitMqParameters`\"\u003e`source_rabbit_mq_parameters`\u003c/span\u003e below.\n"},"sourceRocketmqParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceRocketmqParameters:EventSourceV2SourceRocketmqParameters","description":"The request parameter SourceRocketMQParameters. See \u003cspan pulumi-lang-nodejs=\"`sourceRocketmqParameters`\" pulumi-lang-dotnet=\"`SourceRocketmqParameters`\" pulumi-lang-go=\"`sourceRocketmqParameters`\" pulumi-lang-python=\"`source_rocketmq_parameters`\" pulumi-lang-yaml=\"`sourceRocketmqParameters`\" pulumi-lang-java=\"`sourceRocketmqParameters`\"\u003e`source_rocketmq_parameters`\u003c/span\u003e below.\n"},"sourceScheduledEventParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceScheduledEventParameters:EventSourceV2SourceScheduledEventParameters","description":"Time event source parameter. See \u003cspan pulumi-lang-nodejs=\"`sourceScheduledEventParameters`\" pulumi-lang-dotnet=\"`SourceScheduledEventParameters`\" pulumi-lang-go=\"`sourceScheduledEventParameters`\" pulumi-lang-python=\"`source_scheduled_event_parameters`\" pulumi-lang-yaml=\"`sourceScheduledEventParameters`\" pulumi-lang-java=\"`sourceScheduledEventParameters`\"\u003e`source_scheduled_event_parameters`\u003c/span\u003e below.\n"},"sourceSlsParameters":{"$ref":"#/types/alicloud:eventbridge/EventSourceV2SourceSlsParameters:EventSourceV2SourceSlsParameters","description":"The request parameter SourceSLSParameters. See \u003cspan pulumi-lang-nodejs=\"`sourceSlsParameters`\" pulumi-lang-dotnet=\"`SourceSlsParameters`\" pulumi-lang-go=\"`sourceSlsParameters`\" pulumi-lang-python=\"`source_sls_parameters`\" pulumi-lang-yaml=\"`sourceSlsParameters`\" pulumi-lang-java=\"`sourceSlsParameters`\"\u003e`source_sls_parameters`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:eventbridge/rule:Rule":{"description":"Provides a Event Bridge Rule resource.\n\nFor information about Event Bridge Rule and how to use it, see [What is Rule](https://www.alibabacloud.com/help/en/eventbridge/latest/createrule-6).\n\n\u003e **NOTE:** Available since v1.129.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getAccount({});\nconst defaultEventBus = new alicloud.eventbridge.EventBus(\"default\", {eventBusName: name});\nconst queue1 = new alicloud.mns.Queue(\"queue1\", {name: name});\nconst mnsEndpointA = std.format({\n    input: \"acs:mns:cn-hangzhou:%s:queues/%s\",\n    args: [\n        _default.then(_default =\u003e _default.id),\n        queue1.name,\n    ],\n}).then(invoke =\u003e invoke.result);\nconst fnfEndpoint = std.format({\n    input: \"acs:fnf:cn-hangzhou:%s:flow/${flow}\",\n    args: [_default.then(_default =\u003e _default.id)],\n}).then(invoke =\u003e invoke.result);\nconst example = new alicloud.eventbridge.Rule(\"example\", {\n    eventBusName: defaultEventBus.eventBusName,\n    ruleName: name,\n    description: \"example\",\n    filterPattern: \"{\\\"source\\\":[\\\"crmabc.newsletter\\\"],\\\"type\\\":[\\\"UserSignUp\\\", \\\"UserLogin\\\"]}\",\n    targets: [{\n        targetId: \"tf-example1\",\n        endpoint: mnsEndpointA,\n        type: \"acs.mns.queue\",\n        paramLists: [\n            {\n                resourceKey: \"queue\",\n                form: \"CONSTANT\",\n                value: \"tf-testaccEbRule\",\n            },\n            {\n                resourceKey: \"Body\",\n                form: \"ORIGINAL\",\n            },\n            {\n                form: \"CONSTANT\",\n                resourceKey: \"IsBase64Encode\",\n                value: \"true\",\n            },\n        ],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_account()\ndefault_event_bus = alicloud.eventbridge.EventBus(\"default\", event_bus_name=name)\nqueue1 = alicloud.mns.Queue(\"queue1\", name=name)\nmns_endpoint_a = std.format(input=\"acs:mns:cn-hangzhou:%s:queues/%s\",\n    args=[\n        default.id,\n        queue1.name,\n    ]).result\nfnf_endpoint = std.format(input=\"acs:fnf:cn-hangzhou:%s:flow/${flow}\",\n    args=[default.id]).result\nexample = alicloud.eventbridge.Rule(\"example\",\n    event_bus_name=default_event_bus.event_bus_name,\n    rule_name=name,\n    description=\"example\",\n    filter_pattern=\"{\\\"source\\\":[\\\"crmabc.newsletter\\\"],\\\"type\\\":[\\\"UserSignUp\\\", \\\"UserLogin\\\"]}\",\n    targets=[{\n        \"target_id\": \"tf-example1\",\n        \"endpoint\": mns_endpoint_a,\n        \"type\": \"acs.mns.queue\",\n        \"param_lists\": [\n            {\n                \"resource_key\": \"queue\",\n                \"form\": \"CONSTANT\",\n                \"value\": \"tf-testaccEbRule\",\n            },\n            {\n                \"resource_key\": \"Body\",\n                \"form\": \"ORIGINAL\",\n            },\n            {\n                \"form\": \"CONSTANT\",\n                \"resource_key\": \"IsBase64Encode\",\n                \"value\": \"true\",\n            },\n        ],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultEventBus = new AliCloud.EventBridge.EventBus(\"default\", new()\n    {\n        EventBusName = name,\n    });\n\n    var queue1 = new AliCloud.Mns.Queue(\"queue1\", new()\n    {\n        Name = name,\n    });\n\n    var mnsEndpointA = Std.Format.Invoke(new()\n    {\n        Input = \"acs:mns:cn-hangzhou:%s:queues/%s\",\n        Args = new[]\n        {\n            @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n            queue1.Name,\n        },\n    }).Apply(invoke =\u003e invoke.Result);\n\n    var fnfEndpoint = Std.Format.Invoke(new()\n    {\n        Input = \"acs:fnf:cn-hangzhou:%s:flow/${flow}\",\n        Args = new[]\n        {\n            @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        },\n    }).Apply(invoke =\u003e invoke.Result);\n\n    var example = new AliCloud.EventBridge.Rule(\"example\", new()\n    {\n        EventBusName = defaultEventBus.EventBusName,\n        RuleName = name,\n        Description = \"example\",\n        FilterPattern = \"{\\\"source\\\":[\\\"crmabc.newsletter\\\"],\\\"type\\\":[\\\"UserSignUp\\\", \\\"UserLogin\\\"]}\",\n        Targets = new[]\n        {\n            new AliCloud.EventBridge.Inputs.RuleTargetArgs\n            {\n                TargetId = \"tf-example1\",\n                Endpoint = mnsEndpointA,\n                Type = \"acs.mns.queue\",\n                ParamLists = new[]\n                {\n                    new AliCloud.EventBridge.Inputs.RuleTargetParamListArgs\n                    {\n                        ResourceKey = \"queue\",\n                        Form = \"CONSTANT\",\n                        Value = \"tf-testaccEbRule\",\n                    },\n                    new AliCloud.EventBridge.Inputs.RuleTargetParamListArgs\n                    {\n                        ResourceKey = \"Body\",\n                        Form = \"ORIGINAL\",\n                    },\n                    new AliCloud.EventBridge.Inputs.RuleTargetParamListArgs\n                    {\n                        Form = \"CONSTANT\",\n                        ResourceKey = \"IsBase64Encode\",\n                        Value = \"true\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eventbridge\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mns\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEventBus, err := eventbridge.NewEventBus(ctx, \"default\", \u0026eventbridge.EventBusArgs{\n\t\t\tEventBusName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqueue1, err := mns.NewQueue(ctx, \"queue1\", \u0026mns.QueueArgs{\n\t\t\tName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmnsEndpointA := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"acs:mns:cn-hangzhou:%s:queues/%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\t_default.Id,\n\t\t\t\tqueue1.Name,\n\t\t\t},\n\t\t}, nil).Result\n\t\t_ := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"acs:fnf:cn-hangzhou:%s:flow/${flow}\",\n\t\t\tArgs: []*string{\n\t\t\t\t_default.Id,\n\t\t\t},\n\t\t}, nil).Result\n\t\t_, err = eventbridge.NewRule(ctx, \"example\", \u0026eventbridge.RuleArgs{\n\t\t\tEventBusName:  defaultEventBus.EventBusName,\n\t\t\tRuleName:      pulumi.String(name),\n\t\t\tDescription:   pulumi.String(\"example\"),\n\t\t\tFilterPattern: pulumi.String(\"{\\\"source\\\":[\\\"crmabc.newsletter\\\"],\\\"type\\\":[\\\"UserSignUp\\\", \\\"UserLogin\\\"]}\"),\n\t\t\tTargets: eventbridge.RuleTargetArray{\n\t\t\t\t\u0026eventbridge.RuleTargetArgs{\n\t\t\t\t\tTargetId: pulumi.String(\"tf-example1\"),\n\t\t\t\t\tEndpoint: pulumi.String(mnsEndpointA),\n\t\t\t\t\tType:     pulumi.String(\"acs.mns.queue\"),\n\t\t\t\t\tParamLists: eventbridge.RuleTargetParamListArray{\n\t\t\t\t\t\t\u0026eventbridge.RuleTargetParamListArgs{\n\t\t\t\t\t\t\tResourceKey: pulumi.String(\"queue\"),\n\t\t\t\t\t\t\tForm:        pulumi.String(\"CONSTANT\"),\n\t\t\t\t\t\t\tValue:       pulumi.String(\"tf-testaccEbRule\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026eventbridge.RuleTargetParamListArgs{\n\t\t\t\t\t\t\tResourceKey: pulumi.String(\"Body\"),\n\t\t\t\t\t\t\tForm:        pulumi.String(\"ORIGINAL\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026eventbridge.RuleTargetParamListArgs{\n\t\t\t\t\t\t\tForm:        pulumi.String(\"CONSTANT\"),\n\t\t\t\t\t\t\tResourceKey: pulumi.String(\"IsBase64Encode\"),\n\t\t\t\t\t\t\tValue:       pulumi.String(\"true\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.eventbridge.EventBus;\nimport com.pulumi.alicloud.eventbridge.EventBusArgs;\nimport com.pulumi.alicloud.mns.Queue;\nimport com.pulumi.alicloud.mns.QueueArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.eventbridge.Rule;\nimport com.pulumi.alicloud.eventbridge.RuleArgs;\nimport com.pulumi.alicloud.eventbridge.inputs.RuleTargetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var defaultEventBus = new EventBus(\"defaultEventBus\", EventBusArgs.builder()\n            .eventBusName(name)\n            .build());\n\n        var queue1 = new Queue(\"queue1\", QueueArgs.builder()\n            .name(name)\n            .build());\n\n        final var mnsEndpointA = StdFunctions.format(FormatArgs.builder()\n            .input(\"acs:mns:cn-hangzhou:%s:queues/%s\")\n            .args(            \n                default_.id(),\n                queue1.name())\n            .build()).result();\n\n        final var fnfEndpoint = StdFunctions.format(FormatArgs.builder()\n            .input(\"acs:fnf:cn-hangzhou:%s:flow/${flow}\")\n            .args(default_.id())\n            .build()).result();\n\n        var example = new Rule(\"example\", RuleArgs.builder()\n            .eventBusName(defaultEventBus.eventBusName())\n            .ruleName(name)\n            .description(\"example\")\n            .filterPattern(\"{\\\"source\\\":[\\\"crmabc.newsletter\\\"],\\\"type\\\":[\\\"UserSignUp\\\", \\\"UserLogin\\\"]}\")\n            .targets(RuleTargetArgs.builder()\n                .targetId(\"tf-example1\")\n                .endpoint(mnsEndpointA)\n                .type(\"acs.mns.queue\")\n                .paramLists(                \n                    RuleTargetParamListArgs.builder()\n                        .resourceKey(\"queue\")\n                        .form(\"CONSTANT\")\n                        .value(\"tf-testaccEbRule\")\n                        .build(),\n                    RuleTargetParamListArgs.builder()\n                        .resourceKey(\"Body\")\n                        .form(\"ORIGINAL\")\n                        .build(),\n                    RuleTargetParamListArgs.builder()\n                        .form(\"CONSTANT\")\n                        .resourceKey(\"IsBase64Encode\")\n                        .value(\"true\")\n                        .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultEventBus:\n    type: alicloud:eventbridge:EventBus\n    name: default\n    properties:\n      eventBusName: ${name}\n  queue1:\n    type: alicloud:mns:Queue\n    properties:\n      name: ${name}\n  example:\n    type: alicloud:eventbridge:Rule\n    properties:\n      eventBusName: ${defaultEventBus.eventBusName}\n      ruleName: ${name}\n      description: example\n      filterPattern: '{\"source\":[\"crmabc.newsletter\"],\"type\":[\"UserSignUp\", \"UserLogin\"]}'\n      targets:\n        - targetId: tf-example1\n          endpoint: ${mnsEndpointA}\n          type: acs.mns.queue\n          paramLists:\n            - resourceKey: queue\n              form: CONSTANT\n              value: tf-testaccEbRule\n            - resourceKey: Body\n              form: ORIGINAL\n            - form: CONSTANT\n              resourceKey: IsBase64Encode\n              value: 'true'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  mnsEndpointA:\n    fn::invoke:\n      function: std:format\n      arguments:\n        input: acs:mns:cn-hangzhou:%s:queues/%s\n        args:\n          - ${default.id}\n          - ${queue1.name}\n      return: result\n  fnfEndpoint:\n    fn::invoke:\n      function: std:format\n      arguments:\n        input: acs:fnf:cn-hangzhou:%s:flow/$${flow}\n        args:\n          - ${default.id}\n      return: result\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEvent Bridge Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eventbridge/rule:Rule example \u003cevent_bus_name\u003e:\u003crule_name\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the event rule.\n"},"eventBusName":{"type":"string","description":"The name of the event bus.\n"},"filterPattern":{"type":"string","description":"The pattern to match interested events. Event mode, JSON format. The value description is as follows: `stringEqual` mode. `stringExpression` mode. Each field has up to 5 expressions (map structure).\n"},"ruleName":{"type":"string","description":"The name of the event rule.\n"},"status":{"type":"string","description":"The status of the event rule. Valid values: `ENABLE`, `DISABLE`.\n"},"targets":{"type":"array","items":{"$ref":"#/types/alicloud:eventbridge/RuleTarget:RuleTarget"},"description":"The targets of rule. See \u003cspan pulumi-lang-nodejs=\"`targets`\" pulumi-lang-dotnet=\"`Targets`\" pulumi-lang-go=\"`targets`\" pulumi-lang-python=\"`targets`\" pulumi-lang-yaml=\"`targets`\" pulumi-lang-java=\"`targets`\"\u003e`targets`\u003c/span\u003e below.\n"}},"required":["eventBusName","filterPattern","ruleName","status","targets"],"inputProperties":{"description":{"type":"string","description":"The description of the event rule.\n"},"eventBusName":{"type":"string","description":"The name of the event bus.\n","willReplaceOnChanges":true},"filterPattern":{"type":"string","description":"The pattern to match interested events. Event mode, JSON format. The value description is as follows: `stringEqual` mode. `stringExpression` mode. Each field has up to 5 expressions (map structure).\n"},"ruleName":{"type":"string","description":"The name of the event rule.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the event rule. Valid values: `ENABLE`, `DISABLE`.\n"},"targets":{"type":"array","items":{"$ref":"#/types/alicloud:eventbridge/RuleTarget:RuleTarget"},"description":"The targets of rule. See \u003cspan pulumi-lang-nodejs=\"`targets`\" pulumi-lang-dotnet=\"`Targets`\" pulumi-lang-go=\"`targets`\" pulumi-lang-python=\"`targets`\" pulumi-lang-yaml=\"`targets`\" pulumi-lang-java=\"`targets`\"\u003e`targets`\u003c/span\u003e below.\n"}},"requiredInputs":["eventBusName","filterPattern","ruleName","targets"],"stateInputs":{"description":"Input properties used for looking up and filtering Rule resources.\n","properties":{"description":{"type":"string","description":"The description of the event rule.\n"},"eventBusName":{"type":"string","description":"The name of the event bus.\n","willReplaceOnChanges":true},"filterPattern":{"type":"string","description":"The pattern to match interested events. Event mode, JSON format. The value description is as follows: `stringEqual` mode. `stringExpression` mode. Each field has up to 5 expressions (map structure).\n"},"ruleName":{"type":"string","description":"The name of the event rule.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the event rule. Valid values: `ENABLE`, `DISABLE`.\n"},"targets":{"type":"array","items":{"$ref":"#/types/alicloud:eventbridge/RuleTarget:RuleTarget"},"description":"The targets of rule. See \u003cspan pulumi-lang-nodejs=\"`targets`\" pulumi-lang-dotnet=\"`Targets`\" pulumi-lang-go=\"`targets`\" pulumi-lang-python=\"`targets`\" pulumi-lang-yaml=\"`targets`\" pulumi-lang-java=\"`targets`\"\u003e`targets`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:eventbridge/serviceLinkedRole:ServiceLinkedRole":{"description":"Provides a Event Bridge Service Linked Role resource.\n\nFor information about Event Bridge Service Linked Role and how to use it, see [What is Service Linked Role](https://www.alibabacloud.com/help/en/eventbridge/developer-reference/api-eventbridge-2020-04-01-createservicelinkedroleforproduct).\n\n\u003e **NOTE:** Available since v1.129.0.\n\n\u003e **NOTE:** From version 1.142.0, the resource is renamed as \u003cspan pulumi-lang-nodejs=\"`alicloud.eventbridge.ServiceLinkedRole`\" pulumi-lang-dotnet=\"`alicloud.eventbridge.ServiceLinkedRole`\" pulumi-lang-go=\"`eventbridge.ServiceLinkedRole`\" pulumi-lang-python=\"`eventbridge.ServiceLinkedRole`\" pulumi-lang-yaml=\"`alicloud.eventbridge.ServiceLinkedRole`\" pulumi-lang-java=\"`alicloud.eventbridge.ServiceLinkedRole`\"\u003e`alicloud.eventbridge.ServiceLinkedRole`\u003c/span\u003e.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.eventbridge.ServiceLinkedRole(\"default\", {productName: \"AliyunServiceRoleForEventBridgeSourceRocketMQ\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.eventbridge.ServiceLinkedRole(\"default\", product_name=\"AliyunServiceRoleForEventBridgeSourceRocketMQ\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.EventBridge.ServiceLinkedRole(\"default\", new()\n    {\n        ProductName = \"AliyunServiceRoleForEventBridgeSourceRocketMQ\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eventbridge\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := eventbridge.NewServiceLinkedRole(ctx, \"default\", \u0026eventbridge.ServiceLinkedRoleArgs{\n\t\t\tProductName: pulumi.String(\"AliyunServiceRoleForEventBridgeSourceRocketMQ\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eventbridge.ServiceLinkedRole;\nimport com.pulumi.alicloud.eventbridge.ServiceLinkedRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new ServiceLinkedRole(\"default\", ServiceLinkedRoleArgs.builder()\n            .productName(\"AliyunServiceRoleForEventBridgeSourceRocketMQ\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:eventbridge:ServiceLinkedRole\n    properties:\n      productName: AliyunServiceRoleForEventBridgeSourceRocketMQ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEvent Bridge Service Linked Role can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:eventbridge/serviceLinkedRole:ServiceLinkedRole example \u003cproduct_name\u003e\n```\n\n","properties":{"productName":{"type":"string","description":"The name of the cloud service or the name of the service-linked role with which the cloud service is associated. For more information, see [How to use it](https://www.alibabacloud.com/help/en/eventbridge/developer-reference/api-eventbridge-2020-04-01-createservicelinkedroleforproduct).\n"}},"required":["productName"],"inputProperties":{"productName":{"type":"string","description":"The name of the cloud service or the name of the service-linked role with which the cloud service is associated. For more information, see [How to use it](https://www.alibabacloud.com/help/en/eventbridge/developer-reference/api-eventbridge-2020-04-01-createservicelinkedroleforproduct).\n","willReplaceOnChanges":true}},"requiredInputs":["productName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceLinkedRole resources.\n","properties":{"productName":{"type":"string","description":"The name of the cloud service or the name of the service-linked role with which the cloud service is associated. For more information, see [How to use it](https://www.alibabacloud.com/help/en/eventbridge/developer-reference/api-eventbridge-2020-04-01-createservicelinkedroleforproduct).\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:eventbridge/slr:Slr":{"properties":{"productName":{"type":"string"}},"required":["productName"],"inputProperties":{"productName":{"type":"string","willReplaceOnChanges":true}},"requiredInputs":["productName"],"stateInputs":{"description":"Input properties used for looking up and filtering Slr resources.\n","properties":{"productName":{"type":"string","willReplaceOnChanges":true}},"type":"object"}},"alicloud:expressconnect/ecFailoverTestJob:EcFailoverTestJob":{"description":"Provides a Express Connect Ec Failover Test Job resource. Express Connect Failover Test Job.\n\nFor information about Express Connect Ec Failover Test Job and how to use it, see [What is Ec Failover Test Job](https://www.alibabacloud.com/help/zh/express-connect/developer-reference/api-vpc-2016-04-28-createfailovertestjob-efficiency-channels).\n\n\u003e **NOTE:** Available since v1.215.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"preserved-NODELETING\",\n});\nconst defaultEcFailoverTestJob = new alicloud.expressconnect.EcFailoverTestJob(\"default\", {\n    description: name,\n    jobType: \"StartNow\",\n    resourceIds: [\n        _default.then(_default =\u003e _default.ids?.[0]),\n        _default.then(_default =\u003e _default.ids?.[1]),\n    ],\n    jobDuration: 1,\n    resourceType: \"PHYSICALCONNECTION\",\n    ecFailoverTestJobName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.expressconnect.get_physical_connections(name_regex=\"preserved-NODELETING\")\ndefault_ec_failover_test_job = alicloud.expressconnect.EcFailoverTestJob(\"default\",\n    description=name,\n    job_type=\"StartNow\",\n    resource_ids=[\n        default.ids[0],\n        default.ids[1],\n    ],\n    job_duration=1,\n    resource_type=\"PHYSICALCONNECTION\",\n    ec_failover_test_job_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"preserved-NODELETING\",\n    });\n\n    var defaultEcFailoverTestJob = new AliCloud.ExpressConnect.EcFailoverTestJob(\"default\", new()\n    {\n        Description = name,\n        JobType = \"StartNow\",\n        ResourceIds = new[]\n        {\n            @default.Apply(@default =\u003e @default.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Ids[0])),\n            @default.Apply(@default =\u003e @default.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Ids[1])),\n        },\n        JobDuration = 1,\n        ResourceType = \"PHYSICALCONNECTION\",\n        EcFailoverTestJobName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = expressconnect.NewEcFailoverTestJob(ctx, \"default\", \u0026expressconnect.EcFailoverTestJobArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tJobType:     pulumi.String(\"StartNow\"),\n\t\t\tResourceIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(_default.Ids[0]),\n\t\t\t\tpulumi.String(_default.Ids[1]),\n\t\t\t},\n\t\t\tJobDuration:           pulumi.Int(1),\n\t\t\tResourceType:          pulumi.String(\"PHYSICALCONNECTION\"),\n\t\t\tEcFailoverTestJobName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.alicloud.expressconnect.EcFailoverTestJob;\nimport com.pulumi.alicloud.expressconnect.EcFailoverTestJobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"preserved-NODELETING\")\n            .build());\n\n        var defaultEcFailoverTestJob = new EcFailoverTestJob(\"defaultEcFailoverTestJob\", EcFailoverTestJobArgs.builder()\n            .description(name)\n            .jobType(\"StartNow\")\n            .resourceIds(            \n                default_.ids()[0],\n                default_.ids()[1])\n            .jobDuration(1)\n            .resourceType(\"PHYSICALCONNECTION\")\n            .ecFailoverTestJobName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultEcFailoverTestJob:\n    type: alicloud:expressconnect:EcFailoverTestJob\n    name: default\n    properties:\n      description: ${name}\n      jobType: StartNow\n      resourceIds:\n        - ${default.ids[0]}\n        - ${default.ids[1]}\n      jobDuration: '1'\n      resourceType: PHYSICALCONNECTION\n      ecFailoverTestJobName: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: preserved-NODELETING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Ec Failover Test Job can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:expressconnect/ecFailoverTestJob:EcFailoverTestJob example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"Job description.\n"},"ecFailoverTestJobName":{"type":"string","description":"Job name.\n"},"jobDuration":{"type":"integer","description":"Job duration.\n"},"jobType":{"type":"string","description":"Job type.\n"},"resourceIds":{"type":"array","items":{"type":"string"},"description":"Resource id list.\n"},"resourceType":{"type":"string","description":"Resource type.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"required":["jobDuration","jobType","resourceIds","resourceType","status"],"inputProperties":{"description":{"type":"string","description":"Job description.\n"},"ecFailoverTestJobName":{"type":"string","description":"Job name.\n"},"jobDuration":{"type":"integer","description":"Job duration.\n"},"jobType":{"type":"string","description":"Job type.\n","willReplaceOnChanges":true},"resourceIds":{"type":"array","items":{"type":"string"},"description":"Resource id list.\n"},"resourceType":{"type":"string","description":"Resource type.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"}},"requiredInputs":["jobDuration","jobType","resourceIds","resourceType"],"stateInputs":{"description":"Input properties used for looking up and filtering EcFailoverTestJob resources.\n","properties":{"description":{"type":"string","description":"Job description.\n"},"ecFailoverTestJobName":{"type":"string","description":"Job name.\n"},"jobDuration":{"type":"integer","description":"Job duration.\n"},"jobType":{"type":"string","description":"Job type.\n","willReplaceOnChanges":true},"resourceIds":{"type":"array","items":{"type":"string"},"description":"Resource id list.\n"},"resourceType":{"type":"string","description":"Resource type.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object"}},"alicloud:expressconnect/grantRuleToCen:GrantRuleToCen":{"description":"Provides a Express Connect Grant Rule To Cen resource.\n\nFor information about Express Connect Grant Rule To Cen and how to use it, see [What is Grant Rule To Cen](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/grantinstancetocen).\n\n\u003e **NOTE:** Available since v1.196.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getAccount({});\nconst defaultGetPhysicalConnections = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"^preserved-NODELETING\",\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 2999,\n    min: 1,\n});\nconst defaultVirtualBorderRouter = new alicloud.expressconnect.VirtualBorderRouter(\"default\", {\n    localGatewayIp: \"10.0.0.1\",\n    peerGatewayIp: \"10.0.0.2\",\n    peeringSubnetMask: \"255.255.255.252\",\n    physicalConnectionId: defaultGetPhysicalConnections.then(defaultGetPhysicalConnections =\u003e defaultGetPhysicalConnections.connections?.[0]?.id),\n    virtualBorderRouterName: name,\n    vlanId: defaultInteger.id,\n    minRxInterval: 1000,\n    minTxInterval: 1000,\n    detectMultiplier: 10,\n});\nconst defaultInstance = new alicloud.cen.Instance(\"default\", {cenInstanceName: name});\nconst defaultGrantRuleToCen = new alicloud.expressconnect.GrantRuleToCen(\"default\", {\n    cenId: defaultInstance.id,\n    cenOwnerId: _default.then(_default =\u003e _default.id),\n    instanceId: defaultVirtualBorderRouter.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_account()\ndefault_get_physical_connections = alicloud.expressconnect.get_physical_connections(name_regex=\"^preserved-NODELETING\")\ndefault_integer = random.index.Integer(\"default\",\n    max=2999,\n    min=1)\ndefault_virtual_border_router = alicloud.expressconnect.VirtualBorderRouter(\"default\",\n    local_gateway_ip=\"10.0.0.1\",\n    peer_gateway_ip=\"10.0.0.2\",\n    peering_subnet_mask=\"255.255.255.252\",\n    physical_connection_id=default_get_physical_connections.connections[0].id,\n    virtual_border_router_name=name,\n    vlan_id=default_integer[\"id\"],\n    min_rx_interval=1000,\n    min_tx_interval=1000,\n    detect_multiplier=10)\ndefault_instance = alicloud.cen.Instance(\"default\", cen_instance_name=name)\ndefault_grant_rule_to_cen = alicloud.expressconnect.GrantRuleToCen(\"default\",\n    cen_id=default_instance.id,\n    cen_owner_id=default.id,\n    instance_id=default_virtual_border_router.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultGetPhysicalConnections = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"^preserved-NODELETING\",\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 2999,\n        Min = 1,\n    });\n\n    var defaultVirtualBorderRouter = new AliCloud.ExpressConnect.VirtualBorderRouter(\"default\", new()\n    {\n        LocalGatewayIp = \"10.0.0.1\",\n        PeerGatewayIp = \"10.0.0.2\",\n        PeeringSubnetMask = \"255.255.255.252\",\n        PhysicalConnectionId = defaultGetPhysicalConnections.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Connections[0]?.Id),\n        VirtualBorderRouterName = name,\n        VlanId = defaultInteger.Id,\n        MinRxInterval = 1000,\n        MinTxInterval = 1000,\n        DetectMultiplier = 10,\n    });\n\n    var defaultInstance = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        CenInstanceName = name,\n    });\n\n    var defaultGrantRuleToCen = new AliCloud.ExpressConnect.GrantRuleToCen(\"default\", new()\n    {\n        CenId = defaultInstance.Id,\n        CenOwnerId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        InstanceId = defaultVirtualBorderRouter.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetPhysicalConnections, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 2999,\n\t\t\tMin: 1,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVirtualBorderRouter, err := expressconnect.NewVirtualBorderRouter(ctx, \"default\", \u0026expressconnect.VirtualBorderRouterArgs{\n\t\t\tLocalGatewayIp:          pulumi.String(\"10.0.0.1\"),\n\t\t\tPeerGatewayIp:           pulumi.String(\"10.0.0.2\"),\n\t\t\tPeeringSubnetMask:       pulumi.String(\"255.255.255.252\"),\n\t\t\tPhysicalConnectionId:    pulumi.String(defaultGetPhysicalConnections.Connections[0].Id),\n\t\t\tVirtualBorderRouterName: pulumi.String(name),\n\t\t\tVlanId:                  defaultInteger.Id,\n\t\t\tMinRxInterval:           pulumi.Int(1000),\n\t\t\tMinTxInterval:           pulumi.Int(1000),\n\t\t\tDetectMultiplier:        pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = expressconnect.NewGrantRuleToCen(ctx, \"default\", \u0026expressconnect.GrantRuleToCenArgs{\n\t\t\tCenId:      defaultInstance.ID(),\n\t\t\tCenOwnerId: pulumi.String(_default.Id),\n\t\t\tInstanceId: defaultVirtualBorderRouter.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouter;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouterArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.expressconnect.GrantRuleToCen;\nimport com.pulumi.alicloud.expressconnect.GrantRuleToCenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var defaultGetPhysicalConnections = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"^preserved-NODELETING\")\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(2999)\n            .min(1)\n            .build());\n\n        var defaultVirtualBorderRouter = new VirtualBorderRouter(\"defaultVirtualBorderRouter\", VirtualBorderRouterArgs.builder()\n            .localGatewayIp(\"10.0.0.1\")\n            .peerGatewayIp(\"10.0.0.2\")\n            .peeringSubnetMask(\"255.255.255.252\")\n            .physicalConnectionId(defaultGetPhysicalConnections.connections()[0].id())\n            .virtualBorderRouterName(name)\n            .vlanId(defaultInteger.id())\n            .minRxInterval(1000)\n            .minTxInterval(1000)\n            .detectMultiplier(10)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .build());\n\n        var defaultGrantRuleToCen = new GrantRuleToCen(\"defaultGrantRuleToCen\", GrantRuleToCenArgs.builder()\n            .cenId(defaultInstance.id())\n            .cenOwnerId(default_.id())\n            .instanceId(defaultVirtualBorderRouter.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 2999\n      min: 1\n  defaultVirtualBorderRouter:\n    type: alicloud:expressconnect:VirtualBorderRouter\n    name: default\n    properties:\n      localGatewayIp: 10.0.0.1\n      peerGatewayIp: 10.0.0.2\n      peeringSubnetMask: 255.255.255.252\n      physicalConnectionId: ${defaultGetPhysicalConnections.connections[0].id}\n      virtualBorderRouterName: ${name}\n      vlanId: ${defaultInteger.id}\n      minRxInterval: 1000\n      minTxInterval: 1000\n      detectMultiplier: 10\n  defaultInstance:\n    type: alicloud:cen:Instance\n    name: default\n    properties:\n      cenInstanceName: ${name}\n  defaultGrantRuleToCen:\n    type: alicloud:expressconnect:GrantRuleToCen\n    name: default\n    properties:\n      cenId: ${defaultInstance.id}\n      cenOwnerId: ${default.id}\n      instanceId: ${defaultVirtualBorderRouter.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  defaultGetPhysicalConnections:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: ^preserved-NODELETING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Grant Rule To Cen can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:expressconnect/grantRuleToCen:GrantRuleToCen example \u003ccen_id\u003e:\u003ccen_owner_id\u003e:\u003cinstance_id\u003e\n```\n\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN instance to which you want to grant permissions.\n"},"cenOwnerId":{"type":"string","description":"The user ID (UID) of the Alibaba Cloud account to which the CEN instance belongs.\n"},"createTime":{"type":"string","description":"(Available since v1.263.0) The time when the instance was created.\n"},"instanceId":{"type":"string","description":"The ID of the VBR.\n"}},"required":["cenId","cenOwnerId","createTime","instanceId"],"inputProperties":{"cenId":{"type":"string","description":"The ID of the CEN instance to which you want to grant permissions.\n","willReplaceOnChanges":true},"cenOwnerId":{"type":"string","description":"The user ID (UID) of the Alibaba Cloud account to which the CEN instance belongs.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the VBR.\n","willReplaceOnChanges":true}},"requiredInputs":["cenId","cenOwnerId","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering GrantRuleToCen resources.\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN instance to which you want to grant permissions.\n","willReplaceOnChanges":true},"cenOwnerId":{"type":"string","description":"The user ID (UID) of the Alibaba Cloud account to which the CEN instance belongs.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"(Available since v1.263.0) The time when the instance was created.\n"},"instanceId":{"type":"string","description":"The ID of the VBR.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:expressconnect/physicalConnection:PhysicalConnection":{"description":"Provides a Express Connect Physical Connection resource.\n\nFor information about Express Connect Physical Connection and how to use it, see [What is Physical Connection](https://www.alibabacloud.com/help/en/express-connect/developer-reference/api-vpc-2016-04-28-createphysicalconnection-efficiency-channels).\n\n\u003e **NOTE:** Available since v1.132.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst domestic = new alicloud.expressconnect.PhysicalConnection(\"domestic\", {\n    accessPointId: \"ap-cn-hangzhou-yh-B\",\n    lineOperator: \"CT\",\n    peerLocation: \"example_value\",\n    physicalConnectionName: \"example_value\",\n    type: \"VPC\",\n    description: \"my domestic connection\",\n    portType: \"1000Base-LX\",\n    bandwidth: \"100\",\n});\nconst international = new alicloud.expressconnect.PhysicalConnection(\"international\", {\n    accessPointId: \"ap-sg-singpore-A\",\n    lineOperator: \"Other\",\n    peerLocation: \"example_value\",\n    physicalConnectionName: \"example_value\",\n    type: \"VPC\",\n    description: \"my domestic connection\",\n    portType: \"1000Base-LX\",\n    bandwidth: \"100\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndomestic = alicloud.expressconnect.PhysicalConnection(\"domestic\",\n    access_point_id=\"ap-cn-hangzhou-yh-B\",\n    line_operator=\"CT\",\n    peer_location=\"example_value\",\n    physical_connection_name=\"example_value\",\n    type=\"VPC\",\n    description=\"my domestic connection\",\n    port_type=\"1000Base-LX\",\n    bandwidth=\"100\")\ninternational = alicloud.expressconnect.PhysicalConnection(\"international\",\n    access_point_id=\"ap-sg-singpore-A\",\n    line_operator=\"Other\",\n    peer_location=\"example_value\",\n    physical_connection_name=\"example_value\",\n    type=\"VPC\",\n    description=\"my domestic connection\",\n    port_type=\"1000Base-LX\",\n    bandwidth=\"100\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var domestic = new AliCloud.ExpressConnect.PhysicalConnection(\"domestic\", new()\n    {\n        AccessPointId = \"ap-cn-hangzhou-yh-B\",\n        LineOperator = \"CT\",\n        PeerLocation = \"example_value\",\n        PhysicalConnectionName = \"example_value\",\n        Type = \"VPC\",\n        Description = \"my domestic connection\",\n        PortType = \"1000Base-LX\",\n        Bandwidth = \"100\",\n    });\n\n    var international = new AliCloud.ExpressConnect.PhysicalConnection(\"international\", new()\n    {\n        AccessPointId = \"ap-sg-singpore-A\",\n        LineOperator = \"Other\",\n        PeerLocation = \"example_value\",\n        PhysicalConnectionName = \"example_value\",\n        Type = \"VPC\",\n        Description = \"my domestic connection\",\n        PortType = \"1000Base-LX\",\n        Bandwidth = \"100\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := expressconnect.NewPhysicalConnection(ctx, \"domestic\", \u0026expressconnect.PhysicalConnectionArgs{\n\t\t\tAccessPointId:          pulumi.String(\"ap-cn-hangzhou-yh-B\"),\n\t\t\tLineOperator:           pulumi.String(\"CT\"),\n\t\t\tPeerLocation:           pulumi.String(\"example_value\"),\n\t\t\tPhysicalConnectionName: pulumi.String(\"example_value\"),\n\t\t\tType:                   pulumi.String(\"VPC\"),\n\t\t\tDescription:            pulumi.String(\"my domestic connection\"),\n\t\t\tPortType:               pulumi.String(\"1000Base-LX\"),\n\t\t\tBandwidth:              pulumi.String(\"100\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = expressconnect.NewPhysicalConnection(ctx, \"international\", \u0026expressconnect.PhysicalConnectionArgs{\n\t\t\tAccessPointId:          pulumi.String(\"ap-sg-singpore-A\"),\n\t\t\tLineOperator:           pulumi.String(\"Other\"),\n\t\t\tPeerLocation:           pulumi.String(\"example_value\"),\n\t\t\tPhysicalConnectionName: pulumi.String(\"example_value\"),\n\t\t\tType:                   pulumi.String(\"VPC\"),\n\t\t\tDescription:            pulumi.String(\"my domestic connection\"),\n\t\t\tPortType:               pulumi.String(\"1000Base-LX\"),\n\t\t\tBandwidth:              pulumi.String(\"100\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.PhysicalConnection;\nimport com.pulumi.alicloud.expressconnect.PhysicalConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var domestic = new PhysicalConnection(\"domestic\", PhysicalConnectionArgs.builder()\n            .accessPointId(\"ap-cn-hangzhou-yh-B\")\n            .lineOperator(\"CT\")\n            .peerLocation(\"example_value\")\n            .physicalConnectionName(\"example_value\")\n            .type(\"VPC\")\n            .description(\"my domestic connection\")\n            .portType(\"1000Base-LX\")\n            .bandwidth(\"100\")\n            .build());\n\n        var international = new PhysicalConnection(\"international\", PhysicalConnectionArgs.builder()\n            .accessPointId(\"ap-sg-singpore-A\")\n            .lineOperator(\"Other\")\n            .peerLocation(\"example_value\")\n            .physicalConnectionName(\"example_value\")\n            .type(\"VPC\")\n            .description(\"my domestic connection\")\n            .portType(\"1000Base-LX\")\n            .bandwidth(\"100\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  domestic:\n    type: alicloud:expressconnect:PhysicalConnection\n    properties:\n      accessPointId: ap-cn-hangzhou-yh-B\n      lineOperator: CT\n      peerLocation: example_value\n      physicalConnectionName: example_value\n      type: VPC\n      description: my domestic connection\n      portType: 1000Base-LX\n      bandwidth: 100\n  international:\n    type: alicloud:expressconnect:PhysicalConnection\n    properties:\n      accessPointId: ap-sg-singpore-A\n      lineOperator: Other\n      peerLocation: example_value\n      physicalConnectionName: example_value\n      type: VPC\n      description: my domestic connection\n      portType: 1000Base-LX\n      bandwidth: 100\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Physical Connection can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:expressconnect/physicalConnection:PhysicalConnection example \u003cid\u003e\n```\n\n","properties":{"accessPointId":{"type":"string","description":"The access point ID of the Express Connect circuit.\n"},"bandwidth":{"type":"string","description":"The maximum bandwidth of the hosted connection.\n"},"circuitCode":{"type":"string","description":"The circuit code of the Express Connect circuit.\n"},"description":{"type":"string","description":"The description of the Express Connect circuit.\n"},"lineOperator":{"type":"string","description":"The connectivity provider of the Express Connect circuit. Valid values:\n- `CT`: China Telecom.\n- `CU`: China Unicom.\n- `CM`: China Mobile.\n- `CO`: Other connectivity providers in the Chinese mainland.\n- `Equinix`: Equinix.\n- `Other`: Other connectivity providers outside the Chinese mainland.\n"},"orderId":{"type":"string","description":"The ID of the order that is placed. **Note:** \u003cspan pulumi-lang-nodejs=\"`orderId`\" pulumi-lang-dotnet=\"`OrderId`\" pulumi-lang-go=\"`orderId`\" pulumi-lang-python=\"`order_id`\" pulumi-lang-yaml=\"`orderId`\" pulumi-lang-java=\"`orderId`\"\u003e`order_id`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e is set to `Enabled`.\n"},"peerLocation":{"type":"string","description":"The geographical location of the data center.\n"},"period":{"type":"integer","description":"The subscription duration. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e is set to `Month`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e is set to `Year`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"physicalConnectionName":{"type":"string","description":"The name of the Express Connect circuit.\n"},"portType":{"type":"string","description":"The port type of the Express Connect circuit. Valid values:\n- `100Base-T`: 100 Mbit/s copper Ethernet port.\n- `1000Base-T`: 1000 Mbit/s copper Ethernet port.\n- `1000Base-LX`: 1000 Mbit/s single-mode optical port (10 km).\n- `10GBase-T`: 10000 Mbit/s copper Ethernet port.\n- `10GBase-LR`: 10000 Mbit/s single-mode optical port (10 km).\n- `40GBase-LR`: 40000 Mbit/s single-mode optical port.\n- `100GBase-LR`: 100000 Mbit/s single-mode optical port.\n\u003e **NOTE:** From version 1.185.0, \u003cspan pulumi-lang-nodejs=\"`portType`\" pulumi-lang-dotnet=\"`PortType`\" pulumi-lang-go=\"`portType`\" pulumi-lang-python=\"`port_type`\" pulumi-lang-yaml=\"`portType`\" pulumi-lang-java=\"`portType`\"\u003e`port_type`\u003c/span\u003e can be set to `40GBase-LR`, `100GBase-LR`. From version 1.230.1, \u003cspan pulumi-lang-nodejs=\"`portType`\" pulumi-lang-dotnet=\"`PortType`\" pulumi-lang-go=\"`portType`\" pulumi-lang-python=\"`port_type`\" pulumi-lang-yaml=\"`portType`\" pulumi-lang-java=\"`portType`\"\u003e`port_type`\u003c/span\u003e cannot be modified.\n"},"pricingCycle":{"type":"string","description":"The billing cycle of the subscription. Default value: `Month`. Valid values: `Month`, `Year`.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e are valid only when \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e is set to `Enabled`.\n"},"redundantPhysicalConnectionId":{"type":"string","description":"The ID of the redundant Express Connect circuit. **NOTE:** From version 1.230.1, \u003cspan pulumi-lang-nodejs=\"`redundantPhysicalConnectionId`\" pulumi-lang-dotnet=\"`RedundantPhysicalConnectionId`\" pulumi-lang-go=\"`redundantPhysicalConnectionId`\" pulumi-lang-python=\"`redundant_physical_connection_id`\" pulumi-lang-yaml=\"`redundantPhysicalConnectionId`\" pulumi-lang-java=\"`redundantPhysicalConnectionId`\"\u003e`redundant_physical_connection_id`\u003c/span\u003e cannot be modified.\n"},"status":{"type":"string","description":"The status of the Express Connect circuit. Valid values: `Confirmed`, `Enabled`, `Canceled`, `Terminated`. **NOTE:** From version 1.230.1, \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e can be set to `Confirmed`. If you want to set \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e to `Enabled`, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e must be set.\n"},"type":{"type":"string","description":"The type of Express Connect circuit. Default value: `VPC`. Valid values: `VPC`.\n"}},"required":["accessPointId","bandwidth","lineOperator","orderId","peerLocation","status","type"],"inputProperties":{"accessPointId":{"type":"string","description":"The access point ID of the Express Connect circuit.\n","willReplaceOnChanges":true},"bandwidth":{"type":"string","description":"The maximum bandwidth of the hosted connection.\n"},"circuitCode":{"type":"string","description":"The circuit code of the Express Connect circuit.\n"},"description":{"type":"string","description":"The description of the Express Connect circuit.\n"},"lineOperator":{"type":"string","description":"The connectivity provider of the Express Connect circuit. Valid values:\n- `CT`: China Telecom.\n- `CU`: China Unicom.\n- `CM`: China Mobile.\n- `CO`: Other connectivity providers in the Chinese mainland.\n- `Equinix`: Equinix.\n- `Other`: Other connectivity providers outside the Chinese mainland.\n"},"peerLocation":{"type":"string","description":"The geographical location of the data center.\n"},"period":{"type":"integer","description":"The subscription duration. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e is set to `Month`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e is set to `Year`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"physicalConnectionName":{"type":"string","description":"The name of the Express Connect circuit.\n"},"portType":{"type":"string","description":"The port type of the Express Connect circuit. Valid values:\n- `100Base-T`: 100 Mbit/s copper Ethernet port.\n- `1000Base-T`: 1000 Mbit/s copper Ethernet port.\n- `1000Base-LX`: 1000 Mbit/s single-mode optical port (10 km).\n- `10GBase-T`: 10000 Mbit/s copper Ethernet port.\n- `10GBase-LR`: 10000 Mbit/s single-mode optical port (10 km).\n- `40GBase-LR`: 40000 Mbit/s single-mode optical port.\n- `100GBase-LR`: 100000 Mbit/s single-mode optical port.\n\u003e **NOTE:** From version 1.185.0, \u003cspan pulumi-lang-nodejs=\"`portType`\" pulumi-lang-dotnet=\"`PortType`\" pulumi-lang-go=\"`portType`\" pulumi-lang-python=\"`port_type`\" pulumi-lang-yaml=\"`portType`\" pulumi-lang-java=\"`portType`\"\u003e`port_type`\u003c/span\u003e can be set to `40GBase-LR`, `100GBase-LR`. From version 1.230.1, \u003cspan pulumi-lang-nodejs=\"`portType`\" pulumi-lang-dotnet=\"`PortType`\" pulumi-lang-go=\"`portType`\" pulumi-lang-python=\"`port_type`\" pulumi-lang-yaml=\"`portType`\" pulumi-lang-java=\"`portType`\"\u003e`port_type`\u003c/span\u003e cannot be modified.\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The billing cycle of the subscription. Default value: `Month`. Valid values: `Month`, `Year`.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e are valid only when \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e is set to `Enabled`.\n"},"redundantPhysicalConnectionId":{"type":"string","description":"The ID of the redundant Express Connect circuit. **NOTE:** From version 1.230.1, \u003cspan pulumi-lang-nodejs=\"`redundantPhysicalConnectionId`\" pulumi-lang-dotnet=\"`RedundantPhysicalConnectionId`\" pulumi-lang-go=\"`redundantPhysicalConnectionId`\" pulumi-lang-python=\"`redundant_physical_connection_id`\" pulumi-lang-yaml=\"`redundantPhysicalConnectionId`\" pulumi-lang-java=\"`redundantPhysicalConnectionId`\"\u003e`redundant_physical_connection_id`\u003c/span\u003e cannot be modified.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Express Connect circuit. Valid values: `Confirmed`, `Enabled`, `Canceled`, `Terminated`. **NOTE:** From version 1.230.1, \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e can be set to `Confirmed`. If you want to set \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e to `Enabled`, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e must be set.\n"},"type":{"type":"string","description":"The type of Express Connect circuit. Default value: `VPC`. Valid values: `VPC`.\n","willReplaceOnChanges":true}},"requiredInputs":["accessPointId","lineOperator"],"stateInputs":{"description":"Input properties used for looking up and filtering PhysicalConnection resources.\n","properties":{"accessPointId":{"type":"string","description":"The access point ID of the Express Connect circuit.\n","willReplaceOnChanges":true},"bandwidth":{"type":"string","description":"The maximum bandwidth of the hosted connection.\n"},"circuitCode":{"type":"string","description":"The circuit code of the Express Connect circuit.\n"},"description":{"type":"string","description":"The description of the Express Connect circuit.\n"},"lineOperator":{"type":"string","description":"The connectivity provider of the Express Connect circuit. Valid values:\n- `CT`: China Telecom.\n- `CU`: China Unicom.\n- `CM`: China Mobile.\n- `CO`: Other connectivity providers in the Chinese mainland.\n- `Equinix`: Equinix.\n- `Other`: Other connectivity providers outside the Chinese mainland.\n"},"orderId":{"type":"string","description":"The ID of the order that is placed. **Note:** \u003cspan pulumi-lang-nodejs=\"`orderId`\" pulumi-lang-dotnet=\"`OrderId`\" pulumi-lang-go=\"`orderId`\" pulumi-lang-python=\"`order_id`\" pulumi-lang-yaml=\"`orderId`\" pulumi-lang-java=\"`orderId`\"\u003e`order_id`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e is set to `Enabled`.\n"},"peerLocation":{"type":"string","description":"The geographical location of the data center.\n"},"period":{"type":"integer","description":"The subscription duration. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e is set to `Month`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n- If \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e is set to `Year`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"},"physicalConnectionName":{"type":"string","description":"The name of the Express Connect circuit.\n"},"portType":{"type":"string","description":"The port type of the Express Connect circuit. Valid values:\n- `100Base-T`: 100 Mbit/s copper Ethernet port.\n- `1000Base-T`: 1000 Mbit/s copper Ethernet port.\n- `1000Base-LX`: 1000 Mbit/s single-mode optical port (10 km).\n- `10GBase-T`: 10000 Mbit/s copper Ethernet port.\n- `10GBase-LR`: 10000 Mbit/s single-mode optical port (10 km).\n- `40GBase-LR`: 40000 Mbit/s single-mode optical port.\n- `100GBase-LR`: 100000 Mbit/s single-mode optical port.\n\u003e **NOTE:** From version 1.185.0, \u003cspan pulumi-lang-nodejs=\"`portType`\" pulumi-lang-dotnet=\"`PortType`\" pulumi-lang-go=\"`portType`\" pulumi-lang-python=\"`port_type`\" pulumi-lang-yaml=\"`portType`\" pulumi-lang-java=\"`portType`\"\u003e`port_type`\u003c/span\u003e can be set to `40GBase-LR`, `100GBase-LR`. From version 1.230.1, \u003cspan pulumi-lang-nodejs=\"`portType`\" pulumi-lang-dotnet=\"`PortType`\" pulumi-lang-go=\"`portType`\" pulumi-lang-python=\"`port_type`\" pulumi-lang-yaml=\"`portType`\" pulumi-lang-java=\"`portType`\"\u003e`port_type`\u003c/span\u003e cannot be modified.\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The billing cycle of the subscription. Default value: `Month`. Valid values: `Month`, `Year`.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e are valid only when \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e is set to `Enabled`.\n"},"redundantPhysicalConnectionId":{"type":"string","description":"The ID of the redundant Express Connect circuit. **NOTE:** From version 1.230.1, \u003cspan pulumi-lang-nodejs=\"`redundantPhysicalConnectionId`\" pulumi-lang-dotnet=\"`RedundantPhysicalConnectionId`\" pulumi-lang-go=\"`redundantPhysicalConnectionId`\" pulumi-lang-python=\"`redundant_physical_connection_id`\" pulumi-lang-yaml=\"`redundantPhysicalConnectionId`\" pulumi-lang-java=\"`redundantPhysicalConnectionId`\"\u003e`redundant_physical_connection_id`\u003c/span\u003e cannot be modified.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Express Connect circuit. Valid values: `Confirmed`, `Enabled`, `Canceled`, `Terminated`. **NOTE:** From version 1.230.1, \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e can be set to `Confirmed`. If you want to set \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e to `Enabled`, \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e must be set.\n"},"type":{"type":"string","description":"The type of Express Connect circuit. Default value: `VPC`. Valid values: `VPC`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:expressconnect/routerExpressConnectRouter:RouterExpressConnectRouter":{"description":"Provides a Express Connect Router Express Connect Router resource. Express Connect Router.\n\nFor information about Express Connect Router Express Connect Router and how to use it, see [What is Express Connect Router](https://next.api.alibabacloud.com/api/ExpressConnectRouter/2023-09-01/CreateExpressConnectRouter).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultM9YxGW = new alicloud.expressconnect.RouterExpressConnectRouter(\"defaultM9YxGW\", {alibabaSideAsn: 65533});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_m9_yx_gw = alicloud.expressconnect.RouterExpressConnectRouter(\"defaultM9YxGW\", alibaba_side_asn=65533)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultM9YxGW = new AliCloud.ExpressConnect.RouterExpressConnectRouter(\"defaultM9YxGW\", new()\n    {\n        AlibabaSideAsn = 65533,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := expressconnect.NewRouterExpressConnectRouter(ctx, \"defaultM9YxGW\", \u0026expressconnect.RouterExpressConnectRouterArgs{\n\t\t\tAlibabaSideAsn: pulumi.Int(65533),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.RouterExpressConnectRouter;\nimport com.pulumi.alicloud.expressconnect.RouterExpressConnectRouterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultM9YxGW = new RouterExpressConnectRouter(\"defaultM9YxGW\", RouterExpressConnectRouterArgs.builder()\n            .alibabaSideAsn(65533)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultM9YxGW:\n    type: alicloud:expressconnect:RouterExpressConnectRouter\n    properties:\n      alibabaSideAsn: '65533'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.expressconnect.RouterExpressConnectRouter`\" pulumi-lang-dotnet=\"`alicloud.expressconnect.RouterExpressConnectRouter`\" pulumi-lang-go=\"`expressconnect.RouterExpressConnectRouter`\" pulumi-lang-python=\"`expressconnect.RouterExpressConnectRouter`\" pulumi-lang-yaml=\"`alicloud.expressconnect.RouterExpressConnectRouter`\" pulumi-lang-java=\"`alicloud.expressconnect.RouterExpressConnectRouter`\"\u003e`alicloud.expressconnect.RouterExpressConnectRouter`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.expressconnect.RouterExpressConnectRouter`\" pulumi-lang-dotnet=\"`alicloud.expressconnect.RouterExpressConnectRouter`\" pulumi-lang-go=\"`expressconnect.RouterExpressConnectRouter`\" pulumi-lang-python=\"`expressconnect.RouterExpressConnectRouter`\" pulumi-lang-yaml=\"`alicloud.expressconnect.RouterExpressConnectRouter`\" pulumi-lang-java=\"`alicloud.expressconnect.RouterExpressConnectRouter`\"\u003e`alicloud.expressconnect.RouterExpressConnectRouter`\u003c/span\u003e resource allows you to manage  \u003cspan pulumi-lang-nodejs=\"`ecrId \" pulumi-lang-dotnet=\"`EcrId \" pulumi-lang-go=\"`ecrId \" pulumi-lang-python=\"`ecr_id \" pulumi-lang-yaml=\"`ecrId \" pulumi-lang-java=\"`ecrId \"\u003e`ecr_id \u003c/span\u003e= \"\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Router Express Connect Router can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:expressconnect/routerExpressConnectRouter:RouterExpressConnectRouter example \u003cid\u003e\n```\n\n","properties":{"alibabaSideAsn":{"type":"integer","description":"ASN representing resources.\n"},"createTime":{"type":"string","description":"Represents the creation time of the resource.\n"},"description":{"type":"string","description":"Represents the description of the leased line gateway.\n"},"ecrName":{"type":"string","description":"Name of the Gateway representing the leased line.\n"},"regions":{"type":"array","items":{"$ref":"#/types/alicloud:expressconnect/RouterExpressConnectRouterRegion:RouterExpressConnectRouterRegion"},"description":"List of regions representing leased line gateways. See \u003cspan pulumi-lang-nodejs=\"`regions`\" pulumi-lang-dotnet=\"`Regions`\" pulumi-lang-go=\"`regions`\" pulumi-lang-python=\"`regions`\" pulumi-lang-yaml=\"`regions`\" pulumi-lang-java=\"`regions`\"\u003e`regions`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the ECR instance belongs.\n- A string consisting of letters, numbers, hyphens (-), and underscores (_), and the string length can be 0 to 64 characters.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"required":["alibabaSideAsn","createTime","regions","resourceGroupId","status"],"inputProperties":{"alibabaSideAsn":{"type":"integer","description":"ASN representing resources.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Represents the description of the leased line gateway.\n"},"ecrName":{"type":"string","description":"Name of the Gateway representing the leased line.\n"},"regions":{"type":"array","items":{"$ref":"#/types/alicloud:expressconnect/RouterExpressConnectRouterRegion:RouterExpressConnectRouterRegion"},"description":"List of regions representing leased line gateways. See \u003cspan pulumi-lang-nodejs=\"`regions`\" pulumi-lang-dotnet=\"`Regions`\" pulumi-lang-go=\"`regions`\" pulumi-lang-python=\"`regions`\" pulumi-lang-yaml=\"`regions`\" pulumi-lang-java=\"`regions`\"\u003e`regions`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the ECR instance belongs.\n- A string consisting of letters, numbers, hyphens (-), and underscores (_), and the string length can be 0 to 64 characters.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"requiredInputs":["alibabaSideAsn"],"stateInputs":{"description":"Input properties used for looking up and filtering RouterExpressConnectRouter resources.\n","properties":{"alibabaSideAsn":{"type":"integer","description":"ASN representing resources.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"Represents the creation time of the resource.\n"},"description":{"type":"string","description":"Represents the description of the leased line gateway.\n"},"ecrName":{"type":"string","description":"Name of the Gateway representing the leased line.\n"},"regions":{"type":"array","items":{"$ref":"#/types/alicloud:expressconnect/RouterExpressConnectRouterRegion:RouterExpressConnectRouterRegion"},"description":"List of regions representing leased line gateways. See \u003cspan pulumi-lang-nodejs=\"`regions`\" pulumi-lang-dotnet=\"`Regions`\" pulumi-lang-go=\"`regions`\" pulumi-lang-python=\"`regions`\" pulumi-lang-yaml=\"`regions`\" pulumi-lang-java=\"`regions`\"\u003e`regions`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the ECR instance belongs.\n- A string consisting of letters, numbers, hyphens (-), and underscores (_), and the string length can be 0 to 64 characters.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object"}},"alicloud:expressconnect/routerGrantAssociation:RouterGrantAssociation":{"description":"Provides a Express Connect Router Grant Association resource.\n\nNetwork instances authorized to the leased line Gateway.\n\nFor information about Express Connect Router Grant Association and how to use it, see [What is Grant Association](https://www.alibabacloud.com/help/en/express-connect/developer-reference/api-expressconnectrouter-2023-09-01-grantinstancetoexpressconnectrouter).\n\n\u003e **NOTE:** Available since v1.239.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst vpcId = config.get(\"vpcId\") || \"vpc-xxx\";\nconst ecrOwnerUid = config.get(\"ecrOwnerUid\") || \"18xxx\";\nconst ecrId = config.get(\"ecrId\") || \"ecr-xxx\";\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst _default = new alicloud.expressconnect.RouterGrantAssociation(\"default\", {\n    ecrId: ecrId,\n    instanceRegionId: region,\n    instanceId: vpcId,\n    ecrOwnerAliUid: ecrOwnerUid,\n    instanceType: \"VPC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nvpc_id = config.get(\"vpcId\")\nif vpc_id is None:\n    vpc_id = \"vpc-xxx\"\necr_owner_uid = config.get(\"ecrOwnerUid\")\nif ecr_owner_uid is None:\n    ecr_owner_uid = \"18xxx\"\necr_id = config.get(\"ecrId\")\nif ecr_id is None:\n    ecr_id = \"ecr-xxx\"\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\ndefault = alicloud.expressconnect.RouterGrantAssociation(\"default\",\n    ecr_id=ecr_id,\n    instance_region_id=region,\n    instance_id=vpc_id,\n    ecr_owner_ali_uid=ecr_owner_uid,\n    instance_type=\"VPC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var vpcId = config.Get(\"vpcId\") ?? \"vpc-xxx\";\n    var ecrOwnerUid = config.Get(\"ecrOwnerUid\") ?? \"18xxx\";\n    var ecrId = config.Get(\"ecrId\") ?? \"ecr-xxx\";\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var @default = new AliCloud.ExpressConnect.RouterGrantAssociation(\"default\", new()\n    {\n        EcrId = ecrId,\n        InstanceRegionId = region,\n        InstanceId = vpcId,\n        EcrOwnerAliUid = ecrOwnerUid,\n        InstanceType = \"VPC\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tvpcId := \"vpc-xxx\"\n\t\tif param := cfg.Get(\"vpcId\"); param != \"\" {\n\t\t\tvpcId = param\n\t\t}\n\t\tecrOwnerUid := \"18xxx\"\n\t\tif param := cfg.Get(\"ecrOwnerUid\"); param != \"\" {\n\t\t\tecrOwnerUid = param\n\t\t}\n\t\tecrId := \"ecr-xxx\"\n\t\tif param := cfg.Get(\"ecrId\"); param != \"\" {\n\t\t\tecrId = param\n\t\t}\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\t_, err := expressconnect.NewRouterGrantAssociation(ctx, \"default\", \u0026expressconnect.RouterGrantAssociationArgs{\n\t\t\tEcrId:            pulumi.String(ecrId),\n\t\t\tInstanceRegionId: pulumi.String(region),\n\t\t\tInstanceId:       pulumi.String(vpcId),\n\t\t\tEcrOwnerAliUid:   pulumi.String(ecrOwnerUid),\n\t\t\tInstanceType:     pulumi.String(\"VPC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.RouterGrantAssociation;\nimport com.pulumi.alicloud.expressconnect.RouterGrantAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var vpcId = config.get(\"vpcId\").orElse(\"vpc-xxx\");\n        final var ecrOwnerUid = config.get(\"ecrOwnerUid\").orElse(\"18xxx\");\n        final var ecrId = config.get(\"ecrId\").orElse(\"ecr-xxx\");\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        var default_ = new RouterGrantAssociation(\"default\", RouterGrantAssociationArgs.builder()\n            .ecrId(ecrId)\n            .instanceRegionId(region)\n            .instanceId(vpcId)\n            .ecrOwnerAliUid(ecrOwnerUid)\n            .instanceType(\"VPC\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  vpcId:\n    type: string\n    default: vpc-xxx\n  ecrOwnerUid:\n    type: string\n    default: 18xxx\n  ecrId:\n    type: string\n    default: ecr-xxx\n  region:\n    type: string\n    default: cn-hangzhou\nresources:\n  default:\n    type: alicloud:expressconnect:RouterGrantAssociation\n    properties:\n      ecrId: ${ecrId}\n      instanceRegionId: ${region}\n      instanceId: ${vpcId}\n      ecrOwnerAliUid: ${ecrOwnerUid}\n      instanceType: VPC\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Router Grant Association can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:expressconnect/routerGrantAssociation:RouterGrantAssociation example \u003cecr_id\u003e:\u003cinstance_id\u003e:\u003cinstance_region_id\u003e:\u003cecr_owner_ali_uid\u003e:\u003cinstance_type\u003e\n```\n\n","properties":{"ecrId":{"type":"string","description":"The ID of the associated Leased Line Gateway instance.\n"},"ecrOwnerAliUid":{"type":"integer","description":"The ID of the Alibaba Cloud account (primary account) to which the leased line gateway instance is authorized.\n"},"instanceId":{"type":"string","description":"The ID of the network instance.\n"},"instanceRegionId":{"type":"string","description":"The ID of the region where the authorized network instance is located.\n"},"instanceType":{"type":"string","description":"The type of the network instance. Value:\n- `VBR`: the VBR instance.\n- `VPC`: VPC instance.\n"},"status":{"type":"string","description":"The status of the resource\n"}},"required":["ecrId","ecrOwnerAliUid","instanceId","instanceRegionId","instanceType","status"],"inputProperties":{"ecrId":{"type":"string","description":"The ID of the associated Leased Line Gateway instance.\n","willReplaceOnChanges":true},"ecrOwnerAliUid":{"type":"integer","description":"The ID of the Alibaba Cloud account (primary account) to which the leased line gateway instance is authorized.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the network instance.\n","willReplaceOnChanges":true},"instanceRegionId":{"type":"string","description":"The ID of the region where the authorized network instance is located.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of the network instance. Value:\n- `VBR`: the VBR instance.\n- `VPC`: VPC instance.\n","willReplaceOnChanges":true}},"requiredInputs":["ecrId","ecrOwnerAliUid","instanceId","instanceRegionId","instanceType"],"stateInputs":{"description":"Input properties used for looking up and filtering RouterGrantAssociation resources.\n","properties":{"ecrId":{"type":"string","description":"The ID of the associated Leased Line Gateway instance.\n","willReplaceOnChanges":true},"ecrOwnerAliUid":{"type":"integer","description":"The ID of the Alibaba Cloud account (primary account) to which the leased line gateway instance is authorized.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the network instance.\n","willReplaceOnChanges":true},"instanceRegionId":{"type":"string","description":"The ID of the region where the authorized network instance is located.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of the network instance. Value:\n- `VBR`: the VBR instance.\n- `VPC`: VPC instance.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object"}},"alicloud:expressconnect/routerInterface:RouterInterface":{"description":"Provides a Express Connect Router Interface resource.\n\n\n\nFor information about Express Connect Router Interface and how to use it, see [What is Router Interface](https://next.api.alibabacloud.com/document/Vpc/2016-04-28/CreateRouterInterface).\n\n\u003e **NOTE:** Available since v1.199.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst _this = alicloud.getAccount({});\nconst defaultGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst nameRegex = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"^preserved-NODELETING-JG\",\n});\nconst defaultGetZones = alicloud.alb.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n    enableIpv6: true,\n});\nconst zoneA = new alicloud.vpc.Switch(\"zone_a\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n    ipv6CidrBlockMask: 6,\n});\nconst defaultVirtualBorderRouter = new alicloud.expressconnect.VirtualBorderRouter(\"default\", {\n    physicalConnectionId: nameRegex.then(nameRegex =\u003e nameRegex.connections?.[0]?.id),\n    vlanId: 1001,\n    peerGatewayIp: \"192.168.254.2\",\n    peeringSubnetMask: \"255.255.255.0\",\n    localGatewayIp: \"192.168.254.1\",\n});\nconst defaultRouterInterface = new alicloud.expressconnect.RouterInterface(\"default\", {\n    autoRenew: true,\n    spec: \"Mini.2\",\n    oppositeRouterType: \"VRouter\",\n    routerId: defaultVirtualBorderRouter.id,\n    description: \"terraform-example\",\n    accessPointId: \"ap-cn-hangzhou-jg-B\",\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    period: 1,\n    oppositeRouterId: defaultNetwork.routerId,\n    role: \"InitiatingSide\",\n    paymentType: \"PayAsYouGo\",\n    autoPay: true,\n    oppositeInterfaceOwnerId: _this.then(_this =\u003e _this.id),\n    routerInterfaceName: name,\n    fastLinkMode: true,\n    oppositeRegionId: \"cn-hangzhou\",\n    routerType: \"VBR\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\ndefault = alicloud.resourcemanager.get_resource_groups()\nthis = alicloud.get_account()\ndefault_get_regions = alicloud.get_regions(current=True)\nname_regex = alicloud.expressconnect.get_physical_connections(name_regex=\"^preserved-NODELETING-JG\")\ndefault_get_zones = alicloud.alb.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\",\n    enable_ipv6=True)\nzone_a = alicloud.vpc.Switch(\"zone_a\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default_get_zones.zones[0].id,\n    ipv6_cidr_block_mask=6)\ndefault_virtual_border_router = alicloud.expressconnect.VirtualBorderRouter(\"default\",\n    physical_connection_id=name_regex.connections[0].id,\n    vlan_id=1001,\n    peer_gateway_ip=\"192.168.254.2\",\n    peering_subnet_mask=\"255.255.255.0\",\n    local_gateway_ip=\"192.168.254.1\")\ndefault_router_interface = alicloud.expressconnect.RouterInterface(\"default\",\n    auto_renew=True,\n    spec=\"Mini.2\",\n    opposite_router_type=\"VRouter\",\n    router_id=default_virtual_border_router.id,\n    description=\"terraform-example\",\n    access_point_id=\"ap-cn-hangzhou-jg-B\",\n    resource_group_id=default.ids[0],\n    period=1,\n    opposite_router_id=default_network.router_id,\n    role=\"InitiatingSide\",\n    payment_type=\"PayAsYouGo\",\n    auto_pay=True,\n    opposite_interface_owner_id=this.id,\n    router_interface_name=name,\n    fast_link_mode=True,\n    opposite_region_id=\"cn-hangzhou\",\n    router_type=\"VBR\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var @this = AliCloud.GetAccount.Invoke();\n\n    var defaultGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var nameRegex = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"^preserved-NODELETING-JG\",\n    });\n\n    var defaultGetZones = AliCloud.Alb.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n        EnableIpv6 = true,\n    });\n\n    var zoneA = new AliCloud.Vpc.Switch(\"zone_a\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Ipv6CidrBlockMask = 6,\n    });\n\n    var defaultVirtualBorderRouter = new AliCloud.ExpressConnect.VirtualBorderRouter(\"default\", new()\n    {\n        PhysicalConnectionId = nameRegex.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Connections[0]?.Id),\n        VlanId = 1001,\n        PeerGatewayIp = \"192.168.254.2\",\n        PeeringSubnetMask = \"255.255.255.0\",\n        LocalGatewayIp = \"192.168.254.1\",\n    });\n\n    var defaultRouterInterface = new AliCloud.ExpressConnect.RouterInterface(\"default\", new()\n    {\n        AutoRenew = true,\n        Spec = \"Mini.2\",\n        OppositeRouterType = \"VRouter\",\n        RouterId = defaultVirtualBorderRouter.Id,\n        Description = \"terraform-example\",\n        AccessPointId = \"ap-cn-hangzhou-jg-B\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        Period = 1,\n        OppositeRouterId = defaultNetwork.RouterId,\n        Role = \"InitiatingSide\",\n        PaymentType = \"PayAsYouGo\",\n        AutoPay = true,\n        OppositeInterfaceOwnerId = @this.Apply(@this =\u003e @this.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        RouterInterfaceName = name,\n        FastLinkMode = true,\n        OppositeRegionId = \"cn-hangzhou\",\n        RouterType = \"VBR\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthis, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnameRegex, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^preserved-NODELETING-JG\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alb.GetZones(ctx, \u0026alb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:    pulumi.String(name),\n\t\t\tCidrBlock:  pulumi.String(\"172.16.0.0/16\"),\n\t\t\tEnableIpv6: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewSwitch(ctx, \"zone_a\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName:       pulumi.String(name),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t\tCidrBlock:         pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:            pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\tIpv6CidrBlockMask: pulumi.Int(6),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVirtualBorderRouter, err := expressconnect.NewVirtualBorderRouter(ctx, \"default\", \u0026expressconnect.VirtualBorderRouterArgs{\n\t\t\tPhysicalConnectionId: pulumi.String(nameRegex.Connections[0].Id),\n\t\t\tVlanId:               pulumi.Int(1001),\n\t\t\tPeerGatewayIp:        pulumi.String(\"192.168.254.2\"),\n\t\t\tPeeringSubnetMask:    pulumi.String(\"255.255.255.0\"),\n\t\t\tLocalGatewayIp:       pulumi.String(\"192.168.254.1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = expressconnect.NewRouterInterface(ctx, \"default\", \u0026expressconnect.RouterInterfaceArgs{\n\t\t\tAutoRenew:                pulumi.Bool(true),\n\t\t\tSpec:                     pulumi.String(\"Mini.2\"),\n\t\t\tOppositeRouterType:       pulumi.String(\"VRouter\"),\n\t\t\tRouterId:                 defaultVirtualBorderRouter.ID(),\n\t\t\tDescription:              pulumi.String(\"terraform-example\"),\n\t\t\tAccessPointId:            pulumi.String(\"ap-cn-hangzhou-jg-B\"),\n\t\t\tResourceGroupId:          pulumi.String(_default.Ids[0]),\n\t\t\tPeriod:                   pulumi.Int(1),\n\t\t\tOppositeRouterId:         defaultNetwork.RouterId,\n\t\t\tRole:                     pulumi.String(\"InitiatingSide\"),\n\t\t\tPaymentType:              pulumi.String(\"PayAsYouGo\"),\n\t\t\tAutoPay:                  pulumi.Bool(true),\n\t\t\tOppositeInterfaceOwnerId: pulumi.String(this.Id),\n\t\t\tRouterInterfaceName:      pulumi.String(name),\n\t\t\tFastLinkMode:             pulumi.Bool(true),\n\t\t\tOppositeRegionId:         pulumi.String(\"cn-hangzhou\"),\n\t\t\tRouterType:               pulumi.String(\"VBR\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouter;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouterArgs;\nimport com.pulumi.alicloud.expressconnect.RouterInterface;\nimport com.pulumi.alicloud.expressconnect.RouterInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var this = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var defaultGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var nameRegex = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"^preserved-NODELETING-JG\")\n            .build());\n\n        final var defaultGetZones = AlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .enableIpv6(true)\n            .build());\n\n        var zoneA = new Switch(\"zoneA\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(defaultGetZones.zones()[0].id())\n            .ipv6CidrBlockMask(6)\n            .build());\n\n        var defaultVirtualBorderRouter = new VirtualBorderRouter(\"defaultVirtualBorderRouter\", VirtualBorderRouterArgs.builder()\n            .physicalConnectionId(nameRegex.connections()[0].id())\n            .vlanId(1001)\n            .peerGatewayIp(\"192.168.254.2\")\n            .peeringSubnetMask(\"255.255.255.0\")\n            .localGatewayIp(\"192.168.254.1\")\n            .build());\n\n        var defaultRouterInterface = new RouterInterface(\"defaultRouterInterface\", RouterInterfaceArgs.builder()\n            .autoRenew(true)\n            .spec(\"Mini.2\")\n            .oppositeRouterType(\"VRouter\")\n            .routerId(defaultVirtualBorderRouter.id())\n            .description(\"terraform-example\")\n            .accessPointId(\"ap-cn-hangzhou-jg-B\")\n            .resourceGroupId(default_.ids()[0])\n            .period(1)\n            .oppositeRouterId(defaultNetwork.routerId())\n            .role(\"InitiatingSide\")\n            .paymentType(\"PayAsYouGo\")\n            .autoPay(true)\n            .oppositeInterfaceOwnerId(this_.id())\n            .routerInterfaceName(name)\n            .fastLinkMode(true)\n            .oppositeRegionId(\"cn-hangzhou\")\n            .routerType(\"VBR\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n      enableIpv6: 'true'\n  zoneA:\n    type: alicloud:vpc:Switch\n    name: zone_a\n    properties:\n      vswitchName: ${name}\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${defaultGetZones.zones[0].id}\n      ipv6CidrBlockMask: '6'\n  defaultVirtualBorderRouter:\n    type: alicloud:expressconnect:VirtualBorderRouter\n    name: default\n    properties:\n      physicalConnectionId: ${nameRegex.connections[0].id}\n      vlanId: '1001'\n      peerGatewayIp: 192.168.254.2\n      peeringSubnetMask: 255.255.255.0\n      localGatewayIp: 192.168.254.1\n  defaultRouterInterface:\n    type: alicloud:expressconnect:RouterInterface\n    name: default\n    properties:\n      autoRenew: 'true'\n      spec: Mini.2\n      oppositeRouterType: VRouter\n      routerId: ${defaultVirtualBorderRouter.id}\n      description: terraform-example\n      accessPointId: ap-cn-hangzhou-jg-B\n      resourceGroupId: ${default.ids[0]}\n      period: '1'\n      oppositeRouterId: ${defaultNetwork.routerId}\n      role: InitiatingSide\n      paymentType: PayAsYouGo\n      autoPay: 'true'\n      oppositeInterfaceOwnerId: ${this.id}\n      routerInterfaceName: ${name}\n      fastLinkMode: 'true'\n      oppositeRegionId: cn-hangzhou\n      routerType: VBR\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  this:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  defaultGetRegions:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  nameRegex:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: ^preserved-NODELETING-JG\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:alb:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Router Interface can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:expressconnect/routerInterface:RouterInterface example \u003cid\u003e\n```\n\n","properties":{"accessPointId":{"type":"string","description":"Access point ID\n"},"autoPay":{"type":"boolean","description":". Field 'name' has been deprecated from provider version 1.263.0.\n","deprecationMessage":"Field 'auto_pay' has been deprecated since provider version 1.263.0."},"autoRenew":{"type":"boolean","description":"Whether to enable automatic renewal. Value:\n"},"bandwidth":{"type":"integer","description":"The bandwidth of the router interface\n"},"businessStatus":{"type":"string","description":"The service status of the router interface.\n"},"connectedTime":{"type":"string","description":"Time the connection was established\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"crossBorder":{"type":"boolean","description":"CrossBorder\n"},"deleteHealthCheckIp":{"type":"boolean","description":"Whether to delete the health check IP address configured on the router interface. Value:\n"},"description":{"type":"string","description":"The router interface description. It must be 2 to 256 characters in length and must start with a letter or a Chinese character, but cannot start with http:// or https.\n"},"endTime":{"type":"string","description":"End Time of Prepaid\n"},"fastLinkMode":{"type":"boolean","description":"Whether the VBR router interface is created by using the fast connection mode. The fast connection mode can automatically complete the connection after the VBR and the router interfaces at both ends of the VPC are created. Value:\n"},"hasReservationData":{"type":"string","description":"Whether there is renewal data\n"},"hcRate":{"type":"integer","description":"Health check rate. Unit: milliseconds. The recommend value is 2000. Indicates the time interval for sending continuous detection packets during a specified health check.\n"},"hcThreshold":{"type":"string","description":"Health check threshold. Unit: One. The recommend value is 8. Indicates the number of detection packets sent during the specified health check.\n"},"healthCheckSourceIp":{"type":"string","description":"Health check source IP address\n"},"healthCheckTargetIp":{"type":"string","description":"Health check destination IP address\n"},"oppositeAccessPointId":{"type":"string","description":"Peer access point ID\n"},"oppositeBandwidth":{"type":"integer","description":"opposite bandwidth\n"},"oppositeInterfaceBusinessStatus":{"type":"string","description":"The service status of the router interface on the opposite end of the connection.\n"},"oppositeInterfaceId":{"type":"string","description":". Field 'router_table_id' has been deprecated from provider version 1.263.0.\n","deprecationMessage":"Field 'opposite_interface_id' has been deprecated since provider version 1.263.0."},"oppositeInterfaceOwnerId":{"type":"string","description":"Account ID of the peer router interface\n"},"oppositeInterfaceSpec":{"type":"string","description":"Specifications of the interface of the peer router.\n"},"oppositeInterfaceStatus":{"type":"string","description":"The status of the router interface on the peer of the connection.\n"},"oppositeRegionId":{"type":"string","description":"Region of the connection peer\n"},"oppositeRouterId":{"type":"string","description":"The ID of the router to which the opposite router interface belongs.\n"},"oppositeRouterType":{"type":"string","description":"The router type associated with the peer router interface. Valid values:\n- VRouter: VPC router.\n- VBR: Virtual Border Router.\n"},"oppositeVpcInstanceId":{"type":"string","description":"The peer VPC ID\n"},"paymentType":{"type":"string","description":"The payment method of the router interface. Valid values:\n- Subscription : PrePaid.\n- PayAsYouGo : PostPaid.\n"},"period":{"type":"integer","description":"Purchase duration, value:\n- When you choose to pay on a monthly basis, the value range is **1 to 9**.\n- When you choose to pay per year, the value range is **1 to 3**.\n\n\u003e **NOTE:**  \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is required when the value of the parameter \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"pricingCycle":{"type":"string","description":"The billing cycle of the prepaid fee. Valid values:\n- `Month` (default): monthly payment.\n- `Year`: Pay per Year.\n\n\n\u003e **NOTE:**  \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is required when the value of the parameter \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"reservationActiveTime":{"type":"string","description":"ReservationActiveTime\n"},"reservationBandwidth":{"type":"string","description":"Renew Bandwidth\n"},"reservationInternetChargeType":{"type":"string","description":"Payment Type for Renewal\n"},"reservationOrderType":{"type":"string","description":"Renewal Order Type\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"role":{"type":"string","description":"The role of the router interface. Valid values:\n- InitiatingSide : the initiator of the connection.\n- AcceptingSide : Connect to the receiving end.\n"},"routerId":{"type":"string","description":"The ID of the router where the route entry is located.\n"},"routerInterfaceId":{"type":"string","description":"The first ID of the resource\n"},"routerInterfaceName":{"type":"string","description":"Resource attribute field representing the resource name. It must be 2 to 128 characters in length and must start with a letter or a Chinese character, but cannot start with http:// or https.\n"},"routerType":{"type":"string","description":"The type of the router where the routing table resides. Valid values:\n- VRouter:VPC router\n- VBR: Border Router\n"},"spec":{"type":"string","description":"The specification of the router interface. The available specifications and corresponding bandwidth values are as follows:\n- Mini.2: 2 Mbps\n- Mini.5: 5 Mbps\n- Small.1: 10 Mbps\n- Small.2: 20 Mbps\n- Small.5: 50 Mbps\n- Middle.1: 100 Mbps\n- Middle.2: 200 Mbps\n- Middle.5: 500 Mbps\n- Large.1: 1000 Mbps\n- Large.2: 2000 Mbps\n- Large.5: 5000 Mbps\n- Xlarge.1: 10000 Mbps\n\nWhen the Role is AcceptingSide (connecting to the receiving end), the Spec value is Negative, which means that the specification is not involved in creating the receiving end router interface.\n"},"status":{"type":"string","description":"Resource attribute fields that represent the status of the resource. Value range:\n- Idle : Initialize.\n- Connecting : the initiator is in the process of Connecting.\n- AcceptingConnecting : the receiving end is being connected.\n- Activating : Restoring.\n- Active : Normal.\n- Modifying : Modifying.\n- Deactivating : Freezing.\n- Inactive : Frozen.\n- Deleting : Deleting.\n- Deleted : Deleted.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"},"vpcInstanceId":{"type":"string","description":"ID of the local VPC in the peering connection\n"}},"required":["bandwidth","businessStatus","connectedTime","createTime","crossBorder","endTime","hasReservationData","oppositeBandwidth","oppositeInterfaceBusinessStatus","oppositeInterfaceId","oppositeInterfaceSpec","oppositeInterfaceStatus","oppositeRegionId","oppositeRouterType","oppositeVpcInstanceId","paymentType","reservationActiveTime","reservationBandwidth","reservationInternetChargeType","reservationOrderType","resourceGroupId","role","routerId","routerInterfaceId","routerType","spec","status","vpcInstanceId"],"inputProperties":{"accessPointId":{"type":"string","description":"Access point ID\n","willReplaceOnChanges":true},"autoPay":{"type":"boolean","description":". Field 'name' has been deprecated from provider version 1.263.0.\n","deprecationMessage":"Field 'auto_pay' has been deprecated since provider version 1.263.0."},"autoRenew":{"type":"boolean","description":"Whether to enable automatic renewal. Value:\n"},"deleteHealthCheckIp":{"type":"boolean","description":"Whether to delete the health check IP address configured on the router interface. Value:\n"},"description":{"type":"string","description":"The router interface description. It must be 2 to 256 characters in length and must start with a letter or a Chinese character, but cannot start with http:// or https.\n"},"fastLinkMode":{"type":"boolean","description":"Whether the VBR router interface is created by using the fast connection mode. The fast connection mode can automatically complete the connection after the VBR and the router interfaces at both ends of the VPC are created. Value:\n","willReplaceOnChanges":true},"hcRate":{"type":"integer","description":"Health check rate. Unit: milliseconds. The recommend value is 2000. Indicates the time interval for sending continuous detection packets during a specified health check.\n"},"hcThreshold":{"type":"string","description":"Health check threshold. Unit: One. The recommend value is 8. Indicates the number of detection packets sent during the specified health check.\n"},"healthCheckSourceIp":{"type":"string","description":"Health check source IP address\n"},"healthCheckTargetIp":{"type":"string","description":"Health check destination IP address\n"},"oppositeAccessPointId":{"type":"string","description":"Peer access point ID\n","willReplaceOnChanges":true},"oppositeInterfaceId":{"type":"string","description":". Field 'router_table_id' has been deprecated from provider version 1.263.0.\n","deprecationMessage":"Field 'opposite_interface_id' has been deprecated since provider version 1.263.0."},"oppositeInterfaceOwnerId":{"type":"string","description":"Account ID of the peer router interface\n","willReplaceOnChanges":true},"oppositeRegionId":{"type":"string","description":"Region of the connection peer\n","willReplaceOnChanges":true},"oppositeRouterId":{"type":"string","description":"The ID of the router to which the opposite router interface belongs.\n","willReplaceOnChanges":true},"oppositeRouterType":{"type":"string","description":"The router type associated with the peer router interface. Valid values:\n- VRouter: VPC router.\n- VBR: Virtual Border Router.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The payment method of the router interface. Valid values:\n- Subscription : PrePaid.\n- PayAsYouGo : PostPaid.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Purchase duration, value:\n- When you choose to pay on a monthly basis, the value range is **1 to 9**.\n- When you choose to pay per year, the value range is **1 to 3**.\n\n\u003e **NOTE:**  \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is required when the value of the parameter \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"pricingCycle":{"type":"string","description":"The billing cycle of the prepaid fee. Valid values:\n- `Month` (default): monthly payment.\n- `Year`: Pay per Year.\n\n\n\u003e **NOTE:**  \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is required when the value of the parameter \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"role":{"type":"string","description":"The role of the router interface. Valid values:\n- InitiatingSide : the initiator of the connection.\n- AcceptingSide : Connect to the receiving end.\n","willReplaceOnChanges":true},"routerId":{"type":"string","description":"The ID of the router where the route entry is located.\n","willReplaceOnChanges":true},"routerInterfaceName":{"type":"string","description":"Resource attribute field representing the resource name. It must be 2 to 128 characters in length and must start with a letter or a Chinese character, but cannot start with http:// or https.\n"},"routerType":{"type":"string","description":"The type of the router where the routing table resides. Valid values:\n- VRouter:VPC router\n- VBR: Border Router\n","willReplaceOnChanges":true},"spec":{"type":"string","description":"The specification of the router interface. The available specifications and corresponding bandwidth values are as follows:\n- Mini.2: 2 Mbps\n- Mini.5: 5 Mbps\n- Small.1: 10 Mbps\n- Small.2: 20 Mbps\n- Small.5: 50 Mbps\n- Middle.1: 100 Mbps\n- Middle.2: 200 Mbps\n- Middle.5: 500 Mbps\n- Large.1: 1000 Mbps\n- Large.2: 2000 Mbps\n- Large.5: 5000 Mbps\n- Xlarge.1: 10000 Mbps\n\nWhen the Role is AcceptingSide (connecting to the receiving end), the Spec value is Negative, which means that the specification is not involved in creating the receiving end router interface.\n"},"status":{"type":"string","description":"Resource attribute fields that represent the status of the resource. Value range:\n- Idle : Initialize.\n- Connecting : the initiator is in the process of Connecting.\n- AcceptingConnecting : the receiving end is being connected.\n- Activating : Restoring.\n- Active : Normal.\n- Modifying : Modifying.\n- Deactivating : Freezing.\n- Inactive : Frozen.\n- Deleting : Deleting.\n- Deleted : Deleted.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"requiredInputs":["oppositeRegionId","role","routerId","routerType","spec"],"stateInputs":{"description":"Input properties used for looking up and filtering RouterInterface resources.\n","properties":{"accessPointId":{"type":"string","description":"Access point ID\n","willReplaceOnChanges":true},"autoPay":{"type":"boolean","description":". Field 'name' has been deprecated from provider version 1.263.0.\n","deprecationMessage":"Field 'auto_pay' has been deprecated since provider version 1.263.0."},"autoRenew":{"type":"boolean","description":"Whether to enable automatic renewal. Value:\n"},"bandwidth":{"type":"integer","description":"The bandwidth of the router interface\n"},"businessStatus":{"type":"string","description":"The service status of the router interface.\n"},"connectedTime":{"type":"string","description":"Time the connection was established\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"crossBorder":{"type":"boolean","description":"CrossBorder\n"},"deleteHealthCheckIp":{"type":"boolean","description":"Whether to delete the health check IP address configured on the router interface. Value:\n"},"description":{"type":"string","description":"The router interface description. It must be 2 to 256 characters in length and must start with a letter or a Chinese character, but cannot start with http:// or https.\n"},"endTime":{"type":"string","description":"End Time of Prepaid\n"},"fastLinkMode":{"type":"boolean","description":"Whether the VBR router interface is created by using the fast connection mode. The fast connection mode can automatically complete the connection after the VBR and the router interfaces at both ends of the VPC are created. Value:\n","willReplaceOnChanges":true},"hasReservationData":{"type":"string","description":"Whether there is renewal data\n"},"hcRate":{"type":"integer","description":"Health check rate. Unit: milliseconds. The recommend value is 2000. Indicates the time interval for sending continuous detection packets during a specified health check.\n"},"hcThreshold":{"type":"string","description":"Health check threshold. Unit: One. The recommend value is 8. Indicates the number of detection packets sent during the specified health check.\n"},"healthCheckSourceIp":{"type":"string","description":"Health check source IP address\n"},"healthCheckTargetIp":{"type":"string","description":"Health check destination IP address\n"},"oppositeAccessPointId":{"type":"string","description":"Peer access point ID\n","willReplaceOnChanges":true},"oppositeBandwidth":{"type":"integer","description":"opposite bandwidth\n"},"oppositeInterfaceBusinessStatus":{"type":"string","description":"The service status of the router interface on the opposite end of the connection.\n"},"oppositeInterfaceId":{"type":"string","description":". Field 'router_table_id' has been deprecated from provider version 1.263.0.\n","deprecationMessage":"Field 'opposite_interface_id' has been deprecated since provider version 1.263.0."},"oppositeInterfaceOwnerId":{"type":"string","description":"Account ID of the peer router interface\n","willReplaceOnChanges":true},"oppositeInterfaceSpec":{"type":"string","description":"Specifications of the interface of the peer router.\n"},"oppositeInterfaceStatus":{"type":"string","description":"The status of the router interface on the peer of the connection.\n"},"oppositeRegionId":{"type":"string","description":"Region of the connection peer\n","willReplaceOnChanges":true},"oppositeRouterId":{"type":"string","description":"The ID of the router to which the opposite router interface belongs.\n","willReplaceOnChanges":true},"oppositeRouterType":{"type":"string","description":"The router type associated with the peer router interface. Valid values:\n- VRouter: VPC router.\n- VBR: Virtual Border Router.\n","willReplaceOnChanges":true},"oppositeVpcInstanceId":{"type":"string","description":"The peer VPC ID\n"},"paymentType":{"type":"string","description":"The payment method of the router interface. Valid values:\n- Subscription : PrePaid.\n- PayAsYouGo : PostPaid.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Purchase duration, value:\n- When you choose to pay on a monthly basis, the value range is **1 to 9**.\n- When you choose to pay per year, the value range is **1 to 3**.\n\n\u003e **NOTE:**  \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is required when the value of the parameter \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"pricingCycle":{"type":"string","description":"The billing cycle of the prepaid fee. Valid values:\n- `Month` (default): monthly payment.\n- `Year`: Pay per Year.\n\n\n\u003e **NOTE:**  \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is required when the value of the parameter \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"reservationActiveTime":{"type":"string","description":"ReservationActiveTime\n"},"reservationBandwidth":{"type":"string","description":"Renew Bandwidth\n"},"reservationInternetChargeType":{"type":"string","description":"Payment Type for Renewal\n"},"reservationOrderType":{"type":"string","description":"Renewal Order Type\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"role":{"type":"string","description":"The role of the router interface. Valid values:\n- InitiatingSide : the initiator of the connection.\n- AcceptingSide : Connect to the receiving end.\n","willReplaceOnChanges":true},"routerId":{"type":"string","description":"The ID of the router where the route entry is located.\n","willReplaceOnChanges":true},"routerInterfaceId":{"type":"string","description":"The first ID of the resource\n"},"routerInterfaceName":{"type":"string","description":"Resource attribute field representing the resource name. It must be 2 to 128 characters in length and must start with a letter or a Chinese character, but cannot start with http:// or https.\n"},"routerType":{"type":"string","description":"The type of the router where the routing table resides. Valid values:\n- VRouter:VPC router\n- VBR: Border Router\n","willReplaceOnChanges":true},"spec":{"type":"string","description":"The specification of the router interface. The available specifications and corresponding bandwidth values are as follows:\n- Mini.2: 2 Mbps\n- Mini.5: 5 Mbps\n- Small.1: 10 Mbps\n- Small.2: 20 Mbps\n- Small.5: 50 Mbps\n- Middle.1: 100 Mbps\n- Middle.2: 200 Mbps\n- Middle.5: 500 Mbps\n- Large.1: 1000 Mbps\n- Large.2: 2000 Mbps\n- Large.5: 5000 Mbps\n- Xlarge.1: 10000 Mbps\n\nWhen the Role is AcceptingSide (connecting to the receiving end), the Spec value is Negative, which means that the specification is not involved in creating the receiving end router interface.\n"},"status":{"type":"string","description":"Resource attribute fields that represent the status of the resource. Value range:\n- Idle : Initialize.\n- Connecting : the initiator is in the process of Connecting.\n- AcceptingConnecting : the receiving end is being connected.\n- Activating : Restoring.\n- Active : Normal.\n- Modifying : Modifying.\n- Deactivating : Freezing.\n- Inactive : Frozen.\n- Deleting : Deleting.\n- Deleted : Deleted.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"},"vpcInstanceId":{"type":"string","description":"ID of the local VPC in the peering connection\n"}},"type":"object"}},"alicloud:expressconnect/routerTrAssociation:RouterTrAssociation":{"description":"Provides a Express Connect Router Express Connect Router Tr Association resource. Leased line gateway and TR binding relationship object.\n\nFor information about Express Connect Router Express Connect Router Tr Association and how to use it, see [What is Express Connect Router Tr Association](https://next.api.alibabacloud.com/api/ExpressConnectRouter/2023-09-01/CreateExpressConnectRouterAssociation).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst alowprefix1 = config.get(\"alowprefix1\") || \"10.0.0.0/24\";\nconst allowprefix2 = config.get(\"allowprefix2\") || \"10.0.1.0/24\";\nconst allowprefix3 = config.get(\"allowprefix3\") || \"10.0.2.0/24\";\nconst allowprefix4 = config.get(\"allowprefix4\") || \"10.0.3.0/24\";\nconst asn = config.get(\"asn\") || \"4200001003\";\nconst defaultpX0KlC = new alicloud.expressconnect.RouterExpressConnectRouter(\"defaultpX0KlC\", {alibabaSideAsn: asn});\nconst default418DC9 = new alicloud.cen.Instance(\"default418DC9\", {cenInstanceName: name});\nconst defaultRYcjsc = new alicloud.cen.TransitRouter(\"defaultRYcjsc\", {cenId: default418DC9.id});\nconst current = alicloud.getAccount({});\nconst _default = new alicloud.expressconnect.RouterTrAssociation(\"default\", {\n    ecrId: defaultpX0KlC.id,\n    cenId: default418DC9.id,\n    transitRouterOwnerId: current.then(current =\u003e current.id),\n    allowedPrefixes: [\n        alowprefix1,\n        allowprefix3,\n        allowprefix2,\n    ],\n    transitRouterId: defaultRYcjsc.transitRouterId,\n    associationRegionId: \"cn-hangzhou\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nalowprefix1 = config.get(\"alowprefix1\")\nif alowprefix1 is None:\n    alowprefix1 = \"10.0.0.0/24\"\nallowprefix2 = config.get(\"allowprefix2\")\nif allowprefix2 is None:\n    allowprefix2 = \"10.0.1.0/24\"\nallowprefix3 = config.get(\"allowprefix3\")\nif allowprefix3 is None:\n    allowprefix3 = \"10.0.2.0/24\"\nallowprefix4 = config.get(\"allowprefix4\")\nif allowprefix4 is None:\n    allowprefix4 = \"10.0.3.0/24\"\nasn = config.get(\"asn\")\nif asn is None:\n    asn = \"4200001003\"\ndefaultp_x0_kl_c = alicloud.expressconnect.RouterExpressConnectRouter(\"defaultpX0KlC\", alibaba_side_asn=asn)\ndefault418_dc9 = alicloud.cen.Instance(\"default418DC9\", cen_instance_name=name)\ndefault_r_ycjsc = alicloud.cen.TransitRouter(\"defaultRYcjsc\", cen_id=default418_dc9.id)\ncurrent = alicloud.get_account()\ndefault = alicloud.expressconnect.RouterTrAssociation(\"default\",\n    ecr_id=defaultp_x0_kl_c.id,\n    cen_id=default418_dc9.id,\n    transit_router_owner_id=current.id,\n    allowed_prefixes=[\n        alowprefix1,\n        allowprefix3,\n        allowprefix2,\n    ],\n    transit_router_id=default_r_ycjsc.transit_router_id,\n    association_region_id=\"cn-hangzhou\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var alowprefix1 = config.Get(\"alowprefix1\") ?? \"10.0.0.0/24\";\n    var allowprefix2 = config.Get(\"allowprefix2\") ?? \"10.0.1.0/24\";\n    var allowprefix3 = config.Get(\"allowprefix3\") ?? \"10.0.2.0/24\";\n    var allowprefix4 = config.Get(\"allowprefix4\") ?? \"10.0.3.0/24\";\n    var asn = config.Get(\"asn\") ?? \"4200001003\";\n    var defaultpX0KlC = new AliCloud.ExpressConnect.RouterExpressConnectRouter(\"defaultpX0KlC\", new()\n    {\n        AlibabaSideAsn = asn,\n    });\n\n    var default418DC9 = new AliCloud.Cen.Instance(\"default418DC9\", new()\n    {\n        CenInstanceName = name,\n    });\n\n    var defaultRYcjsc = new AliCloud.Cen.TransitRouter(\"defaultRYcjsc\", new()\n    {\n        CenId = default418DC9.Id,\n    });\n\n    var current = AliCloud.GetAccount.Invoke();\n\n    var @default = new AliCloud.ExpressConnect.RouterTrAssociation(\"default\", new()\n    {\n        EcrId = defaultpX0KlC.Id,\n        CenId = default418DC9.Id,\n        TransitRouterOwnerId = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n        AllowedPrefixes = new[]\n        {\n            alowprefix1,\n            allowprefix3,\n            allowprefix2,\n        },\n        TransitRouterId = defaultRYcjsc.TransitRouterId,\n        AssociationRegionId = \"cn-hangzhou\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\talowprefix1 := \"10.0.0.0/24\"\n\t\tif param := cfg.Get(\"alowprefix1\"); param != \"\" {\n\t\t\talowprefix1 = param\n\t\t}\n\t\tallowprefix2 := \"10.0.1.0/24\"\n\t\tif param := cfg.Get(\"allowprefix2\"); param != \"\" {\n\t\t\tallowprefix2 = param\n\t\t}\n\t\tallowprefix3 := \"10.0.2.0/24\"\n\t\tif param := cfg.Get(\"allowprefix3\"); param != \"\" {\n\t\t\tallowprefix3 = param\n\t\t}\n\t\tallowprefix4 := \"10.0.3.0/24\"\n\t\tif param := cfg.Get(\"allowprefix4\"); param != \"\" {\n\t\t\tallowprefix4 = param\n\t\t}\n\t\tasn := \"4200001003\"\n\t\tif param := cfg.Get(\"asn\"); param != \"\" {\n\t\t\tasn = param\n\t\t}\n\t\tdefaultpX0KlC, err := expressconnect.NewRouterExpressConnectRouter(ctx, \"defaultpX0KlC\", \u0026expressconnect.RouterExpressConnectRouterArgs{\n\t\t\tAlibabaSideAsn: pulumi.String(asn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault418DC9, err := cen.NewInstance(ctx, \"default418DC9\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRYcjsc, err := cen.NewTransitRouter(ctx, \"defaultRYcjsc\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId: default418DC9.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrent, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = expressconnect.NewRouterTrAssociation(ctx, \"default\", \u0026expressconnect.RouterTrAssociationArgs{\n\t\t\tEcrId:                defaultpX0KlC.ID(),\n\t\t\tCenId:                default418DC9.ID(),\n\t\t\tTransitRouterOwnerId: pulumi.String(current.Id),\n\t\t\tAllowedPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(alowprefix1),\n\t\t\t\tpulumi.String(allowprefix3),\n\t\t\t\tpulumi.String(allowprefix2),\n\t\t\t},\n\t\t\tTransitRouterId:     defaultRYcjsc.TransitRouterId,\n\t\t\tAssociationRegionId: pulumi.String(\"cn-hangzhou\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.RouterExpressConnectRouter;\nimport com.pulumi.alicloud.expressconnect.RouterExpressConnectRouterArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.expressconnect.RouterTrAssociation;\nimport com.pulumi.alicloud.expressconnect.RouterTrAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var alowprefix1 = config.get(\"alowprefix1\").orElse(\"10.0.0.0/24\");\n        final var allowprefix2 = config.get(\"allowprefix2\").orElse(\"10.0.1.0/24\");\n        final var allowprefix3 = config.get(\"allowprefix3\").orElse(\"10.0.2.0/24\");\n        final var allowprefix4 = config.get(\"allowprefix4\").orElse(\"10.0.3.0/24\");\n        final var asn = config.get(\"asn\").orElse(\"4200001003\");\n        var defaultpX0KlC = new RouterExpressConnectRouter(\"defaultpX0KlC\", RouterExpressConnectRouterArgs.builder()\n            .alibabaSideAsn(asn)\n            .build());\n\n        var default418DC9 = new Instance(\"default418DC9\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .build());\n\n        var defaultRYcjsc = new TransitRouter(\"defaultRYcjsc\", TransitRouterArgs.builder()\n            .cenId(default418DC9.id())\n            .build());\n\n        final var current = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var default_ = new RouterTrAssociation(\"default\", RouterTrAssociationArgs.builder()\n            .ecrId(defaultpX0KlC.id())\n            .cenId(default418DC9.id())\n            .transitRouterOwnerId(current.id())\n            .allowedPrefixes(            \n                alowprefix1,\n                allowprefix3,\n                allowprefix2)\n            .transitRouterId(defaultRYcjsc.transitRouterId())\n            .associationRegionId(\"cn-hangzhou\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  alowprefix1:\n    type: string\n    default: 10.0.0.0/24\n  allowprefix2:\n    type: string\n    default: 10.0.1.0/24\n  allowprefix3:\n    type: string\n    default: 10.0.2.0/24\n  allowprefix4:\n    type: string\n    default: 10.0.3.0/24\n  asn:\n    type: string\n    default: '4200001003'\nresources:\n  defaultpX0KlC:\n    type: alicloud:expressconnect:RouterExpressConnectRouter\n    properties:\n      alibabaSideAsn: ${asn}\n  default418DC9:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: ${name}\n  defaultRYcjsc:\n    type: alicloud:cen:TransitRouter\n    properties:\n      cenId: ${default418DC9.id}\n  default:\n    type: alicloud:expressconnect:RouterTrAssociation\n    properties:\n      ecrId: ${defaultpX0KlC.id}\n      cenId: ${default418DC9.id}\n      transitRouterOwnerId: ${current.id}\n      allowedPrefixes:\n        - ${alowprefix1}\n        - ${allowprefix3}\n        - ${allowprefix2}\n      transitRouterId: ${defaultRYcjsc.transitRouterId}\n      associationRegionId: cn-hangzhou\nvariables:\n  current:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Router Express Connect Router Tr Association can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:expressconnect/routerTrAssociation:RouterTrAssociation example \u003cecr_id\u003e:\u003cassociation_id\u003e:\u003ctransit_router_id\u003e\n```\n\n","properties":{"allowedPrefixes":{"type":"array","items":{"type":"string"},"description":"List of allowed route prefixes.\n"},"associationId":{"type":"string","description":"The first ID of the resource.\n"},"associationRegionId":{"type":"string","description":"The region to which the VPC or TR belongs.\n"},"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"ecrId":{"type":"string","description":"The ID of the leased line gateway instance.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"transitRouterId":{"type":"string","description":"The ID of the forwarding router instance.\n"},"transitRouterOwnerId":{"type":"integer","description":"The ID of the Alibaba Cloud account to which the forwarding router belongs.\n"}},"required":["associationId","associationRegionId","createTime","ecrId","status","transitRouterId"],"inputProperties":{"allowedPrefixes":{"type":"array","items":{"type":"string"},"description":"List of allowed route prefixes.\n"},"associationRegionId":{"type":"string","description":"The region to which the VPC or TR belongs.\n","willReplaceOnChanges":true},"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"ecrId":{"type":"string","description":"The ID of the leased line gateway instance.\n","willReplaceOnChanges":true},"transitRouterId":{"type":"string","description":"The ID of the forwarding router instance.\n","willReplaceOnChanges":true},"transitRouterOwnerId":{"type":"integer","description":"The ID of the Alibaba Cloud account to which the forwarding router belongs.\n","willReplaceOnChanges":true}},"requiredInputs":["associationRegionId","ecrId"],"stateInputs":{"description":"Input properties used for looking up and filtering RouterTrAssociation resources.\n","properties":{"allowedPrefixes":{"type":"array","items":{"type":"string"},"description":"List of allowed route prefixes.\n"},"associationId":{"type":"string","description":"The first ID of the resource.\n"},"associationRegionId":{"type":"string","description":"The region to which the VPC or TR belongs.\n","willReplaceOnChanges":true},"cenId":{"type":"string","description":"The ID of the CEN instance.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"ecrId":{"type":"string","description":"The ID of the leased line gateway instance.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"},"transitRouterId":{"type":"string","description":"The ID of the forwarding router instance.\n","willReplaceOnChanges":true},"transitRouterOwnerId":{"type":"integer","description":"The ID of the Alibaba Cloud account to which the forwarding router belongs.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:expressconnect/routerVbrChildInstance:RouterVbrChildInstance":{"description":"Provides a Express Connect Router Express Connect Router Vbr Child Instance resource.\n\nFor information about Express Connect Router Express Connect Router Vbr Child Instance and how to use it, see [What is Express Connect Router Vbr Child Instance](https://next.api.alibabacloud.com/api/ExpressConnectRouter/2023-09-01/AttachExpressConnectRouterChildInstance).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst nameRegex = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"^preserved-NODELETING\",\n});\nconst defaultydbbk3 = new alicloud.expressconnect.VirtualBorderRouter(\"defaultydbbk3\", {\n    physicalConnectionId: nameRegex.then(nameRegex =\u003e nameRegex.connections?.[0]?.id),\n    vlanId: 1000,\n    peerGatewayIp: \"192.168.254.2\",\n    peeringSubnetMask: \"255.255.255.0\",\n    localGatewayIp: \"192.168.254.1\",\n});\nconst defaultAAlhUy = new alicloud.expressconnect.RouterExpressConnectRouter(\"defaultAAlhUy\", {alibabaSideAsn: 65532});\nconst current = alicloud.getAccount({});\nconst _default = new alicloud.expressconnect.RouterVbrChildInstance(\"default\", {\n    childInstanceId: defaultydbbk3.id,\n    childInstanceRegionId: \"cn-hangzhou\",\n    ecrId: defaultAAlhUy.id,\n    childInstanceType: \"VBR\",\n    childInstanceOwnerId: current.then(current =\u003e current.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nname_regex = alicloud.expressconnect.get_physical_connections(name_regex=\"^preserved-NODELETING\")\ndefaultydbbk3 = alicloud.expressconnect.VirtualBorderRouter(\"defaultydbbk3\",\n    physical_connection_id=name_regex.connections[0].id,\n    vlan_id=1000,\n    peer_gateway_ip=\"192.168.254.2\",\n    peering_subnet_mask=\"255.255.255.0\",\n    local_gateway_ip=\"192.168.254.1\")\ndefault_a_alh_uy = alicloud.expressconnect.RouterExpressConnectRouter(\"defaultAAlhUy\", alibaba_side_asn=65532)\ncurrent = alicloud.get_account()\ndefault = alicloud.expressconnect.RouterVbrChildInstance(\"default\",\n    child_instance_id=defaultydbbk3.id,\n    child_instance_region_id=\"cn-hangzhou\",\n    ecr_id=default_a_alh_uy.id,\n    child_instance_type=\"VBR\",\n    child_instance_owner_id=current.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var nameRegex = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"^preserved-NODELETING\",\n    });\n\n    var defaultydbbk3 = new AliCloud.ExpressConnect.VirtualBorderRouter(\"defaultydbbk3\", new()\n    {\n        PhysicalConnectionId = nameRegex.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Connections[0]?.Id),\n        VlanId = 1000,\n        PeerGatewayIp = \"192.168.254.2\",\n        PeeringSubnetMask = \"255.255.255.0\",\n        LocalGatewayIp = \"192.168.254.1\",\n    });\n\n    var defaultAAlhUy = new AliCloud.ExpressConnect.RouterExpressConnectRouter(\"defaultAAlhUy\", new()\n    {\n        AlibabaSideAsn = 65532,\n    });\n\n    var current = AliCloud.GetAccount.Invoke();\n\n    var @default = new AliCloud.ExpressConnect.RouterVbrChildInstance(\"default\", new()\n    {\n        ChildInstanceId = defaultydbbk3.Id,\n        ChildInstanceRegionId = \"cn-hangzhou\",\n        EcrId = defaultAAlhUy.Id,\n        ChildInstanceType = \"VBR\",\n        ChildInstanceOwnerId = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tnameRegex, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultydbbk3, err := expressconnect.NewVirtualBorderRouter(ctx, \"defaultydbbk3\", \u0026expressconnect.VirtualBorderRouterArgs{\n\t\t\tPhysicalConnectionId: pulumi.String(nameRegex.Connections[0].Id),\n\t\t\tVlanId:               pulumi.Int(1000),\n\t\t\tPeerGatewayIp:        pulumi.String(\"192.168.254.2\"),\n\t\t\tPeeringSubnetMask:    pulumi.String(\"255.255.255.0\"),\n\t\t\tLocalGatewayIp:       pulumi.String(\"192.168.254.1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAAlhUy, err := expressconnect.NewRouterExpressConnectRouter(ctx, \"defaultAAlhUy\", \u0026expressconnect.RouterExpressConnectRouterArgs{\n\t\t\tAlibabaSideAsn: pulumi.Int(65532),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrent, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = expressconnect.NewRouterVbrChildInstance(ctx, \"default\", \u0026expressconnect.RouterVbrChildInstanceArgs{\n\t\t\tChildInstanceId:       defaultydbbk3.ID(),\n\t\t\tChildInstanceRegionId: pulumi.String(\"cn-hangzhou\"),\n\t\t\tEcrId:                 defaultAAlhUy.ID(),\n\t\t\tChildInstanceType:     pulumi.String(\"VBR\"),\n\t\t\tChildInstanceOwnerId:  pulumi.String(current.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouter;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouterArgs;\nimport com.pulumi.alicloud.expressconnect.RouterExpressConnectRouter;\nimport com.pulumi.alicloud.expressconnect.RouterExpressConnectRouterArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.expressconnect.RouterVbrChildInstance;\nimport com.pulumi.alicloud.expressconnect.RouterVbrChildInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var nameRegex = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"^preserved-NODELETING\")\n            .build());\n\n        var defaultydbbk3 = new VirtualBorderRouter(\"defaultydbbk3\", VirtualBorderRouterArgs.builder()\n            .physicalConnectionId(nameRegex.connections()[0].id())\n            .vlanId(1000)\n            .peerGatewayIp(\"192.168.254.2\")\n            .peeringSubnetMask(\"255.255.255.0\")\n            .localGatewayIp(\"192.168.254.1\")\n            .build());\n\n        var defaultAAlhUy = new RouterExpressConnectRouter(\"defaultAAlhUy\", RouterExpressConnectRouterArgs.builder()\n            .alibabaSideAsn(65532)\n            .build());\n\n        final var current = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var default_ = new RouterVbrChildInstance(\"default\", RouterVbrChildInstanceArgs.builder()\n            .childInstanceId(defaultydbbk3.id())\n            .childInstanceRegionId(\"cn-hangzhou\")\n            .ecrId(defaultAAlhUy.id())\n            .childInstanceType(\"VBR\")\n            .childInstanceOwnerId(current.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultydbbk3:\n    type: alicloud:expressconnect:VirtualBorderRouter\n    properties:\n      physicalConnectionId: ${nameRegex.connections[0].id}\n      vlanId: '1000'\n      peerGatewayIp: 192.168.254.2\n      peeringSubnetMask: 255.255.255.0\n      localGatewayIp: 192.168.254.1\n  defaultAAlhUy:\n    type: alicloud:expressconnect:RouterExpressConnectRouter\n    properties:\n      alibabaSideAsn: '65532'\n  default:\n    type: alicloud:expressconnect:RouterVbrChildInstance\n    properties:\n      childInstanceId: ${defaultydbbk3.id}\n      childInstanceRegionId: cn-hangzhou\n      ecrId: ${defaultAAlhUy.id}\n      childInstanceType: VBR\n      childInstanceOwnerId: ${current.id}\nvariables:\n  nameRegex:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: ^preserved-NODELETING\n  current:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Router Express Connect Router Vbr Child Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:expressconnect/routerVbrChildInstance:RouterVbrChildInstance example \u003cecr_id\u003e:\u003cchild_instance_id\u003e:\u003cchild_instance_type\u003e\n```\n\n","properties":{"childInstanceId":{"type":"string","description":"The ID of the leased line gateway subinstance.\n"},"childInstanceOwnerId":{"type":"string","description":"The ID of the Alibaba Cloud account (primary account) to which the VBR instance belongs.\n\n\u003e **NOTE:**  This parameter is required if you want to load a cross-account network instance.\n"},"childInstanceRegionId":{"type":"string","description":"Region of the leased line gateway sub-instance\n"},"childInstanceType":{"type":"string","description":"The type of the network instance. Value: `VBR`: VBR instance.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"description":{"type":"string","description":"Resource attribute fields that represent descriptive information\n"},"ecrId":{"type":"string","description":"ID of the representative leased line gateway instance.\n"},"status":{"type":"string","description":"Binding relationship status of leased line gateway subinstances.\n"}},"required":["childInstanceId","childInstanceOwnerId","childInstanceRegionId","childInstanceType","createTime","ecrId","status"],"inputProperties":{"childInstanceId":{"type":"string","description":"The ID of the leased line gateway subinstance.\n","willReplaceOnChanges":true},"childInstanceOwnerId":{"type":"string","description":"The ID of the Alibaba Cloud account (primary account) to which the VBR instance belongs.\n\n\u003e **NOTE:**  This parameter is required if you want to load a cross-account network instance.\n","willReplaceOnChanges":true},"childInstanceRegionId":{"type":"string","description":"Region of the leased line gateway sub-instance\n","willReplaceOnChanges":true},"childInstanceType":{"type":"string","description":"The type of the network instance. Value: `VBR`: VBR instance.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Resource attribute fields that represent descriptive information\n"},"ecrId":{"type":"string","description":"ID of the representative leased line gateway instance.\n","willReplaceOnChanges":true}},"requiredInputs":["childInstanceId","childInstanceRegionId","childInstanceType","ecrId"],"stateInputs":{"description":"Input properties used for looking up and filtering RouterVbrChildInstance resources.\n","properties":{"childInstanceId":{"type":"string","description":"The ID of the leased line gateway subinstance.\n","willReplaceOnChanges":true},"childInstanceOwnerId":{"type":"string","description":"The ID of the Alibaba Cloud account (primary account) to which the VBR instance belongs.\n\n\u003e **NOTE:**  This parameter is required if you want to load a cross-account network instance.\n","willReplaceOnChanges":true},"childInstanceRegionId":{"type":"string","description":"Region of the leased line gateway sub-instance\n","willReplaceOnChanges":true},"childInstanceType":{"type":"string","description":"The type of the network instance. Value: `VBR`: VBR instance.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"description":{"type":"string","description":"Resource attribute fields that represent descriptive information\n"},"ecrId":{"type":"string","description":"ID of the representative leased line gateway instance.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Binding relationship status of leased line gateway subinstances.\n"}},"type":"object"}},"alicloud:expressconnect/routerVpcAssociation:RouterVpcAssociation":{"description":"Provides a Express Connect Router Express Connect Router Vpc Association resource. Bind relationship object between leased line gateway and VPC.\n\nFor information about Express Connect Router Express Connect Router Vpc Association and how to use it, see [What is Express Connect Router Vpc Association](https://www.alibabacloud.com/help/en/express-connect/developer-reference/api-expressconnectrouter-2023-09-01-createexpressconnectrouterassociation).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst default8qAtD6 = new alicloud.vpc.Network(\"default8qAtD6\", {cidrBlock: \"172.16.0.0/16\"});\nconst defaultM9YxGW = new alicloud.expressconnect.RouterExpressConnectRouter(\"defaultM9YxGW\", {alibabaSideAsn: 65533});\nconst current = alicloud.getAccount({});\nconst _default = new alicloud.expressconnect.RouterVpcAssociation(\"default\", {\n    ecrId: defaultM9YxGW.id,\n    allowedPrefixes: [\n        \"172.16.4.0/24\",\n        \"172.16.3.0/24\",\n        \"172.16.2.0/24\",\n        \"172.16.1.0/24\",\n    ],\n    vpcOwnerId: current.then(current =\u003e current.id),\n    associationRegionId: \"cn-hangzhou\",\n    vpcId: default8qAtD6.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault8q_at_d6 = alicloud.vpc.Network(\"default8qAtD6\", cidr_block=\"172.16.0.0/16\")\ndefault_m9_yx_gw = alicloud.expressconnect.RouterExpressConnectRouter(\"defaultM9YxGW\", alibaba_side_asn=65533)\ncurrent = alicloud.get_account()\ndefault = alicloud.expressconnect.RouterVpcAssociation(\"default\",\n    ecr_id=default_m9_yx_gw.id,\n    allowed_prefixes=[\n        \"172.16.4.0/24\",\n        \"172.16.3.0/24\",\n        \"172.16.2.0/24\",\n        \"172.16.1.0/24\",\n    ],\n    vpc_owner_id=current.id,\n    association_region_id=\"cn-hangzhou\",\n    vpc_id=default8q_at_d6.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var default8qAtD6 = new AliCloud.Vpc.Network(\"default8qAtD6\", new()\n    {\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultM9YxGW = new AliCloud.ExpressConnect.RouterExpressConnectRouter(\"defaultM9YxGW\", new()\n    {\n        AlibabaSideAsn = 65533,\n    });\n\n    var current = AliCloud.GetAccount.Invoke();\n\n    var @default = new AliCloud.ExpressConnect.RouterVpcAssociation(\"default\", new()\n    {\n        EcrId = defaultM9YxGW.Id,\n        AllowedPrefixes = new[]\n        {\n            \"172.16.4.0/24\",\n            \"172.16.3.0/24\",\n            \"172.16.2.0/24\",\n            \"172.16.1.0/24\",\n        },\n        VpcOwnerId = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n        AssociationRegionId = \"cn-hangzhou\",\n        VpcId = default8qAtD6.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefault8qAtD6, err := vpc.NewNetwork(ctx, \"default8qAtD6\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultM9YxGW, err := expressconnect.NewRouterExpressConnectRouter(ctx, \"defaultM9YxGW\", \u0026expressconnect.RouterExpressConnectRouterArgs{\n\t\t\tAlibabaSideAsn: pulumi.Int(65533),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrent, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = expressconnect.NewRouterVpcAssociation(ctx, \"default\", \u0026expressconnect.RouterVpcAssociationArgs{\n\t\t\tEcrId: defaultM9YxGW.ID(),\n\t\t\tAllowedPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"172.16.4.0/24\"),\n\t\t\t\tpulumi.String(\"172.16.3.0/24\"),\n\t\t\t\tpulumi.String(\"172.16.2.0/24\"),\n\t\t\t\tpulumi.String(\"172.16.1.0/24\"),\n\t\t\t},\n\t\t\tVpcOwnerId:          pulumi.String(current.Id),\n\t\t\tAssociationRegionId: pulumi.String(\"cn-hangzhou\"),\n\t\t\tVpcId:               default8qAtD6.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.expressconnect.RouterExpressConnectRouter;\nimport com.pulumi.alicloud.expressconnect.RouterExpressConnectRouterArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.expressconnect.RouterVpcAssociation;\nimport com.pulumi.alicloud.expressconnect.RouterVpcAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default8qAtD6 = new Network(\"default8qAtD6\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultM9YxGW = new RouterExpressConnectRouter(\"defaultM9YxGW\", RouterExpressConnectRouterArgs.builder()\n            .alibabaSideAsn(65533)\n            .build());\n\n        final var current = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var default_ = new RouterVpcAssociation(\"default\", RouterVpcAssociationArgs.builder()\n            .ecrId(defaultM9YxGW.id())\n            .allowedPrefixes(            \n                \"172.16.4.0/24\",\n                \"172.16.3.0/24\",\n                \"172.16.2.0/24\",\n                \"172.16.1.0/24\")\n            .vpcOwnerId(current.id())\n            .associationRegionId(\"cn-hangzhou\")\n            .vpcId(default8qAtD6.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default8qAtD6:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/16\n  defaultM9YxGW:\n    type: alicloud:expressconnect:RouterExpressConnectRouter\n    properties:\n      alibabaSideAsn: '65533'\n  default:\n    type: alicloud:expressconnect:RouterVpcAssociation\n    properties:\n      ecrId: ${defaultM9YxGW.id}\n      allowedPrefixes:\n        - 172.16.4.0/24\n        - 172.16.3.0/24\n        - 172.16.2.0/24\n        - 172.16.1.0/24\n      vpcOwnerId: ${current.id}\n      associationRegionId: cn-hangzhou\n      vpcId: ${default8qAtD6.id}\nvariables:\n  current:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Router Express Connect Router Vpc Association can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:expressconnect/routerVpcAssociation:RouterVpcAssociation example \u003cecr_id\u003e:\u003cassociation_id\u003e:\u003cvpc_id\u003e\n```\n\n","properties":{"allowedPrefixes":{"type":"array","items":{"type":"string"},"description":"The list of allowed route prefixes.\n"},"associationId":{"type":"string","description":"The ID of the association between the ECR and the VPC.\n"},"associationRegionId":{"type":"string","description":"The region ID of the resource to be associated.\n"},"createTime":{"type":"string","description":"The time when the association was created.\n"},"ecrId":{"type":"string","description":"The ECR ID.\n"},"status":{"type":"string","description":"The deployment state of the associated resource.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n"},"vpcOwnerId":{"type":"integer","description":"The ID of the Alibaba Cloud account that owns the VPC.\n\u003e **NOTE:** If you want to connect to a network instance that belongs to a different account, \u003cspan pulumi-lang-nodejs=\"`vpcOwnerId`\" pulumi-lang-dotnet=\"`VpcOwnerId`\" pulumi-lang-go=\"`vpcOwnerId`\" pulumi-lang-python=\"`vpc_owner_id`\" pulumi-lang-yaml=\"`vpcOwnerId`\" pulumi-lang-java=\"`vpcOwnerId`\"\u003e`vpc_owner_id`\u003c/span\u003e is required.\n"}},"required":["associationId","associationRegionId","createTime","ecrId","status","vpcId","vpcOwnerId"],"inputProperties":{"allowedPrefixes":{"type":"array","items":{"type":"string"},"description":"The list of allowed route prefixes.\n"},"associationRegionId":{"type":"string","description":"The region ID of the resource to be associated.\n","willReplaceOnChanges":true},"ecrId":{"type":"string","description":"The ECR ID.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VPC ID.\n","willReplaceOnChanges":true},"vpcOwnerId":{"type":"integer","description":"The ID of the Alibaba Cloud account that owns the VPC.\n\u003e **NOTE:** If you want to connect to a network instance that belongs to a different account, \u003cspan pulumi-lang-nodejs=\"`vpcOwnerId`\" pulumi-lang-dotnet=\"`VpcOwnerId`\" pulumi-lang-go=\"`vpcOwnerId`\" pulumi-lang-python=\"`vpc_owner_id`\" pulumi-lang-yaml=\"`vpcOwnerId`\" pulumi-lang-java=\"`vpcOwnerId`\"\u003e`vpc_owner_id`\u003c/span\u003e is required.\n","willReplaceOnChanges":true}},"requiredInputs":["associationRegionId","ecrId","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering RouterVpcAssociation resources.\n","properties":{"allowedPrefixes":{"type":"array","items":{"type":"string"},"description":"The list of allowed route prefixes.\n"},"associationId":{"type":"string","description":"The ID of the association between the ECR and the VPC.\n"},"associationRegionId":{"type":"string","description":"The region ID of the resource to be associated.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The time when the association was created.\n"},"ecrId":{"type":"string","description":"The ECR ID.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The deployment state of the associated resource.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n","willReplaceOnChanges":true},"vpcOwnerId":{"type":"integer","description":"The ID of the Alibaba Cloud account that owns the VPC.\n\u003e **NOTE:** If you want to connect to a network instance that belongs to a different account, \u003cspan pulumi-lang-nodejs=\"`vpcOwnerId`\" pulumi-lang-dotnet=\"`VpcOwnerId`\" pulumi-lang-go=\"`vpcOwnerId`\" pulumi-lang-python=\"`vpc_owner_id`\" pulumi-lang-yaml=\"`vpcOwnerId`\" pulumi-lang-java=\"`vpcOwnerId`\"\u003e`vpc_owner_id`\u003c/span\u003e is required.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:expressconnect/trafficQos:TrafficQos":{"description":"Provides a Express Connect Traffic Qos resource.\n\nExpress Connect Traffic QoS Policy.\n\nFor information about Express Connect Traffic Qos and how to use it, see [What is Traffic Qos](https://next.api.alibabacloud.com/document/Vpc/2016-04-28/CreateExpressConnectTrafficQos).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst createQos = new alicloud.expressconnect.TrafficQos(\"createQos\", {\n    qosName: name,\n    qosDescription: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncreate_qos = alicloud.expressconnect.TrafficQos(\"createQos\",\n    qos_name=name,\n    qos_description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var createQos = new AliCloud.ExpressConnect.TrafficQos(\"createQos\", new()\n    {\n        QosName = name,\n        QosDescription = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := expressconnect.NewTrafficQos(ctx, \"createQos\", \u0026expressconnect.TrafficQosArgs{\n\t\t\tQosName:        pulumi.String(name),\n\t\t\tQosDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.TrafficQos;\nimport com.pulumi.alicloud.expressconnect.TrafficQosArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var createQos = new TrafficQos(\"createQos\", TrafficQosArgs.builder()\n            .qosName(name)\n            .qosDescription(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createQos:\n    type: alicloud:expressconnect:TrafficQos\n    properties:\n      qosName: ${name}\n      qosDescription: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Traffic Qos can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:expressconnect/trafficQos:TrafficQos example \u003cid\u003e\n```\n\n","properties":{"qosDescription":{"type":"string","description":"The description of the QoS policy.\nThe length is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters and cannot start with 'http:// 'or 'https.\n"},"qosName":{"type":"string","description":"The name of the QoS policy.\nThe length is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters and cannot start with 'http:// 'or 'https.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the QoS policy.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"required":["resourceGroupId","status"],"inputProperties":{"qosDescription":{"type":"string","description":"The description of the QoS policy.\nThe length is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters and cannot start with 'http:// 'or 'https.\n"},"qosName":{"type":"string","description":"The name of the QoS policy.\nThe length is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters and cannot start with 'http:// 'or 'https.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering TrafficQos resources.\n","properties":{"qosDescription":{"type":"string","description":"The description of the QoS policy.\nThe length is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters and cannot start with 'http:// 'or 'https.\n"},"qosName":{"type":"string","description":"The name of the QoS policy.\nThe length is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters and cannot start with 'http:// 'or 'https.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the QoS policy.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object"}},"alicloud:expressconnect/trafficQosAssociation:TrafficQosAssociation":{"description":"Provides a Express Connect Traffic Qos Association resource. Express Connect QoS associated resources.\n\nFor information about Express Connect Traffic Qos Association and how to use it, see [What is Traffic Qos Association](https://next.api.alibabacloud.com/document/Vpc/2016-04-28/ModifyExpressConnectTrafficQos).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"preserved-NODELETING\",\n});\nconst createQos = new alicloud.expressconnect.TrafficQos(\"createQos\", {\n    qosName: name,\n    qosDescription: \"terraform-example\",\n});\nconst associateQos = new alicloud.expressconnect.TrafficQosAssociation(\"associateQos\", {\n    instanceId: _default.then(_default =\u003e _default.ids?.[1]),\n    qosId: createQos.id,\n    instanceType: \"PHYSICALCONNECTION\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.expressconnect.get_physical_connections(name_regex=\"preserved-NODELETING\")\ncreate_qos = alicloud.expressconnect.TrafficQos(\"createQos\",\n    qos_name=name,\n    qos_description=\"terraform-example\")\nassociate_qos = alicloud.expressconnect.TrafficQosAssociation(\"associateQos\",\n    instance_id=default.ids[1],\n    qos_id=create_qos.id,\n    instance_type=\"PHYSICALCONNECTION\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"preserved-NODELETING\",\n    });\n\n    var createQos = new AliCloud.ExpressConnect.TrafficQos(\"createQos\", new()\n    {\n        QosName = name,\n        QosDescription = \"terraform-example\",\n    });\n\n    var associateQos = new AliCloud.ExpressConnect.TrafficQosAssociation(\"associateQos\", new()\n    {\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Ids[1])),\n        QosId = createQos.Id,\n        InstanceType = \"PHYSICALCONNECTION\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateQos, err := expressconnect.NewTrafficQos(ctx, \"createQos\", \u0026expressconnect.TrafficQosArgs{\n\t\t\tQosName:        pulumi.String(name),\n\t\t\tQosDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = expressconnect.NewTrafficQosAssociation(ctx, \"associateQos\", \u0026expressconnect.TrafficQosAssociationArgs{\n\t\t\tInstanceId:   pulumi.String(_default.Ids[1]),\n\t\t\tQosId:        createQos.ID(),\n\t\t\tInstanceType: pulumi.String(\"PHYSICALCONNECTION\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.alicloud.expressconnect.TrafficQos;\nimport com.pulumi.alicloud.expressconnect.TrafficQosArgs;\nimport com.pulumi.alicloud.expressconnect.TrafficQosAssociation;\nimport com.pulumi.alicloud.expressconnect.TrafficQosAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"preserved-NODELETING\")\n            .build());\n\n        var createQos = new TrafficQos(\"createQos\", TrafficQosArgs.builder()\n            .qosName(name)\n            .qosDescription(\"terraform-example\")\n            .build());\n\n        var associateQos = new TrafficQosAssociation(\"associateQos\", TrafficQosAssociationArgs.builder()\n            .instanceId(default_.ids()[1])\n            .qosId(createQos.id())\n            .instanceType(\"PHYSICALCONNECTION\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createQos:\n    type: alicloud:expressconnect:TrafficQos\n    properties:\n      qosName: ${name}\n      qosDescription: terraform-example\n  associateQos:\n    type: alicloud:expressconnect:TrafficQosAssociation\n    properties:\n      instanceId: ${default.ids[1]}\n      qosId: ${createQos.id}\n      instanceType: PHYSICALCONNECTION\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: preserved-NODELETING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Traffic Qos Association can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:expressconnect/trafficQosAssociation:TrafficQosAssociation example \u003cqos_id\u003e:\u003cinstance_id\u003e:\u003cinstance_type\u003e\n```\n\n","properties":{"instanceId":{"type":"string","description":"The ID of the associated instance.\n"},"instanceType":{"type":"string","description":"The type of the associated instance. Value: **physical connection** physical connection.\n"},"qosId":{"type":"string","description":"The QoS policy ID.\n"},"status":{"type":"string","description":"The status of the associated instance. Value:\n"}},"required":["instanceId","instanceType","qosId","status"],"inputProperties":{"instanceId":{"type":"string","description":"The ID of the associated instance.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of the associated instance. Value: **physical connection** physical connection.\n","willReplaceOnChanges":true},"qosId":{"type":"string","description":"The QoS policy ID.\n","willReplaceOnChanges":true}},"requiredInputs":["qosId"],"stateInputs":{"description":"Input properties used for looking up and filtering TrafficQosAssociation resources.\n","properties":{"instanceId":{"type":"string","description":"The ID of the associated instance.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of the associated instance. Value: **physical connection** physical connection.\n","willReplaceOnChanges":true},"qosId":{"type":"string","description":"The QoS policy ID.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the associated instance. Value:\n"}},"type":"object"}},"alicloud:expressconnect/trafficQosQueue:TrafficQosQueue":{"description":"Provides a Express Connect Traffic Qos Queue resource.\n\nExpress Connect Traffic QoS Queue.\n\nFor information about Express Connect Traffic Qos Queue and how to use it, see [What is Traffic Qos Queue](https://next.api.alibabacloud.com/document/Vpc/2016-04-28/CreateExpressConnectTrafficQosQueue).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"preserved-NODELETING\",\n});\nconst createQos = new alicloud.expressconnect.TrafficQos(\"createQos\", {\n    qosName: name,\n    qosDescription: \"terraform-example\",\n});\nconst associateQos = new alicloud.expressconnect.TrafficQosAssociation(\"associateQos\", {\n    instanceId: _default.then(_default =\u003e _default.ids?.[1]),\n    qosId: createQos.id,\n    instanceType: \"PHYSICALCONNECTION\",\n});\nconst createQosQueue = new alicloud.expressconnect.TrafficQosQueue(\"createQosQueue\", {\n    qosId: createQos.id,\n    bandwidthPercent: \"60\",\n    queueDescription: \"terraform-example\",\n    queueName: name,\n    queueType: \"Medium\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.expressconnect.get_physical_connections(name_regex=\"preserved-NODELETING\")\ncreate_qos = alicloud.expressconnect.TrafficQos(\"createQos\",\n    qos_name=name,\n    qos_description=\"terraform-example\")\nassociate_qos = alicloud.expressconnect.TrafficQosAssociation(\"associateQos\",\n    instance_id=default.ids[1],\n    qos_id=create_qos.id,\n    instance_type=\"PHYSICALCONNECTION\")\ncreate_qos_queue = alicloud.expressconnect.TrafficQosQueue(\"createQosQueue\",\n    qos_id=create_qos.id,\n    bandwidth_percent=\"60\",\n    queue_description=\"terraform-example\",\n    queue_name=name,\n    queue_type=\"Medium\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"preserved-NODELETING\",\n    });\n\n    var createQos = new AliCloud.ExpressConnect.TrafficQos(\"createQos\", new()\n    {\n        QosName = name,\n        QosDescription = \"terraform-example\",\n    });\n\n    var associateQos = new AliCloud.ExpressConnect.TrafficQosAssociation(\"associateQos\", new()\n    {\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Ids[1])),\n        QosId = createQos.Id,\n        InstanceType = \"PHYSICALCONNECTION\",\n    });\n\n    var createQosQueue = new AliCloud.ExpressConnect.TrafficQosQueue(\"createQosQueue\", new()\n    {\n        QosId = createQos.Id,\n        BandwidthPercent = \"60\",\n        QueueDescription = \"terraform-example\",\n        QueueName = name,\n        QueueType = \"Medium\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateQos, err := expressconnect.NewTrafficQos(ctx, \"createQos\", \u0026expressconnect.TrafficQosArgs{\n\t\t\tQosName:        pulumi.String(name),\n\t\t\tQosDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = expressconnect.NewTrafficQosAssociation(ctx, \"associateQos\", \u0026expressconnect.TrafficQosAssociationArgs{\n\t\t\tInstanceId:   pulumi.String(_default.Ids[1]),\n\t\t\tQosId:        createQos.ID(),\n\t\t\tInstanceType: pulumi.String(\"PHYSICALCONNECTION\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = expressconnect.NewTrafficQosQueue(ctx, \"createQosQueue\", \u0026expressconnect.TrafficQosQueueArgs{\n\t\t\tQosId:            createQos.ID(),\n\t\t\tBandwidthPercent: pulumi.String(\"60\"),\n\t\t\tQueueDescription: pulumi.String(\"terraform-example\"),\n\t\t\tQueueName:        pulumi.String(name),\n\t\t\tQueueType:        pulumi.String(\"Medium\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.alicloud.expressconnect.TrafficQos;\nimport com.pulumi.alicloud.expressconnect.TrafficQosArgs;\nimport com.pulumi.alicloud.expressconnect.TrafficQosAssociation;\nimport com.pulumi.alicloud.expressconnect.TrafficQosAssociationArgs;\nimport com.pulumi.alicloud.expressconnect.TrafficQosQueue;\nimport com.pulumi.alicloud.expressconnect.TrafficQosQueueArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"preserved-NODELETING\")\n            .build());\n\n        var createQos = new TrafficQos(\"createQos\", TrafficQosArgs.builder()\n            .qosName(name)\n            .qosDescription(\"terraform-example\")\n            .build());\n\n        var associateQos = new TrafficQosAssociation(\"associateQos\", TrafficQosAssociationArgs.builder()\n            .instanceId(default_.ids()[1])\n            .qosId(createQos.id())\n            .instanceType(\"PHYSICALCONNECTION\")\n            .build());\n\n        var createQosQueue = new TrafficQosQueue(\"createQosQueue\", TrafficQosQueueArgs.builder()\n            .qosId(createQos.id())\n            .bandwidthPercent(\"60\")\n            .queueDescription(\"terraform-example\")\n            .queueName(name)\n            .queueType(\"Medium\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createQos:\n    type: alicloud:expressconnect:TrafficQos\n    properties:\n      qosName: ${name}\n      qosDescription: terraform-example\n  associateQos:\n    type: alicloud:expressconnect:TrafficQosAssociation\n    properties:\n      instanceId: ${default.ids[1]}\n      qosId: ${createQos.id}\n      instanceType: PHYSICALCONNECTION\n  createQosQueue:\n    type: alicloud:expressconnect:TrafficQosQueue\n    properties:\n      qosId: ${createQos.id}\n      bandwidthPercent: '60'\n      queueDescription: terraform-example\n      queueName: ${name}\n      queueType: Medium\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: preserved-NODELETING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Traffic Qos Queue can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:expressconnect/trafficQosQueue:TrafficQosQueue example \u003cqos_id\u003e:\u003cqueue_id\u003e\n```\n\n","properties":{"bandwidthPercent":{"type":"string","description":"QoS queue bandwidth percentage.\n\n- When the QoS queue type is `Medium`, this field must be entered. Valid values: 1 to 100.\n- When the QoS queue type is `Default`, this field is \"-\".\n"},"qosId":{"type":"string","description":"The ID of the QoS policy.\n"},"queueDescription":{"type":"string","description":"The description of the QoS queue.\nThe length is 0 to 256 characters and cannot start with 'http:// 'or 'https.\n"},"queueId":{"type":"string","description":"The ID of the QoS queue.\n"},"queueName":{"type":"string","description":"The name of the QoS queue.\nThe length is 0 to 128 characters and cannot start with 'http:// 'or 'https.\n"},"queueType":{"type":"string","description":"QoS queue type, value:\n- `High`: High priority queue.\n- `Medium`: Normal priority queue.\n- `Default`: the Default priority queue.\n\n\u003e **NOTE:**  Default priority queue cannot be created.\n"},"status":{"type":"string","description":"The status of the resource\n"}},"required":["bandwidthPercent","qosId","queueId","queueType","status"],"inputProperties":{"bandwidthPercent":{"type":"string","description":"QoS queue bandwidth percentage.\n\n- When the QoS queue type is `Medium`, this field must be entered. Valid values: 1 to 100.\n- When the QoS queue type is `Default`, this field is \"-\".\n"},"qosId":{"type":"string","description":"The ID of the QoS policy.\n","willReplaceOnChanges":true},"queueDescription":{"type":"string","description":"The description of the QoS queue.\nThe length is 0 to 256 characters and cannot start with 'http:// 'or 'https.\n"},"queueName":{"type":"string","description":"The name of the QoS queue.\nThe length is 0 to 128 characters and cannot start with 'http:// 'or 'https.\n"},"queueType":{"type":"string","description":"QoS queue type, value:\n- `High`: High priority queue.\n- `Medium`: Normal priority queue.\n- `Default`: the Default priority queue.\n\n\u003e **NOTE:**  Default priority queue cannot be created.\n","willReplaceOnChanges":true}},"requiredInputs":["qosId","queueType"],"stateInputs":{"description":"Input properties used for looking up and filtering TrafficQosQueue resources.\n","properties":{"bandwidthPercent":{"type":"string","description":"QoS queue bandwidth percentage.\n\n- When the QoS queue type is `Medium`, this field must be entered. Valid values: 1 to 100.\n- When the QoS queue type is `Default`, this field is \"-\".\n"},"qosId":{"type":"string","description":"The ID of the QoS policy.\n","willReplaceOnChanges":true},"queueDescription":{"type":"string","description":"The description of the QoS queue.\nThe length is 0 to 256 characters and cannot start with 'http:// 'or 'https.\n"},"queueId":{"type":"string","description":"The ID of the QoS queue.\n"},"queueName":{"type":"string","description":"The name of the QoS queue.\nThe length is 0 to 128 characters and cannot start with 'http:// 'or 'https.\n"},"queueType":{"type":"string","description":"QoS queue type, value:\n- `High`: High priority queue.\n- `Medium`: Normal priority queue.\n- `Default`: the Default priority queue.\n\n\u003e **NOTE:**  Default priority queue cannot be created.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object"}},"alicloud:expressconnect/trafficQosRule:TrafficQosRule":{"description":"Provides a Express Connect Traffic Qos Rule resource.\n\nExpress Connect Traffic QoS Rule.\n\nFor information about Express Connect Traffic Qos Rule and how to use it, see [What is Traffic Qos Rule](https://next.api.alibabacloud.com/document/Vpc/2016-04-28/CreateExpressConnectTrafficQosRule).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"preserved-NODELETING\",\n});\nconst createQos = new alicloud.expressconnect.TrafficQos(\"createQos\", {\n    qosName: name,\n    qosDescription: \"terraform-example\",\n});\nconst associateQos = new alicloud.expressconnect.TrafficQosAssociation(\"associateQos\", {\n    instanceId: _default.then(_default =\u003e _default.ids?.[1]),\n    qosId: createQos.id,\n    instanceType: \"PHYSICALCONNECTION\",\n});\nconst createQosQueue = new alicloud.expressconnect.TrafficQosQueue(\"createQosQueue\", {\n    qosId: createQos.id,\n    bandwidthPercent: \"60\",\n    queueDescription: \"terraform-example\",\n    queueName: name,\n    queueType: \"Medium\",\n});\nconst defaultTrafficQosRule = new alicloud.expressconnect.TrafficQosRule(\"default\", {\n    ruleDescription: \"terraform-example\",\n    priority: 1,\n    protocol: \"ALL\",\n    srcPortRange: \"-1/-1\",\n    dstIpv6Cidr: \"2001:db8:1234:5678::/64\",\n    srcIpv6Cidr: \"2001:db8:1234:5678::/64\",\n    dstPortRange: \"-1/-1\",\n    remarkingDscp: -1,\n    queueId: createQosQueue.queueId,\n    qosId: createQos.id,\n    matchDscp: -1,\n    ruleName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.expressconnect.get_physical_connections(name_regex=\"preserved-NODELETING\")\ncreate_qos = alicloud.expressconnect.TrafficQos(\"createQos\",\n    qos_name=name,\n    qos_description=\"terraform-example\")\nassociate_qos = alicloud.expressconnect.TrafficQosAssociation(\"associateQos\",\n    instance_id=default.ids[1],\n    qos_id=create_qos.id,\n    instance_type=\"PHYSICALCONNECTION\")\ncreate_qos_queue = alicloud.expressconnect.TrafficQosQueue(\"createQosQueue\",\n    qos_id=create_qos.id,\n    bandwidth_percent=\"60\",\n    queue_description=\"terraform-example\",\n    queue_name=name,\n    queue_type=\"Medium\")\ndefault_traffic_qos_rule = alicloud.expressconnect.TrafficQosRule(\"default\",\n    rule_description=\"terraform-example\",\n    priority=1,\n    protocol=\"ALL\",\n    src_port_range=\"-1/-1\",\n    dst_ipv6_cidr=\"2001:db8:1234:5678::/64\",\n    src_ipv6_cidr=\"2001:db8:1234:5678::/64\",\n    dst_port_range=\"-1/-1\",\n    remarking_dscp=-1,\n    queue_id=create_qos_queue.queue_id,\n    qos_id=create_qos.id,\n    match_dscp=-1,\n    rule_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"preserved-NODELETING\",\n    });\n\n    var createQos = new AliCloud.ExpressConnect.TrafficQos(\"createQos\", new()\n    {\n        QosName = name,\n        QosDescription = \"terraform-example\",\n    });\n\n    var associateQos = new AliCloud.ExpressConnect.TrafficQosAssociation(\"associateQos\", new()\n    {\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Ids[1])),\n        QosId = createQos.Id,\n        InstanceType = \"PHYSICALCONNECTION\",\n    });\n\n    var createQosQueue = new AliCloud.ExpressConnect.TrafficQosQueue(\"createQosQueue\", new()\n    {\n        QosId = createQos.Id,\n        BandwidthPercent = \"60\",\n        QueueDescription = \"terraform-example\",\n        QueueName = name,\n        QueueType = \"Medium\",\n    });\n\n    var defaultTrafficQosRule = new AliCloud.ExpressConnect.TrafficQosRule(\"default\", new()\n    {\n        RuleDescription = \"terraform-example\",\n        Priority = 1,\n        Protocol = \"ALL\",\n        SrcPortRange = \"-1/-1\",\n        DstIpv6Cidr = \"2001:db8:1234:5678::/64\",\n        SrcIpv6Cidr = \"2001:db8:1234:5678::/64\",\n        DstPortRange = \"-1/-1\",\n        RemarkingDscp = -1,\n        QueueId = createQosQueue.QueueId,\n        QosId = createQos.Id,\n        MatchDscp = -1,\n        RuleName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateQos, err := expressconnect.NewTrafficQos(ctx, \"createQos\", \u0026expressconnect.TrafficQosArgs{\n\t\t\tQosName:        pulumi.String(name),\n\t\t\tQosDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = expressconnect.NewTrafficQosAssociation(ctx, \"associateQos\", \u0026expressconnect.TrafficQosAssociationArgs{\n\t\t\tInstanceId:   pulumi.String(_default.Ids[1]),\n\t\t\tQosId:        createQos.ID(),\n\t\t\tInstanceType: pulumi.String(\"PHYSICALCONNECTION\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateQosQueue, err := expressconnect.NewTrafficQosQueue(ctx, \"createQosQueue\", \u0026expressconnect.TrafficQosQueueArgs{\n\t\t\tQosId:            createQos.ID(),\n\t\t\tBandwidthPercent: pulumi.String(\"60\"),\n\t\t\tQueueDescription: pulumi.String(\"terraform-example\"),\n\t\t\tQueueName:        pulumi.String(name),\n\t\t\tQueueType:        pulumi.String(\"Medium\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = expressconnect.NewTrafficQosRule(ctx, \"default\", \u0026expressconnect.TrafficQosRuleArgs{\n\t\t\tRuleDescription: pulumi.String(\"terraform-example\"),\n\t\t\tPriority:        pulumi.Int(1),\n\t\t\tProtocol:        pulumi.String(\"ALL\"),\n\t\t\tSrcPortRange:    pulumi.String(\"-1/-1\"),\n\t\t\tDstIpv6Cidr:     pulumi.String(\"2001:db8:1234:5678::/64\"),\n\t\t\tSrcIpv6Cidr:     pulumi.String(\"2001:db8:1234:5678::/64\"),\n\t\t\tDstPortRange:    pulumi.String(\"-1/-1\"),\n\t\t\tRemarkingDscp:   pulumi.Int(-1),\n\t\t\tQueueId:         createQosQueue.QueueId,\n\t\t\tQosId:           createQos.ID(),\n\t\t\tMatchDscp:       pulumi.Int(-1),\n\t\t\tRuleName:        pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.alicloud.expressconnect.TrafficQos;\nimport com.pulumi.alicloud.expressconnect.TrafficQosArgs;\nimport com.pulumi.alicloud.expressconnect.TrafficQosAssociation;\nimport com.pulumi.alicloud.expressconnect.TrafficQosAssociationArgs;\nimport com.pulumi.alicloud.expressconnect.TrafficQosQueue;\nimport com.pulumi.alicloud.expressconnect.TrafficQosQueueArgs;\nimport com.pulumi.alicloud.expressconnect.TrafficQosRule;\nimport com.pulumi.alicloud.expressconnect.TrafficQosRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"preserved-NODELETING\")\n            .build());\n\n        var createQos = new TrafficQos(\"createQos\", TrafficQosArgs.builder()\n            .qosName(name)\n            .qosDescription(\"terraform-example\")\n            .build());\n\n        var associateQos = new TrafficQosAssociation(\"associateQos\", TrafficQosAssociationArgs.builder()\n            .instanceId(default_.ids()[1])\n            .qosId(createQos.id())\n            .instanceType(\"PHYSICALCONNECTION\")\n            .build());\n\n        var createQosQueue = new TrafficQosQueue(\"createQosQueue\", TrafficQosQueueArgs.builder()\n            .qosId(createQos.id())\n            .bandwidthPercent(\"60\")\n            .queueDescription(\"terraform-example\")\n            .queueName(name)\n            .queueType(\"Medium\")\n            .build());\n\n        var defaultTrafficQosRule = new TrafficQosRule(\"defaultTrafficQosRule\", TrafficQosRuleArgs.builder()\n            .ruleDescription(\"terraform-example\")\n            .priority(1)\n            .protocol(\"ALL\")\n            .srcPortRange(\"-1/-1\")\n            .dstIpv6Cidr(\"2001:db8:1234:5678::/64\")\n            .srcIpv6Cidr(\"2001:db8:1234:5678::/64\")\n            .dstPortRange(\"-1/-1\")\n            .remarkingDscp(-1)\n            .queueId(createQosQueue.queueId())\n            .qosId(createQos.id())\n            .matchDscp(-1)\n            .ruleName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createQos:\n    type: alicloud:expressconnect:TrafficQos\n    properties:\n      qosName: ${name}\n      qosDescription: terraform-example\n  associateQos:\n    type: alicloud:expressconnect:TrafficQosAssociation\n    properties:\n      instanceId: ${default.ids[1]}\n      qosId: ${createQos.id}\n      instanceType: PHYSICALCONNECTION\n  createQosQueue:\n    type: alicloud:expressconnect:TrafficQosQueue\n    properties:\n      qosId: ${createQos.id}\n      bandwidthPercent: '60'\n      queueDescription: terraform-example\n      queueName: ${name}\n      queueType: Medium\n  defaultTrafficQosRule:\n    type: alicloud:expressconnect:TrafficQosRule\n    name: default\n    properties:\n      ruleDescription: terraform-example\n      priority: '1'\n      protocol: ALL\n      srcPortRange: -1/-1\n      dstIpv6Cidr: 2001:db8:1234:5678::/64\n      srcIpv6Cidr: 2001:db8:1234:5678::/64\n      dstPortRange: -1/-1\n      remarkingDscp: '-1'\n      queueId: ${createQosQueue.queueId}\n      qosId: ${createQos.id}\n      matchDscp: '-1'\n      ruleName: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: preserved-NODELETING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Traffic Qos Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:expressconnect/trafficQosRule:TrafficQosRule example \u003cqos_id\u003e:\u003cqueue_id\u003e:\u003crule_id\u003e\n```\n\n","properties":{"dstCidr":{"type":"string","description":"The traffic of the QoS rule matches the Destination IPv4 network segment.\n\n\u003e **NOTE:**  If this parameter is not supported, enter `SrcIPv6Cidr` or **DstIPv6Cidr * *.\n"},"dstIpv6Cidr":{"type":"string","description":"The QoS rule traffic matches the Destination IPv6 network segment.\n\n\u003e **NOTE:**  If this parameter is not supported, enter `SrcCidr` or **DstCidr * *.\n"},"dstPortRange":{"type":"string","description":"QoS rule traffic matches the destination port number range. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. If not, the value is - 1. Currently, only a single port number is supported, and the start and end of the port number must be the same. The corresponding destination port number range is fixed for different protocol types. The values are as follows:\n- `ALL`:-1/-1, not editable.\n- **ICMP(IPv4)**:-1/-1, non-editable.\n- **ICMPv6(IPv6)**:-1/-1, non-editable.\n- `TCP`:-1/-1, editable.\n- `UDP`:-1/-1, editable.\n- `GRE`:-1/-1, not editable.\n- `SSH`:22/22, not editable.\n- `Telnet`:23/23, not editable.\n- `HTTP`:80/80, non-editable.\n- `HTTPS`:443/443, which cannot be edited.\n- **MS SQL**:1443/1443, which cannot be edited.\n- `Oracle`:1521/1521, non-editable.\n- `MySql`:3306/3306, non-editable.\n- `RDP`:3389/3389, non-editable.\n- `PostgreSQL`:5432/5432, non-editable.\n- `Redis`:6379/6379, non-editable.\n"},"matchDscp":{"type":"integer","description":"The DSCP value of the traffic matched by the QoS rule. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`63`\" pulumi-lang-dotnet=\"`63`\" pulumi-lang-go=\"`63`\" pulumi-lang-python=\"`63`\" pulumi-lang-yaml=\"`63`\" pulumi-lang-java=\"`63`\"\u003e`63`\u003c/span\u003e. If not, the value is - 1.\n"},"priority":{"type":"integer","description":"QoS rule priority. Value range: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9000`\" pulumi-lang-dotnet=\"`9000`\" pulumi-lang-go=\"`9000`\" pulumi-lang-python=\"`9000`\" pulumi-lang-yaml=\"`9000`\" pulumi-lang-java=\"`9000`\"\u003e`9000`\u003c/span\u003e. The larger the number, the higher the priority. The priority of a QoS rule cannot be repeated in the same QoS policy.\n"},"protocol":{"type":"string","description":"QoS rule protocol type, value:\n- `ALL`\n- **ICMP(IPv4)**\n- **ICMPv6(IPv6)* *\n- `TCP`\n- `UDP`\n- `GRE`\n- `SSH`\n- `Telnet`\n- `HTTP`\n- `HTTPS`\n- **MS SQL**\n- `Oracle`\n- `MySql`\n- `RDP`\n- `PostgreSQL`\n- `Redis`\n"},"qosId":{"type":"string","description":"The QoS policy ID.\n"},"queueId":{"type":"string","description":"The QoS queue ID.\n"},"remarkingDscp":{"type":"integer","description":"Modify The DSCP value in the flow. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`63`\" pulumi-lang-dotnet=\"`63`\" pulumi-lang-go=\"`63`\" pulumi-lang-python=\"`63`\" pulumi-lang-yaml=\"`63`\" pulumi-lang-java=\"`63`\"\u003e`63`\u003c/span\u003e. If the value is not modified, the value is - 1.\n"},"ruleDescription":{"type":"string","description":"The description of the QoS rule.\nThe length is 0 to 256 characters and cannot start with 'http:// 'or 'https.\n"},"ruleId":{"type":"string","description":"The ID of the QoS rule.\n"},"ruleName":{"type":"string","description":"The name of the QoS rule.\nThe length is 0 to 128 characters and cannot start with 'http:// 'or 'https.\n"},"srcCidr":{"type":"string","description":"The QoS rule traffic matches the source IPv4 CIDR block.\n\n\u003e **NOTE:**  If this parameter is not supported, enter `SrcIPv6Cidr` or **DstIPv6Cidr * *.\n"},"srcIpv6Cidr":{"type":"string","description":"The QoS rule traffic matches the source IPv6 network segment.\n\n\u003e **NOTE:**  If this parameter is not supported, enter `SrcCidr` or **DstCidr * *.\n"},"srcPortRange":{"type":"string","description":"The source port number of the QoS rule traffic matching. The value range is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. If the traffic does not match, the value is - 1. Currently, only a single port number is supported, and the start and end of the port number must be the same.\n"},"status":{"type":"string","description":"The status of the QoS rule. Value:\n"}},"required":["dstPortRange","matchDscp","priority","protocol","qosId","queueId","remarkingDscp","ruleId","srcPortRange","status"],"inputProperties":{"dstCidr":{"type":"string","description":"The traffic of the QoS rule matches the Destination IPv4 network segment.\n\n\u003e **NOTE:**  If this parameter is not supported, enter `SrcIPv6Cidr` or **DstIPv6Cidr * *.\n"},"dstIpv6Cidr":{"type":"string","description":"The QoS rule traffic matches the Destination IPv6 network segment.\n\n\u003e **NOTE:**  If this parameter is not supported, enter `SrcCidr` or **DstCidr * *.\n"},"dstPortRange":{"type":"string","description":"QoS rule traffic matches the destination port number range. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. If not, the value is - 1. Currently, only a single port number is supported, and the start and end of the port number must be the same. The corresponding destination port number range is fixed for different protocol types. The values are as follows:\n- `ALL`:-1/-1, not editable.\n- **ICMP(IPv4)**:-1/-1, non-editable.\n- **ICMPv6(IPv6)**:-1/-1, non-editable.\n- `TCP`:-1/-1, editable.\n- `UDP`:-1/-1, editable.\n- `GRE`:-1/-1, not editable.\n- `SSH`:22/22, not editable.\n- `Telnet`:23/23, not editable.\n- `HTTP`:80/80, non-editable.\n- `HTTPS`:443/443, which cannot be edited.\n- **MS SQL**:1443/1443, which cannot be edited.\n- `Oracle`:1521/1521, non-editable.\n- `MySql`:3306/3306, non-editable.\n- `RDP`:3389/3389, non-editable.\n- `PostgreSQL`:5432/5432, non-editable.\n- `Redis`:6379/6379, non-editable.\n"},"matchDscp":{"type":"integer","description":"The DSCP value of the traffic matched by the QoS rule. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`63`\" pulumi-lang-dotnet=\"`63`\" pulumi-lang-go=\"`63`\" pulumi-lang-python=\"`63`\" pulumi-lang-yaml=\"`63`\" pulumi-lang-java=\"`63`\"\u003e`63`\u003c/span\u003e. If not, the value is - 1.\n"},"priority":{"type":"integer","description":"QoS rule priority. Value range: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9000`\" pulumi-lang-dotnet=\"`9000`\" pulumi-lang-go=\"`9000`\" pulumi-lang-python=\"`9000`\" pulumi-lang-yaml=\"`9000`\" pulumi-lang-java=\"`9000`\"\u003e`9000`\u003c/span\u003e. The larger the number, the higher the priority. The priority of a QoS rule cannot be repeated in the same QoS policy.\n"},"protocol":{"type":"string","description":"QoS rule protocol type, value:\n- `ALL`\n- **ICMP(IPv4)**\n- **ICMPv6(IPv6)* *\n- `TCP`\n- `UDP`\n- `GRE`\n- `SSH`\n- `Telnet`\n- `HTTP`\n- `HTTPS`\n- **MS SQL**\n- `Oracle`\n- `MySql`\n- `RDP`\n- `PostgreSQL`\n- `Redis`\n"},"qosId":{"type":"string","description":"The QoS policy ID.\n","willReplaceOnChanges":true},"queueId":{"type":"string","description":"The QoS queue ID.\n","willReplaceOnChanges":true},"remarkingDscp":{"type":"integer","description":"Modify The DSCP value in the flow. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`63`\" pulumi-lang-dotnet=\"`63`\" pulumi-lang-go=\"`63`\" pulumi-lang-python=\"`63`\" pulumi-lang-yaml=\"`63`\" pulumi-lang-java=\"`63`\"\u003e`63`\u003c/span\u003e. If the value is not modified, the value is - 1.\n"},"ruleDescription":{"type":"string","description":"The description of the QoS rule.\nThe length is 0 to 256 characters and cannot start with 'http:// 'or 'https.\n"},"ruleName":{"type":"string","description":"The name of the QoS rule.\nThe length is 0 to 128 characters and cannot start with 'http:// 'or 'https.\n"},"srcCidr":{"type":"string","description":"The QoS rule traffic matches the source IPv4 CIDR block.\n\n\u003e **NOTE:**  If this parameter is not supported, enter `SrcIPv6Cidr` or **DstIPv6Cidr * *.\n"},"srcIpv6Cidr":{"type":"string","description":"The QoS rule traffic matches the source IPv6 network segment.\n\n\u003e **NOTE:**  If this parameter is not supported, enter `SrcCidr` or **DstCidr * *.\n"},"srcPortRange":{"type":"string","description":"The source port number of the QoS rule traffic matching. The value range is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. If the traffic does not match, the value is - 1. Currently, only a single port number is supported, and the start and end of the port number must be the same.\n"}},"requiredInputs":["priority","protocol","qosId","queueId"],"stateInputs":{"description":"Input properties used for looking up and filtering TrafficQosRule resources.\n","properties":{"dstCidr":{"type":"string","description":"The traffic of the QoS rule matches the Destination IPv4 network segment.\n\n\u003e **NOTE:**  If this parameter is not supported, enter `SrcIPv6Cidr` or **DstIPv6Cidr * *.\n"},"dstIpv6Cidr":{"type":"string","description":"The QoS rule traffic matches the Destination IPv6 network segment.\n\n\u003e **NOTE:**  If this parameter is not supported, enter `SrcCidr` or **DstCidr * *.\n"},"dstPortRange":{"type":"string","description":"QoS rule traffic matches the destination port number range. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. If not, the value is - 1. Currently, only a single port number is supported, and the start and end of the port number must be the same. The corresponding destination port number range is fixed for different protocol types. The values are as follows:\n- `ALL`:-1/-1, not editable.\n- **ICMP(IPv4)**:-1/-1, non-editable.\n- **ICMPv6(IPv6)**:-1/-1, non-editable.\n- `TCP`:-1/-1, editable.\n- `UDP`:-1/-1, editable.\n- `GRE`:-1/-1, not editable.\n- `SSH`:22/22, not editable.\n- `Telnet`:23/23, not editable.\n- `HTTP`:80/80, non-editable.\n- `HTTPS`:443/443, which cannot be edited.\n- **MS SQL**:1443/1443, which cannot be edited.\n- `Oracle`:1521/1521, non-editable.\n- `MySql`:3306/3306, non-editable.\n- `RDP`:3389/3389, non-editable.\n- `PostgreSQL`:5432/5432, non-editable.\n- `Redis`:6379/6379, non-editable.\n"},"matchDscp":{"type":"integer","description":"The DSCP value of the traffic matched by the QoS rule. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`63`\" pulumi-lang-dotnet=\"`63`\" pulumi-lang-go=\"`63`\" pulumi-lang-python=\"`63`\" pulumi-lang-yaml=\"`63`\" pulumi-lang-java=\"`63`\"\u003e`63`\u003c/span\u003e. If not, the value is - 1.\n"},"priority":{"type":"integer","description":"QoS rule priority. Value range: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9000`\" pulumi-lang-dotnet=\"`9000`\" pulumi-lang-go=\"`9000`\" pulumi-lang-python=\"`9000`\" pulumi-lang-yaml=\"`9000`\" pulumi-lang-java=\"`9000`\"\u003e`9000`\u003c/span\u003e. The larger the number, the higher the priority. The priority of a QoS rule cannot be repeated in the same QoS policy.\n"},"protocol":{"type":"string","description":"QoS rule protocol type, value:\n- `ALL`\n- **ICMP(IPv4)**\n- **ICMPv6(IPv6)* *\n- `TCP`\n- `UDP`\n- `GRE`\n- `SSH`\n- `Telnet`\n- `HTTP`\n- `HTTPS`\n- **MS SQL**\n- `Oracle`\n- `MySql`\n- `RDP`\n- `PostgreSQL`\n- `Redis`\n"},"qosId":{"type":"string","description":"The QoS policy ID.\n","willReplaceOnChanges":true},"queueId":{"type":"string","description":"The QoS queue ID.\n","willReplaceOnChanges":true},"remarkingDscp":{"type":"integer","description":"Modify The DSCP value in the flow. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`63`\" pulumi-lang-dotnet=\"`63`\" pulumi-lang-go=\"`63`\" pulumi-lang-python=\"`63`\" pulumi-lang-yaml=\"`63`\" pulumi-lang-java=\"`63`\"\u003e`63`\u003c/span\u003e. If the value is not modified, the value is - 1.\n"},"ruleDescription":{"type":"string","description":"The description of the QoS rule.\nThe length is 0 to 256 characters and cannot start with 'http:// 'or 'https.\n"},"ruleId":{"type":"string","description":"The ID of the QoS rule.\n"},"ruleName":{"type":"string","description":"The name of the QoS rule.\nThe length is 0 to 128 characters and cannot start with 'http:// 'or 'https.\n"},"srcCidr":{"type":"string","description":"The QoS rule traffic matches the source IPv4 CIDR block.\n\n\u003e **NOTE:**  If this parameter is not supported, enter `SrcIPv6Cidr` or **DstIPv6Cidr * *.\n"},"srcIpv6Cidr":{"type":"string","description":"The QoS rule traffic matches the source IPv6 network segment.\n\n\u003e **NOTE:**  If this parameter is not supported, enter `SrcCidr` or **DstCidr * *.\n"},"srcPortRange":{"type":"string","description":"The source port number of the QoS rule traffic matching. The value range is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. If the traffic does not match, the value is - 1. Currently, only a single port number is supported, and the start and end of the port number must be the same.\n"},"status":{"type":"string","description":"The status of the QoS rule. Value:\n"}},"type":"object"}},"alicloud:expressconnect/vbrPconnAssociation:VbrPconnAssociation":{"description":"Provides a Express Connect Vbr Pconn Association resource.\n\nVBR multi-pconn Association.\n\nFor information about Express Connect Vbr Pconn Association and how to use it, see [What is Vbr Pconn Association](https://www.alibabacloud.com/help/en/express-connect/latest/associatephysicalconnectiontovirtualborderrouter#doc-api-Vpc-AssociatePhysicalConnectionToVirtualBorderRouter).\n\n\u003e **NOTE:** Available since v1.196.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst example = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"^preserved-NODELETING\",\n});\nconst _default = new alicloud.expressconnect.VirtualBorderRouter(\"default\", {\n    localGatewayIp: \"10.0.0.1\",\n    peerGatewayIp: \"10.0.0.2\",\n    peeringSubnetMask: \"255.255.255.252\",\n    physicalConnectionId: example.then(example =\u003e example.connections?.[0]?.id),\n    virtualBorderRouterName: name,\n    vlanId: 110,\n    minRxInterval: 1000,\n    minTxInterval: 1000,\n    detectMultiplier: 10,\n    enableIpv6: true,\n    localIpv6GatewayIp: \"2408:4004:cc:400::1\",\n    peerIpv6GatewayIp: \"2408:4004:cc:400::2\",\n    peeringIpv6SubnetMask: \"2408:4004:cc:400::/56\",\n});\nconst exampleVbrPconnAssociation = new alicloud.expressconnect.VbrPconnAssociation(\"example\", {\n    peerGatewayIp: \"10.0.0.6\",\n    localGatewayIp: \"10.0.0.5\",\n    physicalConnectionId: example.then(example =\u003e example.connections?.[1]?.id),\n    vbrId: _default.id,\n    peeringSubnetMask: \"255.255.255.252\",\n    vlanId: 1122,\n    enableIpv6: true,\n    localIpv6GatewayIp: \"2408:4004:cc::3\",\n    peerIpv6GatewayIp: \"2408:4004:cc::4\",\n    peeringIpv6SubnetMask: \"2408:4004:cc::/56\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nexample = alicloud.expressconnect.get_physical_connections(name_regex=\"^preserved-NODELETING\")\ndefault = alicloud.expressconnect.VirtualBorderRouter(\"default\",\n    local_gateway_ip=\"10.0.0.1\",\n    peer_gateway_ip=\"10.0.0.2\",\n    peering_subnet_mask=\"255.255.255.252\",\n    physical_connection_id=example.connections[0].id,\n    virtual_border_router_name=name,\n    vlan_id=110,\n    min_rx_interval=1000,\n    min_tx_interval=1000,\n    detect_multiplier=10,\n    enable_ipv6=True,\n    local_ipv6_gateway_ip=\"2408:4004:cc:400::1\",\n    peer_ipv6_gateway_ip=\"2408:4004:cc:400::2\",\n    peering_ipv6_subnet_mask=\"2408:4004:cc:400::/56\")\nexample_vbr_pconn_association = alicloud.expressconnect.VbrPconnAssociation(\"example\",\n    peer_gateway_ip=\"10.0.0.6\",\n    local_gateway_ip=\"10.0.0.5\",\n    physical_connection_id=example.connections[1].id,\n    vbr_id=default.id,\n    peering_subnet_mask=\"255.255.255.252\",\n    vlan_id=1122,\n    enable_ipv6=True,\n    local_ipv6_gateway_ip=\"2408:4004:cc::3\",\n    peer_ipv6_gateway_ip=\"2408:4004:cc::4\",\n    peering_ipv6_subnet_mask=\"2408:4004:cc::/56\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var example = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"^preserved-NODELETING\",\n    });\n\n    var @default = new AliCloud.ExpressConnect.VirtualBorderRouter(\"default\", new()\n    {\n        LocalGatewayIp = \"10.0.0.1\",\n        PeerGatewayIp = \"10.0.0.2\",\n        PeeringSubnetMask = \"255.255.255.252\",\n        PhysicalConnectionId = example.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Connections[0]?.Id),\n        VirtualBorderRouterName = name,\n        VlanId = 110,\n        MinRxInterval = 1000,\n        MinTxInterval = 1000,\n        DetectMultiplier = 10,\n        EnableIpv6 = true,\n        LocalIpv6GatewayIp = \"2408:4004:cc:400::1\",\n        PeerIpv6GatewayIp = \"2408:4004:cc:400::2\",\n        PeeringIpv6SubnetMask = \"2408:4004:cc:400::/56\",\n    });\n\n    var exampleVbrPconnAssociation = new AliCloud.ExpressConnect.VbrPconnAssociation(\"example\", new()\n    {\n        PeerGatewayIp = \"10.0.0.6\",\n        LocalGatewayIp = \"10.0.0.5\",\n        PhysicalConnectionId = example.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Connections[1]?.Id),\n        VbrId = @default.Id,\n        PeeringSubnetMask = \"255.255.255.252\",\n        VlanId = 1122,\n        EnableIpv6 = true,\n        LocalIpv6GatewayIp = \"2408:4004:cc::3\",\n        PeerIpv6GatewayIp = \"2408:4004:cc::4\",\n        PeeringIpv6SubnetMask = \"2408:4004:cc::/56\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := expressconnect.NewVirtualBorderRouter(ctx, \"default\", \u0026expressconnect.VirtualBorderRouterArgs{\n\t\t\tLocalGatewayIp:          pulumi.String(\"10.0.0.1\"),\n\t\t\tPeerGatewayIp:           pulumi.String(\"10.0.0.2\"),\n\t\t\tPeeringSubnetMask:       pulumi.String(\"255.255.255.252\"),\n\t\t\tPhysicalConnectionId:    pulumi.String(example.Connections[0].Id),\n\t\t\tVirtualBorderRouterName: pulumi.String(name),\n\t\t\tVlanId:                  pulumi.Int(110),\n\t\t\tMinRxInterval:           pulumi.Int(1000),\n\t\t\tMinTxInterval:           pulumi.Int(1000),\n\t\t\tDetectMultiplier:        pulumi.Int(10),\n\t\t\tEnableIpv6:              pulumi.Bool(true),\n\t\t\tLocalIpv6GatewayIp:      pulumi.String(\"2408:4004:cc:400::1\"),\n\t\t\tPeerIpv6GatewayIp:       pulumi.String(\"2408:4004:cc:400::2\"),\n\t\t\tPeeringIpv6SubnetMask:   pulumi.String(\"2408:4004:cc:400::/56\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = expressconnect.NewVbrPconnAssociation(ctx, \"example\", \u0026expressconnect.VbrPconnAssociationArgs{\n\t\t\tPeerGatewayIp:         pulumi.String(\"10.0.0.6\"),\n\t\t\tLocalGatewayIp:        pulumi.String(\"10.0.0.5\"),\n\t\t\tPhysicalConnectionId:  pulumi.String(example.Connections[1].Id),\n\t\t\tVbrId:                 _default.ID(),\n\t\t\tPeeringSubnetMask:     pulumi.String(\"255.255.255.252\"),\n\t\t\tVlanId:                pulumi.Int(1122),\n\t\t\tEnableIpv6:            pulumi.Bool(true),\n\t\t\tLocalIpv6GatewayIp:    pulumi.String(\"2408:4004:cc::3\"),\n\t\t\tPeerIpv6GatewayIp:     pulumi.String(\"2408:4004:cc::4\"),\n\t\t\tPeeringIpv6SubnetMask: pulumi.String(\"2408:4004:cc::/56\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouter;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouterArgs;\nimport com.pulumi.alicloud.expressconnect.VbrPconnAssociation;\nimport com.pulumi.alicloud.expressconnect.VbrPconnAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var example = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"^preserved-NODELETING\")\n            .build());\n\n        var default_ = new VirtualBorderRouter(\"default\", VirtualBorderRouterArgs.builder()\n            .localGatewayIp(\"10.0.0.1\")\n            .peerGatewayIp(\"10.0.0.2\")\n            .peeringSubnetMask(\"255.255.255.252\")\n            .physicalConnectionId(example.connections()[0].id())\n            .virtualBorderRouterName(name)\n            .vlanId(110)\n            .minRxInterval(1000)\n            .minTxInterval(1000)\n            .detectMultiplier(10)\n            .enableIpv6(true)\n            .localIpv6GatewayIp(\"2408:4004:cc:400::1\")\n            .peerIpv6GatewayIp(\"2408:4004:cc:400::2\")\n            .peeringIpv6SubnetMask(\"2408:4004:cc:400::/56\")\n            .build());\n\n        var exampleVbrPconnAssociation = new VbrPconnAssociation(\"exampleVbrPconnAssociation\", VbrPconnAssociationArgs.builder()\n            .peerGatewayIp(\"10.0.0.6\")\n            .localGatewayIp(\"10.0.0.5\")\n            .physicalConnectionId(example.connections()[1].id())\n            .vbrId(default_.id())\n            .peeringSubnetMask(\"255.255.255.252\")\n            .vlanId(1122)\n            .enableIpv6(true)\n            .localIpv6GatewayIp(\"2408:4004:cc::3\")\n            .peerIpv6GatewayIp(\"2408:4004:cc::4\")\n            .peeringIpv6SubnetMask(\"2408:4004:cc::/56\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:expressconnect:VirtualBorderRouter\n    properties:\n      localGatewayIp: 10.0.0.1\n      peerGatewayIp: 10.0.0.2\n      peeringSubnetMask: 255.255.255.252\n      physicalConnectionId: ${example.connections[0].id}\n      virtualBorderRouterName: ${name}\n      vlanId: 110\n      minRxInterval: 1000\n      minTxInterval: 1000\n      detectMultiplier: 10\n      enableIpv6: true\n      localIpv6GatewayIp: 2408:4004:cc:400::1\n      peerIpv6GatewayIp: 2408:4004:cc:400::2\n      peeringIpv6SubnetMask: 2408:4004:cc:400::/56\n  exampleVbrPconnAssociation:\n    type: alicloud:expressconnect:VbrPconnAssociation\n    name: example\n    properties:\n      peerGatewayIp: 10.0.0.6\n      localGatewayIp: 10.0.0.5\n      physicalConnectionId: ${example.connections[1].id}\n      vbrId: ${default.id}\n      peeringSubnetMask: 255.255.255.252\n      vlanId: '1122'\n      enableIpv6: true\n      localIpv6GatewayIp: 2408:4004:cc::3\n      peerIpv6GatewayIp: 2408:4004:cc::4\n      peeringIpv6SubnetMask: 2408:4004:cc::/56\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: ^preserved-NODELETING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Vbr Pconn Association can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:expressconnect/vbrPconnAssociation:VbrPconnAssociation example \u003cvbr_id\u003e:\u003cphysical_connection_id\u003e\n```\n\n","properties":{"circuitCode":{"type":"string","description":"(Optional, ForceNew, Computed) The circuit code provided by the operator for the physical connection.\n"},"enableIpv6":{"type":"boolean","description":"Whether IPv6 is enabled. Value:\n"},"localGatewayIp":{"type":"string","description":"The Alibaba cloud IP address of the VBR instance.\n"},"localIpv6GatewayIp":{"type":"string","description":"The IPv6 address on the Alibaba Cloud side of the VBR instance.\n"},"peerGatewayIp":{"type":"string","description":"The client IP address of the VBR instance.\n- This attribute only allows the VBR owner to specify or modify.\n- Required when creating a VBR instance for the physical connection owner.\n"},"peerIpv6GatewayIp":{"type":"string","description":"The IPv6 address of the client side of the VBR instance.\n- This attribute only allows the VBR owner to specify or modify.\n- Required when creating a VBR instance for the physical connection owner.\n"},"peeringIpv6SubnetMask":{"type":"string","description":"The subnet mask of the Alibaba Cloud side and the client side of the VBR instance.\nTwo IPv6 addresses must be in the same subnet.\n"},"peeringSubnetMask":{"type":"string","description":"The subnet mask of the Alibaba Cloud side and the client side of the VBR instance.\nThe two IP addresses must be in the same subnet.\n"},"physicalConnectionId":{"type":"string","description":"The ID of the leased line instance.\n"},"status":{"type":"string","description":"The status of the resource\n"},"vbrId":{"type":"string","description":"The ID of the VBR instance.\n"},"vlanId":{"type":"integer","description":"VLAN ID of the VBR. Valid values: **0 to 2999**.\n\n\u003e **NOTE:**  only the owner of the physical connection can specify this parameter. The VLAN ID of two VBRs under the same physical connection cannot be the same.\n"}},"required":["circuitCode","enableIpv6","physicalConnectionId","status","vbrId","vlanId"],"inputProperties":{"enableIpv6":{"type":"boolean","description":"Whether IPv6 is enabled. Value:\n","willReplaceOnChanges":true},"localGatewayIp":{"type":"string","description":"The Alibaba cloud IP address of the VBR instance.\n","willReplaceOnChanges":true},"localIpv6GatewayIp":{"type":"string","description":"The IPv6 address on the Alibaba Cloud side of the VBR instance.\n","willReplaceOnChanges":true},"peerGatewayIp":{"type":"string","description":"The client IP address of the VBR instance.\n- This attribute only allows the VBR owner to specify or modify.\n- Required when creating a VBR instance for the physical connection owner.\n","willReplaceOnChanges":true},"peerIpv6GatewayIp":{"type":"string","description":"The IPv6 address of the client side of the VBR instance.\n- This attribute only allows the VBR owner to specify or modify.\n- Required when creating a VBR instance for the physical connection owner.\n","willReplaceOnChanges":true},"peeringIpv6SubnetMask":{"type":"string","description":"The subnet mask of the Alibaba Cloud side and the client side of the VBR instance.\nTwo IPv6 addresses must be in the same subnet.\n","willReplaceOnChanges":true},"peeringSubnetMask":{"type":"string","description":"The subnet mask of the Alibaba Cloud side and the client side of the VBR instance.\nThe two IP addresses must be in the same subnet.\n","willReplaceOnChanges":true},"physicalConnectionId":{"type":"string","description":"The ID of the leased line instance.\n","willReplaceOnChanges":true},"vbrId":{"type":"string","description":"The ID of the VBR instance.\n","willReplaceOnChanges":true},"vlanId":{"type":"integer","description":"VLAN ID of the VBR. Valid values: **0 to 2999**.\n\n\u003e **NOTE:**  only the owner of the physical connection can specify this parameter. The VLAN ID of two VBRs under the same physical connection cannot be the same.\n","willReplaceOnChanges":true}},"requiredInputs":["physicalConnectionId","vbrId","vlanId"],"stateInputs":{"description":"Input properties used for looking up and filtering VbrPconnAssociation resources.\n","properties":{"circuitCode":{"type":"string","description":"(Optional, ForceNew, Computed) The circuit code provided by the operator for the physical connection.\n"},"enableIpv6":{"type":"boolean","description":"Whether IPv6 is enabled. Value:\n","willReplaceOnChanges":true},"localGatewayIp":{"type":"string","description":"The Alibaba cloud IP address of the VBR instance.\n","willReplaceOnChanges":true},"localIpv6GatewayIp":{"type":"string","description":"The IPv6 address on the Alibaba Cloud side of the VBR instance.\n","willReplaceOnChanges":true},"peerGatewayIp":{"type":"string","description":"The client IP address of the VBR instance.\n- This attribute only allows the VBR owner to specify or modify.\n- Required when creating a VBR instance for the physical connection owner.\n","willReplaceOnChanges":true},"peerIpv6GatewayIp":{"type":"string","description":"The IPv6 address of the client side of the VBR instance.\n- This attribute only allows the VBR owner to specify or modify.\n- Required when creating a VBR instance for the physical connection owner.\n","willReplaceOnChanges":true},"peeringIpv6SubnetMask":{"type":"string","description":"The subnet mask of the Alibaba Cloud side and the client side of the VBR instance.\nTwo IPv6 addresses must be in the same subnet.\n","willReplaceOnChanges":true},"peeringSubnetMask":{"type":"string","description":"The subnet mask of the Alibaba Cloud side and the client side of the VBR instance.\nThe two IP addresses must be in the same subnet.\n","willReplaceOnChanges":true},"physicalConnectionId":{"type":"string","description":"The ID of the leased line instance.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"},"vbrId":{"type":"string","description":"The ID of the VBR instance.\n","willReplaceOnChanges":true},"vlanId":{"type":"integer","description":"VLAN ID of the VBR. Valid values: **0 to 2999**.\n\n\u003e **NOTE:**  only the owner of the physical connection can specify this parameter. The VLAN ID of two VBRs under the same physical connection cannot be the same.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:expressconnect/virtualBorderRouter:VirtualBorderRouter":{"description":"Provides a Express Connect Virtual Border Router resource.\n\nFor information about Express Connect Virtual Border Router and how to use it, see [What is Virtual Border Router](https://www.alibabacloud.com/help/en/doc-detail/44854.htm).\n\n\u003e **NOTE:** Available since v1.134.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"^preserved-NODELETING\",\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 1,\n    max: 2999,\n});\nconst defaultVirtualBorderRouter = new alicloud.expressconnect.VirtualBorderRouter(\"default\", {\n    localGatewayIp: \"10.0.0.1\",\n    peerGatewayIp: \"10.0.0.2\",\n    peeringSubnetMask: \"255.255.255.252\",\n    physicalConnectionId: _default.then(_default =\u003e _default.connections?.[0]?.id),\n    virtualBorderRouterName: name,\n    vlanId: defaultInteger.id,\n    minRxInterval: 1000,\n    minTxInterval: 1000,\n    detectMultiplier: 10,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.expressconnect.get_physical_connections(name_regex=\"^preserved-NODELETING\")\ndefault_integer = random.index.Integer(\"default\",\n    min=1,\n    max=2999)\ndefault_virtual_border_router = alicloud.expressconnect.VirtualBorderRouter(\"default\",\n    local_gateway_ip=\"10.0.0.1\",\n    peer_gateway_ip=\"10.0.0.2\",\n    peering_subnet_mask=\"255.255.255.252\",\n    physical_connection_id=default.connections[0].id,\n    virtual_border_router_name=name,\n    vlan_id=default_integer[\"id\"],\n    min_rx_interval=1000,\n    min_tx_interval=1000,\n    detect_multiplier=10)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"^preserved-NODELETING\",\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 1,\n        Max = 2999,\n    });\n\n    var defaultVirtualBorderRouter = new AliCloud.ExpressConnect.VirtualBorderRouter(\"default\", new()\n    {\n        LocalGatewayIp = \"10.0.0.1\",\n        PeerGatewayIp = \"10.0.0.2\",\n        PeeringSubnetMask = \"255.255.255.252\",\n        PhysicalConnectionId = @default.Apply(@default =\u003e @default.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Connections[0]?.Id)),\n        VirtualBorderRouterName = name,\n        VlanId = defaultInteger.Id,\n        MinRxInterval = 1000,\n        MinTxInterval = 1000,\n        DetectMultiplier = 10,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 1,\n\t\t\tMax: 2999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = expressconnect.NewVirtualBorderRouter(ctx, \"default\", \u0026expressconnect.VirtualBorderRouterArgs{\n\t\t\tLocalGatewayIp:          pulumi.String(\"10.0.0.1\"),\n\t\t\tPeerGatewayIp:           pulumi.String(\"10.0.0.2\"),\n\t\t\tPeeringSubnetMask:       pulumi.String(\"255.255.255.252\"),\n\t\t\tPhysicalConnectionId:    pulumi.String(_default.Connections[0].Id),\n\t\t\tVirtualBorderRouterName: pulumi.String(name),\n\t\t\tVlanId:                  defaultInteger.Id,\n\t\t\tMinRxInterval:           pulumi.Int(1000),\n\t\t\tMinTxInterval:           pulumi.Int(1000),\n\t\t\tDetectMultiplier:        pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouter;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"^preserved-NODELETING\")\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(1)\n            .max(2999)\n            .build());\n\n        var defaultVirtualBorderRouter = new VirtualBorderRouter(\"defaultVirtualBorderRouter\", VirtualBorderRouterArgs.builder()\n            .localGatewayIp(\"10.0.0.1\")\n            .peerGatewayIp(\"10.0.0.2\")\n            .peeringSubnetMask(\"255.255.255.252\")\n            .physicalConnectionId(default_.connections()[0].id())\n            .virtualBorderRouterName(name)\n            .vlanId(defaultInteger.id())\n            .minRxInterval(1000)\n            .minTxInterval(1000)\n            .detectMultiplier(10)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 1\n      max: 2999\n  defaultVirtualBorderRouter:\n    type: alicloud:expressconnect:VirtualBorderRouter\n    name: default\n    properties:\n      localGatewayIp: 10.0.0.1\n      peerGatewayIp: 10.0.0.2\n      peeringSubnetMask: 255.255.255.252\n      physicalConnectionId: ${default.connections[0].id}\n      virtualBorderRouterName: ${name}\n      vlanId: ${defaultInteger.id}\n      minRxInterval: 1000\n      minTxInterval: 1000\n      detectMultiplier: 10\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: ^preserved-NODELETING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Virtual Border Router can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:expressconnect/virtualBorderRouter:VirtualBorderRouter example \u003cid\u003e\n```\n\n","properties":{"associatedPhysicalConnections":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`associatedPhysicalConnections`\" pulumi-lang-dotnet=\"`AssociatedPhysicalConnections`\" pulumi-lang-go=\"`associatedPhysicalConnections`\" pulumi-lang-python=\"`associated_physical_connections`\" pulumi-lang-yaml=\"`associatedPhysicalConnections`\" pulumi-lang-java=\"`associatedPhysicalConnections`\"\u003e`associated_physical_connections`\u003c/span\u003e has been deprecated from provider version 1.263.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-dotnet=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-go=\"`expressconnect.VbrPconnAssociation`\" pulumi-lang-python=\"`expressconnect.VbrPconnAssociation`\" pulumi-lang-yaml=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-java=\"`alicloud.expressconnect.VbrPconnAssociation`\"\u003e`alicloud.expressconnect.VbrPconnAssociation`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`associatedPhysicalConnections`\" pulumi-lang-dotnet=\"`AssociatedPhysicalConnections`\" pulumi-lang-go=\"`associatedPhysicalConnections`\" pulumi-lang-python=\"`associated_physical_connections`\" pulumi-lang-yaml=\"`associatedPhysicalConnections`\" pulumi-lang-java=\"`associatedPhysicalConnections`\"\u003e`associated_physical_connections`\u003c/span\u003e has been deprecated from provider version 1.263.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-dotnet=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-go=\"`expressconnect.VbrPconnAssociation`\" pulumi-lang-python=\"`expressconnect.VbrPconnAssociation`\" pulumi-lang-yaml=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-java=\"`alicloud.expressconnect.VbrPconnAssociation`\"\u003e`alicloud.expressconnect.VbrPconnAssociation`\u003c/span\u003e instead."},"bandwidth":{"type":"integer","description":"The bandwidth of the VBR instance. Unit: Mbps. Valid values:\n- When creating a VBR instance for an exclusive leased line, the values are \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2048`\" pulumi-lang-dotnet=\"`2048`\" pulumi-lang-go=\"`2048`\" pulumi-lang-python=\"`2048`\" pulumi-lang-yaml=\"`2048`\" pulumi-lang-java=\"`2048`\"\u003e`2048`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5120`\" pulumi-lang-dotnet=\"`5120`\" pulumi-lang-go=\"`5120`\" pulumi-lang-python=\"`5120`\" pulumi-lang-yaml=\"`5120`\" pulumi-lang-java=\"`5120`\"\u003e`5120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8192`\" pulumi-lang-dotnet=\"`8192`\" pulumi-lang-go=\"`8192`\" pulumi-lang-python=\"`8192`\" pulumi-lang-yaml=\"`8192`\" pulumi-lang-java=\"`8192`\"\u003e`8192`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`10240`\" pulumi-lang-dotnet=\"`10240`\" pulumi-lang-go=\"`10240`\" pulumi-lang-python=\"`10240`\" pulumi-lang-yaml=\"`10240`\" pulumi-lang-java=\"`10240`\"\u003e`10240`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`20480`\" pulumi-lang-dotnet=\"`20480`\" pulumi-lang-go=\"`20480`\" pulumi-lang-python=\"`20480`\" pulumi-lang-yaml=\"`20480`\" pulumi-lang-java=\"`20480`\"\u003e`20480`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`40960`\" pulumi-lang-dotnet=\"`40960`\" pulumi-lang-go=\"`40960`\" pulumi-lang-python=\"`40960`\" pulumi-lang-yaml=\"`40960`\" pulumi-lang-java=\"`40960`\"\u003e`40960`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50120`\" pulumi-lang-dotnet=\"`50120`\" pulumi-lang-go=\"`50120`\" pulumi-lang-python=\"`50120`\" pulumi-lang-yaml=\"`50120`\" pulumi-lang-java=\"`50120`\"\u003e`50120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`61440`\" pulumi-lang-dotnet=\"`61440`\" pulumi-lang-go=\"`61440`\" pulumi-lang-python=\"`61440`\" pulumi-lang-yaml=\"`61440`\" pulumi-lang-java=\"`61440`\"\u003e`61440`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`102400`\" pulumi-lang-dotnet=\"`102400`\" pulumi-lang-go=\"`102400`\" pulumi-lang-python=\"`102400`\" pulumi-lang-yaml=\"`102400`\" pulumi-lang-java=\"`102400`\"\u003e`102400`\u003c/span\u003e.\n- When creating a VBR instance for a shared line, you do not need to configure it. The bandwidth of the VBR is the bandwidth set when creating a shared physical line.\n"},"circuitCode":{"type":"string","description":"The circuit code provided by the operator for the physical connection.\n"},"createTime":{"type":"string","description":"(Available since v1.263.0) The creation time of the VBR.\n"},"description":{"type":"string","description":"The description information of the VBR.\n"},"detectMultiplier":{"type":"integer","description":"Multiple of detection time.\nThat is the maximum number of connection packet losses allowed by the receiver to send messages, which is used to detect whether the link is normal.\nValid values: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\n"},"enableIpv6":{"type":"boolean","description":"Whether IPv6 is enabled.\n"},"localGatewayIp":{"type":"string","description":"The IPv4 address on the Alibaba Cloud side of the VBR instance.\n"},"localIpv6GatewayIp":{"type":"string","description":"The IPv6 address on the Alibaba Cloud side of the VBR instance.\n"},"minRxInterval":{"type":"integer","description":"Configure the receiving interval of BFD packets. Valid values: \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.\n"},"minTxInterval":{"type":"integer","description":"Configure the sending interval of BFD packets. Valid values: \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.\n"},"mtu":{"type":"integer","description":"Maximum transmission unit.\n"},"peerGatewayIp":{"type":"string","description":"The IPv4 address of the client side of the VBR instance.\n"},"peerIpv6GatewayIp":{"type":"string","description":"The IPv6 address of the client side of the VBR instance.\n"},"peeringIpv6SubnetMask":{"type":"string","description":"The subnet masks of the Alibaba Cloud-side IPv6 and the customer-side IPv6 of The VBR instance.\n"},"peeringSubnetMask":{"type":"string","description":"The subnet masks of the Alibaba Cloud-side IPv4 and the customer-side IPv4 of The VBR instance.\n"},"physicalConnectionId":{"type":"string","description":"The ID of the physical connection to which the VBR belongs.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"routeTableId":{"type":"string","description":"(Available since v1.166.0) The Route Table ID Of the Virtual Border Router.\n"},"sitelinkEnable":{"type":"boolean","description":"Whether to allow inter-IDC communication. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the VBR. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`terminated`\" pulumi-lang-dotnet=\"`Terminated`\" pulumi-lang-go=\"`terminated`\" pulumi-lang-python=\"`terminated`\" pulumi-lang-yaml=\"`terminated`\" pulumi-lang-java=\"`terminated`\"\u003e`terminated`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"vbrOwnerId":{"type":"string","description":"The account ID of the VBR instance owner. The default value is the logon Alibaba Cloud account ID.\n"},"virtualBorderRouterName":{"type":"string","description":"The name of the VBR instance.\n"},"vlanId":{"type":"integer","description":"The VLAN ID of the VBR instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`2999`\" pulumi-lang-dotnet=\"`2999`\" pulumi-lang-go=\"`2999`\" pulumi-lang-python=\"`2999`\" pulumi-lang-yaml=\"`2999`\" pulumi-lang-java=\"`2999`\"\u003e`2999`\u003c/span\u003e.\n"}},"required":["bandwidth","createTime","detectMultiplier","localGatewayIp","minRxInterval","minTxInterval","mtu","peerGatewayIp","peeringSubnetMask","physicalConnectionId","resourceGroupId","routeTableId","status","vlanId"],"inputProperties":{"associatedPhysicalConnections":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`associatedPhysicalConnections`\" pulumi-lang-dotnet=\"`AssociatedPhysicalConnections`\" pulumi-lang-go=\"`associatedPhysicalConnections`\" pulumi-lang-python=\"`associated_physical_connections`\" pulumi-lang-yaml=\"`associatedPhysicalConnections`\" pulumi-lang-java=\"`associatedPhysicalConnections`\"\u003e`associated_physical_connections`\u003c/span\u003e has been deprecated from provider version 1.263.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-dotnet=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-go=\"`expressconnect.VbrPconnAssociation`\" pulumi-lang-python=\"`expressconnect.VbrPconnAssociation`\" pulumi-lang-yaml=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-java=\"`alicloud.expressconnect.VbrPconnAssociation`\"\u003e`alicloud.expressconnect.VbrPconnAssociation`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`associatedPhysicalConnections`\" pulumi-lang-dotnet=\"`AssociatedPhysicalConnections`\" pulumi-lang-go=\"`associatedPhysicalConnections`\" pulumi-lang-python=\"`associated_physical_connections`\" pulumi-lang-yaml=\"`associatedPhysicalConnections`\" pulumi-lang-java=\"`associatedPhysicalConnections`\"\u003e`associated_physical_connections`\u003c/span\u003e has been deprecated from provider version 1.263.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-dotnet=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-go=\"`expressconnect.VbrPconnAssociation`\" pulumi-lang-python=\"`expressconnect.VbrPconnAssociation`\" pulumi-lang-yaml=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-java=\"`alicloud.expressconnect.VbrPconnAssociation`\"\u003e`alicloud.expressconnect.VbrPconnAssociation`\u003c/span\u003e instead."},"bandwidth":{"type":"integer","description":"The bandwidth of the VBR instance. Unit: Mbps. Valid values:\n- When creating a VBR instance for an exclusive leased line, the values are \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2048`\" pulumi-lang-dotnet=\"`2048`\" pulumi-lang-go=\"`2048`\" pulumi-lang-python=\"`2048`\" pulumi-lang-yaml=\"`2048`\" pulumi-lang-java=\"`2048`\"\u003e`2048`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5120`\" pulumi-lang-dotnet=\"`5120`\" pulumi-lang-go=\"`5120`\" pulumi-lang-python=\"`5120`\" pulumi-lang-yaml=\"`5120`\" pulumi-lang-java=\"`5120`\"\u003e`5120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8192`\" pulumi-lang-dotnet=\"`8192`\" pulumi-lang-go=\"`8192`\" pulumi-lang-python=\"`8192`\" pulumi-lang-yaml=\"`8192`\" pulumi-lang-java=\"`8192`\"\u003e`8192`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`10240`\" pulumi-lang-dotnet=\"`10240`\" pulumi-lang-go=\"`10240`\" pulumi-lang-python=\"`10240`\" pulumi-lang-yaml=\"`10240`\" pulumi-lang-java=\"`10240`\"\u003e`10240`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`20480`\" pulumi-lang-dotnet=\"`20480`\" pulumi-lang-go=\"`20480`\" pulumi-lang-python=\"`20480`\" pulumi-lang-yaml=\"`20480`\" pulumi-lang-java=\"`20480`\"\u003e`20480`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`40960`\" pulumi-lang-dotnet=\"`40960`\" pulumi-lang-go=\"`40960`\" pulumi-lang-python=\"`40960`\" pulumi-lang-yaml=\"`40960`\" pulumi-lang-java=\"`40960`\"\u003e`40960`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50120`\" pulumi-lang-dotnet=\"`50120`\" pulumi-lang-go=\"`50120`\" pulumi-lang-python=\"`50120`\" pulumi-lang-yaml=\"`50120`\" pulumi-lang-java=\"`50120`\"\u003e`50120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`61440`\" pulumi-lang-dotnet=\"`61440`\" pulumi-lang-go=\"`61440`\" pulumi-lang-python=\"`61440`\" pulumi-lang-yaml=\"`61440`\" pulumi-lang-java=\"`61440`\"\u003e`61440`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`102400`\" pulumi-lang-dotnet=\"`102400`\" pulumi-lang-go=\"`102400`\" pulumi-lang-python=\"`102400`\" pulumi-lang-yaml=\"`102400`\" pulumi-lang-java=\"`102400`\"\u003e`102400`\u003c/span\u003e.\n- When creating a VBR instance for a shared line, you do not need to configure it. The bandwidth of the VBR is the bandwidth set when creating a shared physical line.\n"},"circuitCode":{"type":"string","description":"The circuit code provided by the operator for the physical connection.\n"},"description":{"type":"string","description":"The description information of the VBR.\n"},"detectMultiplier":{"type":"integer","description":"Multiple of detection time.\nThat is the maximum number of connection packet losses allowed by the receiver to send messages, which is used to detect whether the link is normal.\nValid values: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\n"},"enableIpv6":{"type":"boolean","description":"Whether IPv6 is enabled.\n"},"localGatewayIp":{"type":"string","description":"The IPv4 address on the Alibaba Cloud side of the VBR instance.\n"},"localIpv6GatewayIp":{"type":"string","description":"The IPv6 address on the Alibaba Cloud side of the VBR instance.\n"},"minRxInterval":{"type":"integer","description":"Configure the receiving interval of BFD packets. Valid values: \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.\n"},"minTxInterval":{"type":"integer","description":"Configure the sending interval of BFD packets. Valid values: \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.\n"},"mtu":{"type":"integer","description":"Maximum transmission unit.\n"},"peerGatewayIp":{"type":"string","description":"The IPv4 address of the client side of the VBR instance.\n"},"peerIpv6GatewayIp":{"type":"string","description":"The IPv6 address of the client side of the VBR instance.\n"},"peeringIpv6SubnetMask":{"type":"string","description":"The subnet masks of the Alibaba Cloud-side IPv6 and the customer-side IPv6 of The VBR instance.\n"},"peeringSubnetMask":{"type":"string","description":"The subnet masks of the Alibaba Cloud-side IPv4 and the customer-side IPv4 of The VBR instance.\n"},"physicalConnectionId":{"type":"string","description":"The ID of the physical connection to which the VBR belongs.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sitelinkEnable":{"type":"boolean","description":"Whether to allow inter-IDC communication. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the VBR. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`terminated`\" pulumi-lang-dotnet=\"`Terminated`\" pulumi-lang-go=\"`terminated`\" pulumi-lang-python=\"`terminated`\" pulumi-lang-yaml=\"`terminated`\" pulumi-lang-java=\"`terminated`\"\u003e`terminated`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"vbrOwnerId":{"type":"string","description":"The account ID of the VBR instance owner. The default value is the logon Alibaba Cloud account ID.\n"},"virtualBorderRouterName":{"type":"string","description":"The name of the VBR instance.\n"},"vlanId":{"type":"integer","description":"The VLAN ID of the VBR instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`2999`\" pulumi-lang-dotnet=\"`2999`\" pulumi-lang-go=\"`2999`\" pulumi-lang-python=\"`2999`\" pulumi-lang-yaml=\"`2999`\" pulumi-lang-java=\"`2999`\"\u003e`2999`\u003c/span\u003e.\n"}},"requiredInputs":["localGatewayIp","peerGatewayIp","peeringSubnetMask","physicalConnectionId","vlanId"],"stateInputs":{"description":"Input properties used for looking up and filtering VirtualBorderRouter resources.\n","properties":{"associatedPhysicalConnections":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`associatedPhysicalConnections`\" pulumi-lang-dotnet=\"`AssociatedPhysicalConnections`\" pulumi-lang-go=\"`associatedPhysicalConnections`\" pulumi-lang-python=\"`associated_physical_connections`\" pulumi-lang-yaml=\"`associatedPhysicalConnections`\" pulumi-lang-java=\"`associatedPhysicalConnections`\"\u003e`associated_physical_connections`\u003c/span\u003e has been deprecated from provider version 1.263.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-dotnet=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-go=\"`expressconnect.VbrPconnAssociation`\" pulumi-lang-python=\"`expressconnect.VbrPconnAssociation`\" pulumi-lang-yaml=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-java=\"`alicloud.expressconnect.VbrPconnAssociation`\"\u003e`alicloud.expressconnect.VbrPconnAssociation`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`associatedPhysicalConnections`\" pulumi-lang-dotnet=\"`AssociatedPhysicalConnections`\" pulumi-lang-go=\"`associatedPhysicalConnections`\" pulumi-lang-python=\"`associated_physical_connections`\" pulumi-lang-yaml=\"`associatedPhysicalConnections`\" pulumi-lang-java=\"`associatedPhysicalConnections`\"\u003e`associated_physical_connections`\u003c/span\u003e has been deprecated from provider version 1.263.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-dotnet=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-go=\"`expressconnect.VbrPconnAssociation`\" pulumi-lang-python=\"`expressconnect.VbrPconnAssociation`\" pulumi-lang-yaml=\"`alicloud.expressconnect.VbrPconnAssociation`\" pulumi-lang-java=\"`alicloud.expressconnect.VbrPconnAssociation`\"\u003e`alicloud.expressconnect.VbrPconnAssociation`\u003c/span\u003e instead."},"bandwidth":{"type":"integer","description":"The bandwidth of the VBR instance. Unit: Mbps. Valid values:\n- When creating a VBR instance for an exclusive leased line, the values are \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2048`\" pulumi-lang-dotnet=\"`2048`\" pulumi-lang-go=\"`2048`\" pulumi-lang-python=\"`2048`\" pulumi-lang-yaml=\"`2048`\" pulumi-lang-java=\"`2048`\"\u003e`2048`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5120`\" pulumi-lang-dotnet=\"`5120`\" pulumi-lang-go=\"`5120`\" pulumi-lang-python=\"`5120`\" pulumi-lang-yaml=\"`5120`\" pulumi-lang-java=\"`5120`\"\u003e`5120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8192`\" pulumi-lang-dotnet=\"`8192`\" pulumi-lang-go=\"`8192`\" pulumi-lang-python=\"`8192`\" pulumi-lang-yaml=\"`8192`\" pulumi-lang-java=\"`8192`\"\u003e`8192`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`10240`\" pulumi-lang-dotnet=\"`10240`\" pulumi-lang-go=\"`10240`\" pulumi-lang-python=\"`10240`\" pulumi-lang-yaml=\"`10240`\" pulumi-lang-java=\"`10240`\"\u003e`10240`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`20480`\" pulumi-lang-dotnet=\"`20480`\" pulumi-lang-go=\"`20480`\" pulumi-lang-python=\"`20480`\" pulumi-lang-yaml=\"`20480`\" pulumi-lang-java=\"`20480`\"\u003e`20480`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`40960`\" pulumi-lang-dotnet=\"`40960`\" pulumi-lang-go=\"`40960`\" pulumi-lang-python=\"`40960`\" pulumi-lang-yaml=\"`40960`\" pulumi-lang-java=\"`40960`\"\u003e`40960`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`50120`\" pulumi-lang-dotnet=\"`50120`\" pulumi-lang-go=\"`50120`\" pulumi-lang-python=\"`50120`\" pulumi-lang-yaml=\"`50120`\" pulumi-lang-java=\"`50120`\"\u003e`50120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`61440`\" pulumi-lang-dotnet=\"`61440`\" pulumi-lang-go=\"`61440`\" pulumi-lang-python=\"`61440`\" pulumi-lang-yaml=\"`61440`\" pulumi-lang-java=\"`61440`\"\u003e`61440`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`102400`\" pulumi-lang-dotnet=\"`102400`\" pulumi-lang-go=\"`102400`\" pulumi-lang-python=\"`102400`\" pulumi-lang-yaml=\"`102400`\" pulumi-lang-java=\"`102400`\"\u003e`102400`\u003c/span\u003e.\n- When creating a VBR instance for a shared line, you do not need to configure it. The bandwidth of the VBR is the bandwidth set when creating a shared physical line.\n"},"circuitCode":{"type":"string","description":"The circuit code provided by the operator for the physical connection.\n"},"createTime":{"type":"string","description":"(Available since v1.263.0) The creation time of the VBR.\n"},"description":{"type":"string","description":"The description information of the VBR.\n"},"detectMultiplier":{"type":"integer","description":"Multiple of detection time.\nThat is the maximum number of connection packet losses allowed by the receiver to send messages, which is used to detect whether the link is normal.\nValid values: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e.\n"},"enableIpv6":{"type":"boolean","description":"Whether IPv6 is enabled.\n"},"localGatewayIp":{"type":"string","description":"The IPv4 address on the Alibaba Cloud side of the VBR instance.\n"},"localIpv6GatewayIp":{"type":"string","description":"The IPv6 address on the Alibaba Cloud side of the VBR instance.\n"},"minRxInterval":{"type":"integer","description":"Configure the receiving interval of BFD packets. Valid values: \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.\n"},"minTxInterval":{"type":"integer","description":"Configure the sending interval of BFD packets. Valid values: \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.\n"},"mtu":{"type":"integer","description":"Maximum transmission unit.\n"},"peerGatewayIp":{"type":"string","description":"The IPv4 address of the client side of the VBR instance.\n"},"peerIpv6GatewayIp":{"type":"string","description":"The IPv6 address of the client side of the VBR instance.\n"},"peeringIpv6SubnetMask":{"type":"string","description":"The subnet masks of the Alibaba Cloud-side IPv6 and the customer-side IPv6 of The VBR instance.\n"},"peeringSubnetMask":{"type":"string","description":"The subnet masks of the Alibaba Cloud-side IPv4 and the customer-side IPv4 of The VBR instance.\n"},"physicalConnectionId":{"type":"string","description":"The ID of the physical connection to which the VBR belongs.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"routeTableId":{"type":"string","description":"(Available since v1.166.0) The Route Table ID Of the Virtual Border Router.\n"},"sitelinkEnable":{"type":"boolean","description":"Whether to allow inter-IDC communication. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the VBR. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`terminated`\" pulumi-lang-dotnet=\"`Terminated`\" pulumi-lang-go=\"`terminated`\" pulumi-lang-python=\"`terminated`\" pulumi-lang-yaml=\"`terminated`\" pulumi-lang-java=\"`terminated`\"\u003e`terminated`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"vbrOwnerId":{"type":"string","description":"The account ID of the VBR instance owner. The default value is the logon Alibaba Cloud account ID.\n"},"virtualBorderRouterName":{"type":"string","description":"The name of the VBR instance.\n"},"vlanId":{"type":"integer","description":"The VLAN ID of the VBR instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`2999`\" pulumi-lang-dotnet=\"`2999`\" pulumi-lang-go=\"`2999`\" pulumi-lang-python=\"`2999`\" pulumi-lang-yaml=\"`2999`\" pulumi-lang-java=\"`2999`\"\u003e`2999`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:expressconnect/virtualPhysicalConnection:VirtualPhysicalConnection":{"description":"Provides a Express Connect Virtual Physical Connection resource.\n\nFor information about Express Connect Virtual Physical Connection and how to use it, see [What is Virtual Physical Connection](https://www.alibabacloud.com/help/en/express-connect/latest/createvirtualphysicalconnection#doc-api-Vpc-CreateVirtualPhysicalConnection).\n\n\u003e **NOTE:** Available since v1.196.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst example = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"^preserved-NODELETING\",\n});\nconst vlanId = new random.index.Integer(\"vlan_id\", {\n    max: 2999,\n    min: 1,\n});\nconst _default = alicloud.getAccount({});\nconst exampleVirtualPhysicalConnection = new alicloud.expressconnect.VirtualPhysicalConnection(\"example\", {\n    virtualPhysicalConnectionName: name,\n    description: name,\n    orderMode: \"PayByPhysicalConnectionOwner\",\n    parentPhysicalConnectionId: example.then(example =\u003e example.ids?.[0]),\n    spec: \"50M\",\n    vlanId: vlanId.id,\n    vpconnAliUid: _default.then(_default =\u003e _default.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nexample = alicloud.expressconnect.get_physical_connections(name_regex=\"^preserved-NODELETING\")\nvlan_id = random.index.Integer(\"vlan_id\",\n    max=2999,\n    min=1)\ndefault = alicloud.get_account()\nexample_virtual_physical_connection = alicloud.expressconnect.VirtualPhysicalConnection(\"example\",\n    virtual_physical_connection_name=name,\n    description=name,\n    order_mode=\"PayByPhysicalConnectionOwner\",\n    parent_physical_connection_id=example.ids[0],\n    spec=\"50M\",\n    vlan_id=vlan_id[\"id\"],\n    vpconn_ali_uid=default.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var example = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"^preserved-NODELETING\",\n    });\n\n    var vlanId = new Random.Index.Integer(\"vlan_id\", new()\n    {\n        Max = 2999,\n        Min = 1,\n    });\n\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var exampleVirtualPhysicalConnection = new AliCloud.ExpressConnect.VirtualPhysicalConnection(\"example\", new()\n    {\n        VirtualPhysicalConnectionName = name,\n        Description = name,\n        OrderMode = \"PayByPhysicalConnectionOwner\",\n        ParentPhysicalConnectionId = example.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Ids[0]),\n        Spec = \"50M\",\n        VlanId = vlanId.Id,\n        VpconnAliUid = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvlanId, err := random.NewInteger(ctx, \"vlan_id\", \u0026random.IntegerArgs{\n\t\t\tMax: 2999,\n\t\t\tMin: 1,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = expressconnect.NewVirtualPhysicalConnection(ctx, \"example\", \u0026expressconnect.VirtualPhysicalConnectionArgs{\n\t\t\tVirtualPhysicalConnectionName: pulumi.String(name),\n\t\t\tDescription:                   pulumi.String(name),\n\t\t\tOrderMode:                     pulumi.String(\"PayByPhysicalConnectionOwner\"),\n\t\t\tParentPhysicalConnectionId:    pulumi.String(example.Ids[0]),\n\t\t\tSpec:                          pulumi.String(\"50M\"),\n\t\t\tVlanId:                        vlanId.Id,\n\t\t\tVpconnAliUid:                  pulumi.String(_default.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.expressconnect.VirtualPhysicalConnection;\nimport com.pulumi.alicloud.expressconnect.VirtualPhysicalConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var example = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"^preserved-NODELETING\")\n            .build());\n\n        var vlanId = new Integer(\"vlanId\", IntegerArgs.builder()\n            .max(2999)\n            .min(1)\n            .build());\n\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var exampleVirtualPhysicalConnection = new VirtualPhysicalConnection(\"exampleVirtualPhysicalConnection\", VirtualPhysicalConnectionArgs.builder()\n            .virtualPhysicalConnectionName(name)\n            .description(name)\n            .orderMode(\"PayByPhysicalConnectionOwner\")\n            .parentPhysicalConnectionId(example.ids()[0])\n            .spec(\"50M\")\n            .vlanId(vlanId.id())\n            .vpconnAliUid(default_.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  vlanId:\n    type: random:Integer\n    name: vlan_id\n    properties:\n      max: 2999\n      min: 1\n  exampleVirtualPhysicalConnection:\n    type: alicloud:expressconnect:VirtualPhysicalConnection\n    name: example\n    properties:\n      virtualPhysicalConnectionName: ${name}\n      description: ${name}\n      orderMode: PayByPhysicalConnectionOwner\n      parentPhysicalConnectionId: ${example.ids[0]}\n      spec: 50M\n      vlanId: ${vlanId.id}\n      vpconnAliUid: ${default.id}\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: ^preserved-NODELETING\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Virtual Physical Connection can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_express_connect_virtual_physical_connection.example \u003cid\u003e\n```\n\n","properties":{"accessPointId":{"type":"string","description":"The ID of the access point of the physical connection.\n"},"adLocation":{"type":"string","description":"The physical location where the physical connection access device is located.\n"},"bandwidth":{"type":"string","description":"The bandwidth of the physical connection. Unit: Mbps.\n"},"businessStatus":{"type":"string","description":"The commercial status of the physical line. Value:-**Normal**: activated.-**Financialized**: Arrears locked.-**SecurityLocked**: locked for security reasons.\n"},"circuitCode":{"type":"string","description":"The circuit code provided by the operator for the physical connection.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"The description of the physical connection.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to precheck the API request. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enabledTime":{"type":"string","description":"The opening time of the physical connection.\n"},"endTime":{"type":"string","description":"The expiration time of the shared line.Time is expressed according to ISO8601 standard and UTC time is used. The format is: YYYY-MM-DDThh:mm:ssZ.\n"},"expectSpec":{"type":"string","description":"The estimated bandwidth value of the shared line. Valid values: `50M`, `100M`, `200M`, `300M`, `400M`, `500M`, `1G`, `2G`, `5G`, `8G`, and `10G`. **Note**: By default, the values of 2G, 5G, 8G, and 10G are unavailable. If you want to specify these values, contact your customer manager. Unit: **M** indicates Mbps, **G** indicates Gbps.\n"},"lineOperator":{"type":"string","description":"Operators that provide access to physical lines. Value:-**CT**: China Telecom.-**CU**: China Unicom.-**CM**: China Mobile.-**CO**: China Other.-**Equinix**:Equinix.-**Other**: Other abroad.\n"},"loaStatus":{"type":"string","description":"The state of LOA. Value:-**Applying**:LOA application.-**Accept**:LOA application passed.-**Available**:LOA is Available.-**Rejected**:LOA application Rejected.-**Completing**: The dedicated line is under construction.-**Complete**: The construction of the dedicated line is completed.-**Deleted**:LOA has been Deleted.\n"},"orderMode":{"type":"string","description":"The payment method of shared dedicated line. Value:\n- **PayByPhysicalConnectionOwner**: indicates that the owner of the physical line associated with the shared line pays.\n- **PayByVirtualPhysicalConnectionOwner**: indicates that the owner of the shared line pays.\n"},"parentPhysicalConnectionAliUid":{"type":"string","description":"The ID of the Alibaba Cloud account (primary account) to which the physical connection belongs.\n"},"parentPhysicalConnectionId":{"type":"string","description":"The ID of the instance of the physical connection.\n"},"peerLocation":{"type":"string","description":"The geographic location of the local data center.\n"},"portNumber":{"type":"string","description":"The port number of the physical connection device.\n"},"portType":{"type":"string","description":"Physical connection port type. Value:-**100Base-T**: 100 megabytes port.-**1000Base-T**: Gigabit port.-**1000Base-LX**: Gigabit single mode optical port (10km).-**10GBase-T**: 10 Gigabit port.-**10GBase-LR**: 10 Gigabit single mode optical port (10km).-**40GBase-LR**: 40 megabytes single-mode optical port.-**100GBase-LR**: 100,000 megabytes single-mode optical port.\n"},"redundantPhysicalConnectionId":{"type":"string","description":"The ID of the redundant physical connection.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"spec":{"type":"string","description":"The bandwidth value of the shared line. Valid values: `50M`, `100M`, `200M`, `300M`, `400M`, `500M`, `1G`, `2G`, `5G`, `8G`, and `10G`. **Note**: By default, the values of 2G, 5G, 8G, and 10G are unavailable. If you want to specify these values, contact your customer manager. Unit: **M** indicates Mbps, **G** indicates Gbps.\n"},"status":{"type":"string","description":"The status of the resource\n"},"virtualPhysicalConnectionName":{"type":"string","description":"The name of the physical connection.\n"},"virtualPhysicalConnectionStatus":{"type":"string","description":"The business status of the shared line. Value:-**Confirmed**: The shared line has been Confirmed to receive.-**UnConfirmed**: The shared line has not been confirmed to be received.-**Deleted**: The shared line has been Deleted.\n"},"vlanId":{"type":"integer","description":"The VLAN ID of the shared leased line. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`2999`\" pulumi-lang-dotnet=\"`2999`\" pulumi-lang-go=\"`2999`\" pulumi-lang-python=\"`2999`\" pulumi-lang-yaml=\"`2999`\" pulumi-lang-java=\"`2999`\"\u003e`2999`\u003c/span\u003e.\n"},"vpconnAliUid":{"type":"string","description":"The ID of the Alibaba Cloud account (primary account) of the owner of the shared line.\n"}},"required":["accessPointId","adLocation","bandwidth","businessStatus","circuitCode","createTime","enabledTime","endTime","lineOperator","loaStatus","orderMode","parentPhysicalConnectionAliUid","parentPhysicalConnectionId","peerLocation","portNumber","portType","redundantPhysicalConnectionId","resourceGroupId","spec","status","virtualPhysicalConnectionStatus","vlanId","vpconnAliUid"],"inputProperties":{"description":{"type":"string","description":"The description of the physical connection.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Specifies whether to precheck the API request. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"expectSpec":{"type":"string","description":"The estimated bandwidth value of the shared line. Valid values: `50M`, `100M`, `200M`, `300M`, `400M`, `500M`, `1G`, `2G`, `5G`, `8G`, and `10G`. **Note**: By default, the values of 2G, 5G, 8G, and 10G are unavailable. If you want to specify these values, contact your customer manager. Unit: **M** indicates Mbps, **G** indicates Gbps.\n"},"orderMode":{"type":"string","description":"The payment method of shared dedicated line. Value:\n- **PayByPhysicalConnectionOwner**: indicates that the owner of the physical line associated with the shared line pays.\n- **PayByVirtualPhysicalConnectionOwner**: indicates that the owner of the shared line pays.\n","willReplaceOnChanges":true},"parentPhysicalConnectionId":{"type":"string","description":"The ID of the instance of the physical connection.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The resource group id.\n","willReplaceOnChanges":true},"spec":{"type":"string","description":"The bandwidth value of the shared line. Valid values: `50M`, `100M`, `200M`, `300M`, `400M`, `500M`, `1G`, `2G`, `5G`, `8G`, and `10G`. **Note**: By default, the values of 2G, 5G, 8G, and 10G are unavailable. If you want to specify these values, contact your customer manager. Unit: **M** indicates Mbps, **G** indicates Gbps.\n","willReplaceOnChanges":true},"virtualPhysicalConnectionName":{"type":"string","description":"The name of the physical connection.\n","willReplaceOnChanges":true},"vlanId":{"type":"integer","description":"The VLAN ID of the shared leased line. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`2999`\" pulumi-lang-dotnet=\"`2999`\" pulumi-lang-go=\"`2999`\" pulumi-lang-python=\"`2999`\" pulumi-lang-yaml=\"`2999`\" pulumi-lang-java=\"`2999`\"\u003e`2999`\u003c/span\u003e.\n"},"vpconnAliUid":{"type":"string","description":"The ID of the Alibaba Cloud account (primary account) of the owner of the shared line.\n","willReplaceOnChanges":true}},"requiredInputs":["orderMode","parentPhysicalConnectionId","spec","vlanId","vpconnAliUid"],"stateInputs":{"description":"Input properties used for looking up and filtering VirtualPhysicalConnection resources.\n","properties":{"accessPointId":{"type":"string","description":"The ID of the access point of the physical connection.\n"},"adLocation":{"type":"string","description":"The physical location where the physical connection access device is located.\n"},"bandwidth":{"type":"string","description":"The bandwidth of the physical connection. Unit: Mbps.\n"},"businessStatus":{"type":"string","description":"The commercial status of the physical line. Value:-**Normal**: activated.-**Financialized**: Arrears locked.-**SecurityLocked**: locked for security reasons.\n"},"circuitCode":{"type":"string","description":"The circuit code provided by the operator for the physical connection.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"The description of the physical connection.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Specifies whether to precheck the API request. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enabledTime":{"type":"string","description":"The opening time of the physical connection.\n"},"endTime":{"type":"string","description":"The expiration time of the shared line.Time is expressed according to ISO8601 standard and UTC time is used. The format is: YYYY-MM-DDThh:mm:ssZ.\n"},"expectSpec":{"type":"string","description":"The estimated bandwidth value of the shared line. Valid values: `50M`, `100M`, `200M`, `300M`, `400M`, `500M`, `1G`, `2G`, `5G`, `8G`, and `10G`. **Note**: By default, the values of 2G, 5G, 8G, and 10G are unavailable. If you want to specify these values, contact your customer manager. Unit: **M** indicates Mbps, **G** indicates Gbps.\n"},"lineOperator":{"type":"string","description":"Operators that provide access to physical lines. Value:-**CT**: China Telecom.-**CU**: China Unicom.-**CM**: China Mobile.-**CO**: China Other.-**Equinix**:Equinix.-**Other**: Other abroad.\n"},"loaStatus":{"type":"string","description":"The state of LOA. Value:-**Applying**:LOA application.-**Accept**:LOA application passed.-**Available**:LOA is Available.-**Rejected**:LOA application Rejected.-**Completing**: The dedicated line is under construction.-**Complete**: The construction of the dedicated line is completed.-**Deleted**:LOA has been Deleted.\n"},"orderMode":{"type":"string","description":"The payment method of shared dedicated line. Value:\n- **PayByPhysicalConnectionOwner**: indicates that the owner of the physical line associated with the shared line pays.\n- **PayByVirtualPhysicalConnectionOwner**: indicates that the owner of the shared line pays.\n","willReplaceOnChanges":true},"parentPhysicalConnectionAliUid":{"type":"string","description":"The ID of the Alibaba Cloud account (primary account) to which the physical connection belongs.\n"},"parentPhysicalConnectionId":{"type":"string","description":"The ID of the instance of the physical connection.\n","willReplaceOnChanges":true},"peerLocation":{"type":"string","description":"The geographic location of the local data center.\n"},"portNumber":{"type":"string","description":"The port number of the physical connection device.\n"},"portType":{"type":"string","description":"Physical connection port type. Value:-**100Base-T**: 100 megabytes port.-**1000Base-T**: Gigabit port.-**1000Base-LX**: Gigabit single mode optical port (10km).-**10GBase-T**: 10 Gigabit port.-**10GBase-LR**: 10 Gigabit single mode optical port (10km).-**40GBase-LR**: 40 megabytes single-mode optical port.-**100GBase-LR**: 100,000 megabytes single-mode optical port.\n"},"redundantPhysicalConnectionId":{"type":"string","description":"The ID of the redundant physical connection.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n","willReplaceOnChanges":true},"spec":{"type":"string","description":"The bandwidth value of the shared line. Valid values: `50M`, `100M`, `200M`, `300M`, `400M`, `500M`, `1G`, `2G`, `5G`, `8G`, and `10G`. **Note**: By default, the values of 2G, 5G, 8G, and 10G are unavailable. If you want to specify these values, contact your customer manager. Unit: **M** indicates Mbps, **G** indicates Gbps.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"},"virtualPhysicalConnectionName":{"type":"string","description":"The name of the physical connection.\n","willReplaceOnChanges":true},"virtualPhysicalConnectionStatus":{"type":"string","description":"The business status of the shared line. Value:-**Confirmed**: The shared line has been Confirmed to receive.-**UnConfirmed**: The shared line has not been confirmed to be received.-**Deleted**: The shared line has been Deleted.\n"},"vlanId":{"type":"integer","description":"The VLAN ID of the shared leased line. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`2999`\" pulumi-lang-dotnet=\"`2999`\" pulumi-lang-go=\"`2999`\" pulumi-lang-python=\"`2999`\" pulumi-lang-yaml=\"`2999`\" pulumi-lang-java=\"`2999`\"\u003e`2999`\u003c/span\u003e.\n"},"vpconnAliUid":{"type":"string","description":"The ID of the Alibaba Cloud account (primary account) of the owner of the shared line.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:fc/alias:Alias":{"description":"Creates a Function Compute service alias. Creates an alias that points to the specified Function Compute service version. \n For the detailed information, please refer to the [developer guide](https://www.alibabacloud.com/help/en/fc/developer-reference/api-createalias).\n\n\u003e **NOTE:** Available since v1.104.0.\n\n\u003e **DEPRECATED:** This resource (alicloud_fc_alias) represents the legacy Function Compute API. For new deployments and advanced features, please use the \u003cspan pulumi-lang-nodejs=\"`alicloud.fc.V3Alias`\" pulumi-lang-dotnet=\"`alicloud.fc.V3Alias`\" pulumi-lang-go=\"`fc.V3Alias`\" pulumi-lang-python=\"`fc.V3Alias`\" pulumi-lang-yaml=\"`alicloud.fc.V3Alias`\" pulumi-lang-java=\"`alicloud.fc.V3Alias`\"\u003e`alicloud.fc.V3Alias`\u003c/span\u003e resource which provides access to the latest FCV3 capabilities. The legacy FC alias supports only basic functionality and does not include newer features available in FCV3.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultService = new alicloud.fc.Service(\"default\", {\n    name: `example-value-${_default.result}`,\n    description: \"example-value\",\n    publish: true,\n});\nconst example = new alicloud.fc.Alias(\"example\", {\n    aliasName: \"example-value\",\n    description: \"example-value\",\n    serviceName: defaultService.name,\n    serviceVersion: \"1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_service = alicloud.fc.Service(\"default\",\n    name=f\"example-value-{default['result']}\",\n    description=\"example-value\",\n    publish=True)\nexample = alicloud.fc.Alias(\"example\",\n    alias_name=\"example-value\",\n    description=\"example-value\",\n    service_name=default_service.name,\n    service_version=\"1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultService = new AliCloud.FC.Service(\"default\", new()\n    {\n        Name = $\"example-value-{@default.Result}\",\n        Description = \"example-value\",\n        Publish = true,\n    });\n\n    var example = new AliCloud.FC.Alias(\"example\", new()\n    {\n        AliasName = \"example-value\",\n        Description = \"example-value\",\n        ServiceName = defaultService.Name,\n        ServiceVersion = \"1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultService, err := fc.NewService(ctx, \"default\", \u0026fc.ServiceArgs{\n\t\t\tName:        pulumi.Sprintf(\"example-value-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"example-value\"),\n\t\t\tPublish:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fc.NewAlias(ctx, \"example\", \u0026fc.AliasArgs{\n\t\t\tAliasName:      pulumi.String(\"example-value\"),\n\t\t\tDescription:    pulumi.String(\"example-value\"),\n\t\t\tServiceName:    defaultService.Name,\n\t\t\tServiceVersion: pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.fc.Service;\nimport com.pulumi.alicloud.fc.ServiceArgs;\nimport com.pulumi.alicloud.fc.Alias;\nimport com.pulumi.alicloud.fc.AliasArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultService = new Service(\"defaultService\", ServiceArgs.builder()\n            .name(String.format(\"example-value-%s\", default_.result()))\n            .description(\"example-value\")\n            .publish(true)\n            .build());\n\n        var example = new Alias(\"example\", AliasArgs.builder()\n            .aliasName(\"example-value\")\n            .description(\"example-value\")\n            .serviceName(defaultService.name())\n            .serviceVersion(\"1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  defaultService:\n    type: alicloud:fc:Service\n    name: default\n    properties:\n      name: example-value-${default.result}\n      description: example-value\n      publish: 'true'\n  example:\n    type: alicloud:fc:Alias\n    properties:\n      aliasName: example-value\n      description: example-value\n      serviceName: ${defaultService.name}\n      serviceVersion: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFunction Compute alias can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fc/alias:Alias example my_alias_id\n```\n\n","properties":{"aliasName":{"type":"string","description":"Name for the alias you are creating.\n"},"description":{"type":"string","description":"Description of the alias.\n"},"routingConfig":{"$ref":"#/types/alicloud:fc/AliasRoutingConfig:AliasRoutingConfig","description":"The Function Compute alias' route configuration settings. See \u003cspan pulumi-lang-nodejs=\"`routingConfig`\" pulumi-lang-dotnet=\"`RoutingConfig`\" pulumi-lang-go=\"`routingConfig`\" pulumi-lang-python=\"`routing_config`\" pulumi-lang-yaml=\"`routingConfig`\" pulumi-lang-java=\"`routingConfig`\"\u003e`routing_config`\u003c/span\u003e below.\n"},"serviceName":{"type":"string","description":"The Function Compute service name.\n"},"serviceVersion":{"type":"string","description":"The Function Compute service version for which you are creating the alias. Pattern: (LATEST|[0-9]+).\n"}},"required":["aliasName","serviceName","serviceVersion"],"inputProperties":{"aliasName":{"type":"string","description":"Name for the alias you are creating.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of the alias.\n"},"routingConfig":{"$ref":"#/types/alicloud:fc/AliasRoutingConfig:AliasRoutingConfig","description":"The Function Compute alias' route configuration settings. See \u003cspan pulumi-lang-nodejs=\"`routingConfig`\" pulumi-lang-dotnet=\"`RoutingConfig`\" pulumi-lang-go=\"`routingConfig`\" pulumi-lang-python=\"`routing_config`\" pulumi-lang-yaml=\"`routingConfig`\" pulumi-lang-java=\"`routingConfig`\"\u003e`routing_config`\u003c/span\u003e below.\n"},"serviceName":{"type":"string","description":"The Function Compute service name.\n","willReplaceOnChanges":true},"serviceVersion":{"type":"string","description":"The Function Compute service version for which you are creating the alias. Pattern: (LATEST|[0-9]+).\n"}},"requiredInputs":["aliasName","serviceName","serviceVersion"],"stateInputs":{"description":"Input properties used for looking up and filtering Alias resources.\n","properties":{"aliasName":{"type":"string","description":"Name for the alias you are creating.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of the alias.\n"},"routingConfig":{"$ref":"#/types/alicloud:fc/AliasRoutingConfig:AliasRoutingConfig","description":"The Function Compute alias' route configuration settings. See \u003cspan pulumi-lang-nodejs=\"`routingConfig`\" pulumi-lang-dotnet=\"`RoutingConfig`\" pulumi-lang-go=\"`routingConfig`\" pulumi-lang-python=\"`routing_config`\" pulumi-lang-yaml=\"`routingConfig`\" pulumi-lang-java=\"`routingConfig`\"\u003e`routing_config`\u003c/span\u003e below.\n"},"serviceName":{"type":"string","description":"The Function Compute service name.\n","willReplaceOnChanges":true},"serviceVersion":{"type":"string","description":"The Function Compute service version for which you are creating the alias. Pattern: (LATEST|[0-9]+).\n"}},"type":"object"}},"alicloud:fc/customDomain:CustomDomain":{"description":"Provides an Alicloud Function Compute custom domain resource. \n For the detailed information, please refer to the [developer guide](https://www.alibabacloud.com/help/en/fc/developer-reference/api-fc-open-2021-04-06-createcustomdomain).\n\n\u003e **NOTE:** Available since v1.98.0.\n\n\u003e **DEPRECATED:** This resource (alicloud_fc_custom_domain) represents the legacy Function Compute API. For new deployments and advanced features, please use the \u003cspan pulumi-lang-nodejs=\"`alicloud.fc.V3CustomDomain`\" pulumi-lang-dotnet=\"`alicloud.fc.V3CustomDomain`\" pulumi-lang-go=\"`fc.V3CustomDomain`\" pulumi-lang-python=\"`fc.V3CustomDomain`\" pulumi-lang-yaml=\"`alicloud.fc.V3CustomDomain`\" pulumi-lang-java=\"`alicloud.fc.V3CustomDomain`\"\u003e`alicloud.fc.V3CustomDomain`\u003c/span\u003e resource which provides access to the latest FCV3 capabilities. The legacy FC custom domain supports only basic functionality and does not include newer features available in FCV3.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultProject = new alicloud.log.Project(\"default\", {name: `example-value-${_default.result}`});\nconst defaultStore = new alicloud.log.Store(\"default\", {\n    project: defaultProject.name,\n    name: \"example-value\",\n});\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    name: `fcservicerole-${_default.result}`,\n    document: `  {\n      \\\\\"Statement\\\\\": [\n        {\n          \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n          \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n          \\\\\"Principal\\\\\": {\n            \\\\\"Service\\\\\": [\n              \\\\\"fc.aliyuncs.com\\\\\"\n            ]\n          }\n        }\n      ],\n      \\\\\"Version\\\\\": \\\\\"1\\\\\"\n  }\n`,\n    description: \"this is a example\",\n    force: true,\n});\nconst defaultRolePolicyAttachment = new alicloud.ram.RolePolicyAttachment(\"default\", {\n    roleName: defaultRole.name,\n    policyName: \"AliyunLogFullAccess\",\n    policyType: \"System\",\n});\nconst defaultService = new alicloud.fc.Service(\"default\", {\n    name: `example-value-${_default.result}`,\n    description: \"example-value\",\n    role: defaultRole.arn,\n    logConfig: {\n        project: defaultProject.name,\n        logstore: defaultStore.name,\n        enableInstanceMetrics: true,\n        enableRequestMetrics: true,\n    },\n});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: `terraform-example-${_default.result}`});\n// If you upload the function by OSS Bucket, you need to specify path can't upload by content.\nconst defaultBucketObject = new alicloud.oss.BucketObject(\"default\", {\n    bucket: defaultBucket.id,\n    key: \"index.py\",\n    content: `import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'`,\n});\nconst defaultFunction = new alicloud.fc.Function(\"default\", {\n    service: defaultService.name,\n    name: \"terraform-example\",\n    description: \"example\",\n    ossBucket: defaultBucket.id,\n    ossKey: defaultBucketObject.key,\n    memorySize: 512,\n    runtime: \"python3.9\",\n    handler: \"hello.handler\",\n});\nconst defaultCustomDomain = new alicloud.fc.CustomDomain(\"default\", {\n    domainName: \"terraform.functioncompute.com\",\n    protocol: \"HTTP\",\n    routeConfigs: [{\n        path: \"/login/*\",\n        serviceName: defaultService.name,\n        functionName: defaultFunction.name,\n        qualifier: \"?query\",\n        methods: [\n            \"GET\",\n            \"POST\",\n        ],\n    }],\n    certConfig: {\n        certName: \"example\",\n        certificate: `-----BEGIN CERTIFICATE-----\nMIICWD****-----END CERTIFICATE-----`,\n        privateKey: `-----BEGIN RSA PRIVATE KEY-----\nMIICX****n-----END RSA PRIVATE KEY-----`,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_project = alicloud.log.Project(\"default\", name=f\"example-value-{default['result']}\")\ndefault_store = alicloud.log.Store(\"default\",\n    project=default_project.name,\n    name=\"example-value\")\ndefault_role = alicloud.ram.Role(\"default\",\n    name=f\"fcservicerole-{default['result']}\",\n    document=\"\"\"  {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"fc.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n\"\"\",\n    description=\"this is a example\",\n    force=True)\ndefault_role_policy_attachment = alicloud.ram.RolePolicyAttachment(\"default\",\n    role_name=default_role.name,\n    policy_name=\"AliyunLogFullAccess\",\n    policy_type=\"System\")\ndefault_service = alicloud.fc.Service(\"default\",\n    name=f\"example-value-{default['result']}\",\n    description=\"example-value\",\n    role=default_role.arn,\n    log_config={\n        \"project\": default_project.name,\n        \"logstore\": default_store.name,\n        \"enable_instance_metrics\": True,\n        \"enable_request_metrics\": True,\n    })\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=f\"terraform-example-{default['result']}\")\n# If you upload the function by OSS Bucket, you need to specify path can't upload by content.\ndefault_bucket_object = alicloud.oss.BucketObject(\"default\",\n    bucket=default_bucket.id,\n    key=\"index.py\",\n    content=\"\"\"import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'\"\"\")\ndefault_function = alicloud.fc.Function(\"default\",\n    service=default_service.name,\n    name=\"terraform-example\",\n    description=\"example\",\n    oss_bucket=default_bucket.id,\n    oss_key=default_bucket_object.key,\n    memory_size=512,\n    runtime=\"python3.9\",\n    handler=\"hello.handler\")\ndefault_custom_domain = alicloud.fc.CustomDomain(\"default\",\n    domain_name=\"terraform.functioncompute.com\",\n    protocol=\"HTTP\",\n    route_configs=[{\n        \"path\": \"/login/*\",\n        \"service_name\": default_service.name,\n        \"function_name\": default_function.name,\n        \"qualifier\": \"?query\",\n        \"methods\": [\n            \"GET\",\n            \"POST\",\n        ],\n    }],\n    cert_config={\n        \"cert_name\": \"example\",\n        \"certificate\": \"\"\"-----BEGIN CERTIFICATE-----\nMIICWD****-----END CERTIFICATE-----\"\"\",\n        \"private_key\": \"\"\"-----BEGIN RSA PRIVATE KEY-----\nMIICX****n-----END RSA PRIVATE KEY-----\"\"\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultProject = new AliCloud.Log.Project(\"default\", new()\n    {\n        Name = $\"example-value-{@default.Result}\",\n    });\n\n    var defaultStore = new AliCloud.Log.Store(\"default\", new()\n    {\n        Project = defaultProject.Name,\n        Name = \"example-value\",\n    });\n\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = $\"fcservicerole-{@default.Result}\",\n        Document = @\"  {\n      \\\"\"Statement\\\"\": [\n        {\n          \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n          \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n          \\\"\"Principal\\\"\": {\n            \\\"\"Service\\\"\": [\n              \\\"\"fc.aliyuncs.com\\\"\"\n            ]\n          }\n        }\n      ],\n      \\\"\"Version\\\"\": \\\"\"1\\\"\"\n  }\n\",\n        Description = \"this is a example\",\n        Force = true,\n    });\n\n    var defaultRolePolicyAttachment = new AliCloud.Ram.RolePolicyAttachment(\"default\", new()\n    {\n        RoleName = defaultRole.Name,\n        PolicyName = \"AliyunLogFullAccess\",\n        PolicyType = \"System\",\n    });\n\n    var defaultService = new AliCloud.FC.Service(\"default\", new()\n    {\n        Name = $\"example-value-{@default.Result}\",\n        Description = \"example-value\",\n        Role = defaultRole.Arn,\n        LogConfig = new AliCloud.FC.Inputs.ServiceLogConfigArgs\n        {\n            Project = defaultProject.Name,\n            Logstore = defaultStore.Name,\n            EnableInstanceMetrics = true,\n            EnableRequestMetrics = true,\n        },\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = $\"terraform-example-{@default.Result}\",\n    });\n\n    // If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n    var defaultBucketObject = new AliCloud.Oss.BucketObject(\"default\", new()\n    {\n        Bucket = defaultBucket.Id,\n        Key = \"index.py\",\n        Content = @\"import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'\",\n    });\n\n    var defaultFunction = new AliCloud.FC.Function(\"default\", new()\n    {\n        Service = defaultService.Name,\n        Name = \"terraform-example\",\n        Description = \"example\",\n        OssBucket = defaultBucket.Id,\n        OssKey = defaultBucketObject.Key,\n        MemorySize = 512,\n        Runtime = \"python3.9\",\n        Handler = \"hello.handler\",\n    });\n\n    var defaultCustomDomain = new AliCloud.FC.CustomDomain(\"default\", new()\n    {\n        DomainName = \"terraform.functioncompute.com\",\n        Protocol = \"HTTP\",\n        RouteConfigs = new[]\n        {\n            new AliCloud.FC.Inputs.CustomDomainRouteConfigArgs\n            {\n                Path = \"/login/*\",\n                ServiceName = defaultService.Name,\n                FunctionName = defaultFunction.Name,\n                Qualifier = \"?query\",\n                Methods = new[]\n                {\n                    \"GET\",\n                    \"POST\",\n                },\n            },\n        },\n        CertConfig = new AliCloud.FC.Inputs.CustomDomainCertConfigArgs\n        {\n            CertName = \"example\",\n            Certificate = @\"-----BEGIN CERTIFICATE-----\nMIICWD****-----END CERTIFICATE-----\",\n            PrivateKey = @\"-----BEGIN RSA PRIVATE KEY-----\nMIICX****n-----END RSA PRIVATE KEY-----\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultProject, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\n\t\t\tName: pulumi.Sprintf(\"example-value-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStore, err := log.NewStore(ctx, \"default\", \u0026log.StoreArgs{\n\t\t\tProject: defaultProject.Name,\n\t\t\tName:    pulumi.String(\"example-value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.Sprintf(\"fcservicerole-%v\", _default.Result),\n\t\t\tDocument: pulumi.String(`  {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"fc.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n`),\n\t\t\tDescription: pulumi.String(\"this is a example\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewRolePolicyAttachment(ctx, \"default\", \u0026ram.RolePolicyAttachmentArgs{\n\t\t\tRoleName:   defaultRole.Name,\n\t\t\tPolicyName: pulumi.String(\"AliyunLogFullAccess\"),\n\t\t\tPolicyType: pulumi.String(\"System\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultService, err := fc.NewService(ctx, \"default\", \u0026fc.ServiceArgs{\n\t\t\tName:        pulumi.Sprintf(\"example-value-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"example-value\"),\n\t\t\tRole:        defaultRole.Arn,\n\t\t\tLogConfig: \u0026fc.ServiceLogConfigArgs{\n\t\t\t\tProject:               defaultProject.Name,\n\t\t\t\tLogstore:              defaultStore.Name,\n\t\t\t\tEnableInstanceMetrics: pulumi.Bool(true),\n\t\t\t\tEnableRequestMetrics:  pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n\t\tdefaultBucketObject, err := oss.NewBucketObject(ctx, \"default\", \u0026oss.BucketObjectArgs{\n\t\t\tBucket:  defaultBucket.ID(),\n\t\t\tKey:     pulumi.String(\"index.py\"),\n\t\t\tContent: pulumi.String(\"import logging \\ndef handler(event, context): \\nlogger = logging.getLogger() \\nlogger.info('hello world') \\nreturn 'hello world'\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultFunction, err := fc.NewFunction(ctx, \"default\", \u0026fc.FunctionArgs{\n\t\t\tService:     defaultService.Name,\n\t\t\tName:        pulumi.String(\"terraform-example\"),\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tOssBucket:   defaultBucket.ID(),\n\t\t\tOssKey:      defaultBucketObject.Key,\n\t\t\tMemorySize:  pulumi.Int(512),\n\t\t\tRuntime:     pulumi.String(\"python3.9\"),\n\t\t\tHandler:     pulumi.String(\"hello.handler\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fc.NewCustomDomain(ctx, \"default\", \u0026fc.CustomDomainArgs{\n\t\t\tDomainName: pulumi.String(\"terraform.functioncompute.com\"),\n\t\t\tProtocol:   pulumi.String(\"HTTP\"),\n\t\t\tRouteConfigs: fc.CustomDomainRouteConfigArray{\n\t\t\t\t\u0026fc.CustomDomainRouteConfigArgs{\n\t\t\t\t\tPath:         pulumi.String(\"/login/*\"),\n\t\t\t\t\tServiceName:  defaultService.Name,\n\t\t\t\t\tFunctionName: defaultFunction.Name,\n\t\t\t\t\tQualifier:    pulumi.String(\"?query\"),\n\t\t\t\t\tMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\tpulumi.String(\"POST\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCertConfig: \u0026fc.CustomDomainCertConfigArgs{\n\t\t\t\tCertName:    pulumi.String(\"example\"),\n\t\t\t\tCertificate: pulumi.String(\"-----BEGIN CERTIFICATE-----\\nMIICWD****-----END CERTIFICATE-----\"),\n\t\t\t\tPrivateKey:  pulumi.String(\"-----BEGIN RSA PRIVATE KEY-----\\nMIICX****n-----END RSA PRIVATE KEY-----\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.ram.RolePolicyAttachment;\nimport com.pulumi.alicloud.ram.RolePolicyAttachmentArgs;\nimport com.pulumi.alicloud.fc.Service;\nimport com.pulumi.alicloud.fc.ServiceArgs;\nimport com.pulumi.alicloud.fc.inputs.ServiceLogConfigArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketObject;\nimport com.pulumi.alicloud.oss.BucketObjectArgs;\nimport com.pulumi.alicloud.fc.Function;\nimport com.pulumi.alicloud.fc.FunctionArgs;\nimport com.pulumi.alicloud.fc.CustomDomain;\nimport com.pulumi.alicloud.fc.CustomDomainArgs;\nimport com.pulumi.alicloud.fc.inputs.CustomDomainRouteConfigArgs;\nimport com.pulumi.alicloud.fc.inputs.CustomDomainCertConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .name(String.format(\"example-value-%s\", default_.result()))\n            .build());\n\n        var defaultStore = new Store(\"defaultStore\", StoreArgs.builder()\n            .project(defaultProject.name())\n            .name(\"example-value\")\n            .build());\n\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .name(String.format(\"fcservicerole-%s\", default_.result()))\n            .document(\"\"\"\n  {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"fc.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n            \"\"\")\n            .description(\"this is a example\")\n            .force(true)\n            .build());\n\n        var defaultRolePolicyAttachment = new RolePolicyAttachment(\"defaultRolePolicyAttachment\", RolePolicyAttachmentArgs.builder()\n            .roleName(defaultRole.name())\n            .policyName(\"AliyunLogFullAccess\")\n            .policyType(\"System\")\n            .build());\n\n        var defaultService = new Service(\"defaultService\", ServiceArgs.builder()\n            .name(String.format(\"example-value-%s\", default_.result()))\n            .description(\"example-value\")\n            .role(defaultRole.arn())\n            .logConfig(ServiceLogConfigArgs.builder()\n                .project(defaultProject.name())\n                .logstore(defaultStore.name())\n                .enableInstanceMetrics(true)\n                .enableRequestMetrics(true)\n                .build())\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-%s\", default_.result()))\n            .build());\n\n        // If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n        var defaultBucketObject = new BucketObject(\"defaultBucketObject\", BucketObjectArgs.builder()\n            .bucket(defaultBucket.id())\n            .key(\"index.py\")\n            .content(\"\"\"\nimport logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'            \"\"\")\n            .build());\n\n        var defaultFunction = new Function(\"defaultFunction\", FunctionArgs.builder()\n            .service(defaultService.name())\n            .name(\"terraform-example\")\n            .description(\"example\")\n            .ossBucket(defaultBucket.id())\n            .ossKey(defaultBucketObject.key())\n            .memorySize(512)\n            .runtime(\"python3.9\")\n            .handler(\"hello.handler\")\n            .build());\n\n        var defaultCustomDomain = new CustomDomain(\"defaultCustomDomain\", CustomDomainArgs.builder()\n            .domainName(\"terraform.functioncompute.com\")\n            .protocol(\"HTTP\")\n            .routeConfigs(CustomDomainRouteConfigArgs.builder()\n                .path(\"/login/*\")\n                .serviceName(defaultService.name())\n                .functionName(defaultFunction.name())\n                .qualifier(\"?query\")\n                .methods(                \n                    \"GET\",\n                    \"POST\")\n                .build())\n            .certConfig(CustomDomainCertConfigArgs.builder()\n                .certName(\"example\")\n                .certificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIICWD****-----END CERTIFICATE-----                \"\"\")\n                .privateKey(\"\"\"\n-----BEGIN RSA PRIVATE KEY-----\nMIICX****n-----END RSA PRIVATE KEY-----                \"\"\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  defaultProject:\n    type: alicloud:log:Project\n    name: default\n    properties:\n      name: example-value-${default.result}\n  defaultStore:\n    type: alicloud:log:Store\n    name: default\n    properties:\n      project: ${defaultProject.name}\n      name: example-value\n  defaultRole:\n    type: alicloud:ram:Role\n    name: default\n    properties:\n      name: fcservicerole-${default.result}\n      document: |2\n          {\n              \\\"Statement\\\": [\n                {\n                  \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                  \\\"Effect\\\": \\\"Allow\\\",\n                  \\\"Principal\\\": {\n                    \\\"Service\\\": [\n                      \\\"fc.aliyuncs.com\\\"\n                    ]\n                  }\n                }\n              ],\n              \\\"Version\\\": \\\"1\\\"\n          }\n      description: this is a example\n      force: true\n  defaultRolePolicyAttachment:\n    type: alicloud:ram:RolePolicyAttachment\n    name: default\n    properties:\n      roleName: ${defaultRole.name}\n      policyName: AliyunLogFullAccess\n      policyType: System\n  defaultService:\n    type: alicloud:fc:Service\n    name: default\n    properties:\n      name: example-value-${default.result}\n      description: example-value\n      role: ${defaultRole.arn}\n      logConfig:\n        project: ${defaultProject.name}\n        logstore: ${defaultStore.name}\n        enableInstanceMetrics: true\n        enableRequestMetrics: true\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket: terraform-example-${default.result}\n  # If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n  defaultBucketObject:\n    type: alicloud:oss:BucketObject\n    name: default\n    properties:\n      bucket: ${defaultBucket.id}\n      key: index.py\n      content: \"import logging \\ndef handler(event, context): \\nlogger = logging.getLogger() \\nlogger.info('hello world') \\nreturn 'hello world'\"\n  defaultFunction:\n    type: alicloud:fc:Function\n    name: default\n    properties:\n      service: ${defaultService.name}\n      name: terraform-example\n      description: example\n      ossBucket: ${defaultBucket.id}\n      ossKey: ${defaultBucketObject.key}\n      memorySize: '512'\n      runtime: python3.9\n      handler: hello.handler\n  defaultCustomDomain:\n    type: alicloud:fc:CustomDomain\n    name: default\n    properties:\n      domainName: terraform.functioncompute.com\n      protocol: HTTP\n      routeConfigs:\n        - path: /login/*\n          serviceName: ${defaultService.name}\n          functionName: ${defaultFunction.name}\n          qualifier: ?query\n          methods:\n            - GET\n            - POST\n      certConfig:\n        certName: example\n        certificate: |-\n          -----BEGIN CERTIFICATE-----\n          MIICWD****-----END CERTIFICATE-----\n        privateKey: |-\n          -----BEGIN RSA PRIVATE KEY-----\n          MIICX****n-----END RSA PRIVATE KEY-----\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFunction Compute custom domain can be imported using the id or the domain name, e.g.\n\n```sh\n$ pulumi import alicloud:fc/customDomain:CustomDomain foo my-fc-custom-domain\n```\n\n","properties":{"accountId":{"type":"string","description":"The account id.\n"},"apiVersion":{"type":"string","description":"The api version of Function Compute.\n"},"certConfig":{"$ref":"#/types/alicloud:fc/CustomDomainCertConfig:CustomDomainCertConfig","description":"The configuration of HTTPS certificate.See \u003cspan pulumi-lang-nodejs=\"`certConfig`\" pulumi-lang-dotnet=\"`CertConfig`\" pulumi-lang-go=\"`certConfig`\" pulumi-lang-python=\"`cert_config`\" pulumi-lang-yaml=\"`certConfig`\" pulumi-lang-java=\"`certConfig`\"\u003e`cert_config`\u003c/span\u003e below.\n"},"createdTime":{"type":"string","description":"The date this resource was created.\n"},"domainName":{"type":"string","description":"The custom domain name. For example, \"example.com\".\n"},"lastModifiedTime":{"type":"string","description":"The date this resource was last modified.\n"},"protocol":{"type":"string","description":"The protocol, `HTTP` or `HTTP,HTTPS`.\n"},"routeConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:fc/CustomDomainRouteConfig:CustomDomainRouteConfig"},"description":"The configuration of domain route, mapping the path and Function Compute function.See \u003cspan pulumi-lang-nodejs=\"`routeConfig`\" pulumi-lang-dotnet=\"`RouteConfig`\" pulumi-lang-go=\"`routeConfig`\" pulumi-lang-python=\"`route_config`\" pulumi-lang-yaml=\"`routeConfig`\" pulumi-lang-java=\"`routeConfig`\"\u003e`route_config`\u003c/span\u003e below.\n"}},"required":["accountId","apiVersion","createdTime","domainName","lastModifiedTime","protocol"],"inputProperties":{"certConfig":{"$ref":"#/types/alicloud:fc/CustomDomainCertConfig:CustomDomainCertConfig","description":"The configuration of HTTPS certificate.See \u003cspan pulumi-lang-nodejs=\"`certConfig`\" pulumi-lang-dotnet=\"`CertConfig`\" pulumi-lang-go=\"`certConfig`\" pulumi-lang-python=\"`cert_config`\" pulumi-lang-yaml=\"`certConfig`\" pulumi-lang-java=\"`certConfig`\"\u003e`cert_config`\u003c/span\u003e below.\n"},"domainName":{"type":"string","description":"The custom domain name. For example, \"example.com\".\n","willReplaceOnChanges":true},"protocol":{"type":"string","description":"The protocol, `HTTP` or `HTTP,HTTPS`.\n"},"routeConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:fc/CustomDomainRouteConfig:CustomDomainRouteConfig"},"description":"The configuration of domain route, mapping the path and Function Compute function.See \u003cspan pulumi-lang-nodejs=\"`routeConfig`\" pulumi-lang-dotnet=\"`RouteConfig`\" pulumi-lang-go=\"`routeConfig`\" pulumi-lang-python=\"`route_config`\" pulumi-lang-yaml=\"`routeConfig`\" pulumi-lang-java=\"`routeConfig`\"\u003e`route_config`\u003c/span\u003e below.\n"}},"requiredInputs":["domainName","protocol"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomDomain resources.\n","properties":{"accountId":{"type":"string","description":"The account id.\n"},"apiVersion":{"type":"string","description":"The api version of Function Compute.\n"},"certConfig":{"$ref":"#/types/alicloud:fc/CustomDomainCertConfig:CustomDomainCertConfig","description":"The configuration of HTTPS certificate.See \u003cspan pulumi-lang-nodejs=\"`certConfig`\" pulumi-lang-dotnet=\"`CertConfig`\" pulumi-lang-go=\"`certConfig`\" pulumi-lang-python=\"`cert_config`\" pulumi-lang-yaml=\"`certConfig`\" pulumi-lang-java=\"`certConfig`\"\u003e`cert_config`\u003c/span\u003e below.\n"},"createdTime":{"type":"string","description":"The date this resource was created.\n"},"domainName":{"type":"string","description":"The custom domain name. For example, \"example.com\".\n","willReplaceOnChanges":true},"lastModifiedTime":{"type":"string","description":"The date this resource was last modified.\n"},"protocol":{"type":"string","description":"The protocol, `HTTP` or `HTTP,HTTPS`.\n"},"routeConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:fc/CustomDomainRouteConfig:CustomDomainRouteConfig"},"description":"The configuration of domain route, mapping the path and Function Compute function.See \u003cspan pulumi-lang-nodejs=\"`routeConfig`\" pulumi-lang-dotnet=\"`RouteConfig`\" pulumi-lang-go=\"`routeConfig`\" pulumi-lang-python=\"`route_config`\" pulumi-lang-yaml=\"`routeConfig`\" pulumi-lang-java=\"`routeConfig`\"\u003e`route_config`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:fc/function:Function":{"description":"Provides a Alicloud Function Compute Function resource. Function allows you to trigger execution of code in response to events in Alibaba Cloud. The Function itself includes source code and runtime configuration.\n For information about Service and how to use it, see [What is Function Compute](https://www.alibabacloud.com/help/en/fc/developer-reference/api-createfunction).\n\n\u003e **NOTE:** The resource requires a provider field 'account_id'. See account_id.\n\n\u003e **NOTE:** Available since v1.10.0.\n\n\u003e **NOTE:** FCV3 is the latest version of Alibaba Cloud Function Compute service. It provides enhanced performance, more features, and better scalability compared to previous versions (FC and FCV2). We strongly recommend migrating to FCV3 for all new function compute deployments.\n\n\u003e **DEPRECATED:** This resource (alicloud_fc_function) represents the legacy Function Compute API. For new deployments and advanced features, please use the \u003cspan pulumi-lang-nodejs=\"`alicloud.fc.V3Function`\" pulumi-lang-dotnet=\"`alicloud.fc.V3Function`\" pulumi-lang-go=\"`fc.V3Function`\" pulumi-lang-python=\"`fc.V3Function`\" pulumi-lang-yaml=\"`alicloud.fc.V3Function`\" pulumi-lang-java=\"`alicloud.fc.V3Function`\"\u003e`alicloud.fc.V3Function`\u003c/span\u003e resource which provides access to the latest FCV3 capabilities. The legacy FC resource supports only basic functionality and does not include newer features such as CPU allocation, disk size configuration, custom DNS, GPU support, and many other FCV3-specific features. If your configuration includes FCV3-specific parameters, you must migrate to the \u003cspan pulumi-lang-nodejs=\"`alicloud.fc.V3Function`\" pulumi-lang-dotnet=\"`alicloud.fc.V3Function`\" pulumi-lang-go=\"`fc.V3Function`\" pulumi-lang-python=\"`fc.V3Function`\" pulumi-lang-yaml=\"`alicloud.fc.V3Function`\" pulumi-lang-java=\"`alicloud.fc.V3Function`\"\u003e`alicloud.fc.V3Function`\u003c/span\u003e resource.\n\n## Import\n\nFunction Compute function can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fc/function:Function foo my-fc-service:hello-world\n```\n\n","properties":{"caPort":{"type":"integer","description":"The port that the function listen to, only valid for [custom runtime](https://www.alibabacloud.com/help/doc-detail/132044.htm) and [custom container runtime](https://www.alibabacloud.com/help/doc-detail/179368.htm).\n"},"codeChecksum":{"type":"string","description":"The checksum (crc64) of the function code.Used to trigger updates.The value can be generated by data source alicloud_file_crc64_checksum.\n\u003e **NOTE:** For more information, see [Limits](https://www.alibabacloud.com/help/doc-detail/51907.htm).\n"},"customContainerConfig":{"$ref":"#/types/alicloud:fc/FunctionCustomContainerConfig:FunctionCustomContainerConfig","description":"The configuration for custom container runtime.See \u003cspan pulumi-lang-nodejs=\"`customContainerConfig`\" pulumi-lang-dotnet=\"`CustomContainerConfig`\" pulumi-lang-go=\"`customContainerConfig`\" pulumi-lang-python=\"`custom_container_config`\" pulumi-lang-yaml=\"`customContainerConfig`\" pulumi-lang-java=\"`customContainerConfig`\"\u003e`custom_container_config`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"The Function Compute function description.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"A map that defines environment variables for the function.\n"},"filename":{"type":"string","description":"The path to the function's deployment package within the local filesystem. It is conflict with the `oss_`-prefixed options.\n"},"functionArn":{"type":"string","description":"The Function Compute service function arn. It formats as `acs:fc:\u003cregion\u003e:\u003cuid\u003e:services/\u003cserviceName\u003e.LATEST/functions/\u003cfunctionName\u003e`.\n"},"functionId":{"type":"string","description":"The Function Compute service function ID.\n"},"handler":{"type":"string","description":"The function [entry point](https://www.alibabacloud.com/help/doc-detail/157704.htm) in your code.\n"},"initializationTimeout":{"type":"integer","description":"The maximum length of time, in seconds, that the function's initialization should be run for.\n"},"initializer":{"type":"string","description":"The entry point of the function's [initialization](https://www.alibabacloud.com/help/doc-detail/157704.htm).\n"},"instanceConcurrency":{"type":"integer","description":"The maximum number of requests can be executed concurrently within the single function instance.\n"},"instanceType":{"type":"string","description":"The instance type of the function.\n"},"lastModified":{"type":"string","description":"The date this resource was last modified.\n"},"layers":{"type":"array","items":{"type":"string"},"description":"The configuration for layers.\n"},"memorySize":{"type":"integer","description":"Amount of memory in MB your function can use at runtime. Defaults to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e. Limits to [128, 32768].\n"},"name":{"type":"string","description":"The Function Compute function name. It is the only in one service and is conflict with \u003cspan pulumi-lang-nodejs=\"\"namePrefix\"\" pulumi-lang-dotnet=\"\"NamePrefix\"\" pulumi-lang-go=\"\"namePrefix\"\" pulumi-lang-python=\"\"name_prefix\"\" pulumi-lang-yaml=\"\"namePrefix\"\" pulumi-lang-java=\"\"namePrefix\"\"\u003e\"name_prefix\"\u003c/span\u003e.\n"},"namePrefix":{"type":"string","description":"Setting a prefix to get a only function name. It is conflict with \"name\".\n"},"ossBucket":{"type":"string","description":"The OSS bucket location containing the function's deployment package. Conflicts with \u003cspan pulumi-lang-nodejs=\"`filename`\" pulumi-lang-dotnet=\"`Filename`\" pulumi-lang-go=\"`filename`\" pulumi-lang-python=\"`filename`\" pulumi-lang-yaml=\"`filename`\" pulumi-lang-java=\"`filename`\"\u003e`filename`\u003c/span\u003e. This bucket must reside in the same Alibaba Cloud region where you are creating the function.\n"},"ossKey":{"type":"string","description":"The OSS key of an object containing the function's deployment package. Conflicts with \u003cspan pulumi-lang-nodejs=\"`filename`\" pulumi-lang-dotnet=\"`Filename`\" pulumi-lang-go=\"`filename`\" pulumi-lang-python=\"`filename`\" pulumi-lang-yaml=\"`filename`\" pulumi-lang-java=\"`filename`\"\u003e`filename`\u003c/span\u003e.\n"},"runtime":{"type":"string","description":"See [Runtimes][https://www.alibabacloud.com/help/zh/function-compute/latest/manage-functions#multiTask3514] for valid values.\n"},"service":{"type":"string","description":"The Function Compute service name.\n"},"timeout":{"type":"integer","description":"The amount of time your function has to run in seconds.\n"}},"required":["codeChecksum","functionArn","functionId","handler","lastModified","name","runtime","service"],"inputProperties":{"caPort":{"type":"integer","description":"The port that the function listen to, only valid for [custom runtime](https://www.alibabacloud.com/help/doc-detail/132044.htm) and [custom container runtime](https://www.alibabacloud.com/help/doc-detail/179368.htm).\n"},"codeChecksum":{"type":"string","description":"The checksum (crc64) of the function code.Used to trigger updates.The value can be generated by data source alicloud_file_crc64_checksum.\n\u003e **NOTE:** For more information, see [Limits](https://www.alibabacloud.com/help/doc-detail/51907.htm).\n"},"customContainerConfig":{"$ref":"#/types/alicloud:fc/FunctionCustomContainerConfig:FunctionCustomContainerConfig","description":"The configuration for custom container runtime.See \u003cspan pulumi-lang-nodejs=\"`customContainerConfig`\" pulumi-lang-dotnet=\"`CustomContainerConfig`\" pulumi-lang-go=\"`customContainerConfig`\" pulumi-lang-python=\"`custom_container_config`\" pulumi-lang-yaml=\"`customContainerConfig`\" pulumi-lang-java=\"`customContainerConfig`\"\u003e`custom_container_config`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"The Function Compute function description.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"A map that defines environment variables for the function.\n"},"filename":{"type":"string","description":"The path to the function's deployment package within the local filesystem. It is conflict with the `oss_`-prefixed options.\n"},"handler":{"type":"string","description":"The function [entry point](https://www.alibabacloud.com/help/doc-detail/157704.htm) in your code.\n"},"initializationTimeout":{"type":"integer","description":"The maximum length of time, in seconds, that the function's initialization should be run for.\n"},"initializer":{"type":"string","description":"The entry point of the function's [initialization](https://www.alibabacloud.com/help/doc-detail/157704.htm).\n"},"instanceConcurrency":{"type":"integer","description":"The maximum number of requests can be executed concurrently within the single function instance.\n"},"instanceType":{"type":"string","description":"The instance type of the function.\n"},"layers":{"type":"array","items":{"type":"string"},"description":"The configuration for layers.\n"},"memorySize":{"type":"integer","description":"Amount of memory in MB your function can use at runtime. Defaults to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e. Limits to [128, 32768].\n"},"name":{"type":"string","description":"The Function Compute function name. It is the only in one service and is conflict with \u003cspan pulumi-lang-nodejs=\"\"namePrefix\"\" pulumi-lang-dotnet=\"\"NamePrefix\"\" pulumi-lang-go=\"\"namePrefix\"\" pulumi-lang-python=\"\"name_prefix\"\" pulumi-lang-yaml=\"\"namePrefix\"\" pulumi-lang-java=\"\"namePrefix\"\"\u003e\"name_prefix\"\u003c/span\u003e.\n","willReplaceOnChanges":true},"namePrefix":{"type":"string","description":"Setting a prefix to get a only function name. It is conflict with \"name\".\n","willReplaceOnChanges":true},"ossBucket":{"type":"string","description":"The OSS bucket location containing the function's deployment package. Conflicts with \u003cspan pulumi-lang-nodejs=\"`filename`\" pulumi-lang-dotnet=\"`Filename`\" pulumi-lang-go=\"`filename`\" pulumi-lang-python=\"`filename`\" pulumi-lang-yaml=\"`filename`\" pulumi-lang-java=\"`filename`\"\u003e`filename`\u003c/span\u003e. This bucket must reside in the same Alibaba Cloud region where you are creating the function.\n"},"ossKey":{"type":"string","description":"The OSS key of an object containing the function's deployment package. Conflicts with \u003cspan pulumi-lang-nodejs=\"`filename`\" pulumi-lang-dotnet=\"`Filename`\" pulumi-lang-go=\"`filename`\" pulumi-lang-python=\"`filename`\" pulumi-lang-yaml=\"`filename`\" pulumi-lang-java=\"`filename`\"\u003e`filename`\u003c/span\u003e.\n"},"runtime":{"type":"string","description":"See [Runtimes][https://www.alibabacloud.com/help/zh/function-compute/latest/manage-functions#multiTask3514] for valid values.\n"},"service":{"type":"string","description":"The Function Compute service name.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"The amount of time your function has to run in seconds.\n"}},"requiredInputs":["handler","runtime","service"],"stateInputs":{"description":"Input properties used for looking up and filtering Function resources.\n","properties":{"caPort":{"type":"integer","description":"The port that the function listen to, only valid for [custom runtime](https://www.alibabacloud.com/help/doc-detail/132044.htm) and [custom container runtime](https://www.alibabacloud.com/help/doc-detail/179368.htm).\n"},"codeChecksum":{"type":"string","description":"The checksum (crc64) of the function code.Used to trigger updates.The value can be generated by data source alicloud_file_crc64_checksum.\n\u003e **NOTE:** For more information, see [Limits](https://www.alibabacloud.com/help/doc-detail/51907.htm).\n"},"customContainerConfig":{"$ref":"#/types/alicloud:fc/FunctionCustomContainerConfig:FunctionCustomContainerConfig","description":"The configuration for custom container runtime.See \u003cspan pulumi-lang-nodejs=\"`customContainerConfig`\" pulumi-lang-dotnet=\"`CustomContainerConfig`\" pulumi-lang-go=\"`customContainerConfig`\" pulumi-lang-python=\"`custom_container_config`\" pulumi-lang-yaml=\"`customContainerConfig`\" pulumi-lang-java=\"`customContainerConfig`\"\u003e`custom_container_config`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"The Function Compute function description.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"A map that defines environment variables for the function.\n"},"filename":{"type":"string","description":"The path to the function's deployment package within the local filesystem. It is conflict with the `oss_`-prefixed options.\n"},"functionArn":{"type":"string","description":"The Function Compute service function arn. It formats as `acs:fc:\u003cregion\u003e:\u003cuid\u003e:services/\u003cserviceName\u003e.LATEST/functions/\u003cfunctionName\u003e`.\n"},"functionId":{"type":"string","description":"The Function Compute service function ID.\n"},"handler":{"type":"string","description":"The function [entry point](https://www.alibabacloud.com/help/doc-detail/157704.htm) in your code.\n"},"initializationTimeout":{"type":"integer","description":"The maximum length of time, in seconds, that the function's initialization should be run for.\n"},"initializer":{"type":"string","description":"The entry point of the function's [initialization](https://www.alibabacloud.com/help/doc-detail/157704.htm).\n"},"instanceConcurrency":{"type":"integer","description":"The maximum number of requests can be executed concurrently within the single function instance.\n"},"instanceType":{"type":"string","description":"The instance type of the function.\n"},"lastModified":{"type":"string","description":"The date this resource was last modified.\n"},"layers":{"type":"array","items":{"type":"string"},"description":"The configuration for layers.\n"},"memorySize":{"type":"integer","description":"Amount of memory in MB your function can use at runtime. Defaults to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e. Limits to [128, 32768].\n"},"name":{"type":"string","description":"The Function Compute function name. It is the only in one service and is conflict with \u003cspan pulumi-lang-nodejs=\"\"namePrefix\"\" pulumi-lang-dotnet=\"\"NamePrefix\"\" pulumi-lang-go=\"\"namePrefix\"\" pulumi-lang-python=\"\"name_prefix\"\" pulumi-lang-yaml=\"\"namePrefix\"\" pulumi-lang-java=\"\"namePrefix\"\"\u003e\"name_prefix\"\u003c/span\u003e.\n","willReplaceOnChanges":true},"namePrefix":{"type":"string","description":"Setting a prefix to get a only function name. It is conflict with \"name\".\n","willReplaceOnChanges":true},"ossBucket":{"type":"string","description":"The OSS bucket location containing the function's deployment package. Conflicts with \u003cspan pulumi-lang-nodejs=\"`filename`\" pulumi-lang-dotnet=\"`Filename`\" pulumi-lang-go=\"`filename`\" pulumi-lang-python=\"`filename`\" pulumi-lang-yaml=\"`filename`\" pulumi-lang-java=\"`filename`\"\u003e`filename`\u003c/span\u003e. This bucket must reside in the same Alibaba Cloud region where you are creating the function.\n"},"ossKey":{"type":"string","description":"The OSS key of an object containing the function's deployment package. Conflicts with \u003cspan pulumi-lang-nodejs=\"`filename`\" pulumi-lang-dotnet=\"`Filename`\" pulumi-lang-go=\"`filename`\" pulumi-lang-python=\"`filename`\" pulumi-lang-yaml=\"`filename`\" pulumi-lang-java=\"`filename`\"\u003e`filename`\u003c/span\u003e.\n"},"runtime":{"type":"string","description":"See [Runtimes][https://www.alibabacloud.com/help/zh/function-compute/latest/manage-functions#multiTask3514] for valid values.\n"},"service":{"type":"string","description":"The Function Compute service name.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"The amount of time your function has to run in seconds.\n"}},"type":"object"}},"alicloud:fc/functionAsyncInvokeConfig:FunctionAsyncInvokeConfig":{"description":"Manages an asynchronous invocation configuration for a FC Function or Alias.  \n For the detailed information, please refer to the [developer guide](https://www.alibabacloud.com/help/en/fc/developer-reference/api-fc-open-2021-04-06-putfunctionasyncinvokeconfig).\n\n\u003e **NOTE:** Available since v1.100.0.\n\n\u003e **DEPRECATED:** This resource (alicloud_fc_function_async_invoke_config) represents the legacy Function Compute API. For new deployments and advanced features, please use the \u003cspan pulumi-lang-nodejs=\"`alicloud.fc.V3AsyncInvokeConfig`\" pulumi-lang-dotnet=\"`alicloud.fc.V3AsyncInvokeConfig`\" pulumi-lang-go=\"`fc.V3AsyncInvokeConfig`\" pulumi-lang-python=\"`fc.V3AsyncInvokeConfig`\" pulumi-lang-yaml=\"`alicloud.fc.V3AsyncInvokeConfig`\" pulumi-lang-java=\"`alicloud.fc.V3AsyncInvokeConfig`\"\u003e`alicloud.fc.V3AsyncInvokeConfig`\u003c/span\u003e resource which provides access to the latest FCV3 capabilities. The legacy FC async invoke config supports only basic functionality and does not include newer features available in FCV3.\n\n## Example Usage\n\n### Destination Configuration\n\n\u003e **NOTE** Ensure the FC Function RAM Role has necessary permissions for the destination, such as `mns:SendMessage`, `mns:PublishMessage` or `fc:InvokeFunction`, otherwise the API will return a generic error.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = alicloud.getAccount({});\nconst defaultGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    name: `examplerole${defaultInteger.result}`,\n    document: `\\\\t{\n\\\\t\\\\t\\\\\"Statement\\\\\": [\n\\\\t\\\\t  {\n\\\\t\\\\t\\\\t\\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n\\\\t\\\\t\\\\t\\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n\\\\t\\\\t\\\\t\\\\\"Principal\\\\\": {\n\\\\t\\\\t\\\\t  \\\\\"Service\\\\\": [\n\\\\t\\\\t\\\\t\\\\t\\\\\"fc.aliyuncs.com\\\\\"\n\\\\t\\\\t\\\\t  ]\n\\\\t\\\\t\\\\t}\n\\\\t\\\\t  }\n\\\\t\\\\t],\n\\\\t\\\\t\\\\\"Version\\\\\": \\\\\"1\\\\\"\n\\\\t}\n`,\n    description: \"this is a example\",\n    force: true,\n});\nconst defaultPolicy = new alicloud.ram.Policy(\"default\", {\n    policyName: `examplepolicy${defaultInteger.result}`,\n    policyDocument: `\\\\t{\n\\\\t\\\\t\\\\\"Version\\\\\": \\\\\"1\\\\\",\n\\\\t\\\\t\\\\\"Statement\\\\\": [\n\\\\t\\\\t  {\n\\\\t\\\\t\\\\t\\\\\"Action\\\\\": \\\\\"mns:*\\\\\",\n\\\\t\\\\t\\\\t\\\\\"Resource\\\\\": \\\\\"*\\\\\",\n\\\\t\\\\t\\\\t\\\\\"Effect\\\\\": \\\\\"Allow\\\\\"\n\\\\t\\\\t  }\n\\\\t\\\\t]\n\\\\t  }\n`,\n});\nconst defaultRolePolicyAttachment = new alicloud.ram.RolePolicyAttachment(\"default\", {\n    roleName: defaultRole.name,\n    policyName: defaultPolicy.policyName,\n    policyType: \"Custom\",\n});\nconst defaultService = new alicloud.fc.Service(\"default\", {\n    name: `example-value-${defaultInteger.result}`,\n    description: \"example-value\",\n    role: defaultRole.arn,\n    internetAccess: false,\n});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: `terraform-example-${defaultInteger.result}`});\n// If you upload the function by OSS Bucket, you need to specify path can't upload by content.\nconst defaultBucketObject = new alicloud.oss.BucketObject(\"default\", {\n    bucket: defaultBucket.id,\n    key: \"index.py\",\n    content: `import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'`,\n});\nconst defaultFunction = new alicloud.fc.Function(\"default\", {\n    service: defaultService.name,\n    name: `terraform-example-${defaultInteger.result}`,\n    description: \"example\",\n    ossBucket: defaultBucket.id,\n    ossKey: defaultBucketObject.key,\n    memorySize: 512,\n    runtime: \"python3.10\",\n    handler: \"hello.handler\",\n});\nconst defaultQueue = new alicloud.mns.Queue(\"default\", {name: `terraform-example-${defaultInteger.result}`});\nconst defaultTopic = new alicloud.mns.Topic(\"default\", {name: `terraform-example-${defaultInteger.result}`});\nconst defaultFunctionAsyncInvokeConfig = new alicloud.fc.FunctionAsyncInvokeConfig(\"default\", {\n    serviceName: defaultService.name,\n    functionName: defaultFunction.name,\n    destinationConfig: {\n        onFailure: {\n            destination: pulumi.all([defaultGetRegions, _default, defaultQueue.name]).apply(([defaultGetRegions, _default, name]) =\u003e `acs:mns:${defaultGetRegions.regions?.[0]?.id}:${_default.id}:/queues/${name}/messages`),\n        },\n        onSuccess: {\n            destination: pulumi.all([defaultGetRegions, _default, defaultTopic.name]).apply(([defaultGetRegions, _default, name]) =\u003e `acs:mns:${defaultGetRegions.regions?.[0]?.id}:${_default.id}:/topics/${name}/messages`),\n        },\n    },\n    maximumEventAgeInSeconds: 60,\n    maximumRetryAttempts: 0,\n    statefulInvocation: true,\n    qualifier: \"LATEST\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = alicloud.get_account()\ndefault_get_regions = alicloud.get_regions(current=True)\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_role = alicloud.ram.Role(\"default\",\n    name=f\"examplerole{default_integer['result']}\",\n    document=\"\"\"\\t{\n\\t\\t\\\"Statement\\\": [\n\\t\\t  {\n\\t\\t\\t\\\"Action\\\": \\\"sts:AssumeRole\\\",\n\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\\"Principal\\\": {\n\\t\\t\\t  \\\"Service\\\": [\n\\t\\t\\t\\t\\\"fc.aliyuncs.com\\\"\n\\t\\t\\t  ]\n\\t\\t\\t}\n\\t\\t  }\n\\t\\t],\n\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t}\n\"\"\",\n    description=\"this is a example\",\n    force=True)\ndefault_policy = alicloud.ram.Policy(\"default\",\n    policy_name=f\"examplepolicy{default_integer['result']}\",\n    policy_document=\"\"\"\\t{\n\\t\\t\\\"Version\\\": \\\"1\\\",\n\\t\\t\\\"Statement\\\": [\n\\t\\t  {\n\\t\\t\\t\\\"Action\\\": \\\"mns:*\\\",\n\\t\\t\\t\\\"Resource\\\": \\\"*\\\",\n\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\"\n\\t\\t  }\n\\t\\t]\n\\t  }\n\"\"\")\ndefault_role_policy_attachment = alicloud.ram.RolePolicyAttachment(\"default\",\n    role_name=default_role.name,\n    policy_name=default_policy.policy_name,\n    policy_type=\"Custom\")\ndefault_service = alicloud.fc.Service(\"default\",\n    name=f\"example-value-{default_integer['result']}\",\n    description=\"example-value\",\n    role=default_role.arn,\n    internet_access=False)\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=f\"terraform-example-{default_integer['result']}\")\n# If you upload the function by OSS Bucket, you need to specify path can't upload by content.\ndefault_bucket_object = alicloud.oss.BucketObject(\"default\",\n    bucket=default_bucket.id,\n    key=\"index.py\",\n    content=\"\"\"import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'\"\"\")\ndefault_function = alicloud.fc.Function(\"default\",\n    service=default_service.name,\n    name=f\"terraform-example-{default_integer['result']}\",\n    description=\"example\",\n    oss_bucket=default_bucket.id,\n    oss_key=default_bucket_object.key,\n    memory_size=512,\n    runtime=\"python3.10\",\n    handler=\"hello.handler\")\ndefault_queue = alicloud.mns.Queue(\"default\", name=f\"terraform-example-{default_integer['result']}\")\ndefault_topic = alicloud.mns.Topic(\"default\", name=f\"terraform-example-{default_integer['result']}\")\ndefault_function_async_invoke_config = alicloud.fc.FunctionAsyncInvokeConfig(\"default\",\n    service_name=default_service.name,\n    function_name=default_function.name,\n    destination_config={\n        \"on_failure\": {\n            \"destination\": default_queue.name.apply(lambda name: f\"acs:mns:{default_get_regions.regions[0].id}:{default.id}:/queues/{name}/messages\"),\n        },\n        \"on_success\": {\n            \"destination\": default_topic.name.apply(lambda name: f\"acs:mns:{default_get_regions.regions[0].id}:{default.id}:/topics/{name}/messages\"),\n        },\n    },\n    maximum_event_age_in_seconds=60,\n    maximum_retry_attempts=0,\n    stateful_invocation=True,\n    qualifier=\"LATEST\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = $\"examplerole{defaultInteger.Result}\",\n        Document = @\"\\t{\n\\t\\t\\\"\"Statement\\\"\": [\n\\t\\t  {\n\\t\\t\\t\\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n\\t\\t\\t\\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n\\t\\t\\t\\\"\"Principal\\\"\": {\n\\t\\t\\t  \\\"\"Service\\\"\": [\n\\t\\t\\t\\t\\\"\"fc.aliyuncs.com\\\"\"\n\\t\\t\\t  ]\n\\t\\t\\t}\n\\t\\t  }\n\\t\\t],\n\\t\\t\\\"\"Version\\\"\": \\\"\"1\\\"\"\n\\t}\n\",\n        Description = \"this is a example\",\n        Force = true,\n    });\n\n    var defaultPolicy = new AliCloud.Ram.Policy(\"default\", new()\n    {\n        PolicyName = $\"examplepolicy{defaultInteger.Result}\",\n        PolicyDocument = @\"\\t{\n\\t\\t\\\"\"Version\\\"\": \\\"\"1\\\"\",\n\\t\\t\\\"\"Statement\\\"\": [\n\\t\\t  {\n\\t\\t\\t\\\"\"Action\\\"\": \\\"\"mns:*\\\"\",\n\\t\\t\\t\\\"\"Resource\\\"\": \\\"\"*\\\"\",\n\\t\\t\\t\\\"\"Effect\\\"\": \\\"\"Allow\\\"\"\n\\t\\t  }\n\\t\\t]\n\\t  }\n\",\n    });\n\n    var defaultRolePolicyAttachment = new AliCloud.Ram.RolePolicyAttachment(\"default\", new()\n    {\n        RoleName = defaultRole.Name,\n        PolicyName = defaultPolicy.PolicyName,\n        PolicyType = \"Custom\",\n    });\n\n    var defaultService = new AliCloud.FC.Service(\"default\", new()\n    {\n        Name = $\"example-value-{defaultInteger.Result}\",\n        Description = \"example-value\",\n        Role = defaultRole.Arn,\n        InternetAccess = false,\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n    // If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n    var defaultBucketObject = new AliCloud.Oss.BucketObject(\"default\", new()\n    {\n        Bucket = defaultBucket.Id,\n        Key = \"index.py\",\n        Content = @\"import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'\",\n    });\n\n    var defaultFunction = new AliCloud.FC.Function(\"default\", new()\n    {\n        Service = defaultService.Name,\n        Name = $\"terraform-example-{defaultInteger.Result}\",\n        Description = \"example\",\n        OssBucket = defaultBucket.Id,\n        OssKey = defaultBucketObject.Key,\n        MemorySize = 512,\n        Runtime = \"python3.10\",\n        Handler = \"hello.handler\",\n    });\n\n    var defaultQueue = new AliCloud.Mns.Queue(\"default\", new()\n    {\n        Name = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n    var defaultTopic = new AliCloud.Mns.Topic(\"default\", new()\n    {\n        Name = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n    var defaultFunctionAsyncInvokeConfig = new AliCloud.FC.FunctionAsyncInvokeConfig(\"default\", new()\n    {\n        ServiceName = defaultService.Name,\n        FunctionName = defaultFunction.Name,\n        DestinationConfig = new AliCloud.FC.Inputs.FunctionAsyncInvokeConfigDestinationConfigArgs\n        {\n            OnFailure = new AliCloud.FC.Inputs.FunctionAsyncInvokeConfigDestinationConfigOnFailureArgs\n            {\n                Destination = Output.Tuple(defaultGetRegions, @default, defaultQueue.Name).Apply(values =\u003e\n                {\n                    var defaultGetRegions = values.Item1;\n                    var @default = values.Item2;\n                    var name = values.Item3;\n                    return $\"acs:mns:{defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}:{@default.Apply(getAccountResult =\u003e getAccountResult.Id)}:/queues/{name}/messages\";\n                }),\n            },\n            OnSuccess = new AliCloud.FC.Inputs.FunctionAsyncInvokeConfigDestinationConfigOnSuccessArgs\n            {\n                Destination = Output.Tuple(defaultGetRegions, @default, defaultTopic.Name).Apply(values =\u003e\n                {\n                    var defaultGetRegions = values.Item1;\n                    var @default = values.Item2;\n                    var name = values.Item3;\n                    return $\"acs:mns:{defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}:{@default.Apply(getAccountResult =\u003e getAccountResult.Id)}:/topics/{name}/messages\";\n                }),\n            },\n        },\n        MaximumEventAgeInSeconds = 60,\n        MaximumRetryAttempts = 0,\n        StatefulInvocation = true,\n        Qualifier = \"LATEST\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mns\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRegions, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.Sprintf(\"examplerole%v\", defaultInteger.Result),\n\t\t\tDocument: pulumi.String(`\\t{\n\\t\\t\\\"Statement\\\": [\n\\t\\t  {\n\\t\\t\\t\\\"Action\\\": \\\"sts:AssumeRole\\\",\n\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\\"Principal\\\": {\n\\t\\t\\t  \\\"Service\\\": [\n\\t\\t\\t\\t\\\"fc.aliyuncs.com\\\"\n\\t\\t\\t  ]\n\\t\\t\\t}\n\\t\\t  }\n\\t\\t],\n\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t}\n`),\n\t\t\tDescription: pulumi.String(\"this is a example\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultPolicy, err := ram.NewPolicy(ctx, \"default\", \u0026ram.PolicyArgs{\n\t\t\tPolicyName: pulumi.Sprintf(\"examplepolicy%v\", defaultInteger.Result),\n\t\t\tPolicyDocument: pulumi.String(`\\t{\n\\t\\t\\\"Version\\\": \\\"1\\\",\n\\t\\t\\\"Statement\\\": [\n\\t\\t  {\n\\t\\t\\t\\\"Action\\\": \\\"mns:*\\\",\n\\t\\t\\t\\\"Resource\\\": \\\"*\\\",\n\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\"\n\\t\\t  }\n\\t\\t]\n\\t  }\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewRolePolicyAttachment(ctx, \"default\", \u0026ram.RolePolicyAttachmentArgs{\n\t\t\tRoleName:   defaultRole.Name,\n\t\t\tPolicyName: defaultPolicy.PolicyName,\n\t\t\tPolicyType: pulumi.String(\"Custom\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultService, err := fc.NewService(ctx, \"default\", \u0026fc.ServiceArgs{\n\t\t\tName:           pulumi.Sprintf(\"example-value-%v\", defaultInteger.Result),\n\t\t\tDescription:    pulumi.String(\"example-value\"),\n\t\t\tRole:           defaultRole.Arn,\n\t\t\tInternetAccess: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n\t\tdefaultBucketObject, err := oss.NewBucketObject(ctx, \"default\", \u0026oss.BucketObjectArgs{\n\t\t\tBucket:  defaultBucket.ID(),\n\t\t\tKey:     pulumi.String(\"index.py\"),\n\t\t\tContent: pulumi.String(\"import logging \\ndef handler(event, context): \\nlogger = logging.getLogger() \\nlogger.info('hello world') \\nreturn 'hello world'\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultFunction, err := fc.NewFunction(ctx, \"default\", \u0026fc.FunctionArgs{\n\t\t\tService:     defaultService.Name,\n\t\t\tName:        pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tOssBucket:   defaultBucket.ID(),\n\t\t\tOssKey:      defaultBucketObject.Key,\n\t\t\tMemorySize:  pulumi.Int(512),\n\t\t\tRuntime:     pulumi.String(\"python3.10\"),\n\t\t\tHandler:     pulumi.String(\"hello.handler\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultQueue, err := mns.NewQueue(ctx, \"default\", \u0026mns.QueueArgs{\n\t\t\tName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTopic, err := mns.NewTopic(ctx, \"default\", \u0026mns.TopicArgs{\n\t\t\tName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fc.NewFunctionAsyncInvokeConfig(ctx, \"default\", \u0026fc.FunctionAsyncInvokeConfigArgs{\n\t\t\tServiceName:  defaultService.Name,\n\t\t\tFunctionName: defaultFunction.Name,\n\t\t\tDestinationConfig: \u0026fc.FunctionAsyncInvokeConfigDestinationConfigArgs{\n\t\t\t\tOnFailure: \u0026fc.FunctionAsyncInvokeConfigDestinationConfigOnFailureArgs{\n\t\t\t\t\tDestination: defaultQueue.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\t\t\treturn fmt.Sprintf(\"acs:mns:%v:%v:/queues/%v/messages\", defaultGetRegions.Regions[0].Id, _default.Id, name), nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t},\n\t\t\t\tOnSuccess: \u0026fc.FunctionAsyncInvokeConfigDestinationConfigOnSuccessArgs{\n\t\t\t\t\tDestination: defaultTopic.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\t\t\treturn fmt.Sprintf(\"acs:mns:%v:%v:/topics/%v/messages\", defaultGetRegions.Regions[0].Id, _default.Id, name), nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMaximumEventAgeInSeconds: pulumi.Int(60),\n\t\t\tMaximumRetryAttempts:     pulumi.Int(0),\n\t\t\tStatefulInvocation:       pulumi.Bool(true),\n\t\t\tQualifier:                pulumi.String(\"LATEST\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.ram.Policy;\nimport com.pulumi.alicloud.ram.PolicyArgs;\nimport com.pulumi.alicloud.ram.RolePolicyAttachment;\nimport com.pulumi.alicloud.ram.RolePolicyAttachmentArgs;\nimport com.pulumi.alicloud.fc.Service;\nimport com.pulumi.alicloud.fc.ServiceArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketObject;\nimport com.pulumi.alicloud.oss.BucketObjectArgs;\nimport com.pulumi.alicloud.fc.Function;\nimport com.pulumi.alicloud.fc.FunctionArgs;\nimport com.pulumi.alicloud.mns.Queue;\nimport com.pulumi.alicloud.mns.QueueArgs;\nimport com.pulumi.alicloud.mns.Topic;\nimport com.pulumi.alicloud.mns.TopicArgs;\nimport com.pulumi.alicloud.fc.FunctionAsyncInvokeConfig;\nimport com.pulumi.alicloud.fc.FunctionAsyncInvokeConfigArgs;\nimport com.pulumi.alicloud.fc.inputs.FunctionAsyncInvokeConfigDestinationConfigArgs;\nimport com.pulumi.alicloud.fc.inputs.FunctionAsyncInvokeConfigDestinationConfigOnFailureArgs;\nimport com.pulumi.alicloud.fc.inputs.FunctionAsyncInvokeConfigDestinationConfigOnSuccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var defaultGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .name(String.format(\"examplerole%s\", defaultInteger.result()))\n            .document(\"\"\"\n\\t{\n\\t\\t\\\"Statement\\\": [\n\\t\\t  {\n\\t\\t\\t\\\"Action\\\": \\\"sts:AssumeRole\\\",\n\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\\"Principal\\\": {\n\\t\\t\\t  \\\"Service\\\": [\n\\t\\t\\t\\t\\\"fc.aliyuncs.com\\\"\n\\t\\t\\t  ]\n\\t\\t\\t}\n\\t\\t  }\n\\t\\t],\n\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t}\n            \"\"\")\n            .description(\"this is a example\")\n            .force(true)\n            .build());\n\n        var defaultPolicy = new Policy(\"defaultPolicy\", PolicyArgs.builder()\n            .policyName(String.format(\"examplepolicy%s\", defaultInteger.result()))\n            .policyDocument(\"\"\"\n\\t{\n\\t\\t\\\"Version\\\": \\\"1\\\",\n\\t\\t\\\"Statement\\\": [\n\\t\\t  {\n\\t\\t\\t\\\"Action\\\": \\\"mns:*\\\",\n\\t\\t\\t\\\"Resource\\\": \\\"*\\\",\n\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\"\n\\t\\t  }\n\\t\\t]\n\\t  }\n            \"\"\")\n            .build());\n\n        var defaultRolePolicyAttachment = new RolePolicyAttachment(\"defaultRolePolicyAttachment\", RolePolicyAttachmentArgs.builder()\n            .roleName(defaultRole.name())\n            .policyName(defaultPolicy.policyName())\n            .policyType(\"Custom\")\n            .build());\n\n        var defaultService = new Service(\"defaultService\", ServiceArgs.builder()\n            .name(String.format(\"example-value-%s\", defaultInteger.result()))\n            .description(\"example-value\")\n            .role(defaultRole.arn())\n            .internetAccess(false)\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n        // If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n        var defaultBucketObject = new BucketObject(\"defaultBucketObject\", BucketObjectArgs.builder()\n            .bucket(defaultBucket.id())\n            .key(\"index.py\")\n            .content(\"\"\"\nimport logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'            \"\"\")\n            .build());\n\n        var defaultFunction = new Function(\"defaultFunction\", FunctionArgs.builder()\n            .service(defaultService.name())\n            .name(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .description(\"example\")\n            .ossBucket(defaultBucket.id())\n            .ossKey(defaultBucketObject.key())\n            .memorySize(512)\n            .runtime(\"python3.10\")\n            .handler(\"hello.handler\")\n            .build());\n\n        var defaultQueue = new Queue(\"defaultQueue\", QueueArgs.builder()\n            .name(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n        var defaultTopic = new Topic(\"defaultTopic\", TopicArgs.builder()\n            .name(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n        var defaultFunctionAsyncInvokeConfig = new FunctionAsyncInvokeConfig(\"defaultFunctionAsyncInvokeConfig\", FunctionAsyncInvokeConfigArgs.builder()\n            .serviceName(defaultService.name())\n            .functionName(defaultFunction.name())\n            .destinationConfig(FunctionAsyncInvokeConfigDestinationConfigArgs.builder()\n                .onFailure(FunctionAsyncInvokeConfigDestinationConfigOnFailureArgs.builder()\n                    .destination(defaultQueue.name().applyValue(_name -\u003e String.format(\"acs:mns:%s:%s:/queues/%s/messages\", defaultGetRegions.regions()[0].id(),default_.id(),_name)))\n                    .build())\n                .onSuccess(FunctionAsyncInvokeConfigDestinationConfigOnSuccessArgs.builder()\n                    .destination(defaultTopic.name().applyValue(_name -\u003e String.format(\"acs:mns:%s:%s:/topics/%s/messages\", defaultGetRegions.regions()[0].id(),default_.id(),_name)))\n                    .build())\n                .build())\n            .maximumEventAgeInSeconds(60)\n            .maximumRetryAttempts(0)\n            .statefulInvocation(true)\n            .qualifier(\"LATEST\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultRole:\n    type: alicloud:ram:Role\n    name: default\n    properties:\n      name: examplerole${defaultInteger.result}\n      document: |\n        \\t{\n        \\t\\t\\\"Statement\\\": [\n        \\t\\t  {\n        \\t\\t\\t\\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n        \\t\\t\\t\\\"Principal\\\": {\n        \\t\\t\\t  \\\"Service\\\": [\n        \\t\\t\\t\\t\\\"fc.aliyuncs.com\\\"\n        \\t\\t\\t  ]\n        \\t\\t\\t}\n        \\t\\t  }\n        \\t\\t],\n        \\t\\t\\\"Version\\\": \\\"1\\\"\n        \\t}\n      description: this is a example\n      force: true\n  defaultPolicy:\n    type: alicloud:ram:Policy\n    name: default\n    properties:\n      policyName: examplepolicy${defaultInteger.result}\n      policyDocument: |\n        \\t{\n        \\t\\t\\\"Version\\\": \\\"1\\\",\n        \\t\\t\\\"Statement\\\": [\n        \\t\\t  {\n        \\t\\t\\t\\\"Action\\\": \\\"mns:*\\\",\n        \\t\\t\\t\\\"Resource\\\": \\\"*\\\",\n        \\t\\t\\t\\\"Effect\\\": \\\"Allow\\\"\n        \\t\\t  }\n        \\t\\t]\n        \\t  }\n  defaultRolePolicyAttachment:\n    type: alicloud:ram:RolePolicyAttachment\n    name: default\n    properties:\n      roleName: ${defaultRole.name}\n      policyName: ${defaultPolicy.policyName}\n      policyType: Custom\n  defaultService:\n    type: alicloud:fc:Service\n    name: default\n    properties:\n      name: example-value-${defaultInteger.result}\n      description: example-value\n      role: ${defaultRole.arn}\n      internetAccess: false\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket: terraform-example-${defaultInteger.result}\n  # If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n  defaultBucketObject:\n    type: alicloud:oss:BucketObject\n    name: default\n    properties:\n      bucket: ${defaultBucket.id}\n      key: index.py\n      content: \"import logging \\ndef handler(event, context): \\nlogger = logging.getLogger() \\nlogger.info('hello world') \\nreturn 'hello world'\"\n  defaultFunction:\n    type: alicloud:fc:Function\n    name: default\n    properties:\n      service: ${defaultService.name}\n      name: terraform-example-${defaultInteger.result}\n      description: example\n      ossBucket: ${defaultBucket.id}\n      ossKey: ${defaultBucketObject.key}\n      memorySize: '512'\n      runtime: python3.10\n      handler: hello.handler\n  defaultQueue:\n    type: alicloud:mns:Queue\n    name: default\n    properties:\n      name: terraform-example-${defaultInteger.result}\n  defaultTopic:\n    type: alicloud:mns:Topic\n    name: default\n    properties:\n      name: terraform-example-${defaultInteger.result}\n  defaultFunctionAsyncInvokeConfig:\n    type: alicloud:fc:FunctionAsyncInvokeConfig\n    name: default\n    properties:\n      serviceName: ${defaultService.name}\n      functionName: ${defaultFunction.name}\n      destinationConfig:\n        onFailure:\n          destination: acs:mns:${defaultGetRegions.regions[0].id}:${default.id}:/queues/${defaultQueue.name}/messages\n        onSuccess:\n          destination: acs:mns:${defaultGetRegions.regions[0].id}:${default.id}:/topics/${defaultTopic.name}/messages\n      maximumEventAgeInSeconds: 60\n      maximumRetryAttempts: 0 # Async Job Configuration\n      statefulInvocation: true # Configuration for Function Latest Unpublished Version\n      qualifier: LATEST\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  defaultGetRegions:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFunction Compute Function Async Invoke Configs can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fc/functionAsyncInvokeConfig:FunctionAsyncInvokeConfig example my_function\n```\n\n","properties":{"createdTime":{"type":"string","description":"The date this resource was created.\n"},"destinationConfig":{"$ref":"#/types/alicloud:fc/FunctionAsyncInvokeConfigDestinationConfig:FunctionAsyncInvokeConfigDestinationConfig","description":"Configuration block with destination configuration. See \u003cspan pulumi-lang-nodejs=\"`destinationConfig`\" pulumi-lang-dotnet=\"`DestinationConfig`\" pulumi-lang-go=\"`destinationConfig`\" pulumi-lang-python=\"`destination_config`\" pulumi-lang-yaml=\"`destinationConfig`\" pulumi-lang-java=\"`destinationConfig`\"\u003e`destination_config`\u003c/span\u003e below.\n"},"functionName":{"type":"string","description":"Name of the Function Compute Function.\n"},"lastModifiedTime":{"type":"string","description":"The date this resource was last modified.\n"},"maximumEventAgeInSeconds":{"type":"integer","description":"Maximum age of a request that Function Compute sends to a function for processing in seconds. Valid values between 1 and 2592000 (between 60 and 21600 before v1.167.0).\n"},"maximumRetryAttempts":{"type":"integer","description":"Maximum number of times to retry when the function returns an error. Valid values between 0 and 8 (between 0 and 2 before v1.167.0). Defaults to 2.\n"},"qualifier":{"type":"string","description":"Function Compute Function published version, `LATEST`, or Function Compute Alias name. The default value is `LATEST`.\n"},"serviceName":{"type":"string","description":"Name of the Function Compute Function, omitting any version or alias qualifier.\n"},"statefulInvocation":{"type":"boolean","description":"Function Compute async job configuration(also known as Task Mode). valid values true or false, default \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"}},"required":["createdTime","functionName","lastModifiedTime","serviceName"],"inputProperties":{"destinationConfig":{"$ref":"#/types/alicloud:fc/FunctionAsyncInvokeConfigDestinationConfig:FunctionAsyncInvokeConfigDestinationConfig","description":"Configuration block with destination configuration. See \u003cspan pulumi-lang-nodejs=\"`destinationConfig`\" pulumi-lang-dotnet=\"`DestinationConfig`\" pulumi-lang-go=\"`destinationConfig`\" pulumi-lang-python=\"`destination_config`\" pulumi-lang-yaml=\"`destinationConfig`\" pulumi-lang-java=\"`destinationConfig`\"\u003e`destination_config`\u003c/span\u003e below.\n"},"functionName":{"type":"string","description":"Name of the Function Compute Function.\n","willReplaceOnChanges":true},"maximumEventAgeInSeconds":{"type":"integer","description":"Maximum age of a request that Function Compute sends to a function for processing in seconds. Valid values between 1 and 2592000 (between 60 and 21600 before v1.167.0).\n"},"maximumRetryAttempts":{"type":"integer","description":"Maximum number of times to retry when the function returns an error. Valid values between 0 and 8 (between 0 and 2 before v1.167.0). Defaults to 2.\n"},"qualifier":{"type":"string","description":"Function Compute Function published version, `LATEST`, or Function Compute Alias name. The default value is `LATEST`.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"Name of the Function Compute Function, omitting any version or alias qualifier.\n","willReplaceOnChanges":true},"statefulInvocation":{"type":"boolean","description":"Function Compute async job configuration(also known as Task Mode). valid values true or false, default \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"}},"requiredInputs":["functionName","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering FunctionAsyncInvokeConfig resources.\n","properties":{"createdTime":{"type":"string","description":"The date this resource was created.\n"},"destinationConfig":{"$ref":"#/types/alicloud:fc/FunctionAsyncInvokeConfigDestinationConfig:FunctionAsyncInvokeConfigDestinationConfig","description":"Configuration block with destination configuration. See \u003cspan pulumi-lang-nodejs=\"`destinationConfig`\" pulumi-lang-dotnet=\"`DestinationConfig`\" pulumi-lang-go=\"`destinationConfig`\" pulumi-lang-python=\"`destination_config`\" pulumi-lang-yaml=\"`destinationConfig`\" pulumi-lang-java=\"`destinationConfig`\"\u003e`destination_config`\u003c/span\u003e below.\n"},"functionName":{"type":"string","description":"Name of the Function Compute Function.\n","willReplaceOnChanges":true},"lastModifiedTime":{"type":"string","description":"The date this resource was last modified.\n"},"maximumEventAgeInSeconds":{"type":"integer","description":"Maximum age of a request that Function Compute sends to a function for processing in seconds. Valid values between 1 and 2592000 (between 60 and 21600 before v1.167.0).\n"},"maximumRetryAttempts":{"type":"integer","description":"Maximum number of times to retry when the function returns an error. Valid values between 0 and 8 (between 0 and 2 before v1.167.0). Defaults to 2.\n"},"qualifier":{"type":"string","description":"Function Compute Function published version, `LATEST`, or Function Compute Alias name. The default value is `LATEST`.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"Name of the Function Compute Function, omitting any version or alias qualifier.\n","willReplaceOnChanges":true},"statefulInvocation":{"type":"boolean","description":"Function Compute async job configuration(also known as Task Mode). valid values true or false, default \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"}},"type":"object"}},"alicloud:fc/layerVersion:LayerVersion":{"description":"Provides a Function Compute Layer Version resource.\n\nFor information about FC Layer Version and how to use it, see [What is Layer Version](https://www.alibabacloud.com/help/en/fc/developer-reference/api-fc-open-2021-04-06-createlayerversion).\n\n\u003e **NOTE:** Available since v1.180.0.\n\n\u003e **NOTE: Setting \u003cspan pulumi-lang-nodejs=\"`skipDestroy`\" pulumi-lang-dotnet=\"`SkipDestroy`\" pulumi-lang-go=\"`skipDestroy`\" pulumi-lang-python=\"`skip_destroy`\" pulumi-lang-yaml=\"`skipDestroy`\" pulumi-lang-java=\"`skipDestroy`\"\u003e`skip_destroy`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e means that the Alicloud Provider will not destroy any layer version, even when running `terraform destroy`. Layer versions are thus intentional dangling resources that are not managed by Terraform and may incur extra expense in your Alicloud account.\n\n\u003e **DEPRECATED:** This resource (alicloud_fc_layer_version) represents the legacy Function Compute API. For new deployments and advanced features, please use FCV3 layer resources which provide access to the latest capabilities. The legacy FC layer version supports only basic functionality and does not include newer features available in FCV3.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: `terraform-example-${_default.result}`});\n// If you upload the function by OSS Bucket, you need to specify path can't upload by content.\nconst defaultBucketObject = new alicloud.oss.BucketObject(\"default\", {\n    bucket: defaultBucket.id,\n    key: \"index.py\",\n    content: `import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'`,\n});\nconst example = new alicloud.fc.LayerVersion(\"example\", {\n    layerName: `terraform-example-${_default.result}`,\n    compatibleRuntimes: [\"python2.7\"],\n    ossBucketName: defaultBucket.bucket,\n    ossObjectName: defaultBucketObject.key,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=f\"terraform-example-{default['result']}\")\n# If you upload the function by OSS Bucket, you need to specify path can't upload by content.\ndefault_bucket_object = alicloud.oss.BucketObject(\"default\",\n    bucket=default_bucket.id,\n    key=\"index.py\",\n    content=\"\"\"import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'\"\"\")\nexample = alicloud.fc.LayerVersion(\"example\",\n    layer_name=f\"terraform-example-{default['result']}\",\n    compatible_runtimes=[\"python2.7\"],\n    oss_bucket_name=default_bucket.bucket,\n    oss_object_name=default_bucket_object.key)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = $\"terraform-example-{@default.Result}\",\n    });\n\n    // If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n    var defaultBucketObject = new AliCloud.Oss.BucketObject(\"default\", new()\n    {\n        Bucket = defaultBucket.Id,\n        Key = \"index.py\",\n        Content = @\"import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'\",\n    });\n\n    var example = new AliCloud.FC.LayerVersion(\"example\", new()\n    {\n        LayerName = $\"terraform-example-{@default.Result}\",\n        CompatibleRuntimes = new[]\n        {\n            \"python2.7\",\n        },\n        OssBucketName = defaultBucket.BucketName,\n        OssObjectName = defaultBucketObject.Key,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n\t\tdefaultBucketObject, err := oss.NewBucketObject(ctx, \"default\", \u0026oss.BucketObjectArgs{\n\t\t\tBucket:  defaultBucket.ID(),\n\t\t\tKey:     pulumi.String(\"index.py\"),\n\t\t\tContent: pulumi.String(\"import logging \\ndef handler(event, context): \\nlogger = logging.getLogger() \\nlogger.info('hello world') \\nreturn 'hello world'\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fc.NewLayerVersion(ctx, \"example\", \u0026fc.LayerVersionArgs{\n\t\t\tLayerName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tCompatibleRuntimes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"python2.7\"),\n\t\t\t},\n\t\t\tOssBucketName: defaultBucket.Bucket,\n\t\t\tOssObjectName: defaultBucketObject.Key,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketObject;\nimport com.pulumi.alicloud.oss.BucketObjectArgs;\nimport com.pulumi.alicloud.fc.LayerVersion;\nimport com.pulumi.alicloud.fc.LayerVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-%s\", default_.result()))\n            .build());\n\n        // If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n        var defaultBucketObject = new BucketObject(\"defaultBucketObject\", BucketObjectArgs.builder()\n            .bucket(defaultBucket.id())\n            .key(\"index.py\")\n            .content(\"\"\"\nimport logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'            \"\"\")\n            .build());\n\n        var example = new LayerVersion(\"example\", LayerVersionArgs.builder()\n            .layerName(String.format(\"terraform-example-%s\", default_.result()))\n            .compatibleRuntimes(\"python2.7\")\n            .ossBucketName(defaultBucket.bucket())\n            .ossObjectName(defaultBucketObject.key())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket: terraform-example-${default.result}\n  # If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n  defaultBucketObject:\n    type: alicloud:oss:BucketObject\n    name: default\n    properties:\n      bucket: ${defaultBucket.id}\n      key: index.py\n      content: \"import logging \\ndef handler(event, context): \\nlogger = logging.getLogger() \\nlogger.info('hello world') \\nreturn 'hello world'\"\n  example:\n    type: alicloud:fc:LayerVersion\n    properties:\n      layerName: terraform-example-${default.result}\n      compatibleRuntimes:\n        - python2.7\n      ossBucketName: ${defaultBucket.bucket}\n      ossObjectName: ${defaultBucketObject.key}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFunction Compute Layer Version can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fc/layerVersion:LayerVersion example my_function\n```\n\n","properties":{"acl":{"type":"string","description":"The access mode of Layer Version.\n"},"arn":{"type":"string","description":"The arn of Layer Version.\n"},"codeCheckSum":{"type":"string","description":"The checksum of the layer code package.\n"},"compatibleRuntimes":{"type":"array","items":{"type":"string"},"description":"The list of runtime environments that are supported by the layer. Valid values: \u003cspan pulumi-lang-nodejs=\"`nodejs14`\" pulumi-lang-dotnet=\"`Nodejs14`\" pulumi-lang-go=\"`nodejs14`\" pulumi-lang-python=\"`nodejs14`\" pulumi-lang-yaml=\"`nodejs14`\" pulumi-lang-java=\"`nodejs14`\"\u003e`nodejs14`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`nodejs12`\" pulumi-lang-dotnet=\"`Nodejs12`\" pulumi-lang-go=\"`nodejs12`\" pulumi-lang-python=\"`nodejs12`\" pulumi-lang-yaml=\"`nodejs12`\" pulumi-lang-java=\"`nodejs12`\"\u003e`nodejs12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`nodejs10`\" pulumi-lang-dotnet=\"`Nodejs10`\" pulumi-lang-go=\"`nodejs10`\" pulumi-lang-python=\"`nodejs10`\" pulumi-lang-yaml=\"`nodejs10`\" pulumi-lang-java=\"`nodejs10`\"\u003e`nodejs10`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`nodejs8`\" pulumi-lang-dotnet=\"`Nodejs8`\" pulumi-lang-go=\"`nodejs8`\" pulumi-lang-python=\"`nodejs8`\" pulumi-lang-yaml=\"`nodejs8`\" pulumi-lang-java=\"`nodejs8`\"\u003e`nodejs8`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`nodejs6`\" pulumi-lang-dotnet=\"`Nodejs6`\" pulumi-lang-go=\"`nodejs6`\" pulumi-lang-python=\"`nodejs6`\" pulumi-lang-yaml=\"`nodejs6`\" pulumi-lang-java=\"`nodejs6`\"\u003e`nodejs6`\u003c/span\u003e, `python3.9`, \u003cspan pulumi-lang-nodejs=\"`python3`\" pulumi-lang-dotnet=\"`Python3`\" pulumi-lang-go=\"`python3`\" pulumi-lang-python=\"`python3`\" pulumi-lang-yaml=\"`python3`\" pulumi-lang-java=\"`python3`\"\u003e`python3`\u003c/span\u003e, `python2.7`, \u003cspan pulumi-lang-nodejs=\"`java11`\" pulumi-lang-dotnet=\"`Java11`\" pulumi-lang-go=\"`java11`\" pulumi-lang-python=\"`java11`\" pulumi-lang-yaml=\"`java11`\" pulumi-lang-java=\"`java11`\"\u003e`java11`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`java8`\" pulumi-lang-dotnet=\"`Java8`\" pulumi-lang-go=\"`java8`\" pulumi-lang-python=\"`java8`\" pulumi-lang-yaml=\"`java8`\" pulumi-lang-java=\"`java8`\"\u003e`java8`\u003c/span\u003e, `php7.2`, \u003cspan pulumi-lang-nodejs=\"`go1`\" pulumi-lang-dotnet=\"`Go1`\" pulumi-lang-go=\"`go1`\" pulumi-lang-python=\"`go1`\" pulumi-lang-yaml=\"`go1`\" pulumi-lang-java=\"`go1`\"\u003e`go1`\u003c/span\u003e,`dotnetcore2.1`, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The description of the layer version.\n"},"layerName":{"type":"string","description":"The name of the layer.\n"},"ossBucketName":{"type":"string","description":"The name of the OSS bucket that stores the ZIP package of the function code.\n"},"ossObjectName":{"type":"string","description":"The name of the OSS object (ZIP package) that contains the function code.\n"},"skipDestroy":{"type":"boolean","description":"Whether to retain the old version of a previously deployed Lambda Layer. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. When this is not set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, changing any of \u003cspan pulumi-lang-nodejs=\"`compatibleRuntimes`\" pulumi-lang-dotnet=\"`CompatibleRuntimes`\" pulumi-lang-go=\"`compatibleRuntimes`\" pulumi-lang-python=\"`compatible_runtimes`\" pulumi-lang-yaml=\"`compatibleRuntimes`\" pulumi-lang-java=\"`compatibleRuntimes`\"\u003e`compatible_runtimes`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`layerName`\" pulumi-lang-dotnet=\"`LayerName`\" pulumi-lang-go=\"`layerName`\" pulumi-lang-python=\"`layer_name`\" pulumi-lang-yaml=\"`layerName`\" pulumi-lang-java=\"`layerName`\"\u003e`layer_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ossBucketName`\" pulumi-lang-dotnet=\"`OssBucketName`\" pulumi-lang-go=\"`ossBucketName`\" pulumi-lang-python=\"`oss_bucket_name`\" pulumi-lang-yaml=\"`ossBucketName`\" pulumi-lang-java=\"`ossBucketName`\"\u003e`oss_bucket_name`\u003c/span\u003e,  \u003cspan pulumi-lang-nodejs=\"`ossObjectName`\" pulumi-lang-dotnet=\"`OssObjectName`\" pulumi-lang-go=\"`ossObjectName`\" pulumi-lang-python=\"`oss_object_name`\" pulumi-lang-yaml=\"`ossObjectName`\" pulumi-lang-java=\"`ossObjectName`\"\u003e`oss_object_name`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`zipFile`\" pulumi-lang-dotnet=\"`ZipFile`\" pulumi-lang-go=\"`zipFile`\" pulumi-lang-python=\"`zip_file`\" pulumi-lang-yaml=\"`zipFile`\" pulumi-lang-java=\"`zipFile`\"\u003e`zip_file`\u003c/span\u003e forces deletion of the existing layer version and creation of a new layer version.\n"},"version":{"type":"string","description":"The version of Layer Version.\n"},"zipFile":{"type":"string","description":"The ZIP package of the function code that is encoded in the Base64 format.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`zipFile`\" pulumi-lang-dotnet=\"`ZipFile`\" pulumi-lang-go=\"`zipFile`\" pulumi-lang-python=\"`zip_file`\" pulumi-lang-yaml=\"`zipFile`\" pulumi-lang-java=\"`zipFile`\"\u003e`zip_file`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ossBucketName`\" pulumi-lang-dotnet=\"`OssBucketName`\" pulumi-lang-go=\"`ossBucketName`\" pulumi-lang-python=\"`oss_bucket_name`\" pulumi-lang-yaml=\"`ossBucketName`\" pulumi-lang-java=\"`ossBucketName`\"\u003e`oss_bucket_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ossObjectName`\" pulumi-lang-dotnet=\"`OssObjectName`\" pulumi-lang-go=\"`ossObjectName`\" pulumi-lang-python=\"`oss_object_name`\" pulumi-lang-yaml=\"`ossObjectName`\" pulumi-lang-java=\"`ossObjectName`\"\u003e`oss_object_name`\u003c/span\u003e cannot be used together.\n"}},"required":["acl","arn","codeCheckSum","compatibleRuntimes","layerName","version"],"inputProperties":{"compatibleRuntimes":{"type":"array","items":{"type":"string"},"description":"The list of runtime environments that are supported by the layer. Valid values: \u003cspan pulumi-lang-nodejs=\"`nodejs14`\" pulumi-lang-dotnet=\"`Nodejs14`\" pulumi-lang-go=\"`nodejs14`\" pulumi-lang-python=\"`nodejs14`\" pulumi-lang-yaml=\"`nodejs14`\" pulumi-lang-java=\"`nodejs14`\"\u003e`nodejs14`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`nodejs12`\" pulumi-lang-dotnet=\"`Nodejs12`\" pulumi-lang-go=\"`nodejs12`\" pulumi-lang-python=\"`nodejs12`\" pulumi-lang-yaml=\"`nodejs12`\" pulumi-lang-java=\"`nodejs12`\"\u003e`nodejs12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`nodejs10`\" pulumi-lang-dotnet=\"`Nodejs10`\" pulumi-lang-go=\"`nodejs10`\" pulumi-lang-python=\"`nodejs10`\" pulumi-lang-yaml=\"`nodejs10`\" pulumi-lang-java=\"`nodejs10`\"\u003e`nodejs10`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`nodejs8`\" pulumi-lang-dotnet=\"`Nodejs8`\" pulumi-lang-go=\"`nodejs8`\" pulumi-lang-python=\"`nodejs8`\" pulumi-lang-yaml=\"`nodejs8`\" pulumi-lang-java=\"`nodejs8`\"\u003e`nodejs8`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`nodejs6`\" pulumi-lang-dotnet=\"`Nodejs6`\" pulumi-lang-go=\"`nodejs6`\" pulumi-lang-python=\"`nodejs6`\" pulumi-lang-yaml=\"`nodejs6`\" pulumi-lang-java=\"`nodejs6`\"\u003e`nodejs6`\u003c/span\u003e, `python3.9`, \u003cspan pulumi-lang-nodejs=\"`python3`\" pulumi-lang-dotnet=\"`Python3`\" pulumi-lang-go=\"`python3`\" pulumi-lang-python=\"`python3`\" pulumi-lang-yaml=\"`python3`\" pulumi-lang-java=\"`python3`\"\u003e`python3`\u003c/span\u003e, `python2.7`, \u003cspan pulumi-lang-nodejs=\"`java11`\" pulumi-lang-dotnet=\"`Java11`\" pulumi-lang-go=\"`java11`\" pulumi-lang-python=\"`java11`\" pulumi-lang-yaml=\"`java11`\" pulumi-lang-java=\"`java11`\"\u003e`java11`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`java8`\" pulumi-lang-dotnet=\"`Java8`\" pulumi-lang-go=\"`java8`\" pulumi-lang-python=\"`java8`\" pulumi-lang-yaml=\"`java8`\" pulumi-lang-java=\"`java8`\"\u003e`java8`\u003c/span\u003e, `php7.2`, \u003cspan pulumi-lang-nodejs=\"`go1`\" pulumi-lang-dotnet=\"`Go1`\" pulumi-lang-go=\"`go1`\" pulumi-lang-python=\"`go1`\" pulumi-lang-yaml=\"`go1`\" pulumi-lang-java=\"`go1`\"\u003e`go1`\u003c/span\u003e,`dotnetcore2.1`, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the layer version.\n","willReplaceOnChanges":true},"layerName":{"type":"string","description":"The name of the layer.\n","willReplaceOnChanges":true},"ossBucketName":{"type":"string","description":"The name of the OSS bucket that stores the ZIP package of the function code.\n","willReplaceOnChanges":true},"ossObjectName":{"type":"string","description":"The name of the OSS object (ZIP package) that contains the function code.\n","willReplaceOnChanges":true},"skipDestroy":{"type":"boolean","description":"Whether to retain the old version of a previously deployed Lambda Layer. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. When this is not set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, changing any of \u003cspan pulumi-lang-nodejs=\"`compatibleRuntimes`\" pulumi-lang-dotnet=\"`CompatibleRuntimes`\" pulumi-lang-go=\"`compatibleRuntimes`\" pulumi-lang-python=\"`compatible_runtimes`\" pulumi-lang-yaml=\"`compatibleRuntimes`\" pulumi-lang-java=\"`compatibleRuntimes`\"\u003e`compatible_runtimes`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`layerName`\" pulumi-lang-dotnet=\"`LayerName`\" pulumi-lang-go=\"`layerName`\" pulumi-lang-python=\"`layer_name`\" pulumi-lang-yaml=\"`layerName`\" pulumi-lang-java=\"`layerName`\"\u003e`layer_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ossBucketName`\" pulumi-lang-dotnet=\"`OssBucketName`\" pulumi-lang-go=\"`ossBucketName`\" pulumi-lang-python=\"`oss_bucket_name`\" pulumi-lang-yaml=\"`ossBucketName`\" pulumi-lang-java=\"`ossBucketName`\"\u003e`oss_bucket_name`\u003c/span\u003e,  \u003cspan pulumi-lang-nodejs=\"`ossObjectName`\" pulumi-lang-dotnet=\"`OssObjectName`\" pulumi-lang-go=\"`ossObjectName`\" pulumi-lang-python=\"`oss_object_name`\" pulumi-lang-yaml=\"`ossObjectName`\" pulumi-lang-java=\"`ossObjectName`\"\u003e`oss_object_name`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`zipFile`\" pulumi-lang-dotnet=\"`ZipFile`\" pulumi-lang-go=\"`zipFile`\" pulumi-lang-python=\"`zip_file`\" pulumi-lang-yaml=\"`zipFile`\" pulumi-lang-java=\"`zipFile`\"\u003e`zip_file`\u003c/span\u003e forces deletion of the existing layer version and creation of a new layer version.\n"},"zipFile":{"type":"string","description":"The ZIP package of the function code that is encoded in the Base64 format.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`zipFile`\" pulumi-lang-dotnet=\"`ZipFile`\" pulumi-lang-go=\"`zipFile`\" pulumi-lang-python=\"`zip_file`\" pulumi-lang-yaml=\"`zipFile`\" pulumi-lang-java=\"`zipFile`\"\u003e`zip_file`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ossBucketName`\" pulumi-lang-dotnet=\"`OssBucketName`\" pulumi-lang-go=\"`ossBucketName`\" pulumi-lang-python=\"`oss_bucket_name`\" pulumi-lang-yaml=\"`ossBucketName`\" pulumi-lang-java=\"`ossBucketName`\"\u003e`oss_bucket_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ossObjectName`\" pulumi-lang-dotnet=\"`OssObjectName`\" pulumi-lang-go=\"`ossObjectName`\" pulumi-lang-python=\"`oss_object_name`\" pulumi-lang-yaml=\"`ossObjectName`\" pulumi-lang-java=\"`ossObjectName`\"\u003e`oss_object_name`\u003c/span\u003e cannot be used together.\n","willReplaceOnChanges":true}},"requiredInputs":["compatibleRuntimes","layerName"],"stateInputs":{"description":"Input properties used for looking up and filtering LayerVersion resources.\n","properties":{"acl":{"type":"string","description":"The access mode of Layer Version.\n"},"arn":{"type":"string","description":"The arn of Layer Version.\n"},"codeCheckSum":{"type":"string","description":"The checksum of the layer code package.\n"},"compatibleRuntimes":{"type":"array","items":{"type":"string"},"description":"The list of runtime environments that are supported by the layer. Valid values: \u003cspan pulumi-lang-nodejs=\"`nodejs14`\" pulumi-lang-dotnet=\"`Nodejs14`\" pulumi-lang-go=\"`nodejs14`\" pulumi-lang-python=\"`nodejs14`\" pulumi-lang-yaml=\"`nodejs14`\" pulumi-lang-java=\"`nodejs14`\"\u003e`nodejs14`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`nodejs12`\" pulumi-lang-dotnet=\"`Nodejs12`\" pulumi-lang-go=\"`nodejs12`\" pulumi-lang-python=\"`nodejs12`\" pulumi-lang-yaml=\"`nodejs12`\" pulumi-lang-java=\"`nodejs12`\"\u003e`nodejs12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`nodejs10`\" pulumi-lang-dotnet=\"`Nodejs10`\" pulumi-lang-go=\"`nodejs10`\" pulumi-lang-python=\"`nodejs10`\" pulumi-lang-yaml=\"`nodejs10`\" pulumi-lang-java=\"`nodejs10`\"\u003e`nodejs10`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`nodejs8`\" pulumi-lang-dotnet=\"`Nodejs8`\" pulumi-lang-go=\"`nodejs8`\" pulumi-lang-python=\"`nodejs8`\" pulumi-lang-yaml=\"`nodejs8`\" pulumi-lang-java=\"`nodejs8`\"\u003e`nodejs8`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`nodejs6`\" pulumi-lang-dotnet=\"`Nodejs6`\" pulumi-lang-go=\"`nodejs6`\" pulumi-lang-python=\"`nodejs6`\" pulumi-lang-yaml=\"`nodejs6`\" pulumi-lang-java=\"`nodejs6`\"\u003e`nodejs6`\u003c/span\u003e, `python3.9`, \u003cspan pulumi-lang-nodejs=\"`python3`\" pulumi-lang-dotnet=\"`Python3`\" pulumi-lang-go=\"`python3`\" pulumi-lang-python=\"`python3`\" pulumi-lang-yaml=\"`python3`\" pulumi-lang-java=\"`python3`\"\u003e`python3`\u003c/span\u003e, `python2.7`, \u003cspan pulumi-lang-nodejs=\"`java11`\" pulumi-lang-dotnet=\"`Java11`\" pulumi-lang-go=\"`java11`\" pulumi-lang-python=\"`java11`\" pulumi-lang-yaml=\"`java11`\" pulumi-lang-java=\"`java11`\"\u003e`java11`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`java8`\" pulumi-lang-dotnet=\"`Java8`\" pulumi-lang-go=\"`java8`\" pulumi-lang-python=\"`java8`\" pulumi-lang-yaml=\"`java8`\" pulumi-lang-java=\"`java8`\"\u003e`java8`\u003c/span\u003e, `php7.2`, \u003cspan pulumi-lang-nodejs=\"`go1`\" pulumi-lang-dotnet=\"`Go1`\" pulumi-lang-go=\"`go1`\" pulumi-lang-python=\"`go1`\" pulumi-lang-yaml=\"`go1`\" pulumi-lang-java=\"`go1`\"\u003e`go1`\u003c/span\u003e,`dotnetcore2.1`, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the layer version.\n","willReplaceOnChanges":true},"layerName":{"type":"string","description":"The name of the layer.\n","willReplaceOnChanges":true},"ossBucketName":{"type":"string","description":"The name of the OSS bucket that stores the ZIP package of the function code.\n","willReplaceOnChanges":true},"ossObjectName":{"type":"string","description":"The name of the OSS object (ZIP package) that contains the function code.\n","willReplaceOnChanges":true},"skipDestroy":{"type":"boolean","description":"Whether to retain the old version of a previously deployed Lambda Layer. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. When this is not set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, changing any of \u003cspan pulumi-lang-nodejs=\"`compatibleRuntimes`\" pulumi-lang-dotnet=\"`CompatibleRuntimes`\" pulumi-lang-go=\"`compatibleRuntimes`\" pulumi-lang-python=\"`compatible_runtimes`\" pulumi-lang-yaml=\"`compatibleRuntimes`\" pulumi-lang-java=\"`compatibleRuntimes`\"\u003e`compatible_runtimes`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`layerName`\" pulumi-lang-dotnet=\"`LayerName`\" pulumi-lang-go=\"`layerName`\" pulumi-lang-python=\"`layer_name`\" pulumi-lang-yaml=\"`layerName`\" pulumi-lang-java=\"`layerName`\"\u003e`layer_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ossBucketName`\" pulumi-lang-dotnet=\"`OssBucketName`\" pulumi-lang-go=\"`ossBucketName`\" pulumi-lang-python=\"`oss_bucket_name`\" pulumi-lang-yaml=\"`ossBucketName`\" pulumi-lang-java=\"`ossBucketName`\"\u003e`oss_bucket_name`\u003c/span\u003e,  \u003cspan pulumi-lang-nodejs=\"`ossObjectName`\" pulumi-lang-dotnet=\"`OssObjectName`\" pulumi-lang-go=\"`ossObjectName`\" pulumi-lang-python=\"`oss_object_name`\" pulumi-lang-yaml=\"`ossObjectName`\" pulumi-lang-java=\"`ossObjectName`\"\u003e`oss_object_name`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`zipFile`\" pulumi-lang-dotnet=\"`ZipFile`\" pulumi-lang-go=\"`zipFile`\" pulumi-lang-python=\"`zip_file`\" pulumi-lang-yaml=\"`zipFile`\" pulumi-lang-java=\"`zipFile`\"\u003e`zip_file`\u003c/span\u003e forces deletion of the existing layer version and creation of a new layer version.\n"},"version":{"type":"string","description":"The version of Layer Version.\n"},"zipFile":{"type":"string","description":"The ZIP package of the function code that is encoded in the Base64 format.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`zipFile`\" pulumi-lang-dotnet=\"`ZipFile`\" pulumi-lang-go=\"`zipFile`\" pulumi-lang-python=\"`zip_file`\" pulumi-lang-yaml=\"`zipFile`\" pulumi-lang-java=\"`zipFile`\"\u003e`zip_file`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ossBucketName`\" pulumi-lang-dotnet=\"`OssBucketName`\" pulumi-lang-go=\"`ossBucketName`\" pulumi-lang-python=\"`oss_bucket_name`\" pulumi-lang-yaml=\"`ossBucketName`\" pulumi-lang-java=\"`ossBucketName`\"\u003e`oss_bucket_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ossObjectName`\" pulumi-lang-dotnet=\"`OssObjectName`\" pulumi-lang-go=\"`ossObjectName`\" pulumi-lang-python=\"`oss_object_name`\" pulumi-lang-yaml=\"`ossObjectName`\" pulumi-lang-java=\"`ossObjectName`\"\u003e`oss_object_name`\u003c/span\u003e cannot be used together.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:fc/service:Service":{"description":"Provides a Alicloud Function Compute Service resource. The resource is the base of launching Function and Trigger configuration.\nFor information about Service and how to use it, see [What is Function Compute](https://www.alibabacloud.com/help/en/fc/developer-reference/api-fc-open-2021-04-06-createservice).\n\n\u003e **NOTE:** The resource requires a provider field 'account_id'. See account_id.\n\n\u003e **NOTE:** If you happen the error \"Argument 'internetAccess' is not supported\", you need to log on web console and click button \"Apply VPC Function\"\nwhich is in the upper of [Function Service Web Console](https://fc.console.aliyun.com/) page.\n\n\u003e **NOTE:** Currently not all regions support Function Compute Service.\nFor more details supported regions, see [Service endpoints](https://www.alibabacloud.com/help/doc-detail/52984.htm)\n\n\u003e **NOTE:** Available since v1.93.0.\n\n\u003e **NOTE:** FCV3 is the latest version of Alibaba Cloud Function Compute service. It provides enhanced performance, more features, and better scalability compared to previous versions (FC and FCV2). We strongly recommend using FCV3 for all new function compute deployments.\n\n\u003e **DEPRECATED:** This resource has been deprecated and will be removed in a future version. We recommend migrating to FCV3, where you can create functions directly using \u003cspan pulumi-lang-nodejs=\"`alicloud.fc.V3Function`\" pulumi-lang-dotnet=\"`alicloud.fc.V3Function`\" pulumi-lang-go=\"`fc.V3Function`\" pulumi-lang-python=\"`fc.V3Function`\" pulumi-lang-yaml=\"`alicloud.fc.V3Function`\" pulumi-lang-java=\"`alicloud.fc.V3Function`\"\u003e`alicloud.fc.V3Function`\u003c/span\u003e without the need for a separate service resource.\n## Module Support\n\nYou can use to the existing fc module to create a service and a function quickly and then set several triggers for it.\n\n## Import\n\nFunction Compute Service can be imported using the id or name, e.g.\n\n```sh\n$ pulumi import alicloud:fc/service:Service foo my-fc-service\n```\n\n","properties":{"description":{"type":"string","description":"The Function Compute Service description.\n"},"internetAccess":{"type":"boolean","description":"Whether to allow the Service to access Internet. Default to \"true\".\n"},"lastModified":{"type":"string","description":"The date this resource was last modified.\n"},"logConfig":{"$ref":"#/types/alicloud:fc/ServiceLogConfig:ServiceLogConfig","description":"Provide this to store your Function Compute Service logs. Fields documented below. See [Create a Service](https://www.alibabacloud.com/help/doc-detail/51924.htm). \u003cspan pulumi-lang-nodejs=\"`logConfig`\" pulumi-lang-dotnet=\"`LogConfig`\" pulumi-lang-go=\"`logConfig`\" pulumi-lang-python=\"`log_config`\" pulumi-lang-yaml=\"`logConfig`\" pulumi-lang-java=\"`logConfig`\"\u003e`log_config`\u003c/span\u003e requires the following: (**NOTE:** If both \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`logstore`\" pulumi-lang-dotnet=\"`Logstore`\" pulumi-lang-go=\"`logstore`\" pulumi-lang-python=\"`logstore`\" pulumi-lang-yaml=\"`logstore`\" pulumi-lang-java=\"`logstore`\"\u003e`logstore`\u003c/span\u003e are empty,\u003cspan pulumi-lang-nodejs=\" logConfig \" pulumi-lang-dotnet=\" LogConfig \" pulumi-lang-go=\" logConfig \" pulumi-lang-python=\" log_config \" pulumi-lang-yaml=\" logConfig \" pulumi-lang-java=\" logConfig \"\u003e log_config \u003c/span\u003eis considered to be empty or unset.). See \u003cspan pulumi-lang-nodejs=\"`logConfig`\" pulumi-lang-dotnet=\"`LogConfig`\" pulumi-lang-go=\"`logConfig`\" pulumi-lang-python=\"`log_config`\" pulumi-lang-yaml=\"`logConfig`\" pulumi-lang-java=\"`logConfig`\"\u003e`log_config`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The Function Compute Service name. It is the only in one Alicloud account and is conflict with \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e.\n"},"namePrefix":{"type":"string","description":"Setting a prefix to get a only name. It is conflict with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"nasConfig":{"$ref":"#/types/alicloud:fc/ServiceNasConfig:ServiceNasConfig","description":"Provide [NAS configuration](https://www.alibabacloud.com/help/doc-detail/87401.htm) to allow Function Compute Service to access your NAS resources. See \u003cspan pulumi-lang-nodejs=\"`nasConfig`\" pulumi-lang-dotnet=\"`NasConfig`\" pulumi-lang-go=\"`nasConfig`\" pulumi-lang-python=\"`nas_config`\" pulumi-lang-yaml=\"`nasConfig`\" pulumi-lang-java=\"`nasConfig`\"\u003e`nas_config`\u003c/span\u003e below.\n"},"publish":{"type":"boolean","description":"Whether to publish creation/change as new Function Compute Service Version. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"role":{"type":"string","description":"RAM role arn attached to the Function Compute Service. This governs both who / what can invoke your Function, as well as what resources our Function has access to. See [User Permissions](https://www.alibabacloud.com/help/doc-detail/52885.htm) for more details.\n"},"serviceId":{"type":"string","description":"The Function Compute Service ID.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map for tagging resources.\n"},"tracingConfig":{"$ref":"#/types/alicloud:fc/ServiceTracingConfig:ServiceTracingConfig","description":"Provide this to allow your Function Compute to report tracing information. Fields documented below. See [Function Compute Tracing Config](https://help.aliyun.com/document_detail/189805.html). \u003cspan pulumi-lang-nodejs=\"`tracingConfig`\" pulumi-lang-dotnet=\"`TracingConfig`\" pulumi-lang-go=\"`tracingConfig`\" pulumi-lang-python=\"`tracing_config`\" pulumi-lang-yaml=\"`tracingConfig`\" pulumi-lang-java=\"`tracingConfig`\"\u003e`tracing_config`\u003c/span\u003e requires the following: (**NOTE:** If both \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`params`\" pulumi-lang-dotnet=\"`Params`\" pulumi-lang-go=\"`params`\" pulumi-lang-python=\"`params`\" pulumi-lang-yaml=\"`params`\" pulumi-lang-java=\"`params`\"\u003e`params`\u003c/span\u003e are empty,\u003cspan pulumi-lang-nodejs=\" tracingConfig \" pulumi-lang-dotnet=\" TracingConfig \" pulumi-lang-go=\" tracingConfig \" pulumi-lang-python=\" tracing_config \" pulumi-lang-yaml=\" tracingConfig \" pulumi-lang-java=\" tracingConfig \"\u003e tracing_config \u003c/span\u003eis considered to be empty or unset.). See \u003cspan pulumi-lang-nodejs=\"`tracingConfig`\" pulumi-lang-dotnet=\"`TracingConfig`\" pulumi-lang-go=\"`tracingConfig`\" pulumi-lang-python=\"`tracing_config`\" pulumi-lang-yaml=\"`tracingConfig`\" pulumi-lang-java=\"`tracingConfig`\"\u003e`tracing_config`\u003c/span\u003e below.\n"},"version":{"type":"string","description":"The latest published version of your Function Compute Service.\n"},"vpcConfig":{"$ref":"#/types/alicloud:fc/ServiceVpcConfig:ServiceVpcConfig","description":"Provide this to allow your Function Compute Service to access your VPC. Fields documented below. See [Function Compute Service in VPC](https://www.alibabacloud.com/help/faq-detail/72959.htm). \u003cspan pulumi-lang-nodejs=\"`vpcConfig`\" pulumi-lang-dotnet=\"`VpcConfig`\" pulumi-lang-go=\"`vpcConfig`\" pulumi-lang-python=\"`vpc_config`\" pulumi-lang-yaml=\"`vpcConfig`\" pulumi-lang-java=\"`vpcConfig`\"\u003e`vpc_config`\u003c/span\u003e requires the following: (**NOTE:** If both \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e are empty,\u003cspan pulumi-lang-nodejs=\" vpcConfig \" pulumi-lang-dotnet=\" VpcConfig \" pulumi-lang-go=\" vpcConfig \" pulumi-lang-python=\" vpc_config \" pulumi-lang-yaml=\" vpcConfig \" pulumi-lang-java=\" vpcConfig \"\u003e vpc_config \u003c/span\u003eis considered to be empty or unset.). See \u003cspan pulumi-lang-nodejs=\"`vpcConfig`\" pulumi-lang-dotnet=\"`VpcConfig`\" pulumi-lang-go=\"`vpcConfig`\" pulumi-lang-python=\"`vpc_config`\" pulumi-lang-yaml=\"`vpcConfig`\" pulumi-lang-java=\"`vpcConfig`\"\u003e`vpc_config`\u003c/span\u003e below.\n"}},"required":["lastModified","name","serviceId","version"],"inputProperties":{"description":{"type":"string","description":"The Function Compute Service description.\n"},"internetAccess":{"type":"boolean","description":"Whether to allow the Service to access Internet. Default to \"true\".\n"},"logConfig":{"$ref":"#/types/alicloud:fc/ServiceLogConfig:ServiceLogConfig","description":"Provide this to store your Function Compute Service logs. Fields documented below. See [Create a Service](https://www.alibabacloud.com/help/doc-detail/51924.htm). \u003cspan pulumi-lang-nodejs=\"`logConfig`\" pulumi-lang-dotnet=\"`LogConfig`\" pulumi-lang-go=\"`logConfig`\" pulumi-lang-python=\"`log_config`\" pulumi-lang-yaml=\"`logConfig`\" pulumi-lang-java=\"`logConfig`\"\u003e`log_config`\u003c/span\u003e requires the following: (**NOTE:** If both \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`logstore`\" pulumi-lang-dotnet=\"`Logstore`\" pulumi-lang-go=\"`logstore`\" pulumi-lang-python=\"`logstore`\" pulumi-lang-yaml=\"`logstore`\" pulumi-lang-java=\"`logstore`\"\u003e`logstore`\u003c/span\u003e are empty,\u003cspan pulumi-lang-nodejs=\" logConfig \" pulumi-lang-dotnet=\" LogConfig \" pulumi-lang-go=\" logConfig \" pulumi-lang-python=\" log_config \" pulumi-lang-yaml=\" logConfig \" pulumi-lang-java=\" logConfig \"\u003e log_config \u003c/span\u003eis considered to be empty or unset.). See \u003cspan pulumi-lang-nodejs=\"`logConfig`\" pulumi-lang-dotnet=\"`LogConfig`\" pulumi-lang-go=\"`logConfig`\" pulumi-lang-python=\"`log_config`\" pulumi-lang-yaml=\"`logConfig`\" pulumi-lang-java=\"`logConfig`\"\u003e`log_config`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The Function Compute Service name. It is the only in one Alicloud account and is conflict with \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e.\n","willReplaceOnChanges":true},"namePrefix":{"type":"string","description":"Setting a prefix to get a only name. It is conflict with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n","willReplaceOnChanges":true},"nasConfig":{"$ref":"#/types/alicloud:fc/ServiceNasConfig:ServiceNasConfig","description":"Provide [NAS configuration](https://www.alibabacloud.com/help/doc-detail/87401.htm) to allow Function Compute Service to access your NAS resources. See \u003cspan pulumi-lang-nodejs=\"`nasConfig`\" pulumi-lang-dotnet=\"`NasConfig`\" pulumi-lang-go=\"`nasConfig`\" pulumi-lang-python=\"`nas_config`\" pulumi-lang-yaml=\"`nasConfig`\" pulumi-lang-java=\"`nasConfig`\"\u003e`nas_config`\u003c/span\u003e below.\n"},"publish":{"type":"boolean","description":"Whether to publish creation/change as new Function Compute Service Version. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"role":{"type":"string","description":"RAM role arn attached to the Function Compute Service. This governs both who / what can invoke your Function, as well as what resources our Function has access to. See [User Permissions](https://www.alibabacloud.com/help/doc-detail/52885.htm) for more details.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map for tagging resources.\n"},"tracingConfig":{"$ref":"#/types/alicloud:fc/ServiceTracingConfig:ServiceTracingConfig","description":"Provide this to allow your Function Compute to report tracing information. Fields documented below. See [Function Compute Tracing Config](https://help.aliyun.com/document_detail/189805.html). \u003cspan pulumi-lang-nodejs=\"`tracingConfig`\" pulumi-lang-dotnet=\"`TracingConfig`\" pulumi-lang-go=\"`tracingConfig`\" pulumi-lang-python=\"`tracing_config`\" pulumi-lang-yaml=\"`tracingConfig`\" pulumi-lang-java=\"`tracingConfig`\"\u003e`tracing_config`\u003c/span\u003e requires the following: (**NOTE:** If both \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`params`\" pulumi-lang-dotnet=\"`Params`\" pulumi-lang-go=\"`params`\" pulumi-lang-python=\"`params`\" pulumi-lang-yaml=\"`params`\" pulumi-lang-java=\"`params`\"\u003e`params`\u003c/span\u003e are empty,\u003cspan pulumi-lang-nodejs=\" tracingConfig \" pulumi-lang-dotnet=\" TracingConfig \" pulumi-lang-go=\" tracingConfig \" pulumi-lang-python=\" tracing_config \" pulumi-lang-yaml=\" tracingConfig \" pulumi-lang-java=\" tracingConfig \"\u003e tracing_config \u003c/span\u003eis considered to be empty or unset.). See \u003cspan pulumi-lang-nodejs=\"`tracingConfig`\" pulumi-lang-dotnet=\"`TracingConfig`\" pulumi-lang-go=\"`tracingConfig`\" pulumi-lang-python=\"`tracing_config`\" pulumi-lang-yaml=\"`tracingConfig`\" pulumi-lang-java=\"`tracingConfig`\"\u003e`tracing_config`\u003c/span\u003e below.\n"},"vpcConfig":{"$ref":"#/types/alicloud:fc/ServiceVpcConfig:ServiceVpcConfig","description":"Provide this to allow your Function Compute Service to access your VPC. Fields documented below. See [Function Compute Service in VPC](https://www.alibabacloud.com/help/faq-detail/72959.htm). \u003cspan pulumi-lang-nodejs=\"`vpcConfig`\" pulumi-lang-dotnet=\"`VpcConfig`\" pulumi-lang-go=\"`vpcConfig`\" pulumi-lang-python=\"`vpc_config`\" pulumi-lang-yaml=\"`vpcConfig`\" pulumi-lang-java=\"`vpcConfig`\"\u003e`vpc_config`\u003c/span\u003e requires the following: (**NOTE:** If both \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e are empty,\u003cspan pulumi-lang-nodejs=\" vpcConfig \" pulumi-lang-dotnet=\" VpcConfig \" pulumi-lang-go=\" vpcConfig \" pulumi-lang-python=\" vpc_config \" pulumi-lang-yaml=\" vpcConfig \" pulumi-lang-java=\" vpcConfig \"\u003e vpc_config \u003c/span\u003eis considered to be empty or unset.). See \u003cspan pulumi-lang-nodejs=\"`vpcConfig`\" pulumi-lang-dotnet=\"`VpcConfig`\" pulumi-lang-go=\"`vpcConfig`\" pulumi-lang-python=\"`vpc_config`\" pulumi-lang-yaml=\"`vpcConfig`\" pulumi-lang-java=\"`vpcConfig`\"\u003e`vpc_config`\u003c/span\u003e below.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Service resources.\n","properties":{"description":{"type":"string","description":"The Function Compute Service description.\n"},"internetAccess":{"type":"boolean","description":"Whether to allow the Service to access Internet. Default to \"true\".\n"},"lastModified":{"type":"string","description":"The date this resource was last modified.\n"},"logConfig":{"$ref":"#/types/alicloud:fc/ServiceLogConfig:ServiceLogConfig","description":"Provide this to store your Function Compute Service logs. Fields documented below. See [Create a Service](https://www.alibabacloud.com/help/doc-detail/51924.htm). \u003cspan pulumi-lang-nodejs=\"`logConfig`\" pulumi-lang-dotnet=\"`LogConfig`\" pulumi-lang-go=\"`logConfig`\" pulumi-lang-python=\"`log_config`\" pulumi-lang-yaml=\"`logConfig`\" pulumi-lang-java=\"`logConfig`\"\u003e`log_config`\u003c/span\u003e requires the following: (**NOTE:** If both \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`logstore`\" pulumi-lang-dotnet=\"`Logstore`\" pulumi-lang-go=\"`logstore`\" pulumi-lang-python=\"`logstore`\" pulumi-lang-yaml=\"`logstore`\" pulumi-lang-java=\"`logstore`\"\u003e`logstore`\u003c/span\u003e are empty,\u003cspan pulumi-lang-nodejs=\" logConfig \" pulumi-lang-dotnet=\" LogConfig \" pulumi-lang-go=\" logConfig \" pulumi-lang-python=\" log_config \" pulumi-lang-yaml=\" logConfig \" pulumi-lang-java=\" logConfig \"\u003e log_config \u003c/span\u003eis considered to be empty or unset.). See \u003cspan pulumi-lang-nodejs=\"`logConfig`\" pulumi-lang-dotnet=\"`LogConfig`\" pulumi-lang-go=\"`logConfig`\" pulumi-lang-python=\"`log_config`\" pulumi-lang-yaml=\"`logConfig`\" pulumi-lang-java=\"`logConfig`\"\u003e`log_config`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The Function Compute Service name. It is the only in one Alicloud account and is conflict with \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e.\n","willReplaceOnChanges":true},"namePrefix":{"type":"string","description":"Setting a prefix to get a only name. It is conflict with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n","willReplaceOnChanges":true},"nasConfig":{"$ref":"#/types/alicloud:fc/ServiceNasConfig:ServiceNasConfig","description":"Provide [NAS configuration](https://www.alibabacloud.com/help/doc-detail/87401.htm) to allow Function Compute Service to access your NAS resources. See \u003cspan pulumi-lang-nodejs=\"`nasConfig`\" pulumi-lang-dotnet=\"`NasConfig`\" pulumi-lang-go=\"`nasConfig`\" pulumi-lang-python=\"`nas_config`\" pulumi-lang-yaml=\"`nasConfig`\" pulumi-lang-java=\"`nasConfig`\"\u003e`nas_config`\u003c/span\u003e below.\n"},"publish":{"type":"boolean","description":"Whether to publish creation/change as new Function Compute Service Version. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"role":{"type":"string","description":"RAM role arn attached to the Function Compute Service. This governs both who / what can invoke your Function, as well as what resources our Function has access to. See [User Permissions](https://www.alibabacloud.com/help/doc-detail/52885.htm) for more details.\n"},"serviceId":{"type":"string","description":"The Function Compute Service ID.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map for tagging resources.\n"},"tracingConfig":{"$ref":"#/types/alicloud:fc/ServiceTracingConfig:ServiceTracingConfig","description":"Provide this to allow your Function Compute to report tracing information. Fields documented below. See [Function Compute Tracing Config](https://help.aliyun.com/document_detail/189805.html). \u003cspan pulumi-lang-nodejs=\"`tracingConfig`\" pulumi-lang-dotnet=\"`TracingConfig`\" pulumi-lang-go=\"`tracingConfig`\" pulumi-lang-python=\"`tracing_config`\" pulumi-lang-yaml=\"`tracingConfig`\" pulumi-lang-java=\"`tracingConfig`\"\u003e`tracing_config`\u003c/span\u003e requires the following: (**NOTE:** If both \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`params`\" pulumi-lang-dotnet=\"`Params`\" pulumi-lang-go=\"`params`\" pulumi-lang-python=\"`params`\" pulumi-lang-yaml=\"`params`\" pulumi-lang-java=\"`params`\"\u003e`params`\u003c/span\u003e are empty,\u003cspan pulumi-lang-nodejs=\" tracingConfig \" pulumi-lang-dotnet=\" TracingConfig \" pulumi-lang-go=\" tracingConfig \" pulumi-lang-python=\" tracing_config \" pulumi-lang-yaml=\" tracingConfig \" pulumi-lang-java=\" tracingConfig \"\u003e tracing_config \u003c/span\u003eis considered to be empty or unset.). See \u003cspan pulumi-lang-nodejs=\"`tracingConfig`\" pulumi-lang-dotnet=\"`TracingConfig`\" pulumi-lang-go=\"`tracingConfig`\" pulumi-lang-python=\"`tracing_config`\" pulumi-lang-yaml=\"`tracingConfig`\" pulumi-lang-java=\"`tracingConfig`\"\u003e`tracing_config`\u003c/span\u003e below.\n"},"version":{"type":"string","description":"The latest published version of your Function Compute Service.\n"},"vpcConfig":{"$ref":"#/types/alicloud:fc/ServiceVpcConfig:ServiceVpcConfig","description":"Provide this to allow your Function Compute Service to access your VPC. Fields documented below. See [Function Compute Service in VPC](https://www.alibabacloud.com/help/faq-detail/72959.htm). \u003cspan pulumi-lang-nodejs=\"`vpcConfig`\" pulumi-lang-dotnet=\"`VpcConfig`\" pulumi-lang-go=\"`vpcConfig`\" pulumi-lang-python=\"`vpc_config`\" pulumi-lang-yaml=\"`vpcConfig`\" pulumi-lang-java=\"`vpcConfig`\"\u003e`vpc_config`\u003c/span\u003e requires the following: (**NOTE:** If both \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e are empty,\u003cspan pulumi-lang-nodejs=\" vpcConfig \" pulumi-lang-dotnet=\" VpcConfig \" pulumi-lang-go=\" vpcConfig \" pulumi-lang-python=\" vpc_config \" pulumi-lang-yaml=\" vpcConfig \" pulumi-lang-java=\" vpcConfig \"\u003e vpc_config \u003c/span\u003eis considered to be empty or unset.). See \u003cspan pulumi-lang-nodejs=\"`vpcConfig`\" pulumi-lang-dotnet=\"`VpcConfig`\" pulumi-lang-go=\"`vpcConfig`\" pulumi-lang-python=\"`vpc_config`\" pulumi-lang-yaml=\"`vpcConfig`\" pulumi-lang-java=\"`vpcConfig`\"\u003e`vpc_config`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:fc/trigger:Trigger":{"description":"Provides an Alicloud Function Compute Trigger resource. Based on trigger, execute your code in response to events in Alibaba Cloud.\n For information about Service and how to use it, see [What is Function Compute](https://www.alibabacloud.com/help/en/fc/developer-reference/api-fc-open-2021-04-06-createtrigger).\n\n\u003e **NOTE:** The resource requires a provider field 'account_id'. See account_id.\n\n\u003e **NOTE:** Available since v1.93.0.\n\n\u003e **DEPRECATED:** This resource (alicloud_fc_trigger) represents the legacy Function Compute API. For new deployments and advanced features, please use the \u003cspan pulumi-lang-nodejs=\"`alicloud.fc.V3Trigger`\" pulumi-lang-dotnet=\"`alicloud.fc.V3Trigger`\" pulumi-lang-go=\"`fc.V3Trigger`\" pulumi-lang-python=\"`fc.V3Trigger`\" pulumi-lang-yaml=\"`alicloud.fc.V3Trigger`\" pulumi-lang-java=\"`alicloud.fc.V3Trigger`\"\u003e`alicloud.fc.V3Trigger`\u003c/span\u003e resource which provides access to the latest FCV3 capabilities. The legacy FC trigger supports only basic functionality and does not include newer features available in FCV3.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = alicloud.getAccount({});\nconst defaultGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultProject = new alicloud.log.Project(\"default\", {projectName: `example-value-${defaultInteger.result}`});\nconst defaultStore = new alicloud.log.Store(\"default\", {\n    projectName: defaultProject.projectName,\n    logstoreName: \"example-value\",\n});\nconst sourceStore = new alicloud.log.Store(\"source_store\", {\n    projectName: defaultProject.projectName,\n    logstoreName: \"example-source-store\",\n});\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    name: `fcservicerole-${defaultInteger.result}`,\n    document: `  {\n      \\\\\"Statement\\\\\": [\n        {\n          \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n          \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n          \\\\\"Principal\\\\\": {\n            \\\\\"Service\\\\\": [\n              \\\\\"fc.aliyuncs.com\\\\\"\n            ]\n          }\n        }\n      ],\n      \\\\\"Version\\\\\": \\\\\"1\\\\\"\n  }\n`,\n    description: \"this is a example\",\n    force: true,\n});\nconst defaultRolePolicyAttachment = new alicloud.ram.RolePolicyAttachment(\"default\", {\n    roleName: defaultRole.name,\n    policyName: \"AliyunLogFullAccess\",\n    policyType: \"System\",\n});\nconst defaultService = new alicloud.fc.Service(\"default\", {\n    name: `example-value-${defaultInteger.result}`,\n    description: \"example-value\",\n    role: defaultRole.arn,\n    logConfig: {\n        project: defaultProject.projectName,\n        logstore: defaultStore.logstoreName,\n        enableInstanceMetrics: true,\n        enableRequestMetrics: true,\n    },\n});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: `terraform-example-${defaultInteger.result}`});\n// If you upload the function by OSS Bucket, you need to specify path can't upload by content.\nconst defaultBucketObject = new alicloud.oss.BucketObject(\"default\", {\n    bucket: defaultBucket.id,\n    key: \"index.py\",\n    content: `import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'`,\n});\nconst defaultFunction = new alicloud.fc.Function(\"default\", {\n    service: defaultService.name,\n    name: \"terraform-example\",\n    description: \"example\",\n    ossBucket: defaultBucket.id,\n    ossKey: defaultBucketObject.key,\n    memorySize: 512,\n    runtime: \"python3.10\",\n    handler: \"hello.handler\",\n});\nconst defaultTrigger = new alicloud.fc.Trigger(\"default\", {\n    service: defaultService.name,\n    \"function\": defaultFunction.name,\n    name: \"terraform-example\",\n    role: defaultRole.arn,\n    sourceArn: pulumi.all([defaultGetRegions, _default, defaultProject.projectName]).apply(([defaultGetRegions, _default, projectName]) =\u003e `acs:log:${defaultGetRegions.regions?.[0]?.id}:${_default.id}:project/${projectName}`),\n    type: \"log\",\n    config: pulumi.interpolate`    {\n        \\\"sourceConfig\\\": {\n            \\\"logstore\\\": \\\"${sourceStore.logstoreName}\\\",\n            \\\"startTime\\\": null\n        },\n        \\\"jobConfig\\\": {\n            \\\"maxRetryTime\\\": 3,\n            \\\"triggerInterval\\\": 60\n        },\n        \\\"functionParameter\\\": {\n            \\\"a\\\": \\\"b\\\",\n            \\\"c\\\": \\\"d\\\"\n        },\n        \\\"logConfig\\\": {\n             \\\"project\\\": \\\"${defaultProject.projectName}\\\",\n            \\\"logstore\\\": \\\"${defaultStore.logstoreName}\\\"\n        },\n        \\\"enable\\\": true\n    }\n  \n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = alicloud.get_account()\ndefault_get_regions = alicloud.get_regions(current=True)\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_project = alicloud.log.Project(\"default\", project_name=f\"example-value-{default_integer['result']}\")\ndefault_store = alicloud.log.Store(\"default\",\n    project_name=default_project.project_name,\n    logstore_name=\"example-value\")\nsource_store = alicloud.log.Store(\"source_store\",\n    project_name=default_project.project_name,\n    logstore_name=\"example-source-store\")\ndefault_role = alicloud.ram.Role(\"default\",\n    name=f\"fcservicerole-{default_integer['result']}\",\n    document=\"\"\"  {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"fc.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n\"\"\",\n    description=\"this is a example\",\n    force=True)\ndefault_role_policy_attachment = alicloud.ram.RolePolicyAttachment(\"default\",\n    role_name=default_role.name,\n    policy_name=\"AliyunLogFullAccess\",\n    policy_type=\"System\")\ndefault_service = alicloud.fc.Service(\"default\",\n    name=f\"example-value-{default_integer['result']}\",\n    description=\"example-value\",\n    role=default_role.arn,\n    log_config={\n        \"project\": default_project.project_name,\n        \"logstore\": default_store.logstore_name,\n        \"enable_instance_metrics\": True,\n        \"enable_request_metrics\": True,\n    })\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=f\"terraform-example-{default_integer['result']}\")\n# If you upload the function by OSS Bucket, you need to specify path can't upload by content.\ndefault_bucket_object = alicloud.oss.BucketObject(\"default\",\n    bucket=default_bucket.id,\n    key=\"index.py\",\n    content=\"\"\"import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'\"\"\")\ndefault_function = alicloud.fc.Function(\"default\",\n    service=default_service.name,\n    name=\"terraform-example\",\n    description=\"example\",\n    oss_bucket=default_bucket.id,\n    oss_key=default_bucket_object.key,\n    memory_size=512,\n    runtime=\"python3.10\",\n    handler=\"hello.handler\")\ndefault_trigger = alicloud.fc.Trigger(\"default\",\n    service=default_service.name,\n    function=default_function.name,\n    name=\"terraform-example\",\n    role=default_role.arn,\n    source_arn=default_project.project_name.apply(lambda project_name: f\"acs:log:{default_get_regions.regions[0].id}:{default.id}:project/{project_name}\"),\n    type=\"log\",\n    config=pulumi.Output.all(\n        sourceStoreLogstore_name=source_store.logstore_name,\n        project_name=default_project.project_name,\n        defaultStoreLogstore_name=default_store.logstore_name\n).apply(lambda resolved_outputs: f\"\"\"    {{\n        \\\"sourceConfig\\\": {{\n            \\\"logstore\\\": \\\"{resolved_outputs['sourceStoreLogstore_name']}\\\",\n            \\\"startTime\\\": null\n        }},\n        \\\"jobConfig\\\": {{\n            \\\"maxRetryTime\\\": 3,\n            \\\"triggerInterval\\\": 60\n        }},\n        \\\"functionParameter\\\": {{\n            \\\"a\\\": \\\"b\\\",\n            \\\"c\\\": \\\"d\\\"\n        }},\n        \\\"logConfig\\\": {{\n             \\\"project\\\": \\\"{resolved_outputs['project_name']}\\\",\n            \\\"logstore\\\": \\\"{resolved_outputs['defaultStoreLogstore_name']}\\\"\n        }},\n        \\\"enable\\\": true\n    }}\n  \n\"\"\")\n)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultProject = new AliCloud.Log.Project(\"default\", new()\n    {\n        ProjectName = $\"example-value-{defaultInteger.Result}\",\n    });\n\n    var defaultStore = new AliCloud.Log.Store(\"default\", new()\n    {\n        ProjectName = defaultProject.ProjectName,\n        LogstoreName = \"example-value\",\n    });\n\n    var sourceStore = new AliCloud.Log.Store(\"source_store\", new()\n    {\n        ProjectName = defaultProject.ProjectName,\n        LogstoreName = \"example-source-store\",\n    });\n\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = $\"fcservicerole-{defaultInteger.Result}\",\n        Document = @\"  {\n      \\\"\"Statement\\\"\": [\n        {\n          \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n          \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n          \\\"\"Principal\\\"\": {\n            \\\"\"Service\\\"\": [\n              \\\"\"fc.aliyuncs.com\\\"\"\n            ]\n          }\n        }\n      ],\n      \\\"\"Version\\\"\": \\\"\"1\\\"\"\n  }\n\",\n        Description = \"this is a example\",\n        Force = true,\n    });\n\n    var defaultRolePolicyAttachment = new AliCloud.Ram.RolePolicyAttachment(\"default\", new()\n    {\n        RoleName = defaultRole.Name,\n        PolicyName = \"AliyunLogFullAccess\",\n        PolicyType = \"System\",\n    });\n\n    var defaultService = new AliCloud.FC.Service(\"default\", new()\n    {\n        Name = $\"example-value-{defaultInteger.Result}\",\n        Description = \"example-value\",\n        Role = defaultRole.Arn,\n        LogConfig = new AliCloud.FC.Inputs.ServiceLogConfigArgs\n        {\n            Project = defaultProject.ProjectName,\n            Logstore = defaultStore.LogstoreName,\n            EnableInstanceMetrics = true,\n            EnableRequestMetrics = true,\n        },\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n    // If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n    var defaultBucketObject = new AliCloud.Oss.BucketObject(\"default\", new()\n    {\n        Bucket = defaultBucket.Id,\n        Key = \"index.py\",\n        Content = @\"import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'\",\n    });\n\n    var defaultFunction = new AliCloud.FC.Function(\"default\", new()\n    {\n        Service = defaultService.Name,\n        Name = \"terraform-example\",\n        Description = \"example\",\n        OssBucket = defaultBucket.Id,\n        OssKey = defaultBucketObject.Key,\n        MemorySize = 512,\n        Runtime = \"python3.10\",\n        Handler = \"hello.handler\",\n    });\n\n    var defaultTrigger = new AliCloud.FC.Trigger(\"default\", new()\n    {\n        Service = defaultService.Name,\n        Function = defaultFunction.Name,\n        Name = \"terraform-example\",\n        Role = defaultRole.Arn,\n        SourceArn = Output.Tuple(defaultGetRegions, @default, defaultProject.ProjectName).Apply(values =\u003e\n        {\n            var defaultGetRegions = values.Item1;\n            var @default = values.Item2;\n            var projectName = values.Item3;\n            return $\"acs:log:{defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}:{@default.Apply(getAccountResult =\u003e getAccountResult.Id)}:project/{projectName}\";\n        }),\n        Type = \"log\",\n        Config = Output.Tuple(sourceStore.LogstoreName, defaultProject.ProjectName, defaultStore.LogstoreName).Apply(values =\u003e\n        {\n            var sourceStoreLogstoreName = values.Item1;\n            var projectName = values.Item2;\n            var defaultStoreLogstoreName = values.Item3;\n            return @$\"    {{\n        \\\"\"sourceConfig\\\"\": {{\n            \\\"\"logstore\\\"\": \\\"\"{sourceStoreLogstoreName}\\\"\",\n            \\\"\"startTime\\\"\": null\n        }},\n        \\\"\"jobConfig\\\"\": {{\n            \\\"\"maxRetryTime\\\"\": 3,\n            \\\"\"triggerInterval\\\"\": 60\n        }},\n        \\\"\"functionParameter\\\"\": {{\n            \\\"\"a\\\"\": \\\"\"b\\\"\",\n            \\\"\"c\\\"\": \\\"\"d\\\"\"\n        }},\n        \\\"\"logConfig\\\"\": {{\n             \\\"\"project\\\"\": \\\"\"{projectName}\\\"\",\n            \\\"\"logstore\\\"\": \\\"\"{defaultStoreLogstoreName}\\\"\"\n        }},\n        \\\"\"enable\\\"\": true\n    }}\n  \n\";\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRegions, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultProject, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"example-value-%v\", defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStore, err := log.NewStore(ctx, \"default\", \u0026log.StoreArgs{\n\t\t\tProjectName:  defaultProject.ProjectName,\n\t\t\tLogstoreName: pulumi.String(\"example-value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsourceStore, err := log.NewStore(ctx, \"source_store\", \u0026log.StoreArgs{\n\t\t\tProjectName:  defaultProject.ProjectName,\n\t\t\tLogstoreName: pulumi.String(\"example-source-store\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.Sprintf(\"fcservicerole-%v\", defaultInteger.Result),\n\t\t\tDocument: pulumi.String(`  {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"fc.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n`),\n\t\t\tDescription: pulumi.String(\"this is a example\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewRolePolicyAttachment(ctx, \"default\", \u0026ram.RolePolicyAttachmentArgs{\n\t\t\tRoleName:   defaultRole.Name,\n\t\t\tPolicyName: pulumi.String(\"AliyunLogFullAccess\"),\n\t\t\tPolicyType: pulumi.String(\"System\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultService, err := fc.NewService(ctx, \"default\", \u0026fc.ServiceArgs{\n\t\t\tName:        pulumi.Sprintf(\"example-value-%v\", defaultInteger.Result),\n\t\t\tDescription: pulumi.String(\"example-value\"),\n\t\t\tRole:        defaultRole.Arn,\n\t\t\tLogConfig: \u0026fc.ServiceLogConfigArgs{\n\t\t\t\tProject:               defaultProject.ProjectName,\n\t\t\t\tLogstore:              defaultStore.LogstoreName,\n\t\t\t\tEnableInstanceMetrics: pulumi.Bool(true),\n\t\t\t\tEnableRequestMetrics:  pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n\t\tdefaultBucketObject, err := oss.NewBucketObject(ctx, \"default\", \u0026oss.BucketObjectArgs{\n\t\t\tBucket:  defaultBucket.ID(),\n\t\t\tKey:     pulumi.String(\"index.py\"),\n\t\t\tContent: pulumi.String(\"import logging \\ndef handler(event, context): \\nlogger = logging.getLogger() \\nlogger.info('hello world') \\nreturn 'hello world'\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultFunction, err := fc.NewFunction(ctx, \"default\", \u0026fc.FunctionArgs{\n\t\t\tService:     defaultService.Name,\n\t\t\tName:        pulumi.String(\"terraform-example\"),\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tOssBucket:   defaultBucket.ID(),\n\t\t\tOssKey:      defaultBucketObject.Key,\n\t\t\tMemorySize:  pulumi.Int(512),\n\t\t\tRuntime:     pulumi.String(\"python3.10\"),\n\t\t\tHandler:     pulumi.String(\"hello.handler\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fc.NewTrigger(ctx, \"default\", \u0026fc.TriggerArgs{\n\t\t\tService:  defaultService.Name,\n\t\t\tFunction: defaultFunction.Name,\n\t\t\tName:     pulumi.String(\"terraform-example\"),\n\t\t\tRole:     defaultRole.Arn,\n\t\t\tSourceArn: defaultProject.ProjectName.ApplyT(func(projectName string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"acs:log:%v:%v:project/%v\", defaultGetRegions.Regions[0].Id, _default.Id, projectName), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tType: pulumi.String(\"log\"),\n\t\t\tConfig: pulumi.All(sourceStore.LogstoreName, defaultProject.ProjectName, defaultStore.LogstoreName).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tsourceStoreLogstoreName := _args[0].(string)\n\t\t\t\tprojectName := _args[1].(string)\n\t\t\t\tdefaultStoreLogstoreName := _args[2].(string)\n\t\t\t\treturn fmt.Sprintf(`    {\n        \\\"sourceConfig\\\": {\n            \\\"logstore\\\": \\\"%v\\\",\n            \\\"startTime\\\": null\n        },\n        \\\"jobConfig\\\": {\n            \\\"maxRetryTime\\\": 3,\n            \\\"triggerInterval\\\": 60\n        },\n        \\\"functionParameter\\\": {\n            \\\"a\\\": \\\"b\\\",\n            \\\"c\\\": \\\"d\\\"\n        },\n        \\\"logConfig\\\": {\n             \\\"project\\\": \\\"%v\\\",\n            \\\"logstore\\\": \\\"%v\\\"\n        },\n        \\\"enable\\\": true\n    }\n  \n`, sourceStoreLogstoreName, projectName, defaultStoreLogstoreName), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.ram.RolePolicyAttachment;\nimport com.pulumi.alicloud.ram.RolePolicyAttachmentArgs;\nimport com.pulumi.alicloud.fc.Service;\nimport com.pulumi.alicloud.fc.ServiceArgs;\nimport com.pulumi.alicloud.fc.inputs.ServiceLogConfigArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketObject;\nimport com.pulumi.alicloud.oss.BucketObjectArgs;\nimport com.pulumi.alicloud.fc.Function;\nimport com.pulumi.alicloud.fc.FunctionArgs;\nimport com.pulumi.alicloud.fc.Trigger;\nimport com.pulumi.alicloud.fc.TriggerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var defaultGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .projectName(String.format(\"example-value-%s\", defaultInteger.result()))\n            .build());\n\n        var defaultStore = new Store(\"defaultStore\", StoreArgs.builder()\n            .projectName(defaultProject.projectName())\n            .logstoreName(\"example-value\")\n            .build());\n\n        var sourceStore = new Store(\"sourceStore\", StoreArgs.builder()\n            .projectName(defaultProject.projectName())\n            .logstoreName(\"example-source-store\")\n            .build());\n\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .name(String.format(\"fcservicerole-%s\", defaultInteger.result()))\n            .document(\"\"\"\n  {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"fc.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n            \"\"\")\n            .description(\"this is a example\")\n            .force(true)\n            .build());\n\n        var defaultRolePolicyAttachment = new RolePolicyAttachment(\"defaultRolePolicyAttachment\", RolePolicyAttachmentArgs.builder()\n            .roleName(defaultRole.name())\n            .policyName(\"AliyunLogFullAccess\")\n            .policyType(\"System\")\n            .build());\n\n        var defaultService = new Service(\"defaultService\", ServiceArgs.builder()\n            .name(String.format(\"example-value-%s\", defaultInteger.result()))\n            .description(\"example-value\")\n            .role(defaultRole.arn())\n            .logConfig(ServiceLogConfigArgs.builder()\n                .project(defaultProject.projectName())\n                .logstore(defaultStore.logstoreName())\n                .enableInstanceMetrics(true)\n                .enableRequestMetrics(true)\n                .build())\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n        // If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n        var defaultBucketObject = new BucketObject(\"defaultBucketObject\", BucketObjectArgs.builder()\n            .bucket(defaultBucket.id())\n            .key(\"index.py\")\n            .content(\"\"\"\nimport logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'            \"\"\")\n            .build());\n\n        var defaultFunction = new Function(\"defaultFunction\", FunctionArgs.builder()\n            .service(defaultService.name())\n            .name(\"terraform-example\")\n            .description(\"example\")\n            .ossBucket(defaultBucket.id())\n            .ossKey(defaultBucketObject.key())\n            .memorySize(512)\n            .runtime(\"python3.10\")\n            .handler(\"hello.handler\")\n            .build());\n\n        var defaultTrigger = new Trigger(\"defaultTrigger\", TriggerArgs.builder()\n            .service(defaultService.name())\n            .function(defaultFunction.name())\n            .name(\"terraform-example\")\n            .role(defaultRole.arn())\n            .sourceArn(defaultProject.projectName().applyValue(_projectName -\u003e String.format(\"acs:log:%s:%s:project/%s\", defaultGetRegions.regions()[0].id(),default_.id(),_projectName)))\n            .type(\"log\")\n            .config(Output.tuple(sourceStore.logstoreName(), defaultProject.projectName(), defaultStore.logstoreName()).applyValue(values -\u003e {\n                var sourceStoreLogstoreName = values.t1;\n                var projectName = values.t2;\n                var defaultStoreLogstoreName = values.t3;\n                return \"\"\"\n    {\n        \\\"sourceConfig\\\": {\n            \\\"logstore\\\": \\\"%s\\\",\n            \\\"startTime\\\": null\n        },\n        \\\"jobConfig\\\": {\n            \\\"maxRetryTime\\\": 3,\n            \\\"triggerInterval\\\": 60\n        },\n        \\\"functionParameter\\\": {\n            \\\"a\\\": \\\"b\\\",\n            \\\"c\\\": \\\"d\\\"\n        },\n        \\\"logConfig\\\": {\n             \\\"project\\\": \\\"%s\\\",\n            \\\"logstore\\\": \\\"%s\\\"\n        },\n        \\\"enable\\\": true\n    }\n  \n\", sourceStoreLogstoreName,projectName,defaultStoreLogstoreName);\n            }))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultProject:\n    type: alicloud:log:Project\n    name: default\n    properties:\n      projectName: example-value-${defaultInteger.result}\n  defaultStore:\n    type: alicloud:log:Store\n    name: default\n    properties:\n      projectName: ${defaultProject.projectName}\n      logstoreName: example-value\n  sourceStore:\n    type: alicloud:log:Store\n    name: source_store\n    properties:\n      projectName: ${defaultProject.projectName}\n      logstoreName: example-source-store\n  defaultRole:\n    type: alicloud:ram:Role\n    name: default\n    properties:\n      name: fcservicerole-${defaultInteger.result}\n      document: |2\n          {\n              \\\"Statement\\\": [\n                {\n                  \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                  \\\"Effect\\\": \\\"Allow\\\",\n                  \\\"Principal\\\": {\n                    \\\"Service\\\": [\n                      \\\"fc.aliyuncs.com\\\"\n                    ]\n                  }\n                }\n              ],\n              \\\"Version\\\": \\\"1\\\"\n          }\n      description: this is a example\n      force: true\n  defaultRolePolicyAttachment:\n    type: alicloud:ram:RolePolicyAttachment\n    name: default\n    properties:\n      roleName: ${defaultRole.name}\n      policyName: AliyunLogFullAccess\n      policyType: System\n  defaultService:\n    type: alicloud:fc:Service\n    name: default\n    properties:\n      name: example-value-${defaultInteger.result}\n      description: example-value\n      role: ${defaultRole.arn}\n      logConfig:\n        project: ${defaultProject.projectName}\n        logstore: ${defaultStore.logstoreName}\n        enableInstanceMetrics: true\n        enableRequestMetrics: true\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket: terraform-example-${defaultInteger.result}\n  # If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n  defaultBucketObject:\n    type: alicloud:oss:BucketObject\n    name: default\n    properties:\n      bucket: ${defaultBucket.id}\n      key: index.py\n      content: \"import logging \\ndef handler(event, context): \\nlogger = logging.getLogger() \\nlogger.info('hello world') \\nreturn 'hello world'\"\n  defaultFunction:\n    type: alicloud:fc:Function\n    name: default\n    properties:\n      service: ${defaultService.name}\n      name: terraform-example\n      description: example\n      ossBucket: ${defaultBucket.id}\n      ossKey: ${defaultBucketObject.key}\n      memorySize: '512'\n      runtime: python3.10\n      handler: hello.handler\n  defaultTrigger:\n    type: alicloud:fc:Trigger\n    name: default\n    properties:\n      service: ${defaultService.name}\n      function: ${defaultFunction.name}\n      name: terraform-example\n      role: ${defaultRole.arn}\n      sourceArn: acs:log:${defaultGetRegions.regions[0].id}:${default.id}:project/${defaultProject.projectName}\n      type: log\n      config: \"    {\\n        \\\\\\\"sourceConfig\\\\\\\": {\\n            \\\\\\\"logstore\\\\\\\": \\\\\\\"${sourceStore.logstoreName}\\\\\\\",\\n            \\\\\\\"startTime\\\\\\\": null\\n        },\\n        \\\\\\\"jobConfig\\\\\\\": {\\n            \\\\\\\"maxRetryTime\\\\\\\": 3,\\n            \\\\\\\"triggerInterval\\\\\\\": 60\\n        },\\n        \\\\\\\"functionParameter\\\\\\\": {\\n            \\\\\\\"a\\\\\\\": \\\\\\\"b\\\\\\\",\\n            \\\\\\\"c\\\\\\\": \\\\\\\"d\\\\\\\"\\n        },\\n        \\\\\\\"logConfig\\\\\\\": {\\n             \\\\\\\"project\\\\\\\": \\\\\\\"${defaultProject.projectName}\\\\\\\",\\n            \\\\\\\"logstore\\\\\\\": \\\\\\\"${defaultStore.logstoreName}\\\\\\\"\\n        },\\n        \\\\\\\"enable\\\\\\\": true\\n    }\\n  \\n\"\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  defaultGetRegions:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nMNS topic trigger:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = alicloud.getAccount({});\nconst defaultGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultTopic = new alicloud.mns.Topic(\"default\", {name: `example-value-${defaultInteger.result}`});\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    name: `fcservicerole-${defaultInteger.result}`,\n    document: `  {\n      \\\\\"Statement\\\\\": [\n        {\n          \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n          \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n          \\\\\"Principal\\\\\": {\n            \\\\\"Service\\\\\": [\n              \\\\\"mns.aliyuncs.com\\\\\"\n            ]\n          }\n        }\n      ],\n      \\\\\"Version\\\\\": \\\\\"1\\\\\"\n  }\n`,\n    description: \"this is a example\",\n    force: true,\n});\nconst defaultRolePolicyAttachment = new alicloud.ram.RolePolicyAttachment(\"default\", {\n    roleName: defaultRole.name,\n    policyName: \"AliyunMNSNotificationRolePolicy\",\n    policyType: \"System\",\n});\nconst defaultService = new alicloud.fc.Service(\"default\", {\n    name: `example-value-${defaultInteger.result}`,\n    description: \"example-value\",\n    internetAccess: false,\n});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: `terraform-example-${defaultInteger.result}`});\n// If you upload the function by OSS Bucket, you need to specify path can't upload by content.\nconst defaultBucketObject = new alicloud.oss.BucketObject(\"default\", {\n    bucket: defaultBucket.id,\n    key: \"index.py\",\n    content: `import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'`,\n});\nconst defaultFunction = new alicloud.fc.Function(\"default\", {\n    service: defaultService.name,\n    name: `terraform-example-${defaultInteger.result}`,\n    description: \"example\",\n    ossBucket: defaultBucket.id,\n    ossKey: defaultBucketObject.key,\n    memorySize: 512,\n    runtime: \"python3.10\",\n    handler: \"hello.handler\",\n});\nconst defaultTrigger = new alicloud.fc.Trigger(\"default\", {\n    service: defaultService.name,\n    \"function\": defaultFunction.name,\n    name: \"terraform-example\",\n    role: defaultRole.arn,\n    sourceArn: pulumi.all([defaultGetRegions, _default, defaultTopic.name]).apply(([defaultGetRegions, _default, name]) =\u003e `acs:mns:${defaultGetRegions.regions?.[0]?.id}:${_default.id}:/topics/${name}`),\n    type: \"mns_topic\",\n    configMns: `  {\n    \\\\\"filterTag\\\\\":\\\\\"exampleTag\\\\\",\n    \\\\\"notifyContentFormat\\\\\":\\\\\"STREAM\\\\\",\n    \\\\\"notifyStrategy\\\\\":\\\\\"BACKOFF_RETRY\\\\\"\n  }\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = alicloud.get_account()\ndefault_get_regions = alicloud.get_regions(current=True)\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_topic = alicloud.mns.Topic(\"default\", name=f\"example-value-{default_integer['result']}\")\ndefault_role = alicloud.ram.Role(\"default\",\n    name=f\"fcservicerole-{default_integer['result']}\",\n    document=\"\"\"  {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"mns.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n\"\"\",\n    description=\"this is a example\",\n    force=True)\ndefault_role_policy_attachment = alicloud.ram.RolePolicyAttachment(\"default\",\n    role_name=default_role.name,\n    policy_name=\"AliyunMNSNotificationRolePolicy\",\n    policy_type=\"System\")\ndefault_service = alicloud.fc.Service(\"default\",\n    name=f\"example-value-{default_integer['result']}\",\n    description=\"example-value\",\n    internet_access=False)\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=f\"terraform-example-{default_integer['result']}\")\n# If you upload the function by OSS Bucket, you need to specify path can't upload by content.\ndefault_bucket_object = alicloud.oss.BucketObject(\"default\",\n    bucket=default_bucket.id,\n    key=\"index.py\",\n    content=\"\"\"import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'\"\"\")\ndefault_function = alicloud.fc.Function(\"default\",\n    service=default_service.name,\n    name=f\"terraform-example-{default_integer['result']}\",\n    description=\"example\",\n    oss_bucket=default_bucket.id,\n    oss_key=default_bucket_object.key,\n    memory_size=512,\n    runtime=\"python3.10\",\n    handler=\"hello.handler\")\ndefault_trigger = alicloud.fc.Trigger(\"default\",\n    service=default_service.name,\n    function=default_function.name,\n    name=\"terraform-example\",\n    role=default_role.arn,\n    source_arn=default_topic.name.apply(lambda name: f\"acs:mns:{default_get_regions.regions[0].id}:{default.id}:/topics/{name}\"),\n    type=\"mns_topic\",\n    config_mns=\"\"\"  {\n    \\\"filterTag\\\":\\\"exampleTag\\\",\n    \\\"notifyContentFormat\\\":\\\"STREAM\\\",\n    \\\"notifyStrategy\\\":\\\"BACKOFF_RETRY\\\"\n  }\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultTopic = new AliCloud.Mns.Topic(\"default\", new()\n    {\n        Name = $\"example-value-{defaultInteger.Result}\",\n    });\n\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = $\"fcservicerole-{defaultInteger.Result}\",\n        Document = @\"  {\n      \\\"\"Statement\\\"\": [\n        {\n          \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n          \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n          \\\"\"Principal\\\"\": {\n            \\\"\"Service\\\"\": [\n              \\\"\"mns.aliyuncs.com\\\"\"\n            ]\n          }\n        }\n      ],\n      \\\"\"Version\\\"\": \\\"\"1\\\"\"\n  }\n\",\n        Description = \"this is a example\",\n        Force = true,\n    });\n\n    var defaultRolePolicyAttachment = new AliCloud.Ram.RolePolicyAttachment(\"default\", new()\n    {\n        RoleName = defaultRole.Name,\n        PolicyName = \"AliyunMNSNotificationRolePolicy\",\n        PolicyType = \"System\",\n    });\n\n    var defaultService = new AliCloud.FC.Service(\"default\", new()\n    {\n        Name = $\"example-value-{defaultInteger.Result}\",\n        Description = \"example-value\",\n        InternetAccess = false,\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n    // If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n    var defaultBucketObject = new AliCloud.Oss.BucketObject(\"default\", new()\n    {\n        Bucket = defaultBucket.Id,\n        Key = \"index.py\",\n        Content = @\"import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'\",\n    });\n\n    var defaultFunction = new AliCloud.FC.Function(\"default\", new()\n    {\n        Service = defaultService.Name,\n        Name = $\"terraform-example-{defaultInteger.Result}\",\n        Description = \"example\",\n        OssBucket = defaultBucket.Id,\n        OssKey = defaultBucketObject.Key,\n        MemorySize = 512,\n        Runtime = \"python3.10\",\n        Handler = \"hello.handler\",\n    });\n\n    var defaultTrigger = new AliCloud.FC.Trigger(\"default\", new()\n    {\n        Service = defaultService.Name,\n        Function = defaultFunction.Name,\n        Name = \"terraform-example\",\n        Role = defaultRole.Arn,\n        SourceArn = Output.Tuple(defaultGetRegions, @default, defaultTopic.Name).Apply(values =\u003e\n        {\n            var defaultGetRegions = values.Item1;\n            var @default = values.Item2;\n            var name = values.Item3;\n            return $\"acs:mns:{defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}:{@default.Apply(getAccountResult =\u003e getAccountResult.Id)}:/topics/{name}\";\n        }),\n        Type = \"mns_topic\",\n        ConfigMns = @\"  {\n    \\\"\"filterTag\\\"\":\\\"\"exampleTag\\\"\",\n    \\\"\"notifyContentFormat\\\"\":\\\"\"STREAM\\\"\",\n    \\\"\"notifyStrategy\\\"\":\\\"\"BACKOFF_RETRY\\\"\"\n  }\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mns\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRegions, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTopic, err := mns.NewTopic(ctx, \"default\", \u0026mns.TopicArgs{\n\t\t\tName: pulumi.Sprintf(\"example-value-%v\", defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.Sprintf(\"fcservicerole-%v\", defaultInteger.Result),\n\t\t\tDocument: pulumi.String(`  {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"mns.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n`),\n\t\t\tDescription: pulumi.String(\"this is a example\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewRolePolicyAttachment(ctx, \"default\", \u0026ram.RolePolicyAttachmentArgs{\n\t\t\tRoleName:   defaultRole.Name,\n\t\t\tPolicyName: pulumi.String(\"AliyunMNSNotificationRolePolicy\"),\n\t\t\tPolicyType: pulumi.String(\"System\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultService, err := fc.NewService(ctx, \"default\", \u0026fc.ServiceArgs{\n\t\t\tName:           pulumi.Sprintf(\"example-value-%v\", defaultInteger.Result),\n\t\t\tDescription:    pulumi.String(\"example-value\"),\n\t\t\tInternetAccess: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n\t\tdefaultBucketObject, err := oss.NewBucketObject(ctx, \"default\", \u0026oss.BucketObjectArgs{\n\t\t\tBucket:  defaultBucket.ID(),\n\t\t\tKey:     pulumi.String(\"index.py\"),\n\t\t\tContent: pulumi.String(\"import logging \\ndef handler(event, context): \\nlogger = logging.getLogger() \\nlogger.info('hello world') \\nreturn 'hello world'\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultFunction, err := fc.NewFunction(ctx, \"default\", \u0026fc.FunctionArgs{\n\t\t\tService:     defaultService.Name,\n\t\t\tName:        pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tOssBucket:   defaultBucket.ID(),\n\t\t\tOssKey:      defaultBucketObject.Key,\n\t\t\tMemorySize:  pulumi.Int(512),\n\t\t\tRuntime:     pulumi.String(\"python3.10\"),\n\t\t\tHandler:     pulumi.String(\"hello.handler\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fc.NewTrigger(ctx, \"default\", \u0026fc.TriggerArgs{\n\t\t\tService:  defaultService.Name,\n\t\t\tFunction: defaultFunction.Name,\n\t\t\tName:     pulumi.String(\"terraform-example\"),\n\t\t\tRole:     defaultRole.Arn,\n\t\t\tSourceArn: defaultTopic.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"acs:mns:%v:%v:/topics/%v\", defaultGetRegions.Regions[0].Id, _default.Id, name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tType: pulumi.String(\"mns_topic\"),\n\t\t\tConfigMns: pulumi.String(`  {\n    \\\"filterTag\\\":\\\"exampleTag\\\",\n    \\\"notifyContentFormat\\\":\\\"STREAM\\\",\n    \\\"notifyStrategy\\\":\\\"BACKOFF_RETRY\\\"\n  }\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.mns.Topic;\nimport com.pulumi.alicloud.mns.TopicArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.ram.RolePolicyAttachment;\nimport com.pulumi.alicloud.ram.RolePolicyAttachmentArgs;\nimport com.pulumi.alicloud.fc.Service;\nimport com.pulumi.alicloud.fc.ServiceArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketObject;\nimport com.pulumi.alicloud.oss.BucketObjectArgs;\nimport com.pulumi.alicloud.fc.Function;\nimport com.pulumi.alicloud.fc.FunctionArgs;\nimport com.pulumi.alicloud.fc.Trigger;\nimport com.pulumi.alicloud.fc.TriggerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var defaultGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultTopic = new Topic(\"defaultTopic\", TopicArgs.builder()\n            .name(String.format(\"example-value-%s\", defaultInteger.result()))\n            .build());\n\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .name(String.format(\"fcservicerole-%s\", defaultInteger.result()))\n            .document(\"\"\"\n  {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"mns.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n            \"\"\")\n            .description(\"this is a example\")\n            .force(true)\n            .build());\n\n        var defaultRolePolicyAttachment = new RolePolicyAttachment(\"defaultRolePolicyAttachment\", RolePolicyAttachmentArgs.builder()\n            .roleName(defaultRole.name())\n            .policyName(\"AliyunMNSNotificationRolePolicy\")\n            .policyType(\"System\")\n            .build());\n\n        var defaultService = new Service(\"defaultService\", ServiceArgs.builder()\n            .name(String.format(\"example-value-%s\", defaultInteger.result()))\n            .description(\"example-value\")\n            .internetAccess(false)\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n        // If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n        var defaultBucketObject = new BucketObject(\"defaultBucketObject\", BucketObjectArgs.builder()\n            .bucket(defaultBucket.id())\n            .key(\"index.py\")\n            .content(\"\"\"\nimport logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'            \"\"\")\n            .build());\n\n        var defaultFunction = new Function(\"defaultFunction\", FunctionArgs.builder()\n            .service(defaultService.name())\n            .name(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .description(\"example\")\n            .ossBucket(defaultBucket.id())\n            .ossKey(defaultBucketObject.key())\n            .memorySize(512)\n            .runtime(\"python3.10\")\n            .handler(\"hello.handler\")\n            .build());\n\n        var defaultTrigger = new Trigger(\"defaultTrigger\", TriggerArgs.builder()\n            .service(defaultService.name())\n            .function(defaultFunction.name())\n            .name(\"terraform-example\")\n            .role(defaultRole.arn())\n            .sourceArn(defaultTopic.name().applyValue(_name -\u003e String.format(\"acs:mns:%s:%s:/topics/%s\", defaultGetRegions.regions()[0].id(),default_.id(),_name)))\n            .type(\"mns_topic\")\n            .configMns(\"\"\"\n  {\n    \\\"filterTag\\\":\\\"exampleTag\\\",\n    \\\"notifyContentFormat\\\":\\\"STREAM\\\",\n    \\\"notifyStrategy\\\":\\\"BACKOFF_RETRY\\\"\n  }\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultTopic:\n    type: alicloud:mns:Topic\n    name: default\n    properties:\n      name: example-value-${defaultInteger.result}\n  defaultRole:\n    type: alicloud:ram:Role\n    name: default\n    properties:\n      name: fcservicerole-${defaultInteger.result}\n      document: |2\n          {\n              \\\"Statement\\\": [\n                {\n                  \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                  \\\"Effect\\\": \\\"Allow\\\",\n                  \\\"Principal\\\": {\n                    \\\"Service\\\": [\n                      \\\"mns.aliyuncs.com\\\"\n                    ]\n                  }\n                }\n              ],\n              \\\"Version\\\": \\\"1\\\"\n          }\n      description: this is a example\n      force: true\n  defaultRolePolicyAttachment:\n    type: alicloud:ram:RolePolicyAttachment\n    name: default\n    properties:\n      roleName: ${defaultRole.name}\n      policyName: AliyunMNSNotificationRolePolicy\n      policyType: System\n  defaultService:\n    type: alicloud:fc:Service\n    name: default\n    properties:\n      name: example-value-${defaultInteger.result}\n      description: example-value\n      internetAccess: false\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket: terraform-example-${defaultInteger.result}\n  # If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n  defaultBucketObject:\n    type: alicloud:oss:BucketObject\n    name: default\n    properties:\n      bucket: ${defaultBucket.id}\n      key: index.py\n      content: \"import logging \\ndef handler(event, context): \\nlogger = logging.getLogger() \\nlogger.info('hello world') \\nreturn 'hello world'\"\n  defaultFunction:\n    type: alicloud:fc:Function\n    name: default\n    properties:\n      service: ${defaultService.name}\n      name: terraform-example-${defaultInteger.result}\n      description: example\n      ossBucket: ${defaultBucket.id}\n      ossKey: ${defaultBucketObject.key}\n      memorySize: '512'\n      runtime: python3.10\n      handler: hello.handler\n  defaultTrigger:\n    type: alicloud:fc:Trigger\n    name: default\n    properties:\n      service: ${defaultService.name}\n      function: ${defaultFunction.name}\n      name: terraform-example\n      role: ${defaultRole.arn}\n      sourceArn: acs:mns:${defaultGetRegions.regions[0].id}:${default.id}:/topics/${defaultTopic.name}\n      type: mns_topic\n      configMns: |2\n          {\n            \\\"filterTag\\\":\\\"exampleTag\\\",\n            \\\"notifyContentFormat\\\":\\\"STREAM\\\",\n            \\\"notifyStrategy\\\":\\\"BACKOFF_RETRY\\\"\n          }\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  defaultGetRegions:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nCDN events trigger:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = alicloud.getAccount({});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultDomainNew = new alicloud.cdn.DomainNew(\"default\", {\n    domainName: `example${defaultInteger.result}.tf.com`,\n    cdnType: \"web\",\n    scope: \"overseas\",\n    sources: [{\n        content: \"1.1.1.1\",\n        type: \"ipaddr\",\n        priority: 20,\n        port: 80,\n        weight: 10,\n    }],\n});\nconst defaultService = new alicloud.fc.Service(\"default\", {\n    name: `example-value-${defaultInteger.result}`,\n    description: \"example-value\",\n    internetAccess: false,\n});\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    name: `fcservicerole-${defaultInteger.result}`,\n    document: `    {\n      \\\\\"Statement\\\\\": [\n        {\n          \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n          \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n          \\\\\"Principal\\\\\": {\n            \\\\\"Service\\\\\": [\n              \\\\\"cdn.aliyuncs.com\\\\\"\n            ]\n          }\n        }\n      ],\n      \\\\\"Version\\\\\": \\\\\"1\\\\\"\n  }\n`,\n    description: \"this is a example\",\n    force: true,\n});\nconst defaultPolicy = new alicloud.ram.Policy(\"default\", {\n    policyName: `fcservicepolicy-${defaultInteger.result}`,\n    policyDocument: pulumi.interpolate`    {\n        \\\"Version\\\": \\\"1\\\",\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": [\n            \\\"fc:InvokeFunction\\\"\n            ],\n        \\\"Resource\\\": [\n            \\\"acs:fc:*:*:services/${defaultService.name}/functions/*\\\",\n            \\\"acs:fc:*:*:services/${defaultService.name}.*/functions/*\\\"\n        ],\n        \\\"Effect\\\": \\\"Allow\\\"\n        }\n        ]\n    }\n`,\n    description: \"this is a example\",\n    force: true,\n});\nconst defaultRolePolicyAttachment = new alicloud.ram.RolePolicyAttachment(\"default\", {\n    roleName: defaultRole.name,\n    policyName: defaultPolicy.policyName,\n    policyType: \"Custom\",\n});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: `terraform-example-${defaultInteger.result}`});\n// If you upload the function by OSS Bucket, you need to specify path can't upload by content.\nconst defaultBucketObject = new alicloud.oss.BucketObject(\"default\", {\n    bucket: defaultBucket.id,\n    key: \"index.py\",\n    content: `import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'`,\n});\nconst defaultFunction = new alicloud.fc.Function(\"default\", {\n    service: defaultService.name,\n    name: `terraform-example-${defaultInteger.result}`,\n    description: \"example\",\n    ossBucket: defaultBucket.id,\n    ossKey: defaultBucketObject.key,\n    memorySize: 512,\n    runtime: \"python3.10\",\n    handler: \"hello.handler\",\n});\nconst defaultTrigger = new alicloud.fc.Trigger(\"default\", {\n    service: defaultService.name,\n    \"function\": defaultFunction.name,\n    name: \"terraform-example\",\n    role: defaultRole.arn,\n    sourceArn: _default.then(_default =\u003e `acs:cdn:*:${_default.id}`),\n    type: \"cdn_events\",\n    config: pulumi.interpolate`      {\\\"eventName\\\":\\\"LogFileCreated\\\",\n     \\\"eventVersion\\\":\\\"1.0.0\\\",\n     \\\"notes\\\":\\\"cdn events trigger\\\",\n     \\\"filter\\\":{\n        \\\"domain\\\": [\\\"${defaultDomainNew.domainName}\\\"]\n        }\n    }\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = alicloud.get_account()\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_domain_new = alicloud.cdn.DomainNew(\"default\",\n    domain_name=f\"example{default_integer['result']}.tf.com\",\n    cdn_type=\"web\",\n    scope=\"overseas\",\n    sources=[{\n        \"content\": \"1.1.1.1\",\n        \"type\": \"ipaddr\",\n        \"priority\": 20,\n        \"port\": 80,\n        \"weight\": 10,\n    }])\ndefault_service = alicloud.fc.Service(\"default\",\n    name=f\"example-value-{default_integer['result']}\",\n    description=\"example-value\",\n    internet_access=False)\ndefault_role = alicloud.ram.Role(\"default\",\n    name=f\"fcservicerole-{default_integer['result']}\",\n    document=\"\"\"    {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"cdn.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n\"\"\",\n    description=\"this is a example\",\n    force=True)\ndefault_policy = alicloud.ram.Policy(\"default\",\n    policy_name=f\"fcservicepolicy-{default_integer['result']}\",\n    policy_document=pulumi.Output.all(\n        defaultServiceName=default_service.name,\n        defaultServiceName1=default_service.name\n).apply(lambda resolved_outputs: f\"\"\"    {{\n        \\\"Version\\\": \\\"1\\\",\n        \\\"Statement\\\": [\n        {{\n            \\\"Action\\\": [\n            \\\"fc:InvokeFunction\\\"\n            ],\n        \\\"Resource\\\": [\n            \\\"acs:fc:*:*:services/{resolved_outputs['defaultServiceName']}/functions/*\\\",\n            \\\"acs:fc:*:*:services/{resolved_outputs['defaultServiceName1']}.*/functions/*\\\"\n        ],\n        \\\"Effect\\\": \\\"Allow\\\"\n        }}\n        ]\n    }}\n\"\"\")\n,\n    description=\"this is a example\",\n    force=True)\ndefault_role_policy_attachment = alicloud.ram.RolePolicyAttachment(\"default\",\n    role_name=default_role.name,\n    policy_name=default_policy.policy_name,\n    policy_type=\"Custom\")\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=f\"terraform-example-{default_integer['result']}\")\n# If you upload the function by OSS Bucket, you need to specify path can't upload by content.\ndefault_bucket_object = alicloud.oss.BucketObject(\"default\",\n    bucket=default_bucket.id,\n    key=\"index.py\",\n    content=\"\"\"import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'\"\"\")\ndefault_function = alicloud.fc.Function(\"default\",\n    service=default_service.name,\n    name=f\"terraform-example-{default_integer['result']}\",\n    description=\"example\",\n    oss_bucket=default_bucket.id,\n    oss_key=default_bucket_object.key,\n    memory_size=512,\n    runtime=\"python3.10\",\n    handler=\"hello.handler\")\ndefault_trigger = alicloud.fc.Trigger(\"default\",\n    service=default_service.name,\n    function=default_function.name,\n    name=\"terraform-example\",\n    role=default_role.arn,\n    source_arn=f\"acs:cdn:*:{default.id}\",\n    type=\"cdn_events\",\n    config=default_domain_new.domain_name.apply(lambda domain_name: f\"\"\"      {{\\\"eventName\\\":\\\"LogFileCreated\\\",\n     \\\"eventVersion\\\":\\\"1.0.0\\\",\n     \\\"notes\\\":\\\"cdn events trigger\\\",\n     \\\"filter\\\":{{\n        \\\"domain\\\": [\\\"{domain_name}\\\"]\n        }}\n    }}\n\"\"\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultDomainNew = new AliCloud.Cdn.DomainNew(\"default\", new()\n    {\n        DomainName = $\"example{defaultInteger.Result}.tf.com\",\n        CdnType = \"web\",\n        Scope = \"overseas\",\n        Sources = new[]\n        {\n            new AliCloud.Cdn.Inputs.DomainNewSourceArgs\n            {\n                Content = \"1.1.1.1\",\n                Type = \"ipaddr\",\n                Priority = 20,\n                Port = 80,\n                Weight = 10,\n            },\n        },\n    });\n\n    var defaultService = new AliCloud.FC.Service(\"default\", new()\n    {\n        Name = $\"example-value-{defaultInteger.Result}\",\n        Description = \"example-value\",\n        InternetAccess = false,\n    });\n\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = $\"fcservicerole-{defaultInteger.Result}\",\n        Document = @\"    {\n      \\\"\"Statement\\\"\": [\n        {\n          \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n          \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n          \\\"\"Principal\\\"\": {\n            \\\"\"Service\\\"\": [\n              \\\"\"cdn.aliyuncs.com\\\"\"\n            ]\n          }\n        }\n      ],\n      \\\"\"Version\\\"\": \\\"\"1\\\"\"\n  }\n\",\n        Description = \"this is a example\",\n        Force = true,\n    });\n\n    var defaultPolicy = new AliCloud.Ram.Policy(\"default\", new()\n    {\n        PolicyName = $\"fcservicepolicy-{defaultInteger.Result}\",\n        PolicyDocument = Output.Tuple(defaultService.Name, defaultService.Name).Apply(values =\u003e\n        {\n            var defaultServiceName = values.Item1;\n            var defaultServiceName1 = values.Item2;\n            return @$\"    {{\n        \\\"\"Version\\\"\": \\\"\"1\\\"\",\n        \\\"\"Statement\\\"\": [\n        {{\n            \\\"\"Action\\\"\": [\n            \\\"\"fc:InvokeFunction\\\"\"\n            ],\n        \\\"\"Resource\\\"\": [\n            \\\"\"acs:fc:*:*:services/{defaultServiceName}/functions/*\\\"\",\n            \\\"\"acs:fc:*:*:services/{defaultServiceName1}.*/functions/*\\\"\"\n        ],\n        \\\"\"Effect\\\"\": \\\"\"Allow\\\"\"\n        }}\n        ]\n    }}\n\";\n        }),\n        Description = \"this is a example\",\n        Force = true,\n    });\n\n    var defaultRolePolicyAttachment = new AliCloud.Ram.RolePolicyAttachment(\"default\", new()\n    {\n        RoleName = defaultRole.Name,\n        PolicyName = defaultPolicy.PolicyName,\n        PolicyType = \"Custom\",\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n    // If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n    var defaultBucketObject = new AliCloud.Oss.BucketObject(\"default\", new()\n    {\n        Bucket = defaultBucket.Id,\n        Key = \"index.py\",\n        Content = @\"import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'\",\n    });\n\n    var defaultFunction = new AliCloud.FC.Function(\"default\", new()\n    {\n        Service = defaultService.Name,\n        Name = $\"terraform-example-{defaultInteger.Result}\",\n        Description = \"example\",\n        OssBucket = defaultBucket.Id,\n        OssKey = defaultBucketObject.Key,\n        MemorySize = 512,\n        Runtime = \"python3.10\",\n        Handler = \"hello.handler\",\n    });\n\n    var defaultTrigger = new AliCloud.FC.Trigger(\"default\", new()\n    {\n        Service = defaultService.Name,\n        Function = defaultFunction.Name,\n        Name = \"terraform-example\",\n        Role = defaultRole.Arn,\n        SourceArn = @default.Apply(@default =\u003e $\"acs:cdn:*:{@default.Apply(getAccountResult =\u003e getAccountResult.Id)}\"),\n        Type = \"cdn_events\",\n        Config = defaultDomainNew.DomainName.Apply(domainName =\u003e @$\"      {{\\\"\"eventName\\\"\":\\\"\"LogFileCreated\\\"\",\n     \\\"\"eventVersion\\\"\":\\\"\"1.0.0\\\"\",\n     \\\"\"notes\\\"\":\\\"\"cdn events trigger\\\"\",\n     \\\"\"filter\\\"\":{{\n        \\\"\"domain\\\"\": [\\\"\"{domainName}\\\"\"]\n        }}\n    }}\n\"),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cdn\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDomainNew, err := cdn.NewDomainNew(ctx, \"default\", \u0026cdn.DomainNewArgs{\n\t\t\tDomainName: pulumi.Sprintf(\"example%v.tf.com\", defaultInteger.Result),\n\t\t\tCdnType:    pulumi.String(\"web\"),\n\t\t\tScope:      pulumi.String(\"overseas\"),\n\t\t\tSources: cdn.DomainNewSourceArray{\n\t\t\t\t\u0026cdn.DomainNewSourceArgs{\n\t\t\t\t\tContent:  pulumi.String(\"1.1.1.1\"),\n\t\t\t\t\tType:     pulumi.String(\"ipaddr\"),\n\t\t\t\t\tPriority: pulumi.Int(20),\n\t\t\t\t\tPort:     pulumi.Int(80),\n\t\t\t\t\tWeight:   pulumi.Int(10),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultService, err := fc.NewService(ctx, \"default\", \u0026fc.ServiceArgs{\n\t\t\tName:           pulumi.Sprintf(\"example-value-%v\", defaultInteger.Result),\n\t\t\tDescription:    pulumi.String(\"example-value\"),\n\t\t\tInternetAccess: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.Sprintf(\"fcservicerole-%v\", defaultInteger.Result),\n\t\t\tDocument: pulumi.String(`    {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"cdn.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n`),\n\t\t\tDescription: pulumi.String(\"this is a example\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultPolicy, err := ram.NewPolicy(ctx, \"default\", \u0026ram.PolicyArgs{\n\t\t\tPolicyName: pulumi.Sprintf(\"fcservicepolicy-%v\", defaultInteger.Result),\n\t\t\tPolicyDocument: pulumi.All(defaultService.Name, defaultService.Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tdefaultServiceName := _args[0].(string)\n\t\t\t\tdefaultServiceName1 := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(`    {\n        \\\"Version\\\": \\\"1\\\",\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": [\n            \\\"fc:InvokeFunction\\\"\n            ],\n        \\\"Resource\\\": [\n            \\\"acs:fc:*:*:services/%v/functions/*\\\",\n            \\\"acs:fc:*:*:services/%v.*/functions/*\\\"\n        ],\n        \\\"Effect\\\": \\\"Allow\\\"\n        }\n        ]\n    }\n`, defaultServiceName, defaultServiceName1), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tDescription: pulumi.String(\"this is a example\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewRolePolicyAttachment(ctx, \"default\", \u0026ram.RolePolicyAttachmentArgs{\n\t\t\tRoleName:   defaultRole.Name,\n\t\t\tPolicyName: defaultPolicy.PolicyName,\n\t\t\tPolicyType: pulumi.String(\"Custom\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n\t\tdefaultBucketObject, err := oss.NewBucketObject(ctx, \"default\", \u0026oss.BucketObjectArgs{\n\t\t\tBucket:  defaultBucket.ID(),\n\t\t\tKey:     pulumi.String(\"index.py\"),\n\t\t\tContent: pulumi.String(\"import logging \\ndef handler(event, context): \\nlogger = logging.getLogger() \\nlogger.info('hello world') \\nreturn 'hello world'\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultFunction, err := fc.NewFunction(ctx, \"default\", \u0026fc.FunctionArgs{\n\t\t\tService:     defaultService.Name,\n\t\t\tName:        pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tOssBucket:   defaultBucket.ID(),\n\t\t\tOssKey:      defaultBucketObject.Key,\n\t\t\tMemorySize:  pulumi.Int(512),\n\t\t\tRuntime:     pulumi.String(\"python3.10\"),\n\t\t\tHandler:     pulumi.String(\"hello.handler\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fc.NewTrigger(ctx, \"default\", \u0026fc.TriggerArgs{\n\t\t\tService:   defaultService.Name,\n\t\t\tFunction:  defaultFunction.Name,\n\t\t\tName:      pulumi.String(\"terraform-example\"),\n\t\t\tRole:      defaultRole.Arn,\n\t\t\tSourceArn: pulumi.Sprintf(\"acs:cdn:*:%v\", _default.Id),\n\t\t\tType:      pulumi.String(\"cdn_events\"),\n\t\t\tConfig: defaultDomainNew.DomainName.ApplyT(func(domainName string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(`      {\\\"eventName\\\":\\\"LogFileCreated\\\",\n     \\\"eventVersion\\\":\\\"1.0.0\\\",\n     \\\"notes\\\":\\\"cdn events trigger\\\",\n     \\\"filter\\\":{\n        \\\"domain\\\": [\\\"%v\\\"]\n        }\n    }\n`, domainName), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cdn.DomainNew;\nimport com.pulumi.alicloud.cdn.DomainNewArgs;\nimport com.pulumi.alicloud.cdn.inputs.DomainNewSourceArgs;\nimport com.pulumi.alicloud.fc.Service;\nimport com.pulumi.alicloud.fc.ServiceArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.ram.Policy;\nimport com.pulumi.alicloud.ram.PolicyArgs;\nimport com.pulumi.alicloud.ram.RolePolicyAttachment;\nimport com.pulumi.alicloud.ram.RolePolicyAttachmentArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketObject;\nimport com.pulumi.alicloud.oss.BucketObjectArgs;\nimport com.pulumi.alicloud.fc.Function;\nimport com.pulumi.alicloud.fc.FunctionArgs;\nimport com.pulumi.alicloud.fc.Trigger;\nimport com.pulumi.alicloud.fc.TriggerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultDomainNew = new DomainNew(\"defaultDomainNew\", DomainNewArgs.builder()\n            .domainName(String.format(\"example%s.tf.com\", defaultInteger.result()))\n            .cdnType(\"web\")\n            .scope(\"overseas\")\n            .sources(DomainNewSourceArgs.builder()\n                .content(\"1.1.1.1\")\n                .type(\"ipaddr\")\n                .priority(20)\n                .port(80)\n                .weight(10)\n                .build())\n            .build());\n\n        var defaultService = new Service(\"defaultService\", ServiceArgs.builder()\n            .name(String.format(\"example-value-%s\", defaultInteger.result()))\n            .description(\"example-value\")\n            .internetAccess(false)\n            .build());\n\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .name(String.format(\"fcservicerole-%s\", defaultInteger.result()))\n            .document(\"\"\"\n    {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"cdn.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n            \"\"\")\n            .description(\"this is a example\")\n            .force(true)\n            .build());\n\n        var defaultPolicy = new Policy(\"defaultPolicy\", PolicyArgs.builder()\n            .policyName(String.format(\"fcservicepolicy-%s\", defaultInteger.result()))\n            .policyDocument(Output.tuple(defaultService.name(), defaultService.name()).applyValue(values -\u003e {\n                var defaultServiceName = values.t1;\n                var defaultServiceName1 = values.t2;\n                return \"\"\"\n    {\n        \\\"Version\\\": \\\"1\\\",\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": [\n            \\\"fc:InvokeFunction\\\"\n            ],\n        \\\"Resource\\\": [\n            \\\"acs:fc:*:*:services/%s/functions/*\\\",\n            \\\"acs:fc:*:*:services/%s.*/functions/*\\\"\n        ],\n        \\\"Effect\\\": \\\"Allow\\\"\n        }\n        ]\n    }\n\", defaultServiceName,defaultServiceName1);\n            }))\n            .description(\"this is a example\")\n            .force(true)\n            .build());\n\n        var defaultRolePolicyAttachment = new RolePolicyAttachment(\"defaultRolePolicyAttachment\", RolePolicyAttachmentArgs.builder()\n            .roleName(defaultRole.name())\n            .policyName(defaultPolicy.policyName())\n            .policyType(\"Custom\")\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n        // If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n        var defaultBucketObject = new BucketObject(\"defaultBucketObject\", BucketObjectArgs.builder()\n            .bucket(defaultBucket.id())\n            .key(\"index.py\")\n            .content(\"\"\"\nimport logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'            \"\"\")\n            .build());\n\n        var defaultFunction = new Function(\"defaultFunction\", FunctionArgs.builder()\n            .service(defaultService.name())\n            .name(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .description(\"example\")\n            .ossBucket(defaultBucket.id())\n            .ossKey(defaultBucketObject.key())\n            .memorySize(512)\n            .runtime(\"python3.10\")\n            .handler(\"hello.handler\")\n            .build());\n\n        var defaultTrigger = new Trigger(\"defaultTrigger\", TriggerArgs.builder()\n            .service(defaultService.name())\n            .function(defaultFunction.name())\n            .name(\"terraform-example\")\n            .role(defaultRole.arn())\n            .sourceArn(String.format(\"acs:cdn:*:%s\", default_.id()))\n            .type(\"cdn_events\")\n            .config(defaultDomainNew.domainName().applyValue(_domainName -\u003e \"\"\"\n      {\\\"eventName\\\":\\\"LogFileCreated\\\",\n     \\\"eventVersion\\\":\\\"1.0.0\\\",\n     \\\"notes\\\":\\\"cdn events trigger\\\",\n     \\\"filter\\\":{\n        \\\"domain\\\": [\\\"%s\\\"]\n        }\n    }\n\", _domainName)))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultDomainNew:\n    type: alicloud:cdn:DomainNew\n    name: default\n    properties:\n      domainName: example${defaultInteger.result}.tf.com\n      cdnType: web\n      scope: overseas\n      sources:\n        - content: 1.1.1.1\n          type: ipaddr\n          priority: 20\n          port: 80\n          weight: 10\n  defaultService:\n    type: alicloud:fc:Service\n    name: default\n    properties:\n      name: example-value-${defaultInteger.result}\n      description: example-value\n      internetAccess: false\n  defaultRole:\n    type: alicloud:ram:Role\n    name: default\n    properties:\n      name: fcservicerole-${defaultInteger.result}\n      document: |2\n            {\n              \\\"Statement\\\": [\n                {\n                  \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                  \\\"Effect\\\": \\\"Allow\\\",\n                  \\\"Principal\\\": {\n                    \\\"Service\\\": [\n                      \\\"cdn.aliyuncs.com\\\"\n                    ]\n                  }\n                }\n              ],\n              \\\"Version\\\": \\\"1\\\"\n          }\n      description: this is a example\n      force: true\n  defaultPolicy:\n    type: alicloud:ram:Policy\n    name: default\n    properties:\n      policyName: fcservicepolicy-${defaultInteger.result}\n      policyDocument: |2\n            {\n                \\\"Version\\\": \\\"1\\\",\n                \\\"Statement\\\": [\n                {\n                    \\\"Action\\\": [\n                    \\\"fc:InvokeFunction\\\"\n                    ],\n                \\\"Resource\\\": [\n                    \\\"acs:fc:*:*:services/${defaultService.name}/functions/*\\\",\n                    \\\"acs:fc:*:*:services/${defaultService.name}.*/functions/*\\\"\n                ],\n                \\\"Effect\\\": \\\"Allow\\\"\n                }\n                ]\n            }\n      description: this is a example\n      force: true\n  defaultRolePolicyAttachment:\n    type: alicloud:ram:RolePolicyAttachment\n    name: default\n    properties:\n      roleName: ${defaultRole.name}\n      policyName: ${defaultPolicy.policyName}\n      policyType: Custom\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket: terraform-example-${defaultInteger.result}\n  # If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n  defaultBucketObject:\n    type: alicloud:oss:BucketObject\n    name: default\n    properties:\n      bucket: ${defaultBucket.id}\n      key: index.py\n      content: \"import logging \\ndef handler(event, context): \\nlogger = logging.getLogger() \\nlogger.info('hello world') \\nreturn 'hello world'\"\n  defaultFunction:\n    type: alicloud:fc:Function\n    name: default\n    properties:\n      service: ${defaultService.name}\n      name: terraform-example-${defaultInteger.result}\n      description: example\n      ossBucket: ${defaultBucket.id}\n      ossKey: ${defaultBucketObject.key}\n      memorySize: '512'\n      runtime: python3.10\n      handler: hello.handler\n  defaultTrigger:\n    type: alicloud:fc:Trigger\n    name: default\n    properties:\n      service: ${defaultService.name}\n      function: ${defaultFunction.name}\n      name: terraform-example\n      role: ${defaultRole.arn}\n      sourceArn: acs:cdn:*:${default.id}\n      type: cdn_events\n      config: |2\n              {\\\"eventName\\\":\\\"LogFileCreated\\\",\n             \\\"eventVersion\\\":\\\"1.0.0\\\",\n             \\\"notes\\\":\\\"cdn events trigger\\\",\n             \\\"filter\\\":{\n                \\\"domain\\\": [\\\"${defaultDomainNew.domainName}\\\"]\n                }\n            }\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nEventBridge trigger:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = alicloud.getAccount({});\nconst defaultGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst serviceLinkedRole = new alicloud.eventbridge.ServiceLinkedRole(\"service_linked_role\", {productName: \"AliyunServiceRoleForEventBridgeSendToFC\"});\nconst defaultService = new alicloud.fc.Service(\"default\", {\n    name: `example-value-${defaultInteger.result}`,\n    description: \"example-value\",\n    internetAccess: false,\n});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: `terraform-example-${defaultInteger.result}`});\n// If you upload the function by OSS Bucket, you need to specify path can't upload by content.\nconst defaultBucketObject = new alicloud.oss.BucketObject(\"default\", {\n    bucket: defaultBucket.id,\n    key: \"index.py\",\n    content: `import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'`,\n});\nconst defaultFunction = new alicloud.fc.Function(\"default\", {\n    service: defaultService.name,\n    name: \"terraform-example\",\n    description: \"example\",\n    ossBucket: defaultBucket.id,\n    ossKey: defaultBucketObject.key,\n    memorySize: 512,\n    runtime: \"python3.10\",\n    handler: \"hello.handler\",\n});\nconst ossTrigger = new alicloud.fc.Trigger(\"oss_trigger\", {\n    service: defaultService.name,\n    \"function\": defaultFunction.name,\n    name: \"terraform-example-oss\",\n    type: \"eventbridge\",\n    config: JSON.stringify({\n        triggerEnable: false,\n        asyncInvocationType: false,\n        eventSourceConfig: {\n            eventSourceType: \"Default\",\n        },\n        eventRuleFilterPattern: \"{\\\"source\\\":[\\\"acs.oss\\\"],\\\"type\\\":[\\\"oss:BucketCreated:PutBucket\\\"]}\",\n        eventSinkConfig: {\n            deliveryOption: {\n                mode: \"event-driven\",\n                eventSchema: \"CloudEvents\",\n            },\n        },\n        runOptions: {\n            retryStrategy: {\n                PushRetryStrategy: \"BACKOFF_RETRY\",\n            },\n            errorsTolerance: \"ALL\",\n            mode: \"event-driven\",\n        },\n    }),\n});\nconst mnsTrigger = new alicloud.fc.Trigger(\"mns_trigger\", {\n    service: defaultService.name,\n    \"function\": defaultFunction.name,\n    name: \"terraform-example-mns\",\n    type: \"eventbridge\",\n    config: JSON.stringify({\n        triggerEnable: false,\n        asyncInvocationType: false,\n        eventSourceConfig: {\n            eventSourceType: \"MNS\",\n            eventSourceParameters: {\n                sourceMNSParameters: {\n                    RegionId: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.id),\n                    QueueName: \"mns-queue\",\n                    IsBase64Decode: true,\n                },\n            },\n        },\n        eventRuleFilterPattern: \"{}\",\n        eventSinkConfig: {\n            deliveryOption: {\n                mode: \"event-driven\",\n                eventSchema: \"CloudEvents\",\n            },\n        },\n        runOptions: {\n            retryStrategy: {\n                PushRetryStrategy: \"BACKOFF_RETRY\",\n            },\n            errorsTolerance: \"ALL\",\n            mode: \"event-driven\",\n        },\n    }),\n});\nconst defaultInstance = new alicloud.rocketmq.Instance(\"default\", {\n    instanceName: `terraform-example-${defaultInteger.result}`,\n    remark: \"terraform-example\",\n});\nconst defaultGroup = new alicloud.rocketmq.Group(\"default\", {\n    groupName: \"GID-example\",\n    instanceId: defaultInstance.id,\n    remark: \"terraform-example\",\n});\nconst defaultTopic = new alicloud.rocketmq.Topic(\"default\", {\n    topicName: \"mytopic\",\n    instanceId: defaultInstance.id,\n    messageType: 0,\n    remark: \"terraform-example\",\n});\nconst rocketmqTrigger = new alicloud.fc.Trigger(\"rocketmq_trigger\", {\n    service: defaultService.name,\n    \"function\": defaultFunction.name,\n    name: \"terraform-example-rocketmq\",\n    type: \"eventbridge\",\n    config: pulumi.jsonStringify({\n        triggerEnable: false,\n        asyncInvocationType: false,\n        eventRuleFilterPattern: \"{}\",\n        eventSinkConfig: {\n            deliveryOption: {\n                mode: \"event-driven\",\n                eventSchema: \"CloudEvents\",\n            },\n        },\n        eventSourceConfig: {\n            eventSourceType: \"RocketMQ\",\n            eventSourceParameters: {\n                sourceRocketMQParameters: {\n                    RegionId: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.id),\n                    InstanceId: defaultInstance.id,\n                    GroupID: defaultGroup.groupName,\n                    Topic: defaultTopic.topicName,\n                    Timestamp: 1686296162,\n                    Tag: \"example-tag\",\n                    Offset: \"CONSUME_FROM_LAST_OFFSET\",\n                },\n            },\n        },\n        runOptions: {\n            retryStrategy: {\n                PushRetryStrategy: \"BACKOFF_RETRY\",\n            },\n            errorsTolerance: \"ALL\",\n            mode: \"event-driven\",\n        },\n    }),\n});\nconst defaultInstance2 = new alicloud.amqp.Instance(\"default\", {\n    instanceName: `terraform-example-${defaultInteger.result}`,\n    instanceType: \"professional\",\n    maxTps: \"1000\",\n    queueCapacity: \"50\",\n    supportEip: true,\n    maxEipTps: \"128\",\n    paymentType: \"Subscription\",\n    period: 1,\n});\nconst defaultVirtualHost = new alicloud.amqp.VirtualHost(\"default\", {\n    instanceId: defaultInstance2.id,\n    virtualHostName: \"example-VirtualHost\",\n});\nconst defaultQueue = new alicloud.amqp.Queue(\"default\", {\n    instanceId: defaultVirtualHost.instanceId,\n    queueName: \"example-queue\",\n    virtualHostName: defaultVirtualHost.virtualHostName,\n});\nconst rabbitmqTrigger = new alicloud.fc.Trigger(\"rabbitmq_trigger\", {\n    service: defaultService.name,\n    \"function\": defaultFunction.name,\n    name: \"terraform-example-rabbitmq\",\n    type: \"eventbridge\",\n    config: pulumi.jsonStringify({\n        triggerEnable: false,\n        asyncInvocationType: false,\n        eventRuleFilterPattern: \"{}\",\n        eventSourceConfig: {\n            eventSourceType: \"RabbitMQ\",\n            eventSourceParameters: {\n                sourceRabbitMQParameters: {\n                    RegionId: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.id),\n                    InstanceId: defaultInstance2.id,\n                    VirtualHostName: defaultVirtualHost.virtualHostName,\n                    QueueName: defaultQueue.queueName,\n                },\n            },\n        },\n        eventSinkConfig: {\n            deliveryOption: {\n                mode: \"event-driven\",\n                eventSchema: \"CloudEvents\",\n            },\n        },\n        runOptions: {\n            retryStrategy: {\n                PushRetryStrategy: \"BACKOFF_RETRY\",\n            },\n            errorsTolerance: \"ALL\",\n            mode: \"event-driven\",\n        },\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = alicloud.get_account()\ndefault_get_regions = alicloud.get_regions(current=True)\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nservice_linked_role = alicloud.eventbridge.ServiceLinkedRole(\"service_linked_role\", product_name=\"AliyunServiceRoleForEventBridgeSendToFC\")\ndefault_service = alicloud.fc.Service(\"default\",\n    name=f\"example-value-{default_integer['result']}\",\n    description=\"example-value\",\n    internet_access=False)\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=f\"terraform-example-{default_integer['result']}\")\n# If you upload the function by OSS Bucket, you need to specify path can't upload by content.\ndefault_bucket_object = alicloud.oss.BucketObject(\"default\",\n    bucket=default_bucket.id,\n    key=\"index.py\",\n    content=\"\"\"import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'\"\"\")\ndefault_function = alicloud.fc.Function(\"default\",\n    service=default_service.name,\n    name=\"terraform-example\",\n    description=\"example\",\n    oss_bucket=default_bucket.id,\n    oss_key=default_bucket_object.key,\n    memory_size=512,\n    runtime=\"python3.10\",\n    handler=\"hello.handler\")\noss_trigger = alicloud.fc.Trigger(\"oss_trigger\",\n    service=default_service.name,\n    function=default_function.name,\n    name=\"terraform-example-oss\",\n    type=\"eventbridge\",\n    config=json.dumps({\n        \"triggerEnable\": False,\n        \"asyncInvocationType\": False,\n        \"eventSourceConfig\": {\n            \"eventSourceType\": \"Default\",\n        },\n        \"eventRuleFilterPattern\": \"{\\\"source\\\":[\\\"acs.oss\\\"],\\\"type\\\":[\\\"oss:BucketCreated:PutBucket\\\"]}\",\n        \"eventSinkConfig\": {\n            \"deliveryOption\": {\n                \"mode\": \"event-driven\",\n                \"eventSchema\": \"CloudEvents\",\n            },\n        },\n        \"runOptions\": {\n            \"retryStrategy\": {\n                \"PushRetryStrategy\": \"BACKOFF_RETRY\",\n            },\n            \"errorsTolerance\": \"ALL\",\n            \"mode\": \"event-driven\",\n        },\n    }))\nmns_trigger = alicloud.fc.Trigger(\"mns_trigger\",\n    service=default_service.name,\n    function=default_function.name,\n    name=\"terraform-example-mns\",\n    type=\"eventbridge\",\n    config=json.dumps({\n        \"triggerEnable\": False,\n        \"asyncInvocationType\": False,\n        \"eventSourceConfig\": {\n            \"eventSourceType\": \"MNS\",\n            \"eventSourceParameters\": {\n                \"sourceMNSParameters\": {\n                    \"RegionId\": default_get_regions.regions[0].id,\n                    \"QueueName\": \"mns-queue\",\n                    \"IsBase64Decode\": True,\n                },\n            },\n        },\n        \"eventRuleFilterPattern\": \"{}\",\n        \"eventSinkConfig\": {\n            \"deliveryOption\": {\n                \"mode\": \"event-driven\",\n                \"eventSchema\": \"CloudEvents\",\n            },\n        },\n        \"runOptions\": {\n            \"retryStrategy\": {\n                \"PushRetryStrategy\": \"BACKOFF_RETRY\",\n            },\n            \"errorsTolerance\": \"ALL\",\n            \"mode\": \"event-driven\",\n        },\n    }))\ndefault_instance = alicloud.rocketmq.Instance(\"default\",\n    instance_name=f\"terraform-example-{default_integer['result']}\",\n    remark=\"terraform-example\")\ndefault_group = alicloud.rocketmq.Group(\"default\",\n    group_name=\"GID-example\",\n    instance_id=default_instance.id,\n    remark=\"terraform-example\")\ndefault_topic = alicloud.rocketmq.Topic(\"default\",\n    topic_name=\"mytopic\",\n    instance_id=default_instance.id,\n    message_type=0,\n    remark=\"terraform-example\")\nrocketmq_trigger = alicloud.fc.Trigger(\"rocketmq_trigger\",\n    service=default_service.name,\n    function=default_function.name,\n    name=\"terraform-example-rocketmq\",\n    type=\"eventbridge\",\n    config=pulumi.Output.json_dumps({\n        \"triggerEnable\": False,\n        \"asyncInvocationType\": False,\n        \"eventRuleFilterPattern\": \"{}\",\n        \"eventSinkConfig\": {\n            \"deliveryOption\": {\n                \"mode\": \"event-driven\",\n                \"eventSchema\": \"CloudEvents\",\n            },\n        },\n        \"eventSourceConfig\": {\n            \"eventSourceType\": \"RocketMQ\",\n            \"eventSourceParameters\": {\n                \"sourceRocketMQParameters\": {\n                    \"RegionId\": default_get_regions.regions[0].id,\n                    \"InstanceId\": default_instance.id,\n                    \"GroupID\": default_group.group_name,\n                    \"Topic\": default_topic.topic_name,\n                    \"Timestamp\": 1686296162,\n                    \"Tag\": \"example-tag\",\n                    \"Offset\": \"CONSUME_FROM_LAST_OFFSET\",\n                },\n            },\n        },\n        \"runOptions\": {\n            \"retryStrategy\": {\n                \"PushRetryStrategy\": \"BACKOFF_RETRY\",\n            },\n            \"errorsTolerance\": \"ALL\",\n            \"mode\": \"event-driven\",\n        },\n    }))\ndefault_instance2 = alicloud.amqp.Instance(\"default\",\n    instance_name=f\"terraform-example-{default_integer['result']}\",\n    instance_type=\"professional\",\n    max_tps=\"1000\",\n    queue_capacity=\"50\",\n    support_eip=True,\n    max_eip_tps=\"128\",\n    payment_type=\"Subscription\",\n    period=1)\ndefault_virtual_host = alicloud.amqp.VirtualHost(\"default\",\n    instance_id=default_instance2.id,\n    virtual_host_name=\"example-VirtualHost\")\ndefault_queue = alicloud.amqp.Queue(\"default\",\n    instance_id=default_virtual_host.instance_id,\n    queue_name=\"example-queue\",\n    virtual_host_name=default_virtual_host.virtual_host_name)\nrabbitmq_trigger = alicloud.fc.Trigger(\"rabbitmq_trigger\",\n    service=default_service.name,\n    function=default_function.name,\n    name=\"terraform-example-rabbitmq\",\n    type=\"eventbridge\",\n    config=pulumi.Output.json_dumps({\n        \"triggerEnable\": False,\n        \"asyncInvocationType\": False,\n        \"eventRuleFilterPattern\": \"{}\",\n        \"eventSourceConfig\": {\n            \"eventSourceType\": \"RabbitMQ\",\n            \"eventSourceParameters\": {\n                \"sourceRabbitMQParameters\": {\n                    \"RegionId\": default_get_regions.regions[0].id,\n                    \"InstanceId\": default_instance2.id,\n                    \"VirtualHostName\": default_virtual_host.virtual_host_name,\n                    \"QueueName\": default_queue.queue_name,\n                },\n            },\n        },\n        \"eventSinkConfig\": {\n            \"deliveryOption\": {\n                \"mode\": \"event-driven\",\n                \"eventSchema\": \"CloudEvents\",\n            },\n        },\n        \"runOptions\": {\n            \"retryStrategy\": {\n                \"PushRetryStrategy\": \"BACKOFF_RETRY\",\n            },\n            \"errorsTolerance\": \"ALL\",\n            \"mode\": \"event-driven\",\n        },\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var serviceLinkedRole = new AliCloud.EventBridge.ServiceLinkedRole(\"service_linked_role\", new()\n    {\n        ProductName = \"AliyunServiceRoleForEventBridgeSendToFC\",\n    });\n\n    var defaultService = new AliCloud.FC.Service(\"default\", new()\n    {\n        Name = $\"example-value-{defaultInteger.Result}\",\n        Description = \"example-value\",\n        InternetAccess = false,\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n    // If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n    var defaultBucketObject = new AliCloud.Oss.BucketObject(\"default\", new()\n    {\n        Bucket = defaultBucket.Id,\n        Key = \"index.py\",\n        Content = @\"import logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'\",\n    });\n\n    var defaultFunction = new AliCloud.FC.Function(\"default\", new()\n    {\n        Service = defaultService.Name,\n        Name = \"terraform-example\",\n        Description = \"example\",\n        OssBucket = defaultBucket.Id,\n        OssKey = defaultBucketObject.Key,\n        MemorySize = 512,\n        Runtime = \"python3.10\",\n        Handler = \"hello.handler\",\n    });\n\n    var ossTrigger = new AliCloud.FC.Trigger(\"oss_trigger\", new()\n    {\n        Service = defaultService.Name,\n        Function = defaultFunction.Name,\n        Name = \"terraform-example-oss\",\n        Type = \"eventbridge\",\n        Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"triggerEnable\"] = false,\n            [\"asyncInvocationType\"] = false,\n            [\"eventSourceConfig\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"eventSourceType\"] = \"Default\",\n            },\n            [\"eventRuleFilterPattern\"] = \"{\\\"source\\\":[\\\"acs.oss\\\"],\\\"type\\\":[\\\"oss:BucketCreated:PutBucket\\\"]}\",\n            [\"eventSinkConfig\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"deliveryOption\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"mode\"] = \"event-driven\",\n                    [\"eventSchema\"] = \"CloudEvents\",\n                },\n            },\n            [\"runOptions\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"retryStrategy\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"PushRetryStrategy\"] = \"BACKOFF_RETRY\",\n                },\n                [\"errorsTolerance\"] = \"ALL\",\n                [\"mode\"] = \"event-driven\",\n            },\n        }),\n    });\n\n    var mnsTrigger = new AliCloud.FC.Trigger(\"mns_trigger\", new()\n    {\n        Service = defaultService.Name,\n        Function = defaultFunction.Name,\n        Name = \"terraform-example-mns\",\n        Type = \"eventbridge\",\n        Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"triggerEnable\"] = false,\n            [\"asyncInvocationType\"] = false,\n            [\"eventSourceConfig\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"eventSourceType\"] = \"MNS\",\n                [\"eventSourceParameters\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"sourceMNSParameters\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"RegionId\"] = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n                        [\"QueueName\"] = \"mns-queue\",\n                        [\"IsBase64Decode\"] = true,\n                    },\n                },\n            },\n            [\"eventRuleFilterPattern\"] = \"{}\",\n            [\"eventSinkConfig\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"deliveryOption\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"mode\"] = \"event-driven\",\n                    [\"eventSchema\"] = \"CloudEvents\",\n                },\n            },\n            [\"runOptions\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"retryStrategy\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"PushRetryStrategy\"] = \"BACKOFF_RETRY\",\n                },\n                [\"errorsTolerance\"] = \"ALL\",\n                [\"mode\"] = \"event-driven\",\n            },\n        }),\n    });\n\n    var defaultInstance = new AliCloud.RocketMQ.Instance(\"default\", new()\n    {\n        InstanceName = $\"terraform-example-{defaultInteger.Result}\",\n        Remark = \"terraform-example\",\n    });\n\n    var defaultGroup = new AliCloud.RocketMQ.Group(\"default\", new()\n    {\n        GroupName = \"GID-example\",\n        InstanceId = defaultInstance.Id,\n        Remark = \"terraform-example\",\n    });\n\n    var defaultTopic = new AliCloud.RocketMQ.Topic(\"default\", new()\n    {\n        TopicName = \"mytopic\",\n        InstanceId = defaultInstance.Id,\n        MessageType = 0,\n        Remark = \"terraform-example\",\n    });\n\n    var rocketmqTrigger = new AliCloud.FC.Trigger(\"rocketmq_trigger\", new()\n    {\n        Service = defaultService.Name,\n        Function = defaultFunction.Name,\n        Name = \"terraform-example-rocketmq\",\n        Type = \"eventbridge\",\n        Config = Output.JsonSerialize(Output.Create(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"triggerEnable\"] = false,\n            [\"asyncInvocationType\"] = false,\n            [\"eventRuleFilterPattern\"] = \"{}\",\n            [\"eventSinkConfig\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"deliveryOption\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"mode\"] = \"event-driven\",\n                    [\"eventSchema\"] = \"CloudEvents\",\n                },\n            },\n            [\"eventSourceConfig\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"eventSourceType\"] = \"RocketMQ\",\n                [\"eventSourceParameters\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"sourceRocketMQParameters\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"RegionId\"] = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n                        [\"InstanceId\"] = defaultInstance.Id,\n                        [\"GroupID\"] = defaultGroup.GroupName,\n                        [\"Topic\"] = defaultTopic.TopicName,\n                        [\"Timestamp\"] = 1686296162,\n                        [\"Tag\"] = \"example-tag\",\n                        [\"Offset\"] = \"CONSUME_FROM_LAST_OFFSET\",\n                    },\n                },\n            },\n            [\"runOptions\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"retryStrategy\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"PushRetryStrategy\"] = \"BACKOFF_RETRY\",\n                },\n                [\"errorsTolerance\"] = \"ALL\",\n                [\"mode\"] = \"event-driven\",\n            },\n        })),\n    });\n\n    var defaultInstance2 = new AliCloud.Amqp.Instance(\"default\", new()\n    {\n        InstanceName = $\"terraform-example-{defaultInteger.Result}\",\n        InstanceType = \"professional\",\n        MaxTps = \"1000\",\n        QueueCapacity = \"50\",\n        SupportEip = true,\n        MaxEipTps = \"128\",\n        PaymentType = \"Subscription\",\n        Period = 1,\n    });\n\n    var defaultVirtualHost = new AliCloud.Amqp.VirtualHost(\"default\", new()\n    {\n        InstanceId = defaultInstance2.Id,\n        VirtualHostName = \"example-VirtualHost\",\n    });\n\n    var defaultQueue = new AliCloud.Amqp.Queue(\"default\", new()\n    {\n        InstanceId = defaultVirtualHost.InstanceId,\n        QueueName = \"example-queue\",\n        VirtualHostName = defaultVirtualHost.VirtualHostName,\n    });\n\n    var rabbitmqTrigger = new AliCloud.FC.Trigger(\"rabbitmq_trigger\", new()\n    {\n        Service = defaultService.Name,\n        Function = defaultFunction.Name,\n        Name = \"terraform-example-rabbitmq\",\n        Type = \"eventbridge\",\n        Config = Output.JsonSerialize(Output.Create(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"triggerEnable\"] = false,\n            [\"asyncInvocationType\"] = false,\n            [\"eventRuleFilterPattern\"] = \"{}\",\n            [\"eventSourceConfig\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"eventSourceType\"] = \"RabbitMQ\",\n                [\"eventSourceParameters\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"sourceRabbitMQParameters\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"RegionId\"] = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n                        [\"InstanceId\"] = defaultInstance2.Id,\n                        [\"VirtualHostName\"] = defaultVirtualHost.VirtualHostName,\n                        [\"QueueName\"] = defaultQueue.QueueName,\n                    },\n                },\n            },\n            [\"eventSinkConfig\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"deliveryOption\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"mode\"] = \"event-driven\",\n                    [\"eventSchema\"] = \"CloudEvents\",\n                },\n            },\n            [\"runOptions\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"retryStrategy\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"PushRetryStrategy\"] = \"BACKOFF_RETRY\",\n                },\n                [\"errorsTolerance\"] = \"ALL\",\n                [\"mode\"] = \"event-driven\",\n            },\n        })),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/amqp\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eventbridge\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rocketmq\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRegions, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventbridge.NewServiceLinkedRole(ctx, \"service_linked_role\", \u0026eventbridge.ServiceLinkedRoleArgs{\n\t\t\tProductName: pulumi.String(\"AliyunServiceRoleForEventBridgeSendToFC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultService, err := fc.NewService(ctx, \"default\", \u0026fc.ServiceArgs{\n\t\t\tName:           pulumi.Sprintf(\"example-value-%v\", defaultInteger.Result),\n\t\t\tDescription:    pulumi.String(\"example-value\"),\n\t\t\tInternetAccess: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n\t\tdefaultBucketObject, err := oss.NewBucketObject(ctx, \"default\", \u0026oss.BucketObjectArgs{\n\t\t\tBucket:  defaultBucket.ID(),\n\t\t\tKey:     pulumi.String(\"index.py\"),\n\t\t\tContent: pulumi.String(\"import logging \\ndef handler(event, context): \\nlogger = logging.getLogger() \\nlogger.info('hello world') \\nreturn 'hello world'\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultFunction, err := fc.NewFunction(ctx, \"default\", \u0026fc.FunctionArgs{\n\t\t\tService:     defaultService.Name,\n\t\t\tName:        pulumi.String(\"terraform-example\"),\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tOssBucket:   defaultBucket.ID(),\n\t\t\tOssKey:      defaultBucketObject.Key,\n\t\t\tMemorySize:  pulumi.Int(512),\n\t\t\tRuntime:     pulumi.String(\"python3.10\"),\n\t\t\tHandler:     pulumi.String(\"hello.handler\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"triggerEnable\":       false,\n\t\t\t\"asyncInvocationType\": false,\n\t\t\t\"eventSourceConfig\": map[string]interface{}{\n\t\t\t\t\"eventSourceType\": \"Default\",\n\t\t\t},\n\t\t\t\"eventRuleFilterPattern\": \"{\\\"source\\\":[\\\"acs.oss\\\"],\\\"type\\\":[\\\"oss:BucketCreated:PutBucket\\\"]}\",\n\t\t\t\"eventSinkConfig\": map[string]interface{}{\n\t\t\t\t\"deliveryOption\": map[string]interface{}{\n\t\t\t\t\t\"mode\":        \"event-driven\",\n\t\t\t\t\t\"eventSchema\": \"CloudEvents\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"runOptions\": map[string]interface{}{\n\t\t\t\t\"retryStrategy\": map[string]interface{}{\n\t\t\t\t\t\"PushRetryStrategy\": \"BACKOFF_RETRY\",\n\t\t\t\t},\n\t\t\t\t\"errorsTolerance\": \"ALL\",\n\t\t\t\t\"mode\":            \"event-driven\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = fc.NewTrigger(ctx, \"oss_trigger\", \u0026fc.TriggerArgs{\n\t\t\tService:  defaultService.Name,\n\t\t\tFunction: defaultFunction.Name,\n\t\t\tName:     pulumi.String(\"terraform-example-oss\"),\n\t\t\tType:     pulumi.String(\"eventbridge\"),\n\t\t\tConfig:   pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"triggerEnable\":       false,\n\t\t\t\"asyncInvocationType\": false,\n\t\t\t\"eventSourceConfig\": map[string]interface{}{\n\t\t\t\t\"eventSourceType\": \"MNS\",\n\t\t\t\t\"eventSourceParameters\": map[string]interface{}{\n\t\t\t\t\t\"sourceMNSParameters\": map[string]interface{}{\n\t\t\t\t\t\t\"RegionId\":       defaultGetRegions.Regions[0].Id,\n\t\t\t\t\t\t\"QueueName\":      \"mns-queue\",\n\t\t\t\t\t\t\"IsBase64Decode\": true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"eventRuleFilterPattern\": \"{}\",\n\t\t\t\"eventSinkConfig\": map[string]interface{}{\n\t\t\t\t\"deliveryOption\": map[string]interface{}{\n\t\t\t\t\t\"mode\":        \"event-driven\",\n\t\t\t\t\t\"eventSchema\": \"CloudEvents\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"runOptions\": map[string]interface{}{\n\t\t\t\t\"retryStrategy\": map[string]interface{}{\n\t\t\t\t\t\"PushRetryStrategy\": \"BACKOFF_RETRY\",\n\t\t\t\t},\n\t\t\t\t\"errorsTolerance\": \"ALL\",\n\t\t\t\t\"mode\":            \"event-driven\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_, err = fc.NewTrigger(ctx, \"mns_trigger\", \u0026fc.TriggerArgs{\n\t\t\tService:  defaultService.Name,\n\t\t\tFunction: defaultFunction.Name,\n\t\t\tName:     pulumi.String(\"terraform-example-mns\"),\n\t\t\tType:     pulumi.String(\"eventbridge\"),\n\t\t\tConfig:   pulumi.String(json1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rocketmq.NewInstance(ctx, \"default\", \u0026rocketmq.InstanceArgs{\n\t\t\tInstanceName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t\tRemark:       pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGroup, err := rocketmq.NewGroup(ctx, \"default\", \u0026rocketmq.GroupArgs{\n\t\t\tGroupName:  pulumi.String(\"GID-example\"),\n\t\t\tInstanceId: defaultInstance.ID(),\n\t\t\tRemark:     pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTopic, err := rocketmq.NewTopic(ctx, \"default\", \u0026rocketmq.TopicArgs{\n\t\t\tTopicName:   pulumi.String(\"mytopic\"),\n\t\t\tInstanceId:  defaultInstance.ID(),\n\t\t\tMessageType: pulumi.Int(0),\n\t\t\tRemark:      pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fc.NewTrigger(ctx, \"rocketmq_trigger\", \u0026fc.TriggerArgs{\n\t\t\tService:  defaultService.Name,\n\t\t\tFunction: defaultFunction.Name,\n\t\t\tName:     pulumi.String(\"terraform-example-rocketmq\"),\n\t\t\tType:     pulumi.String(\"eventbridge\"),\n\t\t\tConfig: pulumi.All(defaultInstance.ID(), defaultGroup.GroupName, defaultTopic.TopicName).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tid := _args[0].(string)\n\t\t\t\tgroupName := _args[1].(string)\n\t\t\t\ttopicName := _args[2].(string)\n\t\t\t\tvar _zero string\n\t\t\t\ttmpJSON2, err := json.Marshal(map[string]interface{}{\n\t\t\t\t\t\"triggerEnable\":          false,\n\t\t\t\t\t\"asyncInvocationType\":    false,\n\t\t\t\t\t\"eventRuleFilterPattern\": \"{}\",\n\t\t\t\t\t\"eventSinkConfig\": map[string]interface{}{\n\t\t\t\t\t\t\"deliveryOption\": map[string]interface{}{\n\t\t\t\t\t\t\t\"mode\":        \"event-driven\",\n\t\t\t\t\t\t\t\"eventSchema\": \"CloudEvents\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"eventSourceConfig\": map[string]interface{}{\n\t\t\t\t\t\t\"eventSourceType\": \"RocketMQ\",\n\t\t\t\t\t\t\"eventSourceParameters\": map[string]interface{}{\n\t\t\t\t\t\t\t\"sourceRocketMQParameters\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"RegionId\":   defaultGetRegions.Regions[0].Id,\n\t\t\t\t\t\t\t\t\"InstanceId\": id,\n\t\t\t\t\t\t\t\t\"GroupID\":    groupName,\n\t\t\t\t\t\t\t\t\"Topic\":      topicName,\n\t\t\t\t\t\t\t\t\"Timestamp\":  1686296162,\n\t\t\t\t\t\t\t\t\"Tag\":        \"example-tag\",\n\t\t\t\t\t\t\t\t\"Offset\":     \"CONSUME_FROM_LAST_OFFSET\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"runOptions\": map[string]interface{}{\n\t\t\t\t\t\t\"retryStrategy\": map[string]interface{}{\n\t\t\t\t\t\t\t\"PushRetryStrategy\": \"BACKOFF_RETRY\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"errorsTolerance\": \"ALL\",\n\t\t\t\t\t\t\"mode\":            \"event-driven\",\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson2 := string(tmpJSON2)\n\t\t\t\treturn json2, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance2, err := amqp.NewInstance(ctx, \"default\", \u0026amqp.InstanceArgs{\n\t\t\tInstanceName:  pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t\tInstanceType:  pulumi.String(\"professional\"),\n\t\t\tMaxTps:        pulumi.String(\"1000\"),\n\t\t\tQueueCapacity: pulumi.String(\"50\"),\n\t\t\tSupportEip:    pulumi.Bool(true),\n\t\t\tMaxEipTps:     pulumi.String(\"128\"),\n\t\t\tPaymentType:   pulumi.String(\"Subscription\"),\n\t\t\tPeriod:        pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVirtualHost, err := amqp.NewVirtualHost(ctx, \"default\", \u0026amqp.VirtualHostArgs{\n\t\t\tInstanceId:      defaultInstance2.ID(),\n\t\t\tVirtualHostName: pulumi.String(\"example-VirtualHost\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultQueue, err := amqp.NewQueue(ctx, \"default\", \u0026amqp.QueueArgs{\n\t\t\tInstanceId:      defaultVirtualHost.InstanceId,\n\t\t\tQueueName:       pulumi.String(\"example-queue\"),\n\t\t\tVirtualHostName: defaultVirtualHost.VirtualHostName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fc.NewTrigger(ctx, \"rabbitmq_trigger\", \u0026fc.TriggerArgs{\n\t\t\tService:  defaultService.Name,\n\t\t\tFunction: defaultFunction.Name,\n\t\t\tName:     pulumi.String(\"terraform-example-rabbitmq\"),\n\t\t\tType:     pulumi.String(\"eventbridge\"),\n\t\t\tConfig: pulumi.All(defaultInstance2.ID(), defaultVirtualHost.VirtualHostName, defaultQueue.QueueName).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tid := _args[0].(string)\n\t\t\t\tvirtualHostName := _args[1].(string)\n\t\t\t\tqueueName := _args[2].(string)\n\t\t\t\tvar _zero string\n\t\t\t\ttmpJSON3, err := json.Marshal(map[string]interface{}{\n\t\t\t\t\t\"triggerEnable\":          false,\n\t\t\t\t\t\"asyncInvocationType\":    false,\n\t\t\t\t\t\"eventRuleFilterPattern\": \"{}\",\n\t\t\t\t\t\"eventSourceConfig\": map[string]interface{}{\n\t\t\t\t\t\t\"eventSourceType\": \"RabbitMQ\",\n\t\t\t\t\t\t\"eventSourceParameters\": map[string]interface{}{\n\t\t\t\t\t\t\t\"sourceRabbitMQParameters\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"RegionId\":        defaultGetRegions.Regions[0].Id,\n\t\t\t\t\t\t\t\t\"InstanceId\":      id,\n\t\t\t\t\t\t\t\t\"VirtualHostName\": virtualHostName,\n\t\t\t\t\t\t\t\t\"QueueName\":       queueName,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"eventSinkConfig\": map[string]interface{}{\n\t\t\t\t\t\t\"deliveryOption\": map[string]interface{}{\n\t\t\t\t\t\t\t\"mode\":        \"event-driven\",\n\t\t\t\t\t\t\t\"eventSchema\": \"CloudEvents\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"runOptions\": map[string]interface{}{\n\t\t\t\t\t\t\"retryStrategy\": map[string]interface{}{\n\t\t\t\t\t\t\t\"PushRetryStrategy\": \"BACKOFF_RETRY\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"errorsTolerance\": \"ALL\",\n\t\t\t\t\t\t\"mode\":            \"event-driven\",\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson3 := string(tmpJSON3)\n\t\t\t\treturn json3, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.eventbridge.ServiceLinkedRole;\nimport com.pulumi.alicloud.eventbridge.ServiceLinkedRoleArgs;\nimport com.pulumi.alicloud.fc.Service;\nimport com.pulumi.alicloud.fc.ServiceArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketObject;\nimport com.pulumi.alicloud.oss.BucketObjectArgs;\nimport com.pulumi.alicloud.fc.Function;\nimport com.pulumi.alicloud.fc.FunctionArgs;\nimport com.pulumi.alicloud.fc.Trigger;\nimport com.pulumi.alicloud.fc.TriggerArgs;\nimport com.pulumi.alicloud.rocketmq.Group;\nimport com.pulumi.alicloud.rocketmq.GroupArgs;\nimport com.pulumi.alicloud.rocketmq.Topic;\nimport com.pulumi.alicloud.rocketmq.TopicArgs;\nimport com.pulumi.alicloud.amqp.VirtualHost;\nimport com.pulumi.alicloud.amqp.VirtualHostArgs;\nimport com.pulumi.alicloud.amqp.Queue;\nimport com.pulumi.alicloud.amqp.QueueArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var defaultGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var serviceLinkedRole = new ServiceLinkedRole(\"serviceLinkedRole\", ServiceLinkedRoleArgs.builder()\n            .productName(\"AliyunServiceRoleForEventBridgeSendToFC\")\n            .build());\n\n        var defaultService = new Service(\"defaultService\", ServiceArgs.builder()\n            .name(String.format(\"example-value-%s\", defaultInteger.result()))\n            .description(\"example-value\")\n            .internetAccess(false)\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n        // If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n        var defaultBucketObject = new BucketObject(\"defaultBucketObject\", BucketObjectArgs.builder()\n            .bucket(defaultBucket.id())\n            .key(\"index.py\")\n            .content(\"\"\"\nimport logging \ndef handler(event, context): \nlogger = logging.getLogger() \nlogger.info('hello world') \nreturn 'hello world'            \"\"\")\n            .build());\n\n        var defaultFunction = new Function(\"defaultFunction\", FunctionArgs.builder()\n            .service(defaultService.name())\n            .name(\"terraform-example\")\n            .description(\"example\")\n            .ossBucket(defaultBucket.id())\n            .ossKey(defaultBucketObject.key())\n            .memorySize(512)\n            .runtime(\"python3.10\")\n            .handler(\"hello.handler\")\n            .build());\n\n        var ossTrigger = new Trigger(\"ossTrigger\", TriggerArgs.builder()\n            .service(defaultService.name())\n            .function(defaultFunction.name())\n            .name(\"terraform-example-oss\")\n            .type(\"eventbridge\")\n            .config(serializeJson(\n                jsonObject(\n                    jsonProperty(\"triggerEnable\", false),\n                    jsonProperty(\"asyncInvocationType\", false),\n                    jsonProperty(\"eventSourceConfig\", jsonObject(\n                        jsonProperty(\"eventSourceType\", \"Default\")\n                    )),\n                    jsonProperty(\"eventRuleFilterPattern\", \"{\\\"source\\\":[\\\"acs.oss\\\"],\\\"type\\\":[\\\"oss:BucketCreated:PutBucket\\\"]}\"),\n                    jsonProperty(\"eventSinkConfig\", jsonObject(\n                        jsonProperty(\"deliveryOption\", jsonObject(\n                            jsonProperty(\"mode\", \"event-driven\"),\n                            jsonProperty(\"eventSchema\", \"CloudEvents\")\n                        ))\n                    )),\n                    jsonProperty(\"runOptions\", jsonObject(\n                        jsonProperty(\"retryStrategy\", jsonObject(\n                            jsonProperty(\"PushRetryStrategy\", \"BACKOFF_RETRY\")\n                        )),\n                        jsonProperty(\"errorsTolerance\", \"ALL\"),\n                        jsonProperty(\"mode\", \"event-driven\")\n                    ))\n                )))\n            .build());\n\n        var mnsTrigger = new Trigger(\"mnsTrigger\", TriggerArgs.builder()\n            .service(defaultService.name())\n            .function(defaultFunction.name())\n            .name(\"terraform-example-mns\")\n            .type(\"eventbridge\")\n            .config(serializeJson(\n                jsonObject(\n                    jsonProperty(\"triggerEnable\", false),\n                    jsonProperty(\"asyncInvocationType\", false),\n                    jsonProperty(\"eventSourceConfig\", jsonObject(\n                        jsonProperty(\"eventSourceType\", \"MNS\"),\n                        jsonProperty(\"eventSourceParameters\", jsonObject(\n                            jsonProperty(\"sourceMNSParameters\", jsonObject(\n                                jsonProperty(\"RegionId\", defaultGetRegions.regions()[0].id()),\n                                jsonProperty(\"QueueName\", \"mns-queue\"),\n                                jsonProperty(\"IsBase64Decode\", true)\n                            ))\n                        ))\n                    )),\n                    jsonProperty(\"eventRuleFilterPattern\", \"{}\"),\n                    jsonProperty(\"eventSinkConfig\", jsonObject(\n                        jsonProperty(\"deliveryOption\", jsonObject(\n                            jsonProperty(\"mode\", \"event-driven\"),\n                            jsonProperty(\"eventSchema\", \"CloudEvents\")\n                        ))\n                    )),\n                    jsonProperty(\"runOptions\", jsonObject(\n                        jsonProperty(\"retryStrategy\", jsonObject(\n                            jsonProperty(\"PushRetryStrategy\", \"BACKOFF_RETRY\")\n                        )),\n                        jsonProperty(\"errorsTolerance\", \"ALL\"),\n                        jsonProperty(\"mode\", \"event-driven\")\n                    ))\n                )))\n            .build());\n\n        var defaultInstance = new com.pulumi.alicloud.rocketmq.Instance(\"defaultInstance\", com.pulumi.alicloud.rocketmq.InstanceArgs.builder()\n            .instanceName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .remark(\"terraform-example\")\n            .build());\n\n        var defaultGroup = new Group(\"defaultGroup\", GroupArgs.builder()\n            .groupName(\"GID-example\")\n            .instanceId(defaultInstance.id())\n            .remark(\"terraform-example\")\n            .build());\n\n        var defaultTopic = new Topic(\"defaultTopic\", TopicArgs.builder()\n            .topicName(\"mytopic\")\n            .instanceId(defaultInstance.id())\n            .messageType(0)\n            .remark(\"terraform-example\")\n            .build());\n\n        var rocketmqTrigger = new Trigger(\"rocketmqTrigger\", TriggerArgs.builder()\n            .service(defaultService.name())\n            .function(defaultFunction.name())\n            .name(\"terraform-example-rocketmq\")\n            .type(\"eventbridge\")\n            .config(Output.tuple(defaultInstance.id(), defaultGroup.groupName(), defaultTopic.topicName()).applyValue(values -\u003e {\n                var id = values.t1;\n                var groupName = values.t2;\n                var topicName = values.t3;\n                return serializeJson(\n                    jsonObject(\n                        jsonProperty(\"triggerEnable\", false),\n                        jsonProperty(\"asyncInvocationType\", false),\n                        jsonProperty(\"eventRuleFilterPattern\", \"{}\"),\n                        jsonProperty(\"eventSinkConfig\", jsonObject(\n                            jsonProperty(\"deliveryOption\", jsonObject(\n                                jsonProperty(\"mode\", \"event-driven\"),\n                                jsonProperty(\"eventSchema\", \"CloudEvents\")\n                            ))\n                        )),\n                        jsonProperty(\"eventSourceConfig\", jsonObject(\n                            jsonProperty(\"eventSourceType\", \"RocketMQ\"),\n                            jsonProperty(\"eventSourceParameters\", jsonObject(\n                                jsonProperty(\"sourceRocketMQParameters\", jsonObject(\n                                    jsonProperty(\"RegionId\", defaultGetRegions.regions()[0].id()),\n                                    jsonProperty(\"InstanceId\", id),\n                                    jsonProperty(\"GroupID\", groupName),\n                                    jsonProperty(\"Topic\", topicName),\n                                    jsonProperty(\"Timestamp\", 1686296162),\n                                    jsonProperty(\"Tag\", \"example-tag\"),\n                                    jsonProperty(\"Offset\", \"CONSUME_FROM_LAST_OFFSET\")\n                                ))\n                            ))\n                        )),\n                        jsonProperty(\"runOptions\", jsonObject(\n                            jsonProperty(\"retryStrategy\", jsonObject(\n                                jsonProperty(\"PushRetryStrategy\", \"BACKOFF_RETRY\")\n                            )),\n                            jsonProperty(\"errorsTolerance\", \"ALL\"),\n                            jsonProperty(\"mode\", \"event-driven\")\n                        ))\n                    ));\n            }))\n            .build());\n\n        var defaultInstance2 = new com.pulumi.alicloud.amqp.Instance(\"defaultInstance2\", com.pulumi.alicloud.amqp.InstanceArgs.builder()\n            .instanceName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .instanceType(\"professional\")\n            .maxTps(\"1000\")\n            .queueCapacity(\"50\")\n            .supportEip(true)\n            .maxEipTps(\"128\")\n            .paymentType(\"Subscription\")\n            .period(1)\n            .build());\n\n        var defaultVirtualHost = new VirtualHost(\"defaultVirtualHost\", VirtualHostArgs.builder()\n            .instanceId(defaultInstance2.id())\n            .virtualHostName(\"example-VirtualHost\")\n            .build());\n\n        var defaultQueue = new Queue(\"defaultQueue\", QueueArgs.builder()\n            .instanceId(defaultVirtualHost.instanceId())\n            .queueName(\"example-queue\")\n            .virtualHostName(defaultVirtualHost.virtualHostName())\n            .build());\n\n        var rabbitmqTrigger = new Trigger(\"rabbitmqTrigger\", TriggerArgs.builder()\n            .service(defaultService.name())\n            .function(defaultFunction.name())\n            .name(\"terraform-example-rabbitmq\")\n            .type(\"eventbridge\")\n            .config(Output.tuple(defaultInstance2.id(), defaultVirtualHost.virtualHostName(), defaultQueue.queueName()).applyValue(values -\u003e {\n                var id = values.t1;\n                var virtualHostName = values.t2;\n                var queueName = values.t3;\n                return serializeJson(\n                    jsonObject(\n                        jsonProperty(\"triggerEnable\", false),\n                        jsonProperty(\"asyncInvocationType\", false),\n                        jsonProperty(\"eventRuleFilterPattern\", \"{}\"),\n                        jsonProperty(\"eventSourceConfig\", jsonObject(\n                            jsonProperty(\"eventSourceType\", \"RabbitMQ\"),\n                            jsonProperty(\"eventSourceParameters\", jsonObject(\n                                jsonProperty(\"sourceRabbitMQParameters\", jsonObject(\n                                    jsonProperty(\"RegionId\", defaultGetRegions.regions()[0].id()),\n                                    jsonProperty(\"InstanceId\", id),\n                                    jsonProperty(\"VirtualHostName\", virtualHostName),\n                                    jsonProperty(\"QueueName\", queueName)\n                                ))\n                            ))\n                        )),\n                        jsonProperty(\"eventSinkConfig\", jsonObject(\n                            jsonProperty(\"deliveryOption\", jsonObject(\n                                jsonProperty(\"mode\", \"event-driven\"),\n                                jsonProperty(\"eventSchema\", \"CloudEvents\")\n                            ))\n                        )),\n                        jsonProperty(\"runOptions\", jsonObject(\n                            jsonProperty(\"retryStrategy\", jsonObject(\n                                jsonProperty(\"PushRetryStrategy\", \"BACKOFF_RETRY\")\n                            )),\n                            jsonProperty(\"errorsTolerance\", \"ALL\"),\n                            jsonProperty(\"mode\", \"event-driven\")\n                        ))\n                    ));\n            }))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  serviceLinkedRole:\n    type: alicloud:eventbridge:ServiceLinkedRole\n    name: service_linked_role\n    properties:\n      productName: AliyunServiceRoleForEventBridgeSendToFC\n  defaultService:\n    type: alicloud:fc:Service\n    name: default\n    properties:\n      name: example-value-${defaultInteger.result}\n      description: example-value\n      internetAccess: false\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket: terraform-example-${defaultInteger.result}\n  # If you upload the function by OSS Bucket, you need to specify path can't upload by content.\n  defaultBucketObject:\n    type: alicloud:oss:BucketObject\n    name: default\n    properties:\n      bucket: ${defaultBucket.id}\n      key: index.py\n      content: \"import logging \\ndef handler(event, context): \\nlogger = logging.getLogger() \\nlogger.info('hello world') \\nreturn 'hello world'\"\n  defaultFunction:\n    type: alicloud:fc:Function\n    name: default\n    properties:\n      service: ${defaultService.name}\n      name: terraform-example\n      description: example\n      ossBucket: ${defaultBucket.id}\n      ossKey: ${defaultBucketObject.key}\n      memorySize: '512'\n      runtime: python3.10\n      handler: hello.handler\n  ossTrigger:\n    type: alicloud:fc:Trigger\n    name: oss_trigger\n    properties:\n      service: ${defaultService.name}\n      function: ${defaultFunction.name}\n      name: terraform-example-oss\n      type: eventbridge\n      config:\n        fn::toJSON:\n          triggerEnable: false\n          asyncInvocationType: false\n          eventSourceConfig:\n            eventSourceType: Default\n          eventRuleFilterPattern: '{\"source\":[\"acs.oss\"],\"type\":[\"oss:BucketCreated:PutBucket\"]}'\n          eventSinkConfig:\n            deliveryOption:\n              mode: event-driven\n              eventSchema: CloudEvents\n          runOptions:\n            retryStrategy:\n              PushRetryStrategy: BACKOFF_RETRY\n            errorsTolerance: ALL\n            mode: event-driven\n  mnsTrigger:\n    type: alicloud:fc:Trigger\n    name: mns_trigger\n    properties:\n      service: ${defaultService.name}\n      function: ${defaultFunction.name}\n      name: terraform-example-mns\n      type: eventbridge\n      config:\n        fn::toJSON:\n          triggerEnable: false\n          asyncInvocationType: false\n          eventSourceConfig:\n            eventSourceType: MNS\n            eventSourceParameters:\n              sourceMNSParameters:\n                RegionId: ${defaultGetRegions.regions[0].id}\n                QueueName: mns-queue\n                IsBase64Decode: true\n          eventRuleFilterPattern: '{}'\n          eventSinkConfig:\n            deliveryOption:\n              mode: event-driven\n              eventSchema: CloudEvents\n          runOptions:\n            retryStrategy:\n              PushRetryStrategy: BACKOFF_RETRY\n            errorsTolerance: ALL\n            mode: event-driven\n  defaultInstance:\n    type: alicloud:rocketmq:Instance\n    name: default\n    properties:\n      instanceName: terraform-example-${defaultInteger.result}\n      remark: terraform-example\n  defaultGroup:\n    type: alicloud:rocketmq:Group\n    name: default\n    properties:\n      groupName: GID-example\n      instanceId: ${defaultInstance.id}\n      remark: terraform-example\n  defaultTopic:\n    type: alicloud:rocketmq:Topic\n    name: default\n    properties:\n      topicName: mytopic\n      instanceId: ${defaultInstance.id}\n      messageType: 0\n      remark: terraform-example\n  rocketmqTrigger:\n    type: alicloud:fc:Trigger\n    name: rocketmq_trigger\n    properties:\n      service: ${defaultService.name}\n      function: ${defaultFunction.name}\n      name: terraform-example-rocketmq\n      type: eventbridge\n      config:\n        fn::toJSON:\n          triggerEnable: false\n          asyncInvocationType: false\n          eventRuleFilterPattern: '{}'\n          eventSinkConfig:\n            deliveryOption:\n              mode: event-driven\n              eventSchema: CloudEvents\n          eventSourceConfig:\n            eventSourceType: RocketMQ\n            eventSourceParameters:\n              sourceRocketMQParameters:\n                RegionId: ${defaultGetRegions.regions[0].id}\n                InstanceId: ${defaultInstance.id}\n                GroupID: ${defaultGroup.groupName}\n                Topic: ${defaultTopic.topicName}\n                Timestamp: 1.686296162e+09\n                Tag: example-tag\n                Offset: CONSUME_FROM_LAST_OFFSET\n          runOptions:\n            retryStrategy:\n              PushRetryStrategy: BACKOFF_RETRY\n            errorsTolerance: ALL\n            mode: event-driven\n  defaultInstance2:\n    type: alicloud:amqp:Instance\n    name: default\n    properties:\n      instanceName: terraform-example-${defaultInteger.result}\n      instanceType: professional\n      maxTps: 1000\n      queueCapacity: 50\n      supportEip: true\n      maxEipTps: 128\n      paymentType: Subscription\n      period: 1\n  defaultVirtualHost:\n    type: alicloud:amqp:VirtualHost\n    name: default\n    properties:\n      instanceId: ${defaultInstance2.id}\n      virtualHostName: example-VirtualHost\n  defaultQueue:\n    type: alicloud:amqp:Queue\n    name: default\n    properties:\n      instanceId: ${defaultVirtualHost.instanceId}\n      queueName: example-queue\n      virtualHostName: ${defaultVirtualHost.virtualHostName}\n  rabbitmqTrigger:\n    type: alicloud:fc:Trigger\n    name: rabbitmq_trigger\n    properties:\n      service: ${defaultService.name}\n      function: ${defaultFunction.name}\n      name: terraform-example-rabbitmq\n      type: eventbridge\n      config:\n        fn::toJSON:\n          triggerEnable: false\n          asyncInvocationType: false\n          eventRuleFilterPattern: '{}'\n          eventSourceConfig:\n            eventSourceType: RabbitMQ\n            eventSourceParameters:\n              sourceRabbitMQParameters:\n                RegionId: ${defaultGetRegions.regions[0].id}\n                InstanceId: ${defaultInstance2.id}\n                VirtualHostName: ${defaultVirtualHost.virtualHostName}\n                QueueName: ${defaultQueue.queueName}\n          eventSinkConfig:\n            deliveryOption:\n              mode: event-driven\n              eventSchema: CloudEvents\n          runOptions:\n            retryStrategy:\n              PushRetryStrategy: BACKOFF_RETRY\n            errorsTolerance: ALL\n            mode: event-driven\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  defaultGetRegions:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use to the existing fc module \nto create several triggers quickly.\n\n## Import\n\nFunction Compute trigger can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fc/trigger:Trigger foo my-fc-service:hello-world:hello-trigger\n```\n\n","properties":{"config":{"type":"string","description":"The config of Function Compute trigger.It is valid when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is not \u003cspan pulumi-lang-nodejs=\"\"mnsTopic\"\" pulumi-lang-dotnet=\"\"MnsTopic\"\" pulumi-lang-go=\"\"mnsTopic\"\" pulumi-lang-python=\"\"mns_topic\"\" pulumi-lang-yaml=\"\"mnsTopic\"\" pulumi-lang-java=\"\"mnsTopic\"\"\u003e\"mns_topic\"\u003c/span\u003e.See [Configure triggers and events](https://www.alibabacloud.com/help/doc-detail/70140.htm) for more details.\n"},"configMns":{"type":"string","description":"The config of Function Compute trigger when the type is \u003cspan pulumi-lang-nodejs=\"\"mnsTopic\"\" pulumi-lang-dotnet=\"\"MnsTopic\"\" pulumi-lang-go=\"\"mnsTopic\"\" pulumi-lang-python=\"\"mns_topic\"\" pulumi-lang-yaml=\"\"mnsTopic\"\" pulumi-lang-java=\"\"mnsTopic\"\"\u003e\"mns_topic\"\u003c/span\u003e.It is conflict with \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e.\n"},"function":{"type":"string","description":"The Function Compute function name.\n"},"lastModified":{"type":"string","description":"The date this resource was last modified.\n"},"name":{"type":"string","description":"The Function Compute trigger name. It is the only in one service and is conflict with \u003cspan pulumi-lang-nodejs=\"\"namePrefix\"\" pulumi-lang-dotnet=\"\"NamePrefix\"\" pulumi-lang-go=\"\"namePrefix\"\" pulumi-lang-python=\"\"name_prefix\"\" pulumi-lang-yaml=\"\"namePrefix\"\" pulumi-lang-java=\"\"namePrefix\"\"\u003e\"name_prefix\"\u003c/span\u003e.\n"},"namePrefix":{"type":"string","description":"Setting a prefix to get a only trigger name. It is conflict with \"name\".\n"},"role":{"type":"string","description":"RAM role arn attached to the Function Compute trigger. Role used by the event source to call the function. The value format is \"acs:ram::$account-id:role/$role-name\". See [Create a trigger](https://www.alibabacloud.com/help/doc-detail/53102.htm) for more details.\n"},"service":{"type":"string","description":"The Function Compute service name.\n"},"sourceArn":{"type":"string","description":"Event source resource address. See [Create a trigger](https://www.alibabacloud.com/help/doc-detail/53102.htm) for more details.\n"},"triggerId":{"type":"string","description":"The Function Compute trigger ID.\n"},"type":{"type":"string","description":"The Type of the trigger. Valid values: [\"oss\", \"log\", \"timer\", \"http\", \u003cspan pulumi-lang-nodejs=\"\"mnsTopic\"\" pulumi-lang-dotnet=\"\"MnsTopic\"\" pulumi-lang-go=\"\"mnsTopic\"\" pulumi-lang-python=\"\"mns_topic\"\" pulumi-lang-yaml=\"\"mnsTopic\"\" pulumi-lang-java=\"\"mnsTopic\"\"\u003e\"mns_topic\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"cdnEvents\"\" pulumi-lang-dotnet=\"\"CdnEvents\"\" pulumi-lang-go=\"\"cdnEvents\"\" pulumi-lang-python=\"\"cdn_events\"\" pulumi-lang-yaml=\"\"cdnEvents\"\" pulumi-lang-java=\"\"cdnEvents\"\"\u003e\"cdn_events\"\u003c/span\u003e, \"eventbridge\"].\n\n\u003e **NOTE:** Config does not support modification when type is mns_topic.\n\u003e **NOTE:** type = cdn_events, available in 1.47.0+.\n\u003e **NOTE:** type = eventbridge, available in 1.173.0+.\n"}},"required":["function","lastModified","name","service","triggerId","type"],"inputProperties":{"config":{"type":"string","description":"The config of Function Compute trigger.It is valid when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is not \u003cspan pulumi-lang-nodejs=\"\"mnsTopic\"\" pulumi-lang-dotnet=\"\"MnsTopic\"\" pulumi-lang-go=\"\"mnsTopic\"\" pulumi-lang-python=\"\"mns_topic\"\" pulumi-lang-yaml=\"\"mnsTopic\"\" pulumi-lang-java=\"\"mnsTopic\"\"\u003e\"mns_topic\"\u003c/span\u003e.See [Configure triggers and events](https://www.alibabacloud.com/help/doc-detail/70140.htm) for more details.\n"},"configMns":{"type":"string","description":"The config of Function Compute trigger when the type is \u003cspan pulumi-lang-nodejs=\"\"mnsTopic\"\" pulumi-lang-dotnet=\"\"MnsTopic\"\" pulumi-lang-go=\"\"mnsTopic\"\" pulumi-lang-python=\"\"mns_topic\"\" pulumi-lang-yaml=\"\"mnsTopic\"\" pulumi-lang-java=\"\"mnsTopic\"\"\u003e\"mns_topic\"\u003c/span\u003e.It is conflict with \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e.\n","willReplaceOnChanges":true},"function":{"type":"string","description":"The Function Compute function name.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The Function Compute trigger name. It is the only in one service and is conflict with \u003cspan pulumi-lang-nodejs=\"\"namePrefix\"\" pulumi-lang-dotnet=\"\"NamePrefix\"\" pulumi-lang-go=\"\"namePrefix\"\" pulumi-lang-python=\"\"name_prefix\"\" pulumi-lang-yaml=\"\"namePrefix\"\" pulumi-lang-java=\"\"namePrefix\"\"\u003e\"name_prefix\"\u003c/span\u003e.\n","willReplaceOnChanges":true},"namePrefix":{"type":"string","description":"Setting a prefix to get a only trigger name. It is conflict with \"name\".\n","willReplaceOnChanges":true},"role":{"type":"string","description":"RAM role arn attached to the Function Compute trigger. Role used by the event source to call the function. The value format is \"acs:ram::$account-id:role/$role-name\". See [Create a trigger](https://www.alibabacloud.com/help/doc-detail/53102.htm) for more details.\n"},"service":{"type":"string","description":"The Function Compute service name.\n","willReplaceOnChanges":true},"sourceArn":{"type":"string","description":"Event source resource address. See [Create a trigger](https://www.alibabacloud.com/help/doc-detail/53102.htm) for more details.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The Type of the trigger. Valid values: [\"oss\", \"log\", \"timer\", \"http\", \u003cspan pulumi-lang-nodejs=\"\"mnsTopic\"\" pulumi-lang-dotnet=\"\"MnsTopic\"\" pulumi-lang-go=\"\"mnsTopic\"\" pulumi-lang-python=\"\"mns_topic\"\" pulumi-lang-yaml=\"\"mnsTopic\"\" pulumi-lang-java=\"\"mnsTopic\"\"\u003e\"mns_topic\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"cdnEvents\"\" pulumi-lang-dotnet=\"\"CdnEvents\"\" pulumi-lang-go=\"\"cdnEvents\"\" pulumi-lang-python=\"\"cdn_events\"\" pulumi-lang-yaml=\"\"cdnEvents\"\" pulumi-lang-java=\"\"cdnEvents\"\"\u003e\"cdn_events\"\u003c/span\u003e, \"eventbridge\"].\n\n\u003e **NOTE:** Config does not support modification when type is mns_topic.\n\u003e **NOTE:** type = cdn_events, available in 1.47.0+.\n\u003e **NOTE:** type = eventbridge, available in 1.173.0+.\n","willReplaceOnChanges":true}},"requiredInputs":["function","service","type"],"stateInputs":{"description":"Input properties used for looking up and filtering Trigger resources.\n","properties":{"config":{"type":"string","description":"The config of Function Compute trigger.It is valid when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is not \u003cspan pulumi-lang-nodejs=\"\"mnsTopic\"\" pulumi-lang-dotnet=\"\"MnsTopic\"\" pulumi-lang-go=\"\"mnsTopic\"\" pulumi-lang-python=\"\"mns_topic\"\" pulumi-lang-yaml=\"\"mnsTopic\"\" pulumi-lang-java=\"\"mnsTopic\"\"\u003e\"mns_topic\"\u003c/span\u003e.See [Configure triggers and events](https://www.alibabacloud.com/help/doc-detail/70140.htm) for more details.\n"},"configMns":{"type":"string","description":"The config of Function Compute trigger when the type is \u003cspan pulumi-lang-nodejs=\"\"mnsTopic\"\" pulumi-lang-dotnet=\"\"MnsTopic\"\" pulumi-lang-go=\"\"mnsTopic\"\" pulumi-lang-python=\"\"mns_topic\"\" pulumi-lang-yaml=\"\"mnsTopic\"\" pulumi-lang-java=\"\"mnsTopic\"\"\u003e\"mns_topic\"\u003c/span\u003e.It is conflict with \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e.\n","willReplaceOnChanges":true},"function":{"type":"string","description":"The Function Compute function name.\n","willReplaceOnChanges":true},"lastModified":{"type":"string","description":"The date this resource was last modified.\n"},"name":{"type":"string","description":"The Function Compute trigger name. It is the only in one service and is conflict with \u003cspan pulumi-lang-nodejs=\"\"namePrefix\"\" pulumi-lang-dotnet=\"\"NamePrefix\"\" pulumi-lang-go=\"\"namePrefix\"\" pulumi-lang-python=\"\"name_prefix\"\" pulumi-lang-yaml=\"\"namePrefix\"\" pulumi-lang-java=\"\"namePrefix\"\"\u003e\"name_prefix\"\u003c/span\u003e.\n","willReplaceOnChanges":true},"namePrefix":{"type":"string","description":"Setting a prefix to get a only trigger name. It is conflict with \"name\".\n","willReplaceOnChanges":true},"role":{"type":"string","description":"RAM role arn attached to the Function Compute trigger. Role used by the event source to call the function. The value format is \"acs:ram::$account-id:role/$role-name\". See [Create a trigger](https://www.alibabacloud.com/help/doc-detail/53102.htm) for more details.\n"},"service":{"type":"string","description":"The Function Compute service name.\n","willReplaceOnChanges":true},"sourceArn":{"type":"string","description":"Event source resource address. See [Create a trigger](https://www.alibabacloud.com/help/doc-detail/53102.htm) for more details.\n","willReplaceOnChanges":true},"triggerId":{"type":"string","description":"The Function Compute trigger ID.\n"},"type":{"type":"string","description":"The Type of the trigger. Valid values: [\"oss\", \"log\", \"timer\", \"http\", \u003cspan pulumi-lang-nodejs=\"\"mnsTopic\"\" pulumi-lang-dotnet=\"\"MnsTopic\"\" pulumi-lang-go=\"\"mnsTopic\"\" pulumi-lang-python=\"\"mns_topic\"\" pulumi-lang-yaml=\"\"mnsTopic\"\" pulumi-lang-java=\"\"mnsTopic\"\"\u003e\"mns_topic\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"cdnEvents\"\" pulumi-lang-dotnet=\"\"CdnEvents\"\" pulumi-lang-go=\"\"cdnEvents\"\" pulumi-lang-python=\"\"cdn_events\"\" pulumi-lang-yaml=\"\"cdnEvents\"\" pulumi-lang-java=\"\"cdnEvents\"\"\u003e\"cdn_events\"\u003c/span\u003e, \"eventbridge\"].\n\n\u003e **NOTE:** Config does not support modification when type is mns_topic.\n\u003e **NOTE:** type = cdn_events, available in 1.47.0+.\n\u003e **NOTE:** type = eventbridge, available in 1.173.0+.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:fc/v2Function:V2Function":{"description":"Provides a FCV2 Function resource. Function is the unit of system scheduling and operation. Functions must be subordinate to services. All functions under the same service share some identical settings, such as service authorization and log configuration.\n\nFor information about FCV2 Function and how to use it, see [What is Function](https://www.alibabacloud.com/help/en/resource-orchestration-service/latest/aliyun-fc-function).\n\n\u003e **NOTE:** Available since v1.208.0.\n\n\u003e **NOTE:** This resource (alicloud_fc_function) represents the legacy Function Compute API. For new deployments and advanced features, please use the \u003cspan pulumi-lang-nodejs=\"`alicloud.fc.V3Function`\" pulumi-lang-dotnet=\"`alicloud.fc.V3Function`\" pulumi-lang-go=\"`fc.V3Function`\" pulumi-lang-python=\"`fc.V3Function`\" pulumi-lang-yaml=\"`alicloud.fc.V3Function`\" pulumi-lang-java=\"`alicloud.fc.V3Function`\"\u003e`alicloud.fc.V3Function`\u003c/span\u003e resource which provides access to the latest FCV3 capabilities.\n\n## Import\n\nFCV2 Function can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fc/v2Function:V2Function example \u003cservice_name\u003e:\u003cfunction_name\u003e\n```\n\n","properties":{"caPort":{"type":"integer","description":"The listening port of the HTTP Server when the Custom Runtime or Custom Container is running.\n"},"code":{"$ref":"#/types/alicloud:fc/V2FunctionCode:V2FunctionCode","description":"Function Code ZIP package. code and customContainerConfig choose one. See \u003cspan pulumi-lang-nodejs=\"`code`\" pulumi-lang-dotnet=\"`Code`\" pulumi-lang-go=\"`code`\" pulumi-lang-python=\"`code`\" pulumi-lang-yaml=\"`code`\" pulumi-lang-java=\"`code`\"\u003e`code`\u003c/span\u003e below.\n"},"codeChecksum":{"type":"string","description":"crc64 of function code.\n"},"cpu":{"type":"number","description":"The CPU specification of the function. The unit is vCPU, which is a multiple of the 0.05 vCPU.\n"},"createTime":{"type":"string","description":"create time of function.\n"},"customContainerConfig":{"$ref":"#/types/alicloud:fc/V2FunctionCustomContainerConfig:V2FunctionCustomContainerConfig","description":"Custom-container runtime related function configuration. See \u003cspan pulumi-lang-nodejs=\"`customContainerConfig`\" pulumi-lang-dotnet=\"`CustomContainerConfig`\" pulumi-lang-go=\"`customContainerConfig`\" pulumi-lang-python=\"`custom_container_config`\" pulumi-lang-yaml=\"`customContainerConfig`\" pulumi-lang-java=\"`customContainerConfig`\"\u003e`custom_container_config`\u003c/span\u003e below.\n"},"customDns":{"$ref":"#/types/alicloud:fc/V2FunctionCustomDns:V2FunctionCustomDns","description":"Function custom DNS configuration. See \u003cspan pulumi-lang-nodejs=\"`customDns`\" pulumi-lang-dotnet=\"`CustomDns`\" pulumi-lang-go=\"`customDns`\" pulumi-lang-python=\"`custom_dns`\" pulumi-lang-yaml=\"`customDns`\" pulumi-lang-java=\"`customDns`\"\u003e`custom_dns`\u003c/span\u003e below.\n"},"customHealthCheckConfig":{"$ref":"#/types/alicloud:fc/V2FunctionCustomHealthCheckConfig:V2FunctionCustomHealthCheckConfig","description":"Custom runtime/container Custom health check configuration. See \u003cspan pulumi-lang-nodejs=\"`customHealthCheckConfig`\" pulumi-lang-dotnet=\"`CustomHealthCheckConfig`\" pulumi-lang-go=\"`customHealthCheckConfig`\" pulumi-lang-python=\"`custom_health_check_config`\" pulumi-lang-yaml=\"`customHealthCheckConfig`\" pulumi-lang-java=\"`customHealthCheckConfig`\"\u003e`custom_health_check_config`\u003c/span\u003e below.\n"},"customRuntimeConfig":{"$ref":"#/types/alicloud:fc/V2FunctionCustomRuntimeConfig:V2FunctionCustomRuntimeConfig","description":"Detailed configuration of Custom Runtime function. See \u003cspan pulumi-lang-nodejs=\"`customRuntimeConfig`\" pulumi-lang-dotnet=\"`CustomRuntimeConfig`\" pulumi-lang-go=\"`customRuntimeConfig`\" pulumi-lang-python=\"`custom_runtime_config`\" pulumi-lang-yaml=\"`customRuntimeConfig`\" pulumi-lang-java=\"`customRuntimeConfig`\"\u003e`custom_runtime_config`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"description of function.\n"},"diskSize":{"type":"integer","description":"The disk specification of the function. The unit is MB. The optional value is 512 MB or 10240MB.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variable set for the function can get the value of the environment variable in the function. For more information, see Environment Variables.\n"},"functionArn":{"type":"string","description":"The Function Compute service function arn. It formats as `acs:fc:\u003cregion\u003e:\u003cuid\u003e:services/\u003cserviceName\u003e.LATEST/functions/\u003cfunctionName\u003e`.\n"},"functionName":{"type":"string","description":"function name.\n"},"gpuMemorySize":{"type":"integer","description":"The GPU memory specification of the function, in MB, is a multiple of 1024MB.\n"},"handler":{"type":"string","description":"entry point of function.\n"},"initializationTimeout":{"type":"integer","description":"max running time of initializer.\n"},"initializer":{"type":"string","description":"initializer entry point of function.\n"},"instanceConcurrency":{"type":"integer","description":"The maximum concurrency allowed for a single function instance.\n"},"instanceLifecycleConfig":{"$ref":"#/types/alicloud:fc/V2FunctionInstanceLifecycleConfig:V2FunctionInstanceLifecycleConfig","description":"Instance lifecycle configuration. See \u003cspan pulumi-lang-nodejs=\"`instanceLifecycleConfig`\" pulumi-lang-dotnet=\"`InstanceLifecycleConfig`\" pulumi-lang-go=\"`instanceLifecycleConfig`\" pulumi-lang-python=\"`instance_lifecycle_config`\" pulumi-lang-yaml=\"`instanceLifecycleConfig`\" pulumi-lang-java=\"`instanceLifecycleConfig`\"\u003e`instance_lifecycle_config`\u003c/span\u003e below.\n"},"instanceType":{"type":"string","description":"The instance type of the function. Valid values:\n- **e1**: Elastic instance.\n- **c1**: performance instance.\n- **fc.gpu.tesla.1**: the T4 card type of the Tesla series of GPU instances.\n- **fc.gpu.ampere.1**: The Ampere series A10 card type of the GPU instance.\n- **g1**: Same as **fc.gpu.tesla.1**.\n"},"layers":{"type":"array","items":{"type":"string"},"description":"List of layers.\n\u003e **NOTE:**  Multiple layers will be merged in the order of array subscripts from large to small, and the contents of layers with small subscripts will overwrite the files with the same name of layers with large subscripts.\n"},"memorySize":{"type":"integer","description":"memory size needed by function.\n"},"runtime":{"type":"string","description":"runtime of function code.\n"},"serviceName":{"type":"string","description":"The name of the function Service.\n"},"timeout":{"type":"integer","description":"max running time of function.\n"}},"required":["caPort","codeChecksum","createTime","functionArn","functionName","handler","initializationTimeout","instanceConcurrency","instanceType","memorySize","runtime","serviceName","timeout"],"inputProperties":{"caPort":{"type":"integer","description":"The listening port of the HTTP Server when the Custom Runtime or Custom Container is running.\n"},"code":{"$ref":"#/types/alicloud:fc/V2FunctionCode:V2FunctionCode","description":"Function Code ZIP package. code and customContainerConfig choose one. See \u003cspan pulumi-lang-nodejs=\"`code`\" pulumi-lang-dotnet=\"`Code`\" pulumi-lang-go=\"`code`\" pulumi-lang-python=\"`code`\" pulumi-lang-yaml=\"`code`\" pulumi-lang-java=\"`code`\"\u003e`code`\u003c/span\u003e below.\n"},"codeChecksum":{"type":"string","description":"crc64 of function code.\n"},"cpu":{"type":"number","description":"The CPU specification of the function. The unit is vCPU, which is a multiple of the 0.05 vCPU.\n"},"customContainerConfig":{"$ref":"#/types/alicloud:fc/V2FunctionCustomContainerConfig:V2FunctionCustomContainerConfig","description":"Custom-container runtime related function configuration. See \u003cspan pulumi-lang-nodejs=\"`customContainerConfig`\" pulumi-lang-dotnet=\"`CustomContainerConfig`\" pulumi-lang-go=\"`customContainerConfig`\" pulumi-lang-python=\"`custom_container_config`\" pulumi-lang-yaml=\"`customContainerConfig`\" pulumi-lang-java=\"`customContainerConfig`\"\u003e`custom_container_config`\u003c/span\u003e below.\n"},"customDns":{"$ref":"#/types/alicloud:fc/V2FunctionCustomDns:V2FunctionCustomDns","description":"Function custom DNS configuration. See \u003cspan pulumi-lang-nodejs=\"`customDns`\" pulumi-lang-dotnet=\"`CustomDns`\" pulumi-lang-go=\"`customDns`\" pulumi-lang-python=\"`custom_dns`\" pulumi-lang-yaml=\"`customDns`\" pulumi-lang-java=\"`customDns`\"\u003e`custom_dns`\u003c/span\u003e below.\n"},"customHealthCheckConfig":{"$ref":"#/types/alicloud:fc/V2FunctionCustomHealthCheckConfig:V2FunctionCustomHealthCheckConfig","description":"Custom runtime/container Custom health check configuration. See \u003cspan pulumi-lang-nodejs=\"`customHealthCheckConfig`\" pulumi-lang-dotnet=\"`CustomHealthCheckConfig`\" pulumi-lang-go=\"`customHealthCheckConfig`\" pulumi-lang-python=\"`custom_health_check_config`\" pulumi-lang-yaml=\"`customHealthCheckConfig`\" pulumi-lang-java=\"`customHealthCheckConfig`\"\u003e`custom_health_check_config`\u003c/span\u003e below.\n"},"customRuntimeConfig":{"$ref":"#/types/alicloud:fc/V2FunctionCustomRuntimeConfig:V2FunctionCustomRuntimeConfig","description":"Detailed configuration of Custom Runtime function. See \u003cspan pulumi-lang-nodejs=\"`customRuntimeConfig`\" pulumi-lang-dotnet=\"`CustomRuntimeConfig`\" pulumi-lang-go=\"`customRuntimeConfig`\" pulumi-lang-python=\"`custom_runtime_config`\" pulumi-lang-yaml=\"`customRuntimeConfig`\" pulumi-lang-java=\"`customRuntimeConfig`\"\u003e`custom_runtime_config`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"description of function.\n"},"diskSize":{"type":"integer","description":"The disk specification of the function. The unit is MB. The optional value is 512 MB or 10240MB.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variable set for the function can get the value of the environment variable in the function. For more information, see Environment Variables.\n"},"functionName":{"type":"string","description":"function name.\n","willReplaceOnChanges":true},"gpuMemorySize":{"type":"integer","description":"The GPU memory specification of the function, in MB, is a multiple of 1024MB.\n"},"handler":{"type":"string","description":"entry point of function.\n"},"initializationTimeout":{"type":"integer","description":"max running time of initializer.\n"},"initializer":{"type":"string","description":"initializer entry point of function.\n"},"instanceConcurrency":{"type":"integer","description":"The maximum concurrency allowed for a single function instance.\n"},"instanceLifecycleConfig":{"$ref":"#/types/alicloud:fc/V2FunctionInstanceLifecycleConfig:V2FunctionInstanceLifecycleConfig","description":"Instance lifecycle configuration. See \u003cspan pulumi-lang-nodejs=\"`instanceLifecycleConfig`\" pulumi-lang-dotnet=\"`InstanceLifecycleConfig`\" pulumi-lang-go=\"`instanceLifecycleConfig`\" pulumi-lang-python=\"`instance_lifecycle_config`\" pulumi-lang-yaml=\"`instanceLifecycleConfig`\" pulumi-lang-java=\"`instanceLifecycleConfig`\"\u003e`instance_lifecycle_config`\u003c/span\u003e below.\n"},"instanceType":{"type":"string","description":"The instance type of the function. Valid values:\n- **e1**: Elastic instance.\n- **c1**: performance instance.\n- **fc.gpu.tesla.1**: the T4 card type of the Tesla series of GPU instances.\n- **fc.gpu.ampere.1**: The Ampere series A10 card type of the GPU instance.\n- **g1**: Same as **fc.gpu.tesla.1**.\n"},"layers":{"type":"array","items":{"type":"string"},"description":"List of layers.\n\u003e **NOTE:**  Multiple layers will be merged in the order of array subscripts from large to small, and the contents of layers with small subscripts will overwrite the files with the same name of layers with large subscripts.\n"},"memorySize":{"type":"integer","description":"memory size needed by function.\n"},"runtime":{"type":"string","description":"runtime of function code.\n"},"serviceName":{"type":"string","description":"The name of the function Service.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"max running time of function.\n"}},"requiredInputs":["functionName","handler","runtime","serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering V2Function resources.\n","properties":{"caPort":{"type":"integer","description":"The listening port of the HTTP Server when the Custom Runtime or Custom Container is running.\n"},"code":{"$ref":"#/types/alicloud:fc/V2FunctionCode:V2FunctionCode","description":"Function Code ZIP package. code and customContainerConfig choose one. See \u003cspan pulumi-lang-nodejs=\"`code`\" pulumi-lang-dotnet=\"`Code`\" pulumi-lang-go=\"`code`\" pulumi-lang-python=\"`code`\" pulumi-lang-yaml=\"`code`\" pulumi-lang-java=\"`code`\"\u003e`code`\u003c/span\u003e below.\n"},"codeChecksum":{"type":"string","description":"crc64 of function code.\n"},"cpu":{"type":"number","description":"The CPU specification of the function. The unit is vCPU, which is a multiple of the 0.05 vCPU.\n"},"createTime":{"type":"string","description":"create time of function.\n"},"customContainerConfig":{"$ref":"#/types/alicloud:fc/V2FunctionCustomContainerConfig:V2FunctionCustomContainerConfig","description":"Custom-container runtime related function configuration. See \u003cspan pulumi-lang-nodejs=\"`customContainerConfig`\" pulumi-lang-dotnet=\"`CustomContainerConfig`\" pulumi-lang-go=\"`customContainerConfig`\" pulumi-lang-python=\"`custom_container_config`\" pulumi-lang-yaml=\"`customContainerConfig`\" pulumi-lang-java=\"`customContainerConfig`\"\u003e`custom_container_config`\u003c/span\u003e below.\n"},"customDns":{"$ref":"#/types/alicloud:fc/V2FunctionCustomDns:V2FunctionCustomDns","description":"Function custom DNS configuration. See \u003cspan pulumi-lang-nodejs=\"`customDns`\" pulumi-lang-dotnet=\"`CustomDns`\" pulumi-lang-go=\"`customDns`\" pulumi-lang-python=\"`custom_dns`\" pulumi-lang-yaml=\"`customDns`\" pulumi-lang-java=\"`customDns`\"\u003e`custom_dns`\u003c/span\u003e below.\n"},"customHealthCheckConfig":{"$ref":"#/types/alicloud:fc/V2FunctionCustomHealthCheckConfig:V2FunctionCustomHealthCheckConfig","description":"Custom runtime/container Custom health check configuration. See \u003cspan pulumi-lang-nodejs=\"`customHealthCheckConfig`\" pulumi-lang-dotnet=\"`CustomHealthCheckConfig`\" pulumi-lang-go=\"`customHealthCheckConfig`\" pulumi-lang-python=\"`custom_health_check_config`\" pulumi-lang-yaml=\"`customHealthCheckConfig`\" pulumi-lang-java=\"`customHealthCheckConfig`\"\u003e`custom_health_check_config`\u003c/span\u003e below.\n"},"customRuntimeConfig":{"$ref":"#/types/alicloud:fc/V2FunctionCustomRuntimeConfig:V2FunctionCustomRuntimeConfig","description":"Detailed configuration of Custom Runtime function. See \u003cspan pulumi-lang-nodejs=\"`customRuntimeConfig`\" pulumi-lang-dotnet=\"`CustomRuntimeConfig`\" pulumi-lang-go=\"`customRuntimeConfig`\" pulumi-lang-python=\"`custom_runtime_config`\" pulumi-lang-yaml=\"`customRuntimeConfig`\" pulumi-lang-java=\"`customRuntimeConfig`\"\u003e`custom_runtime_config`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"description of function.\n"},"diskSize":{"type":"integer","description":"The disk specification of the function. The unit is MB. The optional value is 512 MB or 10240MB.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variable set for the function can get the value of the environment variable in the function. For more information, see Environment Variables.\n"},"functionArn":{"type":"string","description":"The Function Compute service function arn. It formats as `acs:fc:\u003cregion\u003e:\u003cuid\u003e:services/\u003cserviceName\u003e.LATEST/functions/\u003cfunctionName\u003e`.\n"},"functionName":{"type":"string","description":"function name.\n","willReplaceOnChanges":true},"gpuMemorySize":{"type":"integer","description":"The GPU memory specification of the function, in MB, is a multiple of 1024MB.\n"},"handler":{"type":"string","description":"entry point of function.\n"},"initializationTimeout":{"type":"integer","description":"max running time of initializer.\n"},"initializer":{"type":"string","description":"initializer entry point of function.\n"},"instanceConcurrency":{"type":"integer","description":"The maximum concurrency allowed for a single function instance.\n"},"instanceLifecycleConfig":{"$ref":"#/types/alicloud:fc/V2FunctionInstanceLifecycleConfig:V2FunctionInstanceLifecycleConfig","description":"Instance lifecycle configuration. See \u003cspan pulumi-lang-nodejs=\"`instanceLifecycleConfig`\" pulumi-lang-dotnet=\"`InstanceLifecycleConfig`\" pulumi-lang-go=\"`instanceLifecycleConfig`\" pulumi-lang-python=\"`instance_lifecycle_config`\" pulumi-lang-yaml=\"`instanceLifecycleConfig`\" pulumi-lang-java=\"`instanceLifecycleConfig`\"\u003e`instance_lifecycle_config`\u003c/span\u003e below.\n"},"instanceType":{"type":"string","description":"The instance type of the function. Valid values:\n- **e1**: Elastic instance.\n- **c1**: performance instance.\n- **fc.gpu.tesla.1**: the T4 card type of the Tesla series of GPU instances.\n- **fc.gpu.ampere.1**: The Ampere series A10 card type of the GPU instance.\n- **g1**: Same as **fc.gpu.tesla.1**.\n"},"layers":{"type":"array","items":{"type":"string"},"description":"List of layers.\n\u003e **NOTE:**  Multiple layers will be merged in the order of array subscripts from large to small, and the contents of layers with small subscripts will overwrite the files with the same name of layers with large subscripts.\n"},"memorySize":{"type":"integer","description":"memory size needed by function.\n"},"runtime":{"type":"string","description":"runtime of function code.\n"},"serviceName":{"type":"string","description":"The name of the function Service.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"max running time of function.\n"}},"type":"object"}},"alicloud:fc/v3Alias:V3Alias":{"description":"Provides a FCV3 Alias resource.\n\nAlias for functions.\n\nFor information about FCV3 Alias and how to use it, see [What is Alias](https://www.alibabacloud.com/help/en/functioncompute/developer-reference/api-fc-2023-03-30-createalias).\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst functionName = config.get(\"functionName\") || \"flask-3xdg\";\nconst _default = new alicloud.fc.V3Alias(\"default\", {\n    versionId: \"1\",\n    functionName: functionName,\n    description: \"create alias\",\n    aliasName: name,\n    additionalVersionWeight: {\n        \"2\": 0.5,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nfunction_name = config.get(\"functionName\")\nif function_name is None:\n    function_name = \"flask-3xdg\"\ndefault = alicloud.fc.V3Alias(\"default\",\n    version_id=\"1\",\n    function_name=function_name,\n    description=\"create alias\",\n    alias_name=name,\n    additional_version_weight={\n        \"2\": 0.5,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var functionName = config.Get(\"functionName\") ?? \"flask-3xdg\";\n    var @default = new AliCloud.FC.V3Alias(\"default\", new()\n    {\n        VersionId = \"1\",\n        FunctionName = functionName,\n        Description = \"create alias\",\n        AliasName = name,\n        AdditionalVersionWeight = \n        {\n            { \"2\", 0.5 },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tfunctionName := \"flask-3xdg\"\n\t\tif param := cfg.Get(\"functionName\"); param != \"\" {\n\t\t\tfunctionName = param\n\t\t}\n\t\t_, err := fc.NewV3Alias(ctx, \"default\", \u0026fc.V3AliasArgs{\n\t\t\tVersionId:    pulumi.String(\"1\"),\n\t\t\tFunctionName: pulumi.String(functionName),\n\t\t\tDescription:  pulumi.String(\"create alias\"),\n\t\t\tAliasName:    pulumi.String(name),\n\t\t\tAdditionalVersionWeight: pulumi.Float64Map{\n\t\t\t\t\"2\": pulumi.Float64(0.5),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fc.V3Alias;\nimport com.pulumi.alicloud.fc.V3AliasArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var functionName = config.get(\"functionName\").orElse(\"flask-3xdg\");\n        var default_ = new V3Alias(\"default\", V3AliasArgs.builder()\n            .versionId(\"1\")\n            .functionName(functionName)\n            .description(\"create alias\")\n            .aliasName(name)\n            .additionalVersionWeight(Map.of(\"2\", 0.5))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  functionName:\n    type: string\n    default: flask-3xdg\nresources:\n  default:\n    type: alicloud:fc:V3Alias\n    properties:\n      versionId: '1'\n      functionName: ${functionName}\n      description: create alias\n      aliasName: ${name}\n      additionalVersionWeight:\n        '2': '0.5'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFCV3 Alias can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fc/v3Alias:V3Alias example \u003cfunction_name\u003e:\u003calias_name\u003e\n```\n\n","properties":{"additionalVersionWeight":{"type":"object","additionalProperties":{"type":"number"},"description":"Grayscale version\n"},"aliasName":{"type":"string","description":"Function Alias\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Description\n"},"functionName":{"type":"string","description":"Function Name\n"},"lastModifiedTime":{"type":"string","description":"(Available since v1.234.0) Last modification time\n"},"versionId":{"type":"string","description":"The version that the alias points\n"}},"required":["aliasName","createTime","functionName","lastModifiedTime"],"inputProperties":{"additionalVersionWeight":{"type":"object","additionalProperties":{"type":"number"},"description":"Grayscale version\n"},"aliasName":{"type":"string","description":"Function Alias\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description\n"},"functionName":{"type":"string","description":"Function Name\n","willReplaceOnChanges":true},"versionId":{"type":"string","description":"The version that the alias points\n"}},"requiredInputs":["functionName"],"stateInputs":{"description":"Input properties used for looking up and filtering V3Alias resources.\n","properties":{"additionalVersionWeight":{"type":"object","additionalProperties":{"type":"number"},"description":"Grayscale version\n"},"aliasName":{"type":"string","description":"Function Alias\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Description\n"},"functionName":{"type":"string","description":"Function Name\n","willReplaceOnChanges":true},"lastModifiedTime":{"type":"string","description":"(Available since v1.234.0) Last modification time\n"},"versionId":{"type":"string","description":"The version that the alias points\n"}},"type":"object"}},"alicloud:fc/v3AsyncInvokeConfig:V3AsyncInvokeConfig":{"description":"Provides a FCV3 Async Invoke Config resource.\n\nFunction Asynchronous Configuration.\n\nFor information about FCV3 Async Invoke Config and how to use it, see [What is Async Invoke Config](https://www.alibabacloud.com/help/en/functioncompute/developer-reference/api-fc-2023-03-30-getasyncinvokeconfig).\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst current = alicloud.getAccount({});\nconst _function = new alicloud.fc.V3Function(\"function\", {\n    memorySize: 512,\n    cpu: 0.5,\n    handler: \"index.Handler\",\n    code: {\n        zipFile: \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    functionName: name,\n    runtime: \"python3.9\",\n    diskSize: 512,\n    logConfig: {\n        logBeginRule: \"None\",\n    },\n});\nconst function1 = new alicloud.fc.V3Function(\"function1\", {\n    memorySize: 512,\n    cpu: 0.5,\n    handler: \"index.Handler\",\n    code: {\n        zipFile: \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    functionName: std.format({\n        input: \"%s_%s\",\n        args: [\n            name,\n            \"update1\",\n        ],\n    }).then(invoke =\u003e invoke.result),\n    runtime: \"python3.9\",\n    diskSize: 512,\n    logConfig: {\n        logBeginRule: \"None\",\n    },\n});\nconst function2 = new alicloud.fc.V3Function(\"function2\", {\n    memorySize: 512,\n    cpu: 0.5,\n    handler: \"index.Handler\",\n    code: {\n        zipFile: \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    functionName: std.format({\n        input: \"%s_%s\",\n        args: [\n            name,\n            \"update2\",\n        ],\n    }).then(invoke =\u003e invoke.result),\n    runtime: \"python3.9\",\n    diskSize: 512,\n    logConfig: {\n        logBeginRule: \"None\",\n    },\n});\nconst _default = new alicloud.fc.V3AsyncInvokeConfig(\"default\", {\n    maxAsyncRetryAttempts: 1,\n    maxAsyncEventAgeInSeconds: 1,\n    asyncTask: true,\n    functionName: _function.functionName,\n    destinationConfig: {\n        onFailure: {\n            destination: pulumi.all([current, function1.functionName]).apply(([current, functionName]) =\u003e `acs:fc:eu-central-1:${current.id}:functions/${functionName}`),\n        },\n        onSuccess: {\n            destination: pulumi.all([current, function1.functionName]).apply(([current, functionName]) =\u003e `acs:fc:eu-central-1:${current.id}:functions/${functionName}`),\n        },\n    },\n    qualifier: \"LATEST\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncurrent = alicloud.get_account()\nfunction = alicloud.fc.V3Function(\"function\",\n    memory_size=512,\n    cpu=0.5,\n    handler=\"index.Handler\",\n    code={\n        \"zip_file\": \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    function_name=name,\n    runtime=\"python3.9\",\n    disk_size=512,\n    log_config={\n        \"log_begin_rule\": \"None\",\n    })\nfunction1 = alicloud.fc.V3Function(\"function1\",\n    memory_size=512,\n    cpu=0.5,\n    handler=\"index.Handler\",\n    code={\n        \"zip_file\": \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    function_name=std.format(input=\"%s_%s\",\n        args=[\n            name,\n            \"update1\",\n        ]).result,\n    runtime=\"python3.9\",\n    disk_size=512,\n    log_config={\n        \"log_begin_rule\": \"None\",\n    })\nfunction2 = alicloud.fc.V3Function(\"function2\",\n    memory_size=512,\n    cpu=0.5,\n    handler=\"index.Handler\",\n    code={\n        \"zip_file\": \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    function_name=std.format(input=\"%s_%s\",\n        args=[\n            name,\n            \"update2\",\n        ]).result,\n    runtime=\"python3.9\",\n    disk_size=512,\n    log_config={\n        \"log_begin_rule\": \"None\",\n    })\ndefault = alicloud.fc.V3AsyncInvokeConfig(\"default\",\n    max_async_retry_attempts=1,\n    max_async_event_age_in_seconds=1,\n    async_task=True,\n    function_name=function.function_name,\n    destination_config={\n        \"on_failure\": {\n            \"destination\": function1.function_name.apply(lambda function_name: f\"acs:fc:eu-central-1:{current.id}:functions/{function_name}\"),\n        },\n        \"on_success\": {\n            \"destination\": function1.function_name.apply(lambda function_name: f\"acs:fc:eu-central-1:{current.id}:functions/{function_name}\"),\n        },\n    },\n    qualifier=\"LATEST\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var current = AliCloud.GetAccount.Invoke();\n\n    var function = new AliCloud.FC.V3Function(\"function\", new()\n    {\n        MemorySize = 512,\n        Cpu = 0.5,\n        Handler = \"index.Handler\",\n        Code = new AliCloud.FC.Inputs.V3FunctionCodeArgs\n        {\n            ZipFile = \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n        },\n        FunctionName = name,\n        Runtime = \"python3.9\",\n        DiskSize = 512,\n        LogConfig = new AliCloud.FC.Inputs.V3FunctionLogConfigArgs\n        {\n            LogBeginRule = \"None\",\n        },\n    });\n\n    var function1 = new AliCloud.FC.V3Function(\"function1\", new()\n    {\n        MemorySize = 512,\n        Cpu = 0.5,\n        Handler = \"index.Handler\",\n        Code = new AliCloud.FC.Inputs.V3FunctionCodeArgs\n        {\n            ZipFile = \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n        },\n        FunctionName = Std.Format.Invoke(new()\n        {\n            Input = \"%s_%s\",\n            Args = new[]\n            {\n                name,\n                \"update1\",\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        Runtime = \"python3.9\",\n        DiskSize = 512,\n        LogConfig = new AliCloud.FC.Inputs.V3FunctionLogConfigArgs\n        {\n            LogBeginRule = \"None\",\n        },\n    });\n\n    var function2 = new AliCloud.FC.V3Function(\"function2\", new()\n    {\n        MemorySize = 512,\n        Cpu = 0.5,\n        Handler = \"index.Handler\",\n        Code = new AliCloud.FC.Inputs.V3FunctionCodeArgs\n        {\n            ZipFile = \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n        },\n        FunctionName = Std.Format.Invoke(new()\n        {\n            Input = \"%s_%s\",\n            Args = new[]\n            {\n                name,\n                \"update2\",\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        Runtime = \"python3.9\",\n        DiskSize = 512,\n        LogConfig = new AliCloud.FC.Inputs.V3FunctionLogConfigArgs\n        {\n            LogBeginRule = \"None\",\n        },\n    });\n\n    var @default = new AliCloud.FC.V3AsyncInvokeConfig(\"default\", new()\n    {\n        MaxAsyncRetryAttempts = 1,\n        MaxAsyncEventAgeInSeconds = 1,\n        AsyncTask = true,\n        FunctionName = function.FunctionName,\n        DestinationConfig = new AliCloud.FC.Inputs.V3AsyncInvokeConfigDestinationConfigArgs\n        {\n            OnFailure = new AliCloud.FC.Inputs.V3AsyncInvokeConfigDestinationConfigOnFailureArgs\n            {\n                Destination = Output.Tuple(current, function1.FunctionName).Apply(values =\u003e\n                {\n                    var current = values.Item1;\n                    var functionName = values.Item2;\n                    return $\"acs:fc:eu-central-1:{current.Apply(getAccountResult =\u003e getAccountResult.Id)}:functions/{functionName}\";\n                }),\n            },\n            OnSuccess = new AliCloud.FC.Inputs.V3AsyncInvokeConfigDestinationConfigOnSuccessArgs\n            {\n                Destination = Output.Tuple(current, function1.FunctionName).Apply(values =\u003e\n                {\n                    var current = values.Item1;\n                    var functionName = values.Item2;\n                    return $\"acs:fc:eu-central-1:{current.Apply(getAccountResult =\u003e getAccountResult.Id)}:functions/{functionName}\";\n                }),\n            },\n        },\n        Qualifier = \"LATEST\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcurrent, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfunction, err := fc.NewV3Function(ctx, \"function\", \u0026fc.V3FunctionArgs{\n\t\t\tMemorySize: pulumi.Int(512),\n\t\t\tCpu:        pulumi.Float64(0.5),\n\t\t\tHandler:    pulumi.String(\"index.Handler\"),\n\t\t\tCode: \u0026fc.V3FunctionCodeArgs{\n\t\t\t\tZipFile: pulumi.String(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\"),\n\t\t\t},\n\t\t\tFunctionName: pulumi.String(name),\n\t\t\tRuntime:      pulumi.String(\"python3.9\"),\n\t\t\tDiskSize:     pulumi.Int(512),\n\t\t\tLogConfig: \u0026fc.V3FunctionLogConfigArgs{\n\t\t\t\tLogBeginRule: pulumi.String(\"None\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s_%s\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t\t\"update1\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfunction1, err := fc.NewV3Function(ctx, \"function1\", \u0026fc.V3FunctionArgs{\n\t\t\tMemorySize: pulumi.Int(512),\n\t\t\tCpu:        pulumi.Float64(0.5),\n\t\t\tHandler:    pulumi.String(\"index.Handler\"),\n\t\t\tCode: \u0026fc.V3FunctionCodeArgs{\n\t\t\t\tZipFile: pulumi.String(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\"),\n\t\t\t},\n\t\t\tFunctionName: pulumi.String(invokeFormat.Result),\n\t\t\tRuntime:      pulumi.String(\"python3.9\"),\n\t\t\tDiskSize:     pulumi.Int(512),\n\t\t\tLogConfig: \u0026fc.V3FunctionLogConfigArgs{\n\t\t\t\tLogBeginRule: pulumi.String(\"None\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s_%s\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t\t\"update2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fc.NewV3Function(ctx, \"function2\", \u0026fc.V3FunctionArgs{\n\t\t\tMemorySize: pulumi.Int(512),\n\t\t\tCpu:        pulumi.Float64(0.5),\n\t\t\tHandler:    pulumi.String(\"index.Handler\"),\n\t\t\tCode: \u0026fc.V3FunctionCodeArgs{\n\t\t\t\tZipFile: pulumi.String(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\"),\n\t\t\t},\n\t\t\tFunctionName: pulumi.String(invokeFormat1.Result),\n\t\t\tRuntime:      pulumi.String(\"python3.9\"),\n\t\t\tDiskSize:     pulumi.Int(512),\n\t\t\tLogConfig: \u0026fc.V3FunctionLogConfigArgs{\n\t\t\t\tLogBeginRule: pulumi.String(\"None\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fc.NewV3AsyncInvokeConfig(ctx, \"default\", \u0026fc.V3AsyncInvokeConfigArgs{\n\t\t\tMaxAsyncRetryAttempts:     pulumi.Int(1),\n\t\t\tMaxAsyncEventAgeInSeconds: pulumi.Int(1),\n\t\t\tAsyncTask:                 pulumi.Bool(true),\n\t\t\tFunctionName:              function.FunctionName,\n\t\t\tDestinationConfig: \u0026fc.V3AsyncInvokeConfigDestinationConfigArgs{\n\t\t\t\tOnFailure: \u0026fc.V3AsyncInvokeConfigDestinationConfigOnFailureArgs{\n\t\t\t\t\tDestination: function1.FunctionName.ApplyT(func(functionName string) (string, error) {\n\t\t\t\t\t\treturn fmt.Sprintf(\"acs:fc:eu-central-1:%v:functions/%v\", current.Id, functionName), nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t},\n\t\t\t\tOnSuccess: \u0026fc.V3AsyncInvokeConfigDestinationConfigOnSuccessArgs{\n\t\t\t\t\tDestination: function1.FunctionName.ApplyT(func(functionName string) (string, error) {\n\t\t\t\t\t\treturn fmt.Sprintf(\"acs:fc:eu-central-1:%v:functions/%v\", current.Id, functionName), nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t},\n\t\t\t},\n\t\t\tQualifier: pulumi.String(\"LATEST\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.fc.V3Function;\nimport com.pulumi.alicloud.fc.V3FunctionArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionCodeArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionLogConfigArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.fc.V3AsyncInvokeConfig;\nimport com.pulumi.alicloud.fc.V3AsyncInvokeConfigArgs;\nimport com.pulumi.alicloud.fc.inputs.V3AsyncInvokeConfigDestinationConfigArgs;\nimport com.pulumi.alicloud.fc.inputs.V3AsyncInvokeConfigDestinationConfigOnFailureArgs;\nimport com.pulumi.alicloud.fc.inputs.V3AsyncInvokeConfigDestinationConfigOnSuccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var current = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var function = new V3Function(\"function\", V3FunctionArgs.builder()\n            .memorySize(512)\n            .cpu(0.5)\n            .handler(\"index.Handler\")\n            .code(V3FunctionCodeArgs.builder()\n                .zipFile(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\")\n                .build())\n            .functionName(name)\n            .runtime(\"python3.9\")\n            .diskSize(512)\n            .logConfig(V3FunctionLogConfigArgs.builder()\n                .logBeginRule(\"None\")\n                .build())\n            .build());\n\n        var function1 = new V3Function(\"function1\", V3FunctionArgs.builder()\n            .memorySize(512)\n            .cpu(0.5)\n            .handler(\"index.Handler\")\n            .code(V3FunctionCodeArgs.builder()\n                .zipFile(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\")\n                .build())\n            .functionName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s_%s\")\n                .args(                \n                    name,\n                    \"update1\")\n                .build()).result())\n            .runtime(\"python3.9\")\n            .diskSize(512)\n            .logConfig(V3FunctionLogConfigArgs.builder()\n                .logBeginRule(\"None\")\n                .build())\n            .build());\n\n        var function2 = new V3Function(\"function2\", V3FunctionArgs.builder()\n            .memorySize(512)\n            .cpu(0.5)\n            .handler(\"index.Handler\")\n            .code(V3FunctionCodeArgs.builder()\n                .zipFile(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\")\n                .build())\n            .functionName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s_%s\")\n                .args(                \n                    name,\n                    \"update2\")\n                .build()).result())\n            .runtime(\"python3.9\")\n            .diskSize(512)\n            .logConfig(V3FunctionLogConfigArgs.builder()\n                .logBeginRule(\"None\")\n                .build())\n            .build());\n\n        var default_ = new V3AsyncInvokeConfig(\"default\", V3AsyncInvokeConfigArgs.builder()\n            .maxAsyncRetryAttempts(1)\n            .maxAsyncEventAgeInSeconds(1)\n            .asyncTask(true)\n            .functionName(function.functionName())\n            .destinationConfig(V3AsyncInvokeConfigDestinationConfigArgs.builder()\n                .onFailure(V3AsyncInvokeConfigDestinationConfigOnFailureArgs.builder()\n                    .destination(function1.functionName().applyValue(_functionName -\u003e String.format(\"acs:fc:eu-central-1:%s:functions/%s\", current.id(),_functionName)))\n                    .build())\n                .onSuccess(V3AsyncInvokeConfigDestinationConfigOnSuccessArgs.builder()\n                    .destination(function1.functionName().applyValue(_functionName -\u003e String.format(\"acs:fc:eu-central-1:%s:functions/%s\", current.id(),_functionName)))\n                    .build())\n                .build())\n            .qualifier(\"LATEST\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  function:\n    type: alicloud:fc:V3Function\n    properties:\n      memorySize: '512'\n      cpu: 0.5\n      handler: index.Handler\n      code:\n        zipFile: UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\n      functionName: ${name}\n      runtime: python3.9\n      diskSize: '512'\n      logConfig:\n        logBeginRule: None\n  function1:\n    type: alicloud:fc:V3Function\n    properties:\n      memorySize: '512'\n      cpu: 0.5\n      handler: index.Handler\n      code:\n        zipFile: UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\n      functionName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s_%s'\n            args:\n              - ${name}\n              - update1\n          return: result\n      runtime: python3.9\n      diskSize: '512'\n      logConfig:\n        logBeginRule: None\n  function2:\n    type: alicloud:fc:V3Function\n    properties:\n      memorySize: '512'\n      cpu: 0.5\n      handler: index.Handler\n      code:\n        zipFile: UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\n      functionName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s_%s'\n            args:\n              - ${name}\n              - update2\n          return: result\n      runtime: python3.9\n      diskSize: '512'\n      logConfig:\n        logBeginRule: None\n  default:\n    type: alicloud:fc:V3AsyncInvokeConfig\n    properties:\n      maxAsyncRetryAttempts: '1'\n      maxAsyncEventAgeInSeconds: '1'\n      asyncTask: 'true'\n      functionName: ${function.functionName}\n      destinationConfig:\n        onFailure:\n          destination: acs:fc:eu-central-1:${current.id}:functions/${function1.functionName}\n        onSuccess:\n          destination: acs:fc:eu-central-1:${current.id}:functions/${function1.functionName}\n      qualifier: LATEST\nvariables:\n  current:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFCV3 Async Invoke Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fc/v3AsyncInvokeConfig:V3AsyncInvokeConfig example \u003cid\u003e\n```\n\n","properties":{"asyncTask":{"type":"boolean","description":"Whether to enable an asynchronous task\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"destinationConfig":{"$ref":"#/types/alicloud:fc/V3AsyncInvokeConfigDestinationConfig:V3AsyncInvokeConfigDestinationConfig","description":"Target Configuration See \u003cspan pulumi-lang-nodejs=\"`destinationConfig`\" pulumi-lang-dotnet=\"`DestinationConfig`\" pulumi-lang-go=\"`destinationConfig`\" pulumi-lang-python=\"`destination_config`\" pulumi-lang-yaml=\"`destinationConfig`\" pulumi-lang-java=\"`destinationConfig`\"\u003e`destination_config`\u003c/span\u003e below.\n"},"functionArn":{"type":"string","description":"(Available since v1.234.0) Function resource identification\n"},"functionName":{"type":"string","description":"Function Name\n"},"lastModifiedTime":{"type":"string","description":"(Available since v1.234.0) Last modification time\n"},"maxAsyncEventAgeInSeconds":{"type":"integer","description":"Event maximum survival time\n"},"maxAsyncRetryAttempts":{"type":"integer","description":"Number of Asynchronous call retries\n"},"qualifier":{"type":"string","description":"Function version or alias\n"}},"required":["createTime","functionArn","functionName","lastModifiedTime"],"inputProperties":{"asyncTask":{"type":"boolean","description":"Whether to enable an asynchronous task\n"},"destinationConfig":{"$ref":"#/types/alicloud:fc/V3AsyncInvokeConfigDestinationConfig:V3AsyncInvokeConfigDestinationConfig","description":"Target Configuration See \u003cspan pulumi-lang-nodejs=\"`destinationConfig`\" pulumi-lang-dotnet=\"`DestinationConfig`\" pulumi-lang-go=\"`destinationConfig`\" pulumi-lang-python=\"`destination_config`\" pulumi-lang-yaml=\"`destinationConfig`\" pulumi-lang-java=\"`destinationConfig`\"\u003e`destination_config`\u003c/span\u003e below.\n"},"functionName":{"type":"string","description":"Function Name\n","willReplaceOnChanges":true},"maxAsyncEventAgeInSeconds":{"type":"integer","description":"Event maximum survival time\n"},"maxAsyncRetryAttempts":{"type":"integer","description":"Number of Asynchronous call retries\n"},"qualifier":{"type":"string","description":"Function version or alias\n"}},"requiredInputs":["functionName"],"stateInputs":{"description":"Input properties used for looking up and filtering V3AsyncInvokeConfig resources.\n","properties":{"asyncTask":{"type":"boolean","description":"Whether to enable an asynchronous task\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"destinationConfig":{"$ref":"#/types/alicloud:fc/V3AsyncInvokeConfigDestinationConfig:V3AsyncInvokeConfigDestinationConfig","description":"Target Configuration See \u003cspan pulumi-lang-nodejs=\"`destinationConfig`\" pulumi-lang-dotnet=\"`DestinationConfig`\" pulumi-lang-go=\"`destinationConfig`\" pulumi-lang-python=\"`destination_config`\" pulumi-lang-yaml=\"`destinationConfig`\" pulumi-lang-java=\"`destinationConfig`\"\u003e`destination_config`\u003c/span\u003e below.\n"},"functionArn":{"type":"string","description":"(Available since v1.234.0) Function resource identification\n"},"functionName":{"type":"string","description":"Function Name\n","willReplaceOnChanges":true},"lastModifiedTime":{"type":"string","description":"(Available since v1.234.0) Last modification time\n"},"maxAsyncEventAgeInSeconds":{"type":"integer","description":"Event maximum survival time\n"},"maxAsyncRetryAttempts":{"type":"integer","description":"Number of Asynchronous call retries\n"},"qualifier":{"type":"string","description":"Function version or alias\n"}},"type":"object"}},"alicloud:fc/v3ConcurrencyConfig:V3ConcurrencyConfig":{"description":"Provides a FCV3 Concurrency Config resource.\n\nFunction concurrency configuration.\n\nFor information about FCV3 Concurrency Config and how to use it, see [What is Concurrency Config](https://www.alibabacloud.com/help/en/functioncompute/developer-reference/api-fc-2023-03-30-putconcurrencyconfig).\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _function = new alicloud.fc.V3Function(\"function\", {\n    memorySize: 512,\n    cpu: 0.5,\n    handler: \"index.Handler\",\n    code: {\n        zipFile: \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    functionName: name,\n    runtime: \"python3.9\",\n    diskSize: 512,\n    logConfig: {\n        logBeginRule: \"None\",\n    },\n});\nconst _default = new alicloud.fc.V3ConcurrencyConfig(\"default\", {\n    functionName: _function.functionName,\n    reservedConcurrency: 100,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nfunction = alicloud.fc.V3Function(\"function\",\n    memory_size=512,\n    cpu=0.5,\n    handler=\"index.Handler\",\n    code={\n        \"zip_file\": \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    function_name=name,\n    runtime=\"python3.9\",\n    disk_size=512,\n    log_config={\n        \"log_begin_rule\": \"None\",\n    })\ndefault = alicloud.fc.V3ConcurrencyConfig(\"default\",\n    function_name=function.function_name,\n    reserved_concurrency=100)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var function = new AliCloud.FC.V3Function(\"function\", new()\n    {\n        MemorySize = 512,\n        Cpu = 0.5,\n        Handler = \"index.Handler\",\n        Code = new AliCloud.FC.Inputs.V3FunctionCodeArgs\n        {\n            ZipFile = \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n        },\n        FunctionName = name,\n        Runtime = \"python3.9\",\n        DiskSize = 512,\n        LogConfig = new AliCloud.FC.Inputs.V3FunctionLogConfigArgs\n        {\n            LogBeginRule = \"None\",\n        },\n    });\n\n    var @default = new AliCloud.FC.V3ConcurrencyConfig(\"default\", new()\n    {\n        FunctionName = function.FunctionName,\n        ReservedConcurrency = 100,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tfunction, err := fc.NewV3Function(ctx, \"function\", \u0026fc.V3FunctionArgs{\n\t\t\tMemorySize: pulumi.Int(512),\n\t\t\tCpu:        pulumi.Float64(0.5),\n\t\t\tHandler:    pulumi.String(\"index.Handler\"),\n\t\t\tCode: \u0026fc.V3FunctionCodeArgs{\n\t\t\t\tZipFile: pulumi.String(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\"),\n\t\t\t},\n\t\t\tFunctionName: pulumi.String(name),\n\t\t\tRuntime:      pulumi.String(\"python3.9\"),\n\t\t\tDiskSize:     pulumi.Int(512),\n\t\t\tLogConfig: \u0026fc.V3FunctionLogConfigArgs{\n\t\t\t\tLogBeginRule: pulumi.String(\"None\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fc.NewV3ConcurrencyConfig(ctx, \"default\", \u0026fc.V3ConcurrencyConfigArgs{\n\t\t\tFunctionName:        function.FunctionName,\n\t\t\tReservedConcurrency: pulumi.Int(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fc.V3Function;\nimport com.pulumi.alicloud.fc.V3FunctionArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionCodeArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionLogConfigArgs;\nimport com.pulumi.alicloud.fc.V3ConcurrencyConfig;\nimport com.pulumi.alicloud.fc.V3ConcurrencyConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var function = new V3Function(\"function\", V3FunctionArgs.builder()\n            .memorySize(512)\n            .cpu(0.5)\n            .handler(\"index.Handler\")\n            .code(V3FunctionCodeArgs.builder()\n                .zipFile(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\")\n                .build())\n            .functionName(name)\n            .runtime(\"python3.9\")\n            .diskSize(512)\n            .logConfig(V3FunctionLogConfigArgs.builder()\n                .logBeginRule(\"None\")\n                .build())\n            .build());\n\n        var default_ = new V3ConcurrencyConfig(\"default\", V3ConcurrencyConfigArgs.builder()\n            .functionName(function.functionName())\n            .reservedConcurrency(100)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  function:\n    type: alicloud:fc:V3Function\n    properties:\n      memorySize: '512'\n      cpu: 0.5\n      handler: index.Handler\n      code:\n        zipFile: UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\n      functionName: ${name}\n      runtime: python3.9\n      diskSize: '512'\n      logConfig:\n        logBeginRule: None\n  default:\n    type: alicloud:fc:V3ConcurrencyConfig\n    properties:\n      functionName: ${function.functionName}\n      reservedConcurrency: '100'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFCV3 Concurrency Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fc/v3ConcurrencyConfig:V3ConcurrencyConfig example \u003cid\u003e\n```\n\n","properties":{"functionArn":{"type":"string","description":"(Available since v1.234.0) Resource identity of the function\n"},"functionName":{"type":"string","description":"Function Name\n"},"reservedConcurrency":{"type":"integer","description":"Reserved Concurrency. Functions reserve a part of account concurrency. Other functions cannot use this part of concurrency. Reserved concurrency includes the total concurrency of Reserved Instances and As-You-go instances.\n"}},"required":["functionArn","functionName"],"inputProperties":{"functionName":{"type":"string","description":"Function Name\n","willReplaceOnChanges":true},"reservedConcurrency":{"type":"integer","description":"Reserved Concurrency. Functions reserve a part of account concurrency. Other functions cannot use this part of concurrency. Reserved concurrency includes the total concurrency of Reserved Instances and As-You-go instances.\n"}},"requiredInputs":["functionName"],"stateInputs":{"description":"Input properties used for looking up and filtering V3ConcurrencyConfig resources.\n","properties":{"functionArn":{"type":"string","description":"(Available since v1.234.0) Resource identity of the function\n"},"functionName":{"type":"string","description":"Function Name\n","willReplaceOnChanges":true},"reservedConcurrency":{"type":"integer","description":"Reserved Concurrency. Functions reserve a part of account concurrency. Other functions cannot use this part of concurrency. Reserved concurrency includes the total concurrency of Reserved Instances and As-You-go instances.\n"}},"type":"object"}},"alicloud:fc/v3CustomDomain:V3CustomDomain":{"description":"Provides a Function Compute Service V3 (FCV3) Custom Domain resource.\n\nCustom Domain names allow users to access FC functions through custom domain names, providing convenience for building Web services using function compute.\nYou can bind a custom domain name to Function Compute and set different paths to different functions of different services.\n\nFor information about Function Compute Service V3 (FCV3) Custom Domain and how to use it, see [What is Custom Domain](https://www.alibabacloud.com/help/en/functioncompute/developer-reference/api-fc-2023-03-30-getcustomdomain).\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"flask-07ap.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net\";\nconst functionName1 = config.get(\"functionName1\") || \"terraform-custom-domain-t1\";\nconst authConfig = config.get(\"authConfig\") || `{\n    \"jwks\": {\n        \"keys\": [\n            {\n                \"p\": \"8AdUVeldoE4LueFuzEF_C8tvJ7NhlkzS58Gz9KJTPXPr5DADSUVLWJCr5OdFE79q513SneT0UhGo-JfQ1lNMoNv5-YZ1AxIo9fZUEPIe-KyX9ttaglpzCAUE3TeKdm5J-_HZQzBPKbyUwJHAILNgB2-4IBZZwK7LAfbmfi9TmFM\",\n                \"kty\": \"RSA\",\n                \"q\": \"x8m5ydXwC8AAp9I-hOnUAx6yQJz1Nx-jXPCfn--XdHpJuNcuwRQsuUCSRQs_h3SoCI3qZZdzswQnPrtHFxgUJtQFuMj-QZpyMnebDb81rmczl2KPVUtaVDVagJEF6U9Ov3PfrLhvHUEv5u7p6s4Z6maBUaByfFlhEVPv4_ao8Us\",\n                \"d\": \"bjIQAKD2e65gwJ38_Sqq_EmLFuMMey3gjDv1bSCHFH8fyONJTq-utrZfvspz6EegRwW2mSHW9kq87hRwIBW9y7ED5N4KG5gHDjyh57BRE0SKv0Dz1igtKLyp-nl8-aHc1DbONwr1d7tZfFt255TxIN8cPTakXOp2Av_ztql_JotVUGK8eHmXNJFlvq5tc180sKWMHNSNsCUhQgcB1TWb_gwcqxdsIWPsLZI491XKeTGQ98J7z5h6R1cTC97lfJZ0vNtJahd2jHd3WfTUDj5-untMKyZpYYak2Vr8xtFz8H6Q5Rsz8uX_7gtEqYH2CMjPdbXcebrnD1igRSJMYiP0lQ\",\n                \"e\": \"AQAB\",\n                \"use\": \"sig\",\n                \"qi\": \"MTCCRu8AcvvjbHms7V_sDFO7wX0YNyvOJAAbuTmHvQbJ0NDeDta-f-hi8cjkMk7Fpk2hej158E5gDyO62UG99wHZSbmHT34MvIdmhQ5mnbL-5KK9rxde0nayO1ebGepD_GJThPAg9iskzeWpCg5X2etNo2bHoG_ZLQGXj2BQ1VM\",\n                \"dp\": \"J4_ttKNcTTnP8PlZO81n1VfYoGCOqylKceyZbq76rVxX-yp2wDLtslFWI8qCtjiMtEnglynPo19JzH-pakocjT70us4Qp0rs-W16ebiOpko8WfHZvzaNUzsQjC3FYrPW-fHo74wc4DI3Cm57jmhCYbdmT9OfQ4UL7Oz3HMFMNAU\",\n                \"alg\": \"RS256\",\n                \"dq\": \"H4-VgvYB-sk1EU3cRIDv1iJWRHDHKBMeaoM0pD5kLalX1hRgNW4rdoRl1vRk79AU720D11Kqm2APlxBctaA_JrcdxEg0KkbsvV45p11KbKeu9b5DKFVECsN27ZJ7XZUCuqnibtWf7_4pRBD_8PDoFShmS2_ORiiUdflNjzSbEas\",\n                \"n\": \"u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ\"\n            }\n        ]\n    },\n    \"tokenLookup\": \"header:auth\",\n    \"claimPassBy\": \"header:name:name\"\n}\n`;\nconst certificate = config.get(\"certificate\") || `-----BEGIN CERTIFICATE-----\nMIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\nBAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\nMA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\nZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\ndjELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\nChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\nAoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\ncoG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\nKOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\nHQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n+OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\nQkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\nMAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\nAJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\ncQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\nOfi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\nDUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n-----END CERTIFICATE-----\n`;\nconst privateKey = config.get(\"privateKey\") || `-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV\nkg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM\nywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB\nAoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd\n6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP\nhwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4\nMdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz\n71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm\nEv9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE\nqygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8\n9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM\nzWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe\nDrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=\n-----END RSA PRIVATE KEY-----\n`;\nconst _default = new alicloud.fc.V3CustomDomain(\"default\", {\n    customDomainName: name,\n    routeConfig: {\n        routes: [\n            {\n                functionName: functionName1,\n                rewriteConfig: {\n                    regexRules: [\n                        {\n                            match: \"/api/*\",\n                            replacement: \"$1\",\n                        },\n                        {\n                            match: \"/api1/*\",\n                            replacement: \"$1\",\n                        },\n                        {\n                            match: \"/api2/*\",\n                            replacement: \"$1\",\n                        },\n                    ],\n                    wildcardRules: [\n                        {\n                            match: \"^/api1/.+?/(.*)\",\n                            replacement: \"/api/v1/$1\",\n                        },\n                        {\n                            match: \"^/api2/.+?/(.*)\",\n                            replacement: \"/api/v2/$1\",\n                        },\n                        {\n                            match: \"^/api2/.+?/(.*)\",\n                            replacement: \"/api/v3/$1\",\n                        },\n                    ],\n                    equalRules: [\n                        {\n                            match: \"/old\",\n                            replacement: \"/new\",\n                        },\n                        {\n                            replacement: \"/new1\",\n                            match: \"/old1\",\n                        },\n                        {\n                            match: \"/old2\",\n                            replacement: \"/new2\",\n                        },\n                    ],\n                },\n                methods: [\n                    \"GET\",\n                    \"POST\",\n                    \"DELETE\",\n                    \"HEAD\",\n                ],\n                path: \"/a\",\n                qualifier: \"LATEST\",\n            },\n            {\n                functionName: functionName1,\n                methods: [\"GET\"],\n                path: \"/b\",\n                qualifier: \"LATEST\",\n            },\n            {\n                functionName: functionName1,\n                methods: [\"POST\"],\n                path: \"/c\",\n                qualifier: \"1\",\n            },\n        ],\n    },\n    authConfig: {\n        authType: \"jwt\",\n        authInfo: authConfig,\n    },\n    protocol: \"HTTP,HTTPS\",\n    certConfig: {\n        certName: \"cert-name\",\n        certificate: certificate,\n        privateKey: privateKey,\n    },\n    tlsConfig: {\n        cipherSuites: [\n            \"TLS_RSA_WITH_AES_128_CBC_SHA\",\n            \"TLS_RSA_WITH_AES_256_CBC_SHA\",\n            \"TLS_RSA_WITH_AES_128_GCM_SHA256\",\n            \"TLS_RSA_WITH_AES_256_GCM_SHA384\",\n        ],\n        maxVersion: \"TLSv1.3\",\n        minVersion: \"TLSv1.0\",\n    },\n    wafConfig: {\n        enableWaf: false,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"flask-07ap.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net\"\nfunction_name1 = config.get(\"functionName1\")\nif function_name1 is None:\n    function_name1 = \"terraform-custom-domain-t1\"\nauth_config = config.get(\"authConfig\")\nif auth_config is None:\n    auth_config = \"\"\"{\n    \"jwks\": {\n        \"keys\": [\n            {\n                \"p\": \"8AdUVeldoE4LueFuzEF_C8tvJ7NhlkzS58Gz9KJTPXPr5DADSUVLWJCr5OdFE79q513SneT0UhGo-JfQ1lNMoNv5-YZ1AxIo9fZUEPIe-KyX9ttaglpzCAUE3TeKdm5J-_HZQzBPKbyUwJHAILNgB2-4IBZZwK7LAfbmfi9TmFM\",\n                \"kty\": \"RSA\",\n                \"q\": \"x8m5ydXwC8AAp9I-hOnUAx6yQJz1Nx-jXPCfn--XdHpJuNcuwRQsuUCSRQs_h3SoCI3qZZdzswQnPrtHFxgUJtQFuMj-QZpyMnebDb81rmczl2KPVUtaVDVagJEF6U9Ov3PfrLhvHUEv5u7p6s4Z6maBUaByfFlhEVPv4_ao8Us\",\n                \"d\": \"bjIQAKD2e65gwJ38_Sqq_EmLFuMMey3gjDv1bSCHFH8fyONJTq-utrZfvspz6EegRwW2mSHW9kq87hRwIBW9y7ED5N4KG5gHDjyh57BRE0SKv0Dz1igtKLyp-nl8-aHc1DbONwr1d7tZfFt255TxIN8cPTakXOp2Av_ztql_JotVUGK8eHmXNJFlvq5tc180sKWMHNSNsCUhQgcB1TWb_gwcqxdsIWPsLZI491XKeTGQ98J7z5h6R1cTC97lfJZ0vNtJahd2jHd3WfTUDj5-untMKyZpYYak2Vr8xtFz8H6Q5Rsz8uX_7gtEqYH2CMjPdbXcebrnD1igRSJMYiP0lQ\",\n                \"e\": \"AQAB\",\n                \"use\": \"sig\",\n                \"qi\": \"MTCCRu8AcvvjbHms7V_sDFO7wX0YNyvOJAAbuTmHvQbJ0NDeDta-f-hi8cjkMk7Fpk2hej158E5gDyO62UG99wHZSbmHT34MvIdmhQ5mnbL-5KK9rxde0nayO1ebGepD_GJThPAg9iskzeWpCg5X2etNo2bHoG_ZLQGXj2BQ1VM\",\n                \"dp\": \"J4_ttKNcTTnP8PlZO81n1VfYoGCOqylKceyZbq76rVxX-yp2wDLtslFWI8qCtjiMtEnglynPo19JzH-pakocjT70us4Qp0rs-W16ebiOpko8WfHZvzaNUzsQjC3FYrPW-fHo74wc4DI3Cm57jmhCYbdmT9OfQ4UL7Oz3HMFMNAU\",\n                \"alg\": \"RS256\",\n                \"dq\": \"H4-VgvYB-sk1EU3cRIDv1iJWRHDHKBMeaoM0pD5kLalX1hRgNW4rdoRl1vRk79AU720D11Kqm2APlxBctaA_JrcdxEg0KkbsvV45p11KbKeu9b5DKFVECsN27ZJ7XZUCuqnibtWf7_4pRBD_8PDoFShmS2_ORiiUdflNjzSbEas\",\n                \"n\": \"u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ\"\n            }\n        ]\n    },\n    \"tokenLookup\": \"header:auth\",\n    \"claimPassBy\": \"header:name:name\"\n}\n\"\"\"\ncertificate = config.get(\"certificate\")\nif certificate is None:\n    certificate = \"\"\"-----BEGIN CERTIFICATE-----\nMIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\nBAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\nMA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\nZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\ndjELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\nChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\nAoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\ncoG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\nKOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\nHQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n+OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\nQkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\nMAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\nAJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\ncQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\nOfi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\nDUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n-----END CERTIFICATE-----\n\"\"\"\nprivate_key = config.get(\"privateKey\")\nif private_key is None:\n    private_key = \"\"\"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV\nkg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM\nywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB\nAoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd\n6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP\nhwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4\nMdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz\n71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm\nEv9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE\nqygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8\n9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM\nzWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe\nDrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=\n-----END RSA PRIVATE KEY-----\n\"\"\"\ndefault = alicloud.fc.V3CustomDomain(\"default\",\n    custom_domain_name=name,\n    route_config={\n        \"routes\": [\n            {\n                \"function_name\": function_name1,\n                \"rewrite_config\": {\n                    \"regex_rules\": [\n                        {\n                            \"match\": \"/api/*\",\n                            \"replacement\": \"$1\",\n                        },\n                        {\n                            \"match\": \"/api1/*\",\n                            \"replacement\": \"$1\",\n                        },\n                        {\n                            \"match\": \"/api2/*\",\n                            \"replacement\": \"$1\",\n                        },\n                    ],\n                    \"wildcard_rules\": [\n                        {\n                            \"match\": \"^/api1/.+?/(.*)\",\n                            \"replacement\": \"/api/v1/$1\",\n                        },\n                        {\n                            \"match\": \"^/api2/.+?/(.*)\",\n                            \"replacement\": \"/api/v2/$1\",\n                        },\n                        {\n                            \"match\": \"^/api2/.+?/(.*)\",\n                            \"replacement\": \"/api/v3/$1\",\n                        },\n                    ],\n                    \"equal_rules\": [\n                        {\n                            \"match\": \"/old\",\n                            \"replacement\": \"/new\",\n                        },\n                        {\n                            \"replacement\": \"/new1\",\n                            \"match\": \"/old1\",\n                        },\n                        {\n                            \"match\": \"/old2\",\n                            \"replacement\": \"/new2\",\n                        },\n                    ],\n                },\n                \"methods\": [\n                    \"GET\",\n                    \"POST\",\n                    \"DELETE\",\n                    \"HEAD\",\n                ],\n                \"path\": \"/a\",\n                \"qualifier\": \"LATEST\",\n            },\n            {\n                \"function_name\": function_name1,\n                \"methods\": [\"GET\"],\n                \"path\": \"/b\",\n                \"qualifier\": \"LATEST\",\n            },\n            {\n                \"function_name\": function_name1,\n                \"methods\": [\"POST\"],\n                \"path\": \"/c\",\n                \"qualifier\": \"1\",\n            },\n        ],\n    },\n    auth_config={\n        \"auth_type\": \"jwt\",\n        \"auth_info\": auth_config,\n    },\n    protocol=\"HTTP,HTTPS\",\n    cert_config={\n        \"cert_name\": \"cert-name\",\n        \"certificate\": certificate,\n        \"private_key\": private_key,\n    },\n    tls_config={\n        \"cipher_suites\": [\n            \"TLS_RSA_WITH_AES_128_CBC_SHA\",\n            \"TLS_RSA_WITH_AES_256_CBC_SHA\",\n            \"TLS_RSA_WITH_AES_128_GCM_SHA256\",\n            \"TLS_RSA_WITH_AES_256_GCM_SHA384\",\n        ],\n        \"max_version\": \"TLSv1.3\",\n        \"min_version\": \"TLSv1.0\",\n    },\n    waf_config={\n        \"enable_waf\": False,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"flask-07ap.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net\";\n    var functionName1 = config.Get(\"functionName1\") ?? \"terraform-custom-domain-t1\";\n    var authConfig = config.Get(\"authConfig\") ?? @\"{\n    \"\"jwks\"\": {\n        \"\"keys\"\": [\n            {\n                \"\"p\"\": \"\"8AdUVeldoE4LueFuzEF_C8tvJ7NhlkzS58Gz9KJTPXPr5DADSUVLWJCr5OdFE79q513SneT0UhGo-JfQ1lNMoNv5-YZ1AxIo9fZUEPIe-KyX9ttaglpzCAUE3TeKdm5J-_HZQzBPKbyUwJHAILNgB2-4IBZZwK7LAfbmfi9TmFM\"\",\n                \"\"kty\"\": \"\"RSA\"\",\n                \"\"q\"\": \"\"x8m5ydXwC8AAp9I-hOnUAx6yQJz1Nx-jXPCfn--XdHpJuNcuwRQsuUCSRQs_h3SoCI3qZZdzswQnPrtHFxgUJtQFuMj-QZpyMnebDb81rmczl2KPVUtaVDVagJEF6U9Ov3PfrLhvHUEv5u7p6s4Z6maBUaByfFlhEVPv4_ao8Us\"\",\n                \"\"d\"\": \"\"bjIQAKD2e65gwJ38_Sqq_EmLFuMMey3gjDv1bSCHFH8fyONJTq-utrZfvspz6EegRwW2mSHW9kq87hRwIBW9y7ED5N4KG5gHDjyh57BRE0SKv0Dz1igtKLyp-nl8-aHc1DbONwr1d7tZfFt255TxIN8cPTakXOp2Av_ztql_JotVUGK8eHmXNJFlvq5tc180sKWMHNSNsCUhQgcB1TWb_gwcqxdsIWPsLZI491XKeTGQ98J7z5h6R1cTC97lfJZ0vNtJahd2jHd3WfTUDj5-untMKyZpYYak2Vr8xtFz8H6Q5Rsz8uX_7gtEqYH2CMjPdbXcebrnD1igRSJMYiP0lQ\"\",\n                \"\"e\"\": \"\"AQAB\"\",\n                \"\"use\"\": \"\"sig\"\",\n                \"\"qi\"\": \"\"MTCCRu8AcvvjbHms7V_sDFO7wX0YNyvOJAAbuTmHvQbJ0NDeDta-f-hi8cjkMk7Fpk2hej158E5gDyO62UG99wHZSbmHT34MvIdmhQ5mnbL-5KK9rxde0nayO1ebGepD_GJThPAg9iskzeWpCg5X2etNo2bHoG_ZLQGXj2BQ1VM\"\",\n                \"\"dp\"\": \"\"J4_ttKNcTTnP8PlZO81n1VfYoGCOqylKceyZbq76rVxX-yp2wDLtslFWI8qCtjiMtEnglynPo19JzH-pakocjT70us4Qp0rs-W16ebiOpko8WfHZvzaNUzsQjC3FYrPW-fHo74wc4DI3Cm57jmhCYbdmT9OfQ4UL7Oz3HMFMNAU\"\",\n                \"\"alg\"\": \"\"RS256\"\",\n                \"\"dq\"\": \"\"H4-VgvYB-sk1EU3cRIDv1iJWRHDHKBMeaoM0pD5kLalX1hRgNW4rdoRl1vRk79AU720D11Kqm2APlxBctaA_JrcdxEg0KkbsvV45p11KbKeu9b5DKFVECsN27ZJ7XZUCuqnibtWf7_4pRBD_8PDoFShmS2_ORiiUdflNjzSbEas\"\",\n                \"\"n\"\": \"\"u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ\"\"\n            }\n        ]\n    },\n    \"\"tokenLookup\"\": \"\"header:auth\"\",\n    \"\"claimPassBy\"\": \"\"header:name:name\"\"\n}\n\";\n    var certificate = config.Get(\"certificate\") ?? @\"-----BEGIN CERTIFICATE-----\nMIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\nBAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\nMA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\nZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\ndjELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\nChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\nAoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\ncoG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\nKOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\nHQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n+OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\nQkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\nMAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\nAJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\ncQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\nOfi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\nDUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n-----END CERTIFICATE-----\n\";\n    var privateKey = config.Get(\"privateKey\") ?? @\"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV\nkg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM\nywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB\nAoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd\n6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP\nhwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4\nMdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz\n71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm\nEv9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE\nqygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8\n9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM\nzWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe\nDrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=\n-----END RSA PRIVATE KEY-----\n\";\n    var @default = new AliCloud.FC.V3CustomDomain(\"default\", new()\n    {\n        CustomDomainName = name,\n        RouteConfig = new AliCloud.FC.Inputs.V3CustomDomainRouteConfigArgs\n        {\n            Routes = new[]\n            {\n                new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteArgs\n                {\n                    FunctionName = functionName1,\n                    RewriteConfig = new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigArgs\n                    {\n                        RegexRules = new[]\n                        {\n                            new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs\n                            {\n                                Match = \"/api/*\",\n                                Replacement = \"$1\",\n                            },\n                            new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs\n                            {\n                                Match = \"/api1/*\",\n                                Replacement = \"$1\",\n                            },\n                            new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs\n                            {\n                                Match = \"/api2/*\",\n                                Replacement = \"$1\",\n                            },\n                        },\n                        WildcardRules = new[]\n                        {\n                            new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs\n                            {\n                                Match = \"^/api1/.+?/(.*)\",\n                                Replacement = \"/api/v1/$1\",\n                            },\n                            new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs\n                            {\n                                Match = \"^/api2/.+?/(.*)\",\n                                Replacement = \"/api/v2/$1\",\n                            },\n                            new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs\n                            {\n                                Match = \"^/api2/.+?/(.*)\",\n                                Replacement = \"/api/v3/$1\",\n                            },\n                        },\n                        EqualRules = new[]\n                        {\n                            new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs\n                            {\n                                Match = \"/old\",\n                                Replacement = \"/new\",\n                            },\n                            new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs\n                            {\n                                Replacement = \"/new1\",\n                                Match = \"/old1\",\n                            },\n                            new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs\n                            {\n                                Match = \"/old2\",\n                                Replacement = \"/new2\",\n                            },\n                        },\n                    },\n                    Methods = new[]\n                    {\n                        \"GET\",\n                        \"POST\",\n                        \"DELETE\",\n                        \"HEAD\",\n                    },\n                    Path = \"/a\",\n                    Qualifier = \"LATEST\",\n                },\n                new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteArgs\n                {\n                    FunctionName = functionName1,\n                    Methods = new[]\n                    {\n                        \"GET\",\n                    },\n                    Path = \"/b\",\n                    Qualifier = \"LATEST\",\n                },\n                new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteArgs\n                {\n                    FunctionName = functionName1,\n                    Methods = new[]\n                    {\n                        \"POST\",\n                    },\n                    Path = \"/c\",\n                    Qualifier = \"1\",\n                },\n            },\n        },\n        AuthConfig = new AliCloud.FC.Inputs.V3CustomDomainAuthConfigArgs\n        {\n            AuthType = \"jwt\",\n            AuthInfo = authConfig,\n        },\n        Protocol = \"HTTP,HTTPS\",\n        CertConfig = new AliCloud.FC.Inputs.V3CustomDomainCertConfigArgs\n        {\n            CertName = \"cert-name\",\n            Certificate = certificate,\n            PrivateKey = privateKey,\n        },\n        TlsConfig = new AliCloud.FC.Inputs.V3CustomDomainTlsConfigArgs\n        {\n            CipherSuites = new[]\n            {\n                \"TLS_RSA_WITH_AES_128_CBC_SHA\",\n                \"TLS_RSA_WITH_AES_256_CBC_SHA\",\n                \"TLS_RSA_WITH_AES_128_GCM_SHA256\",\n                \"TLS_RSA_WITH_AES_256_GCM_SHA384\",\n            },\n            MaxVersion = \"TLSv1.3\",\n            MinVersion = \"TLSv1.0\",\n        },\n        WafConfig = new AliCloud.FC.Inputs.V3CustomDomainWafConfigArgs\n        {\n            EnableWaf = false,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"flask-07ap.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tfunctionName1 := \"terraform-custom-domain-t1\"\n\t\tif param := cfg.Get(\"functionName1\"); param != \"\" {\n\t\t\tfunctionName1 = param\n\t\t}\n\t\tauthConfig := `{\n    \"jwks\": {\n        \"keys\": [\n            {\n                \"p\": \"8AdUVeldoE4LueFuzEF_C8tvJ7NhlkzS58Gz9KJTPXPr5DADSUVLWJCr5OdFE79q513SneT0UhGo-JfQ1lNMoNv5-YZ1AxIo9fZUEPIe-KyX9ttaglpzCAUE3TeKdm5J-_HZQzBPKbyUwJHAILNgB2-4IBZZwK7LAfbmfi9TmFM\",\n                \"kty\": \"RSA\",\n                \"q\": \"x8m5ydXwC8AAp9I-hOnUAx6yQJz1Nx-jXPCfn--XdHpJuNcuwRQsuUCSRQs_h3SoCI3qZZdzswQnPrtHFxgUJtQFuMj-QZpyMnebDb81rmczl2KPVUtaVDVagJEF6U9Ov3PfrLhvHUEv5u7p6s4Z6maBUaByfFlhEVPv4_ao8Us\",\n                \"d\": \"bjIQAKD2e65gwJ38_Sqq_EmLFuMMey3gjDv1bSCHFH8fyONJTq-utrZfvspz6EegRwW2mSHW9kq87hRwIBW9y7ED5N4KG5gHDjyh57BRE0SKv0Dz1igtKLyp-nl8-aHc1DbONwr1d7tZfFt255TxIN8cPTakXOp2Av_ztql_JotVUGK8eHmXNJFlvq5tc180sKWMHNSNsCUhQgcB1TWb_gwcqxdsIWPsLZI491XKeTGQ98J7z5h6R1cTC97lfJZ0vNtJahd2jHd3WfTUDj5-untMKyZpYYak2Vr8xtFz8H6Q5Rsz8uX_7gtEqYH2CMjPdbXcebrnD1igRSJMYiP0lQ\",\n                \"e\": \"AQAB\",\n                \"use\": \"sig\",\n                \"qi\": \"MTCCRu8AcvvjbHms7V_sDFO7wX0YNyvOJAAbuTmHvQbJ0NDeDta-f-hi8cjkMk7Fpk2hej158E5gDyO62UG99wHZSbmHT34MvIdmhQ5mnbL-5KK9rxde0nayO1ebGepD_GJThPAg9iskzeWpCg5X2etNo2bHoG_ZLQGXj2BQ1VM\",\n                \"dp\": \"J4_ttKNcTTnP8PlZO81n1VfYoGCOqylKceyZbq76rVxX-yp2wDLtslFWI8qCtjiMtEnglynPo19JzH-pakocjT70us4Qp0rs-W16ebiOpko8WfHZvzaNUzsQjC3FYrPW-fHo74wc4DI3Cm57jmhCYbdmT9OfQ4UL7Oz3HMFMNAU\",\n                \"alg\": \"RS256\",\n                \"dq\": \"H4-VgvYB-sk1EU3cRIDv1iJWRHDHKBMeaoM0pD5kLalX1hRgNW4rdoRl1vRk79AU720D11Kqm2APlxBctaA_JrcdxEg0KkbsvV45p11KbKeu9b5DKFVECsN27ZJ7XZUCuqnibtWf7_4pRBD_8PDoFShmS2_ORiiUdflNjzSbEas\",\n                \"n\": \"u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ\"\n            }\n        ]\n    },\n    \"tokenLookup\": \"header:auth\",\n    \"claimPassBy\": \"header:name:name\"\n}\n`\n\t\tif param := cfg.Get(\"authConfig\"); param != \"\" {\n\t\t\tauthConfig = param\n\t\t}\n\t\tcertificate := `-----BEGIN CERTIFICATE-----\nMIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\nBAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\nMA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\nZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\ndjELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\nChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\nAoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\ncoG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\nKOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\nHQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n+OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\nQkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\nMAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\nAJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\ncQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\nOfi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\nDUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n-----END CERTIFICATE-----\n`\n\t\tif param := cfg.Get(\"certificate\"); param != \"\" {\n\t\t\tcertificate = param\n\t\t}\n\t\tprivateKey := `-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV\nkg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM\nywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB\nAoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd\n6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP\nhwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4\nMdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz\n71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm\nEv9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE\nqygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8\n9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM\nzWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe\nDrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=\n-----END RSA PRIVATE KEY-----\n`\n\t\tif param := cfg.Get(\"privateKey\"); param != \"\" {\n\t\t\tprivateKey = param\n\t\t}\n\t\t_, err := fc.NewV3CustomDomain(ctx, \"default\", \u0026fc.V3CustomDomainArgs{\n\t\t\tCustomDomainName: pulumi.String(name),\n\t\t\tRouteConfig: \u0026fc.V3CustomDomainRouteConfigArgs{\n\t\t\t\tRoutes: fc.V3CustomDomainRouteConfigRouteArray{\n\t\t\t\t\t\u0026fc.V3CustomDomainRouteConfigRouteArgs{\n\t\t\t\t\t\tFunctionName: pulumi.String(functionName1),\n\t\t\t\t\t\tRewriteConfig: \u0026fc.V3CustomDomainRouteConfigRouteRewriteConfigArgs{\n\t\t\t\t\t\t\tRegexRules: fc.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArray{\n\t\t\t\t\t\t\t\t\u0026fc.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs{\n\t\t\t\t\t\t\t\t\tMatch:       pulumi.String(\"/api/*\"),\n\t\t\t\t\t\t\t\t\tReplacement: pulumi.String(\"$1\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026fc.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs{\n\t\t\t\t\t\t\t\t\tMatch:       pulumi.String(\"/api1/*\"),\n\t\t\t\t\t\t\t\t\tReplacement: pulumi.String(\"$1\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026fc.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs{\n\t\t\t\t\t\t\t\t\tMatch:       pulumi.String(\"/api2/*\"),\n\t\t\t\t\t\t\t\t\tReplacement: pulumi.String(\"$1\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tWildcardRules: fc.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArray{\n\t\t\t\t\t\t\t\t\u0026fc.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs{\n\t\t\t\t\t\t\t\t\tMatch:       pulumi.String(\"^/api1/.+?/(.*)\"),\n\t\t\t\t\t\t\t\t\tReplacement: pulumi.String(\"/api/v1/$1\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026fc.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs{\n\t\t\t\t\t\t\t\t\tMatch:       pulumi.String(\"^/api2/.+?/(.*)\"),\n\t\t\t\t\t\t\t\t\tReplacement: pulumi.String(\"/api/v2/$1\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026fc.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs{\n\t\t\t\t\t\t\t\t\tMatch:       pulumi.String(\"^/api2/.+?/(.*)\"),\n\t\t\t\t\t\t\t\t\tReplacement: pulumi.String(\"/api/v3/$1\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tEqualRules: fc.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArray{\n\t\t\t\t\t\t\t\t\u0026fc.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs{\n\t\t\t\t\t\t\t\t\tMatch:       pulumi.String(\"/old\"),\n\t\t\t\t\t\t\t\t\tReplacement: pulumi.String(\"/new\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026fc.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs{\n\t\t\t\t\t\t\t\t\tReplacement: pulumi.String(\"/new1\"),\n\t\t\t\t\t\t\t\t\tMatch:       pulumi.String(\"/old1\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026fc.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs{\n\t\t\t\t\t\t\t\t\tMatch:       pulumi.String(\"/old2\"),\n\t\t\t\t\t\t\t\t\tReplacement: pulumi.String(\"/new2\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tMethods: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\t\tpulumi.String(\"POST\"),\n\t\t\t\t\t\t\tpulumi.String(\"DELETE\"),\n\t\t\t\t\t\t\tpulumi.String(\"HEAD\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPath:      pulumi.String(\"/a\"),\n\t\t\t\t\t\tQualifier: pulumi.String(\"LATEST\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026fc.V3CustomDomainRouteConfigRouteArgs{\n\t\t\t\t\t\tFunctionName: pulumi.String(functionName1),\n\t\t\t\t\t\tMethods: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPath:      pulumi.String(\"/b\"),\n\t\t\t\t\t\tQualifier: pulumi.String(\"LATEST\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026fc.V3CustomDomainRouteConfigRouteArgs{\n\t\t\t\t\t\tFunctionName: pulumi.String(functionName1),\n\t\t\t\t\t\tMethods: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"POST\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPath:      pulumi.String(\"/c\"),\n\t\t\t\t\t\tQualifier: pulumi.String(\"1\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAuthConfig: \u0026fc.V3CustomDomainAuthConfigArgs{\n\t\t\t\tAuthType: pulumi.String(\"jwt\"),\n\t\t\t\tAuthInfo: pulumi.String(authConfig),\n\t\t\t},\n\t\t\tProtocol: pulumi.String(\"HTTP,HTTPS\"),\n\t\t\tCertConfig: \u0026fc.V3CustomDomainCertConfigArgs{\n\t\t\t\tCertName:    pulumi.String(\"cert-name\"),\n\t\t\t\tCertificate: pulumi.String(certificate),\n\t\t\t\tPrivateKey:  pulumi.String(privateKey),\n\t\t\t},\n\t\t\tTlsConfig: \u0026fc.V3CustomDomainTlsConfigArgs{\n\t\t\t\tCipherSuites: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"TLS_RSA_WITH_AES_128_CBC_SHA\"),\n\t\t\t\t\tpulumi.String(\"TLS_RSA_WITH_AES_256_CBC_SHA\"),\n\t\t\t\t\tpulumi.String(\"TLS_RSA_WITH_AES_128_GCM_SHA256\"),\n\t\t\t\t\tpulumi.String(\"TLS_RSA_WITH_AES_256_GCM_SHA384\"),\n\t\t\t\t},\n\t\t\t\tMaxVersion: pulumi.String(\"TLSv1.3\"),\n\t\t\t\tMinVersion: pulumi.String(\"TLSv1.0\"),\n\t\t\t},\n\t\t\tWafConfig: \u0026fc.V3CustomDomainWafConfigArgs{\n\t\t\t\tEnableWaf: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fc.V3CustomDomain;\nimport com.pulumi.alicloud.fc.V3CustomDomainArgs;\nimport com.pulumi.alicloud.fc.inputs.V3CustomDomainRouteConfigArgs;\nimport com.pulumi.alicloud.fc.inputs.V3CustomDomainAuthConfigArgs;\nimport com.pulumi.alicloud.fc.inputs.V3CustomDomainCertConfigArgs;\nimport com.pulumi.alicloud.fc.inputs.V3CustomDomainTlsConfigArgs;\nimport com.pulumi.alicloud.fc.inputs.V3CustomDomainWafConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"flask-07ap.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net\");\n        final var functionName1 = config.get(\"functionName1\").orElse(\"terraform-custom-domain-t1\");\n        final var authConfig = config.get(\"authConfig\").orElse(\"\"\"\n{\n    \"jwks\": {\n        \"keys\": [\n            {\n                \"p\": \"8AdUVeldoE4LueFuzEF_C8tvJ7NhlkzS58Gz9KJTPXPr5DADSUVLWJCr5OdFE79q513SneT0UhGo-JfQ1lNMoNv5-YZ1AxIo9fZUEPIe-KyX9ttaglpzCAUE3TeKdm5J-_HZQzBPKbyUwJHAILNgB2-4IBZZwK7LAfbmfi9TmFM\",\n                \"kty\": \"RSA\",\n                \"q\": \"x8m5ydXwC8AAp9I-hOnUAx6yQJz1Nx-jXPCfn--XdHpJuNcuwRQsuUCSRQs_h3SoCI3qZZdzswQnPrtHFxgUJtQFuMj-QZpyMnebDb81rmczl2KPVUtaVDVagJEF6U9Ov3PfrLhvHUEv5u7p6s4Z6maBUaByfFlhEVPv4_ao8Us\",\n                \"d\": \"bjIQAKD2e65gwJ38_Sqq_EmLFuMMey3gjDv1bSCHFH8fyONJTq-utrZfvspz6EegRwW2mSHW9kq87hRwIBW9y7ED5N4KG5gHDjyh57BRE0SKv0Dz1igtKLyp-nl8-aHc1DbONwr1d7tZfFt255TxIN8cPTakXOp2Av_ztql_JotVUGK8eHmXNJFlvq5tc180sKWMHNSNsCUhQgcB1TWb_gwcqxdsIWPsLZI491XKeTGQ98J7z5h6R1cTC97lfJZ0vNtJahd2jHd3WfTUDj5-untMKyZpYYak2Vr8xtFz8H6Q5Rsz8uX_7gtEqYH2CMjPdbXcebrnD1igRSJMYiP0lQ\",\n                \"e\": \"AQAB\",\n                \"use\": \"sig\",\n                \"qi\": \"MTCCRu8AcvvjbHms7V_sDFO7wX0YNyvOJAAbuTmHvQbJ0NDeDta-f-hi8cjkMk7Fpk2hej158E5gDyO62UG99wHZSbmHT34MvIdmhQ5mnbL-5KK9rxde0nayO1ebGepD_GJThPAg9iskzeWpCg5X2etNo2bHoG_ZLQGXj2BQ1VM\",\n                \"dp\": \"J4_ttKNcTTnP8PlZO81n1VfYoGCOqylKceyZbq76rVxX-yp2wDLtslFWI8qCtjiMtEnglynPo19JzH-pakocjT70us4Qp0rs-W16ebiOpko8WfHZvzaNUzsQjC3FYrPW-fHo74wc4DI3Cm57jmhCYbdmT9OfQ4UL7Oz3HMFMNAU\",\n                \"alg\": \"RS256\",\n                \"dq\": \"H4-VgvYB-sk1EU3cRIDv1iJWRHDHKBMeaoM0pD5kLalX1hRgNW4rdoRl1vRk79AU720D11Kqm2APlxBctaA_JrcdxEg0KkbsvV45p11KbKeu9b5DKFVECsN27ZJ7XZUCuqnibtWf7_4pRBD_8PDoFShmS2_ORiiUdflNjzSbEas\",\n                \"n\": \"u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ\"\n            }\n        ]\n    },\n    \"tokenLookup\": \"header:auth\",\n    \"claimPassBy\": \"header:name:name\"\n}\n        \"\"\");\n        final var certificate = config.get(\"certificate\").orElse(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\nBAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\nMA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\nZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\ndjELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\nChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\nAoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\ncoG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\nKOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\nHQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n+OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\nQkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\nMAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\nAJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\ncQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\nOfi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\nDUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n-----END CERTIFICATE-----\n        \"\"\");\n        final var privateKey = config.get(\"privateKey\").orElse(\"\"\"\n-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV\nkg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM\nywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB\nAoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd\n6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP\nhwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4\nMdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz\n71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm\nEv9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE\nqygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8\n9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM\nzWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe\nDrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=\n-----END RSA PRIVATE KEY-----\n        \"\"\");\n        var default_ = new V3CustomDomain(\"default\", V3CustomDomainArgs.builder()\n            .customDomainName(name)\n            .routeConfig(V3CustomDomainRouteConfigArgs.builder()\n                .routes(                \n                    V3CustomDomainRouteConfigRouteArgs.builder()\n                        .functionName(functionName1)\n                        .rewriteConfig(V3CustomDomainRouteConfigRouteRewriteConfigArgs.builder()\n                            .regexRules(                            \n                                V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs.builder()\n                                    .match(\"/api/*\")\n                                    .replacement(\"$1\")\n                                    .build(),\n                                V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs.builder()\n                                    .match(\"/api1/*\")\n                                    .replacement(\"$1\")\n                                    .build(),\n                                V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs.builder()\n                                    .match(\"/api2/*\")\n                                    .replacement(\"$1\")\n                                    .build())\n                            .wildcardRules(                            \n                                V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs.builder()\n                                    .match(\"^/api1/.+?/(.*)\")\n                                    .replacement(\"/api/v1/$1\")\n                                    .build(),\n                                V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs.builder()\n                                    .match(\"^/api2/.+?/(.*)\")\n                                    .replacement(\"/api/v2/$1\")\n                                    .build(),\n                                V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs.builder()\n                                    .match(\"^/api2/.+?/(.*)\")\n                                    .replacement(\"/api/v3/$1\")\n                                    .build())\n                            .equalRules(                            \n                                V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs.builder()\n                                    .match(\"/old\")\n                                    .replacement(\"/new\")\n                                    .build(),\n                                V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs.builder()\n                                    .replacement(\"/new1\")\n                                    .match(\"/old1\")\n                                    .build(),\n                                V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs.builder()\n                                    .match(\"/old2\")\n                                    .replacement(\"/new2\")\n                                    .build())\n                            .build())\n                        .methods(                        \n                            \"GET\",\n                            \"POST\",\n                            \"DELETE\",\n                            \"HEAD\")\n                        .path(\"/a\")\n                        .qualifier(\"LATEST\")\n                        .build(),\n                    V3CustomDomainRouteConfigRouteArgs.builder()\n                        .functionName(functionName1)\n                        .methods(\"GET\")\n                        .path(\"/b\")\n                        .qualifier(\"LATEST\")\n                        .build(),\n                    V3CustomDomainRouteConfigRouteArgs.builder()\n                        .functionName(functionName1)\n                        .methods(\"POST\")\n                        .path(\"/c\")\n                        .qualifier(\"1\")\n                        .build())\n                .build())\n            .authConfig(V3CustomDomainAuthConfigArgs.builder()\n                .authType(\"jwt\")\n                .authInfo(authConfig)\n                .build())\n            .protocol(\"HTTP,HTTPS\")\n            .certConfig(V3CustomDomainCertConfigArgs.builder()\n                .certName(\"cert-name\")\n                .certificate(certificate)\n                .privateKey(privateKey)\n                .build())\n            .tlsConfig(V3CustomDomainTlsConfigArgs.builder()\n                .cipherSuites(                \n                    \"TLS_RSA_WITH_AES_128_CBC_SHA\",\n                    \"TLS_RSA_WITH_AES_256_CBC_SHA\",\n                    \"TLS_RSA_WITH_AES_128_GCM_SHA256\",\n                    \"TLS_RSA_WITH_AES_256_GCM_SHA384\")\n                .maxVersion(\"TLSv1.3\")\n                .minVersion(\"TLSv1.0\")\n                .build())\n            .wafConfig(V3CustomDomainWafConfigArgs.builder()\n                .enableWaf(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: flask-07ap.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net\n  functionName1:\n    type: string\n    default: terraform-custom-domain-t1\n  authConfig:\n    type: string\n    default: |\n      {\n          \"jwks\": {\n              \"keys\": [\n                  {\n                      \"p\": \"8AdUVeldoE4LueFuzEF_C8tvJ7NhlkzS58Gz9KJTPXPr5DADSUVLWJCr5OdFE79q513SneT0UhGo-JfQ1lNMoNv5-YZ1AxIo9fZUEPIe-KyX9ttaglpzCAUE3TeKdm5J-_HZQzBPKbyUwJHAILNgB2-4IBZZwK7LAfbmfi9TmFM\",\n                      \"kty\": \"RSA\",\n                      \"q\": \"x8m5ydXwC8AAp9I-hOnUAx6yQJz1Nx-jXPCfn--XdHpJuNcuwRQsuUCSRQs_h3SoCI3qZZdzswQnPrtHFxgUJtQFuMj-QZpyMnebDb81rmczl2KPVUtaVDVagJEF6U9Ov3PfrLhvHUEv5u7p6s4Z6maBUaByfFlhEVPv4_ao8Us\",\n                      \"d\": \"bjIQAKD2e65gwJ38_Sqq_EmLFuMMey3gjDv1bSCHFH8fyONJTq-utrZfvspz6EegRwW2mSHW9kq87hRwIBW9y7ED5N4KG5gHDjyh57BRE0SKv0Dz1igtKLyp-nl8-aHc1DbONwr1d7tZfFt255TxIN8cPTakXOp2Av_ztql_JotVUGK8eHmXNJFlvq5tc180sKWMHNSNsCUhQgcB1TWb_gwcqxdsIWPsLZI491XKeTGQ98J7z5h6R1cTC97lfJZ0vNtJahd2jHd3WfTUDj5-untMKyZpYYak2Vr8xtFz8H6Q5Rsz8uX_7gtEqYH2CMjPdbXcebrnD1igRSJMYiP0lQ\",\n                      \"e\": \"AQAB\",\n                      \"use\": \"sig\",\n                      \"qi\": \"MTCCRu8AcvvjbHms7V_sDFO7wX0YNyvOJAAbuTmHvQbJ0NDeDta-f-hi8cjkMk7Fpk2hej158E5gDyO62UG99wHZSbmHT34MvIdmhQ5mnbL-5KK9rxde0nayO1ebGepD_GJThPAg9iskzeWpCg5X2etNo2bHoG_ZLQGXj2BQ1VM\",\n                      \"dp\": \"J4_ttKNcTTnP8PlZO81n1VfYoGCOqylKceyZbq76rVxX-yp2wDLtslFWI8qCtjiMtEnglynPo19JzH-pakocjT70us4Qp0rs-W16ebiOpko8WfHZvzaNUzsQjC3FYrPW-fHo74wc4DI3Cm57jmhCYbdmT9OfQ4UL7Oz3HMFMNAU\",\n                      \"alg\": \"RS256\",\n                      \"dq\": \"H4-VgvYB-sk1EU3cRIDv1iJWRHDHKBMeaoM0pD5kLalX1hRgNW4rdoRl1vRk79AU720D11Kqm2APlxBctaA_JrcdxEg0KkbsvV45p11KbKeu9b5DKFVECsN27ZJ7XZUCuqnibtWf7_4pRBD_8PDoFShmS2_ORiiUdflNjzSbEas\",\n                      \"n\": \"u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ\"\n                  }\n              ]\n          },\n          \"tokenLookup\": \"header:auth\",\n          \"claimPassBy\": \"header:name:name\"\n      }\n  certificate:\n    type: string\n    default: |\n      -----BEGIN CERTIFICATE-----\n      MIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\n      BAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\n      MA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\n      ZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\n      djELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\n      ChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n      9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\n      AoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\n      coG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\n      KOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\n      HQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n      +OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\n      QkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\n      MAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\n      AJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\n      cQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\n      Ofi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\n      DUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n      -----END CERTIFICATE-----\n  privateKey:\n    type: string\n    default: |\n      -----BEGIN RSA PRIVATE KEY-----\n      MIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV\n      kg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM\n      ywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB\n      AoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd\n      6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP\n      hwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4\n      MdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz\n      71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm\n      Ev9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE\n      qygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8\n      9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM\n      zWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe\n      DrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=\n      -----END RSA PRIVATE KEY-----\nresources:\n  default:\n    type: alicloud:fc:V3CustomDomain\n    properties:\n      customDomainName: ${name}\n      routeConfig:\n        routes:\n          - functionName: ${functionName1}\n            rewriteConfig:\n              regexRules:\n                - match: /api/*\n                  replacement: $1\n                - match: /api1/*\n                  replacement: $1\n                - match: /api2/*\n                  replacement: $1\n              wildcardRules:\n                - match: ^/api1/.+?/(.*)\n                  replacement: /api/v1/$1\n                - match: ^/api2/.+?/(.*)\n                  replacement: /api/v2/$1\n                - match: ^/api2/.+?/(.*)\n                  replacement: /api/v3/$1\n              equalRules:\n                - match: /old\n                  replacement: /new\n                - replacement: /new1\n                  match: /old1\n                - match: /old2\n                  replacement: /new2\n            methods:\n              - GET\n              - POST\n              - DELETE\n              - HEAD\n            path: /a\n            qualifier: LATEST\n          - functionName: ${functionName1}\n            methods:\n              - GET\n            path: /b\n            qualifier: LATEST\n          - functionName: ${functionName1}\n            methods:\n              - POST\n            path: /c\n            qualifier: '1'\n      authConfig:\n        authType: jwt\n        authInfo: ${authConfig}\n      protocol: HTTP,HTTPS\n      certConfig:\n        certName: cert-name\n        certificate: ${certificate}\n        privateKey: ${privateKey}\n      tlsConfig:\n        cipherSuites:\n          - TLS_RSA_WITH_AES_128_CBC_SHA\n          - TLS_RSA_WITH_AES_256_CBC_SHA\n          - TLS_RSA_WITH_AES_128_GCM_SHA256\n          - TLS_RSA_WITH_AES_256_GCM_SHA384\n        maxVersion: TLSv1.3\n        minVersion: TLSv1.0\n      wafConfig:\n        enableWaf: 'false'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFunction Compute Service V3 (FCV3) Custom Domain can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fc/v3CustomDomain:V3CustomDomain example \u003ccustom_domain_name\u003e\n```\n\n","properties":{"accountId":{"type":"string","description":"The ID of your Alibaba Cloud account (primary account).\n"},"apiVersion":{"type":"string","description":"API version of Function Compute.\n"},"authConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainAuthConfig:V3CustomDomainAuthConfig","description":"Permission authentication configuration See \u003cspan pulumi-lang-nodejs=\"`authConfig`\" pulumi-lang-dotnet=\"`AuthConfig`\" pulumi-lang-go=\"`authConfig`\" pulumi-lang-python=\"`auth_config`\" pulumi-lang-yaml=\"`authConfig`\" pulumi-lang-java=\"`authConfig`\"\u003e`auth_config`\u003c/span\u003e below.\n"},"certConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainCertConfig:V3CustomDomainCertConfig","description":"HTTPS certificate information See \u003cspan pulumi-lang-nodejs=\"`certConfig`\" pulumi-lang-dotnet=\"`CertConfig`\" pulumi-lang-go=\"`certConfig`\" pulumi-lang-python=\"`cert_config`\" pulumi-lang-yaml=\"`certConfig`\" pulumi-lang-java=\"`certConfig`\"\u003e`cert_config`\u003c/span\u003e below.\n"},"corsConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainCorsConfig:V3CustomDomainCorsConfig","description":"Cross-Origin Resource Sharing (CORS) configuration, used to control which origins can access resources under the custom domain. See \u003cspan pulumi-lang-nodejs=\"`corsConfig`\" pulumi-lang-dotnet=\"`CorsConfig`\" pulumi-lang-go=\"`corsConfig`\" pulumi-lang-python=\"`cors_config`\" pulumi-lang-yaml=\"`corsConfig`\" pulumi-lang-java=\"`corsConfig`\"\u003e`cors_config`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"customDomainName":{"type":"string","description":"The name of the resource\n"},"lastModifiedTime":{"type":"string","description":"The last time the custom domain name was Updated.\n"},"protocol":{"type":"string","description":"The protocol type supported by the domain name. HTTP: only HTTP protocol is supported. HTTPS: only HTTPS is supported. HTTP,HTTPS: Supports HTTP and HTTPS protocols.\n"},"routeConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainRouteConfig:V3CustomDomainRouteConfig","description":"Route matching rule configuration See \u003cspan pulumi-lang-nodejs=\"`routeConfig`\" pulumi-lang-dotnet=\"`RouteConfig`\" pulumi-lang-go=\"`routeConfig`\" pulumi-lang-python=\"`route_config`\" pulumi-lang-yaml=\"`routeConfig`\" pulumi-lang-java=\"`routeConfig`\"\u003e`route_config`\u003c/span\u003e below.\n"},"subdomainCount":{"type":"string","description":"Number of subdomains.\n"},"tlsConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainTlsConfig:V3CustomDomainTlsConfig","description":"TLS configuration information See \u003cspan pulumi-lang-nodejs=\"`tlsConfig`\" pulumi-lang-dotnet=\"`TlsConfig`\" pulumi-lang-go=\"`tlsConfig`\" pulumi-lang-python=\"`tls_config`\" pulumi-lang-yaml=\"`tlsConfig`\" pulumi-lang-java=\"`tlsConfig`\"\u003e`tls_config`\u003c/span\u003e below.\n"},"wafConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainWafConfig:V3CustomDomainWafConfig","description":"Web application firewall configuration information See \u003cspan pulumi-lang-nodejs=\"`wafConfig`\" pulumi-lang-dotnet=\"`WafConfig`\" pulumi-lang-go=\"`wafConfig`\" pulumi-lang-python=\"`waf_config`\" pulumi-lang-yaml=\"`wafConfig`\" pulumi-lang-java=\"`wafConfig`\"\u003e`waf_config`\u003c/span\u003e below.\n"}},"required":["accountId","apiVersion","certConfig","createTime","customDomainName","lastModifiedTime","subdomainCount","tlsConfig"],"inputProperties":{"authConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainAuthConfig:V3CustomDomainAuthConfig","description":"Permission authentication configuration See \u003cspan pulumi-lang-nodejs=\"`authConfig`\" pulumi-lang-dotnet=\"`AuthConfig`\" pulumi-lang-go=\"`authConfig`\" pulumi-lang-python=\"`auth_config`\" pulumi-lang-yaml=\"`authConfig`\" pulumi-lang-java=\"`authConfig`\"\u003e`auth_config`\u003c/span\u003e below.\n"},"certConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainCertConfig:V3CustomDomainCertConfig","description":"HTTPS certificate information See \u003cspan pulumi-lang-nodejs=\"`certConfig`\" pulumi-lang-dotnet=\"`CertConfig`\" pulumi-lang-go=\"`certConfig`\" pulumi-lang-python=\"`cert_config`\" pulumi-lang-yaml=\"`certConfig`\" pulumi-lang-java=\"`certConfig`\"\u003e`cert_config`\u003c/span\u003e below.\n"},"corsConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainCorsConfig:V3CustomDomainCorsConfig","description":"Cross-Origin Resource Sharing (CORS) configuration, used to control which origins can access resources under the custom domain. See \u003cspan pulumi-lang-nodejs=\"`corsConfig`\" pulumi-lang-dotnet=\"`CorsConfig`\" pulumi-lang-go=\"`corsConfig`\" pulumi-lang-python=\"`cors_config`\" pulumi-lang-yaml=\"`corsConfig`\" pulumi-lang-java=\"`corsConfig`\"\u003e`cors_config`\u003c/span\u003e below.\n"},"customDomainName":{"type":"string","description":"The name of the resource\n","willReplaceOnChanges":true},"protocol":{"type":"string","description":"The protocol type supported by the domain name. HTTP: only HTTP protocol is supported. HTTPS: only HTTPS is supported. HTTP,HTTPS: Supports HTTP and HTTPS protocols.\n"},"routeConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainRouteConfig:V3CustomDomainRouteConfig","description":"Route matching rule configuration See \u003cspan pulumi-lang-nodejs=\"`routeConfig`\" pulumi-lang-dotnet=\"`RouteConfig`\" pulumi-lang-go=\"`routeConfig`\" pulumi-lang-python=\"`route_config`\" pulumi-lang-yaml=\"`routeConfig`\" pulumi-lang-java=\"`routeConfig`\"\u003e`route_config`\u003c/span\u003e below.\n"},"tlsConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainTlsConfig:V3CustomDomainTlsConfig","description":"TLS configuration information See \u003cspan pulumi-lang-nodejs=\"`tlsConfig`\" pulumi-lang-dotnet=\"`TlsConfig`\" pulumi-lang-go=\"`tlsConfig`\" pulumi-lang-python=\"`tls_config`\" pulumi-lang-yaml=\"`tlsConfig`\" pulumi-lang-java=\"`tlsConfig`\"\u003e`tls_config`\u003c/span\u003e below.\n"},"wafConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainWafConfig:V3CustomDomainWafConfig","description":"Web application firewall configuration information See \u003cspan pulumi-lang-nodejs=\"`wafConfig`\" pulumi-lang-dotnet=\"`WafConfig`\" pulumi-lang-go=\"`wafConfig`\" pulumi-lang-python=\"`waf_config`\" pulumi-lang-yaml=\"`wafConfig`\" pulumi-lang-java=\"`wafConfig`\"\u003e`waf_config`\u003c/span\u003e below.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering V3CustomDomain resources.\n","properties":{"accountId":{"type":"string","description":"The ID of your Alibaba Cloud account (primary account).\n"},"apiVersion":{"type":"string","description":"API version of Function Compute.\n"},"authConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainAuthConfig:V3CustomDomainAuthConfig","description":"Permission authentication configuration See \u003cspan pulumi-lang-nodejs=\"`authConfig`\" pulumi-lang-dotnet=\"`AuthConfig`\" pulumi-lang-go=\"`authConfig`\" pulumi-lang-python=\"`auth_config`\" pulumi-lang-yaml=\"`authConfig`\" pulumi-lang-java=\"`authConfig`\"\u003e`auth_config`\u003c/span\u003e below.\n"},"certConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainCertConfig:V3CustomDomainCertConfig","description":"HTTPS certificate information See \u003cspan pulumi-lang-nodejs=\"`certConfig`\" pulumi-lang-dotnet=\"`CertConfig`\" pulumi-lang-go=\"`certConfig`\" pulumi-lang-python=\"`cert_config`\" pulumi-lang-yaml=\"`certConfig`\" pulumi-lang-java=\"`certConfig`\"\u003e`cert_config`\u003c/span\u003e below.\n"},"corsConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainCorsConfig:V3CustomDomainCorsConfig","description":"Cross-Origin Resource Sharing (CORS) configuration, used to control which origins can access resources under the custom domain. See \u003cspan pulumi-lang-nodejs=\"`corsConfig`\" pulumi-lang-dotnet=\"`CorsConfig`\" pulumi-lang-go=\"`corsConfig`\" pulumi-lang-python=\"`cors_config`\" pulumi-lang-yaml=\"`corsConfig`\" pulumi-lang-java=\"`corsConfig`\"\u003e`cors_config`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"customDomainName":{"type":"string","description":"The name of the resource\n","willReplaceOnChanges":true},"lastModifiedTime":{"type":"string","description":"The last time the custom domain name was Updated.\n"},"protocol":{"type":"string","description":"The protocol type supported by the domain name. HTTP: only HTTP protocol is supported. HTTPS: only HTTPS is supported. HTTP,HTTPS: Supports HTTP and HTTPS protocols.\n"},"routeConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainRouteConfig:V3CustomDomainRouteConfig","description":"Route matching rule configuration See \u003cspan pulumi-lang-nodejs=\"`routeConfig`\" pulumi-lang-dotnet=\"`RouteConfig`\" pulumi-lang-go=\"`routeConfig`\" pulumi-lang-python=\"`route_config`\" pulumi-lang-yaml=\"`routeConfig`\" pulumi-lang-java=\"`routeConfig`\"\u003e`route_config`\u003c/span\u003e below.\n"},"subdomainCount":{"type":"string","description":"Number of subdomains.\n"},"tlsConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainTlsConfig:V3CustomDomainTlsConfig","description":"TLS configuration information See \u003cspan pulumi-lang-nodejs=\"`tlsConfig`\" pulumi-lang-dotnet=\"`TlsConfig`\" pulumi-lang-go=\"`tlsConfig`\" pulumi-lang-python=\"`tls_config`\" pulumi-lang-yaml=\"`tlsConfig`\" pulumi-lang-java=\"`tlsConfig`\"\u003e`tls_config`\u003c/span\u003e below.\n"},"wafConfig":{"$ref":"#/types/alicloud:fc/V3CustomDomainWafConfig:V3CustomDomainWafConfig","description":"Web application firewall configuration information See \u003cspan pulumi-lang-nodejs=\"`wafConfig`\" pulumi-lang-dotnet=\"`WafConfig`\" pulumi-lang-go=\"`wafConfig`\" pulumi-lang-python=\"`waf_config`\" pulumi-lang-yaml=\"`wafConfig`\" pulumi-lang-java=\"`wafConfig`\"\u003e`waf_config`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:fc/v3Function:V3Function":{"description":"Provides a Function Compute Service V3 (FCV3) Function resource.\n\nThe resource scheduling and running of Function Compute is based on functions. The FC function consists of function code and function configuration.\n\nFor information about Function Compute Service V3 (FCV3) Function and how to use it, see [What is Function](https://www.alibabacloud.com/help/en/functioncompute/developer-reference/api-fc-2023-03-30-getfunction).\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Uuid(\"default\", {});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: `${name}-${_default.result}`});\nconst defaultBucketObject = new alicloud.oss.BucketObject(\"default\", {\n    bucket: defaultBucket.bucket,\n    key: \"FCV3Py39.zip\",\n    content: \"print('hello')\",\n});\nconst defaultV3Function = new alicloud.fc.V3Function(\"default\", {\n    description: \"Create\",\n    memorySize: 512,\n    layers: [\"acs:fc:cn-shanghai:official:layers/Python39-Aliyun-SDK/versions/3\"],\n    timeout: 3,\n    runtime: \"custom.debian10\",\n    handler: \"index.handler\",\n    diskSize: 512,\n    customRuntimeConfig: {\n        commands: [\n            \"python\",\n            \"-c\",\n            \"example\",\n        ],\n        args: [\n            \"app.py\",\n            \"xx\",\n            \"x\",\n        ],\n        port: 9000,\n        healthCheckConfig: {\n            httpGetUrl: \"/ready\",\n            initialDelaySeconds: 1,\n            periodSeconds: 10,\n            successThreshold: 1,\n            timeoutSeconds: 1,\n            failureThreshold: 3,\n        },\n    },\n    logConfig: {\n        logBeginRule: \"None\",\n    },\n    code: {\n        ossBucketName: defaultBucket.bucket,\n        ossObjectName: defaultBucketObject.key,\n        checksum: \"4270285996107335518\",\n    },\n    instanceLifecycleConfig: {\n        initializer: {\n            timeout: 1,\n            handler: \"index.init\",\n        },\n        preStop: {\n            timeout: 1,\n            handler: \"index.stop\",\n        },\n    },\n    cpu: 0.5,\n    instanceConcurrency: 2,\n    functionName: `${name}-${_default.result}`,\n    environmentVariables: {\n        EnvKey: \"EnvVal\",\n    },\n    internetAccess: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Uuid(\"default\")\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=f\"{name}-{default['result']}\")\ndefault_bucket_object = alicloud.oss.BucketObject(\"default\",\n    bucket=default_bucket.bucket,\n    key=\"FCV3Py39.zip\",\n    content=\"print('hello')\")\ndefault_v3_function = alicloud.fc.V3Function(\"default\",\n    description=\"Create\",\n    memory_size=512,\n    layers=[\"acs:fc:cn-shanghai:official:layers/Python39-Aliyun-SDK/versions/3\"],\n    timeout=3,\n    runtime=\"custom.debian10\",\n    handler=\"index.handler\",\n    disk_size=512,\n    custom_runtime_config={\n        \"commands\": [\n            \"python\",\n            \"-c\",\n            \"example\",\n        ],\n        \"args\": [\n            \"app.py\",\n            \"xx\",\n            \"x\",\n        ],\n        \"port\": 9000,\n        \"health_check_config\": {\n            \"http_get_url\": \"/ready\",\n            \"initial_delay_seconds\": 1,\n            \"period_seconds\": 10,\n            \"success_threshold\": 1,\n            \"timeout_seconds\": 1,\n            \"failure_threshold\": 3,\n        },\n    },\n    log_config={\n        \"log_begin_rule\": \"None\",\n    },\n    code={\n        \"oss_bucket_name\": default_bucket.bucket,\n        \"oss_object_name\": default_bucket_object.key,\n        \"checksum\": \"4270285996107335518\",\n    },\n    instance_lifecycle_config={\n        \"initializer\": {\n            \"timeout\": 1,\n            \"handler\": \"index.init\",\n        },\n        \"pre_stop\": {\n            \"timeout\": 1,\n            \"handler\": \"index.stop\",\n        },\n    },\n    cpu=0.5,\n    instance_concurrency=2,\n    function_name=f\"{name}-{default['result']}\",\n    environment_variables={\n        \"EnvKey\": \"EnvVal\",\n    },\n    internet_access=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Uuid(\"default\");\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultBucketObject = new AliCloud.Oss.BucketObject(\"default\", new()\n    {\n        Bucket = defaultBucket.BucketName,\n        Key = \"FCV3Py39.zip\",\n        Content = \"print('hello')\",\n    });\n\n    var defaultV3Function = new AliCloud.FC.V3Function(\"default\", new()\n    {\n        Description = \"Create\",\n        MemorySize = 512,\n        Layers = new[]\n        {\n            \"acs:fc:cn-shanghai:official:layers/Python39-Aliyun-SDK/versions/3\",\n        },\n        Timeout = 3,\n        Runtime = \"custom.debian10\",\n        Handler = \"index.handler\",\n        DiskSize = 512,\n        CustomRuntimeConfig = new AliCloud.FC.Inputs.V3FunctionCustomRuntimeConfigArgs\n        {\n            Commands = new[]\n            {\n                \"python\",\n                \"-c\",\n                \"example\",\n            },\n            Args = new[]\n            {\n                \"app.py\",\n                \"xx\",\n                \"x\",\n            },\n            Port = 9000,\n            HealthCheckConfig = new AliCloud.FC.Inputs.V3FunctionCustomRuntimeConfigHealthCheckConfigArgs\n            {\n                HttpGetUrl = \"/ready\",\n                InitialDelaySeconds = 1,\n                PeriodSeconds = 10,\n                SuccessThreshold = 1,\n                TimeoutSeconds = 1,\n                FailureThreshold = 3,\n            },\n        },\n        LogConfig = new AliCloud.FC.Inputs.V3FunctionLogConfigArgs\n        {\n            LogBeginRule = \"None\",\n        },\n        Code = new AliCloud.FC.Inputs.V3FunctionCodeArgs\n        {\n            OssBucketName = defaultBucket.BucketName,\n            OssObjectName = defaultBucketObject.Key,\n            Checksum = \"4270285996107335518\",\n        },\n        InstanceLifecycleConfig = new AliCloud.FC.Inputs.V3FunctionInstanceLifecycleConfigArgs\n        {\n            Initializer = new AliCloud.FC.Inputs.V3FunctionInstanceLifecycleConfigInitializerArgs\n            {\n                Timeout = 1,\n                Handler = \"index.init\",\n            },\n            PreStop = new AliCloud.FC.Inputs.V3FunctionInstanceLifecycleConfigPreStopArgs\n            {\n                Timeout = 1,\n                Handler = \"index.stop\",\n            },\n        },\n        Cpu = 0.5,\n        InstanceConcurrency = 2,\n        FunctionName = $\"{name}-{@default.Result}\",\n        EnvironmentVariables = \n        {\n            { \"EnvKey\", \"EnvVal\" },\n        },\n        InternetAccess = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewUuid(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucketObject, err := oss.NewBucketObject(ctx, \"default\", \u0026oss.BucketObjectArgs{\n\t\t\tBucket:  defaultBucket.Bucket,\n\t\t\tKey:     pulumi.String(\"FCV3Py39.zip\"),\n\t\t\tContent: pulumi.String(\"print('hello')\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fc.NewV3Function(ctx, \"default\", \u0026fc.V3FunctionArgs{\n\t\t\tDescription: pulumi.String(\"Create\"),\n\t\t\tMemorySize:  pulumi.Int(512),\n\t\t\tLayers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"acs:fc:cn-shanghai:official:layers/Python39-Aliyun-SDK/versions/3\"),\n\t\t\t},\n\t\t\tTimeout:  pulumi.Int(3),\n\t\t\tRuntime:  pulumi.String(\"custom.debian10\"),\n\t\t\tHandler:  pulumi.String(\"index.handler\"),\n\t\t\tDiskSize: pulumi.Int(512),\n\t\t\tCustomRuntimeConfig: \u0026fc.V3FunctionCustomRuntimeConfigArgs{\n\t\t\t\tCommands: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"python\"),\n\t\t\t\t\tpulumi.String(\"-c\"),\n\t\t\t\t\tpulumi.String(\"example\"),\n\t\t\t\t},\n\t\t\t\tArgs: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"app.py\"),\n\t\t\t\t\tpulumi.String(\"xx\"),\n\t\t\t\t\tpulumi.String(\"x\"),\n\t\t\t\t},\n\t\t\t\tPort: pulumi.Int(9000),\n\t\t\t\tHealthCheckConfig: \u0026fc.V3FunctionCustomRuntimeConfigHealthCheckConfigArgs{\n\t\t\t\t\tHttpGetUrl:          pulumi.String(\"/ready\"),\n\t\t\t\t\tInitialDelaySeconds: pulumi.Int(1),\n\t\t\t\t\tPeriodSeconds:       pulumi.Int(10),\n\t\t\t\t\tSuccessThreshold:    pulumi.Int(1),\n\t\t\t\t\tTimeoutSeconds:      pulumi.Int(1),\n\t\t\t\t\tFailureThreshold:    pulumi.Int(3),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLogConfig: \u0026fc.V3FunctionLogConfigArgs{\n\t\t\t\tLogBeginRule: pulumi.String(\"None\"),\n\t\t\t},\n\t\t\tCode: \u0026fc.V3FunctionCodeArgs{\n\t\t\t\tOssBucketName: defaultBucket.Bucket,\n\t\t\t\tOssObjectName: defaultBucketObject.Key,\n\t\t\t\tChecksum:      pulumi.String(\"4270285996107335518\"),\n\t\t\t},\n\t\t\tInstanceLifecycleConfig: \u0026fc.V3FunctionInstanceLifecycleConfigArgs{\n\t\t\t\tInitializer: \u0026fc.V3FunctionInstanceLifecycleConfigInitializerArgs{\n\t\t\t\t\tTimeout: pulumi.Int(1),\n\t\t\t\t\tHandler: pulumi.String(\"index.init\"),\n\t\t\t\t},\n\t\t\t\tPreStop: \u0026fc.V3FunctionInstanceLifecycleConfigPreStopArgs{\n\t\t\t\t\tTimeout: pulumi.Int(1),\n\t\t\t\t\tHandler: pulumi.String(\"index.stop\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCpu:                 pulumi.Float64(0.5),\n\t\t\tInstanceConcurrency: pulumi.Int(2),\n\t\t\tFunctionName:        pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\"EnvKey\": pulumi.String(\"EnvVal\"),\n\t\t\t},\n\t\t\tInternetAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Uuid;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketObject;\nimport com.pulumi.alicloud.oss.BucketObjectArgs;\nimport com.pulumi.alicloud.fc.V3Function;\nimport com.pulumi.alicloud.fc.V3FunctionArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionCustomRuntimeConfigArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionCustomRuntimeConfigHealthCheckConfigArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionLogConfigArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionCodeArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionInstanceLifecycleConfigArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionInstanceLifecycleConfigInitializerArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionInstanceLifecycleConfigPreStopArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Uuid(\"default\");\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultBucketObject = new BucketObject(\"defaultBucketObject\", BucketObjectArgs.builder()\n            .bucket(defaultBucket.bucket())\n            .key(\"FCV3Py39.zip\")\n            .content(\"print('hello')\")\n            .build());\n\n        var defaultV3Function = new V3Function(\"defaultV3Function\", V3FunctionArgs.builder()\n            .description(\"Create\")\n            .memorySize(512)\n            .layers(\"acs:fc:cn-shanghai:official:layers/Python39-Aliyun-SDK/versions/3\")\n            .timeout(3)\n            .runtime(\"custom.debian10\")\n            .handler(\"index.handler\")\n            .diskSize(512)\n            .customRuntimeConfig(V3FunctionCustomRuntimeConfigArgs.builder()\n                .commands(                \n                    \"python\",\n                    \"-c\",\n                    \"example\")\n                .args(                \n                    \"app.py\",\n                    \"xx\",\n                    \"x\")\n                .port(9000)\n                .healthCheckConfig(V3FunctionCustomRuntimeConfigHealthCheckConfigArgs.builder()\n                    .httpGetUrl(\"/ready\")\n                    .initialDelaySeconds(1)\n                    .periodSeconds(10)\n                    .successThreshold(1)\n                    .timeoutSeconds(1)\n                    .failureThreshold(3)\n                    .build())\n                .build())\n            .logConfig(V3FunctionLogConfigArgs.builder()\n                .logBeginRule(\"None\")\n                .build())\n            .code(V3FunctionCodeArgs.builder()\n                .ossBucketName(defaultBucket.bucket())\n                .ossObjectName(defaultBucketObject.key())\n                .checksum(\"4270285996107335518\")\n                .build())\n            .instanceLifecycleConfig(V3FunctionInstanceLifecycleConfigArgs.builder()\n                .initializer(V3FunctionInstanceLifecycleConfigInitializerArgs.builder()\n                    .timeout(1)\n                    .handler(\"index.init\")\n                    .build())\n                .preStop(V3FunctionInstanceLifecycleConfigPreStopArgs.builder()\n                    .timeout(1)\n                    .handler(\"index.stop\")\n                    .build())\n                .build())\n            .cpu(0.5)\n            .instanceConcurrency(2)\n            .functionName(String.format(\"%s-%s\", name,default_.result()))\n            .environmentVariables(Map.of(\"EnvKey\", \"EnvVal\"))\n            .internetAccess(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Uuid\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket: ${name}-${default.result}\n  defaultBucketObject:\n    type: alicloud:oss:BucketObject\n    name: default\n    properties:\n      bucket: ${defaultBucket.bucket}\n      key: FCV3Py39.zip\n      content: print('hello')\n  defaultV3Function:\n    type: alicloud:fc:V3Function\n    name: default\n    properties:\n      description: Create\n      memorySize: '512'\n      layers:\n        - acs:fc:cn-shanghai:official:layers/Python39-Aliyun-SDK/versions/3\n      timeout: '3'\n      runtime: custom.debian10\n      handler: index.handler\n      diskSize: '512'\n      customRuntimeConfig:\n        commands:\n          - python\n          - -c\n          - example\n        args:\n          - app.py\n          - xx\n          - x\n        port: '9000'\n        healthCheckConfig:\n          httpGetUrl: /ready\n          initialDelaySeconds: '1'\n          periodSeconds: '10'\n          successThreshold: '1'\n          timeoutSeconds: '1'\n          failureThreshold: '3'\n      logConfig:\n        logBeginRule: None\n      code:\n        ossBucketName: ${defaultBucket.bucket}\n        ossObjectName: ${defaultBucketObject.key}\n        checksum: '4270285996107335518'\n      instanceLifecycleConfig:\n        initializer:\n          timeout: '1'\n          handler: index.init\n        preStop:\n          timeout: '1'\n          handler: index.stop\n      cpu: '0.5'\n      instanceConcurrency: '2'\n      functionName: ${name}-${default.result}\n      environmentVariables:\n        EnvKey: EnvVal\n      internetAccess: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFunction Compute Service V3 (FCV3) Function can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fc/v3Function:V3Function example \u003cid\u003e\n```\n\n","properties":{"code":{"$ref":"#/types/alicloud:fc/V3FunctionCode:V3FunctionCode","description":"Function code ZIP package. code and customContainerConfig. See \u003cspan pulumi-lang-nodejs=\"`code`\" pulumi-lang-dotnet=\"`Code`\" pulumi-lang-go=\"`code`\" pulumi-lang-python=\"`code`\" pulumi-lang-yaml=\"`code`\" pulumi-lang-java=\"`code`\"\u003e`code`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"codeSize":{"type":"integer","description":"The code package size of the function returned by the system, in byte Example : 1024\n"},"cpu":{"type":"number","description":"The CPU specification of the function. The unit is vCPU, which is a multiple of the 0.05 vCPU.\n"},"createTime":{"type":"string","description":"The creation time of the function.\n"},"customContainerConfig":{"$ref":"#/types/alicloud:fc/V3FunctionCustomContainerConfig:V3FunctionCustomContainerConfig","description":"The configuration of the custom container runtime. After the configuration is successful, the function can use the custom container image to execute the function. code and customContainerConfig. See \u003cspan pulumi-lang-nodejs=\"`customContainerConfig`\" pulumi-lang-dotnet=\"`CustomContainerConfig`\" pulumi-lang-go=\"`customContainerConfig`\" pulumi-lang-python=\"`custom_container_config`\" pulumi-lang-yaml=\"`customContainerConfig`\" pulumi-lang-java=\"`customContainerConfig`\"\u003e`custom_container_config`\u003c/span\u003e below.\n"},"customDns":{"$ref":"#/types/alicloud:fc/V3FunctionCustomDns:V3FunctionCustomDns","description":"Function custom DNS configuration See \u003cspan pulumi-lang-nodejs=\"`customDns`\" pulumi-lang-dotnet=\"`CustomDns`\" pulumi-lang-go=\"`customDns`\" pulumi-lang-python=\"`custom_dns`\" pulumi-lang-yaml=\"`customDns`\" pulumi-lang-java=\"`customDns`\"\u003e`custom_dns`\u003c/span\u003e below.\n"},"customRuntimeConfig":{"$ref":"#/types/alicloud:fc/V3FunctionCustomRuntimeConfig:V3FunctionCustomRuntimeConfig","description":"Customize the runtime configuration. See \u003cspan pulumi-lang-nodejs=\"`customRuntimeConfig`\" pulumi-lang-dotnet=\"`CustomRuntimeConfig`\" pulumi-lang-go=\"`customRuntimeConfig`\" pulumi-lang-python=\"`custom_runtime_config`\" pulumi-lang-yaml=\"`customRuntimeConfig`\" pulumi-lang-java=\"`customRuntimeConfig`\"\u003e`custom_runtime_config`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"The description of the function. The function compute system does not use this attribute value, but we recommend that you set a concise and clear description for the function.\n"},"diskSize":{"type":"integer","description":"The disk specification of the function, in MB. The optional value is 512 MB or 10240MB.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variable set for the function, you can get the value of the environment variable in the function.\n"},"functionArn":{"type":"string","description":"ARN of function\n"},"functionId":{"type":"string","description":"The first ID of the resource\n"},"functionName":{"type":"string","description":"The function name. Consists of uppercase and lowercase letters, digits (0 to 9), underscores (_), and dashes (-). It must begin with an English letter (a ~ z), (A ~ Z), or an underscore (_). Case sensitive. The length is 1~128 characters.\n"},"gpuConfig":{"$ref":"#/types/alicloud:fc/V3FunctionGpuConfig:V3FunctionGpuConfig","description":"Function GPU configuration. See \u003cspan pulumi-lang-nodejs=\"`gpuConfig`\" pulumi-lang-dotnet=\"`GpuConfig`\" pulumi-lang-go=\"`gpuConfig`\" pulumi-lang-python=\"`gpu_config`\" pulumi-lang-yaml=\"`gpuConfig`\" pulumi-lang-java=\"`gpuConfig`\"\u003e`gpu_config`\u003c/span\u003e below.\n"},"handler":{"type":"string","description":"Function Handler: the call entry for the function compute system to run your function.\n"},"idleTimeout":{"type":"integer","description":"Destroy an instance when the instance no-request duration exceeds this attribute. - 1 means that the threshold is cleared and the system default behavior is used.\n"},"instanceConcurrency":{"type":"integer","description":"Maximum instance concurrency.\n"},"instanceIsolationMode":{"type":"string","description":"Instance isolation mode\n"},"instanceLifecycleConfig":{"$ref":"#/types/alicloud:fc/V3FunctionInstanceLifecycleConfig:V3FunctionInstanceLifecycleConfig","description":"Instance lifecycle callback method configuration. See \u003cspan pulumi-lang-nodejs=\"`instanceLifecycleConfig`\" pulumi-lang-dotnet=\"`InstanceLifecycleConfig`\" pulumi-lang-go=\"`instanceLifecycleConfig`\" pulumi-lang-python=\"`instance_lifecycle_config`\" pulumi-lang-yaml=\"`instanceLifecycleConfig`\" pulumi-lang-java=\"`instanceLifecycleConfig`\"\u003e`instance_lifecycle_config`\u003c/span\u003e below.\n"},"internetAccess":{"type":"boolean","description":"Allow function to access public network\n"},"invocationRestriction":{"$ref":"#/types/alicloud:fc/V3FunctionInvocationRestriction:V3FunctionInvocationRestriction","description":"Invocation Restriction Detail See \u003cspan pulumi-lang-nodejs=\"`invocationRestriction`\" pulumi-lang-dotnet=\"`InvocationRestriction`\" pulumi-lang-go=\"`invocationRestriction`\" pulumi-lang-python=\"`invocation_restriction`\" pulumi-lang-yaml=\"`invocationRestriction`\" pulumi-lang-java=\"`invocationRestriction`\"\u003e`invocation_restriction`\u003c/span\u003e below.\n"},"lastModifiedTime":{"type":"string","description":"Last time the function was Updated\n"},"lastUpdateStatus":{"type":"string","description":"The status of the last function update operation. When the function is created successfully, the value is Successful. Optional values are Successful, Failed, and InProgress.\n"},"lastUpdateStatusReason":{"type":"string","description":"The reason that caused the last function to update the Operation State to the current value\n"},"lastUpdateStatusReasonCode":{"type":"string","description":"Status code of the reason that caused the last function update operation status to the current value\n"},"layers":{"type":"array","items":{"type":"string"},"description":"The list of layers.\n"},"logConfig":{"$ref":"#/types/alicloud:fc/V3FunctionLogConfig:V3FunctionLogConfig","description":"The logs generated by the function are written to the configured Logstore. See \u003cspan pulumi-lang-nodejs=\"`logConfig`\" pulumi-lang-dotnet=\"`LogConfig`\" pulumi-lang-go=\"`logConfig`\" pulumi-lang-python=\"`log_config`\" pulumi-lang-yaml=\"`logConfig`\" pulumi-lang-java=\"`logConfig`\"\u003e`log_config`\u003c/span\u003e below.\n"},"memorySize":{"type":"integer","description":"The memory specification of the function. The unit is MB. The memory size is a multiple of 64MB. The minimum value is 128MB and the maximum value is 32GB. At the same time, the ratio of cpu to memorySize (calculated by GB) should be between 1:1 and 1:4.\n"},"nasConfig":{"$ref":"#/types/alicloud:fc/V3FunctionNasConfig:V3FunctionNasConfig","description":"NAS configuration. After this parameter is configured, the function can access the specified NAS resource. See \u003cspan pulumi-lang-nodejs=\"`nasConfig`\" pulumi-lang-dotnet=\"`NasConfig`\" pulumi-lang-go=\"`nasConfig`\" pulumi-lang-python=\"`nas_config`\" pulumi-lang-yaml=\"`nasConfig`\" pulumi-lang-java=\"`nasConfig`\"\u003e`nas_config`\u003c/span\u003e below.\n"},"ossMountConfig":{"$ref":"#/types/alicloud:fc/V3FunctionOssMountConfig:V3FunctionOssMountConfig","description":"OSS mount configuration See \u003cspan pulumi-lang-nodejs=\"`ossMountConfig`\" pulumi-lang-dotnet=\"`OssMountConfig`\" pulumi-lang-go=\"`ossMountConfig`\" pulumi-lang-python=\"`oss_mount_config`\" pulumi-lang-yaml=\"`ossMountConfig`\" pulumi-lang-java=\"`ossMountConfig`\"\u003e`oss_mount_config`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID\n"},"role":{"type":"string","description":"The user is authorized to the RAM role of function compute. After the configuration, function compute will assume this role to generate temporary access credentials. In the function, you can use the temporary access credentials of the role to access the specified Alibaba cloud service, such as OSS and OTS\n"},"runtime":{"type":"string","description":"Function runtime type\n"},"sessionAffinity":{"type":"string","description":"The affinity policy of the function compute call request. To implement the request affinity of the MCP SSE protocol, set it to MCP_SSE. If Cookie affinity is used, it can be set to GENERATED_COOKIE. If Header affinity is used, it can be set to HEADER_FIELD. If it is not set or set to NONE, the affinity effect is not set, and the request is routed according to the default scheduling policy of the function calculation system.\n"},"sessionAffinityConfig":{"type":"string","description":"When you set the sessionAffinity affinity type, you need to set the relevant affinity configuration. For example, the MCP_SSE affinity needs to fill in the mcpssessionaffinityconfig configuration. The Cookie affinity needs to be filled with the CookieSessionAffinityConfig configuration, and the Header Field affinity needs to be filled with the HeaderFieldSessionAffinityConfig configuration.\n"},"state":{"type":"string","description":"Function Status\n"},"stateReason":{"type":"string","description":"The reason why the function is in the current state\n"},"stateReasonCode":{"type":"string","description":"The status code of the reason the function is in the current state.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"timeout":{"type":"integer","description":"The maximum running time of the function, in seconds.\n"},"tracingConfig":{"$ref":"#/types/alicloud:fc/V3FunctionTracingConfig:V3FunctionTracingConfig","description":"Tracing configuration\n"},"vpcConfig":{"$ref":"#/types/alicloud:fc/V3FunctionVpcConfig:V3FunctionVpcConfig","description":"VPC configuration. After this parameter is configured, the function can access the specified VPC resources. See \u003cspan pulumi-lang-nodejs=\"`vpcConfig`\" pulumi-lang-dotnet=\"`VpcConfig`\" pulumi-lang-go=\"`vpcConfig`\" pulumi-lang-python=\"`vpc_config`\" pulumi-lang-yaml=\"`vpcConfig`\" pulumi-lang-java=\"`vpcConfig`\"\u003e`vpc_config`\u003c/span\u003e below.\n"}},"required":["codeSize","cpu","createTime","diskSize","functionArn","functionId","functionName","handler","instanceConcurrency","instanceIsolationMode","internetAccess","lastModifiedTime","lastUpdateStatus","lastUpdateStatusReason","lastUpdateStatusReasonCode","memorySize","nasConfig","ossMountConfig","resourceGroupId","runtime","sessionAffinity","state","stateReason","stateReasonCode","timeout","tracingConfig","vpcConfig"],"inputProperties":{"code":{"$ref":"#/types/alicloud:fc/V3FunctionCode:V3FunctionCode","description":"Function code ZIP package. code and customContainerConfig. See \u003cspan pulumi-lang-nodejs=\"`code`\" pulumi-lang-dotnet=\"`Code`\" pulumi-lang-go=\"`code`\" pulumi-lang-python=\"`code`\" pulumi-lang-yaml=\"`code`\" pulumi-lang-java=\"`code`\"\u003e`code`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"cpu":{"type":"number","description":"The CPU specification of the function. The unit is vCPU, which is a multiple of the 0.05 vCPU.\n"},"customContainerConfig":{"$ref":"#/types/alicloud:fc/V3FunctionCustomContainerConfig:V3FunctionCustomContainerConfig","description":"The configuration of the custom container runtime. After the configuration is successful, the function can use the custom container image to execute the function. code and customContainerConfig. See \u003cspan pulumi-lang-nodejs=\"`customContainerConfig`\" pulumi-lang-dotnet=\"`CustomContainerConfig`\" pulumi-lang-go=\"`customContainerConfig`\" pulumi-lang-python=\"`custom_container_config`\" pulumi-lang-yaml=\"`customContainerConfig`\" pulumi-lang-java=\"`customContainerConfig`\"\u003e`custom_container_config`\u003c/span\u003e below.\n"},"customDns":{"$ref":"#/types/alicloud:fc/V3FunctionCustomDns:V3FunctionCustomDns","description":"Function custom DNS configuration See \u003cspan pulumi-lang-nodejs=\"`customDns`\" pulumi-lang-dotnet=\"`CustomDns`\" pulumi-lang-go=\"`customDns`\" pulumi-lang-python=\"`custom_dns`\" pulumi-lang-yaml=\"`customDns`\" pulumi-lang-java=\"`customDns`\"\u003e`custom_dns`\u003c/span\u003e below.\n"},"customRuntimeConfig":{"$ref":"#/types/alicloud:fc/V3FunctionCustomRuntimeConfig:V3FunctionCustomRuntimeConfig","description":"Customize the runtime configuration. See \u003cspan pulumi-lang-nodejs=\"`customRuntimeConfig`\" pulumi-lang-dotnet=\"`CustomRuntimeConfig`\" pulumi-lang-go=\"`customRuntimeConfig`\" pulumi-lang-python=\"`custom_runtime_config`\" pulumi-lang-yaml=\"`customRuntimeConfig`\" pulumi-lang-java=\"`customRuntimeConfig`\"\u003e`custom_runtime_config`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"The description of the function. The function compute system does not use this attribute value, but we recommend that you set a concise and clear description for the function.\n"},"diskSize":{"type":"integer","description":"The disk specification of the function, in MB. The optional value is 512 MB or 10240MB.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variable set for the function, you can get the value of the environment variable in the function.\n"},"functionName":{"type":"string","description":"The function name. Consists of uppercase and lowercase letters, digits (0 to 9), underscores (_), and dashes (-). It must begin with an English letter (a ~ z), (A ~ Z), or an underscore (_). Case sensitive. The length is 1~128 characters.\n","willReplaceOnChanges":true},"gpuConfig":{"$ref":"#/types/alicloud:fc/V3FunctionGpuConfig:V3FunctionGpuConfig","description":"Function GPU configuration. See \u003cspan pulumi-lang-nodejs=\"`gpuConfig`\" pulumi-lang-dotnet=\"`GpuConfig`\" pulumi-lang-go=\"`gpuConfig`\" pulumi-lang-python=\"`gpu_config`\" pulumi-lang-yaml=\"`gpuConfig`\" pulumi-lang-java=\"`gpuConfig`\"\u003e`gpu_config`\u003c/span\u003e below.\n"},"handler":{"type":"string","description":"Function Handler: the call entry for the function compute system to run your function.\n"},"idleTimeout":{"type":"integer","description":"Destroy an instance when the instance no-request duration exceeds this attribute. - 1 means that the threshold is cleared and the system default behavior is used.\n","willReplaceOnChanges":true},"instanceConcurrency":{"type":"integer","description":"Maximum instance concurrency.\n"},"instanceIsolationMode":{"type":"string","description":"Instance isolation mode\n"},"instanceLifecycleConfig":{"$ref":"#/types/alicloud:fc/V3FunctionInstanceLifecycleConfig:V3FunctionInstanceLifecycleConfig","description":"Instance lifecycle callback method configuration. See \u003cspan pulumi-lang-nodejs=\"`instanceLifecycleConfig`\" pulumi-lang-dotnet=\"`InstanceLifecycleConfig`\" pulumi-lang-go=\"`instanceLifecycleConfig`\" pulumi-lang-python=\"`instance_lifecycle_config`\" pulumi-lang-yaml=\"`instanceLifecycleConfig`\" pulumi-lang-java=\"`instanceLifecycleConfig`\"\u003e`instance_lifecycle_config`\u003c/span\u003e below.\n"},"internetAccess":{"type":"boolean","description":"Allow function to access public network\n"},"invocationRestriction":{"$ref":"#/types/alicloud:fc/V3FunctionInvocationRestriction:V3FunctionInvocationRestriction","description":"Invocation Restriction Detail See \u003cspan pulumi-lang-nodejs=\"`invocationRestriction`\" pulumi-lang-dotnet=\"`InvocationRestriction`\" pulumi-lang-go=\"`invocationRestriction`\" pulumi-lang-python=\"`invocation_restriction`\" pulumi-lang-yaml=\"`invocationRestriction`\" pulumi-lang-java=\"`invocationRestriction`\"\u003e`invocation_restriction`\u003c/span\u003e below.\n"},"layers":{"type":"array","items":{"type":"string"},"description":"The list of layers.\n"},"logConfig":{"$ref":"#/types/alicloud:fc/V3FunctionLogConfig:V3FunctionLogConfig","description":"The logs generated by the function are written to the configured Logstore. See \u003cspan pulumi-lang-nodejs=\"`logConfig`\" pulumi-lang-dotnet=\"`LogConfig`\" pulumi-lang-go=\"`logConfig`\" pulumi-lang-python=\"`log_config`\" pulumi-lang-yaml=\"`logConfig`\" pulumi-lang-java=\"`logConfig`\"\u003e`log_config`\u003c/span\u003e below.\n"},"memorySize":{"type":"integer","description":"The memory specification of the function. The unit is MB. The memory size is a multiple of 64MB. The minimum value is 128MB and the maximum value is 32GB. At the same time, the ratio of cpu to memorySize (calculated by GB) should be between 1:1 and 1:4.\n"},"nasConfig":{"$ref":"#/types/alicloud:fc/V3FunctionNasConfig:V3FunctionNasConfig","description":"NAS configuration. After this parameter is configured, the function can access the specified NAS resource. See \u003cspan pulumi-lang-nodejs=\"`nasConfig`\" pulumi-lang-dotnet=\"`NasConfig`\" pulumi-lang-go=\"`nasConfig`\" pulumi-lang-python=\"`nas_config`\" pulumi-lang-yaml=\"`nasConfig`\" pulumi-lang-java=\"`nasConfig`\"\u003e`nas_config`\u003c/span\u003e below.\n"},"ossMountConfig":{"$ref":"#/types/alicloud:fc/V3FunctionOssMountConfig:V3FunctionOssMountConfig","description":"OSS mount configuration See \u003cspan pulumi-lang-nodejs=\"`ossMountConfig`\" pulumi-lang-dotnet=\"`OssMountConfig`\" pulumi-lang-go=\"`ossMountConfig`\" pulumi-lang-python=\"`oss_mount_config`\" pulumi-lang-yaml=\"`ossMountConfig`\" pulumi-lang-java=\"`ossMountConfig`\"\u003e`oss_mount_config`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID\n"},"role":{"type":"string","description":"The user is authorized to the RAM role of function compute. After the configuration, function compute will assume this role to generate temporary access credentials. In the function, you can use the temporary access credentials of the role to access the specified Alibaba cloud service, such as OSS and OTS\n"},"runtime":{"type":"string","description":"Function runtime type\n"},"sessionAffinity":{"type":"string","description":"The affinity policy of the function compute call request. To implement the request affinity of the MCP SSE protocol, set it to MCP_SSE. If Cookie affinity is used, it can be set to GENERATED_COOKIE. If Header affinity is used, it can be set to HEADER_FIELD. If it is not set or set to NONE, the affinity effect is not set, and the request is routed according to the default scheduling policy of the function calculation system.\n"},"sessionAffinityConfig":{"type":"string","description":"When you set the sessionAffinity affinity type, you need to set the relevant affinity configuration. For example, the MCP_SSE affinity needs to fill in the mcpssessionaffinityconfig configuration. The Cookie affinity needs to be filled with the CookieSessionAffinityConfig configuration, and the Header Field affinity needs to be filled with the HeaderFieldSessionAffinityConfig configuration.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"timeout":{"type":"integer","description":"The maximum running time of the function, in seconds.\n"},"vpcConfig":{"$ref":"#/types/alicloud:fc/V3FunctionVpcConfig:V3FunctionVpcConfig","description":"VPC configuration. After this parameter is configured, the function can access the specified VPC resources. See \u003cspan pulumi-lang-nodejs=\"`vpcConfig`\" pulumi-lang-dotnet=\"`VpcConfig`\" pulumi-lang-go=\"`vpcConfig`\" pulumi-lang-python=\"`vpc_config`\" pulumi-lang-yaml=\"`vpcConfig`\" pulumi-lang-java=\"`vpcConfig`\"\u003e`vpc_config`\u003c/span\u003e below.\n"}},"requiredInputs":["handler","runtime"],"stateInputs":{"description":"Input properties used for looking up and filtering V3Function resources.\n","properties":{"code":{"$ref":"#/types/alicloud:fc/V3FunctionCode:V3FunctionCode","description":"Function code ZIP package. code and customContainerConfig. See \u003cspan pulumi-lang-nodejs=\"`code`\" pulumi-lang-dotnet=\"`Code`\" pulumi-lang-go=\"`code`\" pulumi-lang-python=\"`code`\" pulumi-lang-yaml=\"`code`\" pulumi-lang-java=\"`code`\"\u003e`code`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"codeSize":{"type":"integer","description":"The code package size of the function returned by the system, in byte Example : 1024\n"},"cpu":{"type":"number","description":"The CPU specification of the function. The unit is vCPU, which is a multiple of the 0.05 vCPU.\n"},"createTime":{"type":"string","description":"The creation time of the function.\n"},"customContainerConfig":{"$ref":"#/types/alicloud:fc/V3FunctionCustomContainerConfig:V3FunctionCustomContainerConfig","description":"The configuration of the custom container runtime. After the configuration is successful, the function can use the custom container image to execute the function. code and customContainerConfig. See \u003cspan pulumi-lang-nodejs=\"`customContainerConfig`\" pulumi-lang-dotnet=\"`CustomContainerConfig`\" pulumi-lang-go=\"`customContainerConfig`\" pulumi-lang-python=\"`custom_container_config`\" pulumi-lang-yaml=\"`customContainerConfig`\" pulumi-lang-java=\"`customContainerConfig`\"\u003e`custom_container_config`\u003c/span\u003e below.\n"},"customDns":{"$ref":"#/types/alicloud:fc/V3FunctionCustomDns:V3FunctionCustomDns","description":"Function custom DNS configuration See \u003cspan pulumi-lang-nodejs=\"`customDns`\" pulumi-lang-dotnet=\"`CustomDns`\" pulumi-lang-go=\"`customDns`\" pulumi-lang-python=\"`custom_dns`\" pulumi-lang-yaml=\"`customDns`\" pulumi-lang-java=\"`customDns`\"\u003e`custom_dns`\u003c/span\u003e below.\n"},"customRuntimeConfig":{"$ref":"#/types/alicloud:fc/V3FunctionCustomRuntimeConfig:V3FunctionCustomRuntimeConfig","description":"Customize the runtime configuration. See \u003cspan pulumi-lang-nodejs=\"`customRuntimeConfig`\" pulumi-lang-dotnet=\"`CustomRuntimeConfig`\" pulumi-lang-go=\"`customRuntimeConfig`\" pulumi-lang-python=\"`custom_runtime_config`\" pulumi-lang-yaml=\"`customRuntimeConfig`\" pulumi-lang-java=\"`customRuntimeConfig`\"\u003e`custom_runtime_config`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"The description of the function. The function compute system does not use this attribute value, but we recommend that you set a concise and clear description for the function.\n"},"diskSize":{"type":"integer","description":"The disk specification of the function, in MB. The optional value is 512 MB or 10240MB.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variable set for the function, you can get the value of the environment variable in the function.\n"},"functionArn":{"type":"string","description":"ARN of function\n"},"functionId":{"type":"string","description":"The first ID of the resource\n"},"functionName":{"type":"string","description":"The function name. Consists of uppercase and lowercase letters, digits (0 to 9), underscores (_), and dashes (-). It must begin with an English letter (a ~ z), (A ~ Z), or an underscore (_). Case sensitive. The length is 1~128 characters.\n","willReplaceOnChanges":true},"gpuConfig":{"$ref":"#/types/alicloud:fc/V3FunctionGpuConfig:V3FunctionGpuConfig","description":"Function GPU configuration. See \u003cspan pulumi-lang-nodejs=\"`gpuConfig`\" pulumi-lang-dotnet=\"`GpuConfig`\" pulumi-lang-go=\"`gpuConfig`\" pulumi-lang-python=\"`gpu_config`\" pulumi-lang-yaml=\"`gpuConfig`\" pulumi-lang-java=\"`gpuConfig`\"\u003e`gpu_config`\u003c/span\u003e below.\n"},"handler":{"type":"string","description":"Function Handler: the call entry for the function compute system to run your function.\n"},"idleTimeout":{"type":"integer","description":"Destroy an instance when the instance no-request duration exceeds this attribute. - 1 means that the threshold is cleared and the system default behavior is used.\n","willReplaceOnChanges":true},"instanceConcurrency":{"type":"integer","description":"Maximum instance concurrency.\n"},"instanceIsolationMode":{"type":"string","description":"Instance isolation mode\n"},"instanceLifecycleConfig":{"$ref":"#/types/alicloud:fc/V3FunctionInstanceLifecycleConfig:V3FunctionInstanceLifecycleConfig","description":"Instance lifecycle callback method configuration. See \u003cspan pulumi-lang-nodejs=\"`instanceLifecycleConfig`\" pulumi-lang-dotnet=\"`InstanceLifecycleConfig`\" pulumi-lang-go=\"`instanceLifecycleConfig`\" pulumi-lang-python=\"`instance_lifecycle_config`\" pulumi-lang-yaml=\"`instanceLifecycleConfig`\" pulumi-lang-java=\"`instanceLifecycleConfig`\"\u003e`instance_lifecycle_config`\u003c/span\u003e below.\n"},"internetAccess":{"type":"boolean","description":"Allow function to access public network\n"},"invocationRestriction":{"$ref":"#/types/alicloud:fc/V3FunctionInvocationRestriction:V3FunctionInvocationRestriction","description":"Invocation Restriction Detail See \u003cspan pulumi-lang-nodejs=\"`invocationRestriction`\" pulumi-lang-dotnet=\"`InvocationRestriction`\" pulumi-lang-go=\"`invocationRestriction`\" pulumi-lang-python=\"`invocation_restriction`\" pulumi-lang-yaml=\"`invocationRestriction`\" pulumi-lang-java=\"`invocationRestriction`\"\u003e`invocation_restriction`\u003c/span\u003e below.\n"},"lastModifiedTime":{"type":"string","description":"Last time the function was Updated\n"},"lastUpdateStatus":{"type":"string","description":"The status of the last function update operation. When the function is created successfully, the value is Successful. Optional values are Successful, Failed, and InProgress.\n"},"lastUpdateStatusReason":{"type":"string","description":"The reason that caused the last function to update the Operation State to the current value\n"},"lastUpdateStatusReasonCode":{"type":"string","description":"Status code of the reason that caused the last function update operation status to the current value\n"},"layers":{"type":"array","items":{"type":"string"},"description":"The list of layers.\n"},"logConfig":{"$ref":"#/types/alicloud:fc/V3FunctionLogConfig:V3FunctionLogConfig","description":"The logs generated by the function are written to the configured Logstore. See \u003cspan pulumi-lang-nodejs=\"`logConfig`\" pulumi-lang-dotnet=\"`LogConfig`\" pulumi-lang-go=\"`logConfig`\" pulumi-lang-python=\"`log_config`\" pulumi-lang-yaml=\"`logConfig`\" pulumi-lang-java=\"`logConfig`\"\u003e`log_config`\u003c/span\u003e below.\n"},"memorySize":{"type":"integer","description":"The memory specification of the function. The unit is MB. The memory size is a multiple of 64MB. The minimum value is 128MB and the maximum value is 32GB. At the same time, the ratio of cpu to memorySize (calculated by GB) should be between 1:1 and 1:4.\n"},"nasConfig":{"$ref":"#/types/alicloud:fc/V3FunctionNasConfig:V3FunctionNasConfig","description":"NAS configuration. After this parameter is configured, the function can access the specified NAS resource. See \u003cspan pulumi-lang-nodejs=\"`nasConfig`\" pulumi-lang-dotnet=\"`NasConfig`\" pulumi-lang-go=\"`nasConfig`\" pulumi-lang-python=\"`nas_config`\" pulumi-lang-yaml=\"`nasConfig`\" pulumi-lang-java=\"`nasConfig`\"\u003e`nas_config`\u003c/span\u003e below.\n"},"ossMountConfig":{"$ref":"#/types/alicloud:fc/V3FunctionOssMountConfig:V3FunctionOssMountConfig","description":"OSS mount configuration See \u003cspan pulumi-lang-nodejs=\"`ossMountConfig`\" pulumi-lang-dotnet=\"`OssMountConfig`\" pulumi-lang-go=\"`ossMountConfig`\" pulumi-lang-python=\"`oss_mount_config`\" pulumi-lang-yaml=\"`ossMountConfig`\" pulumi-lang-java=\"`ossMountConfig`\"\u003e`oss_mount_config`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID\n"},"role":{"type":"string","description":"The user is authorized to the RAM role of function compute. After the configuration, function compute will assume this role to generate temporary access credentials. In the function, you can use the temporary access credentials of the role to access the specified Alibaba cloud service, such as OSS and OTS\n"},"runtime":{"type":"string","description":"Function runtime type\n"},"sessionAffinity":{"type":"string","description":"The affinity policy of the function compute call request. To implement the request affinity of the MCP SSE protocol, set it to MCP_SSE. If Cookie affinity is used, it can be set to GENERATED_COOKIE. If Header affinity is used, it can be set to HEADER_FIELD. If it is not set or set to NONE, the affinity effect is not set, and the request is routed according to the default scheduling policy of the function calculation system.\n"},"sessionAffinityConfig":{"type":"string","description":"When you set the sessionAffinity affinity type, you need to set the relevant affinity configuration. For example, the MCP_SSE affinity needs to fill in the mcpssessionaffinityconfig configuration. The Cookie affinity needs to be filled with the CookieSessionAffinityConfig configuration, and the Header Field affinity needs to be filled with the HeaderFieldSessionAffinityConfig configuration.\n"},"state":{"type":"string","description":"Function Status\n"},"stateReason":{"type":"string","description":"The reason why the function is in the current state\n"},"stateReasonCode":{"type":"string","description":"The status code of the reason the function is in the current state.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"timeout":{"type":"integer","description":"The maximum running time of the function, in seconds.\n"},"tracingConfig":{"$ref":"#/types/alicloud:fc/V3FunctionTracingConfig:V3FunctionTracingConfig","description":"Tracing configuration\n"},"vpcConfig":{"$ref":"#/types/alicloud:fc/V3FunctionVpcConfig:V3FunctionVpcConfig","description":"VPC configuration. After this parameter is configured, the function can access the specified VPC resources. See \u003cspan pulumi-lang-nodejs=\"`vpcConfig`\" pulumi-lang-dotnet=\"`VpcConfig`\" pulumi-lang-go=\"`vpcConfig`\" pulumi-lang-python=\"`vpc_config`\" pulumi-lang-yaml=\"`vpcConfig`\" pulumi-lang-java=\"`vpcConfig`\"\u003e`vpc_config`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:fc/v3FunctionVersion:V3FunctionVersion":{"description":"Provides a FCV3 Function Version resource.\n\nVersion of the function.\n\nFor information about FCV3 Function Version and how to use it, see [What is Function Version](https://www.alibabacloud.com/help/en/functioncompute/api-fc-2023-03-30-listfunctionversions).\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Uuid(\"default\", {});\nconst _function = new alicloud.fc.V3Function(\"function\", {\n    memorySize: 512,\n    cpu: 0.5,\n    handler: \"index.Handler\",\n    code: {\n        zipFile: \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    functionName: `${name}-${_default.result}`,\n    runtime: \"python3.9\",\n    diskSize: 512,\n    logConfig: {\n        logBeginRule: \"None\",\n    },\n});\nconst defaultV3FunctionVersion = new alicloud.fc.V3FunctionVersion(\"default\", {\n    functionName: _function.functionName,\n    description: \"version1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Uuid(\"default\")\nfunction = alicloud.fc.V3Function(\"function\",\n    memory_size=512,\n    cpu=0.5,\n    handler=\"index.Handler\",\n    code={\n        \"zip_file\": \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    function_name=f\"{name}-{default['result']}\",\n    runtime=\"python3.9\",\n    disk_size=512,\n    log_config={\n        \"log_begin_rule\": \"None\",\n    })\ndefault_v3_function_version = alicloud.fc.V3FunctionVersion(\"default\",\n    function_name=function.function_name,\n    description=\"version1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Uuid(\"default\");\n\n    var function = new AliCloud.FC.V3Function(\"function\", new()\n    {\n        MemorySize = 512,\n        Cpu = 0.5,\n        Handler = \"index.Handler\",\n        Code = new AliCloud.FC.Inputs.V3FunctionCodeArgs\n        {\n            ZipFile = \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n        },\n        FunctionName = $\"{name}-{@default.Result}\",\n        Runtime = \"python3.9\",\n        DiskSize = 512,\n        LogConfig = new AliCloud.FC.Inputs.V3FunctionLogConfigArgs\n        {\n            LogBeginRule = \"None\",\n        },\n    });\n\n    var defaultV3FunctionVersion = new AliCloud.FC.V3FunctionVersion(\"default\", new()\n    {\n        FunctionName = function.FunctionName,\n        Description = \"version1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewUuid(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfunction, err := fc.NewV3Function(ctx, \"function\", \u0026fc.V3FunctionArgs{\n\t\t\tMemorySize: pulumi.Int(512),\n\t\t\tCpu:        pulumi.Float64(0.5),\n\t\t\tHandler:    pulumi.String(\"index.Handler\"),\n\t\t\tCode: \u0026fc.V3FunctionCodeArgs{\n\t\t\t\tZipFile: pulumi.String(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\"),\n\t\t\t},\n\t\t\tFunctionName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tRuntime:      pulumi.String(\"python3.9\"),\n\t\t\tDiskSize:     pulumi.Int(512),\n\t\t\tLogConfig: \u0026fc.V3FunctionLogConfigArgs{\n\t\t\t\tLogBeginRule: pulumi.String(\"None\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fc.NewV3FunctionVersion(ctx, \"default\", \u0026fc.V3FunctionVersionArgs{\n\t\t\tFunctionName: function.FunctionName,\n\t\t\tDescription:  pulumi.String(\"version1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Uuid;\nimport com.pulumi.alicloud.fc.V3Function;\nimport com.pulumi.alicloud.fc.V3FunctionArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionCodeArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionLogConfigArgs;\nimport com.pulumi.alicloud.fc.V3FunctionVersion;\nimport com.pulumi.alicloud.fc.V3FunctionVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Uuid(\"default\");\n\n        var function = new V3Function(\"function\", V3FunctionArgs.builder()\n            .memorySize(512)\n            .cpu(0.5)\n            .handler(\"index.Handler\")\n            .code(V3FunctionCodeArgs.builder()\n                .zipFile(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\")\n                .build())\n            .functionName(String.format(\"%s-%s\", name,default_.result()))\n            .runtime(\"python3.9\")\n            .diskSize(512)\n            .logConfig(V3FunctionLogConfigArgs.builder()\n                .logBeginRule(\"None\")\n                .build())\n            .build());\n\n        var defaultV3FunctionVersion = new V3FunctionVersion(\"defaultV3FunctionVersion\", V3FunctionVersionArgs.builder()\n            .functionName(function.functionName())\n            .description(\"version1\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Uuid\n  function:\n    type: alicloud:fc:V3Function\n    properties:\n      memorySize: '512'\n      cpu: 0.5\n      handler: index.Handler\n      code:\n        zipFile: UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\n      functionName: ${name}-${default.result}\n      runtime: python3.9\n      diskSize: '512'\n      logConfig:\n        logBeginRule: None\n  defaultV3FunctionVersion:\n    type: alicloud:fc:V3FunctionVersion\n    name: default\n    properties:\n      functionName: ${function.functionName}\n      description: version1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFCV3 Function Version can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fc/v3FunctionVersion:V3FunctionVersion example \u003cfunction_name\u003e:\u003cversion_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Description of the function version\n"},"functionName":{"type":"string","description":"Function Name\n"},"lastModifiedTime":{"type":"string","description":"(Available since v1.234.0) Update time\n"},"versionId":{"type":"string","description":"Function Version\n"}},"required":["createTime","functionName","lastModifiedTime","versionId"],"inputProperties":{"description":{"type":"string","description":"Description of the function version\n","willReplaceOnChanges":true},"functionName":{"type":"string","description":"Function Name\n","willReplaceOnChanges":true}},"requiredInputs":["functionName"],"stateInputs":{"description":"Input properties used for looking up and filtering V3FunctionVersion resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Description of the function version\n","willReplaceOnChanges":true},"functionName":{"type":"string","description":"Function Name\n","willReplaceOnChanges":true},"lastModifiedTime":{"type":"string","description":"(Available since v1.234.0) Update time\n"},"versionId":{"type":"string","description":"Function Version\n"}},"type":"object"}},"alicloud:fc/v3LayerVersion:V3LayerVersion":{"description":"Provides a FCV3 Layer Version resource.\n\nLayer provides you with the ability to publish and deploy common dependency libraries, runtime environments, and function extensions.\n\nFor information about FCV3 Layer Version and how to use it, see [What is Layer Version](https://www.alibabacloud.com/help/en/functioncompute/api-fc-2023-03-30-createlayerversion).\n\n\u003e **NOTE:** Available since v1.230.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.fc.V3LayerVersion(\"default\", {\n    description: name,\n    layerName: \"FC3LayerResouceTest_ZIP_2024SepWed\",\n    license: \"Apache2.0\",\n    acl: \"0\",\n    code: {\n        zipFile: \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.fc.V3LayerVersion(\"default\",\n    description=name,\n    layer_name=\"FC3LayerResouceTest_ZIP_2024SepWed\",\n    license=\"Apache2.0\",\n    acl=\"0\",\n    code={\n        \"zip_file\": \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.FC.V3LayerVersion(\"default\", new()\n    {\n        Description = name,\n        LayerName = \"FC3LayerResouceTest_ZIP_2024SepWed\",\n        License = \"Apache2.0\",\n        Acl = \"0\",\n        Code = new AliCloud.FC.Inputs.V3LayerVersionCodeArgs\n        {\n            ZipFile = \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := fc.NewV3LayerVersion(ctx, \"default\", \u0026fc.V3LayerVersionArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tLayerName:   pulumi.String(\"FC3LayerResouceTest_ZIP_2024SepWed\"),\n\t\t\tLicense:     pulumi.String(\"Apache2.0\"),\n\t\t\tAcl:         pulumi.String(\"0\"),\n\t\t\tCode: \u0026fc.V3LayerVersionCodeArgs{\n\t\t\t\tZipFile: pulumi.String(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fc.V3LayerVersion;\nimport com.pulumi.alicloud.fc.V3LayerVersionArgs;\nimport com.pulumi.alicloud.fc.inputs.V3LayerVersionCodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new V3LayerVersion(\"default\", V3LayerVersionArgs.builder()\n            .description(name)\n            .layerName(\"FC3LayerResouceTest_ZIP_2024SepWed\")\n            .license(\"Apache2.0\")\n            .acl(\"0\")\n            .code(V3LayerVersionCodeArgs.builder()\n                .zipFile(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:fc:V3LayerVersion\n    properties:\n      description: ${name}\n      layerName: FC3LayerResouceTest_ZIP_2024SepWed\n      license: Apache2.0\n      acl: '0'\n      code:\n        zipFile: UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFCV3 Layer Version can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fc/v3LayerVersion:V3LayerVersion example \u003clayer_name\u003e:\u003cversion\u003e\n```\n\n","properties":{"acl":{"type":"string","description":"The access permission of the layer, 1: public, 0: private, default is private\n"},"code":{"$ref":"#/types/alicloud:fc/V3LayerVersionCode:V3LayerVersionCode","description":"Layer code configuration See \u003cspan pulumi-lang-nodejs=\"`code`\" pulumi-lang-dotnet=\"`Code`\" pulumi-lang-go=\"`code`\" pulumi-lang-python=\"`code`\" pulumi-lang-yaml=\"`code`\" pulumi-lang-java=\"`code`\"\u003e`code`\u003c/span\u003e below.\n"},"codeSize":{"type":"string","description":"(Available since v1.234.0) The code package size of the layer, in bytes.\n"},"compatibleRuntimes":{"type":"array","items":{"type":"string"},"description":"List of runtime environments supported by the layer\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Description of the version\n"},"layerName":{"type":"string","description":"Name of the layer\n"},"layerVersionArn":{"type":"string","description":"(Available since v1.234.0) Layer version ARN. The format is acs:fc:{region }:{ accountID}:layers/{layerName}/versions/{layerVersion}.\n"},"license":{"type":"string","description":"Layer License Agreement\n"},"public":{"type":"string","description":"Whether to expose the layer. Enumeration values: true, false. (Deprecated, please use acl instead)\n"},"version":{"type":"string","description":"The version of the layer\n"}},"required":["codeSize","compatibleRuntimes","createTime","layerName","layerVersionArn","version"],"inputProperties":{"acl":{"type":"string","description":"The access permission of the layer, 1: public, 0: private, default is private\n"},"code":{"$ref":"#/types/alicloud:fc/V3LayerVersionCode:V3LayerVersionCode","description":"Layer code configuration See \u003cspan pulumi-lang-nodejs=\"`code`\" pulumi-lang-dotnet=\"`Code`\" pulumi-lang-go=\"`code`\" pulumi-lang-python=\"`code`\" pulumi-lang-yaml=\"`code`\" pulumi-lang-java=\"`code`\"\u003e`code`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"compatibleRuntimes":{"type":"array","items":{"type":"string"},"description":"List of runtime environments supported by the layer\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of the version\n","willReplaceOnChanges":true},"layerName":{"type":"string","description":"Name of the layer\n","willReplaceOnChanges":true},"license":{"type":"string","description":"Layer License Agreement\n","willReplaceOnChanges":true},"public":{"type":"string","description":"Whether to expose the layer. Enumeration values: true, false. (Deprecated, please use acl instead)\n","willReplaceOnChanges":true}},"requiredInputs":["layerName"],"stateInputs":{"description":"Input properties used for looking up and filtering V3LayerVersion resources.\n","properties":{"acl":{"type":"string","description":"The access permission of the layer, 1: public, 0: private, default is private\n"},"code":{"$ref":"#/types/alicloud:fc/V3LayerVersionCode:V3LayerVersionCode","description":"Layer code configuration See \u003cspan pulumi-lang-nodejs=\"`code`\" pulumi-lang-dotnet=\"`Code`\" pulumi-lang-go=\"`code`\" pulumi-lang-python=\"`code`\" pulumi-lang-yaml=\"`code`\" pulumi-lang-java=\"`code`\"\u003e`code`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"codeSize":{"type":"string","description":"(Available since v1.234.0) The code package size of the layer, in bytes.\n"},"compatibleRuntimes":{"type":"array","items":{"type":"string"},"description":"List of runtime environments supported by the layer\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Description of the version\n","willReplaceOnChanges":true},"layerName":{"type":"string","description":"Name of the layer\n","willReplaceOnChanges":true},"layerVersionArn":{"type":"string","description":"(Available since v1.234.0) Layer version ARN. The format is acs:fc:{region }:{ accountID}:layers/{layerName}/versions/{layerVersion}.\n"},"license":{"type":"string","description":"Layer License Agreement\n","willReplaceOnChanges":true},"public":{"type":"string","description":"Whether to expose the layer. Enumeration values: true, false. (Deprecated, please use acl instead)\n","willReplaceOnChanges":true},"version":{"type":"string","description":"The version of the layer\n"}},"type":"object"}},"alicloud:fc/v3ProvisionConfig:V3ProvisionConfig":{"description":"Provides a FCV3 Provision Config resource.\n\nFunction Reservation Configuration.\n\nFor information about FCV3 Provision Config and how to use it, see [What is Provision Config](https://www.alibabacloud.com/help/en/functioncompute/fc-3-0/developer-reference/api-fc-2023-03-30-putprovisionconfig).\n\n\u003e **NOTE:** Available since v1.230.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as time from \"@pulumi/time\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultProject = new alicloud.log.Project(\"default\", {\n    projectName: `${name}-${_default.result}`,\n    description: name,\n});\nconst defaultStore = new alicloud.log.Store(\"default\", {\n    projectName: defaultProject.name,\n    logstoreName: `${name}-${_default.result}`,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst wait10Minutes = new time.index.Sleep(\"wait_10_minutes\", {createDuration: \"10m\"}, {\n    dependsOn: [defaultStore],\n});\nconst _function = new alicloud.fc.V3Function(\"function\", {\n    memorySize: 512,\n    cpu: 0.5,\n    handler: \"index.handler\",\n    functionName: `${name}-${_default.result}`,\n    runtime: \"python3.10\",\n    diskSize: 512,\n    code: {\n        zipFile: \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    logConfig: {\n        enableInstanceMetrics: true,\n        enableRequestMetrics: true,\n        project: defaultProject.projectName,\n        logstore: defaultStore.logstoreName,\n        logBeginRule: \"None\",\n    },\n}, {\n    dependsOn: [wait10Minutes],\n});\nconst defaultV3ProvisionConfig = new alicloud.fc.V3ProvisionConfig(\"default\", {\n    target: 1,\n    targetTrackingPolicies: [\n        {\n            name: \"t1\",\n            startTime: \"2030-10-10T10:10:10Z\",\n            endTime: \"2035-10-10T10:10:10Z\",\n            minCapacity: 0,\n            maxCapacity: 1,\n            metricTarget: 1,\n            metricType: \"ProvisionedConcurrencyUtilization\",\n        },\n        {\n            metricTarget: 1,\n            metricType: \"ProvisionedConcurrencyUtilization\",\n            name: \"t2\",\n            startTime: \"2030-10-10T10:10:10Z\",\n            endTime: \"2035-10-10T10:10:10Z\",\n            minCapacity: 0,\n            maxCapacity: 1,\n        },\n        {\n            metricType: \"ProvisionedConcurrencyUtilization\",\n            timeZone: \"Asia/Shanghai\",\n            name: \"t3\",\n            startTime: \"2030-10-10T10:10:10\",\n            endTime: \"2035-10-10T10:10:10\",\n            minCapacity: 0,\n            maxCapacity: 1,\n            metricTarget: 1,\n        },\n    ],\n    scheduledActions: [\n        {\n            target: 0,\n            name: \"s1\",\n            startTime: \"2030-10-10T10:10:10Z\",\n            endTime: \"2035-10-10T10:10:10Z\",\n            scheduleExpression: \"cron(0 0 4 * * *)\",\n        },\n        {\n            name: \"s2\",\n            startTime: \"2030-10-10T10:10:10Z\",\n            endTime: \"2035-10-10T10:10:10Z\",\n            scheduleExpression: \"cron(0 0 6 * * *)\",\n            target: 1,\n        },\n        {\n            startTime: \"2030-10-10T10:10:10\",\n            endTime: \"2035-10-10T10:10:10\",\n            scheduleExpression: \"cron(0 0 7 * * *)\",\n            target: 0,\n            timeZone: \"Asia/Shanghai\",\n            name: \"s3\",\n        },\n    ],\n    qualifier: \"LATEST\",\n    alwaysAllocateGpu: true,\n    functionName: _function.functionName,\n    alwaysAllocateCpu: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_time as time\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_project = alicloud.log.Project(\"default\",\n    project_name=f\"{name}-{default['result']}\",\n    description=name)\ndefault_store = alicloud.log.Store(\"default\",\n    project_name=default_project.name,\n    logstore_name=f\"{name}-{default['result']}\",\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\nwait10_minutes = time.index.Sleep(\"wait_10_minutes\", create_duration=10m,\nopts = pulumi.ResourceOptions(depends_on=[default_store]))\nfunction = alicloud.fc.V3Function(\"function\",\n    memory_size=512,\n    cpu=0.5,\n    handler=\"index.handler\",\n    function_name=f\"{name}-{default['result']}\",\n    runtime=\"python3.10\",\n    disk_size=512,\n    code={\n        \"zip_file\": \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    log_config={\n        \"enable_instance_metrics\": True,\n        \"enable_request_metrics\": True,\n        \"project\": default_project.project_name,\n        \"logstore\": default_store.logstore_name,\n        \"log_begin_rule\": \"None\",\n    },\n    opts = pulumi.ResourceOptions(depends_on=[wait10_minutes]))\ndefault_v3_provision_config = alicloud.fc.V3ProvisionConfig(\"default\",\n    target=1,\n    target_tracking_policies=[\n        {\n            \"name\": \"t1\",\n            \"start_time\": \"2030-10-10T10:10:10Z\",\n            \"end_time\": \"2035-10-10T10:10:10Z\",\n            \"min_capacity\": 0,\n            \"max_capacity\": 1,\n            \"metric_target\": 1,\n            \"metric_type\": \"ProvisionedConcurrencyUtilization\",\n        },\n        {\n            \"metric_target\": 1,\n            \"metric_type\": \"ProvisionedConcurrencyUtilization\",\n            \"name\": \"t2\",\n            \"start_time\": \"2030-10-10T10:10:10Z\",\n            \"end_time\": \"2035-10-10T10:10:10Z\",\n            \"min_capacity\": 0,\n            \"max_capacity\": 1,\n        },\n        {\n            \"metric_type\": \"ProvisionedConcurrencyUtilization\",\n            \"time_zone\": \"Asia/Shanghai\",\n            \"name\": \"t3\",\n            \"start_time\": \"2030-10-10T10:10:10\",\n            \"end_time\": \"2035-10-10T10:10:10\",\n            \"min_capacity\": 0,\n            \"max_capacity\": 1,\n            \"metric_target\": 1,\n        },\n    ],\n    scheduled_actions=[\n        {\n            \"target\": 0,\n            \"name\": \"s1\",\n            \"start_time\": \"2030-10-10T10:10:10Z\",\n            \"end_time\": \"2035-10-10T10:10:10Z\",\n            \"schedule_expression\": \"cron(0 0 4 * * *)\",\n        },\n        {\n            \"name\": \"s2\",\n            \"start_time\": \"2030-10-10T10:10:10Z\",\n            \"end_time\": \"2035-10-10T10:10:10Z\",\n            \"schedule_expression\": \"cron(0 0 6 * * *)\",\n            \"target\": 1,\n        },\n        {\n            \"start_time\": \"2030-10-10T10:10:10\",\n            \"end_time\": \"2035-10-10T10:10:10\",\n            \"schedule_expression\": \"cron(0 0 7 * * *)\",\n            \"target\": 0,\n            \"time_zone\": \"Asia/Shanghai\",\n            \"name\": \"s3\",\n        },\n    ],\n    qualifier=\"LATEST\",\n    always_allocate_gpu=True,\n    function_name=function.function_name,\n    always_allocate_cpu=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultProject = new AliCloud.Log.Project(\"default\", new()\n    {\n        ProjectName = $\"{name}-{@default.Result}\",\n        Description = name,\n    });\n\n    var defaultStore = new AliCloud.Log.Store(\"default\", new()\n    {\n        ProjectName = defaultProject.Name,\n        LogstoreName = $\"{name}-{@default.Result}\",\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var wait10Minutes = new Time.Index.Sleep(\"wait_10_minutes\", new()\n    {\n        CreateDuration = \"10m\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            defaultStore,\n        },\n    });\n\n    var function = new AliCloud.FC.V3Function(\"function\", new()\n    {\n        MemorySize = 512,\n        Cpu = 0.5,\n        Handler = \"index.handler\",\n        FunctionName = $\"{name}-{@default.Result}\",\n        Runtime = \"python3.10\",\n        DiskSize = 512,\n        Code = new AliCloud.FC.Inputs.V3FunctionCodeArgs\n        {\n            ZipFile = \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n        },\n        LogConfig = new AliCloud.FC.Inputs.V3FunctionLogConfigArgs\n        {\n            EnableInstanceMetrics = true,\n            EnableRequestMetrics = true,\n            Project = defaultProject.ProjectName,\n            Logstore = defaultStore.LogstoreName,\n            LogBeginRule = \"None\",\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            wait10Minutes,\n        },\n    });\n\n    var defaultV3ProvisionConfig = new AliCloud.FC.V3ProvisionConfig(\"default\", new()\n    {\n        Target = 1,\n        TargetTrackingPolicies = new[]\n        {\n            new AliCloud.FC.Inputs.V3ProvisionConfigTargetTrackingPolicyArgs\n            {\n                Name = \"t1\",\n                StartTime = \"2030-10-10T10:10:10Z\",\n                EndTime = \"2035-10-10T10:10:10Z\",\n                MinCapacity = 0,\n                MaxCapacity = 1,\n                MetricTarget = 1,\n                MetricType = \"ProvisionedConcurrencyUtilization\",\n            },\n            new AliCloud.FC.Inputs.V3ProvisionConfigTargetTrackingPolicyArgs\n            {\n                MetricTarget = 1,\n                MetricType = \"ProvisionedConcurrencyUtilization\",\n                Name = \"t2\",\n                StartTime = \"2030-10-10T10:10:10Z\",\n                EndTime = \"2035-10-10T10:10:10Z\",\n                MinCapacity = 0,\n                MaxCapacity = 1,\n            },\n            new AliCloud.FC.Inputs.V3ProvisionConfigTargetTrackingPolicyArgs\n            {\n                MetricType = \"ProvisionedConcurrencyUtilization\",\n                TimeZone = \"Asia/Shanghai\",\n                Name = \"t3\",\n                StartTime = \"2030-10-10T10:10:10\",\n                EndTime = \"2035-10-10T10:10:10\",\n                MinCapacity = 0,\n                MaxCapacity = 1,\n                MetricTarget = 1,\n            },\n        },\n        ScheduledActions = new[]\n        {\n            new AliCloud.FC.Inputs.V3ProvisionConfigScheduledActionArgs\n            {\n                Target = 0,\n                Name = \"s1\",\n                StartTime = \"2030-10-10T10:10:10Z\",\n                EndTime = \"2035-10-10T10:10:10Z\",\n                ScheduleExpression = \"cron(0 0 4 * * *)\",\n            },\n            new AliCloud.FC.Inputs.V3ProvisionConfigScheduledActionArgs\n            {\n                Name = \"s2\",\n                StartTime = \"2030-10-10T10:10:10Z\",\n                EndTime = \"2035-10-10T10:10:10Z\",\n                ScheduleExpression = \"cron(0 0 6 * * *)\",\n                Target = 1,\n            },\n            new AliCloud.FC.Inputs.V3ProvisionConfigScheduledActionArgs\n            {\n                StartTime = \"2030-10-10T10:10:10\",\n                EndTime = \"2035-10-10T10:10:10\",\n                ScheduleExpression = \"cron(0 0 7 * * *)\",\n                Target = 0,\n                TimeZone = \"Asia/Shanghai\",\n                Name = \"s3\",\n            },\n        },\n        Qualifier = \"LATEST\",\n        AlwaysAllocateGpu = true,\n        FunctionName = function.FunctionName,\n        AlwaysAllocateCpu = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultProject, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStore, err := log.NewStore(ctx, \"default\", \u0026log.StoreArgs{\n\t\t\tProjectName:        defaultProject.Name,\n\t\t\tLogstoreName:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\twait10Minutes, err := time.NewSleep(ctx, \"wait_10_minutes\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"10m\",\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdefaultStore,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfunction, err := fc.NewV3Function(ctx, \"function\", \u0026fc.V3FunctionArgs{\n\t\t\tMemorySize:   pulumi.Int(512),\n\t\t\tCpu:          pulumi.Float64(0.5),\n\t\t\tHandler:      pulumi.String(\"index.handler\"),\n\t\t\tFunctionName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tRuntime:      pulumi.String(\"python3.10\"),\n\t\t\tDiskSize:     pulumi.Int(512),\n\t\t\tCode: \u0026fc.V3FunctionCodeArgs{\n\t\t\t\tZipFile: pulumi.String(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\"),\n\t\t\t},\n\t\t\tLogConfig: \u0026fc.V3FunctionLogConfigArgs{\n\t\t\t\tEnableInstanceMetrics: pulumi.Bool(true),\n\t\t\t\tEnableRequestMetrics:  pulumi.Bool(true),\n\t\t\t\tProject:               defaultProject.ProjectName,\n\t\t\t\tLogstore:              defaultStore.LogstoreName,\n\t\t\t\tLogBeginRule:          pulumi.String(\"None\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\twait10Minutes,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fc.NewV3ProvisionConfig(ctx, \"default\", \u0026fc.V3ProvisionConfigArgs{\n\t\t\tTarget: pulumi.Int(1),\n\t\t\tTargetTrackingPolicies: fc.V3ProvisionConfigTargetTrackingPolicyArray{\n\t\t\t\t\u0026fc.V3ProvisionConfigTargetTrackingPolicyArgs{\n\t\t\t\t\tName:         pulumi.String(\"t1\"),\n\t\t\t\t\tStartTime:    pulumi.String(\"2030-10-10T10:10:10Z\"),\n\t\t\t\t\tEndTime:      pulumi.String(\"2035-10-10T10:10:10Z\"),\n\t\t\t\t\tMinCapacity:  pulumi.Int(0),\n\t\t\t\t\tMaxCapacity:  pulumi.Int(1),\n\t\t\t\t\tMetricTarget: pulumi.Float64(1),\n\t\t\t\t\tMetricType:   pulumi.String(\"ProvisionedConcurrencyUtilization\"),\n\t\t\t\t},\n\t\t\t\t\u0026fc.V3ProvisionConfigTargetTrackingPolicyArgs{\n\t\t\t\t\tMetricTarget: pulumi.Float64(1),\n\t\t\t\t\tMetricType:   pulumi.String(\"ProvisionedConcurrencyUtilization\"),\n\t\t\t\t\tName:         pulumi.String(\"t2\"),\n\t\t\t\t\tStartTime:    pulumi.String(\"2030-10-10T10:10:10Z\"),\n\t\t\t\t\tEndTime:      pulumi.String(\"2035-10-10T10:10:10Z\"),\n\t\t\t\t\tMinCapacity:  pulumi.Int(0),\n\t\t\t\t\tMaxCapacity:  pulumi.Int(1),\n\t\t\t\t},\n\t\t\t\t\u0026fc.V3ProvisionConfigTargetTrackingPolicyArgs{\n\t\t\t\t\tMetricType:   pulumi.String(\"ProvisionedConcurrencyUtilization\"),\n\t\t\t\t\tTimeZone:     pulumi.String(\"Asia/Shanghai\"),\n\t\t\t\t\tName:         pulumi.String(\"t3\"),\n\t\t\t\t\tStartTime:    pulumi.String(\"2030-10-10T10:10:10\"),\n\t\t\t\t\tEndTime:      pulumi.String(\"2035-10-10T10:10:10\"),\n\t\t\t\t\tMinCapacity:  pulumi.Int(0),\n\t\t\t\t\tMaxCapacity:  pulumi.Int(1),\n\t\t\t\t\tMetricTarget: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tScheduledActions: fc.V3ProvisionConfigScheduledActionArray{\n\t\t\t\t\u0026fc.V3ProvisionConfigScheduledActionArgs{\n\t\t\t\t\tTarget:             pulumi.Int(0),\n\t\t\t\t\tName:               pulumi.String(\"s1\"),\n\t\t\t\t\tStartTime:          pulumi.String(\"2030-10-10T10:10:10Z\"),\n\t\t\t\t\tEndTime:            pulumi.String(\"2035-10-10T10:10:10Z\"),\n\t\t\t\t\tScheduleExpression: pulumi.String(\"cron(0 0 4 * * *)\"),\n\t\t\t\t},\n\t\t\t\t\u0026fc.V3ProvisionConfigScheduledActionArgs{\n\t\t\t\t\tName:               pulumi.String(\"s2\"),\n\t\t\t\t\tStartTime:          pulumi.String(\"2030-10-10T10:10:10Z\"),\n\t\t\t\t\tEndTime:            pulumi.String(\"2035-10-10T10:10:10Z\"),\n\t\t\t\t\tScheduleExpression: pulumi.String(\"cron(0 0 6 * * *)\"),\n\t\t\t\t\tTarget:             pulumi.Int(1),\n\t\t\t\t},\n\t\t\t\t\u0026fc.V3ProvisionConfigScheduledActionArgs{\n\t\t\t\t\tStartTime:          pulumi.String(\"2030-10-10T10:10:10\"),\n\t\t\t\t\tEndTime:            pulumi.String(\"2035-10-10T10:10:10\"),\n\t\t\t\t\tScheduleExpression: pulumi.String(\"cron(0 0 7 * * *)\"),\n\t\t\t\t\tTarget:             pulumi.Int(0),\n\t\t\t\t\tTimeZone:           pulumi.String(\"Asia/Shanghai\"),\n\t\t\t\t\tName:               pulumi.String(\"s3\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tQualifier:         pulumi.String(\"LATEST\"),\n\t\t\tAlwaysAllocateGpu: pulumi.Bool(true),\n\t\t\tFunctionName:      function.FunctionName,\n\t\t\tAlwaysAllocateCpu: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.time.Sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.alicloud.fc.V3Function;\nimport com.pulumi.alicloud.fc.V3FunctionArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionCodeArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionLogConfigArgs;\nimport com.pulumi.alicloud.fc.V3ProvisionConfig;\nimport com.pulumi.alicloud.fc.V3ProvisionConfigArgs;\nimport com.pulumi.alicloud.fc.inputs.V3ProvisionConfigTargetTrackingPolicyArgs;\nimport com.pulumi.alicloud.fc.inputs.V3ProvisionConfigScheduledActionArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .projectName(String.format(\"%s-%s\", name,default_.result()))\n            .description(name)\n            .build());\n\n        var defaultStore = new Store(\"defaultStore\", StoreArgs.builder()\n            .projectName(defaultProject.name())\n            .logstoreName(String.format(\"%s-%s\", name,default_.result()))\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var wait10Minutes = new Sleep(\"wait10Minutes\", SleepArgs.builder()\n            .createDuration(\"10m\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(List.of(defaultStore))\n                .build());\n\n        var function = new V3Function(\"function\", V3FunctionArgs.builder()\n            .memorySize(512)\n            .cpu(0.5)\n            .handler(\"index.handler\")\n            .functionName(String.format(\"%s-%s\", name,default_.result()))\n            .runtime(\"python3.10\")\n            .diskSize(512)\n            .code(V3FunctionCodeArgs.builder()\n                .zipFile(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\")\n                .build())\n            .logConfig(V3FunctionLogConfigArgs.builder()\n                .enableInstanceMetrics(true)\n                .enableRequestMetrics(true)\n                .project(defaultProject.projectName())\n                .logstore(defaultStore.logstoreName())\n                .logBeginRule(\"None\")\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(wait10Minutes)\n                .build());\n\n        var defaultV3ProvisionConfig = new V3ProvisionConfig(\"defaultV3ProvisionConfig\", V3ProvisionConfigArgs.builder()\n            .target(1)\n            .targetTrackingPolicies(            \n                V3ProvisionConfigTargetTrackingPolicyArgs.builder()\n                    .name(\"t1\")\n                    .startTime(\"2030-10-10T10:10:10Z\")\n                    .endTime(\"2035-10-10T10:10:10Z\")\n                    .minCapacity(0)\n                    .maxCapacity(1)\n                    .metricTarget(1.0)\n                    .metricType(\"ProvisionedConcurrencyUtilization\")\n                    .build(),\n                V3ProvisionConfigTargetTrackingPolicyArgs.builder()\n                    .metricTarget(1.0)\n                    .metricType(\"ProvisionedConcurrencyUtilization\")\n                    .name(\"t2\")\n                    .startTime(\"2030-10-10T10:10:10Z\")\n                    .endTime(\"2035-10-10T10:10:10Z\")\n                    .minCapacity(0)\n                    .maxCapacity(1)\n                    .build(),\n                V3ProvisionConfigTargetTrackingPolicyArgs.builder()\n                    .metricType(\"ProvisionedConcurrencyUtilization\")\n                    .timeZone(\"Asia/Shanghai\")\n                    .name(\"t3\")\n                    .startTime(\"2030-10-10T10:10:10\")\n                    .endTime(\"2035-10-10T10:10:10\")\n                    .minCapacity(0)\n                    .maxCapacity(1)\n                    .metricTarget(1.0)\n                    .build())\n            .scheduledActions(            \n                V3ProvisionConfigScheduledActionArgs.builder()\n                    .target(0)\n                    .name(\"s1\")\n                    .startTime(\"2030-10-10T10:10:10Z\")\n                    .endTime(\"2035-10-10T10:10:10Z\")\n                    .scheduleExpression(\"cron(0 0 4 * * *)\")\n                    .build(),\n                V3ProvisionConfigScheduledActionArgs.builder()\n                    .name(\"s2\")\n                    .startTime(\"2030-10-10T10:10:10Z\")\n                    .endTime(\"2035-10-10T10:10:10Z\")\n                    .scheduleExpression(\"cron(0 0 6 * * *)\")\n                    .target(1)\n                    .build(),\n                V3ProvisionConfigScheduledActionArgs.builder()\n                    .startTime(\"2030-10-10T10:10:10\")\n                    .endTime(\"2035-10-10T10:10:10\")\n                    .scheduleExpression(\"cron(0 0 7 * * *)\")\n                    .target(0)\n                    .timeZone(\"Asia/Shanghai\")\n                    .name(\"s3\")\n                    .build())\n            .qualifier(\"LATEST\")\n            .alwaysAllocateGpu(true)\n            .functionName(function.functionName())\n            .alwaysAllocateCpu(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultProject:\n    type: alicloud:log:Project\n    name: default\n    properties:\n      projectName: ${name}-${default.result}\n      description: ${name}\n  defaultStore:\n    type: alicloud:log:Store\n    name: default\n    properties:\n      projectName: ${defaultProject.name}\n      logstoreName: ${name}-${default.result}\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  wait10Minutes:\n    type: time:Sleep\n    name: wait_10_minutes\n    properties:\n      createDuration: 10m\n    options:\n      dependsOn:\n        - ${defaultStore}\n  function:\n    type: alicloud:fc:V3Function\n    properties:\n      memorySize: '512'\n      cpu: 0.5\n      handler: index.handler\n      functionName: ${name}-${default.result}\n      runtime: python3.10\n      diskSize: '512'\n      code:\n        zipFile: UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\n      logConfig:\n        enableInstanceMetrics: true\n        enableRequestMetrics: true\n        project: ${defaultProject.projectName}\n        logstore: ${defaultStore.logstoreName}\n        logBeginRule: None\n    options:\n      dependsOn:\n        - ${wait10Minutes}\n  defaultV3ProvisionConfig:\n    type: alicloud:fc:V3ProvisionConfig\n    name: default\n    properties:\n      target: '1'\n      targetTrackingPolicies:\n        - name: t1\n          startTime: 2030-10-10T10:10:10Z\n          endTime: 2035-10-10T10:10:10Z\n          minCapacity: '0'\n          maxCapacity: '1'\n          metricTarget: '1'\n          metricType: ProvisionedConcurrencyUtilization\n        - metricTarget: '1'\n          metricType: ProvisionedConcurrencyUtilization\n          name: t2\n          startTime: 2030-10-10T10:10:10Z\n          endTime: 2035-10-10T10:10:10Z\n          minCapacity: '0'\n          maxCapacity: '1'\n        - metricType: ProvisionedConcurrencyUtilization\n          timeZone: Asia/Shanghai\n          name: t3\n          startTime: 2030-10-10T10:10:10\n          endTime: 2035-10-10T10:10:10\n          minCapacity: '0'\n          maxCapacity: '1'\n          metricTarget: '1'\n      scheduledActions:\n        - target: '0'\n          name: s1\n          startTime: 2030-10-10T10:10:10Z\n          endTime: 2035-10-10T10:10:10Z\n          scheduleExpression: cron(0 0 4 * * *)\n        - name: s2\n          startTime: 2030-10-10T10:10:10Z\n          endTime: 2035-10-10T10:10:10Z\n          scheduleExpression: cron(0 0 6 * * *)\n          target: '1'\n        - startTime: 2030-10-10T10:10:10\n          endTime: 2035-10-10T10:10:10\n          scheduleExpression: cron(0 0 7 * * *)\n          target: '0'\n          timeZone: Asia/Shanghai\n          name: s3\n      qualifier: LATEST\n      alwaysAllocateGpu: 'true'\n      functionName: ${function.functionName}\n      alwaysAllocateCpu: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFCV3 Provision Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fc/v3ProvisionConfig:V3ProvisionConfig example \u003cid\u003e\n```\n\n","properties":{"alwaysAllocateCpu":{"type":"boolean","description":"Whether the CPU is always allocated. The default value is true.\n"},"alwaysAllocateGpu":{"type":"boolean","description":"Whether to always assign GPU to function instance\n"},"current":{"type":"integer","description":"(Available since v1.234.0) Number of actual resources\n"},"currentError":{"type":"string","description":"(Available since v1.234.0) Error message when a Reserved Instance creation fails\n"},"functionArn":{"type":"string","description":"(Available since v1.234.0) Resource Description of the function\n"},"functionName":{"type":"string","description":"The name of the function. If this parameter is not specified, the provisioned configurations of all functions are listed.\n"},"qualifier":{"type":"string","description":"The function alias or LATEST.\n"},"scheduledActions":{"type":"array","items":{"$ref":"#/types/alicloud:fc/V3ProvisionConfigScheduledAction:V3ProvisionConfigScheduledAction"},"description":"Timing policy configuration See \u003cspan pulumi-lang-nodejs=\"`scheduledActions`\" pulumi-lang-dotnet=\"`ScheduledActions`\" pulumi-lang-go=\"`scheduledActions`\" pulumi-lang-python=\"`scheduled_actions`\" pulumi-lang-yaml=\"`scheduledActions`\" pulumi-lang-java=\"`scheduledActions`\"\u003e`scheduled_actions`\u003c/span\u003e below.\n"},"target":{"type":"integer","description":"Number of reserved target resources. The value range is [0,10000].\n"},"targetTrackingPolicies":{"type":"array","items":{"$ref":"#/types/alicloud:fc/V3ProvisionConfigTargetTrackingPolicy:V3ProvisionConfigTargetTrackingPolicy"},"description":"Metric tracking scaling policy configuration See \u003cspan pulumi-lang-nodejs=\"`targetTrackingPolicies`\" pulumi-lang-dotnet=\"`TargetTrackingPolicies`\" pulumi-lang-go=\"`targetTrackingPolicies`\" pulumi-lang-python=\"`target_tracking_policies`\" pulumi-lang-yaml=\"`targetTrackingPolicies`\" pulumi-lang-java=\"`targetTrackingPolicies`\"\u003e`target_tracking_policies`\u003c/span\u003e below.\n"}},"required":["current","currentError","functionArn","functionName"],"inputProperties":{"alwaysAllocateCpu":{"type":"boolean","description":"Whether the CPU is always allocated. The default value is true.\n"},"alwaysAllocateGpu":{"type":"boolean","description":"Whether to always assign GPU to function instance\n"},"functionName":{"type":"string","description":"The name of the function. If this parameter is not specified, the provisioned configurations of all functions are listed.\n","willReplaceOnChanges":true},"qualifier":{"type":"string","description":"The function alias or LATEST.\n"},"scheduledActions":{"type":"array","items":{"$ref":"#/types/alicloud:fc/V3ProvisionConfigScheduledAction:V3ProvisionConfigScheduledAction"},"description":"Timing policy configuration See \u003cspan pulumi-lang-nodejs=\"`scheduledActions`\" pulumi-lang-dotnet=\"`ScheduledActions`\" pulumi-lang-go=\"`scheduledActions`\" pulumi-lang-python=\"`scheduled_actions`\" pulumi-lang-yaml=\"`scheduledActions`\" pulumi-lang-java=\"`scheduledActions`\"\u003e`scheduled_actions`\u003c/span\u003e below.\n"},"target":{"type":"integer","description":"Number of reserved target resources. The value range is [0,10000].\n"},"targetTrackingPolicies":{"type":"array","items":{"$ref":"#/types/alicloud:fc/V3ProvisionConfigTargetTrackingPolicy:V3ProvisionConfigTargetTrackingPolicy"},"description":"Metric tracking scaling policy configuration See \u003cspan pulumi-lang-nodejs=\"`targetTrackingPolicies`\" pulumi-lang-dotnet=\"`TargetTrackingPolicies`\" pulumi-lang-go=\"`targetTrackingPolicies`\" pulumi-lang-python=\"`target_tracking_policies`\" pulumi-lang-yaml=\"`targetTrackingPolicies`\" pulumi-lang-java=\"`targetTrackingPolicies`\"\u003e`target_tracking_policies`\u003c/span\u003e below.\n"}},"requiredInputs":["functionName"],"stateInputs":{"description":"Input properties used for looking up and filtering V3ProvisionConfig resources.\n","properties":{"alwaysAllocateCpu":{"type":"boolean","description":"Whether the CPU is always allocated. The default value is true.\n"},"alwaysAllocateGpu":{"type":"boolean","description":"Whether to always assign GPU to function instance\n"},"current":{"type":"integer","description":"(Available since v1.234.0) Number of actual resources\n"},"currentError":{"type":"string","description":"(Available since v1.234.0) Error message when a Reserved Instance creation fails\n"},"functionArn":{"type":"string","description":"(Available since v1.234.0) Resource Description of the function\n"},"functionName":{"type":"string","description":"The name of the function. If this parameter is not specified, the provisioned configurations of all functions are listed.\n","willReplaceOnChanges":true},"qualifier":{"type":"string","description":"The function alias or LATEST.\n"},"scheduledActions":{"type":"array","items":{"$ref":"#/types/alicloud:fc/V3ProvisionConfigScheduledAction:V3ProvisionConfigScheduledAction"},"description":"Timing policy configuration See \u003cspan pulumi-lang-nodejs=\"`scheduledActions`\" pulumi-lang-dotnet=\"`ScheduledActions`\" pulumi-lang-go=\"`scheduledActions`\" pulumi-lang-python=\"`scheduled_actions`\" pulumi-lang-yaml=\"`scheduledActions`\" pulumi-lang-java=\"`scheduledActions`\"\u003e`scheduled_actions`\u003c/span\u003e below.\n"},"target":{"type":"integer","description":"Number of reserved target resources. The value range is [0,10000].\n"},"targetTrackingPolicies":{"type":"array","items":{"$ref":"#/types/alicloud:fc/V3ProvisionConfigTargetTrackingPolicy:V3ProvisionConfigTargetTrackingPolicy"},"description":"Metric tracking scaling policy configuration See \u003cspan pulumi-lang-nodejs=\"`targetTrackingPolicies`\" pulumi-lang-dotnet=\"`TargetTrackingPolicies`\" pulumi-lang-go=\"`targetTrackingPolicies`\" pulumi-lang-python=\"`target_tracking_policies`\" pulumi-lang-yaml=\"`targetTrackingPolicies`\" pulumi-lang-java=\"`targetTrackingPolicies`\"\u003e`target_tracking_policies`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:fc/v3Trigger:V3Trigger":{"description":"Provides a FCV3 Trigger resource.\n\nA trigger is a way of triggering the execution of a function. In the event-driven computing model, the event source is the producer of the event, the function is the handler of the event, and the trigger provides a centralized and unified way to manage different event sources. In the event source, when the event occurs, if the rules defined by the trigger are met,.\n\nFor information about FCV3 Trigger and how to use it, see [What is Trigger](https://www.alibabacloud.com/help/en/functioncompute/api-fc-2023-03-30-createtrigger).\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst functionName = config.get(\"functionName\") || \"TerraformTriggerResourceAPI\";\nconst triggerName = config.get(\"triggerName\") || \"TerraformTrigger_CDN\";\nconst _function = new alicloud.fc.V3Function(\"function\", {\n    memorySize: 512,\n    cpu: 0.5,\n    handler: \"index.Handler\",\n    code: {\n        zipFile: \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    functionName: name,\n    runtime: \"python3.9\",\n    diskSize: 512,\n    logConfig: {\n        logBeginRule: \"None\",\n    },\n});\nconst current = alicloud.getAccount({});\nconst _default = new alicloud.fc.V3Trigger(\"default\", {\n    triggerType: \"cdn_events\",\n    triggerName: name,\n    description: \"create\",\n    qualifier: \"LATEST\",\n    triggerConfig: JSON.stringify({\n        eventName: \"CachedObjectsPushed\",\n        eventVersion: \"1.0.0\",\n        notes: \"example\",\n        filter: {\n            domain: [\"example.com\"],\n        },\n    }),\n    sourceArn: current.then(current =\u003e `acs:cdn:*:${current.id}`),\n    invocationRole: current.then(current =\u003e `acs:ram::${current.id}:role/aliyuncdneventnotificationrole`),\n    functionName: _function.functionName,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nfunction_name = config.get(\"functionName\")\nif function_name is None:\n    function_name = \"TerraformTriggerResourceAPI\"\ntrigger_name = config.get(\"triggerName\")\nif trigger_name is None:\n    trigger_name = \"TerraformTrigger_CDN\"\nfunction = alicloud.fc.V3Function(\"function\",\n    memory_size=512,\n    cpu=0.5,\n    handler=\"index.Handler\",\n    code={\n        \"zip_file\": \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    function_name=name,\n    runtime=\"python3.9\",\n    disk_size=512,\n    log_config={\n        \"log_begin_rule\": \"None\",\n    })\ncurrent = alicloud.get_account()\ndefault = alicloud.fc.V3Trigger(\"default\",\n    trigger_type=\"cdn_events\",\n    trigger_name=name,\n    description=\"create\",\n    qualifier=\"LATEST\",\n    trigger_config=json.dumps({\n        \"eventName\": \"CachedObjectsPushed\",\n        \"eventVersion\": \"1.0.0\",\n        \"notes\": \"example\",\n        \"filter\": {\n            \"domain\": [\"example.com\"],\n        },\n    }),\n    source_arn=f\"acs:cdn:*:{current.id}\",\n    invocation_role=f\"acs:ram::{current.id}:role/aliyuncdneventnotificationrole\",\n    function_name=function.function_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var functionName = config.Get(\"functionName\") ?? \"TerraformTriggerResourceAPI\";\n    var triggerName = config.Get(\"triggerName\") ?? \"TerraformTrigger_CDN\";\n    var function = new AliCloud.FC.V3Function(\"function\", new()\n    {\n        MemorySize = 512,\n        Cpu = 0.5,\n        Handler = \"index.Handler\",\n        Code = new AliCloud.FC.Inputs.V3FunctionCodeArgs\n        {\n            ZipFile = \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n        },\n        FunctionName = name,\n        Runtime = \"python3.9\",\n        DiskSize = 512,\n        LogConfig = new AliCloud.FC.Inputs.V3FunctionLogConfigArgs\n        {\n            LogBeginRule = \"None\",\n        },\n    });\n\n    var current = AliCloud.GetAccount.Invoke();\n\n    var @default = new AliCloud.FC.V3Trigger(\"default\", new()\n    {\n        TriggerType = \"cdn_events\",\n        TriggerName = name,\n        Description = \"create\",\n        Qualifier = \"LATEST\",\n        TriggerConfig = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"eventName\"] = \"CachedObjectsPushed\",\n            [\"eventVersion\"] = \"1.0.0\",\n            [\"notes\"] = \"example\",\n            [\"filter\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"domain\"] = new[]\n                {\n                    \"example.com\",\n                },\n            },\n        }),\n        SourceArn = $\"acs:cdn:*:{current.Apply(getAccountResult =\u003e getAccountResult.Id)}\",\n        InvocationRole = $\"acs:ram::{current.Apply(getAccountResult =\u003e getAccountResult.Id)}:role/aliyuncdneventnotificationrole\",\n        FunctionName = function.FunctionName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tfunctionName := \"TerraformTriggerResourceAPI\"\n\t\tif param := cfg.Get(\"functionName\"); param != \"\" {\n\t\t\tfunctionName = param\n\t\t}\n\t\ttriggerName := \"TerraformTrigger_CDN\"\n\t\tif param := cfg.Get(\"triggerName\"); param != \"\" {\n\t\t\ttriggerName = param\n\t\t}\n\t\tfunction, err := fc.NewV3Function(ctx, \"function\", \u0026fc.V3FunctionArgs{\n\t\t\tMemorySize: pulumi.Int(512),\n\t\t\tCpu:        pulumi.Float64(0.5),\n\t\t\tHandler:    pulumi.String(\"index.Handler\"),\n\t\t\tCode: \u0026fc.V3FunctionCodeArgs{\n\t\t\t\tZipFile: pulumi.String(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\"),\n\t\t\t},\n\t\t\tFunctionName: pulumi.String(name),\n\t\t\tRuntime:      pulumi.String(\"python3.9\"),\n\t\t\tDiskSize:     pulumi.Int(512),\n\t\t\tLogConfig: \u0026fc.V3FunctionLogConfigArgs{\n\t\t\t\tLogBeginRule: pulumi.String(\"None\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrent, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"eventName\":    \"CachedObjectsPushed\",\n\t\t\t\"eventVersion\": \"1.0.0\",\n\t\t\t\"notes\":        \"example\",\n\t\t\t\"filter\": map[string]interface{}{\n\t\t\t\t\"domain\": []string{\n\t\t\t\t\t\"example.com\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = fc.NewV3Trigger(ctx, \"default\", \u0026fc.V3TriggerArgs{\n\t\t\tTriggerType:    pulumi.String(\"cdn_events\"),\n\t\t\tTriggerName:    pulumi.String(name),\n\t\t\tDescription:    pulumi.String(\"create\"),\n\t\t\tQualifier:      pulumi.String(\"LATEST\"),\n\t\t\tTriggerConfig:  pulumi.String(json0),\n\t\t\tSourceArn:      pulumi.Sprintf(\"acs:cdn:*:%v\", current.Id),\n\t\t\tInvocationRole: pulumi.Sprintf(\"acs:ram::%v:role/aliyuncdneventnotificationrole\", current.Id),\n\t\t\tFunctionName:   function.FunctionName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fc.V3Function;\nimport com.pulumi.alicloud.fc.V3FunctionArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionCodeArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionLogConfigArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.fc.V3Trigger;\nimport com.pulumi.alicloud.fc.V3TriggerArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var functionName = config.get(\"functionName\").orElse(\"TerraformTriggerResourceAPI\");\n        final var triggerName = config.get(\"triggerName\").orElse(\"TerraformTrigger_CDN\");\n        var function = new V3Function(\"function\", V3FunctionArgs.builder()\n            .memorySize(512)\n            .cpu(0.5)\n            .handler(\"index.Handler\")\n            .code(V3FunctionCodeArgs.builder()\n                .zipFile(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\")\n                .build())\n            .functionName(name)\n            .runtime(\"python3.9\")\n            .diskSize(512)\n            .logConfig(V3FunctionLogConfigArgs.builder()\n                .logBeginRule(\"None\")\n                .build())\n            .build());\n\n        final var current = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var default_ = new V3Trigger(\"default\", V3TriggerArgs.builder()\n            .triggerType(\"cdn_events\")\n            .triggerName(name)\n            .description(\"create\")\n            .qualifier(\"LATEST\")\n            .triggerConfig(serializeJson(\n                jsonObject(\n                    jsonProperty(\"eventName\", \"CachedObjectsPushed\"),\n                    jsonProperty(\"eventVersion\", \"1.0.0\"),\n                    jsonProperty(\"notes\", \"example\"),\n                    jsonProperty(\"filter\", jsonObject(\n                        jsonProperty(\"domain\", jsonArray(\"example.com\"))\n                    ))\n                )))\n            .sourceArn(String.format(\"acs:cdn:*:%s\", current.id()))\n            .invocationRole(String.format(\"acs:ram::%s:role/aliyuncdneventnotificationrole\", current.id()))\n            .functionName(function.functionName())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  functionName:\n    type: string\n    default: TerraformTriggerResourceAPI\n  triggerName:\n    type: string\n    default: TerraformTrigger_CDN\nresources:\n  function:\n    type: alicloud:fc:V3Function\n    properties:\n      memorySize: '512'\n      cpu: 0.5\n      handler: index.Handler\n      code:\n        zipFile: UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\n      functionName: ${name}\n      runtime: python3.9\n      diskSize: '512'\n      logConfig:\n        logBeginRule: None\n  default:\n    type: alicloud:fc:V3Trigger\n    properties:\n      triggerType: cdn_events\n      triggerName: ${name}\n      description: create\n      qualifier: LATEST\n      triggerConfig:\n        fn::toJSON:\n          eventName: CachedObjectsPushed\n          eventVersion: 1.0.0\n          notes: example\n          filter:\n            domain:\n              - example.com\n      sourceArn: acs:cdn:*:${current.id}\n      invocationRole: acs:ram::${current.id}:role/aliyuncdneventnotificationrole\n      functionName: ${function.functionName}\nvariables:\n  current:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nHTTP Trigger\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst functionName = config.get(\"functionName\") || \"TerraformTriggerResourceAPI\";\nconst triggerName = config.get(\"triggerName\") || \"TerraformTrigger_HTTP\";\nconst _function = new alicloud.fc.V3Function(\"function\", {\n    memorySize: 512,\n    cpu: 0.5,\n    handler: \"index.Handler\",\n    code: {\n        zipFile: \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    functionName: name,\n    runtime: \"python3.9\",\n    diskSize: 512,\n    logConfig: {\n        logBeginRule: \"None\",\n    },\n});\nconst current = alicloud.getAccount({});\nconst _default = new alicloud.fc.V3Trigger(\"default\", {\n    triggerType: \"http\",\n    triggerName: name,\n    description: \"create\",\n    qualifier: \"LATEST\",\n    triggerConfig: JSON.stringify({\n        authType: \"anonymous\",\n        methods: [\n            \"GET\",\n            \"POST\",\n        ],\n    }),\n    functionName: _function.functionName,\n});\nexport const outputCalicloudFcv3TriggerInternet = alicloudFcv3Trigger[\"default\"].httpTrigger[0].urlInternet;\nexport const outputCalicloudFcv3TriggerIntranet = alicloudFcv3Trigger[\"default\"].httpTrigger[0].urlIntranet;\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nfunction_name = config.get(\"functionName\")\nif function_name is None:\n    function_name = \"TerraformTriggerResourceAPI\"\ntrigger_name = config.get(\"triggerName\")\nif trigger_name is None:\n    trigger_name = \"TerraformTrigger_HTTP\"\nfunction = alicloud.fc.V3Function(\"function\",\n    memory_size=512,\n    cpu=0.5,\n    handler=\"index.Handler\",\n    code={\n        \"zip_file\": \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    function_name=name,\n    runtime=\"python3.9\",\n    disk_size=512,\n    log_config={\n        \"log_begin_rule\": \"None\",\n    })\ncurrent = alicloud.get_account()\ndefault = alicloud.fc.V3Trigger(\"default\",\n    trigger_type=\"http\",\n    trigger_name=name,\n    description=\"create\",\n    qualifier=\"LATEST\",\n    trigger_config=json.dumps({\n        \"authType\": \"anonymous\",\n        \"methods\": [\n            \"GET\",\n            \"POST\",\n        ],\n    }),\n    function_name=function.function_name)\npulumi.export(\"outputCalicloudFcv3TriggerInternet\", alicloud_fcv3_trigger[\"default\"][\"httpTrigger\"][0][\"urlInternet\"])\npulumi.export(\"outputCalicloudFcv3TriggerIntranet\", alicloud_fcv3_trigger[\"default\"][\"httpTrigger\"][0][\"urlIntranet\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var functionName = config.Get(\"functionName\") ?? \"TerraformTriggerResourceAPI\";\n    var triggerName = config.Get(\"triggerName\") ?? \"TerraformTrigger_HTTP\";\n    var function = new AliCloud.FC.V3Function(\"function\", new()\n    {\n        MemorySize = 512,\n        Cpu = 0.5,\n        Handler = \"index.Handler\",\n        Code = new AliCloud.FC.Inputs.V3FunctionCodeArgs\n        {\n            ZipFile = \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n        },\n        FunctionName = name,\n        Runtime = \"python3.9\",\n        DiskSize = 512,\n        LogConfig = new AliCloud.FC.Inputs.V3FunctionLogConfigArgs\n        {\n            LogBeginRule = \"None\",\n        },\n    });\n\n    var current = AliCloud.GetAccount.Invoke();\n\n    var @default = new AliCloud.FC.V3Trigger(\"default\", new()\n    {\n        TriggerType = \"http\",\n        TriggerName = name,\n        Description = \"create\",\n        Qualifier = \"LATEST\",\n        TriggerConfig = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"authType\"] = \"anonymous\",\n            [\"methods\"] = new[]\n            {\n                \"GET\",\n                \"POST\",\n            },\n        }),\n        FunctionName = function.FunctionName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"outputCalicloudFcv3TriggerInternet\"] = alicloudFcv3Trigger.Default.HttpTrigger[0].UrlInternet,\n        [\"outputCalicloudFcv3TriggerIntranet\"] = alicloudFcv3Trigger.Default.HttpTrigger[0].UrlIntranet,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tfunctionName := \"TerraformTriggerResourceAPI\"\n\t\tif param := cfg.Get(\"functionName\"); param != \"\" {\n\t\t\tfunctionName = param\n\t\t}\n\t\ttriggerName := \"TerraformTrigger_HTTP\"\n\t\tif param := cfg.Get(\"triggerName\"); param != \"\" {\n\t\t\ttriggerName = param\n\t\t}\n\t\tfunction, err := fc.NewV3Function(ctx, \"function\", \u0026fc.V3FunctionArgs{\n\t\t\tMemorySize: pulumi.Int(512),\n\t\t\tCpu:        pulumi.Float64(0.5),\n\t\t\tHandler:    pulumi.String(\"index.Handler\"),\n\t\t\tCode: \u0026fc.V3FunctionCodeArgs{\n\t\t\t\tZipFile: pulumi.String(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\"),\n\t\t\t},\n\t\t\tFunctionName: pulumi.String(name),\n\t\t\tRuntime:      pulumi.String(\"python3.9\"),\n\t\t\tDiskSize:     pulumi.Int(512),\n\t\t\tLogConfig: \u0026fc.V3FunctionLogConfigArgs{\n\t\t\t\tLogBeginRule: pulumi.String(\"None\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"authType\": \"anonymous\",\n\t\t\t\"methods\": []string{\n\t\t\t\t\"GET\",\n\t\t\t\t\"POST\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = fc.NewV3Trigger(ctx, \"default\", \u0026fc.V3TriggerArgs{\n\t\t\tTriggerType:   pulumi.String(\"http\"),\n\t\t\tTriggerName:   pulumi.String(name),\n\t\t\tDescription:   pulumi.String(\"create\"),\n\t\t\tQualifier:     pulumi.String(\"LATEST\"),\n\t\t\tTriggerConfig: pulumi.String(json0),\n\t\t\tFunctionName:  function.FunctionName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"outputCalicloudFcv3TriggerInternet\", alicloudFcv3Trigger.Default.HttpTrigger[0].UrlInternet)\n\t\tctx.Export(\"outputCalicloudFcv3TriggerIntranet\", alicloudFcv3Trigger.Default.HttpTrigger[0].UrlIntranet)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fc.V3Function;\nimport com.pulumi.alicloud.fc.V3FunctionArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionCodeArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionLogConfigArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.fc.V3Trigger;\nimport com.pulumi.alicloud.fc.V3TriggerArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var functionName = config.get(\"functionName\").orElse(\"TerraformTriggerResourceAPI\");\n        final var triggerName = config.get(\"triggerName\").orElse(\"TerraformTrigger_HTTP\");\n        var function = new V3Function(\"function\", V3FunctionArgs.builder()\n            .memorySize(512)\n            .cpu(0.5)\n            .handler(\"index.Handler\")\n            .code(V3FunctionCodeArgs.builder()\n                .zipFile(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\")\n                .build())\n            .functionName(name)\n            .runtime(\"python3.9\")\n            .diskSize(512)\n            .logConfig(V3FunctionLogConfigArgs.builder()\n                .logBeginRule(\"None\")\n                .build())\n            .build());\n\n        final var current = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var default_ = new V3Trigger(\"default\", V3TriggerArgs.builder()\n            .triggerType(\"http\")\n            .triggerName(name)\n            .description(\"create\")\n            .qualifier(\"LATEST\")\n            .triggerConfig(serializeJson(\n                jsonObject(\n                    jsonProperty(\"authType\", \"anonymous\"),\n                    jsonProperty(\"methods\", jsonArray(\n                        \"GET\", \n                        \"POST\"\n                    ))\n                )))\n            .functionName(function.functionName())\n            .build());\n\n        ctx.export(\"outputCalicloudFcv3TriggerInternet\", alicloudFcv3Trigger.default().httpTrigger()[0].urlInternet());\n        ctx.export(\"outputCalicloudFcv3TriggerIntranet\", alicloudFcv3Trigger.default().httpTrigger()[0].urlIntranet());\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  functionName:\n    type: string\n    default: TerraformTriggerResourceAPI\n  triggerName:\n    type: string\n    default: TerraformTrigger_HTTP\nresources:\n  function:\n    type: alicloud:fc:V3Function\n    properties:\n      memorySize: '512'\n      cpu: 0.5\n      handler: index.Handler\n      code:\n        zipFile: UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\n      functionName: ${name}\n      runtime: python3.9\n      diskSize: '512'\n      logConfig:\n        logBeginRule: None\n  default:\n    type: alicloud:fc:V3Trigger\n    properties:\n      triggerType: http\n      triggerName: ${name}\n      description: create\n      qualifier: LATEST\n      triggerConfig:\n        fn::toJSON:\n          authType: anonymous\n          methods:\n            - GET\n            - POST\n      functionName: ${function.functionName}\nvariables:\n  current:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\noutputs:\n  outputCalicloudFcv3TriggerInternet: ${alicloudFcv3Trigger.default.httpTrigger[0].urlInternet}\n  outputCalicloudFcv3TriggerIntranet: ${alicloudFcv3Trigger.default.httpTrigger[0].urlIntranet}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFCV3 Trigger can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fc/v3Trigger:V3Trigger example \u003cfunction_name\u003e:\u003ctrigger_name\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"Creation time\n"},"description":{"type":"string","description":"Description of the trigger\n"},"functionName":{"type":"string","description":"Function Name\n"},"httpTrigger":{"$ref":"#/types/alicloud:fc/V3TriggerHttpTrigger:V3TriggerHttpTrigger","description":"(Available since v1.234.0) HTTP trigger information\n"},"invocationRole":{"type":"string","description":"The role required by the event source (such as OSS) to call the function.\n"},"lastModifiedTime":{"type":"string","description":"(Available since v1.234.0) The last modified time of the trigger\n"},"qualifier":{"type":"string","description":"The version or alias of the function\n"},"sourceArn":{"type":"string","description":"Trigger Event source ARN\n"},"status":{"type":"string","description":"The state of the trigger\n"},"targetArn":{"type":"string","description":"(Available since v1.234.0) Resource identity of the function\n"},"triggerConfig":{"type":"string","description":"Trigger configuration. The configuration varies for different types of triggers.\n"},"triggerId":{"type":"string","description":"(Available since v1.234.0) Trigger ID\n"},"triggerName":{"type":"string","description":"Trigger Name\n"},"triggerType":{"type":"string","description":"The type of the trigger. Currently, the supported types include oss, log, http, timer, tablestore, cdn_events,\u003cspan pulumi-lang-nodejs=\" mnsTopic \" pulumi-lang-dotnet=\" MnsTopic \" pulumi-lang-go=\" mnsTopic \" pulumi-lang-python=\" mns_topic \" pulumi-lang-yaml=\" mnsTopic \" pulumi-lang-java=\" mnsTopic \"\u003e mns_topic \u003c/span\u003eand eventbridge.\n"}},"required":["createTime","functionName","httpTrigger","lastModifiedTime","qualifier","sourceArn","status","targetArn","triggerId","triggerName","triggerType"],"inputProperties":{"description":{"type":"string","description":"Description of the trigger\n"},"functionName":{"type":"string","description":"Function Name\n","willReplaceOnChanges":true},"invocationRole":{"type":"string","description":"The role required by the event source (such as OSS) to call the function.\n"},"qualifier":{"type":"string","description":"The version or alias of the function\n","willReplaceOnChanges":true},"sourceArn":{"type":"string","description":"Trigger Event source ARN\n","willReplaceOnChanges":true},"triggerConfig":{"type":"string","description":"Trigger configuration. The configuration varies for different types of triggers.\n"},"triggerName":{"type":"string","description":"Trigger Name\n","willReplaceOnChanges":true},"triggerType":{"type":"string","description":"The type of the trigger. Currently, the supported types include oss, log, http, timer, tablestore, cdn_events,\u003cspan pulumi-lang-nodejs=\" mnsTopic \" pulumi-lang-dotnet=\" MnsTopic \" pulumi-lang-go=\" mnsTopic \" pulumi-lang-python=\" mns_topic \" pulumi-lang-yaml=\" mnsTopic \" pulumi-lang-java=\" mnsTopic \"\u003e mns_topic \u003c/span\u003eand eventbridge.\n","willReplaceOnChanges":true}},"requiredInputs":["functionName","qualifier","triggerType"],"stateInputs":{"description":"Input properties used for looking up and filtering V3Trigger resources.\n","properties":{"createTime":{"type":"string","description":"Creation time\n"},"description":{"type":"string","description":"Description of the trigger\n"},"functionName":{"type":"string","description":"Function Name\n","willReplaceOnChanges":true},"httpTrigger":{"$ref":"#/types/alicloud:fc/V3TriggerHttpTrigger:V3TriggerHttpTrigger","description":"(Available since v1.234.0) HTTP trigger information\n"},"invocationRole":{"type":"string","description":"The role required by the event source (such as OSS) to call the function.\n"},"lastModifiedTime":{"type":"string","description":"(Available since v1.234.0) The last modified time of the trigger\n"},"qualifier":{"type":"string","description":"The version or alias of the function\n","willReplaceOnChanges":true},"sourceArn":{"type":"string","description":"Trigger Event source ARN\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The state of the trigger\n"},"targetArn":{"type":"string","description":"(Available since v1.234.0) Resource identity of the function\n"},"triggerConfig":{"type":"string","description":"Trigger configuration. The configuration varies for different types of triggers.\n"},"triggerId":{"type":"string","description":"(Available since v1.234.0) Trigger ID\n"},"triggerName":{"type":"string","description":"Trigger Name\n","willReplaceOnChanges":true},"triggerType":{"type":"string","description":"The type of the trigger. Currently, the supported types include oss, log, http, timer, tablestore, cdn_events,\u003cspan pulumi-lang-nodejs=\" mnsTopic \" pulumi-lang-dotnet=\" MnsTopic \" pulumi-lang-go=\" mnsTopic \" pulumi-lang-python=\" mns_topic \" pulumi-lang-yaml=\" mnsTopic \" pulumi-lang-java=\" mnsTopic \"\u003e mns_topic \u003c/span\u003eand eventbridge.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:fc/v3VpcBinding:V3VpcBinding":{"description":"Provides a FCV3 Vpc Binding resource.\n\n\n\nFor information about FCV3 Vpc Binding and how to use it, see [What is Vpc Binding](https://www.alibabacloud.com/help/en/functioncompute/fc-3-0/developer-reference/api-fc-2023-03-30-createvpcbinding).\n\n\u003e **NOTE:** Available since v1.230.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    cidrBlock: \"10.0.0.0/8\",\n    vpcName: name,\n});\nconst _function = new alicloud.fc.V3Function(\"function\", {\n    memorySize: 512,\n    cpu: 0.5,\n    handler: \"index.Handler\",\n    code: {\n        zipFile: \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    functionName: name,\n    runtime: \"python3.9\",\n    diskSize: 512,\n    logConfig: {\n        logBeginRule: \"None\",\n    },\n});\nconst _default = new alicloud.fc.V3VpcBinding(\"default\", {\n    functionName: _function.functionName,\n    vpcId: vpc.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nvpc = alicloud.vpc.Network(\"vpc\",\n    cidr_block=\"10.0.0.0/8\",\n    vpc_name=name)\nfunction = alicloud.fc.V3Function(\"function\",\n    memory_size=512,\n    cpu=0.5,\n    handler=\"index.Handler\",\n    code={\n        \"zip_file\": \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    function_name=name,\n    runtime=\"python3.9\",\n    disk_size=512,\n    log_config={\n        \"log_begin_rule\": \"None\",\n    })\ndefault = alicloud.fc.V3VpcBinding(\"default\",\n    function_name=function.function_name,\n    vpc_id=vpc.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        CidrBlock = \"10.0.0.0/8\",\n        VpcName = name,\n    });\n\n    var function = new AliCloud.FC.V3Function(\"function\", new()\n    {\n        MemorySize = 512,\n        Cpu = 0.5,\n        Handler = \"index.Handler\",\n        Code = new AliCloud.FC.Inputs.V3FunctionCodeArgs\n        {\n            ZipFile = \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n        },\n        FunctionName = name,\n        Runtime = \"python3.9\",\n        DiskSize = 512,\n        LogConfig = new AliCloud.FC.Inputs.V3FunctionLogConfigArgs\n        {\n            LogBeginRule = \"None\",\n        },\n    });\n\n    var @default = new AliCloud.FC.V3VpcBinding(\"default\", new()\n    {\n        FunctionName = function.FunctionName,\n        VpcId = vpc.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfunction, err := fc.NewV3Function(ctx, \"function\", \u0026fc.V3FunctionArgs{\n\t\t\tMemorySize: pulumi.Int(512),\n\t\t\tCpu:        pulumi.Float64(0.5),\n\t\t\tHandler:    pulumi.String(\"index.Handler\"),\n\t\t\tCode: \u0026fc.V3FunctionCodeArgs{\n\t\t\t\tZipFile: pulumi.String(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\"),\n\t\t\t},\n\t\t\tFunctionName: pulumi.String(name),\n\t\t\tRuntime:      pulumi.String(\"python3.9\"),\n\t\t\tDiskSize:     pulumi.Int(512),\n\t\t\tLogConfig: \u0026fc.V3FunctionLogConfigArgs{\n\t\t\t\tLogBeginRule: pulumi.String(\"None\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fc.NewV3VpcBinding(ctx, \"default\", \u0026fc.V3VpcBindingArgs{\n\t\t\tFunctionName: function.FunctionName,\n\t\t\tVpcId:        vpc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.fc.V3Function;\nimport com.pulumi.alicloud.fc.V3FunctionArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionCodeArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionLogConfigArgs;\nimport com.pulumi.alicloud.fc.V3VpcBinding;\nimport com.pulumi.alicloud.fc.V3VpcBindingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .cidrBlock(\"10.0.0.0/8\")\n            .vpcName(name)\n            .build());\n\n        var function = new V3Function(\"function\", V3FunctionArgs.builder()\n            .memorySize(512)\n            .cpu(0.5)\n            .handler(\"index.Handler\")\n            .code(V3FunctionCodeArgs.builder()\n                .zipFile(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\")\n                .build())\n            .functionName(name)\n            .runtime(\"python3.9\")\n            .diskSize(512)\n            .logConfig(V3FunctionLogConfigArgs.builder()\n                .logBeginRule(\"None\")\n                .build())\n            .build());\n\n        var default_ = new V3VpcBinding(\"default\", V3VpcBindingArgs.builder()\n            .functionName(function.functionName())\n            .vpcId(vpc.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 10.0.0.0/8\n      vpcName: ${name}\n  function:\n    type: alicloud:fc:V3Function\n    properties:\n      memorySize: '512'\n      cpu: 0.5\n      handler: index.Handler\n      code:\n        zipFile: UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\n      functionName: ${name}\n      runtime: python3.9\n      diskSize: '512'\n      logConfig:\n        logBeginRule: None\n  default:\n    type: alicloud:fc:V3VpcBinding\n    properties:\n      functionName: ${function.functionName}\n      vpcId: ${vpc.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFCV3 Vpc Binding can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fc/v3VpcBinding:V3VpcBinding example \u003cfunction_name\u003e:\u003cvpc_id\u003e\n```\n\n","properties":{"functionName":{"type":"string","description":"Function Name\n"},"vpcId":{"type":"string","description":"VPC instance ID\n"}},"required":["functionName","vpcId"],"inputProperties":{"functionName":{"type":"string","description":"Function Name\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"VPC instance ID\n","willReplaceOnChanges":true}},"requiredInputs":["functionName"],"stateInputs":{"description":"Input properties used for looking up and filtering V3VpcBinding resources.\n","properties":{"functionName":{"type":"string","description":"Function Name\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"VPC instance ID\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:fnf/execution:Execution":{"description":"Provides a Serverless Workflow Execution resource.\n\nFor information about Serverless Workflow Execution and how to use it, see [What is Execution](https://www.alibabacloud.com/help/en/doc-detail/122628.html).\n\n\u003e **NOTE:** Available since v1.149.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example-fnfflow\";\nconst _default = new alicloud.ram.Role(\"default\", {\n    name: name,\n    document: `  {\n    \\\\\"Statement\\\\\": [\n      {\n        \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n        \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n        \\\\\"Principal\\\\\": {\n          \\\\\"Service\\\\\": [\n            \\\\\"fnf.aliyuncs.com\\\\\"\n          ]\n        }\n      }\n    ],\n    \\\\\"Version\\\\\": \\\\\"1\\\\\"\n  }\n`,\n});\nconst defaultFlow = new alicloud.fnf.Flow(\"default\", {\n    definition: `  version: v1beta1\n  type: flow\n  steps:\n    - type: wait\n      name: custom_wait\n      duration: .wait\n`,\n    roleArn: _default.arn,\n    description: \"Test for terraform fnf_flow.\",\n    name: name,\n    type: \"FDL\",\n});\nconst defaultExecution = new alicloud.fnf.Execution(\"default\", {\n    executionName: name,\n    flowName: defaultFlow.name,\n    input: \"{\\\"wait\\\": 600}\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example-fnfflow\"\ndefault = alicloud.ram.Role(\"default\",\n    name=name,\n    document=\"\"\"  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"fnf.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n\"\"\")\ndefault_flow = alicloud.fnf.Flow(\"default\",\n    definition=\"\"\"  version: v1beta1\n  type: flow\n  steps:\n    - type: wait\n      name: custom_wait\n      duration: $.wait\n\"\"\",\n    role_arn=default.arn,\n    description=\"Test for terraform fnf_flow.\",\n    name=name,\n    type=\"FDL\")\ndefault_execution = alicloud.fnf.Execution(\"default\",\n    execution_name=name,\n    flow_name=default_flow.name,\n    input=\"{\\\"wait\\\": 600}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example-fnfflow\";\n    var @default = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = name,\n        Document = @\"  {\n    \\\"\"Statement\\\"\": [\n      {\n        \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n        \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n        \\\"\"Principal\\\"\": {\n          \\\"\"Service\\\"\": [\n            \\\"\"fnf.aliyuncs.com\\\"\"\n          ]\n        }\n      }\n    ],\n    \\\"\"Version\\\"\": \\\"\"1\\\"\"\n  }\n\",\n    });\n\n    var defaultFlow = new AliCloud.FNF.Flow(\"default\", new()\n    {\n        Definition = @\"  version: v1beta1\n  type: flow\n  steps:\n    - type: wait\n      name: custom_wait\n      duration: $.wait\n\",\n        RoleArn = @default.Arn,\n        Description = \"Test for terraform fnf_flow.\",\n        Name = name,\n        Type = \"FDL\",\n    });\n\n    var defaultExecution = new AliCloud.FNF.Execution(\"default\", new()\n    {\n        ExecutionName = name,\n        FlowName = defaultFlow.Name,\n        Input = \"{\\\"wait\\\": 600}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fnf\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example-fnfflow\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.String(name),\n\t\t\tDocument: pulumi.String(`  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"fnf.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultFlow, err := fnf.NewFlow(ctx, \"default\", \u0026fnf.FlowArgs{\n\t\t\tDefinition: pulumi.String(`  version: v1beta1\n  type: flow\n  steps:\n    - type: wait\n      name: custom_wait\n      duration: $.wait\n`),\n\t\t\tRoleArn:     _default.Arn,\n\t\t\tDescription: pulumi.String(\"Test for terraform fnf_flow.\"),\n\t\t\tName:        pulumi.String(name),\n\t\t\tType:        pulumi.String(\"FDL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fnf.NewExecution(ctx, \"default\", \u0026fnf.ExecutionArgs{\n\t\t\tExecutionName: pulumi.String(name),\n\t\t\tFlowName:      defaultFlow.Name,\n\t\t\tInput:         pulumi.String(\"{\\\"wait\\\": 600}\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.fnf.Flow;\nimport com.pulumi.alicloud.fnf.FlowArgs;\nimport com.pulumi.alicloud.fnf.Execution;\nimport com.pulumi.alicloud.fnf.ExecutionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example-fnfflow\");\n        var default_ = new Role(\"default\", RoleArgs.builder()\n            .name(name)\n            .document(\"\"\"\n  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"fnf.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n            \"\"\")\n            .build());\n\n        var defaultFlow = new Flow(\"defaultFlow\", FlowArgs.builder()\n            .definition(\"\"\"\n  version: v1beta1\n  type: flow\n  steps:\n    - type: wait\n      name: custom_wait\n      duration: $.wait\n            \"\"\")\n            .roleArn(default_.arn())\n            .description(\"Test for terraform fnf_flow.\")\n            .name(name)\n            .type(\"FDL\")\n            .build());\n\n        var defaultExecution = new Execution(\"defaultExecution\", ExecutionArgs.builder()\n            .executionName(name)\n            .flowName(defaultFlow.name())\n            .input(\"{\\\"wait\\\": 600}\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example-fnfflow\nresources:\n  default:\n    type: alicloud:ram:Role\n    properties:\n      name: ${name}\n      document: |2\n          {\n            \\\"Statement\\\": [\n              {\n                \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                \\\"Effect\\\": \\\"Allow\\\",\n                \\\"Principal\\\": {\n                  \\\"Service\\\": [\n                    \\\"fnf.aliyuncs.com\\\"\n                  ]\n                }\n              }\n            ],\n            \\\"Version\\\": \\\"1\\\"\n          }\n  defaultFlow:\n    type: alicloud:fnf:Flow\n    name: default\n    properties:\n      definition: |2\n          version: v1beta1\n          type: flow\n          steps:\n            - type: wait\n              name: custom_wait\n              duration: $.wait\n      roleArn: ${default.arn}\n      description: Test for terraform fnf_flow.\n      name: ${name}\n      type: FDL\n  defaultExecution:\n    type: alicloud:fnf:Execution\n    name: default\n    properties:\n      executionName: ${name}\n      flowName: ${defaultFlow.name}\n      input: '{\"wait\": 600}'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nServerless Workflow Execution can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fnf/execution:Execution example \u003cflow_name\u003e:\u003cexecution_name\u003e\n```\n\n","properties":{"executionName":{"type":"string","description":"The name of the execution.\n"},"flowName":{"type":"string","description":"The name of the flow.\n"},"input":{"type":"string","description":"The Input information for this execution.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Stopped`.\n"}},"required":["executionName","flowName","status"],"inputProperties":{"executionName":{"type":"string","description":"The name of the execution.\n","willReplaceOnChanges":true},"flowName":{"type":"string","description":"The name of the flow.\n","willReplaceOnChanges":true},"input":{"type":"string","description":"The Input information for this execution.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `Stopped`.\n"}},"requiredInputs":["executionName","flowName"],"stateInputs":{"description":"Input properties used for looking up and filtering Execution resources.\n","properties":{"executionName":{"type":"string","description":"The name of the execution.\n","willReplaceOnChanges":true},"flowName":{"type":"string","description":"The name of the flow.\n","willReplaceOnChanges":true},"input":{"type":"string","description":"The Input information for this execution.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `Stopped`.\n"}},"type":"object"}},"alicloud:fnf/flow:Flow":{"description":"Provides a Serverless Workflow Flow resource.\n\nFor information about Serverless Workflow Flow and how to use it, see [What is Flow](https://www.alibabacloud.com/help/en/doc-detail/123079.htm).\n\n\u003e **NOTE:** Available since v1.105.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ram.Role(\"default\", {\n    name: \"tf-example-fnfflow\",\n    document: `  {\n    \\\\\"Statement\\\\\": [\n      {\n        \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n        \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n        \\\\\"Principal\\\\\": {\n          \\\\\"Service\\\\\": [\n            \\\\\"fnf.aliyuncs.com\\\\\"\n          ]\n        }\n      }\n    ],\n    \\\\\"Version\\\\\": \\\\\"1\\\\\"\n  }\n`,\n});\nconst example = new alicloud.fnf.Flow(\"example\", {\n    definition: `  version: v1beta1\n  type: flow\n  steps:\n    - type: pass\n      name: helloworld\n`,\n    roleArn: _default.arn,\n    description: \"Test for terraform fnf_flow.\",\n    name: \"tf-example-flow\",\n    type: \"FDL\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ram.Role(\"default\",\n    name=\"tf-example-fnfflow\",\n    document=\"\"\"  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"fnf.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n\"\"\")\nexample = alicloud.fnf.Flow(\"example\",\n    definition=\"\"\"  version: v1beta1\n  type: flow\n  steps:\n    - type: pass\n      name: helloworld\n\"\"\",\n    role_arn=default.arn,\n    description=\"Test for terraform fnf_flow.\",\n    name=\"tf-example-flow\",\n    type=\"FDL\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = \"tf-example-fnfflow\",\n        Document = @\"  {\n    \\\"\"Statement\\\"\": [\n      {\n        \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n        \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n        \\\"\"Principal\\\"\": {\n          \\\"\"Service\\\"\": [\n            \\\"\"fnf.aliyuncs.com\\\"\"\n          ]\n        }\n      }\n    ],\n    \\\"\"Version\\\"\": \\\"\"1\\\"\"\n  }\n\",\n    });\n\n    var example = new AliCloud.FNF.Flow(\"example\", new()\n    {\n        Definition = @\"  version: v1beta1\n  type: flow\n  steps:\n    - type: pass\n      name: helloworld\n\",\n        RoleArn = @default.Arn,\n        Description = \"Test for terraform fnf_flow.\",\n        Name = \"tf-example-flow\",\n        Type = \"FDL\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fnf\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.String(\"tf-example-fnfflow\"),\n\t\t\tDocument: pulumi.String(`  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"fnf.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fnf.NewFlow(ctx, \"example\", \u0026fnf.FlowArgs{\n\t\t\tDefinition: pulumi.String(`  version: v1beta1\n  type: flow\n  steps:\n    - type: pass\n      name: helloworld\n`),\n\t\t\tRoleArn:     _default.Arn,\n\t\t\tDescription: pulumi.String(\"Test for terraform fnf_flow.\"),\n\t\t\tName:        pulumi.String(\"tf-example-flow\"),\n\t\t\tType:        pulumi.String(\"FDL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.fnf.Flow;\nimport com.pulumi.alicloud.fnf.FlowArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Role(\"default\", RoleArgs.builder()\n            .name(\"tf-example-fnfflow\")\n            .document(\"\"\"\n  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"fnf.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n            \"\"\")\n            .build());\n\n        var example = new Flow(\"example\", FlowArgs.builder()\n            .definition(\"\"\"\n  version: v1beta1\n  type: flow\n  steps:\n    - type: pass\n      name: helloworld\n            \"\"\")\n            .roleArn(default_.arn())\n            .description(\"Test for terraform fnf_flow.\")\n            .name(\"tf-example-flow\")\n            .type(\"FDL\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ram:Role\n    properties:\n      name: tf-example-fnfflow\n      document: |2\n          {\n            \\\"Statement\\\": [\n              {\n                \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                \\\"Effect\\\": \\\"Allow\\\",\n                \\\"Principal\\\": {\n                  \\\"Service\\\": [\n                    \\\"fnf.aliyuncs.com\\\"\n                  ]\n                }\n              }\n            ],\n            \\\"Version\\\": \\\"1\\\"\n          }\n  example:\n    type: alicloud:fnf:Flow\n    properties:\n      definition: |2\n          version: v1beta1\n          type: flow\n          steps:\n            - type: pass\n              name: helloworld\n      roleArn: ${default.arn}\n      description: Test for terraform fnf_flow.\n      name: tf-example-flow\n      type: FDL\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nServerless Workflow Flow can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fnf/flow:Flow example \u003cname\u003e\n```\n\n","properties":{"definition":{"type":"string","description":"The definition of the flow. It must comply with the Flow Definition Language (FDL) syntax.\n"},"description":{"type":"string","description":"The description of the flow.\n"},"flowId":{"type":"string","description":"The unique ID of the flow.\n"},"lastModifiedTime":{"type":"string","description":"The time when the flow was last modified.\n"},"name":{"type":"string","description":"The name of the flow. The name must be unique in an Alibaba Cloud account.\n"},"roleArn":{"type":"string","description":"The ARN of the specified RAM role that Serverless Workflow uses to assume the role when Serverless Workflow executes a flow.\n"},"type":{"type":"string","description":"The type of the flow. Valid values are `FDL` or `DEFAULT`.\n"}},"required":["definition","description","flowId","lastModifiedTime","name","type"],"inputProperties":{"definition":{"type":"string","description":"The definition of the flow. It must comply with the Flow Definition Language (FDL) syntax.\n"},"description":{"type":"string","description":"The description of the flow.\n"},"name":{"type":"string","description":"The name of the flow. The name must be unique in an Alibaba Cloud account.\n","willReplaceOnChanges":true},"roleArn":{"type":"string","description":"The ARN of the specified RAM role that Serverless Workflow uses to assume the role when Serverless Workflow executes a flow.\n"},"type":{"type":"string","description":"The type of the flow. Valid values are `FDL` or `DEFAULT`.\n"}},"requiredInputs":["definition","description","type"],"stateInputs":{"description":"Input properties used for looking up and filtering Flow resources.\n","properties":{"definition":{"type":"string","description":"The definition of the flow. It must comply with the Flow Definition Language (FDL) syntax.\n"},"description":{"type":"string","description":"The description of the flow.\n"},"flowId":{"type":"string","description":"The unique ID of the flow.\n"},"lastModifiedTime":{"type":"string","description":"The time when the flow was last modified.\n"},"name":{"type":"string","description":"The name of the flow. The name must be unique in an Alibaba Cloud account.\n","willReplaceOnChanges":true},"roleArn":{"type":"string","description":"The ARN of the specified RAM role that Serverless Workflow uses to assume the role when Serverless Workflow executes a flow.\n"},"type":{"type":"string","description":"The type of the flow. Valid values are `FDL` or `DEFAULT`.\n"}},"type":"object"}},"alicloud:fnf/schedule:Schedule":{"description":"Provides a Serverless Workflow Schedule resource.\n\nFor information about Serverless Workflow Schedule and how to use it, see [What is Schedule](https://www.alibabacloud.com/help/en/doc-detail/168934.htm).\n\n\u003e **NOTE:** Available since v1.105.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.fnf.Flow(\"example\", {\n    definition: `  version: v1beta1\n  type: flow\n  steps:\n    - type: pass\n      name: helloworld\n`,\n    description: \"tf-exampleFnFFlow983041\",\n    name: \"tf-exampleSchedule\",\n    type: \"FDL\",\n});\nconst exampleSchedule = new alicloud.fnf.Schedule(\"example\", {\n    cronExpression: \"30 9 * * * *\",\n    description: \"tf-exampleFnFSchedule983041\",\n    enable: true,\n    flowName: example.name,\n    payload: \"{\\\"tf-example\\\": \\\"example success\\\"}\",\n    scheduleName: \"tf-exampleFnFSchedule983041\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.fnf.Flow(\"example\",\n    definition=\"\"\"  version: v1beta1\n  type: flow\n  steps:\n    - type: pass\n      name: helloworld\n\"\"\",\n    description=\"tf-exampleFnFFlow983041\",\n    name=\"tf-exampleSchedule\",\n    type=\"FDL\")\nexample_schedule = alicloud.fnf.Schedule(\"example\",\n    cron_expression=\"30 9 * * * *\",\n    description=\"tf-exampleFnFSchedule983041\",\n    enable=True,\n    flow_name=example.name,\n    payload=\"{\\\"tf-example\\\": \\\"example success\\\"}\",\n    schedule_name=\"tf-exampleFnFSchedule983041\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.FNF.Flow(\"example\", new()\n    {\n        Definition = @\"  version: v1beta1\n  type: flow\n  steps:\n    - type: pass\n      name: helloworld\n\",\n        Description = \"tf-exampleFnFFlow983041\",\n        Name = \"tf-exampleSchedule\",\n        Type = \"FDL\",\n    });\n\n    var exampleSchedule = new AliCloud.FNF.Schedule(\"example\", new()\n    {\n        CronExpression = \"30 9 * * * *\",\n        Description = \"tf-exampleFnFSchedule983041\",\n        Enable = true,\n        FlowName = example.Name,\n        Payload = \"{\\\"tf-example\\\": \\\"example success\\\"}\",\n        ScheduleName = \"tf-exampleFnFSchedule983041\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fnf\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := fnf.NewFlow(ctx, \"example\", \u0026fnf.FlowArgs{\n\t\t\tDefinition: pulumi.String(`  version: v1beta1\n  type: flow\n  steps:\n    - type: pass\n      name: helloworld\n`),\n\t\t\tDescription: pulumi.String(\"tf-exampleFnFFlow983041\"),\n\t\t\tName:        pulumi.String(\"tf-exampleSchedule\"),\n\t\t\tType:        pulumi.String(\"FDL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fnf.NewSchedule(ctx, \"example\", \u0026fnf.ScheduleArgs{\n\t\t\tCronExpression: pulumi.String(\"30 9 * * * *\"),\n\t\t\tDescription:    pulumi.String(\"tf-exampleFnFSchedule983041\"),\n\t\t\tEnable:         pulumi.Bool(true),\n\t\t\tFlowName:       example.Name,\n\t\t\tPayload:        pulumi.String(\"{\\\"tf-example\\\": \\\"example success\\\"}\"),\n\t\t\tScheduleName:   pulumi.String(\"tf-exampleFnFSchedule983041\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fnf.Flow;\nimport com.pulumi.alicloud.fnf.FlowArgs;\nimport com.pulumi.alicloud.fnf.Schedule;\nimport com.pulumi.alicloud.fnf.ScheduleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Flow(\"example\", FlowArgs.builder()\n            .definition(\"\"\"\n  version: v1beta1\n  type: flow\n  steps:\n    - type: pass\n      name: helloworld\n            \"\"\")\n            .description(\"tf-exampleFnFFlow983041\")\n            .name(\"tf-exampleSchedule\")\n            .type(\"FDL\")\n            .build());\n\n        var exampleSchedule = new Schedule(\"exampleSchedule\", ScheduleArgs.builder()\n            .cronExpression(\"30 9 * * * *\")\n            .description(\"tf-exampleFnFSchedule983041\")\n            .enable(true)\n            .flowName(example.name())\n            .payload(\"{\\\"tf-example\\\": \\\"example success\\\"}\")\n            .scheduleName(\"tf-exampleFnFSchedule983041\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:fnf:Flow\n    properties:\n      definition: |2\n          version: v1beta1\n          type: flow\n          steps:\n            - type: pass\n              name: helloworld\n      description: tf-exampleFnFFlow983041\n      name: tf-exampleSchedule\n      type: FDL\n  exampleSchedule:\n    type: alicloud:fnf:Schedule\n    name: example\n    properties:\n      cronExpression: 30 9 * * * *\n      description: tf-exampleFnFSchedule983041\n      enable: 'true'\n      flowName: ${example.name}\n      payload: '{\"tf-example\": \"example success\"}'\n      scheduleName: tf-exampleFnFSchedule983041\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nServerless Workflow Schedule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:fnf/schedule:Schedule example \u003cschedule_name\u003e:\u003cflow_name\u003e\n```\n\n","properties":{"cronExpression":{"type":"string","description":"The CRON expression of the time-based schedule to be created.\n"},"description":{"type":"string","description":"The description of the time-based schedule to be created.\n"},"enable":{"type":"boolean","description":"Specifies whether to enable the time-based schedule you want to create. Valid values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"flowName":{"type":"string","description":"The name of the flow bound to the time-based schedule you want to create.\n"},"lastModifiedTime":{"type":"string","description":"The time when the time-based schedule was last updated.\n"},"payload":{"type":"string","description":"The trigger message of the time-based schedule to be created. It must be in JSON object format.\n"},"scheduleId":{"type":"string","description":"The ID of the time-based schedule.\n"},"scheduleName":{"type":"string","description":"The name of the time-based schedule to be created.\n"}},"required":["cronExpression","flowName","lastModifiedTime","scheduleId","scheduleName"],"inputProperties":{"cronExpression":{"type":"string","description":"The CRON expression of the time-based schedule to be created.\n"},"description":{"type":"string","description":"The description of the time-based schedule to be created.\n"},"enable":{"type":"boolean","description":"Specifies whether to enable the time-based schedule you want to create. Valid values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"flowName":{"type":"string","description":"The name of the flow bound to the time-based schedule you want to create.\n","willReplaceOnChanges":true},"payload":{"type":"string","description":"The trigger message of the time-based schedule to be created. It must be in JSON object format.\n"},"scheduleName":{"type":"string","description":"The name of the time-based schedule to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["cronExpression","flowName","scheduleName"],"stateInputs":{"description":"Input properties used for looking up and filtering Schedule resources.\n","properties":{"cronExpression":{"type":"string","description":"The CRON expression of the time-based schedule to be created.\n"},"description":{"type":"string","description":"The description of the time-based schedule to be created.\n"},"enable":{"type":"boolean","description":"Specifies whether to enable the time-based schedule you want to create. Valid values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"flowName":{"type":"string","description":"The name of the flow bound to the time-based schedule you want to create.\n","willReplaceOnChanges":true},"lastModifiedTime":{"type":"string","description":"The time when the time-based schedule was last updated.\n"},"payload":{"type":"string","description":"The trigger message of the time-based schedule to be created. It must be in JSON object format.\n"},"scheduleId":{"type":"string","description":"The ID of the time-based schedule.\n"},"scheduleName":{"type":"string","description":"The name of the time-based schedule to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ga/accelerator:Accelerator":{"description":"Provides a Global Accelerator (GA) Accelerator resource.\n\nFor information about Global Accelerator (GA) Accelerator and how to use it, see [What is Accelerator](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createaccelerator).\n\n\u003e **NOTE:** Available since v1.111.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.ga.Accelerator(\"example\", {\n    duration: 1,\n    autoUseCoupon: true,\n    spec: \"1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ga.Accelerator(\"example\",\n    duration=1,\n    auto_use_coupon=True,\n    spec=\"1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Ga.Accelerator(\"example\", new()\n    {\n        Duration = 1,\n        AutoUseCoupon = true,\n        Spec = \"1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ga.NewAccelerator(ctx, \"example\", \u0026ga.AcceleratorArgs{\n\t\t\tDuration:      pulumi.Int(1),\n\t\t\tAutoUseCoupon: pulumi.Bool(true),\n\t\t\tSpec:          pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.Accelerator;\nimport com.pulumi.alicloud.ga.AcceleratorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Accelerator(\"example\", AcceleratorArgs.builder()\n            .duration(1)\n            .autoUseCoupon(true)\n            .spec(\"1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:ga:Accelerator\n    properties:\n      duration: 1\n      autoUseCoupon: true\n      spec: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGa Accelerator can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/accelerator:Accelerator example \u003cid\u003e\n```\n\n","properties":{"acceleratorName":{"type":"string","description":"The Name of the GA instance.\n"},"autoRenewDuration":{"type":"integer","description":"Auto renewal period of an instance, in the unit of month. The value range is 1-12.\n"},"autoUseCoupon":{"type":"boolean","description":"Use coupons to pay bills automatically. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"bandwidthBillingType":{"type":"string","description":"The bandwidth billing method. Default value: `BandwidthPackage`. Valid values:\n- `BandwidthPackage`: billed based on bandwidth plans.\n- `CDT`: billed based on data transfer.\n"},"crossBorderMode":{"type":"string","description":"The type of cross-border acceleration. Default value: `bgpPro`. Valid values: `bgpPro`, \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`crossBorderMode`\" pulumi-lang-dotnet=\"`CrossBorderMode`\" pulumi-lang-go=\"`crossBorderMode`\" pulumi-lang-python=\"`cross_border_mode`\" pulumi-lang-yaml=\"`crossBorderMode`\" pulumi-lang-java=\"`crossBorderMode`\"\u003e`cross_border_mode`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`crossBorderStatus`\" pulumi-lang-dotnet=\"`CrossBorderStatus`\" pulumi-lang-go=\"`crossBorderStatus`\" pulumi-lang-python=\"`cross_border_status`\" pulumi-lang-yaml=\"`crossBorderStatus`\" pulumi-lang-java=\"`crossBorderStatus`\"\u003e`cross_border_status`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"crossBorderStatus":{"type":"boolean","description":"Indicates whether cross-border acceleration is enabled. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"description":{"type":"string","description":"Descriptive information of the global acceleration instance.\n"},"duration":{"type":"integer","description":"The subscription duration.\n* If the \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e parameter is set to `Month`, the valid values for the \u003cspan pulumi-lang-nodejs=\"`duration`\" pulumi-lang-dotnet=\"`Duration`\" pulumi-lang-go=\"`duration`\" pulumi-lang-python=\"`duration`\" pulumi-lang-yaml=\"`duration`\" pulumi-lang-java=\"`duration`\"\u003e`duration`\u003c/span\u003e parameter are 1 to 9.\n* If the \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e parameter is set to `Year`, the valid values for the \u003cspan pulumi-lang-nodejs=\"`duration`\" pulumi-lang-dotnet=\"`Duration`\" pulumi-lang-go=\"`duration`\" pulumi-lang-python=\"`duration`\" pulumi-lang-yaml=\"`duration`\" pulumi-lang-java=\"`duration`\"\u003e`duration`\u003c/span\u003e parameter are 1 to 3.\n"},"paymentType":{"type":"string","description":"The payment type. Default value: `Subscription`. Valid values: `PayAsYouGo`, `Subscription`.\n"},"pricingCycle":{"type":"string","description":"The billing cycle of the GA instance. Default value: `Month`. Valid values:\n- `Month`: billed on a monthly basis.\n- `Year`: billed on an annual basis.\n"},"promotionOptionNo":{"type":"string","description":"The code of the coupon. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`promotionOptionNo`\" pulumi-lang-dotnet=\"`PromotionOptionNo`\" pulumi-lang-go=\"`promotionOptionNo`\" pulumi-lang-python=\"`promotion_option_no`\" pulumi-lang-yaml=\"`promotionOptionNo`\" pulumi-lang-java=\"`promotionOptionNo`\"\u003e`promotion_option_no`\u003c/span\u003e takes effect only for accounts registered on the international site (alibabacloud.com).\n"},"renewalStatus":{"type":"string","description":"Whether to renew an accelerator automatically or not. Default value: `Normal`. Valid values:\n- `AutoRenewal`: Enable auto renewal.\n- `Normal`: Disable auto renewal.\n- `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"spec":{"type":"string","description":"The instance type of the GA instance. Specification of global acceleration instance. Valid values:\n"},"status":{"type":"string","description":"The status of the GA instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["autoRenewDuration","bandwidthBillingType","crossBorderMode","paymentType","renewalStatus","resourceGroupId","status"],"inputProperties":{"acceleratorName":{"type":"string","description":"The Name of the GA instance.\n"},"autoRenewDuration":{"type":"integer","description":"Auto renewal period of an instance, in the unit of month. The value range is 1-12.\n"},"autoUseCoupon":{"type":"boolean","description":"Use coupons to pay bills automatically. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"bandwidthBillingType":{"type":"string","description":"The bandwidth billing method. Default value: `BandwidthPackage`. Valid values:\n- `BandwidthPackage`: billed based on bandwidth plans.\n- `CDT`: billed based on data transfer.\n","willReplaceOnChanges":true},"crossBorderMode":{"type":"string","description":"The type of cross-border acceleration. Default value: `bgpPro`. Valid values: `bgpPro`, \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`crossBorderMode`\" pulumi-lang-dotnet=\"`CrossBorderMode`\" pulumi-lang-go=\"`crossBorderMode`\" pulumi-lang-python=\"`cross_border_mode`\" pulumi-lang-yaml=\"`crossBorderMode`\" pulumi-lang-java=\"`crossBorderMode`\"\u003e`cross_border_mode`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`crossBorderStatus`\" pulumi-lang-dotnet=\"`CrossBorderStatus`\" pulumi-lang-go=\"`crossBorderStatus`\" pulumi-lang-python=\"`cross_border_status`\" pulumi-lang-yaml=\"`crossBorderStatus`\" pulumi-lang-java=\"`crossBorderStatus`\"\u003e`cross_border_status`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"crossBorderStatus":{"type":"boolean","description":"Indicates whether cross-border acceleration is enabled. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"description":{"type":"string","description":"Descriptive information of the global acceleration instance.\n"},"duration":{"type":"integer","description":"The subscription duration.\n* If the \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e parameter is set to `Month`, the valid values for the \u003cspan pulumi-lang-nodejs=\"`duration`\" pulumi-lang-dotnet=\"`Duration`\" pulumi-lang-go=\"`duration`\" pulumi-lang-python=\"`duration`\" pulumi-lang-yaml=\"`duration`\" pulumi-lang-java=\"`duration`\"\u003e`duration`\u003c/span\u003e parameter are 1 to 9.\n* If the \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e parameter is set to `Year`, the valid values for the \u003cspan pulumi-lang-nodejs=\"`duration`\" pulumi-lang-dotnet=\"`Duration`\" pulumi-lang-go=\"`duration`\" pulumi-lang-python=\"`duration`\" pulumi-lang-yaml=\"`duration`\" pulumi-lang-java=\"`duration`\"\u003e`duration`\u003c/span\u003e parameter are 1 to 3.\n"},"paymentType":{"type":"string","description":"The payment type. Default value: `Subscription`. Valid values: `PayAsYouGo`, `Subscription`.\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The billing cycle of the GA instance. Default value: `Month`. Valid values:\n- `Month`: billed on a monthly basis.\n- `Year`: billed on an annual basis.\n"},"promotionOptionNo":{"type":"string","description":"The code of the coupon. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`promotionOptionNo`\" pulumi-lang-dotnet=\"`PromotionOptionNo`\" pulumi-lang-go=\"`promotionOptionNo`\" pulumi-lang-python=\"`promotion_option_no`\" pulumi-lang-yaml=\"`promotionOptionNo`\" pulumi-lang-java=\"`promotionOptionNo`\"\u003e`promotion_option_no`\u003c/span\u003e takes effect only for accounts registered on the international site (alibabacloud.com).\n"},"renewalStatus":{"type":"string","description":"Whether to renew an accelerator automatically or not. Default value: `Normal`. Valid values:\n- `AutoRenewal`: Enable auto renewal.\n- `Normal`: Disable auto renewal.\n- `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"spec":{"type":"string","description":"The instance type of the GA instance. Specification of global acceleration instance. Valid values:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Accelerator resources.\n","properties":{"acceleratorName":{"type":"string","description":"The Name of the GA instance.\n"},"autoRenewDuration":{"type":"integer","description":"Auto renewal period of an instance, in the unit of month. The value range is 1-12.\n"},"autoUseCoupon":{"type":"boolean","description":"Use coupons to pay bills automatically. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"bandwidthBillingType":{"type":"string","description":"The bandwidth billing method. Default value: `BandwidthPackage`. Valid values:\n- `BandwidthPackage`: billed based on bandwidth plans.\n- `CDT`: billed based on data transfer.\n","willReplaceOnChanges":true},"crossBorderMode":{"type":"string","description":"The type of cross-border acceleration. Default value: `bgpPro`. Valid values: `bgpPro`, \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`crossBorderMode`\" pulumi-lang-dotnet=\"`CrossBorderMode`\" pulumi-lang-go=\"`crossBorderMode`\" pulumi-lang-python=\"`cross_border_mode`\" pulumi-lang-yaml=\"`crossBorderMode`\" pulumi-lang-java=\"`crossBorderMode`\"\u003e`cross_border_mode`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`crossBorderStatus`\" pulumi-lang-dotnet=\"`CrossBorderStatus`\" pulumi-lang-go=\"`crossBorderStatus`\" pulumi-lang-python=\"`cross_border_status`\" pulumi-lang-yaml=\"`crossBorderStatus`\" pulumi-lang-java=\"`crossBorderStatus`\"\u003e`cross_border_status`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"crossBorderStatus":{"type":"boolean","description":"Indicates whether cross-border acceleration is enabled. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"description":{"type":"string","description":"Descriptive information of the global acceleration instance.\n"},"duration":{"type":"integer","description":"The subscription duration.\n* If the \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e parameter is set to `Month`, the valid values for the \u003cspan pulumi-lang-nodejs=\"`duration`\" pulumi-lang-dotnet=\"`Duration`\" pulumi-lang-go=\"`duration`\" pulumi-lang-python=\"`duration`\" pulumi-lang-yaml=\"`duration`\" pulumi-lang-java=\"`duration`\"\u003e`duration`\u003c/span\u003e parameter are 1 to 9.\n* If the \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e parameter is set to `Year`, the valid values for the \u003cspan pulumi-lang-nodejs=\"`duration`\" pulumi-lang-dotnet=\"`Duration`\" pulumi-lang-go=\"`duration`\" pulumi-lang-python=\"`duration`\" pulumi-lang-yaml=\"`duration`\" pulumi-lang-java=\"`duration`\"\u003e`duration`\u003c/span\u003e parameter are 1 to 3.\n"},"paymentType":{"type":"string","description":"The payment type. Default value: `Subscription`. Valid values: `PayAsYouGo`, `Subscription`.\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The billing cycle of the GA instance. Default value: `Month`. Valid values:\n- `Month`: billed on a monthly basis.\n- `Year`: billed on an annual basis.\n"},"promotionOptionNo":{"type":"string","description":"The code of the coupon. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`promotionOptionNo`\" pulumi-lang-dotnet=\"`PromotionOptionNo`\" pulumi-lang-go=\"`promotionOptionNo`\" pulumi-lang-python=\"`promotion_option_no`\" pulumi-lang-yaml=\"`promotionOptionNo`\" pulumi-lang-java=\"`promotionOptionNo`\"\u003e`promotion_option_no`\u003c/span\u003e takes effect only for accounts registered on the international site (alibabacloud.com).\n"},"renewalStatus":{"type":"string","description":"Whether to renew an accelerator automatically or not. Default value: `Normal`. Valid values:\n- `AutoRenewal`: Enable auto renewal.\n- `Normal`: Disable auto renewal.\n- `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"spec":{"type":"string","description":"The instance type of the GA instance. Specification of global acceleration instance. Valid values:\n"},"status":{"type":"string","description":"The status of the GA instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:ga/acceleratorSpareIpAttachment:AcceleratorSpareIpAttachment":{"description":"Provides a Global Accelerator (GA) Accelerator Spare Ip Attachment resource.\n\nFor information about Global Accelerator (GA) Accelerator Spare Ip Attachment and how to use it, see [What is Accelerator Spare Ip Attachment](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createspareips).\n\n\u003e **NOTE:** Available since v1.167.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ga.Accelerator(\"default\", {\n    duration: 1,\n    spec: \"1\",\n    acceleratorName: \"terraform-example\",\n    autoUseCoupon: true,\n    description: \"terraform-example\",\n});\nconst defaultBandwidthPackage = new alicloud.ga.BandwidthPackage(\"default\", {\n    bandwidth: 100,\n    type: \"Basic\",\n    bandwidthType: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    billingType: \"PayBy95\",\n    ratio: 30,\n    bandwidthPackageName: \"terraform-example\",\n    autoPay: true,\n    autoUseCoupon: true,\n});\nconst defaultBandwidthPackageAttachment = new alicloud.ga.BandwidthPackageAttachment(\"default\", {\n    acceleratorId: _default.id,\n    bandwidthPackageId: defaultBandwidthPackage.id,\n});\nconst defaultAcceleratorSpareIpAttachment = new alicloud.ga.AcceleratorSpareIpAttachment(\"default\", {\n    acceleratorId: defaultBandwidthPackageAttachment.acceleratorId,\n    spareIp: \"127.0.0.1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ga.Accelerator(\"default\",\n    duration=1,\n    spec=\"1\",\n    accelerator_name=\"terraform-example\",\n    auto_use_coupon=True,\n    description=\"terraform-example\")\ndefault_bandwidth_package = alicloud.ga.BandwidthPackage(\"default\",\n    bandwidth=100,\n    type=\"Basic\",\n    bandwidth_type=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    billing_type=\"PayBy95\",\n    ratio=30,\n    bandwidth_package_name=\"terraform-example\",\n    auto_pay=True,\n    auto_use_coupon=True)\ndefault_bandwidth_package_attachment = alicloud.ga.BandwidthPackageAttachment(\"default\",\n    accelerator_id=default.id,\n    bandwidth_package_id=default_bandwidth_package.id)\ndefault_accelerator_spare_ip_attachment = alicloud.ga.AcceleratorSpareIpAttachment(\"default\",\n    accelerator_id=default_bandwidth_package_attachment.accelerator_id,\n    spare_ip=\"127.0.0.1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ga.Accelerator(\"default\", new()\n    {\n        Duration = 1,\n        Spec = \"1\",\n        AcceleratorName = \"terraform-example\",\n        AutoUseCoupon = true,\n        Description = \"terraform-example\",\n    });\n\n    var defaultBandwidthPackage = new AliCloud.Ga.BandwidthPackage(\"default\", new()\n    {\n        Bandwidth = 100,\n        Type = \"Basic\",\n        BandwidthType = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        BillingType = \"PayBy95\",\n        Ratio = 30,\n        BandwidthPackageName = \"terraform-example\",\n        AutoPay = true,\n        AutoUseCoupon = true,\n    });\n\n    var defaultBandwidthPackageAttachment = new AliCloud.Ga.BandwidthPackageAttachment(\"default\", new()\n    {\n        AcceleratorId = @default.Id,\n        BandwidthPackageId = defaultBandwidthPackage.Id,\n    });\n\n    var defaultAcceleratorSpareIpAttachment = new AliCloud.Ga.AcceleratorSpareIpAttachment(\"default\", new()\n    {\n        AcceleratorId = defaultBandwidthPackageAttachment.AcceleratorId,\n        SpareIp = \"127.0.0.1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ga.NewAccelerator(ctx, \"default\", \u0026ga.AcceleratorArgs{\n\t\t\tDuration:        pulumi.Int(1),\n\t\t\tSpec:            pulumi.String(\"1\"),\n\t\t\tAcceleratorName: pulumi.String(\"terraform-example\"),\n\t\t\tAutoUseCoupon:   pulumi.Bool(true),\n\t\t\tDescription:     pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackage, err := ga.NewBandwidthPackage(ctx, \"default\", \u0026ga.BandwidthPackageArgs{\n\t\t\tBandwidth:            pulumi.Int(100),\n\t\t\tType:                 pulumi.String(\"Basic\"),\n\t\t\tBandwidthType:        pulumi.String(\"Basic\"),\n\t\t\tPaymentType:          pulumi.String(\"PayAsYouGo\"),\n\t\t\tBillingType:          pulumi.String(\"PayBy95\"),\n\t\t\tRatio:                pulumi.Int(30),\n\t\t\tBandwidthPackageName: pulumi.String(\"terraform-example\"),\n\t\t\tAutoPay:              pulumi.Bool(true),\n\t\t\tAutoUseCoupon:        pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackageAttachment, err := ga.NewBandwidthPackageAttachment(ctx, \"default\", \u0026ga.BandwidthPackageAttachmentArgs{\n\t\t\tAcceleratorId:      _default.ID(),\n\t\t\tBandwidthPackageId: defaultBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewAcceleratorSpareIpAttachment(ctx, \"default\", \u0026ga.AcceleratorSpareIpAttachmentArgs{\n\t\t\tAcceleratorId: defaultBandwidthPackageAttachment.AcceleratorId,\n\t\t\tSpareIp:       pulumi.String(\"127.0.0.1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.Accelerator;\nimport com.pulumi.alicloud.ga.AcceleratorArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackage;\nimport com.pulumi.alicloud.ga.BandwidthPackageArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.ga.AcceleratorSpareIpAttachment;\nimport com.pulumi.alicloud.ga.AcceleratorSpareIpAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Accelerator(\"default\", AcceleratorArgs.builder()\n            .duration(1)\n            .spec(\"1\")\n            .acceleratorName(\"terraform-example\")\n            .autoUseCoupon(true)\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultBandwidthPackage = new BandwidthPackage(\"defaultBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(100)\n            .type(\"Basic\")\n            .bandwidthType(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .billingType(\"PayBy95\")\n            .ratio(30)\n            .bandwidthPackageName(\"terraform-example\")\n            .autoPay(true)\n            .autoUseCoupon(true)\n            .build());\n\n        var defaultBandwidthPackageAttachment = new BandwidthPackageAttachment(\"defaultBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .acceleratorId(default_.id())\n            .bandwidthPackageId(defaultBandwidthPackage.id())\n            .build());\n\n        var defaultAcceleratorSpareIpAttachment = new AcceleratorSpareIpAttachment(\"defaultAcceleratorSpareIpAttachment\", AcceleratorSpareIpAttachmentArgs.builder()\n            .acceleratorId(defaultBandwidthPackageAttachment.acceleratorId())\n            .spareIp(\"127.0.0.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ga:Accelerator\n    properties:\n      duration: 1\n      spec: '1'\n      acceleratorName: terraform-example\n      autoUseCoupon: true\n      description: terraform-example\n  defaultBandwidthPackage:\n    type: alicloud:ga:BandwidthPackage\n    name: default\n    properties:\n      bandwidth: 100\n      type: Basic\n      bandwidthType: Basic\n      paymentType: PayAsYouGo\n      billingType: PayBy95\n      ratio: 30\n      bandwidthPackageName: terraform-example\n      autoPay: true\n      autoUseCoupon: true\n  defaultBandwidthPackageAttachment:\n    type: alicloud:ga:BandwidthPackageAttachment\n    name: default\n    properties:\n      acceleratorId: ${default.id}\n      bandwidthPackageId: ${defaultBandwidthPackage.id}\n  defaultAcceleratorSpareIpAttachment:\n    type: alicloud:ga:AcceleratorSpareIpAttachment\n    name: default\n    properties:\n      acceleratorId: ${defaultBandwidthPackageAttachment.acceleratorId}\n      spareIp: 127.0.0.1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal Accelerator (GA) Accelerator Spare Ip Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/acceleratorSpareIpAttachment:AcceleratorSpareIpAttachment example \u003caccelerator_id\u003e:\u003cspare_ip\u003e\n```\n\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the global acceleration instance.\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"spareIp":{"type":"string","description":"The standby IP address of CNAME. When the acceleration area is abnormal, the traffic is switched to the standby IP address.\n"},"status":{"type":"string","description":"The status of the standby CNAME IP address.\n"}},"required":["acceleratorId","spareIp","status"],"inputProperties":{"acceleratorId":{"type":"string","description":"The ID of the global acceleration instance.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"The dry run.\n"},"spareIp":{"type":"string","description":"The standby IP address of CNAME. When the acceleration area is abnormal, the traffic is switched to the standby IP address.\n","willReplaceOnChanges":true}},"requiredInputs":["acceleratorId","spareIp"],"stateInputs":{"description":"Input properties used for looking up and filtering AcceleratorSpareIpAttachment resources.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the global acceleration instance.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"The dry run.\n"},"spareIp":{"type":"string","description":"The standby IP address of CNAME. When the acceleration area is abnormal, the traffic is switched to the standby IP address.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the standby CNAME IP address.\n"}},"type":"object"}},"alicloud:ga/accessLog:AccessLog":{"description":"Provides a Global Accelerator (GA) Access Log resource.\n\nFor information about Global Accelerator (GA) Access Log and how to use it, see [What is Access Log](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-attachlogstoretoendpointgroup).\n\n\u003e **NOTE:** Available since v1.187.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultProject = new alicloud.log.Project(\"default\", {name: `terraform-example-${_default.result}`});\nconst defaultStore = new alicloud.log.Store(\"default\", {\n    project: defaultProject.name,\n    name: \"terraform-example\",\n});\nconst defaultAccelerator = new alicloud.ga.Accelerator(\"default\", {\n    duration: 1,\n    autoUseCoupon: true,\n    spec: \"2\",\n});\nconst defaultBandwidthPackage = new alicloud.ga.BandwidthPackage(\"default\", {\n    bandwidth: 100,\n    type: \"Basic\",\n    bandwidthType: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    billingType: \"PayBy95\",\n    ratio: 30,\n});\nconst defaultBandwidthPackageAttachment = new alicloud.ga.BandwidthPackageAttachment(\"default\", {\n    acceleratorId: defaultAccelerator.id,\n    bandwidthPackageId: defaultBandwidthPackage.id,\n});\nconst defaultListener = new alicloud.ga.Listener(\"default\", {\n    acceleratorId: defaultBandwidthPackageAttachment.acceleratorId,\n    clientAffinity: \"SOURCE_IP\",\n    protocol: \"HTTP\",\n    name: \"terraform-example\",\n    portRanges: [{\n        fromPort: 70,\n        toPort: 70,\n    }],\n});\nconst defaultEipAddress = new alicloud.ecs.EipAddress(\"default\", {\n    bandwidth: \"10\",\n    internetChargeType: \"PayByBandwidth\",\n    addressName: \"terraform-example\",\n});\nconst defaultEndpointGroup = new alicloud.ga.EndpointGroup(\"default\", {\n    acceleratorId: defaultListener.acceleratorId,\n    endpointConfigurations: [{\n        endpoint: defaultEipAddress.ipAddress,\n        type: \"PublicIp\",\n        weight: 20,\n    }],\n    endpointGroupRegion: region,\n    listenerId: defaultListener.id,\n});\nconst defaultAccessLog = new alicloud.ga.AccessLog(\"default\", {\n    acceleratorId: defaultAccelerator.id,\n    listenerId: defaultListener.id,\n    endpointGroupId: defaultEndpointGroup.id,\n    slsProjectName: defaultProject.name,\n    slsLogStoreName: defaultStore.name,\n    slsRegionId: region,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_project = alicloud.log.Project(\"default\", name=f\"terraform-example-{default['result']}\")\ndefault_store = alicloud.log.Store(\"default\",\n    project=default_project.name,\n    name=\"terraform-example\")\ndefault_accelerator = alicloud.ga.Accelerator(\"default\",\n    duration=1,\n    auto_use_coupon=True,\n    spec=\"2\")\ndefault_bandwidth_package = alicloud.ga.BandwidthPackage(\"default\",\n    bandwidth=100,\n    type=\"Basic\",\n    bandwidth_type=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    billing_type=\"PayBy95\",\n    ratio=30)\ndefault_bandwidth_package_attachment = alicloud.ga.BandwidthPackageAttachment(\"default\",\n    accelerator_id=default_accelerator.id,\n    bandwidth_package_id=default_bandwidth_package.id)\ndefault_listener = alicloud.ga.Listener(\"default\",\n    accelerator_id=default_bandwidth_package_attachment.accelerator_id,\n    client_affinity=\"SOURCE_IP\",\n    protocol=\"HTTP\",\n    name=\"terraform-example\",\n    port_ranges=[{\n        \"from_port\": 70,\n        \"to_port\": 70,\n    }])\ndefault_eip_address = alicloud.ecs.EipAddress(\"default\",\n    bandwidth=\"10\",\n    internet_charge_type=\"PayByBandwidth\",\n    address_name=\"terraform-example\")\ndefault_endpoint_group = alicloud.ga.EndpointGroup(\"default\",\n    accelerator_id=default_listener.accelerator_id,\n    endpoint_configurations=[{\n        \"endpoint\": default_eip_address.ip_address,\n        \"type\": \"PublicIp\",\n        \"weight\": 20,\n    }],\n    endpoint_group_region=region,\n    listener_id=default_listener.id)\ndefault_access_log = alicloud.ga.AccessLog(\"default\",\n    accelerator_id=default_accelerator.id,\n    listener_id=default_listener.id,\n    endpoint_group_id=default_endpoint_group.id,\n    sls_project_name=default_project.name,\n    sls_log_store_name=default_store.name,\n    sls_region_id=region)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultProject = new AliCloud.Log.Project(\"default\", new()\n    {\n        Name = $\"terraform-example-{@default.Result}\",\n    });\n\n    var defaultStore = new AliCloud.Log.Store(\"default\", new()\n    {\n        Project = defaultProject.Name,\n        Name = \"terraform-example\",\n    });\n\n    var defaultAccelerator = new AliCloud.Ga.Accelerator(\"default\", new()\n    {\n        Duration = 1,\n        AutoUseCoupon = true,\n        Spec = \"2\",\n    });\n\n    var defaultBandwidthPackage = new AliCloud.Ga.BandwidthPackage(\"default\", new()\n    {\n        Bandwidth = 100,\n        Type = \"Basic\",\n        BandwidthType = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        BillingType = \"PayBy95\",\n        Ratio = 30,\n    });\n\n    var defaultBandwidthPackageAttachment = new AliCloud.Ga.BandwidthPackageAttachment(\"default\", new()\n    {\n        AcceleratorId = defaultAccelerator.Id,\n        BandwidthPackageId = defaultBandwidthPackage.Id,\n    });\n\n    var defaultListener = new AliCloud.Ga.Listener(\"default\", new()\n    {\n        AcceleratorId = defaultBandwidthPackageAttachment.AcceleratorId,\n        ClientAffinity = \"SOURCE_IP\",\n        Protocol = \"HTTP\",\n        Name = \"terraform-example\",\n        PortRanges = new[]\n        {\n            new AliCloud.Ga.Inputs.ListenerPortRangeArgs\n            {\n                FromPort = 70,\n                ToPort = 70,\n            },\n        },\n    });\n\n    var defaultEipAddress = new AliCloud.Ecs.EipAddress(\"default\", new()\n    {\n        Bandwidth = \"10\",\n        InternetChargeType = \"PayByBandwidth\",\n        AddressName = \"terraform-example\",\n    });\n\n    var defaultEndpointGroup = new AliCloud.Ga.EndpointGroup(\"default\", new()\n    {\n        AcceleratorId = defaultListener.AcceleratorId,\n        EndpointConfigurations = new[]\n        {\n            new AliCloud.Ga.Inputs.EndpointGroupEndpointConfigurationArgs\n            {\n                Endpoint = defaultEipAddress.IpAddress,\n                Type = \"PublicIp\",\n                Weight = 20,\n            },\n        },\n        EndpointGroupRegion = region,\n        ListenerId = defaultListener.Id,\n    });\n\n    var defaultAccessLog = new AliCloud.Ga.AccessLog(\"default\", new()\n    {\n        AcceleratorId = defaultAccelerator.Id,\n        ListenerId = defaultListener.Id,\n        EndpointGroupId = defaultEndpointGroup.Id,\n        SlsProjectName = defaultProject.Name,\n        SlsLogStoreName = defaultStore.Name,\n        SlsRegionId = region,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultProject, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\n\t\t\tName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStore, err := log.NewStore(ctx, \"default\", \u0026log.StoreArgs{\n\t\t\tProject: defaultProject.Name,\n\t\t\tName:    pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAccelerator, err := ga.NewAccelerator(ctx, \"default\", \u0026ga.AcceleratorArgs{\n\t\t\tDuration:      pulumi.Int(1),\n\t\t\tAutoUseCoupon: pulumi.Bool(true),\n\t\t\tSpec:          pulumi.String(\"2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackage, err := ga.NewBandwidthPackage(ctx, \"default\", \u0026ga.BandwidthPackageArgs{\n\t\t\tBandwidth:     pulumi.Int(100),\n\t\t\tType:          pulumi.String(\"Basic\"),\n\t\t\tBandwidthType: pulumi.String(\"Basic\"),\n\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\tBillingType:   pulumi.String(\"PayBy95\"),\n\t\t\tRatio:         pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackageAttachment, err := ga.NewBandwidthPackageAttachment(ctx, \"default\", \u0026ga.BandwidthPackageAttachmentArgs{\n\t\t\tAcceleratorId:      defaultAccelerator.ID(),\n\t\t\tBandwidthPackageId: defaultBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultListener, err := ga.NewListener(ctx, \"default\", \u0026ga.ListenerArgs{\n\t\t\tAcceleratorId:  defaultBandwidthPackageAttachment.AcceleratorId,\n\t\t\tClientAffinity: pulumi.String(\"SOURCE_IP\"),\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tName:           pulumi.String(\"terraform-example\"),\n\t\t\tPortRanges: ga.ListenerPortRangeArray{\n\t\t\t\t\u0026ga.ListenerPortRangeArgs{\n\t\t\t\t\tFromPort: pulumi.Int(70),\n\t\t\t\t\tToPort:   pulumi.Int(70),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEipAddress, err := ecs.NewEipAddress(ctx, \"default\", \u0026ecs.EipAddressArgs{\n\t\t\tBandwidth:          pulumi.String(\"10\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByBandwidth\"),\n\t\t\tAddressName:        pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEndpointGroup, err := ga.NewEndpointGroup(ctx, \"default\", \u0026ga.EndpointGroupArgs{\n\t\t\tAcceleratorId: defaultListener.AcceleratorId,\n\t\t\tEndpointConfigurations: ga.EndpointGroupEndpointConfigurationArray{\n\t\t\t\t\u0026ga.EndpointGroupEndpointConfigurationArgs{\n\t\t\t\t\tEndpoint: defaultEipAddress.IpAddress,\n\t\t\t\t\tType:     pulumi.String(\"PublicIp\"),\n\t\t\t\t\tWeight:   pulumi.Int(20),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEndpointGroupRegion: pulumi.String(region),\n\t\t\tListenerId:          defaultListener.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewAccessLog(ctx, \"default\", \u0026ga.AccessLogArgs{\n\t\t\tAcceleratorId:   defaultAccelerator.ID(),\n\t\t\tListenerId:      defaultListener.ID(),\n\t\t\tEndpointGroupId: defaultEndpointGroup.ID(),\n\t\t\tSlsProjectName:  defaultProject.Name,\n\t\t\tSlsLogStoreName: defaultStore.Name,\n\t\t\tSlsRegionId:     pulumi.String(region),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.ga.Accelerator;\nimport com.pulumi.alicloud.ga.AcceleratorArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackage;\nimport com.pulumi.alicloud.ga.BandwidthPackageArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.ga.Listener;\nimport com.pulumi.alicloud.ga.ListenerArgs;\nimport com.pulumi.alicloud.ga.inputs.ListenerPortRangeArgs;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAddressArgs;\nimport com.pulumi.alicloud.ga.EndpointGroup;\nimport com.pulumi.alicloud.ga.EndpointGroupArgs;\nimport com.pulumi.alicloud.ga.inputs.EndpointGroupEndpointConfigurationArgs;\nimport com.pulumi.alicloud.ga.AccessLog;\nimport com.pulumi.alicloud.ga.AccessLogArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .name(String.format(\"terraform-example-%s\", default_.result()))\n            .build());\n\n        var defaultStore = new Store(\"defaultStore\", StoreArgs.builder()\n            .project(defaultProject.name())\n            .name(\"terraform-example\")\n            .build());\n\n        var defaultAccelerator = new Accelerator(\"defaultAccelerator\", AcceleratorArgs.builder()\n            .duration(1)\n            .autoUseCoupon(true)\n            .spec(\"2\")\n            .build());\n\n        var defaultBandwidthPackage = new BandwidthPackage(\"defaultBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(100)\n            .type(\"Basic\")\n            .bandwidthType(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .billingType(\"PayBy95\")\n            .ratio(30)\n            .build());\n\n        var defaultBandwidthPackageAttachment = new BandwidthPackageAttachment(\"defaultBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .acceleratorId(defaultAccelerator.id())\n            .bandwidthPackageId(defaultBandwidthPackage.id())\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .acceleratorId(defaultBandwidthPackageAttachment.acceleratorId())\n            .clientAffinity(\"SOURCE_IP\")\n            .protocol(\"HTTP\")\n            .name(\"terraform-example\")\n            .portRanges(ListenerPortRangeArgs.builder()\n                .fromPort(70)\n                .toPort(70)\n                .build())\n            .build());\n\n        var defaultEipAddress = new EipAddress(\"defaultEipAddress\", EipAddressArgs.builder()\n            .bandwidth(\"10\")\n            .internetChargeType(\"PayByBandwidth\")\n            .addressName(\"terraform-example\")\n            .build());\n\n        var defaultEndpointGroup = new EndpointGroup(\"defaultEndpointGroup\", EndpointGroupArgs.builder()\n            .acceleratorId(defaultListener.acceleratorId())\n            .endpointConfigurations(EndpointGroupEndpointConfigurationArgs.builder()\n                .endpoint(defaultEipAddress.ipAddress())\n                .type(\"PublicIp\")\n                .weight(20)\n                .build())\n            .endpointGroupRegion(region)\n            .listenerId(defaultListener.id())\n            .build());\n\n        var defaultAccessLog = new AccessLog(\"defaultAccessLog\", AccessLogArgs.builder()\n            .acceleratorId(defaultAccelerator.id())\n            .listenerId(defaultListener.id())\n            .endpointGroupId(defaultEndpointGroup.id())\n            .slsProjectName(defaultProject.name())\n            .slsLogStoreName(defaultStore.name())\n            .slsRegionId(region)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  defaultProject:\n    type: alicloud:log:Project\n    name: default\n    properties:\n      name: terraform-example-${default.result}\n  defaultStore:\n    type: alicloud:log:Store\n    name: default\n    properties:\n      project: ${defaultProject.name}\n      name: terraform-example\n  defaultAccelerator:\n    type: alicloud:ga:Accelerator\n    name: default\n    properties:\n      duration: 1\n      autoUseCoupon: true\n      spec: '2'\n  defaultBandwidthPackage:\n    type: alicloud:ga:BandwidthPackage\n    name: default\n    properties:\n      bandwidth: 100\n      type: Basic\n      bandwidthType: Basic\n      paymentType: PayAsYouGo\n      billingType: PayBy95\n      ratio: 30\n  defaultBandwidthPackageAttachment:\n    type: alicloud:ga:BandwidthPackageAttachment\n    name: default\n    properties:\n      acceleratorId: ${defaultAccelerator.id}\n      bandwidthPackageId: ${defaultBandwidthPackage.id}\n  defaultListener:\n    type: alicloud:ga:Listener\n    name: default\n    properties:\n      acceleratorId: ${defaultBandwidthPackageAttachment.acceleratorId}\n      clientAffinity: SOURCE_IP\n      protocol: HTTP\n      name: terraform-example\n      portRanges:\n        - fromPort: 70\n          toPort: 70\n  defaultEipAddress:\n    type: alicloud:ecs:EipAddress\n    name: default\n    properties:\n      bandwidth: '10'\n      internetChargeType: PayByBandwidth\n      addressName: terraform-example\n  defaultEndpointGroup:\n    type: alicloud:ga:EndpointGroup\n    name: default\n    properties:\n      acceleratorId: ${defaultListener.acceleratorId}\n      endpointConfigurations:\n        - endpoint: ${defaultEipAddress.ipAddress}\n          type: PublicIp\n          weight: 20\n      endpointGroupRegion: ${region}\n      listenerId: ${defaultListener.id}\n  defaultAccessLog:\n    type: alicloud:ga:AccessLog\n    name: default\n    properties:\n      acceleratorId: ${defaultAccelerator.id}\n      listenerId: ${defaultListener.id}\n      endpointGroupId: ${defaultEndpointGroup.id}\n      slsProjectName: ${defaultProject.name}\n      slsLogStoreName: ${defaultStore.name}\n      slsRegionId: ${region}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal Accelerator (GA) Access Log can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/accessLog:AccessLog example \u003caccelerator_id\u003e:\u003clistener_id\u003e:\u003cendpoint_group_id\u003e\n```\n\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the global acceleration instance.\n"},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group instance.\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n"},"slsLogStoreName":{"type":"string","description":"The name of the Log Store.\n"},"slsProjectName":{"type":"string","description":"The name of the Log Service project.\n"},"slsRegionId":{"type":"string","description":"The region ID of the Log Service project.\n"},"status":{"type":"string","description":"Whether access log is enabled.\n"}},"required":["acceleratorId","endpointGroupId","listenerId","slsLogStoreName","slsProjectName","slsRegionId","status"],"inputProperties":{"acceleratorId":{"type":"string","description":"The ID of the global acceleration instance.\n","willReplaceOnChanges":true},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group instance.\n","willReplaceOnChanges":true},"listenerId":{"type":"string","description":"The ID of the listener.\n","willReplaceOnChanges":true},"slsLogStoreName":{"type":"string","description":"The name of the Log Store.\n","willReplaceOnChanges":true},"slsProjectName":{"type":"string","description":"The name of the Log Service project.\n","willReplaceOnChanges":true},"slsRegionId":{"type":"string","description":"The region ID of the Log Service project.\n","willReplaceOnChanges":true}},"requiredInputs":["acceleratorId","endpointGroupId","listenerId","slsLogStoreName","slsProjectName","slsRegionId"],"stateInputs":{"description":"Input properties used for looking up and filtering AccessLog resources.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the global acceleration instance.\n","willReplaceOnChanges":true},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group instance.\n","willReplaceOnChanges":true},"listenerId":{"type":"string","description":"The ID of the listener.\n","willReplaceOnChanges":true},"slsLogStoreName":{"type":"string","description":"The name of the Log Store.\n","willReplaceOnChanges":true},"slsProjectName":{"type":"string","description":"The name of the Log Service project.\n","willReplaceOnChanges":true},"slsRegionId":{"type":"string","description":"The region ID of the Log Service project.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Whether access log is enabled.\n"}},"type":"object"}},"alicloud:ga/acl:Acl":{"description":"Provides a Global Accelerator (GA) Acl resource.\n\nFor information about Global Accelerator (GA) Acl and how to use it, see [What is Acl](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createacl).\n\n\u003e **NOTE:** Available since v1.150.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ga.Acl(\"default\", {\n    aclName: \"terraform-example\",\n    addressIpVersion: \"IPv4\",\n});\nconst defaultAclEntryAttachment = new alicloud.ga.AclEntryAttachment(\"default\", {\n    aclId: _default.id,\n    entry: \"192.168.1.1/32\",\n    entryDescription: \"terraform-example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ga.Acl(\"default\",\n    acl_name=\"terraform-example\",\n    address_ip_version=\"IPv4\")\ndefault_acl_entry_attachment = alicloud.ga.AclEntryAttachment(\"default\",\n    acl_id=default.id,\n    entry=\"192.168.1.1/32\",\n    entry_description=\"terraform-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ga.Acl(\"default\", new()\n    {\n        AclName = \"terraform-example\",\n        AddressIpVersion = \"IPv4\",\n    });\n\n    var defaultAclEntryAttachment = new AliCloud.Ga.AclEntryAttachment(\"default\", new()\n    {\n        AclId = @default.Id,\n        Entry = \"192.168.1.1/32\",\n        EntryDescription = \"terraform-example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ga.NewAcl(ctx, \"default\", \u0026ga.AclArgs{\n\t\t\tAclName:          pulumi.String(\"terraform-example\"),\n\t\t\tAddressIpVersion: pulumi.String(\"IPv4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewAclEntryAttachment(ctx, \"default\", \u0026ga.AclEntryAttachmentArgs{\n\t\t\tAclId:            _default.ID(),\n\t\t\tEntry:            pulumi.String(\"192.168.1.1/32\"),\n\t\t\tEntryDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.Acl;\nimport com.pulumi.alicloud.ga.AclArgs;\nimport com.pulumi.alicloud.ga.AclEntryAttachment;\nimport com.pulumi.alicloud.ga.AclEntryAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Acl(\"default\", AclArgs.builder()\n            .aclName(\"terraform-example\")\n            .addressIpVersion(\"IPv4\")\n            .build());\n\n        var defaultAclEntryAttachment = new AclEntryAttachment(\"defaultAclEntryAttachment\", AclEntryAttachmentArgs.builder()\n            .aclId(default_.id())\n            .entry(\"192.168.1.1/32\")\n            .entryDescription(\"terraform-example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ga:Acl\n    properties:\n      aclName: terraform-example\n      addressIpVersion: IPv4\n  defaultAclEntryAttachment:\n    type: alicloud:ga:AclEntryAttachment\n    name: default\n    properties:\n      aclId: ${default.id}\n      entry: 192.168.1.1/32\n      entryDescription: terraform-example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal Accelerator (GA) Acl can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/acl:Acl example \u003cid\u003e\n```\n\n","properties":{"aclEntries":{"type":"array","items":{"$ref":"#/types/alicloud:ga/AclAclEntry:AclAclEntry"},"description":"The entries of the Acl. See \u003cspan pulumi-lang-nodejs=\"`aclEntries`\" pulumi-lang-dotnet=\"`AclEntries`\" pulumi-lang-go=\"`aclEntries`\" pulumi-lang-python=\"`acl_entries`\" pulumi-lang-yaml=\"`aclEntries`\" pulumi-lang-java=\"`aclEntries`\"\u003e`acl_entries`\u003c/span\u003e below. **NOTE:** \"Field \u003cspan pulumi-lang-nodejs=\"`aclEntries`\" pulumi-lang-dotnet=\"`AclEntries`\" pulumi-lang-go=\"`aclEntries`\" pulumi-lang-python=\"`acl_entries`\" pulumi-lang-yaml=\"`aclEntries`\" pulumi-lang-java=\"`aclEntries`\"\u003e`acl_entries`\u003c/span\u003e has been deprecated from provider version 1.190.0 and it will be removed in the future version. Please use the new resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-dotnet=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-go=\"`ga.AclEntryAttachment`\" pulumi-lang-python=\"`ga.AclEntryAttachment`\" pulumi-lang-yaml=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-java=\"`alicloud.ga.AclEntryAttachment`\"\u003e`alicloud.ga.AclEntryAttachment`\u003c/span\u003e.\"\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`aclEntries`\" pulumi-lang-dotnet=\"`AclEntries`\" pulumi-lang-go=\"`aclEntries`\" pulumi-lang-python=\"`acl_entries`\" pulumi-lang-yaml=\"`aclEntries`\" pulumi-lang-java=\"`aclEntries`\"\u003e`acl_entries`\u003c/span\u003e has been deprecated from provider version 1.190.0 and it will be removed in the future version. Please use the new resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-dotnet=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-go=\"`ga.AclEntryAttachment`\" pulumi-lang-python=\"`ga.AclEntryAttachment`\" pulumi-lang-yaml=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-java=\"`alicloud.ga.AclEntryAttachment`\"\u003e`alicloud.ga.AclEntryAttachment`\u003c/span\u003e."},"aclName":{"type":"string","description":"The name of the ACL. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain letters, digits, periods (.), hyphens (-) and underscores (_). It must start with a letter.\n"},"addressIpVersion":{"type":"string","description":"The IP version. Valid values: `IPv4` and `IPv6`.\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["aclEntries","addressIpVersion","resourceGroupId","status"],"inputProperties":{"aclEntries":{"type":"array","items":{"$ref":"#/types/alicloud:ga/AclAclEntry:AclAclEntry"},"description":"The entries of the Acl. See \u003cspan pulumi-lang-nodejs=\"`aclEntries`\" pulumi-lang-dotnet=\"`AclEntries`\" pulumi-lang-go=\"`aclEntries`\" pulumi-lang-python=\"`acl_entries`\" pulumi-lang-yaml=\"`aclEntries`\" pulumi-lang-java=\"`aclEntries`\"\u003e`acl_entries`\u003c/span\u003e below. **NOTE:** \"Field \u003cspan pulumi-lang-nodejs=\"`aclEntries`\" pulumi-lang-dotnet=\"`AclEntries`\" pulumi-lang-go=\"`aclEntries`\" pulumi-lang-python=\"`acl_entries`\" pulumi-lang-yaml=\"`aclEntries`\" pulumi-lang-java=\"`aclEntries`\"\u003e`acl_entries`\u003c/span\u003e has been deprecated from provider version 1.190.0 and it will be removed in the future version. Please use the new resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-dotnet=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-go=\"`ga.AclEntryAttachment`\" pulumi-lang-python=\"`ga.AclEntryAttachment`\" pulumi-lang-yaml=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-java=\"`alicloud.ga.AclEntryAttachment`\"\u003e`alicloud.ga.AclEntryAttachment`\u003c/span\u003e.\"\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`aclEntries`\" pulumi-lang-dotnet=\"`AclEntries`\" pulumi-lang-go=\"`aclEntries`\" pulumi-lang-python=\"`acl_entries`\" pulumi-lang-yaml=\"`aclEntries`\" pulumi-lang-java=\"`aclEntries`\"\u003e`acl_entries`\u003c/span\u003e has been deprecated from provider version 1.190.0 and it will be removed in the future version. Please use the new resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-dotnet=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-go=\"`ga.AclEntryAttachment`\" pulumi-lang-python=\"`ga.AclEntryAttachment`\" pulumi-lang-yaml=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-java=\"`alicloud.ga.AclEntryAttachment`\"\u003e`alicloud.ga.AclEntryAttachment`\u003c/span\u003e."},"aclName":{"type":"string","description":"The name of the ACL. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain letters, digits, periods (.), hyphens (-) and underscores (_). It must start with a letter.\n"},"addressIpVersion":{"type":"string","description":"The IP version. Valid values: `IPv4` and `IPv6`.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"The dry run.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"requiredInputs":["addressIpVersion"],"stateInputs":{"description":"Input properties used for looking up and filtering Acl resources.\n","properties":{"aclEntries":{"type":"array","items":{"$ref":"#/types/alicloud:ga/AclAclEntry:AclAclEntry"},"description":"The entries of the Acl. See \u003cspan pulumi-lang-nodejs=\"`aclEntries`\" pulumi-lang-dotnet=\"`AclEntries`\" pulumi-lang-go=\"`aclEntries`\" pulumi-lang-python=\"`acl_entries`\" pulumi-lang-yaml=\"`aclEntries`\" pulumi-lang-java=\"`aclEntries`\"\u003e`acl_entries`\u003c/span\u003e below. **NOTE:** \"Field \u003cspan pulumi-lang-nodejs=\"`aclEntries`\" pulumi-lang-dotnet=\"`AclEntries`\" pulumi-lang-go=\"`aclEntries`\" pulumi-lang-python=\"`acl_entries`\" pulumi-lang-yaml=\"`aclEntries`\" pulumi-lang-java=\"`aclEntries`\"\u003e`acl_entries`\u003c/span\u003e has been deprecated from provider version 1.190.0 and it will be removed in the future version. Please use the new resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-dotnet=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-go=\"`ga.AclEntryAttachment`\" pulumi-lang-python=\"`ga.AclEntryAttachment`\" pulumi-lang-yaml=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-java=\"`alicloud.ga.AclEntryAttachment`\"\u003e`alicloud.ga.AclEntryAttachment`\u003c/span\u003e.\"\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`aclEntries`\" pulumi-lang-dotnet=\"`AclEntries`\" pulumi-lang-go=\"`aclEntries`\" pulumi-lang-python=\"`acl_entries`\" pulumi-lang-yaml=\"`aclEntries`\" pulumi-lang-java=\"`aclEntries`\"\u003e`acl_entries`\u003c/span\u003e has been deprecated from provider version 1.190.0 and it will be removed in the future version. Please use the new resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-dotnet=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-go=\"`ga.AclEntryAttachment`\" pulumi-lang-python=\"`ga.AclEntryAttachment`\" pulumi-lang-yaml=\"`alicloud.ga.AclEntryAttachment`\" pulumi-lang-java=\"`alicloud.ga.AclEntryAttachment`\"\u003e`alicloud.ga.AclEntryAttachment`\u003c/span\u003e."},"aclName":{"type":"string","description":"The name of the ACL. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain letters, digits, periods (.), hyphens (-) and underscores (_). It must start with a letter.\n"},"addressIpVersion":{"type":"string","description":"The IP version. Valid values: `IPv4` and `IPv6`.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"The dry run.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:ga/aclAttachment:AclAttachment":{"description":"Provides a Global Accelerator (GA) Acl Attachment resource.\n\nFor information about Global Accelerator (GA) Acl Attachment and how to use it, see [What is Acl Attachment](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-associateaclswithlistener).\n\n\u003e **NOTE:** Available since v1.150.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ga.Accelerator(\"default\", {\n    duration: 1,\n    autoUseCoupon: true,\n    spec: \"1\",\n});\nconst defaultBandwidthPackage = new alicloud.ga.BandwidthPackage(\"default\", {\n    bandwidth: 100,\n    type: \"Basic\",\n    bandwidthType: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    billingType: \"PayBy95\",\n    ratio: 30,\n});\nconst defaultBandwidthPackageAttachment = new alicloud.ga.BandwidthPackageAttachment(\"default\", {\n    acceleratorId: _default.id,\n    bandwidthPackageId: defaultBandwidthPackage.id,\n});\nconst defaultListener = new alicloud.ga.Listener(\"default\", {\n    acceleratorId: defaultBandwidthPackageAttachment.acceleratorId,\n    portRanges: [{\n        fromPort: 80,\n        toPort: 80,\n    }],\n});\nconst defaultAcl = new alicloud.ga.Acl(\"default\", {\n    aclName: \"terraform-example\",\n    addressIpVersion: \"IPv4\",\n});\nconst defaultAclEntryAttachment = new alicloud.ga.AclEntryAttachment(\"default\", {\n    aclId: defaultAcl.id,\n    entry: \"192.168.1.1/32\",\n    entryDescription: \"terraform-example\",\n});\nconst defaultAclAttachment = new alicloud.ga.AclAttachment(\"default\", {\n    listenerId: defaultListener.id,\n    aclId: defaultAcl.id,\n    aclType: \"white\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ga.Accelerator(\"default\",\n    duration=1,\n    auto_use_coupon=True,\n    spec=\"1\")\ndefault_bandwidth_package = alicloud.ga.BandwidthPackage(\"default\",\n    bandwidth=100,\n    type=\"Basic\",\n    bandwidth_type=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    billing_type=\"PayBy95\",\n    ratio=30)\ndefault_bandwidth_package_attachment = alicloud.ga.BandwidthPackageAttachment(\"default\",\n    accelerator_id=default.id,\n    bandwidth_package_id=default_bandwidth_package.id)\ndefault_listener = alicloud.ga.Listener(\"default\",\n    accelerator_id=default_bandwidth_package_attachment.accelerator_id,\n    port_ranges=[{\n        \"from_port\": 80,\n        \"to_port\": 80,\n    }])\ndefault_acl = alicloud.ga.Acl(\"default\",\n    acl_name=\"terraform-example\",\n    address_ip_version=\"IPv4\")\ndefault_acl_entry_attachment = alicloud.ga.AclEntryAttachment(\"default\",\n    acl_id=default_acl.id,\n    entry=\"192.168.1.1/32\",\n    entry_description=\"terraform-example\")\ndefault_acl_attachment = alicloud.ga.AclAttachment(\"default\",\n    listener_id=default_listener.id,\n    acl_id=default_acl.id,\n    acl_type=\"white\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ga.Accelerator(\"default\", new()\n    {\n        Duration = 1,\n        AutoUseCoupon = true,\n        Spec = \"1\",\n    });\n\n    var defaultBandwidthPackage = new AliCloud.Ga.BandwidthPackage(\"default\", new()\n    {\n        Bandwidth = 100,\n        Type = \"Basic\",\n        BandwidthType = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        BillingType = \"PayBy95\",\n        Ratio = 30,\n    });\n\n    var defaultBandwidthPackageAttachment = new AliCloud.Ga.BandwidthPackageAttachment(\"default\", new()\n    {\n        AcceleratorId = @default.Id,\n        BandwidthPackageId = defaultBandwidthPackage.Id,\n    });\n\n    var defaultListener = new AliCloud.Ga.Listener(\"default\", new()\n    {\n        AcceleratorId = defaultBandwidthPackageAttachment.AcceleratorId,\n        PortRanges = new[]\n        {\n            new AliCloud.Ga.Inputs.ListenerPortRangeArgs\n            {\n                FromPort = 80,\n                ToPort = 80,\n            },\n        },\n    });\n\n    var defaultAcl = new AliCloud.Ga.Acl(\"default\", new()\n    {\n        AclName = \"terraform-example\",\n        AddressIpVersion = \"IPv4\",\n    });\n\n    var defaultAclEntryAttachment = new AliCloud.Ga.AclEntryAttachment(\"default\", new()\n    {\n        AclId = defaultAcl.Id,\n        Entry = \"192.168.1.1/32\",\n        EntryDescription = \"terraform-example\",\n    });\n\n    var defaultAclAttachment = new AliCloud.Ga.AclAttachment(\"default\", new()\n    {\n        ListenerId = defaultListener.Id,\n        AclId = defaultAcl.Id,\n        AclType = \"white\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ga.NewAccelerator(ctx, \"default\", \u0026ga.AcceleratorArgs{\n\t\t\tDuration:      pulumi.Int(1),\n\t\t\tAutoUseCoupon: pulumi.Bool(true),\n\t\t\tSpec:          pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackage, err := ga.NewBandwidthPackage(ctx, \"default\", \u0026ga.BandwidthPackageArgs{\n\t\t\tBandwidth:     pulumi.Int(100),\n\t\t\tType:          pulumi.String(\"Basic\"),\n\t\t\tBandwidthType: pulumi.String(\"Basic\"),\n\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\tBillingType:   pulumi.String(\"PayBy95\"),\n\t\t\tRatio:         pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackageAttachment, err := ga.NewBandwidthPackageAttachment(ctx, \"default\", \u0026ga.BandwidthPackageAttachmentArgs{\n\t\t\tAcceleratorId:      _default.ID(),\n\t\t\tBandwidthPackageId: defaultBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultListener, err := ga.NewListener(ctx, \"default\", \u0026ga.ListenerArgs{\n\t\t\tAcceleratorId: defaultBandwidthPackageAttachment.AcceleratorId,\n\t\t\tPortRanges: ga.ListenerPortRangeArray{\n\t\t\t\t\u0026ga.ListenerPortRangeArgs{\n\t\t\t\t\tFromPort: pulumi.Int(80),\n\t\t\t\t\tToPort:   pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAcl, err := ga.NewAcl(ctx, \"default\", \u0026ga.AclArgs{\n\t\t\tAclName:          pulumi.String(\"terraform-example\"),\n\t\t\tAddressIpVersion: pulumi.String(\"IPv4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewAclEntryAttachment(ctx, \"default\", \u0026ga.AclEntryAttachmentArgs{\n\t\t\tAclId:            defaultAcl.ID(),\n\t\t\tEntry:            pulumi.String(\"192.168.1.1/32\"),\n\t\t\tEntryDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewAclAttachment(ctx, \"default\", \u0026ga.AclAttachmentArgs{\n\t\t\tListenerId: defaultListener.ID(),\n\t\t\tAclId:      defaultAcl.ID(),\n\t\t\tAclType:    pulumi.String(\"white\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.Accelerator;\nimport com.pulumi.alicloud.ga.AcceleratorArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackage;\nimport com.pulumi.alicloud.ga.BandwidthPackageArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.ga.Listener;\nimport com.pulumi.alicloud.ga.ListenerArgs;\nimport com.pulumi.alicloud.ga.inputs.ListenerPortRangeArgs;\nimport com.pulumi.alicloud.ga.Acl;\nimport com.pulumi.alicloud.ga.AclArgs;\nimport com.pulumi.alicloud.ga.AclEntryAttachment;\nimport com.pulumi.alicloud.ga.AclEntryAttachmentArgs;\nimport com.pulumi.alicloud.ga.AclAttachment;\nimport com.pulumi.alicloud.ga.AclAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Accelerator(\"default\", AcceleratorArgs.builder()\n            .duration(1)\n            .autoUseCoupon(true)\n            .spec(\"1\")\n            .build());\n\n        var defaultBandwidthPackage = new BandwidthPackage(\"defaultBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(100)\n            .type(\"Basic\")\n            .bandwidthType(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .billingType(\"PayBy95\")\n            .ratio(30)\n            .build());\n\n        var defaultBandwidthPackageAttachment = new BandwidthPackageAttachment(\"defaultBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .acceleratorId(default_.id())\n            .bandwidthPackageId(defaultBandwidthPackage.id())\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .acceleratorId(defaultBandwidthPackageAttachment.acceleratorId())\n            .portRanges(ListenerPortRangeArgs.builder()\n                .fromPort(80)\n                .toPort(80)\n                .build())\n            .build());\n\n        var defaultAcl = new Acl(\"defaultAcl\", AclArgs.builder()\n            .aclName(\"terraform-example\")\n            .addressIpVersion(\"IPv4\")\n            .build());\n\n        var defaultAclEntryAttachment = new AclEntryAttachment(\"defaultAclEntryAttachment\", AclEntryAttachmentArgs.builder()\n            .aclId(defaultAcl.id())\n            .entry(\"192.168.1.1/32\")\n            .entryDescription(\"terraform-example\")\n            .build());\n\n        var defaultAclAttachment = new AclAttachment(\"defaultAclAttachment\", AclAttachmentArgs.builder()\n            .listenerId(defaultListener.id())\n            .aclId(defaultAcl.id())\n            .aclType(\"white\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ga:Accelerator\n    properties:\n      duration: 1\n      autoUseCoupon: true\n      spec: '1'\n  defaultBandwidthPackage:\n    type: alicloud:ga:BandwidthPackage\n    name: default\n    properties:\n      bandwidth: 100\n      type: Basic\n      bandwidthType: Basic\n      paymentType: PayAsYouGo\n      billingType: PayBy95\n      ratio: 30\n  defaultBandwidthPackageAttachment:\n    type: alicloud:ga:BandwidthPackageAttachment\n    name: default\n    properties:\n      acceleratorId: ${default.id}\n      bandwidthPackageId: ${defaultBandwidthPackage.id}\n  defaultListener:\n    type: alicloud:ga:Listener\n    name: default\n    properties:\n      acceleratorId: ${defaultBandwidthPackageAttachment.acceleratorId}\n      portRanges:\n        - fromPort: 80\n          toPort: 80\n  defaultAcl:\n    type: alicloud:ga:Acl\n    name: default\n    properties:\n      aclName: terraform-example\n      addressIpVersion: IPv4\n  defaultAclEntryAttachment:\n    type: alicloud:ga:AclEntryAttachment\n    name: default\n    properties:\n      aclId: ${defaultAcl.id}\n      entry: 192.168.1.1/32\n      entryDescription: terraform-example\n  defaultAclAttachment:\n    type: alicloud:ga:AclAttachment\n    name: default\n    properties:\n      listenerId: ${defaultListener.id}\n      aclId: ${defaultAcl.id}\n      aclType: white\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal Accelerator (GA) Acl Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/aclAttachment:AclAttachment example \u003clistener_id\u003e:\u003cacl_id\u003e\n```\n\n","properties":{"aclId":{"type":"string","description":"The ID of an ACL.\n"},"aclType":{"type":"string","description":"The type of the ACL. Valid values:\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n"},"status":{"type":"string","description":"The status of the Acl Attachment.\n"}},"required":["aclId","aclType","listenerId","status"],"inputProperties":{"aclId":{"type":"string","description":"The ID of an ACL.\n","willReplaceOnChanges":true},"aclType":{"type":"string","description":"The type of the ACL. Valid values:\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"The dry run.\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n","willReplaceOnChanges":true}},"requiredInputs":["aclId","aclType","listenerId"],"stateInputs":{"description":"Input properties used for looking up and filtering AclAttachment resources.\n","properties":{"aclId":{"type":"string","description":"The ID of an ACL.\n","willReplaceOnChanges":true},"aclType":{"type":"string","description":"The type of the ACL. Valid values:\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"The dry run.\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Acl Attachment.\n"}},"type":"object"}},"alicloud:ga/aclEntryAttachment:AclEntryAttachment":{"description":"Provides a Global Accelerator (GA) Acl Entry Attachment resource.\n\nFor information about Global Accelerator (GA) Acl Entry Attachment and how to use it, see [What is Acl Entry Attachment](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-addentriestoacl).\n\n\u003e **NOTE:** Available since v1.190.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ga.Acl(\"default\", {\n    addressIpVersion: \"IPv4\",\n    aclName: name,\n});\nconst defaultAclEntryAttachment = new alicloud.ga.AclEntryAttachment(\"default\", {\n    aclId: _default.id,\n    entry: \"192.168.1.1/32\",\n    entryDescription: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ga.Acl(\"default\",\n    address_ip_version=\"IPv4\",\n    acl_name=name)\ndefault_acl_entry_attachment = alicloud.ga.AclEntryAttachment(\"default\",\n    acl_id=default.id,\n    entry=\"192.168.1.1/32\",\n    entry_description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ga.Acl(\"default\", new()\n    {\n        AddressIpVersion = \"IPv4\",\n        AclName = name,\n    });\n\n    var defaultAclEntryAttachment = new AliCloud.Ga.AclEntryAttachment(\"default\", new()\n    {\n        AclId = @default.Id,\n        Entry = \"192.168.1.1/32\",\n        EntryDescription = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := ga.NewAcl(ctx, \"default\", \u0026ga.AclArgs{\n\t\t\tAddressIpVersion: pulumi.String(\"IPv4\"),\n\t\t\tAclName:          pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewAclEntryAttachment(ctx, \"default\", \u0026ga.AclEntryAttachmentArgs{\n\t\t\tAclId:            _default.ID(),\n\t\t\tEntry:            pulumi.String(\"192.168.1.1/32\"),\n\t\t\tEntryDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.Acl;\nimport com.pulumi.alicloud.ga.AclArgs;\nimport com.pulumi.alicloud.ga.AclEntryAttachment;\nimport com.pulumi.alicloud.ga.AclEntryAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Acl(\"default\", AclArgs.builder()\n            .addressIpVersion(\"IPv4\")\n            .aclName(name)\n            .build());\n\n        var defaultAclEntryAttachment = new AclEntryAttachment(\"defaultAclEntryAttachment\", AclEntryAttachmentArgs.builder()\n            .aclId(default_.id())\n            .entry(\"192.168.1.1/32\")\n            .entryDescription(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ga:Acl\n    properties:\n      addressIpVersion: IPv4\n      aclName: ${name}\n  defaultAclEntryAttachment:\n    type: alicloud:ga:AclEntryAttachment\n    name: default\n    properties:\n      aclId: ${default.id}\n      entry: 192.168.1.1/32\n      entryDescription: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal Accelerator (GA) Acl Entry Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/aclEntryAttachment:AclEntryAttachment example \u003cacl_id\u003e:\u003centry\u003e\n```\n\n","properties":{"aclId":{"type":"string","description":"The ID of the Acl.\n"},"entry":{"type":"string","description":"The entry (IP address or CIDR block) that you want to add.\n"},"entryDescription":{"type":"string","description":"The description of the entry. The description must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (_).\n"},"status":{"type":"string","description":"The status of the Acl Entry Attachment.\n"}},"required":["aclId","entry","status"],"inputProperties":{"aclId":{"type":"string","description":"The ID of the Acl.\n","willReplaceOnChanges":true},"entry":{"type":"string","description":"The entry (IP address or CIDR block) that you want to add.\n","willReplaceOnChanges":true},"entryDescription":{"type":"string","description":"The description of the entry. The description must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (_).\n","willReplaceOnChanges":true}},"requiredInputs":["aclId","entry"],"stateInputs":{"description":"Input properties used for looking up and filtering AclEntryAttachment resources.\n","properties":{"aclId":{"type":"string","description":"The ID of the Acl.\n","willReplaceOnChanges":true},"entry":{"type":"string","description":"The entry (IP address or CIDR block) that you want to add.\n","willReplaceOnChanges":true},"entryDescription":{"type":"string","description":"The description of the entry. The description must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (_).\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Acl Entry Attachment.\n"}},"type":"object"}},"alicloud:ga/additionalCertificate:AdditionalCertificate":{"description":"Provides a Global Accelerator (GA) Additional Certificate resource.\n\nFor information about Global Accelerator (GA) Additional Certificate and how to use it, see [What is Additional Certificate](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-associateadditionalcertificateswithlistener).\n\n\u003e **NOTE:** Available since v1.150.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.ga.getAccelerators({\n    status: \"active\",\n});\nconst defaultBandwidthPackage = new alicloud.ga.BandwidthPackage(\"default\", {\n    bandwidth: 100,\n    type: \"Basic\",\n    bandwidthType: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    billingType: \"PayBy95\",\n    ratio: 30,\n    bandwidthPackageName: name,\n    autoPay: true,\n    autoUseCoupon: true,\n});\nconst defaultBandwidthPackageAttachment = new alicloud.ga.BandwidthPackageAttachment(\"default\", {\n    acceleratorId: _default.then(_default =\u003e _default.ids?.[0]),\n    bandwidthPackageId: defaultBandwidthPackage.id,\n});\nconst defaultServiceCertificate: alicloud.cas.ServiceCertificate[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultServiceCertificate.push(new alicloud.cas.ServiceCertificate(`default-${range.value}`, {\n        certificateName: std.join({\n            separator: \"-\",\n            input: [\n                name,\n                range.value,\n            ],\n        }).then(invoke =\u003e invoke.result),\n        cert: `-----BEGIN CERTIFICATE-----\nMIID7zCCAtegAwIBAgIRAKi2/Fx1cUTyhV839x42ockwDQYJKoZIhvcNAQELBQAw\nXjELMAkGA1UEBhMCQ04xDjAMBgNVBAoTBU15U1NMMSswKQYDVQQLEyJNeVNTTCBU\nZXN0IFJTQSAtIEZvciB0ZXN0IHVzZSBvbmx5MRIwEAYDVQQDEwlNeVNTTC5jb20w\nHhcNMjMwODA5MDQ1NDU3WhcNMjYwODA4MDQ1NDU3WjAsMQswCQYDVQQGEwJDTjEd\nMBsGA1UEAxMUYWxpY2xvdWQtcHJvdmlkZXIuY24wggEiMA0GCSqGSIb3DQEBAQUA\nA4IBDwAwggEKAoIBAQDdkot9e0pMCTPAtA29Sz5sF+aPT/l9+3sOnQeJ1kKLNkqK\niQgwADexoAqlmTaZM03gh/GnkqPw9gxN/fJHWdVzxE03Fs8bKgMdS6cf0v/xArrQ\nzm6N4vmsbuE8SX2eu303PAsyBMqPByTODZ5i+5LkZcrxMFQsbA3xnBouzS5e+T+a\n7YTyyVv5WDy871/sdRAYTfnUttdnqkKGeMKgQgRlJ2pDk5/k2iwmQmSh/wbk465+\n1U5w2npPYGPvGAkzl7RRc4/VckqlV8P0cmgguqIRyllJwFEnvcpqpOHTxBOBq9iZ\n4b/h7ynrfB/GbAw574eSEl0gzLBW60bT9YedbTeXAgMBAAGjgdkwgdYwDgYDVR0P\nAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSME\nGDAWgBQogSYF0TQaP8FzD7uTzxUcPwO/fzBjBggrBgEFBQcBAQRXMFUwIQYIKwYB\nBQUHMAGGFWh0dHA6Ly9vY3NwLm15c3NsLmNvbTAwBggrBgEFBQcwAoYkaHR0cDov\nL2NhLm15c3NsLmNvbS9teXNzbHRlc3Ryc2EuY3J0MB8GA1UdEQQYMBaCFGFsaWNs\nb3VkLXByb3ZpZGVyLmNuMA0GCSqGSIb3DQEBCwUAA4IBAQCwUBeznv6cAjcTLCDb\nSSvgkM9HFcbWnuGS8Nf5P4YfmSs52VuHZyjzwphjAU6B/danI/nMdZe52PXyvjVV\n02Y8ld/tMpqPV5SpaOadLtdg6TGBNJieOAt9doM8WNEgq/JycAL9ivIOjChUetZf\nZEV7HDIgiHSpqAPWMZYL71MS/p5zYkyOnPqmGyLNdi1neotwVCQopQXRNC2iLlVV\nyQONfXH5iijqr1iTWkB0ESK/xBt1PB655PlTjzFQUOovE1SyoQS8K3u7TP6+BqtD\nG9TYNTNZvxl5I/iU/KdWVip+qJbxRA8Skc8gHkkzeIEStw3l5cjnrp9h7EhnhkOh\nltGN\n-----END CERTIFICATE-----\n`,\n        key: `-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA3ZKLfXtKTAkzwLQNvUs+bBfmj0/5fft7Dp0HidZCizZKiokI\nMAA3saAKpZk2mTNN4Ifxp5Kj8PYMTf3yR1nVc8RNNxbPGyoDHUunH9L/8QK60M5u\njeL5rG7hPEl9nrt9NzwLMgTKjwckzg2eYvuS5GXK8TBULGwN8ZwaLs0uXvk/mu2E\n8slb+Vg8vO9f7HUQGE351LbXZ6pChnjCoEIEZSdqQ5Of5NosJkJkof8G5OOuftVO\ncNp6T2Bj7xgJM5e0UXOP1XJKpVfD9HJoILqiEcpZScBRJ73KaqTh08QTgavYmeG/\n4e8p63wfxmwMOe+HkhJdIMywVutG0/WHnW03lwIDAQABAoIBAQCe5rHS09B8pzzO\nPlJ8JrIlox5eOOScTPX7jPITD+25GL5si8mrYvyODlCUYkSdqgV3uQa9PpUEAfDh\nHfXa5boGxAj8MQdmW8LQB6lbUV7r4SFJDkKKzvRvjTVKnwnQBHXQXudIf9ckq+Lh\nQzMLmY/G7JmWTyqOkQ+O7nx4g/11bcU7uQrQdvWPfc0+IiT1TYQdyLQ/Chlj3RF/\niwF8ZL2sfKF+Z5O49+Q6cXvUcQOvqtkIXbQijayyVNBMJwDB7aOZRA7JBNj9/ib6\nN0iTo81dJVz/nnpbWRaFTVinIsDF1heDfQ1qDx06T/Mpi6pjoWjRUcyIHEbZJTel\n0nXDJD1BAoGBAPZB/PN8MP+o9gkf2jnoU9LzctDJrQwD1J2XElq4RomimPIMqDQP\n5TRAJThf0O0X4Mv2n9EzV457OpJL+fz9htRWEYogWl9bkbzZ1AoX4K/acuGeawTT\nYEhPjJ2ZETsBsCeDkDDuHHzYwRQv+EfoXH36z9PBDxG1ZDb7kWwAILXdAoGBAOZW\njXG7m4I7cxUtXGtjwydh4K7nwH/5QoH2m928HM2AT48eQCl3CMQ089+qeJGgfHQv\nGyVOO/FGhcFsFi10FMQ7IlwWgZODg64qnrNhi4zbV1M2wKem1T2dlEpkd82EFdnS\nGYRIEkFORMxEDyzx3Th2TajpWC8YKKG3Tnm0bQ4DAoGBAIZTEEswHvoVi78GZN7Z\nX3/d028X0xCOtlcPpK9ffPpuesbtKILdeMS7iJHrkecB81jOOfa+7q+FgDl0v/PD\nxtvj5sVVSHZjWGeO2h53T9QccDWpV+7V7dsDqUv9xmxNS20CUpCeEWP4R7lfQSrY\nEDuXp+11jWa3buae6n/iwfTxAoGABEYW2cVhXUk9GWd+D4AKXvCx+ozSRY2abk7l\nFXgoEKgQ0db92ccboohY/g1rr0gLBxzYpBiPhCqK0MvwnWdJ+1odiRfhz5rhFpoz\n16A3tqVbOXAKoxG1Yy9JURgMIQQSY7hCQPIVZKDPJfsdTPgv4pxPVJL/z9/i4R1F\nl3yBiYECgYEA0+vpzL24nHZYdwgBF4qbmYhv8baRi07/BNgV1+d6vESuO/MwwoE/\n2UZ9Drf5yoX2Bvi5/vVMbyc7cSluO7icPBkl0D8F7E3x0v5mzwPxtpR8BTRoJKOL\n/rMdLscMz2VQsL5DJd/9OZg60fHRaRtWtV0afXzL5zUxnfDLot24IG4=\n-----END RSA PRIVATE KEY-----\n`,\n    }));\n}\nconst defaultListener = new alicloud.ga.Listener(\"default\", {\n    acceleratorId: defaultBandwidthPackageAttachment.acceleratorId,\n    name: name,\n    protocol: \"HTTPS\",\n    portRanges: [{\n        fromPort: 8080,\n        toPort: 8080,\n    }],\n    certificates: [{\n        id: std.joinOutput({\n            separator: \"-\",\n            input: [\n                defaultServiceCertificate[1].id,\n                region,\n            ],\n        }).apply(invoke =\u003e invoke.result),\n    }],\n});\nconst domain = \"alicloud-provider.cn\";\nconst defaultAdditionalCertificate = new alicloud.ga.AdditionalCertificate(\"default\", {\n    certificateId: std.joinOutput({\n        separator: \"-\",\n        input: [\n            defaultServiceCertificate[1].id,\n            region,\n        ],\n    }).apply(invoke =\u003e invoke.result),\n    domain: domain,\n    acceleratorId: defaultListener.acceleratorId,\n    listenerId: defaultListener.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.ga.get_accelerators(status=\"active\")\ndefault_bandwidth_package = alicloud.ga.BandwidthPackage(\"default\",\n    bandwidth=100,\n    type=\"Basic\",\n    bandwidth_type=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    billing_type=\"PayBy95\",\n    ratio=30,\n    bandwidth_package_name=name,\n    auto_pay=True,\n    auto_use_coupon=True)\ndefault_bandwidth_package_attachment = alicloud.ga.BandwidthPackageAttachment(\"default\",\n    accelerator_id=default.ids[0],\n    bandwidth_package_id=default_bandwidth_package.id)\ndefault_service_certificate = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_service_certificate.append(alicloud.cas.ServiceCertificate(f\"default-{range['value']}\",\n        certificate_name=std.join(separator=\"-\",\n            input=[\n                name,\n                range[\"value\"],\n            ]).result,\n        cert=\"\"\"-----BEGIN CERTIFICATE-----\nMIID7zCCAtegAwIBAgIRAKi2/Fx1cUTyhV839x42ockwDQYJKoZIhvcNAQELBQAw\nXjELMAkGA1UEBhMCQ04xDjAMBgNVBAoTBU15U1NMMSswKQYDVQQLEyJNeVNTTCBU\nZXN0IFJTQSAtIEZvciB0ZXN0IHVzZSBvbmx5MRIwEAYDVQQDEwlNeVNTTC5jb20w\nHhcNMjMwODA5MDQ1NDU3WhcNMjYwODA4MDQ1NDU3WjAsMQswCQYDVQQGEwJDTjEd\nMBsGA1UEAxMUYWxpY2xvdWQtcHJvdmlkZXIuY24wggEiMA0GCSqGSIb3DQEBAQUA\nA4IBDwAwggEKAoIBAQDdkot9e0pMCTPAtA29Sz5sF+aPT/l9+3sOnQeJ1kKLNkqK\niQgwADexoAqlmTaZM03gh/GnkqPw9gxN/fJHWdVzxE03Fs8bKgMdS6cf0v/xArrQ\nzm6N4vmsbuE8SX2eu303PAsyBMqPByTODZ5i+5LkZcrxMFQsbA3xnBouzS5e+T+a\n7YTyyVv5WDy871/sdRAYTfnUttdnqkKGeMKgQgRlJ2pDk5/k2iwmQmSh/wbk465+\n1U5w2npPYGPvGAkzl7RRc4/VckqlV8P0cmgguqIRyllJwFEnvcpqpOHTxBOBq9iZ\n4b/h7ynrfB/GbAw574eSEl0gzLBW60bT9YedbTeXAgMBAAGjgdkwgdYwDgYDVR0P\nAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSME\nGDAWgBQogSYF0TQaP8FzD7uTzxUcPwO/fzBjBggrBgEFBQcBAQRXMFUwIQYIKwYB\nBQUHMAGGFWh0dHA6Ly9vY3NwLm15c3NsLmNvbTAwBggrBgEFBQcwAoYkaHR0cDov\nL2NhLm15c3NsLmNvbS9teXNzbHRlc3Ryc2EuY3J0MB8GA1UdEQQYMBaCFGFsaWNs\nb3VkLXByb3ZpZGVyLmNuMA0GCSqGSIb3DQEBCwUAA4IBAQCwUBeznv6cAjcTLCDb\nSSvgkM9HFcbWnuGS8Nf5P4YfmSs52VuHZyjzwphjAU6B/danI/nMdZe52PXyvjVV\n02Y8ld/tMpqPV5SpaOadLtdg6TGBNJieOAt9doM8WNEgq/JycAL9ivIOjChUetZf\nZEV7HDIgiHSpqAPWMZYL71MS/p5zYkyOnPqmGyLNdi1neotwVCQopQXRNC2iLlVV\nyQONfXH5iijqr1iTWkB0ESK/xBt1PB655PlTjzFQUOovE1SyoQS8K3u7TP6+BqtD\nG9TYNTNZvxl5I/iU/KdWVip+qJbxRA8Skc8gHkkzeIEStw3l5cjnrp9h7EhnhkOh\nltGN\n-----END CERTIFICATE-----\n\"\"\",\n        key=\"\"\"-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA3ZKLfXtKTAkzwLQNvUs+bBfmj0/5fft7Dp0HidZCizZKiokI\nMAA3saAKpZk2mTNN4Ifxp5Kj8PYMTf3yR1nVc8RNNxbPGyoDHUunH9L/8QK60M5u\njeL5rG7hPEl9nrt9NzwLMgTKjwckzg2eYvuS5GXK8TBULGwN8ZwaLs0uXvk/mu2E\n8slb+Vg8vO9f7HUQGE351LbXZ6pChnjCoEIEZSdqQ5Of5NosJkJkof8G5OOuftVO\ncNp6T2Bj7xgJM5e0UXOP1XJKpVfD9HJoILqiEcpZScBRJ73KaqTh08QTgavYmeG/\n4e8p63wfxmwMOe+HkhJdIMywVutG0/WHnW03lwIDAQABAoIBAQCe5rHS09B8pzzO\nPlJ8JrIlox5eOOScTPX7jPITD+25GL5si8mrYvyODlCUYkSdqgV3uQa9PpUEAfDh\nHfXa5boGxAj8MQdmW8LQB6lbUV7r4SFJDkKKzvRvjTVKnwnQBHXQXudIf9ckq+Lh\nQzMLmY/G7JmWTyqOkQ+O7nx4g/11bcU7uQrQdvWPfc0+IiT1TYQdyLQ/Chlj3RF/\niwF8ZL2sfKF+Z5O49+Q6cXvUcQOvqtkIXbQijayyVNBMJwDB7aOZRA7JBNj9/ib6\nN0iTo81dJVz/nnpbWRaFTVinIsDF1heDfQ1qDx06T/Mpi6pjoWjRUcyIHEbZJTel\n0nXDJD1BAoGBAPZB/PN8MP+o9gkf2jnoU9LzctDJrQwD1J2XElq4RomimPIMqDQP\n5TRAJThf0O0X4Mv2n9EzV457OpJL+fz9htRWEYogWl9bkbzZ1AoX4K/acuGeawTT\nYEhPjJ2ZETsBsCeDkDDuHHzYwRQv+EfoXH36z9PBDxG1ZDb7kWwAILXdAoGBAOZW\njXG7m4I7cxUtXGtjwydh4K7nwH/5QoH2m928HM2AT48eQCl3CMQ089+qeJGgfHQv\nGyVOO/FGhcFsFi10FMQ7IlwWgZODg64qnrNhi4zbV1M2wKem1T2dlEpkd82EFdnS\nGYRIEkFORMxEDyzx3Th2TajpWC8YKKG3Tnm0bQ4DAoGBAIZTEEswHvoVi78GZN7Z\nX3/d028X0xCOtlcPpK9ffPpuesbtKILdeMS7iJHrkecB81jOOfa+7q+FgDl0v/PD\nxtvj5sVVSHZjWGeO2h53T9QccDWpV+7V7dsDqUv9xmxNS20CUpCeEWP4R7lfQSrY\nEDuXp+11jWa3buae6n/iwfTxAoGABEYW2cVhXUk9GWd+D4AKXvCx+ozSRY2abk7l\nFXgoEKgQ0db92ccboohY/g1rr0gLBxzYpBiPhCqK0MvwnWdJ+1odiRfhz5rhFpoz\n16A3tqVbOXAKoxG1Yy9JURgMIQQSY7hCQPIVZKDPJfsdTPgv4pxPVJL/z9/i4R1F\nl3yBiYECgYEA0+vpzL24nHZYdwgBF4qbmYhv8baRi07/BNgV1+d6vESuO/MwwoE/\n2UZ9Drf5yoX2Bvi5/vVMbyc7cSluO7icPBkl0D8F7E3x0v5mzwPxtpR8BTRoJKOL\n/rMdLscMz2VQsL5DJd/9OZg60fHRaRtWtV0afXzL5zUxnfDLot24IG4=\n-----END RSA PRIVATE KEY-----\n\"\"\"))\ndefault_listener = alicloud.ga.Listener(\"default\",\n    accelerator_id=default_bandwidth_package_attachment.accelerator_id,\n    name=name,\n    protocol=\"HTTPS\",\n    port_ranges=[{\n        \"from_port\": 8080,\n        \"to_port\": 8080,\n    }],\n    certificates=[{\n        \"id\": std.join_output(separator=\"-\",\n            input=[\n                default_service_certificate[1].id,\n                region,\n            ]).apply(lambda invoke: invoke.result),\n    }])\ndomain = \"alicloud-provider.cn\"\ndefault_additional_certificate = alicloud.ga.AdditionalCertificate(\"default\",\n    certificate_id=std.join_output(separator=\"-\",\n        input=[\n            default_service_certificate[1].id,\n            region,\n        ]).apply(lambda invoke: invoke.result),\n    domain=domain,\n    accelerator_id=default_listener.accelerator_id,\n    listener_id=default_listener.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Ga.GetAccelerators.Invoke(new()\n    {\n        Status = \"active\",\n    });\n\n    var defaultBandwidthPackage = new AliCloud.Ga.BandwidthPackage(\"default\", new()\n    {\n        Bandwidth = 100,\n        Type = \"Basic\",\n        BandwidthType = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        BillingType = \"PayBy95\",\n        Ratio = 30,\n        BandwidthPackageName = name,\n        AutoPay = true,\n        AutoUseCoupon = true,\n    });\n\n    var defaultBandwidthPackageAttachment = new AliCloud.Ga.BandwidthPackageAttachment(\"default\", new()\n    {\n        AcceleratorId = @default.Apply(@default =\u003e @default.Apply(getAcceleratorsResult =\u003e getAcceleratorsResult.Ids[0])),\n        BandwidthPackageId = defaultBandwidthPackage.Id,\n    });\n\n    var defaultServiceCertificate = new List\u003cAliCloud.Cas.ServiceCertificate\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultServiceCertificate.Add(new AliCloud.Cas.ServiceCertificate($\"default-{range.Value}\", new()\n        {\n            CertificateName = Std.Join.Invoke(new()\n            {\n                Separator = \"-\",\n                Input = new[]\n                {\n                    name,\n                    range.Value,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            Cert = @\"-----BEGIN CERTIFICATE-----\nMIID7zCCAtegAwIBAgIRAKi2/Fx1cUTyhV839x42ockwDQYJKoZIhvcNAQELBQAw\nXjELMAkGA1UEBhMCQ04xDjAMBgNVBAoTBU15U1NMMSswKQYDVQQLEyJNeVNTTCBU\nZXN0IFJTQSAtIEZvciB0ZXN0IHVzZSBvbmx5MRIwEAYDVQQDEwlNeVNTTC5jb20w\nHhcNMjMwODA5MDQ1NDU3WhcNMjYwODA4MDQ1NDU3WjAsMQswCQYDVQQGEwJDTjEd\nMBsGA1UEAxMUYWxpY2xvdWQtcHJvdmlkZXIuY24wggEiMA0GCSqGSIb3DQEBAQUA\nA4IBDwAwggEKAoIBAQDdkot9e0pMCTPAtA29Sz5sF+aPT/l9+3sOnQeJ1kKLNkqK\niQgwADexoAqlmTaZM03gh/GnkqPw9gxN/fJHWdVzxE03Fs8bKgMdS6cf0v/xArrQ\nzm6N4vmsbuE8SX2eu303PAsyBMqPByTODZ5i+5LkZcrxMFQsbA3xnBouzS5e+T+a\n7YTyyVv5WDy871/sdRAYTfnUttdnqkKGeMKgQgRlJ2pDk5/k2iwmQmSh/wbk465+\n1U5w2npPYGPvGAkzl7RRc4/VckqlV8P0cmgguqIRyllJwFEnvcpqpOHTxBOBq9iZ\n4b/h7ynrfB/GbAw574eSEl0gzLBW60bT9YedbTeXAgMBAAGjgdkwgdYwDgYDVR0P\nAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSME\nGDAWgBQogSYF0TQaP8FzD7uTzxUcPwO/fzBjBggrBgEFBQcBAQRXMFUwIQYIKwYB\nBQUHMAGGFWh0dHA6Ly9vY3NwLm15c3NsLmNvbTAwBggrBgEFBQcwAoYkaHR0cDov\nL2NhLm15c3NsLmNvbS9teXNzbHRlc3Ryc2EuY3J0MB8GA1UdEQQYMBaCFGFsaWNs\nb3VkLXByb3ZpZGVyLmNuMA0GCSqGSIb3DQEBCwUAA4IBAQCwUBeznv6cAjcTLCDb\nSSvgkM9HFcbWnuGS8Nf5P4YfmSs52VuHZyjzwphjAU6B/danI/nMdZe52PXyvjVV\n02Y8ld/tMpqPV5SpaOadLtdg6TGBNJieOAt9doM8WNEgq/JycAL9ivIOjChUetZf\nZEV7HDIgiHSpqAPWMZYL71MS/p5zYkyOnPqmGyLNdi1neotwVCQopQXRNC2iLlVV\nyQONfXH5iijqr1iTWkB0ESK/xBt1PB655PlTjzFQUOovE1SyoQS8K3u7TP6+BqtD\nG9TYNTNZvxl5I/iU/KdWVip+qJbxRA8Skc8gHkkzeIEStw3l5cjnrp9h7EhnhkOh\nltGN\n-----END CERTIFICATE-----\n\",\n            Key = @\"-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA3ZKLfXtKTAkzwLQNvUs+bBfmj0/5fft7Dp0HidZCizZKiokI\nMAA3saAKpZk2mTNN4Ifxp5Kj8PYMTf3yR1nVc8RNNxbPGyoDHUunH9L/8QK60M5u\njeL5rG7hPEl9nrt9NzwLMgTKjwckzg2eYvuS5GXK8TBULGwN8ZwaLs0uXvk/mu2E\n8slb+Vg8vO9f7HUQGE351LbXZ6pChnjCoEIEZSdqQ5Of5NosJkJkof8G5OOuftVO\ncNp6T2Bj7xgJM5e0UXOP1XJKpVfD9HJoILqiEcpZScBRJ73KaqTh08QTgavYmeG/\n4e8p63wfxmwMOe+HkhJdIMywVutG0/WHnW03lwIDAQABAoIBAQCe5rHS09B8pzzO\nPlJ8JrIlox5eOOScTPX7jPITD+25GL5si8mrYvyODlCUYkSdqgV3uQa9PpUEAfDh\nHfXa5boGxAj8MQdmW8LQB6lbUV7r4SFJDkKKzvRvjTVKnwnQBHXQXudIf9ckq+Lh\nQzMLmY/G7JmWTyqOkQ+O7nx4g/11bcU7uQrQdvWPfc0+IiT1TYQdyLQ/Chlj3RF/\niwF8ZL2sfKF+Z5O49+Q6cXvUcQOvqtkIXbQijayyVNBMJwDB7aOZRA7JBNj9/ib6\nN0iTo81dJVz/nnpbWRaFTVinIsDF1heDfQ1qDx06T/Mpi6pjoWjRUcyIHEbZJTel\n0nXDJD1BAoGBAPZB/PN8MP+o9gkf2jnoU9LzctDJrQwD1J2XElq4RomimPIMqDQP\n5TRAJThf0O0X4Mv2n9EzV457OpJL+fz9htRWEYogWl9bkbzZ1AoX4K/acuGeawTT\nYEhPjJ2ZETsBsCeDkDDuHHzYwRQv+EfoXH36z9PBDxG1ZDb7kWwAILXdAoGBAOZW\njXG7m4I7cxUtXGtjwydh4K7nwH/5QoH2m928HM2AT48eQCl3CMQ089+qeJGgfHQv\nGyVOO/FGhcFsFi10FMQ7IlwWgZODg64qnrNhi4zbV1M2wKem1T2dlEpkd82EFdnS\nGYRIEkFORMxEDyzx3Th2TajpWC8YKKG3Tnm0bQ4DAoGBAIZTEEswHvoVi78GZN7Z\nX3/d028X0xCOtlcPpK9ffPpuesbtKILdeMS7iJHrkecB81jOOfa+7q+FgDl0v/PD\nxtvj5sVVSHZjWGeO2h53T9QccDWpV+7V7dsDqUv9xmxNS20CUpCeEWP4R7lfQSrY\nEDuXp+11jWa3buae6n/iwfTxAoGABEYW2cVhXUk9GWd+D4AKXvCx+ozSRY2abk7l\nFXgoEKgQ0db92ccboohY/g1rr0gLBxzYpBiPhCqK0MvwnWdJ+1odiRfhz5rhFpoz\n16A3tqVbOXAKoxG1Yy9JURgMIQQSY7hCQPIVZKDPJfsdTPgv4pxPVJL/z9/i4R1F\nl3yBiYECgYEA0+vpzL24nHZYdwgBF4qbmYhv8baRi07/BNgV1+d6vESuO/MwwoE/\n2UZ9Drf5yoX2Bvi5/vVMbyc7cSluO7icPBkl0D8F7E3x0v5mzwPxtpR8BTRoJKOL\n/rMdLscMz2VQsL5DJd/9OZg60fHRaRtWtV0afXzL5zUxnfDLot24IG4=\n-----END RSA PRIVATE KEY-----\n\",\n        }));\n    }\n    var defaultListener = new AliCloud.Ga.Listener(\"default\", new()\n    {\n        AcceleratorId = defaultBandwidthPackageAttachment.AcceleratorId,\n        Name = name,\n        Protocol = \"HTTPS\",\n        PortRanges = new[]\n        {\n            new AliCloud.Ga.Inputs.ListenerPortRangeArgs\n            {\n                FromPort = 8080,\n                ToPort = 8080,\n            },\n        },\n        Certificates = new[]\n        {\n            new AliCloud.Ga.Inputs.ListenerCertificateArgs\n            {\n                Id = Std.Join.Invoke(new()\n                {\n                    Separator = \"-\",\n                    Input = new[]\n                    {\n                        defaultServiceCertificate[1].Id,\n                        region,\n                    },\n                }).Apply(invoke =\u003e invoke.Result),\n            },\n        },\n    });\n\n    var domain = \"alicloud-provider.cn\";\n\n    var defaultAdditionalCertificate = new AliCloud.Ga.AdditionalCertificate(\"default\", new()\n    {\n        CertificateId = Std.Join.Invoke(new()\n        {\n            Separator = \"-\",\n            Input = new[]\n            {\n                defaultServiceCertificate[1].Id,\n                region,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        Domain = domain,\n        AcceleratorId = defaultListener.AcceleratorId,\n        ListenerId = defaultListener.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := ga.GetAccelerators(ctx, \u0026ga.GetAcceleratorsArgs{\n\t\t\tStatus: pulumi.StringRef(\"active\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackage, err := ga.NewBandwidthPackage(ctx, \"default\", \u0026ga.BandwidthPackageArgs{\n\t\t\tBandwidth:            pulumi.Int(100),\n\t\t\tType:                 pulumi.String(\"Basic\"),\n\t\t\tBandwidthType:        pulumi.String(\"Basic\"),\n\t\t\tPaymentType:          pulumi.String(\"PayAsYouGo\"),\n\t\t\tBillingType:          pulumi.String(\"PayBy95\"),\n\t\t\tRatio:                pulumi.Int(30),\n\t\t\tBandwidthPackageName: pulumi.String(name),\n\t\t\tAutoPay:              pulumi.Bool(true),\n\t\t\tAutoUseCoupon:        pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackageAttachment, err := ga.NewBandwidthPackageAttachment(ctx, \"default\", \u0026ga.BandwidthPackageAttachmentArgs{\n\t\t\tAcceleratorId:      pulumi.String(_default.Ids[0]),\n\t\t\tBandwidthPackageId: defaultBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeJoin, err := std.Join(ctx, \u0026std.JoinArgs{\n\t\t\tSeparator: \"-\",\n\t\t\tInput: []interface{}{\n\t\t\t\tname,\n\t\t\t\tval0,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar defaultServiceCertificate []*cas.ServiceCertificate\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := cas.NewServiceCertificate(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026cas.ServiceCertificateArgs{\n\t\t\t\tCertificateName: pulumi.String(invokeJoin.Result),\n\t\t\t\tCert: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIID7zCCAtegAwIBAgIRAKi2/Fx1cUTyhV839x42ockwDQYJKoZIhvcNAQELBQAw\nXjELMAkGA1UEBhMCQ04xDjAMBgNVBAoTBU15U1NMMSswKQYDVQQLEyJNeVNTTCBU\nZXN0IFJTQSAtIEZvciB0ZXN0IHVzZSBvbmx5MRIwEAYDVQQDEwlNeVNTTC5jb20w\nHhcNMjMwODA5MDQ1NDU3WhcNMjYwODA4MDQ1NDU3WjAsMQswCQYDVQQGEwJDTjEd\nMBsGA1UEAxMUYWxpY2xvdWQtcHJvdmlkZXIuY24wggEiMA0GCSqGSIb3DQEBAQUA\nA4IBDwAwggEKAoIBAQDdkot9e0pMCTPAtA29Sz5sF+aPT/l9+3sOnQeJ1kKLNkqK\niQgwADexoAqlmTaZM03gh/GnkqPw9gxN/fJHWdVzxE03Fs8bKgMdS6cf0v/xArrQ\nzm6N4vmsbuE8SX2eu303PAsyBMqPByTODZ5i+5LkZcrxMFQsbA3xnBouzS5e+T+a\n7YTyyVv5WDy871/sdRAYTfnUttdnqkKGeMKgQgRlJ2pDk5/k2iwmQmSh/wbk465+\n1U5w2npPYGPvGAkzl7RRc4/VckqlV8P0cmgguqIRyllJwFEnvcpqpOHTxBOBq9iZ\n4b/h7ynrfB/GbAw574eSEl0gzLBW60bT9YedbTeXAgMBAAGjgdkwgdYwDgYDVR0P\nAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSME\nGDAWgBQogSYF0TQaP8FzD7uTzxUcPwO/fzBjBggrBgEFBQcBAQRXMFUwIQYIKwYB\nBQUHMAGGFWh0dHA6Ly9vY3NwLm15c3NsLmNvbTAwBggrBgEFBQcwAoYkaHR0cDov\nL2NhLm15c3NsLmNvbS9teXNzbHRlc3Ryc2EuY3J0MB8GA1UdEQQYMBaCFGFsaWNs\nb3VkLXByb3ZpZGVyLmNuMA0GCSqGSIb3DQEBCwUAA4IBAQCwUBeznv6cAjcTLCDb\nSSvgkM9HFcbWnuGS8Nf5P4YfmSs52VuHZyjzwphjAU6B/danI/nMdZe52PXyvjVV\n02Y8ld/tMpqPV5SpaOadLtdg6TGBNJieOAt9doM8WNEgq/JycAL9ivIOjChUetZf\nZEV7HDIgiHSpqAPWMZYL71MS/p5zYkyOnPqmGyLNdi1neotwVCQopQXRNC2iLlVV\nyQONfXH5iijqr1iTWkB0ESK/xBt1PB655PlTjzFQUOovE1SyoQS8K3u7TP6+BqtD\nG9TYNTNZvxl5I/iU/KdWVip+qJbxRA8Skc8gHkkzeIEStw3l5cjnrp9h7EhnhkOh\nltGN\n-----END CERTIFICATE-----\n`),\n\t\t\t\tKey: pulumi.String(`-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA3ZKLfXtKTAkzwLQNvUs+bBfmj0/5fft7Dp0HidZCizZKiokI\nMAA3saAKpZk2mTNN4Ifxp5Kj8PYMTf3yR1nVc8RNNxbPGyoDHUunH9L/8QK60M5u\njeL5rG7hPEl9nrt9NzwLMgTKjwckzg2eYvuS5GXK8TBULGwN8ZwaLs0uXvk/mu2E\n8slb+Vg8vO9f7HUQGE351LbXZ6pChnjCoEIEZSdqQ5Of5NosJkJkof8G5OOuftVO\ncNp6T2Bj7xgJM5e0UXOP1XJKpVfD9HJoILqiEcpZScBRJ73KaqTh08QTgavYmeG/\n4e8p63wfxmwMOe+HkhJdIMywVutG0/WHnW03lwIDAQABAoIBAQCe5rHS09B8pzzO\nPlJ8JrIlox5eOOScTPX7jPITD+25GL5si8mrYvyODlCUYkSdqgV3uQa9PpUEAfDh\nHfXa5boGxAj8MQdmW8LQB6lbUV7r4SFJDkKKzvRvjTVKnwnQBHXQXudIf9ckq+Lh\nQzMLmY/G7JmWTyqOkQ+O7nx4g/11bcU7uQrQdvWPfc0+IiT1TYQdyLQ/Chlj3RF/\niwF8ZL2sfKF+Z5O49+Q6cXvUcQOvqtkIXbQijayyVNBMJwDB7aOZRA7JBNj9/ib6\nN0iTo81dJVz/nnpbWRaFTVinIsDF1heDfQ1qDx06T/Mpi6pjoWjRUcyIHEbZJTel\n0nXDJD1BAoGBAPZB/PN8MP+o9gkf2jnoU9LzctDJrQwD1J2XElq4RomimPIMqDQP\n5TRAJThf0O0X4Mv2n9EzV457OpJL+fz9htRWEYogWl9bkbzZ1AoX4K/acuGeawTT\nYEhPjJ2ZETsBsCeDkDDuHHzYwRQv+EfoXH36z9PBDxG1ZDb7kWwAILXdAoGBAOZW\njXG7m4I7cxUtXGtjwydh4K7nwH/5QoH2m928HM2AT48eQCl3CMQ089+qeJGgfHQv\nGyVOO/FGhcFsFi10FMQ7IlwWgZODg64qnrNhi4zbV1M2wKem1T2dlEpkd82EFdnS\nGYRIEkFORMxEDyzx3Th2TajpWC8YKKG3Tnm0bQ4DAoGBAIZTEEswHvoVi78GZN7Z\nX3/d028X0xCOtlcPpK9ffPpuesbtKILdeMS7iJHrkecB81jOOfa+7q+FgDl0v/PD\nxtvj5sVVSHZjWGeO2h53T9QccDWpV+7V7dsDqUv9xmxNS20CUpCeEWP4R7lfQSrY\nEDuXp+11jWa3buae6n/iwfTxAoGABEYW2cVhXUk9GWd+D4AKXvCx+ozSRY2abk7l\nFXgoEKgQ0db92ccboohY/g1rr0gLBxzYpBiPhCqK0MvwnWdJ+1odiRfhz5rhFpoz\n16A3tqVbOXAKoxG1Yy9JURgMIQQSY7hCQPIVZKDPJfsdTPgv4pxPVJL/z9/i4R1F\nl3yBiYECgYEA0+vpzL24nHZYdwgBF4qbmYhv8baRi07/BNgV1+d6vESuO/MwwoE/\n2UZ9Drf5yoX2Bvi5/vVMbyc7cSluO7icPBkl0D8F7E3x0v5mzwPxtpR8BTRoJKOL\n/rMdLscMz2VQsL5DJd/9OZg60fHRaRtWtV0afXzL5zUxnfDLot24IG4=\n-----END RSA PRIVATE KEY-----\n`),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultServiceCertificate = append(defaultServiceCertificate, __res)\n\t\t}\n\t\tdefaultListener, err := ga.NewListener(ctx, \"default\", \u0026ga.ListenerArgs{\n\t\t\tAcceleratorId: defaultBandwidthPackageAttachment.AcceleratorId,\n\t\t\tName:          pulumi.String(name),\n\t\t\tProtocol:      pulumi.String(\"HTTPS\"),\n\t\t\tPortRanges: ga.ListenerPortRangeArray{\n\t\t\t\t\u0026ga.ListenerPortRangeArgs{\n\t\t\t\t\tFromPort: pulumi.Int(8080),\n\t\t\t\t\tToPort:   pulumi.Int(8080),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCertificates: ga.ListenerCertificateArray{\n\t\t\t\t\u0026ga.ListenerCertificateArgs{\n\t\t\t\t\tId: std.JoinOutput(ctx, std.JoinOutputArgs{\n\t\t\t\t\t\tSeparator: pulumi.String(\"-\"),\n\t\t\t\t\t\tInput: pulumi.StringArray{\n\t\t\t\t\t\t\tdefaultServiceCertificate[1].ID(),\n\t\t\t\t\t\t\tpulumi.String(region),\n\t\t\t\t\t\t},\n\t\t\t\t\t}, nil).ApplyT(func(invoke std.JoinResult) (*string, error) {\n\t\t\t\t\t\treturn invoke.Result, nil\n\t\t\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdomain := \"alicloud-provider.cn\"\n\t\t_, err = ga.NewAdditionalCertificate(ctx, \"default\", \u0026ga.AdditionalCertificateArgs{\n\t\t\tCertificateId: pulumi.String(std.JoinOutput(ctx, std.JoinOutputArgs{\n\t\t\t\tSeparator: pulumi.String(\"-\"),\n\t\t\t\tInput: pulumi.StringArray{\n\t\t\t\t\tdefaultServiceCertificate[1].ID(),\n\t\t\t\t\tpulumi.String(region),\n\t\t\t\t},\n\t\t\t}, nil).ApplyT(func(invoke std.JoinResult) (*string, error) {\n\t\t\t\treturn invoke.Result, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tDomain:        pulumi.String(domain),\n\t\t\tAcceleratorId: defaultListener.AcceleratorId,\n\t\t\tListenerId:    defaultListener.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetAcceleratorsArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackage;\nimport com.pulumi.alicloud.ga.BandwidthPackageArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.cas.ServiceCertificate;\nimport com.pulumi.alicloud.cas.ServiceCertificateArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.JoinArgs;\nimport com.pulumi.alicloud.ga.Listener;\nimport com.pulumi.alicloud.ga.ListenerArgs;\nimport com.pulumi.alicloud.ga.inputs.ListenerPortRangeArgs;\nimport com.pulumi.alicloud.ga.inputs.ListenerCertificateArgs;\nimport com.pulumi.alicloud.ga.AdditionalCertificate;\nimport com.pulumi.alicloud.ga.AdditionalCertificateArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = GaFunctions.getAccelerators(GetAcceleratorsArgs.builder()\n            .status(\"active\")\n            .build());\n\n        var defaultBandwidthPackage = new BandwidthPackage(\"defaultBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(100)\n            .type(\"Basic\")\n            .bandwidthType(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .billingType(\"PayBy95\")\n            .ratio(30)\n            .bandwidthPackageName(name)\n            .autoPay(true)\n            .autoUseCoupon(true)\n            .build());\n\n        var defaultBandwidthPackageAttachment = new BandwidthPackageAttachment(\"defaultBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .acceleratorId(default_.ids()[0])\n            .bandwidthPackageId(defaultBandwidthPackage.id())\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new ServiceCertificate(\"defaultServiceCertificate-\" + i, ServiceCertificateArgs.builder()\n                .certificateName(StdFunctions.join(JoinArgs.builder()\n                    .separator(\"-\")\n                    .input(                    \n                        name,\n                        range.value())\n                    .build()).result())\n                .cert(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIID7zCCAtegAwIBAgIRAKi2/Fx1cUTyhV839x42ockwDQYJKoZIhvcNAQELBQAw\nXjELMAkGA1UEBhMCQ04xDjAMBgNVBAoTBU15U1NMMSswKQYDVQQLEyJNeVNTTCBU\nZXN0IFJTQSAtIEZvciB0ZXN0IHVzZSBvbmx5MRIwEAYDVQQDEwlNeVNTTC5jb20w\nHhcNMjMwODA5MDQ1NDU3WhcNMjYwODA4MDQ1NDU3WjAsMQswCQYDVQQGEwJDTjEd\nMBsGA1UEAxMUYWxpY2xvdWQtcHJvdmlkZXIuY24wggEiMA0GCSqGSIb3DQEBAQUA\nA4IBDwAwggEKAoIBAQDdkot9e0pMCTPAtA29Sz5sF+aPT/l9+3sOnQeJ1kKLNkqK\niQgwADexoAqlmTaZM03gh/GnkqPw9gxN/fJHWdVzxE03Fs8bKgMdS6cf0v/xArrQ\nzm6N4vmsbuE8SX2eu303PAsyBMqPByTODZ5i+5LkZcrxMFQsbA3xnBouzS5e+T+a\n7YTyyVv5WDy871/sdRAYTfnUttdnqkKGeMKgQgRlJ2pDk5/k2iwmQmSh/wbk465+\n1U5w2npPYGPvGAkzl7RRc4/VckqlV8P0cmgguqIRyllJwFEnvcpqpOHTxBOBq9iZ\n4b/h7ynrfB/GbAw574eSEl0gzLBW60bT9YedbTeXAgMBAAGjgdkwgdYwDgYDVR0P\nAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSME\nGDAWgBQogSYF0TQaP8FzD7uTzxUcPwO/fzBjBggrBgEFBQcBAQRXMFUwIQYIKwYB\nBQUHMAGGFWh0dHA6Ly9vY3NwLm15c3NsLmNvbTAwBggrBgEFBQcwAoYkaHR0cDov\nL2NhLm15c3NsLmNvbS9teXNzbHRlc3Ryc2EuY3J0MB8GA1UdEQQYMBaCFGFsaWNs\nb3VkLXByb3ZpZGVyLmNuMA0GCSqGSIb3DQEBCwUAA4IBAQCwUBeznv6cAjcTLCDb\nSSvgkM9HFcbWnuGS8Nf5P4YfmSs52VuHZyjzwphjAU6B/danI/nMdZe52PXyvjVV\n02Y8ld/tMpqPV5SpaOadLtdg6TGBNJieOAt9doM8WNEgq/JycAL9ivIOjChUetZf\nZEV7HDIgiHSpqAPWMZYL71MS/p5zYkyOnPqmGyLNdi1neotwVCQopQXRNC2iLlVV\nyQONfXH5iijqr1iTWkB0ESK/xBt1PB655PlTjzFQUOovE1SyoQS8K3u7TP6+BqtD\nG9TYNTNZvxl5I/iU/KdWVip+qJbxRA8Skc8gHkkzeIEStw3l5cjnrp9h7EhnhkOh\nltGN\n-----END CERTIFICATE-----\n                \"\"\")\n                .key(\"\"\"\n-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA3ZKLfXtKTAkzwLQNvUs+bBfmj0/5fft7Dp0HidZCizZKiokI\nMAA3saAKpZk2mTNN4Ifxp5Kj8PYMTf3yR1nVc8RNNxbPGyoDHUunH9L/8QK60M5u\njeL5rG7hPEl9nrt9NzwLMgTKjwckzg2eYvuS5GXK8TBULGwN8ZwaLs0uXvk/mu2E\n8slb+Vg8vO9f7HUQGE351LbXZ6pChnjCoEIEZSdqQ5Of5NosJkJkof8G5OOuftVO\ncNp6T2Bj7xgJM5e0UXOP1XJKpVfD9HJoILqiEcpZScBRJ73KaqTh08QTgavYmeG/\n4e8p63wfxmwMOe+HkhJdIMywVutG0/WHnW03lwIDAQABAoIBAQCe5rHS09B8pzzO\nPlJ8JrIlox5eOOScTPX7jPITD+25GL5si8mrYvyODlCUYkSdqgV3uQa9PpUEAfDh\nHfXa5boGxAj8MQdmW8LQB6lbUV7r4SFJDkKKzvRvjTVKnwnQBHXQXudIf9ckq+Lh\nQzMLmY/G7JmWTyqOkQ+O7nx4g/11bcU7uQrQdvWPfc0+IiT1TYQdyLQ/Chlj3RF/\niwF8ZL2sfKF+Z5O49+Q6cXvUcQOvqtkIXbQijayyVNBMJwDB7aOZRA7JBNj9/ib6\nN0iTo81dJVz/nnpbWRaFTVinIsDF1heDfQ1qDx06T/Mpi6pjoWjRUcyIHEbZJTel\n0nXDJD1BAoGBAPZB/PN8MP+o9gkf2jnoU9LzctDJrQwD1J2XElq4RomimPIMqDQP\n5TRAJThf0O0X4Mv2n9EzV457OpJL+fz9htRWEYogWl9bkbzZ1AoX4K/acuGeawTT\nYEhPjJ2ZETsBsCeDkDDuHHzYwRQv+EfoXH36z9PBDxG1ZDb7kWwAILXdAoGBAOZW\njXG7m4I7cxUtXGtjwydh4K7nwH/5QoH2m928HM2AT48eQCl3CMQ089+qeJGgfHQv\nGyVOO/FGhcFsFi10FMQ7IlwWgZODg64qnrNhi4zbV1M2wKem1T2dlEpkd82EFdnS\nGYRIEkFORMxEDyzx3Th2TajpWC8YKKG3Tnm0bQ4DAoGBAIZTEEswHvoVi78GZN7Z\nX3/d028X0xCOtlcPpK9ffPpuesbtKILdeMS7iJHrkecB81jOOfa+7q+FgDl0v/PD\nxtvj5sVVSHZjWGeO2h53T9QccDWpV+7V7dsDqUv9xmxNS20CUpCeEWP4R7lfQSrY\nEDuXp+11jWa3buae6n/iwfTxAoGABEYW2cVhXUk9GWd+D4AKXvCx+ozSRY2abk7l\nFXgoEKgQ0db92ccboohY/g1rr0gLBxzYpBiPhCqK0MvwnWdJ+1odiRfhz5rhFpoz\n16A3tqVbOXAKoxG1Yy9JURgMIQQSY7hCQPIVZKDPJfsdTPgv4pxPVJL/z9/i4R1F\nl3yBiYECgYEA0+vpzL24nHZYdwgBF4qbmYhv8baRi07/BNgV1+d6vESuO/MwwoE/\n2UZ9Drf5yoX2Bvi5/vVMbyc7cSluO7icPBkl0D8F7E3x0v5mzwPxtpR8BTRoJKOL\n/rMdLscMz2VQsL5DJd/9OZg60fHRaRtWtV0afXzL5zUxnfDLot24IG4=\n-----END RSA PRIVATE KEY-----\n                \"\"\")\n                .build());\n\n        \n}\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .acceleratorId(defaultBandwidthPackageAttachment.acceleratorId())\n            .name(name)\n            .protocol(\"HTTPS\")\n            .portRanges(ListenerPortRangeArgs.builder()\n                .fromPort(8080)\n                .toPort(8080)\n                .build())\n            .certificates(ListenerCertificateArgs.builder()\n                .id(StdFunctions.join(JoinArgs.builder()\n                    .separator(\"-\")\n                    .input(                    \n                        defaultServiceCertificate[1].id(),\n                        region)\n                    .build()).applyValue(_invoke -\u003e _invoke.result()))\n                .build())\n            .build());\n\n        final var domain = \"alicloud-provider.cn\";\n\n        var defaultAdditionalCertificate = new AdditionalCertificate(\"defaultAdditionalCertificate\", AdditionalCertificateArgs.builder()\n            .certificateId(StdFunctions.join(JoinArgs.builder()\n                .separator(\"-\")\n                .input(                \n                    defaultServiceCertificate[1].id(),\n                    region)\n                .build()).applyValue(_invoke -\u003e _invoke.result()))\n            .domain(domain)\n            .acceleratorId(defaultListener.acceleratorId())\n            .listenerId(defaultListener.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultBandwidthPackage:\n    type: alicloud:ga:BandwidthPackage\n    name: default\n    properties:\n      bandwidth: 100\n      type: Basic\n      bandwidthType: Basic\n      paymentType: PayAsYouGo\n      billingType: PayBy95\n      ratio: 30\n      bandwidthPackageName: ${name}\n      autoPay: true\n      autoUseCoupon: true\n  defaultBandwidthPackageAttachment:\n    type: alicloud:ga:BandwidthPackageAttachment\n    name: default\n    properties:\n      acceleratorId: ${default.ids[0]}\n      bandwidthPackageId: ${defaultBandwidthPackage.id}\n  defaultServiceCertificate:\n    type: alicloud:cas:ServiceCertificate\n    name: default\n    properties:\n      certificateName:\n        fn::invoke:\n          function: std:join\n          arguments:\n            separator: '-'\n            input:\n              - ${name}\n              - ${range.value}\n          return: result\n      cert: |\n        -----BEGIN CERTIFICATE-----\n        MIID7zCCAtegAwIBAgIRAKi2/Fx1cUTyhV839x42ockwDQYJKoZIhvcNAQELBQAw\n        XjELMAkGA1UEBhMCQ04xDjAMBgNVBAoTBU15U1NMMSswKQYDVQQLEyJNeVNTTCBU\n        ZXN0IFJTQSAtIEZvciB0ZXN0IHVzZSBvbmx5MRIwEAYDVQQDEwlNeVNTTC5jb20w\n        HhcNMjMwODA5MDQ1NDU3WhcNMjYwODA4MDQ1NDU3WjAsMQswCQYDVQQGEwJDTjEd\n        MBsGA1UEAxMUYWxpY2xvdWQtcHJvdmlkZXIuY24wggEiMA0GCSqGSIb3DQEBAQUA\n        A4IBDwAwggEKAoIBAQDdkot9e0pMCTPAtA29Sz5sF+aPT/l9+3sOnQeJ1kKLNkqK\n        iQgwADexoAqlmTaZM03gh/GnkqPw9gxN/fJHWdVzxE03Fs8bKgMdS6cf0v/xArrQ\n        zm6N4vmsbuE8SX2eu303PAsyBMqPByTODZ5i+5LkZcrxMFQsbA3xnBouzS5e+T+a\n        7YTyyVv5WDy871/sdRAYTfnUttdnqkKGeMKgQgRlJ2pDk5/k2iwmQmSh/wbk465+\n        1U5w2npPYGPvGAkzl7RRc4/VckqlV8P0cmgguqIRyllJwFEnvcpqpOHTxBOBq9iZ\n        4b/h7ynrfB/GbAw574eSEl0gzLBW60bT9YedbTeXAgMBAAGjgdkwgdYwDgYDVR0P\n        AQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSME\n        GDAWgBQogSYF0TQaP8FzD7uTzxUcPwO/fzBjBggrBgEFBQcBAQRXMFUwIQYIKwYB\n        BQUHMAGGFWh0dHA6Ly9vY3NwLm15c3NsLmNvbTAwBggrBgEFBQcwAoYkaHR0cDov\n        L2NhLm15c3NsLmNvbS9teXNzbHRlc3Ryc2EuY3J0MB8GA1UdEQQYMBaCFGFsaWNs\n        b3VkLXByb3ZpZGVyLmNuMA0GCSqGSIb3DQEBCwUAA4IBAQCwUBeznv6cAjcTLCDb\n        SSvgkM9HFcbWnuGS8Nf5P4YfmSs52VuHZyjzwphjAU6B/danI/nMdZe52PXyvjVV\n        02Y8ld/tMpqPV5SpaOadLtdg6TGBNJieOAt9doM8WNEgq/JycAL9ivIOjChUetZf\n        ZEV7HDIgiHSpqAPWMZYL71MS/p5zYkyOnPqmGyLNdi1neotwVCQopQXRNC2iLlVV\n        yQONfXH5iijqr1iTWkB0ESK/xBt1PB655PlTjzFQUOovE1SyoQS8K3u7TP6+BqtD\n        G9TYNTNZvxl5I/iU/KdWVip+qJbxRA8Skc8gHkkzeIEStw3l5cjnrp9h7EhnhkOh\n        ltGN\n        -----END CERTIFICATE-----\n      key: |\n        -----BEGIN RSA PRIVATE KEY-----\n        MIIEpQIBAAKCAQEA3ZKLfXtKTAkzwLQNvUs+bBfmj0/5fft7Dp0HidZCizZKiokI\n        MAA3saAKpZk2mTNN4Ifxp5Kj8PYMTf3yR1nVc8RNNxbPGyoDHUunH9L/8QK60M5u\n        jeL5rG7hPEl9nrt9NzwLMgTKjwckzg2eYvuS5GXK8TBULGwN8ZwaLs0uXvk/mu2E\n        8slb+Vg8vO9f7HUQGE351LbXZ6pChnjCoEIEZSdqQ5Of5NosJkJkof8G5OOuftVO\n        cNp6T2Bj7xgJM5e0UXOP1XJKpVfD9HJoILqiEcpZScBRJ73KaqTh08QTgavYmeG/\n        4e8p63wfxmwMOe+HkhJdIMywVutG0/WHnW03lwIDAQABAoIBAQCe5rHS09B8pzzO\n        PlJ8JrIlox5eOOScTPX7jPITD+25GL5si8mrYvyODlCUYkSdqgV3uQa9PpUEAfDh\n        HfXa5boGxAj8MQdmW8LQB6lbUV7r4SFJDkKKzvRvjTVKnwnQBHXQXudIf9ckq+Lh\n        QzMLmY/G7JmWTyqOkQ+O7nx4g/11bcU7uQrQdvWPfc0+IiT1TYQdyLQ/Chlj3RF/\n        iwF8ZL2sfKF+Z5O49+Q6cXvUcQOvqtkIXbQijayyVNBMJwDB7aOZRA7JBNj9/ib6\n        N0iTo81dJVz/nnpbWRaFTVinIsDF1heDfQ1qDx06T/Mpi6pjoWjRUcyIHEbZJTel\n        0nXDJD1BAoGBAPZB/PN8MP+o9gkf2jnoU9LzctDJrQwD1J2XElq4RomimPIMqDQP\n        5TRAJThf0O0X4Mv2n9EzV457OpJL+fz9htRWEYogWl9bkbzZ1AoX4K/acuGeawTT\n        YEhPjJ2ZETsBsCeDkDDuHHzYwRQv+EfoXH36z9PBDxG1ZDb7kWwAILXdAoGBAOZW\n        jXG7m4I7cxUtXGtjwydh4K7nwH/5QoH2m928HM2AT48eQCl3CMQ089+qeJGgfHQv\n        GyVOO/FGhcFsFi10FMQ7IlwWgZODg64qnrNhi4zbV1M2wKem1T2dlEpkd82EFdnS\n        GYRIEkFORMxEDyzx3Th2TajpWC8YKKG3Tnm0bQ4DAoGBAIZTEEswHvoVi78GZN7Z\n        X3/d028X0xCOtlcPpK9ffPpuesbtKILdeMS7iJHrkecB81jOOfa+7q+FgDl0v/PD\n        xtvj5sVVSHZjWGeO2h53T9QccDWpV+7V7dsDqUv9xmxNS20CUpCeEWP4R7lfQSrY\n        EDuXp+11jWa3buae6n/iwfTxAoGABEYW2cVhXUk9GWd+D4AKXvCx+ozSRY2abk7l\n        FXgoEKgQ0db92ccboohY/g1rr0gLBxzYpBiPhCqK0MvwnWdJ+1odiRfhz5rhFpoz\n        16A3tqVbOXAKoxG1Yy9JURgMIQQSY7hCQPIVZKDPJfsdTPgv4pxPVJL/z9/i4R1F\n        l3yBiYECgYEA0+vpzL24nHZYdwgBF4qbmYhv8baRi07/BNgV1+d6vESuO/MwwoE/\n        2UZ9Drf5yoX2Bvi5/vVMbyc7cSluO7icPBkl0D8F7E3x0v5mzwPxtpR8BTRoJKOL\n        /rMdLscMz2VQsL5DJd/9OZg60fHRaRtWtV0afXzL5zUxnfDLot24IG4=\n        -----END RSA PRIVATE KEY-----\n    options: {}\n  defaultListener:\n    type: alicloud:ga:Listener\n    name: default\n    properties:\n      acceleratorId: ${defaultBandwidthPackageAttachment.acceleratorId}\n      name: ${name}\n      protocol: HTTPS\n      portRanges:\n        - fromPort: 8080\n          toPort: 8080\n      certificates:\n        - id:\n            fn::invoke:\n              function: std:join\n              arguments:\n                separator: '-'\n                input:\n                  - ${defaultServiceCertificate[1].id}\n                  - ${region}\n              return: result\n  defaultAdditionalCertificate:\n    type: alicloud:ga:AdditionalCertificate\n    name: default\n    properties:\n      certificateId:\n        fn::invoke:\n          function: std:join\n          arguments:\n            separator: '-'\n            input:\n              - ${defaultServiceCertificate[1].id}\n              - ${region}\n          return: result\n      domain: ${domain}\n      acceleratorId: ${defaultListener.acceleratorId}\n      listenerId: ${defaultListener.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ga:getAccelerators\n      arguments:\n        status: active\n  domain: alicloud-provider.cn\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal Accelerator (GA) Additional Certificate can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/additionalCertificate:AdditionalCertificate example \u003caccelerator_id\u003e:\u003clistener_id\u003e:\u003cdomain\u003e\n```\n\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n"},"certificateId":{"type":"string","description":"The Certificate ID. **NOTE:** From version 1.209.1, \u003cspan pulumi-lang-nodejs=\"`certificateId`\" pulumi-lang-dotnet=\"`CertificateId`\" pulumi-lang-go=\"`certificateId`\" pulumi-lang-python=\"`certificate_id`\" pulumi-lang-yaml=\"`certificateId`\" pulumi-lang-java=\"`certificateId`\"\u003e`certificate_id`\u003c/span\u003e can be modified.\n"},"domain":{"type":"string","description":"The domain name specified by the certificate. **NOTE:** You can associate each domain name with only one additional certificate.\n"},"listenerId":{"type":"string","description":"The ID of the listener. **NOTE:** Only HTTPS listeners support this parameter.\n"}},"required":["acceleratorId","certificateId","domain","listenerId"],"inputProperties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n","willReplaceOnChanges":true},"certificateId":{"type":"string","description":"The Certificate ID. **NOTE:** From version 1.209.1, \u003cspan pulumi-lang-nodejs=\"`certificateId`\" pulumi-lang-dotnet=\"`CertificateId`\" pulumi-lang-go=\"`certificateId`\" pulumi-lang-python=\"`certificate_id`\" pulumi-lang-yaml=\"`certificateId`\" pulumi-lang-java=\"`certificateId`\"\u003e`certificate_id`\u003c/span\u003e can be modified.\n"},"domain":{"type":"string","description":"The domain name specified by the certificate. **NOTE:** You can associate each domain name with only one additional certificate.\n","willReplaceOnChanges":true},"listenerId":{"type":"string","description":"The ID of the listener. **NOTE:** Only HTTPS listeners support this parameter.\n","willReplaceOnChanges":true}},"requiredInputs":["acceleratorId","certificateId","domain","listenerId"],"stateInputs":{"description":"Input properties used for looking up and filtering AdditionalCertificate resources.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n","willReplaceOnChanges":true},"certificateId":{"type":"string","description":"The Certificate ID. **NOTE:** From version 1.209.1, \u003cspan pulumi-lang-nodejs=\"`certificateId`\" pulumi-lang-dotnet=\"`CertificateId`\" pulumi-lang-go=\"`certificateId`\" pulumi-lang-python=\"`certificate_id`\" pulumi-lang-yaml=\"`certificateId`\" pulumi-lang-java=\"`certificateId`\"\u003e`certificate_id`\u003c/span\u003e can be modified.\n"},"domain":{"type":"string","description":"The domain name specified by the certificate. **NOTE:** You can associate each domain name with only one additional certificate.\n","willReplaceOnChanges":true},"listenerId":{"type":"string","description":"The ID of the listener. **NOTE:** Only HTTPS listeners support this parameter.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ga/bandwidthPackage:BandwidthPackage":{"description":"Provides a Global Accelerator (GA) Bandwidth Package resource.\n\nFor information about Global Accelerator (GA) Bandwidth Package and how to use it, see [What is Bandwidth Package](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createbandwidthpackage).\n\n\u003e **NOTE:** At present, The \u003cspan pulumi-lang-nodejs=\"`alicloud.ga.BandwidthPackage`\" pulumi-lang-dotnet=\"`alicloud.ga.BandwidthPackage`\" pulumi-lang-go=\"`ga.BandwidthPackage`\" pulumi-lang-python=\"`ga.BandwidthPackage`\" pulumi-lang-yaml=\"`alicloud.ga.BandwidthPackage`\" pulumi-lang-java=\"`alicloud.ga.BandwidthPackage`\"\u003e`alicloud.ga.BandwidthPackage`\u003c/span\u003e created with `Subscription` cannot be deleted. you need to wait until the resource is outdated and released automatically.\n\n\u003e **NOTE:** Available since v1.112.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.ga.BandwidthPackage(\"example\", {\n    bandwidth: 20,\n    type: \"Basic\",\n    bandwidthType: \"Basic\",\n    duration: \"1\",\n    autoPay: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ga.BandwidthPackage(\"example\",\n    bandwidth=20,\n    type=\"Basic\",\n    bandwidth_type=\"Basic\",\n    duration=\"1\",\n    auto_pay=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Ga.BandwidthPackage(\"example\", new()\n    {\n        Bandwidth = 20,\n        Type = \"Basic\",\n        BandwidthType = \"Basic\",\n        Duration = \"1\",\n        AutoPay = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ga.NewBandwidthPackage(ctx, \"example\", \u0026ga.BandwidthPackageArgs{\n\t\t\tBandwidth:     pulumi.Int(20),\n\t\t\tType:          pulumi.String(\"Basic\"),\n\t\t\tBandwidthType: pulumi.String(\"Basic\"),\n\t\t\tDuration:      pulumi.String(\"1\"),\n\t\t\tAutoPay:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.BandwidthPackage;\nimport com.pulumi.alicloud.ga.BandwidthPackageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new BandwidthPackage(\"example\", BandwidthPackageArgs.builder()\n            .bandwidth(20)\n            .type(\"Basic\")\n            .bandwidthType(\"Basic\")\n            .duration(\"1\")\n            .autoPay(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:ga:BandwidthPackage\n    properties:\n      bandwidth: 20\n      type: Basic\n      bandwidthType: Basic\n      duration: 1\n      autoPay: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGa Bandwidth Package can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/bandwidthPackage:BandwidthPackage example \u003cid\u003e\n```\n\n","properties":{"autoPay":{"type":"boolean","description":"Whether to pay automatically. Valid values:\n"},"autoRenewDuration":{"type":"integer","description":"Auto renewal period of a bandwidth packet, in the unit of month. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n"},"autoUseCoupon":{"type":"boolean","description":"Whether use vouchers. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"bandwidth":{"type":"integer","description":"The bandwidth value of bandwidth packet.\n"},"bandwidthPackageName":{"type":"string","description":"The name of the bandwidth packet.\n"},"bandwidthType":{"type":"string","description":"The bandwidth type of the bandwidth. Valid values: `Advanced`, `Basic`, `Enhanced`. If \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is set to `Basic`, this parameter is required.\n\u003e **NOTE:** At present, only basic can be configured to enhanced, but not enhanced and advanced to other types of accelerated bandwidth.\n"},"billingType":{"type":"string","description":"The billing type. Valid values: `PayBy95`, `PayByTraffic`. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`billingType`\" pulumi-lang-dotnet=\"`BillingType`\" pulumi-lang-go=\"`billingType`\" pulumi-lang-python=\"`billing_type`\" pulumi-lang-yaml=\"`billingType`\" pulumi-lang-java=\"`billingType`\"\u003e`billing_type`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`.\n"},"cbnGeographicRegionIda":{"type":"string","description":"Interworking area A of cross domain acceleration package. Only international stations support returning this parameter. Default value: `China-mainland`.\n"},"cbnGeographicRegionIdb":{"type":"string","description":"Interworking area B of cross domain acceleration package. Only international stations support returning this parameter. Default value: `Global`.\n"},"description":{"type":"string","description":"The description of bandwidth package.\n"},"duration":{"type":"string","description":"The subscription duration. **NOTE:** The ForceNew attribute has be removed from version 1.148.0. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, this parameter is required.\n"},"paymentType":{"type":"string","description":"The payment type of the bandwidth. Default value: `Subscription`. Valid values: `PayAsYouGo`, `Subscription`.\n"},"promotionOptionNo":{"type":"string","description":"The code of the coupon. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`promotionOptionNo`\" pulumi-lang-dotnet=\"`PromotionOptionNo`\" pulumi-lang-go=\"`promotionOptionNo`\" pulumi-lang-python=\"`promotion_option_no`\" pulumi-lang-yaml=\"`promotionOptionNo`\" pulumi-lang-java=\"`promotionOptionNo`\"\u003e`promotion_option_no`\u003c/span\u003e takes effect only for accounts registered on the international site (alibabacloud.com).\n"},"ratio":{"type":"integer","description":"The minimum percentage for the pay-by-95th-percentile metering method. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`ratio`\" pulumi-lang-dotnet=\"`Ratio`\" pulumi-lang-go=\"`ratio`\" pulumi-lang-python=\"`ratio`\" pulumi-lang-yaml=\"`ratio`\" pulumi-lang-java=\"`ratio`\"\u003e`ratio`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`billingType`\" pulumi-lang-dotnet=\"`BillingType`\" pulumi-lang-go=\"`billingType`\" pulumi-lang-python=\"`billing_type`\" pulumi-lang-yaml=\"`billingType`\" pulumi-lang-java=\"`billingType`\"\u003e`billing_type`\u003c/span\u003e is set to `PayBy95`.\n"},"renewalStatus":{"type":"string","description":"Whether to renew a bandwidth packet. automatically or not. Valid values:\n- `AutoRenewal`: Enable auto renewal.\n- `Normal`: Disable auto renewal.\n- `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"status":{"type":"string","description":"The status of the Bandwidth Package.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"The type of the bandwidth packet. China station only supports return to basic. Valid values: `Basic`, `CrossDomain`.\n"}},"required":["autoRenewDuration","bandwidth","cbnGeographicRegionIda","cbnGeographicRegionIdb","renewalStatus","resourceGroupId","status","type"],"inputProperties":{"autoPay":{"type":"boolean","description":"Whether to pay automatically. Valid values:\n"},"autoRenewDuration":{"type":"integer","description":"Auto renewal period of a bandwidth packet, in the unit of month. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n"},"autoUseCoupon":{"type":"boolean","description":"Whether use vouchers. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"bandwidth":{"type":"integer","description":"The bandwidth value of bandwidth packet.\n"},"bandwidthPackageName":{"type":"string","description":"The name of the bandwidth packet.\n"},"bandwidthType":{"type":"string","description":"The bandwidth type of the bandwidth. Valid values: `Advanced`, `Basic`, `Enhanced`. If \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is set to `Basic`, this parameter is required.\n\u003e **NOTE:** At present, only basic can be configured to enhanced, but not enhanced and advanced to other types of accelerated bandwidth.\n"},"billingType":{"type":"string","description":"The billing type. Valid values: `PayBy95`, `PayByTraffic`. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`billingType`\" pulumi-lang-dotnet=\"`BillingType`\" pulumi-lang-go=\"`billingType`\" pulumi-lang-python=\"`billing_type`\" pulumi-lang-yaml=\"`billingType`\" pulumi-lang-java=\"`billingType`\"\u003e`billing_type`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`.\n","willReplaceOnChanges":true},"cbnGeographicRegionIda":{"type":"string","description":"Interworking area A of cross domain acceleration package. Only international stations support returning this parameter. Default value: `China-mainland`.\n","willReplaceOnChanges":true},"cbnGeographicRegionIdb":{"type":"string","description":"Interworking area B of cross domain acceleration package. Only international stations support returning this parameter. Default value: `Global`.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of bandwidth package.\n"},"duration":{"type":"string","description":"The subscription duration. **NOTE:** The ForceNew attribute has be removed from version 1.148.0. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, this parameter is required.\n"},"paymentType":{"type":"string","description":"The payment type of the bandwidth. Default value: `Subscription`. Valid values: `PayAsYouGo`, `Subscription`.\n","willReplaceOnChanges":true},"promotionOptionNo":{"type":"string","description":"The code of the coupon. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`promotionOptionNo`\" pulumi-lang-dotnet=\"`PromotionOptionNo`\" pulumi-lang-go=\"`promotionOptionNo`\" pulumi-lang-python=\"`promotion_option_no`\" pulumi-lang-yaml=\"`promotionOptionNo`\" pulumi-lang-java=\"`promotionOptionNo`\"\u003e`promotion_option_no`\u003c/span\u003e takes effect only for accounts registered on the international site (alibabacloud.com).\n"},"ratio":{"type":"integer","description":"The minimum percentage for the pay-by-95th-percentile metering method. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`ratio`\" pulumi-lang-dotnet=\"`Ratio`\" pulumi-lang-go=\"`ratio`\" pulumi-lang-python=\"`ratio`\" pulumi-lang-yaml=\"`ratio`\" pulumi-lang-java=\"`ratio`\"\u003e`ratio`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`billingType`\" pulumi-lang-dotnet=\"`BillingType`\" pulumi-lang-go=\"`billingType`\" pulumi-lang-python=\"`billing_type`\" pulumi-lang-yaml=\"`billingType`\" pulumi-lang-java=\"`billingType`\"\u003e`billing_type`\u003c/span\u003e is set to `PayBy95`.\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Whether to renew a bandwidth packet. automatically or not. Valid values:\n- `AutoRenewal`: Enable auto renewal.\n- `Normal`: Disable auto renewal.\n- `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"The type of the bandwidth packet. China station only supports return to basic. Valid values: `Basic`, `CrossDomain`.\n","willReplaceOnChanges":true}},"requiredInputs":["bandwidth","type"],"stateInputs":{"description":"Input properties used for looking up and filtering BandwidthPackage resources.\n","properties":{"autoPay":{"type":"boolean","description":"Whether to pay automatically. Valid values:\n"},"autoRenewDuration":{"type":"integer","description":"Auto renewal period of a bandwidth packet, in the unit of month. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n"},"autoUseCoupon":{"type":"boolean","description":"Whether use vouchers. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"bandwidth":{"type":"integer","description":"The bandwidth value of bandwidth packet.\n"},"bandwidthPackageName":{"type":"string","description":"The name of the bandwidth packet.\n"},"bandwidthType":{"type":"string","description":"The bandwidth type of the bandwidth. Valid values: `Advanced`, `Basic`, `Enhanced`. If \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is set to `Basic`, this parameter is required.\n\u003e **NOTE:** At present, only basic can be configured to enhanced, but not enhanced and advanced to other types of accelerated bandwidth.\n"},"billingType":{"type":"string","description":"The billing type. Valid values: `PayBy95`, `PayByTraffic`. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`billingType`\" pulumi-lang-dotnet=\"`BillingType`\" pulumi-lang-go=\"`billingType`\" pulumi-lang-python=\"`billing_type`\" pulumi-lang-yaml=\"`billingType`\" pulumi-lang-java=\"`billingType`\"\u003e`billing_type`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`.\n","willReplaceOnChanges":true},"cbnGeographicRegionIda":{"type":"string","description":"Interworking area A of cross domain acceleration package. Only international stations support returning this parameter. Default value: `China-mainland`.\n","willReplaceOnChanges":true},"cbnGeographicRegionIdb":{"type":"string","description":"Interworking area B of cross domain acceleration package. Only international stations support returning this parameter. Default value: `Global`.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of bandwidth package.\n"},"duration":{"type":"string","description":"The subscription duration. **NOTE:** The ForceNew attribute has be removed from version 1.148.0. If \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `Subscription`, this parameter is required.\n"},"paymentType":{"type":"string","description":"The payment type of the bandwidth. Default value: `Subscription`. Valid values: `PayAsYouGo`, `Subscription`.\n","willReplaceOnChanges":true},"promotionOptionNo":{"type":"string","description":"The code of the coupon. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`promotionOptionNo`\" pulumi-lang-dotnet=\"`PromotionOptionNo`\" pulumi-lang-go=\"`promotionOptionNo`\" pulumi-lang-python=\"`promotion_option_no`\" pulumi-lang-yaml=\"`promotionOptionNo`\" pulumi-lang-java=\"`promotionOptionNo`\"\u003e`promotion_option_no`\u003c/span\u003e takes effect only for accounts registered on the international site (alibabacloud.com).\n"},"ratio":{"type":"integer","description":"The minimum percentage for the pay-by-95th-percentile metering method. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`ratio`\" pulumi-lang-dotnet=\"`Ratio`\" pulumi-lang-go=\"`ratio`\" pulumi-lang-python=\"`ratio`\" pulumi-lang-yaml=\"`ratio`\" pulumi-lang-java=\"`ratio`\"\u003e`ratio`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`billingType`\" pulumi-lang-dotnet=\"`BillingType`\" pulumi-lang-go=\"`billingType`\" pulumi-lang-python=\"`billing_type`\" pulumi-lang-yaml=\"`billingType`\" pulumi-lang-java=\"`billingType`\"\u003e`billing_type`\u003c/span\u003e is set to `PayBy95`.\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Whether to renew a bandwidth packet. automatically or not. Valid values:\n- `AutoRenewal`: Enable auto renewal.\n- `Normal`: Disable auto renewal.\n- `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"status":{"type":"string","description":"The status of the Bandwidth Package.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"The type of the bandwidth packet. China station only supports return to basic. Valid values: `Basic`, `CrossDomain`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ga/bandwidthPackageAttachment:BandwidthPackageAttachment":{"description":"Provides a Global Accelerator (GA) Bandwidth Package Attachment resource.\n\nFor information about Global Accelerator (GA) Bandwidth Package Attachment and how to use it, see [What is Bandwidth Package Attachment](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-bandwidthpackageaddaccelerator).\n\n\u003e **NOTE:** Available since v1.113.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ga.Accelerator(\"default\", {\n    duration: 1,\n    autoUseCoupon: true,\n    spec: \"1\",\n});\nconst defaultBandwidthPackage = new alicloud.ga.BandwidthPackage(\"default\", {\n    bandwidth: 100,\n    type: \"Basic\",\n    bandwidthType: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    billingType: \"PayBy95\",\n    ratio: 30,\n});\nconst defaultBandwidthPackageAttachment = new alicloud.ga.BandwidthPackageAttachment(\"default\", {\n    acceleratorId: _default.id,\n    bandwidthPackageId: defaultBandwidthPackage.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ga.Accelerator(\"default\",\n    duration=1,\n    auto_use_coupon=True,\n    spec=\"1\")\ndefault_bandwidth_package = alicloud.ga.BandwidthPackage(\"default\",\n    bandwidth=100,\n    type=\"Basic\",\n    bandwidth_type=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    billing_type=\"PayBy95\",\n    ratio=30)\ndefault_bandwidth_package_attachment = alicloud.ga.BandwidthPackageAttachment(\"default\",\n    accelerator_id=default.id,\n    bandwidth_package_id=default_bandwidth_package.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ga.Accelerator(\"default\", new()\n    {\n        Duration = 1,\n        AutoUseCoupon = true,\n        Spec = \"1\",\n    });\n\n    var defaultBandwidthPackage = new AliCloud.Ga.BandwidthPackage(\"default\", new()\n    {\n        Bandwidth = 100,\n        Type = \"Basic\",\n        BandwidthType = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        BillingType = \"PayBy95\",\n        Ratio = 30,\n    });\n\n    var defaultBandwidthPackageAttachment = new AliCloud.Ga.BandwidthPackageAttachment(\"default\", new()\n    {\n        AcceleratorId = @default.Id,\n        BandwidthPackageId = defaultBandwidthPackage.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ga.NewAccelerator(ctx, \"default\", \u0026ga.AcceleratorArgs{\n\t\t\tDuration:      pulumi.Int(1),\n\t\t\tAutoUseCoupon: pulumi.Bool(true),\n\t\t\tSpec:          pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackage, err := ga.NewBandwidthPackage(ctx, \"default\", \u0026ga.BandwidthPackageArgs{\n\t\t\tBandwidth:     pulumi.Int(100),\n\t\t\tType:          pulumi.String(\"Basic\"),\n\t\t\tBandwidthType: pulumi.String(\"Basic\"),\n\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\tBillingType:   pulumi.String(\"PayBy95\"),\n\t\t\tRatio:         pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewBandwidthPackageAttachment(ctx, \"default\", \u0026ga.BandwidthPackageAttachmentArgs{\n\t\t\tAcceleratorId:      _default.ID(),\n\t\t\tBandwidthPackageId: defaultBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.Accelerator;\nimport com.pulumi.alicloud.ga.AcceleratorArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackage;\nimport com.pulumi.alicloud.ga.BandwidthPackageArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Accelerator(\"default\", AcceleratorArgs.builder()\n            .duration(1)\n            .autoUseCoupon(true)\n            .spec(\"1\")\n            .build());\n\n        var defaultBandwidthPackage = new BandwidthPackage(\"defaultBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(100)\n            .type(\"Basic\")\n            .bandwidthType(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .billingType(\"PayBy95\")\n            .ratio(30)\n            .build());\n\n        var defaultBandwidthPackageAttachment = new BandwidthPackageAttachment(\"defaultBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .acceleratorId(default_.id())\n            .bandwidthPackageId(defaultBandwidthPackage.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ga:Accelerator\n    properties:\n      duration: 1\n      autoUseCoupon: true\n      spec: '1'\n  defaultBandwidthPackage:\n    type: alicloud:ga:BandwidthPackage\n    name: default\n    properties:\n      bandwidth: 100\n      type: Basic\n      bandwidthType: Basic\n      paymentType: PayAsYouGo\n      billingType: PayBy95\n      ratio: 30\n  defaultBandwidthPackageAttachment:\n    type: alicloud:ga:BandwidthPackageAttachment\n    name: default\n    properties:\n      acceleratorId: ${default.id}\n      bandwidthPackageId: ${defaultBandwidthPackage.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGa Bandwidth Package Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/bandwidthPackageAttachment:BandwidthPackageAttachment example \u003caccelerator_id\u003e:\u003cbandwidth_package_id\u003e\n```\n\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator instance.\n"},"accelerators":{"type":"array","items":{"type":"string"},"description":"Accelerators bound with current Bandwidth Package.\n"},"bandwidthPackageId":{"type":"string","description":"The ID of the Bandwidth Package. **NOTE:** From version 1.192.0, \u003cspan pulumi-lang-nodejs=\"`bandwidthPackageId`\" pulumi-lang-dotnet=\"`BandwidthPackageId`\" pulumi-lang-go=\"`bandwidthPackageId`\" pulumi-lang-python=\"`bandwidth_package_id`\" pulumi-lang-yaml=\"`bandwidthPackageId`\" pulumi-lang-java=\"`bandwidthPackageId`\"\u003e`bandwidth_package_id`\u003c/span\u003e can be modified.\n"},"status":{"type":"string","description":"State of Bandwidth Package.\n"}},"required":["acceleratorId","accelerators","bandwidthPackageId","status"],"inputProperties":{"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator instance.\n","willReplaceOnChanges":true},"bandwidthPackageId":{"type":"string","description":"The ID of the Bandwidth Package. **NOTE:** From version 1.192.0, \u003cspan pulumi-lang-nodejs=\"`bandwidthPackageId`\" pulumi-lang-dotnet=\"`BandwidthPackageId`\" pulumi-lang-go=\"`bandwidthPackageId`\" pulumi-lang-python=\"`bandwidth_package_id`\" pulumi-lang-yaml=\"`bandwidthPackageId`\" pulumi-lang-java=\"`bandwidthPackageId`\"\u003e`bandwidth_package_id`\u003c/span\u003e can be modified.\n"}},"requiredInputs":["acceleratorId","bandwidthPackageId"],"stateInputs":{"description":"Input properties used for looking up and filtering BandwidthPackageAttachment resources.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator instance.\n","willReplaceOnChanges":true},"accelerators":{"type":"array","items":{"type":"string"},"description":"Accelerators bound with current Bandwidth Package.\n"},"bandwidthPackageId":{"type":"string","description":"The ID of the Bandwidth Package. **NOTE:** From version 1.192.0, \u003cspan pulumi-lang-nodejs=\"`bandwidthPackageId`\" pulumi-lang-dotnet=\"`BandwidthPackageId`\" pulumi-lang-go=\"`bandwidthPackageId`\" pulumi-lang-python=\"`bandwidth_package_id`\" pulumi-lang-yaml=\"`bandwidthPackageId`\" pulumi-lang-java=\"`bandwidthPackageId`\"\u003e`bandwidth_package_id`\u003c/span\u003e can be modified.\n"},"status":{"type":"string","description":"State of Bandwidth Package.\n"}},"type":"object"}},"alicloud:ga/basicAccelerateIp:BasicAccelerateIp":{"description":"Provides a Global Accelerator (GA) Basic Accelerate IP resource.\n\nFor information about Global Accelerator (GA) Basic Accelerate IP and how to use it, see [What is Basic Accelerate IP](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createbasicaccelerateip).\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst _default = new alicloud.ga.BasicAccelerator(\"default\", {\n    duration: 1,\n    basicAcceleratorName: \"terraform-example\",\n    description: \"terraform-example\",\n    bandwidthBillingType: \"CDT\",\n    autoUseCoupon: \"true\",\n    autoPay: true,\n});\nconst defaultBasicIpSet = new alicloud.ga.BasicIpSet(\"default\", {\n    acceleratorId: _default.id,\n    accelerateRegionId: region,\n    ispType: \"BGP\",\n    bandwidth: 5,\n});\nconst defaultBasicAccelerateIp = new alicloud.ga.BasicAccelerateIp(\"default\", {\n    acceleratorId: _default.id,\n    ipSetId: defaultBasicIpSet.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\ndefault = alicloud.ga.BasicAccelerator(\"default\",\n    duration=1,\n    basic_accelerator_name=\"terraform-example\",\n    description=\"terraform-example\",\n    bandwidth_billing_type=\"CDT\",\n    auto_use_coupon=\"true\",\n    auto_pay=True)\ndefault_basic_ip_set = alicloud.ga.BasicIpSet(\"default\",\n    accelerator_id=default.id,\n    accelerate_region_id=region,\n    isp_type=\"BGP\",\n    bandwidth=5)\ndefault_basic_accelerate_ip = alicloud.ga.BasicAccelerateIp(\"default\",\n    accelerator_id=default.id,\n    ip_set_id=default_basic_ip_set.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var @default = new AliCloud.Ga.BasicAccelerator(\"default\", new()\n    {\n        Duration = 1,\n        BasicAcceleratorName = \"terraform-example\",\n        Description = \"terraform-example\",\n        BandwidthBillingType = \"CDT\",\n        AutoUseCoupon = \"true\",\n        AutoPay = true,\n    });\n\n    var defaultBasicIpSet = new AliCloud.Ga.BasicIpSet(\"default\", new()\n    {\n        AcceleratorId = @default.Id,\n        AccelerateRegionId = region,\n        IspType = \"BGP\",\n        Bandwidth = 5,\n    });\n\n    var defaultBasicAccelerateIp = new AliCloud.Ga.BasicAccelerateIp(\"default\", new()\n    {\n        AcceleratorId = @default.Id,\n        IpSetId = defaultBasicIpSet.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\t_default, err := ga.NewBasicAccelerator(ctx, \"default\", \u0026ga.BasicAcceleratorArgs{\n\t\t\tDuration:             pulumi.Int(1),\n\t\t\tBasicAcceleratorName: pulumi.String(\"terraform-example\"),\n\t\t\tDescription:          pulumi.String(\"terraform-example\"),\n\t\t\tBandwidthBillingType: pulumi.String(\"CDT\"),\n\t\t\tAutoUseCoupon:        pulumi.String(\"true\"),\n\t\t\tAutoPay:              pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBasicIpSet, err := ga.NewBasicIpSet(ctx, \"default\", \u0026ga.BasicIpSetArgs{\n\t\t\tAcceleratorId:      _default.ID(),\n\t\t\tAccelerateRegionId: pulumi.String(region),\n\t\t\tIspType:            pulumi.String(\"BGP\"),\n\t\t\tBandwidth:          pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewBasicAccelerateIp(ctx, \"default\", \u0026ga.BasicAccelerateIpArgs{\n\t\t\tAcceleratorId: _default.ID(),\n\t\t\tIpSetId:       defaultBasicIpSet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.BasicAccelerator;\nimport com.pulumi.alicloud.ga.BasicAcceleratorArgs;\nimport com.pulumi.alicloud.ga.BasicIpSet;\nimport com.pulumi.alicloud.ga.BasicIpSetArgs;\nimport com.pulumi.alicloud.ga.BasicAccelerateIp;\nimport com.pulumi.alicloud.ga.BasicAccelerateIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        var default_ = new BasicAccelerator(\"default\", BasicAcceleratorArgs.builder()\n            .duration(1)\n            .basicAcceleratorName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .bandwidthBillingType(\"CDT\")\n            .autoUseCoupon(\"true\")\n            .autoPay(true)\n            .build());\n\n        var defaultBasicIpSet = new BasicIpSet(\"defaultBasicIpSet\", BasicIpSetArgs.builder()\n            .acceleratorId(default_.id())\n            .accelerateRegionId(region)\n            .ispType(\"BGP\")\n            .bandwidth(5)\n            .build());\n\n        var defaultBasicAccelerateIp = new BasicAccelerateIp(\"defaultBasicAccelerateIp\", BasicAccelerateIpArgs.builder()\n            .acceleratorId(default_.id())\n            .ipSetId(defaultBasicIpSet.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\nresources:\n  default:\n    type: alicloud:ga:BasicAccelerator\n    properties:\n      duration: 1\n      basicAcceleratorName: terraform-example\n      description: terraform-example\n      bandwidthBillingType: CDT\n      autoUseCoupon: 'true'\n      autoPay: true\n  defaultBasicIpSet:\n    type: alicloud:ga:BasicIpSet\n    name: default\n    properties:\n      acceleratorId: ${default.id}\n      accelerateRegionId: ${region}\n      ispType: BGP\n      bandwidth: '5'\n  defaultBasicAccelerateIp:\n    type: alicloud:ga:BasicAccelerateIp\n    name: default\n    properties:\n      acceleratorId: ${default.id}\n      ipSetId: ${defaultBasicIpSet.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal Accelerator (GA) Basic Accelerate IP can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/basicAccelerateIp:BasicAccelerateIp example \u003cid\u003e\n```\n\n","properties":{"accelerateIpAddress":{"type":"string","description":"The address of the Basic Accelerate IP.\n"},"acceleratorId":{"type":"string","description":"The ID of the Basic GA instance.\n"},"ipSetId":{"type":"string","description":"The ID of the Basic Ip Set.\n"},"status":{"type":"string","description":"The status of the Basic Accelerate IP instance.\n"}},"required":["accelerateIpAddress","acceleratorId","ipSetId","status"],"inputProperties":{"acceleratorId":{"type":"string","description":"The ID of the Basic GA instance.\n","willReplaceOnChanges":true},"ipSetId":{"type":"string","description":"The ID of the Basic Ip Set.\n","willReplaceOnChanges":true}},"requiredInputs":["acceleratorId","ipSetId"],"stateInputs":{"description":"Input properties used for looking up and filtering BasicAccelerateIp resources.\n","properties":{"accelerateIpAddress":{"type":"string","description":"The address of the Basic Accelerate IP.\n"},"acceleratorId":{"type":"string","description":"The ID of the Basic GA instance.\n","willReplaceOnChanges":true},"ipSetId":{"type":"string","description":"The ID of the Basic Ip Set.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Basic Accelerate IP instance.\n"}},"type":"object"}},"alicloud:ga/basicAccelerateIpEndpointRelation:BasicAccelerateIpEndpointRelation":{"description":"Provides a Global Accelerator (GA) Basic Accelerate Ip Endpoint Relation resource.\n\nFor information about Global Accelerator (GA) Basic Accelerate Ip Endpoint Relation and how to use it, see [What is Basic Accelerate Ip Endpoint Relation](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createbasicaccelerateipendpointrelation).\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-shenzhen\";\nconst endpointRegion = config.get(\"endpointRegion\") || \"cn-hangzhou\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    vpcId: defaultNetwork.id,\n    name: \"terraform-example\",\n});\nconst defaultEcsNetworkInterface = new alicloud.ecs.EcsNetworkInterface(\"default\", {\n    vswitchId: defaultSwitch.id,\n    securityGroupIds: [defaultSecurityGroup.id],\n});\nconst defaultBasicAccelerator = new alicloud.ga.BasicAccelerator(\"default\", {\n    duration: 1,\n    basicAcceleratorName: \"terraform-example\",\n    description: \"terraform-example\",\n    bandwidthBillingType: \"CDT\",\n    autoUseCoupon: \"true\",\n    autoPay: true,\n});\nconst defaultBasicIpSet = new alicloud.ga.BasicIpSet(\"default\", {\n    acceleratorId: defaultBasicAccelerator.id,\n    accelerateRegionId: endpointRegion,\n    ispType: \"BGP\",\n    bandwidth: 5,\n});\nconst defaultBasicAccelerateIp = new alicloud.ga.BasicAccelerateIp(\"default\", {\n    acceleratorId: defaultBasicAccelerator.id,\n    ipSetId: defaultBasicIpSet.id,\n});\nconst defaultBasicEndpointGroup = new alicloud.ga.BasicEndpointGroup(\"default\", {\n    acceleratorId: defaultBasicAccelerator.id,\n    endpointGroupRegion: region,\n    basicEndpointGroupName: \"terraform-example\",\n    description: \"terraform-example\",\n});\nconst defaultBasicEndpoint = new alicloud.ga.BasicEndpoint(\"default\", {\n    acceleratorId: defaultBasicAccelerator.id,\n    endpointGroupId: defaultBasicEndpointGroup.id,\n    endpointType: \"ENI\",\n    endpointAddress: defaultEcsNetworkInterface.id,\n    endpointSubAddressType: \"primary\",\n    endpointSubAddress: \"192.168.0.1\",\n    basicEndpointName: \"terraform-example\",\n});\nconst defaultBasicAccelerateIpEndpointRelation = new alicloud.ga.BasicAccelerateIpEndpointRelation(\"default\", {\n    acceleratorId: defaultBasicAccelerateIp.acceleratorId,\n    accelerateIpId: defaultBasicAccelerateIp.id,\n    endpointId: defaultBasicEndpoint.endpointId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-shenzhen\"\nendpoint_region = config.get(\"endpointRegion\")\nif endpoint_region is None:\n    endpoint_region = \"cn-hangzhou\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    vpc_id=default_network.id,\n    name=\"terraform-example\")\ndefault_ecs_network_interface = alicloud.ecs.EcsNetworkInterface(\"default\",\n    vswitch_id=default_switch.id,\n    security_group_ids=[default_security_group.id])\ndefault_basic_accelerator = alicloud.ga.BasicAccelerator(\"default\",\n    duration=1,\n    basic_accelerator_name=\"terraform-example\",\n    description=\"terraform-example\",\n    bandwidth_billing_type=\"CDT\",\n    auto_use_coupon=\"true\",\n    auto_pay=True)\ndefault_basic_ip_set = alicloud.ga.BasicIpSet(\"default\",\n    accelerator_id=default_basic_accelerator.id,\n    accelerate_region_id=endpoint_region,\n    isp_type=\"BGP\",\n    bandwidth=5)\ndefault_basic_accelerate_ip = alicloud.ga.BasicAccelerateIp(\"default\",\n    accelerator_id=default_basic_accelerator.id,\n    ip_set_id=default_basic_ip_set.id)\ndefault_basic_endpoint_group = alicloud.ga.BasicEndpointGroup(\"default\",\n    accelerator_id=default_basic_accelerator.id,\n    endpoint_group_region=region,\n    basic_endpoint_group_name=\"terraform-example\",\n    description=\"terraform-example\")\ndefault_basic_endpoint = alicloud.ga.BasicEndpoint(\"default\",\n    accelerator_id=default_basic_accelerator.id,\n    endpoint_group_id=default_basic_endpoint_group.id,\n    endpoint_type=\"ENI\",\n    endpoint_address=default_ecs_network_interface.id,\n    endpoint_sub_address_type=\"primary\",\n    endpoint_sub_address=\"192.168.0.1\",\n    basic_endpoint_name=\"terraform-example\")\ndefault_basic_accelerate_ip_endpoint_relation = alicloud.ga.BasicAccelerateIpEndpointRelation(\"default\",\n    accelerator_id=default_basic_accelerate_ip.accelerator_id,\n    accelerate_ip_id=default_basic_accelerate_ip.id,\n    endpoint_id=default_basic_endpoint.endpoint_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-shenzhen\";\n    var endpointRegion = config.Get(\"endpointRegion\") ?? \"cn-hangzhou\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        Name = \"terraform-example\",\n    });\n\n    var defaultEcsNetworkInterface = new AliCloud.Ecs.EcsNetworkInterface(\"default\", new()\n    {\n        VswitchId = defaultSwitch.Id,\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var defaultBasicAccelerator = new AliCloud.Ga.BasicAccelerator(\"default\", new()\n    {\n        Duration = 1,\n        BasicAcceleratorName = \"terraform-example\",\n        Description = \"terraform-example\",\n        BandwidthBillingType = \"CDT\",\n        AutoUseCoupon = \"true\",\n        AutoPay = true,\n    });\n\n    var defaultBasicIpSet = new AliCloud.Ga.BasicIpSet(\"default\", new()\n    {\n        AcceleratorId = defaultBasicAccelerator.Id,\n        AccelerateRegionId = endpointRegion,\n        IspType = \"BGP\",\n        Bandwidth = 5,\n    });\n\n    var defaultBasicAccelerateIp = new AliCloud.Ga.BasicAccelerateIp(\"default\", new()\n    {\n        AcceleratorId = defaultBasicAccelerator.Id,\n        IpSetId = defaultBasicIpSet.Id,\n    });\n\n    var defaultBasicEndpointGroup = new AliCloud.Ga.BasicEndpointGroup(\"default\", new()\n    {\n        AcceleratorId = defaultBasicAccelerator.Id,\n        EndpointGroupRegion = region,\n        BasicEndpointGroupName = \"terraform-example\",\n        Description = \"terraform-example\",\n    });\n\n    var defaultBasicEndpoint = new AliCloud.Ga.BasicEndpoint(\"default\", new()\n    {\n        AcceleratorId = defaultBasicAccelerator.Id,\n        EndpointGroupId = defaultBasicEndpointGroup.Id,\n        EndpointType = \"ENI\",\n        EndpointAddress = defaultEcsNetworkInterface.Id,\n        EndpointSubAddressType = \"primary\",\n        EndpointSubAddress = \"192.168.0.1\",\n        BasicEndpointName = \"terraform-example\",\n    });\n\n    var defaultBasicAccelerateIpEndpointRelation = new AliCloud.Ga.BasicAccelerateIpEndpointRelation(\"default\", new()\n    {\n        AcceleratorId = defaultBasicAccelerateIp.AcceleratorId,\n        AccelerateIpId = defaultBasicAccelerateIp.Id,\n        EndpointId = defaultBasicEndpoint.EndpointId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-shenzhen\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tendpointRegion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"endpointRegion\"); param != \"\" {\n\t\t\tendpointRegion = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t\tName:  pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcsNetworkInterface, err := ecs.NewEcsNetworkInterface(ctx, \"default\", \u0026ecs.EcsNetworkInterfaceArgs{\n\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBasicAccelerator, err := ga.NewBasicAccelerator(ctx, \"default\", \u0026ga.BasicAcceleratorArgs{\n\t\t\tDuration:             pulumi.Int(1),\n\t\t\tBasicAcceleratorName: pulumi.String(\"terraform-example\"),\n\t\t\tDescription:          pulumi.String(\"terraform-example\"),\n\t\t\tBandwidthBillingType: pulumi.String(\"CDT\"),\n\t\t\tAutoUseCoupon:        pulumi.String(\"true\"),\n\t\t\tAutoPay:              pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBasicIpSet, err := ga.NewBasicIpSet(ctx, \"default\", \u0026ga.BasicIpSetArgs{\n\t\t\tAcceleratorId:      defaultBasicAccelerator.ID(),\n\t\t\tAccelerateRegionId: pulumi.String(endpointRegion),\n\t\t\tIspType:            pulumi.String(\"BGP\"),\n\t\t\tBandwidth:          pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBasicAccelerateIp, err := ga.NewBasicAccelerateIp(ctx, \"default\", \u0026ga.BasicAccelerateIpArgs{\n\t\t\tAcceleratorId: defaultBasicAccelerator.ID(),\n\t\t\tIpSetId:       defaultBasicIpSet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBasicEndpointGroup, err := ga.NewBasicEndpointGroup(ctx, \"default\", \u0026ga.BasicEndpointGroupArgs{\n\t\t\tAcceleratorId:          defaultBasicAccelerator.ID(),\n\t\t\tEndpointGroupRegion:    pulumi.String(region),\n\t\t\tBasicEndpointGroupName: pulumi.String(\"terraform-example\"),\n\t\t\tDescription:            pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBasicEndpoint, err := ga.NewBasicEndpoint(ctx, \"default\", \u0026ga.BasicEndpointArgs{\n\t\t\tAcceleratorId:          defaultBasicAccelerator.ID(),\n\t\t\tEndpointGroupId:        defaultBasicEndpointGroup.ID(),\n\t\t\tEndpointType:           pulumi.String(\"ENI\"),\n\t\t\tEndpointAddress:        defaultEcsNetworkInterface.ID(),\n\t\t\tEndpointSubAddressType: pulumi.String(\"primary\"),\n\t\t\tEndpointSubAddress:     pulumi.String(\"192.168.0.1\"),\n\t\t\tBasicEndpointName:      pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewBasicAccelerateIpEndpointRelation(ctx, \"default\", \u0026ga.BasicAccelerateIpEndpointRelationArgs{\n\t\t\tAcceleratorId:  defaultBasicAccelerateIp.AcceleratorId,\n\t\t\tAccelerateIpId: defaultBasicAccelerateIp.ID(),\n\t\t\tEndpointId:     defaultBasicEndpoint.EndpointId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterface;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfaceArgs;\nimport com.pulumi.alicloud.ga.BasicAccelerator;\nimport com.pulumi.alicloud.ga.BasicAcceleratorArgs;\nimport com.pulumi.alicloud.ga.BasicIpSet;\nimport com.pulumi.alicloud.ga.BasicIpSetArgs;\nimport com.pulumi.alicloud.ga.BasicAccelerateIp;\nimport com.pulumi.alicloud.ga.BasicAccelerateIpArgs;\nimport com.pulumi.alicloud.ga.BasicEndpointGroup;\nimport com.pulumi.alicloud.ga.BasicEndpointGroupArgs;\nimport com.pulumi.alicloud.ga.BasicEndpoint;\nimport com.pulumi.alicloud.ga.BasicEndpointArgs;\nimport com.pulumi.alicloud.ga.BasicAccelerateIpEndpointRelation;\nimport com.pulumi.alicloud.ga.BasicAccelerateIpEndpointRelationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-shenzhen\");\n        final var endpointRegion = config.get(\"endpointRegion\").orElse(\"cn-hangzhou\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .name(\"terraform-example\")\n            .build());\n\n        var defaultEcsNetworkInterface = new EcsNetworkInterface(\"defaultEcsNetworkInterface\", EcsNetworkInterfaceArgs.builder()\n            .vswitchId(defaultSwitch.id())\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n        var defaultBasicAccelerator = new BasicAccelerator(\"defaultBasicAccelerator\", BasicAcceleratorArgs.builder()\n            .duration(1)\n            .basicAcceleratorName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .bandwidthBillingType(\"CDT\")\n            .autoUseCoupon(\"true\")\n            .autoPay(true)\n            .build());\n\n        var defaultBasicIpSet = new BasicIpSet(\"defaultBasicIpSet\", BasicIpSetArgs.builder()\n            .acceleratorId(defaultBasicAccelerator.id())\n            .accelerateRegionId(endpointRegion)\n            .ispType(\"BGP\")\n            .bandwidth(5)\n            .build());\n\n        var defaultBasicAccelerateIp = new BasicAccelerateIp(\"defaultBasicAccelerateIp\", BasicAccelerateIpArgs.builder()\n            .acceleratorId(defaultBasicAccelerator.id())\n            .ipSetId(defaultBasicIpSet.id())\n            .build());\n\n        var defaultBasicEndpointGroup = new BasicEndpointGroup(\"defaultBasicEndpointGroup\", BasicEndpointGroupArgs.builder()\n            .acceleratorId(defaultBasicAccelerator.id())\n            .endpointGroupRegion(region)\n            .basicEndpointGroupName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultBasicEndpoint = new BasicEndpoint(\"defaultBasicEndpoint\", BasicEndpointArgs.builder()\n            .acceleratorId(defaultBasicAccelerator.id())\n            .endpointGroupId(defaultBasicEndpointGroup.id())\n            .endpointType(\"ENI\")\n            .endpointAddress(defaultEcsNetworkInterface.id())\n            .endpointSubAddressType(\"primary\")\n            .endpointSubAddress(\"192.168.0.1\")\n            .basicEndpointName(\"terraform-example\")\n            .build());\n\n        var defaultBasicAccelerateIpEndpointRelation = new BasicAccelerateIpEndpointRelation(\"defaultBasicAccelerateIpEndpointRelation\", BasicAccelerateIpEndpointRelationArgs.builder()\n            .acceleratorId(defaultBasicAccelerateIp.acceleratorId())\n            .accelerateIpId(defaultBasicAccelerateIp.id())\n            .endpointId(defaultBasicEndpoint.endpointId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-shenzhen\n  endpointRegion:\n    type: string\n    default: cn-hangzhou\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      name: terraform-example\n  defaultEcsNetworkInterface:\n    type: alicloud:ecs:EcsNetworkInterface\n    name: default\n    properties:\n      vswitchId: ${defaultSwitch.id}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n  defaultBasicAccelerator:\n    type: alicloud:ga:BasicAccelerator\n    name: default\n    properties:\n      duration: 1\n      basicAcceleratorName: terraform-example\n      description: terraform-example\n      bandwidthBillingType: CDT\n      autoUseCoupon: 'true'\n      autoPay: true\n  defaultBasicIpSet:\n    type: alicloud:ga:BasicIpSet\n    name: default\n    properties:\n      acceleratorId: ${defaultBasicAccelerator.id}\n      accelerateRegionId: ${endpointRegion}\n      ispType: BGP\n      bandwidth: '5'\n  defaultBasicAccelerateIp:\n    type: alicloud:ga:BasicAccelerateIp\n    name: default\n    properties:\n      acceleratorId: ${defaultBasicAccelerator.id}\n      ipSetId: ${defaultBasicIpSet.id}\n  defaultBasicEndpointGroup:\n    type: alicloud:ga:BasicEndpointGroup\n    name: default\n    properties:\n      acceleratorId: ${defaultBasicAccelerator.id}\n      endpointGroupRegion: ${region}\n      basicEndpointGroupName: terraform-example\n      description: terraform-example\n  defaultBasicEndpoint:\n    type: alicloud:ga:BasicEndpoint\n    name: default\n    properties:\n      acceleratorId: ${defaultBasicAccelerator.id}\n      endpointGroupId: ${defaultBasicEndpointGroup.id}\n      endpointType: ENI\n      endpointAddress: ${defaultEcsNetworkInterface.id}\n      endpointSubAddressType: primary\n      endpointSubAddress: 192.168.0.1\n      basicEndpointName: terraform-example\n  defaultBasicAccelerateIpEndpointRelation:\n    type: alicloud:ga:BasicAccelerateIpEndpointRelation\n    name: default\n    properties:\n      acceleratorId: ${defaultBasicAccelerateIp.acceleratorId}\n      accelerateIpId: ${defaultBasicAccelerateIp.id}\n      endpointId: ${defaultBasicEndpoint.endpointId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal Accelerator (GA) Basic Accelerate Ip Endpoint Relation can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/basicAccelerateIpEndpointRelation:BasicAccelerateIpEndpointRelation example \u003caccelerator_id\u003e:\u003caccelerate_ip_id\u003e:\u003cendpoint_id\u003e\n```\n\n","properties":{"accelerateIpId":{"type":"string","description":"The ID of the Basic Accelerate IP.\n"},"acceleratorId":{"type":"string","description":"The ID of the Basic GA instance.\n"},"endpointId":{"type":"string","description":"The ID of the Basic Endpoint.\n"},"status":{"type":"string","description":"The status of the Basic Accelerate Ip Endpoint Relation.\n"}},"required":["accelerateIpId","acceleratorId","endpointId","status"],"inputProperties":{"accelerateIpId":{"type":"string","description":"The ID of the Basic Accelerate IP.\n","willReplaceOnChanges":true},"acceleratorId":{"type":"string","description":"The ID of the Basic GA instance.\n","willReplaceOnChanges":true},"endpointId":{"type":"string","description":"The ID of the Basic Endpoint.\n","willReplaceOnChanges":true}},"requiredInputs":["accelerateIpId","acceleratorId","endpointId"],"stateInputs":{"description":"Input properties used for looking up and filtering BasicAccelerateIpEndpointRelation resources.\n","properties":{"accelerateIpId":{"type":"string","description":"The ID of the Basic Accelerate IP.\n","willReplaceOnChanges":true},"acceleratorId":{"type":"string","description":"The ID of the Basic GA instance.\n","willReplaceOnChanges":true},"endpointId":{"type":"string","description":"The ID of the Basic Endpoint.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Basic Accelerate Ip Endpoint Relation.\n"}},"type":"object"}},"alicloud:ga/basicAccelerator:BasicAccelerator":{"description":"Provides a Global Accelerator (GA) Basic Accelerator resource.\n\nFor information about Global Accelerator (GA) Basic Accelerator and how to use it, see [What is Basic Accelerator](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createbasicaccelerator).\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ga.BasicAccelerator(\"default\", {\n    duration: 1,\n    pricingCycle: \"Month\",\n    basicAcceleratorName: \"tf-example-value\",\n    description: \"tf-example-value\",\n    bandwidthBillingType: \"BandwidthPackage\",\n    autoPay: true,\n    autoUseCoupon: \"true\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ga.BasicAccelerator(\"default\",\n    duration=1,\n    pricing_cycle=\"Month\",\n    basic_accelerator_name=\"tf-example-value\",\n    description=\"tf-example-value\",\n    bandwidth_billing_type=\"BandwidthPackage\",\n    auto_pay=True,\n    auto_use_coupon=\"true\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ga.BasicAccelerator(\"default\", new()\n    {\n        Duration = 1,\n        PricingCycle = \"Month\",\n        BasicAcceleratorName = \"tf-example-value\",\n        Description = \"tf-example-value\",\n        BandwidthBillingType = \"BandwidthPackage\",\n        AutoPay = true,\n        AutoUseCoupon = \"true\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ga.NewBasicAccelerator(ctx, \"default\", \u0026ga.BasicAcceleratorArgs{\n\t\t\tDuration:             pulumi.Int(1),\n\t\t\tPricingCycle:         pulumi.String(\"Month\"),\n\t\t\tBasicAcceleratorName: pulumi.String(\"tf-example-value\"),\n\t\t\tDescription:          pulumi.String(\"tf-example-value\"),\n\t\t\tBandwidthBillingType: pulumi.String(\"BandwidthPackage\"),\n\t\t\tAutoPay:              pulumi.Bool(true),\n\t\t\tAutoUseCoupon:        pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.BasicAccelerator;\nimport com.pulumi.alicloud.ga.BasicAcceleratorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new BasicAccelerator(\"default\", BasicAcceleratorArgs.builder()\n            .duration(1)\n            .pricingCycle(\"Month\")\n            .basicAcceleratorName(\"tf-example-value\")\n            .description(\"tf-example-value\")\n            .bandwidthBillingType(\"BandwidthPackage\")\n            .autoPay(true)\n            .autoUseCoupon(\"true\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ga:BasicAccelerator\n    properties:\n      duration: 1\n      pricingCycle: Month\n      basicAcceleratorName: tf-example-value\n      description: tf-example-value\n      bandwidthBillingType: BandwidthPackage\n      autoPay: true\n      autoUseCoupon: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal Accelerator (GA) Basic Accelerator can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/basicAccelerator:BasicAccelerator example \u003cid\u003e\n```\n\n","properties":{"autoPay":{"type":"boolean","description":"Specifies whether to enable automatic payment. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to enable auto-renewal for the GA Basic Accelerator instance. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"autoRenewDuration":{"type":"integer","description":"The auto-renewal period. Unit: months. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e. **NOTE:** This parameter is required only if \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"autoUseCoupon":{"type":"string","description":"Specifies whether to automatically pay bills by using coupons. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** This parameter is required only if \u003cspan pulumi-lang-nodejs=\"`autoPay`\" pulumi-lang-dotnet=\"`AutoPay`\" pulumi-lang-go=\"`autoPay`\" pulumi-lang-python=\"`auto_pay`\" pulumi-lang-yaml=\"`autoPay`\" pulumi-lang-java=\"`autoPay`\"\u003e`auto_pay`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"bandwidthBillingType":{"type":"string","description":"The bandwidth billing method. Valid values: `BandwidthPackage`, `CDT`, `CDT95`.\n"},"basicAcceleratorName":{"type":"string","description":"The name of the Global Accelerator Basic Accelerator instance.\n"},"crossBorderStatus":{"type":"boolean","description":"Indicates whether cross-border acceleration is enabled. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"description":{"type":"string","description":"The description of the Global Accelerator Basic Accelerator instance.\n"},"duration":{"type":"integer","description":"The subscription duration. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n* If the \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e parameter is set to `Month`, the valid values for the \u003cspan pulumi-lang-nodejs=\"`duration`\" pulumi-lang-dotnet=\"`Duration`\" pulumi-lang-go=\"`duration`\" pulumi-lang-python=\"`duration`\" pulumi-lang-yaml=\"`duration`\" pulumi-lang-java=\"`duration`\"\u003e`duration`\u003c/span\u003e parameter are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n* If the \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e parameter is set to `Year`, the valid values for the \u003cspan pulumi-lang-nodejs=\"`duration`\" pulumi-lang-dotnet=\"`Duration`\" pulumi-lang-go=\"`duration`\" pulumi-lang-python=\"`duration`\" pulumi-lang-yaml=\"`duration`\" pulumi-lang-java=\"`duration`\"\u003e`duration`\u003c/span\u003e parameter are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"paymentType":{"type":"string","description":"The payment type. Default value: `Subscription`. Valid values: `PayAsYouGo`, `Subscription`.\n"},"pricingCycle":{"type":"string","description":"The billing cycle. Default value: `Month`. Valid values: `Month`, `Year`.\n"},"promotionOptionNo":{"type":"string","description":"The code of the coupon. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`promotionOptionNo`\" pulumi-lang-dotnet=\"`PromotionOptionNo`\" pulumi-lang-go=\"`promotionOptionNo`\" pulumi-lang-python=\"`promotion_option_no`\" pulumi-lang-yaml=\"`promotionOptionNo`\" pulumi-lang-java=\"`promotionOptionNo`\"\u003e`promotion_option_no`\u003c/span\u003e takes effect only for accounts registered on the international site (alibabacloud.com).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"status":{"type":"string","description":"The status of the Basic Accelerator instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["paymentType","resourceGroupId","status"],"inputProperties":{"autoPay":{"type":"boolean","description":"Specifies whether to enable automatic payment. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to enable auto-renewal for the GA Basic Accelerator instance. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"autoRenewDuration":{"type":"integer","description":"The auto-renewal period. Unit: months. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e. **NOTE:** This parameter is required only if \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"autoUseCoupon":{"type":"string","description":"Specifies whether to automatically pay bills by using coupons. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** This parameter is required only if \u003cspan pulumi-lang-nodejs=\"`autoPay`\" pulumi-lang-dotnet=\"`AutoPay`\" pulumi-lang-go=\"`autoPay`\" pulumi-lang-python=\"`auto_pay`\" pulumi-lang-yaml=\"`autoPay`\" pulumi-lang-java=\"`autoPay`\"\u003e`auto_pay`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"bandwidthBillingType":{"type":"string","description":"The bandwidth billing method. Valid values: `BandwidthPackage`, `CDT`, `CDT95`.\n","willReplaceOnChanges":true},"basicAcceleratorName":{"type":"string","description":"The name of the Global Accelerator Basic Accelerator instance.\n"},"crossBorderStatus":{"type":"boolean","description":"Indicates whether cross-border acceleration is enabled. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"description":{"type":"string","description":"The description of the Global Accelerator Basic Accelerator instance.\n"},"duration":{"type":"integer","description":"The subscription duration. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n* If the \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e parameter is set to `Month`, the valid values for the \u003cspan pulumi-lang-nodejs=\"`duration`\" pulumi-lang-dotnet=\"`Duration`\" pulumi-lang-go=\"`duration`\" pulumi-lang-python=\"`duration`\" pulumi-lang-yaml=\"`duration`\" pulumi-lang-java=\"`duration`\"\u003e`duration`\u003c/span\u003e parameter are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n* If the \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e parameter is set to `Year`, the valid values for the \u003cspan pulumi-lang-nodejs=\"`duration`\" pulumi-lang-dotnet=\"`Duration`\" pulumi-lang-go=\"`duration`\" pulumi-lang-python=\"`duration`\" pulumi-lang-yaml=\"`duration`\" pulumi-lang-java=\"`duration`\"\u003e`duration`\u003c/span\u003e parameter are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"paymentType":{"type":"string","description":"The payment type. Default value: `Subscription`. Valid values: `PayAsYouGo`, `Subscription`.\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The billing cycle. Default value: `Month`. Valid values: `Month`, `Year`.\n"},"promotionOptionNo":{"type":"string","description":"The code of the coupon. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`promotionOptionNo`\" pulumi-lang-dotnet=\"`PromotionOptionNo`\" pulumi-lang-go=\"`promotionOptionNo`\" pulumi-lang-python=\"`promotion_option_no`\" pulumi-lang-yaml=\"`promotionOptionNo`\" pulumi-lang-java=\"`promotionOptionNo`\"\u003e`promotion_option_no`\u003c/span\u003e takes effect only for accounts registered on the international site (alibabacloud.com).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering BasicAccelerator resources.\n","properties":{"autoPay":{"type":"boolean","description":"Specifies whether to enable automatic payment. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"autoRenew":{"type":"boolean","description":"Specifies whether to enable auto-renewal for the GA Basic Accelerator instance. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"autoRenewDuration":{"type":"integer","description":"The auto-renewal period. Unit: months. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e. **NOTE:** This parameter is required only if \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"autoUseCoupon":{"type":"string","description":"Specifies whether to automatically pay bills by using coupons. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** This parameter is required only if \u003cspan pulumi-lang-nodejs=\"`autoPay`\" pulumi-lang-dotnet=\"`AutoPay`\" pulumi-lang-go=\"`autoPay`\" pulumi-lang-python=\"`auto_pay`\" pulumi-lang-yaml=\"`autoPay`\" pulumi-lang-java=\"`autoPay`\"\u003e`auto_pay`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"bandwidthBillingType":{"type":"string","description":"The bandwidth billing method. Valid values: `BandwidthPackage`, `CDT`, `CDT95`.\n","willReplaceOnChanges":true},"basicAcceleratorName":{"type":"string","description":"The name of the Global Accelerator Basic Accelerator instance.\n"},"crossBorderStatus":{"type":"boolean","description":"Indicates whether cross-border acceleration is enabled. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"description":{"type":"string","description":"The description of the Global Accelerator Basic Accelerator instance.\n"},"duration":{"type":"integer","description":"The subscription duration. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n* If the \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e parameter is set to `Month`, the valid values for the \u003cspan pulumi-lang-nodejs=\"`duration`\" pulumi-lang-dotnet=\"`Duration`\" pulumi-lang-go=\"`duration`\" pulumi-lang-python=\"`duration`\" pulumi-lang-yaml=\"`duration`\" pulumi-lang-java=\"`duration`\"\u003e`duration`\u003c/span\u003e parameter are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n* If the \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e parameter is set to `Year`, the valid values for the \u003cspan pulumi-lang-nodejs=\"`duration`\" pulumi-lang-dotnet=\"`Duration`\" pulumi-lang-go=\"`duration`\" pulumi-lang-python=\"`duration`\" pulumi-lang-yaml=\"`duration`\" pulumi-lang-java=\"`duration`\"\u003e`duration`\u003c/span\u003e parameter are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"paymentType":{"type":"string","description":"The payment type. Default value: `Subscription`. Valid values: `PayAsYouGo`, `Subscription`.\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The billing cycle. Default value: `Month`. Valid values: `Month`, `Year`.\n"},"promotionOptionNo":{"type":"string","description":"The code of the coupon. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`promotionOptionNo`\" pulumi-lang-dotnet=\"`PromotionOptionNo`\" pulumi-lang-go=\"`promotionOptionNo`\" pulumi-lang-python=\"`promotion_option_no`\" pulumi-lang-yaml=\"`promotionOptionNo`\" pulumi-lang-java=\"`promotionOptionNo`\"\u003e`promotion_option_no`\u003c/span\u003e takes effect only for accounts registered on the international site (alibabacloud.com).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.\n"},"status":{"type":"string","description":"The status of the Basic Accelerator instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:ga/basicEndpoint:BasicEndpoint":{"description":"Provides a Global Accelerator (GA) Basic Endpoint resource.\n\nFor information about Global Accelerator (GA) Basic Endpoint and how to use it, see [What is Basic Endpoint](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createbasicendpoint).\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-shenzhen\";\nconst endpointRegion = config.get(\"endpointRegion\") || \"cn-hangzhou\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    vpcId: defaultNetwork.id,\n    name: \"terraform-example\",\n});\nconst defaultEcsNetworkInterface = new alicloud.ecs.EcsNetworkInterface(\"default\", {\n    vswitchId: defaultSwitch.id,\n    securityGroupIds: [defaultSecurityGroup.id],\n});\nconst defaultBasicAccelerator = new alicloud.ga.BasicAccelerator(\"default\", {\n    duration: 1,\n    basicAcceleratorName: \"terraform-example\",\n    description: \"terraform-example\",\n    bandwidthBillingType: \"CDT\",\n    autoUseCoupon: \"true\",\n    autoPay: true,\n});\nconst defaultBasicEndpointGroup = new alicloud.ga.BasicEndpointGroup(\"default\", {\n    acceleratorId: defaultBasicAccelerator.id,\n    endpointGroupRegion: region,\n    basicEndpointGroupName: \"terraform-example\",\n    description: \"terraform-example\",\n});\nconst defaultBasicEndpoint = new alicloud.ga.BasicEndpoint(\"default\", {\n    acceleratorId: defaultBasicAccelerator.id,\n    endpointGroupId: defaultBasicEndpointGroup.id,\n    endpointType: \"ENI\",\n    endpointAddress: defaultEcsNetworkInterface.id,\n    endpointSubAddressType: \"secondary\",\n    endpointSubAddress: \"192.168.0.1\",\n    basicEndpointName: \"terraform-example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-shenzhen\"\nendpoint_region = config.get(\"endpointRegion\")\nif endpoint_region is None:\n    endpoint_region = \"cn-hangzhou\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    vpc_id=default_network.id,\n    name=\"terraform-example\")\ndefault_ecs_network_interface = alicloud.ecs.EcsNetworkInterface(\"default\",\n    vswitch_id=default_switch.id,\n    security_group_ids=[default_security_group.id])\ndefault_basic_accelerator = alicloud.ga.BasicAccelerator(\"default\",\n    duration=1,\n    basic_accelerator_name=\"terraform-example\",\n    description=\"terraform-example\",\n    bandwidth_billing_type=\"CDT\",\n    auto_use_coupon=\"true\",\n    auto_pay=True)\ndefault_basic_endpoint_group = alicloud.ga.BasicEndpointGroup(\"default\",\n    accelerator_id=default_basic_accelerator.id,\n    endpoint_group_region=region,\n    basic_endpoint_group_name=\"terraform-example\",\n    description=\"terraform-example\")\ndefault_basic_endpoint = alicloud.ga.BasicEndpoint(\"default\",\n    accelerator_id=default_basic_accelerator.id,\n    endpoint_group_id=default_basic_endpoint_group.id,\n    endpoint_type=\"ENI\",\n    endpoint_address=default_ecs_network_interface.id,\n    endpoint_sub_address_type=\"secondary\",\n    endpoint_sub_address=\"192.168.0.1\",\n    basic_endpoint_name=\"terraform-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-shenzhen\";\n    var endpointRegion = config.Get(\"endpointRegion\") ?? \"cn-hangzhou\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        Name = \"terraform-example\",\n    });\n\n    var defaultEcsNetworkInterface = new AliCloud.Ecs.EcsNetworkInterface(\"default\", new()\n    {\n        VswitchId = defaultSwitch.Id,\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var defaultBasicAccelerator = new AliCloud.Ga.BasicAccelerator(\"default\", new()\n    {\n        Duration = 1,\n        BasicAcceleratorName = \"terraform-example\",\n        Description = \"terraform-example\",\n        BandwidthBillingType = \"CDT\",\n        AutoUseCoupon = \"true\",\n        AutoPay = true,\n    });\n\n    var defaultBasicEndpointGroup = new AliCloud.Ga.BasicEndpointGroup(\"default\", new()\n    {\n        AcceleratorId = defaultBasicAccelerator.Id,\n        EndpointGroupRegion = region,\n        BasicEndpointGroupName = \"terraform-example\",\n        Description = \"terraform-example\",\n    });\n\n    var defaultBasicEndpoint = new AliCloud.Ga.BasicEndpoint(\"default\", new()\n    {\n        AcceleratorId = defaultBasicAccelerator.Id,\n        EndpointGroupId = defaultBasicEndpointGroup.Id,\n        EndpointType = \"ENI\",\n        EndpointAddress = defaultEcsNetworkInterface.Id,\n        EndpointSubAddressType = \"secondary\",\n        EndpointSubAddress = \"192.168.0.1\",\n        BasicEndpointName = \"terraform-example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-shenzhen\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tendpointRegion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"endpointRegion\"); param != \"\" {\n\t\t\tendpointRegion = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t\tName:  pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcsNetworkInterface, err := ecs.NewEcsNetworkInterface(ctx, \"default\", \u0026ecs.EcsNetworkInterfaceArgs{\n\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBasicAccelerator, err := ga.NewBasicAccelerator(ctx, \"default\", \u0026ga.BasicAcceleratorArgs{\n\t\t\tDuration:             pulumi.Int(1),\n\t\t\tBasicAcceleratorName: pulumi.String(\"terraform-example\"),\n\t\t\tDescription:          pulumi.String(\"terraform-example\"),\n\t\t\tBandwidthBillingType: pulumi.String(\"CDT\"),\n\t\t\tAutoUseCoupon:        pulumi.String(\"true\"),\n\t\t\tAutoPay:              pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBasicEndpointGroup, err := ga.NewBasicEndpointGroup(ctx, \"default\", \u0026ga.BasicEndpointGroupArgs{\n\t\t\tAcceleratorId:          defaultBasicAccelerator.ID(),\n\t\t\tEndpointGroupRegion:    pulumi.String(region),\n\t\t\tBasicEndpointGroupName: pulumi.String(\"terraform-example\"),\n\t\t\tDescription:            pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewBasicEndpoint(ctx, \"default\", \u0026ga.BasicEndpointArgs{\n\t\t\tAcceleratorId:          defaultBasicAccelerator.ID(),\n\t\t\tEndpointGroupId:        defaultBasicEndpointGroup.ID(),\n\t\t\tEndpointType:           pulumi.String(\"ENI\"),\n\t\t\tEndpointAddress:        defaultEcsNetworkInterface.ID(),\n\t\t\tEndpointSubAddressType: pulumi.String(\"secondary\"),\n\t\t\tEndpointSubAddress:     pulumi.String(\"192.168.0.1\"),\n\t\t\tBasicEndpointName:      pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterface;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfaceArgs;\nimport com.pulumi.alicloud.ga.BasicAccelerator;\nimport com.pulumi.alicloud.ga.BasicAcceleratorArgs;\nimport com.pulumi.alicloud.ga.BasicEndpointGroup;\nimport com.pulumi.alicloud.ga.BasicEndpointGroupArgs;\nimport com.pulumi.alicloud.ga.BasicEndpoint;\nimport com.pulumi.alicloud.ga.BasicEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-shenzhen\");\n        final var endpointRegion = config.get(\"endpointRegion\").orElse(\"cn-hangzhou\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .name(\"terraform-example\")\n            .build());\n\n        var defaultEcsNetworkInterface = new EcsNetworkInterface(\"defaultEcsNetworkInterface\", EcsNetworkInterfaceArgs.builder()\n            .vswitchId(defaultSwitch.id())\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n        var defaultBasicAccelerator = new BasicAccelerator(\"defaultBasicAccelerator\", BasicAcceleratorArgs.builder()\n            .duration(1)\n            .basicAcceleratorName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .bandwidthBillingType(\"CDT\")\n            .autoUseCoupon(\"true\")\n            .autoPay(true)\n            .build());\n\n        var defaultBasicEndpointGroup = new BasicEndpointGroup(\"defaultBasicEndpointGroup\", BasicEndpointGroupArgs.builder()\n            .acceleratorId(defaultBasicAccelerator.id())\n            .endpointGroupRegion(region)\n            .basicEndpointGroupName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultBasicEndpoint = new BasicEndpoint(\"defaultBasicEndpoint\", BasicEndpointArgs.builder()\n            .acceleratorId(defaultBasicAccelerator.id())\n            .endpointGroupId(defaultBasicEndpointGroup.id())\n            .endpointType(\"ENI\")\n            .endpointAddress(defaultEcsNetworkInterface.id())\n            .endpointSubAddressType(\"secondary\")\n            .endpointSubAddress(\"192.168.0.1\")\n            .basicEndpointName(\"terraform-example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-shenzhen\n  endpointRegion:\n    type: string\n    default: cn-hangzhou\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      name: terraform-example\n  defaultEcsNetworkInterface:\n    type: alicloud:ecs:EcsNetworkInterface\n    name: default\n    properties:\n      vswitchId: ${defaultSwitch.id}\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n  defaultBasicAccelerator:\n    type: alicloud:ga:BasicAccelerator\n    name: default\n    properties:\n      duration: 1\n      basicAcceleratorName: terraform-example\n      description: terraform-example\n      bandwidthBillingType: CDT\n      autoUseCoupon: 'true'\n      autoPay: true\n  defaultBasicEndpointGroup:\n    type: alicloud:ga:BasicEndpointGroup\n    name: default\n    properties:\n      acceleratorId: ${defaultBasicAccelerator.id}\n      endpointGroupRegion: ${region}\n      basicEndpointGroupName: terraform-example\n      description: terraform-example\n  defaultBasicEndpoint:\n    type: alicloud:ga:BasicEndpoint\n    name: default\n    properties:\n      acceleratorId: ${defaultBasicAccelerator.id}\n      endpointGroupId: ${defaultBasicEndpointGroup.id}\n      endpointType: ENI\n      endpointAddress: ${defaultEcsNetworkInterface.id}\n      endpointSubAddressType: secondary\n      endpointSubAddress: 192.168.0.1\n      basicEndpointName: terraform-example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal Accelerator (GA) Basic Endpoint can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/basicEndpoint:BasicEndpoint example \u003cendpoint_group_id\u003e:\u003cendpoint_id\u003e\n```\n\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the Basic GA instance.\n"},"basicEndpointName":{"type":"string","description":"The name of the Basic Endpoint.\n"},"endpointAddress":{"type":"string","description":"The address of the Basic Endpoint.\n"},"endpointGroupId":{"type":"string","description":"The ID of the Basic Endpoint Group.\n"},"endpointId":{"type":"string","description":"The ID of the Basic Endpoint.\n"},"endpointSubAddress":{"type":"string","description":"The sub address of the Basic Endpoint.\n"},"endpointSubAddressType":{"type":"string","description":"The sub address type of the Basic Endpoint. Valid values: \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`secondary`\" pulumi-lang-dotnet=\"`Secondary`\" pulumi-lang-go=\"`secondary`\" pulumi-lang-python=\"`secondary`\" pulumi-lang-yaml=\"`secondary`\" pulumi-lang-java=\"`secondary`\"\u003e`secondary`\u003c/span\u003e.\n"},"endpointType":{"type":"string","description":"The type of the Basic Endpoint. Valid values: `ENI`, `SLB`, `ECS` and `NLB`.\n"},"endpointZoneId":{"type":"string","description":"The zone id of the Basic Endpoint.\n"},"status":{"type":"string","description":"The status of the Basic Endpoint.\n"}},"required":["acceleratorId","endpointAddress","endpointGroupId","endpointId","endpointType","status"],"inputProperties":{"acceleratorId":{"type":"string","description":"The ID of the Basic GA instance.\n","willReplaceOnChanges":true},"basicEndpointName":{"type":"string","description":"The name of the Basic Endpoint.\n"},"endpointAddress":{"type":"string","description":"The address of the Basic Endpoint.\n","willReplaceOnChanges":true},"endpointGroupId":{"type":"string","description":"The ID of the Basic Endpoint Group.\n","willReplaceOnChanges":true},"endpointSubAddress":{"type":"string","description":"The sub address of the Basic Endpoint.\n","willReplaceOnChanges":true},"endpointSubAddressType":{"type":"string","description":"The sub address type of the Basic Endpoint. Valid values: \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`secondary`\" pulumi-lang-dotnet=\"`Secondary`\" pulumi-lang-go=\"`secondary`\" pulumi-lang-python=\"`secondary`\" pulumi-lang-yaml=\"`secondary`\" pulumi-lang-java=\"`secondary`\"\u003e`secondary`\u003c/span\u003e.\n","willReplaceOnChanges":true},"endpointType":{"type":"string","description":"The type of the Basic Endpoint. Valid values: `ENI`, `SLB`, `ECS` and `NLB`.\n","willReplaceOnChanges":true},"endpointZoneId":{"type":"string","description":"The zone id of the Basic Endpoint.\n","willReplaceOnChanges":true}},"requiredInputs":["acceleratorId","endpointAddress","endpointGroupId","endpointType"],"stateInputs":{"description":"Input properties used for looking up and filtering BasicEndpoint resources.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the Basic GA instance.\n","willReplaceOnChanges":true},"basicEndpointName":{"type":"string","description":"The name of the Basic Endpoint.\n"},"endpointAddress":{"type":"string","description":"The address of the Basic Endpoint.\n","willReplaceOnChanges":true},"endpointGroupId":{"type":"string","description":"The ID of the Basic Endpoint Group.\n","willReplaceOnChanges":true},"endpointId":{"type":"string","description":"The ID of the Basic Endpoint.\n"},"endpointSubAddress":{"type":"string","description":"The sub address of the Basic Endpoint.\n","willReplaceOnChanges":true},"endpointSubAddressType":{"type":"string","description":"The sub address type of the Basic Endpoint. Valid values: \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`secondary`\" pulumi-lang-dotnet=\"`Secondary`\" pulumi-lang-go=\"`secondary`\" pulumi-lang-python=\"`secondary`\" pulumi-lang-yaml=\"`secondary`\" pulumi-lang-java=\"`secondary`\"\u003e`secondary`\u003c/span\u003e.\n","willReplaceOnChanges":true},"endpointType":{"type":"string","description":"The type of the Basic Endpoint. Valid values: `ENI`, `SLB`, `ECS` and `NLB`.\n","willReplaceOnChanges":true},"endpointZoneId":{"type":"string","description":"The zone id of the Basic Endpoint.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Basic Endpoint.\n"}},"type":"object"}},"alicloud:ga/basicEndpointGroup:BasicEndpointGroup":{"description":"Provides a Global Accelerator (GA) Basic Endpoint Group resource.\n\nFor information about Global Accelerator (GA) Basic Endpoint Group and how to use it, see [What is Basic Endpoint Group](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createbasicendpointgroup).\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst endpointGroupRegion = config.get(\"endpointGroupRegion\") || \"cn-beijing\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"default\", {\n    loadBalancerName: \"terraform-example\",\n    vswitchId: defaultSwitch.id,\n    loadBalancerSpec: \"slb.s2.small\",\n    addressType: \"intranet\",\n});\nconst defaultBasicAccelerator = new alicloud.ga.BasicAccelerator(\"default\", {\n    duration: 1,\n    basicAcceleratorName: \"terraform-example\",\n    description: \"terraform-example\",\n    bandwidthBillingType: \"CDT\",\n    autoUseCoupon: \"true\",\n    autoPay: true,\n});\nconst defaultBasicEndpointGroup = new alicloud.ga.BasicEndpointGroup(\"default\", {\n    acceleratorId: defaultBasicAccelerator.id,\n    endpointGroupRegion: endpointGroupRegion,\n    endpointType: \"SLB\",\n    endpointAddress: defaultApplicationLoadBalancer.id,\n    endpointSubAddress: \"192.168.0.1\",\n    basicEndpointGroupName: \"terraform-example\",\n    description: \"terraform-example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\nendpoint_group_region = config.get(\"endpointGroupRegion\")\nif endpoint_group_region is None:\n    endpoint_group_region = \"cn-beijing\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"default\",\n    load_balancer_name=\"terraform-example\",\n    vswitch_id=default_switch.id,\n    load_balancer_spec=\"slb.s2.small\",\n    address_type=\"intranet\")\ndefault_basic_accelerator = alicloud.ga.BasicAccelerator(\"default\",\n    duration=1,\n    basic_accelerator_name=\"terraform-example\",\n    description=\"terraform-example\",\n    bandwidth_billing_type=\"CDT\",\n    auto_use_coupon=\"true\",\n    auto_pay=True)\ndefault_basic_endpoint_group = alicloud.ga.BasicEndpointGroup(\"default\",\n    accelerator_id=default_basic_accelerator.id,\n    endpoint_group_region=endpoint_group_region,\n    endpoint_type=\"SLB\",\n    endpoint_address=default_application_load_balancer.id,\n    endpoint_sub_address=\"192.168.0.1\",\n    basic_endpoint_group_name=\"terraform-example\",\n    description=\"terraform-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var endpointGroupRegion = config.Get(\"endpointGroupRegion\") ?? \"cn-beijing\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = \"terraform-example\",\n        VswitchId = defaultSwitch.Id,\n        LoadBalancerSpec = \"slb.s2.small\",\n        AddressType = \"intranet\",\n    });\n\n    var defaultBasicAccelerator = new AliCloud.Ga.BasicAccelerator(\"default\", new()\n    {\n        Duration = 1,\n        BasicAcceleratorName = \"terraform-example\",\n        Description = \"terraform-example\",\n        BandwidthBillingType = \"CDT\",\n        AutoUseCoupon = \"true\",\n        AutoPay = true,\n    });\n\n    var defaultBasicEndpointGroup = new AliCloud.Ga.BasicEndpointGroup(\"default\", new()\n    {\n        AcceleratorId = defaultBasicAccelerator.Id,\n        EndpointGroupRegion = endpointGroupRegion,\n        EndpointType = \"SLB\",\n        EndpointAddress = defaultApplicationLoadBalancer.Id,\n        EndpointSubAddress = \"192.168.0.1\",\n        BasicEndpointGroupName = \"terraform-example\",\n        Description = \"terraform-example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tendpointGroupRegion := \"cn-beijing\"\n\t\tif param := cfg.Get(\"endpointGroupRegion\"); param != \"\" {\n\t\t\tendpointGroupRegion = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplicationLoadBalancer, err := slb.NewApplicationLoadBalancer(ctx, \"default\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(\"terraform-example\"),\n\t\t\tVswitchId:        defaultSwitch.ID(),\n\t\t\tLoadBalancerSpec: pulumi.String(\"slb.s2.small\"),\n\t\t\tAddressType:      pulumi.String(\"intranet\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBasicAccelerator, err := ga.NewBasicAccelerator(ctx, \"default\", \u0026ga.BasicAcceleratorArgs{\n\t\t\tDuration:             pulumi.Int(1),\n\t\t\tBasicAcceleratorName: pulumi.String(\"terraform-example\"),\n\t\t\tDescription:          pulumi.String(\"terraform-example\"),\n\t\t\tBandwidthBillingType: pulumi.String(\"CDT\"),\n\t\t\tAutoUseCoupon:        pulumi.String(\"true\"),\n\t\t\tAutoPay:              pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewBasicEndpointGroup(ctx, \"default\", \u0026ga.BasicEndpointGroupArgs{\n\t\t\tAcceleratorId:          defaultBasicAccelerator.ID(),\n\t\t\tEndpointGroupRegion:    pulumi.String(endpointGroupRegion),\n\t\t\tEndpointType:           pulumi.String(\"SLB\"),\n\t\t\tEndpointAddress:        defaultApplicationLoadBalancer.ID(),\n\t\t\tEndpointSubAddress:     pulumi.String(\"192.168.0.1\"),\n\t\t\tBasicEndpointGroupName: pulumi.String(\"terraform-example\"),\n\t\t\tDescription:            pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.ga.BasicAccelerator;\nimport com.pulumi.alicloud.ga.BasicAcceleratorArgs;\nimport com.pulumi.alicloud.ga.BasicEndpointGroup;\nimport com.pulumi.alicloud.ga.BasicEndpointGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var endpointGroupRegion = config.get(\"endpointGroupRegion\").orElse(\"cn-beijing\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultApplicationLoadBalancer = new ApplicationLoadBalancer(\"defaultApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(\"terraform-example\")\n            .vswitchId(defaultSwitch.id())\n            .loadBalancerSpec(\"slb.s2.small\")\n            .addressType(\"intranet\")\n            .build());\n\n        var defaultBasicAccelerator = new BasicAccelerator(\"defaultBasicAccelerator\", BasicAcceleratorArgs.builder()\n            .duration(1)\n            .basicAcceleratorName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .bandwidthBillingType(\"CDT\")\n            .autoUseCoupon(\"true\")\n            .autoPay(true)\n            .build());\n\n        var defaultBasicEndpointGroup = new BasicEndpointGroup(\"defaultBasicEndpointGroup\", BasicEndpointGroupArgs.builder()\n            .acceleratorId(defaultBasicAccelerator.id())\n            .endpointGroupRegion(endpointGroupRegion)\n            .endpointType(\"SLB\")\n            .endpointAddress(defaultApplicationLoadBalancer.id())\n            .endpointSubAddress(\"192.168.0.1\")\n            .basicEndpointGroupName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\n  endpointGroupRegion:\n    type: string\n    default: cn-beijing\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultApplicationLoadBalancer:\n    type: alicloud:slb:ApplicationLoadBalancer\n    name: default\n    properties:\n      loadBalancerName: terraform-example\n      vswitchId: ${defaultSwitch.id}\n      loadBalancerSpec: slb.s2.small\n      addressType: intranet\n  defaultBasicAccelerator:\n    type: alicloud:ga:BasicAccelerator\n    name: default\n    properties:\n      duration: 1\n      basicAcceleratorName: terraform-example\n      description: terraform-example\n      bandwidthBillingType: CDT\n      autoUseCoupon: 'true'\n      autoPay: true\n  defaultBasicEndpointGroup:\n    type: alicloud:ga:BasicEndpointGroup\n    name: default\n    properties:\n      acceleratorId: ${defaultBasicAccelerator.id}\n      endpointGroupRegion: ${endpointGroupRegion}\n      endpointType: SLB\n      endpointAddress: ${defaultApplicationLoadBalancer.id}\n      endpointSubAddress: 192.168.0.1\n      basicEndpointGroupName: terraform-example\n      description: terraform-example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal Accelerator (GA) Basic Endpoint Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/basicEndpointGroup:BasicEndpointGroup example \u003cid\u003e\n```\n\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the basic GA instance.\n"},"basicEndpointGroupName":{"type":"string","description":"The name of the endpoint group. The \u003cspan pulumi-lang-nodejs=\"`basicEndpointGroupName`\" pulumi-lang-dotnet=\"`BasicEndpointGroupName`\" pulumi-lang-go=\"`basicEndpointGroupName`\" pulumi-lang-python=\"`basic_endpoint_group_name`\" pulumi-lang-yaml=\"`basicEndpointGroupName`\" pulumi-lang-java=\"`basicEndpointGroupName`\"\u003e`basic_endpoint_group_name`\u003c/span\u003e must be 2 to 128 characters in length, and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter.\n"},"description":{"type":"string","description":"The description of the endpoint group. The \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e cannot exceed 256 characters in length and cannot contain http:// or https://.\n"},"endpointAddress":{"type":"string","description":"The address of the endpoint.\n"},"endpointGroupRegion":{"type":"string","description":"The ID of the region where you want to create the endpoint group.\n"},"endpointSubAddress":{"type":"string","description":"The sub address of the endpoint.\n"},"endpointType":{"type":"string","description":"The type of the endpoint. Valid values: `ENI`, `SLB` and `ECS`.\n"},"status":{"type":"string","description":"The status of the Basic Endpoint Group.\n"}},"required":["acceleratorId","endpointAddress","endpointGroupRegion","endpointSubAddress","endpointType","status"],"inputProperties":{"acceleratorId":{"type":"string","description":"The ID of the basic GA instance.\n","willReplaceOnChanges":true},"basicEndpointGroupName":{"type":"string","description":"The name of the endpoint group. The \u003cspan pulumi-lang-nodejs=\"`basicEndpointGroupName`\" pulumi-lang-dotnet=\"`BasicEndpointGroupName`\" pulumi-lang-go=\"`basicEndpointGroupName`\" pulumi-lang-python=\"`basic_endpoint_group_name`\" pulumi-lang-yaml=\"`basicEndpointGroupName`\" pulumi-lang-java=\"`basicEndpointGroupName`\"\u003e`basic_endpoint_group_name`\u003c/span\u003e must be 2 to 128 characters in length, and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter.\n"},"description":{"type":"string","description":"The description of the endpoint group. The \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e cannot exceed 256 characters in length and cannot contain http:// or https://.\n"},"endpointAddress":{"type":"string","description":"The address of the endpoint.\n","willReplaceOnChanges":true},"endpointGroupRegion":{"type":"string","description":"The ID of the region where you want to create the endpoint group.\n","willReplaceOnChanges":true},"endpointSubAddress":{"type":"string","description":"The sub address of the endpoint.\n","willReplaceOnChanges":true},"endpointType":{"type":"string","description":"The type of the endpoint. Valid values: `ENI`, `SLB` and `ECS`.\n","willReplaceOnChanges":true}},"requiredInputs":["acceleratorId","endpointGroupRegion"],"stateInputs":{"description":"Input properties used for looking up and filtering BasicEndpointGroup resources.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the basic GA instance.\n","willReplaceOnChanges":true},"basicEndpointGroupName":{"type":"string","description":"The name of the endpoint group. The \u003cspan pulumi-lang-nodejs=\"`basicEndpointGroupName`\" pulumi-lang-dotnet=\"`BasicEndpointGroupName`\" pulumi-lang-go=\"`basicEndpointGroupName`\" pulumi-lang-python=\"`basic_endpoint_group_name`\" pulumi-lang-yaml=\"`basicEndpointGroupName`\" pulumi-lang-java=\"`basicEndpointGroupName`\"\u003e`basic_endpoint_group_name`\u003c/span\u003e must be 2 to 128 characters in length, and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter.\n"},"description":{"type":"string","description":"The description of the endpoint group. The \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e cannot exceed 256 characters in length and cannot contain http:// or https://.\n"},"endpointAddress":{"type":"string","description":"The address of the endpoint.\n","willReplaceOnChanges":true},"endpointGroupRegion":{"type":"string","description":"The ID of the region where you want to create the endpoint group.\n","willReplaceOnChanges":true},"endpointSubAddress":{"type":"string","description":"The sub address of the endpoint.\n","willReplaceOnChanges":true},"endpointType":{"type":"string","description":"The type of the endpoint. Valid values: `ENI`, `SLB` and `ECS`.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Basic Endpoint Group.\n"}},"type":"object"}},"alicloud:ga/basicIpSet:BasicIpSet":{"description":"Provides a Global Accelerator (GA) Basic Ip Set resource.\n\nFor information about Global Accelerator (GA) Basic Ip Set and how to use it, see [What is Basic Ip Set](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createbasicipset).\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst _default = new alicloud.ga.BasicAccelerator(\"default\", {\n    duration: 1,\n    pricingCycle: \"Month\",\n    bandwidthBillingType: \"CDT\",\n    autoPay: true,\n    autoUseCoupon: \"true\",\n    autoRenew: false,\n    autoRenewDuration: 1,\n});\nconst defaultBasicIpSet = new alicloud.ga.BasicIpSet(\"default\", {\n    acceleratorId: _default.id,\n    accelerateRegionId: region,\n    ispType: \"BGP\",\n    bandwidth: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\ndefault = alicloud.ga.BasicAccelerator(\"default\",\n    duration=1,\n    pricing_cycle=\"Month\",\n    bandwidth_billing_type=\"CDT\",\n    auto_pay=True,\n    auto_use_coupon=\"true\",\n    auto_renew=False,\n    auto_renew_duration=1)\ndefault_basic_ip_set = alicloud.ga.BasicIpSet(\"default\",\n    accelerator_id=default.id,\n    accelerate_region_id=region,\n    isp_type=\"BGP\",\n    bandwidth=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var @default = new AliCloud.Ga.BasicAccelerator(\"default\", new()\n    {\n        Duration = 1,\n        PricingCycle = \"Month\",\n        BandwidthBillingType = \"CDT\",\n        AutoPay = true,\n        AutoUseCoupon = \"true\",\n        AutoRenew = false,\n        AutoRenewDuration = 1,\n    });\n\n    var defaultBasicIpSet = new AliCloud.Ga.BasicIpSet(\"default\", new()\n    {\n        AcceleratorId = @default.Id,\n        AccelerateRegionId = region,\n        IspType = \"BGP\",\n        Bandwidth = 5,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\t_default, err := ga.NewBasicAccelerator(ctx, \"default\", \u0026ga.BasicAcceleratorArgs{\n\t\t\tDuration:             pulumi.Int(1),\n\t\t\tPricingCycle:         pulumi.String(\"Month\"),\n\t\t\tBandwidthBillingType: pulumi.String(\"CDT\"),\n\t\t\tAutoPay:              pulumi.Bool(true),\n\t\t\tAutoUseCoupon:        pulumi.String(\"true\"),\n\t\t\tAutoRenew:            pulumi.Bool(false),\n\t\t\tAutoRenewDuration:    pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewBasicIpSet(ctx, \"default\", \u0026ga.BasicIpSetArgs{\n\t\t\tAcceleratorId:      _default.ID(),\n\t\t\tAccelerateRegionId: pulumi.String(region),\n\t\t\tIspType:            pulumi.String(\"BGP\"),\n\t\t\tBandwidth:          pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.BasicAccelerator;\nimport com.pulumi.alicloud.ga.BasicAcceleratorArgs;\nimport com.pulumi.alicloud.ga.BasicIpSet;\nimport com.pulumi.alicloud.ga.BasicIpSetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        var default_ = new BasicAccelerator(\"default\", BasicAcceleratorArgs.builder()\n            .duration(1)\n            .pricingCycle(\"Month\")\n            .bandwidthBillingType(\"CDT\")\n            .autoPay(true)\n            .autoUseCoupon(\"true\")\n            .autoRenew(false)\n            .autoRenewDuration(1)\n            .build());\n\n        var defaultBasicIpSet = new BasicIpSet(\"defaultBasicIpSet\", BasicIpSetArgs.builder()\n            .acceleratorId(default_.id())\n            .accelerateRegionId(region)\n            .ispType(\"BGP\")\n            .bandwidth(5)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\nresources:\n  default:\n    type: alicloud:ga:BasicAccelerator\n    properties:\n      duration: 1\n      pricingCycle: Month\n      bandwidthBillingType: CDT\n      autoPay: true\n      autoUseCoupon: 'true'\n      autoRenew: false\n      autoRenewDuration: 1\n  defaultBasicIpSet:\n    type: alicloud:ga:BasicIpSet\n    name: default\n    properties:\n      acceleratorId: ${default.id}\n      accelerateRegionId: ${region}\n      ispType: BGP\n      bandwidth: '5'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal Accelerator (GA) Basic Ip Set can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/basicIpSet:BasicIpSet example \u003cid\u003e\n```\n\n","properties":{"accelerateRegionId":{"type":"string","description":"The ID of the acceleration region.\n"},"acceleratorId":{"type":"string","description":"The ID of the basic GA instance.\n"},"bandwidth":{"type":"integer","description":"The bandwidth of the acceleration region. Unit: Mbit/s.\n"},"ispType":{"type":"string","description":"The line type of the elastic IP address (EIP) in the acceleration region. Default value: `BGP`. Valid values: `BGP`, `BGP_PRO`, `ChinaTelecom`, `ChinaUnicom`, `ChinaMobile`, `ChinaTelecom_L2`, `ChinaUnicom_L2`, `ChinaMobile_L2`.\n"},"status":{"type":"string","description":"The status of the Basic Ip Set instance.\n"}},"required":["accelerateRegionId","acceleratorId","bandwidth","ispType","status"],"inputProperties":{"accelerateRegionId":{"type":"string","description":"The ID of the acceleration region.\n","willReplaceOnChanges":true},"acceleratorId":{"type":"string","description":"The ID of the basic GA instance.\n","willReplaceOnChanges":true},"bandwidth":{"type":"integer","description":"The bandwidth of the acceleration region. Unit: Mbit/s.\n"},"ispType":{"type":"string","description":"The line type of the elastic IP address (EIP) in the acceleration region. Default value: `BGP`. Valid values: `BGP`, `BGP_PRO`, `ChinaTelecom`, `ChinaUnicom`, `ChinaMobile`, `ChinaTelecom_L2`, `ChinaUnicom_L2`, `ChinaMobile_L2`.\n","willReplaceOnChanges":true}},"requiredInputs":["accelerateRegionId","acceleratorId"],"stateInputs":{"description":"Input properties used for looking up and filtering BasicIpSet resources.\n","properties":{"accelerateRegionId":{"type":"string","description":"The ID of the acceleration region.\n","willReplaceOnChanges":true},"acceleratorId":{"type":"string","description":"The ID of the basic GA instance.\n","willReplaceOnChanges":true},"bandwidth":{"type":"integer","description":"The bandwidth of the acceleration region. Unit: Mbit/s.\n"},"ispType":{"type":"string","description":"The line type of the elastic IP address (EIP) in the acceleration region. Default value: `BGP`. Valid values: `BGP`, `BGP_PRO`, `ChinaTelecom`, `ChinaUnicom`, `ChinaMobile`, `ChinaTelecom_L2`, `ChinaUnicom_L2`, `ChinaMobile_L2`.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Basic Ip Set instance.\n"}},"type":"object"}},"alicloud:ga/customRoutingEndpoint:CustomRoutingEndpoint":{"description":"Provides a Global Accelerator (GA) Custom Routing Endpoint resource.\n\nFor information about Global Accelerator (GA) Custom Routing Endpoint and how to use it, see [What is Custom Routing Endpoint](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createcustomroutingendpoints).\n\n\u003e **NOTE:** Available since v1.197.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultAccelerator = new alicloud.ga.Accelerator(\"default\", {\n    duration: 1,\n    autoUseCoupon: true,\n    spec: \"1\",\n});\nconst defaultBandwidthPackage = new alicloud.ga.BandwidthPackage(\"default\", {\n    bandwidth: 100,\n    type: \"Basic\",\n    bandwidthType: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    billingType: \"PayBy95\",\n    ratio: 30,\n});\nconst defaultBandwidthPackageAttachment = new alicloud.ga.BandwidthPackageAttachment(\"default\", {\n    acceleratorId: defaultAccelerator.id,\n    bandwidthPackageId: defaultBandwidthPackage.id,\n});\nconst defaultListener = new alicloud.ga.Listener(\"default\", {\n    acceleratorId: defaultBandwidthPackageAttachment.acceleratorId,\n    listenerType: \"CustomRouting\",\n    portRanges: [{\n        fromPort: 10000,\n        toPort: 16000,\n    }],\n});\nconst defaultCustomRoutingEndpointGroup = new alicloud.ga.CustomRoutingEndpointGroup(\"default\", {\n    acceleratorId: defaultListener.acceleratorId,\n    listenerId: defaultListener.id,\n    endpointGroupRegion: region,\n    customRoutingEndpointGroupName: \"terraform-example\",\n    description: \"terraform-example\",\n});\nconst defaultCustomRoutingEndpoint = new alicloud.ga.CustomRoutingEndpoint(\"default\", {\n    endpointGroupId: defaultCustomRoutingEndpointGroup.id,\n    endpoint: defaultSwitch.id,\n    type: \"PrivateSubNet\",\n    trafficToEndpointPolicy: \"DenyAll\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_accelerator = alicloud.ga.Accelerator(\"default\",\n    duration=1,\n    auto_use_coupon=True,\n    spec=\"1\")\ndefault_bandwidth_package = alicloud.ga.BandwidthPackage(\"default\",\n    bandwidth=100,\n    type=\"Basic\",\n    bandwidth_type=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    billing_type=\"PayBy95\",\n    ratio=30)\ndefault_bandwidth_package_attachment = alicloud.ga.BandwidthPackageAttachment(\"default\",\n    accelerator_id=default_accelerator.id,\n    bandwidth_package_id=default_bandwidth_package.id)\ndefault_listener = alicloud.ga.Listener(\"default\",\n    accelerator_id=default_bandwidth_package_attachment.accelerator_id,\n    listener_type=\"CustomRouting\",\n    port_ranges=[{\n        \"from_port\": 10000,\n        \"to_port\": 16000,\n    }])\ndefault_custom_routing_endpoint_group = alicloud.ga.CustomRoutingEndpointGroup(\"default\",\n    accelerator_id=default_listener.accelerator_id,\n    listener_id=default_listener.id,\n    endpoint_group_region=region,\n    custom_routing_endpoint_group_name=\"terraform-example\",\n    description=\"terraform-example\")\ndefault_custom_routing_endpoint = alicloud.ga.CustomRoutingEndpoint(\"default\",\n    endpoint_group_id=default_custom_routing_endpoint_group.id,\n    endpoint=default_switch.id,\n    type=\"PrivateSubNet\",\n    traffic_to_endpoint_policy=\"DenyAll\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultAccelerator = new AliCloud.Ga.Accelerator(\"default\", new()\n    {\n        Duration = 1,\n        AutoUseCoupon = true,\n        Spec = \"1\",\n    });\n\n    var defaultBandwidthPackage = new AliCloud.Ga.BandwidthPackage(\"default\", new()\n    {\n        Bandwidth = 100,\n        Type = \"Basic\",\n        BandwidthType = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        BillingType = \"PayBy95\",\n        Ratio = 30,\n    });\n\n    var defaultBandwidthPackageAttachment = new AliCloud.Ga.BandwidthPackageAttachment(\"default\", new()\n    {\n        AcceleratorId = defaultAccelerator.Id,\n        BandwidthPackageId = defaultBandwidthPackage.Id,\n    });\n\n    var defaultListener = new AliCloud.Ga.Listener(\"default\", new()\n    {\n        AcceleratorId = defaultBandwidthPackageAttachment.AcceleratorId,\n        ListenerType = \"CustomRouting\",\n        PortRanges = new[]\n        {\n            new AliCloud.Ga.Inputs.ListenerPortRangeArgs\n            {\n                FromPort = 10000,\n                ToPort = 16000,\n            },\n        },\n    });\n\n    var defaultCustomRoutingEndpointGroup = new AliCloud.Ga.CustomRoutingEndpointGroup(\"default\", new()\n    {\n        AcceleratorId = defaultListener.AcceleratorId,\n        ListenerId = defaultListener.Id,\n        EndpointGroupRegion = region,\n        CustomRoutingEndpointGroupName = \"terraform-example\",\n        Description = \"terraform-example\",\n    });\n\n    var defaultCustomRoutingEndpoint = new AliCloud.Ga.CustomRoutingEndpoint(\"default\", new()\n    {\n        EndpointGroupId = defaultCustomRoutingEndpointGroup.Id,\n        Endpoint = defaultSwitch.Id,\n        Type = \"PrivateSubNet\",\n        TrafficToEndpointPolicy = \"DenyAll\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAccelerator, err := ga.NewAccelerator(ctx, \"default\", \u0026ga.AcceleratorArgs{\n\t\t\tDuration:      pulumi.Int(1),\n\t\t\tAutoUseCoupon: pulumi.Bool(true),\n\t\t\tSpec:          pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackage, err := ga.NewBandwidthPackage(ctx, \"default\", \u0026ga.BandwidthPackageArgs{\n\t\t\tBandwidth:     pulumi.Int(100),\n\t\t\tType:          pulumi.String(\"Basic\"),\n\t\t\tBandwidthType: pulumi.String(\"Basic\"),\n\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\tBillingType:   pulumi.String(\"PayBy95\"),\n\t\t\tRatio:         pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackageAttachment, err := ga.NewBandwidthPackageAttachment(ctx, \"default\", \u0026ga.BandwidthPackageAttachmentArgs{\n\t\t\tAcceleratorId:      defaultAccelerator.ID(),\n\t\t\tBandwidthPackageId: defaultBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultListener, err := ga.NewListener(ctx, \"default\", \u0026ga.ListenerArgs{\n\t\t\tAcceleratorId: defaultBandwidthPackageAttachment.AcceleratorId,\n\t\t\tListenerType:  pulumi.String(\"CustomRouting\"),\n\t\t\tPortRanges: ga.ListenerPortRangeArray{\n\t\t\t\t\u0026ga.ListenerPortRangeArgs{\n\t\t\t\t\tFromPort: pulumi.Int(10000),\n\t\t\t\t\tToPort:   pulumi.Int(16000),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCustomRoutingEndpointGroup, err := ga.NewCustomRoutingEndpointGroup(ctx, \"default\", \u0026ga.CustomRoutingEndpointGroupArgs{\n\t\t\tAcceleratorId:                  defaultListener.AcceleratorId,\n\t\t\tListenerId:                     defaultListener.ID(),\n\t\t\tEndpointGroupRegion:            pulumi.String(region),\n\t\t\tCustomRoutingEndpointGroupName: pulumi.String(\"terraform-example\"),\n\t\t\tDescription:                    pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewCustomRoutingEndpoint(ctx, \"default\", \u0026ga.CustomRoutingEndpointArgs{\n\t\t\tEndpointGroupId:         defaultCustomRoutingEndpointGroup.ID(),\n\t\t\tEndpoint:                defaultSwitch.ID(),\n\t\t\tType:                    pulumi.String(\"PrivateSubNet\"),\n\t\t\tTrafficToEndpointPolicy: pulumi.String(\"DenyAll\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ga.Accelerator;\nimport com.pulumi.alicloud.ga.AcceleratorArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackage;\nimport com.pulumi.alicloud.ga.BandwidthPackageArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.ga.Listener;\nimport com.pulumi.alicloud.ga.ListenerArgs;\nimport com.pulumi.alicloud.ga.inputs.ListenerPortRangeArgs;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpointGroup;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpointGroupArgs;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpoint;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultAccelerator = new Accelerator(\"defaultAccelerator\", AcceleratorArgs.builder()\n            .duration(1)\n            .autoUseCoupon(true)\n            .spec(\"1\")\n            .build());\n\n        var defaultBandwidthPackage = new BandwidthPackage(\"defaultBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(100)\n            .type(\"Basic\")\n            .bandwidthType(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .billingType(\"PayBy95\")\n            .ratio(30)\n            .build());\n\n        var defaultBandwidthPackageAttachment = new BandwidthPackageAttachment(\"defaultBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .acceleratorId(defaultAccelerator.id())\n            .bandwidthPackageId(defaultBandwidthPackage.id())\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .acceleratorId(defaultBandwidthPackageAttachment.acceleratorId())\n            .listenerType(\"CustomRouting\")\n            .portRanges(ListenerPortRangeArgs.builder()\n                .fromPort(10000)\n                .toPort(16000)\n                .build())\n            .build());\n\n        var defaultCustomRoutingEndpointGroup = new CustomRoutingEndpointGroup(\"defaultCustomRoutingEndpointGroup\", CustomRoutingEndpointGroupArgs.builder()\n            .acceleratorId(defaultListener.acceleratorId())\n            .listenerId(defaultListener.id())\n            .endpointGroupRegion(region)\n            .customRoutingEndpointGroupName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultCustomRoutingEndpoint = new CustomRoutingEndpoint(\"defaultCustomRoutingEndpoint\", CustomRoutingEndpointArgs.builder()\n            .endpointGroupId(defaultCustomRoutingEndpointGroup.id())\n            .endpoint(defaultSwitch.id())\n            .type(\"PrivateSubNet\")\n            .trafficToEndpointPolicy(\"DenyAll\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultAccelerator:\n    type: alicloud:ga:Accelerator\n    name: default\n    properties:\n      duration: 1\n      autoUseCoupon: true\n      spec: '1'\n  defaultBandwidthPackage:\n    type: alicloud:ga:BandwidthPackage\n    name: default\n    properties:\n      bandwidth: 100\n      type: Basic\n      bandwidthType: Basic\n      paymentType: PayAsYouGo\n      billingType: PayBy95\n      ratio: 30\n  defaultBandwidthPackageAttachment:\n    type: alicloud:ga:BandwidthPackageAttachment\n    name: default\n    properties:\n      acceleratorId: ${defaultAccelerator.id}\n      bandwidthPackageId: ${defaultBandwidthPackage.id}\n  defaultListener:\n    type: alicloud:ga:Listener\n    name: default\n    properties:\n      acceleratorId: ${defaultBandwidthPackageAttachment.acceleratorId}\n      listenerType: CustomRouting\n      portRanges:\n        - fromPort: 10000\n          toPort: 16000\n  defaultCustomRoutingEndpointGroup:\n    type: alicloud:ga:CustomRoutingEndpointGroup\n    name: default\n    properties:\n      acceleratorId: ${defaultListener.acceleratorId}\n      listenerId: ${defaultListener.id}\n      endpointGroupRegion: ${region}\n      customRoutingEndpointGroupName: terraform-example\n      description: terraform-example\n  defaultCustomRoutingEndpoint:\n    type: alicloud:ga:CustomRoutingEndpoint\n    name: default\n    properties:\n      endpointGroupId: ${defaultCustomRoutingEndpointGroup.id}\n      endpoint: ${defaultSwitch.id}\n      type: PrivateSubNet\n      trafficToEndpointPolicy: DenyAll\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal Accelerator (GA) Custom Routing Endpoint can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/customRoutingEndpoint:CustomRoutingEndpoint example \u003cendpoint_group_id\u003e:\u003ccustom_routing_endpoint_id\u003e\n```\n\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance with which the endpoint is associated.\n"},"customRoutingEndpointId":{"type":"string","description":"The ID of the Custom Routing Endpoint.\n"},"endpoint":{"type":"string","description":"The ID of the endpoint (vSwitch).\n"},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group in which to create endpoints.\n"},"listenerId":{"type":"string","description":"The ID of the listener with which the endpoint is associated.\n"},"status":{"type":"string","description":"The status of the Custom Routing Endpoint.\n"},"trafficToEndpointPolicy":{"type":"string","description":"The access policy of traffic to the endpoint. Default value: `DenyAll`. Valid values:\n- `DenyAll`: denies all traffic to the endpoint.\n- `AllowAll`: allows all traffic to the endpoint.\n- `AllowCustom`: allows traffic only to specified destinations in the endpoint.\n"},"type":{"type":"string","description":"The backend service type of the endpoint. Valid values: `PrivateSubNet`.\n"}},"required":["acceleratorId","customRoutingEndpointId","endpoint","endpointGroupId","listenerId","status","trafficToEndpointPolicy","type"],"inputProperties":{"endpoint":{"type":"string","description":"The ID of the endpoint (vSwitch).\n","willReplaceOnChanges":true},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group in which to create endpoints.\n","willReplaceOnChanges":true},"trafficToEndpointPolicy":{"type":"string","description":"The access policy of traffic to the endpoint. Default value: `DenyAll`. Valid values:\n- `DenyAll`: denies all traffic to the endpoint.\n- `AllowAll`: allows all traffic to the endpoint.\n- `AllowCustom`: allows traffic only to specified destinations in the endpoint.\n"},"type":{"type":"string","description":"The backend service type of the endpoint. Valid values: `PrivateSubNet`.\n","willReplaceOnChanges":true}},"requiredInputs":["endpoint","endpointGroupId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomRoutingEndpoint resources.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance with which the endpoint is associated.\n"},"customRoutingEndpointId":{"type":"string","description":"The ID of the Custom Routing Endpoint.\n"},"endpoint":{"type":"string","description":"The ID of the endpoint (vSwitch).\n","willReplaceOnChanges":true},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group in which to create endpoints.\n","willReplaceOnChanges":true},"listenerId":{"type":"string","description":"The ID of the listener with which the endpoint is associated.\n"},"status":{"type":"string","description":"The status of the Custom Routing Endpoint.\n"},"trafficToEndpointPolicy":{"type":"string","description":"The access policy of traffic to the endpoint. Default value: `DenyAll`. Valid values:\n- `DenyAll`: denies all traffic to the endpoint.\n- `AllowAll`: allows all traffic to the endpoint.\n- `AllowCustom`: allows traffic only to specified destinations in the endpoint.\n"},"type":{"type":"string","description":"The backend service type of the endpoint. Valid values: `PrivateSubNet`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ga/customRoutingEndpointGroup:CustomRoutingEndpointGroup":{"description":"Provides a Global Accelerator (GA) Custom Routing Endpoint Group resource.\n\nFor information about Global Accelerator (GA) Custom Routing Endpoint Group and how to use it, see [What is Custom Routing Endpoint Group](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createcustomroutingendpointgroups).\n\n\u003e **NOTE:** Available since v1.197.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst _default = new alicloud.ga.Accelerator(\"default\", {\n    duration: 1,\n    autoUseCoupon: true,\n    spec: \"1\",\n});\nconst defaultBandwidthPackage = new alicloud.ga.BandwidthPackage(\"default\", {\n    bandwidth: 100,\n    type: \"Basic\",\n    bandwidthType: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    billingType: \"PayBy95\",\n    ratio: 30,\n});\nconst defaultBandwidthPackageAttachment = new alicloud.ga.BandwidthPackageAttachment(\"default\", {\n    acceleratorId: _default.id,\n    bandwidthPackageId: defaultBandwidthPackage.id,\n});\nconst defaultListener = new alicloud.ga.Listener(\"default\", {\n    acceleratorId: defaultBandwidthPackageAttachment.acceleratorId,\n    listenerType: \"CustomRouting\",\n    portRanges: [{\n        fromPort: 10000,\n        toPort: 16000,\n    }],\n});\nconst defaultCustomRoutingEndpointGroup = new alicloud.ga.CustomRoutingEndpointGroup(\"default\", {\n    acceleratorId: defaultListener.acceleratorId,\n    listenerId: defaultListener.id,\n    endpointGroupRegion: region,\n    customRoutingEndpointGroupName: \"terraform-example\",\n    description: \"terraform-example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\ndefault = alicloud.ga.Accelerator(\"default\",\n    duration=1,\n    auto_use_coupon=True,\n    spec=\"1\")\ndefault_bandwidth_package = alicloud.ga.BandwidthPackage(\"default\",\n    bandwidth=100,\n    type=\"Basic\",\n    bandwidth_type=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    billing_type=\"PayBy95\",\n    ratio=30)\ndefault_bandwidth_package_attachment = alicloud.ga.BandwidthPackageAttachment(\"default\",\n    accelerator_id=default.id,\n    bandwidth_package_id=default_bandwidth_package.id)\ndefault_listener = alicloud.ga.Listener(\"default\",\n    accelerator_id=default_bandwidth_package_attachment.accelerator_id,\n    listener_type=\"CustomRouting\",\n    port_ranges=[{\n        \"from_port\": 10000,\n        \"to_port\": 16000,\n    }])\ndefault_custom_routing_endpoint_group = alicloud.ga.CustomRoutingEndpointGroup(\"default\",\n    accelerator_id=default_listener.accelerator_id,\n    listener_id=default_listener.id,\n    endpoint_group_region=region,\n    custom_routing_endpoint_group_name=\"terraform-example\",\n    description=\"terraform-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var @default = new AliCloud.Ga.Accelerator(\"default\", new()\n    {\n        Duration = 1,\n        AutoUseCoupon = true,\n        Spec = \"1\",\n    });\n\n    var defaultBandwidthPackage = new AliCloud.Ga.BandwidthPackage(\"default\", new()\n    {\n        Bandwidth = 100,\n        Type = \"Basic\",\n        BandwidthType = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        BillingType = \"PayBy95\",\n        Ratio = 30,\n    });\n\n    var defaultBandwidthPackageAttachment = new AliCloud.Ga.BandwidthPackageAttachment(\"default\", new()\n    {\n        AcceleratorId = @default.Id,\n        BandwidthPackageId = defaultBandwidthPackage.Id,\n    });\n\n    var defaultListener = new AliCloud.Ga.Listener(\"default\", new()\n    {\n        AcceleratorId = defaultBandwidthPackageAttachment.AcceleratorId,\n        ListenerType = \"CustomRouting\",\n        PortRanges = new[]\n        {\n            new AliCloud.Ga.Inputs.ListenerPortRangeArgs\n            {\n                FromPort = 10000,\n                ToPort = 16000,\n            },\n        },\n    });\n\n    var defaultCustomRoutingEndpointGroup = new AliCloud.Ga.CustomRoutingEndpointGroup(\"default\", new()\n    {\n        AcceleratorId = defaultListener.AcceleratorId,\n        ListenerId = defaultListener.Id,\n        EndpointGroupRegion = region,\n        CustomRoutingEndpointGroupName = \"terraform-example\",\n        Description = \"terraform-example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\t_default, err := ga.NewAccelerator(ctx, \"default\", \u0026ga.AcceleratorArgs{\n\t\t\tDuration:      pulumi.Int(1),\n\t\t\tAutoUseCoupon: pulumi.Bool(true),\n\t\t\tSpec:          pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackage, err := ga.NewBandwidthPackage(ctx, \"default\", \u0026ga.BandwidthPackageArgs{\n\t\t\tBandwidth:     pulumi.Int(100),\n\t\t\tType:          pulumi.String(\"Basic\"),\n\t\t\tBandwidthType: pulumi.String(\"Basic\"),\n\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\tBillingType:   pulumi.String(\"PayBy95\"),\n\t\t\tRatio:         pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackageAttachment, err := ga.NewBandwidthPackageAttachment(ctx, \"default\", \u0026ga.BandwidthPackageAttachmentArgs{\n\t\t\tAcceleratorId:      _default.ID(),\n\t\t\tBandwidthPackageId: defaultBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultListener, err := ga.NewListener(ctx, \"default\", \u0026ga.ListenerArgs{\n\t\t\tAcceleratorId: defaultBandwidthPackageAttachment.AcceleratorId,\n\t\t\tListenerType:  pulumi.String(\"CustomRouting\"),\n\t\t\tPortRanges: ga.ListenerPortRangeArray{\n\t\t\t\t\u0026ga.ListenerPortRangeArgs{\n\t\t\t\t\tFromPort: pulumi.Int(10000),\n\t\t\t\t\tToPort:   pulumi.Int(16000),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewCustomRoutingEndpointGroup(ctx, \"default\", \u0026ga.CustomRoutingEndpointGroupArgs{\n\t\t\tAcceleratorId:                  defaultListener.AcceleratorId,\n\t\t\tListenerId:                     defaultListener.ID(),\n\t\t\tEndpointGroupRegion:            pulumi.String(region),\n\t\t\tCustomRoutingEndpointGroupName: pulumi.String(\"terraform-example\"),\n\t\t\tDescription:                    pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.Accelerator;\nimport com.pulumi.alicloud.ga.AcceleratorArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackage;\nimport com.pulumi.alicloud.ga.BandwidthPackageArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.ga.Listener;\nimport com.pulumi.alicloud.ga.ListenerArgs;\nimport com.pulumi.alicloud.ga.inputs.ListenerPortRangeArgs;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpointGroup;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpointGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        var default_ = new Accelerator(\"default\", AcceleratorArgs.builder()\n            .duration(1)\n            .autoUseCoupon(true)\n            .spec(\"1\")\n            .build());\n\n        var defaultBandwidthPackage = new BandwidthPackage(\"defaultBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(100)\n            .type(\"Basic\")\n            .bandwidthType(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .billingType(\"PayBy95\")\n            .ratio(30)\n            .build());\n\n        var defaultBandwidthPackageAttachment = new BandwidthPackageAttachment(\"defaultBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .acceleratorId(default_.id())\n            .bandwidthPackageId(defaultBandwidthPackage.id())\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .acceleratorId(defaultBandwidthPackageAttachment.acceleratorId())\n            .listenerType(\"CustomRouting\")\n            .portRanges(ListenerPortRangeArgs.builder()\n                .fromPort(10000)\n                .toPort(16000)\n                .build())\n            .build());\n\n        var defaultCustomRoutingEndpointGroup = new CustomRoutingEndpointGroup(\"defaultCustomRoutingEndpointGroup\", CustomRoutingEndpointGroupArgs.builder()\n            .acceleratorId(defaultListener.acceleratorId())\n            .listenerId(defaultListener.id())\n            .endpointGroupRegion(region)\n            .customRoutingEndpointGroupName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\nresources:\n  default:\n    type: alicloud:ga:Accelerator\n    properties:\n      duration: 1\n      autoUseCoupon: true\n      spec: '1'\n  defaultBandwidthPackage:\n    type: alicloud:ga:BandwidthPackage\n    name: default\n    properties:\n      bandwidth: 100\n      type: Basic\n      bandwidthType: Basic\n      paymentType: PayAsYouGo\n      billingType: PayBy95\n      ratio: 30\n  defaultBandwidthPackageAttachment:\n    type: alicloud:ga:BandwidthPackageAttachment\n    name: default\n    properties:\n      acceleratorId: ${default.id}\n      bandwidthPackageId: ${defaultBandwidthPackage.id}\n  defaultListener:\n    type: alicloud:ga:Listener\n    name: default\n    properties:\n      acceleratorId: ${defaultBandwidthPackageAttachment.acceleratorId}\n      listenerType: CustomRouting\n      portRanges:\n        - fromPort: 10000\n          toPort: 16000\n  defaultCustomRoutingEndpointGroup:\n    type: alicloud:ga:CustomRoutingEndpointGroup\n    name: default\n    properties:\n      acceleratorId: ${defaultListener.acceleratorId}\n      listenerId: ${defaultListener.id}\n      endpointGroupRegion: ${region}\n      customRoutingEndpointGroupName: terraform-example\n      description: terraform-example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal Accelerator (GA) Custom Routing Endpoint Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/customRoutingEndpointGroup:CustomRoutingEndpointGroup example \u003cid\u003e\n```\n\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n"},"customRoutingEndpointGroupName":{"type":"string","description":"The name of the endpoint group.\n"},"description":{"type":"string","description":"The description of the endpoint group.\n"},"endpointGroupRegion":{"type":"string","description":"The ID of the region in which to create the endpoint group.\n"},"listenerId":{"type":"string","description":"The ID of the custom routing listener.\n"},"status":{"type":"string","description":"The status of the Custom Routing Endpoint Group.\n"}},"required":["acceleratorId","endpointGroupRegion","listenerId","status"],"inputProperties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n","willReplaceOnChanges":true},"customRoutingEndpointGroupName":{"type":"string","description":"The name of the endpoint group.\n"},"description":{"type":"string","description":"The description of the endpoint group.\n"},"endpointGroupRegion":{"type":"string","description":"The ID of the region in which to create the endpoint group.\n","willReplaceOnChanges":true},"listenerId":{"type":"string","description":"The ID of the custom routing listener.\n","willReplaceOnChanges":true}},"requiredInputs":["acceleratorId","endpointGroupRegion","listenerId"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomRoutingEndpointGroup resources.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n","willReplaceOnChanges":true},"customRoutingEndpointGroupName":{"type":"string","description":"The name of the endpoint group.\n"},"description":{"type":"string","description":"The description of the endpoint group.\n"},"endpointGroupRegion":{"type":"string","description":"The ID of the region in which to create the endpoint group.\n","willReplaceOnChanges":true},"listenerId":{"type":"string","description":"The ID of the custom routing listener.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Custom Routing Endpoint Group.\n"}},"type":"object"}},"alicloud:ga/customRoutingEndpointGroupDestination:CustomRoutingEndpointGroupDestination":{"description":"Provides a Global Accelerator (GA) Custom Routing Endpoint Group Destination resource.\n\nFor information about Global Accelerator (GA) Custom Routing Endpoint Group Destination and how to use it, see [What is Custom Routing Endpoint Group Destination](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createcustomroutingendpointgroupdestinations).\n\n\u003e **NOTE:** Available since v1.197.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst _default = new alicloud.ga.Accelerator(\"default\", {\n    duration: 1,\n    autoUseCoupon: true,\n    spec: \"1\",\n});\nconst defaultBandwidthPackage = new alicloud.ga.BandwidthPackage(\"default\", {\n    bandwidth: 100,\n    type: \"Basic\",\n    bandwidthType: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    billingType: \"PayBy95\",\n    ratio: 30,\n});\nconst defaultBandwidthPackageAttachment = new alicloud.ga.BandwidthPackageAttachment(\"default\", {\n    acceleratorId: _default.id,\n    bandwidthPackageId: defaultBandwidthPackage.id,\n});\nconst defaultListener = new alicloud.ga.Listener(\"default\", {\n    acceleratorId: defaultBandwidthPackageAttachment.acceleratorId,\n    listenerType: \"CustomRouting\",\n    portRanges: [{\n        fromPort: 10000,\n        toPort: 16000,\n    }],\n});\nconst defaultCustomRoutingEndpointGroup = new alicloud.ga.CustomRoutingEndpointGroup(\"default\", {\n    acceleratorId: defaultListener.acceleratorId,\n    listenerId: defaultListener.id,\n    endpointGroupRegion: region,\n    customRoutingEndpointGroupName: \"terraform-example\",\n    description: \"terraform-example\",\n});\nconst defaultCustomRoutingEndpointGroupDestination = new alicloud.ga.CustomRoutingEndpointGroupDestination(\"default\", {\n    endpointGroupId: defaultCustomRoutingEndpointGroup.id,\n    protocols: [\"TCP\"],\n    fromPort: 1,\n    toPort: 2,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\ndefault = alicloud.ga.Accelerator(\"default\",\n    duration=1,\n    auto_use_coupon=True,\n    spec=\"1\")\ndefault_bandwidth_package = alicloud.ga.BandwidthPackage(\"default\",\n    bandwidth=100,\n    type=\"Basic\",\n    bandwidth_type=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    billing_type=\"PayBy95\",\n    ratio=30)\ndefault_bandwidth_package_attachment = alicloud.ga.BandwidthPackageAttachment(\"default\",\n    accelerator_id=default.id,\n    bandwidth_package_id=default_bandwidth_package.id)\ndefault_listener = alicloud.ga.Listener(\"default\",\n    accelerator_id=default_bandwidth_package_attachment.accelerator_id,\n    listener_type=\"CustomRouting\",\n    port_ranges=[{\n        \"from_port\": 10000,\n        \"to_port\": 16000,\n    }])\ndefault_custom_routing_endpoint_group = alicloud.ga.CustomRoutingEndpointGroup(\"default\",\n    accelerator_id=default_listener.accelerator_id,\n    listener_id=default_listener.id,\n    endpoint_group_region=region,\n    custom_routing_endpoint_group_name=\"terraform-example\",\n    description=\"terraform-example\")\ndefault_custom_routing_endpoint_group_destination = alicloud.ga.CustomRoutingEndpointGroupDestination(\"default\",\n    endpoint_group_id=default_custom_routing_endpoint_group.id,\n    protocols=[\"TCP\"],\n    from_port=1,\n    to_port=2)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var @default = new AliCloud.Ga.Accelerator(\"default\", new()\n    {\n        Duration = 1,\n        AutoUseCoupon = true,\n        Spec = \"1\",\n    });\n\n    var defaultBandwidthPackage = new AliCloud.Ga.BandwidthPackage(\"default\", new()\n    {\n        Bandwidth = 100,\n        Type = \"Basic\",\n        BandwidthType = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        BillingType = \"PayBy95\",\n        Ratio = 30,\n    });\n\n    var defaultBandwidthPackageAttachment = new AliCloud.Ga.BandwidthPackageAttachment(\"default\", new()\n    {\n        AcceleratorId = @default.Id,\n        BandwidthPackageId = defaultBandwidthPackage.Id,\n    });\n\n    var defaultListener = new AliCloud.Ga.Listener(\"default\", new()\n    {\n        AcceleratorId = defaultBandwidthPackageAttachment.AcceleratorId,\n        ListenerType = \"CustomRouting\",\n        PortRanges = new[]\n        {\n            new AliCloud.Ga.Inputs.ListenerPortRangeArgs\n            {\n                FromPort = 10000,\n                ToPort = 16000,\n            },\n        },\n    });\n\n    var defaultCustomRoutingEndpointGroup = new AliCloud.Ga.CustomRoutingEndpointGroup(\"default\", new()\n    {\n        AcceleratorId = defaultListener.AcceleratorId,\n        ListenerId = defaultListener.Id,\n        EndpointGroupRegion = region,\n        CustomRoutingEndpointGroupName = \"terraform-example\",\n        Description = \"terraform-example\",\n    });\n\n    var defaultCustomRoutingEndpointGroupDestination = new AliCloud.Ga.CustomRoutingEndpointGroupDestination(\"default\", new()\n    {\n        EndpointGroupId = defaultCustomRoutingEndpointGroup.Id,\n        Protocols = new[]\n        {\n            \"TCP\",\n        },\n        FromPort = 1,\n        ToPort = 2,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\t_default, err := ga.NewAccelerator(ctx, \"default\", \u0026ga.AcceleratorArgs{\n\t\t\tDuration:      pulumi.Int(1),\n\t\t\tAutoUseCoupon: pulumi.Bool(true),\n\t\t\tSpec:          pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackage, err := ga.NewBandwidthPackage(ctx, \"default\", \u0026ga.BandwidthPackageArgs{\n\t\t\tBandwidth:     pulumi.Int(100),\n\t\t\tType:          pulumi.String(\"Basic\"),\n\t\t\tBandwidthType: pulumi.String(\"Basic\"),\n\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\tBillingType:   pulumi.String(\"PayBy95\"),\n\t\t\tRatio:         pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackageAttachment, err := ga.NewBandwidthPackageAttachment(ctx, \"default\", \u0026ga.BandwidthPackageAttachmentArgs{\n\t\t\tAcceleratorId:      _default.ID(),\n\t\t\tBandwidthPackageId: defaultBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultListener, err := ga.NewListener(ctx, \"default\", \u0026ga.ListenerArgs{\n\t\t\tAcceleratorId: defaultBandwidthPackageAttachment.AcceleratorId,\n\t\t\tListenerType:  pulumi.String(\"CustomRouting\"),\n\t\t\tPortRanges: ga.ListenerPortRangeArray{\n\t\t\t\t\u0026ga.ListenerPortRangeArgs{\n\t\t\t\t\tFromPort: pulumi.Int(10000),\n\t\t\t\t\tToPort:   pulumi.Int(16000),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCustomRoutingEndpointGroup, err := ga.NewCustomRoutingEndpointGroup(ctx, \"default\", \u0026ga.CustomRoutingEndpointGroupArgs{\n\t\t\tAcceleratorId:                  defaultListener.AcceleratorId,\n\t\t\tListenerId:                     defaultListener.ID(),\n\t\t\tEndpointGroupRegion:            pulumi.String(region),\n\t\t\tCustomRoutingEndpointGroupName: pulumi.String(\"terraform-example\"),\n\t\t\tDescription:                    pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewCustomRoutingEndpointGroupDestination(ctx, \"default\", \u0026ga.CustomRoutingEndpointGroupDestinationArgs{\n\t\t\tEndpointGroupId: defaultCustomRoutingEndpointGroup.ID(),\n\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"TCP\"),\n\t\t\t},\n\t\t\tFromPort: pulumi.Int(1),\n\t\t\tToPort:   pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.Accelerator;\nimport com.pulumi.alicloud.ga.AcceleratorArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackage;\nimport com.pulumi.alicloud.ga.BandwidthPackageArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.ga.Listener;\nimport com.pulumi.alicloud.ga.ListenerArgs;\nimport com.pulumi.alicloud.ga.inputs.ListenerPortRangeArgs;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpointGroup;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpointGroupArgs;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpointGroupDestination;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpointGroupDestinationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        var default_ = new Accelerator(\"default\", AcceleratorArgs.builder()\n            .duration(1)\n            .autoUseCoupon(true)\n            .spec(\"1\")\n            .build());\n\n        var defaultBandwidthPackage = new BandwidthPackage(\"defaultBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(100)\n            .type(\"Basic\")\n            .bandwidthType(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .billingType(\"PayBy95\")\n            .ratio(30)\n            .build());\n\n        var defaultBandwidthPackageAttachment = new BandwidthPackageAttachment(\"defaultBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .acceleratorId(default_.id())\n            .bandwidthPackageId(defaultBandwidthPackage.id())\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .acceleratorId(defaultBandwidthPackageAttachment.acceleratorId())\n            .listenerType(\"CustomRouting\")\n            .portRanges(ListenerPortRangeArgs.builder()\n                .fromPort(10000)\n                .toPort(16000)\n                .build())\n            .build());\n\n        var defaultCustomRoutingEndpointGroup = new CustomRoutingEndpointGroup(\"defaultCustomRoutingEndpointGroup\", CustomRoutingEndpointGroupArgs.builder()\n            .acceleratorId(defaultListener.acceleratorId())\n            .listenerId(defaultListener.id())\n            .endpointGroupRegion(region)\n            .customRoutingEndpointGroupName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultCustomRoutingEndpointGroupDestination = new CustomRoutingEndpointGroupDestination(\"defaultCustomRoutingEndpointGroupDestination\", CustomRoutingEndpointGroupDestinationArgs.builder()\n            .endpointGroupId(defaultCustomRoutingEndpointGroup.id())\n            .protocols(\"TCP\")\n            .fromPort(1)\n            .toPort(2)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\nresources:\n  default:\n    type: alicloud:ga:Accelerator\n    properties:\n      duration: 1\n      autoUseCoupon: true\n      spec: '1'\n  defaultBandwidthPackage:\n    type: alicloud:ga:BandwidthPackage\n    name: default\n    properties:\n      bandwidth: 100\n      type: Basic\n      bandwidthType: Basic\n      paymentType: PayAsYouGo\n      billingType: PayBy95\n      ratio: 30\n  defaultBandwidthPackageAttachment:\n    type: alicloud:ga:BandwidthPackageAttachment\n    name: default\n    properties:\n      acceleratorId: ${default.id}\n      bandwidthPackageId: ${defaultBandwidthPackage.id}\n  defaultListener:\n    type: alicloud:ga:Listener\n    name: default\n    properties:\n      acceleratorId: ${defaultBandwidthPackageAttachment.acceleratorId}\n      listenerType: CustomRouting\n      portRanges:\n        - fromPort: 10000\n          toPort: 16000\n  defaultCustomRoutingEndpointGroup:\n    type: alicloud:ga:CustomRoutingEndpointGroup\n    name: default\n    properties:\n      acceleratorId: ${defaultListener.acceleratorId}\n      listenerId: ${defaultListener.id}\n      endpointGroupRegion: ${region}\n      customRoutingEndpointGroupName: terraform-example\n      description: terraform-example\n  defaultCustomRoutingEndpointGroupDestination:\n    type: alicloud:ga:CustomRoutingEndpointGroupDestination\n    name: default\n    properties:\n      endpointGroupId: ${defaultCustomRoutingEndpointGroup.id}\n      protocols:\n        - TCP\n      fromPort: 1\n      toPort: 2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal Accelerator (GA) Custom Routing Endpoint Group Destination can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/customRoutingEndpointGroupDestination:CustomRoutingEndpointGroupDestination example \u003cendpoint_group_id\u003e:\u003ccustom_routing_endpoint_group_destination_id\u003e\n```\n\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n"},"customRoutingEndpointGroupDestinationId":{"type":"string","description":"The ID of the Custom Routing Endpoint Group Destination.\n"},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group.\n"},"fromPort":{"type":"integer","description":"The start port of the backend service port range of the endpoint group. The \u003cspan pulumi-lang-nodejs=\"`fromPort`\" pulumi-lang-dotnet=\"`FromPort`\" pulumi-lang-go=\"`fromPort`\" pulumi-lang-python=\"`from_port`\" pulumi-lang-yaml=\"`fromPort`\" pulumi-lang-java=\"`fromPort`\"\u003e`from_port`\u003c/span\u003e value must be smaller than or equal to the \u003cspan pulumi-lang-nodejs=\"`toPort`\" pulumi-lang-dotnet=\"`ToPort`\" pulumi-lang-go=\"`toPort`\" pulumi-lang-python=\"`to_port`\" pulumi-lang-yaml=\"`toPort`\" pulumi-lang-java=\"`toPort`\"\u003e`to_port`\u003c/span\u003e value. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65499`\" pulumi-lang-dotnet=\"`65499`\" pulumi-lang-go=\"`65499`\" pulumi-lang-python=\"`65499`\" pulumi-lang-yaml=\"`65499`\" pulumi-lang-java=\"`65499`\"\u003e`65499`\u003c/span\u003e.\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n"},"protocols":{"type":"array","items":{"type":"string"},"description":"The backend service protocol of the endpoint group. Valid values: `TCP`, `UDP`, `TCP, UDP`.\n"},"status":{"type":"string","description":"The status of the Custom Routing Endpoint Group Destination.\n"},"toPort":{"type":"integer","description":"The end port of the backend service port range of the endpoint group. The \u003cspan pulumi-lang-nodejs=\"`fromPort`\" pulumi-lang-dotnet=\"`FromPort`\" pulumi-lang-go=\"`fromPort`\" pulumi-lang-python=\"`from_port`\" pulumi-lang-yaml=\"`fromPort`\" pulumi-lang-java=\"`fromPort`\"\u003e`from_port`\u003c/span\u003e value must be smaller than or equal to the \u003cspan pulumi-lang-nodejs=\"`toPort`\" pulumi-lang-dotnet=\"`ToPort`\" pulumi-lang-go=\"`toPort`\" pulumi-lang-python=\"`to_port`\" pulumi-lang-yaml=\"`toPort`\" pulumi-lang-java=\"`toPort`\"\u003e`to_port`\u003c/span\u003e value. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65499`\" pulumi-lang-dotnet=\"`65499`\" pulumi-lang-go=\"`65499`\" pulumi-lang-python=\"`65499`\" pulumi-lang-yaml=\"`65499`\" pulumi-lang-java=\"`65499`\"\u003e`65499`\u003c/span\u003e.\n"}},"required":["acceleratorId","customRoutingEndpointGroupDestinationId","endpointGroupId","fromPort","listenerId","protocols","status","toPort"],"inputProperties":{"endpointGroupId":{"type":"string","description":"The ID of the endpoint group.\n","willReplaceOnChanges":true},"fromPort":{"type":"integer","description":"The start port of the backend service port range of the endpoint group. The \u003cspan pulumi-lang-nodejs=\"`fromPort`\" pulumi-lang-dotnet=\"`FromPort`\" pulumi-lang-go=\"`fromPort`\" pulumi-lang-python=\"`from_port`\" pulumi-lang-yaml=\"`fromPort`\" pulumi-lang-java=\"`fromPort`\"\u003e`from_port`\u003c/span\u003e value must be smaller than or equal to the \u003cspan pulumi-lang-nodejs=\"`toPort`\" pulumi-lang-dotnet=\"`ToPort`\" pulumi-lang-go=\"`toPort`\" pulumi-lang-python=\"`to_port`\" pulumi-lang-yaml=\"`toPort`\" pulumi-lang-java=\"`toPort`\"\u003e`to_port`\u003c/span\u003e value. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65499`\" pulumi-lang-dotnet=\"`65499`\" pulumi-lang-go=\"`65499`\" pulumi-lang-python=\"`65499`\" pulumi-lang-yaml=\"`65499`\" pulumi-lang-java=\"`65499`\"\u003e`65499`\u003c/span\u003e.\n"},"protocols":{"type":"array","items":{"type":"string"},"description":"The backend service protocol of the endpoint group. Valid values: `TCP`, `UDP`, `TCP, UDP`.\n"},"toPort":{"type":"integer","description":"The end port of the backend service port range of the endpoint group. The \u003cspan pulumi-lang-nodejs=\"`fromPort`\" pulumi-lang-dotnet=\"`FromPort`\" pulumi-lang-go=\"`fromPort`\" pulumi-lang-python=\"`from_port`\" pulumi-lang-yaml=\"`fromPort`\" pulumi-lang-java=\"`fromPort`\"\u003e`from_port`\u003c/span\u003e value must be smaller than or equal to the \u003cspan pulumi-lang-nodejs=\"`toPort`\" pulumi-lang-dotnet=\"`ToPort`\" pulumi-lang-go=\"`toPort`\" pulumi-lang-python=\"`to_port`\" pulumi-lang-yaml=\"`toPort`\" pulumi-lang-java=\"`toPort`\"\u003e`to_port`\u003c/span\u003e value. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65499`\" pulumi-lang-dotnet=\"`65499`\" pulumi-lang-go=\"`65499`\" pulumi-lang-python=\"`65499`\" pulumi-lang-yaml=\"`65499`\" pulumi-lang-java=\"`65499`\"\u003e`65499`\u003c/span\u003e.\n"}},"requiredInputs":["endpointGroupId","fromPort","protocols","toPort"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomRoutingEndpointGroupDestination resources.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n"},"customRoutingEndpointGroupDestinationId":{"type":"string","description":"The ID of the Custom Routing Endpoint Group Destination.\n"},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group.\n","willReplaceOnChanges":true},"fromPort":{"type":"integer","description":"The start port of the backend service port range of the endpoint group. The \u003cspan pulumi-lang-nodejs=\"`fromPort`\" pulumi-lang-dotnet=\"`FromPort`\" pulumi-lang-go=\"`fromPort`\" pulumi-lang-python=\"`from_port`\" pulumi-lang-yaml=\"`fromPort`\" pulumi-lang-java=\"`fromPort`\"\u003e`from_port`\u003c/span\u003e value must be smaller than or equal to the \u003cspan pulumi-lang-nodejs=\"`toPort`\" pulumi-lang-dotnet=\"`ToPort`\" pulumi-lang-go=\"`toPort`\" pulumi-lang-python=\"`to_port`\" pulumi-lang-yaml=\"`toPort`\" pulumi-lang-java=\"`toPort`\"\u003e`to_port`\u003c/span\u003e value. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65499`\" pulumi-lang-dotnet=\"`65499`\" pulumi-lang-go=\"`65499`\" pulumi-lang-python=\"`65499`\" pulumi-lang-yaml=\"`65499`\" pulumi-lang-java=\"`65499`\"\u003e`65499`\u003c/span\u003e.\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n"},"protocols":{"type":"array","items":{"type":"string"},"description":"The backend service protocol of the endpoint group. Valid values: `TCP`, `UDP`, `TCP, UDP`.\n"},"status":{"type":"string","description":"The status of the Custom Routing Endpoint Group Destination.\n"},"toPort":{"type":"integer","description":"The end port of the backend service port range of the endpoint group. The \u003cspan pulumi-lang-nodejs=\"`fromPort`\" pulumi-lang-dotnet=\"`FromPort`\" pulumi-lang-go=\"`fromPort`\" pulumi-lang-python=\"`from_port`\" pulumi-lang-yaml=\"`fromPort`\" pulumi-lang-java=\"`fromPort`\"\u003e`from_port`\u003c/span\u003e value must be smaller than or equal to the \u003cspan pulumi-lang-nodejs=\"`toPort`\" pulumi-lang-dotnet=\"`ToPort`\" pulumi-lang-go=\"`toPort`\" pulumi-lang-python=\"`to_port`\" pulumi-lang-yaml=\"`toPort`\" pulumi-lang-java=\"`toPort`\"\u003e`to_port`\u003c/span\u003e value. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65499`\" pulumi-lang-dotnet=\"`65499`\" pulumi-lang-go=\"`65499`\" pulumi-lang-python=\"`65499`\" pulumi-lang-yaml=\"`65499`\" pulumi-lang-java=\"`65499`\"\u003e`65499`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:ga/customRoutingEndpointTrafficPolicy:CustomRoutingEndpointTrafficPolicy":{"description":"Provides a Global Accelerator (GA) Custom Routing Endpoint Traffic Policy resource.\n\nFor information about Global Accelerator (GA) Custom Routing Endpoint Traffic Policy and how to use it, see [What is Custom Routing Endpoint Traffic Policy](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createcustomroutingendpointtrafficpolicies).\n\n\u003e **NOTE:** Available since v1.197.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({});\nconst defaultGetAccelerators = alicloud.ga.getAccelerators({\n    status: \"active\",\n    bandwidthBillingType: \"BandwidthPackage\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"192.168.192.0/24\",\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n});\nconst defaultBandwidthPackage = new alicloud.ga.BandwidthPackage(\"default\", {\n    bandwidth: 100,\n    type: \"Basic\",\n    bandwidthType: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    billingType: \"PayBy95\",\n    ratio: 30,\n});\nconst defaultGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst defaultBandwidthPackageAttachment = new alicloud.ga.BandwidthPackageAttachment(\"default\", {\n    acceleratorId: defaultGetAccelerators.then(defaultGetAccelerators =\u003e defaultGetAccelerators.accelerators?.[1]?.id),\n    bandwidthPackageId: defaultBandwidthPackage.id,\n});\nconst defaultListener = new alicloud.ga.Listener(\"default\", {\n    acceleratorId: defaultBandwidthPackageAttachment.acceleratorId,\n    listenerType: \"CustomRouting\",\n    portRanges: [{\n        fromPort: 10000,\n        toPort: 26000,\n    }],\n});\nconst defaultCustomRoutingEndpointGroup = new alicloud.ga.CustomRoutingEndpointGroup(\"default\", {\n    acceleratorId: defaultListener.acceleratorId,\n    listenerId: defaultListener.id,\n    endpointGroupRegion: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.id),\n    customRoutingEndpointGroupName: name,\n    description: name,\n});\nconst defaultCustomRoutingEndpointGroupDestination = new alicloud.ga.CustomRoutingEndpointGroupDestination(\"default\", {\n    endpointGroupId: defaultCustomRoutingEndpointGroup.id,\n    protocols: [\"TCP\"],\n    fromPort: 1,\n    toPort: 10,\n});\nconst defaultCustomRoutingEndpoint = new alicloud.ga.CustomRoutingEndpoint(\"default\", {\n    endpointGroupId: defaultCustomRoutingEndpointGroupDestination.endpointGroupId,\n    endpoint: defaultSwitch.id,\n    type: \"PrivateSubNet\",\n    trafficToEndpointPolicy: \"AllowAll\",\n});\nconst defaultCustomRoutingEndpointTrafficPolicy = new alicloud.ga.CustomRoutingEndpointTrafficPolicy(\"default\", {\n    endpointId: defaultCustomRoutingEndpoint.customRoutingEndpointId,\n    address: \"192.168.192.2\",\n    portRanges: [{\n        fromPort: 1,\n        toPort: 2,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones()\ndefault_get_accelerators = alicloud.ga.get_accelerators(status=\"active\",\n    bandwidth_billing_type=\"BandwidthPackage\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"192.168.192.0/24\",\n    zone_id=default.ids[0])\ndefault_bandwidth_package = alicloud.ga.BandwidthPackage(\"default\",\n    bandwidth=100,\n    type=\"Basic\",\n    bandwidth_type=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    billing_type=\"PayBy95\",\n    ratio=30)\ndefault_get_regions = alicloud.get_regions(current=True)\ndefault_bandwidth_package_attachment = alicloud.ga.BandwidthPackageAttachment(\"default\",\n    accelerator_id=default_get_accelerators.accelerators[1].id,\n    bandwidth_package_id=default_bandwidth_package.id)\ndefault_listener = alicloud.ga.Listener(\"default\",\n    accelerator_id=default_bandwidth_package_attachment.accelerator_id,\n    listener_type=\"CustomRouting\",\n    port_ranges=[{\n        \"from_port\": 10000,\n        \"to_port\": 26000,\n    }])\ndefault_custom_routing_endpoint_group = alicloud.ga.CustomRoutingEndpointGroup(\"default\",\n    accelerator_id=default_listener.accelerator_id,\n    listener_id=default_listener.id,\n    endpoint_group_region=default_get_regions.regions[0].id,\n    custom_routing_endpoint_group_name=name,\n    description=name)\ndefault_custom_routing_endpoint_group_destination = alicloud.ga.CustomRoutingEndpointGroupDestination(\"default\",\n    endpoint_group_id=default_custom_routing_endpoint_group.id,\n    protocols=[\"TCP\"],\n    from_port=1,\n    to_port=10)\ndefault_custom_routing_endpoint = alicloud.ga.CustomRoutingEndpoint(\"default\",\n    endpoint_group_id=default_custom_routing_endpoint_group_destination.endpoint_group_id,\n    endpoint=default_switch.id,\n    type=\"PrivateSubNet\",\n    traffic_to_endpoint_policy=\"AllowAll\")\ndefault_custom_routing_endpoint_traffic_policy = alicloud.ga.CustomRoutingEndpointTrafficPolicy(\"default\",\n    endpoint_id=default_custom_routing_endpoint.custom_routing_endpoint_id,\n    address=\"192.168.192.2\",\n    port_ranges=[{\n        \"from_port\": 1,\n        \"to_port\": 2,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke();\n\n    var defaultGetAccelerators = AliCloud.Ga.GetAccelerators.Invoke(new()\n    {\n        Status = \"active\",\n        BandwidthBillingType = \"BandwidthPackage\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"192.168.192.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n    });\n\n    var defaultBandwidthPackage = new AliCloud.Ga.BandwidthPackage(\"default\", new()\n    {\n        Bandwidth = 100,\n        Type = \"Basic\",\n        BandwidthType = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        BillingType = \"PayBy95\",\n        Ratio = 30,\n    });\n\n    var defaultGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultBandwidthPackageAttachment = new AliCloud.Ga.BandwidthPackageAttachment(\"default\", new()\n    {\n        AcceleratorId = defaultGetAccelerators.Apply(getAcceleratorsResult =\u003e getAcceleratorsResult.Accelerators[1]?.Id),\n        BandwidthPackageId = defaultBandwidthPackage.Id,\n    });\n\n    var defaultListener = new AliCloud.Ga.Listener(\"default\", new()\n    {\n        AcceleratorId = defaultBandwidthPackageAttachment.AcceleratorId,\n        ListenerType = \"CustomRouting\",\n        PortRanges = new[]\n        {\n            new AliCloud.Ga.Inputs.ListenerPortRangeArgs\n            {\n                FromPort = 10000,\n                ToPort = 26000,\n            },\n        },\n    });\n\n    var defaultCustomRoutingEndpointGroup = new AliCloud.Ga.CustomRoutingEndpointGroup(\"default\", new()\n    {\n        AcceleratorId = defaultListener.AcceleratorId,\n        ListenerId = defaultListener.Id,\n        EndpointGroupRegion = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        CustomRoutingEndpointGroupName = name,\n        Description = name,\n    });\n\n    var defaultCustomRoutingEndpointGroupDestination = new AliCloud.Ga.CustomRoutingEndpointGroupDestination(\"default\", new()\n    {\n        EndpointGroupId = defaultCustomRoutingEndpointGroup.Id,\n        Protocols = new[]\n        {\n            \"TCP\",\n        },\n        FromPort = 1,\n        ToPort = 10,\n    });\n\n    var defaultCustomRoutingEndpoint = new AliCloud.Ga.CustomRoutingEndpoint(\"default\", new()\n    {\n        EndpointGroupId = defaultCustomRoutingEndpointGroupDestination.EndpointGroupId,\n        Endpoint = defaultSwitch.Id,\n        Type = \"PrivateSubNet\",\n        TrafficToEndpointPolicy = \"AllowAll\",\n    });\n\n    var defaultCustomRoutingEndpointTrafficPolicy = new AliCloud.Ga.CustomRoutingEndpointTrafficPolicy(\"default\", new()\n    {\n        EndpointId = defaultCustomRoutingEndpoint.CustomRoutingEndpointId,\n        Address = \"192.168.192.2\",\n        PortRanges = new[]\n        {\n            new AliCloud.Ga.Inputs.CustomRoutingEndpointTrafficPolicyPortRangeArgs\n            {\n                FromPort = 1,\n                ToPort = 2,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetAccelerators, err := ga.GetAccelerators(ctx, \u0026ga.GetAcceleratorsArgs{\n\t\t\tStatus:               pulumi.StringRef(\"active\"),\n\t\t\tBandwidthBillingType: pulumi.StringRef(\"BandwidthPackage\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.192.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackage, err := ga.NewBandwidthPackage(ctx, \"default\", \u0026ga.BandwidthPackageArgs{\n\t\t\tBandwidth:     pulumi.Int(100),\n\t\t\tType:          pulumi.String(\"Basic\"),\n\t\t\tBandwidthType: pulumi.String(\"Basic\"),\n\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\tBillingType:   pulumi.String(\"PayBy95\"),\n\t\t\tRatio:         pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRegions, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackageAttachment, err := ga.NewBandwidthPackageAttachment(ctx, \"default\", \u0026ga.BandwidthPackageAttachmentArgs{\n\t\t\tAcceleratorId:      pulumi.String(defaultGetAccelerators.Accelerators[1].Id),\n\t\t\tBandwidthPackageId: defaultBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultListener, err := ga.NewListener(ctx, \"default\", \u0026ga.ListenerArgs{\n\t\t\tAcceleratorId: defaultBandwidthPackageAttachment.AcceleratorId,\n\t\t\tListenerType:  pulumi.String(\"CustomRouting\"),\n\t\t\tPortRanges: ga.ListenerPortRangeArray{\n\t\t\t\t\u0026ga.ListenerPortRangeArgs{\n\t\t\t\t\tFromPort: pulumi.Int(10000),\n\t\t\t\t\tToPort:   pulumi.Int(26000),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCustomRoutingEndpointGroup, err := ga.NewCustomRoutingEndpointGroup(ctx, \"default\", \u0026ga.CustomRoutingEndpointGroupArgs{\n\t\t\tAcceleratorId:                  defaultListener.AcceleratorId,\n\t\t\tListenerId:                     defaultListener.ID(),\n\t\t\tEndpointGroupRegion:            pulumi.String(defaultGetRegions.Regions[0].Id),\n\t\t\tCustomRoutingEndpointGroupName: pulumi.String(name),\n\t\t\tDescription:                    pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCustomRoutingEndpointGroupDestination, err := ga.NewCustomRoutingEndpointGroupDestination(ctx, \"default\", \u0026ga.CustomRoutingEndpointGroupDestinationArgs{\n\t\t\tEndpointGroupId: defaultCustomRoutingEndpointGroup.ID(),\n\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"TCP\"),\n\t\t\t},\n\t\t\tFromPort: pulumi.Int(1),\n\t\t\tToPort:   pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCustomRoutingEndpoint, err := ga.NewCustomRoutingEndpoint(ctx, \"default\", \u0026ga.CustomRoutingEndpointArgs{\n\t\t\tEndpointGroupId:         defaultCustomRoutingEndpointGroupDestination.EndpointGroupId,\n\t\t\tEndpoint:                defaultSwitch.ID(),\n\t\t\tType:                    pulumi.String(\"PrivateSubNet\"),\n\t\t\tTrafficToEndpointPolicy: pulumi.String(\"AllowAll\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewCustomRoutingEndpointTrafficPolicy(ctx, \"default\", \u0026ga.CustomRoutingEndpointTrafficPolicyArgs{\n\t\t\tEndpointId: defaultCustomRoutingEndpoint.CustomRoutingEndpointId,\n\t\t\tAddress:    pulumi.String(\"192.168.192.2\"),\n\t\t\tPortRanges: ga.CustomRoutingEndpointTrafficPolicyPortRangeArray{\n\t\t\t\t\u0026ga.CustomRoutingEndpointTrafficPolicyPortRangeArgs{\n\t\t\t\t\tFromPort: pulumi.Int(1),\n\t\t\t\t\tToPort:   pulumi.Int(2),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetAcceleratorsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackage;\nimport com.pulumi.alicloud.ga.BandwidthPackageArgs;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.ga.Listener;\nimport com.pulumi.alicloud.ga.ListenerArgs;\nimport com.pulumi.alicloud.ga.inputs.ListenerPortRangeArgs;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpointGroup;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpointGroupArgs;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpointGroupDestination;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpointGroupDestinationArgs;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpoint;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpointArgs;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpointTrafficPolicy;\nimport com.pulumi.alicloud.ga.CustomRoutingEndpointTrafficPolicyArgs;\nimport com.pulumi.alicloud.ga.inputs.CustomRoutingEndpointTrafficPolicyPortRangeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetAccelerators = GaFunctions.getAccelerators(GetAcceleratorsArgs.builder()\n            .status(\"active\")\n            .bandwidthBillingType(\"BandwidthPackage\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"192.168.192.0/24\")\n            .zoneId(default_.ids()[0])\n            .build());\n\n        var defaultBandwidthPackage = new BandwidthPackage(\"defaultBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(100)\n            .type(\"Basic\")\n            .bandwidthType(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .billingType(\"PayBy95\")\n            .ratio(30)\n            .build());\n\n        final var defaultGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultBandwidthPackageAttachment = new BandwidthPackageAttachment(\"defaultBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .acceleratorId(defaultGetAccelerators.accelerators()[1].id())\n            .bandwidthPackageId(defaultBandwidthPackage.id())\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .acceleratorId(defaultBandwidthPackageAttachment.acceleratorId())\n            .listenerType(\"CustomRouting\")\n            .portRanges(ListenerPortRangeArgs.builder()\n                .fromPort(10000)\n                .toPort(26000)\n                .build())\n            .build());\n\n        var defaultCustomRoutingEndpointGroup = new CustomRoutingEndpointGroup(\"defaultCustomRoutingEndpointGroup\", CustomRoutingEndpointGroupArgs.builder()\n            .acceleratorId(defaultListener.acceleratorId())\n            .listenerId(defaultListener.id())\n            .endpointGroupRegion(defaultGetRegions.regions()[0].id())\n            .customRoutingEndpointGroupName(name)\n            .description(name)\n            .build());\n\n        var defaultCustomRoutingEndpointGroupDestination = new CustomRoutingEndpointGroupDestination(\"defaultCustomRoutingEndpointGroupDestination\", CustomRoutingEndpointGroupDestinationArgs.builder()\n            .endpointGroupId(defaultCustomRoutingEndpointGroup.id())\n            .protocols(\"TCP\")\n            .fromPort(1)\n            .toPort(10)\n            .build());\n\n        var defaultCustomRoutingEndpoint = new CustomRoutingEndpoint(\"defaultCustomRoutingEndpoint\", CustomRoutingEndpointArgs.builder()\n            .endpointGroupId(defaultCustomRoutingEndpointGroupDestination.endpointGroupId())\n            .endpoint(defaultSwitch.id())\n            .type(\"PrivateSubNet\")\n            .trafficToEndpointPolicy(\"AllowAll\")\n            .build());\n\n        var defaultCustomRoutingEndpointTrafficPolicy = new CustomRoutingEndpointTrafficPolicy(\"defaultCustomRoutingEndpointTrafficPolicy\", CustomRoutingEndpointTrafficPolicyArgs.builder()\n            .endpointId(defaultCustomRoutingEndpoint.customRoutingEndpointId())\n            .address(\"192.168.192.2\")\n            .portRanges(CustomRoutingEndpointTrafficPolicyPortRangeArgs.builder()\n                .fromPort(1)\n                .toPort(2)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 192.168.192.0/24\n      zoneId: ${default.ids[0]}\n  defaultBandwidthPackage:\n    type: alicloud:ga:BandwidthPackage\n    name: default\n    properties:\n      bandwidth: 100\n      type: Basic\n      bandwidthType: Basic\n      paymentType: PayAsYouGo\n      billingType: PayBy95\n      ratio: 30\n  defaultBandwidthPackageAttachment:\n    type: alicloud:ga:BandwidthPackageAttachment\n    name: default\n    properties:\n      acceleratorId: ${defaultGetAccelerators.accelerators[1].id}\n      bandwidthPackageId: ${defaultBandwidthPackage.id}\n  defaultListener:\n    type: alicloud:ga:Listener\n    name: default\n    properties:\n      acceleratorId: ${defaultBandwidthPackageAttachment.acceleratorId}\n      listenerType: CustomRouting\n      portRanges:\n        - fromPort: 10000\n          toPort: 26000\n  defaultCustomRoutingEndpointGroup:\n    type: alicloud:ga:CustomRoutingEndpointGroup\n    name: default\n    properties:\n      acceleratorId: ${defaultListener.acceleratorId}\n      listenerId: ${defaultListener.id}\n      endpointGroupRegion: ${defaultGetRegions.regions[0].id}\n      customRoutingEndpointGroupName: ${name}\n      description: ${name}\n  defaultCustomRoutingEndpointGroupDestination:\n    type: alicloud:ga:CustomRoutingEndpointGroupDestination\n    name: default\n    properties:\n      endpointGroupId: ${defaultCustomRoutingEndpointGroup.id}\n      protocols:\n        - TCP\n      fromPort: 1\n      toPort: 10\n  defaultCustomRoutingEndpoint:\n    type: alicloud:ga:CustomRoutingEndpoint\n    name: default\n    properties:\n      endpointGroupId: ${defaultCustomRoutingEndpointGroupDestination.endpointGroupId}\n      endpoint: ${defaultSwitch.id}\n      type: PrivateSubNet\n      trafficToEndpointPolicy: AllowAll\n  defaultCustomRoutingEndpointTrafficPolicy:\n    type: alicloud:ga:CustomRoutingEndpointTrafficPolicy\n    name: default\n    properties:\n      endpointId: ${defaultCustomRoutingEndpoint.customRoutingEndpointId}\n      address: 192.168.192.2\n      portRanges:\n        - fromPort: 1\n          toPort: 2\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments: {}\n  defaultGetAccelerators:\n    fn::invoke:\n      function: alicloud:ga:getAccelerators\n      arguments:\n        status: active\n        bandwidthBillingType: BandwidthPackage\n  defaultGetRegions:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGlobal Accelerator (GA) Custom Routing Endpoint Traffic Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/customRoutingEndpointTrafficPolicy:CustomRoutingEndpointTrafficPolicy example \u003cendpoint_id\u003e:\u003ccustom_routing_endpoint_traffic_policy_id\u003e\n```\n\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n"},"address":{"type":"string","description":"The IP address of the destination to which traffic is allowed.\n"},"customRoutingEndpointTrafficPolicyId":{"type":"string","description":"The ID of the Custom Routing Endpoint Traffic Policy.\n"},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group.\n"},"endpointId":{"type":"string","description":"The ID of the Custom Routing Endpoint.\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n"},"portRanges":{"type":"array","items":{"$ref":"#/types/alicloud:ga/CustomRoutingEndpointTrafficPolicyPortRange:CustomRoutingEndpointTrafficPolicyPortRange"},"description":"Port rangeSee the following. See \u003cspan pulumi-lang-nodejs=\"`portRanges`\" pulumi-lang-dotnet=\"`PortRanges`\" pulumi-lang-go=\"`portRanges`\" pulumi-lang-python=\"`port_ranges`\" pulumi-lang-yaml=\"`portRanges`\" pulumi-lang-java=\"`portRanges`\"\u003e`port_ranges`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the Custom Routing Endpoint Traffic Policy.\n"}},"required":["acceleratorId","address","customRoutingEndpointTrafficPolicyId","endpointGroupId","endpointId","listenerId","status"],"inputProperties":{"address":{"type":"string","description":"The IP address of the destination to which traffic is allowed.\n"},"endpointId":{"type":"string","description":"The ID of the Custom Routing Endpoint.\n","willReplaceOnChanges":true},"portRanges":{"type":"array","items":{"$ref":"#/types/alicloud:ga/CustomRoutingEndpointTrafficPolicyPortRange:CustomRoutingEndpointTrafficPolicyPortRange"},"description":"Port rangeSee the following. See \u003cspan pulumi-lang-nodejs=\"`portRanges`\" pulumi-lang-dotnet=\"`PortRanges`\" pulumi-lang-go=\"`portRanges`\" pulumi-lang-python=\"`port_ranges`\" pulumi-lang-yaml=\"`portRanges`\" pulumi-lang-java=\"`portRanges`\"\u003e`port_ranges`\u003c/span\u003e below.\n"}},"requiredInputs":["address","endpointId"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomRoutingEndpointTrafficPolicy resources.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n"},"address":{"type":"string","description":"The IP address of the destination to which traffic is allowed.\n"},"customRoutingEndpointTrafficPolicyId":{"type":"string","description":"The ID of the Custom Routing Endpoint Traffic Policy.\n"},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group.\n"},"endpointId":{"type":"string","description":"The ID of the Custom Routing Endpoint.\n","willReplaceOnChanges":true},"listenerId":{"type":"string","description":"The ID of the listener.\n"},"portRanges":{"type":"array","items":{"$ref":"#/types/alicloud:ga/CustomRoutingEndpointTrafficPolicyPortRange:CustomRoutingEndpointTrafficPolicyPortRange"},"description":"Port rangeSee the following. See \u003cspan pulumi-lang-nodejs=\"`portRanges`\" pulumi-lang-dotnet=\"`PortRanges`\" pulumi-lang-go=\"`portRanges`\" pulumi-lang-python=\"`port_ranges`\" pulumi-lang-yaml=\"`portRanges`\" pulumi-lang-java=\"`portRanges`\"\u003e`port_ranges`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the Custom Routing Endpoint Traffic Policy.\n"}},"type":"object"}},"alicloud:ga/domain:Domain":{"description":"Provides a Ga Domain resource.\n\nFor information about Ga Domain and how to use it, see [What is Domain](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createdomain).\n\n\u003e **NOTE:** Available since v1.197.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ga.Accelerator(\"default\", {\n    duration: 1,\n    autoUseCoupon: true,\n    spec: \"1\",\n});\nconst defaultDomain = new alicloud.ga.Domain(\"default\", {\n    domain: \"changes.com.cn\",\n    acceleratorId: _default.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ga.Accelerator(\"default\",\n    duration=1,\n    auto_use_coupon=True,\n    spec=\"1\")\ndefault_domain = alicloud.ga.Domain(\"default\",\n    domain=\"changes.com.cn\",\n    accelerator_id=default.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ga.Accelerator(\"default\", new()\n    {\n        Duration = 1,\n        AutoUseCoupon = true,\n        Spec = \"1\",\n    });\n\n    var defaultDomain = new AliCloud.Ga.Domain(\"default\", new()\n    {\n        AcceleratedDomain = \"changes.com.cn\",\n        AcceleratorId = @default.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ga.NewAccelerator(ctx, \"default\", \u0026ga.AcceleratorArgs{\n\t\t\tDuration:      pulumi.Int(1),\n\t\t\tAutoUseCoupon: pulumi.Bool(true),\n\t\t\tSpec:          pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewDomain(ctx, \"default\", \u0026ga.DomainArgs{\n\t\t\tDomain:        pulumi.String(\"changes.com.cn\"),\n\t\t\tAcceleratorId: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.Accelerator;\nimport com.pulumi.alicloud.ga.AcceleratorArgs;\nimport com.pulumi.alicloud.ga.Domain;\nimport com.pulumi.alicloud.ga.DomainArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Accelerator(\"default\", AcceleratorArgs.builder()\n            .duration(1)\n            .autoUseCoupon(true)\n            .spec(\"1\")\n            .build());\n\n        var defaultDomain = new Domain(\"defaultDomain\", DomainArgs.builder()\n            .domain(\"changes.com.cn\")\n            .acceleratorId(default_.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ga:Accelerator\n    properties:\n      duration: 1\n      autoUseCoupon: true\n      spec: '1'\n  defaultDomain:\n    type: alicloud:ga:Domain\n    name: default\n    properties:\n      domain: changes.com.cn\n      acceleratorId: ${default.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGa Domain can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/domain:Domain example \u003caccelerator_id\u003e:\u003cdomain\u003e\n```\n\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the global acceleration instance.\n"},"domain":{"type":"string","description":"The accelerated domain name to be added. only top-level domain names are supported, such as 'example.com'.\n","language":{"csharp":{"name":"AcceleratedDomain"}}},"status":{"type":"string","description":"The status of the resource\n"}},"required":["acceleratorId","domain","status"],"inputProperties":{"acceleratorId":{"type":"string","description":"The ID of the global acceleration instance.\n","willReplaceOnChanges":true},"domain":{"type":"string","description":"The accelerated domain name to be added. only top-level domain names are supported, such as 'example.com'.\n","language":{"csharp":{"name":"AcceleratedDomain"}},"willReplaceOnChanges":true}},"requiredInputs":["acceleratorId","domain"],"stateInputs":{"description":"Input properties used for looking up and filtering Domain resources.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the global acceleration instance.\n","willReplaceOnChanges":true},"domain":{"type":"string","description":"The accelerated domain name to be added. only top-level domain names are supported, such as 'example.com'.\n","language":{"csharp":{"name":"AcceleratedDomain"}},"willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object"}},"alicloud:ga/endpointGroup:EndpointGroup":{"description":"Provides a Global Accelerator (GA) Endpoint Group resource.\n\nFor information about Global Accelerator (GA) Endpoint Group and how to use it, see [What is Endpoint Group](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createendpointgroup).\n\n\u003e **NOTE:** Available since v1.113.0.\n\n\u003e **NOTE:** Listeners that use different protocols support different types of Endpoint Groups:\n\n* For a `TCP` listener, if you want to create a \u003cspan pulumi-lang-nodejs=\"`virtual`\" pulumi-lang-dotnet=\"`Virtual`\" pulumi-lang-go=\"`virtual`\" pulumi-lang-python=\"`virtual`\" pulumi-lang-yaml=\"`virtual`\" pulumi-lang-java=\"`virtual`\"\u003e`virtual`\u003c/span\u003e Endpoint Group, please ensure that the \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e Endpoint Group of the same region has been created.\n* For a `UDP` listener, you can only create \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e Endpoint Group.\n* For an `HTTP` or `HTTPS` listener, you can create one \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e Endpoint Group and multiple \u003cspan pulumi-lang-nodejs=\"`virtual`\" pulumi-lang-dotnet=\"`Virtual`\" pulumi-lang-go=\"`virtual`\" pulumi-lang-python=\"`virtual`\" pulumi-lang-yaml=\"`virtual`\" pulumi-lang-java=\"`virtual`\"\u003e`virtual`\u003c/span\u003e Endpoint Group.\n* After you create a \u003cspan pulumi-lang-nodejs=\"`virtual`\" pulumi-lang-dotnet=\"`Virtual`\" pulumi-lang-go=\"`virtual`\" pulumi-lang-python=\"`virtual`\" pulumi-lang-yaml=\"`virtual`\" pulumi-lang-java=\"`virtual`\"\u003e`virtual`\u003c/span\u003e endpoint group for an `HTTP` or `HTTPS` listener, you can create a forwarding rule and associate the forwarding rule with the \u003cspan pulumi-lang-nodejs=\"`virtual`\" pulumi-lang-dotnet=\"`Virtual`\" pulumi-lang-go=\"`virtual`\" pulumi-lang-python=\"`virtual`\" pulumi-lang-yaml=\"`virtual`\" pulumi-lang-java=\"`virtual`\"\u003e`virtual`\u003c/span\u003e endpoint group. Then, the `HTTP` or `HTTPS` listener forwards requests with different destination domain names or paths to the \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`virtual`\" pulumi-lang-dotnet=\"`Virtual`\" pulumi-lang-go=\"`virtual`\" pulumi-lang-python=\"`virtual`\" pulumi-lang-yaml=\"`virtual`\" pulumi-lang-java=\"`virtual`\"\u003e`virtual`\u003c/span\u003e Endpoint Group based on the forwarding rule. This way, you can use one Global Accelerator (GA) instance to accelerate access to multiple domain names or paths. For more information about how to create a forwarding rule, see [Manage forwarding rules](https://www.alibabacloud.com/help/en/doc-detail/204224.htm).\n\n\u003e **WARN:** There is a serious bug in the \u003cspan pulumi-lang-nodejs=\"`trafficPercentage`\" pulumi-lang-dotnet=\"`TrafficPercentage`\" pulumi-lang-go=\"`trafficPercentage`\" pulumi-lang-python=\"`traffic_percentage`\" pulumi-lang-yaml=\"`trafficPercentage`\" pulumi-lang-java=\"`trafficPercentage`\"\u003e`traffic_percentage`\u003c/span\u003e of the \u003cspan pulumi-lang-nodejs=\"`alicloud.ga.EndpointGroup`\" pulumi-lang-dotnet=\"`alicloud.ga.EndpointGroup`\" pulumi-lang-go=\"`ga.EndpointGroup`\" pulumi-lang-python=\"`ga.EndpointGroup`\" pulumi-lang-yaml=\"`alicloud.ga.EndpointGroup`\" pulumi-lang-java=\"`alicloud.ga.EndpointGroup`\"\u003e`alicloud.ga.EndpointGroup`\u003c/span\u003e before version 1.211.1, while the value of \u003cspan pulumi-lang-nodejs=\"`trafficPercentage`\" pulumi-lang-dotnet=\"`TrafficPercentage`\" pulumi-lang-go=\"`trafficPercentage`\" pulumi-lang-python=\"`traffic_percentage`\" pulumi-lang-yaml=\"`trafficPercentage`\" pulumi-lang-java=\"`trafficPercentage`\"\u003e`traffic_percentage`\u003c/span\u003e has not been explicitly specified in the Terraform code, Terraform will set \u003cspan pulumi-lang-nodejs=\"`trafficPercentage`\" pulumi-lang-dotnet=\"`TrafficPercentage`\" pulumi-lang-go=\"`trafficPercentage`\" pulumi-lang-python=\"`traffic_percentage`\" pulumi-lang-yaml=\"`trafficPercentage`\" pulumi-lang-java=\"`trafficPercentage`\"\u003e`traffic_percentage`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. This behavior will cause your instance traffic to drop to zero. So, please use provider greater than or equal to version `1.211.1`.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst _default = new alicloud.ga.Accelerator(\"default\", {\n    duration: 1,\n    autoUseCoupon: true,\n    spec: \"1\",\n});\nconst defaultBandwidthPackage = new alicloud.ga.BandwidthPackage(\"default\", {\n    bandwidth: 100,\n    type: \"Basic\",\n    bandwidthType: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    billingType: \"PayBy95\",\n    ratio: 30,\n});\nconst defaultBandwidthPackageAttachment = new alicloud.ga.BandwidthPackageAttachment(\"default\", {\n    acceleratorId: _default.id,\n    bandwidthPackageId: defaultBandwidthPackage.id,\n});\nconst defaultListener = new alicloud.ga.Listener(\"default\", {\n    acceleratorId: defaultBandwidthPackageAttachment.acceleratorId,\n    portRanges: [{\n        fromPort: 60,\n        toPort: 70,\n    }],\n    clientAffinity: \"SOURCE_IP\",\n    protocol: \"UDP\",\n    name: \"terraform-example\",\n});\nconst defaultEipAddress: alicloud.ecs.EipAddress[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultEipAddress.push(new alicloud.ecs.EipAddress(`default-${range.value}`, {\n        bandwidth: \"10\",\n        internetChargeType: \"PayByBandwidth\",\n        addressName: \"terraform-example\",\n    }));\n}\nconst defaultEndpointGroup = new alicloud.ga.EndpointGroup(\"default\", {\n    acceleratorId: _default.id,\n    endpointConfigurations: [\n        {\n            endpoint: defaultEipAddress[0].ipAddress,\n            type: \"PublicIp\",\n            weight: 20,\n        },\n        {\n            endpoint: defaultEipAddress[1].ipAddress,\n            type: \"PublicIp\",\n            weight: 20,\n        },\n    ],\n    endpointGroupRegion: region,\n    listenerId: defaultListener.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\ndefault = alicloud.ga.Accelerator(\"default\",\n    duration=1,\n    auto_use_coupon=True,\n    spec=\"1\")\ndefault_bandwidth_package = alicloud.ga.BandwidthPackage(\"default\",\n    bandwidth=100,\n    type=\"Basic\",\n    bandwidth_type=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    billing_type=\"PayBy95\",\n    ratio=30)\ndefault_bandwidth_package_attachment = alicloud.ga.BandwidthPackageAttachment(\"default\",\n    accelerator_id=default.id,\n    bandwidth_package_id=default_bandwidth_package.id)\ndefault_listener = alicloud.ga.Listener(\"default\",\n    accelerator_id=default_bandwidth_package_attachment.accelerator_id,\n    port_ranges=[{\n        \"from_port\": 60,\n        \"to_port\": 70,\n    }],\n    client_affinity=\"SOURCE_IP\",\n    protocol=\"UDP\",\n    name=\"terraform-example\")\ndefault_eip_address = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_eip_address.append(alicloud.ecs.EipAddress(f\"default-{range['value']}\",\n        bandwidth=\"10\",\n        internet_charge_type=\"PayByBandwidth\",\n        address_name=\"terraform-example\"))\ndefault_endpoint_group = alicloud.ga.EndpointGroup(\"default\",\n    accelerator_id=default.id,\n    endpoint_configurations=[\n        {\n            \"endpoint\": default_eip_address[0].ip_address,\n            \"type\": \"PublicIp\",\n            \"weight\": 20,\n        },\n        {\n            \"endpoint\": default_eip_address[1].ip_address,\n            \"type\": \"PublicIp\",\n            \"weight\": 20,\n        },\n    ],\n    endpoint_group_region=region,\n    listener_id=default_listener.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var @default = new AliCloud.Ga.Accelerator(\"default\", new()\n    {\n        Duration = 1,\n        AutoUseCoupon = true,\n        Spec = \"1\",\n    });\n\n    var defaultBandwidthPackage = new AliCloud.Ga.BandwidthPackage(\"default\", new()\n    {\n        Bandwidth = 100,\n        Type = \"Basic\",\n        BandwidthType = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        BillingType = \"PayBy95\",\n        Ratio = 30,\n    });\n\n    var defaultBandwidthPackageAttachment = new AliCloud.Ga.BandwidthPackageAttachment(\"default\", new()\n    {\n        AcceleratorId = @default.Id,\n        BandwidthPackageId = defaultBandwidthPackage.Id,\n    });\n\n    var defaultListener = new AliCloud.Ga.Listener(\"default\", new()\n    {\n        AcceleratorId = defaultBandwidthPackageAttachment.AcceleratorId,\n        PortRanges = new[]\n        {\n            new AliCloud.Ga.Inputs.ListenerPortRangeArgs\n            {\n                FromPort = 60,\n                ToPort = 70,\n            },\n        },\n        ClientAffinity = \"SOURCE_IP\",\n        Protocol = \"UDP\",\n        Name = \"terraform-example\",\n    });\n\n    var defaultEipAddress = new List\u003cAliCloud.Ecs.EipAddress\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultEipAddress.Add(new AliCloud.Ecs.EipAddress($\"default-{range.Value}\", new()\n        {\n            Bandwidth = \"10\",\n            InternetChargeType = \"PayByBandwidth\",\n            AddressName = \"terraform-example\",\n        }));\n    }\n    var defaultEndpointGroup = new AliCloud.Ga.EndpointGroup(\"default\", new()\n    {\n        AcceleratorId = @default.Id,\n        EndpointConfigurations = new[]\n        {\n            new AliCloud.Ga.Inputs.EndpointGroupEndpointConfigurationArgs\n            {\n                Endpoint = defaultEipAddress[0].IpAddress,\n                Type = \"PublicIp\",\n                Weight = 20,\n            },\n            new AliCloud.Ga.Inputs.EndpointGroupEndpointConfigurationArgs\n            {\n                Endpoint = defaultEipAddress[1].IpAddress,\n                Type = \"PublicIp\",\n                Weight = 20,\n            },\n        },\n        EndpointGroupRegion = region,\n        ListenerId = defaultListener.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\t_default, err := ga.NewAccelerator(ctx, \"default\", \u0026ga.AcceleratorArgs{\n\t\t\tDuration:      pulumi.Int(1),\n\t\t\tAutoUseCoupon: pulumi.Bool(true),\n\t\t\tSpec:          pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackage, err := ga.NewBandwidthPackage(ctx, \"default\", \u0026ga.BandwidthPackageArgs{\n\t\t\tBandwidth:     pulumi.Int(100),\n\t\t\tType:          pulumi.String(\"Basic\"),\n\t\t\tBandwidthType: pulumi.String(\"Basic\"),\n\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\tBillingType:   pulumi.String(\"PayBy95\"),\n\t\t\tRatio:         pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackageAttachment, err := ga.NewBandwidthPackageAttachment(ctx, \"default\", \u0026ga.BandwidthPackageAttachmentArgs{\n\t\t\tAcceleratorId:      _default.ID(),\n\t\t\tBandwidthPackageId: defaultBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultListener, err := ga.NewListener(ctx, \"default\", \u0026ga.ListenerArgs{\n\t\t\tAcceleratorId: defaultBandwidthPackageAttachment.AcceleratorId,\n\t\t\tPortRanges: ga.ListenerPortRangeArray{\n\t\t\t\t\u0026ga.ListenerPortRangeArgs{\n\t\t\t\t\tFromPort: pulumi.Int(60),\n\t\t\t\t\tToPort:   pulumi.Int(70),\n\t\t\t\t},\n\t\t\t},\n\t\t\tClientAffinity: pulumi.String(\"SOURCE_IP\"),\n\t\t\tProtocol:       pulumi.String(\"UDP\"),\n\t\t\tName:           pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar defaultEipAddress []*ecs.EipAddress\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := ecs.NewEipAddress(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026ecs.EipAddressArgs{\n\t\t\t\tBandwidth:          pulumi.String(\"10\"),\n\t\t\t\tInternetChargeType: pulumi.String(\"PayByBandwidth\"),\n\t\t\t\tAddressName:        pulumi.String(\"terraform-example\"),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultEipAddress = append(defaultEipAddress, __res)\n\t\t}\n\t\t_, err = ga.NewEndpointGroup(ctx, \"default\", \u0026ga.EndpointGroupArgs{\n\t\t\tAcceleratorId: _default.ID(),\n\t\t\tEndpointConfigurations: ga.EndpointGroupEndpointConfigurationArray{\n\t\t\t\t\u0026ga.EndpointGroupEndpointConfigurationArgs{\n\t\t\t\t\tEndpoint: defaultEipAddress[0].IpAddress,\n\t\t\t\t\tType:     pulumi.String(\"PublicIp\"),\n\t\t\t\t\tWeight:   pulumi.Int(20),\n\t\t\t\t},\n\t\t\t\t\u0026ga.EndpointGroupEndpointConfigurationArgs{\n\t\t\t\t\tEndpoint: defaultEipAddress[1].IpAddress,\n\t\t\t\t\tType:     pulumi.String(\"PublicIp\"),\n\t\t\t\t\tWeight:   pulumi.Int(20),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEndpointGroupRegion: pulumi.String(region),\n\t\t\tListenerId:          defaultListener.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.Accelerator;\nimport com.pulumi.alicloud.ga.AcceleratorArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackage;\nimport com.pulumi.alicloud.ga.BandwidthPackageArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.ga.Listener;\nimport com.pulumi.alicloud.ga.ListenerArgs;\nimport com.pulumi.alicloud.ga.inputs.ListenerPortRangeArgs;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAddressArgs;\nimport com.pulumi.alicloud.ga.EndpointGroup;\nimport com.pulumi.alicloud.ga.EndpointGroupArgs;\nimport com.pulumi.alicloud.ga.inputs.EndpointGroupEndpointConfigurationArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        var default_ = new Accelerator(\"default\", AcceleratorArgs.builder()\n            .duration(1)\n            .autoUseCoupon(true)\n            .spec(\"1\")\n            .build());\n\n        var defaultBandwidthPackage = new BandwidthPackage(\"defaultBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(100)\n            .type(\"Basic\")\n            .bandwidthType(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .billingType(\"PayBy95\")\n            .ratio(30)\n            .build());\n\n        var defaultBandwidthPackageAttachment = new BandwidthPackageAttachment(\"defaultBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .acceleratorId(default_.id())\n            .bandwidthPackageId(defaultBandwidthPackage.id())\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .acceleratorId(defaultBandwidthPackageAttachment.acceleratorId())\n            .portRanges(ListenerPortRangeArgs.builder()\n                .fromPort(60)\n                .toPort(70)\n                .build())\n            .clientAffinity(\"SOURCE_IP\")\n            .protocol(\"UDP\")\n            .name(\"terraform-example\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new EipAddress(\"defaultEipAddress-\" + i, EipAddressArgs.builder()\n                .bandwidth(\"10\")\n                .internetChargeType(\"PayByBandwidth\")\n                .addressName(\"terraform-example\")\n                .build());\n\n        \n}\n        var defaultEndpointGroup = new EndpointGroup(\"defaultEndpointGroup\", EndpointGroupArgs.builder()\n            .acceleratorId(default_.id())\n            .endpointConfigurations(            \n                EndpointGroupEndpointConfigurationArgs.builder()\n                    .endpoint(defaultEipAddress[0].ipAddress())\n                    .type(\"PublicIp\")\n                    .weight(20)\n                    .build(),\n                EndpointGroupEndpointConfigurationArgs.builder()\n                    .endpoint(defaultEipAddress[1].ipAddress())\n                    .type(\"PublicIp\")\n                    .weight(20)\n                    .build())\n            .endpointGroupRegion(region)\n            .listenerId(defaultListener.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\nresources:\n  default:\n    type: alicloud:ga:Accelerator\n    properties:\n      duration: 1\n      autoUseCoupon: true\n      spec: '1'\n  defaultBandwidthPackage:\n    type: alicloud:ga:BandwidthPackage\n    name: default\n    properties:\n      bandwidth: 100\n      type: Basic\n      bandwidthType: Basic\n      paymentType: PayAsYouGo\n      billingType: PayBy95\n      ratio: 30\n  defaultBandwidthPackageAttachment:\n    type: alicloud:ga:BandwidthPackageAttachment\n    name: default\n    properties:\n      acceleratorId: ${default.id}\n      bandwidthPackageId: ${defaultBandwidthPackage.id}\n  defaultListener:\n    type: alicloud:ga:Listener\n    name: default\n    properties:\n      acceleratorId: ${defaultBandwidthPackageAttachment.acceleratorId}\n      portRanges:\n        - fromPort: 60\n          toPort: 70\n      clientAffinity: SOURCE_IP\n      protocol: UDP\n      name: terraform-example\n  defaultEipAddress:\n    type: alicloud:ecs:EipAddress\n    name: default\n    properties:\n      bandwidth: '10'\n      internetChargeType: PayByBandwidth\n      addressName: terraform-example\n    options: {}\n  defaultEndpointGroup:\n    type: alicloud:ga:EndpointGroup\n    name: default\n    properties:\n      acceleratorId: ${default.id}\n      endpointConfigurations:\n        - endpoint: ${defaultEipAddress[0].ipAddress}\n          type: PublicIp\n          weight: '20'\n        - endpoint: ${defaultEipAddress[1].ipAddress}\n          type: PublicIp\n          weight: '20'\n      endpointGroupRegion: ${region}\n      listenerId: ${defaultListener.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGa Endpoint Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/endpointGroup:EndpointGroup example \u003cid\u003e\n```\n\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator instance to which the endpoint group will be added.\n"},"description":{"type":"string","description":"The description of the endpoint group.\n"},"endpointConfigurations":{"type":"array","items":{"$ref":"#/types/alicloud:ga/EndpointGroupEndpointConfiguration:EndpointGroupEndpointConfiguration"},"description":"The endpointConfigurations of the endpoint group. See \u003cspan pulumi-lang-nodejs=\"`endpointConfigurations`\" pulumi-lang-dotnet=\"`EndpointConfigurations`\" pulumi-lang-go=\"`endpointConfigurations`\" pulumi-lang-python=\"`endpoint_configurations`\" pulumi-lang-yaml=\"`endpointConfigurations`\" pulumi-lang-java=\"`endpointConfigurations`\"\u003e`endpoint_configurations`\u003c/span\u003e below.\n"},"endpointGroupIpLists":{"type":"array","items":{"type":"string"},"description":"(Available since v1.213.0) The active endpoint IP addresses of the endpoint group. \u003cspan pulumi-lang-nodejs=\"`endpointGroupIpList`\" pulumi-lang-dotnet=\"`EndpointGroupIpList`\" pulumi-lang-go=\"`endpointGroupIpList`\" pulumi-lang-python=\"`endpoint_group_ip_list`\" pulumi-lang-yaml=\"`endpointGroupIpList`\" pulumi-lang-java=\"`endpointGroupIpList`\"\u003e`endpoint_group_ip_list`\u003c/span\u003e will change with the growth of network traffic. You can run `pulumi up` to query the latest CIDR blocks and IP addresses.\n"},"endpointGroupRegion":{"type":"string","description":"The ID of the region where the endpoint group is deployed.\n"},"endpointGroupType":{"type":"string","description":"The endpoint group type. Default value: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`virtual`\" pulumi-lang-dotnet=\"`Virtual`\" pulumi-lang-go=\"`virtual`\" pulumi-lang-python=\"`virtual`\" pulumi-lang-yaml=\"`virtual`\" pulumi-lang-java=\"`virtual`\"\u003e`virtual`\u003c/span\u003e.\n\u003e **NOTE:** Currently, only `HTTP` or `HTTPS` protocol listener can directly create a \u003cspan pulumi-lang-nodejs=\"`virtual`\" pulumi-lang-dotnet=\"`Virtual`\" pulumi-lang-go=\"`virtual`\" pulumi-lang-python=\"`virtual`\" pulumi-lang-yaml=\"`virtual`\" pulumi-lang-java=\"`virtual`\"\u003e`virtual`\u003c/span\u003e Endpoint Group. If it is `TCP` protocol listener, and you want to create a \u003cspan pulumi-lang-nodejs=\"`virtual`\" pulumi-lang-dotnet=\"`Virtual`\" pulumi-lang-go=\"`virtual`\" pulumi-lang-python=\"`virtual`\" pulumi-lang-yaml=\"`virtual`\" pulumi-lang-java=\"`virtual`\"\u003e`virtual`\u003c/span\u003e Endpoint Group, please ensure that the \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e Endpoint Group has been created.\n"},"endpointProtocolVersion":{"type":"string","description":"The backend service protocol of the endpoint that is associated with the intelligent routing listener. Valid values: `HTTP1.1`, `HTTP2`.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`endpointProtocolVersion`\" pulumi-lang-dotnet=\"`EndpointProtocolVersion`\" pulumi-lang-go=\"`endpointProtocolVersion`\" pulumi-lang-python=\"`endpoint_protocol_version`\" pulumi-lang-yaml=\"`endpointProtocolVersion`\" pulumi-lang-java=\"`endpointProtocolVersion`\"\u003e`endpoint_protocol_version`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`endpointRequestProtocol`\" pulumi-lang-dotnet=\"`EndpointRequestProtocol`\" pulumi-lang-go=\"`endpointRequestProtocol`\" pulumi-lang-python=\"`endpoint_request_protocol`\" pulumi-lang-yaml=\"`endpointRequestProtocol`\" pulumi-lang-java=\"`endpointRequestProtocol`\"\u003e`endpoint_request_protocol`\u003c/span\u003e is set to `HTTPS`.\n"},"endpointRequestProtocol":{"type":"string","description":"The protocol that is used by the backend server. Valid values: `HTTP`, `HTTPS`.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`endpointRequestProtocol`\" pulumi-lang-dotnet=\"`EndpointRequestProtocol`\" pulumi-lang-go=\"`endpointRequestProtocol`\" pulumi-lang-python=\"`endpoint_request_protocol`\" pulumi-lang-yaml=\"`endpointRequestProtocol`\" pulumi-lang-java=\"`endpointRequestProtocol`\"\u003e`endpoint_request_protocol`\u003c/span\u003e can be specified only if the listener that is associated with the endpoint group uses `HTTP` or `HTTPS`. For the listener of `HTTP` protocol, \u003cspan pulumi-lang-nodejs=\"`endpointRequestProtocol`\" pulumi-lang-dotnet=\"`EndpointRequestProtocol`\" pulumi-lang-go=\"`endpointRequestProtocol`\" pulumi-lang-python=\"`endpoint_request_protocol`\" pulumi-lang-yaml=\"`endpointRequestProtocol`\" pulumi-lang-java=\"`endpointRequestProtocol`\"\u003e`endpoint_request_protocol`\u003c/span\u003e can only be set to `HTTP`.\n"},"healthCheckEnabled":{"type":"boolean","description":"Specifies whether to enable the health check feature. Valid values:\n"},"healthCheckIntervalSeconds":{"type":"integer","description":"The interval between two consecutive health checks. Unit: seconds.\n"},"healthCheckPath":{"type":"string","description":"The path specified as the destination of the targets for health checks.\n"},"healthCheckPort":{"type":"integer","description":"The port that is used for health checks.\n"},"healthCheckProtocol":{"type":"string","description":"The protocol that is used to connect to the targets for health checks. Valid values:\n- `TCP` or \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e: TCP protocol.\n- `HTTP` or \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e: HTTP protocol.\n- `HTTPS` or \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e: HTTPS protocol.\n\u003e **NOTE:** From version 1.223.0, \u003cspan pulumi-lang-nodejs=\"`healthCheckProtocol`\" pulumi-lang-dotnet=\"`HealthCheckProtocol`\" pulumi-lang-go=\"`healthCheckProtocol`\" pulumi-lang-python=\"`health_check_protocol`\" pulumi-lang-yaml=\"`healthCheckProtocol`\" pulumi-lang-java=\"`healthCheckProtocol`\"\u003e`health_check_protocol`\u003c/span\u003e can be set to `TCP`, `HTTP`, `HTTPS`.\n"},"listenerId":{"type":"string","description":"The ID of the listener that is associated with the endpoint group.\n"},"name":{"type":"string","description":"The name of the endpoint group.\n"},"portOverrides":{"$ref":"#/types/alicloud:ga/EndpointGroupPortOverrides:EndpointGroupPortOverrides","description":"Mapping between listening port and forwarding port of boarding point. See \u003cspan pulumi-lang-nodejs=\"`portOverrides`\" pulumi-lang-dotnet=\"`PortOverrides`\" pulumi-lang-go=\"`portOverrides`\" pulumi-lang-python=\"`port_overrides`\" pulumi-lang-yaml=\"`portOverrides`\" pulumi-lang-java=\"`portOverrides`\"\u003e`port_overrides`\u003c/span\u003e below.\n\u003e **NOTE:** Port mapping is only supported when creating terminal node group for listening instance of HTTP or HTTPS protocol. The listening port in the port map must be consistent with the listening port of the current listening instance.\n"},"status":{"type":"string","description":"The status of the endpoint group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"thresholdCount":{"type":"integer","description":"The number of consecutive failed heath checks that must occur before the endpoint is deemed unhealthy. Default value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"trafficPercentage":{"type":"integer","description":"The weight of the endpoint group when the corresponding listener is associated with multiple endpoint groups.\n"}},"required":["acceleratorId","endpointConfigurations","endpointGroupIpLists","endpointGroupRegion","endpointGroupType","endpointProtocolVersion","endpointRequestProtocol","listenerId","name","status","thresholdCount"],"inputProperties":{"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator instance to which the endpoint group will be added.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the endpoint group.\n"},"endpointConfigurations":{"type":"array","items":{"$ref":"#/types/alicloud:ga/EndpointGroupEndpointConfiguration:EndpointGroupEndpointConfiguration"},"description":"The endpointConfigurations of the endpoint group. See \u003cspan pulumi-lang-nodejs=\"`endpointConfigurations`\" pulumi-lang-dotnet=\"`EndpointConfigurations`\" pulumi-lang-go=\"`endpointConfigurations`\" pulumi-lang-python=\"`endpoint_configurations`\" pulumi-lang-yaml=\"`endpointConfigurations`\" pulumi-lang-java=\"`endpointConfigurations`\"\u003e`endpoint_configurations`\u003c/span\u003e below.\n"},"endpointGroupRegion":{"type":"string","description":"The ID of the region where the endpoint group is deployed.\n","willReplaceOnChanges":true},"endpointGroupType":{"type":"string","description":"The endpoint group type. Default value: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`virtual`\" pulumi-lang-dotnet=\"`Virtual`\" pulumi-lang-go=\"`virtual`\" pulumi-lang-python=\"`virtual`\" pulumi-lang-yaml=\"`virtual`\" pulumi-lang-java=\"`virtual`\"\u003e`virtual`\u003c/span\u003e.\n\u003e **NOTE:** Currently, only `HTTP` or `HTTPS` protocol listener can directly create a \u003cspan pulumi-lang-nodejs=\"`virtual`\" pulumi-lang-dotnet=\"`Virtual`\" pulumi-lang-go=\"`virtual`\" pulumi-lang-python=\"`virtual`\" pulumi-lang-yaml=\"`virtual`\" pulumi-lang-java=\"`virtual`\"\u003e`virtual`\u003c/span\u003e Endpoint Group. If it is `TCP` protocol listener, and you want to create a \u003cspan pulumi-lang-nodejs=\"`virtual`\" pulumi-lang-dotnet=\"`Virtual`\" pulumi-lang-go=\"`virtual`\" pulumi-lang-python=\"`virtual`\" pulumi-lang-yaml=\"`virtual`\" pulumi-lang-java=\"`virtual`\"\u003e`virtual`\u003c/span\u003e Endpoint Group, please ensure that the \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e Endpoint Group has been created.\n","willReplaceOnChanges":true},"endpointProtocolVersion":{"type":"string","description":"The backend service protocol of the endpoint that is associated with the intelligent routing listener. Valid values: `HTTP1.1`, `HTTP2`.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`endpointProtocolVersion`\" pulumi-lang-dotnet=\"`EndpointProtocolVersion`\" pulumi-lang-go=\"`endpointProtocolVersion`\" pulumi-lang-python=\"`endpoint_protocol_version`\" pulumi-lang-yaml=\"`endpointProtocolVersion`\" pulumi-lang-java=\"`endpointProtocolVersion`\"\u003e`endpoint_protocol_version`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`endpointRequestProtocol`\" pulumi-lang-dotnet=\"`EndpointRequestProtocol`\" pulumi-lang-go=\"`endpointRequestProtocol`\" pulumi-lang-python=\"`endpoint_request_protocol`\" pulumi-lang-yaml=\"`endpointRequestProtocol`\" pulumi-lang-java=\"`endpointRequestProtocol`\"\u003e`endpoint_request_protocol`\u003c/span\u003e is set to `HTTPS`.\n"},"endpointRequestProtocol":{"type":"string","description":"The protocol that is used by the backend server. Valid values: `HTTP`, `HTTPS`.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`endpointRequestProtocol`\" pulumi-lang-dotnet=\"`EndpointRequestProtocol`\" pulumi-lang-go=\"`endpointRequestProtocol`\" pulumi-lang-python=\"`endpoint_request_protocol`\" pulumi-lang-yaml=\"`endpointRequestProtocol`\" pulumi-lang-java=\"`endpointRequestProtocol`\"\u003e`endpoint_request_protocol`\u003c/span\u003e can be specified only if the listener that is associated with the endpoint group uses `HTTP` or `HTTPS`. For the listener of `HTTP` protocol, \u003cspan pulumi-lang-nodejs=\"`endpointRequestProtocol`\" pulumi-lang-dotnet=\"`EndpointRequestProtocol`\" pulumi-lang-go=\"`endpointRequestProtocol`\" pulumi-lang-python=\"`endpoint_request_protocol`\" pulumi-lang-yaml=\"`endpointRequestProtocol`\" pulumi-lang-java=\"`endpointRequestProtocol`\"\u003e`endpoint_request_protocol`\u003c/span\u003e can only be set to `HTTP`.\n"},"healthCheckEnabled":{"type":"boolean","description":"Specifies whether to enable the health check feature. Valid values:\n"},"healthCheckIntervalSeconds":{"type":"integer","description":"The interval between two consecutive health checks. Unit: seconds.\n"},"healthCheckPath":{"type":"string","description":"The path specified as the destination of the targets for health checks.\n"},"healthCheckPort":{"type":"integer","description":"The port that is used for health checks.\n"},"healthCheckProtocol":{"type":"string","description":"The protocol that is used to connect to the targets for health checks. Valid values:\n- `TCP` or \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e: TCP protocol.\n- `HTTP` or \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e: HTTP protocol.\n- `HTTPS` or \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e: HTTPS protocol.\n\u003e **NOTE:** From version 1.223.0, \u003cspan pulumi-lang-nodejs=\"`healthCheckProtocol`\" pulumi-lang-dotnet=\"`HealthCheckProtocol`\" pulumi-lang-go=\"`healthCheckProtocol`\" pulumi-lang-python=\"`health_check_protocol`\" pulumi-lang-yaml=\"`healthCheckProtocol`\" pulumi-lang-java=\"`healthCheckProtocol`\"\u003e`health_check_protocol`\u003c/span\u003e can be set to `TCP`, `HTTP`, `HTTPS`.\n"},"listenerId":{"type":"string","description":"The ID of the listener that is associated with the endpoint group.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the endpoint group.\n"},"portOverrides":{"$ref":"#/types/alicloud:ga/EndpointGroupPortOverrides:EndpointGroupPortOverrides","description":"Mapping between listening port and forwarding port of boarding point. See \u003cspan pulumi-lang-nodejs=\"`portOverrides`\" pulumi-lang-dotnet=\"`PortOverrides`\" pulumi-lang-go=\"`portOverrides`\" pulumi-lang-python=\"`port_overrides`\" pulumi-lang-yaml=\"`portOverrides`\" pulumi-lang-java=\"`portOverrides`\"\u003e`port_overrides`\u003c/span\u003e below.\n\u003e **NOTE:** Port mapping is only supported when creating terminal node group for listening instance of HTTP or HTTPS protocol. The listening port in the port map must be consistent with the listening port of the current listening instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"thresholdCount":{"type":"integer","description":"The number of consecutive failed heath checks that must occur before the endpoint is deemed unhealthy. Default value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"trafficPercentage":{"type":"integer","description":"The weight of the endpoint group when the corresponding listener is associated with multiple endpoint groups.\n"}},"requiredInputs":["acceleratorId","endpointConfigurations","endpointGroupRegion","listenerId"],"stateInputs":{"description":"Input properties used for looking up and filtering EndpointGroup resources.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator instance to which the endpoint group will be added.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the endpoint group.\n"},"endpointConfigurations":{"type":"array","items":{"$ref":"#/types/alicloud:ga/EndpointGroupEndpointConfiguration:EndpointGroupEndpointConfiguration"},"description":"The endpointConfigurations of the endpoint group. See \u003cspan pulumi-lang-nodejs=\"`endpointConfigurations`\" pulumi-lang-dotnet=\"`EndpointConfigurations`\" pulumi-lang-go=\"`endpointConfigurations`\" pulumi-lang-python=\"`endpoint_configurations`\" pulumi-lang-yaml=\"`endpointConfigurations`\" pulumi-lang-java=\"`endpointConfigurations`\"\u003e`endpoint_configurations`\u003c/span\u003e below.\n"},"endpointGroupIpLists":{"type":"array","items":{"type":"string"},"description":"(Available since v1.213.0) The active endpoint IP addresses of the endpoint group. \u003cspan pulumi-lang-nodejs=\"`endpointGroupIpList`\" pulumi-lang-dotnet=\"`EndpointGroupIpList`\" pulumi-lang-go=\"`endpointGroupIpList`\" pulumi-lang-python=\"`endpoint_group_ip_list`\" pulumi-lang-yaml=\"`endpointGroupIpList`\" pulumi-lang-java=\"`endpointGroupIpList`\"\u003e`endpoint_group_ip_list`\u003c/span\u003e will change with the growth of network traffic. You can run `pulumi up` to query the latest CIDR blocks and IP addresses.\n"},"endpointGroupRegion":{"type":"string","description":"The ID of the region where the endpoint group is deployed.\n","willReplaceOnChanges":true},"endpointGroupType":{"type":"string","description":"The endpoint group type. Default value: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`virtual`\" pulumi-lang-dotnet=\"`Virtual`\" pulumi-lang-go=\"`virtual`\" pulumi-lang-python=\"`virtual`\" pulumi-lang-yaml=\"`virtual`\" pulumi-lang-java=\"`virtual`\"\u003e`virtual`\u003c/span\u003e.\n\u003e **NOTE:** Currently, only `HTTP` or `HTTPS` protocol listener can directly create a \u003cspan pulumi-lang-nodejs=\"`virtual`\" pulumi-lang-dotnet=\"`Virtual`\" pulumi-lang-go=\"`virtual`\" pulumi-lang-python=\"`virtual`\" pulumi-lang-yaml=\"`virtual`\" pulumi-lang-java=\"`virtual`\"\u003e`virtual`\u003c/span\u003e Endpoint Group. If it is `TCP` protocol listener, and you want to create a \u003cspan pulumi-lang-nodejs=\"`virtual`\" pulumi-lang-dotnet=\"`Virtual`\" pulumi-lang-go=\"`virtual`\" pulumi-lang-python=\"`virtual`\" pulumi-lang-yaml=\"`virtual`\" pulumi-lang-java=\"`virtual`\"\u003e`virtual`\u003c/span\u003e Endpoint Group, please ensure that the \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e Endpoint Group has been created.\n","willReplaceOnChanges":true},"endpointProtocolVersion":{"type":"string","description":"The backend service protocol of the endpoint that is associated with the intelligent routing listener. Valid values: `HTTP1.1`, `HTTP2`.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`endpointProtocolVersion`\" pulumi-lang-dotnet=\"`EndpointProtocolVersion`\" pulumi-lang-go=\"`endpointProtocolVersion`\" pulumi-lang-python=\"`endpoint_protocol_version`\" pulumi-lang-yaml=\"`endpointProtocolVersion`\" pulumi-lang-java=\"`endpointProtocolVersion`\"\u003e`endpoint_protocol_version`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`endpointRequestProtocol`\" pulumi-lang-dotnet=\"`EndpointRequestProtocol`\" pulumi-lang-go=\"`endpointRequestProtocol`\" pulumi-lang-python=\"`endpoint_request_protocol`\" pulumi-lang-yaml=\"`endpointRequestProtocol`\" pulumi-lang-java=\"`endpointRequestProtocol`\"\u003e`endpoint_request_protocol`\u003c/span\u003e is set to `HTTPS`.\n"},"endpointRequestProtocol":{"type":"string","description":"The protocol that is used by the backend server. Valid values: `HTTP`, `HTTPS`.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`endpointRequestProtocol`\" pulumi-lang-dotnet=\"`EndpointRequestProtocol`\" pulumi-lang-go=\"`endpointRequestProtocol`\" pulumi-lang-python=\"`endpoint_request_protocol`\" pulumi-lang-yaml=\"`endpointRequestProtocol`\" pulumi-lang-java=\"`endpointRequestProtocol`\"\u003e`endpoint_request_protocol`\u003c/span\u003e can be specified only if the listener that is associated with the endpoint group uses `HTTP` or `HTTPS`. For the listener of `HTTP` protocol, \u003cspan pulumi-lang-nodejs=\"`endpointRequestProtocol`\" pulumi-lang-dotnet=\"`EndpointRequestProtocol`\" pulumi-lang-go=\"`endpointRequestProtocol`\" pulumi-lang-python=\"`endpoint_request_protocol`\" pulumi-lang-yaml=\"`endpointRequestProtocol`\" pulumi-lang-java=\"`endpointRequestProtocol`\"\u003e`endpoint_request_protocol`\u003c/span\u003e can only be set to `HTTP`.\n"},"healthCheckEnabled":{"type":"boolean","description":"Specifies whether to enable the health check feature. Valid values:\n"},"healthCheckIntervalSeconds":{"type":"integer","description":"The interval between two consecutive health checks. Unit: seconds.\n"},"healthCheckPath":{"type":"string","description":"The path specified as the destination of the targets for health checks.\n"},"healthCheckPort":{"type":"integer","description":"The port that is used for health checks.\n"},"healthCheckProtocol":{"type":"string","description":"The protocol that is used to connect to the targets for health checks. Valid values:\n- `TCP` or \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e: TCP protocol.\n- `HTTP` or \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e: HTTP protocol.\n- `HTTPS` or \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e: HTTPS protocol.\n\u003e **NOTE:** From version 1.223.0, \u003cspan pulumi-lang-nodejs=\"`healthCheckProtocol`\" pulumi-lang-dotnet=\"`HealthCheckProtocol`\" pulumi-lang-go=\"`healthCheckProtocol`\" pulumi-lang-python=\"`health_check_protocol`\" pulumi-lang-yaml=\"`healthCheckProtocol`\" pulumi-lang-java=\"`healthCheckProtocol`\"\u003e`health_check_protocol`\u003c/span\u003e can be set to `TCP`, `HTTP`, `HTTPS`.\n"},"listenerId":{"type":"string","description":"The ID of the listener that is associated with the endpoint group.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the endpoint group.\n"},"portOverrides":{"$ref":"#/types/alicloud:ga/EndpointGroupPortOverrides:EndpointGroupPortOverrides","description":"Mapping between listening port and forwarding port of boarding point. See \u003cspan pulumi-lang-nodejs=\"`portOverrides`\" pulumi-lang-dotnet=\"`PortOverrides`\" pulumi-lang-go=\"`portOverrides`\" pulumi-lang-python=\"`port_overrides`\" pulumi-lang-yaml=\"`portOverrides`\" pulumi-lang-java=\"`portOverrides`\"\u003e`port_overrides`\u003c/span\u003e below.\n\u003e **NOTE:** Port mapping is only supported when creating terminal node group for listening instance of HTTP or HTTPS protocol. The listening port in the port map must be consistent with the listening port of the current listening instance.\n"},"status":{"type":"string","description":"The status of the endpoint group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"thresholdCount":{"type":"integer","description":"The number of consecutive failed heath checks that must occur before the endpoint is deemed unhealthy. Default value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"trafficPercentage":{"type":"integer","description":"The weight of the endpoint group when the corresponding listener is associated with multiple endpoint groups.\n"}},"type":"object"}},"alicloud:ga/forwardingRule:ForwardingRule":{"description":"Provides a Global Accelerator (GA) Forwarding Rule resource.\n\nFor information about Global Accelerator (GA) Forwarding Rule and how to use it, see [What is Forwarding Rule](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createforwardingrules).\n\n\u003e **NOTE:** Available since v1.120.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst example = new alicloud.ga.Accelerator(\"example\", {\n    duration: 3,\n    spec: \"2\",\n    acceleratorName: name,\n    autoUseCoupon: false,\n    description: name,\n    autoRenewDuration: 2,\n    renewalStatus: \"AutoRenewal\",\n});\nconst exampleBandwidthPackage = new alicloud.ga.BandwidthPackage(\"example\", {\n    type: \"Basic\",\n    bandwidth: 20,\n    bandwidthType: \"Basic\",\n    duration: \"1\",\n    autoPay: true,\n    paymentType: \"Subscription\",\n    autoUseCoupon: false,\n    bandwidthPackageName: name,\n    description: name,\n});\nconst exampleBandwidthPackageAttachment = new alicloud.ga.BandwidthPackageAttachment(\"example\", {\n    acceleratorId: example.id,\n    bandwidthPackageId: exampleBandwidthPackage.id,\n});\nconst exampleListener = new alicloud.ga.Listener(\"example\", {\n    acceleratorId: exampleBandwidthPackageAttachment.acceleratorId,\n    clientAffinity: \"SOURCE_IP\",\n    description: name,\n    name: name,\n    protocol: \"HTTP\",\n    proxyProtocol: true,\n    portRanges: [{\n        fromPort: 60,\n        toPort: 60,\n    }],\n});\nconst exampleEipAddress = new alicloud.ecs.EipAddress(\"example\", {\n    bandwidth: \"10\",\n    internetChargeType: \"PayByBandwidth\",\n});\nconst virtual = new alicloud.ga.EndpointGroup(\"virtual\", {\n    acceleratorId: example.id,\n    endpointConfigurations: [{\n        endpoint: exampleEipAddress.ipAddress,\n        type: \"PublicIp\",\n        weight: 20,\n        enableClientipPreservation: true,\n    }],\n    endpointGroupRegion: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    listenerId: exampleListener.id,\n    description: name,\n    endpointGroupType: \"virtual\",\n    endpointRequestProtocol: \"HTTPS\",\n    healthCheckIntervalSeconds: 4,\n    healthCheckPath: \"/path\",\n    name: name,\n    thresholdCount: 4,\n    trafficPercentage: 20,\n    portOverrides: {\n        endpointPort: 80,\n        listenerPort: 60,\n    },\n});\nconst exampleForwardingRule = new alicloud.ga.ForwardingRule(\"example\", {\n    acceleratorId: example.id,\n    listenerId: exampleListener.id,\n    ruleConditions: [\n        {\n            ruleConditionType: \"Path\",\n            pathConfig: {\n                values: [\"/testpathconfig\"],\n            },\n        },\n        {\n            ruleConditionType: \"Host\",\n            hostConfigs: [{\n                values: [\"www.test.com\"],\n            }],\n        },\n    ],\n    ruleActions: [{\n        order: 40,\n        ruleActionType: \"ForwardGroup\",\n        forwardGroupConfig: {\n            serverGroupTuples: [{\n                endpointGroupId: virtual.id,\n            }],\n        },\n    }],\n    priority: 2,\n    forwardingRuleName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_regions(current=True)\nexample = alicloud.ga.Accelerator(\"example\",\n    duration=3,\n    spec=\"2\",\n    accelerator_name=name,\n    auto_use_coupon=False,\n    description=name,\n    auto_renew_duration=2,\n    renewal_status=\"AutoRenewal\")\nexample_bandwidth_package = alicloud.ga.BandwidthPackage(\"example\",\n    type=\"Basic\",\n    bandwidth=20,\n    bandwidth_type=\"Basic\",\n    duration=\"1\",\n    auto_pay=True,\n    payment_type=\"Subscription\",\n    auto_use_coupon=False,\n    bandwidth_package_name=name,\n    description=name)\nexample_bandwidth_package_attachment = alicloud.ga.BandwidthPackageAttachment(\"example\",\n    accelerator_id=example.id,\n    bandwidth_package_id=example_bandwidth_package.id)\nexample_listener = alicloud.ga.Listener(\"example\",\n    accelerator_id=example_bandwidth_package_attachment.accelerator_id,\n    client_affinity=\"SOURCE_IP\",\n    description=name,\n    name=name,\n    protocol=\"HTTP\",\n    proxy_protocol=True,\n    port_ranges=[{\n        \"from_port\": 60,\n        \"to_port\": 60,\n    }])\nexample_eip_address = alicloud.ecs.EipAddress(\"example\",\n    bandwidth=\"10\",\n    internet_charge_type=\"PayByBandwidth\")\nvirtual = alicloud.ga.EndpointGroup(\"virtual\",\n    accelerator_id=example.id,\n    endpoint_configurations=[{\n        \"endpoint\": example_eip_address.ip_address,\n        \"type\": \"PublicIp\",\n        \"weight\": 20,\n        \"enable_clientip_preservation\": True,\n    }],\n    endpoint_group_region=default.regions[0].id,\n    listener_id=example_listener.id,\n    description=name,\n    endpoint_group_type=\"virtual\",\n    endpoint_request_protocol=\"HTTPS\",\n    health_check_interval_seconds=4,\n    health_check_path=\"/path\",\n    name=name,\n    threshold_count=4,\n    traffic_percentage=20,\n    port_overrides={\n        \"endpoint_port\": 80,\n        \"listener_port\": 60,\n    })\nexample_forwarding_rule = alicloud.ga.ForwardingRule(\"example\",\n    accelerator_id=example.id,\n    listener_id=example_listener.id,\n    rule_conditions=[\n        {\n            \"rule_condition_type\": \"Path\",\n            \"path_config\": {\n                \"values\": [\"/testpathconfig\"],\n            },\n        },\n        {\n            \"rule_condition_type\": \"Host\",\n            \"host_configs\": [{\n                \"values\": [\"www.test.com\"],\n            }],\n        },\n    ],\n    rule_actions=[{\n        \"order\": 40,\n        \"rule_action_type\": \"ForwardGroup\",\n        \"forward_group_config\": {\n            \"server_group_tuples\": [{\n                \"endpoint_group_id\": virtual.id,\n            }],\n        },\n    }],\n    priority=2,\n    forwarding_rule_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var example = new AliCloud.Ga.Accelerator(\"example\", new()\n    {\n        Duration = 3,\n        Spec = \"2\",\n        AcceleratorName = name,\n        AutoUseCoupon = false,\n        Description = name,\n        AutoRenewDuration = 2,\n        RenewalStatus = \"AutoRenewal\",\n    });\n\n    var exampleBandwidthPackage = new AliCloud.Ga.BandwidthPackage(\"example\", new()\n    {\n        Type = \"Basic\",\n        Bandwidth = 20,\n        BandwidthType = \"Basic\",\n        Duration = \"1\",\n        AutoPay = true,\n        PaymentType = \"Subscription\",\n        AutoUseCoupon = false,\n        BandwidthPackageName = name,\n        Description = name,\n    });\n\n    var exampleBandwidthPackageAttachment = new AliCloud.Ga.BandwidthPackageAttachment(\"example\", new()\n    {\n        AcceleratorId = example.Id,\n        BandwidthPackageId = exampleBandwidthPackage.Id,\n    });\n\n    var exampleListener = new AliCloud.Ga.Listener(\"example\", new()\n    {\n        AcceleratorId = exampleBandwidthPackageAttachment.AcceleratorId,\n        ClientAffinity = \"SOURCE_IP\",\n        Description = name,\n        Name = name,\n        Protocol = \"HTTP\",\n        ProxyProtocol = true,\n        PortRanges = new[]\n        {\n            new AliCloud.Ga.Inputs.ListenerPortRangeArgs\n            {\n                FromPort = 60,\n                ToPort = 60,\n            },\n        },\n    });\n\n    var exampleEipAddress = new AliCloud.Ecs.EipAddress(\"example\", new()\n    {\n        Bandwidth = \"10\",\n        InternetChargeType = \"PayByBandwidth\",\n    });\n\n    var @virtual = new AliCloud.Ga.EndpointGroup(\"virtual\", new()\n    {\n        AcceleratorId = example.Id,\n        EndpointConfigurations = new[]\n        {\n            new AliCloud.Ga.Inputs.EndpointGroupEndpointConfigurationArgs\n            {\n                Endpoint = exampleEipAddress.IpAddress,\n                Type = \"PublicIp\",\n                Weight = 20,\n                EnableClientipPreservation = true,\n            },\n        },\n        EndpointGroupRegion = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        ListenerId = exampleListener.Id,\n        Description = name,\n        EndpointGroupType = \"virtual\",\n        EndpointRequestProtocol = \"HTTPS\",\n        HealthCheckIntervalSeconds = 4,\n        HealthCheckPath = \"/path\",\n        Name = name,\n        ThresholdCount = 4,\n        TrafficPercentage = 20,\n        PortOverrides = new AliCloud.Ga.Inputs.EndpointGroupPortOverridesArgs\n        {\n            EndpointPort = 80,\n            ListenerPort = 60,\n        },\n    });\n\n    var exampleForwardingRule = new AliCloud.Ga.ForwardingRule(\"example\", new()\n    {\n        AcceleratorId = example.Id,\n        ListenerId = exampleListener.Id,\n        RuleConditions = new[]\n        {\n            new AliCloud.Ga.Inputs.ForwardingRuleRuleConditionArgs\n            {\n                RuleConditionType = \"Path\",\n                PathConfig = new AliCloud.Ga.Inputs.ForwardingRuleRuleConditionPathConfigArgs\n                {\n                    Values = new[]\n                    {\n                        \"/testpathconfig\",\n                    },\n                },\n            },\n            new AliCloud.Ga.Inputs.ForwardingRuleRuleConditionArgs\n            {\n                RuleConditionType = \"Host\",\n                HostConfigs = new[]\n                {\n                    new AliCloud.Ga.Inputs.ForwardingRuleRuleConditionHostConfigArgs\n                    {\n                        Values = new[]\n                        {\n                            \"www.test.com\",\n                        },\n                    },\n                },\n            },\n        },\n        RuleActions = new[]\n        {\n            new AliCloud.Ga.Inputs.ForwardingRuleRuleActionArgs\n            {\n                Order = 40,\n                RuleActionType = \"ForwardGroup\",\n                ForwardGroupConfig = new AliCloud.Ga.Inputs.ForwardingRuleRuleActionForwardGroupConfigArgs\n                {\n                    ServerGroupTuples = new[]\n                    {\n                        new AliCloud.Ga.Inputs.ForwardingRuleRuleActionForwardGroupConfigServerGroupTupleArgs\n                        {\n                            EndpointGroupId = @virtual.Id,\n                        },\n                    },\n                },\n            },\n        },\n        Priority = 2,\n        ForwardingRuleName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := ga.NewAccelerator(ctx, \"example\", \u0026ga.AcceleratorArgs{\n\t\t\tDuration:          pulumi.Int(3),\n\t\t\tSpec:              pulumi.String(\"2\"),\n\t\t\tAcceleratorName:   pulumi.String(name),\n\t\t\tAutoUseCoupon:     pulumi.Bool(false),\n\t\t\tDescription:       pulumi.String(name),\n\t\t\tAutoRenewDuration: pulumi.Int(2),\n\t\t\tRenewalStatus:     pulumi.String(\"AutoRenewal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBandwidthPackage, err := ga.NewBandwidthPackage(ctx, \"example\", \u0026ga.BandwidthPackageArgs{\n\t\t\tType:                 pulumi.String(\"Basic\"),\n\t\t\tBandwidth:            pulumi.Int(20),\n\t\t\tBandwidthType:        pulumi.String(\"Basic\"),\n\t\t\tDuration:             pulumi.String(\"1\"),\n\t\t\tAutoPay:              pulumi.Bool(true),\n\t\t\tPaymentType:          pulumi.String(\"Subscription\"),\n\t\t\tAutoUseCoupon:        pulumi.Bool(false),\n\t\t\tBandwidthPackageName: pulumi.String(name),\n\t\t\tDescription:          pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBandwidthPackageAttachment, err := ga.NewBandwidthPackageAttachment(ctx, \"example\", \u0026ga.BandwidthPackageAttachmentArgs{\n\t\t\tAcceleratorId:      example.ID(),\n\t\t\tBandwidthPackageId: exampleBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleListener, err := ga.NewListener(ctx, \"example\", \u0026ga.ListenerArgs{\n\t\t\tAcceleratorId:  exampleBandwidthPackageAttachment.AcceleratorId,\n\t\t\tClientAffinity: pulumi.String(\"SOURCE_IP\"),\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tName:           pulumi.String(name),\n\t\t\tProtocol:       pulumi.String(\"HTTP\"),\n\t\t\tProxyProtocol:  pulumi.Bool(true),\n\t\t\tPortRanges: ga.ListenerPortRangeArray{\n\t\t\t\t\u0026ga.ListenerPortRangeArgs{\n\t\t\t\t\tFromPort: pulumi.Int(60),\n\t\t\t\t\tToPort:   pulumi.Int(60),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEipAddress, err := ecs.NewEipAddress(ctx, \"example\", \u0026ecs.EipAddressArgs{\n\t\t\tBandwidth:          pulumi.String(\"10\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByBandwidth\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvirtual, err := ga.NewEndpointGroup(ctx, \"virtual\", \u0026ga.EndpointGroupArgs{\n\t\t\tAcceleratorId: example.ID(),\n\t\t\tEndpointConfigurations: ga.EndpointGroupEndpointConfigurationArray{\n\t\t\t\t\u0026ga.EndpointGroupEndpointConfigurationArgs{\n\t\t\t\t\tEndpoint:                   exampleEipAddress.IpAddress,\n\t\t\t\t\tType:                       pulumi.String(\"PublicIp\"),\n\t\t\t\t\tWeight:                     pulumi.Int(20),\n\t\t\t\t\tEnableClientipPreservation: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEndpointGroupRegion:        pulumi.String(_default.Regions[0].Id),\n\t\t\tListenerId:                 exampleListener.ID(),\n\t\t\tDescription:                pulumi.String(name),\n\t\t\tEndpointGroupType:          pulumi.String(\"virtual\"),\n\t\t\tEndpointRequestProtocol:    pulumi.String(\"HTTPS\"),\n\t\t\tHealthCheckIntervalSeconds: pulumi.Int(4),\n\t\t\tHealthCheckPath:            pulumi.String(\"/path\"),\n\t\t\tName:                       pulumi.String(name),\n\t\t\tThresholdCount:             pulumi.Int(4),\n\t\t\tTrafficPercentage:          pulumi.Int(20),\n\t\t\tPortOverrides: \u0026ga.EndpointGroupPortOverridesArgs{\n\t\t\t\tEndpointPort: pulumi.Int(80),\n\t\t\t\tListenerPort: pulumi.Int(60),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewForwardingRule(ctx, \"example\", \u0026ga.ForwardingRuleArgs{\n\t\t\tAcceleratorId: example.ID(),\n\t\t\tListenerId:    exampleListener.ID(),\n\t\t\tRuleConditions: ga.ForwardingRuleRuleConditionArray{\n\t\t\t\t\u0026ga.ForwardingRuleRuleConditionArgs{\n\t\t\t\t\tRuleConditionType: pulumi.String(\"Path\"),\n\t\t\t\t\tPathConfig: \u0026ga.ForwardingRuleRuleConditionPathConfigArgs{\n\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"/testpathconfig\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026ga.ForwardingRuleRuleConditionArgs{\n\t\t\t\t\tRuleConditionType: pulumi.String(\"Host\"),\n\t\t\t\t\tHostConfigs: ga.ForwardingRuleRuleConditionHostConfigArray{\n\t\t\t\t\t\t\u0026ga.ForwardingRuleRuleConditionHostConfigArgs{\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"www.test.com\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tRuleActions: ga.ForwardingRuleRuleActionArray{\n\t\t\t\t\u0026ga.ForwardingRuleRuleActionArgs{\n\t\t\t\t\tOrder:          pulumi.Int(40),\n\t\t\t\t\tRuleActionType: pulumi.String(\"ForwardGroup\"),\n\t\t\t\t\tForwardGroupConfig: \u0026ga.ForwardingRuleRuleActionForwardGroupConfigArgs{\n\t\t\t\t\t\tServerGroupTuples: ga.ForwardingRuleRuleActionForwardGroupConfigServerGroupTupleArray{\n\t\t\t\t\t\t\t\u0026ga.ForwardingRuleRuleActionForwardGroupConfigServerGroupTupleArgs{\n\t\t\t\t\t\t\t\tEndpointGroupId: virtual.ID(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPriority:           pulumi.Int(2),\n\t\t\tForwardingRuleName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.ga.Accelerator;\nimport com.pulumi.alicloud.ga.AcceleratorArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackage;\nimport com.pulumi.alicloud.ga.BandwidthPackageArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.ga.Listener;\nimport com.pulumi.alicloud.ga.ListenerArgs;\nimport com.pulumi.alicloud.ga.inputs.ListenerPortRangeArgs;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAddressArgs;\nimport com.pulumi.alicloud.ga.EndpointGroup;\nimport com.pulumi.alicloud.ga.EndpointGroupArgs;\nimport com.pulumi.alicloud.ga.inputs.EndpointGroupEndpointConfigurationArgs;\nimport com.pulumi.alicloud.ga.inputs.EndpointGroupPortOverridesArgs;\nimport com.pulumi.alicloud.ga.ForwardingRule;\nimport com.pulumi.alicloud.ga.ForwardingRuleArgs;\nimport com.pulumi.alicloud.ga.inputs.ForwardingRuleRuleConditionArgs;\nimport com.pulumi.alicloud.ga.inputs.ForwardingRuleRuleConditionPathConfigArgs;\nimport com.pulumi.alicloud.ga.inputs.ForwardingRuleRuleActionArgs;\nimport com.pulumi.alicloud.ga.inputs.ForwardingRuleRuleActionForwardGroupConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var example = new Accelerator(\"example\", AcceleratorArgs.builder()\n            .duration(3)\n            .spec(\"2\")\n            .acceleratorName(name)\n            .autoUseCoupon(false)\n            .description(name)\n            .autoRenewDuration(2)\n            .renewalStatus(\"AutoRenewal\")\n            .build());\n\n        var exampleBandwidthPackage = new BandwidthPackage(\"exampleBandwidthPackage\", BandwidthPackageArgs.builder()\n            .type(\"Basic\")\n            .bandwidth(20)\n            .bandwidthType(\"Basic\")\n            .duration(\"1\")\n            .autoPay(true)\n            .paymentType(\"Subscription\")\n            .autoUseCoupon(false)\n            .bandwidthPackageName(name)\n            .description(name)\n            .build());\n\n        var exampleBandwidthPackageAttachment = new BandwidthPackageAttachment(\"exampleBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .acceleratorId(example.id())\n            .bandwidthPackageId(exampleBandwidthPackage.id())\n            .build());\n\n        var exampleListener = new Listener(\"exampleListener\", ListenerArgs.builder()\n            .acceleratorId(exampleBandwidthPackageAttachment.acceleratorId())\n            .clientAffinity(\"SOURCE_IP\")\n            .description(name)\n            .name(name)\n            .protocol(\"HTTP\")\n            .proxyProtocol(true)\n            .portRanges(ListenerPortRangeArgs.builder()\n                .fromPort(60)\n                .toPort(60)\n                .build())\n            .build());\n\n        var exampleEipAddress = new EipAddress(\"exampleEipAddress\", EipAddressArgs.builder()\n            .bandwidth(\"10\")\n            .internetChargeType(\"PayByBandwidth\")\n            .build());\n\n        var virtual = new EndpointGroup(\"virtual\", EndpointGroupArgs.builder()\n            .acceleratorId(example.id())\n            .endpointConfigurations(EndpointGroupEndpointConfigurationArgs.builder()\n                .endpoint(exampleEipAddress.ipAddress())\n                .type(\"PublicIp\")\n                .weight(20)\n                .enableClientipPreservation(true)\n                .build())\n            .endpointGroupRegion(default_.regions()[0].id())\n            .listenerId(exampleListener.id())\n            .description(name)\n            .endpointGroupType(\"virtual\")\n            .endpointRequestProtocol(\"HTTPS\")\n            .healthCheckIntervalSeconds(4)\n            .healthCheckPath(\"/path\")\n            .name(name)\n            .thresholdCount(4)\n            .trafficPercentage(20)\n            .portOverrides(EndpointGroupPortOverridesArgs.builder()\n                .endpointPort(80)\n                .listenerPort(60)\n                .build())\n            .build());\n\n        var exampleForwardingRule = new ForwardingRule(\"exampleForwardingRule\", ForwardingRuleArgs.builder()\n            .acceleratorId(example.id())\n            .listenerId(exampleListener.id())\n            .ruleConditions(            \n                ForwardingRuleRuleConditionArgs.builder()\n                    .ruleConditionType(\"Path\")\n                    .pathConfig(ForwardingRuleRuleConditionPathConfigArgs.builder()\n                        .values(\"/testpathconfig\")\n                        .build())\n                    .build(),\n                ForwardingRuleRuleConditionArgs.builder()\n                    .ruleConditionType(\"Host\")\n                    .hostConfigs(ForwardingRuleRuleConditionHostConfigArgs.builder()\n                        .values(\"www.test.com\")\n                        .build())\n                    .build())\n            .ruleActions(ForwardingRuleRuleActionArgs.builder()\n                .order(40)\n                .ruleActionType(\"ForwardGroup\")\n                .forwardGroupConfig(ForwardingRuleRuleActionForwardGroupConfigArgs.builder()\n                    .serverGroupTuples(ForwardingRuleRuleActionForwardGroupConfigServerGroupTupleArgs.builder()\n                        .endpointGroupId(virtual.id())\n                        .build())\n                    .build())\n                .build())\n            .priority(2)\n            .forwardingRuleName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\n  name:\n    type: string\n    default: terraform-example\nresources:\n  example:\n    type: alicloud:ga:Accelerator\n    properties:\n      duration: 3\n      spec: '2'\n      acceleratorName: ${name}\n      autoUseCoupon: false\n      description: ${name}\n      autoRenewDuration: '2'\n      renewalStatus: AutoRenewal\n  exampleBandwidthPackage:\n    type: alicloud:ga:BandwidthPackage\n    name: example\n    properties:\n      type: Basic\n      bandwidth: 20\n      bandwidthType: Basic\n      duration: 1\n      autoPay: true\n      paymentType: Subscription\n      autoUseCoupon: false\n      bandwidthPackageName: ${name}\n      description: ${name}\n  exampleBandwidthPackageAttachment:\n    type: alicloud:ga:BandwidthPackageAttachment\n    name: example\n    properties:\n      acceleratorId: ${example.id}\n      bandwidthPackageId: ${exampleBandwidthPackage.id}\n  exampleListener:\n    type: alicloud:ga:Listener\n    name: example\n    properties:\n      acceleratorId: ${exampleBandwidthPackageAttachment.acceleratorId}\n      clientAffinity: SOURCE_IP\n      description: ${name}\n      name: ${name}\n      protocol: HTTP\n      proxyProtocol: true\n      portRanges:\n        - fromPort: 60\n          toPort: 60\n  exampleEipAddress:\n    type: alicloud:ecs:EipAddress\n    name: example\n    properties:\n      bandwidth: '10'\n      internetChargeType: PayByBandwidth\n  virtual:\n    type: alicloud:ga:EndpointGroup\n    properties:\n      acceleratorId: ${example.id}\n      endpointConfigurations:\n        - endpoint: ${exampleEipAddress.ipAddress}\n          type: PublicIp\n          weight: '20'\n          enableClientipPreservation: true\n      endpointGroupRegion: ${default.regions[0].id}\n      listenerId: ${exampleListener.id}\n      description: ${name}\n      endpointGroupType: virtual\n      endpointRequestProtocol: HTTPS\n      healthCheckIntervalSeconds: 4\n      healthCheckPath: /path\n      name: ${name}\n      thresholdCount: 4\n      trafficPercentage: 20\n      portOverrides:\n        endpointPort: 80\n        listenerPort: 60\n  exampleForwardingRule:\n    type: alicloud:ga:ForwardingRule\n    name: example\n    properties:\n      acceleratorId: ${example.id}\n      listenerId: ${exampleListener.id}\n      ruleConditions:\n        - ruleConditionType: Path\n          pathConfig:\n            values:\n              - /testpathconfig\n        - ruleConditionType: Host\n          hostConfigs:\n            - values:\n                - www.test.com\n      ruleActions:\n        - order: '40'\n          ruleActionType: ForwardGroup\n          forwardGroupConfig:\n            serverGroupTuples:\n              - endpointGroupId: ${virtual.id}\n      priority: 2\n      forwardingRuleName: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGa Forwarding Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/forwardingRule:ForwardingRule example \u003caccelerator_id\u003e:\u003clistener_id\u003e:\u003cforwarding_rule_id\u003e\n```\n\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator instance.\n"},"forwardingRuleId":{"type":"string","description":"The ID of the Forwarding Rule.\n"},"forwardingRuleName":{"type":"string","description":"Forwarding policy name. The length of the name is 2-128 English or Chinese characters. It must start with uppercase and lowercase letters or Chinese characters. It can contain numbers, half width period (.), underscores (_) And dash (-).\n"},"forwardingRuleStatus":{"type":"string","description":"The status of the Forwarding Rule.\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n"},"priority":{"type":"integer","description":"Forwarding policy priority.\n"},"ruleActions":{"type":"array","items":{"$ref":"#/types/alicloud:ga/ForwardingRuleRuleAction:ForwardingRuleRuleAction"},"description":"Forward action. See \u003cspan pulumi-lang-nodejs=\"`ruleActions`\" pulumi-lang-dotnet=\"`RuleActions`\" pulumi-lang-go=\"`ruleActions`\" pulumi-lang-python=\"`rule_actions`\" pulumi-lang-yaml=\"`ruleActions`\" pulumi-lang-java=\"`ruleActions`\"\u003e`rule_actions`\u003c/span\u003e below.\n"},"ruleConditions":{"type":"array","items":{"$ref":"#/types/alicloud:ga/ForwardingRuleRuleCondition:ForwardingRuleRuleCondition"},"description":"Forwarding condition list. See \u003cspan pulumi-lang-nodejs=\"`ruleConditions`\" pulumi-lang-dotnet=\"`RuleConditions`\" pulumi-lang-go=\"`ruleConditions`\" pulumi-lang-python=\"`rule_conditions`\" pulumi-lang-yaml=\"`ruleConditions`\" pulumi-lang-java=\"`ruleConditions`\"\u003e`rule_conditions`\u003c/span\u003e below.\n"}},"required":["acceleratorId","forwardingRuleId","forwardingRuleStatus","listenerId","priority","ruleActions","ruleConditions"],"inputProperties":{"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator instance.\n","willReplaceOnChanges":true},"forwardingRuleName":{"type":"string","description":"Forwarding policy name. The length of the name is 2-128 English or Chinese characters. It must start with uppercase and lowercase letters or Chinese characters. It can contain numbers, half width period (.), underscores (_) And dash (-).\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n","willReplaceOnChanges":true},"priority":{"type":"integer","description":"Forwarding policy priority.\n"},"ruleActions":{"type":"array","items":{"$ref":"#/types/alicloud:ga/ForwardingRuleRuleAction:ForwardingRuleRuleAction"},"description":"Forward action. See \u003cspan pulumi-lang-nodejs=\"`ruleActions`\" pulumi-lang-dotnet=\"`RuleActions`\" pulumi-lang-go=\"`ruleActions`\" pulumi-lang-python=\"`rule_actions`\" pulumi-lang-yaml=\"`ruleActions`\" pulumi-lang-java=\"`ruleActions`\"\u003e`rule_actions`\u003c/span\u003e below.\n"},"ruleConditions":{"type":"array","items":{"$ref":"#/types/alicloud:ga/ForwardingRuleRuleCondition:ForwardingRuleRuleCondition"},"description":"Forwarding condition list. See \u003cspan pulumi-lang-nodejs=\"`ruleConditions`\" pulumi-lang-dotnet=\"`RuleConditions`\" pulumi-lang-go=\"`ruleConditions`\" pulumi-lang-python=\"`rule_conditions`\" pulumi-lang-yaml=\"`ruleConditions`\" pulumi-lang-java=\"`ruleConditions`\"\u003e`rule_conditions`\u003c/span\u003e below.\n"}},"requiredInputs":["acceleratorId","listenerId","ruleActions","ruleConditions"],"stateInputs":{"description":"Input properties used for looking up and filtering ForwardingRule resources.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator instance.\n","willReplaceOnChanges":true},"forwardingRuleId":{"type":"string","description":"The ID of the Forwarding Rule.\n"},"forwardingRuleName":{"type":"string","description":"Forwarding policy name. The length of the name is 2-128 English or Chinese characters. It must start with uppercase and lowercase letters or Chinese characters. It can contain numbers, half width period (.), underscores (_) And dash (-).\n"},"forwardingRuleStatus":{"type":"string","description":"The status of the Forwarding Rule.\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n","willReplaceOnChanges":true},"priority":{"type":"integer","description":"Forwarding policy priority.\n"},"ruleActions":{"type":"array","items":{"$ref":"#/types/alicloud:ga/ForwardingRuleRuleAction:ForwardingRuleRuleAction"},"description":"Forward action. See \u003cspan pulumi-lang-nodejs=\"`ruleActions`\" pulumi-lang-dotnet=\"`RuleActions`\" pulumi-lang-go=\"`ruleActions`\" pulumi-lang-python=\"`rule_actions`\" pulumi-lang-yaml=\"`ruleActions`\" pulumi-lang-java=\"`ruleActions`\"\u003e`rule_actions`\u003c/span\u003e below.\n"},"ruleConditions":{"type":"array","items":{"$ref":"#/types/alicloud:ga/ForwardingRuleRuleCondition:ForwardingRuleRuleCondition"},"description":"Forwarding condition list. See \u003cspan pulumi-lang-nodejs=\"`ruleConditions`\" pulumi-lang-dotnet=\"`RuleConditions`\" pulumi-lang-go=\"`ruleConditions`\" pulumi-lang-python=\"`rule_conditions`\" pulumi-lang-yaml=\"`ruleConditions`\" pulumi-lang-java=\"`ruleConditions`\"\u003e`rule_conditions`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:ga/ipSet:IpSet":{"description":"Provides a Global Accelerator (GA) Ip Set resource.\n\nFor information about Global Accelerator (GA) Ip Set and how to use it, see [What is Ip Set](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createipsets).\n\n\u003e **NOTE:** Available since v1.113.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst _default = new alicloud.ga.Accelerator(\"default\", {\n    duration: 1,\n    autoUseCoupon: true,\n    spec: \"1\",\n});\nconst defaultBandwidthPackage = new alicloud.ga.BandwidthPackage(\"default\", {\n    bandwidth: 100,\n    type: \"Basic\",\n    bandwidthType: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    billingType: \"PayBy95\",\n    ratio: 30,\n});\nconst defaultBandwidthPackageAttachment = new alicloud.ga.BandwidthPackageAttachment(\"default\", {\n    acceleratorId: _default.id,\n    bandwidthPackageId: defaultBandwidthPackage.id,\n});\nconst example = new alicloud.ga.IpSet(\"example\", {\n    accelerateRegionId: region,\n    bandwidth: 5,\n    acceleratorId: defaultBandwidthPackageAttachment.acceleratorId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\ndefault = alicloud.ga.Accelerator(\"default\",\n    duration=1,\n    auto_use_coupon=True,\n    spec=\"1\")\ndefault_bandwidth_package = alicloud.ga.BandwidthPackage(\"default\",\n    bandwidth=100,\n    type=\"Basic\",\n    bandwidth_type=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    billing_type=\"PayBy95\",\n    ratio=30)\ndefault_bandwidth_package_attachment = alicloud.ga.BandwidthPackageAttachment(\"default\",\n    accelerator_id=default.id,\n    bandwidth_package_id=default_bandwidth_package.id)\nexample = alicloud.ga.IpSet(\"example\",\n    accelerate_region_id=region,\n    bandwidth=5,\n    accelerator_id=default_bandwidth_package_attachment.accelerator_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var @default = new AliCloud.Ga.Accelerator(\"default\", new()\n    {\n        Duration = 1,\n        AutoUseCoupon = true,\n        Spec = \"1\",\n    });\n\n    var defaultBandwidthPackage = new AliCloud.Ga.BandwidthPackage(\"default\", new()\n    {\n        Bandwidth = 100,\n        Type = \"Basic\",\n        BandwidthType = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        BillingType = \"PayBy95\",\n        Ratio = 30,\n    });\n\n    var defaultBandwidthPackageAttachment = new AliCloud.Ga.BandwidthPackageAttachment(\"default\", new()\n    {\n        AcceleratorId = @default.Id,\n        BandwidthPackageId = defaultBandwidthPackage.Id,\n    });\n\n    var example = new AliCloud.Ga.IpSet(\"example\", new()\n    {\n        AccelerateRegionId = region,\n        Bandwidth = 5,\n        AcceleratorId = defaultBandwidthPackageAttachment.AcceleratorId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\t_default, err := ga.NewAccelerator(ctx, \"default\", \u0026ga.AcceleratorArgs{\n\t\t\tDuration:      pulumi.Int(1),\n\t\t\tAutoUseCoupon: pulumi.Bool(true),\n\t\t\tSpec:          pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackage, err := ga.NewBandwidthPackage(ctx, \"default\", \u0026ga.BandwidthPackageArgs{\n\t\t\tBandwidth:     pulumi.Int(100),\n\t\t\tType:          pulumi.String(\"Basic\"),\n\t\t\tBandwidthType: pulumi.String(\"Basic\"),\n\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\tBillingType:   pulumi.String(\"PayBy95\"),\n\t\t\tRatio:         pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackageAttachment, err := ga.NewBandwidthPackageAttachment(ctx, \"default\", \u0026ga.BandwidthPackageAttachmentArgs{\n\t\t\tAcceleratorId:      _default.ID(),\n\t\t\tBandwidthPackageId: defaultBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewIpSet(ctx, \"example\", \u0026ga.IpSetArgs{\n\t\t\tAccelerateRegionId: pulumi.String(region),\n\t\t\tBandwidth:          pulumi.Int(5),\n\t\t\tAcceleratorId:      defaultBandwidthPackageAttachment.AcceleratorId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.Accelerator;\nimport com.pulumi.alicloud.ga.AcceleratorArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackage;\nimport com.pulumi.alicloud.ga.BandwidthPackageArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.ga.IpSet;\nimport com.pulumi.alicloud.ga.IpSetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        var default_ = new Accelerator(\"default\", AcceleratorArgs.builder()\n            .duration(1)\n            .autoUseCoupon(true)\n            .spec(\"1\")\n            .build());\n\n        var defaultBandwidthPackage = new BandwidthPackage(\"defaultBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(100)\n            .type(\"Basic\")\n            .bandwidthType(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .billingType(\"PayBy95\")\n            .ratio(30)\n            .build());\n\n        var defaultBandwidthPackageAttachment = new BandwidthPackageAttachment(\"defaultBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .acceleratorId(default_.id())\n            .bandwidthPackageId(defaultBandwidthPackage.id())\n            .build());\n\n        var example = new IpSet(\"example\", IpSetArgs.builder()\n            .accelerateRegionId(region)\n            .bandwidth(5)\n            .acceleratorId(defaultBandwidthPackageAttachment.acceleratorId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\nresources:\n  default:\n    type: alicloud:ga:Accelerator\n    properties:\n      duration: 1\n      autoUseCoupon: true\n      spec: '1'\n  defaultBandwidthPackage:\n    type: alicloud:ga:BandwidthPackage\n    name: default\n    properties:\n      bandwidth: 100\n      type: Basic\n      bandwidthType: Basic\n      paymentType: PayAsYouGo\n      billingType: PayBy95\n      ratio: 30\n  defaultBandwidthPackageAttachment:\n    type: alicloud:ga:BandwidthPackageAttachment\n    name: default\n    properties:\n      acceleratorId: ${default.id}\n      bandwidthPackageId: ${defaultBandwidthPackage.id}\n  example:\n    type: alicloud:ga:IpSet\n    properties:\n      accelerateRegionId: ${region}\n      bandwidth: '5'\n      acceleratorId: ${defaultBandwidthPackageAttachment.acceleratorId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGa Ip Set can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/ipSet:IpSet example \u003cid\u003e\n```\n\n","properties":{"accelerateRegionId":{"type":"string","description":"The ID of an acceleration region.\n"},"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator (GA) instance.\n"},"bandwidth":{"type":"integer","description":"The bandwidth allocated to the acceleration region.\n\u003e **NOTE:** The minimum bandwidth of each accelerated region is 2Mbps. The total bandwidth of the acceleration region should be less than or equal to the bandwidth of the basic bandwidth package you purchased.\n"},"ipAddressLists":{"type":"array","items":{"type":"string"},"description":"The list of accelerated IP addresses in the acceleration region.\n"},"ipVersion":{"type":"string","description":"The IP protocol used by the GA instance. Default value: `IPv4`. Valid values: `IPv4`, `IPv6`, `DUAL_STACK`. **NOTE:** From version 1.220.0, \u003cspan pulumi-lang-nodejs=\"`ipVersion`\" pulumi-lang-dotnet=\"`IpVersion`\" pulumi-lang-go=\"`ipVersion`\" pulumi-lang-python=\"`ip_version`\" pulumi-lang-yaml=\"`ipVersion`\" pulumi-lang-java=\"`ipVersion`\"\u003e`ip_version`\u003c/span\u003e can be set to `DUAL_STACK`.\n"},"ispType":{"type":"string","description":"The line type of the elastic IP address (EIP) in the acceleration region. Valid values: `BGP`, `BGP_PRO`.\n"},"status":{"type":"string","description":"The status of the acceleration region.\n"}},"required":["accelerateRegionId","acceleratorId","ipAddressLists","ipVersion","status"],"inputProperties":{"accelerateRegionId":{"type":"string","description":"The ID of an acceleration region.\n","willReplaceOnChanges":true},"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator (GA) instance.\n","willReplaceOnChanges":true},"bandwidth":{"type":"integer","description":"The bandwidth allocated to the acceleration region.\n\u003e **NOTE:** The minimum bandwidth of each accelerated region is 2Mbps. The total bandwidth of the acceleration region should be less than or equal to the bandwidth of the basic bandwidth package you purchased.\n"},"ipVersion":{"type":"string","description":"The IP protocol used by the GA instance. Default value: `IPv4`. Valid values: `IPv4`, `IPv6`, `DUAL_STACK`. **NOTE:** From version 1.220.0, \u003cspan pulumi-lang-nodejs=\"`ipVersion`\" pulumi-lang-dotnet=\"`IpVersion`\" pulumi-lang-go=\"`ipVersion`\" pulumi-lang-python=\"`ip_version`\" pulumi-lang-yaml=\"`ipVersion`\" pulumi-lang-java=\"`ipVersion`\"\u003e`ip_version`\u003c/span\u003e can be set to `DUAL_STACK`.\n","willReplaceOnChanges":true},"ispType":{"type":"string","description":"The line type of the elastic IP address (EIP) in the acceleration region. Valid values: `BGP`, `BGP_PRO`.\n","willReplaceOnChanges":true}},"requiredInputs":["accelerateRegionId","acceleratorId"],"stateInputs":{"description":"Input properties used for looking up and filtering IpSet resources.\n","properties":{"accelerateRegionId":{"type":"string","description":"The ID of an acceleration region.\n","willReplaceOnChanges":true},"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator (GA) instance.\n","willReplaceOnChanges":true},"bandwidth":{"type":"integer","description":"The bandwidth allocated to the acceleration region.\n\u003e **NOTE:** The minimum bandwidth of each accelerated region is 2Mbps. The total bandwidth of the acceleration region should be less than or equal to the bandwidth of the basic bandwidth package you purchased.\n"},"ipAddressLists":{"type":"array","items":{"type":"string"},"description":"The list of accelerated IP addresses in the acceleration region.\n"},"ipVersion":{"type":"string","description":"The IP protocol used by the GA instance. Default value: `IPv4`. Valid values: `IPv4`, `IPv6`, `DUAL_STACK`. **NOTE:** From version 1.220.0, \u003cspan pulumi-lang-nodejs=\"`ipVersion`\" pulumi-lang-dotnet=\"`IpVersion`\" pulumi-lang-go=\"`ipVersion`\" pulumi-lang-python=\"`ip_version`\" pulumi-lang-yaml=\"`ipVersion`\" pulumi-lang-java=\"`ipVersion`\"\u003e`ip_version`\u003c/span\u003e can be set to `DUAL_STACK`.\n","willReplaceOnChanges":true},"ispType":{"type":"string","description":"The line type of the elastic IP address (EIP) in the acceleration region. Valid values: `BGP`, `BGP_PRO`.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the acceleration region.\n"}},"type":"object"}},"alicloud:ga/listener:Listener":{"description":"Provides a Global Accelerator (GA) Listener resource.\n\nFor information about Global Accelerator (GA) Listener and how to use it, see [What is Listener](https://www.alibabacloud.com/help/en/global-accelerator/latest/api-ga-2019-11-20-createlistener).\n\n\u003e **NOTE:** Available since v1.111.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ga.Accelerator(\"default\", {\n    duration: 1,\n    autoUseCoupon: true,\n    spec: \"1\",\n});\nconst defaultBandwidthPackage = new alicloud.ga.BandwidthPackage(\"default\", {\n    bandwidth: 100,\n    type: \"Basic\",\n    bandwidthType: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    billingType: \"PayBy95\",\n    ratio: 30,\n});\nconst defaultBandwidthPackageAttachment = new alicloud.ga.BandwidthPackageAttachment(\"default\", {\n    acceleratorId: _default.id,\n    bandwidthPackageId: defaultBandwidthPackage.id,\n});\nconst defaultListener = new alicloud.ga.Listener(\"default\", {\n    acceleratorId: defaultBandwidthPackageAttachment.acceleratorId,\n    portRanges: [{\n        fromPort: 80,\n        toPort: 80,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ga.Accelerator(\"default\",\n    duration=1,\n    auto_use_coupon=True,\n    spec=\"1\")\ndefault_bandwidth_package = alicloud.ga.BandwidthPackage(\"default\",\n    bandwidth=100,\n    type=\"Basic\",\n    bandwidth_type=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    billing_type=\"PayBy95\",\n    ratio=30)\ndefault_bandwidth_package_attachment = alicloud.ga.BandwidthPackageAttachment(\"default\",\n    accelerator_id=default.id,\n    bandwidth_package_id=default_bandwidth_package.id)\ndefault_listener = alicloud.ga.Listener(\"default\",\n    accelerator_id=default_bandwidth_package_attachment.accelerator_id,\n    port_ranges=[{\n        \"from_port\": 80,\n        \"to_port\": 80,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ga.Accelerator(\"default\", new()\n    {\n        Duration = 1,\n        AutoUseCoupon = true,\n        Spec = \"1\",\n    });\n\n    var defaultBandwidthPackage = new AliCloud.Ga.BandwidthPackage(\"default\", new()\n    {\n        Bandwidth = 100,\n        Type = \"Basic\",\n        BandwidthType = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        BillingType = \"PayBy95\",\n        Ratio = 30,\n    });\n\n    var defaultBandwidthPackageAttachment = new AliCloud.Ga.BandwidthPackageAttachment(\"default\", new()\n    {\n        AcceleratorId = @default.Id,\n        BandwidthPackageId = defaultBandwidthPackage.Id,\n    });\n\n    var defaultListener = new AliCloud.Ga.Listener(\"default\", new()\n    {\n        AcceleratorId = defaultBandwidthPackageAttachment.AcceleratorId,\n        PortRanges = new[]\n        {\n            new AliCloud.Ga.Inputs.ListenerPortRangeArgs\n            {\n                FromPort = 80,\n                ToPort = 80,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ga.NewAccelerator(ctx, \"default\", \u0026ga.AcceleratorArgs{\n\t\t\tDuration:      pulumi.Int(1),\n\t\t\tAutoUseCoupon: pulumi.Bool(true),\n\t\t\tSpec:          pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackage, err := ga.NewBandwidthPackage(ctx, \"default\", \u0026ga.BandwidthPackageArgs{\n\t\t\tBandwidth:     pulumi.Int(100),\n\t\t\tType:          pulumi.String(\"Basic\"),\n\t\t\tBandwidthType: pulumi.String(\"Basic\"),\n\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\tBillingType:   pulumi.String(\"PayBy95\"),\n\t\t\tRatio:         pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackageAttachment, err := ga.NewBandwidthPackageAttachment(ctx, \"default\", \u0026ga.BandwidthPackageAttachmentArgs{\n\t\t\tAcceleratorId:      _default.ID(),\n\t\t\tBandwidthPackageId: defaultBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ga.NewListener(ctx, \"default\", \u0026ga.ListenerArgs{\n\t\t\tAcceleratorId: defaultBandwidthPackageAttachment.AcceleratorId,\n\t\t\tPortRanges: ga.ListenerPortRangeArray{\n\t\t\t\t\u0026ga.ListenerPortRangeArgs{\n\t\t\t\t\tFromPort: pulumi.Int(80),\n\t\t\t\t\tToPort:   pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.Accelerator;\nimport com.pulumi.alicloud.ga.AcceleratorArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackage;\nimport com.pulumi.alicloud.ga.BandwidthPackageArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.ga.Listener;\nimport com.pulumi.alicloud.ga.ListenerArgs;\nimport com.pulumi.alicloud.ga.inputs.ListenerPortRangeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Accelerator(\"default\", AcceleratorArgs.builder()\n            .duration(1)\n            .autoUseCoupon(true)\n            .spec(\"1\")\n            .build());\n\n        var defaultBandwidthPackage = new BandwidthPackage(\"defaultBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(100)\n            .type(\"Basic\")\n            .bandwidthType(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .billingType(\"PayBy95\")\n            .ratio(30)\n            .build());\n\n        var defaultBandwidthPackageAttachment = new BandwidthPackageAttachment(\"defaultBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .acceleratorId(default_.id())\n            .bandwidthPackageId(defaultBandwidthPackage.id())\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .acceleratorId(defaultBandwidthPackageAttachment.acceleratorId())\n            .portRanges(ListenerPortRangeArgs.builder()\n                .fromPort(80)\n                .toPort(80)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ga:Accelerator\n    properties:\n      duration: 1\n      autoUseCoupon: true\n      spec: '1'\n  defaultBandwidthPackage:\n    type: alicloud:ga:BandwidthPackage\n    name: default\n    properties:\n      bandwidth: 100\n      type: Basic\n      bandwidthType: Basic\n      paymentType: PayAsYouGo\n      billingType: PayBy95\n      ratio: 30\n  defaultBandwidthPackageAttachment:\n    type: alicloud:ga:BandwidthPackageAttachment\n    name: default\n    properties:\n      acceleratorId: ${default.id}\n      bandwidthPackageId: ${defaultBandwidthPackage.id}\n  defaultListener:\n    type: alicloud:ga:Listener\n    name: default\n    properties:\n      acceleratorId: ${defaultBandwidthPackageAttachment.acceleratorId}\n      portRanges:\n        - fromPort: 80\n          toPort: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGa Listener can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ga/listener:Listener example \u003cid\u003e\n```\n\n","properties":{"acceleratorId":{"type":"string","description":"The accelerator id.\n"},"certificates":{"type":"array","items":{"$ref":"#/types/alicloud:ga/ListenerCertificate:ListenerCertificate"},"description":"The certificates of the listener. See \u003cspan pulumi-lang-nodejs=\"`certificates`\" pulumi-lang-dotnet=\"`Certificates`\" pulumi-lang-go=\"`certificates`\" pulumi-lang-python=\"`certificates`\" pulumi-lang-yaml=\"`certificates`\" pulumi-lang-java=\"`certificates`\"\u003e`certificates`\u003c/span\u003e below.\n\u003e **NOTE:** This parameter needs to be configured only for monitoring of the `HTTPS` protocol.\n"},"clientAffinity":{"type":"string","description":"The clientAffinity of the listener. Default value: `NONE`. Valid values:\n- `NONE`: client affinity is not maintained, that is, connection requests from the same client cannot always be directed to the same terminal node.\n- `SOURCE_IP`: maintain client affinity. When a client accesses a stateful application, all requests from the same client can be directed to the same terminal node, regardless of the source port and protocol.\n"},"description":{"type":"string","description":"The description of the listener.\n"},"forwardedForConfig":{"$ref":"#/types/alicloud:ga/ListenerForwardedForConfig:ListenerForwardedForConfig","description":"The XForward headers. See \u003cspan pulumi-lang-nodejs=\"`forwardedForConfig`\" pulumi-lang-dotnet=\"`ForwardedForConfig`\" pulumi-lang-go=\"`forwardedForConfig`\" pulumi-lang-python=\"`forwarded_for_config`\" pulumi-lang-yaml=\"`forwardedForConfig`\" pulumi-lang-java=\"`forwardedForConfig`\"\u003e`forwarded_for_config`\u003c/span\u003e below.\n"},"httpVersion":{"type":"string","description":"The maximum version of the HTTP protocol. Default Value: \u003cspan pulumi-lang-nodejs=\"`http2`\" pulumi-lang-dotnet=\"`Http2`\" pulumi-lang-go=\"`http2`\" pulumi-lang-python=\"`http2`\" pulumi-lang-yaml=\"`http2`\" pulumi-lang-java=\"`http2`\"\u003e`http2`\u003c/span\u003e. Valid values: `http1.1`, \u003cspan pulumi-lang-nodejs=\"`http2`\" pulumi-lang-dotnet=\"`Http2`\" pulumi-lang-go=\"`http2`\" pulumi-lang-python=\"`http2`\" pulumi-lang-yaml=\"`http2`\" pulumi-lang-java=\"`http2`\"\u003e`http2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http3`\" pulumi-lang-dotnet=\"`Http3`\" pulumi-lang-go=\"`http3`\" pulumi-lang-python=\"`http3`\" pulumi-lang-yaml=\"`http3`\" pulumi-lang-java=\"`http3`\"\u003e`http3`\u003c/span\u003e.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`httpVersion`\" pulumi-lang-dotnet=\"`HttpVersion`\" pulumi-lang-go=\"`httpVersion`\" pulumi-lang-python=\"`http_version`\" pulumi-lang-yaml=\"`httpVersion`\" pulumi-lang-java=\"`httpVersion`\"\u003e`http_version`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `HTTPS`.\n"},"idleTimeout":{"type":"integer","description":"The timeout period of idle connections. Unit: seconds. Valid values:\n- If you set \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e to `TCP`. Default Value: \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e.\n- If you set \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e to `UDP`. Default Value: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n- If you set \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e to `HTTP` or `HTTPS`. Default Value: \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"listenerType":{"type":"string","description":"The routing type of the listener. Default Value: `Standard`. Valid values:\n- `Standard`: intelligent routing.\n- `CustomRouting`: custom routing.\n"},"name":{"type":"string","description":"The name of the listener. The length of the name is 2-128 characters. It starts with uppercase and lowercase letters or Chinese characters. It can contain numbers and underscores and dashes.\n"},"portRanges":{"type":"array","items":{"$ref":"#/types/alicloud:ga/ListenerPortRange:ListenerPortRange"},"description":"The portRanges of the listener. See \u003cspan pulumi-lang-nodejs=\"`portRanges`\" pulumi-lang-dotnet=\"`PortRanges`\" pulumi-lang-go=\"`portRanges`\" pulumi-lang-python=\"`port_ranges`\" pulumi-lang-yaml=\"`portRanges`\" pulumi-lang-java=\"`portRanges`\"\u003e`port_ranges`\u003c/span\u003e below.\n\u003e **NOTE:** For `HTTP` or `HTTPS` protocol monitoring, only one monitoring port can be configured, that is, the start monitoring port and end monitoring port should be the same.\n"},"protocol":{"type":"string","description":"Type of network transport protocol monitored. Default value: `TCP`. Valid values: `TCP`, `UDP`, `HTTP`, `HTTPS`.\n"},"proxyProtocol":{"type":"boolean","description":"The proxy protocol of the listener. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"requestTimeout":{"type":"integer","description":"The timeout period for HTTP or HTTPS requests. Unit: seconds. Default Value: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`requestTimeout`\" pulumi-lang-dotnet=\"`RequestTimeout`\" pulumi-lang-go=\"`requestTimeout`\" pulumi-lang-python=\"`request_timeout`\" pulumi-lang-yaml=\"`requestTimeout`\" pulumi-lang-java=\"`requestTimeout`\"\u003e`request_timeout`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `HTTP` or `HTTPS`.\n"},"securityPolicyId":{"type":"string","description":"The ID of the security policy. **NOTE:** Only `HTTPS` listeners support this parameter. Valid values:\n"},"status":{"type":"string","description":"The status of the listener.\n"}},"required":["acceleratorId","httpVersion","idleTimeout","name","portRanges","requestTimeout","securityPolicyId","status"],"inputProperties":{"acceleratorId":{"type":"string","description":"The accelerator id.\n","willReplaceOnChanges":true},"certificates":{"type":"array","items":{"$ref":"#/types/alicloud:ga/ListenerCertificate:ListenerCertificate"},"description":"The certificates of the listener. See \u003cspan pulumi-lang-nodejs=\"`certificates`\" pulumi-lang-dotnet=\"`Certificates`\" pulumi-lang-go=\"`certificates`\" pulumi-lang-python=\"`certificates`\" pulumi-lang-yaml=\"`certificates`\" pulumi-lang-java=\"`certificates`\"\u003e`certificates`\u003c/span\u003e below.\n\u003e **NOTE:** This parameter needs to be configured only for monitoring of the `HTTPS` protocol.\n"},"clientAffinity":{"type":"string","description":"The clientAffinity of the listener. Default value: `NONE`. Valid values:\n- `NONE`: client affinity is not maintained, that is, connection requests from the same client cannot always be directed to the same terminal node.\n- `SOURCE_IP`: maintain client affinity. When a client accesses a stateful application, all requests from the same client can be directed to the same terminal node, regardless of the source port and protocol.\n"},"description":{"type":"string","description":"The description of the listener.\n"},"forwardedForConfig":{"$ref":"#/types/alicloud:ga/ListenerForwardedForConfig:ListenerForwardedForConfig","description":"The XForward headers. See \u003cspan pulumi-lang-nodejs=\"`forwardedForConfig`\" pulumi-lang-dotnet=\"`ForwardedForConfig`\" pulumi-lang-go=\"`forwardedForConfig`\" pulumi-lang-python=\"`forwarded_for_config`\" pulumi-lang-yaml=\"`forwardedForConfig`\" pulumi-lang-java=\"`forwardedForConfig`\"\u003e`forwarded_for_config`\u003c/span\u003e below.\n"},"httpVersion":{"type":"string","description":"The maximum version of the HTTP protocol. Default Value: \u003cspan pulumi-lang-nodejs=\"`http2`\" pulumi-lang-dotnet=\"`Http2`\" pulumi-lang-go=\"`http2`\" pulumi-lang-python=\"`http2`\" pulumi-lang-yaml=\"`http2`\" pulumi-lang-java=\"`http2`\"\u003e`http2`\u003c/span\u003e. Valid values: `http1.1`, \u003cspan pulumi-lang-nodejs=\"`http2`\" pulumi-lang-dotnet=\"`Http2`\" pulumi-lang-go=\"`http2`\" pulumi-lang-python=\"`http2`\" pulumi-lang-yaml=\"`http2`\" pulumi-lang-java=\"`http2`\"\u003e`http2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http3`\" pulumi-lang-dotnet=\"`Http3`\" pulumi-lang-go=\"`http3`\" pulumi-lang-python=\"`http3`\" pulumi-lang-yaml=\"`http3`\" pulumi-lang-java=\"`http3`\"\u003e`http3`\u003c/span\u003e.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`httpVersion`\" pulumi-lang-dotnet=\"`HttpVersion`\" pulumi-lang-go=\"`httpVersion`\" pulumi-lang-python=\"`http_version`\" pulumi-lang-yaml=\"`httpVersion`\" pulumi-lang-java=\"`httpVersion`\"\u003e`http_version`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `HTTPS`.\n"},"idleTimeout":{"type":"integer","description":"The timeout period of idle connections. Unit: seconds. Valid values:\n- If you set \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e to `TCP`. Default Value: \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e.\n- If you set \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e to `UDP`. Default Value: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n- If you set \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e to `HTTP` or `HTTPS`. Default Value: \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"listenerType":{"type":"string","description":"The routing type of the listener. Default Value: `Standard`. Valid values:\n- `Standard`: intelligent routing.\n- `CustomRouting`: custom routing.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the listener. The length of the name is 2-128 characters. It starts with uppercase and lowercase letters or Chinese characters. It can contain numbers and underscores and dashes.\n"},"portRanges":{"type":"array","items":{"$ref":"#/types/alicloud:ga/ListenerPortRange:ListenerPortRange"},"description":"The portRanges of the listener. See \u003cspan pulumi-lang-nodejs=\"`portRanges`\" pulumi-lang-dotnet=\"`PortRanges`\" pulumi-lang-go=\"`portRanges`\" pulumi-lang-python=\"`port_ranges`\" pulumi-lang-yaml=\"`portRanges`\" pulumi-lang-java=\"`portRanges`\"\u003e`port_ranges`\u003c/span\u003e below.\n\u003e **NOTE:** For `HTTP` or `HTTPS` protocol monitoring, only one monitoring port can be configured, that is, the start monitoring port and end monitoring port should be the same.\n"},"protocol":{"type":"string","description":"Type of network transport protocol monitored. Default value: `TCP`. Valid values: `TCP`, `UDP`, `HTTP`, `HTTPS`.\n"},"proxyProtocol":{"type":"boolean","description":"The proxy protocol of the listener. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"requestTimeout":{"type":"integer","description":"The timeout period for HTTP or HTTPS requests. Unit: seconds. Default Value: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`requestTimeout`\" pulumi-lang-dotnet=\"`RequestTimeout`\" pulumi-lang-go=\"`requestTimeout`\" pulumi-lang-python=\"`request_timeout`\" pulumi-lang-yaml=\"`requestTimeout`\" pulumi-lang-java=\"`requestTimeout`\"\u003e`request_timeout`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `HTTP` or `HTTPS`.\n"},"securityPolicyId":{"type":"string","description":"The ID of the security policy. **NOTE:** Only `HTTPS` listeners support this parameter. Valid values:\n"}},"requiredInputs":["acceleratorId","portRanges"],"stateInputs":{"description":"Input properties used for looking up and filtering Listener resources.\n","properties":{"acceleratorId":{"type":"string","description":"The accelerator id.\n","willReplaceOnChanges":true},"certificates":{"type":"array","items":{"$ref":"#/types/alicloud:ga/ListenerCertificate:ListenerCertificate"},"description":"The certificates of the listener. See \u003cspan pulumi-lang-nodejs=\"`certificates`\" pulumi-lang-dotnet=\"`Certificates`\" pulumi-lang-go=\"`certificates`\" pulumi-lang-python=\"`certificates`\" pulumi-lang-yaml=\"`certificates`\" pulumi-lang-java=\"`certificates`\"\u003e`certificates`\u003c/span\u003e below.\n\u003e **NOTE:** This parameter needs to be configured only for monitoring of the `HTTPS` protocol.\n"},"clientAffinity":{"type":"string","description":"The clientAffinity of the listener. Default value: `NONE`. Valid values:\n- `NONE`: client affinity is not maintained, that is, connection requests from the same client cannot always be directed to the same terminal node.\n- `SOURCE_IP`: maintain client affinity. When a client accesses a stateful application, all requests from the same client can be directed to the same terminal node, regardless of the source port and protocol.\n"},"description":{"type":"string","description":"The description of the listener.\n"},"forwardedForConfig":{"$ref":"#/types/alicloud:ga/ListenerForwardedForConfig:ListenerForwardedForConfig","description":"The XForward headers. See \u003cspan pulumi-lang-nodejs=\"`forwardedForConfig`\" pulumi-lang-dotnet=\"`ForwardedForConfig`\" pulumi-lang-go=\"`forwardedForConfig`\" pulumi-lang-python=\"`forwarded_for_config`\" pulumi-lang-yaml=\"`forwardedForConfig`\" pulumi-lang-java=\"`forwardedForConfig`\"\u003e`forwarded_for_config`\u003c/span\u003e below.\n"},"httpVersion":{"type":"string","description":"The maximum version of the HTTP protocol. Default Value: \u003cspan pulumi-lang-nodejs=\"`http2`\" pulumi-lang-dotnet=\"`Http2`\" pulumi-lang-go=\"`http2`\" pulumi-lang-python=\"`http2`\" pulumi-lang-yaml=\"`http2`\" pulumi-lang-java=\"`http2`\"\u003e`http2`\u003c/span\u003e. Valid values: `http1.1`, \u003cspan pulumi-lang-nodejs=\"`http2`\" pulumi-lang-dotnet=\"`Http2`\" pulumi-lang-go=\"`http2`\" pulumi-lang-python=\"`http2`\" pulumi-lang-yaml=\"`http2`\" pulumi-lang-java=\"`http2`\"\u003e`http2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http3`\" pulumi-lang-dotnet=\"`Http3`\" pulumi-lang-go=\"`http3`\" pulumi-lang-python=\"`http3`\" pulumi-lang-yaml=\"`http3`\" pulumi-lang-java=\"`http3`\"\u003e`http3`\u003c/span\u003e.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`httpVersion`\" pulumi-lang-dotnet=\"`HttpVersion`\" pulumi-lang-go=\"`httpVersion`\" pulumi-lang-python=\"`http_version`\" pulumi-lang-yaml=\"`httpVersion`\" pulumi-lang-java=\"`httpVersion`\"\u003e`http_version`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `HTTPS`.\n"},"idleTimeout":{"type":"integer","description":"The timeout period of idle connections. Unit: seconds. Valid values:\n- If you set \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e to `TCP`. Default Value: \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e.\n- If you set \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e to `UDP`. Default Value: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n- If you set \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e to `HTTP` or `HTTPS`. Default Value: \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"listenerType":{"type":"string","description":"The routing type of the listener. Default Value: `Standard`. Valid values:\n- `Standard`: intelligent routing.\n- `CustomRouting`: custom routing.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the listener. The length of the name is 2-128 characters. It starts with uppercase and lowercase letters or Chinese characters. It can contain numbers and underscores and dashes.\n"},"portRanges":{"type":"array","items":{"$ref":"#/types/alicloud:ga/ListenerPortRange:ListenerPortRange"},"description":"The portRanges of the listener. See \u003cspan pulumi-lang-nodejs=\"`portRanges`\" pulumi-lang-dotnet=\"`PortRanges`\" pulumi-lang-go=\"`portRanges`\" pulumi-lang-python=\"`port_ranges`\" pulumi-lang-yaml=\"`portRanges`\" pulumi-lang-java=\"`portRanges`\"\u003e`port_ranges`\u003c/span\u003e below.\n\u003e **NOTE:** For `HTTP` or `HTTPS` protocol monitoring, only one monitoring port can be configured, that is, the start monitoring port and end monitoring port should be the same.\n"},"protocol":{"type":"string","description":"Type of network transport protocol monitored. Default value: `TCP`. Valid values: `TCP`, `UDP`, `HTTP`, `HTTPS`.\n"},"proxyProtocol":{"type":"boolean","description":"The proxy protocol of the listener. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"requestTimeout":{"type":"integer","description":"The timeout period for HTTP or HTTPS requests. Unit: seconds. Default Value: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`requestTimeout`\" pulumi-lang-dotnet=\"`RequestTimeout`\" pulumi-lang-go=\"`requestTimeout`\" pulumi-lang-python=\"`request_timeout`\" pulumi-lang-yaml=\"`requestTimeout`\" pulumi-lang-java=\"`requestTimeout`\"\u003e`request_timeout`\u003c/span\u003e is only valid when \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `HTTP` or `HTTPS`.\n"},"securityPolicyId":{"type":"string","description":"The ID of the security policy. **NOTE:** Only `HTTPS` listeners support this parameter. Valid values:\n"},"status":{"type":"string","description":"The status of the listener.\n"}},"type":"object"}},"alicloud:governance/account:Account":{"description":"Provides a Governance Account resource.\n\nMember account created by the Cloud Governance Center account factory.\n\nFor information about Governance Account and how to use it, see [What is Account](https://next.api.aliyun.com/document/governance/2021-01-20/EnrollAccount).\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.getAccount({});\nconst defaultGetBaselines = alicloud.governance.getBaselines({});\nconst defaultGetFolders = alicloud.resourcemanager.getFolders({});\nconst defaultAccount = new alicloud.governance.Account(\"default\", {\n    accountNamePrefix: `${name}-${defaultInteger.result}`,\n    folderId: defaultGetFolders.then(defaultGetFolders =\u003e defaultGetFolders.ids?.[0]),\n    baselineId: defaultGetBaselines.then(defaultGetBaselines =\u003e defaultGetBaselines.ids?.[0]),\n    payerAccountId: _default.then(_default =\u003e _default.id),\n    displayName: `${name}-${defaultInteger.result}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.get_account()\ndefault_get_baselines = alicloud.governance.get_baselines()\ndefault_get_folders = alicloud.resourcemanager.get_folders()\ndefault_account = alicloud.governance.Account(\"default\",\n    account_name_prefix=f\"{name}-{default_integer['result']}\",\n    folder_id=default_get_folders.ids[0],\n    baseline_id=default_get_baselines.ids[0],\n    payer_account_id=default.id,\n    display_name=f\"{name}-{default_integer['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultGetBaselines = AliCloud.Governance.GetBaselines.Invoke();\n\n    var defaultGetFolders = AliCloud.ResourceManager.GetFolders.Invoke();\n\n    var defaultAccount = new AliCloud.Governance.Account(\"default\", new()\n    {\n        AccountNamePrefix = $\"{name}-{defaultInteger.Result}\",\n        FolderId = defaultGetFolders.Apply(getFoldersResult =\u003e getFoldersResult.Ids[0]),\n        BaselineId = defaultGetBaselines.Apply(getBaselinesResult =\u003e getBaselinesResult.Ids[0]),\n        PayerAccountId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        DisplayName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/governance\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetBaselines, err := governance.GetBaselines(ctx, \u0026governance.GetBaselinesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetFolders, err := resourcemanager.GetFolders(ctx, \u0026resourcemanager.GetFoldersArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = governance.NewAccount(ctx, \"default\", \u0026governance.AccountArgs{\n\t\t\tAccountNamePrefix: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tFolderId:          pulumi.String(defaultGetFolders.Ids[0]),\n\t\t\tBaselineId:        pulumi.String(defaultGetBaselines.Ids[0]),\n\t\t\tPayerAccountId:    pulumi.String(_default.Id),\n\t\t\tDisplayName:       pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.governance.GovernanceFunctions;\nimport com.pulumi.alicloud.governance.inputs.GetBaselinesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetFoldersArgs;\nimport com.pulumi.alicloud.governance.Account;\nimport com.pulumi.alicloud.governance.AccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var defaultGetBaselines = GovernanceFunctions.getBaselines(GetBaselinesArgs.builder()\n            .build());\n\n        final var defaultGetFolders = ResourcemanagerFunctions.getFolders(GetFoldersArgs.builder()\n            .build());\n\n        var defaultAccount = new Account(\"defaultAccount\", AccountArgs.builder()\n            .accountNamePrefix(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .folderId(defaultGetFolders.ids()[0])\n            .baselineId(defaultGetBaselines.ids()[0])\n            .payerAccountId(default_.id())\n            .displayName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultAccount:\n    type: alicloud:governance:Account\n    name: default\n    properties:\n      accountNamePrefix: ${name}-${defaultInteger.result}\n      folderId: ${defaultGetFolders.ids[0]}\n      baselineId: ${defaultGetBaselines.ids[0]}\n      payerAccountId: ${default.id}\n      displayName: ${name}-${defaultInteger.result}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  defaultGetBaselines:\n    fn::invoke:\n      function: alicloud:governance:getBaselines\n      arguments: {}\n  defaultGetFolders:\n    fn::invoke:\n      function: alicloud:resourcemanager:getFolders\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.governance.Account`\" pulumi-lang-dotnet=\"`alicloud.governance.Account`\" pulumi-lang-go=\"`governance.Account`\" pulumi-lang-python=\"`governance.Account`\" pulumi-lang-yaml=\"`alicloud.governance.Account`\" pulumi-lang-java=\"`alicloud.governance.Account`\"\u003e`alicloud.governance.Account`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.governance.Account`\" pulumi-lang-dotnet=\"`alicloud.governance.Account`\" pulumi-lang-go=\"`governance.Account`\" pulumi-lang-python=\"`governance.Account`\" pulumi-lang-yaml=\"`alicloud.governance.Account`\" pulumi-lang-java=\"`alicloud.governance.Account`\"\u003e`alicloud.governance.Account`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGovernance Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:governance/account:Account example \u003cid\u003e\n```\n\n","properties":{"accountId":{"type":"integer","description":"The ID of the enrolled account.\n- If you are creating a new resource account, this parameter is not required.\n- If you are enrolling a existing account to account factory, this parameter is required.\n"},"accountNamePrefix":{"type":"string","description":"Account name prefix.\n- This parameter is required if you are creating a new resource account.\n- If the registration application is applied to an existing account, this parameter does not need to be filled in.\n"},"accountTags":{"type":"array","items":{"$ref":"#/types/alicloud:governance/AccountAccountTag:AccountAccountTag"},"description":"The tags of the account See \u003cspan pulumi-lang-nodejs=\"`accountTags`\" pulumi-lang-dotnet=\"`AccountTags`\" pulumi-lang-go=\"`accountTags`\" pulumi-lang-python=\"`account_tags`\" pulumi-lang-yaml=\"`accountTags`\" pulumi-lang-java=\"`accountTags`\"\u003e`account_tags`\u003c/span\u003e below.\n"},"baselineId":{"type":"string","description":"The baseline ID.\n\nIf it is left blank, the system default baseline is used by default.\n"},"defaultDomainName":{"type":"string","description":"The domain name is used to qualify the login name of RAM users and RAM roles.\n"},"displayName":{"type":"string","description":"The account display name.\n- This parameter is required if you are creating a new resource account.\n- If the registration application is applied to an existing account, this parameter does not need to be filled in.\n"},"folderId":{"type":"string","description":"The ID of the parent resource folder.\n\nIf you want to create a new resource account and leave this parameter blank, the account is created in the Root folder by default.\n\nIf the registration application is applied to an existing account, this parameter does not need to be filled in.\n"},"payerAccountId":{"type":"integer","description":"The ID of the billing account. If you leave this parameter empty, the current account is used as the billing account.\n"},"status":{"type":"string","description":"Account registration status. Value:\n"}},"required":["accountId","baselineId","status"],"inputProperties":{"accountId":{"type":"integer","description":"The ID of the enrolled account.\n- If you are creating a new resource account, this parameter is not required.\n- If you are enrolling a existing account to account factory, this parameter is required.\n","willReplaceOnChanges":true},"accountNamePrefix":{"type":"string","description":"Account name prefix.\n- This parameter is required if you are creating a new resource account.\n- If the registration application is applied to an existing account, this parameter does not need to be filled in.\n"},"accountTags":{"type":"array","items":{"$ref":"#/types/alicloud:governance/AccountAccountTag:AccountAccountTag"},"description":"The tags of the account See \u003cspan pulumi-lang-nodejs=\"`accountTags`\" pulumi-lang-dotnet=\"`AccountTags`\" pulumi-lang-go=\"`accountTags`\" pulumi-lang-python=\"`account_tags`\" pulumi-lang-yaml=\"`accountTags`\" pulumi-lang-java=\"`accountTags`\"\u003e`account_tags`\u003c/span\u003e below.\n"},"baselineId":{"type":"string","description":"The baseline ID.\n\nIf it is left blank, the system default baseline is used by default.\n"},"defaultDomainName":{"type":"string","description":"The domain name is used to qualify the login name of RAM users and RAM roles.\n"},"displayName":{"type":"string","description":"The account display name.\n- This parameter is required if you are creating a new resource account.\n- If the registration application is applied to an existing account, this parameter does not need to be filled in.\n"},"folderId":{"type":"string","description":"The ID of the parent resource folder.\n\nIf you want to create a new resource account and leave this parameter blank, the account is created in the Root folder by default.\n\nIf the registration application is applied to an existing account, this parameter does not need to be filled in.\n"},"payerAccountId":{"type":"integer","description":"The ID of the billing account. If you leave this parameter empty, the current account is used as the billing account.\n"}},"requiredInputs":["baselineId"],"stateInputs":{"description":"Input properties used for looking up and filtering Account resources.\n","properties":{"accountId":{"type":"integer","description":"The ID of the enrolled account.\n- If you are creating a new resource account, this parameter is not required.\n- If you are enrolling a existing account to account factory, this parameter is required.\n","willReplaceOnChanges":true},"accountNamePrefix":{"type":"string","description":"Account name prefix.\n- This parameter is required if you are creating a new resource account.\n- If the registration application is applied to an existing account, this parameter does not need to be filled in.\n"},"accountTags":{"type":"array","items":{"$ref":"#/types/alicloud:governance/AccountAccountTag:AccountAccountTag"},"description":"The tags of the account See \u003cspan pulumi-lang-nodejs=\"`accountTags`\" pulumi-lang-dotnet=\"`AccountTags`\" pulumi-lang-go=\"`accountTags`\" pulumi-lang-python=\"`account_tags`\" pulumi-lang-yaml=\"`accountTags`\" pulumi-lang-java=\"`accountTags`\"\u003e`account_tags`\u003c/span\u003e below.\n"},"baselineId":{"type":"string","description":"The baseline ID.\n\nIf it is left blank, the system default baseline is used by default.\n"},"defaultDomainName":{"type":"string","description":"The domain name is used to qualify the login name of RAM users and RAM roles.\n"},"displayName":{"type":"string","description":"The account display name.\n- This parameter is required if you are creating a new resource account.\n- If the registration application is applied to an existing account, this parameter does not need to be filled in.\n"},"folderId":{"type":"string","description":"The ID of the parent resource folder.\n\nIf you want to create a new resource account and leave this parameter blank, the account is created in the Root folder by default.\n\nIf the registration application is applied to an existing account, this parameter does not need to be filled in.\n"},"payerAccountId":{"type":"integer","description":"The ID of the billing account. If you leave this parameter empty, the current account is used as the billing account.\n"},"status":{"type":"string","description":"Account registration status. Value:\n"}},"type":"object"}},"alicloud:governance/baseline:Baseline":{"description":"Provides a Governance Baseline resource.\n\nAccount Factory Baseline.\n\nFor information about Governance Baseline and how to use it, see [What is Baseline](https://next.api.aliyun.com/document/governance/2021-01-20/CreateAccountFactoryBaseline).\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst itemPasswordPolicy = config.get(\"itemPasswordPolicy\") || \"ACS-BP_ACCOUNT_FACTORY_RAM_USER_PASSWORD_POLICY\";\nconst baselineNameUpdate = config.get(\"baselineNameUpdate\") || \"tf-auto-example-baseline-update\";\nconst itemServices = config.get(\"itemServices\") || \"ACS-BP_ACCOUNT_FACTORY_SUBSCRIBE_SERVICES\";\nconst baselineName = config.get(\"baselineName\") || \"tf-auto-example-baseline\";\nconst itemRamSecurity = config.get(\"itemRamSecurity\") || \"ACS-BP_ACCOUNT_FACTORY_RAM_SECURITY_PREFERENCE\";\nconst defaultBaseline = new alicloud.governance.Baseline(\"default\", {\n    baselineItems: [{\n        version: \"1.0\",\n        name: itemPasswordPolicy,\n        config: JSON.stringify({\n            MinimumPasswordLength: 8,\n            RequireLowercaseCharacters: true,\n            RequireUppercaseCharacters: true,\n            RequireNumbers: true,\n            RequireSymbols: true,\n            MaxPasswordAge: 0,\n            HardExpiry: false,\n            PasswordReusePrevention: 0,\n            MaxLoginAttempts: 0,\n        }),\n    }],\n    description: name,\n    baselineName: `${name}-${_default.result}`,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nitem_password_policy = config.get(\"itemPasswordPolicy\")\nif item_password_policy is None:\n    item_password_policy = \"ACS-BP_ACCOUNT_FACTORY_RAM_USER_PASSWORD_POLICY\"\nbaseline_name_update = config.get(\"baselineNameUpdate\")\nif baseline_name_update is None:\n    baseline_name_update = \"tf-auto-example-baseline-update\"\nitem_services = config.get(\"itemServices\")\nif item_services is None:\n    item_services = \"ACS-BP_ACCOUNT_FACTORY_SUBSCRIBE_SERVICES\"\nbaseline_name = config.get(\"baselineName\")\nif baseline_name is None:\n    baseline_name = \"tf-auto-example-baseline\"\nitem_ram_security = config.get(\"itemRamSecurity\")\nif item_ram_security is None:\n    item_ram_security = \"ACS-BP_ACCOUNT_FACTORY_RAM_SECURITY_PREFERENCE\"\ndefault_baseline = alicloud.governance.Baseline(\"default\",\n    baseline_items=[{\n        \"version\": \"1.0\",\n        \"name\": item_password_policy,\n        \"config\": json.dumps({\n            \"MinimumPasswordLength\": 8,\n            \"RequireLowercaseCharacters\": True,\n            \"RequireUppercaseCharacters\": True,\n            \"RequireNumbers\": True,\n            \"RequireSymbols\": True,\n            \"MaxPasswordAge\": 0,\n            \"HardExpiry\": False,\n            \"PasswordReusePrevention\": 0,\n            \"MaxLoginAttempts\": 0,\n        }),\n    }],\n    description=name,\n    baseline_name=f\"{name}-{default['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var itemPasswordPolicy = config.Get(\"itemPasswordPolicy\") ?? \"ACS-BP_ACCOUNT_FACTORY_RAM_USER_PASSWORD_POLICY\";\n    var baselineNameUpdate = config.Get(\"baselineNameUpdate\") ?? \"tf-auto-example-baseline-update\";\n    var itemServices = config.Get(\"itemServices\") ?? \"ACS-BP_ACCOUNT_FACTORY_SUBSCRIBE_SERVICES\";\n    var baselineName = config.Get(\"baselineName\") ?? \"tf-auto-example-baseline\";\n    var itemRamSecurity = config.Get(\"itemRamSecurity\") ?? \"ACS-BP_ACCOUNT_FACTORY_RAM_SECURITY_PREFERENCE\";\n    var defaultBaseline = new AliCloud.Governance.Baseline(\"default\", new()\n    {\n        BaselineItems = new[]\n        {\n            new AliCloud.Governance.Inputs.BaselineBaselineItemArgs\n            {\n                Version = \"1.0\",\n                Name = itemPasswordPolicy,\n                Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"MinimumPasswordLength\"] = 8,\n                    [\"RequireLowercaseCharacters\"] = true,\n                    [\"RequireUppercaseCharacters\"] = true,\n                    [\"RequireNumbers\"] = true,\n                    [\"RequireSymbols\"] = true,\n                    [\"MaxPasswordAge\"] = 0,\n                    [\"HardExpiry\"] = false,\n                    [\"PasswordReusePrevention\"] = 0,\n                    [\"MaxLoginAttempts\"] = 0,\n                }),\n            },\n        },\n        Description = name,\n        BaselineName = $\"{name}-{@default.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/governance\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\titemPasswordPolicy := \"ACS-BP_ACCOUNT_FACTORY_RAM_USER_PASSWORD_POLICY\"\n\t\tif param := cfg.Get(\"itemPasswordPolicy\"); param != \"\" {\n\t\t\titemPasswordPolicy = param\n\t\t}\n\t\tbaselineNameUpdate := \"tf-auto-example-baseline-update\"\n\t\tif param := cfg.Get(\"baselineNameUpdate\"); param != \"\" {\n\t\t\tbaselineNameUpdate = param\n\t\t}\n\t\titemServices := \"ACS-BP_ACCOUNT_FACTORY_SUBSCRIBE_SERVICES\"\n\t\tif param := cfg.Get(\"itemServices\"); param != \"\" {\n\t\t\titemServices = param\n\t\t}\n\t\tbaselineName := \"tf-auto-example-baseline\"\n\t\tif param := cfg.Get(\"baselineName\"); param != \"\" {\n\t\t\tbaselineName = param\n\t\t}\n\t\titemRamSecurity := \"ACS-BP_ACCOUNT_FACTORY_RAM_SECURITY_PREFERENCE\"\n\t\tif param := cfg.Get(\"itemRamSecurity\"); param != \"\" {\n\t\t\titemRamSecurity = param\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"MinimumPasswordLength\":      8,\n\t\t\t\"RequireLowercaseCharacters\": true,\n\t\t\t\"RequireUppercaseCharacters\": true,\n\t\t\t\"RequireNumbers\":             true,\n\t\t\t\"RequireSymbols\":             true,\n\t\t\t\"MaxPasswordAge\":             0,\n\t\t\t\"HardExpiry\":                 false,\n\t\t\t\"PasswordReusePrevention\":    0,\n\t\t\t\"MaxLoginAttempts\":           0,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = governance.NewBaseline(ctx, \"default\", \u0026governance.BaselineArgs{\n\t\t\tBaselineItems: governance.BaselineBaselineItemArray{\n\t\t\t\t\u0026governance.BaselineBaselineItemArgs{\n\t\t\t\t\tVersion: pulumi.String(\"1.0\"),\n\t\t\t\t\tName:    pulumi.String(itemPasswordPolicy),\n\t\t\t\t\tConfig:  pulumi.String(json0),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDescription:  pulumi.String(name),\n\t\t\tBaselineName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.governance.Baseline;\nimport com.pulumi.alicloud.governance.BaselineArgs;\nimport com.pulumi.alicloud.governance.inputs.BaselineBaselineItemArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var itemPasswordPolicy = config.get(\"itemPasswordPolicy\").orElse(\"ACS-BP_ACCOUNT_FACTORY_RAM_USER_PASSWORD_POLICY\");\n        final var baselineNameUpdate = config.get(\"baselineNameUpdate\").orElse(\"tf-auto-example-baseline-update\");\n        final var itemServices = config.get(\"itemServices\").orElse(\"ACS-BP_ACCOUNT_FACTORY_SUBSCRIBE_SERVICES\");\n        final var baselineName = config.get(\"baselineName\").orElse(\"tf-auto-example-baseline\");\n        final var itemRamSecurity = config.get(\"itemRamSecurity\").orElse(\"ACS-BP_ACCOUNT_FACTORY_RAM_SECURITY_PREFERENCE\");\n        var defaultBaseline = new Baseline(\"defaultBaseline\", BaselineArgs.builder()\n            .baselineItems(BaselineBaselineItemArgs.builder()\n                .version(\"1.0\")\n                .name(itemPasswordPolicy)\n                .config(serializeJson(\n                    jsonObject(\n                        jsonProperty(\"MinimumPasswordLength\", 8),\n                        jsonProperty(\"RequireLowercaseCharacters\", true),\n                        jsonProperty(\"RequireUppercaseCharacters\", true),\n                        jsonProperty(\"RequireNumbers\", true),\n                        jsonProperty(\"RequireSymbols\", true),\n                        jsonProperty(\"MaxPasswordAge\", 0),\n                        jsonProperty(\"HardExpiry\", false),\n                        jsonProperty(\"PasswordReusePrevention\", 0),\n                        jsonProperty(\"MaxLoginAttempts\", 0)\n                    )))\n                .build())\n            .description(name)\n            .baselineName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  itemPasswordPolicy:\n    type: string\n    default: ACS-BP_ACCOUNT_FACTORY_RAM_USER_PASSWORD_POLICY\n  baselineNameUpdate:\n    type: string\n    default: tf-auto-example-baseline-update\n  itemServices:\n    type: string\n    default: ACS-BP_ACCOUNT_FACTORY_SUBSCRIBE_SERVICES\n  baselineName:\n    type: string\n    default: tf-auto-example-baseline\n  itemRamSecurity:\n    type: string\n    default: ACS-BP_ACCOUNT_FACTORY_RAM_SECURITY_PREFERENCE\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultBaseline:\n    type: alicloud:governance:Baseline\n    name: default\n    properties:\n      baselineItems:\n        - version: '1.0'\n          name: ${itemPasswordPolicy}\n          config:\n            fn::toJSON:\n              MinimumPasswordLength: 8\n              RequireLowercaseCharacters: true\n              RequireUppercaseCharacters: true\n              RequireNumbers: true\n              RequireSymbols: true\n              MaxPasswordAge: 0\n              HardExpiry: false\n              PasswordReusePrevention: 0\n              MaxLoginAttempts: 0\n      description: ${name}\n      baselineName: ${name}-${default.result}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGovernance Baseline can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:governance/baseline:Baseline example \u003cid\u003e\n```\n\n","properties":{"baselineItems":{"type":"array","items":{"$ref":"#/types/alicloud:governance/BaselineBaselineItem:BaselineBaselineItem"},"description":"List of baseline items.\n\nYou can invoke [ListAccountFactoryBaselineItems](https://next.api.aliyun.com/document/governance/2021-01-20/ListAccountFactoryBaselineItems) to get a list of account factory baseline items supported by the Cloud Governance Center. See \u003cspan pulumi-lang-nodejs=\"`baselineItems`\" pulumi-lang-dotnet=\"`BaselineItems`\" pulumi-lang-go=\"`baselineItems`\" pulumi-lang-python=\"`baseline_items`\" pulumi-lang-yaml=\"`baselineItems`\" pulumi-lang-java=\"`baselineItems`\"\u003e`baseline_items`\u003c/span\u003e below.\n"},"baselineName":{"type":"string","description":"Baseline Name.\n"},"description":{"type":"string","description":"Baseline Description.\n"}},"inputProperties":{"baselineItems":{"type":"array","items":{"$ref":"#/types/alicloud:governance/BaselineBaselineItem:BaselineBaselineItem"},"description":"List of baseline items.\n\nYou can invoke [ListAccountFactoryBaselineItems](https://next.api.aliyun.com/document/governance/2021-01-20/ListAccountFactoryBaselineItems) to get a list of account factory baseline items supported by the Cloud Governance Center. See \u003cspan pulumi-lang-nodejs=\"`baselineItems`\" pulumi-lang-dotnet=\"`BaselineItems`\" pulumi-lang-go=\"`baselineItems`\" pulumi-lang-python=\"`baseline_items`\" pulumi-lang-yaml=\"`baselineItems`\" pulumi-lang-java=\"`baselineItems`\"\u003e`baseline_items`\u003c/span\u003e below.\n"},"baselineName":{"type":"string","description":"Baseline Name.\n"},"description":{"type":"string","description":"Baseline Description.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Baseline resources.\n","properties":{"baselineItems":{"type":"array","items":{"$ref":"#/types/alicloud:governance/BaselineBaselineItem:BaselineBaselineItem"},"description":"List of baseline items.\n\nYou can invoke [ListAccountFactoryBaselineItems](https://next.api.aliyun.com/document/governance/2021-01-20/ListAccountFactoryBaselineItems) to get a list of account factory baseline items supported by the Cloud Governance Center. See \u003cspan pulumi-lang-nodejs=\"`baselineItems`\" pulumi-lang-dotnet=\"`BaselineItems`\" pulumi-lang-go=\"`baselineItems`\" pulumi-lang-python=\"`baseline_items`\" pulumi-lang-yaml=\"`baselineItems`\" pulumi-lang-java=\"`baselineItems`\"\u003e`baseline_items`\u003c/span\u003e below.\n"},"baselineName":{"type":"string","description":"Baseline Name.\n"},"description":{"type":"string","description":"Baseline Description.\n"}},"type":"object"}},"alicloud:gpdb/account:Account":{"description":"Provides a GPDB Account resource.\n\nFor information about GPDB Account and how to use it, see [What is Account](https://www.alibabacloud.com/help/doc-detail/86924.htm).\n\n\u003e **NOTE:** Available since v1.142.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.gpdb.getZones({});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[0],\n}));\nconst defaultInstance = new alicloud.gpdb.Instance(\"default\", {\n    dbInstanceCategory: \"HighAvailability\",\n    dbInstanceClass: \"gpdb.group.segsdx1\",\n    dbInstanceMode: \"StorageElastic\",\n    description: name,\n    engine: \"gpdb\",\n    engineVersion: \"6.0\",\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n    instanceNetworkType: \"VPC\",\n    instanceSpec: \"2C16G\",\n    paymentType: \"PayAsYouGo\",\n    segStorageType: \"cloud_essd\",\n    segNodeNum: 4,\n    storageSize: 50,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    ipWhitelists: [{\n        securityIpList: \"127.0.0.1\",\n    }],\n});\nconst defaultAccount = new alicloud.gpdb.Account(\"default\", {\n    accountName: \"tf_example\",\n    dbInstanceId: defaultInstance.id,\n    accountPassword: \"Example1234\",\n    accountDescription: \"tf_example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.gpdb.get_zones()\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[0])\ndefault_instance = alicloud.gpdb.Instance(\"default\",\n    db_instance_category=\"HighAvailability\",\n    db_instance_class=\"gpdb.group.segsdx1\",\n    db_instance_mode=\"StorageElastic\",\n    description=name,\n    engine=\"gpdb\",\n    engine_version=\"6.0\",\n    zone_id=default.ids[0],\n    instance_network_type=\"VPC\",\n    instance_spec=\"2C16G\",\n    payment_type=\"PayAsYouGo\",\n    seg_storage_type=\"cloud_essd\",\n    seg_node_num=4,\n    storage_size=50,\n    vpc_id=default_get_networks.ids[0],\n    vswitch_id=default_get_switches.ids[0],\n    ip_whitelists=[{\n        \"security_ip_list\": \"127.0.0.1\",\n    }])\ndefault_account = alicloud.gpdb.Account(\"default\",\n    account_name=\"tf_example\",\n    db_instance_id=default_instance.id,\n    account_password=\"Example1234\",\n    account_description=\"tf_example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Gpdb.GetZones.Invoke();\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.Gpdb.Instance(\"default\", new()\n    {\n        DbInstanceCategory = \"HighAvailability\",\n        DbInstanceClass = \"gpdb.group.segsdx1\",\n        DbInstanceMode = \"StorageElastic\",\n        Description = name,\n        Engine = \"gpdb\",\n        EngineVersion = \"6.0\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n        InstanceNetworkType = \"VPC\",\n        InstanceSpec = \"2C16G\",\n        PaymentType = \"PayAsYouGo\",\n        SegStorageType = \"cloud_essd\",\n        SegNodeNum = 4,\n        StorageSize = 50,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        IpWhitelists = new[]\n        {\n            new AliCloud.Gpdb.Inputs.InstanceIpWhitelistArgs\n            {\n                SecurityIpList = \"127.0.0.1\",\n            },\n        },\n    });\n\n    var defaultAccount = new AliCloud.Gpdb.Account(\"default\", new()\n    {\n        AccountName = \"tf_example\",\n        DbInstanceId = defaultInstance.Id,\n        AccountPassword = \"Example1234\",\n        AccountDescription = \"tf_example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := gpdb.GetZones(ctx, \u0026gpdb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := gpdb.NewInstance(ctx, \"default\", \u0026gpdb.InstanceArgs{\n\t\t\tDbInstanceCategory:  pulumi.String(\"HighAvailability\"),\n\t\t\tDbInstanceClass:     pulumi.String(\"gpdb.group.segsdx1\"),\n\t\t\tDbInstanceMode:      pulumi.String(\"StorageElastic\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tEngine:              pulumi.String(\"gpdb\"),\n\t\t\tEngineVersion:       pulumi.String(\"6.0\"),\n\t\t\tZoneId:              pulumi.String(_default.Ids[0]),\n\t\t\tInstanceNetworkType: pulumi.String(\"VPC\"),\n\t\t\tInstanceSpec:        pulumi.String(\"2C16G\"),\n\t\t\tPaymentType:         pulumi.String(\"PayAsYouGo\"),\n\t\t\tSegStorageType:      pulumi.String(\"cloud_essd\"),\n\t\t\tSegNodeNum:          pulumi.Int(4),\n\t\t\tStorageSize:         pulumi.Int(50),\n\t\t\tVpcId:               pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tVswitchId:           pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tIpWhitelists: gpdb.InstanceIpWhitelistArray{\n\t\t\t\t\u0026gpdb.InstanceIpWhitelistArgs{\n\t\t\t\t\tSecurityIpList: pulumi.String(\"127.0.0.1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gpdb.NewAccount(ctx, \"default\", \u0026gpdb.AccountArgs{\n\t\t\tAccountName:        pulumi.String(\"tf_example\"),\n\t\t\tDbInstanceId:       defaultInstance.ID(),\n\t\t\tAccountPassword:    pulumi.String(\"Example1234\"),\n\t\t\tAccountDescription: pulumi.String(\"tf_example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.gpdb.GpdbFunctions;\nimport com.pulumi.alicloud.gpdb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.gpdb.Instance;\nimport com.pulumi.alicloud.gpdb.InstanceArgs;\nimport com.pulumi.alicloud.gpdb.inputs.InstanceIpWhitelistArgs;\nimport com.pulumi.alicloud.gpdb.Account;\nimport com.pulumi.alicloud.gpdb.AccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = GpdbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .dbInstanceCategory(\"HighAvailability\")\n            .dbInstanceClass(\"gpdb.group.segsdx1\")\n            .dbInstanceMode(\"StorageElastic\")\n            .description(name)\n            .engine(\"gpdb\")\n            .engineVersion(\"6.0\")\n            .zoneId(default_.ids()[0])\n            .instanceNetworkType(\"VPC\")\n            .instanceSpec(\"2C16G\")\n            .paymentType(\"PayAsYouGo\")\n            .segStorageType(\"cloud_essd\")\n            .segNodeNum(4)\n            .storageSize(50)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .ipWhitelists(InstanceIpWhitelistArgs.builder()\n                .securityIpList(\"127.0.0.1\")\n                .build())\n            .build());\n\n        var defaultAccount = new Account(\"defaultAccount\", AccountArgs.builder()\n            .accountName(\"tf_example\")\n            .dbInstanceId(defaultInstance.id())\n            .accountPassword(\"Example1234\")\n            .accountDescription(\"tf_example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInstance:\n    type: alicloud:gpdb:Instance\n    name: default\n    properties:\n      dbInstanceCategory: HighAvailability\n      dbInstanceClass: gpdb.group.segsdx1\n      dbInstanceMode: StorageElastic\n      description: ${name}\n      engine: gpdb\n      engineVersion: '6.0'\n      zoneId: ${default.ids[0]}\n      instanceNetworkType: VPC\n      instanceSpec: 2C16G\n      paymentType: PayAsYouGo\n      segStorageType: cloud_essd\n      segNodeNum: 4\n      storageSize: 50\n      vpcId: ${defaultGetNetworks.ids[0]}\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      ipWhitelists:\n        - securityIpList: 127.0.0.1\n  defaultAccount:\n    type: alicloud:gpdb:Account\n    name: default\n    properties:\n      accountName: tf_example\n      dbInstanceId: ${defaultInstance.id}\n      accountPassword: Example1234\n      accountDescription: tf_example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:gpdb:getZones\n      arguments: {}\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGPDB Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/account:Account example \u003cdb_instance_id\u003e:\u003caccount_name\u003e\n```\n\n","properties":{"accountDescription":{"type":"string","description":"The description of the account.\n"},"accountName":{"type":"string","description":"The account name.\n"},"accountPassword":{"type":"string","description":"AccountPassword\n","secret":true},"accountType":{"type":"string","description":"Account type. The value range is as follows:\n\nNormal: Normal account number.\n\nSuper: a high-privilege account.\n"},"databaseName":{"type":"string","description":"Database name, with the following restrictions:\n- Can only contain letters, numbers and underscores.\n- Must start with a letter.\n- Length cannot exceed 63 characters.\n"},"dbInstanceId":{"type":"string","description":"The Adb pg instance ID.\n"},"status":{"type":"string","description":"The status of the resource\n"}},"required":["accountName","accountPassword","accountType","dbInstanceId","status"],"inputProperties":{"accountDescription":{"type":"string","description":"The description of the account.\n"},"accountName":{"type":"string","description":"The account name.\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"AccountPassword\n","secret":true},"accountType":{"type":"string","description":"Account type. The value range is as follows:\n\nNormal: Normal account number.\n\nSuper: a high-privilege account.\n","willReplaceOnChanges":true},"databaseName":{"type":"string","description":"Database name, with the following restrictions:\n- Can only contain letters, numbers and underscores.\n- Must start with a letter.\n- Length cannot exceed 63 characters.\n"},"dbInstanceId":{"type":"string","description":"The Adb pg instance ID.\n","willReplaceOnChanges":true}},"requiredInputs":["accountName","accountPassword","dbInstanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Account resources.\n","properties":{"accountDescription":{"type":"string","description":"The description of the account.\n"},"accountName":{"type":"string","description":"The account name.\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"AccountPassword\n","secret":true},"accountType":{"type":"string","description":"Account type. The value range is as follows:\n\nNormal: Normal account number.\n\nSuper: a high-privilege account.\n","willReplaceOnChanges":true},"databaseName":{"type":"string","description":"Database name, with the following restrictions:\n- Can only contain letters, numbers and underscores.\n- Must start with a letter.\n- Length cannot exceed 63 characters.\n"},"dbInstanceId":{"type":"string","description":"The Adb pg instance ID.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object"}},"alicloud:gpdb/backupPolicy:BackupPolicy":{"description":"Provides a GPDB Backup Policy resource. Describe the instance backup strategy.\n\nFor information about GPDB Backup Policy and how to use it, see [What is Backup Policy](https://www.alibabacloud.com/help/en/analyticdb-for-postgresql/latest/api-gpdb-2016-05-03-modifybackuppolicy).\n\n\u003e **NOTE:** Available since v1.211.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.gpdb.getZones({});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[0],\n}));\nconst vswitch: alicloud.vpc.Switch[] = [];\ndefaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        vswitch.push(new alicloud.vpc.Switch(`vswitch-${range.value}`, {\n            vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n            cidrBlock: defaultGetNetworks.then(defaultGetNetworks =\u003e std.cidrsubnet({\n                input: defaultGetNetworks.vpcs?.[0]?.cidrBlock,\n                newbits: 8,\n                netnum: 8,\n            })).then(invoke =\u003e invoke.result),\n            zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n            vswitchName: name,\n        }));\n    }\n});\nconst vswitchId = pulumi.all([defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids).length, defaultGetSwitches, std.concat({\n    input: [\n        vswitch.map(__item =\u003e __item.id),\n        [\"\"],\n    ],\n})]).apply(([length, defaultGetSwitches, invoke]) =\u003e length \u003e 0 ? defaultGetSwitches.ids?.[0] : invoke.result?.[0]);\nconst defaultInstance = new alicloud.gpdb.Instance(\"default\", {\n    dbInstanceCategory: \"HighAvailability\",\n    dbInstanceClass: \"gpdb.group.segsdx1\",\n    dbInstanceMode: \"StorageElastic\",\n    description: name,\n    engine: \"gpdb\",\n    engineVersion: \"6.0\",\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n    instanceNetworkType: \"VPC\",\n    instanceSpec: \"2C16G\",\n    paymentType: \"PayAsYouGo\",\n    segStorageType: \"cloud_essd\",\n    segNodeNum: 4,\n    storageSize: 50,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    vswitchId: vswitchId,\n    ipWhitelists: [{\n        securityIpList: \"127.0.0.1\",\n    }],\n    tags: {\n        Created: \"TF\",\n        For: \"acceptance test\",\n    },\n});\nconst defaultBackupPolicy = new alicloud.gpdb.BackupPolicy(\"default\", {\n    dbInstanceId: defaultInstance.id,\n    recoveryPointPeriod: \"1\",\n    enableRecoveryPoint: true,\n    preferredBackupPeriod: \"Wednesday\",\n    preferredBackupTime: \"15:00Z-16:00Z\",\n    backupRetentionPeriod: 7,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.gpdb.get_zones()\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[0])\nvswitch = []\ndef create_vswitch(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        vswitch.append(alicloud.vpc.Switch(f\"vswitch-{range['value']}\",\n            vpc_id=default_get_networks.ids[0],\n            cidr_block=std.cidrsubnet(input=default_get_networks.vpcs[0].cidr_block,\n                newbits=8,\n                netnum=8).result,\n            zone_id=default.ids[0],\n            vswitch_name=name))\n\nlen(default_get_switches.ids).apply(lambda resolved_outputs: create_vswitch(0 if resolved_outputs['length'] \u003e 0 else 1))\nvswitch_id = len(default_get_switches.ids).apply(lambda length: default_get_switches.ids[0] if length \u003e 0 else std.concat(input=[\n    [__item.id for __item in vswitch],\n    [\"\"],\n]).result[0])\ndefault_instance = alicloud.gpdb.Instance(\"default\",\n    db_instance_category=\"HighAvailability\",\n    db_instance_class=\"gpdb.group.segsdx1\",\n    db_instance_mode=\"StorageElastic\",\n    description=name,\n    engine=\"gpdb\",\n    engine_version=\"6.0\",\n    zone_id=default.ids[0],\n    instance_network_type=\"VPC\",\n    instance_spec=\"2C16G\",\n    payment_type=\"PayAsYouGo\",\n    seg_storage_type=\"cloud_essd\",\n    seg_node_num=4,\n    storage_size=50,\n    vpc_id=default_get_networks.ids[0],\n    vswitch_id=vswitch_id,\n    ip_whitelists=[{\n        \"security_ip_list\": \"127.0.0.1\",\n    }],\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"acceptance test\",\n    })\ndefault_backup_policy = alicloud.gpdb.BackupPolicy(\"default\",\n    db_instance_id=default_instance.id,\n    recovery_point_period=\"1\",\n    enable_recovery_point=True,\n    preferred_backup_period=\"Wednesday\",\n    preferred_backup_time=\"15:00Z-16:00Z\",\n    backup_retention_period=7)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Gpdb.GetZones.Invoke();\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n    });\n\n    var vswitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        vswitch.Add(new AliCloud.Vpc.Switch($\"vswitch-{range.Value}\", new()\n        {\n            VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n            CidrBlock = Std.Cidrsubnet.Invoke(new()\n            {\n                Input = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Vpcs[0]?.CidrBlock),\n                Newbits = 8,\n                Netnum = 8,\n            }).Apply(invoke =\u003e invoke.Result),\n            ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n            VswitchName = name,\n        }));\n    }\n    var vswitchId = Output.Tuple(defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids).Length, defaultGetSwitches, Std.Concat.Invoke(new()\n    {\n        Input = new[]\n        {\n            vswitch.Select(__item =\u003e __item.Id).ToList(),\n            new[]\n            {\n                \"\",\n            },\n        },\n    })).Apply(values =\u003e\n    {\n        var length = values.Item1;\n        var defaultGetSwitches = values.Item2;\n        var invoke = values.Item3;\n        return length \u003e 0 ? defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]) : invoke.Result[0];\n    });\n\n    var defaultInstance = new AliCloud.Gpdb.Instance(\"default\", new()\n    {\n        DbInstanceCategory = \"HighAvailability\",\n        DbInstanceClass = \"gpdb.group.segsdx1\",\n        DbInstanceMode = \"StorageElastic\",\n        Description = name,\n        Engine = \"gpdb\",\n        EngineVersion = \"6.0\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n        InstanceNetworkType = \"VPC\",\n        InstanceSpec = \"2C16G\",\n        PaymentType = \"PayAsYouGo\",\n        SegStorageType = \"cloud_essd\",\n        SegNodeNum = 4,\n        StorageSize = 50,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        VswitchId = vswitchId,\n        IpWhitelists = new[]\n        {\n            new AliCloud.Gpdb.Inputs.InstanceIpWhitelistArgs\n            {\n                SecurityIpList = \"127.0.0.1\",\n            },\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"acceptance test\" },\n        },\n    });\n\n    var defaultBackupPolicy = new AliCloud.Gpdb.BackupPolicy(\"default\", new()\n    {\n        DbInstanceId = defaultInstance.Id,\n        RecoveryPointPeriod = \"1\",\n        EnableRecoveryPoint = true,\n        PreferredBackupPeriod = \"Wednesday\",\n        PreferredBackupTime = \"15:00Z-16:00Z\",\n        BackupRetentionPeriod = 7,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := gpdb.GetZones(ctx, \u0026gpdb.GetZonesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\nNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\nVpcId: pulumi.StringRef(defaultGetNetworks.Ids[0]),\nZoneId: pulumi.StringRef(_default.Ids[0]),\n}, nil);\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: defaultGetNetworks.Vpcs[0].CidrBlock,\nNewbits: 8,\nNetnum: 8,\n}, nil)\nif err != nil {\nreturn err\n}\nvar tmp0 float64\nif length \u003e 0 {\ntmp0 = 0\n} else {\ntmp0 = 1\n}\nvar vswitch []*vpc.Switch\nfor index := 0; index \u003c float64(len(defaultGetSwitches.Ids).ApplyT(func(length int) (float64, error) {\nreturn tmp0, nil\n}).(pulumi.Float64Output)); index++ {\n    key0 := index\n    _ := index\n__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"vswitch-%v\", key0), \u0026vpc.SwitchArgs{\nVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\nCidrBlock: pulumi.String(invokeCidrsubnet.Result),\nZoneId: pulumi.String(_default.Ids[0]),\nVswitchName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\nvswitch = append(vswitch, __res)\n}\nvar tmp1 *interface{}\nif length \u003e 0 {\ntmp1 = defaultGetSwitches.Ids[0]\n} else {\ntmp1 = std.Concat(ctx, \u0026std.ConcatArgs{\nInput: pulumi.StringArrayArray{\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:26,12-25),\n[]string{\n\"\",\n},\n},\n}, nil).Result[0]\n}\nvswitchId := len(defaultGetSwitches.Ids).ApplyT(func(length int) (*interface{}, error) {\nreturn \u0026tmp1, nil\n}).(pulumi.Interface{}PtrOutput)\ndefaultInstance, err := gpdb.NewInstance(ctx, \"default\", \u0026gpdb.InstanceArgs{\nDbInstanceCategory: pulumi.String(\"HighAvailability\"),\nDbInstanceClass: pulumi.String(\"gpdb.group.segsdx1\"),\nDbInstanceMode: pulumi.String(\"StorageElastic\"),\nDescription: pulumi.String(name),\nEngine: pulumi.String(\"gpdb\"),\nEngineVersion: pulumi.String(\"6.0\"),\nZoneId: pulumi.String(_default.Ids[0]),\nInstanceNetworkType: pulumi.String(\"VPC\"),\nInstanceSpec: pulumi.String(\"2C16G\"),\nPaymentType: pulumi.String(\"PayAsYouGo\"),\nSegStorageType: pulumi.String(\"cloud_essd\"),\nSegNodeNum: pulumi.Int(4),\nStorageSize: pulumi.Int(50),\nVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\nVswitchId: pulumi.Any(vswitchId),\nIpWhitelists: gpdb.InstanceIpWhitelistArray{\n\u0026gpdb.InstanceIpWhitelistArgs{\nSecurityIpList: pulumi.String(\"127.0.0.1\"),\n},\n},\nTags: pulumi.StringMap{\n\"Created\": pulumi.String(\"TF\"),\n\"For\": pulumi.String(\"acceptance test\"),\n},\n})\nif err != nil {\nreturn err\n}\n_, err = gpdb.NewBackupPolicy(ctx, \"default\", \u0026gpdb.BackupPolicyArgs{\nDbInstanceId: defaultInstance.ID(),\nRecoveryPointPeriod: pulumi.String(\"1\"),\nEnableRecoveryPoint: pulumi.Bool(true),\nPreferredBackupPeriod: pulumi.String(\"Wednesday\"),\nPreferredBackupTime: pulumi.String(\"15:00Z-16:00Z\"),\nBackupRetentionPeriod: pulumi.Int(7),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.gpdb.GpdbFunctions;\nimport com.pulumi.alicloud.gpdb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.std.inputs.ConcatArgs;\nimport com.pulumi.alicloud.gpdb.Instance;\nimport com.pulumi.alicloud.gpdb.InstanceArgs;\nimport com.pulumi.alicloud.gpdb.inputs.InstanceIpWhitelistArgs;\nimport com.pulumi.alicloud.gpdb.BackupPolicy;\nimport com.pulumi.alicloud.gpdb.BackupPolicyArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = GpdbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[0])\n            .build());\n\n        for (var i = 0; i \u003c defaultGetSwitches.ids().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new Switch(\"vswitch-\" + i, SwitchArgs.builder()\n                .vpcId(defaultGetNetworks.ids()[0])\n                .cidrBlock(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                    .input(defaultGetNetworks.vpcs()[0].cidrBlock())\n                    .newbits(8)\n                    .netnum(8)\n                    .build()).result())\n                .zoneId(default_.ids()[0])\n                .vswitchName(name)\n                .build());\n\n        \n}\n        final var vswitchId = defaultGetSwitches.ids().length().applyValue(_length -\u003e _length \u003e 0 ? defaultGetSwitches.ids()[0] : StdFunctions.concat(ConcatArgs.builder()\n            .input(            \n                vswitch.stream().map(element -\u003e element.id()).collect(toList()),\n                \"\")\n            .build()).result()[0]);\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .dbInstanceCategory(\"HighAvailability\")\n            .dbInstanceClass(\"gpdb.group.segsdx1\")\n            .dbInstanceMode(\"StorageElastic\")\n            .description(name)\n            .engine(\"gpdb\")\n            .engineVersion(\"6.0\")\n            .zoneId(default_.ids()[0])\n            .instanceNetworkType(\"VPC\")\n            .instanceSpec(\"2C16G\")\n            .paymentType(\"PayAsYouGo\")\n            .segStorageType(\"cloud_essd\")\n            .segNodeNum(4)\n            .storageSize(50)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .vswitchId(vswitchId)\n            .ipWhitelists(InstanceIpWhitelistArgs.builder()\n                .securityIpList(\"127.0.0.1\")\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"acceptance test\")\n            ))\n            .build());\n\n        var defaultBackupPolicy = new BackupPolicy(\"defaultBackupPolicy\", BackupPolicyArgs.builder()\n            .dbInstanceId(defaultInstance.id())\n            .recoveryPointPeriod(\"1\")\n            .enableRecoveryPoint(true)\n            .preferredBackupPeriod(\"Wednesday\")\n            .preferredBackupTime(\"15:00Z-16:00Z\")\n            .backupRetentionPeriod(7)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.gpdb.BackupPolicy`\" pulumi-lang-dotnet=\"`alicloud.gpdb.BackupPolicy`\" pulumi-lang-go=\"`gpdb.BackupPolicy`\" pulumi-lang-python=\"`gpdb.BackupPolicy`\" pulumi-lang-yaml=\"`alicloud.gpdb.BackupPolicy`\" pulumi-lang-java=\"`alicloud.gpdb.BackupPolicy`\"\u003e`alicloud.gpdb.BackupPolicy`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.gpdb.BackupPolicy`\" pulumi-lang-dotnet=\"`alicloud.gpdb.BackupPolicy`\" pulumi-lang-go=\"`gpdb.BackupPolicy`\" pulumi-lang-python=\"`gpdb.BackupPolicy`\" pulumi-lang-yaml=\"`alicloud.gpdb.BackupPolicy`\" pulumi-lang-java=\"`alicloud.gpdb.BackupPolicy`\"\u003e`alicloud.gpdb.BackupPolicy`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGPDB Backup Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/backupPolicy:BackupPolicy example \u003cid\u003e\n```\n\n","properties":{"backupRetentionPeriod":{"type":"integer","description":"Data backup retention days.\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n\u003e **NOTE:**  You can call the DescribeDBInstances operation to view the details of all AnalyticDB PostgreSQL instances in the target region, including the instance ID.\n"},"enableRecoveryPoint":{"type":"boolean","description":"Whether to enable automatic recovery points. Value Description:\n- **true**: enabled.\n- **false**: Closed.\n"},"preferredBackupPeriod":{"type":"string","description":"Data backup cycle. Separate multiple values with commas (,). Value Description:\n- **Monday**: Monday.\n- **Tuesday**: Tuesday.\n- **Wednesday**: Wednesday.\n- **Thursday**: Thursday.\n- **Friday**: Friday.\n- **Saturday**: Saturday.\n- **Sunday**: Sunday.\n"},"preferredBackupTime":{"type":"string","description":"Data backup time. Format: HH:mmZ-HH:mmZ(UTC time).\n"},"recoveryPointPeriod":{"type":"string","description":"Recovery point frequency. Value Description:\n- **1**: Hourly.\n- **2**: Every two hours.\n- **4**: Every four hours.\n- **8**: Every eight hours.\n"}},"required":["backupRetentionPeriod","dbInstanceId","enableRecoveryPoint","preferredBackupPeriod","preferredBackupTime","recoveryPointPeriod"],"inputProperties":{"backupRetentionPeriod":{"type":"integer","description":"Data backup retention days.\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n\u003e **NOTE:**  You can call the DescribeDBInstances operation to view the details of all AnalyticDB PostgreSQL instances in the target region, including the instance ID.\n","willReplaceOnChanges":true},"enableRecoveryPoint":{"type":"boolean","description":"Whether to enable automatic recovery points. Value Description:\n- **true**: enabled.\n- **false**: Closed.\n"},"preferredBackupPeriod":{"type":"string","description":"Data backup cycle. Separate multiple values with commas (,). Value Description:\n- **Monday**: Monday.\n- **Tuesday**: Tuesday.\n- **Wednesday**: Wednesday.\n- **Thursday**: Thursday.\n- **Friday**: Friday.\n- **Saturday**: Saturday.\n- **Sunday**: Sunday.\n"},"preferredBackupTime":{"type":"string","description":"Data backup time. Format: HH:mmZ-HH:mmZ(UTC time).\n"},"recoveryPointPeriod":{"type":"string","description":"Recovery point frequency. Value Description:\n- **1**: Hourly.\n- **2**: Every two hours.\n- **4**: Every four hours.\n- **8**: Every eight hours.\n"}},"requiredInputs":["dbInstanceId","preferredBackupPeriod","preferredBackupTime"],"stateInputs":{"description":"Input properties used for looking up and filtering BackupPolicy resources.\n","properties":{"backupRetentionPeriod":{"type":"integer","description":"Data backup retention days.\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n\u003e **NOTE:**  You can call the DescribeDBInstances operation to view the details of all AnalyticDB PostgreSQL instances in the target region, including the instance ID.\n","willReplaceOnChanges":true},"enableRecoveryPoint":{"type":"boolean","description":"Whether to enable automatic recovery points. Value Description:\n- **true**: enabled.\n- **false**: Closed.\n"},"preferredBackupPeriod":{"type":"string","description":"Data backup cycle. Separate multiple values with commas (,). Value Description:\n- **Monday**: Monday.\n- **Tuesday**: Tuesday.\n- **Wednesday**: Wednesday.\n- **Thursday**: Thursday.\n- **Friday**: Friday.\n- **Saturday**: Saturday.\n- **Sunday**: Sunday.\n"},"preferredBackupTime":{"type":"string","description":"Data backup time. Format: HH:mmZ-HH:mmZ(UTC time).\n"},"recoveryPointPeriod":{"type":"string","description":"Recovery point frequency. Value Description:\n- **1**: Hourly.\n- **2**: Every two hours.\n- **4**: Every four hours.\n- **8**: Every eight hours.\n"}},"type":"object"}},"alicloud:gpdb/connection:Connection":{"description":"Provides a connection resource to allocate an Internet connection string for instance.\n\n\u003e **NOTE:** Available since v1.48.0.\n\n\u003e **NOTE:** Each instance will allocate a intranet connection string automatically and its prefix is instance ID.\n To avoid unnecessary conflict, please specified a internet connection prefix before applying the resource.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultGetZones = alicloud.gpdb.getZones({});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, defaultGetZones]).then(([defaultGetNetworks, defaultGetZones]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: defaultGetZones.ids?.[0],\n}));\nconst defaultInstance = new alicloud.gpdb.Instance(\"default\", {\n    dbInstanceCategory: \"HighAvailability\",\n    dbInstanceClass: \"gpdb.group.segsdx1\",\n    dbInstanceMode: \"StorageElastic\",\n    description: name,\n    engine: \"gpdb\",\n    engineVersion: \"6.0\",\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.ids?.[0]),\n    instanceNetworkType: \"VPC\",\n    instanceSpec: \"2C16G\",\n    paymentType: \"PayAsYouGo\",\n    segStorageType: \"cloud_essd\",\n    segNodeNum: 4,\n    storageSize: 50,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    ipWhitelists: [{\n        securityIpList: \"127.0.0.1\",\n    }],\n});\nconst defaultConnection = new alicloud.gpdb.Connection(\"default\", {\n    instanceId: defaultInstance.id,\n    connectionPrefix: \"exampelcon\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_get_zones = alicloud.gpdb.get_zones()\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default_get_zones.ids[0])\ndefault_instance = alicloud.gpdb.Instance(\"default\",\n    db_instance_category=\"HighAvailability\",\n    db_instance_class=\"gpdb.group.segsdx1\",\n    db_instance_mode=\"StorageElastic\",\n    description=name,\n    engine=\"gpdb\",\n    engine_version=\"6.0\",\n    zone_id=default_get_zones.ids[0],\n    instance_network_type=\"VPC\",\n    instance_spec=\"2C16G\",\n    payment_type=\"PayAsYouGo\",\n    seg_storage_type=\"cloud_essd\",\n    seg_node_num=4,\n    storage_size=50,\n    vpc_id=default_get_networks.ids[0],\n    vswitch_id=default_get_switches.ids[0],\n    ip_whitelists=[{\n        \"security_ip_list\": \"127.0.0.1\",\n    }])\ndefault_connection = alicloud.gpdb.Connection(\"default\",\n    instance_id=default_instance.id,\n    connection_prefix=\"exampelcon\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultGetZones = AliCloud.Gpdb.GetZones.Invoke();\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.Gpdb.Instance(\"default\", new()\n    {\n        DbInstanceCategory = \"HighAvailability\",\n        DbInstanceClass = \"gpdb.group.segsdx1\",\n        DbInstanceMode = \"StorageElastic\",\n        Description = name,\n        Engine = \"gpdb\",\n        EngineVersion = \"6.0\",\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n        InstanceNetworkType = \"VPC\",\n        InstanceSpec = \"2C16G\",\n        PaymentType = \"PayAsYouGo\",\n        SegStorageType = \"cloud_essd\",\n        SegNodeNum = 4,\n        StorageSize = 50,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        IpWhitelists = new[]\n        {\n            new AliCloud.Gpdb.Inputs.InstanceIpWhitelistArgs\n            {\n                SecurityIpList = \"127.0.0.1\",\n            },\n        },\n    });\n\n    var defaultConnection = new AliCloud.Gpdb.Connection(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        ConnectionPrefix = \"exampelcon\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := gpdb.GetZones(ctx, \u0026gpdb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(defaultGetZones.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := gpdb.NewInstance(ctx, \"default\", \u0026gpdb.InstanceArgs{\n\t\t\tDbInstanceCategory:  pulumi.String(\"HighAvailability\"),\n\t\t\tDbInstanceClass:     pulumi.String(\"gpdb.group.segsdx1\"),\n\t\t\tDbInstanceMode:      pulumi.String(\"StorageElastic\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tEngine:              pulumi.String(\"gpdb\"),\n\t\t\tEngineVersion:       pulumi.String(\"6.0\"),\n\t\t\tZoneId:              pulumi.String(defaultGetZones.Ids[0]),\n\t\t\tInstanceNetworkType: pulumi.String(\"VPC\"),\n\t\t\tInstanceSpec:        pulumi.String(\"2C16G\"),\n\t\t\tPaymentType:         pulumi.String(\"PayAsYouGo\"),\n\t\t\tSegStorageType:      pulumi.String(\"cloud_essd\"),\n\t\t\tSegNodeNum:          pulumi.Int(4),\n\t\t\tStorageSize:         pulumi.Int(50),\n\t\t\tVpcId:               pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tVswitchId:           pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tIpWhitelists: gpdb.InstanceIpWhitelistArray{\n\t\t\t\t\u0026gpdb.InstanceIpWhitelistArgs{\n\t\t\t\t\tSecurityIpList: pulumi.String(\"127.0.0.1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gpdb.NewConnection(ctx, \"default\", \u0026gpdb.ConnectionArgs{\n\t\t\tInstanceId:       defaultInstance.ID(),\n\t\t\tConnectionPrefix: pulumi.String(\"exampelcon\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.gpdb.GpdbFunctions;\nimport com.pulumi.alicloud.gpdb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.gpdb.Instance;\nimport com.pulumi.alicloud.gpdb.InstanceArgs;\nimport com.pulumi.alicloud.gpdb.inputs.InstanceIpWhitelistArgs;\nimport com.pulumi.alicloud.gpdb.Connection;\nimport com.pulumi.alicloud.gpdb.ConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var defaultGetZones = GpdbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(defaultGetZones.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .dbInstanceCategory(\"HighAvailability\")\n            .dbInstanceClass(\"gpdb.group.segsdx1\")\n            .dbInstanceMode(\"StorageElastic\")\n            .description(name)\n            .engine(\"gpdb\")\n            .engineVersion(\"6.0\")\n            .zoneId(defaultGetZones.ids()[0])\n            .instanceNetworkType(\"VPC\")\n            .instanceSpec(\"2C16G\")\n            .paymentType(\"PayAsYouGo\")\n            .segStorageType(\"cloud_essd\")\n            .segNodeNum(4)\n            .storageSize(50)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .ipWhitelists(InstanceIpWhitelistArgs.builder()\n                .securityIpList(\"127.0.0.1\")\n                .build())\n            .build());\n\n        var defaultConnection = new Connection(\"defaultConnection\", ConnectionArgs.builder()\n            .instanceId(defaultInstance.id())\n            .connectionPrefix(\"exampelcon\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInstance:\n    type: alicloud:gpdb:Instance\n    name: default\n    properties:\n      dbInstanceCategory: HighAvailability\n      dbInstanceClass: gpdb.group.segsdx1\n      dbInstanceMode: StorageElastic\n      description: ${name}\n      engine: gpdb\n      engineVersion: '6.0'\n      zoneId: ${defaultGetZones.ids[0]}\n      instanceNetworkType: VPC\n      instanceSpec: 2C16G\n      paymentType: PayAsYouGo\n      segStorageType: cloud_essd\n      segNodeNum: 4\n      storageSize: 50\n      vpcId: ${defaultGetNetworks.ids[0]}\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      ipWhitelists:\n        - securityIpList: 127.0.0.1\n  defaultConnection:\n    type: alicloud:gpdb:Connection\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      connectionPrefix: exampelcon\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:gpdb:getZones\n      arguments: {}\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${defaultGetZones.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAnalyticDB for PostgreSQL's connection can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/connection:Connection example abc12345678\n```\n\n","properties":{"connectionPrefix":{"type":"string","description":"Prefix of an Internet connection string. It must be checked for uniqueness. It may consist of lowercase letters, numbers, and underlines, and must start with a letter and have no more than 30 characters. Default to \u003cinstance_id\u003e + '-tf'.\n"},"connectionString":{"type":"string","description":"Connection instance string.\n"},"instanceId":{"type":"string","description":"The Id of instance that can run database.\n"},"ipAddress":{"type":"string","description":"The ip address of connection string.\n"},"port":{"type":"string","description":"Internet connection port. Valid value: [3200-3999]. Default to 3306.\n"}},"required":["connectionPrefix","connectionString","instanceId","ipAddress"],"inputProperties":{"connectionPrefix":{"type":"string","description":"Prefix of an Internet connection string. It must be checked for uniqueness. It may consist of lowercase letters, numbers, and underlines, and must start with a letter and have no more than 30 characters. Default to \u003cinstance_id\u003e + '-tf'.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The Id of instance that can run database.\n","willReplaceOnChanges":true},"port":{"type":"string","description":"Internet connection port. Valid value: [3200-3999]. Default to 3306.\n"}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Connection resources.\n","properties":{"connectionPrefix":{"type":"string","description":"Prefix of an Internet connection string. It must be checked for uniqueness. It may consist of lowercase letters, numbers, and underlines, and must start with a letter and have no more than 30 characters. Default to \u003cinstance_id\u003e + '-tf'.\n","willReplaceOnChanges":true},"connectionString":{"type":"string","description":"Connection instance string.\n"},"instanceId":{"type":"string","description":"The Id of instance that can run database.\n","willReplaceOnChanges":true},"ipAddress":{"type":"string","description":"The ip address of connection string.\n"},"port":{"type":"string","description":"Internet connection port. Valid value: [3200-3999]. Default to 3306.\n"}},"type":"object"}},"alicloud:gpdb/database:Database":{"description":"Provides a GPDB Database resource.\n\n\n\nFor information about GPDB Database and how to use it, see [What is Database](https://www.alibabacloud.com/help/en/).\n\n\u003e **NOTE:** Available since v1.232.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst default35OkxY = new alicloud.vpc.Network(\"default35OkxY\", {cidrBlock: \"192.168.0.0/16\"});\nconst defaultl8haQ3 = new alicloud.vpc.Switch(\"defaultl8haQ3\", {\n    vpcId: default35OkxY.id,\n    zoneId: \"cn-beijing-h\",\n    cidrBlock: \"192.168.1.0/24\",\n});\nconst defaultTC08a9 = new alicloud.gpdb.Instance(\"defaultTC08a9\", {\n    instanceSpec: \"2C8G\",\n    segNodeNum: 2,\n    segStorageType: \"cloud_essd\",\n    instanceNetworkType: \"VPC\",\n    dbInstanceCategory: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    sslEnabled: 0,\n    engineVersion: \"6.0\",\n    engine: \"gpdb\",\n    zoneId: \"cn-beijing-h\",\n    vswitchId: defaultl8haQ3.id,\n    storageSize: 50,\n    masterCu: 4,\n    vpcId: default35OkxY.id,\n    dbInstanceMode: \"StorageElastic\",\n});\nconst _default = new alicloud.gpdb.Database(\"default\", {\n    characterSetName: \"UTF8\",\n    owner: \"adbpgadmin\",\n    description: \"go-to-the-docks-for-french-fries\",\n    databaseName: \"seagull\",\n    collate: \"en_US.utf8\",\n    ctype: \"en_US.utf8\",\n    dbInstanceId: defaultTC08a9.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault35_okx_y = alicloud.vpc.Network(\"default35OkxY\", cidr_block=\"192.168.0.0/16\")\ndefaultl8ha_q3 = alicloud.vpc.Switch(\"defaultl8haQ3\",\n    vpc_id=default35_okx_y.id,\n    zone_id=\"cn-beijing-h\",\n    cidr_block=\"192.168.1.0/24\")\ndefault_tc08a9 = alicloud.gpdb.Instance(\"defaultTC08a9\",\n    instance_spec=\"2C8G\",\n    seg_node_num=2,\n    seg_storage_type=\"cloud_essd\",\n    instance_network_type=\"VPC\",\n    db_instance_category=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    ssl_enabled=0,\n    engine_version=\"6.0\",\n    engine=\"gpdb\",\n    zone_id=\"cn-beijing-h\",\n    vswitch_id=defaultl8ha_q3.id,\n    storage_size=50,\n    master_cu=4,\n    vpc_id=default35_okx_y.id,\n    db_instance_mode=\"StorageElastic\")\ndefault = alicloud.gpdb.Database(\"default\",\n    character_set_name=\"UTF8\",\n    owner=\"adbpgadmin\",\n    description=\"go-to-the-docks-for-french-fries\",\n    database_name=\"seagull\",\n    collate=\"en_US.utf8\",\n    ctype=\"en_US.utf8\",\n    db_instance_id=default_tc08a9.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var default35OkxY = new AliCloud.Vpc.Network(\"default35OkxY\", new()\n    {\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultl8haQ3 = new AliCloud.Vpc.Switch(\"defaultl8haQ3\", new()\n    {\n        VpcId = default35OkxY.Id,\n        ZoneId = \"cn-beijing-h\",\n        CidrBlock = \"192.168.1.0/24\",\n    });\n\n    var defaultTC08a9 = new AliCloud.Gpdb.Instance(\"defaultTC08a9\", new()\n    {\n        InstanceSpec = \"2C8G\",\n        SegNodeNum = 2,\n        SegStorageType = \"cloud_essd\",\n        InstanceNetworkType = \"VPC\",\n        DbInstanceCategory = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        SslEnabled = 0,\n        EngineVersion = \"6.0\",\n        Engine = \"gpdb\",\n        ZoneId = \"cn-beijing-h\",\n        VswitchId = defaultl8haQ3.Id,\n        StorageSize = 50,\n        MasterCu = 4,\n        VpcId = default35OkxY.Id,\n        DbInstanceMode = \"StorageElastic\",\n    });\n\n    var @default = new AliCloud.Gpdb.Database(\"default\", new()\n    {\n        CharacterSetName = \"UTF8\",\n        Owner = \"adbpgadmin\",\n        Description = \"go-to-the-docks-for-french-fries\",\n        DatabaseName = \"seagull\",\n        Collate = \"en_US.utf8\",\n        Ctype = \"en_US.utf8\",\n        DbInstanceId = defaultTC08a9.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefault35OkxY, err := vpc.NewNetwork(ctx, \"default35OkxY\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultl8haQ3, err := vpc.NewSwitch(ctx, \"defaultl8haQ3\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     default35OkxY.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-beijing-h\"),\n\t\t\tCidrBlock: pulumi.String(\"192.168.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTC08a9, err := gpdb.NewInstance(ctx, \"defaultTC08a9\", \u0026gpdb.InstanceArgs{\n\t\t\tInstanceSpec:        pulumi.String(\"2C8G\"),\n\t\t\tSegNodeNum:          pulumi.Int(2),\n\t\t\tSegStorageType:      pulumi.String(\"cloud_essd\"),\n\t\t\tInstanceNetworkType: pulumi.String(\"VPC\"),\n\t\t\tDbInstanceCategory:  pulumi.String(\"Basic\"),\n\t\t\tPaymentType:         pulumi.String(\"PayAsYouGo\"),\n\t\t\tSslEnabled:          pulumi.Int(0),\n\t\t\tEngineVersion:       pulumi.String(\"6.0\"),\n\t\t\tEngine:              pulumi.String(\"gpdb\"),\n\t\t\tZoneId:              pulumi.String(\"cn-beijing-h\"),\n\t\t\tVswitchId:           defaultl8haQ3.ID(),\n\t\t\tStorageSize:         pulumi.Int(50),\n\t\t\tMasterCu:            pulumi.Int(4),\n\t\t\tVpcId:               default35OkxY.ID(),\n\t\t\tDbInstanceMode:      pulumi.String(\"StorageElastic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gpdb.NewDatabase(ctx, \"default\", \u0026gpdb.DatabaseArgs{\n\t\t\tCharacterSetName: pulumi.String(\"UTF8\"),\n\t\t\tOwner:            pulumi.String(\"adbpgadmin\"),\n\t\t\tDescription:      pulumi.String(\"go-to-the-docks-for-french-fries\"),\n\t\t\tDatabaseName:     pulumi.String(\"seagull\"),\n\t\t\tCollate:          pulumi.String(\"en_US.utf8\"),\n\t\t\tCtype:            pulumi.String(\"en_US.utf8\"),\n\t\t\tDbInstanceId:     defaultTC08a9.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.gpdb.Instance;\nimport com.pulumi.alicloud.gpdb.InstanceArgs;\nimport com.pulumi.alicloud.gpdb.Database;\nimport com.pulumi.alicloud.gpdb.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default35OkxY = new Network(\"default35OkxY\", NetworkArgs.builder()\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultl8haQ3 = new Switch(\"defaultl8haQ3\", SwitchArgs.builder()\n            .vpcId(default35OkxY.id())\n            .zoneId(\"cn-beijing-h\")\n            .cidrBlock(\"192.168.1.0/24\")\n            .build());\n\n        var defaultTC08a9 = new Instance(\"defaultTC08a9\", InstanceArgs.builder()\n            .instanceSpec(\"2C8G\")\n            .segNodeNum(2)\n            .segStorageType(\"cloud_essd\")\n            .instanceNetworkType(\"VPC\")\n            .dbInstanceCategory(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .sslEnabled(0)\n            .engineVersion(\"6.0\")\n            .engine(\"gpdb\")\n            .zoneId(\"cn-beijing-h\")\n            .vswitchId(defaultl8haQ3.id())\n            .storageSize(50)\n            .masterCu(4)\n            .vpcId(default35OkxY.id())\n            .dbInstanceMode(\"StorageElastic\")\n            .build());\n\n        var default_ = new Database(\"default\", DatabaseArgs.builder()\n            .characterSetName(\"UTF8\")\n            .owner(\"adbpgadmin\")\n            .description(\"go-to-the-docks-for-french-fries\")\n            .databaseName(\"seagull\")\n            .collate(\"en_US.utf8\")\n            .ctype(\"en_US.utf8\")\n            .dbInstanceId(defaultTC08a9.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default35OkxY:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 192.168.0.0/16\n  defaultl8haQ3:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${default35OkxY.id}\n      zoneId: cn-beijing-h\n      cidrBlock: 192.168.1.0/24\n  defaultTC08a9:\n    type: alicloud:gpdb:Instance\n    properties:\n      instanceSpec: 2C8G\n      segNodeNum: '2'\n      segStorageType: cloud_essd\n      instanceNetworkType: VPC\n      dbInstanceCategory: Basic\n      paymentType: PayAsYouGo\n      sslEnabled: '0'\n      engineVersion: '6.0'\n      engine: gpdb\n      zoneId: cn-beijing-h\n      vswitchId: ${defaultl8haQ3.id}\n      storageSize: '50'\n      masterCu: '4'\n      vpcId: ${default35OkxY.id}\n      dbInstanceMode: StorageElastic\n  default:\n    type: alicloud:gpdb:Database\n    properties:\n      characterSetName: UTF8\n      owner: adbpgadmin\n      description: go-to-the-docks-for-french-fries\n      databaseName: seagull\n      collate: en_US.utf8\n      ctype: en_US.utf8\n      dbInstanceId: ${defaultTC08a9.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGPDB Database can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/database:Database example \u003cdb_instance_id\u003e:\u003cdatabase_name\u003e\n```\n\n","properties":{"characterSetName":{"type":"string","description":"Character set, default value is UTF8\n"},"collate":{"type":"string","description":"Database locale parameters, specifying string comparison/collation\n"},"ctype":{"type":"string","description":"Database locale parameters, specifying character classification/case conversion rules\n"},"databaseName":{"type":"string","description":"Database Name\n"},"dbInstanceId":{"type":"string","description":"Instance ID\n"},"description":{"type":"string","description":"Database Description\n"},"owner":{"type":"string","description":"Data Sheet owner\n"}},"required":["databaseName","dbInstanceId","owner"],"inputProperties":{"characterSetName":{"type":"string","description":"Character set, default value is UTF8\n","willReplaceOnChanges":true},"collate":{"type":"string","description":"Database locale parameters, specifying string comparison/collation\n","willReplaceOnChanges":true},"ctype":{"type":"string","description":"Database locale parameters, specifying character classification/case conversion rules\n","willReplaceOnChanges":true},"databaseName":{"type":"string","description":"Database Name\n","willReplaceOnChanges":true},"dbInstanceId":{"type":"string","description":"Instance ID\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Database Description\n","willReplaceOnChanges":true},"owner":{"type":"string","description":"Data Sheet owner\n","willReplaceOnChanges":true}},"requiredInputs":["databaseName","dbInstanceId","owner"],"stateInputs":{"description":"Input properties used for looking up and filtering Database resources.\n","properties":{"characterSetName":{"type":"string","description":"Character set, default value is UTF8\n","willReplaceOnChanges":true},"collate":{"type":"string","description":"Database locale parameters, specifying string comparison/collation\n","willReplaceOnChanges":true},"ctype":{"type":"string","description":"Database locale parameters, specifying character classification/case conversion rules\n","willReplaceOnChanges":true},"databaseName":{"type":"string","description":"Database Name\n","willReplaceOnChanges":true},"dbInstanceId":{"type":"string","description":"Instance ID\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Database Description\n","willReplaceOnChanges":true},"owner":{"type":"string","description":"Data Sheet owner\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:gpdb/dbInstanceIpArray:DbInstanceIpArray":{"description":"Provides a GPDB DB Instance IP Array resource.\n\nWhitelist IP Group.\n\nFor information about GPDB DB Instance IP Array and how to use it, see [What is DB Instance IP Array](https://www.alibabacloud.com/help/en/).\n\n\u003e **NOTE:** Available since v1.231.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNpLRa1 = new alicloud.vpc.Network(\"defaultNpLRa1\", {cidrBlock: \"192.168.0.0/16\"});\nconst defaultwLA5v4 = new alicloud.vpc.Switch(\"defaultwLA5v4\", {\n    vpcId: defaultNpLRa1.id,\n    zoneId: \"cn-beijing-h\",\n    cidrBlock: \"192.168.1.0/24\",\n});\nconst defaultHKdDs3 = new alicloud.gpdb.Instance(\"defaultHKdDs3\", {\n    instanceSpec: \"2C8G\",\n    segNodeNum: 2,\n    segStorageType: \"cloud_essd\",\n    instanceNetworkType: \"VPC\",\n    dbInstanceCategory: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    sslEnabled: 0,\n    engineVersion: \"6.0\",\n    zoneId: \"cn-beijing-h\",\n    vswitchId: defaultwLA5v4.id,\n    storageSize: 50,\n    masterCu: 4,\n    vpcId: defaultNpLRa1.id,\n    dbInstanceMode: \"StorageElastic\",\n    engine: \"gpdb\",\n    description: name,\n});\nconst defaultDbInstanceIpArray = new alicloud.gpdb.DbInstanceIpArray(\"default\", {\n    dbInstanceIpArrayAttribute: \"taffyFish\",\n    securityIpLists: [\n        \"12.34.56.78\",\n        \"11.45.14.0\",\n        \"19.19.81.0\",\n    ],\n    dbInstanceIpArrayName: \"taffy\",\n    dbInstanceId: defaultHKdDs3.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_np_l_ra1 = alicloud.vpc.Network(\"defaultNpLRa1\", cidr_block=\"192.168.0.0/16\")\ndefaultw_la5v4 = alicloud.vpc.Switch(\"defaultwLA5v4\",\n    vpc_id=default_np_l_ra1.id,\n    zone_id=\"cn-beijing-h\",\n    cidr_block=\"192.168.1.0/24\")\ndefault_h_kd_ds3 = alicloud.gpdb.Instance(\"defaultHKdDs3\",\n    instance_spec=\"2C8G\",\n    seg_node_num=2,\n    seg_storage_type=\"cloud_essd\",\n    instance_network_type=\"VPC\",\n    db_instance_category=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    ssl_enabled=0,\n    engine_version=\"6.0\",\n    zone_id=\"cn-beijing-h\",\n    vswitch_id=defaultw_la5v4.id,\n    storage_size=50,\n    master_cu=4,\n    vpc_id=default_np_l_ra1.id,\n    db_instance_mode=\"StorageElastic\",\n    engine=\"gpdb\",\n    description=name)\ndefault_db_instance_ip_array = alicloud.gpdb.DbInstanceIpArray(\"default\",\n    db_instance_ip_array_attribute=\"taffyFish\",\n    security_ip_lists=[\n        \"12.34.56.78\",\n        \"11.45.14.0\",\n        \"19.19.81.0\",\n    ],\n    db_instance_ip_array_name=\"taffy\",\n    db_instance_id=default_h_kd_ds3.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNpLRa1 = new AliCloud.Vpc.Network(\"defaultNpLRa1\", new()\n    {\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultwLA5v4 = new AliCloud.Vpc.Switch(\"defaultwLA5v4\", new()\n    {\n        VpcId = defaultNpLRa1.Id,\n        ZoneId = \"cn-beijing-h\",\n        CidrBlock = \"192.168.1.0/24\",\n    });\n\n    var defaultHKdDs3 = new AliCloud.Gpdb.Instance(\"defaultHKdDs3\", new()\n    {\n        InstanceSpec = \"2C8G\",\n        SegNodeNum = 2,\n        SegStorageType = \"cloud_essd\",\n        InstanceNetworkType = \"VPC\",\n        DbInstanceCategory = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        SslEnabled = 0,\n        EngineVersion = \"6.0\",\n        ZoneId = \"cn-beijing-h\",\n        VswitchId = defaultwLA5v4.Id,\n        StorageSize = 50,\n        MasterCu = 4,\n        VpcId = defaultNpLRa1.Id,\n        DbInstanceMode = \"StorageElastic\",\n        Engine = \"gpdb\",\n        Description = name,\n    });\n\n    var defaultDbInstanceIpArray = new AliCloud.Gpdb.DbInstanceIpArray(\"default\", new()\n    {\n        DbInstanceIpArrayAttribute = \"taffyFish\",\n        SecurityIpLists = new[]\n        {\n            \"12.34.56.78\",\n            \"11.45.14.0\",\n            \"19.19.81.0\",\n        },\n        DbInstanceIpArrayName = \"taffy\",\n        DbInstanceId = defaultHKdDs3.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNpLRa1, err := vpc.NewNetwork(ctx, \"defaultNpLRa1\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultwLA5v4, err := vpc.NewSwitch(ctx, \"defaultwLA5v4\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultNpLRa1.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-beijing-h\"),\n\t\t\tCidrBlock: pulumi.String(\"192.168.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHKdDs3, err := gpdb.NewInstance(ctx, \"defaultHKdDs3\", \u0026gpdb.InstanceArgs{\n\t\t\tInstanceSpec:        pulumi.String(\"2C8G\"),\n\t\t\tSegNodeNum:          pulumi.Int(2),\n\t\t\tSegStorageType:      pulumi.String(\"cloud_essd\"),\n\t\t\tInstanceNetworkType: pulumi.String(\"VPC\"),\n\t\t\tDbInstanceCategory:  pulumi.String(\"Basic\"),\n\t\t\tPaymentType:         pulumi.String(\"PayAsYouGo\"),\n\t\t\tSslEnabled:          pulumi.Int(0),\n\t\t\tEngineVersion:       pulumi.String(\"6.0\"),\n\t\t\tZoneId:              pulumi.String(\"cn-beijing-h\"),\n\t\t\tVswitchId:           defaultwLA5v4.ID(),\n\t\t\tStorageSize:         pulumi.Int(50),\n\t\t\tMasterCu:            pulumi.Int(4),\n\t\t\tVpcId:               defaultNpLRa1.ID(),\n\t\t\tDbInstanceMode:      pulumi.String(\"StorageElastic\"),\n\t\t\tEngine:              pulumi.String(\"gpdb\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gpdb.NewDbInstanceIpArray(ctx, \"default\", \u0026gpdb.DbInstanceIpArrayArgs{\n\t\t\tDbInstanceIpArrayAttribute: pulumi.String(\"taffyFish\"),\n\t\t\tSecurityIpLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"12.34.56.78\"),\n\t\t\t\tpulumi.String(\"11.45.14.0\"),\n\t\t\t\tpulumi.String(\"19.19.81.0\"),\n\t\t\t},\n\t\t\tDbInstanceIpArrayName: pulumi.String(\"taffy\"),\n\t\t\tDbInstanceId:          defaultHKdDs3.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.gpdb.Instance;\nimport com.pulumi.alicloud.gpdb.InstanceArgs;\nimport com.pulumi.alicloud.gpdb.DbInstanceIpArray;\nimport com.pulumi.alicloud.gpdb.DbInstanceIpArrayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNpLRa1 = new Network(\"defaultNpLRa1\", NetworkArgs.builder()\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultwLA5v4 = new Switch(\"defaultwLA5v4\", SwitchArgs.builder()\n            .vpcId(defaultNpLRa1.id())\n            .zoneId(\"cn-beijing-h\")\n            .cidrBlock(\"192.168.1.0/24\")\n            .build());\n\n        var defaultHKdDs3 = new Instance(\"defaultHKdDs3\", InstanceArgs.builder()\n            .instanceSpec(\"2C8G\")\n            .segNodeNum(2)\n            .segStorageType(\"cloud_essd\")\n            .instanceNetworkType(\"VPC\")\n            .dbInstanceCategory(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .sslEnabled(0)\n            .engineVersion(\"6.0\")\n            .zoneId(\"cn-beijing-h\")\n            .vswitchId(defaultwLA5v4.id())\n            .storageSize(50)\n            .masterCu(4)\n            .vpcId(defaultNpLRa1.id())\n            .dbInstanceMode(\"StorageElastic\")\n            .engine(\"gpdb\")\n            .description(name)\n            .build());\n\n        var defaultDbInstanceIpArray = new DbInstanceIpArray(\"defaultDbInstanceIpArray\", DbInstanceIpArrayArgs.builder()\n            .dbInstanceIpArrayAttribute(\"taffyFish\")\n            .securityIpLists(            \n                \"12.34.56.78\",\n                \"11.45.14.0\",\n                \"19.19.81.0\")\n            .dbInstanceIpArrayName(\"taffy\")\n            .dbInstanceId(defaultHKdDs3.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNpLRa1:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 192.168.0.0/16\n  defaultwLA5v4:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultNpLRa1.id}\n      zoneId: cn-beijing-h\n      cidrBlock: 192.168.1.0/24\n  defaultHKdDs3:\n    type: alicloud:gpdb:Instance\n    properties:\n      instanceSpec: 2C8G\n      segNodeNum: '2'\n      segStorageType: cloud_essd\n      instanceNetworkType: VPC\n      dbInstanceCategory: Basic\n      paymentType: PayAsYouGo\n      sslEnabled: '0'\n      engineVersion: '6.0'\n      zoneId: cn-beijing-h\n      vswitchId: ${defaultwLA5v4.id}\n      storageSize: '50'\n      masterCu: '4'\n      vpcId: ${defaultNpLRa1.id}\n      dbInstanceMode: StorageElastic\n      engine: gpdb\n      description: ${name}\n  defaultDbInstanceIpArray:\n    type: alicloud:gpdb:DbInstanceIpArray\n    name: default\n    properties:\n      dbInstanceIpArrayAttribute: taffyFish\n      securityIpLists:\n        - 12.34.56.78\n        - 11.45.14.0\n        - 19.19.81.0\n      dbInstanceIpArrayName: taffy\n      dbInstanceId: ${defaultHKdDs3.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGPDB DB Instance IP Array can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/dbInstanceIpArray:DbInstanceIpArray example \u003cdb_instance_id\u003e:\u003cdb_instance_ip_array_name\u003e\n```\n\n","properties":{"dbInstanceId":{"type":"string","description":"The instance ID.\n\n\u003e **NOTE:**  You can call the [DescribeDBInstances](https://www.alibabacloud.com/help/en/doc-detail/86911.html) operation to query details about all AnalyticDB for PostgreSQL instances within a region, including instance IDs.\n"},"dbInstanceIpArrayAttribute":{"type":"string","description":"The default is empty. To distinguish between different attribute values, the console does not display groups with the 'hidden' attribute.\n"},"dbInstanceIpArrayName":{"type":"string","description":"The name of the IP address whitelist. If you do not specify this parameter, the default whitelist is queried.\n\n\u003e **NOTE:**   Each instance supports up to 50 IP address whitelists.\n"},"modifyMode":{"type":"string","description":"The method of modification. Valid values:\n\n- `Cover`: overwrites the whitelist.\n- `Append`: appends data to the whitelist.\n- `Delete`: deletes the whitelist.\n"},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"The IP address whitelist contains a maximum of 1000 IP addresses separated by commas in the following three formats:\n- 0.0.0.0/0\n- 10.23.12.24(IP)\n- 10.23.12.24/24(CIDR mode, Classless Inter-Domain Routing, '/24' indicates the length of the prefix in the address, and the range is '[1,32]')\n"}},"required":["dbInstanceId","dbInstanceIpArrayName","securityIpLists"],"inputProperties":{"dbInstanceId":{"type":"string","description":"The instance ID.\n\n\u003e **NOTE:**  You can call the [DescribeDBInstances](https://www.alibabacloud.com/help/en/doc-detail/86911.html) operation to query details about all AnalyticDB for PostgreSQL instances within a region, including instance IDs.\n","willReplaceOnChanges":true},"dbInstanceIpArrayAttribute":{"type":"string","description":"The default is empty. To distinguish between different attribute values, the console does not display groups with the 'hidden' attribute.\n","willReplaceOnChanges":true},"dbInstanceIpArrayName":{"type":"string","description":"The name of the IP address whitelist. If you do not specify this parameter, the default whitelist is queried.\n\n\u003e **NOTE:**   Each instance supports up to 50 IP address whitelists.\n","willReplaceOnChanges":true},"modifyMode":{"type":"string","description":"The method of modification. Valid values:\n\n- `Cover`: overwrites the whitelist.\n- `Append`: appends data to the whitelist.\n- `Delete`: deletes the whitelist.\n"},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"The IP address whitelist contains a maximum of 1000 IP addresses separated by commas in the following three formats:\n- 0.0.0.0/0\n- 10.23.12.24(IP)\n- 10.23.12.24/24(CIDR mode, Classless Inter-Domain Routing, '/24' indicates the length of the prefix in the address, and the range is '[1,32]')\n"}},"requiredInputs":["dbInstanceId","dbInstanceIpArrayName","securityIpLists"],"stateInputs":{"description":"Input properties used for looking up and filtering DbInstanceIpArray resources.\n","properties":{"dbInstanceId":{"type":"string","description":"The instance ID.\n\n\u003e **NOTE:**  You can call the [DescribeDBInstances](https://www.alibabacloud.com/help/en/doc-detail/86911.html) operation to query details about all AnalyticDB for PostgreSQL instances within a region, including instance IDs.\n","willReplaceOnChanges":true},"dbInstanceIpArrayAttribute":{"type":"string","description":"The default is empty. To distinguish between different attribute values, the console does not display groups with the 'hidden' attribute.\n","willReplaceOnChanges":true},"dbInstanceIpArrayName":{"type":"string","description":"The name of the IP address whitelist. If you do not specify this parameter, the default whitelist is queried.\n\n\u003e **NOTE:**   Each instance supports up to 50 IP address whitelists.\n","willReplaceOnChanges":true},"modifyMode":{"type":"string","description":"The method of modification. Valid values:\n\n- `Cover`: overwrites the whitelist.\n- `Append`: appends data to the whitelist.\n- `Delete`: deletes the whitelist.\n"},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"The IP address whitelist contains a maximum of 1000 IP addresses separated by commas in the following three formats:\n- 0.0.0.0/0\n- 10.23.12.24(IP)\n- 10.23.12.24/24(CIDR mode, Classless Inter-Domain Routing, '/24' indicates the length of the prefix in the address, and the range is '[1,32]')\n"}},"type":"object"}},"alicloud:gpdb/dbInstancePlan:DbInstancePlan":{"description":"Provides a AnalyticDB for PostgreSQL (GPDB) DB Instance Plan resource.\n\nFor information about AnalyticDB for PostgreSQL (GPDB) DB Instance Plan and how to use it, see [What is DB Instance Plan](https://www.alibabacloud.com/help/en/analyticdb-for-postgresql/developer-reference/api-gpdb-2016-05-03-createdbinstanceplan).\n\n\u003e **NOTE:** Available since v1.189.0.\n\n## Import\n\nGPDB DB Instance Plan can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/dbInstancePlan:DbInstancePlan example \u003cdb_instance_id\u003e:\u003cplan_id\u003e\n```\n\n","properties":{"dbInstanceId":{"type":"string","description":"The ID of the GPDB instance.\n"},"dbInstancePlanName":{"type":"string","description":"The name of the Plan.\n"},"planConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:gpdb/DbInstancePlanPlanConfig:DbInstancePlanPlanConfig"},"description":"The execution information of the plan. See \u003cspan pulumi-lang-nodejs=\"`planConfig`\" pulumi-lang-dotnet=\"`PlanConfig`\" pulumi-lang-go=\"`planConfig`\" pulumi-lang-python=\"`plan_config`\" pulumi-lang-yaml=\"`planConfig`\" pulumi-lang-java=\"`planConfig`\"\u003e`plan_config`\u003c/span\u003e below.\n"},"planDesc":{"type":"string","description":"The description of the Plan.\n"},"planEndDate":{"type":"string","description":"The end time of the Plan.\n"},"planId":{"type":"string","description":"The ID of the plan.\n"},"planScheduleType":{"type":"string","description":"The execution mode of the plan. Valid values: `Postpone`, `Regular`.\n"},"planStartDate":{"type":"string","description":"The start time of the Plan.\n"},"planType":{"type":"string","description":"The type of the Plan. Valid values: `PauseResume`, `Resize`.\n"},"status":{"type":"string","description":"The Status of the Plan. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cancel`\" pulumi-lang-dotnet=\"`Cancel`\" pulumi-lang-go=\"`cancel`\" pulumi-lang-python=\"`cancel`\" pulumi-lang-yaml=\"`cancel`\" pulumi-lang-java=\"`cancel`\"\u003e`cancel`\u003c/span\u003e.\n"}},"required":["dbInstanceId","dbInstancePlanName","planConfigs","planId","planScheduleType","planStartDate","planType","status"],"inputProperties":{"dbInstanceId":{"type":"string","description":"The ID of the GPDB instance.\n","willReplaceOnChanges":true},"dbInstancePlanName":{"type":"string","description":"The name of the Plan.\n"},"planConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:gpdb/DbInstancePlanPlanConfig:DbInstancePlanPlanConfig"},"description":"The execution information of the plan. See \u003cspan pulumi-lang-nodejs=\"`planConfig`\" pulumi-lang-dotnet=\"`PlanConfig`\" pulumi-lang-go=\"`planConfig`\" pulumi-lang-python=\"`plan_config`\" pulumi-lang-yaml=\"`planConfig`\" pulumi-lang-java=\"`planConfig`\"\u003e`plan_config`\u003c/span\u003e below.\n"},"planDesc":{"type":"string","description":"The description of the Plan.\n"},"planEndDate":{"type":"string","description":"The end time of the Plan.\n"},"planScheduleType":{"type":"string","description":"The execution mode of the plan. Valid values: `Postpone`, `Regular`.\n","willReplaceOnChanges":true},"planStartDate":{"type":"string","description":"The start time of the Plan.\n"},"planType":{"type":"string","description":"The type of the Plan. Valid values: `PauseResume`, `Resize`.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The Status of the Plan. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cancel`\" pulumi-lang-dotnet=\"`Cancel`\" pulumi-lang-go=\"`cancel`\" pulumi-lang-python=\"`cancel`\" pulumi-lang-yaml=\"`cancel`\" pulumi-lang-java=\"`cancel`\"\u003e`cancel`\u003c/span\u003e.\n"}},"requiredInputs":["dbInstanceId","dbInstancePlanName","planConfigs","planScheduleType","planType"],"stateInputs":{"description":"Input properties used for looking up and filtering DbInstancePlan resources.\n","properties":{"dbInstanceId":{"type":"string","description":"The ID of the GPDB instance.\n","willReplaceOnChanges":true},"dbInstancePlanName":{"type":"string","description":"The name of the Plan.\n"},"planConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:gpdb/DbInstancePlanPlanConfig:DbInstancePlanPlanConfig"},"description":"The execution information of the plan. See \u003cspan pulumi-lang-nodejs=\"`planConfig`\" pulumi-lang-dotnet=\"`PlanConfig`\" pulumi-lang-go=\"`planConfig`\" pulumi-lang-python=\"`plan_config`\" pulumi-lang-yaml=\"`planConfig`\" pulumi-lang-java=\"`planConfig`\"\u003e`plan_config`\u003c/span\u003e below.\n"},"planDesc":{"type":"string","description":"The description of the Plan.\n"},"planEndDate":{"type":"string","description":"The end time of the Plan.\n"},"planId":{"type":"string","description":"The ID of the plan.\n"},"planScheduleType":{"type":"string","description":"The execution mode of the plan. Valid values: `Postpone`, `Regular`.\n","willReplaceOnChanges":true},"planStartDate":{"type":"string","description":"The start time of the Plan.\n"},"planType":{"type":"string","description":"The type of the Plan. Valid values: `PauseResume`, `Resize`.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The Status of the Plan. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cancel`\" pulumi-lang-dotnet=\"`Cancel`\" pulumi-lang-go=\"`cancel`\" pulumi-lang-python=\"`cancel`\" pulumi-lang-yaml=\"`cancel`\" pulumi-lang-java=\"`cancel`\"\u003e`cancel`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:gpdb/dbResourceGroup:DbResourceGroup":{"description":"Provides a AnalyticDB for PostgreSQL (GPDB) Db Resource Group resource.\n\n\n\nFor information about AnalyticDB for PostgreSQL (GPDB) Db Resource Group and how to use it, see [What is Db Resource Group](https://next.api.alibabacloud.com/document/gpdb/2016-05-03/CreateDBResourceGroup).\n\n\u003e **NOTE:** Available since v1.225.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultZc8RD9 = new alicloud.vpc.Network(\"defaultZc8RD9\", {cidrBlock: \"192.168.0.0/16\"});\nconst defaultRv5UXt = new alicloud.vpc.Switch(\"defaultRv5UXt\", {\n    vpcId: defaultZc8RD9.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    cidrBlock: \"192.168.1.0/24\",\n});\nconst defaultJXWSlW = new alicloud.gpdb.Instance(\"defaultJXWSlW\", {\n    instanceSpec: \"2C8G\",\n    segNodeNum: 2,\n    segStorageType: \"cloud_essd\",\n    instanceNetworkType: \"VPC\",\n    dbInstanceCategory: \"Basic\",\n    engine: \"gpdb\",\n    paymentType: \"PayAsYouGo\",\n    sslEnabled: 0,\n    engineVersion: \"6.0\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchId: defaultRv5UXt.id,\n    storageSize: 50,\n    masterCu: 4,\n    vpcId: defaultZc8RD9.id,\n    dbInstanceMode: \"StorageElastic\",\n    description: name,\n});\nconst defaultDbResourceGroup = new alicloud.gpdb.DbResourceGroup(\"default\", {\n    resourceGroupConfig: JSON.stringify({\n        CpuRateLimit: 10,\n        MemoryLimit: 10,\n        MemorySharedQuota: 80,\n        MemorySpillRatio: 0,\n        Concurrency: 10,\n    }),\n    dbInstanceId: defaultJXWSlW.id,\n    resourceGroupName: \"yb_example_group\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_zc8_rd9 = alicloud.vpc.Network(\"defaultZc8RD9\", cidr_block=\"192.168.0.0/16\")\ndefault_rv5_u_xt = alicloud.vpc.Switch(\"defaultRv5UXt\",\n    vpc_id=default_zc8_rd9.id,\n    zone_id=default.zones[0].id,\n    cidr_block=\"192.168.1.0/24\")\ndefault_jxw_sl_w = alicloud.gpdb.Instance(\"defaultJXWSlW\",\n    instance_spec=\"2C8G\",\n    seg_node_num=2,\n    seg_storage_type=\"cloud_essd\",\n    instance_network_type=\"VPC\",\n    db_instance_category=\"Basic\",\n    engine=\"gpdb\",\n    payment_type=\"PayAsYouGo\",\n    ssl_enabled=0,\n    engine_version=\"6.0\",\n    zone_id=default.zones[0].id,\n    vswitch_id=default_rv5_u_xt.id,\n    storage_size=50,\n    master_cu=4,\n    vpc_id=default_zc8_rd9.id,\n    db_instance_mode=\"StorageElastic\",\n    description=name)\ndefault_db_resource_group = alicloud.gpdb.DbResourceGroup(\"default\",\n    resource_group_config=json.dumps({\n        \"CpuRateLimit\": 10,\n        \"MemoryLimit\": 10,\n        \"MemorySharedQuota\": 80,\n        \"MemorySpillRatio\": 0,\n        \"Concurrency\": 10,\n    }),\n    db_instance_id=default_jxw_sl_w.id,\n    resource_group_name=\"yb_example_group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultZc8RD9 = new AliCloud.Vpc.Network(\"defaultZc8RD9\", new()\n    {\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultRv5UXt = new AliCloud.Vpc.Switch(\"defaultRv5UXt\", new()\n    {\n        VpcId = defaultZc8RD9.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        CidrBlock = \"192.168.1.0/24\",\n    });\n\n    var defaultJXWSlW = new AliCloud.Gpdb.Instance(\"defaultJXWSlW\", new()\n    {\n        InstanceSpec = \"2C8G\",\n        SegNodeNum = 2,\n        SegStorageType = \"cloud_essd\",\n        InstanceNetworkType = \"VPC\",\n        DbInstanceCategory = \"Basic\",\n        Engine = \"gpdb\",\n        PaymentType = \"PayAsYouGo\",\n        SslEnabled = 0,\n        EngineVersion = \"6.0\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchId = defaultRv5UXt.Id,\n        StorageSize = 50,\n        MasterCu = 4,\n        VpcId = defaultZc8RD9.Id,\n        DbInstanceMode = \"StorageElastic\",\n        Description = name,\n    });\n\n    var defaultDbResourceGroup = new AliCloud.Gpdb.DbResourceGroup(\"default\", new()\n    {\n        ResourceGroupConfig = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"CpuRateLimit\"] = 10,\n            [\"MemoryLimit\"] = 10,\n            [\"MemorySharedQuota\"] = 80,\n            [\"MemorySpillRatio\"] = 0,\n            [\"Concurrency\"] = 10,\n        }),\n        DbInstanceId = defaultJXWSlW.Id,\n        ResourceGroupName = \"yb_example_group\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultZc8RD9, err := vpc.NewNetwork(ctx, \"defaultZc8RD9\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRv5UXt, err := vpc.NewSwitch(ctx, \"defaultRv5UXt\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultZc8RD9.ID(),\n\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t\tCidrBlock: pulumi.String(\"192.168.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultJXWSlW, err := gpdb.NewInstance(ctx, \"defaultJXWSlW\", \u0026gpdb.InstanceArgs{\n\t\t\tInstanceSpec:        pulumi.String(\"2C8G\"),\n\t\t\tSegNodeNum:          pulumi.Int(2),\n\t\t\tSegStorageType:      pulumi.String(\"cloud_essd\"),\n\t\t\tInstanceNetworkType: pulumi.String(\"VPC\"),\n\t\t\tDbInstanceCategory:  pulumi.String(\"Basic\"),\n\t\t\tEngine:              pulumi.String(\"gpdb\"),\n\t\t\tPaymentType:         pulumi.String(\"PayAsYouGo\"),\n\t\t\tSslEnabled:          pulumi.Int(0),\n\t\t\tEngineVersion:       pulumi.String(\"6.0\"),\n\t\t\tZoneId:              pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchId:           defaultRv5UXt.ID(),\n\t\t\tStorageSize:         pulumi.Int(50),\n\t\t\tMasterCu:            pulumi.Int(4),\n\t\t\tVpcId:               defaultZc8RD9.ID(),\n\t\t\tDbInstanceMode:      pulumi.String(\"StorageElastic\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"CpuRateLimit\":      10,\n\t\t\t\"MemoryLimit\":       10,\n\t\t\t\"MemorySharedQuota\": 80,\n\t\t\t\"MemorySpillRatio\":  0,\n\t\t\t\"Concurrency\":       10,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = gpdb.NewDbResourceGroup(ctx, \"default\", \u0026gpdb.DbResourceGroupArgs{\n\t\t\tResourceGroupConfig: pulumi.String(json0),\n\t\t\tDbInstanceId:        defaultJXWSlW.ID(),\n\t\t\tResourceGroupName:   pulumi.String(\"yb_example_group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.gpdb.Instance;\nimport com.pulumi.alicloud.gpdb.InstanceArgs;\nimport com.pulumi.alicloud.gpdb.DbResourceGroup;\nimport com.pulumi.alicloud.gpdb.DbResourceGroupArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultZc8RD9 = new Network(\"defaultZc8RD9\", NetworkArgs.builder()\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultRv5UXt = new Switch(\"defaultRv5UXt\", SwitchArgs.builder()\n            .vpcId(defaultZc8RD9.id())\n            .zoneId(default_.zones()[0].id())\n            .cidrBlock(\"192.168.1.0/24\")\n            .build());\n\n        var defaultJXWSlW = new Instance(\"defaultJXWSlW\", InstanceArgs.builder()\n            .instanceSpec(\"2C8G\")\n            .segNodeNum(2)\n            .segStorageType(\"cloud_essd\")\n            .instanceNetworkType(\"VPC\")\n            .dbInstanceCategory(\"Basic\")\n            .engine(\"gpdb\")\n            .paymentType(\"PayAsYouGo\")\n            .sslEnabled(0)\n            .engineVersion(\"6.0\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchId(defaultRv5UXt.id())\n            .storageSize(50)\n            .masterCu(4)\n            .vpcId(defaultZc8RD9.id())\n            .dbInstanceMode(\"StorageElastic\")\n            .description(name)\n            .build());\n\n        var defaultDbResourceGroup = new DbResourceGroup(\"defaultDbResourceGroup\", DbResourceGroupArgs.builder()\n            .resourceGroupConfig(serializeJson(\n                jsonObject(\n                    jsonProperty(\"CpuRateLimit\", 10),\n                    jsonProperty(\"MemoryLimit\", 10),\n                    jsonProperty(\"MemorySharedQuota\", 80),\n                    jsonProperty(\"MemorySpillRatio\", 0),\n                    jsonProperty(\"Concurrency\", 10)\n                )))\n            .dbInstanceId(defaultJXWSlW.id())\n            .resourceGroupName(\"yb_example_group\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultZc8RD9:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 192.168.0.0/16\n  defaultRv5UXt:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultZc8RD9.id}\n      zoneId: ${default.zones[0].id}\n      cidrBlock: 192.168.1.0/24\n  defaultJXWSlW:\n    type: alicloud:gpdb:Instance\n    properties:\n      instanceSpec: 2C8G\n      segNodeNum: '2'\n      segStorageType: cloud_essd\n      instanceNetworkType: VPC\n      dbInstanceCategory: Basic\n      engine: gpdb\n      paymentType: PayAsYouGo\n      sslEnabled: '0'\n      engineVersion: '6.0'\n      zoneId: ${default.zones[0].id}\n      vswitchId: ${defaultRv5UXt.id}\n      storageSize: '50'\n      masterCu: '4'\n      vpcId: ${defaultZc8RD9.id}\n      dbInstanceMode: StorageElastic\n      description: ${name}\n  defaultDbResourceGroup:\n    type: alicloud:gpdb:DbResourceGroup\n    name: default\n    properties:\n      resourceGroupConfig:\n        fn::toJSON:\n          CpuRateLimit: 10\n          MemoryLimit: 10\n          MemorySharedQuota: 80\n          MemorySpillRatio: 0\n          Concurrency: 10\n      dbInstanceId: ${defaultJXWSlW.id}\n      resourceGroupName: yb_example_group\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAnalyticDB for PostgreSQL (GPDB) Db Resource Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/dbResourceGroup:DbResourceGroup example \u003cdb_instance_id\u003e:\u003cresource_group_name\u003e\n```\n\n","properties":{"dbInstanceId":{"type":"string","description":"The instance ID.\u003e You can call the DescribeDBInstances operation to view the instance IDs of all AnalyticDB PostgreSQL instances in the target region.\n"},"resourceGroupConfig":{"type":"string","description":"Resource group configuration.\n"},"resourceGroupName":{"type":"string","description":"Resource group name.\n"},"roleLists":{"type":"array","items":{"type":"string"},"description":"Role List\n"}},"required":["dbInstanceId","resourceGroupConfig","resourceGroupName"],"inputProperties":{"dbInstanceId":{"type":"string","description":"The instance ID.\u003e You can call the DescribeDBInstances operation to view the instance IDs of all AnalyticDB PostgreSQL instances in the target region.\n","willReplaceOnChanges":true},"resourceGroupConfig":{"type":"string","description":"Resource group configuration.\n"},"resourceGroupName":{"type":"string","description":"Resource group name.\n","willReplaceOnChanges":true},"roleLists":{"type":"array","items":{"type":"string"},"description":"Role List\n"}},"requiredInputs":["dbInstanceId","resourceGroupConfig","resourceGroupName"],"stateInputs":{"description":"Input properties used for looking up and filtering DbResourceGroup resources.\n","properties":{"dbInstanceId":{"type":"string","description":"The instance ID.\u003e You can call the DescribeDBInstances operation to view the instance IDs of all AnalyticDB PostgreSQL instances in the target region.\n","willReplaceOnChanges":true},"resourceGroupConfig":{"type":"string","description":"Resource group configuration.\n"},"resourceGroupName":{"type":"string","description":"Resource group name.\n","willReplaceOnChanges":true},"roleLists":{"type":"array","items":{"type":"string"},"description":"Role List\n"}},"type":"object"}},"alicloud:gpdb/elasticInstance:ElasticInstance":{"description":"Provides a AnalyticDB for PostgreSQL instance resource which storage type is flexible. Compared to the reserved storage ADB PG instance, you can scale up each disk and smoothly scale out nodes online.  \nFor more detail product introduction, see [here](https://www.alibabacloud.com/help/doc-detail/141368.htm).\n\n\u003e **NOTE:** Deprecated since v1.147.0.\n\n\u003e **DEPRECATED:**  This resource  has been deprecated from version `1.147.0`. Please use new resource alicloud_gpdb_instance.\n\n\n## Example Usage\n\n### Create a AnalyticDB for PostgreSQL instance\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"Gpdb\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    name: \"vpc-123456\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    vswitchName: \"vpc-123456\",\n});\nconst adbPgInstance = new alicloud.gpdb.ElasticInstance(\"adb_pg_instance\", {\n    engine: \"gpdb\",\n    engineVersion: \"6.0\",\n    segStorageType: \"cloud_essd\",\n    segNodeNum: 4,\n    storageSize: 50,\n    instanceSpec: \"2C16G\",\n    dbInstanceDescription: \"Created by terraform\",\n    instanceNetworkType: \"VPC\",\n    paymentType: \"PayAsYouGo\",\n    vswitchId: defaultSwitch.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_zones(available_resource_creation=\"Gpdb\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    name=\"vpc-123456\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    zone_id=default.zones[0].id,\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    vswitch_name=\"vpc-123456\")\nadb_pg_instance = alicloud.gpdb.ElasticInstance(\"adb_pg_instance\",\n    engine=\"gpdb\",\n    engine_version=\"6.0\",\n    seg_storage_type=\"cloud_essd\",\n    seg_node_num=4,\n    storage_size=50,\n    instance_spec=\"2C16G\",\n    db_instance_description=\"Created by terraform\",\n    instance_network_type=\"VPC\",\n    payment_type=\"PayAsYouGo\",\n    vswitch_id=default_switch.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Gpdb\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        Name = \"vpc-123456\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        VswitchName = \"vpc-123456\",\n    });\n\n    var adbPgInstance = new AliCloud.Gpdb.ElasticInstance(\"adb_pg_instance\", new()\n    {\n        Engine = \"gpdb\",\n        EngineVersion = \"6.0\",\n        SegStorageType = \"cloud_essd\",\n        SegNodeNum = 4,\n        StorageSize = 50,\n        InstanceSpec = \"2C16G\",\n        DbInstanceDescription = \"Created by terraform\",\n        InstanceNetworkType = \"VPC\",\n        PaymentType = \"PayAsYouGo\",\n        VswitchId = defaultSwitch.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Gpdb\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tName:      pulumi.String(\"vpc-123456\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"vpc-123456\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gpdb.NewElasticInstance(ctx, \"adb_pg_instance\", \u0026gpdb.ElasticInstanceArgs{\n\t\t\tEngine:                pulumi.String(\"gpdb\"),\n\t\t\tEngineVersion:         pulumi.String(\"6.0\"),\n\t\t\tSegStorageType:        pulumi.String(\"cloud_essd\"),\n\t\t\tSegNodeNum:            pulumi.Int(4),\n\t\t\tStorageSize:           pulumi.Int(50),\n\t\t\tInstanceSpec:          pulumi.String(\"2C16G\"),\n\t\t\tDbInstanceDescription: pulumi.String(\"Created by terraform\"),\n\t\t\tInstanceNetworkType:   pulumi.String(\"VPC\"),\n\t\t\tPaymentType:           pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:             defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.gpdb.ElasticInstance;\nimport com.pulumi.alicloud.gpdb.ElasticInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Gpdb\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .name(\"vpc-123456\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .zoneId(default_.zones()[0].id())\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .vswitchName(\"vpc-123456\")\n            .build());\n\n        var adbPgInstance = new ElasticInstance(\"adbPgInstance\", ElasticInstanceArgs.builder()\n            .engine(\"gpdb\")\n            .engineVersion(\"6.0\")\n            .segStorageType(\"cloud_essd\")\n            .segNodeNum(4)\n            .storageSize(50)\n            .instanceSpec(\"2C16G\")\n            .dbInstanceDescription(\"Created by terraform\")\n            .instanceNetworkType(\"VPC\")\n            .paymentType(\"PayAsYouGo\")\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      name: vpc-123456\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      zoneId: ${default.zones[0].id}\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      vswitchName: vpc-123456\n  adbPgInstance:\n    type: alicloud:gpdb:ElasticInstance\n    name: adb_pg_instance\n    properties:\n      engine: gpdb\n      engineVersion: '6.0'\n      segStorageType: cloud_essd\n      segNodeNum: 4\n      storageSize: 50\n      instanceSpec: 2C16G\n      dbInstanceDescription: Created by terraform\n      instanceNetworkType: VPC\n      paymentType: PayAsYouGo\n      vswitchId: ${defaultSwitch.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Gpdb\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAnalyticDB for PostgreSQL can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/elasticInstance:ElasticInstance adb_pg_instance gp-bpxxxxxxxxxxxxxx\n```\n\n","properties":{"connectionString":{"type":"string","description":"ADB PG instance connection string.\n"},"dbInstanceCategory":{"type":"string","description":"The edition of the instance. Valid values: `Basic`, `HighAvailability`. Default value: `HighAvailability`.\n"},"dbInstanceDescription":{"type":"string","description":"The description of ADB PG instance. It is a string of 2 to 256 characters.\n"},"encryptionKey":{"type":"string","description":"The ID of the encryption key. **Note:** If the \u003cspan pulumi-lang-nodejs=\"`encryptionType`\" pulumi-lang-dotnet=\"`EncryptionType`\" pulumi-lang-go=\"`encryptionType`\" pulumi-lang-python=\"`encryption_type`\" pulumi-lang-yaml=\"`encryptionType`\" pulumi-lang-java=\"`encryptionType`\"\u003e`encryption_type`\u003c/span\u003e parameter is set to `CloudDisk`, you must specify this parameter to the encryption key that is in the same region as the disk that is specified by the EncryptionType parameter. Otherwise, leave this parameter empty.\n"},"encryptionType":{"type":"string","description":"The type of the encryption. Valid values: `CloudDisk`. **Note:** Disk encryption cannot be disabled after it is enabled.\n"},"engine":{"type":"string","description":"Database engine: \u003cspan pulumi-lang-nodejs=\"`gpdb`\" pulumi-lang-dotnet=\"`Gpdb`\" pulumi-lang-go=\"`gpdb`\" pulumi-lang-python=\"`gpdb`\" pulumi-lang-yaml=\"`gpdb`\" pulumi-lang-java=\"`gpdb`\"\u003e`gpdb`\u003c/span\u003e.\n"},"engineVersion":{"type":"string","description":"Database version. Valid value is `6.0`.\n"},"instanceNetworkType":{"type":"string","description":"The network type of ADB PG instance. Only `VPC` supported now.\n"},"instanceSpec":{"type":"string","description":"The specification of segment nodes. \n* When \u003cspan pulumi-lang-nodejs=\"`dbInstanceCategory`\" pulumi-lang-dotnet=\"`DbInstanceCategory`\" pulumi-lang-go=\"`dbInstanceCategory`\" pulumi-lang-python=\"`db_instance_category`\" pulumi-lang-yaml=\"`dbInstanceCategory`\" pulumi-lang-java=\"`dbInstanceCategory`\"\u003e`db_instance_category`\u003c/span\u003e is `HighAvailability`, Valid values: `2C16G`, `4C32G`, `16C128G`.\n* When \u003cspan pulumi-lang-nodejs=\"`dbInstanceCategory`\" pulumi-lang-dotnet=\"`DbInstanceCategory`\" pulumi-lang-go=\"`dbInstanceCategory`\" pulumi-lang-python=\"`db_instance_category`\" pulumi-lang-yaml=\"`dbInstanceCategory`\" pulumi-lang-java=\"`dbInstanceCategory`\"\u003e`db_instance_category`\u003c/span\u003e is `Basic`, Valid values: `2C8G`, `4C16G`, `8C32G`, `16C64G`.\n"},"paymentDuration":{"type":"integer","description":"The subscription period. Valid values: [1~12]. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`.  \n**NOTE:** Will not take effect after modifying \u003cspan pulumi-lang-nodejs=\"`paymentDuration`\" pulumi-lang-dotnet=\"`PaymentDuration`\" pulumi-lang-go=\"`paymentDuration`\" pulumi-lang-python=\"`payment_duration`\" pulumi-lang-yaml=\"`paymentDuration`\" pulumi-lang-java=\"`paymentDuration`\"\u003e`payment_duration`\u003c/span\u003e for now, if you want to renew a PayAsYouGo instance, need to do in on aliyun console.\n"},"paymentDurationUnit":{"type":"string","description":"The unit of the subscription period. Valid values: `Month`, `Year`. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`.  \n**NOTE:** Will not take effect after modifying \u003cspan pulumi-lang-nodejs=\"`paymentDurationUnit`\" pulumi-lang-dotnet=\"`PaymentDurationUnit`\" pulumi-lang-go=\"`paymentDurationUnit`\" pulumi-lang-python=\"`payment_duration_unit`\" pulumi-lang-yaml=\"`paymentDurationUnit`\" pulumi-lang-java=\"`paymentDurationUnit`\"\u003e`payment_duration_unit`\u003c/span\u003e for now, if you want to renew a PayAsYouGo instance, need to do in on aliyun console.\n"},"paymentType":{"type":"string","description":"Valid values are `PayAsYouGo`, `Subscription`. Default to `PayAsYouGo`.\n"},"port":{"type":"string","description":"(Available since v1.196.0) The connection port of the instance.\n"},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"segNodeNum":{"type":"integer","description":"The number of segment nodes. Minimum is \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, max is \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e, step is \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e.\n"},"segStorageType":{"type":"string","description":"The disk type of segment nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n"},"status":{"type":"string","description":"Instance status.\n"},"storageSize":{"type":"integer","description":"The storage capacity of per segment node. Unit: GB. Minimum is \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e, max is \u003cspan pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\"\u003e`4000`\u003c/span\u003e, step is \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch ADB PG instances in one VPC.\n"},"zoneId":{"type":"string","description":"The Zone to launch the ADB PG instance. If specified, must be consistent with the zone where the vswitch is located.\n"}},"required":["connectionString","dbInstanceCategory","engine","engineVersion","instanceSpec","port","securityIpLists","segNodeNum","segStorageType","status","storageSize","vswitchId","zoneId"],"inputProperties":{"dbInstanceCategory":{"type":"string","description":"The edition of the instance. Valid values: `Basic`, `HighAvailability`. Default value: `HighAvailability`.\n","willReplaceOnChanges":true},"dbInstanceDescription":{"type":"string","description":"The description of ADB PG instance. It is a string of 2 to 256 characters.\n"},"encryptionKey":{"type":"string","description":"The ID of the encryption key. **Note:** If the \u003cspan pulumi-lang-nodejs=\"`encryptionType`\" pulumi-lang-dotnet=\"`EncryptionType`\" pulumi-lang-go=\"`encryptionType`\" pulumi-lang-python=\"`encryption_type`\" pulumi-lang-yaml=\"`encryptionType`\" pulumi-lang-java=\"`encryptionType`\"\u003e`encryption_type`\u003c/span\u003e parameter is set to `CloudDisk`, you must specify this parameter to the encryption key that is in the same region as the disk that is specified by the EncryptionType parameter. Otherwise, leave this parameter empty.\n","willReplaceOnChanges":true},"encryptionType":{"type":"string","description":"The type of the encryption. Valid values: `CloudDisk`. **Note:** Disk encryption cannot be disabled after it is enabled.\n","willReplaceOnChanges":true},"engine":{"type":"string","description":"Database engine: \u003cspan pulumi-lang-nodejs=\"`gpdb`\" pulumi-lang-dotnet=\"`Gpdb`\" pulumi-lang-go=\"`gpdb`\" pulumi-lang-python=\"`gpdb`\" pulumi-lang-yaml=\"`gpdb`\" pulumi-lang-java=\"`gpdb`\"\u003e`gpdb`\u003c/span\u003e.\n","willReplaceOnChanges":true},"engineVersion":{"type":"string","description":"Database version. Valid value is `6.0`.\n","willReplaceOnChanges":true},"instanceNetworkType":{"type":"string","description":"The network type of ADB PG instance. Only `VPC` supported now.\n","willReplaceOnChanges":true},"instanceSpec":{"type":"string","description":"The specification of segment nodes. \n* When \u003cspan pulumi-lang-nodejs=\"`dbInstanceCategory`\" pulumi-lang-dotnet=\"`DbInstanceCategory`\" pulumi-lang-go=\"`dbInstanceCategory`\" pulumi-lang-python=\"`db_instance_category`\" pulumi-lang-yaml=\"`dbInstanceCategory`\" pulumi-lang-java=\"`dbInstanceCategory`\"\u003e`db_instance_category`\u003c/span\u003e is `HighAvailability`, Valid values: `2C16G`, `4C32G`, `16C128G`.\n* When \u003cspan pulumi-lang-nodejs=\"`dbInstanceCategory`\" pulumi-lang-dotnet=\"`DbInstanceCategory`\" pulumi-lang-go=\"`dbInstanceCategory`\" pulumi-lang-python=\"`db_instance_category`\" pulumi-lang-yaml=\"`dbInstanceCategory`\" pulumi-lang-java=\"`dbInstanceCategory`\"\u003e`db_instance_category`\u003c/span\u003e is `Basic`, Valid values: `2C8G`, `4C16G`, `8C32G`, `16C64G`.\n","willReplaceOnChanges":true},"paymentDuration":{"type":"integer","description":"The subscription period. Valid values: [1~12]. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`.  \n**NOTE:** Will not take effect after modifying \u003cspan pulumi-lang-nodejs=\"`paymentDuration`\" pulumi-lang-dotnet=\"`PaymentDuration`\" pulumi-lang-go=\"`paymentDuration`\" pulumi-lang-python=\"`payment_duration`\" pulumi-lang-yaml=\"`paymentDuration`\" pulumi-lang-java=\"`paymentDuration`\"\u003e`payment_duration`\u003c/span\u003e for now, if you want to renew a PayAsYouGo instance, need to do in on aliyun console.\n"},"paymentDurationUnit":{"type":"string","description":"The unit of the subscription period. Valid values: `Month`, `Year`. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`.  \n**NOTE:** Will not take effect after modifying \u003cspan pulumi-lang-nodejs=\"`paymentDurationUnit`\" pulumi-lang-dotnet=\"`PaymentDurationUnit`\" pulumi-lang-go=\"`paymentDurationUnit`\" pulumi-lang-python=\"`payment_duration_unit`\" pulumi-lang-yaml=\"`paymentDurationUnit`\" pulumi-lang-java=\"`paymentDurationUnit`\"\u003e`payment_duration_unit`\u003c/span\u003e for now, if you want to renew a PayAsYouGo instance, need to do in on aliyun console.\n"},"paymentType":{"type":"string","description":"Valid values are `PayAsYouGo`, `Subscription`. Default to `PayAsYouGo`.\n","willReplaceOnChanges":true},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"segNodeNum":{"type":"integer","description":"The number of segment nodes. Minimum is \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, max is \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e, step is \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e.\n","willReplaceOnChanges":true},"segStorageType":{"type":"string","description":"The disk type of segment nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n","willReplaceOnChanges":true},"storageSize":{"type":"integer","description":"The storage capacity of per segment node. Unit: GB. Minimum is \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e, max is \u003cspan pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\"\u003e`4000`\u003c/span\u003e, step is \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch ADB PG instances in one VPC.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the ADB PG instance. If specified, must be consistent with the zone where the vswitch is located.\n","willReplaceOnChanges":true}},"requiredInputs":["engine","engineVersion","instanceSpec","segNodeNum","segStorageType","storageSize","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering ElasticInstance resources.\n","properties":{"connectionString":{"type":"string","description":"ADB PG instance connection string.\n"},"dbInstanceCategory":{"type":"string","description":"The edition of the instance. Valid values: `Basic`, `HighAvailability`. Default value: `HighAvailability`.\n","willReplaceOnChanges":true},"dbInstanceDescription":{"type":"string","description":"The description of ADB PG instance. It is a string of 2 to 256 characters.\n"},"encryptionKey":{"type":"string","description":"The ID of the encryption key. **Note:** If the \u003cspan pulumi-lang-nodejs=\"`encryptionType`\" pulumi-lang-dotnet=\"`EncryptionType`\" pulumi-lang-go=\"`encryptionType`\" pulumi-lang-python=\"`encryption_type`\" pulumi-lang-yaml=\"`encryptionType`\" pulumi-lang-java=\"`encryptionType`\"\u003e`encryption_type`\u003c/span\u003e parameter is set to `CloudDisk`, you must specify this parameter to the encryption key that is in the same region as the disk that is specified by the EncryptionType parameter. Otherwise, leave this parameter empty.\n","willReplaceOnChanges":true},"encryptionType":{"type":"string","description":"The type of the encryption. Valid values: `CloudDisk`. **Note:** Disk encryption cannot be disabled after it is enabled.\n","willReplaceOnChanges":true},"engine":{"type":"string","description":"Database engine: \u003cspan pulumi-lang-nodejs=\"`gpdb`\" pulumi-lang-dotnet=\"`Gpdb`\" pulumi-lang-go=\"`gpdb`\" pulumi-lang-python=\"`gpdb`\" pulumi-lang-yaml=\"`gpdb`\" pulumi-lang-java=\"`gpdb`\"\u003e`gpdb`\u003c/span\u003e.\n","willReplaceOnChanges":true},"engineVersion":{"type":"string","description":"Database version. Valid value is `6.0`.\n","willReplaceOnChanges":true},"instanceNetworkType":{"type":"string","description":"The network type of ADB PG instance. Only `VPC` supported now.\n","willReplaceOnChanges":true},"instanceSpec":{"type":"string","description":"The specification of segment nodes. \n* When \u003cspan pulumi-lang-nodejs=\"`dbInstanceCategory`\" pulumi-lang-dotnet=\"`DbInstanceCategory`\" pulumi-lang-go=\"`dbInstanceCategory`\" pulumi-lang-python=\"`db_instance_category`\" pulumi-lang-yaml=\"`dbInstanceCategory`\" pulumi-lang-java=\"`dbInstanceCategory`\"\u003e`db_instance_category`\u003c/span\u003e is `HighAvailability`, Valid values: `2C16G`, `4C32G`, `16C128G`.\n* When \u003cspan pulumi-lang-nodejs=\"`dbInstanceCategory`\" pulumi-lang-dotnet=\"`DbInstanceCategory`\" pulumi-lang-go=\"`dbInstanceCategory`\" pulumi-lang-python=\"`db_instance_category`\" pulumi-lang-yaml=\"`dbInstanceCategory`\" pulumi-lang-java=\"`dbInstanceCategory`\"\u003e`db_instance_category`\u003c/span\u003e is `Basic`, Valid values: `2C8G`, `4C16G`, `8C32G`, `16C64G`.\n","willReplaceOnChanges":true},"paymentDuration":{"type":"integer","description":"The subscription period. Valid values: [1~12]. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`.  \n**NOTE:** Will not take effect after modifying \u003cspan pulumi-lang-nodejs=\"`paymentDuration`\" pulumi-lang-dotnet=\"`PaymentDuration`\" pulumi-lang-go=\"`paymentDuration`\" pulumi-lang-python=\"`payment_duration`\" pulumi-lang-yaml=\"`paymentDuration`\" pulumi-lang-java=\"`paymentDuration`\"\u003e`payment_duration`\u003c/span\u003e for now, if you want to renew a PayAsYouGo instance, need to do in on aliyun console.\n"},"paymentDurationUnit":{"type":"string","description":"The unit of the subscription period. Valid values: `Month`, `Year`. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`.  \n**NOTE:** Will not take effect after modifying \u003cspan pulumi-lang-nodejs=\"`paymentDurationUnit`\" pulumi-lang-dotnet=\"`PaymentDurationUnit`\" pulumi-lang-go=\"`paymentDurationUnit`\" pulumi-lang-python=\"`payment_duration_unit`\" pulumi-lang-yaml=\"`paymentDurationUnit`\" pulumi-lang-java=\"`paymentDurationUnit`\"\u003e`payment_duration_unit`\u003c/span\u003e for now, if you want to renew a PayAsYouGo instance, need to do in on aliyun console.\n"},"paymentType":{"type":"string","description":"Valid values are `PayAsYouGo`, `Subscription`. Default to `PayAsYouGo`.\n","willReplaceOnChanges":true},"port":{"type":"string","description":"(Available since v1.196.0) The connection port of the instance.\n"},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"segNodeNum":{"type":"integer","description":"The number of segment nodes. Minimum is \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, max is \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e, step is \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e.\n","willReplaceOnChanges":true},"segStorageType":{"type":"string","description":"The disk type of segment nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Instance status.\n"},"storageSize":{"type":"integer","description":"The storage capacity of per segment node. Unit: GB. Minimum is \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e, max is \u003cspan pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\"\u003e`4000`\u003c/span\u003e, step is \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch ADB PG instances in one VPC.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the ADB PG instance. If specified, must be consistent with the zone where the vswitch is located.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:gpdb/externalDataService:ExternalDataService":{"description":"Provides a AnalyticDB for PostgreSQL (GPDB) External Data Service resource.\n\nExternal Data Services.\n\nFor information about AnalyticDB for PostgreSQL (GPDB) External Data Service and how to use it, see [What is External Data Service](https://next.api.alibabacloud.com/document/gpdb/2016-05-03/CreateExternalDataService).\n\n\u003e **NOTE:** Available since v1.227.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultrple4a = new alicloud.vpc.Network(\"defaultrple4a\", {cidrBlock: \"192.168.0.0/16\"});\nconst defaultnYWSkl = new alicloud.vpc.Switch(\"defaultnYWSkl\", {\n    vpcId: defaultrple4a.id,\n    zoneId: \"cn-beijing-h\",\n    cidrBlock: \"192.168.1.0/24\",\n});\nconst defaultZ7DPgB = new alicloud.gpdb.Instance(\"defaultZ7DPgB\", {\n    instanceSpec: \"2C8G\",\n    description: name,\n    segNodeNum: 2,\n    segStorageType: \"cloud_essd\",\n    instanceNetworkType: \"VPC\",\n    dbInstanceCategory: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    sslEnabled: 0,\n    engineVersion: \"6.0\",\n    zoneId: \"cn-beijing-h\",\n    vswitchId: defaultnYWSkl.id,\n    storageSize: 50,\n    masterCu: 4,\n    vpcId: defaultrple4a.id,\n    dbInstanceMode: \"StorageElastic\",\n    engine: \"gpdb\",\n});\nconst defaultExternalDataService = new alicloud.gpdb.ExternalDataService(\"default\", {\n    serviceName: \"example6\",\n    dbInstanceId: defaultZ7DPgB.id,\n    serviceDescription: \"example\",\n    serviceSpec: \"8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefaultrple4a = alicloud.vpc.Network(\"defaultrple4a\", cidr_block=\"192.168.0.0/16\")\ndefaultn_yw_skl = alicloud.vpc.Switch(\"defaultnYWSkl\",\n    vpc_id=defaultrple4a.id,\n    zone_id=\"cn-beijing-h\",\n    cidr_block=\"192.168.1.0/24\")\ndefault_z7_d_pg_b = alicloud.gpdb.Instance(\"defaultZ7DPgB\",\n    instance_spec=\"2C8G\",\n    description=name,\n    seg_node_num=2,\n    seg_storage_type=\"cloud_essd\",\n    instance_network_type=\"VPC\",\n    db_instance_category=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    ssl_enabled=0,\n    engine_version=\"6.0\",\n    zone_id=\"cn-beijing-h\",\n    vswitch_id=defaultn_yw_skl.id,\n    storage_size=50,\n    master_cu=4,\n    vpc_id=defaultrple4a.id,\n    db_instance_mode=\"StorageElastic\",\n    engine=\"gpdb\")\ndefault_external_data_service = alicloud.gpdb.ExternalDataService(\"default\",\n    service_name=\"example6\",\n    db_instance_id=default_z7_d_pg_b.id,\n    service_description=\"example\",\n    service_spec=\"8\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultrple4a = new AliCloud.Vpc.Network(\"defaultrple4a\", new()\n    {\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultnYWSkl = new AliCloud.Vpc.Switch(\"defaultnYWSkl\", new()\n    {\n        VpcId = defaultrple4a.Id,\n        ZoneId = \"cn-beijing-h\",\n        CidrBlock = \"192.168.1.0/24\",\n    });\n\n    var defaultZ7DPgB = new AliCloud.Gpdb.Instance(\"defaultZ7DPgB\", new()\n    {\n        InstanceSpec = \"2C8G\",\n        Description = name,\n        SegNodeNum = 2,\n        SegStorageType = \"cloud_essd\",\n        InstanceNetworkType = \"VPC\",\n        DbInstanceCategory = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        SslEnabled = 0,\n        EngineVersion = \"6.0\",\n        ZoneId = \"cn-beijing-h\",\n        VswitchId = defaultnYWSkl.Id,\n        StorageSize = 50,\n        MasterCu = 4,\n        VpcId = defaultrple4a.Id,\n        DbInstanceMode = \"StorageElastic\",\n        Engine = \"gpdb\",\n    });\n\n    var defaultExternalDataService = new AliCloud.Gpdb.ExternalDataService(\"default\", new()\n    {\n        ServiceName = \"example6\",\n        DbInstanceId = defaultZ7DPgB.Id,\n        ServiceDescription = \"example\",\n        ServiceSpec = \"8\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultrple4a, err := vpc.NewNetwork(ctx, \"defaultrple4a\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultnYWSkl, err := vpc.NewSwitch(ctx, \"defaultnYWSkl\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultrple4a.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-beijing-h\"),\n\t\t\tCidrBlock: pulumi.String(\"192.168.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultZ7DPgB, err := gpdb.NewInstance(ctx, \"defaultZ7DPgB\", \u0026gpdb.InstanceArgs{\n\t\t\tInstanceSpec:        pulumi.String(\"2C8G\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tSegNodeNum:          pulumi.Int(2),\n\t\t\tSegStorageType:      pulumi.String(\"cloud_essd\"),\n\t\t\tInstanceNetworkType: pulumi.String(\"VPC\"),\n\t\t\tDbInstanceCategory:  pulumi.String(\"Basic\"),\n\t\t\tPaymentType:         pulumi.String(\"PayAsYouGo\"),\n\t\t\tSslEnabled:          pulumi.Int(0),\n\t\t\tEngineVersion:       pulumi.String(\"6.0\"),\n\t\t\tZoneId:              pulumi.String(\"cn-beijing-h\"),\n\t\t\tVswitchId:           defaultnYWSkl.ID(),\n\t\t\tStorageSize:         pulumi.Int(50),\n\t\t\tMasterCu:            pulumi.Int(4),\n\t\t\tVpcId:               defaultrple4a.ID(),\n\t\t\tDbInstanceMode:      pulumi.String(\"StorageElastic\"),\n\t\t\tEngine:              pulumi.String(\"gpdb\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gpdb.NewExternalDataService(ctx, \"default\", \u0026gpdb.ExternalDataServiceArgs{\n\t\t\tServiceName:        pulumi.String(\"example6\"),\n\t\t\tDbInstanceId:       defaultZ7DPgB.ID(),\n\t\t\tServiceDescription: pulumi.String(\"example\"),\n\t\t\tServiceSpec:        pulumi.String(\"8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.gpdb.Instance;\nimport com.pulumi.alicloud.gpdb.InstanceArgs;\nimport com.pulumi.alicloud.gpdb.ExternalDataService;\nimport com.pulumi.alicloud.gpdb.ExternalDataServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultrple4a = new Network(\"defaultrple4a\", NetworkArgs.builder()\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultnYWSkl = new Switch(\"defaultnYWSkl\", SwitchArgs.builder()\n            .vpcId(defaultrple4a.id())\n            .zoneId(\"cn-beijing-h\")\n            .cidrBlock(\"192.168.1.0/24\")\n            .build());\n\n        var defaultZ7DPgB = new Instance(\"defaultZ7DPgB\", InstanceArgs.builder()\n            .instanceSpec(\"2C8G\")\n            .description(name)\n            .segNodeNum(2)\n            .segStorageType(\"cloud_essd\")\n            .instanceNetworkType(\"VPC\")\n            .dbInstanceCategory(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .sslEnabled(0)\n            .engineVersion(\"6.0\")\n            .zoneId(\"cn-beijing-h\")\n            .vswitchId(defaultnYWSkl.id())\n            .storageSize(50)\n            .masterCu(4)\n            .vpcId(defaultrple4a.id())\n            .dbInstanceMode(\"StorageElastic\")\n            .engine(\"gpdb\")\n            .build());\n\n        var defaultExternalDataService = new ExternalDataService(\"defaultExternalDataService\", ExternalDataServiceArgs.builder()\n            .serviceName(\"example6\")\n            .dbInstanceId(defaultZ7DPgB.id())\n            .serviceDescription(\"example\")\n            .serviceSpec(\"8\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultrple4a:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 192.168.0.0/16\n  defaultnYWSkl:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultrple4a.id}\n      zoneId: cn-beijing-h\n      cidrBlock: 192.168.1.0/24\n  defaultZ7DPgB:\n    type: alicloud:gpdb:Instance\n    properties:\n      instanceSpec: 2C8G\n      description: ${name}\n      segNodeNum: '2'\n      segStorageType: cloud_essd\n      instanceNetworkType: VPC\n      dbInstanceCategory: Basic\n      paymentType: PayAsYouGo\n      sslEnabled: '0'\n      engineVersion: '6.0'\n      zoneId: cn-beijing-h\n      vswitchId: ${defaultnYWSkl.id}\n      storageSize: '50'\n      masterCu: '4'\n      vpcId: ${defaultrple4a.id}\n      dbInstanceMode: StorageElastic\n      engine: gpdb\n  defaultExternalDataService:\n    type: alicloud:gpdb:ExternalDataService\n    name: default\n    properties:\n      serviceName: example6\n      dbInstanceId: ${defaultZ7DPgB.id}\n      serviceDescription: example\n      serviceSpec: '8'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAnalyticDB for PostgreSQL (GPDB) External Data Service can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/externalDataService:ExternalDataService example \u003cdb_instance_id\u003e:\u003cservice_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"dbInstanceId":{"type":"string","description":"Instance ID\n"},"serviceDescription":{"type":"string","description":"Service Description\n"},"serviceId":{"type":"integer","description":"Service ID\n"},"serviceName":{"type":"string","description":"Service Name\n"},"serviceSpec":{"type":"string","description":"Service Specifications\n"},"status":{"type":"string","description":"The status of the resource\n"}},"required":["createTime","dbInstanceId","serviceId","serviceName","serviceSpec","status"],"inputProperties":{"dbInstanceId":{"type":"string","description":"Instance ID\n","willReplaceOnChanges":true},"serviceDescription":{"type":"string","description":"Service Description\n"},"serviceName":{"type":"string","description":"Service Name\n","willReplaceOnChanges":true},"serviceSpec":{"type":"string","description":"Service Specifications\n"}},"requiredInputs":["dbInstanceId","serviceName","serviceSpec"],"stateInputs":{"description":"Input properties used for looking up and filtering ExternalDataService resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"dbInstanceId":{"type":"string","description":"Instance ID\n","willReplaceOnChanges":true},"serviceDescription":{"type":"string","description":"Service Description\n"},"serviceId":{"type":"integer","description":"Service ID\n"},"serviceName":{"type":"string","description":"Service Name\n","willReplaceOnChanges":true},"serviceSpec":{"type":"string","description":"Service Specifications\n"},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object"}},"alicloud:gpdb/hadoopDataSource:HadoopDataSource":{"description":"Provides a GPDB Hadoop Data Source resource.\n\nHadoop DataSource Config.\n\nFor information about GPDB Hadoop Data Source and how to use it, see [What is Hadoop Data Source](https://www.alibabacloud.com/help/en/analyticdb/analyticdb-for-postgresql/developer-reference/api-gpdb-2016-05-03-createhadoopdatasource).\n\n\u003e **NOTE:** Available since v1.230.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = defaultGetNetworks.then(defaultGetNetworks =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: \"cn-beijing-h\",\n}));\nconst defaultEcsKeyPair = new alicloud.ecs.EcsKeyPair(\"default\", {keyPairName: name});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n});\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    name: name,\n    document: `    {\n        \\\\\"Statement\\\\\": [\n        {\n            \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n            \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n            \\\\\"Principal\\\\\": {\n            \\\\\"Service\\\\\": [\n                \\\\\"emr.aliyuncs.com\\\\\",\n                \\\\\"ecs.aliyuncs.com\\\\\"\n            ]\n            }\n        }\n        ],\n        \\\\\"Version\\\\\": \\\\\"1\\\\\"\n    }\n`,\n    description: \"this is a role example.\",\n    force: true,\n});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultGetKeys = alicloud.kms.getKeys({\n    status: \"Enabled\",\n});\nconst defaultCluster = new alicloud.emrv2.Cluster(\"default\", {\n    nodeGroups: [\n        {\n            vswitchIds: [defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0])],\n            instanceTypes: [\"ecs.g6.xlarge\"],\n            nodeCount: 1,\n            spotInstanceRemedy: false,\n            dataDisks: [{\n                count: 3,\n                category: \"cloud_essd\",\n                size: 80,\n                performanceLevel: \"PL0\",\n            }],\n            nodeGroupName: \"emr-master\",\n            paymentType: \"PayAsYouGo\",\n            withPublicIp: false,\n            gracefulShutdown: false,\n            systemDisk: {\n                category: \"cloud_essd\",\n                size: 80,\n                performanceLevel: \"PL0\",\n                count: 1,\n            },\n            nodeGroupType: \"MASTER\",\n        },\n        {\n            spotInstanceRemedy: false,\n            nodeGroupType: \"CORE\",\n            vswitchIds: [defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0])],\n            nodeCount: 2,\n            gracefulShutdown: false,\n            systemDisk: {\n                performanceLevel: \"PL0\",\n                count: 1,\n                category: \"cloud_essd\",\n                size: 80,\n            },\n            dataDisks: [{\n                count: 3,\n                performanceLevel: \"PL0\",\n                category: \"cloud_essd\",\n                size: 80,\n            }],\n            nodeGroupName: \"emr-core\",\n            paymentType: \"PayAsYouGo\",\n            instanceTypes: [\"ecs.g6.xlarge\"],\n            withPublicIp: false,\n        },\n    ],\n    deployMode: \"NORMAL\",\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    releaseVersion: \"EMR-5.10.0\",\n    applications: [\n        \"HADOOP-COMMON\",\n        \"HDFS\",\n        \"YARN\",\n    ],\n    nodeAttributes: [{\n        zoneId: \"cn-beijing-h\",\n        keyPairName: defaultEcsKeyPair.id,\n        dataDiskEncrypted: true,\n        dataDiskKmsKeyId: defaultGetKeys.then(defaultGetKeys =\u003e defaultGetKeys.ids?.[0]),\n        vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n        ramRole: defaultRole.name,\n        securityGroupId: defaultSecurityGroup.id,\n    }],\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.ids?.[0]),\n    clusterName: name,\n    paymentType: \"PayAsYouGo\",\n    clusterType: \"DATAFLOW\",\n});\nconst defaultZoepvx = new alicloud.gpdb.Instance(\"defaultZoepvx\", {\n    instanceSpec: \"2C8G\",\n    description: name,\n    segNodeNum: 2,\n    segStorageType: \"cloud_essd\",\n    instanceNetworkType: \"VPC\",\n    paymentType: \"PayAsYouGo\",\n    sslEnabled: 0,\n    engineVersion: \"6.0\",\n    zoneId: \"cn-beijing-h\",\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    storageSize: 50,\n    masterCu: 4,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    dbInstanceMode: \"StorageElastic\",\n    engine: \"gpdb\",\n    dbInstanceCategory: \"Basic\",\n});\nconst defaultyOxz1K = new alicloud.gpdb.ExternalDataService(\"defaultyOxz1K\", {\n    serviceName: name,\n    dbInstanceId: defaultZoepvx.id,\n    serviceDescription: name,\n    serviceSpec: \"8\",\n});\nconst defaultHadoopDataSource = new alicloud.gpdb.HadoopDataSource(\"default\", {\n    hdfsConf: \"aaa\",\n    dataSourceName: defaultyOxz1K.serviceName,\n    yarnConf: \"aaa\",\n    hiveConf: \"aaa\",\n    hadoopCreateType: \"emr\",\n    dataSourceDescription: name,\n    mapReduceConf: \"aaa\",\n    dataSourceType: \"hive\",\n    hadoopCoreConf: \"aaa\",\n    emrInstanceId: defaultCluster.id,\n    dbInstanceId: defaultZoepvx.id,\n    hadoopHostsAddress: \"aaa\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=\"cn-beijing-h\")\ndefault_ecs_key_pair = alicloud.ecs.EcsKeyPair(\"default\", key_pair_name=name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_get_networks.ids[0])\ndefault_role = alicloud.ram.Role(\"default\",\n    name=name,\n    document=\"\"\"    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n\"\"\",\n    description=\"this is a role example.\",\n    force=True)\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_get_keys = alicloud.kms.get_keys(status=\"Enabled\")\ndefault_cluster = alicloud.emrv2.Cluster(\"default\",\n    node_groups=[\n        {\n            \"vswitch_ids\": [default_get_switches.ids[0]],\n            \"instance_types\": [\"ecs.g6.xlarge\"],\n            \"node_count\": 1,\n            \"spot_instance_remedy\": False,\n            \"data_disks\": [{\n                \"count\": 3,\n                \"category\": \"cloud_essd\",\n                \"size\": 80,\n                \"performance_level\": \"PL0\",\n            }],\n            \"node_group_name\": \"emr-master\",\n            \"payment_type\": \"PayAsYouGo\",\n            \"with_public_ip\": False,\n            \"graceful_shutdown\": False,\n            \"system_disk\": {\n                \"category\": \"cloud_essd\",\n                \"size\": 80,\n                \"performance_level\": \"PL0\",\n                \"count\": 1,\n            },\n            \"node_group_type\": \"MASTER\",\n        },\n        {\n            \"spot_instance_remedy\": False,\n            \"node_group_type\": \"CORE\",\n            \"vswitch_ids\": [default_get_switches.ids[0]],\n            \"node_count\": 2,\n            \"graceful_shutdown\": False,\n            \"system_disk\": {\n                \"performance_level\": \"PL0\",\n                \"count\": 1,\n                \"category\": \"cloud_essd\",\n                \"size\": 80,\n            },\n            \"data_disks\": [{\n                \"count\": 3,\n                \"performance_level\": \"PL0\",\n                \"category\": \"cloud_essd\",\n                \"size\": 80,\n            }],\n            \"node_group_name\": \"emr-core\",\n            \"payment_type\": \"PayAsYouGo\",\n            \"instance_types\": [\"ecs.g6.xlarge\"],\n            \"with_public_ip\": False,\n        },\n    ],\n    deploy_mode=\"NORMAL\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    release_version=\"EMR-5.10.0\",\n    applications=[\n        \"HADOOP-COMMON\",\n        \"HDFS\",\n        \"YARN\",\n    ],\n    node_attributes=[{\n        \"zone_id\": \"cn-beijing-h\",\n        \"key_pair_name\": default_ecs_key_pair.id,\n        \"data_disk_encrypted\": True,\n        \"data_disk_kms_key_id\": default_get_keys.ids[0],\n        \"vpc_id\": default_get_networks.ids[0],\n        \"ram_role\": default_role.name,\n        \"security_group_id\": default_security_group.id,\n    }],\n    resource_group_id=default_get_resource_groups.ids[0],\n    cluster_name=name,\n    payment_type=\"PayAsYouGo\",\n    cluster_type=\"DATAFLOW\")\ndefault_zoepvx = alicloud.gpdb.Instance(\"defaultZoepvx\",\n    instance_spec=\"2C8G\",\n    description=name,\n    seg_node_num=2,\n    seg_storage_type=\"cloud_essd\",\n    instance_network_type=\"VPC\",\n    payment_type=\"PayAsYouGo\",\n    ssl_enabled=0,\n    engine_version=\"6.0\",\n    zone_id=\"cn-beijing-h\",\n    vswitch_id=default_get_switches.ids[0],\n    storage_size=50,\n    master_cu=4,\n    vpc_id=default_get_networks.ids[0],\n    db_instance_mode=\"StorageElastic\",\n    engine=\"gpdb\",\n    db_instance_category=\"Basic\")\ndefaulty_oxz1_k = alicloud.gpdb.ExternalDataService(\"defaultyOxz1K\",\n    service_name=name,\n    db_instance_id=default_zoepvx.id,\n    service_description=name,\n    service_spec=\"8\")\ndefault_hadoop_data_source = alicloud.gpdb.HadoopDataSource(\"default\",\n    hdfs_conf=\"aaa\",\n    data_source_name=defaulty_oxz1_k.service_name,\n    yarn_conf=\"aaa\",\n    hive_conf=\"aaa\",\n    hadoop_create_type=\"emr\",\n    data_source_description=name,\n    map_reduce_conf=\"aaa\",\n    data_source_type=\"hive\",\n    hadoop_core_conf=\"aaa\",\n    emr_instance_id=default_cluster.id,\n    db_instance_id=default_zoepvx.id,\n    hadoop_hosts_address=\"aaa\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = \"cn-beijing-h\",\n    });\n\n    var defaultEcsKeyPair = new AliCloud.Ecs.EcsKeyPair(\"default\", new()\n    {\n        KeyPairName = name,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = name,\n        Document = @\"    {\n        \\\"\"Statement\\\"\": [\n        {\n            \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n            \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n            \\\"\"Principal\\\"\": {\n            \\\"\"Service\\\"\": [\n                \\\"\"emr.aliyuncs.com\\\"\",\n                \\\"\"ecs.aliyuncs.com\\\"\"\n            ]\n            }\n        }\n        ],\n        \\\"\"Version\\\"\": \\\"\"1\\\"\"\n    }\n\",\n        Description = \"this is a role example.\",\n        Force = true,\n    });\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultGetKeys = AliCloud.Kms.GetKeys.Invoke(new()\n    {\n        Status = \"Enabled\",\n    });\n\n    var defaultCluster = new AliCloud.Emrv2.Cluster(\"default\", new()\n    {\n        NodeGroups = new[]\n        {\n            new AliCloud.Emrv2.Inputs.ClusterNodeGroupArgs\n            {\n                VswitchIds = new[]\n                {\n                    defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n                },\n                InstanceTypes = new[]\n                {\n                    \"ecs.g6.xlarge\",\n                },\n                NodeCount = 1,\n                SpotInstanceRemedy = false,\n                DataDisks = new[]\n                {\n                    new AliCloud.Emrv2.Inputs.ClusterNodeGroupDataDiskArgs\n                    {\n                        Count = 3,\n                        Category = \"cloud_essd\",\n                        Size = 80,\n                        PerformanceLevel = \"PL0\",\n                    },\n                },\n                NodeGroupName = \"emr-master\",\n                PaymentType = \"PayAsYouGo\",\n                WithPublicIp = false,\n                GracefulShutdown = false,\n                SystemDisk = new AliCloud.Emrv2.Inputs.ClusterNodeGroupSystemDiskArgs\n                {\n                    Category = \"cloud_essd\",\n                    Size = 80,\n                    PerformanceLevel = \"PL0\",\n                    Count = 1,\n                },\n                NodeGroupType = \"MASTER\",\n            },\n            new AliCloud.Emrv2.Inputs.ClusterNodeGroupArgs\n            {\n                SpotInstanceRemedy = false,\n                NodeGroupType = \"CORE\",\n                VswitchIds = new[]\n                {\n                    defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n                },\n                NodeCount = 2,\n                GracefulShutdown = false,\n                SystemDisk = new AliCloud.Emrv2.Inputs.ClusterNodeGroupSystemDiskArgs\n                {\n                    PerformanceLevel = \"PL0\",\n                    Count = 1,\n                    Category = \"cloud_essd\",\n                    Size = 80,\n                },\n                DataDisks = new[]\n                {\n                    new AliCloud.Emrv2.Inputs.ClusterNodeGroupDataDiskArgs\n                    {\n                        Count = 3,\n                        PerformanceLevel = \"PL0\",\n                        Category = \"cloud_essd\",\n                        Size = 80,\n                    },\n                },\n                NodeGroupName = \"emr-core\",\n                PaymentType = \"PayAsYouGo\",\n                InstanceTypes = new[]\n                {\n                    \"ecs.g6.xlarge\",\n                },\n                WithPublicIp = false,\n            },\n        },\n        DeployMode = \"NORMAL\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        ReleaseVersion = \"EMR-5.10.0\",\n        Applications = new[]\n        {\n            \"HADOOP-COMMON\",\n            \"HDFS\",\n            \"YARN\",\n        },\n        NodeAttributes = new[]\n        {\n            new AliCloud.Emrv2.Inputs.ClusterNodeAttributeArgs\n            {\n                ZoneId = \"cn-beijing-h\",\n                KeyPairName = defaultEcsKeyPair.Id,\n                DataDiskEncrypted = true,\n                DataDiskKmsKeyId = defaultGetKeys.Apply(getKeysResult =\u003e getKeysResult.Ids[0]),\n                VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n                RamRole = defaultRole.Name,\n                SecurityGroupId = defaultSecurityGroup.Id,\n            },\n        },\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0]),\n        ClusterName = name,\n        PaymentType = \"PayAsYouGo\",\n        ClusterType = \"DATAFLOW\",\n    });\n\n    var defaultZoepvx = new AliCloud.Gpdb.Instance(\"defaultZoepvx\", new()\n    {\n        InstanceSpec = \"2C8G\",\n        Description = name,\n        SegNodeNum = 2,\n        SegStorageType = \"cloud_essd\",\n        InstanceNetworkType = \"VPC\",\n        PaymentType = \"PayAsYouGo\",\n        SslEnabled = 0,\n        EngineVersion = \"6.0\",\n        ZoneId = \"cn-beijing-h\",\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        StorageSize = 50,\n        MasterCu = 4,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        DbInstanceMode = \"StorageElastic\",\n        Engine = \"gpdb\",\n        DbInstanceCategory = \"Basic\",\n    });\n\n    var defaultyOxz1K = new AliCloud.Gpdb.ExternalDataService(\"defaultyOxz1K\", new()\n    {\n        ServiceName = name,\n        DbInstanceId = defaultZoepvx.Id,\n        ServiceDescription = name,\n        ServiceSpec = \"8\",\n    });\n\n    var defaultHadoopDataSource = new AliCloud.Gpdb.HadoopDataSource(\"default\", new()\n    {\n        HdfsConf = \"aaa\",\n        DataSourceName = defaultyOxz1K.ServiceName,\n        YarnConf = \"aaa\",\n        HiveConf = \"aaa\",\n        HadoopCreateType = \"emr\",\n        DataSourceDescription = name,\n        MapReduceConf = \"aaa\",\n        DataSourceType = \"hive\",\n        HadoopCoreConf = \"aaa\",\n        EmrInstanceId = defaultCluster.Id,\n        DbInstanceId = defaultZoepvx.Id,\n        HadoopHostsAddress = \"aaa\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/emrv2\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(\"cn-beijing-h\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcsKeyPair, err := ecs.NewEcsKeyPair(ctx, \"default\", \u0026ecs.EcsKeyPairArgs{\n\t\t\tKeyPairName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.String(name),\n\t\t\tDocument: pulumi.String(`    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n`),\n\t\t\tDescription: pulumi.String(\"this is a role example.\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetKeys, err := kms.GetKeys(ctx, \u0026kms.GetKeysArgs{\n\t\t\tStatus: pulumi.StringRef(\"Enabled\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := emrv2.NewCluster(ctx, \"default\", \u0026emrv2.ClusterArgs{\n\t\t\tNodeGroups: emrv2.ClusterNodeGroupArray{\n\t\t\t\t\u0026emrv2.ClusterNodeGroupArgs{\n\t\t\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\t\t\t},\n\t\t\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ecs.g6.xlarge\"),\n\t\t\t\t\t},\n\t\t\t\t\tNodeCount:          pulumi.Int(1),\n\t\t\t\t\tSpotInstanceRemedy: pulumi.Bool(false),\n\t\t\t\t\tDataDisks: emrv2.ClusterNodeGroupDataDiskArray{\n\t\t\t\t\t\t\u0026emrv2.ClusterNodeGroupDataDiskArgs{\n\t\t\t\t\t\t\tCount:            pulumi.Int(3),\n\t\t\t\t\t\t\tCategory:         pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\t\tSize:             pulumi.Int(80),\n\t\t\t\t\t\t\tPerformanceLevel: pulumi.String(\"PL0\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tNodeGroupName:    pulumi.String(\"emr-master\"),\n\t\t\t\t\tPaymentType:      pulumi.String(\"PayAsYouGo\"),\n\t\t\t\t\tWithPublicIp:     pulumi.Bool(false),\n\t\t\t\t\tGracefulShutdown: pulumi.Bool(false),\n\t\t\t\t\tSystemDisk: \u0026emrv2.ClusterNodeGroupSystemDiskArgs{\n\t\t\t\t\t\tCategory:         pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\tSize:             pulumi.Int(80),\n\t\t\t\t\t\tPerformanceLevel: pulumi.String(\"PL0\"),\n\t\t\t\t\t\tCount:            pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t\tNodeGroupType: pulumi.String(\"MASTER\"),\n\t\t\t\t},\n\t\t\t\t\u0026emrv2.ClusterNodeGroupArgs{\n\t\t\t\t\tSpotInstanceRemedy: pulumi.Bool(false),\n\t\t\t\t\tNodeGroupType:      pulumi.String(\"CORE\"),\n\t\t\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\t\t\t},\n\t\t\t\t\tNodeCount:        pulumi.Int(2),\n\t\t\t\t\tGracefulShutdown: pulumi.Bool(false),\n\t\t\t\t\tSystemDisk: \u0026emrv2.ClusterNodeGroupSystemDiskArgs{\n\t\t\t\t\t\tPerformanceLevel: pulumi.String(\"PL0\"),\n\t\t\t\t\t\tCount:            pulumi.Int(1),\n\t\t\t\t\t\tCategory:         pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\tSize:             pulumi.Int(80),\n\t\t\t\t\t},\n\t\t\t\t\tDataDisks: emrv2.ClusterNodeGroupDataDiskArray{\n\t\t\t\t\t\t\u0026emrv2.ClusterNodeGroupDataDiskArgs{\n\t\t\t\t\t\t\tCount:            pulumi.Int(3),\n\t\t\t\t\t\t\tPerformanceLevel: pulumi.String(\"PL0\"),\n\t\t\t\t\t\t\tCategory:         pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\t\tSize:             pulumi.Int(80),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tNodeGroupName: pulumi.String(\"emr-core\"),\n\t\t\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ecs.g6.xlarge\"),\n\t\t\t\t\t},\n\t\t\t\t\tWithPublicIp: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeployMode: pulumi.String(\"NORMAL\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tReleaseVersion: pulumi.String(\"EMR-5.10.0\"),\n\t\t\tApplications: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"HADOOP-COMMON\"),\n\t\t\t\tpulumi.String(\"HDFS\"),\n\t\t\t\tpulumi.String(\"YARN\"),\n\t\t\t},\n\t\t\tNodeAttributes: emrv2.ClusterNodeAttributeArray{\n\t\t\t\t\u0026emrv2.ClusterNodeAttributeArgs{\n\t\t\t\t\tZoneId:            pulumi.String(\"cn-beijing-h\"),\n\t\t\t\t\tKeyPairName:       defaultEcsKeyPair.ID(),\n\t\t\t\t\tDataDiskEncrypted: pulumi.Bool(true),\n\t\t\t\t\tDataDiskKmsKeyId:  pulumi.String(defaultGetKeys.Ids[0]),\n\t\t\t\t\tVpcId:             pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\t\t\tRamRole:           defaultRole.Name,\n\t\t\t\t\tSecurityGroupId:   defaultSecurityGroup.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Ids[0]),\n\t\t\tClusterName:     pulumi.String(name),\n\t\t\tPaymentType:     pulumi.String(\"PayAsYouGo\"),\n\t\t\tClusterType:     pulumi.String(\"DATAFLOW\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultZoepvx, err := gpdb.NewInstance(ctx, \"defaultZoepvx\", \u0026gpdb.InstanceArgs{\n\t\t\tInstanceSpec:        pulumi.String(\"2C8G\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tSegNodeNum:          pulumi.Int(2),\n\t\t\tSegStorageType:      pulumi.String(\"cloud_essd\"),\n\t\t\tInstanceNetworkType: pulumi.String(\"VPC\"),\n\t\t\tPaymentType:         pulumi.String(\"PayAsYouGo\"),\n\t\t\tSslEnabled:          pulumi.Int(0),\n\t\t\tEngineVersion:       pulumi.String(\"6.0\"),\n\t\t\tZoneId:              pulumi.String(\"cn-beijing-h\"),\n\t\t\tVswitchId:           pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tStorageSize:         pulumi.Int(50),\n\t\t\tMasterCu:            pulumi.Int(4),\n\t\t\tVpcId:               pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tDbInstanceMode:      pulumi.String(\"StorageElastic\"),\n\t\t\tEngine:              pulumi.String(\"gpdb\"),\n\t\t\tDbInstanceCategory:  pulumi.String(\"Basic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultyOxz1K, err := gpdb.NewExternalDataService(ctx, \"defaultyOxz1K\", \u0026gpdb.ExternalDataServiceArgs{\n\t\t\tServiceName:        pulumi.String(name),\n\t\t\tDbInstanceId:       defaultZoepvx.ID(),\n\t\t\tServiceDescription: pulumi.String(name),\n\t\t\tServiceSpec:        pulumi.String(\"8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gpdb.NewHadoopDataSource(ctx, \"default\", \u0026gpdb.HadoopDataSourceArgs{\n\t\t\tHdfsConf:              pulumi.String(\"aaa\"),\n\t\t\tDataSourceName:        defaultyOxz1K.ServiceName,\n\t\t\tYarnConf:              pulumi.String(\"aaa\"),\n\t\t\tHiveConf:              pulumi.String(\"aaa\"),\n\t\t\tHadoopCreateType:      pulumi.String(\"emr\"),\n\t\t\tDataSourceDescription: pulumi.String(name),\n\t\t\tMapReduceConf:         pulumi.String(\"aaa\"),\n\t\t\tDataSourceType:        pulumi.String(\"hive\"),\n\t\t\tHadoopCoreConf:        pulumi.String(\"aaa\"),\n\t\t\tEmrInstanceId:         defaultCluster.ID(),\n\t\t\tDbInstanceId:          defaultZoepvx.ID(),\n\t\t\tHadoopHostsAddress:    pulumi.String(\"aaa\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.EcsKeyPair;\nimport com.pulumi.alicloud.ecs.EcsKeyPairArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.kms.KmsFunctions;\nimport com.pulumi.alicloud.kms.inputs.GetKeysArgs;\nimport com.pulumi.alicloud.emrv2.Cluster;\nimport com.pulumi.alicloud.emrv2.ClusterArgs;\nimport com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupArgs;\nimport com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupSystemDiskArgs;\nimport com.pulumi.alicloud.emrv2.inputs.ClusterNodeAttributeArgs;\nimport com.pulumi.alicloud.gpdb.Instance;\nimport com.pulumi.alicloud.gpdb.InstanceArgs;\nimport com.pulumi.alicloud.gpdb.ExternalDataService;\nimport com.pulumi.alicloud.gpdb.ExternalDataServiceArgs;\nimport com.pulumi.alicloud.gpdb.HadoopDataSource;\nimport com.pulumi.alicloud.gpdb.HadoopDataSourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(\"cn-beijing-h\")\n            .build());\n\n        var defaultEcsKeyPair = new EcsKeyPair(\"defaultEcsKeyPair\", EcsKeyPairArgs.builder()\n            .keyPairName(name)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .name(name)\n            .document(\"\"\"\n    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n            \"\"\")\n            .description(\"this is a role example.\")\n            .force(true)\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        final var defaultGetKeys = KmsFunctions.getKeys(GetKeysArgs.builder()\n            .status(\"Enabled\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .nodeGroups(            \n                ClusterNodeGroupArgs.builder()\n                    .vswitchIds(defaultGetSwitches.ids()[0])\n                    .instanceTypes(\"ecs.g6.xlarge\")\n                    .nodeCount(1)\n                    .spotInstanceRemedy(false)\n                    .dataDisks(ClusterNodeGroupDataDiskArgs.builder()\n                        .count(3)\n                        .category(\"cloud_essd\")\n                        .size(80)\n                        .performanceLevel(\"PL0\")\n                        .build())\n                    .nodeGroupName(\"emr-master\")\n                    .paymentType(\"PayAsYouGo\")\n                    .withPublicIp(false)\n                    .gracefulShutdown(false)\n                    .systemDisk(ClusterNodeGroupSystemDiskArgs.builder()\n                        .category(\"cloud_essd\")\n                        .size(80)\n                        .performanceLevel(\"PL0\")\n                        .count(1)\n                        .build())\n                    .nodeGroupType(\"MASTER\")\n                    .build(),\n                ClusterNodeGroupArgs.builder()\n                    .spotInstanceRemedy(false)\n                    .nodeGroupType(\"CORE\")\n                    .vswitchIds(defaultGetSwitches.ids()[0])\n                    .nodeCount(2)\n                    .gracefulShutdown(false)\n                    .systemDisk(ClusterNodeGroupSystemDiskArgs.builder()\n                        .performanceLevel(\"PL0\")\n                        .count(1)\n                        .category(\"cloud_essd\")\n                        .size(80)\n                        .build())\n                    .dataDisks(ClusterNodeGroupDataDiskArgs.builder()\n                        .count(3)\n                        .performanceLevel(\"PL0\")\n                        .category(\"cloud_essd\")\n                        .size(80)\n                        .build())\n                    .nodeGroupName(\"emr-core\")\n                    .paymentType(\"PayAsYouGo\")\n                    .instanceTypes(\"ecs.g6.xlarge\")\n                    .withPublicIp(false)\n                    .build())\n            .deployMode(\"NORMAL\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .releaseVersion(\"EMR-5.10.0\")\n            .applications(            \n                \"HADOOP-COMMON\",\n                \"HDFS\",\n                \"YARN\")\n            .nodeAttributes(ClusterNodeAttributeArgs.builder()\n                .zoneId(\"cn-beijing-h\")\n                .keyPairName(defaultEcsKeyPair.id())\n                .dataDiskEncrypted(true)\n                .dataDiskKmsKeyId(defaultGetKeys.ids()[0])\n                .vpcId(defaultGetNetworks.ids()[0])\n                .ramRole(defaultRole.name())\n                .securityGroupId(defaultSecurityGroup.id())\n                .build())\n            .resourceGroupId(defaultGetResourceGroups.ids()[0])\n            .clusterName(name)\n            .paymentType(\"PayAsYouGo\")\n            .clusterType(\"DATAFLOW\")\n            .build());\n\n        var defaultZoepvx = new Instance(\"defaultZoepvx\", InstanceArgs.builder()\n            .instanceSpec(\"2C8G\")\n            .description(name)\n            .segNodeNum(2)\n            .segStorageType(\"cloud_essd\")\n            .instanceNetworkType(\"VPC\")\n            .paymentType(\"PayAsYouGo\")\n            .sslEnabled(0)\n            .engineVersion(\"6.0\")\n            .zoneId(\"cn-beijing-h\")\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .storageSize(50)\n            .masterCu(4)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .dbInstanceMode(\"StorageElastic\")\n            .engine(\"gpdb\")\n            .dbInstanceCategory(\"Basic\")\n            .build());\n\n        var defaultyOxz1K = new ExternalDataService(\"defaultyOxz1K\", ExternalDataServiceArgs.builder()\n            .serviceName(name)\n            .dbInstanceId(defaultZoepvx.id())\n            .serviceDescription(name)\n            .serviceSpec(\"8\")\n            .build());\n\n        var defaultHadoopDataSource = new HadoopDataSource(\"defaultHadoopDataSource\", HadoopDataSourceArgs.builder()\n            .hdfsConf(\"aaa\")\n            .dataSourceName(defaultyOxz1K.serviceName())\n            .yarnConf(\"aaa\")\n            .hiveConf(\"aaa\")\n            .hadoopCreateType(\"emr\")\n            .dataSourceDescription(name)\n            .mapReduceConf(\"aaa\")\n            .dataSourceType(\"hive\")\n            .hadoopCoreConf(\"aaa\")\n            .emrInstanceId(defaultCluster.id())\n            .dbInstanceId(defaultZoepvx.id())\n            .hadoopHostsAddress(\"aaa\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultEcsKeyPair:\n    type: alicloud:ecs:EcsKeyPair\n    name: default\n    properties:\n      keyPairName: ${name}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultGetNetworks.ids[0]}\n  defaultRole:\n    type: alicloud:ram:Role\n    name: default\n    properties:\n      name: ${name}\n      document: |2\n            {\n                \\\"Statement\\\": [\n                {\n                    \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                    \\\"Effect\\\": \\\"Allow\\\",\n                    \\\"Principal\\\": {\n                    \\\"Service\\\": [\n                        \\\"emr.aliyuncs.com\\\",\n                        \\\"ecs.aliyuncs.com\\\"\n                    ]\n                    }\n                }\n                ],\n                \\\"Version\\\": \\\"1\\\"\n            }\n      description: this is a role example.\n      force: true\n  defaultCluster:\n    type: alicloud:emrv2:Cluster\n    name: default\n    properties:\n      nodeGroups:\n        - vswitchIds:\n            - ${defaultGetSwitches.ids[0]}\n          instanceTypes:\n            - ecs.g6.xlarge\n          nodeCount: '1'\n          spotInstanceRemedy: 'false'\n          dataDisks:\n            - count: '3'\n              category: cloud_essd\n              size: '80'\n              performanceLevel: PL0\n          nodeGroupName: emr-master\n          paymentType: PayAsYouGo\n          withPublicIp: 'false'\n          gracefulShutdown: 'false'\n          systemDisk:\n            category: cloud_essd\n            size: '80'\n            performanceLevel: PL0\n            count: '1'\n          nodeGroupType: MASTER\n        - spotInstanceRemedy: 'false'\n          nodeGroupType: CORE\n          vswitchIds:\n            - ${defaultGetSwitches.ids[0]}\n          nodeCount: '2'\n          gracefulShutdown: 'false'\n          systemDisk:\n            performanceLevel: PL0\n            count: '1'\n            category: cloud_essd\n            size: '80'\n          dataDisks:\n            - count: '3'\n              performanceLevel: PL0\n              category: cloud_essd\n              size: '80'\n          nodeGroupName: emr-core\n          paymentType: PayAsYouGo\n          instanceTypes:\n            - ecs.g6.xlarge\n          withPublicIp: 'false'\n      deployMode: NORMAL\n      tags:\n        Created: TF\n        For: example\n      releaseVersion: EMR-5.10.0\n      applications:\n        - HADOOP-COMMON\n        - HDFS\n        - YARN\n      nodeAttributes:\n        - zoneId: cn-beijing-h\n          keyPairName: ${defaultEcsKeyPair.id}\n          dataDiskEncrypted: 'true'\n          dataDiskKmsKeyId: ${defaultGetKeys.ids[0]}\n          vpcId: ${defaultGetNetworks.ids[0]}\n          ramRole: ${defaultRole.name}\n          securityGroupId: ${defaultSecurityGroup.id}\n      resourceGroupId: ${defaultGetResourceGroups.ids[0]}\n      clusterName: ${name}\n      paymentType: PayAsYouGo\n      clusterType: DATAFLOW\n  defaultZoepvx:\n    type: alicloud:gpdb:Instance\n    properties:\n      instanceSpec: 2C8G\n      description: ${name}\n      segNodeNum: '2'\n      segStorageType: cloud_essd\n      instanceNetworkType: VPC\n      paymentType: PayAsYouGo\n      sslEnabled: '0'\n      engineVersion: '6.0'\n      zoneId: cn-beijing-h\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      storageSize: '50'\n      masterCu: '4'\n      vpcId: ${defaultGetNetworks.ids[0]}\n      dbInstanceMode: StorageElastic\n      engine: gpdb\n      dbInstanceCategory: Basic\n  defaultyOxz1K:\n    type: alicloud:gpdb:ExternalDataService\n    properties:\n      serviceName: ${name}\n      dbInstanceId: ${defaultZoepvx.id}\n      serviceDescription: ${name}\n      serviceSpec: '8'\n  defaultHadoopDataSource:\n    type: alicloud:gpdb:HadoopDataSource\n    name: default\n    properties:\n      hdfsConf: aaa\n      dataSourceName: ${defaultyOxz1K.serviceName}\n      yarnConf: aaa\n      hiveConf: aaa\n      hadoopCreateType: emr\n      dataSourceDescription: ${name}\n      mapReduceConf: aaa\n      dataSourceType: hive\n      hadoopCoreConf: aaa\n      emrInstanceId: ${defaultCluster.id}\n      dbInstanceId: ${defaultZoepvx.id}\n      hadoopHostsAddress: aaa\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: cn-beijing-h\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n  defaultGetKeys:\n    fn::invoke:\n      function: alicloud:kms:getKeys\n      arguments:\n        status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGPDB Hadoop Data Source can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/hadoopDataSource:HadoopDataSource example \u003cdb_instance_id\u003e:\u003cdata_source_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"Creation time\n"},"dataSourceDescription":{"type":"string","description":"Data Source Description\n"},"dataSourceId":{"type":"integer","description":"The data source ID.\n"},"dataSourceName":{"type":"string","description":"Data Source Name\n"},"dataSourceType":{"type":"string","description":"The type of the data source. Valid values:\n\n*   mysql\n- postgresql\n\n*   hdfs\n- hive\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n"},"emrInstanceId":{"type":"string","description":"The ID of the Emr instance.\n"},"hadoopCoreConf":{"type":"string","description":"The string that specifies the content of the Hadoop core-site.xml file.\n"},"hadoopCreateType":{"type":"string","description":"The type of the external service. Valid values:\n- emr: E-MapReduce (EMR) Hadoop cluster.\n- selfCreate: self-managed Hadoop cluster.\n"},"hadoopHostsAddress":{"type":"string","description":"The IP address and hostname of the Hadoop cluster (data source) in the /etc/hosts file.\n"},"hdfsConf":{"type":"string","description":"The string that specifies the content of the Hadoop hdfs-site.xml file. This parameter must be specified when DataSourceType is set to HDFS.\n"},"hiveConf":{"type":"string","description":"The string that specifies the content of the Hadoop hive-site.xml file. This parameter must be specified when DataSourceType is set to Hive.\n"},"mapReduceConf":{"type":"string","description":"The content of the Hadoop mapred-site.xml file. This parameter must be specified when DataSourceType is set to HDFS.\n"},"status":{"type":"string","description":"Data Source Status\n"},"yarnConf":{"type":"string","description":"The string that specifies the content of the Hadoop yarn-site.xml file. This parameter must be specified when DataSourceType is set to HDFS.\n"}},"required":["createTime","dataSourceId","dbInstanceId","status"],"inputProperties":{"dataSourceDescription":{"type":"string","description":"Data Source Description\n"},"dataSourceName":{"type":"string","description":"Data Source Name\n","willReplaceOnChanges":true},"dataSourceType":{"type":"string","description":"The type of the data source. Valid values:\n\n*   mysql\n- postgresql\n\n*   hdfs\n- hive\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"emrInstanceId":{"type":"string","description":"The ID of the Emr instance.\n"},"hadoopCoreConf":{"type":"string","description":"The string that specifies the content of the Hadoop core-site.xml file.\n"},"hadoopCreateType":{"type":"string","description":"The type of the external service. Valid values:\n- emr: E-MapReduce (EMR) Hadoop cluster.\n- selfCreate: self-managed Hadoop cluster.\n"},"hadoopHostsAddress":{"type":"string","description":"The IP address and hostname of the Hadoop cluster (data source) in the /etc/hosts file.\n"},"hdfsConf":{"type":"string","description":"The string that specifies the content of the Hadoop hdfs-site.xml file. This parameter must be specified when DataSourceType is set to HDFS.\n"},"hiveConf":{"type":"string","description":"The string that specifies the content of the Hadoop hive-site.xml file. This parameter must be specified when DataSourceType is set to Hive.\n"},"mapReduceConf":{"type":"string","description":"The content of the Hadoop mapred-site.xml file. This parameter must be specified when DataSourceType is set to HDFS.\n"},"yarnConf":{"type":"string","description":"The string that specifies the content of the Hadoop yarn-site.xml file. This parameter must be specified when DataSourceType is set to HDFS.\n"}},"requiredInputs":["dbInstanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering HadoopDataSource resources.\n","properties":{"createTime":{"type":"string","description":"Creation time\n"},"dataSourceDescription":{"type":"string","description":"Data Source Description\n"},"dataSourceId":{"type":"integer","description":"The data source ID.\n"},"dataSourceName":{"type":"string","description":"Data Source Name\n","willReplaceOnChanges":true},"dataSourceType":{"type":"string","description":"The type of the data source. Valid values:\n\n*   mysql\n- postgresql\n\n*   hdfs\n- hive\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"emrInstanceId":{"type":"string","description":"The ID of the Emr instance.\n"},"hadoopCoreConf":{"type":"string","description":"The string that specifies the content of the Hadoop core-site.xml file.\n"},"hadoopCreateType":{"type":"string","description":"The type of the external service. Valid values:\n- emr: E-MapReduce (EMR) Hadoop cluster.\n- selfCreate: self-managed Hadoop cluster.\n"},"hadoopHostsAddress":{"type":"string","description":"The IP address and hostname of the Hadoop cluster (data source) in the /etc/hosts file.\n"},"hdfsConf":{"type":"string","description":"The string that specifies the content of the Hadoop hdfs-site.xml file. This parameter must be specified when DataSourceType is set to HDFS.\n"},"hiveConf":{"type":"string","description":"The string that specifies the content of the Hadoop hive-site.xml file. This parameter must be specified when DataSourceType is set to Hive.\n"},"mapReduceConf":{"type":"string","description":"The content of the Hadoop mapred-site.xml file. This parameter must be specified when DataSourceType is set to HDFS.\n"},"status":{"type":"string","description":"Data Source Status\n"},"yarnConf":{"type":"string","description":"The string that specifies the content of the Hadoop yarn-site.xml file. This parameter must be specified when DataSourceType is set to HDFS.\n"}},"type":"object"}},"alicloud:gpdb/instance:Instance":{"description":"Provides a AnalyticDB for PostgreSQL instance resource supports replica set instances only. the AnalyticDB for PostgreSQL provides stable, reliable, and automatic scalable database services.\nYou can see detail product introduction [here](https://www.alibabacloud.com/help/en/analyticdb-for-postgresql/latest/api-gpdb-2016-05-03-createdbinstance)\n\n\u003e **NOTE:** Available since v1.47.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultGetZones = alicloud.gpdb.getZones({});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, defaultGetZones]).then(([defaultGetNetworks, defaultGetZones]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: defaultGetZones.ids?.[0],\n}));\nconst defaultInstance = new alicloud.gpdb.Instance(\"default\", {\n    dbInstanceCategory: \"HighAvailability\",\n    dbInstanceClass: \"gpdb.group.segsdx1\",\n    dbInstanceMode: \"StorageElastic\",\n    description: name,\n    engine: \"gpdb\",\n    engineVersion: \"6.0\",\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.ids?.[0]),\n    instanceNetworkType: \"VPC\",\n    instanceSpec: \"2C16G\",\n    paymentType: \"PayAsYouGo\",\n    segStorageType: \"cloud_essd\",\n    segNodeNum: 4,\n    storageSize: 50,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    ipWhitelists: [{\n        securityIpList: \"127.0.0.1\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_get_zones = alicloud.gpdb.get_zones()\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default_get_zones.ids[0])\ndefault_instance = alicloud.gpdb.Instance(\"default\",\n    db_instance_category=\"HighAvailability\",\n    db_instance_class=\"gpdb.group.segsdx1\",\n    db_instance_mode=\"StorageElastic\",\n    description=name,\n    engine=\"gpdb\",\n    engine_version=\"6.0\",\n    zone_id=default_get_zones.ids[0],\n    instance_network_type=\"VPC\",\n    instance_spec=\"2C16G\",\n    payment_type=\"PayAsYouGo\",\n    seg_storage_type=\"cloud_essd\",\n    seg_node_num=4,\n    storage_size=50,\n    vpc_id=default_get_networks.ids[0],\n    vswitch_id=default_get_switches.ids[0],\n    ip_whitelists=[{\n        \"security_ip_list\": \"127.0.0.1\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultGetZones = AliCloud.Gpdb.GetZones.Invoke();\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.Gpdb.Instance(\"default\", new()\n    {\n        DbInstanceCategory = \"HighAvailability\",\n        DbInstanceClass = \"gpdb.group.segsdx1\",\n        DbInstanceMode = \"StorageElastic\",\n        Description = name,\n        Engine = \"gpdb\",\n        EngineVersion = \"6.0\",\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n        InstanceNetworkType = \"VPC\",\n        InstanceSpec = \"2C16G\",\n        PaymentType = \"PayAsYouGo\",\n        SegStorageType = \"cloud_essd\",\n        SegNodeNum = 4,\n        StorageSize = 50,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        IpWhitelists = new[]\n        {\n            new AliCloud.Gpdb.Inputs.InstanceIpWhitelistArgs\n            {\n                SecurityIpList = \"127.0.0.1\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := gpdb.GetZones(ctx, \u0026gpdb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(defaultGetZones.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gpdb.NewInstance(ctx, \"default\", \u0026gpdb.InstanceArgs{\n\t\t\tDbInstanceCategory:  pulumi.String(\"HighAvailability\"),\n\t\t\tDbInstanceClass:     pulumi.String(\"gpdb.group.segsdx1\"),\n\t\t\tDbInstanceMode:      pulumi.String(\"StorageElastic\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tEngine:              pulumi.String(\"gpdb\"),\n\t\t\tEngineVersion:       pulumi.String(\"6.0\"),\n\t\t\tZoneId:              pulumi.String(defaultGetZones.Ids[0]),\n\t\t\tInstanceNetworkType: pulumi.String(\"VPC\"),\n\t\t\tInstanceSpec:        pulumi.String(\"2C16G\"),\n\t\t\tPaymentType:         pulumi.String(\"PayAsYouGo\"),\n\t\t\tSegStorageType:      pulumi.String(\"cloud_essd\"),\n\t\t\tSegNodeNum:          pulumi.Int(4),\n\t\t\tStorageSize:         pulumi.Int(50),\n\t\t\tVpcId:               pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tVswitchId:           pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tIpWhitelists: gpdb.InstanceIpWhitelistArray{\n\t\t\t\t\u0026gpdb.InstanceIpWhitelistArgs{\n\t\t\t\t\tSecurityIpList: pulumi.String(\"127.0.0.1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.gpdb.GpdbFunctions;\nimport com.pulumi.alicloud.gpdb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.gpdb.Instance;\nimport com.pulumi.alicloud.gpdb.InstanceArgs;\nimport com.pulumi.alicloud.gpdb.inputs.InstanceIpWhitelistArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var defaultGetZones = GpdbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(defaultGetZones.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .dbInstanceCategory(\"HighAvailability\")\n            .dbInstanceClass(\"gpdb.group.segsdx1\")\n            .dbInstanceMode(\"StorageElastic\")\n            .description(name)\n            .engine(\"gpdb\")\n            .engineVersion(\"6.0\")\n            .zoneId(defaultGetZones.ids()[0])\n            .instanceNetworkType(\"VPC\")\n            .instanceSpec(\"2C16G\")\n            .paymentType(\"PayAsYouGo\")\n            .segStorageType(\"cloud_essd\")\n            .segNodeNum(4)\n            .storageSize(50)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .ipWhitelists(InstanceIpWhitelistArgs.builder()\n                .securityIpList(\"127.0.0.1\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInstance:\n    type: alicloud:gpdb:Instance\n    name: default\n    properties:\n      dbInstanceCategory: HighAvailability\n      dbInstanceClass: gpdb.group.segsdx1\n      dbInstanceMode: StorageElastic\n      description: ${name}\n      engine: gpdb\n      engineVersion: '6.0'\n      zoneId: ${defaultGetZones.ids[0]}\n      instanceNetworkType: VPC\n      instanceSpec: 2C16G\n      paymentType: PayAsYouGo\n      segStorageType: cloud_essd\n      segNodeNum: 4\n      storageSize: 50\n      vpcId: ${defaultGetNetworks.ids[0]}\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      ipWhitelists:\n        - securityIpList: 127.0.0.1\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:gpdb:getZones\n      arguments: {}\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${defaultGetZones.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAnalyticDB for PostgreSQL can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"availabilityZone":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.187.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'availability_zone' has been deprecated from version 1.187.0. Use 'zone_id' instead."},"connectionString":{"type":"string","description":"(Available since v1.196.0) The connection string of the instance.\n"},"createSampleData":{"type":"boolean","description":"Whether to load the sample dataset after the instance is created. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dataShareStatus":{"type":"string","description":"Specifies whether to enable or disable data sharing. Default value: \u003cspan pulumi-lang-nodejs=\"`closed`\" pulumi-lang-dotnet=\"`Closed`\" pulumi-lang-go=\"`closed`\" pulumi-lang-python=\"`closed`\" pulumi-lang-yaml=\"`closed`\" pulumi-lang-java=\"`closed`\"\u003e`closed`\u003c/span\u003e. Valid values:\n"},"dbInstanceCategory":{"type":"string","description":"The db instance category. Valid values: `Basic`, `HighAvailability`.\n\u003e **NOTE:** This parameter must be passed in to create a storage reservation mode instance.\n"},"dbInstanceClass":{"type":"string","description":"The db instance class. see [Instance specifications](https://www.alibabacloud.com/help/en/analyticdb-for-postgresql/latest/instance-types).\n\u003e **NOTE:** This parameter must be passed in to create a storage reservation mode instance.\n"},"dbInstanceMode":{"type":"string","description":"The db instance mode. Valid values: `StorageElastic`, `Serverless`, `Classic`.\n"},"description":{"type":"string","description":"The description of the instance.\n"},"encryptionKey":{"type":"string","description":"The ID of the encryption key.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`encryptionType`\" pulumi-lang-dotnet=\"`EncryptionType`\" pulumi-lang-go=\"`encryptionType`\" pulumi-lang-python=\"`encryption_type`\" pulumi-lang-yaml=\"`encryptionType`\" pulumi-lang-java=\"`encryptionType`\"\u003e`encryption_type`\u003c/span\u003e is set to `CloudDisk`, you must specify an encryption key that resides in the same region as the cloud disk that is specified by EncryptionType. Otherwise, leave this parameter empty.\n"},"encryptionType":{"type":"string","description":"The encryption type. Valid values: `CloudDisk`.\n\u003e **NOTE:** Disk encryption cannot be disabled after it is enabled.\n"},"engine":{"type":"string","description":"The database engine used by the instance. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/en/analyticdb-for-postgresql/latest/api-gpdb-2016-05-03-createdbinstance) `EngineVersion`.\n"},"engineVersion":{"type":"string","description":"The version of the database engine used by the instance.\n"},"instanceChargeType":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e has been deprecated from provider version 1.187.0. New field \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e has been deprecated from version 1.187.0. Use \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead."},"instanceGroupCount":{"type":"integer","description":"The number of nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\"\u003e`16`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`96`\" pulumi-lang-dotnet=\"`96`\" pulumi-lang-go=\"`96`\" pulumi-lang-python=\"`96`\" pulumi-lang-yaml=\"`96`\" pulumi-lang-java=\"`96`\"\u003e`96`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e.\n"},"instanceNetworkType":{"type":"string","description":"The network type of the instance. Valid values: `VPC`.\n"},"instanceSpec":{"type":"string","description":"The specification of segment nodes. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`dbInstanceCategory`\" pulumi-lang-dotnet=\"`DbInstanceCategory`\" pulumi-lang-go=\"`dbInstanceCategory`\" pulumi-lang-python=\"`db_instance_category`\" pulumi-lang-yaml=\"`dbInstanceCategory`\" pulumi-lang-java=\"`dbInstanceCategory`\"\u003e`db_instance_category`\u003c/span\u003e is set to `HighAvailability`, and \u003cspan pulumi-lang-nodejs=\"`dbInstanceMode`\" pulumi-lang-dotnet=\"`DbInstanceMode`\" pulumi-lang-go=\"`dbInstanceMode`\" pulumi-lang-python=\"`db_instance_mode`\" pulumi-lang-yaml=\"`dbInstanceMode`\" pulumi-lang-java=\"`dbInstanceMode`\"\u003e`db_instance_mode`\u003c/span\u003e is set to `StorageElastic`. Valid values: `2C16G`, `4C32G`, `16C128G`.\n- If \u003cspan pulumi-lang-nodejs=\"`dbInstanceCategory`\" pulumi-lang-dotnet=\"`DbInstanceCategory`\" pulumi-lang-go=\"`dbInstanceCategory`\" pulumi-lang-python=\"`db_instance_category`\" pulumi-lang-yaml=\"`dbInstanceCategory`\" pulumi-lang-java=\"`dbInstanceCategory`\"\u003e`db_instance_category`\u003c/span\u003e is set to `Basic`, and \u003cspan pulumi-lang-nodejs=\"`dbInstanceMode`\" pulumi-lang-dotnet=\"`DbInstanceMode`\" pulumi-lang-go=\"`dbInstanceMode`\" pulumi-lang-python=\"`db_instance_mode`\" pulumi-lang-yaml=\"`dbInstanceMode`\" pulumi-lang-java=\"`dbInstanceMode`\"\u003e`db_instance_mode`\u003c/span\u003e is set to `StorageElastic`. Valid values: `2C8G`, `4C16G`, `8C32G`, `16C64G`.\n- If \u003cspan pulumi-lang-nodejs=\"`dbInstanceMode`\" pulumi-lang-dotnet=\"`DbInstanceMode`\" pulumi-lang-go=\"`dbInstanceMode`\" pulumi-lang-python=\"`db_instance_mode`\" pulumi-lang-yaml=\"`dbInstanceMode`\" pulumi-lang-java=\"`dbInstanceMode`\"\u003e`db_instance_mode`\u003c/span\u003e is set to `Serverless`. Valid values: `4C16G`, `8C32G`.\n\u003e **NOTE:** This parameter must be passed to create a storage elastic mode instance and a serverless version instance.\n"},"ipWhitelists":{"type":"array","items":{"$ref":"#/types/alicloud:gpdb/InstanceIpWhitelist:InstanceIpWhitelist"},"description":"The ip whitelist. See \u003cspan pulumi-lang-nodejs=\"`ipWhitelist`\" pulumi-lang-dotnet=\"`IpWhitelist`\" pulumi-lang-go=\"`ipWhitelist`\" pulumi-lang-python=\"`ip_whitelist`\" pulumi-lang-yaml=\"`ipWhitelist`\" pulumi-lang-java=\"`ipWhitelist`\"\u003e`ip_whitelist`\u003c/span\u003e below.\nDefault to creating a whitelist group with the group name \"default\" and\u003cspan pulumi-lang-nodejs=\" securityIpList \" pulumi-lang-dotnet=\" SecurityIpList \" pulumi-lang-go=\" securityIpList \" pulumi-lang-python=\" security_ip_list \" pulumi-lang-yaml=\" securityIpList \" pulumi-lang-java=\" securityIpList \"\u003e security_ip_list \u003c/span\u003e\"127.0.0.1\".\n"},"maintainEndTime":{"type":"string","description":"The end time of the maintenance window for the instance. in the format of HH:mmZ (UTC time), for example 03:00Z. start time should be later than end time.\n"},"maintainStartTime":{"type":"string","description":"The start time of the maintenance window for the instance. in the format of HH:mmZ (UTC time), for example 02:00Z.\n"},"masterCu":{"type":"integer","description":"The amount of coordinator node resources. Valid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\"\u003e`16`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e.\n"},"masterNodeNum":{"type":"integer","description":"The number of Master nodes. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`masterNodeNum`\" pulumi-lang-dotnet=\"`MasterNodeNum`\" pulumi-lang-go=\"`masterNodeNum`\" pulumi-lang-python=\"`master_node_num`\" pulumi-lang-yaml=\"`masterNodeNum`\" pulumi-lang-java=\"`masterNodeNum`\"\u003e`master_node_num`\u003c/span\u003e has been deprecated from provider version 1.213.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`masterNodeNum`\" pulumi-lang-dotnet=\"`MasterNodeNum`\" pulumi-lang-go=\"`masterNodeNum`\" pulumi-lang-python=\"`master_node_num`\" pulumi-lang-yaml=\"`masterNodeNum`\" pulumi-lang-java=\"`masterNodeNum`\"\u003e`master_node_num`\u003c/span\u003e has been deprecated from provider version 1.213.0."},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:gpdb/InstanceParameter:InstanceParameter"},"description":"The parameters. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"paymentType":{"type":"string","description":"The billing method of the instance. Valid values: `Subscription`, `PayAsYouGo`.\n"},"period":{"type":"string","description":"The duration that you will buy the resource, in month. required when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`. Valid values: `Year`, `Month`.\n"},"port":{"type":"string","description":"(Available since v1.196.0) The connection port of the instance.\n"},"privateIpAddress":{"type":"string","description":"The private ip address. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`privateIpAddress`\" pulumi-lang-dotnet=\"`PrivateIpAddress`\" pulumi-lang-go=\"`privateIpAddress`\" pulumi-lang-python=\"`private_ip_address`\" pulumi-lang-yaml=\"`privateIpAddress`\" pulumi-lang-java=\"`privateIpAddress`\"\u003e`private_ip_address`\u003c/span\u003e has been deprecated from provider version 1.213.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`privateIpAddress`\" pulumi-lang-dotnet=\"`PrivateIpAddress`\" pulumi-lang-go=\"`privateIpAddress`\" pulumi-lang-python=\"`private_ip_address`\" pulumi-lang-yaml=\"`privateIpAddress`\" pulumi-lang-java=\"`privateIpAddress`\"\u003e`private_ip_address`\u003c/span\u003e has been deprecated from provider version 1.213.0."},"prodType":{"type":"string","description":"The type of the product. Default value: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, `cost-effective`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the enterprise resource group to which the instance belongs.\n"},"resourceManagementMode":{"type":"string","description":"Resource management mode. Valid values: `resourceGroup`, `resourceQueue`.\n"},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`securityIpList`\" pulumi-lang-dotnet=\"`SecurityIpList`\" pulumi-lang-go=\"`securityIpList`\" pulumi-lang-python=\"`security_ip_list`\" pulumi-lang-yaml=\"`securityIpList`\" pulumi-lang-java=\"`securityIpList`\"\u003e`security_ip_list`\u003c/span\u003e has been deprecated from provider version 1.187.0. New field \u003cspan pulumi-lang-nodejs=\"`ipWhitelist`\" pulumi-lang-dotnet=\"`IpWhitelist`\" pulumi-lang-go=\"`ipWhitelist`\" pulumi-lang-python=\"`ip_whitelist`\" pulumi-lang-yaml=\"`ipWhitelist`\" pulumi-lang-java=\"`ipWhitelist`\"\u003e`ip_whitelist`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'security_ip_list' has been deprecated from version 1.187.0. Use 'ip_whitelist' instead."},"segDiskPerformanceLevel":{"type":"string","description":"The ESSD cloud disk performance level. Valid values: \u003cspan pulumi-lang-nodejs=\"`pl0`\" pulumi-lang-dotnet=\"`Pl0`\" pulumi-lang-go=\"`pl0`\" pulumi-lang-python=\"`pl0`\" pulumi-lang-yaml=\"`pl0`\" pulumi-lang-java=\"`pl0`\"\u003e`pl0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pl1`\" pulumi-lang-dotnet=\"`Pl1`\" pulumi-lang-go=\"`pl1`\" pulumi-lang-python=\"`pl1`\" pulumi-lang-yaml=\"`pl1`\" pulumi-lang-java=\"`pl1`\"\u003e`pl1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pl2`\" pulumi-lang-dotnet=\"`Pl2`\" pulumi-lang-go=\"`pl2`\" pulumi-lang-python=\"`pl2`\" pulumi-lang-yaml=\"`pl2`\" pulumi-lang-java=\"`pl2`\"\u003e`pl2`\u003c/span\u003e.\n"},"segNodeNum":{"type":"integer","description":"Calculate the number of nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\"\u003e`512`\u003c/span\u003e. The value range of the high-availability version of the storage elastic mode is \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\"\u003e`512`\u003c/span\u003e, and the value must be a multiple of \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e. The value range of the basic version of the storage elastic mode is \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\"\u003e`512`\u003c/span\u003e, and the value must be a multiple of \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e. The-Serverless version has a value range of \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\"\u003e`512`\u003c/span\u003e. The value must be a multiple of \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n\u003e **NOTE:** This parameter must be passed in to create a storage elastic mode instance and a Serverless version instance. During the public beta of the Serverless version (from 0101, 2022 to 0131, 2022), a maximum of 12 compute nodes can be created.\n"},"segStorageType":{"type":"string","description":"The seg storage type. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`dbInstanceMode`\" pulumi-lang-dotnet=\"`DbInstanceMode`\" pulumi-lang-go=\"`dbInstanceMode`\" pulumi-lang-python=\"`db_instance_mode`\" pulumi-lang-yaml=\"`dbInstanceMode`\" pulumi-lang-java=\"`dbInstanceMode`\"\u003e`db_instance_mode`\u003c/span\u003e is set to `StorageElastic`, \u003cspan pulumi-lang-nodejs=\"`segStorageType`\" pulumi-lang-dotnet=\"`SegStorageType`\" pulumi-lang-go=\"`segStorageType`\" pulumi-lang-python=\"`seg_storage_type`\" pulumi-lang-yaml=\"`segStorageType`\" pulumi-lang-java=\"`segStorageType`\"\u003e`seg_storage_type`\u003c/span\u003e is required. From version 1.233.1, \u003cspan pulumi-lang-nodejs=\"`segStorageType`\" pulumi-lang-dotnet=\"`SegStorageType`\" pulumi-lang-go=\"`segStorageType`\" pulumi-lang-python=\"`seg_storage_type`\" pulumi-lang-yaml=\"`segStorageType`\" pulumi-lang-java=\"`segStorageType`\"\u003e`seg_storage_type`\u003c/span\u003e cannot be modified, or set to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`segStorageType`\" pulumi-lang-dotnet=\"`SegStorageType`\" pulumi-lang-go=\"`segStorageType`\" pulumi-lang-python=\"`seg_storage_type`\" pulumi-lang-yaml=\"`segStorageType`\" pulumi-lang-java=\"`segStorageType`\"\u003e`seg_storage_type`\u003c/span\u003e can only be set to \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e.\n"},"serverlessMode":{"type":"string","description":"The mode of the Serverless instance. Valid values: `Manual`, `Auto`. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`serverlessMode`\" pulumi-lang-dotnet=\"`ServerlessMode`\" pulumi-lang-go=\"`serverlessMode`\" pulumi-lang-python=\"`serverless_mode`\" pulumi-lang-yaml=\"`serverlessMode`\" pulumi-lang-java=\"`serverlessMode`\"\u003e`serverless_mode`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`dbInstanceMode`\" pulumi-lang-dotnet=\"`DbInstanceMode`\" pulumi-lang-go=\"`dbInstanceMode`\" pulumi-lang-python=\"`db_instance_mode`\" pulumi-lang-yaml=\"`dbInstanceMode`\" pulumi-lang-java=\"`dbInstanceMode`\"\u003e`db_instance_mode`\u003c/span\u003e is set to `Serverless`.\n"},"sslEnabled":{"type":"integer","description":"Enable or disable SSL. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the instance.\n"},"storageSize":{"type":"integer","description":"The storage capacity. Unit: GB. Valid values: \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\"\u003e`4000`\u003c/span\u003e.\n\u003e **NOTE:** This parameter must be passed in to create a storage reservation mode instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"usedTime":{"type":"string","description":"The used time. When the parameter \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is `Year`, the \u003cspan pulumi-lang-nodejs=\"`usedTime`\" pulumi-lang-dotnet=\"`UsedTime`\" pulumi-lang-go=\"`usedTime`\" pulumi-lang-python=\"`used_time`\" pulumi-lang-yaml=\"`usedTime`\" pulumi-lang-java=\"`usedTime`\"\u003e`used_time`\u003c/span\u003e value is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e. When the parameter \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is `Month`, the \u003cspan pulumi-lang-nodejs=\"`usedTime`\" pulumi-lang-dotnet=\"`UsedTime`\" pulumi-lang-go=\"`usedTime`\" pulumi-lang-python=\"`used_time`\" pulumi-lang-yaml=\"`usedTime`\" pulumi-lang-java=\"`usedTime`\"\u003e`used_time`\u003c/span\u003e value is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n"},"vectorConfigurationStatus":{"type":"string","description":"Specifies whether to enable vector engine optimization. Default value: \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e.\n"},"vpcId":{"type":"string","description":"The vpc ID of the resource.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string","description":"The zone ID of the instance.\n"}},"required":["availabilityZone","connectionString","createSampleData","dataShareStatus","dbInstanceCategory","dbInstanceMode","description","engine","engineVersion","instanceChargeType","instanceNetworkType","ipWhitelists","maintainEndTime","maintainStartTime","masterCu","parameters","paymentType","port","prodType","resourceGroupId","resourceManagementMode","segDiskPerformanceLevel","segNodeNum","segStorageType","serverlessMode","sslEnabled","status","storageSize","vectorConfigurationStatus","vpcId","vswitchId","zoneId"],"inputProperties":{"availabilityZone":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.187.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'availability_zone' has been deprecated from version 1.187.0. Use 'zone_id' instead.","willReplaceOnChanges":true},"createSampleData":{"type":"boolean","description":"Whether to load the sample dataset after the instance is created. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dataShareStatus":{"type":"string","description":"Specifies whether to enable or disable data sharing. Default value: \u003cspan pulumi-lang-nodejs=\"`closed`\" pulumi-lang-dotnet=\"`Closed`\" pulumi-lang-go=\"`closed`\" pulumi-lang-python=\"`closed`\" pulumi-lang-yaml=\"`closed`\" pulumi-lang-java=\"`closed`\"\u003e`closed`\u003c/span\u003e. Valid values:\n"},"dbInstanceCategory":{"type":"string","description":"The db instance category. Valid values: `Basic`, `HighAvailability`.\n\u003e **NOTE:** This parameter must be passed in to create a storage reservation mode instance.\n","willReplaceOnChanges":true},"dbInstanceClass":{"type":"string","description":"The db instance class. see [Instance specifications](https://www.alibabacloud.com/help/en/analyticdb-for-postgresql/latest/instance-types).\n\u003e **NOTE:** This parameter must be passed in to create a storage reservation mode instance.\n"},"dbInstanceMode":{"type":"string","description":"The db instance mode. Valid values: `StorageElastic`, `Serverless`, `Classic`.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the instance.\n"},"encryptionKey":{"type":"string","description":"The ID of the encryption key.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`encryptionType`\" pulumi-lang-dotnet=\"`EncryptionType`\" pulumi-lang-go=\"`encryptionType`\" pulumi-lang-python=\"`encryption_type`\" pulumi-lang-yaml=\"`encryptionType`\" pulumi-lang-java=\"`encryptionType`\"\u003e`encryption_type`\u003c/span\u003e is set to `CloudDisk`, you must specify an encryption key that resides in the same region as the cloud disk that is specified by EncryptionType. Otherwise, leave this parameter empty.\n","willReplaceOnChanges":true},"encryptionType":{"type":"string","description":"The encryption type. Valid values: `CloudDisk`.\n\u003e **NOTE:** Disk encryption cannot be disabled after it is enabled.\n","willReplaceOnChanges":true},"engine":{"type":"string","description":"The database engine used by the instance. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/en/analyticdb-for-postgresql/latest/api-gpdb-2016-05-03-createdbinstance) `EngineVersion`.\n","willReplaceOnChanges":true},"engineVersion":{"type":"string","description":"The version of the database engine used by the instance.\n","willReplaceOnChanges":true},"instanceChargeType":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e has been deprecated from provider version 1.187.0. New field \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e has been deprecated from version 1.187.0. Use \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.","willReplaceOnChanges":true},"instanceGroupCount":{"type":"integer","description":"The number of nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\"\u003e`16`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`96`\" pulumi-lang-dotnet=\"`96`\" pulumi-lang-go=\"`96`\" pulumi-lang-python=\"`96`\" pulumi-lang-yaml=\"`96`\" pulumi-lang-java=\"`96`\"\u003e`96`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e.\n"},"instanceNetworkType":{"type":"string","description":"The network type of the instance. Valid values: `VPC`.\n","willReplaceOnChanges":true},"instanceSpec":{"type":"string","description":"The specification of segment nodes. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`dbInstanceCategory`\" pulumi-lang-dotnet=\"`DbInstanceCategory`\" pulumi-lang-go=\"`dbInstanceCategory`\" pulumi-lang-python=\"`db_instance_category`\" pulumi-lang-yaml=\"`dbInstanceCategory`\" pulumi-lang-java=\"`dbInstanceCategory`\"\u003e`db_instance_category`\u003c/span\u003e is set to `HighAvailability`, and \u003cspan pulumi-lang-nodejs=\"`dbInstanceMode`\" pulumi-lang-dotnet=\"`DbInstanceMode`\" pulumi-lang-go=\"`dbInstanceMode`\" pulumi-lang-python=\"`db_instance_mode`\" pulumi-lang-yaml=\"`dbInstanceMode`\" pulumi-lang-java=\"`dbInstanceMode`\"\u003e`db_instance_mode`\u003c/span\u003e is set to `StorageElastic`. Valid values: `2C16G`, `4C32G`, `16C128G`.\n- If \u003cspan pulumi-lang-nodejs=\"`dbInstanceCategory`\" pulumi-lang-dotnet=\"`DbInstanceCategory`\" pulumi-lang-go=\"`dbInstanceCategory`\" pulumi-lang-python=\"`db_instance_category`\" pulumi-lang-yaml=\"`dbInstanceCategory`\" pulumi-lang-java=\"`dbInstanceCategory`\"\u003e`db_instance_category`\u003c/span\u003e is set to `Basic`, and \u003cspan pulumi-lang-nodejs=\"`dbInstanceMode`\" pulumi-lang-dotnet=\"`DbInstanceMode`\" pulumi-lang-go=\"`dbInstanceMode`\" pulumi-lang-python=\"`db_instance_mode`\" pulumi-lang-yaml=\"`dbInstanceMode`\" pulumi-lang-java=\"`dbInstanceMode`\"\u003e`db_instance_mode`\u003c/span\u003e is set to `StorageElastic`. Valid values: `2C8G`, `4C16G`, `8C32G`, `16C64G`.\n- If \u003cspan pulumi-lang-nodejs=\"`dbInstanceMode`\" pulumi-lang-dotnet=\"`DbInstanceMode`\" pulumi-lang-go=\"`dbInstanceMode`\" pulumi-lang-python=\"`db_instance_mode`\" pulumi-lang-yaml=\"`dbInstanceMode`\" pulumi-lang-java=\"`dbInstanceMode`\"\u003e`db_instance_mode`\u003c/span\u003e is set to `Serverless`. Valid values: `4C16G`, `8C32G`.\n\u003e **NOTE:** This parameter must be passed to create a storage elastic mode instance and a serverless version instance.\n"},"ipWhitelists":{"type":"array","items":{"$ref":"#/types/alicloud:gpdb/InstanceIpWhitelist:InstanceIpWhitelist"},"description":"The ip whitelist. See \u003cspan pulumi-lang-nodejs=\"`ipWhitelist`\" pulumi-lang-dotnet=\"`IpWhitelist`\" pulumi-lang-go=\"`ipWhitelist`\" pulumi-lang-python=\"`ip_whitelist`\" pulumi-lang-yaml=\"`ipWhitelist`\" pulumi-lang-java=\"`ipWhitelist`\"\u003e`ip_whitelist`\u003c/span\u003e below.\nDefault to creating a whitelist group with the group name \"default\" and\u003cspan pulumi-lang-nodejs=\" securityIpList \" pulumi-lang-dotnet=\" SecurityIpList \" pulumi-lang-go=\" securityIpList \" pulumi-lang-python=\" security_ip_list \" pulumi-lang-yaml=\" securityIpList \" pulumi-lang-java=\" securityIpList \"\u003e security_ip_list \u003c/span\u003e\"127.0.0.1\".\n"},"maintainEndTime":{"type":"string","description":"The end time of the maintenance window for the instance. in the format of HH:mmZ (UTC time), for example 03:00Z. start time should be later than end time.\n"},"maintainStartTime":{"type":"string","description":"The start time of the maintenance window for the instance. in the format of HH:mmZ (UTC time), for example 02:00Z.\n"},"masterCu":{"type":"integer","description":"The amount of coordinator node resources. Valid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\"\u003e`16`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e.\n"},"masterNodeNum":{"type":"integer","description":"The number of Master nodes. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`masterNodeNum`\" pulumi-lang-dotnet=\"`MasterNodeNum`\" pulumi-lang-go=\"`masterNodeNum`\" pulumi-lang-python=\"`master_node_num`\" pulumi-lang-yaml=\"`masterNodeNum`\" pulumi-lang-java=\"`masterNodeNum`\"\u003e`master_node_num`\u003c/span\u003e has been deprecated from provider version 1.213.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`masterNodeNum`\" pulumi-lang-dotnet=\"`MasterNodeNum`\" pulumi-lang-go=\"`masterNodeNum`\" pulumi-lang-python=\"`master_node_num`\" pulumi-lang-yaml=\"`masterNodeNum`\" pulumi-lang-java=\"`masterNodeNum`\"\u003e`master_node_num`\u003c/span\u003e has been deprecated from provider version 1.213.0."},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:gpdb/InstanceParameter:InstanceParameter"},"description":"The parameters. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"paymentType":{"type":"string","description":"The billing method of the instance. Valid values: `Subscription`, `PayAsYouGo`.\n","willReplaceOnChanges":true},"period":{"type":"string","description":"The duration that you will buy the resource, in month. required when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`. Valid values: `Year`, `Month`.\n"},"privateIpAddress":{"type":"string","description":"The private ip address. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`privateIpAddress`\" pulumi-lang-dotnet=\"`PrivateIpAddress`\" pulumi-lang-go=\"`privateIpAddress`\" pulumi-lang-python=\"`private_ip_address`\" pulumi-lang-yaml=\"`privateIpAddress`\" pulumi-lang-java=\"`privateIpAddress`\"\u003e`private_ip_address`\u003c/span\u003e has been deprecated from provider version 1.213.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`privateIpAddress`\" pulumi-lang-dotnet=\"`PrivateIpAddress`\" pulumi-lang-go=\"`privateIpAddress`\" pulumi-lang-python=\"`private_ip_address`\" pulumi-lang-yaml=\"`privateIpAddress`\" pulumi-lang-java=\"`privateIpAddress`\"\u003e`private_ip_address`\u003c/span\u003e has been deprecated from provider version 1.213.0."},"prodType":{"type":"string","description":"The type of the product. Default value: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, `cost-effective`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the enterprise resource group to which the instance belongs.\n"},"resourceManagementMode":{"type":"string","description":"Resource management mode. Valid values: `resourceGroup`, `resourceQueue`.\n"},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`securityIpList`\" pulumi-lang-dotnet=\"`SecurityIpList`\" pulumi-lang-go=\"`securityIpList`\" pulumi-lang-python=\"`security_ip_list`\" pulumi-lang-yaml=\"`securityIpList`\" pulumi-lang-java=\"`securityIpList`\"\u003e`security_ip_list`\u003c/span\u003e has been deprecated from provider version 1.187.0. New field \u003cspan pulumi-lang-nodejs=\"`ipWhitelist`\" pulumi-lang-dotnet=\"`IpWhitelist`\" pulumi-lang-go=\"`ipWhitelist`\" pulumi-lang-python=\"`ip_whitelist`\" pulumi-lang-yaml=\"`ipWhitelist`\" pulumi-lang-java=\"`ipWhitelist`\"\u003e`ip_whitelist`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'security_ip_list' has been deprecated from version 1.187.0. Use 'ip_whitelist' instead."},"segDiskPerformanceLevel":{"type":"string","description":"The ESSD cloud disk performance level. Valid values: \u003cspan pulumi-lang-nodejs=\"`pl0`\" pulumi-lang-dotnet=\"`Pl0`\" pulumi-lang-go=\"`pl0`\" pulumi-lang-python=\"`pl0`\" pulumi-lang-yaml=\"`pl0`\" pulumi-lang-java=\"`pl0`\"\u003e`pl0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pl1`\" pulumi-lang-dotnet=\"`Pl1`\" pulumi-lang-go=\"`pl1`\" pulumi-lang-python=\"`pl1`\" pulumi-lang-yaml=\"`pl1`\" pulumi-lang-java=\"`pl1`\"\u003e`pl1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pl2`\" pulumi-lang-dotnet=\"`Pl2`\" pulumi-lang-go=\"`pl2`\" pulumi-lang-python=\"`pl2`\" pulumi-lang-yaml=\"`pl2`\" pulumi-lang-java=\"`pl2`\"\u003e`pl2`\u003c/span\u003e.\n"},"segNodeNum":{"type":"integer","description":"Calculate the number of nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\"\u003e`512`\u003c/span\u003e. The value range of the high-availability version of the storage elastic mode is \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\"\u003e`512`\u003c/span\u003e, and the value must be a multiple of \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e. The value range of the basic version of the storage elastic mode is \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\"\u003e`512`\u003c/span\u003e, and the value must be a multiple of \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e. The-Serverless version has a value range of \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\"\u003e`512`\u003c/span\u003e. The value must be a multiple of \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n\u003e **NOTE:** This parameter must be passed in to create a storage elastic mode instance and a Serverless version instance. During the public beta of the Serverless version (from 0101, 2022 to 0131, 2022), a maximum of 12 compute nodes can be created.\n"},"segStorageType":{"type":"string","description":"The seg storage type. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`dbInstanceMode`\" pulumi-lang-dotnet=\"`DbInstanceMode`\" pulumi-lang-go=\"`dbInstanceMode`\" pulumi-lang-python=\"`db_instance_mode`\" pulumi-lang-yaml=\"`dbInstanceMode`\" pulumi-lang-java=\"`dbInstanceMode`\"\u003e`db_instance_mode`\u003c/span\u003e is set to `StorageElastic`, \u003cspan pulumi-lang-nodejs=\"`segStorageType`\" pulumi-lang-dotnet=\"`SegStorageType`\" pulumi-lang-go=\"`segStorageType`\" pulumi-lang-python=\"`seg_storage_type`\" pulumi-lang-yaml=\"`segStorageType`\" pulumi-lang-java=\"`segStorageType`\"\u003e`seg_storage_type`\u003c/span\u003e is required. From version 1.233.1, \u003cspan pulumi-lang-nodejs=\"`segStorageType`\" pulumi-lang-dotnet=\"`SegStorageType`\" pulumi-lang-go=\"`segStorageType`\" pulumi-lang-python=\"`seg_storage_type`\" pulumi-lang-yaml=\"`segStorageType`\" pulumi-lang-java=\"`segStorageType`\"\u003e`seg_storage_type`\u003c/span\u003e cannot be modified, or set to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`segStorageType`\" pulumi-lang-dotnet=\"`SegStorageType`\" pulumi-lang-go=\"`segStorageType`\" pulumi-lang-python=\"`seg_storage_type`\" pulumi-lang-yaml=\"`segStorageType`\" pulumi-lang-java=\"`segStorageType`\"\u003e`seg_storage_type`\u003c/span\u003e can only be set to \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e.\n","willReplaceOnChanges":true},"serverlessMode":{"type":"string","description":"The mode of the Serverless instance. Valid values: `Manual`, `Auto`. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`serverlessMode`\" pulumi-lang-dotnet=\"`ServerlessMode`\" pulumi-lang-go=\"`serverlessMode`\" pulumi-lang-python=\"`serverless_mode`\" pulumi-lang-yaml=\"`serverlessMode`\" pulumi-lang-java=\"`serverlessMode`\"\u003e`serverless_mode`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`dbInstanceMode`\" pulumi-lang-dotnet=\"`DbInstanceMode`\" pulumi-lang-go=\"`dbInstanceMode`\" pulumi-lang-python=\"`db_instance_mode`\" pulumi-lang-yaml=\"`dbInstanceMode`\" pulumi-lang-java=\"`dbInstanceMode`\"\u003e`db_instance_mode`\u003c/span\u003e is set to `Serverless`.\n","willReplaceOnChanges":true},"sslEnabled":{"type":"integer","description":"Enable or disable SSL. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"storageSize":{"type":"integer","description":"The storage capacity. Unit: GB. Valid values: \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\"\u003e`4000`\u003c/span\u003e.\n\u003e **NOTE:** This parameter must be passed in to create a storage reservation mode instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"usedTime":{"type":"string","description":"The used time. When the parameter \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is `Year`, the \u003cspan pulumi-lang-nodejs=\"`usedTime`\" pulumi-lang-dotnet=\"`UsedTime`\" pulumi-lang-go=\"`usedTime`\" pulumi-lang-python=\"`used_time`\" pulumi-lang-yaml=\"`usedTime`\" pulumi-lang-java=\"`usedTime`\"\u003e`used_time`\u003c/span\u003e value is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e. When the parameter \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is `Month`, the \u003cspan pulumi-lang-nodejs=\"`usedTime`\" pulumi-lang-dotnet=\"`UsedTime`\" pulumi-lang-go=\"`usedTime`\" pulumi-lang-python=\"`used_time`\" pulumi-lang-yaml=\"`usedTime`\" pulumi-lang-java=\"`usedTime`\"\u003e`used_time`\u003c/span\u003e value is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n"},"vectorConfigurationStatus":{"type":"string","description":"Specifies whether to enable vector engine optimization. Default value: \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e.\n"},"vpcId":{"type":"string","description":"The vpc ID of the resource.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vswitch id.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the instance.\n","willReplaceOnChanges":true}},"requiredInputs":["dbInstanceMode","engine","engineVersion","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"availabilityZone":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.187.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'availability_zone' has been deprecated from version 1.187.0. Use 'zone_id' instead.","willReplaceOnChanges":true},"connectionString":{"type":"string","description":"(Available since v1.196.0) The connection string of the instance.\n"},"createSampleData":{"type":"boolean","description":"Whether to load the sample dataset after the instance is created. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dataShareStatus":{"type":"string","description":"Specifies whether to enable or disable data sharing. Default value: \u003cspan pulumi-lang-nodejs=\"`closed`\" pulumi-lang-dotnet=\"`Closed`\" pulumi-lang-go=\"`closed`\" pulumi-lang-python=\"`closed`\" pulumi-lang-yaml=\"`closed`\" pulumi-lang-java=\"`closed`\"\u003e`closed`\u003c/span\u003e. Valid values:\n"},"dbInstanceCategory":{"type":"string","description":"The db instance category. Valid values: `Basic`, `HighAvailability`.\n\u003e **NOTE:** This parameter must be passed in to create a storage reservation mode instance.\n","willReplaceOnChanges":true},"dbInstanceClass":{"type":"string","description":"The db instance class. see [Instance specifications](https://www.alibabacloud.com/help/en/analyticdb-for-postgresql/latest/instance-types).\n\u003e **NOTE:** This parameter must be passed in to create a storage reservation mode instance.\n"},"dbInstanceMode":{"type":"string","description":"The db instance mode. Valid values: `StorageElastic`, `Serverless`, `Classic`.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the instance.\n"},"encryptionKey":{"type":"string","description":"The ID of the encryption key.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`encryptionType`\" pulumi-lang-dotnet=\"`EncryptionType`\" pulumi-lang-go=\"`encryptionType`\" pulumi-lang-python=\"`encryption_type`\" pulumi-lang-yaml=\"`encryptionType`\" pulumi-lang-java=\"`encryptionType`\"\u003e`encryption_type`\u003c/span\u003e is set to `CloudDisk`, you must specify an encryption key that resides in the same region as the cloud disk that is specified by EncryptionType. Otherwise, leave this parameter empty.\n","willReplaceOnChanges":true},"encryptionType":{"type":"string","description":"The encryption type. Valid values: `CloudDisk`.\n\u003e **NOTE:** Disk encryption cannot be disabled after it is enabled.\n","willReplaceOnChanges":true},"engine":{"type":"string","description":"The database engine used by the instance. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/en/analyticdb-for-postgresql/latest/api-gpdb-2016-05-03-createdbinstance) `EngineVersion`.\n","willReplaceOnChanges":true},"engineVersion":{"type":"string","description":"The version of the database engine used by the instance.\n","willReplaceOnChanges":true},"instanceChargeType":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e has been deprecated from provider version 1.187.0. New field \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e has been deprecated from version 1.187.0. Use \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.","willReplaceOnChanges":true},"instanceGroupCount":{"type":"integer","description":"The number of nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\"\u003e`16`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`96`\" pulumi-lang-dotnet=\"`96`\" pulumi-lang-go=\"`96`\" pulumi-lang-python=\"`96`\" pulumi-lang-yaml=\"`96`\" pulumi-lang-java=\"`96`\"\u003e`96`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e.\n"},"instanceNetworkType":{"type":"string","description":"The network type of the instance. Valid values: `VPC`.\n","willReplaceOnChanges":true},"instanceSpec":{"type":"string","description":"The specification of segment nodes. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`dbInstanceCategory`\" pulumi-lang-dotnet=\"`DbInstanceCategory`\" pulumi-lang-go=\"`dbInstanceCategory`\" pulumi-lang-python=\"`db_instance_category`\" pulumi-lang-yaml=\"`dbInstanceCategory`\" pulumi-lang-java=\"`dbInstanceCategory`\"\u003e`db_instance_category`\u003c/span\u003e is set to `HighAvailability`, and \u003cspan pulumi-lang-nodejs=\"`dbInstanceMode`\" pulumi-lang-dotnet=\"`DbInstanceMode`\" pulumi-lang-go=\"`dbInstanceMode`\" pulumi-lang-python=\"`db_instance_mode`\" pulumi-lang-yaml=\"`dbInstanceMode`\" pulumi-lang-java=\"`dbInstanceMode`\"\u003e`db_instance_mode`\u003c/span\u003e is set to `StorageElastic`. Valid values: `2C16G`, `4C32G`, `16C128G`.\n- If \u003cspan pulumi-lang-nodejs=\"`dbInstanceCategory`\" pulumi-lang-dotnet=\"`DbInstanceCategory`\" pulumi-lang-go=\"`dbInstanceCategory`\" pulumi-lang-python=\"`db_instance_category`\" pulumi-lang-yaml=\"`dbInstanceCategory`\" pulumi-lang-java=\"`dbInstanceCategory`\"\u003e`db_instance_category`\u003c/span\u003e is set to `Basic`, and \u003cspan pulumi-lang-nodejs=\"`dbInstanceMode`\" pulumi-lang-dotnet=\"`DbInstanceMode`\" pulumi-lang-go=\"`dbInstanceMode`\" pulumi-lang-python=\"`db_instance_mode`\" pulumi-lang-yaml=\"`dbInstanceMode`\" pulumi-lang-java=\"`dbInstanceMode`\"\u003e`db_instance_mode`\u003c/span\u003e is set to `StorageElastic`. Valid values: `2C8G`, `4C16G`, `8C32G`, `16C64G`.\n- If \u003cspan pulumi-lang-nodejs=\"`dbInstanceMode`\" pulumi-lang-dotnet=\"`DbInstanceMode`\" pulumi-lang-go=\"`dbInstanceMode`\" pulumi-lang-python=\"`db_instance_mode`\" pulumi-lang-yaml=\"`dbInstanceMode`\" pulumi-lang-java=\"`dbInstanceMode`\"\u003e`db_instance_mode`\u003c/span\u003e is set to `Serverless`. Valid values: `4C16G`, `8C32G`.\n\u003e **NOTE:** This parameter must be passed to create a storage elastic mode instance and a serverless version instance.\n"},"ipWhitelists":{"type":"array","items":{"$ref":"#/types/alicloud:gpdb/InstanceIpWhitelist:InstanceIpWhitelist"},"description":"The ip whitelist. See \u003cspan pulumi-lang-nodejs=\"`ipWhitelist`\" pulumi-lang-dotnet=\"`IpWhitelist`\" pulumi-lang-go=\"`ipWhitelist`\" pulumi-lang-python=\"`ip_whitelist`\" pulumi-lang-yaml=\"`ipWhitelist`\" pulumi-lang-java=\"`ipWhitelist`\"\u003e`ip_whitelist`\u003c/span\u003e below.\nDefault to creating a whitelist group with the group name \"default\" and\u003cspan pulumi-lang-nodejs=\" securityIpList \" pulumi-lang-dotnet=\" SecurityIpList \" pulumi-lang-go=\" securityIpList \" pulumi-lang-python=\" security_ip_list \" pulumi-lang-yaml=\" securityIpList \" pulumi-lang-java=\" securityIpList \"\u003e security_ip_list \u003c/span\u003e\"127.0.0.1\".\n"},"maintainEndTime":{"type":"string","description":"The end time of the maintenance window for the instance. in the format of HH:mmZ (UTC time), for example 03:00Z. start time should be later than end time.\n"},"maintainStartTime":{"type":"string","description":"The start time of the maintenance window for the instance. in the format of HH:mmZ (UTC time), for example 02:00Z.\n"},"masterCu":{"type":"integer","description":"The amount of coordinator node resources. Valid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\"\u003e`16`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e.\n"},"masterNodeNum":{"type":"integer","description":"The number of Master nodes. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`masterNodeNum`\" pulumi-lang-dotnet=\"`MasterNodeNum`\" pulumi-lang-go=\"`masterNodeNum`\" pulumi-lang-python=\"`master_node_num`\" pulumi-lang-yaml=\"`masterNodeNum`\" pulumi-lang-java=\"`masterNodeNum`\"\u003e`master_node_num`\u003c/span\u003e has been deprecated from provider version 1.213.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`masterNodeNum`\" pulumi-lang-dotnet=\"`MasterNodeNum`\" pulumi-lang-go=\"`masterNodeNum`\" pulumi-lang-python=\"`master_node_num`\" pulumi-lang-yaml=\"`masterNodeNum`\" pulumi-lang-java=\"`masterNodeNum`\"\u003e`master_node_num`\u003c/span\u003e has been deprecated from provider version 1.213.0."},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:gpdb/InstanceParameter:InstanceParameter"},"description":"The parameters. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"paymentType":{"type":"string","description":"The billing method of the instance. Valid values: `Subscription`, `PayAsYouGo`.\n","willReplaceOnChanges":true},"period":{"type":"string","description":"The duration that you will buy the resource, in month. required when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`. Valid values: `Year`, `Month`.\n"},"port":{"type":"string","description":"(Available since v1.196.0) The connection port of the instance.\n"},"privateIpAddress":{"type":"string","description":"The private ip address. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`privateIpAddress`\" pulumi-lang-dotnet=\"`PrivateIpAddress`\" pulumi-lang-go=\"`privateIpAddress`\" pulumi-lang-python=\"`private_ip_address`\" pulumi-lang-yaml=\"`privateIpAddress`\" pulumi-lang-java=\"`privateIpAddress`\"\u003e`private_ip_address`\u003c/span\u003e has been deprecated from provider version 1.213.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`privateIpAddress`\" pulumi-lang-dotnet=\"`PrivateIpAddress`\" pulumi-lang-go=\"`privateIpAddress`\" pulumi-lang-python=\"`private_ip_address`\" pulumi-lang-yaml=\"`privateIpAddress`\" pulumi-lang-java=\"`privateIpAddress`\"\u003e`private_ip_address`\u003c/span\u003e has been deprecated from provider version 1.213.0."},"prodType":{"type":"string","description":"The type of the product. Default value: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, `cost-effective`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the enterprise resource group to which the instance belongs.\n"},"resourceManagementMode":{"type":"string","description":"Resource management mode. Valid values: `resourceGroup`, `resourceQueue`.\n"},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`securityIpList`\" pulumi-lang-dotnet=\"`SecurityIpList`\" pulumi-lang-go=\"`securityIpList`\" pulumi-lang-python=\"`security_ip_list`\" pulumi-lang-yaml=\"`securityIpList`\" pulumi-lang-java=\"`securityIpList`\"\u003e`security_ip_list`\u003c/span\u003e has been deprecated from provider version 1.187.0. New field \u003cspan pulumi-lang-nodejs=\"`ipWhitelist`\" pulumi-lang-dotnet=\"`IpWhitelist`\" pulumi-lang-go=\"`ipWhitelist`\" pulumi-lang-python=\"`ip_whitelist`\" pulumi-lang-yaml=\"`ipWhitelist`\" pulumi-lang-java=\"`ipWhitelist`\"\u003e`ip_whitelist`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'security_ip_list' has been deprecated from version 1.187.0. Use 'ip_whitelist' instead."},"segDiskPerformanceLevel":{"type":"string","description":"The ESSD cloud disk performance level. Valid values: \u003cspan pulumi-lang-nodejs=\"`pl0`\" pulumi-lang-dotnet=\"`Pl0`\" pulumi-lang-go=\"`pl0`\" pulumi-lang-python=\"`pl0`\" pulumi-lang-yaml=\"`pl0`\" pulumi-lang-java=\"`pl0`\"\u003e`pl0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pl1`\" pulumi-lang-dotnet=\"`Pl1`\" pulumi-lang-go=\"`pl1`\" pulumi-lang-python=\"`pl1`\" pulumi-lang-yaml=\"`pl1`\" pulumi-lang-java=\"`pl1`\"\u003e`pl1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pl2`\" pulumi-lang-dotnet=\"`Pl2`\" pulumi-lang-go=\"`pl2`\" pulumi-lang-python=\"`pl2`\" pulumi-lang-yaml=\"`pl2`\" pulumi-lang-java=\"`pl2`\"\u003e`pl2`\u003c/span\u003e.\n"},"segNodeNum":{"type":"integer","description":"Calculate the number of nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\"\u003e`512`\u003c/span\u003e. The value range of the high-availability version of the storage elastic mode is \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\"\u003e`512`\u003c/span\u003e, and the value must be a multiple of \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e. The value range of the basic version of the storage elastic mode is \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\"\u003e`512`\u003c/span\u003e, and the value must be a multiple of \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e. The-Serverless version has a value range of \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`512`\" pulumi-lang-dotnet=\"`512`\" pulumi-lang-go=\"`512`\" pulumi-lang-python=\"`512`\" pulumi-lang-yaml=\"`512`\" pulumi-lang-java=\"`512`\"\u003e`512`\u003c/span\u003e. The value must be a multiple of \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n\u003e **NOTE:** This parameter must be passed in to create a storage elastic mode instance and a Serverless version instance. During the public beta of the Serverless version (from 0101, 2022 to 0131, 2022), a maximum of 12 compute nodes can be created.\n"},"segStorageType":{"type":"string","description":"The seg storage type. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`dbInstanceMode`\" pulumi-lang-dotnet=\"`DbInstanceMode`\" pulumi-lang-go=\"`dbInstanceMode`\" pulumi-lang-python=\"`db_instance_mode`\" pulumi-lang-yaml=\"`dbInstanceMode`\" pulumi-lang-java=\"`dbInstanceMode`\"\u003e`db_instance_mode`\u003c/span\u003e is set to `StorageElastic`, \u003cspan pulumi-lang-nodejs=\"`segStorageType`\" pulumi-lang-dotnet=\"`SegStorageType`\" pulumi-lang-go=\"`segStorageType`\" pulumi-lang-python=\"`seg_storage_type`\" pulumi-lang-yaml=\"`segStorageType`\" pulumi-lang-java=\"`segStorageType`\"\u003e`seg_storage_type`\u003c/span\u003e is required. From version 1.233.1, \u003cspan pulumi-lang-nodejs=\"`segStorageType`\" pulumi-lang-dotnet=\"`SegStorageType`\" pulumi-lang-go=\"`segStorageType`\" pulumi-lang-python=\"`seg_storage_type`\" pulumi-lang-yaml=\"`segStorageType`\" pulumi-lang-java=\"`segStorageType`\"\u003e`seg_storage_type`\u003c/span\u003e cannot be modified, or set to \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`segStorageType`\" pulumi-lang-dotnet=\"`SegStorageType`\" pulumi-lang-go=\"`segStorageType`\" pulumi-lang-python=\"`seg_storage_type`\" pulumi-lang-yaml=\"`segStorageType`\" pulumi-lang-java=\"`segStorageType`\"\u003e`seg_storage_type`\u003c/span\u003e can only be set to \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e.\n","willReplaceOnChanges":true},"serverlessMode":{"type":"string","description":"The mode of the Serverless instance. Valid values: `Manual`, `Auto`. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`serverlessMode`\" pulumi-lang-dotnet=\"`ServerlessMode`\" pulumi-lang-go=\"`serverlessMode`\" pulumi-lang-python=\"`serverless_mode`\" pulumi-lang-yaml=\"`serverlessMode`\" pulumi-lang-java=\"`serverlessMode`\"\u003e`serverless_mode`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`dbInstanceMode`\" pulumi-lang-dotnet=\"`DbInstanceMode`\" pulumi-lang-go=\"`dbInstanceMode`\" pulumi-lang-python=\"`db_instance_mode`\" pulumi-lang-yaml=\"`dbInstanceMode`\" pulumi-lang-java=\"`dbInstanceMode`\"\u003e`db_instance_mode`\u003c/span\u003e is set to `Serverless`.\n","willReplaceOnChanges":true},"sslEnabled":{"type":"integer","description":"Enable or disable SSL. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the instance.\n"},"storageSize":{"type":"integer","description":"The storage capacity. Unit: GB. Valid values: \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\"\u003e`4000`\u003c/span\u003e.\n\u003e **NOTE:** This parameter must be passed in to create a storage reservation mode instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"usedTime":{"type":"string","description":"The used time. When the parameter \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is `Year`, the \u003cspan pulumi-lang-nodejs=\"`usedTime`\" pulumi-lang-dotnet=\"`UsedTime`\" pulumi-lang-go=\"`usedTime`\" pulumi-lang-python=\"`used_time`\" pulumi-lang-yaml=\"`usedTime`\" pulumi-lang-java=\"`usedTime`\"\u003e`used_time`\u003c/span\u003e value is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e. When the parameter \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is `Month`, the \u003cspan pulumi-lang-nodejs=\"`usedTime`\" pulumi-lang-dotnet=\"`UsedTime`\" pulumi-lang-go=\"`usedTime`\" pulumi-lang-python=\"`used_time`\" pulumi-lang-yaml=\"`usedTime`\" pulumi-lang-java=\"`usedTime`\"\u003e`used_time`\u003c/span\u003e value is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n"},"vectorConfigurationStatus":{"type":"string","description":"Specifies whether to enable vector engine optimization. Default value: \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e.\n"},"vpcId":{"type":"string","description":"The vpc ID of the resource.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vswitch id.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:gpdb/jdbcDataSource:JdbcDataSource":{"description":"Provides a AnalyticDB for PostgreSQL (GPDB) Jdbc Data Source resource.\n\n\n\nFor information about AnalyticDB for PostgreSQL (GPDB) Jdbc Data Source and how to use it, see [What is Jdbc Data Source](https://www.alibabacloud.com/help/en/analyticdb/analyticdb-for-postgresql/developer-reference/api-gpdb-2016-05-03-createjdbcdatasource).\n\n\u003e **NOTE:** Available since v1.230.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = defaultGetNetworks.then(defaultGetNetworks =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: \"cn-beijing-h\",\n}));\nconst defaulttuqTmM = new alicloud.gpdb.Instance(\"defaulttuqTmM\", {\n    instanceSpec: \"2C8G\",\n    description: name,\n    segNodeNum: 2,\n    segStorageType: \"cloud_essd\",\n    instanceNetworkType: \"VPC\",\n    paymentType: \"PayAsYouGo\",\n    sslEnabled: 0,\n    engineVersion: \"6.0\",\n    zoneId: \"cn-beijing-h\",\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    storageSize: 50,\n    masterCu: 4,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    dbInstanceMode: \"StorageElastic\",\n    engine: \"gpdb\",\n    dbInstanceCategory: \"Basic\",\n});\nconst defaultsk1eaS = new alicloud.gpdb.Account(\"defaultsk1eaS\", {\n    accountDescription: \"example_001\",\n    dbInstanceId: defaulttuqTmM.id,\n    accountName: \"example_001\",\n    accountPassword: \"example_001\",\n    accountType: \"Normal\",\n});\nconst defaultRXkfKL = new alicloud.gpdb.ExternalDataService(\"defaultRXkfKL\", {\n    serviceName: name,\n    dbInstanceId: defaulttuqTmM.id,\n    serviceDescription: \"myexample\",\n    serviceSpec: \"8\",\n});\nconst defaultJdbcDataSource = new alicloud.gpdb.JdbcDataSource(\"default\", {\n    jdbcConnectionString: \"jdbc:mysql://rm-2ze327yr44c61183c.mysql.rds.aliyuncs.com:3306/example_001\",\n    dataSourceDescription: \"myexample\",\n    dbInstanceId: defaulttuqTmM.id,\n    jdbcPassword: \"example_001\",\n    dataSourceName: defaultRXkfKL.serviceName,\n    dataSourceType: \"mysql\",\n    jdbcUserName: \"example_001\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=\"cn-beijing-h\")\ndefaulttuq_tm_m = alicloud.gpdb.Instance(\"defaulttuqTmM\",\n    instance_spec=\"2C8G\",\n    description=name,\n    seg_node_num=2,\n    seg_storage_type=\"cloud_essd\",\n    instance_network_type=\"VPC\",\n    payment_type=\"PayAsYouGo\",\n    ssl_enabled=0,\n    engine_version=\"6.0\",\n    zone_id=\"cn-beijing-h\",\n    vswitch_id=default_get_switches.ids[0],\n    storage_size=50,\n    master_cu=4,\n    vpc_id=default_get_networks.ids[0],\n    db_instance_mode=\"StorageElastic\",\n    engine=\"gpdb\",\n    db_instance_category=\"Basic\")\ndefaultsk1ea_s = alicloud.gpdb.Account(\"defaultsk1eaS\",\n    account_description=\"example_001\",\n    db_instance_id=defaulttuq_tm_m.id,\n    account_name=\"example_001\",\n    account_password=\"example_001\",\n    account_type=\"Normal\")\ndefault_r_xkf_kl = alicloud.gpdb.ExternalDataService(\"defaultRXkfKL\",\n    service_name=name,\n    db_instance_id=defaulttuq_tm_m.id,\n    service_description=\"myexample\",\n    service_spec=\"8\")\ndefault_jdbc_data_source = alicloud.gpdb.JdbcDataSource(\"default\",\n    jdbc_connection_string=\"jdbc:mysql://rm-2ze327yr44c61183c.mysql.rds.aliyuncs.com:3306/example_001\",\n    data_source_description=\"myexample\",\n    db_instance_id=defaulttuq_tm_m.id,\n    jdbc_password=\"example_001\",\n    data_source_name=default_r_xkf_kl.service_name,\n    data_source_type=\"mysql\",\n    jdbc_user_name=\"example_001\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = \"cn-beijing-h\",\n    });\n\n    var defaulttuqTmM = new AliCloud.Gpdb.Instance(\"defaulttuqTmM\", new()\n    {\n        InstanceSpec = \"2C8G\",\n        Description = name,\n        SegNodeNum = 2,\n        SegStorageType = \"cloud_essd\",\n        InstanceNetworkType = \"VPC\",\n        PaymentType = \"PayAsYouGo\",\n        SslEnabled = 0,\n        EngineVersion = \"6.0\",\n        ZoneId = \"cn-beijing-h\",\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        StorageSize = 50,\n        MasterCu = 4,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        DbInstanceMode = \"StorageElastic\",\n        Engine = \"gpdb\",\n        DbInstanceCategory = \"Basic\",\n    });\n\n    var defaultsk1eaS = new AliCloud.Gpdb.Account(\"defaultsk1eaS\", new()\n    {\n        AccountDescription = \"example_001\",\n        DbInstanceId = defaulttuqTmM.Id,\n        AccountName = \"example_001\",\n        AccountPassword = \"example_001\",\n        AccountType = \"Normal\",\n    });\n\n    var defaultRXkfKL = new AliCloud.Gpdb.ExternalDataService(\"defaultRXkfKL\", new()\n    {\n        ServiceName = name,\n        DbInstanceId = defaulttuqTmM.Id,\n        ServiceDescription = \"myexample\",\n        ServiceSpec = \"8\",\n    });\n\n    var defaultJdbcDataSource = new AliCloud.Gpdb.JdbcDataSource(\"default\", new()\n    {\n        JdbcConnectionString = \"jdbc:mysql://rm-2ze327yr44c61183c.mysql.rds.aliyuncs.com:3306/example_001\",\n        DataSourceDescription = \"myexample\",\n        DbInstanceId = defaulttuqTmM.Id,\n        JdbcPassword = \"example_001\",\n        DataSourceName = defaultRXkfKL.ServiceName,\n        DataSourceType = \"mysql\",\n        JdbcUserName = \"example_001\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(\"cn-beijing-h\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaulttuqTmM, err := gpdb.NewInstance(ctx, \"defaulttuqTmM\", \u0026gpdb.InstanceArgs{\n\t\t\tInstanceSpec:        pulumi.String(\"2C8G\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tSegNodeNum:          pulumi.Int(2),\n\t\t\tSegStorageType:      pulumi.String(\"cloud_essd\"),\n\t\t\tInstanceNetworkType: pulumi.String(\"VPC\"),\n\t\t\tPaymentType:         pulumi.String(\"PayAsYouGo\"),\n\t\t\tSslEnabled:          pulumi.Int(0),\n\t\t\tEngineVersion:       pulumi.String(\"6.0\"),\n\t\t\tZoneId:              pulumi.String(\"cn-beijing-h\"),\n\t\t\tVswitchId:           pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tStorageSize:         pulumi.Int(50),\n\t\t\tMasterCu:            pulumi.Int(4),\n\t\t\tVpcId:               pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tDbInstanceMode:      pulumi.String(\"StorageElastic\"),\n\t\t\tEngine:              pulumi.String(\"gpdb\"),\n\t\t\tDbInstanceCategory:  pulumi.String(\"Basic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gpdb.NewAccount(ctx, \"defaultsk1eaS\", \u0026gpdb.AccountArgs{\n\t\t\tAccountDescription: pulumi.String(\"example_001\"),\n\t\t\tDbInstanceId:       defaulttuqTmM.ID(),\n\t\t\tAccountName:        pulumi.String(\"example_001\"),\n\t\t\tAccountPassword:    pulumi.String(\"example_001\"),\n\t\t\tAccountType:        pulumi.String(\"Normal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRXkfKL, err := gpdb.NewExternalDataService(ctx, \"defaultRXkfKL\", \u0026gpdb.ExternalDataServiceArgs{\n\t\t\tServiceName:        pulumi.String(name),\n\t\t\tDbInstanceId:       defaulttuqTmM.ID(),\n\t\t\tServiceDescription: pulumi.String(\"myexample\"),\n\t\t\tServiceSpec:        pulumi.String(\"8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gpdb.NewJdbcDataSource(ctx, \"default\", \u0026gpdb.JdbcDataSourceArgs{\n\t\t\tJdbcConnectionString:  pulumi.String(\"jdbc:mysql://rm-2ze327yr44c61183c.mysql.rds.aliyuncs.com:3306/example_001\"),\n\t\t\tDataSourceDescription: pulumi.String(\"myexample\"),\n\t\t\tDbInstanceId:          defaulttuqTmM.ID(),\n\t\t\tJdbcPassword:          pulumi.String(\"example_001\"),\n\t\t\tDataSourceName:        defaultRXkfKL.ServiceName,\n\t\t\tDataSourceType:        pulumi.String(\"mysql\"),\n\t\t\tJdbcUserName:          pulumi.String(\"example_001\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.gpdb.Instance;\nimport com.pulumi.alicloud.gpdb.InstanceArgs;\nimport com.pulumi.alicloud.gpdb.Account;\nimport com.pulumi.alicloud.gpdb.AccountArgs;\nimport com.pulumi.alicloud.gpdb.ExternalDataService;\nimport com.pulumi.alicloud.gpdb.ExternalDataServiceArgs;\nimport com.pulumi.alicloud.gpdb.JdbcDataSource;\nimport com.pulumi.alicloud.gpdb.JdbcDataSourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(\"cn-beijing-h\")\n            .build());\n\n        var defaulttuqTmM = new Instance(\"defaulttuqTmM\", InstanceArgs.builder()\n            .instanceSpec(\"2C8G\")\n            .description(name)\n            .segNodeNum(2)\n            .segStorageType(\"cloud_essd\")\n            .instanceNetworkType(\"VPC\")\n            .paymentType(\"PayAsYouGo\")\n            .sslEnabled(0)\n            .engineVersion(\"6.0\")\n            .zoneId(\"cn-beijing-h\")\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .storageSize(50)\n            .masterCu(4)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .dbInstanceMode(\"StorageElastic\")\n            .engine(\"gpdb\")\n            .dbInstanceCategory(\"Basic\")\n            .build());\n\n        var defaultsk1eaS = new Account(\"defaultsk1eaS\", AccountArgs.builder()\n            .accountDescription(\"example_001\")\n            .dbInstanceId(defaulttuqTmM.id())\n            .accountName(\"example_001\")\n            .accountPassword(\"example_001\")\n            .accountType(\"Normal\")\n            .build());\n\n        var defaultRXkfKL = new ExternalDataService(\"defaultRXkfKL\", ExternalDataServiceArgs.builder()\n            .serviceName(name)\n            .dbInstanceId(defaulttuqTmM.id())\n            .serviceDescription(\"myexample\")\n            .serviceSpec(\"8\")\n            .build());\n\n        var defaultJdbcDataSource = new JdbcDataSource(\"defaultJdbcDataSource\", JdbcDataSourceArgs.builder()\n            .jdbcConnectionString(\"jdbc:mysql://rm-2ze327yr44c61183c.mysql.rds.aliyuncs.com:3306/example_001\")\n            .dataSourceDescription(\"myexample\")\n            .dbInstanceId(defaulttuqTmM.id())\n            .jdbcPassword(\"example_001\")\n            .dataSourceName(defaultRXkfKL.serviceName())\n            .dataSourceType(\"mysql\")\n            .jdbcUserName(\"example_001\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaulttuqTmM:\n    type: alicloud:gpdb:Instance\n    properties:\n      instanceSpec: 2C8G\n      description: ${name}\n      segNodeNum: '2'\n      segStorageType: cloud_essd\n      instanceNetworkType: VPC\n      paymentType: PayAsYouGo\n      sslEnabled: '0'\n      engineVersion: '6.0'\n      zoneId: cn-beijing-h\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      storageSize: '50'\n      masterCu: '4'\n      vpcId: ${defaultGetNetworks.ids[0]}\n      dbInstanceMode: StorageElastic\n      engine: gpdb\n      dbInstanceCategory: Basic\n  defaultsk1eaS:\n    type: alicloud:gpdb:Account\n    properties:\n      accountDescription: example_001\n      dbInstanceId: ${defaulttuqTmM.id}\n      accountName: example_001\n      accountPassword: example_001\n      accountType: Normal\n  defaultRXkfKL:\n    type: alicloud:gpdb:ExternalDataService\n    properties:\n      serviceName: ${name}\n      dbInstanceId: ${defaulttuqTmM.id}\n      serviceDescription: myexample\n      serviceSpec: '8'\n  defaultJdbcDataSource:\n    type: alicloud:gpdb:JdbcDataSource\n    name: default\n    properties:\n      jdbcConnectionString: jdbc:mysql://rm-2ze327yr44c61183c.mysql.rds.aliyuncs.com:3306/example_001\n      dataSourceDescription: myexample\n      dbInstanceId: ${defaulttuqTmM.id}\n      jdbcPassword: example_001\n      dataSourceName: ${defaultRXkfKL.serviceName}\n      dataSourceType: mysql\n      jdbcUserName: example_001\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: cn-beijing-h\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAnalyticDB for PostgreSQL (GPDB) Jdbc Data Source can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/jdbcDataSource:JdbcDataSource example \u003cdb_instance_id\u003e:\u003cdata_source_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"dataSourceDescription":{"type":"string","description":"Data Source Description\n"},"dataSourceId":{"type":"string","description":"The data source ID.\n"},"dataSourceName":{"type":"string","description":"Data Source Name\n"},"dataSourceType":{"type":"string","description":"Data Source Type\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n"},"jdbcConnectionString":{"type":"string","description":"The JDBC connection string.\n"},"jdbcPassword":{"type":"string","description":"The password of the database account.\n"},"jdbcUserName":{"type":"string","description":"The name of the database account.\n"},"status":{"type":"string","description":"Data Source Status\n"}},"required":["createTime","dataSourceId","dbInstanceId","jdbcUserName","status"],"inputProperties":{"dataSourceDescription":{"type":"string","description":"Data Source Description\n"},"dataSourceName":{"type":"string","description":"Data Source Name\n","willReplaceOnChanges":true},"dataSourceType":{"type":"string","description":"Data Source Type\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"jdbcConnectionString":{"type":"string","description":"The JDBC connection string.\n"},"jdbcPassword":{"type":"string","description":"The password of the database account.\n"},"jdbcUserName":{"type":"string","description":"The name of the database account.\n"}},"requiredInputs":["dbInstanceId","jdbcUserName"],"stateInputs":{"description":"Input properties used for looking up and filtering JdbcDataSource resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"dataSourceDescription":{"type":"string","description":"Data Source Description\n"},"dataSourceId":{"type":"string","description":"The data source ID.\n"},"dataSourceName":{"type":"string","description":"Data Source Name\n","willReplaceOnChanges":true},"dataSourceType":{"type":"string","description":"Data Source Type\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"jdbcConnectionString":{"type":"string","description":"The JDBC connection string.\n"},"jdbcPassword":{"type":"string","description":"The password of the database account.\n"},"jdbcUserName":{"type":"string","description":"The name of the database account.\n"},"status":{"type":"string","description":"Data Source Status\n"}},"type":"object"}},"alicloud:gpdb/remoteAdbDataSource:RemoteAdbDataSource":{"description":"Provides a GPDB Remote ADB Data Source resource.\n\nRemoteADBDataSource is the data external table call method between greenplums, which will be used for data external table access between ADB-PG.\n\nFor information about GPDB Remote ADB Data Source and how to use it, see [What is Remote ADB Data Source](https://www.alibabacloud.com/help/en/analyticdb/analyticdb-for-postgresql/developer-reference/api-gpdb-2016-05-03-createremoteadbdatasource).\n\n\u003e **NOTE:** Available since v1.227.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst default4Mf0nY = new alicloud.vpc.Network(\"default4Mf0nY\", {cidrBlock: \"192.168.0.0/16\"});\nconst defaultwSAVpf = new alicloud.vpc.Switch(\"defaultwSAVpf\", {\n    vpcId: default4Mf0nY.id,\n    zoneId: \"cn-beijing-h\",\n    cidrBlock: \"192.168.1.0/24\",\n});\nconst defaultEtEzMF = new alicloud.gpdb.Instance(\"defaultEtEzMF\", {\n    instanceSpec: \"2C8G\",\n    description: name,\n    segNodeNum: 2,\n    segStorageType: \"cloud_essd\",\n    instanceNetworkType: \"VPC\",\n    dbInstanceCategory: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    sslEnabled: 0,\n    engineVersion: \"6.0\",\n    zoneId: \"cn-beijing-h\",\n    vswitchId: defaultwSAVpf.id,\n    storageSize: 50,\n    masterCu: 4,\n    vpcId: default4Mf0nY.id,\n    dbInstanceMode: \"StorageElastic\",\n    engine: \"gpdb\",\n});\nconst defaultEY7t9t = new alicloud.gpdb.Instance(\"defaultEY7t9t\", {\n    instanceSpec: \"2C8G\",\n    description: name,\n    segNodeNum: 2,\n    segStorageType: \"cloud_essd\",\n    instanceNetworkType: \"VPC\",\n    dbInstanceCategory: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    sslEnabled: 0,\n    engineVersion: \"6.0\",\n    zoneId: \"cn-beijing-h\",\n    vswitchId: defaultwSAVpf.id,\n    storageSize: 50,\n    masterCu: 4,\n    vpcId: default4Mf0nY.id,\n    dbInstanceMode: \"StorageElastic\",\n    engine: \"gpdb\",\n});\nconst default26qpEo = new alicloud.gpdb.Account(\"default26qpEo\", {\n    accountDescription: \"example_001\",\n    dbInstanceId: defaultEtEzMF.id,\n    accountName: \"example_001\",\n    accountPassword: \"example_001\",\n});\nconst defaultwXePof = new alicloud.gpdb.Account(\"defaultwXePof\", {\n    accountDescription: \"example_001\",\n    dbInstanceId: defaultEY7t9t.id,\n    accountName: \"example_001\",\n    accountPassword: \"example_001\",\n});\nconst defaultRemoteAdbDataSource = new alicloud.gpdb.RemoteAdbDataSource(\"default\", {\n    remoteDatabase: \"example_001\",\n    managerUserName: \"example_001\",\n    userName: \"example_001\",\n    remoteDbInstanceId: defaultwXePof.dbInstanceId,\n    localDatabase: \"example_001\",\n    dataSourceName: \"myexample\",\n    userPassword: \"example_001\",\n    managerUserPassword: \"example_001\",\n    localDbInstanceId: defaultEtEzMF.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault4_mf0n_y = alicloud.vpc.Network(\"default4Mf0nY\", cidr_block=\"192.168.0.0/16\")\ndefaultw_sa_vpf = alicloud.vpc.Switch(\"defaultwSAVpf\",\n    vpc_id=default4_mf0n_y.id,\n    zone_id=\"cn-beijing-h\",\n    cidr_block=\"192.168.1.0/24\")\ndefault_et_ez_mf = alicloud.gpdb.Instance(\"defaultEtEzMF\",\n    instance_spec=\"2C8G\",\n    description=name,\n    seg_node_num=2,\n    seg_storage_type=\"cloud_essd\",\n    instance_network_type=\"VPC\",\n    db_instance_category=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    ssl_enabled=0,\n    engine_version=\"6.0\",\n    zone_id=\"cn-beijing-h\",\n    vswitch_id=defaultw_sa_vpf.id,\n    storage_size=50,\n    master_cu=4,\n    vpc_id=default4_mf0n_y.id,\n    db_instance_mode=\"StorageElastic\",\n    engine=\"gpdb\")\ndefault_ey7t9t = alicloud.gpdb.Instance(\"defaultEY7t9t\",\n    instance_spec=\"2C8G\",\n    description=name,\n    seg_node_num=2,\n    seg_storage_type=\"cloud_essd\",\n    instance_network_type=\"VPC\",\n    db_instance_category=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    ssl_enabled=0,\n    engine_version=\"6.0\",\n    zone_id=\"cn-beijing-h\",\n    vswitch_id=defaultw_sa_vpf.id,\n    storage_size=50,\n    master_cu=4,\n    vpc_id=default4_mf0n_y.id,\n    db_instance_mode=\"StorageElastic\",\n    engine=\"gpdb\")\ndefault26qp_eo = alicloud.gpdb.Account(\"default26qpEo\",\n    account_description=\"example_001\",\n    db_instance_id=default_et_ez_mf.id,\n    account_name=\"example_001\",\n    account_password=\"example_001\")\ndefaultw_xe_pof = alicloud.gpdb.Account(\"defaultwXePof\",\n    account_description=\"example_001\",\n    db_instance_id=default_ey7t9t.id,\n    account_name=\"example_001\",\n    account_password=\"example_001\")\ndefault_remote_adb_data_source = alicloud.gpdb.RemoteAdbDataSource(\"default\",\n    remote_database=\"example_001\",\n    manager_user_name=\"example_001\",\n    user_name=\"example_001\",\n    remote_db_instance_id=defaultw_xe_pof.db_instance_id,\n    local_database=\"example_001\",\n    data_source_name=\"myexample\",\n    user_password=\"example_001\",\n    manager_user_password=\"example_001\",\n    local_db_instance_id=default_et_ez_mf.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var default4Mf0nY = new AliCloud.Vpc.Network(\"default4Mf0nY\", new()\n    {\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultwSAVpf = new AliCloud.Vpc.Switch(\"defaultwSAVpf\", new()\n    {\n        VpcId = default4Mf0nY.Id,\n        ZoneId = \"cn-beijing-h\",\n        CidrBlock = \"192.168.1.0/24\",\n    });\n\n    var defaultEtEzMF = new AliCloud.Gpdb.Instance(\"defaultEtEzMF\", new()\n    {\n        InstanceSpec = \"2C8G\",\n        Description = name,\n        SegNodeNum = 2,\n        SegStorageType = \"cloud_essd\",\n        InstanceNetworkType = \"VPC\",\n        DbInstanceCategory = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        SslEnabled = 0,\n        EngineVersion = \"6.0\",\n        ZoneId = \"cn-beijing-h\",\n        VswitchId = defaultwSAVpf.Id,\n        StorageSize = 50,\n        MasterCu = 4,\n        VpcId = default4Mf0nY.Id,\n        DbInstanceMode = \"StorageElastic\",\n        Engine = \"gpdb\",\n    });\n\n    var defaultEY7t9t = new AliCloud.Gpdb.Instance(\"defaultEY7t9t\", new()\n    {\n        InstanceSpec = \"2C8G\",\n        Description = name,\n        SegNodeNum = 2,\n        SegStorageType = \"cloud_essd\",\n        InstanceNetworkType = \"VPC\",\n        DbInstanceCategory = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        SslEnabled = 0,\n        EngineVersion = \"6.0\",\n        ZoneId = \"cn-beijing-h\",\n        VswitchId = defaultwSAVpf.Id,\n        StorageSize = 50,\n        MasterCu = 4,\n        VpcId = default4Mf0nY.Id,\n        DbInstanceMode = \"StorageElastic\",\n        Engine = \"gpdb\",\n    });\n\n    var default26qpEo = new AliCloud.Gpdb.Account(\"default26qpEo\", new()\n    {\n        AccountDescription = \"example_001\",\n        DbInstanceId = defaultEtEzMF.Id,\n        AccountName = \"example_001\",\n        AccountPassword = \"example_001\",\n    });\n\n    var defaultwXePof = new AliCloud.Gpdb.Account(\"defaultwXePof\", new()\n    {\n        AccountDescription = \"example_001\",\n        DbInstanceId = defaultEY7t9t.Id,\n        AccountName = \"example_001\",\n        AccountPassword = \"example_001\",\n    });\n\n    var defaultRemoteAdbDataSource = new AliCloud.Gpdb.RemoteAdbDataSource(\"default\", new()\n    {\n        RemoteDatabase = \"example_001\",\n        ManagerUserName = \"example_001\",\n        UserName = \"example_001\",\n        RemoteDbInstanceId = defaultwXePof.DbInstanceId,\n        LocalDatabase = \"example_001\",\n        DataSourceName = \"myexample\",\n        UserPassword = \"example_001\",\n        ManagerUserPassword = \"example_001\",\n        LocalDbInstanceId = defaultEtEzMF.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault4Mf0nY, err := vpc.NewNetwork(ctx, \"default4Mf0nY\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultwSAVpf, err := vpc.NewSwitch(ctx, \"defaultwSAVpf\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     default4Mf0nY.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-beijing-h\"),\n\t\t\tCidrBlock: pulumi.String(\"192.168.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEtEzMF, err := gpdb.NewInstance(ctx, \"defaultEtEzMF\", \u0026gpdb.InstanceArgs{\n\t\t\tInstanceSpec:        pulumi.String(\"2C8G\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tSegNodeNum:          pulumi.Int(2),\n\t\t\tSegStorageType:      pulumi.String(\"cloud_essd\"),\n\t\t\tInstanceNetworkType: pulumi.String(\"VPC\"),\n\t\t\tDbInstanceCategory:  pulumi.String(\"Basic\"),\n\t\t\tPaymentType:         pulumi.String(\"PayAsYouGo\"),\n\t\t\tSslEnabled:          pulumi.Int(0),\n\t\t\tEngineVersion:       pulumi.String(\"6.0\"),\n\t\t\tZoneId:              pulumi.String(\"cn-beijing-h\"),\n\t\t\tVswitchId:           defaultwSAVpf.ID(),\n\t\t\tStorageSize:         pulumi.Int(50),\n\t\t\tMasterCu:            pulumi.Int(4),\n\t\t\tVpcId:               default4Mf0nY.ID(),\n\t\t\tDbInstanceMode:      pulumi.String(\"StorageElastic\"),\n\t\t\tEngine:              pulumi.String(\"gpdb\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEY7t9t, err := gpdb.NewInstance(ctx, \"defaultEY7t9t\", \u0026gpdb.InstanceArgs{\n\t\t\tInstanceSpec:        pulumi.String(\"2C8G\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tSegNodeNum:          pulumi.Int(2),\n\t\t\tSegStorageType:      pulumi.String(\"cloud_essd\"),\n\t\t\tInstanceNetworkType: pulumi.String(\"VPC\"),\n\t\t\tDbInstanceCategory:  pulumi.String(\"Basic\"),\n\t\t\tPaymentType:         pulumi.String(\"PayAsYouGo\"),\n\t\t\tSslEnabled:          pulumi.Int(0),\n\t\t\tEngineVersion:       pulumi.String(\"6.0\"),\n\t\t\tZoneId:              pulumi.String(\"cn-beijing-h\"),\n\t\t\tVswitchId:           defaultwSAVpf.ID(),\n\t\t\tStorageSize:         pulumi.Int(50),\n\t\t\tMasterCu:            pulumi.Int(4),\n\t\t\tVpcId:               default4Mf0nY.ID(),\n\t\t\tDbInstanceMode:      pulumi.String(\"StorageElastic\"),\n\t\t\tEngine:              pulumi.String(\"gpdb\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gpdb.NewAccount(ctx, \"default26qpEo\", \u0026gpdb.AccountArgs{\n\t\t\tAccountDescription: pulumi.String(\"example_001\"),\n\t\t\tDbInstanceId:       defaultEtEzMF.ID(),\n\t\t\tAccountName:        pulumi.String(\"example_001\"),\n\t\t\tAccountPassword:    pulumi.String(\"example_001\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultwXePof, err := gpdb.NewAccount(ctx, \"defaultwXePof\", \u0026gpdb.AccountArgs{\n\t\t\tAccountDescription: pulumi.String(\"example_001\"),\n\t\t\tDbInstanceId:       defaultEY7t9t.ID(),\n\t\t\tAccountName:        pulumi.String(\"example_001\"),\n\t\t\tAccountPassword:    pulumi.String(\"example_001\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gpdb.NewRemoteAdbDataSource(ctx, \"default\", \u0026gpdb.RemoteAdbDataSourceArgs{\n\t\t\tRemoteDatabase:      pulumi.String(\"example_001\"),\n\t\t\tManagerUserName:     pulumi.String(\"example_001\"),\n\t\t\tUserName:            pulumi.String(\"example_001\"),\n\t\t\tRemoteDbInstanceId:  defaultwXePof.DbInstanceId,\n\t\t\tLocalDatabase:       pulumi.String(\"example_001\"),\n\t\t\tDataSourceName:      pulumi.String(\"myexample\"),\n\t\t\tUserPassword:        pulumi.String(\"example_001\"),\n\t\t\tManagerUserPassword: pulumi.String(\"example_001\"),\n\t\t\tLocalDbInstanceId:   defaultEtEzMF.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.gpdb.Instance;\nimport com.pulumi.alicloud.gpdb.InstanceArgs;\nimport com.pulumi.alicloud.gpdb.Account;\nimport com.pulumi.alicloud.gpdb.AccountArgs;\nimport com.pulumi.alicloud.gpdb.RemoteAdbDataSource;\nimport com.pulumi.alicloud.gpdb.RemoteAdbDataSourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var default4Mf0nY = new Network(\"default4Mf0nY\", NetworkArgs.builder()\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultwSAVpf = new Switch(\"defaultwSAVpf\", SwitchArgs.builder()\n            .vpcId(default4Mf0nY.id())\n            .zoneId(\"cn-beijing-h\")\n            .cidrBlock(\"192.168.1.0/24\")\n            .build());\n\n        var defaultEtEzMF = new Instance(\"defaultEtEzMF\", InstanceArgs.builder()\n            .instanceSpec(\"2C8G\")\n            .description(name)\n            .segNodeNum(2)\n            .segStorageType(\"cloud_essd\")\n            .instanceNetworkType(\"VPC\")\n            .dbInstanceCategory(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .sslEnabled(0)\n            .engineVersion(\"6.0\")\n            .zoneId(\"cn-beijing-h\")\n            .vswitchId(defaultwSAVpf.id())\n            .storageSize(50)\n            .masterCu(4)\n            .vpcId(default4Mf0nY.id())\n            .dbInstanceMode(\"StorageElastic\")\n            .engine(\"gpdb\")\n            .build());\n\n        var defaultEY7t9t = new Instance(\"defaultEY7t9t\", InstanceArgs.builder()\n            .instanceSpec(\"2C8G\")\n            .description(name)\n            .segNodeNum(2)\n            .segStorageType(\"cloud_essd\")\n            .instanceNetworkType(\"VPC\")\n            .dbInstanceCategory(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .sslEnabled(0)\n            .engineVersion(\"6.0\")\n            .zoneId(\"cn-beijing-h\")\n            .vswitchId(defaultwSAVpf.id())\n            .storageSize(50)\n            .masterCu(4)\n            .vpcId(default4Mf0nY.id())\n            .dbInstanceMode(\"StorageElastic\")\n            .engine(\"gpdb\")\n            .build());\n\n        var default26qpEo = new Account(\"default26qpEo\", AccountArgs.builder()\n            .accountDescription(\"example_001\")\n            .dbInstanceId(defaultEtEzMF.id())\n            .accountName(\"example_001\")\n            .accountPassword(\"example_001\")\n            .build());\n\n        var defaultwXePof = new Account(\"defaultwXePof\", AccountArgs.builder()\n            .accountDescription(\"example_001\")\n            .dbInstanceId(defaultEY7t9t.id())\n            .accountName(\"example_001\")\n            .accountPassword(\"example_001\")\n            .build());\n\n        var defaultRemoteAdbDataSource = new RemoteAdbDataSource(\"defaultRemoteAdbDataSource\", RemoteAdbDataSourceArgs.builder()\n            .remoteDatabase(\"example_001\")\n            .managerUserName(\"example_001\")\n            .userName(\"example_001\")\n            .remoteDbInstanceId(defaultwXePof.dbInstanceId())\n            .localDatabase(\"example_001\")\n            .dataSourceName(\"myexample\")\n            .userPassword(\"example_001\")\n            .managerUserPassword(\"example_001\")\n            .localDbInstanceId(defaultEtEzMF.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default4Mf0nY:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 192.168.0.0/16\n  defaultwSAVpf:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${default4Mf0nY.id}\n      zoneId: cn-beijing-h\n      cidrBlock: 192.168.1.0/24\n  defaultEtEzMF:\n    type: alicloud:gpdb:Instance\n    properties:\n      instanceSpec: 2C8G\n      description: ${name}\n      segNodeNum: '2'\n      segStorageType: cloud_essd\n      instanceNetworkType: VPC\n      dbInstanceCategory: Basic\n      paymentType: PayAsYouGo\n      sslEnabled: '0'\n      engineVersion: '6.0'\n      zoneId: cn-beijing-h\n      vswitchId: ${defaultwSAVpf.id}\n      storageSize: '50'\n      masterCu: '4'\n      vpcId: ${default4Mf0nY.id}\n      dbInstanceMode: StorageElastic\n      engine: gpdb\n  defaultEY7t9t:\n    type: alicloud:gpdb:Instance\n    properties:\n      instanceSpec: 2C8G\n      description: ${name}\n      segNodeNum: '2'\n      segStorageType: cloud_essd\n      instanceNetworkType: VPC\n      dbInstanceCategory: Basic\n      paymentType: PayAsYouGo\n      sslEnabled: '0'\n      engineVersion: '6.0'\n      zoneId: cn-beijing-h\n      vswitchId: ${defaultwSAVpf.id}\n      storageSize: '50'\n      masterCu: '4'\n      vpcId: ${default4Mf0nY.id}\n      dbInstanceMode: StorageElastic\n      engine: gpdb\n  default26qpEo:\n    type: alicloud:gpdb:Account\n    properties:\n      accountDescription: example_001\n      dbInstanceId: ${defaultEtEzMF.id}\n      accountName: example_001\n      accountPassword: example_001\n  defaultwXePof:\n    type: alicloud:gpdb:Account\n    properties:\n      accountDescription: example_001\n      dbInstanceId: ${defaultEY7t9t.id}\n      accountName: example_001\n      accountPassword: example_001\n  defaultRemoteAdbDataSource:\n    type: alicloud:gpdb:RemoteAdbDataSource\n    name: default\n    properties:\n      remoteDatabase: example_001\n      managerUserName: example_001\n      userName: example_001\n      remoteDbInstanceId: ${defaultwXePof.dbInstanceId}\n      localDatabase: example_001\n      dataSourceName: myexample\n      userPassword: example_001\n      managerUserPassword: example_001\n      localDbInstanceId: ${defaultEtEzMF.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGPDB Remote ADB Data Source can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/remoteAdbDataSource:RemoteAdbDataSource example \u003clocal_db_instance_id\u003e:\u003cremote_adb_data_source_id\u003e\n```\n\n","properties":{"dataSourceName":{"type":"string","description":"Data Source Name\n"},"localDatabase":{"type":"string","description":"The database of the local instance which connection data.\n"},"localDbInstanceId":{"type":"string","description":"The instanceId of the local instance which connection data.\n"},"managerUserName":{"type":"string","description":"The Management user name of the local instance.\n"},"managerUserPassword":{"type":"string","description":"Password of the Manager user of the local instance\n","secret":true},"remoteAdbDataSourceId":{"type":"integer","description":"The first ID of the resource\n"},"remoteDatabase":{"type":"string","description":"The database of the remote instance which provide data.\n"},"remoteDbInstanceId":{"type":"string","description":"The instanceId of the remote instance which provide data.\n"},"status":{"type":"string","description":"The status of the resource\n"},"userName":{"type":"string","description":"The user name used to connect to the remote instance\n"},"userPassword":{"type":"string","description":"The user password used to connect to the remote instance\n","secret":true}},"required":["localDatabase","localDbInstanceId","managerUserName","managerUserPassword","remoteAdbDataSourceId","remoteDatabase","remoteDbInstanceId","status","userName","userPassword"],"inputProperties":{"dataSourceName":{"type":"string","description":"Data Source Name\n"},"localDatabase":{"type":"string","description":"The database of the local instance which connection data.\n","willReplaceOnChanges":true},"localDbInstanceId":{"type":"string","description":"The instanceId of the local instance which connection data.\n","willReplaceOnChanges":true},"managerUserName":{"type":"string","description":"The Management user name of the local instance.\n","willReplaceOnChanges":true},"managerUserPassword":{"type":"string","description":"Password of the Manager user of the local instance\n","secret":true},"remoteDatabase":{"type":"string","description":"The database of the remote instance which provide data.\n","willReplaceOnChanges":true},"remoteDbInstanceId":{"type":"string","description":"The instanceId of the remote instance which provide data.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"The user name used to connect to the remote instance\n"},"userPassword":{"type":"string","description":"The user password used to connect to the remote instance\n","secret":true}},"requiredInputs":["localDatabase","localDbInstanceId","managerUserName","managerUserPassword","remoteDatabase","remoteDbInstanceId","userName","userPassword"],"stateInputs":{"description":"Input properties used for looking up and filtering RemoteAdbDataSource resources.\n","properties":{"dataSourceName":{"type":"string","description":"Data Source Name\n"},"localDatabase":{"type":"string","description":"The database of the local instance which connection data.\n","willReplaceOnChanges":true},"localDbInstanceId":{"type":"string","description":"The instanceId of the local instance which connection data.\n","willReplaceOnChanges":true},"managerUserName":{"type":"string","description":"The Management user name of the local instance.\n","willReplaceOnChanges":true},"managerUserPassword":{"type":"string","description":"Password of the Manager user of the local instance\n","secret":true},"remoteAdbDataSourceId":{"type":"integer","description":"The first ID of the resource\n"},"remoteDatabase":{"type":"string","description":"The database of the remote instance which provide data.\n","willReplaceOnChanges":true},"remoteDbInstanceId":{"type":"string","description":"The instanceId of the remote instance which provide data.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"},"userName":{"type":"string","description":"The user name used to connect to the remote instance\n"},"userPassword":{"type":"string","description":"The user password used to connect to the remote instance\n","secret":true}},"type":"object"}},"alicloud:gpdb/streamingDataService:StreamingDataService":{"description":"Provides a AnalyticDB for PostgreSQL (GPDB) Streaming Data Service resource.\n\n\n\nFor information about AnalyticDB for PostgreSQL (GPDB) Streaming Data Service and how to use it, see [What is Streaming Data Service](https://www.alibabacloud.com/help/en/analyticdb/analyticdb-for-postgresql/developer-reference/api-gpdb-2016-05-03-createstreamingdataservice).\n\n\u003e **NOTE:** Available since v1.227.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultTXZPBL = new alicloud.vpc.Network(\"defaultTXZPBL\", {cidrBlock: \"192.168.0.0/16\"});\nconst defaultrJ5mmz = new alicloud.vpc.Switch(\"defaultrJ5mmz\", {\n    vpcId: defaultTXZPBL.id,\n    zoneId: \"cn-beijing-h\",\n    cidrBlock: \"192.168.1.0/24\",\n});\nconst default1oSPzX = new alicloud.gpdb.Instance(\"default1oSPzX\", {\n    instanceSpec: \"2C8G\",\n    description: name,\n    segNodeNum: 2,\n    segStorageType: \"cloud_essd\",\n    instanceNetworkType: \"VPC\",\n    dbInstanceCategory: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    sslEnabled: 0,\n    engineVersion: \"6.0\",\n    zoneId: \"cn-beijing-h\",\n    vswitchId: defaultrJ5mmz.id,\n    storageSize: 50,\n    masterCu: 4,\n    vpcId: defaultTXZPBL.id,\n    dbInstanceMode: \"StorageElastic\",\n    engine: \"gpdb\",\n});\nconst defaultStreamingDataService = new alicloud.gpdb.StreamingDataService(\"default\", {\n    serviceName: \"example\",\n    dbInstanceId: default1oSPzX.id,\n    serviceDescription: \"example\",\n    serviceSpec: \"8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_txzpbl = alicloud.vpc.Network(\"defaultTXZPBL\", cidr_block=\"192.168.0.0/16\")\ndefaultr_j5mmz = alicloud.vpc.Switch(\"defaultrJ5mmz\",\n    vpc_id=default_txzpbl.id,\n    zone_id=\"cn-beijing-h\",\n    cidr_block=\"192.168.1.0/24\")\ndefault1o_s_pz_x = alicloud.gpdb.Instance(\"default1oSPzX\",\n    instance_spec=\"2C8G\",\n    description=name,\n    seg_node_num=2,\n    seg_storage_type=\"cloud_essd\",\n    instance_network_type=\"VPC\",\n    db_instance_category=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    ssl_enabled=0,\n    engine_version=\"6.0\",\n    zone_id=\"cn-beijing-h\",\n    vswitch_id=defaultr_j5mmz.id,\n    storage_size=50,\n    master_cu=4,\n    vpc_id=default_txzpbl.id,\n    db_instance_mode=\"StorageElastic\",\n    engine=\"gpdb\")\ndefault_streaming_data_service = alicloud.gpdb.StreamingDataService(\"default\",\n    service_name=\"example\",\n    db_instance_id=default1o_s_pz_x.id,\n    service_description=\"example\",\n    service_spec=\"8\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultTXZPBL = new AliCloud.Vpc.Network(\"defaultTXZPBL\", new()\n    {\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultrJ5mmz = new AliCloud.Vpc.Switch(\"defaultrJ5mmz\", new()\n    {\n        VpcId = defaultTXZPBL.Id,\n        ZoneId = \"cn-beijing-h\",\n        CidrBlock = \"192.168.1.0/24\",\n    });\n\n    var default1oSPzX = new AliCloud.Gpdb.Instance(\"default1oSPzX\", new()\n    {\n        InstanceSpec = \"2C8G\",\n        Description = name,\n        SegNodeNum = 2,\n        SegStorageType = \"cloud_essd\",\n        InstanceNetworkType = \"VPC\",\n        DbInstanceCategory = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        SslEnabled = 0,\n        EngineVersion = \"6.0\",\n        ZoneId = \"cn-beijing-h\",\n        VswitchId = defaultrJ5mmz.Id,\n        StorageSize = 50,\n        MasterCu = 4,\n        VpcId = defaultTXZPBL.Id,\n        DbInstanceMode = \"StorageElastic\",\n        Engine = \"gpdb\",\n    });\n\n    var defaultStreamingDataService = new AliCloud.Gpdb.StreamingDataService(\"default\", new()\n    {\n        ServiceName = \"example\",\n        DbInstanceId = default1oSPzX.Id,\n        ServiceDescription = \"example\",\n        ServiceSpec = \"8\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTXZPBL, err := vpc.NewNetwork(ctx, \"defaultTXZPBL\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultrJ5mmz, err := vpc.NewSwitch(ctx, \"defaultrJ5mmz\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultTXZPBL.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-beijing-h\"),\n\t\t\tCidrBlock: pulumi.String(\"192.168.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1oSPzX, err := gpdb.NewInstance(ctx, \"default1oSPzX\", \u0026gpdb.InstanceArgs{\n\t\t\tInstanceSpec:        pulumi.String(\"2C8G\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tSegNodeNum:          pulumi.Int(2),\n\t\t\tSegStorageType:      pulumi.String(\"cloud_essd\"),\n\t\t\tInstanceNetworkType: pulumi.String(\"VPC\"),\n\t\t\tDbInstanceCategory:  pulumi.String(\"Basic\"),\n\t\t\tPaymentType:         pulumi.String(\"PayAsYouGo\"),\n\t\t\tSslEnabled:          pulumi.Int(0),\n\t\t\tEngineVersion:       pulumi.String(\"6.0\"),\n\t\t\tZoneId:              pulumi.String(\"cn-beijing-h\"),\n\t\t\tVswitchId:           defaultrJ5mmz.ID(),\n\t\t\tStorageSize:         pulumi.Int(50),\n\t\t\tMasterCu:            pulumi.Int(4),\n\t\t\tVpcId:               defaultTXZPBL.ID(),\n\t\t\tDbInstanceMode:      pulumi.String(\"StorageElastic\"),\n\t\t\tEngine:              pulumi.String(\"gpdb\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gpdb.NewStreamingDataService(ctx, \"default\", \u0026gpdb.StreamingDataServiceArgs{\n\t\t\tServiceName:        pulumi.String(\"example\"),\n\t\t\tDbInstanceId:       default1oSPzX.ID(),\n\t\t\tServiceDescription: pulumi.String(\"example\"),\n\t\t\tServiceSpec:        pulumi.String(\"8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.gpdb.Instance;\nimport com.pulumi.alicloud.gpdb.InstanceArgs;\nimport com.pulumi.alicloud.gpdb.StreamingDataService;\nimport com.pulumi.alicloud.gpdb.StreamingDataServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultTXZPBL = new Network(\"defaultTXZPBL\", NetworkArgs.builder()\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultrJ5mmz = new Switch(\"defaultrJ5mmz\", SwitchArgs.builder()\n            .vpcId(defaultTXZPBL.id())\n            .zoneId(\"cn-beijing-h\")\n            .cidrBlock(\"192.168.1.0/24\")\n            .build());\n\n        var default1oSPzX = new Instance(\"default1oSPzX\", InstanceArgs.builder()\n            .instanceSpec(\"2C8G\")\n            .description(name)\n            .segNodeNum(2)\n            .segStorageType(\"cloud_essd\")\n            .instanceNetworkType(\"VPC\")\n            .dbInstanceCategory(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .sslEnabled(0)\n            .engineVersion(\"6.0\")\n            .zoneId(\"cn-beijing-h\")\n            .vswitchId(defaultrJ5mmz.id())\n            .storageSize(50)\n            .masterCu(4)\n            .vpcId(defaultTXZPBL.id())\n            .dbInstanceMode(\"StorageElastic\")\n            .engine(\"gpdb\")\n            .build());\n\n        var defaultStreamingDataService = new StreamingDataService(\"defaultStreamingDataService\", StreamingDataServiceArgs.builder()\n            .serviceName(\"example\")\n            .dbInstanceId(default1oSPzX.id())\n            .serviceDescription(\"example\")\n            .serviceSpec(\"8\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultTXZPBL:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 192.168.0.0/16\n  defaultrJ5mmz:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultTXZPBL.id}\n      zoneId: cn-beijing-h\n      cidrBlock: 192.168.1.0/24\n  default1oSPzX:\n    type: alicloud:gpdb:Instance\n    properties:\n      instanceSpec: 2C8G\n      description: ${name}\n      segNodeNum: '2'\n      segStorageType: cloud_essd\n      instanceNetworkType: VPC\n      dbInstanceCategory: Basic\n      paymentType: PayAsYouGo\n      sslEnabled: '0'\n      engineVersion: '6.0'\n      zoneId: cn-beijing-h\n      vswitchId: ${defaultrJ5mmz.id}\n      storageSize: '50'\n      masterCu: '4'\n      vpcId: ${defaultTXZPBL.id}\n      dbInstanceMode: StorageElastic\n      engine: gpdb\n  defaultStreamingDataService:\n    type: alicloud:gpdb:StreamingDataService\n    name: default\n    properties:\n      serviceName: example\n      dbInstanceId: ${default1oSPzX.id}\n      serviceDescription: example\n      serviceSpec: '8'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAnalyticDB for PostgreSQL (GPDB) Streaming Data Service can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/streamingDataService:StreamingDataService example \u003cdb_instance_id\u003e:\u003cservice_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"Create time\n"},"dbInstanceId":{"type":"string","description":"The ID of the associated instance.\n"},"serviceDescription":{"type":"string","description":"The description of the service.\n"},"serviceId":{"type":"string","description":"Service ID\n"},"serviceName":{"type":"string","description":"Service Name\n"},"serviceSpec":{"type":"string","description":"Resource Specifications\n"},"status":{"type":"string","description":"The status of the resource\n"}},"required":["createTime","dbInstanceId","serviceId","serviceName","serviceSpec","status"],"inputProperties":{"dbInstanceId":{"type":"string","description":"The ID of the associated instance.\n","willReplaceOnChanges":true},"serviceDescription":{"type":"string","description":"The description of the service.\n"},"serviceName":{"type":"string","description":"Service Name\n","willReplaceOnChanges":true},"serviceSpec":{"type":"string","description":"Resource Specifications\n"}},"requiredInputs":["dbInstanceId","serviceName","serviceSpec"],"stateInputs":{"description":"Input properties used for looking up and filtering StreamingDataService resources.\n","properties":{"createTime":{"type":"string","description":"Create time\n"},"dbInstanceId":{"type":"string","description":"The ID of the associated instance.\n","willReplaceOnChanges":true},"serviceDescription":{"type":"string","description":"The description of the service.\n"},"serviceId":{"type":"string","description":"Service ID\n"},"serviceName":{"type":"string","description":"Service Name\n","willReplaceOnChanges":true},"serviceSpec":{"type":"string","description":"Resource Specifications\n"},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object"}},"alicloud:gpdb/streamingDataSource:StreamingDataSource":{"description":"Provides a GPDB Streaming Data Source resource.\n\nReal-time data source.\n\nFor information about GPDB Streaming Data Source and how to use it, see [What is Streaming Data Source](https://www.alibabacloud.com/help/en/analyticdb/analyticdb-for-postgresql/developer-reference/api-gpdb-2016-05-03-createstreamingdatasource).\n\n\u003e **NOTE:** Available since v1.227.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst kafka_config_modify = config.get(\"kafka-config-modify\") || `{\n    \"brokers\": \"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\",\n    \"delimiter\": \"#\",\n    \"format\": \"delimited\",\n    \"topic\": \"ziyuan_example\"\n}\n`;\nconst kafka_config = config.get(\"kafka-config\") || `{\n    \"brokers\": \"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\",\n    \"delimiter\": \"|\",\n    \"format\": \"delimited\",\n    \"topic\": \"ziyuan_example\"\n}\n`;\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultDfkYOR = new alicloud.vpc.Network(\"defaultDfkYOR\", {cidrBlock: \"192.168.0.0/16\"});\nconst default59ZqyD = new alicloud.vpc.Switch(\"default59ZqyD\", {\n    vpcId: defaultDfkYOR.id,\n    zoneId: \"cn-beijing-h\",\n    cidrBlock: \"192.168.1.0/24\",\n});\nconst default7mX6ld = new alicloud.gpdb.Instance(\"default7mX6ld\", {\n    instanceSpec: \"2C8G\",\n    description: name,\n    segNodeNum: 2,\n    segStorageType: \"cloud_essd\",\n    instanceNetworkType: \"VPC\",\n    dbInstanceCategory: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    sslEnabled: 0,\n    engineVersion: \"6.0\",\n    zoneId: \"cn-beijing-h\",\n    vswitchId: default59ZqyD.id,\n    storageSize: 50,\n    masterCu: 4,\n    vpcId: defaultDfkYOR.id,\n    dbInstanceMode: \"StorageElastic\",\n    engine: \"gpdb\",\n});\nconst defaultwruvdv = new alicloud.gpdb.StreamingDataService(\"defaultwruvdv\", {\n    serviceName: \"example\",\n    dbInstanceId: default7mX6ld.id,\n    serviceDescription: \"example\",\n    serviceSpec: \"8\",\n});\nconst defaultStreamingDataSource = new alicloud.gpdb.StreamingDataSource(\"default\", {\n    dbInstanceId: default7mX6ld.id,\n    dataSourceName: \"example-kafka3\",\n    dataSourceConfig: kafka_config,\n    dataSourceType: \"kafka\",\n    dataSourceDescription: \"example-kafka\",\n    serviceId: defaultwruvdv.serviceId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nkafka_config_modify = config.get(\"kafka-config-modify\")\nif kafka_config_modify is None:\n    kafka_config_modify = \"\"\"{\n    \"brokers\": \"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\",\n    \"delimiter\": \"#\",\n    \"format\": \"delimited\",\n    \"topic\": \"ziyuan_example\"\n}\n\"\"\"\nkafka_config = config.get(\"kafka-config\")\nif kafka_config is None:\n    kafka_config = \"\"\"{\n    \"brokers\": \"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\",\n    \"delimiter\": \"|\",\n    \"format\": \"delimited\",\n    \"topic\": \"ziyuan_example\"\n}\n\"\"\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_dfk_yor = alicloud.vpc.Network(\"defaultDfkYOR\", cidr_block=\"192.168.0.0/16\")\ndefault59_zqy_d = alicloud.vpc.Switch(\"default59ZqyD\",\n    vpc_id=default_dfk_yor.id,\n    zone_id=\"cn-beijing-h\",\n    cidr_block=\"192.168.1.0/24\")\ndefault7m_x6ld = alicloud.gpdb.Instance(\"default7mX6ld\",\n    instance_spec=\"2C8G\",\n    description=name,\n    seg_node_num=2,\n    seg_storage_type=\"cloud_essd\",\n    instance_network_type=\"VPC\",\n    db_instance_category=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    ssl_enabled=0,\n    engine_version=\"6.0\",\n    zone_id=\"cn-beijing-h\",\n    vswitch_id=default59_zqy_d.id,\n    storage_size=50,\n    master_cu=4,\n    vpc_id=default_dfk_yor.id,\n    db_instance_mode=\"StorageElastic\",\n    engine=\"gpdb\")\ndefaultwruvdv = alicloud.gpdb.StreamingDataService(\"defaultwruvdv\",\n    service_name=\"example\",\n    db_instance_id=default7m_x6ld.id,\n    service_description=\"example\",\n    service_spec=\"8\")\ndefault_streaming_data_source = alicloud.gpdb.StreamingDataSource(\"default\",\n    db_instance_id=default7m_x6ld.id,\n    data_source_name=\"example-kafka3\",\n    data_source_config=kafka_config,\n    data_source_type=\"kafka\",\n    data_source_description=\"example-kafka\",\n    service_id=defaultwruvdv.service_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var kafka_config_modify = config.Get(\"kafka-config-modify\") ?? @\"{\n    \"\"brokers\"\": \"\"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\"\",\n    \"\"delimiter\"\": \"\"#\"\",\n    \"\"format\"\": \"\"delimited\"\",\n    \"\"topic\"\": \"\"ziyuan_example\"\"\n}\n\";\n    var kafka_config = config.Get(\"kafka-config\") ?? @\"{\n    \"\"brokers\"\": \"\"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\"\",\n    \"\"delimiter\"\": \"\"|\"\",\n    \"\"format\"\": \"\"delimited\"\",\n    \"\"topic\"\": \"\"ziyuan_example\"\"\n}\n\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultDfkYOR = new AliCloud.Vpc.Network(\"defaultDfkYOR\", new()\n    {\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var default59ZqyD = new AliCloud.Vpc.Switch(\"default59ZqyD\", new()\n    {\n        VpcId = defaultDfkYOR.Id,\n        ZoneId = \"cn-beijing-h\",\n        CidrBlock = \"192.168.1.0/24\",\n    });\n\n    var default7mX6ld = new AliCloud.Gpdb.Instance(\"default7mX6ld\", new()\n    {\n        InstanceSpec = \"2C8G\",\n        Description = name,\n        SegNodeNum = 2,\n        SegStorageType = \"cloud_essd\",\n        InstanceNetworkType = \"VPC\",\n        DbInstanceCategory = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        SslEnabled = 0,\n        EngineVersion = \"6.0\",\n        ZoneId = \"cn-beijing-h\",\n        VswitchId = default59ZqyD.Id,\n        StorageSize = 50,\n        MasterCu = 4,\n        VpcId = defaultDfkYOR.Id,\n        DbInstanceMode = \"StorageElastic\",\n        Engine = \"gpdb\",\n    });\n\n    var defaultwruvdv = new AliCloud.Gpdb.StreamingDataService(\"defaultwruvdv\", new()\n    {\n        ServiceName = \"example\",\n        DbInstanceId = default7mX6ld.Id,\n        ServiceDescription = \"example\",\n        ServiceSpec = \"8\",\n    });\n\n    var defaultStreamingDataSource = new AliCloud.Gpdb.StreamingDataSource(\"default\", new()\n    {\n        DbInstanceId = default7mX6ld.Id,\n        DataSourceName = \"example-kafka3\",\n        DataSourceConfig = kafka_config,\n        DataSourceType = \"kafka\",\n        DataSourceDescription = \"example-kafka\",\n        ServiceId = defaultwruvdv.ServiceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tkafka_config_modify := `{\n    \"brokers\": \"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\",\n    \"delimiter\": \"#\",\n    \"format\": \"delimited\",\n    \"topic\": \"ziyuan_example\"\n}\n`\n\t\tif param := cfg.Get(\"kafka-config-modify\"); param != \"\" {\n\t\t\tkafka_config_modify = param\n\t\t}\n\t\tkafka_config := `{\n    \"brokers\": \"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\",\n    \"delimiter\": \"|\",\n    \"format\": \"delimited\",\n    \"topic\": \"ziyuan_example\"\n}\n`\n\t\tif param := cfg.Get(\"kafka-config\"); param != \"\" {\n\t\t\tkafka_config = param\n\t\t}\n\t\t_, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDfkYOR, err := vpc.NewNetwork(ctx, \"defaultDfkYOR\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault59ZqyD, err := vpc.NewSwitch(ctx, \"default59ZqyD\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultDfkYOR.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-beijing-h\"),\n\t\t\tCidrBlock: pulumi.String(\"192.168.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault7mX6ld, err := gpdb.NewInstance(ctx, \"default7mX6ld\", \u0026gpdb.InstanceArgs{\n\t\t\tInstanceSpec:        pulumi.String(\"2C8G\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tSegNodeNum:          pulumi.Int(2),\n\t\t\tSegStorageType:      pulumi.String(\"cloud_essd\"),\n\t\t\tInstanceNetworkType: pulumi.String(\"VPC\"),\n\t\t\tDbInstanceCategory:  pulumi.String(\"Basic\"),\n\t\t\tPaymentType:         pulumi.String(\"PayAsYouGo\"),\n\t\t\tSslEnabled:          pulumi.Int(0),\n\t\t\tEngineVersion:       pulumi.String(\"6.0\"),\n\t\t\tZoneId:              pulumi.String(\"cn-beijing-h\"),\n\t\t\tVswitchId:           default59ZqyD.ID(),\n\t\t\tStorageSize:         pulumi.Int(50),\n\t\t\tMasterCu:            pulumi.Int(4),\n\t\t\tVpcId:               defaultDfkYOR.ID(),\n\t\t\tDbInstanceMode:      pulumi.String(\"StorageElastic\"),\n\t\t\tEngine:              pulumi.String(\"gpdb\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultwruvdv, err := gpdb.NewStreamingDataService(ctx, \"defaultwruvdv\", \u0026gpdb.StreamingDataServiceArgs{\n\t\t\tServiceName:        pulumi.String(\"example\"),\n\t\t\tDbInstanceId:       default7mX6ld.ID(),\n\t\t\tServiceDescription: pulumi.String(\"example\"),\n\t\t\tServiceSpec:        pulumi.String(\"8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gpdb.NewStreamingDataSource(ctx, \"default\", \u0026gpdb.StreamingDataSourceArgs{\n\t\t\tDbInstanceId:          default7mX6ld.ID(),\n\t\t\tDataSourceName:        pulumi.String(\"example-kafka3\"),\n\t\t\tDataSourceConfig:      pulumi.String(kafka_config),\n\t\t\tDataSourceType:        pulumi.String(\"kafka\"),\n\t\t\tDataSourceDescription: pulumi.String(\"example-kafka\"),\n\t\t\tServiceId:             defaultwruvdv.ServiceId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.gpdb.Instance;\nimport com.pulumi.alicloud.gpdb.InstanceArgs;\nimport com.pulumi.alicloud.gpdb.StreamingDataService;\nimport com.pulumi.alicloud.gpdb.StreamingDataServiceArgs;\nimport com.pulumi.alicloud.gpdb.StreamingDataSource;\nimport com.pulumi.alicloud.gpdb.StreamingDataSourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var kafka_config_modify = config.get(\"kafka-config-modify\").orElse(\"\"\"\n{\n    \"brokers\": \"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\",\n    \"delimiter\": \"#\",\n    \"format\": \"delimited\",\n    \"topic\": \"ziyuan_example\"\n}\n        \"\"\");\n        final var kafka_config = config.get(\"kafka-config\").orElse(\"\"\"\n{\n    \"brokers\": \"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\",\n    \"delimiter\": \"|\",\n    \"format\": \"delimited\",\n    \"topic\": \"ziyuan_example\"\n}\n        \"\"\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultDfkYOR = new Network(\"defaultDfkYOR\", NetworkArgs.builder()\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var default59ZqyD = new Switch(\"default59ZqyD\", SwitchArgs.builder()\n            .vpcId(defaultDfkYOR.id())\n            .zoneId(\"cn-beijing-h\")\n            .cidrBlock(\"192.168.1.0/24\")\n            .build());\n\n        var default7mX6ld = new Instance(\"default7mX6ld\", InstanceArgs.builder()\n            .instanceSpec(\"2C8G\")\n            .description(name)\n            .segNodeNum(2)\n            .segStorageType(\"cloud_essd\")\n            .instanceNetworkType(\"VPC\")\n            .dbInstanceCategory(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .sslEnabled(0)\n            .engineVersion(\"6.0\")\n            .zoneId(\"cn-beijing-h\")\n            .vswitchId(default59ZqyD.id())\n            .storageSize(50)\n            .masterCu(4)\n            .vpcId(defaultDfkYOR.id())\n            .dbInstanceMode(\"StorageElastic\")\n            .engine(\"gpdb\")\n            .build());\n\n        var defaultwruvdv = new StreamingDataService(\"defaultwruvdv\", StreamingDataServiceArgs.builder()\n            .serviceName(\"example\")\n            .dbInstanceId(default7mX6ld.id())\n            .serviceDescription(\"example\")\n            .serviceSpec(\"8\")\n            .build());\n\n        var defaultStreamingDataSource = new StreamingDataSource(\"defaultStreamingDataSource\", StreamingDataSourceArgs.builder()\n            .dbInstanceId(default7mX6ld.id())\n            .dataSourceName(\"example-kafka3\")\n            .dataSourceConfig(kafka_config)\n            .dataSourceType(\"kafka\")\n            .dataSourceDescription(\"example-kafka\")\n            .serviceId(defaultwruvdv.serviceId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  kafka-config-modify:\n    type: string\n    default: |\n      {\n          \"brokers\": \"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\",\n          \"delimiter\": \"#\",\n          \"format\": \"delimited\",\n          \"topic\": \"ziyuan_example\"\n      }\n  kafka-config:\n    type: string\n    default: |\n      {\n          \"brokers\": \"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\",\n          \"delimiter\": \"|\",\n          \"format\": \"delimited\",\n          \"topic\": \"ziyuan_example\"\n      }\nresources:\n  defaultDfkYOR:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 192.168.0.0/16\n  default59ZqyD:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultDfkYOR.id}\n      zoneId: cn-beijing-h\n      cidrBlock: 192.168.1.0/24\n  default7mX6ld:\n    type: alicloud:gpdb:Instance\n    properties:\n      instanceSpec: 2C8G\n      description: ${name}\n      segNodeNum: '2'\n      segStorageType: cloud_essd\n      instanceNetworkType: VPC\n      dbInstanceCategory: Basic\n      paymentType: PayAsYouGo\n      sslEnabled: '0'\n      engineVersion: '6.0'\n      zoneId: cn-beijing-h\n      vswitchId: ${default59ZqyD.id}\n      storageSize: '50'\n      masterCu: '4'\n      vpcId: ${defaultDfkYOR.id}\n      dbInstanceMode: StorageElastic\n      engine: gpdb\n  defaultwruvdv:\n    type: alicloud:gpdb:StreamingDataService\n    properties:\n      serviceName: example\n      dbInstanceId: ${default7mX6ld.id}\n      serviceDescription: example\n      serviceSpec: '8'\n  defaultStreamingDataSource:\n    type: alicloud:gpdb:StreamingDataSource\n    name: default\n    properties:\n      dbInstanceId: ${default7mX6ld.id}\n      dataSourceName: example-kafka3\n      dataSourceConfig: ${[\"kafka-config\"]}\n      dataSourceType: kafka\n      dataSourceDescription: example-kafka\n      serviceId: ${defaultwruvdv.serviceId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGPDB Streaming Data Source can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/streamingDataSource:StreamingDataSource example \u003cdb_instance_id\u003e:\u003cdata_source_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"Creation time\n"},"dataSourceConfig":{"type":"string","description":"The configurations of the data source.\n"},"dataSourceDescription":{"type":"string","description":"The description of the data source.\n"},"dataSourceId":{"type":"string","description":"The data source ID.\n"},"dataSourceName":{"type":"string","description":"Data Source Name\n"},"dataSourceType":{"type":"string","description":"Data Source Type\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n\n\u003e **NOTE:**   You can call the [DescribeDBInstances](https://www.alibabacloud.com/help/en/doc-detail/196830.html) operation to query the information about all AnalyticDB for PostgreSQL instances within a region, including instance IDs.\n"},"serviceId":{"type":"integer","description":"The real-time data service ID.\n"},"status":{"type":"string","description":"Service Status:\n"}},"required":["createTime","dataSourceConfig","dataSourceId","dataSourceName","dataSourceType","dbInstanceId","serviceId","status"],"inputProperties":{"dataSourceConfig":{"type":"string","description":"The configurations of the data source.\n"},"dataSourceDescription":{"type":"string","description":"The description of the data source.\n"},"dataSourceName":{"type":"string","description":"Data Source Name\n","willReplaceOnChanges":true},"dataSourceType":{"type":"string","description":"Data Source Type\n","willReplaceOnChanges":true},"dbInstanceId":{"type":"string","description":"The instance ID.\n\n\u003e **NOTE:**   You can call the [DescribeDBInstances](https://www.alibabacloud.com/help/en/doc-detail/196830.html) operation to query the information about all AnalyticDB for PostgreSQL instances within a region, including instance IDs.\n","willReplaceOnChanges":true},"serviceId":{"type":"integer","description":"The real-time data service ID.\n","willReplaceOnChanges":true}},"requiredInputs":["dataSourceConfig","dataSourceName","dataSourceType","dbInstanceId","serviceId"],"stateInputs":{"description":"Input properties used for looking up and filtering StreamingDataSource resources.\n","properties":{"createTime":{"type":"string","description":"Creation time\n"},"dataSourceConfig":{"type":"string","description":"The configurations of the data source.\n"},"dataSourceDescription":{"type":"string","description":"The description of the data source.\n"},"dataSourceId":{"type":"string","description":"The data source ID.\n"},"dataSourceName":{"type":"string","description":"Data Source Name\n","willReplaceOnChanges":true},"dataSourceType":{"type":"string","description":"Data Source Type\n","willReplaceOnChanges":true},"dbInstanceId":{"type":"string","description":"The instance ID.\n\n\u003e **NOTE:**   You can call the [DescribeDBInstances](https://www.alibabacloud.com/help/en/doc-detail/196830.html) operation to query the information about all AnalyticDB for PostgreSQL instances within a region, including instance IDs.\n","willReplaceOnChanges":true},"serviceId":{"type":"integer","description":"The real-time data service ID.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Service Status:\n"}},"type":"object"}},"alicloud:gpdb/streamingJob:StreamingJob":{"description":"Provides a GPDB Streaming Job resource.\n\nReal-time data tasks.\n\nFor information about GPDB Streaming Job and how to use it, see [What is Streaming Job](https://www.alibabacloud.com/help/en/analyticdb/analyticdb-for-postgresql/developer-reference/api-gpdb-2016-05-03-createstreamingjob).\n\n\u003e **NOTE:** Available since v1.231.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultTXqb15 = new alicloud.vpc.Network(\"defaultTXqb15\", {cidrBlock: \"192.168.0.0/16\"});\nconst defaultaSWhbT = new alicloud.vpc.Switch(\"defaultaSWhbT\", {\n    vpcId: defaultTXqb15.id,\n    zoneId: \"cn-beijing-h\",\n    cidrBlock: \"192.168.1.0/24\",\n});\nconst defaulth2ghc1 = new alicloud.gpdb.Instance(\"defaulth2ghc1\", {\n    instanceSpec: \"2C8G\",\n    description: name,\n    segNodeNum: 2,\n    segStorageType: \"cloud_essd\",\n    instanceNetworkType: \"VPC\",\n    dbInstanceCategory: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    sslEnabled: 0,\n    engineVersion: \"6.0\",\n    zoneId: \"cn-beijing-h\",\n    vswitchId: defaultaSWhbT.id,\n    storageSize: 50,\n    masterCu: 4,\n    vpcId: defaultTXqb15.id,\n    dbInstanceMode: \"StorageElastic\",\n    engine: \"gpdb\",\n});\nconst default2dUszY = new alicloud.gpdb.StreamingDataService(\"default2dUszY\", {\n    serviceName: \"example\",\n    dbInstanceId: defaulth2ghc1.id,\n    serviceDescription: \"example\",\n    serviceSpec: \"8\",\n});\nconst defaultcDQItu = new alicloud.gpdb.StreamingDataSource(\"defaultcDQItu\", {\n    dbInstanceId: defaulth2ghc1.id,\n    dataSourceName: \"example\",\n    dataSourceConfig: JSON.stringify({\n        brokers: \"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\",\n        delimiter: \"|\",\n        format: \"delimited\",\n        topic: \"ziyuan_example\",\n    }),\n    dataSourceType: \"kafka\",\n    dataSourceDescription: \"example\",\n    serviceId: default2dUszY.serviceId,\n});\nconst _default = new alicloud.gpdb.StreamingJob(\"default\", {\n    account: \"example_001\",\n    destSchema: \"public\",\n    mode: \"professional\",\n    jobName: \"example-kafka\",\n    jobDescription: \"example-kafka\",\n    destDatabase: \"adb_sampledata_tpch\",\n    dbInstanceId: defaulth2ghc1.id,\n    destTable: \"customer\",\n    dataSourceId: defaultcDQItu.dataSourceId,\n    password: \"example_001\",\n    jobConfig: `ATABASE: adb_sampledata_tpch\nUSER: example_001\nPASSWORD: example_001\nHOST: gp-2zean69451zsjj139-master.gpdb.rds.aliyuncs.com\nPORT: 5432\nKAFKA:\n  INPUT:\n    SOURCE:\n      BROKERS: alikafka-post-cn-3mp3t4ekq004-1-vpc.alikafka.aliyuncs.com:9092\n      TOPIC: ziyuan_example\n      FALLBACK_OFFSET: LATEST\n    KEY:\n      COLUMNS:\n      - NAME: c_custkey\n        TYPE: int\n      FORMAT: delimited\n      DELIMITED_OPTION:\n        DELIMITER: \\\\\\\\'|\\\\\\\\'\n    VALUE:\n      COLUMNS:\n      - NAME: c_comment\n        TYPE: varchar\n      FORMAT: delimited\n      DELIMITED_OPTION:\n        DELIMITER: \\\\\\\\'|\\\\\\\\'\n    ERROR_LIMIT: 10\n  OUTPUT:\n    SCHEMA: public\n    TABLE: customer\n    MODE: MERGE\n    MATCH_COLUMNS:\n    - c_custkey\n    ORDER_COLUMNS:\n    - c_custkey\n    UPDATE_COLUMNS:\n    - c_custkey\n    MAPPING:\n    - NAME: c_custkey\n      EXPRESSION: c_custkey\n  COMMIT:\n    MAX_ROW: 1000\n    MINIMAL_INTERVAL: 1000\n    CONSISTENCY: ATLEAST\n  POLL:\n    BATCHSIZE: 1000\n    TIMEOUT: 1000\n  PROPERTIES:\n    group.id: ziyuan_example_01\n`,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_t_xqb15 = alicloud.vpc.Network(\"defaultTXqb15\", cidr_block=\"192.168.0.0/16\")\ndefaulta_s_whb_t = alicloud.vpc.Switch(\"defaultaSWhbT\",\n    vpc_id=default_t_xqb15.id,\n    zone_id=\"cn-beijing-h\",\n    cidr_block=\"192.168.1.0/24\")\ndefaulth2ghc1 = alicloud.gpdb.Instance(\"defaulth2ghc1\",\n    instance_spec=\"2C8G\",\n    description=name,\n    seg_node_num=2,\n    seg_storage_type=\"cloud_essd\",\n    instance_network_type=\"VPC\",\n    db_instance_category=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    ssl_enabled=0,\n    engine_version=\"6.0\",\n    zone_id=\"cn-beijing-h\",\n    vswitch_id=defaulta_s_whb_t.id,\n    storage_size=50,\n    master_cu=4,\n    vpc_id=default_t_xqb15.id,\n    db_instance_mode=\"StorageElastic\",\n    engine=\"gpdb\")\ndefault2d_usz_y = alicloud.gpdb.StreamingDataService(\"default2dUszY\",\n    service_name=\"example\",\n    db_instance_id=defaulth2ghc1.id,\n    service_description=\"example\",\n    service_spec=\"8\")\ndefaultc_dq_itu = alicloud.gpdb.StreamingDataSource(\"defaultcDQItu\",\n    db_instance_id=defaulth2ghc1.id,\n    data_source_name=\"example\",\n    data_source_config=json.dumps({\n        \"brokers\": \"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\",\n        \"delimiter\": \"|\",\n        \"format\": \"delimited\",\n        \"topic\": \"ziyuan_example\",\n    }),\n    data_source_type=\"kafka\",\n    data_source_description=\"example\",\n    service_id=default2d_usz_y.service_id)\ndefault = alicloud.gpdb.StreamingJob(\"default\",\n    account=\"example_001\",\n    dest_schema=\"public\",\n    mode=\"professional\",\n    job_name=\"example-kafka\",\n    job_description=\"example-kafka\",\n    dest_database=\"adb_sampledata_tpch\",\n    db_instance_id=defaulth2ghc1.id,\n    dest_table=\"customer\",\n    data_source_id=defaultc_dq_itu.data_source_id,\n    password=\"example_001\",\n    job_config=\"\"\"ATABASE: adb_sampledata_tpch\nUSER: example_001\nPASSWORD: example_001\nHOST: gp-2zean69451zsjj139-master.gpdb.rds.aliyuncs.com\nPORT: 5432\nKAFKA:\n  INPUT:\n    SOURCE:\n      BROKERS: alikafka-post-cn-3mp3t4ekq004-1-vpc.alikafka.aliyuncs.com:9092\n      TOPIC: ziyuan_example\n      FALLBACK_OFFSET: LATEST\n    KEY:\n      COLUMNS:\n      - NAME: c_custkey\n        TYPE: int\n      FORMAT: delimited\n      DELIMITED_OPTION:\n        DELIMITER: \\\\'|\\\\'\n    VALUE:\n      COLUMNS:\n      - NAME: c_comment\n        TYPE: varchar\n      FORMAT: delimited\n      DELIMITED_OPTION:\n        DELIMITER: \\\\'|\\\\'\n    ERROR_LIMIT: 10\n  OUTPUT:\n    SCHEMA: public\n    TABLE: customer\n    MODE: MERGE\n    MATCH_COLUMNS:\n    - c_custkey\n    ORDER_COLUMNS:\n    - c_custkey\n    UPDATE_COLUMNS:\n    - c_custkey\n    MAPPING:\n    - NAME: c_custkey\n      EXPRESSION: c_custkey\n  COMMIT:\n    MAX_ROW: 1000\n    MINIMAL_INTERVAL: 1000\n    CONSISTENCY: ATLEAST\n  POLL:\n    BATCHSIZE: 1000\n    TIMEOUT: 1000\n  PROPERTIES:\n    group.id: ziyuan_example_01\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultTXqb15 = new AliCloud.Vpc.Network(\"defaultTXqb15\", new()\n    {\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultaSWhbT = new AliCloud.Vpc.Switch(\"defaultaSWhbT\", new()\n    {\n        VpcId = defaultTXqb15.Id,\n        ZoneId = \"cn-beijing-h\",\n        CidrBlock = \"192.168.1.0/24\",\n    });\n\n    var defaulth2ghc1 = new AliCloud.Gpdb.Instance(\"defaulth2ghc1\", new()\n    {\n        InstanceSpec = \"2C8G\",\n        Description = name,\n        SegNodeNum = 2,\n        SegStorageType = \"cloud_essd\",\n        InstanceNetworkType = \"VPC\",\n        DbInstanceCategory = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        SslEnabled = 0,\n        EngineVersion = \"6.0\",\n        ZoneId = \"cn-beijing-h\",\n        VswitchId = defaultaSWhbT.Id,\n        StorageSize = 50,\n        MasterCu = 4,\n        VpcId = defaultTXqb15.Id,\n        DbInstanceMode = \"StorageElastic\",\n        Engine = \"gpdb\",\n    });\n\n    var default2dUszY = new AliCloud.Gpdb.StreamingDataService(\"default2dUszY\", new()\n    {\n        ServiceName = \"example\",\n        DbInstanceId = defaulth2ghc1.Id,\n        ServiceDescription = \"example\",\n        ServiceSpec = \"8\",\n    });\n\n    var defaultcDQItu = new AliCloud.Gpdb.StreamingDataSource(\"defaultcDQItu\", new()\n    {\n        DbInstanceId = defaulth2ghc1.Id,\n        DataSourceName = \"example\",\n        DataSourceConfig = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"brokers\"] = \"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\",\n            [\"delimiter\"] = \"|\",\n            [\"format\"] = \"delimited\",\n            [\"topic\"] = \"ziyuan_example\",\n        }),\n        DataSourceType = \"kafka\",\n        DataSourceDescription = \"example\",\n        ServiceId = default2dUszY.ServiceId,\n    });\n\n    var @default = new AliCloud.Gpdb.StreamingJob(\"default\", new()\n    {\n        Account = \"example_001\",\n        DestSchema = \"public\",\n        Mode = \"professional\",\n        JobName = \"example-kafka\",\n        JobDescription = \"example-kafka\",\n        DestDatabase = \"adb_sampledata_tpch\",\n        DbInstanceId = defaulth2ghc1.Id,\n        DestTable = \"customer\",\n        DataSourceId = defaultcDQItu.DataSourceId,\n        Password = \"example_001\",\n        JobConfig = @\"ATABASE: adb_sampledata_tpch\nUSER: example_001\nPASSWORD: example_001\nHOST: gp-2zean69451zsjj139-master.gpdb.rds.aliyuncs.com\nPORT: 5432\nKAFKA:\n  INPUT:\n    SOURCE:\n      BROKERS: alikafka-post-cn-3mp3t4ekq004-1-vpc.alikafka.aliyuncs.com:9092\n      TOPIC: ziyuan_example\n      FALLBACK_OFFSET: LATEST\n    KEY:\n      COLUMNS:\n      - NAME: c_custkey\n        TYPE: int\n      FORMAT: delimited\n      DELIMITED_OPTION:\n        DELIMITER: \\\\'|\\\\'\n    VALUE:\n      COLUMNS:\n      - NAME: c_comment\n        TYPE: varchar\n      FORMAT: delimited\n      DELIMITED_OPTION:\n        DELIMITER: \\\\'|\\\\'\n    ERROR_LIMIT: 10\n  OUTPUT:\n    SCHEMA: public\n    TABLE: customer\n    MODE: MERGE\n    MATCH_COLUMNS:\n    - c_custkey\n    ORDER_COLUMNS:\n    - c_custkey\n    UPDATE_COLUMNS:\n    - c_custkey\n    MAPPING:\n    - NAME: c_custkey\n      EXPRESSION: c_custkey\n  COMMIT:\n    MAX_ROW: 1000\n    MINIMAL_INTERVAL: 1000\n    CONSISTENCY: ATLEAST\n  POLL:\n    BATCHSIZE: 1000\n    TIMEOUT: 1000\n  PROPERTIES:\n    group.id: ziyuan_example_01\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultTXqb15, err := vpc.NewNetwork(ctx, \"defaultTXqb15\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultaSWhbT, err := vpc.NewSwitch(ctx, \"defaultaSWhbT\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultTXqb15.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-beijing-h\"),\n\t\t\tCidrBlock: pulumi.String(\"192.168.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaulth2ghc1, err := gpdb.NewInstance(ctx, \"defaulth2ghc1\", \u0026gpdb.InstanceArgs{\n\t\t\tInstanceSpec:        pulumi.String(\"2C8G\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tSegNodeNum:          pulumi.Int(2),\n\t\t\tSegStorageType:      pulumi.String(\"cloud_essd\"),\n\t\t\tInstanceNetworkType: pulumi.String(\"VPC\"),\n\t\t\tDbInstanceCategory:  pulumi.String(\"Basic\"),\n\t\t\tPaymentType:         pulumi.String(\"PayAsYouGo\"),\n\t\t\tSslEnabled:          pulumi.Int(0),\n\t\t\tEngineVersion:       pulumi.String(\"6.0\"),\n\t\t\tZoneId:              pulumi.String(\"cn-beijing-h\"),\n\t\t\tVswitchId:           defaultaSWhbT.ID(),\n\t\t\tStorageSize:         pulumi.Int(50),\n\t\t\tMasterCu:            pulumi.Int(4),\n\t\t\tVpcId:               defaultTXqb15.ID(),\n\t\t\tDbInstanceMode:      pulumi.String(\"StorageElastic\"),\n\t\t\tEngine:              pulumi.String(\"gpdb\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault2dUszY, err := gpdb.NewStreamingDataService(ctx, \"default2dUszY\", \u0026gpdb.StreamingDataServiceArgs{\n\t\t\tServiceName:        pulumi.String(\"example\"),\n\t\t\tDbInstanceId:       defaulth2ghc1.ID(),\n\t\t\tServiceDescription: pulumi.String(\"example\"),\n\t\t\tServiceSpec:        pulumi.String(\"8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"brokers\":   \"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\",\n\t\t\t\"delimiter\": \"|\",\n\t\t\t\"format\":    \"delimited\",\n\t\t\t\"topic\":     \"ziyuan_example\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tdefaultcDQItu, err := gpdb.NewStreamingDataSource(ctx, \"defaultcDQItu\", \u0026gpdb.StreamingDataSourceArgs{\n\t\t\tDbInstanceId:          defaulth2ghc1.ID(),\n\t\t\tDataSourceName:        pulumi.String(\"example\"),\n\t\t\tDataSourceConfig:      pulumi.String(json0),\n\t\t\tDataSourceType:        pulumi.String(\"kafka\"),\n\t\t\tDataSourceDescription: pulumi.String(\"example\"),\n\t\t\tServiceId:             default2dUszY.ServiceId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gpdb.NewStreamingJob(ctx, \"default\", \u0026gpdb.StreamingJobArgs{\n\t\t\tAccount:        pulumi.String(\"example_001\"),\n\t\t\tDestSchema:     pulumi.String(\"public\"),\n\t\t\tMode:           pulumi.String(\"professional\"),\n\t\t\tJobName:        pulumi.String(\"example-kafka\"),\n\t\t\tJobDescription: pulumi.String(\"example-kafka\"),\n\t\t\tDestDatabase:   pulumi.String(\"adb_sampledata_tpch\"),\n\t\t\tDbInstanceId:   defaulth2ghc1.ID(),\n\t\t\tDestTable:      pulumi.String(\"customer\"),\n\t\t\tDataSourceId:   defaultcDQItu.DataSourceId,\n\t\t\tPassword:       pulumi.String(\"example_001\"),\n\t\t\tJobConfig: pulumi.String(`ATABASE: adb_sampledata_tpch\nUSER: example_001\nPASSWORD: example_001\nHOST: gp-2zean69451zsjj139-master.gpdb.rds.aliyuncs.com\nPORT: 5432\nKAFKA:\n  INPUT:\n    SOURCE:\n      BROKERS: alikafka-post-cn-3mp3t4ekq004-1-vpc.alikafka.aliyuncs.com:9092\n      TOPIC: ziyuan_example\n      FALLBACK_OFFSET: LATEST\n    KEY:\n      COLUMNS:\n      - NAME: c_custkey\n        TYPE: int\n      FORMAT: delimited\n      DELIMITED_OPTION:\n        DELIMITER: \\\\'|\\\\'\n    VALUE:\n      COLUMNS:\n      - NAME: c_comment\n        TYPE: varchar\n      FORMAT: delimited\n      DELIMITED_OPTION:\n        DELIMITER: \\\\'|\\\\'\n    ERROR_LIMIT: 10\n  OUTPUT:\n    SCHEMA: public\n    TABLE: customer\n    MODE: MERGE\n    MATCH_COLUMNS:\n    - c_custkey\n    ORDER_COLUMNS:\n    - c_custkey\n    UPDATE_COLUMNS:\n    - c_custkey\n    MAPPING:\n    - NAME: c_custkey\n      EXPRESSION: c_custkey\n  COMMIT:\n    MAX_ROW: 1000\n    MINIMAL_INTERVAL: 1000\n    CONSISTENCY: ATLEAST\n  POLL:\n    BATCHSIZE: 1000\n    TIMEOUT: 1000\n  PROPERTIES:\n    group.id: ziyuan_example_01\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.gpdb.Instance;\nimport com.pulumi.alicloud.gpdb.InstanceArgs;\nimport com.pulumi.alicloud.gpdb.StreamingDataService;\nimport com.pulumi.alicloud.gpdb.StreamingDataServiceArgs;\nimport com.pulumi.alicloud.gpdb.StreamingDataSource;\nimport com.pulumi.alicloud.gpdb.StreamingDataSourceArgs;\nimport com.pulumi.alicloud.gpdb.StreamingJob;\nimport com.pulumi.alicloud.gpdb.StreamingJobArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultTXqb15 = new Network(\"defaultTXqb15\", NetworkArgs.builder()\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultaSWhbT = new Switch(\"defaultaSWhbT\", SwitchArgs.builder()\n            .vpcId(defaultTXqb15.id())\n            .zoneId(\"cn-beijing-h\")\n            .cidrBlock(\"192.168.1.0/24\")\n            .build());\n\n        var defaulth2ghc1 = new Instance(\"defaulth2ghc1\", InstanceArgs.builder()\n            .instanceSpec(\"2C8G\")\n            .description(name)\n            .segNodeNum(2)\n            .segStorageType(\"cloud_essd\")\n            .instanceNetworkType(\"VPC\")\n            .dbInstanceCategory(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .sslEnabled(0)\n            .engineVersion(\"6.0\")\n            .zoneId(\"cn-beijing-h\")\n            .vswitchId(defaultaSWhbT.id())\n            .storageSize(50)\n            .masterCu(4)\n            .vpcId(defaultTXqb15.id())\n            .dbInstanceMode(\"StorageElastic\")\n            .engine(\"gpdb\")\n            .build());\n\n        var default2dUszY = new StreamingDataService(\"default2dUszY\", StreamingDataServiceArgs.builder()\n            .serviceName(\"example\")\n            .dbInstanceId(defaulth2ghc1.id())\n            .serviceDescription(\"example\")\n            .serviceSpec(\"8\")\n            .build());\n\n        var defaultcDQItu = new StreamingDataSource(\"defaultcDQItu\", StreamingDataSourceArgs.builder()\n            .dbInstanceId(defaulth2ghc1.id())\n            .dataSourceName(\"example\")\n            .dataSourceConfig(serializeJson(\n                jsonObject(\n                    jsonProperty(\"brokers\", \"alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\"),\n                    jsonProperty(\"delimiter\", \"|\"),\n                    jsonProperty(\"format\", \"delimited\"),\n                    jsonProperty(\"topic\", \"ziyuan_example\")\n                )))\n            .dataSourceType(\"kafka\")\n            .dataSourceDescription(\"example\")\n            .serviceId(default2dUszY.serviceId())\n            .build());\n\n        var default_ = new StreamingJob(\"default\", StreamingJobArgs.builder()\n            .account(\"example_001\")\n            .destSchema(\"public\")\n            .mode(\"professional\")\n            .jobName(\"example-kafka\")\n            .jobDescription(\"example-kafka\")\n            .destDatabase(\"adb_sampledata_tpch\")\n            .dbInstanceId(defaulth2ghc1.id())\n            .destTable(\"customer\")\n            .dataSourceId(defaultcDQItu.dataSourceId())\n            .password(\"example_001\")\n            .jobConfig(\"\"\"\nATABASE: adb_sampledata_tpch\nUSER: example_001\nPASSWORD: example_001\nHOST: gp-2zean69451zsjj139-master.gpdb.rds.aliyuncs.com\nPORT: 5432\nKAFKA:\n  INPUT:\n    SOURCE:\n      BROKERS: alikafka-post-cn-3mp3t4ekq004-1-vpc.alikafka.aliyuncs.com:9092\n      TOPIC: ziyuan_example\n      FALLBACK_OFFSET: LATEST\n    KEY:\n      COLUMNS:\n      - NAME: c_custkey\n        TYPE: int\n      FORMAT: delimited\n      DELIMITED_OPTION:\n        DELIMITER: \\\\'|\\\\'\n    VALUE:\n      COLUMNS:\n      - NAME: c_comment\n        TYPE: varchar\n      FORMAT: delimited\n      DELIMITED_OPTION:\n        DELIMITER: \\\\'|\\\\'\n    ERROR_LIMIT: 10\n  OUTPUT:\n    SCHEMA: public\n    TABLE: customer\n    MODE: MERGE\n    MATCH_COLUMNS:\n    - c_custkey\n    ORDER_COLUMNS:\n    - c_custkey\n    UPDATE_COLUMNS:\n    - c_custkey\n    MAPPING:\n    - NAME: c_custkey\n      EXPRESSION: c_custkey\n  COMMIT:\n    MAX_ROW: 1000\n    MINIMAL_INTERVAL: 1000\n    CONSISTENCY: ATLEAST\n  POLL:\n    BATCHSIZE: 1000\n    TIMEOUT: 1000\n  PROPERTIES:\n    group.id: ziyuan_example_01\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultTXqb15:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 192.168.0.0/16\n  defaultaSWhbT:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultTXqb15.id}\n      zoneId: cn-beijing-h\n      cidrBlock: 192.168.1.0/24\n  defaulth2ghc1:\n    type: alicloud:gpdb:Instance\n    properties:\n      instanceSpec: 2C8G\n      description: ${name}\n      segNodeNum: '2'\n      segStorageType: cloud_essd\n      instanceNetworkType: VPC\n      dbInstanceCategory: Basic\n      paymentType: PayAsYouGo\n      sslEnabled: '0'\n      engineVersion: '6.0'\n      zoneId: cn-beijing-h\n      vswitchId: ${defaultaSWhbT.id}\n      storageSize: '50'\n      masterCu: '4'\n      vpcId: ${defaultTXqb15.id}\n      dbInstanceMode: StorageElastic\n      engine: gpdb\n  default2dUszY:\n    type: alicloud:gpdb:StreamingDataService\n    properties:\n      serviceName: example\n      dbInstanceId: ${defaulth2ghc1.id}\n      serviceDescription: example\n      serviceSpec: '8'\n  defaultcDQItu:\n    type: alicloud:gpdb:StreamingDataSource\n    properties:\n      dbInstanceId: ${defaulth2ghc1.id}\n      dataSourceName: example\n      dataSourceConfig:\n        fn::toJSON:\n          brokers: alikafka-post-cn-g4t3t4eod004-1-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-2-vpc.alikafka.aliyuncs.com:9092,alikafka-post-cn-g4t3t4eod004-3-vpc.alikafka.aliyuncs.com:9092\n          delimiter: '|'\n          format: delimited\n          topic: ziyuan_example\n      dataSourceType: kafka\n      dataSourceDescription: example\n      serviceId: ${default2dUszY.serviceId}\n  default:\n    type: alicloud:gpdb:StreamingJob\n    properties:\n      account: example_001\n      destSchema: public\n      mode: professional\n      jobName: example-kafka\n      jobDescription: example-kafka\n      destDatabase: adb_sampledata_tpch\n      dbInstanceId: ${defaulth2ghc1.id}\n      destTable: customer\n      dataSourceId: ${defaultcDQItu.dataSourceId}\n      password: example_001\n      jobConfig: |\n        ATABASE: adb_sampledata_tpch\n        USER: example_001\n        PASSWORD: example_001\n        HOST: gp-2zean69451zsjj139-master.gpdb.rds.aliyuncs.com\n        PORT: 5432\n        KAFKA:\n          INPUT:\n            SOURCE:\n              BROKERS: alikafka-post-cn-3mp3t4ekq004-1-vpc.alikafka.aliyuncs.com:9092\n              TOPIC: ziyuan_example\n              FALLBACK_OFFSET: LATEST\n            KEY:\n              COLUMNS:\n              - NAME: c_custkey\n                TYPE: int\n              FORMAT: delimited\n              DELIMITED_OPTION:\n                DELIMITER: \\\\'|\\\\'\n            VALUE:\n              COLUMNS:\n              - NAME: c_comment\n                TYPE: varchar\n              FORMAT: delimited\n              DELIMITED_OPTION:\n                DELIMITER: \\\\'|\\\\'\n            ERROR_LIMIT: 10\n          OUTPUT:\n            SCHEMA: public\n            TABLE: customer\n            MODE: MERGE\n            MATCH_COLUMNS:\n            - c_custkey\n            ORDER_COLUMNS:\n            - c_custkey\n            UPDATE_COLUMNS:\n            - c_custkey\n            MAPPING:\n            - NAME: c_custkey\n              EXPRESSION: c_custkey\n          COMMIT:\n            MAX_ROW: 1000\n            MINIMAL_INTERVAL: 1000\n            CONSISTENCY: ATLEAST\n          POLL:\n            BATCHSIZE: 1000\n            TIMEOUT: 1000\n          PROPERTIES:\n            group.id: ziyuan_example_01\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGPDB Streaming Job can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/streamingJob:StreamingJob example \u003cdb_instance_id\u003e:\u003cjob_id\u003e\n```\n\n","properties":{"account":{"type":"string","description":"The name of the database account.\n"},"consistency":{"type":"string","description":"The delivery guarantee setting.\n\nValid values:\n\n- ATLEAST\n- EXACTLY\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"dataSourceId":{"type":"string","description":"The data source ID.\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n"},"destColumns":{"type":"array","items":{"type":"string"},"description":"Target Field\n"},"destDatabase":{"type":"string","description":"The name of the destination database.\n"},"destSchema":{"type":"string","description":"Target Schema\n"},"destTable":{"type":"string","description":"The name of the destination table.\n"},"errorLimitCount":{"type":"integer","description":"The number of allowed error rows. Write failures occur when Kafka data does not match the destination table in AnalyticDB for PostgreSQL. If the specified value is exceeded, the job fails.\n"},"fallbackOffset":{"type":"string","description":"Automatic offset reset\n"},"groupName":{"type":"string","description":"Group Name\n"},"jobConfig":{"type":"string","description":"The YAML configuration file of the job. This parameter must be specified when Mode is set to professional.\n"},"jobDescription":{"type":"string","description":"The description of the job.\n"},"jobId":{"type":"string","description":"The job ID.\n"},"jobName":{"type":"string","description":"The name of the job.\n"},"matchColumns":{"type":"array","items":{"type":"string"},"description":"Match Field\n"},"mode":{"type":"string","description":"The configuration mode. Valid values:\n\n1.  basic: In basic mode, you must configure the configuration parameters.\n\n2.  professional: In professional mode, you can submit a YAML configuration file.\n"},"password":{"type":"string","description":"The password of the database account.\n"},"srcColumns":{"type":"array","items":{"type":"string"},"description":"Source Field\n"},"status":{"type":"string","description":"Service status, value:\n"},"tryRun":{"type":"boolean","description":"Specifies whether to test the real-time job. Valid values:\n\n- true\n- false\n\nDefault value: false.\n"},"updateColumns":{"type":"array","items":{"type":"string"},"description":"Update Field\n"},"writeMode":{"type":"string","description":"The write mode.\n\nValid values:\n\n- insert\n- update\n- merge\n"}},"required":["createTime","dataSourceId","dbInstanceId","jobId","jobName","status"],"inputProperties":{"account":{"type":"string","description":"The name of the database account.\n"},"consistency":{"type":"string","description":"The delivery guarantee setting.\n\nValid values:\n\n- ATLEAST\n- EXACTLY\n"},"dataSourceId":{"type":"string","description":"The data source ID.\n","willReplaceOnChanges":true},"dbInstanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"destColumns":{"type":"array","items":{"type":"string"},"description":"Target Field\n"},"destDatabase":{"type":"string","description":"The name of the destination database.\n"},"destSchema":{"type":"string","description":"Target Schema\n"},"destTable":{"type":"string","description":"The name of the destination table.\n"},"errorLimitCount":{"type":"integer","description":"The number of allowed error rows. Write failures occur when Kafka data does not match the destination table in AnalyticDB for PostgreSQL. If the specified value is exceeded, the job fails.\n"},"fallbackOffset":{"type":"string","description":"Automatic offset reset\n"},"groupName":{"type":"string","description":"Group Name\n"},"jobConfig":{"type":"string","description":"The YAML configuration file of the job. This parameter must be specified when Mode is set to professional.\n"},"jobDescription":{"type":"string","description":"The description of the job.\n"},"jobName":{"type":"string","description":"The name of the job.\n","willReplaceOnChanges":true},"matchColumns":{"type":"array","items":{"type":"string"},"description":"Match Field\n"},"mode":{"type":"string","description":"The configuration mode. Valid values:\n\n1.  basic: In basic mode, you must configure the configuration parameters.\n\n2.  professional: In professional mode, you can submit a YAML configuration file.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of the database account.\n"},"srcColumns":{"type":"array","items":{"type":"string"},"description":"Source Field\n"},"tryRun":{"type":"boolean","description":"Specifies whether to test the real-time job. Valid values:\n\n- true\n- false\n\nDefault value: false.\n"},"updateColumns":{"type":"array","items":{"type":"string"},"description":"Update Field\n"},"writeMode":{"type":"string","description":"The write mode.\n\nValid values:\n\n- insert\n- update\n- merge\n"}},"requiredInputs":["dataSourceId","dbInstanceId","jobName"],"stateInputs":{"description":"Input properties used for looking up and filtering StreamingJob resources.\n","properties":{"account":{"type":"string","description":"The name of the database account.\n"},"consistency":{"type":"string","description":"The delivery guarantee setting.\n\nValid values:\n\n- ATLEAST\n- EXACTLY\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"dataSourceId":{"type":"string","description":"The data source ID.\n","willReplaceOnChanges":true},"dbInstanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"destColumns":{"type":"array","items":{"type":"string"},"description":"Target Field\n"},"destDatabase":{"type":"string","description":"The name of the destination database.\n"},"destSchema":{"type":"string","description":"Target Schema\n"},"destTable":{"type":"string","description":"The name of the destination table.\n"},"errorLimitCount":{"type":"integer","description":"The number of allowed error rows. Write failures occur when Kafka data does not match the destination table in AnalyticDB for PostgreSQL. If the specified value is exceeded, the job fails.\n"},"fallbackOffset":{"type":"string","description":"Automatic offset reset\n"},"groupName":{"type":"string","description":"Group Name\n"},"jobConfig":{"type":"string","description":"The YAML configuration file of the job. This parameter must be specified when Mode is set to professional.\n"},"jobDescription":{"type":"string","description":"The description of the job.\n"},"jobId":{"type":"string","description":"The job ID.\n"},"jobName":{"type":"string","description":"The name of the job.\n","willReplaceOnChanges":true},"matchColumns":{"type":"array","items":{"type":"string"},"description":"Match Field\n"},"mode":{"type":"string","description":"The configuration mode. Valid values:\n\n1.  basic: In basic mode, you must configure the configuration parameters.\n\n2.  professional: In professional mode, you can submit a YAML configuration file.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of the database account.\n"},"srcColumns":{"type":"array","items":{"type":"string"},"description":"Source Field\n"},"status":{"type":"string","description":"Service status, value:\n"},"tryRun":{"type":"boolean","description":"Specifies whether to test the real-time job. Valid values:\n\n- true\n- false\n\nDefault value: false.\n"},"updateColumns":{"type":"array","items":{"type":"string"},"description":"Update Field\n"},"writeMode":{"type":"string","description":"The write mode.\n\nValid values:\n\n- insert\n- update\n- merge\n"}},"type":"object"}},"alicloud:gpdb/supabaseProject:SupabaseProject":{"description":"Provides a AnalyticDB for PostgreSQL (GPDB) Supabase Project resource.\n\n\n\nFor information about AnalyticDB for PostgreSQL (GPDB) Supabase Project and how to use it, see [What is Supabase Project](https://next.api.alibabacloud.com/document/gpdb/2016-05-03/CreateSupabaseProject).\n\n\u003e **NOTE:** Available since v1.266.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = _default.then(_default =\u003e alicloud.vpc.getSwitches({\n    vpcId: _default.ids?.[0],\n    zoneId: \"cn-hangzhou-j\",\n}));\nconst defaultSupabaseProject = new alicloud.gpdb.SupabaseProject(\"default\", {\n    projectSpec: \"1C2G\",\n    zoneId: \"cn-hangzhou-j\",\n    vpcId: _default.then(_default =\u003e _default.ids?.[0]),\n    projectName: \"supabase_example\",\n    securityIpLists: [\"127.0.0.1\"],\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    diskPerformanceLevel: \"PL0\",\n    storageSize: 1,\n    accountPassword: \"YourPassword123!\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default.ids[0],\n    zone_id=\"cn-hangzhou-j\")\ndefault_supabase_project = alicloud.gpdb.SupabaseProject(\"default\",\n    project_spec=\"1C2G\",\n    zone_id=\"cn-hangzhou-j\",\n    vpc_id=default.ids[0],\n    project_name=\"supabase_example\",\n    security_ip_lists=[\"127.0.0.1\"],\n    vswitch_id=default_get_switches.ids[0],\n    disk_performance_level=\"PL0\",\n    storage_size=1,\n    account_password=\"YourPassword123!\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = \"cn-hangzhou-j\",\n    });\n\n    var defaultSupabaseProject = new AliCloud.Gpdb.SupabaseProject(\"default\", new()\n    {\n        ProjectSpec = \"1C2G\",\n        ZoneId = \"cn-hangzhou-j\",\n        VpcId = @default.Apply(@default =\u003e @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0])),\n        ProjectName = \"supabase_example\",\n        SecurityIpLists = new[]\n        {\n            \"127.0.0.1\",\n        },\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        DiskPerformanceLevel = \"PL0\",\n        StorageSize = 1,\n        AccountPassword = \"YourPassword123!\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(_default.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(\"cn-hangzhou-j\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gpdb.NewSupabaseProject(ctx, \"default\", \u0026gpdb.SupabaseProjectArgs{\n\t\t\tProjectSpec: pulumi.String(\"1C2G\"),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-j\"),\n\t\t\tVpcId:       pulumi.String(_default.Ids[0]),\n\t\t\tProjectName: pulumi.String(\"supabase_example\"),\n\t\t\tSecurityIpLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"127.0.0.1\"),\n\t\t\t},\n\t\t\tVswitchId:            pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tDiskPerformanceLevel: pulumi.String(\"PL0\"),\n\t\t\tStorageSize:          pulumi.Int(1),\n\t\t\tAccountPassword:      pulumi.String(\"YourPassword123!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.gpdb.SupabaseProject;\nimport com.pulumi.alicloud.gpdb.SupabaseProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(default_.ids()[0])\n            .zoneId(\"cn-hangzhou-j\")\n            .build());\n\n        var defaultSupabaseProject = new SupabaseProject(\"defaultSupabaseProject\", SupabaseProjectArgs.builder()\n            .projectSpec(\"1C2G\")\n            .zoneId(\"cn-hangzhou-j\")\n            .vpcId(default_.ids()[0])\n            .projectName(\"supabase_example\")\n            .securityIpLists(\"127.0.0.1\")\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .diskPerformanceLevel(\"PL0\")\n            .storageSize(1)\n            .accountPassword(\"YourPassword123!\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultSupabaseProject:\n    type: alicloud:gpdb:SupabaseProject\n    name: default\n    properties:\n      projectSpec: 1C2G\n      zoneId: cn-hangzhou-j\n      vpcId: ${default.ids[0]}\n      projectName: supabase_example\n      securityIpLists:\n        - 127.0.0.1\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      diskPerformanceLevel: PL0\n      storageSize: '1'\n      accountPassword: YourPassword123!\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${default.ids[0]}\n        zoneId: cn-hangzhou-j\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAnalyticDB for PostgreSQL (GPDB) Supabase Project can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gpdb/supabaseProject:SupabaseProject example \u003cid\u003e\n```\n\n","properties":{"accountPassword":{"type":"string","description":"The password for the initial account.\n- Consists of three or more of uppercase letters, lowercase letters, numbers, and special characters.\n- Support for special characters:! @#$%^\u0026 *()_+-=\n- Length is 8~32 characters.\n","secret":true},"createTime":{"type":"string","description":"The creation time of the resource\n"},"diskPerformanceLevel":{"type":"string","description":"cloud disk performance level\n"},"projectName":{"type":"string","description":"The project name. The naming rules are as follows:\n- 1~128 characters in length.\n- Can only contain English letters, numbers, dashes (-) and underscores (_).\n- Must begin with an English letter or an underscore (_).\n"},"projectSpec":{"type":"string","description":"The performance level of the Supabase instance.\n"},"regionId":{"type":"string","description":"The region ID.\n"},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"The IP address whitelist.\n"},"status":{"type":"string","description":"The status of the Supabase instance.\n"},"storageSize":{"type":"integer","description":"The storage capacity of the instance. Unit: GB.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n"},"vswitchId":{"type":"string","description":"The vSwitch ID.\n"},"zoneId":{"type":"string","description":"The Zone ID.\n"}},"required":["accountPassword","createTime","diskPerformanceLevel","projectName","projectSpec","regionId","securityIpLists","status","storageSize","vpcId","vswitchId","zoneId"],"inputProperties":{"accountPassword":{"type":"string","description":"The password for the initial account.\n- Consists of three or more of uppercase letters, lowercase letters, numbers, and special characters.\n- Support for special characters:! @#$%^\u0026 *()_+-=\n- Length is 8~32 characters.\n","secret":true},"diskPerformanceLevel":{"type":"string","description":"cloud disk performance level\n","willReplaceOnChanges":true},"projectName":{"type":"string","description":"The project name. The naming rules are as follows:\n- 1~128 characters in length.\n- Can only contain English letters, numbers, dashes (-) and underscores (_).\n- Must begin with an English letter or an underscore (_).\n","willReplaceOnChanges":true},"projectSpec":{"type":"string","description":"The performance level of the Supabase instance.\n","willReplaceOnChanges":true},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"The IP address whitelist.\n"},"storageSize":{"type":"integer","description":"The storage capacity of the instance. Unit: GB.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VPC ID.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vSwitch ID.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone ID.\n","willReplaceOnChanges":true}},"requiredInputs":["accountPassword","projectName","projectSpec","securityIpLists","vpcId","vswitchId","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering SupabaseProject resources.\n","properties":{"accountPassword":{"type":"string","description":"The password for the initial account.\n- Consists of three or more of uppercase letters, lowercase letters, numbers, and special characters.\n- Support for special characters:! @#$%^\u0026 *()_+-=\n- Length is 8~32 characters.\n","secret":true},"createTime":{"type":"string","description":"The creation time of the resource\n"},"diskPerformanceLevel":{"type":"string","description":"cloud disk performance level\n","willReplaceOnChanges":true},"projectName":{"type":"string","description":"The project name. The naming rules are as follows:\n- 1~128 characters in length.\n- Can only contain English letters, numbers, dashes (-) and underscores (_).\n- Must begin with an English letter or an underscore (_).\n","willReplaceOnChanges":true},"projectSpec":{"type":"string","description":"The performance level of the Supabase instance.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The region ID.\n"},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"The IP address whitelist.\n"},"status":{"type":"string","description":"The status of the Supabase instance.\n"},"storageSize":{"type":"integer","description":"The storage capacity of the instance. Unit: GB.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VPC ID.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vSwitch ID.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:graphdatabase/dbInstance:DbInstance":{"description":"Provides a Graph Database Db Instance resource.\n\nFor information about Graph Database Db Instance and how to use it, see [What is Db Instance](https://www.alibabacloud.com/help/en/graph-compute/latest/placeholder).\n\n\u003e **NOTE:** Available since v1.136.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst example = new alicloud.graphdatabase.DbInstance(\"example\", {\n    dbNodeClass: \"gdb.r.2xlarge\",\n    dbInstanceNetworkType: \"vpc\",\n    dbVersion: \"1.0\",\n    dbInstanceCategory: \"HA\",\n    dbInstanceStorageType: \"cloud_ssd\",\n    dbNodeStorage: 50,\n    paymentType: \"PayAsYouGo\",\n    dbInstanceDescription: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nexample = alicloud.graphdatabase.DbInstance(\"example\",\n    db_node_class=\"gdb.r.2xlarge\",\n    db_instance_network_type=\"vpc\",\n    db_version=\"1.0\",\n    db_instance_category=\"HA\",\n    db_instance_storage_type=\"cloud_ssd\",\n    db_node_storage=50,\n    payment_type=\"PayAsYouGo\",\n    db_instance_description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var example = new AliCloud.GraphDatabase.DbInstance(\"example\", new()\n    {\n        DbNodeClass = \"gdb.r.2xlarge\",\n        DbInstanceNetworkType = \"vpc\",\n        DbVersion = \"1.0\",\n        DbInstanceCategory = \"HA\",\n        DbInstanceStorageType = \"cloud_ssd\",\n        DbNodeStorage = 50,\n        PaymentType = \"PayAsYouGo\",\n        DbInstanceDescription = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/graphdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := graphdatabase.NewDbInstance(ctx, \"example\", \u0026graphdatabase.DbInstanceArgs{\n\t\t\tDbNodeClass:           pulumi.String(\"gdb.r.2xlarge\"),\n\t\t\tDbInstanceNetworkType: pulumi.String(\"vpc\"),\n\t\t\tDbVersion:             pulumi.String(\"1.0\"),\n\t\t\tDbInstanceCategory:    pulumi.String(\"HA\"),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_ssd\"),\n\t\t\tDbNodeStorage:         pulumi.Int(50),\n\t\t\tPaymentType:           pulumi.String(\"PayAsYouGo\"),\n\t\t\tDbInstanceDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.graphdatabase.DbInstance;\nimport com.pulumi.alicloud.graphdatabase.DbInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var example = new DbInstance(\"example\", DbInstanceArgs.builder()\n            .dbNodeClass(\"gdb.r.2xlarge\")\n            .dbInstanceNetworkType(\"vpc\")\n            .dbVersion(\"1.0\")\n            .dbInstanceCategory(\"HA\")\n            .dbInstanceStorageType(\"cloud_ssd\")\n            .dbNodeStorage(50)\n            .paymentType(\"PayAsYouGo\")\n            .dbInstanceDescription(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  example:\n    type: alicloud:graphdatabase:DbInstance\n    properties:\n      dbNodeClass: gdb.r.2xlarge\n      dbInstanceNetworkType: vpc\n      dbVersion: '1.0'\n      dbInstanceCategory: HA\n      dbInstanceStorageType: cloud_ssd\n      dbNodeStorage: '50'\n      paymentType: PayAsYouGo\n      dbInstanceDescription: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGraph Database Db Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:graphdatabase/dbInstance:DbInstance example \u003cid\u003e\n```\n\n","properties":{"connectionString":{"type":"string","description":"(Available in 1.196.0+)  The connection string of the instance.\n"},"dbInstanceCategory":{"type":"string","description":"The category of the db instance. Valid values: `HA`, `SINGLE`(Available in 1.173.0+).\n"},"dbInstanceDescription":{"type":"string","description":"According to the practical example or notes.\n"},"dbInstanceIpArrays":{"type":"array","items":{"$ref":"#/types/alicloud:graphdatabase/DbInstanceDbInstanceIpArray:DbInstanceDbInstanceIpArray"},"description":"IP ADDRESS whitelist for the instance group list. See \u003cspan pulumi-lang-nodejs=\"`dbInstanceIpArray`\" pulumi-lang-dotnet=\"`DbInstanceIpArray`\" pulumi-lang-go=\"`dbInstanceIpArray`\" pulumi-lang-python=\"`db_instance_ip_array`\" pulumi-lang-yaml=\"`dbInstanceIpArray`\" pulumi-lang-java=\"`dbInstanceIpArray`\"\u003e`db_instance_ip_array`\u003c/span\u003e below.\n"},"dbInstanceNetworkType":{"type":"string","description":"The network type of the db instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n"},"dbInstanceStorageType":{"type":"string","description":"Disk storage type. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e. Modification is not supported.\n"},"dbNodeClass":{"type":"string","description":"The class of the db node. Valid values: `gdb.r.xlarge`, `gdb.r.2xlarge`, `gdb.r.4xlarge`, `gdb.r.8xlarge`, `gdb.r.16xlarge`, `gdb.r.xlarge_basic`, `gdb.r.2xlarge_basic`, `gdb.r.4xlarge_basic`, `gdb.r.8xlarge_basic`, `gdb.r.16xlarge_basic`.\n"},"dbNodeStorage":{"type":"integer","description":"Instance storage space, which is measured in GB.\n"},"dbVersion":{"type":"string","description":"Kernel Version. Valid values: `1.0` or `1.0-OpenCypher`. `1.0`: represented as gremlin, `1.0-OpenCypher`: said opencypher.\n"},"paymentType":{"type":"string","description":"The paymen type of the resource. Valid values: `PayAsYouGo`.\n"},"port":{"type":"string","description":"(Available in 1.196.0+) The connection port of the instance.\n"},"status":{"type":"string","description":"Instance status. Value range: `Creating`, `Running`, `Deleting`, `Rebooting`, `DBInstanceClassChanging`, `NetAddressCreating` and `NetAddressDeleting`.\n"},"vpcId":{"type":"string","description":"ID of the VPC.\n"},"vswitchId":{"type":"string","description":"The ID of attaching vswitch to instance.\n"},"zoneId":{"type":"string","description":"The zone ID of the resource.\n"}},"required":["connectionString","dbInstanceCategory","dbInstanceIpArrays","dbInstanceNetworkType","dbInstanceStorageType","dbNodeClass","dbNodeStorage","dbVersion","paymentType","port","status","vpcId","vswitchId","zoneId"],"inputProperties":{"dbInstanceCategory":{"type":"string","description":"The category of the db instance. Valid values: `HA`, `SINGLE`(Available in 1.173.0+).\n","willReplaceOnChanges":true},"dbInstanceDescription":{"type":"string","description":"According to the practical example or notes.\n"},"dbInstanceIpArrays":{"type":"array","items":{"$ref":"#/types/alicloud:graphdatabase/DbInstanceDbInstanceIpArray:DbInstanceDbInstanceIpArray"},"description":"IP ADDRESS whitelist for the instance group list. See \u003cspan pulumi-lang-nodejs=\"`dbInstanceIpArray`\" pulumi-lang-dotnet=\"`DbInstanceIpArray`\" pulumi-lang-go=\"`dbInstanceIpArray`\" pulumi-lang-python=\"`db_instance_ip_array`\" pulumi-lang-yaml=\"`dbInstanceIpArray`\" pulumi-lang-java=\"`dbInstanceIpArray`\"\u003e`db_instance_ip_array`\u003c/span\u003e below.\n"},"dbInstanceNetworkType":{"type":"string","description":"The network type of the db instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n","willReplaceOnChanges":true},"dbInstanceStorageType":{"type":"string","description":"Disk storage type. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e. Modification is not supported.\n","willReplaceOnChanges":true},"dbNodeClass":{"type":"string","description":"The class of the db node. Valid values: `gdb.r.xlarge`, `gdb.r.2xlarge`, `gdb.r.4xlarge`, `gdb.r.8xlarge`, `gdb.r.16xlarge`, `gdb.r.xlarge_basic`, `gdb.r.2xlarge_basic`, `gdb.r.4xlarge_basic`, `gdb.r.8xlarge_basic`, `gdb.r.16xlarge_basic`.\n"},"dbNodeStorage":{"type":"integer","description":"Instance storage space, which is measured in GB.\n"},"dbVersion":{"type":"string","description":"Kernel Version. Valid values: `1.0` or `1.0-OpenCypher`. `1.0`: represented as gremlin, `1.0-OpenCypher`: said opencypher.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The paymen type of the resource. Valid values: `PayAsYouGo`.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"ID of the VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of attaching vswitch to instance.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the resource.\n","willReplaceOnChanges":true}},"requiredInputs":["dbInstanceCategory","dbInstanceNetworkType","dbInstanceStorageType","dbNodeClass","dbNodeStorage","dbVersion","paymentType"],"stateInputs":{"description":"Input properties used for looking up and filtering DbInstance resources.\n","properties":{"connectionString":{"type":"string","description":"(Available in 1.196.0+)  The connection string of the instance.\n"},"dbInstanceCategory":{"type":"string","description":"The category of the db instance. Valid values: `HA`, `SINGLE`(Available in 1.173.0+).\n","willReplaceOnChanges":true},"dbInstanceDescription":{"type":"string","description":"According to the practical example or notes.\n"},"dbInstanceIpArrays":{"type":"array","items":{"$ref":"#/types/alicloud:graphdatabase/DbInstanceDbInstanceIpArray:DbInstanceDbInstanceIpArray"},"description":"IP ADDRESS whitelist for the instance group list. See \u003cspan pulumi-lang-nodejs=\"`dbInstanceIpArray`\" pulumi-lang-dotnet=\"`DbInstanceIpArray`\" pulumi-lang-go=\"`dbInstanceIpArray`\" pulumi-lang-python=\"`db_instance_ip_array`\" pulumi-lang-yaml=\"`dbInstanceIpArray`\" pulumi-lang-java=\"`dbInstanceIpArray`\"\u003e`db_instance_ip_array`\u003c/span\u003e below.\n"},"dbInstanceNetworkType":{"type":"string","description":"The network type of the db instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e.\n","willReplaceOnChanges":true},"dbInstanceStorageType":{"type":"string","description":"Disk storage type. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e. Modification is not supported.\n","willReplaceOnChanges":true},"dbNodeClass":{"type":"string","description":"The class of the db node. Valid values: `gdb.r.xlarge`, `gdb.r.2xlarge`, `gdb.r.4xlarge`, `gdb.r.8xlarge`, `gdb.r.16xlarge`, `gdb.r.xlarge_basic`, `gdb.r.2xlarge_basic`, `gdb.r.4xlarge_basic`, `gdb.r.8xlarge_basic`, `gdb.r.16xlarge_basic`.\n"},"dbNodeStorage":{"type":"integer","description":"Instance storage space, which is measured in GB.\n"},"dbVersion":{"type":"string","description":"Kernel Version. Valid values: `1.0` or `1.0-OpenCypher`. `1.0`: represented as gremlin, `1.0-OpenCypher`: said opencypher.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The paymen type of the resource. Valid values: `PayAsYouGo`.\n","willReplaceOnChanges":true},"port":{"type":"string","description":"(Available in 1.196.0+) The connection port of the instance.\n"},"status":{"type":"string","description":"Instance status. Value range: `Creating`, `Running`, `Deleting`, `Rebooting`, `DBInstanceClassChanging`, `NetAddressCreating` and `NetAddressDeleting`.\n"},"vpcId":{"type":"string","description":"ID of the VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of attaching vswitch to instance.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the resource.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:gwlb/listener:Listener":{"description":"Provides a GWLB Listener resource.\n\n\n\nFor information about GWLB Listener and how to use it, see [What is Listener](https://www.alibabacloud.com/help/en/slb/gateway-based-load-balancing-gwlb/developer-reference/api-gwlb-2024-04-15-createlistener).\n\n\u003e **NOTE:** Available since v1.234.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst zoneId1 = config.get(\"zoneId1\") || \"cn-wulanchabu-b\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    cidrBlock: \"10.0.0.0/8\",\n    vpcName: name,\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    zoneId: zoneId1,\n    cidrBlock: \"10.0.0.0/24\",\n    vswitchName: std.format({\n        input: \"%s1\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst defaultLoadBalancer = new alicloud.gwlb.LoadBalancer(\"default\", {\n    vpcId: defaultNetwork.id,\n    loadBalancerName: std.format({\n        input: \"%s3\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    zoneMappings: [{\n        vswitchId: defaultSwitch.id,\n        zoneId: zoneId1,\n    }],\n    addressIpVersion: \"Ipv4\",\n});\nconst defaultServerGroup = new alicloud.gwlb.ServerGroup(\"default\", {\n    protocol: \"GENEVE\",\n    serverGroupName: \"tfaccgwlb62413\",\n    serverGroupType: \"Ip\",\n    servers: [\n        {\n            serverId: \"10.0.0.1\",\n            serverIp: \"10.0.0.1\",\n            serverType: \"Ip\",\n        },\n        {\n            serverId: \"10.0.0.2\",\n            serverIp: \"10.0.0.2\",\n            serverType: \"Ip\",\n        },\n        {\n            serverId: \"10.0.0.3\",\n            serverIp: \"10.0.0.3\",\n            serverType: \"Ip\",\n        },\n    ],\n    connectionDrainConfig: {\n        connectionDrainEnabled: true,\n        connectionDrainTimeout: 1,\n    },\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    dryRun: false,\n    healthCheckConfig: {\n        healthCheckProtocol: \"HTTP\",\n        healthCheckHttpCodes: [\n            \"http_2xx\",\n            \"http_3xx\",\n            \"http_4xx\",\n        ],\n        healthCheckInterval: 10,\n        healthCheckPath: \"/health-check\",\n        unhealthyThreshold: 2,\n        healthCheckConnectPort: 80,\n        healthCheckConnectTimeout: 5,\n        healthCheckDomain: \"www.domain.com\",\n        healthCheckEnabled: true,\n        healthyThreshold: 2,\n    },\n    vpcId: defaultNetwork.id,\n    scheduler: \"5TCH\",\n});\nconst defaultListener = new alicloud.gwlb.Listener(\"default\", {\n    listenerDescription: \"example-tf-lsn\",\n    serverGroupId: defaultServerGroup.id,\n    loadBalancerId: defaultLoadBalancer.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nzone_id1 = config.get(\"zoneId1\")\nif zone_id1 is None:\n    zone_id1 = \"cn-wulanchabu-b\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_network = alicloud.vpc.Network(\"default\",\n    cidr_block=\"10.0.0.0/8\",\n    vpc_name=name)\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    zone_id=zone_id1,\n    cidr_block=\"10.0.0.0/24\",\n    vswitch_name=std.format(input=\"%s1\",\n        args=[name]).result)\ndefault_load_balancer = alicloud.gwlb.LoadBalancer(\"default\",\n    vpc_id=default_network.id,\n    load_balancer_name=std.format(input=\"%s3\",\n        args=[name]).result,\n    zone_mappings=[{\n        \"vswitch_id\": default_switch.id,\n        \"zone_id\": zone_id1,\n    }],\n    address_ip_version=\"Ipv4\")\ndefault_server_group = alicloud.gwlb.ServerGroup(\"default\",\n    protocol=\"GENEVE\",\n    server_group_name=\"tfaccgwlb62413\",\n    server_group_type=\"Ip\",\n    servers=[\n        {\n            \"server_id\": \"10.0.0.1\",\n            \"server_ip\": \"10.0.0.1\",\n            \"server_type\": \"Ip\",\n        },\n        {\n            \"server_id\": \"10.0.0.2\",\n            \"server_ip\": \"10.0.0.2\",\n            \"server_type\": \"Ip\",\n        },\n        {\n            \"server_id\": \"10.0.0.3\",\n            \"server_ip\": \"10.0.0.3\",\n            \"server_type\": \"Ip\",\n        },\n    ],\n    connection_drain_config={\n        \"connection_drain_enabled\": True,\n        \"connection_drain_timeout\": 1,\n    },\n    resource_group_id=default.ids[0],\n    dry_run=False,\n    health_check_config={\n        \"health_check_protocol\": \"HTTP\",\n        \"health_check_http_codes\": [\n            \"http_2xx\",\n            \"http_3xx\",\n            \"http_4xx\",\n        ],\n        \"health_check_interval\": 10,\n        \"health_check_path\": \"/health-check\",\n        \"unhealthy_threshold\": 2,\n        \"health_check_connect_port\": 80,\n        \"health_check_connect_timeout\": 5,\n        \"health_check_domain\": \"www.domain.com\",\n        \"health_check_enabled\": True,\n        \"healthy_threshold\": 2,\n    },\n    vpc_id=default_network.id,\n    scheduler=\"5TCH\")\ndefault_listener = alicloud.gwlb.Listener(\"default\",\n    listener_description=\"example-tf-lsn\",\n    server_group_id=default_server_group.id,\n    load_balancer_id=default_load_balancer.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var zoneId1 = config.Get(\"zoneId1\") ?? \"cn-wulanchabu-b\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        CidrBlock = \"10.0.0.0/8\",\n        VpcName = name,\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        ZoneId = zoneId1,\n        CidrBlock = \"10.0.0.0/24\",\n        VswitchName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultLoadBalancer = new AliCloud.Gwlb.LoadBalancer(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        LoadBalancerName = Std.Format.Invoke(new()\n        {\n            Input = \"%s3\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        ZoneMappings = new[]\n        {\n            new AliCloud.Gwlb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch.Id,\n                ZoneId = zoneId1,\n            },\n        },\n        AddressIpVersion = \"Ipv4\",\n    });\n\n    var defaultServerGroup = new AliCloud.Gwlb.ServerGroup(\"default\", new()\n    {\n        Protocol = \"GENEVE\",\n        ServerGroupName = \"tfaccgwlb62413\",\n        ServerGroupType = \"Ip\",\n        Servers = new[]\n        {\n            new AliCloud.Gwlb.Inputs.ServerGroupServerArgs\n            {\n                ServerId = \"10.0.0.1\",\n                ServerIp = \"10.0.0.1\",\n                ServerType = \"Ip\",\n            },\n            new AliCloud.Gwlb.Inputs.ServerGroupServerArgs\n            {\n                ServerId = \"10.0.0.2\",\n                ServerIp = \"10.0.0.2\",\n                ServerType = \"Ip\",\n            },\n            new AliCloud.Gwlb.Inputs.ServerGroupServerArgs\n            {\n                ServerId = \"10.0.0.3\",\n                ServerIp = \"10.0.0.3\",\n                ServerType = \"Ip\",\n            },\n        },\n        ConnectionDrainConfig = new AliCloud.Gwlb.Inputs.ServerGroupConnectionDrainConfigArgs\n        {\n            ConnectionDrainEnabled = true,\n            ConnectionDrainTimeout = 1,\n        },\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        DryRun = false,\n        HealthCheckConfig = new AliCloud.Gwlb.Inputs.ServerGroupHealthCheckConfigArgs\n        {\n            HealthCheckProtocol = \"HTTP\",\n            HealthCheckHttpCodes = new[]\n            {\n                \"http_2xx\",\n                \"http_3xx\",\n                \"http_4xx\",\n            },\n            HealthCheckInterval = 10,\n            HealthCheckPath = \"/health-check\",\n            UnhealthyThreshold = 2,\n            HealthCheckConnectPort = 80,\n            HealthCheckConnectTimeout = 5,\n            HealthCheckDomain = \"www.domain.com\",\n            HealthCheckEnabled = true,\n            HealthyThreshold = 2,\n        },\n        VpcId = defaultNetwork.Id,\n        Scheduler = \"5TCH\",\n    });\n\n    var defaultListener = new AliCloud.Gwlb.Listener(\"default\", new()\n    {\n        ListenerDescription = \"example-tf-lsn\",\n        ServerGroupId = defaultServerGroup.Id,\n        LoadBalancerId = defaultLoadBalancer.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gwlb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tzoneId1 := \"cn-wulanchabu-b\"\n\t\tif param := cfg.Get(\"zoneId1\"); param != \"\" {\n\t\t\tzoneId1 = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(zoneId1),\n\t\t\tCidrBlock:   pulumi.String(\"10.0.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(invokeFormat.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s3\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultLoadBalancer, err := gwlb.NewLoadBalancer(ctx, \"default\", \u0026gwlb.LoadBalancerArgs{\n\t\t\tVpcId:            defaultNetwork.ID(),\n\t\t\tLoadBalancerName: pulumi.String(invokeFormat1.Result),\n\t\t\tZoneMappings: gwlb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026gwlb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t\t\t\tZoneId:    pulumi.String(zoneId1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAddressIpVersion: pulumi.String(\"Ipv4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultServerGroup, err := gwlb.NewServerGroup(ctx, \"default\", \u0026gwlb.ServerGroupArgs{\n\t\t\tProtocol:        pulumi.String(\"GENEVE\"),\n\t\t\tServerGroupName: pulumi.String(\"tfaccgwlb62413\"),\n\t\t\tServerGroupType: pulumi.String(\"Ip\"),\n\t\t\tServers: gwlb.ServerGroupServerArray{\n\t\t\t\t\u0026gwlb.ServerGroupServerArgs{\n\t\t\t\t\tServerId:   pulumi.String(\"10.0.0.1\"),\n\t\t\t\t\tServerIp:   pulumi.String(\"10.0.0.1\"),\n\t\t\t\t\tServerType: pulumi.String(\"Ip\"),\n\t\t\t\t},\n\t\t\t\t\u0026gwlb.ServerGroupServerArgs{\n\t\t\t\t\tServerId:   pulumi.String(\"10.0.0.2\"),\n\t\t\t\t\tServerIp:   pulumi.String(\"10.0.0.2\"),\n\t\t\t\t\tServerType: pulumi.String(\"Ip\"),\n\t\t\t\t},\n\t\t\t\t\u0026gwlb.ServerGroupServerArgs{\n\t\t\t\t\tServerId:   pulumi.String(\"10.0.0.3\"),\n\t\t\t\t\tServerIp:   pulumi.String(\"10.0.0.3\"),\n\t\t\t\t\tServerType: pulumi.String(\"Ip\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tConnectionDrainConfig: \u0026gwlb.ServerGroupConnectionDrainConfigArgs{\n\t\t\t\tConnectionDrainEnabled: pulumi.Bool(true),\n\t\t\t\tConnectionDrainTimeout: pulumi.Int(1),\n\t\t\t},\n\t\t\tResourceGroupId: pulumi.String(_default.Ids[0]),\n\t\t\tDryRun:          pulumi.Bool(false),\n\t\t\tHealthCheckConfig: \u0026gwlb.ServerGroupHealthCheckConfigArgs{\n\t\t\t\tHealthCheckProtocol: pulumi.String(\"HTTP\"),\n\t\t\t\tHealthCheckHttpCodes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"http_2xx\"),\n\t\t\t\t\tpulumi.String(\"http_3xx\"),\n\t\t\t\t\tpulumi.String(\"http_4xx\"),\n\t\t\t\t},\n\t\t\t\tHealthCheckInterval:       pulumi.Int(10),\n\t\t\t\tHealthCheckPath:           pulumi.String(\"/health-check\"),\n\t\t\t\tUnhealthyThreshold:        pulumi.Int(2),\n\t\t\t\tHealthCheckConnectPort:    pulumi.Int(80),\n\t\t\t\tHealthCheckConnectTimeout: pulumi.Int(5),\n\t\t\t\tHealthCheckDomain:         pulumi.String(\"www.domain.com\"),\n\t\t\t\tHealthCheckEnabled:        pulumi.Bool(true),\n\t\t\t\tHealthyThreshold:          pulumi.Int(2),\n\t\t\t},\n\t\t\tVpcId:     defaultNetwork.ID(),\n\t\t\tScheduler: pulumi.String(\"5TCH\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gwlb.NewListener(ctx, \"default\", \u0026gwlb.ListenerArgs{\n\t\t\tListenerDescription: pulumi.String(\"example-tf-lsn\"),\n\t\t\tServerGroupId:       defaultServerGroup.ID(),\n\t\t\tLoadBalancerId:      defaultLoadBalancer.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.gwlb.LoadBalancer;\nimport com.pulumi.alicloud.gwlb.LoadBalancerArgs;\nimport com.pulumi.alicloud.gwlb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.gwlb.ServerGroup;\nimport com.pulumi.alicloud.gwlb.ServerGroupArgs;\nimport com.pulumi.alicloud.gwlb.inputs.ServerGroupServerArgs;\nimport com.pulumi.alicloud.gwlb.inputs.ServerGroupConnectionDrainConfigArgs;\nimport com.pulumi.alicloud.gwlb.inputs.ServerGroupHealthCheckConfigArgs;\nimport com.pulumi.alicloud.gwlb.Listener;\nimport com.pulumi.alicloud.gwlb.ListenerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var zoneId1 = config.get(\"zoneId1\").orElse(\"cn-wulanchabu-b\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .cidrBlock(\"10.0.0.0/8\")\n            .vpcName(name)\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .zoneId(zoneId1)\n            .cidrBlock(\"10.0.0.0/24\")\n            .vswitchName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .loadBalancerName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s3\")\n                .args(name)\n                .build()).result())\n            .zoneMappings(LoadBalancerZoneMappingArgs.builder()\n                .vswitchId(defaultSwitch.id())\n                .zoneId(zoneId1)\n                .build())\n            .addressIpVersion(\"Ipv4\")\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .protocol(\"GENEVE\")\n            .serverGroupName(\"tfaccgwlb62413\")\n            .serverGroupType(\"Ip\")\n            .servers(            \n                ServerGroupServerArgs.builder()\n                    .serverId(\"10.0.0.1\")\n                    .serverIp(\"10.0.0.1\")\n                    .serverType(\"Ip\")\n                    .build(),\n                ServerGroupServerArgs.builder()\n                    .serverId(\"10.0.0.2\")\n                    .serverIp(\"10.0.0.2\")\n                    .serverType(\"Ip\")\n                    .build(),\n                ServerGroupServerArgs.builder()\n                    .serverId(\"10.0.0.3\")\n                    .serverIp(\"10.0.0.3\")\n                    .serverType(\"Ip\")\n                    .build())\n            .connectionDrainConfig(ServerGroupConnectionDrainConfigArgs.builder()\n                .connectionDrainEnabled(true)\n                .connectionDrainTimeout(1)\n                .build())\n            .resourceGroupId(default_.ids()[0])\n            .dryRun(false)\n            .healthCheckConfig(ServerGroupHealthCheckConfigArgs.builder()\n                .healthCheckProtocol(\"HTTP\")\n                .healthCheckHttpCodes(                \n                    \"http_2xx\",\n                    \"http_3xx\",\n                    \"http_4xx\")\n                .healthCheckInterval(10)\n                .healthCheckPath(\"/health-check\")\n                .unhealthyThreshold(2)\n                .healthCheckConnectPort(80)\n                .healthCheckConnectTimeout(5)\n                .healthCheckDomain(\"www.domain.com\")\n                .healthCheckEnabled(true)\n                .healthyThreshold(2)\n                .build())\n            .vpcId(defaultNetwork.id())\n            .scheduler(\"5TCH\")\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .listenerDescription(\"example-tf-lsn\")\n            .serverGroupId(defaultServerGroup.id())\n            .loadBalancerId(defaultLoadBalancer.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  zoneId1:\n    type: string\n    default: cn-wulanchabu-b\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      cidrBlock: 10.0.0.0/8\n      vpcName: ${name}\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${zoneId1}\n      cidrBlock: 10.0.0.0/24\n      vswitchName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1'\n            args:\n              - ${name}\n          return: result\n  defaultLoadBalancer:\n    type: alicloud:gwlb:LoadBalancer\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      loadBalancerName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s3'\n            args:\n              - ${name}\n          return: result\n      zoneMappings:\n        - vswitchId: ${defaultSwitch.id}\n          zoneId: ${zoneId1}\n      addressIpVersion: Ipv4\n  defaultServerGroup:\n    type: alicloud:gwlb:ServerGroup\n    name: default\n    properties:\n      protocol: GENEVE\n      serverGroupName: tfaccgwlb62413\n      serverGroupType: Ip\n      servers:\n        - serverId: 10.0.0.1\n          serverIp: 10.0.0.1\n          serverType: Ip\n        - serverId: 10.0.0.2\n          serverIp: 10.0.0.2\n          serverType: Ip\n        - serverId: 10.0.0.3\n          serverIp: 10.0.0.3\n          serverType: Ip\n      connectionDrainConfig:\n        connectionDrainEnabled: 'true'\n        connectionDrainTimeout: '1'\n      resourceGroupId: ${default.ids[0]}\n      dryRun: 'false'\n      healthCheckConfig:\n        healthCheckProtocol: HTTP\n        healthCheckHttpCodes:\n          - http_2xx\n          - http_3xx\n          - http_4xx\n        healthCheckInterval: '10'\n        healthCheckPath: /health-check\n        unhealthyThreshold: '2'\n        healthCheckConnectPort: '80'\n        healthCheckConnectTimeout: '5'\n        healthCheckDomain: www.domain.com\n        healthCheckEnabled: 'true'\n        healthyThreshold: '2'\n      vpcId: ${defaultNetwork.id}\n      scheduler: 5TCH\n  defaultListener:\n    type: alicloud:gwlb:Listener\n    name: default\n    properties:\n      listenerDescription: example-tf-lsn\n      serverGroupId: ${defaultServerGroup.id}\n      loadBalancerId: ${defaultLoadBalancer.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGWLB Listener can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gwlb/listener:Listener example \u003cid\u003e\n```\n\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run, without performing the actual request. Valid values:\n"},"listenerDescription":{"type":"string","description":"The description of the listener.\n\nThe description must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).\n"},"loadBalancerId":{"type":"string","description":"The GWLB instance ID.\n"},"regionId":{"type":"string","description":"The region ID.\n"},"serverGroupId":{"type":"string","description":"The server group ID.\n"},"status":{"type":"string","description":"The status of the listener.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags. You can specify at most 20 tags in each call.\n"}},"required":["loadBalancerId","regionId","serverGroupId","status"],"inputProperties":{"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run, without performing the actual request. Valid values:\n"},"listenerDescription":{"type":"string","description":"The description of the listener.\n\nThe description must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).\n"},"loadBalancerId":{"type":"string","description":"The GWLB instance ID.\n","willReplaceOnChanges":true},"serverGroupId":{"type":"string","description":"The server group ID.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags. You can specify at most 20 tags in each call.\n"}},"requiredInputs":["loadBalancerId","serverGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering Listener resources.\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run, without performing the actual request. Valid values:\n"},"listenerDescription":{"type":"string","description":"The description of the listener.\n\nThe description must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).\n"},"loadBalancerId":{"type":"string","description":"The GWLB instance ID.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The region ID.\n"},"serverGroupId":{"type":"string","description":"The server group ID.\n"},"status":{"type":"string","description":"The status of the listener.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags. You can specify at most 20 tags in each call.\n"}},"type":"object"}},"alicloud:gwlb/loadBalancer:LoadBalancer":{"description":"Provides a GWLB Load Balancer resource.\n\n\n\nFor information about GWLB Load Balancer and how to use it, see [What is Load Balancer](https://www.alibabacloud.com/help/en/slb/gateway-based-load-balancing-gwlb/developer-reference/api-gwlb-2024-04-15-createloadbalancer).\n\n\u003e **NOTE:** Available since v1.234.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst regionId = config.get(\"regionId\") || \"cn-wulanchabu\";\nconst zoneId2 = config.get(\"zoneId2\") || \"cn-wulanchabu-c\";\nconst zoneId1 = config.get(\"zoneId1\") || \"cn-wulanchabu-b\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaulti9Axhl = new alicloud.vpc.Network(\"defaulti9Axhl\", {\n    cidrBlock: \"10.0.0.0/8\",\n    vpcName: name,\n});\nconst default9NaKmL = new alicloud.vpc.Switch(\"default9NaKmL\", {\n    vpcId: defaulti9Axhl.id,\n    zoneId: zoneId1,\n    cidrBlock: \"10.0.0.0/24\",\n    vswitchName: std.format({\n        input: \"%s1\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst defaultH4pKT4 = new alicloud.vpc.Switch(\"defaultH4pKT4\", {\n    vpcId: defaulti9Axhl.id,\n    zoneId: zoneId2,\n    cidrBlock: \"10.0.1.0/24\",\n    vswitchName: std.format({\n        input: \"%s2\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst defaultLoadBalancer = new alicloud.gwlb.LoadBalancer(\"default\", {\n    vpcId: defaulti9Axhl.id,\n    loadBalancerName: name,\n    zoneMappings: [{\n        vswitchId: default9NaKmL.id,\n        zoneId: zoneId1,\n    }],\n    addressIpVersion: \"Ipv4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-wulanchabu\"\nzone_id2 = config.get(\"zoneId2\")\nif zone_id2 is None:\n    zone_id2 = \"cn-wulanchabu-c\"\nzone_id1 = config.get(\"zoneId1\")\nif zone_id1 is None:\n    zone_id1 = \"cn-wulanchabu-b\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefaulti9_axhl = alicloud.vpc.Network(\"defaulti9Axhl\",\n    cidr_block=\"10.0.0.0/8\",\n    vpc_name=name)\ndefault9_na_km_l = alicloud.vpc.Switch(\"default9NaKmL\",\n    vpc_id=defaulti9_axhl.id,\n    zone_id=zone_id1,\n    cidr_block=\"10.0.0.0/24\",\n    vswitch_name=std.format(input=\"%s1\",\n        args=[name]).result)\ndefault_h4p_kt4 = alicloud.vpc.Switch(\"defaultH4pKT4\",\n    vpc_id=defaulti9_axhl.id,\n    zone_id=zone_id2,\n    cidr_block=\"10.0.1.0/24\",\n    vswitch_name=std.format(input=\"%s2\",\n        args=[name]).result)\ndefault_load_balancer = alicloud.gwlb.LoadBalancer(\"default\",\n    vpc_id=defaulti9_axhl.id,\n    load_balancer_name=name,\n    zone_mappings=[{\n        \"vswitch_id\": default9_na_km_l.id,\n        \"zone_id\": zone_id1,\n    }],\n    address_ip_version=\"Ipv4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-wulanchabu\";\n    var zoneId2 = config.Get(\"zoneId2\") ?? \"cn-wulanchabu-c\";\n    var zoneId1 = config.Get(\"zoneId1\") ?? \"cn-wulanchabu-b\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaulti9Axhl = new AliCloud.Vpc.Network(\"defaulti9Axhl\", new()\n    {\n        CidrBlock = \"10.0.0.0/8\",\n        VpcName = name,\n    });\n\n    var default9NaKmL = new AliCloud.Vpc.Switch(\"default9NaKmL\", new()\n    {\n        VpcId = defaulti9Axhl.Id,\n        ZoneId = zoneId1,\n        CidrBlock = \"10.0.0.0/24\",\n        VswitchName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultH4pKT4 = new AliCloud.Vpc.Switch(\"defaultH4pKT4\", new()\n    {\n        VpcId = defaulti9Axhl.Id,\n        ZoneId = zoneId2,\n        CidrBlock = \"10.0.1.0/24\",\n        VswitchName = Std.Format.Invoke(new()\n        {\n            Input = \"%s2\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultLoadBalancer = new AliCloud.Gwlb.LoadBalancer(\"default\", new()\n    {\n        VpcId = defaulti9Axhl.Id,\n        LoadBalancerName = name,\n        ZoneMappings = new[]\n        {\n            new AliCloud.Gwlb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = default9NaKmL.Id,\n                ZoneId = zoneId1,\n            },\n        },\n        AddressIpVersion = \"Ipv4\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gwlb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tregionId := \"cn-wulanchabu\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\tzoneId2 := \"cn-wulanchabu-c\"\n\t\tif param := cfg.Get(\"zoneId2\"); param != \"\" {\n\t\t\tzoneId2 = param\n\t\t}\n\t\tzoneId1 := \"cn-wulanchabu-b\"\n\t\tif param := cfg.Get(\"zoneId1\"); param != \"\" {\n\t\t\tzoneId1 = param\n\t\t}\n\t\t_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaulti9Axhl, err := vpc.NewNetwork(ctx, \"defaulti9Axhl\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault9NaKmL, err := vpc.NewSwitch(ctx, \"default9NaKmL\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaulti9Axhl.ID(),\n\t\t\tZoneId:      pulumi.String(zoneId1),\n\t\t\tCidrBlock:   pulumi.String(\"10.0.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(invokeFormat.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s2\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewSwitch(ctx, \"defaultH4pKT4\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaulti9Axhl.ID(),\n\t\t\tZoneId:      pulumi.String(zoneId2),\n\t\t\tCidrBlock:   pulumi.String(\"10.0.1.0/24\"),\n\t\t\tVswitchName: pulumi.String(invokeFormat1.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gwlb.NewLoadBalancer(ctx, \"default\", \u0026gwlb.LoadBalancerArgs{\n\t\t\tVpcId:            defaulti9Axhl.ID(),\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tZoneMappings: gwlb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026gwlb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: default9NaKmL.ID(),\n\t\t\t\t\tZoneId:    pulumi.String(zoneId1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAddressIpVersion: pulumi.String(\"Ipv4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.gwlb.LoadBalancer;\nimport com.pulumi.alicloud.gwlb.LoadBalancerArgs;\nimport com.pulumi.alicloud.gwlb.inputs.LoadBalancerZoneMappingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-wulanchabu\");\n        final var zoneId2 = config.get(\"zoneId2\").orElse(\"cn-wulanchabu-c\");\n        final var zoneId1 = config.get(\"zoneId1\").orElse(\"cn-wulanchabu-b\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaulti9Axhl = new Network(\"defaulti9Axhl\", NetworkArgs.builder()\n            .cidrBlock(\"10.0.0.0/8\")\n            .vpcName(name)\n            .build());\n\n        var default9NaKmL = new Switch(\"default9NaKmL\", SwitchArgs.builder()\n            .vpcId(defaulti9Axhl.id())\n            .zoneId(zoneId1)\n            .cidrBlock(\"10.0.0.0/24\")\n            .vswitchName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var defaultH4pKT4 = new Switch(\"defaultH4pKT4\", SwitchArgs.builder()\n            .vpcId(defaulti9Axhl.id())\n            .zoneId(zoneId2)\n            .cidrBlock(\"10.0.1.0/24\")\n            .vswitchName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s2\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .vpcId(defaulti9Axhl.id())\n            .loadBalancerName(name)\n            .zoneMappings(LoadBalancerZoneMappingArgs.builder()\n                .vswitchId(default9NaKmL.id())\n                .zoneId(zoneId1)\n                .build())\n            .addressIpVersion(\"Ipv4\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  regionId:\n    type: string\n    default: cn-wulanchabu\n  zoneId2:\n    type: string\n    default: cn-wulanchabu-c\n  zoneId1:\n    type: string\n    default: cn-wulanchabu-b\nresources:\n  defaulti9Axhl:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 10.0.0.0/8\n      vpcName: ${name}\n  default9NaKmL:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaulti9Axhl.id}\n      zoneId: ${zoneId1}\n      cidrBlock: 10.0.0.0/24\n      vswitchName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1'\n            args:\n              - ${name}\n          return: result\n  defaultH4pKT4:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaulti9Axhl.id}\n      zoneId: ${zoneId2}\n      cidrBlock: 10.0.1.0/24\n      vswitchName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s2'\n            args:\n              - ${name}\n          return: result\n  defaultLoadBalancer:\n    type: alicloud:gwlb:LoadBalancer\n    name: default\n    properties:\n      vpcId: ${defaulti9Axhl.id}\n      loadBalancerName: ${name}\n      zoneMappings:\n        - vswitchId: ${default9NaKmL.id}\n          zoneId: ${zoneId1}\n      addressIpVersion: Ipv4\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGWLB Load Balancer can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gwlb/loadBalancer:LoadBalancer example \u003cid\u003e\n```\n\n","properties":{"addressIpVersion":{"type":"string","description":"The IP version. Valid values:\n\n- `Ipv4`: IPv4 (default)\n"},"createTime":{"type":"string","description":"The time when the resource was created. The time follows the ISO 8601 standard in the **yyyy-MM-ddTHH:mm:ssZ** format. The time is displayed in UTC.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run, without performing the actual request. Valid values:\n"},"loadBalancerName":{"type":"string","description":"The GWLB instance name.\n\nThe name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The GWLB instance status.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag keys. You can specify at most 20 tags in each call.\n"},"vpcId":{"type":"string","description":"The virtual private cloud (VPC) ID.\n"},"zoneMappings":{"type":"array","items":{"$ref":"#/types/alicloud:gwlb/LoadBalancerZoneMapping:LoadBalancerZoneMapping"},"description":"The mappings between zones and vSwitches. You must specify at least one zone. You can specify at most 20 zones. If the region supports two or more zones, we recommend that you select two or more zones. See \u003cspan pulumi-lang-nodejs=\"`zoneMappings`\" pulumi-lang-dotnet=\"`ZoneMappings`\" pulumi-lang-go=\"`zoneMappings`\" pulumi-lang-python=\"`zone_mappings`\" pulumi-lang-yaml=\"`zoneMappings`\" pulumi-lang-java=\"`zoneMappings`\"\u003e`zone_mappings`\u003c/span\u003e below.\n"}},"required":["addressIpVersion","createTime","resourceGroupId","status","vpcId","zoneMappings"],"inputProperties":{"addressIpVersion":{"type":"string","description":"The IP version. Valid values:\n\n- `Ipv4`: IPv4 (default)\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run, without performing the actual request. Valid values:\n"},"loadBalancerName":{"type":"string","description":"The GWLB instance name.\n\nThe name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag keys. You can specify at most 20 tags in each call.\n"},"vpcId":{"type":"string","description":"The virtual private cloud (VPC) ID.\n","willReplaceOnChanges":true},"zoneMappings":{"type":"array","items":{"$ref":"#/types/alicloud:gwlb/LoadBalancerZoneMapping:LoadBalancerZoneMapping"},"description":"The mappings between zones and vSwitches. You must specify at least one zone. You can specify at most 20 zones. If the region supports two or more zones, we recommend that you select two or more zones. See \u003cspan pulumi-lang-nodejs=\"`zoneMappings`\" pulumi-lang-dotnet=\"`ZoneMappings`\" pulumi-lang-go=\"`zoneMappings`\" pulumi-lang-python=\"`zone_mappings`\" pulumi-lang-yaml=\"`zoneMappings`\" pulumi-lang-java=\"`zoneMappings`\"\u003e`zone_mappings`\u003c/span\u003e below.\n"}},"requiredInputs":["vpcId","zoneMappings"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancer resources.\n","properties":{"addressIpVersion":{"type":"string","description":"The IP version. Valid values:\n\n- `Ipv4`: IPv4 (default)\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The time when the resource was created. The time follows the ISO 8601 standard in the **yyyy-MM-ddTHH:mm:ssZ** format. The time is displayed in UTC.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run, without performing the actual request. Valid values:\n"},"loadBalancerName":{"type":"string","description":"The GWLB instance name.\n\nThe name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The GWLB instance status.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag keys. You can specify at most 20 tags in each call.\n"},"vpcId":{"type":"string","description":"The virtual private cloud (VPC) ID.\n","willReplaceOnChanges":true},"zoneMappings":{"type":"array","items":{"$ref":"#/types/alicloud:gwlb/LoadBalancerZoneMapping:LoadBalancerZoneMapping"},"description":"The mappings between zones and vSwitches. You must specify at least one zone. You can specify at most 20 zones. If the region supports two or more zones, we recommend that you select two or more zones. See \u003cspan pulumi-lang-nodejs=\"`zoneMappings`\" pulumi-lang-dotnet=\"`ZoneMappings`\" pulumi-lang-go=\"`zoneMappings`\" pulumi-lang-python=\"`zone_mappings`\" pulumi-lang-yaml=\"`zoneMappings`\" pulumi-lang-java=\"`zoneMappings`\"\u003e`zone_mappings`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:gwlb/serverGroup:ServerGroup":{"description":"Provides a GWLB Server Group resource.\n\n\n\nFor information about GWLB Server Group and how to use it, see [What is Server Group](https://www.alibabacloud.com/help/en/slb/gateway-based-load-balancing-gwlb/developer-reference/api-gwlb-2024-04-15-createservergroup).\n\n\u003e **NOTE:** Available since v1.234.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst regionId = config.get(\"regionId\") || \"cn-wulanchabu\";\nconst zoneId1 = config.get(\"zoneId1\") || \"cn-wulanchabu-b\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultEaxcvb = new alicloud.vpc.Network(\"defaultEaxcvb\", {\n    cidrBlock: \"10.0.0.0/8\",\n    vpcName: \"tf-gwlb-vpc\",\n});\nconst defaultc3uVID = new alicloud.vpc.Switch(\"defaultc3uVID\", {\n    vpcId: defaultEaxcvb.id,\n    zoneId: zoneId1,\n    cidrBlock: \"10.0.0.0/24\",\n    vswitchName: \"tf-example-vsw1\",\n});\nconst default7NNxRl = new alicloud.ecs.SecurityGroup(\"default7NNxRl\", {\n    description: \"sg\",\n    securityGroupName: \"sg_name\",\n    vpcId: defaultEaxcvb.id,\n    securityGroupType: \"normal\",\n});\nconst defaultH6McvC = new alicloud.ecs.Instance(\"defaultH6McvC\", {\n    vswitchId: defaultc3uVID.id,\n    imageId: \"aliyun_2_1903_x64_20G_alibase_20231221.vhd\",\n    instanceType: \"ecs.g6.large\",\n    systemDiskCategory: \"cloud_efficiency\",\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 5,\n    instanceName: std.format({\n        input: \"%s4\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    description: \"tf-example-ecs\",\n    securityGroups: [default7NNxRl.id],\n    availabilityZone: defaultc3uVID.zoneId,\n    instanceChargeType: \"PostPaid\",\n});\nconst defaultServerGroup = new alicloud.gwlb.ServerGroup(\"default\", {\n    dryRun: false,\n    servers: [{\n        serverId: defaultH6McvC.id,\n        serverType: \"Ecs\",\n    }],\n    scheduler: \"5TCH\",\n    protocol: \"GENEVE\",\n    connectionDrainConfig: {\n        connectionDrainEnabled: true,\n        connectionDrainTimeout: 1,\n    },\n    vpcId: defaultEaxcvb.id,\n    serverGroupType: \"Instance\",\n    serverGroupName: name,\n    healthCheckConfig: {\n        healthCheckConnectPort: 80,\n        healthCheckEnabled: true,\n        healthCheckProtocol: \"HTTP\",\n        healthCheckConnectTimeout: 5,\n        healthCheckDomain: \"www.domain.com\",\n        healthCheckHttpCodes: [\n            \"http_2xx\",\n            \"http_3xx\",\n            \"http_4xx\",\n        ],\n        healthCheckInterval: 10,\n        healthCheckPath: \"/health-check\",\n        healthyThreshold: 2,\n        unhealthyThreshold: 2,\n    },\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-wulanchabu\"\nzone_id1 = config.get(\"zoneId1\")\nif zone_id1 is None:\n    zone_id1 = \"cn-wulanchabu-b\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_eaxcvb = alicloud.vpc.Network(\"defaultEaxcvb\",\n    cidr_block=\"10.0.0.0/8\",\n    vpc_name=\"tf-gwlb-vpc\")\ndefaultc3u_vid = alicloud.vpc.Switch(\"defaultc3uVID\",\n    vpc_id=default_eaxcvb.id,\n    zone_id=zone_id1,\n    cidr_block=\"10.0.0.0/24\",\n    vswitch_name=\"tf-example-vsw1\")\ndefault7_n_nx_rl = alicloud.ecs.SecurityGroup(\"default7NNxRl\",\n    description=\"sg\",\n    security_group_name=\"sg_name\",\n    vpc_id=default_eaxcvb.id,\n    security_group_type=\"normal\")\ndefault_h6_mcv_c = alicloud.ecs.Instance(\"defaultH6McvC\",\n    vswitch_id=defaultc3u_vid.id,\n    image_id=\"aliyun_2_1903_x64_20G_alibase_20231221.vhd\",\n    instance_type=\"ecs.g6.large\",\n    system_disk_category=\"cloud_efficiency\",\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=5,\n    instance_name=std.format(input=\"%s4\",\n        args=[name]).result,\n    description=\"tf-example-ecs\",\n    security_groups=[default7_n_nx_rl.id],\n    availability_zone=defaultc3u_vid.zone_id,\n    instance_charge_type=\"PostPaid\")\ndefault_server_group = alicloud.gwlb.ServerGroup(\"default\",\n    dry_run=False,\n    servers=[{\n        \"server_id\": default_h6_mcv_c.id,\n        \"server_type\": \"Ecs\",\n    }],\n    scheduler=\"5TCH\",\n    protocol=\"GENEVE\",\n    connection_drain_config={\n        \"connection_drain_enabled\": True,\n        \"connection_drain_timeout\": 1,\n    },\n    vpc_id=default_eaxcvb.id,\n    server_group_type=\"Instance\",\n    server_group_name=name,\n    health_check_config={\n        \"health_check_connect_port\": 80,\n        \"health_check_enabled\": True,\n        \"health_check_protocol\": \"HTTP\",\n        \"health_check_connect_timeout\": 5,\n        \"health_check_domain\": \"www.domain.com\",\n        \"health_check_http_codes\": [\n            \"http_2xx\",\n            \"http_3xx\",\n            \"http_4xx\",\n        ],\n        \"health_check_interval\": 10,\n        \"health_check_path\": \"/health-check\",\n        \"healthy_threshold\": 2,\n        \"unhealthy_threshold\": 2,\n    },\n    resource_group_id=default.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-wulanchabu\";\n    var zoneId1 = config.Get(\"zoneId1\") ?? \"cn-wulanchabu-b\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultEaxcvb = new AliCloud.Vpc.Network(\"defaultEaxcvb\", new()\n    {\n        CidrBlock = \"10.0.0.0/8\",\n        VpcName = \"tf-gwlb-vpc\",\n    });\n\n    var defaultc3uVID = new AliCloud.Vpc.Switch(\"defaultc3uVID\", new()\n    {\n        VpcId = defaultEaxcvb.Id,\n        ZoneId = zoneId1,\n        CidrBlock = \"10.0.0.0/24\",\n        VswitchName = \"tf-example-vsw1\",\n    });\n\n    var default7NNxRl = new AliCloud.Ecs.SecurityGroup(\"default7NNxRl\", new()\n    {\n        Description = \"sg\",\n        SecurityGroupName = \"sg_name\",\n        VpcId = defaultEaxcvb.Id,\n        SecurityGroupType = \"normal\",\n    });\n\n    var defaultH6McvC = new AliCloud.Ecs.Instance(\"defaultH6McvC\", new()\n    {\n        VswitchId = defaultc3uVID.Id,\n        ImageId = \"aliyun_2_1903_x64_20G_alibase_20231221.vhd\",\n        InstanceType = \"ecs.g6.large\",\n        SystemDiskCategory = \"cloud_efficiency\",\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 5,\n        InstanceName = Std.Format.Invoke(new()\n        {\n            Input = \"%s4\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        Description = \"tf-example-ecs\",\n        SecurityGroups = new[]\n        {\n            default7NNxRl.Id,\n        },\n        AvailabilityZone = defaultc3uVID.ZoneId,\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var defaultServerGroup = new AliCloud.Gwlb.ServerGroup(\"default\", new()\n    {\n        DryRun = false,\n        Servers = new[]\n        {\n            new AliCloud.Gwlb.Inputs.ServerGroupServerArgs\n            {\n                ServerId = defaultH6McvC.Id,\n                ServerType = \"Ecs\",\n            },\n        },\n        Scheduler = \"5TCH\",\n        Protocol = \"GENEVE\",\n        ConnectionDrainConfig = new AliCloud.Gwlb.Inputs.ServerGroupConnectionDrainConfigArgs\n        {\n            ConnectionDrainEnabled = true,\n            ConnectionDrainTimeout = 1,\n        },\n        VpcId = defaultEaxcvb.Id,\n        ServerGroupType = \"Instance\",\n        ServerGroupName = name,\n        HealthCheckConfig = new AliCloud.Gwlb.Inputs.ServerGroupHealthCheckConfigArgs\n        {\n            HealthCheckConnectPort = 80,\n            HealthCheckEnabled = true,\n            HealthCheckProtocol = \"HTTP\",\n            HealthCheckConnectTimeout = 5,\n            HealthCheckDomain = \"www.domain.com\",\n            HealthCheckHttpCodes = new[]\n            {\n                \"http_2xx\",\n                \"http_3xx\",\n                \"http_4xx\",\n            },\n            HealthCheckInterval = 10,\n            HealthCheckPath = \"/health-check\",\n            HealthyThreshold = 2,\n            UnhealthyThreshold = 2,\n        },\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gwlb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tregionId := \"cn-wulanchabu\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\tzoneId1 := \"cn-wulanchabu-b\"\n\t\tif param := cfg.Get(\"zoneId1\"); param != \"\" {\n\t\t\tzoneId1 = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEaxcvb, err := vpc.NewNetwork(ctx, \"defaultEaxcvb\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t\tVpcName:   pulumi.String(\"tf-gwlb-vpc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultc3uVID, err := vpc.NewSwitch(ctx, \"defaultc3uVID\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultEaxcvb.ID(),\n\t\t\tZoneId:      pulumi.String(zoneId1),\n\t\t\tCidrBlock:   pulumi.String(\"10.0.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"tf-example-vsw1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault7NNxRl, err := ecs.NewSecurityGroup(ctx, \"default7NNxRl\", \u0026ecs.SecurityGroupArgs{\n\t\t\tDescription:       pulumi.String(\"sg\"),\n\t\t\tSecurityGroupName: pulumi.String(\"sg_name\"),\n\t\t\tVpcId:             defaultEaxcvb.ID(),\n\t\t\tSecurityGroupType: pulumi.String(\"normal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s4\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultH6McvC, err := ecs.NewInstance(ctx, \"defaultH6McvC\", \u0026ecs.InstanceArgs{\n\t\t\tVswitchId:               defaultc3uVID.ID(),\n\t\t\tImageId:                 pulumi.String(\"aliyun_2_1903_x64_20G_alibase_20231221.vhd\"),\n\t\t\tInstanceType:            pulumi.String(\"ecs.g6.large\"),\n\t\t\tSystemDiskCategory:      pulumi.String(\"cloud_efficiency\"),\n\t\t\tInternetChargeType:      pulumi.String(\"PayByTraffic\"),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(5),\n\t\t\tInstanceName:            pulumi.String(invokeFormat.Result),\n\t\t\tDescription:             pulumi.String(\"tf-example-ecs\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefault7NNxRl.ID(),\n\t\t\t},\n\t\t\tAvailabilityZone:   defaultc3uVID.ZoneId,\n\t\t\tInstanceChargeType: pulumi.String(\"PostPaid\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gwlb.NewServerGroup(ctx, \"default\", \u0026gwlb.ServerGroupArgs{\n\t\t\tDryRun: pulumi.Bool(false),\n\t\t\tServers: gwlb.ServerGroupServerArray{\n\t\t\t\t\u0026gwlb.ServerGroupServerArgs{\n\t\t\t\t\tServerId:   defaultH6McvC.ID(),\n\t\t\t\t\tServerType: pulumi.String(\"Ecs\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tScheduler: pulumi.String(\"5TCH\"),\n\t\t\tProtocol:  pulumi.String(\"GENEVE\"),\n\t\t\tConnectionDrainConfig: \u0026gwlb.ServerGroupConnectionDrainConfigArgs{\n\t\t\t\tConnectionDrainEnabled: pulumi.Bool(true),\n\t\t\t\tConnectionDrainTimeout: pulumi.Int(1),\n\t\t\t},\n\t\t\tVpcId:           defaultEaxcvb.ID(),\n\t\t\tServerGroupType: pulumi.String(\"Instance\"),\n\t\t\tServerGroupName: pulumi.String(name),\n\t\t\tHealthCheckConfig: \u0026gwlb.ServerGroupHealthCheckConfigArgs{\n\t\t\t\tHealthCheckConnectPort:    pulumi.Int(80),\n\t\t\t\tHealthCheckEnabled:        pulumi.Bool(true),\n\t\t\t\tHealthCheckProtocol:       pulumi.String(\"HTTP\"),\n\t\t\t\tHealthCheckConnectTimeout: pulumi.Int(5),\n\t\t\t\tHealthCheckDomain:         pulumi.String(\"www.domain.com\"),\n\t\t\t\tHealthCheckHttpCodes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"http_2xx\"),\n\t\t\t\t\tpulumi.String(\"http_3xx\"),\n\t\t\t\t\tpulumi.String(\"http_4xx\"),\n\t\t\t\t},\n\t\t\t\tHealthCheckInterval: pulumi.Int(10),\n\t\t\t\tHealthCheckPath:     pulumi.String(\"/health-check\"),\n\t\t\t\tHealthyThreshold:    pulumi.Int(2),\n\t\t\t\tUnhealthyThreshold:  pulumi.Int(2),\n\t\t\t},\n\t\t\tResourceGroupId: pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.gwlb.ServerGroup;\nimport com.pulumi.alicloud.gwlb.ServerGroupArgs;\nimport com.pulumi.alicloud.gwlb.inputs.ServerGroupServerArgs;\nimport com.pulumi.alicloud.gwlb.inputs.ServerGroupConnectionDrainConfigArgs;\nimport com.pulumi.alicloud.gwlb.inputs.ServerGroupHealthCheckConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-wulanchabu\");\n        final var zoneId1 = config.get(\"zoneId1\").orElse(\"cn-wulanchabu-b\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultEaxcvb = new Network(\"defaultEaxcvb\", NetworkArgs.builder()\n            .cidrBlock(\"10.0.0.0/8\")\n            .vpcName(\"tf-gwlb-vpc\")\n            .build());\n\n        var defaultc3uVID = new Switch(\"defaultc3uVID\", SwitchArgs.builder()\n            .vpcId(defaultEaxcvb.id())\n            .zoneId(zoneId1)\n            .cidrBlock(\"10.0.0.0/24\")\n            .vswitchName(\"tf-example-vsw1\")\n            .build());\n\n        var default7NNxRl = new SecurityGroup(\"default7NNxRl\", SecurityGroupArgs.builder()\n            .description(\"sg\")\n            .securityGroupName(\"sg_name\")\n            .vpcId(defaultEaxcvb.id())\n            .securityGroupType(\"normal\")\n            .build());\n\n        var defaultH6McvC = new Instance(\"defaultH6McvC\", InstanceArgs.builder()\n            .vswitchId(defaultc3uVID.id())\n            .imageId(\"aliyun_2_1903_x64_20G_alibase_20231221.vhd\")\n            .instanceType(\"ecs.g6.large\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(5)\n            .instanceName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s4\")\n                .args(name)\n                .build()).result())\n            .description(\"tf-example-ecs\")\n            .securityGroups(default7NNxRl.id())\n            .availabilityZone(defaultc3uVID.zoneId())\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .dryRun(false)\n            .servers(ServerGroupServerArgs.builder()\n                .serverId(defaultH6McvC.id())\n                .serverType(\"Ecs\")\n                .build())\n            .scheduler(\"5TCH\")\n            .protocol(\"GENEVE\")\n            .connectionDrainConfig(ServerGroupConnectionDrainConfigArgs.builder()\n                .connectionDrainEnabled(true)\n                .connectionDrainTimeout(1)\n                .build())\n            .vpcId(defaultEaxcvb.id())\n            .serverGroupType(\"Instance\")\n            .serverGroupName(name)\n            .healthCheckConfig(ServerGroupHealthCheckConfigArgs.builder()\n                .healthCheckConnectPort(80)\n                .healthCheckEnabled(true)\n                .healthCheckProtocol(\"HTTP\")\n                .healthCheckConnectTimeout(5)\n                .healthCheckDomain(\"www.domain.com\")\n                .healthCheckHttpCodes(                \n                    \"http_2xx\",\n                    \"http_3xx\",\n                    \"http_4xx\")\n                .healthCheckInterval(10)\n                .healthCheckPath(\"/health-check\")\n                .healthyThreshold(2)\n                .unhealthyThreshold(2)\n                .build())\n            .resourceGroupId(default_.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  regionId:\n    type: string\n    default: cn-wulanchabu\n  zoneId1:\n    type: string\n    default: cn-wulanchabu-b\nresources:\n  defaultEaxcvb:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 10.0.0.0/8\n      vpcName: tf-gwlb-vpc\n  defaultc3uVID:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultEaxcvb.id}\n      zoneId: ${zoneId1}\n      cidrBlock: 10.0.0.0/24\n      vswitchName: tf-example-vsw1\n  default7NNxRl:\n    type: alicloud:ecs:SecurityGroup\n    properties:\n      description: sg\n      securityGroupName: sg_name\n      vpcId: ${defaultEaxcvb.id}\n      securityGroupType: normal\n  defaultH6McvC:\n    type: alicloud:ecs:Instance\n    properties:\n      vswitchId: ${defaultc3uVID.id}\n      imageId: aliyun_2_1903_x64_20G_alibase_20231221.vhd\n      instanceType: ecs.g6.large\n      systemDiskCategory: cloud_efficiency\n      internetChargeType: PayByTraffic\n      internetMaxBandwidthOut: 5\n      instanceName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s4'\n            args:\n              - ${name}\n          return: result\n      description: tf-example-ecs\n      securityGroups:\n        - ${default7NNxRl.id}\n      availabilityZone: ${defaultc3uVID.zoneId}\n      instanceChargeType: PostPaid\n  defaultServerGroup:\n    type: alicloud:gwlb:ServerGroup\n    name: default\n    properties:\n      dryRun: 'false'\n      servers:\n        - serverId: ${defaultH6McvC.id}\n          serverType: Ecs\n      scheduler: 5TCH\n      protocol: GENEVE\n      connectionDrainConfig:\n        connectionDrainEnabled: 'true'\n        connectionDrainTimeout: '1'\n      vpcId: ${defaultEaxcvb.id}\n      serverGroupType: Instance\n      serverGroupName: ${name}\n      healthCheckConfig:\n        healthCheckConnectPort: '80'\n        healthCheckEnabled: 'true'\n        healthCheckProtocol: HTTP\n        healthCheckConnectTimeout: '5'\n        healthCheckDomain: www.domain.com\n        healthCheckHttpCodes:\n          - http_2xx\n          - http_3xx\n          - http_4xx\n        healthCheckInterval: '10'\n        healthCheckPath: /health-check\n        healthyThreshold: '2'\n        unhealthyThreshold: '2'\n      resourceGroupId: ${default.ids[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nGWLB Server Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:gwlb/serverGroup:ServerGroup example \u003cid\u003e\n```\n\n","properties":{"connectionDrainConfig":{"$ref":"#/types/alicloud:gwlb/ServerGroupConnectionDrainConfig:ServerGroupConnectionDrainConfig","description":"Connected graceful interrupt configuration. See \u003cspan pulumi-lang-nodejs=\"`connectionDrainConfig`\" pulumi-lang-dotnet=\"`ConnectionDrainConfig`\" pulumi-lang-go=\"`connectionDrainConfig`\" pulumi-lang-python=\"`connection_drain_config`\" pulumi-lang-yaml=\"`connectionDrainConfig`\" pulumi-lang-java=\"`connectionDrainConfig`\"\u003e`connection_drain_config`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"The time when the resource was created. The time follows the ISO 8601 standard in the **yyyy-MM-ddTHH:mm:ssZ** format. The time is displayed in UTC.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"healthCheckConfig":{"$ref":"#/types/alicloud:gwlb/ServerGroupHealthCheckConfig:ServerGroupHealthCheckConfig","description":"Health check configurations. See \u003cspan pulumi-lang-nodejs=\"`healthCheckConfig`\" pulumi-lang-dotnet=\"`HealthCheckConfig`\" pulumi-lang-go=\"`healthCheckConfig`\" pulumi-lang-python=\"`health_check_config`\" pulumi-lang-yaml=\"`healthCheckConfig`\" pulumi-lang-java=\"`healthCheckConfig`\"\u003e`health_check_config`\u003c/span\u003e below.\n"},"protocol":{"type":"string","description":"The backend protocol. Valid values:\n\n- `GENEVE`(default)\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"scheduler":{"type":"string","description":"The scheduling algorithm. Valid values:\n\n- `5TCH` (default): specifies consistent hashing that is based on the following factors: source IP address, destination IP address, source port, protocol, and destination port. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.\n- `3TCH`: specifies consistent hashing that is based on the following factors: source IP address, destination IP address, and protocol. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.\n- `2TCH`: specifies consistent hashing that is based on the following factors: source IP address and destination IP address. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.\n"},"serverGroupName":{"type":"string","description":"The server group name.\n\nThe name must be 2 to 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.\n"},"serverGroupType":{"type":"string","description":"The type of server group. Valid values:\n\n- `Instance` (default): allows you to specify servers of the `Ecs`, `Eni`, or `Eci` type.\n- `Ip`: allows you to add servers of by specifying IP addresses.\n"},"servers":{"type":"array","items":{"$ref":"#/types/alicloud:gwlb/ServerGroupServer:ServerGroupServer"},"description":"The backend servers that you want to remove.\n\n\u003e **NOTE:**  You can remove at most 200 backend servers in each call.\nSee \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"Indicates the status of the backend server.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag keys.\n\nYou can specify at most 20 tags in each call.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n\n\u003e **NOTE:**  If `ServerGroupType` is set to `Instance`, only servers in the specified VPC can be added to the server group.\n"}},"required":["connectionDrainConfig","createTime","healthCheckConfig","protocol","resourceGroupId","scheduler","serverGroupType","status","vpcId"],"inputProperties":{"connectionDrainConfig":{"$ref":"#/types/alicloud:gwlb/ServerGroupConnectionDrainConfig:ServerGroupConnectionDrainConfig","description":"Connected graceful interrupt configuration. See \u003cspan pulumi-lang-nodejs=\"`connectionDrainConfig`\" pulumi-lang-dotnet=\"`ConnectionDrainConfig`\" pulumi-lang-go=\"`connectionDrainConfig`\" pulumi-lang-python=\"`connection_drain_config`\" pulumi-lang-yaml=\"`connectionDrainConfig`\" pulumi-lang-java=\"`connectionDrainConfig`\"\u003e`connection_drain_config`\u003c/span\u003e below.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"healthCheckConfig":{"$ref":"#/types/alicloud:gwlb/ServerGroupHealthCheckConfig:ServerGroupHealthCheckConfig","description":"Health check configurations. See \u003cspan pulumi-lang-nodejs=\"`healthCheckConfig`\" pulumi-lang-dotnet=\"`HealthCheckConfig`\" pulumi-lang-go=\"`healthCheckConfig`\" pulumi-lang-python=\"`health_check_config`\" pulumi-lang-yaml=\"`healthCheckConfig`\" pulumi-lang-java=\"`healthCheckConfig`\"\u003e`health_check_config`\u003c/span\u003e below.\n"},"protocol":{"type":"string","description":"The backend protocol. Valid values:\n\n- `GENEVE`(default)\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"scheduler":{"type":"string","description":"The scheduling algorithm. Valid values:\n\n- `5TCH` (default): specifies consistent hashing that is based on the following factors: source IP address, destination IP address, source port, protocol, and destination port. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.\n- `3TCH`: specifies consistent hashing that is based on the following factors: source IP address, destination IP address, and protocol. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.\n- `2TCH`: specifies consistent hashing that is based on the following factors: source IP address and destination IP address. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.\n"},"serverGroupName":{"type":"string","description":"The server group name.\n\nThe name must be 2 to 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.\n"},"serverGroupType":{"type":"string","description":"The type of server group. Valid values:\n\n- `Instance` (default): allows you to specify servers of the `Ecs`, `Eni`, or `Eci` type.\n- `Ip`: allows you to add servers of by specifying IP addresses.\n","willReplaceOnChanges":true},"servers":{"type":"array","items":{"$ref":"#/types/alicloud:gwlb/ServerGroupServer:ServerGroupServer"},"description":"The backend servers that you want to remove.\n\n\u003e **NOTE:**  You can remove at most 200 backend servers in each call.\nSee \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag keys.\n\nYou can specify at most 20 tags in each call.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n\n\u003e **NOTE:**  If `ServerGroupType` is set to `Instance`, only servers in the specified VPC can be added to the server group.\n","willReplaceOnChanges":true}},"requiredInputs":["vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering ServerGroup resources.\n","properties":{"connectionDrainConfig":{"$ref":"#/types/alicloud:gwlb/ServerGroupConnectionDrainConfig:ServerGroupConnectionDrainConfig","description":"Connected graceful interrupt configuration. See \u003cspan pulumi-lang-nodejs=\"`connectionDrainConfig`\" pulumi-lang-dotnet=\"`ConnectionDrainConfig`\" pulumi-lang-go=\"`connectionDrainConfig`\" pulumi-lang-python=\"`connection_drain_config`\" pulumi-lang-yaml=\"`connectionDrainConfig`\" pulumi-lang-java=\"`connectionDrainConfig`\"\u003e`connection_drain_config`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"The time when the resource was created. The time follows the ISO 8601 standard in the **yyyy-MM-ddTHH:mm:ssZ** format. The time is displayed in UTC.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"healthCheckConfig":{"$ref":"#/types/alicloud:gwlb/ServerGroupHealthCheckConfig:ServerGroupHealthCheckConfig","description":"Health check configurations. See \u003cspan pulumi-lang-nodejs=\"`healthCheckConfig`\" pulumi-lang-dotnet=\"`HealthCheckConfig`\" pulumi-lang-go=\"`healthCheckConfig`\" pulumi-lang-python=\"`health_check_config`\" pulumi-lang-yaml=\"`healthCheckConfig`\" pulumi-lang-java=\"`healthCheckConfig`\"\u003e`health_check_config`\u003c/span\u003e below.\n"},"protocol":{"type":"string","description":"The backend protocol. Valid values:\n\n- `GENEVE`(default)\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"scheduler":{"type":"string","description":"The scheduling algorithm. Valid values:\n\n- `5TCH` (default): specifies consistent hashing that is based on the following factors: source IP address, destination IP address, source port, protocol, and destination port. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.\n- `3TCH`: specifies consistent hashing that is based on the following factors: source IP address, destination IP address, and protocol. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.\n- `2TCH`: specifies consistent hashing that is based on the following factors: source IP address and destination IP address. Requests that contain the same information based on the preceding factors are forwarded to the same backend server.\n"},"serverGroupName":{"type":"string","description":"The server group name.\n\nThe name must be 2 to 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.\n"},"serverGroupType":{"type":"string","description":"The type of server group. Valid values:\n\n- `Instance` (default): allows you to specify servers of the `Ecs`, `Eni`, or `Eci` type.\n- `Ip`: allows you to add servers of by specifying IP addresses.\n","willReplaceOnChanges":true},"servers":{"type":"array","items":{"$ref":"#/types/alicloud:gwlb/ServerGroupServer:ServerGroupServer"},"description":"The backend servers that you want to remove.\n\n\u003e **NOTE:**  You can remove at most 200 backend servers in each call.\nSee \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"Indicates the status of the backend server.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag keys.\n\nYou can specify at most 20 tags in each call.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n\n\u003e **NOTE:**  If `ServerGroupType` is set to `Instance`, only servers in the specified VPC can be added to the server group.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:hbase/instance:Instance":{"description":"Provides a HBase instance resource supports replica set instances only. The HBase provides stable, reliable, and automatic scalable database services.\nIt offers a full range of database solutions, such as disaster recovery, backup, recovery, monitoring, and alarms.\nYou can see detail product introduction [here](https://www.alibabacloud.com/help/en/apsaradb-for-hbase/latest/createcluster)\n\n\u003e **NOTE:** Available since v1.67.0.\n\n\u003e **NOTE:**  The following regions don't support create Classic network HBase instance.\n[`cn-hangzhou`,`cn-shanghai`,`cn-qingdao`,`cn-beijing`,`cn-shenzhen`,`ap-southeast-1a`,.....]\nThe official website mark  more regions. or you can call [DescribeRegions](https://www.alibabacloud.com/help/en/apsaradb-for-hbase/latest/describeregions)\n\n\u003e **NOTE:**  Create HBase instance or change instance type and storage would cost 15 minutes. Please make full preparation\n\n## Example Usage\n\n### Create a hbase instance\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.hbase.getZones({});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[1]?.id,\n}));\nconst defaultInstance = new alicloud.hbase.Instance(\"default\", {\n    name: name,\n    zoneId: _default.then(_default =\u003e _default.zones?.[1]?.id),\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    engine: \"hbaseue\",\n    engineVersion: \"2.0\",\n    masterInstanceType: \"hbase.sn2.2xlarge\",\n    coreInstanceType: \"hbase.sn2.2xlarge\",\n    coreInstanceQuantity: 2,\n    coreDiskType: \"cloud_efficiency\",\n    coreDiskSize: 400,\n    payType: \"PostPaid\",\n    coldStorageSize: 0,\n    deletionProtection: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.hbase.get_zones()\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[1].id)\ndefault_instance = alicloud.hbase.Instance(\"default\",\n    name=name,\n    zone_id=default.zones[1].id,\n    vswitch_id=default_get_switches.ids[0],\n    vpc_id=default_get_networks.ids[0],\n    engine=\"hbaseue\",\n    engine_version=\"2.0\",\n    master_instance_type=\"hbase.sn2.2xlarge\",\n    core_instance_type=\"hbase.sn2.2xlarge\",\n    core_instance_quantity=2,\n    core_disk_type=\"cloud_efficiency\",\n    core_disk_size=400,\n    pay_type=\"PostPaid\",\n    cold_storage_size=0,\n    deletion_protection=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Hbase.GetZones.Invoke();\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n    });\n\n    var defaultInstance = new AliCloud.Hbase.Instance(\"default\", new()\n    {\n        Name = name,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id)),\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        Engine = \"hbaseue\",\n        EngineVersion = \"2.0\",\n        MasterInstanceType = \"hbase.sn2.2xlarge\",\n        CoreInstanceType = \"hbase.sn2.2xlarge\",\n        CoreInstanceQuantity = 2,\n        CoreDiskType = \"cloud_efficiency\",\n        CoreDiskSize = 400,\n        PayType = \"PostPaid\",\n        ColdStorageSize = 0,\n        DeletionProtection = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbase\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := hbase.GetZones(ctx, \u0026hbase.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Zones[1].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbase.NewInstance(ctx, \"default\", \u0026hbase.InstanceArgs{\n\t\t\tName:                 pulumi.String(name),\n\t\t\tZoneId:               pulumi.String(_default.Zones[1].Id),\n\t\t\tVswitchId:            pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tVpcId:                pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tEngine:               pulumi.String(\"hbaseue\"),\n\t\t\tEngineVersion:        pulumi.String(\"2.0\"),\n\t\t\tMasterInstanceType:   pulumi.String(\"hbase.sn2.2xlarge\"),\n\t\t\tCoreInstanceType:     pulumi.String(\"hbase.sn2.2xlarge\"),\n\t\t\tCoreInstanceQuantity: pulumi.Int(2),\n\t\t\tCoreDiskType:         pulumi.String(\"cloud_efficiency\"),\n\t\t\tCoreDiskSize:         pulumi.Int(400),\n\t\t\tPayType:              pulumi.String(\"PostPaid\"),\n\t\t\tColdStorageSize:      pulumi.Int(0),\n\t\t\tDeletionProtection:   pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbase.HbaseFunctions;\nimport com.pulumi.alicloud.hbase.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.hbase.Instance;\nimport com.pulumi.alicloud.hbase.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = HbaseFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[1].id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .name(name)\n            .zoneId(default_.zones()[1].id())\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .vpcId(defaultGetNetworks.ids()[0])\n            .engine(\"hbaseue\")\n            .engineVersion(\"2.0\")\n            .masterInstanceType(\"hbase.sn2.2xlarge\")\n            .coreInstanceType(\"hbase.sn2.2xlarge\")\n            .coreInstanceQuantity(2)\n            .coreDiskType(\"cloud_efficiency\")\n            .coreDiskSize(400)\n            .payType(\"PostPaid\")\n            .coldStorageSize(0)\n            .deletionProtection(false)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInstance:\n    type: alicloud:hbase:Instance\n    name: default\n    properties:\n      name: ${name}\n      zoneId: ${default.zones[1].id}\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      vpcId: ${defaultGetNetworks.ids[0]}\n      engine: hbaseue\n      engineVersion: '2.0'\n      masterInstanceType: hbase.sn2.2xlarge\n      coreInstanceType: hbase.sn2.2xlarge\n      coreInstanceQuantity: 2\n      coreDiskType: cloud_efficiency\n      coreDiskSize: 400\n      payType: PostPaid\n      coldStorageSize: 0\n      deletionProtection: 'false'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:hbase:getZones\n      arguments: {}\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[1].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nthis is a example for class netType instance. you can find more detail with the examples/hbase dir.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nHBase can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:hbase/instance:Instance example hb-wz96815u13k659fvd\n```\n\n","properties":{"account":{"type":"string","description":"The account of the cluster web ui. Size [0-128].\n"},"autoRenew":{"type":"boolean","description":"Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, system default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= PrePaid.\n"},"coldStorageSize":{"type":"integer","description":"0 or [800, 100000000], step:10-GB increments. 0 means\u003cspan pulumi-lang-nodejs=\" isColdStorage \" pulumi-lang-dotnet=\" IsColdStorage \" pulumi-lang-go=\" isColdStorage \" pulumi-lang-python=\" is_cold_storage \" pulumi-lang-yaml=\" isColdStorage \" pulumi-lang-java=\" isColdStorage \"\u003e is_cold_storage \u003c/span\u003e= false. [800, 100000000] means\u003cspan pulumi-lang-nodejs=\" isColdStorage \" pulumi-lang-dotnet=\" IsColdStorage \" pulumi-lang-go=\" isColdStorage \" pulumi-lang-python=\" is_cold_storage \" pulumi-lang-yaml=\" isColdStorage \" pulumi-lang-java=\" isColdStorage \"\u003e is_cold_storage \u003c/span\u003e= true.\n"},"coreDiskSize":{"type":"integer","description":"User-defined HBase instance one core node's storage. Valid when engine=hbase/hbaseue. Bds engine no need core_disk_size, space.Unit: GB. Value range:\n- Custom storage space, value range: [20, 64000].\n- Cluster [400, 64000], step:40-GB increments.\n- Single [20-500GB], step:1-GB increments.\n"},"coreDiskType":{"type":"string","description":"Valid values are \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl1`\" pulumi-lang-dotnet=\"`CloudEssdPl1`\" pulumi-lang-go=\"`cloudEssdPl1`\" pulumi-lang-python=\"`cloud_essd_pl1`\" pulumi-lang-yaml=\"`cloudEssdPl1`\" pulumi-lang-java=\"`cloudEssdPl1`\"\u003e`cloud_essd_pl1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e，``,\u003cspan pulumi-lang-nodejs=\" localDisk \" pulumi-lang-dotnet=\" LocalDisk \" pulumi-lang-go=\" localDisk \" pulumi-lang-python=\" local_disk \" pulumi-lang-yaml=\" localDisk \" pulumi-lang-java=\" localDisk \"\u003e local_disk \u003c/span\u003esize is fixed. When engine=bds, no need to set disk type(or empty string).\n"},"coreInstanceQuantity":{"type":"integer","description":"Default=2, [1-200]. If\u003cspan pulumi-lang-nodejs=\" coreInstanceQuantity \" pulumi-lang-dotnet=\" CoreInstanceQuantity \" pulumi-lang-go=\" coreInstanceQuantity \" pulumi-lang-python=\" core_instance_quantity \" pulumi-lang-yaml=\" coreInstanceQuantity \" pulumi-lang-java=\" coreInstanceQuantity \"\u003e core_instance_quantity \u003c/span\u003e\u003e 1, this is cluster's instance. If\u003cspan pulumi-lang-nodejs=\" coreInstanceQuantity \" pulumi-lang-dotnet=\" CoreInstanceQuantity \" pulumi-lang-go=\" coreInstanceQuantity \" pulumi-lang-python=\" core_instance_quantity \" pulumi-lang-yaml=\" coreInstanceQuantity \" pulumi-lang-java=\" coreInstanceQuantity \"\u003e core_instance_quantity \u003c/span\u003e= 1, this is a single instance.\n"},"coreInstanceType":{"type":"string","description":"Instance specification. See [Instance specifications](https://help.aliyun.com/document_detail/53532.html), or you can call describeInstanceType api.\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. True: delete protect, False: no delete protect. You must set false when you want to delete cluster.\n"},"duration":{"type":"integer","description":"1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= PrePaid,  unit: month. 12, 24, 36 mean 1, 2, 3 years.\n"},"engine":{"type":"string","description":"Valid values are \"hbase/hbaseue/bds\". The following types are supported after v1.73.0: \u003cspan pulumi-lang-nodejs=\"`hbaseue`\" pulumi-lang-dotnet=\"`Hbaseue`\" pulumi-lang-go=\"`hbaseue`\" pulumi-lang-python=\"`hbaseue`\" pulumi-lang-yaml=\"`hbaseue`\" pulumi-lang-java=\"`hbaseue`\"\u003e`hbaseue`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`bds`\" pulumi-lang-dotnet=\"`Bds`\" pulumi-lang-go=\"`bds`\" pulumi-lang-python=\"`bds`\" pulumi-lang-yaml=\"`bds`\" pulumi-lang-java=\"`bds`\"\u003e`bds`\u003c/span\u003e. Single hbase instance need to set engine=hbase, core_instance_quantity=1.\n"},"engineVersion":{"type":"string","description":"HBase major version. hbase:1.1/2.0, hbaseue:2.0, bds:1.0, unsupport other engine temporarily. Value options can refer to the latest docs [CreateInstance](https://www.alibabacloud.com/help/en/data-lake-analytics/latest/createinstance).\n"},"immediateDeleteFlag":{"type":"boolean","description":"The switch of delete immediate. True: delete immediate, False: delete delay. You will not found the cluster no matter set true or false.\n"},"ipWhite":{"type":"string","description":"The white ip list of the cluster.\n"},"maintainEndTime":{"type":"string","description":"The end time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time), for example 04:00Z.\n"},"maintainStartTime":{"type":"string","description":"The start time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time), for example 02:00Z.\n"},"masterInstanceQuantity":{"type":"integer","description":"Count nodes of the master node.\n"},"masterInstanceType":{"type":"string","description":"Instance specification. See [Instance specifications](https://help.aliyun.com/document_detail/53532.html), or you can call describeInstanceType api.\n"},"name":{"type":"string","description":"HBase instance name. Length must be 2-128 characters long. Only Chinese characters, English letters, numbers, period (.), underline (_), or dash (-) are permitted.\n"},"password":{"type":"string","description":"The password of the cluster web ui account. Size [0-128].\n","secret":true},"payType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`, System default to `PostPaid`. You can also convert PostPaid to PrePaid. And support convert PrePaid to PostPaid from 1.115.0+.\n"},"securityGroups":{"type":"array","items":{"type":"string"},"description":"The security group resource of the cluster.\n"},"slbConnAddrs":{"type":"array","items":{"$ref":"#/types/alicloud:hbase/InstanceSlbConnAddr:InstanceSlbConnAddr"},"description":"The slb service addresses of the cluster. See \u003cspan pulumi-lang-nodejs=\"`slbConnAddrs`\" pulumi-lang-dotnet=\"`SlbConnAddrs`\" pulumi-lang-go=\"`slbConnAddrs`\" pulumi-lang-python=\"`slb_conn_addrs`\" pulumi-lang-yaml=\"`slbConnAddrs`\" pulumi-lang-java=\"`slbConnAddrs`\"\u003e`slb_conn_addrs`\u003c/span\u003e below.\n\n\u003e **NOTE:** Now only instance name can be change. The others(instance_type, disk_size,\u003cspan pulumi-lang-nodejs=\" coreInstanceQuantity \" pulumi-lang-dotnet=\" CoreInstanceQuantity \" pulumi-lang-go=\" coreInstanceQuantity \" pulumi-lang-python=\" core_instance_quantity \" pulumi-lang-yaml=\" coreInstanceQuantity \" pulumi-lang-java=\" coreInstanceQuantity \"\u003e core_instance_quantity \u003c/span\u003eand so on) will be supported in the furture.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"uiProxyConnAddrs":{"type":"array","items":{"$ref":"#/types/alicloud:hbase/InstanceUiProxyConnAddr:InstanceUiProxyConnAddr"},"description":"The Web UI proxy addresses of the cluster. See \u003cspan pulumi-lang-nodejs=\"`uiProxyConnAddrs`\" pulumi-lang-dotnet=\"`UiProxyConnAddrs`\" pulumi-lang-go=\"`uiProxyConnAddrs`\" pulumi-lang-python=\"`ui_proxy_conn_addrs`\" pulumi-lang-yaml=\"`uiProxyConnAddrs`\" pulumi-lang-java=\"`uiProxyConnAddrs`\"\u003e`ui_proxy_conn_addrs`\u003c/span\u003e below.\n"},"vpcId":{"type":"string","description":"The id of the VPC.\n"},"vswitchId":{"type":"string","description":"If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis not empty, that mean\u003cspan pulumi-lang-nodejs=\" netType \" pulumi-lang-dotnet=\" NetType \" pulumi-lang-go=\" netType \" pulumi-lang-python=\" net_type \" pulumi-lang-yaml=\" netType \" pulumi-lang-java=\" netType \"\u003e net_type \u003c/span\u003e= vpc and has a same region. If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis empty, net_type=classic. Intl site not support classic network.\n"},"zkConnAddrs":{"type":"array","items":{"$ref":"#/types/alicloud:hbase/InstanceZkConnAddr:InstanceZkConnAddr"},"description":"The zookeeper addresses of the cluster. See \u003cspan pulumi-lang-nodejs=\"`zkConnAddrs`\" pulumi-lang-dotnet=\"`ZkConnAddrs`\" pulumi-lang-go=\"`zkConnAddrs`\" pulumi-lang-python=\"`zk_conn_addrs`\" pulumi-lang-yaml=\"`zkConnAddrs`\" pulumi-lang-java=\"`zkConnAddrs`\"\u003e`zk_conn_addrs`\u003c/span\u003e below.\n"},"zoneId":{"type":"string","description":"The Zone to launch the HBase instance. If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis not empty, this\u003cspan pulumi-lang-nodejs=\" zoneId \" pulumi-lang-dotnet=\" ZoneId \" pulumi-lang-go=\" zoneId \" pulumi-lang-python=\" zone_id \" pulumi-lang-yaml=\" zoneId \" pulumi-lang-java=\" zoneId \"\u003e zone_id \u003c/span\u003ecan be \"\" or consistent.\n"}},"required":["autoRenew","coreInstanceType","duration","engineVersion","ipWhite","maintainEndTime","maintainStartTime","masterInstanceQuantity","masterInstanceType","name","securityGroups","slbConnAddrs","uiProxyConnAddrs","zkConnAddrs","zoneId"],"inputProperties":{"account":{"type":"string","description":"The account of the cluster web ui. Size [0-128].\n"},"autoRenew":{"type":"boolean","description":"Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, system default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= PrePaid.\n","willReplaceOnChanges":true},"coldStorageSize":{"type":"integer","description":"0 or [800, 100000000], step:10-GB increments. 0 means\u003cspan pulumi-lang-nodejs=\" isColdStorage \" pulumi-lang-dotnet=\" IsColdStorage \" pulumi-lang-go=\" isColdStorage \" pulumi-lang-python=\" is_cold_storage \" pulumi-lang-yaml=\" isColdStorage \" pulumi-lang-java=\" isColdStorage \"\u003e is_cold_storage \u003c/span\u003e= false. [800, 100000000] means\u003cspan pulumi-lang-nodejs=\" isColdStorage \" pulumi-lang-dotnet=\" IsColdStorage \" pulumi-lang-go=\" isColdStorage \" pulumi-lang-python=\" is_cold_storage \" pulumi-lang-yaml=\" isColdStorage \" pulumi-lang-java=\" isColdStorage \"\u003e is_cold_storage \u003c/span\u003e= true.\n"},"coreDiskSize":{"type":"integer","description":"User-defined HBase instance one core node's storage. Valid when engine=hbase/hbaseue. Bds engine no need core_disk_size, space.Unit: GB. Value range:\n- Custom storage space, value range: [20, 64000].\n- Cluster [400, 64000], step:40-GB increments.\n- Single [20-500GB], step:1-GB increments.\n"},"coreDiskType":{"type":"string","description":"Valid values are \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl1`\" pulumi-lang-dotnet=\"`CloudEssdPl1`\" pulumi-lang-go=\"`cloudEssdPl1`\" pulumi-lang-python=\"`cloud_essd_pl1`\" pulumi-lang-yaml=\"`cloudEssdPl1`\" pulumi-lang-java=\"`cloudEssdPl1`\"\u003e`cloud_essd_pl1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e，``,\u003cspan pulumi-lang-nodejs=\" localDisk \" pulumi-lang-dotnet=\" LocalDisk \" pulumi-lang-go=\" localDisk \" pulumi-lang-python=\" local_disk \" pulumi-lang-yaml=\" localDisk \" pulumi-lang-java=\" localDisk \"\u003e local_disk \u003c/span\u003esize is fixed. When engine=bds, no need to set disk type(or empty string).\n","willReplaceOnChanges":true},"coreInstanceQuantity":{"type":"integer","description":"Default=2, [1-200]. If\u003cspan pulumi-lang-nodejs=\" coreInstanceQuantity \" pulumi-lang-dotnet=\" CoreInstanceQuantity \" pulumi-lang-go=\" coreInstanceQuantity \" pulumi-lang-python=\" core_instance_quantity \" pulumi-lang-yaml=\" coreInstanceQuantity \" pulumi-lang-java=\" coreInstanceQuantity \"\u003e core_instance_quantity \u003c/span\u003e\u003e 1, this is cluster's instance. If\u003cspan pulumi-lang-nodejs=\" coreInstanceQuantity \" pulumi-lang-dotnet=\" CoreInstanceQuantity \" pulumi-lang-go=\" coreInstanceQuantity \" pulumi-lang-python=\" core_instance_quantity \" pulumi-lang-yaml=\" coreInstanceQuantity \" pulumi-lang-java=\" coreInstanceQuantity \"\u003e core_instance_quantity \u003c/span\u003e= 1, this is a single instance.\n"},"coreInstanceType":{"type":"string","description":"Instance specification. See [Instance specifications](https://help.aliyun.com/document_detail/53532.html), or you can call describeInstanceType api.\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. True: delete protect, False: no delete protect. You must set false when you want to delete cluster.\n"},"duration":{"type":"integer","description":"1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= PrePaid,  unit: month. 12, 24, 36 mean 1, 2, 3 years.\n"},"engine":{"type":"string","description":"Valid values are \"hbase/hbaseue/bds\". The following types are supported after v1.73.0: \u003cspan pulumi-lang-nodejs=\"`hbaseue`\" pulumi-lang-dotnet=\"`Hbaseue`\" pulumi-lang-go=\"`hbaseue`\" pulumi-lang-python=\"`hbaseue`\" pulumi-lang-yaml=\"`hbaseue`\" pulumi-lang-java=\"`hbaseue`\"\u003e`hbaseue`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`bds`\" pulumi-lang-dotnet=\"`Bds`\" pulumi-lang-go=\"`bds`\" pulumi-lang-python=\"`bds`\" pulumi-lang-yaml=\"`bds`\" pulumi-lang-java=\"`bds`\"\u003e`bds`\u003c/span\u003e. Single hbase instance need to set engine=hbase, core_instance_quantity=1.\n","willReplaceOnChanges":true},"engineVersion":{"type":"string","description":"HBase major version. hbase:1.1/2.0, hbaseue:2.0, bds:1.0, unsupport other engine temporarily. Value options can refer to the latest docs [CreateInstance](https://www.alibabacloud.com/help/en/data-lake-analytics/latest/createinstance).\n","willReplaceOnChanges":true},"immediateDeleteFlag":{"type":"boolean","description":"The switch of delete immediate. True: delete immediate, False: delete delay. You will not found the cluster no matter set true or false.\n"},"ipWhite":{"type":"string","description":"The white ip list of the cluster.\n"},"maintainEndTime":{"type":"string","description":"The end time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time), for example 04:00Z.\n"},"maintainStartTime":{"type":"string","description":"The start time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time), for example 02:00Z.\n"},"masterInstanceType":{"type":"string","description":"Instance specification. See [Instance specifications](https://help.aliyun.com/document_detail/53532.html), or you can call describeInstanceType api.\n"},"name":{"type":"string","description":"HBase instance name. Length must be 2-128 characters long. Only Chinese characters, English letters, numbers, period (.), underline (_), or dash (-) are permitted.\n"},"password":{"type":"string","description":"The password of the cluster web ui account. Size [0-128].\n","secret":true},"payType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`, System default to `PostPaid`. You can also convert PostPaid to PrePaid. And support convert PrePaid to PostPaid from 1.115.0+.\n"},"securityGroups":{"type":"array","items":{"type":"string"},"description":"The security group resource of the cluster.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The id of the VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis not empty, that mean\u003cspan pulumi-lang-nodejs=\" netType \" pulumi-lang-dotnet=\" NetType \" pulumi-lang-go=\" netType \" pulumi-lang-python=\" net_type \" pulumi-lang-yaml=\" netType \" pulumi-lang-java=\" netType \"\u003e net_type \u003c/span\u003e= vpc and has a same region. If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis empty, net_type=classic. Intl site not support classic network.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the HBase instance. If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis not empty, this\u003cspan pulumi-lang-nodejs=\" zoneId \" pulumi-lang-dotnet=\" ZoneId \" pulumi-lang-go=\" zoneId \" pulumi-lang-python=\" zone_id \" pulumi-lang-yaml=\" zoneId \" pulumi-lang-java=\" zoneId \"\u003e zone_id \u003c/span\u003ecan be \"\" or consistent.\n","willReplaceOnChanges":true}},"requiredInputs":["coreInstanceType","engineVersion","masterInstanceType"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"account":{"type":"string","description":"The account of the cluster web ui. Size [0-128].\n"},"autoRenew":{"type":"boolean","description":"Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, system default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= PrePaid.\n","willReplaceOnChanges":true},"coldStorageSize":{"type":"integer","description":"0 or [800, 100000000], step:10-GB increments. 0 means\u003cspan pulumi-lang-nodejs=\" isColdStorage \" pulumi-lang-dotnet=\" IsColdStorage \" pulumi-lang-go=\" isColdStorage \" pulumi-lang-python=\" is_cold_storage \" pulumi-lang-yaml=\" isColdStorage \" pulumi-lang-java=\" isColdStorage \"\u003e is_cold_storage \u003c/span\u003e= false. [800, 100000000] means\u003cspan pulumi-lang-nodejs=\" isColdStorage \" pulumi-lang-dotnet=\" IsColdStorage \" pulumi-lang-go=\" isColdStorage \" pulumi-lang-python=\" is_cold_storage \" pulumi-lang-yaml=\" isColdStorage \" pulumi-lang-java=\" isColdStorage \"\u003e is_cold_storage \u003c/span\u003e= true.\n"},"coreDiskSize":{"type":"integer","description":"User-defined HBase instance one core node's storage. Valid when engine=hbase/hbaseue. Bds engine no need core_disk_size, space.Unit: GB. Value range:\n- Custom storage space, value range: [20, 64000].\n- Cluster [400, 64000], step:40-GB increments.\n- Single [20-500GB], step:1-GB increments.\n"},"coreDiskType":{"type":"string","description":"Valid values are \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl1`\" pulumi-lang-dotnet=\"`CloudEssdPl1`\" pulumi-lang-go=\"`cloudEssdPl1`\" pulumi-lang-python=\"`cloud_essd_pl1`\" pulumi-lang-yaml=\"`cloudEssdPl1`\" pulumi-lang-java=\"`cloudEssdPl1`\"\u003e`cloud_essd_pl1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e，``,\u003cspan pulumi-lang-nodejs=\" localDisk \" pulumi-lang-dotnet=\" LocalDisk \" pulumi-lang-go=\" localDisk \" pulumi-lang-python=\" local_disk \" pulumi-lang-yaml=\" localDisk \" pulumi-lang-java=\" localDisk \"\u003e local_disk \u003c/span\u003esize is fixed. When engine=bds, no need to set disk type(or empty string).\n","willReplaceOnChanges":true},"coreInstanceQuantity":{"type":"integer","description":"Default=2, [1-200]. If\u003cspan pulumi-lang-nodejs=\" coreInstanceQuantity \" pulumi-lang-dotnet=\" CoreInstanceQuantity \" pulumi-lang-go=\" coreInstanceQuantity \" pulumi-lang-python=\" core_instance_quantity \" pulumi-lang-yaml=\" coreInstanceQuantity \" pulumi-lang-java=\" coreInstanceQuantity \"\u003e core_instance_quantity \u003c/span\u003e\u003e 1, this is cluster's instance. If\u003cspan pulumi-lang-nodejs=\" coreInstanceQuantity \" pulumi-lang-dotnet=\" CoreInstanceQuantity \" pulumi-lang-go=\" coreInstanceQuantity \" pulumi-lang-python=\" core_instance_quantity \" pulumi-lang-yaml=\" coreInstanceQuantity \" pulumi-lang-java=\" coreInstanceQuantity \"\u003e core_instance_quantity \u003c/span\u003e= 1, this is a single instance.\n"},"coreInstanceType":{"type":"string","description":"Instance specification. See [Instance specifications](https://help.aliyun.com/document_detail/53532.html), or you can call describeInstanceType api.\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. True: delete protect, False: no delete protect. You must set false when you want to delete cluster.\n"},"duration":{"type":"integer","description":"1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003e= PrePaid,  unit: month. 12, 24, 36 mean 1, 2, 3 years.\n"},"engine":{"type":"string","description":"Valid values are \"hbase/hbaseue/bds\". The following types are supported after v1.73.0: \u003cspan pulumi-lang-nodejs=\"`hbaseue`\" pulumi-lang-dotnet=\"`Hbaseue`\" pulumi-lang-go=\"`hbaseue`\" pulumi-lang-python=\"`hbaseue`\" pulumi-lang-yaml=\"`hbaseue`\" pulumi-lang-java=\"`hbaseue`\"\u003e`hbaseue`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`bds`\" pulumi-lang-dotnet=\"`Bds`\" pulumi-lang-go=\"`bds`\" pulumi-lang-python=\"`bds`\" pulumi-lang-yaml=\"`bds`\" pulumi-lang-java=\"`bds`\"\u003e`bds`\u003c/span\u003e. Single hbase instance need to set engine=hbase, core_instance_quantity=1.\n","willReplaceOnChanges":true},"engineVersion":{"type":"string","description":"HBase major version. hbase:1.1/2.0, hbaseue:2.0, bds:1.0, unsupport other engine temporarily. Value options can refer to the latest docs [CreateInstance](https://www.alibabacloud.com/help/en/data-lake-analytics/latest/createinstance).\n","willReplaceOnChanges":true},"immediateDeleteFlag":{"type":"boolean","description":"The switch of delete immediate. True: delete immediate, False: delete delay. You will not found the cluster no matter set true or false.\n"},"ipWhite":{"type":"string","description":"The white ip list of the cluster.\n"},"maintainEndTime":{"type":"string","description":"The end time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time), for example 04:00Z.\n"},"maintainStartTime":{"type":"string","description":"The start time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time), for example 02:00Z.\n"},"masterInstanceQuantity":{"type":"integer","description":"Count nodes of the master node.\n"},"masterInstanceType":{"type":"string","description":"Instance specification. See [Instance specifications](https://help.aliyun.com/document_detail/53532.html), or you can call describeInstanceType api.\n"},"name":{"type":"string","description":"HBase instance name. Length must be 2-128 characters long. Only Chinese characters, English letters, numbers, period (.), underline (_), or dash (-) are permitted.\n"},"password":{"type":"string","description":"The password of the cluster web ui account. Size [0-128].\n","secret":true},"payType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`, System default to `PostPaid`. You can also convert PostPaid to PrePaid. And support convert PrePaid to PostPaid from 1.115.0+.\n"},"securityGroups":{"type":"array","items":{"type":"string"},"description":"The security group resource of the cluster.\n"},"slbConnAddrs":{"type":"array","items":{"$ref":"#/types/alicloud:hbase/InstanceSlbConnAddr:InstanceSlbConnAddr"},"description":"The slb service addresses of the cluster. See \u003cspan pulumi-lang-nodejs=\"`slbConnAddrs`\" pulumi-lang-dotnet=\"`SlbConnAddrs`\" pulumi-lang-go=\"`slbConnAddrs`\" pulumi-lang-python=\"`slb_conn_addrs`\" pulumi-lang-yaml=\"`slbConnAddrs`\" pulumi-lang-java=\"`slbConnAddrs`\"\u003e`slb_conn_addrs`\u003c/span\u003e below.\n\n\u003e **NOTE:** Now only instance name can be change. The others(instance_type, disk_size,\u003cspan pulumi-lang-nodejs=\" coreInstanceQuantity \" pulumi-lang-dotnet=\" CoreInstanceQuantity \" pulumi-lang-go=\" coreInstanceQuantity \" pulumi-lang-python=\" core_instance_quantity \" pulumi-lang-yaml=\" coreInstanceQuantity \" pulumi-lang-java=\" coreInstanceQuantity \"\u003e core_instance_quantity \u003c/span\u003eand so on) will be supported in the furture.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"uiProxyConnAddrs":{"type":"array","items":{"$ref":"#/types/alicloud:hbase/InstanceUiProxyConnAddr:InstanceUiProxyConnAddr"},"description":"The Web UI proxy addresses of the cluster. See \u003cspan pulumi-lang-nodejs=\"`uiProxyConnAddrs`\" pulumi-lang-dotnet=\"`UiProxyConnAddrs`\" pulumi-lang-go=\"`uiProxyConnAddrs`\" pulumi-lang-python=\"`ui_proxy_conn_addrs`\" pulumi-lang-yaml=\"`uiProxyConnAddrs`\" pulumi-lang-java=\"`uiProxyConnAddrs`\"\u003e`ui_proxy_conn_addrs`\u003c/span\u003e below.\n"},"vpcId":{"type":"string","description":"The id of the VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis not empty, that mean\u003cspan pulumi-lang-nodejs=\" netType \" pulumi-lang-dotnet=\" NetType \" pulumi-lang-go=\" netType \" pulumi-lang-python=\" net_type \" pulumi-lang-yaml=\" netType \" pulumi-lang-java=\" netType \"\u003e net_type \u003c/span\u003e= vpc and has a same region. If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis empty, net_type=classic. Intl site not support classic network.\n","willReplaceOnChanges":true},"zkConnAddrs":{"type":"array","items":{"$ref":"#/types/alicloud:hbase/InstanceZkConnAddr:InstanceZkConnAddr"},"description":"The zookeeper addresses of the cluster. See \u003cspan pulumi-lang-nodejs=\"`zkConnAddrs`\" pulumi-lang-dotnet=\"`ZkConnAddrs`\" pulumi-lang-go=\"`zkConnAddrs`\" pulumi-lang-python=\"`zk_conn_addrs`\" pulumi-lang-yaml=\"`zkConnAddrs`\" pulumi-lang-java=\"`zkConnAddrs`\"\u003e`zk_conn_addrs`\u003c/span\u003e below.\n"},"zoneId":{"type":"string","description":"The Zone to launch the HBase instance. If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis not empty, this\u003cspan pulumi-lang-nodejs=\" zoneId \" pulumi-lang-dotnet=\" ZoneId \" pulumi-lang-go=\" zoneId \" pulumi-lang-python=\" zone_id \" pulumi-lang-yaml=\" zoneId \" pulumi-lang-java=\" zoneId \"\u003e zone_id \u003c/span\u003ecan be \"\" or consistent.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:hbr/crossAccount:CrossAccount":{"description":"Provides a Hybrid Backup Recovery (HBR) Cross Account resource.\n\nThe cross account is used for the cross-account backup in the Cloud Backup. The management account can back up the resources under the cross account.\n\nFor information about Hybrid Backup Recovery (HBR) Cross Account and how to use it, see [What is Cross Account](https://www.alibabacloud.com/help/en/).\n\n\u003e **NOTE:** Available since v1.241.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.hbr.CrossAccount(\"default\", {\n    crossAccountUserId: 1,\n    crossAccountRoleName: name,\n    alias: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.hbr.CrossAccount(\"default\",\n    cross_account_user_id=1,\n    cross_account_role_name=name,\n    alias=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Hbr.CrossAccount(\"default\", new()\n    {\n        CrossAccountUserId = 1,\n        CrossAccountRoleName = name,\n        Alias = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := hbr.NewCrossAccount(ctx, \"default\", \u0026hbr.CrossAccountArgs{\n\t\t\tCrossAccountUserId:   pulumi.Int(1),\n\t\t\tCrossAccountRoleName: pulumi.String(name),\n\t\t\tAlias:                pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.CrossAccount;\nimport com.pulumi.alicloud.hbr.CrossAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new CrossAccount(\"default\", CrossAccountArgs.builder()\n            .crossAccountUserId(1)\n            .crossAccountRoleName(name)\n            .alias(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:hbr:CrossAccount\n    properties:\n      crossAccountUserId: '1'\n      crossAccountRoleName: ${name}\n      alias: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nHybrid Backup Recovery (HBR) Cross Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:hbr/crossAccount:CrossAccount example \u003ccross_account_user_id\u003e:\u003ccross_account_role_name\u003e\n```\n\n","properties":{"alias":{"type":"string","description":"Backup account alias\n"},"createTime":{"type":"integer","description":"Timestamp of the creation time\n"},"crossAccountRoleName":{"type":"string","description":"The name of RAM role that the backup account authorizes the management account to manage its resources\n"},"crossAccountUserId":{"type":"integer","description":"The uid of the backup account.\n"}},"required":["createTime","crossAccountRoleName","crossAccountUserId"],"inputProperties":{"alias":{"type":"string","description":"Backup account alias\n","willReplaceOnChanges":true},"crossAccountRoleName":{"type":"string","description":"The name of RAM role that the backup account authorizes the management account to manage its resources\n","willReplaceOnChanges":true},"crossAccountUserId":{"type":"integer","description":"The uid of the backup account.\n","willReplaceOnChanges":true}},"requiredInputs":["crossAccountRoleName","crossAccountUserId"],"stateInputs":{"description":"Input properties used for looking up and filtering CrossAccount resources.\n","properties":{"alias":{"type":"string","description":"Backup account alias\n","willReplaceOnChanges":true},"createTime":{"type":"integer","description":"Timestamp of the creation time\n"},"crossAccountRoleName":{"type":"string","description":"The name of RAM role that the backup account authorizes the management account to manage its resources\n","willReplaceOnChanges":true},"crossAccountUserId":{"type":"integer","description":"The uid of the backup account.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:hbr/ecsBackupClient:EcsBackupClient":{"description":"Provides a Hybrid Backup Recovery (HBR) Ecs Backup Client resource.\n\nFor information about Hybrid Backup Recovery (HBR) Ecs Backup Client and how to use it, see [What is Ecs Backup Client](https://www.alibabacloud.com/help/doc-detail/186570.htm).\n\n\u003e **NOTE:** Available in v1.132.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n});\nconst exampleGetInstanceTypes = example.then(example =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: example.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst exampleGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: \"terraform-example\",\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.ecs.Instance(\"example\", {\n    imageId: exampleGetImages.then(exampleGetImages =\u003e exampleGetImages.images?.[0]?.id),\n    instanceType: exampleGetInstanceTypes.then(exampleGetInstanceTypes =\u003e exampleGetInstanceTypes.instanceTypes?.[0]?.id),\n    availabilityZone: example.then(example =\u003e example.zones?.[0]?.id),\n    securityGroups: [exampleSecurityGroup.id],\n    instanceName: \"terraform-example\",\n    internetChargeType: \"PayByBandwidth\",\n    vswitchId: exampleSwitch.id,\n});\nconst exampleEcsBackupClient = new alicloud.hbr.EcsBackupClient(\"example\", {\n    instanceId: exampleInstance.id,\n    useHttps: false,\n    dataNetworkType: \"VPC\",\n    maxCpuCore: \"2\",\n    maxWorker: \"4\",\n    dataProxySetting: \"USE_CONTROL_PROXY\",\n    proxyHost: \"192.168.11.101\",\n    proxyPort: \"80\",\n    proxyUser: \"user\",\n    proxyPassword: \"password\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.get_zones(available_resource_creation=\"Instance\")\nexample_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=example.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\nexample_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=\"terraform-example\",\n    vpc_id=example_network.id)\nexample_instance = alicloud.ecs.Instance(\"example\",\n    image_id=example_get_images.images[0].id,\n    instance_type=example_get_instance_types.instance_types[0].id,\n    availability_zone=example.zones[0].id,\n    security_groups=[example_security_group.id],\n    instance_name=\"terraform-example\",\n    internet_charge_type=\"PayByBandwidth\",\n    vswitch_id=example_switch.id)\nexample_ecs_backup_client = alicloud.hbr.EcsBackupClient(\"example\",\n    instance_id=example_instance.id,\n    use_https=False,\n    data_network_type=\"VPC\",\n    max_cpu_core=\"2\",\n    max_worker=\"4\",\n    data_proxy_setting=\"USE_CONTROL_PROXY\",\n    proxy_host=\"192.168.11.101\",\n    proxy_port=\"80\",\n    proxy_user=\"user\",\n    proxy_password=\"password\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n    });\n\n    var exampleGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var exampleGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = \"terraform-example\",\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Ecs.Instance(\"example\", new()\n    {\n        ImageId = exampleGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = exampleGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        AvailabilityZone = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        SecurityGroups = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n        InstanceName = \"terraform-example\",\n        InternetChargeType = \"PayByBandwidth\",\n        VswitchId = exampleSwitch.Id,\n    });\n\n    var exampleEcsBackupClient = new AliCloud.Hbr.EcsBackupClient(\"example\", new()\n    {\n        InstanceId = exampleInstance.Id,\n        UseHttps = false,\n        DataNetworkType = \"VPC\",\n        MaxCpuCore = \"2\",\n        MaxWorker = \"4\",\n        DataProxySetting = \"USE_CONTROL_PROXY\",\n        ProxyHost = \"192.168.11.101\",\n        ProxyPort = \"80\",\n        ProxyUser = \"user\",\n        ProxyPassword = \"password\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(example.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(\"terraform-example\"),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := ecs.NewInstance(ctx, \"example\", \u0026ecs.InstanceArgs{\n\t\t\tImageId:          pulumi.String(exampleGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(exampleGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tAvailabilityZone: pulumi.String(example.Zones[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t\tInstanceName:       pulumi.String(\"terraform-example\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByBandwidth\"),\n\t\t\tVswitchId:          exampleSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.NewEcsBackupClient(ctx, \"example\", \u0026hbr.EcsBackupClientArgs{\n\t\t\tInstanceId:       exampleInstance.ID(),\n\t\t\tUseHttps:         pulumi.Bool(false),\n\t\t\tDataNetworkType:  pulumi.String(\"VPC\"),\n\t\t\tMaxCpuCore:       pulumi.String(\"2\"),\n\t\t\tMaxWorker:        pulumi.String(\"4\"),\n\t\t\tDataProxySetting: pulumi.String(\"USE_CONTROL_PROXY\"),\n\t\t\tProxyHost:        pulumi.String(\"192.168.11.101\"),\n\t\t\tProxyPort:        pulumi.String(\"80\"),\n\t\t\tProxyUser:        pulumi.String(\"user\"),\n\t\t\tProxyPassword:    pulumi.String(\"password\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.hbr.EcsBackupClient;\nimport com.pulumi.alicloud.hbr.EcsBackupClientArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .build());\n\n        final var exampleGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(example.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        final var exampleGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"terraform-example\")\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .imageId(exampleGetImages.images()[0].id())\n            .instanceType(exampleGetInstanceTypes.instanceTypes()[0].id())\n            .availabilityZone(example.zones()[0].id())\n            .securityGroups(exampleSecurityGroup.id())\n            .instanceName(\"terraform-example\")\n            .internetChargeType(\"PayByBandwidth\")\n            .vswitchId(exampleSwitch.id())\n            .build());\n\n        var exampleEcsBackupClient = new EcsBackupClient(\"exampleEcsBackupClient\", EcsBackupClientArgs.builder()\n            .instanceId(exampleInstance.id())\n            .useHttps(false)\n            .dataNetworkType(\"VPC\")\n            .maxCpuCore(\"2\")\n            .maxWorker(\"4\")\n            .dataProxySetting(\"USE_CONTROL_PROXY\")\n            .proxyHost(\"192.168.11.101\")\n            .proxyPort(\"80\")\n            .proxyUser(\"user\")\n            .proxyPassword(\"password\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: terraform-example\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:ecs:Instance\n    name: example\n    properties:\n      imageId: ${exampleGetImages.images[0].id}\n      instanceType: ${exampleGetInstanceTypes.instanceTypes[0].id}\n      availabilityZone: ${example.zones[0].id}\n      securityGroups:\n        - ${exampleSecurityGroup.id}\n      instanceName: terraform-example\n      internetChargeType: PayByBandwidth\n      vswitchId: ${exampleSwitch.id}\n  exampleEcsBackupClient:\n    type: alicloud:hbr:EcsBackupClient\n    name: example\n    properties:\n      instanceId: ${exampleInstance.id}\n      useHttps: false\n      dataNetworkType: VPC\n      maxCpuCore: 2\n      maxWorker: 4\n      dataProxySetting: USE_CONTROL_PROXY\n      proxyHost: 192.168.11.101\n      proxyPort: 80\n      proxyUser: user\n      proxyPassword: password\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n  exampleGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${example.zones[0].id}\n        cpuCoreCount: 1\n        memorySize: 2\n  exampleGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Notice\n\n\u003e **Note:** Please read the following precautions carefully before deleting a client:\n1. You cannot delete active clients that have received heartbeat packets within one hour.\n2. You can make the client inactive by change the status of client to `STOPPED`.\n3. The resources bound to the client will be deleted in cascade, including:\n    - Backup plan\n    - Backup task (Running in the background)\n    - Snapshot\n\n## Import\n\nHybrid Backup Recovery (HBR) Ecs Backup Client can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:hbr/ecsBackupClient:EcsBackupClient example \u003cid\u003e\n```\n\n","properties":{"dataNetworkType":{"type":"string","description":"The data plane access point type. Valid values: `CLASSIC`, `PUBLIC`, `VPC`. **NOTE:** The value of `CLASSIC` has been deprecated in v1.161.0+.\n"},"dataProxySetting":{"type":"string","description":"The data plane proxy settings. Valid values: `CUSTOM`, `DISABLE`, `USE_CONTROL_PROXY`.\n"},"instanceId":{"type":"string","description":"The ID of ECS instance.\n"},"maxCpuCore":{"type":"string","description":"The number of CPU cores used by a single backup task, 0 means no restrictions.\n"},"maxWorker":{"type":"string","description":"The number of concurrent jobs for a single backup task, 0 means no restrictions.\n"},"proxyHost":{"type":"string","description":"Custom data plane proxy server host address.\n"},"proxyPassword":{"type":"string","description":"The password of custom data plane proxy server.\n"},"proxyPort":{"type":"string","description":"Custom data plane proxy server host port.\n"},"proxyUser":{"type":"string","description":"The username of custom data plane proxy server.\n"},"status":{"type":"string","description":"Status of client. Valid values: `ACTIVATED`, `STOPPED`. You can start or stop the client by specifying the status.\n"},"useHttps":{"type":"boolean","description":"Indicates whether to use the HTTPS protocol. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"required":["dataNetworkType","dataProxySetting","instanceId","maxCpuCore","maxWorker","proxyHost","proxyPassword","proxyPort","proxyUser","status","useHttps"],"inputProperties":{"dataNetworkType":{"type":"string","description":"The data plane access point type. Valid values: `CLASSIC`, `PUBLIC`, `VPC`. **NOTE:** The value of `CLASSIC` has been deprecated in v1.161.0+.\n"},"dataProxySetting":{"type":"string","description":"The data plane proxy settings. Valid values: `CUSTOM`, `DISABLE`, `USE_CONTROL_PROXY`.\n"},"instanceId":{"type":"string","description":"The ID of ECS instance.\n","willReplaceOnChanges":true},"maxCpuCore":{"type":"string","description":"The number of CPU cores used by a single backup task, 0 means no restrictions.\n"},"maxWorker":{"type":"string","description":"The number of concurrent jobs for a single backup task, 0 means no restrictions.\n"},"proxyHost":{"type":"string","description":"Custom data plane proxy server host address.\n"},"proxyPassword":{"type":"string","description":"The password of custom data plane proxy server.\n"},"proxyPort":{"type":"string","description":"Custom data plane proxy server host port.\n"},"proxyUser":{"type":"string","description":"The username of custom data plane proxy server.\n"},"status":{"type":"string","description":"Status of client. Valid values: `ACTIVATED`, `STOPPED`. You can start or stop the client by specifying the status.\n"},"useHttps":{"type":"boolean","description":"Indicates whether to use the HTTPS protocol. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsBackupClient resources.\n","properties":{"dataNetworkType":{"type":"string","description":"The data plane access point type. Valid values: `CLASSIC`, `PUBLIC`, `VPC`. **NOTE:** The value of `CLASSIC` has been deprecated in v1.161.0+.\n"},"dataProxySetting":{"type":"string","description":"The data plane proxy settings. Valid values: `CUSTOM`, `DISABLE`, `USE_CONTROL_PROXY`.\n"},"instanceId":{"type":"string","description":"The ID of ECS instance.\n","willReplaceOnChanges":true},"maxCpuCore":{"type":"string","description":"The number of CPU cores used by a single backup task, 0 means no restrictions.\n"},"maxWorker":{"type":"string","description":"The number of concurrent jobs for a single backup task, 0 means no restrictions.\n"},"proxyHost":{"type":"string","description":"Custom data plane proxy server host address.\n"},"proxyPassword":{"type":"string","description":"The password of custom data plane proxy server.\n"},"proxyPort":{"type":"string","description":"Custom data plane proxy server host port.\n"},"proxyUser":{"type":"string","description":"The username of custom data plane proxy server.\n"},"status":{"type":"string","description":"Status of client. Valid values: `ACTIVATED`, `STOPPED`. You can start or stop the client by specifying the status.\n"},"useHttps":{"type":"boolean","description":"Indicates whether to use the HTTPS protocol. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:hbr/ecsBackupPlan:EcsBackupPlan":{"description":"Provides a HBR Ecs Backup Plan resource.\n\nFor information about HBR Ecs Backup Plan and how to use it, see [What is Ecs Backup Plan](https://www.alibabacloud.com/help/doc-detail/186574.htm).\n\n\u003e **NOTE:** Available since v1.132.0.\n\n\u003e **NOTE:** Deprecated since v1.249.0.\n\n\u003e **DEPRECATED:** This resource has been deprecated from version `1.249.0`. Please use new resource\u003cspan pulumi-lang-nodejs=\" alicloud.hbr.Policy \" pulumi-lang-dotnet=\" alicloud.hbr.Policy \" pulumi-lang-go=\" hbr.Policy \" pulumi-lang-python=\" hbr.Policy \" pulumi-lang-yaml=\" alicloud.hbr.Policy \" pulumi-lang-java=\" alicloud.hbr.Policy \"\u003e alicloud.hbr.Policy \u003c/span\u003eand alicloud_hbr_policy_binding.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst example = alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n});\nconst exampleGetInstanceTypes = example.then(example =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: example.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst exampleGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: \"terraform-example\",\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.ecs.Instance(\"example\", {\n    imageId: exampleGetImages.then(exampleGetImages =\u003e exampleGetImages.images?.[0]?.id),\n    instanceType: exampleGetInstanceTypes.then(exampleGetInstanceTypes =\u003e exampleGetInstanceTypes.instanceTypes?.[0]?.id),\n    availabilityZone: example.then(example =\u003e example.zones?.[0]?.id),\n    securityGroups: [exampleSecurityGroup.id],\n    instanceName: \"terraform-example\",\n    internetChargeType: \"PayByBandwidth\",\n    vswitchId: exampleSwitch.id,\n});\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst exampleVault = new alicloud.hbr.Vault(\"example\", {vaultName: `terraform-example-${_default.result}`});\nconst exampleEcsBackupPlan = new alicloud.hbr.EcsBackupPlan(\"example\", {\n    ecsBackupPlanName: \"terraform-example\",\n    instanceId: exampleInstance.id,\n    vaultId: exampleVault.id,\n    retention: \"1\",\n    schedule: \"I|1602673264|PT2H\",\n    backupType: \"COMPLETE\",\n    speedLimit: \"0:24:5120\",\n    paths: [\n        \"/home\",\n        \"/var\",\n    ],\n    exclude: \"  [\\\\\\\"/home/exclude\\\\\\\"]\\n\",\n    include: \"  [\\\\\\\"/home/include\\\\\\\"]\\n\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nexample = alicloud.get_zones(available_resource_creation=\"Instance\")\nexample_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=example.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\nexample_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=\"terraform-example\",\n    vpc_id=example_network.id)\nexample_instance = alicloud.ecs.Instance(\"example\",\n    image_id=example_get_images.images[0].id,\n    instance_type=example_get_instance_types.instance_types[0].id,\n    availability_zone=example.zones[0].id,\n    security_groups=[example_security_group.id],\n    instance_name=\"terraform-example\",\n    internet_charge_type=\"PayByBandwidth\",\n    vswitch_id=example_switch.id)\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample_vault = alicloud.hbr.Vault(\"example\", vault_name=f\"terraform-example-{default['result']}\")\nexample_ecs_backup_plan = alicloud.hbr.EcsBackupPlan(\"example\",\n    ecs_backup_plan_name=\"terraform-example\",\n    instance_id=example_instance.id,\n    vault_id=example_vault.id,\n    retention=\"1\",\n    schedule=\"I|1602673264|PT2H\",\n    backup_type=\"COMPLETE\",\n    speed_limit=\"0:24:5120\",\n    paths=[\n        \"/home\",\n        \"/var\",\n    ],\n    exclude=\"  [\\\\\\\"/home/exclude\\\\\\\"]\\n\",\n    include=\"  [\\\\\\\"/home/include\\\\\\\"]\\n\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n    });\n\n    var exampleGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var exampleGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = \"terraform-example\",\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Ecs.Instance(\"example\", new()\n    {\n        ImageId = exampleGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = exampleGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        AvailabilityZone = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        SecurityGroups = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n        InstanceName = \"terraform-example\",\n        InternetChargeType = \"PayByBandwidth\",\n        VswitchId = exampleSwitch.Id,\n    });\n\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var exampleVault = new AliCloud.Hbr.Vault(\"example\", new()\n    {\n        VaultName = $\"terraform-example-{@default.Result}\",\n    });\n\n    var exampleEcsBackupPlan = new AliCloud.Hbr.EcsBackupPlan(\"example\", new()\n    {\n        EcsBackupPlanName = \"terraform-example\",\n        InstanceId = exampleInstance.Id,\n        VaultId = exampleVault.Id,\n        Retention = \"1\",\n        Schedule = \"I|1602673264|PT2H\",\n        BackupType = \"COMPLETE\",\n        SpeedLimit = \"0:24:5120\",\n        Paths = new[]\n        {\n            \"/home\",\n            \"/var\",\n        },\n        Exclude = @\"  [\\\"\"/home/exclude\\\"\"]\n\",\n        Include = @\"  [\\\"\"/home/include\\\"\"]\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(example.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(\"terraform-example\"),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := ecs.NewInstance(ctx, \"example\", \u0026ecs.InstanceArgs{\n\t\t\tImageId:          pulumi.String(exampleGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(exampleGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tAvailabilityZone: pulumi.String(example.Zones[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t\tInstanceName:       pulumi.String(\"terraform-example\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByBandwidth\"),\n\t\t\tVswitchId:          exampleSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVault, err := hbr.NewVault(ctx, \"example\", \u0026hbr.VaultArgs{\n\t\t\tVaultName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.NewEcsBackupPlan(ctx, \"example\", \u0026hbr.EcsBackupPlanArgs{\n\t\t\tEcsBackupPlanName: pulumi.String(\"terraform-example\"),\n\t\t\tInstanceId:        exampleInstance.ID(),\n\t\t\tVaultId:           exampleVault.ID(),\n\t\t\tRetention:         pulumi.String(\"1\"),\n\t\t\tSchedule:          pulumi.String(\"I|1602673264|PT2H\"),\n\t\t\tBackupType:        pulumi.String(\"COMPLETE\"),\n\t\t\tSpeedLimit:        pulumi.String(\"0:24:5120\"),\n\t\t\tPaths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"/home\"),\n\t\t\t\tpulumi.String(\"/var\"),\n\t\t\t},\n\t\t\tExclude: pulumi.String(\"  [\\\\\\\"/home/exclude\\\\\\\"]\\n\"),\n\t\t\tInclude: pulumi.String(\"  [\\\\\\\"/home/include\\\\\\\"]\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.hbr.Vault;\nimport com.pulumi.alicloud.hbr.VaultArgs;\nimport com.pulumi.alicloud.hbr.EcsBackupPlan;\nimport com.pulumi.alicloud.hbr.EcsBackupPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .build());\n\n        final var exampleGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(example.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        final var exampleGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"terraform-example\")\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .imageId(exampleGetImages.images()[0].id())\n            .instanceType(exampleGetInstanceTypes.instanceTypes()[0].id())\n            .availabilityZone(example.zones()[0].id())\n            .securityGroups(exampleSecurityGroup.id())\n            .instanceName(\"terraform-example\")\n            .internetChargeType(\"PayByBandwidth\")\n            .vswitchId(exampleSwitch.id())\n            .build());\n\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var exampleVault = new Vault(\"exampleVault\", VaultArgs.builder()\n            .vaultName(String.format(\"terraform-example-%s\", default_.result()))\n            .build());\n\n        var exampleEcsBackupPlan = new EcsBackupPlan(\"exampleEcsBackupPlan\", EcsBackupPlanArgs.builder()\n            .ecsBackupPlanName(\"terraform-example\")\n            .instanceId(exampleInstance.id())\n            .vaultId(exampleVault.id())\n            .retention(\"1\")\n            .schedule(\"I|1602673264|PT2H\")\n            .backupType(\"COMPLETE\")\n            .speedLimit(\"0:24:5120\")\n            .paths(            \n                \"/home\",\n                \"/var\")\n            .exclude(\"\"\"\n  [\\\"/home/exclude\\\"]\n            \"\"\")\n            .include(\"\"\"\n  [\\\"/home/include\\\"]\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: terraform-example\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:ecs:Instance\n    name: example\n    properties:\n      imageId: ${exampleGetImages.images[0].id}\n      instanceType: ${exampleGetInstanceTypes.instanceTypes[0].id}\n      availabilityZone: ${example.zones[0].id}\n      securityGroups:\n        - ${exampleSecurityGroup.id}\n      instanceName: terraform-example\n      internetChargeType: PayByBandwidth\n      vswitchId: ${exampleSwitch.id}\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  exampleVault:\n    type: alicloud:hbr:Vault\n    name: example\n    properties:\n      vaultName: terraform-example-${default.result}\n  exampleEcsBackupPlan:\n    type: alicloud:hbr:EcsBackupPlan\n    name: example\n    properties:\n      ecsBackupPlanName: terraform-example\n      instanceId: ${exampleInstance.id}\n      vaultId: ${exampleVault.id}\n      retention: '1'\n      schedule: I|1602673264|PT2H\n      backupType: COMPLETE\n      speedLimit: 0:24:5120\n      paths:\n        - /home\n        - /var\n      exclude: |2\n          [\\\"/home/exclude\\\"]\n      include: |2\n          [\\\"/home/include\\\"]\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n  exampleGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${example.zones[0].id}\n        cpuCoreCount: 1\n        memorySize: 2\n  exampleGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Notice\n\n**About Backup path rules:**\n1. If there is no wildcard `*`, you can enter 8 items of path.\n2. When using wildcard `*`, only one item of path can be input, and wildcards like `/*/*` are supported.\n3. Each item of path only supports absolute paths, for example starting with `/`, `\\`, `C:\\`, `D:\\`.\n\n**About Restrictions:**\n1. When using `VSS`: multiple paths, UNC paths, wildcards, and excluded files not supported.\n2. When using `UNC`: VSS not supported, wildcards not supported, and files to be excluded are not supported.\n\n**About include/exclude path rules:**\n1. Supports up to 8 paths, including paths using wildcards `*`.\n2. If the path does not contain `/`, then `*` matches multiple path names or file names, for example `*abc*` will match `/abc/`, `/d/eabcd/`, `/a/abc`; `*.txt` will match all files with an extension `.txt`.\n3. If the path contains `/`, each `*` only matches a single-level path or file name. For example, `/a/*/*/` share will match `/a/b/c/share`, but not `/a/d/share`.\n4. If the path ends with `/`, it means the folder matches. For example, `*tmp/` will match `/a/b/aaatmp/`, `/tmp/` and so on.\n5. The path separator takes Linux system `/` as an example, if it is Windows system, please replace it with `\\`.\n\n## Import\n\nHBR Ecs Backup Plan can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:hbr/ecsBackupPlan:EcsBackupPlan example \u003cid\u003e\n```\n\n","properties":{"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`.\n"},"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n"},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n"},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n"},"detail":{"type":"string","description":"The detail of the backup plan.\n"},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ecsBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"exclude":{"type":"string","description":"Exclude path. String of Json list, up to 255 characters. e.g. `\"[\\\"/home/work\\\"]\"`\n"},"include":{"type":"string","description":"Include path. String of Json list, up to 255 characters. e.g. `\"[\\\"/var\\\"]\"`\n"},"instanceId":{"type":"string","description":"The ID of ECS instance. The ecs backup client must have been installed on the host.\n"},"options":{"type":"string","description":"Windows operating system with application consistency using VSS, e.g: `{\\\"UseVSS\\\":false}`.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"List of backup path. e.g. `[\"/home\", \"/var\"]`. **Note** If \u003cspan pulumi-lang-nodejs=\"`path`\" pulumi-lang-dotnet=\"`Path`\" pulumi-lang-go=\"`path`\" pulumi-lang-python=\"`path`\" pulumi-lang-yaml=\"`path`\" pulumi-lang-java=\"`path`\"\u003e`path`\u003c/span\u003e is empty, it means that all directories will be backed up.\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`. It means to execute a backup task every `{interval}` starting from `{startTime}`. The backup task for the elapsed time will not be compensated. If the last backup task has not completed yet, the next backup task will not be triggered.\n* `startTime` Backup start time, UNIX time seconds.\n"},"speedLimit":{"type":"string","description":"Flow control. The format is: `{start}|{end}|{bandwidth}`. Use `|` to separate multiple flow control configurations, multiple flow control configurations not allowed to have overlapping times.\n"},"updatePaths":{"type":"boolean","description":"Attribute\u003cspan pulumi-lang-nodejs=\" updatePaths \" pulumi-lang-dotnet=\" UpdatePaths \" pulumi-lang-go=\" updatePaths \" pulumi-lang-python=\" update_paths \" pulumi-lang-yaml=\" updatePaths \" pulumi-lang-java=\" updatePaths \"\u003e update_paths \u003c/span\u003ehas been deprecated in v1.139.0+, and you do not need to set it anymore.\n","deprecationMessage":"Attribute\u003cspan pulumi-lang-nodejs=\" updatePaths \" pulumi-lang-dotnet=\" UpdatePaths \" pulumi-lang-go=\" updatePaths \" pulumi-lang-python=\" update_paths \" pulumi-lang-yaml=\" updatePaths \" pulumi-lang-java=\" updatePaths \"\u003e update_paths \u003c/span\u003ehas been deprecated in v1.139.0+ and you do not need to set it anymore."},"vaultId":{"type":"string","description":"The ID of Backup vault.\n"}},"required":["backupType","crossAccountType","disabled","ecsBackupPlanName","instanceId","retention","schedule","vaultId"],"inputProperties":{"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`.\n","willReplaceOnChanges":true},"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n","willReplaceOnChanges":true},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n","willReplaceOnChanges":true},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n","willReplaceOnChanges":true},"detail":{"type":"string","description":"The detail of the backup plan.\n"},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ecsBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"exclude":{"type":"string","description":"Exclude path. String of Json list, up to 255 characters. e.g. `\"[\\\"/home/work\\\"]\"`\n"},"include":{"type":"string","description":"Include path. String of Json list, up to 255 characters. e.g. `\"[\\\"/var\\\"]\"`\n"},"instanceId":{"type":"string","description":"The ID of ECS instance. The ecs backup client must have been installed on the host.\n","willReplaceOnChanges":true},"options":{"type":"string","description":"Windows operating system with application consistency using VSS, e.g: `{\\\"UseVSS\\\":false}`.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"List of backup path. e.g. `[\"/home\", \"/var\"]`. **Note** If \u003cspan pulumi-lang-nodejs=\"`path`\" pulumi-lang-dotnet=\"`Path`\" pulumi-lang-go=\"`path`\" pulumi-lang-python=\"`path`\" pulumi-lang-yaml=\"`path`\" pulumi-lang-java=\"`path`\"\u003e`path`\u003c/span\u003e is empty, it means that all directories will be backed up.\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`. It means to execute a backup task every `{interval}` starting from `{startTime}`. The backup task for the elapsed time will not be compensated. If the last backup task has not completed yet, the next backup task will not be triggered.\n* `startTime` Backup start time, UNIX time seconds.\n"},"speedLimit":{"type":"string","description":"Flow control. The format is: `{start}|{end}|{bandwidth}`. Use `|` to separate multiple flow control configurations, multiple flow control configurations not allowed to have overlapping times.\n"},"updatePaths":{"type":"boolean","description":"Attribute\u003cspan pulumi-lang-nodejs=\" updatePaths \" pulumi-lang-dotnet=\" UpdatePaths \" pulumi-lang-go=\" updatePaths \" pulumi-lang-python=\" update_paths \" pulumi-lang-yaml=\" updatePaths \" pulumi-lang-java=\" updatePaths \"\u003e update_paths \u003c/span\u003ehas been deprecated in v1.139.0+, and you do not need to set it anymore.\n","deprecationMessage":"Attribute\u003cspan pulumi-lang-nodejs=\" updatePaths \" pulumi-lang-dotnet=\" UpdatePaths \" pulumi-lang-go=\" updatePaths \" pulumi-lang-python=\" update_paths \" pulumi-lang-yaml=\" updatePaths \" pulumi-lang-java=\" updatePaths \"\u003e update_paths \u003c/span\u003ehas been deprecated in v1.139.0+ and you do not need to set it anymore."},"vaultId":{"type":"string","description":"The ID of Backup vault.\n","willReplaceOnChanges":true}},"requiredInputs":["backupType","ecsBackupPlanName","instanceId","retention","schedule","vaultId"],"stateInputs":{"description":"Input properties used for looking up and filtering EcsBackupPlan resources.\n","properties":{"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`.\n","willReplaceOnChanges":true},"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n","willReplaceOnChanges":true},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n","willReplaceOnChanges":true},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n","willReplaceOnChanges":true},"detail":{"type":"string","description":"The detail of the backup plan.\n"},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ecsBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"exclude":{"type":"string","description":"Exclude path. String of Json list, up to 255 characters. e.g. `\"[\\\"/home/work\\\"]\"`\n"},"include":{"type":"string","description":"Include path. String of Json list, up to 255 characters. e.g. `\"[\\\"/var\\\"]\"`\n"},"instanceId":{"type":"string","description":"The ID of ECS instance. The ecs backup client must have been installed on the host.\n","willReplaceOnChanges":true},"options":{"type":"string","description":"Windows operating system with application consistency using VSS, e.g: `{\\\"UseVSS\\\":false}`.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"List of backup path. e.g. `[\"/home\", \"/var\"]`. **Note** If \u003cspan pulumi-lang-nodejs=\"`path`\" pulumi-lang-dotnet=\"`Path`\" pulumi-lang-go=\"`path`\" pulumi-lang-python=\"`path`\" pulumi-lang-yaml=\"`path`\" pulumi-lang-java=\"`path`\"\u003e`path`\u003c/span\u003e is empty, it means that all directories will be backed up.\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`. It means to execute a backup task every `{interval}` starting from `{startTime}`. The backup task for the elapsed time will not be compensated. If the last backup task has not completed yet, the next backup task will not be triggered.\n* `startTime` Backup start time, UNIX time seconds.\n"},"speedLimit":{"type":"string","description":"Flow control. The format is: `{start}|{end}|{bandwidth}`. Use `|` to separate multiple flow control configurations, multiple flow control configurations not allowed to have overlapping times.\n"},"updatePaths":{"type":"boolean","description":"Attribute\u003cspan pulumi-lang-nodejs=\" updatePaths \" pulumi-lang-dotnet=\" UpdatePaths \" pulumi-lang-go=\" updatePaths \" pulumi-lang-python=\" update_paths \" pulumi-lang-yaml=\" updatePaths \" pulumi-lang-java=\" updatePaths \"\u003e update_paths \u003c/span\u003ehas been deprecated in v1.139.0+, and you do not need to set it anymore.\n","deprecationMessage":"Attribute\u003cspan pulumi-lang-nodejs=\" updatePaths \" pulumi-lang-dotnet=\" UpdatePaths \" pulumi-lang-go=\" updatePaths \" pulumi-lang-python=\" update_paths \" pulumi-lang-yaml=\" updatePaths \" pulumi-lang-java=\" updatePaths \"\u003e update_paths \u003c/span\u003ehas been deprecated in v1.139.0+ and you do not need to set it anymore."},"vaultId":{"type":"string","description":"The ID of Backup vault.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:hbr/hanaBackupClient:HanaBackupClient":{"description":"Provides a Hybrid Backup Recovery (HBR) Hana Backup Client resource.\n\nFor information about Hybrid Backup Recovery (HBR) Hana Backup Client and how to use it, see [What is Hana Backup Client](https://www.alibabacloud.com/help/en/hybrid-backup-recovery/latest/api-hbr-2017-09-08-createclients).\n\n\u003e **NOTE:** Available since v1.198.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n});\nconst exampleGetInstanceTypes = example.then(example =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: example.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst exampleGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_[0-9]+_[0-9]+_x64*\",\n    owners: \"system\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: \"terraform-example\",\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.ecs.Instance(\"example\", {\n    imageId: exampleGetImages.then(exampleGetImages =\u003e exampleGetImages.images?.[0]?.id),\n    instanceType: exampleGetInstanceTypes.then(exampleGetInstanceTypes =\u003e exampleGetInstanceTypes.instanceTypes?.[0]?.id),\n    availabilityZone: example.then(example =\u003e example.zones?.[0]?.id),\n    securityGroups: [exampleSecurityGroup.id],\n    instanceName: \"terraform-example\",\n    internetChargeType: \"PayByBandwidth\",\n    vswitchId: exampleSwitch.id,\n});\nconst exampleGetResourceGroups = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst exampleVault = new alicloud.hbr.Vault(\"example\", {vaultName: \"terraform-example\"});\nconst exampleHanaInstance = new alicloud.hbr.HanaInstance(\"example\", {\n    alertSetting: \"INHERITED\",\n    hanaName: \"terraform-example\",\n    host: \"1.1.1.1\",\n    instanceNumber: 1,\n    password: \"YouPassword123\",\n    resourceGroupId: exampleGetResourceGroups.then(exampleGetResourceGroups =\u003e exampleGetResourceGroups.groups?.[0]?.id),\n    sid: \"HXE\",\n    useSsl: false,\n    userName: \"admin\",\n    validateCertificate: false,\n    vaultId: exampleVault.id,\n});\nconst _default = new alicloud.hbr.HanaBackupClient(\"default\", {\n    vaultId: exampleVault.id,\n    clientInfo: pulumi.interpolate`[ { \"instanceId\": \"${exampleInstance.id}\", \"clusterId\": \"${exampleHanaInstance.hanaInstanceId}\", \"sourceTypes\": [ \"HANA\" ]  }]`,\n    alertSetting: \"INHERITED\",\n    useHttps: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.get_zones(available_resource_creation=\"Instance\")\nexample_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=example.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\nexample_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_[0-9]+_[0-9]+_x64*\",\n    owners=\"system\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=\"terraform-example\",\n    vpc_id=example_network.id)\nexample_instance = alicloud.ecs.Instance(\"example\",\n    image_id=example_get_images.images[0].id,\n    instance_type=example_get_instance_types.instance_types[0].id,\n    availability_zone=example.zones[0].id,\n    security_groups=[example_security_group.id],\n    instance_name=\"terraform-example\",\n    internet_charge_type=\"PayByBandwidth\",\n    vswitch_id=example_switch.id)\nexample_get_resource_groups = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\nexample_vault = alicloud.hbr.Vault(\"example\", vault_name=\"terraform-example\")\nexample_hana_instance = alicloud.hbr.HanaInstance(\"example\",\n    alert_setting=\"INHERITED\",\n    hana_name=\"terraform-example\",\n    host=\"1.1.1.1\",\n    instance_number=1,\n    password=\"YouPassword123\",\n    resource_group_id=example_get_resource_groups.groups[0].id,\n    sid=\"HXE\",\n    use_ssl=False,\n    user_name=\"admin\",\n    validate_certificate=False,\n    vault_id=example_vault.id)\ndefault = alicloud.hbr.HanaBackupClient(\"default\",\n    vault_id=example_vault.id,\n    client_info=pulumi.Output.all(\n        id=example_instance.id,\n        hana_instance_id=example_hana_instance.hana_instance_id\n).apply(lambda resolved_outputs: f\"[ {{ \\\"instanceId\\\": \\\"{resolved_outputs['id']}\\\", \\\"clusterId\\\": \\\"{resolved_outputs['hana_instance_id']}\\\", \\\"sourceTypes\\\": [ \\\"HANA\\\" ]  }}]\")\n,\n    alert_setting=\"INHERITED\",\n    use_https=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n    });\n\n    var exampleGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var exampleGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_[0-9]+_[0-9]+_x64*\",\n        Owners = \"system\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = \"terraform-example\",\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Ecs.Instance(\"example\", new()\n    {\n        ImageId = exampleGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = exampleGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        AvailabilityZone = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        SecurityGroups = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n        InstanceName = \"terraform-example\",\n        InternetChargeType = \"PayByBandwidth\",\n        VswitchId = exampleSwitch.Id,\n    });\n\n    var exampleGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var exampleVault = new AliCloud.Hbr.Vault(\"example\", new()\n    {\n        VaultName = \"terraform-example\",\n    });\n\n    var exampleHanaInstance = new AliCloud.Hbr.HanaInstance(\"example\", new()\n    {\n        AlertSetting = \"INHERITED\",\n        HanaName = \"terraform-example\",\n        Host = \"1.1.1.1\",\n        InstanceNumber = 1,\n        Password = \"YouPassword123\",\n        ResourceGroupId = exampleGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        Sid = \"HXE\",\n        UseSsl = false,\n        UserName = \"admin\",\n        ValidateCertificate = false,\n        VaultId = exampleVault.Id,\n    });\n\n    var @default = new AliCloud.Hbr.HanaBackupClient(\"default\", new()\n    {\n        VaultId = exampleVault.Id,\n        ClientInfo = Output.Tuple(exampleInstance.Id, exampleHanaInstance.HanaInstanceId).Apply(values =\u003e\n        {\n            var id = values.Item1;\n            var hanaInstanceId = values.Item2;\n            return $\"[ {{ \\\"instanceId\\\": \\\"{id}\\\", \\\"clusterId\\\": \\\"{hanaInstanceId}\\\", \\\"sourceTypes\\\": [ \\\"HANA\\\" ]  }}]\";\n        }),\n        AlertSetting = \"INHERITED\",\n        UseHttps = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(example.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_[0-9]+_[0-9]+_x64*\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(\"terraform-example\"),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := ecs.NewInstance(ctx, \"example\", \u0026ecs.InstanceArgs{\n\t\t\tImageId:          pulumi.String(exampleGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(exampleGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tAvailabilityZone: pulumi.String(example.Zones[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t\tInstanceName:       pulumi.String(\"terraform-example\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByBandwidth\"),\n\t\t\tVswitchId:          exampleSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVault, err := hbr.NewVault(ctx, \"example\", \u0026hbr.VaultArgs{\n\t\t\tVaultName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleHanaInstance, err := hbr.NewHanaInstance(ctx, \"example\", \u0026hbr.HanaInstanceArgs{\n\t\t\tAlertSetting:        pulumi.String(\"INHERITED\"),\n\t\t\tHanaName:            pulumi.String(\"terraform-example\"),\n\t\t\tHost:                pulumi.String(\"1.1.1.1\"),\n\t\t\tInstanceNumber:      pulumi.Int(1),\n\t\t\tPassword:            pulumi.String(\"YouPassword123\"),\n\t\t\tResourceGroupId:     pulumi.String(exampleGetResourceGroups.Groups[0].Id),\n\t\t\tSid:                 pulumi.String(\"HXE\"),\n\t\t\tUseSsl:              pulumi.Bool(false),\n\t\t\tUserName:            pulumi.String(\"admin\"),\n\t\t\tValidateCertificate: pulumi.Bool(false),\n\t\t\tVaultId:             exampleVault.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.NewHanaBackupClient(ctx, \"default\", \u0026hbr.HanaBackupClientArgs{\n\t\t\tVaultId: exampleVault.ID(),\n\t\t\tClientInfo: pulumi.All(exampleInstance.ID(), exampleHanaInstance.HanaInstanceId).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tid := _args[0].(string)\n\t\t\t\thanaInstanceId := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(\"[ { \\\"instanceId\\\": \\\"%v\\\", \\\"clusterId\\\": \\\"%v\\\", \\\"sourceTypes\\\": [ \\\"HANA\\\" ]  }]\", id, hanaInstanceId), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tAlertSetting: pulumi.String(\"INHERITED\"),\n\t\t\tUseHttps:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.hbr.Vault;\nimport com.pulumi.alicloud.hbr.VaultArgs;\nimport com.pulumi.alicloud.hbr.HanaInstance;\nimport com.pulumi.alicloud.hbr.HanaInstanceArgs;\nimport com.pulumi.alicloud.hbr.HanaBackupClient;\nimport com.pulumi.alicloud.hbr.HanaBackupClientArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .build());\n\n        final var exampleGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(example.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        final var exampleGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_[0-9]+_[0-9]+_x64*\")\n            .owners(\"system\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"terraform-example\")\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .imageId(exampleGetImages.images()[0].id())\n            .instanceType(exampleGetInstanceTypes.instanceTypes()[0].id())\n            .availabilityZone(example.zones()[0].id())\n            .securityGroups(exampleSecurityGroup.id())\n            .instanceName(\"terraform-example\")\n            .internetChargeType(\"PayByBandwidth\")\n            .vswitchId(exampleSwitch.id())\n            .build());\n\n        final var exampleGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var exampleVault = new Vault(\"exampleVault\", VaultArgs.builder()\n            .vaultName(\"terraform-example\")\n            .build());\n\n        var exampleHanaInstance = new HanaInstance(\"exampleHanaInstance\", HanaInstanceArgs.builder()\n            .alertSetting(\"INHERITED\")\n            .hanaName(\"terraform-example\")\n            .host(\"1.1.1.1\")\n            .instanceNumber(1)\n            .password(\"YouPassword123\")\n            .resourceGroupId(exampleGetResourceGroups.groups()[0].id())\n            .sid(\"HXE\")\n            .useSsl(false)\n            .userName(\"admin\")\n            .validateCertificate(false)\n            .vaultId(exampleVault.id())\n            .build());\n\n        var default_ = new HanaBackupClient(\"default\", HanaBackupClientArgs.builder()\n            .vaultId(exampleVault.id())\n            .clientInfo(Output.tuple(exampleInstance.id(), exampleHanaInstance.hanaInstanceId()).applyValue(values -\u003e {\n                var id = values.t1;\n                var hanaInstanceId = values.t2;\n                return String.format(\"[ {{ \\\"instanceId\\\": \\\"%s\\\", \\\"clusterId\\\": \\\"%s\\\", \\\"sourceTypes\\\": [ \\\"HANA\\\" ]  }}]\", id,hanaInstanceId);\n            }))\n            .alertSetting(\"INHERITED\")\n            .useHttps(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: terraform-example\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:ecs:Instance\n    name: example\n    properties:\n      imageId: ${exampleGetImages.images[0].id}\n      instanceType: ${exampleGetInstanceTypes.instanceTypes[0].id}\n      availabilityZone: ${example.zones[0].id}\n      securityGroups:\n        - ${exampleSecurityGroup.id}\n      instanceName: terraform-example\n      internetChargeType: PayByBandwidth\n      vswitchId: ${exampleSwitch.id}\n  exampleVault:\n    type: alicloud:hbr:Vault\n    name: example\n    properties:\n      vaultName: terraform-example\n  exampleHanaInstance:\n    type: alicloud:hbr:HanaInstance\n    name: example\n    properties:\n      alertSetting: INHERITED\n      hanaName: terraform-example\n      host: 1.1.1.1\n      instanceNumber: 1\n      password: YouPassword123\n      resourceGroupId: ${exampleGetResourceGroups.groups[0].id}\n      sid: HXE\n      useSsl: false\n      userName: admin\n      validateCertificate: false\n      vaultId: ${exampleVault.id}\n  default:\n    type: alicloud:hbr:HanaBackupClient\n    properties:\n      vaultId: ${exampleVault.id}\n      clientInfo: '[ { \"instanceId\": \"${exampleInstance.id}\", \"clusterId\": \"${exampleHanaInstance.hanaInstanceId}\", \"sourceTypes\": [ \"HANA\" ]  }]'\n      alertSetting: INHERITED\n      useHttps: true\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n  exampleGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${example.zones[0].id}\n        cpuCoreCount: 1\n        memorySize: 2\n  exampleGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_[0-9]+_[0-9]+_x64*\n        owners: system\n  exampleGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nHybrid Backup Recovery (HBR) Hana Backup Client can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:hbr/hanaBackupClient:HanaBackupClient example \u003cvault_id\u003e:\u003cclient_id\u003e\n```\n\n","properties":{"alertSetting":{"type":"string","description":"The alert settings. Valid value: `INHERITED`.\n"},"clientId":{"type":"string","description":"The ID of the backup client.\n"},"clientInfo":{"type":"string","description":"The installation information of the HBR clients.\n"},"clusterId":{"type":"string","description":"The ID of the SAP HANA instance.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"status":{"type":"string","description":"The status of the Hana Backup Client.\n"},"useHttps":{"type":"boolean","description":"Specifies whether to transmit data over HTTPS. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"vaultId":{"type":"string","description":"The ID of the backup vault.\n"}},"required":["alertSetting","clientId","clusterId","instanceId","status","vaultId"],"inputProperties":{"alertSetting":{"type":"string","description":"The alert settings. Valid value: `INHERITED`.\n","willReplaceOnChanges":true},"clientInfo":{"type":"string","description":"The installation information of the HBR clients.\n"},"useHttps":{"type":"boolean","description":"Specifies whether to transmit data over HTTPS. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"vaultId":{"type":"string","description":"The ID of the backup vault.\n","willReplaceOnChanges":true}},"requiredInputs":["vaultId"],"stateInputs":{"description":"Input properties used for looking up and filtering HanaBackupClient resources.\n","properties":{"alertSetting":{"type":"string","description":"The alert settings. Valid value: `INHERITED`.\n","willReplaceOnChanges":true},"clientId":{"type":"string","description":"The ID of the backup client.\n"},"clientInfo":{"type":"string","description":"The installation information of the HBR clients.\n"},"clusterId":{"type":"string","description":"The ID of the SAP HANA instance.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"status":{"type":"string","description":"The status of the Hana Backup Client.\n"},"useHttps":{"type":"boolean","description":"Specifies whether to transmit data over HTTPS. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"vaultId":{"type":"string","description":"The ID of the backup vault.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:hbr/hanaBackupPlan:HanaBackupPlan":{"description":"Provides a Hybrid Backup Recovery (HBR) Hana Backup Plan resource.\n\nFor information about Hybrid Backup Recovery (HBR) Hana Backup Plan and how to use it, see [What is Hana Backup Plan](https://www.alibabacloud.com/help/en/hybrid-backup-recovery/latest/api-hbr-2017-09-08-createhanabackupplan).\n\n\u003e **NOTE:** Available since v1.179.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst example = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst exampleVault = new alicloud.hbr.Vault(\"example\", {vaultName: `terraform-example-${_default.result}`});\nconst exampleHanaInstance = new alicloud.hbr.HanaInstance(\"example\", {\n    alertSetting: \"INHERITED\",\n    hanaName: `terraform-example-${_default.result}`,\n    host: \"1.1.1.1\",\n    instanceNumber: 1,\n    password: \"YouPassword123\",\n    resourceGroupId: example.then(example =\u003e example.groups?.[0]?.id),\n    sid: \"HXE\",\n    useSsl: false,\n    userName: \"admin\",\n    validateCertificate: false,\n    vaultId: exampleVault.id,\n});\nconst exampleHanaBackupPlan = new alicloud.hbr.HanaBackupPlan(\"example\", {\n    backupPrefix: \"DIFF_DATA_BACKUP\",\n    backupType: \"COMPLETE\",\n    clusterId: exampleHanaInstance.hanaInstanceId,\n    databaseName: \"SYSTEMDB\",\n    planName: \"terraform-example\",\n    resourceGroupId: example.then(example =\u003e example.groups?.[0]?.id),\n    schedule: \"I|1602673264|P1D\",\n    vaultId: exampleHanaInstance.vaultId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nexample = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample_vault = alicloud.hbr.Vault(\"example\", vault_name=f\"terraform-example-{default['result']}\")\nexample_hana_instance = alicloud.hbr.HanaInstance(\"example\",\n    alert_setting=\"INHERITED\",\n    hana_name=f\"terraform-example-{default['result']}\",\n    host=\"1.1.1.1\",\n    instance_number=1,\n    password=\"YouPassword123\",\n    resource_group_id=example.groups[0].id,\n    sid=\"HXE\",\n    use_ssl=False,\n    user_name=\"admin\",\n    validate_certificate=False,\n    vault_id=example_vault.id)\nexample_hana_backup_plan = alicloud.hbr.HanaBackupPlan(\"example\",\n    backup_prefix=\"DIFF_DATA_BACKUP\",\n    backup_type=\"COMPLETE\",\n    cluster_id=example_hana_instance.hana_instance_id,\n    database_name=\"SYSTEMDB\",\n    plan_name=\"terraform-example\",\n    resource_group_id=example.groups[0].id,\n    schedule=\"I|1602673264|P1D\",\n    vault_id=example_hana_instance.vault_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var exampleVault = new AliCloud.Hbr.Vault(\"example\", new()\n    {\n        VaultName = $\"terraform-example-{@default.Result}\",\n    });\n\n    var exampleHanaInstance = new AliCloud.Hbr.HanaInstance(\"example\", new()\n    {\n        AlertSetting = \"INHERITED\",\n        HanaName = $\"terraform-example-{@default.Result}\",\n        Host = \"1.1.1.1\",\n        InstanceNumber = 1,\n        Password = \"YouPassword123\",\n        ResourceGroupId = example.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        Sid = \"HXE\",\n        UseSsl = false,\n        UserName = \"admin\",\n        ValidateCertificate = false,\n        VaultId = exampleVault.Id,\n    });\n\n    var exampleHanaBackupPlan = new AliCloud.Hbr.HanaBackupPlan(\"example\", new()\n    {\n        BackupPrefix = \"DIFF_DATA_BACKUP\",\n        BackupType = \"COMPLETE\",\n        ClusterId = exampleHanaInstance.HanaInstanceId,\n        DatabaseName = \"SYSTEMDB\",\n        PlanName = \"terraform-example\",\n        ResourceGroupId = example.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        Schedule = \"I|1602673264|P1D\",\n        VaultId = exampleHanaInstance.VaultId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVault, err := hbr.NewVault(ctx, \"example\", \u0026hbr.VaultArgs{\n\t\t\tVaultName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleHanaInstance, err := hbr.NewHanaInstance(ctx, \"example\", \u0026hbr.HanaInstanceArgs{\n\t\t\tAlertSetting:        pulumi.String(\"INHERITED\"),\n\t\t\tHanaName:            pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tHost:                pulumi.String(\"1.1.1.1\"),\n\t\t\tInstanceNumber:      pulumi.Int(1),\n\t\t\tPassword:            pulumi.String(\"YouPassword123\"),\n\t\t\tResourceGroupId:     pulumi.String(example.Groups[0].Id),\n\t\t\tSid:                 pulumi.String(\"HXE\"),\n\t\t\tUseSsl:              pulumi.Bool(false),\n\t\t\tUserName:            pulumi.String(\"admin\"),\n\t\t\tValidateCertificate: pulumi.Bool(false),\n\t\t\tVaultId:             exampleVault.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.NewHanaBackupPlan(ctx, \"example\", \u0026hbr.HanaBackupPlanArgs{\n\t\t\tBackupPrefix:    pulumi.String(\"DIFF_DATA_BACKUP\"),\n\t\t\tBackupType:      pulumi.String(\"COMPLETE\"),\n\t\t\tClusterId:       exampleHanaInstance.HanaInstanceId,\n\t\t\tDatabaseName:    pulumi.String(\"SYSTEMDB\"),\n\t\t\tPlanName:        pulumi.String(\"terraform-example\"),\n\t\t\tResourceGroupId: pulumi.String(example.Groups[0].Id),\n\t\t\tSchedule:        pulumi.String(\"I|1602673264|P1D\"),\n\t\t\tVaultId:         exampleHanaInstance.VaultId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.hbr.Vault;\nimport com.pulumi.alicloud.hbr.VaultArgs;\nimport com.pulumi.alicloud.hbr.HanaInstance;\nimport com.pulumi.alicloud.hbr.HanaInstanceArgs;\nimport com.pulumi.alicloud.hbr.HanaBackupPlan;\nimport com.pulumi.alicloud.hbr.HanaBackupPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var exampleVault = new Vault(\"exampleVault\", VaultArgs.builder()\n            .vaultName(String.format(\"terraform-example-%s\", default_.result()))\n            .build());\n\n        var exampleHanaInstance = new HanaInstance(\"exampleHanaInstance\", HanaInstanceArgs.builder()\n            .alertSetting(\"INHERITED\")\n            .hanaName(String.format(\"terraform-example-%s\", default_.result()))\n            .host(\"1.1.1.1\")\n            .instanceNumber(1)\n            .password(\"YouPassword123\")\n            .resourceGroupId(example.groups()[0].id())\n            .sid(\"HXE\")\n            .useSsl(false)\n            .userName(\"admin\")\n            .validateCertificate(false)\n            .vaultId(exampleVault.id())\n            .build());\n\n        var exampleHanaBackupPlan = new HanaBackupPlan(\"exampleHanaBackupPlan\", HanaBackupPlanArgs.builder()\n            .backupPrefix(\"DIFF_DATA_BACKUP\")\n            .backupType(\"COMPLETE\")\n            .clusterId(exampleHanaInstance.hanaInstanceId())\n            .databaseName(\"SYSTEMDB\")\n            .planName(\"terraform-example\")\n            .resourceGroupId(example.groups()[0].id())\n            .schedule(\"I|1602673264|P1D\")\n            .vaultId(exampleHanaInstance.vaultId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  exampleVault:\n    type: alicloud:hbr:Vault\n    name: example\n    properties:\n      vaultName: terraform-example-${default.result}\n  exampleHanaInstance:\n    type: alicloud:hbr:HanaInstance\n    name: example\n    properties:\n      alertSetting: INHERITED\n      hanaName: terraform-example-${default.result}\n      host: 1.1.1.1\n      instanceNumber: 1\n      password: YouPassword123\n      resourceGroupId: ${example.groups[0].id}\n      sid: HXE\n      useSsl: false\n      userName: admin\n      validateCertificate: false\n      vaultId: ${exampleVault.id}\n  exampleHanaBackupPlan:\n    type: alicloud:hbr:HanaBackupPlan\n    name: example\n    properties:\n      backupPrefix: DIFF_DATA_BACKUP\n      backupType: COMPLETE\n      clusterId: ${exampleHanaInstance.hanaInstanceId}\n      databaseName: SYSTEMDB\n      planName: terraform-example\n      resourceGroupId: ${example.groups[0].id}\n      schedule: I|1602673264|P1D\n      vaultId: ${exampleHanaInstance.vaultId}\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nHybrid Backup Recovery (HBR) Hana Backup Plan can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:hbr/hanaBackupPlan:HanaBackupPlan example \u003cplan_id\u003e:\u003cvault_id\u003e:\u003ccluster_id\u003e\n```\n\n","properties":{"backupPrefix":{"type":"string","description":"The backup prefix.\n"},"backupType":{"type":"string","description":"The backup type. Valid values:\n- `COMPLETE`: full backup.\n- `INCREMENTAL`: incremental backup.\n- `DIFFERENTIAL`: differential backup.\n"},"clusterId":{"type":"string","description":"The ID of the SAP HANA instance.\n"},"databaseName":{"type":"string","description":"The name of the database.\n"},"planId":{"type":"string","description":"The id of the plan.\n"},"planName":{"type":"string","description":"The name of the backup plan.\n"},"resourceGroupId":{"type":"string","description":"The resource attribute field that represents the resource group ID.\n"},"schedule":{"type":"string","description":"The backup policy. Format: `I|{startTime}|{interval}`. The system runs the first backup job at a point in time that is specified in the {startTime} parameter and the subsequent backup jobs at an interval that is specified in the {interval} parameter. The system does not run a backup job before the specified point in time. Each backup job, except the first one, starts only after the previous backup job is completed. For example, I|1631685600|P1D specifies that the system runs the first backup job at 14:00:00 on September 15, 2021 and the subsequent backup jobs once a day.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Enabled`, `Disabled`.\n"},"vaultId":{"type":"string","description":"The ID of the backup vault.\n"}},"required":["backupType","clusterId","databaseName","planId","planName","schedule","status","vaultId"],"inputProperties":{"backupPrefix":{"type":"string","description":"The backup prefix.\n"},"backupType":{"type":"string","description":"The backup type. Valid values:\n- `COMPLETE`: full backup.\n- `INCREMENTAL`: incremental backup.\n- `DIFFERENTIAL`: differential backup.\n","willReplaceOnChanges":true},"clusterId":{"type":"string","description":"The ID of the SAP HANA instance.\n","willReplaceOnChanges":true},"databaseName":{"type":"string","description":"The name of the database.\n","willReplaceOnChanges":true},"planName":{"type":"string","description":"The name of the backup plan.\n"},"resourceGroupId":{"type":"string","description":"The resource attribute field that represents the resource group ID.\n"},"schedule":{"type":"string","description":"The backup policy. Format: `I|{startTime}|{interval}`. The system runs the first backup job at a point in time that is specified in the {startTime} parameter and the subsequent backup jobs at an interval that is specified in the {interval} parameter. The system does not run a backup job before the specified point in time. Each backup job, except the first one, starts only after the previous backup job is completed. For example, I|1631685600|P1D specifies that the system runs the first backup job at 14:00:00 on September 15, 2021 and the subsequent backup jobs once a day.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Enabled`, `Disabled`.\n"},"vaultId":{"type":"string","description":"The ID of the backup vault.\n","willReplaceOnChanges":true}},"requiredInputs":["backupType","clusterId","databaseName","planName","schedule","vaultId"],"stateInputs":{"description":"Input properties used for looking up and filtering HanaBackupPlan resources.\n","properties":{"backupPrefix":{"type":"string","description":"The backup prefix.\n"},"backupType":{"type":"string","description":"The backup type. Valid values:\n- `COMPLETE`: full backup.\n- `INCREMENTAL`: incremental backup.\n- `DIFFERENTIAL`: differential backup.\n","willReplaceOnChanges":true},"clusterId":{"type":"string","description":"The ID of the SAP HANA instance.\n","willReplaceOnChanges":true},"databaseName":{"type":"string","description":"The name of the database.\n","willReplaceOnChanges":true},"planId":{"type":"string","description":"The id of the plan.\n"},"planName":{"type":"string","description":"The name of the backup plan.\n"},"resourceGroupId":{"type":"string","description":"The resource attribute field that represents the resource group ID.\n"},"schedule":{"type":"string","description":"The backup policy. Format: `I|{startTime}|{interval}`. The system runs the first backup job at a point in time that is specified in the {startTime} parameter and the subsequent backup jobs at an interval that is specified in the {interval} parameter. The system does not run a backup job before the specified point in time. Each backup job, except the first one, starts only after the previous backup job is completed. For example, I|1631685600|P1D specifies that the system runs the first backup job at 14:00:00 on September 15, 2021 and the subsequent backup jobs once a day.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Enabled`, `Disabled`.\n"},"vaultId":{"type":"string","description":"The ID of the backup vault.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:hbr/hanaInstance:HanaInstance":{"description":"Provides a Hybrid Backup Recovery (HBR) Hana Instance resource.\n\nFor information about Hybrid Backup Recovery (HBR) Hana Instance and how to use it, see [What is Hana Instance](https://www.alibabacloud.com/help/en/hybrid-backup-recovery/latest/api-hbr-2017-09-08-createhanainstance).\n\n\u003e **NOTE:** Available since v1.178.0.\n\n\u003e **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`sid`\" pulumi-lang-dotnet=\"`Sid`\" pulumi-lang-go=\"`sid`\" pulumi-lang-python=\"`sid`\" pulumi-lang-yaml=\"`sid`\" pulumi-lang-java=\"`sid`\"\u003e`sid`\u003c/span\u003e attribute is required when destroying resources.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst example = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst exampleVault = new alicloud.hbr.Vault(\"example\", {vaultName: `terraform-example-${_default.result}`});\nconst exampleHanaInstance = new alicloud.hbr.HanaInstance(\"example\", {\n    alertSetting: \"INHERITED\",\n    hanaName: `terraform-example-${_default.result}`,\n    host: \"1.1.1.1\",\n    instanceNumber: 1,\n    password: \"YouPassword123\",\n    resourceGroupId: example.then(example =\u003e example.groups?.[0]?.id),\n    sid: \"HXE\",\n    useSsl: false,\n    userName: \"admin\",\n    validateCertificate: false,\n    vaultId: exampleVault.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nexample = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample_vault = alicloud.hbr.Vault(\"example\", vault_name=f\"terraform-example-{default['result']}\")\nexample_hana_instance = alicloud.hbr.HanaInstance(\"example\",\n    alert_setting=\"INHERITED\",\n    hana_name=f\"terraform-example-{default['result']}\",\n    host=\"1.1.1.1\",\n    instance_number=1,\n    password=\"YouPassword123\",\n    resource_group_id=example.groups[0].id,\n    sid=\"HXE\",\n    use_ssl=False,\n    user_name=\"admin\",\n    validate_certificate=False,\n    vault_id=example_vault.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var exampleVault = new AliCloud.Hbr.Vault(\"example\", new()\n    {\n        VaultName = $\"terraform-example-{@default.Result}\",\n    });\n\n    var exampleHanaInstance = new AliCloud.Hbr.HanaInstance(\"example\", new()\n    {\n        AlertSetting = \"INHERITED\",\n        HanaName = $\"terraform-example-{@default.Result}\",\n        Host = \"1.1.1.1\",\n        InstanceNumber = 1,\n        Password = \"YouPassword123\",\n        ResourceGroupId = example.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        Sid = \"HXE\",\n        UseSsl = false,\n        UserName = \"admin\",\n        ValidateCertificate = false,\n        VaultId = exampleVault.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVault, err := hbr.NewVault(ctx, \"example\", \u0026hbr.VaultArgs{\n\t\t\tVaultName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.NewHanaInstance(ctx, \"example\", \u0026hbr.HanaInstanceArgs{\n\t\t\tAlertSetting:        pulumi.String(\"INHERITED\"),\n\t\t\tHanaName:            pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tHost:                pulumi.String(\"1.1.1.1\"),\n\t\t\tInstanceNumber:      pulumi.Int(1),\n\t\t\tPassword:            pulumi.String(\"YouPassword123\"),\n\t\t\tResourceGroupId:     pulumi.String(example.Groups[0].Id),\n\t\t\tSid:                 pulumi.String(\"HXE\"),\n\t\t\tUseSsl:              pulumi.Bool(false),\n\t\t\tUserName:            pulumi.String(\"admin\"),\n\t\t\tValidateCertificate: pulumi.Bool(false),\n\t\t\tVaultId:             exampleVault.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.hbr.Vault;\nimport com.pulumi.alicloud.hbr.VaultArgs;\nimport com.pulumi.alicloud.hbr.HanaInstance;\nimport com.pulumi.alicloud.hbr.HanaInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var exampleVault = new Vault(\"exampleVault\", VaultArgs.builder()\n            .vaultName(String.format(\"terraform-example-%s\", default_.result()))\n            .build());\n\n        var exampleHanaInstance = new HanaInstance(\"exampleHanaInstance\", HanaInstanceArgs.builder()\n            .alertSetting(\"INHERITED\")\n            .hanaName(String.format(\"terraform-example-%s\", default_.result()))\n            .host(\"1.1.1.1\")\n            .instanceNumber(1)\n            .password(\"YouPassword123\")\n            .resourceGroupId(example.groups()[0].id())\n            .sid(\"HXE\")\n            .useSsl(false)\n            .userName(\"admin\")\n            .validateCertificate(false)\n            .vaultId(exampleVault.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  exampleVault:\n    type: alicloud:hbr:Vault\n    name: example\n    properties:\n      vaultName: terraform-example-${default.result}\n  exampleHanaInstance:\n    type: alicloud:hbr:HanaInstance\n    name: example\n    properties:\n      alertSetting: INHERITED\n      hanaName: terraform-example-${default.result}\n      host: 1.1.1.1\n      instanceNumber: 1\n      password: YouPassword123\n      resourceGroupId: ${example.groups[0].id}\n      sid: HXE\n      useSsl: false\n      userName: admin\n      validateCertificate: false\n      vaultId: ${exampleVault.id}\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nHybrid Backup Recovery (HBR) Hana Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:hbr/hanaInstance:HanaInstance example \u003cvault_id\u003e:\u003chana_instance_id\u003e\n```\n\n","properties":{"alertSetting":{"type":"string","description":"The alert settings. Valid value: `INHERITED`, which indicates that the backup client sends alert notifications in the same way as the backup vault.\n"},"ecsInstanceIds":{"type":"array","items":{"type":"string"},"description":"The IDs of ECS instances that host the SAP HANA instance to be registered. HBR installs backup clients on the specified ECS instances.\n"},"hanaInstanceId":{"type":"string","description":"The id of the Hana Instance.\n"},"hanaName":{"type":"string","description":"The name of the SAP HANA instance.\n"},"host":{"type":"string","description":"The private or internal IP address of the host where the primary node of the SAP HANA instance resides.\n"},"instanceNumber":{"type":"integer","description":"The instance number of the SAP HANA system.\n"},"password":{"type":"string","description":"The password that is used to connect with the SAP HANA database.\n","secret":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sid":{"type":"string","description":"The security identifier (SID) of the SAP HANA database.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"useSsl":{"type":"boolean","description":"Specifies whether to connect with the SAP HANA database over Secure Sockets Layer (SSL).\n"},"userName":{"type":"string","description":"The username of the SYSTEMDB database.\n"},"validateCertificate":{"type":"boolean","description":"Specifies whether to verify the SSL certificate of the SAP HANA database.\n"},"vaultId":{"type":"string","description":"The ID of the backup vault.\n"}},"required":["alertSetting","hanaInstanceId","resourceGroupId","status","vaultId"],"inputProperties":{"alertSetting":{"type":"string","description":"The alert settings. Valid value: `INHERITED`, which indicates that the backup client sends alert notifications in the same way as the backup vault.\n"},"ecsInstanceIds":{"type":"array","items":{"type":"string"},"description":"The IDs of ECS instances that host the SAP HANA instance to be registered. HBR installs backup clients on the specified ECS instances.\n"},"hanaName":{"type":"string","description":"The name of the SAP HANA instance.\n"},"host":{"type":"string","description":"The private or internal IP address of the host where the primary node of the SAP HANA instance resides.\n"},"instanceNumber":{"type":"integer","description":"The instance number of the SAP HANA system.\n"},"password":{"type":"string","description":"The password that is used to connect with the SAP HANA database.\n","secret":true,"willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sid":{"type":"string","description":"The security identifier (SID) of the SAP HANA database.\n","willReplaceOnChanges":true},"useSsl":{"type":"boolean","description":"Specifies whether to connect with the SAP HANA database over Secure Sockets Layer (SSL).\n"},"userName":{"type":"string","description":"The username of the SYSTEMDB database.\n"},"validateCertificate":{"type":"boolean","description":"Specifies whether to verify the SSL certificate of the SAP HANA database.\n"},"vaultId":{"type":"string","description":"The ID of the backup vault.\n","willReplaceOnChanges":true}},"requiredInputs":["vaultId"],"stateInputs":{"description":"Input properties used for looking up and filtering HanaInstance resources.\n","properties":{"alertSetting":{"type":"string","description":"The alert settings. Valid value: `INHERITED`, which indicates that the backup client sends alert notifications in the same way as the backup vault.\n"},"ecsInstanceIds":{"type":"array","items":{"type":"string"},"description":"The IDs of ECS instances that host the SAP HANA instance to be registered. HBR installs backup clients on the specified ECS instances.\n"},"hanaInstanceId":{"type":"string","description":"The id of the Hana Instance.\n"},"hanaName":{"type":"string","description":"The name of the SAP HANA instance.\n"},"host":{"type":"string","description":"The private or internal IP address of the host where the primary node of the SAP HANA instance resides.\n"},"instanceNumber":{"type":"integer","description":"The instance number of the SAP HANA system.\n"},"password":{"type":"string","description":"The password that is used to connect with the SAP HANA database.\n","secret":true,"willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sid":{"type":"string","description":"The security identifier (SID) of the SAP HANA database.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"},"useSsl":{"type":"boolean","description":"Specifies whether to connect with the SAP HANA database over Secure Sockets Layer (SSL).\n"},"userName":{"type":"string","description":"The username of the SYSTEMDB database.\n"},"validateCertificate":{"type":"boolean","description":"Specifies whether to verify the SSL certificate of the SAP HANA database.\n"},"vaultId":{"type":"string","description":"The ID of the backup vault.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:hbr/nasBackupPlan:NasBackupPlan":{"description":"Provides a HBR Nas Backup Plan resource.\n\nFor information about HBR Nas Backup Plan and how to use it, see [What is Nas Backup Plan](https://www.alibabacloud.com/help/doc-detail/132248.htm).\n\n\u003e **NOTE:** Available since v1.132.0.\n\n\u003e **NOTE:** Deprecated since v1.249.0.\n\n\u003e **DEPRECATED:** This resource has been deprecated from version `1.249.0`. Please use new resource\u003cspan pulumi-lang-nodejs=\" alicloud.hbr.Policy \" pulumi-lang-dotnet=\" alicloud.hbr.Policy \" pulumi-lang-go=\" hbr.Policy \" pulumi-lang-python=\" hbr.Policy \" pulumi-lang-yaml=\" alicloud.hbr.Policy \" pulumi-lang-java=\" alicloud.hbr.Policy \"\u003e alicloud.hbr.Policy \u003c/span\u003eand alicloud_hbr_policy_binding.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultVault = new alicloud.hbr.Vault(\"default\", {vaultName: `terraform-example-${_default.result}`});\nconst defaultFileSystem = new alicloud.nas.FileSystem(\"default\", {\n    protocolType: \"NFS\",\n    storageType: \"Performance\",\n    description: \"terraform-example\",\n    encryptType: 1,\n});\nconst defaultNasBackupPlan = new alicloud.hbr.NasBackupPlan(\"default\", {\n    nasBackupPlanName: \"terraform-example\",\n    fileSystemId: defaultFileSystem.id,\n    schedule: \"I|1602673264|PT2H\",\n    backupType: \"COMPLETE\",\n    vaultId: defaultVault.id,\n    retention: \"2\",\n    paths: [\"/\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_vault = alicloud.hbr.Vault(\"default\", vault_name=f\"terraform-example-{default['result']}\")\ndefault_file_system = alicloud.nas.FileSystem(\"default\",\n    protocol_type=\"NFS\",\n    storage_type=\"Performance\",\n    description=\"terraform-example\",\n    encrypt_type=1)\ndefault_nas_backup_plan = alicloud.hbr.NasBackupPlan(\"default\",\n    nas_backup_plan_name=\"terraform-example\",\n    file_system_id=default_file_system.id,\n    schedule=\"I|1602673264|PT2H\",\n    backup_type=\"COMPLETE\",\n    vault_id=default_vault.id,\n    retention=\"2\",\n    paths=[\"/\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultVault = new AliCloud.Hbr.Vault(\"default\", new()\n    {\n        VaultName = $\"terraform-example-{@default.Result}\",\n    });\n\n    var defaultFileSystem = new AliCloud.Nas.FileSystem(\"default\", new()\n    {\n        ProtocolType = \"NFS\",\n        StorageType = \"Performance\",\n        Description = \"terraform-example\",\n        EncryptType = 1,\n    });\n\n    var defaultNasBackupPlan = new AliCloud.Hbr.NasBackupPlan(\"default\", new()\n    {\n        NasBackupPlanName = \"terraform-example\",\n        FileSystemId = defaultFileSystem.Id,\n        Schedule = \"I|1602673264|PT2H\",\n        BackupType = \"COMPLETE\",\n        VaultId = defaultVault.Id,\n        Retention = \"2\",\n        Paths = new[]\n        {\n            \"/\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVault, err := hbr.NewVault(ctx, \"default\", \u0026hbr.VaultArgs{\n\t\t\tVaultName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultFileSystem, err := nas.NewFileSystem(ctx, \"default\", \u0026nas.FileSystemArgs{\n\t\t\tProtocolType: pulumi.String(\"NFS\"),\n\t\t\tStorageType:  pulumi.String(\"Performance\"),\n\t\t\tDescription:  pulumi.String(\"terraform-example\"),\n\t\t\tEncryptType:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.NewNasBackupPlan(ctx, \"default\", \u0026hbr.NasBackupPlanArgs{\n\t\t\tNasBackupPlanName: pulumi.String(\"terraform-example\"),\n\t\t\tFileSystemId:      defaultFileSystem.ID(),\n\t\t\tSchedule:          pulumi.String(\"I|1602673264|PT2H\"),\n\t\t\tBackupType:        pulumi.String(\"COMPLETE\"),\n\t\t\tVaultId:           defaultVault.ID(),\n\t\t\tRetention:         pulumi.String(\"2\"),\n\t\t\tPaths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"/\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.hbr.Vault;\nimport com.pulumi.alicloud.hbr.VaultArgs;\nimport com.pulumi.alicloud.nas.FileSystem;\nimport com.pulumi.alicloud.nas.FileSystemArgs;\nimport com.pulumi.alicloud.hbr.NasBackupPlan;\nimport com.pulumi.alicloud.hbr.NasBackupPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultVault = new Vault(\"defaultVault\", VaultArgs.builder()\n            .vaultName(String.format(\"terraform-example-%s\", default_.result()))\n            .build());\n\n        var defaultFileSystem = new FileSystem(\"defaultFileSystem\", FileSystemArgs.builder()\n            .protocolType(\"NFS\")\n            .storageType(\"Performance\")\n            .description(\"terraform-example\")\n            .encryptType(1)\n            .build());\n\n        var defaultNasBackupPlan = new NasBackupPlan(\"defaultNasBackupPlan\", NasBackupPlanArgs.builder()\n            .nasBackupPlanName(\"terraform-example\")\n            .fileSystemId(defaultFileSystem.id())\n            .schedule(\"I|1602673264|PT2H\")\n            .backupType(\"COMPLETE\")\n            .vaultId(defaultVault.id())\n            .retention(\"2\")\n            .paths(\"/\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultVault:\n    type: alicloud:hbr:Vault\n    name: default\n    properties:\n      vaultName: terraform-example-${default.result}\n  defaultFileSystem:\n    type: alicloud:nas:FileSystem\n    name: default\n    properties:\n      protocolType: NFS\n      storageType: Performance\n      description: terraform-example\n      encryptType: '1'\n  defaultNasBackupPlan:\n    type: alicloud:hbr:NasBackupPlan\n    name: default\n    properties:\n      nasBackupPlanName: terraform-example\n      fileSystemId: ${defaultFileSystem.id}\n      schedule: I|1602673264|PT2H\n      backupType: COMPLETE\n      vaultId: ${defaultVault.id}\n      retention: '2'\n      paths:\n        - /\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nHBR Nas Backup Plan can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:hbr/nasBackupPlan:NasBackupPlan example \u003cid\u003e\n```\n\n","properties":{"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`.\n"},"createTime":{"type":"string","description":"This field has been deprecated from provider version 1.153.0+. The creation time of NAS file system. **Note** The time format of the API adopts the ISO 8601, such as `2021-07-09T15:45:30CST` or `2021-07-09T07:45:30Z`.\n","deprecationMessage":"Field 'create_time' has been deprecated from provider version 1.153.0."},"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n\n\u003e **Note** \u003cspan pulumi-lang-nodejs=\"`alicloud.hbr.NasBackupPlan`\" pulumi-lang-dotnet=\"`alicloud.hbr.NasBackupPlan`\" pulumi-lang-go=\"`hbr.NasBackupPlan`\" pulumi-lang-python=\"`hbr.NasBackupPlan`\" pulumi-lang-yaml=\"`alicloud.hbr.NasBackupPlan`\" pulumi-lang-java=\"`alicloud.hbr.NasBackupPlan`\"\u003e`alicloud.hbr.NasBackupPlan`\u003c/span\u003e depends on the \u003cspan pulumi-lang-nodejs=\"`alicloud.nas.FileSystem`\" pulumi-lang-dotnet=\"`alicloud.nas.FileSystem`\" pulumi-lang-go=\"`nas.FileSystem`\" pulumi-lang-python=\"`nas.FileSystem`\" pulumi-lang-yaml=\"`alicloud.nas.FileSystem`\" pulumi-lang-java=\"`alicloud.nas.FileSystem`\"\u003e`alicloud.nas.FileSystem`\u003c/span\u003e and creates a mount point on the file system. If this dependency has not declared, the file system may not be deleted correctly.\n"},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n"},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n"},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"fileSystemId":{"type":"string","description":"The File System ID of Nas.\n"},"nasBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"options":{"type":"string","description":"This parameter specifies whether to use Windows VSS to define a backup path.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"List of backup path. Up to 65536 characters. e.g.`[\"/home\", \"/var\"]`. **Note** You should at least specify a backup path, empty array not allowed here.\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`. It means to execute a backup task every `{interval}` starting from `{startTime}`. The backup task for the elapsed time will not be compensated. If the last backup task has not completed yet, the next backup task will not be triggered.\n* `startTime` Backup start time, UNIX time seconds.\n"},"vaultId":{"type":"string","description":"The ID of Backup vault.\n"}},"required":["backupType","createTime","crossAccountType","disabled","fileSystemId","nasBackupPlanName","paths","retention","schedule","vaultId"],"inputProperties":{"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"This field has been deprecated from provider version 1.153.0+. The creation time of NAS file system. **Note** The time format of the API adopts the ISO 8601, such as `2021-07-09T15:45:30CST` or `2021-07-09T07:45:30Z`.\n","deprecationMessage":"Field 'create_time' has been deprecated from provider version 1.153.0."},"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n\n\u003e **Note** \u003cspan pulumi-lang-nodejs=\"`alicloud.hbr.NasBackupPlan`\" pulumi-lang-dotnet=\"`alicloud.hbr.NasBackupPlan`\" pulumi-lang-go=\"`hbr.NasBackupPlan`\" pulumi-lang-python=\"`hbr.NasBackupPlan`\" pulumi-lang-yaml=\"`alicloud.hbr.NasBackupPlan`\" pulumi-lang-java=\"`alicloud.hbr.NasBackupPlan`\"\u003e`alicloud.hbr.NasBackupPlan`\u003c/span\u003e depends on the \u003cspan pulumi-lang-nodejs=\"`alicloud.nas.FileSystem`\" pulumi-lang-dotnet=\"`alicloud.nas.FileSystem`\" pulumi-lang-go=\"`nas.FileSystem`\" pulumi-lang-python=\"`nas.FileSystem`\" pulumi-lang-yaml=\"`alicloud.nas.FileSystem`\" pulumi-lang-java=\"`alicloud.nas.FileSystem`\"\u003e`alicloud.nas.FileSystem`\u003c/span\u003e and creates a mount point on the file system. If this dependency has not declared, the file system may not be deleted correctly.\n","willReplaceOnChanges":true},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n","willReplaceOnChanges":true},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n","willReplaceOnChanges":true},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"fileSystemId":{"type":"string","description":"The File System ID of Nas.\n","willReplaceOnChanges":true},"nasBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"options":{"type":"string","description":"This parameter specifies whether to use Windows VSS to define a backup path.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"List of backup path. Up to 65536 characters. e.g.`[\"/home\", \"/var\"]`. **Note** You should at least specify a backup path, empty array not allowed here.\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`. It means to execute a backup task every `{interval}` starting from `{startTime}`. The backup task for the elapsed time will not be compensated. If the last backup task has not completed yet, the next backup task will not be triggered.\n* `startTime` Backup start time, UNIX time seconds.\n"},"vaultId":{"type":"string","description":"The ID of Backup vault.\n","willReplaceOnChanges":true}},"requiredInputs":["backupType","fileSystemId","nasBackupPlanName","paths","retention","schedule","vaultId"],"stateInputs":{"description":"Input properties used for looking up and filtering NasBackupPlan resources.\n","properties":{"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"This field has been deprecated from provider version 1.153.0+. The creation time of NAS file system. **Note** The time format of the API adopts the ISO 8601, such as `2021-07-09T15:45:30CST` or `2021-07-09T07:45:30Z`.\n","deprecationMessage":"Field 'create_time' has been deprecated from provider version 1.153.0."},"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n\n\u003e **Note** \u003cspan pulumi-lang-nodejs=\"`alicloud.hbr.NasBackupPlan`\" pulumi-lang-dotnet=\"`alicloud.hbr.NasBackupPlan`\" pulumi-lang-go=\"`hbr.NasBackupPlan`\" pulumi-lang-python=\"`hbr.NasBackupPlan`\" pulumi-lang-yaml=\"`alicloud.hbr.NasBackupPlan`\" pulumi-lang-java=\"`alicloud.hbr.NasBackupPlan`\"\u003e`alicloud.hbr.NasBackupPlan`\u003c/span\u003e depends on the \u003cspan pulumi-lang-nodejs=\"`alicloud.nas.FileSystem`\" pulumi-lang-dotnet=\"`alicloud.nas.FileSystem`\" pulumi-lang-go=\"`nas.FileSystem`\" pulumi-lang-python=\"`nas.FileSystem`\" pulumi-lang-yaml=\"`alicloud.nas.FileSystem`\" pulumi-lang-java=\"`alicloud.nas.FileSystem`\"\u003e`alicloud.nas.FileSystem`\u003c/span\u003e and creates a mount point on the file system. If this dependency has not declared, the file system may not be deleted correctly.\n","willReplaceOnChanges":true},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n","willReplaceOnChanges":true},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n","willReplaceOnChanges":true},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"fileSystemId":{"type":"string","description":"The File System ID of Nas.\n","willReplaceOnChanges":true},"nasBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"options":{"type":"string","description":"This parameter specifies whether to use Windows VSS to define a backup path.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"List of backup path. Up to 65536 characters. e.g.`[\"/home\", \"/var\"]`. **Note** You should at least specify a backup path, empty array not allowed here.\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`. It means to execute a backup task every `{interval}` starting from `{startTime}`. The backup task for the elapsed time will not be compensated. If the last backup task has not completed yet, the next backup task will not be triggered.\n* `startTime` Backup start time, UNIX time seconds.\n"},"vaultId":{"type":"string","description":"The ID of Backup vault.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:hbr/ossBackupPlan:OssBackupPlan":{"description":"Provides a HBR Oss Backup Plan resource.\n\nFor information about HBR Oss Backup Plan and how to use it, see [What is Oss Backup Plan](https://www.alibabacloud.com/help/doc-detail/130040.htm).\n\n\u003e **NOTE:** Available since v1.131.0.\n\n\u003e **NOTE:** Deprecated since v1.249.0.\n\n\u003e **DEPRECATED:** This resource has been deprecated from version `1.249.0`. Please use new resource\u003cspan pulumi-lang-nodejs=\" alicloud.hbr.Policy \" pulumi-lang-dotnet=\" alicloud.hbr.Policy \" pulumi-lang-go=\" hbr.Policy \" pulumi-lang-python=\" hbr.Policy \" pulumi-lang-yaml=\" alicloud.hbr.Policy \" pulumi-lang-java=\" alicloud.hbr.Policy \"\u003e alicloud.hbr.Policy \u003c/span\u003eand alicloud_hbr_policy_binding.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultVault = new alicloud.hbr.Vault(\"default\", {vaultName: `terraform-example-${_default.result}`});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: `terraform-example-${_default.result}`});\nconst defaultOssBackupPlan = new alicloud.hbr.OssBackupPlan(\"default\", {\n    ossBackupPlanName: \"terraform-example\",\n    prefix: \"/example\",\n    bucket: defaultBucket.bucket,\n    vaultId: defaultVault.id,\n    schedule: \"I|1602673264|PT2H\",\n    backupType: \"COMPLETE\",\n    retention: \"2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_vault = alicloud.hbr.Vault(\"default\", vault_name=f\"terraform-example-{default['result']}\")\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=f\"terraform-example-{default['result']}\")\ndefault_oss_backup_plan = alicloud.hbr.OssBackupPlan(\"default\",\n    oss_backup_plan_name=\"terraform-example\",\n    prefix=\"/example\",\n    bucket=default_bucket.bucket,\n    vault_id=default_vault.id,\n    schedule=\"I|1602673264|PT2H\",\n    backup_type=\"COMPLETE\",\n    retention=\"2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultVault = new AliCloud.Hbr.Vault(\"default\", new()\n    {\n        VaultName = $\"terraform-example-{@default.Result}\",\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = $\"terraform-example-{@default.Result}\",\n    });\n\n    var defaultOssBackupPlan = new AliCloud.Hbr.OssBackupPlan(\"default\", new()\n    {\n        OssBackupPlanName = \"terraform-example\",\n        Prefix = \"/example\",\n        Bucket = defaultBucket.BucketName,\n        VaultId = defaultVault.Id,\n        Schedule = \"I|1602673264|PT2H\",\n        BackupType = \"COMPLETE\",\n        Retention = \"2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVault, err := hbr.NewVault(ctx, \"default\", \u0026hbr.VaultArgs{\n\t\t\tVaultName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.NewOssBackupPlan(ctx, \"default\", \u0026hbr.OssBackupPlanArgs{\n\t\t\tOssBackupPlanName: pulumi.String(\"terraform-example\"),\n\t\t\tPrefix:            pulumi.String(\"/example\"),\n\t\t\tBucket:            defaultBucket.Bucket,\n\t\t\tVaultId:           defaultVault.ID(),\n\t\t\tSchedule:          pulumi.String(\"I|1602673264|PT2H\"),\n\t\t\tBackupType:        pulumi.String(\"COMPLETE\"),\n\t\t\tRetention:         pulumi.String(\"2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.hbr.Vault;\nimport com.pulumi.alicloud.hbr.VaultArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.hbr.OssBackupPlan;\nimport com.pulumi.alicloud.hbr.OssBackupPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultVault = new Vault(\"defaultVault\", VaultArgs.builder()\n            .vaultName(String.format(\"terraform-example-%s\", default_.result()))\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-%s\", default_.result()))\n            .build());\n\n        var defaultOssBackupPlan = new OssBackupPlan(\"defaultOssBackupPlan\", OssBackupPlanArgs.builder()\n            .ossBackupPlanName(\"terraform-example\")\n            .prefix(\"/example\")\n            .bucket(defaultBucket.bucket())\n            .vaultId(defaultVault.id())\n            .schedule(\"I|1602673264|PT2H\")\n            .backupType(\"COMPLETE\")\n            .retention(\"2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  defaultVault:\n    type: alicloud:hbr:Vault\n    name: default\n    properties:\n      vaultName: terraform-example-${default.result}\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket: terraform-example-${default.result}\n  defaultOssBackupPlan:\n    type: alicloud:hbr:OssBackupPlan\n    name: default\n    properties:\n      ossBackupPlanName: terraform-example\n      prefix: /example\n      bucket: ${defaultBucket.bucket}\n      vaultId: ${defaultVault.id}\n      schedule: I|1602673264|PT2H\n      backupType: COMPLETE\n      retention: '2'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nHBR Oss Backup Plan can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:hbr/ossBackupPlan:OssBackupPlan example \u003cid\u003e\n```\n\n","properties":{"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`.\n"},"bucket":{"type":"string","description":"The name of OSS bucket.\n"},"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n"},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n"},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n"},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ossBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"prefix":{"type":"string","description":"Backup prefix. Once specified, only objects with matching prefixes will be backed up.\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`. It means to execute a backup task every `{interval}` starting from `{startTime}`. The backup task for the elapsed time will not be compensated. If the last backup task has not completed yet, the next backup task will not be triggered.\n* `startTime` Backup start time, UNIX time seconds.\n"},"vaultId":{"type":"string","description":"The ID of backup vault.\n"}},"required":["backupType","bucket","crossAccountType","disabled","ossBackupPlanName","retention","schedule","vaultId"],"inputProperties":{"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`.\n","willReplaceOnChanges":true},"bucket":{"type":"string","description":"The name of OSS bucket.\n","willReplaceOnChanges":true},"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n","willReplaceOnChanges":true},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n","willReplaceOnChanges":true},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n","willReplaceOnChanges":true},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ossBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"prefix":{"type":"string","description":"Backup prefix. Once specified, only objects with matching prefixes will be backed up.\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`. It means to execute a backup task every `{interval}` starting from `{startTime}`. The backup task for the elapsed time will not be compensated. If the last backup task has not completed yet, the next backup task will not be triggered.\n* `startTime` Backup start time, UNIX time seconds.\n"},"vaultId":{"type":"string","description":"The ID of backup vault.\n","willReplaceOnChanges":true}},"requiredInputs":["backupType","bucket","ossBackupPlanName","retention","schedule","vaultId"],"stateInputs":{"description":"Input properties used for looking up and filtering OssBackupPlan resources.\n","properties":{"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`.\n","willReplaceOnChanges":true},"bucket":{"type":"string","description":"The name of OSS bucket.\n","willReplaceOnChanges":true},"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n","willReplaceOnChanges":true},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n","willReplaceOnChanges":true},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n","willReplaceOnChanges":true},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ossBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"prefix":{"type":"string","description":"Backup prefix. Once specified, only objects with matching prefixes will be backed up.\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`. It means to execute a backup task every `{interval}` starting from `{startTime}`. The backup task for the elapsed time will not be compensated. If the last backup task has not completed yet, the next backup task will not be triggered.\n* `startTime` Backup start time, UNIX time seconds.\n"},"vaultId":{"type":"string","description":"The ID of backup vault.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:hbr/otsBackupPlan:OtsBackupPlan":{"description":"Provides a HBR Ots Backup Plan resource.\n\nFor information about HBR Ots Backup Plan and how to use it, see [What is Ots Backup Plan](https://www.alibabacloud.com/help/en/hybrid-backup-recovery/latest/overview).\n\n\u003e **NOTE:** Available since v1.163.0.\n\n\u003e **NOTE:** Deprecated since v1.249.0.\n\n\u003e **DEPRECATED:** This resource has been deprecated from version `1.249.0`. Please use new resource\u003cspan pulumi-lang-nodejs=\" alicloud.hbr.Policy \" pulumi-lang-dotnet=\" alicloud.hbr.Policy \" pulumi-lang-go=\" hbr.Policy \" pulumi-lang-python=\" hbr.Policy \" pulumi-lang-yaml=\" alicloud.hbr.Policy \" pulumi-lang-java=\" alicloud.hbr.Policy \"\u003e alicloud.hbr.Policy \u003c/span\u003eand alicloud_hbr_policy_binding.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultVault = new alicloud.hbr.Vault(\"default\", {\n    vaultName: `terraform-example-${defaultInteger.result}`,\n    vaultType: \"STANDARD\",\n});\nconst defaultInstance = new alicloud.ots.Instance(\"default\", {\n    name: `Example-${defaultInteger.result}`,\n    description: \"terraform-example\",\n    accessedBy: \"Any\",\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst defaultTable = new alicloud.ots.Table(\"default\", {\n    instanceName: defaultInstance.name,\n    tableName: \"terraform_example\",\n    primaryKeys: [{\n        name: \"pk1\",\n        type: \"Integer\",\n    }],\n    timeToLive: -1,\n    maxVersion: 1,\n    deviationCellVersionInSec: \"1\",\n});\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    name: \"hbrexamplerole\",\n    document: `\\\\t\\\\t{\n\\\\t\\\\t\\\\t\\\\\"Statement\\\\\": [\n\\\\t\\\\t\\\\t{\n\\\\t\\\\t\\\\t\\\\t\\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n\\\\t\\\\t\\\\t\\\\t\\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n\\\\t\\\\t\\\\t\\\\t\\\\\"Principal\\\\\": {\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\"Service\\\\\": [\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\"crossbackup.hbr.aliyuncs.com\\\\\"\n\\\\t\\\\t\\\\t\\\\t\\\\t]\n\\\\t\\\\t\\\\t\\\\t}\n\\\\t\\\\t\\\\t}\n\\\\t\\\\t\\\\t],\n  \\\\t\\\\t\\\\t\\\\\"Version\\\\\": \\\\\"1\\\\\"\n\\\\t\\\\t}\n`,\n    force: true,\n});\nconst _default = alicloud.getAccount({});\nconst example = new alicloud.hbr.OtsBackupPlan(\"example\", {\n    otsBackupPlanName: `terraform-example-${defaultInteger.result}`,\n    vaultId: defaultVault.id,\n    backupType: \"COMPLETE\",\n    retention: \"1\",\n    instanceName: defaultInstance.name,\n    crossAccountType: \"SELF_ACCOUNT\",\n    crossAccountUserId: _default.then(_default =\u003e _default.id),\n    crossAccountRoleName: defaultRole.id,\n    otsDetails: [{\n        tableNames: [defaultTable.tableName],\n    }],\n    rules: [{\n        schedule: \"I|1602673264|PT2H\",\n        retention: \"1\",\n        disabled: false,\n        ruleName: \"terraform-example\",\n        backupType: \"COMPLETE\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_vault = alicloud.hbr.Vault(\"default\",\n    vault_name=f\"terraform-example-{default_integer['result']}\",\n    vault_type=\"STANDARD\")\ndefault_instance = alicloud.ots.Instance(\"default\",\n    name=f\"Example-{default_integer['result']}\",\n    description=\"terraform-example\",\n    accessed_by=\"Any\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\ndefault_table = alicloud.ots.Table(\"default\",\n    instance_name=default_instance.name,\n    table_name=\"terraform_example\",\n    primary_keys=[{\n        \"name\": \"pk1\",\n        \"type\": \"Integer\",\n    }],\n    time_to_live=-1,\n    max_version=1,\n    deviation_cell_version_in_sec=\"1\")\ndefault_role = alicloud.ram.Role(\"default\",\n    name=\"hbrexamplerole\",\n    document=\"\"\"\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [\n\\t\\t\\t{\n\\t\\t\\t\\t\\\"Action\\\": \\\"sts:AssumeRole\\\",\n\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\\"Principal\\\": {\n\\t\\t\\t\\t\\t\\\"Service\\\": [\n\\t\\t\\t\\t\\t\\t\\\"crossbackup.hbr.aliyuncs.com\\\"\n\\t\\t\\t\\t\\t]\n\\t\\t\\t\\t}\n\\t\\t\\t}\n\\t\\t\\t],\n  \\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n\"\"\",\n    force=True)\ndefault = alicloud.get_account()\nexample = alicloud.hbr.OtsBackupPlan(\"example\",\n    ots_backup_plan_name=f\"terraform-example-{default_integer['result']}\",\n    vault_id=default_vault.id,\n    backup_type=\"COMPLETE\",\n    retention=\"1\",\n    instance_name=default_instance.name,\n    cross_account_type=\"SELF_ACCOUNT\",\n    cross_account_user_id=default.id,\n    cross_account_role_name=default_role.id,\n    ots_details=[{\n        \"table_names\": [default_table.table_name],\n    }],\n    rules=[{\n        \"schedule\": \"I|1602673264|PT2H\",\n        \"retention\": \"1\",\n        \"disabled\": False,\n        \"rule_name\": \"terraform-example\",\n        \"backup_type\": \"COMPLETE\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultVault = new AliCloud.Hbr.Vault(\"default\", new()\n    {\n        VaultName = $\"terraform-example-{defaultInteger.Result}\",\n        VaultType = \"STANDARD\",\n    });\n\n    var defaultInstance = new AliCloud.Ots.Instance(\"default\", new()\n    {\n        Name = $\"Example-{defaultInteger.Result}\",\n        Description = \"terraform-example\",\n        AccessedBy = \"Any\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var defaultTable = new AliCloud.Ots.Table(\"default\", new()\n    {\n        InstanceName = defaultInstance.Name,\n        TableName = \"terraform_example\",\n        PrimaryKeys = new[]\n        {\n            new AliCloud.Ots.Inputs.TablePrimaryKeyArgs\n            {\n                Name = \"pk1\",\n                Type = \"Integer\",\n            },\n        },\n        TimeToLive = -1,\n        MaxVersion = 1,\n        DeviationCellVersionInSec = \"1\",\n    });\n\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = \"hbrexamplerole\",\n        Document = @\"\\t\\t{\n\\t\\t\\t\\\"\"Statement\\\"\": [\n\\t\\t\\t{\n\\t\\t\\t\\t\\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n\\t\\t\\t\\t\\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n\\t\\t\\t\\t\\\"\"Principal\\\"\": {\n\\t\\t\\t\\t\\t\\\"\"Service\\\"\": [\n\\t\\t\\t\\t\\t\\t\\\"\"crossbackup.hbr.aliyuncs.com\\\"\"\n\\t\\t\\t\\t\\t]\n\\t\\t\\t\\t}\n\\t\\t\\t}\n\\t\\t\\t],\n  \\t\\t\\t\\\"\"Version\\\"\": \\\"\"1\\\"\"\n\\t\\t}\n\",\n        Force = true,\n    });\n\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var example = new AliCloud.Hbr.OtsBackupPlan(\"example\", new()\n    {\n        OtsBackupPlanName = $\"terraform-example-{defaultInteger.Result}\",\n        VaultId = defaultVault.Id,\n        BackupType = \"COMPLETE\",\n        Retention = \"1\",\n        InstanceName = defaultInstance.Name,\n        CrossAccountType = \"SELF_ACCOUNT\",\n        CrossAccountUserId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        CrossAccountRoleName = defaultRole.Id,\n        OtsDetails = new[]\n        {\n            new AliCloud.Hbr.Inputs.OtsBackupPlanOtsDetailArgs\n            {\n                TableNames = new[]\n                {\n                    defaultTable.TableName,\n                },\n            },\n        },\n        Rules = new[]\n        {\n            new AliCloud.Hbr.Inputs.OtsBackupPlanRuleArgs\n            {\n                Schedule = \"I|1602673264|PT2H\",\n                Retention = \"1\",\n                Disabled = false,\n                RuleName = \"terraform-example\",\n                BackupType = \"COMPLETE\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVault, err := hbr.NewVault(ctx, \"default\", \u0026hbr.VaultArgs{\n\t\t\tVaultName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t\tVaultType: pulumi.String(\"STANDARD\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ots.NewInstance(ctx, \"default\", \u0026ots.InstanceArgs{\n\t\t\tName:        pulumi.Sprintf(\"Example-%v\", defaultInteger.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t\tAccessedBy:  pulumi.String(\"Any\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTable, err := ots.NewTable(ctx, \"default\", \u0026ots.TableArgs{\n\t\t\tInstanceName: defaultInstance.Name,\n\t\t\tTableName:    pulumi.String(\"terraform_example\"),\n\t\t\tPrimaryKeys: ots.TablePrimaryKeyArray{\n\t\t\t\t\u0026ots.TablePrimaryKeyArgs{\n\t\t\t\t\tName: pulumi.String(\"pk1\"),\n\t\t\t\t\tType: pulumi.String(\"Integer\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTimeToLive:                pulumi.Int(-1),\n\t\t\tMaxVersion:                pulumi.Int(1),\n\t\t\tDeviationCellVersionInSec: pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.String(\"hbrexamplerole\"),\n\t\t\tDocument: pulumi.String(`\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [\n\\t\\t\\t{\n\\t\\t\\t\\t\\\"Action\\\": \\\"sts:AssumeRole\\\",\n\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\\"Principal\\\": {\n\\t\\t\\t\\t\\t\\\"Service\\\": [\n\\t\\t\\t\\t\\t\\t\\\"crossbackup.hbr.aliyuncs.com\\\"\n\\t\\t\\t\\t\\t]\n\\t\\t\\t\\t}\n\\t\\t\\t}\n\\t\\t\\t],\n  \\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n`),\n\t\t\tForce: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.NewOtsBackupPlan(ctx, \"example\", \u0026hbr.OtsBackupPlanArgs{\n\t\t\tOtsBackupPlanName:    pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t\tVaultId:              defaultVault.ID(),\n\t\t\tBackupType:           pulumi.String(\"COMPLETE\"),\n\t\t\tRetention:            pulumi.String(\"1\"),\n\t\t\tInstanceName:         defaultInstance.Name,\n\t\t\tCrossAccountType:     pulumi.String(\"SELF_ACCOUNT\"),\n\t\t\tCrossAccountUserId:   pulumi.String(_default.Id),\n\t\t\tCrossAccountRoleName: defaultRole.ID(),\n\t\t\tOtsDetails: hbr.OtsBackupPlanOtsDetailArray{\n\t\t\t\t\u0026hbr.OtsBackupPlanOtsDetailArgs{\n\t\t\t\t\tTableNames: pulumi.StringArray{\n\t\t\t\t\t\tdefaultTable.TableName,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tRules: hbr.OtsBackupPlanRuleArray{\n\t\t\t\t\u0026hbr.OtsBackupPlanRuleArgs{\n\t\t\t\t\tSchedule:   pulumi.String(\"I|1602673264|PT2H\"),\n\t\t\t\t\tRetention:  pulumi.String(\"1\"),\n\t\t\t\t\tDisabled:   pulumi.Bool(false),\n\t\t\t\t\tRuleName:   pulumi.String(\"terraform-example\"),\n\t\t\t\t\tBackupType: pulumi.String(\"COMPLETE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.hbr.Vault;\nimport com.pulumi.alicloud.hbr.VaultArgs;\nimport com.pulumi.alicloud.ots.Instance;\nimport com.pulumi.alicloud.ots.InstanceArgs;\nimport com.pulumi.alicloud.ots.Table;\nimport com.pulumi.alicloud.ots.TableArgs;\nimport com.pulumi.alicloud.ots.inputs.TablePrimaryKeyArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.hbr.OtsBackupPlan;\nimport com.pulumi.alicloud.hbr.OtsBackupPlanArgs;\nimport com.pulumi.alicloud.hbr.inputs.OtsBackupPlanOtsDetailArgs;\nimport com.pulumi.alicloud.hbr.inputs.OtsBackupPlanRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultVault = new Vault(\"defaultVault\", VaultArgs.builder()\n            .vaultName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .vaultType(\"STANDARD\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .name(String.format(\"Example-%s\", defaultInteger.result()))\n            .description(\"terraform-example\")\n            .accessedBy(\"Any\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var defaultTable = new Table(\"defaultTable\", TableArgs.builder()\n            .instanceName(defaultInstance.name())\n            .tableName(\"terraform_example\")\n            .primaryKeys(TablePrimaryKeyArgs.builder()\n                .name(\"pk1\")\n                .type(\"Integer\")\n                .build())\n            .timeToLive(-1)\n            .maxVersion(1)\n            .deviationCellVersionInSec(\"1\")\n            .build());\n\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .name(\"hbrexamplerole\")\n            .document(\"\"\"\n\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [\n\\t\\t\\t{\n\\t\\t\\t\\t\\\"Action\\\": \\\"sts:AssumeRole\\\",\n\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\\"Principal\\\": {\n\\t\\t\\t\\t\\t\\\"Service\\\": [\n\\t\\t\\t\\t\\t\\t\\\"crossbackup.hbr.aliyuncs.com\\\"\n\\t\\t\\t\\t\\t]\n\\t\\t\\t\\t}\n\\t\\t\\t}\n\\t\\t\\t],\n  \\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n            \"\"\")\n            .force(true)\n            .build());\n\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var example = new OtsBackupPlan(\"example\", OtsBackupPlanArgs.builder()\n            .otsBackupPlanName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .vaultId(defaultVault.id())\n            .backupType(\"COMPLETE\")\n            .retention(\"1\")\n            .instanceName(defaultInstance.name())\n            .crossAccountType(\"SELF_ACCOUNT\")\n            .crossAccountUserId(default_.id())\n            .crossAccountRoleName(defaultRole.id())\n            .otsDetails(OtsBackupPlanOtsDetailArgs.builder()\n                .tableNames(defaultTable.tableName())\n                .build())\n            .rules(OtsBackupPlanRuleArgs.builder()\n                .schedule(\"I|1602673264|PT2H\")\n                .retention(\"1\")\n                .disabled(false)\n                .ruleName(\"terraform-example\")\n                .backupType(\"COMPLETE\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultVault:\n    type: alicloud:hbr:Vault\n    name: default\n    properties:\n      vaultName: terraform-example-${defaultInteger.result}\n      vaultType: STANDARD\n  defaultInstance:\n    type: alicloud:ots:Instance\n    name: default\n    properties:\n      name: Example-${defaultInteger.result}\n      description: terraform-example\n      accessedBy: Any\n      tags:\n        Created: TF\n        For: example\n  defaultTable:\n    type: alicloud:ots:Table\n    name: default\n    properties:\n      instanceName: ${defaultInstance.name}\n      tableName: terraform_example\n      primaryKeys:\n        - name: pk1\n          type: Integer\n      timeToLive: -1\n      maxVersion: 1\n      deviationCellVersionInSec: 1\n  defaultRole:\n    type: alicloud:ram:Role\n    name: default\n    properties:\n      name: hbrexamplerole\n      document: |\n        \\t\\t{\n        \\t\\t\\t\\\"Statement\\\": [\n        \\t\\t\\t{\n        \\t\\t\\t\\t\\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n        \\t\\t\\t\\t\\\"Principal\\\": {\n        \\t\\t\\t\\t\\t\\\"Service\\\": [\n        \\t\\t\\t\\t\\t\\t\\\"crossbackup.hbr.aliyuncs.com\\\"\n        \\t\\t\\t\\t\\t]\n        \\t\\t\\t\\t}\n        \\t\\t\\t}\n        \\t\\t\\t],\n          \\t\\t\\t\\\"Version\\\": \\\"1\\\"\n        \\t\\t}\n      force: true\n  example:\n    type: alicloud:hbr:OtsBackupPlan\n    properties:\n      otsBackupPlanName: terraform-example-${defaultInteger.result}\n      vaultId: ${defaultVault.id}\n      backupType: COMPLETE\n      retention: '1'\n      instanceName: ${defaultInstance.name}\n      crossAccountType: SELF_ACCOUNT\n      crossAccountUserId: ${default.id}\n      crossAccountRoleName: ${defaultRole.id}\n      otsDetails:\n        - tableNames:\n            - ${defaultTable.tableName}\n      rules:\n        - schedule: I|1602673264|PT2H\n          retention: '1'\n          disabled: 'false'\n          ruleName: terraform-example\n          backupType: COMPLETE\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nHBR Ots Backup Plan can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:hbr/otsBackupPlan:OtsBackupPlan example \u003cid\u003e\n```\n\n","properties":{"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`.\n"},"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n"},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n"},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n"},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"instanceName":{"type":"string","description":"The name of the Table store instance. **Note:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`.\n"},"otsBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"otsDetails":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/OtsBackupPlanOtsDetail:OtsBackupPlanOtsDetail"},"description":"The details about the Table store instance. See the following `Block\u003cspan pulumi-lang-nodejs=\" otsDetail`\" pulumi-lang-dotnet=\" OtsDetail`\" pulumi-lang-go=\" otsDetail`\" pulumi-lang-python=\" ots_detail`\" pulumi-lang-yaml=\" otsDetail`\" pulumi-lang-java=\" otsDetail`\"\u003e ots_detail`\u003c/span\u003e. **Note:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`.\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/OtsBackupPlanRule:OtsBackupPlanRule"},"description":"The backup plan rule. See the following `Block rules`. **Note:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`. It means to execute a backup task every `{interval}` starting from `{startTime}`. The backup task for the elapsed time will not be compensated. If the last backup task has not completed yet, the next backup task will not be triggered.\n- `startTime` Backup start time, UNIX time seconds.\n","deprecationMessage":"Field 'schedule' has been deprecated from version 1.163.0. Use 'rules' instead."},"vaultId":{"type":"string","description":"The ID of backup vault.\n"}},"required":["backupType","crossAccountType","disabled","otsBackupPlanName","retention"],"inputProperties":{"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`.\n"},"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n","willReplaceOnChanges":true},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n","willReplaceOnChanges":true},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n","willReplaceOnChanges":true},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"instanceName":{"type":"string","description":"The name of the Table store instance. **Note:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`.\n","willReplaceOnChanges":true},"otsBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"otsDetails":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/OtsBackupPlanOtsDetail:OtsBackupPlanOtsDetail"},"description":"The details about the Table store instance. See the following `Block\u003cspan pulumi-lang-nodejs=\" otsDetail`\" pulumi-lang-dotnet=\" OtsDetail`\" pulumi-lang-go=\" otsDetail`\" pulumi-lang-python=\" ots_detail`\" pulumi-lang-yaml=\" otsDetail`\" pulumi-lang-java=\" otsDetail`\"\u003e ots_detail`\u003c/span\u003e. **Note:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`.\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/OtsBackupPlanRule:OtsBackupPlanRule"},"description":"The backup plan rule. See the following `Block rules`. **Note:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`. It means to execute a backup task every `{interval}` starting from `{startTime}`. The backup task for the elapsed time will not be compensated. If the last backup task has not completed yet, the next backup task will not be triggered.\n- `startTime` Backup start time, UNIX time seconds.\n","deprecationMessage":"Field 'schedule' has been deprecated from version 1.163.0. Use 'rules' instead."},"vaultId":{"type":"string","description":"The ID of backup vault.\n","willReplaceOnChanges":true}},"requiredInputs":["backupType","otsBackupPlanName","retention"],"stateInputs":{"description":"Input properties used for looking up and filtering OtsBackupPlan resources.\n","properties":{"backupType":{"type":"string","description":"Backup type. Valid values: `COMPLETE`.\n"},"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n","willReplaceOnChanges":true},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n","willReplaceOnChanges":true},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n","willReplaceOnChanges":true},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"instanceName":{"type":"string","description":"The name of the Table store instance. **Note:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`.\n","willReplaceOnChanges":true},"otsBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"otsDetails":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/OtsBackupPlanOtsDetail:OtsBackupPlanOtsDetail"},"description":"The details about the Table store instance. See the following `Block\u003cspan pulumi-lang-nodejs=\" otsDetail`\" pulumi-lang-dotnet=\" OtsDetail`\" pulumi-lang-go=\" otsDetail`\" pulumi-lang-python=\" ots_detail`\" pulumi-lang-yaml=\" otsDetail`\" pulumi-lang-java=\" otsDetail`\"\u003e ots_detail`\u003c/span\u003e. **Note:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`.\n"},"retention":{"type":"string","description":"Backup retention days, the minimum is 1.\n"},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/OtsBackupPlanRule:OtsBackupPlanRule"},"description":"The backup plan rule. See the following `Block rules`. **Note:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`. It means to execute a backup task every `{interval}` starting from `{startTime}`. The backup task for the elapsed time will not be compensated. If the last backup task has not completed yet, the next backup task will not be triggered.\n- `startTime` Backup start time, UNIX time seconds.\n","deprecationMessage":"Field 'schedule' has been deprecated from version 1.163.0. Use 'rules' instead."},"vaultId":{"type":"string","description":"The ID of backup vault.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:hbr/policy:Policy":{"description":"Provides a Hybrid Backup Recovery (HBR) Policy resource.\n\n\n\nFor information about Hybrid Backup Recovery (HBR) Policy and how to use it, see [What is Policy](https://www.alibabacloud.com/help/en/cloud-backup/developer-reference/api-hbr-2017-09-08-createpolicyv2).\n\n\u003e **NOTE:** Available since v1.221.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultyk84Hc = new alicloud.hbr.Vault(\"defaultyk84Hc\", {\n    vaultType: \"STANDARD\",\n    vaultName: `example-value-${_default.result}`,\n});\nconst defaultoqWvHQ = new alicloud.hbr.Policy(\"defaultoqWvHQ\", {\n    policyName: `example-value-${_default.result}`,\n    rules: [{\n        ruleType: \"BACKUP\",\n        backupType: \"COMPLETE\",\n        schedule: \"I|1631685600|P1D\",\n        retention: 7,\n        archiveDays: 0,\n        vaultId: defaultyk84Hc.id,\n    }],\n    policyDescription: \"policy example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefaultyk84_hc = alicloud.hbr.Vault(\"defaultyk84Hc\",\n    vault_type=\"STANDARD\",\n    vault_name=f\"example-value-{default['result']}\")\ndefaultoq_wv_hq = alicloud.hbr.Policy(\"defaultoqWvHQ\",\n    policy_name=f\"example-value-{default['result']}\",\n    rules=[{\n        \"rule_type\": \"BACKUP\",\n        \"backup_type\": \"COMPLETE\",\n        \"schedule\": \"I|1631685600|P1D\",\n        \"retention\": 7,\n        \"archive_days\": 0,\n        \"vault_id\": defaultyk84_hc.id,\n    }],\n    policy_description=\"policy example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultyk84Hc = new AliCloud.Hbr.Vault(\"defaultyk84Hc\", new()\n    {\n        VaultType = \"STANDARD\",\n        VaultName = $\"example-value-{@default.Result}\",\n    });\n\n    var defaultoqWvHQ = new AliCloud.Hbr.Policy(\"defaultoqWvHQ\", new()\n    {\n        PolicyName = $\"example-value-{@default.Result}\",\n        Rules = new[]\n        {\n            new AliCloud.Hbr.Inputs.PolicyRuleArgs\n            {\n                RuleType = \"BACKUP\",\n                BackupType = \"COMPLETE\",\n                Schedule = \"I|1631685600|P1D\",\n                Retention = 7,\n                ArchiveDays = 0,\n                VaultId = defaultyk84Hc.Id,\n            },\n        },\n        PolicyDescription = \"policy example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultyk84Hc, err := hbr.NewVault(ctx, \"defaultyk84Hc\", \u0026hbr.VaultArgs{\n\t\t\tVaultType: pulumi.String(\"STANDARD\"),\n\t\t\tVaultName: pulumi.Sprintf(\"example-value-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.NewPolicy(ctx, \"defaultoqWvHQ\", \u0026hbr.PolicyArgs{\n\t\t\tPolicyName: pulumi.Sprintf(\"example-value-%v\", _default.Result),\n\t\t\tRules: hbr.PolicyRuleArray{\n\t\t\t\t\u0026hbr.PolicyRuleArgs{\n\t\t\t\t\tRuleType:    pulumi.String(\"BACKUP\"),\n\t\t\t\t\tBackupType:  pulumi.String(\"COMPLETE\"),\n\t\t\t\t\tSchedule:    pulumi.String(\"I|1631685600|P1D\"),\n\t\t\t\t\tRetention:   pulumi.Int(7),\n\t\t\t\t\tArchiveDays: pulumi.Int(0),\n\t\t\t\t\tVaultId:     defaultyk84Hc.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicyDescription: pulumi.String(\"policy example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.hbr.Vault;\nimport com.pulumi.alicloud.hbr.VaultArgs;\nimport com.pulumi.alicloud.hbr.Policy;\nimport com.pulumi.alicloud.hbr.PolicyArgs;\nimport com.pulumi.alicloud.hbr.inputs.PolicyRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultyk84Hc = new Vault(\"defaultyk84Hc\", VaultArgs.builder()\n            .vaultType(\"STANDARD\")\n            .vaultName(String.format(\"example-value-%s\", default_.result()))\n            .build());\n\n        var defaultoqWvHQ = new Policy(\"defaultoqWvHQ\", PolicyArgs.builder()\n            .policyName(String.format(\"example-value-%s\", default_.result()))\n            .rules(PolicyRuleArgs.builder()\n                .ruleType(\"BACKUP\")\n                .backupType(\"COMPLETE\")\n                .schedule(\"I|1631685600|P1D\")\n                .retention(7)\n                .archiveDays(0)\n                .vaultId(defaultyk84Hc.id())\n                .build())\n            .policyDescription(\"policy example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  defaultyk84Hc:\n    type: alicloud:hbr:Vault\n    properties:\n      vaultType: STANDARD\n      vaultName: example-value-${default.result}\n  defaultoqWvHQ:\n    type: alicloud:hbr:Policy\n    properties:\n      policyName: example-value-${default.result}\n      rules:\n        - ruleType: BACKUP\n          backupType: COMPLETE\n          schedule: I|1631685600|P1D\n          retention: '7'\n          archiveDays: '0'\n          vaultId: ${defaultyk84Hc.id}\n      policyDescription: policy example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nHybrid Backup Recovery (HBR) Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:hbr/policy:Policy example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"Policy creation time\n"},"policyDescription":{"type":"string","description":"The policy description.\n"},"policyName":{"type":"string","description":"Policy Name\n"},"policyType":{"type":"string","description":"The policy type. The UDM_ECS_ONLY and STANDARD types are supported. The policy with PolicyType = UDM_ECS_ONLY can only be used for ECS instances. The policy with PolicyType = STANDARD can only be used for data sources other than ECS instances.\n"},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/PolicyRule:PolicyRule"},"description":"A list of policy rules See \u003cspan pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\"\u003e`rules`\u003c/span\u003e below.\n"}},"required":["createTime","policyType"],"inputProperties":{"policyDescription":{"type":"string","description":"The policy description.\n"},"policyName":{"type":"string","description":"Policy Name\n"},"policyType":{"type":"string","description":"The policy type. The UDM_ECS_ONLY and STANDARD types are supported. The policy with PolicyType = UDM_ECS_ONLY can only be used for ECS instances. The policy with PolicyType = STANDARD can only be used for data sources other than ECS instances.\n","willReplaceOnChanges":true},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/PolicyRule:PolicyRule"},"description":"A list of policy rules See \u003cspan pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\"\u003e`rules`\u003c/span\u003e below.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Policy resources.\n","properties":{"createTime":{"type":"string","description":"Policy creation time\n"},"policyDescription":{"type":"string","description":"The policy description.\n"},"policyName":{"type":"string","description":"Policy Name\n"},"policyType":{"type":"string","description":"The policy type. The UDM_ECS_ONLY and STANDARD types are supported. The policy with PolicyType = UDM_ECS_ONLY can only be used for ECS instances. The policy with PolicyType = STANDARD can only be used for data sources other than ECS instances.\n","willReplaceOnChanges":true},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/PolicyRule:PolicyRule"},"description":"A list of policy rules See \u003cspan pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\"\u003e`rules`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:hbr/policyBinding:PolicyBinding":{"description":"Provides a Hybrid Backup Recovery (HBR) Policy Binding resource.\n\nA policy binding relationship consists of a data source, a policy, and binding options.\n\nFor information about Hybrid Backup Recovery (HBR) Policy Binding and how to use it, see [What is Policy Binding](https://www.alibabacloud.com/help/en/cloud-backup/developer-reference/api-hbr-2017-09-08-createpolicybindings).\n\n\u003e **NOTE:** Available since v1.221.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultyk84Hc = new alicloud.hbr.Vault(\"defaultyk84Hc\", {\n    vaultType: \"STANDARD\",\n    vaultName: `example-value-${_default.result}`,\n});\nconst defaultoqWvHQ = new alicloud.hbr.Policy(\"defaultoqWvHQ\", {\n    policyName: `example-value-${_default.result}`,\n    rules: [{\n        ruleType: \"BACKUP\",\n        backupType: \"COMPLETE\",\n        schedule: \"I|1631685600|P1D\",\n        retention: 7,\n        archiveDays: 0,\n        vaultId: defaultyk84Hc.id,\n    }],\n    policyDescription: \"policy example\",\n});\nconst defaultKtt2XY = new alicloud.oss.Bucket(\"defaultKtt2XY\", {\n    storageClass: \"Standard\",\n    bucket: `example-value-${_default.result}`,\n});\nconst defaultPolicyBinding = new alicloud.hbr.PolicyBinding(\"default\", {\n    sourceType: \"OSS\",\n    disabled: false,\n    policyId: defaultoqWvHQ.id,\n    dataSourceId: defaultKtt2XY.bucket,\n    policyBindingDescription: \"policy binding example (update)\",\n    source: \"prefix-example-update/\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefaultyk84_hc = alicloud.hbr.Vault(\"defaultyk84Hc\",\n    vault_type=\"STANDARD\",\n    vault_name=f\"example-value-{default['result']}\")\ndefaultoq_wv_hq = alicloud.hbr.Policy(\"defaultoqWvHQ\",\n    policy_name=f\"example-value-{default['result']}\",\n    rules=[{\n        \"rule_type\": \"BACKUP\",\n        \"backup_type\": \"COMPLETE\",\n        \"schedule\": \"I|1631685600|P1D\",\n        \"retention\": 7,\n        \"archive_days\": 0,\n        \"vault_id\": defaultyk84_hc.id,\n    }],\n    policy_description=\"policy example\")\ndefault_ktt2_xy = alicloud.oss.Bucket(\"defaultKtt2XY\",\n    storage_class=\"Standard\",\n    bucket=f\"example-value-{default['result']}\")\ndefault_policy_binding = alicloud.hbr.PolicyBinding(\"default\",\n    source_type=\"OSS\",\n    disabled=False,\n    policy_id=defaultoq_wv_hq.id,\n    data_source_id=default_ktt2_xy.bucket,\n    policy_binding_description=\"policy binding example (update)\",\n    source=\"prefix-example-update/\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultyk84Hc = new AliCloud.Hbr.Vault(\"defaultyk84Hc\", new()\n    {\n        VaultType = \"STANDARD\",\n        VaultName = $\"example-value-{@default.Result}\",\n    });\n\n    var defaultoqWvHQ = new AliCloud.Hbr.Policy(\"defaultoqWvHQ\", new()\n    {\n        PolicyName = $\"example-value-{@default.Result}\",\n        Rules = new[]\n        {\n            new AliCloud.Hbr.Inputs.PolicyRuleArgs\n            {\n                RuleType = \"BACKUP\",\n                BackupType = \"COMPLETE\",\n                Schedule = \"I|1631685600|P1D\",\n                Retention = 7,\n                ArchiveDays = 0,\n                VaultId = defaultyk84Hc.Id,\n            },\n        },\n        PolicyDescription = \"policy example\",\n    });\n\n    var defaultKtt2XY = new AliCloud.Oss.Bucket(\"defaultKtt2XY\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"example-value-{@default.Result}\",\n    });\n\n    var defaultPolicyBinding = new AliCloud.Hbr.PolicyBinding(\"default\", new()\n    {\n        SourceType = \"OSS\",\n        Disabled = false,\n        PolicyId = defaultoqWvHQ.Id,\n        DataSourceId = defaultKtt2XY.BucketName,\n        PolicyBindingDescription = \"policy binding example (update)\",\n        Source = \"prefix-example-update/\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultyk84Hc, err := hbr.NewVault(ctx, \"defaultyk84Hc\", \u0026hbr.VaultArgs{\n\t\t\tVaultType: pulumi.String(\"STANDARD\"),\n\t\t\tVaultName: pulumi.Sprintf(\"example-value-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultoqWvHQ, err := hbr.NewPolicy(ctx, \"defaultoqWvHQ\", \u0026hbr.PolicyArgs{\n\t\t\tPolicyName: pulumi.Sprintf(\"example-value-%v\", _default.Result),\n\t\t\tRules: hbr.PolicyRuleArray{\n\t\t\t\t\u0026hbr.PolicyRuleArgs{\n\t\t\t\t\tRuleType:    pulumi.String(\"BACKUP\"),\n\t\t\t\t\tBackupType:  pulumi.String(\"COMPLETE\"),\n\t\t\t\t\tSchedule:    pulumi.String(\"I|1631685600|P1D\"),\n\t\t\t\t\tRetention:   pulumi.Int(7),\n\t\t\t\t\tArchiveDays: pulumi.Int(0),\n\t\t\t\t\tVaultId:     defaultyk84Hc.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicyDescription: pulumi.String(\"policy example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultKtt2XY, err := oss.NewBucket(ctx, \"defaultKtt2XY\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"example-value-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.NewPolicyBinding(ctx, \"default\", \u0026hbr.PolicyBindingArgs{\n\t\t\tSourceType:               pulumi.String(\"OSS\"),\n\t\t\tDisabled:                 pulumi.Bool(false),\n\t\t\tPolicyId:                 defaultoqWvHQ.ID(),\n\t\t\tDataSourceId:             defaultKtt2XY.Bucket,\n\t\t\tPolicyBindingDescription: pulumi.String(\"policy binding example (update)\"),\n\t\t\tSource:                   pulumi.String(\"prefix-example-update/\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.hbr.Vault;\nimport com.pulumi.alicloud.hbr.VaultArgs;\nimport com.pulumi.alicloud.hbr.Policy;\nimport com.pulumi.alicloud.hbr.PolicyArgs;\nimport com.pulumi.alicloud.hbr.inputs.PolicyRuleArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.hbr.PolicyBinding;\nimport com.pulumi.alicloud.hbr.PolicyBindingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultyk84Hc = new Vault(\"defaultyk84Hc\", VaultArgs.builder()\n            .vaultType(\"STANDARD\")\n            .vaultName(String.format(\"example-value-%s\", default_.result()))\n            .build());\n\n        var defaultoqWvHQ = new Policy(\"defaultoqWvHQ\", PolicyArgs.builder()\n            .policyName(String.format(\"example-value-%s\", default_.result()))\n            .rules(PolicyRuleArgs.builder()\n                .ruleType(\"BACKUP\")\n                .backupType(\"COMPLETE\")\n                .schedule(\"I|1631685600|P1D\")\n                .retention(7)\n                .archiveDays(0)\n                .vaultId(defaultyk84Hc.id())\n                .build())\n            .policyDescription(\"policy example\")\n            .build());\n\n        var defaultKtt2XY = new Bucket(\"defaultKtt2XY\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"example-value-%s\", default_.result()))\n            .build());\n\n        var defaultPolicyBinding = new PolicyBinding(\"defaultPolicyBinding\", PolicyBindingArgs.builder()\n            .sourceType(\"OSS\")\n            .disabled(false)\n            .policyId(defaultoqWvHQ.id())\n            .dataSourceId(defaultKtt2XY.bucket())\n            .policyBindingDescription(\"policy binding example (update)\")\n            .source(\"prefix-example-update/\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  defaultyk84Hc:\n    type: alicloud:hbr:Vault\n    properties:\n      vaultType: STANDARD\n      vaultName: example-value-${default.result}\n  defaultoqWvHQ:\n    type: alicloud:hbr:Policy\n    properties:\n      policyName: example-value-${default.result}\n      rules:\n        - ruleType: BACKUP\n          backupType: COMPLETE\n          schedule: I|1631685600|P1D\n          retention: '7'\n          archiveDays: '0'\n          vaultId: ${defaultyk84Hc.id}\n      policyDescription: policy example\n  defaultKtt2XY:\n    type: alicloud:oss:Bucket\n    properties:\n      storageClass: Standard\n      bucket: example-value-${default.result}\n  defaultPolicyBinding:\n    type: alicloud:hbr:PolicyBinding\n    name: default\n    properties:\n      sourceType: OSS\n      disabled: 'false'\n      policyId: ${defaultoqWvHQ.id}\n      dataSourceId: ${defaultKtt2XY.bucket}\n      policyBindingDescription: policy binding example (update)\n      source: prefix-example-update/\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nHybrid Backup Recovery (HBR) Policy Binding can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:hbr/policyBinding:PolicyBinding example \u003cpolicy_id\u003e:\u003csource_type\u003e:\u003cdata_source_id\u003e\n```\n\n","properties":{"advancedOptions":{"$ref":"#/types/alicloud:hbr/PolicyBindingAdvancedOptions:PolicyBindingAdvancedOptions","description":"Backup Advanced Options See \u003cspan pulumi-lang-nodejs=\"`advancedOptions`\" pulumi-lang-dotnet=\"`AdvancedOptions`\" pulumi-lang-go=\"`advancedOptions`\" pulumi-lang-python=\"`advanced_options`\" pulumi-lang-yaml=\"`advancedOptions`\" pulumi-lang-java=\"`advancedOptions`\"\u003e`advanced_options`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"crossAccountRoleName":{"type":"string","description":"Valid only when CrossAccountType = CROSS_ACCOUNT, indicating the name of the cross-account authorization role of the data source, and the management account uses this role to access the data source.\n"},"crossAccountType":{"type":"string","description":"Cross-account type, supported\n"},"crossAccountUserId":{"type":"integer","description":"Valid only when CrossAccountType = CROSS_ACCOUNT, indicating the ID of the actual account to which the data source belongs.\n"},"dataSourceId":{"type":"string","description":"The data source ID.\n"},"disabled":{"type":"boolean","description":"Whether the policy is effective for the data source.\n- true: Pause\n- false: not paused\n"},"exclude":{"type":"string","description":"This parameter is required only when the value of SourceType is ECS_FILE or File. Indicates a file type that does not need to be backed up. All files of this type are not backed up. A maximum of 255 characters is supported.\n"},"include":{"type":"string","description":"This parameter is required only when the value of SourceType is ECS_FILE or File. Indicates the file types to be backed up, and all files of these types are backed up. A maximum of 255 characters is supported.\n"},"policyBindingDescription":{"type":"string","description":"Resource Description\n"},"policyId":{"type":"string","description":"The policy ID.\n"},"source":{"type":"string","description":"When SourceType is OSS, a prefix is specified to be backed up. If it is not specified, the entire root directory of the Bucket is backed up.\n"},"sourceType":{"type":"string","description":"Data source type, value range:\n- `UDM_ECS`: indicates the ECS instance backup.\n- `OSS`: indicates an OSS backup.\n- `NAS`: indicates an Alibaba Cloud NAS Backup. When you bind a file system to a policy, Cloud Backup automatically creates a mount point for the file system. If you no longer need the mount point, delete it manually.\n- `ECS_FILE`: indicates that the ECS file is backed up.\n- `File`: indicates a local File backup.\n- `OTS`: indicates the Tablestore backup.\n"},"speedLimit":{"type":"string","description":"This parameter is required only when the value of SourceType is ECS_FILE or File. Indicates backup flow control. The format is {start}{end}{bandwidth}. Multiple flow control configurations use partitioning, and no overlap in configuration time is allowed. start: start hour. end: end of hour. bandwidth: limit rate, in KB/s.\n"}},"required":["advancedOptions","createTime","crossAccountType","dataSourceId","policyId","sourceType"],"inputProperties":{"advancedOptions":{"$ref":"#/types/alicloud:hbr/PolicyBindingAdvancedOptions:PolicyBindingAdvancedOptions","description":"Backup Advanced Options See \u003cspan pulumi-lang-nodejs=\"`advancedOptions`\" pulumi-lang-dotnet=\"`AdvancedOptions`\" pulumi-lang-go=\"`advancedOptions`\" pulumi-lang-python=\"`advanced_options`\" pulumi-lang-yaml=\"`advancedOptions`\" pulumi-lang-java=\"`advancedOptions`\"\u003e`advanced_options`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"crossAccountRoleName":{"type":"string","description":"Valid only when CrossAccountType = CROSS_ACCOUNT, indicating the name of the cross-account authorization role of the data source, and the management account uses this role to access the data source.\n","willReplaceOnChanges":true},"crossAccountType":{"type":"string","description":"Cross-account type, supported\n","willReplaceOnChanges":true},"crossAccountUserId":{"type":"integer","description":"Valid only when CrossAccountType = CROSS_ACCOUNT, indicating the ID of the actual account to which the data source belongs.\n","willReplaceOnChanges":true},"dataSourceId":{"type":"string","description":"The data source ID.\n","willReplaceOnChanges":true},"disabled":{"type":"boolean","description":"Whether the policy is effective for the data source.\n- true: Pause\n- false: not paused\n"},"exclude":{"type":"string","description":"This parameter is required only when the value of SourceType is ECS_FILE or File. Indicates a file type that does not need to be backed up. All files of this type are not backed up. A maximum of 255 characters is supported.\n"},"include":{"type":"string","description":"This parameter is required only when the value of SourceType is ECS_FILE or File. Indicates the file types to be backed up, and all files of these types are backed up. A maximum of 255 characters is supported.\n"},"policyBindingDescription":{"type":"string","description":"Resource Description\n"},"policyId":{"type":"string","description":"The policy ID.\n","willReplaceOnChanges":true},"source":{"type":"string","description":"When SourceType is OSS, a prefix is specified to be backed up. If it is not specified, the entire root directory of the Bucket is backed up.\n"},"sourceType":{"type":"string","description":"Data source type, value range:\n- `UDM_ECS`: indicates the ECS instance backup.\n- `OSS`: indicates an OSS backup.\n- `NAS`: indicates an Alibaba Cloud NAS Backup. When you bind a file system to a policy, Cloud Backup automatically creates a mount point for the file system. If you no longer need the mount point, delete it manually.\n- `ECS_FILE`: indicates that the ECS file is backed up.\n- `File`: indicates a local File backup.\n- `OTS`: indicates the Tablestore backup.\n","willReplaceOnChanges":true},"speedLimit":{"type":"string","description":"This parameter is required only when the value of SourceType is ECS_FILE or File. Indicates backup flow control. The format is {start}{end}{bandwidth}. Multiple flow control configurations use partitioning, and no overlap in configuration time is allowed. start: start hour. end: end of hour. bandwidth: limit rate, in KB/s.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering PolicyBinding resources.\n","properties":{"advancedOptions":{"$ref":"#/types/alicloud:hbr/PolicyBindingAdvancedOptions:PolicyBindingAdvancedOptions","description":"Backup Advanced Options See \u003cspan pulumi-lang-nodejs=\"`advancedOptions`\" pulumi-lang-dotnet=\"`AdvancedOptions`\" pulumi-lang-go=\"`advancedOptions`\" pulumi-lang-python=\"`advanced_options`\" pulumi-lang-yaml=\"`advancedOptions`\" pulumi-lang-java=\"`advancedOptions`\"\u003e`advanced_options`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"crossAccountRoleName":{"type":"string","description":"Valid only when CrossAccountType = CROSS_ACCOUNT, indicating the name of the cross-account authorization role of the data source, and the management account uses this role to access the data source.\n","willReplaceOnChanges":true},"crossAccountType":{"type":"string","description":"Cross-account type, supported\n","willReplaceOnChanges":true},"crossAccountUserId":{"type":"integer","description":"Valid only when CrossAccountType = CROSS_ACCOUNT, indicating the ID of the actual account to which the data source belongs.\n","willReplaceOnChanges":true},"dataSourceId":{"type":"string","description":"The data source ID.\n","willReplaceOnChanges":true},"disabled":{"type":"boolean","description":"Whether the policy is effective for the data source.\n- true: Pause\n- false: not paused\n"},"exclude":{"type":"string","description":"This parameter is required only when the value of SourceType is ECS_FILE or File. Indicates a file type that does not need to be backed up. All files of this type are not backed up. A maximum of 255 characters is supported.\n"},"include":{"type":"string","description":"This parameter is required only when the value of SourceType is ECS_FILE or File. Indicates the file types to be backed up, and all files of these types are backed up. A maximum of 255 characters is supported.\n"},"policyBindingDescription":{"type":"string","description":"Resource Description\n"},"policyId":{"type":"string","description":"The policy ID.\n","willReplaceOnChanges":true},"source":{"type":"string","description":"When SourceType is OSS, a prefix is specified to be backed up. If it is not specified, the entire root directory of the Bucket is backed up.\n"},"sourceType":{"type":"string","description":"Data source type, value range:\n- `UDM_ECS`: indicates the ECS instance backup.\n- `OSS`: indicates an OSS backup.\n- `NAS`: indicates an Alibaba Cloud NAS Backup. When you bind a file system to a policy, Cloud Backup automatically creates a mount point for the file system. If you no longer need the mount point, delete it manually.\n- `ECS_FILE`: indicates that the ECS file is backed up.\n- `File`: indicates a local File backup.\n- `OTS`: indicates the Tablestore backup.\n","willReplaceOnChanges":true},"speedLimit":{"type":"string","description":"This parameter is required only when the value of SourceType is ECS_FILE or File. Indicates backup flow control. The format is {start}{end}{bandwidth}. Multiple flow control configurations use partitioning, and no overlap in configuration time is allowed. start: start hour. end: end of hour. bandwidth: limit rate, in KB/s.\n"}},"type":"object"}},"alicloud:hbr/replicationVault:ReplicationVault":{"description":"Provides a Hybrid Backup Recovery (HBR) Replication Vault resource.\n\nThe replication vault used by the cross-region backup function of Cloud Backup.\n\nFor information about Hybrid Backup Recovery (HBR) Replication Vault and how to use it, see [What is Replication Vault](https://www.alibabacloud.com/help/en/doc-detail/345603.html).\n\n\u003e **NOTE:** Available since v1.252.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst sourceRegion = config.get(\"sourceRegion\") || \"cn-hangzhou\";\nconst _default = alicloud.hbr.getReplicationVaultRegions({});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultVault = new alicloud.hbr.Vault(\"default\", {vaultName: `terraform-example-${defaultInteger.result}`});\nconst defaultReplicationVault = new alicloud.hbr.ReplicationVault(\"default\", {\n    replicationSourceRegionId: sourceRegion,\n    replicationSourceVaultId: defaultVault.id,\n    vaultName: \"terraform-example\",\n    vaultStorageClass: \"STANDARD\",\n    description: \"terraform-example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nsource_region = config.get(\"sourceRegion\")\nif source_region is None:\n    source_region = \"cn-hangzhou\"\ndefault = alicloud.hbr.get_replication_vault_regions()\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_vault = alicloud.hbr.Vault(\"default\", vault_name=f\"terraform-example-{default_integer['result']}\")\ndefault_replication_vault = alicloud.hbr.ReplicationVault(\"default\",\n    replication_source_region_id=source_region,\n    replication_source_vault_id=default_vault.id,\n    vault_name=\"terraform-example\",\n    vault_storage_class=\"STANDARD\",\n    description=\"terraform-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var sourceRegion = config.Get(\"sourceRegion\") ?? \"cn-hangzhou\";\n    var @default = AliCloud.Hbr.GetReplicationVaultRegions.Invoke();\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultVault = new AliCloud.Hbr.Vault(\"default\", new()\n    {\n        VaultName = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n    var defaultReplicationVault = new AliCloud.Hbr.ReplicationVault(\"default\", new()\n    {\n        ReplicationSourceRegionId = sourceRegion,\n        ReplicationSourceVaultId = defaultVault.Id,\n        VaultName = \"terraform-example\",\n        VaultStorageClass = \"STANDARD\",\n        Description = \"terraform-example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsourceRegion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"sourceRegion\"); param != \"\" {\n\t\t\tsourceRegion = param\n\t\t}\n\t\t_, err := hbr.GetReplicationVaultRegions(ctx, \u0026hbr.GetReplicationVaultRegionsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVault, err := hbr.NewVault(ctx, \"default\", \u0026hbr.VaultArgs{\n\t\t\tVaultName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.NewReplicationVault(ctx, \"default\", \u0026hbr.ReplicationVaultArgs{\n\t\t\tReplicationSourceRegionId: pulumi.String(sourceRegion),\n\t\t\tReplicationSourceVaultId:  defaultVault.ID(),\n\t\t\tVaultName:                 pulumi.String(\"terraform-example\"),\n\t\t\tVaultStorageClass:         pulumi.String(\"STANDARD\"),\n\t\t\tDescription:               pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetReplicationVaultRegionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.hbr.Vault;\nimport com.pulumi.alicloud.hbr.VaultArgs;\nimport com.pulumi.alicloud.hbr.ReplicationVault;\nimport com.pulumi.alicloud.hbr.ReplicationVaultArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var sourceRegion = config.get(\"sourceRegion\").orElse(\"cn-hangzhou\");\n        final var default = HbrFunctions.getReplicationVaultRegions(GetReplicationVaultRegionsArgs.builder()\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultVault = new Vault(\"defaultVault\", VaultArgs.builder()\n            .vaultName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n        var defaultReplicationVault = new ReplicationVault(\"defaultReplicationVault\", ReplicationVaultArgs.builder()\n            .replicationSourceRegionId(sourceRegion)\n            .replicationSourceVaultId(defaultVault.id())\n            .vaultName(\"terraform-example\")\n            .vaultStorageClass(\"STANDARD\")\n            .description(\"terraform-example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  sourceRegion:\n    type: string\n    default: cn-hangzhou\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultVault:\n    type: alicloud:hbr:Vault\n    name: default\n    properties:\n      vaultName: terraform-example-${defaultInteger.result}\n  defaultReplicationVault:\n    type: alicloud:hbr:ReplicationVault\n    name: default\n    properties:\n      replicationSourceRegionId: ${sourceRegion}\n      replicationSourceVaultId: ${defaultVault.id}\n      vaultName: terraform-example\n      vaultStorageClass: STANDARD\n      description: terraform-example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:hbr:getReplicationVaultRegions\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nHybrid Backup Recovery (HBR) Replication Vault can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:hbr/replicationVault:ReplicationVault example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the backup vault.\n"},"encryptType":{"type":"string","description":"The encryption type of the backup vault.\n"},"kmsKeyId":{"type":"string","description":"Alibaba Cloud KMS custom Key or Alias. This parameter is required only when EncryptType = KMS.\n"},"regionId":{"type":"string","description":"RegionId\n"},"replicationSourceRegionId":{"type":"string","description":"The region ID of the source backup vault.\n"},"replicationSourceVaultId":{"type":"string","description":"The vault ID of the source backup vault.\n"},"status":{"type":"string","description":"The status of the mirror backup vault.\n"},"vaultName":{"type":"string","description":"The name of the backup vault.\n"},"vaultStorageClass":{"type":"string","description":"Backup Vault Storage Class\n"}},"required":["encryptType","regionId","replicationSourceRegionId","replicationSourceVaultId","status","vaultName","vaultStorageClass"],"inputProperties":{"description":{"type":"string","description":"The description of the backup vault.\n"},"encryptType":{"type":"string","description":"The encryption type of the backup vault.\n","willReplaceOnChanges":true},"kmsKeyId":{"type":"string","description":"Alibaba Cloud KMS custom Key or Alias. This parameter is required only when EncryptType = KMS.\n","willReplaceOnChanges":true},"replicationSourceRegionId":{"type":"string","description":"The region ID of the source backup vault.\n","willReplaceOnChanges":true},"replicationSourceVaultId":{"type":"string","description":"The vault ID of the source backup vault.\n","willReplaceOnChanges":true},"vaultName":{"type":"string","description":"The name of the backup vault.\n"},"vaultStorageClass":{"type":"string","description":"Backup Vault Storage Class\n","willReplaceOnChanges":true}},"requiredInputs":["replicationSourceRegionId","replicationSourceVaultId","vaultName"],"stateInputs":{"description":"Input properties used for looking up and filtering ReplicationVault resources.\n","properties":{"description":{"type":"string","description":"The description of the backup vault.\n"},"encryptType":{"type":"string","description":"The encryption type of the backup vault.\n","willReplaceOnChanges":true},"kmsKeyId":{"type":"string","description":"Alibaba Cloud KMS custom Key or Alias. This parameter is required only when EncryptType = KMS.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"RegionId\n"},"replicationSourceRegionId":{"type":"string","description":"The region ID of the source backup vault.\n","willReplaceOnChanges":true},"replicationSourceVaultId":{"type":"string","description":"The vault ID of the source backup vault.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the mirror backup vault.\n"},"vaultName":{"type":"string","description":"The name of the backup vault.\n"},"vaultStorageClass":{"type":"string","description":"Backup Vault Storage Class\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:hbr/restoreJob:RestoreJob":{"description":"Provides a Hybrid Backup Recovery (HBR) Restore Job resource.\n\nFor information about Hybrid Backup Recovery (HBR) Restore Job and how to use it, see [What is Restore Job](https://www.alibabacloud.com/help/doc-detail/186575.htm).\n\n\u003e **NOTE:** Available since v1.133.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.hbr.getEcsBackupPlans({\n    nameRegex: \"plan-tf-used-dont-delete\",\n});\nconst defaultGetOssBackupPlans = alicloud.hbr.getOssBackupPlans({\n    nameRegex: \"plan-tf-used-dont-delete\",\n});\nconst defaultGetNasBackupPlans = alicloud.hbr.getNasBackupPlans({\n    nameRegex: \"plan-tf-used-dont-delete\",\n});\nconst ecsSnapshots = Promise.all([_default, _default]).then(([_default, _default1]) =\u003e alicloud.hbr.getSnapshots({\n    sourceType: \"ECS_FILE\",\n    vaultId: _default.plans?.[0]?.vaultId,\n    instanceId: _default1.plans?.[0]?.instanceId,\n}));\nconst ossSnapshots = Promise.all([defaultGetOssBackupPlans, defaultGetOssBackupPlans]).then(([defaultGetOssBackupPlans, defaultGetOssBackupPlans1]) =\u003e alicloud.hbr.getSnapshots({\n    sourceType: \"OSS\",\n    vaultId: defaultGetOssBackupPlans.plans?.[0]?.vaultId,\n    bucket: defaultGetOssBackupPlans1.plans?.[0]?.bucket,\n}));\nconst nasSnapshots = Promise.all([defaultGetNasBackupPlans, defaultGetNasBackupPlans, defaultGetNasBackupPlans]).then(([defaultGetNasBackupPlans, defaultGetNasBackupPlans1, defaultGetNasBackupPlans2]) =\u003e alicloud.hbr.getSnapshots({\n    sourceType: \"NAS\",\n    vaultId: defaultGetNasBackupPlans.plans?.[0]?.vaultId,\n    fileSystemId: defaultGetNasBackupPlans1.plans?.[0]?.fileSystemId,\n    createTime: defaultGetNasBackupPlans2.plans?.[0]?.createTime,\n}));\nconst nasJob = new alicloud.hbr.RestoreJob(\"nasJob\", {\n    snapshotHash: nasSnapshots.then(nasSnapshots =\u003e nasSnapshots.snapshots?.[0]?.snapshotHash),\n    vaultId: defaultGetNasBackupPlans.then(defaultGetNasBackupPlans =\u003e defaultGetNasBackupPlans.plans?.[0]?.vaultId),\n    sourceType: \"NAS\",\n    restoreType: \"NAS\",\n    snapshotId: nasSnapshots.then(nasSnapshots =\u003e nasSnapshots.snapshots?.[0]?.snapshotId),\n    targetFileSystemId: defaultGetNasBackupPlans.then(defaultGetNasBackupPlans =\u003e defaultGetNasBackupPlans.plans?.[0]?.fileSystemId),\n    targetCreateTime: defaultGetNasBackupPlans.then(defaultGetNasBackupPlans =\u003e defaultGetNasBackupPlans.plans?.[0]?.createTime),\n    targetPath: \"/\",\n    options: \"    {\\\\\\\"includes\\\\\\\":[], \\\\\\\"excludes\\\\\\\":[]}\\n\",\n});\nconst ossJob = new alicloud.hbr.RestoreJob(\"ossJob\", {\n    snapshotHash: ossSnapshots.then(ossSnapshots =\u003e ossSnapshots.snapshots?.[0]?.snapshotHash),\n    vaultId: defaultGetOssBackupPlans.then(defaultGetOssBackupPlans =\u003e defaultGetOssBackupPlans.plans?.[0]?.vaultId),\n    sourceType: \"OSS\",\n    restoreType: \"OSS\",\n    snapshotId: ossSnapshots.then(ossSnapshots =\u003e ossSnapshots.snapshots?.[0]?.snapshotId),\n    targetBucket: defaultGetOssBackupPlans.then(defaultGetOssBackupPlans =\u003e defaultGetOssBackupPlans.plans?.[0]?.bucket),\n    targetPrefix: \"\",\n    options: \"    {\\\\\\\"includes\\\\\\\":[], \\\\\\\"excludes\\\\\\\":[]}\\n\",\n});\nconst ecsJob = new alicloud.hbr.RestoreJob(\"ecsJob\", {\n    snapshotHash: ecsSnapshots.then(ecsSnapshots =\u003e ecsSnapshots.snapshots?.[0]?.snapshotHash),\n    vaultId: _default.then(_default =\u003e _default.plans?.[0]?.vaultId),\n    sourceType: \"ECS_FILE\",\n    restoreType: \"ECS_FILE\",\n    snapshotId: ecsSnapshots.then(ecsSnapshots =\u003e ecsSnapshots.snapshots?.[0]?.snapshotId),\n    targetInstanceId: _default.then(_default =\u003e _default.plans?.[0]?.instanceId),\n    targetPath: \"/\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.hbr.get_ecs_backup_plans(name_regex=\"plan-tf-used-dont-delete\")\ndefault_get_oss_backup_plans = alicloud.hbr.get_oss_backup_plans(name_regex=\"plan-tf-used-dont-delete\")\ndefault_get_nas_backup_plans = alicloud.hbr.get_nas_backup_plans(name_regex=\"plan-tf-used-dont-delete\")\necs_snapshots = alicloud.hbr.get_snapshots(source_type=\"ECS_FILE\",\n    vault_id=default.plans[0].vault_id,\n    instance_id=default.plans[0].instance_id)\noss_snapshots = alicloud.hbr.get_snapshots(source_type=\"OSS\",\n    vault_id=default_get_oss_backup_plans.plans[0].vault_id,\n    bucket=default_get_oss_backup_plans.plans[0].bucket)\nnas_snapshots = alicloud.hbr.get_snapshots(source_type=\"NAS\",\n    vault_id=default_get_nas_backup_plans.plans[0].vault_id,\n    file_system_id=default_get_nas_backup_plans.plans[0].file_system_id,\n    create_time=default_get_nas_backup_plans.plans[0].create_time)\nnas_job = alicloud.hbr.RestoreJob(\"nasJob\",\n    snapshot_hash=nas_snapshots.snapshots[0].snapshot_hash,\n    vault_id=default_get_nas_backup_plans.plans[0].vault_id,\n    source_type=\"NAS\",\n    restore_type=\"NAS\",\n    snapshot_id=nas_snapshots.snapshots[0].snapshot_id,\n    target_file_system_id=default_get_nas_backup_plans.plans[0].file_system_id,\n    target_create_time=default_get_nas_backup_plans.plans[0].create_time,\n    target_path=\"/\",\n    options=\"    {\\\\\\\"includes\\\\\\\":[], \\\\\\\"excludes\\\\\\\":[]}\\n\")\noss_job = alicloud.hbr.RestoreJob(\"ossJob\",\n    snapshot_hash=oss_snapshots.snapshots[0].snapshot_hash,\n    vault_id=default_get_oss_backup_plans.plans[0].vault_id,\n    source_type=\"OSS\",\n    restore_type=\"OSS\",\n    snapshot_id=oss_snapshots.snapshots[0].snapshot_id,\n    target_bucket=default_get_oss_backup_plans.plans[0].bucket,\n    target_prefix=\"\",\n    options=\"    {\\\\\\\"includes\\\\\\\":[], \\\\\\\"excludes\\\\\\\":[]}\\n\")\necs_job = alicloud.hbr.RestoreJob(\"ecsJob\",\n    snapshot_hash=ecs_snapshots.snapshots[0].snapshot_hash,\n    vault_id=default.plans[0].vault_id,\n    source_type=\"ECS_FILE\",\n    restore_type=\"ECS_FILE\",\n    snapshot_id=ecs_snapshots.snapshots[0].snapshot_id,\n    target_instance_id=default.plans[0].instance_id,\n    target_path=\"/\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Hbr.GetEcsBackupPlans.Invoke(new()\n    {\n        NameRegex = \"plan-tf-used-dont-delete\",\n    });\n\n    var defaultGetOssBackupPlans = AliCloud.Hbr.GetOssBackupPlans.Invoke(new()\n    {\n        NameRegex = \"plan-tf-used-dont-delete\",\n    });\n\n    var defaultGetNasBackupPlans = AliCloud.Hbr.GetNasBackupPlans.Invoke(new()\n    {\n        NameRegex = \"plan-tf-used-dont-delete\",\n    });\n\n    var ecsSnapshots = AliCloud.Hbr.GetSnapshots.Invoke(new()\n    {\n        SourceType = \"ECS_FILE\",\n        VaultId = @default.Apply(getEcsBackupPlansResult =\u003e getEcsBackupPlansResult.Plans[0]?.VaultId),\n        InstanceId = @default.Apply(getEcsBackupPlansResult =\u003e getEcsBackupPlansResult.Plans[0]?.InstanceId),\n    });\n\n    var ossSnapshots = AliCloud.Hbr.GetSnapshots.Invoke(new()\n    {\n        SourceType = \"OSS\",\n        VaultId = defaultGetOssBackupPlans.Apply(getOssBackupPlansResult =\u003e getOssBackupPlansResult.Plans[0]?.VaultId),\n        Bucket = defaultGetOssBackupPlans.Apply(getOssBackupPlansResult =\u003e getOssBackupPlansResult.Plans[0]?.Bucket),\n    });\n\n    var nasSnapshots = AliCloud.Hbr.GetSnapshots.Invoke(new()\n    {\n        SourceType = \"NAS\",\n        VaultId = defaultGetNasBackupPlans.Apply(getNasBackupPlansResult =\u003e getNasBackupPlansResult.Plans[0]?.VaultId),\n        FileSystemId = defaultGetNasBackupPlans.Apply(getNasBackupPlansResult =\u003e getNasBackupPlansResult.Plans[0]?.FileSystemId),\n        CreateTime = defaultGetNasBackupPlans.Apply(getNasBackupPlansResult =\u003e getNasBackupPlansResult.Plans[0]?.CreateTime),\n    });\n\n    var nasJob = new AliCloud.Hbr.RestoreJob(\"nasJob\", new()\n    {\n        SnapshotHash = nasSnapshots.Apply(getSnapshotsResult =\u003e getSnapshotsResult.Snapshots[0]?.SnapshotHash),\n        VaultId = defaultGetNasBackupPlans.Apply(getNasBackupPlansResult =\u003e getNasBackupPlansResult.Plans[0]?.VaultId),\n        SourceType = \"NAS\",\n        RestoreType = \"NAS\",\n        SnapshotId = nasSnapshots.Apply(getSnapshotsResult =\u003e getSnapshotsResult.Snapshots[0]?.SnapshotId),\n        TargetFileSystemId = defaultGetNasBackupPlans.Apply(getNasBackupPlansResult =\u003e getNasBackupPlansResult.Plans[0]?.FileSystemId),\n        TargetCreateTime = defaultGetNasBackupPlans.Apply(getNasBackupPlansResult =\u003e getNasBackupPlansResult.Plans[0]?.CreateTime),\n        TargetPath = \"/\",\n        Options = @\"    {\\\"\"includes\\\"\":[], \\\"\"excludes\\\"\":[]}\n\",\n    });\n\n    var ossJob = new AliCloud.Hbr.RestoreJob(\"ossJob\", new()\n    {\n        SnapshotHash = ossSnapshots.Apply(getSnapshotsResult =\u003e getSnapshotsResult.Snapshots[0]?.SnapshotHash),\n        VaultId = defaultGetOssBackupPlans.Apply(getOssBackupPlansResult =\u003e getOssBackupPlansResult.Plans[0]?.VaultId),\n        SourceType = \"OSS\",\n        RestoreType = \"OSS\",\n        SnapshotId = ossSnapshots.Apply(getSnapshotsResult =\u003e getSnapshotsResult.Snapshots[0]?.SnapshotId),\n        TargetBucket = defaultGetOssBackupPlans.Apply(getOssBackupPlansResult =\u003e getOssBackupPlansResult.Plans[0]?.Bucket),\n        TargetPrefix = \"\",\n        Options = @\"    {\\\"\"includes\\\"\":[], \\\"\"excludes\\\"\":[]}\n\",\n    });\n\n    var ecsJob = new AliCloud.Hbr.RestoreJob(\"ecsJob\", new()\n    {\n        SnapshotHash = ecsSnapshots.Apply(getSnapshotsResult =\u003e getSnapshotsResult.Snapshots[0]?.SnapshotHash),\n        VaultId = @default.Apply(@default =\u003e @default.Apply(getEcsBackupPlansResult =\u003e getEcsBackupPlansResult.Plans[0]?.VaultId)),\n        SourceType = \"ECS_FILE\",\n        RestoreType = \"ECS_FILE\",\n        SnapshotId = ecsSnapshots.Apply(getSnapshotsResult =\u003e getSnapshotsResult.Snapshots[0]?.SnapshotId),\n        TargetInstanceId = @default.Apply(@default =\u003e @default.Apply(getEcsBackupPlansResult =\u003e getEcsBackupPlansResult.Plans[0]?.InstanceId)),\n        TargetPath = \"/\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := hbr.GetEcsBackupPlans(ctx, \u0026hbr.GetEcsBackupPlansArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"plan-tf-used-dont-delete\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetOssBackupPlans, err := hbr.GetOssBackupPlans(ctx, \u0026hbr.GetOssBackupPlansArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"plan-tf-used-dont-delete\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNasBackupPlans, err := hbr.GetNasBackupPlans(ctx, \u0026hbr.GetNasBackupPlansArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"plan-tf-used-dont-delete\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tecsSnapshots, err := hbr.GetSnapshots(ctx, \u0026hbr.GetSnapshotsArgs{\n\t\t\tSourceType: \"ECS_FILE\",\n\t\t\tVaultId:    _default.Plans[0].VaultId,\n\t\t\tInstanceId: pulumi.StringRef(_default.Plans[0].InstanceId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tossSnapshots, err := hbr.GetSnapshots(ctx, \u0026hbr.GetSnapshotsArgs{\n\t\t\tSourceType: \"OSS\",\n\t\t\tVaultId:    defaultGetOssBackupPlans.Plans[0].VaultId,\n\t\t\tBucket:     pulumi.StringRef(defaultGetOssBackupPlans.Plans[0].Bucket),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnasSnapshots, err := hbr.GetSnapshots(ctx, \u0026hbr.GetSnapshotsArgs{\n\t\t\tSourceType:   \"NAS\",\n\t\t\tVaultId:      defaultGetNasBackupPlans.Plans[0].VaultId,\n\t\t\tFileSystemId: pulumi.StringRef(defaultGetNasBackupPlans.Plans[0].FileSystemId),\n\t\t\tCreateTime:   pulumi.StringRef(defaultGetNasBackupPlans.Plans[0].CreateTime),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.NewRestoreJob(ctx, \"nasJob\", \u0026hbr.RestoreJobArgs{\n\t\t\tSnapshotHash:       pulumi.String(nasSnapshots.Snapshots[0].SnapshotHash),\n\t\t\tVaultId:            pulumi.String(defaultGetNasBackupPlans.Plans[0].VaultId),\n\t\t\tSourceType:         pulumi.String(\"NAS\"),\n\t\t\tRestoreType:        pulumi.String(\"NAS\"),\n\t\t\tSnapshotId:         pulumi.String(nasSnapshots.Snapshots[0].SnapshotId),\n\t\t\tTargetFileSystemId: pulumi.String(defaultGetNasBackupPlans.Plans[0].FileSystemId),\n\t\t\tTargetCreateTime:   pulumi.String(defaultGetNasBackupPlans.Plans[0].CreateTime),\n\t\t\tTargetPath:         pulumi.String(\"/\"),\n\t\t\tOptions:            pulumi.String(\"    {\\\\\\\"includes\\\\\\\":[], \\\\\\\"excludes\\\\\\\":[]}\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.NewRestoreJob(ctx, \"ossJob\", \u0026hbr.RestoreJobArgs{\n\t\t\tSnapshotHash: pulumi.String(ossSnapshots.Snapshots[0].SnapshotHash),\n\t\t\tVaultId:      pulumi.String(defaultGetOssBackupPlans.Plans[0].VaultId),\n\t\t\tSourceType:   pulumi.String(\"OSS\"),\n\t\t\tRestoreType:  pulumi.String(\"OSS\"),\n\t\t\tSnapshotId:   pulumi.String(ossSnapshots.Snapshots[0].SnapshotId),\n\t\t\tTargetBucket: pulumi.String(defaultGetOssBackupPlans.Plans[0].Bucket),\n\t\t\tTargetPrefix: pulumi.String(\"\"),\n\t\t\tOptions:      pulumi.String(\"    {\\\\\\\"includes\\\\\\\":[], \\\\\\\"excludes\\\\\\\":[]}\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.NewRestoreJob(ctx, \"ecsJob\", \u0026hbr.RestoreJobArgs{\n\t\t\tSnapshotHash:     pulumi.String(ecsSnapshots.Snapshots[0].SnapshotHash),\n\t\t\tVaultId:          pulumi.String(_default.Plans[0].VaultId),\n\t\t\tSourceType:       pulumi.String(\"ECS_FILE\"),\n\t\t\tRestoreType:      pulumi.String(\"ECS_FILE\"),\n\t\t\tSnapshotId:       pulumi.String(ecsSnapshots.Snapshots[0].SnapshotId),\n\t\t\tTargetInstanceId: pulumi.String(_default.Plans[0].InstanceId),\n\t\t\tTargetPath:       pulumi.String(\"/\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetEcsBackupPlansArgs;\nimport com.pulumi.alicloud.hbr.inputs.GetOssBackupPlansArgs;\nimport com.pulumi.alicloud.hbr.inputs.GetNasBackupPlansArgs;\nimport com.pulumi.alicloud.hbr.inputs.GetSnapshotsArgs;\nimport com.pulumi.alicloud.hbr.RestoreJob;\nimport com.pulumi.alicloud.hbr.RestoreJobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = HbrFunctions.getEcsBackupPlans(GetEcsBackupPlansArgs.builder()\n            .nameRegex(\"plan-tf-used-dont-delete\")\n            .build());\n\n        final var defaultGetOssBackupPlans = HbrFunctions.getOssBackupPlans(GetOssBackupPlansArgs.builder()\n            .nameRegex(\"plan-tf-used-dont-delete\")\n            .build());\n\n        final var defaultGetNasBackupPlans = HbrFunctions.getNasBackupPlans(GetNasBackupPlansArgs.builder()\n            .nameRegex(\"plan-tf-used-dont-delete\")\n            .build());\n\n        final var ecsSnapshots = HbrFunctions.getSnapshots(GetSnapshotsArgs.builder()\n            .sourceType(\"ECS_FILE\")\n            .vaultId(default_.plans()[0].vaultId())\n            .instanceId(default_.plans()[0].instanceId())\n            .build());\n\n        final var ossSnapshots = HbrFunctions.getSnapshots(GetSnapshotsArgs.builder()\n            .sourceType(\"OSS\")\n            .vaultId(defaultGetOssBackupPlans.plans()[0].vaultId())\n            .bucket(defaultGetOssBackupPlans.plans()[0].bucket())\n            .build());\n\n        final var nasSnapshots = HbrFunctions.getSnapshots(GetSnapshotsArgs.builder()\n            .sourceType(\"NAS\")\n            .vaultId(defaultGetNasBackupPlans.plans()[0].vaultId())\n            .fileSystemId(defaultGetNasBackupPlans.plans()[0].fileSystemId())\n            .createTime(defaultGetNasBackupPlans.plans()[0].createTime())\n            .build());\n\n        var nasJob = new RestoreJob(\"nasJob\", RestoreJobArgs.builder()\n            .snapshotHash(nasSnapshots.snapshots()[0].snapshotHash())\n            .vaultId(defaultGetNasBackupPlans.plans()[0].vaultId())\n            .sourceType(\"NAS\")\n            .restoreType(\"NAS\")\n            .snapshotId(nasSnapshots.snapshots()[0].snapshotId())\n            .targetFileSystemId(defaultGetNasBackupPlans.plans()[0].fileSystemId())\n            .targetCreateTime(defaultGetNasBackupPlans.plans()[0].createTime())\n            .targetPath(\"/\")\n            .options(\"\"\"\n    {\\\"includes\\\":[], \\\"excludes\\\":[]}\n            \"\"\")\n            .build());\n\n        var ossJob = new RestoreJob(\"ossJob\", RestoreJobArgs.builder()\n            .snapshotHash(ossSnapshots.snapshots()[0].snapshotHash())\n            .vaultId(defaultGetOssBackupPlans.plans()[0].vaultId())\n            .sourceType(\"OSS\")\n            .restoreType(\"OSS\")\n            .snapshotId(ossSnapshots.snapshots()[0].snapshotId())\n            .targetBucket(defaultGetOssBackupPlans.plans()[0].bucket())\n            .targetPrefix(\"\")\n            .options(\"\"\"\n    {\\\"includes\\\":[], \\\"excludes\\\":[]}\n            \"\"\")\n            .build());\n\n        var ecsJob = new RestoreJob(\"ecsJob\", RestoreJobArgs.builder()\n            .snapshotHash(ecsSnapshots.snapshots()[0].snapshotHash())\n            .vaultId(default_.plans()[0].vaultId())\n            .sourceType(\"ECS_FILE\")\n            .restoreType(\"ECS_FILE\")\n            .snapshotId(ecsSnapshots.snapshots()[0].snapshotId())\n            .targetInstanceId(default_.plans()[0].instanceId())\n            .targetPath(\"/\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  nasJob:\n    type: alicloud:hbr:RestoreJob\n    properties:\n      snapshotHash: ${nasSnapshots.snapshots[0].snapshotHash}\n      vaultId: ${defaultGetNasBackupPlans.plans[0].vaultId}\n      sourceType: NAS\n      restoreType: NAS\n      snapshotId: ${nasSnapshots.snapshots[0].snapshotId}\n      targetFileSystemId: ${defaultGetNasBackupPlans.plans[0].fileSystemId}\n      targetCreateTime: ${defaultGetNasBackupPlans.plans[0].createTime}\n      targetPath: /\n      options: |2\n            {\\\"includes\\\":[], \\\"excludes\\\":[]}\n  ossJob:\n    type: alicloud:hbr:RestoreJob\n    properties:\n      snapshotHash: ${ossSnapshots.snapshots[0].snapshotHash}\n      vaultId: ${defaultGetOssBackupPlans.plans[0].vaultId}\n      sourceType: OSS\n      restoreType: OSS\n      snapshotId: ${ossSnapshots.snapshots[0].snapshotId}\n      targetBucket: ${defaultGetOssBackupPlans.plans[0].bucket}\n      targetPrefix: \"\"\n      options: |2\n            {\\\"includes\\\":[], \\\"excludes\\\":[]}\n  ecsJob:\n    type: alicloud:hbr:RestoreJob\n    properties:\n      snapshotHash: ${ecsSnapshots.snapshots[0].snapshotHash}\n      vaultId: ${default.plans[0].vaultId}\n      sourceType: ECS_FILE\n      restoreType: ECS_FILE\n      snapshotId: ${ecsSnapshots.snapshots[0].snapshotId}\n      targetInstanceId: ${default.plans[0].instanceId}\n      targetPath: /\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:hbr:getEcsBackupPlans\n      arguments:\n        nameRegex: plan-tf-used-dont-delete\n  defaultGetOssBackupPlans:\n    fn::invoke:\n      function: alicloud:hbr:getOssBackupPlans\n      arguments:\n        nameRegex: plan-tf-used-dont-delete\n  defaultGetNasBackupPlans:\n    fn::invoke:\n      function: alicloud:hbr:getNasBackupPlans\n      arguments:\n        nameRegex: plan-tf-used-dont-delete\n  ecsSnapshots:\n    fn::invoke:\n      function: alicloud:hbr:getSnapshots\n      arguments:\n        sourceType: ECS_FILE\n        vaultId: ${default.plans[0].vaultId}\n        instanceId: ${default.plans[0].instanceId}\n  ossSnapshots:\n    fn::invoke:\n      function: alicloud:hbr:getSnapshots\n      arguments:\n        sourceType: OSS\n        vaultId: ${defaultGetOssBackupPlans.plans[0].vaultId}\n        bucket: ${defaultGetOssBackupPlans.plans[0].bucket}\n  nasSnapshots:\n    fn::invoke:\n      function: alicloud:hbr:getSnapshots\n      arguments:\n        sourceType: NAS\n        vaultId: ${defaultGetNasBackupPlans.plans[0].vaultId}\n        fileSystemId: ${defaultGetNasBackupPlans.plans[0].fileSystemId}\n        createTime: ${defaultGetNasBackupPlans.plans[0].createTime}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **NOTE:** This resource can only be created, cannot be modified or deleted. Therefore, any modification of the resource attribute will not affect exist resource.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nHybrid Backup Recovery (HBR) Restore Job can be imported using the id. Format to `\u003crestore_job_id\u003e:\u003crestore_type\u003e`, e.g.\n\n```sh\n$ pulumi import alicloud:hbr/restoreJob:RestoreJob example your_restore_job_id:your_restore_type\n```\n\n","properties":{"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n"},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n"},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n"},"exclude":{"type":"string","description":"The exclude path. **NOTE:** Invalid while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OSS` or `NAS`. It's a json string with format:`[\"/excludePath]`, up to 255 characters. **WARNING:** If this value filled in incorrectly, the task may not start correctly, so please check the parameters before executing the plan.\n"},"include":{"type":"string","description":"The include path. **NOTE:** Invalid while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OSS` or `NAS`. It's a json string with format:`[\"/includePath\"]`, Up to 255 characters. **WARNING:** The field is required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE` which means source table name. If this value filled in incorrectly, the task may not start correctly, so please check the parameters before executing the plan.\n"},"options":{"type":"string","description":"Recovery options. **NOTE:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OSS` or `NAS`, invalid while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `ECS_FILE`. It's a json string with format:`\"{\"includes\":[],\"excludes\":[]}\",`. Recovery options. When restores OTS_TABLE and real target time is the rangEnd time of the snapshot, it should be a string with format: `{\"UI_TargetTime\":1650032529018}`.\n"},"otsDetail":{"$ref":"#/types/alicloud:hbr/RestoreJobOtsDetail:RestoreJobOtsDetail","description":"The details about the Tablestore instance. See the following `Block\u003cspan pulumi-lang-nodejs=\" otsDetail`\" pulumi-lang-dotnet=\" OtsDetail`\" pulumi-lang-go=\" otsDetail`\" pulumi-lang-python=\" ots_detail`\" pulumi-lang-yaml=\" otsDetail`\" pulumi-lang-java=\" otsDetail`\"\u003e ots_detail`\u003c/span\u003e.\n"},"restoreJobId":{"type":"string","description":"Restore Job ID. It's the unique key of this resource, if you want to set this argument by yourself, you must specify a unique keyword that never appears.\n"},"restoreType":{"type":"string","description":"The type of recovery destination. Valid values: `ECS_FILE`, `NAS`, `OSS`,`OTS_TABLE`,`UDM_ECS_ROLLBACK`. **Note**: Currently, there is a one-to-one correspondence between the data source type with the recovery destination type.\n"},"snapshotHash":{"type":"string","description":"The hashcode of Snapshot.\n"},"snapshotId":{"type":"string","description":"The ID of Snapshot.\n"},"sourceType":{"type":"string","description":"The type of data source. Valid values: `ECS_FILE`, `NAS`, `OSS`,`OTS_TABLE`,`UDM_ECS`.\n"},"status":{"type":"string","description":"The Restore Job Status.\n"},"targetBucket":{"type":"string","description":"The target name of OSS bucket. **NOTE:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OSS`,\n"},"targetClientId":{"type":"string","description":"The target client ID.\n"},"targetCreateTime":{"type":"string","description":"The creation time of destination File System. **NOTE:** While\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `NAS`, this parameter must be set. **Note:** The time format of the API adopts the ISO 8601 format, such as `2021-07-09T15:45:30CST` or `2021-07-09T07:45:30Z`.\n"},"targetDataSourceId":{"type":"string","description":"The target data source ID.\n"},"targetFileSystemId":{"type":"string","description":"The ID of destination File System. **NOTE:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `NAS`\n"},"targetInstanceId":{"type":"string","description":"The target ID of ECS instance. **NOTE:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `ECS_FILE`\n"},"targetInstanceName":{"type":"string","description":"The name of the Table store instance to which you want to restore data.**WARNING:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`.\n"},"targetPath":{"type":"string","description":"The target file path of (ECS) instance. **WARNING:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `NAS` or `ECS_FILE`, If this value filled in incorrectly, the task may not start correctly, so please check the parameters before executing the plan.\n"},"targetPrefix":{"type":"string","description":"The target prefix of the OSS object. **WARNING:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OSS`. If this value filled in incorrectly, the task may not start correctly, so please check the parameters before executing the plan.\n"},"targetTableName":{"type":"string","description":"The name of the table that stores the restored data. **WARNING:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`.\n"},"targetTime":{"type":"string","description":"The time when data is restored to the Table store instance. This value is a UNIX timestamp. Unit: seconds. **WARNING:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`. **Note:** The time when data is restored to the Tablestore instance. It should be 0 if restores data at the End time of the snapshot.\n"},"udmDetail":{"type":"string","description":"The full machine backup details.\n"},"vaultId":{"type":"string","description":"The ID of backup vault.\n"}},"required":["crossAccountType","otsDetail","restoreJobId","restoreType","snapshotHash","snapshotId","sourceType","status","vaultId"],"inputProperties":{"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n","willReplaceOnChanges":true},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n","willReplaceOnChanges":true},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n","willReplaceOnChanges":true},"exclude":{"type":"string","description":"The exclude path. **NOTE:** Invalid while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OSS` or `NAS`. It's a json string with format:`[\"/excludePath]`, up to 255 characters. **WARNING:** If this value filled in incorrectly, the task may not start correctly, so please check the parameters before executing the plan.\n"},"include":{"type":"string","description":"The include path. **NOTE:** Invalid while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OSS` or `NAS`. It's a json string with format:`[\"/includePath\"]`, Up to 255 characters. **WARNING:** The field is required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE` which means source table name. If this value filled in incorrectly, the task may not start correctly, so please check the parameters before executing the plan.\n"},"options":{"type":"string","description":"Recovery options. **NOTE:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OSS` or `NAS`, invalid while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `ECS_FILE`. It's a json string with format:`\"{\"includes\":[],\"excludes\":[]}\",`. Recovery options. When restores OTS_TABLE and real target time is the rangEnd time of the snapshot, it should be a string with format: `{\"UI_TargetTime\":1650032529018}`.\n","willReplaceOnChanges":true},"otsDetail":{"$ref":"#/types/alicloud:hbr/RestoreJobOtsDetail:RestoreJobOtsDetail","description":"The details about the Tablestore instance. See the following `Block\u003cspan pulumi-lang-nodejs=\" otsDetail`\" pulumi-lang-dotnet=\" OtsDetail`\" pulumi-lang-go=\" otsDetail`\" pulumi-lang-python=\" ots_detail`\" pulumi-lang-yaml=\" otsDetail`\" pulumi-lang-java=\" otsDetail`\"\u003e ots_detail`\u003c/span\u003e.\n"},"restoreJobId":{"type":"string","description":"Restore Job ID. It's the unique key of this resource, if you want to set this argument by yourself, you must specify a unique keyword that never appears.\n","willReplaceOnChanges":true},"restoreType":{"type":"string","description":"The type of recovery destination. Valid values: `ECS_FILE`, `NAS`, `OSS`,`OTS_TABLE`,`UDM_ECS_ROLLBACK`. **Note**: Currently, there is a one-to-one correspondence between the data source type with the recovery destination type.\n","willReplaceOnChanges":true},"snapshotHash":{"type":"string","description":"The hashcode of Snapshot.\n","willReplaceOnChanges":true},"snapshotId":{"type":"string","description":"The ID of Snapshot.\n","willReplaceOnChanges":true},"sourceType":{"type":"string","description":"The type of data source. Valid values: `ECS_FILE`, `NAS`, `OSS`,`OTS_TABLE`,`UDM_ECS`.\n","willReplaceOnChanges":true},"targetBucket":{"type":"string","description":"The target name of OSS bucket. **NOTE:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OSS`,\n","willReplaceOnChanges":true},"targetClientId":{"type":"string","description":"The target client ID.\n","willReplaceOnChanges":true},"targetCreateTime":{"type":"string","description":"The creation time of destination File System. **NOTE:** While\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `NAS`, this parameter must be set. **Note:** The time format of the API adopts the ISO 8601 format, such as `2021-07-09T15:45:30CST` or `2021-07-09T07:45:30Z`.\n","willReplaceOnChanges":true},"targetDataSourceId":{"type":"string","description":"The target data source ID.\n","willReplaceOnChanges":true},"targetFileSystemId":{"type":"string","description":"The ID of destination File System. **NOTE:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `NAS`\n","willReplaceOnChanges":true},"targetInstanceId":{"type":"string","description":"The target ID of ECS instance. **NOTE:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `ECS_FILE`\n","willReplaceOnChanges":true},"targetInstanceName":{"type":"string","description":"The name of the Table store instance to which you want to restore data.**WARNING:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`.\n","willReplaceOnChanges":true},"targetPath":{"type":"string","description":"The target file path of (ECS) instance. **WARNING:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `NAS` or `ECS_FILE`, If this value filled in incorrectly, the task may not start correctly, so please check the parameters before executing the plan.\n","willReplaceOnChanges":true},"targetPrefix":{"type":"string","description":"The target prefix of the OSS object. **WARNING:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OSS`. If this value filled in incorrectly, the task may not start correctly, so please check the parameters before executing the plan.\n","willReplaceOnChanges":true},"targetTableName":{"type":"string","description":"The name of the table that stores the restored data. **WARNING:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`.\n","willReplaceOnChanges":true},"targetTime":{"type":"string","description":"The time when data is restored to the Table store instance. This value is a UNIX timestamp. Unit: seconds. **WARNING:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`. **Note:** The time when data is restored to the Tablestore instance. It should be 0 if restores data at the End time of the snapshot.\n","willReplaceOnChanges":true},"udmDetail":{"type":"string","description":"The full machine backup details.\n","willReplaceOnChanges":true},"vaultId":{"type":"string","description":"The ID of backup vault.\n","willReplaceOnChanges":true}},"requiredInputs":["restoreType","snapshotHash","snapshotId","sourceType","vaultId"],"stateInputs":{"description":"Input properties used for looking up and filtering RestoreJob resources.\n","properties":{"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n","willReplaceOnChanges":true},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n","willReplaceOnChanges":true},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n","willReplaceOnChanges":true},"exclude":{"type":"string","description":"The exclude path. **NOTE:** Invalid while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OSS` or `NAS`. It's a json string with format:`[\"/excludePath]`, up to 255 characters. **WARNING:** If this value filled in incorrectly, the task may not start correctly, so please check the parameters before executing the plan.\n"},"include":{"type":"string","description":"The include path. **NOTE:** Invalid while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OSS` or `NAS`. It's a json string with format:`[\"/includePath\"]`, Up to 255 characters. **WARNING:** The field is required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE` which means source table name. If this value filled in incorrectly, the task may not start correctly, so please check the parameters before executing the plan.\n"},"options":{"type":"string","description":"Recovery options. **NOTE:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OSS` or `NAS`, invalid while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `ECS_FILE`. It's a json string with format:`\"{\"includes\":[],\"excludes\":[]}\",`. Recovery options. When restores OTS_TABLE and real target time is the rangEnd time of the snapshot, it should be a string with format: `{\"UI_TargetTime\":1650032529018}`.\n","willReplaceOnChanges":true},"otsDetail":{"$ref":"#/types/alicloud:hbr/RestoreJobOtsDetail:RestoreJobOtsDetail","description":"The details about the Tablestore instance. See the following `Block\u003cspan pulumi-lang-nodejs=\" otsDetail`\" pulumi-lang-dotnet=\" OtsDetail`\" pulumi-lang-go=\" otsDetail`\" pulumi-lang-python=\" ots_detail`\" pulumi-lang-yaml=\" otsDetail`\" pulumi-lang-java=\" otsDetail`\"\u003e ots_detail`\u003c/span\u003e.\n"},"restoreJobId":{"type":"string","description":"Restore Job ID. It's the unique key of this resource, if you want to set this argument by yourself, you must specify a unique keyword that never appears.\n","willReplaceOnChanges":true},"restoreType":{"type":"string","description":"The type of recovery destination. Valid values: `ECS_FILE`, `NAS`, `OSS`,`OTS_TABLE`,`UDM_ECS_ROLLBACK`. **Note**: Currently, there is a one-to-one correspondence between the data source type with the recovery destination type.\n","willReplaceOnChanges":true},"snapshotHash":{"type":"string","description":"The hashcode of Snapshot.\n","willReplaceOnChanges":true},"snapshotId":{"type":"string","description":"The ID of Snapshot.\n","willReplaceOnChanges":true},"sourceType":{"type":"string","description":"The type of data source. Valid values: `ECS_FILE`, `NAS`, `OSS`,`OTS_TABLE`,`UDM_ECS`.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The Restore Job Status.\n"},"targetBucket":{"type":"string","description":"The target name of OSS bucket. **NOTE:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OSS`,\n","willReplaceOnChanges":true},"targetClientId":{"type":"string","description":"The target client ID.\n","willReplaceOnChanges":true},"targetCreateTime":{"type":"string","description":"The creation time of destination File System. **NOTE:** While\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `NAS`, this parameter must be set. **Note:** The time format of the API adopts the ISO 8601 format, such as `2021-07-09T15:45:30CST` or `2021-07-09T07:45:30Z`.\n","willReplaceOnChanges":true},"targetDataSourceId":{"type":"string","description":"The target data source ID.\n","willReplaceOnChanges":true},"targetFileSystemId":{"type":"string","description":"The ID of destination File System. **NOTE:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `NAS`\n","willReplaceOnChanges":true},"targetInstanceId":{"type":"string","description":"The target ID of ECS instance. **NOTE:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `ECS_FILE`\n","willReplaceOnChanges":true},"targetInstanceName":{"type":"string","description":"The name of the Table store instance to which you want to restore data.**WARNING:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`.\n","willReplaceOnChanges":true},"targetPath":{"type":"string","description":"The target file path of (ECS) instance. **WARNING:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `NAS` or `ECS_FILE`, If this value filled in incorrectly, the task may not start correctly, so please check the parameters before executing the plan.\n","willReplaceOnChanges":true},"targetPrefix":{"type":"string","description":"The target prefix of the OSS object. **WARNING:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OSS`. If this value filled in incorrectly, the task may not start correctly, so please check the parameters before executing the plan.\n","willReplaceOnChanges":true},"targetTableName":{"type":"string","description":"The name of the table that stores the restored data. **WARNING:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`.\n","willReplaceOnChanges":true},"targetTime":{"type":"string","description":"The time when data is restored to the Table store instance. This value is a UNIX timestamp. Unit: seconds. **WARNING:** Required while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OTS_TABLE`. **Note:** The time when data is restored to the Tablestore instance. It should be 0 if restores data at the End time of the snapshot.\n","willReplaceOnChanges":true},"udmDetail":{"type":"string","description":"The full machine backup details.\n","willReplaceOnChanges":true},"vaultId":{"type":"string","description":"The ID of backup vault.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:hbr/serverBackupPlan:ServerBackupPlan":{"description":"Provides a Hybrid Backup Recovery (HBR) Server Backup Plan resource.\n\nFor information about Hybrid Backup Recovery (HBR) Server Backup Plan and how to use it, see [What is Server Backup Plan](https://www.alibabacloud.com/help/doc-detail/211140.htm).\n\n\u003e **NOTE:** Available since v1.142.0.\n\n\u003e **NOTE:** Deprecated since v1.249.0.\n\n\u003e **DEPRECATED:** This resource has been deprecated from version `1.249.0`. Please use new resource\u003cspan pulumi-lang-nodejs=\" alicloud.hbr.Policy \" pulumi-lang-dotnet=\" alicloud.hbr.Policy \" pulumi-lang-go=\" hbr.Policy \" pulumi-lang-python=\" hbr.Policy \" pulumi-lang-yaml=\" alicloud.hbr.Policy \" pulumi-lang-java=\" alicloud.hbr.Policy \"\u003e alicloud.hbr.Policy \u003c/span\u003eand alicloud_hbr_policy_binding.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n});\nconst exampleGetInstanceTypes = example.then(example =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: example.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst exampleGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: \"terraform-example\",\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.ecs.Instance(\"example\", {\n    imageId: exampleGetImages.then(exampleGetImages =\u003e exampleGetImages.images?.[0]?.id),\n    instanceType: exampleGetInstanceTypes.then(exampleGetInstanceTypes =\u003e exampleGetInstanceTypes.instanceTypes?.[0]?.id),\n    availabilityZone: example.then(example =\u003e example.zones?.[0]?.id),\n    securityGroups: [exampleSecurityGroup.id],\n    instanceName: \"terraform-example\",\n    internetChargeType: \"PayByBandwidth\",\n    vswitchId: exampleSwitch.id,\n});\nconst exampleServerBackupPlan = new alicloud.hbr.ServerBackupPlan(\"example\", {\n    ecsServerBackupPlanName: \"terraform-example\",\n    instanceId: exampleInstance.id,\n    schedule: \"I|1602673264|PT2H\",\n    retention: 1,\n    details: [{\n        appConsistent: true,\n        snapshotGroup: true,\n    }],\n    disabled: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.get_zones(available_resource_creation=\"Instance\")\nexample_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=example.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\nexample_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=\"terraform-example\",\n    vpc_id=example_network.id)\nexample_instance = alicloud.ecs.Instance(\"example\",\n    image_id=example_get_images.images[0].id,\n    instance_type=example_get_instance_types.instance_types[0].id,\n    availability_zone=example.zones[0].id,\n    security_groups=[example_security_group.id],\n    instance_name=\"terraform-example\",\n    internet_charge_type=\"PayByBandwidth\",\n    vswitch_id=example_switch.id)\nexample_server_backup_plan = alicloud.hbr.ServerBackupPlan(\"example\",\n    ecs_server_backup_plan_name=\"terraform-example\",\n    instance_id=example_instance.id,\n    schedule=\"I|1602673264|PT2H\",\n    retention=1,\n    details=[{\n        \"app_consistent\": True,\n        \"snapshot_group\": True,\n    }],\n    disabled=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n    });\n\n    var exampleGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var exampleGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = \"terraform-example\",\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Ecs.Instance(\"example\", new()\n    {\n        ImageId = exampleGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = exampleGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        AvailabilityZone = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        SecurityGroups = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n        InstanceName = \"terraform-example\",\n        InternetChargeType = \"PayByBandwidth\",\n        VswitchId = exampleSwitch.Id,\n    });\n\n    var exampleServerBackupPlan = new AliCloud.Hbr.ServerBackupPlan(\"example\", new()\n    {\n        EcsServerBackupPlanName = \"terraform-example\",\n        InstanceId = exampleInstance.Id,\n        Schedule = \"I|1602673264|PT2H\",\n        Retention = 1,\n        Details = new[]\n        {\n            new AliCloud.Hbr.Inputs.ServerBackupPlanDetailArgs\n            {\n                AppConsistent = true,\n                SnapshotGroup = true,\n            },\n        },\n        Disabled = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(example.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(\"terraform-example\"),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := ecs.NewInstance(ctx, \"example\", \u0026ecs.InstanceArgs{\n\t\t\tImageId:          pulumi.String(exampleGetImages.Images[0].Id),\n\t\t\tInstanceType:     pulumi.String(exampleGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tAvailabilityZone: pulumi.String(example.Zones[0].Id),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t\tInstanceName:       pulumi.String(\"terraform-example\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByBandwidth\"),\n\t\t\tVswitchId:          exampleSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.NewServerBackupPlan(ctx, \"example\", \u0026hbr.ServerBackupPlanArgs{\n\t\t\tEcsServerBackupPlanName: pulumi.String(\"terraform-example\"),\n\t\t\tInstanceId:              exampleInstance.ID(),\n\t\t\tSchedule:                pulumi.String(\"I|1602673264|PT2H\"),\n\t\t\tRetention:               pulumi.Int(1),\n\t\t\tDetails: hbr.ServerBackupPlanDetailArray{\n\t\t\t\t\u0026hbr.ServerBackupPlanDetailArgs{\n\t\t\t\t\tAppConsistent: pulumi.Bool(true),\n\t\t\t\t\tSnapshotGroup: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDisabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.hbr.ServerBackupPlan;\nimport com.pulumi.alicloud.hbr.ServerBackupPlanArgs;\nimport com.pulumi.alicloud.hbr.inputs.ServerBackupPlanDetailArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .build());\n\n        final var exampleGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(example.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        final var exampleGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"terraform-example\")\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .imageId(exampleGetImages.images()[0].id())\n            .instanceType(exampleGetInstanceTypes.instanceTypes()[0].id())\n            .availabilityZone(example.zones()[0].id())\n            .securityGroups(exampleSecurityGroup.id())\n            .instanceName(\"terraform-example\")\n            .internetChargeType(\"PayByBandwidth\")\n            .vswitchId(exampleSwitch.id())\n            .build());\n\n        var exampleServerBackupPlan = new ServerBackupPlan(\"exampleServerBackupPlan\", ServerBackupPlanArgs.builder()\n            .ecsServerBackupPlanName(\"terraform-example\")\n            .instanceId(exampleInstance.id())\n            .schedule(\"I|1602673264|PT2H\")\n            .retention(1)\n            .details(ServerBackupPlanDetailArgs.builder()\n                .appConsistent(true)\n                .snapshotGroup(true)\n                .build())\n            .disabled(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: terraform-example\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:ecs:Instance\n    name: example\n    properties:\n      imageId: ${exampleGetImages.images[0].id}\n      instanceType: ${exampleGetInstanceTypes.instanceTypes[0].id}\n      availabilityZone: ${example.zones[0].id}\n      securityGroups:\n        - ${exampleSecurityGroup.id}\n      instanceName: terraform-example\n      internetChargeType: PayByBandwidth\n      vswitchId: ${exampleSwitch.id}\n  exampleServerBackupPlan:\n    type: alicloud:hbr:ServerBackupPlan\n    name: example\n    properties:\n      ecsServerBackupPlanName: terraform-example\n      instanceId: ${exampleInstance.id}\n      schedule: I|1602673264|PT2H\n      retention: 1\n      details:\n        - appConsistent: true\n          snapshotGroup: true\n      disabled: false\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: Instance\n  exampleGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${example.zones[0].id}\n        cpuCoreCount: 1\n        memorySize: 2\n  exampleGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nHybrid Backup Recovery (HBR) Server Backup Plan can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:hbr/serverBackupPlan:ServerBackupPlan example \u003cid\u003e\n```\n\n","properties":{"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n"},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n"},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n"},"details":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/ServerBackupPlanDetail:ServerBackupPlanDetail"},"description":"ECS server backup plan details.\n"},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ecsServerBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"instanceId":{"type":"string","description":"The ID of ECS instance.\n"},"retention":{"type":"integer","description":"Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`\n* `startTime` Backup start time, UNIX time, in seconds.\n"}},"required":["crossAccountType","details","disabled","ecsServerBackupPlanName","instanceId","retention","schedule"],"inputProperties":{"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n","willReplaceOnChanges":true},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n","willReplaceOnChanges":true},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n","willReplaceOnChanges":true},"details":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/ServerBackupPlanDetail:ServerBackupPlanDetail"},"description":"ECS server backup plan details.\n"},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ecsServerBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"instanceId":{"type":"string","description":"The ID of ECS instance.\n","willReplaceOnChanges":true},"retention":{"type":"integer","description":"Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`\n* `startTime` Backup start time, UNIX time, in seconds.\n"}},"requiredInputs":["details","ecsServerBackupPlanName","instanceId","retention","schedule"],"stateInputs":{"description":"Input properties used for looking up and filtering ServerBackupPlan resources.\n","properties":{"crossAccountRoleName":{"type":"string","description":"The role name created in the original account RAM backup by the cross account managed by the current account.\n","willReplaceOnChanges":true},"crossAccountType":{"type":"string","description":"The type of the cross account backup. Valid values: `SELF_ACCOUNT`, `CROSS_ACCOUNT`.\n","willReplaceOnChanges":true},"crossAccountUserId":{"type":"integer","description":"The original account ID of the cross account backup managed by the current account.\n","willReplaceOnChanges":true},"details":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/ServerBackupPlanDetail:ServerBackupPlanDetail"},"description":"ECS server backup plan details.\n"},"disabled":{"type":"boolean","description":"Whether to disable the backup task. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ecsServerBackupPlanName":{"type":"string","description":"The name of the backup plan. 1~64 characters, the backup plan name of each data source type in a single warehouse required to be unique.\n"},"instanceId":{"type":"string","description":"The ID of ECS instance.\n","willReplaceOnChanges":true},"retention":{"type":"integer","description":"Backup retention days, the minimum is 1.\n"},"schedule":{"type":"string","description":"Backup strategy. Optional format: `I|{startTime}|{interval}`\n* `startTime` Backup start time, UNIX time, in seconds.\n"}},"type":"object"}},"alicloud:hbr/vault:Vault":{"description":"Provides a Hybrid Backup Recovery (HBR) Vault resource.\n\nWhere backup or archived data is stored.\n\nFor information about Hybrid Backup Recovery (HBR) Vault and how to use it, see [What is Vault](https://www.alibabacloud.com/help/en/hybrid-backup-recovery/latest/api-hbr-2017-09-08-createvault).\n\n\u003e **NOTE:** Available since v1.129.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst example = new alicloud.hbr.Vault(\"example\", {vaultName: `example_value_${_default.result}`});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample = alicloud.hbr.Vault(\"example\", vault_name=f\"example_value_{default['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var example = new AliCloud.Hbr.Vault(\"example\", new()\n    {\n        VaultName = $\"example_value_{@default.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.NewVault(ctx, \"example\", \u0026hbr.VaultArgs{\n\t\t\tVaultName: pulumi.Sprintf(\"example_value_%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.hbr.Vault;\nimport com.pulumi.alicloud.hbr.VaultArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var example = new Vault(\"example\", VaultArgs.builder()\n            .vaultName(String.format(\"example_value_%s\", default_.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  example:\n    type: alicloud:hbr:Vault\n    properties:\n      vaultName: example_value_${default.result}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nHybrid Backup Recovery (HBR) Vault can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:hbr/vault:Vault example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"(Available since v1.243.0) The time when the backup vault was created.\n"},"description":{"type":"string","description":"The description of Vault. Defaults to an empty string.\n"},"encryptType":{"type":"string","description":"Source Encryption Type，It is valid only when\u003cspan pulumi-lang-nodejs=\" vaultType \" pulumi-lang-dotnet=\" VaultType \" pulumi-lang-go=\" vaultType \" pulumi-lang-python=\" vault_type \" pulumi-lang-yaml=\" vaultType \" pulumi-lang-java=\" vaultType \"\u003e vault_type \u003c/span\u003eis `STANDARD` or `OTS_BACKUP`. Default value: `HBR_PRIVATE`. Valid values:\n- `HBR_PRIVATE`: HBR is fully hosted, uses the backup service's own encryption method.\n- `KMS`: Use Alibaba Cloud Kms to encryption.\n"},"kmsKeyId":{"type":"string","description":"The key id or alias name of Alibaba Cloud Kms. It is required and valid only when\u003cspan pulumi-lang-nodejs=\" encryptType \" pulumi-lang-dotnet=\" EncryptType \" pulumi-lang-go=\" encryptType \" pulumi-lang-python=\" encrypt_type \" pulumi-lang-yaml=\" encryptType \" pulumi-lang-java=\" encryptType \"\u003e encrypt_type \u003c/span\u003eis `KMS`.\n"},"regionId":{"type":"string","description":"(Available since v1.243.0) The ID of the region in which the backup vault resides.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the Vault.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"vaultName":{"type":"string","description":"The name of Vault.\n"},"vaultStorageClass":{"type":"string","description":"The storage class of Vault. Valid values: `STANDARD`.\n"},"vaultType":{"type":"string","description":"The type of Vault. Valid values:\n- `STANDARD`: Standard backup vault.\n- `OTS_BACKUP`: Backup vault for Tablestore. **NOTE:** We recommend that you use `STANDARD`. The cloud backup product will upgrade the backup vault, and the \u003cspan pulumi-lang-nodejs=\"`vaultType`\" pulumi-lang-dotnet=\"`VaultType`\" pulumi-lang-go=\"`vaultType`\" pulumi-lang-python=\"`vault_type`\" pulumi-lang-yaml=\"`vaultType`\" pulumi-lang-java=\"`vaultType`\"\u003e`vault_type`\u003c/span\u003e will be changed from `OTS_BACKUP` to `STANDARD`.\n"},"wormEnabled":{"type":"boolean","description":"Indicates whether the immutable backup feature is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"required":["createTime","encryptType","regionId","resourceGroupId","status","vaultName","vaultStorageClass","vaultType"],"inputProperties":{"description":{"type":"string","description":"The description of Vault. Defaults to an empty string.\n"},"encryptType":{"type":"string","description":"Source Encryption Type，It is valid only when\u003cspan pulumi-lang-nodejs=\" vaultType \" pulumi-lang-dotnet=\" VaultType \" pulumi-lang-go=\" vaultType \" pulumi-lang-python=\" vault_type \" pulumi-lang-yaml=\" vaultType \" pulumi-lang-java=\" vaultType \"\u003e vault_type \u003c/span\u003eis `STANDARD` or `OTS_BACKUP`. Default value: `HBR_PRIVATE`. Valid values:\n- `HBR_PRIVATE`: HBR is fully hosted, uses the backup service's own encryption method.\n- `KMS`: Use Alibaba Cloud Kms to encryption.\n","willReplaceOnChanges":true},"kmsKeyId":{"type":"string","description":"The key id or alias name of Alibaba Cloud Kms. It is required and valid only when\u003cspan pulumi-lang-nodejs=\" encryptType \" pulumi-lang-dotnet=\" EncryptType \" pulumi-lang-go=\" encryptType \" pulumi-lang-python=\" encrypt_type \" pulumi-lang-yaml=\" encryptType \" pulumi-lang-java=\" encryptType \"\u003e encrypt_type \u003c/span\u003eis `KMS`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"vaultName":{"type":"string","description":"The name of Vault.\n"},"vaultStorageClass":{"type":"string","description":"The storage class of Vault. Valid values: `STANDARD`.\n","willReplaceOnChanges":true},"vaultType":{"type":"string","description":"The type of Vault. Valid values:\n- `STANDARD`: Standard backup vault.\n- `OTS_BACKUP`: Backup vault for Tablestore. **NOTE:** We recommend that you use `STANDARD`. The cloud backup product will upgrade the backup vault, and the \u003cspan pulumi-lang-nodejs=\"`vaultType`\" pulumi-lang-dotnet=\"`VaultType`\" pulumi-lang-go=\"`vaultType`\" pulumi-lang-python=\"`vault_type`\" pulumi-lang-yaml=\"`vaultType`\" pulumi-lang-java=\"`vaultType`\"\u003e`vault_type`\u003c/span\u003e will be changed from `OTS_BACKUP` to `STANDARD`.\n","willReplaceOnChanges":true},"wormEnabled":{"type":"boolean","description":"Indicates whether the immutable backup feature is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"requiredInputs":["vaultName"],"stateInputs":{"description":"Input properties used for looking up and filtering Vault resources.\n","properties":{"createTime":{"type":"string","description":"(Available since v1.243.0) The time when the backup vault was created.\n"},"description":{"type":"string","description":"The description of Vault. Defaults to an empty string.\n"},"encryptType":{"type":"string","description":"Source Encryption Type，It is valid only when\u003cspan pulumi-lang-nodejs=\" vaultType \" pulumi-lang-dotnet=\" VaultType \" pulumi-lang-go=\" vaultType \" pulumi-lang-python=\" vault_type \" pulumi-lang-yaml=\" vaultType \" pulumi-lang-java=\" vaultType \"\u003e vault_type \u003c/span\u003eis `STANDARD` or `OTS_BACKUP`. Default value: `HBR_PRIVATE`. Valid values:\n- `HBR_PRIVATE`: HBR is fully hosted, uses the backup service's own encryption method.\n- `KMS`: Use Alibaba Cloud Kms to encryption.\n","willReplaceOnChanges":true},"kmsKeyId":{"type":"string","description":"The key id or alias name of Alibaba Cloud Kms. It is required and valid only when\u003cspan pulumi-lang-nodejs=\" encryptType \" pulumi-lang-dotnet=\" EncryptType \" pulumi-lang-go=\" encryptType \" pulumi-lang-python=\" encrypt_type \" pulumi-lang-yaml=\" encryptType \" pulumi-lang-java=\" encryptType \"\u003e encrypt_type \u003c/span\u003eis `KMS`.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"(Available since v1.243.0) The ID of the region in which the backup vault resides.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the Vault.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"vaultName":{"type":"string","description":"The name of Vault.\n"},"vaultStorageClass":{"type":"string","description":"The storage class of Vault. Valid values: `STANDARD`.\n","willReplaceOnChanges":true},"vaultType":{"type":"string","description":"The type of Vault. Valid values:\n- `STANDARD`: Standard backup vault.\n- `OTS_BACKUP`: Backup vault for Tablestore. **NOTE:** We recommend that you use `STANDARD`. The cloud backup product will upgrade the backup vault, and the \u003cspan pulumi-lang-nodejs=\"`vaultType`\" pulumi-lang-dotnet=\"`VaultType`\" pulumi-lang-go=\"`vaultType`\" pulumi-lang-python=\"`vault_type`\" pulumi-lang-yaml=\"`vaultType`\" pulumi-lang-java=\"`vaultType`\"\u003e`vault_type`\u003c/span\u003e will be changed from `OTS_BACKUP` to `STANDARD`.\n","willReplaceOnChanges":true},"wormEnabled":{"type":"boolean","description":"Indicates whether the immutable backup feature is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:hologram/instance:Instance":{"description":"Provides a Hologres (Hologram) Instance resource.\n\n\n\nFor information about Hologres (Hologram) Instance and how to use it, see [What is Instance](https://www.alibabacloud.com/help/zh/hologres/developer-reference/api-hologram-2022-06-01-createinstance).\n\n\u003e **NOTE:** Available since v1.213.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultVpc = new alicloud.vpc.Network(\"defaultVpc\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: name,\n});\nconst defaultVSwitch = new alicloud.vpc.Switch(\"defaultVSwitch\", {\n    vpcId: defaultVpc.id,\n    zoneId: \"cn-hangzhou-j\",\n    cidrBlock: \"172.16.53.0/24\",\n    vswitchName: name,\n});\nconst _default = new alicloud.hologram.Instance(\"default\", {\n    instanceType: \"Standard\",\n    pricingCycle: \"Hour\",\n    cpu: 32,\n    endpoints: [\n        {\n            type: \"Intranet\",\n        },\n        {\n            type: \"VPCSingleTunnel\",\n            vswitchId: defaultVSwitch.id,\n            vpcId: defaultVSwitch.vpcId,\n        },\n    ],\n    zoneId: defaultVSwitch.zoneId,\n    instanceName: name,\n    paymentType: \"PayAsYouGo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_vpc = alicloud.vpc.Network(\"defaultVpc\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=name)\ndefault_v_switch = alicloud.vpc.Switch(\"defaultVSwitch\",\n    vpc_id=default_vpc.id,\n    zone_id=\"cn-hangzhou-j\",\n    cidr_block=\"172.16.53.0/24\",\n    vswitch_name=name)\ndefault = alicloud.hologram.Instance(\"default\",\n    instance_type=\"Standard\",\n    pricing_cycle=\"Hour\",\n    cpu=32,\n    endpoints=[\n        {\n            \"type\": \"Intranet\",\n        },\n        {\n            \"type\": \"VPCSingleTunnel\",\n            \"vswitch_id\": default_v_switch.id,\n            \"vpc_id\": default_v_switch.vpc_id,\n        },\n    ],\n    zone_id=default_v_switch.zone_id,\n    instance_name=name,\n    payment_type=\"PayAsYouGo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultVpc = new AliCloud.Vpc.Network(\"defaultVpc\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = name,\n    });\n\n    var defaultVSwitch = new AliCloud.Vpc.Switch(\"defaultVSwitch\", new()\n    {\n        VpcId = defaultVpc.Id,\n        ZoneId = \"cn-hangzhou-j\",\n        CidrBlock = \"172.16.53.0/24\",\n        VswitchName = name,\n    });\n\n    var @default = new AliCloud.Hologram.Instance(\"default\", new()\n    {\n        InstanceType = \"Standard\",\n        PricingCycle = \"Hour\",\n        Cpu = 32,\n        Endpoints = new[]\n        {\n            new AliCloud.Hologram.Inputs.InstanceEndpointArgs\n            {\n                Type = \"Intranet\",\n            },\n            new AliCloud.Hologram.Inputs.InstanceEndpointArgs\n            {\n                Type = \"VPCSingleTunnel\",\n                VswitchId = defaultVSwitch.Id,\n                VpcId = defaultVSwitch.VpcId,\n            },\n        },\n        ZoneId = defaultVSwitch.ZoneId,\n        InstanceName = name,\n        PaymentType = \"PayAsYouGo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hologram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultVpc, err := vpc.NewNetwork(ctx, \"defaultVpc\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVSwitch, err := vpc.NewSwitch(ctx, \"defaultVSwitch\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultVpc.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-j\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.53.0/24\"),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hologram.NewInstance(ctx, \"default\", \u0026hologram.InstanceArgs{\n\t\t\tInstanceType: pulumi.String(\"Standard\"),\n\t\t\tPricingCycle: pulumi.String(\"Hour\"),\n\t\t\tCpu:          pulumi.Int(32),\n\t\t\tEndpoints: hologram.InstanceEndpointArray{\n\t\t\t\t\u0026hologram.InstanceEndpointArgs{\n\t\t\t\t\tType: pulumi.String(\"Intranet\"),\n\t\t\t\t},\n\t\t\t\t\u0026hologram.InstanceEndpointArgs{\n\t\t\t\t\tType:      pulumi.String(\"VPCSingleTunnel\"),\n\t\t\t\t\tVswitchId: defaultVSwitch.ID(),\n\t\t\t\t\tVpcId:     defaultVSwitch.VpcId,\n\t\t\t\t},\n\t\t\t},\n\t\t\tZoneId:       defaultVSwitch.ZoneId,\n\t\t\tInstanceName: pulumi.String(name),\n\t\t\tPaymentType:  pulumi.String(\"PayAsYouGo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.hologram.Instance;\nimport com.pulumi.alicloud.hologram.InstanceArgs;\nimport com.pulumi.alicloud.hologram.inputs.InstanceEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultVpc = new Network(\"defaultVpc\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(name)\n            .build());\n\n        var defaultVSwitch = new Switch(\"defaultVSwitch\", SwitchArgs.builder()\n            .vpcId(defaultVpc.id())\n            .zoneId(\"cn-hangzhou-j\")\n            .cidrBlock(\"172.16.53.0/24\")\n            .vswitchName(name)\n            .build());\n\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .instanceType(\"Standard\")\n            .pricingCycle(\"Hour\")\n            .cpu(32)\n            .endpoints(            \n                InstanceEndpointArgs.builder()\n                    .type(\"Intranet\")\n                    .build(),\n                InstanceEndpointArgs.builder()\n                    .type(\"VPCSingleTunnel\")\n                    .vswitchId(defaultVSwitch.id())\n                    .vpcId(defaultVSwitch.vpcId())\n                    .build())\n            .zoneId(defaultVSwitch.zoneId())\n            .instanceName(name)\n            .paymentType(\"PayAsYouGo\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultVpc:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName: ${name}\n  defaultVSwitch:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultVpc.id}\n      zoneId: cn-hangzhou-j\n      cidrBlock: 172.16.53.0/24\n      vswitchName: ${name}\n  default:\n    type: alicloud:hologram:Instance\n    properties:\n      instanceType: Standard\n      pricingCycle: Hour\n      cpu: '32'\n      endpoints:\n        - type: Intranet\n        - type: VPCSingleTunnel\n          vswitchId: ${defaultVSwitch.id}\n          vpcId: ${defaultVSwitch.vpcId}\n      zoneId: ${defaultVSwitch.zoneId}\n      instanceName: ${name}\n      paymentType: PayAsYouGo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.hologram.Instance`\" pulumi-lang-dotnet=\"`alicloud.hologram.Instance`\" pulumi-lang-go=\"`hologram.Instance`\" pulumi-lang-python=\"`hologram.Instance`\" pulumi-lang-yaml=\"`alicloud.hologram.Instance`\" pulumi-lang-java=\"`alicloud.hologram.Instance`\"\u003e`alicloud.hologram.Instance`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.hologram.Instance`\" pulumi-lang-dotnet=\"`alicloud.hologram.Instance`\" pulumi-lang-go=\"`hologram.Instance`\" pulumi-lang-python=\"`hologram.Instance`\" pulumi-lang-yaml=\"`alicloud.hologram.Instance`\" pulumi-lang-java=\"`alicloud.hologram.Instance`\"\u003e`alicloud.hologram.Instance`\u003c/span\u003e resource allows you to manage  \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"Subscription\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nHologram Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:hologram/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"autoPay":{"type":"boolean","description":"Whether to pay automatically. The default value is true. Value:\n- true: automatic payment\n- false: only generate orders, not pay\n\u003e **NOTE:**  The default value is true. If the balance of your payment method is insufficient, you can set the parameter AutoPay to false, and an unpaid order will be generated. You can log in to the user Center to pay by yourself.\n"},"coldStorageSize":{"type":"integer","description":"Instance low-frequency storage space. Unit: GB.\n\u003e **NOTE:**  PayAsYouGo (PostPaid) instances ignore this parameter.\n"},"cpu":{"type":"integer","description":"Instance specifications. Value:\n- 8 cores 32 GB (number of compute nodes: 1)\n- 16 cores 64 GB (number of compute nodes: 1)\n- 32 core 128 GB (number of compute nodes: 2)\n- 64 core 256 GB (number of compute nodes: 4)\n- 96 core 384 GB (number of computing nodes: 6)\n- 128 core 512 GB (number of compute nodes: 8)\n\u003e **NOTE:** Just fill in the audit number. Please submit a work order application for purchasing 1024 or above specifications. Shared instance types do not need to specify specifications. The specification of - 8 core 32GB (number of computing nodes: 1) is only for experience use and cannot be used for production.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"duration":{"type":"integer","description":"The buying cycle. Buy for 2 months. If the Payment type is PayAsYouGo (PostPaid), you do not need to specify it.\n"},"enableSsl":{"type":"boolean","description":"Specifies whether to enable SSL encryption. Default Value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"endpoints":{"type":"array","items":{"$ref":"#/types/alicloud:hologram/InstanceEndpoint:InstanceEndpoint"},"description":"List of domain names. See \u003cspan pulumi-lang-nodejs=\"`endpoints`\" pulumi-lang-dotnet=\"`Endpoints`\" pulumi-lang-go=\"`endpoints`\" pulumi-lang-python=\"`endpoints`\" pulumi-lang-yaml=\"`endpoints`\" pulumi-lang-java=\"`endpoints`\"\u003e`endpoints`\u003c/span\u003e below.\n"},"gatewayCount":{"type":"integer","description":"Number of gateway nodes.\n"},"initialDatabases":{"type":"string","description":"Initialize the database and split multiple database names \",\".\n"},"instanceName":{"type":"string","description":"The name of the resource.\n"},"instanceType":{"type":"string","description":"The instance type. Value:\n- Standard: Universal.\n- Follower: Read-only slave instance.\n- Warehouse: calculation group type.\n- Shared: Shared.\n- Serverless: (Available since v1.259.0) Serverless.\n"},"leaderInstanceId":{"type":"string","description":"The ID of the primary instance.\n"},"paymentType":{"type":"string","description":"The payment type of the resource.\n"},"pricingCycle":{"type":"string","description":"Billing cycle. Value:\n- Month: monthly billing\n- Hour: hourly billing\n\u003e **NOTE:**  Subscription instances (PrePaid) only supports Month. PayAsYouGo instances (PostPaid) only supports Hour. The Shared type is automatically set to Hour without specifying it.\n"},"regionId":{"type":"string","description":"(Available since v1.259.0) The region ID.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"scaleType":{"type":"string","description":"Change matching type. Value:\n- UPGRADE: UPGRADE\n- DOWNGRADE: Downgrading\n\u003e **NOTE:** The upgrade specification cannot be less than the original specification. A blank field indicates that the original specification remains unchanged. On this basis, at least one specification is larger than the original specification. The downgrading specification cannot be greater than the original specification. A blank field indicates that the original specification remains unchanged. On this basis, at least one specification is smaller than the original specification.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"storageSize":{"type":"integer","description":"The standard storage space of the instance. Unit: GB.\n\u003e **NOTE:**  PayAsYouGo instances (PostPaid) ignore this parameter.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Instance tag.\n"},"zoneId":{"type":"string","description":"The zone Id. Refer to \"Instructions for Use\".\n"}},"required":["cpu","createTime","endpoints","instanceName","instanceType","paymentType","regionId","resourceGroupId","status","zoneId"],"inputProperties":{"autoPay":{"type":"boolean","description":"Whether to pay automatically. The default value is true. Value:\n- true: automatic payment\n- false: only generate orders, not pay\n\u003e **NOTE:**  The default value is true. If the balance of your payment method is insufficient, you can set the parameter AutoPay to false, and an unpaid order will be generated. You can log in to the user Center to pay by yourself.\n"},"coldStorageSize":{"type":"integer","description":"Instance low-frequency storage space. Unit: GB.\n\u003e **NOTE:**  PayAsYouGo (PostPaid) instances ignore this parameter.\n"},"cpu":{"type":"integer","description":"Instance specifications. Value:\n- 8 cores 32 GB (number of compute nodes: 1)\n- 16 cores 64 GB (number of compute nodes: 1)\n- 32 core 128 GB (number of compute nodes: 2)\n- 64 core 256 GB (number of compute nodes: 4)\n- 96 core 384 GB (number of computing nodes: 6)\n- 128 core 512 GB (number of compute nodes: 8)\n\u003e **NOTE:** Just fill in the audit number. Please submit a work order application for purchasing 1024 or above specifications. Shared instance types do not need to specify specifications. The specification of - 8 core 32GB (number of computing nodes: 1) is only for experience use and cannot be used for production.\n"},"duration":{"type":"integer","description":"The buying cycle. Buy for 2 months. If the Payment type is PayAsYouGo (PostPaid), you do not need to specify it.\n"},"enableSsl":{"type":"boolean","description":"Specifies whether to enable SSL encryption. Default Value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"endpoints":{"type":"array","items":{"$ref":"#/types/alicloud:hologram/InstanceEndpoint:InstanceEndpoint"},"description":"List of domain names. See \u003cspan pulumi-lang-nodejs=\"`endpoints`\" pulumi-lang-dotnet=\"`Endpoints`\" pulumi-lang-go=\"`endpoints`\" pulumi-lang-python=\"`endpoints`\" pulumi-lang-yaml=\"`endpoints`\" pulumi-lang-java=\"`endpoints`\"\u003e`endpoints`\u003c/span\u003e below.\n"},"gatewayCount":{"type":"integer","description":"Number of gateway nodes.\n"},"initialDatabases":{"type":"string","description":"Initialize the database and split multiple database names \",\".\n"},"instanceName":{"type":"string","description":"The name of the resource.\n"},"instanceType":{"type":"string","description":"The instance type. Value:\n- Standard: Universal.\n- Follower: Read-only slave instance.\n- Warehouse: calculation group type.\n- Shared: Shared.\n- Serverless: (Available since v1.259.0) Serverless.\n","willReplaceOnChanges":true},"leaderInstanceId":{"type":"string","description":"The ID of the primary instance.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The payment type of the resource.\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"Billing cycle. Value:\n- Month: monthly billing\n- Hour: hourly billing\n\u003e **NOTE:**  Subscription instances (PrePaid) only supports Month. PayAsYouGo instances (PostPaid) only supports Hour. The Shared type is automatically set to Hour without specifying it.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"scaleType":{"type":"string","description":"Change matching type. Value:\n- UPGRADE: UPGRADE\n- DOWNGRADE: Downgrading\n\u003e **NOTE:** The upgrade specification cannot be less than the original specification. A blank field indicates that the original specification remains unchanged. On this basis, at least one specification is larger than the original specification. The downgrading specification cannot be greater than the original specification. A blank field indicates that the original specification remains unchanged. On this basis, at least one specification is smaller than the original specification.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"storageSize":{"type":"integer","description":"The standard storage space of the instance. Unit: GB.\n\u003e **NOTE:**  PayAsYouGo instances (PostPaid) ignore this parameter.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Instance tag.\n"},"zoneId":{"type":"string","description":"The zone Id. Refer to \"Instructions for Use\".\n","willReplaceOnChanges":true}},"requiredInputs":["instanceName","instanceType","paymentType","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"autoPay":{"type":"boolean","description":"Whether to pay automatically. The default value is true. Value:\n- true: automatic payment\n- false: only generate orders, not pay\n\u003e **NOTE:**  The default value is true. If the balance of your payment method is insufficient, you can set the parameter AutoPay to false, and an unpaid order will be generated. You can log in to the user Center to pay by yourself.\n"},"coldStorageSize":{"type":"integer","description":"Instance low-frequency storage space. Unit: GB.\n\u003e **NOTE:**  PayAsYouGo (PostPaid) instances ignore this parameter.\n"},"cpu":{"type":"integer","description":"Instance specifications. Value:\n- 8 cores 32 GB (number of compute nodes: 1)\n- 16 cores 64 GB (number of compute nodes: 1)\n- 32 core 128 GB (number of compute nodes: 2)\n- 64 core 256 GB (number of compute nodes: 4)\n- 96 core 384 GB (number of computing nodes: 6)\n- 128 core 512 GB (number of compute nodes: 8)\n\u003e **NOTE:** Just fill in the audit number. Please submit a work order application for purchasing 1024 or above specifications. Shared instance types do not need to specify specifications. The specification of - 8 core 32GB (number of computing nodes: 1) is only for experience use and cannot be used for production.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"duration":{"type":"integer","description":"The buying cycle. Buy for 2 months. If the Payment type is PayAsYouGo (PostPaid), you do not need to specify it.\n"},"enableSsl":{"type":"boolean","description":"Specifies whether to enable SSL encryption. Default Value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"endpoints":{"type":"array","items":{"$ref":"#/types/alicloud:hologram/InstanceEndpoint:InstanceEndpoint"},"description":"List of domain names. See \u003cspan pulumi-lang-nodejs=\"`endpoints`\" pulumi-lang-dotnet=\"`Endpoints`\" pulumi-lang-go=\"`endpoints`\" pulumi-lang-python=\"`endpoints`\" pulumi-lang-yaml=\"`endpoints`\" pulumi-lang-java=\"`endpoints`\"\u003e`endpoints`\u003c/span\u003e below.\n"},"gatewayCount":{"type":"integer","description":"Number of gateway nodes.\n"},"initialDatabases":{"type":"string","description":"Initialize the database and split multiple database names \",\".\n"},"instanceName":{"type":"string","description":"The name of the resource.\n"},"instanceType":{"type":"string","description":"The instance type. Value:\n- Standard: Universal.\n- Follower: Read-only slave instance.\n- Warehouse: calculation group type.\n- Shared: Shared.\n- Serverless: (Available since v1.259.0) Serverless.\n","willReplaceOnChanges":true},"leaderInstanceId":{"type":"string","description":"The ID of the primary instance.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The payment type of the resource.\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"Billing cycle. Value:\n- Month: monthly billing\n- Hour: hourly billing\n\u003e **NOTE:**  Subscription instances (PrePaid) only supports Month. PayAsYouGo instances (PostPaid) only supports Hour. The Shared type is automatically set to Hour without specifying it.\n"},"regionId":{"type":"string","description":"(Available since v1.259.0) The region ID.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"scaleType":{"type":"string","description":"Change matching type. Value:\n- UPGRADE: UPGRADE\n- DOWNGRADE: Downgrading\n\u003e **NOTE:** The upgrade specification cannot be less than the original specification. A blank field indicates that the original specification remains unchanged. On this basis, at least one specification is larger than the original specification. The downgrading specification cannot be greater than the original specification. A blank field indicates that the original specification remains unchanged. On this basis, at least one specification is smaller than the original specification.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"storageSize":{"type":"integer","description":"The standard storage space of the instance. Unit: GB.\n\u003e **NOTE:**  PayAsYouGo instances (PostPaid) ignore this parameter.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Instance tag.\n"},"zoneId":{"type":"string","description":"The zone Id. Refer to \"Instructions for Use\".\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:imm/project:Project":{"description":"Provides a Intelligent Media Management Project resource.\n\nFor information about Intelligent Media Management Project and how to use it, see [What is Project](https://www.alibabacloud.com/help/en/network-intelligence-service/latest/user-overview).\n\n\u003e **NOTE:** Available since v1.134.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst role = new alicloud.ram.Role(\"role\", {\n    name: name,\n    document: `  {\n    \\\\\"Statement\\\\\": [\n      {\n        \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n        \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n        \\\\\"Principal\\\\\": {\n          \\\\\"Service\\\\\": [\n            \\\\\"imm.aliyuncs.com\\\\\"\n          ]\n        }\n      }\n    ],\n    \\\\\"Version\\\\\": \\\\\"1\\\\\"\n  }\n`,\n    description: \"this is a role test.\",\n    force: true,\n});\nconst example = new alicloud.imm.Project(\"example\", {\n    project: name,\n    serviceRole: role.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\nrole = alicloud.ram.Role(\"role\",\n    name=name,\n    document=\"\"\"  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"imm.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n\"\"\",\n    description=\"this is a role test.\",\n    force=True)\nexample = alicloud.imm.Project(\"example\",\n    project=name,\n    service_role=role.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var role = new AliCloud.Ram.Role(\"role\", new()\n    {\n        Name = name,\n        Document = @\"  {\n    \\\"\"Statement\\\"\": [\n      {\n        \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n        \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n        \\\"\"Principal\\\"\": {\n          \\\"\"Service\\\"\": [\n            \\\"\"imm.aliyuncs.com\\\"\"\n          ]\n        }\n      }\n    ],\n    \\\"\"Version\\\"\": \\\"\"1\\\"\"\n  }\n\",\n        Description = \"this is a role test.\",\n        Force = true,\n    });\n\n    var example = new AliCloud.Imm.Project(\"example\", new()\n    {\n        ProjectName = name,\n        ServiceRole = role.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/imm\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\trole, err := ram.NewRole(ctx, \"role\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.String(name),\n\t\t\tDocument: pulumi.String(`  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"imm.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n`),\n\t\t\tDescription: pulumi.String(\"this is a role test.\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = imm.NewProject(ctx, \"example\", \u0026imm.ProjectArgs{\n\t\t\tProject:     pulumi.String(name),\n\t\t\tServiceRole: role.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.imm.Project;\nimport com.pulumi.alicloud.imm.ProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        var role = new Role(\"role\", RoleArgs.builder()\n            .name(name)\n            .document(\"\"\"\n  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"imm.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n            \"\"\")\n            .description(\"this is a role test.\")\n            .force(true)\n            .build());\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .project(name)\n            .serviceRole(role.name())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  role:\n    type: alicloud:ram:Role\n    properties:\n      name: ${name}\n      document: |2\n          {\n            \\\"Statement\\\": [\n              {\n                \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                \\\"Effect\\\": \\\"Allow\\\",\n                \\\"Principal\\\": {\n                  \\\"Service\\\": [\n                    \\\"imm.aliyuncs.com\\\"\n                  ]\n                }\n              }\n            ],\n            \\\"Version\\\": \\\"1\\\"\n          }\n      description: this is a role test.\n      force: true\n  example:\n    type: alicloud:imm:Project\n    properties:\n      project: ${name}\n      serviceRole: ${role.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nIntelligent Media Management Project can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:imm/project:Project example \u003cproject\u003e\n```\n\n","properties":{"project":{"type":"string","description":"The name of Project.\n","language":{"csharp":{"name":"ProjectName"}}},"serviceRole":{"type":"string","description":"The service role authorized to the Intelligent Media Management service to access other cloud resources. Default value: `AliyunIMMDefaultRole`. You can also create authorization  roles through the \u003cspan pulumi-lang-nodejs=\"`alicloud.ram.Role`\" pulumi-lang-dotnet=\"`alicloud.ram.Role`\" pulumi-lang-go=\"`ram.Role`\" pulumi-lang-python=\"`ram.Role`\" pulumi-lang-yaml=\"`alicloud.ram.Role`\" pulumi-lang-java=\"`alicloud.ram.Role`\"\u003e`alicloud.ram.Role`\u003c/span\u003e.\n"}},"required":["project","serviceRole"],"inputProperties":{"project":{"type":"string","description":"The name of Project.\n","language":{"csharp":{"name":"ProjectName"}},"willReplaceOnChanges":true},"serviceRole":{"type":"string","description":"The service role authorized to the Intelligent Media Management service to access other cloud resources. Default value: `AliyunIMMDefaultRole`. You can also create authorization  roles through the \u003cspan pulumi-lang-nodejs=\"`alicloud.ram.Role`\" pulumi-lang-dotnet=\"`alicloud.ram.Role`\" pulumi-lang-go=\"`ram.Role`\" pulumi-lang-python=\"`ram.Role`\" pulumi-lang-yaml=\"`alicloud.ram.Role`\" pulumi-lang-java=\"`alicloud.ram.Role`\"\u003e`alicloud.ram.Role`\u003c/span\u003e.\n"}},"requiredInputs":["project"],"stateInputs":{"description":"Input properties used for looking up and filtering Project resources.\n","properties":{"project":{"type":"string","description":"The name of Project.\n","language":{"csharp":{"name":"ProjectName"}},"willReplaceOnChanges":true},"serviceRole":{"type":"string","description":"The service role authorized to the Intelligent Media Management service to access other cloud resources. Default value: `AliyunIMMDefaultRole`. You can also create authorization  roles through the \u003cspan pulumi-lang-nodejs=\"`alicloud.ram.Role`\" pulumi-lang-dotnet=\"`alicloud.ram.Role`\" pulumi-lang-go=\"`ram.Role`\" pulumi-lang-python=\"`ram.Role`\" pulumi-lang-yaml=\"`alicloud.ram.Role`\" pulumi-lang-java=\"`alicloud.ram.Role`\"\u003e`alicloud.ram.Role`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:imp/appTemplate:AppTemplate":{"description":"Provides a Apsara Agile Live (IMP) App Template resource.\n\nFor information about Apsara Agile Live (IMP) App Template and how to use it, see [What is App Template](https://help.aliyun.com/document_detail/270121.html).\n\n\u003e **NOTE:** Available in v1.137.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.imp.AppTemplate(\"example\", {\n    appTemplateName: \"example_value\",\n    componentLists: [\n        \"component.live\",\n        \"component.liveRecord\",\n    ],\n    integrationMode: \"paasSDK\",\n    scene: \"business\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.imp.AppTemplate(\"example\",\n    app_template_name=\"example_value\",\n    component_lists=[\n        \"component.live\",\n        \"component.liveRecord\",\n    ],\n    integration_mode=\"paasSDK\",\n    scene=\"business\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Imp.AppTemplate(\"example\", new()\n    {\n        AppTemplateName = \"example_value\",\n        ComponentLists = new[]\n        {\n            \"component.live\",\n            \"component.liveRecord\",\n        },\n        IntegrationMode = \"paasSDK\",\n        Scene = \"business\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/imp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := imp.NewAppTemplate(ctx, \"example\", \u0026imp.AppTemplateArgs{\n\t\t\tAppTemplateName: pulumi.String(\"example_value\"),\n\t\t\tComponentLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"component.live\"),\n\t\t\t\tpulumi.String(\"component.liveRecord\"),\n\t\t\t},\n\t\t\tIntegrationMode: pulumi.String(\"paasSDK\"),\n\t\t\tScene:           pulumi.String(\"business\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.imp.AppTemplate;\nimport com.pulumi.alicloud.imp.AppTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new AppTemplate(\"example\", AppTemplateArgs.builder()\n            .appTemplateName(\"example_value\")\n            .componentLists(            \n                \"component.live\",\n                \"component.liveRecord\")\n            .integrationMode(\"paasSDK\")\n            .scene(\"business\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:imp:AppTemplate\n    properties:\n      appTemplateName: example_value\n      componentLists:\n        - component.live\n        - component.liveRecord\n      integrationMode: paasSDK\n      scene: business\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nApsara Agile Live (IMP) App Template can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:imp/appTemplate:AppTemplate example \u003cid\u003e\n```\n\n","properties":{"appTemplateName":{"type":"string","description":"The name of the resource.\n"},"componentLists":{"type":"array","items":{"type":"string"},"description":"List of components. Its element valid values: [\"component.live\",\"component.liveRecord\",\"component.liveBeauty\",\"component.rtc\",\"component.rtcRecord\",\"component.im\",\"component.whiteboard\",\"component.liveSecurity\",\"component.chatSecurity\"].\n"},"configLists":{"type":"array","items":{"$ref":"#/types/alicloud:imp/AppTemplateConfigList:AppTemplateConfigList"},"description":"Configuration list. It have several default configs after the resource is created. See the following `Block\u003cspan pulumi-lang-nodejs=\" configList`\" pulumi-lang-dotnet=\" ConfigList`\" pulumi-lang-go=\" configList`\" pulumi-lang-python=\" config_list`\" pulumi-lang-yaml=\" configList`\" pulumi-lang-java=\" configList`\"\u003e config_list`\u003c/span\u003e.\n"},"integrationMode":{"type":"string","description":"Integration mode. Valid values:\n* paasSDK: Integrated SDK.\n* standardRoom: Model Room.\n"},"scene":{"type":"string","description":"Application Template scenario. Valid values: [\"business\", \"classroom\"].\n"},"status":{"type":"string","description":"Application template usage status.\n"}},"required":["appTemplateName","componentLists","configLists","status"],"inputProperties":{"appTemplateName":{"type":"string","description":"The name of the resource.\n"},"componentLists":{"type":"array","items":{"type":"string"},"description":"List of components. Its element valid values: [\"component.live\",\"component.liveRecord\",\"component.liveBeauty\",\"component.rtc\",\"component.rtcRecord\",\"component.im\",\"component.whiteboard\",\"component.liveSecurity\",\"component.chatSecurity\"].\n","willReplaceOnChanges":true},"configLists":{"type":"array","items":{"$ref":"#/types/alicloud:imp/AppTemplateConfigList:AppTemplateConfigList"},"description":"Configuration list. It have several default configs after the resource is created. See the following `Block\u003cspan pulumi-lang-nodejs=\" configList`\" pulumi-lang-dotnet=\" ConfigList`\" pulumi-lang-go=\" configList`\" pulumi-lang-python=\" config_list`\" pulumi-lang-yaml=\" configList`\" pulumi-lang-java=\" configList`\"\u003e config_list`\u003c/span\u003e.\n"},"integrationMode":{"type":"string","description":"Integration mode. Valid values:\n* paasSDK: Integrated SDK.\n* standardRoom: Model Room.\n","willReplaceOnChanges":true},"scene":{"type":"string","description":"Application Template scenario. Valid values: [\"business\", \"classroom\"].\n","willReplaceOnChanges":true}},"requiredInputs":["appTemplateName","componentLists"],"stateInputs":{"description":"Input properties used for looking up and filtering AppTemplate resources.\n","properties":{"appTemplateName":{"type":"string","description":"The name of the resource.\n"},"componentLists":{"type":"array","items":{"type":"string"},"description":"List of components. Its element valid values: [\"component.live\",\"component.liveRecord\",\"component.liveBeauty\",\"component.rtc\",\"component.rtcRecord\",\"component.im\",\"component.whiteboard\",\"component.liveSecurity\",\"component.chatSecurity\"].\n","willReplaceOnChanges":true},"configLists":{"type":"array","items":{"$ref":"#/types/alicloud:imp/AppTemplateConfigList:AppTemplateConfigList"},"description":"Configuration list. It have several default configs after the resource is created. See the following `Block\u003cspan pulumi-lang-nodejs=\" configList`\" pulumi-lang-dotnet=\" ConfigList`\" pulumi-lang-go=\" configList`\" pulumi-lang-python=\" config_list`\" pulumi-lang-yaml=\" configList`\" pulumi-lang-java=\" configList`\"\u003e config_list`\u003c/span\u003e.\n"},"integrationMode":{"type":"string","description":"Integration mode. Valid values:\n* paasSDK: Integrated SDK.\n* standardRoom: Model Room.\n","willReplaceOnChanges":true},"scene":{"type":"string","description":"Application Template scenario. Valid values: [\"business\", \"classroom\"].\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Application template usage status.\n"}},"type":"object"}},"alicloud:ims/oidcProvider:OidcProvider":{"description":"Provides a IMS Oidc Provider resource.\n\nOpenID Connect Provider.\n\nFor information about IMS Oidc Provider and how to use it, see [What is Oidc Provider](https://www.alibabacloud.com/help/en/ram/developer-reference/api-ims-2019-08-15-createoidcprovider).\n\n\u003e **NOTE:** Available since v1.210.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst oidcProviderName = config.get(\"oidcProviderName\") || \"amp-resource-example-oidc-provider\";\nconst _default = new alicloud.ims.OidcProvider(\"default\", {\n    fingerprints: [\"0BBFAB97059595E8D1EC48E89EB8657C0E5AAE71\"],\n    issuanceLimitTime: 12,\n    oidcProviderName: \"tfaccims89018\",\n    clientIds: [\n        \"123\",\n        \"456\",\n    ],\n    description: oidcProviderName,\n    issuerUrl: \"https://oauth.aliyun.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\noidc_provider_name = config.get(\"oidcProviderName\")\nif oidc_provider_name is None:\n    oidc_provider_name = \"amp-resource-example-oidc-provider\"\ndefault = alicloud.ims.OidcProvider(\"default\",\n    fingerprints=[\"0BBFAB97059595E8D1EC48E89EB8657C0E5AAE71\"],\n    issuance_limit_time=12,\n    oidc_provider_name=\"tfaccims89018\",\n    client_ids=[\n        \"123\",\n        \"456\",\n    ],\n    description=oidc_provider_name,\n    issuer_url=\"https://oauth.aliyun.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var oidcProviderName = config.Get(\"oidcProviderName\") ?? \"amp-resource-example-oidc-provider\";\n    var @default = new AliCloud.Ims.OidcProvider(\"default\", new()\n    {\n        Fingerprints = new[]\n        {\n            \"0BBFAB97059595E8D1EC48E89EB8657C0E5AAE71\",\n        },\n        IssuanceLimitTime = 12,\n        OidcProviderName = \"tfaccims89018\",\n        ClientIds = new[]\n        {\n            \"123\",\n            \"456\",\n        },\n        Description = oidcProviderName,\n        IssuerUrl = \"https://oauth.aliyun.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ims\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\toidcProviderName := \"amp-resource-example-oidc-provider\"\n\t\tif param := cfg.Get(\"oidcProviderName\"); param != \"\" {\n\t\t\toidcProviderName = param\n\t\t}\n\t\t_, err := ims.NewOidcProvider(ctx, \"default\", \u0026ims.OidcProviderArgs{\n\t\t\tFingerprints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"0BBFAB97059595E8D1EC48E89EB8657C0E5AAE71\"),\n\t\t\t},\n\t\t\tIssuanceLimitTime: pulumi.Int(12),\n\t\t\tOidcProviderName:  pulumi.String(\"tfaccims89018\"),\n\t\t\tClientIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"123\"),\n\t\t\t\tpulumi.String(\"456\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(oidcProviderName),\n\t\t\tIssuerUrl:   pulumi.String(\"https://oauth.aliyun.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ims.OidcProvider;\nimport com.pulumi.alicloud.ims.OidcProviderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var oidcProviderName = config.get(\"oidcProviderName\").orElse(\"amp-resource-example-oidc-provider\");\n        var default_ = new OidcProvider(\"default\", OidcProviderArgs.builder()\n            .fingerprints(\"0BBFAB97059595E8D1EC48E89EB8657C0E5AAE71\")\n            .issuanceLimitTime(12)\n            .oidcProviderName(\"tfaccims89018\")\n            .clientIds(            \n                \"123\",\n                \"456\")\n            .description(oidcProviderName)\n            .issuerUrl(\"https://oauth.aliyun.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  oidcProviderName:\n    type: string\n    default: amp-resource-example-oidc-provider\nresources:\n  default:\n    type: alicloud:ims:OidcProvider\n    properties:\n      fingerprints:\n        - 0BBFAB97059595E8D1EC48E89EB8657C0E5AAE71\n      issuanceLimitTime: '12'\n      oidcProviderName: tfaccims89018\n      clientIds:\n        - '123'\n        - '456'\n      description: ${oidcProviderName}\n      issuerUrl: https://oauth.aliyun.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nIMS Oidc Provider can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ims/oidcProvider:OidcProvider example \u003cid\u003e\n```\n\n","properties":{"arn":{"type":"string","description":"ARN of OIDC identity provider.\n"},"clientIds":{"type":"array","items":{"type":"string"},"description":"Client ID.\n"},"createTime":{"type":"string","description":"Creation Time (UTC time).\n"},"description":{"type":"string","description":"Description of OIDC identity provider.\n"},"fingerprints":{"type":"array","items":{"type":"string"},"description":"The authentication fingerprint of the HTTPS CA certificate.\n"},"issuanceLimitTime":{"type":"integer","description":"The earliest time when an external IdP is allowed to issue an ID Token. If the iat field in the ID Token is greater than the current time, the request is rejected.\nUnit: hours. Value range: 1~168.\n"},"issuerUrl":{"type":"string","description":"The issuer URL of the OIDC identity provider.\n"},"oidcProviderName":{"type":"string","description":"The name of the OIDC identity provider.\n"}},"required":["arn","createTime","issuanceLimitTime","issuerUrl","oidcProviderName"],"inputProperties":{"clientIds":{"type":"array","items":{"type":"string"},"description":"Client ID.\n"},"description":{"type":"string","description":"Description of OIDC identity provider.\n"},"fingerprints":{"type":"array","items":{"type":"string"},"description":"The authentication fingerprint of the HTTPS CA certificate.\n"},"issuanceLimitTime":{"type":"integer","description":"The earliest time when an external IdP is allowed to issue an ID Token. If the iat field in the ID Token is greater than the current time, the request is rejected.\nUnit: hours. Value range: 1~168.\n"},"issuerUrl":{"type":"string","description":"The issuer URL of the OIDC identity provider.\n","willReplaceOnChanges":true},"oidcProviderName":{"type":"string","description":"The name of the OIDC identity provider.\n","willReplaceOnChanges":true}},"requiredInputs":["issuerUrl","oidcProviderName"],"stateInputs":{"description":"Input properties used for looking up and filtering OidcProvider resources.\n","properties":{"arn":{"type":"string","description":"ARN of OIDC identity provider.\n"},"clientIds":{"type":"array","items":{"type":"string"},"description":"Client ID.\n"},"createTime":{"type":"string","description":"Creation Time (UTC time).\n"},"description":{"type":"string","description":"Description of OIDC identity provider.\n"},"fingerprints":{"type":"array","items":{"type":"string"},"description":"The authentication fingerprint of the HTTPS CA certificate.\n"},"issuanceLimitTime":{"type":"integer","description":"The earliest time when an external IdP is allowed to issue an ID Token. If the iat field in the ID Token is greater than the current time, the request is rejected.\nUnit: hours. Value range: 1~168.\n"},"issuerUrl":{"type":"string","description":"The issuer URL of the OIDC identity provider.\n","willReplaceOnChanges":true},"oidcProviderName":{"type":"string","description":"The name of the OIDC identity provider.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:index/milvusInstance:MilvusInstance":{"description":"Provides a Milvus Instance resource.\n\n\n\nFor information about Milvus Instance and how to use it, see [What is Instance](https://next.api.alibabacloud.com/document/milvus/2023-10-12/CreateInstance).\n\n\u003e **NOTE:** Available since v1.264.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst regionId = config.get(\"regionId\") || \"cn-hangzhou\";\nconst zoneId = config.get(\"zoneId\") || \"cn-hangzhou-j\";\nconst defaultILXuit = new alicloud.vpc.Network(\"defaultILXuit\", {cidrBlock: \"172.16.0.0/12\"});\nconst defaultN80M7S = new alicloud.vpc.Switch(\"defaultN80M7S\", {\n    vpcId: defaultILXuit.id,\n    zoneId: zoneId,\n    cidrBlock: \"172.16.1.0/24\",\n    vswitchName: \"milvus-example\",\n});\nconst _default = new alicloud.MilvusInstance(\"default\", {\n    zoneId: zoneId,\n    vswitchIds: [{\n        vswId: defaultN80M7S.id,\n        zoneId: defaultN80M7S.zoneId,\n    }],\n    dbAdminPassword: \"Test123456@\",\n    components: [{\n        type: \"standalone\",\n        cuNum: 8,\n        replica: 1,\n        cuType: \"general\",\n    }],\n    instanceName: \"镇远测试包年包月\",\n    dbVersion: \"2.4\",\n    vpcId: defaultILXuit.id,\n    ha: false,\n    paymentType: \"Subscription\",\n    multiZoneMode: \"Single\",\n    paymentDurationUnit: \"year\",\n    paymentDuration: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-hangzhou\"\nzone_id = config.get(\"zoneId\")\nif zone_id is None:\n    zone_id = \"cn-hangzhou-j\"\ndefault_il_xuit = alicloud.vpc.Network(\"defaultILXuit\", cidr_block=\"172.16.0.0/12\")\ndefault_n80_m7_s = alicloud.vpc.Switch(\"defaultN80M7S\",\n    vpc_id=default_il_xuit.id,\n    zone_id=zone_id,\n    cidr_block=\"172.16.1.0/24\",\n    vswitch_name=\"milvus-example\")\ndefault = alicloud.MilvusInstance(\"default\",\n    zone_id=zone_id,\n    vswitch_ids=[{\n        \"vsw_id\": default_n80_m7_s.id,\n        \"zone_id\": default_n80_m7_s.zone_id,\n    }],\n    db_admin_password=\"Test123456@\",\n    components=[{\n        \"type\": \"standalone\",\n        \"cu_num\": 8,\n        \"replica\": 1,\n        \"cu_type\": \"general\",\n    }],\n    instance_name=\"镇远测试包年包月\",\n    db_version=\"2.4\",\n    vpc_id=default_il_xuit.id,\n    ha=False,\n    payment_type=\"Subscription\",\n    multi_zone_mode=\"Single\",\n    payment_duration_unit=\"year\",\n    payment_duration=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-hangzhou\";\n    var zoneId = config.Get(\"zoneId\") ?? \"cn-hangzhou-j\";\n    var defaultILXuit = new AliCloud.Vpc.Network(\"defaultILXuit\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultN80M7S = new AliCloud.Vpc.Switch(\"defaultN80M7S\", new()\n    {\n        VpcId = defaultILXuit.Id,\n        ZoneId = zoneId,\n        CidrBlock = \"172.16.1.0/24\",\n        VswitchName = \"milvus-example\",\n    });\n\n    var @default = new AliCloud.MilvusInstance(\"default\", new()\n    {\n        ZoneId = zoneId,\n        VswitchIds = new[]\n        {\n            new AliCloud.Inputs.MilvusInstanceVswitchIdArgs\n            {\n                VswId = defaultN80M7S.Id,\n                ZoneId = defaultN80M7S.ZoneId,\n            },\n        },\n        DbAdminPassword = \"Test123456@\",\n        Components = new[]\n        {\n            new AliCloud.Inputs.MilvusInstanceComponentArgs\n            {\n                Type = \"standalone\",\n                CuNum = 8,\n                Replica = 1,\n                CuType = \"general\",\n            },\n        },\n        InstanceName = \"镇远测试包年包月\",\n        DbVersion = \"2.4\",\n        VpcId = defaultILXuit.Id,\n        Ha = false,\n        PaymentType = \"Subscription\",\n        MultiZoneMode = \"Single\",\n        PaymentDurationUnit = \"year\",\n        PaymentDuration = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tregionId := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\tzoneId := \"cn-hangzhou-j\"\n\t\tif param := cfg.Get(\"zoneId\"); param != \"\" {\n\t\t\tzoneId = param\n\t\t}\n\t\tdefaultILXuit, err := vpc.NewNetwork(ctx, \"defaultILXuit\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultN80M7S, err := vpc.NewSwitch(ctx, \"defaultN80M7S\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultILXuit.ID(),\n\t\t\tZoneId:      pulumi.String(zoneId),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.1.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"milvus-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alicloud.NewMilvusInstance(ctx, \"default\", \u0026alicloud.MilvusInstanceArgs{\n\t\t\tZoneId: pulumi.String(zoneId),\n\t\t\tVswitchIds: alicloud.MilvusInstanceVswitchIdArray{\n\t\t\t\t\u0026alicloud.MilvusInstanceVswitchIdArgs{\n\t\t\t\t\tVswId:  defaultN80M7S.ID(),\n\t\t\t\t\tZoneId: defaultN80M7S.ZoneId,\n\t\t\t\t},\n\t\t\t},\n\t\t\tDbAdminPassword: pulumi.String(\"Test123456@\"),\n\t\t\tComponents: alicloud.MilvusInstanceComponentArray{\n\t\t\t\t\u0026alicloud.MilvusInstanceComponentArgs{\n\t\t\t\t\tType:    pulumi.String(\"standalone\"),\n\t\t\t\t\tCuNum:   pulumi.Int(8),\n\t\t\t\t\tReplica: pulumi.Int(1),\n\t\t\t\t\tCuType:  pulumi.String(\"general\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInstanceName:        pulumi.String(\"镇远测试包年包月\"),\n\t\t\tDbVersion:           pulumi.String(\"2.4\"),\n\t\t\tVpcId:               defaultILXuit.ID(),\n\t\t\tHa:                  pulumi.Bool(false),\n\t\t\tPaymentType:         pulumi.String(\"Subscription\"),\n\t\t\tMultiZoneMode:       pulumi.String(\"Single\"),\n\t\t\tPaymentDurationUnit: pulumi.String(\"year\"),\n\t\t\tPaymentDuration:     pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.MilvusInstance;\nimport com.pulumi.alicloud.MilvusInstanceArgs;\nimport com.pulumi.alicloud.inputs.MilvusInstanceVswitchIdArgs;\nimport com.pulumi.alicloud.inputs.MilvusInstanceComponentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-hangzhou\");\n        final var zoneId = config.get(\"zoneId\").orElse(\"cn-hangzhou-j\");\n        var defaultILXuit = new Network(\"defaultILXuit\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var defaultN80M7S = new Switch(\"defaultN80M7S\", SwitchArgs.builder()\n            .vpcId(defaultILXuit.id())\n            .zoneId(zoneId)\n            .cidrBlock(\"172.16.1.0/24\")\n            .vswitchName(\"milvus-example\")\n            .build());\n\n        var default_ = new MilvusInstance(\"default\", MilvusInstanceArgs.builder()\n            .zoneId(zoneId)\n            .vswitchIds(MilvusInstanceVswitchIdArgs.builder()\n                .vswId(defaultN80M7S.id())\n                .zoneId(defaultN80M7S.zoneId())\n                .build())\n            .dbAdminPassword(\"Test123456@\")\n            .components(MilvusInstanceComponentArgs.builder()\n                .type(\"standalone\")\n                .cuNum(8)\n                .replica(1)\n                .cuType(\"general\")\n                .build())\n            .instanceName(\"镇远测试包年包月\")\n            .dbVersion(\"2.4\")\n            .vpcId(defaultILXuit.id())\n            .ha(false)\n            .paymentType(\"Subscription\")\n            .multiZoneMode(\"Single\")\n            .paymentDurationUnit(\"year\")\n            .paymentDuration(1)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  regionId:\n    type: string\n    default: cn-hangzhou\n  zoneId:\n    type: string\n    default: cn-hangzhou-j\nresources:\n  defaultILXuit:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n  defaultN80M7S:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultILXuit.id}\n      zoneId: ${zoneId}\n      cidrBlock: 172.16.1.0/24\n      vswitchName: milvus-example\n  default:\n    type: alicloud:MilvusInstance\n    properties:\n      zoneId: ${zoneId}\n      vswitchIds:\n        - vswId: ${defaultN80M7S.id}\n          zoneId: ${defaultN80M7S.zoneId}\n      dbAdminPassword: Test123456@\n      components:\n        - type: standalone\n          cuNum: '8'\n          replica: '1'\n          cuType: general\n      instanceName: 镇远测试包年包月\n      dbVersion: '2.4'\n      vpcId: ${defaultILXuit.id}\n      ha: false\n      paymentType: Subscription\n      multiZoneMode: Single\n      paymentDurationUnit: year\n      paymentDuration: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.MilvusInstance`\" pulumi-lang-dotnet=\"`alicloud.MilvusInstance`\" pulumi-lang-go=\"`MilvusInstance`\" pulumi-lang-python=\"`MilvusInstance`\" pulumi-lang-yaml=\"`alicloud.MilvusInstance`\" pulumi-lang-java=\"`alicloud.MilvusInstance`\"\u003e`alicloud.MilvusInstance`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.MilvusInstance`\" pulumi-lang-dotnet=\"`alicloud.MilvusInstance`\" pulumi-lang-go=\"`MilvusInstance`\" pulumi-lang-python=\"`MilvusInstance`\" pulumi-lang-yaml=\"`alicloud.MilvusInstance`\" pulumi-lang-java=\"`alicloud.MilvusInstance`\"\u003e`alicloud.MilvusInstance`\u003c/span\u003e resource allows you to manage  \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"Subscription\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMilvus Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:index/milvusInstance:MilvusInstance example \u003cid\u003e\n```\n\n","properties":{"autoBackup":{"type":"boolean","description":"Whether to enable automatic backup\n"},"components":{"type":"array","items":{"$ref":"#/types/alicloud:index/MilvusInstanceComponent:MilvusInstanceComponent"},"description":"Instance component information. Includes Starter Edition/Standard Edition.\n- Starter version: Array including standalone\n- Standard Edition: The configuration is different according to the 2.5 version and 2.6 version.\n2.5: proxy ,mix_coordinator,data,query,index\n2.6 need to configure: proxy,mix_coordinator,data,query,streaming See \u003cspan pulumi-lang-nodejs=\"`components`\" pulumi-lang-dotnet=\"`Components`\" pulumi-lang-go=\"`components`\" pulumi-lang-python=\"`components`\" pulumi-lang-yaml=\"`components`\" pulumi-lang-java=\"`components`\"\u003e`components`\u003c/span\u003e below.\n"},"configuration":{"type":"string","description":"User-defined configuration\n"},"createTime":{"type":"string","description":"Instance creation time.\n"},"dbAdminPassword":{"type":"string","description":"DB administrator password, which can be used to log in to attu.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n","secret":true},"dbVersion":{"type":"string","description":"Milvus kernel version. Supported versions: 2.4, 2.5, 2.6.\n"},"encrypted":{"type":"boolean","description":"Whether to use kms encryption. After enabling, you need to configure KmsKeyId. The default is false.\n"},"ha":{"type":"boolean","description":"Whether to enable multiple copies of data\n"},"instanceName":{"type":"string","description":"Instance name. The length is limited to 1-64 characters and can only contain Chinese, letters, numbers,-,_\n"},"kmsKeyId":{"type":"string","description":"Kms Key encryption id, need to be encrypted set to true.\n"},"multiZoneMode":{"type":"string","description":"Availability Zone mode. The default Single.\n- Single: Single zone.\n- Two: Dual Availability Zones.\n"},"paymentDuration":{"type":"integer","description":"Instance Payment Duration\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"paymentDurationUnit":{"type":"string","description":"Paid unit , Enumeration value:\n- Month: Month\n- Year: Year\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"paymentType":{"type":"string","description":"Payment Type ,Enumeration value:\n- PayAsYouGo: Pay by volume\n- Subscription: Package year package month\n"},"regionId":{"type":"string","description":"regionId. For example: cn-hangzhou\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID\n"},"status":{"type":"string","description":"Instance status. Value range:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"User Defined Label\n"},"vpcId":{"type":"string","description":"The VPC network ID. vpc-xxx.\n"},"vswitchIds":{"type":"array","items":{"$ref":"#/types/alicloud:index/MilvusInstanceVswitchId:MilvusInstanceVswitchId"},"description":"Switch list, configure the switch and zone. See \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e below.\n"},"zoneId":{"type":"string","description":"The zone id. When multi-zone is enabled, it represents the primary zone.\n"}},"required":["autoBackup","createTime","dbVersion","instanceName","paymentType","regionId","resourceGroupId","status","vpcId"],"inputProperties":{"autoBackup":{"type":"boolean","description":"Whether to enable automatic backup\n"},"components":{"type":"array","items":{"$ref":"#/types/alicloud:index/MilvusInstanceComponent:MilvusInstanceComponent"},"description":"Instance component information. Includes Starter Edition/Standard Edition.\n- Starter version: Array including standalone\n- Standard Edition: The configuration is different according to the 2.5 version and 2.6 version.\n2.5: proxy ,mix_coordinator,data,query,index\n2.6 need to configure: proxy,mix_coordinator,data,query,streaming See \u003cspan pulumi-lang-nodejs=\"`components`\" pulumi-lang-dotnet=\"`Components`\" pulumi-lang-go=\"`components`\" pulumi-lang-python=\"`components`\" pulumi-lang-yaml=\"`components`\" pulumi-lang-java=\"`components`\"\u003e`components`\u003c/span\u003e below.\n"},"configuration":{"type":"string","description":"User-defined configuration\n"},"dbAdminPassword":{"type":"string","description":"DB administrator password, which can be used to log in to attu.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n","secret":true},"dbVersion":{"type":"string","description":"Milvus kernel version. Supported versions: 2.4, 2.5, 2.6.\n","willReplaceOnChanges":true},"encrypted":{"type":"boolean","description":"Whether to use kms encryption. After enabling, you need to configure KmsKeyId. The default is false.\n","willReplaceOnChanges":true},"ha":{"type":"boolean","description":"Whether to enable multiple copies of data\n"},"instanceName":{"type":"string","description":"Instance name. The length is limited to 1-64 characters and can only contain Chinese, letters, numbers,-,_\n"},"kmsKeyId":{"type":"string","description":"Kms Key encryption id, need to be encrypted set to true.\n","willReplaceOnChanges":true},"multiZoneMode":{"type":"string","description":"Availability Zone mode. The default Single.\n- Single: Single zone.\n- Two: Dual Availability Zones.\n","willReplaceOnChanges":true},"paymentDuration":{"type":"integer","description":"Instance Payment Duration\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"paymentDurationUnit":{"type":"string","description":"Paid unit , Enumeration value:\n- Month: Month\n- Year: Year\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"paymentType":{"type":"string","description":"Payment Type ,Enumeration value:\n- PayAsYouGo: Pay by volume\n- Subscription: Package year package month\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"Resource Group ID\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"User Defined Label\n"},"vpcId":{"type":"string","description":"The VPC network ID. vpc-xxx.\n","willReplaceOnChanges":true},"vswitchIds":{"type":"array","items":{"$ref":"#/types/alicloud:index/MilvusInstanceVswitchId:MilvusInstanceVswitchId"},"description":"Switch list, configure the switch and zone. See \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone id. When multi-zone is enabled, it represents the primary zone.\n","willReplaceOnChanges":true}},"requiredInputs":["dbVersion","instanceName","paymentType","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering MilvusInstance resources.\n","properties":{"autoBackup":{"type":"boolean","description":"Whether to enable automatic backup\n"},"components":{"type":"array","items":{"$ref":"#/types/alicloud:index/MilvusInstanceComponent:MilvusInstanceComponent"},"description":"Instance component information. Includes Starter Edition/Standard Edition.\n- Starter version: Array including standalone\n- Standard Edition: The configuration is different according to the 2.5 version and 2.6 version.\n2.5: proxy ,mix_coordinator,data,query,index\n2.6 need to configure: proxy,mix_coordinator,data,query,streaming See \u003cspan pulumi-lang-nodejs=\"`components`\" pulumi-lang-dotnet=\"`Components`\" pulumi-lang-go=\"`components`\" pulumi-lang-python=\"`components`\" pulumi-lang-yaml=\"`components`\" pulumi-lang-java=\"`components`\"\u003e`components`\u003c/span\u003e below.\n"},"configuration":{"type":"string","description":"User-defined configuration\n"},"createTime":{"type":"string","description":"Instance creation time.\n"},"dbAdminPassword":{"type":"string","description":"DB administrator password, which can be used to log in to attu.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n","secret":true},"dbVersion":{"type":"string","description":"Milvus kernel version. Supported versions: 2.4, 2.5, 2.6.\n","willReplaceOnChanges":true},"encrypted":{"type":"boolean","description":"Whether to use kms encryption. After enabling, you need to configure KmsKeyId. The default is false.\n","willReplaceOnChanges":true},"ha":{"type":"boolean","description":"Whether to enable multiple copies of data\n"},"instanceName":{"type":"string","description":"Instance name. The length is limited to 1-64 characters and can only contain Chinese, letters, numbers,-,_\n"},"kmsKeyId":{"type":"string","description":"Kms Key encryption id, need to be encrypted set to true.\n","willReplaceOnChanges":true},"multiZoneMode":{"type":"string","description":"Availability Zone mode. The default Single.\n- Single: Single zone.\n- Two: Dual Availability Zones.\n","willReplaceOnChanges":true},"paymentDuration":{"type":"integer","description":"Instance Payment Duration\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"paymentDurationUnit":{"type":"string","description":"Paid unit , Enumeration value:\n- Month: Month\n- Year: Year\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"paymentType":{"type":"string","description":"Payment Type ,Enumeration value:\n- PayAsYouGo: Pay by volume\n- Subscription: Package year package month\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"regionId. For example: cn-hangzhou\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID\n"},"status":{"type":"string","description":"Instance status. Value range:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"User Defined Label\n"},"vpcId":{"type":"string","description":"The VPC network ID. vpc-xxx.\n","willReplaceOnChanges":true},"vswitchIds":{"type":"array","items":{"$ref":"#/types/alicloud:index/MilvusInstanceVswitchId:MilvusInstanceVswitchId"},"description":"Switch list, configure the switch and zone. See \u003cspan pulumi-lang-nodejs=\"`vswitchIds`\" pulumi-lang-dotnet=\"`VswitchIds`\" pulumi-lang-go=\"`vswitchIds`\" pulumi-lang-python=\"`vswitch_ids`\" pulumi-lang-yaml=\"`vswitchIds`\" pulumi-lang-java=\"`vswitchIds`\"\u003e`vswitch_ids`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone id. When multi-zone is enabled, it represents the primary zone.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:index/mscSubContract:MscSubContract":{"description":"Provides a Msc Sub Contact resource.\n\n\u003e **NOTE:** Available since v1.132.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst _default = new alicloud.MscSubContract(\"default\", {\n    contactName: name,\n    position: \"CEO\",\n    email: \"123@163.com\",\n    mobile: \"15388888888\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\ndefault = alicloud.MscSubContract(\"default\",\n    contact_name=name,\n    position=\"CEO\",\n    email=\"123@163.com\",\n    mobile=\"15388888888\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var @default = new AliCloud.MscSubContract(\"default\", new()\n    {\n        ContactName = name,\n        Position = \"CEO\",\n        Email = \"123@163.com\",\n        Mobile = \"15388888888\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := alicloud.NewMscSubContract(ctx, \"default\", \u0026alicloud.MscSubContractArgs{\n\t\t\tContactName: pulumi.String(name),\n\t\t\tPosition:    pulumi.String(\"CEO\"),\n\t\t\tEmail:       pulumi.String(\"123@163.com\"),\n\t\t\tMobile:      pulumi.String(\"15388888888\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.MscSubContract;\nimport com.pulumi.alicloud.MscSubContractArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        var default_ = new MscSubContract(\"default\", MscSubContractArgs.builder()\n            .contactName(name)\n            .position(\"CEO\")\n            .email(\"123@163.com\")\n            .mobile(\"15388888888\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  default:\n    type: alicloud:MscSubContract\n    properties:\n      contactName: ${name}\n      position: CEO\n      email: 123@163.com\n      mobile: '15388888888'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMsc Sub Contact can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:index/mscSubContract:MscSubContract example \u003cid\u003e\n```\n\n","properties":{"contactName":{"type":"string","description":"The User's Contact Name. **Note:** The name must be 2 to 12 characters in length.\n"},"email":{"type":"string","description":"The User's Contact Email Address.\n"},"mobile":{"type":"string","description":"The User's Telephone.\n"},"position":{"type":"string","description":"The User's Position. Valid values: `CEO`, `Technical Director`, `Maintenance Director`, `Project Director`,`Finance Director` and `Other`.\n\n\u003e **NOTE:** When the user creates a contact, the user should use \u003cspan pulumi-lang-nodejs=\"`alicloud.getMscSubContactVerificationMessage`\" pulumi-lang-dotnet=\"`alicloud.getMscSubContactVerificationMessage`\" pulumi-lang-go=\"`getMscSubContactVerificationMessage`\" pulumi-lang-python=\"`get_msc_sub_contact_verification_message`\" pulumi-lang-yaml=\"`alicloud.getMscSubContactVerificationMessage`\" pulumi-lang-java=\"`alicloud.getMscSubContactVerificationMessage`\"\u003e`alicloud.getMscSubContactVerificationMessage`\u003c/span\u003e to receive the verification message and confirm it.\n"}},"required":["contactName","email","mobile","position"],"inputProperties":{"contactName":{"type":"string","description":"The User's Contact Name. **Note:** The name must be 2 to 12 characters in length.\n"},"email":{"type":"string","description":"The User's Contact Email Address.\n"},"mobile":{"type":"string","description":"The User's Telephone.\n"},"position":{"type":"string","description":"The User's Position. Valid values: `CEO`, `Technical Director`, `Maintenance Director`, `Project Director`,`Finance Director` and `Other`.\n\n\u003e **NOTE:** When the user creates a contact, the user should use \u003cspan pulumi-lang-nodejs=\"`alicloud.getMscSubContactVerificationMessage`\" pulumi-lang-dotnet=\"`alicloud.getMscSubContactVerificationMessage`\" pulumi-lang-go=\"`getMscSubContactVerificationMessage`\" pulumi-lang-python=\"`get_msc_sub_contact_verification_message`\" pulumi-lang-yaml=\"`alicloud.getMscSubContactVerificationMessage`\" pulumi-lang-java=\"`alicloud.getMscSubContactVerificationMessage`\"\u003e`alicloud.getMscSubContactVerificationMessage`\u003c/span\u003e to receive the verification message and confirm it.\n","willReplaceOnChanges":true}},"requiredInputs":["contactName","email","mobile","position"],"stateInputs":{"description":"Input properties used for looking up and filtering MscSubContract resources.\n","properties":{"contactName":{"type":"string","description":"The User's Contact Name. **Note:** The name must be 2 to 12 characters in length.\n"},"email":{"type":"string","description":"The User's Contact Email Address.\n"},"mobile":{"type":"string","description":"The User's Telephone.\n"},"position":{"type":"string","description":"The User's Position. Valid values: `CEO`, `Technical Director`, `Maintenance Director`, `Project Director`,`Finance Director` and `Other`.\n\n\u003e **NOTE:** When the user creates a contact, the user should use \u003cspan pulumi-lang-nodejs=\"`alicloud.getMscSubContactVerificationMessage`\" pulumi-lang-dotnet=\"`alicloud.getMscSubContactVerificationMessage`\" pulumi-lang-go=\"`getMscSubContactVerificationMessage`\" pulumi-lang-python=\"`get_msc_sub_contact_verification_message`\" pulumi-lang-yaml=\"`alicloud.getMscSubContactVerificationMessage`\" pulumi-lang-java=\"`alicloud.getMscSubContactVerificationMessage`\"\u003e`alicloud.getMscSubContactVerificationMessage`\u003c/span\u003e to receive the verification message and confirm it.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:index/mscSubSubscription:MscSubSubscription":{"description":"Provides a Msc Sub Subscription resource.\n\n\u003e **NOTE:** Available since v1.135.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.MscSubSubscription(\"example\", {\n    itemName: \"Notifications of Product Expiration\",\n    smsStatus: 1,\n    emailStatus: 1,\n    pmsgStatus: 1,\n    ttsStatus: 1,\n    webhookStatus: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.MscSubSubscription(\"example\",\n    item_name=\"Notifications of Product Expiration\",\n    sms_status=1,\n    email_status=1,\n    pmsg_status=1,\n    tts_status=1,\n    webhook_status=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.MscSubSubscription(\"example\", new()\n    {\n        ItemName = \"Notifications of Product Expiration\",\n        SmsStatus = 1,\n        EmailStatus = 1,\n        PmsgStatus = 1,\n        TtsStatus = 1,\n        WebhookStatus = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := alicloud.NewMscSubSubscription(ctx, \"example\", \u0026alicloud.MscSubSubscriptionArgs{\n\t\t\tItemName:      pulumi.String(\"Notifications of Product Expiration\"),\n\t\t\tSmsStatus:     pulumi.Int(1),\n\t\t\tEmailStatus:   pulumi.Int(1),\n\t\t\tPmsgStatus:    pulumi.Int(1),\n\t\t\tTtsStatus:     pulumi.Int(1),\n\t\t\tWebhookStatus: pulumi.Int(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.MscSubSubscription;\nimport com.pulumi.alicloud.MscSubSubscriptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new MscSubSubscription(\"example\", MscSubSubscriptionArgs.builder()\n            .itemName(\"Notifications of Product Expiration\")\n            .smsStatus(1)\n            .emailStatus(1)\n            .pmsgStatus(1)\n            .ttsStatus(1)\n            .webhookStatus(0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:MscSubSubscription\n    properties:\n      itemName: Notifications of Product Expiration\n      smsStatus: '1'\n      emailStatus: '1'\n      pmsgStatus: '1'\n      ttsStatus: '1'\n      webhookStatus: '0'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMsc Sub Subscription can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:index/mscSubSubscription:MscSubSubscription example \u003cid\u003e\n```\n\n","properties":{"channel":{"type":"string","description":"The channel the Subscription.\n"},"contactIds":{"type":"array","items":{"type":"string"},"description":"The ids of subscribed contacts.\n**NOTE:** There is a potential diff error because of the order of \u003cspan pulumi-lang-nodejs=\"`contactIds`\" pulumi-lang-dotnet=\"`ContactIds`\" pulumi-lang-go=\"`contactIds`\" pulumi-lang-python=\"`contact_ids`\" pulumi-lang-yaml=\"`contactIds`\" pulumi-lang-java=\"`contactIds`\"\u003e`contact_ids`\u003c/span\u003e values indefinite.\nSo, from version 1.161.0, \u003cspan pulumi-lang-nodejs=\"`contactIds`\" pulumi-lang-dotnet=\"`ContactIds`\" pulumi-lang-go=\"`contactIds`\" pulumi-lang-python=\"`contact_ids`\" pulumi-lang-yaml=\"`contactIds`\" pulumi-lang-java=\"`contactIds`\"\u003e`contact_ids`\u003c/span\u003e type has been updated as \u003cspan pulumi-lang-nodejs=\"`set`\" pulumi-lang-dotnet=\"`Set`\" pulumi-lang-go=\"`set`\" pulumi-lang-python=\"`set`\" pulumi-lang-yaml=\"`set`\" pulumi-lang-java=\"`set`\"\u003e`set`\u003c/span\u003e from \u003cspan pulumi-lang-nodejs=\"`list`\" pulumi-lang-dotnet=\"`List`\" pulumi-lang-go=\"`list`\" pulumi-lang-python=\"`list`\" pulumi-lang-yaml=\"`list`\" pulumi-lang-java=\"`list`\"\u003e`list`\u003c/span\u003e,\nand you can use tolist to convert it to a list.\n"},"description":{"type":"string","description":"The description of the Subscription.\n"},"emailStatus":{"type":"integer","description":"The status of email subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"},"itemName":{"type":"string","description":"The name of the Subscription. **NOTE:**  You should use the \u003cspan pulumi-lang-nodejs=\"`alicloud.getMscSubSubscriptions`\" pulumi-lang-dotnet=\"`alicloud.getMscSubSubscriptions`\" pulumi-lang-go=\"`getMscSubSubscriptions`\" pulumi-lang-python=\"`get_msc_sub_subscriptions`\" pulumi-lang-yaml=\"`alicloud.getMscSubSubscriptions`\" pulumi-lang-java=\"`alicloud.getMscSubSubscriptions`\"\u003e`alicloud.getMscSubSubscriptions`\u003c/span\u003e to query the available subscription item name.\n"},"pmsgStatus":{"type":"integer","description":"The status of pmsg subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"},"smsStatus":{"type":"integer","description":"The status of sms subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"},"ttsStatus":{"type":"integer","description":"The status of tts subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"},"webhookIds":{"type":"array","items":{"type":"string"},"description":"The ids of subscribed webhooks.\n"},"webhookStatus":{"type":"integer","description":"The status of webhook subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"}},"required":["channel","contactIds","description","itemName"],"inputProperties":{"contactIds":{"type":"array","items":{"type":"string"},"description":"The ids of subscribed contacts.\n**NOTE:** There is a potential diff error because of the order of \u003cspan pulumi-lang-nodejs=\"`contactIds`\" pulumi-lang-dotnet=\"`ContactIds`\" pulumi-lang-go=\"`contactIds`\" pulumi-lang-python=\"`contact_ids`\" pulumi-lang-yaml=\"`contactIds`\" pulumi-lang-java=\"`contactIds`\"\u003e`contact_ids`\u003c/span\u003e values indefinite.\nSo, from version 1.161.0, \u003cspan pulumi-lang-nodejs=\"`contactIds`\" pulumi-lang-dotnet=\"`ContactIds`\" pulumi-lang-go=\"`contactIds`\" pulumi-lang-python=\"`contact_ids`\" pulumi-lang-yaml=\"`contactIds`\" pulumi-lang-java=\"`contactIds`\"\u003e`contact_ids`\u003c/span\u003e type has been updated as \u003cspan pulumi-lang-nodejs=\"`set`\" pulumi-lang-dotnet=\"`Set`\" pulumi-lang-go=\"`set`\" pulumi-lang-python=\"`set`\" pulumi-lang-yaml=\"`set`\" pulumi-lang-java=\"`set`\"\u003e`set`\u003c/span\u003e from \u003cspan pulumi-lang-nodejs=\"`list`\" pulumi-lang-dotnet=\"`List`\" pulumi-lang-go=\"`list`\" pulumi-lang-python=\"`list`\" pulumi-lang-yaml=\"`list`\" pulumi-lang-java=\"`list`\"\u003e`list`\u003c/span\u003e,\nand you can use tolist to convert it to a list.\n"},"emailStatus":{"type":"integer","description":"The status of email subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"},"itemName":{"type":"string","description":"The name of the Subscription. **NOTE:**  You should use the \u003cspan pulumi-lang-nodejs=\"`alicloud.getMscSubSubscriptions`\" pulumi-lang-dotnet=\"`alicloud.getMscSubSubscriptions`\" pulumi-lang-go=\"`getMscSubSubscriptions`\" pulumi-lang-python=\"`get_msc_sub_subscriptions`\" pulumi-lang-yaml=\"`alicloud.getMscSubSubscriptions`\" pulumi-lang-java=\"`alicloud.getMscSubSubscriptions`\"\u003e`alicloud.getMscSubSubscriptions`\u003c/span\u003e to query the available subscription item name.\n","willReplaceOnChanges":true},"pmsgStatus":{"type":"integer","description":"The status of pmsg subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"},"smsStatus":{"type":"integer","description":"The status of sms subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"},"ttsStatus":{"type":"integer","description":"The status of tts subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"},"webhookIds":{"type":"array","items":{"type":"string"},"description":"The ids of subscribed webhooks.\n"},"webhookStatus":{"type":"integer","description":"The status of webhook subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"}},"requiredInputs":["itemName"],"stateInputs":{"description":"Input properties used for looking up and filtering MscSubSubscription resources.\n","properties":{"channel":{"type":"string","description":"The channel the Subscription.\n"},"contactIds":{"type":"array","items":{"type":"string"},"description":"The ids of subscribed contacts.\n**NOTE:** There is a potential diff error because of the order of \u003cspan pulumi-lang-nodejs=\"`contactIds`\" pulumi-lang-dotnet=\"`ContactIds`\" pulumi-lang-go=\"`contactIds`\" pulumi-lang-python=\"`contact_ids`\" pulumi-lang-yaml=\"`contactIds`\" pulumi-lang-java=\"`contactIds`\"\u003e`contact_ids`\u003c/span\u003e values indefinite.\nSo, from version 1.161.0, \u003cspan pulumi-lang-nodejs=\"`contactIds`\" pulumi-lang-dotnet=\"`ContactIds`\" pulumi-lang-go=\"`contactIds`\" pulumi-lang-python=\"`contact_ids`\" pulumi-lang-yaml=\"`contactIds`\" pulumi-lang-java=\"`contactIds`\"\u003e`contact_ids`\u003c/span\u003e type has been updated as \u003cspan pulumi-lang-nodejs=\"`set`\" pulumi-lang-dotnet=\"`Set`\" pulumi-lang-go=\"`set`\" pulumi-lang-python=\"`set`\" pulumi-lang-yaml=\"`set`\" pulumi-lang-java=\"`set`\"\u003e`set`\u003c/span\u003e from \u003cspan pulumi-lang-nodejs=\"`list`\" pulumi-lang-dotnet=\"`List`\" pulumi-lang-go=\"`list`\" pulumi-lang-python=\"`list`\" pulumi-lang-yaml=\"`list`\" pulumi-lang-java=\"`list`\"\u003e`list`\u003c/span\u003e,\nand you can use tolist to convert it to a list.\n"},"description":{"type":"string","description":"The description of the Subscription.\n"},"emailStatus":{"type":"integer","description":"The status of email subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"},"itemName":{"type":"string","description":"The name of the Subscription. **NOTE:**  You should use the \u003cspan pulumi-lang-nodejs=\"`alicloud.getMscSubSubscriptions`\" pulumi-lang-dotnet=\"`alicloud.getMscSubSubscriptions`\" pulumi-lang-go=\"`getMscSubSubscriptions`\" pulumi-lang-python=\"`get_msc_sub_subscriptions`\" pulumi-lang-yaml=\"`alicloud.getMscSubSubscriptions`\" pulumi-lang-java=\"`alicloud.getMscSubSubscriptions`\"\u003e`alicloud.getMscSubSubscriptions`\u003c/span\u003e to query the available subscription item name.\n","willReplaceOnChanges":true},"pmsgStatus":{"type":"integer","description":"The status of pmsg subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"},"smsStatus":{"type":"integer","description":"The status of sms subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"},"ttsStatus":{"type":"integer","description":"The status of tts subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"},"webhookIds":{"type":"array","items":{"type":"string"},"description":"The ids of subscribed webhooks.\n"},"webhookStatus":{"type":"integer","description":"The status of webhook subscription. Valid values: `-1`, `-2`, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. `-1` means required, `-2` means banned; \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means subscribed; \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means not subscribed.\n"}},"type":"object"}},"alicloud:index/mscSubWebhook:MscSubWebhook":{"description":"Provides a Msc Sub Webhook resource.\n\n\u003e **NOTE:** Available since v1.141.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst token = config.get(\"token\") || \"abcd****\";\nconst example = new alicloud.MscSubWebhook(\"example\", {\n    serverUrl: std.format({\n        input: \"https://oapi.dingtalk.com/robot/send?access_token=%s\",\n        args: [token],\n    }).then(invoke =\u003e invoke.result),\n    webhookName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\ntoken = config.get(\"token\")\nif token is None:\n    token = \"abcd****\"\nexample = alicloud.MscSubWebhook(\"example\",\n    server_url=std.format(input=\"https://oapi.dingtalk.com/robot/send?access_token=%s\",\n        args=[token]).result,\n    webhook_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var token = config.Get(\"token\") ?? \"abcd****\";\n    var example = new AliCloud.MscSubWebhook(\"example\", new()\n    {\n        ServerUrl = Std.Format.Invoke(new()\n        {\n            Input = \"https://oapi.dingtalk.com/robot/send?access_token=%s\",\n            Args = new[]\n            {\n                token,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        WebhookName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\ttoken := \"abcd****\"\n\t\tif param := cfg.Get(\"token\"); param != \"\" {\n\t\t\ttoken = param\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"https://oapi.dingtalk.com/robot/send?access_token=%s\",\n\t\t\tArgs: []string{\n\t\t\t\ttoken,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alicloud.NewMscSubWebhook(ctx, \"example\", \u0026alicloud.MscSubWebhookArgs{\n\t\t\tServerUrl:   pulumi.String(invokeFormat.Result),\n\t\t\tWebhookName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.MscSubWebhook;\nimport com.pulumi.alicloud.MscSubWebhookArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        final var token = config.get(\"token\").orElse(\"abcd****\");\n        var example = new MscSubWebhook(\"example\", MscSubWebhookArgs.builder()\n            .serverUrl(StdFunctions.format(FormatArgs.builder()\n                .input(\"https://oapi.dingtalk.com/robot/send?access_token=%s\")\n                .args(token)\n                .build()).result())\n            .webhookName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\n  token:\n    type: string\n    default: abcd****\nresources:\n  example:\n    type: alicloud:MscSubWebhook\n    properties:\n      serverUrl:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: https://oapi.dingtalk.com/robot/send?access_token=%s\n            args:\n              - ${token}\n          return: result\n      webhookName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMsc Sub Webhook can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:index/mscSubWebhook:MscSubWebhook example \u003cid\u003e\n```\n\n","properties":{"serverUrl":{"type":"string","description":"The serverUrl of the Webhook. This url must start with `https://oapi.dingtalk.com/robot/send?access_token=`.\n"},"webhookName":{"type":"string","description":"The name of the Webhook. **Note:** The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e characters in length, and can contain uppercase and lowercase letters.\n"}},"required":["serverUrl","webhookName"],"inputProperties":{"serverUrl":{"type":"string","description":"The serverUrl of the Webhook. This url must start with `https://oapi.dingtalk.com/robot/send?access_token=`.\n"},"webhookName":{"type":"string","description":"The name of the Webhook. **Note:** The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e characters in length, and can contain uppercase and lowercase letters.\n"}},"requiredInputs":["serverUrl","webhookName"],"stateInputs":{"description":"Input properties used for looking up and filtering MscSubWebhook resources.\n","properties":{"serverUrl":{"type":"string","description":"The serverUrl of the Webhook. This url must start with `https://oapi.dingtalk.com/robot/send?access_token=`.\n"},"webhookName":{"type":"string","description":"The name of the Webhook. **Note:** The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e characters in length, and can contain uppercase and lowercase letters.\n"}},"type":"object"}},"alicloud:index/openApiExplorerApiMcpServer:OpenApiExplorerApiMcpServer":{"description":"Provides a Open Api Explorer Api Mcp Server resource.\n\nAPI MCP Server.\n\nFor information about Open Api Explorer Api Mcp Server and how to use it, see [What is Api Mcp Server](https://next.api.alibabacloud.com/document/OpenAPIExplorer/2024-11-30/CreateApiMcpServer).\n\n\u003e **NOTE:** Available since v1.266.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.OpenApiExplorerApiMcpServer(\"default\", {\n    systemTools: [\"FetchRamActionDetails\"],\n    description: \"Create\",\n    prompts: [\n        {\n            description: \"Obtain user customization information description\",\n            content: \"Prompt body,{{name}}\",\n            arguments: [{\n                description: \"Name information\",\n                required: true,\n                name: \"name\",\n            }],\n            name: \"Obtain user customization information\",\n        },\n        {\n            description: \"Obtain user customization information description\",\n            content: \"Prompt text, {{name }}, {{age }}, {{description}}\",\n            arguments: [\n                {\n                    description: \"Name information\",\n                    required: true,\n                    name: \"name\",\n                },\n                {\n                    description: \"Age information\",\n                    required: true,\n                    name: \"age\",\n                },\n                {\n                    description: \"Description Information\",\n                    required: true,\n                    name: \"description\",\n                },\n            ],\n            name: \"Obtain user customization information 1\",\n        },\n    ],\n    oauthClientId: \"123456\",\n    apis: [\n        {\n            apiVersion: \"2014-05-26\",\n            product: \"Ecs\",\n            selectors: [\n                \"DescribeAvailableResource\",\n                \"DescribeRegions\",\n                \"DescribeZones\",\n            ],\n        },\n        {\n            apiVersion: \"2017-03-21\",\n            product: \"vod\",\n            selectors: [\"CreateUploadVideo\"],\n        },\n        {\n            apiVersion: \"2014-05-15\",\n            product: \"Slb\",\n            selectors: [\"DescribeAvailableResource\"],\n        },\n    ],\n    instructions: \"Describes the role of the entire MCP Server\",\n    additionalApiDescriptions: [\n        {\n            apiVersion: \"2014-05-26\",\n            enableOutputSchema: true,\n            apiName: \"DescribeAvailableResource\",\n            constParameters: [\n                {\n                    value: \"cn-hangzhou\",\n                    key: \"x_mcp_region_id\",\n                },\n                {\n                    value: \"B1\",\n                    key: \"a1\",\n                },\n                {\n                    value: \"b2\",\n                    key: \"a2\",\n                },\n            ],\n            apiOverrideJson: JSON.stringify({\n                summary: \"This operation supports querying the list of instances based on different request conditions and associating the query instance details. \",\n            }),\n            product: \"Ecs\",\n            executeCliCommand: false,\n        },\n        {\n            apiVersion: \"2014-05-26\",\n            enableOutputSchema: true,\n            apiName: \"DescribeRegions\",\n            product: \"Ecs\",\n            executeCliCommand: true,\n        },\n        {\n            apiVersion: \"2014-05-26\",\n            enableOutputSchema: true,\n            apiName: \"DescribeZones\",\n            product: \"Ecs\",\n            executeCliCommand: true,\n        },\n    ],\n    vpcWhitelists: [\n        \"vpc-examplea\",\n        \"vpc-exampleb\",\n        \"vpc-examplec\",\n    ],\n    name: \"my-name\",\n    language: \"ZH_CN\",\n    enableAssumeRole: true,\n    assumeRoleExtraPolicy: JSON.stringify({\n        Version: \"1\",\n        Statement: [{\n            Effect: \"Allow\",\n            Action: [\n                \"ecs:Describe*\",\n                \"vpc:Describe*\",\n                \"vpc:List*\",\n            ],\n            Resource: \"*\",\n        }],\n    }),\n    terraformTools: [\n        {\n            description: \"Terraform as tool example\",\n            async: true,\n            destroyPolicy: \"NEVER\",\n            code: `variable \\\\\"name\\\\\" {\n  default = \\\\\"terraform-example\\\\\"\n}\n\nprovider \\\\\"alicloud\\\\\" {\n  region = \\\\\"cn-beijing\\\\\"\n}\n\nresource \\\\\"alicloud_vpc\\\\\" \\\\\"default\\\\\" {\n  ipv6_isp    = \\\\\"BGP\\\\\"\n  description = \\\\\"example\\\\\"\n  cidr_block  = \\\\\"10.0.0.0/8\\\\\"\n  vpc_name    = var.name\n  enable_ipv6 = true\n}\n`,\n            name: \"tfexample\",\n        },\n        {\n            description: \"Terraform as tool example\",\n            async: true,\n            destroyPolicy: \"NEVER\",\n            code: `variable \\\\\"name\\\\\" {\n  default = \\\\\"terraform-example\\\\\"\n}\n\nprovider \\\\\"alicloud\\\\\" {\n  region = \\\\\"cn-beijing\\\\\"\n}\n\nresource \\\\\"alicloud_vpc\\\\\" \\\\\"default\\\\\" {\n  ipv6_isp    = \\\\\"BGP\\\\\"\n  description = \\\\\"example\\\\\"\n  cidr_block  = \\\\\"10.0.0.0/8\\\\\"\n  vpc_name    = var.name\n  enable_ipv6 = true\n}\n`,\n            name: \"tfexample2\",\n        },\n        {\n            description: \"Terraform as tool example\",\n            async: true,\n            destroyPolicy: \"NEVER\",\n            code: `variable \\\\\"name\\\\\" {\n  default = \\\\\"terraform-example\\\\\"\n}\n\nprovider \\\\\"alicloud\\\\\" {\n  region = \\\\\"cn-beijing\\\\\"\n}\n\nresource \\\\\"alicloud_vpc\\\\\" \\\\\"default\\\\\" {\n  ipv6_isp    = \\\\\"BGP\\\\\"\n  description = \\\\\"example\\\\\"\n  cidr_block  = \\\\\"10.0.0.0/8\\\\\"\n  vpc_name    = var.name\n  enable_ipv6 = true\n}\n`,\n            name: \"tfexample3\",\n        },\n    ],\n    assumeRoleName: \"default-role\",\n    publicAccess: \"on\",\n    enableCustomVpcWhitelist: true,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.OpenApiExplorerApiMcpServer(\"default\",\n    system_tools=[\"FetchRamActionDetails\"],\n    description=\"Create\",\n    prompts=[\n        {\n            \"description\": \"Obtain user customization information description\",\n            \"content\": \"Prompt body,{{name}}\",\n            \"arguments\": [{\n                \"description\": \"Name information\",\n                \"required\": True,\n                \"name\": \"name\",\n            }],\n            \"name\": \"Obtain user customization information\",\n        },\n        {\n            \"description\": \"Obtain user customization information description\",\n            \"content\": \"Prompt text, {{name }}, {{age }}, {{description}}\",\n            \"arguments\": [\n                {\n                    \"description\": \"Name information\",\n                    \"required\": True,\n                    \"name\": \"name\",\n                },\n                {\n                    \"description\": \"Age information\",\n                    \"required\": True,\n                    \"name\": \"age\",\n                },\n                {\n                    \"description\": \"Description Information\",\n                    \"required\": True,\n                    \"name\": \"description\",\n                },\n            ],\n            \"name\": \"Obtain user customization information 1\",\n        },\n    ],\n    oauth_client_id=\"123456\",\n    apis=[\n        {\n            \"api_version\": \"2014-05-26\",\n            \"product\": \"Ecs\",\n            \"selectors\": [\n                \"DescribeAvailableResource\",\n                \"DescribeRegions\",\n                \"DescribeZones\",\n            ],\n        },\n        {\n            \"api_version\": \"2017-03-21\",\n            \"product\": \"vod\",\n            \"selectors\": [\"CreateUploadVideo\"],\n        },\n        {\n            \"api_version\": \"2014-05-15\",\n            \"product\": \"Slb\",\n            \"selectors\": [\"DescribeAvailableResource\"],\n        },\n    ],\n    instructions=\"Describes the role of the entire MCP Server\",\n    additional_api_descriptions=[\n        {\n            \"api_version\": \"2014-05-26\",\n            \"enable_output_schema\": True,\n            \"api_name\": \"DescribeAvailableResource\",\n            \"const_parameters\": [\n                {\n                    \"value\": \"cn-hangzhou\",\n                    \"key\": \"x_mcp_region_id\",\n                },\n                {\n                    \"value\": \"B1\",\n                    \"key\": \"a1\",\n                },\n                {\n                    \"value\": \"b2\",\n                    \"key\": \"a2\",\n                },\n            ],\n            \"api_override_json\": json.dumps({\n                \"summary\": \"This operation supports querying the list of instances based on different request conditions and associating the query instance details. \",\n            }),\n            \"product\": \"Ecs\",\n            \"execute_cli_command\": False,\n        },\n        {\n            \"api_version\": \"2014-05-26\",\n            \"enable_output_schema\": True,\n            \"api_name\": \"DescribeRegions\",\n            \"product\": \"Ecs\",\n            \"execute_cli_command\": True,\n        },\n        {\n            \"api_version\": \"2014-05-26\",\n            \"enable_output_schema\": True,\n            \"api_name\": \"DescribeZones\",\n            \"product\": \"Ecs\",\n            \"execute_cli_command\": True,\n        },\n    ],\n    vpc_whitelists=[\n        \"vpc-examplea\",\n        \"vpc-exampleb\",\n        \"vpc-examplec\",\n    ],\n    name=\"my-name\",\n    language=\"ZH_CN\",\n    enable_assume_role=True,\n    assume_role_extra_policy=json.dumps({\n        \"Version\": \"1\",\n        \"Statement\": [{\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"ecs:Describe*\",\n                \"vpc:Describe*\",\n                \"vpc:List*\",\n            ],\n            \"Resource\": \"*\",\n        }],\n    }),\n    terraform_tools=[\n        {\n            \"description\": \"Terraform as tool example\",\n            \"async_\": True,\n            \"destroy_policy\": \"NEVER\",\n            \"code\": \"\"\"variable \\\"name\\\" {\n  default = \\\"terraform-example\\\"\n}\n\nprovider \\\"alicloud\\\" {\n  region = \\\"cn-beijing\\\"\n}\n\nresource \\\"alicloud_vpc\\\" \\\"default\\\" {\n  ipv6_isp    = \\\"BGP\\\"\n  description = \\\"example\\\"\n  cidr_block  = \\\"10.0.0.0/8\\\"\n  vpc_name    = var.name\n  enable_ipv6 = true\n}\n\"\"\",\n            \"name\": \"tfexample\",\n        },\n        {\n            \"description\": \"Terraform as tool example\",\n            \"async_\": True,\n            \"destroy_policy\": \"NEVER\",\n            \"code\": \"\"\"variable \\\"name\\\" {\n  default = \\\"terraform-example\\\"\n}\n\nprovider \\\"alicloud\\\" {\n  region = \\\"cn-beijing\\\"\n}\n\nresource \\\"alicloud_vpc\\\" \\\"default\\\" {\n  ipv6_isp    = \\\"BGP\\\"\n  description = \\\"example\\\"\n  cidr_block  = \\\"10.0.0.0/8\\\"\n  vpc_name    = var.name\n  enable_ipv6 = true\n}\n\"\"\",\n            \"name\": \"tfexample2\",\n        },\n        {\n            \"description\": \"Terraform as tool example\",\n            \"async_\": True,\n            \"destroy_policy\": \"NEVER\",\n            \"code\": \"\"\"variable \\\"name\\\" {\n  default = \\\"terraform-example\\\"\n}\n\nprovider \\\"alicloud\\\" {\n  region = \\\"cn-beijing\\\"\n}\n\nresource \\\"alicloud_vpc\\\" \\\"default\\\" {\n  ipv6_isp    = \\\"BGP\\\"\n  description = \\\"example\\\"\n  cidr_block  = \\\"10.0.0.0/8\\\"\n  vpc_name    = var.name\n  enable_ipv6 = true\n}\n\"\"\",\n            \"name\": \"tfexample3\",\n        },\n    ],\n    assume_role_name=\"default-role\",\n    public_access=\"on\",\n    enable_custom_vpc_whitelist=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.OpenApiExplorerApiMcpServer(\"default\", new()\n    {\n        SystemTools = new[]\n        {\n            \"FetchRamActionDetails\",\n        },\n        Description = \"Create\",\n        Prompts = new[]\n        {\n            new AliCloud.Inputs.OpenApiExplorerApiMcpServerPromptArgs\n            {\n                Description = \"Obtain user customization information description\",\n                Content = \"Prompt body,{{name}}\",\n                Arguments = new[]\n                {\n                    new AliCloud.Inputs.OpenApiExplorerApiMcpServerPromptArgumentArgs\n                    {\n                        Description = \"Name information\",\n                        Required = true,\n                        Name = \"name\",\n                    },\n                },\n                Name = \"Obtain user customization information\",\n            },\n            new AliCloud.Inputs.OpenApiExplorerApiMcpServerPromptArgs\n            {\n                Description = \"Obtain user customization information description\",\n                Content = \"Prompt text, {{name }}, {{age }}, {{description}}\",\n                Arguments = new[]\n                {\n                    new AliCloud.Inputs.OpenApiExplorerApiMcpServerPromptArgumentArgs\n                    {\n                        Description = \"Name information\",\n                        Required = true,\n                        Name = \"name\",\n                    },\n                    new AliCloud.Inputs.OpenApiExplorerApiMcpServerPromptArgumentArgs\n                    {\n                        Description = \"Age information\",\n                        Required = true,\n                        Name = \"age\",\n                    },\n                    new AliCloud.Inputs.OpenApiExplorerApiMcpServerPromptArgumentArgs\n                    {\n                        Description = \"Description Information\",\n                        Required = true,\n                        Name = \"description\",\n                    },\n                },\n                Name = \"Obtain user customization information 1\",\n            },\n        },\n        OauthClientId = \"123456\",\n        Apis = new[]\n        {\n            new AliCloud.Inputs.OpenApiExplorerApiMcpServerApiArgs\n            {\n                ApiVersion = \"2014-05-26\",\n                Product = \"Ecs\",\n                Selectors = new[]\n                {\n                    \"DescribeAvailableResource\",\n                    \"DescribeRegions\",\n                    \"DescribeZones\",\n                },\n            },\n            new AliCloud.Inputs.OpenApiExplorerApiMcpServerApiArgs\n            {\n                ApiVersion = \"2017-03-21\",\n                Product = \"vod\",\n                Selectors = new[]\n                {\n                    \"CreateUploadVideo\",\n                },\n            },\n            new AliCloud.Inputs.OpenApiExplorerApiMcpServerApiArgs\n            {\n                ApiVersion = \"2014-05-15\",\n                Product = \"Slb\",\n                Selectors = new[]\n                {\n                    \"DescribeAvailableResource\",\n                },\n            },\n        },\n        Instructions = \"Describes the role of the entire MCP Server\",\n        AdditionalApiDescriptions = new[]\n        {\n            new AliCloud.Inputs.OpenApiExplorerApiMcpServerAdditionalApiDescriptionArgs\n            {\n                ApiVersion = \"2014-05-26\",\n                EnableOutputSchema = true,\n                ApiName = \"DescribeAvailableResource\",\n                ConstParameters = new[]\n                {\n                    new AliCloud.Inputs.OpenApiExplorerApiMcpServerAdditionalApiDescriptionConstParameterArgs\n                    {\n                        Value = \"cn-hangzhou\",\n                        Key = \"x_mcp_region_id\",\n                    },\n                    new AliCloud.Inputs.OpenApiExplorerApiMcpServerAdditionalApiDescriptionConstParameterArgs\n                    {\n                        Value = \"B1\",\n                        Key = \"a1\",\n                    },\n                    new AliCloud.Inputs.OpenApiExplorerApiMcpServerAdditionalApiDescriptionConstParameterArgs\n                    {\n                        Value = \"b2\",\n                        Key = \"a2\",\n                    },\n                },\n                ApiOverrideJson = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"summary\"] = \"This operation supports querying the list of instances based on different request conditions and associating the query instance details. \",\n                }),\n                Product = \"Ecs\",\n                ExecuteCliCommand = false,\n            },\n            new AliCloud.Inputs.OpenApiExplorerApiMcpServerAdditionalApiDescriptionArgs\n            {\n                ApiVersion = \"2014-05-26\",\n                EnableOutputSchema = true,\n                ApiName = \"DescribeRegions\",\n                Product = \"Ecs\",\n                ExecuteCliCommand = true,\n            },\n            new AliCloud.Inputs.OpenApiExplorerApiMcpServerAdditionalApiDescriptionArgs\n            {\n                ApiVersion = \"2014-05-26\",\n                EnableOutputSchema = true,\n                ApiName = \"DescribeZones\",\n                Product = \"Ecs\",\n                ExecuteCliCommand = true,\n            },\n        },\n        VpcWhitelists = new[]\n        {\n            \"vpc-examplea\",\n            \"vpc-exampleb\",\n            \"vpc-examplec\",\n        },\n        Name = \"my-name\",\n        Language = \"ZH_CN\",\n        EnableAssumeRole = true,\n        AssumeRoleExtraPolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Version\"] = \"1\",\n            [\"Statement\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"Effect\"] = \"Allow\",\n                    [\"Action\"] = new[]\n                    {\n                        \"ecs:Describe*\",\n                        \"vpc:Describe*\",\n                        \"vpc:List*\",\n                    },\n                    [\"Resource\"] = \"*\",\n                },\n            },\n        }),\n        TerraformTools = new[]\n        {\n            new AliCloud.Inputs.OpenApiExplorerApiMcpServerTerraformToolArgs\n            {\n                Description = \"Terraform as tool example\",\n                Async = true,\n                DestroyPolicy = \"NEVER\",\n                Code = @\"variable \\\"\"name\\\"\" {\n  default = \\\"\"terraform-example\\\"\"\n}\n\nprovider \\\"\"alicloud\\\"\" {\n  region = \\\"\"cn-beijing\\\"\"\n}\n\nresource \\\"\"alicloud_vpc\\\"\" \\\"\"default\\\"\" {\n  ipv6_isp    = \\\"\"BGP\\\"\"\n  description = \\\"\"example\\\"\"\n  cidr_block  = \\\"\"10.0.0.0/8\\\"\"\n  vpc_name    = var.name\n  enable_ipv6 = true\n}\n\",\n                Name = \"tfexample\",\n            },\n            new AliCloud.Inputs.OpenApiExplorerApiMcpServerTerraformToolArgs\n            {\n                Description = \"Terraform as tool example\",\n                Async = true,\n                DestroyPolicy = \"NEVER\",\n                Code = @\"variable \\\"\"name\\\"\" {\n  default = \\\"\"terraform-example\\\"\"\n}\n\nprovider \\\"\"alicloud\\\"\" {\n  region = \\\"\"cn-beijing\\\"\"\n}\n\nresource \\\"\"alicloud_vpc\\\"\" \\\"\"default\\\"\" {\n  ipv6_isp    = \\\"\"BGP\\\"\"\n  description = \\\"\"example\\\"\"\n  cidr_block  = \\\"\"10.0.0.0/8\\\"\"\n  vpc_name    = var.name\n  enable_ipv6 = true\n}\n\",\n                Name = \"tfexample2\",\n            },\n            new AliCloud.Inputs.OpenApiExplorerApiMcpServerTerraformToolArgs\n            {\n                Description = \"Terraform as tool example\",\n                Async = true,\n                DestroyPolicy = \"NEVER\",\n                Code = @\"variable \\\"\"name\\\"\" {\n  default = \\\"\"terraform-example\\\"\"\n}\n\nprovider \\\"\"alicloud\\\"\" {\n  region = \\\"\"cn-beijing\\\"\"\n}\n\nresource \\\"\"alicloud_vpc\\\"\" \\\"\"default\\\"\" {\n  ipv6_isp    = \\\"\"BGP\\\"\"\n  description = \\\"\"example\\\"\"\n  cidr_block  = \\\"\"10.0.0.0/8\\\"\"\n  vpc_name    = var.name\n  enable_ipv6 = true\n}\n\",\n                Name = \"tfexample3\",\n            },\n        },\n        AssumeRoleName = \"default-role\",\n        PublicAccess = \"on\",\n        EnableCustomVpcWhitelist = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"summary\": \"This operation supports querying the list of instances based on different request conditions and associating the query instance details. \",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"1\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"ecs:Describe*\",\n\t\t\t\t\t\t\"vpc:Describe*\",\n\t\t\t\t\t\t\"vpc:List*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Resource\": \"*\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_, err = alicloud.NewOpenApiExplorerApiMcpServer(ctx, \"default\", \u0026alicloud.OpenApiExplorerApiMcpServerArgs{\n\t\t\tSystemTools: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"FetchRamActionDetails\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"Create\"),\n\t\t\tPrompts: alicloud.OpenApiExplorerApiMcpServerPromptArray{\n\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerPromptArgs{\n\t\t\t\t\tDescription: pulumi.String(\"Obtain user customization information description\"),\n\t\t\t\t\tContent:     pulumi.String(\"Prompt body,{{name}}\"),\n\t\t\t\t\tArguments: alicloud.OpenApiExplorerApiMcpServerPromptArgumentArray{\n\t\t\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerPromptArgumentArgs{\n\t\t\t\t\t\t\tDescription: pulumi.String(\"Name information\"),\n\t\t\t\t\t\t\tRequired:    pulumi.Bool(true),\n\t\t\t\t\t\t\tName:        pulumi.String(\"name\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"Obtain user customization information\"),\n\t\t\t\t},\n\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerPromptArgs{\n\t\t\t\t\tDescription: pulumi.String(\"Obtain user customization information description\"),\n\t\t\t\t\tContent:     pulumi.String(\"Prompt text, {{name }}, {{age }}, {{description}}\"),\n\t\t\t\t\tArguments: alicloud.OpenApiExplorerApiMcpServerPromptArgumentArray{\n\t\t\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerPromptArgumentArgs{\n\t\t\t\t\t\t\tDescription: pulumi.String(\"Name information\"),\n\t\t\t\t\t\t\tRequired:    pulumi.Bool(true),\n\t\t\t\t\t\t\tName:        pulumi.String(\"name\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerPromptArgumentArgs{\n\t\t\t\t\t\t\tDescription: pulumi.String(\"Age information\"),\n\t\t\t\t\t\t\tRequired:    pulumi.Bool(true),\n\t\t\t\t\t\t\tName:        pulumi.String(\"age\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerPromptArgumentArgs{\n\t\t\t\t\t\t\tDescription: pulumi.String(\"Description Information\"),\n\t\t\t\t\t\t\tRequired:    pulumi.Bool(true),\n\t\t\t\t\t\t\tName:        pulumi.String(\"description\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"Obtain user customization information 1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOauthClientId: pulumi.String(\"123456\"),\n\t\t\tApis: alicloud.OpenApiExplorerApiMcpServerApiArray{\n\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerApiArgs{\n\t\t\t\t\tApiVersion: pulumi.String(\"2014-05-26\"),\n\t\t\t\t\tProduct:    pulumi.String(\"Ecs\"),\n\t\t\t\t\tSelectors: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"DescribeAvailableResource\"),\n\t\t\t\t\t\tpulumi.String(\"DescribeRegions\"),\n\t\t\t\t\t\tpulumi.String(\"DescribeZones\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerApiArgs{\n\t\t\t\t\tApiVersion: pulumi.String(\"2017-03-21\"),\n\t\t\t\t\tProduct:    pulumi.String(\"vod\"),\n\t\t\t\t\tSelectors: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"CreateUploadVideo\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerApiArgs{\n\t\t\t\t\tApiVersion: pulumi.String(\"2014-05-15\"),\n\t\t\t\t\tProduct:    pulumi.String(\"Slb\"),\n\t\t\t\t\tSelectors: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"DescribeAvailableResource\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInstructions: pulumi.String(\"Describes the role of the entire MCP Server\"),\n\t\t\tAdditionalApiDescriptions: alicloud.OpenApiExplorerApiMcpServerAdditionalApiDescriptionArray{\n\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerAdditionalApiDescriptionArgs{\n\t\t\t\t\tApiVersion:         pulumi.String(\"2014-05-26\"),\n\t\t\t\t\tEnableOutputSchema: pulumi.Bool(true),\n\t\t\t\t\tApiName:            pulumi.String(\"DescribeAvailableResource\"),\n\t\t\t\t\tConstParameters: alicloud.OpenApiExplorerApiMcpServerAdditionalApiDescriptionConstParameterArray{\n\t\t\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerAdditionalApiDescriptionConstParameterArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"cn-hangzhou\"),\n\t\t\t\t\t\t\tKey:   pulumi.String(\"x_mcp_region_id\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerAdditionalApiDescriptionConstParameterArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"B1\"),\n\t\t\t\t\t\t\tKey:   pulumi.String(\"a1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerAdditionalApiDescriptionConstParameterArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"b2\"),\n\t\t\t\t\t\t\tKey:   pulumi.String(\"a2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tApiOverrideJson:   pulumi.String(json0),\n\t\t\t\t\tProduct:           pulumi.String(\"Ecs\"),\n\t\t\t\t\tExecuteCliCommand: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerAdditionalApiDescriptionArgs{\n\t\t\t\t\tApiVersion:         pulumi.String(\"2014-05-26\"),\n\t\t\t\t\tEnableOutputSchema: pulumi.Bool(true),\n\t\t\t\t\tApiName:            pulumi.String(\"DescribeRegions\"),\n\t\t\t\t\tProduct:            pulumi.String(\"Ecs\"),\n\t\t\t\t\tExecuteCliCommand:  pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerAdditionalApiDescriptionArgs{\n\t\t\t\t\tApiVersion:         pulumi.String(\"2014-05-26\"),\n\t\t\t\t\tEnableOutputSchema: pulumi.Bool(true),\n\t\t\t\t\tApiName:            pulumi.String(\"DescribeZones\"),\n\t\t\t\t\tProduct:            pulumi.String(\"Ecs\"),\n\t\t\t\t\tExecuteCliCommand:  pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVpcWhitelists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"vpc-examplea\"),\n\t\t\t\tpulumi.String(\"vpc-exampleb\"),\n\t\t\t\tpulumi.String(\"vpc-examplec\"),\n\t\t\t},\n\t\t\tName:                  pulumi.String(\"my-name\"),\n\t\t\tLanguage:              pulumi.String(\"ZH_CN\"),\n\t\t\tEnableAssumeRole:      pulumi.Bool(true),\n\t\t\tAssumeRoleExtraPolicy: pulumi.String(json1),\n\t\t\tTerraformTools: alicloud.OpenApiExplorerApiMcpServerTerraformToolArray{\n\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerTerraformToolArgs{\n\t\t\t\t\tDescription:   pulumi.String(\"Terraform as tool example\"),\n\t\t\t\t\tAsync:         pulumi.Bool(true),\n\t\t\t\t\tDestroyPolicy: pulumi.String(\"NEVER\"),\n\t\t\t\t\tCode: pulumi.String(`variable \\\"name\\\" {\n  default = \\\"terraform-example\\\"\n}\n\nprovider \\\"alicloud\\\" {\n  region = \\\"cn-beijing\\\"\n}\n\nresource \\\"alicloud_vpc\\\" \\\"default\\\" {\n  ipv6_isp    = \\\"BGP\\\"\n  description = \\\"example\\\"\n  cidr_block  = \\\"10.0.0.0/8\\\"\n  vpc_name    = var.name\n  enable_ipv6 = true\n}\n`),\n\t\t\t\t\tName: pulumi.String(\"tfexample\"),\n\t\t\t\t},\n\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerTerraformToolArgs{\n\t\t\t\t\tDescription:   pulumi.String(\"Terraform as tool example\"),\n\t\t\t\t\tAsync:         pulumi.Bool(true),\n\t\t\t\t\tDestroyPolicy: pulumi.String(\"NEVER\"),\n\t\t\t\t\tCode: pulumi.String(`variable \\\"name\\\" {\n  default = \\\"terraform-example\\\"\n}\n\nprovider \\\"alicloud\\\" {\n  region = \\\"cn-beijing\\\"\n}\n\nresource \\\"alicloud_vpc\\\" \\\"default\\\" {\n  ipv6_isp    = \\\"BGP\\\"\n  description = \\\"example\\\"\n  cidr_block  = \\\"10.0.0.0/8\\\"\n  vpc_name    = var.name\n  enable_ipv6 = true\n}\n`),\n\t\t\t\t\tName: pulumi.String(\"tfexample2\"),\n\t\t\t\t},\n\t\t\t\t\u0026alicloud.OpenApiExplorerApiMcpServerTerraformToolArgs{\n\t\t\t\t\tDescription:   pulumi.String(\"Terraform as tool example\"),\n\t\t\t\t\tAsync:         pulumi.Bool(true),\n\t\t\t\t\tDestroyPolicy: pulumi.String(\"NEVER\"),\n\t\t\t\t\tCode: pulumi.String(`variable \\\"name\\\" {\n  default = \\\"terraform-example\\\"\n}\n\nprovider \\\"alicloud\\\" {\n  region = \\\"cn-beijing\\\"\n}\n\nresource \\\"alicloud_vpc\\\" \\\"default\\\" {\n  ipv6_isp    = \\\"BGP\\\"\n  description = \\\"example\\\"\n  cidr_block  = \\\"10.0.0.0/8\\\"\n  vpc_name    = var.name\n  enable_ipv6 = true\n}\n`),\n\t\t\t\t\tName: pulumi.String(\"tfexample3\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAssumeRoleName:           pulumi.String(\"default-role\"),\n\t\t\tPublicAccess:             pulumi.String(\"on\"),\n\t\t\tEnableCustomVpcWhitelist: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.OpenApiExplorerApiMcpServer;\nimport com.pulumi.alicloud.OpenApiExplorerApiMcpServerArgs;\nimport com.pulumi.alicloud.inputs.OpenApiExplorerApiMcpServerPromptArgs;\nimport com.pulumi.alicloud.inputs.OpenApiExplorerApiMcpServerApiArgs;\nimport com.pulumi.alicloud.inputs.OpenApiExplorerApiMcpServerAdditionalApiDescriptionArgs;\nimport com.pulumi.alicloud.inputs.OpenApiExplorerApiMcpServerTerraformToolArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new OpenApiExplorerApiMcpServer(\"default\", OpenApiExplorerApiMcpServerArgs.builder()\n            .systemTools(\"FetchRamActionDetails\")\n            .description(\"Create\")\n            .prompts(            \n                OpenApiExplorerApiMcpServerPromptArgs.builder()\n                    .description(\"Obtain user customization information description\")\n                    .content(\"Prompt body,{{name}}\")\n                    .arguments(OpenApiExplorerApiMcpServerPromptArgumentArgs.builder()\n                        .description(\"Name information\")\n                        .required(true)\n                        .name(\"name\")\n                        .build())\n                    .name(\"Obtain user customization information\")\n                    .build(),\n                OpenApiExplorerApiMcpServerPromptArgs.builder()\n                    .description(\"Obtain user customization information description\")\n                    .content(\"Prompt text, {{name }}, {{age }}, {{description}}\")\n                    .arguments(                    \n                        OpenApiExplorerApiMcpServerPromptArgumentArgs.builder()\n                            .description(\"Name information\")\n                            .required(true)\n                            .name(\"name\")\n                            .build(),\n                        OpenApiExplorerApiMcpServerPromptArgumentArgs.builder()\n                            .description(\"Age information\")\n                            .required(true)\n                            .name(\"age\")\n                            .build(),\n                        OpenApiExplorerApiMcpServerPromptArgumentArgs.builder()\n                            .description(\"Description Information\")\n                            .required(true)\n                            .name(\"description\")\n                            .build())\n                    .name(\"Obtain user customization information 1\")\n                    .build())\n            .oauthClientId(\"123456\")\n            .apis(            \n                OpenApiExplorerApiMcpServerApiArgs.builder()\n                    .apiVersion(\"2014-05-26\")\n                    .product(\"Ecs\")\n                    .selectors(                    \n                        \"DescribeAvailableResource\",\n                        \"DescribeRegions\",\n                        \"DescribeZones\")\n                    .build(),\n                OpenApiExplorerApiMcpServerApiArgs.builder()\n                    .apiVersion(\"2017-03-21\")\n                    .product(\"vod\")\n                    .selectors(\"CreateUploadVideo\")\n                    .build(),\n                OpenApiExplorerApiMcpServerApiArgs.builder()\n                    .apiVersion(\"2014-05-15\")\n                    .product(\"Slb\")\n                    .selectors(\"DescribeAvailableResource\")\n                    .build())\n            .instructions(\"Describes the role of the entire MCP Server\")\n            .additionalApiDescriptions(            \n                OpenApiExplorerApiMcpServerAdditionalApiDescriptionArgs.builder()\n                    .apiVersion(\"2014-05-26\")\n                    .enableOutputSchema(true)\n                    .apiName(\"DescribeAvailableResource\")\n                    .constParameters(                    \n                        OpenApiExplorerApiMcpServerAdditionalApiDescriptionConstParameterArgs.builder()\n                            .value(\"cn-hangzhou\")\n                            .key(\"x_mcp_region_id\")\n                            .build(),\n                        OpenApiExplorerApiMcpServerAdditionalApiDescriptionConstParameterArgs.builder()\n                            .value(\"B1\")\n                            .key(\"a1\")\n                            .build(),\n                        OpenApiExplorerApiMcpServerAdditionalApiDescriptionConstParameterArgs.builder()\n                            .value(\"b2\")\n                            .key(\"a2\")\n                            .build())\n                    .apiOverrideJson(serializeJson(\n                        jsonObject(\n                            jsonProperty(\"summary\", \"This operation supports querying the list of instances based on different request conditions and associating the query instance details. \")\n                        )))\n                    .product(\"Ecs\")\n                    .executeCliCommand(false)\n                    .build(),\n                OpenApiExplorerApiMcpServerAdditionalApiDescriptionArgs.builder()\n                    .apiVersion(\"2014-05-26\")\n                    .enableOutputSchema(true)\n                    .apiName(\"DescribeRegions\")\n                    .product(\"Ecs\")\n                    .executeCliCommand(true)\n                    .build(),\n                OpenApiExplorerApiMcpServerAdditionalApiDescriptionArgs.builder()\n                    .apiVersion(\"2014-05-26\")\n                    .enableOutputSchema(true)\n                    .apiName(\"DescribeZones\")\n                    .product(\"Ecs\")\n                    .executeCliCommand(true)\n                    .build())\n            .vpcWhitelists(            \n                \"vpc-examplea\",\n                \"vpc-exampleb\",\n                \"vpc-examplec\")\n            .name(\"my-name\")\n            .language(\"ZH_CN\")\n            .enableAssumeRole(true)\n            .assumeRoleExtraPolicy(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Version\", \"1\"),\n                    jsonProperty(\"Statement\", jsonArray(jsonObject(\n                        jsonProperty(\"Effect\", \"Allow\"),\n                        jsonProperty(\"Action\", jsonArray(\n                            \"ecs:Describe*\", \n                            \"vpc:Describe*\", \n                            \"vpc:List*\"\n                        )),\n                        jsonProperty(\"Resource\", \"*\")\n                    )))\n                )))\n            .terraformTools(            \n                OpenApiExplorerApiMcpServerTerraformToolArgs.builder()\n                    .description(\"Terraform as tool example\")\n                    .async(true)\n                    .destroyPolicy(\"NEVER\")\n                    .code(\"\"\"\nvariable \\\"name\\\" {\n  default = \\\"terraform-example\\\"\n}\n\nprovider \\\"alicloud\\\" {\n  region = \\\"cn-beijing\\\"\n}\n\nresource \\\"alicloud_vpc\\\" \\\"default\\\" {\n  ipv6_isp    = \\\"BGP\\\"\n  description = \\\"example\\\"\n  cidr_block  = \\\"10.0.0.0/8\\\"\n  vpc_name    = var.name\n  enable_ipv6 = true\n}\n                    \"\"\")\n                    .name(\"tfexample\")\n                    .build(),\n                OpenApiExplorerApiMcpServerTerraformToolArgs.builder()\n                    .description(\"Terraform as tool example\")\n                    .async(true)\n                    .destroyPolicy(\"NEVER\")\n                    .code(\"\"\"\nvariable \\\"name\\\" {\n  default = \\\"terraform-example\\\"\n}\n\nprovider \\\"alicloud\\\" {\n  region = \\\"cn-beijing\\\"\n}\n\nresource \\\"alicloud_vpc\\\" \\\"default\\\" {\n  ipv6_isp    = \\\"BGP\\\"\n  description = \\\"example\\\"\n  cidr_block  = \\\"10.0.0.0/8\\\"\n  vpc_name    = var.name\n  enable_ipv6 = true\n}\n                    \"\"\")\n                    .name(\"tfexample2\")\n                    .build(),\n                OpenApiExplorerApiMcpServerTerraformToolArgs.builder()\n                    .description(\"Terraform as tool example\")\n                    .async(true)\n                    .destroyPolicy(\"NEVER\")\n                    .code(\"\"\"\nvariable \\\"name\\\" {\n  default = \\\"terraform-example\\\"\n}\n\nprovider \\\"alicloud\\\" {\n  region = \\\"cn-beijing\\\"\n}\n\nresource \\\"alicloud_vpc\\\" \\\"default\\\" {\n  ipv6_isp    = \\\"BGP\\\"\n  description = \\\"example\\\"\n  cidr_block  = \\\"10.0.0.0/8\\\"\n  vpc_name    = var.name\n  enable_ipv6 = true\n}\n                    \"\"\")\n                    .name(\"tfexample3\")\n                    .build())\n            .assumeRoleName(\"default-role\")\n            .publicAccess(\"on\")\n            .enableCustomVpcWhitelist(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:OpenApiExplorerApiMcpServer\n    properties:\n      systemTools:\n        - FetchRamActionDetails\n      description: Create\n      prompts:\n        - description: Obtain user customization information description\n          content: Prompt body,{{name}}\n          arguments:\n            - description: Name information\n              required: true\n              name: name\n          name: Obtain user customization information\n        - description: Obtain user customization information description\n          content: Prompt text, {{name }}, {{age }}, {{description}}\n          arguments:\n            - description: Name information\n              required: true\n              name: name\n            - description: Age information\n              required: true\n              name: age\n            - description: Description Information\n              required: true\n              name: description\n          name: Obtain user customization information 1\n      oauthClientId: '123456'\n      apis:\n        - apiVersion: 2014-05-26\n          product: Ecs\n          selectors:\n            - DescribeAvailableResource\n            - DescribeRegions\n            - DescribeZones\n        - apiVersion: 2017-03-21\n          product: vod\n          selectors:\n            - CreateUploadVideo\n        - apiVersion: 2014-05-15\n          product: Slb\n          selectors:\n            - DescribeAvailableResource\n      instructions: Describes the role of the entire MCP Server\n      additionalApiDescriptions:\n        - apiVersion: 2014-05-26\n          enableOutputSchema: true\n          apiName: DescribeAvailableResource\n          constParameters:\n            - value: cn-hangzhou\n              key: x_mcp_region_id\n            - value: B1\n              key: a1\n            - value: b2\n              key: a2\n          apiOverrideJson:\n            fn::toJSON:\n              summary: 'This operation supports querying the list of instances based on different request conditions and associating the query instance details. '\n          product: Ecs\n          executeCliCommand: false\n        - apiVersion: 2014-05-26\n          enableOutputSchema: true\n          apiName: DescribeRegions\n          product: Ecs\n          executeCliCommand: true\n        - apiVersion: 2014-05-26\n          enableOutputSchema: true\n          apiName: DescribeZones\n          product: Ecs\n          executeCliCommand: true\n      vpcWhitelists:\n        - vpc-examplea\n        - vpc-exampleb\n        - vpc-examplec\n      name: my-name\n      language: ZH_CN\n      enableAssumeRole: true\n      assumeRoleExtraPolicy:\n        fn::toJSON:\n          Version: '1'\n          Statement:\n            - Effect: Allow\n              Action:\n                - ecs:Describe*\n                - vpc:Describe*\n                - vpc:List*\n              Resource: '*'\n      terraformTools:\n        - description: Terraform as tool example\n          async: true\n          destroyPolicy: NEVER\n          code: |\n            variable \\\"name\\\" {\n              default = \\\"terraform-example\\\"\n            }\n\n            provider \\\"alicloud\\\" {\n              region = \\\"cn-beijing\\\"\n            }\n\n            resource \\\"alicloud_vpc\\\" \\\"default\\\" {\n              ipv6_isp    = \\\"BGP\\\"\n              description = \\\"example\\\"\n              cidr_block  = \\\"10.0.0.0/8\\\"\n              vpc_name    = var.name\n              enable_ipv6 = true\n            }\n          name: tfexample\n        - description: Terraform as tool example\n          async: true\n          destroyPolicy: NEVER\n          code: |\n            variable \\\"name\\\" {\n              default = \\\"terraform-example\\\"\n            }\n\n            provider \\\"alicloud\\\" {\n              region = \\\"cn-beijing\\\"\n            }\n\n            resource \\\"alicloud_vpc\\\" \\\"default\\\" {\n              ipv6_isp    = \\\"BGP\\\"\n              description = \\\"example\\\"\n              cidr_block  = \\\"10.0.0.0/8\\\"\n              vpc_name    = var.name\n              enable_ipv6 = true\n            }\n          name: tfexample2\n        - description: Terraform as tool example\n          async: true\n          destroyPolicy: NEVER\n          code: |\n            variable \\\"name\\\" {\n              default = \\\"terraform-example\\\"\n            }\n\n            provider \\\"alicloud\\\" {\n              region = \\\"cn-beijing\\\"\n            }\n\n            resource \\\"alicloud_vpc\\\" \\\"default\\\" {\n              ipv6_isp    = \\\"BGP\\\"\n              description = \\\"example\\\"\n              cidr_block  = \\\"10.0.0.0/8\\\"\n              vpc_name    = var.name\n              enable_ipv6 = true\n            }\n          name: tfexample3\n      assumeRoleName: default-role\n      publicAccess: on\n      enableCustomVpcWhitelist: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOpen Api Explorer Api Mcp Server can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:index/openApiExplorerApiMcpServer:OpenApiExplorerApiMcpServer example \u003cid\u003e\n```\n\n","properties":{"additionalApiDescriptions":{"type":"array","items":{"$ref":"#/types/alicloud:index/OpenApiExplorerApiMcpServerAdditionalApiDescription:OpenApiExplorerApiMcpServerAdditionalApiDescription"},"description":"Additional OpenAPI description information that can override the default behavior of APIs, including:\n- API name\n- Modification or removal of API parameter names\n- Whether to exclude the API from the output API response structure definition\n- Whether to return a CLI execution command instead of directly executing the API\n- Configuration of constant values for API parameters; parameters set as constants will not have their definitions returned in the tool list   See \u003cspan pulumi-lang-nodejs=\"`additionalApiDescriptions`\" pulumi-lang-dotnet=\"`AdditionalApiDescriptions`\" pulumi-lang-go=\"`additionalApiDescriptions`\" pulumi-lang-python=\"`additional_api_descriptions`\" pulumi-lang-yaml=\"`additionalApiDescriptions`\" pulumi-lang-java=\"`additionalApiDescriptions`\"\u003e`additional_api_descriptions`\u003c/span\u003e below.\n"},"apis":{"type":"array","items":{"$ref":"#/types/alicloud:index/OpenApiExplorerApiMcpServerApi:OpenApiExplorerApiMcpServerApi"},"description":"The list of APIs to be included in the API MCP Server. See \u003cspan pulumi-lang-nodejs=\"`apis`\" pulumi-lang-dotnet=\"`Apis`\" pulumi-lang-go=\"`apis`\" pulumi-lang-python=\"`apis`\" pulumi-lang-yaml=\"`apis`\" pulumi-lang-java=\"`apis`\"\u003e`apis`\u003c/span\u003e below.\n"},"assumeRoleExtraPolicy":{"type":"string","description":"When multi-account access is enabled, this field defines an additional policy for role assumption. If specified, this policy overrides the original permissions defined for the role, and the assumed role’s permissions are determined solely by this policy.\n"},"assumeRoleName":{"type":"string","description":"The name of the RAM role in the target account to assume when enabling multi-account access for cross-account operations.\n"},"createTime":{"type":"string","description":"MCP Server creation time in China Standard Time (CST), for example, 2025-12-04 19:46:52.\n"},"description":{"type":"string","description":"Description of the API MCP service.\n"},"enableAssumeRole":{"type":"boolean","description":"Specifies whether to enable multi-account access. When enabled, the MCP Server exposes the\u003cspan pulumi-lang-nodejs=\" xAssumeAccountId \" pulumi-lang-dotnet=\" XAssumeAccountId \" pulumi-lang-go=\" xAssumeAccountId \" pulumi-lang-python=\" x_assume_account_id \" pulumi-lang-yaml=\" xAssumeAccountId \" pulumi-lang-java=\" xAssumeAccountId \"\u003e x_assume_account_id \u003c/span\u003eparameter by default. When this parameter is provided, the MCP Server switches to the specified account to perform operations.\n"},"enableCustomVpcWhitelist":{"type":"boolean","description":"Whether to enable a custom VPC whitelist. If disabled, the configuration follows the account-level setting.\n"},"instructions":{"type":"string","description":"MCP instructions that guide the large language model on how to use this MCP. The client must support the Instructions field defined in the MCP standard protocol.\n"},"language":{"type":"string","description":"Documentation language for the API MCP service. You can select either Chinese or English API documentation. The choice of language may affect the AI's response quality due to differences in prompt wording. Supported values are EN_US and ZH_CN.\n"},"name":{"type":"string","description":"Name of the MCP Server. It can contain digits, English letters, and hyphens (-).\n"},"oauthClientId":{"type":"string","description":"The custom OAuth Client ID when selecting a custom OAuth configuration.\n`Supported only for Web/Native applications, and the OAuth scope must include /acs/mcp-server.`\n"},"prompts":{"type":"array","items":{"$ref":"#/types/alicloud:index/OpenApiExplorerApiMcpServerPrompt:OpenApiExplorerApiMcpServerPrompt"},"description":"List of prompts supported by the MCP Server. For the MCP protocol, clients retrieve this list through the prompts/list RPC call. See \u003cspan pulumi-lang-nodejs=\"`prompts`\" pulumi-lang-dotnet=\"`Prompts`\" pulumi-lang-go=\"`prompts`\" pulumi-lang-python=\"`prompts`\" pulumi-lang-yaml=\"`prompts`\" pulumi-lang-java=\"`prompts`\"\u003e`prompts`\u003c/span\u003e below.\n"},"publicAccess":{"type":"string","description":"Whether to enable public network access. This setting takes precedence over the account-level configuration and supports the following options:\n- on: enables public network access;\n- off: disables public network access;\n- follow: inherits the account-level configuration.\n"},"systemTools":{"type":"array","items":{"type":"string"},"description":"Enabled system services.\n"},"terraformTools":{"type":"array","items":{"$ref":"#/types/alicloud:index/OpenApiExplorerApiMcpServerTerraformTool:OpenApiExplorerApiMcpServerTerraformTool"},"description":"A list of Terraform Tools. The MCP Server allows using Terraform HCL code as a complete tool to improve the determinism of orchestration. See \u003cspan pulumi-lang-nodejs=\"`terraformTools`\" pulumi-lang-dotnet=\"`TerraformTools`\" pulumi-lang-go=\"`terraformTools`\" pulumi-lang-python=\"`terraform_tools`\" pulumi-lang-yaml=\"`terraformTools`\" pulumi-lang-java=\"`terraformTools`\"\u003e`terraform_tools`\u003c/span\u003e below.\n"},"vpcWhitelists":{"type":"array","items":{"type":"string"},"description":"When public network access is disabled, this field specifies the VPC whitelist that restricts source VPCs. If not set or left empty, no restriction is applied to the source.\n"}},"required":["apis","createTime","name"],"inputProperties":{"additionalApiDescriptions":{"type":"array","items":{"$ref":"#/types/alicloud:index/OpenApiExplorerApiMcpServerAdditionalApiDescription:OpenApiExplorerApiMcpServerAdditionalApiDescription"},"description":"Additional OpenAPI description information that can override the default behavior of APIs, including:\n- API name\n- Modification or removal of API parameter names\n- Whether to exclude the API from the output API response structure definition\n- Whether to return a CLI execution command instead of directly executing the API\n- Configuration of constant values for API parameters; parameters set as constants will not have their definitions returned in the tool list   See \u003cspan pulumi-lang-nodejs=\"`additionalApiDescriptions`\" pulumi-lang-dotnet=\"`AdditionalApiDescriptions`\" pulumi-lang-go=\"`additionalApiDescriptions`\" pulumi-lang-python=\"`additional_api_descriptions`\" pulumi-lang-yaml=\"`additionalApiDescriptions`\" pulumi-lang-java=\"`additionalApiDescriptions`\"\u003e`additional_api_descriptions`\u003c/span\u003e below.\n"},"apis":{"type":"array","items":{"$ref":"#/types/alicloud:index/OpenApiExplorerApiMcpServerApi:OpenApiExplorerApiMcpServerApi"},"description":"The list of APIs to be included in the API MCP Server. See \u003cspan pulumi-lang-nodejs=\"`apis`\" pulumi-lang-dotnet=\"`Apis`\" pulumi-lang-go=\"`apis`\" pulumi-lang-python=\"`apis`\" pulumi-lang-yaml=\"`apis`\" pulumi-lang-java=\"`apis`\"\u003e`apis`\u003c/span\u003e below.\n"},"assumeRoleExtraPolicy":{"type":"string","description":"When multi-account access is enabled, this field defines an additional policy for role assumption. If specified, this policy overrides the original permissions defined for the role, and the assumed role’s permissions are determined solely by this policy.\n"},"assumeRoleName":{"type":"string","description":"The name of the RAM role in the target account to assume when enabling multi-account access for cross-account operations.\n"},"description":{"type":"string","description":"Description of the API MCP service.\n"},"enableAssumeRole":{"type":"boolean","description":"Specifies whether to enable multi-account access. When enabled, the MCP Server exposes the\u003cspan pulumi-lang-nodejs=\" xAssumeAccountId \" pulumi-lang-dotnet=\" XAssumeAccountId \" pulumi-lang-go=\" xAssumeAccountId \" pulumi-lang-python=\" x_assume_account_id \" pulumi-lang-yaml=\" xAssumeAccountId \" pulumi-lang-java=\" xAssumeAccountId \"\u003e x_assume_account_id \u003c/span\u003eparameter by default. When this parameter is provided, the MCP Server switches to the specified account to perform operations.\n"},"enableCustomVpcWhitelist":{"type":"boolean","description":"Whether to enable a custom VPC whitelist. If disabled, the configuration follows the account-level setting.\n"},"instructions":{"type":"string","description":"MCP instructions that guide the large language model on how to use this MCP. The client must support the Instructions field defined in the MCP standard protocol.\n"},"language":{"type":"string","description":"Documentation language for the API MCP service. You can select either Chinese or English API documentation. The choice of language may affect the AI's response quality due to differences in prompt wording. Supported values are EN_US and ZH_CN.\n"},"name":{"type":"string","description":"Name of the MCP Server. It can contain digits, English letters, and hyphens (-).\n","willReplaceOnChanges":true},"oauthClientId":{"type":"string","description":"The custom OAuth Client ID when selecting a custom OAuth configuration.\n`Supported only for Web/Native applications, and the OAuth scope must include /acs/mcp-server.`\n"},"prompts":{"type":"array","items":{"$ref":"#/types/alicloud:index/OpenApiExplorerApiMcpServerPrompt:OpenApiExplorerApiMcpServerPrompt"},"description":"List of prompts supported by the MCP Server. For the MCP protocol, clients retrieve this list through the prompts/list RPC call. See \u003cspan pulumi-lang-nodejs=\"`prompts`\" pulumi-lang-dotnet=\"`Prompts`\" pulumi-lang-go=\"`prompts`\" pulumi-lang-python=\"`prompts`\" pulumi-lang-yaml=\"`prompts`\" pulumi-lang-java=\"`prompts`\"\u003e`prompts`\u003c/span\u003e below.\n"},"publicAccess":{"type":"string","description":"Whether to enable public network access. This setting takes precedence over the account-level configuration and supports the following options:\n- on: enables public network access;\n- off: disables public network access;\n- follow: inherits the account-level configuration.\n"},"systemTools":{"type":"array","items":{"type":"string"},"description":"Enabled system services.\n"},"terraformTools":{"type":"array","items":{"$ref":"#/types/alicloud:index/OpenApiExplorerApiMcpServerTerraformTool:OpenApiExplorerApiMcpServerTerraformTool"},"description":"A list of Terraform Tools. The MCP Server allows using Terraform HCL code as a complete tool to improve the determinism of orchestration. See \u003cspan pulumi-lang-nodejs=\"`terraformTools`\" pulumi-lang-dotnet=\"`TerraformTools`\" pulumi-lang-go=\"`terraformTools`\" pulumi-lang-python=\"`terraform_tools`\" pulumi-lang-yaml=\"`terraformTools`\" pulumi-lang-java=\"`terraformTools`\"\u003e`terraform_tools`\u003c/span\u003e below.\n"},"vpcWhitelists":{"type":"array","items":{"type":"string"},"description":"When public network access is disabled, this field specifies the VPC whitelist that restricts source VPCs. If not set or left empty, no restriction is applied to the source.\n"}},"requiredInputs":["apis"],"stateInputs":{"description":"Input properties used for looking up and filtering OpenApiExplorerApiMcpServer resources.\n","properties":{"additionalApiDescriptions":{"type":"array","items":{"$ref":"#/types/alicloud:index/OpenApiExplorerApiMcpServerAdditionalApiDescription:OpenApiExplorerApiMcpServerAdditionalApiDescription"},"description":"Additional OpenAPI description information that can override the default behavior of APIs, including:\n- API name\n- Modification or removal of API parameter names\n- Whether to exclude the API from the output API response structure definition\n- Whether to return a CLI execution command instead of directly executing the API\n- Configuration of constant values for API parameters; parameters set as constants will not have their definitions returned in the tool list   See \u003cspan pulumi-lang-nodejs=\"`additionalApiDescriptions`\" pulumi-lang-dotnet=\"`AdditionalApiDescriptions`\" pulumi-lang-go=\"`additionalApiDescriptions`\" pulumi-lang-python=\"`additional_api_descriptions`\" pulumi-lang-yaml=\"`additionalApiDescriptions`\" pulumi-lang-java=\"`additionalApiDescriptions`\"\u003e`additional_api_descriptions`\u003c/span\u003e below.\n"},"apis":{"type":"array","items":{"$ref":"#/types/alicloud:index/OpenApiExplorerApiMcpServerApi:OpenApiExplorerApiMcpServerApi"},"description":"The list of APIs to be included in the API MCP Server. See \u003cspan pulumi-lang-nodejs=\"`apis`\" pulumi-lang-dotnet=\"`Apis`\" pulumi-lang-go=\"`apis`\" pulumi-lang-python=\"`apis`\" pulumi-lang-yaml=\"`apis`\" pulumi-lang-java=\"`apis`\"\u003e`apis`\u003c/span\u003e below.\n"},"assumeRoleExtraPolicy":{"type":"string","description":"When multi-account access is enabled, this field defines an additional policy for role assumption. If specified, this policy overrides the original permissions defined for the role, and the assumed role’s permissions are determined solely by this policy.\n"},"assumeRoleName":{"type":"string","description":"The name of the RAM role in the target account to assume when enabling multi-account access for cross-account operations.\n"},"createTime":{"type":"string","description":"MCP Server creation time in China Standard Time (CST), for example, 2025-12-04 19:46:52.\n"},"description":{"type":"string","description":"Description of the API MCP service.\n"},"enableAssumeRole":{"type":"boolean","description":"Specifies whether to enable multi-account access. When enabled, the MCP Server exposes the\u003cspan pulumi-lang-nodejs=\" xAssumeAccountId \" pulumi-lang-dotnet=\" XAssumeAccountId \" pulumi-lang-go=\" xAssumeAccountId \" pulumi-lang-python=\" x_assume_account_id \" pulumi-lang-yaml=\" xAssumeAccountId \" pulumi-lang-java=\" xAssumeAccountId \"\u003e x_assume_account_id \u003c/span\u003eparameter by default. When this parameter is provided, the MCP Server switches to the specified account to perform operations.\n"},"enableCustomVpcWhitelist":{"type":"boolean","description":"Whether to enable a custom VPC whitelist. If disabled, the configuration follows the account-level setting.\n"},"instructions":{"type":"string","description":"MCP instructions that guide the large language model on how to use this MCP. The client must support the Instructions field defined in the MCP standard protocol.\n"},"language":{"type":"string","description":"Documentation language for the API MCP service. You can select either Chinese or English API documentation. The choice of language may affect the AI's response quality due to differences in prompt wording. Supported values are EN_US and ZH_CN.\n"},"name":{"type":"string","description":"Name of the MCP Server. It can contain digits, English letters, and hyphens (-).\n","willReplaceOnChanges":true},"oauthClientId":{"type":"string","description":"The custom OAuth Client ID when selecting a custom OAuth configuration.\n`Supported only for Web/Native applications, and the OAuth scope must include /acs/mcp-server.`\n"},"prompts":{"type":"array","items":{"$ref":"#/types/alicloud:index/OpenApiExplorerApiMcpServerPrompt:OpenApiExplorerApiMcpServerPrompt"},"description":"List of prompts supported by the MCP Server. For the MCP protocol, clients retrieve this list through the prompts/list RPC call. See \u003cspan pulumi-lang-nodejs=\"`prompts`\" pulumi-lang-dotnet=\"`Prompts`\" pulumi-lang-go=\"`prompts`\" pulumi-lang-python=\"`prompts`\" pulumi-lang-yaml=\"`prompts`\" pulumi-lang-java=\"`prompts`\"\u003e`prompts`\u003c/span\u003e below.\n"},"publicAccess":{"type":"string","description":"Whether to enable public network access. This setting takes precedence over the account-level configuration and supports the following options:\n- on: enables public network access;\n- off: disables public network access;\n- follow: inherits the account-level configuration.\n"},"systemTools":{"type":"array","items":{"type":"string"},"description":"Enabled system services.\n"},"terraformTools":{"type":"array","items":{"$ref":"#/types/alicloud:index/OpenApiExplorerApiMcpServerTerraformTool:OpenApiExplorerApiMcpServerTerraformTool"},"description":"A list of Terraform Tools. The MCP Server allows using Terraform HCL code as a complete tool to improve the determinism of orchestration. See \u003cspan pulumi-lang-nodejs=\"`terraformTools`\" pulumi-lang-dotnet=\"`TerraformTools`\" pulumi-lang-go=\"`terraformTools`\" pulumi-lang-python=\"`terraform_tools`\" pulumi-lang-yaml=\"`terraformTools`\" pulumi-lang-java=\"`terraformTools`\"\u003e`terraform_tools`\u003c/span\u003e below.\n"},"vpcWhitelists":{"type":"array","items":{"type":"string"},"description":"When public network access is disabled, this field specifies the VPC whitelist that restricts source VPCs. If not set or left empty, no restriction is applied to the source.\n"}},"type":"object"}},"alicloud:index/polarDbExtension:PolarDbExtension":{"description":"Provides a Polar Db Extension resource.\n\n\n\nFor information about Polar Db Extension and how to use it, see [What is Extension](https://next.api.alibabacloud.com/document/polardb/2017-08-01/CreateExtensions).\n\n\u003e **NOTE:** Available since v1.264.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.polardb.getNodeClasses({\n    dbType: \"PostgreSQL\",\n    payType: \"PostPaid\",\n    category: \"Normal\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.classes?.[0]?.zoneId),\n    vswitchName: \"terraform-example\",\n});\nconst dbcluster = new alicloud.polardb.Cluster(\"dbcluster\", {\n    defaultTimeZone: \"SYSTEM\",\n    creationCategory: \"Normal\",\n    zoneId: _default.then(_default =\u003e _default.classes?.[0]?.zoneId),\n    creationOption: \"Normal\",\n    dbVersion: \"14\",\n    payType: \"PostPaid\",\n    dbType: \"PostgreSQL\",\n    dbNodeClass: \"polar.pg.x4.medium.c\",\n    vswitchId: defaultSwitch.id,\n});\nconst account = new alicloud.polardb.Account(\"account\", {\n    accountType: \"Normal\",\n    accountName: \"nzh\",\n    accountPassword: \"Ali123456\",\n    dbClusterId: dbcluster.id,\n});\nconst database = new alicloud.polardb.Database(\"database\", {\n    characterSetName: \"UTF8\",\n    dbDescription: name,\n    dbClusterId: dbcluster.id,\n    dbName: \"nzh\",\n    accountName: account.dbClusterId,\n});\nconst defaultPolarDbExtension = new alicloud.PolarDbExtension(\"default\", {\n    extensionName: \"postgres_fdw\",\n    dbClusterId: dbcluster.id,\n    accountName: account.accountName,\n    dbName: database.dbName,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.polardb.get_node_classes(db_type=\"PostgreSQL\",\n    pay_type=\"PostPaid\",\n    category=\"Normal\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.classes[0].zone_id,\n    vswitch_name=\"terraform-example\")\ndbcluster = alicloud.polardb.Cluster(\"dbcluster\",\n    default_time_zone=\"SYSTEM\",\n    creation_category=\"Normal\",\n    zone_id=default.classes[0].zone_id,\n    creation_option=\"Normal\",\n    db_version=\"14\",\n    pay_type=\"PostPaid\",\n    db_type=\"PostgreSQL\",\n    db_node_class=\"polar.pg.x4.medium.c\",\n    vswitch_id=default_switch.id)\naccount = alicloud.polardb.Account(\"account\",\n    account_type=\"Normal\",\n    account_name=\"nzh\",\n    account_password=\"Ali123456\",\n    db_cluster_id=dbcluster.id)\ndatabase = alicloud.polardb.Database(\"database\",\n    character_set_name=\"UTF8\",\n    db_description=name,\n    db_cluster_id=dbcluster.id,\n    db_name=\"nzh\",\n    account_name=account.db_cluster_id)\ndefault_polar_db_extension = alicloud.PolarDbExtension(\"default\",\n    extension_name=\"postgres_fdw\",\n    db_cluster_id=dbcluster.id,\n    account_name=account.account_name,\n    db_name=database.db_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"PostgreSQL\",\n        PayType = \"PostPaid\",\n        Category = \"Normal\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var dbcluster = new AliCloud.PolarDB.Cluster(\"dbcluster\", new()\n    {\n        DefaultTimeZone = \"SYSTEM\",\n        CreationCategory = \"Normal\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        CreationOption = \"Normal\",\n        DbVersion = \"14\",\n        PayType = \"PostPaid\",\n        DbType = \"PostgreSQL\",\n        DbNodeClass = \"polar.pg.x4.medium.c\",\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var account = new AliCloud.PolarDB.Account(\"account\", new()\n    {\n        AccountType = \"Normal\",\n        AccountName = \"nzh\",\n        AccountPassword = \"Ali123456\",\n        DbClusterId = dbcluster.Id,\n    });\n\n    var database = new AliCloud.PolarDB.Database(\"database\", new()\n    {\n        CharacterSetName = \"UTF8\",\n        DbDescription = name,\n        DbClusterId = dbcluster.Id,\n        DbName = \"nzh\",\n        AccountName = account.DbClusterId,\n    });\n\n    var defaultPolarDbExtension = new AliCloud.PolarDbExtension(\"default\", new()\n    {\n        ExtensionName = \"postgres_fdw\",\n        DbClusterId = dbcluster.Id,\n        AccountName = account.AccountName,\n        DbName = database.DbName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\n\t\t\tDbType:   pulumi.StringRef(\"PostgreSQL\"),\n\t\t\tPayType:  \"PostPaid\",\n\t\t\tCategory: pulumi.StringRef(\"Normal\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Classes[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdbcluster, err := polardb.NewCluster(ctx, \"dbcluster\", \u0026polardb.ClusterArgs{\n\t\t\tDefaultTimeZone:  pulumi.String(\"SYSTEM\"),\n\t\t\tCreationCategory: pulumi.String(\"Normal\"),\n\t\t\tZoneId:           pulumi.String(_default.Classes[0].ZoneId),\n\t\t\tCreationOption:   pulumi.String(\"Normal\"),\n\t\t\tDbVersion:        pulumi.String(\"14\"),\n\t\t\tPayType:          pulumi.String(\"PostPaid\"),\n\t\t\tDbType:           pulumi.String(\"PostgreSQL\"),\n\t\t\tDbNodeClass:      pulumi.String(\"polar.pg.x4.medium.c\"),\n\t\t\tVswitchId:        defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taccount, err := polardb.NewAccount(ctx, \"account\", \u0026polardb.AccountArgs{\n\t\t\tAccountType:     pulumi.String(\"Normal\"),\n\t\t\tAccountName:     pulumi.String(\"nzh\"),\n\t\t\tAccountPassword: pulumi.String(\"Ali123456\"),\n\t\t\tDbClusterId:     dbcluster.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdatabase, err := polardb.NewDatabase(ctx, \"database\", \u0026polardb.DatabaseArgs{\n\t\t\tCharacterSetName: pulumi.String(\"UTF8\"),\n\t\t\tDbDescription:    pulumi.String(name),\n\t\t\tDbClusterId:      dbcluster.ID(),\n\t\t\tDbName:           pulumi.String(\"nzh\"),\n\t\t\tAccountName:      account.DbClusterId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alicloud.NewPolarDbExtension(ctx, \"default\", \u0026alicloud.PolarDbExtensionArgs{\n\t\t\tExtensionName: pulumi.String(\"postgres_fdw\"),\n\t\t\tDbClusterId:   dbcluster.ID(),\n\t\t\tAccountName:   account.AccountName,\n\t\t\tDbName:        database.DbName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.Account;\nimport com.pulumi.alicloud.polardb.AccountArgs;\nimport com.pulumi.alicloud.polardb.Database;\nimport com.pulumi.alicloud.polardb.DatabaseArgs;\nimport com.pulumi.alicloud.PolarDbExtension;\nimport com.pulumi.alicloud.PolarDbExtensionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"PostgreSQL\")\n            .payType(\"PostPaid\")\n            .category(\"Normal\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.classes()[0].zoneId())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var dbcluster = new Cluster(\"dbcluster\", ClusterArgs.builder()\n            .defaultTimeZone(\"SYSTEM\")\n            .creationCategory(\"Normal\")\n            .zoneId(default_.classes()[0].zoneId())\n            .creationOption(\"Normal\")\n            .dbVersion(\"14\")\n            .payType(\"PostPaid\")\n            .dbType(\"PostgreSQL\")\n            .dbNodeClass(\"polar.pg.x4.medium.c\")\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var account = new Account(\"account\", AccountArgs.builder()\n            .accountType(\"Normal\")\n            .accountName(\"nzh\")\n            .accountPassword(\"Ali123456\")\n            .dbClusterId(dbcluster.id())\n            .build());\n\n        var database = new Database(\"database\", DatabaseArgs.builder()\n            .characterSetName(\"UTF8\")\n            .dbDescription(name)\n            .dbClusterId(dbcluster.id())\n            .dbName(\"nzh\")\n            .accountName(account.dbClusterId())\n            .build());\n\n        var defaultPolarDbExtension = new PolarDbExtension(\"defaultPolarDbExtension\", PolarDbExtensionArgs.builder()\n            .extensionName(\"postgres_fdw\")\n            .dbClusterId(dbcluster.id())\n            .accountName(account.accountName())\n            .dbName(database.dbName())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.classes[0].zoneId}\n      vswitchName: terraform-example\n  dbcluster:\n    type: alicloud:polardb:Cluster\n    properties:\n      defaultTimeZone: SYSTEM\n      creationCategory: Normal\n      zoneId: ${default.classes[0].zoneId}\n      creationOption: Normal\n      dbVersion: '14'\n      payType: PostPaid\n      dbType: PostgreSQL\n      dbNodeClass: polar.pg.x4.medium.c\n      vswitchId: ${defaultSwitch.id}\n  account:\n    type: alicloud:polardb:Account\n    properties:\n      accountType: Normal\n      accountName: nzh\n      accountPassword: Ali123456\n      dbClusterId: ${dbcluster.id}\n  database:\n    type: alicloud:polardb:Database\n    properties:\n      characterSetName: UTF8\n      dbDescription: ${name}\n      dbClusterId: ${dbcluster.id}\n      dbName: nzh\n      accountName: ${account.dbClusterId}\n  defaultPolarDbExtension:\n    type: alicloud:PolarDbExtension\n    name: default\n    properties:\n      extensionName: postgres_fdw\n      dbClusterId: ${dbcluster.id}\n      accountName: ${account.accountName}\n      dbName: ${database.dbName}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: PostgreSQL\n        payType: PostPaid\n        category: Normal\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPolar Db Extension can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:index/polarDbExtension:PolarDbExtension example \u003cdb_cluster_id\u003e:\u003caccount_name\u003e:\u003cdb_name\u003e:\u003cextension_name\u003e\n```\n\n","properties":{"accountName":{"type":"string","description":"The database account name of the associated PolarDB cluster. Only support `Super` account.\n"},"dbClusterId":{"type":"string","description":"The ID of the cluster.\n"},"dbName":{"type":"string","description":"PolarDB cluster database name.\n"},"defaultVersion":{"type":"string","description":"Default version.\n"},"extensionName":{"type":"string","description":"Information about the installed plug-ins under the specified database.\n"},"installedVersion":{"type":"string","description":"Installed version, only supports upgrading to the default version.\n"}},"required":["accountName","dbClusterId","dbName","defaultVersion","extensionName","installedVersion"],"inputProperties":{"accountName":{"type":"string","description":"The database account name of the associated PolarDB cluster. Only support `Super` account.\n","willReplaceOnChanges":true},"dbClusterId":{"type":"string","description":"The ID of the cluster.\n","willReplaceOnChanges":true},"dbName":{"type":"string","description":"PolarDB cluster database name.\n","willReplaceOnChanges":true},"extensionName":{"type":"string","description":"Information about the installed plug-ins under the specified database.\n","willReplaceOnChanges":true},"installedVersion":{"type":"string","description":"Installed version, only supports upgrading to the default version.\n"}},"requiredInputs":["accountName","dbClusterId","dbName","extensionName"],"stateInputs":{"description":"Input properties used for looking up and filtering PolarDbExtension resources.\n","properties":{"accountName":{"type":"string","description":"The database account name of the associated PolarDB cluster. Only support `Super` account.\n","willReplaceOnChanges":true},"dbClusterId":{"type":"string","description":"The ID of the cluster.\n","willReplaceOnChanges":true},"dbName":{"type":"string","description":"PolarDB cluster database name.\n","willReplaceOnChanges":true},"defaultVersion":{"type":"string","description":"Default version.\n"},"extensionName":{"type":"string","description":"Information about the installed plug-ins under the specified database.\n","willReplaceOnChanges":true},"installedVersion":{"type":"string","description":"Installed version, only supports upgrading to the default version.\n"}},"type":"object"}},"alicloud:index/starRocksInstance:StarRocksInstance":{"description":"Provides a Star Rocks Instance resource.\n\nStarRocks resource instance.\n\nFor information about Star Rocks Instance and how to use it, see [What is Instance](https://next.api.alibabacloud.com/document/starrocks/2022-10-19/CreateInstanceV1).\n\n\u003e **NOTE:** Available since v1.256.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultB21JUD = new alicloud.vpc.Network(\"defaultB21JUD\", {cidrBlock: \"172.16.0.0/12\"});\nconst default106DkE = new alicloud.vpc.Switch(\"default106DkE\", {\n    vpcId: defaultB21JUD.id,\n    cidrBlock: \"172.16.1.0/24\",\n    vswitchName: \"sr-example\",\n    zoneId: \"cn-hangzhou-i\",\n});\nconst defaultInstance = new alicloud.starrocks.Instance(\"default\", {\n    instanceName: \"create-instance-1\",\n    autoRenew: false,\n    frontendNodeGroups: [{\n        cu: 8,\n        storageSize: 100,\n        residentNodeNumber: 3,\n        storagePerformanceLevel: \"pl1\",\n        specType: \"standard\",\n        diskNumber: 1,\n        zoneId: \"cn-hangzhou-i\",\n        localStorageInstanceType: \"null\",\n    }],\n    vswitches: [{\n        vswitchId: default106DkE.id,\n        zoneId: \"cn-hangzhou-i\",\n    }],\n    backendNodeGroups: [{\n        cu: 8,\n        storageSize: 100,\n        residentNodeNumber: 3,\n        diskNumber: 1,\n        storagePerformanceLevel: \"pl1\",\n        specType: \"standard\",\n        zoneId: \"cn-hangzhou-i\",\n        localStorageInstanceType: \"null\",\n    }],\n    clusterZoneId: \"cn-hangzhou-i\",\n    duration: 1,\n    payType: \"postPaid\",\n    vpcId: defaultB21JUD.id,\n    version: \"3.3\",\n    runMode: \"shared_data\",\n    packageType: \"official\",\n    adminPassword: \"1qaz@QAZ\",\n    ossAccessingRoleName: \"AliyunEMRStarRocksAccessingOSSRole\",\n    pricingCycle: \"Month\",\n    kmsKeyId: \"123\",\n    promotionOptionNo: \"123\",\n    encrypted: false,\n    observerNodeGroups: [{\n        cu: 8,\n        storageSize: 100,\n        storagePerformanceLevel: \"pl1\",\n        diskNumber: 1,\n        residentNodeNumber: 1,\n        specType: \"standard\",\n        localStorageInstanceType: \"null\",\n        zoneId: \"cn-hangzhou-h\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_b21_jud = alicloud.vpc.Network(\"defaultB21JUD\", cidr_block=\"172.16.0.0/12\")\ndefault106_dk_e = alicloud.vpc.Switch(\"default106DkE\",\n    vpc_id=default_b21_jud.id,\n    cidr_block=\"172.16.1.0/24\",\n    vswitch_name=\"sr-example\",\n    zone_id=\"cn-hangzhou-i\")\ndefault_instance = alicloud.starrocks.Instance(\"default\",\n    instance_name=\"create-instance-1\",\n    auto_renew=False,\n    frontend_node_groups=[{\n        \"cu\": 8,\n        \"storage_size\": 100,\n        \"resident_node_number\": 3,\n        \"storage_performance_level\": \"pl1\",\n        \"spec_type\": \"standard\",\n        \"disk_number\": 1,\n        \"zone_id\": \"cn-hangzhou-i\",\n        \"local_storage_instance_type\": \"null\",\n    }],\n    vswitches=[{\n        \"vswitch_id\": default106_dk_e.id,\n        \"zone_id\": \"cn-hangzhou-i\",\n    }],\n    backend_node_groups=[{\n        \"cu\": 8,\n        \"storage_size\": 100,\n        \"resident_node_number\": 3,\n        \"disk_number\": 1,\n        \"storage_performance_level\": \"pl1\",\n        \"spec_type\": \"standard\",\n        \"zone_id\": \"cn-hangzhou-i\",\n        \"local_storage_instance_type\": \"null\",\n    }],\n    cluster_zone_id=\"cn-hangzhou-i\",\n    duration=1,\n    pay_type=\"postPaid\",\n    vpc_id=default_b21_jud.id,\n    version=\"3.3\",\n    run_mode=\"shared_data\",\n    package_type=\"official\",\n    admin_password=\"1qaz@QAZ\",\n    oss_accessing_role_name=\"AliyunEMRStarRocksAccessingOSSRole\",\n    pricing_cycle=\"Month\",\n    kms_key_id=\"123\",\n    promotion_option_no=\"123\",\n    encrypted=False,\n    observer_node_groups=[{\n        \"cu\": 8,\n        \"storage_size\": 100,\n        \"storage_performance_level\": \"pl1\",\n        \"disk_number\": 1,\n        \"resident_node_number\": 1,\n        \"spec_type\": \"standard\",\n        \"local_storage_instance_type\": \"null\",\n        \"zone_id\": \"cn-hangzhou-h\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultB21JUD = new AliCloud.Vpc.Network(\"defaultB21JUD\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var default106DkE = new AliCloud.Vpc.Switch(\"default106DkE\", new()\n    {\n        VpcId = defaultB21JUD.Id,\n        CidrBlock = \"172.16.1.0/24\",\n        VswitchName = \"sr-example\",\n        ZoneId = \"cn-hangzhou-i\",\n    });\n\n    var defaultInstance = new AliCloud.StarRocks.Instance(\"default\", new()\n    {\n        InstanceName = \"create-instance-1\",\n        AutoRenew = false,\n        FrontendNodeGroups = new[]\n        {\n            new AliCloud.starRocks.Inputs.InstanceFrontendNodeGroupArgs\n            {\n                Cu = 8,\n                StorageSize = 100,\n                ResidentNodeNumber = 3,\n                StoragePerformanceLevel = \"pl1\",\n                SpecType = \"standard\",\n                DiskNumber = 1,\n                ZoneId = \"cn-hangzhou-i\",\n                LocalStorageInstanceType = \"null\",\n            },\n        },\n        Vswitches = new[]\n        {\n            new AliCloud.starRocks.Inputs.InstanceVswitchArgs\n            {\n                VswitchId = default106DkE.Id,\n                ZoneId = \"cn-hangzhou-i\",\n            },\n        },\n        BackendNodeGroups = new[]\n        {\n            new AliCloud.starRocks.Inputs.InstanceBackendNodeGroupArgs\n            {\n                Cu = 8,\n                StorageSize = 100,\n                ResidentNodeNumber = 3,\n                DiskNumber = 1,\n                StoragePerformanceLevel = \"pl1\",\n                SpecType = \"standard\",\n                ZoneId = \"cn-hangzhou-i\",\n                LocalStorageInstanceType = \"null\",\n            },\n        },\n        ClusterZoneId = \"cn-hangzhou-i\",\n        Duration = 1,\n        PayType = \"postPaid\",\n        VpcId = defaultB21JUD.Id,\n        Version = \"3.3\",\n        RunMode = \"shared_data\",\n        PackageType = \"official\",\n        AdminPassword = \"1qaz@QAZ\",\n        OssAccessingRoleName = \"AliyunEMRStarRocksAccessingOSSRole\",\n        PricingCycle = \"Month\",\n        KmsKeyId = \"123\",\n        PromotionOptionNo = \"123\",\n        Encrypted = false,\n        ObserverNodeGroups = new[]\n        {\n            new AliCloud.starRocks.Inputs.InstanceObserverNodeGroupArgs\n            {\n                Cu = 8,\n                StorageSize = 100,\n                StoragePerformanceLevel = \"pl1\",\n                DiskNumber = 1,\n                ResidentNodeNumber = 1,\n                SpecType = \"standard\",\n                LocalStorageInstanceType = \"null\",\n                ZoneId = \"cn-hangzhou-h\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/starrocks\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultB21JUD, err := vpc.NewNetwork(ctx, \"defaultB21JUD\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault106DkE, err := vpc.NewSwitch(ctx, \"default106DkE\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultB21JUD.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.1.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"sr-example\"),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-i\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = starrocks.NewInstance(ctx, \"default\", \u0026starrocks.InstanceArgs{\n\t\t\tInstanceName: pulumi.String(\"create-instance-1\"),\n\t\t\tAutoRenew:    pulumi.Bool(false),\n\t\t\tFrontendNodeGroups: starrocks.InstanceFrontendNodeGroupArray{\n\t\t\t\t\u0026starrocks.InstanceFrontendNodeGroupArgs{\n\t\t\t\t\tCu:                       pulumi.Int(8),\n\t\t\t\t\tStorageSize:              pulumi.Int(100),\n\t\t\t\t\tResidentNodeNumber:       pulumi.Int(3),\n\t\t\t\t\tStoragePerformanceLevel:  pulumi.String(\"pl1\"),\n\t\t\t\t\tSpecType:                 pulumi.String(\"standard\"),\n\t\t\t\t\tDiskNumber:               pulumi.Int(1),\n\t\t\t\t\tZoneId:                   pulumi.String(\"cn-hangzhou-i\"),\n\t\t\t\t\tLocalStorageInstanceType: pulumi.String(\"null\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVswitches: starrocks.InstanceVswitchArray{\n\t\t\t\t\u0026starrocks.InstanceVswitchArgs{\n\t\t\t\t\tVswitchId: default106DkE.ID(),\n\t\t\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-i\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackendNodeGroups: starrocks.InstanceBackendNodeGroupArray{\n\t\t\t\t\u0026starrocks.InstanceBackendNodeGroupArgs{\n\t\t\t\t\tCu:                       pulumi.Int(8),\n\t\t\t\t\tStorageSize:              pulumi.Int(100),\n\t\t\t\t\tResidentNodeNumber:       pulumi.Int(3),\n\t\t\t\t\tDiskNumber:               pulumi.Int(1),\n\t\t\t\t\tStoragePerformanceLevel:  pulumi.String(\"pl1\"),\n\t\t\t\t\tSpecType:                 pulumi.String(\"standard\"),\n\t\t\t\t\tZoneId:                   pulumi.String(\"cn-hangzhou-i\"),\n\t\t\t\t\tLocalStorageInstanceType: pulumi.String(\"null\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tClusterZoneId:        pulumi.String(\"cn-hangzhou-i\"),\n\t\t\tDuration:             pulumi.Int(1),\n\t\t\tPayType:              pulumi.String(\"postPaid\"),\n\t\t\tVpcId:                defaultB21JUD.ID(),\n\t\t\tVersion:              pulumi.String(\"3.3\"),\n\t\t\tRunMode:              pulumi.String(\"shared_data\"),\n\t\t\tPackageType:          pulumi.String(\"official\"),\n\t\t\tAdminPassword:        pulumi.String(\"1qaz@QAZ\"),\n\t\t\tOssAccessingRoleName: pulumi.String(\"AliyunEMRStarRocksAccessingOSSRole\"),\n\t\t\tPricingCycle:         pulumi.String(\"Month\"),\n\t\t\tKmsKeyId:             pulumi.String(\"123\"),\n\t\t\tPromotionOptionNo:    pulumi.String(\"123\"),\n\t\t\tEncrypted:            pulumi.Bool(false),\n\t\t\tObserverNodeGroups: starrocks.InstanceObserverNodeGroupArray{\n\t\t\t\t\u0026starrocks.InstanceObserverNodeGroupArgs{\n\t\t\t\t\tCu:                       pulumi.Int(8),\n\t\t\t\t\tStorageSize:              pulumi.Int(100),\n\t\t\t\t\tStoragePerformanceLevel:  pulumi.String(\"pl1\"),\n\t\t\t\t\tDiskNumber:               pulumi.Int(1),\n\t\t\t\t\tResidentNodeNumber:       pulumi.Int(1),\n\t\t\t\t\tSpecType:                 pulumi.String(\"standard\"),\n\t\t\t\t\tLocalStorageInstanceType: pulumi.String(\"null\"),\n\t\t\t\t\tZoneId:                   pulumi.String(\"cn-hangzhou-h\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.starrocks.Instance;\nimport com.pulumi.alicloud.starrocks.InstanceArgs;\nimport com.pulumi.alicloud.starrocks.inputs.InstanceFrontendNodeGroupArgs;\nimport com.pulumi.alicloud.starrocks.inputs.InstanceVswitchArgs;\nimport com.pulumi.alicloud.starrocks.inputs.InstanceBackendNodeGroupArgs;\nimport com.pulumi.alicloud.starrocks.inputs.InstanceObserverNodeGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultB21JUD = new Network(\"defaultB21JUD\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var default106DkE = new Switch(\"default106DkE\", SwitchArgs.builder()\n            .vpcId(defaultB21JUD.id())\n            .cidrBlock(\"172.16.1.0/24\")\n            .vswitchName(\"sr-example\")\n            .zoneId(\"cn-hangzhou-i\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .instanceName(\"create-instance-1\")\n            .autoRenew(false)\n            .frontendNodeGroups(InstanceFrontendNodeGroupArgs.builder()\n                .cu(8)\n                .storageSize(100)\n                .residentNodeNumber(3)\n                .storagePerformanceLevel(\"pl1\")\n                .specType(\"standard\")\n                .diskNumber(1)\n                .zoneId(\"cn-hangzhou-i\")\n                .localStorageInstanceType(\"null\")\n                .build())\n            .vswitches(InstanceVswitchArgs.builder()\n                .vswitchId(default106DkE.id())\n                .zoneId(\"cn-hangzhou-i\")\n                .build())\n            .backendNodeGroups(InstanceBackendNodeGroupArgs.builder()\n                .cu(8)\n                .storageSize(100)\n                .residentNodeNumber(3)\n                .diskNumber(1)\n                .storagePerformanceLevel(\"pl1\")\n                .specType(\"standard\")\n                .zoneId(\"cn-hangzhou-i\")\n                .localStorageInstanceType(\"null\")\n                .build())\n            .clusterZoneId(\"cn-hangzhou-i\")\n            .duration(1)\n            .payType(\"postPaid\")\n            .vpcId(defaultB21JUD.id())\n            .version(\"3.3\")\n            .runMode(\"shared_data\")\n            .packageType(\"official\")\n            .adminPassword(\"1qaz@QAZ\")\n            .ossAccessingRoleName(\"AliyunEMRStarRocksAccessingOSSRole\")\n            .pricingCycle(\"Month\")\n            .kmsKeyId(\"123\")\n            .promotionOptionNo(\"123\")\n            .encrypted(false)\n            .observerNodeGroups(InstanceObserverNodeGroupArgs.builder()\n                .cu(8)\n                .storageSize(100)\n                .storagePerformanceLevel(\"pl1\")\n                .diskNumber(1)\n                .residentNodeNumber(1)\n                .specType(\"standard\")\n                .localStorageInstanceType(\"null\")\n                .zoneId(\"cn-hangzhou-h\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultB21JUD:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n  default106DkE:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultB21JUD.id}\n      cidrBlock: 172.16.1.0/24\n      vswitchName: sr-example\n      zoneId: cn-hangzhou-i\n  defaultInstance:\n    type: alicloud:starrocks:Instance\n    name: default\n    properties:\n      instanceName: create-instance-1\n      autoRenew: false\n      frontendNodeGroups:\n        - cu: '8'\n          storageSize: '100'\n          residentNodeNumber: '3'\n          storagePerformanceLevel: pl1\n          specType: standard\n          diskNumber: '1'\n          zoneId: cn-hangzhou-i\n          localStorageInstanceType: null\n      vswitches:\n        - vswitchId: ${default106DkE.id}\n          zoneId: cn-hangzhou-i\n      backendNodeGroups:\n        - cu: '8'\n          storageSize: '100'\n          residentNodeNumber: '3'\n          diskNumber: '1'\n          storagePerformanceLevel: pl1\n          specType: standard\n          zoneId: cn-hangzhou-i\n          localStorageInstanceType: null\n      clusterZoneId: cn-hangzhou-i\n      duration: '1'\n      payType: postPaid\n      vpcId: ${defaultB21JUD.id}\n      version: '3.3'\n      runMode: shared_data\n      packageType: official\n      adminPassword: 1qaz@QAZ\n      ossAccessingRoleName: AliyunEMRStarRocksAccessingOSSRole\n      pricingCycle: Month\n      kmsKeyId: '123'\n      promotionOptionNo: '123'\n      encrypted: false\n      observerNodeGroups:\n        - cu: '8'\n          storageSize: '100'\n          storagePerformanceLevel: pl1\n          diskNumber: '1'\n          residentNodeNumber: '1'\n          specType: standard\n          localStorageInstanceType: null\n          zoneId: cn-hangzhou-h\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nStar Rocks Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:index/starRocksInstance:StarRocksInstance example \u003cid\u003e\n```\n\n","properties":{"adminPassword":{"type":"string","description":"Password of admin user.\n"},"autoRenew":{"type":"boolean","description":"Whether to enable automatic renewal. This is only meaningful when payType is set to PrePaid. Disabled by default.\n"},"backendNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:index/StarRocksInstanceBackendNodeGroup:StarRocksInstanceBackendNodeGroup"},"description":"BackendNodeGroups See \u003cspan pulumi-lang-nodejs=\"`backendNodeGroups`\" pulumi-lang-dotnet=\"`BackendNodeGroups`\" pulumi-lang-go=\"`backendNodeGroups`\" pulumi-lang-python=\"`backend_node_groups`\" pulumi-lang-yaml=\"`backendNodeGroups`\" pulumi-lang-java=\"`backendNodeGroups`\"\u003e`backend_node_groups`\u003c/span\u003e below.\n"},"clusterZoneId":{"type":"string","description":"ZoneId of instance.\n"},"createTime":{"type":"string","description":"The creation time of the instance.\n"},"duration":{"type":"integer","description":"Duration of purchase. It is only meaningful when payType is set to PrePaid.\n"},"encrypted":{"type":"boolean","description":"Whether encrypted\n"},"frontendNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:index/StarRocksInstanceFrontendNodeGroup:StarRocksInstanceFrontendNodeGroup"},"description":"FrontendNodeGroups See \u003cspan pulumi-lang-nodejs=\"`frontendNodeGroups`\" pulumi-lang-dotnet=\"`FrontendNodeGroups`\" pulumi-lang-go=\"`frontendNodeGroups`\" pulumi-lang-python=\"`frontend_node_groups`\" pulumi-lang-yaml=\"`frontendNodeGroups`\" pulumi-lang-java=\"`frontendNodeGroups`\"\u003e`frontend_node_groups`\u003c/span\u003e below.\n"},"instanceName":{"type":"string","description":"The name of the instance.\n"},"kmsKeyId":{"type":"string","description":"KmsKeyId\n"},"observerNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:index/StarRocksInstanceObserverNodeGroup:StarRocksInstanceObserverNodeGroup"},"description":"ObserverNodeGroups See \u003cspan pulumi-lang-nodejs=\"`observerNodeGroups`\" pulumi-lang-dotnet=\"`ObserverNodeGroups`\" pulumi-lang-go=\"`observerNodeGroups`\" pulumi-lang-python=\"`observer_node_groups`\" pulumi-lang-yaml=\"`observerNodeGroups`\" pulumi-lang-java=\"`observerNodeGroups`\"\u003e`observer_node_groups`\u003c/span\u003e below.\n"},"ossAccessingRoleName":{"type":"string","description":"Role name used for password-free access to OSS.\n"},"packageType":{"type":"string","description":"The package type of the instance:\n- trial\n- official\n"},"payType":{"type":"string","description":"The pay type of the instance:\n- prePaid\n- postPaid\n"},"pricingCycle":{"type":"string","description":"The duration unit for purchasing:\n- Month\n- Year\nThis is only meaningful when PayType is set to PrePaid.\n"},"promotionOptionNo":{"type":"string","description":"Promotion\n"},"regionId":{"type":"string","description":"The region ID of the instance.\n"},"resourceGroupId":{"type":"string","description":"ResourceGroupId\n"},"runMode":{"type":"string","description":"The run mode of the instance:\n-\u003cspan pulumi-lang-nodejs=\" sharedNothing\n\" pulumi-lang-dotnet=\" SharedNothing\n\" pulumi-lang-go=\" sharedNothing\n\" pulumi-lang-python=\" shared_nothing\n\" pulumi-lang-yaml=\" sharedNothing\n\" pulumi-lang-java=\" sharedNothing\n\"\u003e shared_nothing\n\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\" sharedData\n\" pulumi-lang-dotnet=\" SharedData\n\" pulumi-lang-go=\" sharedData\n\" pulumi-lang-python=\" shared_data\n\" pulumi-lang-yaml=\" sharedData\n\" pulumi-lang-java=\" sharedData\n\"\u003e shared_data\n\u003c/span\u003e- lakehouse\n"},"status":{"type":"string","description":"The status of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tag list of the instance.\n"},"version":{"type":"string","description":"The version of the instance.\n"},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n"},"vswitches":{"type":"array","items":{"$ref":"#/types/alicloud:index/StarRocksInstanceVswitch:StarRocksInstanceVswitch"},"description":"The VSwitches info of the instance. See \u003cspan pulumi-lang-nodejs=\"`vswitches`\" pulumi-lang-dotnet=\"`Vswitches`\" pulumi-lang-go=\"`vswitches`\" pulumi-lang-python=\"`vswitches`\" pulumi-lang-yaml=\"`vswitches`\" pulumi-lang-java=\"`vswitches`\"\u003e`vswitches`\u003c/span\u003e below.\n"}},"required":["adminPassword","clusterZoneId","createTime","instanceName","packageType","payType","regionId","resourceGroupId","runMode","status","version","vpcId"],"inputProperties":{"adminPassword":{"type":"string","description":"Password of admin user.\n"},"autoRenew":{"type":"boolean","description":"Whether to enable automatic renewal. This is only meaningful when payType is set to PrePaid. Disabled by default.\n"},"backendNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:index/StarRocksInstanceBackendNodeGroup:StarRocksInstanceBackendNodeGroup"},"description":"BackendNodeGroups See \u003cspan pulumi-lang-nodejs=\"`backendNodeGroups`\" pulumi-lang-dotnet=\"`BackendNodeGroups`\" pulumi-lang-go=\"`backendNodeGroups`\" pulumi-lang-python=\"`backend_node_groups`\" pulumi-lang-yaml=\"`backendNodeGroups`\" pulumi-lang-java=\"`backendNodeGroups`\"\u003e`backend_node_groups`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"clusterZoneId":{"type":"string","description":"ZoneId of instance.\n"},"duration":{"type":"integer","description":"Duration of purchase. It is only meaningful when payType is set to PrePaid.\n"},"encrypted":{"type":"boolean","description":"Whether encrypted\n","willReplaceOnChanges":true},"frontendNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:index/StarRocksInstanceFrontendNodeGroup:StarRocksInstanceFrontendNodeGroup"},"description":"FrontendNodeGroups See \u003cspan pulumi-lang-nodejs=\"`frontendNodeGroups`\" pulumi-lang-dotnet=\"`FrontendNodeGroups`\" pulumi-lang-go=\"`frontendNodeGroups`\" pulumi-lang-python=\"`frontend_node_groups`\" pulumi-lang-yaml=\"`frontendNodeGroups`\" pulumi-lang-java=\"`frontendNodeGroups`\"\u003e`frontend_node_groups`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the instance.\n"},"kmsKeyId":{"type":"string","description":"KmsKeyId\n","willReplaceOnChanges":true},"observerNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:index/StarRocksInstanceObserverNodeGroup:StarRocksInstanceObserverNodeGroup"},"description":"ObserverNodeGroups See \u003cspan pulumi-lang-nodejs=\"`observerNodeGroups`\" pulumi-lang-dotnet=\"`ObserverNodeGroups`\" pulumi-lang-go=\"`observerNodeGroups`\" pulumi-lang-python=\"`observer_node_groups`\" pulumi-lang-yaml=\"`observerNodeGroups`\" pulumi-lang-java=\"`observerNodeGroups`\"\u003e`observer_node_groups`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"ossAccessingRoleName":{"type":"string","description":"Role name used for password-free access to OSS.\n"},"packageType":{"type":"string","description":"The package type of the instance:\n- trial\n- official\n","willReplaceOnChanges":true},"payType":{"type":"string","description":"The pay type of the instance:\n- prePaid\n- postPaid\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The duration unit for purchasing:\n- Month\n- Year\nThis is only meaningful when PayType is set to PrePaid.\n"},"promotionOptionNo":{"type":"string","description":"Promotion\n"},"resourceGroupId":{"type":"string","description":"ResourceGroupId\n"},"runMode":{"type":"string","description":"The run mode of the instance:\n-\u003cspan pulumi-lang-nodejs=\" sharedNothing\n\" pulumi-lang-dotnet=\" SharedNothing\n\" pulumi-lang-go=\" sharedNothing\n\" pulumi-lang-python=\" shared_nothing\n\" pulumi-lang-yaml=\" sharedNothing\n\" pulumi-lang-java=\" sharedNothing\n\"\u003e shared_nothing\n\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\" sharedData\n\" pulumi-lang-dotnet=\" SharedData\n\" pulumi-lang-go=\" sharedData\n\" pulumi-lang-python=\" shared_data\n\" pulumi-lang-yaml=\" sharedData\n\" pulumi-lang-java=\" sharedData\n\"\u003e shared_data\n\u003c/span\u003e- lakehouse\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tag list of the instance.\n"},"version":{"type":"string","description":"The version of the instance.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n","willReplaceOnChanges":true},"vswitches":{"type":"array","items":{"$ref":"#/types/alicloud:index/StarRocksInstanceVswitch:StarRocksInstanceVswitch"},"description":"The VSwitches info of the instance. See \u003cspan pulumi-lang-nodejs=\"`vswitches`\" pulumi-lang-dotnet=\"`Vswitches`\" pulumi-lang-go=\"`vswitches`\" pulumi-lang-python=\"`vswitches`\" pulumi-lang-yaml=\"`vswitches`\" pulumi-lang-java=\"`vswitches`\"\u003e`vswitches`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"requiredInputs":["adminPassword","clusterZoneId","instanceName","packageType","payType","runMode","version","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering StarRocksInstance resources.\n","properties":{"adminPassword":{"type":"string","description":"Password of admin user.\n"},"autoRenew":{"type":"boolean","description":"Whether to enable automatic renewal. This is only meaningful when payType is set to PrePaid. Disabled by default.\n"},"backendNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:index/StarRocksInstanceBackendNodeGroup:StarRocksInstanceBackendNodeGroup"},"description":"BackendNodeGroups See \u003cspan pulumi-lang-nodejs=\"`backendNodeGroups`\" pulumi-lang-dotnet=\"`BackendNodeGroups`\" pulumi-lang-go=\"`backendNodeGroups`\" pulumi-lang-python=\"`backend_node_groups`\" pulumi-lang-yaml=\"`backendNodeGroups`\" pulumi-lang-java=\"`backendNodeGroups`\"\u003e`backend_node_groups`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"clusterZoneId":{"type":"string","description":"ZoneId of instance.\n"},"createTime":{"type":"string","description":"The creation time of the instance.\n"},"duration":{"type":"integer","description":"Duration of purchase. It is only meaningful when payType is set to PrePaid.\n"},"encrypted":{"type":"boolean","description":"Whether encrypted\n","willReplaceOnChanges":true},"frontendNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:index/StarRocksInstanceFrontendNodeGroup:StarRocksInstanceFrontendNodeGroup"},"description":"FrontendNodeGroups See \u003cspan pulumi-lang-nodejs=\"`frontendNodeGroups`\" pulumi-lang-dotnet=\"`FrontendNodeGroups`\" pulumi-lang-go=\"`frontendNodeGroups`\" pulumi-lang-python=\"`frontend_node_groups`\" pulumi-lang-yaml=\"`frontendNodeGroups`\" pulumi-lang-java=\"`frontendNodeGroups`\"\u003e`frontend_node_groups`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the instance.\n"},"kmsKeyId":{"type":"string","description":"KmsKeyId\n","willReplaceOnChanges":true},"observerNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:index/StarRocksInstanceObserverNodeGroup:StarRocksInstanceObserverNodeGroup"},"description":"ObserverNodeGroups See \u003cspan pulumi-lang-nodejs=\"`observerNodeGroups`\" pulumi-lang-dotnet=\"`ObserverNodeGroups`\" pulumi-lang-go=\"`observerNodeGroups`\" pulumi-lang-python=\"`observer_node_groups`\" pulumi-lang-yaml=\"`observerNodeGroups`\" pulumi-lang-java=\"`observerNodeGroups`\"\u003e`observer_node_groups`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"ossAccessingRoleName":{"type":"string","description":"Role name used for password-free access to OSS.\n"},"packageType":{"type":"string","description":"The package type of the instance:\n- trial\n- official\n","willReplaceOnChanges":true},"payType":{"type":"string","description":"The pay type of the instance:\n- prePaid\n- postPaid\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The duration unit for purchasing:\n- Month\n- Year\nThis is only meaningful when PayType is set to PrePaid.\n"},"promotionOptionNo":{"type":"string","description":"Promotion\n"},"regionId":{"type":"string","description":"The region ID of the instance.\n"},"resourceGroupId":{"type":"string","description":"ResourceGroupId\n"},"runMode":{"type":"string","description":"The run mode of the instance:\n-\u003cspan pulumi-lang-nodejs=\" sharedNothing\n\" pulumi-lang-dotnet=\" SharedNothing\n\" pulumi-lang-go=\" sharedNothing\n\" pulumi-lang-python=\" shared_nothing\n\" pulumi-lang-yaml=\" sharedNothing\n\" pulumi-lang-java=\" sharedNothing\n\"\u003e shared_nothing\n\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\" sharedData\n\" pulumi-lang-dotnet=\" SharedData\n\" pulumi-lang-go=\" sharedData\n\" pulumi-lang-python=\" shared_data\n\" pulumi-lang-yaml=\" sharedData\n\" pulumi-lang-java=\" sharedData\n\"\u003e shared_data\n\u003c/span\u003e- lakehouse\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tag list of the instance.\n"},"version":{"type":"string","description":"The version of the instance.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n","willReplaceOnChanges":true},"vswitches":{"type":"array","items":{"$ref":"#/types/alicloud:index/StarRocksInstanceVswitch:StarRocksInstanceVswitch"},"description":"The VSwitches info of the instance. See \u003cspan pulumi-lang-nodejs=\"`vswitches`\" pulumi-lang-dotnet=\"`Vswitches`\" pulumi-lang-go=\"`vswitches`\" pulumi-lang-python=\"`vswitches`\" pulumi-lang-yaml=\"`vswitches`\" pulumi-lang-java=\"`vswitches`\"\u003e`vswitches`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"alicloud.index/starrocksinstance.StarRocksInstance has been deprecated in favor of alicloud.starrocks/instance.Instance"},"alicloud:iot/deviceGroup:DeviceGroup":{"description":"Provides a Iot Device Group resource.\n\nFor information about Iot Device Group and how to use it, see [What is Device Group](https://www.alibabacloud.com/help/product/30520.htm).\n\n\u003e **NOTE:** Available since v1.134.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst example = new alicloud.iot.DeviceGroup(\"example\", {groupName: name});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\nexample = alicloud.iot.DeviceGroup(\"example\", group_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var example = new AliCloud.Iot.DeviceGroup(\"example\", new()\n    {\n        GroupName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/iot\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := iot.NewDeviceGroup(ctx, \"example\", \u0026iot.DeviceGroupArgs{\n\t\t\tGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.iot.DeviceGroup;\nimport com.pulumi.alicloud.iot.DeviceGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        var example = new DeviceGroup(\"example\", DeviceGroupArgs.builder()\n            .groupName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  example:\n    type: alicloud:iot:DeviceGroup\n    properties:\n      groupName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nIot Device Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:iot/deviceGroup:DeviceGroup example \u003cid\u003e\n```\n\n","properties":{"groupDesc":{"type":"string","description":"The GroupDesc of the device group.\n"},"groupName":{"type":"string","description":"The GroupName of the device group.\n"},"iotInstanceId":{"type":"string","description":"The id of the Iot Instance.\n"},"superGroupId":{"type":"string","description":"The id of the SuperGroup.\n"}},"required":["groupName"],"inputProperties":{"groupDesc":{"type":"string","description":"The GroupDesc of the device group.\n"},"groupName":{"type":"string","description":"The GroupName of the device group.\n","willReplaceOnChanges":true},"iotInstanceId":{"type":"string","description":"The id of the Iot Instance.\n"},"superGroupId":{"type":"string","description":"The id of the SuperGroup.\n","willReplaceOnChanges":true}},"requiredInputs":["groupName"],"stateInputs":{"description":"Input properties used for looking up and filtering DeviceGroup resources.\n","properties":{"groupDesc":{"type":"string","description":"The GroupDesc of the device group.\n"},"groupName":{"type":"string","description":"The GroupName of the device group.\n","willReplaceOnChanges":true},"iotInstanceId":{"type":"string","description":"The id of the Iot Instance.\n"},"superGroupId":{"type":"string","description":"The id of the SuperGroup.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:kms/alias:Alias":{"description":"Create an alias for the master key (CMK).\n\n\u003e **NOTE:** Available since v1.77.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _this = new alicloud.kms.Key(\"this\", {pendingWindowInDays: 7});\nconst thisAlias = new alicloud.kms.Alias(\"this\", {\n    aliasName: \"alias/example_kms_alias\",\n    keyId: _this.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nthis = alicloud.kms.Key(\"this\", pending_window_in_days=7)\nthis_alias = alicloud.kms.Alias(\"this\",\n    alias_name=\"alias/example_kms_alias\",\n    key_id=this.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new AliCloud.Kms.Key(\"this\", new()\n    {\n        PendingWindowInDays = 7,\n    });\n\n    var thisAlias = new AliCloud.Kms.Alias(\"this\", new()\n    {\n        AliasName = \"alias/example_kms_alias\",\n        KeyId = @this.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := kms.NewKey(ctx, \"this\", \u0026kms.KeyArgs{\n\t\t\tPendingWindowInDays: pulumi.Int(7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kms.NewAlias(ctx, \"this\", \u0026kms.AliasArgs{\n\t\t\tAliasName: pulumi.String(\"alias/example_kms_alias\"),\n\t\t\tKeyId:     this.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.Key;\nimport com.pulumi.alicloud.kms.KeyArgs;\nimport com.pulumi.alicloud.kms.Alias;\nimport com.pulumi.alicloud.kms.AliasArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new Key(\"this\", KeyArgs.builder()\n            .pendingWindowInDays(7)\n            .build());\n\n        var thisAlias = new Alias(\"thisAlias\", AliasArgs.builder()\n            .aliasName(\"alias/example_kms_alias\")\n            .keyId(this_.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: alicloud:kms:Key\n    properties:\n      pendingWindowInDays: 7\n  thisAlias:\n    type: alicloud:kms:Alias\n    name: this\n    properties:\n      aliasName: alias/example_kms_alias\n      keyId: ${this.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nKMS alias can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:kms/alias:Alias example alias/test_kms_alias\n```\n\n","properties":{"aliasName":{"type":"string","description":"The alias of CMK. `Encrypt`、`GenerateDataKey`、`DescribeKey` can be called using aliases. Length of characters other than prefixes: minimum length of 1 character and maximum length of 255 characters. Must contain prefix `alias/`.\n"},"keyId":{"type":"string","description":"The id of the key.\n\n\u003e **NOTE:** Each alias represents only one master key(CMK).\n\n\u003e **NOTE:** Within an area of the same user, alias is not reproducible.\n\n\u003e **NOTE:** UpdateAlias can be used to update the mapping relationship between alias and master key(CMK).\n"}},"required":["aliasName","keyId"],"inputProperties":{"aliasName":{"type":"string","description":"The alias of CMK. `Encrypt`、`GenerateDataKey`、`DescribeKey` can be called using aliases. Length of characters other than prefixes: minimum length of 1 character and maximum length of 255 characters. Must contain prefix `alias/`.\n","willReplaceOnChanges":true},"keyId":{"type":"string","description":"The id of the key.\n\n\u003e **NOTE:** Each alias represents only one master key(CMK).\n\n\u003e **NOTE:** Within an area of the same user, alias is not reproducible.\n\n\u003e **NOTE:** UpdateAlias can be used to update the mapping relationship between alias and master key(CMK).\n"}},"requiredInputs":["aliasName","keyId"],"stateInputs":{"description":"Input properties used for looking up and filtering Alias resources.\n","properties":{"aliasName":{"type":"string","description":"The alias of CMK. `Encrypt`、`GenerateDataKey`、`DescribeKey` can be called using aliases. Length of characters other than prefixes: minimum length of 1 character and maximum length of 255 characters. Must contain prefix `alias/`.\n","willReplaceOnChanges":true},"keyId":{"type":"string","description":"The id of the key.\n\n\u003e **NOTE:** Each alias represents only one master key(CMK).\n\n\u003e **NOTE:** Within an area of the same user, alias is not reproducible.\n\n\u003e **NOTE:** UpdateAlias can be used to update the mapping relationship between alias and master key(CMK).\n"}},"type":"object"}},"alicloud:kms/applicationAccessPoint:ApplicationAccessPoint":{"description":"Provides a KMS Application Access Point resource. An application access point (AAP) is used to implement fine-grained access control for Key Management Service (KMS) resources. An application can access a KMS instance only after an AAP is created for the application. .\n\nFor information about KMS Application Access Point and how to use it, see [What is Application Access Point](https://www.alibabacloud.com/help/zh/key-management-service/latest/api-createapplicationaccesspoint).\n\n\u003e **NOTE:** Available since v1.210.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.kms.ApplicationAccessPoint(\"default\", {\n    description: \"example aap\",\n    applicationAccessPointName: name,\n    policies: [\n        \"abc\",\n        \"efg\",\n        \"hfc\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.kms.ApplicationAccessPoint(\"default\",\n    description=\"example aap\",\n    application_access_point_name=name,\n    policies=[\n        \"abc\",\n        \"efg\",\n        \"hfc\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Kms.ApplicationAccessPoint(\"default\", new()\n    {\n        Description = \"example aap\",\n        ApplicationAccessPointName = name,\n        Policies = new[]\n        {\n            \"abc\",\n            \"efg\",\n            \"hfc\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := kms.NewApplicationAccessPoint(ctx, \"default\", \u0026kms.ApplicationAccessPointArgs{\n\t\t\tDescription:                pulumi.String(\"example aap\"),\n\t\t\tApplicationAccessPointName: pulumi.String(name),\n\t\t\tPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"abc\"),\n\t\t\t\tpulumi.String(\"efg\"),\n\t\t\t\tpulumi.String(\"hfc\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.ApplicationAccessPoint;\nimport com.pulumi.alicloud.kms.ApplicationAccessPointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ApplicationAccessPoint(\"default\", ApplicationAccessPointArgs.builder()\n            .description(\"example aap\")\n            .applicationAccessPointName(name)\n            .policies(            \n                \"abc\",\n                \"efg\",\n                \"hfc\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:kms:ApplicationAccessPoint\n    properties:\n      description: example aap\n      applicationAccessPointName: ${name}\n      policies:\n        - abc\n        - efg\n        - hfc\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nKMS Application Access Point can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:kms/applicationAccessPoint:ApplicationAccessPoint example \u003cid\u003e\n```\n\n","properties":{"applicationAccessPointName":{"type":"string","description":"Application Access Point Name.\n"},"description":{"type":"string","description":"Description .\n"},"policies":{"type":"array","items":{"type":"string"},"description":"The policies that have bound to the Application Access Point (AAP).\n"}},"required":["applicationAccessPointName","policies"],"inputProperties":{"applicationAccessPointName":{"type":"string","description":"Application Access Point Name.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description .\n"},"policies":{"type":"array","items":{"type":"string"},"description":"The policies that have bound to the Application Access Point (AAP).\n"}},"requiredInputs":["applicationAccessPointName","policies"],"stateInputs":{"description":"Input properties used for looking up and filtering ApplicationAccessPoint resources.\n","properties":{"applicationAccessPointName":{"type":"string","description":"Application Access Point Name.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description .\n"},"policies":{"type":"array","items":{"type":"string"},"description":"The policies that have bound to the Application Access Point (AAP).\n"}},"type":"object"}},"alicloud:kms/ciphertext:Ciphertext":{"description":"Encrypt a given plaintext with KMS. The produced ciphertext stays stable across applies. If the plaintext should be re-encrypted on each apply use the \u003cspan pulumi-lang-nodejs=\"`alicloud.kms.Ciphertext`\" pulumi-lang-dotnet=\"`alicloud.kms.Ciphertext`\" pulumi-lang-go=\"`kms.Ciphertext`\" pulumi-lang-python=\"`kms.Ciphertext`\" pulumi-lang-yaml=\"`alicloud.kms.Ciphertext`\" pulumi-lang-java=\"`alicloud.kms.Ciphertext`\"\u003e`alicloud.kms.Ciphertext`\u003c/span\u003e data source.\n\n\u003e **NOTE:** Available since v1.63.0.\n\n\u003e **NOTE**: Using this data provider will allow you to conceal secret data within your resource definitions but does not take care of protecting that data in all Terraform logging and state output. Please take care to secure your secret data beyond just the Terraform configuration.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst key = new alicloud.kms.Key(\"key\", {\n    description: \"example key\",\n    status: \"Enabled\",\n    pendingWindowInDays: 7,\n});\nconst encrypted = new alicloud.kms.Ciphertext(\"encrypted\", {\n    keyId: key.id,\n    plaintext: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nkey = alicloud.kms.Key(\"key\",\n    description=\"example key\",\n    status=\"Enabled\",\n    pending_window_in_days=7)\nencrypted = alicloud.kms.Ciphertext(\"encrypted\",\n    key_id=key.id,\n    plaintext=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var key = new AliCloud.Kms.Key(\"key\", new()\n    {\n        Description = \"example key\",\n        Status = \"Enabled\",\n        PendingWindowInDays = 7,\n    });\n\n    var encrypted = new AliCloud.Kms.Ciphertext(\"encrypted\", new()\n    {\n        KeyId = key.Id,\n        Plaintext = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkey, err := kms.NewKey(ctx, \"key\", \u0026kms.KeyArgs{\n\t\t\tDescription:         pulumi.String(\"example key\"),\n\t\t\tStatus:              pulumi.String(\"Enabled\"),\n\t\t\tPendingWindowInDays: pulumi.Int(7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kms.NewCiphertext(ctx, \"encrypted\", \u0026kms.CiphertextArgs{\n\t\t\tKeyId:     key.ID(),\n\t\t\tPlaintext: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.Key;\nimport com.pulumi.alicloud.kms.KeyArgs;\nimport com.pulumi.alicloud.kms.Ciphertext;\nimport com.pulumi.alicloud.kms.CiphertextArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var key = new Key(\"key\", KeyArgs.builder()\n            .description(\"example key\")\n            .status(\"Enabled\")\n            .pendingWindowInDays(7)\n            .build());\n\n        var encrypted = new Ciphertext(\"encrypted\", CiphertextArgs.builder()\n            .keyId(key.id())\n            .plaintext(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  key:\n    type: alicloud:kms:Key\n    properties:\n      description: example key\n      status: Enabled\n      pendingWindowInDays: 7\n  encrypted:\n    type: alicloud:kms:Ciphertext\n    properties:\n      keyId: ${key.id}\n      plaintext: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"ciphertextBlob":{"type":"string","description":"The ciphertext of the data key encrypted with the primary CMK version.\n"},"encryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"The Encryption context. If you specify this parameter here, it is also required when you call the Decrypt API operation. For more information, see [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm).\n"},"keyId":{"type":"string","description":"The globally unique ID of the CMK.\n"},"plaintext":{"type":"string","description":"The plaintext to be encrypted which must be encoded in Base64.\n","secret":true}},"required":["ciphertextBlob","keyId","plaintext"],"inputProperties":{"encryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"The Encryption context. If you specify this parameter here, it is also required when you call the Decrypt API operation. For more information, see [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm).\n","willReplaceOnChanges":true},"keyId":{"type":"string","description":"The globally unique ID of the CMK.\n","willReplaceOnChanges":true},"plaintext":{"type":"string","description":"The plaintext to be encrypted which must be encoded in Base64.\n","secret":true,"willReplaceOnChanges":true}},"requiredInputs":["keyId","plaintext"],"stateInputs":{"description":"Input properties used for looking up and filtering Ciphertext resources.\n","properties":{"ciphertextBlob":{"type":"string","description":"The ciphertext of the data key encrypted with the primary CMK version.\n"},"encryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"The Encryption context. If you specify this parameter here, it is also required when you call the Decrypt API operation. For more information, see [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm).\n","willReplaceOnChanges":true},"keyId":{"type":"string","description":"The globally unique ID of the CMK.\n","willReplaceOnChanges":true},"plaintext":{"type":"string","description":"The plaintext to be encrypted which must be encoded in Base64.\n","secret":true,"willReplaceOnChanges":true}},"type":"object"}},"alicloud:kms/clientKey:ClientKey":{"description":"Provides a KMS Client Key resource. Client key (of Application Access Point).\n\nFor information about KMS Client Key and how to use it, see [What is Client Key](https://www.alibabacloud.com/help/zh/key-management-service/latest/api-createclientkey).\n\n\u003e **NOTE:** Available since v1.210.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst AAP0 = new alicloud.kms.ApplicationAccessPoint(\"AAP0\", {\n    policies: [\"aa\"],\n    description: \"aa\",\n    applicationAccessPointName: name,\n});\nconst _default = new alicloud.kms.ClientKey(\"default\", {\n    aapName: AAP0.applicationAccessPointName,\n    password: \"YouPassword123!\",\n    notBefore: \"2023-09-01T14:11:22Z\",\n    notAfter: \"2028-09-01T14:11:22Z\",\n    privateKeyDataFile: \"./private_key_data_file.txt\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\naap0 = alicloud.kms.ApplicationAccessPoint(\"AAP0\",\n    policies=[\"aa\"],\n    description=\"aa\",\n    application_access_point_name=name)\ndefault = alicloud.kms.ClientKey(\"default\",\n    aap_name=aap0.application_access_point_name,\n    password=\"YouPassword123!\",\n    not_before=\"2023-09-01T14:11:22Z\",\n    not_after=\"2028-09-01T14:11:22Z\",\n    private_key_data_file=\"./private_key_data_file.txt\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var AAP0 = new AliCloud.Kms.ApplicationAccessPoint(\"AAP0\", new()\n    {\n        Policies = new[]\n        {\n            \"aa\",\n        },\n        Description = \"aa\",\n        ApplicationAccessPointName = name,\n    });\n\n    var @default = new AliCloud.Kms.ClientKey(\"default\", new()\n    {\n        AapName = AAP0.ApplicationAccessPointName,\n        Password = \"YouPassword123!\",\n        NotBefore = \"2023-09-01T14:11:22Z\",\n        NotAfter = \"2028-09-01T14:11:22Z\",\n        PrivateKeyDataFile = \"./private_key_data_file.txt\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tAAP0, err := kms.NewApplicationAccessPoint(ctx, \"AAP0\", \u0026kms.ApplicationAccessPointArgs{\n\t\t\tPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aa\"),\n\t\t\t},\n\t\t\tDescription:                pulumi.String(\"aa\"),\n\t\t\tApplicationAccessPointName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kms.NewClientKey(ctx, \"default\", \u0026kms.ClientKeyArgs{\n\t\t\tAapName:            AAP0.ApplicationAccessPointName,\n\t\t\tPassword:           pulumi.String(\"YouPassword123!\"),\n\t\t\tNotBefore:          pulumi.String(\"2023-09-01T14:11:22Z\"),\n\t\t\tNotAfter:           pulumi.String(\"2028-09-01T14:11:22Z\"),\n\t\t\tPrivateKeyDataFile: pulumi.String(\"./private_key_data_file.txt\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.ApplicationAccessPoint;\nimport com.pulumi.alicloud.kms.ApplicationAccessPointArgs;\nimport com.pulumi.alicloud.kms.ClientKey;\nimport com.pulumi.alicloud.kms.ClientKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var aAP0 = new ApplicationAccessPoint(\"AAP0\", ApplicationAccessPointArgs.builder()\n            .policies(\"aa\")\n            .description(\"aa\")\n            .applicationAccessPointName(name)\n            .build());\n\n        var default_ = new ClientKey(\"default\", ClientKeyArgs.builder()\n            .aapName(AAP0.applicationAccessPointName())\n            .password(\"YouPassword123!\")\n            .notBefore(\"2023-09-01T14:11:22Z\")\n            .notAfter(\"2028-09-01T14:11:22Z\")\n            .privateKeyDataFile(\"./private_key_data_file.txt\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  AAP0:\n    type: alicloud:kms:ApplicationAccessPoint\n    properties:\n      policies:\n        - aa\n      description: aa\n      applicationAccessPointName: ${name}\n  default:\n    type: alicloud:kms:ClientKey\n    properties:\n      aapName: ${AAP0.applicationAccessPointName}\n      password: YouPassword123!\n      notBefore: 2023-09-01T14:11:22Z\n      notAfter: 2028-09-01T14:11:22Z\n      privateKeyDataFile: ./private_key_data_file.txt\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nKMS Client Key can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:kms/clientKey:ClientKey example \u003cid\u003e\n```\n\nResource attributes such as \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`privateKeyDataFile`\" pulumi-lang-dotnet=\"`PrivateKeyDataFile`\" pulumi-lang-go=\"`privateKeyDataFile`\" pulumi-lang-python=\"`private_key_data_file`\" pulumi-lang-yaml=\"`privateKeyDataFile`\" pulumi-lang-java=\"`privateKeyDataFile`\"\u003e`private_key_data_file`\u003c/span\u003e are not available for imported resources as this information cannot be read from the KMS API.\n\n","properties":{"aapName":{"type":"string","description":"ClientKey's parent Application Access Point name.\n"},"createTime":{"type":"string","description":"Create timestamp, e.g. \"2022-08-10T08:03:30Z\".\n"},"notAfter":{"type":"string","description":"The ClientKey expiration time. Example: \"2027-08-10 T08:03:30Z\".\n"},"notBefore":{"type":"string","description":"The valid start time of the ClientKey. Example: \"2022-08-10 T08:03:30Z\".\n"},"password":{"type":"string","description":"To enhance security, set a password for the downloaded Client Key,When an application accesses KMS, you must use the ClientKey content and this password to initialize the SDK client.\n","secret":true},"privateKeyDataFile":{"type":"string","description":"The name of file that can save access key id and access key secret. Strongly suggest you to specified it when you creating access key, otherwise, you wouldn't get its secret ever.\n"}},"required":["aapName","createTime","password"],"inputProperties":{"aapName":{"type":"string","description":"ClientKey's parent Application Access Point name.\n","willReplaceOnChanges":true},"notAfter":{"type":"string","description":"The ClientKey expiration time. Example: \"2027-08-10 T08:03:30Z\".\n","willReplaceOnChanges":true},"notBefore":{"type":"string","description":"The valid start time of the ClientKey. Example: \"2022-08-10 T08:03:30Z\".\n","willReplaceOnChanges":true},"password":{"type":"string","description":"To enhance security, set a password for the downloaded Client Key,When an application accesses KMS, you must use the ClientKey content and this password to initialize the SDK client.\n","secret":true,"willReplaceOnChanges":true},"privateKeyDataFile":{"type":"string","description":"The name of file that can save access key id and access key secret. Strongly suggest you to specified it when you creating access key, otherwise, you wouldn't get its secret ever.\n","willReplaceOnChanges":true}},"requiredInputs":["aapName","password"],"stateInputs":{"description":"Input properties used for looking up and filtering ClientKey resources.\n","properties":{"aapName":{"type":"string","description":"ClientKey's parent Application Access Point name.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"Create timestamp, e.g. \"2022-08-10T08:03:30Z\".\n"},"notAfter":{"type":"string","description":"The ClientKey expiration time. Example: \"2027-08-10 T08:03:30Z\".\n","willReplaceOnChanges":true},"notBefore":{"type":"string","description":"The valid start time of the ClientKey. Example: \"2022-08-10 T08:03:30Z\".\n","willReplaceOnChanges":true},"password":{"type":"string","description":"To enhance security, set a password for the downloaded Client Key,When an application accesses KMS, you must use the ClientKey content and this password to initialize the SDK client.\n","secret":true,"willReplaceOnChanges":true},"privateKeyDataFile":{"type":"string","description":"The name of file that can save access key id and access key secret. Strongly suggest you to specified it when you creating access key, otherwise, you wouldn't get its secret ever.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:kms/instance:Instance":{"description":"Provides a KMS Instance resource.\n\nFor information about KMS Instance and how to use it, see [What is Instance](https://www.alibabacloud.com/help/zh/key-management-service/latest/kms-instance-management).\n\n\u003e **NOTE:** Available since v1.210.0.\n\n## Example Usage\n\nCreate a subscription kms instance\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst name = config.get(\"name\") || \"terraform-example\";\nconst current = alicloud.getAccount({});\nconst vpc_amp_instance_example = new alicloud.vpc.Network(\"vpc-amp-instance-example\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: name,\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    vpcId: vpc_amp_instance_example.id,\n    zoneId: \"cn-hangzhou-k\",\n    cidrBlock: \"172.16.1.0/24\",\n});\nconst vswitch_j = new alicloud.vpc.Switch(\"vswitch-j\", {\n    vpcId: vpc_amp_instance_example.id,\n    zoneId: \"cn-hangzhou-j\",\n    cidrBlock: \"172.16.2.0/24\",\n});\nconst shareVPC = new alicloud.vpc.Network(\"shareVPC\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: std.format({\n        input: \"%s3\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst shareVswitch = new alicloud.vpc.Switch(\"shareVswitch\", {\n    vpcId: shareVPC.id,\n    zoneId: \"cn-hangzhou-k\",\n    cidrBlock: \"172.16.1.0/24\",\n});\nconst share_VPC2 = new alicloud.vpc.Network(\"share-VPC2\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: std.format({\n        input: \"%s5\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst share_vswitch2 = new alicloud.vpc.Switch(\"share-vswitch2\", {\n    vpcId: share_VPC2.id,\n    zoneId: \"cn-hangzhou-k\",\n    cidrBlock: \"172.16.1.0/24\",\n});\nconst share_VPC3 = new alicloud.vpc.Network(\"share-VPC3\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: std.format({\n        input: \"%s7\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst share_vsw3 = new alicloud.vpc.Switch(\"share-vsw3\", {\n    vpcId: share_VPC3.id,\n    zoneId: \"cn-hangzhou-k\",\n    cidrBlock: \"172.16.1.0/24\",\n});\nconst _default = new alicloud.kms.Instance(\"default\", {\n    vpcNum: 7,\n    keyNum: 1000,\n    secretNum: 0,\n    spec: 1000,\n    renewStatus: \"ManualRenewal\",\n    productVersion: \"3\",\n    renewPeriod: 3,\n    vpcId: vswitch.vpcId,\n    zoneIds: [\n        \"cn-hangzhou-k\",\n        \"cn-hangzhou-j\",\n    ],\n    vswitchIds: [vswitch_j.id],\n    bindVpcs: [\n        {\n            vpcId: shareVswitch.vpcId,\n            regionId: region,\n            vswitchId: shareVswitch.id,\n            vpcOwnerId: current.then(current =\u003e current.id),\n        },\n        {\n            vpcId: share_vswitch2.vpcId,\n            regionId: region,\n            vswitchId: share_vswitch2.id,\n            vpcOwnerId: current.then(current =\u003e current.id),\n        },\n        {\n            vpcId: share_vsw3.vpcId,\n            regionId: region,\n            vswitchId: share_vsw3.id,\n            vpcOwnerId: current.then(current =\u003e current.id),\n        },\n    ],\n    log: \"0\",\n    period: 1,\n    logStorage: 0,\n    paymentType: \"Subscription\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncurrent = alicloud.get_account()\nvpc_amp_instance_example = alicloud.vpc.Network(\"vpc-amp-instance-example\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=name)\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    vpc_id=vpc_amp_instance_example.id,\n    zone_id=\"cn-hangzhou-k\",\n    cidr_block=\"172.16.1.0/24\")\nvswitch_j = alicloud.vpc.Switch(\"vswitch-j\",\n    vpc_id=vpc_amp_instance_example.id,\n    zone_id=\"cn-hangzhou-j\",\n    cidr_block=\"172.16.2.0/24\")\nshare_vpc = alicloud.vpc.Network(\"shareVPC\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=std.format(input=\"%s3\",\n        args=[name]).result)\nshare_vswitch = alicloud.vpc.Switch(\"shareVswitch\",\n    vpc_id=share_vpc.id,\n    zone_id=\"cn-hangzhou-k\",\n    cidr_block=\"172.16.1.0/24\")\nshare__vpc2 = alicloud.vpc.Network(\"share-VPC2\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=std.format(input=\"%s5\",\n        args=[name]).result)\nshare_vswitch2 = alicloud.vpc.Switch(\"share-vswitch2\",\n    vpc_id=share__vpc2.id,\n    zone_id=\"cn-hangzhou-k\",\n    cidr_block=\"172.16.1.0/24\")\nshare__vpc3 = alicloud.vpc.Network(\"share-VPC3\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=std.format(input=\"%s7\",\n        args=[name]).result)\nshare_vsw3 = alicloud.vpc.Switch(\"share-vsw3\",\n    vpc_id=share__vpc3.id,\n    zone_id=\"cn-hangzhou-k\",\n    cidr_block=\"172.16.1.0/24\")\ndefault = alicloud.kms.Instance(\"default\",\n    vpc_num=7,\n    key_num=1000,\n    secret_num=0,\n    spec=1000,\n    renew_status=\"ManualRenewal\",\n    product_version=\"3\",\n    renew_period=3,\n    vpc_id=vswitch.vpc_id,\n    zone_ids=[\n        \"cn-hangzhou-k\",\n        \"cn-hangzhou-j\",\n    ],\n    vswitch_ids=[vswitch_j.id],\n    bind_vpcs=[\n        {\n            \"vpc_id\": share_vswitch.vpc_id,\n            \"region_id\": region,\n            \"vswitch_id\": share_vswitch.id,\n            \"vpc_owner_id\": current.id,\n        },\n        {\n            \"vpc_id\": share_vswitch2.vpc_id,\n            \"region_id\": region,\n            \"vswitch_id\": share_vswitch2.id,\n            \"vpc_owner_id\": current.id,\n        },\n        {\n            \"vpc_id\": share_vsw3.vpc_id,\n            \"region_id\": region,\n            \"vswitch_id\": share_vsw3.id,\n            \"vpc_owner_id\": current.id,\n        },\n    ],\n    log=\"0\",\n    period=1,\n    log_storage=0,\n    payment_type=\"Subscription\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var current = AliCloud.GetAccount.Invoke();\n\n    var vpc_amp_instance_example = new AliCloud.Vpc.Network(\"vpc-amp-instance-example\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = name,\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        VpcId = vpc_amp_instance_example.Id,\n        ZoneId = \"cn-hangzhou-k\",\n        CidrBlock = \"172.16.1.0/24\",\n    });\n\n    var vswitch_j = new AliCloud.Vpc.Switch(\"vswitch-j\", new()\n    {\n        VpcId = vpc_amp_instance_example.Id,\n        ZoneId = \"cn-hangzhou-j\",\n        CidrBlock = \"172.16.2.0/24\",\n    });\n\n    var shareVPC = new AliCloud.Vpc.Network(\"shareVPC\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = Std.Format.Invoke(new()\n        {\n            Input = \"%s3\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var shareVswitch = new AliCloud.Vpc.Switch(\"shareVswitch\", new()\n    {\n        VpcId = shareVPC.Id,\n        ZoneId = \"cn-hangzhou-k\",\n        CidrBlock = \"172.16.1.0/24\",\n    });\n\n    var share_VPC2 = new AliCloud.Vpc.Network(\"share-VPC2\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = Std.Format.Invoke(new()\n        {\n            Input = \"%s5\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var share_vswitch2 = new AliCloud.Vpc.Switch(\"share-vswitch2\", new()\n    {\n        VpcId = share_VPC2.Id,\n        ZoneId = \"cn-hangzhou-k\",\n        CidrBlock = \"172.16.1.0/24\",\n    });\n\n    var share_VPC3 = new AliCloud.Vpc.Network(\"share-VPC3\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = Std.Format.Invoke(new()\n        {\n            Input = \"%s7\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var share_vsw3 = new AliCloud.Vpc.Switch(\"share-vsw3\", new()\n    {\n        VpcId = share_VPC3.Id,\n        ZoneId = \"cn-hangzhou-k\",\n        CidrBlock = \"172.16.1.0/24\",\n    });\n\n    var @default = new AliCloud.Kms.Instance(\"default\", new()\n    {\n        VpcNum = 7,\n        KeyNum = 1000,\n        SecretNum = 0,\n        Spec = 1000,\n        RenewStatus = \"ManualRenewal\",\n        ProductVersion = \"3\",\n        RenewPeriod = 3,\n        VpcId = vswitch.VpcId,\n        ZoneIds = new[]\n        {\n            \"cn-hangzhou-k\",\n            \"cn-hangzhou-j\",\n        },\n        VswitchIds = new[]\n        {\n            vswitch_j.Id,\n        },\n        BindVpcs = new[]\n        {\n            new AliCloud.Kms.Inputs.InstanceBindVpcArgs\n            {\n                VpcId = shareVswitch.VpcId,\n                RegionId = region,\n                VswitchId = shareVswitch.Id,\n                VpcOwnerId = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n            },\n            new AliCloud.Kms.Inputs.InstanceBindVpcArgs\n            {\n                VpcId = share_vswitch2.VpcId,\n                RegionId = region,\n                VswitchId = share_vswitch2.Id,\n                VpcOwnerId = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n            },\n            new AliCloud.Kms.Inputs.InstanceBindVpcArgs\n            {\n                VpcId = share_vsw3.VpcId,\n                RegionId = region,\n                VswitchId = share_vsw3.Id,\n                VpcOwnerId = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n            },\n        },\n        Log = \"0\",\n        Period = 1,\n        LogStorage = 0,\n        PaymentType = \"Subscription\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcurrent, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpc_amp_instance_example, err := vpc.NewNetwork(ctx, \"vpc-amp-instance-example\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     vpc_amp_instance_example.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-k\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvswitch_j, err := vpc.NewSwitch(ctx, \"vswitch-j\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     vpc_amp_instance_example.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-j\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.2.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s3\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshareVPC, err := vpc.NewNetwork(ctx, \"shareVPC\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(invokeFormat.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshareVswitch, err := vpc.NewSwitch(ctx, \"shareVswitch\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     shareVPC.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-k\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s5\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshare_VPC2, err := vpc.NewNetwork(ctx, \"share-VPC2\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(invokeFormat1.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshare_vswitch2, err := vpc.NewSwitch(ctx, \"share-vswitch2\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     share_VPC2.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-k\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat2, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s7\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshare_VPC3, err := vpc.NewNetwork(ctx, \"share-VPC3\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(invokeFormat2.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshare_vsw3, err := vpc.NewSwitch(ctx, \"share-vsw3\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     share_VPC3.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-k\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kms.NewInstance(ctx, \"default\", \u0026kms.InstanceArgs{\n\t\t\tVpcNum:         pulumi.Int(7),\n\t\t\tKeyNum:         pulumi.Int(1000),\n\t\t\tSecretNum:      pulumi.Int(0),\n\t\t\tSpec:           pulumi.Int(1000),\n\t\t\tRenewStatus:    pulumi.String(\"ManualRenewal\"),\n\t\t\tProductVersion: pulumi.String(\"3\"),\n\t\t\tRenewPeriod:    pulumi.Int(3),\n\t\t\tVpcId:          vswitch.VpcId,\n\t\t\tZoneIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"cn-hangzhou-k\"),\n\t\t\t\tpulumi.String(\"cn-hangzhou-j\"),\n\t\t\t},\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tvswitch_j.ID(),\n\t\t\t},\n\t\t\tBindVpcs: kms.InstanceBindVpcArray{\n\t\t\t\t\u0026kms.InstanceBindVpcArgs{\n\t\t\t\t\tVpcId:      shareVswitch.VpcId,\n\t\t\t\t\tRegionId:   pulumi.String(region),\n\t\t\t\t\tVswitchId:  shareVswitch.ID(),\n\t\t\t\t\tVpcOwnerId: pulumi.String(current.Id),\n\t\t\t\t},\n\t\t\t\t\u0026kms.InstanceBindVpcArgs{\n\t\t\t\t\tVpcId:      share_vswitch2.VpcId,\n\t\t\t\t\tRegionId:   pulumi.String(region),\n\t\t\t\t\tVswitchId:  share_vswitch2.ID(),\n\t\t\t\t\tVpcOwnerId: pulumi.String(current.Id),\n\t\t\t\t},\n\t\t\t\t\u0026kms.InstanceBindVpcArgs{\n\t\t\t\t\tVpcId:      share_vsw3.VpcId,\n\t\t\t\t\tRegionId:   pulumi.String(region),\n\t\t\t\t\tVswitchId:  share_vsw3.ID(),\n\t\t\t\t\tVpcOwnerId: pulumi.String(current.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLog:         pulumi.String(\"0\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tLogStorage:  pulumi.Int(0),\n\t\t\tPaymentType: pulumi.String(\"Subscription\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.kms.Instance;\nimport com.pulumi.alicloud.kms.InstanceArgs;\nimport com.pulumi.alicloud.kms.inputs.InstanceBindVpcArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var current = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var vpc_amp_instance_example = new Network(\"vpc-amp-instance-example\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(name)\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .vpcId(vpc_amp_instance_example.id())\n            .zoneId(\"cn-hangzhou-k\")\n            .cidrBlock(\"172.16.1.0/24\")\n            .build());\n\n        var vswitch_j = new Switch(\"vswitch-j\", SwitchArgs.builder()\n            .vpcId(vpc_amp_instance_example.id())\n            .zoneId(\"cn-hangzhou-j\")\n            .cidrBlock(\"172.16.2.0/24\")\n            .build());\n\n        var shareVPC = new Network(\"shareVPC\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s3\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var shareVswitch = new Switch(\"shareVswitch\", SwitchArgs.builder()\n            .vpcId(shareVPC.id())\n            .zoneId(\"cn-hangzhou-k\")\n            .cidrBlock(\"172.16.1.0/24\")\n            .build());\n\n        var share_VPC2 = new Network(\"share-VPC2\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s5\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var share_vswitch2 = new Switch(\"share-vswitch2\", SwitchArgs.builder()\n            .vpcId(share_VPC2.id())\n            .zoneId(\"cn-hangzhou-k\")\n            .cidrBlock(\"172.16.1.0/24\")\n            .build());\n\n        var share_VPC3 = new Network(\"share-VPC3\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s7\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var share_vsw3 = new Switch(\"share-vsw3\", SwitchArgs.builder()\n            .vpcId(share_VPC3.id())\n            .zoneId(\"cn-hangzhou-k\")\n            .cidrBlock(\"172.16.1.0/24\")\n            .build());\n\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .vpcNum(7)\n            .keyNum(1000)\n            .secretNum(0)\n            .spec(1000)\n            .renewStatus(\"ManualRenewal\")\n            .productVersion(\"3\")\n            .renewPeriod(3)\n            .vpcId(vswitch.vpcId())\n            .zoneIds(            \n                \"cn-hangzhou-k\",\n                \"cn-hangzhou-j\")\n            .vswitchIds(vswitch_j.id())\n            .bindVpcs(            \n                InstanceBindVpcArgs.builder()\n                    .vpcId(shareVswitch.vpcId())\n                    .regionId(region)\n                    .vswitchId(shareVswitch.id())\n                    .vpcOwnerId(current.id())\n                    .build(),\n                InstanceBindVpcArgs.builder()\n                    .vpcId(share_vswitch2.vpcId())\n                    .regionId(region)\n                    .vswitchId(share_vswitch2.id())\n                    .vpcOwnerId(current.id())\n                    .build(),\n                InstanceBindVpcArgs.builder()\n                    .vpcId(share_vsw3.vpcId())\n                    .regionId(region)\n                    .vswitchId(share_vsw3.id())\n                    .vpcOwnerId(current.id())\n                    .build())\n            .log(\"0\")\n            .period(1)\n            .logStorage(0)\n            .paymentType(\"Subscription\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\n  name:\n    type: string\n    default: terraform-example\nresources:\n  vpc-amp-instance-example:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName: ${name}\n  vswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${[\"vpc-amp-instance-example\"].id}\n      zoneId: cn-hangzhou-k\n      cidrBlock: 172.16.1.0/24\n  vswitch-j:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${[\"vpc-amp-instance-example\"].id}\n      zoneId: cn-hangzhou-j\n      cidrBlock: 172.16.2.0/24\n  shareVPC:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s3'\n            args:\n              - ${name}\n          return: result\n  shareVswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${shareVPC.id}\n      zoneId: cn-hangzhou-k\n      cidrBlock: 172.16.1.0/24\n  share-VPC2:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s5'\n            args:\n              - ${name}\n          return: result\n  share-vswitch2:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${[\"share-VPC2\"].id}\n      zoneId: cn-hangzhou-k\n      cidrBlock: 172.16.1.0/24\n  share-VPC3:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s7'\n            args:\n              - ${name}\n          return: result\n  share-vsw3:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${[\"share-VPC3\"].id}\n      zoneId: cn-hangzhou-k\n      cidrBlock: 172.16.1.0/24\n  default:\n    type: alicloud:kms:Instance\n    properties:\n      vpcNum: '7'\n      keyNum: '1000'\n      secretNum: '0'\n      spec: '1000'\n      renewStatus: ManualRenewal\n      productVersion: '3'\n      renewPeriod: '3'\n      vpcId: ${vswitch.vpcId}\n      zoneIds:\n        - cn-hangzhou-k\n        - cn-hangzhou-j\n      vswitchIds:\n        - ${[\"vswitch-j\"].id}\n      bindVpcs:\n        - vpcId: ${shareVswitch.vpcId}\n          regionId: ${region}\n          vswitchId: ${shareVswitch.id}\n          vpcOwnerId: ${current.id}\n        - vpcId: ${[\"share-vswitch2\"].vpcId}\n          regionId: ${region}\n          vswitchId: ${[\"share-vswitch2\"].id}\n          vpcOwnerId: ${current.id}\n        - vpcId: ${[\"share-vsw3\"].vpcId}\n          regionId: ${region}\n          vswitchId: ${[\"share-vsw3\"].id}\n          vpcOwnerId: ${current.id}\n      log: '0'\n      period: '1'\n      logStorage: '0'\n      paymentType: Subscription\nvariables:\n  current:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\nCreate a pay-as-you-go kms instance\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst name = config.get(\"name\") || \"terraform-example\";\nconst current = alicloud.getAccount({});\nconst vpc_amp_instance_example = new alicloud.vpc.Network(\"vpc-amp-instance-example\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: name,\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    vpcId: vpc_amp_instance_example.id,\n    zoneId: \"cn-hangzhou-k\",\n    cidrBlock: \"172.16.1.0/24\",\n});\nconst vswitch_j = new alicloud.vpc.Switch(\"vswitch-j\", {\n    vpcId: vpc_amp_instance_example.id,\n    zoneId: \"cn-hangzhou-j\",\n    cidrBlock: \"172.16.2.0/24\",\n});\nconst shareVPC = new alicloud.vpc.Network(\"shareVPC\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: std.format({\n        input: \"%s3\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst shareVswitch = new alicloud.vpc.Switch(\"shareVswitch\", {\n    vpcId: shareVPC.id,\n    zoneId: \"cn-hangzhou-k\",\n    cidrBlock: \"172.16.1.0/24\",\n});\nconst share_VPC2 = new alicloud.vpc.Network(\"share-VPC2\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: std.format({\n        input: \"%s5\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst share_vswitch2 = new alicloud.vpc.Switch(\"share-vswitch2\", {\n    vpcId: share_VPC2.id,\n    zoneId: \"cn-hangzhou-k\",\n    cidrBlock: \"172.16.1.0/24\",\n});\nconst share_VPC3 = new alicloud.vpc.Network(\"share-VPC3\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: std.format({\n        input: \"%s7\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst share_vsw3 = new alicloud.vpc.Switch(\"share-vsw3\", {\n    vpcId: share_VPC3.id,\n    zoneId: \"cn-hangzhou-k\",\n    cidrBlock: \"172.16.1.0/24\",\n});\nconst _default = new alicloud.kms.Instance(\"default\", {\n    paymentType: \"PayAsYouGo\",\n    productVersion: \"3\",\n    vpcId: vswitch.vpcId,\n    zoneIds: [\n        vswitch.zoneId,\n        vswitch_j.zoneId,\n    ],\n    vswitchIds: [vswitch.id],\n    forceDeleteWithoutBackup: \"true\",\n    bindVpcs: [\n        {\n            vpcId: shareVswitch.vpcId,\n            regionId: region,\n            vswitchId: shareVswitch.id,\n            vpcOwnerId: current.then(current =\u003e current.id),\n        },\n        {\n            vpcId: share_vswitch2.vpcId,\n            regionId: region,\n            vswitchId: share_vswitch2.id,\n            vpcOwnerId: current.then(current =\u003e current.id),\n        },\n        {\n            vpcId: share_vsw3.vpcId,\n            regionId: region,\n            vswitchId: share_vsw3.id,\n            vpcOwnerId: current.then(current =\u003e current.id),\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncurrent = alicloud.get_account()\nvpc_amp_instance_example = alicloud.vpc.Network(\"vpc-amp-instance-example\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=name)\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    vpc_id=vpc_amp_instance_example.id,\n    zone_id=\"cn-hangzhou-k\",\n    cidr_block=\"172.16.1.0/24\")\nvswitch_j = alicloud.vpc.Switch(\"vswitch-j\",\n    vpc_id=vpc_amp_instance_example.id,\n    zone_id=\"cn-hangzhou-j\",\n    cidr_block=\"172.16.2.0/24\")\nshare_vpc = alicloud.vpc.Network(\"shareVPC\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=std.format(input=\"%s3\",\n        args=[name]).result)\nshare_vswitch = alicloud.vpc.Switch(\"shareVswitch\",\n    vpc_id=share_vpc.id,\n    zone_id=\"cn-hangzhou-k\",\n    cidr_block=\"172.16.1.0/24\")\nshare__vpc2 = alicloud.vpc.Network(\"share-VPC2\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=std.format(input=\"%s5\",\n        args=[name]).result)\nshare_vswitch2 = alicloud.vpc.Switch(\"share-vswitch2\",\n    vpc_id=share__vpc2.id,\n    zone_id=\"cn-hangzhou-k\",\n    cidr_block=\"172.16.1.0/24\")\nshare__vpc3 = alicloud.vpc.Network(\"share-VPC3\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=std.format(input=\"%s7\",\n        args=[name]).result)\nshare_vsw3 = alicloud.vpc.Switch(\"share-vsw3\",\n    vpc_id=share__vpc3.id,\n    zone_id=\"cn-hangzhou-k\",\n    cidr_block=\"172.16.1.0/24\")\ndefault = alicloud.kms.Instance(\"default\",\n    payment_type=\"PayAsYouGo\",\n    product_version=\"3\",\n    vpc_id=vswitch.vpc_id,\n    zone_ids=[\n        vswitch.zone_id,\n        vswitch_j.zone_id,\n    ],\n    vswitch_ids=[vswitch.id],\n    force_delete_without_backup=\"true\",\n    bind_vpcs=[\n        {\n            \"vpc_id\": share_vswitch.vpc_id,\n            \"region_id\": region,\n            \"vswitch_id\": share_vswitch.id,\n            \"vpc_owner_id\": current.id,\n        },\n        {\n            \"vpc_id\": share_vswitch2.vpc_id,\n            \"region_id\": region,\n            \"vswitch_id\": share_vswitch2.id,\n            \"vpc_owner_id\": current.id,\n        },\n        {\n            \"vpc_id\": share_vsw3.vpc_id,\n            \"region_id\": region,\n            \"vswitch_id\": share_vsw3.id,\n            \"vpc_owner_id\": current.id,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var current = AliCloud.GetAccount.Invoke();\n\n    var vpc_amp_instance_example = new AliCloud.Vpc.Network(\"vpc-amp-instance-example\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = name,\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        VpcId = vpc_amp_instance_example.Id,\n        ZoneId = \"cn-hangzhou-k\",\n        CidrBlock = \"172.16.1.0/24\",\n    });\n\n    var vswitch_j = new AliCloud.Vpc.Switch(\"vswitch-j\", new()\n    {\n        VpcId = vpc_amp_instance_example.Id,\n        ZoneId = \"cn-hangzhou-j\",\n        CidrBlock = \"172.16.2.0/24\",\n    });\n\n    var shareVPC = new AliCloud.Vpc.Network(\"shareVPC\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = Std.Format.Invoke(new()\n        {\n            Input = \"%s3\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var shareVswitch = new AliCloud.Vpc.Switch(\"shareVswitch\", new()\n    {\n        VpcId = shareVPC.Id,\n        ZoneId = \"cn-hangzhou-k\",\n        CidrBlock = \"172.16.1.0/24\",\n    });\n\n    var share_VPC2 = new AliCloud.Vpc.Network(\"share-VPC2\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = Std.Format.Invoke(new()\n        {\n            Input = \"%s5\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var share_vswitch2 = new AliCloud.Vpc.Switch(\"share-vswitch2\", new()\n    {\n        VpcId = share_VPC2.Id,\n        ZoneId = \"cn-hangzhou-k\",\n        CidrBlock = \"172.16.1.0/24\",\n    });\n\n    var share_VPC3 = new AliCloud.Vpc.Network(\"share-VPC3\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = Std.Format.Invoke(new()\n        {\n            Input = \"%s7\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var share_vsw3 = new AliCloud.Vpc.Switch(\"share-vsw3\", new()\n    {\n        VpcId = share_VPC3.Id,\n        ZoneId = \"cn-hangzhou-k\",\n        CidrBlock = \"172.16.1.0/24\",\n    });\n\n    var @default = new AliCloud.Kms.Instance(\"default\", new()\n    {\n        PaymentType = \"PayAsYouGo\",\n        ProductVersion = \"3\",\n        VpcId = vswitch.VpcId,\n        ZoneIds = new[]\n        {\n            vswitch.ZoneId,\n            vswitch_j.ZoneId,\n        },\n        VswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n        ForceDeleteWithoutBackup = \"true\",\n        BindVpcs = new[]\n        {\n            new AliCloud.Kms.Inputs.InstanceBindVpcArgs\n            {\n                VpcId = shareVswitch.VpcId,\n                RegionId = region,\n                VswitchId = shareVswitch.Id,\n                VpcOwnerId = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n            },\n            new AliCloud.Kms.Inputs.InstanceBindVpcArgs\n            {\n                VpcId = share_vswitch2.VpcId,\n                RegionId = region,\n                VswitchId = share_vswitch2.Id,\n                VpcOwnerId = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n            },\n            new AliCloud.Kms.Inputs.InstanceBindVpcArgs\n            {\n                VpcId = share_vsw3.VpcId,\n                RegionId = region,\n                VswitchId = share_vsw3.Id,\n                VpcOwnerId = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcurrent, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpc_amp_instance_example, err := vpc.NewNetwork(ctx, \"vpc-amp-instance-example\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     vpc_amp_instance_example.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-k\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvswitch_j, err := vpc.NewSwitch(ctx, \"vswitch-j\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     vpc_amp_instance_example.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-j\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.2.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s3\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshareVPC, err := vpc.NewNetwork(ctx, \"shareVPC\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(invokeFormat.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshareVswitch, err := vpc.NewSwitch(ctx, \"shareVswitch\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     shareVPC.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-k\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s5\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshare_VPC2, err := vpc.NewNetwork(ctx, \"share-VPC2\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(invokeFormat1.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshare_vswitch2, err := vpc.NewSwitch(ctx, \"share-vswitch2\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     share_VPC2.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-k\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat2, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s7\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshare_VPC3, err := vpc.NewNetwork(ctx, \"share-VPC3\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(invokeFormat2.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshare_vsw3, err := vpc.NewSwitch(ctx, \"share-vsw3\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     share_VPC3.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-k\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kms.NewInstance(ctx, \"default\", \u0026kms.InstanceArgs{\n\t\t\tPaymentType:    pulumi.String(\"PayAsYouGo\"),\n\t\t\tProductVersion: pulumi.String(\"3\"),\n\t\t\tVpcId:          vswitch.VpcId,\n\t\t\tZoneIds: pulumi.StringArray{\n\t\t\t\tvswitch.ZoneId,\n\t\t\t\tvswitch_j.ZoneId,\n\t\t\t},\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tvswitch.ID(),\n\t\t\t},\n\t\t\tForceDeleteWithoutBackup: pulumi.String(\"true\"),\n\t\t\tBindVpcs: kms.InstanceBindVpcArray{\n\t\t\t\t\u0026kms.InstanceBindVpcArgs{\n\t\t\t\t\tVpcId:      shareVswitch.VpcId,\n\t\t\t\t\tRegionId:   pulumi.String(region),\n\t\t\t\t\tVswitchId:  shareVswitch.ID(),\n\t\t\t\t\tVpcOwnerId: pulumi.String(current.Id),\n\t\t\t\t},\n\t\t\t\t\u0026kms.InstanceBindVpcArgs{\n\t\t\t\t\tVpcId:      share_vswitch2.VpcId,\n\t\t\t\t\tRegionId:   pulumi.String(region),\n\t\t\t\t\tVswitchId:  share_vswitch2.ID(),\n\t\t\t\t\tVpcOwnerId: pulumi.String(current.Id),\n\t\t\t\t},\n\t\t\t\t\u0026kms.InstanceBindVpcArgs{\n\t\t\t\t\tVpcId:      share_vsw3.VpcId,\n\t\t\t\t\tRegionId:   pulumi.String(region),\n\t\t\t\t\tVswitchId:  share_vsw3.ID(),\n\t\t\t\t\tVpcOwnerId: pulumi.String(current.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.kms.Instance;\nimport com.pulumi.alicloud.kms.InstanceArgs;\nimport com.pulumi.alicloud.kms.inputs.InstanceBindVpcArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var current = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var vpc_amp_instance_example = new Network(\"vpc-amp-instance-example\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(name)\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .vpcId(vpc_amp_instance_example.id())\n            .zoneId(\"cn-hangzhou-k\")\n            .cidrBlock(\"172.16.1.0/24\")\n            .build());\n\n        var vswitch_j = new Switch(\"vswitch-j\", SwitchArgs.builder()\n            .vpcId(vpc_amp_instance_example.id())\n            .zoneId(\"cn-hangzhou-j\")\n            .cidrBlock(\"172.16.2.0/24\")\n            .build());\n\n        var shareVPC = new Network(\"shareVPC\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s3\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var shareVswitch = new Switch(\"shareVswitch\", SwitchArgs.builder()\n            .vpcId(shareVPC.id())\n            .zoneId(\"cn-hangzhou-k\")\n            .cidrBlock(\"172.16.1.0/24\")\n            .build());\n\n        var share_VPC2 = new Network(\"share-VPC2\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s5\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var share_vswitch2 = new Switch(\"share-vswitch2\", SwitchArgs.builder()\n            .vpcId(share_VPC2.id())\n            .zoneId(\"cn-hangzhou-k\")\n            .cidrBlock(\"172.16.1.0/24\")\n            .build());\n\n        var share_VPC3 = new Network(\"share-VPC3\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s7\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var share_vsw3 = new Switch(\"share-vsw3\", SwitchArgs.builder()\n            .vpcId(share_VPC3.id())\n            .zoneId(\"cn-hangzhou-k\")\n            .cidrBlock(\"172.16.1.0/24\")\n            .build());\n\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .paymentType(\"PayAsYouGo\")\n            .productVersion(\"3\")\n            .vpcId(vswitch.vpcId())\n            .zoneIds(            \n                vswitch.zoneId(),\n                vswitch_j.zoneId())\n            .vswitchIds(vswitch.id())\n            .forceDeleteWithoutBackup(\"true\")\n            .bindVpcs(            \n                InstanceBindVpcArgs.builder()\n                    .vpcId(shareVswitch.vpcId())\n                    .regionId(region)\n                    .vswitchId(shareVswitch.id())\n                    .vpcOwnerId(current.id())\n                    .build(),\n                InstanceBindVpcArgs.builder()\n                    .vpcId(share_vswitch2.vpcId())\n                    .regionId(region)\n                    .vswitchId(share_vswitch2.id())\n                    .vpcOwnerId(current.id())\n                    .build(),\n                InstanceBindVpcArgs.builder()\n                    .vpcId(share_vsw3.vpcId())\n                    .regionId(region)\n                    .vswitchId(share_vsw3.id())\n                    .vpcOwnerId(current.id())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\n  name:\n    type: string\n    default: terraform-example\nresources:\n  vpc-amp-instance-example:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName: ${name}\n  vswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${[\"vpc-amp-instance-example\"].id}\n      zoneId: cn-hangzhou-k\n      cidrBlock: 172.16.1.0/24\n  vswitch-j:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${[\"vpc-amp-instance-example\"].id}\n      zoneId: cn-hangzhou-j\n      cidrBlock: 172.16.2.0/24\n  shareVPC:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s3'\n            args:\n              - ${name}\n          return: result\n  shareVswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${shareVPC.id}\n      zoneId: cn-hangzhou-k\n      cidrBlock: 172.16.1.0/24\n  share-VPC2:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s5'\n            args:\n              - ${name}\n          return: result\n  share-vswitch2:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${[\"share-VPC2\"].id}\n      zoneId: cn-hangzhou-k\n      cidrBlock: 172.16.1.0/24\n  share-VPC3:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s7'\n            args:\n              - ${name}\n          return: result\n  share-vsw3:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${[\"share-VPC3\"].id}\n      zoneId: cn-hangzhou-k\n      cidrBlock: 172.16.1.0/24\n  default:\n    type: alicloud:kms:Instance\n    properties:\n      paymentType: PayAsYouGo\n      productVersion: 3\n      vpcId: ${vswitch.vpcId}\n      zoneIds:\n        - ${vswitch.zoneId}\n        - ${[\"vswitch-j\"].zoneId}\n      vswitchIds:\n        - ${vswitch.id}\n      forceDeleteWithoutBackup: true\n      bindVpcs:\n        - vpcId: ${shareVswitch.vpcId}\n          regionId: ${region}\n          vswitchId: ${shareVswitch.id}\n          vpcOwnerId: ${current.id}\n        - vpcId: ${[\"share-vswitch2\"].vpcId}\n          regionId: ${region}\n          vswitchId: ${[\"share-vswitch2\"].id}\n          vpcOwnerId: ${current.id}\n        - vpcId: ${[\"share-vsw3\"].vpcId}\n          regionId: ${region}\n          vswitchId: ${[\"share-vsw3\"].id}\n          vpcOwnerId: ${current.id}\nvariables:\n  current:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nKMS Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:kms/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"bindVpcs":{"type":"array","items":{"$ref":"#/types/alicloud:kms/InstanceBindVpc:InstanceBindVpc"},"description":"Aucillary VPCs used to access this KMS instance See \u003cspan pulumi-lang-nodejs=\"`bindVpcs`\" pulumi-lang-dotnet=\"`BindVpcs`\" pulumi-lang-go=\"`bindVpcs`\" pulumi-lang-python=\"`bind_vpcs`\" pulumi-lang-yaml=\"`bindVpcs`\" pulumi-lang-java=\"`bindVpcs`\"\u003e`bind_vpcs`\u003c/span\u003e below.\n"},"caCertificateChainPem":{"type":"string","description":"KMS instance certificate chain in PEM format.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"endDate":{"type":"string","description":"(Available since v1.233.1) Instance expiration time.\n"},"forceDeleteWithoutBackup":{"type":"string","description":"Whether to force deletion even without backup.\n\n\u003e **NOTE:** This parameter only takes effect when deletion is triggered.\n"},"instanceName":{"type":"string","description":"The name of the resource\n"},"keyNum":{"type":"integer","description":"Maximum number of stored keys. The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n"},"log":{"type":"string","description":"Instance Audit Log Switch. This attribute was limited to Subscription (prepaid) payment type before v1.264.0. As of v1.264.0, it is also supported for PayAsYouGo (postpaid) instances.\n"},"logStorage":{"type":"integer","description":"Instance log capacity. This attribute was limited to Subscription (prepaid) payment type before v1.264.0. As of v1.264.0, it is also supported for PayAsYouGo (postpaid) instances.\n"},"paymentType":{"type":"string","description":"The billing method. Valid values:\n\n- Subscription: the subscription billing method.\n- PayAsYouGo: the pay-as-you-go billing method.\n"},"period":{"type":"integer","description":"The subscription duration. Unit: month. The value must be an integral multiple of 12.\n\n\u003e **NOTE:**   This parameter is required if you create a subscription instance.\n\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"productVersion":{"type":"string","description":"KMS Instance commodity type (software/hardware)\n"},"renewPeriod":{"type":"integer","description":"The auto-renewal period. Unit: month.\n\n\u003e **NOTE:**   This parameter is required if the `RenewalStatus` parameter is set to `AutoRenewal`.\n"},"renewStatus":{"type":"string","description":"The renewal status of the specified instance. Valid values:\n\n- AutoRenewal: The instance is automatically renewed.\n- ManualRenewal: The instance is manually renewed.\n- NotRenewal: The instance is not renewed.\n"},"renewalPeriodUnit":{"type":"string","description":"Automatic renewal period unit, value:\n- M: Month.\n- Y: Year.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"secretNum":{"type":"integer","description":"Maximum number of Secrets. The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n"},"spec":{"type":"integer","description":"The computation performance level of the KMS instance. The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n"},"status":{"type":"string","description":"Instance status.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) that is associated with the KMS instance.\n"},"vpcNum":{"type":"integer","description":"The number of managed accesses. The maximum number of VPCs that can access this KMS instance. The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"Instance bind vswitches\n"},"zoneIds":{"type":"array","items":{"type":"string"},"description":"zone id\n"}},"required":["caCertificateChainPem","createTime","endDate","instanceName","log","logStorage","paymentType","productVersion","renewStatus","status","vpcId","vswitchIds","zoneIds"],"inputProperties":{"bindVpcs":{"type":"array","items":{"$ref":"#/types/alicloud:kms/InstanceBindVpc:InstanceBindVpc"},"description":"Aucillary VPCs used to access this KMS instance See \u003cspan pulumi-lang-nodejs=\"`bindVpcs`\" pulumi-lang-dotnet=\"`BindVpcs`\" pulumi-lang-go=\"`bindVpcs`\" pulumi-lang-python=\"`bind_vpcs`\" pulumi-lang-yaml=\"`bindVpcs`\" pulumi-lang-java=\"`bindVpcs`\"\u003e`bind_vpcs`\u003c/span\u003e below.\n"},"forceDeleteWithoutBackup":{"type":"string","description":"Whether to force deletion even without backup.\n\n\u003e **NOTE:** This parameter only takes effect when deletion is triggered.\n"},"instanceName":{"type":"string","description":"The name of the resource\n"},"keyNum":{"type":"integer","description":"Maximum number of stored keys. The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n"},"log":{"type":"string","description":"Instance Audit Log Switch. This attribute was limited to Subscription (prepaid) payment type before v1.264.0. As of v1.264.0, it is also supported for PayAsYouGo (postpaid) instances.\n"},"logStorage":{"type":"integer","description":"Instance log capacity. This attribute was limited to Subscription (prepaid) payment type before v1.264.0. As of v1.264.0, it is also supported for PayAsYouGo (postpaid) instances.\n"},"paymentType":{"type":"string","description":"The billing method. Valid values:\n\n- Subscription: the subscription billing method.\n- PayAsYouGo: the pay-as-you-go billing method.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The subscription duration. Unit: month. The value must be an integral multiple of 12.\n\n\u003e **NOTE:**   This parameter is required if you create a subscription instance.\n\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"productVersion":{"type":"string","description":"KMS Instance commodity type (software/hardware)\n"},"renewPeriod":{"type":"integer","description":"The auto-renewal period. Unit: month.\n\n\u003e **NOTE:**   This parameter is required if the `RenewalStatus` parameter is set to `AutoRenewal`.\n"},"renewStatus":{"type":"string","description":"The renewal status of the specified instance. Valid values:\n\n- AutoRenewal: The instance is automatically renewed.\n- ManualRenewal: The instance is manually renewed.\n- NotRenewal: The instance is not renewed.\n"},"renewalPeriodUnit":{"type":"string","description":"Automatic renewal period unit, value:\n- M: Month.\n- Y: Year.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"secretNum":{"type":"integer","description":"Maximum number of Secrets. The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n"},"spec":{"type":"integer","description":"The computation performance level of the KMS instance. The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) that is associated with the KMS instance.\n","willReplaceOnChanges":true},"vpcNum":{"type":"integer","description":"The number of managed accesses. The maximum number of VPCs that can access this KMS instance. The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"Instance bind vswitches\n","willReplaceOnChanges":true},"zoneIds":{"type":"array","items":{"type":"string"},"description":"zone id\n","willReplaceOnChanges":true}},"requiredInputs":["vpcId","vswitchIds","zoneIds"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"bindVpcs":{"type":"array","items":{"$ref":"#/types/alicloud:kms/InstanceBindVpc:InstanceBindVpc"},"description":"Aucillary VPCs used to access this KMS instance See \u003cspan pulumi-lang-nodejs=\"`bindVpcs`\" pulumi-lang-dotnet=\"`BindVpcs`\" pulumi-lang-go=\"`bindVpcs`\" pulumi-lang-python=\"`bind_vpcs`\" pulumi-lang-yaml=\"`bindVpcs`\" pulumi-lang-java=\"`bindVpcs`\"\u003e`bind_vpcs`\u003c/span\u003e below.\n"},"caCertificateChainPem":{"type":"string","description":"KMS instance certificate chain in PEM format.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"endDate":{"type":"string","description":"(Available since v1.233.1) Instance expiration time.\n"},"forceDeleteWithoutBackup":{"type":"string","description":"Whether to force deletion even without backup.\n\n\u003e **NOTE:** This parameter only takes effect when deletion is triggered.\n"},"instanceName":{"type":"string","description":"The name of the resource\n"},"keyNum":{"type":"integer","description":"Maximum number of stored keys. The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n"},"log":{"type":"string","description":"Instance Audit Log Switch. This attribute was limited to Subscription (prepaid) payment type before v1.264.0. As of v1.264.0, it is also supported for PayAsYouGo (postpaid) instances.\n"},"logStorage":{"type":"integer","description":"Instance log capacity. This attribute was limited to Subscription (prepaid) payment type before v1.264.0. As of v1.264.0, it is also supported for PayAsYouGo (postpaid) instances.\n"},"paymentType":{"type":"string","description":"The billing method. Valid values:\n\n- Subscription: the subscription billing method.\n- PayAsYouGo: the pay-as-you-go billing method.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The subscription duration. Unit: month. The value must be an integral multiple of 12.\n\n\u003e **NOTE:**   This parameter is required if you create a subscription instance.\n\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"productVersion":{"type":"string","description":"KMS Instance commodity type (software/hardware)\n"},"renewPeriod":{"type":"integer","description":"The auto-renewal period. Unit: month.\n\n\u003e **NOTE:**   This parameter is required if the `RenewalStatus` parameter is set to `AutoRenewal`.\n"},"renewStatus":{"type":"string","description":"The renewal status of the specified instance. Valid values:\n\n- AutoRenewal: The instance is automatically renewed.\n- ManualRenewal: The instance is manually renewed.\n- NotRenewal: The instance is not renewed.\n"},"renewalPeriodUnit":{"type":"string","description":"Automatic renewal period unit, value:\n- M: Month.\n- Y: Year.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"secretNum":{"type":"integer","description":"Maximum number of Secrets. The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n"},"spec":{"type":"integer","description":"The computation performance level of the KMS instance. The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n"},"status":{"type":"string","description":"Instance status.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) that is associated with the KMS instance.\n","willReplaceOnChanges":true},"vpcNum":{"type":"integer","description":"The number of managed accesses. The maximum number of VPCs that can access this KMS instance. The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"Instance bind vswitches\n","willReplaceOnChanges":true},"zoneIds":{"type":"array","items":{"type":"string"},"description":"zone id\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:kms/key:Key":{"description":"Provides a KMS Key resource.\n\n\n\nFor information about KMS Key and how to use it, see [What is Key](https://www.alibabacloud.com/help/en/kms/developer-reference/api-createkey).\n\n\u003e **NOTE:** Available since v1.85.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.kms.Key(\"default\", {\n    description: \"Hello KMS\",\n    status: \"Enabled\",\n    pendingWindowInDays: 7,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.kms.Key(\"default\",\n    description=\"Hello KMS\",\n    status=\"Enabled\",\n    pending_window_in_days=7)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Kms.Key(\"default\", new()\n    {\n        Description = \"Hello KMS\",\n        Status = \"Enabled\",\n        PendingWindowInDays = 7,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := kms.NewKey(ctx, \"default\", \u0026kms.KeyArgs{\n\t\t\tDescription:         pulumi.String(\"Hello KMS\"),\n\t\t\tStatus:              pulumi.String(\"Enabled\"),\n\t\t\tPendingWindowInDays: pulumi.Int(7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.Key;\nimport com.pulumi.alicloud.kms.KeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Key(\"default\", KeyArgs.builder()\n            .description(\"Hello KMS\")\n            .status(\"Enabled\")\n            .pendingWindowInDays(7)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:kms:Key\n    properties:\n      description: Hello KMS\n      status: Enabled\n      pendingWindowInDays: '7'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nKMS Key can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:kms/key:Key example \u003cid\u003e\n```\n\n","properties":{"arn":{"type":"string","description":"The ARN of the key.\n"},"automaticRotation":{"type":"string","description":"Specifies whether to enable automatic key rotation. Default value: `Disabled`. Valid values: `Enabled`, `Disabled`.\n"},"creationDate":{"type":"string","description":"The time when the CMK was created.\n"},"creator":{"type":"string","description":"The creator of the CMK.\n"},"deleteDate":{"type":"string","description":"The time at which the CMK is scheduled for deletion.\n"},"deletionProtection":{"type":"string","description":"Specifies whether to enable deletion protection. Default value: `Disabled`. Valid values: `Enabled`, `Disabled`.\n"},"deletionProtectionDescription":{"type":"string","description":"The description of deletion protection. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`deletionProtectionDescription`\" pulumi-lang-dotnet=\"`DeletionProtectionDescription`\" pulumi-lang-go=\"`deletionProtectionDescription`\" pulumi-lang-python=\"`deletion_protection_description`\" pulumi-lang-yaml=\"`deletionProtectionDescription`\" pulumi-lang-java=\"`deletionProtectionDescription`\"\u003e`deletion_protection_description`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`deletionProtection`\" pulumi-lang-dotnet=\"`DeletionProtection`\" pulumi-lang-go=\"`deletionProtection`\" pulumi-lang-python=\"`deletion_protection`\" pulumi-lang-yaml=\"`deletionProtection`\" pulumi-lang-java=\"`deletionProtection`\"\u003e`deletion_protection`\u003c/span\u003e is set to `Enabled`.\n"},"deletionWindowInDays":{"type":"integer","description":"Field \u003cspan pulumi-lang-nodejs=\"`deletionWindowInDays`\" pulumi-lang-dotnet=\"`DeletionWindowInDays`\" pulumi-lang-go=\"`deletionWindowInDays`\" pulumi-lang-python=\"`deletion_window_in_days`\" pulumi-lang-yaml=\"`deletionWindowInDays`\" pulumi-lang-java=\"`deletionWindowInDays`\"\u003e`deletion_window_in_days`\u003c/span\u003e has been deprecated from provider version 1.85.0. New field \u003cspan pulumi-lang-nodejs=\"`pendingWindowInDays`\" pulumi-lang-dotnet=\"`PendingWindowInDays`\" pulumi-lang-go=\"`pendingWindowInDays`\" pulumi-lang-python=\"`pending_window_in_days`\" pulumi-lang-yaml=\"`pendingWindowInDays`\" pulumi-lang-java=\"`pendingWindowInDays`\"\u003e`pending_window_in_days`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`deletionWindowInDays`\" pulumi-lang-dotnet=\"`DeletionWindowInDays`\" pulumi-lang-go=\"`deletionWindowInDays`\" pulumi-lang-python=\"`deletion_window_in_days`\" pulumi-lang-yaml=\"`deletionWindowInDays`\" pulumi-lang-java=\"`deletionWindowInDays`\"\u003e`deletion_window_in_days`\u003c/span\u003e has been deprecated from provider version 1.85.0. New field \u003cspan pulumi-lang-nodejs=\"`pendingWindowInDays`\" pulumi-lang-dotnet=\"`PendingWindowInDays`\" pulumi-lang-go=\"`pendingWindowInDays`\" pulumi-lang-python=\"`pending_window_in_days`\" pulumi-lang-yaml=\"`pendingWindowInDays`\" pulumi-lang-java=\"`pendingWindowInDays`\"\u003e`pending_window_in_days`\u003c/span\u003e instead."},"description":{"type":"string","description":"The description of the key.\n"},"dkmsInstanceId":{"type":"string","description":"The ID of the KMS instance.\n"},"isEnabled":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`isEnabled`\" pulumi-lang-dotnet=\"`IsEnabled`\" pulumi-lang-go=\"`isEnabled`\" pulumi-lang-python=\"`is_enabled`\" pulumi-lang-yaml=\"`isEnabled`\" pulumi-lang-java=\"`isEnabled`\"\u003e`is_enabled`\u003c/span\u003e has been deprecated from provider version 1.85.0. New field \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e instead.\n\n\u003e **NOTE:** If you set the origin parameter to EXTERNAL or the\u003cspan pulumi-lang-nodejs=\" keySpec \" pulumi-lang-dotnet=\" KeySpec \" pulumi-lang-go=\" keySpec \" pulumi-lang-python=\" key_spec \" pulumi-lang-yaml=\" keySpec \" pulumi-lang-java=\" keySpec \"\u003e key_spec \u003c/span\u003eparameter to an asymmetric CMK type, automatic key rotation is unavailable.\n\n\u003e **NOTE:** The default type of the CMK is `Aliyun_AES_256`. Only Dedicated KMS supports `Aliyun_AES_128` and `Aliyun_AES_192`.\n\n\u003e **NOTE:** When the pre-deletion days elapses, the key is permanently deleted and cannot be recovered.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`isEnabled`\" pulumi-lang-dotnet=\"`IsEnabled`\" pulumi-lang-go=\"`isEnabled`\" pulumi-lang-python=\"`is_enabled`\" pulumi-lang-yaml=\"`isEnabled`\" pulumi-lang-java=\"`isEnabled`\"\u003e`is_enabled`\u003c/span\u003e has been deprecated from provider version 1.85.0. New field \u003cspan pulumi-lang-nodejs=\"`keyState`\" pulumi-lang-dotnet=\"`KeyState`\" pulumi-lang-go=\"`keyState`\" pulumi-lang-python=\"`key_state`\" pulumi-lang-yaml=\"`keyState`\" pulumi-lang-java=\"`keyState`\"\u003e`key_state`\u003c/span\u003e instead."},"keySpec":{"type":"string","description":"The specification of the key. Default value: `Aliyun_AES_256`. Valid values: `Aliyun_AES_256`, `Aliyun_AES_128`, `Aliyun_AES_192`, `Aliyun_SM4`, `RSA_2048`, `RSA_3072`, `EC_P256`, `EC_P256K`, `EC_SM2`.\n"},"keyState":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`keyState`\" pulumi-lang-dotnet=\"`KeyState`\" pulumi-lang-go=\"`keyState`\" pulumi-lang-python=\"`key_state`\" pulumi-lang-yaml=\"`keyState`\" pulumi-lang-java=\"`keyState`\"\u003e`key_state`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`keyState`\" pulumi-lang-dotnet=\"`KeyState`\" pulumi-lang-go=\"`keyState`\" pulumi-lang-python=\"`key_state`\" pulumi-lang-yaml=\"`keyState`\" pulumi-lang-java=\"`keyState`\"\u003e`key_state`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e instead.","language":{"csharp":{"name":"KeyStatus"}}},"keyUsage":{"type":"string","description":"The usage of the key. Default value: `ENCRYPT/DECRYPT`. Valid values:\n- `ENCRYPT/DECRYPT`: Encrypts or decrypts data.\n- `SIGN/VERIFY`: Generates or verifies a digital signature.\n"},"lastRotationDate":{"type":"string","description":"The time when the last rotation was performed.\n"},"materialExpireTime":{"type":"string","description":"The time when the key material expires.\n"},"nextRotationDate":{"type":"string","description":"The time when the next rotation will be performed.\n"},"origin":{"type":"string","description":"The key material origin. Default value: `Aliyun_KMS`. Valid values: `Aliyun_KMS`, `EXTERNAL`.\n"},"pendingWindowInDays":{"type":"integer","description":"The number of days before the CMK is deleted. During this period, the CMK is in the PendingDeletion state. After this period ends, you cannot cancel the deletion. Unit: days. Valid values: \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`366`\" pulumi-lang-dotnet=\"`366`\" pulumi-lang-go=\"`366`\" pulumi-lang-python=\"`366`\" pulumi-lang-yaml=\"`366`\" pulumi-lang-java=\"`366`\"\u003e`366`\u003c/span\u003e. **NOTE:** From version 1.184.0, \u003cspan pulumi-lang-nodejs=\"`pendingWindowInDays`\" pulumi-lang-dotnet=\"`PendingWindowInDays`\" pulumi-lang-go=\"`pendingWindowInDays`\" pulumi-lang-python=\"`pending_window_in_days`\" pulumi-lang-yaml=\"`pendingWindowInDays`\" pulumi-lang-java=\"`pendingWindowInDays`\"\u003e`pending_window_in_days`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`366`\" pulumi-lang-dotnet=\"`366`\" pulumi-lang-go=\"`366`\" pulumi-lang-python=\"`366`\" pulumi-lang-yaml=\"`366`\" pulumi-lang-java=\"`366`\"\u003e`366`\u003c/span\u003e.\n"},"policy":{"type":"string","description":"The content of the key policy. The value is in the JSON format. The value can be up to 32,768 bytes in length. For more information, see [How to use it](https://www.alibabacloud.com/help/en/kms/developer-reference/api-setkeypolicy).\n"},"primaryKeyVersion":{"type":"string","description":"The ID of the current primary key version of the symmetric CMK.\n"},"protectionLevel":{"type":"string","description":"The protection level of the key. Default value: `SOFTWARE`. Valid values: `SOFTWARE`, `HSM`.\n"},"rotationInterval":{"type":"string","description":"The period of automatic key rotation. The following units are supported: d (day), h (hour), m (minute), and s (second). For example, you can use either 7d or 604800s to specify a seven-day interval. **NOTE**: If \u003cspan pulumi-lang-nodejs=\"`automaticRotation`\" pulumi-lang-dotnet=\"`AutomaticRotation`\" pulumi-lang-go=\"`automaticRotation`\" pulumi-lang-python=\"`automatic_rotation`\" pulumi-lang-yaml=\"`automaticRotation`\" pulumi-lang-java=\"`automaticRotation`\"\u003e`automatic_rotation`\u003c/span\u003e is set to `Enabled`, \u003cspan pulumi-lang-nodejs=\"`rotationInterval`\" pulumi-lang-dotnet=\"`RotationInterval`\" pulumi-lang-go=\"`rotationInterval`\" pulumi-lang-python=\"`rotation_interval`\" pulumi-lang-yaml=\"`rotationInterval`\" pulumi-lang-java=\"`rotationInterval`\"\u003e`rotation_interval`\u003c/span\u003e is required.\n"},"status":{"type":"string","description":"The status of key. Default value: `Enabled`. Valid values: `Enabled`, `Disabled`, `PendingDeletion`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["arn","automaticRotation","creationDate","creator","deleteDate","deletionProtection","dkmsInstanceId","isEnabled","keySpec","keyState","keyUsage","lastRotationDate","materialExpireTime","nextRotationDate","origin","policy","primaryKeyVersion","status"],"inputProperties":{"automaticRotation":{"type":"string","description":"Specifies whether to enable automatic key rotation. Default value: `Disabled`. Valid values: `Enabled`, `Disabled`.\n"},"deletionProtection":{"type":"string","description":"Specifies whether to enable deletion protection. Default value: `Disabled`. Valid values: `Enabled`, `Disabled`.\n"},"deletionProtectionDescription":{"type":"string","description":"The description of deletion protection. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`deletionProtectionDescription`\" pulumi-lang-dotnet=\"`DeletionProtectionDescription`\" pulumi-lang-go=\"`deletionProtectionDescription`\" pulumi-lang-python=\"`deletion_protection_description`\" pulumi-lang-yaml=\"`deletionProtectionDescription`\" pulumi-lang-java=\"`deletionProtectionDescription`\"\u003e`deletion_protection_description`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`deletionProtection`\" pulumi-lang-dotnet=\"`DeletionProtection`\" pulumi-lang-go=\"`deletionProtection`\" pulumi-lang-python=\"`deletion_protection`\" pulumi-lang-yaml=\"`deletionProtection`\" pulumi-lang-java=\"`deletionProtection`\"\u003e`deletion_protection`\u003c/span\u003e is set to `Enabled`.\n"},"deletionWindowInDays":{"type":"integer","description":"Field \u003cspan pulumi-lang-nodejs=\"`deletionWindowInDays`\" pulumi-lang-dotnet=\"`DeletionWindowInDays`\" pulumi-lang-go=\"`deletionWindowInDays`\" pulumi-lang-python=\"`deletion_window_in_days`\" pulumi-lang-yaml=\"`deletionWindowInDays`\" pulumi-lang-java=\"`deletionWindowInDays`\"\u003e`deletion_window_in_days`\u003c/span\u003e has been deprecated from provider version 1.85.0. New field \u003cspan pulumi-lang-nodejs=\"`pendingWindowInDays`\" pulumi-lang-dotnet=\"`PendingWindowInDays`\" pulumi-lang-go=\"`pendingWindowInDays`\" pulumi-lang-python=\"`pending_window_in_days`\" pulumi-lang-yaml=\"`pendingWindowInDays`\" pulumi-lang-java=\"`pendingWindowInDays`\"\u003e`pending_window_in_days`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`deletionWindowInDays`\" pulumi-lang-dotnet=\"`DeletionWindowInDays`\" pulumi-lang-go=\"`deletionWindowInDays`\" pulumi-lang-python=\"`deletion_window_in_days`\" pulumi-lang-yaml=\"`deletionWindowInDays`\" pulumi-lang-java=\"`deletionWindowInDays`\"\u003e`deletion_window_in_days`\u003c/span\u003e has been deprecated from provider version 1.85.0. New field \u003cspan pulumi-lang-nodejs=\"`pendingWindowInDays`\" pulumi-lang-dotnet=\"`PendingWindowInDays`\" pulumi-lang-go=\"`pendingWindowInDays`\" pulumi-lang-python=\"`pending_window_in_days`\" pulumi-lang-yaml=\"`pendingWindowInDays`\" pulumi-lang-java=\"`pendingWindowInDays`\"\u003e`pending_window_in_days`\u003c/span\u003e instead."},"description":{"type":"string","description":"The description of the key.\n"},"dkmsInstanceId":{"type":"string","description":"The ID of the KMS instance.\n","willReplaceOnChanges":true},"isEnabled":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`isEnabled`\" pulumi-lang-dotnet=\"`IsEnabled`\" pulumi-lang-go=\"`isEnabled`\" pulumi-lang-python=\"`is_enabled`\" pulumi-lang-yaml=\"`isEnabled`\" pulumi-lang-java=\"`isEnabled`\"\u003e`is_enabled`\u003c/span\u003e has been deprecated from provider version 1.85.0. New field \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e instead.\n\n\u003e **NOTE:** If you set the origin parameter to EXTERNAL or the\u003cspan pulumi-lang-nodejs=\" keySpec \" pulumi-lang-dotnet=\" KeySpec \" pulumi-lang-go=\" keySpec \" pulumi-lang-python=\" key_spec \" pulumi-lang-yaml=\" keySpec \" pulumi-lang-java=\" keySpec \"\u003e key_spec \u003c/span\u003eparameter to an asymmetric CMK type, automatic key rotation is unavailable.\n\n\u003e **NOTE:** The default type of the CMK is `Aliyun_AES_256`. Only Dedicated KMS supports `Aliyun_AES_128` and `Aliyun_AES_192`.\n\n\u003e **NOTE:** When the pre-deletion days elapses, the key is permanently deleted and cannot be recovered.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`isEnabled`\" pulumi-lang-dotnet=\"`IsEnabled`\" pulumi-lang-go=\"`isEnabled`\" pulumi-lang-python=\"`is_enabled`\" pulumi-lang-yaml=\"`isEnabled`\" pulumi-lang-java=\"`isEnabled`\"\u003e`is_enabled`\u003c/span\u003e has been deprecated from provider version 1.85.0. New field \u003cspan pulumi-lang-nodejs=\"`keyState`\" pulumi-lang-dotnet=\"`KeyState`\" pulumi-lang-go=\"`keyState`\" pulumi-lang-python=\"`key_state`\" pulumi-lang-yaml=\"`keyState`\" pulumi-lang-java=\"`keyState`\"\u003e`key_state`\u003c/span\u003e instead."},"keySpec":{"type":"string","description":"The specification of the key. Default value: `Aliyun_AES_256`. Valid values: `Aliyun_AES_256`, `Aliyun_AES_128`, `Aliyun_AES_192`, `Aliyun_SM4`, `RSA_2048`, `RSA_3072`, `EC_P256`, `EC_P256K`, `EC_SM2`.\n","willReplaceOnChanges":true},"keyState":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`keyState`\" pulumi-lang-dotnet=\"`KeyState`\" pulumi-lang-go=\"`keyState`\" pulumi-lang-python=\"`key_state`\" pulumi-lang-yaml=\"`keyState`\" pulumi-lang-java=\"`keyState`\"\u003e`key_state`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`keyState`\" pulumi-lang-dotnet=\"`KeyState`\" pulumi-lang-go=\"`keyState`\" pulumi-lang-python=\"`key_state`\" pulumi-lang-yaml=\"`keyState`\" pulumi-lang-java=\"`keyState`\"\u003e`key_state`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e instead.","language":{"csharp":{"name":"KeyStatus"}}},"keyUsage":{"type":"string","description":"The usage of the key. Default value: `ENCRYPT/DECRYPT`. Valid values:\n- `ENCRYPT/DECRYPT`: Encrypts or decrypts data.\n- `SIGN/VERIFY`: Generates or verifies a digital signature.\n","willReplaceOnChanges":true},"origin":{"type":"string","description":"The key material origin. Default value: `Aliyun_KMS`. Valid values: `Aliyun_KMS`, `EXTERNAL`.\n","willReplaceOnChanges":true},"pendingWindowInDays":{"type":"integer","description":"The number of days before the CMK is deleted. During this period, the CMK is in the PendingDeletion state. After this period ends, you cannot cancel the deletion. Unit: days. Valid values: \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`366`\" pulumi-lang-dotnet=\"`366`\" pulumi-lang-go=\"`366`\" pulumi-lang-python=\"`366`\" pulumi-lang-yaml=\"`366`\" pulumi-lang-java=\"`366`\"\u003e`366`\u003c/span\u003e. **NOTE:** From version 1.184.0, \u003cspan pulumi-lang-nodejs=\"`pendingWindowInDays`\" pulumi-lang-dotnet=\"`PendingWindowInDays`\" pulumi-lang-go=\"`pendingWindowInDays`\" pulumi-lang-python=\"`pending_window_in_days`\" pulumi-lang-yaml=\"`pendingWindowInDays`\" pulumi-lang-java=\"`pendingWindowInDays`\"\u003e`pending_window_in_days`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`366`\" pulumi-lang-dotnet=\"`366`\" pulumi-lang-go=\"`366`\" pulumi-lang-python=\"`366`\" pulumi-lang-yaml=\"`366`\" pulumi-lang-java=\"`366`\"\u003e`366`\u003c/span\u003e.\n"},"policy":{"type":"string","description":"The content of the key policy. The value is in the JSON format. The value can be up to 32,768 bytes in length. For more information, see [How to use it](https://www.alibabacloud.com/help/en/kms/developer-reference/api-setkeypolicy).\n"},"protectionLevel":{"type":"string","description":"The protection level of the key. Default value: `SOFTWARE`. Valid values: `SOFTWARE`, `HSM`.\n","willReplaceOnChanges":true},"rotationInterval":{"type":"string","description":"The period of automatic key rotation. The following units are supported: d (day), h (hour), m (minute), and s (second). For example, you can use either 7d or 604800s to specify a seven-day interval. **NOTE**: If \u003cspan pulumi-lang-nodejs=\"`automaticRotation`\" pulumi-lang-dotnet=\"`AutomaticRotation`\" pulumi-lang-go=\"`automaticRotation`\" pulumi-lang-python=\"`automatic_rotation`\" pulumi-lang-yaml=\"`automaticRotation`\" pulumi-lang-java=\"`automaticRotation`\"\u003e`automatic_rotation`\u003c/span\u003e is set to `Enabled`, \u003cspan pulumi-lang-nodejs=\"`rotationInterval`\" pulumi-lang-dotnet=\"`RotationInterval`\" pulumi-lang-go=\"`rotationInterval`\" pulumi-lang-python=\"`rotation_interval`\" pulumi-lang-yaml=\"`rotationInterval`\" pulumi-lang-java=\"`rotationInterval`\"\u003e`rotation_interval`\u003c/span\u003e is required.\n"},"status":{"type":"string","description":"The status of key. Default value: `Enabled`. Valid values: `Enabled`, `Disabled`, `PendingDeletion`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Key resources.\n","properties":{"arn":{"type":"string","description":"The ARN of the key.\n"},"automaticRotation":{"type":"string","description":"Specifies whether to enable automatic key rotation. Default value: `Disabled`. Valid values: `Enabled`, `Disabled`.\n"},"creationDate":{"type":"string","description":"The time when the CMK was created.\n"},"creator":{"type":"string","description":"The creator of the CMK.\n"},"deleteDate":{"type":"string","description":"The time at which the CMK is scheduled for deletion.\n"},"deletionProtection":{"type":"string","description":"Specifies whether to enable deletion protection. Default value: `Disabled`. Valid values: `Enabled`, `Disabled`.\n"},"deletionProtectionDescription":{"type":"string","description":"The description of deletion protection. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`deletionProtectionDescription`\" pulumi-lang-dotnet=\"`DeletionProtectionDescription`\" pulumi-lang-go=\"`deletionProtectionDescription`\" pulumi-lang-python=\"`deletion_protection_description`\" pulumi-lang-yaml=\"`deletionProtectionDescription`\" pulumi-lang-java=\"`deletionProtectionDescription`\"\u003e`deletion_protection_description`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`deletionProtection`\" pulumi-lang-dotnet=\"`DeletionProtection`\" pulumi-lang-go=\"`deletionProtection`\" pulumi-lang-python=\"`deletion_protection`\" pulumi-lang-yaml=\"`deletionProtection`\" pulumi-lang-java=\"`deletionProtection`\"\u003e`deletion_protection`\u003c/span\u003e is set to `Enabled`.\n"},"deletionWindowInDays":{"type":"integer","description":"Field \u003cspan pulumi-lang-nodejs=\"`deletionWindowInDays`\" pulumi-lang-dotnet=\"`DeletionWindowInDays`\" pulumi-lang-go=\"`deletionWindowInDays`\" pulumi-lang-python=\"`deletion_window_in_days`\" pulumi-lang-yaml=\"`deletionWindowInDays`\" pulumi-lang-java=\"`deletionWindowInDays`\"\u003e`deletion_window_in_days`\u003c/span\u003e has been deprecated from provider version 1.85.0. New field \u003cspan pulumi-lang-nodejs=\"`pendingWindowInDays`\" pulumi-lang-dotnet=\"`PendingWindowInDays`\" pulumi-lang-go=\"`pendingWindowInDays`\" pulumi-lang-python=\"`pending_window_in_days`\" pulumi-lang-yaml=\"`pendingWindowInDays`\" pulumi-lang-java=\"`pendingWindowInDays`\"\u003e`pending_window_in_days`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`deletionWindowInDays`\" pulumi-lang-dotnet=\"`DeletionWindowInDays`\" pulumi-lang-go=\"`deletionWindowInDays`\" pulumi-lang-python=\"`deletion_window_in_days`\" pulumi-lang-yaml=\"`deletionWindowInDays`\" pulumi-lang-java=\"`deletionWindowInDays`\"\u003e`deletion_window_in_days`\u003c/span\u003e has been deprecated from provider version 1.85.0. New field \u003cspan pulumi-lang-nodejs=\"`pendingWindowInDays`\" pulumi-lang-dotnet=\"`PendingWindowInDays`\" pulumi-lang-go=\"`pendingWindowInDays`\" pulumi-lang-python=\"`pending_window_in_days`\" pulumi-lang-yaml=\"`pendingWindowInDays`\" pulumi-lang-java=\"`pendingWindowInDays`\"\u003e`pending_window_in_days`\u003c/span\u003e instead."},"description":{"type":"string","description":"The description of the key.\n"},"dkmsInstanceId":{"type":"string","description":"The ID of the KMS instance.\n","willReplaceOnChanges":true},"isEnabled":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`isEnabled`\" pulumi-lang-dotnet=\"`IsEnabled`\" pulumi-lang-go=\"`isEnabled`\" pulumi-lang-python=\"`is_enabled`\" pulumi-lang-yaml=\"`isEnabled`\" pulumi-lang-java=\"`isEnabled`\"\u003e`is_enabled`\u003c/span\u003e has been deprecated from provider version 1.85.0. New field \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e instead.\n\n\u003e **NOTE:** If you set the origin parameter to EXTERNAL or the\u003cspan pulumi-lang-nodejs=\" keySpec \" pulumi-lang-dotnet=\" KeySpec \" pulumi-lang-go=\" keySpec \" pulumi-lang-python=\" key_spec \" pulumi-lang-yaml=\" keySpec \" pulumi-lang-java=\" keySpec \"\u003e key_spec \u003c/span\u003eparameter to an asymmetric CMK type, automatic key rotation is unavailable.\n\n\u003e **NOTE:** The default type of the CMK is `Aliyun_AES_256`. Only Dedicated KMS supports `Aliyun_AES_128` and `Aliyun_AES_192`.\n\n\u003e **NOTE:** When the pre-deletion days elapses, the key is permanently deleted and cannot be recovered.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`isEnabled`\" pulumi-lang-dotnet=\"`IsEnabled`\" pulumi-lang-go=\"`isEnabled`\" pulumi-lang-python=\"`is_enabled`\" pulumi-lang-yaml=\"`isEnabled`\" pulumi-lang-java=\"`isEnabled`\"\u003e`is_enabled`\u003c/span\u003e has been deprecated from provider version 1.85.0. New field \u003cspan pulumi-lang-nodejs=\"`keyState`\" pulumi-lang-dotnet=\"`KeyState`\" pulumi-lang-go=\"`keyState`\" pulumi-lang-python=\"`key_state`\" pulumi-lang-yaml=\"`keyState`\" pulumi-lang-java=\"`keyState`\"\u003e`key_state`\u003c/span\u003e instead."},"keySpec":{"type":"string","description":"The specification of the key. Default value: `Aliyun_AES_256`. Valid values: `Aliyun_AES_256`, `Aliyun_AES_128`, `Aliyun_AES_192`, `Aliyun_SM4`, `RSA_2048`, `RSA_3072`, `EC_P256`, `EC_P256K`, `EC_SM2`.\n","willReplaceOnChanges":true},"keyState":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`keyState`\" pulumi-lang-dotnet=\"`KeyState`\" pulumi-lang-go=\"`keyState`\" pulumi-lang-python=\"`key_state`\" pulumi-lang-yaml=\"`keyState`\" pulumi-lang-java=\"`keyState`\"\u003e`key_state`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`keyState`\" pulumi-lang-dotnet=\"`KeyState`\" pulumi-lang-go=\"`keyState`\" pulumi-lang-python=\"`key_state`\" pulumi-lang-yaml=\"`keyState`\" pulumi-lang-java=\"`keyState`\"\u003e`key_state`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e instead.","language":{"csharp":{"name":"KeyStatus"}}},"keyUsage":{"type":"string","description":"The usage of the key. Default value: `ENCRYPT/DECRYPT`. Valid values:\n- `ENCRYPT/DECRYPT`: Encrypts or decrypts data.\n- `SIGN/VERIFY`: Generates or verifies a digital signature.\n","willReplaceOnChanges":true},"lastRotationDate":{"type":"string","description":"The time when the last rotation was performed.\n"},"materialExpireTime":{"type":"string","description":"The time when the key material expires.\n"},"nextRotationDate":{"type":"string","description":"The time when the next rotation will be performed.\n"},"origin":{"type":"string","description":"The key material origin. Default value: `Aliyun_KMS`. Valid values: `Aliyun_KMS`, `EXTERNAL`.\n","willReplaceOnChanges":true},"pendingWindowInDays":{"type":"integer","description":"The number of days before the CMK is deleted. During this period, the CMK is in the PendingDeletion state. After this period ends, you cannot cancel the deletion. Unit: days. Valid values: \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`366`\" pulumi-lang-dotnet=\"`366`\" pulumi-lang-go=\"`366`\" pulumi-lang-python=\"`366`\" pulumi-lang-yaml=\"`366`\" pulumi-lang-java=\"`366`\"\u003e`366`\u003c/span\u003e. **NOTE:** From version 1.184.0, \u003cspan pulumi-lang-nodejs=\"`pendingWindowInDays`\" pulumi-lang-dotnet=\"`PendingWindowInDays`\" pulumi-lang-go=\"`pendingWindowInDays`\" pulumi-lang-python=\"`pending_window_in_days`\" pulumi-lang-yaml=\"`pendingWindowInDays`\" pulumi-lang-java=\"`pendingWindowInDays`\"\u003e`pending_window_in_days`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`366`\" pulumi-lang-dotnet=\"`366`\" pulumi-lang-go=\"`366`\" pulumi-lang-python=\"`366`\" pulumi-lang-yaml=\"`366`\" pulumi-lang-java=\"`366`\"\u003e`366`\u003c/span\u003e.\n"},"policy":{"type":"string","description":"The content of the key policy. The value is in the JSON format. The value can be up to 32,768 bytes in length. For more information, see [How to use it](https://www.alibabacloud.com/help/en/kms/developer-reference/api-setkeypolicy).\n"},"primaryKeyVersion":{"type":"string","description":"The ID of the current primary key version of the symmetric CMK.\n"},"protectionLevel":{"type":"string","description":"The protection level of the key. Default value: `SOFTWARE`. Valid values: `SOFTWARE`, `HSM`.\n","willReplaceOnChanges":true},"rotationInterval":{"type":"string","description":"The period of automatic key rotation. The following units are supported: d (day), h (hour), m (minute), and s (second). For example, you can use either 7d or 604800s to specify a seven-day interval. **NOTE**: If \u003cspan pulumi-lang-nodejs=\"`automaticRotation`\" pulumi-lang-dotnet=\"`AutomaticRotation`\" pulumi-lang-go=\"`automaticRotation`\" pulumi-lang-python=\"`automatic_rotation`\" pulumi-lang-yaml=\"`automaticRotation`\" pulumi-lang-java=\"`automaticRotation`\"\u003e`automatic_rotation`\u003c/span\u003e is set to `Enabled`, \u003cspan pulumi-lang-nodejs=\"`rotationInterval`\" pulumi-lang-dotnet=\"`RotationInterval`\" pulumi-lang-go=\"`rotationInterval`\" pulumi-lang-python=\"`rotation_interval`\" pulumi-lang-yaml=\"`rotationInterval`\" pulumi-lang-java=\"`rotationInterval`\"\u003e`rotation_interval`\u003c/span\u003e is required.\n"},"status":{"type":"string","description":"The status of key. Default value: `Enabled`. Valid values: `Enabled`, `Disabled`, `PendingDeletion`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:kms/keyVersion:KeyVersion":{"description":"Provides a Alikms Key Version resource. For information about Alikms Key Version and how to use it, see [What is Resource Alikms Key Version](https://www.alibabacloud.com/help/doc-detail/133838.htm).\n\n\u003e **NOTE:** Available in v1.85.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _this = new alicloud.kms.Key(\"this\", {});\nconst keyversion = new alicloud.kms.KeyVersion(\"keyversion\", {keyId: _this.id});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nthis = alicloud.kms.Key(\"this\")\nkeyversion = alicloud.kms.KeyVersion(\"keyversion\", key_id=this.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new AliCloud.Kms.Key(\"this\");\n\n    var keyversion = new AliCloud.Kms.KeyVersion(\"keyversion\", new()\n    {\n        KeyId = @this.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := kms.NewKey(ctx, \"this\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kms.NewKeyVersion(ctx, \"keyversion\", \u0026kms.KeyVersionArgs{\n\t\t\tKeyId: this.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.Key;\nimport com.pulumi.alicloud.kms.KeyVersion;\nimport com.pulumi.alicloud.kms.KeyVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new Key(\"this\");\n\n        var keyversion = new KeyVersion(\"keyversion\", KeyVersionArgs.builder()\n            .keyId(this_.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: alicloud:kms:Key\n  keyversion:\n    type: alicloud:kms:KeyVersion\n    properties:\n      keyId: ${this.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAlikms key version can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:kms/keyVersion:KeyVersion example 72da539a-2fa8-4f2d-b854-*****\n```\n\n","properties":{"keyId":{"type":"string","description":"The id of the master key (CMK).\n\n\u003e **NOTE:** The minimum interval for creating a Alikms key version is 7 days.\n"},"keyVersionId":{"type":"string","description":"The id of the Alikms key version.\n"}},"required":["keyId","keyVersionId"],"inputProperties":{"keyId":{"type":"string","description":"The id of the master key (CMK).\n\n\u003e **NOTE:** The minimum interval for creating a Alikms key version is 7 days.\n","willReplaceOnChanges":true}},"requiredInputs":["keyId"],"stateInputs":{"description":"Input properties used for looking up and filtering KeyVersion resources.\n","properties":{"keyId":{"type":"string","description":"The id of the master key (CMK).\n\n\u003e **NOTE:** The minimum interval for creating a Alikms key version is 7 days.\n","willReplaceOnChanges":true},"keyVersionId":{"type":"string","description":"The id of the Alikms key version.\n"}},"type":"object"}},"alicloud:kms/networkRule:NetworkRule":{"description":"Provides a KMS Network Rule resource. Network rules that can be bound by Application Access Point's policies.\n\nFor information about KMS Network Rule and how to use it, see [What is Network Rule](https://www.alibabacloud.com/help/zh/key-management-service/latest/api-createnetworkrule).\n\n\u003e **NOTE:** Available since v1.210.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.kms.NetworkRule(\"default\", {\n    description: \"example-description\",\n    sourcePrivateIps: [\n        \"10.10.10.10/24\",\n        \"192.168.17.13\",\n        \"100.177.24.254\",\n    ],\n    networkRuleName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.kms.NetworkRule(\"default\",\n    description=\"example-description\",\n    source_private_ips=[\n        \"10.10.10.10/24\",\n        \"192.168.17.13\",\n        \"100.177.24.254\",\n    ],\n    network_rule_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Kms.NetworkRule(\"default\", new()\n    {\n        Description = \"example-description\",\n        SourcePrivateIps = new[]\n        {\n            \"10.10.10.10/24\",\n            \"192.168.17.13\",\n            \"100.177.24.254\",\n        },\n        NetworkRuleName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := kms.NewNetworkRule(ctx, \"default\", \u0026kms.NetworkRuleArgs{\n\t\t\tDescription: pulumi.String(\"example-description\"),\n\t\t\tSourcePrivateIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.10.10.10/24\"),\n\t\t\t\tpulumi.String(\"192.168.17.13\"),\n\t\t\t\tpulumi.String(\"100.177.24.254\"),\n\t\t\t},\n\t\t\tNetworkRuleName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.NetworkRule;\nimport com.pulumi.alicloud.kms.NetworkRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new NetworkRule(\"default\", NetworkRuleArgs.builder()\n            .description(\"example-description\")\n            .sourcePrivateIps(            \n                \"10.10.10.10/24\",\n                \"192.168.17.13\",\n                \"100.177.24.254\")\n            .networkRuleName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:kms:NetworkRule\n    properties:\n      description: example-description\n      sourcePrivateIps:\n        - 10.10.10.10/24\n        - 192.168.17.13\n        - 100.177.24.254\n      networkRuleName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nKMS Network Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:kms/networkRule:NetworkRule example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"Description.\n"},"networkRuleName":{"type":"string","description":"Network Rule Name.\n"},"sourcePrivateIps":{"type":"array","items":{"type":"string"},"description":"Allowed private network addresses.\n"}},"required":["networkRuleName","sourcePrivateIps"],"inputProperties":{"description":{"type":"string","description":"Description.\n"},"networkRuleName":{"type":"string","description":"Network Rule Name.\n","willReplaceOnChanges":true},"sourcePrivateIps":{"type":"array","items":{"type":"string"},"description":"Allowed private network addresses.\n"}},"requiredInputs":["sourcePrivateIps"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkRule resources.\n","properties":{"description":{"type":"string","description":"Description.\n"},"networkRuleName":{"type":"string","description":"Network Rule Name.\n","willReplaceOnChanges":true},"sourcePrivateIps":{"type":"array","items":{"type":"string"},"description":"Allowed private network addresses.\n"}},"type":"object"}},"alicloud:kms/policy:Policy":{"description":"Provides a KMS Policy resource. Permission policies which can be bound to the Application Access Points.\n\nFor information about KMS Policy and how to use it, see [What is Policy](https://www.alibabacloud.com/help/zh/key-management-service/latest/api-createpolicy).\n\n\u003e **NOTE:** Available since v1.210.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst networkRule1 = new alicloud.kms.NetworkRule(\"networkRule1\", {\n    description: \"dummy\",\n    sourcePrivateIps: [\"10.10.10.10\"],\n    networkRuleName: std.format({\n        input: \"%s1\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst networkRule2 = new alicloud.kms.NetworkRule(\"networkRule2\", {\n    description: \"dummy\",\n    sourcePrivateIps: [\"10.10.10.10\"],\n    networkRuleName: std.format({\n        input: \"%s2\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst networkRule3 = new alicloud.kms.NetworkRule(\"networkRule3\", {\n    description: \"dummy\",\n    sourcePrivateIps: [\"10.10.10.10\"],\n    networkRuleName: std.format({\n        input: \"%s3\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst _default = new alicloud.kms.Policy(\"default\", {\n    description: \"terraformpolicy\",\n    permissions: [\n        \"RbacPermission/Template/CryptoServiceKeyUser\",\n        \"RbacPermission/Template/CryptoServiceSecretUser\",\n    ],\n    resources: [\n        \"secret/*\",\n        \"key/*\",\n    ],\n    policyName: name,\n    kmsInstanceId: \"shared\",\n    accessControlRules: `  {\n      \\\\\"NetworkRules\\\\\":[\n          \\\\\"alicloud_kms_network_rule.networkRule1.network_rule_name\\\\\"\n      ]\n  }\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nnetwork_rule1 = alicloud.kms.NetworkRule(\"networkRule1\",\n    description=\"dummy\",\n    source_private_ips=[\"10.10.10.10\"],\n    network_rule_name=std.format(input=\"%s1\",\n        args=[name]).result)\nnetwork_rule2 = alicloud.kms.NetworkRule(\"networkRule2\",\n    description=\"dummy\",\n    source_private_ips=[\"10.10.10.10\"],\n    network_rule_name=std.format(input=\"%s2\",\n        args=[name]).result)\nnetwork_rule3 = alicloud.kms.NetworkRule(\"networkRule3\",\n    description=\"dummy\",\n    source_private_ips=[\"10.10.10.10\"],\n    network_rule_name=std.format(input=\"%s3\",\n        args=[name]).result)\ndefault = alicloud.kms.Policy(\"default\",\n    description=\"terraformpolicy\",\n    permissions=[\n        \"RbacPermission/Template/CryptoServiceKeyUser\",\n        \"RbacPermission/Template/CryptoServiceSecretUser\",\n    ],\n    resources=[\n        \"secret/*\",\n        \"key/*\",\n    ],\n    policy_name=name,\n    kms_instance_id=\"shared\",\n    access_control_rules=\"\"\"  {\n      \\\"NetworkRules\\\":[\n          \\\"alicloud_kms_network_rule.networkRule1.network_rule_name\\\"\n      ]\n  }\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var networkRule1 = new AliCloud.Kms.NetworkRule(\"networkRule1\", new()\n    {\n        Description = \"dummy\",\n        SourcePrivateIps = new[]\n        {\n            \"10.10.10.10\",\n        },\n        NetworkRuleName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var networkRule2 = new AliCloud.Kms.NetworkRule(\"networkRule2\", new()\n    {\n        Description = \"dummy\",\n        SourcePrivateIps = new[]\n        {\n            \"10.10.10.10\",\n        },\n        NetworkRuleName = Std.Format.Invoke(new()\n        {\n            Input = \"%s2\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var networkRule3 = new AliCloud.Kms.NetworkRule(\"networkRule3\", new()\n    {\n        Description = \"dummy\",\n        SourcePrivateIps = new[]\n        {\n            \"10.10.10.10\",\n        },\n        NetworkRuleName = Std.Format.Invoke(new()\n        {\n            Input = \"%s3\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var @default = new AliCloud.Kms.Policy(\"default\", new()\n    {\n        Description = \"terraformpolicy\",\n        Permissions = new[]\n        {\n            \"RbacPermission/Template/CryptoServiceKeyUser\",\n            \"RbacPermission/Template/CryptoServiceSecretUser\",\n        },\n        Resources = new[]\n        {\n            \"secret/*\",\n            \"key/*\",\n        },\n        PolicyName = name,\n        KmsInstanceId = \"shared\",\n        AccessControlRules = @\"  {\n      \\\"\"NetworkRules\\\"\":[\n          \\\"\"alicloud_kms_network_rule.networkRule1.network_rule_name\\\"\"\n      ]\n  }\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kms.NewNetworkRule(ctx, \"networkRule1\", \u0026kms.NetworkRuleArgs{\n\t\t\tDescription: pulumi.String(\"dummy\"),\n\t\t\tSourcePrivateIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.10.10.10\"),\n\t\t\t},\n\t\t\tNetworkRuleName: pulumi.String(invokeFormat.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s2\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kms.NewNetworkRule(ctx, \"networkRule2\", \u0026kms.NetworkRuleArgs{\n\t\t\tDescription: pulumi.String(\"dummy\"),\n\t\t\tSourcePrivateIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.10.10.10\"),\n\t\t\t},\n\t\t\tNetworkRuleName: pulumi.String(invokeFormat1.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat2, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s3\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kms.NewNetworkRule(ctx, \"networkRule3\", \u0026kms.NetworkRuleArgs{\n\t\t\tDescription: pulumi.String(\"dummy\"),\n\t\t\tSourcePrivateIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.10.10.10\"),\n\t\t\t},\n\t\t\tNetworkRuleName: pulumi.String(invokeFormat2.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kms.NewPolicy(ctx, \"default\", \u0026kms.PolicyArgs{\n\t\t\tDescription: pulumi.String(\"terraformpolicy\"),\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"RbacPermission/Template/CryptoServiceKeyUser\"),\n\t\t\t\tpulumi.String(\"RbacPermission/Template/CryptoServiceSecretUser\"),\n\t\t\t},\n\t\t\tResources: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"secret/*\"),\n\t\t\t\tpulumi.String(\"key/*\"),\n\t\t\t},\n\t\t\tPolicyName:    pulumi.String(name),\n\t\t\tKmsInstanceId: pulumi.String(\"shared\"),\n\t\t\tAccessControlRules: pulumi.String(`  {\n      \\\"NetworkRules\\\":[\n          \\\"alicloud_kms_network_rule.networkRule1.network_rule_name\\\"\n      ]\n  }\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.NetworkRule;\nimport com.pulumi.alicloud.kms.NetworkRuleArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.kms.Policy;\nimport com.pulumi.alicloud.kms.PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var networkRule1 = new NetworkRule(\"networkRule1\", NetworkRuleArgs.builder()\n            .description(\"dummy\")\n            .sourcePrivateIps(\"10.10.10.10\")\n            .networkRuleName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var networkRule2 = new NetworkRule(\"networkRule2\", NetworkRuleArgs.builder()\n            .description(\"dummy\")\n            .sourcePrivateIps(\"10.10.10.10\")\n            .networkRuleName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s2\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var networkRule3 = new NetworkRule(\"networkRule3\", NetworkRuleArgs.builder()\n            .description(\"dummy\")\n            .sourcePrivateIps(\"10.10.10.10\")\n            .networkRuleName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s3\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var default_ = new Policy(\"default\", PolicyArgs.builder()\n            .description(\"terraformpolicy\")\n            .permissions(            \n                \"RbacPermission/Template/CryptoServiceKeyUser\",\n                \"RbacPermission/Template/CryptoServiceSecretUser\")\n            .resources(            \n                \"secret/*\",\n                \"key/*\")\n            .policyName(name)\n            .kmsInstanceId(\"shared\")\n            .accessControlRules(\"\"\"\n  {\n      \\\"NetworkRules\\\":[\n          \\\"alicloud_kms_network_rule.networkRule1.network_rule_name\\\"\n      ]\n  }\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  networkRule1:\n    type: alicloud:kms:NetworkRule\n    properties:\n      description: dummy\n      sourcePrivateIps:\n        - 10.10.10.10\n      networkRuleName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1'\n            args:\n              - ${name}\n          return: result\n  networkRule2:\n    type: alicloud:kms:NetworkRule\n    properties:\n      description: dummy\n      sourcePrivateIps:\n        - 10.10.10.10\n      networkRuleName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s2'\n            args:\n              - ${name}\n          return: result\n  networkRule3:\n    type: alicloud:kms:NetworkRule\n    properties:\n      description: dummy\n      sourcePrivateIps:\n        - 10.10.10.10\n      networkRuleName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s3'\n            args:\n              - ${name}\n          return: result\n  default:\n    type: alicloud:kms:Policy\n    properties:\n      description: terraformpolicy\n      permissions:\n        - RbacPermission/Template/CryptoServiceKeyUser\n        - RbacPermission/Template/CryptoServiceSecretUser\n      resources:\n        - secret/*\n        - key/*\n      policyName: ${name}\n      kmsInstanceId: shared\n      accessControlRules: |2\n          {\n              \\\"NetworkRules\\\":[\n                  \\\"alicloud_kms_network_rule.networkRule1.network_rule_name\\\"\n              ]\n          }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nKMS Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:kms/policy:Policy example \u003cid\u003e\n```\n\n","properties":{"accessControlRules":{"type":"string","description":"Network Rules in JSON struct.\n"},"description":{"type":"string","description":"Description.\n"},"kmsInstanceId":{"type":"string","description":"KMS instance .\n"},"permissions":{"type":"array","items":{"type":"string"},"description":"Allowed permissions (RBAC)Optional values:\"RbacPermission/Template/CryptoServiceKeyUser\" and \"RbacPermission/Template/CryptoServiceSecretUser\".\n"},"policyName":{"type":"string","description":"Policy Name.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"The resources that the permission policy allows to access.Use \"key/${KeyId}\" or \"key/*\"  to specify a key or all keys.Use \"secret/${SecretName}\" or \"secret/*\" to specify a secret or all secrets.\n"}},"required":["accessControlRules","kmsInstanceId","permissions","policyName","resources"],"inputProperties":{"accessControlRules":{"type":"string","description":"Network Rules in JSON struct.\n"},"description":{"type":"string","description":"Description.\n"},"kmsInstanceId":{"type":"string","description":"KMS instance .\n","willReplaceOnChanges":true},"permissions":{"type":"array","items":{"type":"string"},"description":"Allowed permissions (RBAC)Optional values:\"RbacPermission/Template/CryptoServiceKeyUser\" and \"RbacPermission/Template/CryptoServiceSecretUser\".\n"},"policyName":{"type":"string","description":"Policy Name.\n","willReplaceOnChanges":true},"resources":{"type":"array","items":{"type":"string"},"description":"The resources that the permission policy allows to access.Use \"key/${KeyId}\" or \"key/*\"  to specify a key or all keys.Use \"secret/${SecretName}\" or \"secret/*\" to specify a secret or all secrets.\n"}},"requiredInputs":["accessControlRules","kmsInstanceId","permissions","policyName","resources"],"stateInputs":{"description":"Input properties used for looking up and filtering Policy resources.\n","properties":{"accessControlRules":{"type":"string","description":"Network Rules in JSON struct.\n"},"description":{"type":"string","description":"Description.\n"},"kmsInstanceId":{"type":"string","description":"KMS instance .\n","willReplaceOnChanges":true},"permissions":{"type":"array","items":{"type":"string"},"description":"Allowed permissions (RBAC)Optional values:\"RbacPermission/Template/CryptoServiceKeyUser\" and \"RbacPermission/Template/CryptoServiceSecretUser\".\n"},"policyName":{"type":"string","description":"Policy Name.\n","willReplaceOnChanges":true},"resources":{"type":"array","items":{"type":"string"},"description":"The resources that the permission policy allows to access.Use \"key/${KeyId}\" or \"key/*\"  to specify a key or all keys.Use \"secret/${SecretName}\" or \"secret/*\" to specify a secret or all secrets.\n"}},"type":"object"}},"alicloud:kms/secret:Secret":{"description":"Provides a KMS Secret resource.\n\nFor information about KMS Secret and how to use it, see [What is Secret](https://www.alibabacloud.com/help/en/kms/developer-reference/api-createsecret).\n\n\u003e **NOTE:** Available since v1.76.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.kms.Secret(\"default\", {\n    secretName: name,\n    secretData: \"Secret data\",\n    versionId: \"v1\",\n    forceDeleteWithoutRecovery: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.kms.Secret(\"default\",\n    secret_name=name,\n    secret_data=\"Secret data\",\n    version_id=\"v1\",\n    force_delete_without_recovery=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Kms.Secret(\"default\", new()\n    {\n        SecretName = name,\n        SecretData = \"Secret data\",\n        VersionId = \"v1\",\n        ForceDeleteWithoutRecovery = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := kms.NewSecret(ctx, \"default\", \u0026kms.SecretArgs{\n\t\t\tSecretName:                 pulumi.String(name),\n\t\t\tSecretData:                 pulumi.String(\"Secret data\"),\n\t\t\tVersionId:                  pulumi.String(\"v1\"),\n\t\t\tForceDeleteWithoutRecovery: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.Secret;\nimport com.pulumi.alicloud.kms.SecretArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Secret(\"default\", SecretArgs.builder()\n            .secretName(name)\n            .secretData(\"Secret data\")\n            .versionId(\"v1\")\n            .forceDeleteWithoutRecovery(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:kms:Secret\n    properties:\n      secretName: ${name}\n      secretData: Secret data\n      versionId: v1\n      forceDeleteWithoutRecovery: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nKMS Secret can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:kms/secret:Secret example \u003cid\u003e\n```\n\n","properties":{"arn":{"type":"string","description":"The ARN of the secret.\n"},"createTime":{"type":"string","description":"(Available since v1.224.0) The time when the secret is created.\n"},"description":{"type":"string","description":"The description of the secret.\n"},"dkmsInstanceId":{"type":"string","description":"The ID of the KMS instance.\n"},"enableAutomaticRotation":{"type":"boolean","description":"Specifies whether to enable automatic rotation. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"encryptionKeyId":{"type":"string","description":"The ID of the KMS key.\n"},"extendedConfig":{"type":"string","description":"The extended configuration of the secret. For more information, see [How to use it](https://www.alibabacloud.com/help/en/key-management-service/latest/kms-createsecret).\n"},"forceDeleteWithoutRecovery":{"type":"boolean","description":"Specifies whether to immediately delete a secret. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"plannedDeleteTime":{"type":"string","description":"The time when the secret is scheduled to be deleted.\n"},"policy":{"type":"string","description":"The content of the secret policy. The value is in the JSON format. The value can be up to 32,768 bytes in length. For more information, see [How to use it](https://www.alibabacloud.com/help/en/kms/developer-reference/api-setsecretpolicy).\n"},"recoveryWindowInDays":{"type":"integer","description":"Specifies the recovery period of the secret if you do not forcibly delete it. Unit: Days. Default value: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e. **NOTE:**  If \u003cspan pulumi-lang-nodejs=\"`forceDeleteWithoutRecovery`\" pulumi-lang-dotnet=\"`ForceDeleteWithoutRecovery`\" pulumi-lang-go=\"`forceDeleteWithoutRecovery`\" pulumi-lang-python=\"`force_delete_without_recovery`\" pulumi-lang-yaml=\"`forceDeleteWithoutRecovery`\" pulumi-lang-java=\"`forceDeleteWithoutRecovery`\"\u003e`force_delete_without_recovery`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`recoveryWindowInDays`\" pulumi-lang-dotnet=\"`RecoveryWindowInDays`\" pulumi-lang-go=\"`recoveryWindowInDays`\" pulumi-lang-python=\"`recovery_window_in_days`\" pulumi-lang-yaml=\"`recoveryWindowInDays`\" pulumi-lang-java=\"`recoveryWindowInDays`\"\u003e`recovery_window_in_days`\u003c/span\u003e will be ignored.\n"},"rotationInterval":{"type":"string","description":"The interval for automatic rotation. For more information, see [How to use it](https://www.alibabacloud.com/help/en/key-management-service/latest/kms-createsecret).\n"},"secretData":{"type":"string","description":"The data of the secret. **NOTE:** From version 1.204.1, \u003cspan pulumi-lang-nodejs=\"`secretData`\" pulumi-lang-dotnet=\"`SecretData`\" pulumi-lang-go=\"`secretData`\" pulumi-lang-python=\"`secret_data`\" pulumi-lang-yaml=\"`secretData`\" pulumi-lang-java=\"`secretData`\"\u003e`secret_data`\u003c/span\u003e updating diff will be ignored when \u003cspan pulumi-lang-nodejs=\"`secretType`\" pulumi-lang-dotnet=\"`SecretType`\" pulumi-lang-go=\"`secretType`\" pulumi-lang-python=\"`secret_type`\" pulumi-lang-yaml=\"`secretType`\" pulumi-lang-java=\"`secretType`\"\u003e`secret_type`\u003c/span\u003e is not `Generic`.\n","secret":true},"secretDataType":{"type":"string","description":"The type of the secret value. Default value: \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`binary`\" pulumi-lang-dotnet=\"`Binary`\" pulumi-lang-go=\"`binary`\" pulumi-lang-python=\"`binary`\" pulumi-lang-yaml=\"`binary`\" pulumi-lang-java=\"`binary`\"\u003e`binary`\u003c/span\u003e.\n"},"secretName":{"type":"string","description":"The name of the secret. For more information, see [How to use it](https://www.alibabacloud.com/help/en/key-management-service/latest/kms-createsecret).\n"},"secretType":{"type":"string","description":"The type of the secret. Valid values:\n- `Generic`: Generic secret.\n- `Rds`: ApsaraDB RDS secret.\n- `Redis`: (Available since v1.253.0) ApsaraDB for Redis secret.\n- `RAMCredentials`: RAM secret.\n- `ECS`: ECS secret.\n- `PolarDB`: (Available since v1.253.0) PolarDB secret.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"versionId":{"type":"string","description":"The version number of the initial version.\n"},"versionStages":{"type":"array","items":{"type":"string"},"description":"The stage label that is used to mark the new version.\n"}},"required":["arn","createTime","plannedDeleteTime","policy","secretData","secretName","secretType","versionId","versionStages"],"inputProperties":{"description":{"type":"string","description":"The description of the secret.\n"},"dkmsInstanceId":{"type":"string","description":"The ID of the KMS instance.\n","willReplaceOnChanges":true},"enableAutomaticRotation":{"type":"boolean","description":"Specifies whether to enable automatic rotation. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"encryptionKeyId":{"type":"string","description":"The ID of the KMS key.\n","willReplaceOnChanges":true},"extendedConfig":{"type":"string","description":"The extended configuration of the secret. For more information, see [How to use it](https://www.alibabacloud.com/help/en/key-management-service/latest/kms-createsecret).\n","willReplaceOnChanges":true},"forceDeleteWithoutRecovery":{"type":"boolean","description":"Specifies whether to immediately delete a secret. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"policy":{"type":"string","description":"The content of the secret policy. The value is in the JSON format. The value can be up to 32,768 bytes in length. For more information, see [How to use it](https://www.alibabacloud.com/help/en/kms/developer-reference/api-setsecretpolicy).\n"},"recoveryWindowInDays":{"type":"integer","description":"Specifies the recovery period of the secret if you do not forcibly delete it. Unit: Days. Default value: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e. **NOTE:**  If \u003cspan pulumi-lang-nodejs=\"`forceDeleteWithoutRecovery`\" pulumi-lang-dotnet=\"`ForceDeleteWithoutRecovery`\" pulumi-lang-go=\"`forceDeleteWithoutRecovery`\" pulumi-lang-python=\"`force_delete_without_recovery`\" pulumi-lang-yaml=\"`forceDeleteWithoutRecovery`\" pulumi-lang-java=\"`forceDeleteWithoutRecovery`\"\u003e`force_delete_without_recovery`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`recoveryWindowInDays`\" pulumi-lang-dotnet=\"`RecoveryWindowInDays`\" pulumi-lang-go=\"`recoveryWindowInDays`\" pulumi-lang-python=\"`recovery_window_in_days`\" pulumi-lang-yaml=\"`recoveryWindowInDays`\" pulumi-lang-java=\"`recoveryWindowInDays`\"\u003e`recovery_window_in_days`\u003c/span\u003e will be ignored.\n"},"rotationInterval":{"type":"string","description":"The interval for automatic rotation. For more information, see [How to use it](https://www.alibabacloud.com/help/en/key-management-service/latest/kms-createsecret).\n"},"secretData":{"type":"string","description":"The data of the secret. **NOTE:** From version 1.204.1, \u003cspan pulumi-lang-nodejs=\"`secretData`\" pulumi-lang-dotnet=\"`SecretData`\" pulumi-lang-go=\"`secretData`\" pulumi-lang-python=\"`secret_data`\" pulumi-lang-yaml=\"`secretData`\" pulumi-lang-java=\"`secretData`\"\u003e`secret_data`\u003c/span\u003e updating diff will be ignored when \u003cspan pulumi-lang-nodejs=\"`secretType`\" pulumi-lang-dotnet=\"`SecretType`\" pulumi-lang-go=\"`secretType`\" pulumi-lang-python=\"`secret_type`\" pulumi-lang-yaml=\"`secretType`\" pulumi-lang-java=\"`secretType`\"\u003e`secret_type`\u003c/span\u003e is not `Generic`.\n","secret":true},"secretDataType":{"type":"string","description":"The type of the secret value. Default value: \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`binary`\" pulumi-lang-dotnet=\"`Binary`\" pulumi-lang-go=\"`binary`\" pulumi-lang-python=\"`binary`\" pulumi-lang-yaml=\"`binary`\" pulumi-lang-java=\"`binary`\"\u003e`binary`\u003c/span\u003e.\n"},"secretName":{"type":"string","description":"The name of the secret. For more information, see [How to use it](https://www.alibabacloud.com/help/en/key-management-service/latest/kms-createsecret).\n","willReplaceOnChanges":true},"secretType":{"type":"string","description":"The type of the secret. Valid values:\n- `Generic`: Generic secret.\n- `Rds`: ApsaraDB RDS secret.\n- `Redis`: (Available since v1.253.0) ApsaraDB for Redis secret.\n- `RAMCredentials`: RAM secret.\n- `ECS`: ECS secret.\n- `PolarDB`: (Available since v1.253.0) PolarDB secret.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"versionId":{"type":"string","description":"The version number of the initial version.\n"},"versionStages":{"type":"array","items":{"type":"string"},"description":"The stage label that is used to mark the new version.\n"}},"requiredInputs":["secretData","secretName","versionId"],"stateInputs":{"description":"Input properties used for looking up and filtering Secret resources.\n","properties":{"arn":{"type":"string","description":"The ARN of the secret.\n"},"createTime":{"type":"string","description":"(Available since v1.224.0) The time when the secret is created.\n"},"description":{"type":"string","description":"The description of the secret.\n"},"dkmsInstanceId":{"type":"string","description":"The ID of the KMS instance.\n","willReplaceOnChanges":true},"enableAutomaticRotation":{"type":"boolean","description":"Specifies whether to enable automatic rotation. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"encryptionKeyId":{"type":"string","description":"The ID of the KMS key.\n","willReplaceOnChanges":true},"extendedConfig":{"type":"string","description":"The extended configuration of the secret. For more information, see [How to use it](https://www.alibabacloud.com/help/en/key-management-service/latest/kms-createsecret).\n","willReplaceOnChanges":true},"forceDeleteWithoutRecovery":{"type":"boolean","description":"Specifies whether to immediately delete a secret. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"plannedDeleteTime":{"type":"string","description":"The time when the secret is scheduled to be deleted.\n"},"policy":{"type":"string","description":"The content of the secret policy. The value is in the JSON format. The value can be up to 32,768 bytes in length. For more information, see [How to use it](https://www.alibabacloud.com/help/en/kms/developer-reference/api-setsecretpolicy).\n"},"recoveryWindowInDays":{"type":"integer","description":"Specifies the recovery period of the secret if you do not forcibly delete it. Unit: Days. Default value: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e. **NOTE:**  If \u003cspan pulumi-lang-nodejs=\"`forceDeleteWithoutRecovery`\" pulumi-lang-dotnet=\"`ForceDeleteWithoutRecovery`\" pulumi-lang-go=\"`forceDeleteWithoutRecovery`\" pulumi-lang-python=\"`force_delete_without_recovery`\" pulumi-lang-yaml=\"`forceDeleteWithoutRecovery`\" pulumi-lang-java=\"`forceDeleteWithoutRecovery`\"\u003e`force_delete_without_recovery`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`recoveryWindowInDays`\" pulumi-lang-dotnet=\"`RecoveryWindowInDays`\" pulumi-lang-go=\"`recoveryWindowInDays`\" pulumi-lang-python=\"`recovery_window_in_days`\" pulumi-lang-yaml=\"`recoveryWindowInDays`\" pulumi-lang-java=\"`recoveryWindowInDays`\"\u003e`recovery_window_in_days`\u003c/span\u003e will be ignored.\n"},"rotationInterval":{"type":"string","description":"The interval for automatic rotation. For more information, see [How to use it](https://www.alibabacloud.com/help/en/key-management-service/latest/kms-createsecret).\n"},"secretData":{"type":"string","description":"The data of the secret. **NOTE:** From version 1.204.1, \u003cspan pulumi-lang-nodejs=\"`secretData`\" pulumi-lang-dotnet=\"`SecretData`\" pulumi-lang-go=\"`secretData`\" pulumi-lang-python=\"`secret_data`\" pulumi-lang-yaml=\"`secretData`\" pulumi-lang-java=\"`secretData`\"\u003e`secret_data`\u003c/span\u003e updating diff will be ignored when \u003cspan pulumi-lang-nodejs=\"`secretType`\" pulumi-lang-dotnet=\"`SecretType`\" pulumi-lang-go=\"`secretType`\" pulumi-lang-python=\"`secret_type`\" pulumi-lang-yaml=\"`secretType`\" pulumi-lang-java=\"`secretType`\"\u003e`secret_type`\u003c/span\u003e is not `Generic`.\n","secret":true},"secretDataType":{"type":"string","description":"The type of the secret value. Default value: \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`binary`\" pulumi-lang-dotnet=\"`Binary`\" pulumi-lang-go=\"`binary`\" pulumi-lang-python=\"`binary`\" pulumi-lang-yaml=\"`binary`\" pulumi-lang-java=\"`binary`\"\u003e`binary`\u003c/span\u003e.\n"},"secretName":{"type":"string","description":"The name of the secret. For more information, see [How to use it](https://www.alibabacloud.com/help/en/key-management-service/latest/kms-createsecret).\n","willReplaceOnChanges":true},"secretType":{"type":"string","description":"The type of the secret. Valid values:\n- `Generic`: Generic secret.\n- `Rds`: ApsaraDB RDS secret.\n- `Redis`: (Available since v1.253.0) ApsaraDB for Redis secret.\n- `RAMCredentials`: RAM secret.\n- `ECS`: ECS secret.\n- `PolarDB`: (Available since v1.253.0) PolarDB secret.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"versionId":{"type":"string","description":"The version number of the initial version.\n"},"versionStages":{"type":"array","items":{"type":"string"},"description":"The stage label that is used to mark the new version.\n"}},"type":"object"}},"alicloud:kms/valueAddedService:ValueAddedService":{"description":"Provides a KMS Value Added Service resource.\n\nValue Added Service.\n\nFor information about KMS Value Added Service and how to use it, see [What is Value Added Service](https://next.api.alibabacloud.com/document/BssOpenApi/2017-12-14/CreateInstance).\n\n\u003e **NOTE:** Available since v1.267.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.kms.ValueAddedService(\"default\", {\n    valueAddedService: \"2\",\n    period: 1,\n    paymentType: \"Subscription\",\n    renewPeriod: 1,\n    renewStatus: \"AutoRenewal\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.kms.ValueAddedService(\"default\",\n    value_added_service=\"2\",\n    period=1,\n    payment_type=\"Subscription\",\n    renew_period=1,\n    renew_status=\"AutoRenewal\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Kms.ValueAddedService(\"default\", new()\n    {\n        ServiceType = \"2\",\n        Period = 1,\n        PaymentType = \"Subscription\",\n        RenewPeriod = 1,\n        RenewStatus = \"AutoRenewal\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := kms.NewValueAddedService(ctx, \"default\", \u0026kms.ValueAddedServiceArgs{\n\t\t\tValueAddedService: pulumi.String(\"2\"),\n\t\t\tPeriod:            pulumi.Int(1),\n\t\t\tPaymentType:       pulumi.String(\"Subscription\"),\n\t\t\tRenewPeriod:       pulumi.Int(1),\n\t\t\tRenewStatus:       pulumi.String(\"AutoRenewal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.ValueAddedService;\nimport com.pulumi.alicloud.kms.ValueAddedServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ValueAddedService(\"default\", ValueAddedServiceArgs.builder()\n            .valueAddedService(\"2\")\n            .period(1)\n            .paymentType(\"Subscription\")\n            .renewPeriod(1)\n            .renewStatus(\"AutoRenewal\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:kms:ValueAddedService\n    properties:\n      valueAddedService: '2'\n      period: '1'\n      paymentType: Subscription\n      renewPeriod: '1'\n      renewStatus: AutoRenewal\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nKMS Value Added Service can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:kms/valueAddedService:ValueAddedService example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"paymentType":{"type":"string","description":"The payment type of the resource\n"},"period":{"type":"integer","description":"Prepaid cycle. Unit for year\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period, in years.\n\n\u003e **NOTE:**  When setting `RenewalStatus` to `AutoRenewal`, it must be set.\n"},"renewStatus":{"type":"string","description":"The renewal status of the specified instance. Valid values:\n\n- AutoRenewal: The instance is automatically renewed.\n- ManualRenewal: The instance is manually renewed.\n- NotRenewal: The instance is not renewed.\n"},"status":{"type":"string","description":"The status of the resource\n"},"valueAddedService":{"type":"string","description":"value added service type, Instance Backup 1 default key rotation 2 Expert service 3\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n","language":{"csharp":{"name":"ServiceType"}}}},"required":["createTime","paymentType","regionId","status"],"inputProperties":{"paymentType":{"type":"string","description":"The payment type of the resource\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Prepaid cycle. Unit for year\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period, in years.\n\n\u003e **NOTE:**  When setting `RenewalStatus` to `AutoRenewal`, it must be set.\n"},"renewStatus":{"type":"string","description":"The renewal status of the specified instance. Valid values:\n\n- AutoRenewal: The instance is automatically renewed.\n- ManualRenewal: The instance is manually renewed.\n- NotRenewal: The instance is not renewed.\n"},"valueAddedService":{"type":"string","description":"value added service type, Instance Backup 1 default key rotation 2 Expert service 3\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n","language":{"csharp":{"name":"ServiceType"}}}},"requiredInputs":["paymentType"],"stateInputs":{"description":"Input properties used for looking up and filtering ValueAddedService resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"paymentType":{"type":"string","description":"The payment type of the resource\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Prepaid cycle. Unit for year\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period, in years.\n\n\u003e **NOTE:**  When setting `RenewalStatus` to `AutoRenewal`, it must be set.\n"},"renewStatus":{"type":"string","description":"The renewal status of the specified instance. Valid values:\n\n- AutoRenewal: The instance is automatically renewed.\n- ManualRenewal: The instance is manually renewed.\n- NotRenewal: The instance is not renewed.\n"},"status":{"type":"string","description":"The status of the resource\n"},"valueAddedService":{"type":"string","description":"value added service type, Instance Backup 1 default key rotation 2 Expert service 3\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n","language":{"csharp":{"name":"ServiceType"}}}},"type":"object"}},"alicloud:kvstore/account:Account":{"description":"Provides a Tair (Redis OSS-Compatible) And Memcache (KVStore) Account resource.\n\n\n\nFor information about Tair (Redis OSS-Compatible) And Memcache (KVStore) Account and how to use it, see [What is Account](https://www.alibabacloud.com/help/en/redis/developer-reference/api-r-kvstore-2015-01-01-createaccount-redis).\n\n\u003e **NOTE:** Available since v1.66.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.kvstore.getZones({});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultInstance = new alicloud.kvstore.Instance(\"default\", {\n    dbInstanceName: name,\n    vswitchId: defaultSwitch.id,\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.ids?.[0]),\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceClass: \"redis.master.large.default\",\n    instanceType: \"Redis\",\n    engineVersion: \"5.0\",\n    securityIps: [\"10.23.12.24\"],\n    config: {\n        appendonly: \"yes\",\n        \"lazyfree-lazy-eviction\": \"yes\",\n    },\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst defaultAccount = new alicloud.kvstore.Account(\"default\", {\n    accountName: \"tfexamplename\",\n    accountPassword: \"YourPassword_123\",\n    instanceId: defaultInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.kvstore.get_zones()\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_instance = alicloud.kvstore.Instance(\"default\",\n    db_instance_name=name,\n    vswitch_id=default_switch.id,\n    resource_group_id=default_get_resource_groups.ids[0],\n    zone_id=default.zones[0].id,\n    instance_class=\"redis.master.large.default\",\n    instance_type=\"Redis\",\n    engine_version=\"5.0\",\n    security_ips=[\"10.23.12.24\"],\n    config={\n        \"appendonly\": \"yes\",\n        \"lazyfree-lazy-eviction\": \"yes\",\n    },\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\ndefault_account = alicloud.kvstore.Account(\"default\",\n    account_name=\"tfexamplename\",\n    account_password=\"YourPassword_123\",\n    instance_id=default_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.KVStore.GetZones.Invoke();\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultInstance = new AliCloud.KVStore.Instance(\"default\", new()\n    {\n        DbInstanceName = name,\n        VswitchId = defaultSwitch.Id,\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0]),\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceClass = \"redis.master.large.default\",\n        InstanceType = \"Redis\",\n        EngineVersion = \"5.0\",\n        SecurityIps = new[]\n        {\n            \"10.23.12.24\",\n        },\n        Config = \n        {\n            { \"appendonly\", \"yes\" },\n            { \"lazyfree-lazy-eviction\", \"yes\" },\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var defaultAccount = new AliCloud.KVStore.Account(\"default\", new()\n    {\n        AccountName = \"tfexamplename\",\n        AccountPassword = \"YourPassword_123\",\n        InstanceId = defaultInstance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := kvstore.GetZones(ctx, \u0026kvstore.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := kvstore.NewInstance(ctx, \"default\", \u0026kvstore.InstanceArgs{\n\t\t\tDbInstanceName:  pulumi.String(name),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Ids[0]),\n\t\t\tZoneId:          pulumi.String(_default.Zones[0].Id),\n\t\t\tInstanceClass:   pulumi.String(\"redis.master.large.default\"),\n\t\t\tInstanceType:    pulumi.String(\"Redis\"),\n\t\t\tEngineVersion:   pulumi.String(\"5.0\"),\n\t\t\tSecurityIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.23.12.24\"),\n\t\t\t},\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"appendonly\":             pulumi.String(\"yes\"),\n\t\t\t\t\"lazyfree-lazy-eviction\": pulumi.String(\"yes\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kvstore.NewAccount(ctx, \"default\", \u0026kvstore.AccountArgs{\n\t\t\tAccountName:     pulumi.String(\"tfexamplename\"),\n\t\t\tAccountPassword: pulumi.String(\"YourPassword_123\"),\n\t\t\tInstanceId:      defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kvstore.KvstoreFunctions;\nimport com.pulumi.alicloud.kvstore.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.kvstore.Instance;\nimport com.pulumi.alicloud.kvstore.InstanceArgs;\nimport com.pulumi.alicloud.kvstore.Account;\nimport com.pulumi.alicloud.kvstore.AccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = KvstoreFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .dbInstanceName(name)\n            .vswitchId(defaultSwitch.id())\n            .resourceGroupId(defaultGetResourceGroups.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .instanceClass(\"redis.master.large.default\")\n            .instanceType(\"Redis\")\n            .engineVersion(\"5.0\")\n            .securityIps(\"10.23.12.24\")\n            .config(Map.ofEntries(\n                Map.entry(\"appendonly\", \"yes\"),\n                Map.entry(\"lazyfree-lazy-eviction\", \"yes\")\n            ))\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var defaultAccount = new Account(\"defaultAccount\", AccountArgs.builder()\n            .accountName(\"tfexamplename\")\n            .accountPassword(\"YourPassword_123\")\n            .instanceId(defaultInstance.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultInstance:\n    type: alicloud:kvstore:Instance\n    name: default\n    properties:\n      dbInstanceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      resourceGroupId: ${defaultGetResourceGroups.ids[0]}\n      zoneId: ${default.zones[0].id}\n      instanceClass: redis.master.large.default\n      instanceType: Redis\n      engineVersion: '5.0'\n      securityIps:\n        - 10.23.12.24\n      config:\n        appendonly: yes\n        lazyfree-lazy-eviction: yes\n      tags:\n        Created: TF\n        For: example\n  defaultAccount:\n    type: alicloud:kvstore:Account\n    name: default\n    properties:\n      accountName: tfexamplename\n      accountPassword: YourPassword_123\n      instanceId: ${defaultInstance.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:kvstore:getZones\n      arguments: {}\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nTair (Redis OSS-Compatible) And Memcache (KVStore) Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:kvstore/account:Account example \u003cinstance_id\u003e:\u003caccount_name\u003e\n```\n\n","properties":{"accountName":{"type":"string","description":"The name of the account. The name must meet the following requirements:\n* The name must start with a lowercase letter and can contain lowercase letters, digits, and underscores (_).\n* The name can be up to 100 characters in length.\n* The name cannot be one of the reserved words listed in the [Reserved words for Redis account names](https://www.alibabacloud.com/help/en/redis/user-guide/create-and-manage-database-accounts) section.\n"},"accountPassword":{"type":"string","description":"The password of the account. The password must be 8 to 32 characters in length. It must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include `!@ # $ % ^ \u0026 * ( ) _ + - =`. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","secret":true},"accountPrivilege":{"type":"string","description":"The privilege of account access database. Default value: `RoleReadWrite` \n- `RoleReadOnly`: This value is only for Redis and Memcache\n- `RoleReadWrite`: This value is only for Redis and Memcache\n"},"accountType":{"type":"string","description":"Privilege type of account.\n- Normal: Common privilege.\nDefault to Normal.\n"},"description":{"type":"string","description":"Database description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.\n"},"instanceId":{"type":"string","description":"The Id of instance in which account belongs (The engine version of instance must be 4.0 or 4.0+).\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a Tair (Redis OSS-Compatible) And Memcache (KVStore) account. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a Tair (Redis OSS-Compatible) And Memcache (KVStore) account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"status":{"type":"string","description":"The status of Tair (Redis OSS-Compatible) And Memcache (KVStore) Account.\n"}},"required":["accountName","accountPrivilege","accountType","instanceId","status"],"inputProperties":{"accountName":{"type":"string","description":"The name of the account. The name must meet the following requirements:\n* The name must start with a lowercase letter and can contain lowercase letters, digits, and underscores (_).\n* The name can be up to 100 characters in length.\n* The name cannot be one of the reserved words listed in the [Reserved words for Redis account names](https://www.alibabacloud.com/help/en/redis/user-guide/create-and-manage-database-accounts) section.\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"The password of the account. The password must be 8 to 32 characters in length. It must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include `!@ # $ % ^ \u0026 * ( ) _ + - =`. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","secret":true},"accountPrivilege":{"type":"string","description":"The privilege of account access database. Default value: `RoleReadWrite` \n- `RoleReadOnly`: This value is only for Redis and Memcache\n- `RoleReadWrite`: This value is only for Redis and Memcache\n"},"accountType":{"type":"string","description":"Privilege type of account.\n- Normal: Common privilege.\nDefault to Normal.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Database description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.\n"},"instanceId":{"type":"string","description":"The Id of instance in which account belongs (The engine version of instance must be 4.0 or 4.0+).\n","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a Tair (Redis OSS-Compatible) And Memcache (KVStore) account. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a Tair (Redis OSS-Compatible) And Memcache (KVStore) account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"}},"requiredInputs":["accountName","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Account resources.\n","properties":{"accountName":{"type":"string","description":"The name of the account. The name must meet the following requirements:\n* The name must start with a lowercase letter and can contain lowercase letters, digits, and underscores (_).\n* The name can be up to 100 characters in length.\n* The name cannot be one of the reserved words listed in the [Reserved words for Redis account names](https://www.alibabacloud.com/help/en/redis/user-guide/create-and-manage-database-accounts) section.\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"The password of the account. The password must be 8 to 32 characters in length. It must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include `!@ # $ % ^ \u0026 * ( ) _ + - =`. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","secret":true},"accountPrivilege":{"type":"string","description":"The privilege of account access database. Default value: `RoleReadWrite` \n- `RoleReadOnly`: This value is only for Redis and Memcache\n- `RoleReadWrite`: This value is only for Redis and Memcache\n"},"accountType":{"type":"string","description":"Privilege type of account.\n- Normal: Common privilege.\nDefault to Normal.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Database description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.\n"},"instanceId":{"type":"string","description":"The Id of instance in which account belongs (The engine version of instance must be 4.0 or 4.0+).\n","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a Tair (Redis OSS-Compatible) And Memcache (KVStore) account. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a Tair (Redis OSS-Compatible) And Memcache (KVStore) account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"status":{"type":"string","description":"The status of Tair (Redis OSS-Compatible) And Memcache (KVStore) Account.\n"}},"type":"object"}},"alicloud:kvstore/auditLogConfig:AuditLogConfig":{"description":"Provides a Tair (Redis OSS-Compatible) And Memcache (KVStore) Audit Log Config resource.\n\n\u003e **NOTE:** Available since v1.130.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.kvstore.getZones({});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultInstance = new alicloud.kvstore.Instance(\"default\", {\n    dbInstanceName: name,\n    vswitchId: defaultSwitch.id,\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.ids?.[0]),\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceClass: \"redis.master.large.default\",\n    instanceType: \"Redis\",\n    engineVersion: \"5.0\",\n    securityIps: [\"10.23.12.24\"],\n    config: {\n        appendonly: \"yes\",\n        \"lazyfree-lazy-eviction\": \"yes\",\n    },\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst example = new alicloud.kvstore.AuditLogConfig(\"example\", {\n    instanceId: defaultInstance.id,\n    dbAudit: true,\n    retention: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.kvstore.get_zones()\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_instance = alicloud.kvstore.Instance(\"default\",\n    db_instance_name=name,\n    vswitch_id=default_switch.id,\n    resource_group_id=default_get_resource_groups.ids[0],\n    zone_id=default.zones[0].id,\n    instance_class=\"redis.master.large.default\",\n    instance_type=\"Redis\",\n    engine_version=\"5.0\",\n    security_ips=[\"10.23.12.24\"],\n    config={\n        \"appendonly\": \"yes\",\n        \"lazyfree-lazy-eviction\": \"yes\",\n    },\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\nexample = alicloud.kvstore.AuditLogConfig(\"example\",\n    instance_id=default_instance.id,\n    db_audit=True,\n    retention=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.KVStore.GetZones.Invoke();\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultInstance = new AliCloud.KVStore.Instance(\"default\", new()\n    {\n        DbInstanceName = name,\n        VswitchId = defaultSwitch.Id,\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0]),\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceClass = \"redis.master.large.default\",\n        InstanceType = \"Redis\",\n        EngineVersion = \"5.0\",\n        SecurityIps = new[]\n        {\n            \"10.23.12.24\",\n        },\n        Config = \n        {\n            { \"appendonly\", \"yes\" },\n            { \"lazyfree-lazy-eviction\", \"yes\" },\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var example = new AliCloud.KVStore.AuditLogConfig(\"example\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        DbAudit = true,\n        Retention = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := kvstore.GetZones(ctx, \u0026kvstore.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := kvstore.NewInstance(ctx, \"default\", \u0026kvstore.InstanceArgs{\n\t\t\tDbInstanceName:  pulumi.String(name),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Ids[0]),\n\t\t\tZoneId:          pulumi.String(_default.Zones[0].Id),\n\t\t\tInstanceClass:   pulumi.String(\"redis.master.large.default\"),\n\t\t\tInstanceType:    pulumi.String(\"Redis\"),\n\t\t\tEngineVersion:   pulumi.String(\"5.0\"),\n\t\t\tSecurityIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.23.12.24\"),\n\t\t\t},\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"appendonly\":             pulumi.String(\"yes\"),\n\t\t\t\t\"lazyfree-lazy-eviction\": pulumi.String(\"yes\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kvstore.NewAuditLogConfig(ctx, \"example\", \u0026kvstore.AuditLogConfigArgs{\n\t\t\tInstanceId: defaultInstance.ID(),\n\t\t\tDbAudit:    pulumi.Bool(true),\n\t\t\tRetention:  pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kvstore.KvstoreFunctions;\nimport com.pulumi.alicloud.kvstore.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.kvstore.Instance;\nimport com.pulumi.alicloud.kvstore.InstanceArgs;\nimport com.pulumi.alicloud.kvstore.AuditLogConfig;\nimport com.pulumi.alicloud.kvstore.AuditLogConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = KvstoreFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .dbInstanceName(name)\n            .vswitchId(defaultSwitch.id())\n            .resourceGroupId(defaultGetResourceGroups.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .instanceClass(\"redis.master.large.default\")\n            .instanceType(\"Redis\")\n            .engineVersion(\"5.0\")\n            .securityIps(\"10.23.12.24\")\n            .config(Map.ofEntries(\n                Map.entry(\"appendonly\", \"yes\"),\n                Map.entry(\"lazyfree-lazy-eviction\", \"yes\")\n            ))\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var example = new AuditLogConfig(\"example\", AuditLogConfigArgs.builder()\n            .instanceId(defaultInstance.id())\n            .dbAudit(true)\n            .retention(1)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultInstance:\n    type: alicloud:kvstore:Instance\n    name: default\n    properties:\n      dbInstanceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      resourceGroupId: ${defaultGetResourceGroups.ids[0]}\n      zoneId: ${default.zones[0].id}\n      instanceClass: redis.master.large.default\n      instanceType: Redis\n      engineVersion: '5.0'\n      securityIps:\n        - 10.23.12.24\n      config:\n        appendonly: yes\n        lazyfree-lazy-eviction: yes\n      tags:\n        Created: TF\n        For: example\n  example:\n    type: alicloud:kvstore:AuditLogConfig\n    properties:\n      instanceId: ${defaultInstance.id}\n      dbAudit: true\n      retention: 1\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:kvstore:getZones\n      arguments: {}\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nTair (Redis OSS-Compatible) And Memcache (KVStore) Audit Log Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:kvstore/auditLogConfig:AuditLogConfig example \u003cinstance_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"Instance Creation Time.\n"},"dbAudit":{"type":"boolean","description":"Indicates Whether to Enable the Audit Log.  Valid value: \n* true: Default Value, Open.\n* false: Closed.\n\nNote: When the Instance for the Cluster Architecture Or Read/Write Split Architecture, at the Same Time to Open Or Close the Data Node and the Proxy Node of the Audit Log Doesn't Support Separate Open.\n"},"instanceId":{"type":"string","description":"Instance ID, Call the Describeinstances Get.\n"},"retention":{"type":"integer","description":"Audit Log Retention Period Value: 1~365. \n\n\u003e **NOTE:** When the Instance dbaudit Value Is Set to True, This Parameter Entry into Force. The Parameter Setting of the Current Region of All a Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance for a Data Entry into Force.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"required":["createTime","instanceId","status"],"inputProperties":{"dbAudit":{"type":"boolean","description":"Indicates Whether to Enable the Audit Log.  Valid value: \n* true: Default Value, Open.\n* false: Closed.\n\nNote: When the Instance for the Cluster Architecture Or Read/Write Split Architecture, at the Same Time to Open Or Close the Data Node and the Proxy Node of the Audit Log Doesn't Support Separate Open.\n"},"instanceId":{"type":"string","description":"Instance ID, Call the Describeinstances Get.\n","willReplaceOnChanges":true},"retention":{"type":"integer","description":"Audit Log Retention Period Value: 1~365. \n\n\u003e **NOTE:** When the Instance dbaudit Value Is Set to True, This Parameter Entry into Force. The Parameter Setting of the Current Region of All a Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance for a Data Entry into Force.\n"}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering AuditLogConfig resources.\n","properties":{"createTime":{"type":"string","description":"Instance Creation Time.\n"},"dbAudit":{"type":"boolean","description":"Indicates Whether to Enable the Audit Log.  Valid value: \n* true: Default Value, Open.\n* false: Closed.\n\nNote: When the Instance for the Cluster Architecture Or Read/Write Split Architecture, at the Same Time to Open Or Close the Data Node and the Proxy Node of the Audit Log Doesn't Support Separate Open.\n"},"instanceId":{"type":"string","description":"Instance ID, Call the Describeinstances Get.\n","willReplaceOnChanges":true},"retention":{"type":"integer","description":"Audit Log Retention Period Value: 1~365. \n\n\u003e **NOTE:** When the Instance dbaudit Value Is Set to True, This Parameter Entry into Force. The Parameter Setting of the Current Region of All a Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance for a Data Entry into Force.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object"}},"alicloud:kvstore/backupPolicy:BackupPolicy":{"description":"Provides a Backup Policy for Tair (Redis OSS-Compatible) And Memcache (KVStore) resource.\n\nFor information about Backup Policy for Tair (Redis OSS-Compatible) And Memcache (KVStore) and how to use it, see [What is Backup Policy](https://www.alibabacloud.com/help/en/redis/developer-reference/api-r-kvstore-2015-01-01-modifybackuppolicy-redis).\n\n\u003e **NOTE:** Available since v1.15.0.\n\n\u003e **DEPRECATED:**  This resource  has been deprecated from version `1.104.0`. Please use resource alicloud_kvstore_instance.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.kvstore.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultInstance = new alicloud.kvstore.Instance(\"default\", {\n    dbInstanceName: name,\n    vswitchId: defaultSwitch.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceClass: \"redis.master.large.default\",\n    instanceType: \"Redis\",\n    engineVersion: \"5.0\",\n    securityIps: [\"10.23.12.24\"],\n    config: {\n        appendonly: \"yes\",\n        \"lazyfree-lazy-eviction\": \"yes\",\n    },\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst defaultBackupPolicy = new alicloud.kvstore.BackupPolicy(\"default\", {\n    instanceId: defaultInstance.id,\n    backupPeriods: [\n        \"Tuesday\",\n        \"Wednesday\",\n    ],\n    backupTime: \"10:00Z-11:00Z\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.kvstore.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_instance = alicloud.kvstore.Instance(\"default\",\n    db_instance_name=name,\n    vswitch_id=default_switch.id,\n    zone_id=default.zones[0].id,\n    instance_class=\"redis.master.large.default\",\n    instance_type=\"Redis\",\n    engine_version=\"5.0\",\n    security_ips=[\"10.23.12.24\"],\n    config={\n        \"appendonly\": \"yes\",\n        \"lazyfree-lazy-eviction\": \"yes\",\n    },\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\ndefault_backup_policy = alicloud.kvstore.BackupPolicy(\"default\",\n    instance_id=default_instance.id,\n    backup_periods=[\n        \"Tuesday\",\n        \"Wednesday\",\n    ],\n    backup_time=\"10:00Z-11:00Z\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.KVStore.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultInstance = new AliCloud.KVStore.Instance(\"default\", new()\n    {\n        DbInstanceName = name,\n        VswitchId = defaultSwitch.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceClass = \"redis.master.large.default\",\n        InstanceType = \"Redis\",\n        EngineVersion = \"5.0\",\n        SecurityIps = new[]\n        {\n            \"10.23.12.24\",\n        },\n        Config = \n        {\n            { \"appendonly\", \"yes\" },\n            { \"lazyfree-lazy-eviction\", \"yes\" },\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var defaultBackupPolicy = new AliCloud.KVStore.BackupPolicy(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        BackupPeriods = new[]\n        {\n            \"Tuesday\",\n            \"Wednesday\",\n        },\n        BackupTime = \"10:00Z-11:00Z\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := kvstore.GetZones(ctx, \u0026kvstore.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := kvstore.NewInstance(ctx, \"default\", \u0026kvstore.InstanceArgs{\n\t\t\tDbInstanceName: pulumi.String(name),\n\t\t\tVswitchId:      defaultSwitch.ID(),\n\t\t\tZoneId:         pulumi.String(_default.Zones[0].Id),\n\t\t\tInstanceClass:  pulumi.String(\"redis.master.large.default\"),\n\t\t\tInstanceType:   pulumi.String(\"Redis\"),\n\t\t\tEngineVersion:  pulumi.String(\"5.0\"),\n\t\t\tSecurityIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.23.12.24\"),\n\t\t\t},\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"appendonly\":             pulumi.String(\"yes\"),\n\t\t\t\t\"lazyfree-lazy-eviction\": pulumi.String(\"yes\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kvstore.NewBackupPolicy(ctx, \"default\", \u0026kvstore.BackupPolicyArgs{\n\t\t\tInstanceId: defaultInstance.ID(),\n\t\t\tBackupPeriods: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Tuesday\"),\n\t\t\t\tpulumi.String(\"Wednesday\"),\n\t\t\t},\n\t\t\tBackupTime: pulumi.String(\"10:00Z-11:00Z\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kvstore.KvstoreFunctions;\nimport com.pulumi.alicloud.kvstore.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.kvstore.Instance;\nimport com.pulumi.alicloud.kvstore.InstanceArgs;\nimport com.pulumi.alicloud.kvstore.BackupPolicy;\nimport com.pulumi.alicloud.kvstore.BackupPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = KvstoreFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .dbInstanceName(name)\n            .vswitchId(defaultSwitch.id())\n            .zoneId(default_.zones()[0].id())\n            .instanceClass(\"redis.master.large.default\")\n            .instanceType(\"Redis\")\n            .engineVersion(\"5.0\")\n            .securityIps(\"10.23.12.24\")\n            .config(Map.ofEntries(\n                Map.entry(\"appendonly\", \"yes\"),\n                Map.entry(\"lazyfree-lazy-eviction\", \"yes\")\n            ))\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var defaultBackupPolicy = new BackupPolicy(\"defaultBackupPolicy\", BackupPolicyArgs.builder()\n            .instanceId(defaultInstance.id())\n            .backupPeriods(            \n                \"Tuesday\",\n                \"Wednesday\")\n            .backupTime(\"10:00Z-11:00Z\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultInstance:\n    type: alicloud:kvstore:Instance\n    name: default\n    properties:\n      dbInstanceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      zoneId: ${default.zones[0].id}\n      instanceClass: redis.master.large.default\n      instanceType: Redis\n      engineVersion: '5.0'\n      securityIps:\n        - 10.23.12.24\n      config:\n        appendonly: yes\n        lazyfree-lazy-eviction: yes\n      tags:\n        Created: TF\n        For: example\n  defaultBackupPolicy:\n    type: alicloud:kvstore:BackupPolicy\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      backupPeriods:\n        - Tuesday\n        - Wednesday\n      backupTime: 10:00Z-11:00Z\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:kvstore:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nTair (Redis OSS-Compatible) And Memcache (KVStore) Backup Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:kvstore/backupPolicy:BackupPolicy example \u003cid\u003e\n```\n\n","properties":{"backupPeriods":{"type":"array","items":{"type":"string"},"description":"Backup Cycle. Allowed values: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.\n"},"backupTime":{"type":"string","description":"Backup time, in the format of HH:mmZ- HH:mm Z.\n"},"instanceId":{"type":"string","description":"The id of Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance.\n"}},"required":["backupPeriods","instanceId"],"inputProperties":{"backupPeriods":{"type":"array","items":{"type":"string"},"description":"Backup Cycle. Allowed values: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.\n"},"backupTime":{"type":"string","description":"Backup time, in the format of HH:mmZ- HH:mm Z.\n"},"instanceId":{"type":"string","description":"The id of Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering BackupPolicy resources.\n","properties":{"backupPeriods":{"type":"array","items":{"type":"string"},"description":"Backup Cycle. Allowed values: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.\n"},"backupTime":{"type":"string","description":"Backup time, in the format of HH:mmZ- HH:mm Z.\n"},"instanceId":{"type":"string","description":"The id of Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:kvstore/connection:Connection":{"description":"Operate the public network ip of the specified resource. How to use it, see [What is Connection](https://www.alibabacloud.com/help/en/redis/developer-reference/api-r-kvstore-2015-01-01-allocateinstancepublicconnection-redis).\n\n\u003e **NOTE:** Available since v1.101.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.kvstore.getZones({});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultInstance = new alicloud.kvstore.Instance(\"default\", {\n    dbInstanceName: name,\n    vswitchId: defaultSwitch.id,\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.ids?.[0]),\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceClass: \"redis.master.large.default\",\n    instanceType: \"Redis\",\n    engineVersion: \"5.0\",\n    securityIps: [\"10.23.12.24\"],\n    config: {\n        appendonly: \"yes\",\n        \"lazyfree-lazy-eviction\": \"yes\",\n    },\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst defaultConnection = new alicloud.kvstore.Connection(\"default\", {\n    connectionStringPrefix: \"exampleconnection\",\n    instanceId: defaultInstance.id,\n    port: \"6370\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.kvstore.get_zones()\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_instance = alicloud.kvstore.Instance(\"default\",\n    db_instance_name=name,\n    vswitch_id=default_switch.id,\n    resource_group_id=default_get_resource_groups.ids[0],\n    zone_id=default.zones[0].id,\n    instance_class=\"redis.master.large.default\",\n    instance_type=\"Redis\",\n    engine_version=\"5.0\",\n    security_ips=[\"10.23.12.24\"],\n    config={\n        \"appendonly\": \"yes\",\n        \"lazyfree-lazy-eviction\": \"yes\",\n    },\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\ndefault_connection = alicloud.kvstore.Connection(\"default\",\n    connection_string_prefix=\"exampleconnection\",\n    instance_id=default_instance.id,\n    port=\"6370\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.KVStore.GetZones.Invoke();\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultInstance = new AliCloud.KVStore.Instance(\"default\", new()\n    {\n        DbInstanceName = name,\n        VswitchId = defaultSwitch.Id,\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0]),\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceClass = \"redis.master.large.default\",\n        InstanceType = \"Redis\",\n        EngineVersion = \"5.0\",\n        SecurityIps = new[]\n        {\n            \"10.23.12.24\",\n        },\n        Config = \n        {\n            { \"appendonly\", \"yes\" },\n            { \"lazyfree-lazy-eviction\", \"yes\" },\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var defaultConnection = new AliCloud.KVStore.Connection(\"default\", new()\n    {\n        ConnectionStringPrefix = \"exampleconnection\",\n        InstanceId = defaultInstance.Id,\n        Port = \"6370\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := kvstore.GetZones(ctx, \u0026kvstore.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := kvstore.NewInstance(ctx, \"default\", \u0026kvstore.InstanceArgs{\n\t\t\tDbInstanceName:  pulumi.String(name),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Ids[0]),\n\t\t\tZoneId:          pulumi.String(_default.Zones[0].Id),\n\t\t\tInstanceClass:   pulumi.String(\"redis.master.large.default\"),\n\t\t\tInstanceType:    pulumi.String(\"Redis\"),\n\t\t\tEngineVersion:   pulumi.String(\"5.0\"),\n\t\t\tSecurityIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.23.12.24\"),\n\t\t\t},\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"appendonly\":             pulumi.String(\"yes\"),\n\t\t\t\t\"lazyfree-lazy-eviction\": pulumi.String(\"yes\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kvstore.NewConnection(ctx, \"default\", \u0026kvstore.ConnectionArgs{\n\t\t\tConnectionStringPrefix: pulumi.String(\"exampleconnection\"),\n\t\t\tInstanceId:             defaultInstance.ID(),\n\t\t\tPort:                   pulumi.String(\"6370\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kvstore.KvstoreFunctions;\nimport com.pulumi.alicloud.kvstore.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.kvstore.Instance;\nimport com.pulumi.alicloud.kvstore.InstanceArgs;\nimport com.pulumi.alicloud.kvstore.Connection;\nimport com.pulumi.alicloud.kvstore.ConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = KvstoreFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .dbInstanceName(name)\n            .vswitchId(defaultSwitch.id())\n            .resourceGroupId(defaultGetResourceGroups.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .instanceClass(\"redis.master.large.default\")\n            .instanceType(\"Redis\")\n            .engineVersion(\"5.0\")\n            .securityIps(\"10.23.12.24\")\n            .config(Map.ofEntries(\n                Map.entry(\"appendonly\", \"yes\"),\n                Map.entry(\"lazyfree-lazy-eviction\", \"yes\")\n            ))\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var defaultConnection = new Connection(\"defaultConnection\", ConnectionArgs.builder()\n            .connectionStringPrefix(\"exampleconnection\")\n            .instanceId(defaultInstance.id())\n            .port(\"6370\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultInstance:\n    type: alicloud:kvstore:Instance\n    name: default\n    properties:\n      dbInstanceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      resourceGroupId: ${defaultGetResourceGroups.ids[0]}\n      zoneId: ${default.zones[0].id}\n      instanceClass: redis.master.large.default\n      instanceType: Redis\n      engineVersion: '5.0'\n      securityIps:\n        - 10.23.12.24\n      config:\n        appendonly: yes\n        lazyfree-lazy-eviction: yes\n      tags:\n        Created: TF\n        For: example\n  defaultConnection:\n    type: alicloud:kvstore:Connection\n    name: default\n    properties:\n      connectionStringPrefix: exampleconnection\n      instanceId: ${defaultInstance.id}\n      port: '6370'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:kvstore:getZones\n      arguments: {}\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nTair (Redis OSS-Compatible) And Memcache (KVStore) connection can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:kvstore/connection:Connection example r-abc12345678\n```\n\n","properties":{"connectionString":{"type":"string","description":"The public connection string of Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance.\n"},"connectionStringPrefix":{"type":"string","description":"The prefix of the public endpoint. The prefix can be 8 to 64 characters in length, and can contain lowercase letters and digits. It must start with a lowercase letter.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"port":{"type":"string","description":"The service port number of the instance.\n"}},"required":["connectionString","connectionStringPrefix","instanceId","port"],"inputProperties":{"connectionStringPrefix":{"type":"string","description":"The prefix of the public endpoint. The prefix can be 8 to 64 characters in length, and can contain lowercase letters and digits. It must start with a lowercase letter.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"port":{"type":"string","description":"The service port number of the instance.\n"}},"requiredInputs":["connectionStringPrefix","instanceId","port"],"stateInputs":{"description":"Input properties used for looking up and filtering Connection resources.\n","properties":{"connectionString":{"type":"string","description":"The public connection string of Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance.\n"},"connectionStringPrefix":{"type":"string","description":"The prefix of the public endpoint. The prefix can be 8 to 64 characters in length, and can contain lowercase letters and digits. It must start with a lowercase letter.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"port":{"type":"string","description":"The service port number of the instance.\n"}},"type":"object"}},"alicloud:kvstore/instance:Instance":{"description":"Provides  Tair (Redis OSS-Compatible) And Memcache (KVStore) Classic Instance resource. A DB instance is an isolated database environment in the cloud. It support be associated with IP whitelists and backup configuration which are separate resource providers. For information about Alicloud KVStore DBInstance more and how to use it, see [What is Resource Alicloud KVStore DBInstance](https://www.alibabacloud.com/help/en/redis/developer-reference/api-r-kvstore-2015-01-01-createinstances-redis).\n\n\u003e **NOTE:** Available since v1.14.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultGetZones = alicloud.kvstore.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultInstance = new alicloud.kvstore.Instance(\"default\", {\n    dbInstanceName: name,\n    vswitchId: defaultSwitch.id,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n    instanceClass: \"redis.master.large.default\",\n    instanceType: \"Redis\",\n    engineVersion: \"5.0\",\n    securityIps: [\"10.23.12.24\"],\n    config: {\n        appendonly: \"yes\",\n        \"lazyfree-lazy-eviction\": \"yes\",\n    },\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_get_zones = alicloud.kvstore.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_instance = alicloud.kvstore.Instance(\"default\",\n    db_instance_name=name,\n    vswitch_id=default_switch.id,\n    resource_group_id=default.ids[0],\n    zone_id=default_get_zones.zones[0].id,\n    instance_class=\"redis.master.large.default\",\n    instance_type=\"Redis\",\n    engine_version=\"5.0\",\n    security_ips=[\"10.23.12.24\"],\n    config={\n        \"appendonly\": \"yes\",\n        \"lazyfree-lazy-eviction\": \"yes\",\n    },\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultGetZones = AliCloud.KVStore.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultInstance = new AliCloud.KVStore.Instance(\"default\", new()\n    {\n        DbInstanceName = name,\n        VswitchId = defaultSwitch.Id,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceClass = \"redis.master.large.default\",\n        InstanceType = \"Redis\",\n        EngineVersion = \"5.0\",\n        SecurityIps = new[]\n        {\n            \"10.23.12.24\",\n        },\n        Config = \n        {\n            { \"appendonly\", \"yes\" },\n            { \"lazyfree-lazy-eviction\", \"yes\" },\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := kvstore.GetZones(ctx, \u0026kvstore.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kvstore.NewInstance(ctx, \"default\", \u0026kvstore.InstanceArgs{\n\t\t\tDbInstanceName:  pulumi.String(name),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\tResourceGroupId: pulumi.String(_default.Ids[0]),\n\t\t\tZoneId:          pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\tInstanceClass:   pulumi.String(\"redis.master.large.default\"),\n\t\t\tInstanceType:    pulumi.String(\"Redis\"),\n\t\t\tEngineVersion:   pulumi.String(\"5.0\"),\n\t\t\tSecurityIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.23.12.24\"),\n\t\t\t},\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"appendonly\":             pulumi.String(\"yes\"),\n\t\t\t\t\"lazyfree-lazy-eviction\": pulumi.String(\"yes\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.kvstore.KvstoreFunctions;\nimport com.pulumi.alicloud.kvstore.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.kvstore.Instance;\nimport com.pulumi.alicloud.kvstore.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        final var defaultGetZones = KvstoreFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .dbInstanceName(name)\n            .vswitchId(defaultSwitch.id())\n            .resourceGroupId(default_.ids()[0])\n            .zoneId(defaultGetZones.zones()[0].id())\n            .instanceClass(\"redis.master.large.default\")\n            .instanceType(\"Redis\")\n            .engineVersion(\"5.0\")\n            .securityIps(\"10.23.12.24\")\n            .config(Map.ofEntries(\n                Map.entry(\"appendonly\", \"yes\"),\n                Map.entry(\"lazyfree-lazy-eviction\", \"yes\")\n            ))\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  defaultInstance:\n    type: alicloud:kvstore:Instance\n    name: default\n    properties:\n      dbInstanceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      resourceGroupId: ${default.ids[0]}\n      zoneId: ${defaultGetZones.zones[0].id}\n      instanceClass: redis.master.large.default\n      instanceType: Redis\n      engineVersion: '5.0'\n      securityIps:\n        - 10.23.12.24\n      config:\n        appendonly: yes\n        lazyfree-lazy-eviction: yes\n      tags:\n        Created: TF\n        For: example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:kvstore:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nLaunching a PrePaid instance\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example-prepaid\";\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultGetZones = alicloud.kvstore.getZones({\n    instanceChargeType: \"PrePaid\",\n});\n// PrePaid instance can not deleted and there suggests using an existing vpc and vswitch, like default vpc.\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    isDefault: true,\n});\nconst defaultGetSwitches = Promise.all([defaultGetZones, defaultGetNetworks]).then(([defaultGetZones, defaultGetNetworks]) =\u003e alicloud.vpc.getSwitches({\n    zoneId: defaultGetZones.zones?.[0]?.id,\n    vpcId: defaultGetNetworks.ids?.[0],\n}));\nconst defaultInstance = new alicloud.kvstore.Instance(\"default\", {\n    dbInstanceName: name,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n    secondaryZoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[1]?.id),\n    instanceClass: \"redis.master.large.default\",\n    instanceType: \"Redis\",\n    engineVersion: \"5.0\",\n    paymentType: \"PrePaid\",\n    period: \"12\",\n    securityIps: [\"10.23.12.24\"],\n    config: {\n        appendonly: \"no\",\n        \"lazyfree-lazy-eviction\": \"no\",\n        EvictionPolicy: \"volatile-lru\",\n    },\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example-prepaid\"\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_get_zones = alicloud.kvstore.get_zones(instance_charge_type=\"PrePaid\")\n# PrePaid instance can not deleted and there suggests using an existing vpc and vswitch, like default vpc.\ndefault_get_networks = alicloud.vpc.get_networks(is_default=True)\ndefault_get_switches = alicloud.vpc.get_switches(zone_id=default_get_zones.zones[0].id,\n    vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.kvstore.Instance(\"default\",\n    db_instance_name=name,\n    vswitch_id=default_get_switches.ids[0],\n    resource_group_id=default.ids[0],\n    zone_id=default_get_zones.zones[0].id,\n    secondary_zone_id=default_get_zones.zones[1].id,\n    instance_class=\"redis.master.large.default\",\n    instance_type=\"Redis\",\n    engine_version=\"5.0\",\n    payment_type=\"PrePaid\",\n    period=\"12\",\n    security_ips=[\"10.23.12.24\"],\n    config={\n        \"appendonly\": \"no\",\n        \"lazyfree-lazy-eviction\": \"no\",\n        \"EvictionPolicy\": \"volatile-lru\",\n    },\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example-prepaid\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultGetZones = AliCloud.KVStore.GetZones.Invoke(new()\n    {\n        InstanceChargeType = \"PrePaid\",\n    });\n\n    // PrePaid instance can not deleted and there suggests using an existing vpc and vswitch, like default vpc.\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        IsDefault = true,\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.KVStore.Instance(\"default\", new()\n    {\n        DbInstanceName = name,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        SecondaryZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n        InstanceClass = \"redis.master.large.default\",\n        InstanceType = \"Redis\",\n        EngineVersion = \"5.0\",\n        PaymentType = \"PrePaid\",\n        Period = \"12\",\n        SecurityIps = new[]\n        {\n            \"10.23.12.24\",\n        },\n        Config = \n        {\n            { \"appendonly\", \"no\" },\n            { \"lazyfree-lazy-eviction\", \"no\" },\n            { \"EvictionPolicy\", \"volatile-lru\" },\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example-prepaid\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := kvstore.GetZones(ctx, \u0026kvstore.GetZonesArgs{\n\t\t\tInstanceChargeType: pulumi.StringRef(\"PrePaid\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// PrePaid instance can not deleted and there suggests using an existing vpc and vswitch, like default vpc.\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tIsDefault: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tZoneId: pulumi.StringRef(defaultGetZones.Zones[0].Id),\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kvstore.NewInstance(ctx, \"default\", \u0026kvstore.InstanceArgs{\n\t\t\tDbInstanceName:  pulumi.String(name),\n\t\t\tVswitchId:       pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tResourceGroupId: pulumi.String(_default.Ids[0]),\n\t\t\tZoneId:          pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\tSecondaryZoneId: pulumi.String(defaultGetZones.Zones[1].Id),\n\t\t\tInstanceClass:   pulumi.String(\"redis.master.large.default\"),\n\t\t\tInstanceType:    pulumi.String(\"Redis\"),\n\t\t\tEngineVersion:   pulumi.String(\"5.0\"),\n\t\t\tPaymentType:     pulumi.String(\"PrePaid\"),\n\t\t\tPeriod:          pulumi.String(\"12\"),\n\t\t\tSecurityIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.23.12.24\"),\n\t\t\t},\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"appendonly\":             pulumi.String(\"no\"),\n\t\t\t\t\"lazyfree-lazy-eviction\": pulumi.String(\"no\"),\n\t\t\t\t\"EvictionPolicy\":         pulumi.String(\"volatile-lru\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.kvstore.KvstoreFunctions;\nimport com.pulumi.alicloud.kvstore.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.kvstore.Instance;\nimport com.pulumi.alicloud.kvstore.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example-prepaid\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        final var defaultGetZones = KvstoreFunctions.getZones(GetZonesArgs.builder()\n            .instanceChargeType(\"PrePaid\")\n            .build());\n\n        // PrePaid instance can not deleted and there suggests using an existing vpc and vswitch, like default vpc.\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .isDefault(true)\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .zoneId(defaultGetZones.zones()[0].id())\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .dbInstanceName(name)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .resourceGroupId(default_.ids()[0])\n            .zoneId(defaultGetZones.zones()[0].id())\n            .secondaryZoneId(defaultGetZones.zones()[1].id())\n            .instanceClass(\"redis.master.large.default\")\n            .instanceType(\"Redis\")\n            .engineVersion(\"5.0\")\n            .paymentType(\"PrePaid\")\n            .period(\"12\")\n            .securityIps(\"10.23.12.24\")\n            .config(Map.ofEntries(\n                Map.entry(\"appendonly\", \"no\"),\n                Map.entry(\"lazyfree-lazy-eviction\", \"no\"),\n                Map.entry(\"EvictionPolicy\", \"volatile-lru\")\n            ))\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example-prepaid\nresources:\n  defaultInstance:\n    type: alicloud:kvstore:Instance\n    name: default\n    properties:\n      dbInstanceName: ${name}\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      resourceGroupId: ${default.ids[0]}\n      zoneId: ${defaultGetZones.zones[0].id}\n      secondaryZoneId: ${defaultGetZones.zones[1].id}\n      instanceClass: redis.master.large.default\n      instanceType: Redis\n      engineVersion: '5.0'\n      paymentType: PrePaid\n      period: '12'\n      securityIps:\n        - 10.23.12.24\n      config:\n        appendonly: no\n        lazyfree-lazy-eviction: no\n        EvictionPolicy: volatile-lru\n      tags:\n        Created: TF\n        For: example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:kvstore:getZones\n      arguments:\n        instanceChargeType: PrePaid\n  # PrePaid instance can not deleted and there suggests using an existing vpc and vswitch, like default vpc.\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        isDefault: true\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        zoneId: ${defaultGetZones.zones[0].id}\n        vpcId: ${defaultGetNetworks.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nSetting Private Connection String\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example-with-connection\";\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultGetZones = alicloud.kvstore.getZones({\n    productType: \"OnECS\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultInstance = new alicloud.kvstore.Instance(\"default\", {\n    dbInstanceName: name,\n    vswitchId: defaultSwitch.id,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n    secondaryZoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[1]?.id),\n    instanceClass: \"redis.shard.small.ce\",\n    instanceType: \"Redis\",\n    engineVersion: \"7.0\",\n    maintainStartTime: \"04:00Z\",\n    maintainEndTime: \"06:00Z\",\n    backupPeriods: [\"Wednesday\"],\n    backupTime: \"11:00Z-12:00Z\",\n    privateConnectionPrefix: \"exampleconnectionprefix\",\n    privateConnectionPort: \"4011\",\n    securityIps: [\"10.23.12.24\"],\n    config: {\n        appendonly: \"yes\",\n        \"lazyfree-lazy-eviction\": \"yes\",\n        EvictionPolicy: \"volatile-lru\",\n    },\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example-with-connection\"\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_get_zones = alicloud.kvstore.get_zones(product_type=\"OnECS\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_instance = alicloud.kvstore.Instance(\"default\",\n    db_instance_name=name,\n    vswitch_id=default_switch.id,\n    resource_group_id=default.ids[0],\n    zone_id=default_get_zones.zones[0].id,\n    secondary_zone_id=default_get_zones.zones[1].id,\n    instance_class=\"redis.shard.small.ce\",\n    instance_type=\"Redis\",\n    engine_version=\"7.0\",\n    maintain_start_time=\"04:00Z\",\n    maintain_end_time=\"06:00Z\",\n    backup_periods=[\"Wednesday\"],\n    backup_time=\"11:00Z-12:00Z\",\n    private_connection_prefix=\"exampleconnectionprefix\",\n    private_connection_port=\"4011\",\n    security_ips=[\"10.23.12.24\"],\n    config={\n        \"appendonly\": \"yes\",\n        \"lazyfree-lazy-eviction\": \"yes\",\n        \"EvictionPolicy\": \"volatile-lru\",\n    },\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example-with-connection\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultGetZones = AliCloud.KVStore.GetZones.Invoke(new()\n    {\n        ProductType = \"OnECS\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultInstance = new AliCloud.KVStore.Instance(\"default\", new()\n    {\n        DbInstanceName = name,\n        VswitchId = defaultSwitch.Id,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        SecondaryZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n        InstanceClass = \"redis.shard.small.ce\",\n        InstanceType = \"Redis\",\n        EngineVersion = \"7.0\",\n        MaintainStartTime = \"04:00Z\",\n        MaintainEndTime = \"06:00Z\",\n        BackupPeriods = new[]\n        {\n            \"Wednesday\",\n        },\n        BackupTime = \"11:00Z-12:00Z\",\n        PrivateConnectionPrefix = \"exampleconnectionprefix\",\n        PrivateConnectionPort = \"4011\",\n        SecurityIps = new[]\n        {\n            \"10.23.12.24\",\n        },\n        Config = \n        {\n            { \"appendonly\", \"yes\" },\n            { \"lazyfree-lazy-eviction\", \"yes\" },\n            { \"EvictionPolicy\", \"volatile-lru\" },\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example-with-connection\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := kvstore.GetZones(ctx, \u0026kvstore.GetZonesArgs{\n\t\t\tProductType: pulumi.StringRef(\"OnECS\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kvstore.NewInstance(ctx, \"default\", \u0026kvstore.InstanceArgs{\n\t\t\tDbInstanceName:    pulumi.String(name),\n\t\t\tVswitchId:         defaultSwitch.ID(),\n\t\t\tResourceGroupId:   pulumi.String(_default.Ids[0]),\n\t\t\tZoneId:            pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\tSecondaryZoneId:   pulumi.String(defaultGetZones.Zones[1].Id),\n\t\t\tInstanceClass:     pulumi.String(\"redis.shard.small.ce\"),\n\t\t\tInstanceType:      pulumi.String(\"Redis\"),\n\t\t\tEngineVersion:     pulumi.String(\"7.0\"),\n\t\t\tMaintainStartTime: pulumi.String(\"04:00Z\"),\n\t\t\tMaintainEndTime:   pulumi.String(\"06:00Z\"),\n\t\t\tBackupPeriods: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Wednesday\"),\n\t\t\t},\n\t\t\tBackupTime:              pulumi.String(\"11:00Z-12:00Z\"),\n\t\t\tPrivateConnectionPrefix: pulumi.String(\"exampleconnectionprefix\"),\n\t\t\tPrivateConnectionPort:   pulumi.String(\"4011\"),\n\t\t\tSecurityIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.23.12.24\"),\n\t\t\t},\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"appendonly\":             pulumi.String(\"yes\"),\n\t\t\t\t\"lazyfree-lazy-eviction\": pulumi.String(\"yes\"),\n\t\t\t\t\"EvictionPolicy\":         pulumi.String(\"volatile-lru\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.kvstore.KvstoreFunctions;\nimport com.pulumi.alicloud.kvstore.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.kvstore.Instance;\nimport com.pulumi.alicloud.kvstore.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example-with-connection\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        final var defaultGetZones = KvstoreFunctions.getZones(GetZonesArgs.builder()\n            .productType(\"OnECS\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .dbInstanceName(name)\n            .vswitchId(defaultSwitch.id())\n            .resourceGroupId(default_.ids()[0])\n            .zoneId(defaultGetZones.zones()[0].id())\n            .secondaryZoneId(defaultGetZones.zones()[1].id())\n            .instanceClass(\"redis.shard.small.ce\")\n            .instanceType(\"Redis\")\n            .engineVersion(\"7.0\")\n            .maintainStartTime(\"04:00Z\")\n            .maintainEndTime(\"06:00Z\")\n            .backupPeriods(\"Wednesday\")\n            .backupTime(\"11:00Z-12:00Z\")\n            .privateConnectionPrefix(\"exampleconnectionprefix\")\n            .privateConnectionPort(\"4011\")\n            .securityIps(\"10.23.12.24\")\n            .config(Map.ofEntries(\n                Map.entry(\"appendonly\", \"yes\"),\n                Map.entry(\"lazyfree-lazy-eviction\", \"yes\"),\n                Map.entry(\"EvictionPolicy\", \"volatile-lru\")\n            ))\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example-with-connection\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  defaultInstance:\n    type: alicloud:kvstore:Instance\n    name: default\n    properties:\n      dbInstanceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      resourceGroupId: ${default.ids[0]}\n      zoneId: ${defaultGetZones.zones[0].id}\n      secondaryZoneId: ${defaultGetZones.zones[1].id}\n      instanceClass: redis.shard.small.ce\n      instanceType: Redis\n      engineVersion: '7.0'\n      maintainStartTime: 04:00Z\n      maintainEndTime: 06:00Z\n      backupPeriods:\n        - Wednesday\n      backupTime: 11:00Z-12:00Z\n      privateConnectionPrefix: exampleconnectionprefix\n      privateConnectionPort: 4011\n      securityIps:\n        - 10.23.12.24\n      config:\n        appendonly: yes\n        lazyfree-lazy-eviction: yes\n        EvictionPolicy: volatile-lru\n      tags:\n        Created: TF\n        For: example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:kvstore:getZones\n      arguments:\n        productType: OnECS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.kvstore.Instance`\" pulumi-lang-dotnet=\"`alicloud.kvstore.Instance`\" pulumi-lang-go=\"`kvstore.Instance`\" pulumi-lang-python=\"`kvstore.Instance`\" pulumi-lang-yaml=\"`alicloud.kvstore.Instance`\" pulumi-lang-java=\"`alicloud.kvstore.Instance`\"\u003e`alicloud.kvstore.Instance`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.kvstore.Instance`\" pulumi-lang-dotnet=\"`alicloud.kvstore.Instance`\" pulumi-lang-go=\"`kvstore.Instance`\" pulumi-lang-python=\"`kvstore.Instance`\" pulumi-lang-yaml=\"`alicloud.kvstore.Instance`\" pulumi-lang-java=\"`alicloud.kvstore.Instance`\"\u003e`alicloud.kvstore.Instance`\u003c/span\u003e resource allows you to manage \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"Prepaid\"` db instance, but Terraform cannot destroy it.\nFrom version 1.201.0, deleting the subscription resource or removing it from your configuration will remove it\nfrom your state file and management, but will not destroy the DB Instance.\nYou can resume managing the subscription db instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nKVStore instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:kvstore/instance:Instance example r-abc12345678\n```\n\n","properties":{"autoRenew":{"type":"boolean","description":"Whether to renewal a KVStore DBInstance automatically or not. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `PrePaid`. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an KVStore DBInstance, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `PrePaid`. Valid values: [1~12]. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"autoUseCoupon":{"type":"boolean","description":"Specifies whether to use a coupon. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"availabilityZone":{"type":"string","description":"It has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'availability_zone' has been deprecated from version 1.101.0. Use 'zone_id' instead."},"backupId":{"type":"string","description":"The ID of the backup file of the source instance.\n"},"backupPeriods":{"type":"array","items":{"type":"string"},"description":"Backup period.\n"},"backupTime":{"type":"string","description":"Backup time, the format is HH:mmZ-HH:mmZ (UTC time).\n"},"bandwidth":{"type":"integer","description":"The total bandwidth of the instance. **NOTE:** From version 1.232.0, \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e can be set. If the instance is a cluster instance, \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e must be divisible by the number of \u003cspan pulumi-lang-nodejs=\"`shardCount`\" pulumi-lang-dotnet=\"`ShardCount`\" pulumi-lang-go=\"`shardCount`\" pulumi-lang-python=\"`shard_count`\" pulumi-lang-yaml=\"`shardCount`\" pulumi-lang-java=\"`shardCount`\"\u003e`shard_count`\u003c/span\u003e in the instance, and if the instance is a read/write splitting instance, \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e cannot be set.\n"},"businessInfo":{"type":"string","description":"The ID of the event or the business information.\n"},"capacity":{"type":"integer","description":"The storage capacity of the KVStore DBInstance. Unit: MB.\n"},"config":{"type":"object","additionalProperties":{"type":"string"},"description":"The configuration of the KVStore DBInstance. Available parameters can refer to the latest docs [Instance configurations table](https://www.alibabacloud.com/help/en/redis/user-guide/supported-parameters).\n"},"connectionDomain":{"type":"string","description":"Intranet connection address of the KVStore instance.\n"},"connectionString":{"type":"string","description":"Indicates whether the address is a private endpoint.\n","deprecationMessage":"Field 'connection_string' has been deprecated from version 1.101.0. Please use resource 'alicloud_kvstore_connection' instead."},"connectionStringPrefix":{"type":"string","description":"It has been deprecated from provider version 1.101.0 and resource \u003cspan pulumi-lang-nodejs=\"`alicloud.kvstore.Connection`\" pulumi-lang-dotnet=\"`alicloud.kvstore.Connection`\" pulumi-lang-go=\"`kvstore.Connection`\" pulumi-lang-python=\"`kvstore.Connection`\" pulumi-lang-yaml=\"`alicloud.kvstore.Connection`\" pulumi-lang-java=\"`alicloud.kvstore.Connection`\"\u003e`alicloud.kvstore.Connection`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'connection_string_prefix' has been deprecated from version 1.101.0. Please use resource 'alicloud_kvstore_connection' instead."},"couponNo":{"type":"string","description":"The coupon code. **NOTE:** The default value \u003cspan pulumi-lang-nodejs=\"`youhuiquanPromotionOptionIdForBlank`\" pulumi-lang-dotnet=\"`YouhuiquanPromotionOptionIdForBlank`\" pulumi-lang-go=\"`youhuiquanPromotionOptionIdForBlank`\" pulumi-lang-python=\"`youhuiquan_promotion_option_id_for_blank`\" pulumi-lang-yaml=\"`youhuiquanPromotionOptionIdForBlank`\" pulumi-lang-java=\"`youhuiquanPromotionOptionIdForBlank`\"\u003e`youhuiquan_promotion_option_id_for_blank`\u003c/span\u003e removed since v1.216.0, this can cause your status file to change even if it has not been modified, so please review your change plan before apply change plan.\n"},"dbInstanceName":{"type":"string","description":"The name of KVStore DBInstance. It is a string of 2 to 256 characters.\n"},"dedicatedHostGroupId":{"type":"string","description":"The ID of the dedicated cluster. This parameter is required when you create a Tair (Redis OSS-Compatible) And Memcache (KVStore) Classic Instance in a dedicated cluster.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to precheck the request. Valid values:\n"},"effectiveTime":{"type":"string","description":"The time when the database is switched after the instance is migrated, or when the major version is upgraded, or when the instance class is upgraded. Valid values:\n- `Immediately` (Default): The configurations are immediately changed.\n- `MaintainTime`: The configurations are changed within the maintenance window. You can set \u003cspan pulumi-lang-nodejs=\"`maintainStartTime`\" pulumi-lang-dotnet=\"`MaintainStartTime`\" pulumi-lang-go=\"`maintainStartTime`\" pulumi-lang-python=\"`maintain_start_time`\" pulumi-lang-yaml=\"`maintainStartTime`\" pulumi-lang-java=\"`maintainStartTime`\"\u003e`maintain_start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`maintainEndTime`\" pulumi-lang-dotnet=\"`MaintainEndTime`\" pulumi-lang-go=\"`maintainEndTime`\" pulumi-lang-python=\"`maintain_end_time`\" pulumi-lang-yaml=\"`maintainEndTime`\" pulumi-lang-java=\"`maintainEndTime`\"\u003e`maintain_end_time`\u003c/span\u003e to change the maintenance window.\n"},"enableBackupLog":{"type":"integer","description":"Turn on or off incremental backup. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e\n"},"enablePublic":{"type":"boolean","description":"It has been deprecated from provider version 1.101.0 and resource \u003cspan pulumi-lang-nodejs=\"`alicloud.kvstore.Connection`\" pulumi-lang-dotnet=\"`alicloud.kvstore.Connection`\" pulumi-lang-go=\"`kvstore.Connection`\" pulumi-lang-python=\"`kvstore.Connection`\" pulumi-lang-yaml=\"`alicloud.kvstore.Connection`\" pulumi-lang-java=\"`alicloud.kvstore.Connection`\"\u003e`alicloud.kvstore.Connection`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'enable_public' has been deprecated from version 1.101.0. Please use resource 'alicloud_kvstore_connection' instead."},"encryptionKey":{"type":"string","description":"The Custom key ID, which you can get by calling DescribeEncryptionKeyList.If this parameter is not passed, the key is automatically generated by the key management service. To create a custom key, you can call the CreateKey interface of the key management service.\n"},"encryptionName":{"type":"string","description":"The Encryption algorithm, default AES-CTR-256.Note that this parameter is only available when the TDEStatus parameter is Enabled.\n"},"endTime":{"type":"string","description":"The expiration time of the prepaid instance.\n"},"engineVersion":{"type":"string","description":"The engine version of the KVStore DBInstance. Valid values: [\"2.8\", \"4.0\", \"5.0\", \"6.0\", \"7.0\"]. Default value: `5.0`.\n**NOTE:** When \u003cspan pulumi-lang-nodejs=\"`instanceType \" pulumi-lang-dotnet=\"`InstanceType \" pulumi-lang-go=\"`instanceType \" pulumi-lang-python=\"`instance_type \" pulumi-lang-yaml=\"`instanceType \" pulumi-lang-java=\"`instanceType \"\u003e`instance_type \u003c/span\u003e= Memcache`, the \u003cspan pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\"\u003e`engine_version`\u003c/span\u003e only supports \"4.0\".\n"},"forceUpgrade":{"type":"boolean","description":"Specifies whether to forcibly change the type. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"globalInstance":{"type":"boolean","description":"Whether to create a distributed cache. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"globalInstanceId":{"type":"string","description":"The ID of distributed cache.\n"},"instanceChargeType":{"type":"string","description":"It has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'instance_charge_type' has been deprecated from version 1.101.0. Use 'payment_type' instead."},"instanceClass":{"type":"string","description":"Type of the applied Tair (Redis OSS-Compatible) And Memcache (KVStore) Classic Instance. It can be retrieved by data source\u003cspan pulumi-lang-nodejs=\" alicloud.kvstore.getInstanceClasses\n\" pulumi-lang-dotnet=\" alicloud.kvstore.getInstanceClasses\n\" pulumi-lang-go=\" kvstore.getInstanceClasses\n\" pulumi-lang-python=\" kvstore_get_instance_classes\n\" pulumi-lang-yaml=\" alicloud.kvstore.getInstanceClasses\n\" pulumi-lang-java=\" alicloud.kvstore.getInstanceClasses\n\"\u003e alicloud.kvstore.getInstanceClasses\n\u003c/span\u003eor referring to help-docs [Instance type table](https://www.alibabacloud.com/help/doc-detail/26350.htm).\n"},"instanceName":{"type":"string","description":"It has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`dbInstanceName`\" pulumi-lang-dotnet=\"`DbInstanceName`\" pulumi-lang-go=\"`dbInstanceName`\" pulumi-lang-python=\"`db_instance_name`\" pulumi-lang-yaml=\"`dbInstanceName`\" pulumi-lang-java=\"`dbInstanceName`\"\u003e`db_instance_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e has been deprecated from version 1.101.0. Use \u003cspan pulumi-lang-nodejs=\"`dbInstanceName`\" pulumi-lang-dotnet=\"`DbInstanceName`\" pulumi-lang-go=\"`dbInstanceName`\" pulumi-lang-python=\"`db_instance_name`\" pulumi-lang-yaml=\"`dbInstanceName`\" pulumi-lang-java=\"`dbInstanceName`\"\u003e`db_instance_name`\u003c/span\u003e instead."},"instanceReleaseProtection":{"type":"boolean","description":"Whether to open the release protection.\n"},"instanceType":{"type":"string","description":"The engine type of the KVStore DBInstance. Valid values: `Redis` or `Memcache`. Default value: `Redis`.\n"},"isAutoUpgradeOpen":{"type":"string","description":"Specifies whether to enable automatic minor version update. Valid values:\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to an instance. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"maintainEndTime":{"type":"string","description":"The end time of the operation and maintenance time period of the KVStore DBInstance, in the format of HH:mmZ (UTC time).\n"},"maintainStartTime":{"type":"string","description":"The start time of the operation and maintenance time period of the KVStore DBInstance, in the format of HH:mmZ (UTC time).\n"},"nodeType":{"type":"string","description":"Node type, valid values:\n- `MASTER_SLAVE`: High availability (dual copies)\n- `STAND_ALONE`: Single copy\n","deprecationMessage":"Field 'node_type' has been deprecated from version 1.120.1"},"orderType":{"type":"string","description":"Specifies a change type when you change the configuration of a subscription instance. Valid values: `UPGRADE`, `DOWNGRADE`. Default value: `UPGRADE`. `UPGRADE` means upgrades the configuration of a subscription instance. `DOWNGRADE` means downgrades the configuration of a subscription instance.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:kvstore/InstanceParameter:InstanceParameter"},"description":"It has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e instead. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n","deprecationMessage":"Field 'parameters' has been deprecated from version 1.101.0. Use 'config' instead."},"password":{"type":"string","description":"The password of the KVStore DBInstance. The password that is used to connect to the instance. The password must be 8 to 32 characters in length and must contain at least three of the following character types: uppercase letters, lowercase letters, special characters, and digits. Special characters include: `! @ # $ % ^ \u0026 * ( ) _ + - =`\n","secret":true},"paymentType":{"type":"string","description":"The billing method of the KVStore DBInstance. Valid values: `PrePaid`, `PostPaid`. Default value: `PostPaid`.\n"},"period":{"type":"string","description":"The duration that you will buy KVStore DBInstance (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `PrePaid`. Valid values: `[1~9]`, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e.\n"},"port":{"type":"integer","description":"It has been deprecated from provider version 1.101.0 and resource \u003cspan pulumi-lang-nodejs=\"`alicloud.kvstore.Connection`\" pulumi-lang-dotnet=\"`alicloud.kvstore.Connection`\" pulumi-lang-go=\"`kvstore.Connection`\" pulumi-lang-python=\"`kvstore.Connection`\" pulumi-lang-yaml=\"`alicloud.kvstore.Connection`\" pulumi-lang-java=\"`alicloud.kvstore.Connection`\"\u003e`alicloud.kvstore.Connection`\u003c/span\u003e instead.\n"},"privateConnectionPort":{"type":"string","description":"Private network connection port, used to modify the private network connection port.\n"},"privateConnectionPrefix":{"type":"string","description":"Private network connection prefix, used to modify the private network connection address. Only supports updating private network connections for existing instance.\n"},"privateIp":{"type":"string","description":"The internal IP address of the instance.\n"},"qps":{"type":"integer","description":"Theoretical maximum QPS value.\n"},"readOnlyCount":{"type":"integer","description":"The number of read replicas in the primary zone. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the resource belongs.\n"},"restoreTime":{"type":"string","description":"The point in time of a backup file.\n"},"roleArn":{"type":"string","description":"The Specify the global resource descriptor ARN (Alibaba Cloud Resource Name) information of the role to be authorized, and use the related key management services after the authorization is completed, in the format: `acs:ram::$accountID:role/$roleName`.\n"},"secondaryZoneId":{"type":"string","description":"The ID of the secondary zone to which you want to migrate the Tair (Redis OSS-Compatible) And Memcache (KVStore) Classic Instance.\n\u003e **NOTE:** If you specify this parameter, the master node and replica node of the instance can be deployed in different zones and disaster recovery is implemented across zones. The instance can withstand failures in data centers.\n"},"securityGroupId":{"type":"string","description":"The ID of security groups. Separate multiple security group IDs with commas (,), such as `sg-***,sg-***,sg-***`.\n"},"securityIpGroupAttribute":{"type":"string","description":"The value of this parameter is empty by default. The attribute of the whitelist group. The console does not display the whitelist group whose value of this parameter is hidden.\n"},"securityIpGroupName":{"type":"string","description":"The name of the whitelist group.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"The IP addresses in the whitelist group. The maximum number of IP addresses in the whitelist group is 1000.\n"},"shardCount":{"type":"integer","description":"The number of data shards. This parameter is available only if you create a cluster instance that uses cloud disks. You can use this parameter to specify a custom number of data shards. **NOTE:** From version 1.216.0, \u003cspan pulumi-lang-nodejs=\"`shardCount`\" pulumi-lang-dotnet=\"`ShardCount`\" pulumi-lang-go=\"`shardCount`\" pulumi-lang-python=\"`shard_count`\" pulumi-lang-yaml=\"`shardCount`\" pulumi-lang-java=\"`shardCount`\"\u003e`shard_count`\u003c/span\u003e can be modified.\n"},"slaveReadOnlyCount":{"type":"integer","description":"The number of read replicas in the secondary zone. **NOTE:**: When you create a multi-zone read/write splitting instance, you must specify both \u003cspan pulumi-lang-nodejs=\"`secondaryZoneId`\" pulumi-lang-dotnet=\"`SecondaryZoneId`\" pulumi-lang-go=\"`secondaryZoneId`\" pulumi-lang-python=\"`secondary_zone_id`\" pulumi-lang-yaml=\"`secondaryZoneId`\" pulumi-lang-java=\"`secondaryZoneId`\"\u003e`secondary_zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`slaveReadOnlyCount`\" pulumi-lang-dotnet=\"`SlaveReadOnlyCount`\" pulumi-lang-go=\"`slaveReadOnlyCount`\" pulumi-lang-python=\"`slave_read_only_count`\" pulumi-lang-yaml=\"`slaveReadOnlyCount`\" pulumi-lang-java=\"`slaveReadOnlyCount`\"\u003e`slave_read_only_count`\u003c/span\u003e.\n\u003e **NOTE:** The sum of \u003cspan pulumi-lang-nodejs=\"`readOnlyCount`\" pulumi-lang-dotnet=\"`ReadOnlyCount`\" pulumi-lang-go=\"`readOnlyCount`\" pulumi-lang-python=\"`read_only_count`\" pulumi-lang-yaml=\"`readOnlyCount`\" pulumi-lang-java=\"`readOnlyCount`\"\u003e`read_only_count`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`slaveReadOnlyCount`\" pulumi-lang-dotnet=\"`SlaveReadOnlyCount`\" pulumi-lang-go=\"`slaveReadOnlyCount`\" pulumi-lang-python=\"`slave_read_only_count`\" pulumi-lang-yaml=\"`slaveReadOnlyCount`\" pulumi-lang-java=\"`slaveReadOnlyCount`\"\u003e`slave_read_only_count`\u003c/span\u003e cannot be greater than \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n"},"srcdbInstanceId":{"type":"string","description":"The ID of the source instance.\n"},"sslEnable":{"type":"string","description":"Modifies the SSL status. Valid values: `Disable`, `Enable` and `Update`.\n**NOTE:** This functionality is supported by Cluster mode (Redis 2.8, 4.0, 5.0) and Standard mode( Redis 2.8 only).\n"},"status":{"type":"string","description":"The status of KVStore DBInstance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"tdeStatus":{"type":"string","description":"Specifies whether to enable TDE. Valid values: `Enabled`.\n**NOTE:**: TDE cannot be disabled after it is enabled. Before you enable it, evaluate whether this feature affects.\nyour business. For more information, see [Enable TDE](https://www.alibabacloud.com/help/en/redis/user-guide/enable-tde).\n"},"vpcAuthMode":{"type":"string","description":"Only meaningful if\u003cspan pulumi-lang-nodejs=\" instanceType \" pulumi-lang-dotnet=\" InstanceType \" pulumi-lang-go=\" instanceType \" pulumi-lang-python=\" instance_type \" pulumi-lang-yaml=\" instanceType \" pulumi-lang-java=\" instanceType \"\u003e instance_type \u003c/span\u003eis `Redis` and network type is VPC. Valid values: `Close`, `Open`. Default value: `Open`. `Close` means the redis instance can be accessed without authentication. `Open` means authentication is required.\n"},"vswitchId":{"type":"string","description":"The ID of VSwitch.\n"},"zoneId":{"type":"string","description":"The ID of the zone.\n"}},"required":["availabilityZone","backupPeriods","backupTime","bandwidth","capacity","config","connectionDomain","connectionString","dbInstanceName","enablePublic","encryptionKey","encryptionName","endTime","engineVersion","instanceChargeType","instanceName","isAutoUpgradeOpen","maintainEndTime","maintainStartTime","nodeType","parameters","paymentType","privateConnectionPort","privateIp","qps","resourceGroupId","roleArn","securityIpGroupName","securityIps","shardCount","sslEnable","status","tdeStatus","zoneId"],"inputProperties":{"autoRenew":{"type":"boolean","description":"Whether to renewal a KVStore DBInstance automatically or not. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `PrePaid`. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an KVStore DBInstance, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `PrePaid`. Valid values: [1~12]. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"autoUseCoupon":{"type":"boolean","description":"Specifies whether to use a coupon. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"availabilityZone":{"type":"string","description":"It has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'availability_zone' has been deprecated from version 1.101.0. Use 'zone_id' instead."},"backupId":{"type":"string","description":"The ID of the backup file of the source instance.\n","willReplaceOnChanges":true},"backupPeriods":{"type":"array","items":{"type":"string"},"description":"Backup period.\n"},"backupTime":{"type":"string","description":"Backup time, the format is HH:mmZ-HH:mmZ (UTC time).\n"},"bandwidth":{"type":"integer","description":"The total bandwidth of the instance. **NOTE:** From version 1.232.0, \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e can be set. If the instance is a cluster instance, \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e must be divisible by the number of \u003cspan pulumi-lang-nodejs=\"`shardCount`\" pulumi-lang-dotnet=\"`ShardCount`\" pulumi-lang-go=\"`shardCount`\" pulumi-lang-python=\"`shard_count`\" pulumi-lang-yaml=\"`shardCount`\" pulumi-lang-java=\"`shardCount`\"\u003e`shard_count`\u003c/span\u003e in the instance, and if the instance is a read/write splitting instance, \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e cannot be set.\n"},"businessInfo":{"type":"string","description":"The ID of the event or the business information.\n"},"capacity":{"type":"integer","description":"The storage capacity of the KVStore DBInstance. Unit: MB.\n","willReplaceOnChanges":true},"config":{"type":"object","additionalProperties":{"type":"string"},"description":"The configuration of the KVStore DBInstance. Available parameters can refer to the latest docs [Instance configurations table](https://www.alibabacloud.com/help/en/redis/user-guide/supported-parameters).\n"},"connectionStringPrefix":{"type":"string","description":"It has been deprecated from provider version 1.101.0 and resource \u003cspan pulumi-lang-nodejs=\"`alicloud.kvstore.Connection`\" pulumi-lang-dotnet=\"`alicloud.kvstore.Connection`\" pulumi-lang-go=\"`kvstore.Connection`\" pulumi-lang-python=\"`kvstore.Connection`\" pulumi-lang-yaml=\"`alicloud.kvstore.Connection`\" pulumi-lang-java=\"`alicloud.kvstore.Connection`\"\u003e`alicloud.kvstore.Connection`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'connection_string_prefix' has been deprecated from version 1.101.0. Please use resource 'alicloud_kvstore_connection' instead."},"couponNo":{"type":"string","description":"The coupon code. **NOTE:** The default value \u003cspan pulumi-lang-nodejs=\"`youhuiquanPromotionOptionIdForBlank`\" pulumi-lang-dotnet=\"`YouhuiquanPromotionOptionIdForBlank`\" pulumi-lang-go=\"`youhuiquanPromotionOptionIdForBlank`\" pulumi-lang-python=\"`youhuiquan_promotion_option_id_for_blank`\" pulumi-lang-yaml=\"`youhuiquanPromotionOptionIdForBlank`\" pulumi-lang-java=\"`youhuiquanPromotionOptionIdForBlank`\"\u003e`youhuiquan_promotion_option_id_for_blank`\u003c/span\u003e removed since v1.216.0, this can cause your status file to change even if it has not been modified, so please review your change plan before apply change plan.\n"},"dbInstanceName":{"type":"string","description":"The name of KVStore DBInstance. It is a string of 2 to 256 characters.\n"},"dedicatedHostGroupId":{"type":"string","description":"The ID of the dedicated cluster. This parameter is required when you create a Tair (Redis OSS-Compatible) And Memcache (KVStore) Classic Instance in a dedicated cluster.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Specifies whether to precheck the request. Valid values:\n"},"effectiveTime":{"type":"string","description":"The time when the database is switched after the instance is migrated, or when the major version is upgraded, or when the instance class is upgraded. Valid values:\n- `Immediately` (Default): The configurations are immediately changed.\n- `MaintainTime`: The configurations are changed within the maintenance window. You can set \u003cspan pulumi-lang-nodejs=\"`maintainStartTime`\" pulumi-lang-dotnet=\"`MaintainStartTime`\" pulumi-lang-go=\"`maintainStartTime`\" pulumi-lang-python=\"`maintain_start_time`\" pulumi-lang-yaml=\"`maintainStartTime`\" pulumi-lang-java=\"`maintainStartTime`\"\u003e`maintain_start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`maintainEndTime`\" pulumi-lang-dotnet=\"`MaintainEndTime`\" pulumi-lang-go=\"`maintainEndTime`\" pulumi-lang-python=\"`maintain_end_time`\" pulumi-lang-yaml=\"`maintainEndTime`\" pulumi-lang-java=\"`maintainEndTime`\"\u003e`maintain_end_time`\u003c/span\u003e to change the maintenance window.\n"},"enableBackupLog":{"type":"integer","description":"Turn on or off incremental backup. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e\n"},"enablePublic":{"type":"boolean","description":"It has been deprecated from provider version 1.101.0 and resource \u003cspan pulumi-lang-nodejs=\"`alicloud.kvstore.Connection`\" pulumi-lang-dotnet=\"`alicloud.kvstore.Connection`\" pulumi-lang-go=\"`kvstore.Connection`\" pulumi-lang-python=\"`kvstore.Connection`\" pulumi-lang-yaml=\"`alicloud.kvstore.Connection`\" pulumi-lang-java=\"`alicloud.kvstore.Connection`\"\u003e`alicloud.kvstore.Connection`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'enable_public' has been deprecated from version 1.101.0. Please use resource 'alicloud_kvstore_connection' instead."},"encryptionKey":{"type":"string","description":"The Custom key ID, which you can get by calling DescribeEncryptionKeyList.If this parameter is not passed, the key is automatically generated by the key management service. To create a custom key, you can call the CreateKey interface of the key management service.\n"},"encryptionName":{"type":"string","description":"The Encryption algorithm, default AES-CTR-256.Note that this parameter is only available when the TDEStatus parameter is Enabled.\n"},"engineVersion":{"type":"string","description":"The engine version of the KVStore DBInstance. Valid values: [\"2.8\", \"4.0\", \"5.0\", \"6.0\", \"7.0\"]. Default value: `5.0`.\n**NOTE:** When \u003cspan pulumi-lang-nodejs=\"`instanceType \" pulumi-lang-dotnet=\"`InstanceType \" pulumi-lang-go=\"`instanceType \" pulumi-lang-python=\"`instance_type \" pulumi-lang-yaml=\"`instanceType \" pulumi-lang-java=\"`instanceType \"\u003e`instance_type \u003c/span\u003e= Memcache`, the \u003cspan pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\"\u003e`engine_version`\u003c/span\u003e only supports \"4.0\".\n"},"forceUpgrade":{"type":"boolean","description":"Specifies whether to forcibly change the type. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"globalInstance":{"type":"boolean","description":"Whether to create a distributed cache. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"globalInstanceId":{"type":"string","description":"The ID of distributed cache.\n"},"instanceChargeType":{"type":"string","description":"It has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'instance_charge_type' has been deprecated from version 1.101.0. Use 'payment_type' instead."},"instanceClass":{"type":"string","description":"Type of the applied Tair (Redis OSS-Compatible) And Memcache (KVStore) Classic Instance. It can be retrieved by data source\u003cspan pulumi-lang-nodejs=\" alicloud.kvstore.getInstanceClasses\n\" pulumi-lang-dotnet=\" alicloud.kvstore.getInstanceClasses\n\" pulumi-lang-go=\" kvstore.getInstanceClasses\n\" pulumi-lang-python=\" kvstore_get_instance_classes\n\" pulumi-lang-yaml=\" alicloud.kvstore.getInstanceClasses\n\" pulumi-lang-java=\" alicloud.kvstore.getInstanceClasses\n\"\u003e alicloud.kvstore.getInstanceClasses\n\u003c/span\u003eor referring to help-docs [Instance type table](https://www.alibabacloud.com/help/doc-detail/26350.htm).\n"},"instanceName":{"type":"string","description":"It has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`dbInstanceName`\" pulumi-lang-dotnet=\"`DbInstanceName`\" pulumi-lang-go=\"`dbInstanceName`\" pulumi-lang-python=\"`db_instance_name`\" pulumi-lang-yaml=\"`dbInstanceName`\" pulumi-lang-java=\"`dbInstanceName`\"\u003e`db_instance_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e has been deprecated from version 1.101.0. Use \u003cspan pulumi-lang-nodejs=\"`dbInstanceName`\" pulumi-lang-dotnet=\"`DbInstanceName`\" pulumi-lang-go=\"`dbInstanceName`\" pulumi-lang-python=\"`db_instance_name`\" pulumi-lang-yaml=\"`dbInstanceName`\" pulumi-lang-java=\"`dbInstanceName`\"\u003e`db_instance_name`\u003c/span\u003e instead."},"instanceReleaseProtection":{"type":"boolean","description":"Whether to open the release protection.\n"},"instanceType":{"type":"string","description":"The engine type of the KVStore DBInstance. Valid values: `Redis` or `Memcache`. Default value: `Redis`.\n","willReplaceOnChanges":true},"isAutoUpgradeOpen":{"type":"string","description":"Specifies whether to enable automatic minor version update. Valid values:\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to an instance. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"maintainEndTime":{"type":"string","description":"The end time of the operation and maintenance time period of the KVStore DBInstance, in the format of HH:mmZ (UTC time).\n"},"maintainStartTime":{"type":"string","description":"The start time of the operation and maintenance time period of the KVStore DBInstance, in the format of HH:mmZ (UTC time).\n"},"nodeType":{"type":"string","description":"Node type, valid values:\n- `MASTER_SLAVE`: High availability (dual copies)\n- `STAND_ALONE`: Single copy\n","deprecationMessage":"Field 'node_type' has been deprecated from version 1.120.1","willReplaceOnChanges":true},"orderType":{"type":"string","description":"Specifies a change type when you change the configuration of a subscription instance. Valid values: `UPGRADE`, `DOWNGRADE`. Default value: `UPGRADE`. `UPGRADE` means upgrades the configuration of a subscription instance. `DOWNGRADE` means downgrades the configuration of a subscription instance.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:kvstore/InstanceParameter:InstanceParameter"},"description":"It has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e instead. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n","deprecationMessage":"Field 'parameters' has been deprecated from version 1.101.0. Use 'config' instead."},"password":{"type":"string","description":"The password of the KVStore DBInstance. The password that is used to connect to the instance. The password must be 8 to 32 characters in length and must contain at least three of the following character types: uppercase letters, lowercase letters, special characters, and digits. Special characters include: `! @ # $ % ^ \u0026 * ( ) _ + - =`\n","secret":true},"paymentType":{"type":"string","description":"The billing method of the KVStore DBInstance. Valid values: `PrePaid`, `PostPaid`. Default value: `PostPaid`.\n"},"period":{"type":"string","description":"The duration that you will buy KVStore DBInstance (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `PrePaid`. Valid values: `[1~9]`, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e.\n"},"port":{"type":"integer","description":"It has been deprecated from provider version 1.101.0 and resource \u003cspan pulumi-lang-nodejs=\"`alicloud.kvstore.Connection`\" pulumi-lang-dotnet=\"`alicloud.kvstore.Connection`\" pulumi-lang-go=\"`kvstore.Connection`\" pulumi-lang-python=\"`kvstore.Connection`\" pulumi-lang-yaml=\"`alicloud.kvstore.Connection`\" pulumi-lang-java=\"`alicloud.kvstore.Connection`\"\u003e`alicloud.kvstore.Connection`\u003c/span\u003e instead.\n"},"privateConnectionPort":{"type":"string","description":"Private network connection port, used to modify the private network connection port.\n"},"privateConnectionPrefix":{"type":"string","description":"Private network connection prefix, used to modify the private network connection address. Only supports updating private network connections for existing instance.\n"},"privateIp":{"type":"string","description":"The internal IP address of the instance.\n","willReplaceOnChanges":true},"readOnlyCount":{"type":"integer","description":"The number of read replicas in the primary zone. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the resource belongs.\n"},"restoreTime":{"type":"string","description":"The point in time of a backup file.\n","willReplaceOnChanges":true},"roleArn":{"type":"string","description":"The Specify the global resource descriptor ARN (Alibaba Cloud Resource Name) information of the role to be authorized, and use the related key management services after the authorization is completed, in the format: `acs:ram::$accountID:role/$roleName`.\n"},"secondaryZoneId":{"type":"string","description":"The ID of the secondary zone to which you want to migrate the Tair (Redis OSS-Compatible) And Memcache (KVStore) Classic Instance.\n\u003e **NOTE:** If you specify this parameter, the master node and replica node of the instance can be deployed in different zones and disaster recovery is implemented across zones. The instance can withstand failures in data centers.\n"},"securityGroupId":{"type":"string","description":"The ID of security groups. Separate multiple security group IDs with commas (,), such as `sg-***,sg-***,sg-***`.\n"},"securityIpGroupAttribute":{"type":"string","description":"The value of this parameter is empty by default. The attribute of the whitelist group. The console does not display the whitelist group whose value of this parameter is hidden.\n"},"securityIpGroupName":{"type":"string","description":"The name of the whitelist group.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"The IP addresses in the whitelist group. The maximum number of IP addresses in the whitelist group is 1000.\n"},"shardCount":{"type":"integer","description":"The number of data shards. This parameter is available only if you create a cluster instance that uses cloud disks. You can use this parameter to specify a custom number of data shards. **NOTE:** From version 1.216.0, \u003cspan pulumi-lang-nodejs=\"`shardCount`\" pulumi-lang-dotnet=\"`ShardCount`\" pulumi-lang-go=\"`shardCount`\" pulumi-lang-python=\"`shard_count`\" pulumi-lang-yaml=\"`shardCount`\" pulumi-lang-java=\"`shardCount`\"\u003e`shard_count`\u003c/span\u003e can be modified.\n"},"slaveReadOnlyCount":{"type":"integer","description":"The number of read replicas in the secondary zone. **NOTE:**: When you create a multi-zone read/write splitting instance, you must specify both \u003cspan pulumi-lang-nodejs=\"`secondaryZoneId`\" pulumi-lang-dotnet=\"`SecondaryZoneId`\" pulumi-lang-go=\"`secondaryZoneId`\" pulumi-lang-python=\"`secondary_zone_id`\" pulumi-lang-yaml=\"`secondaryZoneId`\" pulumi-lang-java=\"`secondaryZoneId`\"\u003e`secondary_zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`slaveReadOnlyCount`\" pulumi-lang-dotnet=\"`SlaveReadOnlyCount`\" pulumi-lang-go=\"`slaveReadOnlyCount`\" pulumi-lang-python=\"`slave_read_only_count`\" pulumi-lang-yaml=\"`slaveReadOnlyCount`\" pulumi-lang-java=\"`slaveReadOnlyCount`\"\u003e`slave_read_only_count`\u003c/span\u003e.\n\u003e **NOTE:** The sum of \u003cspan pulumi-lang-nodejs=\"`readOnlyCount`\" pulumi-lang-dotnet=\"`ReadOnlyCount`\" pulumi-lang-go=\"`readOnlyCount`\" pulumi-lang-python=\"`read_only_count`\" pulumi-lang-yaml=\"`readOnlyCount`\" pulumi-lang-java=\"`readOnlyCount`\"\u003e`read_only_count`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`slaveReadOnlyCount`\" pulumi-lang-dotnet=\"`SlaveReadOnlyCount`\" pulumi-lang-go=\"`slaveReadOnlyCount`\" pulumi-lang-python=\"`slave_read_only_count`\" pulumi-lang-yaml=\"`slaveReadOnlyCount`\" pulumi-lang-java=\"`slaveReadOnlyCount`\"\u003e`slave_read_only_count`\u003c/span\u003e cannot be greater than \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n"},"srcdbInstanceId":{"type":"string","description":"The ID of the source instance.\n","willReplaceOnChanges":true},"sslEnable":{"type":"string","description":"Modifies the SSL status. Valid values: `Disable`, `Enable` and `Update`.\n**NOTE:** This functionality is supported by Cluster mode (Redis 2.8, 4.0, 5.0) and Standard mode( Redis 2.8 only).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"tdeStatus":{"type":"string","description":"Specifies whether to enable TDE. Valid values: `Enabled`.\n**NOTE:**: TDE cannot be disabled after it is enabled. Before you enable it, evaluate whether this feature affects.\nyour business. For more information, see [Enable TDE](https://www.alibabacloud.com/help/en/redis/user-guide/enable-tde).\n"},"vpcAuthMode":{"type":"string","description":"Only meaningful if\u003cspan pulumi-lang-nodejs=\" instanceType \" pulumi-lang-dotnet=\" InstanceType \" pulumi-lang-go=\" instanceType \" pulumi-lang-python=\" instance_type \" pulumi-lang-yaml=\" instanceType \" pulumi-lang-java=\" instanceType \"\u003e instance_type \u003c/span\u003eis `Redis` and network type is VPC. Valid values: `Close`, `Open`. Default value: `Open`. `Close` means the redis instance can be accessed without authentication. `Open` means authentication is required.\n"},"vswitchId":{"type":"string","description":"The ID of VSwitch.\n"},"zoneId":{"type":"string","description":"The ID of the zone.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"autoRenew":{"type":"boolean","description":"Whether to renewal a KVStore DBInstance automatically or not. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `PrePaid`. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an KVStore DBInstance, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `PrePaid`. Valid values: [1~12]. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"autoUseCoupon":{"type":"boolean","description":"Specifies whether to use a coupon. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"availabilityZone":{"type":"string","description":"It has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'availability_zone' has been deprecated from version 1.101.0. Use 'zone_id' instead."},"backupId":{"type":"string","description":"The ID of the backup file of the source instance.\n","willReplaceOnChanges":true},"backupPeriods":{"type":"array","items":{"type":"string"},"description":"Backup period.\n"},"backupTime":{"type":"string","description":"Backup time, the format is HH:mmZ-HH:mmZ (UTC time).\n"},"bandwidth":{"type":"integer","description":"The total bandwidth of the instance. **NOTE:** From version 1.232.0, \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e can be set. If the instance is a cluster instance, \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e must be divisible by the number of \u003cspan pulumi-lang-nodejs=\"`shardCount`\" pulumi-lang-dotnet=\"`ShardCount`\" pulumi-lang-go=\"`shardCount`\" pulumi-lang-python=\"`shard_count`\" pulumi-lang-yaml=\"`shardCount`\" pulumi-lang-java=\"`shardCount`\"\u003e`shard_count`\u003c/span\u003e in the instance, and if the instance is a read/write splitting instance, \u003cspan pulumi-lang-nodejs=\"`bandwidth`\" pulumi-lang-dotnet=\"`Bandwidth`\" pulumi-lang-go=\"`bandwidth`\" pulumi-lang-python=\"`bandwidth`\" pulumi-lang-yaml=\"`bandwidth`\" pulumi-lang-java=\"`bandwidth`\"\u003e`bandwidth`\u003c/span\u003e cannot be set.\n"},"businessInfo":{"type":"string","description":"The ID of the event or the business information.\n"},"capacity":{"type":"integer","description":"The storage capacity of the KVStore DBInstance. Unit: MB.\n","willReplaceOnChanges":true},"config":{"type":"object","additionalProperties":{"type":"string"},"description":"The configuration of the KVStore DBInstance. Available parameters can refer to the latest docs [Instance configurations table](https://www.alibabacloud.com/help/en/redis/user-guide/supported-parameters).\n"},"connectionDomain":{"type":"string","description":"Intranet connection address of the KVStore instance.\n"},"connectionString":{"type":"string","description":"Indicates whether the address is a private endpoint.\n","deprecationMessage":"Field 'connection_string' has been deprecated from version 1.101.0. Please use resource 'alicloud_kvstore_connection' instead."},"connectionStringPrefix":{"type":"string","description":"It has been deprecated from provider version 1.101.0 and resource \u003cspan pulumi-lang-nodejs=\"`alicloud.kvstore.Connection`\" pulumi-lang-dotnet=\"`alicloud.kvstore.Connection`\" pulumi-lang-go=\"`kvstore.Connection`\" pulumi-lang-python=\"`kvstore.Connection`\" pulumi-lang-yaml=\"`alicloud.kvstore.Connection`\" pulumi-lang-java=\"`alicloud.kvstore.Connection`\"\u003e`alicloud.kvstore.Connection`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'connection_string_prefix' has been deprecated from version 1.101.0. Please use resource 'alicloud_kvstore_connection' instead."},"couponNo":{"type":"string","description":"The coupon code. **NOTE:** The default value \u003cspan pulumi-lang-nodejs=\"`youhuiquanPromotionOptionIdForBlank`\" pulumi-lang-dotnet=\"`YouhuiquanPromotionOptionIdForBlank`\" pulumi-lang-go=\"`youhuiquanPromotionOptionIdForBlank`\" pulumi-lang-python=\"`youhuiquan_promotion_option_id_for_blank`\" pulumi-lang-yaml=\"`youhuiquanPromotionOptionIdForBlank`\" pulumi-lang-java=\"`youhuiquanPromotionOptionIdForBlank`\"\u003e`youhuiquan_promotion_option_id_for_blank`\u003c/span\u003e removed since v1.216.0, this can cause your status file to change even if it has not been modified, so please review your change plan before apply change plan.\n"},"dbInstanceName":{"type":"string","description":"The name of KVStore DBInstance. It is a string of 2 to 256 characters.\n"},"dedicatedHostGroupId":{"type":"string","description":"The ID of the dedicated cluster. This parameter is required when you create a Tair (Redis OSS-Compatible) And Memcache (KVStore) Classic Instance in a dedicated cluster.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Specifies whether to precheck the request. Valid values:\n"},"effectiveTime":{"type":"string","description":"The time when the database is switched after the instance is migrated, or when the major version is upgraded, or when the instance class is upgraded. Valid values:\n- `Immediately` (Default): The configurations are immediately changed.\n- `MaintainTime`: The configurations are changed within the maintenance window. You can set \u003cspan pulumi-lang-nodejs=\"`maintainStartTime`\" pulumi-lang-dotnet=\"`MaintainStartTime`\" pulumi-lang-go=\"`maintainStartTime`\" pulumi-lang-python=\"`maintain_start_time`\" pulumi-lang-yaml=\"`maintainStartTime`\" pulumi-lang-java=\"`maintainStartTime`\"\u003e`maintain_start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`maintainEndTime`\" pulumi-lang-dotnet=\"`MaintainEndTime`\" pulumi-lang-go=\"`maintainEndTime`\" pulumi-lang-python=\"`maintain_end_time`\" pulumi-lang-yaml=\"`maintainEndTime`\" pulumi-lang-java=\"`maintainEndTime`\"\u003e`maintain_end_time`\u003c/span\u003e to change the maintenance window.\n"},"enableBackupLog":{"type":"integer","description":"Turn on or off incremental backup. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e\n"},"enablePublic":{"type":"boolean","description":"It has been deprecated from provider version 1.101.0 and resource \u003cspan pulumi-lang-nodejs=\"`alicloud.kvstore.Connection`\" pulumi-lang-dotnet=\"`alicloud.kvstore.Connection`\" pulumi-lang-go=\"`kvstore.Connection`\" pulumi-lang-python=\"`kvstore.Connection`\" pulumi-lang-yaml=\"`alicloud.kvstore.Connection`\" pulumi-lang-java=\"`alicloud.kvstore.Connection`\"\u003e`alicloud.kvstore.Connection`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'enable_public' has been deprecated from version 1.101.0. Please use resource 'alicloud_kvstore_connection' instead."},"encryptionKey":{"type":"string","description":"The Custom key ID, which you can get by calling DescribeEncryptionKeyList.If this parameter is not passed, the key is automatically generated by the key management service. To create a custom key, you can call the CreateKey interface of the key management service.\n"},"encryptionName":{"type":"string","description":"The Encryption algorithm, default AES-CTR-256.Note that this parameter is only available when the TDEStatus parameter is Enabled.\n"},"endTime":{"type":"string","description":"The expiration time of the prepaid instance.\n"},"engineVersion":{"type":"string","description":"The engine version of the KVStore DBInstance. Valid values: [\"2.8\", \"4.0\", \"5.0\", \"6.0\", \"7.0\"]. Default value: `5.0`.\n**NOTE:** When \u003cspan pulumi-lang-nodejs=\"`instanceType \" pulumi-lang-dotnet=\"`InstanceType \" pulumi-lang-go=\"`instanceType \" pulumi-lang-python=\"`instance_type \" pulumi-lang-yaml=\"`instanceType \" pulumi-lang-java=\"`instanceType \"\u003e`instance_type \u003c/span\u003e= Memcache`, the \u003cspan pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\"\u003e`engine_version`\u003c/span\u003e only supports \"4.0\".\n"},"forceUpgrade":{"type":"boolean","description":"Specifies whether to forcibly change the type. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"globalInstance":{"type":"boolean","description":"Whether to create a distributed cache. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"globalInstanceId":{"type":"string","description":"The ID of distributed cache.\n"},"instanceChargeType":{"type":"string","description":"It has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'instance_charge_type' has been deprecated from version 1.101.0. Use 'payment_type' instead."},"instanceClass":{"type":"string","description":"Type of the applied Tair (Redis OSS-Compatible) And Memcache (KVStore) Classic Instance. It can be retrieved by data source\u003cspan pulumi-lang-nodejs=\" alicloud.kvstore.getInstanceClasses\n\" pulumi-lang-dotnet=\" alicloud.kvstore.getInstanceClasses\n\" pulumi-lang-go=\" kvstore.getInstanceClasses\n\" pulumi-lang-python=\" kvstore_get_instance_classes\n\" pulumi-lang-yaml=\" alicloud.kvstore.getInstanceClasses\n\" pulumi-lang-java=\" alicloud.kvstore.getInstanceClasses\n\"\u003e alicloud.kvstore.getInstanceClasses\n\u003c/span\u003eor referring to help-docs [Instance type table](https://www.alibabacloud.com/help/doc-detail/26350.htm).\n"},"instanceName":{"type":"string","description":"It has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`dbInstanceName`\" pulumi-lang-dotnet=\"`DbInstanceName`\" pulumi-lang-go=\"`dbInstanceName`\" pulumi-lang-python=\"`db_instance_name`\" pulumi-lang-yaml=\"`dbInstanceName`\" pulumi-lang-java=\"`dbInstanceName`\"\u003e`db_instance_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e has been deprecated from version 1.101.0. Use \u003cspan pulumi-lang-nodejs=\"`dbInstanceName`\" pulumi-lang-dotnet=\"`DbInstanceName`\" pulumi-lang-go=\"`dbInstanceName`\" pulumi-lang-python=\"`db_instance_name`\" pulumi-lang-yaml=\"`dbInstanceName`\" pulumi-lang-java=\"`dbInstanceName`\"\u003e`db_instance_name`\u003c/span\u003e instead."},"instanceReleaseProtection":{"type":"boolean","description":"Whether to open the release protection.\n"},"instanceType":{"type":"string","description":"The engine type of the KVStore DBInstance. Valid values: `Redis` or `Memcache`. Default value: `Redis`.\n","willReplaceOnChanges":true},"isAutoUpgradeOpen":{"type":"string","description":"Specifies whether to enable automatic minor version update. Valid values:\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to an instance. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"maintainEndTime":{"type":"string","description":"The end time of the operation and maintenance time period of the KVStore DBInstance, in the format of HH:mmZ (UTC time).\n"},"maintainStartTime":{"type":"string","description":"The start time of the operation and maintenance time period of the KVStore DBInstance, in the format of HH:mmZ (UTC time).\n"},"nodeType":{"type":"string","description":"Node type, valid values:\n- `MASTER_SLAVE`: High availability (dual copies)\n- `STAND_ALONE`: Single copy\n","deprecationMessage":"Field 'node_type' has been deprecated from version 1.120.1","willReplaceOnChanges":true},"orderType":{"type":"string","description":"Specifies a change type when you change the configuration of a subscription instance. Valid values: `UPGRADE`, `DOWNGRADE`. Default value: `UPGRADE`. `UPGRADE` means upgrades the configuration of a subscription instance. `DOWNGRADE` means downgrades the configuration of a subscription instance.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:kvstore/InstanceParameter:InstanceParameter"},"description":"It has been deprecated from provider version 1.101.0 and \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e instead. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n","deprecationMessage":"Field 'parameters' has been deprecated from version 1.101.0. Use 'config' instead."},"password":{"type":"string","description":"The password of the KVStore DBInstance. The password that is used to connect to the instance. The password must be 8 to 32 characters in length and must contain at least three of the following character types: uppercase letters, lowercase letters, special characters, and digits. Special characters include: `! @ # $ % ^ \u0026 * ( ) _ + - =`\n","secret":true},"paymentType":{"type":"string","description":"The billing method of the KVStore DBInstance. Valid values: `PrePaid`, `PostPaid`. Default value: `PostPaid`.\n"},"period":{"type":"string","description":"The duration that you will buy KVStore DBInstance (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `PrePaid`. Valid values: `[1~9]`, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e.\n"},"port":{"type":"integer","description":"It has been deprecated from provider version 1.101.0 and resource \u003cspan pulumi-lang-nodejs=\"`alicloud.kvstore.Connection`\" pulumi-lang-dotnet=\"`alicloud.kvstore.Connection`\" pulumi-lang-go=\"`kvstore.Connection`\" pulumi-lang-python=\"`kvstore.Connection`\" pulumi-lang-yaml=\"`alicloud.kvstore.Connection`\" pulumi-lang-java=\"`alicloud.kvstore.Connection`\"\u003e`alicloud.kvstore.Connection`\u003c/span\u003e instead.\n"},"privateConnectionPort":{"type":"string","description":"Private network connection port, used to modify the private network connection port.\n"},"privateConnectionPrefix":{"type":"string","description":"Private network connection prefix, used to modify the private network connection address. Only supports updating private network connections for existing instance.\n"},"privateIp":{"type":"string","description":"The internal IP address of the instance.\n","willReplaceOnChanges":true},"qps":{"type":"integer","description":"Theoretical maximum QPS value.\n"},"readOnlyCount":{"type":"integer","description":"The number of read replicas in the primary zone. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the resource belongs.\n"},"restoreTime":{"type":"string","description":"The point in time of a backup file.\n","willReplaceOnChanges":true},"roleArn":{"type":"string","description":"The Specify the global resource descriptor ARN (Alibaba Cloud Resource Name) information of the role to be authorized, and use the related key management services after the authorization is completed, in the format: `acs:ram::$accountID:role/$roleName`.\n"},"secondaryZoneId":{"type":"string","description":"The ID of the secondary zone to which you want to migrate the Tair (Redis OSS-Compatible) And Memcache (KVStore) Classic Instance.\n\u003e **NOTE:** If you specify this parameter, the master node and replica node of the instance can be deployed in different zones and disaster recovery is implemented across zones. The instance can withstand failures in data centers.\n"},"securityGroupId":{"type":"string","description":"The ID of security groups. Separate multiple security group IDs with commas (,), such as `sg-***,sg-***,sg-***`.\n"},"securityIpGroupAttribute":{"type":"string","description":"The value of this parameter is empty by default. The attribute of the whitelist group. The console does not display the whitelist group whose value of this parameter is hidden.\n"},"securityIpGroupName":{"type":"string","description":"The name of the whitelist group.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"The IP addresses in the whitelist group. The maximum number of IP addresses in the whitelist group is 1000.\n"},"shardCount":{"type":"integer","description":"The number of data shards. This parameter is available only if you create a cluster instance that uses cloud disks. You can use this parameter to specify a custom number of data shards. **NOTE:** From version 1.216.0, \u003cspan pulumi-lang-nodejs=\"`shardCount`\" pulumi-lang-dotnet=\"`ShardCount`\" pulumi-lang-go=\"`shardCount`\" pulumi-lang-python=\"`shard_count`\" pulumi-lang-yaml=\"`shardCount`\" pulumi-lang-java=\"`shardCount`\"\u003e`shard_count`\u003c/span\u003e can be modified.\n"},"slaveReadOnlyCount":{"type":"integer","description":"The number of read replicas in the secondary zone. **NOTE:**: When you create a multi-zone read/write splitting instance, you must specify both \u003cspan pulumi-lang-nodejs=\"`secondaryZoneId`\" pulumi-lang-dotnet=\"`SecondaryZoneId`\" pulumi-lang-go=\"`secondaryZoneId`\" pulumi-lang-python=\"`secondary_zone_id`\" pulumi-lang-yaml=\"`secondaryZoneId`\" pulumi-lang-java=\"`secondaryZoneId`\"\u003e`secondary_zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`slaveReadOnlyCount`\" pulumi-lang-dotnet=\"`SlaveReadOnlyCount`\" pulumi-lang-go=\"`slaveReadOnlyCount`\" pulumi-lang-python=\"`slave_read_only_count`\" pulumi-lang-yaml=\"`slaveReadOnlyCount`\" pulumi-lang-java=\"`slaveReadOnlyCount`\"\u003e`slave_read_only_count`\u003c/span\u003e.\n\u003e **NOTE:** The sum of \u003cspan pulumi-lang-nodejs=\"`readOnlyCount`\" pulumi-lang-dotnet=\"`ReadOnlyCount`\" pulumi-lang-go=\"`readOnlyCount`\" pulumi-lang-python=\"`read_only_count`\" pulumi-lang-yaml=\"`readOnlyCount`\" pulumi-lang-java=\"`readOnlyCount`\"\u003e`read_only_count`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`slaveReadOnlyCount`\" pulumi-lang-dotnet=\"`SlaveReadOnlyCount`\" pulumi-lang-go=\"`slaveReadOnlyCount`\" pulumi-lang-python=\"`slave_read_only_count`\" pulumi-lang-yaml=\"`slaveReadOnlyCount`\" pulumi-lang-java=\"`slaveReadOnlyCount`\"\u003e`slave_read_only_count`\u003c/span\u003e cannot be greater than \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.\n"},"srcdbInstanceId":{"type":"string","description":"The ID of the source instance.\n","willReplaceOnChanges":true},"sslEnable":{"type":"string","description":"Modifies the SSL status. Valid values: `Disable`, `Enable` and `Update`.\n**NOTE:** This functionality is supported by Cluster mode (Redis 2.8, 4.0, 5.0) and Standard mode( Redis 2.8 only).\n"},"status":{"type":"string","description":"The status of KVStore DBInstance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"tdeStatus":{"type":"string","description":"Specifies whether to enable TDE. Valid values: `Enabled`.\n**NOTE:**: TDE cannot be disabled after it is enabled. Before you enable it, evaluate whether this feature affects.\nyour business. For more information, see [Enable TDE](https://www.alibabacloud.com/help/en/redis/user-guide/enable-tde).\n"},"vpcAuthMode":{"type":"string","description":"Only meaningful if\u003cspan pulumi-lang-nodejs=\" instanceType \" pulumi-lang-dotnet=\" InstanceType \" pulumi-lang-go=\" instanceType \" pulumi-lang-python=\" instance_type \" pulumi-lang-yaml=\" instanceType \" pulumi-lang-java=\" instanceType \"\u003e instance_type \u003c/span\u003eis `Redis` and network type is VPC. Valid values: `Close`, `Open`. Default value: `Open`. `Close` means the redis instance can be accessed without authentication. `Open` means authentication is required.\n"},"vswitchId":{"type":"string","description":"The ID of VSwitch.\n"},"zoneId":{"type":"string","description":"The ID of the zone.\n"}},"type":"object"}},"alicloud:lindorm/instance:Instance":{"description":"Provides a Lindorm Instance resource.\n\nFor information about Lindorm Instance and how to use it, see [What is Instance](https://www.alibabacloud.com/help/en/lindorm/latest/product-introduction-overview).\n\n\u003e **NOTE:** Available since v1.132.0.\n\n\u003e **NOTE:**  The Lindorm Instance does not support updating the specifications of multiple different engines, or the number of nodes at the same time.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst region = \"cn-hangzhou\";\nconst zoneId = \"cn-hangzhou-h\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = defaultGetNetworks.then(defaultGetNetworks =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: zoneId,\n}));\nconst defaultInstance = new alicloud.lindorm.Instance(\"default\", {\n    diskCategory: \"cloud_efficiency\",\n    paymentType: \"PayAsYouGo\",\n    zoneId: zoneId,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    instanceName: name,\n    tableEngineSpecification: \"lindorm.g.4xlarge\",\n    tableEngineNodeCount: 2,\n    instanceStorage: \"1920\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nregion = \"cn-hangzhou\"\nzone_id = \"cn-hangzhou-h\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=zone_id)\ndefault_instance = alicloud.lindorm.Instance(\"default\",\n    disk_category=\"cloud_efficiency\",\n    payment_type=\"PayAsYouGo\",\n    zone_id=zone_id,\n    vswitch_id=default_get_switches.ids[0],\n    vpc_id=default_get_networks.ids[0],\n    instance_name=name,\n    table_engine_specification=\"lindorm.g.4xlarge\",\n    table_engine_node_count=2,\n    instance_storage=\"1920\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var region = \"cn-hangzhou\";\n\n    var zoneId = \"cn-hangzhou-h\";\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = zoneId,\n    });\n\n    var defaultInstance = new AliCloud.Lindorm.Instance(\"default\", new()\n    {\n        DiskCategory = \"cloud_efficiency\",\n        PaymentType = \"PayAsYouGo\",\n        ZoneId = zoneId,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        InstanceName = name,\n        TableEngineSpecification = \"lindorm.g.4xlarge\",\n        TableEngineNodeCount = 2,\n        InstanceStorage = \"1920\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/lindorm\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_ := \"cn-hangzhou\"\n\t\tzoneId := \"cn-hangzhou-h\"\n\t\t_, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(zoneId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lindorm.NewInstance(ctx, \"default\", \u0026lindorm.InstanceArgs{\n\t\t\tDiskCategory:             pulumi.String(\"cloud_efficiency\"),\n\t\t\tPaymentType:              pulumi.String(\"PayAsYouGo\"),\n\t\t\tZoneId:                   pulumi.String(zoneId),\n\t\t\tVswitchId:                pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tVpcId:                    pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tInstanceName:             pulumi.String(name),\n\t\t\tTableEngineSpecification: pulumi.String(\"lindorm.g.4xlarge\"),\n\t\t\tTableEngineNodeCount:     pulumi.Int(2),\n\t\t\tInstanceStorage:          pulumi.String(\"1920\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.lindorm.Instance;\nimport com.pulumi.alicloud.lindorm.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var region = \"cn-hangzhou\";\n\n        final var zoneId = \"cn-hangzhou-h\";\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(zoneId)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .diskCategory(\"cloud_efficiency\")\n            .paymentType(\"PayAsYouGo\")\n            .zoneId(zoneId)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .vpcId(defaultGetNetworks.ids()[0])\n            .instanceName(name)\n            .tableEngineSpecification(\"lindorm.g.4xlarge\")\n            .tableEngineNodeCount(2)\n            .instanceStorage(\"1920\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInstance:\n    type: alicloud:lindorm:Instance\n    name: default\n    properties:\n      diskCategory: cloud_efficiency\n      paymentType: PayAsYouGo\n      zoneId: ${zoneId}\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      vpcId: ${defaultGetNetworks.ids[0]}\n      instanceName: ${name}\n      tableEngineSpecification: lindorm.g.4xlarge\n      tableEngineNodeCount: '2'\n      instanceStorage: '1920'\nvariables:\n  region: cn-hangzhou\n  zoneId: cn-hangzhou-h\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${zoneId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLindorm Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:lindorm/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"arbiterVswitchId":{"type":"string","description":"The multi-availability zone instance, coordinating the virtual switch ID of the availability zone, the switch must be located under the availability zone corresponding to the ArbiterZoneId. This parameter is required if you need to create multiple availability zone instances.\n"},"arbiterZoneId":{"type":"string","description":"The multiple Availability Zone Instance, the availability zone ID of the coordinating availability zone. required if you need to create multiple availability zone instances.\n"},"archVersion":{"type":"string","description":"The deployment architecture. If you do not fill in this parameter, the default is 1.0. to create multiple availability instances, fill in 2.0. if you need to create multiple availability instances, this parameter is required. Valid values: `1.0` to `2.0`.\n"},"autoRenew":{"type":"string","description":"Specifies whether to enable auto-renewal for the instance. Valid when the \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`. Default value: false. Valid values: true(enables auto-renewal), false(disables auto-renewal).\n"},"autoRenewPeriod":{"type":"string","description":"The subscription duration that is supported by auto-renewal. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e. This parameter is required only if the AutoRenew parameter is set to true.\n"},"coldStorage":{"type":"integer","description":"The cold storage capacity of the instance. Unit: GB. Valid values: [800, 1000000].\n"},"coreSingleStorage":{"type":"integer","description":"The multiple availability zone instances, CORE single node capacity. required if you want to create multiple availability zone instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64000`\" pulumi-lang-dotnet=\"`64000`\" pulumi-lang-go=\"`64000`\" pulumi-lang-python=\"`64000`\" pulumi-lang-yaml=\"`64000`\" pulumi-lang-java=\"`64000`\"\u003e`64000`\u003c/span\u003e.\n"},"coreSpec":{"type":"string","description":"The core spec. When \u003cspan pulumi-lang-nodejs=\"`diskCategory`\" pulumi-lang-dotnet=\"`DiskCategory`\" pulumi-lang-go=\"`diskCategory`\" pulumi-lang-python=\"`disk_category`\" pulumi-lang-yaml=\"`diskCategory`\" pulumi-lang-java=\"`diskCategory`\"\u003e`disk_category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, this filed is valid.\n- When \u003cspan pulumi-lang-nodejs=\"`diskCategory`\" pulumi-lang-dotnet=\"`DiskCategory`\" pulumi-lang-go=\"`diskCategory`\" pulumi-lang-python=\"`disk_category`\" pulumi-lang-yaml=\"`diskCategory`\" pulumi-lang-java=\"`diskCategory`\"\u003e`disk_category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e, the valid values is `lindorm.i2.xlarge`, `lindorm.i2.2xlarge`, `lindorm.i2.4xlarge`, `lindorm.i2.8xlarge`.\n- When \u003cspan pulumi-lang-nodejs=\"`diskCategory`\" pulumi-lang-dotnet=\"`DiskCategory`\" pulumi-lang-go=\"`diskCategory`\" pulumi-lang-python=\"`disk_category`\" pulumi-lang-yaml=\"`diskCategory`\" pulumi-lang-java=\"`diskCategory`\"\u003e`disk_category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, the valid values is `lindorm.d2c.6xlarge`, `lindorm.d2c.12xlarge`, `lindorm.d2c.24xlarge`, `lindorm.d2s.5xlarge`, `lindorm.d2s.10xlarge`, `lindorm.d1.2xlarge`, `lindorm.d1.4xlarge`, `lindorm.d1.6xlarge`.\n"},"deletionProection":{"type":"boolean","description":"The deletion protection of instance.\n"},"diskCategory":{"type":"string","description":"The disk type of instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl0`\" pulumi-lang-dotnet=\"`CloudEssdPl0`\" pulumi-lang-go=\"`cloudEssdPl0`\" pulumi-lang-python=\"`cloud_essd_pl0`\" pulumi-lang-yaml=\"`cloudEssdPl0`\" pulumi-lang-java=\"`cloudEssdPl0`\"\u003e`cloud_essd_pl0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`capacityCloudStorage`\" pulumi-lang-dotnet=\"`CapacityCloudStorage`\" pulumi-lang-go=\"`capacityCloudStorage`\" pulumi-lang-python=\"`capacity_cloud_storage`\" pulumi-lang-yaml=\"`capacityCloudStorage`\" pulumi-lang-java=\"`capacityCloudStorage`\"\u003e`capacity_cloud_storage`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e. **NOTE:** From version 1.207.0, \u003cspan pulumi-lang-nodejs=\"`diskCategory`\" pulumi-lang-dotnet=\"`DiskCategory`\" pulumi-lang-go=\"`diskCategory`\" pulumi-lang-python=\"`disk_category`\" pulumi-lang-yaml=\"`diskCategory`\" pulumi-lang-java=\"`diskCategory`\"\u003e`disk_category`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl0`\" pulumi-lang-dotnet=\"`CloudEssdPl0`\" pulumi-lang-go=\"`cloudEssdPl0`\" pulumi-lang-python=\"`cloud_essd_pl0`\" pulumi-lang-yaml=\"`cloudEssdPl0`\" pulumi-lang-java=\"`cloudEssdPl0`\"\u003e`cloud_essd_pl0`\u003c/span\u003e.\n"},"duration":{"type":"string","description":"The duration of paid. Valid when the \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.  When \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e set to `Month`, the valid value id \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.  When \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e set to `Year`, the valid value id \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"enabledFileEngine":{"type":"boolean","description":"(Available since v1.163.0) Whether to enable file engine.\n"},"enabledLtsEngine":{"type":"boolean","description":"(Available since v1.163.0) Whether to enable lts engine.\n"},"enabledSearchEngine":{"type":"boolean","description":"(Available since v1.163.0) Whether to enable search engine.\n"},"enabledStreamEngine":{"type":"boolean","description":"(Available since v1.211.0) Whether to enable streaming engine.\n"},"enabledTableEngine":{"type":"boolean","description":"(Available since v1.163.0) Whether to enable table engine.\n"},"enabledTimeSeriresEngine":{"type":"boolean","description":"(Available since v1.163.0) Whether to enable time serires engine.\n"},"fileEngineNodeCount":{"type":"integer","description":"The count of file engine.\n"},"fileEngineSpecification":{"type":"string","description":"The specification of file engine. Valid values: `lindorm.c.xlarge`.\n"},"instanceName":{"type":"string","description":"The name of the instance.\n"},"instanceStorage":{"type":"string","description":"The storage capacity of the instance. Unit: GB. Valid values: [80, 10485760], and the value must be divisible by 80.\n"},"ipWhiteLists":{"type":"array","items":{"type":"string"},"description":"The ip white list of instance.\n"},"logDiskCategory":{"type":"string","description":"The multi-available zone instance, log node disk type. required if you need to create multiple availability zone instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e.\n"},"logNum":{"type":"integer","description":"The multiple Availability Zone Instance, number of log nodes. this parameter is required if you want to create multiple availability zone instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e.\n"},"logSingleStorage":{"type":"integer","description":"The multi-availability instance, log single-node disk capacity. This parameter is required if you want to create multiple availability zone instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64000`\" pulumi-lang-dotnet=\"`64000`\" pulumi-lang-go=\"`64000`\" pulumi-lang-python=\"`64000`\" pulumi-lang-yaml=\"`64000`\" pulumi-lang-java=\"`64000`\"\u003e`64000`\u003c/span\u003e.\n"},"logSpec":{"type":"string","description":"The multiple availability zone instances, log node specification. required if you need to create multiple availability zone instances. Valid values: `lindorm.sn1.large`, `lindorm.sn1.2xlarge`.\n"},"ltsNodeCount":{"type":"integer","description":"The count of lindorm tunnel service.\n"},"ltsNodeSpecification":{"type":"string","description":"The specification of lindorm tunnel service. Valid values: `lindorm.g.2xlarge`, `lindorm.g.xlarge`.\n"},"multiZoneCombination":{"type":"string","description":"The multi-zone combinations. Availability zone combinations are supported on the sale page. required if you need to create multiple availability zone instances. Valid values: `ap-southeast-5abc-aliyun`, `cn-hangzhou-ehi-aliyun`, `cn-beijing-acd-aliyun`, `ap-southeast-1-abc-aliyun`, `cn-zhangjiakou-abc-aliyun`, `cn-shanghai-efg-aliyun`, `cn-shanghai-abd-aliyun`, `cn-hangzhou-bef-aliyun`, `cn-hangzhou-bce-aliyun`, `cn-beijing-fgh-aliyun`, `cn-shenzhen-abc-aliyun`.\n"},"paymentType":{"type":"string","description":"The billing method. Valid values: `PayAsYouGo` and `Subscription`.\n"},"pricingCycle":{"type":"string","description":"The pricing cycle. Valid when the \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`. Valid values: `Month` and `Year`.\n"},"primaryVswitchId":{"type":"string","description":"Multi-available zone instances, the virtual switch ID of the primary available zone, must be under the available zone corresponding to the PrimaryZoneId. required if you need to create multiple availability zone instances.\n"},"primaryZoneId":{"type":"string","description":"Multi-availability zone instance with the availability zone ID of the main availability zone. required if you need to create multiple availability zone instances.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"searchEngineNodeCount":{"type":"integer","description":"The count of search engine.\n"},"searchEngineSpecification":{"type":"string","description":"The specification of search engine. Valid values: `lindorm.g.2xlarge`, `lindorm.g.4xlarge`, `lindorm.g.8xlarge`, `lindorm.g.xlarge`.\n"},"serviceType":{"type":"string","description":"(Available since v1.196.0) The instance type.\n"},"standbyVswitchId":{"type":"string","description":"The multiple availability zone instances, the virtual switch ID of the ready availability zone must be under the availability zone corresponding to the StandbyZoneId. required if you need to create multiple availability zone instances.\n"},"standbyZoneId":{"type":"string","description":"The multiple availability zone instances with availability zone IDs for the prepared availability zones. required if you need to create multiple availability zone instances.\n"},"status":{"type":"string","description":"The status of Instance.\n"},"streamEngineNodeCount":{"type":"integer","description":"The number of LindormStream nodes in the instance.\n"},"streamEngineSpecification":{"type":"string","description":"The specification of the LindormStream nodes in the instance. Valid values: `lindorm.g.xlarge`, `lindorm.g.2xlarge`, `lindorm.g.4xlarge`, `lindorm.g.8xlarge`.\n"},"tableEngineNodeCount":{"type":"integer","description":"The count of table engine.\n"},"tableEngineSpecification":{"type":"string","description":"The specification of  table engine. Valid values: `lindorm.c.2xlarge`, `lindorm.c.4xlarge`, `lindorm.c.8xlarge`, `lindorm.g.xlarge`, `lindorm.g.2xlarge`, `lindorm.g.4xlarge`, `lindorm.g.8xlarge`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"timeSeriesEngineNodeCount":{"type":"integer","description":"The count of time series engine.\n"},"timeSeriesEngineSpecification":{"type":"string","description":"The specification of time series engine. Valid values: `lindorm.g.xlarge`, `lindorm.g.2xlarge`, `lindorm.g.4xlarge`, `lindorm.g.8xlarge`, `lindorm.r.8xlarge`.\n"},"timeSeriresEngineSpecification":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`timeSeriresEngineSpecification`\" pulumi-lang-dotnet=\"`TimeSeriresEngineSpecification`\" pulumi-lang-go=\"`timeSeriresEngineSpecification`\" pulumi-lang-python=\"`time_serires_engine_specification`\" pulumi-lang-yaml=\"`timeSeriresEngineSpecification`\" pulumi-lang-java=\"`timeSeriresEngineSpecification`\"\u003e`time_serires_engine_specification`\u003c/span\u003e has been deprecated from provider version 1.182.0. New field \u003cspan pulumi-lang-nodejs=\"`timeSeriesEngineSpecification`\" pulumi-lang-dotnet=\"`TimeSeriesEngineSpecification`\" pulumi-lang-go=\"`timeSeriesEngineSpecification`\" pulumi-lang-python=\"`time_series_engine_specification`\" pulumi-lang-yaml=\"`timeSeriesEngineSpecification`\" pulumi-lang-java=\"`timeSeriesEngineSpecification`\"\u003e`time_series_engine_specification`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`timeSeriresEngineSpecification`\" pulumi-lang-dotnet=\"`TimeSeriresEngineSpecification`\" pulumi-lang-go=\"`timeSeriresEngineSpecification`\" pulumi-lang-python=\"`time_serires_engine_specification`\" pulumi-lang-yaml=\"`timeSeriresEngineSpecification`\" pulumi-lang-java=\"`timeSeriresEngineSpecification`\"\u003e`time_serires_engine_specification`\u003c/span\u003e has been deprecated from provider version 1.182.0. New field \u003cspan pulumi-lang-nodejs=\"`timeSeriesEngineSpecification`\" pulumi-lang-dotnet=\"`TimeSeriesEngineSpecification`\" pulumi-lang-go=\"`timeSeriesEngineSpecification`\" pulumi-lang-python=\"`time_series_engine_specification`\" pulumi-lang-yaml=\"`timeSeriesEngineSpecification`\" pulumi-lang-java=\"`timeSeriesEngineSpecification`\"\u003e`time_series_engine_specification`\u003c/span\u003e instead."},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string","description":"The zone ID of the instance.\n"}},"required":["archVersion","coldStorage","coreSpec","deletionProection","diskCategory","enabledFileEngine","enabledLtsEngine","enabledSearchEngine","enabledStreamEngine","enabledTableEngine","enabledTimeSeriresEngine","fileEngineNodeCount","fileEngineSpecification","instanceStorage","ltsNodeCount","ltsNodeSpecification","paymentType","resourceGroupId","searchEngineNodeCount","searchEngineSpecification","serviceType","status","streamEngineNodeCount","streamEngineSpecification","tableEngineNodeCount","tableEngineSpecification","timeSeriesEngineNodeCount","timeSeriesEngineSpecification","timeSeriresEngineSpecification","vpcId","vswitchId","zoneId"],"inputProperties":{"arbiterVswitchId":{"type":"string","description":"The multi-availability zone instance, coordinating the virtual switch ID of the availability zone, the switch must be located under the availability zone corresponding to the ArbiterZoneId. This parameter is required if you need to create multiple availability zone instances.\n","willReplaceOnChanges":true},"arbiterZoneId":{"type":"string","description":"The multiple Availability Zone Instance, the availability zone ID of the coordinating availability zone. required if you need to create multiple availability zone instances.\n","willReplaceOnChanges":true},"archVersion":{"type":"string","description":"The deployment architecture. If you do not fill in this parameter, the default is 1.0. to create multiple availability instances, fill in 2.0. if you need to create multiple availability instances, this parameter is required. Valid values: `1.0` to `2.0`.\n","willReplaceOnChanges":true},"autoRenew":{"type":"string","description":"Specifies whether to enable auto-renewal for the instance. Valid when the \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`. Default value: false. Valid values: true(enables auto-renewal), false(disables auto-renewal).\n"},"autoRenewPeriod":{"type":"string","description":"The subscription duration that is supported by auto-renewal. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e. This parameter is required only if the AutoRenew parameter is set to true.\n"},"coldStorage":{"type":"integer","description":"The cold storage capacity of the instance. Unit: GB. Valid values: [800, 1000000].\n"},"coreSingleStorage":{"type":"integer","description":"The multiple availability zone instances, CORE single node capacity. required if you want to create multiple availability zone instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64000`\" pulumi-lang-dotnet=\"`64000`\" pulumi-lang-go=\"`64000`\" pulumi-lang-python=\"`64000`\" pulumi-lang-yaml=\"`64000`\" pulumi-lang-java=\"`64000`\"\u003e`64000`\u003c/span\u003e.\n"},"coreSpec":{"type":"string","description":"The core spec. When \u003cspan pulumi-lang-nodejs=\"`diskCategory`\" pulumi-lang-dotnet=\"`DiskCategory`\" pulumi-lang-go=\"`diskCategory`\" pulumi-lang-python=\"`disk_category`\" pulumi-lang-yaml=\"`diskCategory`\" pulumi-lang-java=\"`diskCategory`\"\u003e`disk_category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, this filed is valid.\n- When \u003cspan pulumi-lang-nodejs=\"`diskCategory`\" pulumi-lang-dotnet=\"`DiskCategory`\" pulumi-lang-go=\"`diskCategory`\" pulumi-lang-python=\"`disk_category`\" pulumi-lang-yaml=\"`diskCategory`\" pulumi-lang-java=\"`diskCategory`\"\u003e`disk_category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e, the valid values is `lindorm.i2.xlarge`, `lindorm.i2.2xlarge`, `lindorm.i2.4xlarge`, `lindorm.i2.8xlarge`.\n- When \u003cspan pulumi-lang-nodejs=\"`diskCategory`\" pulumi-lang-dotnet=\"`DiskCategory`\" pulumi-lang-go=\"`diskCategory`\" pulumi-lang-python=\"`disk_category`\" pulumi-lang-yaml=\"`diskCategory`\" pulumi-lang-java=\"`diskCategory`\"\u003e`disk_category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, the valid values is `lindorm.d2c.6xlarge`, `lindorm.d2c.12xlarge`, `lindorm.d2c.24xlarge`, `lindorm.d2s.5xlarge`, `lindorm.d2s.10xlarge`, `lindorm.d1.2xlarge`, `lindorm.d1.4xlarge`, `lindorm.d1.6xlarge`.\n","willReplaceOnChanges":true},"deletionProection":{"type":"boolean","description":"The deletion protection of instance.\n"},"diskCategory":{"type":"string","description":"The disk type of instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl0`\" pulumi-lang-dotnet=\"`CloudEssdPl0`\" pulumi-lang-go=\"`cloudEssdPl0`\" pulumi-lang-python=\"`cloud_essd_pl0`\" pulumi-lang-yaml=\"`cloudEssdPl0`\" pulumi-lang-java=\"`cloudEssdPl0`\"\u003e`cloud_essd_pl0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`capacityCloudStorage`\" pulumi-lang-dotnet=\"`CapacityCloudStorage`\" pulumi-lang-go=\"`capacityCloudStorage`\" pulumi-lang-python=\"`capacity_cloud_storage`\" pulumi-lang-yaml=\"`capacityCloudStorage`\" pulumi-lang-java=\"`capacityCloudStorage`\"\u003e`capacity_cloud_storage`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e. **NOTE:** From version 1.207.0, \u003cspan pulumi-lang-nodejs=\"`diskCategory`\" pulumi-lang-dotnet=\"`DiskCategory`\" pulumi-lang-go=\"`diskCategory`\" pulumi-lang-python=\"`disk_category`\" pulumi-lang-yaml=\"`diskCategory`\" pulumi-lang-java=\"`diskCategory`\"\u003e`disk_category`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl0`\" pulumi-lang-dotnet=\"`CloudEssdPl0`\" pulumi-lang-go=\"`cloudEssdPl0`\" pulumi-lang-python=\"`cloud_essd_pl0`\" pulumi-lang-yaml=\"`cloudEssdPl0`\" pulumi-lang-java=\"`cloudEssdPl0`\"\u003e`cloud_essd_pl0`\u003c/span\u003e.\n","willReplaceOnChanges":true},"duration":{"type":"string","description":"The duration of paid. Valid when the \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.  When \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e set to `Month`, the valid value id \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.  When \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e set to `Year`, the valid value id \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"fileEngineNodeCount":{"type":"integer","description":"The count of file engine.\n"},"fileEngineSpecification":{"type":"string","description":"The specification of file engine. Valid values: `lindorm.c.xlarge`.\n"},"instanceName":{"type":"string","description":"The name of the instance.\n"},"instanceStorage":{"type":"string","description":"The storage capacity of the instance. Unit: GB. Valid values: [80, 10485760], and the value must be divisible by 80.\n"},"ipWhiteLists":{"type":"array","items":{"type":"string"},"description":"The ip white list of instance.\n"},"logDiskCategory":{"type":"string","description":"The multi-available zone instance, log node disk type. required if you need to create multiple availability zone instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e.\n","willReplaceOnChanges":true},"logNum":{"type":"integer","description":"The multiple Availability Zone Instance, number of log nodes. this parameter is required if you want to create multiple availability zone instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e.\n"},"logSingleStorage":{"type":"integer","description":"The multi-availability instance, log single-node disk capacity. This parameter is required if you want to create multiple availability zone instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64000`\" pulumi-lang-dotnet=\"`64000`\" pulumi-lang-go=\"`64000`\" pulumi-lang-python=\"`64000`\" pulumi-lang-yaml=\"`64000`\" pulumi-lang-java=\"`64000`\"\u003e`64000`\u003c/span\u003e.\n"},"logSpec":{"type":"string","description":"The multiple availability zone instances, log node specification. required if you need to create multiple availability zone instances. Valid values: `lindorm.sn1.large`, `lindorm.sn1.2xlarge`.\n"},"ltsNodeCount":{"type":"integer","description":"The count of lindorm tunnel service.\n"},"ltsNodeSpecification":{"type":"string","description":"The specification of lindorm tunnel service. Valid values: `lindorm.g.2xlarge`, `lindorm.g.xlarge`.\n"},"multiZoneCombination":{"type":"string","description":"The multi-zone combinations. Availability zone combinations are supported on the sale page. required if you need to create multiple availability zone instances. Valid values: `ap-southeast-5abc-aliyun`, `cn-hangzhou-ehi-aliyun`, `cn-beijing-acd-aliyun`, `ap-southeast-1-abc-aliyun`, `cn-zhangjiakou-abc-aliyun`, `cn-shanghai-efg-aliyun`, `cn-shanghai-abd-aliyun`, `cn-hangzhou-bef-aliyun`, `cn-hangzhou-bce-aliyun`, `cn-beijing-fgh-aliyun`, `cn-shenzhen-abc-aliyun`.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The billing method. Valid values: `PayAsYouGo` and `Subscription`.\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The pricing cycle. Valid when the \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`. Valid values: `Month` and `Year`.\n"},"primaryVswitchId":{"type":"string","description":"Multi-available zone instances, the virtual switch ID of the primary available zone, must be under the available zone corresponding to the PrimaryZoneId. required if you need to create multiple availability zone instances.\n","willReplaceOnChanges":true},"primaryZoneId":{"type":"string","description":"Multi-availability zone instance with the availability zone ID of the main availability zone. required if you need to create multiple availability zone instances.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"searchEngineNodeCount":{"type":"integer","description":"The count of search engine.\n"},"searchEngineSpecification":{"type":"string","description":"The specification of search engine. Valid values: `lindorm.g.2xlarge`, `lindorm.g.4xlarge`, `lindorm.g.8xlarge`, `lindorm.g.xlarge`.\n"},"standbyVswitchId":{"type":"string","description":"The multiple availability zone instances, the virtual switch ID of the ready availability zone must be under the availability zone corresponding to the StandbyZoneId. required if you need to create multiple availability zone instances.\n","willReplaceOnChanges":true},"standbyZoneId":{"type":"string","description":"The multiple availability zone instances with availability zone IDs for the prepared availability zones. required if you need to create multiple availability zone instances.\n","willReplaceOnChanges":true},"streamEngineNodeCount":{"type":"integer","description":"The number of LindormStream nodes in the instance.\n"},"streamEngineSpecification":{"type":"string","description":"The specification of the LindormStream nodes in the instance. Valid values: `lindorm.g.xlarge`, `lindorm.g.2xlarge`, `lindorm.g.4xlarge`, `lindorm.g.8xlarge`.\n"},"tableEngineNodeCount":{"type":"integer","description":"The count of table engine.\n"},"tableEngineSpecification":{"type":"string","description":"The specification of  table engine. Valid values: `lindorm.c.2xlarge`, `lindorm.c.4xlarge`, `lindorm.c.8xlarge`, `lindorm.g.xlarge`, `lindorm.g.2xlarge`, `lindorm.g.4xlarge`, `lindorm.g.8xlarge`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"timeSeriesEngineNodeCount":{"type":"integer","description":"The count of time series engine.\n"},"timeSeriesEngineSpecification":{"type":"string","description":"The specification of time series engine. Valid values: `lindorm.g.xlarge`, `lindorm.g.2xlarge`, `lindorm.g.4xlarge`, `lindorm.g.8xlarge`, `lindorm.r.8xlarge`.\n"},"timeSeriresEngineSpecification":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`timeSeriresEngineSpecification`\" pulumi-lang-dotnet=\"`TimeSeriresEngineSpecification`\" pulumi-lang-go=\"`timeSeriresEngineSpecification`\" pulumi-lang-python=\"`time_serires_engine_specification`\" pulumi-lang-yaml=\"`timeSeriresEngineSpecification`\" pulumi-lang-java=\"`timeSeriresEngineSpecification`\"\u003e`time_serires_engine_specification`\u003c/span\u003e has been deprecated from provider version 1.182.0. New field \u003cspan pulumi-lang-nodejs=\"`timeSeriesEngineSpecification`\" pulumi-lang-dotnet=\"`TimeSeriesEngineSpecification`\" pulumi-lang-go=\"`timeSeriesEngineSpecification`\" pulumi-lang-python=\"`time_series_engine_specification`\" pulumi-lang-yaml=\"`timeSeriesEngineSpecification`\" pulumi-lang-java=\"`timeSeriesEngineSpecification`\"\u003e`time_series_engine_specification`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`timeSeriresEngineSpecification`\" pulumi-lang-dotnet=\"`TimeSeriresEngineSpecification`\" pulumi-lang-go=\"`timeSeriresEngineSpecification`\" pulumi-lang-python=\"`time_serires_engine_specification`\" pulumi-lang-yaml=\"`timeSeriresEngineSpecification`\" pulumi-lang-java=\"`timeSeriresEngineSpecification`\"\u003e`time_serires_engine_specification`\u003c/span\u003e has been deprecated from provider version 1.182.0. New field \u003cspan pulumi-lang-nodejs=\"`timeSeriesEngineSpecification`\" pulumi-lang-dotnet=\"`TimeSeriesEngineSpecification`\" pulumi-lang-go=\"`timeSeriesEngineSpecification`\" pulumi-lang-python=\"`time_series_engine_specification`\" pulumi-lang-yaml=\"`timeSeriesEngineSpecification`\" pulumi-lang-java=\"`timeSeriesEngineSpecification`\"\u003e`time_series_engine_specification`\u003c/span\u003e instead."},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vswitch id.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the instance.\n","willReplaceOnChanges":true}},"requiredInputs":["diskCategory","paymentType","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"arbiterVswitchId":{"type":"string","description":"The multi-availability zone instance, coordinating the virtual switch ID of the availability zone, the switch must be located under the availability zone corresponding to the ArbiterZoneId. This parameter is required if you need to create multiple availability zone instances.\n","willReplaceOnChanges":true},"arbiterZoneId":{"type":"string","description":"The multiple Availability Zone Instance, the availability zone ID of the coordinating availability zone. required if you need to create multiple availability zone instances.\n","willReplaceOnChanges":true},"archVersion":{"type":"string","description":"The deployment architecture. If you do not fill in this parameter, the default is 1.0. to create multiple availability instances, fill in 2.0. if you need to create multiple availability instances, this parameter is required. Valid values: `1.0` to `2.0`.\n","willReplaceOnChanges":true},"autoRenew":{"type":"string","description":"Specifies whether to enable auto-renewal for the instance. Valid when the \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`. Default value: false. Valid values: true(enables auto-renewal), false(disables auto-renewal).\n"},"autoRenewPeriod":{"type":"string","description":"The subscription duration that is supported by auto-renewal. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e. This parameter is required only if the AutoRenew parameter is set to true.\n"},"coldStorage":{"type":"integer","description":"The cold storage capacity of the instance. Unit: GB. Valid values: [800, 1000000].\n"},"coreSingleStorage":{"type":"integer","description":"The multiple availability zone instances, CORE single node capacity. required if you want to create multiple availability zone instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64000`\" pulumi-lang-dotnet=\"`64000`\" pulumi-lang-go=\"`64000`\" pulumi-lang-python=\"`64000`\" pulumi-lang-yaml=\"`64000`\" pulumi-lang-java=\"`64000`\"\u003e`64000`\u003c/span\u003e.\n"},"coreSpec":{"type":"string","description":"The core spec. When \u003cspan pulumi-lang-nodejs=\"`diskCategory`\" pulumi-lang-dotnet=\"`DiskCategory`\" pulumi-lang-go=\"`diskCategory`\" pulumi-lang-python=\"`disk_category`\" pulumi-lang-yaml=\"`diskCategory`\" pulumi-lang-java=\"`diskCategory`\"\u003e`disk_category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, this filed is valid.\n- When \u003cspan pulumi-lang-nodejs=\"`diskCategory`\" pulumi-lang-dotnet=\"`DiskCategory`\" pulumi-lang-go=\"`diskCategory`\" pulumi-lang-python=\"`disk_category`\" pulumi-lang-yaml=\"`diskCategory`\" pulumi-lang-java=\"`diskCategory`\"\u003e`disk_category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e, the valid values is `lindorm.i2.xlarge`, `lindorm.i2.2xlarge`, `lindorm.i2.4xlarge`, `lindorm.i2.8xlarge`.\n- When \u003cspan pulumi-lang-nodejs=\"`diskCategory`\" pulumi-lang-dotnet=\"`DiskCategory`\" pulumi-lang-go=\"`diskCategory`\" pulumi-lang-python=\"`disk_category`\" pulumi-lang-yaml=\"`diskCategory`\" pulumi-lang-java=\"`diskCategory`\"\u003e`disk_category`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, the valid values is `lindorm.d2c.6xlarge`, `lindorm.d2c.12xlarge`, `lindorm.d2c.24xlarge`, `lindorm.d2s.5xlarge`, `lindorm.d2s.10xlarge`, `lindorm.d1.2xlarge`, `lindorm.d1.4xlarge`, `lindorm.d1.6xlarge`.\n","willReplaceOnChanges":true},"deletionProection":{"type":"boolean","description":"The deletion protection of instance.\n"},"diskCategory":{"type":"string","description":"The disk type of instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl0`\" pulumi-lang-dotnet=\"`CloudEssdPl0`\" pulumi-lang-go=\"`cloudEssdPl0`\" pulumi-lang-python=\"`cloud_essd_pl0`\" pulumi-lang-yaml=\"`cloudEssdPl0`\" pulumi-lang-java=\"`cloudEssdPl0`\"\u003e`cloud_essd_pl0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`capacityCloudStorage`\" pulumi-lang-dotnet=\"`CapacityCloudStorage`\" pulumi-lang-go=\"`capacityCloudStorage`\" pulumi-lang-python=\"`capacity_cloud_storage`\" pulumi-lang-yaml=\"`capacityCloudStorage`\" pulumi-lang-java=\"`capacityCloudStorage`\"\u003e`capacity_cloud_storage`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e. **NOTE:** From version 1.207.0, \u003cspan pulumi-lang-nodejs=\"`diskCategory`\" pulumi-lang-dotnet=\"`DiskCategory`\" pulumi-lang-go=\"`diskCategory`\" pulumi-lang-python=\"`disk_category`\" pulumi-lang-yaml=\"`diskCategory`\" pulumi-lang-java=\"`diskCategory`\"\u003e`disk_category`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl0`\" pulumi-lang-dotnet=\"`CloudEssdPl0`\" pulumi-lang-go=\"`cloudEssdPl0`\" pulumi-lang-python=\"`cloud_essd_pl0`\" pulumi-lang-yaml=\"`cloudEssdPl0`\" pulumi-lang-java=\"`cloudEssdPl0`\"\u003e`cloud_essd_pl0`\u003c/span\u003e.\n","willReplaceOnChanges":true},"duration":{"type":"string","description":"The duration of paid. Valid when the \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`.  When \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e set to `Month`, the valid value id \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e.  When \u003cspan pulumi-lang-nodejs=\"`pricingCycle`\" pulumi-lang-dotnet=\"`PricingCycle`\" pulumi-lang-go=\"`pricingCycle`\" pulumi-lang-python=\"`pricing_cycle`\" pulumi-lang-yaml=\"`pricingCycle`\" pulumi-lang-java=\"`pricingCycle`\"\u003e`pricing_cycle`\u003c/span\u003e set to `Year`, the valid value id \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"enabledFileEngine":{"type":"boolean","description":"(Available since v1.163.0) Whether to enable file engine.\n"},"enabledLtsEngine":{"type":"boolean","description":"(Available since v1.163.0) Whether to enable lts engine.\n"},"enabledSearchEngine":{"type":"boolean","description":"(Available since v1.163.0) Whether to enable search engine.\n"},"enabledStreamEngine":{"type":"boolean","description":"(Available since v1.211.0) Whether to enable streaming engine.\n"},"enabledTableEngine":{"type":"boolean","description":"(Available since v1.163.0) Whether to enable table engine.\n"},"enabledTimeSeriresEngine":{"type":"boolean","description":"(Available since v1.163.0) Whether to enable time serires engine.\n"},"fileEngineNodeCount":{"type":"integer","description":"The count of file engine.\n"},"fileEngineSpecification":{"type":"string","description":"The specification of file engine. Valid values: `lindorm.c.xlarge`.\n"},"instanceName":{"type":"string","description":"The name of the instance.\n"},"instanceStorage":{"type":"string","description":"The storage capacity of the instance. Unit: GB. Valid values: [80, 10485760], and the value must be divisible by 80.\n"},"ipWhiteLists":{"type":"array","items":{"type":"string"},"description":"The ip white list of instance.\n"},"logDiskCategory":{"type":"string","description":"The multi-available zone instance, log node disk type. required if you need to create multiple availability zone instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e.\n","willReplaceOnChanges":true},"logNum":{"type":"integer","description":"The multiple Availability Zone Instance, number of log nodes. this parameter is required if you want to create multiple availability zone instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e.\n"},"logSingleStorage":{"type":"integer","description":"The multi-availability instance, log single-node disk capacity. This parameter is required if you want to create multiple availability zone instances. Valid values: \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`64000`\" pulumi-lang-dotnet=\"`64000`\" pulumi-lang-go=\"`64000`\" pulumi-lang-python=\"`64000`\" pulumi-lang-yaml=\"`64000`\" pulumi-lang-java=\"`64000`\"\u003e`64000`\u003c/span\u003e.\n"},"logSpec":{"type":"string","description":"The multiple availability zone instances, log node specification. required if you need to create multiple availability zone instances. Valid values: `lindorm.sn1.large`, `lindorm.sn1.2xlarge`.\n"},"ltsNodeCount":{"type":"integer","description":"The count of lindorm tunnel service.\n"},"ltsNodeSpecification":{"type":"string","description":"The specification of lindorm tunnel service. Valid values: `lindorm.g.2xlarge`, `lindorm.g.xlarge`.\n"},"multiZoneCombination":{"type":"string","description":"The multi-zone combinations. Availability zone combinations are supported on the sale page. required if you need to create multiple availability zone instances. Valid values: `ap-southeast-5abc-aliyun`, `cn-hangzhou-ehi-aliyun`, `cn-beijing-acd-aliyun`, `ap-southeast-1-abc-aliyun`, `cn-zhangjiakou-abc-aliyun`, `cn-shanghai-efg-aliyun`, `cn-shanghai-abd-aliyun`, `cn-hangzhou-bef-aliyun`, `cn-hangzhou-bce-aliyun`, `cn-beijing-fgh-aliyun`, `cn-shenzhen-abc-aliyun`.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The billing method. Valid values: `PayAsYouGo` and `Subscription`.\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The pricing cycle. Valid when the \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is `Subscription`. Valid values: `Month` and `Year`.\n"},"primaryVswitchId":{"type":"string","description":"Multi-available zone instances, the virtual switch ID of the primary available zone, must be under the available zone corresponding to the PrimaryZoneId. required if you need to create multiple availability zone instances.\n","willReplaceOnChanges":true},"primaryZoneId":{"type":"string","description":"Multi-availability zone instance with the availability zone ID of the main availability zone. required if you need to create multiple availability zone instances.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"searchEngineNodeCount":{"type":"integer","description":"The count of search engine.\n"},"searchEngineSpecification":{"type":"string","description":"The specification of search engine. Valid values: `lindorm.g.2xlarge`, `lindorm.g.4xlarge`, `lindorm.g.8xlarge`, `lindorm.g.xlarge`.\n"},"serviceType":{"type":"string","description":"(Available since v1.196.0) The instance type.\n"},"standbyVswitchId":{"type":"string","description":"The multiple availability zone instances, the virtual switch ID of the ready availability zone must be under the availability zone corresponding to the StandbyZoneId. required if you need to create multiple availability zone instances.\n","willReplaceOnChanges":true},"standbyZoneId":{"type":"string","description":"The multiple availability zone instances with availability zone IDs for the prepared availability zones. required if you need to create multiple availability zone instances.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of Instance.\n"},"streamEngineNodeCount":{"type":"integer","description":"The number of LindormStream nodes in the instance.\n"},"streamEngineSpecification":{"type":"string","description":"The specification of the LindormStream nodes in the instance. Valid values: `lindorm.g.xlarge`, `lindorm.g.2xlarge`, `lindorm.g.4xlarge`, `lindorm.g.8xlarge`.\n"},"tableEngineNodeCount":{"type":"integer","description":"The count of table engine.\n"},"tableEngineSpecification":{"type":"string","description":"The specification of  table engine. Valid values: `lindorm.c.2xlarge`, `lindorm.c.4xlarge`, `lindorm.c.8xlarge`, `lindorm.g.xlarge`, `lindorm.g.2xlarge`, `lindorm.g.4xlarge`, `lindorm.g.8xlarge`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"timeSeriesEngineNodeCount":{"type":"integer","description":"The count of time series engine.\n"},"timeSeriesEngineSpecification":{"type":"string","description":"The specification of time series engine. Valid values: `lindorm.g.xlarge`, `lindorm.g.2xlarge`, `lindorm.g.4xlarge`, `lindorm.g.8xlarge`, `lindorm.r.8xlarge`.\n"},"timeSeriresEngineSpecification":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`timeSeriresEngineSpecification`\" pulumi-lang-dotnet=\"`TimeSeriresEngineSpecification`\" pulumi-lang-go=\"`timeSeriresEngineSpecification`\" pulumi-lang-python=\"`time_serires_engine_specification`\" pulumi-lang-yaml=\"`timeSeriresEngineSpecification`\" pulumi-lang-java=\"`timeSeriresEngineSpecification`\"\u003e`time_serires_engine_specification`\u003c/span\u003e has been deprecated from provider version 1.182.0. New field \u003cspan pulumi-lang-nodejs=\"`timeSeriesEngineSpecification`\" pulumi-lang-dotnet=\"`TimeSeriesEngineSpecification`\" pulumi-lang-go=\"`timeSeriesEngineSpecification`\" pulumi-lang-python=\"`time_series_engine_specification`\" pulumi-lang-yaml=\"`timeSeriesEngineSpecification`\" pulumi-lang-java=\"`timeSeriesEngineSpecification`\"\u003e`time_series_engine_specification`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`timeSeriresEngineSpecification`\" pulumi-lang-dotnet=\"`TimeSeriresEngineSpecification`\" pulumi-lang-go=\"`timeSeriresEngineSpecification`\" pulumi-lang-python=\"`time_serires_engine_specification`\" pulumi-lang-yaml=\"`timeSeriresEngineSpecification`\" pulumi-lang-java=\"`timeSeriresEngineSpecification`\"\u003e`time_serires_engine_specification`\u003c/span\u003e has been deprecated from provider version 1.182.0. New field \u003cspan pulumi-lang-nodejs=\"`timeSeriesEngineSpecification`\" pulumi-lang-dotnet=\"`TimeSeriesEngineSpecification`\" pulumi-lang-go=\"`timeSeriesEngineSpecification`\" pulumi-lang-python=\"`time_series_engine_specification`\" pulumi-lang-yaml=\"`timeSeriesEngineSpecification`\" pulumi-lang-java=\"`timeSeriesEngineSpecification`\"\u003e`time_series_engine_specification`\u003c/span\u003e instead."},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vswitch id.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:lindorm/instanceV2:InstanceV2":{"description":"Provides a Lindorm Instance V2 resource.\n\nCloud-native multi-model database.\n\nFor information about Lindorm Instance V2 and how to use it, see [What is Instance V2](https://next.api.alibabacloud.com/document/hitsdb/2020-06-15/CreateLindormV2Instance).\n\n\u003e **NOTE:** Available since v1.260.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultR8vXlP = new alicloud.vpc.Network(\"defaultR8vXlP\", {cidrBlock: \"172.16.0.0/16\"});\nconst default9umuzwH = new alicloud.vpc.Switch(\"default9umuzwH\", {\n    vpcId: defaultR8vXlP.id,\n    zoneId: \"cn-beijing-h\",\n    cidrBlock: \"172.16.0.0/24\",\n});\nconst defaultgOFAo3L = new alicloud.vpc.Switch(\"defaultgOFAo3L\", {\n    vpcId: defaultR8vXlP.id,\n    zoneId: \"cn-beijing-l\",\n    cidrBlock: \"172.16.1.0/24\",\n});\nconst defaultTAbr2pJ = new alicloud.vpc.Switch(\"defaultTAbr2pJ\", {\n    vpcId: defaultR8vXlP.id,\n    zoneId: \"cn-beijing-j\",\n    cidrBlock: \"172.16.2.0/24\",\n});\nconst _default = new alicloud.lindorm.InstanceV2(\"default\", {\n    standbyZoneId: \"cn-beijing-l\",\n    engineLists: [{\n        engineType: \"TABLE\",\n        nodeGroups: [{\n            nodeCount: 4,\n            nodeSpec: \"lindorm.g.2xlarge\",\n            resourceGroupName: \"cx-mz-rg\",\n        }],\n    }],\n    cloudStorageSize: 400,\n    primaryZoneId: \"cn-beijing-h\",\n    zoneId: \"cn-beijing-h\",\n    cloudStorageType: \"PerformanceStorage\",\n    archVersion: \"2.0\",\n    vswitchId: default9umuzwH.id,\n    standbyVswitchId: defaultgOFAo3L.id,\n    primaryVswitchId: default9umuzwH.id,\n    arbiterVswitchId: defaultTAbr2pJ.id,\n    vpcId: defaultR8vXlP.id,\n    instanceAlias: \"preTest-MZ\",\n    paymentType: \"POSTPAY\",\n    arbiterZoneId: \"cn-beijing-j\",\n    autoRenewal: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_r8v_xl_p = alicloud.vpc.Network(\"defaultR8vXlP\", cidr_block=\"172.16.0.0/16\")\ndefault9umuzw_h = alicloud.vpc.Switch(\"default9umuzwH\",\n    vpc_id=default_r8v_xl_p.id,\n    zone_id=\"cn-beijing-h\",\n    cidr_block=\"172.16.0.0/24\")\ndefaultg_of_ao3_l = alicloud.vpc.Switch(\"defaultgOFAo3L\",\n    vpc_id=default_r8v_xl_p.id,\n    zone_id=\"cn-beijing-l\",\n    cidr_block=\"172.16.1.0/24\")\ndefault_t_abr2p_j = alicloud.vpc.Switch(\"defaultTAbr2pJ\",\n    vpc_id=default_r8v_xl_p.id,\n    zone_id=\"cn-beijing-j\",\n    cidr_block=\"172.16.2.0/24\")\ndefault = alicloud.lindorm.InstanceV2(\"default\",\n    standby_zone_id=\"cn-beijing-l\",\n    engine_lists=[{\n        \"engine_type\": \"TABLE\",\n        \"node_groups\": [{\n            \"node_count\": 4,\n            \"node_spec\": \"lindorm.g.2xlarge\",\n            \"resource_group_name\": \"cx-mz-rg\",\n        }],\n    }],\n    cloud_storage_size=400,\n    primary_zone_id=\"cn-beijing-h\",\n    zone_id=\"cn-beijing-h\",\n    cloud_storage_type=\"PerformanceStorage\",\n    arch_version=\"2.0\",\n    vswitch_id=default9umuzw_h.id,\n    standby_vswitch_id=defaultg_of_ao3_l.id,\n    primary_vswitch_id=default9umuzw_h.id,\n    arbiter_vswitch_id=default_t_abr2p_j.id,\n    vpc_id=default_r8v_xl_p.id,\n    instance_alias=\"preTest-MZ\",\n    payment_type=\"POSTPAY\",\n    arbiter_zone_id=\"cn-beijing-j\",\n    auto_renewal=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultR8vXlP = new AliCloud.Vpc.Network(\"defaultR8vXlP\", new()\n    {\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var default9umuzwH = new AliCloud.Vpc.Switch(\"default9umuzwH\", new()\n    {\n        VpcId = defaultR8vXlP.Id,\n        ZoneId = \"cn-beijing-h\",\n        CidrBlock = \"172.16.0.0/24\",\n    });\n\n    var defaultgOFAo3L = new AliCloud.Vpc.Switch(\"defaultgOFAo3L\", new()\n    {\n        VpcId = defaultR8vXlP.Id,\n        ZoneId = \"cn-beijing-l\",\n        CidrBlock = \"172.16.1.0/24\",\n    });\n\n    var defaultTAbr2pJ = new AliCloud.Vpc.Switch(\"defaultTAbr2pJ\", new()\n    {\n        VpcId = defaultR8vXlP.Id,\n        ZoneId = \"cn-beijing-j\",\n        CidrBlock = \"172.16.2.0/24\",\n    });\n\n    var @default = new AliCloud.Lindorm.InstanceV2(\"default\", new()\n    {\n        StandbyZoneId = \"cn-beijing-l\",\n        EngineLists = new[]\n        {\n            new AliCloud.Lindorm.Inputs.InstanceV2EngineListArgs\n            {\n                EngineType = \"TABLE\",\n                NodeGroups = new[]\n                {\n                    new AliCloud.Lindorm.Inputs.InstanceV2EngineListNodeGroupArgs\n                    {\n                        NodeCount = 4,\n                        NodeSpec = \"lindorm.g.2xlarge\",\n                        ResourceGroupName = \"cx-mz-rg\",\n                    },\n                },\n            },\n        },\n        CloudStorageSize = 400,\n        PrimaryZoneId = \"cn-beijing-h\",\n        ZoneId = \"cn-beijing-h\",\n        CloudStorageType = \"PerformanceStorage\",\n        ArchVersion = \"2.0\",\n        VswitchId = default9umuzwH.Id,\n        StandbyVswitchId = defaultgOFAo3L.Id,\n        PrimaryVswitchId = default9umuzwH.Id,\n        ArbiterVswitchId = defaultTAbr2pJ.Id,\n        VpcId = defaultR8vXlP.Id,\n        InstanceAlias = \"preTest-MZ\",\n        PaymentType = \"POSTPAY\",\n        ArbiterZoneId = \"cn-beijing-j\",\n        AutoRenewal = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/lindorm\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultR8vXlP, err := vpc.NewNetwork(ctx, \"defaultR8vXlP\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault9umuzwH, err := vpc.NewSwitch(ctx, \"default9umuzwH\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultR8vXlP.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-beijing-h\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultgOFAo3L, err := vpc.NewSwitch(ctx, \"defaultgOFAo3L\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultR8vXlP.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-beijing-l\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTAbr2pJ, err := vpc.NewSwitch(ctx, \"defaultTAbr2pJ\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultR8vXlP.ID(),\n\t\t\tZoneId:    pulumi.String(\"cn-beijing-j\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.2.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lindorm.NewInstanceV2(ctx, \"default\", \u0026lindorm.InstanceV2Args{\n\t\t\tStandbyZoneId: pulumi.String(\"cn-beijing-l\"),\n\t\t\tEngineLists: lindorm.InstanceV2EngineListArray{\n\t\t\t\t\u0026lindorm.InstanceV2EngineListArgs{\n\t\t\t\t\tEngineType: pulumi.String(\"TABLE\"),\n\t\t\t\t\tNodeGroups: lindorm.InstanceV2EngineListNodeGroupArray{\n\t\t\t\t\t\t\u0026lindorm.InstanceV2EngineListNodeGroupArgs{\n\t\t\t\t\t\t\tNodeCount:         pulumi.Int(4),\n\t\t\t\t\t\t\tNodeSpec:          pulumi.String(\"lindorm.g.2xlarge\"),\n\t\t\t\t\t\t\tResourceGroupName: pulumi.String(\"cx-mz-rg\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCloudStorageSize: pulumi.Int(400),\n\t\t\tPrimaryZoneId:    pulumi.String(\"cn-beijing-h\"),\n\t\t\tZoneId:           pulumi.String(\"cn-beijing-h\"),\n\t\t\tCloudStorageType: pulumi.String(\"PerformanceStorage\"),\n\t\t\tArchVersion:      pulumi.String(\"2.0\"),\n\t\t\tVswitchId:        default9umuzwH.ID(),\n\t\t\tStandbyVswitchId: defaultgOFAo3L.ID(),\n\t\t\tPrimaryVswitchId: default9umuzwH.ID(),\n\t\t\tArbiterVswitchId: defaultTAbr2pJ.ID(),\n\t\t\tVpcId:            defaultR8vXlP.ID(),\n\t\t\tInstanceAlias:    pulumi.String(\"preTest-MZ\"),\n\t\t\tPaymentType:      pulumi.String(\"POSTPAY\"),\n\t\t\tArbiterZoneId:    pulumi.String(\"cn-beijing-j\"),\n\t\t\tAutoRenewal:      pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.lindorm.InstanceV2;\nimport com.pulumi.alicloud.lindorm.InstanceV2Args;\nimport com.pulumi.alicloud.lindorm.inputs.InstanceV2EngineListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultR8vXlP = new Network(\"defaultR8vXlP\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var default9umuzwH = new Switch(\"default9umuzwH\", SwitchArgs.builder()\n            .vpcId(defaultR8vXlP.id())\n            .zoneId(\"cn-beijing-h\")\n            .cidrBlock(\"172.16.0.0/24\")\n            .build());\n\n        var defaultgOFAo3L = new Switch(\"defaultgOFAo3L\", SwitchArgs.builder()\n            .vpcId(defaultR8vXlP.id())\n            .zoneId(\"cn-beijing-l\")\n            .cidrBlock(\"172.16.1.0/24\")\n            .build());\n\n        var defaultTAbr2pJ = new Switch(\"defaultTAbr2pJ\", SwitchArgs.builder()\n            .vpcId(defaultR8vXlP.id())\n            .zoneId(\"cn-beijing-j\")\n            .cidrBlock(\"172.16.2.0/24\")\n            .build());\n\n        var default_ = new InstanceV2(\"default\", InstanceV2Args.builder()\n            .standbyZoneId(\"cn-beijing-l\")\n            .engineLists(InstanceV2EngineListArgs.builder()\n                .engineType(\"TABLE\")\n                .nodeGroups(InstanceV2EngineListNodeGroupArgs.builder()\n                    .nodeCount(4)\n                    .nodeSpec(\"lindorm.g.2xlarge\")\n                    .resourceGroupName(\"cx-mz-rg\")\n                    .build())\n                .build())\n            .cloudStorageSize(400)\n            .primaryZoneId(\"cn-beijing-h\")\n            .zoneId(\"cn-beijing-h\")\n            .cloudStorageType(\"PerformanceStorage\")\n            .archVersion(\"2.0\")\n            .vswitchId(default9umuzwH.id())\n            .standbyVswitchId(defaultgOFAo3L.id())\n            .primaryVswitchId(default9umuzwH.id())\n            .arbiterVswitchId(defaultTAbr2pJ.id())\n            .vpcId(defaultR8vXlP.id())\n            .instanceAlias(\"preTest-MZ\")\n            .paymentType(\"POSTPAY\")\n            .arbiterZoneId(\"cn-beijing-j\")\n            .autoRenewal(false)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultR8vXlP:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/16\n  default9umuzwH:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultR8vXlP.id}\n      zoneId: cn-beijing-h\n      cidrBlock: 172.16.0.0/24\n  defaultgOFAo3L:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultR8vXlP.id}\n      zoneId: cn-beijing-l\n      cidrBlock: 172.16.1.0/24\n  defaultTAbr2pJ:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultR8vXlP.id}\n      zoneId: cn-beijing-j\n      cidrBlock: 172.16.2.0/24\n  default:\n    type: alicloud:lindorm:InstanceV2\n    properties:\n      standbyZoneId: cn-beijing-l\n      engineLists:\n        - engineType: TABLE\n          nodeGroups:\n            - nodeCount: '4'\n              nodeSpec: lindorm.g.2xlarge\n              resourceGroupName: cx-mz-rg\n      cloudStorageSize: '400'\n      primaryZoneId: cn-beijing-h\n      zoneId: cn-beijing-h\n      cloudStorageType: PerformanceStorage\n      archVersion: '2.0'\n      vswitchId: ${default9umuzwH.id}\n      standbyVswitchId: ${defaultgOFAo3L.id}\n      primaryVswitchId: ${default9umuzwH.id}\n      arbiterVswitchId: ${defaultTAbr2pJ.id}\n      vpcId: ${defaultR8vXlP.id}\n      instanceAlias: preTest-MZ\n      paymentType: POSTPAY\n      arbiterZoneId: cn-beijing-j\n      autoRenewal: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLindorm Instance V2 can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:lindorm/instanceV2:InstanceV2 example \u003cid\u003e\n```\n\n","properties":{"arbiterVswitchId":{"type":"string","description":"Coordination Zone VswitchId\n"},"arbiterZoneId":{"type":"string","description":"Coordination Zone ZoneId\n"},"archVersion":{"type":"string","description":"Deployment Scenario\n\nEnumeration value:\n- **1.0**: Single Zone\n- **2.0**: Multi-AZ Basic Edition\n- **3.0**: Multi-AZ High Availability Edition\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"autoRenewDuration":{"type":"string","description":"Automatic renewal duration. Unit: Month.\n\nValue range: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n\n\u003e **NOTE:**  This item takes effect only when `AutoRenewal` is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"autoRenewal":{"type":"boolean","description":"Whether the instance is automatically renewed. Enumerated values:\n"},"cloudStorageSize":{"type":"integer","description":"The Sales page storage type supports cloud storage and local sites. If you select cloud storage, this parameter is required.\n\n\u003e **NOTE:**  Cloud storage capacity in GB\n"},"cloudStorageType":{"type":"string","description":"Cloud storage type, the sales page storage type supports cloud storage and local sites. If you select cloud storage, this parameter is required.\n\nEnumeration value:\n- `StandardStorage`: Standard cloud storage\n- **Performance storage**: Performance-based cloud storage\n- **Capacity Storage**: Capacity-based cloud storage\n"},"deletionProtection":{"type":"string","description":"Whether to enable deletion protection\n"},"duration":{"type":"integer","description":"The specified duration when the resource is purchased. Only the subscription instances are valid.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"engineLists":{"type":"array","items":{"$ref":"#/types/alicloud:lindorm/InstanceV2EngineList:InstanceV2EngineList"},"description":"Engine List See \u003cspan pulumi-lang-nodejs=\"`engineList`\" pulumi-lang-dotnet=\"`EngineList`\" pulumi-lang-go=\"`engineList`\" pulumi-lang-python=\"`engine_list`\" pulumi-lang-yaml=\"`engineList`\" pulumi-lang-java=\"`engineList`\"\u003e`engine_list`\u003c/span\u003e below.\n"},"instanceAlias":{"type":"string","description":"Instance name\n"},"paymentType":{"type":"string","description":"Resource attribute fields representing payment types\n\nEnumeration value:\n- `PREPAY`: Prepaid mode\n- `POSTPAY`: Postpay mode\n"},"pricingCycle":{"type":"string","description":"Purchase duration unit: Month, Year\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"primaryVswitchId":{"type":"string","description":"Primary zone VswitchId\n"},"primaryZoneId":{"type":"string","description":"Primary zone ZoneID\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"standbyVswitchId":{"type":"string","description":"Standby zone VswitchId\n"},"standbyZoneId":{"type":"string","description":"Standby zone ZoneID\n"},"vpcId":{"type":"string","description":"VpcId\n"},"vswitchId":{"type":"string","description":"VswitchId\n"},"whiteIpLists":{"type":"array","items":{"$ref":"#/types/alicloud:lindorm/InstanceV2WhiteIpList:InstanceV2WhiteIpList"},"description":"Instance whitelist list See \u003cspan pulumi-lang-nodejs=\"`whiteIpList`\" pulumi-lang-dotnet=\"`WhiteIpList`\" pulumi-lang-go=\"`whiteIpList`\" pulumi-lang-python=\"`white_ip_list`\" pulumi-lang-yaml=\"`whiteIpList`\" pulumi-lang-java=\"`whiteIpList`\"\u003e`white_ip_list`\u003c/span\u003e below.\n"},"zoneId":{"type":"string","description":"The zone ID  of the resource\n"}},"required":["archVersion","deletionProtection","engineLists","instanceAlias","paymentType","regionId","vpcId","vswitchId","whiteIpLists","zoneId"],"inputProperties":{"arbiterVswitchId":{"type":"string","description":"Coordination Zone VswitchId\n","willReplaceOnChanges":true},"arbiterZoneId":{"type":"string","description":"Coordination Zone ZoneId\n","willReplaceOnChanges":true},"archVersion":{"type":"string","description":"Deployment Scenario\n\nEnumeration value:\n- **1.0**: Single Zone\n- **2.0**: Multi-AZ Basic Edition\n- **3.0**: Multi-AZ High Availability Edition\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"autoRenewDuration":{"type":"string","description":"Automatic renewal duration. Unit: Month.\n\nValue range: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n\n\u003e **NOTE:**  This item takes effect only when `AutoRenewal` is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"autoRenewal":{"type":"boolean","description":"Whether the instance is automatically renewed. Enumerated values:\n"},"cloudStorageSize":{"type":"integer","description":"The Sales page storage type supports cloud storage and local sites. If you select cloud storage, this parameter is required.\n\n\u003e **NOTE:**  Cloud storage capacity in GB\n"},"cloudStorageType":{"type":"string","description":"Cloud storage type, the sales page storage type supports cloud storage and local sites. If you select cloud storage, this parameter is required.\n\nEnumeration value:\n- `StandardStorage`: Standard cloud storage\n- **Performance storage**: Performance-based cloud storage\n- **Capacity Storage**: Capacity-based cloud storage\n","willReplaceOnChanges":true},"deletionProtection":{"type":"string","description":"Whether to enable deletion protection\n"},"duration":{"type":"integer","description":"The specified duration when the resource is purchased. Only the subscription instances are valid.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"engineLists":{"type":"array","items":{"$ref":"#/types/alicloud:lindorm/InstanceV2EngineList:InstanceV2EngineList"},"description":"Engine List See \u003cspan pulumi-lang-nodejs=\"`engineList`\" pulumi-lang-dotnet=\"`EngineList`\" pulumi-lang-go=\"`engineList`\" pulumi-lang-python=\"`engine_list`\" pulumi-lang-yaml=\"`engineList`\" pulumi-lang-java=\"`engineList`\"\u003e`engine_list`\u003c/span\u003e below.\n"},"instanceAlias":{"type":"string","description":"Instance name\n"},"paymentType":{"type":"string","description":"Resource attribute fields representing payment types\n\nEnumeration value:\n- `PREPAY`: Prepaid mode\n- `POSTPAY`: Postpay mode\n"},"pricingCycle":{"type":"string","description":"Purchase duration unit: Month, Year\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"primaryVswitchId":{"type":"string","description":"Primary zone VswitchId\n","willReplaceOnChanges":true},"primaryZoneId":{"type":"string","description":"Primary zone ZoneID\n","willReplaceOnChanges":true},"standbyVswitchId":{"type":"string","description":"Standby zone VswitchId\n","willReplaceOnChanges":true},"standbyZoneId":{"type":"string","description":"Standby zone ZoneID\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"VpcId\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"VswitchId\n","willReplaceOnChanges":true},"whiteIpLists":{"type":"array","items":{"$ref":"#/types/alicloud:lindorm/InstanceV2WhiteIpList:InstanceV2WhiteIpList"},"description":"Instance whitelist list See \u003cspan pulumi-lang-nodejs=\"`whiteIpList`\" pulumi-lang-dotnet=\"`WhiteIpList`\" pulumi-lang-go=\"`whiteIpList`\" pulumi-lang-python=\"`white_ip_list`\" pulumi-lang-yaml=\"`whiteIpList`\" pulumi-lang-java=\"`whiteIpList`\"\u003e`white_ip_list`\u003c/span\u003e below.\n"},"zoneId":{"type":"string","description":"The zone ID  of the resource\n","willReplaceOnChanges":true}},"requiredInputs":["archVersion","engineLists","instanceAlias","paymentType","vpcId","vswitchId","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceV2 resources.\n","properties":{"arbiterVswitchId":{"type":"string","description":"Coordination Zone VswitchId\n","willReplaceOnChanges":true},"arbiterZoneId":{"type":"string","description":"Coordination Zone ZoneId\n","willReplaceOnChanges":true},"archVersion":{"type":"string","description":"Deployment Scenario\n\nEnumeration value:\n- **1.0**: Single Zone\n- **2.0**: Multi-AZ Basic Edition\n- **3.0**: Multi-AZ High Availability Edition\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"autoRenewDuration":{"type":"string","description":"Automatic renewal duration. Unit: Month.\n\nValue range: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n\n\u003e **NOTE:**  This item takes effect only when `AutoRenewal` is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"autoRenewal":{"type":"boolean","description":"Whether the instance is automatically renewed. Enumerated values:\n"},"cloudStorageSize":{"type":"integer","description":"The Sales page storage type supports cloud storage and local sites. If you select cloud storage, this parameter is required.\n\n\u003e **NOTE:**  Cloud storage capacity in GB\n"},"cloudStorageType":{"type":"string","description":"Cloud storage type, the sales page storage type supports cloud storage and local sites. If you select cloud storage, this parameter is required.\n\nEnumeration value:\n- `StandardStorage`: Standard cloud storage\n- **Performance storage**: Performance-based cloud storage\n- **Capacity Storage**: Capacity-based cloud storage\n","willReplaceOnChanges":true},"deletionProtection":{"type":"string","description":"Whether to enable deletion protection\n"},"duration":{"type":"integer","description":"The specified duration when the resource is purchased. Only the subscription instances are valid.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"engineLists":{"type":"array","items":{"$ref":"#/types/alicloud:lindorm/InstanceV2EngineList:InstanceV2EngineList"},"description":"Engine List See \u003cspan pulumi-lang-nodejs=\"`engineList`\" pulumi-lang-dotnet=\"`EngineList`\" pulumi-lang-go=\"`engineList`\" pulumi-lang-python=\"`engine_list`\" pulumi-lang-yaml=\"`engineList`\" pulumi-lang-java=\"`engineList`\"\u003e`engine_list`\u003c/span\u003e below.\n"},"instanceAlias":{"type":"string","description":"Instance name\n"},"paymentType":{"type":"string","description":"Resource attribute fields representing payment types\n\nEnumeration value:\n- `PREPAY`: Prepaid mode\n- `POSTPAY`: Postpay mode\n"},"pricingCycle":{"type":"string","description":"Purchase duration unit: Month, Year\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"primaryVswitchId":{"type":"string","description":"Primary zone VswitchId\n","willReplaceOnChanges":true},"primaryZoneId":{"type":"string","description":"Primary zone ZoneID\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The region ID of the resource\n"},"standbyVswitchId":{"type":"string","description":"Standby zone VswitchId\n","willReplaceOnChanges":true},"standbyZoneId":{"type":"string","description":"Standby zone ZoneID\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"VpcId\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"VswitchId\n","willReplaceOnChanges":true},"whiteIpLists":{"type":"array","items":{"$ref":"#/types/alicloud:lindorm/InstanceV2WhiteIpList:InstanceV2WhiteIpList"},"description":"Instance whitelist list See \u003cspan pulumi-lang-nodejs=\"`whiteIpList`\" pulumi-lang-dotnet=\"`WhiteIpList`\" pulumi-lang-go=\"`whiteIpList`\" pulumi-lang-python=\"`white_ip_list`\" pulumi-lang-yaml=\"`whiteIpList`\" pulumi-lang-java=\"`whiteIpList`\"\u003e`white_ip_list`\u003c/span\u003e below.\n"},"zoneId":{"type":"string","description":"The zone ID  of the resource\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:lindorm/publicNetwork:PublicNetwork":{"description":"Provides a Lindorm Public Network resource.\n\nPublic network connection of Lindorm instance.\n\nFor information about Lindorm Public Network and how to use it, see [What is Public Network](https://next.api.alibabacloud.com/document/hitsdb/2020-06-15/SwitchInstancePublicNetwork).\n\n\u003e **NOTE:** Available since v1.250.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst zoneId = config.get(\"zoneId\") || \"cn-shanghai-f\";\nconst regionId = config.get(\"regionId\") || \"cn-shanghai\";\nconst defaultX7MgJO = new alicloud.vpc.Network(\"defaultX7MgJO\", {\n    description: name,\n    cidrBlock: \"10.0.0.0/8\",\n    vpcName: \"amp-example-shanghai\",\n});\nconst default45mCzM = new alicloud.vpc.Switch(\"default45mCzM\", {\n    description: name,\n    vpcId: defaultX7MgJO.id,\n    zoneId: zoneId,\n    cidrBlock: \"10.0.0.0/24\",\n});\nconst defaultQpsLKr = new alicloud.lindorm.Instance(\"defaultQpsLKr\", {\n    paymentType: \"PayAsYouGo\",\n    tableEngineNodeCount: 2,\n    instanceStorage: \"80\",\n    zoneId: zoneId,\n    vswitchId: default45mCzM.id,\n    diskCategory: \"cloud_efficiency\",\n    tableEngineSpecification: \"lindorm.g.xlarge\",\n    instanceName: \"tf-example\",\n    vpcId: defaultX7MgJO.id,\n});\nconst _default = new alicloud.lindorm.PublicNetwork(\"default\", {\n    instanceId: defaultQpsLKr.id,\n    enablePublicNetwork: 1,\n    engineType: \"lindorm\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nzone_id = config.get(\"zoneId\")\nif zone_id is None:\n    zone_id = \"cn-shanghai-f\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-shanghai\"\ndefault_x7_mg_jo = alicloud.vpc.Network(\"defaultX7MgJO\",\n    description=name,\n    cidr_block=\"10.0.0.0/8\",\n    vpc_name=\"amp-example-shanghai\")\ndefault45m_cz_m = alicloud.vpc.Switch(\"default45mCzM\",\n    description=name,\n    vpc_id=default_x7_mg_jo.id,\n    zone_id=zone_id,\n    cidr_block=\"10.0.0.0/24\")\ndefault_qps_l_kr = alicloud.lindorm.Instance(\"defaultQpsLKr\",\n    payment_type=\"PayAsYouGo\",\n    table_engine_node_count=2,\n    instance_storage=\"80\",\n    zone_id=zone_id,\n    vswitch_id=default45m_cz_m.id,\n    disk_category=\"cloud_efficiency\",\n    table_engine_specification=\"lindorm.g.xlarge\",\n    instance_name=\"tf-example\",\n    vpc_id=default_x7_mg_jo.id)\ndefault = alicloud.lindorm.PublicNetwork(\"default\",\n    instance_id=default_qps_l_kr.id,\n    enable_public_network=1,\n    engine_type=\"lindorm\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var zoneId = config.Get(\"zoneId\") ?? \"cn-shanghai-f\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-shanghai\";\n    var defaultX7MgJO = new AliCloud.Vpc.Network(\"defaultX7MgJO\", new()\n    {\n        Description = name,\n        CidrBlock = \"10.0.0.0/8\",\n        VpcName = \"amp-example-shanghai\",\n    });\n\n    var default45mCzM = new AliCloud.Vpc.Switch(\"default45mCzM\", new()\n    {\n        Description = name,\n        VpcId = defaultX7MgJO.Id,\n        ZoneId = zoneId,\n        CidrBlock = \"10.0.0.0/24\",\n    });\n\n    var defaultQpsLKr = new AliCloud.Lindorm.Instance(\"defaultQpsLKr\", new()\n    {\n        PaymentType = \"PayAsYouGo\",\n        TableEngineNodeCount = 2,\n        InstanceStorage = \"80\",\n        ZoneId = zoneId,\n        VswitchId = default45mCzM.Id,\n        DiskCategory = \"cloud_efficiency\",\n        TableEngineSpecification = \"lindorm.g.xlarge\",\n        InstanceName = \"tf-example\",\n        VpcId = defaultX7MgJO.Id,\n    });\n\n    var @default = new AliCloud.Lindorm.PublicNetwork(\"default\", new()\n    {\n        InstanceId = defaultQpsLKr.Id,\n        EnablePublicNetwork = 1,\n        EngineType = \"lindorm\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/lindorm\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tzoneId := \"cn-shanghai-f\"\n\t\tif param := cfg.Get(\"zoneId\"); param != \"\" {\n\t\t\tzoneId = param\n\t\t}\n\t\tregionId := \"cn-shanghai\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\tdefaultX7MgJO, err := vpc.NewNetwork(ctx, \"defaultX7MgJO\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.0.0.0/8\"),\n\t\t\tVpcName:     pulumi.String(\"amp-example-shanghai\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault45mCzM, err := vpc.NewSwitch(ctx, \"default45mCzM\", \u0026vpc.SwitchArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tVpcId:       defaultX7MgJO.ID(),\n\t\t\tZoneId:      pulumi.String(zoneId),\n\t\t\tCidrBlock:   pulumi.String(\"10.0.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultQpsLKr, err := lindorm.NewInstance(ctx, \"defaultQpsLKr\", \u0026lindorm.InstanceArgs{\n\t\t\tPaymentType:              pulumi.String(\"PayAsYouGo\"),\n\t\t\tTableEngineNodeCount:     pulumi.Int(2),\n\t\t\tInstanceStorage:          pulumi.String(\"80\"),\n\t\t\tZoneId:                   pulumi.String(zoneId),\n\t\t\tVswitchId:                default45mCzM.ID(),\n\t\t\tDiskCategory:             pulumi.String(\"cloud_efficiency\"),\n\t\t\tTableEngineSpecification: pulumi.String(\"lindorm.g.xlarge\"),\n\t\t\tInstanceName:             pulumi.String(\"tf-example\"),\n\t\t\tVpcId:                    defaultX7MgJO.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lindorm.NewPublicNetwork(ctx, \"default\", \u0026lindorm.PublicNetworkArgs{\n\t\t\tInstanceId:          defaultQpsLKr.ID(),\n\t\t\tEnablePublicNetwork: pulumi.Int(1),\n\t\t\tEngineType:          pulumi.String(\"lindorm\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.lindorm.Instance;\nimport com.pulumi.alicloud.lindorm.InstanceArgs;\nimport com.pulumi.alicloud.lindorm.PublicNetwork;\nimport com.pulumi.alicloud.lindorm.PublicNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var zoneId = config.get(\"zoneId\").orElse(\"cn-shanghai-f\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-shanghai\");\n        var defaultX7MgJO = new Network(\"defaultX7MgJO\", NetworkArgs.builder()\n            .description(name)\n            .cidrBlock(\"10.0.0.0/8\")\n            .vpcName(\"amp-example-shanghai\")\n            .build());\n\n        var default45mCzM = new Switch(\"default45mCzM\", SwitchArgs.builder()\n            .description(name)\n            .vpcId(defaultX7MgJO.id())\n            .zoneId(zoneId)\n            .cidrBlock(\"10.0.0.0/24\")\n            .build());\n\n        var defaultQpsLKr = new Instance(\"defaultQpsLKr\", InstanceArgs.builder()\n            .paymentType(\"PayAsYouGo\")\n            .tableEngineNodeCount(2)\n            .instanceStorage(\"80\")\n            .zoneId(zoneId)\n            .vswitchId(default45mCzM.id())\n            .diskCategory(\"cloud_efficiency\")\n            .tableEngineSpecification(\"lindorm.g.xlarge\")\n            .instanceName(\"tf-example\")\n            .vpcId(defaultX7MgJO.id())\n            .build());\n\n        var default_ = new PublicNetwork(\"default\", PublicNetworkArgs.builder()\n            .instanceId(defaultQpsLKr.id())\n            .enablePublicNetwork(1)\n            .engineType(\"lindorm\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  zoneId:\n    type: string\n    default: cn-shanghai-f\n  regionId:\n    type: string\n    default: cn-shanghai\nresources:\n  defaultX7MgJO:\n    type: alicloud:vpc:Network\n    properties:\n      description: ${name}\n      cidrBlock: 10.0.0.0/8\n      vpcName: amp-example-shanghai\n  default45mCzM:\n    type: alicloud:vpc:Switch\n    properties:\n      description: ${name}\n      vpcId: ${defaultX7MgJO.id}\n      zoneId: ${zoneId}\n      cidrBlock: 10.0.0.0/24\n  defaultQpsLKr:\n    type: alicloud:lindorm:Instance\n    properties:\n      paymentType: PayAsYouGo\n      tableEngineNodeCount: '2'\n      instanceStorage: '80'\n      zoneId: ${zoneId}\n      vswitchId: ${default45mCzM.id}\n      diskCategory: cloud_efficiency\n      tableEngineSpecification: lindorm.g.xlarge\n      instanceName: tf-example\n      vpcId: ${defaultX7MgJO.id}\n  default:\n    type: alicloud:lindorm:PublicNetwork\n    properties:\n      instanceId: ${defaultQpsLKr.id}\n      enablePublicNetwork: '1'\n      engineType: lindorm\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.lindorm.PublicNetwork`\" pulumi-lang-dotnet=\"`alicloud.lindorm.PublicNetwork`\" pulumi-lang-go=\"`lindorm.PublicNetwork`\" pulumi-lang-python=\"`lindorm.PublicNetwork`\" pulumi-lang-yaml=\"`alicloud.lindorm.PublicNetwork`\" pulumi-lang-java=\"`alicloud.lindorm.PublicNetwork`\"\u003e`alicloud.lindorm.PublicNetwork`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.lindorm.PublicNetwork`\" pulumi-lang-dotnet=\"`alicloud.lindorm.PublicNetwork`\" pulumi-lang-go=\"`lindorm.PublicNetwork`\" pulumi-lang-python=\"`lindorm.PublicNetwork`\" pulumi-lang-yaml=\"`alicloud.lindorm.PublicNetwork`\" pulumi-lang-java=\"`alicloud.lindorm.PublicNetwork`\"\u003e`alicloud.lindorm.PublicNetwork`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLindorm Public Network can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:lindorm/publicNetwork:PublicNetwork example \u003cid\u003e\n```\n\n","properties":{"enablePublicNetwork":{"type":"integer","description":"Open or close the public connection. Value:\n"},"engineType":{"type":"string","description":"Engine type, value:\n"},"instanceId":{"type":"string","description":"Instance ID\n"},"status":{"type":"string","description":"Instance status, returns:_EXPANDING`: Capacity-based cloud storage is being expanded._version_transing`: The minor version is being upgraded._CHANGING`: The specification is being upgraded or downgraded._SWITCHING`:SSL is being changed._OPENING`: The data subscription function is being activated._TRANSFER`: migrates data to the database._CREATING`: in the production disaster recovery instance._RECOVERING`: The backup is being restored._IMPORTING`: Data is being imported._MODIFYING`: The network is being changed._SWITCHING`: The internal network and the external network are being switched._CREATING`: creates a network link._DELETING`: deletes a network link.\n"}},"required":["engineType","instanceId","status"],"inputProperties":{"enablePublicNetwork":{"type":"integer","description":"Open or close the public connection. Value:\n"},"engineType":{"type":"string","description":"Engine type, value:\n"},"instanceId":{"type":"string","description":"Instance ID\n","willReplaceOnChanges":true}},"requiredInputs":["engineType","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering PublicNetwork resources.\n","properties":{"enablePublicNetwork":{"type":"integer","description":"Open or close the public connection. Value:\n"},"engineType":{"type":"string","description":"Engine type, value:\n"},"instanceId":{"type":"string","description":"Instance ID\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Instance status, returns:_EXPANDING`: Capacity-based cloud storage is being expanded._version_transing`: The minor version is being upgraded._CHANGING`: The specification is being upgraded or downgraded._SWITCHING`:SSL is being changed._OPENING`: The data subscription function is being activated._TRANSFER`: migrates data to the database._CREATING`: in the production disaster recovery instance._RECOVERING`: The backup is being restored._IMPORTING`: Data is being imported._MODIFYING`: The network is being changed._SWITCHING`: The internal network and the external network are being switched._CREATING`: creates a network link._DELETING`: deletes a network link.\n"}},"type":"object"}},"alicloud:live/caster:Caster":{"description":"Provides a Live Caster resource.\n\nRelying on Alibaba Cloud's powerful technologies such as live video broadcasting, media processing, and video AI, cloud guide integrates capabilities such as graphic packaging, real-time keying, multi-language translation, and multi-channel mixed streaming to innovate traditional guide services in the cloud. Provide easy-to-use cloud-based guide services for event performances, news reports, live events, off-site broadcasts and other scenes, without hardware, reduce user guide costs, and create a better live broadcast experience.\n\nFor information about Live Caster and how to use it, see [What is Caster](https://www.alibabacloud.com/help/en/live/developer-reference/api-live-2016-11-01-createcaster).\n\n\u003e **NOTE:** Available since v1.238.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.live.Caster(\"default\", {\n    casterName: name,\n    paymentType: \"PayAsYouGo\",\n    normType: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.live.Caster(\"default\",\n    caster_name=name,\n    payment_type=\"PayAsYouGo\",\n    norm_type=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Live.Caster(\"default\", new()\n    {\n        CasterName = name,\n        PaymentType = \"PayAsYouGo\",\n        NormType = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/live\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := live.NewCaster(ctx, \"default\", \u0026live.CasterArgs{\n\t\t\tCasterName:  pulumi.String(name),\n\t\t\tPaymentType: pulumi.String(\"PayAsYouGo\"),\n\t\t\tNormType:    pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.live.Caster;\nimport com.pulumi.alicloud.live.CasterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Caster(\"default\", CasterArgs.builder()\n            .casterName(name)\n            .paymentType(\"PayAsYouGo\")\n            .normType(1)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:live:Caster\n    properties:\n      casterName: ${name}\n      paymentType: PayAsYouGo\n      normType: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLive Caster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:live/caster:Caster example \u003cid\u003e\n```\n\n","properties":{"autoSwitchUrgentConfig":{"type":"string","description":"Automatic standby broadcast configuration. eofThres: indicates that the broadcast is automatically cut and prepared after the flow interruption time, in seconds.\n"},"autoSwitchUrgentOn":{"type":"boolean","description":"Turn on the cut-off automatic switch for broadcast preparation.\n\ntrue: open.\n\nfalse: closed.\n"},"callbackUrl":{"type":"string","description":"The callback address of the user. To receive Callback Notifications, enter an available address and accept the HTTP protocol. If this parameter is set to null, the callback notification from the director Station is canceled by default.\n"},"casterName":{"type":"string","description":"Guide station name.\n"},"createTime":{"type":"string","description":"Creation time.\n"},"delay":{"type":"number","description":"Delayed playback. Time unit: seconds.\n"},"domainName":{"type":"string","description":"Master play domain name.\n"},"normType":{"type":"integer","description":"Guide station specification type. Value:\n- 0: Broadcast single type.\n- 1: General purpose.\n"},"paymentType":{"type":"string","description":"The paymen type of the resource\n"},"programEffect":{"type":"integer","description":"Carousel effective flag.\n\n0: Not in effect.\n\n1: Entry into force.\n"},"programName":{"type":"string","description":"The carousel station name, which can be configured when using the carousel function.\n"},"recordConfig":{"type":"string","description":"Record configuration information. The format is JSON. The configuration element information is as follows:\n"},"resourceGroupId":{"type":"string","description":"Resource Group id\n"},"resourceType":{"type":"string","description":"resource type\n"},"sideOutputUrl":{"type":"string","description":"The user-defined stream ingest address corresponding to the bypass output address of the guide station. If this parameter is left blank, the streaming address corresponding to the output address automatically generated by Alibaba Cloud is used by default.\n"},"sideOutputUrlList":{"type":"string","description":"The list of multiple forwarding stream addresses, which can be the CDN forwarding stream addresses of Alibaba Cloud or a third-party vendor. A guide can add up to 20 RTMP forwarding addresses.\n"},"syncGroupsConfig":{"type":"string","description":"Multi-View synchronization configuration to synchronize multiple video sources. Multi-View synchronization is divided into two modes:\n- `mode 0`: (In the anchor mode, multiple video sources are synchronized according to the specified mode.)\n- `mode 1`: (Conference mode, there is no concept of anchor video, all video sources are synchronized with each other.)\n- `Anchor mode`: hostResourceId: the video source of the anchor in Anchor mode.\n- `Conference mode`: no hostRsoureId field, only the resource ids in the resourceIds to be provided.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transcodeConfig":{"type":"string","description":"Transcoding configuration.\n\nJSON format string, Please capitalize the first letter of the internal field of the structure, hump format input. If this parameter is set to null, the transcoding configuration is cleared by default. If the transcoding template is null, an error is reported when the director starts.\n"},"urgentImageId":{"type":"string","description":"The ID of the picture material of the media library.\n"},"urgentImageUrl":{"type":"string","description":"Prepare the URL of the picture material.\n"},"urgentLiveStreamUrl":{"type":"string","description":"The prepared live stream URL.\n"},"urgentMaterialId":{"type":"string","description":"Prepared video, media library material ID. If this parameter is set to null, the standby configuration is cleared by default.\n"}},"required":["createTime","normType","paymentType","resourceGroupId"],"inputProperties":{"autoSwitchUrgentConfig":{"type":"string","description":"Automatic standby broadcast configuration. eofThres: indicates that the broadcast is automatically cut and prepared after the flow interruption time, in seconds.\n"},"autoSwitchUrgentOn":{"type":"boolean","description":"Turn on the cut-off automatic switch for broadcast preparation.\n\ntrue: open.\n\nfalse: closed.\n"},"callbackUrl":{"type":"string","description":"The callback address of the user. To receive Callback Notifications, enter an available address and accept the HTTP protocol. If this parameter is set to null, the callback notification from the director Station is canceled by default.\n"},"casterName":{"type":"string","description":"Guide station name.\n"},"delay":{"type":"number","description":"Delayed playback. Time unit: seconds.\n"},"domainName":{"type":"string","description":"Master play domain name.\n"},"normType":{"type":"integer","description":"Guide station specification type. Value:\n- 0: Broadcast single type.\n- 1: General purpose.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The paymen type of the resource\n","willReplaceOnChanges":true},"programEffect":{"type":"integer","description":"Carousel effective flag.\n\n0: Not in effect.\n\n1: Entry into force.\n"},"programName":{"type":"string","description":"The carousel station name, which can be configured when using the carousel function.\n"},"recordConfig":{"type":"string","description":"Record configuration information. The format is JSON. The configuration element information is as follows:\n"},"resourceGroupId":{"type":"string","description":"Resource Group id\n"},"resourceType":{"type":"string","description":"resource type\n"},"sideOutputUrl":{"type":"string","description":"The user-defined stream ingest address corresponding to the bypass output address of the guide station. If this parameter is left blank, the streaming address corresponding to the output address automatically generated by Alibaba Cloud is used by default.\n"},"sideOutputUrlList":{"type":"string","description":"The list of multiple forwarding stream addresses, which can be the CDN forwarding stream addresses of Alibaba Cloud or a third-party vendor. A guide can add up to 20 RTMP forwarding addresses.\n"},"syncGroupsConfig":{"type":"string","description":"Multi-View synchronization configuration to synchronize multiple video sources. Multi-View synchronization is divided into two modes:\n- `mode 0`: (In the anchor mode, multiple video sources are synchronized according to the specified mode.)\n- `mode 1`: (Conference mode, there is no concept of anchor video, all video sources are synchronized with each other.)\n- `Anchor mode`: hostResourceId: the video source of the anchor in Anchor mode.\n- `Conference mode`: no hostRsoureId field, only the resource ids in the resourceIds to be provided.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transcodeConfig":{"type":"string","description":"Transcoding configuration.\n\nJSON format string, Please capitalize the first letter of the internal field of the structure, hump format input. If this parameter is set to null, the transcoding configuration is cleared by default. If the transcoding template is null, an error is reported when the director starts.\n"},"urgentImageId":{"type":"string","description":"The ID of the picture material of the media library.\n"},"urgentImageUrl":{"type":"string","description":"Prepare the URL of the picture material.\n"},"urgentLiveStreamUrl":{"type":"string","description":"The prepared live stream URL.\n"},"urgentMaterialId":{"type":"string","description":"Prepared video, media library material ID. If this parameter is set to null, the standby configuration is cleared by default.\n"}},"requiredInputs":["normType","paymentType"],"stateInputs":{"description":"Input properties used for looking up and filtering Caster resources.\n","properties":{"autoSwitchUrgentConfig":{"type":"string","description":"Automatic standby broadcast configuration. eofThres: indicates that the broadcast is automatically cut and prepared after the flow interruption time, in seconds.\n"},"autoSwitchUrgentOn":{"type":"boolean","description":"Turn on the cut-off automatic switch for broadcast preparation.\n\ntrue: open.\n\nfalse: closed.\n"},"callbackUrl":{"type":"string","description":"The callback address of the user. To receive Callback Notifications, enter an available address and accept the HTTP protocol. If this parameter is set to null, the callback notification from the director Station is canceled by default.\n"},"casterName":{"type":"string","description":"Guide station name.\n"},"createTime":{"type":"string","description":"Creation time.\n"},"delay":{"type":"number","description":"Delayed playback. Time unit: seconds.\n"},"domainName":{"type":"string","description":"Master play domain name.\n"},"normType":{"type":"integer","description":"Guide station specification type. Value:\n- 0: Broadcast single type.\n- 1: General purpose.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The paymen type of the resource\n","willReplaceOnChanges":true},"programEffect":{"type":"integer","description":"Carousel effective flag.\n\n0: Not in effect.\n\n1: Entry into force.\n"},"programName":{"type":"string","description":"The carousel station name, which can be configured when using the carousel function.\n"},"recordConfig":{"type":"string","description":"Record configuration information. The format is JSON. The configuration element information is as follows:\n"},"resourceGroupId":{"type":"string","description":"Resource Group id\n"},"resourceType":{"type":"string","description":"resource type\n"},"sideOutputUrl":{"type":"string","description":"The user-defined stream ingest address corresponding to the bypass output address of the guide station. If this parameter is left blank, the streaming address corresponding to the output address automatically generated by Alibaba Cloud is used by default.\n"},"sideOutputUrlList":{"type":"string","description":"The list of multiple forwarding stream addresses, which can be the CDN forwarding stream addresses of Alibaba Cloud or a third-party vendor. A guide can add up to 20 RTMP forwarding addresses.\n"},"syncGroupsConfig":{"type":"string","description":"Multi-View synchronization configuration to synchronize multiple video sources. Multi-View synchronization is divided into two modes:\n- `mode 0`: (In the anchor mode, multiple video sources are synchronized according to the specified mode.)\n- `mode 1`: (Conference mode, there is no concept of anchor video, all video sources are synchronized with each other.)\n- `Anchor mode`: hostResourceId: the video source of the anchor in Anchor mode.\n- `Conference mode`: no hostRsoureId field, only the resource ids in the resourceIds to be provided.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"transcodeConfig":{"type":"string","description":"Transcoding configuration.\n\nJSON format string, Please capitalize the first letter of the internal field of the structure, hump format input. If this parameter is set to null, the transcoding configuration is cleared by default. If the transcoding template is null, an error is reported when the director starts.\n"},"urgentImageId":{"type":"string","description":"The ID of the picture material of the media library.\n"},"urgentImageUrl":{"type":"string","description":"Prepare the URL of the picture material.\n"},"urgentLiveStreamUrl":{"type":"string","description":"The prepared live stream URL.\n"},"urgentMaterialId":{"type":"string","description":"Prepared video, media library material ID. If this parameter is set to null, the standby configuration is cleared by default.\n"}},"type":"object"}},"alicloud:live/domain:Domain":{"description":"Provides a Live Domain resource.\n\nLive domain name.\n\nFor information about Live Domain and how to use it, see [What is Domain](https://next.api.alibabacloud.com/document/live/2016-11-01/AddLiveDomain).\n\n\u003e **NOTE:** Available since v1.272.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst domainName = config.get(\"domainName\") || \"demo.alicloud.com\";\nconst _default = new alicloud.live.Domain(\"default\", {\n    domainType: \"liveVideo\",\n    scope: \"overseas\",\n    domainName: domainName,\n    region: \"cn-shanghai\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\ndomain_name = config.get(\"domainName\")\nif domain_name is None:\n    domain_name = \"demo.alicloud.com\"\ndefault = alicloud.live.Domain(\"default\",\n    domain_type=\"liveVideo\",\n    scope=\"overseas\",\n    domain_name=domain_name,\n    region=\"cn-shanghai\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var domainName = config.Get(\"domainName\") ?? \"demo.alicloud.com\";\n    var @default = new AliCloud.Live.Domain(\"default\", new()\n    {\n        DomainType = \"liveVideo\",\n        Scope = \"overseas\",\n        DomainName = domainName,\n        Region = \"cn-shanghai\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/live\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdomainName := \"demo.alicloud.com\"\n\t\tif param := cfg.Get(\"domainName\"); param != \"\" {\n\t\t\tdomainName = param\n\t\t}\n\t\t_, err := live.NewDomain(ctx, \"default\", \u0026live.DomainArgs{\n\t\t\tDomainType: pulumi.String(\"liveVideo\"),\n\t\t\tScope:      pulumi.String(\"overseas\"),\n\t\t\tDomainName: pulumi.String(domainName),\n\t\t\tRegion:     pulumi.String(\"cn-shanghai\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.live.Domain;\nimport com.pulumi.alicloud.live.DomainArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainName = config.get(\"domainName\").orElse(\"demo.alicloud.com\");\n        var default_ = new Domain(\"default\", DomainArgs.builder()\n            .domainType(\"liveVideo\")\n            .scope(\"overseas\")\n            .domainName(domainName)\n            .region(\"cn-shanghai\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainName:\n    type: string\n    default: demo.alicloud.com\nresources:\n  default:\n    type: alicloud:live:Domain\n    properties:\n      domainType: liveVideo\n      scope: overseas\n      domainName: ${domainName}\n      region: cn-shanghai\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLive Domain can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:live/domain:Domain example \u003cdomain_name\u003e\n```\n\n","properties":{"checkUrl":{"type":"string","description":"Health check URL.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"createTime":{"type":"string","description":"Creation time.\n"},"domainName":{"type":"string","description":"Fuzzy match filter for domain names.\n\n\u003e **NOTE:** - If \u003cspan pulumi-lang-nodejs=\"`domainType`\" pulumi-lang-dotnet=\"`DomainType`\" pulumi-lang-go=\"`domainType`\" pulumi-lang-python=\"`domain_type`\" pulumi-lang-yaml=\"`domainType`\" pulumi-lang-java=\"`domainType`\"\u003e`domain_type`\u003c/span\u003e (live streaming domain business type) is set to `liveVideo`, and this parameter is not specified, the system queries information about the user's playback domains by default.\n\n\u003e **NOTE:** - If \u003cspan pulumi-lang-nodejs=\"`domainType`\" pulumi-lang-dotnet=\"`DomainType`\" pulumi-lang-go=\"`domainType`\" pulumi-lang-python=\"`domain_type`\" pulumi-lang-yaml=\"`domainType`\" pulumi-lang-java=\"`domainType`\"\u003e`domain_type`\u003c/span\u003e is set to `liveEdge`, and this parameter is not specified, the system queries information about the user's ingest domains by default.\n"},"domainType":{"type":"string","description":"Domain business type. Valid values:  \n- `liveVideo`: Playback domain.\n- `liveEdge`: Edge ingest domain.\n"},"region":{"type":"string","description":"Region to which the domain belongs.\n"},"resourceGroupId":{"type":"string","description":"Resource group ID. For more information about resource groups, see [What is a resource group?](https://help.aliyun.com/document_detail/2381067.html).\n"},"scope":{"type":"string","description":"Acceleration region. This parameter takes effect only for international users and China site users with L3 or higher privileges. Valid values:\n"},"status":{"type":"string","description":"Domain status. Valid values:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"List of tags.\n"}},"required":["createTime","domainName","domainType","region","resourceGroupId","scope","status"],"inputProperties":{"checkUrl":{"type":"string","description":"Health check URL.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"domainName":{"type":"string","description":"Fuzzy match filter for domain names.\n\n\u003e **NOTE:** - If \u003cspan pulumi-lang-nodejs=\"`domainType`\" pulumi-lang-dotnet=\"`DomainType`\" pulumi-lang-go=\"`domainType`\" pulumi-lang-python=\"`domain_type`\" pulumi-lang-yaml=\"`domainType`\" pulumi-lang-java=\"`domainType`\"\u003e`domain_type`\u003c/span\u003e (live streaming domain business type) is set to `liveVideo`, and this parameter is not specified, the system queries information about the user's playback domains by default.\n\n\u003e **NOTE:** - If \u003cspan pulumi-lang-nodejs=\"`domainType`\" pulumi-lang-dotnet=\"`DomainType`\" pulumi-lang-go=\"`domainType`\" pulumi-lang-python=\"`domain_type`\" pulumi-lang-yaml=\"`domainType`\" pulumi-lang-java=\"`domainType`\"\u003e`domain_type`\u003c/span\u003e is set to `liveEdge`, and this parameter is not specified, the system queries information about the user's ingest domains by default.\n","willReplaceOnChanges":true},"domainType":{"type":"string","description":"Domain business type. Valid values:  \n- `liveVideo`: Playback domain.\n- `liveEdge`: Edge ingest domain.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Region to which the domain belongs.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"Resource group ID. For more information about resource groups, see [What is a resource group?](https://help.aliyun.com/document_detail/2381067.html).\n"},"scope":{"type":"string","description":"Acceleration region. This parameter takes effect only for international users and China site users with L3 or higher privileges. Valid values:\n"},"status":{"type":"string","description":"Domain status. Valid values:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"List of tags.\n"}},"requiredInputs":["domainName","domainType","region"],"stateInputs":{"description":"Input properties used for looking up and filtering Domain resources.\n","properties":{"checkUrl":{"type":"string","description":"Health check URL.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"createTime":{"type":"string","description":"Creation time.\n"},"domainName":{"type":"string","description":"Fuzzy match filter for domain names.\n\n\u003e **NOTE:** - If \u003cspan pulumi-lang-nodejs=\"`domainType`\" pulumi-lang-dotnet=\"`DomainType`\" pulumi-lang-go=\"`domainType`\" pulumi-lang-python=\"`domain_type`\" pulumi-lang-yaml=\"`domainType`\" pulumi-lang-java=\"`domainType`\"\u003e`domain_type`\u003c/span\u003e (live streaming domain business type) is set to `liveVideo`, and this parameter is not specified, the system queries information about the user's playback domains by default.\n\n\u003e **NOTE:** - If \u003cspan pulumi-lang-nodejs=\"`domainType`\" pulumi-lang-dotnet=\"`DomainType`\" pulumi-lang-go=\"`domainType`\" pulumi-lang-python=\"`domain_type`\" pulumi-lang-yaml=\"`domainType`\" pulumi-lang-java=\"`domainType`\"\u003e`domain_type`\u003c/span\u003e is set to `liveEdge`, and this parameter is not specified, the system queries information about the user's ingest domains by default.\n","willReplaceOnChanges":true},"domainType":{"type":"string","description":"Domain business type. Valid values:  \n- `liveVideo`: Playback domain.\n- `liveEdge`: Edge ingest domain.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Region to which the domain belongs.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"Resource group ID. For more information about resource groups, see [What is a resource group?](https://help.aliyun.com/document_detail/2381067.html).\n"},"scope":{"type":"string","description":"Acceleration region. This parameter takes effect only for international users and China site users with L3 or higher privileges. Valid values:\n"},"status":{"type":"string","description":"Domain status. Valid values:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"List of tags.\n"}},"type":"object"}},"alicloud:log/alert:Alert":{"description":"Log alert is a unit of log service, which is used to monitor and alert the user's logstore status information. \nLog Service enables you to configure alerts based on the charts in a dashboard to monitor the service status in real time.\n\nFor information about SLS Alert and how to use it, see [SLS Alert Overview](https://www.alibabacloud.com/help/en/doc-detail/209202.html)\n\n\u003e **NOTE:** Available in 1.78.0\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.log.Project(\"example\", {\n    name: `terraform-example-${_default.result}`,\n    description: \"terraform-example\",\n});\nconst exampleStore = new alicloud.log.Store(\"example\", {\n    project: example.name,\n    name: \"example-store\",\n    retentionPeriod: 3650,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst exampleAlert = new alicloud.log.Alert(\"example\", {\n    projectName: example.name,\n    alertName: \"example-alert\",\n    alertDisplayname: \"example-alert\",\n    condition: \"count\u003e 100\",\n    dashboard: \"example-dashboard\",\n    schedule: {\n        type: \"FixedRate\",\n        interval: \"5m\",\n        hour: 0,\n        dayOfWeek: 0,\n        delay: 0,\n        runImmediately: false,\n    },\n    queryLists: [{\n        logstore: exampleStore.name,\n        chartTitle: \"chart_title\",\n        start: \"-60s\",\n        end: \"20s\",\n        query: \"* AND aliyun\",\n    }],\n    notificationLists: [\n        {\n            type: \"SMS\",\n            mobileLists: [\n                \"12345678\",\n                \"87654321\",\n            ],\n            content: \"alert content\",\n        },\n        {\n            type: \"Email\",\n            emailLists: [\n                \"aliyun@alibaba-inc.com\",\n                \"tf-example@123.com\",\n            ],\n            content: \"alert content\",\n        },\n        {\n            type: \"DingTalk\",\n            serviceUri: \"www.aliyun.com\",\n            content: \"alert content\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.log.Project(\"example\",\n    name=f\"terraform-example-{default['result']}\",\n    description=\"terraform-example\")\nexample_store = alicloud.log.Store(\"example\",\n    project=example.name,\n    name=\"example-store\",\n    retention_period=3650,\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\nexample_alert = alicloud.log.Alert(\"example\",\n    project_name=example.name,\n    alert_name=\"example-alert\",\n    alert_displayname=\"example-alert\",\n    condition=\"count\u003e 100\",\n    dashboard=\"example-dashboard\",\n    schedule={\n        \"type\": \"FixedRate\",\n        \"interval\": \"5m\",\n        \"hour\": 0,\n        \"day_of_week\": 0,\n        \"delay\": 0,\n        \"run_immediately\": False,\n    },\n    query_lists=[{\n        \"logstore\": example_store.name,\n        \"chart_title\": \"chart_title\",\n        \"start\": \"-60s\",\n        \"end\": \"20s\",\n        \"query\": \"* AND aliyun\",\n    }],\n    notification_lists=[\n        {\n            \"type\": \"SMS\",\n            \"mobile_lists\": [\n                \"12345678\",\n                \"87654321\",\n            ],\n            \"content\": \"alert content\",\n        },\n        {\n            \"type\": \"Email\",\n            \"email_lists\": [\n                \"aliyun@alibaba-inc.com\",\n                \"tf-example@123.com\",\n            ],\n            \"content\": \"alert content\",\n        },\n        {\n            \"type\": \"DingTalk\",\n            \"service_uri\": \"www.aliyun.com\",\n            \"content\": \"alert content\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Log.Project(\"example\", new()\n    {\n        Name = $\"terraform-example-{@default.Result}\",\n        Description = \"terraform-example\",\n    });\n\n    var exampleStore = new AliCloud.Log.Store(\"example\", new()\n    {\n        Project = example.Name,\n        Name = \"example-store\",\n        RetentionPeriod = 3650,\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var exampleAlert = new AliCloud.Log.Alert(\"example\", new()\n    {\n        ProjectName = example.Name,\n        AlertName = \"example-alert\",\n        AlertDisplayname = \"example-alert\",\n        Condition = \"count\u003e 100\",\n        Dashboard = \"example-dashboard\",\n        Schedule = new AliCloud.Log.Inputs.AlertScheduleArgs\n        {\n            Type = \"FixedRate\",\n            Interval = \"5m\",\n            Hour = 0,\n            DayOfWeek = 0,\n            Delay = 0,\n            RunImmediately = false,\n        },\n        QueryLists = new[]\n        {\n            new AliCloud.Log.Inputs.AlertQueryListArgs\n            {\n                Logstore = exampleStore.Name,\n                ChartTitle = \"chart_title\",\n                Start = \"-60s\",\n                End = \"20s\",\n                Query = \"* AND aliyun\",\n            },\n        },\n        NotificationLists = new[]\n        {\n            new AliCloud.Log.Inputs.AlertNotificationListArgs\n            {\n                Type = \"SMS\",\n                MobileLists = new[]\n                {\n                    \"12345678\",\n                    \"87654321\",\n                },\n                Content = \"alert content\",\n            },\n            new AliCloud.Log.Inputs.AlertNotificationListArgs\n            {\n                Type = \"Email\",\n                EmailLists = new[]\n                {\n                    \"aliyun@alibaba-inc.com\",\n                    \"tf-example@123.com\",\n                },\n                Content = \"alert content\",\n            },\n            new AliCloud.Log.Inputs.AlertNotificationListArgs\n            {\n                Type = \"DingTalk\",\n                ServiceUri = \"www.aliyun.com\",\n                Content = \"alert content\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tName:        pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := log.NewStore(ctx, \"example\", \u0026log.StoreArgs{\n\t\t\tProject:            example.Name,\n\t\t\tName:               pulumi.String(\"example-store\"),\n\t\t\tRetentionPeriod:    pulumi.Int(3650),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewAlert(ctx, \"example\", \u0026log.AlertArgs{\n\t\t\tProjectName:      example.Name,\n\t\t\tAlertName:        pulumi.String(\"example-alert\"),\n\t\t\tAlertDisplayname: pulumi.String(\"example-alert\"),\n\t\t\tCondition:        pulumi.String(\"count\u003e 100\"),\n\t\t\tDashboard:        pulumi.String(\"example-dashboard\"),\n\t\t\tSchedule: \u0026log.AlertScheduleArgs{\n\t\t\t\tType:           pulumi.String(\"FixedRate\"),\n\t\t\t\tInterval:       pulumi.String(\"5m\"),\n\t\t\t\tHour:           pulumi.Int(0),\n\t\t\t\tDayOfWeek:      pulumi.Int(0),\n\t\t\t\tDelay:          pulumi.Int(0),\n\t\t\t\tRunImmediately: pulumi.Bool(false),\n\t\t\t},\n\t\t\tQueryLists: log.AlertQueryListArray{\n\t\t\t\t\u0026log.AlertQueryListArgs{\n\t\t\t\t\tLogstore:   exampleStore.Name,\n\t\t\t\t\tChartTitle: pulumi.String(\"chart_title\"),\n\t\t\t\t\tStart:      pulumi.String(\"-60s\"),\n\t\t\t\t\tEnd:        pulumi.String(\"20s\"),\n\t\t\t\t\tQuery:      pulumi.String(\"* AND aliyun\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNotificationLists: log.AlertNotificationListArray{\n\t\t\t\t\u0026log.AlertNotificationListArgs{\n\t\t\t\t\tType: pulumi.String(\"SMS\"),\n\t\t\t\t\tMobileLists: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"12345678\"),\n\t\t\t\t\t\tpulumi.String(\"87654321\"),\n\t\t\t\t\t},\n\t\t\t\t\tContent: pulumi.String(\"alert content\"),\n\t\t\t\t},\n\t\t\t\t\u0026log.AlertNotificationListArgs{\n\t\t\t\t\tType: pulumi.String(\"Email\"),\n\t\t\t\t\tEmailLists: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"aliyun@alibaba-inc.com\"),\n\t\t\t\t\t\tpulumi.String(\"tf-example@123.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tContent: pulumi.String(\"alert content\"),\n\t\t\t\t},\n\t\t\t\t\u0026log.AlertNotificationListArgs{\n\t\t\t\t\tType:       pulumi.String(\"DingTalk\"),\n\t\t\t\t\tServiceUri: pulumi.String(\"www.aliyun.com\"),\n\t\t\t\t\tContent:    pulumi.String(\"alert content\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.log.Alert;\nimport com.pulumi.alicloud.log.AlertArgs;\nimport com.pulumi.alicloud.log.inputs.AlertScheduleArgs;\nimport com.pulumi.alicloud.log.inputs.AlertQueryListArgs;\nimport com.pulumi.alicloud.log.inputs.AlertNotificationListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(String.format(\"terraform-example-%s\", default_.result()))\n            .description(\"terraform-example\")\n            .build());\n\n        var exampleStore = new Store(\"exampleStore\", StoreArgs.builder()\n            .project(example.name())\n            .name(\"example-store\")\n            .retentionPeriod(3650)\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var exampleAlert = new Alert(\"exampleAlert\", AlertArgs.builder()\n            .projectName(example.name())\n            .alertName(\"example-alert\")\n            .alertDisplayname(\"example-alert\")\n            .condition(\"count\u003e 100\")\n            .dashboard(\"example-dashboard\")\n            .schedule(AlertScheduleArgs.builder()\n                .type(\"FixedRate\")\n                .interval(\"5m\")\n                .hour(0)\n                .dayOfWeek(0)\n                .delay(0)\n                .runImmediately(false)\n                .build())\n            .queryLists(AlertQueryListArgs.builder()\n                .logstore(exampleStore.name())\n                .chartTitle(\"chart_title\")\n                .start(\"-60s\")\n                .end(\"20s\")\n                .query(\"* AND aliyun\")\n                .build())\n            .notificationLists(            \n                AlertNotificationListArgs.builder()\n                    .type(\"SMS\")\n                    .mobileLists(                    \n                        \"12345678\",\n                        \"87654321\")\n                    .content(\"alert content\")\n                    .build(),\n                AlertNotificationListArgs.builder()\n                    .type(\"Email\")\n                    .emailLists(                    \n                        \"aliyun@alibaba-inc.com\",\n                        \"tf-example@123.com\")\n                    .content(\"alert content\")\n                    .build(),\n                AlertNotificationListArgs.builder()\n                    .type(\"DingTalk\")\n                    .serviceUri(\"www.aliyun.com\")\n                    .content(\"alert content\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:log:Project\n    properties:\n      name: terraform-example-${default.result}\n      description: terraform-example\n  exampleStore:\n    type: alicloud:log:Store\n    name: example\n    properties:\n      project: ${example.name}\n      name: example-store\n      retentionPeriod: 3650\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  exampleAlert:\n    type: alicloud:log:Alert\n    name: example\n    properties:\n      projectName: ${example.name}\n      alertName: example-alert\n      alertDisplayname: example-alert\n      condition: count\u003e 100\n      dashboard: example-dashboard\n      schedule:\n        type: FixedRate\n        interval: 5m\n        hour: 0\n        dayOfWeek: 0\n        delay: 0\n        runImmediately: false\n      queryLists:\n        - logstore: ${exampleStore.name}\n          chartTitle: chart_title\n          start: -60s\n          end: 20s\n          query: '* AND aliyun'\n      notificationLists:\n        - type: SMS\n          mobileLists:\n            - '12345678'\n            - '87654321'\n          content: alert content\n        - type: Email\n          emailLists:\n            - aliyun@alibaba-inc.com\n            - tf-example@123.com\n          content: alert content\n        - type: DingTalk\n          serviceUri: www.aliyun.com\n          content: alert content\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nBasic Usage for new alert\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.log.Project(\"example\", {\n    projectName: `terraform-example-${_default.result}`,\n    description: \"terraform-example\",\n});\nconst exampleStore = new alicloud.log.Store(\"example\", {\n    projectName: example.projectName,\n    logstoreName: \"example-store\",\n    retentionPeriod: 3650,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst example_2 = new alicloud.log.Alert(\"example-2\", {\n    version: \"2.0\",\n    type: \"default\",\n    projectName: example.projectName,\n    alertName: \"example-alert\",\n    alertDisplayname: \"example-alert\",\n    muteUntil: 1632486684,\n    noDataFire: false,\n    noDataSeverity: 8,\n    sendResolved: true,\n    autoAnnotation: true,\n    schedule: {\n        type: \"FixedRate\",\n        interval: \"5m\",\n        hour: 0,\n        dayOfWeek: 0,\n        delay: 0,\n        runImmediately: false,\n    },\n    queryLists: [\n        {\n            store: exampleStore.logstoreName,\n            storeType: \"log\",\n            project: example.projectName,\n            region: \"cn-heyuan\",\n            chartTitle: \"chart_title\",\n            start: \"-60s\",\n            end: \"20s\",\n            query: \"* AND aliyun | select count(1) as cnt\",\n            powerSqlMode: \"auto\",\n            dashboardId: \"example-dashboard\",\n        },\n        {\n            store: exampleStore.logstoreName,\n            storeType: \"log\",\n            project: example.projectName,\n            region: \"cn-heyuan\",\n            chartTitle: \"chart_title\",\n            start: \"-60s\",\n            end: \"20s\",\n            query: \"error | select count(1) as error_cnt\",\n            powerSqlMode: \"enable\",\n            dashboardId: \"example-dashboard\",\n        },\n    ],\n    labels: [{\n        key: \"env\",\n        value: \"test\",\n    }],\n    annotations: [\n        {\n            key: \"title\",\n            value: \"alert title\",\n        },\n        {\n            key: \"desc\",\n            value: \"alert desc\",\n        },\n        {\n            key: \"test_key\",\n            value: \"test value\",\n        },\n    ],\n    groupConfiguration: {\n        type: \"custom\",\n        fields: [\"cnt\"],\n    },\n    policyConfiguration: {\n        alertPolicyId: \"sls.bultin\",\n        actionPolicyId: \"sls_test_action\",\n        repeatInterval: \"4h\",\n    },\n    severityConfigurations: [\n        {\n            severity: 8,\n            evalCondition: {\n                condition: \"cnt \u003e 3\",\n                count_condition: \"__count__ \u003e 3\",\n            },\n        },\n        {\n            severity: 6,\n            evalCondition: {\n                condition: \"\",\n                count_condition: \"__count__ \u003e 0\",\n            },\n        },\n        {\n            severity: 2,\n            evalCondition: {\n                condition: \"\",\n                count_condition: \"\",\n            },\n        },\n    ],\n    joinConfigurations: [{\n        type: \"cross_join\",\n        condition: \"\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.log.Project(\"example\",\n    project_name=f\"terraform-example-{default['result']}\",\n    description=\"terraform-example\")\nexample_store = alicloud.log.Store(\"example\",\n    project_name=example.project_name,\n    logstore_name=\"example-store\",\n    retention_period=3650,\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\nexample_2 = alicloud.log.Alert(\"example-2\",\n    version=\"2.0\",\n    type=\"default\",\n    project_name=example.project_name,\n    alert_name=\"example-alert\",\n    alert_displayname=\"example-alert\",\n    mute_until=1632486684,\n    no_data_fire=False,\n    no_data_severity=8,\n    send_resolved=True,\n    auto_annotation=True,\n    schedule={\n        \"type\": \"FixedRate\",\n        \"interval\": \"5m\",\n        \"hour\": 0,\n        \"day_of_week\": 0,\n        \"delay\": 0,\n        \"run_immediately\": False,\n    },\n    query_lists=[\n        {\n            \"store\": example_store.logstore_name,\n            \"store_type\": \"log\",\n            \"project\": example.project_name,\n            \"region\": \"cn-heyuan\",\n            \"chart_title\": \"chart_title\",\n            \"start\": \"-60s\",\n            \"end\": \"20s\",\n            \"query\": \"* AND aliyun | select count(1) as cnt\",\n            \"power_sql_mode\": \"auto\",\n            \"dashboard_id\": \"example-dashboard\",\n        },\n        {\n            \"store\": example_store.logstore_name,\n            \"store_type\": \"log\",\n            \"project\": example.project_name,\n            \"region\": \"cn-heyuan\",\n            \"chart_title\": \"chart_title\",\n            \"start\": \"-60s\",\n            \"end\": \"20s\",\n            \"query\": \"error | select count(1) as error_cnt\",\n            \"power_sql_mode\": \"enable\",\n            \"dashboard_id\": \"example-dashboard\",\n        },\n    ],\n    labels=[{\n        \"key\": \"env\",\n        \"value\": \"test\",\n    }],\n    annotations=[\n        {\n            \"key\": \"title\",\n            \"value\": \"alert title\",\n        },\n        {\n            \"key\": \"desc\",\n            \"value\": \"alert desc\",\n        },\n        {\n            \"key\": \"test_key\",\n            \"value\": \"test value\",\n        },\n    ],\n    group_configuration={\n        \"type\": \"custom\",\n        \"fields\": [\"cnt\"],\n    },\n    policy_configuration={\n        \"alert_policy_id\": \"sls.bultin\",\n        \"action_policy_id\": \"sls_test_action\",\n        \"repeat_interval\": \"4h\",\n    },\n    severity_configurations=[\n        {\n            \"severity\": 8,\n            \"eval_condition\": {\n                \"condition\": \"cnt \u003e 3\",\n                \"count_condition\": \"__count__ \u003e 3\",\n            },\n        },\n        {\n            \"severity\": 6,\n            \"eval_condition\": {\n                \"condition\": \"\",\n                \"count_condition\": \"__count__ \u003e 0\",\n            },\n        },\n        {\n            \"severity\": 2,\n            \"eval_condition\": {\n                \"condition\": \"\",\n                \"count_condition\": \"\",\n            },\n        },\n    ],\n    join_configurations=[{\n        \"type\": \"cross_join\",\n        \"condition\": \"\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Log.Project(\"example\", new()\n    {\n        ProjectName = $\"terraform-example-{@default.Result}\",\n        Description = \"terraform-example\",\n    });\n\n    var exampleStore = new AliCloud.Log.Store(\"example\", new()\n    {\n        ProjectName = example.ProjectName,\n        LogstoreName = \"example-store\",\n        RetentionPeriod = 3650,\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var example_2 = new AliCloud.Log.Alert(\"example-2\", new()\n    {\n        Version = \"2.0\",\n        Type = \"default\",\n        ProjectName = example.ProjectName,\n        AlertName = \"example-alert\",\n        AlertDisplayname = \"example-alert\",\n        MuteUntil = 1632486684,\n        NoDataFire = false,\n        NoDataSeverity = 8,\n        SendResolved = true,\n        AutoAnnotation = true,\n        Schedule = new AliCloud.Log.Inputs.AlertScheduleArgs\n        {\n            Type = \"FixedRate\",\n            Interval = \"5m\",\n            Hour = 0,\n            DayOfWeek = 0,\n            Delay = 0,\n            RunImmediately = false,\n        },\n        QueryLists = new[]\n        {\n            new AliCloud.Log.Inputs.AlertQueryListArgs\n            {\n                Store = exampleStore.LogstoreName,\n                StoreType = \"log\",\n                Project = example.ProjectName,\n                Region = \"cn-heyuan\",\n                ChartTitle = \"chart_title\",\n                Start = \"-60s\",\n                End = \"20s\",\n                Query = \"* AND aliyun | select count(1) as cnt\",\n                PowerSqlMode = \"auto\",\n                DashboardId = \"example-dashboard\",\n            },\n            new AliCloud.Log.Inputs.AlertQueryListArgs\n            {\n                Store = exampleStore.LogstoreName,\n                StoreType = \"log\",\n                Project = example.ProjectName,\n                Region = \"cn-heyuan\",\n                ChartTitle = \"chart_title\",\n                Start = \"-60s\",\n                End = \"20s\",\n                Query = \"error | select count(1) as error_cnt\",\n                PowerSqlMode = \"enable\",\n                DashboardId = \"example-dashboard\",\n            },\n        },\n        Labels = new[]\n        {\n            new AliCloud.Log.Inputs.AlertLabelArgs\n            {\n                Key = \"env\",\n                Value = \"test\",\n            },\n        },\n        Annotations = new[]\n        {\n            new AliCloud.Log.Inputs.AlertAnnotationArgs\n            {\n                Key = \"title\",\n                Value = \"alert title\",\n            },\n            new AliCloud.Log.Inputs.AlertAnnotationArgs\n            {\n                Key = \"desc\",\n                Value = \"alert desc\",\n            },\n            new AliCloud.Log.Inputs.AlertAnnotationArgs\n            {\n                Key = \"test_key\",\n                Value = \"test value\",\n            },\n        },\n        GroupConfiguration = new AliCloud.Log.Inputs.AlertGroupConfigurationArgs\n        {\n            Type = \"custom\",\n            Fields = new[]\n            {\n                \"cnt\",\n            },\n        },\n        PolicyConfiguration = new AliCloud.Log.Inputs.AlertPolicyConfigurationArgs\n        {\n            AlertPolicyId = \"sls.bultin\",\n            ActionPolicyId = \"sls_test_action\",\n            RepeatInterval = \"4h\",\n        },\n        SeverityConfigurations = new[]\n        {\n            new AliCloud.Log.Inputs.AlertSeverityConfigurationArgs\n            {\n                Severity = 8,\n                EvalCondition = \n                {\n                    { \"condition\", \"cnt \u003e 3\" },\n                    { \"count_condition\", \"__count__ \u003e 3\" },\n                },\n            },\n            new AliCloud.Log.Inputs.AlertSeverityConfigurationArgs\n            {\n                Severity = 6,\n                EvalCondition = \n                {\n                    { \"condition\", \"\" },\n                    { \"count_condition\", \"__count__ \u003e 0\" },\n                },\n            },\n            new AliCloud.Log.Inputs.AlertSeverityConfigurationArgs\n            {\n                Severity = 2,\n                EvalCondition = \n                {\n                    { \"condition\", \"\" },\n                    { \"count_condition\", \"\" },\n                },\n            },\n        },\n        JoinConfigurations = new[]\n        {\n            new AliCloud.Log.Inputs.AlertJoinConfigurationArgs\n            {\n                Type = \"cross_join\",\n                Condition = \"\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := log.NewStore(ctx, \"example\", \u0026log.StoreArgs{\n\t\t\tProjectName:        example.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(\"example-store\"),\n\t\t\tRetentionPeriod:    pulumi.Int(3650),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewAlert(ctx, \"example-2\", \u0026log.AlertArgs{\n\t\t\tVersion:          pulumi.String(\"2.0\"),\n\t\t\tType:             pulumi.String(\"default\"),\n\t\t\tProjectName:      example.ProjectName,\n\t\t\tAlertName:        pulumi.String(\"example-alert\"),\n\t\t\tAlertDisplayname: pulumi.String(\"example-alert\"),\n\t\t\tMuteUntil:        pulumi.Int(1632486684),\n\t\t\tNoDataFire:       pulumi.Bool(false),\n\t\t\tNoDataSeverity:   pulumi.Int(8),\n\t\t\tSendResolved:     pulumi.Bool(true),\n\t\t\tAutoAnnotation:   pulumi.Bool(true),\n\t\t\tSchedule: \u0026log.AlertScheduleArgs{\n\t\t\t\tType:           pulumi.String(\"FixedRate\"),\n\t\t\t\tInterval:       pulumi.String(\"5m\"),\n\t\t\t\tHour:           pulumi.Int(0),\n\t\t\t\tDayOfWeek:      pulumi.Int(0),\n\t\t\t\tDelay:          pulumi.Int(0),\n\t\t\t\tRunImmediately: pulumi.Bool(false),\n\t\t\t},\n\t\t\tQueryLists: log.AlertQueryListArray{\n\t\t\t\t\u0026log.AlertQueryListArgs{\n\t\t\t\t\tStore:        exampleStore.LogstoreName,\n\t\t\t\t\tStoreType:    pulumi.String(\"log\"),\n\t\t\t\t\tProject:      example.ProjectName,\n\t\t\t\t\tRegion:       pulumi.String(\"cn-heyuan\"),\n\t\t\t\t\tChartTitle:   pulumi.String(\"chart_title\"),\n\t\t\t\t\tStart:        pulumi.String(\"-60s\"),\n\t\t\t\t\tEnd:          pulumi.String(\"20s\"),\n\t\t\t\t\tQuery:        pulumi.String(\"* AND aliyun | select count(1) as cnt\"),\n\t\t\t\t\tPowerSqlMode: pulumi.String(\"auto\"),\n\t\t\t\t\tDashboardId:  pulumi.String(\"example-dashboard\"),\n\t\t\t\t},\n\t\t\t\t\u0026log.AlertQueryListArgs{\n\t\t\t\t\tStore:        exampleStore.LogstoreName,\n\t\t\t\t\tStoreType:    pulumi.String(\"log\"),\n\t\t\t\t\tProject:      example.ProjectName,\n\t\t\t\t\tRegion:       pulumi.String(\"cn-heyuan\"),\n\t\t\t\t\tChartTitle:   pulumi.String(\"chart_title\"),\n\t\t\t\t\tStart:        pulumi.String(\"-60s\"),\n\t\t\t\t\tEnd:          pulumi.String(\"20s\"),\n\t\t\t\t\tQuery:        pulumi.String(\"error | select count(1) as error_cnt\"),\n\t\t\t\t\tPowerSqlMode: pulumi.String(\"enable\"),\n\t\t\t\t\tDashboardId:  pulumi.String(\"example-dashboard\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: log.AlertLabelArray{\n\t\t\t\t\u0026log.AlertLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"env\"),\n\t\t\t\t\tValue: pulumi.String(\"test\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAnnotations: log.AlertAnnotationArray{\n\t\t\t\t\u0026log.AlertAnnotationArgs{\n\t\t\t\t\tKey:   pulumi.String(\"title\"),\n\t\t\t\t\tValue: pulumi.String(\"alert title\"),\n\t\t\t\t},\n\t\t\t\t\u0026log.AlertAnnotationArgs{\n\t\t\t\t\tKey:   pulumi.String(\"desc\"),\n\t\t\t\t\tValue: pulumi.String(\"alert desc\"),\n\t\t\t\t},\n\t\t\t\t\u0026log.AlertAnnotationArgs{\n\t\t\t\t\tKey:   pulumi.String(\"test_key\"),\n\t\t\t\t\tValue: pulumi.String(\"test value\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tGroupConfiguration: \u0026log.AlertGroupConfigurationArgs{\n\t\t\t\tType: pulumi.String(\"custom\"),\n\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"cnt\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicyConfiguration: \u0026log.AlertPolicyConfigurationArgs{\n\t\t\t\tAlertPolicyId:  pulumi.String(\"sls.bultin\"),\n\t\t\t\tActionPolicyId: pulumi.String(\"sls_test_action\"),\n\t\t\t\tRepeatInterval: pulumi.String(\"4h\"),\n\t\t\t},\n\t\t\tSeverityConfigurations: log.AlertSeverityConfigurationArray{\n\t\t\t\t\u0026log.AlertSeverityConfigurationArgs{\n\t\t\t\t\tSeverity: pulumi.Int(8),\n\t\t\t\t\tEvalCondition: pulumi.StringMap{\n\t\t\t\t\t\t\"condition\":       pulumi.String(\"cnt \u003e 3\"),\n\t\t\t\t\t\t\"count_condition\": pulumi.String(\"__count__ \u003e 3\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026log.AlertSeverityConfigurationArgs{\n\t\t\t\t\tSeverity: pulumi.Int(6),\n\t\t\t\t\tEvalCondition: pulumi.StringMap{\n\t\t\t\t\t\t\"condition\":       pulumi.String(\"\"),\n\t\t\t\t\t\t\"count_condition\": pulumi.String(\"__count__ \u003e 0\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026log.AlertSeverityConfigurationArgs{\n\t\t\t\t\tSeverity: pulumi.Int(2),\n\t\t\t\t\tEvalCondition: pulumi.StringMap{\n\t\t\t\t\t\t\"condition\":       pulumi.String(\"\"),\n\t\t\t\t\t\t\"count_condition\": pulumi.String(\"\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tJoinConfigurations: log.AlertJoinConfigurationArray{\n\t\t\t\t\u0026log.AlertJoinConfigurationArgs{\n\t\t\t\t\tType:      pulumi.String(\"cross_join\"),\n\t\t\t\t\tCondition: pulumi.String(\"\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.log.Alert;\nimport com.pulumi.alicloud.log.AlertArgs;\nimport com.pulumi.alicloud.log.inputs.AlertScheduleArgs;\nimport com.pulumi.alicloud.log.inputs.AlertQueryListArgs;\nimport com.pulumi.alicloud.log.inputs.AlertLabelArgs;\nimport com.pulumi.alicloud.log.inputs.AlertAnnotationArgs;\nimport com.pulumi.alicloud.log.inputs.AlertGroupConfigurationArgs;\nimport com.pulumi.alicloud.log.inputs.AlertPolicyConfigurationArgs;\nimport com.pulumi.alicloud.log.inputs.AlertSeverityConfigurationArgs;\nimport com.pulumi.alicloud.log.inputs.AlertJoinConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .projectName(String.format(\"terraform-example-%s\", default_.result()))\n            .description(\"terraform-example\")\n            .build());\n\n        var exampleStore = new Store(\"exampleStore\", StoreArgs.builder()\n            .projectName(example.projectName())\n            .logstoreName(\"example-store\")\n            .retentionPeriod(3650)\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var example_2 = new Alert(\"example-2\", AlertArgs.builder()\n            .version(\"2.0\")\n            .type(\"default\")\n            .projectName(example.projectName())\n            .alertName(\"example-alert\")\n            .alertDisplayname(\"example-alert\")\n            .muteUntil(1632486684)\n            .noDataFire(false)\n            .noDataSeverity(8)\n            .sendResolved(true)\n            .autoAnnotation(true)\n            .schedule(AlertScheduleArgs.builder()\n                .type(\"FixedRate\")\n                .interval(\"5m\")\n                .hour(0)\n                .dayOfWeek(0)\n                .delay(0)\n                .runImmediately(false)\n                .build())\n            .queryLists(            \n                AlertQueryListArgs.builder()\n                    .store(exampleStore.logstoreName())\n                    .storeType(\"log\")\n                    .project(example.projectName())\n                    .region(\"cn-heyuan\")\n                    .chartTitle(\"chart_title\")\n                    .start(\"-60s\")\n                    .end(\"20s\")\n                    .query(\"* AND aliyun | select count(1) as cnt\")\n                    .powerSqlMode(\"auto\")\n                    .dashboardId(\"example-dashboard\")\n                    .build(),\n                AlertQueryListArgs.builder()\n                    .store(exampleStore.logstoreName())\n                    .storeType(\"log\")\n                    .project(example.projectName())\n                    .region(\"cn-heyuan\")\n                    .chartTitle(\"chart_title\")\n                    .start(\"-60s\")\n                    .end(\"20s\")\n                    .query(\"error | select count(1) as error_cnt\")\n                    .powerSqlMode(\"enable\")\n                    .dashboardId(\"example-dashboard\")\n                    .build())\n            .labels(AlertLabelArgs.builder()\n                .key(\"env\")\n                .value(\"test\")\n                .build())\n            .annotations(            \n                AlertAnnotationArgs.builder()\n                    .key(\"title\")\n                    .value(\"alert title\")\n                    .build(),\n                AlertAnnotationArgs.builder()\n                    .key(\"desc\")\n                    .value(\"alert desc\")\n                    .build(),\n                AlertAnnotationArgs.builder()\n                    .key(\"test_key\")\n                    .value(\"test value\")\n                    .build())\n            .groupConfiguration(AlertGroupConfigurationArgs.builder()\n                .type(\"custom\")\n                .fields(\"cnt\")\n                .build())\n            .policyConfiguration(AlertPolicyConfigurationArgs.builder()\n                .alertPolicyId(\"sls.bultin\")\n                .actionPolicyId(\"sls_test_action\")\n                .repeatInterval(\"4h\")\n                .build())\n            .severityConfigurations(            \n                AlertSeverityConfigurationArgs.builder()\n                    .severity(8)\n                    .evalCondition(Map.ofEntries(\n                        Map.entry(\"condition\", \"cnt \u003e 3\"),\n                        Map.entry(\"count_condition\", \"__count__ \u003e 3\")\n                    ))\n                    .build(),\n                AlertSeverityConfigurationArgs.builder()\n                    .severity(6)\n                    .evalCondition(Map.ofEntries(\n                        Map.entry(\"condition\", \"\"),\n                        Map.entry(\"count_condition\", \"__count__ \u003e 0\")\n                    ))\n                    .build(),\n                AlertSeverityConfigurationArgs.builder()\n                    .severity(2)\n                    .evalCondition(Map.ofEntries(\n                        Map.entry(\"condition\", \"\"),\n                        Map.entry(\"count_condition\", \"\")\n                    ))\n                    .build())\n            .joinConfigurations(AlertJoinConfigurationArgs.builder()\n                .type(\"cross_join\")\n                .condition(\"\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:log:Project\n    properties:\n      projectName: terraform-example-${default.result}\n      description: terraform-example\n  exampleStore:\n    type: alicloud:log:Store\n    name: example\n    properties:\n      projectName: ${example.projectName}\n      logstoreName: example-store\n      retentionPeriod: 3650\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  example-2:\n    type: alicloud:log:Alert\n    properties:\n      version: '2.0'\n      type: default\n      projectName: ${example.projectName}\n      alertName: example-alert\n      alertDisplayname: example-alert\n      muteUntil: '1632486684'\n      noDataFire: 'false'\n      noDataSeverity: 8\n      sendResolved: true\n      autoAnnotation: true\n      schedule:\n        type: FixedRate\n        interval: 5m\n        hour: 0\n        dayOfWeek: 0\n        delay: 0\n        runImmediately: false\n      queryLists:\n        - store: ${exampleStore.logstoreName}\n          storeType: log\n          project: ${example.projectName}\n          region: cn-heyuan\n          chartTitle: chart_title\n          start: -60s\n          end: 20s\n          query: '* AND aliyun | select count(1) as cnt'\n          powerSqlMode: auto\n          dashboardId: example-dashboard\n        - store: ${exampleStore.logstoreName}\n          storeType: log\n          project: ${example.projectName}\n          region: cn-heyuan\n          chartTitle: chart_title\n          start: -60s\n          end: 20s\n          query: error | select count(1) as error_cnt\n          powerSqlMode: enable\n          dashboardId: example-dashboard\n      labels:\n        - key: env\n          value: test\n      annotations:\n        - key: title\n          value: alert title\n        - key: desc\n          value: alert desc\n        - key: test_key\n          value: test value\n      groupConfiguration:\n        type: custom\n        fields:\n          - cnt\n      policyConfiguration:\n        alertPolicyId: sls.bultin\n        actionPolicyId: sls_test_action\n        repeatInterval: 4h\n      severityConfigurations:\n        - severity: 8\n          evalCondition:\n            condition: cnt \u003e 3\n            count_condition: __count__ \u003e 3\n        - severity: 6\n          evalCondition:\n            condition: \"\"\n            count_condition: __count__ \u003e 0\n        - severity: 2\n          evalCondition:\n            condition: \"\"\n            count_condition: \"\"\n      joinConfigurations:\n        - type: cross_join\n          condition: \"\"\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nBasic Usage for alert template\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.log.Project(\"example\", {\n    projectName: `terraform-example-${_default.result}`,\n    description: \"terraform-example\",\n});\nconst exampleStore = new alicloud.log.Store(\"example\", {\n    projectName: example.projectName,\n    logstoreName: \"example-store\",\n    retentionPeriod: 3650,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst example_3 = new alicloud.log.Alert(\"example-3\", {\n    version: \"2.0\",\n    type: \"tpl\",\n    projectName: example.projectName,\n    alertName: \"example-alert\",\n    alertDisplayname: \"example-alert\",\n    muteUntil: 1632486684,\n    schedule: {\n        type: \"FixedRate\",\n        interval: \"5m\",\n        hour: 0,\n        dayOfWeek: 0,\n        delay: 0,\n        runImmediately: false,\n    },\n    templateConfiguration: {\n        id: \"sls.app.sls_ack.node.down\",\n        type: \"sys\",\n        lang: \"cn\",\n        annotations: {},\n        tokens: {\n            interval_minute: \"5\",\n            \"default.action_policy\": \"sls.app.ack.builtin\",\n            \"default.severity\": \"6\",\n            sendResolved: \"false\",\n            \"default.project\": example.projectName,\n            \"default.logstore\": \"k8s-event\",\n            \"default.repeatInterval\": \"4h\",\n            trigger_threshold: \"1\",\n            \"default.clusterId\": \"example-cluster-id\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.log.Project(\"example\",\n    project_name=f\"terraform-example-{default['result']}\",\n    description=\"terraform-example\")\nexample_store = alicloud.log.Store(\"example\",\n    project_name=example.project_name,\n    logstore_name=\"example-store\",\n    retention_period=3650,\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\nexample_3 = alicloud.log.Alert(\"example-3\",\n    version=\"2.0\",\n    type=\"tpl\",\n    project_name=example.project_name,\n    alert_name=\"example-alert\",\n    alert_displayname=\"example-alert\",\n    mute_until=1632486684,\n    schedule={\n        \"type\": \"FixedRate\",\n        \"interval\": \"5m\",\n        \"hour\": 0,\n        \"day_of_week\": 0,\n        \"delay\": 0,\n        \"run_immediately\": False,\n    },\n    template_configuration={\n        \"id\": \"sls.app.sls_ack.node.down\",\n        \"type\": \"sys\",\n        \"lang\": \"cn\",\n        \"annotations\": {},\n        \"tokens\": {\n            \"interval_minute\": \"5\",\n            \"default.action_policy\": \"sls.app.ack.builtin\",\n            \"default.severity\": \"6\",\n            \"sendResolved\": \"false\",\n            \"default.project\": example.project_name,\n            \"default.logstore\": \"k8s-event\",\n            \"default.repeatInterval\": \"4h\",\n            \"trigger_threshold\": \"1\",\n            \"default.clusterId\": \"example-cluster-id\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Log.Project(\"example\", new()\n    {\n        ProjectName = $\"terraform-example-{@default.Result}\",\n        Description = \"terraform-example\",\n    });\n\n    var exampleStore = new AliCloud.Log.Store(\"example\", new()\n    {\n        ProjectName = example.ProjectName,\n        LogstoreName = \"example-store\",\n        RetentionPeriod = 3650,\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var example_3 = new AliCloud.Log.Alert(\"example-3\", new()\n    {\n        Version = \"2.0\",\n        Type = \"tpl\",\n        ProjectName = example.ProjectName,\n        AlertName = \"example-alert\",\n        AlertDisplayname = \"example-alert\",\n        MuteUntil = 1632486684,\n        Schedule = new AliCloud.Log.Inputs.AlertScheduleArgs\n        {\n            Type = \"FixedRate\",\n            Interval = \"5m\",\n            Hour = 0,\n            DayOfWeek = 0,\n            Delay = 0,\n            RunImmediately = false,\n        },\n        TemplateConfiguration = new AliCloud.Log.Inputs.AlertTemplateConfigurationArgs\n        {\n            Id = \"sls.app.sls_ack.node.down\",\n            Type = \"sys\",\n            Lang = \"cn\",\n            Annotations = null,\n            Tokens = \n            {\n                { \"interval_minute\", \"5\" },\n                { \"default.action_policy\", \"sls.app.ack.builtin\" },\n                { \"default.severity\", \"6\" },\n                { \"sendResolved\", \"false\" },\n                { \"default.project\", example.ProjectName },\n                { \"default.logstore\", \"k8s-event\" },\n                { \"default.repeatInterval\", \"4h\" },\n                { \"trigger_threshold\", \"1\" },\n                { \"default.clusterId\", \"example-cluster-id\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewStore(ctx, \"example\", \u0026log.StoreArgs{\n\t\t\tProjectName:        example.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(\"example-store\"),\n\t\t\tRetentionPeriod:    pulumi.Int(3650),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewAlert(ctx, \"example-3\", \u0026log.AlertArgs{\n\t\t\tVersion:          pulumi.String(\"2.0\"),\n\t\t\tType:             pulumi.String(\"tpl\"),\n\t\t\tProjectName:      example.ProjectName,\n\t\t\tAlertName:        pulumi.String(\"example-alert\"),\n\t\t\tAlertDisplayname: pulumi.String(\"example-alert\"),\n\t\t\tMuteUntil:        pulumi.Int(1632486684),\n\t\t\tSchedule: \u0026log.AlertScheduleArgs{\n\t\t\t\tType:           pulumi.String(\"FixedRate\"),\n\t\t\t\tInterval:       pulumi.String(\"5m\"),\n\t\t\t\tHour:           pulumi.Int(0),\n\t\t\t\tDayOfWeek:      pulumi.Int(0),\n\t\t\t\tDelay:          pulumi.Int(0),\n\t\t\t\tRunImmediately: pulumi.Bool(false),\n\t\t\t},\n\t\t\tTemplateConfiguration: \u0026log.AlertTemplateConfigurationArgs{\n\t\t\t\tId:          pulumi.String(\"sls.app.sls_ack.node.down\"),\n\t\t\t\tType:        pulumi.String(\"sys\"),\n\t\t\t\tLang:        pulumi.String(\"cn\"),\n\t\t\t\tAnnotations: pulumi.StringMap{},\n\t\t\t\tTokens: pulumi.StringMap{\n\t\t\t\t\t\"interval_minute\":        pulumi.String(\"5\"),\n\t\t\t\t\t\"default.action_policy\":  pulumi.String(\"sls.app.ack.builtin\"),\n\t\t\t\t\t\"default.severity\":       pulumi.String(\"6\"),\n\t\t\t\t\t\"sendResolved\":           pulumi.String(\"false\"),\n\t\t\t\t\t\"default.project\":        example.ProjectName,\n\t\t\t\t\t\"default.logstore\":       pulumi.String(\"k8s-event\"),\n\t\t\t\t\t\"default.repeatInterval\": pulumi.String(\"4h\"),\n\t\t\t\t\t\"trigger_threshold\":      pulumi.String(\"1\"),\n\t\t\t\t\t\"default.clusterId\":      pulumi.String(\"example-cluster-id\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.log.Alert;\nimport com.pulumi.alicloud.log.AlertArgs;\nimport com.pulumi.alicloud.log.inputs.AlertScheduleArgs;\nimport com.pulumi.alicloud.log.inputs.AlertTemplateConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .projectName(String.format(\"terraform-example-%s\", default_.result()))\n            .description(\"terraform-example\")\n            .build());\n\n        var exampleStore = new Store(\"exampleStore\", StoreArgs.builder()\n            .projectName(example.projectName())\n            .logstoreName(\"example-store\")\n            .retentionPeriod(3650)\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var example_3 = new Alert(\"example-3\", AlertArgs.builder()\n            .version(\"2.0\")\n            .type(\"tpl\")\n            .projectName(example.projectName())\n            .alertName(\"example-alert\")\n            .alertDisplayname(\"example-alert\")\n            .muteUntil(1632486684)\n            .schedule(AlertScheduleArgs.builder()\n                .type(\"FixedRate\")\n                .interval(\"5m\")\n                .hour(0)\n                .dayOfWeek(0)\n                .delay(0)\n                .runImmediately(false)\n                .build())\n            .templateConfiguration(AlertTemplateConfigurationArgs.builder()\n                .id(\"sls.app.sls_ack.node.down\")\n                .type(\"sys\")\n                .lang(\"cn\")\n                .annotations(Map.ofEntries(\n                ))\n                .tokens(Map.ofEntries(\n                    Map.entry(\"interval_minute\", \"5\"),\n                    Map.entry(\"default.action_policy\", \"sls.app.ack.builtin\"),\n                    Map.entry(\"default.severity\", \"6\"),\n                    Map.entry(\"sendResolved\", \"false\"),\n                    Map.entry(\"default.project\", example.projectName()),\n                    Map.entry(\"default.logstore\", \"k8s-event\"),\n                    Map.entry(\"default.repeatInterval\", \"4h\"),\n                    Map.entry(\"trigger_threshold\", \"1\"),\n                    Map.entry(\"default.clusterId\", \"example-cluster-id\")\n                ))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:log:Project\n    properties:\n      projectName: terraform-example-${default.result}\n      description: terraform-example\n  exampleStore:\n    type: alicloud:log:Store\n    name: example\n    properties:\n      projectName: ${example.projectName}\n      logstoreName: example-store\n      retentionPeriod: 3650\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  example-3:\n    type: alicloud:log:Alert\n    properties:\n      version: '2.0'\n      type: tpl\n      projectName: ${example.projectName}\n      alertName: example-alert\n      alertDisplayname: example-alert\n      muteUntil: '1632486684'\n      schedule:\n        type: FixedRate\n        interval: 5m\n        hour: 0\n        dayOfWeek: 0\n        delay: 0\n        runImmediately: false\n      templateConfiguration:\n        id: sls.app.sls_ack.node.down\n        type: sys\n        lang: cn\n        annotations: {}\n        tokens:\n          interval_minute: '5'\n          default.action_policy: sls.app.ack.builtin\n          default.severity: '6'\n          sendResolved: 'false'\n          default.project: ${example.projectName}\n          default.logstore: k8s-event\n          default.repeatInterval: 4h\n          trigger_threshold: '1'\n          default.clusterId: example-cluster-id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog alert can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:log/alert:Alert example tf-log:tf-log-alert\n```\n\n","properties":{"alertDescription":{"type":"string","description":"Alert description.\n"},"alertDisplayname":{"type":"string","description":"Alert displayname.\n"},"alertName":{"type":"string","description":"Name of logstore for configuring alarm service.\n"},"annotations":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertAnnotation:AlertAnnotation"},"description":"Annotations for new alert.\n"},"autoAnnotation":{"type":"boolean","description":"whether to add automatic annotation, default is false.\n"},"condition":{"type":"string","description":"Conditional expression, such as: count\u003e 100, Deprecated from 1.161.0+.\n","deprecationMessage":"Deprecated from 1.161.0+, use\u003cspan pulumi-lang-nodejs=\" evalCondition \" pulumi-lang-dotnet=\" EvalCondition \" pulumi-lang-go=\" evalCondition \" pulumi-lang-python=\" eval_condition \" pulumi-lang-yaml=\" evalCondition \" pulumi-lang-java=\" evalCondition \"\u003e eval_condition \u003c/span\u003ein severity_configurations"},"dashboard":{"type":"string","description":"The name of the dashboard associated with the alarm. The name of the instrument cluster associated with the alarm. If there is no such instrument cluster, terraform will help you create an empty instrument cluster, Deprecated from 1.161.0+.\n","deprecationMessage":"Deprecated from 1.161.0+, use dashboardId in query_list"},"groupConfiguration":{"$ref":"#/types/alicloud:log/AlertGroupConfiguration:AlertGroupConfiguration","description":"Group configuration for new alert.\n"},"joinConfigurations":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertJoinConfiguration:AlertJoinConfiguration"},"description":"Join configuration for different queries.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertLabel:AlertLabel"},"description":"Labels for new alert.\n"},"muteUntil":{"type":"integer","description":"Timestamp, notifications before closing again.\n"},"noDataFire":{"type":"boolean","description":"Switch for whether new alert fires when no data happens, default is false.\n"},"noDataSeverity":{"type":"integer","description":"when no data happens, the severity of new alert.\n"},"notificationLists":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertNotificationList:AlertNotificationList"},"description":"Alarm information notification list, Deprecated from 1.161.0+.\n","deprecationMessage":"Deprecated from 1.161.0+, use\u003cspan pulumi-lang-nodejs=\" policyConfiguration \" pulumi-lang-dotnet=\" PolicyConfiguration \" pulumi-lang-go=\" policyConfiguration \" pulumi-lang-python=\" policy_configuration \" pulumi-lang-yaml=\" policyConfiguration \" pulumi-lang-java=\" policyConfiguration \"\u003e policy_configuration \u003c/span\u003efor notification"},"notifyThreshold":{"type":"integer","description":"Notification threshold, which is not notified until the number of triggers is reached. The default is 1, Deprecated from 1.161.0+.\n","deprecationMessage":"Deprecated from 1.161.0+, use threshold"},"policyConfiguration":{"$ref":"#/types/alicloud:log/AlertPolicyConfiguration:AlertPolicyConfiguration","description":"Policy configuration for new alert.\n"},"projectName":{"type":"string","description":"The project name.\n"},"queryLists":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertQueryList:AlertQueryList"},"description":"Multiple conditions for configured alarm query.\n"},"schedule":{"$ref":"#/types/alicloud:log/AlertSchedule:AlertSchedule","description":"schedule for alert.\n"},"scheduleInterval":{"type":"string","description":"Execution interval. 60 seconds minimum, such as 60s, 1h. Deprecated from 1.176.0+. use interval in schedule.\n","deprecationMessage":"Field 'schedule_interval' has been deprecated from provider version 1.176.0. New field 'schedule' instead."},"scheduleType":{"type":"string","description":"Default FixedRate. No need to configure this parameter. Deprecated from 1.176.0+. use type in schedule.\n","deprecationMessage":"Field 'schedule_type' has been deprecated from provider version 1.176.0. New field 'schedule' instead."},"sendResolved":{"type":"boolean","description":"when new alert is resolved, whether to notify, default is false.\n"},"severityConfigurations":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertSeverityConfiguration:AlertSeverityConfiguration"},"description":"Severity configuration for new alert.\n"},"templateConfiguration":{"$ref":"#/types/alicloud:log/AlertTemplateConfiguration:AlertTemplateConfiguration","description":"Template configuration for alert, when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`tpl`\" pulumi-lang-dotnet=\"`Tpl`\" pulumi-lang-go=\"`tpl`\" pulumi-lang-python=\"`tpl`\" pulumi-lang-yaml=\"`tpl`\" pulumi-lang-java=\"`tpl`\"\u003e`tpl`\u003c/span\u003e.\n"},"threshold":{"type":"integer","description":"Evaluation threshold, alert will not fire until the number of triggers is reached. The default is 1.\n"},"throttling":{"type":"string","description":"Notification interval, default is no interval. Support number + unit type, for example 60s, 1h, Deprecated from 1.161.0+.\n","deprecationMessage":"Deprecated from 1.161.0+, use\u003cspan pulumi-lang-nodejs=\" repeatInterval \" pulumi-lang-dotnet=\" RepeatInterval \" pulumi-lang-go=\" repeatInterval \" pulumi-lang-python=\" repeat_interval \" pulumi-lang-yaml=\" repeatInterval \" pulumi-lang-java=\" repeatInterval \"\u003e repeat_interval \u003c/span\u003ein policy_configuration"},"type":{"type":"string","description":"The type of new alert, \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e for custom alert, \u003cspan pulumi-lang-nodejs=\"`tpl`\" pulumi-lang-dotnet=\"`Tpl`\" pulumi-lang-go=\"`tpl`\" pulumi-lang-python=\"`tpl`\" pulumi-lang-yaml=\"`tpl`\" pulumi-lang-java=\"`tpl`\"\u003e`tpl`\u003c/span\u003e for template alert.\n"},"version":{"type":"string","description":"The version of alert, new alert is 2.0.\n"}},"required":["alertDisplayname","alertName","muteUntil","projectName","scheduleInterval","scheduleType","threshold"],"inputProperties":{"alertDescription":{"type":"string","description":"Alert description.\n"},"alertDisplayname":{"type":"string","description":"Alert displayname.\n"},"alertName":{"type":"string","description":"Name of logstore for configuring alarm service.\n","willReplaceOnChanges":true},"annotations":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertAnnotation:AlertAnnotation"},"description":"Annotations for new alert.\n"},"autoAnnotation":{"type":"boolean","description":"whether to add automatic annotation, default is false.\n"},"condition":{"type":"string","description":"Conditional expression, such as: count\u003e 100, Deprecated from 1.161.0+.\n","deprecationMessage":"Deprecated from 1.161.0+, use\u003cspan pulumi-lang-nodejs=\" evalCondition \" pulumi-lang-dotnet=\" EvalCondition \" pulumi-lang-go=\" evalCondition \" pulumi-lang-python=\" eval_condition \" pulumi-lang-yaml=\" evalCondition \" pulumi-lang-java=\" evalCondition \"\u003e eval_condition \u003c/span\u003ein severity_configurations"},"dashboard":{"type":"string","description":"The name of the dashboard associated with the alarm. The name of the instrument cluster associated with the alarm. If there is no such instrument cluster, terraform will help you create an empty instrument cluster, Deprecated from 1.161.0+.\n","deprecationMessage":"Deprecated from 1.161.0+, use dashboardId in query_list"},"groupConfiguration":{"$ref":"#/types/alicloud:log/AlertGroupConfiguration:AlertGroupConfiguration","description":"Group configuration for new alert.\n"},"joinConfigurations":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertJoinConfiguration:AlertJoinConfiguration"},"description":"Join configuration for different queries.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertLabel:AlertLabel"},"description":"Labels for new alert.\n"},"muteUntil":{"type":"integer","description":"Timestamp, notifications before closing again.\n"},"noDataFire":{"type":"boolean","description":"Switch for whether new alert fires when no data happens, default is false.\n"},"noDataSeverity":{"type":"integer","description":"when no data happens, the severity of new alert.\n"},"notificationLists":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertNotificationList:AlertNotificationList"},"description":"Alarm information notification list, Deprecated from 1.161.0+.\n","deprecationMessage":"Deprecated from 1.161.0+, use\u003cspan pulumi-lang-nodejs=\" policyConfiguration \" pulumi-lang-dotnet=\" PolicyConfiguration \" pulumi-lang-go=\" policyConfiguration \" pulumi-lang-python=\" policy_configuration \" pulumi-lang-yaml=\" policyConfiguration \" pulumi-lang-java=\" policyConfiguration \"\u003e policy_configuration \u003c/span\u003efor notification"},"notifyThreshold":{"type":"integer","description":"Notification threshold, which is not notified until the number of triggers is reached. The default is 1, Deprecated from 1.161.0+.\n","deprecationMessage":"Deprecated from 1.161.0+, use threshold"},"policyConfiguration":{"$ref":"#/types/alicloud:log/AlertPolicyConfiguration:AlertPolicyConfiguration","description":"Policy configuration for new alert.\n"},"projectName":{"type":"string","description":"The project name.\n","willReplaceOnChanges":true},"queryLists":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertQueryList:AlertQueryList"},"description":"Multiple conditions for configured alarm query.\n"},"schedule":{"$ref":"#/types/alicloud:log/AlertSchedule:AlertSchedule","description":"schedule for alert.\n"},"scheduleInterval":{"type":"string","description":"Execution interval. 60 seconds minimum, such as 60s, 1h. Deprecated from 1.176.0+. use interval in schedule.\n","deprecationMessage":"Field 'schedule_interval' has been deprecated from provider version 1.176.0. New field 'schedule' instead."},"scheduleType":{"type":"string","description":"Default FixedRate. No need to configure this parameter. Deprecated from 1.176.0+. use type in schedule.\n","deprecationMessage":"Field 'schedule_type' has been deprecated from provider version 1.176.0. New field 'schedule' instead."},"sendResolved":{"type":"boolean","description":"when new alert is resolved, whether to notify, default is false.\n"},"severityConfigurations":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertSeverityConfiguration:AlertSeverityConfiguration"},"description":"Severity configuration for new alert.\n"},"templateConfiguration":{"$ref":"#/types/alicloud:log/AlertTemplateConfiguration:AlertTemplateConfiguration","description":"Template configuration for alert, when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`tpl`\" pulumi-lang-dotnet=\"`Tpl`\" pulumi-lang-go=\"`tpl`\" pulumi-lang-python=\"`tpl`\" pulumi-lang-yaml=\"`tpl`\" pulumi-lang-java=\"`tpl`\"\u003e`tpl`\u003c/span\u003e.\n"},"threshold":{"type":"integer","description":"Evaluation threshold, alert will not fire until the number of triggers is reached. The default is 1.\n"},"throttling":{"type":"string","description":"Notification interval, default is no interval. Support number + unit type, for example 60s, 1h, Deprecated from 1.161.0+.\n","deprecationMessage":"Deprecated from 1.161.0+, use\u003cspan pulumi-lang-nodejs=\" repeatInterval \" pulumi-lang-dotnet=\" RepeatInterval \" pulumi-lang-go=\" repeatInterval \" pulumi-lang-python=\" repeat_interval \" pulumi-lang-yaml=\" repeatInterval \" pulumi-lang-java=\" repeatInterval \"\u003e repeat_interval \u003c/span\u003ein policy_configuration"},"type":{"type":"string","description":"The type of new alert, \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e for custom alert, \u003cspan pulumi-lang-nodejs=\"`tpl`\" pulumi-lang-dotnet=\"`Tpl`\" pulumi-lang-go=\"`tpl`\" pulumi-lang-python=\"`tpl`\" pulumi-lang-yaml=\"`tpl`\" pulumi-lang-java=\"`tpl`\"\u003e`tpl`\u003c/span\u003e for template alert.\n"},"version":{"type":"string","description":"The version of alert, new alert is 2.0.\n"}},"requiredInputs":["alertDisplayname","alertName","projectName"],"stateInputs":{"description":"Input properties used for looking up and filtering Alert resources.\n","properties":{"alertDescription":{"type":"string","description":"Alert description.\n"},"alertDisplayname":{"type":"string","description":"Alert displayname.\n"},"alertName":{"type":"string","description":"Name of logstore for configuring alarm service.\n","willReplaceOnChanges":true},"annotations":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertAnnotation:AlertAnnotation"},"description":"Annotations for new alert.\n"},"autoAnnotation":{"type":"boolean","description":"whether to add automatic annotation, default is false.\n"},"condition":{"type":"string","description":"Conditional expression, such as: count\u003e 100, Deprecated from 1.161.0+.\n","deprecationMessage":"Deprecated from 1.161.0+, use\u003cspan pulumi-lang-nodejs=\" evalCondition \" pulumi-lang-dotnet=\" EvalCondition \" pulumi-lang-go=\" evalCondition \" pulumi-lang-python=\" eval_condition \" pulumi-lang-yaml=\" evalCondition \" pulumi-lang-java=\" evalCondition \"\u003e eval_condition \u003c/span\u003ein severity_configurations"},"dashboard":{"type":"string","description":"The name of the dashboard associated with the alarm. The name of the instrument cluster associated with the alarm. If there is no such instrument cluster, terraform will help you create an empty instrument cluster, Deprecated from 1.161.0+.\n","deprecationMessage":"Deprecated from 1.161.0+, use dashboardId in query_list"},"groupConfiguration":{"$ref":"#/types/alicloud:log/AlertGroupConfiguration:AlertGroupConfiguration","description":"Group configuration for new alert.\n"},"joinConfigurations":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertJoinConfiguration:AlertJoinConfiguration"},"description":"Join configuration for different queries.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertLabel:AlertLabel"},"description":"Labels for new alert.\n"},"muteUntil":{"type":"integer","description":"Timestamp, notifications before closing again.\n"},"noDataFire":{"type":"boolean","description":"Switch for whether new alert fires when no data happens, default is false.\n"},"noDataSeverity":{"type":"integer","description":"when no data happens, the severity of new alert.\n"},"notificationLists":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertNotificationList:AlertNotificationList"},"description":"Alarm information notification list, Deprecated from 1.161.0+.\n","deprecationMessage":"Deprecated from 1.161.0+, use\u003cspan pulumi-lang-nodejs=\" policyConfiguration \" pulumi-lang-dotnet=\" PolicyConfiguration \" pulumi-lang-go=\" policyConfiguration \" pulumi-lang-python=\" policy_configuration \" pulumi-lang-yaml=\" policyConfiguration \" pulumi-lang-java=\" policyConfiguration \"\u003e policy_configuration \u003c/span\u003efor notification"},"notifyThreshold":{"type":"integer","description":"Notification threshold, which is not notified until the number of triggers is reached. The default is 1, Deprecated from 1.161.0+.\n","deprecationMessage":"Deprecated from 1.161.0+, use threshold"},"policyConfiguration":{"$ref":"#/types/alicloud:log/AlertPolicyConfiguration:AlertPolicyConfiguration","description":"Policy configuration for new alert.\n"},"projectName":{"type":"string","description":"The project name.\n","willReplaceOnChanges":true},"queryLists":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertQueryList:AlertQueryList"},"description":"Multiple conditions for configured alarm query.\n"},"schedule":{"$ref":"#/types/alicloud:log/AlertSchedule:AlertSchedule","description":"schedule for alert.\n"},"scheduleInterval":{"type":"string","description":"Execution interval. 60 seconds minimum, such as 60s, 1h. Deprecated from 1.176.0+. use interval in schedule.\n","deprecationMessage":"Field 'schedule_interval' has been deprecated from provider version 1.176.0. New field 'schedule' instead."},"scheduleType":{"type":"string","description":"Default FixedRate. No need to configure this parameter. Deprecated from 1.176.0+. use type in schedule.\n","deprecationMessage":"Field 'schedule_type' has been deprecated from provider version 1.176.0. New field 'schedule' instead."},"sendResolved":{"type":"boolean","description":"when new alert is resolved, whether to notify, default is false.\n"},"severityConfigurations":{"type":"array","items":{"$ref":"#/types/alicloud:log/AlertSeverityConfiguration:AlertSeverityConfiguration"},"description":"Severity configuration for new alert.\n"},"templateConfiguration":{"$ref":"#/types/alicloud:log/AlertTemplateConfiguration:AlertTemplateConfiguration","description":"Template configuration for alert, when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`tpl`\" pulumi-lang-dotnet=\"`Tpl`\" pulumi-lang-go=\"`tpl`\" pulumi-lang-python=\"`tpl`\" pulumi-lang-yaml=\"`tpl`\" pulumi-lang-java=\"`tpl`\"\u003e`tpl`\u003c/span\u003e.\n"},"threshold":{"type":"integer","description":"Evaluation threshold, alert will not fire until the number of triggers is reached. The default is 1.\n"},"throttling":{"type":"string","description":"Notification interval, default is no interval. Support number + unit type, for example 60s, 1h, Deprecated from 1.161.0+.\n","deprecationMessage":"Deprecated from 1.161.0+, use\u003cspan pulumi-lang-nodejs=\" repeatInterval \" pulumi-lang-dotnet=\" RepeatInterval \" pulumi-lang-go=\" repeatInterval \" pulumi-lang-python=\" repeat_interval \" pulumi-lang-yaml=\" repeatInterval \" pulumi-lang-java=\" repeatInterval \"\u003e repeat_interval \u003c/span\u003ein policy_configuration"},"type":{"type":"string","description":"The type of new alert, \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e for custom alert, \u003cspan pulumi-lang-nodejs=\"`tpl`\" pulumi-lang-dotnet=\"`Tpl`\" pulumi-lang-go=\"`tpl`\" pulumi-lang-python=\"`tpl`\" pulumi-lang-yaml=\"`tpl`\" pulumi-lang-java=\"`tpl`\"\u003e`tpl`\u003c/span\u003e for template alert.\n"},"version":{"type":"string","description":"The version of alert, new alert is 2.0.\n"}},"type":"object"}},"alicloud:log/alertResource:AlertResource":{"description":"Using this resource can init SLS Alert resources automatically.\n\nFor information about SLS Alert and how to use it, see [SLS Alert Overview](https://www.alibabacloud.com/help/en/doc-detail/209202.html)\n\n\u003e **NOTE:** Available since v1.219.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst exampleUser = new alicloud.log.AlertResource(\"example_user\", {\n    type: \"user\",\n    lang: \"cn\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample_user = alicloud.log.AlertResource(\"example_user\",\n    type=\"user\",\n    lang=\"cn\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleUser = new AliCloud.Log.AlertResource(\"example_user\", new()\n    {\n        Type = \"user\",\n        Lang = \"cn\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := log.NewAlertResource(ctx, \"example_user\", \u0026log.AlertResourceArgs{\n\t\t\tType: pulumi.String(\"user\"),\n\t\t\tLang: pulumi.String(\"cn\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.log.AlertResource;\nimport com.pulumi.alicloud.log.AlertResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleUser = new AlertResource(\"exampleUser\", AlertResourceArgs.builder()\n            .type(\"user\")\n            .lang(\"cn\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleUser:\n    type: alicloud:log:AlertResource\n    name: example_user\n    properties:\n      type: user\n      lang: cn\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog alert resource can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:log/alertResource:AlertResource example alert_resource:project:tf-project\n```\n\n","properties":{"lang":{"type":"string","description":"The lang of alert center resource when type is user.\n"},"project":{"type":"string","description":"The project of alert resource when type is project.\n"},"type":{"type":"string","description":"The type of alert resources, must be user or project, 'user' for init aliyuncloud account's alert center resource, including project named sls-alert-{uid}-{region} and some dashboards; 'project' for init project's alert resource, including logstore named internal-alert-history and alert dashboard.\n"}},"required":["type"],"inputProperties":{"lang":{"type":"string","description":"The lang of alert center resource when type is user.\n","willReplaceOnChanges":true},"project":{"type":"string","description":"The project of alert resource when type is project.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of alert resources, must be user or project, 'user' for init aliyuncloud account's alert center resource, including project named sls-alert-{uid}-{region} and some dashboards; 'project' for init project's alert resource, including logstore named internal-alert-history and alert dashboard.\n","willReplaceOnChanges":true}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering AlertResource resources.\n","properties":{"lang":{"type":"string","description":"The lang of alert center resource when type is user.\n","willReplaceOnChanges":true},"project":{"type":"string","description":"The project of alert resource when type is project.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of alert resources, must be user or project, 'user' for init aliyuncloud account's alert center resource, including project named sls-alert-{uid}-{region} and some dashboards; 'project' for init project's alert resource, including logstore named internal-alert-history and alert dashboard.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:log/audit:Audit":{"description":"SLS log audit exists in the form of log service app.\n\nIn addition to inheriting all SLS functions, it also enhances the real-time automatic centralized collection of audit related logs across multi cloud products under multi accounts, and provides support for storage, query and information summary required by audit. It covers actiontrail, OSS, NAS, SLB, API gateway, RDS, WAF, cloud firewall, cloud security center and other products.\n\n\u003e **NOTE:** Available since v1.81.0\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getAccount({});\nconst example = new alicloud.log.Audit(\"example\", {\n    displayName: \"tf-audit-example\",\n    aliuid: _default.then(_default =\u003e _default.id),\n    variableMap: {\n        actiontrail_enabled: \"true\",\n        actiontrail_ttl: \"180\",\n        oss_access_enabled: \"true\",\n        oss_access_ttl: \"7\",\n        oss_sync_enabled: \"true\",\n        oss_sync_ttl: \"180\",\n        oss_metering_enabled: \"true\",\n        oss_metering_ttl: \"180\",\n        rds_enabled: \"true\",\n        rds_audit_collection_policy: \"\",\n        rds_ttl: \"180\",\n        rds_slow_enabled: \"false\",\n        rds_slow_collection_policy: \"\",\n        rds_slow_ttl: \"180\",\n        rds_perf_enabled: \"false\",\n        rds_perf_collection_policy: \"\",\n        rds_perf_ttl: \"180\",\n        vpc_flow_enabled: \"false\",\n        vpc_flow_ttl: \"7\",\n        vpc_flow_collection_policy: \"\",\n        vpc_sync_enabled: \"true\",\n        vpc_sync_ttl: \"180\",\n        polardb_enabled: \"true\",\n        polardb_audit_collection_policy: \"\",\n        polardb_ttl: \"180\",\n        polardb_slow_enabled: \"false\",\n        polardb_slow_collection_policy: \"\",\n        polardb_slow_ttl: \"180\",\n        polardb_perf_enabled: \"false\",\n        polardb_perf_collection_policy: \"\",\n        polardb_perf_ttl: \"180\",\n        drds_audit_enabled: \"true\",\n        drds_audit_collection_policy: \"\",\n        drds_audit_ttl: \"7\",\n        drds_sync_enabled: \"true\",\n        drds_sync_ttl: \"180\",\n        slb_access_enabled: \"true\",\n        slb_access_collection_policy: \"\",\n        slb_access_ttl: \"7\",\n        slb_sync_enabled: \"true\",\n        slb_sync_ttl: \"180\",\n        bastion_enabled: \"true\",\n        bastion_ttl: \"180\",\n        waf_enabled: \"true\",\n        waf_ttl: \"180\",\n        cloudfirewall_enabled: \"true\",\n        cloudfirewall_ttl: \"180\",\n        ddos_coo_access_enabled: \"false\",\n        ddos_coo_access_ttl: \"180\",\n        ddos_bgp_access_enabled: \"false\",\n        ddos_bgp_access_ttl: \"180\",\n        ddos_dip_access_enabled: \"false\",\n        ddos_dip_access_ttl: \"180\",\n        sas_crack_enabled: \"true\",\n        sas_dns_enabled: \"true\",\n        sas_http_enabled: \"true\",\n        sas_local_dns_enabled: \"true\",\n        sas_login_enabled: \"true\",\n        sas_network_enabled: \"true\",\n        sas_process_enabled: \"true\",\n        sas_security_alert_enabled: \"true\",\n        sas_security_hc_enabled: \"true\",\n        sas_security_vul_enabled: \"true\",\n        sas_session_enabled: \"true\",\n        sas_snapshot_account_enabled: \"true\",\n        sas_snapshot_port_enabled: \"true\",\n        sas_snapshot_process_enabled: \"true\",\n        sas_ttl: \"180\",\n        apigateway_enabled: \"true\",\n        apigateway_ttl: \"180\",\n        nas_enabled: \"true\",\n        nas_ttl: \"180\",\n        appconnect_enabled: \"false\",\n        appconnect_ttl: \"180\",\n        cps_enabled: \"true\",\n        cps_ttl: \"180\",\n        k8s_audit_enabled: \"true\",\n        k8s_audit_collection_policy: \"\",\n        k8s_audit_ttl: \"180\",\n        k8s_event_enabled: \"true\",\n        k8s_event_collection_policy: \"\",\n        k8s_event_ttl: \"180\",\n        k8s_ingress_enabled: \"true\",\n        k8s_ingress_collection_policy: \"\",\n        k8s_ingress_ttl: \"180\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_account()\nexample = alicloud.log.Audit(\"example\",\n    display_name=\"tf-audit-example\",\n    aliuid=default.id,\n    variable_map={\n        \"actiontrail_enabled\": \"true\",\n        \"actiontrail_ttl\": \"180\",\n        \"oss_access_enabled\": \"true\",\n        \"oss_access_ttl\": \"7\",\n        \"oss_sync_enabled\": \"true\",\n        \"oss_sync_ttl\": \"180\",\n        \"oss_metering_enabled\": \"true\",\n        \"oss_metering_ttl\": \"180\",\n        \"rds_enabled\": \"true\",\n        \"rds_audit_collection_policy\": \"\",\n        \"rds_ttl\": \"180\",\n        \"rds_slow_enabled\": \"false\",\n        \"rds_slow_collection_policy\": \"\",\n        \"rds_slow_ttl\": \"180\",\n        \"rds_perf_enabled\": \"false\",\n        \"rds_perf_collection_policy\": \"\",\n        \"rds_perf_ttl\": \"180\",\n        \"vpc_flow_enabled\": \"false\",\n        \"vpc_flow_ttl\": \"7\",\n        \"vpc_flow_collection_policy\": \"\",\n        \"vpc_sync_enabled\": \"true\",\n        \"vpc_sync_ttl\": \"180\",\n        \"polardb_enabled\": \"true\",\n        \"polardb_audit_collection_policy\": \"\",\n        \"polardb_ttl\": \"180\",\n        \"polardb_slow_enabled\": \"false\",\n        \"polardb_slow_collection_policy\": \"\",\n        \"polardb_slow_ttl\": \"180\",\n        \"polardb_perf_enabled\": \"false\",\n        \"polardb_perf_collection_policy\": \"\",\n        \"polardb_perf_ttl\": \"180\",\n        \"drds_audit_enabled\": \"true\",\n        \"drds_audit_collection_policy\": \"\",\n        \"drds_audit_ttl\": \"7\",\n        \"drds_sync_enabled\": \"true\",\n        \"drds_sync_ttl\": \"180\",\n        \"slb_access_enabled\": \"true\",\n        \"slb_access_collection_policy\": \"\",\n        \"slb_access_ttl\": \"7\",\n        \"slb_sync_enabled\": \"true\",\n        \"slb_sync_ttl\": \"180\",\n        \"bastion_enabled\": \"true\",\n        \"bastion_ttl\": \"180\",\n        \"waf_enabled\": \"true\",\n        \"waf_ttl\": \"180\",\n        \"cloudfirewall_enabled\": \"true\",\n        \"cloudfirewall_ttl\": \"180\",\n        \"ddos_coo_access_enabled\": \"false\",\n        \"ddos_coo_access_ttl\": \"180\",\n        \"ddos_bgp_access_enabled\": \"false\",\n        \"ddos_bgp_access_ttl\": \"180\",\n        \"ddos_dip_access_enabled\": \"false\",\n        \"ddos_dip_access_ttl\": \"180\",\n        \"sas_crack_enabled\": \"true\",\n        \"sas_dns_enabled\": \"true\",\n        \"sas_http_enabled\": \"true\",\n        \"sas_local_dns_enabled\": \"true\",\n        \"sas_login_enabled\": \"true\",\n        \"sas_network_enabled\": \"true\",\n        \"sas_process_enabled\": \"true\",\n        \"sas_security_alert_enabled\": \"true\",\n        \"sas_security_hc_enabled\": \"true\",\n        \"sas_security_vul_enabled\": \"true\",\n        \"sas_session_enabled\": \"true\",\n        \"sas_snapshot_account_enabled\": \"true\",\n        \"sas_snapshot_port_enabled\": \"true\",\n        \"sas_snapshot_process_enabled\": \"true\",\n        \"sas_ttl\": \"180\",\n        \"apigateway_enabled\": \"true\",\n        \"apigateway_ttl\": \"180\",\n        \"nas_enabled\": \"true\",\n        \"nas_ttl\": \"180\",\n        \"appconnect_enabled\": \"false\",\n        \"appconnect_ttl\": \"180\",\n        \"cps_enabled\": \"true\",\n        \"cps_ttl\": \"180\",\n        \"k8s_audit_enabled\": \"true\",\n        \"k8s_audit_collection_policy\": \"\",\n        \"k8s_audit_ttl\": \"180\",\n        \"k8s_event_enabled\": \"true\",\n        \"k8s_event_collection_policy\": \"\",\n        \"k8s_event_ttl\": \"180\",\n        \"k8s_ingress_enabled\": \"true\",\n        \"k8s_ingress_collection_policy\": \"\",\n        \"k8s_ingress_ttl\": \"180\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var example = new AliCloud.Log.Audit(\"example\", new()\n    {\n        DisplayName = \"tf-audit-example\",\n        Aliuid = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        VariableMap = \n        {\n            { \"actiontrail_enabled\", \"true\" },\n            { \"actiontrail_ttl\", \"180\" },\n            { \"oss_access_enabled\", \"true\" },\n            { \"oss_access_ttl\", \"7\" },\n            { \"oss_sync_enabled\", \"true\" },\n            { \"oss_sync_ttl\", \"180\" },\n            { \"oss_metering_enabled\", \"true\" },\n            { \"oss_metering_ttl\", \"180\" },\n            { \"rds_enabled\", \"true\" },\n            { \"rds_audit_collection_policy\", \"\" },\n            { \"rds_ttl\", \"180\" },\n            { \"rds_slow_enabled\", \"false\" },\n            { \"rds_slow_collection_policy\", \"\" },\n            { \"rds_slow_ttl\", \"180\" },\n            { \"rds_perf_enabled\", \"false\" },\n            { \"rds_perf_collection_policy\", \"\" },\n            { \"rds_perf_ttl\", \"180\" },\n            { \"vpc_flow_enabled\", \"false\" },\n            { \"vpc_flow_ttl\", \"7\" },\n            { \"vpc_flow_collection_policy\", \"\" },\n            { \"vpc_sync_enabled\", \"true\" },\n            { \"vpc_sync_ttl\", \"180\" },\n            { \"polardb_enabled\", \"true\" },\n            { \"polardb_audit_collection_policy\", \"\" },\n            { \"polardb_ttl\", \"180\" },\n            { \"polardb_slow_enabled\", \"false\" },\n            { \"polardb_slow_collection_policy\", \"\" },\n            { \"polardb_slow_ttl\", \"180\" },\n            { \"polardb_perf_enabled\", \"false\" },\n            { \"polardb_perf_collection_policy\", \"\" },\n            { \"polardb_perf_ttl\", \"180\" },\n            { \"drds_audit_enabled\", \"true\" },\n            { \"drds_audit_collection_policy\", \"\" },\n            { \"drds_audit_ttl\", \"7\" },\n            { \"drds_sync_enabled\", \"true\" },\n            { \"drds_sync_ttl\", \"180\" },\n            { \"slb_access_enabled\", \"true\" },\n            { \"slb_access_collection_policy\", \"\" },\n            { \"slb_access_ttl\", \"7\" },\n            { \"slb_sync_enabled\", \"true\" },\n            { \"slb_sync_ttl\", \"180\" },\n            { \"bastion_enabled\", \"true\" },\n            { \"bastion_ttl\", \"180\" },\n            { \"waf_enabled\", \"true\" },\n            { \"waf_ttl\", \"180\" },\n            { \"cloudfirewall_enabled\", \"true\" },\n            { \"cloudfirewall_ttl\", \"180\" },\n            { \"ddos_coo_access_enabled\", \"false\" },\n            { \"ddos_coo_access_ttl\", \"180\" },\n            { \"ddos_bgp_access_enabled\", \"false\" },\n            { \"ddos_bgp_access_ttl\", \"180\" },\n            { \"ddos_dip_access_enabled\", \"false\" },\n            { \"ddos_dip_access_ttl\", \"180\" },\n            { \"sas_crack_enabled\", \"true\" },\n            { \"sas_dns_enabled\", \"true\" },\n            { \"sas_http_enabled\", \"true\" },\n            { \"sas_local_dns_enabled\", \"true\" },\n            { \"sas_login_enabled\", \"true\" },\n            { \"sas_network_enabled\", \"true\" },\n            { \"sas_process_enabled\", \"true\" },\n            { \"sas_security_alert_enabled\", \"true\" },\n            { \"sas_security_hc_enabled\", \"true\" },\n            { \"sas_security_vul_enabled\", \"true\" },\n            { \"sas_session_enabled\", \"true\" },\n            { \"sas_snapshot_account_enabled\", \"true\" },\n            { \"sas_snapshot_port_enabled\", \"true\" },\n            { \"sas_snapshot_process_enabled\", \"true\" },\n            { \"sas_ttl\", \"180\" },\n            { \"apigateway_enabled\", \"true\" },\n            { \"apigateway_ttl\", \"180\" },\n            { \"nas_enabled\", \"true\" },\n            { \"nas_ttl\", \"180\" },\n            { \"appconnect_enabled\", \"false\" },\n            { \"appconnect_ttl\", \"180\" },\n            { \"cps_enabled\", \"true\" },\n            { \"cps_ttl\", \"180\" },\n            { \"k8s_audit_enabled\", \"true\" },\n            { \"k8s_audit_collection_policy\", \"\" },\n            { \"k8s_audit_ttl\", \"180\" },\n            { \"k8s_event_enabled\", \"true\" },\n            { \"k8s_event_collection_policy\", \"\" },\n            { \"k8s_event_ttl\", \"180\" },\n            { \"k8s_ingress_enabled\", \"true\" },\n            { \"k8s_ingress_collection_policy\", \"\" },\n            { \"k8s_ingress_ttl\", \"180\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewAudit(ctx, \"example\", \u0026log.AuditArgs{\n\t\t\tDisplayName: pulumi.String(\"tf-audit-example\"),\n\t\t\tAliuid:      pulumi.String(_default.Id),\n\t\t\tVariableMap: pulumi.StringMap{\n\t\t\t\t\"actiontrail_enabled\":             pulumi.String(\"true\"),\n\t\t\t\t\"actiontrail_ttl\":                 pulumi.String(\"180\"),\n\t\t\t\t\"oss_access_enabled\":              pulumi.String(\"true\"),\n\t\t\t\t\"oss_access_ttl\":                  pulumi.String(\"7\"),\n\t\t\t\t\"oss_sync_enabled\":                pulumi.String(\"true\"),\n\t\t\t\t\"oss_sync_ttl\":                    pulumi.String(\"180\"),\n\t\t\t\t\"oss_metering_enabled\":            pulumi.String(\"true\"),\n\t\t\t\t\"oss_metering_ttl\":                pulumi.String(\"180\"),\n\t\t\t\t\"rds_enabled\":                     pulumi.String(\"true\"),\n\t\t\t\t\"rds_audit_collection_policy\":     pulumi.String(\"\"),\n\t\t\t\t\"rds_ttl\":                         pulumi.String(\"180\"),\n\t\t\t\t\"rds_slow_enabled\":                pulumi.String(\"false\"),\n\t\t\t\t\"rds_slow_collection_policy\":      pulumi.String(\"\"),\n\t\t\t\t\"rds_slow_ttl\":                    pulumi.String(\"180\"),\n\t\t\t\t\"rds_perf_enabled\":                pulumi.String(\"false\"),\n\t\t\t\t\"rds_perf_collection_policy\":      pulumi.String(\"\"),\n\t\t\t\t\"rds_perf_ttl\":                    pulumi.String(\"180\"),\n\t\t\t\t\"vpc_flow_enabled\":                pulumi.String(\"false\"),\n\t\t\t\t\"vpc_flow_ttl\":                    pulumi.String(\"7\"),\n\t\t\t\t\"vpc_flow_collection_policy\":      pulumi.String(\"\"),\n\t\t\t\t\"vpc_sync_enabled\":                pulumi.String(\"true\"),\n\t\t\t\t\"vpc_sync_ttl\":                    pulumi.String(\"180\"),\n\t\t\t\t\"polardb_enabled\":                 pulumi.String(\"true\"),\n\t\t\t\t\"polardb_audit_collection_policy\": pulumi.String(\"\"),\n\t\t\t\t\"polardb_ttl\":                     pulumi.String(\"180\"),\n\t\t\t\t\"polardb_slow_enabled\":            pulumi.String(\"false\"),\n\t\t\t\t\"polardb_slow_collection_policy\":  pulumi.String(\"\"),\n\t\t\t\t\"polardb_slow_ttl\":                pulumi.String(\"180\"),\n\t\t\t\t\"polardb_perf_enabled\":            pulumi.String(\"false\"),\n\t\t\t\t\"polardb_perf_collection_policy\":  pulumi.String(\"\"),\n\t\t\t\t\"polardb_perf_ttl\":                pulumi.String(\"180\"),\n\t\t\t\t\"drds_audit_enabled\":              pulumi.String(\"true\"),\n\t\t\t\t\"drds_audit_collection_policy\":    pulumi.String(\"\"),\n\t\t\t\t\"drds_audit_ttl\":                  pulumi.String(\"7\"),\n\t\t\t\t\"drds_sync_enabled\":               pulumi.String(\"true\"),\n\t\t\t\t\"drds_sync_ttl\":                   pulumi.String(\"180\"),\n\t\t\t\t\"slb_access_enabled\":              pulumi.String(\"true\"),\n\t\t\t\t\"slb_access_collection_policy\":    pulumi.String(\"\"),\n\t\t\t\t\"slb_access_ttl\":                  pulumi.String(\"7\"),\n\t\t\t\t\"slb_sync_enabled\":                pulumi.String(\"true\"),\n\t\t\t\t\"slb_sync_ttl\":                    pulumi.String(\"180\"),\n\t\t\t\t\"bastion_enabled\":                 pulumi.String(\"true\"),\n\t\t\t\t\"bastion_ttl\":                     pulumi.String(\"180\"),\n\t\t\t\t\"waf_enabled\":                     pulumi.String(\"true\"),\n\t\t\t\t\"waf_ttl\":                         pulumi.String(\"180\"),\n\t\t\t\t\"cloudfirewall_enabled\":           pulumi.String(\"true\"),\n\t\t\t\t\"cloudfirewall_ttl\":               pulumi.String(\"180\"),\n\t\t\t\t\"ddos_coo_access_enabled\":         pulumi.String(\"false\"),\n\t\t\t\t\"ddos_coo_access_ttl\":             pulumi.String(\"180\"),\n\t\t\t\t\"ddos_bgp_access_enabled\":         pulumi.String(\"false\"),\n\t\t\t\t\"ddos_bgp_access_ttl\":             pulumi.String(\"180\"),\n\t\t\t\t\"ddos_dip_access_enabled\":         pulumi.String(\"false\"),\n\t\t\t\t\"ddos_dip_access_ttl\":             pulumi.String(\"180\"),\n\t\t\t\t\"sas_crack_enabled\":               pulumi.String(\"true\"),\n\t\t\t\t\"sas_dns_enabled\":                 pulumi.String(\"true\"),\n\t\t\t\t\"sas_http_enabled\":                pulumi.String(\"true\"),\n\t\t\t\t\"sas_local_dns_enabled\":           pulumi.String(\"true\"),\n\t\t\t\t\"sas_login_enabled\":               pulumi.String(\"true\"),\n\t\t\t\t\"sas_network_enabled\":             pulumi.String(\"true\"),\n\t\t\t\t\"sas_process_enabled\":             pulumi.String(\"true\"),\n\t\t\t\t\"sas_security_alert_enabled\":      pulumi.String(\"true\"),\n\t\t\t\t\"sas_security_hc_enabled\":         pulumi.String(\"true\"),\n\t\t\t\t\"sas_security_vul_enabled\":        pulumi.String(\"true\"),\n\t\t\t\t\"sas_session_enabled\":             pulumi.String(\"true\"),\n\t\t\t\t\"sas_snapshot_account_enabled\":    pulumi.String(\"true\"),\n\t\t\t\t\"sas_snapshot_port_enabled\":       pulumi.String(\"true\"),\n\t\t\t\t\"sas_snapshot_process_enabled\":    pulumi.String(\"true\"),\n\t\t\t\t\"sas_ttl\":                         pulumi.String(\"180\"),\n\t\t\t\t\"apigateway_enabled\":              pulumi.String(\"true\"),\n\t\t\t\t\"apigateway_ttl\":                  pulumi.String(\"180\"),\n\t\t\t\t\"nas_enabled\":                     pulumi.String(\"true\"),\n\t\t\t\t\"nas_ttl\":                         pulumi.String(\"180\"),\n\t\t\t\t\"appconnect_enabled\":              pulumi.String(\"false\"),\n\t\t\t\t\"appconnect_ttl\":                  pulumi.String(\"180\"),\n\t\t\t\t\"cps_enabled\":                     pulumi.String(\"true\"),\n\t\t\t\t\"cps_ttl\":                         pulumi.String(\"180\"),\n\t\t\t\t\"k8s_audit_enabled\":               pulumi.String(\"true\"),\n\t\t\t\t\"k8s_audit_collection_policy\":     pulumi.String(\"\"),\n\t\t\t\t\"k8s_audit_ttl\":                   pulumi.String(\"180\"),\n\t\t\t\t\"k8s_event_enabled\":               pulumi.String(\"true\"),\n\t\t\t\t\"k8s_event_collection_policy\":     pulumi.String(\"\"),\n\t\t\t\t\"k8s_event_ttl\":                   pulumi.String(\"180\"),\n\t\t\t\t\"k8s_ingress_enabled\":             pulumi.String(\"true\"),\n\t\t\t\t\"k8s_ingress_collection_policy\":   pulumi.String(\"\"),\n\t\t\t\t\"k8s_ingress_ttl\":                 pulumi.String(\"180\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.log.Audit;\nimport com.pulumi.alicloud.log.AuditArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var example = new Audit(\"example\", AuditArgs.builder()\n            .displayName(\"tf-audit-example\")\n            .aliuid(default_.id())\n            .variableMap(Map.ofEntries(\n                Map.entry(\"actiontrail_enabled\", \"true\"),\n                Map.entry(\"actiontrail_ttl\", \"180\"),\n                Map.entry(\"oss_access_enabled\", \"true\"),\n                Map.entry(\"oss_access_ttl\", \"7\"),\n                Map.entry(\"oss_sync_enabled\", \"true\"),\n                Map.entry(\"oss_sync_ttl\", \"180\"),\n                Map.entry(\"oss_metering_enabled\", \"true\"),\n                Map.entry(\"oss_metering_ttl\", \"180\"),\n                Map.entry(\"rds_enabled\", \"true\"),\n                Map.entry(\"rds_audit_collection_policy\", \"\"),\n                Map.entry(\"rds_ttl\", \"180\"),\n                Map.entry(\"rds_slow_enabled\", \"false\"),\n                Map.entry(\"rds_slow_collection_policy\", \"\"),\n                Map.entry(\"rds_slow_ttl\", \"180\"),\n                Map.entry(\"rds_perf_enabled\", \"false\"),\n                Map.entry(\"rds_perf_collection_policy\", \"\"),\n                Map.entry(\"rds_perf_ttl\", \"180\"),\n                Map.entry(\"vpc_flow_enabled\", \"false\"),\n                Map.entry(\"vpc_flow_ttl\", \"7\"),\n                Map.entry(\"vpc_flow_collection_policy\", \"\"),\n                Map.entry(\"vpc_sync_enabled\", \"true\"),\n                Map.entry(\"vpc_sync_ttl\", \"180\"),\n                Map.entry(\"polardb_enabled\", \"true\"),\n                Map.entry(\"polardb_audit_collection_policy\", \"\"),\n                Map.entry(\"polardb_ttl\", \"180\"),\n                Map.entry(\"polardb_slow_enabled\", \"false\"),\n                Map.entry(\"polardb_slow_collection_policy\", \"\"),\n                Map.entry(\"polardb_slow_ttl\", \"180\"),\n                Map.entry(\"polardb_perf_enabled\", \"false\"),\n                Map.entry(\"polardb_perf_collection_policy\", \"\"),\n                Map.entry(\"polardb_perf_ttl\", \"180\"),\n                Map.entry(\"drds_audit_enabled\", \"true\"),\n                Map.entry(\"drds_audit_collection_policy\", \"\"),\n                Map.entry(\"drds_audit_ttl\", \"7\"),\n                Map.entry(\"drds_sync_enabled\", \"true\"),\n                Map.entry(\"drds_sync_ttl\", \"180\"),\n                Map.entry(\"slb_access_enabled\", \"true\"),\n                Map.entry(\"slb_access_collection_policy\", \"\"),\n                Map.entry(\"slb_access_ttl\", \"7\"),\n                Map.entry(\"slb_sync_enabled\", \"true\"),\n                Map.entry(\"slb_sync_ttl\", \"180\"),\n                Map.entry(\"bastion_enabled\", \"true\"),\n                Map.entry(\"bastion_ttl\", \"180\"),\n                Map.entry(\"waf_enabled\", \"true\"),\n                Map.entry(\"waf_ttl\", \"180\"),\n                Map.entry(\"cloudfirewall_enabled\", \"true\"),\n                Map.entry(\"cloudfirewall_ttl\", \"180\"),\n                Map.entry(\"ddos_coo_access_enabled\", \"false\"),\n                Map.entry(\"ddos_coo_access_ttl\", \"180\"),\n                Map.entry(\"ddos_bgp_access_enabled\", \"false\"),\n                Map.entry(\"ddos_bgp_access_ttl\", \"180\"),\n                Map.entry(\"ddos_dip_access_enabled\", \"false\"),\n                Map.entry(\"ddos_dip_access_ttl\", \"180\"),\n                Map.entry(\"sas_crack_enabled\", \"true\"),\n                Map.entry(\"sas_dns_enabled\", \"true\"),\n                Map.entry(\"sas_http_enabled\", \"true\"),\n                Map.entry(\"sas_local_dns_enabled\", \"true\"),\n                Map.entry(\"sas_login_enabled\", \"true\"),\n                Map.entry(\"sas_network_enabled\", \"true\"),\n                Map.entry(\"sas_process_enabled\", \"true\"),\n                Map.entry(\"sas_security_alert_enabled\", \"true\"),\n                Map.entry(\"sas_security_hc_enabled\", \"true\"),\n                Map.entry(\"sas_security_vul_enabled\", \"true\"),\n                Map.entry(\"sas_session_enabled\", \"true\"),\n                Map.entry(\"sas_snapshot_account_enabled\", \"true\"),\n                Map.entry(\"sas_snapshot_port_enabled\", \"true\"),\n                Map.entry(\"sas_snapshot_process_enabled\", \"true\"),\n                Map.entry(\"sas_ttl\", \"180\"),\n                Map.entry(\"apigateway_enabled\", \"true\"),\n                Map.entry(\"apigateway_ttl\", \"180\"),\n                Map.entry(\"nas_enabled\", \"true\"),\n                Map.entry(\"nas_ttl\", \"180\"),\n                Map.entry(\"appconnect_enabled\", \"false\"),\n                Map.entry(\"appconnect_ttl\", \"180\"),\n                Map.entry(\"cps_enabled\", \"true\"),\n                Map.entry(\"cps_ttl\", \"180\"),\n                Map.entry(\"k8s_audit_enabled\", \"true\"),\n                Map.entry(\"k8s_audit_collection_policy\", \"\"),\n                Map.entry(\"k8s_audit_ttl\", \"180\"),\n                Map.entry(\"k8s_event_enabled\", \"true\"),\n                Map.entry(\"k8s_event_collection_policy\", \"\"),\n                Map.entry(\"k8s_event_ttl\", \"180\"),\n                Map.entry(\"k8s_ingress_enabled\", \"true\"),\n                Map.entry(\"k8s_ingress_collection_policy\", \"\"),\n                Map.entry(\"k8s_ingress_ttl\", \"180\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:log:Audit\n    properties:\n      displayName: tf-audit-example\n      aliuid: ${default.id}\n      variableMap:\n        actiontrail_enabled: 'true'\n        actiontrail_ttl: '180'\n        oss_access_enabled: 'true'\n        oss_access_ttl: '7'\n        oss_sync_enabled: 'true'\n        oss_sync_ttl: '180'\n        oss_metering_enabled: 'true'\n        oss_metering_ttl: '180'\n        rds_enabled: 'true'\n        rds_audit_collection_policy: \"\"\n        rds_ttl: '180'\n        rds_slow_enabled: 'false'\n        rds_slow_collection_policy: \"\"\n        rds_slow_ttl: '180'\n        rds_perf_enabled: 'false'\n        rds_perf_collection_policy: \"\"\n        rds_perf_ttl: '180'\n        vpc_flow_enabled: 'false'\n        vpc_flow_ttl: '7'\n        vpc_flow_collection_policy: \"\"\n        vpc_sync_enabled: 'true'\n        vpc_sync_ttl: '180'\n        polardb_enabled: 'true'\n        polardb_audit_collection_policy: \"\"\n        polardb_ttl: '180'\n        polardb_slow_enabled: 'false'\n        polardb_slow_collection_policy: \"\"\n        polardb_slow_ttl: '180'\n        polardb_perf_enabled: 'false'\n        polardb_perf_collection_policy: \"\"\n        polardb_perf_ttl: '180'\n        drds_audit_enabled: 'true'\n        drds_audit_collection_policy: \"\"\n        drds_audit_ttl: '7'\n        drds_sync_enabled: 'true'\n        drds_sync_ttl: '180'\n        slb_access_enabled: 'true'\n        slb_access_collection_policy: \"\"\n        slb_access_ttl: '7'\n        slb_sync_enabled: 'true'\n        slb_sync_ttl: '180'\n        bastion_enabled: 'true'\n        bastion_ttl: '180'\n        waf_enabled: 'true'\n        waf_ttl: '180'\n        cloudfirewall_enabled: 'true'\n        cloudfirewall_ttl: '180'\n        ddos_coo_access_enabled: 'false'\n        ddos_coo_access_ttl: '180'\n        ddos_bgp_access_enabled: 'false'\n        ddos_bgp_access_ttl: '180'\n        ddos_dip_access_enabled: 'false'\n        ddos_dip_access_ttl: '180'\n        sas_crack_enabled: 'true'\n        sas_dns_enabled: 'true'\n        sas_http_enabled: 'true'\n        sas_local_dns_enabled: 'true'\n        sas_login_enabled: 'true'\n        sas_network_enabled: 'true'\n        sas_process_enabled: 'true'\n        sas_security_alert_enabled: 'true'\n        sas_security_hc_enabled: 'true'\n        sas_security_vul_enabled: 'true'\n        sas_session_enabled: 'true'\n        sas_snapshot_account_enabled: 'true'\n        sas_snapshot_port_enabled: 'true'\n        sas_snapshot_process_enabled: 'true'\n        sas_ttl: '180'\n        apigateway_enabled: 'true'\n        apigateway_ttl: '180'\n        nas_enabled: 'true'\n        nas_ttl: '180'\n        appconnect_enabled: 'false'\n        appconnect_ttl: '180'\n        cps_enabled: 'true'\n        cps_ttl: '180'\n        k8s_audit_enabled: 'true'\n        k8s_audit_collection_policy: \"\"\n        k8s_audit_ttl: '180'\n        k8s_event_enabled: 'true'\n        k8s_event_collection_policy: \"\"\n        k8s_event_ttl: '180'\n        k8s_ingress_enabled: 'true'\n        k8s_ingress_collection_policy: \"\"\n        k8s_ingress_ttl: '180'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\nMultiple accounts Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getAccount({});\nconst example = new alicloud.log.Audit(\"example\", {\n    displayName: \"tf-audit-example\",\n    aliuid: _default.then(_default =\u003e _default.id),\n    variableMap: {\n        actiontrail_enabled: \"true\",\n        actiontrail_ttl: \"180\",\n        oss_access_enabled: \"true\",\n        oss_access_ttl: \"180\",\n    },\n    multiAccounts: [\n        \"123456789123\",\n        \"12345678912300123\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_account()\nexample = alicloud.log.Audit(\"example\",\n    display_name=\"tf-audit-example\",\n    aliuid=default.id,\n    variable_map={\n        \"actiontrail_enabled\": \"true\",\n        \"actiontrail_ttl\": \"180\",\n        \"oss_access_enabled\": \"true\",\n        \"oss_access_ttl\": \"180\",\n    },\n    multi_accounts=[\n        \"123456789123\",\n        \"12345678912300123\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var example = new AliCloud.Log.Audit(\"example\", new()\n    {\n        DisplayName = \"tf-audit-example\",\n        Aliuid = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        VariableMap = \n        {\n            { \"actiontrail_enabled\", \"true\" },\n            { \"actiontrail_ttl\", \"180\" },\n            { \"oss_access_enabled\", \"true\" },\n            { \"oss_access_ttl\", \"180\" },\n        },\n        MultiAccounts = new[]\n        {\n            \"123456789123\",\n            \"12345678912300123\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewAudit(ctx, \"example\", \u0026log.AuditArgs{\n\t\t\tDisplayName: pulumi.String(\"tf-audit-example\"),\n\t\t\tAliuid:      pulumi.String(_default.Id),\n\t\t\tVariableMap: pulumi.StringMap{\n\t\t\t\t\"actiontrail_enabled\": pulumi.String(\"true\"),\n\t\t\t\t\"actiontrail_ttl\":     pulumi.String(\"180\"),\n\t\t\t\t\"oss_access_enabled\":  pulumi.String(\"true\"),\n\t\t\t\t\"oss_access_ttl\":      pulumi.String(\"180\"),\n\t\t\t},\n\t\t\tMultiAccounts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"123456789123\"),\n\t\t\t\tpulumi.String(\"12345678912300123\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.log.Audit;\nimport com.pulumi.alicloud.log.AuditArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var example = new Audit(\"example\", AuditArgs.builder()\n            .displayName(\"tf-audit-example\")\n            .aliuid(default_.id())\n            .variableMap(Map.ofEntries(\n                Map.entry(\"actiontrail_enabled\", \"true\"),\n                Map.entry(\"actiontrail_ttl\", \"180\"),\n                Map.entry(\"oss_access_enabled\", \"true\"),\n                Map.entry(\"oss_access_ttl\", \"180\")\n            ))\n            .multiAccounts(            \n                \"123456789123\",\n                \"12345678912300123\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:log:Audit\n    properties:\n      displayName: tf-audit-example\n      aliuid: ${default.id}\n      variableMap:\n        actiontrail_enabled: 'true'\n        actiontrail_ttl: '180'\n        oss_access_enabled: 'true'\n        oss_access_ttl: '180'\n      multiAccounts:\n        - '123456789123'\n        - '12345678912300123'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\nResource Directory Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getAccount({});\nconst example = new alicloud.log.Audit(\"example\", {\n    displayName: \"tf-audit-example\",\n    aliuid: _default.then(_default =\u003e _default.id),\n    variableMap: {\n        actiontrail_enabled: \"true\",\n        actiontrail_ttl: \"180\",\n        oss_access_enabled: \"true\",\n        oss_access_ttl: \"180\",\n    },\n    resourceDirectoryType: \"all\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_account()\nexample = alicloud.log.Audit(\"example\",\n    display_name=\"tf-audit-example\",\n    aliuid=default.id,\n    variable_map={\n        \"actiontrail_enabled\": \"true\",\n        \"actiontrail_ttl\": \"180\",\n        \"oss_access_enabled\": \"true\",\n        \"oss_access_ttl\": \"180\",\n    },\n    resource_directory_type=\"all\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var example = new AliCloud.Log.Audit(\"example\", new()\n    {\n        DisplayName = \"tf-audit-example\",\n        Aliuid = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        VariableMap = \n        {\n            { \"actiontrail_enabled\", \"true\" },\n            { \"actiontrail_ttl\", \"180\" },\n            { \"oss_access_enabled\", \"true\" },\n            { \"oss_access_ttl\", \"180\" },\n        },\n        ResourceDirectoryType = \"all\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewAudit(ctx, \"example\", \u0026log.AuditArgs{\n\t\t\tDisplayName: pulumi.String(\"tf-audit-example\"),\n\t\t\tAliuid:      pulumi.String(_default.Id),\n\t\t\tVariableMap: pulumi.StringMap{\n\t\t\t\t\"actiontrail_enabled\": pulumi.String(\"true\"),\n\t\t\t\t\"actiontrail_ttl\":     pulumi.String(\"180\"),\n\t\t\t\t\"oss_access_enabled\":  pulumi.String(\"true\"),\n\t\t\t\t\"oss_access_ttl\":      pulumi.String(\"180\"),\n\t\t\t},\n\t\t\tResourceDirectoryType: pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.log.Audit;\nimport com.pulumi.alicloud.log.AuditArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var example = new Audit(\"example\", AuditArgs.builder()\n            .displayName(\"tf-audit-example\")\n            .aliuid(default_.id())\n            .variableMap(Map.ofEntries(\n                Map.entry(\"actiontrail_enabled\", \"true\"),\n                Map.entry(\"actiontrail_ttl\", \"180\"),\n                Map.entry(\"oss_access_enabled\", \"true\"),\n                Map.entry(\"oss_access_ttl\", \"180\")\n            ))\n            .resourceDirectoryType(\"all\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:log:Audit\n    properties:\n      displayName: tf-audit-example\n      aliuid: ${default.id}\n      variableMap:\n        actiontrail_enabled: 'true'\n        actiontrail_ttl: '180'\n        oss_access_enabled: 'true'\n        oss_access_ttl: '180'\n      resourceDirectoryType: all\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getAccount({});\nconst example = new alicloud.log.Audit(\"example\", {\n    displayName: \"tf-audit-example\",\n    aliuid: _default.then(_default =\u003e _default.id),\n    variableMap: {\n        actiontrail_enabled: \"true\",\n        actiontrail_ttl: \"180\",\n        oss_access_enabled: \"true\",\n        oss_access_ttl: \"180\",\n    },\n    multiAccounts: [],\n    resourceDirectoryType: \"custom\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_account()\nexample = alicloud.log.Audit(\"example\",\n    display_name=\"tf-audit-example\",\n    aliuid=default.id,\n    variable_map={\n        \"actiontrail_enabled\": \"true\",\n        \"actiontrail_ttl\": \"180\",\n        \"oss_access_enabled\": \"true\",\n        \"oss_access_ttl\": \"180\",\n    },\n    multi_accounts=[],\n    resource_directory_type=\"custom\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var example = new AliCloud.Log.Audit(\"example\", new()\n    {\n        DisplayName = \"tf-audit-example\",\n        Aliuid = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        VariableMap = \n        {\n            { \"actiontrail_enabled\", \"true\" },\n            { \"actiontrail_ttl\", \"180\" },\n            { \"oss_access_enabled\", \"true\" },\n            { \"oss_access_ttl\", \"180\" },\n        },\n        MultiAccounts = new[] {},\n        ResourceDirectoryType = \"custom\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewAudit(ctx, \"example\", \u0026log.AuditArgs{\n\t\t\tDisplayName: pulumi.String(\"tf-audit-example\"),\n\t\t\tAliuid:      pulumi.String(_default.Id),\n\t\t\tVariableMap: pulumi.StringMap{\n\t\t\t\t\"actiontrail_enabled\": pulumi.String(\"true\"),\n\t\t\t\t\"actiontrail_ttl\":     pulumi.String(\"180\"),\n\t\t\t\t\"oss_access_enabled\":  pulumi.String(\"true\"),\n\t\t\t\t\"oss_access_ttl\":      pulumi.String(\"180\"),\n\t\t\t},\n\t\t\tMultiAccounts:         pulumi.StringArray{},\n\t\t\tResourceDirectoryType: pulumi.String(\"custom\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.log.Audit;\nimport com.pulumi.alicloud.log.AuditArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var example = new Audit(\"example\", AuditArgs.builder()\n            .displayName(\"tf-audit-example\")\n            .aliuid(default_.id())\n            .variableMap(Map.ofEntries(\n                Map.entry(\"actiontrail_enabled\", \"true\"),\n                Map.entry(\"actiontrail_ttl\", \"180\"),\n                Map.entry(\"oss_access_enabled\", \"true\"),\n                Map.entry(\"oss_access_ttl\", \"180\")\n            ))\n            .multiAccounts()\n            .resourceDirectoryType(\"custom\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:log:Audit\n    properties:\n      displayName: tf-audit-example\n      aliuid: ${default.id}\n      variableMap:\n        actiontrail_enabled: 'true'\n        actiontrail_ttl: '180'\n        oss_access_enabled: 'true'\n        oss_access_ttl: '180'\n      multiAccounts: # Put your member accounts here, separated by \",\"\n[]\n      resourceDirectoryType: custom\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\n\u003e **NOTE:** The UI settings of collection policy scripts for related products (such as rds, slb and etc.) will be cleared when imported using terraform. So you need to modify collection policy scripts directly if you want to edit collection policy in terraform.\n\nLog audit can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:log/audit:Audit example tf-audit-example\n```\n\n","properties":{"aliuid":{"type":"string","description":"Aliuid value of your account.\n"},"displayName":{"type":"string","description":"Name of SLS log audit.\n"},"multiAccounts":{"type":"array","items":{"type":"string"},"description":"Multi-account configuration, please fill in multiple aliuid.\n"},"resourceDirectoryType":{"type":"string","description":"Resource Directory type. Optional values are all or custom. If the value is custom, argument\u003cspan pulumi-lang-nodejs=\" multiAccount \" pulumi-lang-dotnet=\" MultiAccount \" pulumi-lang-go=\" multiAccount \" pulumi-lang-python=\" multi_account \" pulumi-lang-yaml=\" multiAccount \" pulumi-lang-java=\" multiAccount \"\u003e multi_account \u003c/span\u003eshould be provided.\n"},"variableMap":{"type":"object","additionalProperties":{"type":"string"},"description":"Log audit detailed configuration.\n"}},"required":["aliuid","displayName"],"inputProperties":{"aliuid":{"type":"string","description":"Aliuid value of your account.\n","willReplaceOnChanges":true},"displayName":{"type":"string","description":"Name of SLS log audit.\n","willReplaceOnChanges":true},"multiAccounts":{"type":"array","items":{"type":"string"},"description":"Multi-account configuration, please fill in multiple aliuid.\n"},"resourceDirectoryType":{"type":"string","description":"Resource Directory type. Optional values are all or custom. If the value is custom, argument\u003cspan pulumi-lang-nodejs=\" multiAccount \" pulumi-lang-dotnet=\" MultiAccount \" pulumi-lang-go=\" multiAccount \" pulumi-lang-python=\" multi_account \" pulumi-lang-yaml=\" multiAccount \" pulumi-lang-java=\" multiAccount \"\u003e multi_account \u003c/span\u003eshould be provided.\n"},"variableMap":{"type":"object","additionalProperties":{"type":"string"},"description":"Log audit detailed configuration.\n"}},"requiredInputs":["aliuid","displayName"],"stateInputs":{"description":"Input properties used for looking up and filtering Audit resources.\n","properties":{"aliuid":{"type":"string","description":"Aliuid value of your account.\n","willReplaceOnChanges":true},"displayName":{"type":"string","description":"Name of SLS log audit.\n","willReplaceOnChanges":true},"multiAccounts":{"type":"array","items":{"type":"string"},"description":"Multi-account configuration, please fill in multiple aliuid.\n"},"resourceDirectoryType":{"type":"string","description":"Resource Directory type. Optional values are all or custom. If the value is custom, argument\u003cspan pulumi-lang-nodejs=\" multiAccount \" pulumi-lang-dotnet=\" MultiAccount \" pulumi-lang-go=\" multiAccount \" pulumi-lang-python=\" multi_account \" pulumi-lang-yaml=\" multiAccount \" pulumi-lang-java=\" multiAccount \"\u003e multi_account \u003c/span\u003eshould be provided.\n"},"variableMap":{"type":"object","additionalProperties":{"type":"string"},"description":"Log audit detailed configuration.\n"}},"type":"object"}},"alicloud:log/dashboard:Dashboard":{"description":"The dashboard is a real-time data analysis platform provided by the log service. You can display frequently used query and analysis statements in the form of charts and save statistical charts to the dashboard.\n[Refer to details](https://www.alibabacloud.com/help/doc-detail/102530.htm).\n\n\u003e **NOTE:** Available since v1.86.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.log.Project(\"example\", {\n    projectName: `terraform-example-${_default.result}`,\n    description: \"terraform-example\",\n});\nconst exampleStore = new alicloud.log.Store(\"example\", {\n    projectName: example.projectName,\n    logstoreName: \"example-store\",\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst exampleDashboard = new alicloud.log.Dashboard(\"example\", {\n    projectName: example.projectName,\n    dashboardName: \"terraform-example\",\n    displayName: \"terraform-example\",\n    attribute: `  {\n    \\\\\"type\\\\\":\\\\\"grid\\\\\"\n  }\n`,\n    charList: `  [\n    {\n      \\\\\"action\\\\\": {},\n      \\\\\"title\\\\\":\\\\\"new_title\\\\\",\n      \\\\\"type\\\\\":\\\\\"map\\\\\",\n      \\\\\"search\\\\\":{\n        \\\\\"logstore\\\\\":\\\\\"example-store\\\\\",\n        \\\\\"topic\\\\\":\\\\\"new_topic\\\\\",\n        \\\\\"query\\\\\":\\\\\"* | SELECT COUNT(name) as ct_name, COUNT(product) as ct_product, name,product GROUP BY name,product\\\\\",\n        \\\\\"start\\\\\":\\\\\"-86400s\\\\\",\n        \\\\\"end\\\\\":\\\\\"now\\\\\"\n      },\n      \\\\\"display\\\\\":{\n        \\\\\"xAxis\\\\\":[\n          \\\\\"ct_name\\\\\"\n        ],\n        \\\\\"yAxis\\\\\":[\n          \\\\\"ct_product\\\\\"\n        ],\n        \\\\\"xPos\\\\\":0,\n        \\\\\"yPos\\\\\":0,\n        \\\\\"width\\\\\":10,\n        \\\\\"height\\\\\":12,\n        \\\\\"displayName\\\\\":\\\\\"terraform-example\\\\\"\n      }\n    }\n  ]\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.log.Project(\"example\",\n    project_name=f\"terraform-example-{default['result']}\",\n    description=\"terraform-example\")\nexample_store = alicloud.log.Store(\"example\",\n    project_name=example.project_name,\n    logstore_name=\"example-store\",\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\nexample_dashboard = alicloud.log.Dashboard(\"example\",\n    project_name=example.project_name,\n    dashboard_name=\"terraform-example\",\n    display_name=\"terraform-example\",\n    attribute=\"\"\"  {\n    \\\"type\\\":\\\"grid\\\"\n  }\n\"\"\",\n    char_list=\"\"\"  [\n    {\n      \\\"action\\\": {},\n      \\\"title\\\":\\\"new_title\\\",\n      \\\"type\\\":\\\"map\\\",\n      \\\"search\\\":{\n        \\\"logstore\\\":\\\"example-store\\\",\n        \\\"topic\\\":\\\"new_topic\\\",\n        \\\"query\\\":\\\"* | SELECT COUNT(name) as ct_name, COUNT(product) as ct_product, name,product GROUP BY name,product\\\",\n        \\\"start\\\":\\\"-86400s\\\",\n        \\\"end\\\":\\\"now\\\"\n      },\n      \\\"display\\\":{\n        \\\"xAxis\\\":[\n          \\\"ct_name\\\"\n        ],\n        \\\"yAxis\\\":[\n          \\\"ct_product\\\"\n        ],\n        \\\"xPos\\\":0,\n        \\\"yPos\\\":0,\n        \\\"width\\\":10,\n        \\\"height\\\":12,\n        \\\"displayName\\\":\\\"terraform-example\\\"\n      }\n    }\n  ]\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Log.Project(\"example\", new()\n    {\n        ProjectName = $\"terraform-example-{@default.Result}\",\n        Description = \"terraform-example\",\n    });\n\n    var exampleStore = new AliCloud.Log.Store(\"example\", new()\n    {\n        ProjectName = example.ProjectName,\n        LogstoreName = \"example-store\",\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var exampleDashboard = new AliCloud.Log.Dashboard(\"example\", new()\n    {\n        ProjectName = example.ProjectName,\n        DashboardName = \"terraform-example\",\n        DisplayName = \"terraform-example\",\n        Attribute = @\"  {\n    \\\"\"type\\\"\":\\\"\"grid\\\"\"\n  }\n\",\n        CharList = @\"  [\n    {\n      \\\"\"action\\\"\": {},\n      \\\"\"title\\\"\":\\\"\"new_title\\\"\",\n      \\\"\"type\\\"\":\\\"\"map\\\"\",\n      \\\"\"search\\\"\":{\n        \\\"\"logstore\\\"\":\\\"\"example-store\\\"\",\n        \\\"\"topic\\\"\":\\\"\"new_topic\\\"\",\n        \\\"\"query\\\"\":\\\"\"* | SELECT COUNT(name) as ct_name, COUNT(product) as ct_product, name,product GROUP BY name,product\\\"\",\n        \\\"\"start\\\"\":\\\"\"-86400s\\\"\",\n        \\\"\"end\\\"\":\\\"\"now\\\"\"\n      },\n      \\\"\"display\\\"\":{\n        \\\"\"xAxis\\\"\":[\n          \\\"\"ct_name\\\"\"\n        ],\n        \\\"\"yAxis\\\"\":[\n          \\\"\"ct_product\\\"\"\n        ],\n        \\\"\"xPos\\\"\":0,\n        \\\"\"yPos\\\"\":0,\n        \\\"\"width\\\"\":10,\n        \\\"\"height\\\"\":12,\n        \\\"\"displayName\\\"\":\\\"\"terraform-example\\\"\"\n      }\n    }\n  ]\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewStore(ctx, \"example\", \u0026log.StoreArgs{\n\t\t\tProjectName:        example.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(\"example-store\"),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewDashboard(ctx, \"example\", \u0026log.DashboardArgs{\n\t\t\tProjectName:   example.ProjectName,\n\t\t\tDashboardName: pulumi.String(\"terraform-example\"),\n\t\t\tDisplayName:   pulumi.String(\"terraform-example\"),\n\t\t\tAttribute:     pulumi.String(\"  {\\n    \\\\\\\"type\\\\\\\":\\\\\\\"grid\\\\\\\"\\n  }\\n\"),\n\t\t\tCharList: pulumi.String(`  [\n    {\n      \\\"action\\\": {},\n      \\\"title\\\":\\\"new_title\\\",\n      \\\"type\\\":\\\"map\\\",\n      \\\"search\\\":{\n        \\\"logstore\\\":\\\"example-store\\\",\n        \\\"topic\\\":\\\"new_topic\\\",\n        \\\"query\\\":\\\"* | SELECT COUNT(name) as ct_name, COUNT(product) as ct_product, name,product GROUP BY name,product\\\",\n        \\\"start\\\":\\\"-86400s\\\",\n        \\\"end\\\":\\\"now\\\"\n      },\n      \\\"display\\\":{\n        \\\"xAxis\\\":[\n          \\\"ct_name\\\"\n        ],\n        \\\"yAxis\\\":[\n          \\\"ct_product\\\"\n        ],\n        \\\"xPos\\\":0,\n        \\\"yPos\\\":0,\n        \\\"width\\\":10,\n        \\\"height\\\":12,\n        \\\"displayName\\\":\\\"terraform-example\\\"\n      }\n    }\n  ]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.log.Dashboard;\nimport com.pulumi.alicloud.log.DashboardArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .projectName(String.format(\"terraform-example-%s\", default_.result()))\n            .description(\"terraform-example\")\n            .build());\n\n        var exampleStore = new Store(\"exampleStore\", StoreArgs.builder()\n            .projectName(example.projectName())\n            .logstoreName(\"example-store\")\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var exampleDashboard = new Dashboard(\"exampleDashboard\", DashboardArgs.builder()\n            .projectName(example.projectName())\n            .dashboardName(\"terraform-example\")\n            .displayName(\"terraform-example\")\n            .attribute(\"\"\"\n  {\n    \\\"type\\\":\\\"grid\\\"\n  }\n            \"\"\")\n            .charList(\"\"\"\n  [\n    {\n      \\\"action\\\": {},\n      \\\"title\\\":\\\"new_title\\\",\n      \\\"type\\\":\\\"map\\\",\n      \\\"search\\\":{\n        \\\"logstore\\\":\\\"example-store\\\",\n        \\\"topic\\\":\\\"new_topic\\\",\n        \\\"query\\\":\\\"* | SELECT COUNT(name) as ct_name, COUNT(product) as ct_product, name,product GROUP BY name,product\\\",\n        \\\"start\\\":\\\"-86400s\\\",\n        \\\"end\\\":\\\"now\\\"\n      },\n      \\\"display\\\":{\n        \\\"xAxis\\\":[\n          \\\"ct_name\\\"\n        ],\n        \\\"yAxis\\\":[\n          \\\"ct_product\\\"\n        ],\n        \\\"xPos\\\":0,\n        \\\"yPos\\\":0,\n        \\\"width\\\":10,\n        \\\"height\\\":12,\n        \\\"displayName\\\":\\\"terraform-example\\\"\n      }\n    }\n  ]\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:log:Project\n    properties:\n      projectName: terraform-example-${default.result}\n      description: terraform-example\n  exampleStore:\n    type: alicloud:log:Store\n    name: example\n    properties:\n      projectName: ${example.projectName}\n      logstoreName: example-store\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  exampleDashboard:\n    type: alicloud:log:Dashboard\n    name: example\n    properties:\n      projectName: ${example.projectName}\n      dashboardName: terraform-example\n      displayName: terraform-example\n      attribute: |2\n          {\n            \\\"type\\\":\\\"grid\\\"\n          }\n      charList: |2\n          [\n            {\n              \\\"action\\\": {},\n              \\\"title\\\":\\\"new_title\\\",\n              \\\"type\\\":\\\"map\\\",\n              \\\"search\\\":{\n                \\\"logstore\\\":\\\"example-store\\\",\n                \\\"topic\\\":\\\"new_topic\\\",\n                \\\"query\\\":\\\"* | SELECT COUNT(name) as ct_name, COUNT(product) as ct_product, name,product GROUP BY name,product\\\",\n                \\\"start\\\":\\\"-86400s\\\",\n                \\\"end\\\":\\\"now\\\"\n              },\n              \\\"display\\\":{\n                \\\"xAxis\\\":[\n                  \\\"ct_name\\\"\n                ],\n                \\\"yAxis\\\":[\n                  \\\"ct_product\\\"\n                ],\n                \\\"xPos\\\":0,\n                \\\"yPos\\\":0,\n                \\\"width\\\":10,\n                \\\"height\\\":12,\n                \\\"displayName\\\":\\\"terraform-example\\\"\n              }\n            }\n          ]\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog Dashboard can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:log/dashboard:Dashboard example \u003cproject_name\u003e:\u003cdashboard_name\u003e\n```\n\n","properties":{"attribute":{"type":"string","description":"Dashboard attribute.\n"},"charList":{"type":"string","description":"Configuration of charts in the dashboard.\n**Note:** From version 1.164.0, \u003cspan pulumi-lang-nodejs=\"`charList`\" pulumi-lang-dotnet=\"`CharList`\" pulumi-lang-go=\"`charList`\" pulumi-lang-python=\"`char_list`\" pulumi-lang-yaml=\"`charList`\" pulumi-lang-java=\"`charList`\"\u003e`char_list`\u003c/span\u003e can set parameter \"action\".\n"},"dashboardName":{"type":"string","description":"The name of the Log Dashboard.\n"},"displayName":{"type":"string","description":"Dashboard alias.\n"},"projectName":{"type":"string","description":"The name of the log project. It is the only in one Alicloud account.\n"}},"required":["attribute","charList","dashboardName","projectName"],"inputProperties":{"attribute":{"type":"string","description":"Dashboard attribute.\n"},"charList":{"type":"string","description":"Configuration of charts in the dashboard.\n**Note:** From version 1.164.0, \u003cspan pulumi-lang-nodejs=\"`charList`\" pulumi-lang-dotnet=\"`CharList`\" pulumi-lang-go=\"`charList`\" pulumi-lang-python=\"`char_list`\" pulumi-lang-yaml=\"`charList`\" pulumi-lang-java=\"`charList`\"\u003e`char_list`\u003c/span\u003e can set parameter \"action\".\n"},"dashboardName":{"type":"string","description":"The name of the Log Dashboard.\n","willReplaceOnChanges":true},"displayName":{"type":"string","description":"Dashboard alias.\n"},"projectName":{"type":"string","description":"The name of the log project. It is the only in one Alicloud account.\n","willReplaceOnChanges":true}},"requiredInputs":["charList","dashboardName","projectName"],"stateInputs":{"description":"Input properties used for looking up and filtering Dashboard resources.\n","properties":{"attribute":{"type":"string","description":"Dashboard attribute.\n"},"charList":{"type":"string","description":"Configuration of charts in the dashboard.\n**Note:** From version 1.164.0, \u003cspan pulumi-lang-nodejs=\"`charList`\" pulumi-lang-dotnet=\"`CharList`\" pulumi-lang-go=\"`charList`\" pulumi-lang-python=\"`char_list`\" pulumi-lang-yaml=\"`charList`\" pulumi-lang-java=\"`charList`\"\u003e`char_list`\u003c/span\u003e can set parameter \"action\".\n"},"dashboardName":{"type":"string","description":"The name of the Log Dashboard.\n","willReplaceOnChanges":true},"displayName":{"type":"string","description":"Dashboard alias.\n"},"projectName":{"type":"string","description":"The name of the log project. It is the only in one Alicloud account.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:log/etl:Etl":{"description":"The data transformation of the log service is a hosted, highly available, and scalable data processing service, \nwhich is widely applicable to scenarios such as data regularization, enrichment, distribution, aggregation, and index reconstruction.\n[Refer to details](https://www.alibabacloud.com/help/zh/doc-detail/125384.htm).\n\n\u003e **NOTE:** This resource is no longer maintained. It is recommended to use the new resource alicloud_sls_etl.\n[Refer to details](https://www.alibabacloud.com/help/zh/doc-detail/125384.htm).\n\n\u003e **NOTE:** Available since v1.120.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.log.Project(\"example\", {\n    projectName: `terraform-example-${_default.result}`,\n    description: \"terraform-example\",\n});\nconst exampleStore = new alicloud.log.Store(\"example\", {\n    projectName: example.projectName,\n    logstoreName: \"example-store\",\n    retentionPeriod: 3650,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst example2 = new alicloud.log.Store(\"example2\", {\n    projectName: example.projectName,\n    logstoreName: \"example-store2\",\n    retentionPeriod: 3650,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst example3 = new alicloud.log.Store(\"example3\", {\n    projectName: example.projectName,\n    logstoreName: \"example-store3\",\n    retentionPeriod: 3650,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst exampleEtl = new alicloud.log.Etl(\"example\", {\n    etlName: \"terraform-example\",\n    project: example.projectName,\n    displayName: \"terraform-example\",\n    description: \"terraform-example\",\n    accessKeyId: \"access_key_id\",\n    accessKeySecret: \"access_key_secret\",\n    script: \"e_set('new','key')\",\n    logstore: exampleStore.logstoreName,\n    etlSinks: [\n        {\n            name: \"target_name\",\n            accessKeyId: \"example2_access_key_id\",\n            accessKeySecret: \"example2_access_key_secret\",\n            endpoint: \"cn-hangzhou.log.aliyuncs.com\",\n            project: example.projectName,\n            logstore: example2.logstoreName,\n        },\n        {\n            name: \"target_name2\",\n            accessKeyId: \"example3_access_key_id\",\n            accessKeySecret: \"example3_access_key_secret\",\n            endpoint: \"cn-hangzhou.log.aliyuncs.com\",\n            project: example.projectName,\n            logstore: example3.logstoreName,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.log.Project(\"example\",\n    project_name=f\"terraform-example-{default['result']}\",\n    description=\"terraform-example\")\nexample_store = alicloud.log.Store(\"example\",\n    project_name=example.project_name,\n    logstore_name=\"example-store\",\n    retention_period=3650,\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\nexample2 = alicloud.log.Store(\"example2\",\n    project_name=example.project_name,\n    logstore_name=\"example-store2\",\n    retention_period=3650,\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\nexample3 = alicloud.log.Store(\"example3\",\n    project_name=example.project_name,\n    logstore_name=\"example-store3\",\n    retention_period=3650,\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\nexample_etl = alicloud.log.Etl(\"example\",\n    etl_name=\"terraform-example\",\n    project=example.project_name,\n    display_name=\"terraform-example\",\n    description=\"terraform-example\",\n    access_key_id=\"access_key_id\",\n    access_key_secret=\"access_key_secret\",\n    script=\"e_set('new','key')\",\n    logstore=example_store.logstore_name,\n    etl_sinks=[\n        {\n            \"name\": \"target_name\",\n            \"access_key_id\": \"example2_access_key_id\",\n            \"access_key_secret\": \"example2_access_key_secret\",\n            \"endpoint\": \"cn-hangzhou.log.aliyuncs.com\",\n            \"project\": example.project_name,\n            \"logstore\": example2.logstore_name,\n        },\n        {\n            \"name\": \"target_name2\",\n            \"access_key_id\": \"example3_access_key_id\",\n            \"access_key_secret\": \"example3_access_key_secret\",\n            \"endpoint\": \"cn-hangzhou.log.aliyuncs.com\",\n            \"project\": example.project_name,\n            \"logstore\": example3.logstore_name,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Log.Project(\"example\", new()\n    {\n        ProjectName = $\"terraform-example-{@default.Result}\",\n        Description = \"terraform-example\",\n    });\n\n    var exampleStore = new AliCloud.Log.Store(\"example\", new()\n    {\n        ProjectName = example.ProjectName,\n        LogstoreName = \"example-store\",\n        RetentionPeriod = 3650,\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var example2 = new AliCloud.Log.Store(\"example2\", new()\n    {\n        ProjectName = example.ProjectName,\n        LogstoreName = \"example-store2\",\n        RetentionPeriod = 3650,\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var example3 = new AliCloud.Log.Store(\"example3\", new()\n    {\n        ProjectName = example.ProjectName,\n        LogstoreName = \"example-store3\",\n        RetentionPeriod = 3650,\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var exampleEtl = new AliCloud.Log.Etl(\"example\", new()\n    {\n        EtlName = \"terraform-example\",\n        Project = example.ProjectName,\n        DisplayName = \"terraform-example\",\n        Description = \"terraform-example\",\n        AccessKeyId = \"access_key_id\",\n        AccessKeySecret = \"access_key_secret\",\n        Script = \"e_set('new','key')\",\n        Logstore = exampleStore.LogstoreName,\n        EtlSinks = new[]\n        {\n            new AliCloud.Log.Inputs.EtlEtlSinkArgs\n            {\n                Name = \"target_name\",\n                AccessKeyId = \"example2_access_key_id\",\n                AccessKeySecret = \"example2_access_key_secret\",\n                Endpoint = \"cn-hangzhou.log.aliyuncs.com\",\n                Project = example.ProjectName,\n                Logstore = example2.LogstoreName,\n            },\n            new AliCloud.Log.Inputs.EtlEtlSinkArgs\n            {\n                Name = \"target_name2\",\n                AccessKeyId = \"example3_access_key_id\",\n                AccessKeySecret = \"example3_access_key_secret\",\n                Endpoint = \"cn-hangzhou.log.aliyuncs.com\",\n                Project = example.ProjectName,\n                Logstore = example3.LogstoreName,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := log.NewStore(ctx, \"example\", \u0026log.StoreArgs{\n\t\t\tProjectName:        example.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(\"example-store\"),\n\t\t\tRetentionPeriod:    pulumi.Int(3650),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample2, err := log.NewStore(ctx, \"example2\", \u0026log.StoreArgs{\n\t\t\tProjectName:        example.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(\"example-store2\"),\n\t\t\tRetentionPeriod:    pulumi.Int(3650),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample3, err := log.NewStore(ctx, \"example3\", \u0026log.StoreArgs{\n\t\t\tProjectName:        example.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(\"example-store3\"),\n\t\t\tRetentionPeriod:    pulumi.Int(3650),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewEtl(ctx, \"example\", \u0026log.EtlArgs{\n\t\t\tEtlName:         pulumi.String(\"terraform-example\"),\n\t\t\tProject:         example.ProjectName,\n\t\t\tDisplayName:     pulumi.String(\"terraform-example\"),\n\t\t\tDescription:     pulumi.String(\"terraform-example\"),\n\t\t\tAccessKeyId:     pulumi.String(\"access_key_id\"),\n\t\t\tAccessKeySecret: pulumi.String(\"access_key_secret\"),\n\t\t\tScript:          pulumi.String(\"e_set('new','key')\"),\n\t\t\tLogstore:        exampleStore.LogstoreName,\n\t\t\tEtlSinks: log.EtlEtlSinkArray{\n\t\t\t\t\u0026log.EtlEtlSinkArgs{\n\t\t\t\t\tName:            pulumi.String(\"target_name\"),\n\t\t\t\t\tAccessKeyId:     pulumi.String(\"example2_access_key_id\"),\n\t\t\t\t\tAccessKeySecret: pulumi.String(\"example2_access_key_secret\"),\n\t\t\t\t\tEndpoint:        pulumi.String(\"cn-hangzhou.log.aliyuncs.com\"),\n\t\t\t\t\tProject:         example.ProjectName,\n\t\t\t\t\tLogstore:        example2.LogstoreName,\n\t\t\t\t},\n\t\t\t\t\u0026log.EtlEtlSinkArgs{\n\t\t\t\t\tName:            pulumi.String(\"target_name2\"),\n\t\t\t\t\tAccessKeyId:     pulumi.String(\"example3_access_key_id\"),\n\t\t\t\t\tAccessKeySecret: pulumi.String(\"example3_access_key_secret\"),\n\t\t\t\t\tEndpoint:        pulumi.String(\"cn-hangzhou.log.aliyuncs.com\"),\n\t\t\t\t\tProject:         example.ProjectName,\n\t\t\t\t\tLogstore:        example3.LogstoreName,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.log.Etl;\nimport com.pulumi.alicloud.log.EtlArgs;\nimport com.pulumi.alicloud.log.inputs.EtlEtlSinkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .projectName(String.format(\"terraform-example-%s\", default_.result()))\n            .description(\"terraform-example\")\n            .build());\n\n        var exampleStore = new Store(\"exampleStore\", StoreArgs.builder()\n            .projectName(example.projectName())\n            .logstoreName(\"example-store\")\n            .retentionPeriod(3650)\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var example2 = new Store(\"example2\", StoreArgs.builder()\n            .projectName(example.projectName())\n            .logstoreName(\"example-store2\")\n            .retentionPeriod(3650)\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var example3 = new Store(\"example3\", StoreArgs.builder()\n            .projectName(example.projectName())\n            .logstoreName(\"example-store3\")\n            .retentionPeriod(3650)\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var exampleEtl = new Etl(\"exampleEtl\", EtlArgs.builder()\n            .etlName(\"terraform-example\")\n            .project(example.projectName())\n            .displayName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .accessKeyId(\"access_key_id\")\n            .accessKeySecret(\"access_key_secret\")\n            .script(\"e_set('new','key')\")\n            .logstore(exampleStore.logstoreName())\n            .etlSinks(            \n                EtlEtlSinkArgs.builder()\n                    .name(\"target_name\")\n                    .accessKeyId(\"example2_access_key_id\")\n                    .accessKeySecret(\"example2_access_key_secret\")\n                    .endpoint(\"cn-hangzhou.log.aliyuncs.com\")\n                    .project(example.projectName())\n                    .logstore(example2.logstoreName())\n                    .build(),\n                EtlEtlSinkArgs.builder()\n                    .name(\"target_name2\")\n                    .accessKeyId(\"example3_access_key_id\")\n                    .accessKeySecret(\"example3_access_key_secret\")\n                    .endpoint(\"cn-hangzhou.log.aliyuncs.com\")\n                    .project(example.projectName())\n                    .logstore(example3.logstoreName())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:log:Project\n    properties:\n      projectName: terraform-example-${default.result}\n      description: terraform-example\n  exampleStore:\n    type: alicloud:log:Store\n    name: example\n    properties:\n      projectName: ${example.projectName}\n      logstoreName: example-store\n      retentionPeriod: 3650\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  example2:\n    type: alicloud:log:Store\n    properties:\n      projectName: ${example.projectName}\n      logstoreName: example-store2\n      retentionPeriod: 3650\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  example3:\n    type: alicloud:log:Store\n    properties:\n      projectName: ${example.projectName}\n      logstoreName: example-store3\n      retentionPeriod: 3650\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  exampleEtl:\n    type: alicloud:log:Etl\n    name: example\n    properties:\n      etlName: terraform-example\n      project: ${example.projectName}\n      displayName: terraform-example\n      description: terraform-example\n      accessKeyId: access_key_id\n      accessKeySecret: access_key_secret\n      script: e_set('new','key')\n      logstore: ${exampleStore.logstoreName}\n      etlSinks:\n        - name: target_name\n          accessKeyId: example2_access_key_id\n          accessKeySecret: example2_access_key_secret\n          endpoint: cn-hangzhou.log.aliyuncs.com\n          project: ${example.projectName}\n          logstore: ${example2.logstoreName}\n        - name: target_name2\n          accessKeyId: example3_access_key_id\n          accessKeySecret: example3_access_key_secret\n          endpoint: cn-hangzhou.log.aliyuncs.com\n          project: ${example.projectName}\n          logstore: ${example3.logstoreName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog etl can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:log/etl:Etl example tf-log-project:tf-log-etl-name\n```\n\n","properties":{"accessKeyId":{"type":"string","description":"Source logstore access key id.\n","secret":true},"accessKeySecret":{"type":"string","description":"Source logstore access key secret.\n","secret":true},"createTime":{"type":"integer","description":"The etl job create time.\n"},"description":{"type":"string","description":"Description of the log etl job.\n"},"displayName":{"type":"string","description":"Log service etl job alias.\n"},"etlName":{"type":"string","description":"The name of the log etl job.\n"},"etlSinks":{"type":"array","items":{"$ref":"#/types/alicloud:log/EtlEtlSink:EtlEtlSink"},"description":"Target logstore configuration for delivery after data processing. See \u003cspan pulumi-lang-nodejs=\"`etlSinks`\" pulumi-lang-dotnet=\"`EtlSinks`\" pulumi-lang-go=\"`etlSinks`\" pulumi-lang-python=\"`etl_sinks`\" pulumi-lang-yaml=\"`etlSinks`\" pulumi-lang-java=\"`etlSinks`\"\u003e`etl_sinks`\u003c/span\u003e below.\n"},"etlType":{"type":"string","description":"Log service etl type, the default value is `ETL`.\n"},"fromTime":{"type":"integer","description":"The start time of the processing job, if not set the value is 0, indicates to start processing from the oldest data.\n"},"kmsEncryptedAccessKeyId":{"type":"string","description":"An KMS encrypts access key id used to a log etl job. If the \u003cspan pulumi-lang-nodejs=\"`accessKeyId`\" pulumi-lang-dotnet=\"`AccessKeyId`\" pulumi-lang-go=\"`accessKeyId`\" pulumi-lang-python=\"`access_key_id`\" pulumi-lang-yaml=\"`accessKeyId`\" pulumi-lang-java=\"`accessKeyId`\"\u003e`access_key_id`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptedAccessKeySecret":{"type":"string","description":"An KMS encrypts access key secret used to a log etl job. If the \u003cspan pulumi-lang-nodejs=\"`accessKeySecret`\" pulumi-lang-dotnet=\"`AccessKeySecret`\" pulumi-lang-go=\"`accessKeySecret`\" pulumi-lang-python=\"`access_key_secret`\" pulumi-lang-yaml=\"`accessKeySecret`\" pulumi-lang-java=\"`accessKeySecret`\"\u003e`access_key_secret`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionAccessKeyIdContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-dotnet=\"`KmsEncryptedAccessKeyId`\" pulumi-lang-go=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-python=\"`kms_encrypted_access_key_id`\" pulumi-lang-yaml=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-java=\"`kmsEncryptedAccessKeyId`\"\u003e`kms_encrypted_access_key_id`\u003c/span\u003e before creating or updating an instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-dotnet=\"`KmsEncryptedAccessKeyId`\" pulumi-lang-go=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-python=\"`kms_encrypted_access_key_id`\" pulumi-lang-yaml=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-java=\"`kmsEncryptedAccessKeyId`\"\u003e`kms_encrypted_access_key_id`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set. When it is changed, the instance will reboot to make the change take effect.\n"},"kmsEncryptionAccessKeySecretContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-dotnet=\"`KmsEncryptedAccessKeySecret`\" pulumi-lang-go=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-python=\"`kms_encrypted_access_key_secret`\" pulumi-lang-yaml=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-java=\"`kmsEncryptedAccessKeySecret`\"\u003e`kms_encrypted_access_key_secret`\u003c/span\u003e before creating or updating an instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-dotnet=\"`KmsEncryptedAccessKeySecret`\" pulumi-lang-go=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-python=\"`kms_encrypted_access_key_secret`\" pulumi-lang-yaml=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-java=\"`kmsEncryptedAccessKeySecret`\"\u003e`kms_encrypted_access_key_secret`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set. When it is changed, the instance will reboot to make the change take effect.\n"},"lang":{"type":"string","description":"The language of the etl job.\n"},"lastModifiedTime":{"type":"integer","description":"ETL job last modified time.\n"},"logstore":{"type":"string","description":"The source logstore of the processing job.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Advanced parameter configuration of processing operations.\n"},"project":{"type":"string","description":"The name of the project where the etl job is located.\n"},"roleArn":{"type":"string","description":"Sts role info under source logstore. \u003cspan pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\"\u003e`role_arn`\u003c/span\u003e and `(access_key_id, access_key_secret)` fill in at most one. If you do not fill in both, then you must fill in `(kms_encrypted_access_key_id, kms_encrypted_access_key_secret, kms_encryption_access_key_id_context, kms_encryption_access_key_secret_context)` to use KMS to get the key pair.\n"},"schedule":{"type":"string","description":"Job scheduling type, the default value is Resident.\n"},"script":{"type":"string","description":"Processing operation grammar.\n"},"status":{"type":"string","description":"Log project tags. the default value is RUNNING, Only 4 values are supported: `STARTING`，`RUNNING`，`STOPPING`，`STOPPED`.\n"},"toTime":{"type":"integer","description":"Deadline of processing job, if not set the value is 0, indicates that new data will be processed continuously.\n"},"version":{"type":"integer","description":"Log etl job version. the default value is \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"}},"required":["createTime","displayName","etlName","etlSinks","lastModifiedTime","logstore","project","script","status"],"inputProperties":{"accessKeyId":{"type":"string","description":"Source logstore access key id.\n","secret":true},"accessKeySecret":{"type":"string","description":"Source logstore access key secret.\n","secret":true},"createTime":{"type":"integer","description":"The etl job create time.\n"},"description":{"type":"string","description":"Description of the log etl job.\n"},"displayName":{"type":"string","description":"Log service etl job alias.\n"},"etlName":{"type":"string","description":"The name of the log etl job.\n","willReplaceOnChanges":true},"etlSinks":{"type":"array","items":{"$ref":"#/types/alicloud:log/EtlEtlSink:EtlEtlSink"},"description":"Target logstore configuration for delivery after data processing. See \u003cspan pulumi-lang-nodejs=\"`etlSinks`\" pulumi-lang-dotnet=\"`EtlSinks`\" pulumi-lang-go=\"`etlSinks`\" pulumi-lang-python=\"`etl_sinks`\" pulumi-lang-yaml=\"`etlSinks`\" pulumi-lang-java=\"`etlSinks`\"\u003e`etl_sinks`\u003c/span\u003e below.\n"},"etlType":{"type":"string","description":"Log service etl type, the default value is `ETL`.\n"},"fromTime":{"type":"integer","description":"The start time of the processing job, if not set the value is 0, indicates to start processing from the oldest data.\n"},"kmsEncryptedAccessKeyId":{"type":"string","description":"An KMS encrypts access key id used to a log etl job. If the \u003cspan pulumi-lang-nodejs=\"`accessKeyId`\" pulumi-lang-dotnet=\"`AccessKeyId`\" pulumi-lang-go=\"`accessKeyId`\" pulumi-lang-python=\"`access_key_id`\" pulumi-lang-yaml=\"`accessKeyId`\" pulumi-lang-java=\"`accessKeyId`\"\u003e`access_key_id`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptedAccessKeySecret":{"type":"string","description":"An KMS encrypts access key secret used to a log etl job. If the \u003cspan pulumi-lang-nodejs=\"`accessKeySecret`\" pulumi-lang-dotnet=\"`AccessKeySecret`\" pulumi-lang-go=\"`accessKeySecret`\" pulumi-lang-python=\"`access_key_secret`\" pulumi-lang-yaml=\"`accessKeySecret`\" pulumi-lang-java=\"`accessKeySecret`\"\u003e`access_key_secret`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionAccessKeyIdContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-dotnet=\"`KmsEncryptedAccessKeyId`\" pulumi-lang-go=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-python=\"`kms_encrypted_access_key_id`\" pulumi-lang-yaml=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-java=\"`kmsEncryptedAccessKeyId`\"\u003e`kms_encrypted_access_key_id`\u003c/span\u003e before creating or updating an instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-dotnet=\"`KmsEncryptedAccessKeyId`\" pulumi-lang-go=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-python=\"`kms_encrypted_access_key_id`\" pulumi-lang-yaml=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-java=\"`kmsEncryptedAccessKeyId`\"\u003e`kms_encrypted_access_key_id`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set. When it is changed, the instance will reboot to make the change take effect.\n"},"kmsEncryptionAccessKeySecretContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-dotnet=\"`KmsEncryptedAccessKeySecret`\" pulumi-lang-go=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-python=\"`kms_encrypted_access_key_secret`\" pulumi-lang-yaml=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-java=\"`kmsEncryptedAccessKeySecret`\"\u003e`kms_encrypted_access_key_secret`\u003c/span\u003e before creating or updating an instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-dotnet=\"`KmsEncryptedAccessKeySecret`\" pulumi-lang-go=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-python=\"`kms_encrypted_access_key_secret`\" pulumi-lang-yaml=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-java=\"`kmsEncryptedAccessKeySecret`\"\u003e`kms_encrypted_access_key_secret`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set. When it is changed, the instance will reboot to make the change take effect.\n"},"lang":{"type":"string","description":"The language of the etl job.\n"},"lastModifiedTime":{"type":"integer","description":"ETL job last modified time.\n"},"logstore":{"type":"string","description":"The source logstore of the processing job.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Advanced parameter configuration of processing operations.\n"},"project":{"type":"string","description":"The name of the project where the etl job is located.\n","willReplaceOnChanges":true},"roleArn":{"type":"string","description":"Sts role info under source logstore. \u003cspan pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\"\u003e`role_arn`\u003c/span\u003e and `(access_key_id, access_key_secret)` fill in at most one. If you do not fill in both, then you must fill in `(kms_encrypted_access_key_id, kms_encrypted_access_key_secret, kms_encryption_access_key_id_context, kms_encryption_access_key_secret_context)` to use KMS to get the key pair.\n"},"schedule":{"type":"string","description":"Job scheduling type, the default value is Resident.\n"},"script":{"type":"string","description":"Processing operation grammar.\n"},"status":{"type":"string","description":"Log project tags. the default value is RUNNING, Only 4 values are supported: `STARTING`，`RUNNING`，`STOPPING`，`STOPPED`.\n"},"toTime":{"type":"integer","description":"Deadline of processing job, if not set the value is 0, indicates that new data will be processed continuously.\n"},"version":{"type":"integer","description":"Log etl job version. the default value is \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"}},"requiredInputs":["displayName","etlName","etlSinks","logstore","project","script"],"stateInputs":{"description":"Input properties used for looking up and filtering Etl resources.\n","properties":{"accessKeyId":{"type":"string","description":"Source logstore access key id.\n","secret":true},"accessKeySecret":{"type":"string","description":"Source logstore access key secret.\n","secret":true},"createTime":{"type":"integer","description":"The etl job create time.\n"},"description":{"type":"string","description":"Description of the log etl job.\n"},"displayName":{"type":"string","description":"Log service etl job alias.\n"},"etlName":{"type":"string","description":"The name of the log etl job.\n","willReplaceOnChanges":true},"etlSinks":{"type":"array","items":{"$ref":"#/types/alicloud:log/EtlEtlSink:EtlEtlSink"},"description":"Target logstore configuration for delivery after data processing. See \u003cspan pulumi-lang-nodejs=\"`etlSinks`\" pulumi-lang-dotnet=\"`EtlSinks`\" pulumi-lang-go=\"`etlSinks`\" pulumi-lang-python=\"`etl_sinks`\" pulumi-lang-yaml=\"`etlSinks`\" pulumi-lang-java=\"`etlSinks`\"\u003e`etl_sinks`\u003c/span\u003e below.\n"},"etlType":{"type":"string","description":"Log service etl type, the default value is `ETL`.\n"},"fromTime":{"type":"integer","description":"The start time of the processing job, if not set the value is 0, indicates to start processing from the oldest data.\n"},"kmsEncryptedAccessKeyId":{"type":"string","description":"An KMS encrypts access key id used to a log etl job. If the \u003cspan pulumi-lang-nodejs=\"`accessKeyId`\" pulumi-lang-dotnet=\"`AccessKeyId`\" pulumi-lang-go=\"`accessKeyId`\" pulumi-lang-python=\"`access_key_id`\" pulumi-lang-yaml=\"`accessKeyId`\" pulumi-lang-java=\"`accessKeyId`\"\u003e`access_key_id`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptedAccessKeySecret":{"type":"string","description":"An KMS encrypts access key secret used to a log etl job. If the \u003cspan pulumi-lang-nodejs=\"`accessKeySecret`\" pulumi-lang-dotnet=\"`AccessKeySecret`\" pulumi-lang-go=\"`accessKeySecret`\" pulumi-lang-python=\"`access_key_secret`\" pulumi-lang-yaml=\"`accessKeySecret`\" pulumi-lang-java=\"`accessKeySecret`\"\u003e`access_key_secret`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionAccessKeyIdContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-dotnet=\"`KmsEncryptedAccessKeyId`\" pulumi-lang-go=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-python=\"`kms_encrypted_access_key_id`\" pulumi-lang-yaml=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-java=\"`kmsEncryptedAccessKeyId`\"\u003e`kms_encrypted_access_key_id`\u003c/span\u003e before creating or updating an instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-dotnet=\"`KmsEncryptedAccessKeyId`\" pulumi-lang-go=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-python=\"`kms_encrypted_access_key_id`\" pulumi-lang-yaml=\"`kmsEncryptedAccessKeyId`\" pulumi-lang-java=\"`kmsEncryptedAccessKeyId`\"\u003e`kms_encrypted_access_key_id`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set. When it is changed, the instance will reboot to make the change take effect.\n"},"kmsEncryptionAccessKeySecretContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-dotnet=\"`KmsEncryptedAccessKeySecret`\" pulumi-lang-go=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-python=\"`kms_encrypted_access_key_secret`\" pulumi-lang-yaml=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-java=\"`kmsEncryptedAccessKeySecret`\"\u003e`kms_encrypted_access_key_secret`\u003c/span\u003e before creating or updating an instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-dotnet=\"`KmsEncryptedAccessKeySecret`\" pulumi-lang-go=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-python=\"`kms_encrypted_access_key_secret`\" pulumi-lang-yaml=\"`kmsEncryptedAccessKeySecret`\" pulumi-lang-java=\"`kmsEncryptedAccessKeySecret`\"\u003e`kms_encrypted_access_key_secret`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set. When it is changed, the instance will reboot to make the change take effect.\n"},"lang":{"type":"string","description":"The language of the etl job.\n"},"lastModifiedTime":{"type":"integer","description":"ETL job last modified time.\n"},"logstore":{"type":"string","description":"The source logstore of the processing job.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Advanced parameter configuration of processing operations.\n"},"project":{"type":"string","description":"The name of the project where the etl job is located.\n","willReplaceOnChanges":true},"roleArn":{"type":"string","description":"Sts role info under source logstore. \u003cspan pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\"\u003e`role_arn`\u003c/span\u003e and `(access_key_id, access_key_secret)` fill in at most one. If you do not fill in both, then you must fill in `(kms_encrypted_access_key_id, kms_encrypted_access_key_secret, kms_encryption_access_key_id_context, kms_encryption_access_key_secret_context)` to use KMS to get the key pair.\n"},"schedule":{"type":"string","description":"Job scheduling type, the default value is Resident.\n"},"script":{"type":"string","description":"Processing operation grammar.\n"},"status":{"type":"string","description":"Log project tags. the default value is RUNNING, Only 4 values are supported: `STARTING`，`RUNNING`，`STOPPING`，`STOPPED`.\n"},"toTime":{"type":"integer","description":"Deadline of processing job, if not set the value is 0, indicates that new data will be processed continuously.\n"},"version":{"type":"integer","description":"Log etl job version. the default value is \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:log/ingestion:Ingestion":{"description":"Log service ingestion, this service provides the function of importing logs of various data sources(OSS, MaxCompute) into logstore. [Refer to details](https://www.alibabacloud.com/help/en/doc-detail/147819.html).\n\n\u003e **NOTE:** Available since v1.161.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.log.Project(\"example\", {\n    projectName: `terraform-example-${_default.result}`,\n    description: \"terraform-example\",\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst exampleStore = new alicloud.log.Store(\"example\", {\n    projectName: example.projectName,\n    logstoreName: \"example-store\",\n    retentionPeriod: 3650,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst exampleIngestion = new alicloud.log.Ingestion(\"example\", {\n    project: example.projectName,\n    logstore: exampleStore.logstoreName,\n    ingestionName: \"terraform-example\",\n    displayName: \"terraform-example\",\n    description: \"terraform-example\",\n    interval: \"30m\",\n    runImmediately: true,\n    timeZone: \"+0800\",\n    source: `        {\n          \\\\\"bucket\\\\\": \\\\\"bucket_name\\\\\",\n          \\\\\"compressionCodec\\\\\": \\\\\"none\\\\\",\n          \\\\\"encoding\\\\\": \\\\\"UTF-8\\\\\",\n          \\\\\"endpoint\\\\\": \\\\\"oss-cn-hangzhou-internal.aliyuncs.com\\\\\",\n          \\\\\"format\\\\\": {\n            \\\\\"escapeChar\\\\\": \\\\\"\\\\\\\\\\\\\\\\\\\\\",\n            \\\\\"fieldDelimiter\\\\\": \\\\\",\\\\\",\n            \\\\\"fieldNames\\\\\": [],\n            \\\\\"firstRowAsHeader\\\\\": true,\n            \\\\\"maxLines\\\\\": 1,\n            \\\\\"quoteChar\\\\\": \\\\\"\\\\\\\\\\\\\"\\\\\",\n            \\\\\"skipLeadingRows\\\\\": 0,\n            \\\\\"timeField\\\\\": \\\\\"\\\\\",\n            \\\\\"type\\\\\": \\\\\"DelimitedText\\\\\"\n          },\n          \\\\\"pattern\\\\\": \\\\\"\\\\\",\n          \\\\\"prefix\\\\\": \\\\\"test-prefix/\\\\\",\n          \\\\\"restoreObjectEnabled\\\\\": false,\n          \\\\\"roleARN\\\\\": \\\\\"acs:ram::1049446484210612:role/aliyunlogimportossrole\\\\\",\n          \\\\\"type\\\\\": \\\\\"AliyunOSS\\\\\"\n        }\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.log.Project(\"example\",\n    project_name=f\"terraform-example-{default['result']}\",\n    description=\"terraform-example\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\nexample_store = alicloud.log.Store(\"example\",\n    project_name=example.project_name,\n    logstore_name=\"example-store\",\n    retention_period=3650,\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\nexample_ingestion = alicloud.log.Ingestion(\"example\",\n    project=example.project_name,\n    logstore=example_store.logstore_name,\n    ingestion_name=\"terraform-example\",\n    display_name=\"terraform-example\",\n    description=\"terraform-example\",\n    interval=\"30m\",\n    run_immediately=True,\n    time_zone=\"+0800\",\n    source=\"\"\"        {\n          \\\"bucket\\\": \\\"bucket_name\\\",\n          \\\"compressionCodec\\\": \\\"none\\\",\n          \\\"encoding\\\": \\\"UTF-8\\\",\n          \\\"endpoint\\\": \\\"oss-cn-hangzhou-internal.aliyuncs.com\\\",\n          \\\"format\\\": {\n            \\\"escapeChar\\\": \\\"\\\\\\\\\\\",\n            \\\"fieldDelimiter\\\": \\\",\\\",\n            \\\"fieldNames\\\": [],\n            \\\"firstRowAsHeader\\\": true,\n            \\\"maxLines\\\": 1,\n            \\\"quoteChar\\\": \\\"\\\\\\\"\\\",\n            \\\"skipLeadingRows\\\": 0,\n            \\\"timeField\\\": \\\"\\\",\n            \\\"type\\\": \\\"DelimitedText\\\"\n          },\n          \\\"pattern\\\": \\\"\\\",\n          \\\"prefix\\\": \\\"test-prefix/\\\",\n          \\\"restoreObjectEnabled\\\": false,\n          \\\"roleARN\\\": \\\"acs:ram::1049446484210612:role/aliyunlogimportossrole\\\",\n          \\\"type\\\": \\\"AliyunOSS\\\"\n        }\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Log.Project(\"example\", new()\n    {\n        ProjectName = $\"terraform-example-{@default.Result}\",\n        Description = \"terraform-example\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var exampleStore = new AliCloud.Log.Store(\"example\", new()\n    {\n        ProjectName = example.ProjectName,\n        LogstoreName = \"example-store\",\n        RetentionPeriod = 3650,\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var exampleIngestion = new AliCloud.Log.Ingestion(\"example\", new()\n    {\n        Project = example.ProjectName,\n        Logstore = exampleStore.LogstoreName,\n        IngestionName = \"terraform-example\",\n        DisplayName = \"terraform-example\",\n        Description = \"terraform-example\",\n        Interval = \"30m\",\n        RunImmediately = true,\n        TimeZone = \"+0800\",\n        Source = @\"        {\n          \\\"\"bucket\\\"\": \\\"\"bucket_name\\\"\",\n          \\\"\"compressionCodec\\\"\": \\\"\"none\\\"\",\n          \\\"\"encoding\\\"\": \\\"\"UTF-8\\\"\",\n          \\\"\"endpoint\\\"\": \\\"\"oss-cn-hangzhou-internal.aliyuncs.com\\\"\",\n          \\\"\"format\\\"\": {\n            \\\"\"escapeChar\\\"\": \\\"\"\\\\\\\\\\\"\",\n            \\\"\"fieldDelimiter\\\"\": \\\"\",\\\"\",\n            \\\"\"fieldNames\\\"\": [],\n            \\\"\"firstRowAsHeader\\\"\": true,\n            \\\"\"maxLines\\\"\": 1,\n            \\\"\"quoteChar\\\"\": \\\"\"\\\\\\\"\"\\\"\",\n            \\\"\"skipLeadingRows\\\"\": 0,\n            \\\"\"timeField\\\"\": \\\"\"\\\"\",\n            \\\"\"type\\\"\": \\\"\"DelimitedText\\\"\"\n          },\n          \\\"\"pattern\\\"\": \\\"\"\\\"\",\n          \\\"\"prefix\\\"\": \\\"\"test-prefix/\\\"\",\n          \\\"\"restoreObjectEnabled\\\"\": false,\n          \\\"\"roleARN\\\"\": \\\"\"acs:ram::1049446484210612:role/aliyunlogimportossrole\\\"\",\n          \\\"\"type\\\"\": \\\"\"AliyunOSS\\\"\"\n        }\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := log.NewStore(ctx, \"example\", \u0026log.StoreArgs{\n\t\t\tProjectName:        example.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(\"example-store\"),\n\t\t\tRetentionPeriod:    pulumi.Int(3650),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewIngestion(ctx, \"example\", \u0026log.IngestionArgs{\n\t\t\tProject:        example.ProjectName,\n\t\t\tLogstore:       exampleStore.LogstoreName,\n\t\t\tIngestionName:  pulumi.String(\"terraform-example\"),\n\t\t\tDisplayName:    pulumi.String(\"terraform-example\"),\n\t\t\tDescription:    pulumi.String(\"terraform-example\"),\n\t\t\tInterval:       pulumi.String(\"30m\"),\n\t\t\tRunImmediately: pulumi.Bool(true),\n\t\t\tTimeZone:       pulumi.String(\"+0800\"),\n\t\t\tSource: pulumi.String(`        {\n          \\\"bucket\\\": \\\"bucket_name\\\",\n          \\\"compressionCodec\\\": \\\"none\\\",\n          \\\"encoding\\\": \\\"UTF-8\\\",\n          \\\"endpoint\\\": \\\"oss-cn-hangzhou-internal.aliyuncs.com\\\",\n          \\\"format\\\": {\n            \\\"escapeChar\\\": \\\"\\\\\\\\\\\",\n            \\\"fieldDelimiter\\\": \\\",\\\",\n            \\\"fieldNames\\\": [],\n            \\\"firstRowAsHeader\\\": true,\n            \\\"maxLines\\\": 1,\n            \\\"quoteChar\\\": \\\"\\\\\\\"\\\",\n            \\\"skipLeadingRows\\\": 0,\n            \\\"timeField\\\": \\\"\\\",\n            \\\"type\\\": \\\"DelimitedText\\\"\n          },\n          \\\"pattern\\\": \\\"\\\",\n          \\\"prefix\\\": \\\"test-prefix/\\\",\n          \\\"restoreObjectEnabled\\\": false,\n          \\\"roleARN\\\": \\\"acs:ram::1049446484210612:role/aliyunlogimportossrole\\\",\n          \\\"type\\\": \\\"AliyunOSS\\\"\n        }\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.log.Ingestion;\nimport com.pulumi.alicloud.log.IngestionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .projectName(String.format(\"terraform-example-%s\", default_.result()))\n            .description(\"terraform-example\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var exampleStore = new Store(\"exampleStore\", StoreArgs.builder()\n            .projectName(example.projectName())\n            .logstoreName(\"example-store\")\n            .retentionPeriod(3650)\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var exampleIngestion = new Ingestion(\"exampleIngestion\", IngestionArgs.builder()\n            .project(example.projectName())\n            .logstore(exampleStore.logstoreName())\n            .ingestionName(\"terraform-example\")\n            .displayName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .interval(\"30m\")\n            .runImmediately(true)\n            .timeZone(\"+0800\")\n            .source(\"\"\"\n        {\n          \\\"bucket\\\": \\\"bucket_name\\\",\n          \\\"compressionCodec\\\": \\\"none\\\",\n          \\\"encoding\\\": \\\"UTF-8\\\",\n          \\\"endpoint\\\": \\\"oss-cn-hangzhou-internal.aliyuncs.com\\\",\n          \\\"format\\\": {\n            \\\"escapeChar\\\": \\\"\\\\\\\\\\\",\n            \\\"fieldDelimiter\\\": \\\",\\\",\n            \\\"fieldNames\\\": [],\n            \\\"firstRowAsHeader\\\": true,\n            \\\"maxLines\\\": 1,\n            \\\"quoteChar\\\": \\\"\\\\\\\"\\\",\n            \\\"skipLeadingRows\\\": 0,\n            \\\"timeField\\\": \\\"\\\",\n            \\\"type\\\": \\\"DelimitedText\\\"\n          },\n          \\\"pattern\\\": \\\"\\\",\n          \\\"prefix\\\": \\\"test-prefix/\\\",\n          \\\"restoreObjectEnabled\\\": false,\n          \\\"roleARN\\\": \\\"acs:ram::1049446484210612:role/aliyunlogimportossrole\\\",\n          \\\"type\\\": \\\"AliyunOSS\\\"\n        }\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:log:Project\n    properties:\n      projectName: terraform-example-${default.result}\n      description: terraform-example\n      tags:\n        Created: TF\n        For: example\n  exampleStore:\n    type: alicloud:log:Store\n    name: example\n    properties:\n      projectName: ${example.projectName}\n      logstoreName: example-store\n      retentionPeriod: 3650\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  exampleIngestion:\n    type: alicloud:log:Ingestion\n    name: example\n    properties:\n      project: ${example.projectName}\n      logstore: ${exampleStore.logstoreName}\n      ingestionName: terraform-example\n      displayName: terraform-example\n      description: terraform-example\n      interval: 30m\n      runImmediately: true\n      timeZone: '+0800'\n      source: |2\n                {\n                  \\\"bucket\\\": \\\"bucket_name\\\",\n                  \\\"compressionCodec\\\": \\\"none\\\",\n                  \\\"encoding\\\": \\\"UTF-8\\\",\n                  \\\"endpoint\\\": \\\"oss-cn-hangzhou-internal.aliyuncs.com\\\",\n                  \\\"format\\\": {\n                    \\\"escapeChar\\\": \\\"\\\\\\\\\\\",\n                    \\\"fieldDelimiter\\\": \\\",\\\",\n                    \\\"fieldNames\\\": [],\n                    \\\"firstRowAsHeader\\\": true,\n                    \\\"maxLines\\\": 1,\n                    \\\"quoteChar\\\": \\\"\\\\\\\"\\\",\n                    \\\"skipLeadingRows\\\": 0,\n                    \\\"timeField\\\": \\\"\\\",\n                    \\\"type\\\": \\\"DelimitedText\\\"\n                  },\n                  \\\"pattern\\\": \\\"\\\",\n                  \\\"prefix\\\": \\\"test-prefix/\\\",\n                  \\\"restoreObjectEnabled\\\": false,\n                  \\\"roleARN\\\": \\\"acs:ram::1049446484210612:role/aliyunlogimportossrole\\\",\n                  \\\"type\\\": \\\"AliyunOSS\\\"\n                }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog ingestion can be imported using the id or name, e.g.\n\n```sh\n$ pulumi import alicloud:log/ingestion:Ingestion example tf-log-project:tf-log-logstore:ingestion_name\n```\n\n","properties":{"description":{"type":"string","description":"Ingestion job description.\n"},"displayName":{"type":"string","description":"The name displayed on the web page.\n"},"ingestionName":{"type":"string","description":"Ingestion job name, it can only contain lowercase letters, numbers, dashes `-` and underscores `_`. It must start and end with lowercase letters or numbers, and the name must be 2 to 128 characters long.\n"},"interval":{"type":"string","description":"Task execution interval, support minute \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, hour \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, day \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e, for example 30 minutes \u003cspan pulumi-lang-nodejs=\"`30m`\" pulumi-lang-dotnet=\"`30m`\" pulumi-lang-go=\"`30m`\" pulumi-lang-python=\"`30m`\" pulumi-lang-yaml=\"`30m`\" pulumi-lang-java=\"`30m`\"\u003e`30m`\u003c/span\u003e.\n"},"logstore":{"type":"string","description":"The name of the target logstore.\n"},"project":{"type":"string","description":"The name of the log project. It is the only in one Alicloud account.\n"},"runImmediately":{"type":"boolean","description":"Whether to run the ingestion job immediately, if false, wait for an interval before starting the ingestion.\n"},"source":{"type":"string","description":"Data source and data format details. [Refer to details](https://www.alibabacloud.com/help/en/doc-detail/147819.html).\n"},"timeZone":{"type":"string","description":"Which time zone is the log time imported in, e.g. `+0800`.\n"}},"required":["displayName","ingestionName","interval","logstore","project","runImmediately","source"],"inputProperties":{"description":{"type":"string","description":"Ingestion job description.\n"},"displayName":{"type":"string","description":"The name displayed on the web page.\n"},"ingestionName":{"type":"string","description":"Ingestion job name, it can only contain lowercase letters, numbers, dashes `-` and underscores `_`. It must start and end with lowercase letters or numbers, and the name must be 2 to 128 characters long.\n","willReplaceOnChanges":true},"interval":{"type":"string","description":"Task execution interval, support minute \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, hour \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, day \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e, for example 30 minutes \u003cspan pulumi-lang-nodejs=\"`30m`\" pulumi-lang-dotnet=\"`30m`\" pulumi-lang-go=\"`30m`\" pulumi-lang-python=\"`30m`\" pulumi-lang-yaml=\"`30m`\" pulumi-lang-java=\"`30m`\"\u003e`30m`\u003c/span\u003e.\n"},"logstore":{"type":"string","description":"The name of the target logstore.\n","willReplaceOnChanges":true},"project":{"type":"string","description":"The name of the log project. It is the only in one Alicloud account.\n","willReplaceOnChanges":true},"runImmediately":{"type":"boolean","description":"Whether to run the ingestion job immediately, if false, wait for an interval before starting the ingestion.\n"},"source":{"type":"string","description":"Data source and data format details. [Refer to details](https://www.alibabacloud.com/help/en/doc-detail/147819.html).\n"},"timeZone":{"type":"string","description":"Which time zone is the log time imported in, e.g. `+0800`.\n"}},"requiredInputs":["displayName","ingestionName","interval","logstore","project","runImmediately","source"],"stateInputs":{"description":"Input properties used for looking up and filtering Ingestion resources.\n","properties":{"description":{"type":"string","description":"Ingestion job description.\n"},"displayName":{"type":"string","description":"The name displayed on the web page.\n"},"ingestionName":{"type":"string","description":"Ingestion job name, it can only contain lowercase letters, numbers, dashes `-` and underscores `_`. It must start and end with lowercase letters or numbers, and the name must be 2 to 128 characters long.\n","willReplaceOnChanges":true},"interval":{"type":"string","description":"Task execution interval, support minute \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, hour \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, day \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e, for example 30 minutes \u003cspan pulumi-lang-nodejs=\"`30m`\" pulumi-lang-dotnet=\"`30m`\" pulumi-lang-go=\"`30m`\" pulumi-lang-python=\"`30m`\" pulumi-lang-yaml=\"`30m`\" pulumi-lang-java=\"`30m`\"\u003e`30m`\u003c/span\u003e.\n"},"logstore":{"type":"string","description":"The name of the target logstore.\n","willReplaceOnChanges":true},"project":{"type":"string","description":"The name of the log project. It is the only in one Alicloud account.\n","willReplaceOnChanges":true},"runImmediately":{"type":"boolean","description":"Whether to run the ingestion job immediately, if false, wait for an interval before starting the ingestion.\n"},"source":{"type":"string","description":"Data source and data format details. [Refer to details](https://www.alibabacloud.com/help/en/doc-detail/147819.html).\n"},"timeZone":{"type":"string","description":"Which time zone is the log time imported in, e.g. `+0800`.\n"}},"type":"object"}},"alicloud:log/logTailAttachment:LogTailAttachment":{"description":"The Logtail access service is a log collection agent provided by Log Service.\nYou can use Logtail to collect logs from servers such as Alibaba Cloud Elastic\nCompute Service (ECS) instances in real time in the Log Service console. [Refer to details](https://www.alibabacloud.com/help/doc-detail/29058.htm)\n\nThis resource amis to attach one logtail configure to a machine group.\n\n\u003e **NOTE:** One logtail configure can be attached to multiple machine groups and one machine group can attach several logtail configures.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.log.Project(\"example\", {\n    projectName: `terraform-example-${_default.result}`,\n    description: \"terraform-example\",\n});\nconst exampleStore = new alicloud.log.Store(\"example\", {\n    projectName: example.projectName,\n    logstoreName: \"example-store\",\n    retentionPeriod: 3650,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst exampleLogTailConfig = new alicloud.log.LogTailConfig(\"example\", {\n    project: example.projectName,\n    logstore: exampleStore.logstoreName,\n    inputType: \"file\",\n    name: \"terraform-example\",\n    outputType: \"LogService\",\n    inputDetail: `  \\\\t{\n\\\\t\\\\t\\\\\"logPath\\\\\": \\\\\"/logPath\\\\\",\n\\\\t\\\\t\\\\\"filePattern\\\\\": \\\\\"access.log\\\\\",\n\\\\t\\\\t\\\\\"logType\\\\\": \\\\\"json_log\\\\\",\n\\\\t\\\\t\\\\\"topicFormat\\\\\": \\\\\"default\\\\\",\n\\\\t\\\\t\\\\\"discardUnmatch\\\\\": false,\n\\\\t\\\\t\\\\\"enableRawLog\\\\\": true,\n\\\\t\\\\t\\\\\"fileEncoding\\\\\": \\\\\"gbk\\\\\",\n\\\\t\\\\t\\\\\"maxDepth\\\\\": 10\n\\\\t}\n`,\n});\nconst exampleMachineGroup = new alicloud.log.MachineGroup(\"example\", {\n    project: example.projectName,\n    name: \"terraform-example\",\n    identifyType: \"ip\",\n    topic: \"terraform\",\n    identifyLists: [\n        \"10.0.0.1\",\n        \"10.0.0.2\",\n    ],\n});\nconst exampleLogTailAttachment = new alicloud.log.LogTailAttachment(\"example\", {\n    project: example.projectName,\n    logtailConfigName: exampleLogTailConfig.name,\n    machineGroupName: exampleMachineGroup.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.log.Project(\"example\",\n    project_name=f\"terraform-example-{default['result']}\",\n    description=\"terraform-example\")\nexample_store = alicloud.log.Store(\"example\",\n    project_name=example.project_name,\n    logstore_name=\"example-store\",\n    retention_period=3650,\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\nexample_log_tail_config = alicloud.log.LogTailConfig(\"example\",\n    project=example.project_name,\n    logstore=example_store.logstore_name,\n    input_type=\"file\",\n    name=\"terraform-example\",\n    output_type=\"LogService\",\n    input_detail=\"\"\"  \\t{\n\\t\\t\\\"logPath\\\": \\\"/logPath\\\",\n\\t\\t\\\"filePattern\\\": \\\"access.log\\\",\n\\t\\t\\\"logType\\\": \\\"json_log\\\",\n\\t\\t\\\"topicFormat\\\": \\\"default\\\",\n\\t\\t\\\"discardUnmatch\\\": false,\n\\t\\t\\\"enableRawLog\\\": true,\n\\t\\t\\\"fileEncoding\\\": \\\"gbk\\\",\n\\t\\t\\\"maxDepth\\\": 10\n\\t}\n\"\"\")\nexample_machine_group = alicloud.log.MachineGroup(\"example\",\n    project=example.project_name,\n    name=\"terraform-example\",\n    identify_type=\"ip\",\n    topic=\"terraform\",\n    identify_lists=[\n        \"10.0.0.1\",\n        \"10.0.0.2\",\n    ])\nexample_log_tail_attachment = alicloud.log.LogTailAttachment(\"example\",\n    project=example.project_name,\n    logtail_config_name=example_log_tail_config.name,\n    machine_group_name=example_machine_group.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Log.Project(\"example\", new()\n    {\n        ProjectName = $\"terraform-example-{@default.Result}\",\n        Description = \"terraform-example\",\n    });\n\n    var exampleStore = new AliCloud.Log.Store(\"example\", new()\n    {\n        ProjectName = example.ProjectName,\n        LogstoreName = \"example-store\",\n        RetentionPeriod = 3650,\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var exampleLogTailConfig = new AliCloud.Log.LogTailConfig(\"example\", new()\n    {\n        Project = example.ProjectName,\n        Logstore = exampleStore.LogstoreName,\n        InputType = \"file\",\n        Name = \"terraform-example\",\n        OutputType = \"LogService\",\n        InputDetail = @\"  \\t{\n\\t\\t\\\"\"logPath\\\"\": \\\"\"/logPath\\\"\",\n\\t\\t\\\"\"filePattern\\\"\": \\\"\"access.log\\\"\",\n\\t\\t\\\"\"logType\\\"\": \\\"\"json_log\\\"\",\n\\t\\t\\\"\"topicFormat\\\"\": \\\"\"default\\\"\",\n\\t\\t\\\"\"discardUnmatch\\\"\": false,\n\\t\\t\\\"\"enableRawLog\\\"\": true,\n\\t\\t\\\"\"fileEncoding\\\"\": \\\"\"gbk\\\"\",\n\\t\\t\\\"\"maxDepth\\\"\": 10\n\\t}\n\",\n    });\n\n    var exampleMachineGroup = new AliCloud.Log.MachineGroup(\"example\", new()\n    {\n        Project = example.ProjectName,\n        Name = \"terraform-example\",\n        IdentifyType = \"ip\",\n        Topic = \"terraform\",\n        IdentifyLists = new[]\n        {\n            \"10.0.0.1\",\n            \"10.0.0.2\",\n        },\n    });\n\n    var exampleLogTailAttachment = new AliCloud.Log.LogTailAttachment(\"example\", new()\n    {\n        Project = example.ProjectName,\n        LogtailConfigName = exampleLogTailConfig.Name,\n        MachineGroupName = exampleMachineGroup.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := log.NewStore(ctx, \"example\", \u0026log.StoreArgs{\n\t\t\tProjectName:        example.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(\"example-store\"),\n\t\t\tRetentionPeriod:    pulumi.Int(3650),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLogTailConfig, err := log.NewLogTailConfig(ctx, \"example\", \u0026log.LogTailConfigArgs{\n\t\t\tProject:    example.ProjectName,\n\t\t\tLogstore:   exampleStore.LogstoreName,\n\t\t\tInputType:  pulumi.String(\"file\"),\n\t\t\tName:       pulumi.String(\"terraform-example\"),\n\t\t\tOutputType: pulumi.String(\"LogService\"),\n\t\t\tInputDetail: pulumi.String(`  \\t{\n\\t\\t\\\"logPath\\\": \\\"/logPath\\\",\n\\t\\t\\\"filePattern\\\": \\\"access.log\\\",\n\\t\\t\\\"logType\\\": \\\"json_log\\\",\n\\t\\t\\\"topicFormat\\\": \\\"default\\\",\n\\t\\t\\\"discardUnmatch\\\": false,\n\\t\\t\\\"enableRawLog\\\": true,\n\\t\\t\\\"fileEncoding\\\": \\\"gbk\\\",\n\\t\\t\\\"maxDepth\\\": 10\n\\t}\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleMachineGroup, err := log.NewMachineGroup(ctx, \"example\", \u0026log.MachineGroupArgs{\n\t\t\tProject:      example.ProjectName,\n\t\t\tName:         pulumi.String(\"terraform-example\"),\n\t\t\tIdentifyType: pulumi.String(\"ip\"),\n\t\t\tTopic:        pulumi.String(\"terraform\"),\n\t\t\tIdentifyLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.1\"),\n\t\t\t\tpulumi.String(\"10.0.0.2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewLogTailAttachment(ctx, \"example\", \u0026log.LogTailAttachmentArgs{\n\t\t\tProject:           example.ProjectName,\n\t\t\tLogtailConfigName: exampleLogTailConfig.Name,\n\t\t\tMachineGroupName:  exampleMachineGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.log.LogTailConfig;\nimport com.pulumi.alicloud.log.LogTailConfigArgs;\nimport com.pulumi.alicloud.log.MachineGroup;\nimport com.pulumi.alicloud.log.MachineGroupArgs;\nimport com.pulumi.alicloud.log.LogTailAttachment;\nimport com.pulumi.alicloud.log.LogTailAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .projectName(String.format(\"terraform-example-%s\", default_.result()))\n            .description(\"terraform-example\")\n            .build());\n\n        var exampleStore = new Store(\"exampleStore\", StoreArgs.builder()\n            .projectName(example.projectName())\n            .logstoreName(\"example-store\")\n            .retentionPeriod(3650)\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var exampleLogTailConfig = new LogTailConfig(\"exampleLogTailConfig\", LogTailConfigArgs.builder()\n            .project(example.projectName())\n            .logstore(exampleStore.logstoreName())\n            .inputType(\"file\")\n            .name(\"terraform-example\")\n            .outputType(\"LogService\")\n            .inputDetail(\"\"\"\n  \\t{\n\\t\\t\\\"logPath\\\": \\\"/logPath\\\",\n\\t\\t\\\"filePattern\\\": \\\"access.log\\\",\n\\t\\t\\\"logType\\\": \\\"json_log\\\",\n\\t\\t\\\"topicFormat\\\": \\\"default\\\",\n\\t\\t\\\"discardUnmatch\\\": false,\n\\t\\t\\\"enableRawLog\\\": true,\n\\t\\t\\\"fileEncoding\\\": \\\"gbk\\\",\n\\t\\t\\\"maxDepth\\\": 10\n\\t}\n            \"\"\")\n            .build());\n\n        var exampleMachineGroup = new MachineGroup(\"exampleMachineGroup\", MachineGroupArgs.builder()\n            .project(example.projectName())\n            .name(\"terraform-example\")\n            .identifyType(\"ip\")\n            .topic(\"terraform\")\n            .identifyLists(            \n                \"10.0.0.1\",\n                \"10.0.0.2\")\n            .build());\n\n        var exampleLogTailAttachment = new LogTailAttachment(\"exampleLogTailAttachment\", LogTailAttachmentArgs.builder()\n            .project(example.projectName())\n            .logtailConfigName(exampleLogTailConfig.name())\n            .machineGroupName(exampleMachineGroup.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:log:Project\n    properties:\n      projectName: terraform-example-${default.result}\n      description: terraform-example\n  exampleStore:\n    type: alicloud:log:Store\n    name: example\n    properties:\n      projectName: ${example.projectName}\n      logstoreName: example-store\n      retentionPeriod: 3650\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  exampleLogTailConfig:\n    type: alicloud:log:LogTailConfig\n    name: example\n    properties:\n      project: ${example.projectName}\n      logstore: ${exampleStore.logstoreName}\n      inputType: file\n      name: terraform-example\n      outputType: LogService\n      inputDetail: |2\n          \\t{\n        \\t\\t\\\"logPath\\\": \\\"/logPath\\\",\n        \\t\\t\\\"filePattern\\\": \\\"access.log\\\",\n        \\t\\t\\\"logType\\\": \\\"json_log\\\",\n        \\t\\t\\\"topicFormat\\\": \\\"default\\\",\n        \\t\\t\\\"discardUnmatch\\\": false,\n        \\t\\t\\\"enableRawLog\\\": true,\n        \\t\\t\\\"fileEncoding\\\": \\\"gbk\\\",\n        \\t\\t\\\"maxDepth\\\": 10\n        \\t}\n  exampleMachineGroup:\n    type: alicloud:log:MachineGroup\n    name: example\n    properties:\n      project: ${example.projectName}\n      name: terraform-example\n      identifyType: ip\n      topic: terraform\n      identifyLists:\n        - 10.0.0.1\n        - 10.0.0.2\n  exampleLogTailAttachment:\n    type: alicloud:log:LogTailAttachment\n    name: example\n    properties:\n      project: ${example.projectName}\n      logtailConfigName: ${exampleLogTailConfig.name}\n      machineGroupName: ${exampleMachineGroup.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLogtial to machine group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:log/logTailAttachment:LogTailAttachment example tf-log:tf-log-config:tf-log-machine-group\n```\n\n","properties":{"logtailConfigName":{"type":"string","description":"The Logtail configuration name, which is unique in the same project.\n"},"machineGroupName":{"type":"string","description":"The machine group name, which is unique in the same project.\n"},"project":{"type":"string","description":"The project name to the log store belongs.\n"}},"required":["logtailConfigName","machineGroupName","project"],"inputProperties":{"logtailConfigName":{"type":"string","description":"The Logtail configuration name, which is unique in the same project.\n","willReplaceOnChanges":true},"machineGroupName":{"type":"string","description":"The machine group name, which is unique in the same project.\n","willReplaceOnChanges":true},"project":{"type":"string","description":"The project name to the log store belongs.\n","willReplaceOnChanges":true}},"requiredInputs":["logtailConfigName","machineGroupName","project"],"stateInputs":{"description":"Input properties used for looking up and filtering LogTailAttachment resources.\n","properties":{"logtailConfigName":{"type":"string","description":"The Logtail configuration name, which is unique in the same project.\n","willReplaceOnChanges":true},"machineGroupName":{"type":"string","description":"The machine group name, which is unique in the same project.\n","willReplaceOnChanges":true},"project":{"type":"string","description":"The project name to the log store belongs.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:log/logTailConfig:LogTailConfig":{"description":"The Logtail access service is a log collection agent provided by Log Service.\nYou can use Logtail to collect logs from servers such as Alibaba Cloud Elastic\nCompute Service (ECS) instances in real time in the Log Service console. [Refer to details](https://www.alibabacloud.com/help/doc-detail/29058.htm\n)\n\n\u003e **NOTE:** Available since v1.93.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.log.Project(\"example\", {\n    projectName: `terraform-example-${_default.result}`,\n    description: \"terraform-example\",\n});\nconst exampleStore = new alicloud.log.Store(\"example\", {\n    projectName: example.projectName,\n    logstoreName: \"example-store\",\n    retentionPeriod: 3650,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst exampleLogTailConfig = new alicloud.log.LogTailConfig(\"example\", {\n    project: example.projectName,\n    logstore: exampleStore.logstoreName,\n    inputType: \"file\",\n    name: \"terraform-example\",\n    outputType: \"LogService\",\n    inputDetail: `  \\\\t{\n\\\\t\\\\t\\\\\"logPath\\\\\": \\\\\"/logPath\\\\\",\n\\\\t\\\\t\\\\\"filePattern\\\\\": \\\\\"access.log\\\\\",\n\\\\t\\\\t\\\\\"logType\\\\\": \\\\\"json_log\\\\\",\n\\\\t\\\\t\\\\\"topicFormat\\\\\": \\\\\"default\\\\\",\n\\\\t\\\\t\\\\\"discardUnmatch\\\\\": false,\n\\\\t\\\\t\\\\\"enableRawLog\\\\\": true,\n\\\\t\\\\t\\\\\"fileEncoding\\\\\": \\\\\"gbk\\\\\",\n\\\\t\\\\t\\\\\"maxDepth\\\\\": 10\n\\\\t}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.log.Project(\"example\",\n    project_name=f\"terraform-example-{default['result']}\",\n    description=\"terraform-example\")\nexample_store = alicloud.log.Store(\"example\",\n    project_name=example.project_name,\n    logstore_name=\"example-store\",\n    retention_period=3650,\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\nexample_log_tail_config = alicloud.log.LogTailConfig(\"example\",\n    project=example.project_name,\n    logstore=example_store.logstore_name,\n    input_type=\"file\",\n    name=\"terraform-example\",\n    output_type=\"LogService\",\n    input_detail=\"\"\"  \\t{\n\\t\\t\\\"logPath\\\": \\\"/logPath\\\",\n\\t\\t\\\"filePattern\\\": \\\"access.log\\\",\n\\t\\t\\\"logType\\\": \\\"json_log\\\",\n\\t\\t\\\"topicFormat\\\": \\\"default\\\",\n\\t\\t\\\"discardUnmatch\\\": false,\n\\t\\t\\\"enableRawLog\\\": true,\n\\t\\t\\\"fileEncoding\\\": \\\"gbk\\\",\n\\t\\t\\\"maxDepth\\\": 10\n\\t}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Log.Project(\"example\", new()\n    {\n        ProjectName = $\"terraform-example-{@default.Result}\",\n        Description = \"terraform-example\",\n    });\n\n    var exampleStore = new AliCloud.Log.Store(\"example\", new()\n    {\n        ProjectName = example.ProjectName,\n        LogstoreName = \"example-store\",\n        RetentionPeriod = 3650,\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var exampleLogTailConfig = new AliCloud.Log.LogTailConfig(\"example\", new()\n    {\n        Project = example.ProjectName,\n        Logstore = exampleStore.LogstoreName,\n        InputType = \"file\",\n        Name = \"terraform-example\",\n        OutputType = \"LogService\",\n        InputDetail = @\"  \\t{\n\\t\\t\\\"\"logPath\\\"\": \\\"\"/logPath\\\"\",\n\\t\\t\\\"\"filePattern\\\"\": \\\"\"access.log\\\"\",\n\\t\\t\\\"\"logType\\\"\": \\\"\"json_log\\\"\",\n\\t\\t\\\"\"topicFormat\\\"\": \\\"\"default\\\"\",\n\\t\\t\\\"\"discardUnmatch\\\"\": false,\n\\t\\t\\\"\"enableRawLog\\\"\": true,\n\\t\\t\\\"\"fileEncoding\\\"\": \\\"\"gbk\\\"\",\n\\t\\t\\\"\"maxDepth\\\"\": 10\n\\t}\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := log.NewStore(ctx, \"example\", \u0026log.StoreArgs{\n\t\t\tProjectName:        example.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(\"example-store\"),\n\t\t\tRetentionPeriod:    pulumi.Int(3650),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewLogTailConfig(ctx, \"example\", \u0026log.LogTailConfigArgs{\n\t\t\tProject:    example.ProjectName,\n\t\t\tLogstore:   exampleStore.LogstoreName,\n\t\t\tInputType:  pulumi.String(\"file\"),\n\t\t\tName:       pulumi.String(\"terraform-example\"),\n\t\t\tOutputType: pulumi.String(\"LogService\"),\n\t\t\tInputDetail: pulumi.String(`  \\t{\n\\t\\t\\\"logPath\\\": \\\"/logPath\\\",\n\\t\\t\\\"filePattern\\\": \\\"access.log\\\",\n\\t\\t\\\"logType\\\": \\\"json_log\\\",\n\\t\\t\\\"topicFormat\\\": \\\"default\\\",\n\\t\\t\\\"discardUnmatch\\\": false,\n\\t\\t\\\"enableRawLog\\\": true,\n\\t\\t\\\"fileEncoding\\\": \\\"gbk\\\",\n\\t\\t\\\"maxDepth\\\": 10\n\\t}\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.log.LogTailConfig;\nimport com.pulumi.alicloud.log.LogTailConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .projectName(String.format(\"terraform-example-%s\", default_.result()))\n            .description(\"terraform-example\")\n            .build());\n\n        var exampleStore = new Store(\"exampleStore\", StoreArgs.builder()\n            .projectName(example.projectName())\n            .logstoreName(\"example-store\")\n            .retentionPeriod(3650)\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var exampleLogTailConfig = new LogTailConfig(\"exampleLogTailConfig\", LogTailConfigArgs.builder()\n            .project(example.projectName())\n            .logstore(exampleStore.logstoreName())\n            .inputType(\"file\")\n            .name(\"terraform-example\")\n            .outputType(\"LogService\")\n            .inputDetail(\"\"\"\n  \\t{\n\\t\\t\\\"logPath\\\": \\\"/logPath\\\",\n\\t\\t\\\"filePattern\\\": \\\"access.log\\\",\n\\t\\t\\\"logType\\\": \\\"json_log\\\",\n\\t\\t\\\"topicFormat\\\": \\\"default\\\",\n\\t\\t\\\"discardUnmatch\\\": false,\n\\t\\t\\\"enableRawLog\\\": true,\n\\t\\t\\\"fileEncoding\\\": \\\"gbk\\\",\n\\t\\t\\\"maxDepth\\\": 10\n\\t}\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:log:Project\n    properties:\n      projectName: terraform-example-${default.result}\n      description: terraform-example\n  exampleStore:\n    type: alicloud:log:Store\n    name: example\n    properties:\n      projectName: ${example.projectName}\n      logstoreName: example-store\n      retentionPeriod: 3650\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  exampleLogTailConfig:\n    type: alicloud:log:LogTailConfig\n    name: example\n    properties:\n      project: ${example.projectName}\n      logstore: ${exampleStore.logstoreName}\n      inputType: file\n      name: terraform-example\n      outputType: LogService\n      inputDetail: |2\n          \\t{\n        \\t\\t\\\"logPath\\\": \\\"/logPath\\\",\n        \\t\\t\\\"filePattern\\\": \\\"access.log\\\",\n        \\t\\t\\\"logType\\\": \\\"json_log\\\",\n        \\t\\t\\\"topicFormat\\\": \\\"default\\\",\n        \\t\\t\\\"discardUnmatch\\\": false,\n        \\t\\t\\\"enableRawLog\\\": true,\n        \\t\\t\\\"fileEncoding\\\": \\\"gbk\\\",\n        \\t\\t\\\"maxDepth\\\": 10\n        \\t}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use the existing sls-logtail module\nto create logtail config, machine group, install logtail on ECS instances and join instances into machine group one-click.\n\n## Import\n\nLogtial config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:log/logTailConfig:LogTailConfig example tf-log:tf-log-store:tf-log-config\n```\n\n","properties":{"inputDetail":{"type":"string","description":"The logtail configure the required JSON files. ([Refer to details](https://www.alibabacloud.com/help/doc-detail/29058.htm))\n"},"inputType":{"type":"string","description":"The input type. Currently only two types of files and plugin are supported.\n"},"lastModifyTime":{"type":"string","description":"This parameter is auto generated by server, please do not fill in.\n"},"logSample":{"type":"string","description":"The log sample of the Logtail configuration. The log size cannot exceed 1,000 bytes.\n"},"logstore":{"type":"string","description":"The log store name to the query index belongs.\n"},"name":{"type":"string","description":"The Logtail configuration name, which is unique in the same project.\n"},"outputType":{"type":"string","description":"The output type. Currently, only LogService is supported.\n"},"project":{"type":"string","description":"The project name to the log store belongs.\n"}},"required":["inputDetail","inputType","lastModifyTime","logstore","name","outputType","project"],"inputProperties":{"inputDetail":{"type":"string","description":"The logtail configure the required JSON files. ([Refer to details](https://www.alibabacloud.com/help/doc-detail/29058.htm))\n"},"inputType":{"type":"string","description":"The input type. Currently only two types of files and plugin are supported.\n"},"logSample":{"type":"string","description":"The log sample of the Logtail configuration. The log size cannot exceed 1,000 bytes.\n"},"logstore":{"type":"string","description":"The log store name to the query index belongs.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The Logtail configuration name, which is unique in the same project.\n","willReplaceOnChanges":true},"outputType":{"type":"string","description":"The output type. Currently, only LogService is supported.\n","willReplaceOnChanges":true},"project":{"type":"string","description":"The project name to the log store belongs.\n","willReplaceOnChanges":true}},"requiredInputs":["inputDetail","inputType","logstore","outputType","project"],"stateInputs":{"description":"Input properties used for looking up and filtering LogTailConfig resources.\n","properties":{"inputDetail":{"type":"string","description":"The logtail configure the required JSON files. ([Refer to details](https://www.alibabacloud.com/help/doc-detail/29058.htm))\n"},"inputType":{"type":"string","description":"The input type. Currently only two types of files and plugin are supported.\n"},"lastModifyTime":{"type":"string","description":"This parameter is auto generated by server, please do not fill in.\n"},"logSample":{"type":"string","description":"The log sample of the Logtail configuration. The log size cannot exceed 1,000 bytes.\n"},"logstore":{"type":"string","description":"The log store name to the query index belongs.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The Logtail configuration name, which is unique in the same project.\n","willReplaceOnChanges":true},"outputType":{"type":"string","description":"The output type. Currently, only LogService is supported.\n","willReplaceOnChanges":true},"project":{"type":"string","description":"The project name to the log store belongs.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:log/machineGroup:MachineGroup":{"description":"Log Service manages all the ECS instances whose logs need to be collected by using the Logtail client in the form of machine groups.\n [Refer to details](https://www.alibabacloud.com/help/doc-detail/28966.htm)\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.log.Project(\"example\", {\n    projectName: `terraform-example-${_default.result}`,\n    description: \"terraform-example\",\n});\nconst exampleMachineGroup = new alicloud.log.MachineGroup(\"example\", {\n    project: example.projectName,\n    name: \"terraform-example\",\n    identifyType: \"ip\",\n    topic: \"terraform\",\n    identifyLists: [\n        \"10.0.0.1\",\n        \"10.0.0.2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.log.Project(\"example\",\n    project_name=f\"terraform-example-{default['result']}\",\n    description=\"terraform-example\")\nexample_machine_group = alicloud.log.MachineGroup(\"example\",\n    project=example.project_name,\n    name=\"terraform-example\",\n    identify_type=\"ip\",\n    topic=\"terraform\",\n    identify_lists=[\n        \"10.0.0.1\",\n        \"10.0.0.2\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Log.Project(\"example\", new()\n    {\n        ProjectName = $\"terraform-example-{@default.Result}\",\n        Description = \"terraform-example\",\n    });\n\n    var exampleMachineGroup = new AliCloud.Log.MachineGroup(\"example\", new()\n    {\n        Project = example.ProjectName,\n        Name = \"terraform-example\",\n        IdentifyType = \"ip\",\n        Topic = \"terraform\",\n        IdentifyLists = new[]\n        {\n            \"10.0.0.1\",\n            \"10.0.0.2\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewMachineGroup(ctx, \"example\", \u0026log.MachineGroupArgs{\n\t\t\tProject:      example.ProjectName,\n\t\t\tName:         pulumi.String(\"terraform-example\"),\n\t\t\tIdentifyType: pulumi.String(\"ip\"),\n\t\t\tTopic:        pulumi.String(\"terraform\"),\n\t\t\tIdentifyLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.1\"),\n\t\t\t\tpulumi.String(\"10.0.0.2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.MachineGroup;\nimport com.pulumi.alicloud.log.MachineGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .projectName(String.format(\"terraform-example-%s\", default_.result()))\n            .description(\"terraform-example\")\n            .build());\n\n        var exampleMachineGroup = new MachineGroup(\"exampleMachineGroup\", MachineGroupArgs.builder()\n            .project(example.projectName())\n            .name(\"terraform-example\")\n            .identifyType(\"ip\")\n            .topic(\"terraform\")\n            .identifyLists(            \n                \"10.0.0.1\",\n                \"10.0.0.2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:log:Project\n    properties:\n      projectName: terraform-example-${default.result}\n      description: terraform-example\n  exampleMachineGroup:\n    type: alicloud:log:MachineGroup\n    name: example\n    properties:\n      project: ${example.projectName}\n      name: terraform-example\n      identifyType: ip\n      topic: terraform\n      identifyLists:\n        - 10.0.0.1\n        - 10.0.0.2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use the existing sls-logtail module \nto create logtail config, machine group, install logtail on ECS instances and join instances into machine group one-click.\n\n## Import\n\nLog machine group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:log/machineGroup:MachineGroup example tf-log:tf-machine-group\n```\n\n","properties":{"identifyLists":{"type":"array","items":{"type":"string"},"description":"The specific machine identification, which can be an IP address or user-defined identity.\n"},"identifyType":{"type":"string","description":"The machine identification type, including IP and user-defined identity. Valid values are \"ip\" and \"userdefined\". Default to \"ip\".\n"},"name":{"type":"string","description":"The machine group name, which is unique in the same project.\n"},"project":{"type":"string","description":"The project name to the machine group belongs.\n"},"topic":{"type":"string","description":"The topic of a machine group.\n"}},"required":["identifyLists","name","project"],"inputProperties":{"identifyLists":{"type":"array","items":{"type":"string"},"description":"The specific machine identification, which can be an IP address or user-defined identity.\n"},"identifyType":{"type":"string","description":"The machine identification type, including IP and user-defined identity. Valid values are \"ip\" and \"userdefined\". Default to \"ip\".\n"},"name":{"type":"string","description":"The machine group name, which is unique in the same project.\n","willReplaceOnChanges":true},"project":{"type":"string","description":"The project name to the machine group belongs.\n","willReplaceOnChanges":true},"topic":{"type":"string","description":"The topic of a machine group.\n"}},"requiredInputs":["identifyLists","project"],"stateInputs":{"description":"Input properties used for looking up and filtering MachineGroup resources.\n","properties":{"identifyLists":{"type":"array","items":{"type":"string"},"description":"The specific machine identification, which can be an IP address or user-defined identity.\n"},"identifyType":{"type":"string","description":"The machine identification type, including IP and user-defined identity. Valid values are \"ip\" and \"userdefined\". Default to \"ip\".\n"},"name":{"type":"string","description":"The machine group name, which is unique in the same project.\n","willReplaceOnChanges":true},"project":{"type":"string","description":"The project name to the machine group belongs.\n","willReplaceOnChanges":true},"topic":{"type":"string","description":"The topic of a machine group.\n"}},"type":"object"}},"alicloud:log/ossExport:OssExport":{"description":"Log service data delivery management, this service provides the function of delivering data in logstore to oss product storage. [Refer to details](https://www.alibabacloud.com/help/en/log-service/latest/ship-logs-to-oss-new-version).\n\n\u003e **NOTE:** This resource is no longer maintained. It is recommended to use the new resource alicloud_sls_oss_export_sink.\nRefer to details.\n\n\u003e **NOTE:** Available since v1.187.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.log.Project(\"example\", {\n    projectName: `terraform-example-${_default.result}`,\n    description: \"terraform-example\",\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst exampleStore = new alicloud.log.Store(\"example\", {\n    projectName: example.projectName,\n    logstoreName: \"example-store\",\n    retentionPeriod: 3650,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst exampleOssExport = new alicloud.log.OssExport(\"example\", {\n    projectName: example.projectName,\n    logstoreName: exampleStore.logstoreName,\n    exportName: \"terraform-example\",\n    displayName: \"terraform-example\",\n    bucket: \"example-bucket\",\n    prefix: \"root\",\n    suffix: \"\",\n    bufferInterval: 300,\n    bufferSize: 250,\n    compressType: \"none\",\n    pathFormat: \"%Y/%m/%d/%H/%M\",\n    contentType: \"json\",\n    jsonEnableTag: true,\n    roleArn: \"role_arn_for_oss_write\",\n    logReadRoleArn: \"role_arn_for_sls_read\",\n    timeZone: \"+0800\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.log.Project(\"example\",\n    project_name=f\"terraform-example-{default['result']}\",\n    description=\"terraform-example\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\nexample_store = alicloud.log.Store(\"example\",\n    project_name=example.project_name,\n    logstore_name=\"example-store\",\n    retention_period=3650,\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\nexample_oss_export = alicloud.log.OssExport(\"example\",\n    project_name=example.project_name,\n    logstore_name=example_store.logstore_name,\n    export_name=\"terraform-example\",\n    display_name=\"terraform-example\",\n    bucket=\"example-bucket\",\n    prefix=\"root\",\n    suffix=\"\",\n    buffer_interval=300,\n    buffer_size=250,\n    compress_type=\"none\",\n    path_format=\"%Y/%m/%d/%H/%M\",\n    content_type=\"json\",\n    json_enable_tag=True,\n    role_arn=\"role_arn_for_oss_write\",\n    log_read_role_arn=\"role_arn_for_sls_read\",\n    time_zone=\"+0800\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Log.Project(\"example\", new()\n    {\n        ProjectName = $\"terraform-example-{@default.Result}\",\n        Description = \"terraform-example\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var exampleStore = new AliCloud.Log.Store(\"example\", new()\n    {\n        ProjectName = example.ProjectName,\n        LogstoreName = \"example-store\",\n        RetentionPeriod = 3650,\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var exampleOssExport = new AliCloud.Log.OssExport(\"example\", new()\n    {\n        ProjectName = example.ProjectName,\n        LogstoreName = exampleStore.LogstoreName,\n        ExportName = \"terraform-example\",\n        DisplayName = \"terraform-example\",\n        Bucket = \"example-bucket\",\n        Prefix = \"root\",\n        Suffix = \"\",\n        BufferInterval = 300,\n        BufferSize = 250,\n        CompressType = \"none\",\n        PathFormat = \"%Y/%m/%d/%H/%M\",\n        ContentType = \"json\",\n        JsonEnableTag = true,\n        RoleArn = \"role_arn_for_oss_write\",\n        LogReadRoleArn = \"role_arn_for_sls_read\",\n        TimeZone = \"+0800\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := log.NewStore(ctx, \"example\", \u0026log.StoreArgs{\n\t\t\tProjectName:        example.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(\"example-store\"),\n\t\t\tRetentionPeriod:    pulumi.Int(3650),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewOssExport(ctx, \"example\", \u0026log.OssExportArgs{\n\t\t\tProjectName:    example.ProjectName,\n\t\t\tLogstoreName:   exampleStore.LogstoreName,\n\t\t\tExportName:     pulumi.String(\"terraform-example\"),\n\t\t\tDisplayName:    pulumi.String(\"terraform-example\"),\n\t\t\tBucket:         pulumi.String(\"example-bucket\"),\n\t\t\tPrefix:         pulumi.String(\"root\"),\n\t\t\tSuffix:         pulumi.String(\"\"),\n\t\t\tBufferInterval: pulumi.Int(300),\n\t\t\tBufferSize:     pulumi.Int(250),\n\t\t\tCompressType:   pulumi.String(\"none\"),\n\t\t\tPathFormat:     pulumi.String(\"%Y/%m/%d/%H/%M\"),\n\t\t\tContentType:    pulumi.String(\"json\"),\n\t\t\tJsonEnableTag:  pulumi.Bool(true),\n\t\t\tRoleArn:        pulumi.String(\"role_arn_for_oss_write\"),\n\t\t\tLogReadRoleArn: pulumi.String(\"role_arn_for_sls_read\"),\n\t\t\tTimeZone:       pulumi.String(\"+0800\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.log.OssExport;\nimport com.pulumi.alicloud.log.OssExportArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .projectName(String.format(\"terraform-example-%s\", default_.result()))\n            .description(\"terraform-example\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var exampleStore = new Store(\"exampleStore\", StoreArgs.builder()\n            .projectName(example.projectName())\n            .logstoreName(\"example-store\")\n            .retentionPeriod(3650)\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var exampleOssExport = new OssExport(\"exampleOssExport\", OssExportArgs.builder()\n            .projectName(example.projectName())\n            .logstoreName(exampleStore.logstoreName())\n            .exportName(\"terraform-example\")\n            .displayName(\"terraform-example\")\n            .bucket(\"example-bucket\")\n            .prefix(\"root\")\n            .suffix(\"\")\n            .bufferInterval(300)\n            .bufferSize(250)\n            .compressType(\"none\")\n            .pathFormat(\"%Y/%m/%d/%H/%M\")\n            .contentType(\"json\")\n            .jsonEnableTag(true)\n            .roleArn(\"role_arn_for_oss_write\")\n            .logReadRoleArn(\"role_arn_for_sls_read\")\n            .timeZone(\"+0800\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:log:Project\n    properties:\n      projectName: terraform-example-${default.result}\n      description: terraform-example\n      tags:\n        Created: TF\n        For: example\n  exampleStore:\n    type: alicloud:log:Store\n    name: example\n    properties:\n      projectName: ${example.projectName}\n      logstoreName: example-store\n      retentionPeriod: 3650\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  exampleOssExport:\n    type: alicloud:log:OssExport\n    name: example\n    properties:\n      projectName: ${example.projectName}\n      logstoreName: ${exampleStore.logstoreName}\n      exportName: terraform-example\n      displayName: terraform-example\n      bucket: example-bucket\n      prefix: root\n      suffix: \"\"\n      bufferInterval: 300\n      bufferSize: 250\n      compressType: none\n      pathFormat: '%Y/%m/%d/%H/%M'\n      contentType: json\n      jsonEnableTag: true\n      roleArn: role_arn_for_oss_write\n      logReadRoleArn: role_arn_for_sls_read\n      timeZone: '+0800'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog oss export can be imported using the id or name, e.g.\n\n```sh\n$ pulumi import alicloud:log/ossExport:OssExport example tf-log-project:tf-log-logstore:tf-log-export\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the oss bucket.\n"},"bufferInterval":{"type":"integer","description":"How often is it delivered every interval.\n"},"bufferSize":{"type":"integer","description":"Automatically control the creation interval of delivery tasks and set the upper limit of an OSS object size (calculated in uncompressed), unit: `MB`.\n"},"compressType":{"type":"string","description":"OSS data storage compression method, support: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`snappy`\" pulumi-lang-dotnet=\"`Snappy`\" pulumi-lang-go=\"`snappy`\" pulumi-lang-python=\"`snappy`\" pulumi-lang-yaml=\"`snappy`\" pulumi-lang-java=\"`snappy`\"\u003e`snappy`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`zstd`\" pulumi-lang-dotnet=\"`Zstd`\" pulumi-lang-go=\"`zstd`\" pulumi-lang-python=\"`zstd`\" pulumi-lang-yaml=\"`zstd`\" pulumi-lang-java=\"`zstd`\"\u003e`zstd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gzip`\" pulumi-lang-dotnet=\"`Gzip`\" pulumi-lang-go=\"`gzip`\" pulumi-lang-python=\"`gzip`\" pulumi-lang-yaml=\"`gzip`\" pulumi-lang-java=\"`gzip`\"\u003e`gzip`\u003c/span\u003e. Among them, none means that the original data is not compressed, and snappy means that the data is compressed using the snappy algorithm, which can reduce the storage space usage of the `OSS Bucket`.\n"},"configColumns":{"type":"array","items":{"$ref":"#/types/alicloud:log/OssExportConfigColumn:OssExportConfigColumn"},"description":"Configure columns when \u003cspan pulumi-lang-nodejs=\"`contentType`\" pulumi-lang-dotnet=\"`ContentType`\" pulumi-lang-go=\"`contentType`\" pulumi-lang-python=\"`content_type`\" pulumi-lang-yaml=\"`contentType`\" pulumi-lang-java=\"`contentType`\"\u003e`content_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`parquet`\" pulumi-lang-dotnet=\"`Parquet`\" pulumi-lang-go=\"`parquet`\" pulumi-lang-python=\"`parquet`\" pulumi-lang-yaml=\"`parquet`\" pulumi-lang-java=\"`parquet`\"\u003e`parquet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`orc`\" pulumi-lang-dotnet=\"`Orc`\" pulumi-lang-go=\"`orc`\" pulumi-lang-python=\"`orc`\" pulumi-lang-yaml=\"`orc`\" pulumi-lang-java=\"`orc`\"\u003e`orc`\u003c/span\u003e.\n"},"contentType":{"type":"string","description":"Storage format, only supports three types: \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`parquet`\" pulumi-lang-dotnet=\"`Parquet`\" pulumi-lang-go=\"`parquet`\" pulumi-lang-python=\"`parquet`\" pulumi-lang-yaml=\"`parquet`\" pulumi-lang-java=\"`parquet`\"\u003e`parquet`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`orc`\" pulumi-lang-dotnet=\"`Orc`\" pulumi-lang-go=\"`orc`\" pulumi-lang-python=\"`orc`\" pulumi-lang-yaml=\"`orc`\" pulumi-lang-java=\"`orc`\"\u003e`orc`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`csv`\" pulumi-lang-dotnet=\"`Csv`\" pulumi-lang-go=\"`csv`\" pulumi-lang-python=\"`csv`\" pulumi-lang-yaml=\"`csv`\" pulumi-lang-java=\"`csv`\"\u003e`csv`\u003c/span\u003e.\n**According to the different format, please select the following parameters**\n"},"csvConfigColumns":{"type":"array","items":{"type":"string"},"description":"Field configuration in csv content_type.\n"},"csvConfigDelimiter":{"type":"string","description":"Separator configuration in csv content_type.\n"},"csvConfigEscape":{"type":"string","description":"escape in csv content_type.\n"},"csvConfigHeader":{"type":"boolean","description":"Indicates whether to write the field name to the CSV file, the default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"csvConfigLinefeed":{"type":"string","description":"lineFeed in csv content_type.\n"},"csvConfigNull":{"type":"string","description":"Invalid field content in csv content_type.\n"},"csvConfigQuote":{"type":"string","description":"Escape character in csv content_type.\n"},"displayName":{"type":"string","description":"The display name for oss export.\n"},"exportName":{"type":"string","description":"Delivery configuration name, it can only contain lowercase letters, numbers, dashes `-` and underscores `_`. It must start and end with lowercase letters or numbers, and the name must be 2 to 128 characters long.\n"},"fromTime":{"type":"integer","description":"The log from when to export to oss.\n"},"jsonEnableTag":{"type":"boolean","description":"Whether to deliver the label when \u003cspan pulumi-lang-nodejs=\"`contentType`\" pulumi-lang-dotnet=\"`ContentType`\" pulumi-lang-go=\"`contentType`\" pulumi-lang-python=\"`content_type`\" pulumi-lang-yaml=\"`contentType`\" pulumi-lang-java=\"`contentType`\"\u003e`content_type`\u003c/span\u003e = \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e.\n"},"logReadRoleArn":{"type":"string","description":"Used for logstore reading, the role should have log read policy, such as `acs:ram::13234:role/logrole`, if \u003cspan pulumi-lang-nodejs=\"`logReadRoleArn`\" pulumi-lang-dotnet=\"`LogReadRoleArn`\" pulumi-lang-go=\"`logReadRoleArn`\" pulumi-lang-python=\"`log_read_role_arn`\" pulumi-lang-yaml=\"`logReadRoleArn`\" pulumi-lang-java=\"`logReadRoleArn`\"\u003e`log_read_role_arn`\u003c/span\u003e is not set, \u003cspan pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\"\u003e`role_arn`\u003c/span\u003e is used to read logstore.\n"},"logstoreName":{"type":"string","description":"The name of the log logstore.\n"},"pathFormat":{"type":"string","description":"The OSS Bucket directory is dynamically generated according to the creation time of the export task, it cannot start with a forward slash `/`, the default value is `%Y/%m/%d/%H/%M`.\n"},"prefix":{"type":"string","description":"The data synchronized from Log Service to OSS will be stored in this directory of Bucket.\n"},"projectName":{"type":"string","description":"The name of the log project. It is the only in one Alicloud account.\n"},"roleArn":{"type":"string","description":"Used to write to oss bucket, the OSS Bucket owner creates the role mark which has the oss bucket write policy, such as `acs:ram::13234:role/logrole`.\n"},"suffix":{"type":"string","description":"The suffix for the objects in which the shipped data is stored.\n"},"timeZone":{"type":"string","description":"This time zone that is used to format the time, `+0800` e.g.\n"}},"required":["bucket","bufferInterval","bufferSize","compressType","contentType","exportName","logstoreName","pathFormat","projectName","timeZone"],"inputProperties":{"bucket":{"type":"string","description":"The name of the oss bucket.\n"},"bufferInterval":{"type":"integer","description":"How often is it delivered every interval.\n"},"bufferSize":{"type":"integer","description":"Automatically control the creation interval of delivery tasks and set the upper limit of an OSS object size (calculated in uncompressed), unit: `MB`.\n"},"compressType":{"type":"string","description":"OSS data storage compression method, support: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`snappy`\" pulumi-lang-dotnet=\"`Snappy`\" pulumi-lang-go=\"`snappy`\" pulumi-lang-python=\"`snappy`\" pulumi-lang-yaml=\"`snappy`\" pulumi-lang-java=\"`snappy`\"\u003e`snappy`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`zstd`\" pulumi-lang-dotnet=\"`Zstd`\" pulumi-lang-go=\"`zstd`\" pulumi-lang-python=\"`zstd`\" pulumi-lang-yaml=\"`zstd`\" pulumi-lang-java=\"`zstd`\"\u003e`zstd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gzip`\" pulumi-lang-dotnet=\"`Gzip`\" pulumi-lang-go=\"`gzip`\" pulumi-lang-python=\"`gzip`\" pulumi-lang-yaml=\"`gzip`\" pulumi-lang-java=\"`gzip`\"\u003e`gzip`\u003c/span\u003e. Among them, none means that the original data is not compressed, and snappy means that the data is compressed using the snappy algorithm, which can reduce the storage space usage of the `OSS Bucket`.\n"},"configColumns":{"type":"array","items":{"$ref":"#/types/alicloud:log/OssExportConfigColumn:OssExportConfigColumn"},"description":"Configure columns when \u003cspan pulumi-lang-nodejs=\"`contentType`\" pulumi-lang-dotnet=\"`ContentType`\" pulumi-lang-go=\"`contentType`\" pulumi-lang-python=\"`content_type`\" pulumi-lang-yaml=\"`contentType`\" pulumi-lang-java=\"`contentType`\"\u003e`content_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`parquet`\" pulumi-lang-dotnet=\"`Parquet`\" pulumi-lang-go=\"`parquet`\" pulumi-lang-python=\"`parquet`\" pulumi-lang-yaml=\"`parquet`\" pulumi-lang-java=\"`parquet`\"\u003e`parquet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`orc`\" pulumi-lang-dotnet=\"`Orc`\" pulumi-lang-go=\"`orc`\" pulumi-lang-python=\"`orc`\" pulumi-lang-yaml=\"`orc`\" pulumi-lang-java=\"`orc`\"\u003e`orc`\u003c/span\u003e.\n"},"contentType":{"type":"string","description":"Storage format, only supports three types: \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`parquet`\" pulumi-lang-dotnet=\"`Parquet`\" pulumi-lang-go=\"`parquet`\" pulumi-lang-python=\"`parquet`\" pulumi-lang-yaml=\"`parquet`\" pulumi-lang-java=\"`parquet`\"\u003e`parquet`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`orc`\" pulumi-lang-dotnet=\"`Orc`\" pulumi-lang-go=\"`orc`\" pulumi-lang-python=\"`orc`\" pulumi-lang-yaml=\"`orc`\" pulumi-lang-java=\"`orc`\"\u003e`orc`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`csv`\" pulumi-lang-dotnet=\"`Csv`\" pulumi-lang-go=\"`csv`\" pulumi-lang-python=\"`csv`\" pulumi-lang-yaml=\"`csv`\" pulumi-lang-java=\"`csv`\"\u003e`csv`\u003c/span\u003e.\n**According to the different format, please select the following parameters**\n"},"csvConfigColumns":{"type":"array","items":{"type":"string"},"description":"Field configuration in csv content_type.\n"},"csvConfigDelimiter":{"type":"string","description":"Separator configuration in csv content_type.\n"},"csvConfigEscape":{"type":"string","description":"escape in csv content_type.\n"},"csvConfigHeader":{"type":"boolean","description":"Indicates whether to write the field name to the CSV file, the default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"csvConfigLinefeed":{"type":"string","description":"lineFeed in csv content_type.\n"},"csvConfigNull":{"type":"string","description":"Invalid field content in csv content_type.\n"},"csvConfigQuote":{"type":"string","description":"Escape character in csv content_type.\n"},"displayName":{"type":"string","description":"The display name for oss export.\n"},"exportName":{"type":"string","description":"Delivery configuration name, it can only contain lowercase letters, numbers, dashes `-` and underscores `_`. It must start and end with lowercase letters or numbers, and the name must be 2 to 128 characters long.\n","willReplaceOnChanges":true},"fromTime":{"type":"integer","description":"The log from when to export to oss.\n"},"jsonEnableTag":{"type":"boolean","description":"Whether to deliver the label when \u003cspan pulumi-lang-nodejs=\"`contentType`\" pulumi-lang-dotnet=\"`ContentType`\" pulumi-lang-go=\"`contentType`\" pulumi-lang-python=\"`content_type`\" pulumi-lang-yaml=\"`contentType`\" pulumi-lang-java=\"`contentType`\"\u003e`content_type`\u003c/span\u003e = \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e.\n"},"logReadRoleArn":{"type":"string","description":"Used for logstore reading, the role should have log read policy, such as `acs:ram::13234:role/logrole`, if \u003cspan pulumi-lang-nodejs=\"`logReadRoleArn`\" pulumi-lang-dotnet=\"`LogReadRoleArn`\" pulumi-lang-go=\"`logReadRoleArn`\" pulumi-lang-python=\"`log_read_role_arn`\" pulumi-lang-yaml=\"`logReadRoleArn`\" pulumi-lang-java=\"`logReadRoleArn`\"\u003e`log_read_role_arn`\u003c/span\u003e is not set, \u003cspan pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\"\u003e`role_arn`\u003c/span\u003e is used to read logstore.\n"},"logstoreName":{"type":"string","description":"The name of the log logstore.\n","willReplaceOnChanges":true},"pathFormat":{"type":"string","description":"The OSS Bucket directory is dynamically generated according to the creation time of the export task, it cannot start with a forward slash `/`, the default value is `%Y/%m/%d/%H/%M`.\n"},"prefix":{"type":"string","description":"The data synchronized from Log Service to OSS will be stored in this directory of Bucket.\n"},"projectName":{"type":"string","description":"The name of the log project. It is the only in one Alicloud account.\n","willReplaceOnChanges":true},"roleArn":{"type":"string","description":"Used to write to oss bucket, the OSS Bucket owner creates the role mark which has the oss bucket write policy, such as `acs:ram::13234:role/logrole`.\n"},"suffix":{"type":"string","description":"The suffix for the objects in which the shipped data is stored.\n"},"timeZone":{"type":"string","description":"This time zone that is used to format the time, `+0800` e.g.\n"}},"requiredInputs":["bucket","bufferInterval","bufferSize","contentType","exportName","logstoreName","pathFormat","projectName","timeZone"],"stateInputs":{"description":"Input properties used for looking up and filtering OssExport resources.\n","properties":{"bucket":{"type":"string","description":"The name of the oss bucket.\n"},"bufferInterval":{"type":"integer","description":"How often is it delivered every interval.\n"},"bufferSize":{"type":"integer","description":"Automatically control the creation interval of delivery tasks and set the upper limit of an OSS object size (calculated in uncompressed), unit: `MB`.\n"},"compressType":{"type":"string","description":"OSS data storage compression method, support: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`snappy`\" pulumi-lang-dotnet=\"`Snappy`\" pulumi-lang-go=\"`snappy`\" pulumi-lang-python=\"`snappy`\" pulumi-lang-yaml=\"`snappy`\" pulumi-lang-java=\"`snappy`\"\u003e`snappy`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`zstd`\" pulumi-lang-dotnet=\"`Zstd`\" pulumi-lang-go=\"`zstd`\" pulumi-lang-python=\"`zstd`\" pulumi-lang-yaml=\"`zstd`\" pulumi-lang-java=\"`zstd`\"\u003e`zstd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gzip`\" pulumi-lang-dotnet=\"`Gzip`\" pulumi-lang-go=\"`gzip`\" pulumi-lang-python=\"`gzip`\" pulumi-lang-yaml=\"`gzip`\" pulumi-lang-java=\"`gzip`\"\u003e`gzip`\u003c/span\u003e. Among them, none means that the original data is not compressed, and snappy means that the data is compressed using the snappy algorithm, which can reduce the storage space usage of the `OSS Bucket`.\n"},"configColumns":{"type":"array","items":{"$ref":"#/types/alicloud:log/OssExportConfigColumn:OssExportConfigColumn"},"description":"Configure columns when \u003cspan pulumi-lang-nodejs=\"`contentType`\" pulumi-lang-dotnet=\"`ContentType`\" pulumi-lang-go=\"`contentType`\" pulumi-lang-python=\"`content_type`\" pulumi-lang-yaml=\"`contentType`\" pulumi-lang-java=\"`contentType`\"\u003e`content_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`parquet`\" pulumi-lang-dotnet=\"`Parquet`\" pulumi-lang-go=\"`parquet`\" pulumi-lang-python=\"`parquet`\" pulumi-lang-yaml=\"`parquet`\" pulumi-lang-java=\"`parquet`\"\u003e`parquet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`orc`\" pulumi-lang-dotnet=\"`Orc`\" pulumi-lang-go=\"`orc`\" pulumi-lang-python=\"`orc`\" pulumi-lang-yaml=\"`orc`\" pulumi-lang-java=\"`orc`\"\u003e`orc`\u003c/span\u003e.\n"},"contentType":{"type":"string","description":"Storage format, only supports three types: \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`parquet`\" pulumi-lang-dotnet=\"`Parquet`\" pulumi-lang-go=\"`parquet`\" pulumi-lang-python=\"`parquet`\" pulumi-lang-yaml=\"`parquet`\" pulumi-lang-java=\"`parquet`\"\u003e`parquet`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`orc`\" pulumi-lang-dotnet=\"`Orc`\" pulumi-lang-go=\"`orc`\" pulumi-lang-python=\"`orc`\" pulumi-lang-yaml=\"`orc`\" pulumi-lang-java=\"`orc`\"\u003e`orc`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`csv`\" pulumi-lang-dotnet=\"`Csv`\" pulumi-lang-go=\"`csv`\" pulumi-lang-python=\"`csv`\" pulumi-lang-yaml=\"`csv`\" pulumi-lang-java=\"`csv`\"\u003e`csv`\u003c/span\u003e.\n**According to the different format, please select the following parameters**\n"},"csvConfigColumns":{"type":"array","items":{"type":"string"},"description":"Field configuration in csv content_type.\n"},"csvConfigDelimiter":{"type":"string","description":"Separator configuration in csv content_type.\n"},"csvConfigEscape":{"type":"string","description":"escape in csv content_type.\n"},"csvConfigHeader":{"type":"boolean","description":"Indicates whether to write the field name to the CSV file, the default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"csvConfigLinefeed":{"type":"string","description":"lineFeed in csv content_type.\n"},"csvConfigNull":{"type":"string","description":"Invalid field content in csv content_type.\n"},"csvConfigQuote":{"type":"string","description":"Escape character in csv content_type.\n"},"displayName":{"type":"string","description":"The display name for oss export.\n"},"exportName":{"type":"string","description":"Delivery configuration name, it can only contain lowercase letters, numbers, dashes `-` and underscores `_`. It must start and end with lowercase letters or numbers, and the name must be 2 to 128 characters long.\n","willReplaceOnChanges":true},"fromTime":{"type":"integer","description":"The log from when to export to oss.\n"},"jsonEnableTag":{"type":"boolean","description":"Whether to deliver the label when \u003cspan pulumi-lang-nodejs=\"`contentType`\" pulumi-lang-dotnet=\"`ContentType`\" pulumi-lang-go=\"`contentType`\" pulumi-lang-python=\"`content_type`\" pulumi-lang-yaml=\"`contentType`\" pulumi-lang-java=\"`contentType`\"\u003e`content_type`\u003c/span\u003e = \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e.\n"},"logReadRoleArn":{"type":"string","description":"Used for logstore reading, the role should have log read policy, such as `acs:ram::13234:role/logrole`, if \u003cspan pulumi-lang-nodejs=\"`logReadRoleArn`\" pulumi-lang-dotnet=\"`LogReadRoleArn`\" pulumi-lang-go=\"`logReadRoleArn`\" pulumi-lang-python=\"`log_read_role_arn`\" pulumi-lang-yaml=\"`logReadRoleArn`\" pulumi-lang-java=\"`logReadRoleArn`\"\u003e`log_read_role_arn`\u003c/span\u003e is not set, \u003cspan pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\"\u003e`role_arn`\u003c/span\u003e is used to read logstore.\n"},"logstoreName":{"type":"string","description":"The name of the log logstore.\n","willReplaceOnChanges":true},"pathFormat":{"type":"string","description":"The OSS Bucket directory is dynamically generated according to the creation time of the export task, it cannot start with a forward slash `/`, the default value is `%Y/%m/%d/%H/%M`.\n"},"prefix":{"type":"string","description":"The data synchronized from Log Service to OSS will be stored in this directory of Bucket.\n"},"projectName":{"type":"string","description":"The name of the log project. It is the only in one Alicloud account.\n","willReplaceOnChanges":true},"roleArn":{"type":"string","description":"Used to write to oss bucket, the OSS Bucket owner creates the role mark which has the oss bucket write policy, such as `acs:ram::13234:role/logrole`.\n"},"suffix":{"type":"string","description":"The suffix for the objects in which the shipped data is stored.\n"},"timeZone":{"type":"string","description":"This time zone that is used to format the time, `+0800` e.g.\n"}},"type":"object"}},"alicloud:log/ossShipper:OssShipper":{"description":"Log service data delivery management, this service provides the function of delivering data in logstore to oss product storage.\n[Refer to details](https://www.alibabacloud.com/help/en/doc-detail/43724.htm).\n\n\u003e **NOTE:** Available since v1.121.0.\n\n\u003e **DEPRECATED:**  This resource has been deprecated from version `1.215.0`. Please use new resource alicloud_log_oss_export.\n\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.log.Project(\"example\", {\n    name: `terraform-example-${_default.result}`,\n    description: \"terraform-example\",\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst exampleStore = new alicloud.log.Store(\"example\", {\n    project: example.name,\n    name: \"example-store\",\n    retentionPeriod: 3650,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst exampleOssShipper = new alicloud.log.OssShipper(\"example\", {\n    projectName: example.name,\n    logstoreName: exampleStore.name,\n    shipperName: \"terraform-example\",\n    ossBucket: \"example_bucket\",\n    ossPrefix: \"root\",\n    bufferInterval: 300,\n    bufferSize: 250,\n    compressType: \"none\",\n    pathFormat: \"%Y/%m/%d/%H/%M\",\n    format: \"json\",\n    jsonEnableTag: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.log.Project(\"example\",\n    name=f\"terraform-example-{default['result']}\",\n    description=\"terraform-example\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\nexample_store = alicloud.log.Store(\"example\",\n    project=example.name,\n    name=\"example-store\",\n    retention_period=3650,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\nexample_oss_shipper = alicloud.log.OssShipper(\"example\",\n    project_name=example.name,\n    logstore_name=example_store.name,\n    shipper_name=\"terraform-example\",\n    oss_bucket=\"example_bucket\",\n    oss_prefix=\"root\",\n    buffer_interval=300,\n    buffer_size=250,\n    compress_type=\"none\",\n    path_format=\"%Y/%m/%d/%H/%M\",\n    format=\"json\",\n    json_enable_tag=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Log.Project(\"example\", new()\n    {\n        Name = $\"terraform-example-{@default.Result}\",\n        Description = \"terraform-example\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var exampleStore = new AliCloud.Log.Store(\"example\", new()\n    {\n        Project = example.Name,\n        Name = \"example-store\",\n        RetentionPeriod = 3650,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var exampleOssShipper = new AliCloud.Log.OssShipper(\"example\", new()\n    {\n        ProjectName = example.Name,\n        LogstoreName = exampleStore.Name,\n        ShipperName = \"terraform-example\",\n        OssBucket = \"example_bucket\",\n        OssPrefix = \"root\",\n        BufferInterval = 300,\n        BufferSize = 250,\n        CompressType = \"none\",\n        PathFormat = \"%Y/%m/%d/%H/%M\",\n        Format = \"json\",\n        JsonEnableTag = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tName:        pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := log.NewStore(ctx, \"example\", \u0026log.StoreArgs{\n\t\t\tProject:            example.Name,\n\t\t\tName:               pulumi.String(\"example-store\"),\n\t\t\tRetentionPeriod:    pulumi.Int(3650),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewOssShipper(ctx, \"example\", \u0026log.OssShipperArgs{\n\t\t\tProjectName:    example.Name,\n\t\t\tLogstoreName:   exampleStore.Name,\n\t\t\tShipperName:    pulumi.String(\"terraform-example\"),\n\t\t\tOssBucket:      pulumi.String(\"example_bucket\"),\n\t\t\tOssPrefix:      pulumi.String(\"root\"),\n\t\t\tBufferInterval: pulumi.Int(300),\n\t\t\tBufferSize:     pulumi.Int(250),\n\t\t\tCompressType:   pulumi.String(\"none\"),\n\t\t\tPathFormat:     pulumi.String(\"%Y/%m/%d/%H/%M\"),\n\t\t\tFormat:         pulumi.String(\"json\"),\n\t\t\tJsonEnableTag:  pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.log.OssShipper;\nimport com.pulumi.alicloud.log.OssShipperArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(String.format(\"terraform-example-%s\", default_.result()))\n            .description(\"terraform-example\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var exampleStore = new Store(\"exampleStore\", StoreArgs.builder()\n            .project(example.name())\n            .name(\"example-store\")\n            .retentionPeriod(3650)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var exampleOssShipper = new OssShipper(\"exampleOssShipper\", OssShipperArgs.builder()\n            .projectName(example.name())\n            .logstoreName(exampleStore.name())\n            .shipperName(\"terraform-example\")\n            .ossBucket(\"example_bucket\")\n            .ossPrefix(\"root\")\n            .bufferInterval(300)\n            .bufferSize(250)\n            .compressType(\"none\")\n            .pathFormat(\"%Y/%m/%d/%H/%M\")\n            .format(\"json\")\n            .jsonEnableTag(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:log:Project\n    properties:\n      name: terraform-example-${default.result}\n      description: terraform-example\n      tags:\n        Created: TF\n        For: example\n  exampleStore:\n    type: alicloud:log:Store\n    name: example\n    properties:\n      project: ${example.name}\n      name: example-store\n      retentionPeriod: 3650\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  exampleOssShipper:\n    type: alicloud:log:OssShipper\n    name: example\n    properties:\n      projectName: ${example.name}\n      logstoreName: ${exampleStore.name}\n      shipperName: terraform-example\n      ossBucket: example_bucket\n      ossPrefix: root\n      bufferInterval: 300\n      bufferSize: 250\n      compressType: none\n      pathFormat: '%Y/%m/%d/%H/%M'\n      format: json\n      jsonEnableTag: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog oss shipper can be imported using the id or name, e.g.\n\n```sh\n$ pulumi import alicloud:log/ossShipper:OssShipper example tf-log-project:tf-log-logstore:tf-log-shipper\n```\n\n","properties":{"bufferInterval":{"type":"integer","description":"How often is it delivered every interval.\n"},"bufferSize":{"type":"integer","description":"Automatically control the creation interval of delivery tasks and set the upper limit of an OSS object size (calculated in uncompressed), unit: `MB`.\n"},"compressType":{"type":"string","description":"OSS data storage compression method, support: none, snappy. Among them, none means that the original data is not compressed, and snappy means that the data is compressed using the snappy algorithm, which can reduce the storage space usage of the `OSS Bucket`.\n"},"csvConfigColumns":{"type":"array","items":{"type":"string"}},"csvConfigDelimiter":{"type":"string"},"csvConfigHeader":{"type":"boolean"},"csvConfigLinefeed":{"type":"string"},"csvConfigNullidentifier":{"type":"string"},"csvConfigQuote":{"type":"string"},"format":{"type":"string","description":"Storage format, only supports three types: \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`parquet`\" pulumi-lang-dotnet=\"`Parquet`\" pulumi-lang-go=\"`parquet`\" pulumi-lang-python=\"`parquet`\" pulumi-lang-yaml=\"`parquet`\" pulumi-lang-java=\"`parquet`\"\u003e`parquet`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`csv`\" pulumi-lang-dotnet=\"`Csv`\" pulumi-lang-go=\"`csv`\" pulumi-lang-python=\"`csv`\" pulumi-lang-yaml=\"`csv`\" pulumi-lang-java=\"`csv`\"\u003e`csv`\u003c/span\u003e.\n**According to the different format, please select the following parameters**\n- format = \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e\n\u003cspan pulumi-lang-nodejs=\"`jsonEnableTag`\" pulumi-lang-dotnet=\"`JsonEnableTag`\" pulumi-lang-go=\"`jsonEnableTag`\" pulumi-lang-python=\"`json_enable_tag`\" pulumi-lang-yaml=\"`jsonEnableTag`\" pulumi-lang-java=\"`jsonEnableTag`\"\u003e`json_enable_tag`\u003c/span\u003e - (Optional) Whether to deliver the label.\n- format = \u003cspan pulumi-lang-nodejs=\"`csv`\" pulumi-lang-dotnet=\"`Csv`\" pulumi-lang-go=\"`csv`\" pulumi-lang-python=\"`csv`\" pulumi-lang-yaml=\"`csv`\" pulumi-lang-java=\"`csv`\"\u003e`csv`\u003c/span\u003e\n\u003cspan pulumi-lang-nodejs=\"`csvConfigDelimiter`\" pulumi-lang-dotnet=\"`CsvConfigDelimiter`\" pulumi-lang-go=\"`csvConfigDelimiter`\" pulumi-lang-python=\"`csv_config_delimiter`\" pulumi-lang-yaml=\"`csvConfigDelimiter`\" pulumi-lang-java=\"`csvConfigDelimiter`\"\u003e`csv_config_delimiter`\u003c/span\u003e - (Optional) Separator configuration in csv configuration format.\n\u003cspan pulumi-lang-nodejs=\"`csvConfigColumns`\" pulumi-lang-dotnet=\"`CsvConfigColumns`\" pulumi-lang-go=\"`csvConfigColumns`\" pulumi-lang-python=\"`csv_config_columns`\" pulumi-lang-yaml=\"`csvConfigColumns`\" pulumi-lang-java=\"`csvConfigColumns`\"\u003e`csv_config_columns`\u003c/span\u003e - (Optional) Field configuration in csv configuration format.\n\u003cspan pulumi-lang-nodejs=\"`csvConfigNullidentifier`\" pulumi-lang-dotnet=\"`CsvConfigNullidentifier`\" pulumi-lang-go=\"`csvConfigNullidentifier`\" pulumi-lang-python=\"`csv_config_nullidentifier`\" pulumi-lang-yaml=\"`csvConfigNullidentifier`\" pulumi-lang-java=\"`csvConfigNullidentifier`\"\u003e`csv_config_nullidentifier`\u003c/span\u003e - (Optional) Invalid field content.\n\u003cspan pulumi-lang-nodejs=\"`csvConfigQuote`\" pulumi-lang-dotnet=\"`CsvConfigQuote`\" pulumi-lang-go=\"`csvConfigQuote`\" pulumi-lang-python=\"`csv_config_quote`\" pulumi-lang-yaml=\"`csvConfigQuote`\" pulumi-lang-java=\"`csvConfigQuote`\"\u003e`csv_config_quote`\u003c/span\u003e - (Optional) Escape character under csv configuration.\n\u003cspan pulumi-lang-nodejs=\"`csvConfigHeader`\" pulumi-lang-dotnet=\"`CsvConfigHeader`\" pulumi-lang-go=\"`csvConfigHeader`\" pulumi-lang-python=\"`csv_config_header`\" pulumi-lang-yaml=\"`csvConfigHeader`\" pulumi-lang-java=\"`csvConfigHeader`\"\u003e`csv_config_header`\u003c/span\u003e - (Optional) Indicates whether to write the field name to the CSV file, the default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\u003cspan pulumi-lang-nodejs=\"`csvConfigLinefeed`\" pulumi-lang-dotnet=\"`CsvConfigLinefeed`\" pulumi-lang-go=\"`csvConfigLinefeed`\" pulumi-lang-python=\"`csv_config_linefeed`\" pulumi-lang-yaml=\"`csvConfigLinefeed`\" pulumi-lang-java=\"`csvConfigLinefeed`\"\u003e`csv_config_linefeed`\u003c/span\u003e - (Optional) lineFeed in csv configuration.\n- format = \u003cspan pulumi-lang-nodejs=\"`parquet`\" pulumi-lang-dotnet=\"`Parquet`\" pulumi-lang-go=\"`parquet`\" pulumi-lang-python=\"`parquet`\" pulumi-lang-yaml=\"`parquet`\" pulumi-lang-java=\"`parquet`\"\u003e`parquet`\u003c/span\u003e\n\u003cspan pulumi-lang-nodejs=\"`parquetConfig`\" pulumi-lang-dotnet=\"`ParquetConfig`\" pulumi-lang-go=\"`parquetConfig`\" pulumi-lang-python=\"`parquet_config`\" pulumi-lang-yaml=\"`parquetConfig`\" pulumi-lang-java=\"`parquetConfig`\"\u003e`parquet_config`\u003c/span\u003e - (Optional) Configure to use parquet storage format.\n\u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e - (Required) The name of the key.\n\u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e - (Required) Type of configuration name.\n"},"jsonEnableTag":{"type":"boolean"},"logstoreName":{"type":"string","description":"The name of the log logstore.\n"},"ossBucket":{"type":"string","description":"The name of the oss bucket.\n"},"ossPrefix":{"type":"string","description":"The data synchronized from Log Service to OSS will be stored in this directory of Bucket.\n"},"parquetConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:log/OssShipperParquetConfig:OssShipperParquetConfig"}},"pathFormat":{"type":"string","description":"The OSS Bucket directory is dynamically generated according to the creation time of the shipper task, it cannot start with a forward slash `/`, the default value is `%Y/%m/%d/%H/%M`.\n"},"projectName":{"type":"string","description":"The name of the log project. It is the only in one Alicloud account.\n"},"roleArn":{"type":"string","description":"Used for access control, the OSS Bucket owner creates the role mark, such as `acs:ram::13234:role/logrole`\n"},"shipperName":{"type":"string","description":"Delivery configuration name, it can only contain lowercase letters, numbers, dashes `-` and underscores `_`. It must start and end with lowercase letters or numbers, and the name must be 2 to 128 characters long.\n"}},"required":["bufferInterval","bufferSize","format","logstoreName","ossBucket","pathFormat","projectName","shipperName"],"inputProperties":{"bufferInterval":{"type":"integer","description":"How often is it delivered every interval.\n"},"bufferSize":{"type":"integer","description":"Automatically control the creation interval of delivery tasks and set the upper limit of an OSS object size (calculated in uncompressed), unit: `MB`.\n"},"compressType":{"type":"string","description":"OSS data storage compression method, support: none, snappy. Among them, none means that the original data is not compressed, and snappy means that the data is compressed using the snappy algorithm, which can reduce the storage space usage of the `OSS Bucket`.\n"},"csvConfigColumns":{"type":"array","items":{"type":"string"}},"csvConfigDelimiter":{"type":"string"},"csvConfigHeader":{"type":"boolean"},"csvConfigLinefeed":{"type":"string"},"csvConfigNullidentifier":{"type":"string"},"csvConfigQuote":{"type":"string"},"format":{"type":"string","description":"Storage format, only supports three types: \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`parquet`\" pulumi-lang-dotnet=\"`Parquet`\" pulumi-lang-go=\"`parquet`\" pulumi-lang-python=\"`parquet`\" pulumi-lang-yaml=\"`parquet`\" pulumi-lang-java=\"`parquet`\"\u003e`parquet`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`csv`\" pulumi-lang-dotnet=\"`Csv`\" pulumi-lang-go=\"`csv`\" pulumi-lang-python=\"`csv`\" pulumi-lang-yaml=\"`csv`\" pulumi-lang-java=\"`csv`\"\u003e`csv`\u003c/span\u003e.\n**According to the different format, please select the following parameters**\n- format = \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e\n\u003cspan pulumi-lang-nodejs=\"`jsonEnableTag`\" pulumi-lang-dotnet=\"`JsonEnableTag`\" pulumi-lang-go=\"`jsonEnableTag`\" pulumi-lang-python=\"`json_enable_tag`\" pulumi-lang-yaml=\"`jsonEnableTag`\" pulumi-lang-java=\"`jsonEnableTag`\"\u003e`json_enable_tag`\u003c/span\u003e - (Optional) Whether to deliver the label.\n- format = \u003cspan pulumi-lang-nodejs=\"`csv`\" pulumi-lang-dotnet=\"`Csv`\" pulumi-lang-go=\"`csv`\" pulumi-lang-python=\"`csv`\" pulumi-lang-yaml=\"`csv`\" pulumi-lang-java=\"`csv`\"\u003e`csv`\u003c/span\u003e\n\u003cspan pulumi-lang-nodejs=\"`csvConfigDelimiter`\" pulumi-lang-dotnet=\"`CsvConfigDelimiter`\" pulumi-lang-go=\"`csvConfigDelimiter`\" pulumi-lang-python=\"`csv_config_delimiter`\" pulumi-lang-yaml=\"`csvConfigDelimiter`\" pulumi-lang-java=\"`csvConfigDelimiter`\"\u003e`csv_config_delimiter`\u003c/span\u003e - (Optional) Separator configuration in csv configuration format.\n\u003cspan pulumi-lang-nodejs=\"`csvConfigColumns`\" pulumi-lang-dotnet=\"`CsvConfigColumns`\" pulumi-lang-go=\"`csvConfigColumns`\" pulumi-lang-python=\"`csv_config_columns`\" pulumi-lang-yaml=\"`csvConfigColumns`\" pulumi-lang-java=\"`csvConfigColumns`\"\u003e`csv_config_columns`\u003c/span\u003e - (Optional) Field configuration in csv configuration format.\n\u003cspan pulumi-lang-nodejs=\"`csvConfigNullidentifier`\" pulumi-lang-dotnet=\"`CsvConfigNullidentifier`\" pulumi-lang-go=\"`csvConfigNullidentifier`\" pulumi-lang-python=\"`csv_config_nullidentifier`\" pulumi-lang-yaml=\"`csvConfigNullidentifier`\" pulumi-lang-java=\"`csvConfigNullidentifier`\"\u003e`csv_config_nullidentifier`\u003c/span\u003e - (Optional) Invalid field content.\n\u003cspan pulumi-lang-nodejs=\"`csvConfigQuote`\" pulumi-lang-dotnet=\"`CsvConfigQuote`\" pulumi-lang-go=\"`csvConfigQuote`\" pulumi-lang-python=\"`csv_config_quote`\" pulumi-lang-yaml=\"`csvConfigQuote`\" pulumi-lang-java=\"`csvConfigQuote`\"\u003e`csv_config_quote`\u003c/span\u003e - (Optional) Escape character under csv configuration.\n\u003cspan pulumi-lang-nodejs=\"`csvConfigHeader`\" pulumi-lang-dotnet=\"`CsvConfigHeader`\" pulumi-lang-go=\"`csvConfigHeader`\" pulumi-lang-python=\"`csv_config_header`\" pulumi-lang-yaml=\"`csvConfigHeader`\" pulumi-lang-java=\"`csvConfigHeader`\"\u003e`csv_config_header`\u003c/span\u003e - (Optional) Indicates whether to write the field name to the CSV file, the default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\u003cspan pulumi-lang-nodejs=\"`csvConfigLinefeed`\" pulumi-lang-dotnet=\"`CsvConfigLinefeed`\" pulumi-lang-go=\"`csvConfigLinefeed`\" pulumi-lang-python=\"`csv_config_linefeed`\" pulumi-lang-yaml=\"`csvConfigLinefeed`\" pulumi-lang-java=\"`csvConfigLinefeed`\"\u003e`csv_config_linefeed`\u003c/span\u003e - (Optional) lineFeed in csv configuration.\n- format = \u003cspan pulumi-lang-nodejs=\"`parquet`\" pulumi-lang-dotnet=\"`Parquet`\" pulumi-lang-go=\"`parquet`\" pulumi-lang-python=\"`parquet`\" pulumi-lang-yaml=\"`parquet`\" pulumi-lang-java=\"`parquet`\"\u003e`parquet`\u003c/span\u003e\n\u003cspan pulumi-lang-nodejs=\"`parquetConfig`\" pulumi-lang-dotnet=\"`ParquetConfig`\" pulumi-lang-go=\"`parquetConfig`\" pulumi-lang-python=\"`parquet_config`\" pulumi-lang-yaml=\"`parquetConfig`\" pulumi-lang-java=\"`parquetConfig`\"\u003e`parquet_config`\u003c/span\u003e - (Optional) Configure to use parquet storage format.\n\u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e - (Required) The name of the key.\n\u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e - (Required) Type of configuration name.\n"},"jsonEnableTag":{"type":"boolean"},"logstoreName":{"type":"string","description":"The name of the log logstore.\n","willReplaceOnChanges":true},"ossBucket":{"type":"string","description":"The name of the oss bucket.\n"},"ossPrefix":{"type":"string","description":"The data synchronized from Log Service to OSS will be stored in this directory of Bucket.\n"},"parquetConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:log/OssShipperParquetConfig:OssShipperParquetConfig"}},"pathFormat":{"type":"string","description":"The OSS Bucket directory is dynamically generated according to the creation time of the shipper task, it cannot start with a forward slash `/`, the default value is `%Y/%m/%d/%H/%M`.\n"},"projectName":{"type":"string","description":"The name of the log project. It is the only in one Alicloud account.\n","willReplaceOnChanges":true},"roleArn":{"type":"string","description":"Used for access control, the OSS Bucket owner creates the role mark, such as `acs:ram::13234:role/logrole`\n"},"shipperName":{"type":"string","description":"Delivery configuration name, it can only contain lowercase letters, numbers, dashes `-` and underscores `_`. It must start and end with lowercase letters or numbers, and the name must be 2 to 128 characters long.\n","willReplaceOnChanges":true}},"requiredInputs":["bufferInterval","bufferSize","format","logstoreName","ossBucket","pathFormat","projectName","shipperName"],"stateInputs":{"description":"Input properties used for looking up and filtering OssShipper resources.\n","properties":{"bufferInterval":{"type":"integer","description":"How often is it delivered every interval.\n"},"bufferSize":{"type":"integer","description":"Automatically control the creation interval of delivery tasks and set the upper limit of an OSS object size (calculated in uncompressed), unit: `MB`.\n"},"compressType":{"type":"string","description":"OSS data storage compression method, support: none, snappy. Among them, none means that the original data is not compressed, and snappy means that the data is compressed using the snappy algorithm, which can reduce the storage space usage of the `OSS Bucket`.\n"},"csvConfigColumns":{"type":"array","items":{"type":"string"}},"csvConfigDelimiter":{"type":"string"},"csvConfigHeader":{"type":"boolean"},"csvConfigLinefeed":{"type":"string"},"csvConfigNullidentifier":{"type":"string"},"csvConfigQuote":{"type":"string"},"format":{"type":"string","description":"Storage format, only supports three types: \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`parquet`\" pulumi-lang-dotnet=\"`Parquet`\" pulumi-lang-go=\"`parquet`\" pulumi-lang-python=\"`parquet`\" pulumi-lang-yaml=\"`parquet`\" pulumi-lang-java=\"`parquet`\"\u003e`parquet`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`csv`\" pulumi-lang-dotnet=\"`Csv`\" pulumi-lang-go=\"`csv`\" pulumi-lang-python=\"`csv`\" pulumi-lang-yaml=\"`csv`\" pulumi-lang-java=\"`csv`\"\u003e`csv`\u003c/span\u003e.\n**According to the different format, please select the following parameters**\n- format = \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e\n\u003cspan pulumi-lang-nodejs=\"`jsonEnableTag`\" pulumi-lang-dotnet=\"`JsonEnableTag`\" pulumi-lang-go=\"`jsonEnableTag`\" pulumi-lang-python=\"`json_enable_tag`\" pulumi-lang-yaml=\"`jsonEnableTag`\" pulumi-lang-java=\"`jsonEnableTag`\"\u003e`json_enable_tag`\u003c/span\u003e - (Optional) Whether to deliver the label.\n- format = \u003cspan pulumi-lang-nodejs=\"`csv`\" pulumi-lang-dotnet=\"`Csv`\" pulumi-lang-go=\"`csv`\" pulumi-lang-python=\"`csv`\" pulumi-lang-yaml=\"`csv`\" pulumi-lang-java=\"`csv`\"\u003e`csv`\u003c/span\u003e\n\u003cspan pulumi-lang-nodejs=\"`csvConfigDelimiter`\" pulumi-lang-dotnet=\"`CsvConfigDelimiter`\" pulumi-lang-go=\"`csvConfigDelimiter`\" pulumi-lang-python=\"`csv_config_delimiter`\" pulumi-lang-yaml=\"`csvConfigDelimiter`\" pulumi-lang-java=\"`csvConfigDelimiter`\"\u003e`csv_config_delimiter`\u003c/span\u003e - (Optional) Separator configuration in csv configuration format.\n\u003cspan pulumi-lang-nodejs=\"`csvConfigColumns`\" pulumi-lang-dotnet=\"`CsvConfigColumns`\" pulumi-lang-go=\"`csvConfigColumns`\" pulumi-lang-python=\"`csv_config_columns`\" pulumi-lang-yaml=\"`csvConfigColumns`\" pulumi-lang-java=\"`csvConfigColumns`\"\u003e`csv_config_columns`\u003c/span\u003e - (Optional) Field configuration in csv configuration format.\n\u003cspan pulumi-lang-nodejs=\"`csvConfigNullidentifier`\" pulumi-lang-dotnet=\"`CsvConfigNullidentifier`\" pulumi-lang-go=\"`csvConfigNullidentifier`\" pulumi-lang-python=\"`csv_config_nullidentifier`\" pulumi-lang-yaml=\"`csvConfigNullidentifier`\" pulumi-lang-java=\"`csvConfigNullidentifier`\"\u003e`csv_config_nullidentifier`\u003c/span\u003e - (Optional) Invalid field content.\n\u003cspan pulumi-lang-nodejs=\"`csvConfigQuote`\" pulumi-lang-dotnet=\"`CsvConfigQuote`\" pulumi-lang-go=\"`csvConfigQuote`\" pulumi-lang-python=\"`csv_config_quote`\" pulumi-lang-yaml=\"`csvConfigQuote`\" pulumi-lang-java=\"`csvConfigQuote`\"\u003e`csv_config_quote`\u003c/span\u003e - (Optional) Escape character under csv configuration.\n\u003cspan pulumi-lang-nodejs=\"`csvConfigHeader`\" pulumi-lang-dotnet=\"`CsvConfigHeader`\" pulumi-lang-go=\"`csvConfigHeader`\" pulumi-lang-python=\"`csv_config_header`\" pulumi-lang-yaml=\"`csvConfigHeader`\" pulumi-lang-java=\"`csvConfigHeader`\"\u003e`csv_config_header`\u003c/span\u003e - (Optional) Indicates whether to write the field name to the CSV file, the default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\u003cspan pulumi-lang-nodejs=\"`csvConfigLinefeed`\" pulumi-lang-dotnet=\"`CsvConfigLinefeed`\" pulumi-lang-go=\"`csvConfigLinefeed`\" pulumi-lang-python=\"`csv_config_linefeed`\" pulumi-lang-yaml=\"`csvConfigLinefeed`\" pulumi-lang-java=\"`csvConfigLinefeed`\"\u003e`csv_config_linefeed`\u003c/span\u003e - (Optional) lineFeed in csv configuration.\n- format = \u003cspan pulumi-lang-nodejs=\"`parquet`\" pulumi-lang-dotnet=\"`Parquet`\" pulumi-lang-go=\"`parquet`\" pulumi-lang-python=\"`parquet`\" pulumi-lang-yaml=\"`parquet`\" pulumi-lang-java=\"`parquet`\"\u003e`parquet`\u003c/span\u003e\n\u003cspan pulumi-lang-nodejs=\"`parquetConfig`\" pulumi-lang-dotnet=\"`ParquetConfig`\" pulumi-lang-go=\"`parquetConfig`\" pulumi-lang-python=\"`parquet_config`\" pulumi-lang-yaml=\"`parquetConfig`\" pulumi-lang-java=\"`parquetConfig`\"\u003e`parquet_config`\u003c/span\u003e - (Optional) Configure to use parquet storage format.\n\u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e - (Required) The name of the key.\n\u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e - (Required) Type of configuration name.\n"},"jsonEnableTag":{"type":"boolean"},"logstoreName":{"type":"string","description":"The name of the log logstore.\n","willReplaceOnChanges":true},"ossBucket":{"type":"string","description":"The name of the oss bucket.\n"},"ossPrefix":{"type":"string","description":"The data synchronized from Log Service to OSS will be stored in this directory of Bucket.\n"},"parquetConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:log/OssShipperParquetConfig:OssShipperParquetConfig"}},"pathFormat":{"type":"string","description":"The OSS Bucket directory is dynamically generated according to the creation time of the shipper task, it cannot start with a forward slash `/`, the default value is `%Y/%m/%d/%H/%M`.\n"},"projectName":{"type":"string","description":"The name of the log project. It is the only in one Alicloud account.\n","willReplaceOnChanges":true},"roleArn":{"type":"string","description":"Used for access control, the OSS Bucket owner creates the role mark, such as `acs:ram::13234:role/logrole`\n"},"shipperName":{"type":"string","description":"Delivery configuration name, it can only contain lowercase letters, numbers, dashes `-` and underscores `_`. It must start and end with lowercase letters or numbers, and the name must be 2 to 128 characters long.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:log/project:Project":{"description":"Provides a SLS Project resource. \n\nFor information about SLS Project and how to use it, see [What is Project](https://www.alibabacloud.com/help/en/sls/developer-reference/api-createproject).\n\n\u003e **NOTE:** Available since v1.9.5.\n\n## Example Usage\n\nBasic Usage\n\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.log.Project(\"example\", {\n    projectName: `terraform-example-${_default.result}`,\n    description: \"terraform-example\",\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.log.Project(\"example\",\n    project_name=f\"terraform-example-{default['result']}\",\n    description=\"terraform-example\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Log.Project(\"example\", new()\n    {\n        ProjectName = $\"terraform-example-{@default.Result}\",\n        Description = \"terraform-example\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .projectName(String.format(\"terraform-example-%s\", default_.result()))\n            .description(\"terraform-example\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:log:Project\n    properties:\n      projectName: terraform-example-${default.result}\n      description: terraform-example\n      tags:\n        Created: TF\n        For: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nProject With Policy Usage\n\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst examplePolicy = new alicloud.log.Project(\"example_policy\", {\n    projectName: `terraform-example-${_default.result}`,\n    description: \"terraform-example\",\n    policy: `{\n  \\\\\"Statement\\\\\": [\n    {\n      \\\\\"Action\\\\\": [\n        \\\\\"log:PostLogStoreLogs\\\\\"\n      ],\n      \\\\\"Condition\\\\\": {\n        \\\\\"StringNotLike\\\\\": {\n          \\\\\"acs:SourceVpc\\\\\": [\n            \\\\\"vpc-*\\\\\"\n          ]\n        }\n      },\n      \\\\\"Effect\\\\\": \\\\\"Deny\\\\\",\n      \\\\\"Resource\\\\\": \\\\\"acs:log:*:*:project/tf-log/*\\\\\"\n    }\n  ],\n  \\\\\"Version\\\\\": \\\\\"1\\\\\"\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample_policy = alicloud.log.Project(\"example_policy\",\n    project_name=f\"terraform-example-{default['result']}\",\n    description=\"terraform-example\",\n    policy=\"\"\"{\n  \\\"Statement\\\": [\n    {\n      \\\"Action\\\": [\n        \\\"log:PostLogStoreLogs\\\"\n      ],\n      \\\"Condition\\\": {\n        \\\"StringNotLike\\\": {\n          \\\"acs:SourceVpc\\\": [\n            \\\"vpc-*\\\"\n          ]\n        }\n      },\n      \\\"Effect\\\": \\\"Deny\\\",\n      \\\"Resource\\\": \\\"acs:log:*:*:project/tf-log/*\\\"\n    }\n  ],\n  \\\"Version\\\": \\\"1\\\"\n}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var examplePolicy = new AliCloud.Log.Project(\"example_policy\", new()\n    {\n        ProjectName = $\"terraform-example-{@default.Result}\",\n        Description = \"terraform-example\",\n        Policy = @\"{\n  \\\"\"Statement\\\"\": [\n    {\n      \\\"\"Action\\\"\": [\n        \\\"\"log:PostLogStoreLogs\\\"\"\n      ],\n      \\\"\"Condition\\\"\": {\n        \\\"\"StringNotLike\\\"\": {\n          \\\"\"acs:SourceVpc\\\"\": [\n            \\\"\"vpc-*\\\"\"\n          ]\n        }\n      },\n      \\\"\"Effect\\\"\": \\\"\"Deny\\\"\",\n      \\\"\"Resource\\\"\": \\\"\"acs:log:*:*:project/tf-log/*\\\"\"\n    }\n  ],\n  \\\"\"Version\\\"\": \\\"\"1\\\"\"\n}\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewProject(ctx, \"example_policy\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t\tPolicy: pulumi.String(`{\n  \\\"Statement\\\": [\n    {\n      \\\"Action\\\": [\n        \\\"log:PostLogStoreLogs\\\"\n      ],\n      \\\"Condition\\\": {\n        \\\"StringNotLike\\\": {\n          \\\"acs:SourceVpc\\\": [\n            \\\"vpc-*\\\"\n          ]\n        }\n      },\n      \\\"Effect\\\": \\\"Deny\\\",\n      \\\"Resource\\\": \\\"acs:log:*:*:project/tf-log/*\\\"\n    }\n  ],\n  \\\"Version\\\": \\\"1\\\"\n}\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var examplePolicy = new Project(\"examplePolicy\", ProjectArgs.builder()\n            .projectName(String.format(\"terraform-example-%s\", default_.result()))\n            .description(\"terraform-example\")\n            .policy(\"\"\"\n{\n  \\\"Statement\\\": [\n    {\n      \\\"Action\\\": [\n        \\\"log:PostLogStoreLogs\\\"\n      ],\n      \\\"Condition\\\": {\n        \\\"StringNotLike\\\": {\n          \\\"acs:SourceVpc\\\": [\n            \\\"vpc-*\\\"\n          ]\n        }\n      },\n      \\\"Effect\\\": \\\"Deny\\\",\n      \\\"Resource\\\": \\\"acs:log:*:*:project/tf-log/*\\\"\n    }\n  ],\n  \\\"Version\\\": \\\"1\\\"\n}\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  examplePolicy:\n    type: alicloud:log:Project\n    name: example_policy\n    properties:\n      projectName: terraform-example-${default.result}\n      description: terraform-example\n      policy: |\n        {\n          \\\"Statement\\\": [\n            {\n              \\\"Action\\\": [\n                \\\"log:PostLogStoreLogs\\\"\n              ],\n              \\\"Condition\\\": {\n                \\\"StringNotLike\\\": {\n                  \\\"acs:SourceVpc\\\": [\n                    \\\"vpc-*\\\"\n                  ]\n                }\n              },\n              \\\"Effect\\\": \\\"Deny\\\",\n              \\\"Resource\\\": \\\"acs:log:*:*:project/tf-log/*\\\"\n            }\n          ],\n          \\\"Version\\\": \\\"1\\\"\n        }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use the existing sls module \nto create SLS project, store and store index one-click, like ECS instances.\n\n## Import\n\nSLS Project can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:log/project:Project example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"CreateTime.\n"},"description":{"type":"string","description":"Description.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.223.0. New field 'project_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.223.0. New field 'project_name' instead."},"policy":{"type":"string","description":"Log project policy, used to set a policy for a project.\n"},"projectName":{"type":"string","description":"The name of the log project. It is the only in one Alicloud account. The project name is globally unique in Alibaba Cloud and cannot be modified after it is created. The naming rules are as follows:\n- The project name must be globally unique.\n- The name can contain only lowercase letters, digits, and hyphens (-).\n- It must start and end with a lowercase letter or number.\n- The value contains 3 to 63 characters.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tag.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["createTime","name","projectName","resourceGroupId","status"],"inputProperties":{"description":{"type":"string","description":"Description.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.223.0. New field 'project_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.223.0. New field 'project_name' instead.","willReplaceOnChanges":true},"policy":{"type":"string","description":"Log project policy, used to set a policy for a project.\n"},"projectName":{"type":"string","description":"The name of the log project. It is the only in one Alicloud account. The project name is globally unique in Alibaba Cloud and cannot be modified after it is created. The naming rules are as follows:\n- The project name must be globally unique.\n- The name can contain only lowercase letters, digits, and hyphens (-).\n- It must start and end with a lowercase letter or number.\n- The value contains 3 to 63 characters.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tag.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Project resources.\n","properties":{"createTime":{"type":"string","description":"CreateTime.\n"},"description":{"type":"string","description":"Description.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.223.0. New field 'project_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.223.0. New field 'project_name' instead.","willReplaceOnChanges":true},"policy":{"type":"string","description":"Log project policy, used to set a policy for a project.\n"},"projectName":{"type":"string","description":"The name of the log project. It is the only in one Alicloud account. The project name is globally unique in Alibaba Cloud and cannot be modified after it is created. The naming rules are as follows:\n- The project name must be globally unique.\n- The name can contain only lowercase letters, digits, and hyphens (-).\n- It must start and end with a lowercase letter or number.\n- The value contains 3 to 63 characters.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tag.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"type":"object"}},"alicloud:log/resource:Resource":{"description":"Log resource is a meta store service provided by log service, resource can be used to define meta store's table structure. \n\nFor information about SLS Resource and how to use it, see [Resource management](https://www.alibabacloud.com/help/en/doc-detail/207732.html)\n\n\u003e **NOTE:** Available since v1.162.0. log resource region should be set a main region: cn-heyuan.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.log.Resource(\"example\", {\n    type: \"userdefine\",\n    name: \"user.tf.resource\",\n    description: \"user tf resource desc\",\n    extInfo: \"{}\",\n    schema: `    {\n      \\\\\"schema\\\\\": [\n        {\n          \\\\\"column\\\\\": \\\\\"col1\\\\\",\n          \\\\\"desc\\\\\": \\\\\"col1   desc\\\\\",\n          \\\\\"ext_info\\\\\": {\n          },\n          \\\\\"required\\\\\": true,\n          \\\\\"type\\\\\": \\\\\"string\\\\\"\n        },\n        {\n          \\\\\"column\\\\\": \\\\\"col2\\\\\",\n          \\\\\"desc\\\\\": \\\\\"col2   desc\\\\\",\n          \\\\\"ext_info\\\\\": \\\\\"optional\\\\\",\n          \\\\\"required\\\\\": true,\n          \\\\\"type\\\\\": \\\\\"string\\\\\"\n        }\n      ]\n    }\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.log.Resource(\"example\",\n    type=\"userdefine\",\n    name=\"user.tf.resource\",\n    description=\"user tf resource desc\",\n    ext_info=\"{}\",\n    schema=\"\"\"    {\n      \\\"schema\\\": [\n        {\n          \\\"column\\\": \\\"col1\\\",\n          \\\"desc\\\": \\\"col1   desc\\\",\n          \\\"ext_info\\\": {\n          },\n          \\\"required\\\": true,\n          \\\"type\\\": \\\"string\\\"\n        },\n        {\n          \\\"column\\\": \\\"col2\\\",\n          \\\"desc\\\": \\\"col2   desc\\\",\n          \\\"ext_info\\\": \\\"optional\\\",\n          \\\"required\\\": true,\n          \\\"type\\\": \\\"string\\\"\n        }\n      ]\n    }\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Log.Resource(\"example\", new()\n    {\n        Type = \"userdefine\",\n        Name = \"user.tf.resource\",\n        Description = \"user tf resource desc\",\n        ExtInfo = \"{}\",\n        Schema = @\"    {\n      \\\"\"schema\\\"\": [\n        {\n          \\\"\"column\\\"\": \\\"\"col1\\\"\",\n          \\\"\"desc\\\"\": \\\"\"col1   desc\\\"\",\n          \\\"\"ext_info\\\"\": {\n          },\n          \\\"\"required\\\"\": true,\n          \\\"\"type\\\"\": \\\"\"string\\\"\"\n        },\n        {\n          \\\"\"column\\\"\": \\\"\"col2\\\"\",\n          \\\"\"desc\\\"\": \\\"\"col2   desc\\\"\",\n          \\\"\"ext_info\\\"\": \\\"\"optional\\\"\",\n          \\\"\"required\\\"\": true,\n          \\\"\"type\\\"\": \\\"\"string\\\"\"\n        }\n      ]\n    }\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := log.NewResource(ctx, \"example\", \u0026log.ResourceArgs{\n\t\t\tType:        pulumi.String(\"userdefine\"),\n\t\t\tName:        pulumi.String(\"user.tf.resource\"),\n\t\t\tDescription: pulumi.String(\"user tf resource desc\"),\n\t\t\tExtInfo:     pulumi.String(\"{}\"),\n\t\t\tSchema: pulumi.String(`    {\n      \\\"schema\\\": [\n        {\n          \\\"column\\\": \\\"col1\\\",\n          \\\"desc\\\": \\\"col1   desc\\\",\n          \\\"ext_info\\\": {\n          },\n          \\\"required\\\": true,\n          \\\"type\\\": \\\"string\\\"\n        },\n        {\n          \\\"column\\\": \\\"col2\\\",\n          \\\"desc\\\": \\\"col2   desc\\\",\n          \\\"ext_info\\\": \\\"optional\\\",\n          \\\"required\\\": true,\n          \\\"type\\\": \\\"string\\\"\n        }\n      ]\n    }\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.log.Resource;\nimport com.pulumi.alicloud.log.ResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Resource(\"example\", ResourceArgs.builder()\n            .type(\"userdefine\")\n            .name(\"user.tf.resource\")\n            .description(\"user tf resource desc\")\n            .extInfo(\"{}\")\n            .schema(\"\"\"\n    {\n      \\\"schema\\\": [\n        {\n          \\\"column\\\": \\\"col1\\\",\n          \\\"desc\\\": \\\"col1   desc\\\",\n          \\\"ext_info\\\": {\n          },\n          \\\"required\\\": true,\n          \\\"type\\\": \\\"string\\\"\n        },\n        {\n          \\\"column\\\": \\\"col2\\\",\n          \\\"desc\\\": \\\"col2   desc\\\",\n          \\\"ext_info\\\": \\\"optional\\\",\n          \\\"required\\\": true,\n          \\\"type\\\": \\\"string\\\"\n        }\n      ]\n    }\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:log:Resource\n    properties:\n      type: userdefine\n      name: user.tf.resource\n      description: user tf resource desc\n      extInfo: '{}'\n      schema: |2\n            {\n              \\\"schema\\\": [\n                {\n                  \\\"column\\\": \\\"col1\\\",\n                  \\\"desc\\\": \\\"col1   desc\\\",\n                  \\\"ext_info\\\": {\n                  },\n                  \\\"required\\\": true,\n                  \\\"type\\\": \\\"string\\\"\n                },\n                {\n                  \\\"column\\\": \\\"col2\\\",\n                  \\\"desc\\\": \\\"col2   desc\\\",\n                  \\\"ext_info\\\": \\\"optional\\\",\n                  \\\"required\\\": true,\n                  \\\"type\\\": \\\"string\\\"\n                }\n              ]\n            }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog resource can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:log/resource:Resource example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The meta store's description.\n"},"extInfo":{"type":"string","description":"The ext info of meta store.\n"},"name":{"type":"string","description":"The meta store's name, can be used as table name.\n"},"schema":{"type":"string","description":"The meta store's schema info, which is json string format, used to define table's fields.\n"},"type":{"type":"string","description":"The meta store's type, userdefine e.g.\n"}},"required":["name","schema","type"],"inputProperties":{"description":{"type":"string","description":"The meta store's description.\n"},"extInfo":{"type":"string","description":"The ext info of meta store.\n"},"name":{"type":"string","description":"The meta store's name, can be used as table name.\n","willReplaceOnChanges":true},"schema":{"type":"string","description":"The meta store's schema info, which is json string format, used to define table's fields.\n"},"type":{"type":"string","description":"The meta store's type, userdefine e.g.\n"}},"requiredInputs":["schema","type"],"stateInputs":{"description":"Input properties used for looking up and filtering Resource resources.\n","properties":{"description":{"type":"string","description":"The meta store's description.\n"},"extInfo":{"type":"string","description":"The ext info of meta store.\n"},"name":{"type":"string","description":"The meta store's name, can be used as table name.\n","willReplaceOnChanges":true},"schema":{"type":"string","description":"The meta store's schema info, which is json string format, used to define table's fields.\n"},"type":{"type":"string","description":"The meta store's type, userdefine e.g.\n"}},"type":"object"}},"alicloud:log/resourceRecord:ResourceRecord":{"description":"Log resource is a meta store service provided by log service, resource can be used to define meta store's table structure, record can be used for table's row data. \n\nFor information about SLS Resource and how to use it, see [Resource management](https://www.alibabacloud.com/help/en/doc-detail/207732.html)\n\n\u003e **NOTE:** Available since v1.162.0. log resource region should be set a main region: cn-heyuan.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.log.Resource(\"example\", {\n    type: \"userdefine\",\n    name: \"user.tf.resource\",\n    description: \"user tf resource desc\",\n    extInfo: \"{}\",\n    schema: `    {\n      \\\\\"schema\\\\\": [\n        {\n          \\\\\"column\\\\\": \\\\\"col1\\\\\",\n          \\\\\"desc\\\\\": \\\\\"col1   desc\\\\\",\n          \\\\\"ext_info\\\\\": {\n          },\n          \\\\\"required\\\\\": true,\n          \\\\\"type\\\\\": \\\\\"string\\\\\"\n        },\n        {\n          \\\\\"column\\\\\": \\\\\"col2\\\\\",\n          \\\\\"desc\\\\\": \\\\\"col2   desc\\\\\",\n          \\\\\"ext_info\\\\\": \\\\\"optional\\\\\",\n          \\\\\"required\\\\\": true,\n          \\\\\"type\\\\\": \\\\\"string\\\\\"\n        }\n      ]\n    }\n`,\n});\nconst exampleResourceRecord = new alicloud.log.ResourceRecord(\"example\", {\n    resourceName: example.id,\n    recordId: \"tf_user_example\",\n    tag: \"tf example\",\n    value: `{\n  \\\\\"user_name\\\\\": \\\\\"tf example\\\\\",\n  \\\\\"sms_enabled\\\\\": true,\n  \\\\\"phone\\\\\": \\\\\"18888888889\\\\\",\n  \\\\\"voice_enabled\\\\\": false,\n  \\\\\"email\\\\\": [\n    \\\\\"test@qq.com\\\\\"\n  ],\n  \\\\\"enabled\\\\\": true,\n  \\\\\"user_id\\\\\": \\\\\"tf_user\\\\\",\n  \\\\\"country_code\\\\\": \\\\\"86\\\\\"\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.log.Resource(\"example\",\n    type=\"userdefine\",\n    name=\"user.tf.resource\",\n    description=\"user tf resource desc\",\n    ext_info=\"{}\",\n    schema=\"\"\"    {\n      \\\"schema\\\": [\n        {\n          \\\"column\\\": \\\"col1\\\",\n          \\\"desc\\\": \\\"col1   desc\\\",\n          \\\"ext_info\\\": {\n          },\n          \\\"required\\\": true,\n          \\\"type\\\": \\\"string\\\"\n        },\n        {\n          \\\"column\\\": \\\"col2\\\",\n          \\\"desc\\\": \\\"col2   desc\\\",\n          \\\"ext_info\\\": \\\"optional\\\",\n          \\\"required\\\": true,\n          \\\"type\\\": \\\"string\\\"\n        }\n      ]\n    }\n\"\"\")\nexample_resource_record = alicloud.log.ResourceRecord(\"example\",\n    resource_name_=example.id,\n    record_id=\"tf_user_example\",\n    tag=\"tf example\",\n    value=\"\"\"{\n  \\\"user_name\\\": \\\"tf example\\\",\n  \\\"sms_enabled\\\": true,\n  \\\"phone\\\": \\\"18888888889\\\",\n  \\\"voice_enabled\\\": false,\n  \\\"email\\\": [\n    \\\"test@qq.com\\\"\n  ],\n  \\\"enabled\\\": true,\n  \\\"user_id\\\": \\\"tf_user\\\",\n  \\\"country_code\\\": \\\"86\\\"\n}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Log.Resource(\"example\", new()\n    {\n        Type = \"userdefine\",\n        Name = \"user.tf.resource\",\n        Description = \"user tf resource desc\",\n        ExtInfo = \"{}\",\n        Schema = @\"    {\n      \\\"\"schema\\\"\": [\n        {\n          \\\"\"column\\\"\": \\\"\"col1\\\"\",\n          \\\"\"desc\\\"\": \\\"\"col1   desc\\\"\",\n          \\\"\"ext_info\\\"\": {\n          },\n          \\\"\"required\\\"\": true,\n          \\\"\"type\\\"\": \\\"\"string\\\"\"\n        },\n        {\n          \\\"\"column\\\"\": \\\"\"col2\\\"\",\n          \\\"\"desc\\\"\": \\\"\"col2   desc\\\"\",\n          \\\"\"ext_info\\\"\": \\\"\"optional\\\"\",\n          \\\"\"required\\\"\": true,\n          \\\"\"type\\\"\": \\\"\"string\\\"\"\n        }\n      ]\n    }\n\",\n    });\n\n    var exampleResourceRecord = new AliCloud.Log.ResourceRecord(\"example\", new()\n    {\n        ResourceName = example.Id,\n        RecordId = \"tf_user_example\",\n        Tag = \"tf example\",\n        Value = @\"{\n  \\\"\"user_name\\\"\": \\\"\"tf example\\\"\",\n  \\\"\"sms_enabled\\\"\": true,\n  \\\"\"phone\\\"\": \\\"\"18888888889\\\"\",\n  \\\"\"voice_enabled\\\"\": false,\n  \\\"\"email\\\"\": [\n    \\\"\"test@qq.com\\\"\"\n  ],\n  \\\"\"enabled\\\"\": true,\n  \\\"\"user_id\\\"\": \\\"\"tf_user\\\"\",\n  \\\"\"country_code\\\"\": \\\"\"86\\\"\"\n}\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := log.NewResource(ctx, \"example\", \u0026log.ResourceArgs{\n\t\t\tType:        pulumi.String(\"userdefine\"),\n\t\t\tName:        pulumi.String(\"user.tf.resource\"),\n\t\t\tDescription: pulumi.String(\"user tf resource desc\"),\n\t\t\tExtInfo:     pulumi.String(\"{}\"),\n\t\t\tSchema: pulumi.String(`    {\n      \\\"schema\\\": [\n        {\n          \\\"column\\\": \\\"col1\\\",\n          \\\"desc\\\": \\\"col1   desc\\\",\n          \\\"ext_info\\\": {\n          },\n          \\\"required\\\": true,\n          \\\"type\\\": \\\"string\\\"\n        },\n        {\n          \\\"column\\\": \\\"col2\\\",\n          \\\"desc\\\": \\\"col2   desc\\\",\n          \\\"ext_info\\\": \\\"optional\\\",\n          \\\"required\\\": true,\n          \\\"type\\\": \\\"string\\\"\n        }\n      ]\n    }\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewResourceRecord(ctx, \"example\", \u0026log.ResourceRecordArgs{\n\t\t\tResourceName: example.ID(),\n\t\t\tRecordId:     pulumi.String(\"tf_user_example\"),\n\t\t\tTag:          pulumi.String(\"tf example\"),\n\t\t\tValue: pulumi.String(`{\n  \\\"user_name\\\": \\\"tf example\\\",\n  \\\"sms_enabled\\\": true,\n  \\\"phone\\\": \\\"18888888889\\\",\n  \\\"voice_enabled\\\": false,\n  \\\"email\\\": [\n    \\\"test@qq.com\\\"\n  ],\n  \\\"enabled\\\": true,\n  \\\"user_id\\\": \\\"tf_user\\\",\n  \\\"country_code\\\": \\\"86\\\"\n}\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.log.Resource;\nimport com.pulumi.alicloud.log.ResourceArgs;\nimport com.pulumi.alicloud.log.ResourceRecord;\nimport com.pulumi.alicloud.log.ResourceRecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Resource(\"example\", ResourceArgs.builder()\n            .type(\"userdefine\")\n            .name(\"user.tf.resource\")\n            .description(\"user tf resource desc\")\n            .extInfo(\"{}\")\n            .schema(\"\"\"\n    {\n      \\\"schema\\\": [\n        {\n          \\\"column\\\": \\\"col1\\\",\n          \\\"desc\\\": \\\"col1   desc\\\",\n          \\\"ext_info\\\": {\n          },\n          \\\"required\\\": true,\n          \\\"type\\\": \\\"string\\\"\n        },\n        {\n          \\\"column\\\": \\\"col2\\\",\n          \\\"desc\\\": \\\"col2   desc\\\",\n          \\\"ext_info\\\": \\\"optional\\\",\n          \\\"required\\\": true,\n          \\\"type\\\": \\\"string\\\"\n        }\n      ]\n    }\n            \"\"\")\n            .build());\n\n        var exampleResourceRecord = new ResourceRecord(\"exampleResourceRecord\", ResourceRecordArgs.builder()\n            .resourceName(example.id())\n            .recordId(\"tf_user_example\")\n            .tag(\"tf example\")\n            .value(\"\"\"\n{\n  \\\"user_name\\\": \\\"tf example\\\",\n  \\\"sms_enabled\\\": true,\n  \\\"phone\\\": \\\"18888888889\\\",\n  \\\"voice_enabled\\\": false,\n  \\\"email\\\": [\n    \\\"test@qq.com\\\"\n  ],\n  \\\"enabled\\\": true,\n  \\\"user_id\\\": \\\"tf_user\\\",\n  \\\"country_code\\\": \\\"86\\\"\n}\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:log:Resource\n    properties:\n      type: userdefine\n      name: user.tf.resource\n      description: user tf resource desc\n      extInfo: '{}'\n      schema: |2\n            {\n              \\\"schema\\\": [\n                {\n                  \\\"column\\\": \\\"col1\\\",\n                  \\\"desc\\\": \\\"col1   desc\\\",\n                  \\\"ext_info\\\": {\n                  },\n                  \\\"required\\\": true,\n                  \\\"type\\\": \\\"string\\\"\n                },\n                {\n                  \\\"column\\\": \\\"col2\\\",\n                  \\\"desc\\\": \\\"col2   desc\\\",\n                  \\\"ext_info\\\": \\\"optional\\\",\n                  \\\"required\\\": true,\n                  \\\"type\\\": \\\"string\\\"\n                }\n              ]\n            }\n  exampleResourceRecord:\n    type: alicloud:log:ResourceRecord\n    name: example\n    properties:\n      resourceName: ${example.id}\n      recordId: tf_user_example\n      tag: tf example\n      value: |\n        {\n          \\\"user_name\\\": \\\"tf example\\\",\n          \\\"sms_enabled\\\": true,\n          \\\"phone\\\": \\\"18888888889\\\",\n          \\\"voice_enabled\\\": false,\n          \\\"email\\\": [\n            \\\"test@qq.com\\\"\n          ],\n          \\\"enabled\\\": true,\n          \\\"user_id\\\": \\\"tf_user\\\",\n          \\\"country_code\\\": \\\"86\\\"\n        }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog resource record can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:log/resourceRecord:ResourceRecord example \u003cresource_name\u003e:\u003crecord_id\u003e\n```\n\n","properties":{"recordId":{"type":"string","description":"The record's id, should be unique.\n"},"resourceName":{"type":"string","description":"The name defined in log_resource, log service have some internal resource, like sls.common.user, sls.common.user_group. More detail see [Resource Data Structure](https://www.alibabacloud.com/help/en/sls/developer-reference/data-structure-of-alert-resource-data).\n"},"tag":{"type":"string","description":"The record's tag, can be used for search.\n"},"value":{"type":"string","description":"The json value of record. More detail see [Resource Data Structure](https://www.alibabacloud.com/help/en/sls/developer-reference/data-structure-of-alert-resource-data).\n"}},"required":["recordId","resourceName","tag","value"],"inputProperties":{"recordId":{"type":"string","description":"The record's id, should be unique.\n","willReplaceOnChanges":true},"resourceName":{"type":"string","description":"The name defined in log_resource, log service have some internal resource, like sls.common.user, sls.common.user_group. More detail see [Resource Data Structure](https://www.alibabacloud.com/help/en/sls/developer-reference/data-structure-of-alert-resource-data).\n"},"tag":{"type":"string","description":"The record's tag, can be used for search.\n"},"value":{"type":"string","description":"The json value of record. More detail see [Resource Data Structure](https://www.alibabacloud.com/help/en/sls/developer-reference/data-structure-of-alert-resource-data).\n"}},"requiredInputs":["recordId","resourceName","tag","value"],"stateInputs":{"description":"Input properties used for looking up and filtering ResourceRecord resources.\n","properties":{"recordId":{"type":"string","description":"The record's id, should be unique.\n","willReplaceOnChanges":true},"resourceName":{"type":"string","description":"The name defined in log_resource, log service have some internal resource, like sls.common.user, sls.common.user_group. More detail see [Resource Data Structure](https://www.alibabacloud.com/help/en/sls/developer-reference/data-structure-of-alert-resource-data).\n"},"tag":{"type":"string","description":"The record's tag, can be used for search.\n"},"value":{"type":"string","description":"The json value of record. More detail see [Resource Data Structure](https://www.alibabacloud.com/help/en/sls/developer-reference/data-structure-of-alert-resource-data).\n"}},"type":"object"}},"alicloud:log/store:Store":{"description":"Provides a SLS Log Store resource.\n\n\n\nFor information about SLS Log Store and how to use it, see [What is Log Store](https://www.alibabacloud.com/help/doc-detail/48874.htm).\n\n\u003e **NOTE:** Available since v1.0.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.log.Project(\"example\", {\n    name: `terraform-example-${_default.result}`,\n    description: \"terraform-example\",\n});\nconst exampleStore = new alicloud.log.Store(\"example\", {\n    project: example.name,\n    name: \"example-store\",\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.log.Project(\"example\",\n    name=f\"terraform-example-{default['result']}\",\n    description=\"terraform-example\")\nexample_store = alicloud.log.Store(\"example\",\n    project=example.name,\n    name=\"example-store\",\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Log.Project(\"example\", new()\n    {\n        Name = $\"terraform-example-{@default.Result}\",\n        Description = \"terraform-example\",\n    });\n\n    var exampleStore = new AliCloud.Log.Store(\"example\", new()\n    {\n        Project = example.Name,\n        Name = \"example-store\",\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tName:        pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewStore(ctx, \"example\", \u0026log.StoreArgs{\n\t\t\tProject:            example.Name,\n\t\t\tName:               pulumi.String(\"example-store\"),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(String.format(\"terraform-example-%s\", default_.result()))\n            .description(\"terraform-example\")\n            .build());\n\n        var exampleStore = new Store(\"exampleStore\", StoreArgs.builder()\n            .project(example.name())\n            .name(\"example-store\")\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:log:Project\n    properties:\n      name: terraform-example-${default.result}\n      description: terraform-example\n  exampleStore:\n    type: alicloud:log:Store\n    name: example\n    properties:\n      project: ${example.name}\n      name: example-store\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nEncrypt Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\n// The region of kms key.\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst example = alicloud.getAccount({});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst _default = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = _default.then(_default =\u003e alicloud.vpc.getSwitches({\n    vpcId: _default.ids?.[0],\n}));\nconst defaultInstance = new alicloud.kms.Instance(\"default\", {\n    productVersion: \"3\",\n    vpcId: _default.then(_default =\u003e _default.ids?.[0]),\n    zoneIds: [\n        defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.zoneId),\n        defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[1]?.zoneId),\n    ],\n    vswitchIds: [defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0])],\n    vpcNum: 1,\n    keyNum: 1000,\n    secretNum: 0,\n    spec: 1000,\n    forceDeleteWithoutBackup: \"true\",\n    paymentType: \"PayAsYouGo\",\n});\nconst exampleKey = new alicloud.kms.Key(\"example\", {\n    description: \"terraform-example\",\n    pendingWindowInDays: 7,\n    status: \"Enabled\",\n    dkmsInstanceId: defaultInstance.id,\n});\nconst exampleProject = new alicloud.log.Project(\"example\", {\n    projectName: `terraform-example-${defaultInteger.result}`,\n    description: \"terraform-example\",\n});\nconst exampleStore = new alicloud.log.Store(\"example\", {\n    projectName: exampleProject.projectName,\n    logstoreName: \"example-store\",\n    shardCount: 1,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    encryptConf: {\n        enable: true,\n        encryptType: \"default\",\n        userCmkInfo: {\n            cmkKeyId: exampleKey.id,\n            arn: example.then(example =\u003e `acs:ram::${example.id}:role/aliyunlogdefaultrole`),\n            regionId: region,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\n# The region of kms key.\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\nexample = alicloud.get_account()\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default.ids[0])\ndefault_instance = alicloud.kms.Instance(\"default\",\n    product_version=\"3\",\n    vpc_id=default.ids[0],\n    zone_ids=[\n        default_get_switches.vswitches[0].zone_id,\n        default_get_switches.vswitches[1].zone_id,\n    ],\n    vswitch_ids=[default_get_switches.ids[0]],\n    vpc_num=1,\n    key_num=1000,\n    secret_num=0,\n    spec=1000,\n    force_delete_without_backup=\"true\",\n    payment_type=\"PayAsYouGo\")\nexample_key = alicloud.kms.Key(\"example\",\n    description=\"terraform-example\",\n    pending_window_in_days=7,\n    status=\"Enabled\",\n    dkms_instance_id=default_instance.id)\nexample_project = alicloud.log.Project(\"example\",\n    project_name=f\"terraform-example-{default_integer['result']}\",\n    description=\"terraform-example\")\nexample_store = alicloud.log.Store(\"example\",\n    project_name=example_project.project_name,\n    logstore_name=\"example-store\",\n    shard_count=1,\n    auto_split=True,\n    max_split_shard_count=60,\n    encrypt_conf={\n        \"enable\": True,\n        \"encrypt_type\": \"default\",\n        \"user_cmk_info\": {\n            \"cmk_key_id\": example_key.id,\n            \"arn\": f\"acs:ram::{example.id}:role/aliyunlogdefaultrole\",\n            \"region_id\": region,\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    // The region of kms key.\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var example = AliCloud.GetAccount.Invoke();\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var @default = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.Kms.Instance(\"default\", new()\n    {\n        ProductVersion = \"3\",\n        VpcId = @default.Apply(@default =\u003e @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0])),\n        ZoneIds = new[]\n        {\n            defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.ZoneId),\n            defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[1]?.ZoneId),\n        },\n        VswitchIds = new[]\n        {\n            defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        },\n        VpcNum = 1,\n        KeyNum = 1000,\n        SecretNum = 0,\n        Spec = 1000,\n        ForceDeleteWithoutBackup = \"true\",\n        PaymentType = \"PayAsYouGo\",\n    });\n\n    var exampleKey = new AliCloud.Kms.Key(\"example\", new()\n    {\n        Description = \"terraform-example\",\n        PendingWindowInDays = 7,\n        Status = \"Enabled\",\n        DkmsInstanceId = defaultInstance.Id,\n    });\n\n    var exampleProject = new AliCloud.Log.Project(\"example\", new()\n    {\n        ProjectName = $\"terraform-example-{defaultInteger.Result}\",\n        Description = \"terraform-example\",\n    });\n\n    var exampleStore = new AliCloud.Log.Store(\"example\", new()\n    {\n        ProjectName = exampleProject.ProjectName,\n        LogstoreName = \"example-store\",\n        ShardCount = 1,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        EncryptConf = new AliCloud.Log.Inputs.StoreEncryptConfArgs\n        {\n            Enable = true,\n            EncryptType = \"default\",\n            UserCmkInfo = new AliCloud.Log.Inputs.StoreEncryptConfUserCmkInfoArgs\n            {\n                CmkKeyId = exampleKey.Id,\n                Arn = $\"acs:ram::{example.Apply(getAccountResult =\u003e getAccountResult.Id)}:role/aliyunlogdefaultrole\",\n                RegionId = region,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\t// The region of kms key.\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\texample, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId: pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := kms.NewInstance(ctx, \"default\", \u0026kms.InstanceArgs{\n\t\t\tProductVersion: pulumi.String(\"3\"),\n\t\t\tVpcId:          pulumi.String(_default.Ids[0]),\n\t\t\tZoneIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(defaultGetSwitches.Vswitches[0].ZoneId),\n\t\t\t\tpulumi.String(defaultGetSwitches.Vswitches[1].ZoneId),\n\t\t\t},\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\t},\n\t\t\tVpcNum:                   pulumi.Int(1),\n\t\t\tKeyNum:                   pulumi.Int(1000),\n\t\t\tSecretNum:                pulumi.Int(0),\n\t\t\tSpec:                     pulumi.Int(1000),\n\t\t\tForceDeleteWithoutBackup: pulumi.String(\"true\"),\n\t\t\tPaymentType:              pulumi.String(\"PayAsYouGo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKey, err := kms.NewKey(ctx, \"example\", \u0026kms.KeyArgs{\n\t\t\tDescription:         pulumi.String(\"terraform-example\"),\n\t\t\tPendingWindowInDays: pulumi.Int(7),\n\t\t\tStatus:              pulumi.String(\"Enabled\"),\n\t\t\tDkmsInstanceId:      defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleProject, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewStore(ctx, \"example\", \u0026log.StoreArgs{\n\t\t\tProjectName:        exampleProject.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(\"example-store\"),\n\t\t\tShardCount:         pulumi.Int(1),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tEncryptConf: \u0026log.StoreEncryptConfArgs{\n\t\t\t\tEnable:      pulumi.Bool(true),\n\t\t\t\tEncryptType: pulumi.String(\"default\"),\n\t\t\t\tUserCmkInfo: \u0026log.StoreEncryptConfUserCmkInfoArgs{\n\t\t\t\t\tCmkKeyId: exampleKey.ID(),\n\t\t\t\t\tArn:      pulumi.Sprintf(\"acs:ram::%v:role/aliyunlogdefaultrole\", example.Id),\n\t\t\t\t\tRegionId: pulumi.String(region),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.kms.Instance;\nimport com.pulumi.alicloud.kms.InstanceArgs;\nimport com.pulumi.alicloud.kms.Key;\nimport com.pulumi.alicloud.kms.KeyArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.log.inputs.StoreEncryptConfArgs;\nimport com.pulumi.alicloud.log.inputs.StoreEncryptConfUserCmkInfoArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var example = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var default = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(default_.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .productVersion(\"3\")\n            .vpcId(default_.ids()[0])\n            .zoneIds(            \n                defaultGetSwitches.vswitches()[0].zoneId(),\n                defaultGetSwitches.vswitches()[1].zoneId())\n            .vswitchIds(defaultGetSwitches.ids()[0])\n            .vpcNum(1)\n            .keyNum(1000)\n            .secretNum(0)\n            .spec(1000)\n            .forceDeleteWithoutBackup(\"true\")\n            .paymentType(\"PayAsYouGo\")\n            .build());\n\n        var exampleKey = new Key(\"exampleKey\", KeyArgs.builder()\n            .description(\"terraform-example\")\n            .pendingWindowInDays(7)\n            .status(\"Enabled\")\n            .dkmsInstanceId(defaultInstance.id())\n            .build());\n\n        var exampleProject = new Project(\"exampleProject\", ProjectArgs.builder()\n            .projectName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .description(\"terraform-example\")\n            .build());\n\n        var exampleStore = new Store(\"exampleStore\", StoreArgs.builder()\n            .projectName(exampleProject.projectName())\n            .logstoreName(\"example-store\")\n            .shardCount(1)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .encryptConf(StoreEncryptConfArgs.builder()\n                .enable(true)\n                .encryptType(\"default\")\n                .userCmkInfo(StoreEncryptConfUserCmkInfoArgs.builder()\n                    .cmkKeyId(exampleKey.id())\n                    .arn(String.format(\"acs:ram::%s:role/aliyunlogdefaultrole\", example.id()))\n                    .regionId(region)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultInstance:\n    type: alicloud:kms:Instance\n    name: default\n    properties:\n      productVersion: '3'\n      vpcId: ${default.ids[0]}\n      zoneIds:\n        - ${defaultGetSwitches.vswitches[0].zoneId}\n        - ${defaultGetSwitches.vswitches[1].zoneId}\n      vswitchIds:\n        - ${defaultGetSwitches.ids[0]}\n      vpcNum: '1'\n      keyNum: '1000'\n      secretNum: '0'\n      spec: '1000'\n      forceDeleteWithoutBackup: true\n      paymentType: PayAsYouGo\n  exampleKey:\n    type: alicloud:kms:Key\n    name: example\n    properties:\n      description: terraform-example\n      pendingWindowInDays: '7'\n      status: Enabled\n      dkmsInstanceId: ${defaultInstance.id}\n  exampleProject:\n    type: alicloud:log:Project\n    name: example\n    properties:\n      projectName: terraform-example-${defaultInteger.result}\n      description: terraform-example\n  exampleStore:\n    type: alicloud:log:Store\n    name: example\n    properties:\n      projectName: ${exampleProject.projectName}\n      logstoreName: example-store\n      shardCount: 1\n      autoSplit: true\n      maxSplitShardCount: 60\n      encryptConf:\n        enable: true\n        encryptType: default\n        userCmkInfo:\n          cmkKeyId: ${exampleKey.id}\n          arn: acs:ram::${example.id}:role/aliyunlogdefaultrole\n          regionId: ${region}\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  default:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${default.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use the existing sls module \nto create SLS project, store and store index one-click, like ECS instances.\n\n## Import\n\nSLS Log Store can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:log/store:Store example \u003cproject_name\u003e:\u003clogstore_name\u003e\n```\n\n","properties":{"appendMeta":{"type":"boolean","description":"Determines whether to append log meta automatically. The meta includes log receive time and client IP address. Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"autoSplit":{"type":"boolean","description":"Determines whether to automatically split a shard. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"createTime":{"type":"integer","description":"Log library creation time. Unix timestamp format that represents the number of seconds from 1970-1-1 00:00:00 UTC calculation.\n"},"enableWebTracking":{"type":"boolean","description":"Whether open webtracking. webtracking network tracing, support the collection of HTML log, H5, Ios and android platforms.\n"},"encryptConf":{"$ref":"#/types/alicloud:log/StoreEncryptConf:StoreEncryptConf","description":"Encrypted storage of data, providing data static protection capability,\u003cspan pulumi-lang-nodejs=\" encryptConf \" pulumi-lang-dotnet=\" EncryptConf \" pulumi-lang-go=\" encryptConf \" pulumi-lang-python=\" encrypt_conf \" pulumi-lang-yaml=\" encryptConf \" pulumi-lang-java=\" encryptConf \"\u003e encrypt_conf \u003c/span\u003ecan be updated since 1.188.0 (only enable change is supported when updating logstore). See \u003cspan pulumi-lang-nodejs=\"`encryptConf`\" pulumi-lang-dotnet=\"`EncryptConf`\" pulumi-lang-go=\"`encryptConf`\" pulumi-lang-python=\"`encrypt_conf`\" pulumi-lang-yaml=\"`encryptConf`\" pulumi-lang-java=\"`encryptConf`\"\u003e`encrypt_conf`\u003c/span\u003e below.\n"},"hotTtl":{"type":"integer","description":"The ttl of hot storage. Default to 30, at least 30, hot storage ttl must be less than ttl.\n"},"infrequentAccessTtl":{"type":"integer","description":"Low frequency storage time\n"},"logstoreName":{"type":"string","description":"The log store, which is unique in the same project. You need to specify one of the attributes: \u003cspan pulumi-lang-nodejs=\"`logstoreName`\" pulumi-lang-dotnet=\"`LogstoreName`\" pulumi-lang-go=\"`logstoreName`\" pulumi-lang-python=\"`logstore_name`\" pulumi-lang-yaml=\"`logstoreName`\" pulumi-lang-java=\"`logstoreName`\"\u003e`logstore_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"maxSplitShardCount":{"type":"integer","description":"The maximum number of shards for automatic split, which is in the range of 1 to 256. You must specify this parameter when autoSplit is true.\n"},"meteringMode":{"type":"string","description":"Metering mode. The default metering mode of ChargeByFunction, ChargeByDataIngest traffic mode.\n"},"mode":{"type":"string","description":"The mode of storage. Default to \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, must be \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`query`\" pulumi-lang-dotnet=\"`Query`\" pulumi-lang-go=\"`query`\" pulumi-lang-python=\"`query`\" pulumi-lang-yaml=\"`query`\" pulumi-lang-java=\"`query`\"\u003e`query`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`lite`\" pulumi-lang-dotnet=\"`Lite`\" pulumi-lang-go=\"`lite`\" pulumi-lang-python=\"`lite`\" pulumi-lang-yaml=\"`lite`\" pulumi-lang-java=\"`lite`\"\u003e`lite`\u003c/span\u003e.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.215.0. New field 'logstore_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.215.0. New field 'logstore_name' instead."},"project":{"type":"string","description":". Field 'project' has been deprecated from provider version 1.215.0. New field 'project_name' instead.\n","deprecationMessage":"Field 'project' has been deprecated since provider version 1.215.0. New field 'project_name' instead."},"projectName":{"type":"string","description":"The project name to the log store belongs. You need to specify one of the attributes: \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e.\n"},"retentionPeriod":{"type":"integer","description":"The data retention time (in days). Valid values: [1-3650]. Default to 30. Log store data will be stored permanently when the value is 3650.\n"},"shardCount":{"type":"integer","description":"The number of shards in this log store. Default to 2. You can modify it by \"Split\" or \"Merge\" operations. [Refer to details](https://www.alibabacloud.com/help/zh/sls/product-overview/shard).\n"},"shards":{"type":"array","items":{"$ref":"#/types/alicloud:log/StoreShard:StoreShard"},"description":"The shard attribute.\n"},"telemetryType":{"type":"string","description":"Determines whether store type is metric. `Metrics` means metric store, empty means log store.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["createTime","encryptConf","logstoreName","meteringMode","mode","name","project","projectName","shards"],"inputProperties":{"appendMeta":{"type":"boolean","description":"Determines whether to append log meta automatically. The meta includes log receive time and client IP address. Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"autoSplit":{"type":"boolean","description":"Determines whether to automatically split a shard. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enableWebTracking":{"type":"boolean","description":"Whether open webtracking. webtracking network tracing, support the collection of HTML log, H5, Ios and android platforms.\n"},"encryptConf":{"$ref":"#/types/alicloud:log/StoreEncryptConf:StoreEncryptConf","description":"Encrypted storage of data, providing data static protection capability,\u003cspan pulumi-lang-nodejs=\" encryptConf \" pulumi-lang-dotnet=\" EncryptConf \" pulumi-lang-go=\" encryptConf \" pulumi-lang-python=\" encrypt_conf \" pulumi-lang-yaml=\" encryptConf \" pulumi-lang-java=\" encryptConf \"\u003e encrypt_conf \u003c/span\u003ecan be updated since 1.188.0 (only enable change is supported when updating logstore). See \u003cspan pulumi-lang-nodejs=\"`encryptConf`\" pulumi-lang-dotnet=\"`EncryptConf`\" pulumi-lang-go=\"`encryptConf`\" pulumi-lang-python=\"`encrypt_conf`\" pulumi-lang-yaml=\"`encryptConf`\" pulumi-lang-java=\"`encryptConf`\"\u003e`encrypt_conf`\u003c/span\u003e below.\n"},"hotTtl":{"type":"integer","description":"The ttl of hot storage. Default to 30, at least 30, hot storage ttl must be less than ttl.\n"},"infrequentAccessTtl":{"type":"integer","description":"Low frequency storage time\n"},"logstoreName":{"type":"string","description":"The log store, which is unique in the same project. You need to specify one of the attributes: \u003cspan pulumi-lang-nodejs=\"`logstoreName`\" pulumi-lang-dotnet=\"`LogstoreName`\" pulumi-lang-go=\"`logstoreName`\" pulumi-lang-python=\"`logstore_name`\" pulumi-lang-yaml=\"`logstoreName`\" pulumi-lang-java=\"`logstoreName`\"\u003e`logstore_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n","willReplaceOnChanges":true},"maxSplitShardCount":{"type":"integer","description":"The maximum number of shards for automatic split, which is in the range of 1 to 256. You must specify this parameter when autoSplit is true.\n"},"meteringMode":{"type":"string","description":"Metering mode. The default metering mode of ChargeByFunction, ChargeByDataIngest traffic mode.\n"},"mode":{"type":"string","description":"The mode of storage. Default to \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, must be \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`query`\" pulumi-lang-dotnet=\"`Query`\" pulumi-lang-go=\"`query`\" pulumi-lang-python=\"`query`\" pulumi-lang-yaml=\"`query`\" pulumi-lang-java=\"`query`\"\u003e`query`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`lite`\" pulumi-lang-dotnet=\"`Lite`\" pulumi-lang-go=\"`lite`\" pulumi-lang-python=\"`lite`\" pulumi-lang-yaml=\"`lite`\" pulumi-lang-java=\"`lite`\"\u003e`lite`\u003c/span\u003e.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.215.0. New field 'logstore_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.215.0. New field 'logstore_name' instead.","willReplaceOnChanges":true},"project":{"type":"string","description":". Field 'project' has been deprecated from provider version 1.215.0. New field 'project_name' instead.\n","deprecationMessage":"Field 'project' has been deprecated since provider version 1.215.0. New field 'project_name' instead.","willReplaceOnChanges":true},"projectName":{"type":"string","description":"The project name to the log store belongs. You need to specify one of the attributes: \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e.\n","willReplaceOnChanges":true},"retentionPeriod":{"type":"integer","description":"The data retention time (in days). Valid values: [1-3650]. Default to 30. Log store data will be stored permanently when the value is 3650.\n"},"shardCount":{"type":"integer","description":"The number of shards in this log store. Default to 2. You can modify it by \"Split\" or \"Merge\" operations. [Refer to details](https://www.alibabacloud.com/help/zh/sls/product-overview/shard).\n","willReplaceOnChanges":true},"telemetryType":{"type":"string","description":"Determines whether store type is metric. `Metrics` means metric store, empty means log store.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Store resources.\n","properties":{"appendMeta":{"type":"boolean","description":"Determines whether to append log meta automatically. The meta includes log receive time and client IP address. Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"autoSplit":{"type":"boolean","description":"Determines whether to automatically split a shard. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"createTime":{"type":"integer","description":"Log library creation time. Unix timestamp format that represents the number of seconds from 1970-1-1 00:00:00 UTC calculation.\n"},"enableWebTracking":{"type":"boolean","description":"Whether open webtracking. webtracking network tracing, support the collection of HTML log, H5, Ios and android platforms.\n"},"encryptConf":{"$ref":"#/types/alicloud:log/StoreEncryptConf:StoreEncryptConf","description":"Encrypted storage of data, providing data static protection capability,\u003cspan pulumi-lang-nodejs=\" encryptConf \" pulumi-lang-dotnet=\" EncryptConf \" pulumi-lang-go=\" encryptConf \" pulumi-lang-python=\" encrypt_conf \" pulumi-lang-yaml=\" encryptConf \" pulumi-lang-java=\" encryptConf \"\u003e encrypt_conf \u003c/span\u003ecan be updated since 1.188.0 (only enable change is supported when updating logstore). See \u003cspan pulumi-lang-nodejs=\"`encryptConf`\" pulumi-lang-dotnet=\"`EncryptConf`\" pulumi-lang-go=\"`encryptConf`\" pulumi-lang-python=\"`encrypt_conf`\" pulumi-lang-yaml=\"`encryptConf`\" pulumi-lang-java=\"`encryptConf`\"\u003e`encrypt_conf`\u003c/span\u003e below.\n"},"hotTtl":{"type":"integer","description":"The ttl of hot storage. Default to 30, at least 30, hot storage ttl must be less than ttl.\n"},"infrequentAccessTtl":{"type":"integer","description":"Low frequency storage time\n"},"logstoreName":{"type":"string","description":"The log store, which is unique in the same project. You need to specify one of the attributes: \u003cspan pulumi-lang-nodejs=\"`logstoreName`\" pulumi-lang-dotnet=\"`LogstoreName`\" pulumi-lang-go=\"`logstoreName`\" pulumi-lang-python=\"`logstore_name`\" pulumi-lang-yaml=\"`logstoreName`\" pulumi-lang-java=\"`logstoreName`\"\u003e`logstore_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n","willReplaceOnChanges":true},"maxSplitShardCount":{"type":"integer","description":"The maximum number of shards for automatic split, which is in the range of 1 to 256. You must specify this parameter when autoSplit is true.\n"},"meteringMode":{"type":"string","description":"Metering mode. The default metering mode of ChargeByFunction, ChargeByDataIngest traffic mode.\n"},"mode":{"type":"string","description":"The mode of storage. Default to \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, must be \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`query`\" pulumi-lang-dotnet=\"`Query`\" pulumi-lang-go=\"`query`\" pulumi-lang-python=\"`query`\" pulumi-lang-yaml=\"`query`\" pulumi-lang-java=\"`query`\"\u003e`query`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`lite`\" pulumi-lang-dotnet=\"`Lite`\" pulumi-lang-go=\"`lite`\" pulumi-lang-python=\"`lite`\" pulumi-lang-yaml=\"`lite`\" pulumi-lang-java=\"`lite`\"\u003e`lite`\u003c/span\u003e.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.215.0. New field 'logstore_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.215.0. New field 'logstore_name' instead.","willReplaceOnChanges":true},"project":{"type":"string","description":". Field 'project' has been deprecated from provider version 1.215.0. New field 'project_name' instead.\n","deprecationMessage":"Field 'project' has been deprecated since provider version 1.215.0. New field 'project_name' instead.","willReplaceOnChanges":true},"projectName":{"type":"string","description":"The project name to the log store belongs. You need to specify one of the attributes: \u003cspan pulumi-lang-nodejs=\"`projectName`\" pulumi-lang-dotnet=\"`ProjectName`\" pulumi-lang-go=\"`projectName`\" pulumi-lang-python=\"`project_name`\" pulumi-lang-yaml=\"`projectName`\" pulumi-lang-java=\"`projectName`\"\u003e`project_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e.\n","willReplaceOnChanges":true},"retentionPeriod":{"type":"integer","description":"The data retention time (in days). Valid values: [1-3650]. Default to 30. Log store data will be stored permanently when the value is 3650.\n"},"shardCount":{"type":"integer","description":"The number of shards in this log store. Default to 2. You can modify it by \"Split\" or \"Merge\" operations. [Refer to details](https://www.alibabacloud.com/help/zh/sls/product-overview/shard).\n","willReplaceOnChanges":true},"shards":{"type":"array","items":{"$ref":"#/types/alicloud:log/StoreShard:StoreShard"},"description":"The shard attribute.\n"},"telemetryType":{"type":"string","description":"Determines whether store type is metric. `Metrics` means metric store, empty means log store.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:log/storeIndex:StoreIndex":{"description":"Log Service provides the LogSearch/Analytics function to query and analyze large amounts of logs in real time.\nYou can use this function by enabling the index and field statistics. [Refer to details](https://www.alibabacloud.com/help/doc-detail/43772.htm)\n\n\u003e **NOTE:** Available since v1.0.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.log.Project(\"example\", {\n    projectName: `terraform-example-${_default.result}`,\n    description: \"terraform-example\",\n});\nconst exampleStore = new alicloud.log.Store(\"example\", {\n    projectName: example.projectName,\n    logstoreName: \"example-store\",\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst exampleStoreIndex = new alicloud.log.StoreIndex(\"example\", {\n    project: example.projectName,\n    logstore: exampleStore.logstoreName,\n    fullText: {\n        caseSensitive: true,\n        token: ` #^*\\x0d\n\\x09`,\n    },\n    fieldSearches: [{\n        name: \"terraform-example\",\n        enableAnalytics: true,\n        type: \"text\",\n        token: ` #^*\\x0d\n\\x09`,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.log.Project(\"example\",\n    project_name=f\"terraform-example-{default['result']}\",\n    description=\"terraform-example\")\nexample_store = alicloud.log.Store(\"example\",\n    project_name=example.project_name,\n    logstore_name=\"example-store\",\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\nexample_store_index = alicloud.log.StoreIndex(\"example\",\n    project=example.project_name,\n    logstore=example_store.logstore_name,\n    full_text={\n        \"case_sensitive\": True,\n        \"token\": \"\"\" #$^*\\x0d\n\\x09\"\"\",\n    },\n    field_searches=[{\n        \"name\": \"terraform-example\",\n        \"enable_analytics\": True,\n        \"type\": \"text\",\n        \"token\": \"\"\" #$^*\\x0d\n\\x09\"\"\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Log.Project(\"example\", new()\n    {\n        ProjectName = $\"terraform-example-{@default.Result}\",\n        Description = \"terraform-example\",\n    });\n\n    var exampleStore = new AliCloud.Log.Store(\"example\", new()\n    {\n        ProjectName = example.ProjectName,\n        LogstoreName = \"example-store\",\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var exampleStoreIndex = new AliCloud.Log.StoreIndex(\"example\", new()\n    {\n        Project = example.ProjectName,\n        Logstore = exampleStore.LogstoreName,\n        FullText = new AliCloud.Log.Inputs.StoreIndexFullTextArgs\n        {\n            CaseSensitive = true,\n            Token = @\" #$^*\r\n\t\",\n        },\n        FieldSearches = new[]\n        {\n            new AliCloud.Log.Inputs.StoreIndexFieldSearchArgs\n            {\n                Name = \"terraform-example\",\n                EnableAnalytics = true,\n                Type = \"text\",\n                Token = @\" #$^*\r\n\t\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := log.NewStore(ctx, \"example\", \u0026log.StoreArgs{\n\t\t\tProjectName:        example.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(\"example-store\"),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewStoreIndex(ctx, \"example\", \u0026log.StoreIndexArgs{\n\t\t\tProject:  example.ProjectName,\n\t\t\tLogstore: exampleStore.LogstoreName,\n\t\t\tFullText: \u0026log.StoreIndexFullTextArgs{\n\t\t\t\tCaseSensitive: pulumi.Bool(true),\n\t\t\t\tToken:         pulumi.String(\" #$^*\r\\n\t\"),\n\t\t\t},\n\t\t\tFieldSearches: log.StoreIndexFieldSearchArray{\n\t\t\t\t\u0026log.StoreIndexFieldSearchArgs{\n\t\t\t\t\tName:            pulumi.String(\"terraform-example\"),\n\t\t\t\t\tEnableAnalytics: pulumi.Bool(true),\n\t\t\t\t\tType:            pulumi.String(\"text\"),\n\t\t\t\t\tToken:           pulumi.String(\" #$^*\r\\n\t\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.log.StoreIndex;\nimport com.pulumi.alicloud.log.StoreIndexArgs;\nimport com.pulumi.alicloud.log.inputs.StoreIndexFullTextArgs;\nimport com.pulumi.alicloud.log.inputs.StoreIndexFieldSearchArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .projectName(String.format(\"terraform-example-%s\", default_.result()))\n            .description(\"terraform-example\")\n            .build());\n\n        var exampleStore = new Store(\"exampleStore\", StoreArgs.builder()\n            .projectName(example.projectName())\n            .logstoreName(\"example-store\")\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var exampleStoreIndex = new StoreIndex(\"exampleStoreIndex\", StoreIndexArgs.builder()\n            .project(example.projectName())\n            .logstore(exampleStore.logstoreName())\n            .fullText(StoreIndexFullTextArgs.builder()\n                .caseSensitive(true)\n                .token(\"\"\"\n #$^*\r\n\t                \"\"\")\n                .build())\n            .fieldSearches(StoreIndexFieldSearchArgs.builder()\n                .name(\"terraform-example\")\n                .enableAnalytics(true)\n                .type(\"text\")\n                .token(\"\"\"\n #$^*\r\n\t                \"\"\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:log:Project\n    properties:\n      projectName: terraform-example-${default.result}\n      description: terraform-example\n  exampleStore:\n    type: alicloud:log:Store\n    name: example\n    properties:\n      projectName: ${example.projectName}\n      logstoreName: example-store\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  exampleStoreIndex:\n    type: alicloud:log:StoreIndex\n    name: example\n    properties:\n      project: ${example.projectName}\n      logstore: ${exampleStore.logstoreName}\n      fullText:\n        caseSensitive: true\n        token: \" #$^*\\r\\n\\t\"\n      fieldSearches:\n        - name: terraform-example\n          enableAnalytics: true\n          type: text\n          token: \" #$^*\\r\\n\\t\"\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use the existing sls module \nto create SLS project, store and store index one-click, like ECS instances.\n\n## Import\n\nLog store index can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:log/storeIndex:StoreIndex example tf-log:tf-log-store\n```\n\n","properties":{"fieldSearches":{"type":"array","items":{"$ref":"#/types/alicloud:log/StoreIndexFieldSearch:StoreIndexFieldSearch"},"description":"List configurations of field search index. See \u003cspan pulumi-lang-nodejs=\"`fieldSearch`\" pulumi-lang-dotnet=\"`FieldSearch`\" pulumi-lang-go=\"`fieldSearch`\" pulumi-lang-python=\"`field_search`\" pulumi-lang-yaml=\"`fieldSearch`\" pulumi-lang-java=\"`fieldSearch`\"\u003e`field_search`\u003c/span\u003e below.\n\n\u003e **Note:** At least one of the \u003cspan pulumi-lang-nodejs=\"\"fullText\"\" pulumi-lang-dotnet=\"\"FullText\"\" pulumi-lang-go=\"\"fullText\"\" pulumi-lang-python=\"\"full_text\"\" pulumi-lang-yaml=\"\"fullText\"\" pulumi-lang-java=\"\"fullText\"\"\u003e\"full_text\"\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"\"fieldSearch\"\" pulumi-lang-dotnet=\"\"FieldSearch\"\" pulumi-lang-go=\"\"fieldSearch\"\" pulumi-lang-python=\"\"field_search\"\" pulumi-lang-yaml=\"\"fieldSearch\"\" pulumi-lang-java=\"\"fieldSearch\"\"\u003e\"field_search\"\u003c/span\u003e should be specified.\n"},"fullText":{"$ref":"#/types/alicloud:log/StoreIndexFullText:StoreIndexFullText","description":"The configuration of full text index. See \u003cspan pulumi-lang-nodejs=\"`fullText`\" pulumi-lang-dotnet=\"`FullText`\" pulumi-lang-go=\"`fullText`\" pulumi-lang-python=\"`full_text`\" pulumi-lang-yaml=\"`fullText`\" pulumi-lang-java=\"`fullText`\"\u003e`full_text`\u003c/span\u003e below.\n"},"logReduce":{"type":"boolean","description":"Whether to enable log reduce. Default to false.\n"},"logReduceBlackLists":{"type":"array","items":{"type":"string"},"description":"The black list of log reduce.\n"},"logReduceWhiteLists":{"type":"array","items":{"type":"string"},"description":"The white list of log reduce.\n"},"logstore":{"type":"string","description":"The log store name to the query index belongs.\n"},"maxTextLen":{"type":"integer","description":"The max text length.\n"},"project":{"type":"string","description":"The project name to the log store belongs.\n"}},"required":["logstore","project"],"inputProperties":{"fieldSearches":{"type":"array","items":{"$ref":"#/types/alicloud:log/StoreIndexFieldSearch:StoreIndexFieldSearch"},"description":"List configurations of field search index. See \u003cspan pulumi-lang-nodejs=\"`fieldSearch`\" pulumi-lang-dotnet=\"`FieldSearch`\" pulumi-lang-go=\"`fieldSearch`\" pulumi-lang-python=\"`field_search`\" pulumi-lang-yaml=\"`fieldSearch`\" pulumi-lang-java=\"`fieldSearch`\"\u003e`field_search`\u003c/span\u003e below.\n\n\u003e **Note:** At least one of the \u003cspan pulumi-lang-nodejs=\"\"fullText\"\" pulumi-lang-dotnet=\"\"FullText\"\" pulumi-lang-go=\"\"fullText\"\" pulumi-lang-python=\"\"full_text\"\" pulumi-lang-yaml=\"\"fullText\"\" pulumi-lang-java=\"\"fullText\"\"\u003e\"full_text\"\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"\"fieldSearch\"\" pulumi-lang-dotnet=\"\"FieldSearch\"\" pulumi-lang-go=\"\"fieldSearch\"\" pulumi-lang-python=\"\"field_search\"\" pulumi-lang-yaml=\"\"fieldSearch\"\" pulumi-lang-java=\"\"fieldSearch\"\"\u003e\"field_search\"\u003c/span\u003e should be specified.\n"},"fullText":{"$ref":"#/types/alicloud:log/StoreIndexFullText:StoreIndexFullText","description":"The configuration of full text index. See \u003cspan pulumi-lang-nodejs=\"`fullText`\" pulumi-lang-dotnet=\"`FullText`\" pulumi-lang-go=\"`fullText`\" pulumi-lang-python=\"`full_text`\" pulumi-lang-yaml=\"`fullText`\" pulumi-lang-java=\"`fullText`\"\u003e`full_text`\u003c/span\u003e below.\n"},"logReduce":{"type":"boolean","description":"Whether to enable log reduce. Default to false.\n"},"logReduceBlackLists":{"type":"array","items":{"type":"string"},"description":"The black list of log reduce.\n"},"logReduceWhiteLists":{"type":"array","items":{"type":"string"},"description":"The white list of log reduce.\n"},"logstore":{"type":"string","description":"The log store name to the query index belongs.\n","willReplaceOnChanges":true},"maxTextLen":{"type":"integer","description":"The max text length.\n"},"project":{"type":"string","description":"The project name to the log store belongs.\n","willReplaceOnChanges":true}},"requiredInputs":["logstore","project"],"stateInputs":{"description":"Input properties used for looking up and filtering StoreIndex resources.\n","properties":{"fieldSearches":{"type":"array","items":{"$ref":"#/types/alicloud:log/StoreIndexFieldSearch:StoreIndexFieldSearch"},"description":"List configurations of field search index. See \u003cspan pulumi-lang-nodejs=\"`fieldSearch`\" pulumi-lang-dotnet=\"`FieldSearch`\" pulumi-lang-go=\"`fieldSearch`\" pulumi-lang-python=\"`field_search`\" pulumi-lang-yaml=\"`fieldSearch`\" pulumi-lang-java=\"`fieldSearch`\"\u003e`field_search`\u003c/span\u003e below.\n\n\u003e **Note:** At least one of the \u003cspan pulumi-lang-nodejs=\"\"fullText\"\" pulumi-lang-dotnet=\"\"FullText\"\" pulumi-lang-go=\"\"fullText\"\" pulumi-lang-python=\"\"full_text\"\" pulumi-lang-yaml=\"\"fullText\"\" pulumi-lang-java=\"\"fullText\"\"\u003e\"full_text\"\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"\"fieldSearch\"\" pulumi-lang-dotnet=\"\"FieldSearch\"\" pulumi-lang-go=\"\"fieldSearch\"\" pulumi-lang-python=\"\"field_search\"\" pulumi-lang-yaml=\"\"fieldSearch\"\" pulumi-lang-java=\"\"fieldSearch\"\"\u003e\"field_search\"\u003c/span\u003e should be specified.\n"},"fullText":{"$ref":"#/types/alicloud:log/StoreIndexFullText:StoreIndexFullText","description":"The configuration of full text index. See \u003cspan pulumi-lang-nodejs=\"`fullText`\" pulumi-lang-dotnet=\"`FullText`\" pulumi-lang-go=\"`fullText`\" pulumi-lang-python=\"`full_text`\" pulumi-lang-yaml=\"`fullText`\" pulumi-lang-java=\"`fullText`\"\u003e`full_text`\u003c/span\u003e below.\n"},"logReduce":{"type":"boolean","description":"Whether to enable log reduce. Default to false.\n"},"logReduceBlackLists":{"type":"array","items":{"type":"string"},"description":"The black list of log reduce.\n"},"logReduceWhiteLists":{"type":"array","items":{"type":"string"},"description":"The white list of log reduce.\n"},"logstore":{"type":"string","description":"The log store name to the query index belongs.\n","willReplaceOnChanges":true},"maxTextLen":{"type":"integer","description":"The max text length.\n"},"project":{"type":"string","description":"The project name to the log store belongs.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:marketplace/order:Order":{"description":"Provides a market order resource.\n\n\u003e **NOTE:** Terraform will auto build a market order  while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.marketplace.Order`\" pulumi-lang-dotnet=\"`alicloud.marketplace.Order`\" pulumi-lang-go=\"`marketplace.Order`\" pulumi-lang-python=\"`marketplace.Order`\" pulumi-lang-yaml=\"`alicloud.marketplace.Order`\" pulumi-lang-java=\"`alicloud.marketplace.Order`\"\u003e`alicloud.marketplace.Order`\u003c/span\u003e to build a market order resource.\n\n\u003e **NOTE:** Available since v1.69.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst order = new alicloud.marketplace.Order(\"order\", {\n    productCode: \"cmapi033136\",\n    payType: \"PrePaid\",\n    quantity: 1,\n    duration: 1,\n    pricingCycle: \"Month\",\n    packageVersion: \"yuncode2713600001\",\n    couponId: \"\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\norder = alicloud.marketplace.Order(\"order\",\n    product_code=\"cmapi033136\",\n    pay_type=\"PrePaid\",\n    quantity=1,\n    duration=1,\n    pricing_cycle=\"Month\",\n    package_version=\"yuncode2713600001\",\n    coupon_id=\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var order = new AliCloud.MarketPlace.Order(\"order\", new()\n    {\n        ProductCode = \"cmapi033136\",\n        PayType = \"PrePaid\",\n        Quantity = 1,\n        Duration = 1,\n        PricingCycle = \"Month\",\n        PackageVersion = \"yuncode2713600001\",\n        CouponId = \"\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/marketplace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := marketplace.NewOrder(ctx, \"order\", \u0026marketplace.OrderArgs{\n\t\t\tProductCode:    pulumi.String(\"cmapi033136\"),\n\t\t\tPayType:        pulumi.String(\"PrePaid\"),\n\t\t\tQuantity:       pulumi.Int(1),\n\t\t\tDuration:       pulumi.Int(1),\n\t\t\tPricingCycle:   pulumi.String(\"Month\"),\n\t\t\tPackageVersion: pulumi.String(\"yuncode2713600001\"),\n\t\t\tCouponId:       pulumi.String(\"\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.marketplace.Order;\nimport com.pulumi.alicloud.marketplace.OrderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var order = new Order(\"order\", OrderArgs.builder()\n            .productCode(\"cmapi033136\")\n            .payType(\"PrePaid\")\n            .quantity(1)\n            .duration(1)\n            .pricingCycle(\"Month\")\n            .packageVersion(\"yuncode2713600001\")\n            .couponId(\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  order:\n    type: alicloud:marketplace:Order\n    properties:\n      productCode: cmapi033136\n      payType: PrePaid\n      quantity: 1\n      duration: 1\n      pricingCycle: Month\n      packageVersion: yuncode2713600001\n      couponId: \"\"\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMarket order can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:marketplace/order:Order order your-order-id\n```\n \n\n","properties":{"components":{"type":"object","additionalProperties":{"type":"string"},"description":"Service providers customize additional components.\n"},"couponId":{"type":"string","description":"The coupon id of the market product.\n"},"duration":{"type":"integer","description":"The number of purchase cycles.\n"},"packageVersion":{"type":"string","description":"The package version of the market product.\n"},"payType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`,System default to `PostPaid`.\n"},"pricingCycle":{"type":"string","description":"The purchase cycle of the product, valid values are `Day`, `Month` and `Year`.\n"},"productCode":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" productCode \" pulumi-lang-dotnet=\" ProductCode \" pulumi-lang-go=\" productCode \" pulumi-lang-python=\" product_code \" pulumi-lang-yaml=\" productCode \" pulumi-lang-java=\" productCode \"\u003e product_code \u003c/span\u003eof market place product.\n"},"quantity":{"type":"integer","description":"The quantity of the market product will be purchased.\n"}},"required":["packageVersion","pricingCycle","productCode"],"inputProperties":{"components":{"type":"object","additionalProperties":{"type":"string"},"description":"Service providers customize additional components.\n","willReplaceOnChanges":true},"couponId":{"type":"string","description":"The coupon id of the market product.\n","willReplaceOnChanges":true},"duration":{"type":"integer","description":"The number of purchase cycles.\n","willReplaceOnChanges":true},"packageVersion":{"type":"string","description":"The package version of the market product.\n","willReplaceOnChanges":true},"payType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`,System default to `PostPaid`.\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The purchase cycle of the product, valid values are `Day`, `Month` and `Year`.\n","willReplaceOnChanges":true},"productCode":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" productCode \" pulumi-lang-dotnet=\" ProductCode \" pulumi-lang-go=\" productCode \" pulumi-lang-python=\" product_code \" pulumi-lang-yaml=\" productCode \" pulumi-lang-java=\" productCode \"\u003e product_code \u003c/span\u003eof market place product.\n","willReplaceOnChanges":true},"quantity":{"type":"integer","description":"The quantity of the market product will be purchased.\n","willReplaceOnChanges":true}},"requiredInputs":["packageVersion","pricingCycle","productCode"],"stateInputs":{"description":"Input properties used for looking up and filtering Order resources.\n","properties":{"components":{"type":"object","additionalProperties":{"type":"string"},"description":"Service providers customize additional components.\n","willReplaceOnChanges":true},"couponId":{"type":"string","description":"The coupon id of the market product.\n","willReplaceOnChanges":true},"duration":{"type":"integer","description":"The number of purchase cycles.\n","willReplaceOnChanges":true},"packageVersion":{"type":"string","description":"The package version of the market product.\n","willReplaceOnChanges":true},"payType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`,System default to `PostPaid`.\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The purchase cycle of the product, valid values are `Day`, `Month` and `Year`.\n","willReplaceOnChanges":true},"productCode":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" productCode \" pulumi-lang-dotnet=\" ProductCode \" pulumi-lang-go=\" productCode \" pulumi-lang-python=\" product_code \" pulumi-lang-yaml=\" productCode \" pulumi-lang-java=\" productCode \"\u003e product_code \u003c/span\u003eof market place product.\n","willReplaceOnChanges":true},"quantity":{"type":"integer","description":"The quantity of the market product will be purchased.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:maxcompute/project:Project":{"description":"Provides a Max Compute Project resource.\n\nMaxCompute project .\n\nFor information about Max Compute Project and how to use it, see [What is Project](https://www.alibabacloud.com/help/en/maxcompute/user-guide/api-maxcompute-2022-01-04-createproject).\n\n\u003e **NOTE:** Available since v1.77.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = new alicloud.maxcompute.Project(\"default\", {\n    defaultQuota: \"os_PayAsYouGoQuota\",\n    projectName: name,\n    comment: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.maxcompute.Project(\"default\",\n    default_quota=\"os_PayAsYouGoQuota\",\n    project_name=name,\n    comment=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = new AliCloud.MaxCompute.Project(\"default\", new()\n    {\n        DefaultQuota = \"os_PayAsYouGoQuota\",\n        ProjectName = name,\n        Comment = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/maxcompute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := maxcompute.NewProject(ctx, \"default\", \u0026maxcompute.ProjectArgs{\n\t\t\tDefaultQuota: pulumi.String(\"os_PayAsYouGoQuota\"),\n\t\t\tProjectName:  pulumi.String(name),\n\t\t\tComment:      pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.maxcompute.Project;\nimport com.pulumi.alicloud.maxcompute.ProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var default_ = new Project(\"default\", ProjectArgs.builder()\n            .defaultQuota(\"os_PayAsYouGoQuota\")\n            .projectName(name)\n            .comment(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  default:\n    type: alicloud:maxcompute:Project\n    properties:\n      defaultQuota: os_PayAsYouGoQuota\n      projectName: ${name}\n      comment: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMax Compute Project can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:maxcompute/project:Project example \u003cid\u003e\n```\n\n","properties":{"comment":{"type":"string","description":"Project description information. The length is 1 to 256 English or Chinese characters. The default value is blank.\n"},"createTime":{"type":"string","description":"Represents the creation time of the project\n"},"defaultQuota":{"type":"string","description":"Used to implement computing resource allocation. Valid values: subQuota Nickname\nIf the calculation Quota is not specified, the default Quota resource will be consumed by jobs initiated by the project. For more information about computing resource usage, see [Computing Resource Usage](https://www.alibabacloud.com/help/en/maxcompute/user-guide/use-of-computing-resources).\n"},"ipWhiteList":{"$ref":"#/types/alicloud:maxcompute/ProjectIpWhiteList:ProjectIpWhiteList","description":"IP whitelist See \u003cspan pulumi-lang-nodejs=\"`ipWhiteList`\" pulumi-lang-dotnet=\"`IpWhiteList`\" pulumi-lang-go=\"`ipWhiteList`\" pulumi-lang-python=\"`ip_white_list`\" pulumi-lang-yaml=\"`ipWhiteList`\" pulumi-lang-java=\"`ipWhiteList`\"\u003e`ip_white_list`\u003c/span\u003e below.\n"},"isLogical":{"type":"string","description":"Whether to logically delete. Default value: true. Value: (ture/false),\n\n\u003e **NOTE:** -- ture: In this case, the project status will be changed to' deleting' and completely deleted after 14 days. -- false: delete immediately, that is, completely deleted and permanently irrecoverable.\n"},"owner":{"type":"string","description":"Project owner\n"},"productType":{"type":"string"},"projectName":{"type":"string","description":"The name begins with a letter, containing letters, digits, and underscores (_). It can be 3 to 28 characters in length and is globally unique.\n"},"properties":{"$ref":"#/types/alicloud:maxcompute/ProjectProperties:ProjectProperties","description":"Project base attributes See \u003cspan pulumi-lang-nodejs=\"`properties`\" pulumi-lang-dotnet=\"`Properties`\" pulumi-lang-go=\"`properties`\" pulumi-lang-python=\"`properties`\" pulumi-lang-yaml=\"`properties`\" pulumi-lang-java=\"`properties`\"\u003e`properties`\u003c/span\u003e below.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"securityProperties":{"$ref":"#/types/alicloud:maxcompute/ProjectSecurityProperties:ProjectSecurityProperties","description":"Security-related attributes See \u003cspan pulumi-lang-nodejs=\"`securityProperties`\" pulumi-lang-dotnet=\"`SecurityProperties`\" pulumi-lang-go=\"`securityProperties`\" pulumi-lang-python=\"`security_properties`\" pulumi-lang-yaml=\"`securityProperties`\" pulumi-lang-java=\"`securityProperties`\"\u003e`security_properties`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The project status. Default value: AVAILABLE. Value: (AVAILABLE/READONLY/FROZEN/DELETING)\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"threeTierModel":{"type":"boolean","description":"Indicates whether data storage by schema is supported. Valid values:\n"},"type":{"type":"string","description":"Project type\n"}},"required":["createTime","owner","projectName","properties","regionId","securityProperties","status","threeTierModel","type"],"inputProperties":{"comment":{"type":"string","description":"Project description information. The length is 1 to 256 English or Chinese characters. The default value is blank.\n","willReplaceOnChanges":true},"defaultQuota":{"type":"string","description":"Used to implement computing resource allocation. Valid values: subQuota Nickname\nIf the calculation Quota is not specified, the default Quota resource will be consumed by jobs initiated by the project. For more information about computing resource usage, see [Computing Resource Usage](https://www.alibabacloud.com/help/en/maxcompute/user-guide/use-of-computing-resources).\n"},"ipWhiteList":{"$ref":"#/types/alicloud:maxcompute/ProjectIpWhiteList:ProjectIpWhiteList","description":"IP whitelist See \u003cspan pulumi-lang-nodejs=\"`ipWhiteList`\" pulumi-lang-dotnet=\"`IpWhiteList`\" pulumi-lang-go=\"`ipWhiteList`\" pulumi-lang-python=\"`ip_white_list`\" pulumi-lang-yaml=\"`ipWhiteList`\" pulumi-lang-java=\"`ipWhiteList`\"\u003e`ip_white_list`\u003c/span\u003e below.\n"},"isLogical":{"type":"string","description":"Whether to logically delete. Default value: true. Value: (ture/false),\n\n\u003e **NOTE:** -- ture: In this case, the project status will be changed to' deleting' and completely deleted after 14 days. -- false: delete immediately, that is, completely deleted and permanently irrecoverable.\n"},"productType":{"type":"string"},"projectName":{"type":"string","description":"The name begins with a letter, containing letters, digits, and underscores (_). It can be 3 to 28 characters in length and is globally unique.\n","willReplaceOnChanges":true},"properties":{"$ref":"#/types/alicloud:maxcompute/ProjectProperties:ProjectProperties","description":"Project base attributes See \u003cspan pulumi-lang-nodejs=\"`properties`\" pulumi-lang-dotnet=\"`Properties`\" pulumi-lang-go=\"`properties`\" pulumi-lang-python=\"`properties`\" pulumi-lang-yaml=\"`properties`\" pulumi-lang-java=\"`properties`\"\u003e`properties`\u003c/span\u003e below.\n"},"securityProperties":{"$ref":"#/types/alicloud:maxcompute/ProjectSecurityProperties:ProjectSecurityProperties","description":"Security-related attributes See \u003cspan pulumi-lang-nodejs=\"`securityProperties`\" pulumi-lang-dotnet=\"`SecurityProperties`\" pulumi-lang-go=\"`securityProperties`\" pulumi-lang-python=\"`security_properties`\" pulumi-lang-yaml=\"`securityProperties`\" pulumi-lang-java=\"`securityProperties`\"\u003e`security_properties`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The project status. Default value: AVAILABLE. Value: (AVAILABLE/READONLY/FROZEN/DELETING)\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"threeTierModel":{"type":"boolean","description":"Indicates whether data storage by schema is supported. Valid values:\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Project resources.\n","properties":{"comment":{"type":"string","description":"Project description information. The length is 1 to 256 English or Chinese characters. The default value is blank.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"Represents the creation time of the project\n"},"defaultQuota":{"type":"string","description":"Used to implement computing resource allocation. Valid values: subQuota Nickname\nIf the calculation Quota is not specified, the default Quota resource will be consumed by jobs initiated by the project. For more information about computing resource usage, see [Computing Resource Usage](https://www.alibabacloud.com/help/en/maxcompute/user-guide/use-of-computing-resources).\n"},"ipWhiteList":{"$ref":"#/types/alicloud:maxcompute/ProjectIpWhiteList:ProjectIpWhiteList","description":"IP whitelist See \u003cspan pulumi-lang-nodejs=\"`ipWhiteList`\" pulumi-lang-dotnet=\"`IpWhiteList`\" pulumi-lang-go=\"`ipWhiteList`\" pulumi-lang-python=\"`ip_white_list`\" pulumi-lang-yaml=\"`ipWhiteList`\" pulumi-lang-java=\"`ipWhiteList`\"\u003e`ip_white_list`\u003c/span\u003e below.\n"},"isLogical":{"type":"string","description":"Whether to logically delete. Default value: true. Value: (ture/false),\n\n\u003e **NOTE:** -- ture: In this case, the project status will be changed to' deleting' and completely deleted after 14 days. -- false: delete immediately, that is, completely deleted and permanently irrecoverable.\n"},"owner":{"type":"string","description":"Project owner\n"},"productType":{"type":"string"},"projectName":{"type":"string","description":"The name begins with a letter, containing letters, digits, and underscores (_). It can be 3 to 28 characters in length and is globally unique.\n","willReplaceOnChanges":true},"properties":{"$ref":"#/types/alicloud:maxcompute/ProjectProperties:ProjectProperties","description":"Project base attributes See \u003cspan pulumi-lang-nodejs=\"`properties`\" pulumi-lang-dotnet=\"`Properties`\" pulumi-lang-go=\"`properties`\" pulumi-lang-python=\"`properties`\" pulumi-lang-yaml=\"`properties`\" pulumi-lang-java=\"`properties`\"\u003e`properties`\u003c/span\u003e below.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"securityProperties":{"$ref":"#/types/alicloud:maxcompute/ProjectSecurityProperties:ProjectSecurityProperties","description":"Security-related attributes See \u003cspan pulumi-lang-nodejs=\"`securityProperties`\" pulumi-lang-dotnet=\"`SecurityProperties`\" pulumi-lang-go=\"`securityProperties`\" pulumi-lang-python=\"`security_properties`\" pulumi-lang-yaml=\"`securityProperties`\" pulumi-lang-java=\"`securityProperties`\"\u003e`security_properties`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The project status. Default value: AVAILABLE. Value: (AVAILABLE/READONLY/FROZEN/DELETING)\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"threeTierModel":{"type":"boolean","description":"Indicates whether data storage by schema is supported. Valid values:\n"},"type":{"type":"string","description":"Project type\n"}},"type":"object"}},"alicloud:maxcompute/quota:Quota":{"description":"Provides a Max Compute Quota resource.\n\n\n\nFor information about Max Compute Quota and how to use it, see [What is Quota](https://next.api.alibabacloud.com/document/MaxCompute/2022-01-04/CreateQuota).\n\n\u003e **NOTE:** Available since v1.247.0.\n\n\u003e **NOTE:** This resource will be reconstructed in future versions due to breaking changes and should not be used in production. We recommend upgrading to the latest provider version after May 20, 2025 (subject to change). For assistance, please file a support ticket with the MaxCompute product team directly.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraformexample\";\nconst partNickName = config.get(\"partNickName\") || \"TFTest17292\";\nconst subQuotaNickname3 = config.get(\"subQuotaNickname3\") || \"sub398892\";\nconst subQuotaNickname1 = config.get(\"subQuotaNickname1\") || \"sub129792\";\nconst subQuotaNickname2 = config.get(\"subQuotaNickname2\") || \"sub223192\";\nconst _default = new alicloud.maxcompute.Quota(\"default\", {\n    paymentType: \"Subscription\",\n    partNickName: partNickName,\n    commodityData: \"{\\\"CU\\\":80,\\\"ord_time\\\":\\\"1:Month\\\",\\\"autoRenew\\\":false} \",\n    commodityCode: \"odpsplus\",\n    subQuotaInfoLists: [\n        {\n            parameter: {\n                minCu: 10,\n                maxCu: 60,\n                enablePriority: false,\n                forceReservedMin: false,\n                schedulerType: \"Fifo\",\n                singleJobCuLimit: 10,\n            },\n            nickName: `os_${partNickName}`,\n            type: \"FUXI_OFFLINE\",\n        },\n        {\n            parameter: {\n                minCu: 10,\n                maxCu: 10,\n                schedulerType: \"Fair\",\n                enablePriority: false,\n                forceReservedMin: false,\n            },\n            nickName: subQuotaNickname1,\n            type: \"FUXI_OFFLINE\",\n        },\n        {\n            nickName: subQuotaNickname2,\n            type: \"FUXI_OFFLINE\",\n            parameter: {\n                minCu: 60,\n                maxCu: 60,\n                schedulerType: \"Fair\",\n                enablePriority: true,\n                forceReservedMin: true,\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraformexample\"\npart_nick_name = config.get(\"partNickName\")\nif part_nick_name is None:\n    part_nick_name = \"TFTest17292\"\nsub_quota_nickname3 = config.get(\"subQuotaNickname3\")\nif sub_quota_nickname3 is None:\n    sub_quota_nickname3 = \"sub398892\"\nsub_quota_nickname1 = config.get(\"subQuotaNickname1\")\nif sub_quota_nickname1 is None:\n    sub_quota_nickname1 = \"sub129792\"\nsub_quota_nickname2 = config.get(\"subQuotaNickname2\")\nif sub_quota_nickname2 is None:\n    sub_quota_nickname2 = \"sub223192\"\ndefault = alicloud.maxcompute.Quota(\"default\",\n    payment_type=\"Subscription\",\n    part_nick_name=part_nick_name,\n    commodity_data=\"{\\\"CU\\\":80,\\\"ord_time\\\":\\\"1:Month\\\",\\\"autoRenew\\\":false} \",\n    commodity_code=\"odpsplus\",\n    sub_quota_info_lists=[\n        {\n            \"parameter\": {\n                \"min_cu\": 10,\n                \"max_cu\": 60,\n                \"enable_priority\": False,\n                \"force_reserved_min\": False,\n                \"scheduler_type\": \"Fifo\",\n                \"single_job_cu_limit\": 10,\n            },\n            \"nick_name\": f\"os_{part_nick_name}\",\n            \"type\": \"FUXI_OFFLINE\",\n        },\n        {\n            \"parameter\": {\n                \"min_cu\": 10,\n                \"max_cu\": 10,\n                \"scheduler_type\": \"Fair\",\n                \"enable_priority\": False,\n                \"force_reserved_min\": False,\n            },\n            \"nick_name\": sub_quota_nickname1,\n            \"type\": \"FUXI_OFFLINE\",\n        },\n        {\n            \"nick_name\": sub_quota_nickname2,\n            \"type\": \"FUXI_OFFLINE\",\n            \"parameter\": {\n                \"min_cu\": 60,\n                \"max_cu\": 60,\n                \"scheduler_type\": \"Fair\",\n                \"enable_priority\": True,\n                \"force_reserved_min\": True,\n            },\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraformexample\";\n    var partNickName = config.Get(\"partNickName\") ?? \"TFTest17292\";\n    var subQuotaNickname3 = config.Get(\"subQuotaNickname3\") ?? \"sub398892\";\n    var subQuotaNickname1 = config.Get(\"subQuotaNickname1\") ?? \"sub129792\";\n    var subQuotaNickname2 = config.Get(\"subQuotaNickname2\") ?? \"sub223192\";\n    var @default = new AliCloud.MaxCompute.Quota(\"default\", new()\n    {\n        PaymentType = \"Subscription\",\n        PartNickName = partNickName,\n        CommodityData = \"{\\\"CU\\\":80,\\\"ord_time\\\":\\\"1:Month\\\",\\\"autoRenew\\\":false} \",\n        CommodityCode = \"odpsplus\",\n        SubQuotaInfoLists = new[]\n        {\n            new AliCloud.MaxCompute.Inputs.QuotaSubQuotaInfoListArgs\n            {\n                Parameter = new AliCloud.MaxCompute.Inputs.QuotaSubQuotaInfoListParameterArgs\n                {\n                    MinCu = 10,\n                    MaxCu = 60,\n                    EnablePriority = false,\n                    ForceReservedMin = false,\n                    SchedulerType = \"Fifo\",\n                    SingleJobCuLimit = 10,\n                },\n                NickName = $\"os_{partNickName}\",\n                Type = \"FUXI_OFFLINE\",\n            },\n            new AliCloud.MaxCompute.Inputs.QuotaSubQuotaInfoListArgs\n            {\n                Parameter = new AliCloud.MaxCompute.Inputs.QuotaSubQuotaInfoListParameterArgs\n                {\n                    MinCu = 10,\n                    MaxCu = 10,\n                    SchedulerType = \"Fair\",\n                    EnablePriority = false,\n                    ForceReservedMin = false,\n                },\n                NickName = subQuotaNickname1,\n                Type = \"FUXI_OFFLINE\",\n            },\n            new AliCloud.MaxCompute.Inputs.QuotaSubQuotaInfoListArgs\n            {\n                NickName = subQuotaNickname2,\n                Type = \"FUXI_OFFLINE\",\n                Parameter = new AliCloud.MaxCompute.Inputs.QuotaSubQuotaInfoListParameterArgs\n                {\n                    MinCu = 60,\n                    MaxCu = 60,\n                    SchedulerType = \"Fair\",\n                    EnablePriority = true,\n                    ForceReservedMin = true,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/maxcompute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraformexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tpartNickName := \"TFTest17292\"\n\t\tif param := cfg.Get(\"partNickName\"); param != \"\" {\n\t\t\tpartNickName = param\n\t\t}\n\t\tsubQuotaNickname3 := \"sub398892\"\n\t\tif param := cfg.Get(\"subQuotaNickname3\"); param != \"\" {\n\t\t\tsubQuotaNickname3 = param\n\t\t}\n\t\tsubQuotaNickname1 := \"sub129792\"\n\t\tif param := cfg.Get(\"subQuotaNickname1\"); param != \"\" {\n\t\t\tsubQuotaNickname1 = param\n\t\t}\n\t\tsubQuotaNickname2 := \"sub223192\"\n\t\tif param := cfg.Get(\"subQuotaNickname2\"); param != \"\" {\n\t\t\tsubQuotaNickname2 = param\n\t\t}\n\t\t_, err := maxcompute.NewQuota(ctx, \"default\", \u0026maxcompute.QuotaArgs{\n\t\t\tPaymentType:   pulumi.String(\"Subscription\"),\n\t\t\tPartNickName:  pulumi.String(partNickName),\n\t\t\tCommodityData: pulumi.String(\"{\\\"CU\\\":80,\\\"ord_time\\\":\\\"1:Month\\\",\\\"autoRenew\\\":false} \"),\n\t\t\tCommodityCode: pulumi.String(\"odpsplus\"),\n\t\t\tSubQuotaInfoLists: maxcompute.QuotaSubQuotaInfoListArray{\n\t\t\t\t\u0026maxcompute.QuotaSubQuotaInfoListArgs{\n\t\t\t\t\tParameter: \u0026maxcompute.QuotaSubQuotaInfoListParameterArgs{\n\t\t\t\t\t\tMinCu:            pulumi.Int(10),\n\t\t\t\t\t\tMaxCu:            pulumi.Int(60),\n\t\t\t\t\t\tEnablePriority:   pulumi.Bool(false),\n\t\t\t\t\t\tForceReservedMin: pulumi.Bool(false),\n\t\t\t\t\t\tSchedulerType:    pulumi.String(\"Fifo\"),\n\t\t\t\t\t\tSingleJobCuLimit: pulumi.Int(10),\n\t\t\t\t\t},\n\t\t\t\t\tNickName: pulumi.Sprintf(\"os_%v\", partNickName),\n\t\t\t\t\tType:     pulumi.String(\"FUXI_OFFLINE\"),\n\t\t\t\t},\n\t\t\t\t\u0026maxcompute.QuotaSubQuotaInfoListArgs{\n\t\t\t\t\tParameter: \u0026maxcompute.QuotaSubQuotaInfoListParameterArgs{\n\t\t\t\t\t\tMinCu:            pulumi.Int(10),\n\t\t\t\t\t\tMaxCu:            pulumi.Int(10),\n\t\t\t\t\t\tSchedulerType:    pulumi.String(\"Fair\"),\n\t\t\t\t\t\tEnablePriority:   pulumi.Bool(false),\n\t\t\t\t\t\tForceReservedMin: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t\tNickName: pulumi.String(subQuotaNickname1),\n\t\t\t\t\tType:     pulumi.String(\"FUXI_OFFLINE\"),\n\t\t\t\t},\n\t\t\t\t\u0026maxcompute.QuotaSubQuotaInfoListArgs{\n\t\t\t\t\tNickName: pulumi.String(subQuotaNickname2),\n\t\t\t\t\tType:     pulumi.String(\"FUXI_OFFLINE\"),\n\t\t\t\t\tParameter: \u0026maxcompute.QuotaSubQuotaInfoListParameterArgs{\n\t\t\t\t\t\tMinCu:            pulumi.Int(60),\n\t\t\t\t\t\tMaxCu:            pulumi.Int(60),\n\t\t\t\t\t\tSchedulerType:    pulumi.String(\"Fair\"),\n\t\t\t\t\t\tEnablePriority:   pulumi.Bool(true),\n\t\t\t\t\t\tForceReservedMin: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.maxcompute.Quota;\nimport com.pulumi.alicloud.maxcompute.QuotaArgs;\nimport com.pulumi.alicloud.maxcompute.inputs.QuotaSubQuotaInfoListArgs;\nimport com.pulumi.alicloud.maxcompute.inputs.QuotaSubQuotaInfoListParameterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraformexample\");\n        final var partNickName = config.get(\"partNickName\").orElse(\"TFTest17292\");\n        final var subQuotaNickname3 = config.get(\"subQuotaNickname3\").orElse(\"sub398892\");\n        final var subQuotaNickname1 = config.get(\"subQuotaNickname1\").orElse(\"sub129792\");\n        final var subQuotaNickname2 = config.get(\"subQuotaNickname2\").orElse(\"sub223192\");\n        var default_ = new Quota(\"default\", QuotaArgs.builder()\n            .paymentType(\"Subscription\")\n            .partNickName(partNickName)\n            .commodityData(\"{\\\"CU\\\":80,\\\"ord_time\\\":\\\"1:Month\\\",\\\"autoRenew\\\":false} \")\n            .commodityCode(\"odpsplus\")\n            .subQuotaInfoLists(            \n                QuotaSubQuotaInfoListArgs.builder()\n                    .parameter(QuotaSubQuotaInfoListParameterArgs.builder()\n                        .minCu(10)\n                        .maxCu(60)\n                        .enablePriority(false)\n                        .forceReservedMin(false)\n                        .schedulerType(\"Fifo\")\n                        .singleJobCuLimit(10)\n                        .build())\n                    .nickName(String.format(\"os_%s\", partNickName))\n                    .type(\"FUXI_OFFLINE\")\n                    .build(),\n                QuotaSubQuotaInfoListArgs.builder()\n                    .parameter(QuotaSubQuotaInfoListParameterArgs.builder()\n                        .minCu(10)\n                        .maxCu(10)\n                        .schedulerType(\"Fair\")\n                        .enablePriority(false)\n                        .forceReservedMin(false)\n                        .build())\n                    .nickName(subQuotaNickname1)\n                    .type(\"FUXI_OFFLINE\")\n                    .build(),\n                QuotaSubQuotaInfoListArgs.builder()\n                    .nickName(subQuotaNickname2)\n                    .type(\"FUXI_OFFLINE\")\n                    .parameter(QuotaSubQuotaInfoListParameterArgs.builder()\n                        .minCu(60)\n                        .maxCu(60)\n                        .schedulerType(\"Fair\")\n                        .enablePriority(true)\n                        .forceReservedMin(true)\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraformexample\n  partNickName:\n    type: string\n    default: TFTest17292\n  subQuotaNickname3:\n    type: string\n    default: sub398892\n  subQuotaNickname1:\n    type: string\n    default: sub129792\n  subQuotaNickname2:\n    type: string\n    default: sub223192\nresources:\n  default:\n    type: alicloud:maxcompute:Quota\n    properties:\n      paymentType: Subscription\n      partNickName: ${partNickName}\n      commodityData: '{\"CU\":80,\"ord_time\":\"1:Month\",\"autoRenew\":false} '\n      commodityCode: odpsplus\n      subQuotaInfoLists:\n        - parameter:\n            minCu: '10'\n            maxCu: '60'\n            enablePriority: 'false'\n            forceReservedMin: 'false'\n            schedulerType: Fifo\n            singleJobCuLimit: '10'\n          nickName: os_${partNickName}\n          type: FUXI_OFFLINE\n        - parameter:\n            minCu: '10'\n            maxCu: '10'\n            schedulerType: Fair\n            enablePriority: 'false'\n            forceReservedMin: 'false'\n          nickName: ${subQuotaNickname1}\n          type: FUXI_OFFLINE\n        - nickName: ${subQuotaNickname2}\n          type: FUXI_OFFLINE\n          parameter:\n            minCu: '60'\n            maxCu: '60'\n            schedulerType: Fair\n            enablePriority: 'true'\n            forceReservedMin: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.maxcompute.Quota`\" pulumi-lang-dotnet=\"`alicloud.maxcompute.Quota`\" pulumi-lang-go=\"`maxcompute.Quota`\" pulumi-lang-python=\"`maxcompute.Quota`\" pulumi-lang-yaml=\"`alicloud.maxcompute.Quota`\" pulumi-lang-java=\"`alicloud.maxcompute.Quota`\"\u003e`alicloud.maxcompute.Quota`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.maxcompute.Quota`\" pulumi-lang-dotnet=\"`alicloud.maxcompute.Quota`\" pulumi-lang-go=\"`maxcompute.Quota`\" pulumi-lang-python=\"`maxcompute.Quota`\" pulumi-lang-yaml=\"`alicloud.maxcompute.Quota`\" pulumi-lang-java=\"`alicloud.maxcompute.Quota`\"\u003e`alicloud.maxcompute.Quota`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMax Compute Quota can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:maxcompute/quota:Quota example \u003cid\u003e\n```\n\n","properties":{"commodityCode":{"type":"string","description":"Valid values: odps_intl/odpsplus_intl/odps/odpsplus\n- *NOTE:** --odps_intl: International Station standard post-payment -- odpsplus_intl: International Station standard pre-payment -- odps: China Station standard post-payment -- odpsplus: China Station standard pre-payment\n"},"commodityData":{"type":"string","description":"Define quota rules when creating quotas, for example:{\"CU\":50,\u003cspan pulumi-lang-nodejs=\"\"ordTime\"\" pulumi-lang-dotnet=\"\"OrdTime\"\" pulumi-lang-go=\"\"ordTime\"\" pulumi-lang-python=\"\"ord_time\"\" pulumi-lang-yaml=\"\"ordTime\"\" pulumi-lang-java=\"\"ordTime\"\"\u003e\"ord_time\"\u003c/span\u003e:\"1:Month\",\"autoRenew\":false}.\nCU (minimum quota resource size is 50)\u003cspan pulumi-lang-nodejs=\"\nordTime \" pulumi-lang-dotnet=\"\nOrdTime \" pulumi-lang-go=\"\nordTime \" pulumi-lang-python=\"\nord_time \" pulumi-lang-yaml=\"\nordTime \" pulumi-lang-java=\"\nordTime \"\u003e\nord_time \u003c/span\u003e1:Month/Year (1 means quantity: Month/Year is the unit)\nautoRenew (whether to enable automatic renewal)\nIf PaymentType is PayAsYouGo, you do not need to fill in\n"},"partNickName":{"type":"string","description":"Quota partial nickname, supports English letters and numbers, up to 24 characters\n\n\u003e **NOTE:** If PaymentType is PayAsYouGo, you do not need to fill it in\n"},"paymentType":{"type":"string","description":"Payment type. Valid values: Subscription/PayAsYouGo\n\n\u003e **NOTE:** -- PayAsYouGo only needs to be opened once per region\n"},"subQuotaInfoLists":{"type":"array","items":{"$ref":"#/types/alicloud:maxcompute/QuotaSubQuotaInfoList:QuotaSubQuotaInfoList"},"description":"Secondary Quota list\n\n\u003e **NOTE:** -- Add: If the configuration contains a second-level Quota that does not exist, a second-level Quota is added. -- Delete: If the configuration does not contain the existing secondary Quota, it will be deleted. -- Modify: If the configuration is inconsistent with the existing secondary Quota configuration parameters, the secondary Quota configuration will be updated. -- The default secondary Quota must be configured and cannot be deleted.\nSee \u003cspan pulumi-lang-nodejs=\"`subQuotaInfoList`\" pulumi-lang-dotnet=\"`SubQuotaInfoList`\" pulumi-lang-go=\"`subQuotaInfoList`\" pulumi-lang-python=\"`sub_quota_info_list`\" pulumi-lang-yaml=\"`subQuotaInfoList`\" pulumi-lang-java=\"`subQuotaInfoList`\"\u003e`sub_quota_info_list`\u003c/span\u003e below.\n"}},"required":["commodityCode","paymentType","subQuotaInfoLists"],"inputProperties":{"commodityCode":{"type":"string","description":"Valid values: odps_intl/odpsplus_intl/odps/odpsplus\n- *NOTE:** --odps_intl: International Station standard post-payment -- odpsplus_intl: International Station standard pre-payment -- odps: China Station standard post-payment -- odpsplus: China Station standard pre-payment\n"},"commodityData":{"type":"string","description":"Define quota rules when creating quotas, for example:{\"CU\":50,\u003cspan pulumi-lang-nodejs=\"\"ordTime\"\" pulumi-lang-dotnet=\"\"OrdTime\"\" pulumi-lang-go=\"\"ordTime\"\" pulumi-lang-python=\"\"ord_time\"\" pulumi-lang-yaml=\"\"ordTime\"\" pulumi-lang-java=\"\"ordTime\"\"\u003e\"ord_time\"\u003c/span\u003e:\"1:Month\",\"autoRenew\":false}.\nCU (minimum quota resource size is 50)\u003cspan pulumi-lang-nodejs=\"\nordTime \" pulumi-lang-dotnet=\"\nOrdTime \" pulumi-lang-go=\"\nordTime \" pulumi-lang-python=\"\nord_time \" pulumi-lang-yaml=\"\nordTime \" pulumi-lang-java=\"\nordTime \"\u003e\nord_time \u003c/span\u003e1:Month/Year (1 means quantity: Month/Year is the unit)\nautoRenew (whether to enable automatic renewal)\nIf PaymentType is PayAsYouGo, you do not need to fill in\n"},"partNickName":{"type":"string","description":"Quota partial nickname, supports English letters and numbers, up to 24 characters\n\n\u003e **NOTE:** If PaymentType is PayAsYouGo, you do not need to fill it in\n"},"paymentType":{"type":"string","description":"Payment type. Valid values: Subscription/PayAsYouGo\n\n\u003e **NOTE:** -- PayAsYouGo only needs to be opened once per region\n","willReplaceOnChanges":true},"subQuotaInfoLists":{"type":"array","items":{"$ref":"#/types/alicloud:maxcompute/QuotaSubQuotaInfoList:QuotaSubQuotaInfoList"},"description":"Secondary Quota list\n\n\u003e **NOTE:** -- Add: If the configuration contains a second-level Quota that does not exist, a second-level Quota is added. -- Delete: If the configuration does not contain the existing secondary Quota, it will be deleted. -- Modify: If the configuration is inconsistent with the existing secondary Quota configuration parameters, the secondary Quota configuration will be updated. -- The default secondary Quota must be configured and cannot be deleted.\nSee \u003cspan pulumi-lang-nodejs=\"`subQuotaInfoList`\" pulumi-lang-dotnet=\"`SubQuotaInfoList`\" pulumi-lang-go=\"`subQuotaInfoList`\" pulumi-lang-python=\"`sub_quota_info_list`\" pulumi-lang-yaml=\"`subQuotaInfoList`\" pulumi-lang-java=\"`subQuotaInfoList`\"\u003e`sub_quota_info_list`\u003c/span\u003e below.\n"}},"requiredInputs":["commodityCode","paymentType"],"stateInputs":{"description":"Input properties used for looking up and filtering Quota resources.\n","properties":{"commodityCode":{"type":"string","description":"Valid values: odps_intl/odpsplus_intl/odps/odpsplus\n- *NOTE:** --odps_intl: International Station standard post-payment -- odpsplus_intl: International Station standard pre-payment -- odps: China Station standard post-payment -- odpsplus: China Station standard pre-payment\n"},"commodityData":{"type":"string","description":"Define quota rules when creating quotas, for example:{\"CU\":50,\u003cspan pulumi-lang-nodejs=\"\"ordTime\"\" pulumi-lang-dotnet=\"\"OrdTime\"\" pulumi-lang-go=\"\"ordTime\"\" pulumi-lang-python=\"\"ord_time\"\" pulumi-lang-yaml=\"\"ordTime\"\" pulumi-lang-java=\"\"ordTime\"\"\u003e\"ord_time\"\u003c/span\u003e:\"1:Month\",\"autoRenew\":false}.\nCU (minimum quota resource size is 50)\u003cspan pulumi-lang-nodejs=\"\nordTime \" pulumi-lang-dotnet=\"\nOrdTime \" pulumi-lang-go=\"\nordTime \" pulumi-lang-python=\"\nord_time \" pulumi-lang-yaml=\"\nordTime \" pulumi-lang-java=\"\nordTime \"\u003e\nord_time \u003c/span\u003e1:Month/Year (1 means quantity: Month/Year is the unit)\nautoRenew (whether to enable automatic renewal)\nIf PaymentType is PayAsYouGo, you do not need to fill in\n"},"partNickName":{"type":"string","description":"Quota partial nickname, supports English letters and numbers, up to 24 characters\n\n\u003e **NOTE:** If PaymentType is PayAsYouGo, you do not need to fill it in\n"},"paymentType":{"type":"string","description":"Payment type. Valid values: Subscription/PayAsYouGo\n\n\u003e **NOTE:** -- PayAsYouGo only needs to be opened once per region\n","willReplaceOnChanges":true},"subQuotaInfoLists":{"type":"array","items":{"$ref":"#/types/alicloud:maxcompute/QuotaSubQuotaInfoList:QuotaSubQuotaInfoList"},"description":"Secondary Quota list\n\n\u003e **NOTE:** -- Add: If the configuration contains a second-level Quota that does not exist, a second-level Quota is added. -- Delete: If the configuration does not contain the existing secondary Quota, it will be deleted. -- Modify: If the configuration is inconsistent with the existing secondary Quota configuration parameters, the secondary Quota configuration will be updated. -- The default secondary Quota must be configured and cannot be deleted.\nSee \u003cspan pulumi-lang-nodejs=\"`subQuotaInfoList`\" pulumi-lang-dotnet=\"`SubQuotaInfoList`\" pulumi-lang-go=\"`subQuotaInfoList`\" pulumi-lang-python=\"`sub_quota_info_list`\" pulumi-lang-yaml=\"`subQuotaInfoList`\" pulumi-lang-java=\"`subQuotaInfoList`\"\u003e`sub_quota_info_list`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:maxcompute/quotaPlan:QuotaPlan":{"description":"Provides a Max Compute Quota Plan resource.\n\n\n\nFor information about Max Compute Quota Plan and how to use it, see [What is Quota Plan](https://www.alibabacloud.com/help/en/).\n\n\u003e **NOTE:** Available since v1.242.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst elasticReservedCu = config.get(\"elasticReservedCu\") || \"50\";\nconst _default = new alicloud.maxcompute.QuotaPlan(\"default\", {\n    nickname: \"os_terrform_p\",\n    quota: {\n        parameter: {\n            elasticReservedCu: elasticReservedCu,\n        },\n        subQuotaInfoLists: [\n            {\n                nickName: \"sub_quota\",\n                parameter: {\n                    minCu: 0,\n                    maxCu: 20,\n                    elasticReservedCu: elasticReservedCu,\n                },\n            },\n            {\n                nickName: \"os_terrform\",\n                parameter: {\n                    minCu: 50,\n                    maxCu: 50,\n                    elasticReservedCu: 0,\n                },\n            },\n        ],\n    },\n    planName: \"quota_plan\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nelastic_reserved_cu = config.get(\"elasticReservedCu\")\nif elastic_reserved_cu is None:\n    elastic_reserved_cu = \"50\"\ndefault = alicloud.maxcompute.QuotaPlan(\"default\",\n    nickname=\"os_terrform_p\",\n    quota={\n        \"parameter\": {\n            \"elastic_reserved_cu\": elastic_reserved_cu,\n        },\n        \"sub_quota_info_lists\": [\n            {\n                \"nick_name\": \"sub_quota\",\n                \"parameter\": {\n                    \"min_cu\": 0,\n                    \"max_cu\": 20,\n                    \"elastic_reserved_cu\": elastic_reserved_cu,\n                },\n            },\n            {\n                \"nick_name\": \"os_terrform\",\n                \"parameter\": {\n                    \"min_cu\": 50,\n                    \"max_cu\": 50,\n                    \"elastic_reserved_cu\": 0,\n                },\n            },\n        ],\n    },\n    plan_name=\"quota_plan\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var elasticReservedCu = config.Get(\"elasticReservedCu\") ?? \"50\";\n    var @default = new AliCloud.MaxCompute.QuotaPlan(\"default\", new()\n    {\n        Nickname = \"os_terrform_p\",\n        Quota = new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaArgs\n        {\n            Parameter = new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaParameterArgs\n            {\n                ElasticReservedCu = elasticReservedCu,\n            },\n            SubQuotaInfoLists = new[]\n            {\n                new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaSubQuotaInfoListArgs\n                {\n                    NickName = \"sub_quota\",\n                    Parameter = new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaSubQuotaInfoListParameterArgs\n                    {\n                        MinCu = 0,\n                        MaxCu = 20,\n                        ElasticReservedCu = elasticReservedCu,\n                    },\n                },\n                new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaSubQuotaInfoListArgs\n                {\n                    NickName = \"os_terrform\",\n                    Parameter = new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaSubQuotaInfoListParameterArgs\n                    {\n                        MinCu = 50,\n                        MaxCu = 50,\n                        ElasticReservedCu = 0,\n                    },\n                },\n            },\n        },\n        PlanName = \"quota_plan\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/maxcompute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\telasticReservedCu := \"50\"\n\t\tif param := cfg.Get(\"elasticReservedCu\"); param != \"\" {\n\t\t\telasticReservedCu = param\n\t\t}\n\t\t_, err := maxcompute.NewQuotaPlan(ctx, \"default\", \u0026maxcompute.QuotaPlanArgs{\n\t\t\tNickname: pulumi.String(\"os_terrform_p\"),\n\t\t\tQuota: \u0026maxcompute.QuotaPlanQuotaArgs{\n\t\t\t\tParameter: \u0026maxcompute.QuotaPlanQuotaParameterArgs{\n\t\t\t\t\tElasticReservedCu: pulumi.String(elasticReservedCu),\n\t\t\t\t},\n\t\t\t\tSubQuotaInfoLists: maxcompute.QuotaPlanQuotaSubQuotaInfoListArray{\n\t\t\t\t\t\u0026maxcompute.QuotaPlanQuotaSubQuotaInfoListArgs{\n\t\t\t\t\t\tNickName: pulumi.String(\"sub_quota\"),\n\t\t\t\t\t\tParameter: \u0026maxcompute.QuotaPlanQuotaSubQuotaInfoListParameterArgs{\n\t\t\t\t\t\t\tMinCu:             pulumi.Int(0),\n\t\t\t\t\t\t\tMaxCu:             pulumi.Int(20),\n\t\t\t\t\t\t\tElasticReservedCu: pulumi.String(elasticReservedCu),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026maxcompute.QuotaPlanQuotaSubQuotaInfoListArgs{\n\t\t\t\t\t\tNickName: pulumi.String(\"os_terrform\"),\n\t\t\t\t\t\tParameter: \u0026maxcompute.QuotaPlanQuotaSubQuotaInfoListParameterArgs{\n\t\t\t\t\t\t\tMinCu:             pulumi.Int(50),\n\t\t\t\t\t\t\tMaxCu:             pulumi.Int(50),\n\t\t\t\t\t\t\tElasticReservedCu: pulumi.Int(0),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlanName: pulumi.String(\"quota_plan\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.maxcompute.QuotaPlan;\nimport com.pulumi.alicloud.maxcompute.QuotaPlanArgs;\nimport com.pulumi.alicloud.maxcompute.inputs.QuotaPlanQuotaArgs;\nimport com.pulumi.alicloud.maxcompute.inputs.QuotaPlanQuotaParameterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var elasticReservedCu = config.get(\"elasticReservedCu\").orElse(\"50\");\n        var default_ = new QuotaPlan(\"default\", QuotaPlanArgs.builder()\n            .nickname(\"os_terrform_p\")\n            .quota(QuotaPlanQuotaArgs.builder()\n                .parameter(QuotaPlanQuotaParameterArgs.builder()\n                    .elasticReservedCu(elasticReservedCu)\n                    .build())\n                .subQuotaInfoLists(                \n                    QuotaPlanQuotaSubQuotaInfoListArgs.builder()\n                        .nickName(\"sub_quota\")\n                        .parameter(QuotaPlanQuotaSubQuotaInfoListParameterArgs.builder()\n                            .minCu(0)\n                            .maxCu(20)\n                            .elasticReservedCu(elasticReservedCu)\n                            .build())\n                        .build(),\n                    QuotaPlanQuotaSubQuotaInfoListArgs.builder()\n                        .nickName(\"os_terrform\")\n                        .parameter(QuotaPlanQuotaSubQuotaInfoListParameterArgs.builder()\n                            .minCu(50)\n                            .maxCu(50)\n                            .elasticReservedCu(0)\n                            .build())\n                        .build())\n                .build())\n            .planName(\"quota_plan\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  elasticReservedCu:\n    type: string\n    default: '50'\nresources:\n  default:\n    type: alicloud:maxcompute:QuotaPlan\n    properties:\n      nickname: os_terrform_p\n      quota:\n        parameter:\n          elasticReservedCu: ${elasticReservedCu}\n        subQuotaInfoLists:\n          - nickName: sub_quota\n            parameter:\n              minCu: '0'\n              maxCu: '20'\n              elasticReservedCu: ${elasticReservedCu}\n          - nickName: os_terrform\n            parameter:\n              minCu: '50'\n              maxCu: '50'\n              elasticReservedCu: '0'\n      planName: quota_plan\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMax Compute Quota Plan can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:maxcompute/quotaPlan:QuotaPlan example \u003cnickname\u003e:\u003cplan_name\u003e\n```\n\n","properties":{"isEffective":{"type":"boolean","description":"Whether to take effect immediately. “Valid values: true”  \n.\u003e **NOTE:** when other quota plans in the same quota group take effect, the effective quota group will become invalid. That is, IsEffective will become false. The effective quota plan cannot be deleted.\n"},"nickname":{"type":"string","description":"Quota Name\n"},"planName":{"type":"string","description":"The Quota plan name. Start with a letter, containing letters, numbers, and underscores (_). It is no more than 64 characters long.\n"},"quota":{"$ref":"#/types/alicloud:maxcompute/QuotaPlanQuota:QuotaPlanQuota","description":"Quota property See \u003cspan pulumi-lang-nodejs=\"`quota`\" pulumi-lang-dotnet=\"`Quota`\" pulumi-lang-go=\"`quota`\" pulumi-lang-python=\"`quota`\" pulumi-lang-yaml=\"`quota`\" pulumi-lang-java=\"`quota`\"\u003e`quota`\u003c/span\u003e below.\n"}},"required":["nickname","planName"],"inputProperties":{"isEffective":{"type":"boolean","description":"Whether to take effect immediately. “Valid values: true”  \n.\u003e **NOTE:** when other quota plans in the same quota group take effect, the effective quota group will become invalid. That is, IsEffective will become false. The effective quota plan cannot be deleted.\n"},"nickname":{"type":"string","description":"Quota Name\n","willReplaceOnChanges":true},"planName":{"type":"string","description":"The Quota plan name. Start with a letter, containing letters, numbers, and underscores (_). It is no more than 64 characters long.\n","willReplaceOnChanges":true},"quota":{"$ref":"#/types/alicloud:maxcompute/QuotaPlanQuota:QuotaPlanQuota","description":"Quota property See \u003cspan pulumi-lang-nodejs=\"`quota`\" pulumi-lang-dotnet=\"`Quota`\" pulumi-lang-go=\"`quota`\" pulumi-lang-python=\"`quota`\" pulumi-lang-yaml=\"`quota`\" pulumi-lang-java=\"`quota`\"\u003e`quota`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"requiredInputs":["nickname","planName"],"stateInputs":{"description":"Input properties used for looking up and filtering QuotaPlan resources.\n","properties":{"isEffective":{"type":"boolean","description":"Whether to take effect immediately. “Valid values: true”  \n.\u003e **NOTE:** when other quota plans in the same quota group take effect, the effective quota group will become invalid. That is, IsEffective will become false. The effective quota plan cannot be deleted.\n"},"nickname":{"type":"string","description":"Quota Name\n","willReplaceOnChanges":true},"planName":{"type":"string","description":"The Quota plan name. Start with a letter, containing letters, numbers, and underscores (_). It is no more than 64 characters long.\n","willReplaceOnChanges":true},"quota":{"$ref":"#/types/alicloud:maxcompute/QuotaPlanQuota:QuotaPlanQuota","description":"Quota property See \u003cspan pulumi-lang-nodejs=\"`quota`\" pulumi-lang-dotnet=\"`Quota`\" pulumi-lang-go=\"`quota`\" pulumi-lang-python=\"`quota`\" pulumi-lang-yaml=\"`quota`\" pulumi-lang-java=\"`quota`\"\u003e`quota`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:maxcompute/quotaSchedule:QuotaSchedule":{"description":"Provides a Max Compute Quota Schedule resource.\n\n\n\nFor information about Max Compute Quota Schedule and how to use it, see [What is Quota Schedule](https://www.alibabacloud.com/help/en/).\n\n\u003e **NOTE:** Available since v1.242.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst elasticReservedCu = config.get(\"elasticReservedCu\") || \"0\";\nconst quotaNickName = config.get(\"quotaNickName\") || \"os_terrform_p\";\nconst _default = new alicloud.maxcompute.QuotaPlan(\"default\", {\n    quota: {\n        parameter: {\n            elasticReservedCu: 50,\n        },\n        subQuotaInfoLists: [\n            {\n                nickName: \"sub_quota\",\n                parameter: {\n                    minCu: 0,\n                    maxCu: 20,\n                    elasticReservedCu: 30,\n                },\n            },\n            {\n                nickName: \"os_terrform\",\n                parameter: {\n                    minCu: 50,\n                    maxCu: 50,\n                    elasticReservedCu: 20,\n                },\n            },\n        ],\n    },\n    planName: \"quota_plan1\",\n    nickname: \"os_terrform_p\",\n});\nconst default2 = new alicloud.maxcompute.QuotaPlan(\"default2\", {\n    quota: {\n        parameter: {\n            elasticReservedCu: 50,\n        },\n        subQuotaInfoLists: [\n            {\n                nickName: \"sub_quota\",\n                parameter: {\n                    minCu: 0,\n                    maxCu: 20,\n                    elasticReservedCu: 20,\n                },\n            },\n            {\n                nickName: \"os_terrform\",\n                parameter: {\n                    minCu: 50,\n                    maxCu: 50,\n                    elasticReservedCu: 30,\n                },\n            },\n        ],\n    },\n    planName: \"quota_plan2\",\n    nickname: \"os_terrform_p\",\n});\nconst default3 = new alicloud.maxcompute.QuotaPlan(\"default3\", {\n    quota: {\n        parameter: {\n            elasticReservedCu: 50,\n        },\n        subQuotaInfoLists: [\n            {\n                nickName: \"sub_quota\",\n                parameter: {\n                    minCu: 40,\n                    maxCu: 40,\n                    elasticReservedCu: 40,\n                },\n            },\n            {\n                nickName: \"os_terrform\",\n                parameter: {\n                    minCu: 10,\n                    maxCu: 10,\n                    elasticReservedCu: 10,\n                },\n            },\n        ],\n    },\n    planName: \"quota_plan3\",\n    nickname: \"os_terrform_p\",\n});\nconst defaultQuotaSchedule = new alicloud.maxcompute.QuotaSchedule(\"default\", {\n    timezone: \"UTC+8\",\n    nickname: quotaNickName,\n    scheduleLists: [{\n        plan: \"Default\",\n        condition: {\n            at: \"00:00\",\n        },\n        type: \"daily\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nelastic_reserved_cu = config.get(\"elasticReservedCu\")\nif elastic_reserved_cu is None:\n    elastic_reserved_cu = \"0\"\nquota_nick_name = config.get(\"quotaNickName\")\nif quota_nick_name is None:\n    quota_nick_name = \"os_terrform_p\"\ndefault = alicloud.maxcompute.QuotaPlan(\"default\",\n    quota={\n        \"parameter\": {\n            \"elastic_reserved_cu\": 50,\n        },\n        \"sub_quota_info_lists\": [\n            {\n                \"nick_name\": \"sub_quota\",\n                \"parameter\": {\n                    \"min_cu\": 0,\n                    \"max_cu\": 20,\n                    \"elastic_reserved_cu\": 30,\n                },\n            },\n            {\n                \"nick_name\": \"os_terrform\",\n                \"parameter\": {\n                    \"min_cu\": 50,\n                    \"max_cu\": 50,\n                    \"elastic_reserved_cu\": 20,\n                },\n            },\n        ],\n    },\n    plan_name=\"quota_plan1\",\n    nickname=\"os_terrform_p\")\ndefault2 = alicloud.maxcompute.QuotaPlan(\"default2\",\n    quota={\n        \"parameter\": {\n            \"elastic_reserved_cu\": 50,\n        },\n        \"sub_quota_info_lists\": [\n            {\n                \"nick_name\": \"sub_quota\",\n                \"parameter\": {\n                    \"min_cu\": 0,\n                    \"max_cu\": 20,\n                    \"elastic_reserved_cu\": 20,\n                },\n            },\n            {\n                \"nick_name\": \"os_terrform\",\n                \"parameter\": {\n                    \"min_cu\": 50,\n                    \"max_cu\": 50,\n                    \"elastic_reserved_cu\": 30,\n                },\n            },\n        ],\n    },\n    plan_name=\"quota_plan2\",\n    nickname=\"os_terrform_p\")\ndefault3 = alicloud.maxcompute.QuotaPlan(\"default3\",\n    quota={\n        \"parameter\": {\n            \"elastic_reserved_cu\": 50,\n        },\n        \"sub_quota_info_lists\": [\n            {\n                \"nick_name\": \"sub_quota\",\n                \"parameter\": {\n                    \"min_cu\": 40,\n                    \"max_cu\": 40,\n                    \"elastic_reserved_cu\": 40,\n                },\n            },\n            {\n                \"nick_name\": \"os_terrform\",\n                \"parameter\": {\n                    \"min_cu\": 10,\n                    \"max_cu\": 10,\n                    \"elastic_reserved_cu\": 10,\n                },\n            },\n        ],\n    },\n    plan_name=\"quota_plan3\",\n    nickname=\"os_terrform_p\")\ndefault_quota_schedule = alicloud.maxcompute.QuotaSchedule(\"default\",\n    timezone=\"UTC+8\",\n    nickname=quota_nick_name,\n    schedule_lists=[{\n        \"plan\": \"Default\",\n        \"condition\": {\n            \"at\": \"00:00\",\n        },\n        \"type\": \"daily\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var elasticReservedCu = config.Get(\"elasticReservedCu\") ?? \"0\";\n    var quotaNickName = config.Get(\"quotaNickName\") ?? \"os_terrform_p\";\n    var @default = new AliCloud.MaxCompute.QuotaPlan(\"default\", new()\n    {\n        Quota = new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaArgs\n        {\n            Parameter = new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaParameterArgs\n            {\n                ElasticReservedCu = 50,\n            },\n            SubQuotaInfoLists = new[]\n            {\n                new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaSubQuotaInfoListArgs\n                {\n                    NickName = \"sub_quota\",\n                    Parameter = new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaSubQuotaInfoListParameterArgs\n                    {\n                        MinCu = 0,\n                        MaxCu = 20,\n                        ElasticReservedCu = 30,\n                    },\n                },\n                new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaSubQuotaInfoListArgs\n                {\n                    NickName = \"os_terrform\",\n                    Parameter = new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaSubQuotaInfoListParameterArgs\n                    {\n                        MinCu = 50,\n                        MaxCu = 50,\n                        ElasticReservedCu = 20,\n                    },\n                },\n            },\n        },\n        PlanName = \"quota_plan1\",\n        Nickname = \"os_terrform_p\",\n    });\n\n    var default2 = new AliCloud.MaxCompute.QuotaPlan(\"default2\", new()\n    {\n        Quota = new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaArgs\n        {\n            Parameter = new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaParameterArgs\n            {\n                ElasticReservedCu = 50,\n            },\n            SubQuotaInfoLists = new[]\n            {\n                new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaSubQuotaInfoListArgs\n                {\n                    NickName = \"sub_quota\",\n                    Parameter = new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaSubQuotaInfoListParameterArgs\n                    {\n                        MinCu = 0,\n                        MaxCu = 20,\n                        ElasticReservedCu = 20,\n                    },\n                },\n                new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaSubQuotaInfoListArgs\n                {\n                    NickName = \"os_terrform\",\n                    Parameter = new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaSubQuotaInfoListParameterArgs\n                    {\n                        MinCu = 50,\n                        MaxCu = 50,\n                        ElasticReservedCu = 30,\n                    },\n                },\n            },\n        },\n        PlanName = \"quota_plan2\",\n        Nickname = \"os_terrform_p\",\n    });\n\n    var default3 = new AliCloud.MaxCompute.QuotaPlan(\"default3\", new()\n    {\n        Quota = new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaArgs\n        {\n            Parameter = new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaParameterArgs\n            {\n                ElasticReservedCu = 50,\n            },\n            SubQuotaInfoLists = new[]\n            {\n                new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaSubQuotaInfoListArgs\n                {\n                    NickName = \"sub_quota\",\n                    Parameter = new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaSubQuotaInfoListParameterArgs\n                    {\n                        MinCu = 40,\n                        MaxCu = 40,\n                        ElasticReservedCu = 40,\n                    },\n                },\n                new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaSubQuotaInfoListArgs\n                {\n                    NickName = \"os_terrform\",\n                    Parameter = new AliCloud.MaxCompute.Inputs.QuotaPlanQuotaSubQuotaInfoListParameterArgs\n                    {\n                        MinCu = 10,\n                        MaxCu = 10,\n                        ElasticReservedCu = 10,\n                    },\n                },\n            },\n        },\n        PlanName = \"quota_plan3\",\n        Nickname = \"os_terrform_p\",\n    });\n\n    var defaultQuotaSchedule = new AliCloud.MaxCompute.QuotaSchedule(\"default\", new()\n    {\n        Timezone = \"UTC+8\",\n        Nickname = quotaNickName,\n        ScheduleLists = new[]\n        {\n            new AliCloud.MaxCompute.Inputs.QuotaScheduleScheduleListArgs\n            {\n                Plan = \"Default\",\n                Condition = new AliCloud.MaxCompute.Inputs.QuotaScheduleScheduleListConditionArgs\n                {\n                    At = \"00:00\",\n                },\n                Type = \"daily\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/maxcompute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\telasticReservedCu := \"0\"\n\t\tif param := cfg.Get(\"elasticReservedCu\"); param != \"\" {\n\t\t\telasticReservedCu = param\n\t\t}\n\t\tquotaNickName := \"os_terrform_p\"\n\t\tif param := cfg.Get(\"quotaNickName\"); param != \"\" {\n\t\t\tquotaNickName = param\n\t\t}\n\t\t_, err := maxcompute.NewQuotaPlan(ctx, \"default\", \u0026maxcompute.QuotaPlanArgs{\n\t\t\tQuota: \u0026maxcompute.QuotaPlanQuotaArgs{\n\t\t\t\tParameter: \u0026maxcompute.QuotaPlanQuotaParameterArgs{\n\t\t\t\t\tElasticReservedCu: pulumi.Int(50),\n\t\t\t\t},\n\t\t\t\tSubQuotaInfoLists: maxcompute.QuotaPlanQuotaSubQuotaInfoListArray{\n\t\t\t\t\t\u0026maxcompute.QuotaPlanQuotaSubQuotaInfoListArgs{\n\t\t\t\t\t\tNickName: pulumi.String(\"sub_quota\"),\n\t\t\t\t\t\tParameter: \u0026maxcompute.QuotaPlanQuotaSubQuotaInfoListParameterArgs{\n\t\t\t\t\t\t\tMinCu:             pulumi.Int(0),\n\t\t\t\t\t\t\tMaxCu:             pulumi.Int(20),\n\t\t\t\t\t\t\tElasticReservedCu: pulumi.Int(30),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026maxcompute.QuotaPlanQuotaSubQuotaInfoListArgs{\n\t\t\t\t\t\tNickName: pulumi.String(\"os_terrform\"),\n\t\t\t\t\t\tParameter: \u0026maxcompute.QuotaPlanQuotaSubQuotaInfoListParameterArgs{\n\t\t\t\t\t\t\tMinCu:             pulumi.Int(50),\n\t\t\t\t\t\t\tMaxCu:             pulumi.Int(50),\n\t\t\t\t\t\t\tElasticReservedCu: pulumi.Int(20),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlanName: pulumi.String(\"quota_plan1\"),\n\t\t\tNickname: pulumi.String(\"os_terrform_p\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = maxcompute.NewQuotaPlan(ctx, \"default2\", \u0026maxcompute.QuotaPlanArgs{\n\t\t\tQuota: \u0026maxcompute.QuotaPlanQuotaArgs{\n\t\t\t\tParameter: \u0026maxcompute.QuotaPlanQuotaParameterArgs{\n\t\t\t\t\tElasticReservedCu: pulumi.Int(50),\n\t\t\t\t},\n\t\t\t\tSubQuotaInfoLists: maxcompute.QuotaPlanQuotaSubQuotaInfoListArray{\n\t\t\t\t\t\u0026maxcompute.QuotaPlanQuotaSubQuotaInfoListArgs{\n\t\t\t\t\t\tNickName: pulumi.String(\"sub_quota\"),\n\t\t\t\t\t\tParameter: \u0026maxcompute.QuotaPlanQuotaSubQuotaInfoListParameterArgs{\n\t\t\t\t\t\t\tMinCu:             pulumi.Int(0),\n\t\t\t\t\t\t\tMaxCu:             pulumi.Int(20),\n\t\t\t\t\t\t\tElasticReservedCu: pulumi.Int(20),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026maxcompute.QuotaPlanQuotaSubQuotaInfoListArgs{\n\t\t\t\t\t\tNickName: pulumi.String(\"os_terrform\"),\n\t\t\t\t\t\tParameter: \u0026maxcompute.QuotaPlanQuotaSubQuotaInfoListParameterArgs{\n\t\t\t\t\t\t\tMinCu:             pulumi.Int(50),\n\t\t\t\t\t\t\tMaxCu:             pulumi.Int(50),\n\t\t\t\t\t\t\tElasticReservedCu: pulumi.Int(30),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlanName: pulumi.String(\"quota_plan2\"),\n\t\t\tNickname: pulumi.String(\"os_terrform_p\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = maxcompute.NewQuotaPlan(ctx, \"default3\", \u0026maxcompute.QuotaPlanArgs{\n\t\t\tQuota: \u0026maxcompute.QuotaPlanQuotaArgs{\n\t\t\t\tParameter: \u0026maxcompute.QuotaPlanQuotaParameterArgs{\n\t\t\t\t\tElasticReservedCu: pulumi.Int(50),\n\t\t\t\t},\n\t\t\t\tSubQuotaInfoLists: maxcompute.QuotaPlanQuotaSubQuotaInfoListArray{\n\t\t\t\t\t\u0026maxcompute.QuotaPlanQuotaSubQuotaInfoListArgs{\n\t\t\t\t\t\tNickName: pulumi.String(\"sub_quota\"),\n\t\t\t\t\t\tParameter: \u0026maxcompute.QuotaPlanQuotaSubQuotaInfoListParameterArgs{\n\t\t\t\t\t\t\tMinCu:             pulumi.Int(40),\n\t\t\t\t\t\t\tMaxCu:             pulumi.Int(40),\n\t\t\t\t\t\t\tElasticReservedCu: pulumi.Int(40),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026maxcompute.QuotaPlanQuotaSubQuotaInfoListArgs{\n\t\t\t\t\t\tNickName: pulumi.String(\"os_terrform\"),\n\t\t\t\t\t\tParameter: \u0026maxcompute.QuotaPlanQuotaSubQuotaInfoListParameterArgs{\n\t\t\t\t\t\t\tMinCu:             pulumi.Int(10),\n\t\t\t\t\t\t\tMaxCu:             pulumi.Int(10),\n\t\t\t\t\t\t\tElasticReservedCu: pulumi.Int(10),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlanName: pulumi.String(\"quota_plan3\"),\n\t\t\tNickname: pulumi.String(\"os_terrform_p\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = maxcompute.NewQuotaSchedule(ctx, \"default\", \u0026maxcompute.QuotaScheduleArgs{\n\t\t\tTimezone: pulumi.String(\"UTC+8\"),\n\t\t\tNickname: pulumi.String(quotaNickName),\n\t\t\tScheduleLists: maxcompute.QuotaScheduleScheduleListArray{\n\t\t\t\t\u0026maxcompute.QuotaScheduleScheduleListArgs{\n\t\t\t\t\tPlan: pulumi.String(\"Default\"),\n\t\t\t\t\tCondition: \u0026maxcompute.QuotaScheduleScheduleListConditionArgs{\n\t\t\t\t\t\tAt: pulumi.String(\"00:00\"),\n\t\t\t\t\t},\n\t\t\t\t\tType: pulumi.String(\"daily\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.maxcompute.QuotaPlan;\nimport com.pulumi.alicloud.maxcompute.QuotaPlanArgs;\nimport com.pulumi.alicloud.maxcompute.inputs.QuotaPlanQuotaArgs;\nimport com.pulumi.alicloud.maxcompute.inputs.QuotaPlanQuotaParameterArgs;\nimport com.pulumi.alicloud.maxcompute.QuotaSchedule;\nimport com.pulumi.alicloud.maxcompute.QuotaScheduleArgs;\nimport com.pulumi.alicloud.maxcompute.inputs.QuotaScheduleScheduleListArgs;\nimport com.pulumi.alicloud.maxcompute.inputs.QuotaScheduleScheduleListConditionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var elasticReservedCu = config.get(\"elasticReservedCu\").orElse(\"0\");\n        final var quotaNickName = config.get(\"quotaNickName\").orElse(\"os_terrform_p\");\n        var default_ = new QuotaPlan(\"default\", QuotaPlanArgs.builder()\n            .quota(QuotaPlanQuotaArgs.builder()\n                .parameter(QuotaPlanQuotaParameterArgs.builder()\n                    .elasticReservedCu(50)\n                    .build())\n                .subQuotaInfoLists(                \n                    QuotaPlanQuotaSubQuotaInfoListArgs.builder()\n                        .nickName(\"sub_quota\")\n                        .parameter(QuotaPlanQuotaSubQuotaInfoListParameterArgs.builder()\n                            .minCu(0)\n                            .maxCu(20)\n                            .elasticReservedCu(30)\n                            .build())\n                        .build(),\n                    QuotaPlanQuotaSubQuotaInfoListArgs.builder()\n                        .nickName(\"os_terrform\")\n                        .parameter(QuotaPlanQuotaSubQuotaInfoListParameterArgs.builder()\n                            .minCu(50)\n                            .maxCu(50)\n                            .elasticReservedCu(20)\n                            .build())\n                        .build())\n                .build())\n            .planName(\"quota_plan1\")\n            .nickname(\"os_terrform_p\")\n            .build());\n\n        var default2 = new QuotaPlan(\"default2\", QuotaPlanArgs.builder()\n            .quota(QuotaPlanQuotaArgs.builder()\n                .parameter(QuotaPlanQuotaParameterArgs.builder()\n                    .elasticReservedCu(50)\n                    .build())\n                .subQuotaInfoLists(                \n                    QuotaPlanQuotaSubQuotaInfoListArgs.builder()\n                        .nickName(\"sub_quota\")\n                        .parameter(QuotaPlanQuotaSubQuotaInfoListParameterArgs.builder()\n                            .minCu(0)\n                            .maxCu(20)\n                            .elasticReservedCu(20)\n                            .build())\n                        .build(),\n                    QuotaPlanQuotaSubQuotaInfoListArgs.builder()\n                        .nickName(\"os_terrform\")\n                        .parameter(QuotaPlanQuotaSubQuotaInfoListParameterArgs.builder()\n                            .minCu(50)\n                            .maxCu(50)\n                            .elasticReservedCu(30)\n                            .build())\n                        .build())\n                .build())\n            .planName(\"quota_plan2\")\n            .nickname(\"os_terrform_p\")\n            .build());\n\n        var default3 = new QuotaPlan(\"default3\", QuotaPlanArgs.builder()\n            .quota(QuotaPlanQuotaArgs.builder()\n                .parameter(QuotaPlanQuotaParameterArgs.builder()\n                    .elasticReservedCu(50)\n                    .build())\n                .subQuotaInfoLists(                \n                    QuotaPlanQuotaSubQuotaInfoListArgs.builder()\n                        .nickName(\"sub_quota\")\n                        .parameter(QuotaPlanQuotaSubQuotaInfoListParameterArgs.builder()\n                            .minCu(40)\n                            .maxCu(40)\n                            .elasticReservedCu(40)\n                            .build())\n                        .build(),\n                    QuotaPlanQuotaSubQuotaInfoListArgs.builder()\n                        .nickName(\"os_terrform\")\n                        .parameter(QuotaPlanQuotaSubQuotaInfoListParameterArgs.builder()\n                            .minCu(10)\n                            .maxCu(10)\n                            .elasticReservedCu(10)\n                            .build())\n                        .build())\n                .build())\n            .planName(\"quota_plan3\")\n            .nickname(\"os_terrform_p\")\n            .build());\n\n        var defaultQuotaSchedule = new QuotaSchedule(\"defaultQuotaSchedule\", QuotaScheduleArgs.builder()\n            .timezone(\"UTC+8\")\n            .nickname(quotaNickName)\n            .scheduleLists(QuotaScheduleScheduleListArgs.builder()\n                .plan(\"Default\")\n                .condition(QuotaScheduleScheduleListConditionArgs.builder()\n                    .at(\"00:00\")\n                    .build())\n                .type(\"daily\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  elasticReservedCu:\n    type: string\n    default: '0'\n  quotaNickName:\n    type: string\n    default: os_terrform_p\nresources:\n  default:\n    type: alicloud:maxcompute:QuotaPlan\n    properties:\n      quota:\n        parameter:\n          elasticReservedCu: 50\n        subQuotaInfoLists:\n          - nickName: sub_quota\n            parameter:\n              minCu: '0'\n              maxCu: '20'\n              elasticReservedCu: '30'\n          - nickName: os_terrform\n            parameter:\n              minCu: '50'\n              maxCu: '50'\n              elasticReservedCu: '20'\n      planName: quota_plan1\n      nickname: os_terrform_p\n  default2:\n    type: alicloud:maxcompute:QuotaPlan\n    properties:\n      quota:\n        parameter:\n          elasticReservedCu: 50\n        subQuotaInfoLists:\n          - nickName: sub_quota\n            parameter:\n              minCu: '0'\n              maxCu: '20'\n              elasticReservedCu: '20'\n          - nickName: os_terrform\n            parameter:\n              minCu: '50'\n              maxCu: '50'\n              elasticReservedCu: '30'\n      planName: quota_plan2\n      nickname: os_terrform_p\n  default3:\n    type: alicloud:maxcompute:QuotaPlan\n    properties:\n      quota:\n        parameter:\n          elasticReservedCu: 50\n        subQuotaInfoLists:\n          - nickName: sub_quota\n            parameter:\n              minCu: '40'\n              maxCu: '40'\n              elasticReservedCu: '40'\n          - nickName: os_terrform\n            parameter:\n              minCu: '10'\n              maxCu: '10'\n              elasticReservedCu: '10'\n      planName: quota_plan3\n      nickname: os_terrform_p\n  defaultQuotaSchedule:\n    type: alicloud:maxcompute:QuotaSchedule\n    name: default\n    properties:\n      timezone: UTC+8\n      nickname: ${quotaNickName}\n      scheduleLists:\n        - plan: Default\n          condition:\n            at: 00:00\n          type: daily\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.maxcompute.QuotaSchedule`\" pulumi-lang-dotnet=\"`alicloud.maxcompute.QuotaSchedule`\" pulumi-lang-go=\"`maxcompute.QuotaSchedule`\" pulumi-lang-python=\"`maxcompute.QuotaSchedule`\" pulumi-lang-yaml=\"`alicloud.maxcompute.QuotaSchedule`\" pulumi-lang-java=\"`alicloud.maxcompute.QuotaSchedule`\"\u003e`alicloud.maxcompute.QuotaSchedule`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.maxcompute.QuotaSchedule`\" pulumi-lang-dotnet=\"`alicloud.maxcompute.QuotaSchedule`\" pulumi-lang-go=\"`maxcompute.QuotaSchedule`\" pulumi-lang-python=\"`maxcompute.QuotaSchedule`\" pulumi-lang-yaml=\"`alicloud.maxcompute.QuotaSchedule`\" pulumi-lang-java=\"`alicloud.maxcompute.QuotaSchedule`\"\u003e`alicloud.maxcompute.QuotaSchedule`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMax Compute Quota Schedule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:maxcompute/quotaSchedule:QuotaSchedule example \u003cnickname\u003e:\u003ctimezone\u003e\n```\n\n","properties":{"nickname":{"type":"string","description":"The nickname of level-1 compute quota.\n"},"scheduleLists":{"type":"array","items":{"$ref":"#/types/alicloud:maxcompute/QuotaScheduleScheduleList:QuotaScheduleScheduleList"},"description":"schedule list See \u003cspan pulumi-lang-nodejs=\"`scheduleList`\" pulumi-lang-dotnet=\"`ScheduleList`\" pulumi-lang-go=\"`scheduleList`\" pulumi-lang-python=\"`schedule_list`\" pulumi-lang-yaml=\"`scheduleList`\" pulumi-lang-java=\"`scheduleList`\"\u003e`schedule_list`\u003c/span\u003e below.\n"},"timezone":{"type":"string","description":"Time zone, reference value: UTC +8\n"}},"required":["nickname","timezone"],"inputProperties":{"nickname":{"type":"string","description":"The nickname of level-1 compute quota.\n","willReplaceOnChanges":true},"scheduleLists":{"type":"array","items":{"$ref":"#/types/alicloud:maxcompute/QuotaScheduleScheduleList:QuotaScheduleScheduleList"},"description":"schedule list See \u003cspan pulumi-lang-nodejs=\"`scheduleList`\" pulumi-lang-dotnet=\"`ScheduleList`\" pulumi-lang-go=\"`scheduleList`\" pulumi-lang-python=\"`schedule_list`\" pulumi-lang-yaml=\"`scheduleList`\" pulumi-lang-java=\"`scheduleList`\"\u003e`schedule_list`\u003c/span\u003e below.\n"},"timezone":{"type":"string","description":"Time zone, reference value: UTC +8\n","willReplaceOnChanges":true}},"requiredInputs":["nickname","timezone"],"stateInputs":{"description":"Input properties used for looking up and filtering QuotaSchedule resources.\n","properties":{"nickname":{"type":"string","description":"The nickname of level-1 compute quota.\n","willReplaceOnChanges":true},"scheduleLists":{"type":"array","items":{"$ref":"#/types/alicloud:maxcompute/QuotaScheduleScheduleList:QuotaScheduleScheduleList"},"description":"schedule list See \u003cspan pulumi-lang-nodejs=\"`scheduleList`\" pulumi-lang-dotnet=\"`ScheduleList`\" pulumi-lang-go=\"`scheduleList`\" pulumi-lang-python=\"`schedule_list`\" pulumi-lang-yaml=\"`scheduleList`\" pulumi-lang-java=\"`scheduleList`\"\u003e`schedule_list`\u003c/span\u003e below.\n"},"timezone":{"type":"string","description":"Time zone, reference value: UTC +8\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:maxcompute/role:Role":{"description":"Provides a Max Compute Role resource.\n\n\n\nFor information about Max Compute Role and how to use it, see [What is Role](https://www.alibabacloud.com/help/en/).\n\n\u003e **NOTE:** Available since v1.242.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.maxcompute.Project(\"default\", {\n    defaultQuota: \"默认后付费Quota\",\n    projectName: name,\n    comment: name,\n    productType: \"PayAsYouGo\",\n});\nconst defaultRole = new alicloud.maxcompute.Role(\"default\", {\n    type: \"admin\",\n    projectName: _default.id,\n    policy: JSON.stringify({\n        Statement: [{\n            Action: [\"odps:*\"],\n            Effect: \"Allow\",\n            Resource: [\n                \"acs:odps:*:projects/project_name/authorization/roles\",\n                \"acs:odps:*:projects/project_name/authorization/roles/*/*\",\n            ],\n        }],\n        Version: \"1\",\n    }),\n    roleName: \"tf_example112\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.maxcompute.Project(\"default\",\n    default_quota=\"默认后付费Quota\",\n    project_name=name,\n    comment=name,\n    product_type=\"PayAsYouGo\")\ndefault_role = alicloud.maxcompute.Role(\"default\",\n    type=\"admin\",\n    project_name=default.id,\n    policy=json.dumps({\n        \"Statement\": [{\n            \"Action\": [\"odps:*\"],\n            \"Effect\": \"Allow\",\n            \"Resource\": [\n                \"acs:odps:*:projects/project_name/authorization/roles\",\n                \"acs:odps:*:projects/project_name/authorization/roles/*/*\",\n            ],\n        }],\n        \"Version\": \"1\",\n    }),\n    role_name=\"tf_example112\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.MaxCompute.Project(\"default\", new()\n    {\n        DefaultQuota = \"默认后付费Quota\",\n        ProjectName = name,\n        Comment = name,\n        ProductType = \"PayAsYouGo\",\n    });\n\n    var defaultRole = new AliCloud.MaxCompute.Role(\"default\", new()\n    {\n        Type = \"admin\",\n        ProjectName = @default.Id,\n        Policy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Statement\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"Action\"] = new[]\n                    {\n                        \"odps:*\",\n                    },\n                    [\"Effect\"] = \"Allow\",\n                    [\"Resource\"] = new[]\n                    {\n                        \"acs:odps:*:projects/project_name/authorization/roles\",\n                        \"acs:odps:*:projects/project_name/authorization/roles/*/*\",\n                    },\n                },\n            },\n            [\"Version\"] = \"1\",\n        }),\n        RoleName = \"tf_example112\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/maxcompute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := maxcompute.NewProject(ctx, \"default\", \u0026maxcompute.ProjectArgs{\n\t\t\tDefaultQuota: pulumi.String(\"默认后付费Quota\"),\n\t\t\tProjectName:  pulumi.String(name),\n\t\t\tComment:      pulumi.String(name),\n\t\t\tProductType:  pulumi.String(\"PayAsYouGo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"odps:*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\"acs:odps:*:projects/project_name/authorization/roles\",\n\t\t\t\t\t\t\"acs:odps:*:projects/project_name/authorization/roles/*/*\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"Version\": \"1\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = maxcompute.NewRole(ctx, \"default\", \u0026maxcompute.RoleArgs{\n\t\t\tType:        pulumi.String(\"admin\"),\n\t\t\tProjectName: _default.ID(),\n\t\t\tPolicy:      pulumi.String(json0),\n\t\t\tRoleName:    pulumi.String(\"tf_example112\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.maxcompute.Project;\nimport com.pulumi.alicloud.maxcompute.ProjectArgs;\nimport com.pulumi.alicloud.maxcompute.Role;\nimport com.pulumi.alicloud.maxcompute.RoleArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Project(\"default\", ProjectArgs.builder()\n            .defaultQuota(\"默认后付费Quota\")\n            .projectName(name)\n            .comment(name)\n            .productType(\"PayAsYouGo\")\n            .build());\n\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .type(\"admin\")\n            .projectName(default_.id())\n            .policy(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Statement\", jsonArray(jsonObject(\n                        jsonProperty(\"Action\", jsonArray(\"odps:*\")),\n                        jsonProperty(\"Effect\", \"Allow\"),\n                        jsonProperty(\"Resource\", jsonArray(\n                            \"acs:odps:*:projects/project_name/authorization/roles\", \n                            \"acs:odps:*:projects/project_name/authorization/roles/*/*\"\n                        ))\n                    ))),\n                    jsonProperty(\"Version\", \"1\")\n                )))\n            .roleName(\"tf_example112\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:maxcompute:Project\n    properties:\n      defaultQuota: 默认后付费Quota\n      projectName: ${name}\n      comment: ${name}\n      productType: PayAsYouGo\n  defaultRole:\n    type: alicloud:maxcompute:Role\n    name: default\n    properties:\n      type: admin\n      projectName: ${default.id}\n      policy:\n        fn::toJSON:\n          Statement:\n            - Action:\n                - odps:*\n              Effect: Allow\n              Resource:\n                - acs:odps:*:projects/project_name/authorization/roles\n                - acs:odps:*:projects/project_name/authorization/roles/*/*\n          Version: '1'\n      roleName: tf_example112\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMax Compute Role can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:maxcompute/role:Role example \u003cproject_name\u003e:\u003crole_name\u003e\n```\n\n","properties":{"policy":{"type":"string","description":"Policy Authorization\nRefer to [Policy-based access control](https://www.alibabacloud.com/help/en/maxcompute/user-guide/policy-based-access-control-1) and [Authorization practices](https://www.alibabacloud.com/help/en/maxcompute/use-cases/authorization-practices)\n"},"projectName":{"type":"string","description":"Project name\n"},"roleName":{"type":"string","description":"Role Name\n\n\u003e **NOTE:** At the beginning of a letter, it can contain letters and numbers and can be no more than 64 characters in length.\n"},"type":{"type":"string","description":"Role type Valid values: admin/resource\n\n\u003e **NOTE:** -- management type (admin) role: You can grant management type permissions through Policy. You cannot grant resource permissions to management type roles. You cannot grant management type permissions to management type roles through ACL. -- resource role: you can authorize resource type permissions through Policy or ACL, but cannot authorize management type permissions. For details, see [role-planning](https://www.alibabacloud.com/help/en/maxcompute/user-guide/role-planning)\n"}},"required":["projectName","roleName","type"],"inputProperties":{"policy":{"type":"string","description":"Policy Authorization\nRefer to [Policy-based access control](https://www.alibabacloud.com/help/en/maxcompute/user-guide/policy-based-access-control-1) and [Authorization practices](https://www.alibabacloud.com/help/en/maxcompute/use-cases/authorization-practices)\n"},"projectName":{"type":"string","description":"Project name\n","willReplaceOnChanges":true},"roleName":{"type":"string","description":"Role Name\n\n\u003e **NOTE:** At the beginning of a letter, it can contain letters and numbers and can be no more than 64 characters in length.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Role type Valid values: admin/resource\n\n\u003e **NOTE:** -- management type (admin) role: You can grant management type permissions through Policy. You cannot grant resource permissions to management type roles. You cannot grant management type permissions to management type roles through ACL. -- resource role: you can authorize resource type permissions through Policy or ACL, but cannot authorize management type permissions. For details, see [role-planning](https://www.alibabacloud.com/help/en/maxcompute/user-guide/role-planning)\n"}},"requiredInputs":["projectName","roleName","type"],"stateInputs":{"description":"Input properties used for looking up and filtering Role resources.\n","properties":{"policy":{"type":"string","description":"Policy Authorization\nRefer to [Policy-based access control](https://www.alibabacloud.com/help/en/maxcompute/user-guide/policy-based-access-control-1) and [Authorization practices](https://www.alibabacloud.com/help/en/maxcompute/use-cases/authorization-practices)\n"},"projectName":{"type":"string","description":"Project name\n","willReplaceOnChanges":true},"roleName":{"type":"string","description":"Role Name\n\n\u003e **NOTE:** At the beginning of a letter, it can contain letters and numbers and can be no more than 64 characters in length.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Role type Valid values: admin/resource\n\n\u003e **NOTE:** -- management type (admin) role: You can grant management type permissions through Policy. You cannot grant resource permissions to management type roles. You cannot grant management type permissions to management type roles through ACL. -- resource role: you can authorize resource type permissions through Policy or ACL, but cannot authorize management type permissions. For details, see [role-planning](https://www.alibabacloud.com/help/en/maxcompute/user-guide/role-planning)\n"}},"type":"object"}},"alicloud:maxcompute/roleUserAttachment:RoleUserAttachment":{"description":"Provides a Max Compute Role User Attachment resource.\n\nResources associated with a user and a project-level role.\n\nFor information about Max Compute Role User Attachment and how to use it, see [What is Role User Attachment](https://www.alibabacloud.com/help/en/).\n\n\u003e **NOTE:** Available since v1.242.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst aliyunUser = config.get(\"aliyunUser\") || \"ALIYUN$openapiautomation@test.aliyunid.com\";\nconst ramUser = config.get(\"ramUser\") || \"RAM$openapiautomation@test.aliyunid.com:tf-example\";\nconst ramRole = config.get(\"ramRole\") || \"RAM$openapiautomation@test.aliyunid.com:role/terraform-no-ak-assumerole-no-deleting\";\nconst roleName = config.get(\"roleName\") || \"role_project_admin\";\nconst projectName = config.get(\"projectName\") || \"default_project_669886c\";\nconst _default = new alicloud.maxcompute.RoleUserAttachment(\"default\", {\n    roleName: roleName,\n    user: ramRole,\n    projectName: projectName,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\naliyun_user = config.get(\"aliyunUser\")\nif aliyun_user is None:\n    aliyun_user = \"ALIYUN$openapiautomation@test.aliyunid.com\"\nram_user = config.get(\"ramUser\")\nif ram_user is None:\n    ram_user = \"RAM$openapiautomation@test.aliyunid.com:tf-example\"\nram_role = config.get(\"ramRole\")\nif ram_role is None:\n    ram_role = \"RAM$openapiautomation@test.aliyunid.com:role/terraform-no-ak-assumerole-no-deleting\"\nrole_name = config.get(\"roleName\")\nif role_name is None:\n    role_name = \"role_project_admin\"\nproject_name = config.get(\"projectName\")\nif project_name is None:\n    project_name = \"default_project_669886c\"\ndefault = alicloud.maxcompute.RoleUserAttachment(\"default\",\n    role_name=role_name,\n    user=ram_role,\n    project_name=project_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var aliyunUser = config.Get(\"aliyunUser\") ?? \"ALIYUN$openapiautomation@test.aliyunid.com\";\n    var ramUser = config.Get(\"ramUser\") ?? \"RAM$openapiautomation@test.aliyunid.com:tf-example\";\n    var ramRole = config.Get(\"ramRole\") ?? \"RAM$openapiautomation@test.aliyunid.com:role/terraform-no-ak-assumerole-no-deleting\";\n    var roleName = config.Get(\"roleName\") ?? \"role_project_admin\";\n    var projectName = config.Get(\"projectName\") ?? \"default_project_669886c\";\n    var @default = new AliCloud.MaxCompute.RoleUserAttachment(\"default\", new()\n    {\n        RoleName = roleName,\n        User = ramRole,\n        ProjectName = projectName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/maxcompute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\taliyunUser := \"ALIYUN$openapiautomation@test.aliyunid.com\"\n\t\tif param := cfg.Get(\"aliyunUser\"); param != \"\" {\n\t\t\taliyunUser = param\n\t\t}\n\t\tramUser := \"RAM$openapiautomation@test.aliyunid.com:tf-example\"\n\t\tif param := cfg.Get(\"ramUser\"); param != \"\" {\n\t\t\tramUser = param\n\t\t}\n\t\tramRole := \"RAM$openapiautomation@test.aliyunid.com:role/terraform-no-ak-assumerole-no-deleting\"\n\t\tif param := cfg.Get(\"ramRole\"); param != \"\" {\n\t\t\tramRole = param\n\t\t}\n\t\troleName := \"role_project_admin\"\n\t\tif param := cfg.Get(\"roleName\"); param != \"\" {\n\t\t\troleName = param\n\t\t}\n\t\tprojectName := \"default_project_669886c\"\n\t\tif param := cfg.Get(\"projectName\"); param != \"\" {\n\t\t\tprojectName = param\n\t\t}\n\t\t_, err := maxcompute.NewRoleUserAttachment(ctx, \"default\", \u0026maxcompute.RoleUserAttachmentArgs{\n\t\t\tRoleName:    pulumi.String(roleName),\n\t\t\tUser:        pulumi.String(ramRole),\n\t\t\tProjectName: pulumi.String(projectName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.maxcompute.RoleUserAttachment;\nimport com.pulumi.alicloud.maxcompute.RoleUserAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var aliyunUser = config.get(\"aliyunUser\").orElse(\"ALIYUN$openapiautomation@test.aliyunid.com\");\n        final var ramUser = config.get(\"ramUser\").orElse(\"RAM$openapiautomation@test.aliyunid.com:tf-example\");\n        final var ramRole = config.get(\"ramRole\").orElse(\"RAM$openapiautomation@test.aliyunid.com:role/terraform-no-ak-assumerole-no-deleting\");\n        final var roleName = config.get(\"roleName\").orElse(\"role_project_admin\");\n        final var projectName = config.get(\"projectName\").orElse(\"default_project_669886c\");\n        var default_ = new RoleUserAttachment(\"default\", RoleUserAttachmentArgs.builder()\n            .roleName(roleName)\n            .user(ramRole)\n            .projectName(projectName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  aliyunUser:\n    type: string\n    default: ALIYUN$openapiautomation@test.aliyunid.com\n  ramUser:\n    type: string\n    default: RAM$openapiautomation@test.aliyunid.com:tf-example\n  ramRole:\n    type: string\n    default: RAM$openapiautomation@test.aliyunid.com:role/terraform-no-ak-assumerole-no-deleting\n  roleName:\n    type: string\n    default: role_project_admin\n  projectName:\n    type: string\n    default: default_project_669886c\nresources:\n  default:\n    type: alicloud:maxcompute:RoleUserAttachment\n    properties:\n      roleName: ${roleName}\n      user: ${ramRole}\n      projectName: ${projectName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMax Compute Role User Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:maxcompute/roleUserAttachment:RoleUserAttachment example \u003cproject_name\u003e-\u003crole_name\u003e-\u003cuser\u003e\n```\n\n","properties":{"projectName":{"type":"string","description":"Project Name\n"},"roleName":{"type":"string","description":"Role Name, Valid Values: super_administrator, admin, Custom Role\n\n\u003e **NOTE:** -- super_administrator: the built-in management role of MaxCompute. The Super Administrator of the project has the permission to operate all resources in the project and the management permission. Project owners or users with the Super_Administrator role can assign the Super_Administrator role to other users. -- admin: the built-in management role of MaxCompute, which has the permission to operate all resources in the project and some basic management permissions. Project owners can assign the Admin role to other users. -- Custom role: a role that is not built-in to MaxCompute and needs to be customized. You can refer to the role (starting with role_) definition in DataWorks.\n"},"user":{"type":"string","description":"Supported input: Alibaba Cloud account, RAM user, and RAM role\n\n\u003e **NOTE:** -- Alibaba Cloud account: the account registered on the Alibaba Cloud official website. - RAM User: a user created by an Alibaba Cloud account to assist the Alibaba Cloud account to complete data processing. -- RAM role: a RAM role, like a RAM user, is a type of RAM identity. A RAM role is a virtual user that does not have a specific identity authentication key and needs to be played by a trusted entity user for normal use.\n"}},"required":["projectName","roleName","user"],"inputProperties":{"projectName":{"type":"string","description":"Project Name\n","willReplaceOnChanges":true},"roleName":{"type":"string","description":"Role Name, Valid Values: super_administrator, admin, Custom Role\n\n\u003e **NOTE:** -- super_administrator: the built-in management role of MaxCompute. The Super Administrator of the project has the permission to operate all resources in the project and the management permission. Project owners or users with the Super_Administrator role can assign the Super_Administrator role to other users. -- admin: the built-in management role of MaxCompute, which has the permission to operate all resources in the project and some basic management permissions. Project owners can assign the Admin role to other users. -- Custom role: a role that is not built-in to MaxCompute and needs to be customized. You can refer to the role (starting with role_) definition in DataWorks.\n","willReplaceOnChanges":true},"user":{"type":"string","description":"Supported input: Alibaba Cloud account, RAM user, and RAM role\n\n\u003e **NOTE:** -- Alibaba Cloud account: the account registered on the Alibaba Cloud official website. - RAM User: a user created by an Alibaba Cloud account to assist the Alibaba Cloud account to complete data processing. -- RAM role: a RAM role, like a RAM user, is a type of RAM identity. A RAM role is a virtual user that does not have a specific identity authentication key and needs to be played by a trusted entity user for normal use.\n","willReplaceOnChanges":true}},"requiredInputs":["projectName","roleName"],"stateInputs":{"description":"Input properties used for looking up and filtering RoleUserAttachment resources.\n","properties":{"projectName":{"type":"string","description":"Project Name\n","willReplaceOnChanges":true},"roleName":{"type":"string","description":"Role Name, Valid Values: super_administrator, admin, Custom Role\n\n\u003e **NOTE:** -- super_administrator: the built-in management role of MaxCompute. The Super Administrator of the project has the permission to operate all resources in the project and the management permission. Project owners or users with the Super_Administrator role can assign the Super_Administrator role to other users. -- admin: the built-in management role of MaxCompute, which has the permission to operate all resources in the project and some basic management permissions. Project owners can assign the Admin role to other users. -- Custom role: a role that is not built-in to MaxCompute and needs to be customized. You can refer to the role (starting with role_) definition in DataWorks.\n","willReplaceOnChanges":true},"user":{"type":"string","description":"Supported input: Alibaba Cloud account, RAM user, and RAM role\n\n\u003e **NOTE:** -- Alibaba Cloud account: the account registered on the Alibaba Cloud official website. - RAM User: a user created by an Alibaba Cloud account to assist the Alibaba Cloud account to complete data processing. -- RAM role: a RAM role, like a RAM user, is a type of RAM identity. A RAM role is a virtual user that does not have a specific identity authentication key and needs to be played by a trusted entity user for normal use.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:maxcompute/tenantRoleUserAttachment:TenantRoleUserAttachment":{"description":"Provides a Max Compute Tenant Role User Attachment resource.\n\nBinding relationship between tenant roles and users\n\n\u003e **WARNING:** Using TenantRoleUserAttachment restricts the use of the [MaxCompute Console \u003e Tenant Management \u003e Tenant Attributes \u003e Use Account ID] feature. If you use the [Use Account ID] feature in the console, TenantRoleUserAttachment becomes unavailable and requires approximately one hour to recover.\n\nFor information about Max Compute Tenant Role User Attachment and how to use it, see [What is Tenant Role User Attachment](https://next.api.alibabacloud.com/document/MaxCompute/2022-01-04/UpdateTenantUserRoles).\n\n\u003e **NOTE:** Available since v1.270.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst default0 = new alicloud.maxcompute.TenantRoleUserAttachment(\"default0\", {\n    accountId: \"p4_200053869413670560\",\n    tenantRole: \"admin\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault0 = alicloud.maxcompute.TenantRoleUserAttachment(\"default0\",\n    account_id=\"p4_200053869413670560\",\n    tenant_role=\"admin\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var default0 = new AliCloud.MaxCompute.TenantRoleUserAttachment(\"default0\", new()\n    {\n        AccountId = \"p4_200053869413670560\",\n        TenantRole = \"admin\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/maxcompute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := maxcompute.NewTenantRoleUserAttachment(ctx, \"default0\", \u0026maxcompute.TenantRoleUserAttachmentArgs{\n\t\t\tAccountId:  pulumi.String(\"p4_200053869413670560\"),\n\t\t\tTenantRole: pulumi.String(\"admin\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.maxcompute.TenantRoleUserAttachment;\nimport com.pulumi.alicloud.maxcompute.TenantRoleUserAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default0 = new TenantRoleUserAttachment(\"default0\", TenantRoleUserAttachmentArgs.builder()\n            .accountId(\"p4_200053869413670560\")\n            .tenantRole(\"admin\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default0:\n    type: alicloud:maxcompute:TenantRoleUserAttachment\n    properties:\n      accountId: p4_200053869413670560\n      tenantRole: admin\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMax Compute Tenant Role User Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:maxcompute/tenantRoleUserAttachment:TenantRoleUserAttachment example \u003caccount_id\u003e:\u003ctenant_role\u003e\n```\n\n","properties":{"accountId":{"type":"string","description":"Account UID\n\n1. If the user is a primary account, the AccountId format is UID.\nExample: 200231703336555555\n\n2. If the user is a RAM user, the AccountId format is p4_UID.\nExample:\u003cspan pulumi-lang-nodejs=\" p4200531704446555555\n\" pulumi-lang-dotnet=\" P4200531704446555555\n\" pulumi-lang-go=\" p4200531704446555555\n\" pulumi-lang-python=\" p4_200531704446555555\n\" pulumi-lang-yaml=\" p4200531704446555555\n\" pulumi-lang-java=\" p4200531704446555555\n\"\u003e p4_200531704446555555\n\u003c/span\u003e\n3. If the user is a RAM role, the AccountId format is v4_UID.\nExample: v4_300007628597555555\n"},"tenantRole":{"type":"string","description":"Tenant role. By default, admin and\u003cspan pulumi-lang-nodejs=\" superAdministrator \" pulumi-lang-dotnet=\" SuperAdministrator \" pulumi-lang-go=\" superAdministrator \" pulumi-lang-python=\" super_administrator \" pulumi-lang-yaml=\" superAdministrator \" pulumi-lang-java=\" superAdministrator \"\u003e super_administrator \u003c/span\u003eare available. You can add more roles in the console.\n"}},"required":["accountId","tenantRole"],"inputProperties":{"accountId":{"type":"string","description":"Account UID\n\n1. If the user is a primary account, the AccountId format is UID.\nExample: 200231703336555555\n\n2. If the user is a RAM user, the AccountId format is p4_UID.\nExample:\u003cspan pulumi-lang-nodejs=\" p4200531704446555555\n\" pulumi-lang-dotnet=\" P4200531704446555555\n\" pulumi-lang-go=\" p4200531704446555555\n\" pulumi-lang-python=\" p4_200531704446555555\n\" pulumi-lang-yaml=\" p4200531704446555555\n\" pulumi-lang-java=\" p4200531704446555555\n\"\u003e p4_200531704446555555\n\u003c/span\u003e\n3. If the user is a RAM role, the AccountId format is v4_UID.\nExample: v4_300007628597555555\n","willReplaceOnChanges":true},"tenantRole":{"type":"string","description":"Tenant role. By default, admin and\u003cspan pulumi-lang-nodejs=\" superAdministrator \" pulumi-lang-dotnet=\" SuperAdministrator \" pulumi-lang-go=\" superAdministrator \" pulumi-lang-python=\" super_administrator \" pulumi-lang-yaml=\" superAdministrator \" pulumi-lang-java=\" superAdministrator \"\u003e super_administrator \u003c/span\u003eare available. You can add more roles in the console.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering TenantRoleUserAttachment resources.\n","properties":{"accountId":{"type":"string","description":"Account UID\n\n1. If the user is a primary account, the AccountId format is UID.\nExample: 200231703336555555\n\n2. If the user is a RAM user, the AccountId format is p4_UID.\nExample:\u003cspan pulumi-lang-nodejs=\" p4200531704446555555\n\" pulumi-lang-dotnet=\" P4200531704446555555\n\" pulumi-lang-go=\" p4200531704446555555\n\" pulumi-lang-python=\" p4_200531704446555555\n\" pulumi-lang-yaml=\" p4200531704446555555\n\" pulumi-lang-java=\" p4200531704446555555\n\"\u003e p4_200531704446555555\n\u003c/span\u003e\n3. If the user is a RAM role, the AccountId format is v4_UID.\nExample: v4_300007628597555555\n","willReplaceOnChanges":true},"tenantRole":{"type":"string","description":"Tenant role. By default, admin and\u003cspan pulumi-lang-nodejs=\" superAdministrator \" pulumi-lang-dotnet=\" SuperAdministrator \" pulumi-lang-go=\" superAdministrator \" pulumi-lang-python=\" super_administrator \" pulumi-lang-yaml=\" superAdministrator \" pulumi-lang-java=\" superAdministrator \"\u003e super_administrator \u003c/span\u003eare available. You can add more roles in the console.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:maxcompute/tunnelQuotaTimer:TunnelQuotaTimer":{"description":"Provides a Max Compute Tunnel Quota Timer resource.\n\n\n\nFor information about Max Compute Tunnel Quota Timer and how to use it, see [What is Tunnel Quota Timer](https://www.alibabacloud.com/help/en/).\n\n\u003e **DEPRECATED:**  This resource has been deprecated from version `1.260.0`.\n\n\u003e **NOTE:** Deprecated since v1.260.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.maxcompute.TunnelQuotaTimer(\"default\", {\n    quotaTimers: [\n        {\n            beginTime: \"00:00\",\n            endTime: \"01:00\",\n            tunnelQuotaParameter: {\n                slotNum: 50,\n                elasticReservedSlotNum: 50,\n            },\n        },\n        {\n            beginTime: \"01:00\",\n            endTime: \"02:00\",\n            tunnelQuotaParameter: {\n                slotNum: 50,\n                elasticReservedSlotNum: 50,\n            },\n        },\n        {\n            beginTime: \"02:00\",\n            endTime: \"24:00\",\n            tunnelQuotaParameter: {\n                slotNum: 50,\n                elasticReservedSlotNum: 50,\n            },\n        },\n    ],\n    nickname: \"ot_terraform_p\",\n    timeZone: \"Asia/Shanghai\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.maxcompute.TunnelQuotaTimer(\"default\",\n    quota_timers=[\n        {\n            \"begin_time\": \"00:00\",\n            \"end_time\": \"01:00\",\n            \"tunnel_quota_parameter\": {\n                \"slot_num\": 50,\n                \"elastic_reserved_slot_num\": 50,\n            },\n        },\n        {\n            \"begin_time\": \"01:00\",\n            \"end_time\": \"02:00\",\n            \"tunnel_quota_parameter\": {\n                \"slot_num\": 50,\n                \"elastic_reserved_slot_num\": 50,\n            },\n        },\n        {\n            \"begin_time\": \"02:00\",\n            \"end_time\": \"24:00\",\n            \"tunnel_quota_parameter\": {\n                \"slot_num\": 50,\n                \"elastic_reserved_slot_num\": 50,\n            },\n        },\n    ],\n    nickname=\"ot_terraform_p\",\n    time_zone=\"Asia/Shanghai\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.MaxCompute.TunnelQuotaTimer(\"default\", new()\n    {\n        QuotaTimers = new[]\n        {\n            new AliCloud.MaxCompute.Inputs.TunnelQuotaTimerQuotaTimerArgs\n            {\n                BeginTime = \"00:00\",\n                EndTime = \"01:00\",\n                TunnelQuotaParameter = new AliCloud.MaxCompute.Inputs.TunnelQuotaTimerQuotaTimerTunnelQuotaParameterArgs\n                {\n                    SlotNum = 50,\n                    ElasticReservedSlotNum = 50,\n                },\n            },\n            new AliCloud.MaxCompute.Inputs.TunnelQuotaTimerQuotaTimerArgs\n            {\n                BeginTime = \"01:00\",\n                EndTime = \"02:00\",\n                TunnelQuotaParameter = new AliCloud.MaxCompute.Inputs.TunnelQuotaTimerQuotaTimerTunnelQuotaParameterArgs\n                {\n                    SlotNum = 50,\n                    ElasticReservedSlotNum = 50,\n                },\n            },\n            new AliCloud.MaxCompute.Inputs.TunnelQuotaTimerQuotaTimerArgs\n            {\n                BeginTime = \"02:00\",\n                EndTime = \"24:00\",\n                TunnelQuotaParameter = new AliCloud.MaxCompute.Inputs.TunnelQuotaTimerQuotaTimerTunnelQuotaParameterArgs\n                {\n                    SlotNum = 50,\n                    ElasticReservedSlotNum = 50,\n                },\n            },\n        },\n        Nickname = \"ot_terraform_p\",\n        TimeZone = \"Asia/Shanghai\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/maxcompute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := maxcompute.NewTunnelQuotaTimer(ctx, \"default\", \u0026maxcompute.TunnelQuotaTimerArgs{\n\t\t\tQuotaTimers: maxcompute.TunnelQuotaTimerQuotaTimerArray{\n\t\t\t\t\u0026maxcompute.TunnelQuotaTimerQuotaTimerArgs{\n\t\t\t\t\tBeginTime: pulumi.String(\"00:00\"),\n\t\t\t\t\tEndTime:   pulumi.String(\"01:00\"),\n\t\t\t\t\tTunnelQuotaParameter: \u0026maxcompute.TunnelQuotaTimerQuotaTimerTunnelQuotaParameterArgs{\n\t\t\t\t\t\tSlotNum:                pulumi.Int(50),\n\t\t\t\t\t\tElasticReservedSlotNum: pulumi.Int(50),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026maxcompute.TunnelQuotaTimerQuotaTimerArgs{\n\t\t\t\t\tBeginTime: pulumi.String(\"01:00\"),\n\t\t\t\t\tEndTime:   pulumi.String(\"02:00\"),\n\t\t\t\t\tTunnelQuotaParameter: \u0026maxcompute.TunnelQuotaTimerQuotaTimerTunnelQuotaParameterArgs{\n\t\t\t\t\t\tSlotNum:                pulumi.Int(50),\n\t\t\t\t\t\tElasticReservedSlotNum: pulumi.Int(50),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026maxcompute.TunnelQuotaTimerQuotaTimerArgs{\n\t\t\t\t\tBeginTime: pulumi.String(\"02:00\"),\n\t\t\t\t\tEndTime:   pulumi.String(\"24:00\"),\n\t\t\t\t\tTunnelQuotaParameter: \u0026maxcompute.TunnelQuotaTimerQuotaTimerTunnelQuotaParameterArgs{\n\t\t\t\t\t\tSlotNum:                pulumi.Int(50),\n\t\t\t\t\t\tElasticReservedSlotNum: pulumi.Int(50),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tNickname: pulumi.String(\"ot_terraform_p\"),\n\t\t\tTimeZone: pulumi.String(\"Asia/Shanghai\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.maxcompute.TunnelQuotaTimer;\nimport com.pulumi.alicloud.maxcompute.TunnelQuotaTimerArgs;\nimport com.pulumi.alicloud.maxcompute.inputs.TunnelQuotaTimerQuotaTimerArgs;\nimport com.pulumi.alicloud.maxcompute.inputs.TunnelQuotaTimerQuotaTimerTunnelQuotaParameterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new TunnelQuotaTimer(\"default\", TunnelQuotaTimerArgs.builder()\n            .quotaTimers(            \n                TunnelQuotaTimerQuotaTimerArgs.builder()\n                    .beginTime(\"00:00\")\n                    .endTime(\"01:00\")\n                    .tunnelQuotaParameter(TunnelQuotaTimerQuotaTimerTunnelQuotaParameterArgs.builder()\n                        .slotNum(50)\n                        .elasticReservedSlotNum(50)\n                        .build())\n                    .build(),\n                TunnelQuotaTimerQuotaTimerArgs.builder()\n                    .beginTime(\"01:00\")\n                    .endTime(\"02:00\")\n                    .tunnelQuotaParameter(TunnelQuotaTimerQuotaTimerTunnelQuotaParameterArgs.builder()\n                        .slotNum(50)\n                        .elasticReservedSlotNum(50)\n                        .build())\n                    .build(),\n                TunnelQuotaTimerQuotaTimerArgs.builder()\n                    .beginTime(\"02:00\")\n                    .endTime(\"24:00\")\n                    .tunnelQuotaParameter(TunnelQuotaTimerQuotaTimerTunnelQuotaParameterArgs.builder()\n                        .slotNum(50)\n                        .elasticReservedSlotNum(50)\n                        .build())\n                    .build())\n            .nickname(\"ot_terraform_p\")\n            .timeZone(\"Asia/Shanghai\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:maxcompute:TunnelQuotaTimer\n    properties:\n      quotaTimers:\n        - beginTime: 00:00\n          endTime: 01:00\n          tunnelQuotaParameter:\n            slotNum: '50'\n            elasticReservedSlotNum: '50'\n        - beginTime: 01:00\n          endTime: 02:00\n          tunnelQuotaParameter:\n            slotNum: '50'\n            elasticReservedSlotNum: '50'\n        - beginTime: 02:00\n          endTime: 24:00\n          tunnelQuotaParameter:\n            slotNum: '50'\n            elasticReservedSlotNum: '50'\n      nickname: ot_terraform_p\n      timeZone: Asia/Shanghai\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.maxcompute.TunnelQuotaTimer`\" pulumi-lang-dotnet=\"`alicloud.maxcompute.TunnelQuotaTimer`\" pulumi-lang-go=\"`maxcompute.TunnelQuotaTimer`\" pulumi-lang-python=\"`maxcompute.TunnelQuotaTimer`\" pulumi-lang-yaml=\"`alicloud.maxcompute.TunnelQuotaTimer`\" pulumi-lang-java=\"`alicloud.maxcompute.TunnelQuotaTimer`\"\u003e`alicloud.maxcompute.TunnelQuotaTimer`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.maxcompute.TunnelQuotaTimer`\" pulumi-lang-dotnet=\"`alicloud.maxcompute.TunnelQuotaTimer`\" pulumi-lang-go=\"`maxcompute.TunnelQuotaTimer`\" pulumi-lang-python=\"`maxcompute.TunnelQuotaTimer`\" pulumi-lang-yaml=\"`alicloud.maxcompute.TunnelQuotaTimer`\" pulumi-lang-java=\"`alicloud.maxcompute.TunnelQuotaTimer`\"\u003e`alicloud.maxcompute.TunnelQuotaTimer`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMax Compute Tunnel Quota Timer can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:maxcompute/tunnelQuotaTimer:TunnelQuotaTimer example \u003cid\u003e\n```\n\n","properties":{"nickname":{"type":"string","description":"The nickname of the exclusive Resource Group (Tunnel Quota) for the level - 1 data transmission service.\n"},"quotaTimers":{"type":"array","items":{"$ref":"#/types/alicloud:maxcompute/TunnelQuotaTimerQuotaTimer:TunnelQuotaTimerQuotaTimer"},"description":"Time-Sharing configuration\n\n\u003e **NOTE:** -- The same reserved Quota resource group supports up to 48 time intervals. The minimum duration of a time interval is 30 minutes. -- After the current data transmission service is configured for time-sharing, if you need to perform a downgrade operation on the data transmission service (package year and month), please reduce the time-sharing concurrency first. -- The effective time of the time-sharing configuration is 0 to 5 minutes, and the billing will be calculated according to the actual effective time. -- Please make sure to set the time range completely from 00:00 to 24:00\nSee \u003cspan pulumi-lang-nodejs=\"`quotaTimer`\" pulumi-lang-dotnet=\"`QuotaTimer`\" pulumi-lang-go=\"`quotaTimer`\" pulumi-lang-python=\"`quota_timer`\" pulumi-lang-yaml=\"`quotaTimer`\" pulumi-lang-java=\"`quotaTimer`\"\u003e`quota_timer`\u003c/span\u003e below.\n"},"timeZone":{"type":"string","description":"Time zone, reference: Asia/Shanghai\nIn general, the system will automatically generate the time zone according to the region without configuration.\n"}},"required":["nickname"],"inputProperties":{"nickname":{"type":"string","description":"The nickname of the exclusive Resource Group (Tunnel Quota) for the level - 1 data transmission service.\n","willReplaceOnChanges":true},"quotaTimers":{"type":"array","items":{"$ref":"#/types/alicloud:maxcompute/TunnelQuotaTimerQuotaTimer:TunnelQuotaTimerQuotaTimer"},"description":"Time-Sharing configuration\n\n\u003e **NOTE:** -- The same reserved Quota resource group supports up to 48 time intervals. The minimum duration of a time interval is 30 minutes. -- After the current data transmission service is configured for time-sharing, if you need to perform a downgrade operation on the data transmission service (package year and month), please reduce the time-sharing concurrency first. -- The effective time of the time-sharing configuration is 0 to 5 minutes, and the billing will be calculated according to the actual effective time. -- Please make sure to set the time range completely from 00:00 to 24:00\nSee \u003cspan pulumi-lang-nodejs=\"`quotaTimer`\" pulumi-lang-dotnet=\"`QuotaTimer`\" pulumi-lang-go=\"`quotaTimer`\" pulumi-lang-python=\"`quota_timer`\" pulumi-lang-yaml=\"`quotaTimer`\" pulumi-lang-java=\"`quotaTimer`\"\u003e`quota_timer`\u003c/span\u003e below.\n"},"timeZone":{"type":"string","description":"Time zone, reference: Asia/Shanghai\nIn general, the system will automatically generate the time zone according to the region without configuration.\n"}},"requiredInputs":["nickname"],"stateInputs":{"description":"Input properties used for looking up and filtering TunnelQuotaTimer resources.\n","properties":{"nickname":{"type":"string","description":"The nickname of the exclusive Resource Group (Tunnel Quota) for the level - 1 data transmission service.\n","willReplaceOnChanges":true},"quotaTimers":{"type":"array","items":{"$ref":"#/types/alicloud:maxcompute/TunnelQuotaTimerQuotaTimer:TunnelQuotaTimerQuotaTimer"},"description":"Time-Sharing configuration\n\n\u003e **NOTE:** -- The same reserved Quota resource group supports up to 48 time intervals. The minimum duration of a time interval is 30 minutes. -- After the current data transmission service is configured for time-sharing, if you need to perform a downgrade operation on the data transmission service (package year and month), please reduce the time-sharing concurrency first. -- The effective time of the time-sharing configuration is 0 to 5 minutes, and the billing will be calculated according to the actual effective time. -- Please make sure to set the time range completely from 00:00 to 24:00\nSee \u003cspan pulumi-lang-nodejs=\"`quotaTimer`\" pulumi-lang-dotnet=\"`QuotaTimer`\" pulumi-lang-go=\"`quotaTimer`\" pulumi-lang-python=\"`quota_timer`\" pulumi-lang-yaml=\"`quotaTimer`\" pulumi-lang-java=\"`quotaTimer`\"\u003e`quota_timer`\u003c/span\u003e below.\n"},"timeZone":{"type":"string","description":"Time zone, reference: Asia/Shanghai\nIn general, the system will automatically generate the time zone according to the region without configuration.\n"}},"type":"object"}},"alicloud:message/serviceEndpoint:ServiceEndpoint":{"description":"Provides a Message Service Endpoint resource.\n\n\nFor information about Message Service Endpoint and how to use it, see [What is Endpoint](https://www.alibabacloud.com/help/en/mns/developer-reference/api-mns-open-2022-01-19-enableendpoint).\n\n\u003e **NOTE:** Available since v1.243.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.message.ServiceEndpoint(\"default\", {\n    endpointEnabled: true,\n    endpointType: \"public\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.message.ServiceEndpoint(\"default\",\n    endpoint_enabled=True,\n    endpoint_type=\"public\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Message.ServiceEndpoint(\"default\", new()\n    {\n        EndpointEnabled = true,\n        EndpointType = \"public\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/message\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := message.NewServiceEndpoint(ctx, \"default\", \u0026message.ServiceEndpointArgs{\n\t\t\tEndpointEnabled: pulumi.Bool(true),\n\t\t\tEndpointType:    pulumi.String(\"public\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.message.ServiceEndpoint;\nimport com.pulumi.alicloud.message.ServiceEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new ServiceEndpoint(\"default\", ServiceEndpointArgs.builder()\n            .endpointEnabled(true)\n            .endpointType(\"public\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:message:ServiceEndpoint\n    properties:\n      endpointEnabled: true\n      endpointType: public\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.message.ServiceEndpoint`\" pulumi-lang-dotnet=\"`alicloud.message.ServiceEndpoint`\" pulumi-lang-go=\"`message.ServiceEndpoint`\" pulumi-lang-python=\"`message.ServiceEndpoint`\" pulumi-lang-yaml=\"`alicloud.message.ServiceEndpoint`\" pulumi-lang-java=\"`alicloud.message.ServiceEndpoint`\"\u003e`alicloud.message.ServiceEndpoint`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.message.ServiceEndpoint`\" pulumi-lang-dotnet=\"`alicloud.message.ServiceEndpoint`\" pulumi-lang-go=\"`message.ServiceEndpoint`\" pulumi-lang-python=\"`message.ServiceEndpoint`\" pulumi-lang-yaml=\"`alicloud.message.ServiceEndpoint`\" pulumi-lang-java=\"`alicloud.message.ServiceEndpoint`\"\u003e`alicloud.message.ServiceEndpoint`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMessage Service Endpoint can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:message/serviceEndpoint:ServiceEndpoint example \u003cid\u003e\n```\n\n","properties":{"endpointEnabled":{"type":"boolean","description":"Specifies whether the endpoint is enabled. Valid values:\n"},"endpointType":{"type":"string","description":"Access point type. Value:\n- public: indicates a public access point. (Currently only public is supported)\n"}},"required":["endpointEnabled","endpointType"],"inputProperties":{"endpointEnabled":{"type":"boolean","description":"Specifies whether the endpoint is enabled. Valid values:\n"},"endpointType":{"type":"string","description":"Access point type. Value:\n- public: indicates a public access point. (Currently only public is supported)\n","willReplaceOnChanges":true}},"requiredInputs":["endpointEnabled","endpointType"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpoint resources.\n","properties":{"endpointEnabled":{"type":"boolean","description":"Specifies whether the endpoint is enabled. Valid values:\n"},"endpointType":{"type":"string","description":"Access point type. Value:\n- public: indicates a public access point. (Currently only public is supported)\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:message/serviceEndpointAcl:ServiceEndpointAcl":{"description":"Provides a Message Service Endpoint Acl resource.\n\n\n\nFor information about Message Service Endpoint Acl and how to use it, see [What is Endpoint Acl](https://www.alibabacloud.com/help/en/mns/developer-reference/api-mns-open-2022-01-19-authorizeendpointacl).\n\n\u003e **NOTE:** Available since v1.243.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.message.ServiceEndpoint(\"default\", {\n    endpointEnabled: true,\n    endpointType: \"public\",\n});\nconst defaultServiceEndpointAcl = new alicloud.message.ServiceEndpointAcl(\"default\", {\n    cidr: \"192.168.1.1/23\",\n    endpointType: _default.id,\n    aclStrategy: \"allow\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.message.ServiceEndpoint(\"default\",\n    endpoint_enabled=True,\n    endpoint_type=\"public\")\ndefault_service_endpoint_acl = alicloud.message.ServiceEndpointAcl(\"default\",\n    cidr=\"192.168.1.1/23\",\n    endpoint_type=default.id,\n    acl_strategy=\"allow\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Message.ServiceEndpoint(\"default\", new()\n    {\n        EndpointEnabled = true,\n        EndpointType = \"public\",\n    });\n\n    var defaultServiceEndpointAcl = new AliCloud.Message.ServiceEndpointAcl(\"default\", new()\n    {\n        Cidr = \"192.168.1.1/23\",\n        EndpointType = @default.Id,\n        AclStrategy = \"allow\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/message\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := message.NewServiceEndpoint(ctx, \"default\", \u0026message.ServiceEndpointArgs{\n\t\t\tEndpointEnabled: pulumi.Bool(true),\n\t\t\tEndpointType:    pulumi.String(\"public\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = message.NewServiceEndpointAcl(ctx, \"default\", \u0026message.ServiceEndpointAclArgs{\n\t\t\tCidr:         pulumi.String(\"192.168.1.1/23\"),\n\t\t\tEndpointType: _default.ID(),\n\t\t\tAclStrategy:  pulumi.String(\"allow\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.message.ServiceEndpoint;\nimport com.pulumi.alicloud.message.ServiceEndpointArgs;\nimport com.pulumi.alicloud.message.ServiceEndpointAcl;\nimport com.pulumi.alicloud.message.ServiceEndpointAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new ServiceEndpoint(\"default\", ServiceEndpointArgs.builder()\n            .endpointEnabled(true)\n            .endpointType(\"public\")\n            .build());\n\n        var defaultServiceEndpointAcl = new ServiceEndpointAcl(\"defaultServiceEndpointAcl\", ServiceEndpointAclArgs.builder()\n            .cidr(\"192.168.1.1/23\")\n            .endpointType(default_.id())\n            .aclStrategy(\"allow\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:message:ServiceEndpoint\n    properties:\n      endpointEnabled: true\n      endpointType: public\n  defaultServiceEndpointAcl:\n    type: alicloud:message:ServiceEndpointAcl\n    name: default\n    properties:\n      cidr: 192.168.1.1/23\n      endpointType: ${default.id}\n      aclStrategy: allow\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMessage Service Endpoint Acl can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:message/serviceEndpointAcl:ServiceEndpointAcl example \u003cendpoint_type\u003e:\u003cacl_strategy\u003e:\u003ccidr\u003e\n```\n\n","properties":{"aclStrategy":{"type":"string","description":"The ACL policy. Valid value:\n- allow: indicates that the current endpoint allows access from the corresponding CIDR block. (Only allow is supported)\n"},"cidr":{"type":"string","description":"The CIDR block.\n\u003e **NOTE:** To ensure business stability, the system is configured by default with a CIDR (0.0.0.0/0) that allows access from all source addresses. If you need to remove this default configuration, you can do so by importing and deleting the CIDR using Terraform, or by manually deleting it in the console.\n"},"endpointType":{"type":"string","description":"Access point type. Value:\n- public: indicates a public access point. (Currently only public is supported)\n"}},"required":["aclStrategy","cidr","endpointType"],"inputProperties":{"aclStrategy":{"type":"string","description":"The ACL policy. Valid value:\n- allow: indicates that the current endpoint allows access from the corresponding CIDR block. (Only allow is supported)\n","willReplaceOnChanges":true},"cidr":{"type":"string","description":"The CIDR block.\n\u003e **NOTE:** To ensure business stability, the system is configured by default with a CIDR (0.0.0.0/0) that allows access from all source addresses. If you need to remove this default configuration, you can do so by importing and deleting the CIDR using Terraform, or by manually deleting it in the console.\n","willReplaceOnChanges":true},"endpointType":{"type":"string","description":"Access point type. Value:\n- public: indicates a public access point. (Currently only public is supported)\n","willReplaceOnChanges":true}},"requiredInputs":["aclStrategy","cidr","endpointType"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointAcl resources.\n","properties":{"aclStrategy":{"type":"string","description":"The ACL policy. Valid value:\n- allow: indicates that the current endpoint allows access from the corresponding CIDR block. (Only allow is supported)\n","willReplaceOnChanges":true},"cidr":{"type":"string","description":"The CIDR block.\n\u003e **NOTE:** To ensure business stability, the system is configured by default with a CIDR (0.0.0.0/0) that allows access from all source addresses. If you need to remove this default configuration, you can do so by importing and deleting the CIDR using Terraform, or by manually deleting it in the console.\n","willReplaceOnChanges":true},"endpointType":{"type":"string","description":"Access point type. Value:\n- public: indicates a public access point. (Currently only public is supported)\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:message/serviceEventRule:ServiceEventRule":{"description":"Provides a Message Service Event Rule resource.\n\n\n\nFor information about Message Service Event Rule and how to use it, see [What is Event Rule](https://next.api.alibabacloud.com/document/Mns-open/2022-01-19/CreateEventRule).\n\n\u003e **NOTE:** Available since v1.255.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst queueName = config.get(\"queueName\") || \"tf-exampe-topic2queue\";\nconst ruleName = config.get(\"ruleName\") || \"tf-exampe-topic-1\";\nconst topicName = config.get(\"topicName\") || \"tf-exampe-topic2queue\";\nconst createTopic = new alicloud.message.ServiceTopic(\"CreateTopic\", {\n    maxMessageSize: 65536,\n    topicName: topicName,\n    loggingEnabled: false,\n});\nconst createQueue = new alicloud.message.ServiceQueue(\"CreateQueue\", {\n    delaySeconds: 2,\n    pollingWaitSeconds: 2,\n    messageRetentionPeriod: 566,\n    maximumMessageSize: 1123,\n    visibilityTimeout: 30,\n    queueName: queueName,\n    loggingEnabled: false,\n});\nconst createSub = new alicloud.message.ServiceSubscription(\"CreateSub\", {\n    pushType: \"queue\",\n    notifyStrategy: \"BACKOFF_RETRY\",\n    notifyContentFormat: \"SIMPLIFIED\",\n    subscriptionName: \"RDK-example-sub\",\n    filterTag: \"important\",\n    topicName: createTopic.topicName,\n    endpoint: std.format({\n        input: \"acs:mns:cn-hangzhou:1511928242963727:/queues/%s\",\n        args: [createQueue.id],\n    }).then(invoke =\u003e invoke.result),\n});\nconst _default = new alicloud.message.ServiceEventRule(\"default\", {\n    eventTypes: [\"ObjectCreated:PutObject\"],\n    matchRules: [[{\n        suffix: \"\",\n        matchState: \"true\",\n        name: \"acs:oss:cn-hangzhou:1511928242963727:accccx\",\n        prefix: \"\",\n    }]],\n    endpoint: {\n        endpointValue: createSub.topicName,\n        endpointType: \"topic\",\n    },\n    ruleName: ruleName,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nqueue_name = config.get(\"queueName\")\nif queue_name is None:\n    queue_name = \"tf-exampe-topic2queue\"\nrule_name = config.get(\"ruleName\")\nif rule_name is None:\n    rule_name = \"tf-exampe-topic-1\"\ntopic_name = config.get(\"topicName\")\nif topic_name is None:\n    topic_name = \"tf-exampe-topic2queue\"\ncreate_topic = alicloud.message.ServiceTopic(\"CreateTopic\",\n    max_message_size=65536,\n    topic_name=topic_name,\n    logging_enabled=False)\ncreate_queue = alicloud.message.ServiceQueue(\"CreateQueue\",\n    delay_seconds=2,\n    polling_wait_seconds=2,\n    message_retention_period=566,\n    maximum_message_size=1123,\n    visibility_timeout=30,\n    queue_name=queue_name,\n    logging_enabled=False)\ncreate_sub = alicloud.message.ServiceSubscription(\"CreateSub\",\n    push_type=\"queue\",\n    notify_strategy=\"BACKOFF_RETRY\",\n    notify_content_format=\"SIMPLIFIED\",\n    subscription_name=\"RDK-example-sub\",\n    filter_tag=\"important\",\n    topic_name=create_topic.topic_name,\n    endpoint=std.format(input=\"acs:mns:cn-hangzhou:1511928242963727:/queues/%s\",\n        args=[create_queue.id]).result)\ndefault = alicloud.message.ServiceEventRule(\"default\",\n    event_types=[\"ObjectCreated:PutObject\"],\n    match_rules=[[{\n        \"suffix\": \"\",\n        \"match_state\": \"true\",\n        \"name\": \"acs:oss:cn-hangzhou:1511928242963727:accccx\",\n        \"prefix\": \"\",\n    }]],\n    endpoint={\n        \"endpoint_value\": create_sub.topic_name,\n        \"endpoint_type\": \"topic\",\n    },\n    rule_name=rule_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var queueName = config.Get(\"queueName\") ?? \"tf-exampe-topic2queue\";\n    var ruleName = config.Get(\"ruleName\") ?? \"tf-exampe-topic-1\";\n    var topicName = config.Get(\"topicName\") ?? \"tf-exampe-topic2queue\";\n    var createTopic = new AliCloud.Message.ServiceTopic(\"CreateTopic\", new()\n    {\n        MaxMessageSize = 65536,\n        TopicName = topicName,\n        LoggingEnabled = false,\n    });\n\n    var createQueue = new AliCloud.Message.ServiceQueue(\"CreateQueue\", new()\n    {\n        DelaySeconds = 2,\n        PollingWaitSeconds = 2,\n        MessageRetentionPeriod = 566,\n        MaximumMessageSize = 1123,\n        VisibilityTimeout = 30,\n        QueueName = queueName,\n        LoggingEnabled = false,\n    });\n\n    var createSub = new AliCloud.Message.ServiceSubscription(\"CreateSub\", new()\n    {\n        PushType = \"queue\",\n        NotifyStrategy = \"BACKOFF_RETRY\",\n        NotifyContentFormat = \"SIMPLIFIED\",\n        SubscriptionName = \"RDK-example-sub\",\n        FilterTag = \"important\",\n        TopicName = createTopic.TopicName,\n        Endpoint = Std.Format.Invoke(new()\n        {\n            Input = \"acs:mns:cn-hangzhou:1511928242963727:/queues/%s\",\n            Args = new[]\n            {\n                createQueue.Id,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var @default = new AliCloud.Message.ServiceEventRule(\"default\", new()\n    {\n        EventTypes = new[]\n        {\n            \"ObjectCreated:PutObject\",\n        },\n        MatchRules = new[]\n        {\n            new[]\n            {\n                new AliCloud.Message.Inputs.ServiceEventRuleMatchRuleArgs\n                {\n                    Suffix = \"\",\n                    MatchState = \"true\",\n                    Name = \"acs:oss:cn-hangzhou:1511928242963727:accccx\",\n                    Prefix = \"\",\n                },\n            },\n        },\n        Endpoint = new AliCloud.Message.Inputs.ServiceEventRuleEndpointArgs\n        {\n            EndpointValue = createSub.TopicName,\n            EndpointType = \"topic\",\n        },\n        RuleName = ruleName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/message\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tqueueName := \"tf-exampe-topic2queue\"\n\t\tif param := cfg.Get(\"queueName\"); param != \"\" {\n\t\t\tqueueName = param\n\t\t}\n\t\truleName := \"tf-exampe-topic-1\"\n\t\tif param := cfg.Get(\"ruleName\"); param != \"\" {\n\t\t\truleName = param\n\t\t}\n\t\ttopicName := \"tf-exampe-topic2queue\"\n\t\tif param := cfg.Get(\"topicName\"); param != \"\" {\n\t\t\ttopicName = param\n\t\t}\n\t\tcreateTopic, err := message.NewServiceTopic(ctx, \"CreateTopic\", \u0026message.ServiceTopicArgs{\n\t\t\tMaxMessageSize: pulumi.Int(65536),\n\t\t\tTopicName:      pulumi.String(topicName),\n\t\t\tLoggingEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateQueue, err := message.NewServiceQueue(ctx, \"CreateQueue\", \u0026message.ServiceQueueArgs{\n\t\t\tDelaySeconds:           pulumi.Int(2),\n\t\t\tPollingWaitSeconds:     pulumi.Int(2),\n\t\t\tMessageRetentionPeriod: pulumi.Int(566),\n\t\t\tMaximumMessageSize:     pulumi.Int(1123),\n\t\t\tVisibilityTimeout:      pulumi.Int(30),\n\t\t\tQueueName:              pulumi.String(queueName),\n\t\t\tLoggingEnabled:         pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"acs:mns:cn-hangzhou:1511928242963727:/queues/%s\",\n\t\t\tArgs: pulumi.StringArray{\n\t\t\t\tcreateQueue.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateSub, err := message.NewServiceSubscription(ctx, \"CreateSub\", \u0026message.ServiceSubscriptionArgs{\n\t\t\tPushType:            pulumi.String(\"queue\"),\n\t\t\tNotifyStrategy:      pulumi.String(\"BACKOFF_RETRY\"),\n\t\t\tNotifyContentFormat: pulumi.String(\"SIMPLIFIED\"),\n\t\t\tSubscriptionName:    pulumi.String(\"RDK-example-sub\"),\n\t\t\tFilterTag:           pulumi.String(\"important\"),\n\t\t\tTopicName:           createTopic.TopicName,\n\t\t\tEndpoint:            pulumi.String(invokeFormat.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = message.NewServiceEventRule(ctx, \"default\", \u0026message.ServiceEventRuleArgs{\n\t\t\tEventTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ObjectCreated:PutObject\"),\n\t\t\t},\n\t\t\tMatchRules: message.ServiceEventRuleMatchRuleArrayArray{\n\t\t\t\tmessage.ServiceEventRuleMatchRuleArray{\n\t\t\t\t\t\u0026message.ServiceEventRuleMatchRuleArgs{\n\t\t\t\t\t\tSuffix:     pulumi.String(\"\"),\n\t\t\t\t\t\tMatchState: pulumi.String(\"true\"),\n\t\t\t\t\t\tName:       pulumi.String(\"acs:oss:cn-hangzhou:1511928242963727:accccx\"),\n\t\t\t\t\t\tPrefix:     pulumi.String(\"\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tEndpoint: \u0026message.ServiceEventRuleEndpointArgs{\n\t\t\t\tEndpointValue: createSub.TopicName,\n\t\t\t\tEndpointType:  pulumi.String(\"topic\"),\n\t\t\t},\n\t\t\tRuleName: pulumi.String(ruleName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.message.ServiceTopic;\nimport com.pulumi.alicloud.message.ServiceTopicArgs;\nimport com.pulumi.alicloud.message.ServiceQueue;\nimport com.pulumi.alicloud.message.ServiceQueueArgs;\nimport com.pulumi.alicloud.message.ServiceSubscription;\nimport com.pulumi.alicloud.message.ServiceSubscriptionArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.message.ServiceEventRule;\nimport com.pulumi.alicloud.message.ServiceEventRuleArgs;\nimport com.pulumi.alicloud.message.inputs.ServiceEventRuleEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var queueName = config.get(\"queueName\").orElse(\"tf-exampe-topic2queue\");\n        final var ruleName = config.get(\"ruleName\").orElse(\"tf-exampe-topic-1\");\n        final var topicName = config.get(\"topicName\").orElse(\"tf-exampe-topic2queue\");\n        var createTopic = new ServiceTopic(\"createTopic\", ServiceTopicArgs.builder()\n            .maxMessageSize(65536)\n            .topicName(topicName)\n            .loggingEnabled(false)\n            .build());\n\n        var createQueue = new ServiceQueue(\"createQueue\", ServiceQueueArgs.builder()\n            .delaySeconds(2)\n            .pollingWaitSeconds(2)\n            .messageRetentionPeriod(566)\n            .maximumMessageSize(1123)\n            .visibilityTimeout(30)\n            .queueName(queueName)\n            .loggingEnabled(false)\n            .build());\n\n        var createSub = new ServiceSubscription(\"createSub\", ServiceSubscriptionArgs.builder()\n            .pushType(\"queue\")\n            .notifyStrategy(\"BACKOFF_RETRY\")\n            .notifyContentFormat(\"SIMPLIFIED\")\n            .subscriptionName(\"RDK-example-sub\")\n            .filterTag(\"important\")\n            .topicName(createTopic.topicName())\n            .endpoint(StdFunctions.format(FormatArgs.builder()\n                .input(\"acs:mns:cn-hangzhou:1511928242963727:/queues/%s\")\n                .args(createQueue.id())\n                .build()).result())\n            .build());\n\n        var default_ = new ServiceEventRule(\"default\", ServiceEventRuleArgs.builder()\n            .eventTypes(\"ObjectCreated:PutObject\")\n            .matchRules(ServiceEventRuleMatchRuleArgs.builder()\n                .suffix(\"\")\n                .matchState(\"true\")\n                .name(\"acs:oss:cn-hangzhou:1511928242963727:accccx\")\n                .prefix(\"\")\n                .build())\n            .endpoint(ServiceEventRuleEndpointArgs.builder()\n                .endpointValue(createSub.topicName())\n                .endpointType(\"topic\")\n                .build())\n            .ruleName(ruleName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  queueName:\n    type: string\n    default: tf-exampe-topic2queue\n  ruleName:\n    type: string\n    default: tf-exampe-topic-1\n  topicName:\n    type: string\n    default: tf-exampe-topic2queue\nresources:\n  createTopic:\n    type: alicloud:message:ServiceTopic\n    name: CreateTopic\n    properties:\n      maxMessageSize: '65536'\n      topicName: ${topicName}\n      loggingEnabled: false\n  createQueue:\n    type: alicloud:message:ServiceQueue\n    name: CreateQueue\n    properties:\n      delaySeconds: '2'\n      pollingWaitSeconds: '2'\n      messageRetentionPeriod: '566'\n      maximumMessageSize: '1123'\n      visibilityTimeout: '30'\n      queueName: ${queueName}\n      loggingEnabled: false\n  createSub:\n    type: alicloud:message:ServiceSubscription\n    name: CreateSub\n    properties:\n      pushType: queue\n      notifyStrategy: BACKOFF_RETRY\n      notifyContentFormat: SIMPLIFIED\n      subscriptionName: RDK-example-sub\n      filterTag: important\n      topicName: ${createTopic.topicName}\n      endpoint:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: acs:mns:cn-hangzhou:1511928242963727:/queues/%s\n            args:\n              - ${createQueue.id}\n          return: result\n  default:\n    type: alicloud:message:ServiceEventRule\n    properties:\n      eventTypes:\n        - ObjectCreated:PutObject\n      matchRules:\n        - - suffix: \"\"\n            matchState: 'true'\n            name: acs:oss:cn-hangzhou:1511928242963727:accccx\n            prefix: \"\"\n      endpoint:\n        endpointValue: ${createSub.topicName}\n        endpointType: topic\n      ruleName: ${ruleName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMessage Service Event Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:message/serviceEventRule:ServiceEventRule example \u003cid\u003e\n```\n\n","properties":{"deliveryMode":{"type":"string","description":"DIRECT: directly delivers to a single queue (1:1) without creating a Topic;\n- BROADCAST: BROADCAST to all subscription queues (1:N). You need to create a Topic;\n"},"endpoint":{"$ref":"#/types/alicloud:message/ServiceEventRuleEndpoint:ServiceEventRuleEndpoint","description":"Message Receiving Terminal Endpoint Object. See \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e below.\n"},"eventTypes":{"type":"array","items":{"type":"string"},"description":"Event Type List\n"},"matchRules":{"type":"array","items":{"type":"array","items":{"$ref":"#/types/alicloud:message/ServiceEventRuleMatchRule:ServiceEventRuleMatchRule"}},"description":"Matching rules, or relationships between multiple rules. See \u003cspan pulumi-lang-nodejs=\"`matchRules`\" pulumi-lang-dotnet=\"`MatchRules`\" pulumi-lang-go=\"`matchRules`\" pulumi-lang-python=\"`match_rules`\" pulumi-lang-yaml=\"`matchRules`\" pulumi-lang-java=\"`matchRules`\"\u003e`match_rules`\u003c/span\u003e below.\n"},"ruleName":{"type":"string","description":"The event notification rule name.\n"}},"required":["deliveryMode","eventTypes","ruleName"],"inputProperties":{"deliveryMode":{"type":"string","description":"DIRECT: directly delivers to a single queue (1:1) without creating a Topic;\n- BROADCAST: BROADCAST to all subscription queues (1:N). You need to create a Topic;\n","willReplaceOnChanges":true},"endpoint":{"$ref":"#/types/alicloud:message/ServiceEventRuleEndpoint:ServiceEventRuleEndpoint","description":"Message Receiving Terminal Endpoint Object. See \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"eventTypes":{"type":"array","items":{"type":"string"},"description":"Event Type List\n","willReplaceOnChanges":true},"matchRules":{"type":"array","items":{"type":"array","items":{"$ref":"#/types/alicloud:message/ServiceEventRuleMatchRule:ServiceEventRuleMatchRule"}},"description":"Matching rules, or relationships between multiple rules. See \u003cspan pulumi-lang-nodejs=\"`matchRules`\" pulumi-lang-dotnet=\"`MatchRules`\" pulumi-lang-go=\"`matchRules`\" pulumi-lang-python=\"`match_rules`\" pulumi-lang-yaml=\"`matchRules`\" pulumi-lang-java=\"`matchRules`\"\u003e`match_rules`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"ruleName":{"type":"string","description":"The event notification rule name.\n","willReplaceOnChanges":true}},"requiredInputs":["eventTypes","ruleName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEventRule resources.\n","properties":{"deliveryMode":{"type":"string","description":"DIRECT: directly delivers to a single queue (1:1) without creating a Topic;\n- BROADCAST: BROADCAST to all subscription queues (1:N). You need to create a Topic;\n","willReplaceOnChanges":true},"endpoint":{"$ref":"#/types/alicloud:message/ServiceEventRuleEndpoint:ServiceEventRuleEndpoint","description":"Message Receiving Terminal Endpoint Object. See \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"eventTypes":{"type":"array","items":{"type":"string"},"description":"Event Type List\n","willReplaceOnChanges":true},"matchRules":{"type":"array","items":{"type":"array","items":{"$ref":"#/types/alicloud:message/ServiceEventRuleMatchRule:ServiceEventRuleMatchRule"}},"description":"Matching rules, or relationships between multiple rules. See \u003cspan pulumi-lang-nodejs=\"`matchRules`\" pulumi-lang-dotnet=\"`MatchRules`\" pulumi-lang-go=\"`matchRules`\" pulumi-lang-python=\"`match_rules`\" pulumi-lang-yaml=\"`matchRules`\" pulumi-lang-java=\"`matchRules`\"\u003e`match_rules`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"ruleName":{"type":"string","description":"The event notification rule name.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:message/serviceQueue:ServiceQueue":{"description":"Provides a Message Service Queue resource.\n\n\n\nFor information about Message Service Queue and how to use it, see [What is Queue](https://www.alibabacloud.com/help/en/message-service/latest/createqueue).\n\n\u003e **NOTE:** Available since v1.188.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.message.ServiceQueue(\"default\", {\n    queueName: name,\n    delaySeconds: 2,\n    pollingWaitSeconds: 2,\n    messageRetentionPeriod: 566,\n    maximumMessageSize: 1126,\n    visibilityTimeout: 30,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.message.ServiceQueue(\"default\",\n    queue_name=name,\n    delay_seconds=2,\n    polling_wait_seconds=2,\n    message_retention_period=566,\n    maximum_message_size=1126,\n    visibility_timeout=30)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Message.ServiceQueue(\"default\", new()\n    {\n        QueueName = name,\n        DelaySeconds = 2,\n        PollingWaitSeconds = 2,\n        MessageRetentionPeriod = 566,\n        MaximumMessageSize = 1126,\n        VisibilityTimeout = 30,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/message\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := message.NewServiceQueue(ctx, \"default\", \u0026message.ServiceQueueArgs{\n\t\t\tQueueName:              pulumi.String(name),\n\t\t\tDelaySeconds:           pulumi.Int(2),\n\t\t\tPollingWaitSeconds:     pulumi.Int(2),\n\t\t\tMessageRetentionPeriod: pulumi.Int(566),\n\t\t\tMaximumMessageSize:     pulumi.Int(1126),\n\t\t\tVisibilityTimeout:      pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.message.ServiceQueue;\nimport com.pulumi.alicloud.message.ServiceQueueArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ServiceQueue(\"default\", ServiceQueueArgs.builder()\n            .queueName(name)\n            .delaySeconds(2)\n            .pollingWaitSeconds(2)\n            .messageRetentionPeriod(566)\n            .maximumMessageSize(1126)\n            .visibilityTimeout(30)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:message:ServiceQueue\n    properties:\n      queueName: ${name}\n      delaySeconds: '2'\n      pollingWaitSeconds: '2'\n      messageRetentionPeriod: '566'\n      maximumMessageSize: '1126'\n      visibilityTimeout: '30'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMessage Service Queue can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:message/serviceQueue:ServiceQueue example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"integer","description":"(Available since v1.223.2) The time when the queue was created.\n"},"delaySeconds":{"type":"integer","description":"The period after which all messages sent to the queue are consumed. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`604800`\" pulumi-lang-dotnet=\"`604800`\" pulumi-lang-go=\"`604800`\" pulumi-lang-python=\"`604800`\" pulumi-lang-yaml=\"`604800`\" pulumi-lang-java=\"`604800`\"\u003e`604800`\u003c/span\u003e. Unit: seconds.\n"},"dlqPolicy":{"$ref":"#/types/alicloud:message/ServiceQueueDlqPolicy:ServiceQueueDlqPolicy","description":"The dead-letter queue policy. See \u003cspan pulumi-lang-nodejs=\"`dlqPolicy`\" pulumi-lang-dotnet=\"`DlqPolicy`\" pulumi-lang-go=\"`dlqPolicy`\" pulumi-lang-python=\"`dlq_policy`\" pulumi-lang-yaml=\"`dlqPolicy`\" pulumi-lang-java=\"`dlqPolicy`\"\u003e`dlq_policy`\u003c/span\u003e below.\n"},"loggingEnabled":{"type":"boolean","description":"Specifies whether to enable the logging feature. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"maximumMessageSize":{"type":"integer","description":"The maximum length of the message that is sent to the queue. Valid values: \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e. Unit: bytes. Default value: \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n"},"messageRetentionPeriod":{"type":"integer","description":"The maximum duration for which a message is retained in the queue. After the specified retention period ends, the message is deleted regardless of whether the message is received. Valid values: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`604800`\" pulumi-lang-dotnet=\"`604800`\" pulumi-lang-go=\"`604800`\" pulumi-lang-python=\"`604800`\" pulumi-lang-yaml=\"`604800`\" pulumi-lang-java=\"`604800`\"\u003e`604800`\u003c/span\u003e. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`345600`\" pulumi-lang-dotnet=\"`345600`\" pulumi-lang-go=\"`345600`\" pulumi-lang-python=\"`345600`\" pulumi-lang-yaml=\"`345600`\" pulumi-lang-java=\"`345600`\"\u003e`345600`\u003c/span\u003e.\n"},"pollingWaitSeconds":{"type":"integer","description":"The maximum duration for which long polling requests are held after the ReceiveMessage operation is called. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"queueName":{"type":"string","description":"The name of the queue.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"visibilityTimeout":{"type":"integer","description":"The duration for which a message stays in the Inactive state after the message is received from the queue. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`43200`\" pulumi-lang-dotnet=\"`43200`\" pulumi-lang-go=\"`43200`\" pulumi-lang-python=\"`43200`\" pulumi-lang-yaml=\"`43200`\" pulumi-lang-java=\"`43200`\"\u003e`43200`\u003c/span\u003e. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n"}},"required":["createTime","delaySeconds","dlqPolicy","maximumMessageSize","messageRetentionPeriod","pollingWaitSeconds","queueName","visibilityTimeout"],"inputProperties":{"delaySeconds":{"type":"integer","description":"The period after which all messages sent to the queue are consumed. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`604800`\" pulumi-lang-dotnet=\"`604800`\" pulumi-lang-go=\"`604800`\" pulumi-lang-python=\"`604800`\" pulumi-lang-yaml=\"`604800`\" pulumi-lang-java=\"`604800`\"\u003e`604800`\u003c/span\u003e. Unit: seconds.\n"},"dlqPolicy":{"$ref":"#/types/alicloud:message/ServiceQueueDlqPolicy:ServiceQueueDlqPolicy","description":"The dead-letter queue policy. See \u003cspan pulumi-lang-nodejs=\"`dlqPolicy`\" pulumi-lang-dotnet=\"`DlqPolicy`\" pulumi-lang-go=\"`dlqPolicy`\" pulumi-lang-python=\"`dlq_policy`\" pulumi-lang-yaml=\"`dlqPolicy`\" pulumi-lang-java=\"`dlqPolicy`\"\u003e`dlq_policy`\u003c/span\u003e below.\n"},"loggingEnabled":{"type":"boolean","description":"Specifies whether to enable the logging feature. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"maximumMessageSize":{"type":"integer","description":"The maximum length of the message that is sent to the queue. Valid values: \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e. Unit: bytes. Default value: \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n"},"messageRetentionPeriod":{"type":"integer","description":"The maximum duration for which a message is retained in the queue. After the specified retention period ends, the message is deleted regardless of whether the message is received. Valid values: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`604800`\" pulumi-lang-dotnet=\"`604800`\" pulumi-lang-go=\"`604800`\" pulumi-lang-python=\"`604800`\" pulumi-lang-yaml=\"`604800`\" pulumi-lang-java=\"`604800`\"\u003e`604800`\u003c/span\u003e. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`345600`\" pulumi-lang-dotnet=\"`345600`\" pulumi-lang-go=\"`345600`\" pulumi-lang-python=\"`345600`\" pulumi-lang-yaml=\"`345600`\" pulumi-lang-java=\"`345600`\"\u003e`345600`\u003c/span\u003e.\n"},"pollingWaitSeconds":{"type":"integer","description":"The maximum duration for which long polling requests are held after the ReceiveMessage operation is called. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"queueName":{"type":"string","description":"The name of the queue.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"visibilityTimeout":{"type":"integer","description":"The duration for which a message stays in the Inactive state after the message is received from the queue. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`43200`\" pulumi-lang-dotnet=\"`43200`\" pulumi-lang-go=\"`43200`\" pulumi-lang-python=\"`43200`\" pulumi-lang-yaml=\"`43200`\" pulumi-lang-java=\"`43200`\"\u003e`43200`\u003c/span\u003e. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n"}},"requiredInputs":["queueName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceQueue resources.\n","properties":{"createTime":{"type":"integer","description":"(Available since v1.223.2) The time when the queue was created.\n"},"delaySeconds":{"type":"integer","description":"The period after which all messages sent to the queue are consumed. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`604800`\" pulumi-lang-dotnet=\"`604800`\" pulumi-lang-go=\"`604800`\" pulumi-lang-python=\"`604800`\" pulumi-lang-yaml=\"`604800`\" pulumi-lang-java=\"`604800`\"\u003e`604800`\u003c/span\u003e. Unit: seconds.\n"},"dlqPolicy":{"$ref":"#/types/alicloud:message/ServiceQueueDlqPolicy:ServiceQueueDlqPolicy","description":"The dead-letter queue policy. See \u003cspan pulumi-lang-nodejs=\"`dlqPolicy`\" pulumi-lang-dotnet=\"`DlqPolicy`\" pulumi-lang-go=\"`dlqPolicy`\" pulumi-lang-python=\"`dlq_policy`\" pulumi-lang-yaml=\"`dlqPolicy`\" pulumi-lang-java=\"`dlqPolicy`\"\u003e`dlq_policy`\u003c/span\u003e below.\n"},"loggingEnabled":{"type":"boolean","description":"Specifies whether to enable the logging feature. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"maximumMessageSize":{"type":"integer","description":"The maximum length of the message that is sent to the queue. Valid values: \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e. Unit: bytes. Default value: \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e.\n"},"messageRetentionPeriod":{"type":"integer","description":"The maximum duration for which a message is retained in the queue. After the specified retention period ends, the message is deleted regardless of whether the message is received. Valid values: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`604800`\" pulumi-lang-dotnet=\"`604800`\" pulumi-lang-go=\"`604800`\" pulumi-lang-python=\"`604800`\" pulumi-lang-yaml=\"`604800`\" pulumi-lang-java=\"`604800`\"\u003e`604800`\u003c/span\u003e. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`345600`\" pulumi-lang-dotnet=\"`345600`\" pulumi-lang-go=\"`345600`\" pulumi-lang-python=\"`345600`\" pulumi-lang-yaml=\"`345600`\" pulumi-lang-java=\"`345600`\"\u003e`345600`\u003c/span\u003e.\n"},"pollingWaitSeconds":{"type":"integer","description":"The maximum duration for which long polling requests are held after the ReceiveMessage operation is called. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"queueName":{"type":"string","description":"The name of the queue.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"visibilityTimeout":{"type":"integer","description":"The duration for which a message stays in the Inactive state after the message is received from the queue. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`43200`\" pulumi-lang-dotnet=\"`43200`\" pulumi-lang-go=\"`43200`\" pulumi-lang-python=\"`43200`\" pulumi-lang-yaml=\"`43200`\" pulumi-lang-java=\"`43200`\"\u003e`43200`\u003c/span\u003e. Unit: seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:message/serviceService:ServiceService":{"description":"Provides a Message Service Service resource.\n\nMNS Service Open Status.\n\nFor information about Message Service Service and how to use it, see [What is Service](https://next.api.alibabacloud.com/document/BssOpenApi/2017-12-14/CreateInstance).\n\n\u003e **NOTE:** Available since v1.252.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.message.ServiceService(\"default\", {});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.message.ServiceService(\"default\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Message.ServiceService(\"default\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/message\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := message.NewServiceService(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.message.ServiceService;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new ServiceService(\"default\");\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:message:ServiceService\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating \u003cspan pulumi-lang-nodejs=\"`alicloud.message.ServiceService`\" pulumi-lang-dotnet=\"`alicloud.message.ServiceService`\" pulumi-lang-go=\"`message.ServiceService`\" pulumi-lang-python=\"`message.ServiceService`\" pulumi-lang-yaml=\"`alicloud.message.ServiceService`\" pulumi-lang-java=\"`alicloud.message.ServiceService`\"\u003e`alicloud.message.ServiceService`\u003c/span\u003e\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.message.ServiceService`\" pulumi-lang-dotnet=\"`alicloud.message.ServiceService`\" pulumi-lang-go=\"`message.ServiceService`\" pulumi-lang-python=\"`message.ServiceService`\" pulumi-lang-yaml=\"`alicloud.message.ServiceService`\" pulumi-lang-java=\"`alicloud.message.ServiceService`\"\u003e`alicloud.message.ServiceService`\u003c/span\u003e resource is unique per account; repeated creation attempts to activate only one instance.\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.message.ServiceService`\" pulumi-lang-dotnet=\"`alicloud.message.ServiceService`\" pulumi-lang-go=\"`message.ServiceService`\" pulumi-lang-python=\"`message.ServiceService`\" pulumi-lang-yaml=\"`alicloud.message.ServiceService`\" pulumi-lang-java=\"`alicloud.message.ServiceService`\"\u003e`alicloud.message.ServiceService`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.message.ServiceService`\" pulumi-lang-dotnet=\"`alicloud.message.ServiceService`\" pulumi-lang-go=\"`message.ServiceService`\" pulumi-lang-python=\"`message.ServiceService`\" pulumi-lang-yaml=\"`alicloud.message.ServiceService`\" pulumi-lang-java=\"`alicloud.message.ServiceService`\"\u003e`alicloud.message.ServiceService`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"status":{"type":"string","description":"The status of the Service.\n"}},"required":["status"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceService resources.\n","properties":{"status":{"type":"string","description":"The status of the Service.\n"}},"type":"object"}},"alicloud:message/serviceSubscription:ServiceSubscription":{"description":"Provides a Message Service Subscription resource.\n\n\n\nFor information about Message Service Subscription and how to use it, see [What is Subscription](https://www.alibabacloud.com/help/en/mns/developer-reference/api-mns-open-2022-01-19-subscribe).\n\n\u003e **NOTE:** Available since v1.188.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.message.ServiceTopic(\"default\", {\n    topicName: name,\n    maxMessageSize: 16888,\n    enableLogging: true,\n});\nconst defaultServiceSubscription = new alicloud.message.ServiceSubscription(\"default\", {\n    topicName: _default.topicName,\n    subscriptionName: name,\n    endpoint: \"http://example.com\",\n    pushType: \"http\",\n    filterTag: name,\n    notifyContentFormat: \"XML\",\n    notifyStrategy: \"BACKOFF_RETRY\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.message.ServiceTopic(\"default\",\n    topic_name=name,\n    max_message_size=16888,\n    enable_logging=True)\ndefault_service_subscription = alicloud.message.ServiceSubscription(\"default\",\n    topic_name=default.topic_name,\n    subscription_name=name,\n    endpoint=\"http://example.com\",\n    push_type=\"http\",\n    filter_tag=name,\n    notify_content_format=\"XML\",\n    notify_strategy=\"BACKOFF_RETRY\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Message.ServiceTopic(\"default\", new()\n    {\n        TopicName = name,\n        MaxMessageSize = 16888,\n        EnableLogging = true,\n    });\n\n    var defaultServiceSubscription = new AliCloud.Message.ServiceSubscription(\"default\", new()\n    {\n        TopicName = @default.TopicName,\n        SubscriptionName = name,\n        Endpoint = \"http://example.com\",\n        PushType = \"http\",\n        FilterTag = name,\n        NotifyContentFormat = \"XML\",\n        NotifyStrategy = \"BACKOFF_RETRY\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/message\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := message.NewServiceTopic(ctx, \"default\", \u0026message.ServiceTopicArgs{\n\t\t\tTopicName:      pulumi.String(name),\n\t\t\tMaxMessageSize: pulumi.Int(16888),\n\t\t\tEnableLogging:  pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = message.NewServiceSubscription(ctx, \"default\", \u0026message.ServiceSubscriptionArgs{\n\t\t\tTopicName:           _default.TopicName,\n\t\t\tSubscriptionName:    pulumi.String(name),\n\t\t\tEndpoint:            pulumi.String(\"http://example.com\"),\n\t\t\tPushType:            pulumi.String(\"http\"),\n\t\t\tFilterTag:           pulumi.String(name),\n\t\t\tNotifyContentFormat: pulumi.String(\"XML\"),\n\t\t\tNotifyStrategy:      pulumi.String(\"BACKOFF_RETRY\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.message.ServiceTopic;\nimport com.pulumi.alicloud.message.ServiceTopicArgs;\nimport com.pulumi.alicloud.message.ServiceSubscription;\nimport com.pulumi.alicloud.message.ServiceSubscriptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ServiceTopic(\"default\", ServiceTopicArgs.builder()\n            .topicName(name)\n            .maxMessageSize(16888)\n            .enableLogging(true)\n            .build());\n\n        var defaultServiceSubscription = new ServiceSubscription(\"defaultServiceSubscription\", ServiceSubscriptionArgs.builder()\n            .topicName(default_.topicName())\n            .subscriptionName(name)\n            .endpoint(\"http://example.com\")\n            .pushType(\"http\")\n            .filterTag(name)\n            .notifyContentFormat(\"XML\")\n            .notifyStrategy(\"BACKOFF_RETRY\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:message:ServiceTopic\n    properties:\n      topicName: ${name}\n      maxMessageSize: 16888\n      enableLogging: true\n  defaultServiceSubscription:\n    type: alicloud:message:ServiceSubscription\n    name: default\n    properties:\n      topicName: ${default.topicName}\n      subscriptionName: ${name}\n      endpoint: http://example.com\n      pushType: http\n      filterTag: ${name}\n      notifyContentFormat: XML\n      notifyStrategy: BACKOFF_RETRY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMessage Service Subscription can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:message/serviceSubscription:ServiceSubscription example \u003ctopic_name\u003e:\u003csubscription_name\u003e\n```\n\n","properties":{"createTime":{"type":"integer","description":"(Available since v1.244.0) The time when the subscription was created.\n"},"dlqPolicy":{"$ref":"#/types/alicloud:message/ServiceSubscriptionDlqPolicy:ServiceSubscriptionDlqPolicy","description":"The dead-letter queue policy. See \u003cspan pulumi-lang-nodejs=\"`dlqPolicy`\" pulumi-lang-dotnet=\"`DlqPolicy`\" pulumi-lang-go=\"`dlqPolicy`\" pulumi-lang-python=\"`dlq_policy`\" pulumi-lang-yaml=\"`dlqPolicy`\" pulumi-lang-java=\"`dlqPolicy`\"\u003e`dlq_policy`\u003c/span\u003e below.\n"},"endpoint":{"type":"string","description":"The endpoint has three format. Available values format:\n- `HTTP Format`: An HTTP URL that starts with http:// or https://.\n- `Queue Format`: A queue name.\n- `MPush Format`: An AppKey.\n- `Sms Format`: A mobile number\n- `Email Format`: An email address.\n"},"filterTag":{"type":"string","description":"The tag that is used to filter messages. Only the messages that have the same tag can be pushed. A tag is a string that can be up to 16 characters in length. By default, no tag is specified to filter messages.\n"},"notifyContentFormat":{"type":"string","description":"The NotifyContentFormat attribute of Subscription. This attribute specifies the content format of the messages pushed to users. Valid values: `XML`, `JSON` and `SIMPLIFIED`. Default value: `XML`.\n"},"notifyStrategy":{"type":"string","description":"The NotifyStrategy attribute of Subscription. This attribute specifies the retry strategy when message sending fails. Default value: `BACKOFF_RETRY`. Valid values:\n- `BACKOFF_RETRY`: retries with a fixed backoff interval.\n- `EXPONENTIAL_DECAY_RETRY`: retries with exponential backoff.\n"},"pushType":{"type":"string","description":"The Push type of Subscription. The Valid values: \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mpush`\" pulumi-lang-dotnet=\"`Mpush`\" pulumi-lang-go=\"`mpush`\" pulumi-lang-python=\"`mpush`\" pulumi-lang-yaml=\"`mpush`\" pulumi-lang-java=\"`mpush`\"\u003e`mpush`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alisms`\" pulumi-lang-dotnet=\"`Alisms`\" pulumi-lang-go=\"`alisms`\" pulumi-lang-python=\"`alisms`\" pulumi-lang-yaml=\"`alisms`\" pulumi-lang-java=\"`alisms`\"\u003e`alisms`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\"\u003e`email`\u003c/span\u003e.\n"},"stsRoleArn":{"type":"string","description":"The STS RoleArn.\n"},"subscriptionName":{"type":"string","description":"Two topics subscription on a single account in the same topic cannot have the same name. A topic subscription name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 255 characters.\n"},"topicName":{"type":"string","description":"The topic which The subscription belongs to was named with the name. A topic name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 255 characters.\n"}},"required":["createTime","dlqPolicy","endpoint","notifyContentFormat","notifyStrategy","pushType","subscriptionName","topicName"],"inputProperties":{"dlqPolicy":{"$ref":"#/types/alicloud:message/ServiceSubscriptionDlqPolicy:ServiceSubscriptionDlqPolicy","description":"The dead-letter queue policy. See \u003cspan pulumi-lang-nodejs=\"`dlqPolicy`\" pulumi-lang-dotnet=\"`DlqPolicy`\" pulumi-lang-go=\"`dlqPolicy`\" pulumi-lang-python=\"`dlq_policy`\" pulumi-lang-yaml=\"`dlqPolicy`\" pulumi-lang-java=\"`dlqPolicy`\"\u003e`dlq_policy`\u003c/span\u003e below.\n"},"endpoint":{"type":"string","description":"The endpoint has three format. Available values format:\n- `HTTP Format`: An HTTP URL that starts with http:// or https://.\n- `Queue Format`: A queue name.\n- `MPush Format`: An AppKey.\n- `Sms Format`: A mobile number\n- `Email Format`: An email address.\n","willReplaceOnChanges":true},"filterTag":{"type":"string","description":"The tag that is used to filter messages. Only the messages that have the same tag can be pushed. A tag is a string that can be up to 16 characters in length. By default, no tag is specified to filter messages.\n","willReplaceOnChanges":true},"notifyContentFormat":{"type":"string","description":"The NotifyContentFormat attribute of Subscription. This attribute specifies the content format of the messages pushed to users. Valid values: `XML`, `JSON` and `SIMPLIFIED`. Default value: `XML`.\n","willReplaceOnChanges":true},"notifyStrategy":{"type":"string","description":"The NotifyStrategy attribute of Subscription. This attribute specifies the retry strategy when message sending fails. Default value: `BACKOFF_RETRY`. Valid values:\n- `BACKOFF_RETRY`: retries with a fixed backoff interval.\n- `EXPONENTIAL_DECAY_RETRY`: retries with exponential backoff.\n"},"pushType":{"type":"string","description":"The Push type of Subscription. The Valid values: \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mpush`\" pulumi-lang-dotnet=\"`Mpush`\" pulumi-lang-go=\"`mpush`\" pulumi-lang-python=\"`mpush`\" pulumi-lang-yaml=\"`mpush`\" pulumi-lang-java=\"`mpush`\"\u003e`mpush`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alisms`\" pulumi-lang-dotnet=\"`Alisms`\" pulumi-lang-go=\"`alisms`\" pulumi-lang-python=\"`alisms`\" pulumi-lang-yaml=\"`alisms`\" pulumi-lang-java=\"`alisms`\"\u003e`alisms`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\"\u003e`email`\u003c/span\u003e.\n"},"stsRoleArn":{"type":"string","description":"The STS RoleArn.\n","willReplaceOnChanges":true},"subscriptionName":{"type":"string","description":"Two topics subscription on a single account in the same topic cannot have the same name. A topic subscription name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 255 characters.\n","willReplaceOnChanges":true},"topicName":{"type":"string","description":"The topic which The subscription belongs to was named with the name. A topic name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 255 characters.\n","willReplaceOnChanges":true}},"requiredInputs":["endpoint","pushType","subscriptionName","topicName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceSubscription resources.\n","properties":{"createTime":{"type":"integer","description":"(Available since v1.244.0) The time when the subscription was created.\n"},"dlqPolicy":{"$ref":"#/types/alicloud:message/ServiceSubscriptionDlqPolicy:ServiceSubscriptionDlqPolicy","description":"The dead-letter queue policy. See \u003cspan pulumi-lang-nodejs=\"`dlqPolicy`\" pulumi-lang-dotnet=\"`DlqPolicy`\" pulumi-lang-go=\"`dlqPolicy`\" pulumi-lang-python=\"`dlq_policy`\" pulumi-lang-yaml=\"`dlqPolicy`\" pulumi-lang-java=\"`dlqPolicy`\"\u003e`dlq_policy`\u003c/span\u003e below.\n"},"endpoint":{"type":"string","description":"The endpoint has three format. Available values format:\n- `HTTP Format`: An HTTP URL that starts with http:// or https://.\n- `Queue Format`: A queue name.\n- `MPush Format`: An AppKey.\n- `Sms Format`: A mobile number\n- `Email Format`: An email address.\n","willReplaceOnChanges":true},"filterTag":{"type":"string","description":"The tag that is used to filter messages. Only the messages that have the same tag can be pushed. A tag is a string that can be up to 16 characters in length. By default, no tag is specified to filter messages.\n","willReplaceOnChanges":true},"notifyContentFormat":{"type":"string","description":"The NotifyContentFormat attribute of Subscription. This attribute specifies the content format of the messages pushed to users. Valid values: `XML`, `JSON` and `SIMPLIFIED`. Default value: `XML`.\n","willReplaceOnChanges":true},"notifyStrategy":{"type":"string","description":"The NotifyStrategy attribute of Subscription. This attribute specifies the retry strategy when message sending fails. Default value: `BACKOFF_RETRY`. Valid values:\n- `BACKOFF_RETRY`: retries with a fixed backoff interval.\n- `EXPONENTIAL_DECAY_RETRY`: retries with exponential backoff.\n"},"pushType":{"type":"string","description":"The Push type of Subscription. The Valid values: \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mpush`\" pulumi-lang-dotnet=\"`Mpush`\" pulumi-lang-go=\"`mpush`\" pulumi-lang-python=\"`mpush`\" pulumi-lang-yaml=\"`mpush`\" pulumi-lang-java=\"`mpush`\"\u003e`mpush`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alisms`\" pulumi-lang-dotnet=\"`Alisms`\" pulumi-lang-go=\"`alisms`\" pulumi-lang-python=\"`alisms`\" pulumi-lang-yaml=\"`alisms`\" pulumi-lang-java=\"`alisms`\"\u003e`alisms`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\"\u003e`email`\u003c/span\u003e.\n"},"stsRoleArn":{"type":"string","description":"The STS RoleArn.\n","willReplaceOnChanges":true},"subscriptionName":{"type":"string","description":"Two topics subscription on a single account in the same topic cannot have the same name. A topic subscription name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 255 characters.\n","willReplaceOnChanges":true},"topicName":{"type":"string","description":"The topic which The subscription belongs to was named with the name. A topic name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 255 characters.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:message/serviceTopic:ServiceTopic":{"description":"Provides a Message Service Topic resource.\n\n\n\nFor information about Message Service Topic and how to use it, see [What is Topic](https://www.alibabacloud.com/help/en/message-service/latest/createtopic).\n\n\u003e **NOTE:** Available since v1.188.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.message.ServiceTopic(\"default\", {\n    topicName: name,\n    maxMessageSize: 16888,\n    enableLogging: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.message.ServiceTopic(\"default\",\n    topic_name=name,\n    max_message_size=16888,\n    enable_logging=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Message.ServiceTopic(\"default\", new()\n    {\n        TopicName = name,\n        MaxMessageSize = 16888,\n        EnableLogging = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/message\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := message.NewServiceTopic(ctx, \"default\", \u0026message.ServiceTopicArgs{\n\t\t\tTopicName:      pulumi.String(name),\n\t\t\tMaxMessageSize: pulumi.Int(16888),\n\t\t\tEnableLogging:  pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.message.ServiceTopic;\nimport com.pulumi.alicloud.message.ServiceTopicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ServiceTopic(\"default\", ServiceTopicArgs.builder()\n            .topicName(name)\n            .maxMessageSize(16888)\n            .enableLogging(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:message:ServiceTopic\n    properties:\n      topicName: ${name}\n      maxMessageSize: 16888\n      enableLogging: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMessage Service Topic can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:message/serviceTopic:ServiceTopic example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"(Available since v1.241.0) The time when the topic was created.\n"},"enableLogging":{"type":"boolean","description":"Specifies whether to enable the logging feature. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"loggingEnabled":{"type":"boolean","description":". Field \u003cspan pulumi-lang-nodejs=\"`loggingEnabled`\" pulumi-lang-dotnet=\"`LoggingEnabled`\" pulumi-lang-go=\"`loggingEnabled`\" pulumi-lang-python=\"`logging_enabled`\" pulumi-lang-yaml=\"`loggingEnabled`\" pulumi-lang-java=\"`loggingEnabled`\"\u003e`logging_enabled`\u003c/span\u003e has been deprecated from provider version 1.241.0. New field \u003cspan pulumi-lang-nodejs=\"`enableLogging`\" pulumi-lang-dotnet=\"`EnableLogging`\" pulumi-lang-go=\"`enableLogging`\" pulumi-lang-python=\"`enable_logging`\" pulumi-lang-yaml=\"`enableLogging`\" pulumi-lang-java=\"`enableLogging`\"\u003e`enable_logging`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`loggingEnabled`\" pulumi-lang-dotnet=\"`LoggingEnabled`\" pulumi-lang-go=\"`loggingEnabled`\" pulumi-lang-python=\"`logging_enabled`\" pulumi-lang-yaml=\"`loggingEnabled`\" pulumi-lang-java=\"`loggingEnabled`\"\u003e`logging_enabled`\u003c/span\u003e has been deprecated from provider version 1.241.0. New field \u003cspan pulumi-lang-nodejs=\"`enableLogging`\" pulumi-lang-dotnet=\"`EnableLogging`\" pulumi-lang-go=\"`enableLogging`\" pulumi-lang-python=\"`enable_logging`\" pulumi-lang-yaml=\"`enableLogging`\" pulumi-lang-java=\"`enableLogging`\"\u003e`enable_logging`\u003c/span\u003e instead."},"maxMessageSize":{"type":"integer","description":"The maximum length of the message that is sent to the topic. Default value: \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e. Unit: bytes.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"topicName":{"type":"string","description":"The name of the topic.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["createTime","enableLogging","loggingEnabled","maxMessageSize","topicName"],"inputProperties":{"enableLogging":{"type":"boolean","description":"Specifies whether to enable the logging feature. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"loggingEnabled":{"type":"boolean","description":". Field \u003cspan pulumi-lang-nodejs=\"`loggingEnabled`\" pulumi-lang-dotnet=\"`LoggingEnabled`\" pulumi-lang-go=\"`loggingEnabled`\" pulumi-lang-python=\"`logging_enabled`\" pulumi-lang-yaml=\"`loggingEnabled`\" pulumi-lang-java=\"`loggingEnabled`\"\u003e`logging_enabled`\u003c/span\u003e has been deprecated from provider version 1.241.0. New field \u003cspan pulumi-lang-nodejs=\"`enableLogging`\" pulumi-lang-dotnet=\"`EnableLogging`\" pulumi-lang-go=\"`enableLogging`\" pulumi-lang-python=\"`enable_logging`\" pulumi-lang-yaml=\"`enableLogging`\" pulumi-lang-java=\"`enableLogging`\"\u003e`enable_logging`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`loggingEnabled`\" pulumi-lang-dotnet=\"`LoggingEnabled`\" pulumi-lang-go=\"`loggingEnabled`\" pulumi-lang-python=\"`logging_enabled`\" pulumi-lang-yaml=\"`loggingEnabled`\" pulumi-lang-java=\"`loggingEnabled`\"\u003e`logging_enabled`\u003c/span\u003e has been deprecated from provider version 1.241.0. New field \u003cspan pulumi-lang-nodejs=\"`enableLogging`\" pulumi-lang-dotnet=\"`EnableLogging`\" pulumi-lang-go=\"`enableLogging`\" pulumi-lang-python=\"`enable_logging`\" pulumi-lang-yaml=\"`enableLogging`\" pulumi-lang-java=\"`enableLogging`\"\u003e`enable_logging`\u003c/span\u003e instead."},"maxMessageSize":{"type":"integer","description":"The maximum length of the message that is sent to the topic. Default value: \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e. Unit: bytes.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"topicName":{"type":"string","description":"The name of the topic.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"requiredInputs":["topicName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceTopic resources.\n","properties":{"createTime":{"type":"string","description":"(Available since v1.241.0) The time when the topic was created.\n"},"enableLogging":{"type":"boolean","description":"Specifies whether to enable the logging feature. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"loggingEnabled":{"type":"boolean","description":". Field \u003cspan pulumi-lang-nodejs=\"`loggingEnabled`\" pulumi-lang-dotnet=\"`LoggingEnabled`\" pulumi-lang-go=\"`loggingEnabled`\" pulumi-lang-python=\"`logging_enabled`\" pulumi-lang-yaml=\"`loggingEnabled`\" pulumi-lang-java=\"`loggingEnabled`\"\u003e`logging_enabled`\u003c/span\u003e has been deprecated from provider version 1.241.0. New field \u003cspan pulumi-lang-nodejs=\"`enableLogging`\" pulumi-lang-dotnet=\"`EnableLogging`\" pulumi-lang-go=\"`enableLogging`\" pulumi-lang-python=\"`enable_logging`\" pulumi-lang-yaml=\"`enableLogging`\" pulumi-lang-java=\"`enableLogging`\"\u003e`enable_logging`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`loggingEnabled`\" pulumi-lang-dotnet=\"`LoggingEnabled`\" pulumi-lang-go=\"`loggingEnabled`\" pulumi-lang-python=\"`logging_enabled`\" pulumi-lang-yaml=\"`loggingEnabled`\" pulumi-lang-java=\"`loggingEnabled`\"\u003e`logging_enabled`\u003c/span\u003e has been deprecated from provider version 1.241.0. New field \u003cspan pulumi-lang-nodejs=\"`enableLogging`\" pulumi-lang-dotnet=\"`EnableLogging`\" pulumi-lang-go=\"`enableLogging`\" pulumi-lang-python=\"`enable_logging`\" pulumi-lang-yaml=\"`enableLogging`\" pulumi-lang-java=\"`enableLogging`\"\u003e`enable_logging`\u003c/span\u003e instead."},"maxMessageSize":{"type":"integer","description":"The maximum length of the message that is sent to the topic. Default value: \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e. Unit: bytes.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"topicName":{"type":"string","description":"The name of the topic.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:mhub/app:App":{"description":"Provides a MHUB App resource.\n\nFor information about MHUB App and how to use it, see [What is App](https://help.aliyun.com/product/65109.html).\n\n\u003e **NOTE:** Available since v1.138.0+.\n\n\u003e **NOTE:** At present, the resource only supports cn-shanghai region.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"example_value\";\nconst _default = new alicloud.mhub.Product(\"default\", {productName: name});\nconst defaultApp = new alicloud.mhub.App(\"default\", {\n    appName: name,\n    productId: _default.id,\n    packageName: \"com.example.android\",\n    type: \"Android\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"example_value\"\ndefault = alicloud.mhub.Product(\"default\", product_name=name)\ndefault_app = alicloud.mhub.App(\"default\",\n    app_name=name,\n    product_id=default.id,\n    package_name=\"com.example.android\",\n    type=\"Android\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"example_value\";\n    var @default = new AliCloud.Mhub.Product(\"default\", new()\n    {\n        ProductName = name,\n    });\n\n    var defaultApp = new AliCloud.Mhub.App(\"default\", new()\n    {\n        AppName = name,\n        ProductId = @default.Id,\n        PackageName = \"com.example.android\",\n        Type = \"Android\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"example_value\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := mhub.NewProduct(ctx, \"default\", \u0026mhub.ProductArgs{\n\t\t\tProductName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mhub.NewApp(ctx, \"default\", \u0026mhub.AppArgs{\n\t\t\tAppName:     pulumi.String(name),\n\t\t\tProductId:   _default.ID(),\n\t\t\tPackageName: pulumi.String(\"com.example.android\"),\n\t\t\tType:        pulumi.String(\"Android\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mhub.Product;\nimport com.pulumi.alicloud.mhub.ProductArgs;\nimport com.pulumi.alicloud.mhub.App;\nimport com.pulumi.alicloud.mhub.AppArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"example_value\");\n        var default_ = new Product(\"default\", ProductArgs.builder()\n            .productName(name)\n            .build());\n\n        var defaultApp = new App(\"defaultApp\", AppArgs.builder()\n            .appName(name)\n            .productId(default_.id())\n            .packageName(\"com.example.android\")\n            .type(\"Android\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: example_value\nresources:\n  default:\n    type: alicloud:mhub:Product\n    properties:\n      productName: ${name}\n  defaultApp:\n    type: alicloud:mhub:App\n    name: default\n    properties:\n      appName: ${name}\n      productId: ${default.id}\n      packageName: com.example.android\n      type: Android\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMHUB App can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mhub/app:App example \u003cproduct_id\u003e:\u003capp_key\u003e\n```\n\n","properties":{"appName":{"type":"string","description":"AppName.\n"},"bundleId":{"type":"string","description":"The app id of iOS. **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`bundleId`\" pulumi-lang-dotnet=\"`BundleId`\" pulumi-lang-go=\"`bundleId`\" pulumi-lang-python=\"`bundle_id`\" pulumi-lang-yaml=\"`bundleId`\" pulumi-lang-java=\"`bundleId`\"\u003e`bundle_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`packageName`\" pulumi-lang-dotnet=\"`PackageName`\" pulumi-lang-go=\"`packageName`\" pulumi-lang-python=\"`package_name`\" pulumi-lang-yaml=\"`packageName`\" pulumi-lang-java=\"`packageName`\"\u003e`package_name`\u003c/span\u003e must be set.\n"},"encodedIcon":{"type":"string","description":"Base64 string of picture.\n"},"industryId":{"type":"string","description":"The Industry ID of the app. For information about Industry and how to use it, MHUB[Industry](https://help.aliyun.com/document_detail/201638.html).\n"},"packageName":{"type":"string","description":"Android App package name. **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`bundleId`\" pulumi-lang-dotnet=\"`BundleId`\" pulumi-lang-go=\"`bundleId`\" pulumi-lang-python=\"`bundle_id`\" pulumi-lang-yaml=\"`bundleId`\" pulumi-lang-java=\"`bundleId`\"\u003e`bundle_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`packageName`\" pulumi-lang-dotnet=\"`PackageName`\" pulumi-lang-go=\"`packageName`\" pulumi-lang-python=\"`package_name`\" pulumi-lang-yaml=\"`packageName`\" pulumi-lang-java=\"`packageName`\"\u003e`package_name`\u003c/span\u003e must be set.\n"},"productId":{"type":"string","description":"The ID of the Product.\n"},"type":{"type":"string","description":"The type of the Product. Valid values: `Android` and `iOS`.\n"}},"required":["appName","industryId","productId","type"],"inputProperties":{"appName":{"type":"string","description":"AppName.\n"},"bundleId":{"type":"string","description":"The app id of iOS. **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`bundleId`\" pulumi-lang-dotnet=\"`BundleId`\" pulumi-lang-go=\"`bundleId`\" pulumi-lang-python=\"`bundle_id`\" pulumi-lang-yaml=\"`bundleId`\" pulumi-lang-java=\"`bundleId`\"\u003e`bundle_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`packageName`\" pulumi-lang-dotnet=\"`PackageName`\" pulumi-lang-go=\"`packageName`\" pulumi-lang-python=\"`package_name`\" pulumi-lang-yaml=\"`packageName`\" pulumi-lang-java=\"`packageName`\"\u003e`package_name`\u003c/span\u003e must be set.\n"},"encodedIcon":{"type":"string","description":"Base64 string of picture.\n"},"industryId":{"type":"string","description":"The Industry ID of the app. For information about Industry and how to use it, MHUB[Industry](https://help.aliyun.com/document_detail/201638.html).\n"},"packageName":{"type":"string","description":"Android App package name. **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`bundleId`\" pulumi-lang-dotnet=\"`BundleId`\" pulumi-lang-go=\"`bundleId`\" pulumi-lang-python=\"`bundle_id`\" pulumi-lang-yaml=\"`bundleId`\" pulumi-lang-java=\"`bundleId`\"\u003e`bundle_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`packageName`\" pulumi-lang-dotnet=\"`PackageName`\" pulumi-lang-go=\"`packageName`\" pulumi-lang-python=\"`package_name`\" pulumi-lang-yaml=\"`packageName`\" pulumi-lang-java=\"`packageName`\"\u003e`package_name`\u003c/span\u003e must be set.\n"},"productId":{"type":"string","description":"The ID of the Product.\n"},"type":{"type":"string","description":"The type of the Product. Valid values: `Android` and `iOS`.\n"}},"requiredInputs":["appName","productId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering App resources.\n","properties":{"appName":{"type":"string","description":"AppName.\n"},"bundleId":{"type":"string","description":"The app id of iOS. **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`bundleId`\" pulumi-lang-dotnet=\"`BundleId`\" pulumi-lang-go=\"`bundleId`\" pulumi-lang-python=\"`bundle_id`\" pulumi-lang-yaml=\"`bundleId`\" pulumi-lang-java=\"`bundleId`\"\u003e`bundle_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`packageName`\" pulumi-lang-dotnet=\"`PackageName`\" pulumi-lang-go=\"`packageName`\" pulumi-lang-python=\"`package_name`\" pulumi-lang-yaml=\"`packageName`\" pulumi-lang-java=\"`packageName`\"\u003e`package_name`\u003c/span\u003e must be set.\n"},"encodedIcon":{"type":"string","description":"Base64 string of picture.\n"},"industryId":{"type":"string","description":"The Industry ID of the app. For information about Industry and how to use it, MHUB[Industry](https://help.aliyun.com/document_detail/201638.html).\n"},"packageName":{"type":"string","description":"Android App package name. **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`bundleId`\" pulumi-lang-dotnet=\"`BundleId`\" pulumi-lang-go=\"`bundleId`\" pulumi-lang-python=\"`bundle_id`\" pulumi-lang-yaml=\"`bundleId`\" pulumi-lang-java=\"`bundleId`\"\u003e`bundle_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`packageName`\" pulumi-lang-dotnet=\"`PackageName`\" pulumi-lang-go=\"`packageName`\" pulumi-lang-python=\"`package_name`\" pulumi-lang-yaml=\"`packageName`\" pulumi-lang-java=\"`packageName`\"\u003e`package_name`\u003c/span\u003e must be set.\n"},"productId":{"type":"string","description":"The ID of the Product.\n"},"type":{"type":"string","description":"The type of the Product. Valid values: `Android` and `iOS`.\n"}},"type":"object"}},"alicloud:mhub/product:Product":{"description":"Provides a MHUB Product resource.\n\nFor information about MHUB Product and how to use it, see [What is Product](https://help.aliyun.com/product/65109.html).\n\n\u003e **NOTE:** Available since v1.138.0+.\n\n\u003e **NOTE:** At present, the resource only supports cn-shanghai region.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.mhub.Product(\"example\", {productName: \"example_value\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.mhub.Product(\"example\", product_name=\"example_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Mhub.Product(\"example\", new()\n    {\n        ProductName = \"example_value\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mhub.NewProduct(ctx, \"example\", \u0026mhub.ProductArgs{\n\t\t\tProductName: pulumi.String(\"example_value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mhub.Product;\nimport com.pulumi.alicloud.mhub.ProductArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Product(\"example\", ProductArgs.builder()\n            .productName(\"example_value\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:mhub:Product\n    properties:\n      productName: example_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMHUB Product can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mhub/product:Product example \u003cid\u003e\n```\n\n","properties":{"productName":{"type":"string","description":"ProductName.\n"}},"required":["productName"],"inputProperties":{"productName":{"type":"string","description":"ProductName.\n"}},"requiredInputs":["productName"],"stateInputs":{"description":"Input properties used for looking up and filtering Product resources.\n","properties":{"productName":{"type":"string","description":"ProductName.\n"}},"type":"object"}},"alicloud:mns/queue:Queue":{"description":"Provides a MNS queue resource.\n\n\u003e **NOTE:** Terraform will auto build a mns queue  while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.mns.Queue`\" pulumi-lang-dotnet=\"`alicloud.mns.Queue`\" pulumi-lang-go=\"`mns.Queue`\" pulumi-lang-python=\"`mns.Queue`\" pulumi-lang-yaml=\"`alicloud.mns.Queue`\" pulumi-lang-java=\"`alicloud.mns.Queue`\"\u003e`alicloud.mns.Queue`\u003c/span\u003e to build a mns queue resource.\n\n\u003e **DEPRECATED:**  This resource has been deprecated from version `1.188.0`. Please use new resource message_service_queue.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst queue = new alicloud.mns.Queue(\"queue\", {\n    name: \"tf-example-mnsqueue\",\n    delaySeconds: 0,\n    maximumMessageSize: 65536,\n    messageRetentionPeriod: 345600,\n    visibilityTimeout: 30,\n    pollingWaitSeconds: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nqueue = alicloud.mns.Queue(\"queue\",\n    name=\"tf-example-mnsqueue\",\n    delay_seconds=0,\n    maximum_message_size=65536,\n    message_retention_period=345600,\n    visibility_timeout=30,\n    polling_wait_seconds=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var queue = new AliCloud.Mns.Queue(\"queue\", new()\n    {\n        Name = \"tf-example-mnsqueue\",\n        DelaySeconds = 0,\n        MaximumMessageSize = 65536,\n        MessageRetentionPeriod = 345600,\n        VisibilityTimeout = 30,\n        PollingWaitSeconds = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mns.NewQueue(ctx, \"queue\", \u0026mns.QueueArgs{\n\t\t\tName:                   pulumi.String(\"tf-example-mnsqueue\"),\n\t\t\tDelaySeconds:           pulumi.Int(0),\n\t\t\tMaximumMessageSize:     pulumi.Int(65536),\n\t\t\tMessageRetentionPeriod: pulumi.Int(345600),\n\t\t\tVisibilityTimeout:      pulumi.Int(30),\n\t\t\tPollingWaitSeconds:     pulumi.Int(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mns.Queue;\nimport com.pulumi.alicloud.mns.QueueArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var queue = new Queue(\"queue\", QueueArgs.builder()\n            .name(\"tf-example-mnsqueue\")\n            .delaySeconds(0)\n            .maximumMessageSize(65536)\n            .messageRetentionPeriod(345600)\n            .visibilityTimeout(30)\n            .pollingWaitSeconds(0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  queue:\n    type: alicloud:mns:Queue\n    properties:\n      name: tf-example-mnsqueue\n      delaySeconds: 0\n      maximumMessageSize: 65536\n      messageRetentionPeriod: 345600\n      visibilityTimeout: 30\n      pollingWaitSeconds: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMNS QUEUE can be imported using the id or name, e.g.\n\n```sh\n$ pulumi import alicloud:mns/queue:Queue queue queuename\n```\n\n","properties":{"delaySeconds":{"type":"integer","description":"This attribute defines the length of time, in seconds, after which every message sent to the queue is dequeued. Valid value range: 0-604800 seconds, i.e., 0 to 7 days. Default value to 0.\n"},"maximumMessageSize":{"type":"integer","description":"This indicates the maximum length, in bytes, of any message body sent to the queue. Valid value range: 1024-65536, i.e., 1K to 64K. Default value to 65536.\n"},"messageRetentionPeriod":{"type":"integer","description":"Messages are deleted from the queue after a specified length of time, whether they have been activated or not. This attribute defines the viability period, in seconds, for every message in the queue. Valid value range: 60-604800 seconds, i.e., 1 minutes to 7 days. Default value to 345600.\n"},"name":{"type":"string","description":"Two queues on a single account in the same region cannot have the same name. A queue name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 256 characters .\n"},"pollingWaitSeconds":{"type":"integer","description":"Long polling is measured in seconds. When this attribute is set to 0, long polling is disabled. When it is not set to 0, long polling is enabled and message dequeue requests will be processed only when valid messages are received or when long polling times out. Valid value range: 0-30 seconds. Default value to 0.\n"},"visibilityTimeout":{"type":"integer","description":"The VisibilityTimeout attribute of the queue. A dequeued messages will change from active (visible) status to inactive (invisible) status, and this attribute defines the length of time, in seconds, that messages remain invisible. Messages return to active status after the set period. Valid value range: 1-43200 seconds, i.e., 1 seconds to 12 hours. Default value to 30.\n"}},"required":["name"],"inputProperties":{"delaySeconds":{"type":"integer","description":"This attribute defines the length of time, in seconds, after which every message sent to the queue is dequeued. Valid value range: 0-604800 seconds, i.e., 0 to 7 days. Default value to 0.\n"},"maximumMessageSize":{"type":"integer","description":"This indicates the maximum length, in bytes, of any message body sent to the queue. Valid value range: 1024-65536, i.e., 1K to 64K. Default value to 65536.\n"},"messageRetentionPeriod":{"type":"integer","description":"Messages are deleted from the queue after a specified length of time, whether they have been activated or not. This attribute defines the viability period, in seconds, for every message in the queue. Valid value range: 60-604800 seconds, i.e., 1 minutes to 7 days. Default value to 345600.\n"},"name":{"type":"string","description":"Two queues on a single account in the same region cannot have the same name. A queue name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 256 characters .\n","willReplaceOnChanges":true},"pollingWaitSeconds":{"type":"integer","description":"Long polling is measured in seconds. When this attribute is set to 0, long polling is disabled. When it is not set to 0, long polling is enabled and message dequeue requests will be processed only when valid messages are received or when long polling times out. Valid value range: 0-30 seconds. Default value to 0.\n"},"visibilityTimeout":{"type":"integer","description":"The VisibilityTimeout attribute of the queue. A dequeued messages will change from active (visible) status to inactive (invisible) status, and this attribute defines the length of time, in seconds, that messages remain invisible. Messages return to active status after the set period. Valid value range: 1-43200 seconds, i.e., 1 seconds to 12 hours. Default value to 30.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Queue resources.\n","properties":{"delaySeconds":{"type":"integer","description":"This attribute defines the length of time, in seconds, after which every message sent to the queue is dequeued. Valid value range: 0-604800 seconds, i.e., 0 to 7 days. Default value to 0.\n"},"maximumMessageSize":{"type":"integer","description":"This indicates the maximum length, in bytes, of any message body sent to the queue. Valid value range: 1024-65536, i.e., 1K to 64K. Default value to 65536.\n"},"messageRetentionPeriod":{"type":"integer","description":"Messages are deleted from the queue after a specified length of time, whether they have been activated or not. This attribute defines the viability period, in seconds, for every message in the queue. Valid value range: 60-604800 seconds, i.e., 1 minutes to 7 days. Default value to 345600.\n"},"name":{"type":"string","description":"Two queues on a single account in the same region cannot have the same name. A queue name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 256 characters .\n","willReplaceOnChanges":true},"pollingWaitSeconds":{"type":"integer","description":"Long polling is measured in seconds. When this attribute is set to 0, long polling is disabled. When it is not set to 0, long polling is enabled and message dequeue requests will be processed only when valid messages are received or when long polling times out. Valid value range: 0-30 seconds. Default value to 0.\n"},"visibilityTimeout":{"type":"integer","description":"The VisibilityTimeout attribute of the queue. A dequeued messages will change from active (visible) status to inactive (invisible) status, and this attribute defines the length of time, in seconds, that messages remain invisible. Messages return to active status after the set period. Valid value range: 1-43200 seconds, i.e., 1 seconds to 12 hours. Default value to 30.\n"}},"type":"object"}},"alicloud:mns/topic:Topic":{"description":"Provides a MNS topic resource.\n\n\u003e **NOTE:** Terraform will auto build a mns topic  while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.mns.Topic`\" pulumi-lang-dotnet=\"`alicloud.mns.Topic`\" pulumi-lang-go=\"`mns.Topic`\" pulumi-lang-python=\"`mns.Topic`\" pulumi-lang-yaml=\"`alicloud.mns.Topic`\" pulumi-lang-java=\"`alicloud.mns.Topic`\"\u003e`alicloud.mns.Topic`\u003c/span\u003e to build a mns topic resource.\n\n\u003e **DEPRECATED:**  This resource has been deprecated from version `1.188.0`. Please use new resource message_service_topic.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst topic = new alicloud.mns.Topic(\"topic\", {\n    name: \"tf-example-mnstopic\",\n    maximumMessageSize: 65536,\n    loggingEnabled: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ntopic = alicloud.mns.Topic(\"topic\",\n    name=\"tf-example-mnstopic\",\n    maximum_message_size=65536,\n    logging_enabled=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var topic = new AliCloud.Mns.Topic(\"topic\", new()\n    {\n        Name = \"tf-example-mnstopic\",\n        MaximumMessageSize = 65536,\n        LoggingEnabled = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mns.NewTopic(ctx, \"topic\", \u0026mns.TopicArgs{\n\t\t\tName:               pulumi.String(\"tf-example-mnstopic\"),\n\t\t\tMaximumMessageSize: pulumi.Int(65536),\n\t\t\tLoggingEnabled:     pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mns.Topic;\nimport com.pulumi.alicloud.mns.TopicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var topic = new Topic(\"topic\", TopicArgs.builder()\n            .name(\"tf-example-mnstopic\")\n            .maximumMessageSize(65536)\n            .loggingEnabled(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  topic:\n    type: alicloud:mns:Topic\n    properties:\n      name: tf-example-mnstopic\n      maximumMessageSize: 65536\n      loggingEnabled: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMNS Topic can be imported using the id or name, e.g.\n\n```sh\n$ pulumi import alicloud:mns/topic:Topic topic topicName\n```\n\n","properties":{"loggingEnabled":{"type":"boolean","description":"Is logging enabled? true or false. Default value to false.\n"},"maximumMessageSize":{"type":"integer","description":"This indicates the maximum length, in bytes, of any message body sent to the topic. Valid value range: 1024-65536, i.e., 1K to 64K. Default value to 65536.\n"},"name":{"type":"string","description":"Two topics on a single account in the same region cannot have the same name. A topic name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 256 characters.\n"}},"required":["name"],"inputProperties":{"loggingEnabled":{"type":"boolean","description":"Is logging enabled? true or false. Default value to false.\n"},"maximumMessageSize":{"type":"integer","description":"This indicates the maximum length, in bytes, of any message body sent to the topic. Valid value range: 1024-65536, i.e., 1K to 64K. Default value to 65536.\n"},"name":{"type":"string","description":"Two topics on a single account in the same region cannot have the same name. A topic name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 256 characters.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Topic resources.\n","properties":{"loggingEnabled":{"type":"boolean","description":"Is logging enabled? true or false. Default value to false.\n"},"maximumMessageSize":{"type":"integer","description":"This indicates the maximum length, in bytes, of any message body sent to the topic. Valid value range: 1024-65536, i.e., 1K to 64K. Default value to 65536.\n"},"name":{"type":"string","description":"Two topics on a single account in the same region cannot have the same name. A topic name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 256 characters.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:mns/topicSubscription:TopicSubscription":{"description":"Provides a MNS topic subscription resource.\n\n\u003e **NOTE:** Terraform will auto build a mns topic subscription  while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.mns.TopicSubscription`\" pulumi-lang-dotnet=\"`alicloud.mns.TopicSubscription`\" pulumi-lang-go=\"`mns.TopicSubscription`\" pulumi-lang-python=\"`mns.TopicSubscription`\" pulumi-lang-yaml=\"`alicloud.mns.TopicSubscription`\" pulumi-lang-java=\"`alicloud.mns.TopicSubscription`\"\u003e`alicloud.mns.TopicSubscription`\u003c/span\u003e to build a mns topic subscription resource.\n\n\u003e **DEPRECATED:**  This resource has been deprecated from version `1.188.0`. Please use new resource message_service_subscription.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst topic = new alicloud.mns.Topic(\"topic\", {\n    name: \"tf-example-mnstopic\",\n    maximumMessageSize: 65536,\n    loggingEnabled: false,\n});\nconst subscription = new alicloud.mns.TopicSubscription(\"subscription\", {\n    topicName: \"tf-example-mnstopic\",\n    name: \"tf-example-mnstopic-sub\",\n    filterTag: \"test\",\n    endpoint: \"http://www.xxx.com/xxx\",\n    notifyStrategy: \"BACKOFF_RETRY\",\n    notifyContentFormat: \"XML\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ntopic = alicloud.mns.Topic(\"topic\",\n    name=\"tf-example-mnstopic\",\n    maximum_message_size=65536,\n    logging_enabled=False)\nsubscription = alicloud.mns.TopicSubscription(\"subscription\",\n    topic_name=\"tf-example-mnstopic\",\n    name=\"tf-example-mnstopic-sub\",\n    filter_tag=\"test\",\n    endpoint=\"http://www.xxx.com/xxx\",\n    notify_strategy=\"BACKOFF_RETRY\",\n    notify_content_format=\"XML\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var topic = new AliCloud.Mns.Topic(\"topic\", new()\n    {\n        Name = \"tf-example-mnstopic\",\n        MaximumMessageSize = 65536,\n        LoggingEnabled = false,\n    });\n\n    var subscription = new AliCloud.Mns.TopicSubscription(\"subscription\", new()\n    {\n        TopicName = \"tf-example-mnstopic\",\n        Name = \"tf-example-mnstopic-sub\",\n        FilterTag = \"test\",\n        Endpoint = \"http://www.xxx.com/xxx\",\n        NotifyStrategy = \"BACKOFF_RETRY\",\n        NotifyContentFormat = \"XML\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mns.NewTopic(ctx, \"topic\", \u0026mns.TopicArgs{\n\t\t\tName:               pulumi.String(\"tf-example-mnstopic\"),\n\t\t\tMaximumMessageSize: pulumi.Int(65536),\n\t\t\tLoggingEnabled:     pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mns.NewTopicSubscription(ctx, \"subscription\", \u0026mns.TopicSubscriptionArgs{\n\t\t\tTopicName:           pulumi.String(\"tf-example-mnstopic\"),\n\t\t\tName:                pulumi.String(\"tf-example-mnstopic-sub\"),\n\t\t\tFilterTag:           pulumi.String(\"test\"),\n\t\t\tEndpoint:            pulumi.String(\"http://www.xxx.com/xxx\"),\n\t\t\tNotifyStrategy:      pulumi.String(\"BACKOFF_RETRY\"),\n\t\t\tNotifyContentFormat: pulumi.String(\"XML\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mns.Topic;\nimport com.pulumi.alicloud.mns.TopicArgs;\nimport com.pulumi.alicloud.mns.TopicSubscription;\nimport com.pulumi.alicloud.mns.TopicSubscriptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var topic = new Topic(\"topic\", TopicArgs.builder()\n            .name(\"tf-example-mnstopic\")\n            .maximumMessageSize(65536)\n            .loggingEnabled(false)\n            .build());\n\n        var subscription = new TopicSubscription(\"subscription\", TopicSubscriptionArgs.builder()\n            .topicName(\"tf-example-mnstopic\")\n            .name(\"tf-example-mnstopic-sub\")\n            .filterTag(\"test\")\n            .endpoint(\"http://www.xxx.com/xxx\")\n            .notifyStrategy(\"BACKOFF_RETRY\")\n            .notifyContentFormat(\"XML\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  topic:\n    type: alicloud:mns:Topic\n    properties:\n      name: tf-example-mnstopic\n      maximumMessageSize: 65536\n      loggingEnabled: false\n  subscription:\n    type: alicloud:mns:TopicSubscription\n    properties:\n      topicName: tf-example-mnstopic\n      name: tf-example-mnstopic-sub\n      filterTag: test\n      endpoint: http://www.xxx.com/xxx\n      notifyStrategy: BACKOFF_RETRY\n      notifyContentFormat: XML\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMNS Topic subscription can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mns/topicSubscription:TopicSubscription subscription tf-example-mnstopic:tf-example-mnstopic-sub\n```\n\n","properties":{"endpoint":{"type":"string","description":"The endpoint has three format. Available values format:\n- `HTTP Format`: http://xxx.com/xxx\n- `Queue Format`: acs:mns:{REGION}:{AccountID}:queues/{QueueName}\n- `Email Format`: mail:directmail:{MailAddress}\n"},"filterTag":{"type":"string","description":"The length should be shorter than 16.\n"},"name":{"type":"string","description":"Two topics subscription on a single account in the same topic cannot have the same name. A topic subscription name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 256 characters.\n"},"notifyContentFormat":{"type":"string","description":"The NotifyContentFormat attribute of Subscription. This attribute specifies the content format of the messages pushed to users. The valid values: `SIMPLIFIED`, `XML` and `JSON`. Default to `SIMPLIFIED`.\n"},"notifyStrategy":{"type":"string","description":"The NotifyStrategy attribute of Subscription. This attribute specifies the retry strategy when message sending fails. The Valid values: `EXPONENTIAL_DECAY_RETRY` and `BACKOFF_RETRY`. Default value to `BACKOFF_RETRY` .\n"},"topicName":{"type":"string","description":"The topic which The subscription belongs to was named with the name.A topic name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 256 characters.\n"}},"required":["endpoint","name","topicName"],"inputProperties":{"endpoint":{"type":"string","description":"The endpoint has three format. Available values format:\n- `HTTP Format`: http://xxx.com/xxx\n- `Queue Format`: acs:mns:{REGION}:{AccountID}:queues/{QueueName}\n- `Email Format`: mail:directmail:{MailAddress}\n","willReplaceOnChanges":true},"filterTag":{"type":"string","description":"The length should be shorter than 16.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Two topics subscription on a single account in the same topic cannot have the same name. A topic subscription name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 256 characters.\n","willReplaceOnChanges":true},"notifyContentFormat":{"type":"string","description":"The NotifyContentFormat attribute of Subscription. This attribute specifies the content format of the messages pushed to users. The valid values: `SIMPLIFIED`, `XML` and `JSON`. Default to `SIMPLIFIED`.\n","willReplaceOnChanges":true},"notifyStrategy":{"type":"string","description":"The NotifyStrategy attribute of Subscription. This attribute specifies the retry strategy when message sending fails. The Valid values: `EXPONENTIAL_DECAY_RETRY` and `BACKOFF_RETRY`. Default value to `BACKOFF_RETRY` .\n"},"topicName":{"type":"string","description":"The topic which The subscription belongs to was named with the name.A topic name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 256 characters.\n","willReplaceOnChanges":true}},"requiredInputs":["endpoint","topicName"],"stateInputs":{"description":"Input properties used for looking up and filtering TopicSubscription resources.\n","properties":{"endpoint":{"type":"string","description":"The endpoint has three format. Available values format:\n- `HTTP Format`: http://xxx.com/xxx\n- `Queue Format`: acs:mns:{REGION}:{AccountID}:queues/{QueueName}\n- `Email Format`: mail:directmail:{MailAddress}\n","willReplaceOnChanges":true},"filterTag":{"type":"string","description":"The length should be shorter than 16.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Two topics subscription on a single account in the same topic cannot have the same name. A topic subscription name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 256 characters.\n","willReplaceOnChanges":true},"notifyContentFormat":{"type":"string","description":"The NotifyContentFormat attribute of Subscription. This attribute specifies the content format of the messages pushed to users. The valid values: `SIMPLIFIED`, `XML` and `JSON`. Default to `SIMPLIFIED`.\n","willReplaceOnChanges":true},"notifyStrategy":{"type":"string","description":"The NotifyStrategy attribute of Subscription. This attribute specifies the retry strategy when message sending fails. The Valid values: `EXPONENTIAL_DECAY_RETRY` and `BACKOFF_RETRY`. Default value to `BACKOFF_RETRY` .\n"},"topicName":{"type":"string","description":"The topic which The subscription belongs to was named with the name.A topic name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 256 characters.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:mongodb/account:Account":{"description":"Provides a Mongodb Account resource.\n\n\n\nFor information about Mongodb Account and how to use it, see [What is Account](https://www.alibabacloud.com/help/en/doc-detail/62154.html).\n\n\u003e **NOTE:** Available since v1.148.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.mongodb.getZones({});\nconst index = _default.then(_default =\u003e _default.zones).length.apply(length =\u003e length - 1);\nconst zoneId = _default.then(_default =\u003e _default.zones[index].id);\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: zoneId,\n});\nconst defaultInstance = new alicloud.mongodb.Instance(\"default\", {\n    engineVersion: \"4.2\",\n    dbInstanceClass: \"dds.mongo.mid\",\n    dbInstanceStorage: 10,\n    vswitchId: defaultSwitch.id,\n    securityIpLists: [\n        \"10.168.1.12\",\n        \"100.69.7.112\",\n    ],\n    name: name,\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst defaultAccount = new alicloud.mongodb.Account(\"default\", {\n    accountName: \"root\",\n    accountPassword: \"Example_123\",\n    instanceId: defaultInstance.id,\n    accountDescription: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.mongodb.get_zones()\nindex = len(default.zones).apply(lambda length: length - 1)\nzone_id = default.zones[index].id\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=zone_id)\ndefault_instance = alicloud.mongodb.Instance(\"default\",\n    engine_version=\"4.2\",\n    db_instance_class=\"dds.mongo.mid\",\n    db_instance_storage=10,\n    vswitch_id=default_switch.id,\n    security_ip_lists=[\n        \"10.168.1.12\",\n        \"100.69.7.112\",\n    ],\n    name=name,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\ndefault_account = alicloud.mongodb.Account(\"default\",\n    account_name=\"root\",\n    account_password=\"Example_123\",\n    instance_id=default_instance.id,\n    account_description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.MongoDB.GetZones.Invoke();\n\n    var index = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)).Length.Apply(length =\u003e length - 1);\n\n    var zoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[index].Id);\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = zoneId,\n    });\n\n    var defaultInstance = new AliCloud.MongoDB.Instance(\"default\", new()\n    {\n        EngineVersion = \"4.2\",\n        DbInstanceClass = \"dds.mongo.mid\",\n        DbInstanceStorage = 10,\n        VswitchId = defaultSwitch.Id,\n        SecurityIpLists = new[]\n        {\n            \"10.168.1.12\",\n            \"100.69.7.112\",\n        },\n        Name = name,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var defaultAccount = new AliCloud.MongoDB.Account(\"default\", new()\n    {\n        AccountName = \"root\",\n        AccountPassword = \"Example_123\",\n        InstanceId = defaultInstance.Id,\n        AccountDescription = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := mongodb.GetZones(ctx, \u0026mongodb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tindex := len(_default.Zones).ApplyT(func(length int) (float64, error) {\n\t\t\treturn float64(length.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\treturn __convert - 1, nil\n\t\t\t}).(pulumi.Float64Output)), nil\n\t\t}).(pulumi.Float64Output)\n\t\tzoneId := _default.Zones[index].Id\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(zoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := mongodb.NewInstance(ctx, \"default\", \u0026mongodb.InstanceArgs{\n\t\t\tEngineVersion:     pulumi.String(\"4.2\"),\n\t\t\tDbInstanceClass:   pulumi.String(\"dds.mongo.mid\"),\n\t\t\tDbInstanceStorage: pulumi.Int(10),\n\t\t\tVswitchId:         defaultSwitch.ID(),\n\t\t\tSecurityIpLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.168.1.12\"),\n\t\t\t\tpulumi.String(\"100.69.7.112\"),\n\t\t\t},\n\t\t\tName: pulumi.String(name),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodb.NewAccount(ctx, \"default\", \u0026mongodb.AccountArgs{\n\t\t\tAccountName:        pulumi.String(\"root\"),\n\t\t\tAccountPassword:    pulumi.String(\"Example_123\"),\n\t\t\tInstanceId:         defaultInstance.ID(),\n\t\t\tAccountDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.MongodbFunctions;\nimport com.pulumi.alicloud.mongodb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mongodb.Instance;\nimport com.pulumi.alicloud.mongodb.InstanceArgs;\nimport com.pulumi.alicloud.mongodb.Account;\nimport com.pulumi.alicloud.mongodb.AccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = MongodbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var index = default_.zones().length().applyValue(_length -\u003e _length - 1);\n\n        final var zoneId = default_.zones()[index].id();\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(zoneId)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engineVersion(\"4.2\")\n            .dbInstanceClass(\"dds.mongo.mid\")\n            .dbInstanceStorage(10)\n            .vswitchId(defaultSwitch.id())\n            .securityIpLists(            \n                \"10.168.1.12\",\n                \"100.69.7.112\")\n            .name(name)\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var defaultAccount = new Account(\"defaultAccount\", AccountArgs.builder()\n            .accountName(\"root\")\n            .accountPassword(\"Example_123\")\n            .instanceId(defaultInstance.id())\n            .accountDescription(name)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.mongodb.Account`\" pulumi-lang-dotnet=\"`alicloud.mongodb.Account`\" pulumi-lang-go=\"`mongodb.Account`\" pulumi-lang-python=\"`mongodb.Account`\" pulumi-lang-yaml=\"`alicloud.mongodb.Account`\" pulumi-lang-java=\"`alicloud.mongodb.Account`\"\u003e`alicloud.mongodb.Account`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.mongodb.Account`\" pulumi-lang-dotnet=\"`alicloud.mongodb.Account`\" pulumi-lang-go=\"`mongodb.Account`\" pulumi-lang-python=\"`mongodb.Account`\" pulumi-lang-yaml=\"`alicloud.mongodb.Account`\" pulumi-lang-java=\"`alicloud.mongodb.Account`\"\u003e`alicloud.mongodb.Account`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMongodb Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mongodb/account:Account example \u003cinstance_id\u003e:\u003caccount_name\u003e\n```\n\n","properties":{"accountDescription":{"type":"string","description":"Set the comment information of the account.\n- Cannot start with http:// or https.\n- Start with Chinese and English letters.\n- Can contain Chinese characters, English characters, underscores (_), dashes (-), and numbers, and can be 2 to 256 characters in length.\n"},"accountName":{"type":"string","description":"Account Name\n"},"accountPassword":{"type":"string","description":"Account Password\n","secret":true},"characterType":{"type":"string","description":"The account Comment Information type. Value:\n"},"instanceId":{"type":"string","description":"Instance Id\n"},"status":{"type":"string","description":"Account Status\n"}},"required":["accountName","accountPassword","characterType","instanceId","status"],"inputProperties":{"accountDescription":{"type":"string","description":"Set the comment information of the account.\n- Cannot start with http:// or https.\n- Start with Chinese and English letters.\n- Can contain Chinese characters, English characters, underscores (_), dashes (-), and numbers, and can be 2 to 256 characters in length.\n"},"accountName":{"type":"string","description":"Account Name\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"Account Password\n","secret":true},"characterType":{"type":"string","description":"The account Comment Information type. Value:\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"Instance Id\n","willReplaceOnChanges":true}},"requiredInputs":["accountName","accountPassword","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Account resources.\n","properties":{"accountDescription":{"type":"string","description":"Set the comment information of the account.\n- Cannot start with http:// or https.\n- Start with Chinese and English letters.\n- Can contain Chinese characters, English characters, underscores (_), dashes (-), and numbers, and can be 2 to 256 characters in length.\n"},"accountName":{"type":"string","description":"Account Name\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"Account Password\n","secret":true},"characterType":{"type":"string","description":"The account Comment Information type. Value:\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"Instance Id\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Account Status\n"}},"type":"object"}},"alicloud:mongodb/auditPolicy:AuditPolicy":{"description":"Provides a Mongodb Audit Policy resource.\n\n\n\nFor information about Mongodb Audit Policy and how to use it, see [What is Audit Policy](https://www.alibabacloud.com/help/doc-detail/131941.html).\n\n\u003e **NOTE:** Available since v1.148.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.mongodb.getZones({});\nconst index = _default.then(_default =\u003e _default.zones).length.apply(length =\u003e length - 1);\nconst zoneId = _default.then(_default =\u003e _default.zones[index].id);\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: zoneId,\n});\nconst defaultInstance = new alicloud.mongodb.Instance(\"default\", {\n    engineVersion: \"4.2\",\n    dbInstanceClass: \"dds.mongo.mid\",\n    dbInstanceStorage: 10,\n    vswitchId: defaultSwitch.id,\n    securityIpLists: [\n        \"10.168.1.12\",\n        \"100.69.7.112\",\n    ],\n    name: name,\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst defaultAuditPolicy = new alicloud.mongodb.AuditPolicy(\"default\", {\n    dbInstanceId: defaultInstance.id,\n    auditStatus: \"disabled\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.mongodb.get_zones()\nindex = len(default.zones).apply(lambda length: length - 1)\nzone_id = default.zones[index].id\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=zone_id)\ndefault_instance = alicloud.mongodb.Instance(\"default\",\n    engine_version=\"4.2\",\n    db_instance_class=\"dds.mongo.mid\",\n    db_instance_storage=10,\n    vswitch_id=default_switch.id,\n    security_ip_lists=[\n        \"10.168.1.12\",\n        \"100.69.7.112\",\n    ],\n    name=name,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\ndefault_audit_policy = alicloud.mongodb.AuditPolicy(\"default\",\n    db_instance_id=default_instance.id,\n    audit_status=\"disabled\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.MongoDB.GetZones.Invoke();\n\n    var index = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)).Length.Apply(length =\u003e length - 1);\n\n    var zoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[index].Id);\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = zoneId,\n    });\n\n    var defaultInstance = new AliCloud.MongoDB.Instance(\"default\", new()\n    {\n        EngineVersion = \"4.2\",\n        DbInstanceClass = \"dds.mongo.mid\",\n        DbInstanceStorage = 10,\n        VswitchId = defaultSwitch.Id,\n        SecurityIpLists = new[]\n        {\n            \"10.168.1.12\",\n            \"100.69.7.112\",\n        },\n        Name = name,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var defaultAuditPolicy = new AliCloud.MongoDB.AuditPolicy(\"default\", new()\n    {\n        DbInstanceId = defaultInstance.Id,\n        AuditStatus = \"disabled\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := mongodb.GetZones(ctx, \u0026mongodb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tindex := len(_default.Zones).ApplyT(func(length int) (float64, error) {\n\t\t\treturn float64(length.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\treturn __convert - 1, nil\n\t\t\t}).(pulumi.Float64Output)), nil\n\t\t}).(pulumi.Float64Output)\n\t\tzoneId := _default.Zones[index].Id\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(zoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := mongodb.NewInstance(ctx, \"default\", \u0026mongodb.InstanceArgs{\n\t\t\tEngineVersion:     pulumi.String(\"4.2\"),\n\t\t\tDbInstanceClass:   pulumi.String(\"dds.mongo.mid\"),\n\t\t\tDbInstanceStorage: pulumi.Int(10),\n\t\t\tVswitchId:         defaultSwitch.ID(),\n\t\t\tSecurityIpLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.168.1.12\"),\n\t\t\t\tpulumi.String(\"100.69.7.112\"),\n\t\t\t},\n\t\t\tName: pulumi.String(name),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodb.NewAuditPolicy(ctx, \"default\", \u0026mongodb.AuditPolicyArgs{\n\t\t\tDbInstanceId: defaultInstance.ID(),\n\t\t\tAuditStatus:  pulumi.String(\"disabled\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.MongodbFunctions;\nimport com.pulumi.alicloud.mongodb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mongodb.Instance;\nimport com.pulumi.alicloud.mongodb.InstanceArgs;\nimport com.pulumi.alicloud.mongodb.AuditPolicy;\nimport com.pulumi.alicloud.mongodb.AuditPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = MongodbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var index = default_.zones().length().applyValue(_length -\u003e _length - 1);\n\n        final var zoneId = default_.zones()[index].id();\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(zoneId)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engineVersion(\"4.2\")\n            .dbInstanceClass(\"dds.mongo.mid\")\n            .dbInstanceStorage(10)\n            .vswitchId(defaultSwitch.id())\n            .securityIpLists(            \n                \"10.168.1.12\",\n                \"100.69.7.112\")\n            .name(name)\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var defaultAuditPolicy = new AuditPolicy(\"defaultAuditPolicy\", AuditPolicyArgs.builder()\n            .dbInstanceId(defaultInstance.id())\n            .auditStatus(\"disabled\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.mongodb.AuditPolicy`\" pulumi-lang-dotnet=\"`alicloud.mongodb.AuditPolicy`\" pulumi-lang-go=\"`mongodb.AuditPolicy`\" pulumi-lang-python=\"`mongodb.AuditPolicy`\" pulumi-lang-yaml=\"`alicloud.mongodb.AuditPolicy`\" pulumi-lang-java=\"`alicloud.mongodb.AuditPolicy`\"\u003e`alicloud.mongodb.AuditPolicy`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.mongodb.AuditPolicy`\" pulumi-lang-dotnet=\"`alicloud.mongodb.AuditPolicy`\" pulumi-lang-go=\"`mongodb.AuditPolicy`\" pulumi-lang-python=\"`mongodb.AuditPolicy`\" pulumi-lang-yaml=\"`alicloud.mongodb.AuditPolicy`\" pulumi-lang-java=\"`alicloud.mongodb.AuditPolicy`\"\u003e`alicloud.mongodb.AuditPolicy`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMongodb Audit Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mongodb/auditPolicy:AuditPolicy example \u003cdb_instance_id\u003e\n```\n\n","properties":{"auditStatus":{"type":"string","description":"Audit state, Valid values: \u003cspan pulumi-lang-nodejs=\"`enable`\" pulumi-lang-dotnet=\"`Enable`\" pulumi-lang-go=\"`enable`\" pulumi-lang-python=\"`enable`\" pulumi-lang-yaml=\"`enable`\" pulumi-lang-java=\"`enable`\"\u003e`enable`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e.\n"},"dbInstanceId":{"type":"string","description":"Database Instance Id\n"},"filter":{"type":"string","description":"The type of logs collected by the audit log feature of the instance. Separate multiple types with commas (,). Valid values:\n"},"storagePeriod":{"type":"integer","description":"Audit log retention duration. The value range is 1 to 365 days. The default value is 30 days.\n"}},"required":["auditStatus","dbInstanceId","filter","storagePeriod"],"inputProperties":{"auditStatus":{"type":"string","description":"Audit state, Valid values: \u003cspan pulumi-lang-nodejs=\"`enable`\" pulumi-lang-dotnet=\"`Enable`\" pulumi-lang-go=\"`enable`\" pulumi-lang-python=\"`enable`\" pulumi-lang-yaml=\"`enable`\" pulumi-lang-java=\"`enable`\"\u003e`enable`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e.\n"},"dbInstanceId":{"type":"string","description":"Database Instance Id\n","willReplaceOnChanges":true},"filter":{"type":"string","description":"The type of logs collected by the audit log feature of the instance. Separate multiple types with commas (,). Valid values:\n"},"storagePeriod":{"type":"integer","description":"Audit log retention duration. The value range is 1 to 365 days. The default value is 30 days.\n"}},"requiredInputs":["auditStatus","dbInstanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering AuditPolicy resources.\n","properties":{"auditStatus":{"type":"string","description":"Audit state, Valid values: \u003cspan pulumi-lang-nodejs=\"`enable`\" pulumi-lang-dotnet=\"`Enable`\" pulumi-lang-go=\"`enable`\" pulumi-lang-python=\"`enable`\" pulumi-lang-yaml=\"`enable`\" pulumi-lang-java=\"`enable`\"\u003e`enable`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e.\n"},"dbInstanceId":{"type":"string","description":"Database Instance Id\n","willReplaceOnChanges":true},"filter":{"type":"string","description":"The type of logs collected by the audit log feature of the instance. Separate multiple types with commas (,). Valid values:\n"},"storagePeriod":{"type":"integer","description":"Audit log retention duration. The value range is 1 to 365 days. The default value is 30 days.\n"}},"type":"object"}},"alicloud:mongodb/globalSecurityIpGroup:GlobalSecurityIpGroup":{"description":"Provides a Mongodb Global Security IP Group resource.\n\nWhitelist Template Resources.\n\nFor information about Mongodb Global Security IP Group and how to use it, see [What is Global Security IP Group](https://next.api.alibabacloud.com/document/Dds/2015-12-01/CreateGlobalSecurityIPGroup).\n\n\u003e **NOTE:** Available since v1.257.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraformexample\";\nconst _default = new alicloud.mongodb.GlobalSecurityIpGroup(\"default\", {\n    globalIgName: name,\n    globalSecurityIpList: \"192.168.1.1,192.168.1.2,192.168.1.3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraformexample\"\ndefault = alicloud.mongodb.GlobalSecurityIpGroup(\"default\",\n    global_ig_name=name,\n    global_security_ip_list=\"192.168.1.1,192.168.1.2,192.168.1.3\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraformexample\";\n    var @default = new AliCloud.MongoDB.GlobalSecurityIpGroup(\"default\", new()\n    {\n        GlobalIgName = name,\n        GlobalSecurityIpList = \"192.168.1.1,192.168.1.2,192.168.1.3\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraformexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := mongodb.NewGlobalSecurityIpGroup(ctx, \"default\", \u0026mongodb.GlobalSecurityIpGroupArgs{\n\t\t\tGlobalIgName:         pulumi.String(name),\n\t\t\tGlobalSecurityIpList: pulumi.String(\"192.168.1.1,192.168.1.2,192.168.1.3\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.GlobalSecurityIpGroup;\nimport com.pulumi.alicloud.mongodb.GlobalSecurityIpGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraformexample\");\n        var default_ = new GlobalSecurityIpGroup(\"default\", GlobalSecurityIpGroupArgs.builder()\n            .globalIgName(name)\n            .globalSecurityIpList(\"192.168.1.1,192.168.1.2,192.168.1.3\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraformexample\nresources:\n  default:\n    type: alicloud:mongodb:GlobalSecurityIpGroup\n    properties:\n      globalIgName: ${name}\n      globalSecurityIpList: 192.168.1.1,192.168.1.2,192.168.1.3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMongodb Global Security IP Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mongodb/globalSecurityIpGroup:GlobalSecurityIpGroup example \u003cid\u003e\n```\n\n","properties":{"globalIgName":{"type":"string","description":"The name of the IP whitelist template.\n"},"globalSecurityIpList":{"type":"string","description":"The IP address in the whitelist template.\n\n\u003e **NOTE:** Separate multiple IP addresses with commas (,). You can create up to 1000 IP addresses or CIDR blocks for all IP address whitelists.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"}},"required":["globalIgName","globalSecurityIpList","regionId"],"inputProperties":{"globalIgName":{"type":"string","description":"The name of the IP whitelist template.\n"},"globalSecurityIpList":{"type":"string","description":"The IP address in the whitelist template.\n\n\u003e **NOTE:** Separate multiple IP addresses with commas (,). You can create up to 1000 IP addresses or CIDR blocks for all IP address whitelists.\n"}},"requiredInputs":["globalIgName","globalSecurityIpList"],"stateInputs":{"description":"Input properties used for looking up and filtering GlobalSecurityIpGroup resources.\n","properties":{"globalIgName":{"type":"string","description":"The name of the IP whitelist template.\n"},"globalSecurityIpList":{"type":"string","description":"The IP address in the whitelist template.\n\n\u003e **NOTE:** Separate multiple IP addresses with commas (,). You can create up to 1000 IP addresses or CIDR blocks for all IP address whitelists.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"}},"type":"object"}},"alicloud:mongodb/instance:Instance":{"description":"Provides a MongoDB instance resource supports replica set instances only. the MongoDB provides stable, reliable, and automatic scalable database services.\nIt offers a full range of database solutions, such as disaster recovery, backup, recovery, monitoring, and alarms.\nYou can see detail product introduction [here](https://www.alibabacloud.com/help/doc-detail/26558.htm)\n\n\u003e **NOTE:** Available since v1.37.0.\n\n\u003e **NOTE:**  Create MongoDB instance or change instance type and storage would cost 5~10 minutes. Please make full preparation\n\n## Example Usage\n\n### Create a Mongodb instance\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.mongodb.getZones({});\nconst index = _default.then(_default =\u003e _default.zones).length.apply(length =\u003e length - 1);\nconst zoneId = _default.then(_default =\u003e _default.zones[index].id);\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: zoneId,\n});\nconst defaultInstance = new alicloud.mongodb.Instance(\"default\", {\n    engineVersion: \"4.2\",\n    dbInstanceClass: \"dds.mongo.mid\",\n    dbInstanceStorage: 10,\n    vswitchId: defaultSwitch.id,\n    securityIpLists: [\n        \"10.168.1.12\",\n        \"100.69.7.112\",\n    ],\n    name: name,\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.mongodb.get_zones()\nindex = len(default.zones).apply(lambda length: length - 1)\nzone_id = default.zones[index].id\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=zone_id)\ndefault_instance = alicloud.mongodb.Instance(\"default\",\n    engine_version=\"4.2\",\n    db_instance_class=\"dds.mongo.mid\",\n    db_instance_storage=10,\n    vswitch_id=default_switch.id,\n    security_ip_lists=[\n        \"10.168.1.12\",\n        \"100.69.7.112\",\n    ],\n    name=name,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.MongoDB.GetZones.Invoke();\n\n    var index = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)).Length.Apply(length =\u003e length - 1);\n\n    var zoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[index].Id);\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = zoneId,\n    });\n\n    var defaultInstance = new AliCloud.MongoDB.Instance(\"default\", new()\n    {\n        EngineVersion = \"4.2\",\n        DbInstanceClass = \"dds.mongo.mid\",\n        DbInstanceStorage = 10,\n        VswitchId = defaultSwitch.Id,\n        SecurityIpLists = new[]\n        {\n            \"10.168.1.12\",\n            \"100.69.7.112\",\n        },\n        Name = name,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := mongodb.GetZones(ctx, \u0026mongodb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tindex := len(_default.Zones).ApplyT(func(length int) (float64, error) {\n\t\t\treturn float64(length.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\treturn __convert - 1, nil\n\t\t\t}).(pulumi.Float64Output)), nil\n\t\t}).(pulumi.Float64Output)\n\t\tzoneId := _default.Zones[index].Id\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(zoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodb.NewInstance(ctx, \"default\", \u0026mongodb.InstanceArgs{\n\t\t\tEngineVersion:     pulumi.String(\"4.2\"),\n\t\t\tDbInstanceClass:   pulumi.String(\"dds.mongo.mid\"),\n\t\t\tDbInstanceStorage: pulumi.Int(10),\n\t\t\tVswitchId:         defaultSwitch.ID(),\n\t\t\tSecurityIpLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.168.1.12\"),\n\t\t\t\tpulumi.String(\"100.69.7.112\"),\n\t\t\t},\n\t\t\tName: pulumi.String(name),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.MongodbFunctions;\nimport com.pulumi.alicloud.mongodb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mongodb.Instance;\nimport com.pulumi.alicloud.mongodb.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = MongodbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var index = default_.zones().length().applyValue(_length -\u003e _length - 1);\n\n        final var zoneId = default_.zones()[index].id();\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(zoneId)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engineVersion(\"4.2\")\n            .dbInstanceClass(\"dds.mongo.mid\")\n            .dbInstanceStorage(10)\n            .vswitchId(defaultSwitch.id())\n            .securityIpLists(            \n                \"10.168.1.12\",\n                \"100.69.7.112\")\n            .name(name)\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use to the existing mongodb module\nto create a MongoDB instance resource one-click.\n\n## Import\n\nMongoDB instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mongodb/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"accountPassword":{"type":"string","description":"Password of the root account. It is a string of 6 to 32 characters and is composed of letters, numbers, and underlines.\n","secret":true},"autoRenew":{"type":"boolean","description":"Auto renew for prepaid. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewDuration":{"type":"integer","description":"The auto-renewal period. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`autoRenewDuration`\" pulumi-lang-dotnet=\"`AutoRenewDuration`\" pulumi-lang-go=\"`autoRenewDuration`\" pulumi-lang-python=\"`auto_renew_duration`\" pulumi-lang-yaml=\"`autoRenewDuration`\" pulumi-lang-java=\"`autoRenewDuration`\"\u003e`auto_renew_duration`\u003c/span\u003e must be set.\n"},"backupInterval":{"type":"string","description":"The frequency at which high-frequency backups are created. Valid values: `-1`, \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`120`\" pulumi-lang-dotnet=\"`120`\" pulumi-lang-go=\"`120`\" pulumi-lang-python=\"`120`\" pulumi-lang-yaml=\"`120`\" pulumi-lang-java=\"`120`\"\u003e`120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`240`\" pulumi-lang-dotnet=\"`240`\" pulumi-lang-go=\"`240`\" pulumi-lang-python=\"`240`\" pulumi-lang-yaml=\"`240`\" pulumi-lang-java=\"`240`\"\u003e`240`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`360`\" pulumi-lang-dotnet=\"`360`\" pulumi-lang-go=\"`360`\" pulumi-lang-python=\"`360`\" pulumi-lang-yaml=\"`360`\" pulumi-lang-java=\"`360`\"\u003e`360`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`480`\" pulumi-lang-dotnet=\"`480`\" pulumi-lang-go=\"`480`\" pulumi-lang-python=\"`480`\" pulumi-lang-yaml=\"`480`\" pulumi-lang-java=\"`480`\"\u003e`480`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`720`\" pulumi-lang-dotnet=\"`720`\" pulumi-lang-go=\"`720`\" pulumi-lang-python=\"`720`\" pulumi-lang-yaml=\"`720`\" pulumi-lang-java=\"`720`\"\u003e`720`\u003c/span\u003e.\n"},"backupPeriods":{"type":"array","items":{"type":"string"},"description":"MongoDB Instance backup period. It is required when \u003cspan pulumi-lang-nodejs=\"`backupTime`\" pulumi-lang-dotnet=\"`BackupTime`\" pulumi-lang-go=\"`backupTime`\" pulumi-lang-python=\"`backup_time`\" pulumi-lang-yaml=\"`backupTime`\" pulumi-lang-java=\"`backupTime`\"\u003e`backup_time`\u003c/span\u003e was existed. Valid values: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]. Default to [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday].\n"},"backupRetentionPeriod":{"type":"integer","description":"The retention period of full backups.\n"},"backupRetentionPolicyOnClusterDeletion":{"type":"integer","description":"The backup retention policy configured for the instance. Valid values:\n"},"backupTime":{"type":"string","description":"MongoDB instance backup time. It is required when \u003cspan pulumi-lang-nodejs=\"`backupPeriod`\" pulumi-lang-dotnet=\"`BackupPeriod`\" pulumi-lang-go=\"`backupPeriod`\" pulumi-lang-python=\"`backup_period`\" pulumi-lang-yaml=\"`backupPeriod`\" pulumi-lang-java=\"`backupPeriod`\"\u003e`backup_period`\u003c/span\u003e was existed. In the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. If not set, the system will return a default, like \"23:00Z-24:00Z\".\n"},"cloudDiskEncryptionKey":{"type":"string","description":"The ID of the encryption key.\n"},"dbInstanceClass":{"type":"string","description":"Instance specification. see [Instance specifications](https://www.alibabacloud.com/help/doc-detail/57141.htm).\n"},"dbInstanceReleaseProtection":{"type":"boolean","description":"Indicates whether release protection is enabled for the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dbInstanceStorage":{"type":"integer","description":"User-defined DB instance storage space.Unit: GB. Value range:\n- Custom storage space.\n- 10-GB increments.\n"},"effectiveTime":{"type":"string","description":"The time when the changed configurations take effect. Valid values: `Immediately`, `MaintainTime`.\n"},"enableBackupLog":{"type":"integer","description":"Specifies whether to enable the log backup feature. Valid values:\n"},"encrypted":{"type":"boolean","description":"Whether to enable cloud disk encryption. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"encryptionKey":{"type":"string","description":"The ID of the custom key.\n"},"encryptorName":{"type":"string","description":"The encryption method. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`encryptorName`\" pulumi-lang-dotnet=\"`EncryptorName`\" pulumi-lang-go=\"`encryptorName`\" pulumi-lang-python=\"`encryptor_name`\" pulumi-lang-yaml=\"`encryptorName`\" pulumi-lang-java=\"`encryptorName`\"\u003e`encryptor_name`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`tdeStatus`\" pulumi-lang-dotnet=\"`TdeStatus`\" pulumi-lang-go=\"`tdeStatus`\" pulumi-lang-python=\"`tde_status`\" pulumi-lang-yaml=\"`tdeStatus`\" pulumi-lang-java=\"`tdeStatus`\"\u003e`tde_status`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"engineVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/doc-detail/61763.htm) `EngineVersion`. **NOTE:** From version 1.225.0, \u003cspan pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\"\u003e`engine_version`\u003c/span\u003e can be modified.\n"},"forceEncryption":{"type":"string","description":"Specifies whether to forcibly enable SSL encryption for connections. Valid values:\n"},"globalSecurityGroupLists":{"type":"array","items":{"type":"string"},"description":"The list of Global Security Group Ids.\n"},"hiddenZoneId":{"type":"string","description":"Configure the zone where the hidden node is located to deploy multiple zones. **NOTE:** This parameter value cannot be the same as \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secondaryZoneId`\" pulumi-lang-dotnet=\"`SecondaryZoneId`\" pulumi-lang-go=\"`secondaryZoneId`\" pulumi-lang-python=\"`secondary_zone_id`\" pulumi-lang-yaml=\"`secondaryZoneId`\" pulumi-lang-java=\"`secondaryZoneId`\"\u003e`secondary_zone_id`\u003c/span\u003e parameter values. From version 1.253.0, \u003cspan pulumi-lang-nodejs=\"`hiddenZoneId`\" pulumi-lang-dotnet=\"`HiddenZoneId`\" pulumi-lang-go=\"`hiddenZoneId`\" pulumi-lang-python=\"`hidden_zone_id`\" pulumi-lang-yaml=\"`hiddenZoneId`\" pulumi-lang-java=\"`hiddenZoneId`\"\u003e`hidden_zone_id`\u003c/span\u003e can be modified.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the instance. Default value: `PostPaid`. Valid values: `PrePaid`, `PostPaid`. **NOTE:** It can be modified from `PostPaid` to `PrePaid` after version 1.63.0.\n"},"keyIds":{"type":"array","items":{"type":"string"},"description":"(Available since v1.271.0) A list of instance keys.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a instance. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"logBackupRetentionPeriod":{"type":"integer","description":"The number of days for which log backups are retained. Valid values: \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`logBackupRetentionPeriod`\" pulumi-lang-dotnet=\"`LogBackupRetentionPeriod`\" pulumi-lang-go=\"`logBackupRetentionPeriod`\" pulumi-lang-python=\"`log_backup_retention_period`\" pulumi-lang-yaml=\"`logBackupRetentionPeriod`\" pulumi-lang-java=\"`logBackupRetentionPeriod`\"\u003e`log_backup_retention_period`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"maintainEndTime":{"type":"string","description":"The end time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time).\n\u003e **NOTE:** The start time to the end time must be 1 hour. For example, the MaintainStartTime is 01:00Z, then the MaintainEndTime must be 02:00Z.\n"},"maintainStartTime":{"type":"string","description":"The start time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time).\n"},"name":{"type":"string","description":"The name of DB instance. It must be 2 to 256 characters in length.\n"},"networkType":{"type":"string","description":"The network type of the instance. Valid values: `VPC`.\n\u003e **NOTE:** From 2022.2.21, \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e cannot be set to `Classic`. For more information, see[Product Notification](https://www.alibabacloud.com/help/en/mongodb/product-overview/eol-notice-for-apsaradb-for-mongodb-instances-in-the-classic-network)\n"},"orderType":{"type":"string","description":"The type of configuration changes performed. Default value: `DOWNGRADE`. Valid values:\n- `UPGRADE`: The specifications are upgraded.\n- `DOWNGRADE`: The specifications are downgraded.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`orderType`\" pulumi-lang-dotnet=\"`OrderType`\" pulumi-lang-go=\"`orderType`\" pulumi-lang-python=\"`order_type`\" pulumi-lang-yaml=\"`orderType`\" pulumi-lang-java=\"`orderType`\"\u003e`order_type`\u003c/span\u003e is only applicable to instances when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/InstanceParameter:InstanceParameter"},"description":"Set of parameters needs to be set after mongodb instance was launched. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"period":{"type":"integer","description":"The duration that you will buy DB instance (in month). It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values: [1~9], 12, 24, 36.\n"},"provisionedIops":{"type":"integer","description":"The provisioned IOPS. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50000`\" pulumi-lang-dotnet=\"`50000`\" pulumi-lang-go=\"`50000`\" pulumi-lang-python=\"`50000`\" pulumi-lang-yaml=\"`50000`\" pulumi-lang-java=\"`50000`\"\u003e`50000`\u003c/span\u003e.\n"},"readonlyReplicas":{"type":"integer","description":"The number of read-only nodes in the replica set instance. Default value: 0. Valid values: 0 to 5.\n"},"replicaSetName":{"type":"string","description":"The name of the mongo replica set.\n"},"replicaSets":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/InstanceReplicaSet:InstanceReplicaSet"},"description":"Replica set instance information.\n"},"replicationFactor":{"type":"integer","description":"Number of replica set nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"restoreTime":{"type":"string","description":"The point in time to which you want to restore the instance. You can specify any point in time within the last seven days. The time must be in the yyyy-MM-ddTHH:mm:ssZ format and in UTC.\n\u003e **NOTE:** You must specify \u003cspan pulumi-lang-nodejs=\"`srcDbInstanceId`\" pulumi-lang-dotnet=\"`SrcDbInstanceId`\" pulumi-lang-go=\"`srcDbInstanceId`\" pulumi-lang-python=\"`src_db_instance_id`\" pulumi-lang-yaml=\"`srcDbInstanceId`\" pulumi-lang-java=\"`srcDbInstanceId`\"\u003e`src_db_instance_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`restoreTime`\" pulumi-lang-dotnet=\"`RestoreTime`\" pulumi-lang-go=\"`restoreTime`\" pulumi-lang-python=\"`restore_time`\" pulumi-lang-yaml=\"`restoreTime`\" pulumi-lang-java=\"`restoreTime`\"\u003e`restore_time`\u003c/span\u003e only when you clone an instance based on a point in time.\n"},"retentionPeriod":{"type":"integer","description":"Instance data backup retention days. Available since v1.42.0.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the specified Resource Access Management (RAM) role.\n"},"secondaryZoneId":{"type":"string","description":"Configure the available area where the slave node (Secondary node) is located to realize multi-available area deployment. **NOTE:** This parameter value cannot be the same as \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`hiddenZoneId`\" pulumi-lang-dotnet=\"`HiddenZoneId`\" pulumi-lang-go=\"`hiddenZoneId`\" pulumi-lang-python=\"`hidden_zone_id`\" pulumi-lang-yaml=\"`hiddenZoneId`\" pulumi-lang-java=\"`hiddenZoneId`\"\u003e`hidden_zone_id`\u003c/span\u003e parameter values. From version 1.253.0, \u003cspan pulumi-lang-nodejs=\"`secondaryZoneId`\" pulumi-lang-dotnet=\"`SecondaryZoneId`\" pulumi-lang-go=\"`secondaryZoneId`\" pulumi-lang-python=\"`secondary_zone_id`\" pulumi-lang-yaml=\"`secondaryZoneId`\" pulumi-lang-java=\"`secondaryZoneId`\"\u003e`secondary_zone_id`\u003c/span\u003e can be modified.\n"},"securityGroupId":{"type":"string","description":"The Security Group ID of ECS.\n"},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"snapshotBackupType":{"type":"string","description":"The snapshot backup type. Default value: `Standard`. Valid values:\n- `Standard`: standard backup.\n- `Flash `: single-digit second backup.\n"},"srcDbInstanceId":{"type":"string","description":"The source instance ID.\n"},"sslAction":{"type":"string","description":"Actions performed on SSL functions. Valid values:\n- `Open`: turn on SSL encryption.\n- `Close`: turn off SSL encryption.\n- `Update`: update SSL certificate.\n\u003e **NOTE:** Once \u003cspan pulumi-lang-nodejs=\"`sslAction`\" pulumi-lang-dotnet=\"`SslAction`\" pulumi-lang-go=\"`sslAction`\" pulumi-lang-python=\"`ssl_action`\" pulumi-lang-yaml=\"`sslAction`\" pulumi-lang-java=\"`sslAction`\"\u003e`ssl_action`\u003c/span\u003e is set, it isn't allowed to be removed from the Terraform code.\n"},"sslStatus":{"type":"string","description":"Status of the SSL feature.\n"},"storageEngine":{"type":"string","description":"The storage engine of the instance. Default value: `WiredTiger`. Valid values: `WiredTiger`, `RocksDB`.\n"},"storageType":{"type":"string","description":"The storage type of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd1`\" pulumi-lang-dotnet=\"`CloudEssd1`\" pulumi-lang-go=\"`cloudEssd1`\" pulumi-lang-python=\"`cloud_essd1`\" pulumi-lang-yaml=\"`cloudEssd1`\" pulumi-lang-java=\"`cloudEssd1`\"\u003e`cloud_essd1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd2`\" pulumi-lang-dotnet=\"`CloudEssd2`\" pulumi-lang-go=\"`cloudEssd2`\" pulumi-lang-python=\"`cloud_essd2`\" pulumi-lang-yaml=\"`cloudEssd2`\" pulumi-lang-java=\"`cloudEssd2`\"\u003e`cloud_essd2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd3`\" pulumi-lang-dotnet=\"`CloudEssd3`\" pulumi-lang-go=\"`cloudEssd3`\" pulumi-lang-python=\"`cloud_essd3`\" pulumi-lang-yaml=\"`cloudEssd3`\" pulumi-lang-java=\"`cloudEssd3`\"\u003e`cloud_essd3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsd`\" pulumi-lang-dotnet=\"`LocalSsd`\" pulumi-lang-go=\"`localSsd`\" pulumi-lang-python=\"`local_ssd`\" pulumi-lang-yaml=\"`localSsd`\" pulumi-lang-java=\"`localSsd`\"\u003e`local_ssd`\u003c/span\u003e. **NOTE:** From version 1.229.0, \u003cspan pulumi-lang-nodejs=\"`storageType`\" pulumi-lang-dotnet=\"`StorageType`\" pulumi-lang-go=\"`storageType`\" pulumi-lang-python=\"`storage_type`\" pulumi-lang-yaml=\"`storageType`\" pulumi-lang-java=\"`storageType`\"\u003e`storage_type`\u003c/span\u003e can be modified. However, \u003cspan pulumi-lang-nodejs=\"`storageType`\" pulumi-lang-dotnet=\"`StorageType`\" pulumi-lang-go=\"`storageType`\" pulumi-lang-python=\"`storage_type`\" pulumi-lang-yaml=\"`storageType`\" pulumi-lang-java=\"`storageType`\"\u003e`storage_type`\u003c/span\u003e can only be modified to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"tdeStatus":{"type":"string","description":"The TDE(Transparent Data Encryption) status. Note: \u003cspan pulumi-lang-nodejs=\"`tdeStatus`\" pulumi-lang-dotnet=\"`TdeStatus`\" pulumi-lang-go=\"`tdeStatus`\" pulumi-lang-python=\"`tde_status`\" pulumi-lang-yaml=\"`tdeStatus`\" pulumi-lang-java=\"`tdeStatus`\"\u003e`tde_status`\u003c/span\u003e cannot be set to \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e after it is enabled, see [Transparent Data Encryption](https://www.alibabacloud.com/help/en/mongodb/user-guide/configure-tde-for-an-apsaradb-for-mongodb-instance) for more details.\n"},"vpcId":{"type":"string","description":"The ID of the VPC. \u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e is set to `VPC`.\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB instance. it supports multiple zone.\nIf it is a multi-zone and \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified, the vswitch must in one of them.\nThe multiple zone ID can be retrieved by setting \u003cspan pulumi-lang-nodejs=\"`multi`\" pulumi-lang-dotnet=\"`Multi`\" pulumi-lang-go=\"`multi`\" pulumi-lang-python=\"`multi`\" pulumi-lang-yaml=\"`multi`\" pulumi-lang-java=\"`multi`\"\u003e`multi`\u003c/span\u003e to \"true\" in the data source \u003cspan pulumi-lang-nodejs=\"`alicloud.getZones`\" pulumi-lang-dotnet=\"`alicloud.getZones`\" pulumi-lang-go=\"`getZones`\" pulumi-lang-python=\"`get_zones`\" pulumi-lang-yaml=\"`alicloud.getZones`\" pulumi-lang-java=\"`alicloud.getZones`\"\u003e`alicloud.getZones`\u003c/span\u003e.\n"},"zoneInfos":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/InstanceZoneInfo:InstanceZoneInfo"},"description":"(Available since v1.271.0) The information of nodes in the zone.\n"}},"required":["autoRenewDuration","backupInterval","backupPeriods","backupRetentionPeriod","backupTime","dbInstanceClass","dbInstanceStorage","enableBackupLog","encryptionKey","encryptorName","engineVersion","forceEncryption","instanceChargeType","keyIds","logBackupRetentionPeriod","maintainEndTime","maintainStartTime","name","networkType","parameters","period","readonlyReplicas","replicaSetName","replicaSets","replicationFactor","resourceGroupId","retentionPeriod","roleArn","securityIpLists","snapshotBackupType","sslStatus","storageEngine","storageType","tdeStatus","vpcId","vswitchId","zoneId","zoneInfos"],"inputProperties":{"accountPassword":{"type":"string","description":"Password of the root account. It is a string of 6 to 32 characters and is composed of letters, numbers, and underlines.\n","secret":true},"autoRenew":{"type":"boolean","description":"Auto renew for prepaid. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewDuration":{"type":"integer","description":"The auto-renewal period. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`autoRenewDuration`\" pulumi-lang-dotnet=\"`AutoRenewDuration`\" pulumi-lang-go=\"`autoRenewDuration`\" pulumi-lang-python=\"`auto_renew_duration`\" pulumi-lang-yaml=\"`autoRenewDuration`\" pulumi-lang-java=\"`autoRenewDuration`\"\u003e`auto_renew_duration`\u003c/span\u003e must be set.\n"},"backupInterval":{"type":"string","description":"The frequency at which high-frequency backups are created. Valid values: `-1`, \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`120`\" pulumi-lang-dotnet=\"`120`\" pulumi-lang-go=\"`120`\" pulumi-lang-python=\"`120`\" pulumi-lang-yaml=\"`120`\" pulumi-lang-java=\"`120`\"\u003e`120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`240`\" pulumi-lang-dotnet=\"`240`\" pulumi-lang-go=\"`240`\" pulumi-lang-python=\"`240`\" pulumi-lang-yaml=\"`240`\" pulumi-lang-java=\"`240`\"\u003e`240`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`360`\" pulumi-lang-dotnet=\"`360`\" pulumi-lang-go=\"`360`\" pulumi-lang-python=\"`360`\" pulumi-lang-yaml=\"`360`\" pulumi-lang-java=\"`360`\"\u003e`360`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`480`\" pulumi-lang-dotnet=\"`480`\" pulumi-lang-go=\"`480`\" pulumi-lang-python=\"`480`\" pulumi-lang-yaml=\"`480`\" pulumi-lang-java=\"`480`\"\u003e`480`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`720`\" pulumi-lang-dotnet=\"`720`\" pulumi-lang-go=\"`720`\" pulumi-lang-python=\"`720`\" pulumi-lang-yaml=\"`720`\" pulumi-lang-java=\"`720`\"\u003e`720`\u003c/span\u003e.\n"},"backupPeriods":{"type":"array","items":{"type":"string"},"description":"MongoDB Instance backup period. It is required when \u003cspan pulumi-lang-nodejs=\"`backupTime`\" pulumi-lang-dotnet=\"`BackupTime`\" pulumi-lang-go=\"`backupTime`\" pulumi-lang-python=\"`backup_time`\" pulumi-lang-yaml=\"`backupTime`\" pulumi-lang-java=\"`backupTime`\"\u003e`backup_time`\u003c/span\u003e was existed. Valid values: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]. Default to [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday].\n"},"backupRetentionPeriod":{"type":"integer","description":"The retention period of full backups.\n"},"backupRetentionPolicyOnClusterDeletion":{"type":"integer","description":"The backup retention policy configured for the instance. Valid values:\n"},"backupTime":{"type":"string","description":"MongoDB instance backup time. It is required when \u003cspan pulumi-lang-nodejs=\"`backupPeriod`\" pulumi-lang-dotnet=\"`BackupPeriod`\" pulumi-lang-go=\"`backupPeriod`\" pulumi-lang-python=\"`backup_period`\" pulumi-lang-yaml=\"`backupPeriod`\" pulumi-lang-java=\"`backupPeriod`\"\u003e`backup_period`\u003c/span\u003e was existed. In the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. If not set, the system will return a default, like \"23:00Z-24:00Z\".\n"},"cloudDiskEncryptionKey":{"type":"string","description":"The ID of the encryption key.\n","willReplaceOnChanges":true},"dbInstanceClass":{"type":"string","description":"Instance specification. see [Instance specifications](https://www.alibabacloud.com/help/doc-detail/57141.htm).\n"},"dbInstanceReleaseProtection":{"type":"boolean","description":"Indicates whether release protection is enabled for the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dbInstanceStorage":{"type":"integer","description":"User-defined DB instance storage space.Unit: GB. Value range:\n- Custom storage space.\n- 10-GB increments.\n"},"effectiveTime":{"type":"string","description":"The time when the changed configurations take effect. Valid values: `Immediately`, `MaintainTime`.\n"},"enableBackupLog":{"type":"integer","description":"Specifies whether to enable the log backup feature. Valid values:\n"},"encrypted":{"type":"boolean","description":"Whether to enable cloud disk encryption. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"encryptionKey":{"type":"string","description":"The ID of the custom key.\n"},"encryptorName":{"type":"string","description":"The encryption method. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`encryptorName`\" pulumi-lang-dotnet=\"`EncryptorName`\" pulumi-lang-go=\"`encryptorName`\" pulumi-lang-python=\"`encryptor_name`\" pulumi-lang-yaml=\"`encryptorName`\" pulumi-lang-java=\"`encryptorName`\"\u003e`encryptor_name`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`tdeStatus`\" pulumi-lang-dotnet=\"`TdeStatus`\" pulumi-lang-go=\"`tdeStatus`\" pulumi-lang-python=\"`tde_status`\" pulumi-lang-yaml=\"`tdeStatus`\" pulumi-lang-java=\"`tdeStatus`\"\u003e`tde_status`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"engineVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/doc-detail/61763.htm) `EngineVersion`. **NOTE:** From version 1.225.0, \u003cspan pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\"\u003e`engine_version`\u003c/span\u003e can be modified.\n"},"forceEncryption":{"type":"string","description":"Specifies whether to forcibly enable SSL encryption for connections. Valid values:\n"},"globalSecurityGroupLists":{"type":"array","items":{"type":"string"},"description":"The list of Global Security Group Ids.\n"},"hiddenZoneId":{"type":"string","description":"Configure the zone where the hidden node is located to deploy multiple zones. **NOTE:** This parameter value cannot be the same as \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secondaryZoneId`\" pulumi-lang-dotnet=\"`SecondaryZoneId`\" pulumi-lang-go=\"`secondaryZoneId`\" pulumi-lang-python=\"`secondary_zone_id`\" pulumi-lang-yaml=\"`secondaryZoneId`\" pulumi-lang-java=\"`secondaryZoneId`\"\u003e`secondary_zone_id`\u003c/span\u003e parameter values. From version 1.253.0, \u003cspan pulumi-lang-nodejs=\"`hiddenZoneId`\" pulumi-lang-dotnet=\"`HiddenZoneId`\" pulumi-lang-go=\"`hiddenZoneId`\" pulumi-lang-python=\"`hidden_zone_id`\" pulumi-lang-yaml=\"`hiddenZoneId`\" pulumi-lang-java=\"`hiddenZoneId`\"\u003e`hidden_zone_id`\u003c/span\u003e can be modified.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the instance. Default value: `PostPaid`. Valid values: `PrePaid`, `PostPaid`. **NOTE:** It can be modified from `PostPaid` to `PrePaid` after version 1.63.0.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a instance. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"logBackupRetentionPeriod":{"type":"integer","description":"The number of days for which log backups are retained. Valid values: \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`logBackupRetentionPeriod`\" pulumi-lang-dotnet=\"`LogBackupRetentionPeriod`\" pulumi-lang-go=\"`logBackupRetentionPeriod`\" pulumi-lang-python=\"`log_backup_retention_period`\" pulumi-lang-yaml=\"`logBackupRetentionPeriod`\" pulumi-lang-java=\"`logBackupRetentionPeriod`\"\u003e`log_backup_retention_period`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"maintainEndTime":{"type":"string","description":"The end time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time).\n\u003e **NOTE:** The start time to the end time must be 1 hour. For example, the MaintainStartTime is 01:00Z, then the MaintainEndTime must be 02:00Z.\n"},"maintainStartTime":{"type":"string","description":"The start time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time).\n"},"name":{"type":"string","description":"The name of DB instance. It must be 2 to 256 characters in length.\n"},"networkType":{"type":"string","description":"The network type of the instance. Valid values: `VPC`.\n\u003e **NOTE:** From 2022.2.21, \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e cannot be set to `Classic`. For more information, see[Product Notification](https://www.alibabacloud.com/help/en/mongodb/product-overview/eol-notice-for-apsaradb-for-mongodb-instances-in-the-classic-network)\n","willReplaceOnChanges":true},"orderType":{"type":"string","description":"The type of configuration changes performed. Default value: `DOWNGRADE`. Valid values:\n- `UPGRADE`: The specifications are upgraded.\n- `DOWNGRADE`: The specifications are downgraded.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`orderType`\" pulumi-lang-dotnet=\"`OrderType`\" pulumi-lang-go=\"`orderType`\" pulumi-lang-python=\"`order_type`\" pulumi-lang-yaml=\"`orderType`\" pulumi-lang-java=\"`orderType`\"\u003e`order_type`\u003c/span\u003e is only applicable to instances when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/InstanceParameter:InstanceParameter"},"description":"Set of parameters needs to be set after mongodb instance was launched. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"period":{"type":"integer","description":"The duration that you will buy DB instance (in month). It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values: [1~9], 12, 24, 36.\n"},"provisionedIops":{"type":"integer","description":"The provisioned IOPS. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50000`\" pulumi-lang-dotnet=\"`50000`\" pulumi-lang-go=\"`50000`\" pulumi-lang-python=\"`50000`\" pulumi-lang-yaml=\"`50000`\" pulumi-lang-java=\"`50000`\"\u003e`50000`\u003c/span\u003e.\n"},"readonlyReplicas":{"type":"integer","description":"The number of read-only nodes in the replica set instance. Default value: 0. Valid values: 0 to 5.\n"},"replicationFactor":{"type":"integer","description":"Number of replica set nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"restoreTime":{"type":"string","description":"The point in time to which you want to restore the instance. You can specify any point in time within the last seven days. The time must be in the yyyy-MM-ddTHH:mm:ssZ format and in UTC.\n\u003e **NOTE:** You must specify \u003cspan pulumi-lang-nodejs=\"`srcDbInstanceId`\" pulumi-lang-dotnet=\"`SrcDbInstanceId`\" pulumi-lang-go=\"`srcDbInstanceId`\" pulumi-lang-python=\"`src_db_instance_id`\" pulumi-lang-yaml=\"`srcDbInstanceId`\" pulumi-lang-java=\"`srcDbInstanceId`\"\u003e`src_db_instance_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`restoreTime`\" pulumi-lang-dotnet=\"`RestoreTime`\" pulumi-lang-go=\"`restoreTime`\" pulumi-lang-python=\"`restore_time`\" pulumi-lang-yaml=\"`restoreTime`\" pulumi-lang-java=\"`restoreTime`\"\u003e`restore_time`\u003c/span\u003e only when you clone an instance based on a point in time.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the specified Resource Access Management (RAM) role.\n"},"secondaryZoneId":{"type":"string","description":"Configure the available area where the slave node (Secondary node) is located to realize multi-available area deployment. **NOTE:** This parameter value cannot be the same as \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`hiddenZoneId`\" pulumi-lang-dotnet=\"`HiddenZoneId`\" pulumi-lang-go=\"`hiddenZoneId`\" pulumi-lang-python=\"`hidden_zone_id`\" pulumi-lang-yaml=\"`hiddenZoneId`\" pulumi-lang-java=\"`hiddenZoneId`\"\u003e`hidden_zone_id`\u003c/span\u003e parameter values. From version 1.253.0, \u003cspan pulumi-lang-nodejs=\"`secondaryZoneId`\" pulumi-lang-dotnet=\"`SecondaryZoneId`\" pulumi-lang-go=\"`secondaryZoneId`\" pulumi-lang-python=\"`secondary_zone_id`\" pulumi-lang-yaml=\"`secondaryZoneId`\" pulumi-lang-java=\"`secondaryZoneId`\"\u003e`secondary_zone_id`\u003c/span\u003e can be modified.\n"},"securityGroupId":{"type":"string","description":"The Security Group ID of ECS.\n"},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"snapshotBackupType":{"type":"string","description":"The snapshot backup type. Default value: `Standard`. Valid values:\n- `Standard`: standard backup.\n- `Flash `: single-digit second backup.\n"},"srcDbInstanceId":{"type":"string","description":"The source instance ID.\n"},"sslAction":{"type":"string","description":"Actions performed on SSL functions. Valid values:\n- `Open`: turn on SSL encryption.\n- `Close`: turn off SSL encryption.\n- `Update`: update SSL certificate.\n\u003e **NOTE:** Once \u003cspan pulumi-lang-nodejs=\"`sslAction`\" pulumi-lang-dotnet=\"`SslAction`\" pulumi-lang-go=\"`sslAction`\" pulumi-lang-python=\"`ssl_action`\" pulumi-lang-yaml=\"`sslAction`\" pulumi-lang-java=\"`sslAction`\"\u003e`ssl_action`\u003c/span\u003e is set, it isn't allowed to be removed from the Terraform code.\n"},"storageEngine":{"type":"string","description":"The storage engine of the instance. Default value: `WiredTiger`. Valid values: `WiredTiger`, `RocksDB`.\n","willReplaceOnChanges":true},"storageType":{"type":"string","description":"The storage type of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd1`\" pulumi-lang-dotnet=\"`CloudEssd1`\" pulumi-lang-go=\"`cloudEssd1`\" pulumi-lang-python=\"`cloud_essd1`\" pulumi-lang-yaml=\"`cloudEssd1`\" pulumi-lang-java=\"`cloudEssd1`\"\u003e`cloud_essd1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd2`\" pulumi-lang-dotnet=\"`CloudEssd2`\" pulumi-lang-go=\"`cloudEssd2`\" pulumi-lang-python=\"`cloud_essd2`\" pulumi-lang-yaml=\"`cloudEssd2`\" pulumi-lang-java=\"`cloudEssd2`\"\u003e`cloud_essd2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd3`\" pulumi-lang-dotnet=\"`CloudEssd3`\" pulumi-lang-go=\"`cloudEssd3`\" pulumi-lang-python=\"`cloud_essd3`\" pulumi-lang-yaml=\"`cloudEssd3`\" pulumi-lang-java=\"`cloudEssd3`\"\u003e`cloud_essd3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsd`\" pulumi-lang-dotnet=\"`LocalSsd`\" pulumi-lang-go=\"`localSsd`\" pulumi-lang-python=\"`local_ssd`\" pulumi-lang-yaml=\"`localSsd`\" pulumi-lang-java=\"`localSsd`\"\u003e`local_ssd`\u003c/span\u003e. **NOTE:** From version 1.229.0, \u003cspan pulumi-lang-nodejs=\"`storageType`\" pulumi-lang-dotnet=\"`StorageType`\" pulumi-lang-go=\"`storageType`\" pulumi-lang-python=\"`storage_type`\" pulumi-lang-yaml=\"`storageType`\" pulumi-lang-java=\"`storageType`\"\u003e`storage_type`\u003c/span\u003e can be modified. However, \u003cspan pulumi-lang-nodejs=\"`storageType`\" pulumi-lang-dotnet=\"`StorageType`\" pulumi-lang-go=\"`storageType`\" pulumi-lang-python=\"`storage_type`\" pulumi-lang-yaml=\"`storageType`\" pulumi-lang-java=\"`storageType`\"\u003e`storage_type`\u003c/span\u003e can only be modified to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"tdeStatus":{"type":"string","description":"The TDE(Transparent Data Encryption) status. Note: \u003cspan pulumi-lang-nodejs=\"`tdeStatus`\" pulumi-lang-dotnet=\"`TdeStatus`\" pulumi-lang-go=\"`tdeStatus`\" pulumi-lang-python=\"`tde_status`\" pulumi-lang-yaml=\"`tdeStatus`\" pulumi-lang-java=\"`tdeStatus`\"\u003e`tde_status`\u003c/span\u003e cannot be set to \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e after it is enabled, see [Transparent Data Encryption](https://www.alibabacloud.com/help/en/mongodb/user-guide/configure-tde-for-an-apsaradb-for-mongodb-instance) for more details.\n"},"vpcId":{"type":"string","description":"The ID of the VPC. \u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e is set to `VPC`.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the DB instance. it supports multiple zone.\nIf it is a multi-zone and \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified, the vswitch must in one of them.\nThe multiple zone ID can be retrieved by setting \u003cspan pulumi-lang-nodejs=\"`multi`\" pulumi-lang-dotnet=\"`Multi`\" pulumi-lang-go=\"`multi`\" pulumi-lang-python=\"`multi`\" pulumi-lang-yaml=\"`multi`\" pulumi-lang-java=\"`multi`\"\u003e`multi`\u003c/span\u003e to \"true\" in the data source \u003cspan pulumi-lang-nodejs=\"`alicloud.getZones`\" pulumi-lang-dotnet=\"`alicloud.getZones`\" pulumi-lang-go=\"`getZones`\" pulumi-lang-python=\"`get_zones`\" pulumi-lang-yaml=\"`alicloud.getZones`\" pulumi-lang-java=\"`alicloud.getZones`\"\u003e`alicloud.getZones`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["dbInstanceClass","dbInstanceStorage","engineVersion"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"accountPassword":{"type":"string","description":"Password of the root account. It is a string of 6 to 32 characters and is composed of letters, numbers, and underlines.\n","secret":true},"autoRenew":{"type":"boolean","description":"Auto renew for prepaid. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewDuration":{"type":"integer","description":"The auto-renewal period. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`autoRenewDuration`\" pulumi-lang-dotnet=\"`AutoRenewDuration`\" pulumi-lang-go=\"`autoRenewDuration`\" pulumi-lang-python=\"`auto_renew_duration`\" pulumi-lang-yaml=\"`autoRenewDuration`\" pulumi-lang-java=\"`autoRenewDuration`\"\u003e`auto_renew_duration`\u003c/span\u003e must be set.\n"},"backupInterval":{"type":"string","description":"The frequency at which high-frequency backups are created. Valid values: `-1`, \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`120`\" pulumi-lang-dotnet=\"`120`\" pulumi-lang-go=\"`120`\" pulumi-lang-python=\"`120`\" pulumi-lang-yaml=\"`120`\" pulumi-lang-java=\"`120`\"\u003e`120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`240`\" pulumi-lang-dotnet=\"`240`\" pulumi-lang-go=\"`240`\" pulumi-lang-python=\"`240`\" pulumi-lang-yaml=\"`240`\" pulumi-lang-java=\"`240`\"\u003e`240`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`360`\" pulumi-lang-dotnet=\"`360`\" pulumi-lang-go=\"`360`\" pulumi-lang-python=\"`360`\" pulumi-lang-yaml=\"`360`\" pulumi-lang-java=\"`360`\"\u003e`360`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`480`\" pulumi-lang-dotnet=\"`480`\" pulumi-lang-go=\"`480`\" pulumi-lang-python=\"`480`\" pulumi-lang-yaml=\"`480`\" pulumi-lang-java=\"`480`\"\u003e`480`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`720`\" pulumi-lang-dotnet=\"`720`\" pulumi-lang-go=\"`720`\" pulumi-lang-python=\"`720`\" pulumi-lang-yaml=\"`720`\" pulumi-lang-java=\"`720`\"\u003e`720`\u003c/span\u003e.\n"},"backupPeriods":{"type":"array","items":{"type":"string"},"description":"MongoDB Instance backup period. It is required when \u003cspan pulumi-lang-nodejs=\"`backupTime`\" pulumi-lang-dotnet=\"`BackupTime`\" pulumi-lang-go=\"`backupTime`\" pulumi-lang-python=\"`backup_time`\" pulumi-lang-yaml=\"`backupTime`\" pulumi-lang-java=\"`backupTime`\"\u003e`backup_time`\u003c/span\u003e was existed. Valid values: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]. Default to [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday].\n"},"backupRetentionPeriod":{"type":"integer","description":"The retention period of full backups.\n"},"backupRetentionPolicyOnClusterDeletion":{"type":"integer","description":"The backup retention policy configured for the instance. Valid values:\n"},"backupTime":{"type":"string","description":"MongoDB instance backup time. It is required when \u003cspan pulumi-lang-nodejs=\"`backupPeriod`\" pulumi-lang-dotnet=\"`BackupPeriod`\" pulumi-lang-go=\"`backupPeriod`\" pulumi-lang-python=\"`backup_period`\" pulumi-lang-yaml=\"`backupPeriod`\" pulumi-lang-java=\"`backupPeriod`\"\u003e`backup_period`\u003c/span\u003e was existed. In the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. If not set, the system will return a default, like \"23:00Z-24:00Z\".\n"},"cloudDiskEncryptionKey":{"type":"string","description":"The ID of the encryption key.\n","willReplaceOnChanges":true},"dbInstanceClass":{"type":"string","description":"Instance specification. see [Instance specifications](https://www.alibabacloud.com/help/doc-detail/57141.htm).\n"},"dbInstanceReleaseProtection":{"type":"boolean","description":"Indicates whether release protection is enabled for the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dbInstanceStorage":{"type":"integer","description":"User-defined DB instance storage space.Unit: GB. Value range:\n- Custom storage space.\n- 10-GB increments.\n"},"effectiveTime":{"type":"string","description":"The time when the changed configurations take effect. Valid values: `Immediately`, `MaintainTime`.\n"},"enableBackupLog":{"type":"integer","description":"Specifies whether to enable the log backup feature. Valid values:\n"},"encrypted":{"type":"boolean","description":"Whether to enable cloud disk encryption. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"encryptionKey":{"type":"string","description":"The ID of the custom key.\n"},"encryptorName":{"type":"string","description":"The encryption method. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`encryptorName`\" pulumi-lang-dotnet=\"`EncryptorName`\" pulumi-lang-go=\"`encryptorName`\" pulumi-lang-python=\"`encryptor_name`\" pulumi-lang-yaml=\"`encryptorName`\" pulumi-lang-java=\"`encryptorName`\"\u003e`encryptor_name`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`tdeStatus`\" pulumi-lang-dotnet=\"`TdeStatus`\" pulumi-lang-go=\"`tdeStatus`\" pulumi-lang-python=\"`tde_status`\" pulumi-lang-yaml=\"`tdeStatus`\" pulumi-lang-java=\"`tdeStatus`\"\u003e`tde_status`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"engineVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/doc-detail/61763.htm) `EngineVersion`. **NOTE:** From version 1.225.0, \u003cspan pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\"\u003e`engine_version`\u003c/span\u003e can be modified.\n"},"forceEncryption":{"type":"string","description":"Specifies whether to forcibly enable SSL encryption for connections. Valid values:\n"},"globalSecurityGroupLists":{"type":"array","items":{"type":"string"},"description":"The list of Global Security Group Ids.\n"},"hiddenZoneId":{"type":"string","description":"Configure the zone where the hidden node is located to deploy multiple zones. **NOTE:** This parameter value cannot be the same as \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secondaryZoneId`\" pulumi-lang-dotnet=\"`SecondaryZoneId`\" pulumi-lang-go=\"`secondaryZoneId`\" pulumi-lang-python=\"`secondary_zone_id`\" pulumi-lang-yaml=\"`secondaryZoneId`\" pulumi-lang-java=\"`secondaryZoneId`\"\u003e`secondary_zone_id`\u003c/span\u003e parameter values. From version 1.253.0, \u003cspan pulumi-lang-nodejs=\"`hiddenZoneId`\" pulumi-lang-dotnet=\"`HiddenZoneId`\" pulumi-lang-go=\"`hiddenZoneId`\" pulumi-lang-python=\"`hidden_zone_id`\" pulumi-lang-yaml=\"`hiddenZoneId`\" pulumi-lang-java=\"`hiddenZoneId`\"\u003e`hidden_zone_id`\u003c/span\u003e can be modified.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the instance. Default value: `PostPaid`. Valid values: `PrePaid`, `PostPaid`. **NOTE:** It can be modified from `PostPaid` to `PrePaid` after version 1.63.0.\n"},"keyIds":{"type":"array","items":{"type":"string"},"description":"(Available since v1.271.0) A list of instance keys.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a instance. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"logBackupRetentionPeriod":{"type":"integer","description":"The number of days for which log backups are retained. Valid values: \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`logBackupRetentionPeriod`\" pulumi-lang-dotnet=\"`LogBackupRetentionPeriod`\" pulumi-lang-go=\"`logBackupRetentionPeriod`\" pulumi-lang-python=\"`log_backup_retention_period`\" pulumi-lang-yaml=\"`logBackupRetentionPeriod`\" pulumi-lang-java=\"`logBackupRetentionPeriod`\"\u003e`log_backup_retention_period`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"maintainEndTime":{"type":"string","description":"The end time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time).\n\u003e **NOTE:** The start time to the end time must be 1 hour. For example, the MaintainStartTime is 01:00Z, then the MaintainEndTime must be 02:00Z.\n"},"maintainStartTime":{"type":"string","description":"The start time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time).\n"},"name":{"type":"string","description":"The name of DB instance. It must be 2 to 256 characters in length.\n"},"networkType":{"type":"string","description":"The network type of the instance. Valid values: `VPC`.\n\u003e **NOTE:** From 2022.2.21, \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e cannot be set to `Classic`. For more information, see[Product Notification](https://www.alibabacloud.com/help/en/mongodb/product-overview/eol-notice-for-apsaradb-for-mongodb-instances-in-the-classic-network)\n","willReplaceOnChanges":true},"orderType":{"type":"string","description":"The type of configuration changes performed. Default value: `DOWNGRADE`. Valid values:\n- `UPGRADE`: The specifications are upgraded.\n- `DOWNGRADE`: The specifications are downgraded.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`orderType`\" pulumi-lang-dotnet=\"`OrderType`\" pulumi-lang-go=\"`orderType`\" pulumi-lang-python=\"`order_type`\" pulumi-lang-yaml=\"`orderType`\" pulumi-lang-java=\"`orderType`\"\u003e`order_type`\u003c/span\u003e is only applicable to instances when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/InstanceParameter:InstanceParameter"},"description":"Set of parameters needs to be set after mongodb instance was launched. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"period":{"type":"integer","description":"The duration that you will buy DB instance (in month). It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values: [1~9], 12, 24, 36.\n"},"provisionedIops":{"type":"integer","description":"The provisioned IOPS. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50000`\" pulumi-lang-dotnet=\"`50000`\" pulumi-lang-go=\"`50000`\" pulumi-lang-python=\"`50000`\" pulumi-lang-yaml=\"`50000`\" pulumi-lang-java=\"`50000`\"\u003e`50000`\u003c/span\u003e.\n"},"readonlyReplicas":{"type":"integer","description":"The number of read-only nodes in the replica set instance. Default value: 0. Valid values: 0 to 5.\n"},"replicaSetName":{"type":"string","description":"The name of the mongo replica set.\n"},"replicaSets":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/InstanceReplicaSet:InstanceReplicaSet"},"description":"Replica set instance information.\n"},"replicationFactor":{"type":"integer","description":"Number of replica set nodes. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"restoreTime":{"type":"string","description":"The point in time to which you want to restore the instance. You can specify any point in time within the last seven days. The time must be in the yyyy-MM-ddTHH:mm:ssZ format and in UTC.\n\u003e **NOTE:** You must specify \u003cspan pulumi-lang-nodejs=\"`srcDbInstanceId`\" pulumi-lang-dotnet=\"`SrcDbInstanceId`\" pulumi-lang-go=\"`srcDbInstanceId`\" pulumi-lang-python=\"`src_db_instance_id`\" pulumi-lang-yaml=\"`srcDbInstanceId`\" pulumi-lang-java=\"`srcDbInstanceId`\"\u003e`src_db_instance_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`restoreTime`\" pulumi-lang-dotnet=\"`RestoreTime`\" pulumi-lang-go=\"`restoreTime`\" pulumi-lang-python=\"`restore_time`\" pulumi-lang-yaml=\"`restoreTime`\" pulumi-lang-java=\"`restoreTime`\"\u003e`restore_time`\u003c/span\u003e only when you clone an instance based on a point in time.\n"},"retentionPeriod":{"type":"integer","description":"Instance data backup retention days. Available since v1.42.0.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the specified Resource Access Management (RAM) role.\n"},"secondaryZoneId":{"type":"string","description":"Configure the available area where the slave node (Secondary node) is located to realize multi-available area deployment. **NOTE:** This parameter value cannot be the same as \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`hiddenZoneId`\" pulumi-lang-dotnet=\"`HiddenZoneId`\" pulumi-lang-go=\"`hiddenZoneId`\" pulumi-lang-python=\"`hidden_zone_id`\" pulumi-lang-yaml=\"`hiddenZoneId`\" pulumi-lang-java=\"`hiddenZoneId`\"\u003e`hidden_zone_id`\u003c/span\u003e parameter values. From version 1.253.0, \u003cspan pulumi-lang-nodejs=\"`secondaryZoneId`\" pulumi-lang-dotnet=\"`SecondaryZoneId`\" pulumi-lang-go=\"`secondaryZoneId`\" pulumi-lang-python=\"`secondary_zone_id`\" pulumi-lang-yaml=\"`secondaryZoneId`\" pulumi-lang-java=\"`secondaryZoneId`\"\u003e`secondary_zone_id`\u003c/span\u003e can be modified.\n"},"securityGroupId":{"type":"string","description":"The Security Group ID of ECS.\n"},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"snapshotBackupType":{"type":"string","description":"The snapshot backup type. Default value: `Standard`. Valid values:\n- `Standard`: standard backup.\n- `Flash `: single-digit second backup.\n"},"srcDbInstanceId":{"type":"string","description":"The source instance ID.\n"},"sslAction":{"type":"string","description":"Actions performed on SSL functions. Valid values:\n- `Open`: turn on SSL encryption.\n- `Close`: turn off SSL encryption.\n- `Update`: update SSL certificate.\n\u003e **NOTE:** Once \u003cspan pulumi-lang-nodejs=\"`sslAction`\" pulumi-lang-dotnet=\"`SslAction`\" pulumi-lang-go=\"`sslAction`\" pulumi-lang-python=\"`ssl_action`\" pulumi-lang-yaml=\"`sslAction`\" pulumi-lang-java=\"`sslAction`\"\u003e`ssl_action`\u003c/span\u003e is set, it isn't allowed to be removed from the Terraform code.\n"},"sslStatus":{"type":"string","description":"Status of the SSL feature.\n"},"storageEngine":{"type":"string","description":"The storage engine of the instance. Default value: `WiredTiger`. Valid values: `WiredTiger`, `RocksDB`.\n","willReplaceOnChanges":true},"storageType":{"type":"string","description":"The storage type of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd1`\" pulumi-lang-dotnet=\"`CloudEssd1`\" pulumi-lang-go=\"`cloudEssd1`\" pulumi-lang-python=\"`cloud_essd1`\" pulumi-lang-yaml=\"`cloudEssd1`\" pulumi-lang-java=\"`cloudEssd1`\"\u003e`cloud_essd1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd2`\" pulumi-lang-dotnet=\"`CloudEssd2`\" pulumi-lang-go=\"`cloudEssd2`\" pulumi-lang-python=\"`cloud_essd2`\" pulumi-lang-yaml=\"`cloudEssd2`\" pulumi-lang-java=\"`cloudEssd2`\"\u003e`cloud_essd2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd3`\" pulumi-lang-dotnet=\"`CloudEssd3`\" pulumi-lang-go=\"`cloudEssd3`\" pulumi-lang-python=\"`cloud_essd3`\" pulumi-lang-yaml=\"`cloudEssd3`\" pulumi-lang-java=\"`cloudEssd3`\"\u003e`cloud_essd3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsd`\" pulumi-lang-dotnet=\"`LocalSsd`\" pulumi-lang-go=\"`localSsd`\" pulumi-lang-python=\"`local_ssd`\" pulumi-lang-yaml=\"`localSsd`\" pulumi-lang-java=\"`localSsd`\"\u003e`local_ssd`\u003c/span\u003e. **NOTE:** From version 1.229.0, \u003cspan pulumi-lang-nodejs=\"`storageType`\" pulumi-lang-dotnet=\"`StorageType`\" pulumi-lang-go=\"`storageType`\" pulumi-lang-python=\"`storage_type`\" pulumi-lang-yaml=\"`storageType`\" pulumi-lang-java=\"`storageType`\"\u003e`storage_type`\u003c/span\u003e can be modified. However, \u003cspan pulumi-lang-nodejs=\"`storageType`\" pulumi-lang-dotnet=\"`StorageType`\" pulumi-lang-go=\"`storageType`\" pulumi-lang-python=\"`storage_type`\" pulumi-lang-yaml=\"`storageType`\" pulumi-lang-java=\"`storageType`\"\u003e`storage_type`\u003c/span\u003e can only be modified to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"tdeStatus":{"type":"string","description":"The TDE(Transparent Data Encryption) status. Note: \u003cspan pulumi-lang-nodejs=\"`tdeStatus`\" pulumi-lang-dotnet=\"`TdeStatus`\" pulumi-lang-go=\"`tdeStatus`\" pulumi-lang-python=\"`tde_status`\" pulumi-lang-yaml=\"`tdeStatus`\" pulumi-lang-java=\"`tdeStatus`\"\u003e`tde_status`\u003c/span\u003e cannot be set to \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e after it is enabled, see [Transparent Data Encryption](https://www.alibabacloud.com/help/en/mongodb/user-guide/configure-tde-for-an-apsaradb-for-mongodb-instance) for more details.\n"},"vpcId":{"type":"string","description":"The ID of the VPC. \u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e is set to `VPC`.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the DB instance. it supports multiple zone.\nIf it is a multi-zone and \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified, the vswitch must in one of them.\nThe multiple zone ID can be retrieved by setting \u003cspan pulumi-lang-nodejs=\"`multi`\" pulumi-lang-dotnet=\"`Multi`\" pulumi-lang-go=\"`multi`\" pulumi-lang-python=\"`multi`\" pulumi-lang-yaml=\"`multi`\" pulumi-lang-java=\"`multi`\"\u003e`multi`\u003c/span\u003e to \"true\" in the data source \u003cspan pulumi-lang-nodejs=\"`alicloud.getZones`\" pulumi-lang-dotnet=\"`alicloud.getZones`\" pulumi-lang-go=\"`getZones`\" pulumi-lang-python=\"`get_zones`\" pulumi-lang-yaml=\"`alicloud.getZones`\" pulumi-lang-java=\"`alicloud.getZones`\"\u003e`alicloud.getZones`\u003c/span\u003e.\n","willReplaceOnChanges":true},"zoneInfos":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/InstanceZoneInfo:InstanceZoneInfo"},"description":"(Available since v1.271.0) The information of nodes in the zone.\n"}},"type":"object"}},"alicloud:mongodb/node:Node":{"description":"Provides a Mongodb Node resource.\n\nThe sub-resources of the ShardingInstance, including the cs, shards, and mongos nodes.\n\nFor information about Mongodb Node and how to use it, see [What is Node](https://next.api.alibabacloud.com/document/Dds/2015-12-01/CreateNode).\n\n\u003e **NOTE:** Available since v1.266.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst zoneId = config.get(\"zoneId\") || \"cn-shanghai-b\";\nconst regionId = config.get(\"regionId\") || \"cn-shanghai\";\nconst ipv4Cidr = config.get(\"ipv4Cidr\") || \"10.0.0.0/24\";\nconst _default = new alicloud.vpc.Network(\"default\", {\n    description: \"tf-example\",\n    vpcName: \"tf-vpc-shanghai-b\",\n    cidrBlock: \"10.0.0.0/8\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: _default.id,\n    zoneId: zoneId,\n    cidrBlock: ipv4Cidr,\n    vswitchName: \"tf-shanghai-B\",\n});\nconst defaultShardingInstance = new alicloud.mongodb.ShardingInstance(\"default\", {\n    engineVersion: \"4.2\",\n    vswitchId: defaultSwitch.id,\n    zoneId: zoneId,\n    name: name,\n    storageType: \"cloud_auto\",\n    provisionedIops: 60,\n    configServerLists: [{\n        nodeClass: \"mdb.shard.2x.xlarge.d\",\n        nodeStorage: 40,\n    }],\n    mongoLists: [\n        {\n            nodeClass: \"mdb.shard.2x.xlarge.d\",\n        },\n        {\n            nodeClass: \"mdb.shard.2x.xlarge.d\",\n        },\n    ],\n    shardLists: [\n        {\n            nodeClass: \"mdb.shard.2x.xlarge.d\",\n            nodeStorage: 40,\n        },\n        {\n            nodeClass: \"mdb.shard.2x.xlarge.d\",\n            nodeStorage: 40,\n        },\n    ],\n});\nconst defaultNode = new alicloud.mongodb.Node(\"default\", {\n    accountPassword: \"q1w2e3r4!\",\n    autoPay: true,\n    nodeClass: \"mdb.shard.4x.large.d\",\n    shardDirect: false,\n    businessInfo: \"1234\",\n    nodeStorage: 40,\n    readonlyReplicas: 0,\n    dbInstanceId: defaultShardingInstance.id,\n    nodeType: \"shard\",\n    accountName: \"root\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nzone_id = config.get(\"zoneId\")\nif zone_id is None:\n    zone_id = \"cn-shanghai-b\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-shanghai\"\nipv4_cidr = config.get(\"ipv4Cidr\")\nif ipv4_cidr is None:\n    ipv4_cidr = \"10.0.0.0/24\"\ndefault = alicloud.vpc.Network(\"default\",\n    description=\"tf-example\",\n    vpc_name=\"tf-vpc-shanghai-b\",\n    cidr_block=\"10.0.0.0/8\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default.id,\n    zone_id=zone_id,\n    cidr_block=ipv4_cidr,\n    vswitch_name=\"tf-shanghai-B\")\ndefault_sharding_instance = alicloud.mongodb.ShardingInstance(\"default\",\n    engine_version=\"4.2\",\n    vswitch_id=default_switch.id,\n    zone_id=zone_id,\n    name=name,\n    storage_type=\"cloud_auto\",\n    provisioned_iops=60,\n    config_server_lists=[{\n        \"node_class\": \"mdb.shard.2x.xlarge.d\",\n        \"node_storage\": 40,\n    }],\n    mongo_lists=[\n        {\n            \"node_class\": \"mdb.shard.2x.xlarge.d\",\n        },\n        {\n            \"node_class\": \"mdb.shard.2x.xlarge.d\",\n        },\n    ],\n    shard_lists=[\n        {\n            \"node_class\": \"mdb.shard.2x.xlarge.d\",\n            \"node_storage\": 40,\n        },\n        {\n            \"node_class\": \"mdb.shard.2x.xlarge.d\",\n            \"node_storage\": 40,\n        },\n    ])\ndefault_node = alicloud.mongodb.Node(\"default\",\n    account_password=\"q1w2e3r4!\",\n    auto_pay=True,\n    node_class=\"mdb.shard.4x.large.d\",\n    shard_direct=False,\n    business_info=\"1234\",\n    node_storage=40,\n    readonly_replicas=0,\n    db_instance_id=default_sharding_instance.id,\n    node_type=\"shard\",\n    account_name=\"root\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var zoneId = config.Get(\"zoneId\") ?? \"cn-shanghai-b\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-shanghai\";\n    var ipv4Cidr = config.Get(\"ipv4Cidr\") ?? \"10.0.0.0/24\";\n    var @default = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        Description = \"tf-example\",\n        VpcName = \"tf-vpc-shanghai-b\",\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = @default.Id,\n        ZoneId = zoneId,\n        CidrBlock = ipv4Cidr,\n        VswitchName = \"tf-shanghai-B\",\n    });\n\n    var defaultShardingInstance = new AliCloud.MongoDB.ShardingInstance(\"default\", new()\n    {\n        EngineVersion = \"4.2\",\n        VswitchId = defaultSwitch.Id,\n        ZoneId = zoneId,\n        Name = name,\n        StorageType = \"cloud_auto\",\n        ProvisionedIops = 60,\n        ConfigServerLists = new[]\n        {\n            new AliCloud.MongoDB.Inputs.ShardingInstanceConfigServerListArgs\n            {\n                NodeClass = \"mdb.shard.2x.xlarge.d\",\n                NodeStorage = 40,\n            },\n        },\n        MongoLists = new[]\n        {\n            new AliCloud.MongoDB.Inputs.ShardingInstanceMongoListArgs\n            {\n                NodeClass = \"mdb.shard.2x.xlarge.d\",\n            },\n            new AliCloud.MongoDB.Inputs.ShardingInstanceMongoListArgs\n            {\n                NodeClass = \"mdb.shard.2x.xlarge.d\",\n            },\n        },\n        ShardLists = new[]\n        {\n            new AliCloud.MongoDB.Inputs.ShardingInstanceShardListArgs\n            {\n                NodeClass = \"mdb.shard.2x.xlarge.d\",\n                NodeStorage = 40,\n            },\n            new AliCloud.MongoDB.Inputs.ShardingInstanceShardListArgs\n            {\n                NodeClass = \"mdb.shard.2x.xlarge.d\",\n                NodeStorage = 40,\n            },\n        },\n    });\n\n    var defaultNode = new AliCloud.MongoDB.Node(\"default\", new()\n    {\n        AccountPassword = \"q1w2e3r4!\",\n        AutoPay = true,\n        NodeClass = \"mdb.shard.4x.large.d\",\n        ShardDirect = false,\n        BusinessInfo = \"1234\",\n        NodeStorage = 40,\n        ReadonlyReplicas = 0,\n        DbInstanceId = defaultShardingInstance.Id,\n        NodeType = \"shard\",\n        AccountName = \"root\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tzoneId := \"cn-shanghai-b\"\n\t\tif param := cfg.Get(\"zoneId\"); param != \"\" {\n\t\t\tzoneId = param\n\t\t}\n\t\tregionId := \"cn-shanghai\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\tipv4Cidr := \"10.0.0.0/24\"\n\t\tif param := cfg.Get(\"ipv4Cidr\"); param != \"\" {\n\t\t\tipv4Cidr = param\n\t\t}\n\t\t_default, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(\"tf-example\"),\n\t\t\tVpcName:     pulumi.String(\"tf-vpc-shanghai-b\"),\n\t\t\tCidrBlock:   pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       _default.ID(),\n\t\t\tZoneId:      pulumi.String(zoneId),\n\t\t\tCidrBlock:   pulumi.String(ipv4Cidr),\n\t\t\tVswitchName: pulumi.String(\"tf-shanghai-B\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultShardingInstance, err := mongodb.NewShardingInstance(ctx, \"default\", \u0026mongodb.ShardingInstanceArgs{\n\t\t\tEngineVersion:   pulumi.String(\"4.2\"),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\tZoneId:          pulumi.String(zoneId),\n\t\t\tName:            pulumi.String(name),\n\t\t\tStorageType:     pulumi.String(\"cloud_auto\"),\n\t\t\tProvisionedIops: pulumi.Int(60),\n\t\t\tConfigServerLists: mongodb.ShardingInstanceConfigServerListArray{\n\t\t\t\t\u0026mongodb.ShardingInstanceConfigServerListArgs{\n\t\t\t\t\tNodeClass:   pulumi.String(\"mdb.shard.2x.xlarge.d\"),\n\t\t\t\t\tNodeStorage: pulumi.Int(40),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMongoLists: mongodb.ShardingInstanceMongoListArray{\n\t\t\t\t\u0026mongodb.ShardingInstanceMongoListArgs{\n\t\t\t\t\tNodeClass: pulumi.String(\"mdb.shard.2x.xlarge.d\"),\n\t\t\t\t},\n\t\t\t\t\u0026mongodb.ShardingInstanceMongoListArgs{\n\t\t\t\t\tNodeClass: pulumi.String(\"mdb.shard.2x.xlarge.d\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tShardLists: mongodb.ShardingInstanceShardListArray{\n\t\t\t\t\u0026mongodb.ShardingInstanceShardListArgs{\n\t\t\t\t\tNodeClass:   pulumi.String(\"mdb.shard.2x.xlarge.d\"),\n\t\t\t\t\tNodeStorage: pulumi.Int(40),\n\t\t\t\t},\n\t\t\t\t\u0026mongodb.ShardingInstanceShardListArgs{\n\t\t\t\t\tNodeClass:   pulumi.String(\"mdb.shard.2x.xlarge.d\"),\n\t\t\t\t\tNodeStorage: pulumi.Int(40),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodb.NewNode(ctx, \"default\", \u0026mongodb.NodeArgs{\n\t\t\tAccountPassword:  pulumi.String(\"q1w2e3r4!\"),\n\t\t\tAutoPay:          pulumi.Bool(true),\n\t\t\tNodeClass:        pulumi.String(\"mdb.shard.4x.large.d\"),\n\t\t\tShardDirect:      pulumi.Bool(false),\n\t\t\tBusinessInfo:     pulumi.String(\"1234\"),\n\t\t\tNodeStorage:      pulumi.Int(40),\n\t\t\tReadonlyReplicas: pulumi.Int(0),\n\t\t\tDbInstanceId:     defaultShardingInstance.ID(),\n\t\t\tNodeType:         pulumi.String(\"shard\"),\n\t\t\tAccountName:      pulumi.String(\"root\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mongodb.ShardingInstance;\nimport com.pulumi.alicloud.mongodb.ShardingInstanceArgs;\nimport com.pulumi.alicloud.mongodb.inputs.ShardingInstanceConfigServerListArgs;\nimport com.pulumi.alicloud.mongodb.inputs.ShardingInstanceMongoListArgs;\nimport com.pulumi.alicloud.mongodb.inputs.ShardingInstanceShardListArgs;\nimport com.pulumi.alicloud.mongodb.Node;\nimport com.pulumi.alicloud.mongodb.NodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var zoneId = config.get(\"zoneId\").orElse(\"cn-shanghai-b\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-shanghai\");\n        final var ipv4Cidr = config.get(\"ipv4Cidr\").orElse(\"10.0.0.0/24\");\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .description(\"tf-example\")\n            .vpcName(\"tf-vpc-shanghai-b\")\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(default_.id())\n            .zoneId(zoneId)\n            .cidrBlock(ipv4Cidr)\n            .vswitchName(\"tf-shanghai-B\")\n            .build());\n\n        var defaultShardingInstance = new ShardingInstance(\"defaultShardingInstance\", ShardingInstanceArgs.builder()\n            .engineVersion(\"4.2\")\n            .vswitchId(defaultSwitch.id())\n            .zoneId(zoneId)\n            .name(name)\n            .storageType(\"cloud_auto\")\n            .provisionedIops(60)\n            .configServerLists(ShardingInstanceConfigServerListArgs.builder()\n                .nodeClass(\"mdb.shard.2x.xlarge.d\")\n                .nodeStorage(40)\n                .build())\n            .mongoLists(            \n                ShardingInstanceMongoListArgs.builder()\n                    .nodeClass(\"mdb.shard.2x.xlarge.d\")\n                    .build(),\n                ShardingInstanceMongoListArgs.builder()\n                    .nodeClass(\"mdb.shard.2x.xlarge.d\")\n                    .build())\n            .shardLists(            \n                ShardingInstanceShardListArgs.builder()\n                    .nodeClass(\"mdb.shard.2x.xlarge.d\")\n                    .nodeStorage(40)\n                    .build(),\n                ShardingInstanceShardListArgs.builder()\n                    .nodeClass(\"mdb.shard.2x.xlarge.d\")\n                    .nodeStorage(40)\n                    .build())\n            .build());\n\n        var defaultNode = new Node(\"defaultNode\", NodeArgs.builder()\n            .accountPassword(\"q1w2e3r4!\")\n            .autoPay(true)\n            .nodeClass(\"mdb.shard.4x.large.d\")\n            .shardDirect(false)\n            .businessInfo(\"1234\")\n            .nodeStorage(40)\n            .readonlyReplicas(0)\n            .dbInstanceId(defaultShardingInstance.id())\n            .nodeType(\"shard\")\n            .accountName(\"root\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  zoneId:\n    type: string\n    default: cn-shanghai-b\n  regionId:\n    type: string\n    default: cn-shanghai\n  ipv4Cidr:\n    type: string\n    default: 10.0.0.0/24\nresources:\n  default:\n    type: alicloud:vpc:Network\n    properties:\n      description: tf-example\n      vpcName: tf-vpc-shanghai-b\n      cidrBlock: 10.0.0.0/8\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${default.id}\n      zoneId: ${zoneId}\n      cidrBlock: ${ipv4Cidr}\n      vswitchName: tf-shanghai-B\n  defaultShardingInstance:\n    type: alicloud:mongodb:ShardingInstance\n    name: default\n    properties:\n      engineVersion: '4.2'\n      vswitchId: ${defaultSwitch.id}\n      zoneId: ${zoneId}\n      name: ${name}\n      storageType: cloud_auto\n      provisionedIops: 60\n      configServerLists:\n        - nodeClass: mdb.shard.2x.xlarge.d\n          nodeStorage: 40\n      mongoLists:\n        - nodeClass: mdb.shard.2x.xlarge.d\n        - nodeClass: mdb.shard.2x.xlarge.d\n      shardLists:\n        - nodeClass: mdb.shard.2x.xlarge.d\n          nodeStorage: 40\n        - nodeClass: mdb.shard.2x.xlarge.d\n          nodeStorage: 40\n  defaultNode:\n    type: alicloud:mongodb:Node\n    name: default\n    properties:\n      accountPassword: q1w2e3r4!\n      autoPay: 'true'\n      nodeClass: mdb.shard.4x.large.d\n      shardDirect: 'false'\n      businessInfo: '1234'\n      nodeStorage: '40'\n      readonlyReplicas: '0'\n      dbInstanceId: ${defaultShardingInstance.id}\n      nodeType: shard\n      accountName: root\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMongodb Node can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mongodb/node:Node example \u003cdb_instance_id\u003e:\u003cnode_id\u003e\n```\n\n","properties":{"accountName":{"type":"string","description":"Account name, value description:\n- Begins with a lowercase letter.\n- Consists of lowercase letters, numbers, or underscores (_).\n- 4~16 characters in length.\n\n\u003e **NOTE:** - apsaradb for MongoDB does not support using keywords as accounts.\n- The permissions of the account are fixed to read-only permissions.\n- When applying for a direct connection address of a Shard node for the first time, you need to set an account and password.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"accountPassword":{"type":"string","description":"Account password, value description:\n- Consists of at least three of uppercase letters, lowercase letters, numbers, and special characters.\n- Oh-! @#$%^\u0026 *()_+-= is a special character.\n- Length is 8~32 characters.\n\n\u003e **NOTE:**  apsaradb for MongoDB does not support resetting the account and password of the Shard node.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"autoPay":{"type":"boolean","description":"Whether to pay automatically. Value description:\n"},"businessInfo":{"type":"string","description":"Additional parameters, business information.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"dbInstanceId":{"type":"string","description":"The ID of the sharded cluster instance.\n"},"effectiveTime":{"type":"string","description":"Effective time of configuration change. Value description:\n- `Immediately` (default): takes effect Immediately.\n- `MaintainTime`: takes effect during the O \u0026 M period of the instance.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"fromApp":{"type":"string","description":"Request Source, value description:\n- `OpenApi`: The request source is OpenApi.\n"},"nodeClass":{"type":"string","description":"The specifications of the Shard node or Mongos node. For more information, see Instance Specifications.\n"},"nodeId":{"type":"string","description":"The first ID of the resource\n"},"nodeStorage":{"type":"integer","description":"The disk space of the Node. Unit: GB.\n\nValue range: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e, with a step size of 10GB.\n\n\u003e **NOTE:**  When the node type is `Shard`, you need to configure this parameter.\n"},"nodeType":{"type":"string","description":"Node type, value description:\n"},"orderType":{"type":"string","description":"Order type, value description:\n- `UPGRADE`: UPGRADE.\n- `DOWNGRADE`: downgrading.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"readonlyReplicas":{"type":"integer","description":"The number of read-only nodes in the Shard.\n\nValue range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e (integer). Default value: **0 * *.\n\n\u003e **NOTE:**  This parameter is currently only supported by China Station.\n"},"shardDirect":{"type":"boolean","description":"Whether to apply for the direct connection address of the Shard node. Value description:\n"},"status":{"type":"string","description":"Running status of node in sharded cluster\n"},"switchTime":{"type":"string","description":"The execution time of the change configuration, in the format of  yyyy-MM-dd T  HH:mm:ss Z(UTC time).\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"}},"required":["dbInstanceId","nodeClass","nodeId","nodeType","readonlyReplicas","status"],"inputProperties":{"accountName":{"type":"string","description":"Account name, value description:\n- Begins with a lowercase letter.\n- Consists of lowercase letters, numbers, or underscores (_).\n- 4~16 characters in length.\n\n\u003e **NOTE:** - apsaradb for MongoDB does not support using keywords as accounts.\n- The permissions of the account are fixed to read-only permissions.\n- When applying for a direct connection address of a Shard node for the first time, you need to set an account and password.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"accountPassword":{"type":"string","description":"Account password, value description:\n- Consists of at least three of uppercase letters, lowercase letters, numbers, and special characters.\n- Oh-! @#$%^\u0026 *()_+-= is a special character.\n- Length is 8~32 characters.\n\n\u003e **NOTE:**  apsaradb for MongoDB does not support resetting the account and password of the Shard node.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"autoPay":{"type":"boolean","description":"Whether to pay automatically. Value description:\n"},"businessInfo":{"type":"string","description":"Additional parameters, business information.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"dbInstanceId":{"type":"string","description":"The ID of the sharded cluster instance.\n","willReplaceOnChanges":true},"effectiveTime":{"type":"string","description":"Effective time of configuration change. Value description:\n- `Immediately` (default): takes effect Immediately.\n- `MaintainTime`: takes effect during the O \u0026 M period of the instance.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"fromApp":{"type":"string","description":"Request Source, value description:\n- `OpenApi`: The request source is OpenApi.\n"},"nodeClass":{"type":"string","description":"The specifications of the Shard node or Mongos node. For more information, see Instance Specifications.\n"},"nodeStorage":{"type":"integer","description":"The disk space of the Node. Unit: GB.\n\nValue range: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e, with a step size of 10GB.\n\n\u003e **NOTE:**  When the node type is `Shard`, you need to configure this parameter.\n"},"nodeType":{"type":"string","description":"Node type, value description:\n","willReplaceOnChanges":true},"orderType":{"type":"string","description":"Order type, value description:\n- `UPGRADE`: UPGRADE.\n- `DOWNGRADE`: downgrading.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"readonlyReplicas":{"type":"integer","description":"The number of read-only nodes in the Shard.\n\nValue range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e (integer). Default value: **0 * *.\n\n\u003e **NOTE:**  This parameter is currently only supported by China Station.\n"},"shardDirect":{"type":"boolean","description":"Whether to apply for the direct connection address of the Shard node. Value description:\n"},"switchTime":{"type":"string","description":"The execution time of the change configuration, in the format of  yyyy-MM-dd T  HH:mm:ss Z(UTC time).\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"}},"requiredInputs":["dbInstanceId","nodeClass","nodeType"],"stateInputs":{"description":"Input properties used for looking up and filtering Node resources.\n","properties":{"accountName":{"type":"string","description":"Account name, value description:\n- Begins with a lowercase letter.\n- Consists of lowercase letters, numbers, or underscores (_).\n- 4~16 characters in length.\n\n\u003e **NOTE:** - apsaradb for MongoDB does not support using keywords as accounts.\n- The permissions of the account are fixed to read-only permissions.\n- When applying for a direct connection address of a Shard node for the first time, you need to set an account and password.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"accountPassword":{"type":"string","description":"Account password, value description:\n- Consists of at least three of uppercase letters, lowercase letters, numbers, and special characters.\n- Oh-! @#$%^\u0026 *()_+-= is a special character.\n- Length is 8~32 characters.\n\n\u003e **NOTE:**  apsaradb for MongoDB does not support resetting the account and password of the Shard node.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"autoPay":{"type":"boolean","description":"Whether to pay automatically. Value description:\n"},"businessInfo":{"type":"string","description":"Additional parameters, business information.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"dbInstanceId":{"type":"string","description":"The ID of the sharded cluster instance.\n","willReplaceOnChanges":true},"effectiveTime":{"type":"string","description":"Effective time of configuration change. Value description:\n- `Immediately` (default): takes effect Immediately.\n- `MaintainTime`: takes effect during the O \u0026 M period of the instance.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"fromApp":{"type":"string","description":"Request Source, value description:\n- `OpenApi`: The request source is OpenApi.\n"},"nodeClass":{"type":"string","description":"The specifications of the Shard node or Mongos node. For more information, see Instance Specifications.\n"},"nodeId":{"type":"string","description":"The first ID of the resource\n"},"nodeStorage":{"type":"integer","description":"The disk space of the Node. Unit: GB.\n\nValue range: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e, with a step size of 10GB.\n\n\u003e **NOTE:**  When the node type is `Shard`, you need to configure this parameter.\n"},"nodeType":{"type":"string","description":"Node type, value description:\n","willReplaceOnChanges":true},"orderType":{"type":"string","description":"Order type, value description:\n- `UPGRADE`: UPGRADE.\n- `DOWNGRADE`: downgrading.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"readonlyReplicas":{"type":"integer","description":"The number of read-only nodes in the Shard.\n\nValue range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e (integer). Default value: **0 * *.\n\n\u003e **NOTE:**  This parameter is currently only supported by China Station.\n"},"shardDirect":{"type":"boolean","description":"Whether to apply for the direct connection address of the Shard node. Value description:\n"},"status":{"type":"string","description":"Running status of node in sharded cluster\n"},"switchTime":{"type":"string","description":"The execution time of the change configuration, in the format of  yyyy-MM-dd T  HH:mm:ss Z(UTC time).\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"}},"type":"object"}},"alicloud:mongodb/privateSrvNetworkAddress:PrivateSrvNetworkAddress":{"description":"Provides a Mongodb Private Srv Network Address resource.\n\nPrivate network SRV highly available link address.\n\nFor information about Mongodb Private Srv Network Address and how to use it, see [What is Private Srv Network Address](https://next.api.alibabacloud.com/document/Dds/2015-12-01/AllocateDBInstanceSrvNetworkAddress).\n\n\u003e **NOTE:** Available since v1.240.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst zoneId = config.get(\"zoneId\") || \"cn-shanghai-b\";\nconst regionId = config.get(\"regionId\") || \"cn-shanghai\";\nconst defaultie35CW = new alicloud.vpc.Network(\"defaultie35CW\", {\n    cidrBlock: \"10.0.0.0/8\",\n    vpcName: name,\n});\nconst defaultg0DCAR = new alicloud.vpc.Switch(\"defaultg0DCAR\", {\n    vpcId: defaultie35CW.id,\n    zoneId: zoneId,\n    cidrBlock: \"10.0.0.0/24\",\n});\nconst defaultHrZmxC = new alicloud.mongodb.Instance(\"defaultHrZmxC\", {\n    engineVersion: \"4.4\",\n    storageType: \"cloud_essd1\",\n    vswitchId: defaultg0DCAR.id,\n    dbInstanceStorage: 20,\n    vpcId: defaultie35CW.id,\n    dbInstanceClass: \"mdb.shard.4x.large.d\",\n    storageEngine: \"WiredTiger\",\n    networkType: \"VPC\",\n    zoneId: zoneId,\n});\nconst _default = new alicloud.mongodb.PrivateSrvNetworkAddress(\"default\", {dbInstanceId: defaultHrZmxC.id});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nzone_id = config.get(\"zoneId\")\nif zone_id is None:\n    zone_id = \"cn-shanghai-b\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-shanghai\"\ndefaultie35_cw = alicloud.vpc.Network(\"defaultie35CW\",\n    cidr_block=\"10.0.0.0/8\",\n    vpc_name=name)\ndefaultg0_dcar = alicloud.vpc.Switch(\"defaultg0DCAR\",\n    vpc_id=defaultie35_cw.id,\n    zone_id=zone_id,\n    cidr_block=\"10.0.0.0/24\")\ndefault_hr_zmx_c = alicloud.mongodb.Instance(\"defaultHrZmxC\",\n    engine_version=\"4.4\",\n    storage_type=\"cloud_essd1\",\n    vswitch_id=defaultg0_dcar.id,\n    db_instance_storage=20,\n    vpc_id=defaultie35_cw.id,\n    db_instance_class=\"mdb.shard.4x.large.d\",\n    storage_engine=\"WiredTiger\",\n    network_type=\"VPC\",\n    zone_id=zone_id)\ndefault = alicloud.mongodb.PrivateSrvNetworkAddress(\"default\", db_instance_id=default_hr_zmx_c.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var zoneId = config.Get(\"zoneId\") ?? \"cn-shanghai-b\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-shanghai\";\n    var defaultie35CW = new AliCloud.Vpc.Network(\"defaultie35CW\", new()\n    {\n        CidrBlock = \"10.0.0.0/8\",\n        VpcName = name,\n    });\n\n    var defaultg0DCAR = new AliCloud.Vpc.Switch(\"defaultg0DCAR\", new()\n    {\n        VpcId = defaultie35CW.Id,\n        ZoneId = zoneId,\n        CidrBlock = \"10.0.0.0/24\",\n    });\n\n    var defaultHrZmxC = new AliCloud.MongoDB.Instance(\"defaultHrZmxC\", new()\n    {\n        EngineVersion = \"4.4\",\n        StorageType = \"cloud_essd1\",\n        VswitchId = defaultg0DCAR.Id,\n        DbInstanceStorage = 20,\n        VpcId = defaultie35CW.Id,\n        DbInstanceClass = \"mdb.shard.4x.large.d\",\n        StorageEngine = \"WiredTiger\",\n        NetworkType = \"VPC\",\n        ZoneId = zoneId,\n    });\n\n    var @default = new AliCloud.MongoDB.PrivateSrvNetworkAddress(\"default\", new()\n    {\n        DbInstanceId = defaultHrZmxC.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tzoneId := \"cn-shanghai-b\"\n\t\tif param := cfg.Get(\"zoneId\"); param != \"\" {\n\t\t\tzoneId = param\n\t\t}\n\t\tregionId := \"cn-shanghai\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\tdefaultie35CW, err := vpc.NewNetwork(ctx, \"defaultie35CW\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultg0DCAR, err := vpc.NewSwitch(ctx, \"defaultg0DCAR\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultie35CW.ID(),\n\t\t\tZoneId:    pulumi.String(zoneId),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHrZmxC, err := mongodb.NewInstance(ctx, \"defaultHrZmxC\", \u0026mongodb.InstanceArgs{\n\t\t\tEngineVersion:     pulumi.String(\"4.4\"),\n\t\t\tStorageType:       pulumi.String(\"cloud_essd1\"),\n\t\t\tVswitchId:         defaultg0DCAR.ID(),\n\t\t\tDbInstanceStorage: pulumi.Int(20),\n\t\t\tVpcId:             defaultie35CW.ID(),\n\t\t\tDbInstanceClass:   pulumi.String(\"mdb.shard.4x.large.d\"),\n\t\t\tStorageEngine:     pulumi.String(\"WiredTiger\"),\n\t\t\tNetworkType:       pulumi.String(\"VPC\"),\n\t\t\tZoneId:            pulumi.String(zoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodb.NewPrivateSrvNetworkAddress(ctx, \"default\", \u0026mongodb.PrivateSrvNetworkAddressArgs{\n\t\t\tDbInstanceId: defaultHrZmxC.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mongodb.Instance;\nimport com.pulumi.alicloud.mongodb.InstanceArgs;\nimport com.pulumi.alicloud.mongodb.PrivateSrvNetworkAddress;\nimport com.pulumi.alicloud.mongodb.PrivateSrvNetworkAddressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var zoneId = config.get(\"zoneId\").orElse(\"cn-shanghai-b\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-shanghai\");\n        var defaultie35CW = new Network(\"defaultie35CW\", NetworkArgs.builder()\n            .cidrBlock(\"10.0.0.0/8\")\n            .vpcName(name)\n            .build());\n\n        var defaultg0DCAR = new Switch(\"defaultg0DCAR\", SwitchArgs.builder()\n            .vpcId(defaultie35CW.id())\n            .zoneId(zoneId)\n            .cidrBlock(\"10.0.0.0/24\")\n            .build());\n\n        var defaultHrZmxC = new Instance(\"defaultHrZmxC\", InstanceArgs.builder()\n            .engineVersion(\"4.4\")\n            .storageType(\"cloud_essd1\")\n            .vswitchId(defaultg0DCAR.id())\n            .dbInstanceStorage(20)\n            .vpcId(defaultie35CW.id())\n            .dbInstanceClass(\"mdb.shard.4x.large.d\")\n            .storageEngine(\"WiredTiger\")\n            .networkType(\"VPC\")\n            .zoneId(zoneId)\n            .build());\n\n        var default_ = new PrivateSrvNetworkAddress(\"default\", PrivateSrvNetworkAddressArgs.builder()\n            .dbInstanceId(defaultHrZmxC.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  zoneId:\n    type: string\n    default: cn-shanghai-b\n  regionId:\n    type: string\n    default: cn-shanghai\nresources:\n  defaultie35CW:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 10.0.0.0/8\n      vpcName: ${name}\n  defaultg0DCAR:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultie35CW.id}\n      zoneId: ${zoneId}\n      cidrBlock: 10.0.0.0/24\n  defaultHrZmxC:\n    type: alicloud:mongodb:Instance\n    properties:\n      engineVersion: '4.4'\n      storageType: cloud_essd1\n      vswitchId: ${defaultg0DCAR.id}\n      dbInstanceStorage: '20'\n      vpcId: ${defaultie35CW.id}\n      dbInstanceClass: mdb.shard.4x.large.d\n      storageEngine: WiredTiger\n      networkType: VPC\n      zoneId: ${zoneId}\n  default:\n    type: alicloud:mongodb:PrivateSrvNetworkAddress\n    properties:\n      dbInstanceId: ${defaultHrZmxC.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMongodb Private Srv Network Address can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mongodb/privateSrvNetworkAddress:PrivateSrvNetworkAddress example \u003cid\u003e\n```\n\n","properties":{"dbInstanceId":{"type":"string","description":"The instance ID.\n"},"privateSrvConnectionStringUri":{"type":"string","description":"Private network SRV highly available connection address\n"}},"required":["dbInstanceId","privateSrvConnectionStringUri"],"inputProperties":{"dbInstanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true}},"requiredInputs":["dbInstanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivateSrvNetworkAddress resources.\n","properties":{"dbInstanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"privateSrvConnectionStringUri":{"type":"string","description":"Private network SRV highly available connection address\n"}},"type":"object"}},"alicloud:mongodb/publicNetworkAddress:PublicNetworkAddress":{"description":"Provides an Alicloud MongoDB public network address resource.\n\nFor information about MongoDB public network address and how to use it, see [Allocate Public Network Address for MongoDB](https://www.alibabacloud.com/help/en/mongodb/getting-started/apply-for-a-public-endpoint-for-an-apsaradb-for-mongodb-instance-optional).\n\n\u003e **NOTE:** Available since v1.248.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.mongodb.getZones({});\nconst index = _default.then(_default =\u003e _default.zones).length.apply(length =\u003e length - 1);\nconst zoneId = _default.then(_default =\u003e _default.zones[index].id);\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    cidrBlock: \"10.0.0.0/8\",\n    vpcName: name,\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    zoneId: zoneId,\n    cidrBlock: \"10.0.0.0/24\",\n});\nconst defaultInstance = new alicloud.mongodb.Instance(\"default\", {\n    engineVersion: \"4.4\",\n    storageType: \"cloud_essd1\",\n    vswitchId: defaultSwitch.id,\n    dbInstanceStorage: 20,\n    vpcId: defaultNetwork.id,\n    dbInstanceClass: \"mdb.shard.4x.large.d\",\n    storageEngine: \"WiredTiger\",\n    networkType: \"VPC\",\n    zoneId: zoneId,\n});\nconst defaultPublicNetworkAddress = new alicloud.mongodb.PublicNetworkAddress(\"default\", {dbInstanceId: defaultInstance.id});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.mongodb.get_zones()\nindex = len(default.zones).apply(lambda length: length - 1)\nzone_id = default.zones[index].id\ndefault_network = alicloud.vpc.Network(\"default\",\n    cidr_block=\"10.0.0.0/8\",\n    vpc_name=name)\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    zone_id=zone_id,\n    cidr_block=\"10.0.0.0/24\")\ndefault_instance = alicloud.mongodb.Instance(\"default\",\n    engine_version=\"4.4\",\n    storage_type=\"cloud_essd1\",\n    vswitch_id=default_switch.id,\n    db_instance_storage=20,\n    vpc_id=default_network.id,\n    db_instance_class=\"mdb.shard.4x.large.d\",\n    storage_engine=\"WiredTiger\",\n    network_type=\"VPC\",\n    zone_id=zone_id)\ndefault_public_network_address = alicloud.mongodb.PublicNetworkAddress(\"default\", db_instance_id=default_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.MongoDB.GetZones.Invoke();\n\n    var index = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)).Length.Apply(length =\u003e length - 1);\n\n    var zoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[index].Id);\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        CidrBlock = \"10.0.0.0/8\",\n        VpcName = name,\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        ZoneId = zoneId,\n        CidrBlock = \"10.0.0.0/24\",\n    });\n\n    var defaultInstance = new AliCloud.MongoDB.Instance(\"default\", new()\n    {\n        EngineVersion = \"4.4\",\n        StorageType = \"cloud_essd1\",\n        VswitchId = defaultSwitch.Id,\n        DbInstanceStorage = 20,\n        VpcId = defaultNetwork.Id,\n        DbInstanceClass = \"mdb.shard.4x.large.d\",\n        StorageEngine = \"WiredTiger\",\n        NetworkType = \"VPC\",\n        ZoneId = zoneId,\n    });\n\n    var defaultPublicNetworkAddress = new AliCloud.MongoDB.PublicNetworkAddress(\"default\", new()\n    {\n        DbInstanceId = defaultInstance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := mongodb.GetZones(ctx, \u0026mongodb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tindex := len(_default.Zones).ApplyT(func(length int) (float64, error) {\n\t\t\treturn float64(length.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\treturn __convert - 1, nil\n\t\t\t}).(pulumi.Float64Output)), nil\n\t\t}).(pulumi.Float64Output)\n\t\tzoneId := _default.Zones[index].Id\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultNetwork.ID(),\n\t\t\tZoneId:    pulumi.String(zoneId),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := mongodb.NewInstance(ctx, \"default\", \u0026mongodb.InstanceArgs{\n\t\t\tEngineVersion:     pulumi.String(\"4.4\"),\n\t\t\tStorageType:       pulumi.String(\"cloud_essd1\"),\n\t\t\tVswitchId:         defaultSwitch.ID(),\n\t\t\tDbInstanceStorage: pulumi.Int(20),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t\tDbInstanceClass:   pulumi.String(\"mdb.shard.4x.large.d\"),\n\t\t\tStorageEngine:     pulumi.String(\"WiredTiger\"),\n\t\t\tNetworkType:       pulumi.String(\"VPC\"),\n\t\t\tZoneId:            pulumi.String(zoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodb.NewPublicNetworkAddress(ctx, \"default\", \u0026mongodb.PublicNetworkAddressArgs{\n\t\t\tDbInstanceId: defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.MongodbFunctions;\nimport com.pulumi.alicloud.mongodb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mongodb.Instance;\nimport com.pulumi.alicloud.mongodb.InstanceArgs;\nimport com.pulumi.alicloud.mongodb.PublicNetworkAddress;\nimport com.pulumi.alicloud.mongodb.PublicNetworkAddressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = MongodbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var index = default_.zones().length().applyValue(_length -\u003e _length - 1);\n\n        final var zoneId = default_.zones()[index].id();\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .cidrBlock(\"10.0.0.0/8\")\n            .vpcName(name)\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .zoneId(zoneId)\n            .cidrBlock(\"10.0.0.0/24\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engineVersion(\"4.4\")\n            .storageType(\"cloud_essd1\")\n            .vswitchId(defaultSwitch.id())\n            .dbInstanceStorage(20)\n            .vpcId(defaultNetwork.id())\n            .dbInstanceClass(\"mdb.shard.4x.large.d\")\n            .storageEngine(\"WiredTiger\")\n            .networkType(\"VPC\")\n            .zoneId(zoneId)\n            .build());\n\n        var defaultPublicNetworkAddress = new PublicNetworkAddress(\"defaultPublicNetworkAddress\", PublicNetworkAddressArgs.builder()\n            .dbInstanceId(defaultInstance.id())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMongoDB public network address can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mongodb/publicNetworkAddress:PublicNetworkAddress example \u003cid\u003e\n```\n\n","properties":{"dbInstanceId":{"type":"string","description":"The instance ID.\n"},"replicaSets":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/PublicNetworkAddressReplicaSet:PublicNetworkAddressReplicaSet"},"description":"Replica set instance information.\n"}},"required":["dbInstanceId","replicaSets"],"inputProperties":{"dbInstanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true}},"requiredInputs":["dbInstanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering PublicNetworkAddress resources.\n","properties":{"dbInstanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"replicaSets":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/PublicNetworkAddressReplicaSet:PublicNetworkAddressReplicaSet"},"description":"Replica set instance information.\n"}},"type":"object"}},"alicloud:mongodb/replicaSetRole:ReplicaSetRole":{"description":"Provides an Alicloud MongoDB replica set role resource to modify the connection string of the replica set.\n\nFor information about how to modify connection string of MongoDB, see [Modify Connection String](https://alibabacloud.com/help/en/mongodb/user-guide/change-the-endpoint-and-port-of-an-instance).\n\n\u003e **NOTE:** Available since v1.248.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.mongodb.getZones({});\nconst index = _default.then(_default =\u003e _default.zones).length.apply(length =\u003e length - 1);\nconst zoneId = _default.then(_default =\u003e _default.zones[index].id);\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    cidrBlock: \"10.0.0.0/8\",\n    vpcName: name,\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    zoneId: zoneId,\n    cidrBlock: \"10.0.0.0/24\",\n});\nconst defaultInstance = new alicloud.mongodb.Instance(\"default\", {\n    engineVersion: \"4.4\",\n    storageType: \"cloud_essd1\",\n    vswitchId: defaultSwitch.id,\n    dbInstanceStorage: 20,\n    vpcId: defaultNetwork.id,\n    dbInstanceClass: \"mdb.shard.4x.large.d\",\n    storageEngine: \"WiredTiger\",\n    networkType: \"VPC\",\n    zoneId: zoneId,\n});\nconst defaultPublicNetworkAddress = new alicloud.mongodb.PublicNetworkAddress(\"default\", {dbInstanceId: defaultInstance.id});\n// modify private network address.\nconst _private = new alicloud.mongodb.ReplicaSetRole(\"private\", {\n    dbInstanceId: defaultInstance.id,\n    roleId: defaultInstance.replicaSets.apply(replicaSets =\u003e replicaSets[0].roleId),\n    connectionPrefix: \"test-tf-private-change\",\n    connectionPort: 3718,\n    networkType: \"VPC\",\n});\n// modify public network address.\nconst _public = new alicloud.mongodb.ReplicaSetRole(\"public\", {\n    dbInstanceId: defaultInstance.id,\n    roleId: defaultPublicNetworkAddress.replicaSets.apply(replicaSets =\u003e replicaSets[0].roleId),\n    connectionPrefix: \"test-tf-public-0\",\n    connectionPort: 3719,\n    networkType: \"Public\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.mongodb.get_zones()\nindex = len(default.zones).apply(lambda length: length - 1)\nzone_id = default.zones[index].id\ndefault_network = alicloud.vpc.Network(\"default\",\n    cidr_block=\"10.0.0.0/8\",\n    vpc_name=name)\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    zone_id=zone_id,\n    cidr_block=\"10.0.0.0/24\")\ndefault_instance = alicloud.mongodb.Instance(\"default\",\n    engine_version=\"4.4\",\n    storage_type=\"cloud_essd1\",\n    vswitch_id=default_switch.id,\n    db_instance_storage=20,\n    vpc_id=default_network.id,\n    db_instance_class=\"mdb.shard.4x.large.d\",\n    storage_engine=\"WiredTiger\",\n    network_type=\"VPC\",\n    zone_id=zone_id)\ndefault_public_network_address = alicloud.mongodb.PublicNetworkAddress(\"default\", db_instance_id=default_instance.id)\n# modify private network address.\nprivate = alicloud.mongodb.ReplicaSetRole(\"private\",\n    db_instance_id=default_instance.id,\n    role_id=default_instance.replica_sets[0].role_id,\n    connection_prefix=\"test-tf-private-change\",\n    connection_port=3718,\n    network_type=\"VPC\")\n# modify public network address.\npublic = alicloud.mongodb.ReplicaSetRole(\"public\",\n    db_instance_id=default_instance.id,\n    role_id=default_public_network_address.replica_sets[0].role_id,\n    connection_prefix=\"test-tf-public-0\",\n    connection_port=3719,\n    network_type=\"Public\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.MongoDB.GetZones.Invoke();\n\n    var index = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)).Length.Apply(length =\u003e length - 1);\n\n    var zoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[index].Id);\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        CidrBlock = \"10.0.0.0/8\",\n        VpcName = name,\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        ZoneId = zoneId,\n        CidrBlock = \"10.0.0.0/24\",\n    });\n\n    var defaultInstance = new AliCloud.MongoDB.Instance(\"default\", new()\n    {\n        EngineVersion = \"4.4\",\n        StorageType = \"cloud_essd1\",\n        VswitchId = defaultSwitch.Id,\n        DbInstanceStorage = 20,\n        VpcId = defaultNetwork.Id,\n        DbInstanceClass = \"mdb.shard.4x.large.d\",\n        StorageEngine = \"WiredTiger\",\n        NetworkType = \"VPC\",\n        ZoneId = zoneId,\n    });\n\n    var defaultPublicNetworkAddress = new AliCloud.MongoDB.PublicNetworkAddress(\"default\", new()\n    {\n        DbInstanceId = defaultInstance.Id,\n    });\n\n    // modify private network address.\n    var @private = new AliCloud.MongoDB.ReplicaSetRole(\"private\", new()\n    {\n        DbInstanceId = defaultInstance.Id,\n        RoleId = defaultInstance.ReplicaSets.Apply(replicaSets =\u003e replicaSets[0].RoleId),\n        ConnectionPrefix = \"test-tf-private-change\",\n        ConnectionPort = 3718,\n        NetworkType = \"VPC\",\n    });\n\n    // modify public network address.\n    var @public = new AliCloud.MongoDB.ReplicaSetRole(\"public\", new()\n    {\n        DbInstanceId = defaultInstance.Id,\n        RoleId = defaultPublicNetworkAddress.ReplicaSets.Apply(replicaSets =\u003e replicaSets[0].RoleId),\n        ConnectionPrefix = \"test-tf-public-0\",\n        ConnectionPort = 3719,\n        NetworkType = \"Public\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := mongodb.GetZones(ctx, \u0026mongodb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tindex := len(_default.Zones).ApplyT(func(length int) (float64, error) {\n\t\t\treturn float64(length.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\treturn __convert - 1, nil\n\t\t\t}).(pulumi.Float64Output)), nil\n\t\t}).(pulumi.Float64Output)\n\t\tzoneId := _default.Zones[index].Id\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultNetwork.ID(),\n\t\t\tZoneId:    pulumi.String(zoneId),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := mongodb.NewInstance(ctx, \"default\", \u0026mongodb.InstanceArgs{\n\t\t\tEngineVersion:     pulumi.String(\"4.4\"),\n\t\t\tStorageType:       pulumi.String(\"cloud_essd1\"),\n\t\t\tVswitchId:         defaultSwitch.ID(),\n\t\t\tDbInstanceStorage: pulumi.Int(20),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t\tDbInstanceClass:   pulumi.String(\"mdb.shard.4x.large.d\"),\n\t\t\tStorageEngine:     pulumi.String(\"WiredTiger\"),\n\t\t\tNetworkType:       pulumi.String(\"VPC\"),\n\t\t\tZoneId:            pulumi.String(zoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultPublicNetworkAddress, err := mongodb.NewPublicNetworkAddress(ctx, \"default\", \u0026mongodb.PublicNetworkAddressArgs{\n\t\t\tDbInstanceId: defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// modify private network address.\n\t\t_, err = mongodb.NewReplicaSetRole(ctx, \"private\", \u0026mongodb.ReplicaSetRoleArgs{\n\t\t\tDbInstanceId: defaultInstance.ID(),\n\t\t\tRoleId: pulumi.String(defaultInstance.ReplicaSets.ApplyT(func(replicaSets []mongodb.InstanceReplicaSet) (*string, error) {\n\t\t\t\treturn \u0026replicaSets[0].RoleId, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tConnectionPrefix: pulumi.String(\"test-tf-private-change\"),\n\t\t\tConnectionPort:   pulumi.Int(3718),\n\t\t\tNetworkType:      pulumi.String(\"VPC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// modify public network address.\n\t\t_, err = mongodb.NewReplicaSetRole(ctx, \"public\", \u0026mongodb.ReplicaSetRoleArgs{\n\t\t\tDbInstanceId: defaultInstance.ID(),\n\t\t\tRoleId: pulumi.String(defaultPublicNetworkAddress.ReplicaSets.ApplyT(func(replicaSets []mongodb.PublicNetworkAddressReplicaSet) (*string, error) {\n\t\t\t\treturn \u0026replicaSets[0].RoleId, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tConnectionPrefix: pulumi.String(\"test-tf-public-0\"),\n\t\t\tConnectionPort:   pulumi.Int(3719),\n\t\t\tNetworkType:      pulumi.String(\"Public\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.MongodbFunctions;\nimport com.pulumi.alicloud.mongodb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mongodb.Instance;\nimport com.pulumi.alicloud.mongodb.InstanceArgs;\nimport com.pulumi.alicloud.mongodb.PublicNetworkAddress;\nimport com.pulumi.alicloud.mongodb.PublicNetworkAddressArgs;\nimport com.pulumi.alicloud.mongodb.ReplicaSetRole;\nimport com.pulumi.alicloud.mongodb.ReplicaSetRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = MongodbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var index = default_.zones().length().applyValue(_length -\u003e _length - 1);\n\n        final var zoneId = default_.zones()[index].id();\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .cidrBlock(\"10.0.0.0/8\")\n            .vpcName(name)\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .zoneId(zoneId)\n            .cidrBlock(\"10.0.0.0/24\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engineVersion(\"4.4\")\n            .storageType(\"cloud_essd1\")\n            .vswitchId(defaultSwitch.id())\n            .dbInstanceStorage(20)\n            .vpcId(defaultNetwork.id())\n            .dbInstanceClass(\"mdb.shard.4x.large.d\")\n            .storageEngine(\"WiredTiger\")\n            .networkType(\"VPC\")\n            .zoneId(zoneId)\n            .build());\n\n        var defaultPublicNetworkAddress = new PublicNetworkAddress(\"defaultPublicNetworkAddress\", PublicNetworkAddressArgs.builder()\n            .dbInstanceId(defaultInstance.id())\n            .build());\n\n        // modify private network address.\n        var private_ = new ReplicaSetRole(\"private\", ReplicaSetRoleArgs.builder()\n            .dbInstanceId(defaultInstance.id())\n            .roleId(defaultInstance.replicaSets().applyValue(_replicaSets -\u003e _replicaSets[0].roleId()))\n            .connectionPrefix(\"test-tf-private-change\")\n            .connectionPort(3718)\n            .networkType(\"VPC\")\n            .build());\n\n        // modify public network address.\n        var public_ = new ReplicaSetRole(\"public\", ReplicaSetRoleArgs.builder()\n            .dbInstanceId(defaultInstance.id())\n            .roleId(defaultPublicNetworkAddress.replicaSets().applyValue(_replicaSets -\u003e _replicaSets[0].roleId()))\n            .connectionPrefix(\"test-tf-public-0\")\n            .connectionPort(3719)\n            .networkType(\"Public\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMongoDB replica set role can be imported using the id, e.g. Composed of instance ID, network type and role ID with format `\u003cdb_instance_id\u003e:\u003cnetwork_type\u003e:\u003crole_id\u003e`.\n\n```sh\n$ pulumi import alicloud:mongodb/replicaSetRole:ReplicaSetRole example \u003cid\u003e\n```\n\n","properties":{"connectionDomain":{"type":"string","description":"The connection address of the role.\n"},"connectionPort":{"type":"integer","description":"The port of the connection string, will be computed if not specified.`\n"},"connectionPrefix":{"type":"string","description":"The prefix of the connection string, will be computed if not specified.\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n"},"networkType":{"type":"string","description":"The network type of the connection string. Valid values:\n- `VPC`: private network address.\n- `Public`: public network address.\n"},"replicaSetRole":{"type":"string","description":"The role of the related connection string.\n","language":{"csharp":{"name":"ReplicaSetRoleOfRelatedConnectionString"}}},"roleId":{"type":"string","description":"The role ID in the replica set.\n"}},"required":["connectionDomain","connectionPort","connectionPrefix","dbInstanceId","networkType","replicaSetRole","roleId"],"inputProperties":{"connectionPort":{"type":"integer","description":"The port of the connection string, will be computed if not specified.`\n"},"connectionPrefix":{"type":"string","description":"The prefix of the connection string, will be computed if not specified.\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"networkType":{"type":"string","description":"The network type of the connection string. Valid values:\n- `VPC`: private network address.\n- `Public`: public network address.\n","willReplaceOnChanges":true},"roleId":{"type":"string","description":"The role ID in the replica set.\n","willReplaceOnChanges":true}},"requiredInputs":["dbInstanceId","networkType","roleId"],"stateInputs":{"description":"Input properties used for looking up and filtering ReplicaSetRole resources.\n","properties":{"connectionDomain":{"type":"string","description":"The connection address of the role.\n"},"connectionPort":{"type":"integer","description":"The port of the connection string, will be computed if not specified.`\n"},"connectionPrefix":{"type":"string","description":"The prefix of the connection string, will be computed if not specified.\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"networkType":{"type":"string","description":"The network type of the connection string. Valid values:\n- `VPC`: private network address.\n- `Public`: public network address.\n","willReplaceOnChanges":true},"replicaSetRole":{"type":"string","description":"The role of the related connection string.\n","language":{"csharp":{"name":"ReplicaSetRoleOfRelatedConnectionString"}}},"roleId":{"type":"string","description":"The role ID in the replica set.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:mongodb/serverlessInstance:ServerlessInstance":{"description":"Provides a MongoDB Serverless Instance resource.\n\nFor information about MongoDB Serverless Instance and how to use it, see [What is Serverless Instance](https://www.alibabacloud.com/help/doc-detail/26558.html).\n\n\u003e **NOTE:** Deprecated since v1.214.0.\n\n\u003e **DEPRECATED:**  This resource has been deprecated from version `1.214.0`.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.mongodb.getZones({});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"default-NODELETING\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst example = new alicloud.mongodb.ServerlessInstance(\"example\", {\n    accountPassword: \"Abc12345\",\n    dbInstanceDescription: \"example_value\",\n    dbInstanceStorage: 5,\n    storageEngine: \"WiredTiger\",\n    capacityUnit: 100,\n    engine: \"MongoDB\",\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    engineVersion: \"4.2\",\n    period: 1,\n    periodPriceType: \"Month\",\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    tags: {\n        Created: \"MongodbServerlessInstance\",\n        For: \"TF\",\n    },\n    securityIpGroups: [{\n        securityIpGroupAttribute: \"example_value\",\n        securityIpGroupName: \"example_value\",\n        securityIpList: \"192.168.0.1\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.mongodb.get_zones()\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"default-NODELETING\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\nexample = alicloud.mongodb.ServerlessInstance(\"example\",\n    account_password=\"Abc12345\",\n    db_instance_description=\"example_value\",\n    db_instance_storage=5,\n    storage_engine=\"WiredTiger\",\n    capacity_unit=100,\n    engine=\"MongoDB\",\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    engine_version=\"4.2\",\n    period=1,\n    period_price_type=\"Month\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id,\n    vswitch_id=default_get_switches.ids[0],\n    tags={\n        \"Created\": \"MongodbServerlessInstance\",\n        \"For\": \"TF\",\n    },\n    security_ip_groups=[{\n        \"security_ip_group_attribute\": \"example_value\",\n        \"security_ip_group_name\": \"example_value\",\n        \"security_ip_list\": \"192.168.0.1\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.MongoDB.GetZones.Invoke();\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"default-NODELETING\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var example = new AliCloud.MongoDB.ServerlessInstance(\"example\", new()\n    {\n        AccountPassword = \"Abc12345\",\n        DbInstanceDescription = \"example_value\",\n        DbInstanceStorage = 5,\n        StorageEngine = \"WiredTiger\",\n        CapacityUnit = 100,\n        Engine = \"MongoDB\",\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        EngineVersion = \"4.2\",\n        Period = 1,\n        PeriodPriceType = \"Month\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        Tags = \n        {\n            { \"Created\", \"MongodbServerlessInstance\" },\n            { \"For\", \"TF\" },\n        },\n        SecurityIpGroups = new[]\n        {\n            new AliCloud.MongoDB.Inputs.ServerlessInstanceSecurityIpGroupArgs\n            {\n                SecurityIpGroupAttribute = \"example_value\",\n                SecurityIpGroupName = \"example_value\",\n                SecurityIpList = \"192.168.0.1\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := mongodb.GetZones(ctx, \u0026mongodb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"default-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodb.NewServerlessInstance(ctx, \"example\", \u0026mongodb.ServerlessInstanceArgs{\n\t\t\tAccountPassword:       pulumi.String(\"Abc12345\"),\n\t\t\tDbInstanceDescription: pulumi.String(\"example_value\"),\n\t\t\tDbInstanceStorage:     pulumi.Int(5),\n\t\t\tStorageEngine:         pulumi.String(\"WiredTiger\"),\n\t\t\tCapacityUnit:          pulumi.Int(100),\n\t\t\tEngine:                pulumi.String(\"MongoDB\"),\n\t\t\tResourceGroupId:       pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tEngineVersion:         pulumi.String(\"4.2\"),\n\t\t\tPeriod:                pulumi.Int(1),\n\t\t\tPeriodPriceType:       pulumi.String(\"Month\"),\n\t\t\tVpcId:                 pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:                pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchId:             pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"MongodbServerlessInstance\"),\n\t\t\t\t\"For\":     pulumi.String(\"TF\"),\n\t\t\t},\n\t\t\tSecurityIpGroups: mongodb.ServerlessInstanceSecurityIpGroupArray{\n\t\t\t\t\u0026mongodb.ServerlessInstanceSecurityIpGroupArgs{\n\t\t\t\t\tSecurityIpGroupAttribute: pulumi.String(\"example_value\"),\n\t\t\t\t\tSecurityIpGroupName:      pulumi.String(\"example_value\"),\n\t\t\t\t\tSecurityIpList:           pulumi.String(\"192.168.0.1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.MongodbFunctions;\nimport com.pulumi.alicloud.mongodb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.mongodb.ServerlessInstance;\nimport com.pulumi.alicloud.mongodb.ServerlessInstanceArgs;\nimport com.pulumi.alicloud.mongodb.inputs.ServerlessInstanceSecurityIpGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = MongodbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"default-NODELETING\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var example = new ServerlessInstance(\"example\", ServerlessInstanceArgs.builder()\n            .accountPassword(\"Abc12345\")\n            .dbInstanceDescription(\"example_value\")\n            .dbInstanceStorage(5)\n            .storageEngine(\"WiredTiger\")\n            .capacityUnit(100)\n            .engine(\"MongoDB\")\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .engineVersion(\"4.2\")\n            .period(1)\n            .periodPriceType(\"Month\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"MongodbServerlessInstance\"),\n                Map.entry(\"For\", \"TF\")\n            ))\n            .securityIpGroups(ServerlessInstanceSecurityIpGroupArgs.builder()\n                .securityIpGroupAttribute(\"example_value\")\n                .securityIpGroupName(\"example_value\")\n                .securityIpList(\"192.168.0.1\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:mongodb:ServerlessInstance\n    properties:\n      accountPassword: Abc12345\n      dbInstanceDescription: example_value\n      dbInstanceStorage: 5\n      storageEngine: WiredTiger\n      capacityUnit: 100\n      engine: MongoDB\n      resourceGroupId: ${defaultGetResourceGroups.groups[0].id}\n      engineVersion: '4.2'\n      period: 1\n      periodPriceType: Month\n      vpcId: ${defaultGetNetworks.ids[0]}\n      zoneId: ${default.zones[0].id}\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      tags:\n        Created: MongodbServerlessInstance\n        For: TF\n      securityIpGroups:\n        - securityIpGroupAttribute: example_value\n          securityIpGroupName: example_value\n          securityIpList: 192.168.0.1\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:mongodb:getZones\n      arguments: {}\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: default-NODELETING\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMongoDB Serverless Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mongodb/serverlessInstance:ServerlessInstance example \u003cid\u003e\n```\n\n","properties":{"accountPassword":{"type":"string","description":"The password of the database logon account.\n* The password length is \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e bits.\n* The password consists of at least any three of uppercase letters, lowercase letters, numbers, and special characters. The special character is `!#$%^\u0026*()_+-=`. The MongoDB Serverless instance provides a default database login account. This account cannot be modified. You can only set or modify the password for this account.\n","secret":true},"autoRenew":{"type":"boolean","description":"Set whether the instance is automatically renewed.\n"},"capacityUnit":{"type":"integer","description":"The I/O throughput consumed by the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`8000`\" pulumi-lang-dotnet=\"`8000`\" pulumi-lang-go=\"`8000`\" pulumi-lang-python=\"`8000`\" pulumi-lang-yaml=\"`8000`\" pulumi-lang-java=\"`8000`\"\u003e`8000`\u003c/span\u003e.\n"},"dbInstanceDescription":{"type":"string","description":"The db instance description.\n"},"dbInstanceStorage":{"type":"integer","description":"The db instance storage. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"engine":{"type":"string","description":"The database engine of the instance. Valid values: `MongoDB`.\n"},"engineVersion":{"type":"string","description":"The database version number. Valid values: `4.2`.\n"},"maintainEndTime":{"type":"string","description":"The end time of the maintenance window. Specify the time in the `HH:mmZ` format. The time must be in UTC. **NOTE:** The difference between the start time and end time must be one hour. For example, if \u003cspan pulumi-lang-nodejs=\"`maintainStartTime`\" pulumi-lang-dotnet=\"`MaintainStartTime`\" pulumi-lang-go=\"`maintainStartTime`\" pulumi-lang-python=\"`maintain_start_time`\" pulumi-lang-yaml=\"`maintainStartTime`\" pulumi-lang-java=\"`maintainStartTime`\"\u003e`maintain_start_time`\u003c/span\u003e is `01:00Z`, \u003cspan pulumi-lang-nodejs=\"`maintainEndTime`\" pulumi-lang-dotnet=\"`MaintainEndTime`\" pulumi-lang-go=\"`maintainEndTime`\" pulumi-lang-python=\"`maintain_end_time`\" pulumi-lang-yaml=\"`maintainEndTime`\" pulumi-lang-java=\"`maintainEndTime`\"\u003e`maintain_end_time`\u003c/span\u003e must be `02:00Z`.\n"},"maintainStartTime":{"type":"string","description":"The start time of the maintenance window. Specify the time in the `HH:mmZ` format. The time must be in UTC.\n"},"period":{"type":"integer","description":"The purchase duration of the instance, in months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"periodPriceType":{"type":"string","description":"The period price type. Valid values: `Day`, `Month`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityIpGroups":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ServerlessInstanceSecurityIpGroup:ServerlessInstanceSecurityIpGroup"},"description":"An array that consists of the information of IP whitelists.\n"},"status":{"type":"string","description":"The instance status. For more information, see the instance Status Table.\n"},"storageEngine":{"type":"string","description":"The storage engine used by the instance. Valid values: `WiredTiger`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC network.\n"},"vswitchId":{"type":"string","description":"The of the vswitch.\n"},"zoneId":{"type":"string","description":"The ID of the zone. Use this parameter to specify the zone created by the instance.\n"}},"required":["accountPassword","capacityUnit","dbInstanceStorage","engine","engineVersion","maintainEndTime","maintainStartTime","resourceGroupId","status","storageEngine","vpcId","vswitchId","zoneId"],"inputProperties":{"accountPassword":{"type":"string","description":"The password of the database logon account.\n* The password length is \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e bits.\n* The password consists of at least any three of uppercase letters, lowercase letters, numbers, and special characters. The special character is `!#$%^\u0026*()_+-=`. The MongoDB Serverless instance provides a default database login account. This account cannot be modified. You can only set or modify the password for this account.\n","secret":true},"autoRenew":{"type":"boolean","description":"Set whether the instance is automatically renewed.\n"},"capacityUnit":{"type":"integer","description":"The I/O throughput consumed by the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`8000`\" pulumi-lang-dotnet=\"`8000`\" pulumi-lang-go=\"`8000`\" pulumi-lang-python=\"`8000`\" pulumi-lang-yaml=\"`8000`\" pulumi-lang-java=\"`8000`\"\u003e`8000`\u003c/span\u003e.\n"},"dbInstanceDescription":{"type":"string","description":"The db instance description.\n"},"dbInstanceStorage":{"type":"integer","description":"The db instance storage. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"engine":{"type":"string","description":"The database engine of the instance. Valid values: `MongoDB`.\n"},"engineVersion":{"type":"string","description":"The database version number. Valid values: `4.2`.\n"},"maintainEndTime":{"type":"string","description":"The end time of the maintenance window. Specify the time in the `HH:mmZ` format. The time must be in UTC. **NOTE:** The difference between the start time and end time must be one hour. For example, if \u003cspan pulumi-lang-nodejs=\"`maintainStartTime`\" pulumi-lang-dotnet=\"`MaintainStartTime`\" pulumi-lang-go=\"`maintainStartTime`\" pulumi-lang-python=\"`maintain_start_time`\" pulumi-lang-yaml=\"`maintainStartTime`\" pulumi-lang-java=\"`maintainStartTime`\"\u003e`maintain_start_time`\u003c/span\u003e is `01:00Z`, \u003cspan pulumi-lang-nodejs=\"`maintainEndTime`\" pulumi-lang-dotnet=\"`MaintainEndTime`\" pulumi-lang-go=\"`maintainEndTime`\" pulumi-lang-python=\"`maintain_end_time`\" pulumi-lang-yaml=\"`maintainEndTime`\" pulumi-lang-java=\"`maintainEndTime`\"\u003e`maintain_end_time`\u003c/span\u003e must be `02:00Z`.\n"},"maintainStartTime":{"type":"string","description":"The start time of the maintenance window. Specify the time in the `HH:mmZ` format. The time must be in UTC.\n"},"period":{"type":"integer","description":"The purchase duration of the instance, in months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"periodPriceType":{"type":"string","description":"The period price type. Valid values: `Day`, `Month`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"securityIpGroups":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ServerlessInstanceSecurityIpGroup:ServerlessInstanceSecurityIpGroup"},"description":"An array that consists of the information of IP whitelists.\n"},"storageEngine":{"type":"string","description":"The storage engine used by the instance. Valid values: `WiredTiger`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC network.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The of the vswitch.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The ID of the zone. Use this parameter to specify the zone created by the instance.\n","willReplaceOnChanges":true}},"requiredInputs":["accountPassword","capacityUnit","dbInstanceStorage","engineVersion","vpcId","vswitchId","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering ServerlessInstance resources.\n","properties":{"accountPassword":{"type":"string","description":"The password of the database logon account.\n* The password length is \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e bits.\n* The password consists of at least any three of uppercase letters, lowercase letters, numbers, and special characters. The special character is `!#$%^\u0026*()_+-=`. The MongoDB Serverless instance provides a default database login account. This account cannot be modified. You can only set or modify the password for this account.\n","secret":true},"autoRenew":{"type":"boolean","description":"Set whether the instance is automatically renewed.\n"},"capacityUnit":{"type":"integer","description":"The I/O throughput consumed by the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`8000`\" pulumi-lang-dotnet=\"`8000`\" pulumi-lang-go=\"`8000`\" pulumi-lang-python=\"`8000`\" pulumi-lang-yaml=\"`8000`\" pulumi-lang-java=\"`8000`\"\u003e`8000`\u003c/span\u003e.\n"},"dbInstanceDescription":{"type":"string","description":"The db instance description.\n"},"dbInstanceStorage":{"type":"integer","description":"The db instance storage. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"engine":{"type":"string","description":"The database engine of the instance. Valid values: `MongoDB`.\n"},"engineVersion":{"type":"string","description":"The database version number. Valid values: `4.2`.\n"},"maintainEndTime":{"type":"string","description":"The end time of the maintenance window. Specify the time in the `HH:mmZ` format. The time must be in UTC. **NOTE:** The difference between the start time and end time must be one hour. For example, if \u003cspan pulumi-lang-nodejs=\"`maintainStartTime`\" pulumi-lang-dotnet=\"`MaintainStartTime`\" pulumi-lang-go=\"`maintainStartTime`\" pulumi-lang-python=\"`maintain_start_time`\" pulumi-lang-yaml=\"`maintainStartTime`\" pulumi-lang-java=\"`maintainStartTime`\"\u003e`maintain_start_time`\u003c/span\u003e is `01:00Z`, \u003cspan pulumi-lang-nodejs=\"`maintainEndTime`\" pulumi-lang-dotnet=\"`MaintainEndTime`\" pulumi-lang-go=\"`maintainEndTime`\" pulumi-lang-python=\"`maintain_end_time`\" pulumi-lang-yaml=\"`maintainEndTime`\" pulumi-lang-java=\"`maintainEndTime`\"\u003e`maintain_end_time`\u003c/span\u003e must be `02:00Z`.\n"},"maintainStartTime":{"type":"string","description":"The start time of the maintenance window. Specify the time in the `HH:mmZ` format. The time must be in UTC.\n"},"period":{"type":"integer","description":"The purchase duration of the instance, in months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"periodPriceType":{"type":"string","description":"The period price type. Valid values: `Day`, `Month`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"securityIpGroups":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ServerlessInstanceSecurityIpGroup:ServerlessInstanceSecurityIpGroup"},"description":"An array that consists of the information of IP whitelists.\n"},"status":{"type":"string","description":"The instance status. For more information, see the instance Status Table.\n"},"storageEngine":{"type":"string","description":"The storage engine used by the instance. Valid values: `WiredTiger`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC network.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The of the vswitch.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The ID of the zone. Use this parameter to specify the zone created by the instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:mongodb/shardingInstance:ShardingInstance":{"description":"Provides a MongoDB Sharding Instance resource supports replica set instances only. the MongoDB provides stable, reliable, and automatic scalable database services.\nIt offers a full range of database solutions, such as disaster recovery, backup, recovery, monitoring, and alarms.\nYou can see detail product introduction [here](https://www.alibabacloud.com/help/doc-detail/26558.htm)\n\n\u003e **NOTE:** Available since v1.40.0.\n\n\u003e **NOTE:**  The following regions don't support create Classic network MongoDB Sharding Instance.\n[`cn-zhangjiakou`,`cn-huhehaote`,`ap-southeast-3`,`ap-southeast-5`,`me-east-1`,`ap-northeast-1`,`eu-west-1`]\n\n\u003e **NOTE:**  Create MongoDB Sharding instance or change instance type and storage would cost 10~20 minutes. Please make full preparation.\n\n## Example Usage\n\n### Create a Mongodb Sharding instance\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.mongodb.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[1]?.id),\n});\nconst defaultShardingInstance = new alicloud.mongodb.ShardingInstance(\"default\", {\n    engineVersion: \"4.2\",\n    vswitchId: defaultSwitch.id,\n    zoneId: defaultSwitch.zoneId,\n    name: name,\n    mongoLists: [\n        {\n            nodeClass: \"dds.mongos.mid\",\n        },\n        {\n            nodeClass: \"dds.mongos.mid\",\n        },\n    ],\n    shardLists: [\n        {\n            nodeClass: \"dds.shard.mid\",\n            nodeStorage: 10,\n        },\n        {\n            nodeClass: \"dds.shard.standard\",\n            nodeStorage: 20,\n            readonlyReplicas: 1,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.mongodb.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[1].id)\ndefault_sharding_instance = alicloud.mongodb.ShardingInstance(\"default\",\n    engine_version=\"4.2\",\n    vswitch_id=default_switch.id,\n    zone_id=default_switch.zone_id,\n    name=name,\n    mongo_lists=[\n        {\n            \"node_class\": \"dds.mongos.mid\",\n        },\n        {\n            \"node_class\": \"dds.mongos.mid\",\n        },\n    ],\n    shard_lists=[\n        {\n            \"node_class\": \"dds.shard.mid\",\n            \"node_storage\": 10,\n        },\n        {\n            \"node_class\": \"dds.shard.standard\",\n            \"node_storage\": 20,\n            \"readonly_replicas\": 1,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.MongoDB.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id)),\n    });\n\n    var defaultShardingInstance = new AliCloud.MongoDB.ShardingInstance(\"default\", new()\n    {\n        EngineVersion = \"4.2\",\n        VswitchId = defaultSwitch.Id,\n        ZoneId = defaultSwitch.ZoneId,\n        Name = name,\n        MongoLists = new[]\n        {\n            new AliCloud.MongoDB.Inputs.ShardingInstanceMongoListArgs\n            {\n                NodeClass = \"dds.mongos.mid\",\n            },\n            new AliCloud.MongoDB.Inputs.ShardingInstanceMongoListArgs\n            {\n                NodeClass = \"dds.mongos.mid\",\n            },\n        },\n        ShardLists = new[]\n        {\n            new AliCloud.MongoDB.Inputs.ShardingInstanceShardListArgs\n            {\n                NodeClass = \"dds.shard.mid\",\n                NodeStorage = 10,\n            },\n            new AliCloud.MongoDB.Inputs.ShardingInstanceShardListArgs\n            {\n                NodeClass = \"dds.shard.standard\",\n                NodeStorage = 20,\n                ReadonlyReplicas = 1,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := mongodb.GetZones(ctx, \u0026mongodb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[1].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodb.NewShardingInstance(ctx, \"default\", \u0026mongodb.ShardingInstanceArgs{\n\t\t\tEngineVersion: pulumi.String(\"4.2\"),\n\t\t\tVswitchId:     defaultSwitch.ID(),\n\t\t\tZoneId:        defaultSwitch.ZoneId,\n\t\t\tName:          pulumi.String(name),\n\t\t\tMongoLists: mongodb.ShardingInstanceMongoListArray{\n\t\t\t\t\u0026mongodb.ShardingInstanceMongoListArgs{\n\t\t\t\t\tNodeClass: pulumi.String(\"dds.mongos.mid\"),\n\t\t\t\t},\n\t\t\t\t\u0026mongodb.ShardingInstanceMongoListArgs{\n\t\t\t\t\tNodeClass: pulumi.String(\"dds.mongos.mid\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tShardLists: mongodb.ShardingInstanceShardListArray{\n\t\t\t\t\u0026mongodb.ShardingInstanceShardListArgs{\n\t\t\t\t\tNodeClass:   pulumi.String(\"dds.shard.mid\"),\n\t\t\t\t\tNodeStorage: pulumi.Int(10),\n\t\t\t\t},\n\t\t\t\t\u0026mongodb.ShardingInstanceShardListArgs{\n\t\t\t\t\tNodeClass:        pulumi.String(\"dds.shard.standard\"),\n\t\t\t\t\tNodeStorage:      pulumi.Int(20),\n\t\t\t\t\tReadonlyReplicas: pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.MongodbFunctions;\nimport com.pulumi.alicloud.mongodb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mongodb.ShardingInstance;\nimport com.pulumi.alicloud.mongodb.ShardingInstanceArgs;\nimport com.pulumi.alicloud.mongodb.inputs.ShardingInstanceMongoListArgs;\nimport com.pulumi.alicloud.mongodb.inputs.ShardingInstanceShardListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = MongodbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[1].id())\n            .build());\n\n        var defaultShardingInstance = new ShardingInstance(\"defaultShardingInstance\", ShardingInstanceArgs.builder()\n            .engineVersion(\"4.2\")\n            .vswitchId(defaultSwitch.id())\n            .zoneId(defaultSwitch.zoneId())\n            .name(name)\n            .mongoLists(            \n                ShardingInstanceMongoListArgs.builder()\n                    .nodeClass(\"dds.mongos.mid\")\n                    .build(),\n                ShardingInstanceMongoListArgs.builder()\n                    .nodeClass(\"dds.mongos.mid\")\n                    .build())\n            .shardLists(            \n                ShardingInstanceShardListArgs.builder()\n                    .nodeClass(\"dds.shard.mid\")\n                    .nodeStorage(10)\n                    .build(),\n                ShardingInstanceShardListArgs.builder()\n                    .nodeClass(\"dds.shard.standard\")\n                    .nodeStorage(20)\n                    .readonlyReplicas(1)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.17.3.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[1].id}\n  defaultShardingInstance:\n    type: alicloud:mongodb:ShardingInstance\n    name: default\n    properties:\n      engineVersion: '4.2'\n      vswitchId: ${defaultSwitch.id}\n      zoneId: ${defaultSwitch.zoneId}\n      name: ${name}\n      mongoLists:\n        - nodeClass: dds.mongos.mid\n        - nodeClass: dds.mongos.mid\n      shardLists:\n        - nodeClass: dds.shard.mid\n          nodeStorage: '10'\n        - nodeClass: dds.shard.standard\n          nodeStorage: '20'\n          readonlyReplicas: '1'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:mongodb:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use to the existing mongodb-sharding module\nto create a MongoDB Sharding Instance resource one-click.\n\n## Import\n\nMongoDB Sharding Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mongodb/shardingInstance:ShardingInstance example \u003cid\u003e\n```\n\n","properties":{"accountPassword":{"type":"string","description":"Password of the root account. It is a string of 6 to 32 characters and is composed of letters, numbers, and underlines.\n","secret":true},"autoRenew":{"type":"boolean","description":"Auto renew for prepaid. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewDuration":{"type":"integer","description":"The auto-renewal period. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`autoRenewDuration`\" pulumi-lang-dotnet=\"`AutoRenewDuration`\" pulumi-lang-go=\"`autoRenewDuration`\" pulumi-lang-python=\"`auto_renew_duration`\" pulumi-lang-yaml=\"`autoRenewDuration`\" pulumi-lang-java=\"`autoRenewDuration`\"\u003e`auto_renew_duration`\u003c/span\u003e must be set.\n"},"backupInterval":{"type":"string","description":"The frequency at which high-frequency backups are created. Valid values: `-1`, \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`120`\" pulumi-lang-dotnet=\"`120`\" pulumi-lang-go=\"`120`\" pulumi-lang-python=\"`120`\" pulumi-lang-yaml=\"`120`\" pulumi-lang-java=\"`120`\"\u003e`120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`240`\" pulumi-lang-dotnet=\"`240`\" pulumi-lang-go=\"`240`\" pulumi-lang-python=\"`240`\" pulumi-lang-yaml=\"`240`\" pulumi-lang-java=\"`240`\"\u003e`240`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`360`\" pulumi-lang-dotnet=\"`360`\" pulumi-lang-go=\"`360`\" pulumi-lang-python=\"`360`\" pulumi-lang-yaml=\"`360`\" pulumi-lang-java=\"`360`\"\u003e`360`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`480`\" pulumi-lang-dotnet=\"`480`\" pulumi-lang-go=\"`480`\" pulumi-lang-python=\"`480`\" pulumi-lang-yaml=\"`480`\" pulumi-lang-java=\"`480`\"\u003e`480`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`720`\" pulumi-lang-dotnet=\"`720`\" pulumi-lang-go=\"`720`\" pulumi-lang-python=\"`720`\" pulumi-lang-yaml=\"`720`\" pulumi-lang-java=\"`720`\"\u003e`720`\u003c/span\u003e.\n"},"backupPeriods":{"type":"array","items":{"type":"string"},"description":"MongoDB Instance backup period. It is required when \u003cspan pulumi-lang-nodejs=\"`backupTime`\" pulumi-lang-dotnet=\"`BackupTime`\" pulumi-lang-go=\"`backupTime`\" pulumi-lang-python=\"`backup_time`\" pulumi-lang-yaml=\"`backupTime`\" pulumi-lang-java=\"`backupTime`\"\u003e`backup_time`\u003c/span\u003e was existed. Valid values: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]. Default to [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]\n"},"backupRetentionPeriod":{"type":"integer","description":"The retention period of full backups.\n"},"backupRetentionPolicyOnClusterDeletion":{"type":"integer","description":"The backup retention policy configured for the instance. Valid values:\n"},"backupTime":{"type":"string","description":"Sharding Instance backup time. It is required when \u003cspan pulumi-lang-nodejs=\"`backupPeriod`\" pulumi-lang-dotnet=\"`BackupPeriod`\" pulumi-lang-go=\"`backupPeriod`\" pulumi-lang-python=\"`backup_period`\" pulumi-lang-yaml=\"`backupPeriod`\" pulumi-lang-java=\"`backupPeriod`\"\u003e`backup_period`\u003c/span\u003e was existed. In the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. If not set, the system will return a default, like \"23:00Z-24:00Z\".\n"},"cloudDiskEncryptionKey":{"type":"string","description":"The ID of the encryption key.\n"},"configServerLists":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingInstanceConfigServerList:ShardingInstanceConfigServerList"},"description":"The ConfigServer nodes of the instance. See \u003cspan pulumi-lang-nodejs=\"`configServerList`\" pulumi-lang-dotnet=\"`ConfigServerList`\" pulumi-lang-go=\"`configServerList`\" pulumi-lang-python=\"`config_server_list`\" pulumi-lang-yaml=\"`configServerList`\" pulumi-lang-java=\"`configServerList`\"\u003e`config_server_list`\u003c/span\u003e below.\n"},"dbInstanceReleaseProtection":{"type":"boolean","description":"Indicates whether release protection is enabled for the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enableBackupLog":{"type":"integer","description":"Specifies whether to enable the log backup feature. Valid values:\n- `1 `: The log backup feature is enabled.\n"},"encrypted":{"type":"boolean","description":"Whether to enable cloud disk encryption. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"encryptionKey":{"type":"string","description":"The ID of the custom key.\n"},"encryptorName":{"type":"string","description":"The encryption method. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`encryptorName`\" pulumi-lang-dotnet=\"`EncryptorName`\" pulumi-lang-go=\"`encryptorName`\" pulumi-lang-python=\"`encryptor_name`\" pulumi-lang-yaml=\"`encryptorName`\" pulumi-lang-java=\"`encryptorName`\"\u003e`encryptor_name`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`tdeStatus`\" pulumi-lang-dotnet=\"`TdeStatus`\" pulumi-lang-go=\"`tdeStatus`\" pulumi-lang-python=\"`tde_status`\" pulumi-lang-yaml=\"`tdeStatus`\" pulumi-lang-java=\"`tdeStatus`\"\u003e`tde_status`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"engineVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/en/doc-detail/61884.htm) `EngineVersion`. **NOTE:** From version 1.225.1, \u003cspan pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\"\u003e`engine_version`\u003c/span\u003e can be modified.\n"},"forceEncryption":{"type":"string","description":"Specifies whether to forcibly enable SSL encryption for connections. Valid values:\n"},"globalSecurityGroupLists":{"type":"array","items":{"type":"string"},"description":"The list of Global Security Group Ids.\n"},"hiddenZoneId":{"type":"string","description":"Configure the zone where the hidden node is located to deploy multiple zones. **NOTE:** This parameter value cannot be the same as \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secondaryZoneId`\" pulumi-lang-dotnet=\"`SecondaryZoneId`\" pulumi-lang-go=\"`secondaryZoneId`\" pulumi-lang-python=\"`secondary_zone_id`\" pulumi-lang-yaml=\"`secondaryZoneId`\" pulumi-lang-java=\"`secondaryZoneId`\"\u003e`secondary_zone_id`\u003c/span\u003e parameter values.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the instance. Default value: `PostPaid`. Valid values: `PrePaid`, `PostPaid`. **NOTE:** It can be modified from `PostPaid` to `PrePaid` after version v1.141.0.\n"},"keyIds":{"type":"array","items":{"type":"string"},"description":"(Available since v1.271.0) A list of instance keys.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a instance. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"logBackupRetentionPeriod":{"type":"integer","description":"The number of days for which log backups are retained. Valid values: \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`logBackupRetentionPeriod`\" pulumi-lang-dotnet=\"`LogBackupRetentionPeriod`\" pulumi-lang-go=\"`logBackupRetentionPeriod`\" pulumi-lang-python=\"`log_backup_retention_period`\" pulumi-lang-yaml=\"`logBackupRetentionPeriod`\" pulumi-lang-java=\"`logBackupRetentionPeriod`\"\u003e`log_backup_retention_period`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"maintainEndTime":{"type":"string","description":"The end time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time).\n"},"maintainStartTime":{"type":"string","description":"The start time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time).\n"},"mongoLists":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingInstanceMongoList:ShardingInstanceMongoList"},"description":"The Mongo nodes of the instance. The mongo-node count can be purchased is in range of [2, 32]. See \u003cspan pulumi-lang-nodejs=\"`mongoList`\" pulumi-lang-dotnet=\"`MongoList`\" pulumi-lang-go=\"`mongoList`\" pulumi-lang-python=\"`mongo_list`\" pulumi-lang-yaml=\"`mongoList`\" pulumi-lang-java=\"`mongoList`\"\u003e`mongo_list`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The name of DB instance. It must be 2 to 256 characters in length.\n"},"networkType":{"type":"string","description":"The network type of the instance. Valid values:`Classic` or `VPC`.\n"},"orderType":{"type":"string","description":"The type of configuration changes performed. Default value: `DOWNGRADE`. Valid values:\n- `UPGRADE`: The specifications are upgraded.\n- `DOWNGRADE`: The specifications are downgraded.\n**NOTE:** \u003cspan pulumi-lang-nodejs=\"`orderType`\" pulumi-lang-dotnet=\"`OrderType`\" pulumi-lang-go=\"`orderType`\" pulumi-lang-python=\"`order_type`\" pulumi-lang-yaml=\"`orderType`\" pulumi-lang-java=\"`orderType`\"\u003e`order_type`\u003c/span\u003e is only applicable to instances when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingInstanceParameter:ShardingInstanceParameter"},"description":"Set of parameters needs to be set after mongodb instance was launched. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"period":{"type":"integer","description":"The duration that you will buy DB instance (in month). It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values: [1~9], 12, 24, 36.\n"},"protocolType":{"type":"string","description":"The type of the access protocol. Valid values: \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`dynamodb`\" pulumi-lang-dotnet=\"`Dynamodb`\" pulumi-lang-go=\"`dynamodb`\" pulumi-lang-python=\"`dynamodb`\" pulumi-lang-yaml=\"`dynamodb`\" pulumi-lang-java=\"`dynamodb`\"\u003e`dynamodb`\u003c/span\u003e.\n"},"provisionedIops":{"type":"integer","description":"The provisioned IOPS. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50000`\" pulumi-lang-dotnet=\"`50000`\" pulumi-lang-go=\"`50000`\" pulumi-lang-python=\"`50000`\" pulumi-lang-yaml=\"`50000`\" pulumi-lang-java=\"`50000`\"\u003e`50000`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"restoreTime":{"type":"string","description":"The point in time to which you want to restore the instance. You can specify any point in time within the last seven days. The time must be in the yyyy-MM-ddTHH:mm:ssZ format and in UTC.\n\u003e **NOTE:** You must specify \u003cspan pulumi-lang-nodejs=\"`srcDbInstanceId`\" pulumi-lang-dotnet=\"`SrcDbInstanceId`\" pulumi-lang-go=\"`srcDbInstanceId`\" pulumi-lang-python=\"`src_db_instance_id`\" pulumi-lang-yaml=\"`srcDbInstanceId`\" pulumi-lang-java=\"`srcDbInstanceId`\"\u003e`src_db_instance_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`restoreTime`\" pulumi-lang-dotnet=\"`RestoreTime`\" pulumi-lang-go=\"`restoreTime`\" pulumi-lang-python=\"`restore_time`\" pulumi-lang-yaml=\"`restoreTime`\" pulumi-lang-java=\"`restoreTime`\"\u003e`restore_time`\u003c/span\u003e only when you clone an instance based on a point in time.\n"},"retentionPeriod":{"type":"integer","description":"(Available since v1.42.0) Instance data backup retention days.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the specified Resource Access Management (RAM) role.\n"},"secondaryZoneId":{"type":"string","description":"Configure the available area where the slave node (Secondary node) is located to realize multi-available area deployment. **NOTE:** This parameter value cannot be the same as \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`hiddenZoneId`\" pulumi-lang-dotnet=\"`HiddenZoneId`\" pulumi-lang-go=\"`hiddenZoneId`\" pulumi-lang-python=\"`hidden_zone_id`\" pulumi-lang-yaml=\"`hiddenZoneId`\" pulumi-lang-java=\"`hiddenZoneId`\"\u003e`hidden_zone_id`\u003c/span\u003e parameter values.\n"},"securityGroupId":{"type":"string","description":"The Security Group ID of ECS.\n"},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]). System default to `[\"127.0.0.1\"]`.\n"},"shardLists":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingInstanceShardList:ShardingInstanceShardList"},"description":"The Shard nodes of the instance. The shard-node count can be purchased is in range of [2, 32]. See \u003cspan pulumi-lang-nodejs=\"`shardList`\" pulumi-lang-dotnet=\"`ShardList`\" pulumi-lang-go=\"`shardList`\" pulumi-lang-python=\"`shard_list`\" pulumi-lang-yaml=\"`shardList`\" pulumi-lang-java=\"`shardList`\"\u003e`shard_list`\u003c/span\u003e below.\n"},"snapshotBackupType":{"type":"string","description":"The snapshot backup type. Default value: `Standard`. Valid values:\n- `Standard`: Standard backup.\n- `Flash `: Single-digit second backup.\n"},"srcDbInstanceId":{"type":"string","description":"The source instance ID.\n"},"sslAction":{"type":"string","description":"Actions performed on SSL functions. Valid values:\n- `Open`: turn on SSL encryption.\n- `Close`: turn off SSL encryption.\n- `Update`: update SSL certificate.\n\u003e **NOTE:** Once \u003cspan pulumi-lang-nodejs=\"`sslAction`\" pulumi-lang-dotnet=\"`SslAction`\" pulumi-lang-go=\"`sslAction`\" pulumi-lang-python=\"`ssl_action`\" pulumi-lang-yaml=\"`sslAction`\" pulumi-lang-java=\"`sslAction`\"\u003e`ssl_action`\u003c/span\u003e is set, it isn't allowed to be removed from the Terraform code.\n"},"sslStatus":{"type":"string","description":"(Available since v1.259.0) The status of the SSL feature.\n"},"storageEngine":{"type":"string","description":"The storage engine of the instance. Default value: `WiredTiger`. Valid values: `WiredTiger`, `RocksDB`.\n"},"storageType":{"type":"string","description":"The storage type of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd1`\" pulumi-lang-dotnet=\"`CloudEssd1`\" pulumi-lang-go=\"`cloudEssd1`\" pulumi-lang-python=\"`cloud_essd1`\" pulumi-lang-yaml=\"`cloudEssd1`\" pulumi-lang-java=\"`cloudEssd1`\"\u003e`cloud_essd1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd2`\" pulumi-lang-dotnet=\"`CloudEssd2`\" pulumi-lang-go=\"`cloudEssd2`\" pulumi-lang-python=\"`cloud_essd2`\" pulumi-lang-yaml=\"`cloudEssd2`\" pulumi-lang-java=\"`cloudEssd2`\"\u003e`cloud_essd2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd3`\" pulumi-lang-dotnet=\"`CloudEssd3`\" pulumi-lang-go=\"`cloudEssd3`\" pulumi-lang-python=\"`cloud_essd3`\" pulumi-lang-yaml=\"`cloudEssd3`\" pulumi-lang-java=\"`cloudEssd3`\"\u003e`cloud_essd3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsd`\" pulumi-lang-dotnet=\"`LocalSsd`\" pulumi-lang-go=\"`localSsd`\" pulumi-lang-python=\"`local_ssd`\" pulumi-lang-yaml=\"`localSsd`\" pulumi-lang-java=\"`localSsd`\"\u003e`local_ssd`\u003c/span\u003e. **NOTE:** From version 1.229.0, \u003cspan pulumi-lang-nodejs=\"`storageType`\" pulumi-lang-dotnet=\"`StorageType`\" pulumi-lang-go=\"`storageType`\" pulumi-lang-python=\"`storage_type`\" pulumi-lang-yaml=\"`storageType`\" pulumi-lang-java=\"`storageType`\"\u003e`storage_type`\u003c/span\u003e can be modified. However, \u003cspan pulumi-lang-nodejs=\"`storageType`\" pulumi-lang-dotnet=\"`StorageType`\" pulumi-lang-go=\"`storageType`\" pulumi-lang-python=\"`storage_type`\" pulumi-lang-yaml=\"`storageType`\" pulumi-lang-java=\"`storageType`\"\u003e`storage_type`\u003c/span\u003e can only be modified to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"tdeStatus":{"type":"string","description":"The TDE(Transparent Data Encryption) status. It can be updated from version 1.160.0.\n"},"vpcId":{"type":"string","description":"The ID of the VPC. \u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e is set to `VPC`.\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB instance. MongoDB Sharding Instance does not support multiple-zone.\nIf it is a multi-zone and \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified, the vswitch must in one of them.\n"},"zoneInfos":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingInstanceZoneInfo:ShardingInstanceZoneInfo"},"description":"(Available since v1.271.0) The information of nodes in the zone.\n"}},"required":["autoRenewDuration","backupInterval","backupPeriods","backupRetentionPeriod","backupTime","configServerLists","enableBackupLog","encryptionKey","encryptorName","engineVersion","forceEncryption","instanceChargeType","keyIds","logBackupRetentionPeriod","maintainEndTime","maintainStartTime","mongoLists","name","networkType","parameters","period","protocolType","resourceGroupId","retentionPeriod","roleArn","securityGroupId","securityIpLists","shardLists","snapshotBackupType","sslStatus","storageEngine","storageType","tdeStatus","vpcId","vswitchId","zoneId","zoneInfos"],"inputProperties":{"accountPassword":{"type":"string","description":"Password of the root account. It is a string of 6 to 32 characters and is composed of letters, numbers, and underlines.\n","secret":true},"autoRenew":{"type":"boolean","description":"Auto renew for prepaid. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewDuration":{"type":"integer","description":"The auto-renewal period. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`autoRenewDuration`\" pulumi-lang-dotnet=\"`AutoRenewDuration`\" pulumi-lang-go=\"`autoRenewDuration`\" pulumi-lang-python=\"`auto_renew_duration`\" pulumi-lang-yaml=\"`autoRenewDuration`\" pulumi-lang-java=\"`autoRenewDuration`\"\u003e`auto_renew_duration`\u003c/span\u003e must be set.\n"},"backupInterval":{"type":"string","description":"The frequency at which high-frequency backups are created. Valid values: `-1`, \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`120`\" pulumi-lang-dotnet=\"`120`\" pulumi-lang-go=\"`120`\" pulumi-lang-python=\"`120`\" pulumi-lang-yaml=\"`120`\" pulumi-lang-java=\"`120`\"\u003e`120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`240`\" pulumi-lang-dotnet=\"`240`\" pulumi-lang-go=\"`240`\" pulumi-lang-python=\"`240`\" pulumi-lang-yaml=\"`240`\" pulumi-lang-java=\"`240`\"\u003e`240`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`360`\" pulumi-lang-dotnet=\"`360`\" pulumi-lang-go=\"`360`\" pulumi-lang-python=\"`360`\" pulumi-lang-yaml=\"`360`\" pulumi-lang-java=\"`360`\"\u003e`360`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`480`\" pulumi-lang-dotnet=\"`480`\" pulumi-lang-go=\"`480`\" pulumi-lang-python=\"`480`\" pulumi-lang-yaml=\"`480`\" pulumi-lang-java=\"`480`\"\u003e`480`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`720`\" pulumi-lang-dotnet=\"`720`\" pulumi-lang-go=\"`720`\" pulumi-lang-python=\"`720`\" pulumi-lang-yaml=\"`720`\" pulumi-lang-java=\"`720`\"\u003e`720`\u003c/span\u003e.\n"},"backupPeriods":{"type":"array","items":{"type":"string"},"description":"MongoDB Instance backup period. It is required when \u003cspan pulumi-lang-nodejs=\"`backupTime`\" pulumi-lang-dotnet=\"`BackupTime`\" pulumi-lang-go=\"`backupTime`\" pulumi-lang-python=\"`backup_time`\" pulumi-lang-yaml=\"`backupTime`\" pulumi-lang-java=\"`backupTime`\"\u003e`backup_time`\u003c/span\u003e was existed. Valid values: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]. Default to [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]\n"},"backupRetentionPeriod":{"type":"integer","description":"The retention period of full backups.\n"},"backupRetentionPolicyOnClusterDeletion":{"type":"integer","description":"The backup retention policy configured for the instance. Valid values:\n"},"backupTime":{"type":"string","description":"Sharding Instance backup time. It is required when \u003cspan pulumi-lang-nodejs=\"`backupPeriod`\" pulumi-lang-dotnet=\"`BackupPeriod`\" pulumi-lang-go=\"`backupPeriod`\" pulumi-lang-python=\"`backup_period`\" pulumi-lang-yaml=\"`backupPeriod`\" pulumi-lang-java=\"`backupPeriod`\"\u003e`backup_period`\u003c/span\u003e was existed. In the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. If not set, the system will return a default, like \"23:00Z-24:00Z\".\n"},"cloudDiskEncryptionKey":{"type":"string","description":"The ID of the encryption key.\n","willReplaceOnChanges":true},"configServerLists":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingInstanceConfigServerList:ShardingInstanceConfigServerList"},"description":"The ConfigServer nodes of the instance. See \u003cspan pulumi-lang-nodejs=\"`configServerList`\" pulumi-lang-dotnet=\"`ConfigServerList`\" pulumi-lang-go=\"`configServerList`\" pulumi-lang-python=\"`config_server_list`\" pulumi-lang-yaml=\"`configServerList`\" pulumi-lang-java=\"`configServerList`\"\u003e`config_server_list`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"dbInstanceReleaseProtection":{"type":"boolean","description":"Indicates whether release protection is enabled for the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enableBackupLog":{"type":"integer","description":"Specifies whether to enable the log backup feature. Valid values:\n- `1 `: The log backup feature is enabled.\n"},"encrypted":{"type":"boolean","description":"Whether to enable cloud disk encryption. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"encryptionKey":{"type":"string","description":"The ID of the custom key.\n"},"encryptorName":{"type":"string","description":"The encryption method. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`encryptorName`\" pulumi-lang-dotnet=\"`EncryptorName`\" pulumi-lang-go=\"`encryptorName`\" pulumi-lang-python=\"`encryptor_name`\" pulumi-lang-yaml=\"`encryptorName`\" pulumi-lang-java=\"`encryptorName`\"\u003e`encryptor_name`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`tdeStatus`\" pulumi-lang-dotnet=\"`TdeStatus`\" pulumi-lang-go=\"`tdeStatus`\" pulumi-lang-python=\"`tde_status`\" pulumi-lang-yaml=\"`tdeStatus`\" pulumi-lang-java=\"`tdeStatus`\"\u003e`tde_status`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"engineVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/en/doc-detail/61884.htm) `EngineVersion`. **NOTE:** From version 1.225.1, \u003cspan pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\"\u003e`engine_version`\u003c/span\u003e can be modified.\n"},"forceEncryption":{"type":"string","description":"Specifies whether to forcibly enable SSL encryption for connections. Valid values:\n"},"globalSecurityGroupLists":{"type":"array","items":{"type":"string"},"description":"The list of Global Security Group Ids.\n"},"hiddenZoneId":{"type":"string","description":"Configure the zone where the hidden node is located to deploy multiple zones. **NOTE:** This parameter value cannot be the same as \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secondaryZoneId`\" pulumi-lang-dotnet=\"`SecondaryZoneId`\" pulumi-lang-go=\"`secondaryZoneId`\" pulumi-lang-python=\"`secondary_zone_id`\" pulumi-lang-yaml=\"`secondaryZoneId`\" pulumi-lang-java=\"`secondaryZoneId`\"\u003e`secondary_zone_id`\u003c/span\u003e parameter values.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the instance. Default value: `PostPaid`. Valid values: `PrePaid`, `PostPaid`. **NOTE:** It can be modified from `PostPaid` to `PrePaid` after version v1.141.0.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a instance. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"logBackupRetentionPeriod":{"type":"integer","description":"The number of days for which log backups are retained. Valid values: \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`logBackupRetentionPeriod`\" pulumi-lang-dotnet=\"`LogBackupRetentionPeriod`\" pulumi-lang-go=\"`logBackupRetentionPeriod`\" pulumi-lang-python=\"`log_backup_retention_period`\" pulumi-lang-yaml=\"`logBackupRetentionPeriod`\" pulumi-lang-java=\"`logBackupRetentionPeriod`\"\u003e`log_backup_retention_period`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"maintainEndTime":{"type":"string","description":"The end time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time).\n"},"maintainStartTime":{"type":"string","description":"The start time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time).\n"},"mongoLists":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingInstanceMongoList:ShardingInstanceMongoList"},"description":"The Mongo nodes of the instance. The mongo-node count can be purchased is in range of [2, 32]. See \u003cspan pulumi-lang-nodejs=\"`mongoList`\" pulumi-lang-dotnet=\"`MongoList`\" pulumi-lang-go=\"`mongoList`\" pulumi-lang-python=\"`mongo_list`\" pulumi-lang-yaml=\"`mongoList`\" pulumi-lang-java=\"`mongoList`\"\u003e`mongo_list`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The name of DB instance. It must be 2 to 256 characters in length.\n"},"networkType":{"type":"string","description":"The network type of the instance. Valid values:`Classic` or `VPC`.\n","willReplaceOnChanges":true},"orderType":{"type":"string","description":"The type of configuration changes performed. Default value: `DOWNGRADE`. Valid values:\n- `UPGRADE`: The specifications are upgraded.\n- `DOWNGRADE`: The specifications are downgraded.\n**NOTE:** \u003cspan pulumi-lang-nodejs=\"`orderType`\" pulumi-lang-dotnet=\"`OrderType`\" pulumi-lang-go=\"`orderType`\" pulumi-lang-python=\"`order_type`\" pulumi-lang-yaml=\"`orderType`\" pulumi-lang-java=\"`orderType`\"\u003e`order_type`\u003c/span\u003e is only applicable to instances when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingInstanceParameter:ShardingInstanceParameter"},"description":"Set of parameters needs to be set after mongodb instance was launched. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"period":{"type":"integer","description":"The duration that you will buy DB instance (in month). It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values: [1~9], 12, 24, 36.\n"},"protocolType":{"type":"string","description":"The type of the access protocol. Valid values: \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`dynamodb`\" pulumi-lang-dotnet=\"`Dynamodb`\" pulumi-lang-go=\"`dynamodb`\" pulumi-lang-python=\"`dynamodb`\" pulumi-lang-yaml=\"`dynamodb`\" pulumi-lang-java=\"`dynamodb`\"\u003e`dynamodb`\u003c/span\u003e.\n","willReplaceOnChanges":true},"provisionedIops":{"type":"integer","description":"The provisioned IOPS. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50000`\" pulumi-lang-dotnet=\"`50000`\" pulumi-lang-go=\"`50000`\" pulumi-lang-python=\"`50000`\" pulumi-lang-yaml=\"`50000`\" pulumi-lang-java=\"`50000`\"\u003e`50000`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"restoreTime":{"type":"string","description":"The point in time to which you want to restore the instance. You can specify any point in time within the last seven days. The time must be in the yyyy-MM-ddTHH:mm:ssZ format and in UTC.\n\u003e **NOTE:** You must specify \u003cspan pulumi-lang-nodejs=\"`srcDbInstanceId`\" pulumi-lang-dotnet=\"`SrcDbInstanceId`\" pulumi-lang-go=\"`srcDbInstanceId`\" pulumi-lang-python=\"`src_db_instance_id`\" pulumi-lang-yaml=\"`srcDbInstanceId`\" pulumi-lang-java=\"`srcDbInstanceId`\"\u003e`src_db_instance_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`restoreTime`\" pulumi-lang-dotnet=\"`RestoreTime`\" pulumi-lang-go=\"`restoreTime`\" pulumi-lang-python=\"`restore_time`\" pulumi-lang-yaml=\"`restoreTime`\" pulumi-lang-java=\"`restoreTime`\"\u003e`restore_time`\u003c/span\u003e only when you clone an instance based on a point in time.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the specified Resource Access Management (RAM) role.\n"},"secondaryZoneId":{"type":"string","description":"Configure the available area where the slave node (Secondary node) is located to realize multi-available area deployment. **NOTE:** This parameter value cannot be the same as \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`hiddenZoneId`\" pulumi-lang-dotnet=\"`HiddenZoneId`\" pulumi-lang-go=\"`hiddenZoneId`\" pulumi-lang-python=\"`hidden_zone_id`\" pulumi-lang-yaml=\"`hiddenZoneId`\" pulumi-lang-java=\"`hiddenZoneId`\"\u003e`hidden_zone_id`\u003c/span\u003e parameter values.\n"},"securityGroupId":{"type":"string","description":"The Security Group ID of ECS.\n"},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]). System default to `[\"127.0.0.1\"]`.\n"},"shardLists":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingInstanceShardList:ShardingInstanceShardList"},"description":"The Shard nodes of the instance. The shard-node count can be purchased is in range of [2, 32]. See \u003cspan pulumi-lang-nodejs=\"`shardList`\" pulumi-lang-dotnet=\"`ShardList`\" pulumi-lang-go=\"`shardList`\" pulumi-lang-python=\"`shard_list`\" pulumi-lang-yaml=\"`shardList`\" pulumi-lang-java=\"`shardList`\"\u003e`shard_list`\u003c/span\u003e below.\n"},"snapshotBackupType":{"type":"string","description":"The snapshot backup type. Default value: `Standard`. Valid values:\n- `Standard`: Standard backup.\n- `Flash `: Single-digit second backup.\n"},"srcDbInstanceId":{"type":"string","description":"The source instance ID.\n"},"sslAction":{"type":"string","description":"Actions performed on SSL functions. Valid values:\n- `Open`: turn on SSL encryption.\n- `Close`: turn off SSL encryption.\n- `Update`: update SSL certificate.\n\u003e **NOTE:** Once \u003cspan pulumi-lang-nodejs=\"`sslAction`\" pulumi-lang-dotnet=\"`SslAction`\" pulumi-lang-go=\"`sslAction`\" pulumi-lang-python=\"`ssl_action`\" pulumi-lang-yaml=\"`sslAction`\" pulumi-lang-java=\"`sslAction`\"\u003e`ssl_action`\u003c/span\u003e is set, it isn't allowed to be removed from the Terraform code.\n"},"storageEngine":{"type":"string","description":"The storage engine of the instance. Default value: `WiredTiger`. Valid values: `WiredTiger`, `RocksDB`.\n","willReplaceOnChanges":true},"storageType":{"type":"string","description":"The storage type of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd1`\" pulumi-lang-dotnet=\"`CloudEssd1`\" pulumi-lang-go=\"`cloudEssd1`\" pulumi-lang-python=\"`cloud_essd1`\" pulumi-lang-yaml=\"`cloudEssd1`\" pulumi-lang-java=\"`cloudEssd1`\"\u003e`cloud_essd1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd2`\" pulumi-lang-dotnet=\"`CloudEssd2`\" pulumi-lang-go=\"`cloudEssd2`\" pulumi-lang-python=\"`cloud_essd2`\" pulumi-lang-yaml=\"`cloudEssd2`\" pulumi-lang-java=\"`cloudEssd2`\"\u003e`cloud_essd2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd3`\" pulumi-lang-dotnet=\"`CloudEssd3`\" pulumi-lang-go=\"`cloudEssd3`\" pulumi-lang-python=\"`cloud_essd3`\" pulumi-lang-yaml=\"`cloudEssd3`\" pulumi-lang-java=\"`cloudEssd3`\"\u003e`cloud_essd3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsd`\" pulumi-lang-dotnet=\"`LocalSsd`\" pulumi-lang-go=\"`localSsd`\" pulumi-lang-python=\"`local_ssd`\" pulumi-lang-yaml=\"`localSsd`\" pulumi-lang-java=\"`localSsd`\"\u003e`local_ssd`\u003c/span\u003e. **NOTE:** From version 1.229.0, \u003cspan pulumi-lang-nodejs=\"`storageType`\" pulumi-lang-dotnet=\"`StorageType`\" pulumi-lang-go=\"`storageType`\" pulumi-lang-python=\"`storage_type`\" pulumi-lang-yaml=\"`storageType`\" pulumi-lang-java=\"`storageType`\"\u003e`storage_type`\u003c/span\u003e can be modified. However, \u003cspan pulumi-lang-nodejs=\"`storageType`\" pulumi-lang-dotnet=\"`StorageType`\" pulumi-lang-go=\"`storageType`\" pulumi-lang-python=\"`storage_type`\" pulumi-lang-yaml=\"`storageType`\" pulumi-lang-java=\"`storageType`\"\u003e`storage_type`\u003c/span\u003e can only be modified to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"tdeStatus":{"type":"string","description":"The TDE(Transparent Data Encryption) status. It can be updated from version 1.160.0.\n"},"vpcId":{"type":"string","description":"The ID of the VPC. \u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e is set to `VPC`.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the DB instance. MongoDB Sharding Instance does not support multiple-zone.\nIf it is a multi-zone and \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified, the vswitch must in one of them.\n","willReplaceOnChanges":true}},"requiredInputs":["engineVersion","mongoLists","shardLists"],"stateInputs":{"description":"Input properties used for looking up and filtering ShardingInstance resources.\n","properties":{"accountPassword":{"type":"string","description":"Password of the root account. It is a string of 6 to 32 characters and is composed of letters, numbers, and underlines.\n","secret":true},"autoRenew":{"type":"boolean","description":"Auto renew for prepaid. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewDuration":{"type":"integer","description":"The auto-renewal period. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`autoRenewDuration`\" pulumi-lang-dotnet=\"`AutoRenewDuration`\" pulumi-lang-go=\"`autoRenewDuration`\" pulumi-lang-python=\"`auto_renew_duration`\" pulumi-lang-yaml=\"`autoRenewDuration`\" pulumi-lang-java=\"`autoRenewDuration`\"\u003e`auto_renew_duration`\u003c/span\u003e must be set.\n"},"backupInterval":{"type":"string","description":"The frequency at which high-frequency backups are created. Valid values: `-1`, \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`120`\" pulumi-lang-dotnet=\"`120`\" pulumi-lang-go=\"`120`\" pulumi-lang-python=\"`120`\" pulumi-lang-yaml=\"`120`\" pulumi-lang-java=\"`120`\"\u003e`120`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`240`\" pulumi-lang-dotnet=\"`240`\" pulumi-lang-go=\"`240`\" pulumi-lang-python=\"`240`\" pulumi-lang-yaml=\"`240`\" pulumi-lang-java=\"`240`\"\u003e`240`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`360`\" pulumi-lang-dotnet=\"`360`\" pulumi-lang-go=\"`360`\" pulumi-lang-python=\"`360`\" pulumi-lang-yaml=\"`360`\" pulumi-lang-java=\"`360`\"\u003e`360`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`480`\" pulumi-lang-dotnet=\"`480`\" pulumi-lang-go=\"`480`\" pulumi-lang-python=\"`480`\" pulumi-lang-yaml=\"`480`\" pulumi-lang-java=\"`480`\"\u003e`480`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`720`\" pulumi-lang-dotnet=\"`720`\" pulumi-lang-go=\"`720`\" pulumi-lang-python=\"`720`\" pulumi-lang-yaml=\"`720`\" pulumi-lang-java=\"`720`\"\u003e`720`\u003c/span\u003e.\n"},"backupPeriods":{"type":"array","items":{"type":"string"},"description":"MongoDB Instance backup period. It is required when \u003cspan pulumi-lang-nodejs=\"`backupTime`\" pulumi-lang-dotnet=\"`BackupTime`\" pulumi-lang-go=\"`backupTime`\" pulumi-lang-python=\"`backup_time`\" pulumi-lang-yaml=\"`backupTime`\" pulumi-lang-java=\"`backupTime`\"\u003e`backup_time`\u003c/span\u003e was existed. Valid values: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]. Default to [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]\n"},"backupRetentionPeriod":{"type":"integer","description":"The retention period of full backups.\n"},"backupRetentionPolicyOnClusterDeletion":{"type":"integer","description":"The backup retention policy configured for the instance. Valid values:\n"},"backupTime":{"type":"string","description":"Sharding Instance backup time. It is required when \u003cspan pulumi-lang-nodejs=\"`backupPeriod`\" pulumi-lang-dotnet=\"`BackupPeriod`\" pulumi-lang-go=\"`backupPeriod`\" pulumi-lang-python=\"`backup_period`\" pulumi-lang-yaml=\"`backupPeriod`\" pulumi-lang-java=\"`backupPeriod`\"\u003e`backup_period`\u003c/span\u003e was existed. In the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. If not set, the system will return a default, like \"23:00Z-24:00Z\".\n"},"cloudDiskEncryptionKey":{"type":"string","description":"The ID of the encryption key.\n","willReplaceOnChanges":true},"configServerLists":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingInstanceConfigServerList:ShardingInstanceConfigServerList"},"description":"The ConfigServer nodes of the instance. See \u003cspan pulumi-lang-nodejs=\"`configServerList`\" pulumi-lang-dotnet=\"`ConfigServerList`\" pulumi-lang-go=\"`configServerList`\" pulumi-lang-python=\"`config_server_list`\" pulumi-lang-yaml=\"`configServerList`\" pulumi-lang-java=\"`configServerList`\"\u003e`config_server_list`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"dbInstanceReleaseProtection":{"type":"boolean","description":"Indicates whether release protection is enabled for the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enableBackupLog":{"type":"integer","description":"Specifies whether to enable the log backup feature. Valid values:\n- `1 `: The log backup feature is enabled.\n"},"encrypted":{"type":"boolean","description":"Whether to enable cloud disk encryption. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true},"encryptionKey":{"type":"string","description":"The ID of the custom key.\n"},"encryptorName":{"type":"string","description":"The encryption method. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`encryptorName`\" pulumi-lang-dotnet=\"`EncryptorName`\" pulumi-lang-go=\"`encryptorName`\" pulumi-lang-python=\"`encryptor_name`\" pulumi-lang-yaml=\"`encryptorName`\" pulumi-lang-java=\"`encryptorName`\"\u003e`encryptor_name`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`tdeStatus`\" pulumi-lang-dotnet=\"`TdeStatus`\" pulumi-lang-go=\"`tdeStatus`\" pulumi-lang-python=\"`tde_status`\" pulumi-lang-yaml=\"`tdeStatus`\" pulumi-lang-java=\"`tdeStatus`\"\u003e`tde_status`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"engineVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/en/doc-detail/61884.htm) `EngineVersion`. **NOTE:** From version 1.225.1, \u003cspan pulumi-lang-nodejs=\"`engineVersion`\" pulumi-lang-dotnet=\"`EngineVersion`\" pulumi-lang-go=\"`engineVersion`\" pulumi-lang-python=\"`engine_version`\" pulumi-lang-yaml=\"`engineVersion`\" pulumi-lang-java=\"`engineVersion`\"\u003e`engine_version`\u003c/span\u003e can be modified.\n"},"forceEncryption":{"type":"string","description":"Specifies whether to forcibly enable SSL encryption for connections. Valid values:\n"},"globalSecurityGroupLists":{"type":"array","items":{"type":"string"},"description":"The list of Global Security Group Ids.\n"},"hiddenZoneId":{"type":"string","description":"Configure the zone where the hidden node is located to deploy multiple zones. **NOTE:** This parameter value cannot be the same as \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secondaryZoneId`\" pulumi-lang-dotnet=\"`SecondaryZoneId`\" pulumi-lang-go=\"`secondaryZoneId`\" pulumi-lang-python=\"`secondary_zone_id`\" pulumi-lang-yaml=\"`secondaryZoneId`\" pulumi-lang-java=\"`secondaryZoneId`\"\u003e`secondary_zone_id`\u003c/span\u003e parameter values.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the instance. Default value: `PostPaid`. Valid values: `PrePaid`, `PostPaid`. **NOTE:** It can be modified from `PostPaid` to `PrePaid` after version v1.141.0.\n"},"keyIds":{"type":"array","items":{"type":"string"},"description":"(Available since v1.271.0) A list of instance keys.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a instance. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating instance with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"logBackupRetentionPeriod":{"type":"integer","description":"The number of days for which log backups are retained. Valid values: \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`logBackupRetentionPeriod`\" pulumi-lang-dotnet=\"`LogBackupRetentionPeriod`\" pulumi-lang-go=\"`logBackupRetentionPeriod`\" pulumi-lang-python=\"`log_backup_retention_period`\" pulumi-lang-yaml=\"`logBackupRetentionPeriod`\" pulumi-lang-java=\"`logBackupRetentionPeriod`\"\u003e`log_backup_retention_period`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"maintainEndTime":{"type":"string","description":"The end time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time).\n"},"maintainStartTime":{"type":"string","description":"The start time of the operation and maintenance time period of the instance, in the format of HH:mmZ (UTC time).\n"},"mongoLists":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingInstanceMongoList:ShardingInstanceMongoList"},"description":"The Mongo nodes of the instance. The mongo-node count can be purchased is in range of [2, 32]. See \u003cspan pulumi-lang-nodejs=\"`mongoList`\" pulumi-lang-dotnet=\"`MongoList`\" pulumi-lang-go=\"`mongoList`\" pulumi-lang-python=\"`mongo_list`\" pulumi-lang-yaml=\"`mongoList`\" pulumi-lang-java=\"`mongoList`\"\u003e`mongo_list`\u003c/span\u003e below.\n"},"name":{"type":"string","description":"The name of DB instance. It must be 2 to 256 characters in length.\n"},"networkType":{"type":"string","description":"The network type of the instance. Valid values:`Classic` or `VPC`.\n","willReplaceOnChanges":true},"orderType":{"type":"string","description":"The type of configuration changes performed. Default value: `DOWNGRADE`. Valid values:\n- `UPGRADE`: The specifications are upgraded.\n- `DOWNGRADE`: The specifications are downgraded.\n**NOTE:** \u003cspan pulumi-lang-nodejs=\"`orderType`\" pulumi-lang-dotnet=\"`OrderType`\" pulumi-lang-go=\"`orderType`\" pulumi-lang-python=\"`order_type`\" pulumi-lang-yaml=\"`orderType`\" pulumi-lang-java=\"`orderType`\"\u003e`order_type`\u003c/span\u003e is only applicable to instances when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingInstanceParameter:ShardingInstanceParameter"},"description":"Set of parameters needs to be set after mongodb instance was launched. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"period":{"type":"integer","description":"The duration that you will buy DB instance (in month). It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values: [1~9], 12, 24, 36.\n"},"protocolType":{"type":"string","description":"The type of the access protocol. Valid values: \u003cspan pulumi-lang-nodejs=\"`mongodb`\" pulumi-lang-dotnet=\"`Mongodb`\" pulumi-lang-go=\"`mongodb`\" pulumi-lang-python=\"`mongodb`\" pulumi-lang-yaml=\"`mongodb`\" pulumi-lang-java=\"`mongodb`\"\u003e`mongodb`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`dynamodb`\" pulumi-lang-dotnet=\"`Dynamodb`\" pulumi-lang-go=\"`dynamodb`\" pulumi-lang-python=\"`dynamodb`\" pulumi-lang-yaml=\"`dynamodb`\" pulumi-lang-java=\"`dynamodb`\"\u003e`dynamodb`\u003c/span\u003e.\n","willReplaceOnChanges":true},"provisionedIops":{"type":"integer","description":"The provisioned IOPS. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50000`\" pulumi-lang-dotnet=\"`50000`\" pulumi-lang-go=\"`50000`\" pulumi-lang-python=\"`50000`\" pulumi-lang-yaml=\"`50000`\" pulumi-lang-java=\"`50000`\"\u003e`50000`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"restoreTime":{"type":"string","description":"The point in time to which you want to restore the instance. You can specify any point in time within the last seven days. The time must be in the yyyy-MM-ddTHH:mm:ssZ format and in UTC.\n\u003e **NOTE:** You must specify \u003cspan pulumi-lang-nodejs=\"`srcDbInstanceId`\" pulumi-lang-dotnet=\"`SrcDbInstanceId`\" pulumi-lang-go=\"`srcDbInstanceId`\" pulumi-lang-python=\"`src_db_instance_id`\" pulumi-lang-yaml=\"`srcDbInstanceId`\" pulumi-lang-java=\"`srcDbInstanceId`\"\u003e`src_db_instance_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`restoreTime`\" pulumi-lang-dotnet=\"`RestoreTime`\" pulumi-lang-go=\"`restoreTime`\" pulumi-lang-python=\"`restore_time`\" pulumi-lang-yaml=\"`restoreTime`\" pulumi-lang-java=\"`restoreTime`\"\u003e`restore_time`\u003c/span\u003e only when you clone an instance based on a point in time.\n"},"retentionPeriod":{"type":"integer","description":"(Available since v1.42.0) Instance data backup retention days.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the specified Resource Access Management (RAM) role.\n"},"secondaryZoneId":{"type":"string","description":"Configure the available area where the slave node (Secondary node) is located to realize multi-available area deployment. **NOTE:** This parameter value cannot be the same as \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`hiddenZoneId`\" pulumi-lang-dotnet=\"`HiddenZoneId`\" pulumi-lang-go=\"`hiddenZoneId`\" pulumi-lang-python=\"`hidden_zone_id`\" pulumi-lang-yaml=\"`hiddenZoneId`\" pulumi-lang-java=\"`hiddenZoneId`\"\u003e`hidden_zone_id`\u003c/span\u003e parameter values.\n"},"securityGroupId":{"type":"string","description":"The Security Group ID of ECS.\n"},"securityIpLists":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]). System default to `[\"127.0.0.1\"]`.\n"},"shardLists":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingInstanceShardList:ShardingInstanceShardList"},"description":"The Shard nodes of the instance. The shard-node count can be purchased is in range of [2, 32]. See \u003cspan pulumi-lang-nodejs=\"`shardList`\" pulumi-lang-dotnet=\"`ShardList`\" pulumi-lang-go=\"`shardList`\" pulumi-lang-python=\"`shard_list`\" pulumi-lang-yaml=\"`shardList`\" pulumi-lang-java=\"`shardList`\"\u003e`shard_list`\u003c/span\u003e below.\n"},"snapshotBackupType":{"type":"string","description":"The snapshot backup type. Default value: `Standard`. Valid values:\n- `Standard`: Standard backup.\n- `Flash `: Single-digit second backup.\n"},"srcDbInstanceId":{"type":"string","description":"The source instance ID.\n"},"sslAction":{"type":"string","description":"Actions performed on SSL functions. Valid values:\n- `Open`: turn on SSL encryption.\n- `Close`: turn off SSL encryption.\n- `Update`: update SSL certificate.\n\u003e **NOTE:** Once \u003cspan pulumi-lang-nodejs=\"`sslAction`\" pulumi-lang-dotnet=\"`SslAction`\" pulumi-lang-go=\"`sslAction`\" pulumi-lang-python=\"`ssl_action`\" pulumi-lang-yaml=\"`sslAction`\" pulumi-lang-java=\"`sslAction`\"\u003e`ssl_action`\u003c/span\u003e is set, it isn't allowed to be removed from the Terraform code.\n"},"sslStatus":{"type":"string","description":"(Available since v1.259.0) The status of the SSL feature.\n"},"storageEngine":{"type":"string","description":"The storage engine of the instance. Default value: `WiredTiger`. Valid values: `WiredTiger`, `RocksDB`.\n","willReplaceOnChanges":true},"storageType":{"type":"string","description":"The storage type of the instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEssd1`\" pulumi-lang-dotnet=\"`CloudEssd1`\" pulumi-lang-go=\"`cloudEssd1`\" pulumi-lang-python=\"`cloud_essd1`\" pulumi-lang-yaml=\"`cloudEssd1`\" pulumi-lang-java=\"`cloudEssd1`\"\u003e`cloud_essd1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd2`\" pulumi-lang-dotnet=\"`CloudEssd2`\" pulumi-lang-go=\"`cloudEssd2`\" pulumi-lang-python=\"`cloud_essd2`\" pulumi-lang-yaml=\"`cloudEssd2`\" pulumi-lang-java=\"`cloudEssd2`\"\u003e`cloud_essd2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd3`\" pulumi-lang-dotnet=\"`CloudEssd3`\" pulumi-lang-go=\"`cloudEssd3`\" pulumi-lang-python=\"`cloud_essd3`\" pulumi-lang-yaml=\"`cloudEssd3`\" pulumi-lang-java=\"`cloudEssd3`\"\u003e`cloud_essd3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsd`\" pulumi-lang-dotnet=\"`LocalSsd`\" pulumi-lang-go=\"`localSsd`\" pulumi-lang-python=\"`local_ssd`\" pulumi-lang-yaml=\"`localSsd`\" pulumi-lang-java=\"`localSsd`\"\u003e`local_ssd`\u003c/span\u003e. **NOTE:** From version 1.229.0, \u003cspan pulumi-lang-nodejs=\"`storageType`\" pulumi-lang-dotnet=\"`StorageType`\" pulumi-lang-go=\"`storageType`\" pulumi-lang-python=\"`storage_type`\" pulumi-lang-yaml=\"`storageType`\" pulumi-lang-java=\"`storageType`\"\u003e`storage_type`\u003c/span\u003e can be modified. However, \u003cspan pulumi-lang-nodejs=\"`storageType`\" pulumi-lang-dotnet=\"`StorageType`\" pulumi-lang-go=\"`storageType`\" pulumi-lang-python=\"`storage_type`\" pulumi-lang-yaml=\"`storageType`\" pulumi-lang-java=\"`storageType`\"\u003e`storage_type`\u003c/span\u003e can only be modified to \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"tdeStatus":{"type":"string","description":"The TDE(Transparent Data Encryption) status. It can be updated from version 1.160.0.\n"},"vpcId":{"type":"string","description":"The ID of the VPC. \u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e is set to `VPC`.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the DB instance. MongoDB Sharding Instance does not support multiple-zone.\nIf it is a multi-zone and \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified, the vswitch must in one of them.\n","willReplaceOnChanges":true},"zoneInfos":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingInstanceZoneInfo:ShardingInstanceZoneInfo"},"description":"(Available since v1.271.0) The information of nodes in the zone.\n"}},"type":"object"}},"alicloud:mongodb/shardingNetworkPrivateAddress:ShardingNetworkPrivateAddress":{"description":"Provides a MongoDB Sharding Network Private Address resource.\n\nFor information about MongoDB Sharding Network Private Address and how to use it, see [What is Sharding Network Private Address](https://www.alibabacloud.com/help/en/doc-detail/141403.html).\n\n\u003e **NOTE:** Available since v1.157.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.mongodb.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultShardingInstance = new alicloud.mongodb.ShardingInstance(\"default\", {\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchId: defaultSwitch.id,\n    engineVersion: \"4.2\",\n    name: name,\n    shardLists: [\n        {\n            nodeClass: \"dds.shard.mid\",\n            nodeStorage: 10,\n        },\n        {\n            nodeClass: \"dds.shard.standard\",\n            nodeStorage: 20,\n            readonlyReplicas: 1,\n        },\n    ],\n    mongoLists: [\n        {\n            nodeClass: \"dds.mongos.mid\",\n        },\n        {\n            nodeClass: \"dds.mongos.mid\",\n        },\n    ],\n});\nconst defaultShardingNetworkPrivateAddress = new alicloud.mongodb.ShardingNetworkPrivateAddress(\"default\", {\n    dbInstanceId: defaultShardingInstance.id,\n    nodeId: defaultShardingInstance.shardLists.apply(shardLists =\u003e shardLists[0].nodeId),\n    zoneId: defaultShardingInstance.zoneId,\n    accountName: \"example\",\n    accountPassword: \"Example_123\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.mongodb.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_sharding_instance = alicloud.mongodb.ShardingInstance(\"default\",\n    zone_id=default.zones[0].id,\n    vswitch_id=default_switch.id,\n    engine_version=\"4.2\",\n    name=name,\n    shard_lists=[\n        {\n            \"node_class\": \"dds.shard.mid\",\n            \"node_storage\": 10,\n        },\n        {\n            \"node_class\": \"dds.shard.standard\",\n            \"node_storage\": 20,\n            \"readonly_replicas\": 1,\n        },\n    ],\n    mongo_lists=[\n        {\n            \"node_class\": \"dds.mongos.mid\",\n        },\n        {\n            \"node_class\": \"dds.mongos.mid\",\n        },\n    ])\ndefault_sharding_network_private_address = alicloud.mongodb.ShardingNetworkPrivateAddress(\"default\",\n    db_instance_id=default_sharding_instance.id,\n    node_id=default_sharding_instance.shard_lists[0].node_id,\n    zone_id=default_sharding_instance.zone_id,\n    account_name=\"example\",\n    account_password=\"Example_123\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.MongoDB.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultShardingInstance = new AliCloud.MongoDB.ShardingInstance(\"default\", new()\n    {\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchId = defaultSwitch.Id,\n        EngineVersion = \"4.2\",\n        Name = name,\n        ShardLists = new[]\n        {\n            new AliCloud.MongoDB.Inputs.ShardingInstanceShardListArgs\n            {\n                NodeClass = \"dds.shard.mid\",\n                NodeStorage = 10,\n            },\n            new AliCloud.MongoDB.Inputs.ShardingInstanceShardListArgs\n            {\n                NodeClass = \"dds.shard.standard\",\n                NodeStorage = 20,\n                ReadonlyReplicas = 1,\n            },\n        },\n        MongoLists = new[]\n        {\n            new AliCloud.MongoDB.Inputs.ShardingInstanceMongoListArgs\n            {\n                NodeClass = \"dds.mongos.mid\",\n            },\n            new AliCloud.MongoDB.Inputs.ShardingInstanceMongoListArgs\n            {\n                NodeClass = \"dds.mongos.mid\",\n            },\n        },\n    });\n\n    var defaultShardingNetworkPrivateAddress = new AliCloud.MongoDB.ShardingNetworkPrivateAddress(\"default\", new()\n    {\n        DbInstanceId = defaultShardingInstance.Id,\n        NodeId = defaultShardingInstance.ShardLists.Apply(shardLists =\u003e shardLists[0].NodeId),\n        ZoneId = defaultShardingInstance.ZoneId,\n        AccountName = \"example\",\n        AccountPassword = \"Example_123\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := mongodb.GetZones(ctx, \u0026mongodb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultShardingInstance, err := mongodb.NewShardingInstance(ctx, \"default\", \u0026mongodb.ShardingInstanceArgs{\n\t\t\tZoneId:        pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchId:     defaultSwitch.ID(),\n\t\t\tEngineVersion: pulumi.String(\"4.2\"),\n\t\t\tName:          pulumi.String(name),\n\t\t\tShardLists: mongodb.ShardingInstanceShardListArray{\n\t\t\t\t\u0026mongodb.ShardingInstanceShardListArgs{\n\t\t\t\t\tNodeClass:   pulumi.String(\"dds.shard.mid\"),\n\t\t\t\t\tNodeStorage: pulumi.Int(10),\n\t\t\t\t},\n\t\t\t\t\u0026mongodb.ShardingInstanceShardListArgs{\n\t\t\t\t\tNodeClass:        pulumi.String(\"dds.shard.standard\"),\n\t\t\t\t\tNodeStorage:      pulumi.Int(20),\n\t\t\t\t\tReadonlyReplicas: pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMongoLists: mongodb.ShardingInstanceMongoListArray{\n\t\t\t\t\u0026mongodb.ShardingInstanceMongoListArgs{\n\t\t\t\t\tNodeClass: pulumi.String(\"dds.mongos.mid\"),\n\t\t\t\t},\n\t\t\t\t\u0026mongodb.ShardingInstanceMongoListArgs{\n\t\t\t\t\tNodeClass: pulumi.String(\"dds.mongos.mid\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodb.NewShardingNetworkPrivateAddress(ctx, \"default\", \u0026mongodb.ShardingNetworkPrivateAddressArgs{\n\t\t\tDbInstanceId: defaultShardingInstance.ID(),\n\t\t\tNodeId: pulumi.String(defaultShardingInstance.ShardLists.ApplyT(func(shardLists []mongodb.ShardingInstanceShardList) (*string, error) {\n\t\t\t\treturn \u0026shardLists[0].NodeId, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tZoneId:          defaultShardingInstance.ZoneId,\n\t\t\tAccountName:     pulumi.String(\"example\"),\n\t\t\tAccountPassword: pulumi.String(\"Example_123\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.MongodbFunctions;\nimport com.pulumi.alicloud.mongodb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mongodb.ShardingInstance;\nimport com.pulumi.alicloud.mongodb.ShardingInstanceArgs;\nimport com.pulumi.alicloud.mongodb.inputs.ShardingInstanceShardListArgs;\nimport com.pulumi.alicloud.mongodb.inputs.ShardingInstanceMongoListArgs;\nimport com.pulumi.alicloud.mongodb.ShardingNetworkPrivateAddress;\nimport com.pulumi.alicloud.mongodb.ShardingNetworkPrivateAddressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = MongodbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultShardingInstance = new ShardingInstance(\"defaultShardingInstance\", ShardingInstanceArgs.builder()\n            .zoneId(default_.zones()[0].id())\n            .vswitchId(defaultSwitch.id())\n            .engineVersion(\"4.2\")\n            .name(name)\n            .shardLists(            \n                ShardingInstanceShardListArgs.builder()\n                    .nodeClass(\"dds.shard.mid\")\n                    .nodeStorage(10)\n                    .build(),\n                ShardingInstanceShardListArgs.builder()\n                    .nodeClass(\"dds.shard.standard\")\n                    .nodeStorage(20)\n                    .readonlyReplicas(1)\n                    .build())\n            .mongoLists(            \n                ShardingInstanceMongoListArgs.builder()\n                    .nodeClass(\"dds.mongos.mid\")\n                    .build(),\n                ShardingInstanceMongoListArgs.builder()\n                    .nodeClass(\"dds.mongos.mid\")\n                    .build())\n            .build());\n\n        var defaultShardingNetworkPrivateAddress = new ShardingNetworkPrivateAddress(\"defaultShardingNetworkPrivateAddress\", ShardingNetworkPrivateAddressArgs.builder()\n            .dbInstanceId(defaultShardingInstance.id())\n            .nodeId(defaultShardingInstance.shardLists().applyValue(_shardLists -\u003e _shardLists[0].nodeId()))\n            .zoneId(defaultShardingInstance.zoneId())\n            .accountName(\"example\")\n            .accountPassword(\"Example_123\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.17.3.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultShardingInstance:\n    type: alicloud:mongodb:ShardingInstance\n    name: default\n    properties:\n      zoneId: ${default.zones[0].id}\n      vswitchId: ${defaultSwitch.id}\n      engineVersion: '4.2'\n      name: ${name}\n      shardLists:\n        - nodeClass: dds.shard.mid\n          nodeStorage: '10'\n        - nodeClass: dds.shard.standard\n          nodeStorage: '20'\n          readonlyReplicas: '1'\n      mongoLists:\n        - nodeClass: dds.mongos.mid\n        - nodeClass: dds.mongos.mid\n  defaultShardingNetworkPrivateAddress:\n    type: alicloud:mongodb:ShardingNetworkPrivateAddress\n    name: default\n    properties:\n      dbInstanceId: ${defaultShardingInstance.id}\n      nodeId: ${defaultShardingInstance.shardLists[0].nodeId}\n      zoneId: ${defaultShardingInstance.zoneId}\n      accountName: example\n      accountPassword: Example_123\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:mongodb:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMongoDB Sharding Network Private Address can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mongodb/shardingNetworkPrivateAddress:ShardingNetworkPrivateAddress example \u003cdb_instance_id\u003e:\u003cnode_id\u003e\n```\n\n","properties":{"accountName":{"type":"string","description":"The username of the account.\n- The name must be 4 to 16 characters in length and can contain lowercase letters, digits, and underscores (_). It must start with a lowercase letter.\n- You need to set the account name and password only when you apply for an endpoint for a shard or ConfigServer node for the first time. In this case, the account name and password are used for all shard and ConfigServer nodes.\n- The permissions of this account are fixed to read-only.\n"},"accountPassword":{"type":"string","description":"The password for the account.\n- The password must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include `!#$%^\u0026*()_+-=`.\n- The password must be 8 to 32 characters in length.\n","secret":true},"dbInstanceId":{"type":"string","description":"The ID of the sharded cluster instance.\n"},"networkAddresses":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingNetworkPrivateAddressNetworkAddress:ShardingNetworkPrivateAddressNetworkAddress"},"description":"The connection string of the instance.\n"},"nodeId":{"type":"string","description":"The ID of the Shard node or ConfigServer node.\n"},"zoneId":{"type":"string","description":"The zone ID of the instance.\n"}},"required":["dbInstanceId","networkAddresses","nodeId","zoneId"],"inputProperties":{"accountName":{"type":"string","description":"The username of the account.\n- The name must be 4 to 16 characters in length and can contain lowercase letters, digits, and underscores (_). It must start with a lowercase letter.\n- You need to set the account name and password only when you apply for an endpoint for a shard or ConfigServer node for the first time. In this case, the account name and password are used for all shard and ConfigServer nodes.\n- The permissions of this account are fixed to read-only.\n"},"accountPassword":{"type":"string","description":"The password for the account.\n- The password must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include `!#$%^\u0026*()_+-=`.\n- The password must be 8 to 32 characters in length.\n","secret":true},"dbInstanceId":{"type":"string","description":"The ID of the sharded cluster instance.\n","willReplaceOnChanges":true},"nodeId":{"type":"string","description":"The ID of the Shard node or ConfigServer node.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the instance.\n","willReplaceOnChanges":true}},"requiredInputs":["dbInstanceId","nodeId","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering ShardingNetworkPrivateAddress resources.\n","properties":{"accountName":{"type":"string","description":"The username of the account.\n- The name must be 4 to 16 characters in length and can contain lowercase letters, digits, and underscores (_). It must start with a lowercase letter.\n- You need to set the account name and password only when you apply for an endpoint for a shard or ConfigServer node for the first time. In this case, the account name and password are used for all shard and ConfigServer nodes.\n- The permissions of this account are fixed to read-only.\n"},"accountPassword":{"type":"string","description":"The password for the account.\n- The password must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include `!#$%^\u0026*()_+-=`.\n- The password must be 8 to 32 characters in length.\n","secret":true},"dbInstanceId":{"type":"string","description":"The ID of the sharded cluster instance.\n","willReplaceOnChanges":true},"networkAddresses":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingNetworkPrivateAddressNetworkAddress:ShardingNetworkPrivateAddressNetworkAddress"},"description":"The connection string of the instance.\n"},"nodeId":{"type":"string","description":"The ID of the Shard node or ConfigServer node.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:mongodb/shardingNetworkPublicAddress:ShardingNetworkPublicAddress":{"description":"Provides a MongoDB Sharding Network Public Address resource.\n\nFor information about MongoDB Sharding Network Public Address and how to use it, see [What is Sharding Network Public Address](https://www.alibabacloud.com/help/doc-detail/67602.html).\n\n\u003e **NOTE:** Available since v1.149.0.\n\n\u003e **NOTE:** This operation supports sharded cluster instances only.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.mongodb.getZones({});\nconst index = _default.then(_default =\u003e _default.zones).length.apply(length =\u003e length - 1);\nconst zoneId = _default.then(_default =\u003e _default.zones[index].id);\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: zoneId,\n});\nconst defaultShardingInstance = new alicloud.mongodb.ShardingInstance(\"default\", {\n    zoneId: zoneId,\n    vswitchId: defaultSwitch.id,\n    engineVersion: \"4.2\",\n    name: name,\n    shardLists: [\n        {\n            nodeClass: \"dds.shard.mid\",\n            nodeStorage: 10,\n        },\n        {\n            nodeClass: \"dds.shard.standard\",\n            nodeStorage: 20,\n            readonlyReplicas: 1,\n        },\n    ],\n    mongoLists: [\n        {\n            nodeClass: \"dds.mongos.mid\",\n        },\n        {\n            nodeClass: \"dds.mongos.mid\",\n        },\n    ],\n});\nconst example = new alicloud.mongodb.ShardingNetworkPublicAddress(\"example\", {\n    dbInstanceId: defaultShardingInstance.id,\n    nodeId: defaultShardingInstance.mongoLists.apply(mongoLists =\u003e mongoLists[0].nodeId),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.mongodb.get_zones()\nindex = len(default.zones).apply(lambda length: length - 1)\nzone_id = default.zones[index].id\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=zone_id)\ndefault_sharding_instance = alicloud.mongodb.ShardingInstance(\"default\",\n    zone_id=zone_id,\n    vswitch_id=default_switch.id,\n    engine_version=\"4.2\",\n    name=name,\n    shard_lists=[\n        {\n            \"node_class\": \"dds.shard.mid\",\n            \"node_storage\": 10,\n        },\n        {\n            \"node_class\": \"dds.shard.standard\",\n            \"node_storage\": 20,\n            \"readonly_replicas\": 1,\n        },\n    ],\n    mongo_lists=[\n        {\n            \"node_class\": \"dds.mongos.mid\",\n        },\n        {\n            \"node_class\": \"dds.mongos.mid\",\n        },\n    ])\nexample = alicloud.mongodb.ShardingNetworkPublicAddress(\"example\",\n    db_instance_id=default_sharding_instance.id,\n    node_id=default_sharding_instance.mongo_lists[0].node_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.MongoDB.GetZones.Invoke();\n\n    var index = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)).Length.Apply(length =\u003e length - 1);\n\n    var zoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[index].Id);\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = zoneId,\n    });\n\n    var defaultShardingInstance = new AliCloud.MongoDB.ShardingInstance(\"default\", new()\n    {\n        ZoneId = zoneId,\n        VswitchId = defaultSwitch.Id,\n        EngineVersion = \"4.2\",\n        Name = name,\n        ShardLists = new[]\n        {\n            new AliCloud.MongoDB.Inputs.ShardingInstanceShardListArgs\n            {\n                NodeClass = \"dds.shard.mid\",\n                NodeStorage = 10,\n            },\n            new AliCloud.MongoDB.Inputs.ShardingInstanceShardListArgs\n            {\n                NodeClass = \"dds.shard.standard\",\n                NodeStorage = 20,\n                ReadonlyReplicas = 1,\n            },\n        },\n        MongoLists = new[]\n        {\n            new AliCloud.MongoDB.Inputs.ShardingInstanceMongoListArgs\n            {\n                NodeClass = \"dds.mongos.mid\",\n            },\n            new AliCloud.MongoDB.Inputs.ShardingInstanceMongoListArgs\n            {\n                NodeClass = \"dds.mongos.mid\",\n            },\n        },\n    });\n\n    var example = new AliCloud.MongoDB.ShardingNetworkPublicAddress(\"example\", new()\n    {\n        DbInstanceId = defaultShardingInstance.Id,\n        NodeId = defaultShardingInstance.MongoLists.Apply(mongoLists =\u003e mongoLists[0].NodeId),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := mongodb.GetZones(ctx, \u0026mongodb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tindex := len(_default.Zones).ApplyT(func(length int) (float64, error) {\n\t\t\treturn float64(length.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\treturn __convert - 1, nil\n\t\t\t}).(pulumi.Float64Output)), nil\n\t\t}).(pulumi.Float64Output)\n\t\tzoneId := _default.Zones[index].Id\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(zoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultShardingInstance, err := mongodb.NewShardingInstance(ctx, \"default\", \u0026mongodb.ShardingInstanceArgs{\n\t\t\tZoneId:        pulumi.String(zoneId),\n\t\t\tVswitchId:     defaultSwitch.ID(),\n\t\t\tEngineVersion: pulumi.String(\"4.2\"),\n\t\t\tName:          pulumi.String(name),\n\t\t\tShardLists: mongodb.ShardingInstanceShardListArray{\n\t\t\t\t\u0026mongodb.ShardingInstanceShardListArgs{\n\t\t\t\t\tNodeClass:   pulumi.String(\"dds.shard.mid\"),\n\t\t\t\t\tNodeStorage: pulumi.Int(10),\n\t\t\t\t},\n\t\t\t\t\u0026mongodb.ShardingInstanceShardListArgs{\n\t\t\t\t\tNodeClass:        pulumi.String(\"dds.shard.standard\"),\n\t\t\t\t\tNodeStorage:      pulumi.Int(20),\n\t\t\t\t\tReadonlyReplicas: pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMongoLists: mongodb.ShardingInstanceMongoListArray{\n\t\t\t\t\u0026mongodb.ShardingInstanceMongoListArgs{\n\t\t\t\t\tNodeClass: pulumi.String(\"dds.mongos.mid\"),\n\t\t\t\t},\n\t\t\t\t\u0026mongodb.ShardingInstanceMongoListArgs{\n\t\t\t\t\tNodeClass: pulumi.String(\"dds.mongos.mid\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodb.NewShardingNetworkPublicAddress(ctx, \"example\", \u0026mongodb.ShardingNetworkPublicAddressArgs{\n\t\t\tDbInstanceId: defaultShardingInstance.ID(),\n\t\t\tNodeId: pulumi.String(defaultShardingInstance.MongoLists.ApplyT(func(mongoLists []mongodb.ShardingInstanceMongoList) (*string, error) {\n\t\t\t\treturn \u0026mongoLists[0].NodeId, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.MongodbFunctions;\nimport com.pulumi.alicloud.mongodb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mongodb.ShardingInstance;\nimport com.pulumi.alicloud.mongodb.ShardingInstanceArgs;\nimport com.pulumi.alicloud.mongodb.inputs.ShardingInstanceShardListArgs;\nimport com.pulumi.alicloud.mongodb.inputs.ShardingInstanceMongoListArgs;\nimport com.pulumi.alicloud.mongodb.ShardingNetworkPublicAddress;\nimport com.pulumi.alicloud.mongodb.ShardingNetworkPublicAddressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = MongodbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var index = default_.zones().length().applyValue(_length -\u003e _length - 1);\n\n        final var zoneId = default_.zones()[index].id();\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(zoneId)\n            .build());\n\n        var defaultShardingInstance = new ShardingInstance(\"defaultShardingInstance\", ShardingInstanceArgs.builder()\n            .zoneId(zoneId)\n            .vswitchId(defaultSwitch.id())\n            .engineVersion(\"4.2\")\n            .name(name)\n            .shardLists(            \n                ShardingInstanceShardListArgs.builder()\n                    .nodeClass(\"dds.shard.mid\")\n                    .nodeStorage(10)\n                    .build(),\n                ShardingInstanceShardListArgs.builder()\n                    .nodeClass(\"dds.shard.standard\")\n                    .nodeStorage(20)\n                    .readonlyReplicas(1)\n                    .build())\n            .mongoLists(            \n                ShardingInstanceMongoListArgs.builder()\n                    .nodeClass(\"dds.mongos.mid\")\n                    .build(),\n                ShardingInstanceMongoListArgs.builder()\n                    .nodeClass(\"dds.mongos.mid\")\n                    .build())\n            .build());\n\n        var example = new ShardingNetworkPublicAddress(\"example\", ShardingNetworkPublicAddressArgs.builder()\n            .dbInstanceId(defaultShardingInstance.id())\n            .nodeId(defaultShardingInstance.mongoLists().applyValue(_mongoLists -\u003e _mongoLists[0].nodeId()))\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMongoDB Sharding Network Public Address can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mongodb/shardingNetworkPublicAddress:ShardingNetworkPublicAddress example \u003cdb_instance_id\u003e:\u003cnode_id\u003e\n```\n\n","properties":{"dbInstanceId":{"type":"string","description":"The ID of the instance.\n"},"networkAddresses":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingNetworkPublicAddressNetworkAddress:ShardingNetworkPublicAddressNetworkAddress"},"description":"The endpoint of the instance.\n"},"nodeId":{"type":"string","description":"The ID of the \u003cspan pulumi-lang-nodejs=\"`mongos`\" pulumi-lang-dotnet=\"`Mongos`\" pulumi-lang-go=\"`mongos`\" pulumi-lang-python=\"`mongos`\" pulumi-lang-yaml=\"`mongos`\" pulumi-lang-java=\"`mongos`\"\u003e`mongos`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`shard`\" pulumi-lang-dotnet=\"`Shard`\" pulumi-lang-go=\"`shard`\" pulumi-lang-python=\"`shard`\" pulumi-lang-yaml=\"`shard`\" pulumi-lang-java=\"`shard`\"\u003e`shard`\u003c/span\u003e, or `Configserver` node in the sharded cluster instance.\n"}},"required":["dbInstanceId","networkAddresses","nodeId"],"inputProperties":{"dbInstanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"nodeId":{"type":"string","description":"The ID of the \u003cspan pulumi-lang-nodejs=\"`mongos`\" pulumi-lang-dotnet=\"`Mongos`\" pulumi-lang-go=\"`mongos`\" pulumi-lang-python=\"`mongos`\" pulumi-lang-yaml=\"`mongos`\" pulumi-lang-java=\"`mongos`\"\u003e`mongos`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`shard`\" pulumi-lang-dotnet=\"`Shard`\" pulumi-lang-go=\"`shard`\" pulumi-lang-python=\"`shard`\" pulumi-lang-yaml=\"`shard`\" pulumi-lang-java=\"`shard`\"\u003e`shard`\u003c/span\u003e, or `Configserver` node in the sharded cluster instance.\n","willReplaceOnChanges":true}},"requiredInputs":["dbInstanceId","nodeId"],"stateInputs":{"description":"Input properties used for looking up and filtering ShardingNetworkPublicAddress resources.\n","properties":{"dbInstanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"networkAddresses":{"type":"array","items":{"$ref":"#/types/alicloud:mongodb/ShardingNetworkPublicAddressNetworkAddress:ShardingNetworkPublicAddressNetworkAddress"},"description":"The endpoint of the instance.\n"},"nodeId":{"type":"string","description":"The ID of the \u003cspan pulumi-lang-nodejs=\"`mongos`\" pulumi-lang-dotnet=\"`Mongos`\" pulumi-lang-go=\"`mongos`\" pulumi-lang-python=\"`mongos`\" pulumi-lang-yaml=\"`mongos`\" pulumi-lang-java=\"`mongos`\"\u003e`mongos`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`shard`\" pulumi-lang-dotnet=\"`Shard`\" pulumi-lang-go=\"`shard`\" pulumi-lang-python=\"`shard`\" pulumi-lang-yaml=\"`shard`\" pulumi-lang-java=\"`shard`\"\u003e`shard`\u003c/span\u003e, or `Configserver` node in the sharded cluster instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:mse/cluster:Cluster":{"description":"Provides a MSE Cluster resource. It is a one-stop microservice platform for the industry's mainstream open source microservice frameworks Spring Cloud and Dubbo, providing governance center, managed registry and managed configuration center.\n\n\u003e **NOTE:** Available since v1.94.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Create resource\nconst example = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleCluster = new alicloud.mse.Cluster(\"example\", {\n    clusterSpecification: \"MSE_SC_1_2_60_c\",\n    clusterType: \"Nacos-Ans\",\n    clusterVersion: \"NACOS_2_0_0\",\n    versionCode: \"NACOS_2_3_2_1\",\n    instanceCount: 3,\n    netType: \"privatenet\",\n    pubNetworkFlow: \"1\",\n    connectionType: \"slb\",\n    clusterAliasName: \"terraform-example\",\n    mseVersion: \"mse_pro\",\n    vswitchId: exampleSwitch.id,\n    vpcId: exampleNetwork.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Create resource\nexample = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_cluster = alicloud.mse.Cluster(\"example\",\n    cluster_specification=\"MSE_SC_1_2_60_c\",\n    cluster_type=\"Nacos-Ans\",\n    cluster_version=\"NACOS_2_0_0\",\n    version_code=\"NACOS_2_3_2_1\",\n    instance_count=3,\n    net_type=\"privatenet\",\n    pub_network_flow=\"1\",\n    connection_type=\"slb\",\n    cluster_alias_name=\"terraform-example\",\n    mse_version=\"mse_pro\",\n    vswitch_id=example_switch.id,\n    vpc_id=example_network.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create resource\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleCluster = new AliCloud.Mse.Cluster(\"example\", new()\n    {\n        ClusterSpecification = \"MSE_SC_1_2_60_c\",\n        ClusterType = \"Nacos-Ans\",\n        ClusterVersion = \"NACOS_2_0_0\",\n        VersionCode = \"NACOS_2_3_2_1\",\n        InstanceCount = 3,\n        NetType = \"privatenet\",\n        PubNetworkFlow = \"1\",\n        ConnectionType = \"slb\",\n        ClusterAliasName = \"terraform-example\",\n        MseVersion = \"mse_pro\",\n        VswitchId = exampleSwitch.Id,\n        VpcId = exampleNetwork.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mse\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create resource\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mse.NewCluster(ctx, \"example\", \u0026mse.ClusterArgs{\n\t\t\tClusterSpecification: pulumi.String(\"MSE_SC_1_2_60_c\"),\n\t\t\tClusterType:          pulumi.String(\"Nacos-Ans\"),\n\t\t\tClusterVersion:       pulumi.String(\"NACOS_2_0_0\"),\n\t\t\tVersionCode:          pulumi.String(\"NACOS_2_3_2_1\"),\n\t\t\tInstanceCount:        pulumi.Int(3),\n\t\t\tNetType:              pulumi.String(\"privatenet\"),\n\t\t\tPubNetworkFlow:       pulumi.String(\"1\"),\n\t\t\tConnectionType:       pulumi.String(\"slb\"),\n\t\t\tClusterAliasName:     pulumi.String(\"terraform-example\"),\n\t\t\tMseVersion:           pulumi.String(\"mse_pro\"),\n\t\t\tVswitchId:            exampleSwitch.ID(),\n\t\t\tVpcId:                exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mse.Cluster;\nimport com.pulumi.alicloud.mse.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create resource\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n            .clusterSpecification(\"MSE_SC_1_2_60_c\")\n            .clusterType(\"Nacos-Ans\")\n            .clusterVersion(\"NACOS_2_0_0\")\n            .versionCode(\"NACOS_2_3_2_1\")\n            .instanceCount(3)\n            .netType(\"privatenet\")\n            .pubNetworkFlow(\"1\")\n            .connectionType(\"slb\")\n            .clusterAliasName(\"terraform-example\")\n            .mseVersion(\"mse_pro\")\n            .vswitchId(exampleSwitch.id())\n            .vpcId(exampleNetwork.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleCluster:\n    type: alicloud:mse:Cluster\n    name: example\n    properties:\n      clusterSpecification: MSE_SC_1_2_60_c\n      clusterType: Nacos-Ans\n      clusterVersion: NACOS_2_0_0\n      versionCode: NACOS_2_3_2_1\n      instanceCount: 3\n      netType: privatenet\n      pubNetworkFlow: '1'\n      connectionType: slb\n      clusterAliasName: terraform-example\n      mseVersion: mse_pro\n      vswitchId: ${exampleSwitch.id}\n      vpcId: ${exampleNetwork.id}\nvariables:\n  # Create resource\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.mse.Cluster`\" pulumi-lang-dotnet=\"`alicloud.mse.Cluster`\" pulumi-lang-go=\"`mse.Cluster`\" pulumi-lang-python=\"`mse.Cluster`\" pulumi-lang-yaml=\"`alicloud.mse.Cluster`\" pulumi-lang-java=\"`alicloud.mse.Cluster`\"\u003e`alicloud.mse.Cluster`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.mse.Cluster`\" pulumi-lang-dotnet=\"`alicloud.mse.Cluster`\" pulumi-lang-go=\"`mse.Cluster`\" pulumi-lang-python=\"`mse.Cluster`\" pulumi-lang-yaml=\"`alicloud.mse.Cluster`\" pulumi-lang-java=\"`alicloud.mse.Cluster`\"\u003e`alicloud.mse.Cluster`\u003c/span\u003e resource allows you to manage  \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"Subscription\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMSE Cluster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mse/cluster:Cluster example mse-cn-0d9xxxx\n```\n\n","properties":{"aclEntryLists":{"type":"array","items":{"type":"string"},"description":"The whitelist. **NOTE:** This attribute is invalid when the value of \u003cspan pulumi-lang-nodejs=\"`pubNetworkFlow`\" pulumi-lang-dotnet=\"`PubNetworkFlow`\" pulumi-lang-go=\"`pubNetworkFlow`\" pulumi-lang-python=\"`pub_network_flow`\" pulumi-lang-yaml=\"`pubNetworkFlow`\" pulumi-lang-java=\"`pubNetworkFlow`\"\u003e`pub_network_flow`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and the value of \u003cspan pulumi-lang-nodejs=\"`netType`\" pulumi-lang-dotnet=\"`NetType`\" pulumi-lang-go=\"`netType`\" pulumi-lang-python=\"`net_type`\" pulumi-lang-yaml=\"`netType`\" pulumi-lang-java=\"`netType`\"\u003e`net_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`privatenet`\" pulumi-lang-dotnet=\"`Privatenet`\" pulumi-lang-go=\"`privatenet`\" pulumi-lang-python=\"`privatenet`\" pulumi-lang-yaml=\"`privatenet`\" pulumi-lang-java=\"`privatenet`\"\u003e`privatenet`\u003c/span\u003e.\n"},"appVersion":{"type":"string","description":"(Available since v1.205.0) The application version.\n"},"clusterAliasName":{"type":"string","description":"The alias of MSE Cluster.\n"},"clusterId":{"type":"string","description":"(Available since v1.162.0) The cluster id of Cluster.\n"},"clusterSpecification":{"type":"string","description":"The engine specification of MSE Cluster. **NOTE:** From version 1.188.0, \u003cspan pulumi-lang-nodejs=\"`clusterSpecification`\" pulumi-lang-dotnet=\"`ClusterSpecification`\" pulumi-lang-go=\"`clusterSpecification`\" pulumi-lang-python=\"`cluster_specification`\" pulumi-lang-yaml=\"`clusterSpecification`\" pulumi-lang-java=\"`clusterSpecification`\"\u003e`cluster_specification`\u003c/span\u003e can be modified. If you were an international user, please use the specification version ending with `_200_c`.Valid values:\n- Professional Edition\n- `MSE_SC_1_2_60_c`: 1C2G\n- `MSE_SC_2_4_60_c`: 2C4G\n- `MSE_SC_4_8_60_c`: 4C8G\n- `MSE_SC_8_16_60_c`: 8C16G\n- `MSE_SC_16_32_60_c`:16C32G\n- `MSE_SC_1_2_200_c`: 1C2G\n- `MSE_SC_2_4_200_c`: 2C4G\n- `MSE_SC_4_8_200_c`: 4C8G\n- `MSE_SC_8_16_200_c`: 8C16G\n- `MSE_SC_16_32_200_c`:16C32G\n- Developer Edition\n- `MSE_SC_1_2_60_c`: 1C2G\n- `MSE_SC_2_4_60_c`: 2C4G\n- `MSE_SC_1_2_200_c`: 1C2G\n- `MSE_SC_2_4_200_c`: 2C4G\n- Serverless Edition\n- `MSE_SC_SERVERLESS`: Available since v1.232.0\n"},"clusterType":{"type":"string","description":"The type of MSE Cluster.\n"},"clusterVersion":{"type":"string","description":"The version of MSE Cluster. See [details](https://www.alibabacloud.com/help/en/mse/developer-reference/api-mse-2019-05-31-createcluster)\n"},"connectionType":{"type":"string","description":"The connection type. Valid values: \u003cspan pulumi-lang-nodejs=\"`slb`\" pulumi-lang-dotnet=\"`Slb`\" pulumi-lang-go=\"`slb`\" pulumi-lang-python=\"`slb`\" pulumi-lang-yaml=\"`slb`\" pulumi-lang-java=\"`slb`\"\u003e`slb`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`singleEni`\" pulumi-lang-dotnet=\"`SingleEni`\" pulumi-lang-go=\"`singleEni`\" pulumi-lang-python=\"`single_eni`\" pulumi-lang-yaml=\"`singleEni`\" pulumi-lang-java=\"`singleEni`\"\u003e`single_eni`\u003c/span\u003e(Available since v1.232.0). If your region is one of `ap-southeast-6、us-west-1、eu-central-1、us-east-1、ap-southeast-1`,and your cluster's\u003cspan pulumi-lang-nodejs=\" mseVersion \" pulumi-lang-dotnet=\" MseVersion \" pulumi-lang-go=\" mseVersion \" pulumi-lang-python=\" mse_version \" pulumi-lang-yaml=\" mseVersion \" pulumi-lang-java=\" mseVersion \"\u003e mse_version \u003c/span\u003eis \u003cspan pulumi-lang-nodejs=\"`mseDev`\" pulumi-lang-dotnet=\"`MseDev`\" pulumi-lang-go=\"`mseDev`\" pulumi-lang-python=\"`mse_dev`\" pulumi-lang-yaml=\"`mseDev`\" pulumi-lang-java=\"`mseDev`\"\u003e`mse_dev`\u003c/span\u003e,please use \u003cspan pulumi-lang-nodejs=\"`singleEni`\" pulumi-lang-dotnet=\"`SingleEni`\" pulumi-lang-go=\"`singleEni`\" pulumi-lang-python=\"`single_eni`\" pulumi-lang-yaml=\"`singleEni`\" pulumi-lang-java=\"`singleEni`\"\u003e`single_eni`\u003c/span\u003e.\n"},"diskType":{"type":"string","description":"The type of Disk.\n"},"instanceCount":{"type":"integer","description":"The count of instance. **NOTE:** From version 1.188.0, \u003cspan pulumi-lang-nodejs=\"`instanceCount`\" pulumi-lang-dotnet=\"`InstanceCount`\" pulumi-lang-go=\"`instanceCount`\" pulumi-lang-python=\"`instance_count`\" pulumi-lang-yaml=\"`instanceCount`\" pulumi-lang-java=\"`instanceCount`\"\u003e`instance_count`\u003c/span\u003e can be modified.\n"},"mseVersion":{"type":"string","description":"The version of MSE. Valid values: \u003cspan pulumi-lang-nodejs=\"`mseDev`\" pulumi-lang-dotnet=\"`MseDev`\" pulumi-lang-go=\"`mseDev`\" pulumi-lang-python=\"`mse_dev`\" pulumi-lang-yaml=\"`mseDev`\" pulumi-lang-java=\"`mseDev`\"\u003e`mse_dev`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`msePro`\" pulumi-lang-dotnet=\"`MsePro`\" pulumi-lang-go=\"`msePro`\" pulumi-lang-python=\"`mse_pro`\" pulumi-lang-yaml=\"`msePro`\" pulumi-lang-java=\"`msePro`\"\u003e`mse_pro`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`mseServerless`\" pulumi-lang-dotnet=\"`MseServerless`\" pulumi-lang-go=\"`mseServerless`\" pulumi-lang-python=\"`mse_serverless`\" pulumi-lang-yaml=\"`mseServerless`\" pulumi-lang-java=\"`mseServerless`\"\u003e`mse_serverless`\u003c/span\u003e(Available since v1.232.0).\n"},"netType":{"type":"string","description":"The type of network. Valid values: \u003cspan pulumi-lang-nodejs=\"`privatenet`\" pulumi-lang-dotnet=\"`Privatenet`\" pulumi-lang-go=\"`privatenet`\" pulumi-lang-python=\"`privatenet`\" pulumi-lang-yaml=\"`privatenet`\" pulumi-lang-java=\"`privatenet`\"\u003e`privatenet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`pubnet`\" pulumi-lang-dotnet=\"`Pubnet`\" pulumi-lang-go=\"`pubnet`\" pulumi-lang-python=\"`pubnet`\" pulumi-lang-yaml=\"`pubnet`\" pulumi-lang-java=\"`pubnet`\"\u003e`pubnet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e(Available since v1.232.0).\n"},"paymentType":{"type":"string","description":"Payment type: Subscription (prepaid), PayAsYouGo (postpaid). Default PayAsYouGo.\n"},"privateSlbSpecification":{"type":"string","description":"The specification of private network SLB.\n"},"pubNetworkFlow":{"type":"string","description":"The public network bandwidth.\n"},"pubSlbSpecification":{"type":"string","description":"The specification of public network SLB. Serverless Instance could ignore this parameter.\n"},"requestPars":{"type":"string","description":"The extended request parameters in the JSON format.\n"},"resourceGroupId":{"type":"string","description":"The resource group of the resource.\n"},"status":{"type":"string","description":"The status of MSE Cluster.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"versionCode":{"type":"string","description":"The version code of MSE Cluster. You can keep the instance version up to date by setting the value to `LATEST` (Available since v1.257.0).\n"},"vpcId":{"type":"string","description":"The id of the VPC.\n"},"vswitchId":{"type":"string","description":"The id of VSwitch.\n"}},"required":["appVersion","clusterAliasName","clusterId","clusterSpecification","clusterType","clusterVersion","connectionType","instanceCount","mseVersion","netType","paymentType","pubNetworkFlow","resourceGroupId","status","versionCode","vpcId"],"inputProperties":{"aclEntryLists":{"type":"array","items":{"type":"string"},"description":"The whitelist. **NOTE:** This attribute is invalid when the value of \u003cspan pulumi-lang-nodejs=\"`pubNetworkFlow`\" pulumi-lang-dotnet=\"`PubNetworkFlow`\" pulumi-lang-go=\"`pubNetworkFlow`\" pulumi-lang-python=\"`pub_network_flow`\" pulumi-lang-yaml=\"`pubNetworkFlow`\" pulumi-lang-java=\"`pubNetworkFlow`\"\u003e`pub_network_flow`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and the value of \u003cspan pulumi-lang-nodejs=\"`netType`\" pulumi-lang-dotnet=\"`NetType`\" pulumi-lang-go=\"`netType`\" pulumi-lang-python=\"`net_type`\" pulumi-lang-yaml=\"`netType`\" pulumi-lang-java=\"`netType`\"\u003e`net_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`privatenet`\" pulumi-lang-dotnet=\"`Privatenet`\" pulumi-lang-go=\"`privatenet`\" pulumi-lang-python=\"`privatenet`\" pulumi-lang-yaml=\"`privatenet`\" pulumi-lang-java=\"`privatenet`\"\u003e`privatenet`\u003c/span\u003e.\n"},"clusterAliasName":{"type":"string","description":"The alias of MSE Cluster.\n"},"clusterSpecification":{"type":"string","description":"The engine specification of MSE Cluster. **NOTE:** From version 1.188.0, \u003cspan pulumi-lang-nodejs=\"`clusterSpecification`\" pulumi-lang-dotnet=\"`ClusterSpecification`\" pulumi-lang-go=\"`clusterSpecification`\" pulumi-lang-python=\"`cluster_specification`\" pulumi-lang-yaml=\"`clusterSpecification`\" pulumi-lang-java=\"`clusterSpecification`\"\u003e`cluster_specification`\u003c/span\u003e can be modified. If you were an international user, please use the specification version ending with `_200_c`.Valid values:\n- Professional Edition\n- `MSE_SC_1_2_60_c`: 1C2G\n- `MSE_SC_2_4_60_c`: 2C4G\n- `MSE_SC_4_8_60_c`: 4C8G\n- `MSE_SC_8_16_60_c`: 8C16G\n- `MSE_SC_16_32_60_c`:16C32G\n- `MSE_SC_1_2_200_c`: 1C2G\n- `MSE_SC_2_4_200_c`: 2C4G\n- `MSE_SC_4_8_200_c`: 4C8G\n- `MSE_SC_8_16_200_c`: 8C16G\n- `MSE_SC_16_32_200_c`:16C32G\n- Developer Edition\n- `MSE_SC_1_2_60_c`: 1C2G\n- `MSE_SC_2_4_60_c`: 2C4G\n- `MSE_SC_1_2_200_c`: 1C2G\n- `MSE_SC_2_4_200_c`: 2C4G\n- Serverless Edition\n- `MSE_SC_SERVERLESS`: Available since v1.232.0\n"},"clusterType":{"type":"string","description":"The type of MSE Cluster.\n","willReplaceOnChanges":true},"clusterVersion":{"type":"string","description":"The version of MSE Cluster. See [details](https://www.alibabacloud.com/help/en/mse/developer-reference/api-mse-2019-05-31-createcluster)\n","willReplaceOnChanges":true},"connectionType":{"type":"string","description":"The connection type. Valid values: \u003cspan pulumi-lang-nodejs=\"`slb`\" pulumi-lang-dotnet=\"`Slb`\" pulumi-lang-go=\"`slb`\" pulumi-lang-python=\"`slb`\" pulumi-lang-yaml=\"`slb`\" pulumi-lang-java=\"`slb`\"\u003e`slb`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`singleEni`\" pulumi-lang-dotnet=\"`SingleEni`\" pulumi-lang-go=\"`singleEni`\" pulumi-lang-python=\"`single_eni`\" pulumi-lang-yaml=\"`singleEni`\" pulumi-lang-java=\"`singleEni`\"\u003e`single_eni`\u003c/span\u003e(Available since v1.232.0). If your region is one of `ap-southeast-6、us-west-1、eu-central-1、us-east-1、ap-southeast-1`,and your cluster's\u003cspan pulumi-lang-nodejs=\" mseVersion \" pulumi-lang-dotnet=\" MseVersion \" pulumi-lang-go=\" mseVersion \" pulumi-lang-python=\" mse_version \" pulumi-lang-yaml=\" mseVersion \" pulumi-lang-java=\" mseVersion \"\u003e mse_version \u003c/span\u003eis \u003cspan pulumi-lang-nodejs=\"`mseDev`\" pulumi-lang-dotnet=\"`MseDev`\" pulumi-lang-go=\"`mseDev`\" pulumi-lang-python=\"`mse_dev`\" pulumi-lang-yaml=\"`mseDev`\" pulumi-lang-java=\"`mseDev`\"\u003e`mse_dev`\u003c/span\u003e,please use \u003cspan pulumi-lang-nodejs=\"`singleEni`\" pulumi-lang-dotnet=\"`SingleEni`\" pulumi-lang-go=\"`singleEni`\" pulumi-lang-python=\"`single_eni`\" pulumi-lang-yaml=\"`singleEni`\" pulumi-lang-java=\"`singleEni`\"\u003e`single_eni`\u003c/span\u003e.\n","willReplaceOnChanges":true},"diskType":{"type":"string","description":"The type of Disk.\n"},"instanceCount":{"type":"integer","description":"The count of instance. **NOTE:** From version 1.188.0, \u003cspan pulumi-lang-nodejs=\"`instanceCount`\" pulumi-lang-dotnet=\"`InstanceCount`\" pulumi-lang-go=\"`instanceCount`\" pulumi-lang-python=\"`instance_count`\" pulumi-lang-yaml=\"`instanceCount`\" pulumi-lang-java=\"`instanceCount`\"\u003e`instance_count`\u003c/span\u003e can be modified.\n"},"mseVersion":{"type":"string","description":"The version of MSE. Valid values: \u003cspan pulumi-lang-nodejs=\"`mseDev`\" pulumi-lang-dotnet=\"`MseDev`\" pulumi-lang-go=\"`mseDev`\" pulumi-lang-python=\"`mse_dev`\" pulumi-lang-yaml=\"`mseDev`\" pulumi-lang-java=\"`mseDev`\"\u003e`mse_dev`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`msePro`\" pulumi-lang-dotnet=\"`MsePro`\" pulumi-lang-go=\"`msePro`\" pulumi-lang-python=\"`mse_pro`\" pulumi-lang-yaml=\"`msePro`\" pulumi-lang-java=\"`msePro`\"\u003e`mse_pro`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`mseServerless`\" pulumi-lang-dotnet=\"`MseServerless`\" pulumi-lang-go=\"`mseServerless`\" pulumi-lang-python=\"`mse_serverless`\" pulumi-lang-yaml=\"`mseServerless`\" pulumi-lang-java=\"`mseServerless`\"\u003e`mse_serverless`\u003c/span\u003e(Available since v1.232.0).\n","willReplaceOnChanges":true},"netType":{"type":"string","description":"The type of network. Valid values: \u003cspan pulumi-lang-nodejs=\"`privatenet`\" pulumi-lang-dotnet=\"`Privatenet`\" pulumi-lang-go=\"`privatenet`\" pulumi-lang-python=\"`privatenet`\" pulumi-lang-yaml=\"`privatenet`\" pulumi-lang-java=\"`privatenet`\"\u003e`privatenet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`pubnet`\" pulumi-lang-dotnet=\"`Pubnet`\" pulumi-lang-go=\"`pubnet`\" pulumi-lang-python=\"`pubnet`\" pulumi-lang-yaml=\"`pubnet`\" pulumi-lang-java=\"`pubnet`\"\u003e`pubnet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e(Available since v1.232.0).\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"Payment type: Subscription (prepaid), PayAsYouGo (postpaid). Default PayAsYouGo.\n","willReplaceOnChanges":true},"privateSlbSpecification":{"type":"string","description":"The specification of private network SLB.\n"},"pubNetworkFlow":{"type":"string","description":"The public network bandwidth.\n"},"pubSlbSpecification":{"type":"string","description":"The specification of public network SLB. Serverless Instance could ignore this parameter.\n"},"requestPars":{"type":"string","description":"The extended request parameters in the JSON format.\n"},"resourceGroupId":{"type":"string","description":"The resource group of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"versionCode":{"type":"string","description":"The version code of MSE Cluster. You can keep the instance version up to date by setting the value to `LATEST` (Available since v1.257.0).\n"},"vpcId":{"type":"string","description":"The id of the VPC.\n"},"vswitchId":{"type":"string","description":"The id of VSwitch.\n"}},"requiredInputs":["clusterSpecification","clusterType","clusterVersion","instanceCount","netType","pubNetworkFlow"],"stateInputs":{"description":"Input properties used for looking up and filtering Cluster resources.\n","properties":{"aclEntryLists":{"type":"array","items":{"type":"string"},"description":"The whitelist. **NOTE:** This attribute is invalid when the value of \u003cspan pulumi-lang-nodejs=\"`pubNetworkFlow`\" pulumi-lang-dotnet=\"`PubNetworkFlow`\" pulumi-lang-go=\"`pubNetworkFlow`\" pulumi-lang-python=\"`pub_network_flow`\" pulumi-lang-yaml=\"`pubNetworkFlow`\" pulumi-lang-java=\"`pubNetworkFlow`\"\u003e`pub_network_flow`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and the value of \u003cspan pulumi-lang-nodejs=\"`netType`\" pulumi-lang-dotnet=\"`NetType`\" pulumi-lang-go=\"`netType`\" pulumi-lang-python=\"`net_type`\" pulumi-lang-yaml=\"`netType`\" pulumi-lang-java=\"`netType`\"\u003e`net_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`privatenet`\" pulumi-lang-dotnet=\"`Privatenet`\" pulumi-lang-go=\"`privatenet`\" pulumi-lang-python=\"`privatenet`\" pulumi-lang-yaml=\"`privatenet`\" pulumi-lang-java=\"`privatenet`\"\u003e`privatenet`\u003c/span\u003e.\n"},"appVersion":{"type":"string","description":"(Available since v1.205.0) The application version.\n"},"clusterAliasName":{"type":"string","description":"The alias of MSE Cluster.\n"},"clusterId":{"type":"string","description":"(Available since v1.162.0) The cluster id of Cluster.\n"},"clusterSpecification":{"type":"string","description":"The engine specification of MSE Cluster. **NOTE:** From version 1.188.0, \u003cspan pulumi-lang-nodejs=\"`clusterSpecification`\" pulumi-lang-dotnet=\"`ClusterSpecification`\" pulumi-lang-go=\"`clusterSpecification`\" pulumi-lang-python=\"`cluster_specification`\" pulumi-lang-yaml=\"`clusterSpecification`\" pulumi-lang-java=\"`clusterSpecification`\"\u003e`cluster_specification`\u003c/span\u003e can be modified. If you were an international user, please use the specification version ending with `_200_c`.Valid values:\n- Professional Edition\n- `MSE_SC_1_2_60_c`: 1C2G\n- `MSE_SC_2_4_60_c`: 2C4G\n- `MSE_SC_4_8_60_c`: 4C8G\n- `MSE_SC_8_16_60_c`: 8C16G\n- `MSE_SC_16_32_60_c`:16C32G\n- `MSE_SC_1_2_200_c`: 1C2G\n- `MSE_SC_2_4_200_c`: 2C4G\n- `MSE_SC_4_8_200_c`: 4C8G\n- `MSE_SC_8_16_200_c`: 8C16G\n- `MSE_SC_16_32_200_c`:16C32G\n- Developer Edition\n- `MSE_SC_1_2_60_c`: 1C2G\n- `MSE_SC_2_4_60_c`: 2C4G\n- `MSE_SC_1_2_200_c`: 1C2G\n- `MSE_SC_2_4_200_c`: 2C4G\n- Serverless Edition\n- `MSE_SC_SERVERLESS`: Available since v1.232.0\n"},"clusterType":{"type":"string","description":"The type of MSE Cluster.\n","willReplaceOnChanges":true},"clusterVersion":{"type":"string","description":"The version of MSE Cluster. See [details](https://www.alibabacloud.com/help/en/mse/developer-reference/api-mse-2019-05-31-createcluster)\n","willReplaceOnChanges":true},"connectionType":{"type":"string","description":"The connection type. Valid values: \u003cspan pulumi-lang-nodejs=\"`slb`\" pulumi-lang-dotnet=\"`Slb`\" pulumi-lang-go=\"`slb`\" pulumi-lang-python=\"`slb`\" pulumi-lang-yaml=\"`slb`\" pulumi-lang-java=\"`slb`\"\u003e`slb`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`singleEni`\" pulumi-lang-dotnet=\"`SingleEni`\" pulumi-lang-go=\"`singleEni`\" pulumi-lang-python=\"`single_eni`\" pulumi-lang-yaml=\"`singleEni`\" pulumi-lang-java=\"`singleEni`\"\u003e`single_eni`\u003c/span\u003e(Available since v1.232.0). If your region is one of `ap-southeast-6、us-west-1、eu-central-1、us-east-1、ap-southeast-1`,and your cluster's\u003cspan pulumi-lang-nodejs=\" mseVersion \" pulumi-lang-dotnet=\" MseVersion \" pulumi-lang-go=\" mseVersion \" pulumi-lang-python=\" mse_version \" pulumi-lang-yaml=\" mseVersion \" pulumi-lang-java=\" mseVersion \"\u003e mse_version \u003c/span\u003eis \u003cspan pulumi-lang-nodejs=\"`mseDev`\" pulumi-lang-dotnet=\"`MseDev`\" pulumi-lang-go=\"`mseDev`\" pulumi-lang-python=\"`mse_dev`\" pulumi-lang-yaml=\"`mseDev`\" pulumi-lang-java=\"`mseDev`\"\u003e`mse_dev`\u003c/span\u003e,please use \u003cspan pulumi-lang-nodejs=\"`singleEni`\" pulumi-lang-dotnet=\"`SingleEni`\" pulumi-lang-go=\"`singleEni`\" pulumi-lang-python=\"`single_eni`\" pulumi-lang-yaml=\"`singleEni`\" pulumi-lang-java=\"`singleEni`\"\u003e`single_eni`\u003c/span\u003e.\n","willReplaceOnChanges":true},"diskType":{"type":"string","description":"The type of Disk.\n"},"instanceCount":{"type":"integer","description":"The count of instance. **NOTE:** From version 1.188.0, \u003cspan pulumi-lang-nodejs=\"`instanceCount`\" pulumi-lang-dotnet=\"`InstanceCount`\" pulumi-lang-go=\"`instanceCount`\" pulumi-lang-python=\"`instance_count`\" pulumi-lang-yaml=\"`instanceCount`\" pulumi-lang-java=\"`instanceCount`\"\u003e`instance_count`\u003c/span\u003e can be modified.\n"},"mseVersion":{"type":"string","description":"The version of MSE. Valid values: \u003cspan pulumi-lang-nodejs=\"`mseDev`\" pulumi-lang-dotnet=\"`MseDev`\" pulumi-lang-go=\"`mseDev`\" pulumi-lang-python=\"`mse_dev`\" pulumi-lang-yaml=\"`mseDev`\" pulumi-lang-java=\"`mseDev`\"\u003e`mse_dev`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`msePro`\" pulumi-lang-dotnet=\"`MsePro`\" pulumi-lang-go=\"`msePro`\" pulumi-lang-python=\"`mse_pro`\" pulumi-lang-yaml=\"`msePro`\" pulumi-lang-java=\"`msePro`\"\u003e`mse_pro`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`mseServerless`\" pulumi-lang-dotnet=\"`MseServerless`\" pulumi-lang-go=\"`mseServerless`\" pulumi-lang-python=\"`mse_serverless`\" pulumi-lang-yaml=\"`mseServerless`\" pulumi-lang-java=\"`mseServerless`\"\u003e`mse_serverless`\u003c/span\u003e(Available since v1.232.0).\n","willReplaceOnChanges":true},"netType":{"type":"string","description":"The type of network. Valid values: \u003cspan pulumi-lang-nodejs=\"`privatenet`\" pulumi-lang-dotnet=\"`Privatenet`\" pulumi-lang-go=\"`privatenet`\" pulumi-lang-python=\"`privatenet`\" pulumi-lang-yaml=\"`privatenet`\" pulumi-lang-java=\"`privatenet`\"\u003e`privatenet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`pubnet`\" pulumi-lang-dotnet=\"`Pubnet`\" pulumi-lang-go=\"`pubnet`\" pulumi-lang-python=\"`pubnet`\" pulumi-lang-yaml=\"`pubnet`\" pulumi-lang-java=\"`pubnet`\"\u003e`pubnet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e(Available since v1.232.0).\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"Payment type: Subscription (prepaid), PayAsYouGo (postpaid). Default PayAsYouGo.\n","willReplaceOnChanges":true},"privateSlbSpecification":{"type":"string","description":"The specification of private network SLB.\n"},"pubNetworkFlow":{"type":"string","description":"The public network bandwidth.\n"},"pubSlbSpecification":{"type":"string","description":"The specification of public network SLB. Serverless Instance could ignore this parameter.\n"},"requestPars":{"type":"string","description":"The extended request parameters in the JSON format.\n"},"resourceGroupId":{"type":"string","description":"The resource group of the resource.\n"},"status":{"type":"string","description":"The status of MSE Cluster.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"versionCode":{"type":"string","description":"The version code of MSE Cluster. You can keep the instance version up to date by setting the value to `LATEST` (Available since v1.257.0).\n"},"vpcId":{"type":"string","description":"The id of the VPC.\n"},"vswitchId":{"type":"string","description":"The id of VSwitch.\n"}},"type":"object"}},"alicloud:mse/engineNamespace:EngineNamespace":{"description":"Provides a Microservice Engine (MSE) Engine Namespace resource.\n\nFor information about Microservice Engine (MSE) Engine Namespace and how to use it, see [What is Engine Namespace](https://www.alibabacloud.com/help/en/mse/developer-reference/api-mse-2019-05-31-createenginenamespace).\n\n\u003e **NOTE:** Available since v1.166.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleCluster = new alicloud.mse.Cluster(\"example\", {\n    clusterSpecification: \"MSE_SC_1_2_60_c\",\n    clusterType: \"Nacos-Ans\",\n    clusterVersion: \"NACOS_2_0_0\",\n    instanceCount: 3,\n    netType: \"privatenet\",\n    pubNetworkFlow: \"1\",\n    connectionType: \"slb\",\n    clusterAliasName: \"terraform-example\",\n    mseVersion: \"mse_pro\",\n    vswitchId: exampleSwitch.id,\n    vpcId: exampleNetwork.id,\n});\nconst exampleEngineNamespace = new alicloud.mse.EngineNamespace(\"example\", {\n    instanceId: exampleCluster.id,\n    namespaceShowName: \"terraform-example\",\n    namespaceId: \"terraform-example\",\n    namespaceDesc: \"description\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_cluster = alicloud.mse.Cluster(\"example\",\n    cluster_specification=\"MSE_SC_1_2_60_c\",\n    cluster_type=\"Nacos-Ans\",\n    cluster_version=\"NACOS_2_0_0\",\n    instance_count=3,\n    net_type=\"privatenet\",\n    pub_network_flow=\"1\",\n    connection_type=\"slb\",\n    cluster_alias_name=\"terraform-example\",\n    mse_version=\"mse_pro\",\n    vswitch_id=example_switch.id,\n    vpc_id=example_network.id)\nexample_engine_namespace = alicloud.mse.EngineNamespace(\"example\",\n    instance_id=example_cluster.id,\n    namespace_show_name=\"terraform-example\",\n    namespace_id=\"terraform-example\",\n    namespace_desc=\"description\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleCluster = new AliCloud.Mse.Cluster(\"example\", new()\n    {\n        ClusterSpecification = \"MSE_SC_1_2_60_c\",\n        ClusterType = \"Nacos-Ans\",\n        ClusterVersion = \"NACOS_2_0_0\",\n        InstanceCount = 3,\n        NetType = \"privatenet\",\n        PubNetworkFlow = \"1\",\n        ConnectionType = \"slb\",\n        ClusterAliasName = \"terraform-example\",\n        MseVersion = \"mse_pro\",\n        VswitchId = exampleSwitch.Id,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleEngineNamespace = new AliCloud.Mse.EngineNamespace(\"example\", new()\n    {\n        InstanceId = exampleCluster.Id,\n        NamespaceShowName = \"terraform-example\",\n        NamespaceId = \"terraform-example\",\n        NamespaceDesc = \"description\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mse\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := mse.NewCluster(ctx, \"example\", \u0026mse.ClusterArgs{\n\t\t\tClusterSpecification: pulumi.String(\"MSE_SC_1_2_60_c\"),\n\t\t\tClusterType:          pulumi.String(\"Nacos-Ans\"),\n\t\t\tClusterVersion:       pulumi.String(\"NACOS_2_0_0\"),\n\t\t\tInstanceCount:        pulumi.Int(3),\n\t\t\tNetType:              pulumi.String(\"privatenet\"),\n\t\t\tPubNetworkFlow:       pulumi.String(\"1\"),\n\t\t\tConnectionType:       pulumi.String(\"slb\"),\n\t\t\tClusterAliasName:     pulumi.String(\"terraform-example\"),\n\t\t\tMseVersion:           pulumi.String(\"mse_pro\"),\n\t\t\tVswitchId:            exampleSwitch.ID(),\n\t\t\tVpcId:                exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mse.NewEngineNamespace(ctx, \"example\", \u0026mse.EngineNamespaceArgs{\n\t\t\tInstanceId:        exampleCluster.ID(),\n\t\t\tNamespaceShowName: pulumi.String(\"terraform-example\"),\n\t\t\tNamespaceId:       pulumi.String(\"terraform-example\"),\n\t\t\tNamespaceDesc:     pulumi.String(\"description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mse.Cluster;\nimport com.pulumi.alicloud.mse.ClusterArgs;\nimport com.pulumi.alicloud.mse.EngineNamespace;\nimport com.pulumi.alicloud.mse.EngineNamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n            .clusterSpecification(\"MSE_SC_1_2_60_c\")\n            .clusterType(\"Nacos-Ans\")\n            .clusterVersion(\"NACOS_2_0_0\")\n            .instanceCount(3)\n            .netType(\"privatenet\")\n            .pubNetworkFlow(\"1\")\n            .connectionType(\"slb\")\n            .clusterAliasName(\"terraform-example\")\n            .mseVersion(\"mse_pro\")\n            .vswitchId(exampleSwitch.id())\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleEngineNamespace = new EngineNamespace(\"exampleEngineNamespace\", EngineNamespaceArgs.builder()\n            .instanceId(exampleCluster.id())\n            .namespaceShowName(\"terraform-example\")\n            .namespaceId(\"terraform-example\")\n            .namespaceDesc(\"description\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleCluster:\n    type: alicloud:mse:Cluster\n    name: example\n    properties:\n      clusterSpecification: MSE_SC_1_2_60_c\n      clusterType: Nacos-Ans\n      clusterVersion: NACOS_2_0_0\n      instanceCount: 3\n      netType: privatenet\n      pubNetworkFlow: '1'\n      connectionType: slb\n      clusterAliasName: terraform-example\n      mseVersion: mse_pro\n      vswitchId: ${exampleSwitch.id}\n      vpcId: ${exampleNetwork.id}\n  exampleEngineNamespace:\n    type: alicloud:mse:EngineNamespace\n    name: example\n    properties:\n      instanceId: ${exampleCluster.id}\n      namespaceShowName: terraform-example\n      namespaceId: terraform-example\n      namespaceDesc: description\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMicroservice Engine (MSE) Engine Namespace can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mse/engineNamespace:EngineNamespace example \u003cinstance_id\u003e:\u003cnamespace_id\u003e\n```\n\n","properties":{"acceptLanguage":{"type":"string","description":"The language type of the returned information. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"clusterId":{"type":"string","description":"The id of the cluster.It is formatted to `mse-xxxxxxxx`.\n"},"instanceId":{"type":"string","description":"The instance id of the cluster. It is formatted to `mse-cn-xxxxxxxxxxx`.Available since v1.232.0.\n"},"namespaceDesc":{"type":"string","description":"The description of the namespace.\n\n**NOTE:** You must set \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e or both.\n"},"namespaceId":{"type":"string","description":"The id of Namespace.\n"},"namespaceShowName":{"type":"string","description":"The name of the Engine Namespace.\n"}},"required":["clusterId","instanceId","namespaceDesc","namespaceId","namespaceShowName"],"inputProperties":{"acceptLanguage":{"type":"string","description":"The language type of the returned information. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"clusterId":{"type":"string","description":"The id of the cluster.It is formatted to `mse-xxxxxxxx`.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The instance id of the cluster. It is formatted to `mse-cn-xxxxxxxxxxx`.Available since v1.232.0.\n","willReplaceOnChanges":true},"namespaceDesc":{"type":"string","description":"The description of the namespace.\n\n**NOTE:** You must set \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e or both.\n"},"namespaceId":{"type":"string","description":"The id of Namespace.\n","willReplaceOnChanges":true},"namespaceShowName":{"type":"string","description":"The name of the Engine Namespace.\n"}},"requiredInputs":["namespaceShowName"],"stateInputs":{"description":"Input properties used for looking up and filtering EngineNamespace resources.\n","properties":{"acceptLanguage":{"type":"string","description":"The language type of the returned information. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"clusterId":{"type":"string","description":"The id of the cluster.It is formatted to `mse-xxxxxxxx`.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The instance id of the cluster. It is formatted to `mse-cn-xxxxxxxxxxx`.Available since v1.232.0.\n","willReplaceOnChanges":true},"namespaceDesc":{"type":"string","description":"The description of the namespace.\n\n**NOTE:** You must set \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e or both.\n"},"namespaceId":{"type":"string","description":"The id of Namespace.\n","willReplaceOnChanges":true},"namespaceShowName":{"type":"string","description":"The name of the Engine Namespace.\n"}},"type":"object"}},"alicloud:mse/gateway:Gateway":{"description":"Provides a Microservice Engine (MSE) Gateway resource.\n\nFor information about Microservice Engine (MSE) Gateway and how to use it, see [What is Gateway](https://help.aliyun.com/document_detail/347638.html).\n\n\u003e **NOTE:** Available since v1.157.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst example = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleSwitch.push(new alicloud.vpc.Switch(`example-${range.value}`, {\n        vpcId: exampleNetwork.id,\n        cidrBlock: std.format({\n            input: \"172.16.%d.0/21\",\n            args: [(range.value + 1) * 16],\n        }).then(invoke =\u003e invoke.result),\n        zoneId: example.then(example =\u003e example.zones[range.value].id),\n        vswitchName: std.format({\n            input: \"terraform_example_%d\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst exampleGateway = new alicloud.mse.Gateway(\"example\", {\n    gatewayName: \"terraform-example\",\n    replica: 2,\n    spec: \"MSE_GTW_2_4_200_c\",\n    vswitchId: exampleSwitch[0].id,\n    backupVswitchId: exampleSwitch[1].id,\n    vpcId: exampleNetwork.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nexample = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_switch.append(alicloud.vpc.Switch(f\"example-{range['value']}\",\n        vpc_id=example_network.id,\n        cidr_block=std.format(input=\"172.16.%d.0/21\",\n            args=[(range[\"value\"] + 1) * 16]).result,\n        zone_id=example.zones[range[\"value\"]].id,\n        vswitch_name=std.format(input=\"terraform_example_%d\",\n            args=[range[\"value\"] + 1]).result))\nexample_gateway = alicloud.mse.Gateway(\"example\",\n    gateway_name=\"terraform-example\",\n    replica=2,\n    spec=\"MSE_GTW_2_4_200_c\",\n    vswitch_id=example_switch[0].id,\n    backup_vswitch_id=example_switch[1].id,\n    vpc_id=example_network.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleSwitch.Add(new AliCloud.Vpc.Switch($\"example-{range.Value}\", new()\n        {\n            VpcId = exampleNetwork.Id,\n            CidrBlock = Std.Format.Invoke(new()\n            {\n                Input = \"172.16.%d.0/21\",\n                Args = new[]\n                {\n                    (range.Value + 1) * 16,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones)[range.Value].Id,\n            VswitchName = Std.Format.Invoke(new()\n            {\n                Input = \"terraform_example_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var exampleGateway = new AliCloud.Mse.Gateway(\"example\", new()\n    {\n        GatewayName = \"terraform-example\",\n        Replica = 2,\n        Spec = \"MSE_GTW_2_4_200_c\",\n        VswitchId = exampleSwitch[0].Id,\n        BackupVswitchId = exampleSwitch[1].Id,\n        VpcId = exampleNetwork.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mse\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"172.16.%d.0/21\",\n\t\t\tArgs: []float64{\n\t\t\t\t(val0 + 1) * 16,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"terraform_example_%d\",\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar exampleSwitch []*vpc.Switch\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026vpc.SwitchArgs{\n\t\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\t\tCidrBlock:   pulumi.String(invokeFormat.Result),\n\t\t\t\tZoneId:      example.Zones[val0].Id,\n\t\t\t\tVswitchName: pulumi.String(invokeFormat1.Result),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texampleSwitch = append(exampleSwitch, __res)\n\t\t}\n\t\t_, err = mse.NewGateway(ctx, \"example\", \u0026mse.GatewayArgs{\n\t\t\tGatewayName:     pulumi.String(\"terraform-example\"),\n\t\t\tReplica:         pulumi.Int(2),\n\t\t\tSpec:            pulumi.String(\"MSE_GTW_2_4_200_c\"),\n\t\t\tVswitchId:       exampleSwitch[0].ID(),\n\t\t\tBackupVswitchId: exampleSwitch[1].ID(),\n\t\t\tVpcId:           exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.mse.Gateway;\nimport com.pulumi.alicloud.mse.GatewayArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Switch(\"exampleSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(exampleNetwork.id())\n                .cidrBlock(StdFunctions.format(FormatArgs.builder()\n                    .input(\"172.16.%d.0/21\")\n                    .args((range.value() + 1) * 16)\n                    .build()).result())\n                .zoneId(example.zones()[range.value()].id())\n                .vswitchName(StdFunctions.format(FormatArgs.builder()\n                    .input(\"terraform_example_%d\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .build());\n\n        \n}\n        var exampleGateway = new Gateway(\"exampleGateway\", GatewayArgs.builder()\n            .gatewayName(\"terraform-example\")\n            .replica(2)\n            .spec(\"MSE_GTW_2_4_200_c\")\n            .vswitchId(exampleSwitch[0].id())\n            .backupVswitchId(exampleSwitch[1].id())\n            .vpcId(exampleNetwork.id())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMicroservice Engine (MSE) Gateway can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mse/gateway:Gateway example \u003cid\u003e\n```\n\n","properties":{"backupVswitchId":{"type":"string","description":"The backup vswitch id.\n"},"deleteSlb":{"type":"boolean","description":"Whether to delete the SLB purchased on behalf of the gateway at the same time.\n"},"enterpriseSecurityGroup":{"type":"boolean","description":"Whether the enterprise security group type.\n"},"gatewayName":{"type":"string","description":"The name of the Gateway .\n"},"internetSlbSpec":{"type":"string","description":"Public network SLB specifications.\n"},"replica":{"type":"integer","description":"Number of Gateway Nodes.\n"},"slbLists":{"type":"array","items":{"$ref":"#/types/alicloud:mse/GatewaySlbList:GatewaySlbList"},"description":"A list of gateway Slb.\n"},"slbSpec":{"type":"string","description":"Private network SLB specifications.\n"},"spec":{"type":"string","description":"Gateway Node Specifications. Valid values: `MSE_GTW_2_4_200_c`, `MSE_GTW_4_8_200_c`, `MSE_GTW_8_16_200_c`, `MSE_GTW_16_32_200_c`.\n"},"status":{"type":"string","description":"The status of the gateway.\n"},"vpcId":{"type":"string","description":"The ID of the vpc.\n"},"vswitchId":{"type":"string","description":"The ID of the vswitch.\n"}},"required":["replica","slbLists","spec","status","vpcId","vswitchId"],"inputProperties":{"backupVswitchId":{"type":"string","description":"The backup vswitch id.\n","willReplaceOnChanges":true},"deleteSlb":{"type":"boolean","description":"Whether to delete the SLB purchased on behalf of the gateway at the same time.\n"},"enterpriseSecurityGroup":{"type":"boolean","description":"Whether the enterprise security group type.\n"},"gatewayName":{"type":"string","description":"The name of the Gateway .\n"},"internetSlbSpec":{"type":"string","description":"Public network SLB specifications.\n"},"replica":{"type":"integer","description":"Number of Gateway Nodes.\n","willReplaceOnChanges":true},"slbSpec":{"type":"string","description":"Private network SLB specifications.\n"},"spec":{"type":"string","description":"Gateway Node Specifications. Valid values: `MSE_GTW_2_4_200_c`, `MSE_GTW_4_8_200_c`, `MSE_GTW_8_16_200_c`, `MSE_GTW_16_32_200_c`.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the vpc.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vswitch.\n","willReplaceOnChanges":true}},"requiredInputs":["replica","spec","vpcId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering Gateway resources.\n","properties":{"backupVswitchId":{"type":"string","description":"The backup vswitch id.\n","willReplaceOnChanges":true},"deleteSlb":{"type":"boolean","description":"Whether to delete the SLB purchased on behalf of the gateway at the same time.\n"},"enterpriseSecurityGroup":{"type":"boolean","description":"Whether the enterprise security group type.\n"},"gatewayName":{"type":"string","description":"The name of the Gateway .\n"},"internetSlbSpec":{"type":"string","description":"Public network SLB specifications.\n"},"replica":{"type":"integer","description":"Number of Gateway Nodes.\n","willReplaceOnChanges":true},"slbLists":{"type":"array","items":{"$ref":"#/types/alicloud:mse/GatewaySlbList:GatewaySlbList"},"description":"A list of gateway Slb.\n"},"slbSpec":{"type":"string","description":"Private network SLB specifications.\n"},"spec":{"type":"string","description":"Gateway Node Specifications. Valid values: `MSE_GTW_2_4_200_c`, `MSE_GTW_4_8_200_c`, `MSE_GTW_8_16_200_c`, `MSE_GTW_16_32_200_c`.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the gateway.\n"},"vpcId":{"type":"string","description":"The ID of the vpc.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vswitch.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:mse/nacosConfig:NacosConfig":{"description":"Provides a Microservice Engine (MSE) Nacos Config resource.\n\nFor information about Microservice Engine (MSE) Nacos Config and how to use it, see [What is Nacos configuration](https://www.alibabacloud.com/help/en/mse/developer-reference/api-mse-2019-05-31-createnacosconfig)\n\n\u003e **NOTE:** Available since v1.233.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleCluster = new alicloud.mse.Cluster(\"example\", {\n    connectionType: \"slb\",\n    netType: \"privatenet\",\n    vswitchId: exampleSwitch.id,\n    clusterSpecification: \"MSE_SC_1_2_60_c\",\n    clusterVersion: \"NACOS_2_0_0\",\n    instanceCount: 3,\n    pubNetworkFlow: \"1\",\n    clusterAliasName: \"example\",\n    mseVersion: \"mse_pro\",\n    clusterType: \"Nacos-Ans\",\n});\nconst exampleEngineNamespace = new alicloud.mse.EngineNamespace(\"example\", {\n    instanceId: exampleCluster.id,\n    namespaceShowName: \"example\",\n    namespaceId: \"example\",\n});\nconst exampleNacosConfig = new alicloud.mse.NacosConfig(\"example\", {\n    instanceId: exampleCluster.id,\n    dataId: \"example\",\n    group: \"example\",\n    namespaceId: exampleEngineNamespace.namespaceId,\n    content: \"example\",\n    type: \"text\",\n    tags: \"example\",\n    appName: \"example\",\n    desc: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_cluster = alicloud.mse.Cluster(\"example\",\n    connection_type=\"slb\",\n    net_type=\"privatenet\",\n    vswitch_id=example_switch.id,\n    cluster_specification=\"MSE_SC_1_2_60_c\",\n    cluster_version=\"NACOS_2_0_0\",\n    instance_count=3,\n    pub_network_flow=\"1\",\n    cluster_alias_name=\"example\",\n    mse_version=\"mse_pro\",\n    cluster_type=\"Nacos-Ans\")\nexample_engine_namespace = alicloud.mse.EngineNamespace(\"example\",\n    instance_id=example_cluster.id,\n    namespace_show_name=\"example\",\n    namespace_id=\"example\")\nexample_nacos_config = alicloud.mse.NacosConfig(\"example\",\n    instance_id=example_cluster.id,\n    data_id=\"example\",\n    group=\"example\",\n    namespace_id=example_engine_namespace.namespace_id,\n    content=\"example\",\n    type=\"text\",\n    tags=\"example\",\n    app_name=\"example\",\n    desc=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleCluster = new AliCloud.Mse.Cluster(\"example\", new()\n    {\n        ConnectionType = \"slb\",\n        NetType = \"privatenet\",\n        VswitchId = exampleSwitch.Id,\n        ClusterSpecification = \"MSE_SC_1_2_60_c\",\n        ClusterVersion = \"NACOS_2_0_0\",\n        InstanceCount = 3,\n        PubNetworkFlow = \"1\",\n        ClusterAliasName = \"example\",\n        MseVersion = \"mse_pro\",\n        ClusterType = \"Nacos-Ans\",\n    });\n\n    var exampleEngineNamespace = new AliCloud.Mse.EngineNamespace(\"example\", new()\n    {\n        InstanceId = exampleCluster.Id,\n        NamespaceShowName = \"example\",\n        NamespaceId = \"example\",\n    });\n\n    var exampleNacosConfig = new AliCloud.Mse.NacosConfig(\"example\", new()\n    {\n        InstanceId = exampleCluster.Id,\n        DataId = \"example\",\n        Group = \"example\",\n        NamespaceId = exampleEngineNamespace.NamespaceId,\n        Content = \"example\",\n        Type = \"text\",\n        Tags = \"example\",\n        AppName = \"example\",\n        Desc = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mse\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := mse.NewCluster(ctx, \"example\", \u0026mse.ClusterArgs{\n\t\t\tConnectionType:       pulumi.String(\"slb\"),\n\t\t\tNetType:              pulumi.String(\"privatenet\"),\n\t\t\tVswitchId:            exampleSwitch.ID(),\n\t\t\tClusterSpecification: pulumi.String(\"MSE_SC_1_2_60_c\"),\n\t\t\tClusterVersion:       pulumi.String(\"NACOS_2_0_0\"),\n\t\t\tInstanceCount:        pulumi.Int(3),\n\t\t\tPubNetworkFlow:       pulumi.String(\"1\"),\n\t\t\tClusterAliasName:     pulumi.String(\"example\"),\n\t\t\tMseVersion:           pulumi.String(\"mse_pro\"),\n\t\t\tClusterType:          pulumi.String(\"Nacos-Ans\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEngineNamespace, err := mse.NewEngineNamespace(ctx, \"example\", \u0026mse.EngineNamespaceArgs{\n\t\t\tInstanceId:        exampleCluster.ID(),\n\t\t\tNamespaceShowName: pulumi.String(\"example\"),\n\t\t\tNamespaceId:       pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mse.NewNacosConfig(ctx, \"example\", \u0026mse.NacosConfigArgs{\n\t\t\tInstanceId:  exampleCluster.ID(),\n\t\t\tDataId:      pulumi.String(\"example\"),\n\t\t\tGroup:       pulumi.String(\"example\"),\n\t\t\tNamespaceId: exampleEngineNamespace.NamespaceId,\n\t\t\tContent:     pulumi.String(\"example\"),\n\t\t\tType:        pulumi.String(\"text\"),\n\t\t\tTags:        pulumi.String(\"example\"),\n\t\t\tAppName:     pulumi.String(\"example\"),\n\t\t\tDesc:        pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mse.Cluster;\nimport com.pulumi.alicloud.mse.ClusterArgs;\nimport com.pulumi.alicloud.mse.EngineNamespace;\nimport com.pulumi.alicloud.mse.EngineNamespaceArgs;\nimport com.pulumi.alicloud.mse.NacosConfig;\nimport com.pulumi.alicloud.mse.NacosConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n            .connectionType(\"slb\")\n            .netType(\"privatenet\")\n            .vswitchId(exampleSwitch.id())\n            .clusterSpecification(\"MSE_SC_1_2_60_c\")\n            .clusterVersion(\"NACOS_2_0_0\")\n            .instanceCount(3)\n            .pubNetworkFlow(\"1\")\n            .clusterAliasName(\"example\")\n            .mseVersion(\"mse_pro\")\n            .clusterType(\"Nacos-Ans\")\n            .build());\n\n        var exampleEngineNamespace = new EngineNamespace(\"exampleEngineNamespace\", EngineNamespaceArgs.builder()\n            .instanceId(exampleCluster.id())\n            .namespaceShowName(\"example\")\n            .namespaceId(\"example\")\n            .build());\n\n        var exampleNacosConfig = new NacosConfig(\"exampleNacosConfig\", NacosConfigArgs.builder()\n            .instanceId(exampleCluster.id())\n            .dataId(\"example\")\n            .group(\"example\")\n            .namespaceId(exampleEngineNamespace.namespaceId())\n            .content(\"example\")\n            .type(\"text\")\n            .tags(\"example\")\n            .appName(\"example\")\n            .desc(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleCluster:\n    type: alicloud:mse:Cluster\n    name: example\n    properties:\n      connectionType: slb\n      netType: privatenet\n      vswitchId: ${exampleSwitch.id}\n      clusterSpecification: MSE_SC_1_2_60_c\n      clusterVersion: NACOS_2_0_0\n      instanceCount: '3'\n      pubNetworkFlow: '1'\n      clusterAliasName: example\n      mseVersion: mse_pro\n      clusterType: Nacos-Ans\n  exampleEngineNamespace:\n    type: alicloud:mse:EngineNamespace\n    name: example\n    properties:\n      instanceId: ${exampleCluster.id}\n      namespaceShowName: example\n      namespaceId: example\n  exampleNacosConfig:\n    type: alicloud:mse:NacosConfig\n    name: example\n    properties:\n      instanceId: ${exampleCluster.id}\n      dataId: example\n      group: example\n      namespaceId: ${exampleEngineNamespace.namespaceId}\n      content: example\n      type: text\n      tags: example\n      appName: example\n      desc: example\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMicroservice Engine (MSE) Nacos Config can be imported using the id, e.g.\n\n**Note**: If instance_id, namespace_id, data_id, and group contain \":\", please replace it with \"\\\\\\\\:\", available since v1.243.0\n```sh\n$ pulumi import alicloud:mse/nacosConfig:NacosConfig example \u003cinstance_id\u003e:\u003cnamespace_id\u003e:\u003cdata_id\u003e:\u003cgroup\u003e\n```\n\n","properties":{"acceptLanguage":{"type":"string","description":"The language type of the returned information. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"appName":{"type":"string","description":"The name of the application.\n"},"betaIps":{"type":"string","description":"The list of IP addresses where the beta release of the configuration is performed.\n"},"content":{"type":"string","description":"The content of the configuration.\n"},"dataId":{"type":"string","description":"The ID of the data.\n"},"desc":{"type":"string","description":"The description of the configuration.\n"},"encryptedDataKey":{"type":"string","description":"The encryption key.\n"},"group":{"type":"string","description":"The ID of the group.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"namespaceId":{"type":"string","description":"The id of Namespace. If you want to create a config under the \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e namespace, this parameter can be set to an empty string  *`\"\"`* or just not set this parameter.\n"},"tags":{"type":"string","description":"The tags of the configuration.\n"},"type":{"type":"string","description":"The format of the configuration. Supported formats include TEXT, JSON, and XML.\n"}},"required":["betaIps","content","dataId","encryptedDataKey","group","instanceId","type"],"inputProperties":{"acceptLanguage":{"type":"string","description":"The language type of the returned information. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"appName":{"type":"string","description":"The name of the application.\n"},"betaIps":{"type":"string","description":"The list of IP addresses where the beta release of the configuration is performed.\n"},"content":{"type":"string","description":"The content of the configuration.\n"},"dataId":{"type":"string","description":"The ID of the data.\n","willReplaceOnChanges":true},"desc":{"type":"string","description":"The description of the configuration.\n"},"group":{"type":"string","description":"The ID of the group.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The id of Namespace. If you want to create a config under the \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e namespace, this parameter can be set to an empty string  *`\"\"`* or just not set this parameter.\n","willReplaceOnChanges":true},"tags":{"type":"string","description":"The tags of the configuration.\n"},"type":{"type":"string","description":"The format of the configuration. Supported formats include TEXT, JSON, and XML.\n"}},"requiredInputs":["content","dataId","group","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering NacosConfig resources.\n","properties":{"acceptLanguage":{"type":"string","description":"The language type of the returned information. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"appName":{"type":"string","description":"The name of the application.\n"},"betaIps":{"type":"string","description":"The list of IP addresses where the beta release of the configuration is performed.\n"},"content":{"type":"string","description":"The content of the configuration.\n"},"dataId":{"type":"string","description":"The ID of the data.\n","willReplaceOnChanges":true},"desc":{"type":"string","description":"The description of the configuration.\n"},"encryptedDataKey":{"type":"string","description":"The encryption key.\n"},"group":{"type":"string","description":"The ID of the group.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The id of Namespace. If you want to create a config under the \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e namespace, this parameter can be set to an empty string  *`\"\"`* or just not set this parameter.\n","willReplaceOnChanges":true},"tags":{"type":"string","description":"The tags of the configuration.\n"},"type":{"type":"string","description":"The format of the configuration. Supported formats include TEXT, JSON, and XML.\n"}},"type":"object"}},"alicloud:mse/znode:Znode":{"description":"Provides a Microservice Engine (MSE) Znode resource.\n\nFor information about Microservice Engine (MSE) Znode and how to use it, see [What is Znode](https://help.aliyun.com/document_detail/393622.html).\n\n\u003e **NOTE:** Available since v1.162.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleCluster = new alicloud.mse.Cluster(\"example\", {\n    clusterSpecification: \"MSE_SC_1_2_60_c\",\n    clusterType: \"ZooKeeper\",\n    clusterVersion: \"ZooKeeper_3_8_0\",\n    instanceCount: 1,\n    netType: \"privatenet\",\n    pubNetworkFlow: \"1\",\n    aclEntryLists: [\"127.0.0.1/32\"],\n    clusterAliasName: \"terraform-example\",\n    mseVersion: \"mse_dev\",\n    vswitchId: exampleSwitch.id,\n    vpcId: exampleNetwork.id,\n});\nconst exampleZnode = new alicloud.mse.Znode(\"example\", {\n    clusterId: exampleCluster.clusterId,\n    data: \"terraform-example\",\n    path: \"/example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_cluster = alicloud.mse.Cluster(\"example\",\n    cluster_specification=\"MSE_SC_1_2_60_c\",\n    cluster_type=\"ZooKeeper\",\n    cluster_version=\"ZooKeeper_3_8_0\",\n    instance_count=1,\n    net_type=\"privatenet\",\n    pub_network_flow=\"1\",\n    acl_entry_lists=[\"127.0.0.1/32\"],\n    cluster_alias_name=\"terraform-example\",\n    mse_version=\"mse_dev\",\n    vswitch_id=example_switch.id,\n    vpc_id=example_network.id)\nexample_znode = alicloud.mse.Znode(\"example\",\n    cluster_id=example_cluster.cluster_id,\n    data=\"terraform-example\",\n    path=\"/example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleCluster = new AliCloud.Mse.Cluster(\"example\", new()\n    {\n        ClusterSpecification = \"MSE_SC_1_2_60_c\",\n        ClusterType = \"ZooKeeper\",\n        ClusterVersion = \"ZooKeeper_3_8_0\",\n        InstanceCount = 1,\n        NetType = \"privatenet\",\n        PubNetworkFlow = \"1\",\n        AclEntryLists = new[]\n        {\n            \"127.0.0.1/32\",\n        },\n        ClusterAliasName = \"terraform-example\",\n        MseVersion = \"mse_dev\",\n        VswitchId = exampleSwitch.Id,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleZnode = new AliCloud.Mse.Znode(\"example\", new()\n    {\n        ClusterId = exampleCluster.ClusterId,\n        Data = \"terraform-example\",\n        Path = \"/example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mse\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := mse.NewCluster(ctx, \"example\", \u0026mse.ClusterArgs{\n\t\t\tClusterSpecification: pulumi.String(\"MSE_SC_1_2_60_c\"),\n\t\t\tClusterType:          pulumi.String(\"ZooKeeper\"),\n\t\t\tClusterVersion:       pulumi.String(\"ZooKeeper_3_8_0\"),\n\t\t\tInstanceCount:        pulumi.Int(1),\n\t\t\tNetType:              pulumi.String(\"privatenet\"),\n\t\t\tPubNetworkFlow:       pulumi.String(\"1\"),\n\t\t\tAclEntryLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"127.0.0.1/32\"),\n\t\t\t},\n\t\t\tClusterAliasName: pulumi.String(\"terraform-example\"),\n\t\t\tMseVersion:       pulumi.String(\"mse_dev\"),\n\t\t\tVswitchId:        exampleSwitch.ID(),\n\t\t\tVpcId:            exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mse.NewZnode(ctx, \"example\", \u0026mse.ZnodeArgs{\n\t\t\tClusterId: exampleCluster.ClusterId,\n\t\t\tData:      pulumi.String(\"terraform-example\"),\n\t\t\tPath:      pulumi.String(\"/example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mse.Cluster;\nimport com.pulumi.alicloud.mse.ClusterArgs;\nimport com.pulumi.alicloud.mse.Znode;\nimport com.pulumi.alicloud.mse.ZnodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n            .clusterSpecification(\"MSE_SC_1_2_60_c\")\n            .clusterType(\"ZooKeeper\")\n            .clusterVersion(\"ZooKeeper_3_8_0\")\n            .instanceCount(1)\n            .netType(\"privatenet\")\n            .pubNetworkFlow(\"1\")\n            .aclEntryLists(\"127.0.0.1/32\")\n            .clusterAliasName(\"terraform-example\")\n            .mseVersion(\"mse_dev\")\n            .vswitchId(exampleSwitch.id())\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleZnode = new Znode(\"exampleZnode\", ZnodeArgs.builder()\n            .clusterId(exampleCluster.clusterId())\n            .data(\"terraform-example\")\n            .path(\"/example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleCluster:\n    type: alicloud:mse:Cluster\n    name: example\n    properties:\n      clusterSpecification: MSE_SC_1_2_60_c\n      clusterType: ZooKeeper\n      clusterVersion: ZooKeeper_3_8_0\n      instanceCount: 1\n      netType: privatenet\n      pubNetworkFlow: '1'\n      aclEntryLists:\n        - 127.0.0.1/32\n      clusterAliasName: terraform-example\n      mseVersion: mse_dev\n      vswitchId: ${exampleSwitch.id}\n      vpcId: ${exampleNetwork.id}\n  exampleZnode:\n    type: alicloud:mse:Znode\n    name: example\n    properties:\n      clusterId: ${exampleCluster.clusterId}\n      data: terraform-example\n      path: /example\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nMicroservice Engine (MSE) Znode can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:mse/znode:Znode example \u003ccluster_id\u003e:\u003cpath\u003e\n```\n\n","properties":{"acceptLanguage":{"type":"string","description":"The language type of the returned information. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"clusterId":{"type":"string","description":"The ID of the Cluster.\n"},"data":{"type":"string","description":"The Node data.\n"},"path":{"type":"string","description":"The Node path. The value must start with a forward slash (/).\n"}},"required":["clusterId","path"],"inputProperties":{"acceptLanguage":{"type":"string","description":"The language type of the returned information. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"clusterId":{"type":"string","description":"The ID of the Cluster.\n","willReplaceOnChanges":true},"data":{"type":"string","description":"The Node data.\n"},"path":{"type":"string","description":"The Node path. The value must start with a forward slash (/).\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","path"],"stateInputs":{"description":"Input properties used for looking up and filtering Znode resources.\n","properties":{"acceptLanguage":{"type":"string","description":"The language type of the returned information. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"clusterId":{"type":"string","description":"The ID of the Cluster.\n","willReplaceOnChanges":true},"data":{"type":"string","description":"The Node data.\n"},"path":{"type":"string","description":"The Node path. The value must start with a forward slash (/).\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:nas/accessGroup:AccessGroup":{"description":"Provides a File Storage (NAS) Access Group resource.\n\nFile system Access Group.\n\nFor information about File Storage (NAS) Access Group and how to use it, see [What is Access Group](https://www.alibabacloud.com/help/en/nas/developer-reference/api-nas-2017-06-26-createaccessgroup).\n\n\u003e **NOTE:** Available since v1.33.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst foo = new alicloud.nas.AccessGroup(\"foo\", {\n    accessGroupName: `terraform-example-${_default.result}`,\n    accessGroupType: \"Vpc\",\n    description: \"terraform-example\",\n    fileSystemType: \"extreme\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nfoo = alicloud.nas.AccessGroup(\"foo\",\n    access_group_name=f\"terraform-example-{default['result']}\",\n    access_group_type=\"Vpc\",\n    description=\"terraform-example\",\n    file_system_type=\"extreme\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var foo = new AliCloud.Nas.AccessGroup(\"foo\", new()\n    {\n        AccessGroupName = $\"terraform-example-{@default.Result}\",\n        AccessGroupType = \"Vpc\",\n        Description = \"terraform-example\",\n        FileSystemType = \"extreme\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nas.NewAccessGroup(ctx, \"foo\", \u0026nas.AccessGroupArgs{\n\t\t\tAccessGroupName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tAccessGroupType: pulumi.String(\"Vpc\"),\n\t\t\tDescription:     pulumi.String(\"terraform-example\"),\n\t\t\tFileSystemType:  pulumi.String(\"extreme\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.nas.AccessGroup;\nimport com.pulumi.alicloud.nas.AccessGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var foo = new AccessGroup(\"foo\", AccessGroupArgs.builder()\n            .accessGroupName(String.format(\"terraform-example-%s\", default_.result()))\n            .accessGroupType(\"Vpc\")\n            .description(\"terraform-example\")\n            .fileSystemType(\"extreme\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  foo:\n    type: alicloud:nas:AccessGroup\n    properties:\n      accessGroupName: terraform-example-${default.result}\n      accessGroupType: Vpc\n      description: terraform-example\n      fileSystemType: extreme\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFile Storage (NAS) Access Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nas/accessGroup:AccessGroup example \u003caccess_group_name\u003e:\u003cfile_system_type\u003e\n```\n\n","properties":{"accessGroupName":{"type":"string","description":"The name of the permission group.\n"},"accessGroupType":{"type":"string","description":"Permission group types, including Vpc.\n"},"createTime":{"type":"string","description":"(Available since v1.218.0) Creation time.\n"},"description":{"type":"string","description":"Permission group description information.\n"},"fileSystemType":{"type":"string","description":"File system type.\n\nValue:\n- standard (default): Universal NAS\n- extreme: extreme NAS\n\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"},"name":{"type":"string","description":"Field 'name' has been deprecated from provider version 1.218.0. New field 'access_group_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.218.0. New field 'access_group_name' instead."},"regionId":{"type":"string","description":"(Available since v1.256.0) The region ID.\n"},"type":{"type":"string","description":"Field 'type' has been deprecated from provider version 1.218.0. New field 'access_group_type' instead.\n","deprecationMessage":"Field 'type' has been deprecated since provider version 1.218.0. New field 'access_group_type' instead."}},"required":["accessGroupName","accessGroupType","createTime","name","regionId","type"],"inputProperties":{"accessGroupName":{"type":"string","description":"The name of the permission group.\n","willReplaceOnChanges":true},"accessGroupType":{"type":"string","description":"Permission group types, including Vpc.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Permission group description information.\n"},"fileSystemType":{"type":"string","description":"File system type.\n\nValue:\n- standard (default): Universal NAS\n- extreme: extreme NAS\n\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Field 'name' has been deprecated from provider version 1.218.0. New field 'access_group_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.218.0. New field 'access_group_name' instead.","willReplaceOnChanges":true},"type":{"type":"string","description":"Field 'type' has been deprecated from provider version 1.218.0. New field 'access_group_type' instead.\n","deprecationMessage":"Field 'type' has been deprecated since provider version 1.218.0. New field 'access_group_type' instead.","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering AccessGroup resources.\n","properties":{"accessGroupName":{"type":"string","description":"The name of the permission group.\n","willReplaceOnChanges":true},"accessGroupType":{"type":"string","description":"Permission group types, including Vpc.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"(Available since v1.218.0) Creation time.\n"},"description":{"type":"string","description":"Permission group description information.\n"},"fileSystemType":{"type":"string","description":"File system type.\n\nValue:\n- standard (default): Universal NAS\n- extreme: extreme NAS\n\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Field 'name' has been deprecated from provider version 1.218.0. New field 'access_group_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.218.0. New field 'access_group_name' instead.","willReplaceOnChanges":true},"regionId":{"type":"string","description":"(Available since v1.256.0) The region ID.\n"},"type":{"type":"string","description":"Field 'type' has been deprecated from provider version 1.218.0. New field 'access_group_type' instead.\n","deprecationMessage":"Field 'type' has been deprecated since provider version 1.218.0. New field 'access_group_type' instead.","willReplaceOnChanges":true}},"type":"object"}},"alicloud:nas/accessPoint:AccessPoint":{"description":"Provides a File Storage (NAS) Access Point resource.\n\n\n\nFor information about NAS Access Point and how to use it, see [What is Access Point](https://www.alibabacloud.com/help/zh/nas/developer-reference/api-nas-2017-06-26-createaccesspoint).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst azone = config.get(\"azone\") || \"cn-hangzhou-g\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultkyVC70 = new alicloud.vpc.Network(\"defaultkyVC70\", {\n    cidrBlock: \"172.16.0.0/12\",\n    description: \"接入点测试noRootDirectory\",\n});\nconst defaultoZAPmO = new alicloud.vpc.Switch(\"defaultoZAPmO\", {\n    vpcId: defaultkyVC70.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    cidrBlock: \"172.16.0.0/24\",\n});\nconst defaultBbc7ev = new alicloud.nas.AccessGroup(\"defaultBbc7ev\", {\n    accessGroupType: \"Vpc\",\n    accessGroupName: `${name}-${defaultInteger.result}`,\n    fileSystemType: \"standard\",\n});\nconst defaultVtUpDh = new alicloud.nas.FileSystem(\"defaultVtUpDh\", {\n    storageType: \"Performance\",\n    zoneId: azone,\n    encryptType: 0,\n    protocolType: \"NFS\",\n    fileSystemType: \"standard\",\n    description: \"AccessPointnoRootDirectory\",\n});\nconst defaultAccessPoint = new alicloud.nas.AccessPoint(\"default\", {\n    vpcId: defaultkyVC70.id,\n    accessGroup: defaultBbc7ev.accessGroupName,\n    vswitchId: defaultoZAPmO.id,\n    fileSystemId: defaultVtUpDh.id,\n    accessPointName: name,\n    posixUser: {\n        posixGroupId: 123,\n        posixUserId: 123,\n    },\n    rootPathPermission: {\n        ownerGroupId: 1,\n        ownerUserId: 1,\n        permission: \"0777\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nazone = config.get(\"azone\")\nif azone is None:\n    azone = \"cn-hangzhou-g\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefaultky_vc70 = alicloud.vpc.Network(\"defaultkyVC70\",\n    cidr_block=\"172.16.0.0/12\",\n    description=\"接入点测试noRootDirectory\")\ndefaulto_za_pm_o = alicloud.vpc.Switch(\"defaultoZAPmO\",\n    vpc_id=defaultky_vc70.id,\n    zone_id=default.zones[0].id,\n    cidr_block=\"172.16.0.0/24\")\ndefault_bbc7ev = alicloud.nas.AccessGroup(\"defaultBbc7ev\",\n    access_group_type=\"Vpc\",\n    access_group_name=f\"{name}-{default_integer['result']}\",\n    file_system_type=\"standard\")\ndefault_vt_up_dh = alicloud.nas.FileSystem(\"defaultVtUpDh\",\n    storage_type=\"Performance\",\n    zone_id=azone,\n    encrypt_type=0,\n    protocol_type=\"NFS\",\n    file_system_type=\"standard\",\n    description=\"AccessPointnoRootDirectory\")\ndefault_access_point = alicloud.nas.AccessPoint(\"default\",\n    vpc_id=defaultky_vc70.id,\n    access_group=default_bbc7ev.access_group_name,\n    vswitch_id=defaulto_za_pm_o.id,\n    file_system_id=default_vt_up_dh.id,\n    access_point_name=name,\n    posix_user={\n        \"posix_group_id\": 123,\n        \"posix_user_id\": 123,\n    },\n    root_path_permission={\n        \"owner_group_id\": 1,\n        \"owner_user_id\": 1,\n        \"permission\": \"0777\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var azone = config.Get(\"azone\") ?? \"cn-hangzhou-g\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultkyVC70 = new AliCloud.Vpc.Network(\"defaultkyVC70\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        Description = \"接入点测试noRootDirectory\",\n    });\n\n    var defaultoZAPmO = new AliCloud.Vpc.Switch(\"defaultoZAPmO\", new()\n    {\n        VpcId = defaultkyVC70.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        CidrBlock = \"172.16.0.0/24\",\n    });\n\n    var defaultBbc7ev = new AliCloud.Nas.AccessGroup(\"defaultBbc7ev\", new()\n    {\n        AccessGroupType = \"Vpc\",\n        AccessGroupName = $\"{name}-{defaultInteger.Result}\",\n        FileSystemType = \"standard\",\n    });\n\n    var defaultVtUpDh = new AliCloud.Nas.FileSystem(\"defaultVtUpDh\", new()\n    {\n        StorageType = \"Performance\",\n        ZoneId = azone,\n        EncryptType = 0,\n        ProtocolType = \"NFS\",\n        FileSystemType = \"standard\",\n        Description = \"AccessPointnoRootDirectory\",\n    });\n\n    var defaultAccessPoint = new AliCloud.Nas.AccessPoint(\"default\", new()\n    {\n        VpcId = defaultkyVC70.Id,\n        AccessGroup = defaultBbc7ev.AccessGroupName,\n        VswitchId = defaultoZAPmO.Id,\n        FileSystemId = defaultVtUpDh.Id,\n        AccessPointName = name,\n        PosixUser = new AliCloud.Nas.Inputs.AccessPointPosixUserArgs\n        {\n            PosixGroupId = 123,\n            PosixUserId = 123,\n        },\n        RootPathPermission = new AliCloud.Nas.Inputs.AccessPointRootPathPermissionArgs\n        {\n            OwnerGroupId = 1,\n            OwnerUserId = 1,\n            Permission = \"0777\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tazone := \"cn-hangzhou-g\"\n\t\tif param := cfg.Get(\"azone\"); param != \"\" {\n\t\t\tazone = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultkyVC70, err := vpc.NewNetwork(ctx, \"defaultkyVC70\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/12\"),\n\t\t\tDescription: pulumi.String(\"接入点测试noRootDirectory\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultoZAPmO, err := vpc.NewSwitch(ctx, \"defaultoZAPmO\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultkyVC70.ID(),\n\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBbc7ev, err := nas.NewAccessGroup(ctx, \"defaultBbc7ev\", \u0026nas.AccessGroupArgs{\n\t\t\tAccessGroupType: pulumi.String(\"Vpc\"),\n\t\t\tAccessGroupName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tFileSystemType:  pulumi.String(\"standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVtUpDh, err := nas.NewFileSystem(ctx, \"defaultVtUpDh\", \u0026nas.FileSystemArgs{\n\t\t\tStorageType:    pulumi.String(\"Performance\"),\n\t\t\tZoneId:         pulumi.String(azone),\n\t\t\tEncryptType:    pulumi.Int(0),\n\t\t\tProtocolType:   pulumi.String(\"NFS\"),\n\t\t\tFileSystemType: pulumi.String(\"standard\"),\n\t\t\tDescription:    pulumi.String(\"AccessPointnoRootDirectory\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nas.NewAccessPoint(ctx, \"default\", \u0026nas.AccessPointArgs{\n\t\t\tVpcId:           defaultkyVC70.ID(),\n\t\t\tAccessGroup:     defaultBbc7ev.AccessGroupName,\n\t\t\tVswitchId:       defaultoZAPmO.ID(),\n\t\t\tFileSystemId:    defaultVtUpDh.ID(),\n\t\t\tAccessPointName: pulumi.String(name),\n\t\t\tPosixUser: \u0026nas.AccessPointPosixUserArgs{\n\t\t\t\tPosixGroupId: pulumi.Int(123),\n\t\t\t\tPosixUserId:  pulumi.Int(123),\n\t\t\t},\n\t\t\tRootPathPermission: \u0026nas.AccessPointRootPathPermissionArgs{\n\t\t\t\tOwnerGroupId: pulumi.Int(1),\n\t\t\t\tOwnerUserId:  pulumi.Int(1),\n\t\t\t\tPermission:   pulumi.String(\"0777\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.nas.AccessGroup;\nimport com.pulumi.alicloud.nas.AccessGroupArgs;\nimport com.pulumi.alicloud.nas.FileSystem;\nimport com.pulumi.alicloud.nas.FileSystemArgs;\nimport com.pulumi.alicloud.nas.AccessPoint;\nimport com.pulumi.alicloud.nas.AccessPointArgs;\nimport com.pulumi.alicloud.nas.inputs.AccessPointPosixUserArgs;\nimport com.pulumi.alicloud.nas.inputs.AccessPointRootPathPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var azone = config.get(\"azone\").orElse(\"cn-hangzhou-g\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultkyVC70 = new Network(\"defaultkyVC70\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .description(\"接入点测试noRootDirectory\")\n            .build());\n\n        var defaultoZAPmO = new Switch(\"defaultoZAPmO\", SwitchArgs.builder()\n            .vpcId(defaultkyVC70.id())\n            .zoneId(default_.zones()[0].id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .build());\n\n        var defaultBbc7ev = new AccessGroup(\"defaultBbc7ev\", AccessGroupArgs.builder()\n            .accessGroupType(\"Vpc\")\n            .accessGroupName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .fileSystemType(\"standard\")\n            .build());\n\n        var defaultVtUpDh = new FileSystem(\"defaultVtUpDh\", FileSystemArgs.builder()\n            .storageType(\"Performance\")\n            .zoneId(azone)\n            .encryptType(0)\n            .protocolType(\"NFS\")\n            .fileSystemType(\"standard\")\n            .description(\"AccessPointnoRootDirectory\")\n            .build());\n\n        var defaultAccessPoint = new AccessPoint(\"defaultAccessPoint\", AccessPointArgs.builder()\n            .vpcId(defaultkyVC70.id())\n            .accessGroup(defaultBbc7ev.accessGroupName())\n            .vswitchId(defaultoZAPmO.id())\n            .fileSystemId(defaultVtUpDh.id())\n            .accessPointName(name)\n            .posixUser(AccessPointPosixUserArgs.builder()\n                .posixGroupId(123)\n                .posixUserId(123)\n                .build())\n            .rootPathPermission(AccessPointRootPathPermissionArgs.builder()\n                .ownerGroupId(1)\n                .ownerUserId(1)\n                .permission(\"0777\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  azone:\n    type: string\n    default: cn-hangzhou-g\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultkyVC70:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      description: 接入点测试noRootDirectory\n  defaultoZAPmO:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultkyVC70.id}\n      zoneId: ${default.zones[0].id}\n      cidrBlock: 172.16.0.0/24\n  defaultBbc7ev:\n    type: alicloud:nas:AccessGroup\n    properties:\n      accessGroupType: Vpc\n      accessGroupName: ${name}-${defaultInteger.result}\n      fileSystemType: standard\n  defaultVtUpDh:\n    type: alicloud:nas:FileSystem\n    properties:\n      storageType: Performance\n      zoneId: ${azone}\n      encryptType: '0'\n      protocolType: NFS\n      fileSystemType: standard\n      description: AccessPointnoRootDirectory\n  defaultAccessPoint:\n    type: alicloud:nas:AccessPoint\n    name: default\n    properties:\n      vpcId: ${defaultkyVC70.id}\n      accessGroup: ${defaultBbc7ev.accessGroupName}\n      vswitchId: ${defaultoZAPmO.id}\n      fileSystemId: ${defaultVtUpDh.id}\n      accessPointName: ${name}\n      posixUser:\n        posixGroupId: '123'\n        posixUserId: '123'\n      rootPathPermission:\n        ownerGroupId: '1'\n        ownerUserId: '1'\n        permission: '0777'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFile Storage (NAS) Access Point can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nas/accessPoint:AccessPoint example \u003cfile_system_id\u003e:\u003caccess_point_id\u003e\n```\n\n","properties":{"accessGroup":{"type":"string","description":"The name of the permission group.\n"},"accessPointId":{"type":"string","description":"The ID of the access point.\n"},"accessPointName":{"type":"string","description":"The name of the access point.\n"},"createTime":{"type":"string","description":"The time when the access point was created.\n"},"enabledRam":{"type":"boolean","description":"Specifies whether to enable the RAM policy. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n"},"posixUser":{"$ref":"#/types/alicloud:nas/AccessPointPosixUser:AccessPointPosixUser","description":"The Posix user. See \u003cspan pulumi-lang-nodejs=\"`posixUser`\" pulumi-lang-dotnet=\"`PosixUser`\" pulumi-lang-go=\"`posixUser`\" pulumi-lang-python=\"`posix_user`\" pulumi-lang-yaml=\"`posixUser`\" pulumi-lang-java=\"`posixUser`\"\u003e`posix_user`\u003c/span\u003e below.\n"},"regionId":{"type":"string","description":"(Available since v1.254.0) The region ID.\n"},"rootPath":{"type":"string","description":"The root directory of the access point.\n"},"rootPathPermission":{"$ref":"#/types/alicloud:nas/AccessPointRootPathPermission:AccessPointRootPathPermission","description":"Root permissions. See \u003cspan pulumi-lang-nodejs=\"`rootPathPermission`\" pulumi-lang-dotnet=\"`RootPathPermission`\" pulumi-lang-go=\"`rootPathPermission`\" pulumi-lang-python=\"`root_path_permission`\" pulumi-lang-yaml=\"`rootPathPermission`\" pulumi-lang-java=\"`rootPathPermission`\"\u003e`root_path_permission`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the access point.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"},"vswitchId":{"type":"string","description":"The vSwitch ID.\n"}},"required":["accessGroup","accessPointId","createTime","fileSystemId","posixUser","regionId","rootPath","rootPathPermission","status","vpcId","vswitchId"],"inputProperties":{"accessGroup":{"type":"string","description":"The name of the permission group.\n"},"accessPointName":{"type":"string","description":"The name of the access point.\n"},"enabledRam":{"type":"boolean","description":"Specifies whether to enable the RAM policy. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"posixUser":{"$ref":"#/types/alicloud:nas/AccessPointPosixUser:AccessPointPosixUser","description":"The Posix user. See \u003cspan pulumi-lang-nodejs=\"`posixUser`\" pulumi-lang-dotnet=\"`PosixUser`\" pulumi-lang-go=\"`posixUser`\" pulumi-lang-python=\"`posix_user`\" pulumi-lang-yaml=\"`posixUser`\" pulumi-lang-java=\"`posixUser`\"\u003e`posix_user`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"rootPath":{"type":"string","description":"The root directory of the access point.\n","willReplaceOnChanges":true},"rootPathPermission":{"$ref":"#/types/alicloud:nas/AccessPointRootPathPermission:AccessPointRootPathPermission","description":"Root permissions. See \u003cspan pulumi-lang-nodejs=\"`rootPathPermission`\" pulumi-lang-dotnet=\"`RootPathPermission`\" pulumi-lang-go=\"`rootPathPermission`\" pulumi-lang-python=\"`root_path_permission`\" pulumi-lang-yaml=\"`rootPathPermission`\" pulumi-lang-java=\"`rootPathPermission`\"\u003e`root_path_permission`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vSwitch ID.\n","willReplaceOnChanges":true}},"requiredInputs":["accessGroup","fileSystemId","vpcId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering AccessPoint resources.\n","properties":{"accessGroup":{"type":"string","description":"The name of the permission group.\n"},"accessPointId":{"type":"string","description":"The ID of the access point.\n"},"accessPointName":{"type":"string","description":"The name of the access point.\n"},"createTime":{"type":"string","description":"The time when the access point was created.\n"},"enabledRam":{"type":"boolean","description":"Specifies whether to enable the RAM policy. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"posixUser":{"$ref":"#/types/alicloud:nas/AccessPointPosixUser:AccessPointPosixUser","description":"The Posix user. See \u003cspan pulumi-lang-nodejs=\"`posixUser`\" pulumi-lang-dotnet=\"`PosixUser`\" pulumi-lang-go=\"`posixUser`\" pulumi-lang-python=\"`posix_user`\" pulumi-lang-yaml=\"`posixUser`\" pulumi-lang-java=\"`posixUser`\"\u003e`posix_user`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"(Available since v1.254.0) The region ID.\n"},"rootPath":{"type":"string","description":"The root directory of the access point.\n","willReplaceOnChanges":true},"rootPathPermission":{"$ref":"#/types/alicloud:nas/AccessPointRootPathPermission:AccessPointRootPathPermission","description":"Root permissions. See \u003cspan pulumi-lang-nodejs=\"`rootPathPermission`\" pulumi-lang-dotnet=\"`RootPathPermission`\" pulumi-lang-go=\"`rootPathPermission`\" pulumi-lang-python=\"`root_path_permission`\" pulumi-lang-yaml=\"`rootPathPermission`\" pulumi-lang-java=\"`rootPathPermission`\"\u003e`root_path_permission`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the access point.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vSwitch ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:nas/accessRule:AccessRule":{"description":"Provides a NAS Access Rule resource. \n\nFor information about NAS Access Rule and how to use it, see [What is Access Rule](https://www.alibabacloud.com/help/en/nas/developer-reference/api-nas-2017-06-26-createaccessrule).\n\n\u003e **NOTE:** Available since v1.34.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultAccessGroup = new alicloud.nas.AccessGroup(\"default\", {\n    accessGroupType: \"Vpc\",\n    description: \"ExtremeAccessGroup\",\n    accessGroupName: `terraform-example-${_default.result}`,\n    fileSystemType: \"extreme\",\n});\nconst defaultAccessRule = new alicloud.nas.AccessRule(\"default\", {\n    accessGroupName: defaultAccessGroup.accessGroupName,\n    rwAccessType: \"RDONLY\",\n    ipv6SourceCidrIp: \"::1\",\n    userAccessType: \"no_squash\",\n    priority: 1,\n    fileSystemType: \"extreme\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_access_group = alicloud.nas.AccessGroup(\"default\",\n    access_group_type=\"Vpc\",\n    description=\"ExtremeAccessGroup\",\n    access_group_name=f\"terraform-example-{default['result']}\",\n    file_system_type=\"extreme\")\ndefault_access_rule = alicloud.nas.AccessRule(\"default\",\n    access_group_name=default_access_group.access_group_name,\n    rw_access_type=\"RDONLY\",\n    ipv6_source_cidr_ip=\"::1\",\n    user_access_type=\"no_squash\",\n    priority=1,\n    file_system_type=\"extreme\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultAccessGroup = new AliCloud.Nas.AccessGroup(\"default\", new()\n    {\n        AccessGroupType = \"Vpc\",\n        Description = \"ExtremeAccessGroup\",\n        AccessGroupName = $\"terraform-example-{@default.Result}\",\n        FileSystemType = \"extreme\",\n    });\n\n    var defaultAccessRule = new AliCloud.Nas.AccessRule(\"default\", new()\n    {\n        AccessGroupName = defaultAccessGroup.AccessGroupName,\n        RwAccessType = \"RDONLY\",\n        Ipv6SourceCidrIp = \"::1\",\n        UserAccessType = \"no_squash\",\n        Priority = 1,\n        FileSystemType = \"extreme\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAccessGroup, err := nas.NewAccessGroup(ctx, \"default\", \u0026nas.AccessGroupArgs{\n\t\t\tAccessGroupType: pulumi.String(\"Vpc\"),\n\t\t\tDescription:     pulumi.String(\"ExtremeAccessGroup\"),\n\t\t\tAccessGroupName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tFileSystemType:  pulumi.String(\"extreme\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nas.NewAccessRule(ctx, \"default\", \u0026nas.AccessRuleArgs{\n\t\t\tAccessGroupName:  defaultAccessGroup.AccessGroupName,\n\t\t\tRwAccessType:     pulumi.String(\"RDONLY\"),\n\t\t\tIpv6SourceCidrIp: pulumi.String(\"::1\"),\n\t\t\tUserAccessType:   pulumi.String(\"no_squash\"),\n\t\t\tPriority:         pulumi.Int(1),\n\t\t\tFileSystemType:   pulumi.String(\"extreme\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.nas.AccessGroup;\nimport com.pulumi.alicloud.nas.AccessGroupArgs;\nimport com.pulumi.alicloud.nas.AccessRule;\nimport com.pulumi.alicloud.nas.AccessRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultAccessGroup = new AccessGroup(\"defaultAccessGroup\", AccessGroupArgs.builder()\n            .accessGroupType(\"Vpc\")\n            .description(\"ExtremeAccessGroup\")\n            .accessGroupName(String.format(\"terraform-example-%s\", default_.result()))\n            .fileSystemType(\"extreme\")\n            .build());\n\n        var defaultAccessRule = new AccessRule(\"defaultAccessRule\", AccessRuleArgs.builder()\n            .accessGroupName(defaultAccessGroup.accessGroupName())\n            .rwAccessType(\"RDONLY\")\n            .ipv6SourceCidrIp(\"::1\")\n            .userAccessType(\"no_squash\")\n            .priority(1)\n            .fileSystemType(\"extreme\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultAccessGroup:\n    type: alicloud:nas:AccessGroup\n    name: default\n    properties:\n      accessGroupType: Vpc\n      description: ExtremeAccessGroup\n      accessGroupName: terraform-example-${default.result}\n      fileSystemType: extreme\n  defaultAccessRule:\n    type: alicloud:nas:AccessRule\n    name: default\n    properties:\n      accessGroupName: ${defaultAccessGroup.accessGroupName}\n      rwAccessType: RDONLY\n      ipv6SourceCidrIp: ::1\n      userAccessType: no_squash\n      priority: '1'\n      fileSystemType: extreme\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nNAS Access Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nas/accessRule:AccessRule example \u003caccess_group_name\u003e:\u003cfile_system_type\u003e:\u003caccess_rule_id\u003e\n```\n\n","properties":{"accessGroupName":{"type":"string","description":"AccessGroupName.\n"},"accessRuleId":{"type":"string","description":"The first ID of the resource.\n"},"fileSystemType":{"type":"string","description":"filesystem type. include standard, extreme.\n"},"ipv6SourceCidrIp":{"type":"string","description":"Ipv6SourceCidrIp.\n"},"priority":{"type":"integer","description":"Priority.\n"},"regionId":{"type":"string","description":"(Available since v1.256.0) The region ID.\n"},"rwAccessType":{"type":"string","description":"RWAccess.\n"},"sourceCidrIp":{"type":"string","description":"SourceCidrIp.\n"},"userAccessType":{"type":"string","description":"UserAccess.\n"}},"required":["accessGroupName","accessRuleId","fileSystemType","regionId","rwAccessType","userAccessType"],"inputProperties":{"accessGroupName":{"type":"string","description":"AccessGroupName.\n","willReplaceOnChanges":true},"fileSystemType":{"type":"string","description":"filesystem type. include standard, extreme.\n","willReplaceOnChanges":true},"ipv6SourceCidrIp":{"type":"string","description":"Ipv6SourceCidrIp.\n"},"priority":{"type":"integer","description":"Priority.\n"},"rwAccessType":{"type":"string","description":"RWAccess.\n"},"sourceCidrIp":{"type":"string","description":"SourceCidrIp.\n"},"userAccessType":{"type":"string","description":"UserAccess.\n"}},"requiredInputs":["accessGroupName"],"stateInputs":{"description":"Input properties used for looking up and filtering AccessRule resources.\n","properties":{"accessGroupName":{"type":"string","description":"AccessGroupName.\n","willReplaceOnChanges":true},"accessRuleId":{"type":"string","description":"The first ID of the resource.\n"},"fileSystemType":{"type":"string","description":"filesystem type. include standard, extreme.\n","willReplaceOnChanges":true},"ipv6SourceCidrIp":{"type":"string","description":"Ipv6SourceCidrIp.\n"},"priority":{"type":"integer","description":"Priority.\n"},"regionId":{"type":"string","description":"(Available since v1.256.0) The region ID.\n"},"rwAccessType":{"type":"string","description":"RWAccess.\n"},"sourceCidrIp":{"type":"string","description":"SourceCidrIp.\n"},"userAccessType":{"type":"string","description":"UserAccess.\n"}},"type":"object"}},"alicloud:nas/autoSnapshotPolicy:AutoSnapshotPolicy":{"description":"Provides a NAS Auto Snapshot Policy resource. Automatic snapshot policy.\n\nFor information about NAS Auto Snapshot Policy and how to use it, see [What is Auto Snapshot Policy](https://www.alibabacloud.com/help/en/doc-detail/135662.html)).\n\n\u003e **NOTE:** Available since v1.153.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.nas.AutoSnapshotPolicy(\"default\", {\n    timePoints: [\n        \"0\",\n        \"1\",\n        \"2\",\n    ],\n    retentionDays: 1,\n    repeatWeekdays: [\n        \"2\",\n        \"3\",\n        \"4\",\n    ],\n    autoSnapshotPolicyName: name,\n    fileSystemType: \"extreme\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.nas.AutoSnapshotPolicy(\"default\",\n    time_points=[\n        \"0\",\n        \"1\",\n        \"2\",\n    ],\n    retention_days=1,\n    repeat_weekdays=[\n        \"2\",\n        \"3\",\n        \"4\",\n    ],\n    auto_snapshot_policy_name=name,\n    file_system_type=\"extreme\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Nas.AutoSnapshotPolicy(\"default\", new()\n    {\n        TimePoints = new[]\n        {\n            \"0\",\n            \"1\",\n            \"2\",\n        },\n        RetentionDays = 1,\n        RepeatWeekdays = new[]\n        {\n            \"2\",\n            \"3\",\n            \"4\",\n        },\n        AutoSnapshotPolicyName = name,\n        FileSystemType = \"extreme\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := nas.NewAutoSnapshotPolicy(ctx, \"default\", \u0026nas.AutoSnapshotPolicyArgs{\n\t\t\tTimePoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"0\"),\n\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\tpulumi.String(\"2\"),\n\t\t\t},\n\t\t\tRetentionDays: pulumi.Int(1),\n\t\t\tRepeatWeekdays: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\tpulumi.String(\"3\"),\n\t\t\t\tpulumi.String(\"4\"),\n\t\t\t},\n\t\t\tAutoSnapshotPolicyName: pulumi.String(name),\n\t\t\tFileSystemType:         pulumi.String(\"extreme\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.AutoSnapshotPolicy;\nimport com.pulumi.alicloud.nas.AutoSnapshotPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new AutoSnapshotPolicy(\"default\", AutoSnapshotPolicyArgs.builder()\n            .timePoints(            \n                \"0\",\n                \"1\",\n                \"2\")\n            .retentionDays(1)\n            .repeatWeekdays(            \n                \"2\",\n                \"3\",\n                \"4\")\n            .autoSnapshotPolicyName(name)\n            .fileSystemType(\"extreme\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:nas:AutoSnapshotPolicy\n    properties:\n      timePoints:\n        - '0'\n        - '1'\n        - '2'\n      retentionDays: '1'\n      repeatWeekdays:\n        - '2'\n        - '3'\n        - '4'\n      autoSnapshotPolicyName: ${name}\n      fileSystemType: extreme\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nNAS Auto Snapshot Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nas/autoSnapshotPolicy:AutoSnapshotPolicy example \u003cid\u003e\n```\n\n","properties":{"autoSnapshotPolicyName":{"type":"string","description":"The name of the automatic snapshot policy. Limits:\n- The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length,\n- The name must start with a letter.\n- The name can contain digits, colons (:), underscores (_), and hyphens (-). The name cannot start with `http://` or `https://`.\n- The value of this parameter is empty by default.\n"},"createTime":{"type":"string","description":"Creation time.\n"},"fileSystemType":{"type":"string","description":"The file system type.\n"},"repeatWeekdays":{"type":"array","items":{"type":"string"},"description":"The day on which an auto snapshot is created.\n- A maximum of 7 time points can be selected.\n- The format is  an JSON array of [\"1\", \"2\", … \"7\"]  and the time points are separated by commas (,).\n"},"retentionDays":{"type":"integer","description":"The number of days for which you want to retain auto snapshots. Unit: days. Valid values:\n- `-1`: the default value. Auto snapshots are permanently retained. After the number of auto snapshots exceeds the upper limit, the earliest auto snapshot is automatically deleted.\n"},"status":{"type":"string","description":"The status of the automatic snapshot policy.\n"},"timePoints":{"type":"array","items":{"type":"string"},"description":"The point in time at which an auto snapshot is created.\n- A maximum of 24 time points can be selected.\n- The format is  an JSON array of [\"0\", \"1\", … \"23\"] and the time points are separated by commas (,).\n"}},"required":["createTime","fileSystemType","repeatWeekdays","retentionDays","status","timePoints"],"inputProperties":{"autoSnapshotPolicyName":{"type":"string","description":"The name of the automatic snapshot policy. Limits:\n- The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length,\n- The name must start with a letter.\n- The name can contain digits, colons (:), underscores (_), and hyphens (-). The name cannot start with `http://` or `https://`.\n- The value of this parameter is empty by default.\n"},"fileSystemType":{"type":"string","description":"The file system type.\n","willReplaceOnChanges":true},"repeatWeekdays":{"type":"array","items":{"type":"string"},"description":"The day on which an auto snapshot is created.\n- A maximum of 7 time points can be selected.\n- The format is  an JSON array of [\"1\", \"2\", … \"7\"]  and the time points are separated by commas (,).\n"},"retentionDays":{"type":"integer","description":"The number of days for which you want to retain auto snapshots. Unit: days. Valid values:\n- `-1`: the default value. Auto snapshots are permanently retained. After the number of auto snapshots exceeds the upper limit, the earliest auto snapshot is automatically deleted.\n"},"timePoints":{"type":"array","items":{"type":"string"},"description":"The point in time at which an auto snapshot is created.\n- A maximum of 24 time points can be selected.\n- The format is  an JSON array of [\"0\", \"1\", … \"23\"] and the time points are separated by commas (,).\n"}},"requiredInputs":["repeatWeekdays","timePoints"],"stateInputs":{"description":"Input properties used for looking up and filtering AutoSnapshotPolicy resources.\n","properties":{"autoSnapshotPolicyName":{"type":"string","description":"The name of the automatic snapshot policy. Limits:\n- The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length,\n- The name must start with a letter.\n- The name can contain digits, colons (:), underscores (_), and hyphens (-). The name cannot start with `http://` or `https://`.\n- The value of this parameter is empty by default.\n"},"createTime":{"type":"string","description":"Creation time.\n"},"fileSystemType":{"type":"string","description":"The file system type.\n","willReplaceOnChanges":true},"repeatWeekdays":{"type":"array","items":{"type":"string"},"description":"The day on which an auto snapshot is created.\n- A maximum of 7 time points can be selected.\n- The format is  an JSON array of [\"1\", \"2\", … \"7\"]  and the time points are separated by commas (,).\n"},"retentionDays":{"type":"integer","description":"The number of days for which you want to retain auto snapshots. Unit: days. Valid values:\n- `-1`: the default value. Auto snapshots are permanently retained. After the number of auto snapshots exceeds the upper limit, the earliest auto snapshot is automatically deleted.\n"},"status":{"type":"string","description":"The status of the automatic snapshot policy.\n"},"timePoints":{"type":"array","items":{"type":"string"},"description":"The point in time at which an auto snapshot is created.\n- A maximum of 24 time points can be selected.\n- The format is  an JSON array of [\"0\", \"1\", … \"23\"] and the time points are separated by commas (,).\n"}},"type":"object"}},"alicloud:nas/dataFlow:DataFlow":{"description":"Provides a File Storage (NAS) Data Flow resource.\n\nFor information about File Storage (NAS) Data Flow and how to use it, see [What is Data Flow](https://www.alibabacloud.com/help/en/doc-detail/27530.html).\n\n\u003e **NOTE:** Available since v1.153.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst example = alicloud.nas.getZones({\n    fileSystemType: \"cpfs\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[1]?.zoneId),\n});\nconst exampleFileSystem = new alicloud.nas.FileSystem(\"example\", {\n    protocolType: \"cpfs\",\n    storageType: \"advance_200\",\n    fileSystemType: \"cpfs\",\n    capacity: 3600,\n    description: \"terraform-example\",\n    zoneId: example.then(example =\u003e example.zones?.[1]?.zoneId),\n    vpcId: exampleNetwork.id,\n    vswitchId: exampleSwitch.id,\n});\nconst exampleMountTarget = new alicloud.nas.MountTarget(\"example\", {\n    fileSystemId: exampleFileSystem.id,\n    vswitchId: exampleSwitch.id,\n});\nconst exampleInteger = new random.index.Integer(\"example\", {\n    max: 99999,\n    min: 10000,\n});\nconst exampleBucket = new alicloud.oss.Bucket(\"example\", {\n    bucket: `example-value-${exampleInteger.result}`,\n    acl: \"private\",\n    tags: {\n        \"cpfs-dataflow\": \"true\",\n    },\n});\nconst exampleFileset = new alicloud.nas.Fileset(\"example\", {\n    fileSystemId: exampleMountTarget.fileSystemId,\n    description: \"terraform-example\",\n    fileSystemPath: \"/example_path/\",\n});\nconst exampleDataFlow = new alicloud.nas.DataFlow(\"example\", {\n    fsetId: exampleFileset.filesetId,\n    description: \"terraform-example\",\n    fileSystemId: exampleFileSystem.id,\n    sourceSecurityType: \"SSL\",\n    sourceStorage: std.joinOutput({\n        separator: \"\",\n        input: [\n            \"oss://\",\n            exampleBucket.bucket,\n        ],\n    }).apply(invoke =\u003e invoke.result),\n    throughput: 600,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nexample = alicloud.nas.get_zones(file_system_type=\"cpfs\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[1].zone_id)\nexample_file_system = alicloud.nas.FileSystem(\"example\",\n    protocol_type=\"cpfs\",\n    storage_type=\"advance_200\",\n    file_system_type=\"cpfs\",\n    capacity=3600,\n    description=\"terraform-example\",\n    zone_id=example.zones[1].zone_id,\n    vpc_id=example_network.id,\n    vswitch_id=example_switch.id)\nexample_mount_target = alicloud.nas.MountTarget(\"example\",\n    file_system_id=example_file_system.id,\n    vswitch_id=example_switch.id)\nexample_integer = random.index.Integer(\"example\",\n    max=99999,\n    min=10000)\nexample_bucket = alicloud.oss.Bucket(\"example\",\n    bucket=f\"example-value-{example_integer['result']}\",\n    acl=\"private\",\n    tags={\n        \"cpfs-dataflow\": \"true\",\n    })\nexample_fileset = alicloud.nas.Fileset(\"example\",\n    file_system_id=example_mount_target.file_system_id,\n    description=\"terraform-example\",\n    file_system_path=\"/example_path/\")\nexample_data_flow = alicloud.nas.DataFlow(\"example\",\n    fset_id=example_fileset.fileset_id,\n    description=\"terraform-example\",\n    file_system_id=example_file_system.id,\n    source_security_type=\"SSL\",\n    source_storage=std.join_output(separator=\"\",\n        input=[\n            \"oss://\",\n            example_bucket.bucket,\n        ]).apply(lambda invoke: invoke.result),\n    throughput=600)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Nas.GetZones.Invoke(new()\n    {\n        FileSystemType = \"cpfs\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.ZoneId),\n    });\n\n    var exampleFileSystem = new AliCloud.Nas.FileSystem(\"example\", new()\n    {\n        ProtocolType = \"cpfs\",\n        StorageType = \"advance_200\",\n        FileSystemType = \"cpfs\",\n        Capacity = 3600,\n        Description = \"terraform-example\",\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.ZoneId),\n        VpcId = exampleNetwork.Id,\n        VswitchId = exampleSwitch.Id,\n    });\n\n    var exampleMountTarget = new AliCloud.Nas.MountTarget(\"example\", new()\n    {\n        FileSystemId = exampleFileSystem.Id,\n        VswitchId = exampleSwitch.Id,\n    });\n\n    var exampleInteger = new Random.Index.Integer(\"example\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var exampleBucket = new AliCloud.Oss.Bucket(\"example\", new()\n    {\n        BucketName = $\"example-value-{exampleInteger.Result}\",\n        Acl = \"private\",\n        Tags = \n        {\n            { \"cpfs-dataflow\", \"true\" },\n        },\n    });\n\n    var exampleFileset = new AliCloud.Nas.Fileset(\"example\", new()\n    {\n        FileSystemId = exampleMountTarget.FileSystemId,\n        Description = \"terraform-example\",\n        FileSystemPath = \"/example_path/\",\n    });\n\n    var exampleDataFlow = new AliCloud.Nas.DataFlow(\"example\", new()\n    {\n        FsetId = exampleFileset.FilesetId,\n        Description = \"terraform-example\",\n        FileSystemId = exampleFileSystem.Id,\n        SourceSecurityType = \"SSL\",\n        SourceStorage = Std.Join.Invoke(new()\n        {\n            Separator = \"\",\n            Input = new[]\n            {\n                \"oss://\",\n                exampleBucket.BucketName,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        Throughput = 600,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := nas.GetZones(ctx, \u0026nas.GetZonesArgs{\n\t\t\tFileSystemType: pulumi.StringRef(\"cpfs\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[1].ZoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFileSystem, err := nas.NewFileSystem(ctx, \"example\", \u0026nas.FileSystemArgs{\n\t\t\tProtocolType:   pulumi.String(\"cpfs\"),\n\t\t\tStorageType:    pulumi.String(\"advance_200\"),\n\t\t\tFileSystemType: pulumi.String(\"cpfs\"),\n\t\t\tCapacity:       pulumi.Int(3600),\n\t\t\tDescription:    pulumi.String(\"terraform-example\"),\n\t\t\tZoneId:         pulumi.String(example.Zones[1].ZoneId),\n\t\t\tVpcId:          exampleNetwork.ID(),\n\t\t\tVswitchId:      exampleSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleMountTarget, err := nas.NewMountTarget(ctx, \"example\", \u0026nas.MountTargetArgs{\n\t\t\tFileSystemId: exampleFileSystem.ID(),\n\t\t\tVswitchId:    exampleSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInteger, err := random.NewInteger(ctx, \"example\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBucket, err := oss.NewBucket(ctx, \"example\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"example-value-%v\", exampleInteger.Result),\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"cpfs-dataflow\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFileset, err := nas.NewFileset(ctx, \"example\", \u0026nas.FilesetArgs{\n\t\t\tFileSystemId:   exampleMountTarget.FileSystemId,\n\t\t\tDescription:    pulumi.String(\"terraform-example\"),\n\t\t\tFileSystemPath: pulumi.String(\"/example_path/\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nas.NewDataFlow(ctx, \"example\", \u0026nas.DataFlowArgs{\n\t\t\tFsetId:             exampleFileset.FilesetId,\n\t\t\tDescription:        pulumi.String(\"terraform-example\"),\n\t\t\tFileSystemId:       exampleFileSystem.ID(),\n\t\t\tSourceSecurityType: pulumi.String(\"SSL\"),\n\t\t\tSourceStorage: pulumi.String(std.JoinOutput(ctx, std.JoinOutputArgs{\n\t\t\t\tSeparator: pulumi.String(\"\"),\n\t\t\t\tInput: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"oss://\"),\n\t\t\t\t\texampleBucket.Bucket,\n\t\t\t\t},\n\t\t\t}, nil).ApplyT(func(invoke std.JoinResult) (*string, error) {\n\t\t\t\treturn invoke.Result, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tThroughput: pulumi.Int(600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.nas.FileSystem;\nimport com.pulumi.alicloud.nas.FileSystemArgs;\nimport com.pulumi.alicloud.nas.MountTarget;\nimport com.pulumi.alicloud.nas.MountTargetArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.nas.Fileset;\nimport com.pulumi.alicloud.nas.FilesetArgs;\nimport com.pulumi.alicloud.nas.DataFlow;\nimport com.pulumi.alicloud.nas.DataFlowArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.JoinArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NasFunctions.getZones(GetZonesArgs.builder()\n            .fileSystemType(\"cpfs\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[1].zoneId())\n            .build());\n\n        var exampleFileSystem = new FileSystem(\"exampleFileSystem\", FileSystemArgs.builder()\n            .protocolType(\"cpfs\")\n            .storageType(\"advance_200\")\n            .fileSystemType(\"cpfs\")\n            .capacity(3600)\n            .description(\"terraform-example\")\n            .zoneId(example.zones()[1].zoneId())\n            .vpcId(exampleNetwork.id())\n            .vswitchId(exampleSwitch.id())\n            .build());\n\n        var exampleMountTarget = new MountTarget(\"exampleMountTarget\", MountTargetArgs.builder()\n            .fileSystemId(exampleFileSystem.id())\n            .vswitchId(exampleSwitch.id())\n            .build());\n\n        var exampleInteger = new Integer(\"exampleInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var exampleBucket = new Bucket(\"exampleBucket\", BucketArgs.builder()\n            .bucket(String.format(\"example-value-%s\", exampleInteger.result()))\n            .acl(\"private\")\n            .tags(Map.of(\"cpfs-dataflow\", \"true\"))\n            .build());\n\n        var exampleFileset = new Fileset(\"exampleFileset\", FilesetArgs.builder()\n            .fileSystemId(exampleMountTarget.fileSystemId())\n            .description(\"terraform-example\")\n            .fileSystemPath(\"/example_path/\")\n            .build());\n\n        var exampleDataFlow = new DataFlow(\"exampleDataFlow\", DataFlowArgs.builder()\n            .fsetId(exampleFileset.filesetId())\n            .description(\"terraform-example\")\n            .fileSystemId(exampleFileSystem.id())\n            .sourceSecurityType(\"SSL\")\n            .sourceStorage(StdFunctions.join(JoinArgs.builder()\n                .separator(\"\")\n                .input(                \n                    \"oss://\",\n                    exampleBucket.bucket())\n                .build()).applyValue(_invoke -\u003e _invoke.result()))\n            .throughput(600)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[1].zoneId}\n  exampleFileSystem:\n    type: alicloud:nas:FileSystem\n    name: example\n    properties:\n      protocolType: cpfs\n      storageType: advance_200\n      fileSystemType: cpfs\n      capacity: 3600\n      description: terraform-example\n      zoneId: ${example.zones[1].zoneId}\n      vpcId: ${exampleNetwork.id}\n      vswitchId: ${exampleSwitch.id}\n  exampleMountTarget:\n    type: alicloud:nas:MountTarget\n    name: example\n    properties:\n      fileSystemId: ${exampleFileSystem.id}\n      vswitchId: ${exampleSwitch.id}\n  exampleInteger:\n    type: random:Integer\n    name: example\n    properties:\n      max: 99999\n      min: 10000\n  exampleBucket:\n    type: alicloud:oss:Bucket\n    name: example\n    properties:\n      bucket: example-value-${exampleInteger.result}\n      acl: private\n      tags:\n        cpfs-dataflow: 'true'\n  exampleFileset:\n    type: alicloud:nas:Fileset\n    name: example\n    properties:\n      fileSystemId: ${exampleMountTarget.fileSystemId}\n      description: terraform-example\n      fileSystemPath: /example_path/\n  exampleDataFlow:\n    type: alicloud:nas:DataFlow\n    name: example\n    properties:\n      fsetId: ${exampleFileset.filesetId}\n      description: terraform-example\n      fileSystemId: ${exampleFileSystem.id}\n      sourceSecurityType: SSL\n      sourceStorage:\n        fn::invoke:\n          function: std:join\n          arguments:\n            separator: \"\"\n            input:\n              - oss://\n              - ${exampleBucket.bucket}\n          return: result\n      throughput: 600\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:nas:getZones\n      arguments:\n        fileSystemType: cpfs\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFile Storage (NAS) Data Flow can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nas/dataFlow:DataFlow example \u003cfile_system_id\u003e:\u003cdata_flow_id\u003e\n```\n\n","properties":{"dataFlowId":{"type":"string","description":"The ID of the Data flow.\n"},"description":{"type":"string","description":"The Description of the data flow. Restrictions:\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n"},"fsetId":{"type":"string","description":"The ID of the Fileset.\n"},"sourceSecurityType":{"type":"string","description":"The security protection type of the source storage. If the source storage must be accessed through security protection, specify the security protection type of the source storage. Value:\n- `NONE` (default): Indicates that the source storage does not need to be accessed through security protection.\n- `SSL`: Protects access through SSL certificates.\n"},"sourceStorage":{"type":"string","description":"The access path of the source store. Format: `\u003cstorage type\u003e://\u003cpath\u003e`. Among them:\n- storage type: currently only OSS is supported.\n- path: the bucket name of OSS.\n- Only lowercase letters, numbers, and dashes (-) are supported and must start and end with lowercase letters or numbers.\n"},"status":{"type":"string","description":"The status of the Data flow. Valid values: `Running`, `Stopped`.\n"},"throughput":{"type":"integer","description":"The maximum transmission bandwidth of data flow, unit: `MB/s`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1200`\" pulumi-lang-dotnet=\"`1200`\" pulumi-lang-go=\"`1200`\" pulumi-lang-python=\"`1200`\" pulumi-lang-yaml=\"`1200`\" pulumi-lang-java=\"`1200`\"\u003e`1200`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1500`\" pulumi-lang-dotnet=\"`1500`\" pulumi-lang-go=\"`1500`\" pulumi-lang-python=\"`1500`\" pulumi-lang-yaml=\"`1500`\" pulumi-lang-java=\"`1500`\"\u003e`1500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. **NOTE:** The transmission bandwidth of data flow must be less than the IO bandwidth of the file system.\n"}},"required":["dataFlowId","fileSystemId","fsetId","sourceSecurityType","sourceStorage","status","throughput"],"inputProperties":{"description":{"type":"string","description":"The Description of the data flow. Restrictions:\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"fsetId":{"type":"string","description":"The ID of the Fileset.\n","willReplaceOnChanges":true},"sourceSecurityType":{"type":"string","description":"The security protection type of the source storage. If the source storage must be accessed through security protection, specify the security protection type of the source storage. Value:\n- `NONE` (default): Indicates that the source storage does not need to be accessed through security protection.\n- `SSL`: Protects access through SSL certificates.\n","willReplaceOnChanges":true},"sourceStorage":{"type":"string","description":"The access path of the source store. Format: `\u003cstorage type\u003e://\u003cpath\u003e`. Among them:\n- storage type: currently only OSS is supported.\n- path: the bucket name of OSS.\n- Only lowercase letters, numbers, and dashes (-) are supported and must start and end with lowercase letters or numbers.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Data flow. Valid values: `Running`, `Stopped`.\n"},"throughput":{"type":"integer","description":"The maximum transmission bandwidth of data flow, unit: `MB/s`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1200`\" pulumi-lang-dotnet=\"`1200`\" pulumi-lang-go=\"`1200`\" pulumi-lang-python=\"`1200`\" pulumi-lang-yaml=\"`1200`\" pulumi-lang-java=\"`1200`\"\u003e`1200`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1500`\" pulumi-lang-dotnet=\"`1500`\" pulumi-lang-go=\"`1500`\" pulumi-lang-python=\"`1500`\" pulumi-lang-yaml=\"`1500`\" pulumi-lang-java=\"`1500`\"\u003e`1500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. **NOTE:** The transmission bandwidth of data flow must be less than the IO bandwidth of the file system.\n"}},"requiredInputs":["fileSystemId","fsetId","sourceStorage","throughput"],"stateInputs":{"description":"Input properties used for looking up and filtering DataFlow resources.\n","properties":{"dataFlowId":{"type":"string","description":"The ID of the Data flow.\n"},"description":{"type":"string","description":"The Description of the data flow. Restrictions:\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"fsetId":{"type":"string","description":"The ID of the Fileset.\n","willReplaceOnChanges":true},"sourceSecurityType":{"type":"string","description":"The security protection type of the source storage. If the source storage must be accessed through security protection, specify the security protection type of the source storage. Value:\n- `NONE` (default): Indicates that the source storage does not need to be accessed through security protection.\n- `SSL`: Protects access through SSL certificates.\n","willReplaceOnChanges":true},"sourceStorage":{"type":"string","description":"The access path of the source store. Format: `\u003cstorage type\u003e://\u003cpath\u003e`. Among them:\n- storage type: currently only OSS is supported.\n- path: the bucket name of OSS.\n- Only lowercase letters, numbers, and dashes (-) are supported and must start and end with lowercase letters or numbers.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Data flow. Valid values: `Running`, `Stopped`.\n"},"throughput":{"type":"integer","description":"The maximum transmission bandwidth of data flow, unit: `MB/s`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1200`\" pulumi-lang-dotnet=\"`1200`\" pulumi-lang-go=\"`1200`\" pulumi-lang-python=\"`1200`\" pulumi-lang-yaml=\"`1200`\" pulumi-lang-java=\"`1200`\"\u003e`1200`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1500`\" pulumi-lang-dotnet=\"`1500`\" pulumi-lang-go=\"`1500`\" pulumi-lang-python=\"`1500`\" pulumi-lang-yaml=\"`1500`\" pulumi-lang-java=\"`1500`\"\u003e`1500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. **NOTE:** The transmission bandwidth of data flow must be less than the IO bandwidth of the file system.\n"}},"type":"object"}},"alicloud:nas/fileSystem:FileSystem":{"description":"Provides a File Storage (NAS) File System resource.\n\nFile System Instance.\n\nFor information about File Storage (NAS) File System and how to use it, see [What is File System](https://www.alibabacloud.com/help/en/nas/developer-reference/api-nas-2017-06-26-createfilesystem).\n\n\u003e **NOTE:** Available since v1.33.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.nas.getZones({\n    fileSystemType: \"standard\",\n});\nconst defaultFileSystem = new alicloud.nas.FileSystem(\"default\", {\n    protocolType: \"NFS\",\n    storageType: \"Capacity\",\n    description: name,\n    encryptType: 1,\n    fileSystemType: \"standard\",\n    recycleBin: {\n        status: \"Enable\",\n        reservedDays: 10,\n    },\n    nfsAcl: {\n        enabled: true,\n    },\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.zoneId),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.nas.get_zones(file_system_type=\"standard\")\ndefault_file_system = alicloud.nas.FileSystem(\"default\",\n    protocol_type=\"NFS\",\n    storage_type=\"Capacity\",\n    description=name,\n    encrypt_type=1,\n    file_system_type=\"standard\",\n    recycle_bin={\n        \"status\": \"Enable\",\n        \"reserved_days\": 10,\n    },\n    nfs_acl={\n        \"enabled\": True,\n    },\n    zone_id=default.zones[0].zone_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Nas.GetZones.Invoke(new()\n    {\n        FileSystemType = \"standard\",\n    });\n\n    var defaultFileSystem = new AliCloud.Nas.FileSystem(\"default\", new()\n    {\n        ProtocolType = \"NFS\",\n        StorageType = \"Capacity\",\n        Description = name,\n        EncryptType = 1,\n        FileSystemType = \"standard\",\n        RecycleBin = new AliCloud.Nas.Inputs.FileSystemRecycleBinArgs\n        {\n            Status = \"Enable\",\n            ReservedDays = 10,\n        },\n        NfsAcl = new AliCloud.Nas.Inputs.FileSystemNfsAclArgs\n        {\n            Enabled = true,\n        },\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.ZoneId)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := nas.GetZones(ctx, \u0026nas.GetZonesArgs{\n\t\t\tFileSystemType: pulumi.StringRef(\"standard\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nas.NewFileSystem(ctx, \"default\", \u0026nas.FileSystemArgs{\n\t\t\tProtocolType:   pulumi.String(\"NFS\"),\n\t\t\tStorageType:    pulumi.String(\"Capacity\"),\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tEncryptType:    pulumi.Int(1),\n\t\t\tFileSystemType: pulumi.String(\"standard\"),\n\t\t\tRecycleBin: \u0026nas.FileSystemRecycleBinArgs{\n\t\t\t\tStatus:       pulumi.String(\"Enable\"),\n\t\t\t\tReservedDays: pulumi.Int(10),\n\t\t\t},\n\t\t\tNfsAcl: \u0026nas.FileSystemNfsAclArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t\tZoneId: pulumi.String(_default.Zones[0].ZoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.nas.FileSystem;\nimport com.pulumi.alicloud.nas.FileSystemArgs;\nimport com.pulumi.alicloud.nas.inputs.FileSystemRecycleBinArgs;\nimport com.pulumi.alicloud.nas.inputs.FileSystemNfsAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = NasFunctions.getZones(GetZonesArgs.builder()\n            .fileSystemType(\"standard\")\n            .build());\n\n        var defaultFileSystem = new FileSystem(\"defaultFileSystem\", FileSystemArgs.builder()\n            .protocolType(\"NFS\")\n            .storageType(\"Capacity\")\n            .description(name)\n            .encryptType(1)\n            .fileSystemType(\"standard\")\n            .recycleBin(FileSystemRecycleBinArgs.builder()\n                .status(\"Enable\")\n                .reservedDays(10)\n                .build())\n            .nfsAcl(FileSystemNfsAclArgs.builder()\n                .enabled(true)\n                .build())\n            .zoneId(default_.zones()[0].zoneId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultFileSystem:\n    type: alicloud:nas:FileSystem\n    name: default\n    properties:\n      protocolType: NFS\n      storageType: Capacity\n      description: ${name}\n      encryptType: 1\n      fileSystemType: standard\n      recycleBin:\n        status: Enable\n        reservedDays: '10'\n      nfsAcl:\n        enabled: true\n      zoneId: ${default.zones[0].zoneId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:nas:getZones\n      arguments:\n        fileSystemType: standard\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFile Storage (NAS) File System can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nas/fileSystem:FileSystem example \u003cid\u003e\n```\n\n","properties":{"capacity":{"type":"integer","description":"File system capacity.\n\nUnit: GiB, required and valid when FileSystemType = extreme or cpfs.\n\nFor optional values, please refer to the actual specifications on the purchase page:\n-[Fast NAS Pay-As-You-Go Page](https://common-buy.aliyun.com/? commodityCode=nas_extreme_post#/buy)\n-[Fast NAS Package Monthly Purchase Page](https://common-buy.aliyun.com/? commodityCode=nas_extreme#/buy)\n-[Parallel File System CPFS Pay-As-You-Go Purchase Page](https://common-buy.aliyun.com/? commodityCode=nas_cpfs_post#/buy)\n-[Parallel File System CPFS Package Monthly Purchase Page](https://common-buy.aliyun.com/? commodityCode=cpfs#/buy)\n"},"createTime":{"type":"string","description":"CreateTime\n"},"description":{"type":"string","description":"File system description.\n\nRestrictions:\n- 2~128 English or Chinese characters in length.\n- Must start with upper and lower case letters or Chinese, and cannot start with'http: // 'and'https.\n- Can contain numbers, colons (:), underscores (_), or dashes (-).\n"},"encryptType":{"type":"integer","description":"Whether the file system is encrypted.\n\nUse the KMS service hosting key to encrypt and store the file system disk data. When reading and writing encrypted data, there is no need to decrypt it.\n\nValue:\n- 0 (default): not encrypted.\n- 1:NAS managed key. NAS managed keys are supported when FileSystemType = standard or extreme.\n- 2: User management key. You can manage keys only when FileSystemType = extreme.\n"},"fileSystemType":{"type":"string","description":"File system type.\n\nValue:\n- standard (default): Universal NAS\n- extreme: extreme NAS\n- cpfs: file storage CPFS\n"},"keytab":{"type":"string","description":"String of keytab file content encrypted by base64\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"keytabMd5":{"type":"string","description":"String of the keytab file content encrypted by MD5\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"kmsKeyId":{"type":"string","description":"The ID of the KMS key.\nThis parameter is required only when EncryptType = 2.\n"},"nfsAcl":{"$ref":"#/types/alicloud:nas/FileSystemNfsAcl:FileSystemNfsAcl","description":"NFS ACL See \u003cspan pulumi-lang-nodejs=\"`nfsAcl`\" pulumi-lang-dotnet=\"`NfsAcl`\" pulumi-lang-go=\"`nfsAcl`\" pulumi-lang-python=\"`nfs_acl`\" pulumi-lang-yaml=\"`nfsAcl`\" pulumi-lang-java=\"`nfsAcl`\"\u003e`nfs_acl`\u003c/span\u003e below.\n"},"options":{"$ref":"#/types/alicloud:nas/FileSystemOptions:FileSystemOptions","description":"Option. See \u003cspan pulumi-lang-nodejs=\"`options`\" pulumi-lang-dotnet=\"`Options`\" pulumi-lang-go=\"`options`\" pulumi-lang-python=\"`options`\" pulumi-lang-yaml=\"`options`\" pulumi-lang-java=\"`options`\"\u003e`options`\u003c/span\u003e below.\n"},"protocolType":{"type":"string","description":"File transfer protocol type.\n- When FileSystemType = standard, the values are NFS and SMB.\n- When FileSystemType = extreme, the value is NFS.\n- When FileSystemType = cpfs, the value is cpfs.\n"},"recycleBin":{"$ref":"#/types/alicloud:nas/FileSystemRecycleBin:FileSystemRecycleBin","description":"Recycle Bin See \u003cspan pulumi-lang-nodejs=\"`recycleBin`\" pulumi-lang-dotnet=\"`RecycleBin`\" pulumi-lang-go=\"`recycleBin`\" pulumi-lang-python=\"`recycle_bin`\" pulumi-lang-yaml=\"`recycleBin`\" pulumi-lang-java=\"`recycleBin`\"\u003e`recycle_bin`\u003c/span\u003e below.\n"},"redundancyType":{"type":"string","description":"Storage redundancy type. Only effective for General CPFS.Options: Locally Redundant Storage (LRS), Zone-Redundant Storage (ZRS) Default value: LRS\n"},"redundancyVswitchIds":{"type":"array","items":{"type":"string"},"description":"Redundancy vSwitch ID list. Only set when the file system's storage redundancy type is Zone-Redundant Storage (ZRS), and must set vSwitch IDs from three different availability zones under the same VPC.\n"},"regionId":{"type":"string","description":"RegionId\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"smbAcl":{"$ref":"#/types/alicloud:nas/FileSystemSmbAcl:FileSystemSmbAcl","description":"SMB ACL See \u003cspan pulumi-lang-nodejs=\"`smbAcl`\" pulumi-lang-dotnet=\"`SmbAcl`\" pulumi-lang-go=\"`smbAcl`\" pulumi-lang-python=\"`smb_acl`\" pulumi-lang-yaml=\"`smbAcl`\" pulumi-lang-java=\"`smbAcl`\"\u003e`smb_acl`\u003c/span\u003e below.\n"},"snapshotId":{"type":"string","description":"Only extreme NAS is supported.\n\n\u003e **NOTE:** A file system is created from a snapshot. The version of the created file system is the same as that of the snapshot source file system. For example, if the source file system version of the snapshot is 1 and you need to create A file system of version 2, you can first create A file system A from the snapshot, then create A file system B that meets the configuration of version 2, copy the data in file system A to file system B, and migrate the business to file system B after the copy is completed.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"status":{"type":"string","description":"File system status. Includes:(such as creating a mount point) can only be performed when the file system is in the Running state.\n"},"storageType":{"type":"string","description":"The storage type.\n- When FileSystemType = standard, the values are Performance, Capacity, and Premium.\n- When FileSystemType = extreme, the value is standard or advance.\n- When FileSystemType = cpfs, the values are advance_100(100MB/s/TiB baseline) and advance_200(200MB/s/TiB baseline).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Label information collection.\n"},"vpcId":{"type":"string","description":"The ID of the VPC network.\nThis parameter must be configured when FileSystemType = cpfs.\nWhen the FileSystemType is standard or extreme, this parameter is reserved for the interface and has not taken effect yet. You do not need to configure it.\n"},"vswitchId":{"type":"string","description":"The ID of the switch.\nThis parameter must be configured when FileSystemType = cpfs.\nWhen the FileSystemType is standard or extreme, this parameter is reserved for the interface and has not taken effect yet. You do not need to configure it.\n"},"zoneId":{"type":"string","description":"The zone ID.\n\nThe usable area refers to the physical area where power and network are independent of each other in the same area.\n\nWhen the FileSystemType is set to standard, this parameter is optional. By default, a zone that meets the conditions is randomly selected based on the ProtocolType and StorageType configurations. This parameter is required when FileSystemType = extreme or FileSystemType = cpfs.\n\n\u003e **NOTE:** - file systems in different zones in the same region communicate with ECS cloud servers.\n\n\u003e **NOTE:** - We recommend that the file system and the ECS instance belong to the same zone to avoid cross-zone latency.\n"}},"required":["capacity","createTime","encryptType","fileSystemType","kmsKeyId","nfsAcl","options","protocolType","recycleBin","redundancyType","regionId","resourceGroupId","smbAcl","status","storageType","zoneId"],"inputProperties":{"capacity":{"type":"integer","description":"File system capacity.\n\nUnit: GiB, required and valid when FileSystemType = extreme or cpfs.\n\nFor optional values, please refer to the actual specifications on the purchase page:\n-[Fast NAS Pay-As-You-Go Page](https://common-buy.aliyun.com/? commodityCode=nas_extreme_post#/buy)\n-[Fast NAS Package Monthly Purchase Page](https://common-buy.aliyun.com/? commodityCode=nas_extreme#/buy)\n-[Parallel File System CPFS Pay-As-You-Go Purchase Page](https://common-buy.aliyun.com/? commodityCode=nas_cpfs_post#/buy)\n-[Parallel File System CPFS Package Monthly Purchase Page](https://common-buy.aliyun.com/? commodityCode=cpfs#/buy)\n"},"description":{"type":"string","description":"File system description.\n\nRestrictions:\n- 2~128 English or Chinese characters in length.\n- Must start with upper and lower case letters or Chinese, and cannot start with'http: // 'and'https.\n- Can contain numbers, colons (:), underscores (_), or dashes (-).\n"},"encryptType":{"type":"integer","description":"Whether the file system is encrypted.\n\nUse the KMS service hosting key to encrypt and store the file system disk data. When reading and writing encrypted data, there is no need to decrypt it.\n\nValue:\n- 0 (default): not encrypted.\n- 1:NAS managed key. NAS managed keys are supported when FileSystemType = standard or extreme.\n- 2: User management key. You can manage keys only when FileSystemType = extreme.\n","willReplaceOnChanges":true},"fileSystemType":{"type":"string","description":"File system type.\n\nValue:\n- standard (default): Universal NAS\n- extreme: extreme NAS\n- cpfs: file storage CPFS\n","willReplaceOnChanges":true},"keytab":{"type":"string","description":"String of keytab file content encrypted by base64\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"keytabMd5":{"type":"string","description":"String of the keytab file content encrypted by MD5\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"kmsKeyId":{"type":"string","description":"The ID of the KMS key.\nThis parameter is required only when EncryptType = 2.\n","willReplaceOnChanges":true},"nfsAcl":{"$ref":"#/types/alicloud:nas/FileSystemNfsAcl:FileSystemNfsAcl","description":"NFS ACL See \u003cspan pulumi-lang-nodejs=\"`nfsAcl`\" pulumi-lang-dotnet=\"`NfsAcl`\" pulumi-lang-go=\"`nfsAcl`\" pulumi-lang-python=\"`nfs_acl`\" pulumi-lang-yaml=\"`nfsAcl`\" pulumi-lang-java=\"`nfsAcl`\"\u003e`nfs_acl`\u003c/span\u003e below.\n"},"options":{"$ref":"#/types/alicloud:nas/FileSystemOptions:FileSystemOptions","description":"Option. See \u003cspan pulumi-lang-nodejs=\"`options`\" pulumi-lang-dotnet=\"`Options`\" pulumi-lang-go=\"`options`\" pulumi-lang-python=\"`options`\" pulumi-lang-yaml=\"`options`\" pulumi-lang-java=\"`options`\"\u003e`options`\u003c/span\u003e below.\n"},"protocolType":{"type":"string","description":"File transfer protocol type.\n- When FileSystemType = standard, the values are NFS and SMB.\n- When FileSystemType = extreme, the value is NFS.\n- When FileSystemType = cpfs, the value is cpfs.\n","willReplaceOnChanges":true},"recycleBin":{"$ref":"#/types/alicloud:nas/FileSystemRecycleBin:FileSystemRecycleBin","description":"Recycle Bin See \u003cspan pulumi-lang-nodejs=\"`recycleBin`\" pulumi-lang-dotnet=\"`RecycleBin`\" pulumi-lang-go=\"`recycleBin`\" pulumi-lang-python=\"`recycle_bin`\" pulumi-lang-yaml=\"`recycleBin`\" pulumi-lang-java=\"`recycleBin`\"\u003e`recycle_bin`\u003c/span\u003e below.\n"},"redundancyType":{"type":"string","description":"Storage redundancy type. Only effective for General CPFS.Options: Locally Redundant Storage (LRS), Zone-Redundant Storage (ZRS) Default value: LRS\n","willReplaceOnChanges":true},"redundancyVswitchIds":{"type":"array","items":{"type":"string"},"description":"Redundancy vSwitch ID list. Only set when the file system's storage redundancy type is Zone-Redundant Storage (ZRS), and must set vSwitch IDs from three different availability zones under the same VPC.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"smbAcl":{"$ref":"#/types/alicloud:nas/FileSystemSmbAcl:FileSystemSmbAcl","description":"SMB ACL See \u003cspan pulumi-lang-nodejs=\"`smbAcl`\" pulumi-lang-dotnet=\"`SmbAcl`\" pulumi-lang-go=\"`smbAcl`\" pulumi-lang-python=\"`smb_acl`\" pulumi-lang-yaml=\"`smbAcl`\" pulumi-lang-java=\"`smbAcl`\"\u003e`smb_acl`\u003c/span\u003e below.\n"},"snapshotId":{"type":"string","description":"Only extreme NAS is supported.\n\n\u003e **NOTE:** A file system is created from a snapshot. The version of the created file system is the same as that of the snapshot source file system. For example, if the source file system version of the snapshot is 1 and you need to create A file system of version 2, you can first create A file system A from the snapshot, then create A file system B that meets the configuration of version 2, copy the data in file system A to file system B, and migrate the business to file system B after the copy is completed.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"storageType":{"type":"string","description":"The storage type.\n- When FileSystemType = standard, the values are Performance, Capacity, and Premium.\n- When FileSystemType = extreme, the value is standard or advance.\n- When FileSystemType = cpfs, the values are advance_100(100MB/s/TiB baseline) and advance_200(200MB/s/TiB baseline).\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Label information collection.\n"},"vpcId":{"type":"string","description":"The ID of the VPC network.\nThis parameter must be configured when FileSystemType = cpfs.\nWhen the FileSystemType is standard or extreme, this parameter is reserved for the interface and has not taken effect yet. You do not need to configure it.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the switch.\nThis parameter must be configured when FileSystemType = cpfs.\nWhen the FileSystemType is standard or extreme, this parameter is reserved for the interface and has not taken effect yet. You do not need to configure it.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID.\n\nThe usable area refers to the physical area where power and network are independent of each other in the same area.\n\nWhen the FileSystemType is set to standard, this parameter is optional. By default, a zone that meets the conditions is randomly selected based on the ProtocolType and StorageType configurations. This parameter is required when FileSystemType = extreme or FileSystemType = cpfs.\n\n\u003e **NOTE:** - file systems in different zones in the same region communicate with ECS cloud servers.\n\n\u003e **NOTE:** - We recommend that the file system and the ECS instance belong to the same zone to avoid cross-zone latency.\n","willReplaceOnChanges":true}},"requiredInputs":["protocolType","storageType"],"stateInputs":{"description":"Input properties used for looking up and filtering FileSystem resources.\n","properties":{"capacity":{"type":"integer","description":"File system capacity.\n\nUnit: GiB, required and valid when FileSystemType = extreme or cpfs.\n\nFor optional values, please refer to the actual specifications on the purchase page:\n-[Fast NAS Pay-As-You-Go Page](https://common-buy.aliyun.com/? commodityCode=nas_extreme_post#/buy)\n-[Fast NAS Package Monthly Purchase Page](https://common-buy.aliyun.com/? commodityCode=nas_extreme#/buy)\n-[Parallel File System CPFS Pay-As-You-Go Purchase Page](https://common-buy.aliyun.com/? commodityCode=nas_cpfs_post#/buy)\n-[Parallel File System CPFS Package Monthly Purchase Page](https://common-buy.aliyun.com/? commodityCode=cpfs#/buy)\n"},"createTime":{"type":"string","description":"CreateTime\n"},"description":{"type":"string","description":"File system description.\n\nRestrictions:\n- 2~128 English or Chinese characters in length.\n- Must start with upper and lower case letters or Chinese, and cannot start with'http: // 'and'https.\n- Can contain numbers, colons (:), underscores (_), or dashes (-).\n"},"encryptType":{"type":"integer","description":"Whether the file system is encrypted.\n\nUse the KMS service hosting key to encrypt and store the file system disk data. When reading and writing encrypted data, there is no need to decrypt it.\n\nValue:\n- 0 (default): not encrypted.\n- 1:NAS managed key. NAS managed keys are supported when FileSystemType = standard or extreme.\n- 2: User management key. You can manage keys only when FileSystemType = extreme.\n","willReplaceOnChanges":true},"fileSystemType":{"type":"string","description":"File system type.\n\nValue:\n- standard (default): Universal NAS\n- extreme: extreme NAS\n- cpfs: file storage CPFS\n","willReplaceOnChanges":true},"keytab":{"type":"string","description":"String of keytab file content encrypted by base64\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"keytabMd5":{"type":"string","description":"String of the keytab file content encrypted by MD5\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"kmsKeyId":{"type":"string","description":"The ID of the KMS key.\nThis parameter is required only when EncryptType = 2.\n","willReplaceOnChanges":true},"nfsAcl":{"$ref":"#/types/alicloud:nas/FileSystemNfsAcl:FileSystemNfsAcl","description":"NFS ACL See \u003cspan pulumi-lang-nodejs=\"`nfsAcl`\" pulumi-lang-dotnet=\"`NfsAcl`\" pulumi-lang-go=\"`nfsAcl`\" pulumi-lang-python=\"`nfs_acl`\" pulumi-lang-yaml=\"`nfsAcl`\" pulumi-lang-java=\"`nfsAcl`\"\u003e`nfs_acl`\u003c/span\u003e below.\n"},"options":{"$ref":"#/types/alicloud:nas/FileSystemOptions:FileSystemOptions","description":"Option. See \u003cspan pulumi-lang-nodejs=\"`options`\" pulumi-lang-dotnet=\"`Options`\" pulumi-lang-go=\"`options`\" pulumi-lang-python=\"`options`\" pulumi-lang-yaml=\"`options`\" pulumi-lang-java=\"`options`\"\u003e`options`\u003c/span\u003e below.\n"},"protocolType":{"type":"string","description":"File transfer protocol type.\n- When FileSystemType = standard, the values are NFS and SMB.\n- When FileSystemType = extreme, the value is NFS.\n- When FileSystemType = cpfs, the value is cpfs.\n","willReplaceOnChanges":true},"recycleBin":{"$ref":"#/types/alicloud:nas/FileSystemRecycleBin:FileSystemRecycleBin","description":"Recycle Bin See \u003cspan pulumi-lang-nodejs=\"`recycleBin`\" pulumi-lang-dotnet=\"`RecycleBin`\" pulumi-lang-go=\"`recycleBin`\" pulumi-lang-python=\"`recycle_bin`\" pulumi-lang-yaml=\"`recycleBin`\" pulumi-lang-java=\"`recycleBin`\"\u003e`recycle_bin`\u003c/span\u003e below.\n"},"redundancyType":{"type":"string","description":"Storage redundancy type. Only effective for General CPFS.Options: Locally Redundant Storage (LRS), Zone-Redundant Storage (ZRS) Default value: LRS\n","willReplaceOnChanges":true},"redundancyVswitchIds":{"type":"array","items":{"type":"string"},"description":"Redundancy vSwitch ID list. Only set when the file system's storage redundancy type is Zone-Redundant Storage (ZRS), and must set vSwitch IDs from three different availability zones under the same VPC.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"RegionId\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"smbAcl":{"$ref":"#/types/alicloud:nas/FileSystemSmbAcl:FileSystemSmbAcl","description":"SMB ACL See \u003cspan pulumi-lang-nodejs=\"`smbAcl`\" pulumi-lang-dotnet=\"`SmbAcl`\" pulumi-lang-go=\"`smbAcl`\" pulumi-lang-python=\"`smb_acl`\" pulumi-lang-yaml=\"`smbAcl`\" pulumi-lang-java=\"`smbAcl`\"\u003e`smb_acl`\u003c/span\u003e below.\n"},"snapshotId":{"type":"string","description":"Only extreme NAS is supported.\n\n\u003e **NOTE:** A file system is created from a snapshot. The version of the created file system is the same as that of the snapshot source file system. For example, if the source file system version of the snapshot is 1 and you need to create A file system of version 2, you can first create A file system A from the snapshot, then create A file system B that meets the configuration of version 2, copy the data in file system A to file system B, and migrate the business to file system B after the copy is completed.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"status":{"type":"string","description":"File system status. Includes:(such as creating a mount point) can only be performed when the file system is in the Running state.\n"},"storageType":{"type":"string","description":"The storage type.\n- When FileSystemType = standard, the values are Performance, Capacity, and Premium.\n- When FileSystemType = extreme, the value is standard or advance.\n- When FileSystemType = cpfs, the values are advance_100(100MB/s/TiB baseline) and advance_200(200MB/s/TiB baseline).\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Label information collection.\n"},"vpcId":{"type":"string","description":"The ID of the VPC network.\nThis parameter must be configured when FileSystemType = cpfs.\nWhen the FileSystemType is standard or extreme, this parameter is reserved for the interface and has not taken effect yet. You do not need to configure it.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the switch.\nThis parameter must be configured when FileSystemType = cpfs.\nWhen the FileSystemType is standard or extreme, this parameter is reserved for the interface and has not taken effect yet. You do not need to configure it.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID.\n\nThe usable area refers to the physical area where power and network are independent of each other in the same area.\n\nWhen the FileSystemType is set to standard, this parameter is optional. By default, a zone that meets the conditions is randomly selected based on the ProtocolType and StorageType configurations. This parameter is required when FileSystemType = extreme or FileSystemType = cpfs.\n\n\u003e **NOTE:** - file systems in different zones in the same region communicate with ECS cloud servers.\n\n\u003e **NOTE:** - We recommend that the file system and the ECS instance belong to the same zone to avoid cross-zone latency.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:nas/fileset:Fileset":{"description":"Provides a File Storage (NAS) Fileset resource.\n\nFileset of CPFS file system.\n\nFor information about File Storage (NAS) Fileset and how to use it, see [What is Fileset](https://www.alibabacloud.com/help/en/doc-detail/27530.html).\n\n\u003e **NOTE:** Available since v1.153.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.nas.getZones({\n    fileSystemType: \"cpfs\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[1]?.zoneId),\n});\nconst exampleFileSystem = new alicloud.nas.FileSystem(\"example\", {\n    protocolType: \"cpfs\",\n    storageType: \"advance_200\",\n    fileSystemType: \"cpfs\",\n    capacity: 3600,\n    zoneId: example.then(example =\u003e example.zones?.[1]?.zoneId),\n    vpcId: exampleNetwork.id,\n    vswitchId: exampleSwitch.id,\n});\nconst exampleFileset = new alicloud.nas.Fileset(\"example\", {\n    fileSystemId: exampleFileSystem.id,\n    description: \"terraform-example\",\n    fileSystemPath: \"/example_path/\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.nas.get_zones(file_system_type=\"cpfs\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[1].zone_id)\nexample_file_system = alicloud.nas.FileSystem(\"example\",\n    protocol_type=\"cpfs\",\n    storage_type=\"advance_200\",\n    file_system_type=\"cpfs\",\n    capacity=3600,\n    zone_id=example.zones[1].zone_id,\n    vpc_id=example_network.id,\n    vswitch_id=example_switch.id)\nexample_fileset = alicloud.nas.Fileset(\"example\",\n    file_system_id=example_file_system.id,\n    description=\"terraform-example\",\n    file_system_path=\"/example_path/\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Nas.GetZones.Invoke(new()\n    {\n        FileSystemType = \"cpfs\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.ZoneId),\n    });\n\n    var exampleFileSystem = new AliCloud.Nas.FileSystem(\"example\", new()\n    {\n        ProtocolType = \"cpfs\",\n        StorageType = \"advance_200\",\n        FileSystemType = \"cpfs\",\n        Capacity = 3600,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.ZoneId),\n        VpcId = exampleNetwork.Id,\n        VswitchId = exampleSwitch.Id,\n    });\n\n    var exampleFileset = new AliCloud.Nas.Fileset(\"example\", new()\n    {\n        FileSystemId = exampleFileSystem.Id,\n        Description = \"terraform-example\",\n        FileSystemPath = \"/example_path/\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := nas.GetZones(ctx, \u0026nas.GetZonesArgs{\n\t\t\tFileSystemType: pulumi.StringRef(\"cpfs\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[1].ZoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFileSystem, err := nas.NewFileSystem(ctx, \"example\", \u0026nas.FileSystemArgs{\n\t\t\tProtocolType:   pulumi.String(\"cpfs\"),\n\t\t\tStorageType:    pulumi.String(\"advance_200\"),\n\t\t\tFileSystemType: pulumi.String(\"cpfs\"),\n\t\t\tCapacity:       pulumi.Int(3600),\n\t\t\tZoneId:         pulumi.String(example.Zones[1].ZoneId),\n\t\t\tVpcId:          exampleNetwork.ID(),\n\t\t\tVswitchId:      exampleSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nas.NewFileset(ctx, \"example\", \u0026nas.FilesetArgs{\n\t\t\tFileSystemId:   exampleFileSystem.ID(),\n\t\t\tDescription:    pulumi.String(\"terraform-example\"),\n\t\t\tFileSystemPath: pulumi.String(\"/example_path/\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.nas.FileSystem;\nimport com.pulumi.alicloud.nas.FileSystemArgs;\nimport com.pulumi.alicloud.nas.Fileset;\nimport com.pulumi.alicloud.nas.FilesetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NasFunctions.getZones(GetZonesArgs.builder()\n            .fileSystemType(\"cpfs\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[1].zoneId())\n            .build());\n\n        var exampleFileSystem = new FileSystem(\"exampleFileSystem\", FileSystemArgs.builder()\n            .protocolType(\"cpfs\")\n            .storageType(\"advance_200\")\n            .fileSystemType(\"cpfs\")\n            .capacity(3600)\n            .zoneId(example.zones()[1].zoneId())\n            .vpcId(exampleNetwork.id())\n            .vswitchId(exampleSwitch.id())\n            .build());\n\n        var exampleFileset = new Fileset(\"exampleFileset\", FilesetArgs.builder()\n            .fileSystemId(exampleFileSystem.id())\n            .description(\"terraform-example\")\n            .fileSystemPath(\"/example_path/\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[1].zoneId}\n  exampleFileSystem:\n    type: alicloud:nas:FileSystem\n    name: example\n    properties:\n      protocolType: cpfs\n      storageType: advance_200\n      fileSystemType: cpfs\n      capacity: 3600\n      zoneId: ${example.zones[1].zoneId}\n      vpcId: ${exampleNetwork.id}\n      vswitchId: ${exampleSwitch.id}\n  exampleFileset:\n    type: alicloud:nas:Fileset\n    name: example\n    properties:\n      fileSystemId: ${exampleFileSystem.id}\n      description: terraform-example\n      fileSystemPath: /example_path/\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:nas:getZones\n      arguments:\n        fileSystemType: cpfs\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFile Storage (NAS) Fileset can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nas/fileset:Fileset example \u003cfile_system_id\u003e:\u003cfileset_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The time when Fileset was created.\n"},"deletionProtection":{"type":"boolean","description":"The instance release protection attribute, which specifies whether the instance can be released through the console or API( DeleteFileset).\n- true: Enable instance release protection.\n- false (default): Turn off instance release protection\n"},"description":{"type":"string","description":"Description of Fileset.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n"},"fileSystemPath":{"type":"string","description":"The path of Fileset.\n"},"filesetId":{"type":"string","description":"Fileset ID\n"},"status":{"type":"string","description":"The status of Fileset. Includes:\n"}},"required":["createTime","deletionProtection","fileSystemId","fileSystemPath","filesetId","status"],"inputProperties":{"deletionProtection":{"type":"boolean","description":"The instance release protection attribute, which specifies whether the instance can be released through the console or API( DeleteFileset).\n- true: Enable instance release protection.\n- false (default): Turn off instance release protection\n"},"description":{"type":"string","description":"Description of Fileset.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"fileSystemPath":{"type":"string","description":"The path of Fileset.\n","willReplaceOnChanges":true}},"requiredInputs":["fileSystemId","fileSystemPath"],"stateInputs":{"description":"Input properties used for looking up and filtering Fileset resources.\n","properties":{"createTime":{"type":"string","description":"The time when Fileset was created.\n"},"deletionProtection":{"type":"boolean","description":"The instance release protection attribute, which specifies whether the instance can be released through the console or API( DeleteFileset).\n- true: Enable instance release protection.\n- false (default): Turn off instance release protection\n"},"description":{"type":"string","description":"Description of Fileset.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"fileSystemPath":{"type":"string","description":"The path of Fileset.\n","willReplaceOnChanges":true},"filesetId":{"type":"string","description":"Fileset ID\n"},"status":{"type":"string","description":"The status of Fileset. Includes:\n"}},"type":"object"}},"alicloud:nas/lifecyclePolicy:LifecyclePolicy":{"description":"Provides a File Storage (NAS) Lifecycle Policy resource.\n\nFor information about File Storage (NAS) Lifecycle Policy and how to use it, see [What is Lifecycle Policy](https://www.alibabacloud.com/help/en/doc-detail/169362.html).\n\n\u003e **NOTE:** Available in v1.153.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.nas.FileSystem(\"example\", {\n    protocolType: \"NFS\",\n    storageType: \"Capacity\",\n});\nconst exampleLifecyclePolicy = new alicloud.nas.LifecyclePolicy(\"example\", {\n    fileSystemId: example.id,\n    lifecyclePolicyName: \"terraform-example\",\n    lifecycleRuleName: \"DEFAULT_ATIME_14\",\n    storageType: \"InfrequentAccess\",\n    paths: [\"/\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.nas.FileSystem(\"example\",\n    protocol_type=\"NFS\",\n    storage_type=\"Capacity\")\nexample_lifecycle_policy = alicloud.nas.LifecyclePolicy(\"example\",\n    file_system_id=example.id,\n    lifecycle_policy_name=\"terraform-example\",\n    lifecycle_rule_name=\"DEFAULT_ATIME_14\",\n    storage_type=\"InfrequentAccess\",\n    paths=[\"/\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Nas.FileSystem(\"example\", new()\n    {\n        ProtocolType = \"NFS\",\n        StorageType = \"Capacity\",\n    });\n\n    var exampleLifecyclePolicy = new AliCloud.Nas.LifecyclePolicy(\"example\", new()\n    {\n        FileSystemId = example.Id,\n        LifecyclePolicyName = \"terraform-example\",\n        LifecycleRuleName = \"DEFAULT_ATIME_14\",\n        StorageType = \"InfrequentAccess\",\n        Paths = new[]\n        {\n            \"/\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := nas.NewFileSystem(ctx, \"example\", \u0026nas.FileSystemArgs{\n\t\t\tProtocolType: pulumi.String(\"NFS\"),\n\t\t\tStorageType:  pulumi.String(\"Capacity\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nas.NewLifecyclePolicy(ctx, \"example\", \u0026nas.LifecyclePolicyArgs{\n\t\t\tFileSystemId:        example.ID(),\n\t\t\tLifecyclePolicyName: pulumi.String(\"terraform-example\"),\n\t\t\tLifecycleRuleName:   pulumi.String(\"DEFAULT_ATIME_14\"),\n\t\t\tStorageType:         pulumi.String(\"InfrequentAccess\"),\n\t\t\tPaths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"/\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.FileSystem;\nimport com.pulumi.alicloud.nas.FileSystemArgs;\nimport com.pulumi.alicloud.nas.LifecyclePolicy;\nimport com.pulumi.alicloud.nas.LifecyclePolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new FileSystem(\"example\", FileSystemArgs.builder()\n            .protocolType(\"NFS\")\n            .storageType(\"Capacity\")\n            .build());\n\n        var exampleLifecyclePolicy = new LifecyclePolicy(\"exampleLifecyclePolicy\", LifecyclePolicyArgs.builder()\n            .fileSystemId(example.id())\n            .lifecyclePolicyName(\"terraform-example\")\n            .lifecycleRuleName(\"DEFAULT_ATIME_14\")\n            .storageType(\"InfrequentAccess\")\n            .paths(\"/\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:nas:FileSystem\n    properties:\n      protocolType: NFS\n      storageType: Capacity\n  exampleLifecyclePolicy:\n    type: alicloud:nas:LifecyclePolicy\n    name: example\n    properties:\n      fileSystemId: ${example.id}\n      lifecyclePolicyName: terraform-example\n      lifecycleRuleName: DEFAULT_ATIME_14\n      storageType: InfrequentAccess\n      paths:\n        - /\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFile Storage (NAS) Lifecycle Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nas/lifecyclePolicy:LifecyclePolicy example \u003cfile_system_id\u003e:\u003clifecycle_policy_name\u003e\n```\n\n","properties":{"fileSystemId":{"type":"string","description":"The ID of the file system.\n"},"lifecyclePolicyName":{"type":"string","description":"The name of the lifecycle management policy.\n"},"lifecycleRuleName":{"type":"string","description":"The rules in the lifecycle management policy. Valid values: `DEFAULT_ATIME_14`, `DEFAULT_ATIME_30`, `DEFAULT_ATIME_60`, `DEFAULT_ATIME_90`.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"The absolute path of the directory for which the lifecycle management policy is configured. Set a maximum of \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e path. The path value must be prefixed by a forward slash (/) and must be an existing path in the mount target.\n"},"storageType":{"type":"string","description":"The storage type of the data that is dumped to the IA storage medium. Valid values: `InfrequentAccess`.\n"}},"required":["fileSystemId","lifecyclePolicyName","lifecycleRuleName","paths","storageType"],"inputProperties":{"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"lifecyclePolicyName":{"type":"string","description":"The name of the lifecycle management policy.\n","willReplaceOnChanges":true},"lifecycleRuleName":{"type":"string","description":"The rules in the lifecycle management policy. Valid values: `DEFAULT_ATIME_14`, `DEFAULT_ATIME_30`, `DEFAULT_ATIME_60`, `DEFAULT_ATIME_90`.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"The absolute path of the directory for which the lifecycle management policy is configured. Set a maximum of \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e path. The path value must be prefixed by a forward slash (/) and must be an existing path in the mount target.\n","willReplaceOnChanges":true},"storageType":{"type":"string","description":"The storage type of the data that is dumped to the IA storage medium. Valid values: `InfrequentAccess`.\n","willReplaceOnChanges":true}},"requiredInputs":["fileSystemId","lifecyclePolicyName","lifecycleRuleName","paths","storageType"],"stateInputs":{"description":"Input properties used for looking up and filtering LifecyclePolicy resources.\n","properties":{"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"lifecyclePolicyName":{"type":"string","description":"The name of the lifecycle management policy.\n","willReplaceOnChanges":true},"lifecycleRuleName":{"type":"string","description":"The rules in the lifecycle management policy. Valid values: `DEFAULT_ATIME_14`, `DEFAULT_ATIME_30`, `DEFAULT_ATIME_60`, `DEFAULT_ATIME_90`.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"The absolute path of the directory for which the lifecycle management policy is configured. Set a maximum of \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e path. The path value must be prefixed by a forward slash (/) and must be an existing path in the mount target.\n","willReplaceOnChanges":true},"storageType":{"type":"string","description":"The storage type of the data that is dumped to the IA storage medium. Valid values: `InfrequentAccess`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:nas/mountTarget:MountTarget":{"description":"Provides a File Storage (NAS) Mount Target resource.\n\nFile system mount point.\n\nFor information about File Storage (NAS) Mount Target and how to use it, see [What is Mount Target](https://www.alibabacloud.com/help/en/doc-detail/27531.htm).\n\n\u003e **NOTE:** Available since v1.34.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.nas.getZones({\n    fileSystemType: \"extreme\",\n});\nconst countSize = _default.then(_default =\u003e _default.zones).length;\nconst zoneId = pulumi.all([_default, countSize]).apply(([_default, countSize]) =\u003e _default.zones[countSize - 1].zoneId);\nconst example = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: example.vpcName,\n    cidrBlock: example.cidrBlock,\n    vpcId: example.id,\n    zoneId: zoneId,\n});\nconst exampleFileSystem = new alicloud.nas.FileSystem(\"example\", {\n    protocolType: \"NFS\",\n    storageType: \"advance\",\n    fileSystemType: \"extreme\",\n    capacity: 100,\n    zoneId: zoneId,\n});\nconst exampleAccessGroup = new alicloud.nas.AccessGroup(\"example\", {\n    accessGroupName: \"access_group_xxx\",\n    accessGroupType: \"Vpc\",\n    description: \"test_access_group\",\n    fileSystemType: \"extreme\",\n});\nconst exampleMountTarget = new alicloud.nas.MountTarget(\"example\", {\n    fileSystemId: exampleFileSystem.id,\n    accessGroupName: exampleAccessGroup.accessGroupName,\n    vswitchId: exampleSwitch.id,\n    vpcId: example.id,\n    networkType: exampleAccessGroup.accessGroupType,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.nas.get_zones(file_system_type=\"extreme\")\ncount_size = len(default.zones)\nzone_id = count_size.apply(lambda count_size: default.zones[count_size - 1]).apply(lambda obj: obj.zone_id)\nexample = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=example.vpc_name,\n    cidr_block=example.cidr_block,\n    vpc_id=example.id,\n    zone_id=zone_id)\nexample_file_system = alicloud.nas.FileSystem(\"example\",\n    protocol_type=\"NFS\",\n    storage_type=\"advance\",\n    file_system_type=\"extreme\",\n    capacity=100,\n    zone_id=zone_id)\nexample_access_group = alicloud.nas.AccessGroup(\"example\",\n    access_group_name=\"access_group_xxx\",\n    access_group_type=\"Vpc\",\n    description=\"test_access_group\",\n    file_system_type=\"extreme\")\nexample_mount_target = alicloud.nas.MountTarget(\"example\",\n    file_system_id=example_file_system.id,\n    access_group_name=example_access_group.access_group_name,\n    vswitch_id=example_switch.id,\n    vpc_id=example.id,\n    network_type=example_access_group.access_group_type)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Nas.GetZones.Invoke(new()\n    {\n        FileSystemType = \"extreme\",\n    });\n\n    var countSize = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)).Length;\n\n    var zoneId = Output.Tuple(@default, countSize).Apply(values =\u003e\n    {\n        var @default = values.Item1;\n        var countSize = values.Item2;\n        return @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[countSize - 1].ZoneId;\n    });\n\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = example.VpcName,\n        CidrBlock = example.CidrBlock,\n        VpcId = example.Id,\n        ZoneId = zoneId,\n    });\n\n    var exampleFileSystem = new AliCloud.Nas.FileSystem(\"example\", new()\n    {\n        ProtocolType = \"NFS\",\n        StorageType = \"advance\",\n        FileSystemType = \"extreme\",\n        Capacity = 100,\n        ZoneId = zoneId,\n    });\n\n    var exampleAccessGroup = new AliCloud.Nas.AccessGroup(\"example\", new()\n    {\n        AccessGroupName = \"access_group_xxx\",\n        AccessGroupType = \"Vpc\",\n        Description = \"test_access_group\",\n        FileSystemType = \"extreme\",\n    });\n\n    var exampleMountTarget = new AliCloud.Nas.MountTarget(\"example\", new()\n    {\n        FileSystemId = exampleFileSystem.Id,\n        AccessGroupName = exampleAccessGroup.AccessGroupName,\n        VswitchId = exampleSwitch.Id,\n        VpcId = example.Id,\n        NetworkType = exampleAccessGroup.AccessGroupType,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := nas.GetZones(ctx, \u0026nas.GetZonesArgs{\n\t\t\tFileSystemType: pulumi.StringRef(\"extreme\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcountSize := len(_default.Zones)\n\t\tzoneId := countSize.ApplyT(func(countSize int) (nas.GetZonesZone, error) {\n\t\t\treturn nas.GetZonesZone(_default.Zones[float64(countSize.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\treturn __convert - 1, nil\n\t\t\t}).(pulumi.Float64Output))]), nil\n\t\t}).(nas.GetZonesZoneOutput).ApplyT(func(obj nas.GetZonesZone) (*string, error) {\n\t\t\treturn obj.ZoneId, nil\n\t\t}).(pulumi.StringPtrOutput)\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: example.VpcName,\n\t\t\tCidrBlock:   example.CidrBlock,\n\t\t\tVpcId:       example.ID(),\n\t\t\tZoneId:      pulumi.String(zoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFileSystem, err := nas.NewFileSystem(ctx, \"example\", \u0026nas.FileSystemArgs{\n\t\t\tProtocolType:   pulumi.String(\"NFS\"),\n\t\t\tStorageType:    pulumi.String(\"advance\"),\n\t\t\tFileSystemType: pulumi.String(\"extreme\"),\n\t\t\tCapacity:       pulumi.Int(100),\n\t\t\tZoneId:         pulumi.String(zoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccessGroup, err := nas.NewAccessGroup(ctx, \"example\", \u0026nas.AccessGroupArgs{\n\t\t\tAccessGroupName: pulumi.String(\"access_group_xxx\"),\n\t\t\tAccessGroupType: pulumi.String(\"Vpc\"),\n\t\t\tDescription:     pulumi.String(\"test_access_group\"),\n\t\t\tFileSystemType:  pulumi.String(\"extreme\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nas.NewMountTarget(ctx, \"example\", \u0026nas.MountTargetArgs{\n\t\t\tFileSystemId:    exampleFileSystem.ID(),\n\t\t\tAccessGroupName: exampleAccessGroup.AccessGroupName,\n\t\t\tVswitchId:       exampleSwitch.ID(),\n\t\t\tVpcId:           example.ID(),\n\t\t\tNetworkType:     exampleAccessGroup.AccessGroupType,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.nas.FileSystem;\nimport com.pulumi.alicloud.nas.FileSystemArgs;\nimport com.pulumi.alicloud.nas.AccessGroup;\nimport com.pulumi.alicloud.nas.AccessGroupArgs;\nimport com.pulumi.alicloud.nas.MountTarget;\nimport com.pulumi.alicloud.nas.MountTargetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = NasFunctions.getZones(GetZonesArgs.builder()\n            .fileSystemType(\"extreme\")\n            .build());\n\n        final var countSize = default_.zones().length();\n\n        final var zoneId = countSize.applyValue(_countSize -\u003e default_.zones()[_countSize - 1]).applyValue(_obj -\u003e _obj.zoneId());\n\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(example.vpcName())\n            .cidrBlock(example.cidrBlock())\n            .vpcId(example.id())\n            .zoneId(zoneId)\n            .build());\n\n        var exampleFileSystem = new FileSystem(\"exampleFileSystem\", FileSystemArgs.builder()\n            .protocolType(\"NFS\")\n            .storageType(\"advance\")\n            .fileSystemType(\"extreme\")\n            .capacity(100)\n            .zoneId(zoneId)\n            .build());\n\n        var exampleAccessGroup = new AccessGroup(\"exampleAccessGroup\", AccessGroupArgs.builder()\n            .accessGroupName(\"access_group_xxx\")\n            .accessGroupType(\"Vpc\")\n            .description(\"test_access_group\")\n            .fileSystemType(\"extreme\")\n            .build());\n\n        var exampleMountTarget = new MountTarget(\"exampleMountTarget\", MountTargetArgs.builder()\n            .fileSystemId(exampleFileSystem.id())\n            .accessGroupName(exampleAccessGroup.accessGroupName())\n            .vswitchId(exampleSwitch.id())\n            .vpcId(example.id())\n            .networkType(exampleAccessGroup.accessGroupType())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFile Storage (NAS) Mount Target can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nas/mountTarget:MountTarget example \u003cfile_system_id\u003e:\u003cmount_target_domain\u003e\n```\n\n","properties":{"accessGroupName":{"type":"string","description":"The name of the permission group.\n"},"dualStack":{"type":"boolean","description":"Whether to create an IPv6 mount point.\n\nValue:\n- true: create\n- false (default): not created\n\n\u003e **NOTE:**  currently, only extreme NAS supports IPv6 function in various regions in mainland China, and IPv6 function needs to be turned on for this file system.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n"},"mountTargetDomain":{"type":"string","description":"The domain name of the Mount point.\n"},"networkType":{"type":"string","description":"Network type.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n"},"status":{"type":"string","description":"The current status of the Mount point, including Active and Inactive, can be used to mount the file system only when the status is Active.\n"},"vpcId":{"type":"string","description":"VPC ID.\n"},"vswitchId":{"type":"string","description":"The ID of the switch.\n"}},"required":["fileSystemId","mountTargetDomain","networkType","status","vpcId"],"inputProperties":{"accessGroupName":{"type":"string","description":"The name of the permission group.\n"},"dualStack":{"type":"boolean","description":"Whether to create an IPv6 mount point.\n\nValue:\n- true: create\n- false (default): not created\n\n\u003e **NOTE:**  currently, only extreme NAS supports IPv6 function in various regions in mainland China, and IPv6 function needs to be turned on for this file system.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"networkType":{"type":"string","description":"Network type.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group.\n"},"status":{"type":"string","description":"The current status of the Mount point, including Active and Inactive, can be used to mount the file system only when the status is Active.\n"},"vpcId":{"type":"string","description":"VPC ID.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the switch.\n","willReplaceOnChanges":true}},"requiredInputs":["fileSystemId"],"stateInputs":{"description":"Input properties used for looking up and filtering MountTarget resources.\n","properties":{"accessGroupName":{"type":"string","description":"The name of the permission group.\n"},"dualStack":{"type":"boolean","description":"Whether to create an IPv6 mount point.\n\nValue:\n- true: create\n- false (default): not created\n\n\u003e **NOTE:**  currently, only extreme NAS supports IPv6 function in various regions in mainland China, and IPv6 function needs to be turned on for this file system.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"mountTargetDomain":{"type":"string","description":"The domain name of the Mount point.\n"},"networkType":{"type":"string","description":"Network type.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group.\n"},"status":{"type":"string","description":"The current status of the Mount point, including Active and Inactive, can be used to mount the file system only when the status is Active.\n"},"vpcId":{"type":"string","description":"VPC ID.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the switch.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:nas/protocolMountTarget:ProtocolMountTarget":{"description":"Provides a File Storage (NAS) Protocol Mount Target resource.\n\n\n\nFor information about File Storage (NAS) Protocol Mount Target and how to use it, see [What is Protocol Mount Target](https://next.api.alibabacloud.com/document/NAS/2017-06-26/CreateProtocolMountTarget).\n\n\u003e **NOTE:** Available since v1.267.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = new alicloud.vpc.Network(\"example\", {\n    isDefault: false,\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: \"nas-examplee1223-vpc\",\n    enableIpv6: true,\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    isDefault: false,\n    vpcId: example.id,\n    zoneId: \"cn-beijing-i\",\n    cidrBlock: \"192.168.3.0/24\",\n    vswitchName: \"nas-examplee1223-vsw2sdw-C\",\n});\nconst exampleFileSystem = new alicloud.nas.FileSystem(\"example\", {\n    description: name,\n    storageType: \"advance_100\",\n    zoneId: \"cn-beijing-i\",\n    vpcId: example.id,\n    capacity: 3600,\n    protocolType: \"cpfs\",\n    vswitchId: exampleSwitch.id,\n    fileSystemType: \"cpfs\",\n});\nconst exampleProtocolService = new alicloud.nas.ProtocolService(\"example\", {\n    vpcId: example.id,\n    protocolType: \"NFS\",\n    protocolSpec: \"General\",\n    vswitchId: exampleSwitch.id,\n    dryRun: false,\n    fileSystemId: exampleFileSystem.id,\n});\nconst exampleFileset = new alicloud.nas.Fileset(\"example\", {\n    fileSystemPath: \"/examplefileset/\",\n    description: \"cpfs-LRS-filesetexample-wyf\",\n    fileSystemId: exampleFileSystem.id,\n});\nconst _default = new alicloud.nas.ProtocolMountTarget(\"default\", {\n    fsetId: exampleFileset.filesetId,\n    description: name,\n    vpcId: example.id,\n    vswitchId: exampleSwitch.id,\n    accessGroupName: \"DEFAULT_VPC_GROUP_NAME\",\n    dryRun: false,\n    fileSystemId: exampleFileSystem.id,\n    protocolServiceId: exampleProtocolService.protocolServiceId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.vpc.Network(\"example\",\n    is_default=False,\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=\"nas-examplee1223-vpc\",\n    enable_ipv6=True)\nexample_switch = alicloud.vpc.Switch(\"example\",\n    is_default=False,\n    vpc_id=example.id,\n    zone_id=\"cn-beijing-i\",\n    cidr_block=\"192.168.3.0/24\",\n    vswitch_name=\"nas-examplee1223-vsw2sdw-C\")\nexample_file_system = alicloud.nas.FileSystem(\"example\",\n    description=name,\n    storage_type=\"advance_100\",\n    zone_id=\"cn-beijing-i\",\n    vpc_id=example.id,\n    capacity=3600,\n    protocol_type=\"cpfs\",\n    vswitch_id=example_switch.id,\n    file_system_type=\"cpfs\")\nexample_protocol_service = alicloud.nas.ProtocolService(\"example\",\n    vpc_id=example.id,\n    protocol_type=\"NFS\",\n    protocol_spec=\"General\",\n    vswitch_id=example_switch.id,\n    dry_run=False,\n    file_system_id=example_file_system.id)\nexample_fileset = alicloud.nas.Fileset(\"example\",\n    file_system_path=\"/examplefileset/\",\n    description=\"cpfs-LRS-filesetexample-wyf\",\n    file_system_id=example_file_system.id)\ndefault = alicloud.nas.ProtocolMountTarget(\"default\",\n    fset_id=example_fileset.fileset_id,\n    description=name,\n    vpc_id=example.id,\n    vswitch_id=example_switch.id,\n    access_group_name=\"DEFAULT_VPC_GROUP_NAME\",\n    dry_run=False,\n    file_system_id=example_file_system.id,\n    protocol_service_id=example_protocol_service.protocol_service_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        IsDefault = false,\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = \"nas-examplee1223-vpc\",\n        EnableIpv6 = true,\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        IsDefault = false,\n        VpcId = example.Id,\n        ZoneId = \"cn-beijing-i\",\n        CidrBlock = \"192.168.3.0/24\",\n        VswitchName = \"nas-examplee1223-vsw2sdw-C\",\n    });\n\n    var exampleFileSystem = new AliCloud.Nas.FileSystem(\"example\", new()\n    {\n        Description = name,\n        StorageType = \"advance_100\",\n        ZoneId = \"cn-beijing-i\",\n        VpcId = example.Id,\n        Capacity = 3600,\n        ProtocolType = \"cpfs\",\n        VswitchId = exampleSwitch.Id,\n        FileSystemType = \"cpfs\",\n    });\n\n    var exampleProtocolService = new AliCloud.Nas.ProtocolService(\"example\", new()\n    {\n        VpcId = example.Id,\n        ProtocolType = \"NFS\",\n        ProtocolSpec = \"General\",\n        VswitchId = exampleSwitch.Id,\n        DryRun = false,\n        FileSystemId = exampleFileSystem.Id,\n    });\n\n    var exampleFileset = new AliCloud.Nas.Fileset(\"example\", new()\n    {\n        FileSystemPath = \"/examplefileset/\",\n        Description = \"cpfs-LRS-filesetexample-wyf\",\n        FileSystemId = exampleFileSystem.Id,\n    });\n\n    var @default = new AliCloud.Nas.ProtocolMountTarget(\"default\", new()\n    {\n        FsetId = exampleFileset.FilesetId,\n        Description = name,\n        VpcId = example.Id,\n        VswitchId = exampleSwitch.Id,\n        AccessGroupName = \"DEFAULT_VPC_GROUP_NAME\",\n        DryRun = false,\n        FileSystemId = exampleFileSystem.Id,\n        ProtocolServiceId = exampleProtocolService.ProtocolServiceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tIsDefault:  pulumi.Bool(false),\n\t\t\tCidrBlock:  pulumi.String(\"192.168.0.0/16\"),\n\t\t\tVpcName:    pulumi.String(\"nas-examplee1223-vpc\"),\n\t\t\tEnableIpv6: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tIsDefault:   pulumi.Bool(false),\n\t\t\tVpcId:       example.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-beijing-i\"),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.3.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"nas-examplee1223-vsw2sdw-C\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFileSystem, err := nas.NewFileSystem(ctx, \"example\", \u0026nas.FileSystemArgs{\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tStorageType:    pulumi.String(\"advance_100\"),\n\t\t\tZoneId:         pulumi.String(\"cn-beijing-i\"),\n\t\t\tVpcId:          example.ID(),\n\t\t\tCapacity:       pulumi.Int(3600),\n\t\t\tProtocolType:   pulumi.String(\"cpfs\"),\n\t\t\tVswitchId:      exampleSwitch.ID(),\n\t\t\tFileSystemType: pulumi.String(\"cpfs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleProtocolService, err := nas.NewProtocolService(ctx, \"example\", \u0026nas.ProtocolServiceArgs{\n\t\t\tVpcId:        example.ID(),\n\t\t\tProtocolType: pulumi.String(\"NFS\"),\n\t\t\tProtocolSpec: pulumi.String(\"General\"),\n\t\t\tVswitchId:    exampleSwitch.ID(),\n\t\t\tDryRun:       pulumi.Bool(false),\n\t\t\tFileSystemId: exampleFileSystem.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFileset, err := nas.NewFileset(ctx, \"example\", \u0026nas.FilesetArgs{\n\t\t\tFileSystemPath: pulumi.String(\"/examplefileset/\"),\n\t\t\tDescription:    pulumi.String(\"cpfs-LRS-filesetexample-wyf\"),\n\t\t\tFileSystemId:   exampleFileSystem.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nas.NewProtocolMountTarget(ctx, \"default\", \u0026nas.ProtocolMountTargetArgs{\n\t\t\tFsetId:            exampleFileset.FilesetId,\n\t\t\tDescription:       pulumi.String(name),\n\t\t\tVpcId:             example.ID(),\n\t\t\tVswitchId:         exampleSwitch.ID(),\n\t\t\tAccessGroupName:   pulumi.String(\"DEFAULT_VPC_GROUP_NAME\"),\n\t\t\tDryRun:            pulumi.Bool(false),\n\t\t\tFileSystemId:      exampleFileSystem.ID(),\n\t\t\tProtocolServiceId: exampleProtocolService.ProtocolServiceId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.nas.FileSystem;\nimport com.pulumi.alicloud.nas.FileSystemArgs;\nimport com.pulumi.alicloud.nas.ProtocolService;\nimport com.pulumi.alicloud.nas.ProtocolServiceArgs;\nimport com.pulumi.alicloud.nas.Fileset;\nimport com.pulumi.alicloud.nas.FilesetArgs;\nimport com.pulumi.alicloud.nas.ProtocolMountTarget;\nimport com.pulumi.alicloud.nas.ProtocolMountTargetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .isDefault(false)\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(\"nas-examplee1223-vpc\")\n            .enableIpv6(true)\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .isDefault(false)\n            .vpcId(example.id())\n            .zoneId(\"cn-beijing-i\")\n            .cidrBlock(\"192.168.3.0/24\")\n            .vswitchName(\"nas-examplee1223-vsw2sdw-C\")\n            .build());\n\n        var exampleFileSystem = new FileSystem(\"exampleFileSystem\", FileSystemArgs.builder()\n            .description(name)\n            .storageType(\"advance_100\")\n            .zoneId(\"cn-beijing-i\")\n            .vpcId(example.id())\n            .capacity(3600)\n            .protocolType(\"cpfs\")\n            .vswitchId(exampleSwitch.id())\n            .fileSystemType(\"cpfs\")\n            .build());\n\n        var exampleProtocolService = new ProtocolService(\"exampleProtocolService\", ProtocolServiceArgs.builder()\n            .vpcId(example.id())\n            .protocolType(\"NFS\")\n            .protocolSpec(\"General\")\n            .vswitchId(exampleSwitch.id())\n            .dryRun(false)\n            .fileSystemId(exampleFileSystem.id())\n            .build());\n\n        var exampleFileset = new Fileset(\"exampleFileset\", FilesetArgs.builder()\n            .fileSystemPath(\"/examplefileset/\")\n            .description(\"cpfs-LRS-filesetexample-wyf\")\n            .fileSystemId(exampleFileSystem.id())\n            .build());\n\n        var default_ = new ProtocolMountTarget(\"default\", ProtocolMountTargetArgs.builder()\n            .fsetId(exampleFileset.filesetId())\n            .description(name)\n            .vpcId(example.id())\n            .vswitchId(exampleSwitch.id())\n            .accessGroupName(\"DEFAULT_VPC_GROUP_NAME\")\n            .dryRun(false)\n            .fileSystemId(exampleFileSystem.id())\n            .protocolServiceId(exampleProtocolService.protocolServiceId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      isDefault: false\n      cidrBlock: 192.168.0.0/16\n      vpcName: nas-examplee1223-vpc\n      enableIpv6: true\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      isDefault: false\n      vpcId: ${example.id}\n      zoneId: cn-beijing-i\n      cidrBlock: 192.168.3.0/24\n      vswitchName: nas-examplee1223-vsw2sdw-C\n  exampleFileSystem:\n    type: alicloud:nas:FileSystem\n    name: example\n    properties:\n      description: ${name}\n      storageType: advance_100\n      zoneId: cn-beijing-i\n      vpcId: ${example.id}\n      capacity: '3600'\n      protocolType: cpfs\n      vswitchId: ${exampleSwitch.id}\n      fileSystemType: cpfs\n  exampleProtocolService:\n    type: alicloud:nas:ProtocolService\n    name: example\n    properties:\n      vpcId: ${example.id}\n      protocolType: NFS\n      protocolSpec: General\n      vswitchId: ${exampleSwitch.id}\n      dryRun: false\n      fileSystemId: ${exampleFileSystem.id}\n  exampleFileset:\n    type: alicloud:nas:Fileset\n    name: example\n    properties:\n      fileSystemPath: /examplefileset/\n      description: cpfs-LRS-filesetexample-wyf\n      fileSystemId: ${exampleFileSystem.id}\n  default:\n    type: alicloud:nas:ProtocolMountTarget\n    properties:\n      fsetId: ${exampleFileset.filesetId}\n      description: ${name}\n      vpcId: ${example.id}\n      vswitchId: ${exampleSwitch.id}\n      accessGroupName: DEFAULT_VPC_GROUP_NAME\n      dryRun: false\n      fileSystemId: ${exampleFileSystem.id}\n      protocolServiceId: ${exampleProtocolService.protocolServiceId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFile Storage (NAS) Protocol Mount Target can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nas/protocolMountTarget:ProtocolMountTarget example \u003cfile_system_id\u003e:\u003cprotocol_service_id\u003e:\u003cexport_id\u003e\n```\n\n","properties":{"accessGroupName":{"type":"string","description":"The permission group name.\nDefault value: DEFAULT_VPC_GROUP_NAME\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Description of the protocol service mount target. Display as the export directory name in the console.\n\nLimitations:\n- Length is 2~128 English or Chinese characters.\n- It must start with an uppercase or lowercase letter or a Chinese character. It cannot start with http:// or https.\n- Can contain numbers, colons (:), underscores (_), or dashes (-).\n"},"dryRun":{"type":"boolean","description":"DryRun\n\n\u003e **NOTE:** This parameter only applies during resource creation, update or deletion. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"exportId":{"type":"string","description":"Protocol Service Mount Target ID\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n"},"fsetId":{"type":"string","description":"The ID of the Fileset to be mounted.\n\nLimitations:\n- The Fileset must already exist.\n- A Fileset allows only one export directory to be created.\n- Fileset and Path can and must specify only one.\n"},"path":{"type":"string","description":"The path of the CPFS directory to be mounted.\n\nLimitations:\n- The directory must be an existing directory on the CPFS.\n- Only one export is allowed for the same directory.\n- Fileset and Path can and must specify only one.\n\nFormat:\n- 1~1024 characters in length.\n- Use UTF-8 encoding.\n- Must start and end with a forward slash (/) and root directory is/.\n"},"protocolServiceId":{"type":"string","description":"Protocol Service ID\n"},"status":{"type":"string","description":"Status\n"},"vpcId":{"type":"string","description":"The VPC ID of the protocol service mount point.\n"},"vswitchId":{"type":"string","description":"The vSwitch ID of the protocol service mount target.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vSwitch IDs of the protocol service mount target.\nWhen the storage redundancy type of the file system is ZRS, if VpcId is set, the vSwitch ID of three different zones under the Vpc must be set in this field.\n"}},"required":["accessGroupName","createTime","exportId","fileSystemId","path","protocolServiceId","status"],"inputProperties":{"accessGroupName":{"type":"string","description":"The permission group name.\nDefault value: DEFAULT_VPC_GROUP_NAME\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of the protocol service mount target. Display as the export directory name in the console.\n\nLimitations:\n- Length is 2~128 English or Chinese characters.\n- It must start with an uppercase or lowercase letter or a Chinese character. It cannot start with http:// or https.\n- Can contain numbers, colons (:), underscores (_), or dashes (-).\n"},"dryRun":{"type":"boolean","description":"DryRun\n\n\u003e **NOTE:** This parameter only applies during resource creation, update or deletion. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"fsetId":{"type":"string","description":"The ID of the Fileset to be mounted.\n\nLimitations:\n- The Fileset must already exist.\n- A Fileset allows only one export directory to be created.\n- Fileset and Path can and must specify only one.\n","willReplaceOnChanges":true},"path":{"type":"string","description":"The path of the CPFS directory to be mounted.\n\nLimitations:\n- The directory must be an existing directory on the CPFS.\n- Only one export is allowed for the same directory.\n- Fileset and Path can and must specify only one.\n\nFormat:\n- 1~1024 characters in length.\n- Use UTF-8 encoding.\n- Must start and end with a forward slash (/) and root directory is/.\n","willReplaceOnChanges":true},"protocolServiceId":{"type":"string","description":"Protocol Service ID\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VPC ID of the protocol service mount point.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vSwitch ID of the protocol service mount target.\n","willReplaceOnChanges":true},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vSwitch IDs of the protocol service mount target.\nWhen the storage redundancy type of the file system is ZRS, if VpcId is set, the vSwitch ID of three different zones under the Vpc must be set in this field.\n","willReplaceOnChanges":true}},"requiredInputs":["fileSystemId","protocolServiceId"],"stateInputs":{"description":"Input properties used for looking up and filtering ProtocolMountTarget resources.\n","properties":{"accessGroupName":{"type":"string","description":"The permission group name.\nDefault value: DEFAULT_VPC_GROUP_NAME\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Description of the protocol service mount target. Display as the export directory name in the console.\n\nLimitations:\n- Length is 2~128 English or Chinese characters.\n- It must start with an uppercase or lowercase letter or a Chinese character. It cannot start with http:// or https.\n- Can contain numbers, colons (:), underscores (_), or dashes (-).\n"},"dryRun":{"type":"boolean","description":"DryRun\n\n\u003e **NOTE:** This parameter only applies during resource creation, update or deletion. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"exportId":{"type":"string","description":"Protocol Service Mount Target ID\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"fsetId":{"type":"string","description":"The ID of the Fileset to be mounted.\n\nLimitations:\n- The Fileset must already exist.\n- A Fileset allows only one export directory to be created.\n- Fileset and Path can and must specify only one.\n","willReplaceOnChanges":true},"path":{"type":"string","description":"The path of the CPFS directory to be mounted.\n\nLimitations:\n- The directory must be an existing directory on the CPFS.\n- Only one export is allowed for the same directory.\n- Fileset and Path can and must specify only one.\n\nFormat:\n- 1~1024 characters in length.\n- Use UTF-8 encoding.\n- Must start and end with a forward slash (/) and root directory is/.\n","willReplaceOnChanges":true},"protocolServiceId":{"type":"string","description":"Protocol Service ID\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Status\n"},"vpcId":{"type":"string","description":"The VPC ID of the protocol service mount point.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vSwitch ID of the protocol service mount target.\n","willReplaceOnChanges":true},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"The vSwitch IDs of the protocol service mount target.\nWhen the storage redundancy type of the file system is ZRS, if VpcId is set, the vSwitch ID of three different zones under the Vpc must be set in this field.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:nas/protocolService:ProtocolService":{"description":"Provides a File Storage (NAS) Protocol Service resource.\n\n\n\nFor information about File Storage (NAS) Protocol Service and how to use it, see [What is Protocol Service](https://next.api.alibabacloud.com/document/NAS/2017-06-26/CreateProtocolService).\n\n\u003e **NOTE:** Available since v1.267.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = new alicloud.vpc.Network(\"example\", {\n    isDefault: false,\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: \"nas-examplee1031-vpc\",\n    enableIpv6: true,\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    isDefault: false,\n    vpcId: example.id,\n    zoneId: \"cn-beijing-i\",\n    cidrBlock: \"192.168.2.0/24\",\n    vswitchName: \"nas-examplee1031-vsw1sdw-F\",\n});\nconst exampleFileSystem = new alicloud.nas.FileSystem(\"example\", {\n    description: name,\n    storageType: \"advance_100\",\n    zoneId: \"cn-beijing-i\",\n    encryptType: 0,\n    vpcId: example.id,\n    capacity: 3600,\n    protocolType: \"cpfs\",\n    vswitchId: exampleSwitch.id,\n    fileSystemType: \"cpfs\",\n});\nconst _default = new alicloud.nas.ProtocolService(\"default\", {\n    vpcId: example.id,\n    protocolType: \"NFS\",\n    protocolSpec: \"General\",\n    vswitchId: exampleSwitch.id,\n    dryRun: false,\n    fileSystemId: exampleFileSystem.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.vpc.Network(\"example\",\n    is_default=False,\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=\"nas-examplee1031-vpc\",\n    enable_ipv6=True)\nexample_switch = alicloud.vpc.Switch(\"example\",\n    is_default=False,\n    vpc_id=example.id,\n    zone_id=\"cn-beijing-i\",\n    cidr_block=\"192.168.2.0/24\",\n    vswitch_name=\"nas-examplee1031-vsw1sdw-F\")\nexample_file_system = alicloud.nas.FileSystem(\"example\",\n    description=name,\n    storage_type=\"advance_100\",\n    zone_id=\"cn-beijing-i\",\n    encrypt_type=0,\n    vpc_id=example.id,\n    capacity=3600,\n    protocol_type=\"cpfs\",\n    vswitch_id=example_switch.id,\n    file_system_type=\"cpfs\")\ndefault = alicloud.nas.ProtocolService(\"default\",\n    vpc_id=example.id,\n    protocol_type=\"NFS\",\n    protocol_spec=\"General\",\n    vswitch_id=example_switch.id,\n    dry_run=False,\n    file_system_id=example_file_system.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        IsDefault = false,\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = \"nas-examplee1031-vpc\",\n        EnableIpv6 = true,\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        IsDefault = false,\n        VpcId = example.Id,\n        ZoneId = \"cn-beijing-i\",\n        CidrBlock = \"192.168.2.0/24\",\n        VswitchName = \"nas-examplee1031-vsw1sdw-F\",\n    });\n\n    var exampleFileSystem = new AliCloud.Nas.FileSystem(\"example\", new()\n    {\n        Description = name,\n        StorageType = \"advance_100\",\n        ZoneId = \"cn-beijing-i\",\n        EncryptType = 0,\n        VpcId = example.Id,\n        Capacity = 3600,\n        ProtocolType = \"cpfs\",\n        VswitchId = exampleSwitch.Id,\n        FileSystemType = \"cpfs\",\n    });\n\n    var @default = new AliCloud.Nas.ProtocolService(\"default\", new()\n    {\n        VpcId = example.Id,\n        ProtocolType = \"NFS\",\n        ProtocolSpec = \"General\",\n        VswitchId = exampleSwitch.Id,\n        DryRun = false,\n        FileSystemId = exampleFileSystem.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tIsDefault:  pulumi.Bool(false),\n\t\t\tCidrBlock:  pulumi.String(\"192.168.0.0/16\"),\n\t\t\tVpcName:    pulumi.String(\"nas-examplee1031-vpc\"),\n\t\t\tEnableIpv6: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tIsDefault:   pulumi.Bool(false),\n\t\t\tVpcId:       example.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-beijing-i\"),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.2.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"nas-examplee1031-vsw1sdw-F\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFileSystem, err := nas.NewFileSystem(ctx, \"example\", \u0026nas.FileSystemArgs{\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tStorageType:    pulumi.String(\"advance_100\"),\n\t\t\tZoneId:         pulumi.String(\"cn-beijing-i\"),\n\t\t\tEncryptType:    pulumi.Int(0),\n\t\t\tVpcId:          example.ID(),\n\t\t\tCapacity:       pulumi.Int(3600),\n\t\t\tProtocolType:   pulumi.String(\"cpfs\"),\n\t\t\tVswitchId:      exampleSwitch.ID(),\n\t\t\tFileSystemType: pulumi.String(\"cpfs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nas.NewProtocolService(ctx, \"default\", \u0026nas.ProtocolServiceArgs{\n\t\t\tVpcId:        example.ID(),\n\t\t\tProtocolType: pulumi.String(\"NFS\"),\n\t\t\tProtocolSpec: pulumi.String(\"General\"),\n\t\t\tVswitchId:    exampleSwitch.ID(),\n\t\t\tDryRun:       pulumi.Bool(false),\n\t\t\tFileSystemId: exampleFileSystem.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.nas.FileSystem;\nimport com.pulumi.alicloud.nas.FileSystemArgs;\nimport com.pulumi.alicloud.nas.ProtocolService;\nimport com.pulumi.alicloud.nas.ProtocolServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .isDefault(false)\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(\"nas-examplee1031-vpc\")\n            .enableIpv6(true)\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .isDefault(false)\n            .vpcId(example.id())\n            .zoneId(\"cn-beijing-i\")\n            .cidrBlock(\"192.168.2.0/24\")\n            .vswitchName(\"nas-examplee1031-vsw1sdw-F\")\n            .build());\n\n        var exampleFileSystem = new FileSystem(\"exampleFileSystem\", FileSystemArgs.builder()\n            .description(name)\n            .storageType(\"advance_100\")\n            .zoneId(\"cn-beijing-i\")\n            .encryptType(0)\n            .vpcId(example.id())\n            .capacity(3600)\n            .protocolType(\"cpfs\")\n            .vswitchId(exampleSwitch.id())\n            .fileSystemType(\"cpfs\")\n            .build());\n\n        var default_ = new ProtocolService(\"default\", ProtocolServiceArgs.builder()\n            .vpcId(example.id())\n            .protocolType(\"NFS\")\n            .protocolSpec(\"General\")\n            .vswitchId(exampleSwitch.id())\n            .dryRun(false)\n            .fileSystemId(exampleFileSystem.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      isDefault: false\n      cidrBlock: 192.168.0.0/16\n      vpcName: nas-examplee1031-vpc\n      enableIpv6: true\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      isDefault: false\n      vpcId: ${example.id}\n      zoneId: cn-beijing-i\n      cidrBlock: 192.168.2.0/24\n      vswitchName: nas-examplee1031-vsw1sdw-F\n  exampleFileSystem:\n    type: alicloud:nas:FileSystem\n    name: example\n    properties:\n      description: ${name}\n      storageType: advance_100\n      zoneId: cn-beijing-i\n      encryptType: '0'\n      vpcId: ${example.id}\n      capacity: '3600'\n      protocolType: cpfs\n      vswitchId: ${exampleSwitch.id}\n      fileSystemType: cpfs\n  default:\n    type: alicloud:nas:ProtocolService\n    properties:\n      vpcId: ${example.id}\n      protocolType: NFS\n      protocolSpec: General\n      vswitchId: ${exampleSwitch.id}\n      dryRun: false\n      fileSystemId: ${exampleFileSystem.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFile Storage (NAS) Protocol Service can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nas/protocolService:ProtocolService example \u003cfile_system_id\u003e:\u003cprotocol_service_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The time when the protocol server service was created. The UTC time.\n"},"description":{"type":"string","description":"Description of the agreement service.\n\nLimitations:\n- Length is 2~128 English or Chinese characters.\n- It must start with an uppercase or lowercase letter or Chinese, and cannot start with `http://` and `https://`.\n- Can contain numbers, colons (:), underscores (_), or dashes (-).\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck the creation request.\n\nThe pre-check operation helps you check the validity of parameters and dependency conditions, and does not actually create an instance, nor does it incur costs.\n\nValue:\n- true: The check request is sent and the protocol service is not created. The check items include whether the required parameters, request format, and business restriction dependency conditions are filled in. If the check does not pass, the corresponding error is returned. If the check passes, the 200 HttpCode is returned, but the ProtocolServiceId is empty.\n- false (default): Send a normal request and directly create an instance after passing the check.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update or deletion. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n"},"protocolServiceId":{"type":"string","description":"Protocol Service ID\n"},"protocolSpec":{"type":"string","description":"The specification of the protocol machine cluster.\n- Value range: General、CL1、CL2\n- Default value: General\n"},"protocolThroughput":{"type":"integer","description":"The throughput of the protocol service. Unit: MB/s.\n"},"protocolType":{"type":"string","description":"The protocol type supported by the protocol service.\n\nValue range:\n- NFS: Protocol Service supports NFS protocol access.\n"},"status":{"type":"string","description":"Agreement service status.\n"},"vpcId":{"type":"string","description":"The VpcId of the protocol service, which must be consistent with the VPC of the file system.\n"},"vswitchId":{"type":"string","description":"The VSwitchId of the protocol service.\n"}},"required":["createTime","fileSystemId","protocolServiceId","protocolSpec","protocolThroughput","protocolType","status"],"inputProperties":{"description":{"type":"string","description":"Description of the agreement service.\n\nLimitations:\n- Length is 2~128 English or Chinese characters.\n- It must start with an uppercase or lowercase letter or Chinese, and cannot start with `http://` and `https://`.\n- Can contain numbers, colons (:), underscores (_), or dashes (-).\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck the creation request.\n\nThe pre-check operation helps you check the validity of parameters and dependency conditions, and does not actually create an instance, nor does it incur costs.\n\nValue:\n- true: The check request is sent and the protocol service is not created. The check items include whether the required parameters, request format, and business restriction dependency conditions are filled in. If the check does not pass, the corresponding error is returned. If the check passes, the 200 HttpCode is returned, but the ProtocolServiceId is empty.\n- false (default): Send a normal request and directly create an instance after passing the check.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update or deletion. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"protocolSpec":{"type":"string","description":"The specification of the protocol machine cluster.\n- Value range: General、CL1、CL2\n- Default value: General\n","willReplaceOnChanges":true},"protocolThroughput":{"type":"integer","description":"The throughput of the protocol service. Unit: MB/s.\n","willReplaceOnChanges":true},"protocolType":{"type":"string","description":"The protocol type supported by the protocol service.\n\nValue range:\n- NFS: Protocol Service supports NFS protocol access.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VpcId of the protocol service, which must be consistent with the VPC of the file system.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The VSwitchId of the protocol service.\n","willReplaceOnChanges":true}},"requiredInputs":["fileSystemId","protocolSpec","protocolType"],"stateInputs":{"description":"Input properties used for looking up and filtering ProtocolService resources.\n","properties":{"createTime":{"type":"string","description":"The time when the protocol server service was created. The UTC time.\n"},"description":{"type":"string","description":"Description of the agreement service.\n\nLimitations:\n- Length is 2~128 English or Chinese characters.\n- It must start with an uppercase or lowercase letter or Chinese, and cannot start with `http://` and `https://`.\n- Can contain numbers, colons (:), underscores (_), or dashes (-).\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck the creation request.\n\nThe pre-check operation helps you check the validity of parameters and dependency conditions, and does not actually create an instance, nor does it incur costs.\n\nValue:\n- true: The check request is sent and the protocol service is not created. The check items include whether the required parameters, request format, and business restriction dependency conditions are filled in. If the check does not pass, the corresponding error is returned. If the check passes, the 200 HttpCode is returned, but the ProtocolServiceId is empty.\n- false (default): Send a normal request and directly create an instance after passing the check.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update or deletion. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"protocolServiceId":{"type":"string","description":"Protocol Service ID\n"},"protocolSpec":{"type":"string","description":"The specification of the protocol machine cluster.\n- Value range: General、CL1、CL2\n- Default value: General\n","willReplaceOnChanges":true},"protocolThroughput":{"type":"integer","description":"The throughput of the protocol service. Unit: MB/s.\n","willReplaceOnChanges":true},"protocolType":{"type":"string","description":"The protocol type supported by the protocol service.\n\nValue range:\n- NFS: Protocol Service supports NFS protocol access.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Agreement service status.\n"},"vpcId":{"type":"string","description":"The VpcId of the protocol service, which must be consistent with the VPC of the file system.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The VSwitchId of the protocol service.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:nas/recycleBin:RecycleBin":{"description":"Provides a File Storage (NAS) Recycle Bin resource.\n\nFor information about File Storage (NAS) Recycle Bin and how to use it, see [What is Recycle Bin](https://www.alibabacloud.com/help/en/doc-detail/264185.html).\n\n\u003e **NOTE:** Available in v1.155.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.nas.getZones({\n    fileSystemType: \"standard\",\n});\nconst exampleFileSystem = new alicloud.nas.FileSystem(\"example\", {\n    protocolType: \"NFS\",\n    storageType: \"Performance\",\n    description: \"terraform-example\",\n    encryptType: 1,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.zoneId),\n});\nconst exampleRecycleBin = new alicloud.nas.RecycleBin(\"example\", {\n    fileSystemId: exampleFileSystem.id,\n    reservedDays: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.nas.get_zones(file_system_type=\"standard\")\nexample_file_system = alicloud.nas.FileSystem(\"example\",\n    protocol_type=\"NFS\",\n    storage_type=\"Performance\",\n    description=\"terraform-example\",\n    encrypt_type=1,\n    zone_id=example.zones[0].zone_id)\nexample_recycle_bin = alicloud.nas.RecycleBin(\"example\",\n    file_system_id=example_file_system.id,\n    reserved_days=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Nas.GetZones.Invoke(new()\n    {\n        FileSystemType = \"standard\",\n    });\n\n    var exampleFileSystem = new AliCloud.Nas.FileSystem(\"example\", new()\n    {\n        ProtocolType = \"NFS\",\n        StorageType = \"Performance\",\n        Description = \"terraform-example\",\n        EncryptType = 1,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.ZoneId),\n    });\n\n    var exampleRecycleBin = new AliCloud.Nas.RecycleBin(\"example\", new()\n    {\n        FileSystemId = exampleFileSystem.Id,\n        ReservedDays = 3,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := nas.GetZones(ctx, \u0026nas.GetZonesArgs{\n\t\t\tFileSystemType: pulumi.StringRef(\"standard\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFileSystem, err := nas.NewFileSystem(ctx, \"example\", \u0026nas.FileSystemArgs{\n\t\t\tProtocolType: pulumi.String(\"NFS\"),\n\t\t\tStorageType:  pulumi.String(\"Performance\"),\n\t\t\tDescription:  pulumi.String(\"terraform-example\"),\n\t\t\tEncryptType:  pulumi.Int(1),\n\t\t\tZoneId:       pulumi.String(example.Zones[0].ZoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nas.NewRecycleBin(ctx, \"example\", \u0026nas.RecycleBinArgs{\n\t\t\tFileSystemId: exampleFileSystem.ID(),\n\t\t\tReservedDays: pulumi.Int(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.nas.FileSystem;\nimport com.pulumi.alicloud.nas.FileSystemArgs;\nimport com.pulumi.alicloud.nas.RecycleBin;\nimport com.pulumi.alicloud.nas.RecycleBinArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NasFunctions.getZones(GetZonesArgs.builder()\n            .fileSystemType(\"standard\")\n            .build());\n\n        var exampleFileSystem = new FileSystem(\"exampleFileSystem\", FileSystemArgs.builder()\n            .protocolType(\"NFS\")\n            .storageType(\"Performance\")\n            .description(\"terraform-example\")\n            .encryptType(1)\n            .zoneId(example.zones()[0].zoneId())\n            .build());\n\n        var exampleRecycleBin = new RecycleBin(\"exampleRecycleBin\", RecycleBinArgs.builder()\n            .fileSystemId(exampleFileSystem.id())\n            .reservedDays(3)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleFileSystem:\n    type: alicloud:nas:FileSystem\n    name: example\n    properties:\n      protocolType: NFS\n      storageType: Performance\n      description: terraform-example\n      encryptType: '1'\n      zoneId: ${example.zones[0].zoneId}\n  exampleRecycleBin:\n    type: alicloud:nas:RecycleBin\n    name: example\n    properties:\n      fileSystemId: ${exampleFileSystem.id}\n      reservedDays: 3\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:nas:getZones\n      arguments:\n        fileSystemType: standard\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFile Storage (NAS) Recycle Bin can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nas/recycleBin:RecycleBin example \u003cfile_system_id\u003e\n```\n\n","properties":{"fileSystemId":{"type":"string","description":"The ID of the file system for which you want to enable the recycle bin feature.\n"},"reservedDays":{"type":"integer","description":"The period for which the files in the recycle bin are retained. Unit: days. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the recycle bin.\n"}},"required":["fileSystemId","reservedDays","status"],"inputProperties":{"fileSystemId":{"type":"string","description":"The ID of the file system for which you want to enable the recycle bin feature.\n","willReplaceOnChanges":true},"reservedDays":{"type":"integer","description":"The period for which the files in the recycle bin are retained. Unit: days. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e.\n"}},"requiredInputs":["fileSystemId"],"stateInputs":{"description":"Input properties used for looking up and filtering RecycleBin resources.\n","properties":{"fileSystemId":{"type":"string","description":"The ID of the file system for which you want to enable the recycle bin feature.\n","willReplaceOnChanges":true},"reservedDays":{"type":"integer","description":"The period for which the files in the recycle bin are retained. Unit: days. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the recycle bin.\n"}},"type":"object"}},"alicloud:nas/smbAclAttachment:SmbAclAttachment":{"description":"Provides a Nas Smb Acl resource.\n\nAlibaba Cloud SMB protocol file storage service supports user authentication based on AD domain system and permission access control at the file system level. Connecting and accessing the SMB file system as a domain user can implement the requirements for access control at the file and directory level in the SMB protocol file system. The current Alibaba Cloud SMB protocol file storage service does not support multi-user file and directory-level permission access control, and only provides file system-level authentication and access based on the whitelist mechanism that supports cloud accounts and source IP permission groups control.\n\u003e **NOTE:** Available in 1.186.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.nas.getZones({\n    fileSystemType: \"standard\",\n});\nconst exampleFileSystem = new alicloud.nas.FileSystem(\"example\", {\n    protocolType: \"SMB\",\n    storageType: \"Capacity\",\n    description: \"terraform-example\",\n    encryptType: 0,\n    fileSystemType: \"standard\",\n    zoneId: example.then(example =\u003e example.zones?.[0]?.zoneId),\n});\nconst exampleSmbAclAttachment = new alicloud.nas.SmbAclAttachment(\"example\", {\n    fileSystemId: exampleFileSystem.id,\n    keytab: \"BQIAAABHAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAAQAIqIx6v7p11oUAAABHAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAAwAIqIx6v7p11oUAAABPAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAFwAQnQZWB3RAPHU7PMIJyBWePAAAAF8AAgANQUxJQURURVNULkNPTQAEY2lmcwAZc21ic2VydmVyMjQuYWxpYWR0ZXN0LmNvbQAAAAEAAAAAAQASACAGJ7F0s+bcBjf6jD5HlvlRLmPSOW+qDZe0Qk0lQcf8WwAAAE8AAgANQUxJQURURVNULkNPTQAEY2lmcwAZc21ic2VydmVyMjQuYWxpYWR0ZXN0LmNvbQAAAAEAAAAAAQARABDdFmanrSIatnDDhoOXYadj\",\n    keytabMd5: \"E3CCF7E2416DF04FA958AA4513EA29E8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.nas.get_zones(file_system_type=\"standard\")\nexample_file_system = alicloud.nas.FileSystem(\"example\",\n    protocol_type=\"SMB\",\n    storage_type=\"Capacity\",\n    description=\"terraform-example\",\n    encrypt_type=0,\n    file_system_type=\"standard\",\n    zone_id=example.zones[0].zone_id)\nexample_smb_acl_attachment = alicloud.nas.SmbAclAttachment(\"example\",\n    file_system_id=example_file_system.id,\n    keytab=\"BQIAAABHAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAAQAIqIx6v7p11oUAAABHAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAAwAIqIx6v7p11oUAAABPAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAFwAQnQZWB3RAPHU7PMIJyBWePAAAAF8AAgANQUxJQURURVNULkNPTQAEY2lmcwAZc21ic2VydmVyMjQuYWxpYWR0ZXN0LmNvbQAAAAEAAAAAAQASACAGJ7F0s+bcBjf6jD5HlvlRLmPSOW+qDZe0Qk0lQcf8WwAAAE8AAgANQUxJQURURVNULkNPTQAEY2lmcwAZc21ic2VydmVyMjQuYWxpYWR0ZXN0LmNvbQAAAAEAAAAAAQARABDdFmanrSIatnDDhoOXYadj\",\n    keytab_md5=\"E3CCF7E2416DF04FA958AA4513EA29E8\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Nas.GetZones.Invoke(new()\n    {\n        FileSystemType = \"standard\",\n    });\n\n    var exampleFileSystem = new AliCloud.Nas.FileSystem(\"example\", new()\n    {\n        ProtocolType = \"SMB\",\n        StorageType = \"Capacity\",\n        Description = \"terraform-example\",\n        EncryptType = 0,\n        FileSystemType = \"standard\",\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.ZoneId),\n    });\n\n    var exampleSmbAclAttachment = new AliCloud.Nas.SmbAclAttachment(\"example\", new()\n    {\n        FileSystemId = exampleFileSystem.Id,\n        Keytab = \"BQIAAABHAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAAQAIqIx6v7p11oUAAABHAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAAwAIqIx6v7p11oUAAABPAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAFwAQnQZWB3RAPHU7PMIJyBWePAAAAF8AAgANQUxJQURURVNULkNPTQAEY2lmcwAZc21ic2VydmVyMjQuYWxpYWR0ZXN0LmNvbQAAAAEAAAAAAQASACAGJ7F0s+bcBjf6jD5HlvlRLmPSOW+qDZe0Qk0lQcf8WwAAAE8AAgANQUxJQURURVNULkNPTQAEY2lmcwAZc21ic2VydmVyMjQuYWxpYWR0ZXN0LmNvbQAAAAEAAAAAAQARABDdFmanrSIatnDDhoOXYadj\",\n        KeytabMd5 = \"E3CCF7E2416DF04FA958AA4513EA29E8\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := nas.GetZones(ctx, \u0026nas.GetZonesArgs{\n\t\t\tFileSystemType: pulumi.StringRef(\"standard\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFileSystem, err := nas.NewFileSystem(ctx, \"example\", \u0026nas.FileSystemArgs{\n\t\t\tProtocolType:   pulumi.String(\"SMB\"),\n\t\t\tStorageType:    pulumi.String(\"Capacity\"),\n\t\t\tDescription:    pulumi.String(\"terraform-example\"),\n\t\t\tEncryptType:    pulumi.Int(0),\n\t\t\tFileSystemType: pulumi.String(\"standard\"),\n\t\t\tZoneId:         pulumi.String(example.Zones[0].ZoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nas.NewSmbAclAttachment(ctx, \"example\", \u0026nas.SmbAclAttachmentArgs{\n\t\t\tFileSystemId: exampleFileSystem.ID(),\n\t\t\tKeytab:       pulumi.String(\"BQIAAABHAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAAQAIqIx6v7p11oUAAABHAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAAwAIqIx6v7p11oUAAABPAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAFwAQnQZWB3RAPHU7PMIJyBWePAAAAF8AAgANQUxJQURURVNULkNPTQAEY2lmcwAZc21ic2VydmVyMjQuYWxpYWR0ZXN0LmNvbQAAAAEAAAAAAQASACAGJ7F0s+bcBjf6jD5HlvlRLmPSOW+qDZe0Qk0lQcf8WwAAAE8AAgANQUxJQURURVNULkNPTQAEY2lmcwAZc21ic2VydmVyMjQuYWxpYWR0ZXN0LmNvbQAAAAEAAAAAAQARABDdFmanrSIatnDDhoOXYadj\"),\n\t\t\tKeytabMd5:    pulumi.String(\"E3CCF7E2416DF04FA958AA4513EA29E8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.nas.FileSystem;\nimport com.pulumi.alicloud.nas.FileSystemArgs;\nimport com.pulumi.alicloud.nas.SmbAclAttachment;\nimport com.pulumi.alicloud.nas.SmbAclAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NasFunctions.getZones(GetZonesArgs.builder()\n            .fileSystemType(\"standard\")\n            .build());\n\n        var exampleFileSystem = new FileSystem(\"exampleFileSystem\", FileSystemArgs.builder()\n            .protocolType(\"SMB\")\n            .storageType(\"Capacity\")\n            .description(\"terraform-example\")\n            .encryptType(0)\n            .fileSystemType(\"standard\")\n            .zoneId(example.zones()[0].zoneId())\n            .build());\n\n        var exampleSmbAclAttachment = new SmbAclAttachment(\"exampleSmbAclAttachment\", SmbAclAttachmentArgs.builder()\n            .fileSystemId(exampleFileSystem.id())\n            .keytab(\"BQIAAABHAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAAQAIqIx6v7p11oUAAABHAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAAwAIqIx6v7p11oUAAABPAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAFwAQnQZWB3RAPHU7PMIJyBWePAAAAF8AAgANQUxJQURURVNULkNPTQAEY2lmcwAZc21ic2VydmVyMjQuYWxpYWR0ZXN0LmNvbQAAAAEAAAAAAQASACAGJ7F0s+bcBjf6jD5HlvlRLmPSOW+qDZe0Qk0lQcf8WwAAAE8AAgANQUxJQURURVNULkNPTQAEY2lmcwAZc21ic2VydmVyMjQuYWxpYWR0ZXN0LmNvbQAAAAEAAAAAAQARABDdFmanrSIatnDDhoOXYadj\")\n            .keytabMd5(\"E3CCF7E2416DF04FA958AA4513EA29E8\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleFileSystem:\n    type: alicloud:nas:FileSystem\n    name: example\n    properties:\n      protocolType: SMB\n      storageType: Capacity\n      description: terraform-example\n      encryptType: '0'\n      fileSystemType: standard\n      zoneId: ${example.zones[0].zoneId}\n  exampleSmbAclAttachment:\n    type: alicloud:nas:SmbAclAttachment\n    name: example\n    properties:\n      fileSystemId: ${exampleFileSystem.id}\n      keytab: BQIAAABHAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAAQAIqIx6v7p11oUAAABHAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAAwAIqIx6v7p11oUAAABPAAIADUFMSUFEVEVTVC5DT00ABGNpZnMAGXNtYnNlcnZlcjI0LmFsaWFkdGVzdC5jb20AAAABAAAAAAEAFwAQnQZWB3RAPHU7PMIJyBWePAAAAF8AAgANQUxJQURURVNULkNPTQAEY2lmcwAZc21ic2VydmVyMjQuYWxpYWR0ZXN0LmNvbQAAAAEAAAAAAQASACAGJ7F0s+bcBjf6jD5HlvlRLmPSOW+qDZe0Qk0lQcf8WwAAAE8AAgANQUxJQURURVNULkNPTQAEY2lmcwAZc21ic2VydmVyMjQuYWxpYWR0ZXN0LmNvbQAAAAEAAAAAAQARABDdFmanrSIatnDDhoOXYadj\n      keytabMd5: E3CCF7E2416DF04FA958AA4513EA29E8\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:nas:getZones\n      arguments:\n        fileSystemType: standard\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"authMethod":{"type":"string","description":"The method that is used to authenticate network identities.\n"},"enableAnonymousAccess":{"type":"boolean","description":"Specifies whether to allow anonymous access. Valid values:\ntrue: The file system allows anonymous access.\nfalse: The file system denies anonymous access. Default value: false.\n"},"enabled":{"type":"string","description":"Specifies whether to enable the ACL feature.\ntrue: enables the ACL feature.\nfalse: disables the ACL feature.\n"},"encryptData":{"type":"boolean","description":"Specifies whether to enable encryption in transit. Valid values:\ntrue: enables encryption in transit.\nfalse: disables encryption in transit. Default value: false.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n"},"homeDirPath":{"type":"string","description":"The home directory of each user. Each user-specific home directory must meet the following requirements:    \nEach segment starts with a forward slash (/) or a backslash (\\).\nEach segment does not contain the following special characters: \u003c\u003e\":?*.\nEach segment is 0 to 255 characters in length.\nThe total length is 0 to 32,767 characters.\nFor example, if you create a user named A and the home directory is /home, the file system automatically creates a directory named /home/A when User A logs on to the file system. If the /home/A directory already exists, the file system does not create the directory.\n"},"keytab":{"type":"string","description":"The string that is generated after the system encodes the keytab file by using Base64.\n"},"keytabMd5":{"type":"string","description":"RThe string that is generated after the system encodes the keytab file by using MD5.\n"},"rejectUnencryptedAccess":{"type":"boolean","description":"Specifies whether to deny access from non-encrypted clients. Valid values:\ntrue: The file system denies access from non-encrypted clients.\nfalse: The file system allows access from non-encrypted clients. Default value: false.\n"},"superAdminSid":{"type":"string","description":"The ID of a super admin. The ID must meet the following requirements:\nThe ID starts with S and does not contain letters except S.\nThe ID contains at least three hyphens (-) as delimiters.\nExample: S-1-5-22 and S-1-5-22-23.\n"}},"required":["authMethod","enabled","fileSystemId","keytab","keytabMd5"],"inputProperties":{"enableAnonymousAccess":{"type":"boolean","description":"Specifies whether to allow anonymous access. Valid values:\ntrue: The file system allows anonymous access.\nfalse: The file system denies anonymous access. Default value: false.\n"},"encryptData":{"type":"boolean","description":"Specifies whether to enable encryption in transit. Valid values:\ntrue: enables encryption in transit.\nfalse: disables encryption in transit. Default value: false.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"homeDirPath":{"type":"string","description":"The home directory of each user. Each user-specific home directory must meet the following requirements:    \nEach segment starts with a forward slash (/) or a backslash (\\).\nEach segment does not contain the following special characters: \u003c\u003e\":?*.\nEach segment is 0 to 255 characters in length.\nThe total length is 0 to 32,767 characters.\nFor example, if you create a user named A and the home directory is /home, the file system automatically creates a directory named /home/A when User A logs on to the file system. If the /home/A directory already exists, the file system does not create the directory.\n"},"keytab":{"type":"string","description":"The string that is generated after the system encodes the keytab file by using Base64.\n"},"keytabMd5":{"type":"string","description":"RThe string that is generated after the system encodes the keytab file by using MD5.\n"},"rejectUnencryptedAccess":{"type":"boolean","description":"Specifies whether to deny access from non-encrypted clients. Valid values:\ntrue: The file system denies access from non-encrypted clients.\nfalse: The file system allows access from non-encrypted clients. Default value: false.\n"},"superAdminSid":{"type":"string","description":"The ID of a super admin. The ID must meet the following requirements:\nThe ID starts with S and does not contain letters except S.\nThe ID contains at least three hyphens (-) as delimiters.\nExample: S-1-5-22 and S-1-5-22-23.\n"}},"requiredInputs":["fileSystemId","keytab","keytabMd5"],"stateInputs":{"description":"Input properties used for looking up and filtering SmbAclAttachment resources.\n","properties":{"authMethod":{"type":"string","description":"The method that is used to authenticate network identities.\n"},"enableAnonymousAccess":{"type":"boolean","description":"Specifies whether to allow anonymous access. Valid values:\ntrue: The file system allows anonymous access.\nfalse: The file system denies anonymous access. Default value: false.\n"},"enabled":{"type":"string","description":"Specifies whether to enable the ACL feature.\ntrue: enables the ACL feature.\nfalse: disables the ACL feature.\n"},"encryptData":{"type":"boolean","description":"Specifies whether to enable encryption in transit. Valid values:\ntrue: enables encryption in transit.\nfalse: disables encryption in transit. Default value: false.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"homeDirPath":{"type":"string","description":"The home directory of each user. Each user-specific home directory must meet the following requirements:    \nEach segment starts with a forward slash (/) or a backslash (\\).\nEach segment does not contain the following special characters: \u003c\u003e\":?*.\nEach segment is 0 to 255 characters in length.\nThe total length is 0 to 32,767 characters.\nFor example, if you create a user named A and the home directory is /home, the file system automatically creates a directory named /home/A when User A logs on to the file system. If the /home/A directory already exists, the file system does not create the directory.\n"},"keytab":{"type":"string","description":"The string that is generated after the system encodes the keytab file by using Base64.\n"},"keytabMd5":{"type":"string","description":"RThe string that is generated after the system encodes the keytab file by using MD5.\n"},"rejectUnencryptedAccess":{"type":"boolean","description":"Specifies whether to deny access from non-encrypted clients. Valid values:\ntrue: The file system denies access from non-encrypted clients.\nfalse: The file system allows access from non-encrypted clients. Default value: false.\n"},"superAdminSid":{"type":"string","description":"The ID of a super admin. The ID must meet the following requirements:\nThe ID starts with S and does not contain letters except S.\nThe ID contains at least three hyphens (-) as delimiters.\nExample: S-1-5-22 and S-1-5-22-23.\n"}},"type":"object"}},"alicloud:nas/snapshot:Snapshot":{"description":"Provides a File Storage (NAS) Snapshot resource.\n\nFor information about File Storage (NAS) Snapshot and how to use it, see [What is Snapshot](https://www.alibabacloud.com/help/en/doc-detail/126549.html).\n\n\u003e **NOTE:** Available since v1.152.0.\n\n\u003e **NOTE:** Only Extreme NAS file systems support the snapshot feature.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"testacc\";\nconst _default = alicloud.nas.getZones({\n    fileSystemType: \"extreme\",\n});\nconst defaultFileSystem = new alicloud.nas.FileSystem(\"default\", {\n    fileSystemType: \"extreme\",\n    protocolType: \"NFS\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.zoneId),\n    storageType: \"standard\",\n    capacity: 100,\n});\nconst defaultSnapshot = new alicloud.nas.Snapshot(\"default\", {\n    fileSystemId: defaultFileSystem.id,\n    description: name,\n    retentionDays: 20,\n    snapshotName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"testacc\"\ndefault = alicloud.nas.get_zones(file_system_type=\"extreme\")\ndefault_file_system = alicloud.nas.FileSystem(\"default\",\n    file_system_type=\"extreme\",\n    protocol_type=\"NFS\",\n    zone_id=default.zones[0].zone_id,\n    storage_type=\"standard\",\n    capacity=100)\ndefault_snapshot = alicloud.nas.Snapshot(\"default\",\n    file_system_id=default_file_system.id,\n    description=name,\n    retention_days=20,\n    snapshot_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"testacc\";\n    var @default = AliCloud.Nas.GetZones.Invoke(new()\n    {\n        FileSystemType = \"extreme\",\n    });\n\n    var defaultFileSystem = new AliCloud.Nas.FileSystem(\"default\", new()\n    {\n        FileSystemType = \"extreme\",\n        ProtocolType = \"NFS\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.ZoneId)),\n        StorageType = \"standard\",\n        Capacity = 100,\n    });\n\n    var defaultSnapshot = new AliCloud.Nas.Snapshot(\"default\", new()\n    {\n        FileSystemId = defaultFileSystem.Id,\n        Description = name,\n        RetentionDays = 20,\n        SnapshotName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"testacc\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := nas.GetZones(ctx, \u0026nas.GetZonesArgs{\n\t\t\tFileSystemType: pulumi.StringRef(\"extreme\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultFileSystem, err := nas.NewFileSystem(ctx, \"default\", \u0026nas.FileSystemArgs{\n\t\t\tFileSystemType: pulumi.String(\"extreme\"),\n\t\t\tProtocolType:   pulumi.String(\"NFS\"),\n\t\t\tZoneId:         pulumi.String(_default.Zones[0].ZoneId),\n\t\t\tStorageType:    pulumi.String(\"standard\"),\n\t\t\tCapacity:       pulumi.Int(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nas.NewSnapshot(ctx, \"default\", \u0026nas.SnapshotArgs{\n\t\t\tFileSystemId:  defaultFileSystem.ID(),\n\t\t\tDescription:   pulumi.String(name),\n\t\t\tRetentionDays: pulumi.Int(20),\n\t\t\tSnapshotName:  pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.nas.FileSystem;\nimport com.pulumi.alicloud.nas.FileSystemArgs;\nimport com.pulumi.alicloud.nas.Snapshot;\nimport com.pulumi.alicloud.nas.SnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"testacc\");\n        final var default = NasFunctions.getZones(GetZonesArgs.builder()\n            .fileSystemType(\"extreme\")\n            .build());\n\n        var defaultFileSystem = new FileSystem(\"defaultFileSystem\", FileSystemArgs.builder()\n            .fileSystemType(\"extreme\")\n            .protocolType(\"NFS\")\n            .zoneId(default_.zones()[0].zoneId())\n            .storageType(\"standard\")\n            .capacity(100)\n            .build());\n\n        var defaultSnapshot = new Snapshot(\"defaultSnapshot\", SnapshotArgs.builder()\n            .fileSystemId(defaultFileSystem.id())\n            .description(name)\n            .retentionDays(20)\n            .snapshotName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: testacc\nresources:\n  defaultFileSystem:\n    type: alicloud:nas:FileSystem\n    name: default\n    properties:\n      fileSystemType: extreme\n      protocolType: NFS\n      zoneId: ${default.zones[0].zoneId}\n      storageType: standard\n      capacity: 100\n  defaultSnapshot:\n    type: alicloud:nas:Snapshot\n    name: default\n    properties:\n      fileSystemId: ${defaultFileSystem.id}\n      description: ${name}\n      retentionDays: 20\n      snapshotName: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:nas:getZones\n      arguments:\n        fileSystemType: extreme\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nFile Storage (NAS) Snapshot can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nas/snapshot:Snapshot example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the snapshot. It must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length and cannot start with `https://` or `https://`.\n"},"fileSystemId":{"type":"string","description":"The ID of the file system.\n"},"retentionDays":{"type":"integer","description":"The retention period of the snapshot. Unit: days. Valid values:\n* `-1`: The default value. Auto snapshots are permanently retained. After the number of auto snapshots exceeds the upper limit, the earliest auto snapshot is automatically deleted.\n"},"snapshotName":{"type":"string","description":"SnapshotName. It must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length and must start with a letter, but cannot start with `https://` or `https://`.\n"},"status":{"type":"string","description":"The status of the snapshot.\n"}},"required":["fileSystemId","status"],"inputProperties":{"description":{"type":"string","description":"The description of the snapshot. It must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length and cannot start with `https://` or `https://`.\n","willReplaceOnChanges":true},"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"retentionDays":{"type":"integer","description":"The retention period of the snapshot. Unit: days. Valid values:\n* `-1`: The default value. Auto snapshots are permanently retained. After the number of auto snapshots exceeds the upper limit, the earliest auto snapshot is automatically deleted.\n","willReplaceOnChanges":true},"snapshotName":{"type":"string","description":"SnapshotName. It must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length and must start with a letter, but cannot start with `https://` or `https://`.\n","willReplaceOnChanges":true}},"requiredInputs":["fileSystemId"],"stateInputs":{"description":"Input properties used for looking up and filtering Snapshot resources.\n","properties":{"description":{"type":"string","description":"The description of the snapshot. It must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length and cannot start with `https://` or `https://`.\n","willReplaceOnChanges":true},"fileSystemId":{"type":"string","description":"The ID of the file system.\n","willReplaceOnChanges":true},"retentionDays":{"type":"integer","description":"The retention period of the snapshot. Unit: days. Valid values:\n* `-1`: The default value. Auto snapshots are permanently retained. After the number of auto snapshots exceeds the upper limit, the earliest auto snapshot is automatically deleted.\n","willReplaceOnChanges":true},"snapshotName":{"type":"string","description":"SnapshotName. It must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length and must start with a letter, but cannot start with `https://` or `https://`.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the snapshot.\n"}},"type":"object"}},"alicloud:nlb/hdMonitorRegionConfig:HdMonitorRegionConfig":{"description":"Provides a Network Load Balancer (NLB) Hd Monitor Region Config resource.\n\nHD monitor config.\n\nFor information about Network Load Balancer (NLB) Hd Monitor Region Config and how to use it, see [What is Hd Monitor Region Config](https://next.api.alibabacloud.com/document/Nlb/2022-04-30/SetHdMonitorRegionConfig).\n\n\u003e **NOTE:** Available since v1.273.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.nlb.HdMonitorRegionConfig(\"default\", {\n    metricStore: \"example\",\n    logProject: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.nlb.HdMonitorRegionConfig(\"default\",\n    metric_store=\"example\",\n    log_project=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Nlb.HdMonitorRegionConfig(\"default\", new()\n    {\n        MetricStore = \"example\",\n        LogProject = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := nlb.NewHdMonitorRegionConfig(ctx, \"default\", \u0026nlb.HdMonitorRegionConfigArgs{\n\t\t\tMetricStore: pulumi.String(\"example\"),\n\t\t\tLogProject:  pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nlb.HdMonitorRegionConfig;\nimport com.pulumi.alicloud.nlb.HdMonitorRegionConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new HdMonitorRegionConfig(\"default\", HdMonitorRegionConfigArgs.builder()\n            .metricStore(\"example\")\n            .logProject(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:nlb:HdMonitorRegionConfig\n    properties:\n      metricStore: example\n      logProject: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nNetwork Load Balancer (NLB) Hd Monitor Region Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nlb/hdMonitorRegionConfig:HdMonitorRegionConfig example \u003cregion_id\u003e\n```\n\n","properties":{"logProject":{"type":"string","description":"The name of the LogProject.\n"},"metricStore":{"type":"string","description":"The name of the MetricStore.\n"},"regionId":{"type":"string","description":"The ID of the region in which the resource resides.\n"}},"required":["logProject","metricStore","regionId"],"inputProperties":{"logProject":{"type":"string","description":"The name of the LogProject.\n"},"metricStore":{"type":"string","description":"The name of the MetricStore.\n"}},"requiredInputs":["logProject","metricStore"],"stateInputs":{"description":"Input properties used for looking up and filtering HdMonitorRegionConfig resources.\n","properties":{"logProject":{"type":"string","description":"The name of the LogProject.\n"},"metricStore":{"type":"string","description":"The name of the MetricStore.\n"},"regionId":{"type":"string","description":"The ID of the region in which the resource resides.\n"}},"type":"object"}},"alicloud:nlb/listener:Listener":{"description":"Provides a Network Load Balancer (NLB) Listener resource.\n\n\n\nFor information about Network Load Balancer (NLB) Listener and how to use it, see [What is Listener](https://www.alibabacloud.com/help/en/server-load-balancer/latest/api-nlb-2022-04-30-createlistener).\n\n\u003e **NOTE:** Available since v1.191.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultGetZones = alicloud.nlb.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst default1 = new alicloud.vpc.Switch(\"default1\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.1.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[1]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultLoadBalancer = new alicloud.nlb.LoadBalancer(\"default\", {\n    loadBalancerName: name,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    loadBalancerType: \"Network\",\n    addressType: \"Internet\",\n    addressIpVersion: \"Ipv4\",\n    vpcId: defaultNetwork.id,\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    zoneMappings: [\n        {\n            vswitchId: defaultSwitch.id,\n            zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n        },\n        {\n            vswitchId: default1.id,\n            zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[1]?.id),\n        },\n    ],\n});\nconst defaultServerGroup = new alicloud.nlb.ServerGroup(\"default\", {\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    serverGroupName: name,\n    serverGroupType: \"Instance\",\n    vpcId: defaultNetwork.id,\n    scheduler: \"Wrr\",\n    protocol: \"TCP\",\n    connectionDrainEnabled: true,\n    connectionDrainTimeout: 60,\n    addressIpVersion: \"Ipv4\",\n    healthCheck: {\n        healthCheckEnabled: true,\n        healthCheckType: \"TCP\",\n        healthCheckConnectPort: 0,\n        healthyThreshold: 2,\n        unhealthyThreshold: 2,\n        healthCheckConnectTimeout: 5,\n        healthCheckInterval: 10,\n        httpCheckMethod: \"GET\",\n        healthCheckHttpCodes: [\n            \"http_2xx\",\n            \"http_3xx\",\n            \"http_4xx\",\n        ],\n    },\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst defaultListener = new alicloud.nlb.Listener(\"default\", {\n    listenerProtocol: \"TCP\",\n    listenerPort: 80,\n    listenerDescription: name,\n    loadBalancerId: defaultLoadBalancer.id,\n    serverGroupId: defaultServerGroup.id,\n    idleTimeout: 900,\n    proxyProtocolEnabled: true,\n    cps: 10000,\n    mss: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_get_zones = alicloud.nlb.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault1 = alicloud.vpc.Switch(\"default1\",\n    vswitch_name=name,\n    cidr_block=\"10.4.1.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[1].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_load_balancer = alicloud.nlb.LoadBalancer(\"default\",\n    load_balancer_name=name,\n    resource_group_id=default.ids[0],\n    load_balancer_type=\"Network\",\n    address_type=\"Internet\",\n    address_ip_version=\"Ipv4\",\n    vpc_id=default_network.id,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    zone_mappings=[\n        {\n            \"vswitch_id\": default_switch.id,\n            \"zone_id\": default_get_zones.zones[0].id,\n        },\n        {\n            \"vswitch_id\": default1.id,\n            \"zone_id\": default_get_zones.zones[1].id,\n        },\n    ])\ndefault_server_group = alicloud.nlb.ServerGroup(\"default\",\n    resource_group_id=default.ids[0],\n    server_group_name=name,\n    server_group_type=\"Instance\",\n    vpc_id=default_network.id,\n    scheduler=\"Wrr\",\n    protocol=\"TCP\",\n    connection_drain_enabled=True,\n    connection_drain_timeout=60,\n    address_ip_version=\"Ipv4\",\n    health_check={\n        \"health_check_enabled\": True,\n        \"health_check_type\": \"TCP\",\n        \"health_check_connect_port\": 0,\n        \"healthy_threshold\": 2,\n        \"unhealthy_threshold\": 2,\n        \"health_check_connect_timeout\": 5,\n        \"health_check_interval\": 10,\n        \"http_check_method\": \"GET\",\n        \"health_check_http_codes\": [\n            \"http_2xx\",\n            \"http_3xx\",\n            \"http_4xx\",\n        ],\n    },\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\ndefault_listener = alicloud.nlb.Listener(\"default\",\n    listener_protocol=\"TCP\",\n    listener_port=80,\n    listener_description=name,\n    load_balancer_id=default_load_balancer.id,\n    server_group_id=default_server_group.id,\n    idle_timeout=900,\n    proxy_protocol_enabled=True,\n    cps=10000,\n    mss=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultGetZones = AliCloud.Nlb.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var default1 = new AliCloud.Vpc.Switch(\"default1\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.1.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultLoadBalancer = new AliCloud.Nlb.LoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = name,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        LoadBalancerType = \"Network\",\n        AddressType = \"Internet\",\n        AddressIpVersion = \"Ipv4\",\n        VpcId = defaultNetwork.Id,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        ZoneMappings = new[]\n        {\n            new AliCloud.Nlb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch.Id,\n                ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n            },\n            new AliCloud.Nlb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = default1.Id,\n                ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n            },\n        },\n    });\n\n    var defaultServerGroup = new AliCloud.Nlb.ServerGroup(\"default\", new()\n    {\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        ServerGroupName = name,\n        ServerGroupType = \"Instance\",\n        VpcId = defaultNetwork.Id,\n        Scheduler = \"Wrr\",\n        Protocol = \"TCP\",\n        ConnectionDrainEnabled = true,\n        ConnectionDrainTimeout = 60,\n        AddressIpVersion = \"Ipv4\",\n        HealthCheck = new AliCloud.Nlb.Inputs.ServerGroupHealthCheckArgs\n        {\n            HealthCheckEnabled = true,\n            HealthCheckType = \"TCP\",\n            HealthCheckConnectPort = 0,\n            HealthyThreshold = 2,\n            UnhealthyThreshold = 2,\n            HealthCheckConnectTimeout = 5,\n            HealthCheckInterval = 10,\n            HttpCheckMethod = \"GET\",\n            HealthCheckHttpCodes = new[]\n            {\n                \"http_2xx\",\n                \"http_3xx\",\n                \"http_4xx\",\n            },\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var defaultListener = new AliCloud.Nlb.Listener(\"default\", new()\n    {\n        ListenerProtocol = \"TCP\",\n        ListenerPort = 80,\n        ListenerDescription = name,\n        LoadBalancerId = defaultLoadBalancer.Id,\n        ServerGroupId = defaultServerGroup.Id,\n        IdleTimeout = 900,\n        ProxyProtocolEnabled = true,\n        Cps = 10000,\n        Mss = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := nlb.GetZones(ctx, \u0026nlb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1, err := vpc.NewSwitch(ctx, \"default1\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.1.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[1].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultLoadBalancer, err := nlb.NewLoadBalancer(ctx, \"default\", \u0026nlb.LoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tResourceGroupId:  pulumi.String(_default.Ids[0]),\n\t\t\tLoadBalancerType: pulumi.String(\"Network\"),\n\t\t\tAddressType:      pulumi.String(\"Internet\"),\n\t\t\tAddressIpVersion: pulumi.String(\"Ipv4\"),\n\t\t\tVpcId:            defaultNetwork.ID(),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tZoneMappings: nlb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026nlb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t\t\t\tZoneId:    pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\t\t},\n\t\t\t\t\u0026nlb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: default1.ID(),\n\t\t\t\t\tZoneId:    pulumi.String(defaultGetZones.Zones[1].Id),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultServerGroup, err := nlb.NewServerGroup(ctx, \"default\", \u0026nlb.ServerGroupArgs{\n\t\t\tResourceGroupId:        pulumi.String(_default.Ids[0]),\n\t\t\tServerGroupName:        pulumi.String(name),\n\t\t\tServerGroupType:        pulumi.String(\"Instance\"),\n\t\t\tVpcId:                  defaultNetwork.ID(),\n\t\t\tScheduler:              pulumi.String(\"Wrr\"),\n\t\t\tProtocol:               pulumi.String(\"TCP\"),\n\t\t\tConnectionDrainEnabled: pulumi.Bool(true),\n\t\t\tConnectionDrainTimeout: pulumi.Int(60),\n\t\t\tAddressIpVersion:       pulumi.String(\"Ipv4\"),\n\t\t\tHealthCheck: \u0026nlb.ServerGroupHealthCheckArgs{\n\t\t\t\tHealthCheckEnabled:        pulumi.Bool(true),\n\t\t\t\tHealthCheckType:           pulumi.String(\"TCP\"),\n\t\t\t\tHealthCheckConnectPort:    pulumi.Int(0),\n\t\t\t\tHealthyThreshold:          pulumi.Int(2),\n\t\t\t\tUnhealthyThreshold:        pulumi.Int(2),\n\t\t\t\tHealthCheckConnectTimeout: pulumi.Int(5),\n\t\t\t\tHealthCheckInterval:       pulumi.Int(10),\n\t\t\t\tHttpCheckMethod:           pulumi.String(\"GET\"),\n\t\t\t\tHealthCheckHttpCodes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"http_2xx\"),\n\t\t\t\t\tpulumi.String(\"http_3xx\"),\n\t\t\t\t\tpulumi.String(\"http_4xx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nlb.NewListener(ctx, \"default\", \u0026nlb.ListenerArgs{\n\t\t\tListenerProtocol:     pulumi.String(\"TCP\"),\n\t\t\tListenerPort:         pulumi.Int(80),\n\t\t\tListenerDescription:  pulumi.String(name),\n\t\t\tLoadBalancerId:       defaultLoadBalancer.ID(),\n\t\t\tServerGroupId:        defaultServerGroup.ID(),\n\t\t\tIdleTimeout:          pulumi.Int(900),\n\t\t\tProxyProtocolEnabled: pulumi.Bool(true),\n\t\t\tCps:                  pulumi.Int(10000),\n\t\t\tMss:                  pulumi.Int(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.nlb.NlbFunctions;\nimport com.pulumi.alicloud.nlb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.nlb.LoadBalancer;\nimport com.pulumi.alicloud.nlb.LoadBalancerArgs;\nimport com.pulumi.alicloud.nlb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.nlb.ServerGroup;\nimport com.pulumi.alicloud.nlb.ServerGroupArgs;\nimport com.pulumi.alicloud.nlb.inputs.ServerGroupHealthCheckArgs;\nimport com.pulumi.alicloud.nlb.Listener;\nimport com.pulumi.alicloud.nlb.ListenerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var defaultGetZones = NlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var default1 = new Switch(\"default1\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.1.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[1].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .resourceGroupId(default_.ids()[0])\n            .loadBalancerType(\"Network\")\n            .addressType(\"Internet\")\n            .addressIpVersion(\"Ipv4\")\n            .vpcId(defaultNetwork.id())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch.id())\n                    .zoneId(defaultGetZones.zones()[0].id())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(default1.id())\n                    .zoneId(defaultGetZones.zones()[1].id())\n                    .build())\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .resourceGroupId(default_.ids()[0])\n            .serverGroupName(name)\n            .serverGroupType(\"Instance\")\n            .vpcId(defaultNetwork.id())\n            .scheduler(\"Wrr\")\n            .protocol(\"TCP\")\n            .connectionDrainEnabled(true)\n            .connectionDrainTimeout(60)\n            .addressIpVersion(\"Ipv4\")\n            .healthCheck(ServerGroupHealthCheckArgs.builder()\n                .healthCheckEnabled(true)\n                .healthCheckType(\"TCP\")\n                .healthCheckConnectPort(0)\n                .healthyThreshold(2)\n                .unhealthyThreshold(2)\n                .healthCheckConnectTimeout(5)\n                .healthCheckInterval(10)\n                .httpCheckMethod(\"GET\")\n                .healthCheckHttpCodes(                \n                    \"http_2xx\",\n                    \"http_3xx\",\n                    \"http_4xx\")\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .listenerProtocol(\"TCP\")\n            .listenerPort(80)\n            .listenerDescription(name)\n            .loadBalancerId(defaultLoadBalancer.id())\n            .serverGroupId(defaultServerGroup.id())\n            .idleTimeout(900)\n            .proxyProtocolEnabled(true)\n            .cps(10000)\n            .mss(0)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  default1:\n    type: alicloud:vpc:Switch\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.1.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[1].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultLoadBalancer:\n    type: alicloud:nlb:LoadBalancer\n    name: default\n    properties:\n      loadBalancerName: ${name}\n      resourceGroupId: ${default.ids[0]}\n      loadBalancerType: Network\n      addressType: Internet\n      addressIpVersion: Ipv4\n      vpcId: ${defaultNetwork.id}\n      tags:\n        Created: TF\n        For: example\n      zoneMappings:\n        - vswitchId: ${defaultSwitch.id}\n          zoneId: ${defaultGetZones.zones[0].id}\n        - vswitchId: ${default1.id}\n          zoneId: ${defaultGetZones.zones[1].id}\n  defaultServerGroup:\n    type: alicloud:nlb:ServerGroup\n    name: default\n    properties:\n      resourceGroupId: ${default.ids[0]}\n      serverGroupName: ${name}\n      serverGroupType: Instance\n      vpcId: ${defaultNetwork.id}\n      scheduler: Wrr\n      protocol: TCP\n      connectionDrainEnabled: true\n      connectionDrainTimeout: 60\n      addressIpVersion: Ipv4\n      healthCheck:\n        healthCheckEnabled: true\n        healthCheckType: TCP\n        healthCheckConnectPort: 0\n        healthyThreshold: 2\n        unhealthyThreshold: 2\n        healthCheckConnectTimeout: 5\n        healthCheckInterval: 10\n        httpCheckMethod: GET\n        healthCheckHttpCodes:\n          - http_2xx\n          - http_3xx\n          - http_4xx\n      tags:\n        Created: TF\n        For: example\n  defaultListener:\n    type: alicloud:nlb:Listener\n    name: default\n    properties:\n      listenerProtocol: TCP\n      listenerPort: '80'\n      listenerDescription: ${name}\n      loadBalancerId: ${defaultLoadBalancer.id}\n      serverGroupId: ${defaultServerGroup.id}\n      idleTimeout: '900'\n      proxyProtocolEnabled: 'true'\n      cps: '10000'\n      mss: '0'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:nlb:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nNetwork Load Balancer (NLB) Listener can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nlb/listener:Listener example \u003cid\u003e\n```\n\n","properties":{"alpnEnabled":{"type":"boolean","description":"Specifies whether to enable Application-Layer Protocol Negotiation (ALPN). Valid values:\n"},"alpnPolicy":{"type":"string","description":"The ALPN policy. Valid values:\n- `HTTP1Only`: uses only HTTP 1.x. The priority of HTTP 1.1 is higher than the priority of HTTP 1.0.\n- `HTTP2Only`: uses only HTTP 2.0.\n- `HTTP2Optional`: preferentially uses HTTP 1.x over HTTP 2.0. The priority of HTTP 1.1 is higher than the priority of HTTP 1.0, and the priority of HTTP 1.0 is higher than the priority of HTTP 2.0.\n- `HTTP2Preferred`: preferentially uses HTTP 2.0 over HTTP 1.x. The priority of HTTP 2.0 is higher than the priority of HTTP 1.1, and the priority of HTTP 1.1 is higher than the priority of HTTP 1.0.\n\n\u003e **NOTE:**  This parameter is required if AlpnEnabled is set to true.\n\n\u003e **NOTE:**  Effective only for TCPSSL listener.\n"},"caCertificateIds":{"type":"array","items":{"type":"string"},"description":"The list of certificate authority (CA) certificates. This parameter takes effect only for listeners that use SSL over TCP. \n\n\u003e **NOTE:**  Only one CA certificate is supported.\n"},"caEnabled":{"type":"boolean","description":"Specifies whether to enable mutual authentication. Valid values:\n"},"certificateIds":{"type":"array","items":{"type":"string"},"description":"The list of server certificates. This parameter takes effect only for listeners that use SSL over TCP. \n\n\u003e **NOTE:**  This parameter takes effect only for TCPSSL listeners.\n"},"cps":{"type":"integer","description":"The maximum number of connections that can be created per second on the NLB instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000000`\" pulumi-lang-dotnet=\"`1000000`\" pulumi-lang-go=\"`1000000`\" pulumi-lang-python=\"`1000000`\" pulumi-lang-yaml=\"`1000000`\" pulumi-lang-java=\"`1000000`\"\u003e`1000000`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e specifies that the number of connections is unlimited.\n"},"endPort":{"type":"integer","description":"The last port in the listener port range. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. The number of the last port must be greater than the number of the first port.\n\n\u003e **NOTE:**  This parameter is required when `ListenerPort` is set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"idleTimeout":{"type":"integer","description":"The timeout period of idle connections. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e.\n"},"listenerDescription":{"type":"string","description":"Enter a name for the listener.\nThe description must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).\n"},"listenerPort":{"type":"integer","description":"The listener port. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\nIf you set the value to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, the listener listens by port range. If you set the value to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, you must specify `StartPort` and `EndPort`.\n"},"listenerProtocol":{"type":"string","description":"The listening protocol. Valid values: `TCP`, `UDP`, and `TCPSSL`.\n"},"loadBalancerId":{"type":"string","description":"The ID of the Network Load Balancer (NLB) instance.\n"},"mss":{"type":"integer","description":"The maximum size of a TCP segment. Unit: bytes. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1500`\" pulumi-lang-dotnet=\"`1500`\" pulumi-lang-go=\"`1500`\" pulumi-lang-python=\"`1500`\" pulumi-lang-yaml=\"`1500`\" pulumi-lang-java=\"`1500`\"\u003e`1500`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e specifies that the maximum segment size remains unchanged.\n\n\u003e **NOTE:**  This parameter is supported only by TCP listeners and listeners that use SSL over TCP.\n"},"proxyProtocolConfig":{"$ref":"#/types/alicloud:nlb/ListenerProxyProtocolConfig:ListenerProxyProtocolConfig","description":"The Proxy Protocol is used to carry the VpcId, PrivateLinkEpId, and PrivateLinkEpsId information to the backend server for configuration. See \u003cspan pulumi-lang-nodejs=\"`proxyProtocolConfig`\" pulumi-lang-dotnet=\"`ProxyProtocolConfig`\" pulumi-lang-go=\"`proxyProtocolConfig`\" pulumi-lang-python=\"`proxy_protocol_config`\" pulumi-lang-yaml=\"`proxyProtocolConfig`\" pulumi-lang-java=\"`proxyProtocolConfig`\"\u003e`proxy_protocol_config`\u003c/span\u003e below.\n"},"proxyProtocolEnabled":{"type":"boolean","description":"Specifies whether to use the Proxy protocol to pass client IP addresses to backend servers. Valid values:\n"},"regionId":{"type":"string","description":"The ID of the region where the Network Load Balancer (NLB) instance is deployed.\nYou can call the [DescribeRegions](https://www.alibabacloud.com/help/en/doc-detail/443657.html) operation to query the most recent region list.\n"},"secSensorEnabled":{"type":"boolean","description":"Specifies whether to enable fine-grained monitoring. Valid values:\n"},"securityPolicyId":{"type":"string","description":"The security policy ID. System security policies and custom security policies are supported.\n\nValid values: `tls_cipher_policy\\_1\\_0` (default), `tls_cipher_policy\\_1\\_1`, `tls_cipher_policy\\_1\\_2`, `tls_cipher_policy\\_1\\_2\\_strict`, and `tls_cipher_policy\\_1\\_2\\_strict_with\\_1\\_3`.\n\n\u003e **NOTE:**  This parameter takes effect only for listeners that use SSL over TCP.\n"},"serverGroupId":{"type":"string","description":"The ID of the server group.\n"},"startPort":{"type":"integer","description":"The first port in the listener port range. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n\n\u003e **NOTE:**  This parameter is required when `ListenerPort` is set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Running`, `Stopped`. When you want to enable this instance, you can set the property value to `Running`;\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"}},"required":["alpnEnabled","caEnabled","idleTimeout","listenerPort","listenerProtocol","loadBalancerId","proxyProtocolConfig","proxyProtocolEnabled","regionId","secSensorEnabled","securityPolicyId","serverGroupId","status"],"inputProperties":{"alpnEnabled":{"type":"boolean","description":"Specifies whether to enable Application-Layer Protocol Negotiation (ALPN). Valid values:\n"},"alpnPolicy":{"type":"string","description":"The ALPN policy. Valid values:\n- `HTTP1Only`: uses only HTTP 1.x. The priority of HTTP 1.1 is higher than the priority of HTTP 1.0.\n- `HTTP2Only`: uses only HTTP 2.0.\n- `HTTP2Optional`: preferentially uses HTTP 1.x over HTTP 2.0. The priority of HTTP 1.1 is higher than the priority of HTTP 1.0, and the priority of HTTP 1.0 is higher than the priority of HTTP 2.0.\n- `HTTP2Preferred`: preferentially uses HTTP 2.0 over HTTP 1.x. The priority of HTTP 2.0 is higher than the priority of HTTP 1.1, and the priority of HTTP 1.1 is higher than the priority of HTTP 1.0.\n\n\u003e **NOTE:**  This parameter is required if AlpnEnabled is set to true.\n\n\u003e **NOTE:**  Effective only for TCPSSL listener.\n"},"caCertificateIds":{"type":"array","items":{"type":"string"},"description":"The list of certificate authority (CA) certificates. This parameter takes effect only for listeners that use SSL over TCP. \n\n\u003e **NOTE:**  Only one CA certificate is supported.\n"},"caEnabled":{"type":"boolean","description":"Specifies whether to enable mutual authentication. Valid values:\n"},"certificateIds":{"type":"array","items":{"type":"string"},"description":"The list of server certificates. This parameter takes effect only for listeners that use SSL over TCP. \n\n\u003e **NOTE:**  This parameter takes effect only for TCPSSL listeners.\n"},"cps":{"type":"integer","description":"The maximum number of connections that can be created per second on the NLB instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000000`\" pulumi-lang-dotnet=\"`1000000`\" pulumi-lang-go=\"`1000000`\" pulumi-lang-python=\"`1000000`\" pulumi-lang-yaml=\"`1000000`\" pulumi-lang-java=\"`1000000`\"\u003e`1000000`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e specifies that the number of connections is unlimited.\n"},"endPort":{"type":"integer","description":"The last port in the listener port range. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. The number of the last port must be greater than the number of the first port.\n\n\u003e **NOTE:**  This parameter is required when `ListenerPort` is set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n","willReplaceOnChanges":true},"idleTimeout":{"type":"integer","description":"The timeout period of idle connections. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e.\n"},"listenerDescription":{"type":"string","description":"Enter a name for the listener.\nThe description must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).\n"},"listenerPort":{"type":"integer","description":"The listener port. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\nIf you set the value to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, the listener listens by port range. If you set the value to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, you must specify `StartPort` and `EndPort`.\n","willReplaceOnChanges":true},"listenerProtocol":{"type":"string","description":"The listening protocol. Valid values: `TCP`, `UDP`, and `TCPSSL`.\n","willReplaceOnChanges":true},"loadBalancerId":{"type":"string","description":"The ID of the Network Load Balancer (NLB) instance.\n","willReplaceOnChanges":true},"mss":{"type":"integer","description":"The maximum size of a TCP segment. Unit: bytes. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1500`\" pulumi-lang-dotnet=\"`1500`\" pulumi-lang-go=\"`1500`\" pulumi-lang-python=\"`1500`\" pulumi-lang-yaml=\"`1500`\" pulumi-lang-java=\"`1500`\"\u003e`1500`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e specifies that the maximum segment size remains unchanged.\n\n\u003e **NOTE:**  This parameter is supported only by TCP listeners and listeners that use SSL over TCP.\n"},"proxyProtocolConfig":{"$ref":"#/types/alicloud:nlb/ListenerProxyProtocolConfig:ListenerProxyProtocolConfig","description":"The Proxy Protocol is used to carry the VpcId, PrivateLinkEpId, and PrivateLinkEpsId information to the backend server for configuration. See \u003cspan pulumi-lang-nodejs=\"`proxyProtocolConfig`\" pulumi-lang-dotnet=\"`ProxyProtocolConfig`\" pulumi-lang-go=\"`proxyProtocolConfig`\" pulumi-lang-python=\"`proxy_protocol_config`\" pulumi-lang-yaml=\"`proxyProtocolConfig`\" pulumi-lang-java=\"`proxyProtocolConfig`\"\u003e`proxy_protocol_config`\u003c/span\u003e below.\n"},"proxyProtocolEnabled":{"type":"boolean","description":"Specifies whether to use the Proxy protocol to pass client IP addresses to backend servers. Valid values:\n"},"secSensorEnabled":{"type":"boolean","description":"Specifies whether to enable fine-grained monitoring. Valid values:\n"},"securityPolicyId":{"type":"string","description":"The security policy ID. System security policies and custom security policies are supported.\n\nValid values: `tls_cipher_policy\\_1\\_0` (default), `tls_cipher_policy\\_1\\_1`, `tls_cipher_policy\\_1\\_2`, `tls_cipher_policy\\_1\\_2\\_strict`, and `tls_cipher_policy\\_1\\_2\\_strict_with\\_1\\_3`.\n\n\u003e **NOTE:**  This parameter takes effect only for listeners that use SSL over TCP.\n"},"serverGroupId":{"type":"string","description":"The ID of the server group.\n"},"startPort":{"type":"integer","description":"The first port in the listener port range. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n\n\u003e **NOTE:**  This parameter is required when `ListenerPort` is set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `Running`, `Stopped`. When you want to enable this instance, you can set the property value to `Running`;\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"}},"requiredInputs":["listenerPort","listenerProtocol","loadBalancerId","serverGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering Listener resources.\n","properties":{"alpnEnabled":{"type":"boolean","description":"Specifies whether to enable Application-Layer Protocol Negotiation (ALPN). Valid values:\n"},"alpnPolicy":{"type":"string","description":"The ALPN policy. Valid values:\n- `HTTP1Only`: uses only HTTP 1.x. The priority of HTTP 1.1 is higher than the priority of HTTP 1.0.\n- `HTTP2Only`: uses only HTTP 2.0.\n- `HTTP2Optional`: preferentially uses HTTP 1.x over HTTP 2.0. The priority of HTTP 1.1 is higher than the priority of HTTP 1.0, and the priority of HTTP 1.0 is higher than the priority of HTTP 2.0.\n- `HTTP2Preferred`: preferentially uses HTTP 2.0 over HTTP 1.x. The priority of HTTP 2.0 is higher than the priority of HTTP 1.1, and the priority of HTTP 1.1 is higher than the priority of HTTP 1.0.\n\n\u003e **NOTE:**  This parameter is required if AlpnEnabled is set to true.\n\n\u003e **NOTE:**  Effective only for TCPSSL listener.\n"},"caCertificateIds":{"type":"array","items":{"type":"string"},"description":"The list of certificate authority (CA) certificates. This parameter takes effect only for listeners that use SSL over TCP. \n\n\u003e **NOTE:**  Only one CA certificate is supported.\n"},"caEnabled":{"type":"boolean","description":"Specifies whether to enable mutual authentication. Valid values:\n"},"certificateIds":{"type":"array","items":{"type":"string"},"description":"The list of server certificates. This parameter takes effect only for listeners that use SSL over TCP. \n\n\u003e **NOTE:**  This parameter takes effect only for TCPSSL listeners.\n"},"cps":{"type":"integer","description":"The maximum number of connections that can be created per second on the NLB instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000000`\" pulumi-lang-dotnet=\"`1000000`\" pulumi-lang-go=\"`1000000`\" pulumi-lang-python=\"`1000000`\" pulumi-lang-yaml=\"`1000000`\" pulumi-lang-java=\"`1000000`\"\u003e`1000000`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e specifies that the number of connections is unlimited.\n"},"endPort":{"type":"integer","description":"The last port in the listener port range. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. The number of the last port must be greater than the number of the first port.\n\n\u003e **NOTE:**  This parameter is required when `ListenerPort` is set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n","willReplaceOnChanges":true},"idleTimeout":{"type":"integer","description":"The timeout period of idle connections. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e.\n"},"listenerDescription":{"type":"string","description":"Enter a name for the listener.\nThe description must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).\n"},"listenerPort":{"type":"integer","description":"The listener port. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\nIf you set the value to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, the listener listens by port range. If you set the value to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, you must specify `StartPort` and `EndPort`.\n","willReplaceOnChanges":true},"listenerProtocol":{"type":"string","description":"The listening protocol. Valid values: `TCP`, `UDP`, and `TCPSSL`.\n","willReplaceOnChanges":true},"loadBalancerId":{"type":"string","description":"The ID of the Network Load Balancer (NLB) instance.\n","willReplaceOnChanges":true},"mss":{"type":"integer","description":"The maximum size of a TCP segment. Unit: bytes. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1500`\" pulumi-lang-dotnet=\"`1500`\" pulumi-lang-go=\"`1500`\" pulumi-lang-python=\"`1500`\" pulumi-lang-yaml=\"`1500`\" pulumi-lang-java=\"`1500`\"\u003e`1500`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e specifies that the maximum segment size remains unchanged.\n\n\u003e **NOTE:**  This parameter is supported only by TCP listeners and listeners that use SSL over TCP.\n"},"proxyProtocolConfig":{"$ref":"#/types/alicloud:nlb/ListenerProxyProtocolConfig:ListenerProxyProtocolConfig","description":"The Proxy Protocol is used to carry the VpcId, PrivateLinkEpId, and PrivateLinkEpsId information to the backend server for configuration. See \u003cspan pulumi-lang-nodejs=\"`proxyProtocolConfig`\" pulumi-lang-dotnet=\"`ProxyProtocolConfig`\" pulumi-lang-go=\"`proxyProtocolConfig`\" pulumi-lang-python=\"`proxy_protocol_config`\" pulumi-lang-yaml=\"`proxyProtocolConfig`\" pulumi-lang-java=\"`proxyProtocolConfig`\"\u003e`proxy_protocol_config`\u003c/span\u003e below.\n"},"proxyProtocolEnabled":{"type":"boolean","description":"Specifies whether to use the Proxy protocol to pass client IP addresses to backend servers. Valid values:\n"},"regionId":{"type":"string","description":"The ID of the region where the Network Load Balancer (NLB) instance is deployed.\nYou can call the [DescribeRegions](https://www.alibabacloud.com/help/en/doc-detail/443657.html) operation to query the most recent region list.\n"},"secSensorEnabled":{"type":"boolean","description":"Specifies whether to enable fine-grained monitoring. Valid values:\n"},"securityPolicyId":{"type":"string","description":"The security policy ID. System security policies and custom security policies are supported.\n\nValid values: `tls_cipher_policy\\_1\\_0` (default), `tls_cipher_policy\\_1\\_1`, `tls_cipher_policy\\_1\\_2`, `tls_cipher_policy\\_1\\_2\\_strict`, and `tls_cipher_policy\\_1\\_2\\_strict_with\\_1\\_3`.\n\n\u003e **NOTE:**  This parameter takes effect only for listeners that use SSL over TCP.\n"},"serverGroupId":{"type":"string","description":"The ID of the server group.\n"},"startPort":{"type":"integer","description":"The first port in the listener port range. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n\n\u003e **NOTE:**  This parameter is required when `ListenerPort` is set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `Running`, `Stopped`. When you want to enable this instance, you can set the property value to `Running`;\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"}},"type":"object"}},"alicloud:nlb/listenerAdditionalCertificateAttachment:ListenerAdditionalCertificateAttachment":{"description":"Provides a NLB Listener Additional Certificate Attachment resource.\n\nFor information about NLB Listener Additional Certificate Attachment and how to use it, see [What is Listener Additional Certificate Attachment](https://www.alibabacloud.com/help/en/server-load-balancer/latest/nlb-instances-change).\n\n\u003e **NOTE:** Available since v1.209.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.nlb.getZones({});\nconst createVpc = new alicloud.vpc.Network(\"create_vpc\", {cidrBlock: \"172.16.0.0/12\"});\nconst createVswJ = new alicloud.vpc.Switch(\"create_vsw_j\", {\n    vpcId: createVpc.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    cidrBlock: \"172.16.1.0/24\",\n});\nconst createVswK = new alicloud.vpc.Switch(\"create_vsw_k\", {\n    vpcId: createVpc.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[1]?.id),\n    cidrBlock: \"172.16.2.0/24\",\n});\nconst lb = new alicloud.nlb.LoadBalancer(\"lb\", {\n    addressIpVersion: \"Ipv4\",\n    zoneMappings: [\n        {\n            vswitchId: createVswJ.id,\n            zoneId: createVswJ.zoneId,\n        },\n        {\n            vswitchId: createVswK.id,\n            zoneId: createVswK.zoneId,\n        },\n    ],\n    loadBalancerType: \"Network\",\n    loadBalancerName: name,\n    vpcId: createVpc.id,\n    addressType: \"Internet\",\n});\nconst createSg = new alicloud.nlb.ServerGroup(\"create_sg\", {\n    addressIpVersion: \"Ipv4\",\n    scheduler: \"Wrr\",\n    healthCheck: {},\n    serverGroupType: \"Instance\",\n    vpcId: createVpc.id,\n    protocol: \"TCPSSL\",\n    serverGroupName: name,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst ssl0 = new alicloud.cas.ServiceCertificate(\"ssl0\", {\n    cert: `-----BEGIN CERTIFICATE-----\nMIIDhDCCAmwCCQCwJW4JChLBqTANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC\nQ04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcMB0JlaWppbmcxDDAKBgNVBAoM\nA0FsaTEPMA0GA1UECwwGQWxpeXVuMRIwEAYDVQQDDAlUZXJyYWZvcm0xHTAbBgkq\nhkiG9w0BCQEWDjEyM0BhbGl5dW0uY29tMB4XDTI0MTIyNTA3MjQ0OFoXDTI3MTIy\nNTA3MjQ0OFowgYMxCzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdCZWlqaW5nMRAwDgYD\nVQQHDAdCZWlqaW5nMQwwCgYDVQQKDANBbGkxDzANBgNVBAsMBkFsaXl1bjESMBAG\nA1UEAwwJVGVycmFmb3JtMR0wGwYJKoZIhvcNAQkBFg4xMjNAYWxpeXVtLmNvbTCC\nASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK4UufXydtJZeW6lX9VahVIk\nifblYCVkFcFoderF2FtD5AeMZJ+v+chHc7RiV+U7P3o0Fzk+cg7OL9dSEYBrwHK4\n9yCwU/Mv+I/KsS8GjrRMOPjbrYvI0GjheEPJcILbt29tygrxX2PwV6FqWNknbGpk\nEj8L9zTL977IHBmgw8A2AeKlqV64s8ydAgGbWO3NTK64OlEJJNR+J+75uYskNT3s\n8DqaQV/IWlGAiUmGVeorWkrAWCfx2zSwI9jU8pNHtSF7PyxlbRy1ir2Lv1WnQKHf\nBnhr/wXwKOL5IJRVZ144Z9TdcoPo4GbFmYMSTwYFIbjYZ3yxoygeXMk0UXPZxVsC\nAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAVPA+Q0/5T6VzVw+MFXjCxXH1mWgd767w\nYWX4tvdGsTDkK6/ESm8m9GDp5F3p7Degk0isr9XkyzkWo/nPEPWQOeYR0kNTvpwY\nmKz9/aJwxalHS6O/8K2Ed6pZcXW0SUfjdH0/9YHw+vu4i2cQGTICzrKuEvyck40y\nfQocvFyw6O7W+tewLA4ntTuC6HhEQbC0p7zxGc3LSuayBgJrJiOAnGvFu+/OFQi+\nzEXi1xt8uQR6q5DQDsfqNCxpRKsCmU+POzNg2Y31GDMv4ZPerou5jXa1gh8/TVBT\nIX3OTy5aL4Ue8nBip3bVw+V/9L9xhmXbex6IMwwvrWI4OfMt6ECifQ==\n-----END CERTIFICATE-----\n`,\n    certificateName: std.join({\n        separator: \"-\",\n        input: [\n            name,\n            defaultInteger.result,\n            \"0\",\n        ],\n    }).then(invoke =\u003e invoke.result),\n    key: `-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEArhS59fJ20ll5bqVf1VqFUiSJ9uVgJWQVwWh16sXYW0PkB4xk\nn6/5yEdztGJX5Ts/ejQXOT5yDs4v11IRgGvAcrj3ILBT8y/4j8qxLwaOtEw4+Nut\ni8jQaOF4Q8lwgtu3b23KCvFfY/BXoWpY2SdsamQSPwv3NMv3vsgcGaDDwDYB4qWp\nXrizzJ0CAZtY7c1Mrrg6UQkk1H4n7vm5iyQ1PezwOppBX8haUYCJSYZV6itaSsBY\nJ/HbNLAj2NTyk0e1IXs/LGVtHLWKvYu/VadAod8GeGv/BfAo4vkglFVnXjhn1N1y\ng+jgZsWZgxJPBgUhuNhnfLGjKB5cyTRRc9nFWwIDAQABAoIBAC0D2Q6bc1RzpK4S\n/5QZQ055el+o8tLYbbPEwnFCVe9LwASfrkmI5OuAZpAnuhjh2ElOfQ7lcfMYKFDi\nvPnbYzmHUQhX8G17YygzvtutM2u2JilcDSWPeS0V2NaWmYyNKoMa/dsUjZk3RkHM\nUUteIW/ljr5U5sj1UYw5DOMnqlbicy2cPPY4g1QKGW5t3p5Lxw5ojgqynzi8EKMq\nj0apEoTXxmciOrwwiP2ynRTEN77+FUZkTvmxmSPoIfNTycDPRr4aUwVHV2d5FHPn\nd1MdjSoUPbHdOLfynwXqTz9OlvMSUDrBvs6k5ripGY9qvh9PrOdj7zLXVRQXUuOR\nYwoVHKECgYEA1NzNGifjW5cdcbkzc86QA9TM7yAyBmgnopzlm+dFIhxtJmydxN4V\n820x1Lkfe2vLCyYQ6fcEKAtjC9qdw+E2uzHAbtvnR4JseF3z1D82xw3MgGT9l3zc\nmMrgKmdCGGLWi6hboylX+2GBMVl2R0aRZrZje67jZcDXd06mlvW257ECgYEA0Vv1\nX3Ubn8XA3AA1ybem8fWNwEXfcYP1lJq0cX1gUXlpQvxWN61//aFZUCJZw5cEPArQ\nrEqhT81VCqXGO/by6D3fJD+4P8D6v6szJK2AGvXkZMfnJwAbHcOyGlxMin1CTJss\nZID0XI9xmbedm7Wi40+qXz8q4rs25kft9YjfzMsCgYBSPfE8vtaYJ52nt7+Kae+4\nmzqG1XCeixVtPaN1BfjvAf6mDucyDgB7KeBL6S6ht/ceGpoEW30On7+n79JuwRAt\naT6JVotYVKrmIp63jajzZYByxxI3unVcz12m5HhkBaQRF344XxvwMy8ASyloxnod\nLjDns52GTeix3wB8aPk/MQKBgGOQRwXpjISUKB64HtxacZN6ArqgwB2c8uqEFDIw\nvOCiS7Pmix4ZbdfxpqbcXzIMHKBtSEXXjBWGgd35bmfQDj7yRa9Yekgff2Ati7ny\npQytSbu/8abzfvHNwmKU6HWoEiKaXSdCyHNIaG8BCnwlilxt44k+YifHftlO9dSi\nDkS3AoGAYmF++8uEvQot5Yma4GraY+7ZyfWNLwClsOsrN2g19Vycg16fJk0olwDx\n2kRWKqNn99HJJwiLie1nvsDRJLbmzmI91Pttpu/EYFDJ8OYQOr1OhhPwwTygf+7S\n1o2RTXu3gKNG6fxOtHFatws3IzvovOASYyJR5XP2sIJURLOrSN0=\n-----END RSA PRIVATE KEY-----\n`,\n});\nconst createListener = new alicloud.nlb.Listener(\"create_listener\", {\n    listenerPort: 443,\n    serverGroupId: createSg.id,\n    loadBalancerId: lb.id,\n    listenerProtocol: \"TCPSSL\",\n    certificateIds: [pulumi.interpolate`${ssl0.id}-cn-hangzhou`],\n    caCertificateIds: [],\n});\nconst ssl = new alicloud.cas.ServiceCertificate(\"ssl\", {\n    cert: `-----BEGIN CERTIFICATE-----\nMIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\nBAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\nMA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\nZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\ndjELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\nChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\nAoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\ncoG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\nKOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\nHQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n+OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\nQkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\nMAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\nAJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\ncQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\nOfi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\nDUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n-----END CERTIFICATE-----\n`,\n    certificateName: std.join({\n        separator: \"-\",\n        input: [\n            name,\n            defaultInteger.result,\n            \"1\",\n        ],\n    }).then(invoke =\u003e invoke.result),\n    key: `-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV\nkg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM\nywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB\nAoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd\n6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP\nhwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4\nMdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz\n71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm\nEv9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE\nqygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8\n9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM\nzWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe\nDrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=\n-----END RSA PRIVATE KEY-----\n`,\n});\nconst defaultListenerAdditionalCertificateAttachment = new alicloud.nlb.ListenerAdditionalCertificateAttachment(\"default\", {\n    certificateId: ssl.id,\n    listenerId: createListener.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.nlb.get_zones()\ncreate_vpc = alicloud.vpc.Network(\"create_vpc\", cidr_block=\"172.16.0.0/12\")\ncreate_vsw_j = alicloud.vpc.Switch(\"create_vsw_j\",\n    vpc_id=create_vpc.id,\n    zone_id=default.zones[0].id,\n    cidr_block=\"172.16.1.0/24\")\ncreate_vsw_k = alicloud.vpc.Switch(\"create_vsw_k\",\n    vpc_id=create_vpc.id,\n    zone_id=default.zones[1].id,\n    cidr_block=\"172.16.2.0/24\")\nlb = alicloud.nlb.LoadBalancer(\"lb\",\n    address_ip_version=\"Ipv4\",\n    zone_mappings=[\n        {\n            \"vswitch_id\": create_vsw_j.id,\n            \"zone_id\": create_vsw_j.zone_id,\n        },\n        {\n            \"vswitch_id\": create_vsw_k.id,\n            \"zone_id\": create_vsw_k.zone_id,\n        },\n    ],\n    load_balancer_type=\"Network\",\n    load_balancer_name=name,\n    vpc_id=create_vpc.id,\n    address_type=\"Internet\")\ncreate_sg = alicloud.nlb.ServerGroup(\"create_sg\",\n    address_ip_version=\"Ipv4\",\n    scheduler=\"Wrr\",\n    health_check={},\n    server_group_type=\"Instance\",\n    vpc_id=create_vpc.id,\n    protocol=\"TCPSSL\",\n    server_group_name=name)\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nssl0 = alicloud.cas.ServiceCertificate(\"ssl0\",\n    cert=\"\"\"-----BEGIN CERTIFICATE-----\nMIIDhDCCAmwCCQCwJW4JChLBqTANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC\nQ04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcMB0JlaWppbmcxDDAKBgNVBAoM\nA0FsaTEPMA0GA1UECwwGQWxpeXVuMRIwEAYDVQQDDAlUZXJyYWZvcm0xHTAbBgkq\nhkiG9w0BCQEWDjEyM0BhbGl5dW0uY29tMB4XDTI0MTIyNTA3MjQ0OFoXDTI3MTIy\nNTA3MjQ0OFowgYMxCzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdCZWlqaW5nMRAwDgYD\nVQQHDAdCZWlqaW5nMQwwCgYDVQQKDANBbGkxDzANBgNVBAsMBkFsaXl1bjESMBAG\nA1UEAwwJVGVycmFmb3JtMR0wGwYJKoZIhvcNAQkBFg4xMjNAYWxpeXVtLmNvbTCC\nASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK4UufXydtJZeW6lX9VahVIk\nifblYCVkFcFoderF2FtD5AeMZJ+v+chHc7RiV+U7P3o0Fzk+cg7OL9dSEYBrwHK4\n9yCwU/Mv+I/KsS8GjrRMOPjbrYvI0GjheEPJcILbt29tygrxX2PwV6FqWNknbGpk\nEj8L9zTL977IHBmgw8A2AeKlqV64s8ydAgGbWO3NTK64OlEJJNR+J+75uYskNT3s\n8DqaQV/IWlGAiUmGVeorWkrAWCfx2zSwI9jU8pNHtSF7PyxlbRy1ir2Lv1WnQKHf\nBnhr/wXwKOL5IJRVZ144Z9TdcoPo4GbFmYMSTwYFIbjYZ3yxoygeXMk0UXPZxVsC\nAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAVPA+Q0/5T6VzVw+MFXjCxXH1mWgd767w\nYWX4tvdGsTDkK6/ESm8m9GDp5F3p7Degk0isr9XkyzkWo/nPEPWQOeYR0kNTvpwY\nmKz9/aJwxalHS6O/8K2Ed6pZcXW0SUfjdH0/9YHw+vu4i2cQGTICzrKuEvyck40y\nfQocvFyw6O7W+tewLA4ntTuC6HhEQbC0p7zxGc3LSuayBgJrJiOAnGvFu+/OFQi+\nzEXi1xt8uQR6q5DQDsfqNCxpRKsCmU+POzNg2Y31GDMv4ZPerou5jXa1gh8/TVBT\nIX3OTy5aL4Ue8nBip3bVw+V/9L9xhmXbex6IMwwvrWI4OfMt6ECifQ==\n-----END CERTIFICATE-----\n\"\"\",\n    certificate_name=std.join(separator=\"-\",\n        input=[\n            name,\n            default_integer[\"result\"],\n            0,\n        ]).result,\n    key=\"\"\"-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEArhS59fJ20ll5bqVf1VqFUiSJ9uVgJWQVwWh16sXYW0PkB4xk\nn6/5yEdztGJX5Ts/ejQXOT5yDs4v11IRgGvAcrj3ILBT8y/4j8qxLwaOtEw4+Nut\ni8jQaOF4Q8lwgtu3b23KCvFfY/BXoWpY2SdsamQSPwv3NMv3vsgcGaDDwDYB4qWp\nXrizzJ0CAZtY7c1Mrrg6UQkk1H4n7vm5iyQ1PezwOppBX8haUYCJSYZV6itaSsBY\nJ/HbNLAj2NTyk0e1IXs/LGVtHLWKvYu/VadAod8GeGv/BfAo4vkglFVnXjhn1N1y\ng+jgZsWZgxJPBgUhuNhnfLGjKB5cyTRRc9nFWwIDAQABAoIBAC0D2Q6bc1RzpK4S\n/5QZQ055el+o8tLYbbPEwnFCVe9LwASfrkmI5OuAZpAnuhjh2ElOfQ7lcfMYKFDi\nvPnbYzmHUQhX8G17YygzvtutM2u2JilcDSWPeS0V2NaWmYyNKoMa/dsUjZk3RkHM\nUUteIW/ljr5U5sj1UYw5DOMnqlbicy2cPPY4g1QKGW5t3p5Lxw5ojgqynzi8EKMq\nj0apEoTXxmciOrwwiP2ynRTEN77+FUZkTvmxmSPoIfNTycDPRr4aUwVHV2d5FHPn\nd1MdjSoUPbHdOLfynwXqTz9OlvMSUDrBvs6k5ripGY9qvh9PrOdj7zLXVRQXUuOR\nYwoVHKECgYEA1NzNGifjW5cdcbkzc86QA9TM7yAyBmgnopzlm+dFIhxtJmydxN4V\n820x1Lkfe2vLCyYQ6fcEKAtjC9qdw+E2uzHAbtvnR4JseF3z1D82xw3MgGT9l3zc\nmMrgKmdCGGLWi6hboylX+2GBMVl2R0aRZrZje67jZcDXd06mlvW257ECgYEA0Vv1\nX3Ubn8XA3AA1ybem8fWNwEXfcYP1lJq0cX1gUXlpQvxWN61//aFZUCJZw5cEPArQ\nrEqhT81VCqXGO/by6D3fJD+4P8D6v6szJK2AGvXkZMfnJwAbHcOyGlxMin1CTJss\nZID0XI9xmbedm7Wi40+qXz8q4rs25kft9YjfzMsCgYBSPfE8vtaYJ52nt7+Kae+4\nmzqG1XCeixVtPaN1BfjvAf6mDucyDgB7KeBL6S6ht/ceGpoEW30On7+n79JuwRAt\naT6JVotYVKrmIp63jajzZYByxxI3unVcz12m5HhkBaQRF344XxvwMy8ASyloxnod\nLjDns52GTeix3wB8aPk/MQKBgGOQRwXpjISUKB64HtxacZN6ArqgwB2c8uqEFDIw\nvOCiS7Pmix4ZbdfxpqbcXzIMHKBtSEXXjBWGgd35bmfQDj7yRa9Yekgff2Ati7ny\npQytSbu/8abzfvHNwmKU6HWoEiKaXSdCyHNIaG8BCnwlilxt44k+YifHftlO9dSi\nDkS3AoGAYmF++8uEvQot5Yma4GraY+7ZyfWNLwClsOsrN2g19Vycg16fJk0olwDx\n2kRWKqNn99HJJwiLie1nvsDRJLbmzmI91Pttpu/EYFDJ8OYQOr1OhhPwwTygf+7S\n1o2RTXu3gKNG6fxOtHFatws3IzvovOASYyJR5XP2sIJURLOrSN0=\n-----END RSA PRIVATE KEY-----\n\"\"\")\ncreate_listener = alicloud.nlb.Listener(\"create_listener\",\n    listener_port=443,\n    server_group_id=create_sg.id,\n    load_balancer_id=lb.id,\n    listener_protocol=\"TCPSSL\",\n    certificate_ids=[ssl0.id.apply(lambda id: f\"{id}-cn-hangzhou\")],\n    ca_certificate_ids=[])\nssl = alicloud.cas.ServiceCertificate(\"ssl\",\n    cert=\"\"\"-----BEGIN CERTIFICATE-----\nMIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\nBAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\nMA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\nZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\ndjELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\nChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\nAoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\ncoG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\nKOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\nHQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n+OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\nQkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\nMAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\nAJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\ncQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\nOfi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\nDUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n-----END CERTIFICATE-----\n\"\"\",\n    certificate_name=std.join(separator=\"-\",\n        input=[\n            name,\n            default_integer[\"result\"],\n            1,\n        ]).result,\n    key=\"\"\"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV\nkg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM\nywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB\nAoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd\n6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP\nhwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4\nMdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz\n71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm\nEv9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE\nqygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8\n9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM\nzWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe\nDrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=\n-----END RSA PRIVATE KEY-----\n\"\"\")\ndefault_listener_additional_certificate_attachment = alicloud.nlb.ListenerAdditionalCertificateAttachment(\"default\",\n    certificate_id=ssl.id,\n    listener_id=create_listener.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Nlb.GetZones.Invoke();\n\n    var createVpc = new AliCloud.Vpc.Network(\"create_vpc\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var createVswJ = new AliCloud.Vpc.Switch(\"create_vsw_j\", new()\n    {\n        VpcId = createVpc.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        CidrBlock = \"172.16.1.0/24\",\n    });\n\n    var createVswK = new AliCloud.Vpc.Switch(\"create_vsw_k\", new()\n    {\n        VpcId = createVpc.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id)),\n        CidrBlock = \"172.16.2.0/24\",\n    });\n\n    var lb = new AliCloud.Nlb.LoadBalancer(\"lb\", new()\n    {\n        AddressIpVersion = \"Ipv4\",\n        ZoneMappings = new[]\n        {\n            new AliCloud.Nlb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = createVswJ.Id,\n                ZoneId = createVswJ.ZoneId,\n            },\n            new AliCloud.Nlb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = createVswK.Id,\n                ZoneId = createVswK.ZoneId,\n            },\n        },\n        LoadBalancerType = \"Network\",\n        LoadBalancerName = name,\n        VpcId = createVpc.Id,\n        AddressType = \"Internet\",\n    });\n\n    var createSg = new AliCloud.Nlb.ServerGroup(\"create_sg\", new()\n    {\n        AddressIpVersion = \"Ipv4\",\n        Scheduler = \"Wrr\",\n        HealthCheck = null,\n        ServerGroupType = \"Instance\",\n        VpcId = createVpc.Id,\n        Protocol = \"TCPSSL\",\n        ServerGroupName = name,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var ssl0 = new AliCloud.Cas.ServiceCertificate(\"ssl0\", new()\n    {\n        Cert = @\"-----BEGIN CERTIFICATE-----\nMIIDhDCCAmwCCQCwJW4JChLBqTANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC\nQ04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcMB0JlaWppbmcxDDAKBgNVBAoM\nA0FsaTEPMA0GA1UECwwGQWxpeXVuMRIwEAYDVQQDDAlUZXJyYWZvcm0xHTAbBgkq\nhkiG9w0BCQEWDjEyM0BhbGl5dW0uY29tMB4XDTI0MTIyNTA3MjQ0OFoXDTI3MTIy\nNTA3MjQ0OFowgYMxCzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdCZWlqaW5nMRAwDgYD\nVQQHDAdCZWlqaW5nMQwwCgYDVQQKDANBbGkxDzANBgNVBAsMBkFsaXl1bjESMBAG\nA1UEAwwJVGVycmFmb3JtMR0wGwYJKoZIhvcNAQkBFg4xMjNAYWxpeXVtLmNvbTCC\nASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK4UufXydtJZeW6lX9VahVIk\nifblYCVkFcFoderF2FtD5AeMZJ+v+chHc7RiV+U7P3o0Fzk+cg7OL9dSEYBrwHK4\n9yCwU/Mv+I/KsS8GjrRMOPjbrYvI0GjheEPJcILbt29tygrxX2PwV6FqWNknbGpk\nEj8L9zTL977IHBmgw8A2AeKlqV64s8ydAgGbWO3NTK64OlEJJNR+J+75uYskNT3s\n8DqaQV/IWlGAiUmGVeorWkrAWCfx2zSwI9jU8pNHtSF7PyxlbRy1ir2Lv1WnQKHf\nBnhr/wXwKOL5IJRVZ144Z9TdcoPo4GbFmYMSTwYFIbjYZ3yxoygeXMk0UXPZxVsC\nAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAVPA+Q0/5T6VzVw+MFXjCxXH1mWgd767w\nYWX4tvdGsTDkK6/ESm8m9GDp5F3p7Degk0isr9XkyzkWo/nPEPWQOeYR0kNTvpwY\nmKz9/aJwxalHS6O/8K2Ed6pZcXW0SUfjdH0/9YHw+vu4i2cQGTICzrKuEvyck40y\nfQocvFyw6O7W+tewLA4ntTuC6HhEQbC0p7zxGc3LSuayBgJrJiOAnGvFu+/OFQi+\nzEXi1xt8uQR6q5DQDsfqNCxpRKsCmU+POzNg2Y31GDMv4ZPerou5jXa1gh8/TVBT\nIX3OTy5aL4Ue8nBip3bVw+V/9L9xhmXbex6IMwwvrWI4OfMt6ECifQ==\n-----END CERTIFICATE-----\n\",\n        CertificateName = Std.Join.Invoke(new()\n        {\n            Separator = \"-\",\n            Input = new[]\n            {\n                name,\n                defaultInteger.Result,\n                \"0\",\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        Key = @\"-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEArhS59fJ20ll5bqVf1VqFUiSJ9uVgJWQVwWh16sXYW0PkB4xk\nn6/5yEdztGJX5Ts/ejQXOT5yDs4v11IRgGvAcrj3ILBT8y/4j8qxLwaOtEw4+Nut\ni8jQaOF4Q8lwgtu3b23KCvFfY/BXoWpY2SdsamQSPwv3NMv3vsgcGaDDwDYB4qWp\nXrizzJ0CAZtY7c1Mrrg6UQkk1H4n7vm5iyQ1PezwOppBX8haUYCJSYZV6itaSsBY\nJ/HbNLAj2NTyk0e1IXs/LGVtHLWKvYu/VadAod8GeGv/BfAo4vkglFVnXjhn1N1y\ng+jgZsWZgxJPBgUhuNhnfLGjKB5cyTRRc9nFWwIDAQABAoIBAC0D2Q6bc1RzpK4S\n/5QZQ055el+o8tLYbbPEwnFCVe9LwASfrkmI5OuAZpAnuhjh2ElOfQ7lcfMYKFDi\nvPnbYzmHUQhX8G17YygzvtutM2u2JilcDSWPeS0V2NaWmYyNKoMa/dsUjZk3RkHM\nUUteIW/ljr5U5sj1UYw5DOMnqlbicy2cPPY4g1QKGW5t3p5Lxw5ojgqynzi8EKMq\nj0apEoTXxmciOrwwiP2ynRTEN77+FUZkTvmxmSPoIfNTycDPRr4aUwVHV2d5FHPn\nd1MdjSoUPbHdOLfynwXqTz9OlvMSUDrBvs6k5ripGY9qvh9PrOdj7zLXVRQXUuOR\nYwoVHKECgYEA1NzNGifjW5cdcbkzc86QA9TM7yAyBmgnopzlm+dFIhxtJmydxN4V\n820x1Lkfe2vLCyYQ6fcEKAtjC9qdw+E2uzHAbtvnR4JseF3z1D82xw3MgGT9l3zc\nmMrgKmdCGGLWi6hboylX+2GBMVl2R0aRZrZje67jZcDXd06mlvW257ECgYEA0Vv1\nX3Ubn8XA3AA1ybem8fWNwEXfcYP1lJq0cX1gUXlpQvxWN61//aFZUCJZw5cEPArQ\nrEqhT81VCqXGO/by6D3fJD+4P8D6v6szJK2AGvXkZMfnJwAbHcOyGlxMin1CTJss\nZID0XI9xmbedm7Wi40+qXz8q4rs25kft9YjfzMsCgYBSPfE8vtaYJ52nt7+Kae+4\nmzqG1XCeixVtPaN1BfjvAf6mDucyDgB7KeBL6S6ht/ceGpoEW30On7+n79JuwRAt\naT6JVotYVKrmIp63jajzZYByxxI3unVcz12m5HhkBaQRF344XxvwMy8ASyloxnod\nLjDns52GTeix3wB8aPk/MQKBgGOQRwXpjISUKB64HtxacZN6ArqgwB2c8uqEFDIw\nvOCiS7Pmix4ZbdfxpqbcXzIMHKBtSEXXjBWGgd35bmfQDj7yRa9Yekgff2Ati7ny\npQytSbu/8abzfvHNwmKU6HWoEiKaXSdCyHNIaG8BCnwlilxt44k+YifHftlO9dSi\nDkS3AoGAYmF++8uEvQot5Yma4GraY+7ZyfWNLwClsOsrN2g19Vycg16fJk0olwDx\n2kRWKqNn99HJJwiLie1nvsDRJLbmzmI91Pttpu/EYFDJ8OYQOr1OhhPwwTygf+7S\n1o2RTXu3gKNG6fxOtHFatws3IzvovOASYyJR5XP2sIJURLOrSN0=\n-----END RSA PRIVATE KEY-----\n\",\n    });\n\n    var createListener = new AliCloud.Nlb.Listener(\"create_listener\", new()\n    {\n        ListenerPort = 443,\n        ServerGroupId = createSg.Id,\n        LoadBalancerId = lb.Id,\n        ListenerProtocol = \"TCPSSL\",\n        CertificateIds = new[]\n        {\n            ssl0.Id.Apply(id =\u003e $\"{id}-cn-hangzhou\"),\n        },\n        CaCertificateIds = new[] {},\n    });\n\n    var ssl = new AliCloud.Cas.ServiceCertificate(\"ssl\", new()\n    {\n        Cert = @\"-----BEGIN CERTIFICATE-----\nMIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\nBAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\nMA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\nZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\ndjELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\nChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\nAoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\ncoG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\nKOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\nHQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n+OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\nQkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\nMAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\nAJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\ncQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\nOfi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\nDUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n-----END CERTIFICATE-----\n\",\n        CertificateName = Std.Join.Invoke(new()\n        {\n            Separator = \"-\",\n            Input = new[]\n            {\n                name,\n                defaultInteger.Result,\n                \"1\",\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        Key = @\"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV\nkg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM\nywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB\nAoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd\n6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP\nhwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4\nMdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz\n71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm\nEv9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE\nqygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8\n9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM\nzWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe\nDrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=\n-----END RSA PRIVATE KEY-----\n\",\n    });\n\n    var defaultListenerAdditionalCertificateAttachment = new AliCloud.Nlb.ListenerAdditionalCertificateAttachment(\"default\", new()\n    {\n        CertificateId = ssl.Id,\n        ListenerId = createListener.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := nlb.GetZones(ctx, \u0026nlb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateVpc, err := vpc.NewNetwork(ctx, \"create_vpc\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateVswJ, err := vpc.NewSwitch(ctx, \"create_vsw_j\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     createVpc.ID(),\n\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t\tCidrBlock: pulumi.String(\"172.16.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateVswK, err := vpc.NewSwitch(ctx, \"create_vsw_k\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     createVpc.ID(),\n\t\t\tZoneId:    pulumi.String(_default.Zones[1].Id),\n\t\t\tCidrBlock: pulumi.String(\"172.16.2.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlb, err := nlb.NewLoadBalancer(ctx, \"lb\", \u0026nlb.LoadBalancerArgs{\n\t\t\tAddressIpVersion: pulumi.String(\"Ipv4\"),\n\t\t\tZoneMappings: nlb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026nlb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: createVswJ.ID(),\n\t\t\t\t\tZoneId:    createVswJ.ZoneId,\n\t\t\t\t},\n\t\t\t\t\u0026nlb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: createVswK.ID(),\n\t\t\t\t\tZoneId:    createVswK.ZoneId,\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancerType: pulumi.String(\"Network\"),\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tVpcId:            createVpc.ID(),\n\t\t\tAddressType:      pulumi.String(\"Internet\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateSg, err := nlb.NewServerGroup(ctx, \"create_sg\", \u0026nlb.ServerGroupArgs{\n\t\t\tAddressIpVersion: pulumi.String(\"Ipv4\"),\n\t\t\tScheduler:        pulumi.String(\"Wrr\"),\n\t\t\tHealthCheck:      \u0026nlb.ServerGroupHealthCheckArgs{},\n\t\t\tServerGroupType:  pulumi.String(\"Instance\"),\n\t\t\tVpcId:            createVpc.ID(),\n\t\t\tProtocol:         pulumi.String(\"TCPSSL\"),\n\t\t\tServerGroupName:  pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeJoin, err := std.Join(ctx, \u0026std.JoinArgs{\n\t\t\tSeparator: \"-\",\n\t\t\tInput: []interface{}{\n\t\t\t\tname,\n\t\t\t\tdefaultInteger.Result,\n\t\t\t\t0,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tssl0, err := cas.NewServiceCertificate(ctx, \"ssl0\", \u0026cas.ServiceCertificateArgs{\n\t\t\tCert: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIDhDCCAmwCCQCwJW4JChLBqTANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC\nQ04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcMB0JlaWppbmcxDDAKBgNVBAoM\nA0FsaTEPMA0GA1UECwwGQWxpeXVuMRIwEAYDVQQDDAlUZXJyYWZvcm0xHTAbBgkq\nhkiG9w0BCQEWDjEyM0BhbGl5dW0uY29tMB4XDTI0MTIyNTA3MjQ0OFoXDTI3MTIy\nNTA3MjQ0OFowgYMxCzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdCZWlqaW5nMRAwDgYD\nVQQHDAdCZWlqaW5nMQwwCgYDVQQKDANBbGkxDzANBgNVBAsMBkFsaXl1bjESMBAG\nA1UEAwwJVGVycmFmb3JtMR0wGwYJKoZIhvcNAQkBFg4xMjNAYWxpeXVtLmNvbTCC\nASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK4UufXydtJZeW6lX9VahVIk\nifblYCVkFcFoderF2FtD5AeMZJ+v+chHc7RiV+U7P3o0Fzk+cg7OL9dSEYBrwHK4\n9yCwU/Mv+I/KsS8GjrRMOPjbrYvI0GjheEPJcILbt29tygrxX2PwV6FqWNknbGpk\nEj8L9zTL977IHBmgw8A2AeKlqV64s8ydAgGbWO3NTK64OlEJJNR+J+75uYskNT3s\n8DqaQV/IWlGAiUmGVeorWkrAWCfx2zSwI9jU8pNHtSF7PyxlbRy1ir2Lv1WnQKHf\nBnhr/wXwKOL5IJRVZ144Z9TdcoPo4GbFmYMSTwYFIbjYZ3yxoygeXMk0UXPZxVsC\nAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAVPA+Q0/5T6VzVw+MFXjCxXH1mWgd767w\nYWX4tvdGsTDkK6/ESm8m9GDp5F3p7Degk0isr9XkyzkWo/nPEPWQOeYR0kNTvpwY\nmKz9/aJwxalHS6O/8K2Ed6pZcXW0SUfjdH0/9YHw+vu4i2cQGTICzrKuEvyck40y\nfQocvFyw6O7W+tewLA4ntTuC6HhEQbC0p7zxGc3LSuayBgJrJiOAnGvFu+/OFQi+\nzEXi1xt8uQR6q5DQDsfqNCxpRKsCmU+POzNg2Y31GDMv4ZPerou5jXa1gh8/TVBT\nIX3OTy5aL4Ue8nBip3bVw+V/9L9xhmXbex6IMwwvrWI4OfMt6ECifQ==\n-----END CERTIFICATE-----\n`),\n\t\t\tCertificateName: pulumi.String(invokeJoin.Result),\n\t\t\tKey: pulumi.String(`-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEArhS59fJ20ll5bqVf1VqFUiSJ9uVgJWQVwWh16sXYW0PkB4xk\nn6/5yEdztGJX5Ts/ejQXOT5yDs4v11IRgGvAcrj3ILBT8y/4j8qxLwaOtEw4+Nut\ni8jQaOF4Q8lwgtu3b23KCvFfY/BXoWpY2SdsamQSPwv3NMv3vsgcGaDDwDYB4qWp\nXrizzJ0CAZtY7c1Mrrg6UQkk1H4n7vm5iyQ1PezwOppBX8haUYCJSYZV6itaSsBY\nJ/HbNLAj2NTyk0e1IXs/LGVtHLWKvYu/VadAod8GeGv/BfAo4vkglFVnXjhn1N1y\ng+jgZsWZgxJPBgUhuNhnfLGjKB5cyTRRc9nFWwIDAQABAoIBAC0D2Q6bc1RzpK4S\n/5QZQ055el+o8tLYbbPEwnFCVe9LwASfrkmI5OuAZpAnuhjh2ElOfQ7lcfMYKFDi\nvPnbYzmHUQhX8G17YygzvtutM2u2JilcDSWPeS0V2NaWmYyNKoMa/dsUjZk3RkHM\nUUteIW/ljr5U5sj1UYw5DOMnqlbicy2cPPY4g1QKGW5t3p5Lxw5ojgqynzi8EKMq\nj0apEoTXxmciOrwwiP2ynRTEN77+FUZkTvmxmSPoIfNTycDPRr4aUwVHV2d5FHPn\nd1MdjSoUPbHdOLfynwXqTz9OlvMSUDrBvs6k5ripGY9qvh9PrOdj7zLXVRQXUuOR\nYwoVHKECgYEA1NzNGifjW5cdcbkzc86QA9TM7yAyBmgnopzlm+dFIhxtJmydxN4V\n820x1Lkfe2vLCyYQ6fcEKAtjC9qdw+E2uzHAbtvnR4JseF3z1D82xw3MgGT9l3zc\nmMrgKmdCGGLWi6hboylX+2GBMVl2R0aRZrZje67jZcDXd06mlvW257ECgYEA0Vv1\nX3Ubn8XA3AA1ybem8fWNwEXfcYP1lJq0cX1gUXlpQvxWN61//aFZUCJZw5cEPArQ\nrEqhT81VCqXGO/by6D3fJD+4P8D6v6szJK2AGvXkZMfnJwAbHcOyGlxMin1CTJss\nZID0XI9xmbedm7Wi40+qXz8q4rs25kft9YjfzMsCgYBSPfE8vtaYJ52nt7+Kae+4\nmzqG1XCeixVtPaN1BfjvAf6mDucyDgB7KeBL6S6ht/ceGpoEW30On7+n79JuwRAt\naT6JVotYVKrmIp63jajzZYByxxI3unVcz12m5HhkBaQRF344XxvwMy8ASyloxnod\nLjDns52GTeix3wB8aPk/MQKBgGOQRwXpjISUKB64HtxacZN6ArqgwB2c8uqEFDIw\nvOCiS7Pmix4ZbdfxpqbcXzIMHKBtSEXXjBWGgd35bmfQDj7yRa9Yekgff2Ati7ny\npQytSbu/8abzfvHNwmKU6HWoEiKaXSdCyHNIaG8BCnwlilxt44k+YifHftlO9dSi\nDkS3AoGAYmF++8uEvQot5Yma4GraY+7ZyfWNLwClsOsrN2g19Vycg16fJk0olwDx\n2kRWKqNn99HJJwiLie1nvsDRJLbmzmI91Pttpu/EYFDJ8OYQOr1OhhPwwTygf+7S\n1o2RTXu3gKNG6fxOtHFatws3IzvovOASYyJR5XP2sIJURLOrSN0=\n-----END RSA PRIVATE KEY-----\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateListener, err := nlb.NewListener(ctx, \"create_listener\", \u0026nlb.ListenerArgs{\n\t\t\tListenerPort:     pulumi.Int(443),\n\t\t\tServerGroupId:    createSg.ID(),\n\t\t\tLoadBalancerId:   lb.ID(),\n\t\t\tListenerProtocol: pulumi.String(\"TCPSSL\"),\n\t\t\tCertificateIds: pulumi.StringArray{\n\t\t\t\tssl0.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"%v-cn-hangzhou\", id), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t\tCaCertificateIds: pulumi.StringArray{},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeJoin1, err := std.Join(ctx, \u0026std.JoinArgs{\n\t\t\tSeparator: \"-\",\n\t\t\tInput: []interface{}{\n\t\t\t\tname,\n\t\t\t\tdefaultInteger.Result,\n\t\t\t\t1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tssl, err := cas.NewServiceCertificate(ctx, \"ssl\", \u0026cas.ServiceCertificateArgs{\n\t\t\tCert: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\nBAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\nMA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\nZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\ndjELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\nChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\nAoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\ncoG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\nKOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\nHQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n+OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\nQkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\nMAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\nAJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\ncQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\nOfi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\nDUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n-----END CERTIFICATE-----\n`),\n\t\t\tCertificateName: pulumi.String(invokeJoin1.Result),\n\t\t\tKey: pulumi.String(`-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV\nkg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM\nywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB\nAoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd\n6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP\nhwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4\nMdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz\n71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm\nEv9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE\nqygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8\n9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM\nzWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe\nDrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=\n-----END RSA PRIVATE KEY-----\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nlb.NewListenerAdditionalCertificateAttachment(ctx, \"default\", \u0026nlb.ListenerAdditionalCertificateAttachmentArgs{\n\t\t\tCertificateId: ssl.ID(),\n\t\t\tListenerId:    createListener.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nlb.NlbFunctions;\nimport com.pulumi.alicloud.nlb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.nlb.LoadBalancer;\nimport com.pulumi.alicloud.nlb.LoadBalancerArgs;\nimport com.pulumi.alicloud.nlb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.nlb.ServerGroup;\nimport com.pulumi.alicloud.nlb.ServerGroupArgs;\nimport com.pulumi.alicloud.nlb.inputs.ServerGroupHealthCheckArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cas.ServiceCertificate;\nimport com.pulumi.alicloud.cas.ServiceCertificateArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.JoinArgs;\nimport com.pulumi.alicloud.nlb.Listener;\nimport com.pulumi.alicloud.nlb.ListenerArgs;\nimport com.pulumi.alicloud.nlb.ListenerAdditionalCertificateAttachment;\nimport com.pulumi.alicloud.nlb.ListenerAdditionalCertificateAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = NlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var createVpc = new Network(\"createVpc\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var createVswJ = new Switch(\"createVswJ\", SwitchArgs.builder()\n            .vpcId(createVpc.id())\n            .zoneId(default_.zones()[0].id())\n            .cidrBlock(\"172.16.1.0/24\")\n            .build());\n\n        var createVswK = new Switch(\"createVswK\", SwitchArgs.builder()\n            .vpcId(createVpc.id())\n            .zoneId(default_.zones()[1].id())\n            .cidrBlock(\"172.16.2.0/24\")\n            .build());\n\n        var lb = new LoadBalancer(\"lb\", LoadBalancerArgs.builder()\n            .addressIpVersion(\"Ipv4\")\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(createVswJ.id())\n                    .zoneId(createVswJ.zoneId())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(createVswK.id())\n                    .zoneId(createVswK.zoneId())\n                    .build())\n            .loadBalancerType(\"Network\")\n            .loadBalancerName(name)\n            .vpcId(createVpc.id())\n            .addressType(\"Internet\")\n            .build());\n\n        var createSg = new ServerGroup(\"createSg\", ServerGroupArgs.builder()\n            .addressIpVersion(\"Ipv4\")\n            .scheduler(\"Wrr\")\n            .healthCheck(ServerGroupHealthCheckArgs.builder()\n                .build())\n            .serverGroupType(\"Instance\")\n            .vpcId(createVpc.id())\n            .protocol(\"TCPSSL\")\n            .serverGroupName(name)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var ssl0 = new ServiceCertificate(\"ssl0\", ServiceCertificateArgs.builder()\n            .cert(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIDhDCCAmwCCQCwJW4JChLBqTANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC\nQ04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcMB0JlaWppbmcxDDAKBgNVBAoM\nA0FsaTEPMA0GA1UECwwGQWxpeXVuMRIwEAYDVQQDDAlUZXJyYWZvcm0xHTAbBgkq\nhkiG9w0BCQEWDjEyM0BhbGl5dW0uY29tMB4XDTI0MTIyNTA3MjQ0OFoXDTI3MTIy\nNTA3MjQ0OFowgYMxCzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdCZWlqaW5nMRAwDgYD\nVQQHDAdCZWlqaW5nMQwwCgYDVQQKDANBbGkxDzANBgNVBAsMBkFsaXl1bjESMBAG\nA1UEAwwJVGVycmFmb3JtMR0wGwYJKoZIhvcNAQkBFg4xMjNAYWxpeXVtLmNvbTCC\nASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK4UufXydtJZeW6lX9VahVIk\nifblYCVkFcFoderF2FtD5AeMZJ+v+chHc7RiV+U7P3o0Fzk+cg7OL9dSEYBrwHK4\n9yCwU/Mv+I/KsS8GjrRMOPjbrYvI0GjheEPJcILbt29tygrxX2PwV6FqWNknbGpk\nEj8L9zTL977IHBmgw8A2AeKlqV64s8ydAgGbWO3NTK64OlEJJNR+J+75uYskNT3s\n8DqaQV/IWlGAiUmGVeorWkrAWCfx2zSwI9jU8pNHtSF7PyxlbRy1ir2Lv1WnQKHf\nBnhr/wXwKOL5IJRVZ144Z9TdcoPo4GbFmYMSTwYFIbjYZ3yxoygeXMk0UXPZxVsC\nAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAVPA+Q0/5T6VzVw+MFXjCxXH1mWgd767w\nYWX4tvdGsTDkK6/ESm8m9GDp5F3p7Degk0isr9XkyzkWo/nPEPWQOeYR0kNTvpwY\nmKz9/aJwxalHS6O/8K2Ed6pZcXW0SUfjdH0/9YHw+vu4i2cQGTICzrKuEvyck40y\nfQocvFyw6O7W+tewLA4ntTuC6HhEQbC0p7zxGc3LSuayBgJrJiOAnGvFu+/OFQi+\nzEXi1xt8uQR6q5DQDsfqNCxpRKsCmU+POzNg2Y31GDMv4ZPerou5jXa1gh8/TVBT\nIX3OTy5aL4Ue8nBip3bVw+V/9L9xhmXbex6IMwwvrWI4OfMt6ECifQ==\n-----END CERTIFICATE-----\n            \"\"\")\n            .certificateName(StdFunctions.join(JoinArgs.builder()\n                .separator(\"-\")\n                .input(                \n                    name,\n                    defaultInteger.result(),\n                    0)\n                .build()).result())\n            .key(\"\"\"\n-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEArhS59fJ20ll5bqVf1VqFUiSJ9uVgJWQVwWh16sXYW0PkB4xk\nn6/5yEdztGJX5Ts/ejQXOT5yDs4v11IRgGvAcrj3ILBT8y/4j8qxLwaOtEw4+Nut\ni8jQaOF4Q8lwgtu3b23KCvFfY/BXoWpY2SdsamQSPwv3NMv3vsgcGaDDwDYB4qWp\nXrizzJ0CAZtY7c1Mrrg6UQkk1H4n7vm5iyQ1PezwOppBX8haUYCJSYZV6itaSsBY\nJ/HbNLAj2NTyk0e1IXs/LGVtHLWKvYu/VadAod8GeGv/BfAo4vkglFVnXjhn1N1y\ng+jgZsWZgxJPBgUhuNhnfLGjKB5cyTRRc9nFWwIDAQABAoIBAC0D2Q6bc1RzpK4S\n/5QZQ055el+o8tLYbbPEwnFCVe9LwASfrkmI5OuAZpAnuhjh2ElOfQ7lcfMYKFDi\nvPnbYzmHUQhX8G17YygzvtutM2u2JilcDSWPeS0V2NaWmYyNKoMa/dsUjZk3RkHM\nUUteIW/ljr5U5sj1UYw5DOMnqlbicy2cPPY4g1QKGW5t3p5Lxw5ojgqynzi8EKMq\nj0apEoTXxmciOrwwiP2ynRTEN77+FUZkTvmxmSPoIfNTycDPRr4aUwVHV2d5FHPn\nd1MdjSoUPbHdOLfynwXqTz9OlvMSUDrBvs6k5ripGY9qvh9PrOdj7zLXVRQXUuOR\nYwoVHKECgYEA1NzNGifjW5cdcbkzc86QA9TM7yAyBmgnopzlm+dFIhxtJmydxN4V\n820x1Lkfe2vLCyYQ6fcEKAtjC9qdw+E2uzHAbtvnR4JseF3z1D82xw3MgGT9l3zc\nmMrgKmdCGGLWi6hboylX+2GBMVl2R0aRZrZje67jZcDXd06mlvW257ECgYEA0Vv1\nX3Ubn8XA3AA1ybem8fWNwEXfcYP1lJq0cX1gUXlpQvxWN61//aFZUCJZw5cEPArQ\nrEqhT81VCqXGO/by6D3fJD+4P8D6v6szJK2AGvXkZMfnJwAbHcOyGlxMin1CTJss\nZID0XI9xmbedm7Wi40+qXz8q4rs25kft9YjfzMsCgYBSPfE8vtaYJ52nt7+Kae+4\nmzqG1XCeixVtPaN1BfjvAf6mDucyDgB7KeBL6S6ht/ceGpoEW30On7+n79JuwRAt\naT6JVotYVKrmIp63jajzZYByxxI3unVcz12m5HhkBaQRF344XxvwMy8ASyloxnod\nLjDns52GTeix3wB8aPk/MQKBgGOQRwXpjISUKB64HtxacZN6ArqgwB2c8uqEFDIw\nvOCiS7Pmix4ZbdfxpqbcXzIMHKBtSEXXjBWGgd35bmfQDj7yRa9Yekgff2Ati7ny\npQytSbu/8abzfvHNwmKU6HWoEiKaXSdCyHNIaG8BCnwlilxt44k+YifHftlO9dSi\nDkS3AoGAYmF++8uEvQot5Yma4GraY+7ZyfWNLwClsOsrN2g19Vycg16fJk0olwDx\n2kRWKqNn99HJJwiLie1nvsDRJLbmzmI91Pttpu/EYFDJ8OYQOr1OhhPwwTygf+7S\n1o2RTXu3gKNG6fxOtHFatws3IzvovOASYyJR5XP2sIJURLOrSN0=\n-----END RSA PRIVATE KEY-----\n            \"\"\")\n            .build());\n\n        var createListener = new Listener(\"createListener\", ListenerArgs.builder()\n            .listenerPort(443)\n            .serverGroupId(createSg.id())\n            .loadBalancerId(lb.id())\n            .listenerProtocol(\"TCPSSL\")\n            .certificateIds(ssl0.id().applyValue(_id -\u003e String.format(\"%s-cn-hangzhou\", _id)))\n            .caCertificateIds()\n            .build());\n\n        var ssl = new ServiceCertificate(\"ssl\", ServiceCertificateArgs.builder()\n            .cert(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\nBAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\nMA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\nZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\ndjELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\nChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\nAoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\ncoG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\nKOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\nHQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n+OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\nQkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\nMAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\nAJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\ncQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\nOfi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\nDUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n-----END CERTIFICATE-----\n            \"\"\")\n            .certificateName(StdFunctions.join(JoinArgs.builder()\n                .separator(\"-\")\n                .input(                \n                    name,\n                    defaultInteger.result(),\n                    1)\n                .build()).result())\n            .key(\"\"\"\n-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV\nkg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM\nywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB\nAoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd\n6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP\nhwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4\nMdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz\n71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm\nEv9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE\nqygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8\n9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM\nzWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe\nDrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=\n-----END RSA PRIVATE KEY-----\n            \"\"\")\n            .build());\n\n        var defaultListenerAdditionalCertificateAttachment = new ListenerAdditionalCertificateAttachment(\"defaultListenerAdditionalCertificateAttachment\", ListenerAdditionalCertificateAttachmentArgs.builder()\n            .certificateId(ssl.id())\n            .listenerId(createListener.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  createVpc:\n    type: alicloud:vpc:Network\n    name: create_vpc\n    properties:\n      cidrBlock: 172.16.0.0/12\n  createVswJ:\n    type: alicloud:vpc:Switch\n    name: create_vsw_j\n    properties:\n      vpcId: ${createVpc.id}\n      zoneId: ${default.zones[0].id}\n      cidrBlock: 172.16.1.0/24\n  createVswK:\n    type: alicloud:vpc:Switch\n    name: create_vsw_k\n    properties:\n      vpcId: ${createVpc.id}\n      zoneId: ${default.zones[1].id}\n      cidrBlock: 172.16.2.0/24\n  lb:\n    type: alicloud:nlb:LoadBalancer\n    properties:\n      addressIpVersion: Ipv4\n      zoneMappings:\n        - vswitchId: ${createVswJ.id}\n          zoneId: ${createVswJ.zoneId}\n        - vswitchId: ${createVswK.id}\n          zoneId: ${createVswK.zoneId}\n      loadBalancerType: Network\n      loadBalancerName: ${name}\n      vpcId: ${createVpc.id}\n      addressType: Internet\n  createSg:\n    type: alicloud:nlb:ServerGroup\n    name: create_sg\n    properties:\n      addressIpVersion: Ipv4\n      scheduler: Wrr\n      healthCheck: {}\n      serverGroupType: Instance\n      vpcId: ${createVpc.id}\n      protocol: TCPSSL\n      serverGroupName: ${name}\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  ssl0:\n    type: alicloud:cas:ServiceCertificate\n    properties:\n      cert: |\n        -----BEGIN CERTIFICATE-----\n        MIIDhDCCAmwCCQCwJW4JChLBqTANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC\n        Q04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcMB0JlaWppbmcxDDAKBgNVBAoM\n        A0FsaTEPMA0GA1UECwwGQWxpeXVuMRIwEAYDVQQDDAlUZXJyYWZvcm0xHTAbBgkq\n        hkiG9w0BCQEWDjEyM0BhbGl5dW0uY29tMB4XDTI0MTIyNTA3MjQ0OFoXDTI3MTIy\n        NTA3MjQ0OFowgYMxCzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdCZWlqaW5nMRAwDgYD\n        VQQHDAdCZWlqaW5nMQwwCgYDVQQKDANBbGkxDzANBgNVBAsMBkFsaXl1bjESMBAG\n        A1UEAwwJVGVycmFmb3JtMR0wGwYJKoZIhvcNAQkBFg4xMjNAYWxpeXVtLmNvbTCC\n        ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK4UufXydtJZeW6lX9VahVIk\n        ifblYCVkFcFoderF2FtD5AeMZJ+v+chHc7RiV+U7P3o0Fzk+cg7OL9dSEYBrwHK4\n        9yCwU/Mv+I/KsS8GjrRMOPjbrYvI0GjheEPJcILbt29tygrxX2PwV6FqWNknbGpk\n        Ej8L9zTL977IHBmgw8A2AeKlqV64s8ydAgGbWO3NTK64OlEJJNR+J+75uYskNT3s\n        8DqaQV/IWlGAiUmGVeorWkrAWCfx2zSwI9jU8pNHtSF7PyxlbRy1ir2Lv1WnQKHf\n        Bnhr/wXwKOL5IJRVZ144Z9TdcoPo4GbFmYMSTwYFIbjYZ3yxoygeXMk0UXPZxVsC\n        AwEAATANBgkqhkiG9w0BAQsFAAOCAQEAVPA+Q0/5T6VzVw+MFXjCxXH1mWgd767w\n        YWX4tvdGsTDkK6/ESm8m9GDp5F3p7Degk0isr9XkyzkWo/nPEPWQOeYR0kNTvpwY\n        mKz9/aJwxalHS6O/8K2Ed6pZcXW0SUfjdH0/9YHw+vu4i2cQGTICzrKuEvyck40y\n        fQocvFyw6O7W+tewLA4ntTuC6HhEQbC0p7zxGc3LSuayBgJrJiOAnGvFu+/OFQi+\n        zEXi1xt8uQR6q5DQDsfqNCxpRKsCmU+POzNg2Y31GDMv4ZPerou5jXa1gh8/TVBT\n        IX3OTy5aL4Ue8nBip3bVw+V/9L9xhmXbex6IMwwvrWI4OfMt6ECifQ==\n        -----END CERTIFICATE-----\n      certificateName:\n        fn::invoke:\n          function: std:join\n          arguments:\n            separator: '-'\n            input:\n              - ${name}\n              - ${defaultInteger.result}\n              - 0\n          return: result\n      key: |\n        -----BEGIN RSA PRIVATE KEY-----\n        MIIEogIBAAKCAQEArhS59fJ20ll5bqVf1VqFUiSJ9uVgJWQVwWh16sXYW0PkB4xk\n        n6/5yEdztGJX5Ts/ejQXOT5yDs4v11IRgGvAcrj3ILBT8y/4j8qxLwaOtEw4+Nut\n        i8jQaOF4Q8lwgtu3b23KCvFfY/BXoWpY2SdsamQSPwv3NMv3vsgcGaDDwDYB4qWp\n        XrizzJ0CAZtY7c1Mrrg6UQkk1H4n7vm5iyQ1PezwOppBX8haUYCJSYZV6itaSsBY\n        J/HbNLAj2NTyk0e1IXs/LGVtHLWKvYu/VadAod8GeGv/BfAo4vkglFVnXjhn1N1y\n        g+jgZsWZgxJPBgUhuNhnfLGjKB5cyTRRc9nFWwIDAQABAoIBAC0D2Q6bc1RzpK4S\n        /5QZQ055el+o8tLYbbPEwnFCVe9LwASfrkmI5OuAZpAnuhjh2ElOfQ7lcfMYKFDi\n        vPnbYzmHUQhX8G17YygzvtutM2u2JilcDSWPeS0V2NaWmYyNKoMa/dsUjZk3RkHM\n        UUteIW/ljr5U5sj1UYw5DOMnqlbicy2cPPY4g1QKGW5t3p5Lxw5ojgqynzi8EKMq\n        j0apEoTXxmciOrwwiP2ynRTEN77+FUZkTvmxmSPoIfNTycDPRr4aUwVHV2d5FHPn\n        d1MdjSoUPbHdOLfynwXqTz9OlvMSUDrBvs6k5ripGY9qvh9PrOdj7zLXVRQXUuOR\n        YwoVHKECgYEA1NzNGifjW5cdcbkzc86QA9TM7yAyBmgnopzlm+dFIhxtJmydxN4V\n        820x1Lkfe2vLCyYQ6fcEKAtjC9qdw+E2uzHAbtvnR4JseF3z1D82xw3MgGT9l3zc\n        mMrgKmdCGGLWi6hboylX+2GBMVl2R0aRZrZje67jZcDXd06mlvW257ECgYEA0Vv1\n        X3Ubn8XA3AA1ybem8fWNwEXfcYP1lJq0cX1gUXlpQvxWN61//aFZUCJZw5cEPArQ\n        rEqhT81VCqXGO/by6D3fJD+4P8D6v6szJK2AGvXkZMfnJwAbHcOyGlxMin1CTJss\n        ZID0XI9xmbedm7Wi40+qXz8q4rs25kft9YjfzMsCgYBSPfE8vtaYJ52nt7+Kae+4\n        mzqG1XCeixVtPaN1BfjvAf6mDucyDgB7KeBL6S6ht/ceGpoEW30On7+n79JuwRAt\n        aT6JVotYVKrmIp63jajzZYByxxI3unVcz12m5HhkBaQRF344XxvwMy8ASyloxnod\n        LjDns52GTeix3wB8aPk/MQKBgGOQRwXpjISUKB64HtxacZN6ArqgwB2c8uqEFDIw\n        vOCiS7Pmix4ZbdfxpqbcXzIMHKBtSEXXjBWGgd35bmfQDj7yRa9Yekgff2Ati7ny\n        pQytSbu/8abzfvHNwmKU6HWoEiKaXSdCyHNIaG8BCnwlilxt44k+YifHftlO9dSi\n        DkS3AoGAYmF++8uEvQot5Yma4GraY+7ZyfWNLwClsOsrN2g19Vycg16fJk0olwDx\n        2kRWKqNn99HJJwiLie1nvsDRJLbmzmI91Pttpu/EYFDJ8OYQOr1OhhPwwTygf+7S\n        1o2RTXu3gKNG6fxOtHFatws3IzvovOASYyJR5XP2sIJURLOrSN0=\n        -----END RSA PRIVATE KEY-----\n  createListener:\n    type: alicloud:nlb:Listener\n    name: create_listener\n    properties:\n      listenerPort: '443'\n      serverGroupId: ${createSg.id}\n      loadBalancerId: ${lb.id}\n      listenerProtocol: TCPSSL\n      certificateIds:\n        - ${ssl0.id}-cn-hangzhou\n      caCertificateIds: []\n  ssl:\n    type: alicloud:cas:ServiceCertificate\n    properties:\n      cert: |\n        -----BEGIN CERTIFICATE-----\n        MIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\n        BAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\n        MA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\n        ZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\n        djELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\n        ChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n        9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\n        AoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\n        coG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\n        KOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\n        HQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n        +OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\n        QkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\n        MAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\n        AJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\n        cQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\n        Ofi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\n        DUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n        -----END CERTIFICATE-----\n      certificateName:\n        fn::invoke:\n          function: std:join\n          arguments:\n            separator: '-'\n            input:\n              - ${name}\n              - ${defaultInteger.result}\n              - 1\n          return: result\n      key: |\n        -----BEGIN RSA PRIVATE KEY-----\n        MIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV\n        kg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM\n        ywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB\n        AoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd\n        6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP\n        hwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4\n        MdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz\n        71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm\n        Ev9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE\n        qygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8\n        9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM\n        zWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe\n        DrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=\n        -----END RSA PRIVATE KEY-----\n  defaultListenerAdditionalCertificateAttachment:\n    type: alicloud:nlb:ListenerAdditionalCertificateAttachment\n    name: default\n    properties:\n      certificateId: ${ssl.id}\n      listenerId: ${createListener.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:nlb:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nNLB Listener Additional Certificate Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nlb/listenerAdditionalCertificateAttachment:ListenerAdditionalCertificateAttachment example \u003clistener_id\u003e:\u003ccertificate_id\u003e\n```\n\n","properties":{"certificateId":{"type":"string","description":"The ID of additional certificates.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run, without performing the actual request. Valid values:\n"},"listenerId":{"type":"string","description":"The listener ID. You must specify the ID of a listener that uses SSL over TCP.\n"},"status":{"type":"string","description":"The status of the resource\n"}},"required":["certificateId","listenerId","status"],"inputProperties":{"certificateId":{"type":"string","description":"The ID of additional certificates.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run, without performing the actual request. Valid values:\n"},"listenerId":{"type":"string","description":"The listener ID. You must specify the ID of a listener that uses SSL over TCP.\n","willReplaceOnChanges":true}},"requiredInputs":["certificateId","listenerId"],"stateInputs":{"description":"Input properties used for looking up and filtering ListenerAdditionalCertificateAttachment resources.\n","properties":{"certificateId":{"type":"string","description":"The ID of additional certificates.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run, without performing the actual request. Valid values:\n"},"listenerId":{"type":"string","description":"The listener ID. You must specify the ID of a listener that uses SSL over TCP.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object"}},"alicloud:nlb/loadBalancer:LoadBalancer":{"description":"Provides a Network Load Balancer (NLB) Load Balancer resource.\n\n\n\nFor information about Network Load Balancer (NLB) Load Balancer and how to use it, see [What is Load Balancer](https://www.alibabacloud.com/help/en/server-load-balancer/latest/api-nlb-2022-04-30-createloadbalancer).\n\n\u003e **NOTE:** Available since v1.191.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultGetZones = alicloud.nlb.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst default1 = new alicloud.vpc.Switch(\"default1\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.1.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[1]?.id),\n});\nconst defaultLoadBalancer = new alicloud.nlb.LoadBalancer(\"default\", {\n    loadBalancerName: name,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    loadBalancerType: \"Network\",\n    addressType: \"Internet\",\n    addressIpVersion: \"Ipv4\",\n    vpcId: defaultNetwork.id,\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    zoneMappings: [\n        {\n            vswitchId: defaultSwitch.id,\n            zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n        },\n        {\n            vswitchId: default1.id,\n            zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[1]?.id),\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_get_zones = alicloud.nlb.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault1 = alicloud.vpc.Switch(\"default1\",\n    vswitch_name=name,\n    cidr_block=\"10.4.1.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[1].id)\ndefault_load_balancer = alicloud.nlb.LoadBalancer(\"default\",\n    load_balancer_name=name,\n    resource_group_id=default.ids[0],\n    load_balancer_type=\"Network\",\n    address_type=\"Internet\",\n    address_ip_version=\"Ipv4\",\n    vpc_id=default_network.id,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    zone_mappings=[\n        {\n            \"vswitch_id\": default_switch.id,\n            \"zone_id\": default_get_zones.zones[0].id,\n        },\n        {\n            \"vswitch_id\": default1.id,\n            \"zone_id\": default_get_zones.zones[1].id,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultGetZones = AliCloud.Nlb.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var default1 = new AliCloud.Vpc.Switch(\"default1\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.1.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n    });\n\n    var defaultLoadBalancer = new AliCloud.Nlb.LoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = name,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        LoadBalancerType = \"Network\",\n        AddressType = \"Internet\",\n        AddressIpVersion = \"Ipv4\",\n        VpcId = defaultNetwork.Id,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        ZoneMappings = new[]\n        {\n            new AliCloud.Nlb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch.Id,\n                ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n            },\n            new AliCloud.Nlb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = default1.Id,\n                ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := nlb.GetZones(ctx, \u0026nlb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1, err := vpc.NewSwitch(ctx, \"default1\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.1.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[1].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nlb.NewLoadBalancer(ctx, \"default\", \u0026nlb.LoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tResourceGroupId:  pulumi.String(_default.Ids[0]),\n\t\t\tLoadBalancerType: pulumi.String(\"Network\"),\n\t\t\tAddressType:      pulumi.String(\"Internet\"),\n\t\t\tAddressIpVersion: pulumi.String(\"Ipv4\"),\n\t\t\tVpcId:            defaultNetwork.ID(),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tZoneMappings: nlb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026nlb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t\t\t\tZoneId:    pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\t\t},\n\t\t\t\t\u0026nlb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: default1.ID(),\n\t\t\t\t\tZoneId:    pulumi.String(defaultGetZones.Zones[1].Id),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.nlb.NlbFunctions;\nimport com.pulumi.alicloud.nlb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.nlb.LoadBalancer;\nimport com.pulumi.alicloud.nlb.LoadBalancerArgs;\nimport com.pulumi.alicloud.nlb.inputs.LoadBalancerZoneMappingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var defaultGetZones = NlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var default1 = new Switch(\"default1\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.1.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[1].id())\n            .build());\n\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .resourceGroupId(default_.ids()[0])\n            .loadBalancerType(\"Network\")\n            .addressType(\"Internet\")\n            .addressIpVersion(\"Ipv4\")\n            .vpcId(defaultNetwork.id())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch.id())\n                    .zoneId(defaultGetZones.zones()[0].id())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(default1.id())\n                    .zoneId(defaultGetZones.zones()[1].id())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  default1:\n    type: alicloud:vpc:Switch\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.1.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[1].id}\n  defaultLoadBalancer:\n    type: alicloud:nlb:LoadBalancer\n    name: default\n    properties:\n      loadBalancerName: ${name}\n      resourceGroupId: ${default.ids[0]}\n      loadBalancerType: Network\n      addressType: Internet\n      addressIpVersion: Ipv4\n      vpcId: ${defaultNetwork.id}\n      tags:\n        Created: TF\n        For: example\n      zoneMappings:\n        - vswitchId: ${defaultSwitch.id}\n          zoneId: ${defaultGetZones.zones[0].id}\n        - vswitchId: ${default1.id}\n          zoneId: ${defaultGetZones.zones[1].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:nlb:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nDualStack Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst zone = config.getObject\u003cany\u003e(\"zone\") || [\n    \"cn-beijing-i\",\n    \"cn-beijing-k\",\n    \"cn-beijing-l\",\n];\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    vpcName: name,\n    cidrBlock: \"10.2.0.0/16\",\n    enableIpv6: true,\n});\nconst vsw: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    vsw.push(new alicloud.vpc.Switch(`vsw-${range.value}`, {\n        enableIpv6: true,\n        ipv6CidrBlockMask: `1${range.value}`,\n        vswitchName: `vsw-${range.value}-for-nlb`,\n        vpcId: vpc.id,\n        cidrBlock: `10.2.1${range.value}.0/24`,\n        zoneId: zone[range.value],\n    }));\n}\nconst _default = new alicloud.vpc.Ipv6Gateway(\"default\", {\n    ipv6GatewayName: name,\n    vpcId: vpc.id,\n});\nconst nlb = new alicloud.nlb.LoadBalancer(\"nlb\", {\n    loadBalancerName: name,\n    loadBalancerType: \"Network\",\n    addressType: \"Intranet\",\n    addressIpVersion: \"DualStack\",\n    ipv6AddressType: \"Internet\",\n    vpcId: vpc.id,\n    crossZoneEnabled: false,\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    zoneMappings: [\n        {\n            vswitchId: vsw[0].id,\n            zoneId: zone[0],\n        },\n        {\n            vswitchId: vsw[1].id,\n            zoneId: zone[1],\n        },\n    ],\n}, {\n    dependsOn: [_default],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nzone = config.get_object(\"zone\")\nif zone is None:\n    zone = [\n        \"cn-beijing-i\",\n        \"cn-beijing-k\",\n        \"cn-beijing-l\",\n    ]\nvpc = alicloud.vpc.Network(\"vpc\",\n    vpc_name=name,\n    cidr_block=\"10.2.0.0/16\",\n    enable_ipv6=True)\nvsw = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    vsw.append(alicloud.vpc.Switch(f\"vsw-{range['value']}\",\n        enable_ipv6=True,\n        ipv6_cidr_block_mask=f\"1{range['value']}\",\n        vswitch_name=f\"vsw-{range['value']}-for-nlb\",\n        vpc_id=vpc.id,\n        cidr_block=f\"10.2.1{range['value']}.0/24\",\n        zone_id=zone[range[\"value\"]]))\ndefault = alicloud.vpc.Ipv6Gateway(\"default\",\n    ipv6_gateway_name=name,\n    vpc_id=vpc.id)\nnlb = alicloud.nlb.LoadBalancer(\"nlb\",\n    load_balancer_name=name,\n    load_balancer_type=\"Network\",\n    address_type=\"Intranet\",\n    address_ip_version=\"DualStack\",\n    ipv6_address_type=\"Internet\",\n    vpc_id=vpc.id,\n    cross_zone_enabled=False,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    zone_mappings=[\n        {\n            \"vswitch_id\": vsw[0].id,\n            \"zone_id\": zone[0],\n        },\n        {\n            \"vswitch_id\": vsw[1].id,\n            \"zone_id\": zone[1],\n        },\n    ],\n    opts = pulumi.ResourceOptions(depends_on=[default]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var zone = config.GetObject\u003cdynamic\u003e(\"zone\") ?? new[]\n    {\n        \"cn-beijing-i\",\n        \"cn-beijing-k\",\n        \"cn-beijing-l\",\n    };\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.2.0.0/16\",\n        EnableIpv6 = true,\n    });\n\n    var vsw = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        vsw.Add(new AliCloud.Vpc.Switch($\"vsw-{range.Value}\", new()\n        {\n            EnableIpv6 = true,\n            Ipv6CidrBlockMask = $\"1{range.Value}\",\n            VswitchName = $\"vsw-{range.Value}-for-nlb\",\n            VpcId = vpc.Id,\n            CidrBlock = $\"10.2.1{range.Value}.0/24\",\n            ZoneId = zone[range.Value],\n        }));\n    }\n    var @default = new AliCloud.Vpc.Ipv6Gateway(\"default\", new()\n    {\n        Ipv6GatewayName = name,\n        VpcId = vpc.Id,\n    });\n\n    var nlb = new AliCloud.Nlb.LoadBalancer(\"nlb\", new()\n    {\n        LoadBalancerName = name,\n        LoadBalancerType = \"Network\",\n        AddressType = \"Intranet\",\n        AddressIpVersion = \"DualStack\",\n        Ipv6AddressType = \"Internet\",\n        VpcId = vpc.Id,\n        CrossZoneEnabled = false,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        ZoneMappings = new[]\n        {\n            new AliCloud.Nlb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = vsw[0].Id,\n                ZoneId = zone[0],\n            },\n            new AliCloud.Nlb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = vsw[1].Id,\n                ZoneId = zone[1],\n            },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            @default,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tzone := []string{\n\t\t\t\"cn-beijing-i\",\n\t\t\t\"cn-beijing-k\",\n\t\t\t\"cn-beijing-l\",\n\t\t}\n\t\tif param := cfg.GetObject(\"zone\"); param != nil {\n\t\t\tzone = param\n\t\t}\n\t\tvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:    pulumi.String(name),\n\t\t\tCidrBlock:  pulumi.String(\"10.2.0.0/16\"),\n\t\t\tEnableIpv6: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar vsw []*vpc.Switch\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"vsw-%v\", key0), \u0026vpc.SwitchArgs{\n\t\t\t\tEnableIpv6:        pulumi.Bool(true),\n\t\t\t\tIpv6CidrBlockMask: pulumi.Int(fmt.Sprintf(\"1%v\", val0)),\n\t\t\t\tVswitchName:       pulumi.Sprintf(\"vsw-%v-for-nlb\", val0),\n\t\t\t\tVpcId:             vpc.ID(),\n\t\t\t\tCidrBlock:         pulumi.Sprintf(\"10.2.1%v.0/24\", val0),\n\t\t\t\tZoneId:            zone[val0],\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tvsw = append(vsw, __res)\n\t\t}\n\t\t_default, err := vpc.NewIpv6Gateway(ctx, \"default\", \u0026vpc.Ipv6GatewayArgs{\n\t\t\tIpv6GatewayName: pulumi.String(name),\n\t\t\tVpcId:           vpc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nlb.NewLoadBalancer(ctx, \"nlb\", \u0026nlb.LoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tLoadBalancerType: pulumi.String(\"Network\"),\n\t\t\tAddressType:      pulumi.String(\"Intranet\"),\n\t\t\tAddressIpVersion: pulumi.String(\"DualStack\"),\n\t\t\tIpv6AddressType:  pulumi.String(\"Internet\"),\n\t\t\tVpcId:            vpc.ID(),\n\t\t\tCrossZoneEnabled: pulumi.Bool(false),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tZoneMappings: nlb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026nlb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: vsw[0].ID(),\n\t\t\t\t\tZoneId:    pulumi.Any(zone[0]),\n\t\t\t\t},\n\t\t\t\t\u0026nlb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: vsw[1].ID(),\n\t\t\t\t\tZoneId:    pulumi.Any(zone[1]),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\t_default,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.Ipv6Gateway;\nimport com.pulumi.alicloud.vpc.Ipv6GatewayArgs;\nimport com.pulumi.alicloud.nlb.LoadBalancer;\nimport com.pulumi.alicloud.nlb.LoadBalancerArgs;\nimport com.pulumi.alicloud.nlb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var zone = config.get(\"zone\").orElse(List.of(        \n            \"cn-beijing-i\",\n            \"cn-beijing-k\",\n            \"cn-beijing-l\"));\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.2.0.0/16\")\n            .enableIpv6(true)\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Switch(\"vsw-\" + i, SwitchArgs.builder()\n                .enableIpv6(true)\n                .ipv6CidrBlockMask(String.format(\"1%s\", range.value()))\n                .vswitchName(String.format(\"vsw-%s-for-nlb\", range.value()))\n                .vpcId(vpc.id())\n                .cidrBlock(String.format(\"10.2.1%s.0/24\", range.value()))\n                .zoneId(zone[range.value()])\n                .build());\n\n        \n}\n        var default_ = new Ipv6Gateway(\"default\", Ipv6GatewayArgs.builder()\n            .ipv6GatewayName(name)\n            .vpcId(vpc.id())\n            .build());\n\n        var nlb = new LoadBalancer(\"nlb\", LoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .loadBalancerType(\"Network\")\n            .addressType(\"Intranet\")\n            .addressIpVersion(\"DualStack\")\n            .ipv6AddressType(\"Internet\")\n            .vpcId(vpc.id())\n            .crossZoneEnabled(false)\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(vsw[0].id())\n                    .zoneId(zone[0])\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(vsw[1].id())\n                    .zoneId(zone[1])\n                    .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(default_)\n                .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nNetwork Load Balancer (NLB) Load Balancer can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nlb/loadBalancer:LoadBalancer example \u003cid\u003e\n```\n\n","properties":{"addressIpVersion":{"type":"string","description":"The protocol version. Valid values:\n\n- **ipv4:** IPv4. This is the default value.\n- **DualStack:** dual stack.\n"},"addressType":{"type":"string","description":"The type of IPv4 address used by the NLB instance. Valid values:\n- `Internet`: The NLB instance uses a public IP address. The domain name of the NLB instance is resolved to the public IP address. Therefore, the NLB instance can be accessed over the Internet.\n- `Intranet`: The NLB instance uses a private IP address. The domain name of the NLB instance is resolved to the private IP address. Therefore, the NLB instance can be accessed over the virtual private cloud (VPC) where the NLB instance is deployed.\n\n\u003e **NOTE:**   To enable a public IPv6 address for an NLB instance, call the [EnableLoadBalancerIpv6Internet](https://www.alibabacloud.com/help/en/doc-detail/445878.html) operation.\n"},"bandwidthPackageId":{"type":"string","description":"The ID of the EIP bandwidth plan that is associated with the Internet-facing NLB instance.\n"},"cps":{"type":"integer","description":"The speed limit of new connections per second processed by NLB instances in each VIP. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000000`\" pulumi-lang-dotnet=\"`1000000`\" pulumi-lang-go=\"`1000000`\" pulumi-lang-python=\"`1000000`\" pulumi-lang-yaml=\"`1000000`\" pulumi-lang-java=\"`1000000`\"\u003e`1000000`\u003c/span\u003e.\n\n- *0** means no speed limit.\n"},"createTime":{"type":"string","description":"Resource creation time, using Greenwich Mean Time, formating' yyyy-MM-ddTHH:mm:ssZ '.\n"},"crossZoneEnabled":{"type":"boolean","description":"Specifies whether to enable cross-zone load balancing for the NLB instance. Valid values:\n"},"deletionProtectionConfig":{"$ref":"#/types/alicloud:nlb/LoadBalancerDeletionProtectionConfig:LoadBalancerDeletionProtectionConfig","description":"Specifies whether to enable deletion protection. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. See \u003cspan pulumi-lang-nodejs=\"`deletionProtectionConfig`\" pulumi-lang-dotnet=\"`DeletionProtectionConfig`\" pulumi-lang-go=\"`deletionProtectionConfig`\" pulumi-lang-python=\"`deletion_protection_config`\" pulumi-lang-yaml=\"`deletionProtectionConfig`\" pulumi-lang-java=\"`deletionProtectionConfig`\"\u003e`deletion_protection_config`\u003c/span\u003e below.\n"},"deletionProtectionEnabled":{"type":"boolean","description":"Specifies whether to enable deletion protection. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"deletionProtectionReason":{"type":"string","description":"The reason why the deletion protection feature is enabled or disabled. The \u003cspan pulumi-lang-nodejs=\"`deletionProtectionReason`\" pulumi-lang-dotnet=\"`DeletionProtectionReason`\" pulumi-lang-go=\"`deletionProtectionReason`\" pulumi-lang-python=\"`deletion_protection_reason`\" pulumi-lang-yaml=\"`deletionProtectionReason`\" pulumi-lang-java=\"`deletionProtectionReason`\"\u003e`deletion_protection_reason`\u003c/span\u003e takes effect only when \u003cspan pulumi-lang-nodejs=\"`deletionProtectionEnabled`\" pulumi-lang-dotnet=\"`DeletionProtectionEnabled`\" pulumi-lang-go=\"`deletionProtectionEnabled`\" pulumi-lang-python=\"`deletion_protection_enabled`\" pulumi-lang-yaml=\"`deletionProtectionEnabled`\" pulumi-lang-java=\"`deletionProtectionEnabled`\"\u003e`deletion_protection_enabled`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"dnsName":{"type":"string","description":"The domain name of the NLB instance.\n"},"ipv6AddressType":{"type":"string","description":"The type of IPv6 address used by the NLB instance. Valid values:\n- `Internet`: a public IP address. The domain name of the NLB instance is resolved to the public IP address. Therefore, the NLB instance can be accessed over the Internet.\n- `Intranet`: a private IP address. The domain name of the NLB instance is resolved to the private IP address. Therefore, the NLB instance can be accessed over the VPC where the NLB instance is deployed.\n"},"loadBalancerBusinessStatus":{"type":"string","description":"The business status of the NLB instance.\n"},"loadBalancerName":{"type":"string","description":"The name of the NLB instance.\nThe value must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The value must start with a letter.\n"},"loadBalancerType":{"type":"string","description":"The type of the Server Load Balancer (SLB) instance. Set the value to \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e, which specifies NLB.\n"},"modificationProtectionConfig":{"$ref":"#/types/alicloud:nlb/LoadBalancerModificationProtectionConfig:LoadBalancerModificationProtectionConfig","description":"Specifies whether to enable the configuration read-only mode. Default value: `NonProtection`. See \u003cspan pulumi-lang-nodejs=\"`modificationProtectionConfig`\" pulumi-lang-dotnet=\"`ModificationProtectionConfig`\" pulumi-lang-go=\"`modificationProtectionConfig`\" pulumi-lang-python=\"`modification_protection_config`\" pulumi-lang-yaml=\"`modificationProtectionConfig`\" pulumi-lang-java=\"`modificationProtectionConfig`\"\u003e`modification_protection_config`\u003c/span\u003e below.\n"},"modificationProtectionReason":{"type":"string","description":"The reason why the configuration read-only mode is enabled. The \u003cspan pulumi-lang-nodejs=\"`modificationProtectionReason`\" pulumi-lang-dotnet=\"`ModificationProtectionReason`\" pulumi-lang-go=\"`modificationProtectionReason`\" pulumi-lang-python=\"`modification_protection_reason`\" pulumi-lang-yaml=\"`modificationProtectionReason`\" pulumi-lang-java=\"`modificationProtectionReason`\"\u003e`modification_protection_reason`\u003c/span\u003e takes effect only when \u003cspan pulumi-lang-nodejs=\"`modificationProtectionStatus`\" pulumi-lang-dotnet=\"`ModificationProtectionStatus`\" pulumi-lang-go=\"`modificationProtectionStatus`\" pulumi-lang-python=\"`modification_protection_status`\" pulumi-lang-yaml=\"`modificationProtectionStatus`\" pulumi-lang-java=\"`modificationProtectionStatus`\"\u003e`modification_protection_status`\u003c/span\u003e is set to `ConsoleProtection`.\n"},"modificationProtectionStatus":{"type":"string","description":"Specifies whether to enable the configuration read-only mode. Default value: `NonProtection`. Valid values:\n- `NonProtection`: Does not enable the configuration read-only mode. You cannot set the \u003cspan pulumi-lang-nodejs=\"`modificationProtectionReason`\" pulumi-lang-dotnet=\"`ModificationProtectionReason`\" pulumi-lang-go=\"`modificationProtectionReason`\" pulumi-lang-python=\"`modification_protection_reason`\" pulumi-lang-yaml=\"`modificationProtectionReason`\" pulumi-lang-java=\"`modificationProtectionReason`\"\u003e`modification_protection_reason`\u003c/span\u003e. If the \u003cspan pulumi-lang-nodejs=\"`modificationProtectionReason`\" pulumi-lang-dotnet=\"`ModificationProtectionReason`\" pulumi-lang-go=\"`modificationProtectionReason`\" pulumi-lang-python=\"`modification_protection_reason`\" pulumi-lang-yaml=\"`modificationProtectionReason`\" pulumi-lang-java=\"`modificationProtectionReason`\"\u003e`modification_protection_reason`\u003c/span\u003e is set, the value is cleared.\n- `ConsoleProtection`: Enables the configuration read-only mode. You can set the \u003cspan pulumi-lang-nodejs=\"`modificationProtectionReason`\" pulumi-lang-dotnet=\"`ModificationProtectionReason`\" pulumi-lang-go=\"`modificationProtectionReason`\" pulumi-lang-python=\"`modification_protection_reason`\" pulumi-lang-yaml=\"`modificationProtectionReason`\" pulumi-lang-java=\"`modificationProtectionReason`\"\u003e`modification_protection_reason`\u003c/span\u003e.\n"},"paymentType":{"type":"string","description":"The payment type of the resource\n"},"regionId":{"type":"string","description":"The ID of the region where the NLB instance is deployed.\n"},"resourceGroupId":{"type":"string","description":"The ID of the new resource group.\nYou can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups) to view resource group IDs.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The security group to which the network-based SLB instance belongs.\n"},"status":{"type":"string","description":"Zone Status\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"List of labels.\n"},"vpcId":{"type":"string","description":"The ID of the VPC where the NLB instance is deployed.\n"},"zoneMappings":{"type":"array","items":{"$ref":"#/types/alicloud:nlb/LoadBalancerZoneMapping:LoadBalancerZoneMapping"},"description":"Available Area Configuration List. You must add at least two zones. You can add a maximum of 10 zones. See \u003cspan pulumi-lang-nodejs=\"`zoneMappings`\" pulumi-lang-dotnet=\"`ZoneMappings`\" pulumi-lang-go=\"`zoneMappings`\" pulumi-lang-python=\"`zone_mappings`\" pulumi-lang-yaml=\"`zoneMappings`\" pulumi-lang-java=\"`zoneMappings`\"\u003e`zone_mappings`\u003c/span\u003e below.\n"}},"required":["addressIpVersion","addressType","bandwidthPackageId","createTime","crossZoneEnabled","deletionProtectionConfig","deletionProtectionEnabled","deletionProtectionReason","dnsName","ipv6AddressType","loadBalancerBusinessStatus","loadBalancerType","modificationProtectionConfig","modificationProtectionReason","modificationProtectionStatus","paymentType","regionId","resourceGroupId","securityGroupIds","status","vpcId","zoneMappings"],"inputProperties":{"addressIpVersion":{"type":"string","description":"The protocol version. Valid values:\n\n- **ipv4:** IPv4. This is the default value.\n- **DualStack:** dual stack.\n","willReplaceOnChanges":true},"addressType":{"type":"string","description":"The type of IPv4 address used by the NLB instance. Valid values:\n- `Internet`: The NLB instance uses a public IP address. The domain name of the NLB instance is resolved to the public IP address. Therefore, the NLB instance can be accessed over the Internet.\n- `Intranet`: The NLB instance uses a private IP address. The domain name of the NLB instance is resolved to the private IP address. Therefore, the NLB instance can be accessed over the virtual private cloud (VPC) where the NLB instance is deployed.\n\n\u003e **NOTE:**   To enable a public IPv6 address for an NLB instance, call the [EnableLoadBalancerIpv6Internet](https://www.alibabacloud.com/help/en/doc-detail/445878.html) operation.\n"},"bandwidthPackageId":{"type":"string","description":"The ID of the EIP bandwidth plan that is associated with the Internet-facing NLB instance.\n","willReplaceOnChanges":true},"cps":{"type":"integer","description":"The speed limit of new connections per second processed by NLB instances in each VIP. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000000`\" pulumi-lang-dotnet=\"`1000000`\" pulumi-lang-go=\"`1000000`\" pulumi-lang-python=\"`1000000`\" pulumi-lang-yaml=\"`1000000`\" pulumi-lang-java=\"`1000000`\"\u003e`1000000`\u003c/span\u003e.\n\n- *0** means no speed limit.\n"},"crossZoneEnabled":{"type":"boolean","description":"Specifies whether to enable cross-zone load balancing for the NLB instance. Valid values:\n"},"deletionProtectionConfig":{"$ref":"#/types/alicloud:nlb/LoadBalancerDeletionProtectionConfig:LoadBalancerDeletionProtectionConfig","description":"Specifies whether to enable deletion protection. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. See \u003cspan pulumi-lang-nodejs=\"`deletionProtectionConfig`\" pulumi-lang-dotnet=\"`DeletionProtectionConfig`\" pulumi-lang-go=\"`deletionProtectionConfig`\" pulumi-lang-python=\"`deletion_protection_config`\" pulumi-lang-yaml=\"`deletionProtectionConfig`\" pulumi-lang-java=\"`deletionProtectionConfig`\"\u003e`deletion_protection_config`\u003c/span\u003e below.\n"},"deletionProtectionEnabled":{"type":"boolean","description":"Specifies whether to enable deletion protection. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"deletionProtectionReason":{"type":"string","description":"The reason why the deletion protection feature is enabled or disabled. The \u003cspan pulumi-lang-nodejs=\"`deletionProtectionReason`\" pulumi-lang-dotnet=\"`DeletionProtectionReason`\" pulumi-lang-go=\"`deletionProtectionReason`\" pulumi-lang-python=\"`deletion_protection_reason`\" pulumi-lang-yaml=\"`deletionProtectionReason`\" pulumi-lang-java=\"`deletionProtectionReason`\"\u003e`deletion_protection_reason`\u003c/span\u003e takes effect only when \u003cspan pulumi-lang-nodejs=\"`deletionProtectionEnabled`\" pulumi-lang-dotnet=\"`DeletionProtectionEnabled`\" pulumi-lang-go=\"`deletionProtectionEnabled`\" pulumi-lang-python=\"`deletion_protection_enabled`\" pulumi-lang-yaml=\"`deletionProtectionEnabled`\" pulumi-lang-java=\"`deletionProtectionEnabled`\"\u003e`deletion_protection_enabled`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"ipv6AddressType":{"type":"string","description":"The type of IPv6 address used by the NLB instance. Valid values:\n- `Internet`: a public IP address. The domain name of the NLB instance is resolved to the public IP address. Therefore, the NLB instance can be accessed over the Internet.\n- `Intranet`: a private IP address. The domain name of the NLB instance is resolved to the private IP address. Therefore, the NLB instance can be accessed over the VPC where the NLB instance is deployed.\n"},"loadBalancerName":{"type":"string","description":"The name of the NLB instance.\nThe value must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The value must start with a letter.\n"},"loadBalancerType":{"type":"string","description":"The type of the Server Load Balancer (SLB) instance. Set the value to \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e, which specifies NLB.\n","willReplaceOnChanges":true},"modificationProtectionConfig":{"$ref":"#/types/alicloud:nlb/LoadBalancerModificationProtectionConfig:LoadBalancerModificationProtectionConfig","description":"Specifies whether to enable the configuration read-only mode. Default value: `NonProtection`. See \u003cspan pulumi-lang-nodejs=\"`modificationProtectionConfig`\" pulumi-lang-dotnet=\"`ModificationProtectionConfig`\" pulumi-lang-go=\"`modificationProtectionConfig`\" pulumi-lang-python=\"`modification_protection_config`\" pulumi-lang-yaml=\"`modificationProtectionConfig`\" pulumi-lang-java=\"`modificationProtectionConfig`\"\u003e`modification_protection_config`\u003c/span\u003e below.\n"},"modificationProtectionReason":{"type":"string","description":"The reason why the configuration read-only mode is enabled. The \u003cspan pulumi-lang-nodejs=\"`modificationProtectionReason`\" pulumi-lang-dotnet=\"`ModificationProtectionReason`\" pulumi-lang-go=\"`modificationProtectionReason`\" pulumi-lang-python=\"`modification_protection_reason`\" pulumi-lang-yaml=\"`modificationProtectionReason`\" pulumi-lang-java=\"`modificationProtectionReason`\"\u003e`modification_protection_reason`\u003c/span\u003e takes effect only when \u003cspan pulumi-lang-nodejs=\"`modificationProtectionStatus`\" pulumi-lang-dotnet=\"`ModificationProtectionStatus`\" pulumi-lang-go=\"`modificationProtectionStatus`\" pulumi-lang-python=\"`modification_protection_status`\" pulumi-lang-yaml=\"`modificationProtectionStatus`\" pulumi-lang-java=\"`modificationProtectionStatus`\"\u003e`modification_protection_status`\u003c/span\u003e is set to `ConsoleProtection`.\n"},"modificationProtectionStatus":{"type":"string","description":"Specifies whether to enable the configuration read-only mode. Default value: `NonProtection`. Valid values:\n- `NonProtection`: Does not enable the configuration read-only mode. You cannot set the \u003cspan pulumi-lang-nodejs=\"`modificationProtectionReason`\" pulumi-lang-dotnet=\"`ModificationProtectionReason`\" pulumi-lang-go=\"`modificationProtectionReason`\" pulumi-lang-python=\"`modification_protection_reason`\" pulumi-lang-yaml=\"`modificationProtectionReason`\" pulumi-lang-java=\"`modificationProtectionReason`\"\u003e`modification_protection_reason`\u003c/span\u003e. If the \u003cspan pulumi-lang-nodejs=\"`modificationProtectionReason`\" pulumi-lang-dotnet=\"`ModificationProtectionReason`\" pulumi-lang-go=\"`modificationProtectionReason`\" pulumi-lang-python=\"`modification_protection_reason`\" pulumi-lang-yaml=\"`modificationProtectionReason`\" pulumi-lang-java=\"`modificationProtectionReason`\"\u003e`modification_protection_reason`\u003c/span\u003e is set, the value is cleared.\n- `ConsoleProtection`: Enables the configuration read-only mode. You can set the \u003cspan pulumi-lang-nodejs=\"`modificationProtectionReason`\" pulumi-lang-dotnet=\"`ModificationProtectionReason`\" pulumi-lang-go=\"`modificationProtectionReason`\" pulumi-lang-python=\"`modification_protection_reason`\" pulumi-lang-yaml=\"`modificationProtectionReason`\" pulumi-lang-java=\"`modificationProtectionReason`\"\u003e`modification_protection_reason`\u003c/span\u003e.\n"},"paymentType":{"type":"string","description":"The payment type of the resource\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the new resource group.\nYou can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups) to view resource group IDs.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The security group to which the network-based SLB instance belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"List of labels.\n"},"vpcId":{"type":"string","description":"The ID of the VPC where the NLB instance is deployed.\n","willReplaceOnChanges":true},"zoneMappings":{"type":"array","items":{"$ref":"#/types/alicloud:nlb/LoadBalancerZoneMapping:LoadBalancerZoneMapping"},"description":"Available Area Configuration List. You must add at least two zones. You can add a maximum of 10 zones. See \u003cspan pulumi-lang-nodejs=\"`zoneMappings`\" pulumi-lang-dotnet=\"`ZoneMappings`\" pulumi-lang-go=\"`zoneMappings`\" pulumi-lang-python=\"`zone_mappings`\" pulumi-lang-yaml=\"`zoneMappings`\" pulumi-lang-java=\"`zoneMappings`\"\u003e`zone_mappings`\u003c/span\u003e below.\n"}},"requiredInputs":["addressType","vpcId","zoneMappings"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancer resources.\n","properties":{"addressIpVersion":{"type":"string","description":"The protocol version. Valid values:\n\n- **ipv4:** IPv4. This is the default value.\n- **DualStack:** dual stack.\n","willReplaceOnChanges":true},"addressType":{"type":"string","description":"The type of IPv4 address used by the NLB instance. Valid values:\n- `Internet`: The NLB instance uses a public IP address. The domain name of the NLB instance is resolved to the public IP address. Therefore, the NLB instance can be accessed over the Internet.\n- `Intranet`: The NLB instance uses a private IP address. The domain name of the NLB instance is resolved to the private IP address. Therefore, the NLB instance can be accessed over the virtual private cloud (VPC) where the NLB instance is deployed.\n\n\u003e **NOTE:**   To enable a public IPv6 address for an NLB instance, call the [EnableLoadBalancerIpv6Internet](https://www.alibabacloud.com/help/en/doc-detail/445878.html) operation.\n"},"bandwidthPackageId":{"type":"string","description":"The ID of the EIP bandwidth plan that is associated with the Internet-facing NLB instance.\n","willReplaceOnChanges":true},"cps":{"type":"integer","description":"The speed limit of new connections per second processed by NLB instances in each VIP. Value range: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000000`\" pulumi-lang-dotnet=\"`1000000`\" pulumi-lang-go=\"`1000000`\" pulumi-lang-python=\"`1000000`\" pulumi-lang-yaml=\"`1000000`\" pulumi-lang-java=\"`1000000`\"\u003e`1000000`\u003c/span\u003e.\n\n- *0** means no speed limit.\n"},"createTime":{"type":"string","description":"Resource creation time, using Greenwich Mean Time, formating' yyyy-MM-ddTHH:mm:ssZ '.\n"},"crossZoneEnabled":{"type":"boolean","description":"Specifies whether to enable cross-zone load balancing for the NLB instance. Valid values:\n"},"deletionProtectionConfig":{"$ref":"#/types/alicloud:nlb/LoadBalancerDeletionProtectionConfig:LoadBalancerDeletionProtectionConfig","description":"Specifies whether to enable deletion protection. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. See \u003cspan pulumi-lang-nodejs=\"`deletionProtectionConfig`\" pulumi-lang-dotnet=\"`DeletionProtectionConfig`\" pulumi-lang-go=\"`deletionProtectionConfig`\" pulumi-lang-python=\"`deletion_protection_config`\" pulumi-lang-yaml=\"`deletionProtectionConfig`\" pulumi-lang-java=\"`deletionProtectionConfig`\"\u003e`deletion_protection_config`\u003c/span\u003e below.\n"},"deletionProtectionEnabled":{"type":"boolean","description":"Specifies whether to enable deletion protection. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"deletionProtectionReason":{"type":"string","description":"The reason why the deletion protection feature is enabled or disabled. The \u003cspan pulumi-lang-nodejs=\"`deletionProtectionReason`\" pulumi-lang-dotnet=\"`DeletionProtectionReason`\" pulumi-lang-go=\"`deletionProtectionReason`\" pulumi-lang-python=\"`deletion_protection_reason`\" pulumi-lang-yaml=\"`deletionProtectionReason`\" pulumi-lang-java=\"`deletionProtectionReason`\"\u003e`deletion_protection_reason`\u003c/span\u003e takes effect only when \u003cspan pulumi-lang-nodejs=\"`deletionProtectionEnabled`\" pulumi-lang-dotnet=\"`DeletionProtectionEnabled`\" pulumi-lang-go=\"`deletionProtectionEnabled`\" pulumi-lang-python=\"`deletion_protection_enabled`\" pulumi-lang-yaml=\"`deletionProtectionEnabled`\" pulumi-lang-java=\"`deletionProtectionEnabled`\"\u003e`deletion_protection_enabled`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"dnsName":{"type":"string","description":"The domain name of the NLB instance.\n"},"ipv6AddressType":{"type":"string","description":"The type of IPv6 address used by the NLB instance. Valid values:\n- `Internet`: a public IP address. The domain name of the NLB instance is resolved to the public IP address. Therefore, the NLB instance can be accessed over the Internet.\n- `Intranet`: a private IP address. The domain name of the NLB instance is resolved to the private IP address. Therefore, the NLB instance can be accessed over the VPC where the NLB instance is deployed.\n"},"loadBalancerBusinessStatus":{"type":"string","description":"The business status of the NLB instance.\n"},"loadBalancerName":{"type":"string","description":"The name of the NLB instance.\nThe value must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The value must start with a letter.\n"},"loadBalancerType":{"type":"string","description":"The type of the Server Load Balancer (SLB) instance. Set the value to \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e, which specifies NLB.\n","willReplaceOnChanges":true},"modificationProtectionConfig":{"$ref":"#/types/alicloud:nlb/LoadBalancerModificationProtectionConfig:LoadBalancerModificationProtectionConfig","description":"Specifies whether to enable the configuration read-only mode. Default value: `NonProtection`. See \u003cspan pulumi-lang-nodejs=\"`modificationProtectionConfig`\" pulumi-lang-dotnet=\"`ModificationProtectionConfig`\" pulumi-lang-go=\"`modificationProtectionConfig`\" pulumi-lang-python=\"`modification_protection_config`\" pulumi-lang-yaml=\"`modificationProtectionConfig`\" pulumi-lang-java=\"`modificationProtectionConfig`\"\u003e`modification_protection_config`\u003c/span\u003e below.\n"},"modificationProtectionReason":{"type":"string","description":"The reason why the configuration read-only mode is enabled. The \u003cspan pulumi-lang-nodejs=\"`modificationProtectionReason`\" pulumi-lang-dotnet=\"`ModificationProtectionReason`\" pulumi-lang-go=\"`modificationProtectionReason`\" pulumi-lang-python=\"`modification_protection_reason`\" pulumi-lang-yaml=\"`modificationProtectionReason`\" pulumi-lang-java=\"`modificationProtectionReason`\"\u003e`modification_protection_reason`\u003c/span\u003e takes effect only when \u003cspan pulumi-lang-nodejs=\"`modificationProtectionStatus`\" pulumi-lang-dotnet=\"`ModificationProtectionStatus`\" pulumi-lang-go=\"`modificationProtectionStatus`\" pulumi-lang-python=\"`modification_protection_status`\" pulumi-lang-yaml=\"`modificationProtectionStatus`\" pulumi-lang-java=\"`modificationProtectionStatus`\"\u003e`modification_protection_status`\u003c/span\u003e is set to `ConsoleProtection`.\n"},"modificationProtectionStatus":{"type":"string","description":"Specifies whether to enable the configuration read-only mode. Default value: `NonProtection`. Valid values:\n- `NonProtection`: Does not enable the configuration read-only mode. You cannot set the \u003cspan pulumi-lang-nodejs=\"`modificationProtectionReason`\" pulumi-lang-dotnet=\"`ModificationProtectionReason`\" pulumi-lang-go=\"`modificationProtectionReason`\" pulumi-lang-python=\"`modification_protection_reason`\" pulumi-lang-yaml=\"`modificationProtectionReason`\" pulumi-lang-java=\"`modificationProtectionReason`\"\u003e`modification_protection_reason`\u003c/span\u003e. If the \u003cspan pulumi-lang-nodejs=\"`modificationProtectionReason`\" pulumi-lang-dotnet=\"`ModificationProtectionReason`\" pulumi-lang-go=\"`modificationProtectionReason`\" pulumi-lang-python=\"`modification_protection_reason`\" pulumi-lang-yaml=\"`modificationProtectionReason`\" pulumi-lang-java=\"`modificationProtectionReason`\"\u003e`modification_protection_reason`\u003c/span\u003e is set, the value is cleared.\n- `ConsoleProtection`: Enables the configuration read-only mode. You can set the \u003cspan pulumi-lang-nodejs=\"`modificationProtectionReason`\" pulumi-lang-dotnet=\"`ModificationProtectionReason`\" pulumi-lang-go=\"`modificationProtectionReason`\" pulumi-lang-python=\"`modification_protection_reason`\" pulumi-lang-yaml=\"`modificationProtectionReason`\" pulumi-lang-java=\"`modificationProtectionReason`\"\u003e`modification_protection_reason`\u003c/span\u003e.\n"},"paymentType":{"type":"string","description":"The payment type of the resource\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The ID of the region where the NLB instance is deployed.\n"},"resourceGroupId":{"type":"string","description":"The ID of the new resource group.\nYou can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups) to view resource group IDs.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The security group to which the network-based SLB instance belongs.\n"},"status":{"type":"string","description":"Zone Status\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"List of labels.\n"},"vpcId":{"type":"string","description":"The ID of the VPC where the NLB instance is deployed.\n","willReplaceOnChanges":true},"zoneMappings":{"type":"array","items":{"$ref":"#/types/alicloud:nlb/LoadBalancerZoneMapping:LoadBalancerZoneMapping"},"description":"Available Area Configuration List. You must add at least two zones. You can add a maximum of 10 zones. See \u003cspan pulumi-lang-nodejs=\"`zoneMappings`\" pulumi-lang-dotnet=\"`ZoneMappings`\" pulumi-lang-go=\"`zoneMappings`\" pulumi-lang-python=\"`zone_mappings`\" pulumi-lang-yaml=\"`zoneMappings`\" pulumi-lang-java=\"`zoneMappings`\"\u003e`zone_mappings`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:nlb/loadBalancerSecurityGroupAttachment:LoadBalancerSecurityGroupAttachment":{"description":"Provides a NLB Load Balancer Security Group Attachment resource.\n\nSecurity Group mount.\n\nFor information about NLB Load Balancer Security Group Attachment and how to use it, see [What is Load Balancer Security Group Attachment](https://www.alibabacloud.com/help/en/server-load-balancer/latest/loadbalancerjoinsecuritygroup).\n\n\u003e **NOTE:** Available since v1.198.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultGetZones = alicloud.nlb.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst default1 = new alicloud.vpc.Switch(\"default1\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.1.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[1]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultLoadBalancer = new alicloud.nlb.LoadBalancer(\"default\", {\n    loadBalancerName: name,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    loadBalancerType: \"Network\",\n    addressType: \"Internet\",\n    addressIpVersion: \"Ipv4\",\n    vpcId: defaultNetwork.id,\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    zoneMappings: [\n        {\n            vswitchId: defaultSwitch.id,\n            zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n        },\n        {\n            vswitchId: default1.id,\n            zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[1]?.id),\n        },\n    ],\n});\nconst defaultLoadBalancerSecurityGroupAttachment = new alicloud.nlb.LoadBalancerSecurityGroupAttachment(\"default\", {\n    securityGroupId: defaultSecurityGroup.id,\n    loadBalancerId: defaultLoadBalancer.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_get_zones = alicloud.nlb.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault1 = alicloud.vpc.Switch(\"default1\",\n    vswitch_name=name,\n    cidr_block=\"10.4.1.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[1].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_load_balancer = alicloud.nlb.LoadBalancer(\"default\",\n    load_balancer_name=name,\n    resource_group_id=default.ids[0],\n    load_balancer_type=\"Network\",\n    address_type=\"Internet\",\n    address_ip_version=\"Ipv4\",\n    vpc_id=default_network.id,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    zone_mappings=[\n        {\n            \"vswitch_id\": default_switch.id,\n            \"zone_id\": default_get_zones.zones[0].id,\n        },\n        {\n            \"vswitch_id\": default1.id,\n            \"zone_id\": default_get_zones.zones[1].id,\n        },\n    ])\ndefault_load_balancer_security_group_attachment = alicloud.nlb.LoadBalancerSecurityGroupAttachment(\"default\",\n    security_group_id=default_security_group.id,\n    load_balancer_id=default_load_balancer.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultGetZones = AliCloud.Nlb.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var default1 = new AliCloud.Vpc.Switch(\"default1\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.1.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultLoadBalancer = new AliCloud.Nlb.LoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = name,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        LoadBalancerType = \"Network\",\n        AddressType = \"Internet\",\n        AddressIpVersion = \"Ipv4\",\n        VpcId = defaultNetwork.Id,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        ZoneMappings = new[]\n        {\n            new AliCloud.Nlb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch.Id,\n                ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n            },\n            new AliCloud.Nlb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = default1.Id,\n                ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n            },\n        },\n    });\n\n    var defaultLoadBalancerSecurityGroupAttachment = new AliCloud.Nlb.LoadBalancerSecurityGroupAttachment(\"default\", new()\n    {\n        SecurityGroupId = defaultSecurityGroup.Id,\n        LoadBalancerId = defaultLoadBalancer.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := nlb.GetZones(ctx, \u0026nlb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1, err := vpc.NewSwitch(ctx, \"default1\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.1.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[1].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultLoadBalancer, err := nlb.NewLoadBalancer(ctx, \"default\", \u0026nlb.LoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tResourceGroupId:  pulumi.String(_default.Ids[0]),\n\t\t\tLoadBalancerType: pulumi.String(\"Network\"),\n\t\t\tAddressType:      pulumi.String(\"Internet\"),\n\t\t\tAddressIpVersion: pulumi.String(\"Ipv4\"),\n\t\t\tVpcId:            defaultNetwork.ID(),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tZoneMappings: nlb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026nlb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t\t\t\tZoneId:    pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\t\t},\n\t\t\t\t\u0026nlb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: default1.ID(),\n\t\t\t\t\tZoneId:    pulumi.String(defaultGetZones.Zones[1].Id),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nlb.NewLoadBalancerSecurityGroupAttachment(ctx, \"default\", \u0026nlb.LoadBalancerSecurityGroupAttachmentArgs{\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tLoadBalancerId:  defaultLoadBalancer.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.nlb.NlbFunctions;\nimport com.pulumi.alicloud.nlb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.nlb.LoadBalancer;\nimport com.pulumi.alicloud.nlb.LoadBalancerArgs;\nimport com.pulumi.alicloud.nlb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.nlb.LoadBalancerSecurityGroupAttachment;\nimport com.pulumi.alicloud.nlb.LoadBalancerSecurityGroupAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var defaultGetZones = NlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var default1 = new Switch(\"default1\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.1.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[1].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .resourceGroupId(default_.ids()[0])\n            .loadBalancerType(\"Network\")\n            .addressType(\"Internet\")\n            .addressIpVersion(\"Ipv4\")\n            .vpcId(defaultNetwork.id())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch.id())\n                    .zoneId(defaultGetZones.zones()[0].id())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(default1.id())\n                    .zoneId(defaultGetZones.zones()[1].id())\n                    .build())\n            .build());\n\n        var defaultLoadBalancerSecurityGroupAttachment = new LoadBalancerSecurityGroupAttachment(\"defaultLoadBalancerSecurityGroupAttachment\", LoadBalancerSecurityGroupAttachmentArgs.builder()\n            .securityGroupId(defaultSecurityGroup.id())\n            .loadBalancerId(defaultLoadBalancer.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  default1:\n    type: alicloud:vpc:Switch\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.1.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[1].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultLoadBalancer:\n    type: alicloud:nlb:LoadBalancer\n    name: default\n    properties:\n      loadBalancerName: ${name}\n      resourceGroupId: ${default.ids[0]}\n      loadBalancerType: Network\n      addressType: Internet\n      addressIpVersion: Ipv4\n      vpcId: ${defaultNetwork.id}\n      tags:\n        Created: TF\n        For: example\n      zoneMappings:\n        - vswitchId: ${defaultSwitch.id}\n          zoneId: ${defaultGetZones.zones[0].id}\n        - vswitchId: ${default1.id}\n          zoneId: ${defaultGetZones.zones[1].id}\n  defaultLoadBalancerSecurityGroupAttachment:\n    type: alicloud:nlb:LoadBalancerSecurityGroupAttachment\n    name: default\n    properties:\n      securityGroupId: ${defaultSecurityGroup.id}\n      loadBalancerId: ${defaultLoadBalancer.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:nlb:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nNLB Load Balancer Security Group Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nlb/loadBalancerSecurityGroupAttachment:LoadBalancerSecurityGroupAttachment example \u003cload_balancer_id\u003e:\u003csecurity_group_id\u003e\n```\n\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run, without performing the actual request. Valid values:\n"},"loadBalancerId":{"type":"string","description":"The ID of the NLB instance to be associated with the security group.\n"},"securityGroupId":{"type":"string","description":"The ID of the security group to be disassociated.\n"}},"required":["loadBalancerId","securityGroupId"],"inputProperties":{"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run, without performing the actual request. Valid values:\n"},"loadBalancerId":{"type":"string","description":"The ID of the NLB instance to be associated with the security group.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group to be disassociated.\n","willReplaceOnChanges":true}},"requiredInputs":["loadBalancerId","securityGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancerSecurityGroupAttachment resources.\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether to perform a dry run, without performing the actual request. Valid values:\n"},"loadBalancerId":{"type":"string","description":"The ID of the NLB instance to be associated with the security group.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group to be disassociated.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:nlb/loadBalancerZoneShiftedAttachment:LoadBalancerZoneShiftedAttachment":{"description":"Provides a Network Load Balancer (NLB) Load Balancer Zone Shifted Attachment resource.\n\nNetwork load balancer shift zone.\n\nFor information about Network Load Balancer (NLB) Load Balancer Zone Shifted Attachment and how to use it, see [What is Load Balancer Zone Shifted Attachment](https://next.api.alibabacloud.com/document/Nlb/2022-04-30/StartShiftLoadBalancerZones).\n\n\u003e **NOTE:** Available since v1.245.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    description: \"example\",\n    cidrBlock: \"10.0.0.0/8\",\n    enableIpv6: true,\n    vpcName: \"tf-exampleacc-248\",\n});\nconst vsw1 = new alicloud.vpc.Switch(\"vsw1\", {\n    vpcId: vpc.id,\n    zoneId: \"cn-beijing-l\",\n    cidrBlock: \"10.0.1.0/24\",\n    vswitchName: \"tf-exampleacc-41\",\n});\nconst vsw2 = new alicloud.vpc.Switch(\"vsw2\", {\n    vpcId: vpc.id,\n    zoneId: \"cn-beijing-k\",\n    cidrBlock: \"10.0.2.0/24\",\n    vswitchName: \"tf-exampleacc-301\",\n    ipv6CidrBlockMask: 8,\n});\nconst nlb = new alicloud.nlb.LoadBalancer(\"nlb\", {\n    zoneMappings: [\n        {\n            vswitchId: vsw1.id,\n            zoneId: vsw1.zoneId,\n        },\n        {\n            vswitchId: vsw2.id,\n            zoneId: vsw2.zoneId,\n        },\n    ],\n    vpcId: vpc.id,\n    addressType: \"Intranet\",\n});\nconst _default = new alicloud.nlb.LoadBalancerZoneShiftedAttachment(\"default\", {\n    zoneId: vsw1.zoneId,\n    vswitchId: vsw1.id,\n    loadBalancerId: nlb.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nvpc = alicloud.vpc.Network(\"vpc\",\n    description=\"example\",\n    cidr_block=\"10.0.0.0/8\",\n    enable_ipv6=True,\n    vpc_name=\"tf-exampleacc-248\")\nvsw1 = alicloud.vpc.Switch(\"vsw1\",\n    vpc_id=vpc.id,\n    zone_id=\"cn-beijing-l\",\n    cidr_block=\"10.0.1.0/24\",\n    vswitch_name=\"tf-exampleacc-41\")\nvsw2 = alicloud.vpc.Switch(\"vsw2\",\n    vpc_id=vpc.id,\n    zone_id=\"cn-beijing-k\",\n    cidr_block=\"10.0.2.0/24\",\n    vswitch_name=\"tf-exampleacc-301\",\n    ipv6_cidr_block_mask=8)\nnlb = alicloud.nlb.LoadBalancer(\"nlb\",\n    zone_mappings=[\n        {\n            \"vswitch_id\": vsw1.id,\n            \"zone_id\": vsw1.zone_id,\n        },\n        {\n            \"vswitch_id\": vsw2.id,\n            \"zone_id\": vsw2.zone_id,\n        },\n    ],\n    vpc_id=vpc.id,\n    address_type=\"Intranet\")\ndefault = alicloud.nlb.LoadBalancerZoneShiftedAttachment(\"default\",\n    zone_id=vsw1.zone_id,\n    vswitch_id=vsw1.id,\n    load_balancer_id=nlb.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        Description = \"example\",\n        CidrBlock = \"10.0.0.0/8\",\n        EnableIpv6 = true,\n        VpcName = \"tf-exampleacc-248\",\n    });\n\n    var vsw1 = new AliCloud.Vpc.Switch(\"vsw1\", new()\n    {\n        VpcId = vpc.Id,\n        ZoneId = \"cn-beijing-l\",\n        CidrBlock = \"10.0.1.0/24\",\n        VswitchName = \"tf-exampleacc-41\",\n    });\n\n    var vsw2 = new AliCloud.Vpc.Switch(\"vsw2\", new()\n    {\n        VpcId = vpc.Id,\n        ZoneId = \"cn-beijing-k\",\n        CidrBlock = \"10.0.2.0/24\",\n        VswitchName = \"tf-exampleacc-301\",\n        Ipv6CidrBlockMask = 8,\n    });\n\n    var nlb = new AliCloud.Nlb.LoadBalancer(\"nlb\", new()\n    {\n        ZoneMappings = new[]\n        {\n            new AliCloud.Nlb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = vsw1.Id,\n                ZoneId = vsw1.ZoneId,\n            },\n            new AliCloud.Nlb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = vsw2.Id,\n                ZoneId = vsw2.ZoneId,\n            },\n        },\n        VpcId = vpc.Id,\n        AddressType = \"Intranet\",\n    });\n\n    var @default = new AliCloud.Nlb.LoadBalancerZoneShiftedAttachment(\"default\", new()\n    {\n        ZoneId = vsw1.ZoneId,\n        VswitchId = vsw1.Id,\n        LoadBalancerId = nlb.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tCidrBlock:   pulumi.String(\"10.0.0.0/8\"),\n\t\t\tEnableIpv6:  pulumi.Bool(true),\n\t\t\tVpcName:     pulumi.String(\"tf-exampleacc-248\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvsw1, err := vpc.NewSwitch(ctx, \"vsw1\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       vpc.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-beijing-l\"),\n\t\t\tCidrBlock:   pulumi.String(\"10.0.1.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"tf-exampleacc-41\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvsw2, err := vpc.NewSwitch(ctx, \"vsw2\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:             vpc.ID(),\n\t\t\tZoneId:            pulumi.String(\"cn-beijing-k\"),\n\t\t\tCidrBlock:         pulumi.String(\"10.0.2.0/24\"),\n\t\t\tVswitchName:       pulumi.String(\"tf-exampleacc-301\"),\n\t\t\tIpv6CidrBlockMask: pulumi.Int(8),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnlb, err := nlb.NewLoadBalancer(ctx, \"nlb\", \u0026nlb.LoadBalancerArgs{\n\t\t\tZoneMappings: nlb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026nlb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: vsw1.ID(),\n\t\t\t\t\tZoneId:    vsw1.ZoneId,\n\t\t\t\t},\n\t\t\t\t\u0026nlb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: vsw2.ID(),\n\t\t\t\t\tZoneId:    vsw2.ZoneId,\n\t\t\t\t},\n\t\t\t},\n\t\t\tVpcId:       vpc.ID(),\n\t\t\tAddressType: pulumi.String(\"Intranet\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nlb.NewLoadBalancerZoneShiftedAttachment(ctx, \"default\", \u0026nlb.LoadBalancerZoneShiftedAttachmentArgs{\n\t\t\tZoneId:         vsw1.ZoneId,\n\t\t\tVswitchId:      vsw1.ID(),\n\t\t\tLoadBalancerId: nlb.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.nlb.LoadBalancer;\nimport com.pulumi.alicloud.nlb.LoadBalancerArgs;\nimport com.pulumi.alicloud.nlb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.nlb.LoadBalancerZoneShiftedAttachment;\nimport com.pulumi.alicloud.nlb.LoadBalancerZoneShiftedAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .description(\"example\")\n            .cidrBlock(\"10.0.0.0/8\")\n            .enableIpv6(true)\n            .vpcName(\"tf-exampleacc-248\")\n            .build());\n\n        var vsw1 = new Switch(\"vsw1\", SwitchArgs.builder()\n            .vpcId(vpc.id())\n            .zoneId(\"cn-beijing-l\")\n            .cidrBlock(\"10.0.1.0/24\")\n            .vswitchName(\"tf-exampleacc-41\")\n            .build());\n\n        var vsw2 = new Switch(\"vsw2\", SwitchArgs.builder()\n            .vpcId(vpc.id())\n            .zoneId(\"cn-beijing-k\")\n            .cidrBlock(\"10.0.2.0/24\")\n            .vswitchName(\"tf-exampleacc-301\")\n            .ipv6CidrBlockMask(8)\n            .build());\n\n        var nlb = new LoadBalancer(\"nlb\", LoadBalancerArgs.builder()\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(vsw1.id())\n                    .zoneId(vsw1.zoneId())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(vsw2.id())\n                    .zoneId(vsw2.zoneId())\n                    .build())\n            .vpcId(vpc.id())\n            .addressType(\"Intranet\")\n            .build());\n\n        var default_ = new LoadBalancerZoneShiftedAttachment(\"default\", LoadBalancerZoneShiftedAttachmentArgs.builder()\n            .zoneId(vsw1.zoneId())\n            .vswitchId(vsw1.id())\n            .loadBalancerId(nlb.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: example\n      cidrBlock: 10.0.0.0/8\n      enableIpv6: true\n      vpcName: tf-exampleacc-248\n  vsw1:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${vpc.id}\n      zoneId: cn-beijing-l\n      cidrBlock: 10.0.1.0/24\n      vswitchName: tf-exampleacc-41\n  vsw2:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${vpc.id}\n      zoneId: cn-beijing-k\n      cidrBlock: 10.0.2.0/24\n      vswitchName: tf-exampleacc-301\n      ipv6CidrBlockMask: '8'\n  nlb:\n    type: alicloud:nlb:LoadBalancer\n    properties:\n      zoneMappings:\n        - vswitchId: ${vsw1.id}\n          zoneId: ${vsw1.zoneId}\n        - vswitchId: ${vsw2.id}\n          zoneId: ${vsw2.zoneId}\n      vpcId: ${vpc.id}\n      addressType: Intranet\n  default:\n    type: alicloud:nlb:LoadBalancerZoneShiftedAttachment\n    properties:\n      zoneId: ${vsw1.zoneId}\n      vswitchId: ${vsw1.id}\n      loadBalancerId: ${nlb.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nNetwork Load Balancer (NLB) Load Balancer Zone Shifted Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nlb/loadBalancerZoneShiftedAttachment:LoadBalancerZoneShiftedAttachment example \u003cload_balancer_id\u003e:\u003czone_id\u003e:\u003cvswitch_id\u003e\n```\n\n","properties":{"loadBalancerId":{"type":"string","description":"Network load balancer id\n"},"status":{"type":"string","description":"Status\n"},"vswitchId":{"type":"string","description":"The list of zones and vSwitch mappings\n"},"zoneId":{"type":"string","description":"ZoneId\n"}},"required":["loadBalancerId","status","vswitchId","zoneId"],"inputProperties":{"loadBalancerId":{"type":"string","description":"Network load balancer id\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The list of zones and vSwitch mappings\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"ZoneId\n","willReplaceOnChanges":true}},"requiredInputs":["loadBalancerId","vswitchId","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancerZoneShiftedAttachment resources.\n","properties":{"loadBalancerId":{"type":"string","description":"Network load balancer id\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Status\n"},"vswitchId":{"type":"string","description":"The list of zones and vSwitch mappings\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"ZoneId\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:nlb/loadbalancerCommonBandwidthPackageAttachment:LoadbalancerCommonBandwidthPackageAttachment":{"description":"Provides a NLB Loadbalancer Common Bandwidth Package Attachment resource.\n\nBandwidth Package Operation.\n\nFor information about NLB Loadbalancer Common Bandwidth Package Attachment and how to use it, see [What is Loadbalancer Common Bandwidth Package Attachment](https://www.alibabacloud.com/help/en/server-load-balancer/latest/nlb-instances-change).\n\n\u003e **NOTE:** Available since v1.209.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultGetZones = alicloud.nlb.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst default1 = new alicloud.vpc.Switch(\"default1\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.1.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[1]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultLoadBalancer = new alicloud.nlb.LoadBalancer(\"default\", {\n    loadBalancerName: name,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    loadBalancerType: \"Network\",\n    addressType: \"Internet\",\n    addressIpVersion: \"Ipv4\",\n    vpcId: defaultNetwork.id,\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    zoneMappings: [\n        {\n            vswitchId: defaultSwitch.id,\n            zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n        },\n        {\n            vswitchId: default1.id,\n            zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[1]?.id),\n        },\n    ],\n});\nconst defaultCommonBandwithPackage = new alicloud.vpc.CommonBandwithPackage(\"default\", {\n    bandwidth: \"2\",\n    internetChargeType: \"PayByTraffic\",\n    bandwidthPackageName: name,\n    description: name,\n});\nconst defaultLoadbalancerCommonBandwidthPackageAttachment = new alicloud.nlb.LoadbalancerCommonBandwidthPackageAttachment(\"default\", {\n    bandwidthPackageId: defaultCommonBandwithPackage.id,\n    loadBalancerId: defaultLoadBalancer.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_get_zones = alicloud.nlb.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault1 = alicloud.vpc.Switch(\"default1\",\n    vswitch_name=name,\n    cidr_block=\"10.4.1.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[1].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_load_balancer = alicloud.nlb.LoadBalancer(\"default\",\n    load_balancer_name=name,\n    resource_group_id=default.ids[0],\n    load_balancer_type=\"Network\",\n    address_type=\"Internet\",\n    address_ip_version=\"Ipv4\",\n    vpc_id=default_network.id,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    zone_mappings=[\n        {\n            \"vswitch_id\": default_switch.id,\n            \"zone_id\": default_get_zones.zones[0].id,\n        },\n        {\n            \"vswitch_id\": default1.id,\n            \"zone_id\": default_get_zones.zones[1].id,\n        },\n    ])\ndefault_common_bandwith_package = alicloud.vpc.CommonBandwithPackage(\"default\",\n    bandwidth=\"2\",\n    internet_charge_type=\"PayByTraffic\",\n    bandwidth_package_name=name,\n    description=name)\ndefault_loadbalancer_common_bandwidth_package_attachment = alicloud.nlb.LoadbalancerCommonBandwidthPackageAttachment(\"default\",\n    bandwidth_package_id=default_common_bandwith_package.id,\n    load_balancer_id=default_load_balancer.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultGetZones = AliCloud.Nlb.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var default1 = new AliCloud.Vpc.Switch(\"default1\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.1.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultLoadBalancer = new AliCloud.Nlb.LoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = name,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        LoadBalancerType = \"Network\",\n        AddressType = \"Internet\",\n        AddressIpVersion = \"Ipv4\",\n        VpcId = defaultNetwork.Id,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        ZoneMappings = new[]\n        {\n            new AliCloud.Nlb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch.Id,\n                ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n            },\n            new AliCloud.Nlb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = default1.Id,\n                ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n            },\n        },\n    });\n\n    var defaultCommonBandwithPackage = new AliCloud.Vpc.CommonBandwithPackage(\"default\", new()\n    {\n        Bandwidth = \"2\",\n        InternetChargeType = \"PayByTraffic\",\n        BandwidthPackageName = name,\n        Description = name,\n    });\n\n    var defaultLoadbalancerCommonBandwidthPackageAttachment = new AliCloud.Nlb.LoadbalancerCommonBandwidthPackageAttachment(\"default\", new()\n    {\n        BandwidthPackageId = defaultCommonBandwithPackage.Id,\n        LoadBalancerId = defaultLoadBalancer.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := nlb.GetZones(ctx, \u0026nlb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1, err := vpc.NewSwitch(ctx, \"default1\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.1.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[1].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultLoadBalancer, err := nlb.NewLoadBalancer(ctx, \"default\", \u0026nlb.LoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tResourceGroupId:  pulumi.String(_default.Ids[0]),\n\t\t\tLoadBalancerType: pulumi.String(\"Network\"),\n\t\t\tAddressType:      pulumi.String(\"Internet\"),\n\t\t\tAddressIpVersion: pulumi.String(\"Ipv4\"),\n\t\t\tVpcId:            defaultNetwork.ID(),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tZoneMappings: nlb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026nlb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t\t\t\tZoneId:    pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\t\t},\n\t\t\t\t\u0026nlb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: default1.ID(),\n\t\t\t\t\tZoneId:    pulumi.String(defaultGetZones.Zones[1].Id),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCommonBandwithPackage, err := vpc.NewCommonBandwithPackage(ctx, \"default\", \u0026vpc.CommonBandwithPackageArgs{\n\t\t\tBandwidth:            pulumi.String(\"2\"),\n\t\t\tInternetChargeType:   pulumi.String(\"PayByTraffic\"),\n\t\t\tBandwidthPackageName: pulumi.String(name),\n\t\t\tDescription:          pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nlb.NewLoadbalancerCommonBandwidthPackageAttachment(ctx, \"default\", \u0026nlb.LoadbalancerCommonBandwidthPackageAttachmentArgs{\n\t\t\tBandwidthPackageId: defaultCommonBandwithPackage.ID(),\n\t\t\tLoadBalancerId:     defaultLoadBalancer.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.nlb.NlbFunctions;\nimport com.pulumi.alicloud.nlb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.nlb.LoadBalancer;\nimport com.pulumi.alicloud.nlb.LoadBalancerArgs;\nimport com.pulumi.alicloud.nlb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.vpc.CommonBandwithPackage;\nimport com.pulumi.alicloud.vpc.CommonBandwithPackageArgs;\nimport com.pulumi.alicloud.nlb.LoadbalancerCommonBandwidthPackageAttachment;\nimport com.pulumi.alicloud.nlb.LoadbalancerCommonBandwidthPackageAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var defaultGetZones = NlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var default1 = new Switch(\"default1\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.1.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[1].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .resourceGroupId(default_.ids()[0])\n            .loadBalancerType(\"Network\")\n            .addressType(\"Internet\")\n            .addressIpVersion(\"Ipv4\")\n            .vpcId(defaultNetwork.id())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch.id())\n                    .zoneId(defaultGetZones.zones()[0].id())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(default1.id())\n                    .zoneId(defaultGetZones.zones()[1].id())\n                    .build())\n            .build());\n\n        var defaultCommonBandwithPackage = new CommonBandwithPackage(\"defaultCommonBandwithPackage\", CommonBandwithPackageArgs.builder()\n            .bandwidth(\"2\")\n            .internetChargeType(\"PayByTraffic\")\n            .bandwidthPackageName(name)\n            .description(name)\n            .build());\n\n        var defaultLoadbalancerCommonBandwidthPackageAttachment = new LoadbalancerCommonBandwidthPackageAttachment(\"defaultLoadbalancerCommonBandwidthPackageAttachment\", LoadbalancerCommonBandwidthPackageAttachmentArgs.builder()\n            .bandwidthPackageId(defaultCommonBandwithPackage.id())\n            .loadBalancerId(defaultLoadBalancer.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  default1:\n    type: alicloud:vpc:Switch\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.1.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[1].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultLoadBalancer:\n    type: alicloud:nlb:LoadBalancer\n    name: default\n    properties:\n      loadBalancerName: ${name}\n      resourceGroupId: ${default.ids[0]}\n      loadBalancerType: Network\n      addressType: Internet\n      addressIpVersion: Ipv4\n      vpcId: ${defaultNetwork.id}\n      tags:\n        Created: TF\n        For: example\n      zoneMappings:\n        - vswitchId: ${defaultSwitch.id}\n          zoneId: ${defaultGetZones.zones[0].id}\n        - vswitchId: ${default1.id}\n          zoneId: ${defaultGetZones.zones[1].id}\n  defaultCommonBandwithPackage:\n    type: alicloud:vpc:CommonBandwithPackage\n    name: default\n    properties:\n      bandwidth: 2\n      internetChargeType: PayByTraffic\n      bandwidthPackageName: ${name}\n      description: ${name}\n  defaultLoadbalancerCommonBandwidthPackageAttachment:\n    type: alicloud:nlb:LoadbalancerCommonBandwidthPackageAttachment\n    name: default\n    properties:\n      bandwidthPackageId: ${defaultCommonBandwithPackage.id}\n      loadBalancerId: ${defaultLoadBalancer.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:nlb:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nNLB Loadbalancer Common Bandwidth Package Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nlb/loadbalancerCommonBandwidthPackageAttachment:LoadbalancerCommonBandwidthPackageAttachment example \u003cload_balancer_id\u003e:\u003cbandwidth_package_id\u003e\n```\n\n","properties":{"bandwidthPackageId":{"type":"string","description":"Specifies whether only to precheck the request. Valid values:\n"},"loadBalancerId":{"type":"string","description":"The ID of the EIP bandwidth plan.\n"},"status":{"type":"string","description":"Network-based load balancing instance status. Value:, indicating that the instance listener will no longer forward traffic.\n"}},"required":["bandwidthPackageId","loadBalancerId","status"],"inputProperties":{"bandwidthPackageId":{"type":"string","description":"Specifies whether only to precheck the request. Valid values:\n","willReplaceOnChanges":true},"loadBalancerId":{"type":"string","description":"The ID of the EIP bandwidth plan.\n","willReplaceOnChanges":true}},"requiredInputs":["bandwidthPackageId","loadBalancerId"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadbalancerCommonBandwidthPackageAttachment resources.\n","properties":{"bandwidthPackageId":{"type":"string","description":"Specifies whether only to precheck the request. Valid values:\n","willReplaceOnChanges":true},"loadBalancerId":{"type":"string","description":"The ID of the EIP bandwidth plan.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Network-based load balancing instance status. Value:, indicating that the instance listener will no longer forward traffic.\n"}},"type":"object"}},"alicloud:nlb/securityPolicy:SecurityPolicy":{"description":"Provides a NLB Security Policy resource.\n\n\n\nFor information about NLB Security Policy and how to use it, see [What is Security Policy](https://www.alibabacloud.com/help/en/server-load-balancer/latest/createsecuritypolicy-nlb).\n\n\u003e **NOTE:** Available since v1.187.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultSecurityPolicy = new alicloud.nlb.SecurityPolicy(\"default\", {\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    securityPolicyName: name,\n    ciphers: [\n        \"ECDHE-RSA-AES128-SHA\",\n        \"ECDHE-ECDSA-AES128-SHA\",\n    ],\n    tlsVersions: [\n        \"TLSv1.0\",\n        \"TLSv1.1\",\n        \"TLSv1.2\",\n    ],\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_security_policy = alicloud.nlb.SecurityPolicy(\"default\",\n    resource_group_id=default.ids[0],\n    security_policy_name=name,\n    ciphers=[\n        \"ECDHE-RSA-AES128-SHA\",\n        \"ECDHE-ECDSA-AES128-SHA\",\n    ],\n    tls_versions=[\n        \"TLSv1.0\",\n        \"TLSv1.1\",\n        \"TLSv1.2\",\n    ],\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultSecurityPolicy = new AliCloud.Nlb.SecurityPolicy(\"default\", new()\n    {\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        SecurityPolicyName = name,\n        Ciphers = new[]\n        {\n            \"ECDHE-RSA-AES128-SHA\",\n            \"ECDHE-ECDSA-AES128-SHA\",\n        },\n        TlsVersions = new[]\n        {\n            \"TLSv1.0\",\n            \"TLSv1.1\",\n            \"TLSv1.2\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nlb.NewSecurityPolicy(ctx, \"default\", \u0026nlb.SecurityPolicyArgs{\n\t\t\tResourceGroupId:    pulumi.String(_default.Ids[0]),\n\t\t\tSecurityPolicyName: pulumi.String(name),\n\t\t\tCiphers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ECDHE-RSA-AES128-SHA\"),\n\t\t\t\tpulumi.String(\"ECDHE-ECDSA-AES128-SHA\"),\n\t\t\t},\n\t\t\tTlsVersions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"TLSv1.0\"),\n\t\t\t\tpulumi.String(\"TLSv1.1\"),\n\t\t\t\tpulumi.String(\"TLSv1.2\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.nlb.SecurityPolicy;\nimport com.pulumi.alicloud.nlb.SecurityPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultSecurityPolicy = new SecurityPolicy(\"defaultSecurityPolicy\", SecurityPolicyArgs.builder()\n            .resourceGroupId(default_.ids()[0])\n            .securityPolicyName(name)\n            .ciphers(            \n                \"ECDHE-RSA-AES128-SHA\",\n                \"ECDHE-ECDSA-AES128-SHA\")\n            .tlsVersions(            \n                \"TLSv1.0\",\n                \"TLSv1.1\",\n                \"TLSv1.2\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultSecurityPolicy:\n    type: alicloud:nlb:SecurityPolicy\n    name: default\n    properties:\n      resourceGroupId: ${default.ids[0]}\n      securityPolicyName: ${name}\n      ciphers:\n        - ECDHE-RSA-AES128-SHA\n        - ECDHE-ECDSA-AES128-SHA\n      tlsVersions:\n        - TLSv1.0\n        - TLSv1.1\n        - TLSv1.2\n      tags:\n        Created: TF\n        For: example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nNLB Security Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nlb/securityPolicy:SecurityPolicy example \u003cid\u003e\n```\n\n","properties":{"ciphers":{"type":"array","items":{"type":"string"},"description":"The supported cipher suites, which are determined by the TLS protocol version. You can specify at most 32 cipher suites.\n- TLS 1.0 and TLS 1.1 support the following cipher suites: `ECDHE-ECDSA-AES128-SHA`, `ECDHE-ECDSA-AES256-SHA`, `ECDHE-RSA-AES128-SHA`, `ECDHE-RSA-AES256-SHA`, `AES128-SHA`, `AES256-SHA`, `DES-CBC3-SHA`\n- TLS 1.2 supports the following cipher suites: `ECDHE-ECDSA-AES128-SHA`, `ECDHE-ECDSA-AES256-SHA`, `ECDHE-RSA-AES128-SHA`, `ECDHE-RSA-AES256-SHA`, `AES128-SHA`, `AES256-SHA, DES-CBC3-SHA`, `ECDHE-ECDSA-AES128-GCM-SHA256`, `ECDHE-ECDSA-AES256-GCM-SHA384`, `ECDHE-ECDSA-AES128-SHA256`, `ECDHE-ECDSA-AES256-SHA384`, `ECDHE-RSA-AES128-GCM-SHA256`, `ECDHE-RSA-AES256-GCM-SHA384`, `ECDHE-RSA-AES128-SHA256`, `ECDHE-RSA-AES256-SHA384`, `AES128-GCM-SHA256`, `AES256-GCM-SHA384`, `AES128-SHA256`, `AES256-SHA256`\n- TLS 1.3 supports the following cipher suites: `TLS_AES_128_GCM_SHA256`, `TLS_AES_256_GCM_SHA384`, `TLS_CHACHA20_POLY1305_SHA256`, `TLS_AES_128_CCM_SHA256`, `TLS_AES_128_CCM_8_SHA256`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the new resource group.\n\nYou can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups) to view resource group IDs.\n"},"securityPolicyName":{"type":"string","description":"The name of the security policy.\n\nThe name must be 1 to 200 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"The supported versions of the Transport Layer Security (TLS) protocol. Valid values: `TLSv1.0`, `TLSv1.1`, `TLSv1.2`, and `TLSv1.3`. You can specify at most four TLS versions.\n"}},"required":["ciphers","resourceGroupId","securityPolicyName","status","tlsVersions"],"inputProperties":{"ciphers":{"type":"array","items":{"type":"string"},"description":"The supported cipher suites, which are determined by the TLS protocol version. You can specify at most 32 cipher suites.\n- TLS 1.0 and TLS 1.1 support the following cipher suites: `ECDHE-ECDSA-AES128-SHA`, `ECDHE-ECDSA-AES256-SHA`, `ECDHE-RSA-AES128-SHA`, `ECDHE-RSA-AES256-SHA`, `AES128-SHA`, `AES256-SHA`, `DES-CBC3-SHA`\n- TLS 1.2 supports the following cipher suites: `ECDHE-ECDSA-AES128-SHA`, `ECDHE-ECDSA-AES256-SHA`, `ECDHE-RSA-AES128-SHA`, `ECDHE-RSA-AES256-SHA`, `AES128-SHA`, `AES256-SHA, DES-CBC3-SHA`, `ECDHE-ECDSA-AES128-GCM-SHA256`, `ECDHE-ECDSA-AES256-GCM-SHA384`, `ECDHE-ECDSA-AES128-SHA256`, `ECDHE-ECDSA-AES256-SHA384`, `ECDHE-RSA-AES128-GCM-SHA256`, `ECDHE-RSA-AES256-GCM-SHA384`, `ECDHE-RSA-AES128-SHA256`, `ECDHE-RSA-AES256-SHA384`, `AES128-GCM-SHA256`, `AES256-GCM-SHA384`, `AES128-SHA256`, `AES256-SHA256`\n- TLS 1.3 supports the following cipher suites: `TLS_AES_128_GCM_SHA256`, `TLS_AES_256_GCM_SHA384`, `TLS_CHACHA20_POLY1305_SHA256`, `TLS_AES_128_CCM_SHA256`, `TLS_AES_128_CCM_8_SHA256`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the new resource group.\n\nYou can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups) to view resource group IDs.\n"},"securityPolicyName":{"type":"string","description":"The name of the security policy.\n\nThe name must be 1 to 200 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"The supported versions of the Transport Layer Security (TLS) protocol. Valid values: `TLSv1.0`, `TLSv1.1`, `TLSv1.2`, and `TLSv1.3`. You can specify at most four TLS versions.\n"}},"requiredInputs":["ciphers","tlsVersions"],"stateInputs":{"description":"Input properties used for looking up and filtering SecurityPolicy resources.\n","properties":{"ciphers":{"type":"array","items":{"type":"string"},"description":"The supported cipher suites, which are determined by the TLS protocol version. You can specify at most 32 cipher suites.\n- TLS 1.0 and TLS 1.1 support the following cipher suites: `ECDHE-ECDSA-AES128-SHA`, `ECDHE-ECDSA-AES256-SHA`, `ECDHE-RSA-AES128-SHA`, `ECDHE-RSA-AES256-SHA`, `AES128-SHA`, `AES256-SHA`, `DES-CBC3-SHA`\n- TLS 1.2 supports the following cipher suites: `ECDHE-ECDSA-AES128-SHA`, `ECDHE-ECDSA-AES256-SHA`, `ECDHE-RSA-AES128-SHA`, `ECDHE-RSA-AES256-SHA`, `AES128-SHA`, `AES256-SHA, DES-CBC3-SHA`, `ECDHE-ECDSA-AES128-GCM-SHA256`, `ECDHE-ECDSA-AES256-GCM-SHA384`, `ECDHE-ECDSA-AES128-SHA256`, `ECDHE-ECDSA-AES256-SHA384`, `ECDHE-RSA-AES128-GCM-SHA256`, `ECDHE-RSA-AES256-GCM-SHA384`, `ECDHE-RSA-AES128-SHA256`, `ECDHE-RSA-AES256-SHA384`, `AES128-GCM-SHA256`, `AES256-GCM-SHA384`, `AES128-SHA256`, `AES256-SHA256`\n- TLS 1.3 supports the following cipher suites: `TLS_AES_128_GCM_SHA256`, `TLS_AES_256_GCM_SHA384`, `TLS_CHACHA20_POLY1305_SHA256`, `TLS_AES_128_CCM_SHA256`, `TLS_AES_128_CCM_8_SHA256`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the new resource group.\n\nYou can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups) to view resource group IDs.\n"},"securityPolicyName":{"type":"string","description":"The name of the security policy.\n\nThe name must be 1 to 200 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"The supported versions of the Transport Layer Security (TLS) protocol. Valid values: `TLSv1.0`, `TLSv1.1`, `TLSv1.2`, and `TLSv1.3`. You can specify at most four TLS versions.\n"}},"type":"object"}},"alicloud:nlb/serverGroup:ServerGroup":{"description":"Provides a Network Load Balancer (NLB) Server Group resource.\n\n\n\nFor information about Network Load Balancer (NLB) Server Group and how to use it, see [What is Server Group](https://www.alibabacloud.com/help/en/server-load-balancer/latest/createservergroup-nlb).\n\n\u003e **NOTE:** Available since v1.186.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultServerGroup = new alicloud.nlb.ServerGroup(\"default\", {\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    serverGroupName: name,\n    serverGroupType: \"Instance\",\n    vpcId: defaultNetwork.id,\n    scheduler: \"Wrr\",\n    protocol: \"TCP\",\n    connectionDrainEnabled: true,\n    connectionDrainTimeout: 60,\n    addressIpVersion: \"Ipv4\",\n    healthCheck: {\n        healthCheckEnabled: true,\n        healthCheckType: \"TCP\",\n        healthCheckConnectPort: 0,\n        healthyThreshold: 2,\n        unhealthyThreshold: 2,\n        healthCheckConnectTimeout: 5,\n        healthCheckInterval: 10,\n        httpCheckMethod: \"GET\",\n        healthCheckHttpCodes: [\n            \"http_2xx\",\n            \"http_3xx\",\n            \"http_4xx\",\n        ],\n    },\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_server_group = alicloud.nlb.ServerGroup(\"default\",\n    resource_group_id=default.ids[0],\n    server_group_name=name,\n    server_group_type=\"Instance\",\n    vpc_id=default_network.id,\n    scheduler=\"Wrr\",\n    protocol=\"TCP\",\n    connection_drain_enabled=True,\n    connection_drain_timeout=60,\n    address_ip_version=\"Ipv4\",\n    health_check={\n        \"health_check_enabled\": True,\n        \"health_check_type\": \"TCP\",\n        \"health_check_connect_port\": 0,\n        \"healthy_threshold\": 2,\n        \"unhealthy_threshold\": 2,\n        \"health_check_connect_timeout\": 5,\n        \"health_check_interval\": 10,\n        \"http_check_method\": \"GET\",\n        \"health_check_http_codes\": [\n            \"http_2xx\",\n            \"http_3xx\",\n            \"http_4xx\",\n        ],\n    },\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultServerGroup = new AliCloud.Nlb.ServerGroup(\"default\", new()\n    {\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        ServerGroupName = name,\n        ServerGroupType = \"Instance\",\n        VpcId = defaultNetwork.Id,\n        Scheduler = \"Wrr\",\n        Protocol = \"TCP\",\n        ConnectionDrainEnabled = true,\n        ConnectionDrainTimeout = 60,\n        AddressIpVersion = \"Ipv4\",\n        HealthCheck = new AliCloud.Nlb.Inputs.ServerGroupHealthCheckArgs\n        {\n            HealthCheckEnabled = true,\n            HealthCheckType = \"TCP\",\n            HealthCheckConnectPort = 0,\n            HealthyThreshold = 2,\n            UnhealthyThreshold = 2,\n            HealthCheckConnectTimeout = 5,\n            HealthCheckInterval = 10,\n            HttpCheckMethod = \"GET\",\n            HealthCheckHttpCodes = new[]\n            {\n                \"http_2xx\",\n                \"http_3xx\",\n                \"http_4xx\",\n            },\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nlb.NewServerGroup(ctx, \"default\", \u0026nlb.ServerGroupArgs{\n\t\t\tResourceGroupId:        pulumi.String(_default.Ids[0]),\n\t\t\tServerGroupName:        pulumi.String(name),\n\t\t\tServerGroupType:        pulumi.String(\"Instance\"),\n\t\t\tVpcId:                  defaultNetwork.ID(),\n\t\t\tScheduler:              pulumi.String(\"Wrr\"),\n\t\t\tProtocol:               pulumi.String(\"TCP\"),\n\t\t\tConnectionDrainEnabled: pulumi.Bool(true),\n\t\t\tConnectionDrainTimeout: pulumi.Int(60),\n\t\t\tAddressIpVersion:       pulumi.String(\"Ipv4\"),\n\t\t\tHealthCheck: \u0026nlb.ServerGroupHealthCheckArgs{\n\t\t\t\tHealthCheckEnabled:        pulumi.Bool(true),\n\t\t\t\tHealthCheckType:           pulumi.String(\"TCP\"),\n\t\t\t\tHealthCheckConnectPort:    pulumi.Int(0),\n\t\t\t\tHealthyThreshold:          pulumi.Int(2),\n\t\t\t\tUnhealthyThreshold:        pulumi.Int(2),\n\t\t\t\tHealthCheckConnectTimeout: pulumi.Int(5),\n\t\t\t\tHealthCheckInterval:       pulumi.Int(10),\n\t\t\t\tHttpCheckMethod:           pulumi.String(\"GET\"),\n\t\t\t\tHealthCheckHttpCodes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"http_2xx\"),\n\t\t\t\t\tpulumi.String(\"http_3xx\"),\n\t\t\t\t\tpulumi.String(\"http_4xx\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.nlb.ServerGroup;\nimport com.pulumi.alicloud.nlb.ServerGroupArgs;\nimport com.pulumi.alicloud.nlb.inputs.ServerGroupHealthCheckArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .resourceGroupId(default_.ids()[0])\n            .serverGroupName(name)\n            .serverGroupType(\"Instance\")\n            .vpcId(defaultNetwork.id())\n            .scheduler(\"Wrr\")\n            .protocol(\"TCP\")\n            .connectionDrainEnabled(true)\n            .connectionDrainTimeout(60)\n            .addressIpVersion(\"Ipv4\")\n            .healthCheck(ServerGroupHealthCheckArgs.builder()\n                .healthCheckEnabled(true)\n                .healthCheckType(\"TCP\")\n                .healthCheckConnectPort(0)\n                .healthyThreshold(2)\n                .unhealthyThreshold(2)\n                .healthCheckConnectTimeout(5)\n                .healthCheckInterval(10)\n                .httpCheckMethod(\"GET\")\n                .healthCheckHttpCodes(                \n                    \"http_2xx\",\n                    \"http_3xx\",\n                    \"http_4xx\")\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultServerGroup:\n    type: alicloud:nlb:ServerGroup\n    name: default\n    properties:\n      resourceGroupId: ${default.ids[0]}\n      serverGroupName: ${name}\n      serverGroupType: Instance\n      vpcId: ${defaultNetwork.id}\n      scheduler: Wrr\n      protocol: TCP\n      connectionDrainEnabled: true\n      connectionDrainTimeout: 60\n      addressIpVersion: Ipv4\n      healthCheck:\n        healthCheckEnabled: true\n        healthCheckType: TCP\n        healthCheckConnectPort: 0\n        healthyThreshold: 2\n        unhealthyThreshold: 2\n        healthCheckConnectTimeout: 5\n        healthCheckInterval: 10\n        httpCheckMethod: GET\n        healthCheckHttpCodes:\n          - http_2xx\n          - http_3xx\n          - http_4xx\n      tags:\n        Created: TF\n        For: example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nNetwork Load Balancer (NLB) Server Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nlb/serverGroup:ServerGroup example \u003cid\u003e\n```\n\n","properties":{"addressIpVersion":{"type":"string","description":"The protocol version. Valid values:\n"},"anyPortEnabled":{"type":"boolean","description":"Specifies whether to enable all-port forwarding. Valid values:\n"},"connectionDrain":{"type":"boolean","description":". Field 'connection_drain' has been deprecated from provider version 1.231.0. New field 'connection_drain_enabled' instead.\n","deprecationMessage":"Field 'connection_drain' has been deprecated since provider version 1.214.0. New field 'connection_drain_enabled' instead."},"connectionDrainEnabled":{"type":"boolean","description":"Specifies whether to enable connection draining. Valid values:\n"},"connectionDrainTimeout":{"type":"integer","description":"The timeout period of connection draining. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e.\n"},"healthCheck":{"$ref":"#/types/alicloud:nlb/ServerGroupHealthCheck:ServerGroupHealthCheck","description":"Health check configuration information. See \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e below.\n"},"preserveClientIpEnabled":{"type":"boolean","description":"Specifies whether to enable client IP preservation. Valid values:\n"},"protocol":{"type":"string","description":"The protocol used to forward requests to the backend servers. Valid values:\n\n- `TCP` (default)\n- `UDP`\n- `TCPSSL`\n"},"regionId":{"type":"string","description":"The ID of the region where the NLB instance is deployed.\n"},"resourceGroupId":{"type":"string","description":"The ID of the new resource group.\nYou can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups) to view resource group IDs.\n"},"scheduler":{"type":"string","description":"The scheduling algorithm. Valid values:\n\n- **Wrr:** The weighted round-robin algorithm is used. Backend servers with higher weights receive more requests than backend servers with lower weights. This is the default value.\n- **Rr:** The round-robin algorithm is used. Requests are forwarded to backend servers in sequence.\n- **Sch:** Source IP hashing is used. Requests from the same source IP address are forwarded to the same backend server.\n- **Tch:** Four-element hashing is used. It specifies consistent hashing that is based on four factors: source IP address, destination IP address, source port, and destination port. Requests that contain the same information based on the four factors are forwarded to the same backend server.\n- `Qch`: QUIC ID hashing. Requests that contain the same QUIC ID are forwarded to the same backend server.\n"},"serverGroupName":{"type":"string","description":"The new name of the server group.\nThe name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.\n"},"serverGroupType":{"type":"string","description":"The type of server group. Valid values:\n\n- `Instance`: allows you to add servers of the `Ecs`, `Eni`, or `Eci` type. This is the default value.\n- `Ip`: allows you to add servers by specifying IP addresses.\n"},"status":{"type":"string","description":"Server group status. Value:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Label.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) to which the server group belongs.\n\n\u003e **NOTE:**  If `ServerGroupType` is set to `Instance`, only servers in the specified VPC can be added to the server group.\n\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["addressIpVersion","anyPortEnabled","connectionDrain","connectionDrainEnabled","connectionDrainTimeout","healthCheck","preserveClientIpEnabled","protocol","regionId","resourceGroupId","scheduler","serverGroupName","serverGroupType","status","vpcId"],"inputProperties":{"addressIpVersion":{"type":"string","description":"The protocol version. Valid values:\n","willReplaceOnChanges":true},"anyPortEnabled":{"type":"boolean","description":"Specifies whether to enable all-port forwarding. Valid values:\n","willReplaceOnChanges":true},"connectionDrain":{"type":"boolean","description":". Field 'connection_drain' has been deprecated from provider version 1.231.0. New field 'connection_drain_enabled' instead.\n","deprecationMessage":"Field 'connection_drain' has been deprecated since provider version 1.214.0. New field 'connection_drain_enabled' instead."},"connectionDrainEnabled":{"type":"boolean","description":"Specifies whether to enable connection draining. Valid values:\n"},"connectionDrainTimeout":{"type":"integer","description":"The timeout period of connection draining. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e.\n"},"healthCheck":{"$ref":"#/types/alicloud:nlb/ServerGroupHealthCheck:ServerGroupHealthCheck","description":"Health check configuration information. See \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e below.\n"},"preserveClientIpEnabled":{"type":"boolean","description":"Specifies whether to enable client IP preservation. Valid values:\n"},"protocol":{"type":"string","description":"The protocol used to forward requests to the backend servers. Valid values:\n\n- `TCP` (default)\n- `UDP`\n- `TCPSSL`\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the new resource group.\nYou can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups) to view resource group IDs.\n"},"scheduler":{"type":"string","description":"The scheduling algorithm. Valid values:\n\n- **Wrr:** The weighted round-robin algorithm is used. Backend servers with higher weights receive more requests than backend servers with lower weights. This is the default value.\n- **Rr:** The round-robin algorithm is used. Requests are forwarded to backend servers in sequence.\n- **Sch:** Source IP hashing is used. Requests from the same source IP address are forwarded to the same backend server.\n- **Tch:** Four-element hashing is used. It specifies consistent hashing that is based on four factors: source IP address, destination IP address, source port, and destination port. Requests that contain the same information based on the four factors are forwarded to the same backend server.\n- `Qch`: QUIC ID hashing. Requests that contain the same QUIC ID are forwarded to the same backend server.\n"},"serverGroupName":{"type":"string","description":"The new name of the server group.\nThe name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.\n"},"serverGroupType":{"type":"string","description":"The type of server group. Valid values:\n\n- `Instance`: allows you to add servers of the `Ecs`, `Eni`, or `Eci` type. This is the default value.\n- `Ip`: allows you to add servers by specifying IP addresses.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Label.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) to which the server group belongs.\n\n\u003e **NOTE:**  If `ServerGroupType` is set to `Instance`, only servers in the specified VPC can be added to the server group.\n\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"requiredInputs":["serverGroupName","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering ServerGroup resources.\n","properties":{"addressIpVersion":{"type":"string","description":"The protocol version. Valid values:\n","willReplaceOnChanges":true},"anyPortEnabled":{"type":"boolean","description":"Specifies whether to enable all-port forwarding. Valid values:\n","willReplaceOnChanges":true},"connectionDrain":{"type":"boolean","description":". Field 'connection_drain' has been deprecated from provider version 1.231.0. New field 'connection_drain_enabled' instead.\n","deprecationMessage":"Field 'connection_drain' has been deprecated since provider version 1.214.0. New field 'connection_drain_enabled' instead."},"connectionDrainEnabled":{"type":"boolean","description":"Specifies whether to enable connection draining. Valid values:\n"},"connectionDrainTimeout":{"type":"integer","description":"The timeout period of connection draining. Unit: seconds. Valid values: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`900`\" pulumi-lang-dotnet=\"`900`\" pulumi-lang-go=\"`900`\" pulumi-lang-python=\"`900`\" pulumi-lang-yaml=\"`900`\" pulumi-lang-java=\"`900`\"\u003e`900`\u003c/span\u003e.\n"},"healthCheck":{"$ref":"#/types/alicloud:nlb/ServerGroupHealthCheck:ServerGroupHealthCheck","description":"Health check configuration information. See \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e below.\n"},"preserveClientIpEnabled":{"type":"boolean","description":"Specifies whether to enable client IP preservation. Valid values:\n"},"protocol":{"type":"string","description":"The protocol used to forward requests to the backend servers. Valid values:\n\n- `TCP` (default)\n- `UDP`\n- `TCPSSL`\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The ID of the region where the NLB instance is deployed.\n"},"resourceGroupId":{"type":"string","description":"The ID of the new resource group.\nYou can log on to the [Resource Management console](https://resourcemanager.console.aliyun.com/resource-groups) to view resource group IDs.\n"},"scheduler":{"type":"string","description":"The scheduling algorithm. Valid values:\n\n- **Wrr:** The weighted round-robin algorithm is used. Backend servers with higher weights receive more requests than backend servers with lower weights. This is the default value.\n- **Rr:** The round-robin algorithm is used. Requests are forwarded to backend servers in sequence.\n- **Sch:** Source IP hashing is used. Requests from the same source IP address are forwarded to the same backend server.\n- **Tch:** Four-element hashing is used. It specifies consistent hashing that is based on four factors: source IP address, destination IP address, source port, and destination port. Requests that contain the same information based on the four factors are forwarded to the same backend server.\n- `Qch`: QUIC ID hashing. Requests that contain the same QUIC ID are forwarded to the same backend server.\n"},"serverGroupName":{"type":"string","description":"The new name of the server group.\nThe name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.\n"},"serverGroupType":{"type":"string","description":"The type of server group. Valid values:\n\n- `Instance`: allows you to add servers of the `Ecs`, `Eni`, or `Eci` type. This is the default value.\n- `Ip`: allows you to add servers by specifying IP addresses.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Server group status. Value:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Label.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) to which the server group belongs.\n\n\u003e **NOTE:**  If `ServerGroupType` is set to `Instance`, only servers in the specified VPC can be added to the server group.\n\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:nlb/serverGroupServerAttachment:ServerGroupServerAttachment":{"description":"Provides a Network Load Balancer (NLB) Server Group Server Attachment resource.\n\nNetwork Server Load Balancer.\n\nFor information about Network Load Balancer (NLB) Server Group Server Attachment and how to use it, see [What is Server Group Server Attachment](https://www.alibabacloud.com/help/en/server-load-balancer/latest/addserverstoservergroup-nlb).\n\n\u003e **NOTE:** Available since v1.192.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultServerGroup = new alicloud.nlb.ServerGroup(\"default\", {\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    serverGroupName: name,\n    serverGroupType: \"Ip\",\n    connectionDrainTimeout: 10,\n    connectionDrainEnabled: true,\n    vpcId: defaultNetwork.id,\n    scheduler: \"Wrr\",\n    protocol: \"TCP\",\n    healthCheck: {\n        healthCheckEnabled: false,\n    },\n    addressIpVersion: \"Ipv4\",\n});\nconst defaultServerGroupServerAttachment = new alicloud.nlb.ServerGroupServerAttachment(\"default\", {\n    serverType: \"Ip\",\n    serverId: \"10.0.0.0\",\n    description: name,\n    port: 80,\n    serverGroupId: defaultServerGroup.id,\n    weight: 100,\n    serverIp: \"10.0.0.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_server_group = alicloud.nlb.ServerGroup(\"default\",\n    resource_group_id=default.ids[0],\n    server_group_name=name,\n    server_group_type=\"Ip\",\n    connection_drain_timeout=10,\n    connection_drain_enabled=True,\n    vpc_id=default_network.id,\n    scheduler=\"Wrr\",\n    protocol=\"TCP\",\n    health_check={\n        \"health_check_enabled\": False,\n    },\n    address_ip_version=\"Ipv4\")\ndefault_server_group_server_attachment = alicloud.nlb.ServerGroupServerAttachment(\"default\",\n    server_type=\"Ip\",\n    server_id=\"10.0.0.0\",\n    description=name,\n    port=80,\n    server_group_id=default_server_group.id,\n    weight=100,\n    server_ip=\"10.0.0.0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultServerGroup = new AliCloud.Nlb.ServerGroup(\"default\", new()\n    {\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        ServerGroupName = name,\n        ServerGroupType = \"Ip\",\n        ConnectionDrainTimeout = 10,\n        ConnectionDrainEnabled = true,\n        VpcId = defaultNetwork.Id,\n        Scheduler = \"Wrr\",\n        Protocol = \"TCP\",\n        HealthCheck = new AliCloud.Nlb.Inputs.ServerGroupHealthCheckArgs\n        {\n            HealthCheckEnabled = false,\n        },\n        AddressIpVersion = \"Ipv4\",\n    });\n\n    var defaultServerGroupServerAttachment = new AliCloud.Nlb.ServerGroupServerAttachment(\"default\", new()\n    {\n        ServerType = \"Ip\",\n        ServerId = \"10.0.0.0\",\n        Description = name,\n        Port = 80,\n        ServerGroupId = defaultServerGroup.Id,\n        Weight = 100,\n        ServerIp = \"10.0.0.0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultServerGroup, err := nlb.NewServerGroup(ctx, \"default\", \u0026nlb.ServerGroupArgs{\n\t\t\tResourceGroupId:        pulumi.String(_default.Ids[0]),\n\t\t\tServerGroupName:        pulumi.String(name),\n\t\t\tServerGroupType:        pulumi.String(\"Ip\"),\n\t\t\tConnectionDrainTimeout: pulumi.Int(10),\n\t\t\tConnectionDrainEnabled: pulumi.Bool(true),\n\t\t\tVpcId:                  defaultNetwork.ID(),\n\t\t\tScheduler:              pulumi.String(\"Wrr\"),\n\t\t\tProtocol:               pulumi.String(\"TCP\"),\n\t\t\tHealthCheck: \u0026nlb.ServerGroupHealthCheckArgs{\n\t\t\t\tHealthCheckEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tAddressIpVersion: pulumi.String(\"Ipv4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = nlb.NewServerGroupServerAttachment(ctx, \"default\", \u0026nlb.ServerGroupServerAttachmentArgs{\n\t\t\tServerType:    pulumi.String(\"Ip\"),\n\t\t\tServerId:      pulumi.String(\"10.0.0.0\"),\n\t\t\tDescription:   pulumi.String(name),\n\t\t\tPort:          pulumi.Int(80),\n\t\t\tServerGroupId: defaultServerGroup.ID(),\n\t\t\tWeight:        pulumi.Int(100),\n\t\t\tServerIp:      pulumi.String(\"10.0.0.0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.nlb.ServerGroup;\nimport com.pulumi.alicloud.nlb.ServerGroupArgs;\nimport com.pulumi.alicloud.nlb.inputs.ServerGroupHealthCheckArgs;\nimport com.pulumi.alicloud.nlb.ServerGroupServerAttachment;\nimport com.pulumi.alicloud.nlb.ServerGroupServerAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .resourceGroupId(default_.ids()[0])\n            .serverGroupName(name)\n            .serverGroupType(\"Ip\")\n            .connectionDrainTimeout(10)\n            .connectionDrainEnabled(true)\n            .vpcId(defaultNetwork.id())\n            .scheduler(\"Wrr\")\n            .protocol(\"TCP\")\n            .healthCheck(ServerGroupHealthCheckArgs.builder()\n                .healthCheckEnabled(false)\n                .build())\n            .addressIpVersion(\"Ipv4\")\n            .build());\n\n        var defaultServerGroupServerAttachment = new ServerGroupServerAttachment(\"defaultServerGroupServerAttachment\", ServerGroupServerAttachmentArgs.builder()\n            .serverType(\"Ip\")\n            .serverId(\"10.0.0.0\")\n            .description(name)\n            .port(80)\n            .serverGroupId(defaultServerGroup.id())\n            .weight(100)\n            .serverIp(\"10.0.0.0\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultServerGroup:\n    type: alicloud:nlb:ServerGroup\n    name: default\n    properties:\n      resourceGroupId: ${default.ids[0]}\n      serverGroupName: ${name}\n      serverGroupType: Ip\n      connectionDrainTimeout: 10\n      connectionDrainEnabled: true\n      vpcId: ${defaultNetwork.id}\n      scheduler: Wrr\n      protocol: TCP\n      healthCheck:\n        healthCheckEnabled: false\n      addressIpVersion: Ipv4\n  defaultServerGroupServerAttachment:\n    type: alicloud:nlb:ServerGroupServerAttachment\n    name: default\n    properties:\n      serverType: Ip\n      serverId: 10.0.0.0\n      description: ${name}\n      port: 80\n      serverGroupId: ${defaultServerGroup.id}\n      weight: 100\n      serverIp: 10.0.0.0\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nNetwork Load Balancer (NLB) Server Group Server Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:nlb/serverGroupServerAttachment:ServerGroupServerAttachment example \u003cserver_group_id\u003e_\u003cserver_id\u003e_\u003cserver_ip\u003e_\u003cserver_type\u003e_\u003cport\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the servers.\nThe description must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).\n"},"port":{"type":"integer","description":"The port that is used by the backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n"},"serverGroupId":{"type":"string","description":"The ID of the server group.\n"},"serverId":{"type":"string","description":"The ID of the server.\n\n- If the server group type is `Instance`, set the ServerId parameter to the ID of an Elastic Compute Service (ECS) instance, an elastic network interface (ENI), or an elastic container instance. These backend servers are specified by `Ecs`, `Eni`, or `Eci`.\n- If the server group type is `Ip`, set the ServerId parameter to an IP address.\n"},"serverIp":{"type":"string","description":"The IP address of the server. If the server group type is `Ip`, set the ServerId parameter to an IP address.\n"},"serverType":{"type":"string","description":"The type of the backend server. Valid values:\n\n- `Ecs`: ECS instance\n- `Eni`: ENI\n- `Eci`: an elastic container instance\n- `Ip`: an IP address\n"},"status":{"type":"string","description":"The status of the resource\n"},"weight":{"type":"integer","description":"The weight of the backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. If the weight of a backend server is set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, no requests are forwarded to the backend server.\n"},"zoneId":{"type":"string","description":"The zone ID of the server.\n"}},"required":["port","serverGroupId","serverId","serverIp","serverType","status","weight","zoneId"],"inputProperties":{"description":{"type":"string","description":"The description of the servers.\nThe description must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).\n"},"port":{"type":"integer","description":"The port that is used by the backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n","willReplaceOnChanges":true},"serverGroupId":{"type":"string","description":"The ID of the server group.\n","willReplaceOnChanges":true},"serverId":{"type":"string","description":"The ID of the server.\n\n- If the server group type is `Instance`, set the ServerId parameter to the ID of an Elastic Compute Service (ECS) instance, an elastic network interface (ENI), or an elastic container instance. These backend servers are specified by `Ecs`, `Eni`, or `Eci`.\n- If the server group type is `Ip`, set the ServerId parameter to an IP address.\n","willReplaceOnChanges":true},"serverIp":{"type":"string","description":"The IP address of the server. If the server group type is `Ip`, set the ServerId parameter to an IP address.\n","willReplaceOnChanges":true},"serverType":{"type":"string","description":"The type of the backend server. Valid values:\n\n- `Ecs`: ECS instance\n- `Eni`: ENI\n- `Eci`: an elastic container instance\n- `Ip`: an IP address\n","willReplaceOnChanges":true},"weight":{"type":"integer","description":"The weight of the backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. If the weight of a backend server is set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, no requests are forwarded to the backend server.\n"}},"requiredInputs":["serverGroupId","serverId","serverType"],"stateInputs":{"description":"Input properties used for looking up and filtering ServerGroupServerAttachment resources.\n","properties":{"description":{"type":"string","description":"The description of the servers.\nThe description must be 2 to 256 characters in length, and can contain letters, digits, commas (,), periods (.), semicolons (;), forward slashes (/), at signs (@), underscores (\\_), and hyphens (-).\n"},"port":{"type":"integer","description":"The port that is used by the backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n","willReplaceOnChanges":true},"serverGroupId":{"type":"string","description":"The ID of the server group.\n","willReplaceOnChanges":true},"serverId":{"type":"string","description":"The ID of the server.\n\n- If the server group type is `Instance`, set the ServerId parameter to the ID of an Elastic Compute Service (ECS) instance, an elastic network interface (ENI), or an elastic container instance. These backend servers are specified by `Ecs`, `Eni`, or `Eci`.\n- If the server group type is `Ip`, set the ServerId parameter to an IP address.\n","willReplaceOnChanges":true},"serverIp":{"type":"string","description":"The IP address of the server. If the server group type is `Ip`, set the ServerId parameter to an IP address.\n","willReplaceOnChanges":true},"serverType":{"type":"string","description":"The type of the backend server. Valid values:\n\n- `Ecs`: ECS instance\n- `Eni`: ENI\n- `Eci`: an elastic container instance\n- `Ip`: an IP address\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"},"weight":{"type":"integer","description":"The weight of the backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. If the weight of a backend server is set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, no requests are forwarded to the backend server.\n"},"zoneId":{"type":"string","description":"The zone ID of the server.\n"}},"type":"object"}},"alicloud:ocean/baseInstance:BaseInstance":{"description":"Provides a Ocean Base Instance resource.\n\n\n\nFor information about Ocean Base Instance and how to use it, see [What is Instance](https://www.alibabacloud.com/help/en/apsaradb-for-oceanbase/latest/what-is-oceanbase-database).\n\n\u003e **NOTE:** Available since v1.203.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultBaseInstance = new alicloud.ocean.BaseInstance(\"default\", {\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.ids?.[0]),\n    zones: [\n        pulumi.all([_default, _default.then(_default =\u003e _default.ids).length]).apply(([_default, length]) =\u003e _default.ids[length - 2]),\n        pulumi.all([_default, _default.then(_default =\u003e _default.ids).length]).apply(([_default, length]) =\u003e _default.ids[length - 3]),\n        pulumi.all([_default, _default.then(_default =\u003e _default.ids).length]).apply(([_default, length]) =\u003e _default.ids[length - 4]),\n    ],\n    autoRenew: false,\n    diskSize: 100,\n    paymentType: \"PayAsYouGo\",\n    instanceClass: \"8C32G\",\n    backupRetainMode: \"delete_all\",\n    series: \"normal\",\n    instanceName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones()\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_base_instance = alicloud.ocean.BaseInstance(\"default\",\n    resource_group_id=default_get_resource_groups.ids[0],\n    zones=[\n        len(default.ids).apply(lambda length: default.ids[length - 2]),\n        len(default.ids).apply(lambda length: default.ids[length - 3]),\n        len(default.ids).apply(lambda length: default.ids[length - 4]),\n    ],\n    auto_renew=False,\n    disk_size=100,\n    payment_type=\"PayAsYouGo\",\n    instance_class=\"8C32G\",\n    backup_retain_mode=\"delete_all\",\n    series=\"normal\",\n    instance_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke();\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultBaseInstance = new AliCloud.Ocean.BaseInstance(\"default\", new()\n    {\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0]),\n        Zones = new[]\n        {\n            Output.Tuple(@default, @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids)).Length).Apply(values =\u003e\n            {\n                var @default = values.Item1;\n                var length = values.Item2;\n                return @default.Apply(getZonesResult =\u003e getZonesResult.Ids)[length - 2];\n            }),\n            Output.Tuple(@default, @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids)).Length).Apply(values =\u003e\n            {\n                var @default = values.Item1;\n                var length = values.Item2;\n                return @default.Apply(getZonesResult =\u003e getZonesResult.Ids)[length - 3];\n            }),\n            Output.Tuple(@default, @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids)).Length).Apply(values =\u003e\n            {\n                var @default = values.Item1;\n                var length = values.Item2;\n                return @default.Apply(getZonesResult =\u003e getZonesResult.Ids)[length - 4];\n            }),\n        },\n        AutoRenew = false,\n        DiskSize = 100,\n        PaymentType = \"PayAsYouGo\",\n        InstanceClass = \"8C32G\",\n        BackupRetainMode = \"delete_all\",\n        Series = \"normal\",\n        InstanceName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ocean\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ocean.NewBaseInstance(ctx, \"default\", \u0026ocean.BaseInstanceArgs{\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Ids[0]),\n\t\t\tZones: pulumi.StringArray{\n\t\t\t\tlen(_default.Ids).ApplyT(func(length int) (string, error) {\n\t\t\t\t\treturn _default.Ids[float64(length.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\t\t\treturn __convert - 2, nil\n\t\t\t\t\t}).(pulumi.Float64Output))], nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tlen(_default.Ids).ApplyT(func(length int) (string, error) {\n\t\t\t\t\treturn _default.Ids[float64(length.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\t\t\treturn __convert - 3, nil\n\t\t\t\t\t}).(pulumi.Float64Output))], nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tlen(_default.Ids).ApplyT(func(length int) (string, error) {\n\t\t\t\t\treturn _default.Ids[float64(length.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\t\t\treturn __convert - 4, nil\n\t\t\t\t\t}).(pulumi.Float64Output))], nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t\tAutoRenew:        pulumi.Bool(false),\n\t\t\tDiskSize:         pulumi.Int(100),\n\t\t\tPaymentType:      pulumi.String(\"PayAsYouGo\"),\n\t\t\tInstanceClass:    pulumi.String(\"8C32G\"),\n\t\t\tBackupRetainMode: pulumi.String(\"delete_all\"),\n\t\t\tSeries:           pulumi.String(\"normal\"),\n\t\t\tInstanceName:     pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.ocean.BaseInstance;\nimport com.pulumi.alicloud.ocean.BaseInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultBaseInstance = new BaseInstance(\"defaultBaseInstance\", BaseInstanceArgs.builder()\n            .resourceGroupId(defaultGetResourceGroups.ids()[0])\n            .zones(            \n                default_.ids().length().applyValue(_length -\u003e default_.ids()[_length - 2]),\n                default_.ids().length().applyValue(_length -\u003e default_.ids()[_length - 3]),\n                default_.ids().length().applyValue(_length -\u003e default_.ids()[_length - 4]))\n            .autoRenew(false)\n            .diskSize(100)\n            .paymentType(\"PayAsYouGo\")\n            .instanceClass(\"8C32G\")\n            .backupRetainMode(\"delete_all\")\n            .series(\"normal\")\n            .instanceName(name)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOcean Base Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ocean/baseInstance:BaseInstance example \u003cid\u003e\n```\n\n","properties":{"autoRenew":{"type":"boolean","description":"Whether to automatically renew.\n\nIt takes effect when the parameter ChargeType is PrePaid. Value range:\n- true: automatic renewal.\n- false (default): no automatic renewal.\n"},"autoRenewPeriod":{"type":"integer","description":"The duration of each auto-renewal. When the value of the AutoRenew parameter is True, this parameter is required.\n- PeriodUnit is Week, AutoRenewPeriod is {\"1\", \"2\", \"3\"}.\n- PeriodUnit is Month, AutoRenewPeriod is {\"1\", \"2\", \"3\", \"6\", \"12\"}.\n"},"backupRetainMode":{"type":"string","description":"The backup retention policy after the cluster is deleted. The values are as follows:\n- receive_all: Keep all backup sets;\n- delete_all: delete all backup sets;\n- receive_last: Keep the last backup set.\n\n\u003e **NOTE:**   The default value is delete_all.\n"},"commodityCode":{"type":"string","description":"The product code of the OceanBase cluster._oceanbasepre_public_cn: Domestic station cloud database package Year-to-month package._oceanbasepost_public_cn: The domestic station cloud database is paid by the hour._obpre_public_intl: International Station Cloud Database Package Monthly Package.\n"},"cpu":{"type":"integer","description":"The number of CPU cores of the cluster.\n"},"cpuArch":{"type":"string","description":"Cpu architecture, x86, arm. If no, the default value is x86\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"diskSize":{"type":"integer","description":"The size of the storage space, in GB.\n\nThe limits of storage space vary according to the cluster specifications, as follows:\n- 8C32GB:100GB ~ 10000GB\n- 14C70GB:200GB ~ 10000GB\n- 30C180GB:400GB ~ 10000GB\n- 62C400G:800GB ~ 10000GB.\n\nThe default value of each package is its minimum value.\n"},"diskType":{"type":"string","description":"The storage type of the cluster. Effective only in the standard cluster version (cloud disk).\n\nTwo types are currently supported:\n- cloud_essd_pl1: cloud disk ESSD pl1.\n- cloud_essd_pl0: cloud disk ESSD pl0. The default value is cloud_essd_pl1.\n"},"instanceClass":{"type":"string","description":"Cluster specification information. Note Please enter the shape as xCxxG, not xCxxGB\n\nThe x86 cluster architecture currently supports the following packages:\n- 4C16G:4 core 16GB\n- 8C32G:8 core 32GB\n- 14C70G:14 core 70GB\n- 24C120G:24 core 120GB\n- 30C180G:30 core 180GB\n- 62C400G:62 core 400GB\n- 104C600G:104 core 600GB\n- 16C70G:16 core 70GB\n- 32C160G:32 core 160GB\n- 64C380G:64 core 380GB\n- 20C32G:20 core 32GB\n- 40C64G:40 core 64GB\n- 16C32G:16 core 32GB\n- 32C70G:32 core 70GB\n- 64C180G:64 core 180GB\n- 32C180G:32 core 180GB\n- 64C400G:64 core 400GB,\n\nThe cluster architecture of arm currently supports the following packages:\n- 8C32G:8 core 32GB\n- 16C70G:16 core 70GB\n- 32C180G:32 core 180GB\n"},"instanceName":{"type":"string","description":"OceanBase cluster name.\n\nThe length is 1 to 20 English or Chinese characters.\n\nIf this parameter is not specified, the default value is the InstanceId of the cluster.\n"},"nodeNum":{"type":"string","description":"The number of nodes in the cluster. If the deployment mode is n-n-n, the number of nodes is n * 3\n"},"obVersion":{"type":"string","description":"The OceanBase Server version number.\n"},"paymentType":{"type":"string","description":"The payment method of the instance. Value range:\n- Subscription: Package year and month. When you select this type of payment method, you must make sure that your account supports balance payment or credit payment. Otherwise, an InvalidPayMethod error message will be returned.\n- PayAsYouGo (default): Pay-as-you-go (default hourly billing).\n"},"period":{"type":"integer","description":"The duration of the resource purchase. The unit is specified by the PeriodUnit. The parameter InstanceChargeType takes effect only when the value is PrePaid and is required. Once the DedicatedHostId is specified, the value cannot exceed the subscription duration of the dedicated host. When PeriodUnit = Week, Period values: {\"1\", \"2\", \"3\", \"4\"}. When PeriodUnit = Month, Period values: {\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"12\", \"24\", \"36\", \"48\", \"60\"}.\n"},"periodUnit":{"type":"string","description":"The duration of the purchase of resources.\n\nPackage year and Month value range: Month.\n\nDefault value: Month of the package, which is billed by volume. The default period is Hour.\n"},"primaryInstance":{"type":"string","description":"The ID of the primary instance.\n"},"primaryRegion":{"type":"string","description":"The primary instance Region.\n"},"resourceGroupId":{"type":"string","description":"The ID of the enterprise resource group to which the instance resides.\n"},"series":{"type":"string","description":"Series of OceanBase cluster instances-normal (default): Standard cluster version (cloud disk)-normal_SSD: Standard cluster version (local disk)-history: history Library cluster version.\n"},"status":{"type":"string","description":"The status of the resource\n"},"upgradeSpecNative":{"type":"boolean","description":"Valid values:\n- false: migration and configuration change.\n- true: in-situ matching\n"},"zones":{"type":"array","items":{"type":"string"},"description":"Information about the zone where the cluster is deployed.\n"}},"required":["commodityCode","cpu","cpuArch","createTime","diskSize","diskType","instanceClass","instanceName","nodeNum","obVersion","paymentType","resourceGroupId","series","status","zones"],"inputProperties":{"autoRenew":{"type":"boolean","description":"Whether to automatically renew.\n\nIt takes effect when the parameter ChargeType is PrePaid. Value range:\n- true: automatic renewal.\n- false (default): no automatic renewal.\n"},"autoRenewPeriod":{"type":"integer","description":"The duration of each auto-renewal. When the value of the AutoRenew parameter is True, this parameter is required.\n- PeriodUnit is Week, AutoRenewPeriod is {\"1\", \"2\", \"3\"}.\n- PeriodUnit is Month, AutoRenewPeriod is {\"1\", \"2\", \"3\", \"6\", \"12\"}.\n"},"backupRetainMode":{"type":"string","description":"The backup retention policy after the cluster is deleted. The values are as follows:\n- receive_all: Keep all backup sets;\n- delete_all: delete all backup sets;\n- receive_last: Keep the last backup set.\n\n\u003e **NOTE:**   The default value is delete_all.\n"},"cpuArch":{"type":"string","description":"Cpu architecture, x86, arm. If no, the default value is x86\n","willReplaceOnChanges":true},"diskSize":{"type":"integer","description":"The size of the storage space, in GB.\n\nThe limits of storage space vary according to the cluster specifications, as follows:\n- 8C32GB:100GB ~ 10000GB\n- 14C70GB:200GB ~ 10000GB\n- 30C180GB:400GB ~ 10000GB\n- 62C400G:800GB ~ 10000GB.\n\nThe default value of each package is its minimum value.\n"},"diskType":{"type":"string","description":"The storage type of the cluster. Effective only in the standard cluster version (cloud disk).\n\nTwo types are currently supported:\n- cloud_essd_pl1: cloud disk ESSD pl1.\n- cloud_essd_pl0: cloud disk ESSD pl0. The default value is cloud_essd_pl1.\n","willReplaceOnChanges":true},"instanceClass":{"type":"string","description":"Cluster specification information. Note Please enter the shape as xCxxG, not xCxxGB\n\nThe x86 cluster architecture currently supports the following packages:\n- 4C16G:4 core 16GB\n- 8C32G:8 core 32GB\n- 14C70G:14 core 70GB\n- 24C120G:24 core 120GB\n- 30C180G:30 core 180GB\n- 62C400G:62 core 400GB\n- 104C600G:104 core 600GB\n- 16C70G:16 core 70GB\n- 32C160G:32 core 160GB\n- 64C380G:64 core 380GB\n- 20C32G:20 core 32GB\n- 40C64G:40 core 64GB\n- 16C32G:16 core 32GB\n- 32C70G:32 core 70GB\n- 64C180G:64 core 180GB\n- 32C180G:32 core 180GB\n- 64C400G:64 core 400GB,\n\nThe cluster architecture of arm currently supports the following packages:\n- 8C32G:8 core 32GB\n- 16C70G:16 core 70GB\n- 32C180G:32 core 180GB\n"},"instanceName":{"type":"string","description":"OceanBase cluster name.\n\nThe length is 1 to 20 English or Chinese characters.\n\nIf this parameter is not specified, the default value is the InstanceId of the cluster.\n"},"nodeNum":{"type":"string","description":"The number of nodes in the cluster. If the deployment mode is n-n-n, the number of nodes is n * 3\n"},"obVersion":{"type":"string","description":"The OceanBase Server version number.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The payment method of the instance. Value range:\n- Subscription: Package year and month. When you select this type of payment method, you must make sure that your account supports balance payment or credit payment. Otherwise, an InvalidPayMethod error message will be returned.\n- PayAsYouGo (default): Pay-as-you-go (default hourly billing).\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The duration of the resource purchase. The unit is specified by the PeriodUnit. The parameter InstanceChargeType takes effect only when the value is PrePaid and is required. Once the DedicatedHostId is specified, the value cannot exceed the subscription duration of the dedicated host. When PeriodUnit = Week, Period values: {\"1\", \"2\", \"3\", \"4\"}. When PeriodUnit = Month, Period values: {\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"12\", \"24\", \"36\", \"48\", \"60\"}.\n"},"periodUnit":{"type":"string","description":"The duration of the purchase of resources.\n\nPackage year and Month value range: Month.\n\nDefault value: Month of the package, which is billed by volume. The default period is Hour.\n"},"primaryInstance":{"type":"string","description":"The ID of the primary instance.\n","willReplaceOnChanges":true},"primaryRegion":{"type":"string","description":"The primary instance Region.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the enterprise resource group to which the instance resides.\n","willReplaceOnChanges":true},"series":{"type":"string","description":"Series of OceanBase cluster instances-normal (default): Standard cluster version (cloud disk)-normal_SSD: Standard cluster version (local disk)-history: history Library cluster version.\n","willReplaceOnChanges":true},"upgradeSpecNative":{"type":"boolean","description":"Valid values:\n- false: migration and configuration change.\n- true: in-situ matching\n"},"zones":{"type":"array","items":{"type":"string"},"description":"Information about the zone where the cluster is deployed.\n","willReplaceOnChanges":true}},"requiredInputs":["diskSize","instanceClass","paymentType","series","zones"],"stateInputs":{"description":"Input properties used for looking up and filtering BaseInstance resources.\n","properties":{"autoRenew":{"type":"boolean","description":"Whether to automatically renew.\n\nIt takes effect when the parameter ChargeType is PrePaid. Value range:\n- true: automatic renewal.\n- false (default): no automatic renewal.\n"},"autoRenewPeriod":{"type":"integer","description":"The duration of each auto-renewal. When the value of the AutoRenew parameter is True, this parameter is required.\n- PeriodUnit is Week, AutoRenewPeriod is {\"1\", \"2\", \"3\"}.\n- PeriodUnit is Month, AutoRenewPeriod is {\"1\", \"2\", \"3\", \"6\", \"12\"}.\n"},"backupRetainMode":{"type":"string","description":"The backup retention policy after the cluster is deleted. The values are as follows:\n- receive_all: Keep all backup sets;\n- delete_all: delete all backup sets;\n- receive_last: Keep the last backup set.\n\n\u003e **NOTE:**   The default value is delete_all.\n"},"commodityCode":{"type":"string","description":"The product code of the OceanBase cluster._oceanbasepre_public_cn: Domestic station cloud database package Year-to-month package._oceanbasepost_public_cn: The domestic station cloud database is paid by the hour._obpre_public_intl: International Station Cloud Database Package Monthly Package.\n"},"cpu":{"type":"integer","description":"The number of CPU cores of the cluster.\n"},"cpuArch":{"type":"string","description":"Cpu architecture, x86, arm. If no, the default value is x86\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource\n"},"diskSize":{"type":"integer","description":"The size of the storage space, in GB.\n\nThe limits of storage space vary according to the cluster specifications, as follows:\n- 8C32GB:100GB ~ 10000GB\n- 14C70GB:200GB ~ 10000GB\n- 30C180GB:400GB ~ 10000GB\n- 62C400G:800GB ~ 10000GB.\n\nThe default value of each package is its minimum value.\n"},"diskType":{"type":"string","description":"The storage type of the cluster. Effective only in the standard cluster version (cloud disk).\n\nTwo types are currently supported:\n- cloud_essd_pl1: cloud disk ESSD pl1.\n- cloud_essd_pl0: cloud disk ESSD pl0. The default value is cloud_essd_pl1.\n","willReplaceOnChanges":true},"instanceClass":{"type":"string","description":"Cluster specification information. Note Please enter the shape as xCxxG, not xCxxGB\n\nThe x86 cluster architecture currently supports the following packages:\n- 4C16G:4 core 16GB\n- 8C32G:8 core 32GB\n- 14C70G:14 core 70GB\n- 24C120G:24 core 120GB\n- 30C180G:30 core 180GB\n- 62C400G:62 core 400GB\n- 104C600G:104 core 600GB\n- 16C70G:16 core 70GB\n- 32C160G:32 core 160GB\n- 64C380G:64 core 380GB\n- 20C32G:20 core 32GB\n- 40C64G:40 core 64GB\n- 16C32G:16 core 32GB\n- 32C70G:32 core 70GB\n- 64C180G:64 core 180GB\n- 32C180G:32 core 180GB\n- 64C400G:64 core 400GB,\n\nThe cluster architecture of arm currently supports the following packages:\n- 8C32G:8 core 32GB\n- 16C70G:16 core 70GB\n- 32C180G:32 core 180GB\n"},"instanceName":{"type":"string","description":"OceanBase cluster name.\n\nThe length is 1 to 20 English or Chinese characters.\n\nIf this parameter is not specified, the default value is the InstanceId of the cluster.\n"},"nodeNum":{"type":"string","description":"The number of nodes in the cluster. If the deployment mode is n-n-n, the number of nodes is n * 3\n"},"obVersion":{"type":"string","description":"The OceanBase Server version number.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The payment method of the instance. Value range:\n- Subscription: Package year and month. When you select this type of payment method, you must make sure that your account supports balance payment or credit payment. Otherwise, an InvalidPayMethod error message will be returned.\n- PayAsYouGo (default): Pay-as-you-go (default hourly billing).\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The duration of the resource purchase. The unit is specified by the PeriodUnit. The parameter InstanceChargeType takes effect only when the value is PrePaid and is required. Once the DedicatedHostId is specified, the value cannot exceed the subscription duration of the dedicated host. When PeriodUnit = Week, Period values: {\"1\", \"2\", \"3\", \"4\"}. When PeriodUnit = Month, Period values: {\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"12\", \"24\", \"36\", \"48\", \"60\"}.\n"},"periodUnit":{"type":"string","description":"The duration of the purchase of resources.\n\nPackage year and Month value range: Month.\n\nDefault value: Month of the package, which is billed by volume. The default period is Hour.\n"},"primaryInstance":{"type":"string","description":"The ID of the primary instance.\n","willReplaceOnChanges":true},"primaryRegion":{"type":"string","description":"The primary instance Region.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the enterprise resource group to which the instance resides.\n","willReplaceOnChanges":true},"series":{"type":"string","description":"Series of OceanBase cluster instances-normal (default): Standard cluster version (cloud disk)-normal_SSD: Standard cluster version (local disk)-history: history Library cluster version.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"},"upgradeSpecNative":{"type":"boolean","description":"Valid values:\n- false: migration and configuration change.\n- true: in-situ matching\n"},"zones":{"type":"array","items":{"type":"string"},"description":"Information about the zone where the cluster is deployed.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:oos/application:Application":{"description":"Provides a OOS Application resource.\n\nFor information about OOS Application and how to use it, see [What is Application](https://www.alibabacloud.com/help/en/operation-orchestration-service/latest/api-oos-2019-06-01-createapplication).\n\n\u003e **NOTE:** Available since v1.145.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultApplication = new alicloud.oos.Application(\"default\", {\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n    applicationName: `${name}-${defaultInteger.result}`,\n    description: name,\n    tags: {\n        Created: \"TF\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_application = alicloud.oos.Application(\"default\",\n    resource_group_id=default.groups[0].id,\n    application_name=f\"{name}-{default_integer['result']}\",\n    description=name,\n    tags={\n        \"Created\": \"TF\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultApplication = new AliCloud.Oos.Application(\"default\", new()\n    {\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n        ApplicationName = $\"{name}-{defaultInteger.Result}\",\n        Description = name,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oos.NewApplication(ctx, \"default\", \u0026oos.ApplicationArgs{\n\t\t\tResourceGroupId: pulumi.String(_default.Groups[0].Id),\n\t\t\tApplicationName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.oos.Application;\nimport com.pulumi.alicloud.oos.ApplicationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultApplication = new Application(\"defaultApplication\", ApplicationArgs.builder()\n            .resourceGroupId(default_.groups()[0].id())\n            .applicationName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .description(name)\n            .tags(Map.of(\"Created\", \"TF\"))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultApplication:\n    type: alicloud:oos:Application\n    name: default\n    properties:\n      resourceGroupId: ${default.groups[0].id}\n      applicationName: ${name}-${defaultInteger.result}\n      description: ${name}\n      tags:\n        Created: TF\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOOS Application can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oos/application:Application example \u003cid\u003e\n```\n\n","properties":{"applicationName":{"type":"string","description":"The name of the application.\n"},"description":{"type":"string","description":"Application group description information.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"required":["applicationName","resourceGroupId"],"inputProperties":{"applicationName":{"type":"string","description":"The name of the application.\n"},"description":{"type":"string","description":"Application group description information.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"requiredInputs":["applicationName"],"stateInputs":{"description":"Input properties used for looking up and filtering Application resources.\n","properties":{"applicationName":{"type":"string","description":"The name of the application.\n"},"description":{"type":"string","description":"Application group description information.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object"}},"alicloud:oos/applicationGroup:ApplicationGroup":{"description":"Provides a OOS Application Group resource.\n\nFor information about OOS Application Group and how to use it, see [What is Application Group](https://www.alibabacloud.com/help/en/operation-orchestration-service/latest/api-oos-2019-06-01-createapplicationgroup).\n\n\u003e **NOTE:** Available since v1.146.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultApplication = new alicloud.oos.Application(\"default\", {\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n    applicationName: `${name}-${defaultInteger.result}`,\n    description: name,\n    tags: {\n        Created: \"TF\",\n    },\n});\nconst defaultGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst defaultApplicationGroup = new alicloud.oos.ApplicationGroup(\"default\", {\n    applicationGroupName: name,\n    applicationName: defaultApplication.id,\n    deployRegionId: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.id),\n    description: name,\n    importTagKey: \"example_key\",\n    importTagValue: \"example_value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_application = alicloud.oos.Application(\"default\",\n    resource_group_id=default.groups[0].id,\n    application_name=f\"{name}-{default_integer['result']}\",\n    description=name,\n    tags={\n        \"Created\": \"TF\",\n    })\ndefault_get_regions = alicloud.get_regions(current=True)\ndefault_application_group = alicloud.oos.ApplicationGroup(\"default\",\n    application_group_name=name,\n    application_name=default_application.id,\n    deploy_region_id=default_get_regions.regions[0].id,\n    description=name,\n    import_tag_key=\"example_key\",\n    import_tag_value=\"example_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultApplication = new AliCloud.Oos.Application(\"default\", new()\n    {\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n        ApplicationName = $\"{name}-{defaultInteger.Result}\",\n        Description = name,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n    });\n\n    var defaultGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultApplicationGroup = new AliCloud.Oos.ApplicationGroup(\"default\", new()\n    {\n        ApplicationGroupName = name,\n        ApplicationName = defaultApplication.Id,\n        DeployRegionId = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        Description = name,\n        ImportTagKey = \"example_key\",\n        ImportTagValue = \"example_value\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplication, err := oos.NewApplication(ctx, \"default\", \u0026oos.ApplicationArgs{\n\t\t\tResourceGroupId: pulumi.String(_default.Groups[0].Id),\n\t\t\tApplicationName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetRegions, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oos.NewApplicationGroup(ctx, \"default\", \u0026oos.ApplicationGroupArgs{\n\t\t\tApplicationGroupName: pulumi.String(name),\n\t\t\tApplicationName:      defaultApplication.ID(),\n\t\t\tDeployRegionId:       pulumi.String(defaultGetRegions.Regions[0].Id),\n\t\t\tDescription:          pulumi.String(name),\n\t\t\tImportTagKey:         pulumi.String(\"example_key\"),\n\t\t\tImportTagValue:       pulumi.String(\"example_value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.oos.Application;\nimport com.pulumi.alicloud.oos.ApplicationArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.oos.ApplicationGroup;\nimport com.pulumi.alicloud.oos.ApplicationGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultApplication = new Application(\"defaultApplication\", ApplicationArgs.builder()\n            .resourceGroupId(default_.groups()[0].id())\n            .applicationName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .description(name)\n            .tags(Map.of(\"Created\", \"TF\"))\n            .build());\n\n        final var defaultGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultApplicationGroup = new ApplicationGroup(\"defaultApplicationGroup\", ApplicationGroupArgs.builder()\n            .applicationGroupName(name)\n            .applicationName(defaultApplication.id())\n            .deployRegionId(defaultGetRegions.regions()[0].id())\n            .description(name)\n            .importTagKey(\"example_key\")\n            .importTagValue(\"example_value\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultApplication:\n    type: alicloud:oos:Application\n    name: default\n    properties:\n      resourceGroupId: ${default.groups[0].id}\n      applicationName: ${name}-${defaultInteger.result}\n      description: ${name}\n      tags:\n        Created: TF\n  defaultApplicationGroup:\n    type: alicloud:oos:ApplicationGroup\n    name: default\n    properties:\n      applicationGroupName: ${name}\n      applicationName: ${defaultApplication.id}\n      deployRegionId: ${defaultGetRegions.regions[0].id}\n      description: ${name}\n      importTagKey: example_key\n      importTagValue: example_value\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetRegions:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOOS Application Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oos/applicationGroup:ApplicationGroup example \u003capplication_name\u003e:\u003capplication_group_name\u003e\n```\n\n","properties":{"applicationGroupName":{"type":"string","description":"The name of the Application group.\n"},"applicationName":{"type":"string","description":"The name of the Application.\n"},"deployRegionId":{"type":"string","description":"The region ID of the deployment.\n"},"description":{"type":"string","description":"Application group description information.\n"},"importTagKey":{"type":"string","description":"The tag key must be passed in at the same time as the tag value (import_tag_value) or none, not just one. If both \u003cspan pulumi-lang-nodejs=\"`importTagKey`\" pulumi-lang-dotnet=\"`ImportTagKey`\" pulumi-lang-go=\"`importTagKey`\" pulumi-lang-python=\"`import_tag_key`\" pulumi-lang-yaml=\"`importTagKey`\" pulumi-lang-java=\"`importTagKey`\"\u003e`import_tag_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`importTagValue`\" pulumi-lang-dotnet=\"`ImportTagValue`\" pulumi-lang-go=\"`importTagValue`\" pulumi-lang-python=\"`import_tag_value`\" pulumi-lang-yaml=\"`importTagValue`\" pulumi-lang-java=\"`importTagValue`\"\u003e`import_tag_value`\u003c/span\u003e are left empty, the default is app-{ApplicationName} (application name).\n"},"importTagValue":{"type":"string","description":"The tag value must be passed in at the same time as the tag key (import_tag_key) or none, not just one. If both \u003cspan pulumi-lang-nodejs=\"`importTagKey`\" pulumi-lang-dotnet=\"`ImportTagKey`\" pulumi-lang-go=\"`importTagKey`\" pulumi-lang-python=\"`import_tag_key`\" pulumi-lang-yaml=\"`importTagKey`\" pulumi-lang-java=\"`importTagKey`\"\u003e`import_tag_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`importTagValue`\" pulumi-lang-dotnet=\"`ImportTagValue`\" pulumi-lang-go=\"`importTagValue`\" pulumi-lang-python=\"`import_tag_value`\" pulumi-lang-yaml=\"`importTagValue`\" pulumi-lang-java=\"`importTagValue`\"\u003e`import_tag_value`\u003c/span\u003e are left empty, the default is application group name.\n.\n"}},"required":["applicationGroupName","applicationName","deployRegionId","importTagKey","importTagValue"],"inputProperties":{"applicationGroupName":{"type":"string","description":"The name of the Application group.\n","willReplaceOnChanges":true},"applicationName":{"type":"string","description":"The name of the Application.\n","willReplaceOnChanges":true},"deployRegionId":{"type":"string","description":"The region ID of the deployment.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Application group description information.\n","willReplaceOnChanges":true},"importTagKey":{"type":"string","description":"The tag key must be passed in at the same time as the tag value (import_tag_value) or none, not just one. If both \u003cspan pulumi-lang-nodejs=\"`importTagKey`\" pulumi-lang-dotnet=\"`ImportTagKey`\" pulumi-lang-go=\"`importTagKey`\" pulumi-lang-python=\"`import_tag_key`\" pulumi-lang-yaml=\"`importTagKey`\" pulumi-lang-java=\"`importTagKey`\"\u003e`import_tag_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`importTagValue`\" pulumi-lang-dotnet=\"`ImportTagValue`\" pulumi-lang-go=\"`importTagValue`\" pulumi-lang-python=\"`import_tag_value`\" pulumi-lang-yaml=\"`importTagValue`\" pulumi-lang-java=\"`importTagValue`\"\u003e`import_tag_value`\u003c/span\u003e are left empty, the default is app-{ApplicationName} (application name).\n","willReplaceOnChanges":true},"importTagValue":{"type":"string","description":"The tag value must be passed in at the same time as the tag key (import_tag_key) or none, not just one. If both \u003cspan pulumi-lang-nodejs=\"`importTagKey`\" pulumi-lang-dotnet=\"`ImportTagKey`\" pulumi-lang-go=\"`importTagKey`\" pulumi-lang-python=\"`import_tag_key`\" pulumi-lang-yaml=\"`importTagKey`\" pulumi-lang-java=\"`importTagKey`\"\u003e`import_tag_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`importTagValue`\" pulumi-lang-dotnet=\"`ImportTagValue`\" pulumi-lang-go=\"`importTagValue`\" pulumi-lang-python=\"`import_tag_value`\" pulumi-lang-yaml=\"`importTagValue`\" pulumi-lang-java=\"`importTagValue`\"\u003e`import_tag_value`\u003c/span\u003e are left empty, the default is application group name.\n.\n","willReplaceOnChanges":true}},"requiredInputs":["applicationGroupName","applicationName","deployRegionId"],"stateInputs":{"description":"Input properties used for looking up and filtering ApplicationGroup resources.\n","properties":{"applicationGroupName":{"type":"string","description":"The name of the Application group.\n","willReplaceOnChanges":true},"applicationName":{"type":"string","description":"The name of the Application.\n","willReplaceOnChanges":true},"deployRegionId":{"type":"string","description":"The region ID of the deployment.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Application group description information.\n","willReplaceOnChanges":true},"importTagKey":{"type":"string","description":"The tag key must be passed in at the same time as the tag value (import_tag_value) or none, not just one. If both \u003cspan pulumi-lang-nodejs=\"`importTagKey`\" pulumi-lang-dotnet=\"`ImportTagKey`\" pulumi-lang-go=\"`importTagKey`\" pulumi-lang-python=\"`import_tag_key`\" pulumi-lang-yaml=\"`importTagKey`\" pulumi-lang-java=\"`importTagKey`\"\u003e`import_tag_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`importTagValue`\" pulumi-lang-dotnet=\"`ImportTagValue`\" pulumi-lang-go=\"`importTagValue`\" pulumi-lang-python=\"`import_tag_value`\" pulumi-lang-yaml=\"`importTagValue`\" pulumi-lang-java=\"`importTagValue`\"\u003e`import_tag_value`\u003c/span\u003e are left empty, the default is app-{ApplicationName} (application name).\n","willReplaceOnChanges":true},"importTagValue":{"type":"string","description":"The tag value must be passed in at the same time as the tag key (import_tag_key) or none, not just one. If both \u003cspan pulumi-lang-nodejs=\"`importTagKey`\" pulumi-lang-dotnet=\"`ImportTagKey`\" pulumi-lang-go=\"`importTagKey`\" pulumi-lang-python=\"`import_tag_key`\" pulumi-lang-yaml=\"`importTagKey`\" pulumi-lang-java=\"`importTagKey`\"\u003e`import_tag_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`importTagValue`\" pulumi-lang-dotnet=\"`ImportTagValue`\" pulumi-lang-go=\"`importTagValue`\" pulumi-lang-python=\"`import_tag_value`\" pulumi-lang-yaml=\"`importTagValue`\" pulumi-lang-java=\"`importTagValue`\"\u003e`import_tag_value`\u003c/span\u003e are left empty, the default is application group name.\n.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:oos/defaultPatchBaseline:DefaultPatchBaseline":{"description":"Provides a Oos Default Patch Baseline resource.\n\nFor information about Oos Default Patch Baseline and how to use it, see [What is Default Patch Baseline](https://www.alibabacloud.com/help/en/operation-orchestration-service/latest/api-oos-2019-06-01-registerdefaultpatchbaseline).\n\n\u003e **NOTE:** Available since v1.203.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.oos.PatchBaseline(\"default\", {\n    operationSystem: \"Windows\",\n    patchBaselineName: \"terraform-example\",\n    description: \"terraform-example\",\n    approvalRules: \"{\\\"PatchRules\\\":[{\\\"PatchFilterGroup\\\":[{\\\"Key\\\":\\\"PatchSet\\\",\\\"Values\\\":[\\\"OS\\\"]},{\\\"Key\\\":\\\"ProductFamily\\\",\\\"Values\\\":[\\\"Windows\\\"]},{\\\"Key\\\":\\\"Product\\\",\\\"Values\\\":[\\\"Windows 10\\\",\\\"Windows 7\\\"]},{\\\"Key\\\":\\\"Classification\\\",\\\"Values\\\":[\\\"Security Updates\\\",\\\"Updates\\\",\\\"Update Rollups\\\",\\\"Critical Updates\\\"]},{\\\"Key\\\":\\\"Severity\\\",\\\"Values\\\":[\\\"Critical\\\",\\\"Important\\\",\\\"Moderate\\\"]}],\\\"ApproveAfterDays\\\":7,\\\"EnableNonSecurity\\\":true,\\\"ComplianceLevel\\\":\\\"Medium\\\"}]}\",\n});\nconst defaultDefaultPatchBaseline = new alicloud.oos.DefaultPatchBaseline(\"default\", {patchBaselineName: _default.id});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.oos.PatchBaseline(\"default\",\n    operation_system=\"Windows\",\n    patch_baseline_name=\"terraform-example\",\n    description=\"terraform-example\",\n    approval_rules=\"{\\\"PatchRules\\\":[{\\\"PatchFilterGroup\\\":[{\\\"Key\\\":\\\"PatchSet\\\",\\\"Values\\\":[\\\"OS\\\"]},{\\\"Key\\\":\\\"ProductFamily\\\",\\\"Values\\\":[\\\"Windows\\\"]},{\\\"Key\\\":\\\"Product\\\",\\\"Values\\\":[\\\"Windows 10\\\",\\\"Windows 7\\\"]},{\\\"Key\\\":\\\"Classification\\\",\\\"Values\\\":[\\\"Security Updates\\\",\\\"Updates\\\",\\\"Update Rollups\\\",\\\"Critical Updates\\\"]},{\\\"Key\\\":\\\"Severity\\\",\\\"Values\\\":[\\\"Critical\\\",\\\"Important\\\",\\\"Moderate\\\"]}],\\\"ApproveAfterDays\\\":7,\\\"EnableNonSecurity\\\":true,\\\"ComplianceLevel\\\":\\\"Medium\\\"}]}\")\ndefault_default_patch_baseline = alicloud.oos.DefaultPatchBaseline(\"default\", patch_baseline_name=default.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Oos.PatchBaseline(\"default\", new()\n    {\n        OperationSystem = \"Windows\",\n        PatchBaselineName = \"terraform-example\",\n        Description = \"terraform-example\",\n        ApprovalRules = \"{\\\"PatchRules\\\":[{\\\"PatchFilterGroup\\\":[{\\\"Key\\\":\\\"PatchSet\\\",\\\"Values\\\":[\\\"OS\\\"]},{\\\"Key\\\":\\\"ProductFamily\\\",\\\"Values\\\":[\\\"Windows\\\"]},{\\\"Key\\\":\\\"Product\\\",\\\"Values\\\":[\\\"Windows 10\\\",\\\"Windows 7\\\"]},{\\\"Key\\\":\\\"Classification\\\",\\\"Values\\\":[\\\"Security Updates\\\",\\\"Updates\\\",\\\"Update Rollups\\\",\\\"Critical Updates\\\"]},{\\\"Key\\\":\\\"Severity\\\",\\\"Values\\\":[\\\"Critical\\\",\\\"Important\\\",\\\"Moderate\\\"]}],\\\"ApproveAfterDays\\\":7,\\\"EnableNonSecurity\\\":true,\\\"ComplianceLevel\\\":\\\"Medium\\\"}]}\",\n    });\n\n    var defaultDefaultPatchBaseline = new AliCloud.Oos.DefaultPatchBaseline(\"default\", new()\n    {\n        PatchBaselineName = @default.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := oos.NewPatchBaseline(ctx, \"default\", \u0026oos.PatchBaselineArgs{\n\t\t\tOperationSystem:   pulumi.String(\"Windows\"),\n\t\t\tPatchBaselineName: pulumi.String(\"terraform-example\"),\n\t\t\tDescription:       pulumi.String(\"terraform-example\"),\n\t\t\tApprovalRules:     pulumi.String(\"{\\\"PatchRules\\\":[{\\\"PatchFilterGroup\\\":[{\\\"Key\\\":\\\"PatchSet\\\",\\\"Values\\\":[\\\"OS\\\"]},{\\\"Key\\\":\\\"ProductFamily\\\",\\\"Values\\\":[\\\"Windows\\\"]},{\\\"Key\\\":\\\"Product\\\",\\\"Values\\\":[\\\"Windows 10\\\",\\\"Windows 7\\\"]},{\\\"Key\\\":\\\"Classification\\\",\\\"Values\\\":[\\\"Security Updates\\\",\\\"Updates\\\",\\\"Update Rollups\\\",\\\"Critical Updates\\\"]},{\\\"Key\\\":\\\"Severity\\\",\\\"Values\\\":[\\\"Critical\\\",\\\"Important\\\",\\\"Moderate\\\"]}],\\\"ApproveAfterDays\\\":7,\\\"EnableNonSecurity\\\":true,\\\"ComplianceLevel\\\":\\\"Medium\\\"}]}\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oos.NewDefaultPatchBaseline(ctx, \"default\", \u0026oos.DefaultPatchBaselineArgs{\n\t\t\tPatchBaselineName: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oos.PatchBaseline;\nimport com.pulumi.alicloud.oos.PatchBaselineArgs;\nimport com.pulumi.alicloud.oos.DefaultPatchBaseline;\nimport com.pulumi.alicloud.oos.DefaultPatchBaselineArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new PatchBaseline(\"default\", PatchBaselineArgs.builder()\n            .operationSystem(\"Windows\")\n            .patchBaselineName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .approvalRules(\"{\\\"PatchRules\\\":[{\\\"PatchFilterGroup\\\":[{\\\"Key\\\":\\\"PatchSet\\\",\\\"Values\\\":[\\\"OS\\\"]},{\\\"Key\\\":\\\"ProductFamily\\\",\\\"Values\\\":[\\\"Windows\\\"]},{\\\"Key\\\":\\\"Product\\\",\\\"Values\\\":[\\\"Windows 10\\\",\\\"Windows 7\\\"]},{\\\"Key\\\":\\\"Classification\\\",\\\"Values\\\":[\\\"Security Updates\\\",\\\"Updates\\\",\\\"Update Rollups\\\",\\\"Critical Updates\\\"]},{\\\"Key\\\":\\\"Severity\\\",\\\"Values\\\":[\\\"Critical\\\",\\\"Important\\\",\\\"Moderate\\\"]}],\\\"ApproveAfterDays\\\":7,\\\"EnableNonSecurity\\\":true,\\\"ComplianceLevel\\\":\\\"Medium\\\"}]}\")\n            .build());\n\n        var defaultDefaultPatchBaseline = new DefaultPatchBaseline(\"defaultDefaultPatchBaseline\", DefaultPatchBaselineArgs.builder()\n            .patchBaselineName(default_.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:oos:PatchBaseline\n    properties:\n      operationSystem: Windows\n      patchBaselineName: terraform-example\n      description: terraform-example\n      approvalRules: '{\"PatchRules\":[{\"PatchFilterGroup\":[{\"Key\":\"PatchSet\",\"Values\":[\"OS\"]},{\"Key\":\"ProductFamily\",\"Values\":[\"Windows\"]},{\"Key\":\"Product\",\"Values\":[\"Windows 10\",\"Windows 7\"]},{\"Key\":\"Classification\",\"Values\":[\"Security Updates\",\"Updates\",\"Update Rollups\",\"Critical Updates\"]},{\"Key\":\"Severity\",\"Values\":[\"Critical\",\"Important\",\"Moderate\"]}],\"ApproveAfterDays\":7,\"EnableNonSecurity\":true,\"ComplianceLevel\":\"Medium\"}]}'\n  defaultDefaultPatchBaseline:\n    type: alicloud:oos:DefaultPatchBaseline\n    name: default\n    properties:\n      patchBaselineName: ${default.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOos Default Patch Baseline can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oos/defaultPatchBaseline:DefaultPatchBaseline example \u003cid\u003e\n```\n\n","properties":{"patchBaselineId":{"type":"string","description":"The ID of the patch baseline.\n"},"patchBaselineName":{"type":"string","description":"The name of the patch baseline.\n"}},"required":["patchBaselineId","patchBaselineName"],"inputProperties":{"patchBaselineName":{"type":"string","description":"The name of the patch baseline.\n","willReplaceOnChanges":true}},"requiredInputs":["patchBaselineName"],"stateInputs":{"description":"Input properties used for looking up and filtering DefaultPatchBaseline resources.\n","properties":{"patchBaselineId":{"type":"string","description":"The ID of the patch baseline.\n"},"patchBaselineName":{"type":"string","description":"The name of the patch baseline.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:oos/execution:Execution":{"description":"Provides a OOS Execution resource. For information about Alicloud OOS Execution and how to use it, see [What is Resource Alicloud OOS Execution](https://www.alibabacloud.com/help/doc-detail/120771.htm).\n\n\u003e **NOTE:** Available since v1.93.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultTemplate = new alicloud.oos.Template(\"default\", {\n    content: `  {\n    \\\\\"FormatVersion\\\\\": \\\\\"OOS-2019-06-01\\\\\",\n    \\\\\"Description\\\\\": \\\\\"Update Describe instances of given status\\\\\",\n    \\\\\"Parameters\\\\\":{\n      \\\\\"Status\\\\\":{\n        \\\\\"Type\\\\\": \\\\\"String\\\\\",\n        \\\\\"Description\\\\\": \\\\\"(Required) The status of the Ecs instance.\\\\\"\n      }\n    },\n    \\\\\"Tasks\\\\\": [\n      {\n        \\\\\"Properties\\\\\" :{\n          \\\\\"Parameters\\\\\":{\n            \\\\\"Status\\\\\": \\\\\"{{ Status }}\\\\\"\n          },\n          \\\\\"API\\\\\": \\\\\"DescribeInstances\\\\\",\n          \\\\\"Service\\\\\": \\\\\"Ecs\\\\\"\n        },\n        \\\\\"Name\\\\\": \\\\\"foo\\\\\",\n        \\\\\"Action\\\\\": \\\\\"ACS::ExecuteApi\\\\\"\n      }]\n  }\n`,\n    templateName: `tf-example-name-${_default.result}`,\n    versionName: \"example\",\n    tags: {\n        Created: \"TF\",\n        For: \"acceptance Test\",\n    },\n});\nconst example = new alicloud.oos.Execution(\"example\", {\n    templateName: defaultTemplate.templateName,\n    description: \"From TF Test\",\n    parameters: \"\\\\t\\\\t\\\\t\\\\t{\\\\\\\"Status\\\\\\\":\\\\\\\"Running\\\\\\\"}\\n\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_template = alicloud.oos.Template(\"default\",\n    content=\"\"\"  {\n    \\\"FormatVersion\\\": \\\"OOS-2019-06-01\\\",\n    \\\"Description\\\": \\\"Update Describe instances of given status\\\",\n    \\\"Parameters\\\":{\n      \\\"Status\\\":{\n        \\\"Type\\\": \\\"String\\\",\n        \\\"Description\\\": \\\"(Required) The status of the Ecs instance.\\\"\n      }\n    },\n    \\\"Tasks\\\": [\n      {\n        \\\"Properties\\\" :{\n          \\\"Parameters\\\":{\n            \\\"Status\\\": \\\"{{ Status }}\\\"\n          },\n          \\\"API\\\": \\\"DescribeInstances\\\",\n          \\\"Service\\\": \\\"Ecs\\\"\n        },\n        \\\"Name\\\": \\\"foo\\\",\n        \\\"Action\\\": \\\"ACS::ExecuteApi\\\"\n      }]\n  }\n\"\"\",\n    template_name=f\"tf-example-name-{default['result']}\",\n    version_name=\"example\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"acceptance Test\",\n    })\nexample = alicloud.oos.Execution(\"example\",\n    template_name=default_template.template_name,\n    description=\"From TF Test\",\n    parameters=\"\\\\t\\\\t\\\\t\\\\t{\\\\\\\"Status\\\\\\\":\\\\\\\"Running\\\\\\\"}\\n\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultTemplate = new AliCloud.Oos.Template(\"default\", new()\n    {\n        Content = @\"  {\n    \\\"\"FormatVersion\\\"\": \\\"\"OOS-2019-06-01\\\"\",\n    \\\"\"Description\\\"\": \\\"\"Update Describe instances of given status\\\"\",\n    \\\"\"Parameters\\\"\":{\n      \\\"\"Status\\\"\":{\n        \\\"\"Type\\\"\": \\\"\"String\\\"\",\n        \\\"\"Description\\\"\": \\\"\"(Required) The status of the Ecs instance.\\\"\"\n      }\n    },\n    \\\"\"Tasks\\\"\": [\n      {\n        \\\"\"Properties\\\"\" :{\n          \\\"\"Parameters\\\"\":{\n            \\\"\"Status\\\"\": \\\"\"{{ Status }}\\\"\"\n          },\n          \\\"\"API\\\"\": \\\"\"DescribeInstances\\\"\",\n          \\\"\"Service\\\"\": \\\"\"Ecs\\\"\"\n        },\n        \\\"\"Name\\\"\": \\\"\"foo\\\"\",\n        \\\"\"Action\\\"\": \\\"\"ACS::ExecuteApi\\\"\"\n      }]\n  }\n\",\n        TemplateName = $\"tf-example-name-{@default.Result}\",\n        VersionName = \"example\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"acceptance Test\" },\n        },\n    });\n\n    var example = new AliCloud.Oos.Execution(\"example\", new()\n    {\n        TemplateName = defaultTemplate.TemplateName,\n        Description = \"From TF Test\",\n        Parameters = @\"\\t\\t\\t\\t{\\\"\"Status\\\"\":\\\"\"Running\\\"\"}\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTemplate, err := oos.NewTemplate(ctx, \"default\", \u0026oos.TemplateArgs{\n\t\t\tContent: pulumi.String(`  {\n    \\\"FormatVersion\\\": \\\"OOS-2019-06-01\\\",\n    \\\"Description\\\": \\\"Update Describe instances of given status\\\",\n    \\\"Parameters\\\":{\n      \\\"Status\\\":{\n        \\\"Type\\\": \\\"String\\\",\n        \\\"Description\\\": \\\"(Required) The status of the Ecs instance.\\\"\n      }\n    },\n    \\\"Tasks\\\": [\n      {\n        \\\"Properties\\\" :{\n          \\\"Parameters\\\":{\n            \\\"Status\\\": \\\"{{ Status }}\\\"\n          },\n          \\\"API\\\": \\\"DescribeInstances\\\",\n          \\\"Service\\\": \\\"Ecs\\\"\n        },\n        \\\"Name\\\": \\\"foo\\\",\n        \\\"Action\\\": \\\"ACS::ExecuteApi\\\"\n      }]\n  }\n`),\n\t\t\tTemplateName: pulumi.Sprintf(\"tf-example-name-%v\", _default.Result),\n\t\t\tVersionName:  pulumi.String(\"example\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"acceptance Test\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oos.NewExecution(ctx, \"example\", \u0026oos.ExecutionArgs{\n\t\t\tTemplateName: defaultTemplate.TemplateName,\n\t\t\tDescription:  pulumi.String(\"From TF Test\"),\n\t\t\tParameters:   pulumi.String(\"\\\\t\\\\t\\\\t\\\\t{\\\\\\\"Status\\\\\\\":\\\\\\\"Running\\\\\\\"}\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oos.Template;\nimport com.pulumi.alicloud.oos.TemplateArgs;\nimport com.pulumi.alicloud.oos.Execution;\nimport com.pulumi.alicloud.oos.ExecutionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultTemplate = new Template(\"defaultTemplate\", TemplateArgs.builder()\n            .content(\"\"\"\n  {\n    \\\"FormatVersion\\\": \\\"OOS-2019-06-01\\\",\n    \\\"Description\\\": \\\"Update Describe instances of given status\\\",\n    \\\"Parameters\\\":{\n      \\\"Status\\\":{\n        \\\"Type\\\": \\\"String\\\",\n        \\\"Description\\\": \\\"(Required) The status of the Ecs instance.\\\"\n      }\n    },\n    \\\"Tasks\\\": [\n      {\n        \\\"Properties\\\" :{\n          \\\"Parameters\\\":{\n            \\\"Status\\\": \\\"{{ Status }}\\\"\n          },\n          \\\"API\\\": \\\"DescribeInstances\\\",\n          \\\"Service\\\": \\\"Ecs\\\"\n        },\n        \\\"Name\\\": \\\"foo\\\",\n        \\\"Action\\\": \\\"ACS::ExecuteApi\\\"\n      }]\n  }\n            \"\"\")\n            .templateName(String.format(\"tf-example-name-%s\", default_.result()))\n            .versionName(\"example\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"acceptance Test\")\n            ))\n            .build());\n\n        var example = new Execution(\"example\", ExecutionArgs.builder()\n            .templateName(defaultTemplate.templateName())\n            .description(\"From TF Test\")\n            .parameters(\"\"\"\n\\t\\t\\t\\t{\\\"Status\\\":\\\"Running\\\"}\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultTemplate:\n    type: alicloud:oos:Template\n    name: default\n    properties:\n      content: |2\n          {\n            \\\"FormatVersion\\\": \\\"OOS-2019-06-01\\\",\n            \\\"Description\\\": \\\"Update Describe instances of given status\\\",\n            \\\"Parameters\\\":{\n              \\\"Status\\\":{\n                \\\"Type\\\": \\\"String\\\",\n                \\\"Description\\\": \\\"(Required) The status of the Ecs instance.\\\"\n              }\n            },\n            \\\"Tasks\\\": [\n              {\n                \\\"Properties\\\" :{\n                  \\\"Parameters\\\":{\n                    \\\"Status\\\": \\\"{{ Status }}\\\"\n                  },\n                  \\\"API\\\": \\\"DescribeInstances\\\",\n                  \\\"Service\\\": \\\"Ecs\\\"\n                },\n                \\\"Name\\\": \\\"foo\\\",\n                \\\"Action\\\": \\\"ACS::ExecuteApi\\\"\n              }]\n          }\n      templateName: tf-example-name-${default.result}\n      versionName: example\n      tags:\n        Created: TF\n        For: acceptance Test\n  example:\n    type: alicloud:oos:Execution\n    properties:\n      templateName: ${defaultTemplate.templateName}\n      description: From TF Test\n      parameters: |\n        \\t\\t\\t\\t{\\\"Status\\\":\\\"Running\\\"}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOOS Execution can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oos/execution:Execution example exec-ef6xxxx\n```\n\n","properties":{"counters":{"type":"string","description":"The counters of OOS Execution.\n"},"createDate":{"type":"string","description":"The time when the execution was created.\n"},"description":{"type":"string","description":"The description of OOS Execution.\n"},"endDate":{"type":"string","description":"The time when the execution was ended.\n"},"executedBy":{"type":"string","description":"The user who execute the template.\n"},"isParent":{"type":"boolean","description":"Whether to include subtasks.\n"},"loopMode":{"type":"string","description":"The loop mode of OOS Execution.\n"},"mode":{"type":"string","description":"The mode of OOS Execution. Valid: `Automatic`, `Debug`. Default to `Automatic`.\n"},"outputs":{"type":"string","description":"The outputs of OOS Execution.\n"},"parameters":{"type":"string","description":"The parameters required by the template. Default to `{}`.\n"},"parentExecutionId":{"type":"string","description":"The id of parent execution.\n"},"ramRole":{"type":"string","description":"The role that executes the current template.\n"},"safetyCheck":{"type":"string","description":"The mode of safety check.\n"},"startDate":{"type":"string","description":"The time when the execution was started.\n"},"status":{"type":"string","description":"The status of OOS Execution.\n"},"statusMessage":{"type":"string","description":"The message of status.\n"},"templateContent":{"type":"string","description":"The content of template. When the user selects an existing template to create and execute a task, it is not necessary to pass in this field.\n"},"templateId":{"type":"string","description":"The id of template.\n"},"templateName":{"type":"string","description":"The name of execution template.\n"},"templateVersion":{"type":"string","description":"The version of execution template.\n"},"updateDate":{"type":"string","description":"The time when the execution was updated.\n"}},"required":["counters","createDate","endDate","executedBy","isParent","outputs","ramRole","startDate","status","statusMessage","templateId","templateName","templateVersion","updateDate"],"inputProperties":{"description":{"type":"string","description":"The description of OOS Execution.\n","willReplaceOnChanges":true},"loopMode":{"type":"string","description":"The loop mode of OOS Execution.\n","willReplaceOnChanges":true},"mode":{"type":"string","description":"The mode of OOS Execution. Valid: `Automatic`, `Debug`. Default to `Automatic`.\n","willReplaceOnChanges":true},"parameters":{"type":"string","description":"The parameters required by the template. Default to `{}`.\n","willReplaceOnChanges":true},"parentExecutionId":{"type":"string","description":"The id of parent execution.\n","willReplaceOnChanges":true},"safetyCheck":{"type":"string","description":"The mode of safety check.\n","willReplaceOnChanges":true},"templateContent":{"type":"string","description":"The content of template. When the user selects an existing template to create and execute a task, it is not necessary to pass in this field.\n","willReplaceOnChanges":true},"templateName":{"type":"string","description":"The name of execution template.\n","willReplaceOnChanges":true},"templateVersion":{"type":"string","description":"The version of execution template.\n","willReplaceOnChanges":true}},"requiredInputs":["templateName"],"stateInputs":{"description":"Input properties used for looking up and filtering Execution resources.\n","properties":{"counters":{"type":"string","description":"The counters of OOS Execution.\n"},"createDate":{"type":"string","description":"The time when the execution was created.\n"},"description":{"type":"string","description":"The description of OOS Execution.\n","willReplaceOnChanges":true},"endDate":{"type":"string","description":"The time when the execution was ended.\n"},"executedBy":{"type":"string","description":"The user who execute the template.\n"},"isParent":{"type":"boolean","description":"Whether to include subtasks.\n"},"loopMode":{"type":"string","description":"The loop mode of OOS Execution.\n","willReplaceOnChanges":true},"mode":{"type":"string","description":"The mode of OOS Execution. Valid: `Automatic`, `Debug`. Default to `Automatic`.\n","willReplaceOnChanges":true},"outputs":{"type":"string","description":"The outputs of OOS Execution.\n"},"parameters":{"type":"string","description":"The parameters required by the template. Default to `{}`.\n","willReplaceOnChanges":true},"parentExecutionId":{"type":"string","description":"The id of parent execution.\n","willReplaceOnChanges":true},"ramRole":{"type":"string","description":"The role that executes the current template.\n"},"safetyCheck":{"type":"string","description":"The mode of safety check.\n","willReplaceOnChanges":true},"startDate":{"type":"string","description":"The time when the execution was started.\n"},"status":{"type":"string","description":"The status of OOS Execution.\n"},"statusMessage":{"type":"string","description":"The message of status.\n"},"templateContent":{"type":"string","description":"The content of template. When the user selects an existing template to create and execute a task, it is not necessary to pass in this field.\n","willReplaceOnChanges":true},"templateId":{"type":"string","description":"The id of template.\n"},"templateName":{"type":"string","description":"The name of execution template.\n","willReplaceOnChanges":true},"templateVersion":{"type":"string","description":"The version of execution template.\n","willReplaceOnChanges":true},"updateDate":{"type":"string","description":"The time when the execution was updated.\n"}},"type":"object"}},"alicloud:oos/parameter:Parameter":{"description":"Provides a OOS Parameter resource.\n\nFor information about OOS Parameter and how to use it, see [What is Parameter](https://www.alibabacloud.com/help/en/doc-detail/183408.html).\n\n\u003e **NOTE:** Available in v1.147.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst example = new alicloud.oos.Parameter(\"example\", {\n    parameterName: \"my-Parameter\",\n    type: \"String\",\n    value: \"example_value\",\n    description: \"example_value\",\n    tags: {\n        Created: \"TF\",\n        For: \"OosParameter\",\n    },\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.get_resource_groups()\nexample = alicloud.oos.Parameter(\"example\",\n    parameter_name=\"my-Parameter\",\n    type=\"String\",\n    value=\"example_value\",\n    description=\"example_value\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"OosParameter\",\n    },\n    resource_group_id=default.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var example = new AliCloud.Oos.Parameter(\"example\", new()\n    {\n        ParameterName = \"my-Parameter\",\n        Type = \"String\",\n        Value = \"example_value\",\n        Description = \"example_value\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"OosParameter\" },\n        },\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oos.NewParameter(ctx, \"example\", \u0026oos.ParameterArgs{\n\t\t\tParameterName: pulumi.String(\"my-Parameter\"),\n\t\t\tType:          pulumi.String(\"String\"),\n\t\t\tValue:         pulumi.String(\"example_value\"),\n\t\t\tDescription:   pulumi.String(\"example_value\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"OosParameter\"),\n\t\t\t},\n\t\t\tResourceGroupId: pulumi.String(_default.Groups[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.oos.Parameter;\nimport com.pulumi.alicloud.oos.ParameterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var example = new Parameter(\"example\", ParameterArgs.builder()\n            .parameterName(\"my-Parameter\")\n            .type(\"String\")\n            .value(\"example_value\")\n            .description(\"example_value\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"OosParameter\")\n            ))\n            .resourceGroupId(default_.groups()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:oos:Parameter\n    properties:\n      parameterName: my-Parameter\n      type: String\n      value: example_value\n      description: example_value\n      tags:\n        Created: TF\n        For: OosParameter\n      resourceGroupId: ${default.groups[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOOS Parameter can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oos/parameter:Parameter example \u003cparameter_name\u003e\n```\n\n","properties":{"constraints":{"type":"string","description":"The constraints of the common parameter. This value follows the json format. By default, this parameter is null. Valid values:\n* `AllowedValues`: The value that is allowed for the common parameter. It must be an array string.\n* `AllowedPattern`: The pattern that is allowed for the common parameter. It must be a regular expression.\n* `MinLength`: The minimum length of the common parameter.\n* `MaxLength`: The maximum length of the common parameter.\n"},"description":{"type":"string","description":"The description of the common parameter. The description must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e characters in length.\n"},"parameterName":{"type":"string","description":"The name of the common parameter. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e characters in length, and can contain letters, digits, hyphens (-), forward slashes (/) and underscores (_). It cannot start with `ALIYUN`, `ACS`, `ALIBABA`, `ALICLOUD`, or `OOS`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"The data type of the common parameter. Valid values: `String` and `StringList`.\n"},"value":{"type":"string","description":"The value of the common parameter. The value must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`4096`\" pulumi-lang-dotnet=\"`4096`\" pulumi-lang-go=\"`4096`\" pulumi-lang-python=\"`4096`\" pulumi-lang-yaml=\"`4096`\" pulumi-lang-java=\"`4096`\"\u003e`4096`\u003c/span\u003e characters in length.\n"}},"required":["description","parameterName","resourceGroupId","type","value"],"inputProperties":{"constraints":{"type":"string","description":"The constraints of the common parameter. This value follows the json format. By default, this parameter is null. Valid values:\n* `AllowedValues`: The value that is allowed for the common parameter. It must be an array string.\n* `AllowedPattern`: The pattern that is allowed for the common parameter. It must be a regular expression.\n* `MinLength`: The minimum length of the common parameter.\n* `MaxLength`: The maximum length of the common parameter.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the common parameter. The description must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e characters in length.\n"},"parameterName":{"type":"string","description":"The name of the common parameter. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e characters in length, and can contain letters, digits, hyphens (-), forward slashes (/) and underscores (_). It cannot start with `ALIYUN`, `ACS`, `ALIBABA`, `ALICLOUD`, or `OOS`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"The data type of the common parameter. Valid values: `String` and `StringList`.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The value of the common parameter. The value must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`4096`\" pulumi-lang-dotnet=\"`4096`\" pulumi-lang-go=\"`4096`\" pulumi-lang-python=\"`4096`\" pulumi-lang-yaml=\"`4096`\" pulumi-lang-java=\"`4096`\"\u003e`4096`\u003c/span\u003e characters in length.\n"}},"requiredInputs":["parameterName","type","value"],"stateInputs":{"description":"Input properties used for looking up and filtering Parameter resources.\n","properties":{"constraints":{"type":"string","description":"The constraints of the common parameter. This value follows the json format. By default, this parameter is null. Valid values:\n* `AllowedValues`: The value that is allowed for the common parameter. It must be an array string.\n* `AllowedPattern`: The pattern that is allowed for the common parameter. It must be a regular expression.\n* `MinLength`: The minimum length of the common parameter.\n* `MaxLength`: The maximum length of the common parameter.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the common parameter. The description must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e characters in length.\n"},"parameterName":{"type":"string","description":"The name of the common parameter. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e characters in length, and can contain letters, digits, hyphens (-), forward slashes (/) and underscores (_). It cannot start with `ALIYUN`, `ACS`, `ALIBABA`, `ALICLOUD`, or `OOS`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"The data type of the common parameter. Valid values: `String` and `StringList`.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The value of the common parameter. The value must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`4096`\" pulumi-lang-dotnet=\"`4096`\" pulumi-lang-go=\"`4096`\" pulumi-lang-python=\"`4096`\" pulumi-lang-yaml=\"`4096`\" pulumi-lang-java=\"`4096`\"\u003e`4096`\u003c/span\u003e characters in length.\n"}},"type":"object"}},"alicloud:oos/patchBaseline:PatchBaseline":{"description":"Provides a Operation Orchestration Service (OOS) Patch Baseline resource.\n\n\n\nFor information about Operation Orchestration Service (OOS) Patch Baseline and how to use it, see [What is Patch Baseline](https://www.alibabacloud.com/help/en/operation-orchestration-service/latest/patch-manager-overview).\n\n\u003e **NOTE:** Available since v1.146.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.oos.PatchBaseline(\"default\", {\n    patchBaselineName: name,\n    operationSystem: \"Windows\",\n    approvalRules: \"{\\\"PatchRules\\\":[{\\\"EnableNonSecurity\\\":true,\\\"PatchFilterGroup\\\":[{\\\"Values\\\":[\\\"*\\\"],\\\"Key\\\":\\\"Product\\\"},{\\\"Values\\\":[\\\"Security\\\",\\\"Bugfix\\\"],\\\"Key\\\":\\\"Classification\\\"},{\\\"Values\\\":[\\\"Critical\\\",\\\"Important\\\"],\\\"Key\\\":\\\"Severity\\\"}],\\\"ApproveAfterDays\\\":7,\\\"ComplianceLevel\\\":\\\"Unspecified\\\"}]}\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.oos.PatchBaseline(\"default\",\n    patch_baseline_name=name,\n    operation_system=\"Windows\",\n    approval_rules=\"{\\\"PatchRules\\\":[{\\\"EnableNonSecurity\\\":true,\\\"PatchFilterGroup\\\":[{\\\"Values\\\":[\\\"*\\\"],\\\"Key\\\":\\\"Product\\\"},{\\\"Values\\\":[\\\"Security\\\",\\\"Bugfix\\\"],\\\"Key\\\":\\\"Classification\\\"},{\\\"Values\\\":[\\\"Critical\\\",\\\"Important\\\"],\\\"Key\\\":\\\"Severity\\\"}],\\\"ApproveAfterDays\\\":7,\\\"ComplianceLevel\\\":\\\"Unspecified\\\"}]}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Oos.PatchBaseline(\"default\", new()\n    {\n        PatchBaselineName = name,\n        OperationSystem = \"Windows\",\n        ApprovalRules = \"{\\\"PatchRules\\\":[{\\\"EnableNonSecurity\\\":true,\\\"PatchFilterGroup\\\":[{\\\"Values\\\":[\\\"*\\\"],\\\"Key\\\":\\\"Product\\\"},{\\\"Values\\\":[\\\"Security\\\",\\\"Bugfix\\\"],\\\"Key\\\":\\\"Classification\\\"},{\\\"Values\\\":[\\\"Critical\\\",\\\"Important\\\"],\\\"Key\\\":\\\"Severity\\\"}],\\\"ApproveAfterDays\\\":7,\\\"ComplianceLevel\\\":\\\"Unspecified\\\"}]}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := oos.NewPatchBaseline(ctx, \"default\", \u0026oos.PatchBaselineArgs{\n\t\t\tPatchBaselineName: pulumi.String(name),\n\t\t\tOperationSystem:   pulumi.String(\"Windows\"),\n\t\t\tApprovalRules:     pulumi.String(\"{\\\"PatchRules\\\":[{\\\"EnableNonSecurity\\\":true,\\\"PatchFilterGroup\\\":[{\\\"Values\\\":[\\\"*\\\"],\\\"Key\\\":\\\"Product\\\"},{\\\"Values\\\":[\\\"Security\\\",\\\"Bugfix\\\"],\\\"Key\\\":\\\"Classification\\\"},{\\\"Values\\\":[\\\"Critical\\\",\\\"Important\\\"],\\\"Key\\\":\\\"Severity\\\"}],\\\"ApproveAfterDays\\\":7,\\\"ComplianceLevel\\\":\\\"Unspecified\\\"}]}\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oos.PatchBaseline;\nimport com.pulumi.alicloud.oos.PatchBaselineArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new PatchBaseline(\"default\", PatchBaselineArgs.builder()\n            .patchBaselineName(name)\n            .operationSystem(\"Windows\")\n            .approvalRules(\"{\\\"PatchRules\\\":[{\\\"EnableNonSecurity\\\":true,\\\"PatchFilterGroup\\\":[{\\\"Values\\\":[\\\"*\\\"],\\\"Key\\\":\\\"Product\\\"},{\\\"Values\\\":[\\\"Security\\\",\\\"Bugfix\\\"],\\\"Key\\\":\\\"Classification\\\"},{\\\"Values\\\":[\\\"Critical\\\",\\\"Important\\\"],\\\"Key\\\":\\\"Severity\\\"}],\\\"ApproveAfterDays\\\":7,\\\"ComplianceLevel\\\":\\\"Unspecified\\\"}]}\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:oos:PatchBaseline\n    properties:\n      patchBaselineName: ${name}\n      operationSystem: Windows\n      approvalRules: '{\"PatchRules\":[{\"EnableNonSecurity\":true,\"PatchFilterGroup\":[{\"Values\":[\"*\"],\"Key\":\"Product\"},{\"Values\":[\"Security\",\"Bugfix\"],\"Key\":\"Classification\"},{\"Values\":[\"Critical\",\"Important\"],\"Key\":\"Severity\"}],\"ApproveAfterDays\":7,\"ComplianceLevel\":\"Unspecified\"}]}'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOperation Orchestration Service (OOS) Patch Baseline can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oos/patchBaseline:PatchBaseline example \u003cpatch_baseline_name\u003e\n```\n\n","properties":{"approvalRules":{"type":"string","description":"This value follows the json format. For more details, see the description of [ApprovalRules in the Request parameters table for details](https://www.alibabacloud.com/help/zh/operation-orchestration-service/latest/api-oos-2019-06-01-createpatchbaseline).\n"},"approvedPatches":{"type":"array","items":{"type":"string"},"description":"List of approved patches.\n"},"approvedPatchesEnableNonSecurity":{"type":"boolean","description":"Specifies whether approved patches include updates other than security updates.\n"},"createTime":{"type":"string","description":"Creation time.\n"},"description":{"type":"string","description":"Description of the patch baseline.\n"},"operationSystem":{"type":"string","description":"Operating system type. Supported values:\n- Windows\n- Ubuntu\n- CentOS\n- Debian\n- AliyunLinux\n- RedhatEnterpriseLinux\n- Anolis\n- Fedora\n- Suse\n- RockyLinux\n- AlmaLinux.\n"},"patchBaselineName":{"type":"string","description":"Patch baseline name.\n"},"rejectedPatches":{"type":"array","items":{"type":"string"},"description":"List of rejected patches.\n"},"rejectedPatchesAction":{"type":"string","description":"Rejected patches action. Valid values: `ALLOW_AS_DEPENDENCY`, `BLOCK`.\n"},"resourceGroupId":{"type":"string","description":"Resource group ID.\n"},"sources":{"type":"array","items":{"type":"string"},"description":"List of patch source configurations.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A key-value map of tags. The number of key-value pairs must be between 1 and 20.\n"}},"required":["approvalRules","createTime","operationSystem","patchBaselineName","rejectedPatchesAction","resourceGroupId"],"inputProperties":{"approvalRules":{"type":"string","description":"This value follows the json format. For more details, see the description of [ApprovalRules in the Request parameters table for details](https://www.alibabacloud.com/help/zh/operation-orchestration-service/latest/api-oos-2019-06-01-createpatchbaseline).\n"},"approvedPatches":{"type":"array","items":{"type":"string"},"description":"List of approved patches.\n"},"approvedPatchesEnableNonSecurity":{"type":"boolean","description":"Specifies whether approved patches include updates other than security updates.\n"},"description":{"type":"string","description":"Description of the patch baseline.\n"},"operationSystem":{"type":"string","description":"Operating system type. Supported values:\n- Windows\n- Ubuntu\n- CentOS\n- Debian\n- AliyunLinux\n- RedhatEnterpriseLinux\n- Anolis\n- Fedora\n- Suse\n- RockyLinux\n- AlmaLinux.\n","willReplaceOnChanges":true},"patchBaselineName":{"type":"string","description":"Patch baseline name.\n","willReplaceOnChanges":true},"rejectedPatches":{"type":"array","items":{"type":"string"},"description":"List of rejected patches.\n"},"rejectedPatchesAction":{"type":"string","description":"Rejected patches action. Valid values: `ALLOW_AS_DEPENDENCY`, `BLOCK`.\n"},"resourceGroupId":{"type":"string","description":"Resource group ID.\n"},"sources":{"type":"array","items":{"type":"string"},"description":"List of patch source configurations.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A key-value map of tags. The number of key-value pairs must be between 1 and 20.\n"}},"requiredInputs":["approvalRules","operationSystem","patchBaselineName"],"stateInputs":{"description":"Input properties used for looking up and filtering PatchBaseline resources.\n","properties":{"approvalRules":{"type":"string","description":"This value follows the json format. For more details, see the description of [ApprovalRules in the Request parameters table for details](https://www.alibabacloud.com/help/zh/operation-orchestration-service/latest/api-oos-2019-06-01-createpatchbaseline).\n"},"approvedPatches":{"type":"array","items":{"type":"string"},"description":"List of approved patches.\n"},"approvedPatchesEnableNonSecurity":{"type":"boolean","description":"Specifies whether approved patches include updates other than security updates.\n"},"createTime":{"type":"string","description":"Creation time.\n"},"description":{"type":"string","description":"Description of the patch baseline.\n"},"operationSystem":{"type":"string","description":"Operating system type. Supported values:\n- Windows\n- Ubuntu\n- CentOS\n- Debian\n- AliyunLinux\n- RedhatEnterpriseLinux\n- Anolis\n- Fedora\n- Suse\n- RockyLinux\n- AlmaLinux.\n","willReplaceOnChanges":true},"patchBaselineName":{"type":"string","description":"Patch baseline name.\n","willReplaceOnChanges":true},"rejectedPatches":{"type":"array","items":{"type":"string"},"description":"List of rejected patches.\n"},"rejectedPatchesAction":{"type":"string","description":"Rejected patches action. Valid values: `ALLOW_AS_DEPENDENCY`, `BLOCK`.\n"},"resourceGroupId":{"type":"string","description":"Resource group ID.\n"},"sources":{"type":"array","items":{"type":"string"},"description":"List of patch source configurations.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A key-value map of tags. The number of key-value pairs must be between 1 and 20.\n"}},"type":"object"}},"alicloud:oos/secretParameter:SecretParameter":{"description":"Provides a Operation Orchestration Service (OOS) Secret Parameter resource.\n\n\n\nFor information about Operation Orchestration Service (OOS) Secret Parameter and how to use it, see [What is Secret Parameter](https://www.alibabacloud.com/help/en/doc-detail/183418.html).\n\n\u003e **NOTE:** Available since v1.147.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.resourcemanager.getResourceGroups({});\nconst exampleKey = new alicloud.kms.Key(\"example\", {\n    description: \"terraform-example\",\n    status: \"Enabled\",\n    pendingWindowInDays: 7,\n});\nconst exampleSecretParameter = new alicloud.oos.SecretParameter(\"example\", {\n    secretParameterName: \"terraform-example\",\n    value: \"terraform-example\",\n    type: \"Secret\",\n    keyId: exampleKey.id,\n    description: \"terraform-example\",\n    tags: {\n        Created: \"TF\",\n        For: \"OosSecretParameter\",\n    },\n    resourceGroupId: example.then(example =\u003e example.groups?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.resourcemanager.get_resource_groups()\nexample_key = alicloud.kms.Key(\"example\",\n    description=\"terraform-example\",\n    status=\"Enabled\",\n    pending_window_in_days=7)\nexample_secret_parameter = alicloud.oos.SecretParameter(\"example\",\n    secret_parameter_name=\"terraform-example\",\n    value=\"terraform-example\",\n    type=\"Secret\",\n    key_id=example_key.id,\n    description=\"terraform-example\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"OosSecretParameter\",\n    },\n    resource_group_id=example.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var exampleKey = new AliCloud.Kms.Key(\"example\", new()\n    {\n        Description = \"terraform-example\",\n        Status = \"Enabled\",\n        PendingWindowInDays = 7,\n    });\n\n    var exampleSecretParameter = new AliCloud.Oos.SecretParameter(\"example\", new()\n    {\n        SecretParameterName = \"terraform-example\",\n        Value = \"terraform-example\",\n        Type = \"Secret\",\n        KeyId = exampleKey.Id,\n        Description = \"terraform-example\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"OosSecretParameter\" },\n        },\n        ResourceGroupId = example.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKey, err := kms.NewKey(ctx, \"example\", \u0026kms.KeyArgs{\n\t\t\tDescription:         pulumi.String(\"terraform-example\"),\n\t\t\tStatus:              pulumi.String(\"Enabled\"),\n\t\t\tPendingWindowInDays: pulumi.Int(7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oos.NewSecretParameter(ctx, \"example\", \u0026oos.SecretParameterArgs{\n\t\t\tSecretParameterName: pulumi.String(\"terraform-example\"),\n\t\t\tValue:               pulumi.String(\"terraform-example\"),\n\t\t\tType:                pulumi.String(\"Secret\"),\n\t\t\tKeyId:               exampleKey.ID(),\n\t\t\tDescription:         pulumi.String(\"terraform-example\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"OosSecretParameter\"),\n\t\t\t},\n\t\t\tResourceGroupId: pulumi.String(example.Groups[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.kms.Key;\nimport com.pulumi.alicloud.kms.KeyArgs;\nimport com.pulumi.alicloud.oos.SecretParameter;\nimport com.pulumi.alicloud.oos.SecretParameterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var exampleKey = new Key(\"exampleKey\", KeyArgs.builder()\n            .description(\"terraform-example\")\n            .status(\"Enabled\")\n            .pendingWindowInDays(7)\n            .build());\n\n        var exampleSecretParameter = new SecretParameter(\"exampleSecretParameter\", SecretParameterArgs.builder()\n            .secretParameterName(\"terraform-example\")\n            .value(\"terraform-example\")\n            .type(\"Secret\")\n            .keyId(exampleKey.id())\n            .description(\"terraform-example\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"OosSecretParameter\")\n            ))\n            .resourceGroupId(example.groups()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleKey:\n    type: alicloud:kms:Key\n    name: example\n    properties:\n      description: terraform-example\n      status: Enabled\n      pendingWindowInDays: 7\n  exampleSecretParameter:\n    type: alicloud:oos:SecretParameter\n    name: example\n    properties:\n      secretParameterName: terraform-example\n      value: terraform-example\n      type: Secret\n      keyId: ${exampleKey.id}\n      description: terraform-example\n      tags:\n        Created: TF\n        For: OosSecretParameter\n      resourceGroupId: ${example.groups[0].id}\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOperation Orchestration Service (OOS) Secret Parameter can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oos/secretParameter:SecretParameter example \u003cid\u003e\n```\n\n","properties":{"constraints":{"type":"string","description":"The constraints of the encryption parameter. By default, this parameter is null. Valid values:\n* `AllowedValues`: The value that is allowed for the encryption parameter. It must be an array string.\n* `AllowedPattern`: The pattern that is allowed for the encryption parameter. It must be a regular expression.\n* `MinLength`: The minimum length of the encryption parameter.\n* `MaxLength`: The maximum length of the encryption parameter.\n"},"createTime":{"type":"string","description":"Parameter creation time\n"},"description":{"type":"string","description":"The description of the encryption parameter. The description must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e characters in length.\n"},"dkmsInstanceId":{"type":"string","description":"The ID of the KMS instance.\n"},"keyId":{"type":"string","description":"The Customer Master Key (CMK) of Key Management Service (KMS) that is used to encrypt the parameter.\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"secretParameterName":{"type":"string","description":"The name of the encryption parameter.  The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e characters in length, and can contain letters, digits, hyphens (-), forward slashes (/) and underscores (_). It cannot start with `ALIYUN`, `ACS`, `ALIBABA`, `ALICLOUD`, or `OOS`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"The data type of the encryption parameter. Valid values: `Secret`.\n"},"value":{"type":"string","description":"The value of the encryption parameter. The value must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`4096`\" pulumi-lang-dotnet=\"`4096`\" pulumi-lang-go=\"`4096`\" pulumi-lang-python=\"`4096`\" pulumi-lang-yaml=\"`4096`\" pulumi-lang-java=\"`4096`\"\u003e`4096`\u003c/span\u003e characters in length.\n","secret":true}},"required":["createTime","resourceGroupId","secretParameterName","tags","type","value"],"inputProperties":{"constraints":{"type":"string","description":"The constraints of the encryption parameter. By default, this parameter is null. Valid values:\n* `AllowedValues`: The value that is allowed for the encryption parameter. It must be an array string.\n* `AllowedPattern`: The pattern that is allowed for the encryption parameter. It must be a regular expression.\n* `MinLength`: The minimum length of the encryption parameter.\n* `MaxLength`: The maximum length of the encryption parameter.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the encryption parameter. The description must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e characters in length.\n"},"dkmsInstanceId":{"type":"string","description":"The ID of the KMS instance.\n","willReplaceOnChanges":true},"keyId":{"type":"string","description":"The Customer Master Key (CMK) of Key Management Service (KMS) that is used to encrypt the parameter.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"secretParameterName":{"type":"string","description":"The name of the encryption parameter.  The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e characters in length, and can contain letters, digits, hyphens (-), forward slashes (/) and underscores (_). It cannot start with `ALIYUN`, `ACS`, `ALIBABA`, `ALICLOUD`, or `OOS`.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"The data type of the encryption parameter. Valid values: `Secret`.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The value of the encryption parameter. The value must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`4096`\" pulumi-lang-dotnet=\"`4096`\" pulumi-lang-go=\"`4096`\" pulumi-lang-python=\"`4096`\" pulumi-lang-yaml=\"`4096`\" pulumi-lang-java=\"`4096`\"\u003e`4096`\u003c/span\u003e characters in length.\n","secret":true}},"requiredInputs":["secretParameterName","value"],"stateInputs":{"description":"Input properties used for looking up and filtering SecretParameter resources.\n","properties":{"constraints":{"type":"string","description":"The constraints of the encryption parameter. By default, this parameter is null. Valid values:\n* `AllowedValues`: The value that is allowed for the encryption parameter. It must be an array string.\n* `AllowedPattern`: The pattern that is allowed for the encryption parameter. It must be a regular expression.\n* `MinLength`: The minimum length of the encryption parameter.\n* `MaxLength`: The maximum length of the encryption parameter.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"Parameter creation time\n"},"description":{"type":"string","description":"The description of the encryption parameter. The description must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e characters in length.\n"},"dkmsInstanceId":{"type":"string","description":"The ID of the KMS instance.\n","willReplaceOnChanges":true},"keyId":{"type":"string","description":"The Customer Master Key (CMK) of Key Management Service (KMS) that is used to encrypt the parameter.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"secretParameterName":{"type":"string","description":"The name of the encryption parameter.  The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e characters in length, and can contain letters, digits, hyphens (-), forward slashes (/) and underscores (_). It cannot start with `ALIYUN`, `ACS`, `ALIBABA`, `ALICLOUD`, or `OOS`.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"type":{"type":"string","description":"The data type of the encryption parameter. Valid values: `Secret`.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The value of the encryption parameter. The value must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`4096`\" pulumi-lang-dotnet=\"`4096`\" pulumi-lang-go=\"`4096`\" pulumi-lang-python=\"`4096`\" pulumi-lang-yaml=\"`4096`\" pulumi-lang-java=\"`4096`\"\u003e`4096`\u003c/span\u003e characters in length.\n","secret":true}},"type":"object"}},"alicloud:oos/serviceSetting:ServiceSetting":{"description":"Provides a OOS Service Setting resource.\n\nFor information about OOS Service Setting and how to use it, see [What is Service Setting](https://www.alibabacloud.com/help/en/doc-detail/268700.html).\n\n\u003e **NOTE:** Available in v1.147.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-testaccoossetting\";\nconst _default = new alicloud.oss.Bucket(\"default\", {bucket: name});\nconst defaultBucketAcl = new alicloud.oss.BucketAcl(\"default\", {\n    bucket: _default.bucket,\n    acl: \"public-read-write\",\n});\nconst defaultProject = new alicloud.log.Project(\"default\", {projectName: name});\nconst defaultServiceSetting = new alicloud.oos.ServiceSetting(\"default\", {\n    deliveryOssEnabled: true,\n    deliveryOssKeyPrefix: \"path1/\",\n    deliveryOssBucketName: _default.bucket,\n    deliverySlsEnabled: true,\n    deliverySlsProjectName: defaultProject.projectName,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-testaccoossetting\"\ndefault = alicloud.oss.Bucket(\"default\", bucket=name)\ndefault_bucket_acl = alicloud.oss.BucketAcl(\"default\",\n    bucket=default.bucket,\n    acl=\"public-read-write\")\ndefault_project = alicloud.log.Project(\"default\", project_name=name)\ndefault_service_setting = alicloud.oos.ServiceSetting(\"default\",\n    delivery_oss_enabled=True,\n    delivery_oss_key_prefix=\"path1/\",\n    delivery_oss_bucket_name=default.bucket,\n    delivery_sls_enabled=True,\n    delivery_sls_project_name=default_project.project_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-testaccoossetting\";\n    var @default = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = name,\n    });\n\n    var defaultBucketAcl = new AliCloud.Oss.BucketAcl(\"default\", new()\n    {\n        Bucket = @default.BucketName,\n        Acl = \"public-read-write\",\n    });\n\n    var defaultProject = new AliCloud.Log.Project(\"default\", new()\n    {\n        ProjectName = name,\n    });\n\n    var defaultServiceSetting = new AliCloud.Oos.ServiceSetting(\"default\", new()\n    {\n        DeliveryOssEnabled = true,\n        DeliveryOssKeyPrefix = \"path1/\",\n        DeliveryOssBucketName = @default.BucketName,\n        DeliverySlsEnabled = true,\n        DeliverySlsProjectName = defaultProject.ProjectName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-testaccoossetting\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"default\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: _default.Bucket,\n\t\t\tAcl:    pulumi.String(\"public-read-write\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultProject, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oos.NewServiceSetting(ctx, \"default\", \u0026oos.ServiceSettingArgs{\n\t\t\tDeliveryOssEnabled:     pulumi.Bool(true),\n\t\t\tDeliveryOssKeyPrefix:   pulumi.String(\"path1/\"),\n\t\t\tDeliveryOssBucketName:  _default.Bucket,\n\t\t\tDeliverySlsEnabled:     pulumi.Bool(true),\n\t\t\tDeliverySlsProjectName: defaultProject.ProjectName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.oos.ServiceSetting;\nimport com.pulumi.alicloud.oos.ServiceSettingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-testaccoossetting\");\n        var default_ = new Bucket(\"default\", BucketArgs.builder()\n            .bucket(name)\n            .build());\n\n        var defaultBucketAcl = new BucketAcl(\"defaultBucketAcl\", BucketAclArgs.builder()\n            .bucket(default_.bucket())\n            .acl(\"public-read-write\")\n            .build());\n\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .projectName(name)\n            .build());\n\n        var defaultServiceSetting = new ServiceSetting(\"defaultServiceSetting\", ServiceSettingArgs.builder()\n            .deliveryOssEnabled(true)\n            .deliveryOssKeyPrefix(\"path1/\")\n            .deliveryOssBucketName(default_.bucket())\n            .deliverySlsEnabled(true)\n            .deliverySlsProjectName(defaultProject.projectName())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-testaccoossetting\nresources:\n  default:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: ${name}\n  defaultBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: default\n    properties:\n      bucket: ${default.bucket}\n      acl: public-read-write\n  defaultProject:\n    type: alicloud:log:Project\n    name: default\n    properties:\n      projectName: ${name}\n  defaultServiceSetting:\n    type: alicloud:oos:ServiceSetting\n    name: default\n    properties:\n      deliveryOssEnabled: true\n      deliveryOssKeyPrefix: path1/\n      deliveryOssBucketName: ${default.bucket}\n      deliverySlsEnabled: true\n      deliverySlsProjectName: ${defaultProject.projectName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOOS Service Setting can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oos/serviceSetting:ServiceSetting example \u003cid\u003e\n```\n\n","properties":{"deliveryOssBucketName":{"type":"string","description":"The name of the OSS bucket. **NOTE:** When the \u003cspan pulumi-lang-nodejs=\"`deliveryOssEnabled`\" pulumi-lang-dotnet=\"`DeliveryOssEnabled`\" pulumi-lang-go=\"`deliveryOssEnabled`\" pulumi-lang-python=\"`delivery_oss_enabled`\" pulumi-lang-yaml=\"`deliveryOssEnabled`\" pulumi-lang-java=\"`deliveryOssEnabled`\"\u003e`delivery_oss_enabled`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, The \u003cspan pulumi-lang-nodejs=\"`deliveryOssBucketName`\" pulumi-lang-dotnet=\"`DeliveryOssBucketName`\" pulumi-lang-go=\"`deliveryOssBucketName`\" pulumi-lang-python=\"`delivery_oss_bucket_name`\" pulumi-lang-yaml=\"`deliveryOssBucketName`\" pulumi-lang-java=\"`deliveryOssBucketName`\"\u003e`delivery_oss_bucket_name`\u003c/span\u003e is valid.\n"},"deliveryOssEnabled":{"type":"boolean","description":"Is the recording function for the OSS delivery template enabled.\n"},"deliveryOssKeyPrefix":{"type":"string","description":"The Directory of the OSS bucket. **NOTE:** When the \u003cspan pulumi-lang-nodejs=\"`deliveryOssEnabled`\" pulumi-lang-dotnet=\"`DeliveryOssEnabled`\" pulumi-lang-go=\"`deliveryOssEnabled`\" pulumi-lang-python=\"`delivery_oss_enabled`\" pulumi-lang-yaml=\"`deliveryOssEnabled`\" pulumi-lang-java=\"`deliveryOssEnabled`\"\u003e`delivery_oss_enabled`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, The \u003cspan pulumi-lang-nodejs=\"`deliveryOssBucketName`\" pulumi-lang-dotnet=\"`DeliveryOssBucketName`\" pulumi-lang-go=\"`deliveryOssBucketName`\" pulumi-lang-python=\"`delivery_oss_bucket_name`\" pulumi-lang-yaml=\"`deliveryOssBucketName`\" pulumi-lang-java=\"`deliveryOssBucketName`\"\u003e`delivery_oss_bucket_name`\u003c/span\u003e is valid.\n"},"deliverySlsEnabled":{"type":"boolean","description":"Is the execution record function to SLS delivery Template turned on.\n"},"deliverySlsProjectName":{"type":"string","description":"The name of SLS  Project. **NOTE:** When the \u003cspan pulumi-lang-nodejs=\"`deliverySlsEnabled`\" pulumi-lang-dotnet=\"`DeliverySlsEnabled`\" pulumi-lang-go=\"`deliverySlsEnabled`\" pulumi-lang-python=\"`delivery_sls_enabled`\" pulumi-lang-yaml=\"`deliverySlsEnabled`\" pulumi-lang-java=\"`deliverySlsEnabled`\"\u003e`delivery_sls_enabled`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, The \u003cspan pulumi-lang-nodejs=\"`deliverySlsProjectName`\" pulumi-lang-dotnet=\"`DeliverySlsProjectName`\" pulumi-lang-go=\"`deliverySlsProjectName`\" pulumi-lang-python=\"`delivery_sls_project_name`\" pulumi-lang-yaml=\"`deliverySlsProjectName`\" pulumi-lang-java=\"`deliverySlsProjectName`\"\u003e`delivery_sls_project_name`\u003c/span\u003e is valid.\n"}},"inputProperties":{"deliveryOssBucketName":{"type":"string","description":"The name of the OSS bucket. **NOTE:** When the \u003cspan pulumi-lang-nodejs=\"`deliveryOssEnabled`\" pulumi-lang-dotnet=\"`DeliveryOssEnabled`\" pulumi-lang-go=\"`deliveryOssEnabled`\" pulumi-lang-python=\"`delivery_oss_enabled`\" pulumi-lang-yaml=\"`deliveryOssEnabled`\" pulumi-lang-java=\"`deliveryOssEnabled`\"\u003e`delivery_oss_enabled`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, The \u003cspan pulumi-lang-nodejs=\"`deliveryOssBucketName`\" pulumi-lang-dotnet=\"`DeliveryOssBucketName`\" pulumi-lang-go=\"`deliveryOssBucketName`\" pulumi-lang-python=\"`delivery_oss_bucket_name`\" pulumi-lang-yaml=\"`deliveryOssBucketName`\" pulumi-lang-java=\"`deliveryOssBucketName`\"\u003e`delivery_oss_bucket_name`\u003c/span\u003e is valid.\n"},"deliveryOssEnabled":{"type":"boolean","description":"Is the recording function for the OSS delivery template enabled.\n"},"deliveryOssKeyPrefix":{"type":"string","description":"The Directory of the OSS bucket. **NOTE:** When the \u003cspan pulumi-lang-nodejs=\"`deliveryOssEnabled`\" pulumi-lang-dotnet=\"`DeliveryOssEnabled`\" pulumi-lang-go=\"`deliveryOssEnabled`\" pulumi-lang-python=\"`delivery_oss_enabled`\" pulumi-lang-yaml=\"`deliveryOssEnabled`\" pulumi-lang-java=\"`deliveryOssEnabled`\"\u003e`delivery_oss_enabled`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, The \u003cspan pulumi-lang-nodejs=\"`deliveryOssBucketName`\" pulumi-lang-dotnet=\"`DeliveryOssBucketName`\" pulumi-lang-go=\"`deliveryOssBucketName`\" pulumi-lang-python=\"`delivery_oss_bucket_name`\" pulumi-lang-yaml=\"`deliveryOssBucketName`\" pulumi-lang-java=\"`deliveryOssBucketName`\"\u003e`delivery_oss_bucket_name`\u003c/span\u003e is valid.\n"},"deliverySlsEnabled":{"type":"boolean","description":"Is the execution record function to SLS delivery Template turned on.\n"},"deliverySlsProjectName":{"type":"string","description":"The name of SLS  Project. **NOTE:** When the \u003cspan pulumi-lang-nodejs=\"`deliverySlsEnabled`\" pulumi-lang-dotnet=\"`DeliverySlsEnabled`\" pulumi-lang-go=\"`deliverySlsEnabled`\" pulumi-lang-python=\"`delivery_sls_enabled`\" pulumi-lang-yaml=\"`deliverySlsEnabled`\" pulumi-lang-java=\"`deliverySlsEnabled`\"\u003e`delivery_sls_enabled`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, The \u003cspan pulumi-lang-nodejs=\"`deliverySlsProjectName`\" pulumi-lang-dotnet=\"`DeliverySlsProjectName`\" pulumi-lang-go=\"`deliverySlsProjectName`\" pulumi-lang-python=\"`delivery_sls_project_name`\" pulumi-lang-yaml=\"`deliverySlsProjectName`\" pulumi-lang-java=\"`deliverySlsProjectName`\"\u003e`delivery_sls_project_name`\u003c/span\u003e is valid.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ServiceSetting resources.\n","properties":{"deliveryOssBucketName":{"type":"string","description":"The name of the OSS bucket. **NOTE:** When the \u003cspan pulumi-lang-nodejs=\"`deliveryOssEnabled`\" pulumi-lang-dotnet=\"`DeliveryOssEnabled`\" pulumi-lang-go=\"`deliveryOssEnabled`\" pulumi-lang-python=\"`delivery_oss_enabled`\" pulumi-lang-yaml=\"`deliveryOssEnabled`\" pulumi-lang-java=\"`deliveryOssEnabled`\"\u003e`delivery_oss_enabled`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, The \u003cspan pulumi-lang-nodejs=\"`deliveryOssBucketName`\" pulumi-lang-dotnet=\"`DeliveryOssBucketName`\" pulumi-lang-go=\"`deliveryOssBucketName`\" pulumi-lang-python=\"`delivery_oss_bucket_name`\" pulumi-lang-yaml=\"`deliveryOssBucketName`\" pulumi-lang-java=\"`deliveryOssBucketName`\"\u003e`delivery_oss_bucket_name`\u003c/span\u003e is valid.\n"},"deliveryOssEnabled":{"type":"boolean","description":"Is the recording function for the OSS delivery template enabled.\n"},"deliveryOssKeyPrefix":{"type":"string","description":"The Directory of the OSS bucket. **NOTE:** When the \u003cspan pulumi-lang-nodejs=\"`deliveryOssEnabled`\" pulumi-lang-dotnet=\"`DeliveryOssEnabled`\" pulumi-lang-go=\"`deliveryOssEnabled`\" pulumi-lang-python=\"`delivery_oss_enabled`\" pulumi-lang-yaml=\"`deliveryOssEnabled`\" pulumi-lang-java=\"`deliveryOssEnabled`\"\u003e`delivery_oss_enabled`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, The \u003cspan pulumi-lang-nodejs=\"`deliveryOssBucketName`\" pulumi-lang-dotnet=\"`DeliveryOssBucketName`\" pulumi-lang-go=\"`deliveryOssBucketName`\" pulumi-lang-python=\"`delivery_oss_bucket_name`\" pulumi-lang-yaml=\"`deliveryOssBucketName`\" pulumi-lang-java=\"`deliveryOssBucketName`\"\u003e`delivery_oss_bucket_name`\u003c/span\u003e is valid.\n"},"deliverySlsEnabled":{"type":"boolean","description":"Is the execution record function to SLS delivery Template turned on.\n"},"deliverySlsProjectName":{"type":"string","description":"The name of SLS  Project. **NOTE:** When the \u003cspan pulumi-lang-nodejs=\"`deliverySlsEnabled`\" pulumi-lang-dotnet=\"`DeliverySlsEnabled`\" pulumi-lang-go=\"`deliverySlsEnabled`\" pulumi-lang-python=\"`delivery_sls_enabled`\" pulumi-lang-yaml=\"`deliverySlsEnabled`\" pulumi-lang-java=\"`deliverySlsEnabled`\"\u003e`delivery_sls_enabled`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, The \u003cspan pulumi-lang-nodejs=\"`deliverySlsProjectName`\" pulumi-lang-dotnet=\"`DeliverySlsProjectName`\" pulumi-lang-go=\"`deliverySlsProjectName`\" pulumi-lang-python=\"`delivery_sls_project_name`\" pulumi-lang-yaml=\"`deliverySlsProjectName`\" pulumi-lang-java=\"`deliverySlsProjectName`\"\u003e`delivery_sls_project_name`\u003c/span\u003e is valid.\n"}},"type":"object"}},"alicloud:oos/stateConfiguration:StateConfiguration":{"description":"Provides a OOS State Configuration resource.\n\nFor information about OOS State Configuration and how to use it, see [What is State Configuration](https://www.alibabacloud.com/help/en/doc-detail/208728.html).\n\n\u003e **NOTE:** Available in v1.147.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultStateConfiguration = new alicloud.oos.StateConfiguration(\"default\", {\n    templateName: \"ACS-ECS-InventoryDataCollection\",\n    configureMode: \"ApplyOnly\",\n    description: \"terraform-example\",\n    scheduleType: \"rate\",\n    scheduleExpression: \"1 hour\",\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    targets: \"{\\\"Filters\\\": [{\\\"Type\\\": \\\"All\\\", \\\"Parameters\\\": {\\\"InstanceChargeType\\\": \\\"PrePaid\\\"}}], \\\"ResourceType\\\": \\\"ALIYUN::ECS::Instance\\\"}\",\n    parameters: \"{\\\"policy\\\": {\\\"ACS:Application\\\": {\\\"Collection\\\": \\\"Enabled\\\"}}}\",\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_state_configuration = alicloud.oos.StateConfiguration(\"default\",\n    template_name=\"ACS-ECS-InventoryDataCollection\",\n    configure_mode=\"ApplyOnly\",\n    description=\"terraform-example\",\n    schedule_type=\"rate\",\n    schedule_expression=\"1 hour\",\n    resource_group_id=default.ids[0],\n    targets=\"{\\\"Filters\\\": [{\\\"Type\\\": \\\"All\\\", \\\"Parameters\\\": {\\\"InstanceChargeType\\\": \\\"PrePaid\\\"}}], \\\"ResourceType\\\": \\\"ALIYUN::ECS::Instance\\\"}\",\n    parameters=\"{\\\"policy\\\": {\\\"ACS:Application\\\": {\\\"Collection\\\": \\\"Enabled\\\"}}}\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultStateConfiguration = new AliCloud.Oos.StateConfiguration(\"default\", new()\n    {\n        TemplateName = \"ACS-ECS-InventoryDataCollection\",\n        ConfigureMode = \"ApplyOnly\",\n        Description = \"terraform-example\",\n        ScheduleType = \"rate\",\n        ScheduleExpression = \"1 hour\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        Targets = \"{\\\"Filters\\\": [{\\\"Type\\\": \\\"All\\\", \\\"Parameters\\\": {\\\"InstanceChargeType\\\": \\\"PrePaid\\\"}}], \\\"ResourceType\\\": \\\"ALIYUN::ECS::Instance\\\"}\",\n        Parameters = \"{\\\"policy\\\": {\\\"ACS:Application\\\": {\\\"Collection\\\": \\\"Enabled\\\"}}}\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oos.NewStateConfiguration(ctx, \"default\", \u0026oos.StateConfigurationArgs{\n\t\t\tTemplateName:       pulumi.String(\"ACS-ECS-InventoryDataCollection\"),\n\t\t\tConfigureMode:      pulumi.String(\"ApplyOnly\"),\n\t\t\tDescription:        pulumi.String(\"terraform-example\"),\n\t\t\tScheduleType:       pulumi.String(\"rate\"),\n\t\t\tScheduleExpression: pulumi.String(\"1 hour\"),\n\t\t\tResourceGroupId:    pulumi.String(_default.Ids[0]),\n\t\t\tTargets:            pulumi.String(\"{\\\"Filters\\\": [{\\\"Type\\\": \\\"All\\\", \\\"Parameters\\\": {\\\"InstanceChargeType\\\": \\\"PrePaid\\\"}}], \\\"ResourceType\\\": \\\"ALIYUN::ECS::Instance\\\"}\"),\n\t\t\tParameters:         pulumi.String(\"{\\\"policy\\\": {\\\"ACS:Application\\\": {\\\"Collection\\\": \\\"Enabled\\\"}}}\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.oos.StateConfiguration;\nimport com.pulumi.alicloud.oos.StateConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultStateConfiguration = new StateConfiguration(\"defaultStateConfiguration\", StateConfigurationArgs.builder()\n            .templateName(\"ACS-ECS-InventoryDataCollection\")\n            .configureMode(\"ApplyOnly\")\n            .description(\"terraform-example\")\n            .scheduleType(\"rate\")\n            .scheduleExpression(\"1 hour\")\n            .resourceGroupId(default_.ids()[0])\n            .targets(\"{\\\"Filters\\\": [{\\\"Type\\\": \\\"All\\\", \\\"Parameters\\\": {\\\"InstanceChargeType\\\": \\\"PrePaid\\\"}}], \\\"ResourceType\\\": \\\"ALIYUN::ECS::Instance\\\"}\")\n            .parameters(\"{\\\"policy\\\": {\\\"ACS:Application\\\": {\\\"Collection\\\": \\\"Enabled\\\"}}}\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultStateConfiguration:\n    type: alicloud:oos:StateConfiguration\n    name: default\n    properties:\n      templateName: ACS-ECS-InventoryDataCollection\n      configureMode: ApplyOnly\n      description: terraform-example\n      scheduleType: rate\n      scheduleExpression: 1 hour\n      resourceGroupId: ${default.ids[0]}\n      targets: '{\"Filters\": [{\"Type\": \"All\", \"Parameters\": {\"InstanceChargeType\": \"PrePaid\"}}], \"ResourceType\": \"ALIYUN::ECS::Instance\"}'\n      parameters: '{\"policy\": {\"ACS:Application\": {\"Collection\": \"Enabled\"}}}'\n      tags:\n        Created: TF\n        For: example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOOS State Configuration can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oos/stateConfiguration:StateConfiguration example \u003cid\u003e\n```\n\n","properties":{"configureMode":{"type":"string","description":"Configuration mode. Valid values: `ApplyAndAutoCorrect`, `ApplyAndMonitor`, `ApplyOnly`.\n"},"description":{"type":"string","description":"The description of the resource.\n"},"parameters":{"type":"string","description":"The parameter of the Template. This field is in the format of JSON strings. For detailed definition instructions, please refer to [Metadata types that are supported by a configuration list](https://www.alibabacloud.com/help/en/doc-detail/208276.html).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"scheduleExpression":{"type":"string","description":"Timing expression.\n"},"scheduleType":{"type":"string","description":"Timing type. Valid values: \u003cspan pulumi-lang-nodejs=\"`rate`\" pulumi-lang-dotnet=\"`Rate`\" pulumi-lang-go=\"`rate`\" pulumi-lang-python=\"`rate`\" pulumi-lang-yaml=\"`rate`\" pulumi-lang-java=\"`rate`\"\u003e`rate`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"targets":{"type":"string","description":"The Target resources.  This field is in the format of JSON strings. For detailed definition instructions, please refer to [Parameter](https://www.alibabacloud.com/help/en/doc-detail/120674.html).\n"},"templateName":{"type":"string","description":"The name of the template.\n"},"templateVersion":{"type":"string","description":"The version number. If you do not specify this parameter, the system uses the latest version.\n"}},"required":["configureMode","resourceGroupId","scheduleExpression","scheduleType","targets","templateName","templateVersion"],"inputProperties":{"configureMode":{"type":"string","description":"Configuration mode. Valid values: `ApplyAndAutoCorrect`, `ApplyAndMonitor`, `ApplyOnly`.\n"},"description":{"type":"string","description":"The description of the resource.\n"},"parameters":{"type":"string","description":"The parameter of the Template. This field is in the format of JSON strings. For detailed definition instructions, please refer to [Metadata types that are supported by a configuration list](https://www.alibabacloud.com/help/en/doc-detail/208276.html).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"scheduleExpression":{"type":"string","description":"Timing expression.\n"},"scheduleType":{"type":"string","description":"Timing type. Valid values: \u003cspan pulumi-lang-nodejs=\"`rate`\" pulumi-lang-dotnet=\"`Rate`\" pulumi-lang-go=\"`rate`\" pulumi-lang-python=\"`rate`\" pulumi-lang-yaml=\"`rate`\" pulumi-lang-java=\"`rate`\"\u003e`rate`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"targets":{"type":"string","description":"The Target resources.  This field is in the format of JSON strings. For detailed definition instructions, please refer to [Parameter](https://www.alibabacloud.com/help/en/doc-detail/120674.html).\n"},"templateName":{"type":"string","description":"The name of the template.\n","willReplaceOnChanges":true},"templateVersion":{"type":"string","description":"The version number. If you do not specify this parameter, the system uses the latest version.\n","willReplaceOnChanges":true}},"requiredInputs":["scheduleExpression","scheduleType","targets","templateName"],"stateInputs":{"description":"Input properties used for looking up and filtering StateConfiguration resources.\n","properties":{"configureMode":{"type":"string","description":"Configuration mode. Valid values: `ApplyAndAutoCorrect`, `ApplyAndMonitor`, `ApplyOnly`.\n"},"description":{"type":"string","description":"The description of the resource.\n"},"parameters":{"type":"string","description":"The parameter of the Template. This field is in the format of JSON strings. For detailed definition instructions, please refer to [Metadata types that are supported by a configuration list](https://www.alibabacloud.com/help/en/doc-detail/208276.html).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"scheduleExpression":{"type":"string","description":"Timing expression.\n"},"scheduleType":{"type":"string","description":"Timing type. Valid values: \u003cspan pulumi-lang-nodejs=\"`rate`\" pulumi-lang-dotnet=\"`Rate`\" pulumi-lang-go=\"`rate`\" pulumi-lang-python=\"`rate`\" pulumi-lang-yaml=\"`rate`\" pulumi-lang-java=\"`rate`\"\u003e`rate`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"targets":{"type":"string","description":"The Target resources.  This field is in the format of JSON strings. For detailed definition instructions, please refer to [Parameter](https://www.alibabacloud.com/help/en/doc-detail/120674.html).\n"},"templateName":{"type":"string","description":"The name of the template.\n","willReplaceOnChanges":true},"templateVersion":{"type":"string","description":"The version number. If you do not specify this parameter, the system uses the latest version.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:oos/template:Template":{"description":"Provides a OOS Template resource. For information about Alicloud OOS Template and how to use it, see [What is Resource Alicloud OOS Template](https://www.alibabacloud.com/help/doc-detail/120761.htm).\n\n\u003e **NOTE:** Available since v1.92.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst example = new alicloud.oos.Template(\"example\", {\n    content: `  {\n    \\\\\"FormatVersion\\\\\": \\\\\"OOS-2019-06-01\\\\\",\n    \\\\\"Description\\\\\": \\\\\"Update Describe instances of given status\\\\\",\n    \\\\\"Parameters\\\\\":{\n      \\\\\"Status\\\\\":{\n        \\\\\"Type\\\\\": \\\\\"String\\\\\",\n        \\\\\"Description\\\\\": \\\\\"(Required) The status of the Ecs instance.\\\\\"\n      }\n    },\n    \\\\\"Tasks\\\\\": [\n      {\n        \\\\\"Properties\\\\\" :{\n          \\\\\"Parameters\\\\\":{\n            \\\\\"Status\\\\\": \\\\\"{{ Status }}\\\\\"\n          },\n          \\\\\"API\\\\\": \\\\\"DescribeInstances\\\\\",\n          \\\\\"Service\\\\\": \\\\\"Ecs\\\\\"\n        },\n        \\\\\"Name\\\\\": \\\\\"foo\\\\\",\n        \\\\\"Action\\\\\": \\\\\"ACS::ExecuteApi\\\\\"\n      }]\n  }\n`,\n    templateName: `tf-example-name-${_default.result}`,\n    versionName: \"example\",\n    tags: {\n        Created: \"TF\",\n        For: \"acceptance Test\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample = alicloud.oos.Template(\"example\",\n    content=\"\"\"  {\n    \\\"FormatVersion\\\": \\\"OOS-2019-06-01\\\",\n    \\\"Description\\\": \\\"Update Describe instances of given status\\\",\n    \\\"Parameters\\\":{\n      \\\"Status\\\":{\n        \\\"Type\\\": \\\"String\\\",\n        \\\"Description\\\": \\\"(Required) The status of the Ecs instance.\\\"\n      }\n    },\n    \\\"Tasks\\\": [\n      {\n        \\\"Properties\\\" :{\n          \\\"Parameters\\\":{\n            \\\"Status\\\": \\\"{{ Status }}\\\"\n          },\n          \\\"API\\\": \\\"DescribeInstances\\\",\n          \\\"Service\\\": \\\"Ecs\\\"\n        },\n        \\\"Name\\\": \\\"foo\\\",\n        \\\"Action\\\": \\\"ACS::ExecuteApi\\\"\n      }]\n  }\n\"\"\",\n    template_name=f\"tf-example-name-{default['result']}\",\n    version_name=\"example\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"acceptance Test\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var example = new AliCloud.Oos.Template(\"example\", new()\n    {\n        Content = @\"  {\n    \\\"\"FormatVersion\\\"\": \\\"\"OOS-2019-06-01\\\"\",\n    \\\"\"Description\\\"\": \\\"\"Update Describe instances of given status\\\"\",\n    \\\"\"Parameters\\\"\":{\n      \\\"\"Status\\\"\":{\n        \\\"\"Type\\\"\": \\\"\"String\\\"\",\n        \\\"\"Description\\\"\": \\\"\"(Required) The status of the Ecs instance.\\\"\"\n      }\n    },\n    \\\"\"Tasks\\\"\": [\n      {\n        \\\"\"Properties\\\"\" :{\n          \\\"\"Parameters\\\"\":{\n            \\\"\"Status\\\"\": \\\"\"{{ Status }}\\\"\"\n          },\n          \\\"\"API\\\"\": \\\"\"DescribeInstances\\\"\",\n          \\\"\"Service\\\"\": \\\"\"Ecs\\\"\"\n        },\n        \\\"\"Name\\\"\": \\\"\"foo\\\"\",\n        \\\"\"Action\\\"\": \\\"\"ACS::ExecuteApi\\\"\"\n      }]\n  }\n\",\n        TemplateName = $\"tf-example-name-{@default.Result}\",\n        VersionName = \"example\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"acceptance Test\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oos.NewTemplate(ctx, \"example\", \u0026oos.TemplateArgs{\n\t\t\tContent: pulumi.String(`  {\n    \\\"FormatVersion\\\": \\\"OOS-2019-06-01\\\",\n    \\\"Description\\\": \\\"Update Describe instances of given status\\\",\n    \\\"Parameters\\\":{\n      \\\"Status\\\":{\n        \\\"Type\\\": \\\"String\\\",\n        \\\"Description\\\": \\\"(Required) The status of the Ecs instance.\\\"\n      }\n    },\n    \\\"Tasks\\\": [\n      {\n        \\\"Properties\\\" :{\n          \\\"Parameters\\\":{\n            \\\"Status\\\": \\\"{{ Status }}\\\"\n          },\n          \\\"API\\\": \\\"DescribeInstances\\\",\n          \\\"Service\\\": \\\"Ecs\\\"\n        },\n        \\\"Name\\\": \\\"foo\\\",\n        \\\"Action\\\": \\\"ACS::ExecuteApi\\\"\n      }]\n  }\n`),\n\t\t\tTemplateName: pulumi.Sprintf(\"tf-example-name-%v\", _default.Result),\n\t\t\tVersionName:  pulumi.String(\"example\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"acceptance Test\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oos.Template;\nimport com.pulumi.alicloud.oos.TemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var example = new Template(\"example\", TemplateArgs.builder()\n            .content(\"\"\"\n  {\n    \\\"FormatVersion\\\": \\\"OOS-2019-06-01\\\",\n    \\\"Description\\\": \\\"Update Describe instances of given status\\\",\n    \\\"Parameters\\\":{\n      \\\"Status\\\":{\n        \\\"Type\\\": \\\"String\\\",\n        \\\"Description\\\": \\\"(Required) The status of the Ecs instance.\\\"\n      }\n    },\n    \\\"Tasks\\\": [\n      {\n        \\\"Properties\\\" :{\n          \\\"Parameters\\\":{\n            \\\"Status\\\": \\\"{{ Status }}\\\"\n          },\n          \\\"API\\\": \\\"DescribeInstances\\\",\n          \\\"Service\\\": \\\"Ecs\\\"\n        },\n        \\\"Name\\\": \\\"foo\\\",\n        \\\"Action\\\": \\\"ACS::ExecuteApi\\\"\n      }]\n  }\n            \"\"\")\n            .templateName(String.format(\"tf-example-name-%s\", default_.result()))\n            .versionName(\"example\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"acceptance Test\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  example:\n    type: alicloud:oos:Template\n    properties:\n      content: |2\n          {\n            \\\"FormatVersion\\\": \\\"OOS-2019-06-01\\\",\n            \\\"Description\\\": \\\"Update Describe instances of given status\\\",\n            \\\"Parameters\\\":{\n              \\\"Status\\\":{\n                \\\"Type\\\": \\\"String\\\",\n                \\\"Description\\\": \\\"(Required) The status of the Ecs instance.\\\"\n              }\n            },\n            \\\"Tasks\\\": [\n              {\n                \\\"Properties\\\" :{\n                  \\\"Parameters\\\":{\n                    \\\"Status\\\": \\\"{{ Status }}\\\"\n                  },\n                  \\\"API\\\": \\\"DescribeInstances\\\",\n                  \\\"Service\\\": \\\"Ecs\\\"\n                },\n                \\\"Name\\\": \\\"foo\\\",\n                \\\"Action\\\": \\\"ACS::ExecuteApi\\\"\n              }]\n          }\n      templateName: tf-example-name-${default.result}\n      versionName: example\n      tags:\n        Created: TF\n        For: acceptance Test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOOS Template can be imported using the id or template_name, e.g.\n\n```sh\n$ pulumi import alicloud:oos/template:Template example template_name\n```\n\n","properties":{"autoDeleteExecutions":{"type":"boolean","description":"When deleting a template, whether to delete its related executions. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"content":{"type":"string","description":"The content of the template. The template must be in the JSON or YAML format. Maximum size: 64 KB.\n"},"createdBy":{"type":"string","description":"The creator of the template.\n"},"createdDate":{"type":"string","description":"The time when the template is created.\n"},"description":{"type":"string","description":"The description of the template.\n"},"hasTrigger":{"type":"boolean","description":"Is it triggered successfully.\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the template belongs.\n"},"shareType":{"type":"string","description":"The sharing type of the template. The sharing type of templates created by users are set to Private. The sharing type of common templates provided by OOS are set to Public.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"templateFormat":{"type":"string","description":"The format of the template. The format can be JSON or YAML. The system automatically identifies the format.\n"},"templateId":{"type":"string","description":"The id of OOS Template.\n"},"templateName":{"type":"string","description":"The name of the template. The template name can be up to 200 characters in length. The name can contain letters, digits, hyphens (-), and underscores (_). It cannot start with `ALIYUN`, `ACS`, `ALIBABA`, or `ALICLOUD`.\n"},"templateType":{"type":"string","description":"The type of OOS Template. `Automation` means the implementation of Alibaba Cloud API template, `Package` means represents a template for installing software.\n"},"templateVersion":{"type":"string","description":"The version of OOS Template.\n"},"updatedBy":{"type":"string","description":"The user who updated the template.\n"},"updatedDate":{"type":"string","description":"The time when the template was updated.\n"},"versionName":{"type":"string","description":"The name of template version.\n"}},"required":["content","createdBy","createdDate","description","hasTrigger","resourceGroupId","shareType","templateFormat","templateId","templateName","templateType","templateVersion","updatedBy","updatedDate"],"inputProperties":{"autoDeleteExecutions":{"type":"boolean","description":"When deleting a template, whether to delete its related executions. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"content":{"type":"string","description":"The content of the template. The template must be in the JSON or YAML format. Maximum size: 64 KB.\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the template belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"templateName":{"type":"string","description":"The name of the template. The template name can be up to 200 characters in length. The name can contain letters, digits, hyphens (-), and underscores (_). It cannot start with `ALIYUN`, `ACS`, `ALIBABA`, or `ALICLOUD`.\n","willReplaceOnChanges":true},"versionName":{"type":"string","description":"The name of template version.\n"}},"requiredInputs":["content","templateName"],"stateInputs":{"description":"Input properties used for looking up and filtering Template resources.\n","properties":{"autoDeleteExecutions":{"type":"boolean","description":"When deleting a template, whether to delete its related executions. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"content":{"type":"string","description":"The content of the template. The template must be in the JSON or YAML format. Maximum size: 64 KB.\n"},"createdBy":{"type":"string","description":"The creator of the template.\n"},"createdDate":{"type":"string","description":"The time when the template is created.\n"},"description":{"type":"string","description":"The description of the template.\n"},"hasTrigger":{"type":"boolean","description":"Is it triggered successfully.\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the template belongs.\n"},"shareType":{"type":"string","description":"The sharing type of the template. The sharing type of templates created by users are set to Private. The sharing type of common templates provided by OOS are set to Public.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"templateFormat":{"type":"string","description":"The format of the template. The format can be JSON or YAML. The system automatically identifies the format.\n"},"templateId":{"type":"string","description":"The id of OOS Template.\n"},"templateName":{"type":"string","description":"The name of the template. The template name can be up to 200 characters in length. The name can contain letters, digits, hyphens (-), and underscores (_). It cannot start with `ALIYUN`, `ACS`, `ALIBABA`, or `ALICLOUD`.\n","willReplaceOnChanges":true},"templateType":{"type":"string","description":"The type of OOS Template. `Automation` means the implementation of Alibaba Cloud API template, `Package` means represents a template for installing software.\n"},"templateVersion":{"type":"string","description":"The version of OOS Template.\n"},"updatedBy":{"type":"string","description":"The user who updated the template.\n"},"updatedDate":{"type":"string","description":"The time when the template was updated.\n"},"versionName":{"type":"string","description":"The name of template version.\n"}},"type":"object"}},"alicloud:opensearch/appGroup:AppGroup":{"description":"Provides a Open Search App Group resource.\n\nFor information about Open Search App Group and how to use it, see [What is App Group](https://www.aliyun.com/product/opensearch).\n\n\u003e **NOTE:** Available in v1.136.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"name\";\nconst _default = new alicloud.opensearch.AppGroup(\"default\", {\n    appGroupName: name,\n    paymentType: \"PayAsYouGo\",\n    type: \"standard\",\n    quota: {\n        docSize: 1,\n        computeResource: 20,\n        spec: \"opensearch.share.common\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"name\"\ndefault = alicloud.opensearch.AppGroup(\"default\",\n    app_group_name=name,\n    payment_type=\"PayAsYouGo\",\n    type=\"standard\",\n    quota={\n        \"doc_size\": 1,\n        \"compute_resource\": 20,\n        \"spec\": \"opensearch.share.common\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"name\";\n    var @default = new AliCloud.OpenSearch.AppGroup(\"default\", new()\n    {\n        AppGroupName = name,\n        PaymentType = \"PayAsYouGo\",\n        Type = \"standard\",\n        Quota = new AliCloud.OpenSearch.Inputs.AppGroupQuotaArgs\n        {\n            DocSize = 1,\n            ComputeResource = 20,\n            Spec = \"opensearch.share.common\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/opensearch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"name\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := opensearch.NewAppGroup(ctx, \"default\", \u0026opensearch.AppGroupArgs{\n\t\t\tAppGroupName: pulumi.String(name),\n\t\t\tPaymentType:  pulumi.String(\"PayAsYouGo\"),\n\t\t\tType:         pulumi.String(\"standard\"),\n\t\t\tQuota: \u0026opensearch.AppGroupQuotaArgs{\n\t\t\t\tDocSize:         pulumi.Int(1),\n\t\t\t\tComputeResource: pulumi.Int(20),\n\t\t\t\tSpec:            pulumi.String(\"opensearch.share.common\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.opensearch.AppGroup;\nimport com.pulumi.alicloud.opensearch.AppGroupArgs;\nimport com.pulumi.alicloud.opensearch.inputs.AppGroupQuotaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"name\");\n        var default_ = new AppGroup(\"default\", AppGroupArgs.builder()\n            .appGroupName(name)\n            .paymentType(\"PayAsYouGo\")\n            .type(\"standard\")\n            .quota(AppGroupQuotaArgs.builder()\n                .docSize(1)\n                .computeResource(20)\n                .spec(\"opensearch.share.common\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: name\nresources:\n  default:\n    type: alicloud:opensearch:AppGroup\n    properties:\n      appGroupName: ${name}\n      paymentType: PayAsYouGo\n      type: standard\n      quota:\n        docSize: 1\n        computeResource: 20\n        spec: opensearch.share.common\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOpen Search App Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:opensearch/appGroup:AppGroup example \u003cid\u003e\n```\n\n","properties":{"appGroupName":{"type":"string","description":"Application Group Name.\n"},"chargeWay":{"type":"string","description":"Billing model. Valid values:\u003cspan pulumi-lang-nodejs=\"`computeResource`\" pulumi-lang-dotnet=\"`ComputeResource`\" pulumi-lang-go=\"`computeResource`\" pulumi-lang-python=\"`compute_resource`\" pulumi-lang-yaml=\"`computeResource`\" pulumi-lang-java=\"`computeResource`\"\u003e`compute_resource`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`qps`\" pulumi-lang-dotnet=\"`Qps`\" pulumi-lang-go=\"`qps`\" pulumi-lang-python=\"`qps`\" pulumi-lang-yaml=\"`qps`\" pulumi-lang-java=\"`qps`\"\u003e`qps`\u003c/span\u003e.\n"},"currentVersion":{"type":"string","description":"The version of Application Group Name.\n"},"description":{"type":"string","description":"The description of the resource.\n"},"instanceId":{"type":"string","description":"The instance id.\n"},"orderType":{"type":"string","description":"Order change type. Valid values: `UPGRADE` and `DOWNGRADE`.\n"},"orders":{"type":"array","items":{"$ref":"#/types/alicloud:opensearch/AppGroupOrder:AppGroupOrder"},"description":"Order cycle information. The details see Block order.\n"},"paymentType":{"type":"string","description":"The billing method of the resource. Valid values: `Subscription` and `PayAsYouGo`.\n"},"quota":{"$ref":"#/types/alicloud:opensearch/AppGroupQuota:AppGroupQuota","description":"Quota information.  The details see Block quota.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`producing`\" pulumi-lang-dotnet=\"`Producing`\" pulumi-lang-go=\"`producing`\" pulumi-lang-python=\"`producing`\" pulumi-lang-yaml=\"`producing`\" pulumi-lang-java=\"`producing`\"\u003e`producing`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`reviewPending`\" pulumi-lang-dotnet=\"`ReviewPending`\" pulumi-lang-go=\"`reviewPending`\" pulumi-lang-python=\"`review_pending`\" pulumi-lang-yaml=\"`reviewPending`\" pulumi-lang-java=\"`reviewPending`\"\u003e`review_pending`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`configPending`\" pulumi-lang-dotnet=\"`ConfigPending`\" pulumi-lang-go=\"`configPending`\" pulumi-lang-python=\"`config_pending`\" pulumi-lang-yaml=\"`configPending`\" pulumi-lang-java=\"`configPending`\"\u003e`config_pending`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`frozen`\" pulumi-lang-dotnet=\"`Frozen`\" pulumi-lang-go=\"`frozen`\" pulumi-lang-python=\"`frozen`\" pulumi-lang-yaml=\"`frozen`\" pulumi-lang-java=\"`frozen`\"\u003e`frozen`\u003c/span\u003e.\n"},"type":{"type":"string","description":"Application type. Valid Values: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enhanced`\" pulumi-lang-dotnet=\"`Enhanced`\" pulumi-lang-go=\"`enhanced`\" pulumi-lang-python=\"`enhanced`\" pulumi-lang-yaml=\"`enhanced`\" pulumi-lang-java=\"`enhanced`\"\u003e`enhanced`\u003c/span\u003e.\n"}},"required":["appGroupName","chargeWay","instanceId","orderType","paymentType","quota","status","type"],"inputProperties":{"appGroupName":{"type":"string","description":"Application Group Name.\n","willReplaceOnChanges":true},"chargeWay":{"type":"string","description":"Billing model. Valid values:\u003cspan pulumi-lang-nodejs=\"`computeResource`\" pulumi-lang-dotnet=\"`ComputeResource`\" pulumi-lang-go=\"`computeResource`\" pulumi-lang-python=\"`compute_resource`\" pulumi-lang-yaml=\"`computeResource`\" pulumi-lang-java=\"`computeResource`\"\u003e`compute_resource`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`qps`\" pulumi-lang-dotnet=\"`Qps`\" pulumi-lang-go=\"`qps`\" pulumi-lang-python=\"`qps`\" pulumi-lang-yaml=\"`qps`\" pulumi-lang-java=\"`qps`\"\u003e`qps`\u003c/span\u003e.\n"},"currentVersion":{"type":"string","description":"The version of Application Group Name.\n"},"description":{"type":"string","description":"The description of the resource.\n"},"orderType":{"type":"string","description":"Order change type. Valid values: `UPGRADE` and `DOWNGRADE`.\n"},"orders":{"type":"array","items":{"$ref":"#/types/alicloud:opensearch/AppGroupOrder:AppGroupOrder"},"description":"Order cycle information. The details see Block order.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The billing method of the resource. Valid values: `Subscription` and `PayAsYouGo`.\n","willReplaceOnChanges":true},"quota":{"$ref":"#/types/alicloud:opensearch/AppGroupQuota:AppGroupQuota","description":"Quota information.  The details see Block quota.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Application type. Valid Values: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enhanced`\" pulumi-lang-dotnet=\"`Enhanced`\" pulumi-lang-go=\"`enhanced`\" pulumi-lang-python=\"`enhanced`\" pulumi-lang-yaml=\"`enhanced`\" pulumi-lang-java=\"`enhanced`\"\u003e`enhanced`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["appGroupName","paymentType","quota","type"],"stateInputs":{"description":"Input properties used for looking up and filtering AppGroup resources.\n","properties":{"appGroupName":{"type":"string","description":"Application Group Name.\n","willReplaceOnChanges":true},"chargeWay":{"type":"string","description":"Billing model. Valid values:\u003cspan pulumi-lang-nodejs=\"`computeResource`\" pulumi-lang-dotnet=\"`ComputeResource`\" pulumi-lang-go=\"`computeResource`\" pulumi-lang-python=\"`compute_resource`\" pulumi-lang-yaml=\"`computeResource`\" pulumi-lang-java=\"`computeResource`\"\u003e`compute_resource`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`qps`\" pulumi-lang-dotnet=\"`Qps`\" pulumi-lang-go=\"`qps`\" pulumi-lang-python=\"`qps`\" pulumi-lang-yaml=\"`qps`\" pulumi-lang-java=\"`qps`\"\u003e`qps`\u003c/span\u003e.\n"},"currentVersion":{"type":"string","description":"The version of Application Group Name.\n"},"description":{"type":"string","description":"The description of the resource.\n"},"instanceId":{"type":"string","description":"The instance id.\n"},"orderType":{"type":"string","description":"Order change type. Valid values: `UPGRADE` and `DOWNGRADE`.\n"},"orders":{"type":"array","items":{"$ref":"#/types/alicloud:opensearch/AppGroupOrder:AppGroupOrder"},"description":"Order cycle information. The details see Block order.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"The billing method of the resource. Valid values: `Subscription` and `PayAsYouGo`.\n","willReplaceOnChanges":true},"quota":{"$ref":"#/types/alicloud:opensearch/AppGroupQuota:AppGroupQuota","description":"Quota information.  The details see Block quota.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`producing`\" pulumi-lang-dotnet=\"`Producing`\" pulumi-lang-go=\"`producing`\" pulumi-lang-python=\"`producing`\" pulumi-lang-yaml=\"`producing`\" pulumi-lang-java=\"`producing`\"\u003e`producing`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`reviewPending`\" pulumi-lang-dotnet=\"`ReviewPending`\" pulumi-lang-go=\"`reviewPending`\" pulumi-lang-python=\"`review_pending`\" pulumi-lang-yaml=\"`reviewPending`\" pulumi-lang-java=\"`reviewPending`\"\u003e`review_pending`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`configPending`\" pulumi-lang-dotnet=\"`ConfigPending`\" pulumi-lang-go=\"`configPending`\" pulumi-lang-python=\"`config_pending`\" pulumi-lang-yaml=\"`configPending`\" pulumi-lang-java=\"`configPending`\"\u003e`config_pending`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`frozen`\" pulumi-lang-dotnet=\"`Frozen`\" pulumi-lang-go=\"`frozen`\" pulumi-lang-python=\"`frozen`\" pulumi-lang-yaml=\"`frozen`\" pulumi-lang-java=\"`frozen`\"\u003e`frozen`\u003c/span\u003e.\n"},"type":{"type":"string","description":"Application type. Valid Values: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enhanced`\" pulumi-lang-dotnet=\"`Enhanced`\" pulumi-lang-go=\"`enhanced`\" pulumi-lang-python=\"`enhanced`\" pulumi-lang-yaml=\"`enhanced`\" pulumi-lang-java=\"`enhanced`\"\u003e`enhanced`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:oss/accessPoint:AccessPoint":{"description":"Provides a OSS Access Point resource.\n\nYou can create multiple Access points for buckets and configure different Access control permissions and network control policies for different Access points.\n\nFor information about OSS Access Point and how to use it, see [What is Access Point](https://www.alibabacloud.com/help/en/oss/developer-reference/createaccesspoint).\n\n\u003e **NOTE:** Available since v1.240.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {storageClass: \"Standard\"});\nconst _default = new alicloud.oss.AccessPoint(\"default\", {\n    accessPointName: name,\n    bucket: createBucket.bucket,\n    vpcConfiguration: {\n        vpcId: \"vpc-abcexample\",\n    },\n    networkOrigin: \"vpc\",\n    publicAccessBlockConfiguration: {\n        blockPublicAccess: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\", storage_class=\"Standard\")\ndefault = alicloud.oss.AccessPoint(\"default\",\n    access_point_name=name,\n    bucket=create_bucket.bucket,\n    vpc_configuration={\n        \"vpc_id\": \"vpc-abcexample\",\n    },\n    network_origin=\"vpc\",\n    public_access_block_configuration={\n        \"block_public_access\": True,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n    });\n\n    var @default = new AliCloud.Oss.AccessPoint(\"default\", new()\n    {\n        AccessPointName = name,\n        Bucket = createBucket.BucketName,\n        VpcConfiguration = new AliCloud.Oss.Inputs.AccessPointVpcConfigurationArgs\n        {\n            VpcId = \"vpc-abcexample\",\n        },\n        NetworkOrigin = \"vpc\",\n        PublicAccessBlockConfiguration = new AliCloud.Oss.Inputs.AccessPointPublicAccessBlockConfigurationArgs\n        {\n            BlockPublicAccess = true,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewAccessPoint(ctx, \"default\", \u0026oss.AccessPointArgs{\n\t\t\tAccessPointName: pulumi.String(name),\n\t\t\tBucket:          createBucket.Bucket,\n\t\t\tVpcConfiguration: \u0026oss.AccessPointVpcConfigurationArgs{\n\t\t\t\tVpcId: pulumi.String(\"vpc-abcexample\"),\n\t\t\t},\n\t\t\tNetworkOrigin: pulumi.String(\"vpc\"),\n\t\t\tPublicAccessBlockConfiguration: \u0026oss.AccessPointPublicAccessBlockConfigurationArgs{\n\t\t\t\tBlockPublicAccess: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.AccessPoint;\nimport com.pulumi.alicloud.oss.AccessPointArgs;\nimport com.pulumi.alicloud.oss.inputs.AccessPointVpcConfigurationArgs;\nimport com.pulumi.alicloud.oss.inputs.AccessPointPublicAccessBlockConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .build());\n\n        var default_ = new AccessPoint(\"default\", AccessPointArgs.builder()\n            .accessPointName(name)\n            .bucket(createBucket.bucket())\n            .vpcConfiguration(AccessPointVpcConfigurationArgs.builder()\n                .vpcId(\"vpc-abcexample\")\n                .build())\n            .networkOrigin(\"vpc\")\n            .publicAccessBlockConfiguration(AccessPointPublicAccessBlockConfigurationArgs.builder()\n                .blockPublicAccess(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n  default:\n    type: alicloud:oss:AccessPoint\n    properties:\n      accessPointName: ${name}\n      bucket: ${createBucket.bucket}\n      vpcConfiguration:\n        vpcId: vpc-abcexample\n      networkOrigin: vpc\n      publicAccessBlockConfiguration:\n        blockPublicAccess: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Access Point can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/accessPoint:AccessPoint example \u003cbucket\u003e:\u003caccess_point_name\u003e\n```\n\n","properties":{"accessPointName":{"type":"string","description":"The name of the access point\n"},"bucket":{"type":"string","description":"The Bucket to which the current access point belongs.\n"},"networkOrigin":{"type":"string","description":"Access point network source. The valid values are as follows: \n- vpc: only the specified VPC ID can be used to access the access point.\n- internet: the access point can be accessed through both external and internal Endpoint.\n"},"publicAccessBlockConfiguration":{"$ref":"#/types/alicloud:oss/AccessPointPublicAccessBlockConfiguration:AccessPointPublicAccessBlockConfiguration","description":"Configuration of Access Point Blocking Public Access See \u003cspan pulumi-lang-nodejs=\"`publicAccessBlockConfiguration`\" pulumi-lang-dotnet=\"`PublicAccessBlockConfiguration`\" pulumi-lang-go=\"`publicAccessBlockConfiguration`\" pulumi-lang-python=\"`public_access_block_configuration`\" pulumi-lang-yaml=\"`publicAccessBlockConfiguration`\" pulumi-lang-java=\"`publicAccessBlockConfiguration`\"\u003e`public_access_block_configuration`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the resource\n"},"vpcConfiguration":{"$ref":"#/types/alicloud:oss/AccessPointVpcConfiguration:AccessPointVpcConfiguration","description":"If the Network Origin is vpc, the VPC source information is saved here. See \u003cspan pulumi-lang-nodejs=\"`vpcConfiguration`\" pulumi-lang-dotnet=\"`VpcConfiguration`\" pulumi-lang-go=\"`vpcConfiguration`\" pulumi-lang-python=\"`vpc_configuration`\" pulumi-lang-yaml=\"`vpcConfiguration`\" pulumi-lang-java=\"`vpcConfiguration`\"\u003e`vpc_configuration`\u003c/span\u003e below.\n"}},"required":["accessPointName","bucket","networkOrigin","status"],"inputProperties":{"accessPointName":{"type":"string","description":"The name of the access point\n","willReplaceOnChanges":true},"bucket":{"type":"string","description":"The Bucket to which the current access point belongs.\n","willReplaceOnChanges":true},"networkOrigin":{"type":"string","description":"Access point network source. The valid values are as follows: \n- vpc: only the specified VPC ID can be used to access the access point.\n- internet: the access point can be accessed through both external and internal Endpoint.\n","willReplaceOnChanges":true},"publicAccessBlockConfiguration":{"$ref":"#/types/alicloud:oss/AccessPointPublicAccessBlockConfiguration:AccessPointPublicAccessBlockConfiguration","description":"Configuration of Access Point Blocking Public Access See \u003cspan pulumi-lang-nodejs=\"`publicAccessBlockConfiguration`\" pulumi-lang-dotnet=\"`PublicAccessBlockConfiguration`\" pulumi-lang-go=\"`publicAccessBlockConfiguration`\" pulumi-lang-python=\"`public_access_block_configuration`\" pulumi-lang-yaml=\"`publicAccessBlockConfiguration`\" pulumi-lang-java=\"`publicAccessBlockConfiguration`\"\u003e`public_access_block_configuration`\u003c/span\u003e below.\n"},"vpcConfiguration":{"$ref":"#/types/alicloud:oss/AccessPointVpcConfiguration:AccessPointVpcConfiguration","description":"If the Network Origin is vpc, the VPC source information is saved here. See \u003cspan pulumi-lang-nodejs=\"`vpcConfiguration`\" pulumi-lang-dotnet=\"`VpcConfiguration`\" pulumi-lang-go=\"`vpcConfiguration`\" pulumi-lang-python=\"`vpc_configuration`\" pulumi-lang-yaml=\"`vpcConfiguration`\" pulumi-lang-java=\"`vpcConfiguration`\"\u003e`vpc_configuration`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"requiredInputs":["accessPointName","bucket","networkOrigin"],"stateInputs":{"description":"Input properties used for looking up and filtering AccessPoint resources.\n","properties":{"accessPointName":{"type":"string","description":"The name of the access point\n","willReplaceOnChanges":true},"bucket":{"type":"string","description":"The Bucket to which the current access point belongs.\n","willReplaceOnChanges":true},"networkOrigin":{"type":"string","description":"Access point network source. The valid values are as follows: \n- vpc: only the specified VPC ID can be used to access the access point.\n- internet: the access point can be accessed through both external and internal Endpoint.\n","willReplaceOnChanges":true},"publicAccessBlockConfiguration":{"$ref":"#/types/alicloud:oss/AccessPointPublicAccessBlockConfiguration:AccessPointPublicAccessBlockConfiguration","description":"Configuration of Access Point Blocking Public Access See \u003cspan pulumi-lang-nodejs=\"`publicAccessBlockConfiguration`\" pulumi-lang-dotnet=\"`PublicAccessBlockConfiguration`\" pulumi-lang-go=\"`publicAccessBlockConfiguration`\" pulumi-lang-python=\"`public_access_block_configuration`\" pulumi-lang-yaml=\"`publicAccessBlockConfiguration`\" pulumi-lang-java=\"`publicAccessBlockConfiguration`\"\u003e`public_access_block_configuration`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the resource\n"},"vpcConfiguration":{"$ref":"#/types/alicloud:oss/AccessPointVpcConfiguration:AccessPointVpcConfiguration","description":"If the Network Origin is vpc, the VPC source information is saved here. See \u003cspan pulumi-lang-nodejs=\"`vpcConfiguration`\" pulumi-lang-dotnet=\"`VpcConfiguration`\" pulumi-lang-go=\"`vpcConfiguration`\" pulumi-lang-python=\"`vpc_configuration`\" pulumi-lang-yaml=\"`vpcConfiguration`\" pulumi-lang-java=\"`vpcConfiguration`\"\u003e`vpc_configuration`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:oss/accountPublicAccessBlock:AccountPublicAccessBlock":{"description":"Provides a OSS Account Public Access Block resource. Blocking public access at the account level.\n\nFor information about OSS Account Public Access Block and how to use it, see [What is Account Public Access Block](https://www.alibabacloud.com/help/en/oss/developer-reference/putpublicaccessblock).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.oss.AccountPublicAccessBlock(\"default\", {blockPublicAccess: true});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.oss.AccountPublicAccessBlock(\"default\", block_public_access=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Oss.AccountPublicAccessBlock(\"default\", new()\n    {\n        BlockPublicAccess = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := oss.NewAccountPublicAccessBlock(ctx, \"default\", \u0026oss.AccountPublicAccessBlockArgs{\n\t\t\tBlockPublicAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oss.AccountPublicAccessBlock;\nimport com.pulumi.alicloud.oss.AccountPublicAccessBlockArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new AccountPublicAccessBlock(\"default\", AccountPublicAccessBlockArgs.builder()\n            .blockPublicAccess(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:oss:AccountPublicAccessBlock\n    properties:\n      blockPublicAccess: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Account Public Access Block can be imported using the id, e.g.\n\n```sh\n$ terraform import alicloud_oss_account_public_access_block.example \n```\n\n","properties":{"blockPublicAccess":{"type":"boolean","description":"Whether or not AlibabaCloud OSS should block public bucket policies for buckets in this account is enabled.\n"}},"required":["blockPublicAccess"],"inputProperties":{"blockPublicAccess":{"type":"boolean","description":"Whether or not AlibabaCloud OSS should block public bucket policies for buckets in this account is enabled.\n"}},"requiredInputs":["blockPublicAccess"],"stateInputs":{"description":"Input properties used for looking up and filtering AccountPublicAccessBlock resources.\n","properties":{"blockPublicAccess":{"type":"boolean","description":"Whether or not AlibabaCloud OSS should block public bucket policies for buckets in this account is enabled.\n"}},"type":"object"}},"alicloud:oss/bucket:Bucket":{"description":"Provides a resource to create a oss bucket and set its attribution.\n\n\u003e **NOTE:** The bucket namespace is shared by all users of the OSS system. Please set bucket name as unique as possible.\n\n\u003e **NOTE:** Available since v1.2.0.\n\n\u003e **NOTE:** When using standalone sub-resources (e.g., \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-go=\"`oss.BucketPolicy`\" pulumi-lang-python=\"`oss.BucketPolicy`\" pulumi-lang-yaml=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-java=\"`alicloud.oss.BucketPolicy`\"\u003e`alicloud.oss.BucketPolicy`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketLogging`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketLogging`\" pulumi-lang-go=\"`oss.BucketLogging`\" pulumi-lang-python=\"`oss.BucketLogging`\" pulumi-lang-yaml=\"`alicloud.oss.BucketLogging`\" pulumi-lang-java=\"`alicloud.oss.BucketLogging`\"\u003e`alicloud.oss.BucketLogging`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketCors`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketCors`\" pulumi-lang-go=\"`oss.BucketCors`\" pulumi-lang-python=\"`oss.BucketCors`\" pulumi-lang-yaml=\"`alicloud.oss.BucketCors`\" pulumi-lang-java=\"`alicloud.oss.BucketCors`\"\u003e`alicloud.oss.BucketCors`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketWebsite`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketWebsite`\" pulumi-lang-go=\"`oss.BucketWebsite`\" pulumi-lang-python=\"`oss.BucketWebsite`\" pulumi-lang-yaml=\"`alicloud.oss.BucketWebsite`\" pulumi-lang-java=\"`alicloud.oss.BucketWebsite`\"\u003e`alicloud.oss.BucketWebsite`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketVersioning`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketVersioning`\" pulumi-lang-go=\"`oss.BucketVersioning`\" pulumi-lang-python=\"`oss.BucketVersioning`\" pulumi-lang-yaml=\"`alicloud.oss.BucketVersioning`\" pulumi-lang-java=\"`alicloud.oss.BucketVersioning`\"\u003e`alicloud.oss.BucketVersioning`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketReferer`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketReferer`\" pulumi-lang-go=\"`oss.BucketReferer`\" pulumi-lang-python=\"`oss.BucketReferer`\" pulumi-lang-yaml=\"`alicloud.oss.BucketReferer`\" pulumi-lang-java=\"`alicloud.oss.BucketReferer`\"\u003e`alicloud.oss.BucketReferer`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketServerSideEncryption`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketServerSideEncryption`\" pulumi-lang-go=\"`oss.BucketServerSideEncryption`\" pulumi-lang-python=\"`oss.BucketServerSideEncryption`\" pulumi-lang-yaml=\"`alicloud.oss.BucketServerSideEncryption`\" pulumi-lang-java=\"`alicloud.oss.BucketServerSideEncryption`\"\u003e`alicloud.oss.BucketServerSideEncryption`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketTransferAcceleration`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketTransferAcceleration`\" pulumi-lang-go=\"`oss.BucketTransferAcceleration`\" pulumi-lang-python=\"`oss.BucketTransferAcceleration`\" pulumi-lang-yaml=\"`alicloud.oss.BucketTransferAcceleration`\" pulumi-lang-java=\"`alicloud.oss.BucketTransferAcceleration`\"\u003e`alicloud.oss.BucketTransferAcceleration`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketAcl`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketAcl`\" pulumi-lang-go=\"`oss.BucketAcl`\" pulumi-lang-python=\"`oss.BucketAcl`\" pulumi-lang-yaml=\"`alicloud.oss.BucketAcl`\" pulumi-lang-java=\"`alicloud.oss.BucketAcl`\"\u003e`alicloud.oss.BucketAcl`\u003c/span\u003e) alongside \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.Bucket`\" pulumi-lang-dotnet=\"`alicloud.oss.Bucket`\" pulumi-lang-go=\"`oss.Bucket`\" pulumi-lang-python=\"`oss.Bucket`\" pulumi-lang-yaml=\"`alicloud.oss.Bucket`\" pulumi-lang-java=\"`alicloud.oss.Bucket`\"\u003e`alicloud.oss.Bucket`\u003c/span\u003e, you **must** add a \u003cspan pulumi-lang-nodejs=\"`lifecycle`\" pulumi-lang-dotnet=\"`Lifecycle`\" pulumi-lang-go=\"`lifecycle`\" pulumi-lang-python=\"`lifecycle`\" pulumi-lang-yaml=\"`lifecycle`\" pulumi-lang-java=\"`lifecycle`\"\u003e`lifecycle`\u003c/span\u003e block with \u003cspan pulumi-lang-nodejs=\"`ignoreChanges`\" pulumi-lang-dotnet=\"`IgnoreChanges`\" pulumi-lang-go=\"`ignoreChanges`\" pulumi-lang-python=\"`ignore_changes`\" pulumi-lang-yaml=\"`ignoreChanges`\" pulumi-lang-java=\"`ignoreChanges`\"\u003e`ignore_changes`\u003c/span\u003e for the corresponding attribute on \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.Bucket`\" pulumi-lang-dotnet=\"`alicloud.oss.Bucket`\" pulumi-lang-go=\"`oss.Bucket`\" pulumi-lang-python=\"`oss.Bucket`\" pulumi-lang-yaml=\"`alicloud.oss.Bucket`\" pulumi-lang-java=\"`alicloud.oss.Bucket`\"\u003e`alicloud.oss.Bucket`\u003c/span\u003e. This prevents Terraform from detecting spurious diffs caused by the same configuration being managed by both the bucket resource and the standalone sub-resource. Without \u003cspan pulumi-lang-nodejs=\"`ignoreChanges`\" pulumi-lang-dotnet=\"`IgnoreChanges`\" pulumi-lang-go=\"`ignoreChanges`\" pulumi-lang-python=\"`ignore_changes`\" pulumi-lang-yaml=\"`ignoreChanges`\" pulumi-lang-java=\"`ignoreChanges`\"\u003e`ignore_changes`\u003c/span\u003e, Terraform may attempt to revert changes made by the sub-resource on every apply, causing unexpected behavior.\n\n## Example Usage\n\nPrivate Bucket\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst bucket_acl = new alicloud.oss.Bucket(\"bucket-acl\", {bucket: `example-value-${_default.result}`});\nconst bucket_aclBucketAcl = new alicloud.oss.BucketAcl(\"bucket-acl\", {\n    bucket: bucket_acl.bucket,\n    acl: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nbucket_acl = alicloud.oss.Bucket(\"bucket-acl\", bucket=f\"example-value-{default['result']}\")\nbucket_acl_bucket_acl = alicloud.oss.BucketAcl(\"bucket-acl\",\n    bucket=bucket_acl.bucket,\n    acl=\"private\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var bucket_acl = new AliCloud.Oss.Bucket(\"bucket-acl\", new()\n    {\n        BucketName = $\"example-value-{@default.Result}\",\n    });\n\n    var bucket_aclBucketAcl = new AliCloud.Oss.BucketAcl(\"bucket-acl\", new()\n    {\n        Bucket = bucket_acl.BucketName,\n        Acl = \"private\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket_acl, err := oss.NewBucket(ctx, \"bucket-acl\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"example-value-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"bucket-acl\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: bucket_acl.Bucket,\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var bucket_acl = new Bucket(\"bucket-acl\", BucketArgs.builder()\n            .bucket(String.format(\"example-value-%s\", default_.result()))\n            .build());\n\n        var bucket_aclBucketAcl = new BucketAcl(\"bucket-aclBucketAcl\", BucketAclArgs.builder()\n            .bucket(bucket_acl.bucket())\n            .acl(\"private\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  bucket-acl:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: example-value-${default.result}\n  bucket-aclBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: bucket-acl\n    properties:\n      bucket: ${[\"bucket-acl\"].bucket}\n      acl: private\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nStatic Website\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst bucket_website = new alicloud.oss.Bucket(\"bucket-website\", {\n    bucket: `example-value-${_default.result}`,\n    website: {\n        indexDocument: \"index.html\",\n        errorDocument: \"error.html\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nbucket_website = alicloud.oss.Bucket(\"bucket-website\",\n    bucket=f\"example-value-{default['result']}\",\n    website={\n        \"index_document\": \"index.html\",\n        \"error_document\": \"error.html\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var bucket_website = new AliCloud.Oss.Bucket(\"bucket-website\", new()\n    {\n        BucketName = $\"example-value-{@default.Result}\",\n        Website = new AliCloud.Oss.Inputs.BucketWebsiteArgs\n        {\n            IndexDocument = \"index.html\",\n            ErrorDocument = \"error.html\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucket(ctx, \"bucket-website\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"example-value-%v\", _default.Result),\n\t\t\tWebsite: \u0026oss.BucketWebsiteTypeArgs{\n\t\t\t\tIndexDocument: pulumi.String(\"index.html\"),\n\t\t\t\tErrorDocument: pulumi.String(\"error.html\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketWebsiteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var bucket_website = new Bucket(\"bucket-website\", BucketArgs.builder()\n            .bucket(String.format(\"example-value-%s\", default_.result()))\n            .website(BucketWebsiteArgs.builder()\n                .indexDocument(\"index.html\")\n                .errorDocument(\"error.html\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  bucket-website:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: example-value-${default.result}\n      website:\n        indexDocument: index.html\n        errorDocument: error.html\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nEnable Logging\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst bucket_target = new alicloud.oss.Bucket(\"bucket-target\", {bucket: `example-value-${_default.result}`});\nconst bucket_targetBucketAcl = new alicloud.oss.BucketAcl(\"bucket-target\", {\n    bucket: bucket_target.bucket,\n    acl: \"public-read\",\n});\nconst bucket_logging = new alicloud.oss.Bucket(\"bucket-logging\", {\n    bucket: `example-logging-${_default.result}`,\n    logging: {\n        targetBucket: bucket_target.id,\n        targetPrefix: \"log/\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nbucket_target = alicloud.oss.Bucket(\"bucket-target\", bucket=f\"example-value-{default['result']}\")\nbucket_target_bucket_acl = alicloud.oss.BucketAcl(\"bucket-target\",\n    bucket=bucket_target.bucket,\n    acl=\"public-read\")\nbucket_logging = alicloud.oss.Bucket(\"bucket-logging\",\n    bucket=f\"example-logging-{default['result']}\",\n    logging={\n        \"target_bucket\": bucket_target.id,\n        \"target_prefix\": \"log/\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var bucket_target = new AliCloud.Oss.Bucket(\"bucket-target\", new()\n    {\n        BucketName = $\"example-value-{@default.Result}\",\n    });\n\n    var bucket_targetBucketAcl = new AliCloud.Oss.BucketAcl(\"bucket-target\", new()\n    {\n        Bucket = bucket_target.BucketName,\n        Acl = \"public-read\",\n    });\n\n    var bucket_logging = new AliCloud.Oss.Bucket(\"bucket-logging\", new()\n    {\n        BucketName = $\"example-logging-{@default.Result}\",\n        Logging = new AliCloud.Oss.Inputs.BucketLoggingArgs\n        {\n            TargetBucket = bucket_target.Id,\n            TargetPrefix = \"log/\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket_target, err := oss.NewBucket(ctx, \"bucket-target\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"example-value-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"bucket-target\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: bucket_target.Bucket,\n\t\t\tAcl:    pulumi.String(\"public-read\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucket(ctx, \"bucket-logging\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"example-logging-%v\", _default.Result),\n\t\t\tLogging: \u0026oss.BucketLoggingTypeArgs{\n\t\t\t\tTargetBucket: bucket_target.ID(),\n\t\t\t\tTargetPrefix: pulumi.String(\"log/\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketLoggingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var bucket_target = new Bucket(\"bucket-target\", BucketArgs.builder()\n            .bucket(String.format(\"example-value-%s\", default_.result()))\n            .build());\n\n        var bucket_targetBucketAcl = new BucketAcl(\"bucket-targetBucketAcl\", BucketAclArgs.builder()\n            .bucket(bucket_target.bucket())\n            .acl(\"public-read\")\n            .build());\n\n        var bucket_logging = new Bucket(\"bucket-logging\", BucketArgs.builder()\n            .bucket(String.format(\"example-logging-%s\", default_.result()))\n            .logging(BucketLoggingArgs.builder()\n                .targetBucket(bucket_target.id())\n                .targetPrefix(\"log/\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  bucket-target:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: example-value-${default.result}\n  bucket-targetBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: bucket-target\n    properties:\n      bucket: ${[\"bucket-target\"].bucket}\n      acl: public-read\n  bucket-logging:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: example-logging-${default.result}\n      logging:\n        targetBucket: ${[\"bucket-target\"].id}\n        targetPrefix: log/\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nReferer configuration\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst bucket_referer = new alicloud.oss.Bucket(\"bucket-referer\", {\n    bucket: `example-value-${_default.result}`,\n    refererConfig: {\n        allowEmpty: false,\n        referers: [\n            \"http://www.aliyun.com\",\n            \"https://www.aliyun.com\",\n        ],\n    },\n});\nconst defaultBucketAcl = new alicloud.oss.BucketAcl(\"default\", {\n    bucket: bucket_referer.bucket,\n    acl: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nbucket_referer = alicloud.oss.Bucket(\"bucket-referer\",\n    bucket=f\"example-value-{default['result']}\",\n    referer_config={\n        \"allow_empty\": False,\n        \"referers\": [\n            \"http://www.aliyun.com\",\n            \"https://www.aliyun.com\",\n        ],\n    })\ndefault_bucket_acl = alicloud.oss.BucketAcl(\"default\",\n    bucket=bucket_referer.bucket,\n    acl=\"private\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var bucket_referer = new AliCloud.Oss.Bucket(\"bucket-referer\", new()\n    {\n        BucketName = $\"example-value-{@default.Result}\",\n        RefererConfig = new AliCloud.Oss.Inputs.BucketRefererConfigArgs\n        {\n            AllowEmpty = false,\n            Referers = new[]\n            {\n                \"http://www.aliyun.com\",\n                \"https://www.aliyun.com\",\n            },\n        },\n    });\n\n    var defaultBucketAcl = new AliCloud.Oss.BucketAcl(\"default\", new()\n    {\n        Bucket = bucket_referer.BucketName,\n        Acl = \"private\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket_referer, err := oss.NewBucket(ctx, \"bucket-referer\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"example-value-%v\", _default.Result),\n\t\t\tRefererConfig: \u0026oss.BucketRefererConfigArgs{\n\t\t\t\tAllowEmpty: pulumi.Bool(false),\n\t\t\t\tReferers: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"http://www.aliyun.com\"),\n\t\t\t\t\tpulumi.String(\"https://www.aliyun.com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"default\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: bucket_referer.Bucket,\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketRefererConfigArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var bucket_referer = new Bucket(\"bucket-referer\", BucketArgs.builder()\n            .bucket(String.format(\"example-value-%s\", default_.result()))\n            .refererConfig(BucketRefererConfigArgs.builder()\n                .allowEmpty(false)\n                .referers(                \n                    \"http://www.aliyun.com\",\n                    \"https://www.aliyun.com\")\n                .build())\n            .build());\n\n        var defaultBucketAcl = new BucketAcl(\"defaultBucketAcl\", BucketAclArgs.builder()\n            .bucket(bucket_referer.bucket())\n            .acl(\"private\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  bucket-referer:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: example-value-${default.result}\n      refererConfig:\n        allowEmpty: false\n        referers:\n          - http://www.aliyun.com\n          - https://www.aliyun.com\n  defaultBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: default\n    properties:\n      bucket: ${[\"bucket-referer\"].bucket}\n      acl: private\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nSet lifecycle rule\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst bucket_lifecycle1 = new alicloud.oss.Bucket(\"bucket-lifecycle1\", {\n    bucket: `example-lifecycle1-${_default.result}`,\n    lifecycleRules: [\n        {\n            id: \"rule-days\",\n            prefix: \"path1/\",\n            enabled: true,\n            expirations: [{\n                days: 365,\n            }],\n        },\n        {\n            id: \"rule-date\",\n            prefix: \"path2/\",\n            enabled: true,\n            expirations: [{\n                date: \"2018-01-12\",\n            }],\n        },\n    ],\n});\nconst bucket_lifecycle1BucketAcl = new alicloud.oss.BucketAcl(\"bucket-lifecycle1\", {\n    bucket: bucket_lifecycle1.bucket,\n    acl: \"public-read\",\n});\nconst bucket_lifecycle2 = new alicloud.oss.Bucket(\"bucket-lifecycle2\", {\n    bucket: `example-lifecycle2-${_default.result}`,\n    lifecycleRules: [{\n        id: \"rule-days-transition\",\n        prefix: \"path3/\",\n        enabled: true,\n        transitions: [\n            {\n                days: 3,\n                storageClass: \"IA\",\n            },\n            {\n                days: 30,\n                storageClass: \"Archive\",\n            },\n        ],\n    }],\n});\nconst bucket_lifecycle2BucketAcl = new alicloud.oss.BucketAcl(\"bucket-lifecycle2\", {\n    bucket: bucket_lifecycle2.bucket,\n    acl: \"public-read\",\n});\nconst bucket_lifecycle3 = new alicloud.oss.Bucket(\"bucket-lifecycle3\", {\n    bucket: `example-lifecycle3-${_default.result}`,\n    lifecycleRules: [{\n        id: \"rule-days-transition\",\n        prefix: \"path3/\",\n        enabled: true,\n        transitions: [\n            {\n                createdBeforeDate: \"2022-11-11\",\n                storageClass: \"IA\",\n            },\n            {\n                createdBeforeDate: \"2021-11-11\",\n                storageClass: \"Archive\",\n            },\n        ],\n    }],\n});\nconst bucket_lifecycle3BucketAcl = new alicloud.oss.BucketAcl(\"bucket-lifecycle3\", {\n    bucket: bucket_lifecycle3.bucket,\n    acl: \"public-read\",\n});\nconst bucket_lifecycle4 = new alicloud.oss.Bucket(\"bucket-lifecycle4\", {\n    bucket: `example-lifecycle4-${_default.result}`,\n    lifecycleRules: [{\n        id: \"rule-abort-multipart-upload\",\n        prefix: \"path3/\",\n        enabled: true,\n        abortMultipartUploads: [{\n            days: 128,\n        }],\n    }],\n});\nconst bucket_lifecycle4BucketAcl = new alicloud.oss.BucketAcl(\"bucket-lifecycle4\", {\n    bucket: bucket_lifecycle4.bucket,\n    acl: \"public-read\",\n});\nconst bucket_versioning_lifecycle = new alicloud.oss.Bucket(\"bucket-versioning-lifecycle\", {\n    bucket: `example-lifecycle5-${_default.result}`,\n    versioning: {\n        status: \"Enabled\",\n    },\n    lifecycleRules: [{\n        id: \"rule-versioning\",\n        prefix: \"path1/\",\n        enabled: true,\n        expirations: [{\n            expiredObjectDeleteMarker: true,\n        }],\n        noncurrentVersionExpirations: [{\n            days: 240,\n        }],\n        noncurrentVersionTransitions: [\n            {\n                days: 180,\n                storageClass: \"Archive\",\n            },\n            {\n                days: 60,\n                storageClass: \"IA\",\n            },\n        ],\n    }],\n});\nconst bucket_versioning_lifecycleBucketAcl = new alicloud.oss.BucketAcl(\"bucket-versioning-lifecycle\", {\n    bucket: bucket_versioning_lifecycle.bucket,\n    acl: \"private\",\n});\nconst bucket_access_monitor_lifecycle = new alicloud.oss.Bucket(\"bucket-access-monitor-lifecycle\", {\n    bucket: std.format({\n        input: \"example-lifecycle6-%s\",\n        args: [_default.result],\n    }).then(invoke =\u003e invoke.result),\n    accessMonitor: {\n        status: \"Enabled\",\n    },\n    lifecycleRules: [{\n        id: \"rule-days-transition\",\n        prefix: \"path/\",\n        enabled: true,\n        transitions: [{\n            days: 30,\n            storageClass: \"IA\",\n            isAccessTime: true,\n            returnToStdWhenVisit: true,\n        }],\n    }],\n});\nconst bucket_access_monitor_lifecycleBucketAcl = new alicloud.oss.BucketAcl(\"bucket-access-monitor-lifecycle\", {\n    bucket: bucket_access_monitor_lifecycle.bucket,\n    acl: \"private\",\n});\nconst bucket_tag_lifecycle = new alicloud.oss.Bucket(\"bucket-tag-lifecycle\", {\n    bucket: std.format({\n        input: \"example-lifecycle7-%s\",\n        args: [_default.result],\n    }).then(invoke =\u003e invoke.result),\n    lifecycleRules: [{\n        id: \"rule-days-transition\",\n        prefix: \"path/\",\n        enabled: true,\n        transitions: [{\n            createdBeforeDate: \"2022-11-11\",\n            storageClass: \"IA\",\n        }],\n    }],\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst bucket_tag_lifecycleBucketAcl = new alicloud.oss.BucketAcl(\"bucket-tag-lifecycle\", {\n    bucket: bucket_tag_lifecycle.bucket,\n    acl: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nbucket_lifecycle1 = alicloud.oss.Bucket(\"bucket-lifecycle1\",\n    bucket=f\"example-lifecycle1-{default['result']}\",\n    lifecycle_rules=[\n        {\n            \"id\": \"rule-days\",\n            \"prefix\": \"path1/\",\n            \"enabled\": True,\n            \"expirations\": [{\n                \"days\": 365,\n            }],\n        },\n        {\n            \"id\": \"rule-date\",\n            \"prefix\": \"path2/\",\n            \"enabled\": True,\n            \"expirations\": [{\n                \"date\": \"2018-01-12\",\n            }],\n        },\n    ])\nbucket_lifecycle1_bucket_acl = alicloud.oss.BucketAcl(\"bucket-lifecycle1\",\n    bucket=bucket_lifecycle1.bucket,\n    acl=\"public-read\")\nbucket_lifecycle2 = alicloud.oss.Bucket(\"bucket-lifecycle2\",\n    bucket=f\"example-lifecycle2-{default['result']}\",\n    lifecycle_rules=[{\n        \"id\": \"rule-days-transition\",\n        \"prefix\": \"path3/\",\n        \"enabled\": True,\n        \"transitions\": [\n            {\n                \"days\": 3,\n                \"storage_class\": \"IA\",\n            },\n            {\n                \"days\": 30,\n                \"storage_class\": \"Archive\",\n            },\n        ],\n    }])\nbucket_lifecycle2_bucket_acl = alicloud.oss.BucketAcl(\"bucket-lifecycle2\",\n    bucket=bucket_lifecycle2.bucket,\n    acl=\"public-read\")\nbucket_lifecycle3 = alicloud.oss.Bucket(\"bucket-lifecycle3\",\n    bucket=f\"example-lifecycle3-{default['result']}\",\n    lifecycle_rules=[{\n        \"id\": \"rule-days-transition\",\n        \"prefix\": \"path3/\",\n        \"enabled\": True,\n        \"transitions\": [\n            {\n                \"created_before_date\": \"2022-11-11\",\n                \"storage_class\": \"IA\",\n            },\n            {\n                \"created_before_date\": \"2021-11-11\",\n                \"storage_class\": \"Archive\",\n            },\n        ],\n    }])\nbucket_lifecycle3_bucket_acl = alicloud.oss.BucketAcl(\"bucket-lifecycle3\",\n    bucket=bucket_lifecycle3.bucket,\n    acl=\"public-read\")\nbucket_lifecycle4 = alicloud.oss.Bucket(\"bucket-lifecycle4\",\n    bucket=f\"example-lifecycle4-{default['result']}\",\n    lifecycle_rules=[{\n        \"id\": \"rule-abort-multipart-upload\",\n        \"prefix\": \"path3/\",\n        \"enabled\": True,\n        \"abort_multipart_uploads\": [{\n            \"days\": 128,\n        }],\n    }])\nbucket_lifecycle4_bucket_acl = alicloud.oss.BucketAcl(\"bucket-lifecycle4\",\n    bucket=bucket_lifecycle4.bucket,\n    acl=\"public-read\")\nbucket_versioning_lifecycle = alicloud.oss.Bucket(\"bucket-versioning-lifecycle\",\n    bucket=f\"example-lifecycle5-{default['result']}\",\n    versioning={\n        \"status\": \"Enabled\",\n    },\n    lifecycle_rules=[{\n        \"id\": \"rule-versioning\",\n        \"prefix\": \"path1/\",\n        \"enabled\": True,\n        \"expirations\": [{\n            \"expired_object_delete_marker\": True,\n        }],\n        \"noncurrent_version_expirations\": [{\n            \"days\": 240,\n        }],\n        \"noncurrent_version_transitions\": [\n            {\n                \"days\": 180,\n                \"storage_class\": \"Archive\",\n            },\n            {\n                \"days\": 60,\n                \"storage_class\": \"IA\",\n            },\n        ],\n    }])\nbucket_versioning_lifecycle_bucket_acl = alicloud.oss.BucketAcl(\"bucket-versioning-lifecycle\",\n    bucket=bucket_versioning_lifecycle.bucket,\n    acl=\"private\")\nbucket_access_monitor_lifecycle = alicloud.oss.Bucket(\"bucket-access-monitor-lifecycle\",\n    bucket=std.format(input=\"example-lifecycle6-%s\",\n        args=[default[\"result\"]]).result,\n    access_monitor={\n        \"status\": \"Enabled\",\n    },\n    lifecycle_rules=[{\n        \"id\": \"rule-days-transition\",\n        \"prefix\": \"path/\",\n        \"enabled\": True,\n        \"transitions\": [{\n            \"days\": 30,\n            \"storage_class\": \"IA\",\n            \"is_access_time\": True,\n            \"return_to_std_when_visit\": True,\n        }],\n    }])\nbucket_access_monitor_lifecycle_bucket_acl = alicloud.oss.BucketAcl(\"bucket-access-monitor-lifecycle\",\n    bucket=bucket_access_monitor_lifecycle.bucket,\n    acl=\"private\")\nbucket_tag_lifecycle = alicloud.oss.Bucket(\"bucket-tag-lifecycle\",\n    bucket=std.format(input=\"example-lifecycle7-%s\",\n        args=[default[\"result\"]]).result,\n    lifecycle_rules=[{\n        \"id\": \"rule-days-transition\",\n        \"prefix\": \"path/\",\n        \"enabled\": True,\n        \"transitions\": [{\n            \"created_before_date\": \"2022-11-11\",\n            \"storage_class\": \"IA\",\n        }],\n    }],\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\nbucket_tag_lifecycle_bucket_acl = alicloud.oss.BucketAcl(\"bucket-tag-lifecycle\",\n    bucket=bucket_tag_lifecycle.bucket,\n    acl=\"private\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var bucket_lifecycle1 = new AliCloud.Oss.Bucket(\"bucket-lifecycle1\", new()\n    {\n        BucketName = $\"example-lifecycle1-{@default.Result}\",\n        LifecycleRules = new[]\n        {\n            new AliCloud.Oss.Inputs.BucketLifecycleRuleArgs\n            {\n                Id = \"rule-days\",\n                Prefix = \"path1/\",\n                Enabled = true,\n                Expirations = new[]\n                {\n                    new AliCloud.Oss.Inputs.BucketLifecycleRuleExpirationArgs\n                    {\n                        Days = 365,\n                    },\n                },\n            },\n            new AliCloud.Oss.Inputs.BucketLifecycleRuleArgs\n            {\n                Id = \"rule-date\",\n                Prefix = \"path2/\",\n                Enabled = true,\n                Expirations = new[]\n                {\n                    new AliCloud.Oss.Inputs.BucketLifecycleRuleExpirationArgs\n                    {\n                        Date = \"2018-01-12\",\n                    },\n                },\n            },\n        },\n    });\n\n    var bucket_lifecycle1BucketAcl = new AliCloud.Oss.BucketAcl(\"bucket-lifecycle1\", new()\n    {\n        Bucket = bucket_lifecycle1.BucketName,\n        Acl = \"public-read\",\n    });\n\n    var bucket_lifecycle2 = new AliCloud.Oss.Bucket(\"bucket-lifecycle2\", new()\n    {\n        BucketName = $\"example-lifecycle2-{@default.Result}\",\n        LifecycleRules = new[]\n        {\n            new AliCloud.Oss.Inputs.BucketLifecycleRuleArgs\n            {\n                Id = \"rule-days-transition\",\n                Prefix = \"path3/\",\n                Enabled = true,\n                Transitions = new[]\n                {\n                    new AliCloud.Oss.Inputs.BucketLifecycleRuleTransitionArgs\n                    {\n                        Days = 3,\n                        StorageClass = \"IA\",\n                    },\n                    new AliCloud.Oss.Inputs.BucketLifecycleRuleTransitionArgs\n                    {\n                        Days = 30,\n                        StorageClass = \"Archive\",\n                    },\n                },\n            },\n        },\n    });\n\n    var bucket_lifecycle2BucketAcl = new AliCloud.Oss.BucketAcl(\"bucket-lifecycle2\", new()\n    {\n        Bucket = bucket_lifecycle2.BucketName,\n        Acl = \"public-read\",\n    });\n\n    var bucket_lifecycle3 = new AliCloud.Oss.Bucket(\"bucket-lifecycle3\", new()\n    {\n        BucketName = $\"example-lifecycle3-{@default.Result}\",\n        LifecycleRules = new[]\n        {\n            new AliCloud.Oss.Inputs.BucketLifecycleRuleArgs\n            {\n                Id = \"rule-days-transition\",\n                Prefix = \"path3/\",\n                Enabled = true,\n                Transitions = new[]\n                {\n                    new AliCloud.Oss.Inputs.BucketLifecycleRuleTransitionArgs\n                    {\n                        CreatedBeforeDate = \"2022-11-11\",\n                        StorageClass = \"IA\",\n                    },\n                    new AliCloud.Oss.Inputs.BucketLifecycleRuleTransitionArgs\n                    {\n                        CreatedBeforeDate = \"2021-11-11\",\n                        StorageClass = \"Archive\",\n                    },\n                },\n            },\n        },\n    });\n\n    var bucket_lifecycle3BucketAcl = new AliCloud.Oss.BucketAcl(\"bucket-lifecycle3\", new()\n    {\n        Bucket = bucket_lifecycle3.BucketName,\n        Acl = \"public-read\",\n    });\n\n    var bucket_lifecycle4 = new AliCloud.Oss.Bucket(\"bucket-lifecycle4\", new()\n    {\n        BucketName = $\"example-lifecycle4-{@default.Result}\",\n        LifecycleRules = new[]\n        {\n            new AliCloud.Oss.Inputs.BucketLifecycleRuleArgs\n            {\n                Id = \"rule-abort-multipart-upload\",\n                Prefix = \"path3/\",\n                Enabled = true,\n                AbortMultipartUploads = new[]\n                {\n                    new AliCloud.Oss.Inputs.BucketLifecycleRuleAbortMultipartUploadArgs\n                    {\n                        Days = 128,\n                    },\n                },\n            },\n        },\n    });\n\n    var bucket_lifecycle4BucketAcl = new AliCloud.Oss.BucketAcl(\"bucket-lifecycle4\", new()\n    {\n        Bucket = bucket_lifecycle4.BucketName,\n        Acl = \"public-read\",\n    });\n\n    var bucket_versioning_lifecycle = new AliCloud.Oss.Bucket(\"bucket-versioning-lifecycle\", new()\n    {\n        BucketName = $\"example-lifecycle5-{@default.Result}\",\n        Versioning = new AliCloud.Oss.Inputs.BucketVersioningArgs\n        {\n            Status = \"Enabled\",\n        },\n        LifecycleRules = new[]\n        {\n            new AliCloud.Oss.Inputs.BucketLifecycleRuleArgs\n            {\n                Id = \"rule-versioning\",\n                Prefix = \"path1/\",\n                Enabled = true,\n                Expirations = new[]\n                {\n                    new AliCloud.Oss.Inputs.BucketLifecycleRuleExpirationArgs\n                    {\n                        ExpiredObjectDeleteMarker = true,\n                    },\n                },\n                NoncurrentVersionExpirations = new[]\n                {\n                    new AliCloud.Oss.Inputs.BucketLifecycleRuleNoncurrentVersionExpirationArgs\n                    {\n                        Days = 240,\n                    },\n                },\n                NoncurrentVersionTransitions = new[]\n                {\n                    new AliCloud.Oss.Inputs.BucketLifecycleRuleNoncurrentVersionTransitionArgs\n                    {\n                        Days = 180,\n                        StorageClass = \"Archive\",\n                    },\n                    new AliCloud.Oss.Inputs.BucketLifecycleRuleNoncurrentVersionTransitionArgs\n                    {\n                        Days = 60,\n                        StorageClass = \"IA\",\n                    },\n                },\n            },\n        },\n    });\n\n    var bucket_versioning_lifecycleBucketAcl = new AliCloud.Oss.BucketAcl(\"bucket-versioning-lifecycle\", new()\n    {\n        Bucket = bucket_versioning_lifecycle.BucketName,\n        Acl = \"private\",\n    });\n\n    var bucket_access_monitor_lifecycle = new AliCloud.Oss.Bucket(\"bucket-access-monitor-lifecycle\", new()\n    {\n        BucketName = Std.Format.Invoke(new()\n        {\n            Input = \"example-lifecycle6-%s\",\n            Args = new[]\n            {\n                @default.Result,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        AccessMonitor = new AliCloud.Oss.Inputs.BucketAccessMonitorArgs\n        {\n            Status = \"Enabled\",\n        },\n        LifecycleRules = new[]\n        {\n            new AliCloud.Oss.Inputs.BucketLifecycleRuleArgs\n            {\n                Id = \"rule-days-transition\",\n                Prefix = \"path/\",\n                Enabled = true,\n                Transitions = new[]\n                {\n                    new AliCloud.Oss.Inputs.BucketLifecycleRuleTransitionArgs\n                    {\n                        Days = 30,\n                        StorageClass = \"IA\",\n                        IsAccessTime = true,\n                        ReturnToStdWhenVisit = true,\n                    },\n                },\n            },\n        },\n    });\n\n    var bucket_access_monitor_lifecycleBucketAcl = new AliCloud.Oss.BucketAcl(\"bucket-access-monitor-lifecycle\", new()\n    {\n        Bucket = bucket_access_monitor_lifecycle.BucketName,\n        Acl = \"private\",\n    });\n\n    var bucket_tag_lifecycle = new AliCloud.Oss.Bucket(\"bucket-tag-lifecycle\", new()\n    {\n        BucketName = Std.Format.Invoke(new()\n        {\n            Input = \"example-lifecycle7-%s\",\n            Args = new[]\n            {\n                @default.Result,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        LifecycleRules = new[]\n        {\n            new AliCloud.Oss.Inputs.BucketLifecycleRuleArgs\n            {\n                Id = \"rule-days-transition\",\n                Prefix = \"path/\",\n                Enabled = true,\n                Transitions = new[]\n                {\n                    new AliCloud.Oss.Inputs.BucketLifecycleRuleTransitionArgs\n                    {\n                        CreatedBeforeDate = \"2022-11-11\",\n                        StorageClass = \"IA\",\n                    },\n                },\n            },\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var bucket_tag_lifecycleBucketAcl = new AliCloud.Oss.BucketAcl(\"bucket-tag-lifecycle\", new()\n    {\n        Bucket = bucket_tag_lifecycle.BucketName,\n        Acl = \"private\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket_lifecycle1, err := oss.NewBucket(ctx, \"bucket-lifecycle1\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"example-lifecycle1-%v\", _default.Result),\n\t\t\tLifecycleRules: oss.BucketLifecycleRuleArray{\n\t\t\t\t\u0026oss.BucketLifecycleRuleArgs{\n\t\t\t\t\tId:      pulumi.String(\"rule-days\"),\n\t\t\t\t\tPrefix:  pulumi.String(\"path1/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tExpirations: oss.BucketLifecycleRuleExpirationArray{\n\t\t\t\t\t\t\u0026oss.BucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\t\tDays: pulumi.Int(365),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026oss.BucketLifecycleRuleArgs{\n\t\t\t\t\tId:      pulumi.String(\"rule-date\"),\n\t\t\t\t\tPrefix:  pulumi.String(\"path2/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tExpirations: oss.BucketLifecycleRuleExpirationArray{\n\t\t\t\t\t\t\u0026oss.BucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\t\tDate: pulumi.String(\"2018-01-12\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"bucket-lifecycle1\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: bucket_lifecycle1.Bucket,\n\t\t\tAcl:    pulumi.String(\"public-read\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket_lifecycle2, err := oss.NewBucket(ctx, \"bucket-lifecycle2\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"example-lifecycle2-%v\", _default.Result),\n\t\t\tLifecycleRules: oss.BucketLifecycleRuleArray{\n\t\t\t\t\u0026oss.BucketLifecycleRuleArgs{\n\t\t\t\t\tId:      pulumi.String(\"rule-days-transition\"),\n\t\t\t\t\tPrefix:  pulumi.String(\"path3/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransitions: oss.BucketLifecycleRuleTransitionArray{\n\t\t\t\t\t\t\u0026oss.BucketLifecycleRuleTransitionArgs{\n\t\t\t\t\t\t\tDays:         pulumi.Int(3),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"IA\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026oss.BucketLifecycleRuleTransitionArgs{\n\t\t\t\t\t\t\tDays:         pulumi.Int(30),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"Archive\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"bucket-lifecycle2\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: bucket_lifecycle2.Bucket,\n\t\t\tAcl:    pulumi.String(\"public-read\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket_lifecycle3, err := oss.NewBucket(ctx, \"bucket-lifecycle3\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"example-lifecycle3-%v\", _default.Result),\n\t\t\tLifecycleRules: oss.BucketLifecycleRuleArray{\n\t\t\t\t\u0026oss.BucketLifecycleRuleArgs{\n\t\t\t\t\tId:      pulumi.String(\"rule-days-transition\"),\n\t\t\t\t\tPrefix:  pulumi.String(\"path3/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransitions: oss.BucketLifecycleRuleTransitionArray{\n\t\t\t\t\t\t\u0026oss.BucketLifecycleRuleTransitionArgs{\n\t\t\t\t\t\t\tCreatedBeforeDate: pulumi.String(\"2022-11-11\"),\n\t\t\t\t\t\t\tStorageClass:      pulumi.String(\"IA\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026oss.BucketLifecycleRuleTransitionArgs{\n\t\t\t\t\t\t\tCreatedBeforeDate: pulumi.String(\"2021-11-11\"),\n\t\t\t\t\t\t\tStorageClass:      pulumi.String(\"Archive\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"bucket-lifecycle3\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: bucket_lifecycle3.Bucket,\n\t\t\tAcl:    pulumi.String(\"public-read\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket_lifecycle4, err := oss.NewBucket(ctx, \"bucket-lifecycle4\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"example-lifecycle4-%v\", _default.Result),\n\t\t\tLifecycleRules: oss.BucketLifecycleRuleArray{\n\t\t\t\t\u0026oss.BucketLifecycleRuleArgs{\n\t\t\t\t\tId:      pulumi.String(\"rule-abort-multipart-upload\"),\n\t\t\t\t\tPrefix:  pulumi.String(\"path3/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tAbortMultipartUploads: oss.BucketLifecycleRuleAbortMultipartUploadArray{\n\t\t\t\t\t\t\u0026oss.BucketLifecycleRuleAbortMultipartUploadArgs{\n\t\t\t\t\t\t\tDays: pulumi.Int(128),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"bucket-lifecycle4\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: bucket_lifecycle4.Bucket,\n\t\t\tAcl:    pulumi.String(\"public-read\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket_versioning_lifecycle, err := oss.NewBucket(ctx, \"bucket-versioning-lifecycle\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"example-lifecycle5-%v\", _default.Result),\n\t\t\tVersioning: \u0026oss.BucketVersioningTypeArgs{\n\t\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\t},\n\t\t\tLifecycleRules: oss.BucketLifecycleRuleArray{\n\t\t\t\t\u0026oss.BucketLifecycleRuleArgs{\n\t\t\t\t\tId:      pulumi.String(\"rule-versioning\"),\n\t\t\t\t\tPrefix:  pulumi.String(\"path1/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tExpirations: oss.BucketLifecycleRuleExpirationArray{\n\t\t\t\t\t\t\u0026oss.BucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\t\tExpiredObjectDeleteMarker: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tNoncurrentVersionExpirations: oss.BucketLifecycleRuleNoncurrentVersionExpirationArray{\n\t\t\t\t\t\t\u0026oss.BucketLifecycleRuleNoncurrentVersionExpirationArgs{\n\t\t\t\t\t\t\tDays: pulumi.Int(240),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tNoncurrentVersionTransitions: oss.BucketLifecycleRuleNoncurrentVersionTransitionArray{\n\t\t\t\t\t\t\u0026oss.BucketLifecycleRuleNoncurrentVersionTransitionArgs{\n\t\t\t\t\t\t\tDays:         pulumi.Int(180),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"Archive\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026oss.BucketLifecycleRuleNoncurrentVersionTransitionArgs{\n\t\t\t\t\t\t\tDays:         pulumi.Int(60),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"IA\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"bucket-versioning-lifecycle\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: bucket_versioning_lifecycle.Bucket,\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"example-lifecycle6-%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\t_default.Result,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket_access_monitor_lifecycle, err := oss.NewBucket(ctx, \"bucket-access-monitor-lifecycle\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.String(invokeFormat.Result),\n\t\t\tAccessMonitor: \u0026oss.BucketAccessMonitorTypeArgs{\n\t\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\t},\n\t\t\tLifecycleRules: oss.BucketLifecycleRuleArray{\n\t\t\t\t\u0026oss.BucketLifecycleRuleArgs{\n\t\t\t\t\tId:      pulumi.String(\"rule-days-transition\"),\n\t\t\t\t\tPrefix:  pulumi.String(\"path/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransitions: oss.BucketLifecycleRuleTransitionArray{\n\t\t\t\t\t\t\u0026oss.BucketLifecycleRuleTransitionArgs{\n\t\t\t\t\t\t\tDays:                 pulumi.Int(30),\n\t\t\t\t\t\t\tStorageClass:         pulumi.String(\"IA\"),\n\t\t\t\t\t\t\tIsAccessTime:         pulumi.Bool(true),\n\t\t\t\t\t\t\tReturnToStdWhenVisit: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"bucket-access-monitor-lifecycle\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: bucket_access_monitor_lifecycle.Bucket,\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"example-lifecycle7-%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\t_default.Result,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket_tag_lifecycle, err := oss.NewBucket(ctx, \"bucket-tag-lifecycle\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.String(invokeFormat1.Result),\n\t\t\tLifecycleRules: oss.BucketLifecycleRuleArray{\n\t\t\t\t\u0026oss.BucketLifecycleRuleArgs{\n\t\t\t\t\tId:      pulumi.String(\"rule-days-transition\"),\n\t\t\t\t\tPrefix:  pulumi.String(\"path/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTransitions: oss.BucketLifecycleRuleTransitionArray{\n\t\t\t\t\t\t\u0026oss.BucketLifecycleRuleTransitionArgs{\n\t\t\t\t\t\t\tCreatedBeforeDate: pulumi.String(\"2022-11-11\"),\n\t\t\t\t\t\t\tStorageClass:      pulumi.String(\"IA\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"bucket-tag-lifecycle\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: bucket_tag_lifecycle.Bucket,\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketLifecycleRuleArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketVersioningArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketAccessMonitorArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var bucket_lifecycle1 = new Bucket(\"bucket-lifecycle1\", BucketArgs.builder()\n            .bucket(String.format(\"example-lifecycle1-%s\", default_.result()))\n            .lifecycleRules(            \n                BucketLifecycleRuleArgs.builder()\n                    .id(\"rule-days\")\n                    .prefix(\"path1/\")\n                    .enabled(true)\n                    .expirations(BucketLifecycleRuleExpirationArgs.builder()\n                        .days(365)\n                        .build())\n                    .build(),\n                BucketLifecycleRuleArgs.builder()\n                    .id(\"rule-date\")\n                    .prefix(\"path2/\")\n                    .enabled(true)\n                    .expirations(BucketLifecycleRuleExpirationArgs.builder()\n                        .date(\"2018-01-12\")\n                        .build())\n                    .build())\n            .build());\n\n        var bucket_lifecycle1BucketAcl = new BucketAcl(\"bucket-lifecycle1BucketAcl\", BucketAclArgs.builder()\n            .bucket(bucket_lifecycle1.bucket())\n            .acl(\"public-read\")\n            .build());\n\n        var bucket_lifecycle2 = new Bucket(\"bucket-lifecycle2\", BucketArgs.builder()\n            .bucket(String.format(\"example-lifecycle2-%s\", default_.result()))\n            .lifecycleRules(BucketLifecycleRuleArgs.builder()\n                .id(\"rule-days-transition\")\n                .prefix(\"path3/\")\n                .enabled(true)\n                .transitions(                \n                    BucketLifecycleRuleTransitionArgs.builder()\n                        .days(3)\n                        .storageClass(\"IA\")\n                        .build(),\n                    BucketLifecycleRuleTransitionArgs.builder()\n                        .days(30)\n                        .storageClass(\"Archive\")\n                        .build())\n                .build())\n            .build());\n\n        var bucket_lifecycle2BucketAcl = new BucketAcl(\"bucket-lifecycle2BucketAcl\", BucketAclArgs.builder()\n            .bucket(bucket_lifecycle2.bucket())\n            .acl(\"public-read\")\n            .build());\n\n        var bucket_lifecycle3 = new Bucket(\"bucket-lifecycle3\", BucketArgs.builder()\n            .bucket(String.format(\"example-lifecycle3-%s\", default_.result()))\n            .lifecycleRules(BucketLifecycleRuleArgs.builder()\n                .id(\"rule-days-transition\")\n                .prefix(\"path3/\")\n                .enabled(true)\n                .transitions(                \n                    BucketLifecycleRuleTransitionArgs.builder()\n                        .createdBeforeDate(\"2022-11-11\")\n                        .storageClass(\"IA\")\n                        .build(),\n                    BucketLifecycleRuleTransitionArgs.builder()\n                        .createdBeforeDate(\"2021-11-11\")\n                        .storageClass(\"Archive\")\n                        .build())\n                .build())\n            .build());\n\n        var bucket_lifecycle3BucketAcl = new BucketAcl(\"bucket-lifecycle3BucketAcl\", BucketAclArgs.builder()\n            .bucket(bucket_lifecycle3.bucket())\n            .acl(\"public-read\")\n            .build());\n\n        var bucket_lifecycle4 = new Bucket(\"bucket-lifecycle4\", BucketArgs.builder()\n            .bucket(String.format(\"example-lifecycle4-%s\", default_.result()))\n            .lifecycleRules(BucketLifecycleRuleArgs.builder()\n                .id(\"rule-abort-multipart-upload\")\n                .prefix(\"path3/\")\n                .enabled(true)\n                .abortMultipartUploads(BucketLifecycleRuleAbortMultipartUploadArgs.builder()\n                    .days(128)\n                    .build())\n                .build())\n            .build());\n\n        var bucket_lifecycle4BucketAcl = new BucketAcl(\"bucket-lifecycle4BucketAcl\", BucketAclArgs.builder()\n            .bucket(bucket_lifecycle4.bucket())\n            .acl(\"public-read\")\n            .build());\n\n        var bucket_versioning_lifecycle = new Bucket(\"bucket-versioning-lifecycle\", BucketArgs.builder()\n            .bucket(String.format(\"example-lifecycle5-%s\", default_.result()))\n            .versioning(BucketVersioningArgs.builder()\n                .status(\"Enabled\")\n                .build())\n            .lifecycleRules(BucketLifecycleRuleArgs.builder()\n                .id(\"rule-versioning\")\n                .prefix(\"path1/\")\n                .enabled(true)\n                .expirations(BucketLifecycleRuleExpirationArgs.builder()\n                    .expiredObjectDeleteMarker(true)\n                    .build())\n                .noncurrentVersionExpirations(BucketLifecycleRuleNoncurrentVersionExpirationArgs.builder()\n                    .days(240)\n                    .build())\n                .noncurrentVersionTransitions(                \n                    BucketLifecycleRuleNoncurrentVersionTransitionArgs.builder()\n                        .days(180)\n                        .storageClass(\"Archive\")\n                        .build(),\n                    BucketLifecycleRuleNoncurrentVersionTransitionArgs.builder()\n                        .days(60)\n                        .storageClass(\"IA\")\n                        .build())\n                .build())\n            .build());\n\n        var bucket_versioning_lifecycleBucketAcl = new BucketAcl(\"bucket-versioning-lifecycleBucketAcl\", BucketAclArgs.builder()\n            .bucket(bucket_versioning_lifecycle.bucket())\n            .acl(\"private\")\n            .build());\n\n        var bucket_access_monitor_lifecycle = new Bucket(\"bucket-access-monitor-lifecycle\", BucketArgs.builder()\n            .bucket(StdFunctions.format(FormatArgs.builder()\n                .input(\"example-lifecycle6-%s\")\n                .args(default_.result())\n                .build()).result())\n            .accessMonitor(BucketAccessMonitorArgs.builder()\n                .status(\"Enabled\")\n                .build())\n            .lifecycleRules(BucketLifecycleRuleArgs.builder()\n                .id(\"rule-days-transition\")\n                .prefix(\"path/\")\n                .enabled(true)\n                .transitions(BucketLifecycleRuleTransitionArgs.builder()\n                    .days(30)\n                    .storageClass(\"IA\")\n                    .isAccessTime(true)\n                    .returnToStdWhenVisit(true)\n                    .build())\n                .build())\n            .build());\n\n        var bucket_access_monitor_lifecycleBucketAcl = new BucketAcl(\"bucket-access-monitor-lifecycleBucketAcl\", BucketAclArgs.builder()\n            .bucket(bucket_access_monitor_lifecycle.bucket())\n            .acl(\"private\")\n            .build());\n\n        var bucket_tag_lifecycle = new Bucket(\"bucket-tag-lifecycle\", BucketArgs.builder()\n            .bucket(StdFunctions.format(FormatArgs.builder()\n                .input(\"example-lifecycle7-%s\")\n                .args(default_.result())\n                .build()).result())\n            .lifecycleRules(BucketLifecycleRuleArgs.builder()\n                .id(\"rule-days-transition\")\n                .prefix(\"path/\")\n                .enabled(true)\n                .transitions(BucketLifecycleRuleTransitionArgs.builder()\n                    .createdBeforeDate(\"2022-11-11\")\n                    .storageClass(\"IA\")\n                    .build())\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var bucket_tag_lifecycleBucketAcl = new BucketAcl(\"bucket-tag-lifecycleBucketAcl\", BucketAclArgs.builder()\n            .bucket(bucket_tag_lifecycle.bucket())\n            .acl(\"private\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  bucket-lifecycle1:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: example-lifecycle1-${default.result}\n      lifecycleRules:\n        - id: rule-days\n          prefix: path1/\n          enabled: true\n          expirations:\n            - days: 365\n        - id: rule-date\n          prefix: path2/\n          enabled: true\n          expirations:\n            - date: 2018-01-12\n  bucket-lifecycle1BucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: bucket-lifecycle1\n    properties:\n      bucket: ${[\"bucket-lifecycle1\"].bucket}\n      acl: public-read\n  bucket-lifecycle2:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: example-lifecycle2-${default.result}\n      lifecycleRules:\n        - id: rule-days-transition\n          prefix: path3/\n          enabled: true\n          transitions:\n            - days: '3'\n              storageClass: IA\n            - days: '30'\n              storageClass: Archive\n  bucket-lifecycle2BucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: bucket-lifecycle2\n    properties:\n      bucket: ${[\"bucket-lifecycle2\"].bucket}\n      acl: public-read\n  bucket-lifecycle3:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: example-lifecycle3-${default.result}\n      lifecycleRules:\n        - id: rule-days-transition\n          prefix: path3/\n          enabled: true\n          transitions:\n            - createdBeforeDate: 2022-11-11\n              storageClass: IA\n            - createdBeforeDate: 2021-11-11\n              storageClass: Archive\n  bucket-lifecycle3BucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: bucket-lifecycle3\n    properties:\n      bucket: ${[\"bucket-lifecycle3\"].bucket}\n      acl: public-read\n  bucket-lifecycle4:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: example-lifecycle4-${default.result}\n      lifecycleRules:\n        - id: rule-abort-multipart-upload\n          prefix: path3/\n          enabled: true\n          abortMultipartUploads:\n            - days: 128\n  bucket-lifecycle4BucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: bucket-lifecycle4\n    properties:\n      bucket: ${[\"bucket-lifecycle4\"].bucket}\n      acl: public-read\n  bucket-versioning-lifecycle:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: example-lifecycle5-${default.result}\n      versioning:\n        status: Enabled\n      lifecycleRules:\n        - id: rule-versioning\n          prefix: path1/\n          enabled: true\n          expirations:\n            - expiredObjectDeleteMarker: true\n          noncurrentVersionExpirations:\n            - days: 240\n          noncurrentVersionTransitions:\n            - days: 180\n              storageClass: Archive\n            - days: 60\n              storageClass: IA\n  bucket-versioning-lifecycleBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: bucket-versioning-lifecycle\n    properties:\n      bucket: ${[\"bucket-versioning-lifecycle\"].bucket}\n      acl: private\n  bucket-access-monitor-lifecycle:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: example-lifecycle6-%s\n            args:\n              - ${default.result}\n          return: result\n      accessMonitor:\n        status: Enabled\n      lifecycleRules:\n        - id: rule-days-transition\n          prefix: path/\n          enabled: true\n          transitions:\n            - days: 30\n              storageClass: IA\n              isAccessTime: true\n              returnToStdWhenVisit: true\n  bucket-access-monitor-lifecycleBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: bucket-access-monitor-lifecycle\n    properties:\n      bucket: ${[\"bucket-access-monitor-lifecycle\"].bucket}\n      acl: private\n  bucket-tag-lifecycle:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: example-lifecycle7-%s\n            args:\n              - ${default.result}\n          return: result\n      lifecycleRules:\n        - id: rule-days-transition\n          prefix: path/\n          enabled: true\n          transitions:\n            - createdBeforeDate: 2022-11-11\n              storageClass: IA\n      tags:\n        Created: TF\n        For: example\n  bucket-tag-lifecycleBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: bucket-tag-lifecycle\n    properties:\n      bucket: ${[\"bucket-tag-lifecycle\"].bucket}\n      acl: private\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nSet bucket policy \n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst bucket_policy = new alicloud.oss.Bucket(\"bucket-policy\", {\n    bucket: `example-policy-${_default.result}`,\n    policy: `  {\\\\\"Statement\\\\\":\n      [{\\\\\"Action\\\\\":\n          [\\\\\"oss:PutObject\\\\\", \\\\\"oss:GetObject\\\\\", \\\\\"oss:DeleteBucket\\\\\"],\n        \\\\\"Effect\\\\\":\\\\\"Allow\\\\\",\n        \\\\\"Resource\\\\\":\n            [\\\\\"acs:oss:*:*:*\\\\\"]}],\n   \\\\\"Version\\\\\":\\\\\"1\\\\\"}\n`,\n});\nconst defaultBucketAcl = new alicloud.oss.BucketAcl(\"default\", {\n    bucket: bucket_policy.bucket,\n    acl: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nbucket_policy = alicloud.oss.Bucket(\"bucket-policy\",\n    bucket=f\"example-policy-{default['result']}\",\n    policy=\"\"\"  {\\\"Statement\\\":\n      [{\\\"Action\\\":\n          [\\\"oss:PutObject\\\", \\\"oss:GetObject\\\", \\\"oss:DeleteBucket\\\"],\n        \\\"Effect\\\":\\\"Allow\\\",\n        \\\"Resource\\\":\n            [\\\"acs:oss:*:*:*\\\"]}],\n   \\\"Version\\\":\\\"1\\\"}\n\"\"\")\ndefault_bucket_acl = alicloud.oss.BucketAcl(\"default\",\n    bucket=bucket_policy.bucket,\n    acl=\"private\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var bucket_policy = new AliCloud.Oss.Bucket(\"bucket-policy\", new()\n    {\n        BucketName = $\"example-policy-{@default.Result}\",\n        Policy = @\"  {\\\"\"Statement\\\"\":\n      [{\\\"\"Action\\\"\":\n          [\\\"\"oss:PutObject\\\"\", \\\"\"oss:GetObject\\\"\", \\\"\"oss:DeleteBucket\\\"\"],\n        \\\"\"Effect\\\"\":\\\"\"Allow\\\"\",\n        \\\"\"Resource\\\"\":\n            [\\\"\"acs:oss:*:*:*\\\"\"]}],\n   \\\"\"Version\\\"\":\\\"\"1\\\"\"}\n\",\n    });\n\n    var defaultBucketAcl = new AliCloud.Oss.BucketAcl(\"default\", new()\n    {\n        Bucket = bucket_policy.BucketName,\n        Acl = \"private\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket_policy, err := oss.NewBucket(ctx, \"bucket-policy\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"example-policy-%v\", _default.Result),\n\t\t\tPolicy: pulumi.String(`  {\\\"Statement\\\":\n      [{\\\"Action\\\":\n          [\\\"oss:PutObject\\\", \\\"oss:GetObject\\\", \\\"oss:DeleteBucket\\\"],\n        \\\"Effect\\\":\\\"Allow\\\",\n        \\\"Resource\\\":\n            [\\\"acs:oss:*:*:*\\\"]}],\n   \\\"Version\\\":\\\"1\\\"}\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"default\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: bucket_policy.Bucket,\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var bucket_policy = new Bucket(\"bucket-policy\", BucketArgs.builder()\n            .bucket(String.format(\"example-policy-%s\", default_.result()))\n            .policy(\"\"\"\n  {\\\"Statement\\\":\n      [{\\\"Action\\\":\n          [\\\"oss:PutObject\\\", \\\"oss:GetObject\\\", \\\"oss:DeleteBucket\\\"],\n        \\\"Effect\\\":\\\"Allow\\\",\n        \\\"Resource\\\":\n            [\\\"acs:oss:*:*:*\\\"]}],\n   \\\"Version\\\":\\\"1\\\"}\n            \"\"\")\n            .build());\n\n        var defaultBucketAcl = new BucketAcl(\"defaultBucketAcl\", BucketAclArgs.builder()\n            .bucket(bucket_policy.bucket())\n            .acl(\"private\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  bucket-policy:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: example-policy-${default.result}\n      policy: |2\n          {\\\"Statement\\\":\n              [{\\\"Action\\\":\n                  [\\\"oss:PutObject\\\", \\\"oss:GetObject\\\", \\\"oss:DeleteBucket\\\"],\n                \\\"Effect\\\":\\\"Allow\\\",\n                \\\"Resource\\\":\n                    [\\\"acs:oss:*:*:*\\\"]}],\n           \\\"Version\\\":\\\"1\\\"}\n  defaultBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: default\n    properties:\n      bucket: ${[\"bucket-policy\"].bucket}\n      acl: private\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nUsing sub-resources with\u003cspan pulumi-lang-nodejs=\" ignoreChanges\n\" pulumi-lang-dotnet=\" IgnoreChanges\n\" pulumi-lang-go=\" ignoreChanges\n\" pulumi-lang-python=\" ignore_changes\n\" pulumi-lang-yaml=\" ignoreChanges\n\" pulumi-lang-java=\" ignoreChanges\n\"\u003e ignore_changes\n\u003c/span\u003e\nWhen managing bucket configurations through standalone sub-resources such as \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-go=\"`oss.BucketPolicy`\" pulumi-lang-python=\"`oss.BucketPolicy`\" pulumi-lang-yaml=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-java=\"`alicloud.oss.BucketPolicy`\"\u003e`alicloud.oss.BucketPolicy`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketLogging`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketLogging`\" pulumi-lang-go=\"`oss.BucketLogging`\" pulumi-lang-python=\"`oss.BucketLogging`\" pulumi-lang-yaml=\"`alicloud.oss.BucketLogging`\" pulumi-lang-java=\"`alicloud.oss.BucketLogging`\"\u003e`alicloud.oss.BucketLogging`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketCors`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketCors`\" pulumi-lang-go=\"`oss.BucketCors`\" pulumi-lang-python=\"`oss.BucketCors`\" pulumi-lang-yaml=\"`alicloud.oss.BucketCors`\" pulumi-lang-java=\"`alicloud.oss.BucketCors`\"\u003e`alicloud.oss.BucketCors`\u003c/span\u003e, you must use a \u003cspan pulumi-lang-nodejs=\"`lifecycle`\" pulumi-lang-dotnet=\"`Lifecycle`\" pulumi-lang-go=\"`lifecycle`\" pulumi-lang-python=\"`lifecycle`\" pulumi-lang-yaml=\"`lifecycle`\" pulumi-lang-java=\"`lifecycle`\"\u003e`lifecycle`\u003c/span\u003e block with \u003cspan pulumi-lang-nodejs=\"`ignoreChanges`\" pulumi-lang-dotnet=\"`IgnoreChanges`\" pulumi-lang-go=\"`ignoreChanges`\" pulumi-lang-python=\"`ignore_changes`\" pulumi-lang-yaml=\"`ignoreChanges`\" pulumi-lang-java=\"`ignoreChanges`\"\u003e`ignore_changes`\u003c/span\u003e on the \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.Bucket`\" pulumi-lang-dotnet=\"`alicloud.oss.Bucket`\" pulumi-lang-go=\"`oss.Bucket`\" pulumi-lang-python=\"`oss.Bucket`\" pulumi-lang-yaml=\"`alicloud.oss.Bucket`\" pulumi-lang-java=\"`alicloud.oss.Bucket`\"\u003e`alicloud.oss.Bucket`\u003c/span\u003e to prevent Terraform from detecting configuration drift. The sub-resource manages the corresponding attribute independently, so without \u003cspan pulumi-lang-nodejs=\"`ignoreChanges`\" pulumi-lang-dotnet=\"`IgnoreChanges`\" pulumi-lang-go=\"`ignoreChanges`\" pulumi-lang-python=\"`ignore_changes`\" pulumi-lang-yaml=\"`ignoreChanges`\" pulumi-lang-java=\"`ignoreChanges`\"\u003e`ignore_changes`\u003c/span\u003e, Terraform will see the attribute value differ from the bucket's inline configuration and attempt to revert it on every plan/apply.\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.oss.Bucket(\"example\", {bucket: `example-sub-resources-${_default.result}`});\nconst exampleBucketAcl = new alicloud.oss.BucketAcl(\"example\", {\n    bucket: example.bucket,\n    acl: \"private\",\n});\nconst exampleBucketPolicy = new alicloud.oss.BucketPolicy(\"example\", {\n    bucket: example.bucket,\n    policy: JSON.stringify({\n        Version: \"1\",\n        Statement: [{\n            Action: [\n                \"oss:PutObject\",\n                \"oss:GetObject\",\n            ],\n            Effect: \"Deny\",\n            Principal: [\"1234567890\"],\n            Resource: [\"acs:oss:*:1234567890:*/*\"],\n        }],\n    }),\n});\nconst exampleBucketLogging = new alicloud.oss.BucketLogging(\"example\", {\n    bucket: example.bucket,\n    targetBucket: example.bucket,\n    targetPrefix: \"log/\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.oss.Bucket(\"example\", bucket=f\"example-sub-resources-{default['result']}\")\nexample_bucket_acl = alicloud.oss.BucketAcl(\"example\",\n    bucket=example.bucket,\n    acl=\"private\")\nexample_bucket_policy = alicloud.oss.BucketPolicy(\"example\",\n    bucket=example.bucket,\n    policy=json.dumps({\n        \"Version\": \"1\",\n        \"Statement\": [{\n            \"Action\": [\n                \"oss:PutObject\",\n                \"oss:GetObject\",\n            ],\n            \"Effect\": \"Deny\",\n            \"Principal\": [\"1234567890\"],\n            \"Resource\": [\"acs:oss:*:1234567890:*/*\"],\n        }],\n    }))\nexample_bucket_logging = alicloud.oss.BucketLogging(\"example\",\n    bucket=example.bucket,\n    target_bucket=example.bucket,\n    target_prefix=\"log/\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Oss.Bucket(\"example\", new()\n    {\n        BucketName = $\"example-sub-resources-{@default.Result}\",\n    });\n\n    var exampleBucketAcl = new AliCloud.Oss.BucketAcl(\"example\", new()\n    {\n        Bucket = example.BucketName,\n        Acl = \"private\",\n    });\n\n    var exampleBucketPolicy = new AliCloud.Oss.BucketPolicy(\"example\", new()\n    {\n        Bucket = example.BucketName,\n        Policy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Version\"] = \"1\",\n            [\"Statement\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"Action\"] = new[]\n                    {\n                        \"oss:PutObject\",\n                        \"oss:GetObject\",\n                    },\n                    [\"Effect\"] = \"Deny\",\n                    [\"Principal\"] = new[]\n                    {\n                        \"1234567890\",\n                    },\n                    [\"Resource\"] = new[]\n                    {\n                        \"acs:oss:*:1234567890:*/*\",\n                    },\n                },\n            },\n        }),\n    });\n\n    var exampleBucketLogging = new AliCloud.Oss.BucketLogging(\"example\", new()\n    {\n        Bucket = example.BucketName,\n        TargetBucket = example.BucketName,\n        TargetPrefix = \"log/\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := oss.NewBucket(ctx, \"example\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"example-sub-resources-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"example\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: example.Bucket,\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"1\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"oss:PutObject\",\n\t\t\t\t\t\t\"oss:GetObject\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Deny\",\n\t\t\t\t\t\"Principal\": []string{\n\t\t\t\t\t\t\"1234567890\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\"acs:oss:*:1234567890:*/*\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = oss.NewBucketPolicy(ctx, \"example\", \u0026oss.BucketPolicyArgs{\n\t\t\tBucket: example.Bucket,\n\t\t\tPolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketLogging(ctx, \"example\", \u0026oss.BucketLoggingArgs{\n\t\t\tBucket:       example.Bucket,\n\t\t\tTargetBucket: example.Bucket,\n\t\t\tTargetPrefix: pulumi.String(\"log/\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport com.pulumi.alicloud.oss.BucketPolicy;\nimport com.pulumi.alicloud.oss.BucketPolicyArgs;\nimport com.pulumi.alicloud.oss.BucketLogging;\nimport com.pulumi.alicloud.oss.BucketLoggingArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Bucket(\"example\", BucketArgs.builder()\n            .bucket(String.format(\"example-sub-resources-%s\", default_.result()))\n            .build());\n\n        var exampleBucketAcl = new BucketAcl(\"exampleBucketAcl\", BucketAclArgs.builder()\n            .bucket(example.bucket())\n            .acl(\"private\")\n            .build());\n\n        var exampleBucketPolicy = new BucketPolicy(\"exampleBucketPolicy\", BucketPolicyArgs.builder()\n            .bucket(example.bucket())\n            .policy(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Version\", \"1\"),\n                    jsonProperty(\"Statement\", jsonArray(jsonObject(\n                        jsonProperty(\"Action\", jsonArray(\n                            \"oss:PutObject\", \n                            \"oss:GetObject\"\n                        )),\n                        jsonProperty(\"Effect\", \"Deny\"),\n                        jsonProperty(\"Principal\", jsonArray(\"1234567890\")),\n                        jsonProperty(\"Resource\", jsonArray(\"acs:oss:*:1234567890:*/*\"))\n                    )))\n                )))\n            .build());\n\n        var exampleBucketLogging = new BucketLogging(\"exampleBucketLogging\", BucketLoggingArgs.builder()\n            .bucket(example.bucket())\n            .targetBucket(example.bucket())\n            .targetPrefix(\"log/\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: example-sub-resources-${default.result}\n  exampleBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: example\n    properties:\n      bucket: ${example.bucket}\n      acl: private\n  exampleBucketPolicy:\n    type: alicloud:oss:BucketPolicy\n    name: example\n    properties:\n      bucket: ${example.bucket}\n      policy:\n        fn::toJSON:\n          Version: '1'\n          Statement:\n            - Action:\n                - oss:PutObject\n                - oss:GetObject\n              Effect: Deny\n              Principal:\n                - '1234567890'\n              Resource:\n                - acs:oss:*:1234567890:*/*\n  exampleBucketLogging:\n    type: alicloud:oss:BucketLogging\n    name: example\n    properties:\n      bucket: ${example.bucket}\n      targetBucket: ${example.bucket}\n      targetPrefix: log/\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **NOTE:** You only need to include the attributes in \u003cspan pulumi-lang-nodejs=\"`ignoreChanges`\" pulumi-lang-dotnet=\"`IgnoreChanges`\" pulumi-lang-go=\"`ignoreChanges`\" pulumi-lang-python=\"`ignore_changes`\" pulumi-lang-yaml=\"`ignoreChanges`\" pulumi-lang-java=\"`ignoreChanges`\"\u003e`ignore_changes`\u003c/span\u003e that correspond to the sub-resources you are actually using. For example, if you only use \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-go=\"`oss.BucketPolicy`\" pulumi-lang-python=\"`oss.BucketPolicy`\" pulumi-lang-yaml=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-java=\"`alicloud.oss.BucketPolicy`\"\u003e`alicloud.oss.BucketPolicy`\u003c/span\u003e, you only need \u003cspan pulumi-lang-nodejs=\"`ignoreChanges \" pulumi-lang-dotnet=\"`IgnoreChanges \" pulumi-lang-go=\"`ignoreChanges \" pulumi-lang-python=\"`ignore_changes \" pulumi-lang-yaml=\"`ignoreChanges \" pulumi-lang-java=\"`ignoreChanges \"\u003e`ignore_changes \u003c/span\u003e= [policy]`.\n\nIA Bucket\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {\n    bucket: `example-${_default.result}`,\n    storageClass: \"IA\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_bucket = alicloud.oss.Bucket(\"default\",\n    bucket=f\"example-{default['result']}\",\n    storage_class=\"IA\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = $\"example-{@default.Result}\",\n        StorageClass = \"IA\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket:       pulumi.Sprintf(\"example-%v\", _default.Result),\n\t\t\tStorageClass: pulumi.String(\"IA\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(String.format(\"example-%s\", default_.result()))\n            .storageClass(\"IA\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket: example-${default.result}\n      storageClass: IA\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nSet bucket server-side encryption rule \n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst bucket_sserule = new alicloud.oss.Bucket(\"bucket-sserule\", {\n    bucket: `terraform-example-${_default.result}`,\n    serverSideEncryptionRule: {\n        sseAlgorithm: \"AES256\",\n    },\n});\nconst bucket_sseruleBucketAcl = new alicloud.oss.BucketAcl(\"bucket-sserule\", {\n    bucket: bucket_sserule.bucket,\n    acl: \"private\",\n});\nconst kms = new alicloud.kms.Key(\"kms\", {\n    description: \"terraform-example\",\n    pendingWindowInDays: 7,\n    status: \"Enabled\",\n});\nconst bucket_kms = new alicloud.oss.Bucket(\"bucket-kms\", {\n    bucket: `terraform-example-kms-${_default.result}`,\n    serverSideEncryptionRule: {\n        sseAlgorithm: \"KMS\",\n        kmsMasterKeyId: kms.id,\n    },\n});\nconst bucket_kmsBucketAcl = new alicloud.oss.BucketAcl(\"bucket-kms\", {\n    bucket: bucket_kms.bucket,\n    acl: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nbucket_sserule = alicloud.oss.Bucket(\"bucket-sserule\",\n    bucket=f\"terraform-example-{default['result']}\",\n    server_side_encryption_rule={\n        \"sse_algorithm\": \"AES256\",\n    })\nbucket_sserule_bucket_acl = alicloud.oss.BucketAcl(\"bucket-sserule\",\n    bucket=bucket_sserule.bucket,\n    acl=\"private\")\nkms = alicloud.kms.Key(\"kms\",\n    description=\"terraform-example\",\n    pending_window_in_days=7,\n    status=\"Enabled\")\nbucket_kms = alicloud.oss.Bucket(\"bucket-kms\",\n    bucket=f\"terraform-example-kms-{default['result']}\",\n    server_side_encryption_rule={\n        \"sse_algorithm\": \"KMS\",\n        \"kms_master_key_id\": kms.id,\n    })\nbucket_kms_bucket_acl = alicloud.oss.BucketAcl(\"bucket-kms\",\n    bucket=bucket_kms.bucket,\n    acl=\"private\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var bucket_sserule = new AliCloud.Oss.Bucket(\"bucket-sserule\", new()\n    {\n        BucketName = $\"terraform-example-{@default.Result}\",\n        ServerSideEncryptionRule = new AliCloud.Oss.Inputs.BucketServerSideEncryptionRuleArgs\n        {\n            SseAlgorithm = \"AES256\",\n        },\n    });\n\n    var bucket_sseruleBucketAcl = new AliCloud.Oss.BucketAcl(\"bucket-sserule\", new()\n    {\n        Bucket = bucket_sserule.BucketName,\n        Acl = \"private\",\n    });\n\n    var kms = new AliCloud.Kms.Key(\"kms\", new()\n    {\n        Description = \"terraform-example\",\n        PendingWindowInDays = 7,\n        Status = \"Enabled\",\n    });\n\n    var bucket_kms = new AliCloud.Oss.Bucket(\"bucket-kms\", new()\n    {\n        BucketName = $\"terraform-example-kms-{@default.Result}\",\n        ServerSideEncryptionRule = new AliCloud.Oss.Inputs.BucketServerSideEncryptionRuleArgs\n        {\n            SseAlgorithm = \"KMS\",\n            KmsMasterKeyId = kms.Id,\n        },\n    });\n\n    var bucket_kmsBucketAcl = new AliCloud.Oss.BucketAcl(\"bucket-kms\", new()\n    {\n        Bucket = bucket_kms.BucketName,\n        Acl = \"private\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket_sserule, err := oss.NewBucket(ctx, \"bucket-sserule\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tServerSideEncryptionRule: \u0026oss.BucketServerSideEncryptionRuleArgs{\n\t\t\t\tSseAlgorithm: pulumi.String(\"AES256\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"bucket-sserule\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: bucket_sserule.Bucket,\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkms, err := kms.NewKey(ctx, \"kms\", \u0026kms.KeyArgs{\n\t\t\tDescription:         pulumi.String(\"terraform-example\"),\n\t\t\tPendingWindowInDays: pulumi.Int(7),\n\t\t\tStatus:              pulumi.String(\"Enabled\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket_kms, err := oss.NewBucket(ctx, \"bucket-kms\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"terraform-example-kms-%v\", _default.Result),\n\t\t\tServerSideEncryptionRule: \u0026oss.BucketServerSideEncryptionRuleArgs{\n\t\t\t\tSseAlgorithm:   pulumi.String(\"KMS\"),\n\t\t\t\tKmsMasterKeyId: kms.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"bucket-kms\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: bucket_kms.Bucket,\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketServerSideEncryptionRuleArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport com.pulumi.alicloud.kms.Key;\nimport com.pulumi.alicloud.kms.KeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var bucket_sserule = new Bucket(\"bucket-sserule\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-%s\", default_.result()))\n            .serverSideEncryptionRule(BucketServerSideEncryptionRuleArgs.builder()\n                .sseAlgorithm(\"AES256\")\n                .build())\n            .build());\n\n        var bucket_sseruleBucketAcl = new BucketAcl(\"bucket-sseruleBucketAcl\", BucketAclArgs.builder()\n            .bucket(bucket_sserule.bucket())\n            .acl(\"private\")\n            .build());\n\n        var kms = new Key(\"kms\", KeyArgs.builder()\n            .description(\"terraform-example\")\n            .pendingWindowInDays(7)\n            .status(\"Enabled\")\n            .build());\n\n        var bucket_kms = new Bucket(\"bucket-kms\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-kms-%s\", default_.result()))\n            .serverSideEncryptionRule(BucketServerSideEncryptionRuleArgs.builder()\n                .sseAlgorithm(\"KMS\")\n                .kmsMasterKeyId(kms.id())\n                .build())\n            .build());\n\n        var bucket_kmsBucketAcl = new BucketAcl(\"bucket-kmsBucketAcl\", BucketAclArgs.builder()\n            .bucket(bucket_kms.bucket())\n            .acl(\"private\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  bucket-sserule:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: terraform-example-${default.result}\n      serverSideEncryptionRule:\n        sseAlgorithm: AES256\n  bucket-sseruleBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: bucket-sserule\n    properties:\n      bucket: ${[\"bucket-sserule\"].bucket}\n      acl: private\n  kms:\n    type: alicloud:kms:Key\n    properties:\n      description: terraform-example\n      pendingWindowInDays: '7'\n      status: Enabled\n  bucket-kms:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: terraform-example-kms-${default.result}\n      serverSideEncryptionRule:\n        sseAlgorithm: KMS\n        kmsMasterKeyId: ${kms.id}\n  bucket-kmsBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: bucket-kms\n    properties:\n      bucket: ${[\"bucket-kms\"].bucket}\n      acl: private\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nSet bucket tags \n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst bucket_tags = new alicloud.oss.Bucket(\"bucket-tags\", {\n    bucket: `terraform-example-${_default.result}`,\n    tags: {\n        key1: \"value1\",\n        key2: \"value2\",\n    },\n});\nconst bucket_tagsBucketAcl = new alicloud.oss.BucketAcl(\"bucket-tags\", {\n    bucket: bucket_tags.bucket,\n    acl: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nbucket_tags = alicloud.oss.Bucket(\"bucket-tags\",\n    bucket=f\"terraform-example-{default['result']}\",\n    tags={\n        \"key1\": \"value1\",\n        \"key2\": \"value2\",\n    })\nbucket_tags_bucket_acl = alicloud.oss.BucketAcl(\"bucket-tags\",\n    bucket=bucket_tags.bucket,\n    acl=\"private\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var bucket_tags = new AliCloud.Oss.Bucket(\"bucket-tags\", new()\n    {\n        BucketName = $\"terraform-example-{@default.Result}\",\n        Tags = \n        {\n            { \"key1\", \"value1\" },\n            { \"key2\", \"value2\" },\n        },\n    });\n\n    var bucket_tagsBucketAcl = new AliCloud.Oss.BucketAcl(\"bucket-tags\", new()\n    {\n        Bucket = bucket_tags.BucketName,\n        Acl = \"private\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket_tags, err := oss.NewBucket(ctx, \"bucket-tags\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\"key2\": pulumi.String(\"value2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"bucket-tags\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: bucket_tags.Bucket,\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var bucket_tags = new Bucket(\"bucket-tags\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-%s\", default_.result()))\n            .tags(Map.ofEntries(\n                Map.entry(\"key1\", \"value1\"),\n                Map.entry(\"key2\", \"value2\")\n            ))\n            .build());\n\n        var bucket_tagsBucketAcl = new BucketAcl(\"bucket-tagsBucketAcl\", BucketAclArgs.builder()\n            .bucket(bucket_tags.bucket())\n            .acl(\"private\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  bucket-tags:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: terraform-example-${default.result}\n      tags:\n        key1: value1\n        key2: value2\n  bucket-tagsBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: bucket-tags\n    properties:\n      bucket: ${[\"bucket-tags\"].bucket}\n      acl: private\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nEnable bucket versioning \n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst bucket_versioning = new alicloud.oss.Bucket(\"bucket-versioning\", {\n    bucket: `terraform-example-${_default.result}`,\n    versioning: {\n        status: \"Enabled\",\n    },\n});\nconst defaultBucketAcl = new alicloud.oss.BucketAcl(\"default\", {\n    bucket: bucket_versioning.bucket,\n    acl: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nbucket_versioning = alicloud.oss.Bucket(\"bucket-versioning\",\n    bucket=f\"terraform-example-{default['result']}\",\n    versioning={\n        \"status\": \"Enabled\",\n    })\ndefault_bucket_acl = alicloud.oss.BucketAcl(\"default\",\n    bucket=bucket_versioning.bucket,\n    acl=\"private\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var bucket_versioning = new AliCloud.Oss.Bucket(\"bucket-versioning\", new()\n    {\n        BucketName = $\"terraform-example-{@default.Result}\",\n        Versioning = new AliCloud.Oss.Inputs.BucketVersioningArgs\n        {\n            Status = \"Enabled\",\n        },\n    });\n\n    var defaultBucketAcl = new AliCloud.Oss.BucketAcl(\"default\", new()\n    {\n        Bucket = bucket_versioning.BucketName,\n        Acl = \"private\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket_versioning, err := oss.NewBucket(ctx, \"bucket-versioning\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tVersioning: \u0026oss.BucketVersioningTypeArgs{\n\t\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"default\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: bucket_versioning.Bucket,\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketVersioningArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var bucket_versioning = new Bucket(\"bucket-versioning\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-%s\", default_.result()))\n            .versioning(BucketVersioningArgs.builder()\n                .status(\"Enabled\")\n                .build())\n            .build());\n\n        var defaultBucketAcl = new BucketAcl(\"defaultBucketAcl\", BucketAclArgs.builder()\n            .bucket(bucket_versioning.bucket())\n            .acl(\"private\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  bucket-versioning:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: terraform-example-${default.result}\n      versioning:\n        status: Enabled\n  defaultBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: default\n    properties:\n      bucket: ${[\"bucket-versioning\"].bucket}\n      acl: private\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nSet bucket redundancy type\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst bucket_redundancytype = new alicloud.oss.Bucket(\"bucket-redundancytype\", {\n    bucket: `terraform-example-${_default.result}`,\n    redundancyType: \"ZRS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nbucket_redundancytype = alicloud.oss.Bucket(\"bucket-redundancytype\",\n    bucket=f\"terraform-example-{default['result']}\",\n    redundancy_type=\"ZRS\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var bucket_redundancytype = new AliCloud.Oss.Bucket(\"bucket-redundancytype\", new()\n    {\n        BucketName = $\"terraform-example-{@default.Result}\",\n        RedundancyType = \"ZRS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucket(ctx, \"bucket-redundancytype\", \u0026oss.BucketArgs{\n\t\t\tBucket:         pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tRedundancyType: pulumi.String(\"ZRS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var bucket_redundancytype = new Bucket(\"bucket-redundancytype\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-%s\", default_.result()))\n            .redundancyType(\"ZRS\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  bucket-redundancytype:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: terraform-example-${default.result}\n      redundancyType: ZRS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nSet bucket accelerate configuration\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst bucket_accelerate = new alicloud.oss.Bucket(\"bucket-accelerate\", {\n    bucket: `terraform-example-${_default.result}`,\n    transferAcceleration: {\n        enabled: false,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nbucket_accelerate = alicloud.oss.Bucket(\"bucket-accelerate\",\n    bucket=f\"terraform-example-{default['result']}\",\n    transfer_acceleration={\n        \"enabled\": False,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var bucket_accelerate = new AliCloud.Oss.Bucket(\"bucket-accelerate\", new()\n    {\n        BucketName = $\"terraform-example-{@default.Result}\",\n        TransferAcceleration = new AliCloud.Oss.Inputs.BucketTransferAccelerationArgs\n        {\n            Enabled = false,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucket(ctx, \"bucket-accelerate\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tTransferAcceleration: \u0026oss.BucketTransferAccelerationTypeArgs{\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketTransferAccelerationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var bucket_accelerate = new Bucket(\"bucket-accelerate\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-%s\", default_.result()))\n            .transferAcceleration(BucketTransferAccelerationArgs.builder()\n                .enabled(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  bucket-accelerate:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: terraform-example-${default.result}\n      transferAcceleration:\n        enabled: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nSet bucket resource group id\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    nameRegex: \"default\",\n});\nconst bucket_accelerate = new alicloud.oss.Bucket(\"bucket-accelerate\", {\n    bucket: `terraform-example-${defaultInteger.result}`,\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault = alicloud.resourcemanager.get_resource_groups(name_regex=\"default\")\nbucket_accelerate = alicloud.oss.Bucket(\"bucket-accelerate\",\n    bucket=f\"terraform-example-{default_integer['result']}\",\n    resource_group_id=default.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        NameRegex = \"default\",\n    });\n\n    var bucket_accelerate = new AliCloud.Oss.Bucket(\"bucket-accelerate\", new()\n    {\n        BucketName = $\"terraform-example-{defaultInteger.Result}\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucket(ctx, \"bucket-accelerate\", \u0026oss.BucketArgs{\n\t\t\tBucket:          pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n\t\t\tResourceGroupId: pulumi.String(_default.Groups[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .nameRegex(\"default\")\n            .build());\n\n        var bucket_accelerate = new Bucket(\"bucket-accelerate\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .resourceGroupId(default_.groups()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  bucket-accelerate:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: terraform-example-${defaultInteger.result}\n      resourceGroupId: ${default.groups[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        nameRegex: default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS bucket can be imported using the bucket name, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucket:Bucket bucket bucket-12345678\n```\n\n","properties":{"accessMonitor":{"$ref":"#/types/alicloud:oss/BucketAccessMonitor:BucketAccessMonitor","description":"A access monitor status of a bucket. See \u003cspan pulumi-lang-nodejs=\"`accessMonitor`\" pulumi-lang-dotnet=\"`AccessMonitor`\" pulumi-lang-go=\"`accessMonitor`\" pulumi-lang-python=\"`access_monitor`\" pulumi-lang-yaml=\"`accessMonitor`\" pulumi-lang-java=\"`accessMonitor`\"\u003e`access_monitor`\u003c/span\u003e below.\n"},"acl":{"type":"string","description":"The [canned ACL](https://www.alibabacloud.com/help/doc-detail/31898.htm) to apply. Can be \"private\", \"public-read\" and \"public-read-write\". This property has been deprecated since 1.220.0, please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketAcl`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketAcl`\" pulumi-lang-go=\"`oss.BucketAcl`\" pulumi-lang-python=\"`oss.BucketAcl`\" pulumi-lang-yaml=\"`alicloud.oss.BucketAcl`\" pulumi-lang-java=\"`alicloud.oss.BucketAcl`\"\u003e`alicloud.oss.BucketAcl`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'acl' has been deprecated since provider version 1.220.0. New resource 'alicloud_oss_bucket_acl' instead."},"bucket":{"type":"string","description":"The name of the bucket. If omitted, Terraform will assign a random and unique name.\n","language":{"csharp":{"name":"BucketName"}}},"corsRules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketCorsRule:BucketCorsRule"},"description":"A rule of  [Cross-Origin Resource Sharing](https://www.alibabacloud.com/help/doc-detail/31903.htm). The items of core rule are no more than 10 for every OSS bucket. See \u003cspan pulumi-lang-nodejs=\"`corsRule`\" pulumi-lang-dotnet=\"`CorsRule`\" pulumi-lang-go=\"`corsRule`\" pulumi-lang-python=\"`cors_rule`\" pulumi-lang-yaml=\"`corsRule`\" pulumi-lang-java=\"`corsRule`\"\u003e`cors_rule`\u003c/span\u003e below.\n"},"creationDate":{"type":"string","description":"The creation date of the bucket.\n"},"extranetEndpoint":{"type":"string","description":"The extranet access endpoint of the bucket.\n"},"forceDestroy":{"type":"boolean","description":"A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without error. These objects are not recoverable. Defaults to \"false\".\n"},"intranetEndpoint":{"type":"string","description":"The intranet access endpoint of the bucket.\n"},"lifecycleRuleAllowSameActionOverlap":{"type":"boolean","description":"A boolean that indicates lifecycle rules allow prefix overlap.\n"},"lifecycleRules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketLifecycleRule:BucketLifecycleRule"},"description":"A configuration of [object lifecycle management](https://www.alibabacloud.com/help/doc-detail/31904.htm). See \u003cspan pulumi-lang-nodejs=\"`lifecycleRule`\" pulumi-lang-dotnet=\"`LifecycleRule`\" pulumi-lang-go=\"`lifecycleRule`\" pulumi-lang-python=\"`lifecycle_rule`\" pulumi-lang-yaml=\"`lifecycleRule`\" pulumi-lang-java=\"`lifecycleRule`\"\u003e`lifecycle_rule`\u003c/span\u003e below.\n"},"location":{"type":"string","description":"The location of the bucket.\n"},"logging":{"$ref":"#/types/alicloud:oss/BucketLogging:BucketLogging","description":"A Settings of [bucket logging](https://www.alibabacloud.com/help/doc-detail/31900.htm). See \u003cspan pulumi-lang-nodejs=\"`logging`\" pulumi-lang-dotnet=\"`Logging`\" pulumi-lang-go=\"`logging`\" pulumi-lang-python=\"`logging`\" pulumi-lang-yaml=\"`logging`\" pulumi-lang-java=\"`logging`\"\u003e`logging`\u003c/span\u003e below.\n"},"loggingIsenable":{"type":"boolean","description":"The flag of using logging enable container. Defaults true.\n","deprecationMessage":"Deprecated from 1.37.0. When \u003cspan pulumi-lang-nodejs=\"`logging`\" pulumi-lang-dotnet=\"`Logging`\" pulumi-lang-go=\"`logging`\" pulumi-lang-python=\"`logging`\" pulumi-lang-yaml=\"`logging`\" pulumi-lang-java=\"`logging`\"\u003e`logging`\u003c/span\u003e is set, the bucket logging will be able."},"owner":{"type":"string","description":"The bucket owner.\n"},"policy":{"type":"string","description":"Json format text of bucket policy [bucket policy management](https://www.alibabacloud.com/help/doc-detail/100680.htm). This property has been deprecated since 1.220.0, please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-go=\"`oss.BucketPolicy`\" pulumi-lang-python=\"`oss.BucketPolicy`\" pulumi-lang-yaml=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-java=\"`alicloud.oss.BucketPolicy`\"\u003e`alicloud.oss.BucketPolicy`\u003c/span\u003e instead.\n"},"redundancyType":{"type":"string","description":"The [redundancy type](https://www.alibabacloud.com/help/doc-detail/90589.htm) to enable. Can be \"LRS\", and \"ZRS\". Defaults to \"LRS\".\n"},"refererConfig":{"$ref":"#/types/alicloud:oss/BucketRefererConfig:BucketRefererConfig","description":"The configuration of [referer](https://www.alibabacloud.com/help/doc-detail/31901.htm). This property has been deprecated since 1.220.0, please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketReferer`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketReferer`\" pulumi-lang-go=\"`oss.BucketReferer`\" pulumi-lang-python=\"`oss.BucketReferer`\" pulumi-lang-yaml=\"`alicloud.oss.BucketReferer`\" pulumi-lang-java=\"`alicloud.oss.BucketReferer`\"\u003e`alicloud.oss.BucketReferer`\u003c/span\u003e instead. See \u003cspan pulumi-lang-nodejs=\"`refererConfig`\" pulumi-lang-dotnet=\"`RefererConfig`\" pulumi-lang-go=\"`refererConfig`\" pulumi-lang-python=\"`referer_config`\" pulumi-lang-yaml=\"`refererConfig`\" pulumi-lang-java=\"`refererConfig`\"\u003e`referer_config`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the bucket belongs.\n"},"serverSideEncryptionRule":{"$ref":"#/types/alicloud:oss/BucketServerSideEncryptionRule:BucketServerSideEncryptionRule","description":"A configuration of server-side encryption. See \u003cspan pulumi-lang-nodejs=\"`serverSideEncryptionRule`\" pulumi-lang-dotnet=\"`ServerSideEncryptionRule`\" pulumi-lang-go=\"`serverSideEncryptionRule`\" pulumi-lang-python=\"`server_side_encryption_rule`\" pulumi-lang-yaml=\"`serverSideEncryptionRule`\" pulumi-lang-java=\"`serverSideEncryptionRule`\"\u003e`server_side_encryption_rule`\u003c/span\u003e below.\n"},"storageClass":{"type":"string","description":"The [storage class](https://www.alibabacloud.com/help/doc-detail/51374.htm) to apply. Can be \"Standard\", \"IA\", \"Archive\", \"ColdArchive\" and \"DeepColdArchive\". Defaults to \"Standard\". \"ColdArchive\" is available since 1.203.0. \"DeepColdArchive\" is available since 1.209.0.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the bucket. The items are no more than 10 for a bucket.\n"},"transferAcceleration":{"$ref":"#/types/alicloud:oss/BucketTransferAcceleration:BucketTransferAcceleration","description":"A transfer acceleration status of a bucket. See \u003cspan pulumi-lang-nodejs=\"`transferAcceleration`\" pulumi-lang-dotnet=\"`TransferAcceleration`\" pulumi-lang-go=\"`transferAcceleration`\" pulumi-lang-python=\"`transfer_acceleration`\" pulumi-lang-yaml=\"`transferAcceleration`\" pulumi-lang-java=\"`transferAcceleration`\"\u003e`transfer_acceleration`\u003c/span\u003e below.\n"},"versioning":{"$ref":"#/types/alicloud:oss/BucketVersioning:BucketVersioning","description":"A state of versioning. See \u003cspan pulumi-lang-nodejs=\"`versioning`\" pulumi-lang-dotnet=\"`Versioning`\" pulumi-lang-go=\"`versioning`\" pulumi-lang-python=\"`versioning`\" pulumi-lang-yaml=\"`versioning`\" pulumi-lang-java=\"`versioning`\"\u003e`versioning`\u003c/span\u003e below.\n"},"website":{"$ref":"#/types/alicloud:oss/BucketWebsite:BucketWebsite","description":"A website configuration. See \u003cspan pulumi-lang-nodejs=\"`website`\" pulumi-lang-dotnet=\"`Website`\" pulumi-lang-go=\"`website`\" pulumi-lang-python=\"`website`\" pulumi-lang-yaml=\"`website`\" pulumi-lang-java=\"`website`\"\u003e`website`\u003c/span\u003e below.\n"}},"required":["accessMonitor","acl","bucket","creationDate","extranetEndpoint","intranetEndpoint","location","owner","resourceGroupId"],"inputProperties":{"accessMonitor":{"$ref":"#/types/alicloud:oss/BucketAccessMonitor:BucketAccessMonitor","description":"A access monitor status of a bucket. See \u003cspan pulumi-lang-nodejs=\"`accessMonitor`\" pulumi-lang-dotnet=\"`AccessMonitor`\" pulumi-lang-go=\"`accessMonitor`\" pulumi-lang-python=\"`access_monitor`\" pulumi-lang-yaml=\"`accessMonitor`\" pulumi-lang-java=\"`accessMonitor`\"\u003e`access_monitor`\u003c/span\u003e below.\n"},"acl":{"type":"string","description":"The [canned ACL](https://www.alibabacloud.com/help/doc-detail/31898.htm) to apply. Can be \"private\", \"public-read\" and \"public-read-write\". This property has been deprecated since 1.220.0, please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketAcl`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketAcl`\" pulumi-lang-go=\"`oss.BucketAcl`\" pulumi-lang-python=\"`oss.BucketAcl`\" pulumi-lang-yaml=\"`alicloud.oss.BucketAcl`\" pulumi-lang-java=\"`alicloud.oss.BucketAcl`\"\u003e`alicloud.oss.BucketAcl`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'acl' has been deprecated since provider version 1.220.0. New resource 'alicloud_oss_bucket_acl' instead."},"bucket":{"type":"string","description":"The name of the bucket. If omitted, Terraform will assign a random and unique name.\n","language":{"csharp":{"name":"BucketName"}},"willReplaceOnChanges":true},"corsRules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketCorsRule:BucketCorsRule"},"description":"A rule of  [Cross-Origin Resource Sharing](https://www.alibabacloud.com/help/doc-detail/31903.htm). The items of core rule are no more than 10 for every OSS bucket. See \u003cspan pulumi-lang-nodejs=\"`corsRule`\" pulumi-lang-dotnet=\"`CorsRule`\" pulumi-lang-go=\"`corsRule`\" pulumi-lang-python=\"`cors_rule`\" pulumi-lang-yaml=\"`corsRule`\" pulumi-lang-java=\"`corsRule`\"\u003e`cors_rule`\u003c/span\u003e below.\n"},"forceDestroy":{"type":"boolean","description":"A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without error. These objects are not recoverable. Defaults to \"false\".\n"},"lifecycleRuleAllowSameActionOverlap":{"type":"boolean","description":"A boolean that indicates lifecycle rules allow prefix overlap.\n"},"lifecycleRules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketLifecycleRule:BucketLifecycleRule"},"description":"A configuration of [object lifecycle management](https://www.alibabacloud.com/help/doc-detail/31904.htm). See \u003cspan pulumi-lang-nodejs=\"`lifecycleRule`\" pulumi-lang-dotnet=\"`LifecycleRule`\" pulumi-lang-go=\"`lifecycleRule`\" pulumi-lang-python=\"`lifecycle_rule`\" pulumi-lang-yaml=\"`lifecycleRule`\" pulumi-lang-java=\"`lifecycleRule`\"\u003e`lifecycle_rule`\u003c/span\u003e below.\n"},"logging":{"$ref":"#/types/alicloud:oss/BucketLogging:BucketLogging","description":"A Settings of [bucket logging](https://www.alibabacloud.com/help/doc-detail/31900.htm). See \u003cspan pulumi-lang-nodejs=\"`logging`\" pulumi-lang-dotnet=\"`Logging`\" pulumi-lang-go=\"`logging`\" pulumi-lang-python=\"`logging`\" pulumi-lang-yaml=\"`logging`\" pulumi-lang-java=\"`logging`\"\u003e`logging`\u003c/span\u003e below.\n"},"loggingIsenable":{"type":"boolean","description":"The flag of using logging enable container. Defaults true.\n","deprecationMessage":"Deprecated from 1.37.0. When \u003cspan pulumi-lang-nodejs=\"`logging`\" pulumi-lang-dotnet=\"`Logging`\" pulumi-lang-go=\"`logging`\" pulumi-lang-python=\"`logging`\" pulumi-lang-yaml=\"`logging`\" pulumi-lang-java=\"`logging`\"\u003e`logging`\u003c/span\u003e is set, the bucket logging will be able."},"policy":{"type":"string","description":"Json format text of bucket policy [bucket policy management](https://www.alibabacloud.com/help/doc-detail/100680.htm). This property has been deprecated since 1.220.0, please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-go=\"`oss.BucketPolicy`\" pulumi-lang-python=\"`oss.BucketPolicy`\" pulumi-lang-yaml=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-java=\"`alicloud.oss.BucketPolicy`\"\u003e`alicloud.oss.BucketPolicy`\u003c/span\u003e instead.\n"},"redundancyType":{"type":"string","description":"The [redundancy type](https://www.alibabacloud.com/help/doc-detail/90589.htm) to enable. Can be \"LRS\", and \"ZRS\". Defaults to \"LRS\".\n","willReplaceOnChanges":true},"refererConfig":{"$ref":"#/types/alicloud:oss/BucketRefererConfig:BucketRefererConfig","description":"The configuration of [referer](https://www.alibabacloud.com/help/doc-detail/31901.htm). This property has been deprecated since 1.220.0, please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketReferer`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketReferer`\" pulumi-lang-go=\"`oss.BucketReferer`\" pulumi-lang-python=\"`oss.BucketReferer`\" pulumi-lang-yaml=\"`alicloud.oss.BucketReferer`\" pulumi-lang-java=\"`alicloud.oss.BucketReferer`\"\u003e`alicloud.oss.BucketReferer`\u003c/span\u003e instead. See \u003cspan pulumi-lang-nodejs=\"`refererConfig`\" pulumi-lang-dotnet=\"`RefererConfig`\" pulumi-lang-go=\"`refererConfig`\" pulumi-lang-python=\"`referer_config`\" pulumi-lang-yaml=\"`refererConfig`\" pulumi-lang-java=\"`refererConfig`\"\u003e`referer_config`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the bucket belongs.\n"},"serverSideEncryptionRule":{"$ref":"#/types/alicloud:oss/BucketServerSideEncryptionRule:BucketServerSideEncryptionRule","description":"A configuration of server-side encryption. See \u003cspan pulumi-lang-nodejs=\"`serverSideEncryptionRule`\" pulumi-lang-dotnet=\"`ServerSideEncryptionRule`\" pulumi-lang-go=\"`serverSideEncryptionRule`\" pulumi-lang-python=\"`server_side_encryption_rule`\" pulumi-lang-yaml=\"`serverSideEncryptionRule`\" pulumi-lang-java=\"`serverSideEncryptionRule`\"\u003e`server_side_encryption_rule`\u003c/span\u003e below.\n"},"storageClass":{"type":"string","description":"The [storage class](https://www.alibabacloud.com/help/doc-detail/51374.htm) to apply. Can be \"Standard\", \"IA\", \"Archive\", \"ColdArchive\" and \"DeepColdArchive\". Defaults to \"Standard\". \"ColdArchive\" is available since 1.203.0. \"DeepColdArchive\" is available since 1.209.0.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the bucket. The items are no more than 10 for a bucket.\n"},"transferAcceleration":{"$ref":"#/types/alicloud:oss/BucketTransferAcceleration:BucketTransferAcceleration","description":"A transfer acceleration status of a bucket. See \u003cspan pulumi-lang-nodejs=\"`transferAcceleration`\" pulumi-lang-dotnet=\"`TransferAcceleration`\" pulumi-lang-go=\"`transferAcceleration`\" pulumi-lang-python=\"`transfer_acceleration`\" pulumi-lang-yaml=\"`transferAcceleration`\" pulumi-lang-java=\"`transferAcceleration`\"\u003e`transfer_acceleration`\u003c/span\u003e below.\n"},"versioning":{"$ref":"#/types/alicloud:oss/BucketVersioning:BucketVersioning","description":"A state of versioning. See \u003cspan pulumi-lang-nodejs=\"`versioning`\" pulumi-lang-dotnet=\"`Versioning`\" pulumi-lang-go=\"`versioning`\" pulumi-lang-python=\"`versioning`\" pulumi-lang-yaml=\"`versioning`\" pulumi-lang-java=\"`versioning`\"\u003e`versioning`\u003c/span\u003e below.\n"},"website":{"$ref":"#/types/alicloud:oss/BucketWebsite:BucketWebsite","description":"A website configuration. See \u003cspan pulumi-lang-nodejs=\"`website`\" pulumi-lang-dotnet=\"`Website`\" pulumi-lang-go=\"`website`\" pulumi-lang-python=\"`website`\" pulumi-lang-yaml=\"`website`\" pulumi-lang-java=\"`website`\"\u003e`website`\u003c/span\u003e below.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Bucket resources.\n","properties":{"accessMonitor":{"$ref":"#/types/alicloud:oss/BucketAccessMonitor:BucketAccessMonitor","description":"A access monitor status of a bucket. See \u003cspan pulumi-lang-nodejs=\"`accessMonitor`\" pulumi-lang-dotnet=\"`AccessMonitor`\" pulumi-lang-go=\"`accessMonitor`\" pulumi-lang-python=\"`access_monitor`\" pulumi-lang-yaml=\"`accessMonitor`\" pulumi-lang-java=\"`accessMonitor`\"\u003e`access_monitor`\u003c/span\u003e below.\n"},"acl":{"type":"string","description":"The [canned ACL](https://www.alibabacloud.com/help/doc-detail/31898.htm) to apply. Can be \"private\", \"public-read\" and \"public-read-write\". This property has been deprecated since 1.220.0, please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketAcl`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketAcl`\" pulumi-lang-go=\"`oss.BucketAcl`\" pulumi-lang-python=\"`oss.BucketAcl`\" pulumi-lang-yaml=\"`alicloud.oss.BucketAcl`\" pulumi-lang-java=\"`alicloud.oss.BucketAcl`\"\u003e`alicloud.oss.BucketAcl`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'acl' has been deprecated since provider version 1.220.0. New resource 'alicloud_oss_bucket_acl' instead."},"bucket":{"type":"string","description":"The name of the bucket. If omitted, Terraform will assign a random and unique name.\n","language":{"csharp":{"name":"BucketName"}},"willReplaceOnChanges":true},"corsRules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketCorsRule:BucketCorsRule"},"description":"A rule of  [Cross-Origin Resource Sharing](https://www.alibabacloud.com/help/doc-detail/31903.htm). The items of core rule are no more than 10 for every OSS bucket. See \u003cspan pulumi-lang-nodejs=\"`corsRule`\" pulumi-lang-dotnet=\"`CorsRule`\" pulumi-lang-go=\"`corsRule`\" pulumi-lang-python=\"`cors_rule`\" pulumi-lang-yaml=\"`corsRule`\" pulumi-lang-java=\"`corsRule`\"\u003e`cors_rule`\u003c/span\u003e below.\n"},"creationDate":{"type":"string","description":"The creation date of the bucket.\n"},"extranetEndpoint":{"type":"string","description":"The extranet access endpoint of the bucket.\n"},"forceDestroy":{"type":"boolean","description":"A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without error. These objects are not recoverable. Defaults to \"false\".\n"},"intranetEndpoint":{"type":"string","description":"The intranet access endpoint of the bucket.\n"},"lifecycleRuleAllowSameActionOverlap":{"type":"boolean","description":"A boolean that indicates lifecycle rules allow prefix overlap.\n"},"lifecycleRules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketLifecycleRule:BucketLifecycleRule"},"description":"A configuration of [object lifecycle management](https://www.alibabacloud.com/help/doc-detail/31904.htm). See \u003cspan pulumi-lang-nodejs=\"`lifecycleRule`\" pulumi-lang-dotnet=\"`LifecycleRule`\" pulumi-lang-go=\"`lifecycleRule`\" pulumi-lang-python=\"`lifecycle_rule`\" pulumi-lang-yaml=\"`lifecycleRule`\" pulumi-lang-java=\"`lifecycleRule`\"\u003e`lifecycle_rule`\u003c/span\u003e below.\n"},"location":{"type":"string","description":"The location of the bucket.\n"},"logging":{"$ref":"#/types/alicloud:oss/BucketLogging:BucketLogging","description":"A Settings of [bucket logging](https://www.alibabacloud.com/help/doc-detail/31900.htm). See \u003cspan pulumi-lang-nodejs=\"`logging`\" pulumi-lang-dotnet=\"`Logging`\" pulumi-lang-go=\"`logging`\" pulumi-lang-python=\"`logging`\" pulumi-lang-yaml=\"`logging`\" pulumi-lang-java=\"`logging`\"\u003e`logging`\u003c/span\u003e below.\n"},"loggingIsenable":{"type":"boolean","description":"The flag of using logging enable container. Defaults true.\n","deprecationMessage":"Deprecated from 1.37.0. When \u003cspan pulumi-lang-nodejs=\"`logging`\" pulumi-lang-dotnet=\"`Logging`\" pulumi-lang-go=\"`logging`\" pulumi-lang-python=\"`logging`\" pulumi-lang-yaml=\"`logging`\" pulumi-lang-java=\"`logging`\"\u003e`logging`\u003c/span\u003e is set, the bucket logging will be able."},"owner":{"type":"string","description":"The bucket owner.\n"},"policy":{"type":"string","description":"Json format text of bucket policy [bucket policy management](https://www.alibabacloud.com/help/doc-detail/100680.htm). This property has been deprecated since 1.220.0, please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-go=\"`oss.BucketPolicy`\" pulumi-lang-python=\"`oss.BucketPolicy`\" pulumi-lang-yaml=\"`alicloud.oss.BucketPolicy`\" pulumi-lang-java=\"`alicloud.oss.BucketPolicy`\"\u003e`alicloud.oss.BucketPolicy`\u003c/span\u003e instead.\n"},"redundancyType":{"type":"string","description":"The [redundancy type](https://www.alibabacloud.com/help/doc-detail/90589.htm) to enable. Can be \"LRS\", and \"ZRS\". Defaults to \"LRS\".\n","willReplaceOnChanges":true},"refererConfig":{"$ref":"#/types/alicloud:oss/BucketRefererConfig:BucketRefererConfig","description":"The configuration of [referer](https://www.alibabacloud.com/help/doc-detail/31901.htm). This property has been deprecated since 1.220.0, please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketReferer`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketReferer`\" pulumi-lang-go=\"`oss.BucketReferer`\" pulumi-lang-python=\"`oss.BucketReferer`\" pulumi-lang-yaml=\"`alicloud.oss.BucketReferer`\" pulumi-lang-java=\"`alicloud.oss.BucketReferer`\"\u003e`alicloud.oss.BucketReferer`\u003c/span\u003e instead. See \u003cspan pulumi-lang-nodejs=\"`refererConfig`\" pulumi-lang-dotnet=\"`RefererConfig`\" pulumi-lang-go=\"`refererConfig`\" pulumi-lang-python=\"`referer_config`\" pulumi-lang-yaml=\"`refererConfig`\" pulumi-lang-java=\"`refererConfig`\"\u003e`referer_config`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the bucket belongs.\n"},"serverSideEncryptionRule":{"$ref":"#/types/alicloud:oss/BucketServerSideEncryptionRule:BucketServerSideEncryptionRule","description":"A configuration of server-side encryption. See \u003cspan pulumi-lang-nodejs=\"`serverSideEncryptionRule`\" pulumi-lang-dotnet=\"`ServerSideEncryptionRule`\" pulumi-lang-go=\"`serverSideEncryptionRule`\" pulumi-lang-python=\"`server_side_encryption_rule`\" pulumi-lang-yaml=\"`serverSideEncryptionRule`\" pulumi-lang-java=\"`serverSideEncryptionRule`\"\u003e`server_side_encryption_rule`\u003c/span\u003e below.\n"},"storageClass":{"type":"string","description":"The [storage class](https://www.alibabacloud.com/help/doc-detail/51374.htm) to apply. Can be \"Standard\", \"IA\", \"Archive\", \"ColdArchive\" and \"DeepColdArchive\". Defaults to \"Standard\". \"ColdArchive\" is available since 1.203.0. \"DeepColdArchive\" is available since 1.209.0.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the bucket. The items are no more than 10 for a bucket.\n"},"transferAcceleration":{"$ref":"#/types/alicloud:oss/BucketTransferAcceleration:BucketTransferAcceleration","description":"A transfer acceleration status of a bucket. See \u003cspan pulumi-lang-nodejs=\"`transferAcceleration`\" pulumi-lang-dotnet=\"`TransferAcceleration`\" pulumi-lang-go=\"`transferAcceleration`\" pulumi-lang-python=\"`transfer_acceleration`\" pulumi-lang-yaml=\"`transferAcceleration`\" pulumi-lang-java=\"`transferAcceleration`\"\u003e`transfer_acceleration`\u003c/span\u003e below.\n"},"versioning":{"$ref":"#/types/alicloud:oss/BucketVersioning:BucketVersioning","description":"A state of versioning. See \u003cspan pulumi-lang-nodejs=\"`versioning`\" pulumi-lang-dotnet=\"`Versioning`\" pulumi-lang-go=\"`versioning`\" pulumi-lang-python=\"`versioning`\" pulumi-lang-yaml=\"`versioning`\" pulumi-lang-java=\"`versioning`\"\u003e`versioning`\u003c/span\u003e below.\n"},"website":{"$ref":"#/types/alicloud:oss/BucketWebsite:BucketWebsite","description":"A website configuration. See \u003cspan pulumi-lang-nodejs=\"`website`\" pulumi-lang-dotnet=\"`Website`\" pulumi-lang-go=\"`website`\" pulumi-lang-python=\"`website`\" pulumi-lang-yaml=\"`website`\" pulumi-lang-java=\"`website`\"\u003e`website`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:oss/bucketAccessMonitor:BucketAccessMonitor":{"description":"Provides a OSS Bucket Access Monitor resource. Enables or disables access tracking for a bucket.\n\nFor information about OSS Bucket Access Monitor and how to use it, see [What is Bucket Access Monitor](https://www.alibabacloud.com/help/en/oss/developer-reference/putbucketaccessmonitor).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    storageClass: \"Standard\",\n    bucket: `${name}-${_default.result}`,\n});\nconst defaultBucketAccessMonitor = new alicloud.oss.BucketAccessMonitor(\"default\", {\n    status: \"Enabled\",\n    bucket: createBucket.bucket,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    storage_class=\"Standard\",\n    bucket=f\"{name}-{default['result']}\")\ndefault_bucket_access_monitor = alicloud.oss.BucketAccessMonitor(\"default\",\n    status=\"Enabled\",\n    bucket=create_bucket.bucket)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultBucketAccessMonitor = new AliCloud.Oss.BucketAccessMonitor(\"default\", new()\n    {\n        Status = \"Enabled\",\n        Bucket = createBucket.BucketName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAccessMonitor(ctx, \"default\", \u0026oss.BucketAccessMonitorArgs{\n\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\tBucket: createBucket.Bucket,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketAccessMonitor;\nimport com.pulumi.alicloud.oss.BucketAccessMonitorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultBucketAccessMonitor = new BucketAccessMonitor(\"defaultBucketAccessMonitor\", BucketAccessMonitorArgs.builder()\n            .status(\"Enabled\")\n            .bucket(createBucket.bucket())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n      bucket: ${name}-${default.result}\n  defaultBucketAccessMonitor:\n    type: alicloud:oss:BucketAccessMonitor\n    name: default\n    properties:\n      status: Enabled\n      bucket: ${createBucket.bucket}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketAccessMonitor`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketAccessMonitor`\" pulumi-lang-go=\"`oss.BucketAccessMonitor`\" pulumi-lang-python=\"`oss.BucketAccessMonitor`\" pulumi-lang-yaml=\"`alicloud.oss.BucketAccessMonitor`\" pulumi-lang-java=\"`alicloud.oss.BucketAccessMonitor`\"\u003e`alicloud.oss.BucketAccessMonitor`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketAccessMonitor`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketAccessMonitor`\" pulumi-lang-go=\"`oss.BucketAccessMonitor`\" pulumi-lang-python=\"`oss.BucketAccessMonitor`\" pulumi-lang-yaml=\"`alicloud.oss.BucketAccessMonitor`\" pulumi-lang-java=\"`alicloud.oss.BucketAccessMonitor`\"\u003e`alicloud.oss.BucketAccessMonitor`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Access Monitor can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketAccessMonitor:BucketAccessMonitor example \u003cid\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n"},"status":{"type":"string","description":"Specifies whether to enable access tracking for the bucket. Valid values: Enabled: enables access tracking. Disabled: disables access tracking.\n"}},"required":["bucket","status"],"inputProperties":{"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Specifies whether to enable access tracking for the bucket. Valid values: Enabled: enables access tracking. Disabled: disables access tracking.\n"}},"requiredInputs":["bucket","status"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketAccessMonitor resources.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Specifies whether to enable access tracking for the bucket. Valid values: Enabled: enables access tracking. Disabled: disables access tracking.\n"}},"type":"object"}},"alicloud:oss/bucketAcl:BucketAcl":{"description":"Provides a OSS Bucket Acl resource. The Access Control List (ACL) of a specific bucket.\n\nFor information about OSS Bucket Acl and how to use it, see [What is Bucket Acl](https://www.alibabacloud.com/help/en/oss/developer-reference/putbucketacl).\n\n\u003e **NOTE:** Available since v1.220.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    storageClass: \"Standard\",\n    bucket: `${name}-${_default.result}`,\n});\nconst defaultBucketAcl = new alicloud.oss.BucketAcl(\"default\", {\n    bucket: createBucket.bucket,\n    acl: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    storage_class=\"Standard\",\n    bucket=f\"{name}-{default['result']}\")\ndefault_bucket_acl = alicloud.oss.BucketAcl(\"default\",\n    bucket=create_bucket.bucket,\n    acl=\"private\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultBucketAcl = new AliCloud.Oss.BucketAcl(\"default\", new()\n    {\n        Bucket = createBucket.BucketName,\n        Acl = \"private\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"default\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: createBucket.Bucket,\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultBucketAcl = new BucketAcl(\"defaultBucketAcl\", BucketAclArgs.builder()\n            .bucket(createBucket.bucket())\n            .acl(\"private\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n      bucket: ${name}-${default.result}\n  defaultBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: default\n    properties:\n      bucket: ${createBucket.bucket}\n      acl: private\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketAcl`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketAcl`\" pulumi-lang-go=\"`oss.BucketAcl`\" pulumi-lang-python=\"`oss.BucketAcl`\" pulumi-lang-yaml=\"`alicloud.oss.BucketAcl`\" pulumi-lang-java=\"`alicloud.oss.BucketAcl`\"\u003e`alicloud.oss.BucketAcl`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketAcl`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketAcl`\" pulumi-lang-go=\"`oss.BucketAcl`\" pulumi-lang-python=\"`oss.BucketAcl`\" pulumi-lang-yaml=\"`alicloud.oss.BucketAcl`\" pulumi-lang-java=\"`alicloud.oss.BucketAcl`\"\u003e`alicloud.oss.BucketAcl`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Acl can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketAcl:BucketAcl example \u003cid\u003e\n```\n\n","properties":{"acl":{"type":"string","description":"Bucket-level Access Control List (ACL)，Valid values: \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e, `public-read`, `public-read-write`.\n"},"bucket":{"type":"string","description":"The name of the bucket to which the current ACL configuration belongs.\n"}},"required":["acl","bucket"],"inputProperties":{"acl":{"type":"string","description":"Bucket-level Access Control List (ACL)，Valid values: \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e, `public-read`, `public-read-write`.\n"},"bucket":{"type":"string","description":"The name of the bucket to which the current ACL configuration belongs.\n","willReplaceOnChanges":true}},"requiredInputs":["acl","bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketAcl resources.\n","properties":{"acl":{"type":"string","description":"Bucket-level Access Control List (ACL)，Valid values: \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e, `public-read`, `public-read-write`.\n"},"bucket":{"type":"string","description":"The name of the bucket to which the current ACL configuration belongs.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:oss/bucketArchiveDirectRead:BucketArchiveDirectRead":{"description":"Provides a OSS Bucket Archive Direct Read resource.\n\nReal-time access Archive objects in the bucket without the need to restore the Archive objects.\n\nFor information about OSS Bucket Archive Direct Read and how to use it, see [What is Bucket Archive Direct Read](https://next.api.alibabacloud.com/document/Oss/2019-05-17/PutBucketArchiveDirectRead).\n\n\u003e **NOTE:** Available since v1.271.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {storageClass: \"Standard\"});\nconst _default = new alicloud.oss.BucketArchiveDirectRead(\"default\", {\n    bucket: createBucket.id,\n    enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\", storage_class=\"Standard\")\ndefault = alicloud.oss.BucketArchiveDirectRead(\"default\",\n    bucket=create_bucket.id,\n    enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n    });\n\n    var @default = new AliCloud.Oss.BucketArchiveDirectRead(\"default\", new()\n    {\n        Bucket = createBucket.Id,\n        Enabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketArchiveDirectRead(ctx, \"default\", \u0026oss.BucketArchiveDirectReadArgs{\n\t\t\tBucket:  createBucket.ID(),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketArchiveDirectRead;\nimport com.pulumi.alicloud.oss.BucketArchiveDirectReadArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .build());\n\n        var default_ = new BucketArchiveDirectRead(\"default\", BucketArchiveDirectReadArgs.builder()\n            .bucket(createBucket.id())\n            .enabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n  default:\n    type: alicloud:oss:BucketArchiveDirectRead\n    properties:\n      bucket: ${createBucket.id}\n      enabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketArchiveDirectRead`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketArchiveDirectRead`\" pulumi-lang-go=\"`oss.BucketArchiveDirectRead`\" pulumi-lang-python=\"`oss.BucketArchiveDirectRead`\" pulumi-lang-yaml=\"`alicloud.oss.BucketArchiveDirectRead`\" pulumi-lang-java=\"`alicloud.oss.BucketArchiveDirectRead`\"\u003e`alicloud.oss.BucketArchiveDirectRead`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketArchiveDirectRead`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketArchiveDirectRead`\" pulumi-lang-go=\"`oss.BucketArchiveDirectRead`\" pulumi-lang-python=\"`oss.BucketArchiveDirectRead`\" pulumi-lang-yaml=\"`alicloud.oss.BucketArchiveDirectRead`\" pulumi-lang-java=\"`alicloud.oss.BucketArchiveDirectRead`\"\u003e`alicloud.oss.BucketArchiveDirectRead`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Archive Direct Read can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketArchiveDirectRead:BucketArchiveDirectRead example \u003cbucket\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the bucket\n"},"enabled":{"type":"boolean","description":"Specifies whether to enable real-time access of Archive objects for a bucket. Valid values: true and false.\n"}},"required":["bucket","enabled"],"inputProperties":{"bucket":{"type":"string","description":"The name of the bucket\n","willReplaceOnChanges":true},"enabled":{"type":"boolean","description":"Specifies whether to enable real-time access of Archive objects for a bucket. Valid values: true and false.\n"}},"requiredInputs":["bucket","enabled"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketArchiveDirectRead resources.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket\n","willReplaceOnChanges":true},"enabled":{"type":"boolean","description":"Specifies whether to enable real-time access of Archive objects for a bucket. Valid values: true and false.\n"}},"type":"object"}},"alicloud:oss/bucketCname:BucketCname":{"description":"Provides a OSS Bucket Cname resource.\n\nCustomizing Bucket domains.\n\nFor information about OSS Bucket Cname and how to use it, see [What is Bucket Cname](https://www.alibabacloud.com/help/en/oss/developer-reference/putcname).\n\n\u003e **NOTE:** Available since v1.233.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    bucket: name,\n    storageClass: \"Standard\",\n});\nconst defaultZaWJfG = new alicloud.oss.BucketCnameToken(\"defaultZaWJfG\", {\n    bucket: createBucket.bucket,\n    domain: \"tftestacc.com\",\n});\nconst defaultnHqm5p = new alicloud.dns.AlidnsRecord(\"defaultnHqm5p\", {\n    status: \"ENABLE\",\n    line: \"default\",\n    rr: \"_dnsauth\",\n    type: \"TXT\",\n    domainName: \"tftestacc.com\",\n    priority: 1,\n    value: defaultZaWJfG.token,\n    ttl: 600,\n});\nconst _default = new alicloud.oss.BucketCname(\"default\", {\n    bucket: createBucket.bucket,\n    domain: defaultnHqm5p.domainName,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    bucket=name,\n    storage_class=\"Standard\")\ndefault_za_w_jf_g = alicloud.oss.BucketCnameToken(\"defaultZaWJfG\",\n    bucket=create_bucket.bucket,\n    domain=\"tftestacc.com\")\ndefaultn_hqm5p = alicloud.dns.AlidnsRecord(\"defaultnHqm5p\",\n    status=\"ENABLE\",\n    line=\"default\",\n    rr=\"_dnsauth\",\n    type=\"TXT\",\n    domain_name=\"tftestacc.com\",\n    priority=1,\n    value=default_za_w_jf_g.token,\n    ttl=600)\ndefault = alicloud.oss.BucketCname(\"default\",\n    bucket=create_bucket.bucket,\n    domain=defaultn_hqm5p.domain_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        BucketName = name,\n        StorageClass = \"Standard\",\n    });\n\n    var defaultZaWJfG = new AliCloud.Oss.BucketCnameToken(\"defaultZaWJfG\", new()\n    {\n        Bucket = createBucket.BucketName,\n        Domain = \"tftestacc.com\",\n    });\n\n    var defaultnHqm5p = new AliCloud.Dns.AlidnsRecord(\"defaultnHqm5p\", new()\n    {\n        Status = \"ENABLE\",\n        Line = \"default\",\n        Rr = \"_dnsauth\",\n        Type = \"TXT\",\n        DomainName = \"tftestacc.com\",\n        Priority = 1,\n        Value = defaultZaWJfG.Token,\n        Ttl = 600,\n    });\n\n    var @default = new AliCloud.Oss.BucketCname(\"default\", new()\n    {\n        Bucket = createBucket.BucketName,\n        Domain = defaultnHqm5p.DomainName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tBucket:       pulumi.String(name),\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultZaWJfG, err := oss.NewBucketCnameToken(ctx, \"defaultZaWJfG\", \u0026oss.BucketCnameTokenArgs{\n\t\t\tBucket: createBucket.Bucket,\n\t\t\tDomain: pulumi.String(\"tftestacc.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultnHqm5p, err := dns.NewAlidnsRecord(ctx, \"defaultnHqm5p\", \u0026dns.AlidnsRecordArgs{\n\t\t\tStatus:     pulumi.String(\"ENABLE\"),\n\t\t\tLine:       pulumi.String(\"default\"),\n\t\t\tRr:         pulumi.String(\"_dnsauth\"),\n\t\t\tType:       pulumi.String(\"TXT\"),\n\t\t\tDomainName: pulumi.String(\"tftestacc.com\"),\n\t\t\tPriority:   pulumi.Int(1),\n\t\t\tValue:      defaultZaWJfG.Token,\n\t\t\tTtl:        pulumi.Int(600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketCname(ctx, \"default\", \u0026oss.BucketCnameArgs{\n\t\t\tBucket: createBucket.Bucket,\n\t\t\tDomain: defaultnHqm5p.DomainName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketCnameToken;\nimport com.pulumi.alicloud.oss.BucketCnameTokenArgs;\nimport com.pulumi.alicloud.dns.AlidnsRecord;\nimport com.pulumi.alicloud.dns.AlidnsRecordArgs;\nimport com.pulumi.alicloud.oss.BucketCname;\nimport com.pulumi.alicloud.oss.BucketCnameArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .bucket(name)\n            .storageClass(\"Standard\")\n            .build());\n\n        var defaultZaWJfG = new BucketCnameToken(\"defaultZaWJfG\", BucketCnameTokenArgs.builder()\n            .bucket(createBucket.bucket())\n            .domain(\"tftestacc.com\")\n            .build());\n\n        var defaultnHqm5p = new AlidnsRecord(\"defaultnHqm5p\", AlidnsRecordArgs.builder()\n            .status(\"ENABLE\")\n            .line(\"default\")\n            .rr(\"_dnsauth\")\n            .type(\"TXT\")\n            .domainName(\"tftestacc.com\")\n            .priority(1)\n            .value(defaultZaWJfG.token())\n            .ttl(600)\n            .build());\n\n        var default_ = new BucketCname(\"default\", BucketCnameArgs.builder()\n            .bucket(createBucket.bucket())\n            .domain(defaultnHqm5p.domainName())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      bucket: ${name}\n      storageClass: Standard\n  defaultZaWJfG:\n    type: alicloud:oss:BucketCnameToken\n    properties:\n      bucket: ${createBucket.bucket}\n      domain: tftestacc.com\n  defaultnHqm5p:\n    type: alicloud:dns:AlidnsRecord\n    properties:\n      status: ENABLE\n      line: default\n      rr: _dnsauth\n      type: TXT\n      domainName: tftestacc.com\n      priority: '1'\n      value: ${defaultZaWJfG.token}\n      ttl: '600'\n  default:\n    type: alicloud:oss:BucketCname\n    properties:\n      bucket: ${createBucket.bucket}\n      domain: ${defaultnHqm5p.domainName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Cname can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketCname:BucketCname example \u003cbucket\u003e:\u003cdomain\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The bucket to which the custom domain name belongs\n"},"certificate":{"$ref":"#/types/alicloud:oss/BucketCnameCertificate:BucketCnameCertificate","description":"The container for the certificate configuration. See \u003cspan pulumi-lang-nodejs=\"`certificate`\" pulumi-lang-dotnet=\"`Certificate`\" pulumi-lang-go=\"`certificate`\" pulumi-lang-python=\"`certificate`\" pulumi-lang-yaml=\"`certificate`\" pulumi-lang-java=\"`certificate`\"\u003e`certificate`\u003c/span\u003e below.\n"},"deleteCertificate":{"type":"boolean","description":"Whether to delete the certificate.\n"},"domain":{"type":"string","description":"User-defined domain name\n"},"force":{"type":"boolean","description":"Whether to force overwrite certificate.\n"},"previousCertId":{"type":"string","description":"The current certificate ID. If the Force value is not true, the OSS Server checks whether the value matches the current certificate ID. If the value does not match, an error is reported.\n"},"status":{"type":"string","description":"Cname status\n"}},"required":["bucket","domain","status"],"inputProperties":{"bucket":{"type":"string","description":"The bucket to which the custom domain name belongs\n","willReplaceOnChanges":true},"certificate":{"$ref":"#/types/alicloud:oss/BucketCnameCertificate:BucketCnameCertificate","description":"The container for the certificate configuration. See \u003cspan pulumi-lang-nodejs=\"`certificate`\" pulumi-lang-dotnet=\"`Certificate`\" pulumi-lang-go=\"`certificate`\" pulumi-lang-python=\"`certificate`\" pulumi-lang-yaml=\"`certificate`\" pulumi-lang-java=\"`certificate`\"\u003e`certificate`\u003c/span\u003e below.\n"},"deleteCertificate":{"type":"boolean","description":"Whether to delete the certificate.\n"},"domain":{"type":"string","description":"User-defined domain name\n","willReplaceOnChanges":true},"force":{"type":"boolean","description":"Whether to force overwrite certificate.\n"},"previousCertId":{"type":"string","description":"The current certificate ID. If the Force value is not true, the OSS Server checks whether the value matches the current certificate ID. If the value does not match, an error is reported.\n"}},"requiredInputs":["bucket","domain"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketCname resources.\n","properties":{"bucket":{"type":"string","description":"The bucket to which the custom domain name belongs\n","willReplaceOnChanges":true},"certificate":{"$ref":"#/types/alicloud:oss/BucketCnameCertificate:BucketCnameCertificate","description":"The container for the certificate configuration. See \u003cspan pulumi-lang-nodejs=\"`certificate`\" pulumi-lang-dotnet=\"`Certificate`\" pulumi-lang-go=\"`certificate`\" pulumi-lang-python=\"`certificate`\" pulumi-lang-yaml=\"`certificate`\" pulumi-lang-java=\"`certificate`\"\u003e`certificate`\u003c/span\u003e below.\n"},"deleteCertificate":{"type":"boolean","description":"Whether to delete the certificate.\n"},"domain":{"type":"string","description":"User-defined domain name\n","willReplaceOnChanges":true},"force":{"type":"boolean","description":"Whether to force overwrite certificate.\n"},"previousCertId":{"type":"string","description":"The current certificate ID. If the Force value is not true, the OSS Server checks whether the value matches the current certificate ID. If the value does not match, an error is reported.\n"},"status":{"type":"string","description":"Cname status\n"}},"type":"object"}},"alicloud:oss/bucketCnameToken:BucketCnameToken":{"description":"Provides a OSS Bucket Cname Token resource.\n\nThe token used to verify the ownership of the bucket custom domain name.\n\nFor information about OSS Bucket Cname Token and how to use it, see [What is Bucket Cname Token](https://www.alibabacloud.com/help/en/oss/developer-reference/createcnametoken).\n\n\u003e **NOTE:** Available since v1.233.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    bucket: name,\n    storageClass: \"Standard\",\n});\nconst defaultZaWJfG = new alicloud.oss.BucketCnameToken(\"defaultZaWJfG\", {\n    bucket: createBucket.bucket,\n    domain: \"terraform-example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    bucket=name,\n    storage_class=\"Standard\")\ndefault_za_w_jf_g = alicloud.oss.BucketCnameToken(\"defaultZaWJfG\",\n    bucket=create_bucket.bucket,\n    domain=\"terraform-example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        BucketName = name,\n        StorageClass = \"Standard\",\n    });\n\n    var defaultZaWJfG = new AliCloud.Oss.BucketCnameToken(\"defaultZaWJfG\", new()\n    {\n        Bucket = createBucket.BucketName,\n        Domain = \"terraform-example.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tBucket:       pulumi.String(name),\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketCnameToken(ctx, \"defaultZaWJfG\", \u0026oss.BucketCnameTokenArgs{\n\t\t\tBucket: createBucket.Bucket,\n\t\t\tDomain: pulumi.String(\"terraform-example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketCnameToken;\nimport com.pulumi.alicloud.oss.BucketCnameTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .bucket(name)\n            .storageClass(\"Standard\")\n            .build());\n\n        var defaultZaWJfG = new BucketCnameToken(\"defaultZaWJfG\", BucketCnameTokenArgs.builder()\n            .bucket(createBucket.bucket())\n            .domain(\"terraform-example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      bucket: ${name}\n      storageClass: Standard\n  defaultZaWJfG:\n    type: alicloud:oss:BucketCnameToken\n    properties:\n      bucket: ${createBucket.bucket}\n      domain: terraform-example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketCnameToken`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketCnameToken`\" pulumi-lang-go=\"`oss.BucketCnameToken`\" pulumi-lang-python=\"`oss.BucketCnameToken`\" pulumi-lang-yaml=\"`alicloud.oss.BucketCnameToken`\" pulumi-lang-java=\"`alicloud.oss.BucketCnameToken`\"\u003e`alicloud.oss.BucketCnameToken`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketCnameToken`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketCnameToken`\" pulumi-lang-go=\"`oss.BucketCnameToken`\" pulumi-lang-python=\"`oss.BucketCnameToken`\" pulumi-lang-yaml=\"`alicloud.oss.BucketCnameToken`\" pulumi-lang-java=\"`alicloud.oss.BucketCnameToken`\"\u003e`alicloud.oss.BucketCnameToken`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Cname Token can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketCnameToken:BucketCnameToken example \u003cbucket\u003e:\u003cdomain\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the bucket\n"},"domain":{"type":"string","description":"The custom domain\n"},"token":{"type":"string","description":"Token used to verify domain ownership\n"}},"required":["bucket","domain","token"],"inputProperties":{"bucket":{"type":"string","description":"The name of the bucket\n","willReplaceOnChanges":true},"domain":{"type":"string","description":"The custom domain\n","willReplaceOnChanges":true}},"requiredInputs":["bucket","domain"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketCnameToken resources.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket\n","willReplaceOnChanges":true},"domain":{"type":"string","description":"The custom domain\n","willReplaceOnChanges":true},"token":{"type":"string","description":"Token used to verify domain ownership\n"}},"type":"object"}},"alicloud:oss/bucketCors:BucketCors":{"description":"Provides a OSS Bucket Cors resource. Cross-Origin Resource Sharing (CORS) allows web applications to access resources in other regions.\n\nFor information about OSS Bucket Cors and how to use it, see [What is Bucket Cors](https://www.alibabacloud.com/help/en/oss/developer-reference/putbucketcors).\n\n\u003e **NOTE:** Available since v1.223.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Uuid(\"default\", {});\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    storageClass: \"Standard\",\n    bucket: `${name}-${_default.result}`,\n});\nconst defaultBucketCors = new alicloud.oss.BucketCors(\"default\", {\n    bucket: createBucket.bucket,\n    responseVary: true,\n    corsRules: [{\n        allowedMethods: [\"GET\"],\n        allowedOrigins: [\"*\"],\n        allowedHeaders: [\n            \"x-oss-test\",\n            \"x-oss-abc\",\n        ],\n        exposeHeaders: [\"x-oss-request-id\"],\n        maxAgeSeconds: 1000,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Uuid(\"default\")\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    storage_class=\"Standard\",\n    bucket=f\"{name}-{default['result']}\")\ndefault_bucket_cors = alicloud.oss.BucketCors(\"default\",\n    bucket=create_bucket.bucket,\n    response_vary=True,\n    cors_rules=[{\n        \"allowed_methods\": [\"GET\"],\n        \"allowed_origins\": [\"*\"],\n        \"allowed_headers\": [\n            \"x-oss-test\",\n            \"x-oss-abc\",\n        ],\n        \"expose_headers\": [\"x-oss-request-id\"],\n        \"max_age_seconds\": 1000,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Uuid(\"default\");\n\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultBucketCors = new AliCloud.Oss.BucketCors(\"default\", new()\n    {\n        Bucket = createBucket.BucketName,\n        ResponseVary = true,\n        CorsRules = new[]\n        {\n            new AliCloud.Oss.Inputs.BucketCorsCorsRuleArgs\n            {\n                AllowedMethods = new[]\n                {\n                    \"GET\",\n                },\n                AllowedOrigins = new[]\n                {\n                    \"*\",\n                },\n                AllowedHeaders = new[]\n                {\n                    \"x-oss-test\",\n                    \"x-oss-abc\",\n                },\n                ExposeHeaders = new[]\n                {\n                    \"x-oss-request-id\",\n                },\n                MaxAgeSeconds = 1000,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewUuid(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketCors(ctx, \"default\", \u0026oss.BucketCorsArgs{\n\t\t\tBucket:       createBucket.Bucket,\n\t\t\tResponseVary: pulumi.Bool(true),\n\t\t\tCorsRules: oss.BucketCorsCorsRuleArray{\n\t\t\t\t\u0026oss.BucketCorsCorsRuleArgs{\n\t\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowedOrigins: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowedHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"x-oss-test\"),\n\t\t\t\t\t\tpulumi.String(\"x-oss-abc\"),\n\t\t\t\t\t},\n\t\t\t\t\tExposeHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"x-oss-request-id\"),\n\t\t\t\t\t},\n\t\t\t\t\tMaxAgeSeconds: pulumi.Int(1000),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Uuid;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketCors;\nimport com.pulumi.alicloud.oss.BucketCorsArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketCorsCorsRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Uuid(\"default\");\n\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultBucketCors = new BucketCors(\"defaultBucketCors\", BucketCorsArgs.builder()\n            .bucket(createBucket.bucket())\n            .responseVary(true)\n            .corsRules(BucketCorsCorsRuleArgs.builder()\n                .allowedMethods(\"GET\")\n                .allowedOrigins(\"*\")\n                .allowedHeaders(                \n                    \"x-oss-test\",\n                    \"x-oss-abc\")\n                .exposeHeaders(\"x-oss-request-id\")\n                .maxAgeSeconds(1000)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Uuid\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n      bucket: ${name}-${default.result}\n  defaultBucketCors:\n    type: alicloud:oss:BucketCors\n    name: default\n    properties:\n      bucket: ${createBucket.bucket}\n      responseVary: true\n      corsRules:\n        - allowedMethods:\n            - GET\n          allowedOrigins:\n            - '*'\n          allowedHeaders:\n            - x-oss-test\n            - x-oss-abc\n          exposeHeaders:\n            - x-oss-request-id\n          maxAgeSeconds: '1000'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Cors can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketCors:BucketCors example \u003cid\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the Bucket.\n"},"corsRules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketCorsCorsRule:BucketCorsCorsRule"},"description":"The Cross-Origin Resource Sharing (CORS) configuration of the Bucket. See \u003cspan pulumi-lang-nodejs=\"`corsRule`\" pulumi-lang-dotnet=\"`CorsRule`\" pulumi-lang-go=\"`corsRule`\" pulumi-lang-python=\"`cors_rule`\" pulumi-lang-yaml=\"`corsRule`\" pulumi-lang-java=\"`corsRule`\"\u003e`cors_rule`\u003c/span\u003e below.\n"},"responseVary":{"type":"boolean","description":"Specifies whether to return the Vary: Origin header. Valid values: true: returns the Vary: Origin header, regardless of whether the request is a cross-origin request or whether the cross-origin request succeeds. false: does not return the Vary: Origin header. This element is valid only when at least one CORS rule is configured.\n"}},"required":["bucket","corsRules","responseVary"],"inputProperties":{"bucket":{"type":"string","description":"The name of the Bucket.\n","willReplaceOnChanges":true},"corsRules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketCorsCorsRule:BucketCorsCorsRule"},"description":"The Cross-Origin Resource Sharing (CORS) configuration of the Bucket. See \u003cspan pulumi-lang-nodejs=\"`corsRule`\" pulumi-lang-dotnet=\"`CorsRule`\" pulumi-lang-go=\"`corsRule`\" pulumi-lang-python=\"`cors_rule`\" pulumi-lang-yaml=\"`corsRule`\" pulumi-lang-java=\"`corsRule`\"\u003e`cors_rule`\u003c/span\u003e below.\n"},"responseVary":{"type":"boolean","description":"Specifies whether to return the Vary: Origin header. Valid values: true: returns the Vary: Origin header, regardless of whether the request is a cross-origin request or whether the cross-origin request succeeds. false: does not return the Vary: Origin header. This element is valid only when at least one CORS rule is configured.\n"}},"requiredInputs":["bucket","corsRules"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketCors resources.\n","properties":{"bucket":{"type":"string","description":"The name of the Bucket.\n","willReplaceOnChanges":true},"corsRules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketCorsCorsRule:BucketCorsCorsRule"},"description":"The Cross-Origin Resource Sharing (CORS) configuration of the Bucket. See \u003cspan pulumi-lang-nodejs=\"`corsRule`\" pulumi-lang-dotnet=\"`CorsRule`\" pulumi-lang-go=\"`corsRule`\" pulumi-lang-python=\"`cors_rule`\" pulumi-lang-yaml=\"`corsRule`\" pulumi-lang-java=\"`corsRule`\"\u003e`cors_rule`\u003c/span\u003e below.\n"},"responseVary":{"type":"boolean","description":"Specifies whether to return the Vary: Origin header. Valid values: true: returns the Vary: Origin header, regardless of whether the request is a cross-origin request or whether the cross-origin request succeeds. false: does not return the Vary: Origin header. This element is valid only when at least one CORS rule is configured.\n"}},"type":"object"}},"alicloud:oss/bucketDataRedundancyTransition:BucketDataRedundancyTransition":{"description":"Provides a OSS Bucket Data Redundancy Transition resource. Create a storage redundancy transition task to convert local redundant storage(LRS) to zone redundant storage(ZRS).\n\nFor information about OSS Bucket Data Redundancy Transition and how to use it, see [What is Bucket Data Redundancy Transition](https://www.alibabacloud.com/help/en/oss/developer-reference/createbucketdataredundancytransition).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    storageClass: \"Standard\",\n    bucket: `${name}-${_default.result}`,\n});\nconst defaultBucketDataRedundancyTransition = new alicloud.oss.BucketDataRedundancyTransition(\"default\", {bucket: createBucket.bucket});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    storage_class=\"Standard\",\n    bucket=f\"{name}-{default['result']}\")\ndefault_bucket_data_redundancy_transition = alicloud.oss.BucketDataRedundancyTransition(\"default\", bucket=create_bucket.bucket)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultBucketDataRedundancyTransition = new AliCloud.Oss.BucketDataRedundancyTransition(\"default\", new()\n    {\n        Bucket = createBucket.BucketName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketDataRedundancyTransition(ctx, \"default\", \u0026oss.BucketDataRedundancyTransitionArgs{\n\t\t\tBucket: createBucket.Bucket,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketDataRedundancyTransition;\nimport com.pulumi.alicloud.oss.BucketDataRedundancyTransitionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultBucketDataRedundancyTransition = new BucketDataRedundancyTransition(\"defaultBucketDataRedundancyTransition\", BucketDataRedundancyTransitionArgs.builder()\n            .bucket(createBucket.bucket())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n      bucket: ${name}-${default.result}\n  defaultBucketDataRedundancyTransition:\n    type: alicloud:oss:BucketDataRedundancyTransition\n    name: default\n    properties:\n      bucket: ${createBucket.bucket}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Data Redundancy Transition can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketDataRedundancyTransition:BucketDataRedundancyTransition example \u003cbucket\u003e:\u003ctask_id\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"Storage space name.\n"},"createTime":{"type":"string","description":"Stores the creation time of the redundant transformation task.\n"},"status":{"type":"string","description":"Stores the state of the redundant translation task. The values are as follows:  Queueing: in the queue.  Processing: In progress.  Finished: Finished.\n"},"taskId":{"type":"string","description":"Unique identification of the storage redundancy conversion task.\n"}},"required":["bucket","createTime","status","taskId"],"inputProperties":{"bucket":{"type":"string","description":"Storage space name.\n","willReplaceOnChanges":true}},"requiredInputs":["bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketDataRedundancyTransition resources.\n","properties":{"bucket":{"type":"string","description":"Storage space name.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"Stores the creation time of the redundant transformation task.\n"},"status":{"type":"string","description":"Stores the state of the redundant translation task. The values are as follows:  Queueing: in the queue.  Processing: In progress.  Finished: Finished.\n"},"taskId":{"type":"string","description":"Unique identification of the storage redundancy conversion task.\n"}},"type":"object"}},"alicloud:oss/bucketHttpsConfig:BucketHttpsConfig":{"description":"Provides a OSS Bucket Https Config resource.\n\nWhether the bucket can only be accessed with specific TLS versions.\n\nFor information about OSS Bucket Https Config and how to use it, see [What is Bucket Https Config](https://next.api.alibabacloud.com/document/Oss/2019-05-17/PutBucketHttpsConfig).\n\n\u003e **NOTE:** Available since v1.220.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    storageClass: \"Standard\",\n    bucket: `${name}-${_default.result}`,\n});\nconst defaultBucketHttpsConfig = new alicloud.oss.BucketHttpsConfig(\"default\", {\n    tlsVersions: [\"TLSv1.2\"],\n    bucket: createBucket.bucket,\n    enable: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    storage_class=\"Standard\",\n    bucket=f\"{name}-{default['result']}\")\ndefault_bucket_https_config = alicloud.oss.BucketHttpsConfig(\"default\",\n    tls_versions=[\"TLSv1.2\"],\n    bucket=create_bucket.bucket,\n    enable=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultBucketHttpsConfig = new AliCloud.Oss.BucketHttpsConfig(\"default\", new()\n    {\n        TlsVersions = new[]\n        {\n            \"TLSv1.2\",\n        },\n        Bucket = createBucket.BucketName,\n        Enable = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketHttpsConfig(ctx, \"default\", \u0026oss.BucketHttpsConfigArgs{\n\t\t\tTlsVersions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"TLSv1.2\"),\n\t\t\t},\n\t\t\tBucket: createBucket.Bucket,\n\t\t\tEnable: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketHttpsConfig;\nimport com.pulumi.alicloud.oss.BucketHttpsConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultBucketHttpsConfig = new BucketHttpsConfig(\"defaultBucketHttpsConfig\", BucketHttpsConfigArgs.builder()\n            .tlsVersions(\"TLSv1.2\")\n            .bucket(createBucket.bucket())\n            .enable(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n      bucket: ${name}-${default.result}\n  defaultBucketHttpsConfig:\n    type: alicloud:oss:BucketHttpsConfig\n    name: default\n    properties:\n      tlsVersions:\n        - TLSv1.2\n      bucket: ${createBucket.bucket}\n      enable: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketHttpsConfig`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketHttpsConfig`\" pulumi-lang-go=\"`oss.BucketHttpsConfig`\" pulumi-lang-python=\"`oss.BucketHttpsConfig`\" pulumi-lang-yaml=\"`alicloud.oss.BucketHttpsConfig`\" pulumi-lang-java=\"`alicloud.oss.BucketHttpsConfig`\"\u003e`alicloud.oss.BucketHttpsConfig`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketHttpsConfig`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketHttpsConfig`\" pulumi-lang-go=\"`oss.BucketHttpsConfig`\" pulumi-lang-python=\"`oss.BucketHttpsConfig`\" pulumi-lang-yaml=\"`alicloud.oss.BucketHttpsConfig`\" pulumi-lang-java=\"`alicloud.oss.BucketHttpsConfig`\"\u003e`alicloud.oss.BucketHttpsConfig`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Https Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketHttpsConfig:BucketHttpsConfig example \u003cid\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the bucket\n"},"cipherSuit":{"$ref":"#/types/alicloud:oss/BucketHttpsConfigCipherSuit:BucketHttpsConfigCipherSuit","description":"TLS encryption algorithm suite configuration See \u003cspan pulumi-lang-nodejs=\"`cipherSuit`\" pulumi-lang-dotnet=\"`CipherSuit`\" pulumi-lang-go=\"`cipherSuit`\" pulumi-lang-python=\"`cipher_suit`\" pulumi-lang-yaml=\"`cipherSuit`\" pulumi-lang-java=\"`cipherSuit`\"\u003e`cipher_suit`\u003c/span\u003e below.\n"},"enable":{"type":"boolean","description":"Specifies whether to enable TLS version management for the bucket. Valid values: true, false.\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"Specifies the TLS versions allowed to access this buckets.\n"}},"required":["bucket","cipherSuit","enable"],"inputProperties":{"bucket":{"type":"string","description":"The name of the bucket\n","willReplaceOnChanges":true},"cipherSuit":{"$ref":"#/types/alicloud:oss/BucketHttpsConfigCipherSuit:BucketHttpsConfigCipherSuit","description":"TLS encryption algorithm suite configuration See \u003cspan pulumi-lang-nodejs=\"`cipherSuit`\" pulumi-lang-dotnet=\"`CipherSuit`\" pulumi-lang-go=\"`cipherSuit`\" pulumi-lang-python=\"`cipher_suit`\" pulumi-lang-yaml=\"`cipherSuit`\" pulumi-lang-java=\"`cipherSuit`\"\u003e`cipher_suit`\u003c/span\u003e below.\n"},"enable":{"type":"boolean","description":"Specifies whether to enable TLS version management for the bucket. Valid values: true, false.\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"Specifies the TLS versions allowed to access this buckets.\n"}},"requiredInputs":["bucket","enable"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketHttpsConfig resources.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket\n","willReplaceOnChanges":true},"cipherSuit":{"$ref":"#/types/alicloud:oss/BucketHttpsConfigCipherSuit:BucketHttpsConfigCipherSuit","description":"TLS encryption algorithm suite configuration See \u003cspan pulumi-lang-nodejs=\"`cipherSuit`\" pulumi-lang-dotnet=\"`CipherSuit`\" pulumi-lang-go=\"`cipherSuit`\" pulumi-lang-python=\"`cipher_suit`\" pulumi-lang-yaml=\"`cipherSuit`\" pulumi-lang-java=\"`cipherSuit`\"\u003e`cipher_suit`\u003c/span\u003e below.\n"},"enable":{"type":"boolean","description":"Specifies whether to enable TLS version management for the bucket. Valid values: true, false.\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"Specifies the TLS versions allowed to access this buckets.\n"}},"type":"object"}},"alicloud:oss/bucketLogging:BucketLogging":{"description":"Provides a OSS Bucket Logging resource.\n\nAfter you enable and configure logging for a bucket, Object Storage Service (OSS) generates log objects based on a predefined naming convention. This way, access logs are generated and stored in the specified bucket on an hourly basis.\n\nFor information about OSS Bucket Logging and how to use it, see [What is Bucket Logging](https://next.api.alibabacloud.com/document/Oss/2019-05-17/PutBucketLogging).\n\n\u003e **NOTE:** Available since v1.222.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    storageClass: \"Standard\",\n    bucket: \"resource-example-logging-806\",\n});\nconst createLoggingBucket = new alicloud.oss.Bucket(\"CreateLoggingBucket\", {\n    storageClass: \"Standard\",\n    bucket: \"resource-example-logging-153\",\n});\nconst _default = new alicloud.oss.BucketLogging(\"default\", {\n    bucket: createBucket.id,\n    targetBucket: createBucket.id,\n    targetPrefix: \"log/\",\n    loggingRole: \"example-role\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    storage_class=\"Standard\",\n    bucket=\"resource-example-logging-806\")\ncreate_logging_bucket = alicloud.oss.Bucket(\"CreateLoggingBucket\",\n    storage_class=\"Standard\",\n    bucket=\"resource-example-logging-153\")\ndefault = alicloud.oss.BucketLogging(\"default\",\n    bucket=create_bucket.id,\n    target_bucket=create_bucket.id,\n    target_prefix=\"log/\",\n    logging_role=\"example-role\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = \"resource-example-logging-806\",\n    });\n\n    var createLoggingBucket = new AliCloud.Oss.Bucket(\"CreateLoggingBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = \"resource-example-logging-153\",\n    });\n\n    var @default = new AliCloud.Oss.BucketLogging(\"default\", new()\n    {\n        Bucket = createBucket.Id,\n        TargetBucket = createBucket.Id,\n        TargetPrefix = \"log/\",\n        LoggingRole = \"example-role\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.String(\"resource-example-logging-806\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucket(ctx, \"CreateLoggingBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.String(\"resource-example-logging-153\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketLogging(ctx, \"default\", \u0026oss.BucketLoggingArgs{\n\t\t\tBucket:       createBucket.ID(),\n\t\t\tTargetBucket: createBucket.ID(),\n\t\t\tTargetPrefix: pulumi.String(\"log/\"),\n\t\t\tLoggingRole:  pulumi.String(\"example-role\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketLogging;\nimport com.pulumi.alicloud.oss.BucketLoggingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(\"resource-example-logging-806\")\n            .build());\n\n        var createLoggingBucket = new Bucket(\"createLoggingBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(\"resource-example-logging-153\")\n            .build());\n\n        var default_ = new BucketLogging(\"default\", BucketLoggingArgs.builder()\n            .bucket(createBucket.id())\n            .targetBucket(createBucket.id())\n            .targetPrefix(\"log/\")\n            .loggingRole(\"example-role\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n      bucket: resource-example-logging-806\n  createLoggingBucket:\n    type: alicloud:oss:Bucket\n    name: CreateLoggingBucket\n    properties:\n      storageClass: Standard\n      bucket: resource-example-logging-153\n  default:\n    type: alicloud:oss:BucketLogging\n    properties:\n      bucket: ${createBucket.id}\n      targetBucket: ${createBucket.id}\n      targetPrefix: log/\n      loggingRole: example-role\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Logging can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketLogging:BucketLogging example \u003cid\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the bucket\n"},"loggingRole":{"type":"string","description":"Authorization role used for bucket logging\n"},"targetBucket":{"type":"string","description":"The bucket that stores access logs.\n"},"targetPrefix":{"type":"string","description":"The prefix of the saved log objects. This element can be left empty.\n"}},"required":["bucket","targetBucket"],"inputProperties":{"bucket":{"type":"string","description":"The name of the bucket\n","willReplaceOnChanges":true},"loggingRole":{"type":"string","description":"Authorization role used for bucket logging\n"},"targetBucket":{"type":"string","description":"The bucket that stores access logs.\n"},"targetPrefix":{"type":"string","description":"The prefix of the saved log objects. This element can be left empty.\n"}},"requiredInputs":["bucket","targetBucket"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketLogging resources.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket\n","willReplaceOnChanges":true},"loggingRole":{"type":"string","description":"Authorization role used for bucket logging\n"},"targetBucket":{"type":"string","description":"The bucket that stores access logs.\n"},"targetPrefix":{"type":"string","description":"The prefix of the saved log objects. This element can be left empty.\n"}},"type":"object"}},"alicloud:oss/bucketMetaQuery:BucketMetaQuery":{"description":"Provides a OSS Bucket Meta Query resource. Enables the metadata management feature for a bucket.\n\nFor information about OSS Bucket Meta Query and how to use it, see [What is Bucket Meta Query](https://www.alibabacloud.com/help/en/oss/developer-reference/openmetaquery).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    storageClass: \"Standard\",\n    bucket: `${name}-${_default.result}`,\n});\nconst defaultBucketMetaQuery = new alicloud.oss.BucketMetaQuery(\"default\", {bucket: createBucket.bucket});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    storage_class=\"Standard\",\n    bucket=f\"{name}-{default['result']}\")\ndefault_bucket_meta_query = alicloud.oss.BucketMetaQuery(\"default\", bucket=create_bucket.bucket)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultBucketMetaQuery = new AliCloud.Oss.BucketMetaQuery(\"default\", new()\n    {\n        Bucket = createBucket.BucketName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketMetaQuery(ctx, \"default\", \u0026oss.BucketMetaQueryArgs{\n\t\t\tBucket: createBucket.Bucket,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketMetaQuery;\nimport com.pulumi.alicloud.oss.BucketMetaQueryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultBucketMetaQuery = new BucketMetaQuery(\"defaultBucketMetaQuery\", BucketMetaQueryArgs.builder()\n            .bucket(createBucket.bucket())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n      bucket: ${name}-${default.result}\n  defaultBucketMetaQuery:\n    type: alicloud:oss:BucketMetaQuery\n    name: default\n    properties:\n      bucket: ${createBucket.bucket}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Meta Query can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketMetaQuery:BucketMetaQuery example \u003cid\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n"},"createTime":{"type":"string","description":"The creation time of the metadata index database. The format is mm:ss + TIMEZONE in the YYYY-MM-DDTHH format of RFC 3339. Where YYYY-MM-DD indicates the year, month and day, T indicates the beginning of the time element, HH:mm:ss indicates the hour, minute and second, and TIMEZONE indicates the time zone.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"required":["bucket","createTime","status"],"inputProperties":{"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true}},"requiredInputs":["bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketMetaQuery resources.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the metadata index database. The format is mm:ss + TIMEZONE in the YYYY-MM-DDTHH format of RFC 3339. Where YYYY-MM-DD indicates the year, month and day, T indicates the beginning of the time element, HH:mm:ss indicates the hour, minute and second, and TIMEZONE indicates the time zone.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object"}},"alicloud:oss/bucketObject:BucketObject":{"description":"Provides a resource to put a object(content or file) to a oss bucket.\n\n## Example Usage\n\n### Uploading a file to a bucket\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: `terraform-example-${_default.result}`});\nconst defaultBucketAcl = new alicloud.oss.BucketAcl(\"default\", {\n    bucket: defaultBucket.bucket,\n    acl: \"private\",\n});\nconst defaultBucketObject = new alicloud.oss.BucketObject(\"default\", {\n    bucket: defaultBucket.bucket,\n    key: \"example_key\",\n    source: \"./main.tf\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=f\"terraform-example-{default['result']}\")\ndefault_bucket_acl = alicloud.oss.BucketAcl(\"default\",\n    bucket=default_bucket.bucket,\n    acl=\"private\")\ndefault_bucket_object = alicloud.oss.BucketObject(\"default\",\n    bucket=default_bucket.bucket,\n    key=\"example_key\",\n    source=\"./main.tf\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = $\"terraform-example-{@default.Result}\",\n    });\n\n    var defaultBucketAcl = new AliCloud.Oss.BucketAcl(\"default\", new()\n    {\n        Bucket = defaultBucket.BucketName,\n        Acl = \"private\",\n    });\n\n    var defaultBucketObject = new AliCloud.Oss.BucketObject(\"default\", new()\n    {\n        Bucket = defaultBucket.BucketName,\n        Key = \"example_key\",\n        Source = \"./main.tf\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"default\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: defaultBucket.Bucket,\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketObject(ctx, \"default\", \u0026oss.BucketObjectArgs{\n\t\t\tBucket: defaultBucket.Bucket,\n\t\t\tKey:    pulumi.String(\"example_key\"),\n\t\t\tSource: pulumi.String(\"./main.tf\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport com.pulumi.alicloud.oss.BucketObject;\nimport com.pulumi.alicloud.oss.BucketObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-%s\", default_.result()))\n            .build());\n\n        var defaultBucketAcl = new BucketAcl(\"defaultBucketAcl\", BucketAclArgs.builder()\n            .bucket(defaultBucket.bucket())\n            .acl(\"private\")\n            .build());\n\n        var defaultBucketObject = new BucketObject(\"defaultBucketObject\", BucketObjectArgs.builder()\n            .bucket(defaultBucket.bucket())\n            .key(\"example_key\")\n            .source(\"./main.tf\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket: terraform-example-${default.result}\n  defaultBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: default\n    properties:\n      bucket: ${defaultBucket.bucket}\n      acl: private\n  defaultBucketObject:\n    type: alicloud:oss:BucketObject\n    name: default\n    properties:\n      bucket: ${defaultBucket.bucket}\n      key: example_key\n      source: ./main.tf\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Uploading a content to a bucket\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {bucket: `terraform-example-${_default.result}`});\nconst defaultBucketAcl = new alicloud.oss.BucketAcl(\"default\", {\n    bucket: defaultBucket.bucket,\n    acl: \"private\",\n});\nconst defaultBucketObject = new alicloud.oss.BucketObject(\"default\", {\n    bucket: defaultBucket.bucket,\n    key: \"example_key\",\n    content: \"the content that you want to upload.\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_bucket = alicloud.oss.Bucket(\"default\", bucket=f\"terraform-example-{default['result']}\")\ndefault_bucket_acl = alicloud.oss.BucketAcl(\"default\",\n    bucket=default_bucket.bucket,\n    acl=\"private\")\ndefault_bucket_object = alicloud.oss.BucketObject(\"default\",\n    bucket=default_bucket.bucket,\n    key=\"example_key\",\n    content=\"the content that you want to upload.\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\", new()\n    {\n        BucketName = $\"terraform-example-{@default.Result}\",\n    });\n\n    var defaultBucketAcl = new AliCloud.Oss.BucketAcl(\"default\", new()\n    {\n        Bucket = defaultBucket.BucketName,\n        Acl = \"private\",\n    });\n\n    var defaultBucketObject = new AliCloud.Oss.BucketObject(\"default\", new()\n    {\n        Bucket = defaultBucket.BucketName,\n        Key = \"example_key\",\n        Content = \"the content that you want to upload.\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketAcl(ctx, \"default\", \u0026oss.BucketAclArgs{\n\t\t\tBucket: defaultBucket.Bucket,\n\t\t\tAcl:    pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketObject(ctx, \"default\", \u0026oss.BucketObjectArgs{\n\t\t\tBucket:  defaultBucket.Bucket,\n\t\t\tKey:     pulumi.String(\"example_key\"),\n\t\t\tContent: pulumi.String(\"the content that you want to upload.\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketAcl;\nimport com.pulumi.alicloud.oss.BucketAclArgs;\nimport com.pulumi.alicloud.oss.BucketObject;\nimport com.pulumi.alicloud.oss.BucketObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\", BucketArgs.builder()\n            .bucket(String.format(\"terraform-example-%s\", default_.result()))\n            .build());\n\n        var defaultBucketAcl = new BucketAcl(\"defaultBucketAcl\", BucketAclArgs.builder()\n            .bucket(defaultBucket.bucket())\n            .acl(\"private\")\n            .build());\n\n        var defaultBucketObject = new BucketObject(\"defaultBucketObject\", BucketObjectArgs.builder()\n            .bucket(defaultBucket.bucket())\n            .key(\"example_key\")\n            .content(\"the content that you want to upload.\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n    properties:\n      bucket: terraform-example-${default.result}\n  defaultBucketAcl:\n    type: alicloud:oss:BucketAcl\n    name: default\n    properties:\n      bucket: ${defaultBucket.bucket}\n      acl: private\n  defaultBucketObject:\n    type: alicloud:oss:BucketObject\n    name: default\n    properties:\n      bucket: ${defaultBucket.bucket}\n      key: example_key\n      content: the content that you want to upload.\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"acl":{"type":"string","description":"The [canned ACL](https://www.alibabacloud.com/help/doc-detail/52284.htm) to apply. Defaults to \"private\".\n"},"bucket":{"type":"string","description":"The name of the bucket to put the file in.\n"},"cacheControl":{"type":"string","description":"Specifies caching behavior along the request/reply chain. Read [RFC2616 Cache-Control](https://www.ietf.org/rfc/rfc2616.txt) for further details.\n"},"content":{"type":"string","description":"The literal content being uploaded to the bucket.\n"},"contentDisposition":{"type":"string","description":"Specifies presentational information for the object. Read [RFC2616 Content-Disposition](https://www.ietf.org/rfc/rfc2616.txt) for further details.\n"},"contentEncoding":{"type":"string","description":"Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [RFC2616 Content-Encoding](https://www.ietf.org/rfc/rfc2616.txt) for further details.\n"},"contentLength":{"type":"string","description":"the content length of request.\n"},"contentMd5":{"type":"string","description":"The MD5 value of the content. Read [MD5](https://www.alibabacloud.com/help/doc-detail/31978.htm) for computing method.\n"},"contentType":{"type":"string","description":"A standard MIME type describing the format of the object data, e.g. application/octet-stream. All Valid MIME Types are valid for this input.\n"},"etag":{"type":"string","description":"the ETag generated for the object (an MD5 sum of the object content).\n"},"expires":{"type":"string","description":"Specifies expire date for the the request/response. Read [RFC2616 Expires](https://www.ietf.org/rfc/rfc2616.txt) for further details.\n"},"key":{"type":"string","description":"The name of the object once it is in the bucket.\n"},"kmsKeyId":{"type":"string","description":"Specifies the primary key managed by KMS. This parameter is valid when the value of \u003cspan pulumi-lang-nodejs=\"`serverSideEncryption`\" pulumi-lang-dotnet=\"`ServerSideEncryption`\" pulumi-lang-go=\"`serverSideEncryption`\" pulumi-lang-python=\"`server_side_encryption`\" pulumi-lang-yaml=\"`serverSideEncryption`\" pulumi-lang-java=\"`serverSideEncryption`\"\u003e`server_side_encryption`\u003c/span\u003e is set to KMS.\n\nEither \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e must be provided to specify the bucket content.\nThese two arguments are mutually-exclusive.\n"},"serverSideEncryption":{"type":"string","description":"Specifies server-side encryption of the object in OSS. Valid values are `AES256`, `KMS`. Default value is `AES256`.\n"},"source":{"type":"string","description":"The path to the source file being uploaded to the bucket.\n"},"versionId":{"type":"string","description":"A unique version ID value for the object, if bucket versioning is enabled.\n"}},"required":["bucket","contentLength","contentType","etag","key","versionId"],"inputProperties":{"acl":{"type":"string","description":"The [canned ACL](https://www.alibabacloud.com/help/doc-detail/52284.htm) to apply. Defaults to \"private\".\n"},"bucket":{"type":"string","description":"The name of the bucket to put the file in.\n","willReplaceOnChanges":true},"cacheControl":{"type":"string","description":"Specifies caching behavior along the request/reply chain. Read [RFC2616 Cache-Control](https://www.ietf.org/rfc/rfc2616.txt) for further details.\n"},"content":{"type":"string","description":"The literal content being uploaded to the bucket.\n"},"contentDisposition":{"type":"string","description":"Specifies presentational information for the object. Read [RFC2616 Content-Disposition](https://www.ietf.org/rfc/rfc2616.txt) for further details.\n"},"contentEncoding":{"type":"string","description":"Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [RFC2616 Content-Encoding](https://www.ietf.org/rfc/rfc2616.txt) for further details.\n"},"contentMd5":{"type":"string","description":"The MD5 value of the content. Read [MD5](https://www.alibabacloud.com/help/doc-detail/31978.htm) for computing method.\n"},"contentType":{"type":"string","description":"A standard MIME type describing the format of the object data, e.g. application/octet-stream. All Valid MIME Types are valid for this input.\n"},"expires":{"type":"string","description":"Specifies expire date for the the request/response. Read [RFC2616 Expires](https://www.ietf.org/rfc/rfc2616.txt) for further details.\n"},"key":{"type":"string","description":"The name of the object once it is in the bucket.\n","willReplaceOnChanges":true},"kmsKeyId":{"type":"string","description":"Specifies the primary key managed by KMS. This parameter is valid when the value of \u003cspan pulumi-lang-nodejs=\"`serverSideEncryption`\" pulumi-lang-dotnet=\"`ServerSideEncryption`\" pulumi-lang-go=\"`serverSideEncryption`\" pulumi-lang-python=\"`server_side_encryption`\" pulumi-lang-yaml=\"`serverSideEncryption`\" pulumi-lang-java=\"`serverSideEncryption`\"\u003e`server_side_encryption`\u003c/span\u003e is set to KMS.\n\nEither \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e must be provided to specify the bucket content.\nThese two arguments are mutually-exclusive.\n"},"serverSideEncryption":{"type":"string","description":"Specifies server-side encryption of the object in OSS. Valid values are `AES256`, `KMS`. Default value is `AES256`.\n"},"source":{"type":"string","description":"The path to the source file being uploaded to the bucket.\n"}},"requiredInputs":["bucket","key"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketObject resources.\n","properties":{"acl":{"type":"string","description":"The [canned ACL](https://www.alibabacloud.com/help/doc-detail/52284.htm) to apply. Defaults to \"private\".\n"},"bucket":{"type":"string","description":"The name of the bucket to put the file in.\n","willReplaceOnChanges":true},"cacheControl":{"type":"string","description":"Specifies caching behavior along the request/reply chain. Read [RFC2616 Cache-Control](https://www.ietf.org/rfc/rfc2616.txt) for further details.\n"},"content":{"type":"string","description":"The literal content being uploaded to the bucket.\n"},"contentDisposition":{"type":"string","description":"Specifies presentational information for the object. Read [RFC2616 Content-Disposition](https://www.ietf.org/rfc/rfc2616.txt) for further details.\n"},"contentEncoding":{"type":"string","description":"Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [RFC2616 Content-Encoding](https://www.ietf.org/rfc/rfc2616.txt) for further details.\n"},"contentLength":{"type":"string","description":"the content length of request.\n"},"contentMd5":{"type":"string","description":"The MD5 value of the content. Read [MD5](https://www.alibabacloud.com/help/doc-detail/31978.htm) for computing method.\n"},"contentType":{"type":"string","description":"A standard MIME type describing the format of the object data, e.g. application/octet-stream. All Valid MIME Types are valid for this input.\n"},"etag":{"type":"string","description":"the ETag generated for the object (an MD5 sum of the object content).\n"},"expires":{"type":"string","description":"Specifies expire date for the the request/response. Read [RFC2616 Expires](https://www.ietf.org/rfc/rfc2616.txt) for further details.\n"},"key":{"type":"string","description":"The name of the object once it is in the bucket.\n","willReplaceOnChanges":true},"kmsKeyId":{"type":"string","description":"Specifies the primary key managed by KMS. This parameter is valid when the value of \u003cspan pulumi-lang-nodejs=\"`serverSideEncryption`\" pulumi-lang-dotnet=\"`ServerSideEncryption`\" pulumi-lang-go=\"`serverSideEncryption`\" pulumi-lang-python=\"`server_side_encryption`\" pulumi-lang-yaml=\"`serverSideEncryption`\" pulumi-lang-java=\"`serverSideEncryption`\"\u003e`server_side_encryption`\u003c/span\u003e is set to KMS.\n\nEither \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e must be provided to specify the bucket content.\nThese two arguments are mutually-exclusive.\n"},"serverSideEncryption":{"type":"string","description":"Specifies server-side encryption of the object in OSS. Valid values are `AES256`, `KMS`. Default value is `AES256`.\n"},"source":{"type":"string","description":"The path to the source file being uploaded to the bucket.\n"},"versionId":{"type":"string","description":"A unique version ID value for the object, if bucket versioning is enabled.\n"}},"type":"object"}},"alicloud:oss/bucketOverwriteConfig:BucketOverwriteConfig":{"description":"Provides a OSS Bucket Overwrite Config resource.\n\nBucket Overwrite Configuration.\n\nFor information about OSS Bucket Overwrite Config and how to use it, see [What is Bucket Overwrite Config](https://next.api.alibabacloud.com/document/Oss/2019-05-17/PutBucketOverwriteConfig).\n\n\u003e **NOTE:** Available since v1.271.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultrdrM3m = new alicloud.oss.Bucket(\"defaultrdrM3m\", {storageClass: \"Standard\"});\nconst _default = new alicloud.oss.BucketOverwriteConfig(\"default\", {\n    bucket: defaultrdrM3m.id,\n    rules: [\n        {\n            id: \"rule1\",\n            action: \"forbid\",\n            prefix: \"rule1-prefix/\",\n            suffix: \"rule1-suffix/\",\n            principals: {\n                principals: [\n                    \"a\",\n                    \"b\",\n                    \"c\",\n                ],\n            },\n        },\n        {\n            id: \"rule2\",\n            action: \"forbid\",\n            prefix: \"rule2-prefix/\",\n            suffix: \"rule2-suffix/\",\n            principals: {\n                principals: [\n                    \"d\",\n                    \"e\",\n                    \"f\",\n                ],\n            },\n        },\n        {\n            id: \"rule3\",\n            action: \"forbid\",\n            prefix: \"rule3-prefix/\",\n            suffix: \"rule3-suffix/\",\n            principals: {\n                principals: [\n                    \"1\",\n                    \"2\",\n                    \"3\",\n                ],\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaultrdr_m3m = alicloud.oss.Bucket(\"defaultrdrM3m\", storage_class=\"Standard\")\ndefault = alicloud.oss.BucketOverwriteConfig(\"default\",\n    bucket=defaultrdr_m3m.id,\n    rules=[\n        {\n            \"id\": \"rule1\",\n            \"action\": \"forbid\",\n            \"prefix\": \"rule1-prefix/\",\n            \"suffix\": \"rule1-suffix/\",\n            \"principals\": {\n                \"principals\": [\n                    \"a\",\n                    \"b\",\n                    \"c\",\n                ],\n            },\n        },\n        {\n            \"id\": \"rule2\",\n            \"action\": \"forbid\",\n            \"prefix\": \"rule2-prefix/\",\n            \"suffix\": \"rule2-suffix/\",\n            \"principals\": {\n                \"principals\": [\n                    \"d\",\n                    \"e\",\n                    \"f\",\n                ],\n            },\n        },\n        {\n            \"id\": \"rule3\",\n            \"action\": \"forbid\",\n            \"prefix\": \"rule3-prefix/\",\n            \"suffix\": \"rule3-suffix/\",\n            \"principals\": {\n                \"principals\": [\n                    \"1\",\n                    \"2\",\n                    \"3\",\n                ],\n            },\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultrdrM3m = new AliCloud.Oss.Bucket(\"defaultrdrM3m\", new()\n    {\n        StorageClass = \"Standard\",\n    });\n\n    var @default = new AliCloud.Oss.BucketOverwriteConfig(\"default\", new()\n    {\n        Bucket = defaultrdrM3m.Id,\n        Rules = new[]\n        {\n            new AliCloud.Oss.Inputs.BucketOverwriteConfigRuleArgs\n            {\n                Id = \"rule1\",\n                Action = \"forbid\",\n                Prefix = \"rule1-prefix/\",\n                Suffix = \"rule1-suffix/\",\n                Principals = new AliCloud.Oss.Inputs.BucketOverwriteConfigRulePrincipalsArgs\n                {\n                    Principals = new[]\n                    {\n                        \"a\",\n                        \"b\",\n                        \"c\",\n                    },\n                },\n            },\n            new AliCloud.Oss.Inputs.BucketOverwriteConfigRuleArgs\n            {\n                Id = \"rule2\",\n                Action = \"forbid\",\n                Prefix = \"rule2-prefix/\",\n                Suffix = \"rule2-suffix/\",\n                Principals = new AliCloud.Oss.Inputs.BucketOverwriteConfigRulePrincipalsArgs\n                {\n                    Principals = new[]\n                    {\n                        \"d\",\n                        \"e\",\n                        \"f\",\n                    },\n                },\n            },\n            new AliCloud.Oss.Inputs.BucketOverwriteConfigRuleArgs\n            {\n                Id = \"rule3\",\n                Action = \"forbid\",\n                Prefix = \"rule3-prefix/\",\n                Suffix = \"rule3-suffix/\",\n                Principals = new AliCloud.Oss.Inputs.BucketOverwriteConfigRulePrincipalsArgs\n                {\n                    Principals = new[]\n                    {\n                        \"1\",\n                        \"2\",\n                        \"3\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultrdrM3m, err := oss.NewBucket(ctx, \"defaultrdrM3m\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketOverwriteConfig(ctx, \"default\", \u0026oss.BucketOverwriteConfigArgs{\n\t\t\tBucket: defaultrdrM3m.ID(),\n\t\t\tRules: oss.BucketOverwriteConfigRuleArray{\n\t\t\t\t\u0026oss.BucketOverwriteConfigRuleArgs{\n\t\t\t\t\tId:     pulumi.String(\"rule1\"),\n\t\t\t\t\tAction: pulumi.String(\"forbid\"),\n\t\t\t\t\tPrefix: pulumi.String(\"rule1-prefix/\"),\n\t\t\t\t\tSuffix: pulumi.String(\"rule1-suffix/\"),\n\t\t\t\t\tPrincipals: \u0026oss.BucketOverwriteConfigRulePrincipalsArgs{\n\t\t\t\t\t\tPrincipals: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"a\"),\n\t\t\t\t\t\t\tpulumi.String(\"b\"),\n\t\t\t\t\t\t\tpulumi.String(\"c\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026oss.BucketOverwriteConfigRuleArgs{\n\t\t\t\t\tId:     pulumi.String(\"rule2\"),\n\t\t\t\t\tAction: pulumi.String(\"forbid\"),\n\t\t\t\t\tPrefix: pulumi.String(\"rule2-prefix/\"),\n\t\t\t\t\tSuffix: pulumi.String(\"rule2-suffix/\"),\n\t\t\t\t\tPrincipals: \u0026oss.BucketOverwriteConfigRulePrincipalsArgs{\n\t\t\t\t\t\tPrincipals: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"d\"),\n\t\t\t\t\t\t\tpulumi.String(\"e\"),\n\t\t\t\t\t\t\tpulumi.String(\"f\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026oss.BucketOverwriteConfigRuleArgs{\n\t\t\t\t\tId:     pulumi.String(\"rule3\"),\n\t\t\t\t\tAction: pulumi.String(\"forbid\"),\n\t\t\t\t\tPrefix: pulumi.String(\"rule3-prefix/\"),\n\t\t\t\t\tSuffix: pulumi.String(\"rule3-suffix/\"),\n\t\t\t\t\tPrincipals: \u0026oss.BucketOverwriteConfigRulePrincipalsArgs{\n\t\t\t\t\t\tPrincipals: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\t\t\t\tpulumi.String(\"3\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketOverwriteConfig;\nimport com.pulumi.alicloud.oss.BucketOverwriteConfigArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketOverwriteConfigRuleArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketOverwriteConfigRulePrincipalsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultrdrM3m = new Bucket(\"defaultrdrM3m\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .build());\n\n        var default_ = new BucketOverwriteConfig(\"default\", BucketOverwriteConfigArgs.builder()\n            .bucket(defaultrdrM3m.id())\n            .rules(            \n                BucketOverwriteConfigRuleArgs.builder()\n                    .id(\"rule1\")\n                    .action(\"forbid\")\n                    .prefix(\"rule1-prefix/\")\n                    .suffix(\"rule1-suffix/\")\n                    .principals(BucketOverwriteConfigRulePrincipalsArgs.builder()\n                        .principals(                        \n                            \"a\",\n                            \"b\",\n                            \"c\")\n                        .build())\n                    .build(),\n                BucketOverwriteConfigRuleArgs.builder()\n                    .id(\"rule2\")\n                    .action(\"forbid\")\n                    .prefix(\"rule2-prefix/\")\n                    .suffix(\"rule2-suffix/\")\n                    .principals(BucketOverwriteConfigRulePrincipalsArgs.builder()\n                        .principals(                        \n                            \"d\",\n                            \"e\",\n                            \"f\")\n                        .build())\n                    .build(),\n                BucketOverwriteConfigRuleArgs.builder()\n                    .id(\"rule3\")\n                    .action(\"forbid\")\n                    .prefix(\"rule3-prefix/\")\n                    .suffix(\"rule3-suffix/\")\n                    .principals(BucketOverwriteConfigRulePrincipalsArgs.builder()\n                        .principals(                        \n                            \"1\",\n                            \"2\",\n                            \"3\")\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultrdrM3m:\n    type: alicloud:oss:Bucket\n    properties:\n      storageClass: Standard\n  default:\n    type: alicloud:oss:BucketOverwriteConfig\n    properties:\n      bucket: ${defaultrdrM3m.id}\n      rules:\n        - id: rule1\n          action: forbid\n          prefix: rule1-prefix/\n          suffix: rule1-suffix/\n          principals:\n            principals:\n              - a\n              - b\n              - c\n        - id: rule2\n          action: forbid\n          prefix: rule2-prefix/\n          suffix: rule2-suffix/\n          principals:\n            principals:\n              - d\n              - e\n              - f\n        - id: rule3\n          action: forbid\n          prefix: rule3-prefix/\n          suffix: rule3-suffix/\n          principals:\n            principals:\n              - '1'\n              - '2'\n              - '3'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Overwrite Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketOverwriteConfig:BucketOverwriteConfig example \u003cbucket\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the bucket\n"},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketOverwriteConfigRule:BucketOverwriteConfigRule"},"description":"Forbid overwrite rule See \u003cspan pulumi-lang-nodejs=\"`rule`\" pulumi-lang-dotnet=\"`Rule`\" pulumi-lang-go=\"`rule`\" pulumi-lang-python=\"`rule`\" pulumi-lang-yaml=\"`rule`\" pulumi-lang-java=\"`rule`\"\u003e`rule`\u003c/span\u003e below.\n"}},"required":["bucket"],"inputProperties":{"bucket":{"type":"string","description":"The name of the bucket\n","willReplaceOnChanges":true},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketOverwriteConfigRule:BucketOverwriteConfigRule"},"description":"Forbid overwrite rule See \u003cspan pulumi-lang-nodejs=\"`rule`\" pulumi-lang-dotnet=\"`Rule`\" pulumi-lang-go=\"`rule`\" pulumi-lang-python=\"`rule`\" pulumi-lang-yaml=\"`rule`\" pulumi-lang-java=\"`rule`\"\u003e`rule`\u003c/span\u003e below.\n"}},"requiredInputs":["bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketOverwriteConfig resources.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket\n","willReplaceOnChanges":true},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketOverwriteConfigRule:BucketOverwriteConfigRule"},"description":"Forbid overwrite rule See \u003cspan pulumi-lang-nodejs=\"`rule`\" pulumi-lang-dotnet=\"`Rule`\" pulumi-lang-go=\"`rule`\" pulumi-lang-python=\"`rule`\" pulumi-lang-yaml=\"`rule`\" pulumi-lang-java=\"`rule`\"\u003e`rule`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:oss/bucketPolicy:BucketPolicy":{"description":"Provides a OSS Bucket Policy resource.  Authorization policy of a bucket.\n\nFor information about OSS Bucket Policy and how to use it, see [What is Bucket Policy](https://www.alibabacloud.com/help/en/oss/user-guide/use-bucket-policy-to-grant-permission-to-access-oss).\n\n\u003e **NOTE:** Available since v1.220.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    storageClass: \"Standard\",\n    bucket: `${name}-${_default.result}`,\n});\nconst defaultBucketPolicy = new alicloud.oss.BucketPolicy(\"default\", {\n    policy: JSON.stringify({\n        Version: \"1\",\n        Statement: [{\n            Action: [\n                \"oss:PutObject\",\n                \"oss:GetObject\",\n            ],\n            Effect: \"Deny\",\n            Principal: [\"1234567890\"],\n            Resource: [\"acs:oss:*:1234567890:*/*\"],\n        }],\n    }),\n    bucket: createBucket.bucket,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    storage_class=\"Standard\",\n    bucket=f\"{name}-{default['result']}\")\ndefault_bucket_policy = alicloud.oss.BucketPolicy(\"default\",\n    policy=json.dumps({\n        \"Version\": \"1\",\n        \"Statement\": [{\n            \"Action\": [\n                \"oss:PutObject\",\n                \"oss:GetObject\",\n            ],\n            \"Effect\": \"Deny\",\n            \"Principal\": [\"1234567890\"],\n            \"Resource\": [\"acs:oss:*:1234567890:*/*\"],\n        }],\n    }),\n    bucket=create_bucket.bucket)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultBucketPolicy = new AliCloud.Oss.BucketPolicy(\"default\", new()\n    {\n        Policy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Version\"] = \"1\",\n            [\"Statement\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"Action\"] = new[]\n                    {\n                        \"oss:PutObject\",\n                        \"oss:GetObject\",\n                    },\n                    [\"Effect\"] = \"Deny\",\n                    [\"Principal\"] = new[]\n                    {\n                        \"1234567890\",\n                    },\n                    [\"Resource\"] = new[]\n                    {\n                        \"acs:oss:*:1234567890:*/*\",\n                    },\n                },\n            },\n        }),\n        Bucket = createBucket.BucketName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"1\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"oss:PutObject\",\n\t\t\t\t\t\t\"oss:GetObject\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Deny\",\n\t\t\t\t\t\"Principal\": []string{\n\t\t\t\t\t\t\"1234567890\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\"acs:oss:*:1234567890:*/*\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = oss.NewBucketPolicy(ctx, \"default\", \u0026oss.BucketPolicyArgs{\n\t\t\tPolicy: pulumi.String(json0),\n\t\t\tBucket: createBucket.Bucket,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketPolicy;\nimport com.pulumi.alicloud.oss.BucketPolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultBucketPolicy = new BucketPolicy(\"defaultBucketPolicy\", BucketPolicyArgs.builder()\n            .policy(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Version\", \"1\"),\n                    jsonProperty(\"Statement\", jsonArray(jsonObject(\n                        jsonProperty(\"Action\", jsonArray(\n                            \"oss:PutObject\", \n                            \"oss:GetObject\"\n                        )),\n                        jsonProperty(\"Effect\", \"Deny\"),\n                        jsonProperty(\"Principal\", jsonArray(\"1234567890\")),\n                        jsonProperty(\"Resource\", jsonArray(\"acs:oss:*:1234567890:*/*\"))\n                    )))\n                )))\n            .bucket(createBucket.bucket())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n      bucket: ${name}-${default.result}\n  defaultBucketPolicy:\n    type: alicloud:oss:BucketPolicy\n    name: default\n    properties:\n      policy:\n        fn::toJSON:\n          Version: '1'\n          Statement:\n            - Action:\n                - oss:PutObject\n                - oss:GetObject\n              Effect: Deny\n              Principal:\n                - '1234567890'\n              Resource:\n                - acs:oss:*:1234567890:*/*\n      bucket: ${createBucket.bucket}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketPolicy:BucketPolicy example \u003cid\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the Bucket.\n"},"policy":{"type":"string","description":"Json-formatted authorization policies for buckets.\n"}},"required":["bucket","policy"],"inputProperties":{"bucket":{"type":"string","description":"The name of the Bucket.\n","willReplaceOnChanges":true},"policy":{"type":"string","description":"Json-formatted authorization policies for buckets.\n"}},"requiredInputs":["bucket","policy"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketPolicy resources.\n","properties":{"bucket":{"type":"string","description":"The name of the Bucket.\n","willReplaceOnChanges":true},"policy":{"type":"string","description":"Json-formatted authorization policies for buckets.\n"}},"type":"object"}},"alicloud:oss/bucketPublicAccessBlock:BucketPublicAccessBlock":{"description":"Provides a OSS Bucket Public Access Block resource. Blocking public access at the bucket-level.\n\nFor information about OSS Bucket Public Access Block and how to use it, see [What is Bucket Public Access Block](https://www.alibabacloud.com/help/en/oss/developer-reference/putbucketpublicaccessblock).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    storageClass: \"Standard\",\n    bucket: `${name}-${_default.result}`,\n});\nconst defaultBucketPublicAccessBlock = new alicloud.oss.BucketPublicAccessBlock(\"default\", {\n    bucket: createBucket.bucket,\n    blockPublicAccess: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    storage_class=\"Standard\",\n    bucket=f\"{name}-{default['result']}\")\ndefault_bucket_public_access_block = alicloud.oss.BucketPublicAccessBlock(\"default\",\n    bucket=create_bucket.bucket,\n    block_public_access=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultBucketPublicAccessBlock = new AliCloud.Oss.BucketPublicAccessBlock(\"default\", new()\n    {\n        Bucket = createBucket.BucketName,\n        BlockPublicAccess = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketPublicAccessBlock(ctx, \"default\", \u0026oss.BucketPublicAccessBlockArgs{\n\t\t\tBucket:            createBucket.Bucket,\n\t\t\tBlockPublicAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketPublicAccessBlock;\nimport com.pulumi.alicloud.oss.BucketPublicAccessBlockArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultBucketPublicAccessBlock = new BucketPublicAccessBlock(\"defaultBucketPublicAccessBlock\", BucketPublicAccessBlockArgs.builder()\n            .bucket(createBucket.bucket())\n            .blockPublicAccess(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n      bucket: ${name}-${default.result}\n  defaultBucketPublicAccessBlock:\n    type: alicloud:oss:BucketPublicAccessBlock\n    name: default\n    properties:\n      bucket: ${createBucket.bucket}\n      blockPublicAccess: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Public Access Block can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketPublicAccessBlock:BucketPublicAccessBlock example \u003cid\u003e\n```\n\n","properties":{"blockPublicAccess":{"type":"boolean","description":"Whether AlibabaCloud OSS should block public bucket policies and ACL for this bucket.\n"},"bucket":{"type":"string","description":"The name of the bucket.\n"}},"required":["blockPublicAccess","bucket"],"inputProperties":{"blockPublicAccess":{"type":"boolean","description":"Whether AlibabaCloud OSS should block public bucket policies and ACL for this bucket.\n"},"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true}},"requiredInputs":["blockPublicAccess","bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketPublicAccessBlock resources.\n","properties":{"blockPublicAccess":{"type":"boolean","description":"Whether AlibabaCloud OSS should block public bucket policies and ACL for this bucket.\n"},"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:oss/bucketReferer:BucketReferer":{"description":"Provides a OSS Bucket Referer resource. Bucket Referer configuration (Hotlink protection).\n\nFor information about OSS Bucket Referer and how to use it, see [What is Bucket Referer](https://www.alibabacloud.com/help/en/oss/user-guide/hotlink-protection).\n\n\u003e **NOTE:** Available since v1.220.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    storageClass: \"Standard\",\n    bucket: `${name}-${_default.result}`,\n});\nconst defaultBucketReferer = new alicloud.oss.BucketReferer(\"default\", {\n    allowEmptyReferer: true,\n    refererBlacklists: [\"*.forbidden.com\"],\n    bucket: createBucket.bucket,\n    truncatePath: false,\n    allowTruncateQueryString: true,\n    refererLists: [\n        \"*.aliyun.com\",\n        \"*.example.com\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    storage_class=\"Standard\",\n    bucket=f\"{name}-{default['result']}\")\ndefault_bucket_referer = alicloud.oss.BucketReferer(\"default\",\n    allow_empty_referer=True,\n    referer_blacklists=[\"*.forbidden.com\"],\n    bucket=create_bucket.bucket,\n    truncate_path=False,\n    allow_truncate_query_string=True,\n    referer_lists=[\n        \"*.aliyun.com\",\n        \"*.example.com\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultBucketReferer = new AliCloud.Oss.BucketReferer(\"default\", new()\n    {\n        AllowEmptyReferer = true,\n        RefererBlacklists = new[]\n        {\n            \"*.forbidden.com\",\n        },\n        Bucket = createBucket.BucketName,\n        TruncatePath = false,\n        AllowTruncateQueryString = true,\n        RefererLists = new[]\n        {\n            \"*.aliyun.com\",\n            \"*.example.com\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketReferer(ctx, \"default\", \u0026oss.BucketRefererArgs{\n\t\t\tAllowEmptyReferer: pulumi.Bool(true),\n\t\t\tRefererBlacklists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"*.forbidden.com\"),\n\t\t\t},\n\t\t\tBucket:                   createBucket.Bucket,\n\t\t\tTruncatePath:             pulumi.Bool(false),\n\t\t\tAllowTruncateQueryString: pulumi.Bool(true),\n\t\t\tRefererLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"*.aliyun.com\"),\n\t\t\t\tpulumi.String(\"*.example.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketReferer;\nimport com.pulumi.alicloud.oss.BucketRefererArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultBucketReferer = new BucketReferer(\"defaultBucketReferer\", BucketRefererArgs.builder()\n            .allowEmptyReferer(true)\n            .refererBlacklists(\"*.forbidden.com\")\n            .bucket(createBucket.bucket())\n            .truncatePath(false)\n            .allowTruncateQueryString(true)\n            .refererLists(            \n                \"*.aliyun.com\",\n                \"*.example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n      bucket: ${name}-${default.result}\n  defaultBucketReferer:\n    type: alicloud:oss:BucketReferer\n    name: default\n    properties:\n      allowEmptyReferer: 'true'\n      refererBlacklists:\n        - '*.forbidden.com'\n      bucket: ${createBucket.bucket}\n      truncatePath: 'false'\n      allowTruncateQueryString: 'true'\n      refererLists:\n        - '*.aliyun.com'\n        - '*.example.com'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Referer can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketReferer:BucketReferer example \u003cid\u003e\n```\n\n","properties":{"allowEmptyReferer":{"type":"boolean","description":"Whether to allow empty Referer request headers.\n"},"allowTruncateQueryString":{"type":"boolean","description":"Specifies whether to truncate the query string in the URL when the Referer is matched. Valid values: true, false.\n"},"bucket":{"type":"string","description":"Name of the Bucket.\n"},"refererBlacklists":{"type":"array","items":{"type":"string"},"description":"The container that holds the Referer blacklist.\n"},"refererLists":{"type":"array","items":{"type":"string"},"description":"The container that holds the Referer whitelist.\n"},"truncatePath":{"type":"boolean","description":"Specifies whether to truncate the path and parts that follow the path in the URL when the Referer is matched. Valid values: true, false. If TruncatePath is set to true, the value of AllowTruncateQueryString must be also true because the query string follows the path component. When the path is truncated, the query string is also truncated.\n"}},"required":["allowEmptyReferer","allowTruncateQueryString","bucket"],"inputProperties":{"allowEmptyReferer":{"type":"boolean","description":"Whether to allow empty Referer request headers.\n"},"allowTruncateQueryString":{"type":"boolean","description":"Specifies whether to truncate the query string in the URL when the Referer is matched. Valid values: true, false.\n"},"bucket":{"type":"string","description":"Name of the Bucket.\n","willReplaceOnChanges":true},"refererBlacklists":{"type":"array","items":{"type":"string"},"description":"The container that holds the Referer blacklist.\n"},"refererLists":{"type":"array","items":{"type":"string"},"description":"The container that holds the Referer whitelist.\n"},"truncatePath":{"type":"boolean","description":"Specifies whether to truncate the path and parts that follow the path in the URL when the Referer is matched. Valid values: true, false. If TruncatePath is set to true, the value of AllowTruncateQueryString must be also true because the query string follows the path component. When the path is truncated, the query string is also truncated.\n"}},"requiredInputs":["allowEmptyReferer","bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketReferer resources.\n","properties":{"allowEmptyReferer":{"type":"boolean","description":"Whether to allow empty Referer request headers.\n"},"allowTruncateQueryString":{"type":"boolean","description":"Specifies whether to truncate the query string in the URL when the Referer is matched. Valid values: true, false.\n"},"bucket":{"type":"string","description":"Name of the Bucket.\n","willReplaceOnChanges":true},"refererBlacklists":{"type":"array","items":{"type":"string"},"description":"The container that holds the Referer blacklist.\n"},"refererLists":{"type":"array","items":{"type":"string"},"description":"The container that holds the Referer whitelist.\n"},"truncatePath":{"type":"boolean","description":"Specifies whether to truncate the path and parts that follow the path in the URL when the Referer is matched. Valid values: true, false. If TruncatePath is set to true, the value of AllowTruncateQueryString must be also true because the query string follows the path component. When the path is truncated, the query string is also truncated.\n"}},"type":"object"}},"alicloud:oss/bucketReplication:BucketReplication":{"description":"Provides an independent replication configuration resource for OSS bucket.\n\nFor information about OSS replication and how to use it, see [What is cross-region replication](https://www.alibabacloud.com/help/doc-detail/31864.html) and [What is same-region replication](https://www.alibabacloud.com/help/doc-detail/254865.html).\n\n\u003e **NOTE:** Available since v1.161.0.\n\n## Example Usage\n\nSet bucket replication configuration\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst bucketSrc = new alicloud.oss.Bucket(\"bucket_src\", {bucket: `example-src-${_default.result}`});\nconst bucketDest = new alicloud.oss.Bucket(\"bucket_dest\", {bucket: `example-dest-${_default.result}`});\nconst role = new alicloud.ram.Role(\"role\", {\n    roleName: `example-role-${_default.result}`,\n    assumeRolePolicyDocument: `\\\\t\\\\t{\n\\\\t\\\\t  \\\\\"Statement\\\\\": [\n\\\\t\\\\t\\\\t{\n\\\\t\\\\t\\\\t  \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n\\\\t\\\\t\\\\t  \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n\\\\t\\\\t\\\\t  \\\\\"Principal\\\\\": {\n\\\\t\\\\t\\\\t\\\\t\\\\\"Service\\\\\": [\n\\\\t\\\\t\\\\t\\\\t  \\\\\"oss.aliyuncs.com\\\\\"\n\\\\t\\\\t\\\\t\\\\t]\n\\\\t\\\\t\\\\t  }\n\\\\t\\\\t\\\\t}\n\\\\t\\\\t  ],\n\\\\t\\\\t  \\\\\"Version\\\\\": \\\\\"1\\\\\"\n\\\\t\\\\t}\n`,\n    description: \"this is a test\",\n    force: true,\n});\nconst policy = new alicloud.ram.Policy(\"policy\", {\n    policyName: `example-policy-${_default.result}`,\n    policyDocument: `\\\\t\\\\t{\n\\\\t\\\\t  \\\\\"Statement\\\\\": [\n\\\\t\\\\t\\\\t{\n\\\\t\\\\t\\\\t  \\\\\"Action\\\\\": [\n\\\\t\\\\t\\\\t\\\\t\\\\\"*\\\\\"\n\\\\t\\\\t\\\\t  ],\n\\\\t\\\\t\\\\t  \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n\\\\t\\\\t\\\\t  \\\\\"Resource\\\\\": [\n\\\\t\\\\t\\\\t\\\\t\\\\\"*\\\\\"\n\\\\t\\\\t\\\\t  ]\n\\\\t\\\\t\\\\t}\n\\\\t\\\\t  ],\n\\\\t\\\\t\\\\t\\\\\"Version\\\\\": \\\\\"1\\\\\"\n\\\\t\\\\t}\n`,\n    description: \"this is a policy test\",\n    force: true,\n});\nconst attach = new alicloud.ram.RolePolicyAttachment(\"attach\", {\n    policyName: policy.policyName,\n    policyType: policy.type,\n    roleName: role.roleName,\n});\nconst key = new alicloud.kms.Key(\"key\", {\n    description: \"Hello KMS\",\n    pendingWindowInDays: 7,\n    status: \"Enabled\",\n});\nconst cross_region_replication = new alicloud.oss.BucketReplication(\"cross-region-replication\", {\n    bucket: bucketSrc.id,\n    action: \"PUT,DELETE\",\n    historicalObjectReplication: \"enabled\",\n    prefixSet: {\n        prefixes: [\n            \"prefix1/\",\n            \"prefix2/\",\n        ],\n    },\n    destination: {\n        bucket: bucketDest.id,\n        location: bucketDest.location,\n    },\n    syncRole: role.roleName,\n    encryptionConfiguration: {\n        replicaKmsKeyId: key.id,\n    },\n    sourceSelectionCriteria: {\n        sseKmsEncryptedObjects: {\n            status: \"Enabled\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nbucket_src = alicloud.oss.Bucket(\"bucket_src\", bucket=f\"example-src-{default['result']}\")\nbucket_dest = alicloud.oss.Bucket(\"bucket_dest\", bucket=f\"example-dest-{default['result']}\")\nrole = alicloud.ram.Role(\"role\",\n    role_name=f\"example-role-{default['result']}\",\n    assume_role_policy_document=\"\"\"\\t\\t{\n\\t\\t  \\\"Statement\\\": [\n\\t\\t\\t{\n\\t\\t\\t  \\\"Action\\\": \\\"sts:AssumeRole\\\",\n\\t\\t\\t  \\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t  \\\"Principal\\\": {\n\\t\\t\\t\\t\\\"Service\\\": [\n\\t\\t\\t\\t  \\\"oss.aliyuncs.com\\\"\n\\t\\t\\t\\t]\n\\t\\t\\t  }\n\\t\\t\\t}\n\\t\\t  ],\n\\t\\t  \\\"Version\\\": \\\"1\\\"\n\\t\\t}\n\"\"\",\n    description=\"this is a test\",\n    force=True)\npolicy = alicloud.ram.Policy(\"policy\",\n    policy_name=f\"example-policy-{default['result']}\",\n    policy_document=\"\"\"\\t\\t{\n\\t\\t  \\\"Statement\\\": [\n\\t\\t\\t{\n\\t\\t\\t  \\\"Action\\\": [\n\\t\\t\\t\\t\\\"*\\\"\n\\t\\t\\t  ],\n\\t\\t\\t  \\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t  \\\"Resource\\\": [\n\\t\\t\\t\\t\\\"*\\\"\n\\t\\t\\t  ]\n\\t\\t\\t}\n\\t\\t  ],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n\"\"\",\n    description=\"this is a policy test\",\n    force=True)\nattach = alicloud.ram.RolePolicyAttachment(\"attach\",\n    policy_name=policy.policy_name,\n    policy_type=policy.type,\n    role_name=role.role_name)\nkey = alicloud.kms.Key(\"key\",\n    description=\"Hello KMS\",\n    pending_window_in_days=7,\n    status=\"Enabled\")\ncross_region_replication = alicloud.oss.BucketReplication(\"cross-region-replication\",\n    bucket=bucket_src.id,\n    action=\"PUT,DELETE\",\n    historical_object_replication=\"enabled\",\n    prefix_set={\n        \"prefixes\": [\n            \"prefix1/\",\n            \"prefix2/\",\n        ],\n    },\n    destination={\n        \"bucket\": bucket_dest.id,\n        \"location\": bucket_dest.location,\n    },\n    sync_role=role.role_name,\n    encryption_configuration={\n        \"replica_kms_key_id\": key.id,\n    },\n    source_selection_criteria={\n        \"sse_kms_encrypted_objects\": {\n            \"status\": \"Enabled\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var bucketSrc = new AliCloud.Oss.Bucket(\"bucket_src\", new()\n    {\n        BucketName = $\"example-src-{@default.Result}\",\n    });\n\n    var bucketDest = new AliCloud.Oss.Bucket(\"bucket_dest\", new()\n    {\n        BucketName = $\"example-dest-{@default.Result}\",\n    });\n\n    var role = new AliCloud.Ram.Role(\"role\", new()\n    {\n        RoleName = $\"example-role-{@default.Result}\",\n        AssumeRolePolicyDocument = @\"\\t\\t{\n\\t\\t  \\\"\"Statement\\\"\": [\n\\t\\t\\t{\n\\t\\t\\t  \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n\\t\\t\\t  \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n\\t\\t\\t  \\\"\"Principal\\\"\": {\n\\t\\t\\t\\t\\\"\"Service\\\"\": [\n\\t\\t\\t\\t  \\\"\"oss.aliyuncs.com\\\"\"\n\\t\\t\\t\\t]\n\\t\\t\\t  }\n\\t\\t\\t}\n\\t\\t  ],\n\\t\\t  \\\"\"Version\\\"\": \\\"\"1\\\"\"\n\\t\\t}\n\",\n        Description = \"this is a test\",\n        Force = true,\n    });\n\n    var policy = new AliCloud.Ram.Policy(\"policy\", new()\n    {\n        PolicyName = $\"example-policy-{@default.Result}\",\n        PolicyDocument = @\"\\t\\t{\n\\t\\t  \\\"\"Statement\\\"\": [\n\\t\\t\\t{\n\\t\\t\\t  \\\"\"Action\\\"\": [\n\\t\\t\\t\\t\\\"\"*\\\"\"\n\\t\\t\\t  ],\n\\t\\t\\t  \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n\\t\\t\\t  \\\"\"Resource\\\"\": [\n\\t\\t\\t\\t\\\"\"*\\\"\"\n\\t\\t\\t  ]\n\\t\\t\\t}\n\\t\\t  ],\n\\t\\t\\t\\\"\"Version\\\"\": \\\"\"1\\\"\"\n\\t\\t}\n\",\n        Description = \"this is a policy test\",\n        Force = true,\n    });\n\n    var attach = new AliCloud.Ram.RolePolicyAttachment(\"attach\", new()\n    {\n        PolicyName = policy.PolicyName,\n        PolicyType = policy.Type,\n        RoleName = role.RoleName,\n    });\n\n    var key = new AliCloud.Kms.Key(\"key\", new()\n    {\n        Description = \"Hello KMS\",\n        PendingWindowInDays = 7,\n        Status = \"Enabled\",\n    });\n\n    var cross_region_replication = new AliCloud.Oss.BucketReplication(\"cross-region-replication\", new()\n    {\n        Bucket = bucketSrc.Id,\n        Action = \"PUT,DELETE\",\n        HistoricalObjectReplication = \"enabled\",\n        PrefixSet = new AliCloud.Oss.Inputs.BucketReplicationPrefixSetArgs\n        {\n            Prefixes = new[]\n            {\n                \"prefix1/\",\n                \"prefix2/\",\n            },\n        },\n        Destination = new AliCloud.Oss.Inputs.BucketReplicationDestinationArgs\n        {\n            Bucket = bucketDest.Id,\n            Location = bucketDest.Location,\n        },\n        SyncRole = role.RoleName,\n        EncryptionConfiguration = new AliCloud.Oss.Inputs.BucketReplicationEncryptionConfigurationArgs\n        {\n            ReplicaKmsKeyId = key.Id,\n        },\n        SourceSelectionCriteria = new AliCloud.Oss.Inputs.BucketReplicationSourceSelectionCriteriaArgs\n        {\n            SseKmsEncryptedObjects = new AliCloud.Oss.Inputs.BucketReplicationSourceSelectionCriteriaSseKmsEncryptedObjectsArgs\n            {\n                Status = \"Enabled\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucketSrc, err := oss.NewBucket(ctx, \"bucket_src\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"example-src-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucketDest, err := oss.NewBucket(ctx, \"bucket_dest\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"example-dest-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole, err := ram.NewRole(ctx, \"role\", \u0026ram.RoleArgs{\n\t\t\tRoleName: pulumi.Sprintf(\"example-role-%v\", _default.Result),\n\t\t\tAssumeRolePolicyDocument: pulumi.String(`\\t\\t{\n\\t\\t  \\\"Statement\\\": [\n\\t\\t\\t{\n\\t\\t\\t  \\\"Action\\\": \\\"sts:AssumeRole\\\",\n\\t\\t\\t  \\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t  \\\"Principal\\\": {\n\\t\\t\\t\\t\\\"Service\\\": [\n\\t\\t\\t\\t  \\\"oss.aliyuncs.com\\\"\n\\t\\t\\t\\t]\n\\t\\t\\t  }\n\\t\\t\\t}\n\\t\\t  ],\n\\t\\t  \\\"Version\\\": \\\"1\\\"\n\\t\\t}\n`),\n\t\t\tDescription: pulumi.String(\"this is a test\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicy, err := ram.NewPolicy(ctx, \"policy\", \u0026ram.PolicyArgs{\n\t\t\tPolicyName: pulumi.Sprintf(\"example-policy-%v\", _default.Result),\n\t\t\tPolicyDocument: pulumi.String(`\\t\\t{\n\\t\\t  \\\"Statement\\\": [\n\\t\\t\\t{\n\\t\\t\\t  \\\"Action\\\": [\n\\t\\t\\t\\t\\\"*\\\"\n\\t\\t\\t  ],\n\\t\\t\\t  \\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t  \\\"Resource\\\": [\n\\t\\t\\t\\t\\\"*\\\"\n\\t\\t\\t  ]\n\\t\\t\\t}\n\\t\\t  ],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n`),\n\t\t\tDescription: pulumi.String(\"this is a policy test\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewRolePolicyAttachment(ctx, \"attach\", \u0026ram.RolePolicyAttachmentArgs{\n\t\t\tPolicyName: policy.PolicyName,\n\t\t\tPolicyType: policy.Type,\n\t\t\tRoleName:   role.RoleName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkey, err := kms.NewKey(ctx, \"key\", \u0026kms.KeyArgs{\n\t\t\tDescription:         pulumi.String(\"Hello KMS\"),\n\t\t\tPendingWindowInDays: pulumi.Int(7),\n\t\t\tStatus:              pulumi.String(\"Enabled\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketReplication(ctx, \"cross-region-replication\", \u0026oss.BucketReplicationArgs{\n\t\t\tBucket:                      bucketSrc.ID(),\n\t\t\tAction:                      pulumi.String(\"PUT,DELETE\"),\n\t\t\tHistoricalObjectReplication: pulumi.String(\"enabled\"),\n\t\t\tPrefixSet: \u0026oss.BucketReplicationPrefixSetArgs{\n\t\t\t\tPrefixes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"prefix1/\"),\n\t\t\t\t\tpulumi.String(\"prefix2/\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestination: \u0026oss.BucketReplicationDestinationArgs{\n\t\t\t\tBucket:   bucketDest.ID(),\n\t\t\t\tLocation: bucketDest.Location,\n\t\t\t},\n\t\t\tSyncRole: role.RoleName,\n\t\t\tEncryptionConfiguration: \u0026oss.BucketReplicationEncryptionConfigurationArgs{\n\t\t\t\tReplicaKmsKeyId: key.ID(),\n\t\t\t},\n\t\t\tSourceSelectionCriteria: \u0026oss.BucketReplicationSourceSelectionCriteriaArgs{\n\t\t\t\tSseKmsEncryptedObjects: \u0026oss.BucketReplicationSourceSelectionCriteriaSseKmsEncryptedObjectsArgs{\n\t\t\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.ram.Policy;\nimport com.pulumi.alicloud.ram.PolicyArgs;\nimport com.pulumi.alicloud.ram.RolePolicyAttachment;\nimport com.pulumi.alicloud.ram.RolePolicyAttachmentArgs;\nimport com.pulumi.alicloud.kms.Key;\nimport com.pulumi.alicloud.kms.KeyArgs;\nimport com.pulumi.alicloud.oss.BucketReplication;\nimport com.pulumi.alicloud.oss.BucketReplicationArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketReplicationPrefixSetArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketReplicationDestinationArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketReplicationEncryptionConfigurationArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketReplicationSourceSelectionCriteriaArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketReplicationSourceSelectionCriteriaSseKmsEncryptedObjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var bucketSrc = new Bucket(\"bucketSrc\", BucketArgs.builder()\n            .bucket(String.format(\"example-src-%s\", default_.result()))\n            .build());\n\n        var bucketDest = new Bucket(\"bucketDest\", BucketArgs.builder()\n            .bucket(String.format(\"example-dest-%s\", default_.result()))\n            .build());\n\n        var role = new Role(\"role\", RoleArgs.builder()\n            .roleName(String.format(\"example-role-%s\", default_.result()))\n            .assumeRolePolicyDocument(\"\"\"\n\\t\\t{\n\\t\\t  \\\"Statement\\\": [\n\\t\\t\\t{\n\\t\\t\\t  \\\"Action\\\": \\\"sts:AssumeRole\\\",\n\\t\\t\\t  \\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t  \\\"Principal\\\": {\n\\t\\t\\t\\t\\\"Service\\\": [\n\\t\\t\\t\\t  \\\"oss.aliyuncs.com\\\"\n\\t\\t\\t\\t]\n\\t\\t\\t  }\n\\t\\t\\t}\n\\t\\t  ],\n\\t\\t  \\\"Version\\\": \\\"1\\\"\n\\t\\t}\n            \"\"\")\n            .description(\"this is a test\")\n            .force(true)\n            .build());\n\n        var policy = new Policy(\"policy\", PolicyArgs.builder()\n            .policyName(String.format(\"example-policy-%s\", default_.result()))\n            .policyDocument(\"\"\"\n\\t\\t{\n\\t\\t  \\\"Statement\\\": [\n\\t\\t\\t{\n\\t\\t\\t  \\\"Action\\\": [\n\\t\\t\\t\\t\\\"*\\\"\n\\t\\t\\t  ],\n\\t\\t\\t  \\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t  \\\"Resource\\\": [\n\\t\\t\\t\\t\\\"*\\\"\n\\t\\t\\t  ]\n\\t\\t\\t}\n\\t\\t  ],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n            \"\"\")\n            .description(\"this is a policy test\")\n            .force(true)\n            .build());\n\n        var attach = new RolePolicyAttachment(\"attach\", RolePolicyAttachmentArgs.builder()\n            .policyName(policy.policyName())\n            .policyType(policy.type())\n            .roleName(role.roleName())\n            .build());\n\n        var key = new Key(\"key\", KeyArgs.builder()\n            .description(\"Hello KMS\")\n            .pendingWindowInDays(7)\n            .status(\"Enabled\")\n            .build());\n\n        var cross_region_replication = new BucketReplication(\"cross-region-replication\", BucketReplicationArgs.builder()\n            .bucket(bucketSrc.id())\n            .action(\"PUT,DELETE\")\n            .historicalObjectReplication(\"enabled\")\n            .prefixSet(BucketReplicationPrefixSetArgs.builder()\n                .prefixes(                \n                    \"prefix1/\",\n                    \"prefix2/\")\n                .build())\n            .destination(BucketReplicationDestinationArgs.builder()\n                .bucket(bucketDest.id())\n                .location(bucketDest.location())\n                .build())\n            .syncRole(role.roleName())\n            .encryptionConfiguration(BucketReplicationEncryptionConfigurationArgs.builder()\n                .replicaKmsKeyId(key.id())\n                .build())\n            .sourceSelectionCriteria(BucketReplicationSourceSelectionCriteriaArgs.builder()\n                .sseKmsEncryptedObjects(BucketReplicationSourceSelectionCriteriaSseKmsEncryptedObjectsArgs.builder()\n                    .status(\"Enabled\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  bucketSrc:\n    type: alicloud:oss:Bucket\n    name: bucket_src\n    properties:\n      bucket: example-src-${default.result}\n  bucketDest:\n    type: alicloud:oss:Bucket\n    name: bucket_dest\n    properties:\n      bucket: example-dest-${default.result}\n  role:\n    type: alicloud:ram:Role\n    properties:\n      roleName: example-role-${default.result}\n      assumeRolePolicyDocument: |\n        \\t\\t{\n        \\t\\t  \\\"Statement\\\": [\n        \\t\\t\\t{\n        \\t\\t\\t  \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\t\\t\\t  \\\"Effect\\\": \\\"Allow\\\",\n        \\t\\t\\t  \\\"Principal\\\": {\n        \\t\\t\\t\\t\\\"Service\\\": [\n        \\t\\t\\t\\t  \\\"oss.aliyuncs.com\\\"\n        \\t\\t\\t\\t]\n        \\t\\t\\t  }\n        \\t\\t\\t}\n        \\t\\t  ],\n        \\t\\t  \\\"Version\\\": \\\"1\\\"\n        \\t\\t}\n      description: this is a test\n      force: true\n  policy:\n    type: alicloud:ram:Policy\n    properties:\n      policyName: example-policy-${default.result}\n      policyDocument: |\n        \\t\\t{\n        \\t\\t  \\\"Statement\\\": [\n        \\t\\t\\t{\n        \\t\\t\\t  \\\"Action\\\": [\n        \\t\\t\\t\\t\\\"*\\\"\n        \\t\\t\\t  ],\n        \\t\\t\\t  \\\"Effect\\\": \\\"Allow\\\",\n        \\t\\t\\t  \\\"Resource\\\": [\n        \\t\\t\\t\\t\\\"*\\\"\n        \\t\\t\\t  ]\n        \\t\\t\\t}\n        \\t\\t  ],\n        \\t\\t\\t\\\"Version\\\": \\\"1\\\"\n        \\t\\t}\n      description: this is a policy test\n      force: true\n  attach:\n    type: alicloud:ram:RolePolicyAttachment\n    properties:\n      policyName: ${policy.policyName}\n      policyType: ${policy.type}\n      roleName: ${role.roleName}\n  key:\n    type: alicloud:kms:Key\n    properties:\n      description: Hello KMS\n      pendingWindowInDays: '7'\n      status: Enabled\n  cross-region-replication:\n    type: alicloud:oss:BucketReplication\n    properties:\n      bucket: ${bucketSrc.id}\n      action: PUT,DELETE\n      historicalObjectReplication: enabled\n      prefixSet:\n        prefixes:\n          - prefix1/\n          - prefix2/\n      destination:\n        bucket: ${bucketDest.id}\n        location: ${bucketDest.location}\n      syncRole: ${role.roleName}\n      encryptionConfiguration:\n        replicaKmsKeyId: ${key.id}\n      sourceSelectionCriteria:\n        sseKmsEncryptedObjects:\n          status: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOss Bucket Replication can be imported using the id, e.g.\n\n```sh\n$ terraform import alicloud_oss_bucket_replication.example\n```\n\n","properties":{"action":{"type":"string","description":"The operations that can be synchronized to the destination bucket. You can set action to one or more of the following operation types. Valid values: `ALL`(contains PUT, DELETE, and ABORT), `PUT`, `DELETE` and `ABORT`. Defaults to `ALL`.\n"},"bucket":{"type":"string","description":"The name of the bucket.\n"},"destination":{"$ref":"#/types/alicloud:oss/BucketReplicationDestination:BucketReplicationDestination","description":"Specifies the destination for the rule. See \u003cspan pulumi-lang-nodejs=\"`destination`\" pulumi-lang-dotnet=\"`Destination`\" pulumi-lang-go=\"`destination`\" pulumi-lang-python=\"`destination`\" pulumi-lang-yaml=\"`destination`\" pulumi-lang-java=\"`destination`\"\u003e`destination`\u003c/span\u003e below.\n"},"encryptionConfiguration":{"$ref":"#/types/alicloud:oss/BucketReplicationEncryptionConfiguration:BucketReplicationEncryptionConfiguration","description":"Specifies the encryption configuration for the objects replicated to the destination bucket. See \u003cspan pulumi-lang-nodejs=\"`encryptionConfiguration`\" pulumi-lang-dotnet=\"`EncryptionConfiguration`\" pulumi-lang-go=\"`encryptionConfiguration`\" pulumi-lang-python=\"`encryption_configuration`\" pulumi-lang-yaml=\"`encryptionConfiguration`\" pulumi-lang-java=\"`encryptionConfiguration`\"\u003e`encryption_configuration`\u003c/span\u003e below.\n"},"historicalObjectReplication":{"type":"string","description":"Specifies whether to replicate historical data from the source bucket to the destination bucket before data replication is enabled. Can be \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"prefixSet":{"$ref":"#/types/alicloud:oss/BucketReplicationPrefixSet:BucketReplicationPrefixSet","description":"The prefixes used to specify the object to replicate. Only objects that match the prefix are replicated to the destination bucket. See \u003cspan pulumi-lang-nodejs=\"`prefixSet`\" pulumi-lang-dotnet=\"`PrefixSet`\" pulumi-lang-go=\"`prefixSet`\" pulumi-lang-python=\"`prefix_set`\" pulumi-lang-yaml=\"`prefixSet`\" pulumi-lang-java=\"`prefixSet`\"\u003e`prefix_set`\u003c/span\u003e below.\n"},"progress":{"$ref":"#/types/alicloud:oss/BucketReplicationProgress:BucketReplicationProgress","description":"Specifies the progress for querying the progress of a data replication task of a bucket.\n"},"rtc":{"$ref":"#/types/alicloud:oss/BucketReplicationRtc:BucketReplicationRtc","description":"Configures the Replication Time Control (RTC) feature for a data replication task of a bucket. See \u003cspan pulumi-lang-nodejs=\"`rtc`\" pulumi-lang-dotnet=\"`Rtc`\" pulumi-lang-go=\"`rtc`\" pulumi-lang-python=\"`rtc`\" pulumi-lang-yaml=\"`rtc`\" pulumi-lang-java=\"`rtc`\"\u003e`rtc`\u003c/span\u003e below.\n"},"ruleId":{"type":"string","description":"The ID of the data replication rule.\n"},"sourceSelectionCriteria":{"$ref":"#/types/alicloud:oss/BucketReplicationSourceSelectionCriteria:BucketReplicationSourceSelectionCriteria","description":"Specifies other conditions used to filter the source objects to replicate. See \u003cspan pulumi-lang-nodejs=\"`sourceSelectionCriteria`\" pulumi-lang-dotnet=\"`SourceSelectionCriteria`\" pulumi-lang-go=\"`sourceSelectionCriteria`\" pulumi-lang-python=\"`source_selection_criteria`\" pulumi-lang-yaml=\"`sourceSelectionCriteria`\" pulumi-lang-java=\"`sourceSelectionCriteria`\"\u003e`source_selection_criteria`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the data replication task. Can be starting, doing and closing.\n"},"syncRole":{"type":"string","description":"Specifies the role that you authorize OSS to use to replicate data. If SSE-KMS is specified to encrypt the objects replicated to the destination bucket, it must be specified.\n"}},"required":["bucket","destination","progress","rtc","ruleId","status"],"inputProperties":{"action":{"type":"string","description":"The operations that can be synchronized to the destination bucket. You can set action to one or more of the following operation types. Valid values: `ALL`(contains PUT, DELETE, and ABORT), `PUT`, `DELETE` and `ABORT`. Defaults to `ALL`.\n","willReplaceOnChanges":true},"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"destination":{"$ref":"#/types/alicloud:oss/BucketReplicationDestination:BucketReplicationDestination","description":"Specifies the destination for the rule. See \u003cspan pulumi-lang-nodejs=\"`destination`\" pulumi-lang-dotnet=\"`Destination`\" pulumi-lang-go=\"`destination`\" pulumi-lang-python=\"`destination`\" pulumi-lang-yaml=\"`destination`\" pulumi-lang-java=\"`destination`\"\u003e`destination`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"encryptionConfiguration":{"$ref":"#/types/alicloud:oss/BucketReplicationEncryptionConfiguration:BucketReplicationEncryptionConfiguration","description":"Specifies the encryption configuration for the objects replicated to the destination bucket. See \u003cspan pulumi-lang-nodejs=\"`encryptionConfiguration`\" pulumi-lang-dotnet=\"`EncryptionConfiguration`\" pulumi-lang-go=\"`encryptionConfiguration`\" pulumi-lang-python=\"`encryption_configuration`\" pulumi-lang-yaml=\"`encryptionConfiguration`\" pulumi-lang-java=\"`encryptionConfiguration`\"\u003e`encryption_configuration`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"historicalObjectReplication":{"type":"string","description":"Specifies whether to replicate historical data from the source bucket to the destination bucket before data replication is enabled. Can be \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n","willReplaceOnChanges":true},"prefixSet":{"$ref":"#/types/alicloud:oss/BucketReplicationPrefixSet:BucketReplicationPrefixSet","description":"The prefixes used to specify the object to replicate. Only objects that match the prefix are replicated to the destination bucket. See \u003cspan pulumi-lang-nodejs=\"`prefixSet`\" pulumi-lang-dotnet=\"`PrefixSet`\" pulumi-lang-go=\"`prefixSet`\" pulumi-lang-python=\"`prefix_set`\" pulumi-lang-yaml=\"`prefixSet`\" pulumi-lang-java=\"`prefixSet`\"\u003e`prefix_set`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"progress":{"$ref":"#/types/alicloud:oss/BucketReplicationProgress:BucketReplicationProgress","description":"Specifies the progress for querying the progress of a data replication task of a bucket.\n"},"rtc":{"$ref":"#/types/alicloud:oss/BucketReplicationRtc:BucketReplicationRtc","description":"Configures the Replication Time Control (RTC) feature for a data replication task of a bucket. See \u003cspan pulumi-lang-nodejs=\"`rtc`\" pulumi-lang-dotnet=\"`Rtc`\" pulumi-lang-go=\"`rtc`\" pulumi-lang-python=\"`rtc`\" pulumi-lang-yaml=\"`rtc`\" pulumi-lang-java=\"`rtc`\"\u003e`rtc`\u003c/span\u003e below.\n"},"sourceSelectionCriteria":{"$ref":"#/types/alicloud:oss/BucketReplicationSourceSelectionCriteria:BucketReplicationSourceSelectionCriteria","description":"Specifies other conditions used to filter the source objects to replicate. See \u003cspan pulumi-lang-nodejs=\"`sourceSelectionCriteria`\" pulumi-lang-dotnet=\"`SourceSelectionCriteria`\" pulumi-lang-go=\"`sourceSelectionCriteria`\" pulumi-lang-python=\"`source_selection_criteria`\" pulumi-lang-yaml=\"`sourceSelectionCriteria`\" pulumi-lang-java=\"`sourceSelectionCriteria`\"\u003e`source_selection_criteria`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"syncRole":{"type":"string","description":"Specifies the role that you authorize OSS to use to replicate data. If SSE-KMS is specified to encrypt the objects replicated to the destination bucket, it must be specified.\n","willReplaceOnChanges":true}},"requiredInputs":["bucket","destination"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketReplication resources.\n","properties":{"action":{"type":"string","description":"The operations that can be synchronized to the destination bucket. You can set action to one or more of the following operation types. Valid values: `ALL`(contains PUT, DELETE, and ABORT), `PUT`, `DELETE` and `ABORT`. Defaults to `ALL`.\n","willReplaceOnChanges":true},"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"destination":{"$ref":"#/types/alicloud:oss/BucketReplicationDestination:BucketReplicationDestination","description":"Specifies the destination for the rule. See \u003cspan pulumi-lang-nodejs=\"`destination`\" pulumi-lang-dotnet=\"`Destination`\" pulumi-lang-go=\"`destination`\" pulumi-lang-python=\"`destination`\" pulumi-lang-yaml=\"`destination`\" pulumi-lang-java=\"`destination`\"\u003e`destination`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"encryptionConfiguration":{"$ref":"#/types/alicloud:oss/BucketReplicationEncryptionConfiguration:BucketReplicationEncryptionConfiguration","description":"Specifies the encryption configuration for the objects replicated to the destination bucket. See \u003cspan pulumi-lang-nodejs=\"`encryptionConfiguration`\" pulumi-lang-dotnet=\"`EncryptionConfiguration`\" pulumi-lang-go=\"`encryptionConfiguration`\" pulumi-lang-python=\"`encryption_configuration`\" pulumi-lang-yaml=\"`encryptionConfiguration`\" pulumi-lang-java=\"`encryptionConfiguration`\"\u003e`encryption_configuration`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"historicalObjectReplication":{"type":"string","description":"Specifies whether to replicate historical data from the source bucket to the destination bucket before data replication is enabled. Can be \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n","willReplaceOnChanges":true},"prefixSet":{"$ref":"#/types/alicloud:oss/BucketReplicationPrefixSet:BucketReplicationPrefixSet","description":"The prefixes used to specify the object to replicate. Only objects that match the prefix are replicated to the destination bucket. See \u003cspan pulumi-lang-nodejs=\"`prefixSet`\" pulumi-lang-dotnet=\"`PrefixSet`\" pulumi-lang-go=\"`prefixSet`\" pulumi-lang-python=\"`prefix_set`\" pulumi-lang-yaml=\"`prefixSet`\" pulumi-lang-java=\"`prefixSet`\"\u003e`prefix_set`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"progress":{"$ref":"#/types/alicloud:oss/BucketReplicationProgress:BucketReplicationProgress","description":"Specifies the progress for querying the progress of a data replication task of a bucket.\n"},"rtc":{"$ref":"#/types/alicloud:oss/BucketReplicationRtc:BucketReplicationRtc","description":"Configures the Replication Time Control (RTC) feature for a data replication task of a bucket. See \u003cspan pulumi-lang-nodejs=\"`rtc`\" pulumi-lang-dotnet=\"`Rtc`\" pulumi-lang-go=\"`rtc`\" pulumi-lang-python=\"`rtc`\" pulumi-lang-yaml=\"`rtc`\" pulumi-lang-java=\"`rtc`\"\u003e`rtc`\u003c/span\u003e below.\n"},"ruleId":{"type":"string","description":"The ID of the data replication rule.\n"},"sourceSelectionCriteria":{"$ref":"#/types/alicloud:oss/BucketReplicationSourceSelectionCriteria:BucketReplicationSourceSelectionCriteria","description":"Specifies other conditions used to filter the source objects to replicate. See \u003cspan pulumi-lang-nodejs=\"`sourceSelectionCriteria`\" pulumi-lang-dotnet=\"`SourceSelectionCriteria`\" pulumi-lang-go=\"`sourceSelectionCriteria`\" pulumi-lang-python=\"`source_selection_criteria`\" pulumi-lang-yaml=\"`sourceSelectionCriteria`\" pulumi-lang-java=\"`sourceSelectionCriteria`\"\u003e`source_selection_criteria`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the data replication task. Can be starting, doing and closing.\n"},"syncRole":{"type":"string","description":"Specifies the role that you authorize OSS to use to replicate data. If SSE-KMS is specified to encrypt the objects replicated to the destination bucket, it must be specified.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:oss/bucketRequestPayment:BucketRequestPayment":{"description":"Provides a OSS Bucket Request Payment resource. Whether to enable pay-by-requester for a bucket.\n\nFor information about OSS Bucket Request Payment and how to use it, see [What is Bucket Request Payment](https://www.alibabacloud.com/help/en/oss/developer-reference/putbucketrequestpayment).\n\n\u003e **NOTE:** Available since v1.222.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    storageClass: \"Standard\",\n    bucket: `${name}-${_default.result}`,\n});\nconst defaultBucketRequestPayment = new alicloud.oss.BucketRequestPayment(\"default\", {\n    payer: \"Requester\",\n    bucket: createBucket.bucket,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    storage_class=\"Standard\",\n    bucket=f\"{name}-{default['result']}\")\ndefault_bucket_request_payment = alicloud.oss.BucketRequestPayment(\"default\",\n    payer=\"Requester\",\n    bucket=create_bucket.bucket)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultBucketRequestPayment = new AliCloud.Oss.BucketRequestPayment(\"default\", new()\n    {\n        Payer = \"Requester\",\n        Bucket = createBucket.BucketName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketRequestPayment(ctx, \"default\", \u0026oss.BucketRequestPaymentArgs{\n\t\t\tPayer:  pulumi.String(\"Requester\"),\n\t\t\tBucket: createBucket.Bucket,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketRequestPayment;\nimport com.pulumi.alicloud.oss.BucketRequestPaymentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultBucketRequestPayment = new BucketRequestPayment(\"defaultBucketRequestPayment\", BucketRequestPaymentArgs.builder()\n            .payer(\"Requester\")\n            .bucket(createBucket.bucket())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n      bucket: ${name}-${default.result}\n  defaultBucketRequestPayment:\n    type: alicloud:oss:BucketRequestPayment\n    name: default\n    properties:\n      payer: Requester\n      bucket: ${createBucket.bucket}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketRequestPayment`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketRequestPayment`\" pulumi-lang-go=\"`oss.BucketRequestPayment`\" pulumi-lang-python=\"`oss.BucketRequestPayment`\" pulumi-lang-yaml=\"`alicloud.oss.BucketRequestPayment`\" pulumi-lang-java=\"`alicloud.oss.BucketRequestPayment`\"\u003e`alicloud.oss.BucketRequestPayment`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketRequestPayment`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketRequestPayment`\" pulumi-lang-go=\"`oss.BucketRequestPayment`\" pulumi-lang-python=\"`oss.BucketRequestPayment`\" pulumi-lang-yaml=\"`alicloud.oss.BucketRequestPayment`\" pulumi-lang-java=\"`alicloud.oss.BucketRequestPayment`\"\u003e`alicloud.oss.BucketRequestPayment`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Request Payment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketRequestPayment:BucketRequestPayment example \u003cid\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n"},"payer":{"type":"string","description":"The payer of the request and traffic fees.Valid values: BucketOwner: request and traffic fees are paid by the bucket owner. Requester: request and traffic fees are paid by the requester.\n"}},"required":["bucket","payer"],"inputProperties":{"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"payer":{"type":"string","description":"The payer of the request and traffic fees.Valid values: BucketOwner: request and traffic fees are paid by the bucket owner. Requester: request and traffic fees are paid by the requester.\n"}},"requiredInputs":["bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketRequestPayment resources.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"payer":{"type":"string","description":"The payer of the request and traffic fees.Valid values: BucketOwner: request and traffic fees are paid by the bucket owner. Requester: request and traffic fees are paid by the requester.\n"}},"type":"object"}},"alicloud:oss/bucketResponseHeader:BucketResponseHeader":{"description":"Provides a OSS Bucket Response Header resource.\n\nResponse header configuration of a bucket.\n\nFor information about OSS Bucket Response Header and how to use it, see [What is Bucket Response Header](https://next.api.alibabacloud.com/document/Oss/2019-05-17/PutBucketResponseHeader).\n\n\u003e **NOTE:** Available since v1.271.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultrdrM3m = new alicloud.oss.Bucket(\"defaultrdrM3m\", {storageClass: \"Standard\"});\nconst _default = new alicloud.oss.BucketOverwriteConfig(\"default\", {\n    bucket: defaultrdrM3m.id,\n    rules: [\n        {\n            id: \"rule1\",\n            action: \"forbid\",\n            prefix: \"rule1-prefix/\",\n            suffix: \"rule1-suffix/\",\n            principals: {\n                principals: [\n                    \"a\",\n                    \"b\",\n                    \"c\",\n                ],\n            },\n        },\n        {\n            id: \"rule2\",\n            action: \"forbid\",\n            prefix: \"rule2-prefix/\",\n            suffix: \"rule2-suffix/\",\n            principals: {\n                principals: [\n                    \"d\",\n                    \"e\",\n                    \"f\",\n                ],\n            },\n        },\n        {\n            id: \"rule3\",\n            action: \"forbid\",\n            prefix: \"rule3-prefix/\",\n            suffix: \"rule3-suffix/\",\n            principals: {\n                principals: [\n                    \"1\",\n                    \"2\",\n                    \"3\",\n                ],\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaultrdr_m3m = alicloud.oss.Bucket(\"defaultrdrM3m\", storage_class=\"Standard\")\ndefault = alicloud.oss.BucketOverwriteConfig(\"default\",\n    bucket=defaultrdr_m3m.id,\n    rules=[\n        {\n            \"id\": \"rule1\",\n            \"action\": \"forbid\",\n            \"prefix\": \"rule1-prefix/\",\n            \"suffix\": \"rule1-suffix/\",\n            \"principals\": {\n                \"principals\": [\n                    \"a\",\n                    \"b\",\n                    \"c\",\n                ],\n            },\n        },\n        {\n            \"id\": \"rule2\",\n            \"action\": \"forbid\",\n            \"prefix\": \"rule2-prefix/\",\n            \"suffix\": \"rule2-suffix/\",\n            \"principals\": {\n                \"principals\": [\n                    \"d\",\n                    \"e\",\n                    \"f\",\n                ],\n            },\n        },\n        {\n            \"id\": \"rule3\",\n            \"action\": \"forbid\",\n            \"prefix\": \"rule3-prefix/\",\n            \"suffix\": \"rule3-suffix/\",\n            \"principals\": {\n                \"principals\": [\n                    \"1\",\n                    \"2\",\n                    \"3\",\n                ],\n            },\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultrdrM3m = new AliCloud.Oss.Bucket(\"defaultrdrM3m\", new()\n    {\n        StorageClass = \"Standard\",\n    });\n\n    var @default = new AliCloud.Oss.BucketOverwriteConfig(\"default\", new()\n    {\n        Bucket = defaultrdrM3m.Id,\n        Rules = new[]\n        {\n            new AliCloud.Oss.Inputs.BucketOverwriteConfigRuleArgs\n            {\n                Id = \"rule1\",\n                Action = \"forbid\",\n                Prefix = \"rule1-prefix/\",\n                Suffix = \"rule1-suffix/\",\n                Principals = new AliCloud.Oss.Inputs.BucketOverwriteConfigRulePrincipalsArgs\n                {\n                    Principals = new[]\n                    {\n                        \"a\",\n                        \"b\",\n                        \"c\",\n                    },\n                },\n            },\n            new AliCloud.Oss.Inputs.BucketOverwriteConfigRuleArgs\n            {\n                Id = \"rule2\",\n                Action = \"forbid\",\n                Prefix = \"rule2-prefix/\",\n                Suffix = \"rule2-suffix/\",\n                Principals = new AliCloud.Oss.Inputs.BucketOverwriteConfigRulePrincipalsArgs\n                {\n                    Principals = new[]\n                    {\n                        \"d\",\n                        \"e\",\n                        \"f\",\n                    },\n                },\n            },\n            new AliCloud.Oss.Inputs.BucketOverwriteConfigRuleArgs\n            {\n                Id = \"rule3\",\n                Action = \"forbid\",\n                Prefix = \"rule3-prefix/\",\n                Suffix = \"rule3-suffix/\",\n                Principals = new AliCloud.Oss.Inputs.BucketOverwriteConfigRulePrincipalsArgs\n                {\n                    Principals = new[]\n                    {\n                        \"1\",\n                        \"2\",\n                        \"3\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultrdrM3m, err := oss.NewBucket(ctx, \"defaultrdrM3m\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketOverwriteConfig(ctx, \"default\", \u0026oss.BucketOverwriteConfigArgs{\n\t\t\tBucket: defaultrdrM3m.ID(),\n\t\t\tRules: oss.BucketOverwriteConfigRuleArray{\n\t\t\t\t\u0026oss.BucketOverwriteConfigRuleArgs{\n\t\t\t\t\tId:     pulumi.String(\"rule1\"),\n\t\t\t\t\tAction: pulumi.String(\"forbid\"),\n\t\t\t\t\tPrefix: pulumi.String(\"rule1-prefix/\"),\n\t\t\t\t\tSuffix: pulumi.String(\"rule1-suffix/\"),\n\t\t\t\t\tPrincipals: \u0026oss.BucketOverwriteConfigRulePrincipalsArgs{\n\t\t\t\t\t\tPrincipals: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"a\"),\n\t\t\t\t\t\t\tpulumi.String(\"b\"),\n\t\t\t\t\t\t\tpulumi.String(\"c\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026oss.BucketOverwriteConfigRuleArgs{\n\t\t\t\t\tId:     pulumi.String(\"rule2\"),\n\t\t\t\t\tAction: pulumi.String(\"forbid\"),\n\t\t\t\t\tPrefix: pulumi.String(\"rule2-prefix/\"),\n\t\t\t\t\tSuffix: pulumi.String(\"rule2-suffix/\"),\n\t\t\t\t\tPrincipals: \u0026oss.BucketOverwriteConfigRulePrincipalsArgs{\n\t\t\t\t\t\tPrincipals: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"d\"),\n\t\t\t\t\t\t\tpulumi.String(\"e\"),\n\t\t\t\t\t\t\tpulumi.String(\"f\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026oss.BucketOverwriteConfigRuleArgs{\n\t\t\t\t\tId:     pulumi.String(\"rule3\"),\n\t\t\t\t\tAction: pulumi.String(\"forbid\"),\n\t\t\t\t\tPrefix: pulumi.String(\"rule3-prefix/\"),\n\t\t\t\t\tSuffix: pulumi.String(\"rule3-suffix/\"),\n\t\t\t\t\tPrincipals: \u0026oss.BucketOverwriteConfigRulePrincipalsArgs{\n\t\t\t\t\t\tPrincipals: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\t\t\t\tpulumi.String(\"3\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketOverwriteConfig;\nimport com.pulumi.alicloud.oss.BucketOverwriteConfigArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketOverwriteConfigRuleArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketOverwriteConfigRulePrincipalsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultrdrM3m = new Bucket(\"defaultrdrM3m\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .build());\n\n        var default_ = new BucketOverwriteConfig(\"default\", BucketOverwriteConfigArgs.builder()\n            .bucket(defaultrdrM3m.id())\n            .rules(            \n                BucketOverwriteConfigRuleArgs.builder()\n                    .id(\"rule1\")\n                    .action(\"forbid\")\n                    .prefix(\"rule1-prefix/\")\n                    .suffix(\"rule1-suffix/\")\n                    .principals(BucketOverwriteConfigRulePrincipalsArgs.builder()\n                        .principals(                        \n                            \"a\",\n                            \"b\",\n                            \"c\")\n                        .build())\n                    .build(),\n                BucketOverwriteConfigRuleArgs.builder()\n                    .id(\"rule2\")\n                    .action(\"forbid\")\n                    .prefix(\"rule2-prefix/\")\n                    .suffix(\"rule2-suffix/\")\n                    .principals(BucketOverwriteConfigRulePrincipalsArgs.builder()\n                        .principals(                        \n                            \"d\",\n                            \"e\",\n                            \"f\")\n                        .build())\n                    .build(),\n                BucketOverwriteConfigRuleArgs.builder()\n                    .id(\"rule3\")\n                    .action(\"forbid\")\n                    .prefix(\"rule3-prefix/\")\n                    .suffix(\"rule3-suffix/\")\n                    .principals(BucketOverwriteConfigRulePrincipalsArgs.builder()\n                        .principals(                        \n                            \"1\",\n                            \"2\",\n                            \"3\")\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultrdrM3m:\n    type: alicloud:oss:Bucket\n    properties:\n      storageClass: Standard\n  default:\n    type: alicloud:oss:BucketOverwriteConfig\n    properties:\n      bucket: ${defaultrdrM3m.id}\n      rules:\n        - id: rule1\n          action: forbid\n          prefix: rule1-prefix/\n          suffix: rule1-suffix/\n          principals:\n            principals:\n              - a\n              - b\n              - c\n        - id: rule2\n          action: forbid\n          prefix: rule2-prefix/\n          suffix: rule2-suffix/\n          principals:\n            principals:\n              - d\n              - e\n              - f\n        - id: rule3\n          action: forbid\n          prefix: rule3-prefix/\n          suffix: rule3-suffix/\n          principals:\n            principals:\n              - '1'\n              - '2'\n              - '3'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Response Header can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketResponseHeader:BucketResponseHeader example \u003cbucket\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the bucket\n"},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketResponseHeaderRule:BucketResponseHeaderRule"},"description":"The container that holds the response header rules. See \u003cspan pulumi-lang-nodejs=\"`rule`\" pulumi-lang-dotnet=\"`Rule`\" pulumi-lang-go=\"`rule`\" pulumi-lang-python=\"`rule`\" pulumi-lang-yaml=\"`rule`\" pulumi-lang-java=\"`rule`\"\u003e`rule`\u003c/span\u003e below.\n"}},"required":["bucket"],"inputProperties":{"bucket":{"type":"string","description":"The name of the bucket\n","willReplaceOnChanges":true},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketResponseHeaderRule:BucketResponseHeaderRule"},"description":"The container that holds the response header rules. See \u003cspan pulumi-lang-nodejs=\"`rule`\" pulumi-lang-dotnet=\"`Rule`\" pulumi-lang-go=\"`rule`\" pulumi-lang-python=\"`rule`\" pulumi-lang-yaml=\"`rule`\" pulumi-lang-java=\"`rule`\"\u003e`rule`\u003c/span\u003e below.\n"}},"requiredInputs":["bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketResponseHeader resources.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket\n","willReplaceOnChanges":true},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:oss/BucketResponseHeaderRule:BucketResponseHeaderRule"},"description":"The container that holds the response header rules. See \u003cspan pulumi-lang-nodejs=\"`rule`\" pulumi-lang-dotnet=\"`Rule`\" pulumi-lang-go=\"`rule`\" pulumi-lang-python=\"`rule`\" pulumi-lang-yaml=\"`rule`\" pulumi-lang-java=\"`rule`\"\u003e`rule`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:oss/bucketServerSideEncryption:BucketServerSideEncryption":{"description":"Provides a OSS Bucket Server Side Encryption resource. Server-side encryption rules of the bucket.\n\nFor information about OSS Bucket Server Side Encryption and how to use it, see [What is Bucket Server Side Encryption](https://www.alibabacloud.com/help/en/oss/developer-reference/putbucketencryption).\n\n\u003e **NOTE:** Available since v1.222.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    storageClass: \"Standard\",\n    bucket: `${name}-${_default.result}`,\n});\nconst getKMS = new alicloud.kms.Key(\"GetKMS\", {\n    origin: \"Aliyun_KMS\",\n    protectionLevel: \"SOFTWARE\",\n    description: name,\n    keySpec: \"Aliyun_AES_256\",\n    keyUsage: \"ENCRYPT/DECRYPT\",\n    automaticRotation: \"Disabled\",\n    pendingWindowInDays: 7,\n});\nconst defaultBucketServerSideEncryption = new alicloud.oss.BucketServerSideEncryption(\"default\", {\n    kmsDataEncryption: \"SM4\",\n    kmsMasterKeyId: getKMS.id,\n    bucket: createBucket.bucket,\n    sseAlgorithm: \"KMS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    storage_class=\"Standard\",\n    bucket=f\"{name}-{default['result']}\")\nget_kms = alicloud.kms.Key(\"GetKMS\",\n    origin=\"Aliyun_KMS\",\n    protection_level=\"SOFTWARE\",\n    description=name,\n    key_spec=\"Aliyun_AES_256\",\n    key_usage=\"ENCRYPT/DECRYPT\",\n    automatic_rotation=\"Disabled\",\n    pending_window_in_days=7)\ndefault_bucket_server_side_encryption = alicloud.oss.BucketServerSideEncryption(\"default\",\n    kms_data_encryption=\"SM4\",\n    kms_master_key_id=get_kms.id,\n    bucket=create_bucket.bucket,\n    sse_algorithm=\"KMS\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var getKMS = new AliCloud.Kms.Key(\"GetKMS\", new()\n    {\n        Origin = \"Aliyun_KMS\",\n        ProtectionLevel = \"SOFTWARE\",\n        Description = name,\n        KeySpec = \"Aliyun_AES_256\",\n        KeyUsage = \"ENCRYPT/DECRYPT\",\n        AutomaticRotation = \"Disabled\",\n        PendingWindowInDays = 7,\n    });\n\n    var defaultBucketServerSideEncryption = new AliCloud.Oss.BucketServerSideEncryption(\"default\", new()\n    {\n        KmsDataEncryption = \"SM4\",\n        KmsMasterKeyId = getKMS.Id,\n        Bucket = createBucket.BucketName,\n        SseAlgorithm = \"KMS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgetKMS, err := kms.NewKey(ctx, \"GetKMS\", \u0026kms.KeyArgs{\n\t\t\tOrigin:              pulumi.String(\"Aliyun_KMS\"),\n\t\t\tProtectionLevel:     pulumi.String(\"SOFTWARE\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tKeySpec:             pulumi.String(\"Aliyun_AES_256\"),\n\t\t\tKeyUsage:            pulumi.String(\"ENCRYPT/DECRYPT\"),\n\t\t\tAutomaticRotation:   pulumi.String(\"Disabled\"),\n\t\t\tPendingWindowInDays: pulumi.Int(7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketServerSideEncryption(ctx, \"default\", \u0026oss.BucketServerSideEncryptionArgs{\n\t\t\tKmsDataEncryption: pulumi.String(\"SM4\"),\n\t\t\tKmsMasterKeyId:    getKMS.ID(),\n\t\t\tBucket:            createBucket.Bucket,\n\t\t\tSseAlgorithm:      pulumi.String(\"KMS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.kms.Key;\nimport com.pulumi.alicloud.kms.KeyArgs;\nimport com.pulumi.alicloud.oss.BucketServerSideEncryption;\nimport com.pulumi.alicloud.oss.BucketServerSideEncryptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var getKMS = new Key(\"getKMS\", KeyArgs.builder()\n            .origin(\"Aliyun_KMS\")\n            .protectionLevel(\"SOFTWARE\")\n            .description(name)\n            .keySpec(\"Aliyun_AES_256\")\n            .keyUsage(\"ENCRYPT/DECRYPT\")\n            .automaticRotation(\"Disabled\")\n            .pendingWindowInDays(7)\n            .build());\n\n        var defaultBucketServerSideEncryption = new BucketServerSideEncryption(\"defaultBucketServerSideEncryption\", BucketServerSideEncryptionArgs.builder()\n            .kmsDataEncryption(\"SM4\")\n            .kmsMasterKeyId(getKMS.id())\n            .bucket(createBucket.bucket())\n            .sseAlgorithm(\"KMS\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n      bucket: ${name}-${default.result}\n  getKMS:\n    type: alicloud:kms:Key\n    name: GetKMS\n    properties:\n      origin: Aliyun_KMS\n      protectionLevel: SOFTWARE\n      description: ${name}\n      keySpec: Aliyun_AES_256\n      keyUsage: ENCRYPT/DECRYPT\n      automaticRotation: Disabled\n      pendingWindowInDays: 7\n  defaultBucketServerSideEncryption:\n    type: alicloud:oss:BucketServerSideEncryption\n    name: default\n    properties:\n      kmsDataEncryption: SM4\n      kmsMasterKeyId: ${getKMS.id}\n      bucket: ${createBucket.bucket}\n      sseAlgorithm: KMS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Server Side Encryption can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketServerSideEncryption:BucketServerSideEncryption example \u003cid\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n"},"kmsDataEncryption":{"type":"string","description":"The algorithm used to encrypt objects. If this element is not specified, objects are encrypted by using AES256. This element is valid only when the value of SSEAlgorithm is set to KMS.\n"},"kmsMasterKeyId":{"type":"string","description":"The CMK ID that must be specified when SSEAlgorithm is set to KMS and a specified CMK is used for encryption. In other cases, this element must be set to null.\n"},"sseAlgorithm":{"type":"string","description":"The server-side encryption method. Valid Values: KMS, AES256.\n"}},"required":["bucket","sseAlgorithm"],"inputProperties":{"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"kmsDataEncryption":{"type":"string","description":"The algorithm used to encrypt objects. If this element is not specified, objects are encrypted by using AES256. This element is valid only when the value of SSEAlgorithm is set to KMS.\n"},"kmsMasterKeyId":{"type":"string","description":"The CMK ID that must be specified when SSEAlgorithm is set to KMS and a specified CMK is used for encryption. In other cases, this element must be set to null.\n"},"sseAlgorithm":{"type":"string","description":"The server-side encryption method. Valid Values: KMS, AES256.\n"}},"requiredInputs":["bucket","sseAlgorithm"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketServerSideEncryption resources.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"kmsDataEncryption":{"type":"string","description":"The algorithm used to encrypt objects. If this element is not specified, objects are encrypted by using AES256. This element is valid only when the value of SSEAlgorithm is set to KMS.\n"},"kmsMasterKeyId":{"type":"string","description":"The CMK ID that must be specified when SSEAlgorithm is set to KMS and a specified CMK is used for encryption. In other cases, this element must be set to null.\n"},"sseAlgorithm":{"type":"string","description":"The server-side encryption method. Valid Values: KMS, AES256.\n"}},"type":"object"}},"alicloud:oss/bucketStyle:BucketStyle":{"description":"Provides a OSS Bucket Style resource.\n\nImage styles that contain single or multiple image processing parameters.\n\nFor information about OSS Bucket Style and how to use it, see [What is Bucket Style](https://next.api.alibabacloud.com/document/Oss/2019-05-17/PutStyle).\n\n\u003e **NOTE:** Available since v1.245.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    storageClass: \"Standard\",\n    bucket: `${name}-${_default.result}`,\n});\nconst defaultBucketStyle = new alicloud.oss.BucketStyle(\"default\", {\n    bucket: createBucket.id,\n    styleName: \"style-933\",\n    content: \"image/resize,p_75,w_75\",\n    category: \"document\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    storage_class=\"Standard\",\n    bucket=f\"{name}-{default['result']}\")\ndefault_bucket_style = alicloud.oss.BucketStyle(\"default\",\n    bucket=create_bucket.id,\n    style_name=\"style-933\",\n    content=\"image/resize,p_75,w_75\",\n    category=\"document\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultBucketStyle = new AliCloud.Oss.BucketStyle(\"default\", new()\n    {\n        Bucket = createBucket.Id,\n        StyleName = \"style-933\",\n        Content = \"image/resize,p_75,w_75\",\n        Category = \"document\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketStyle(ctx, \"default\", \u0026oss.BucketStyleArgs{\n\t\t\tBucket:    createBucket.ID(),\n\t\t\tStyleName: pulumi.String(\"style-933\"),\n\t\t\tContent:   pulumi.String(\"image/resize,p_75,w_75\"),\n\t\t\tCategory:  pulumi.String(\"document\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketStyle;\nimport com.pulumi.alicloud.oss.BucketStyleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultBucketStyle = new BucketStyle(\"defaultBucketStyle\", BucketStyleArgs.builder()\n            .bucket(createBucket.id())\n            .styleName(\"style-933\")\n            .content(\"image/resize,p_75,w_75\")\n            .category(\"document\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n      bucket: ${name}-${default.result}\n  defaultBucketStyle:\n    type: alicloud:oss:BucketStyle\n    name: default\n    properties:\n      bucket: ${createBucket.id}\n      styleName: style-933\n      content: image/resize,p_75,w_75\n      category: document\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Style can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketStyle:BucketStyle example \u003cbucket\u003e:\u003cstyle_name\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"Storage space to which the picture style belongs\n"},"category":{"type":"string","description":"Style category, valid values: image, document, video.\n"},"content":{"type":"string","description":"The Image style content can contain single or multiple image processing parameters.\n"},"createTime":{"type":"string","description":"Image Style Creation Time\n"},"styleName":{"type":"string","description":"Image Style Name\n"}},"required":["bucket","category","content","createTime","styleName"],"inputProperties":{"bucket":{"type":"string","description":"Storage space to which the picture style belongs\n","willReplaceOnChanges":true},"category":{"type":"string","description":"Style category, valid values: image, document, video.\n"},"content":{"type":"string","description":"The Image style content can contain single or multiple image processing parameters.\n"},"styleName":{"type":"string","description":"Image Style Name\n","willReplaceOnChanges":true}},"requiredInputs":["bucket","content","styleName"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketStyle resources.\n","properties":{"bucket":{"type":"string","description":"Storage space to which the picture style belongs\n","willReplaceOnChanges":true},"category":{"type":"string","description":"Style category, valid values: image, document, video.\n"},"content":{"type":"string","description":"The Image style content can contain single or multiple image processing parameters.\n"},"createTime":{"type":"string","description":"Image Style Creation Time\n"},"styleName":{"type":"string","description":"Image Style Name\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:oss/bucketTransferAcceleration:BucketTransferAcceleration":{"description":"Provides a OSS Bucket Transfer Acceleration resource. Transfer acceleration configuration of a bucket.\n\nFor information about OSS Bucket Transfer Acceleration and how to use it, see [What is Bucket Transfer Acceleration](https://www.alibabacloud.com/help/en/oss/developer-reference/putbuckettransferacceleration).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    storageClass: \"Standard\",\n    bucket: `${name}-${_default.result}`,\n});\nconst defaultBucketTransferAcceleration = new alicloud.oss.BucketTransferAcceleration(\"default\", {\n    bucket: createBucket.bucket,\n    enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    storage_class=\"Standard\",\n    bucket=f\"{name}-{default['result']}\")\ndefault_bucket_transfer_acceleration = alicloud.oss.BucketTransferAcceleration(\"default\",\n    bucket=create_bucket.bucket,\n    enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultBucketTransferAcceleration = new AliCloud.Oss.BucketTransferAcceleration(\"default\", new()\n    {\n        Bucket = createBucket.BucketName,\n        Enabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketTransferAcceleration(ctx, \"default\", \u0026oss.BucketTransferAccelerationArgs{\n\t\t\tBucket:  createBucket.Bucket,\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketTransferAcceleration;\nimport com.pulumi.alicloud.oss.BucketTransferAccelerationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultBucketTransferAcceleration = new BucketTransferAcceleration(\"defaultBucketTransferAcceleration\", BucketTransferAccelerationArgs.builder()\n            .bucket(createBucket.bucket())\n            .enabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n      bucket: ${name}-${default.result}\n  defaultBucketTransferAcceleration:\n    type: alicloud:oss:BucketTransferAcceleration\n    name: default\n    properties:\n      bucket: ${createBucket.bucket}\n      enabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketTransferAcceleration`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketTransferAcceleration`\" pulumi-lang-go=\"`oss.BucketTransferAcceleration`\" pulumi-lang-python=\"`oss.BucketTransferAcceleration`\" pulumi-lang-yaml=\"`alicloud.oss.BucketTransferAcceleration`\" pulumi-lang-java=\"`alicloud.oss.BucketTransferAcceleration`\"\u003e`alicloud.oss.BucketTransferAcceleration`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketTransferAcceleration`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketTransferAcceleration`\" pulumi-lang-go=\"`oss.BucketTransferAcceleration`\" pulumi-lang-python=\"`oss.BucketTransferAcceleration`\" pulumi-lang-yaml=\"`alicloud.oss.BucketTransferAcceleration`\" pulumi-lang-java=\"`alicloud.oss.BucketTransferAcceleration`\"\u003e`alicloud.oss.BucketTransferAcceleration`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Transfer Acceleration can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketTransferAcceleration:BucketTransferAcceleration example \u003cid\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the Bucket.\n"},"enabled":{"type":"boolean","description":"Specifies whether to enable transfer acceleration for the bucket. Valid values: true: transfer acceleration for the bucket is enabled. false: transfer acceleration for the bucket is disabled.\n"}},"required":["bucket"],"inputProperties":{"bucket":{"type":"string","description":"The name of the Bucket.\n","willReplaceOnChanges":true},"enabled":{"type":"boolean","description":"Specifies whether to enable transfer acceleration for the bucket. Valid values: true: transfer acceleration for the bucket is enabled. false: transfer acceleration for the bucket is disabled.\n"}},"requiredInputs":["bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketTransferAcceleration resources.\n","properties":{"bucket":{"type":"string","description":"The name of the Bucket.\n","willReplaceOnChanges":true},"enabled":{"type":"boolean","description":"Specifies whether to enable transfer acceleration for the bucket. Valid values: true: transfer acceleration for the bucket is enabled. false: transfer acceleration for the bucket is disabled.\n"}},"type":"object"}},"alicloud:oss/bucketUserDefinedLogFields:BucketUserDefinedLogFields":{"description":"Provides a OSS Bucket User Defined Log Fields resource. Used to personalize the\u003cspan pulumi-lang-nodejs=\" userDefinedLogFields \" pulumi-lang-dotnet=\" UserDefinedLogFields \" pulumi-lang-go=\" userDefinedLogFields \" pulumi-lang-python=\" user_defined_log_fields \" pulumi-lang-yaml=\" userDefinedLogFields \" pulumi-lang-java=\" userDefinedLogFields \"\u003e user_defined_log_fields \u003c/span\u003efield in the Bucket real-time log.\n\nFor information about OSS Bucket User Defined Log Fields and how to use it, see [What is Bucket User Defined Log Fields](https://www.alibabacloud.com/help/en/oss/developer-reference/putuserdefinedlogfieldsconfig).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    storageClass: \"Standard\",\n    bucket: `${name}-${_default.result}`,\n});\nconst defaultBucketUserDefinedLogFields = new alicloud.oss.BucketUserDefinedLogFields(\"default\", {\n    bucket: createBucket.bucket,\n    paramSets: [\n        \"oss-example\",\n        \"example-para\",\n        \"abc\",\n    ],\n    headerSets: [\n        \"def\",\n        \"example-header\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    storage_class=\"Standard\",\n    bucket=f\"{name}-{default['result']}\")\ndefault_bucket_user_defined_log_fields = alicloud.oss.BucketUserDefinedLogFields(\"default\",\n    bucket=create_bucket.bucket,\n    param_sets=[\n        \"oss-example\",\n        \"example-para\",\n        \"abc\",\n    ],\n    header_sets=[\n        \"def\",\n        \"example-header\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultBucketUserDefinedLogFields = new AliCloud.Oss.BucketUserDefinedLogFields(\"default\", new()\n    {\n        Bucket = createBucket.BucketName,\n        ParamSets = new[]\n        {\n            \"oss-example\",\n            \"example-para\",\n            \"abc\",\n        },\n        HeaderSets = new[]\n        {\n            \"def\",\n            \"example-header\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketUserDefinedLogFields(ctx, \"default\", \u0026oss.BucketUserDefinedLogFieldsArgs{\n\t\t\tBucket: createBucket.Bucket,\n\t\t\tParamSets: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"oss-example\"),\n\t\t\t\tpulumi.String(\"example-para\"),\n\t\t\t\tpulumi.String(\"abc\"),\n\t\t\t},\n\t\t\tHeaderSets: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"def\"),\n\t\t\t\tpulumi.String(\"example-header\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketUserDefinedLogFields;\nimport com.pulumi.alicloud.oss.BucketUserDefinedLogFieldsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultBucketUserDefinedLogFields = new BucketUserDefinedLogFields(\"defaultBucketUserDefinedLogFields\", BucketUserDefinedLogFieldsArgs.builder()\n            .bucket(createBucket.bucket())\n            .paramSets(            \n                \"oss-example\",\n                \"example-para\",\n                \"abc\")\n            .headerSets(            \n                \"def\",\n                \"example-header\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n      bucket: ${name}-${default.result}\n  defaultBucketUserDefinedLogFields:\n    type: alicloud:oss:BucketUserDefinedLogFields\n    name: default\n    properties:\n      bucket: ${createBucket.bucket}\n      paramSets:\n        - oss-example\n        - example-para\n        - abc\n      headerSets:\n        - def\n        - example-header\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket User Defined Log Fields can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketUserDefinedLogFields:BucketUserDefinedLogFields example \u003cid\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n"},"headerSets":{"type":"array","items":{"type":"string"},"description":"Container for custom request header configuration information.\n"},"paramSets":{"type":"array","items":{"type":"string"},"description":"Container for custom request parameters configuration information.\n"}},"required":["bucket"],"inputProperties":{"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"headerSets":{"type":"array","items":{"type":"string"},"description":"Container for custom request header configuration information.\n"},"paramSets":{"type":"array","items":{"type":"string"},"description":"Container for custom request parameters configuration information.\n"}},"requiredInputs":["bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketUserDefinedLogFields resources.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"headerSets":{"type":"array","items":{"type":"string"},"description":"Container for custom request header configuration information.\n"},"paramSets":{"type":"array","items":{"type":"string"},"description":"Container for custom request parameters configuration information.\n"}},"type":"object"}},"alicloud:oss/bucketVersioning:BucketVersioning":{"description":"Provides a OSS Bucket Versioning resource. Configures the versioning state for a bucket.\n\nFor information about OSS Bucket Versioning and how to use it, see [What is Bucket Versioning](https://www.alibabacloud.com/help/en/oss/developer-reference/putbucketversioning).\n\n\u003e **NOTE:** Available since v1.222.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst createBucket = new alicloud.oss.Bucket(\"CreateBucket\", {\n    storageClass: \"Standard\",\n    bucket: `${name}-${_default.result}`,\n});\nconst defaultBucketVersioning = new alicloud.oss.BucketVersioning(\"default\", {\n    status: \"Enabled\",\n    bucket: createBucket.bucket,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ncreate_bucket = alicloud.oss.Bucket(\"CreateBucket\",\n    storage_class=\"Standard\",\n    bucket=f\"{name}-{default['result']}\")\ndefault_bucket_versioning = alicloud.oss.BucketVersioning(\"default\",\n    status=\"Enabled\",\n    bucket=create_bucket.bucket)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var createBucket = new AliCloud.Oss.Bucket(\"CreateBucket\", new()\n    {\n        StorageClass = \"Standard\",\n        BucketName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultBucketVersioning = new AliCloud.Oss.BucketVersioning(\"default\", new()\n    {\n        Status = \"Enabled\",\n        Bucket = createBucket.BucketName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateBucket, err := oss.NewBucket(ctx, \"CreateBucket\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketVersioning(ctx, \"default\", \u0026oss.BucketVersioningArgs{\n\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\tBucket: createBucket.Bucket,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketVersioning;\nimport com.pulumi.alicloud.oss.BucketVersioningArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var createBucket = new Bucket(\"createBucket\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultBucketVersioning = new BucketVersioning(\"defaultBucketVersioning\", BucketVersioningArgs.builder()\n            .status(\"Enabled\")\n            .bucket(createBucket.bucket())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  createBucket:\n    type: alicloud:oss:Bucket\n    name: CreateBucket\n    properties:\n      storageClass: Standard\n      bucket: ${name}-${default.result}\n  defaultBucketVersioning:\n    type: alicloud:oss:BucketVersioning\n    name: default\n    properties:\n      status: Enabled\n      bucket: ${createBucket.bucket}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketVersioning`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketVersioning`\" pulumi-lang-go=\"`oss.BucketVersioning`\" pulumi-lang-python=\"`oss.BucketVersioning`\" pulumi-lang-yaml=\"`alicloud.oss.BucketVersioning`\" pulumi-lang-java=\"`alicloud.oss.BucketVersioning`\"\u003e`alicloud.oss.BucketVersioning`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketVersioning`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketVersioning`\" pulumi-lang-go=\"`oss.BucketVersioning`\" pulumi-lang-python=\"`oss.BucketVersioning`\" pulumi-lang-yaml=\"`alicloud.oss.BucketVersioning`\" pulumi-lang-java=\"`alicloud.oss.BucketVersioning`\"\u003e`alicloud.oss.BucketVersioning`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Versioning can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketVersioning:BucketVersioning example \u003cid\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n"},"status":{"type":"string","description":"A bucket can be in one of the following versioning states: disabled, enabled, or suspended. By default, versioning is disabled for a bucket. Updating the value from Enabled or Suspended to Disabled will result in errors, because OSS does not support returning buckets to an unversioned state. .\n"}},"required":["bucket","status"],"inputProperties":{"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"A bucket can be in one of the following versioning states: disabled, enabled, or suspended. By default, versioning is disabled for a bucket. Updating the value from Enabled or Suspended to Disabled will result in errors, because OSS does not support returning buckets to an unversioned state. .\n"}},"requiredInputs":["bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketVersioning resources.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"A bucket can be in one of the following versioning states: disabled, enabled, or suspended. By default, versioning is disabled for a bucket. Updating the value from Enabled or Suspended to Disabled will result in errors, because OSS does not support returning buckets to an unversioned state. .\n"}},"type":"object"}},"alicloud:oss/bucketWebsite:BucketWebsite":{"description":"Provides a OSS Bucket Website resource.\n\nthe static website configuration and mirror configuration of the bucket.\n\nFor information about OSS Bucket Website and how to use it, see [What is Bucket Website](https://www.alibabacloud.com/help/en/oss/developer-reference/putbucketwebsite).\n\n\u003e **NOTE:** Available since v1.237.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Uuid(\"default\", {});\nconst defaultnVj9x3 = new alicloud.oss.Bucket(\"defaultnVj9x3\", {\n    bucket: `${name}-${_default.result}`,\n    storageClass: \"Standard\",\n});\nconst defaultBucketWebsite = new alicloud.oss.BucketWebsite(\"default\", {\n    indexDocument: {\n        suffix: \"index.html\",\n        supportSubDir: true,\n        type: \"0\",\n    },\n    errorDocument: {\n        key: \"error.html\",\n        httpStatus: 404,\n    },\n    bucket: defaultnVj9x3.bucket,\n    routingRules: {\n        routingRules: [{\n            ruleNumber: 1,\n            condition: {\n                httpErrorCodeReturnedEquals: \"404\",\n            },\n            redirect: {\n                protocol: \"https\",\n                httpRedirectCode: \"305\",\n                redirectType: \"AliCDN\",\n                hostName: \"www.alicdn-master.com\",\n            },\n            luaConfig: {\n                script: \"example.lua\",\n            },\n        }],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Uuid(\"default\")\ndefaultn_vj9x3 = alicloud.oss.Bucket(\"defaultnVj9x3\",\n    bucket=f\"{name}-{default['result']}\",\n    storage_class=\"Standard\")\ndefault_bucket_website = alicloud.oss.BucketWebsite(\"default\",\n    index_document={\n        \"suffix\": \"index.html\",\n        \"support_sub_dir\": True,\n        \"type\": \"0\",\n    },\n    error_document={\n        \"key\": \"error.html\",\n        \"http_status\": 404,\n    },\n    bucket=defaultn_vj9x3.bucket,\n    routing_rules={\n        \"routing_rules\": [{\n            \"rule_number\": 1,\n            \"condition\": {\n                \"http_error_code_returned_equals\": \"404\",\n            },\n            \"redirect\": {\n                \"protocol\": \"https\",\n                \"http_redirect_code\": \"305\",\n                \"redirect_type\": \"AliCDN\",\n                \"host_name\": \"www.alicdn-master.com\",\n            },\n            \"lua_config\": {\n                \"script\": \"example.lua\",\n            },\n        }],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Uuid(\"default\");\n\n    var defaultnVj9x3 = new AliCloud.Oss.Bucket(\"defaultnVj9x3\", new()\n    {\n        BucketName = $\"{name}-{@default.Result}\",\n        StorageClass = \"Standard\",\n    });\n\n    var defaultBucketWebsite = new AliCloud.Oss.BucketWebsite(\"default\", new()\n    {\n        IndexDocument = new AliCloud.Oss.Inputs.BucketWebsiteIndexDocumentArgs\n        {\n            Suffix = \"index.html\",\n            SupportSubDir = true,\n            Type = \"0\",\n        },\n        ErrorDocument = new AliCloud.Oss.Inputs.BucketWebsiteErrorDocumentArgs\n        {\n            Key = \"error.html\",\n            HttpStatus = 404,\n        },\n        Bucket = defaultnVj9x3.BucketName,\n        RoutingRules = new AliCloud.Oss.Inputs.BucketWebsiteRoutingRulesArgs\n        {\n            RoutingRules = new[]\n            {\n                new AliCloud.Oss.Inputs.BucketWebsiteRoutingRulesRoutingRuleArgs\n                {\n                    RuleNumber = 1,\n                    Condition = new AliCloud.Oss.Inputs.BucketWebsiteRoutingRulesRoutingRuleConditionArgs\n                    {\n                        HttpErrorCodeReturnedEquals = \"404\",\n                    },\n                    Redirect = new AliCloud.Oss.Inputs.BucketWebsiteRoutingRulesRoutingRuleRedirectArgs\n                    {\n                        Protocol = \"https\",\n                        HttpRedirectCode = \"305\",\n                        RedirectType = \"AliCDN\",\n                        HostName = \"www.alicdn-master.com\",\n                    },\n                    LuaConfig = new AliCloud.Oss.Inputs.BucketWebsiteRoutingRulesRoutingRuleLuaConfigArgs\n                    {\n                        Script = \"example.lua\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewUuid(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultnVj9x3, err := oss.NewBucket(ctx, \"defaultnVj9x3\", \u0026oss.BucketArgs{\n\t\t\tBucket:       pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketWebsite(ctx, \"default\", \u0026oss.BucketWebsiteArgs{\n\t\t\tIndexDocument: \u0026oss.BucketWebsiteIndexDocumentArgs{\n\t\t\t\tSuffix:        pulumi.String(\"index.html\"),\n\t\t\t\tSupportSubDir: pulumi.Bool(true),\n\t\t\t\tType:          pulumi.String(\"0\"),\n\t\t\t},\n\t\t\tErrorDocument: \u0026oss.BucketWebsiteErrorDocumentArgs{\n\t\t\t\tKey:        pulumi.String(\"error.html\"),\n\t\t\t\tHttpStatus: pulumi.Int(404),\n\t\t\t},\n\t\t\tBucket: defaultnVj9x3.Bucket,\n\t\t\tRoutingRules: \u0026oss.BucketWebsiteRoutingRulesArgs{\n\t\t\t\tRoutingRules: oss.BucketWebsiteRoutingRulesRoutingRuleArray{\n\t\t\t\t\t\u0026oss.BucketWebsiteRoutingRulesRoutingRuleArgs{\n\t\t\t\t\t\tRuleNumber: pulumi.Int(1),\n\t\t\t\t\t\tCondition: \u0026oss.BucketWebsiteRoutingRulesRoutingRuleConditionArgs{\n\t\t\t\t\t\t\tHttpErrorCodeReturnedEquals: pulumi.String(\"404\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tRedirect: \u0026oss.BucketWebsiteRoutingRulesRoutingRuleRedirectArgs{\n\t\t\t\t\t\t\tProtocol:         pulumi.String(\"https\"),\n\t\t\t\t\t\t\tHttpRedirectCode: pulumi.String(\"305\"),\n\t\t\t\t\t\t\tRedirectType:     pulumi.String(\"AliCDN\"),\n\t\t\t\t\t\t\tHostName:         pulumi.String(\"www.alicdn-master.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tLuaConfig: \u0026oss.BucketWebsiteRoutingRulesRoutingRuleLuaConfigArgs{\n\t\t\t\t\t\t\tScript: pulumi.String(\"example.lua\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Uuid;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketWebsite;\nimport com.pulumi.alicloud.oss.BucketWebsiteArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketWebsiteIndexDocumentArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketWebsiteErrorDocumentArgs;\nimport com.pulumi.alicloud.oss.inputs.BucketWebsiteRoutingRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Uuid(\"default\");\n\n        var defaultnVj9x3 = new Bucket(\"defaultnVj9x3\", BucketArgs.builder()\n            .bucket(String.format(\"%s-%s\", name,default_.result()))\n            .storageClass(\"Standard\")\n            .build());\n\n        var defaultBucketWebsite = new BucketWebsite(\"defaultBucketWebsite\", BucketWebsiteArgs.builder()\n            .indexDocument(BucketWebsiteIndexDocumentArgs.builder()\n                .suffix(\"index.html\")\n                .supportSubDir(true)\n                .type(\"0\")\n                .build())\n            .errorDocument(BucketWebsiteErrorDocumentArgs.builder()\n                .key(\"error.html\")\n                .httpStatus(404)\n                .build())\n            .bucket(defaultnVj9x3.bucket())\n            .routingRules(BucketWebsiteRoutingRulesArgs.builder()\n                .routingRules(BucketWebsiteRoutingRulesRoutingRuleArgs.builder()\n                    .ruleNumber(1)\n                    .condition(BucketWebsiteRoutingRulesRoutingRuleConditionArgs.builder()\n                        .httpErrorCodeReturnedEquals(\"404\")\n                        .build())\n                    .redirect(BucketWebsiteRoutingRulesRoutingRuleRedirectArgs.builder()\n                        .protocol(\"https\")\n                        .httpRedirectCode(\"305\")\n                        .redirectType(\"AliCDN\")\n                        .hostName(\"www.alicdn-master.com\")\n                        .build())\n                    .luaConfig(BucketWebsiteRoutingRulesRoutingRuleLuaConfigArgs.builder()\n                        .script(\"example.lua\")\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Uuid\n  defaultnVj9x3:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: ${name}-${default.result}\n      storageClass: Standard\n  defaultBucketWebsite:\n    type: alicloud:oss:BucketWebsite\n    name: default\n    properties:\n      indexDocument:\n        suffix: index.html\n        supportSubDir: 'true'\n        type: '0'\n      errorDocument:\n        key: error.html\n        httpStatus: '404'\n      bucket: ${defaultnVj9x3.bucket}\n      routingRules:\n        routingRules:\n          - ruleNumber: '1'\n            condition:\n              httpErrorCodeReturnedEquals: '404'\n            redirect:\n              protocol: https\n              httpRedirectCode: '305'\n              redirectType: AliCDN\n              hostName: www.alicdn-master.com\n            luaConfig:\n              script: example.lua\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Website can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketWebsite:BucketWebsite example \u003cid\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the bucket\n"},"errorDocument":{"$ref":"#/types/alicloud:oss/BucketWebsiteErrorDocument:BucketWebsiteErrorDocument","description":"The container that holds the error page configuration information. See \u003cspan pulumi-lang-nodejs=\"`errorDocument`\" pulumi-lang-dotnet=\"`ErrorDocument`\" pulumi-lang-go=\"`errorDocument`\" pulumi-lang-python=\"`error_document`\" pulumi-lang-yaml=\"`errorDocument`\" pulumi-lang-java=\"`errorDocument`\"\u003e`error_document`\u003c/span\u003e below.\n"},"indexDocument":{"$ref":"#/types/alicloud:oss/BucketWebsiteIndexDocument:BucketWebsiteIndexDocument","description":"Static Website Default Home Page Configuration See \u003cspan pulumi-lang-nodejs=\"`indexDocument`\" pulumi-lang-dotnet=\"`IndexDocument`\" pulumi-lang-go=\"`indexDocument`\" pulumi-lang-python=\"`index_document`\" pulumi-lang-yaml=\"`indexDocument`\" pulumi-lang-java=\"`indexDocument`\"\u003e`index_document`\u003c/span\u003e below.\n"},"routingRules":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRules:BucketWebsiteRoutingRules","description":"The container that holds the jump rule or the mirroring back-to-origin rule. See \u003cspan pulumi-lang-nodejs=\"`routingRules`\" pulumi-lang-dotnet=\"`RoutingRules`\" pulumi-lang-go=\"`routingRules`\" pulumi-lang-python=\"`routing_rules`\" pulumi-lang-yaml=\"`routingRules`\" pulumi-lang-java=\"`routingRules`\"\u003e`routing_rules`\u003c/span\u003e below.\n"}},"required":["bucket"],"inputProperties":{"bucket":{"type":"string","description":"The name of the bucket\n","willReplaceOnChanges":true},"errorDocument":{"$ref":"#/types/alicloud:oss/BucketWebsiteErrorDocument:BucketWebsiteErrorDocument","description":"The container that holds the error page configuration information. See \u003cspan pulumi-lang-nodejs=\"`errorDocument`\" pulumi-lang-dotnet=\"`ErrorDocument`\" pulumi-lang-go=\"`errorDocument`\" pulumi-lang-python=\"`error_document`\" pulumi-lang-yaml=\"`errorDocument`\" pulumi-lang-java=\"`errorDocument`\"\u003e`error_document`\u003c/span\u003e below.\n"},"indexDocument":{"$ref":"#/types/alicloud:oss/BucketWebsiteIndexDocument:BucketWebsiteIndexDocument","description":"Static Website Default Home Page Configuration See \u003cspan pulumi-lang-nodejs=\"`indexDocument`\" pulumi-lang-dotnet=\"`IndexDocument`\" pulumi-lang-go=\"`indexDocument`\" pulumi-lang-python=\"`index_document`\" pulumi-lang-yaml=\"`indexDocument`\" pulumi-lang-java=\"`indexDocument`\"\u003e`index_document`\u003c/span\u003e below.\n"},"routingRules":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRules:BucketWebsiteRoutingRules","description":"The container that holds the jump rule or the mirroring back-to-origin rule. See \u003cspan pulumi-lang-nodejs=\"`routingRules`\" pulumi-lang-dotnet=\"`RoutingRules`\" pulumi-lang-go=\"`routingRules`\" pulumi-lang-python=\"`routing_rules`\" pulumi-lang-yaml=\"`routingRules`\" pulumi-lang-java=\"`routingRules`\"\u003e`routing_rules`\u003c/span\u003e below.\n"}},"requiredInputs":["bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketWebsite resources.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket\n","willReplaceOnChanges":true},"errorDocument":{"$ref":"#/types/alicloud:oss/BucketWebsiteErrorDocument:BucketWebsiteErrorDocument","description":"The container that holds the error page configuration information. See \u003cspan pulumi-lang-nodejs=\"`errorDocument`\" pulumi-lang-dotnet=\"`ErrorDocument`\" pulumi-lang-go=\"`errorDocument`\" pulumi-lang-python=\"`error_document`\" pulumi-lang-yaml=\"`errorDocument`\" pulumi-lang-java=\"`errorDocument`\"\u003e`error_document`\u003c/span\u003e below.\n"},"indexDocument":{"$ref":"#/types/alicloud:oss/BucketWebsiteIndexDocument:BucketWebsiteIndexDocument","description":"Static Website Default Home Page Configuration See \u003cspan pulumi-lang-nodejs=\"`indexDocument`\" pulumi-lang-dotnet=\"`IndexDocument`\" pulumi-lang-go=\"`indexDocument`\" pulumi-lang-python=\"`index_document`\" pulumi-lang-yaml=\"`indexDocument`\" pulumi-lang-java=\"`indexDocument`\"\u003e`index_document`\u003c/span\u003e below.\n"},"routingRules":{"$ref":"#/types/alicloud:oss/BucketWebsiteRoutingRules:BucketWebsiteRoutingRules","description":"The container that holds the jump rule or the mirroring back-to-origin rule. See \u003cspan pulumi-lang-nodejs=\"`routingRules`\" pulumi-lang-dotnet=\"`RoutingRules`\" pulumi-lang-go=\"`routingRules`\" pulumi-lang-python=\"`routing_rules`\" pulumi-lang-yaml=\"`routingRules`\" pulumi-lang-java=\"`routingRules`\"\u003e`routing_rules`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:oss/bucketWorm:BucketWorm":{"description":"Provides a OSS Bucket Worm resource.\n\nBucket Retention Policy.\n\nFor information about OSS Bucket Worm and how to use it, see [What is Bucket Worm](https://www.alibabacloud.com/help/en/oss/developer-reference/initiatebucketworm).\n\n\u003e **NOTE:** Available since v1.240.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaulthNMfIF = new alicloud.oss.Bucket(\"defaulthNMfIF\", {storageClass: \"Standard\"});\nconst _default = new alicloud.oss.BucketWorm(\"default\", {\n    bucket: defaulthNMfIF.bucket,\n    retentionPeriodInDays: 1,\n    status: \"InProgress\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaulth_n_mf_if = alicloud.oss.Bucket(\"defaulthNMfIF\", storage_class=\"Standard\")\ndefault = alicloud.oss.BucketWorm(\"default\",\n    bucket=defaulth_n_mf_if.bucket,\n    retention_period_in_days=1,\n    status=\"InProgress\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaulthNMfIF = new AliCloud.Oss.Bucket(\"defaulthNMfIF\", new()\n    {\n        StorageClass = \"Standard\",\n    });\n\n    var @default = new AliCloud.Oss.BucketWorm(\"default\", new()\n    {\n        Bucket = defaulthNMfIF.BucketName,\n        RetentionPeriodInDays = 1,\n        Status = \"InProgress\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaulthNMfIF, err := oss.NewBucket(ctx, \"defaulthNMfIF\", \u0026oss.BucketArgs{\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucketWorm(ctx, \"default\", \u0026oss.BucketWormArgs{\n\t\t\tBucket:                defaulthNMfIF.Bucket,\n\t\t\tRetentionPeriodInDays: pulumi.Int(1),\n\t\t\tStatus:                pulumi.String(\"InProgress\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.BucketWorm;\nimport com.pulumi.alicloud.oss.BucketWormArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaulthNMfIF = new Bucket(\"defaulthNMfIF\", BucketArgs.builder()\n            .storageClass(\"Standard\")\n            .build());\n\n        var default_ = new BucketWorm(\"default\", BucketWormArgs.builder()\n            .bucket(defaulthNMfIF.bucket())\n            .retentionPeriodInDays(1)\n            .status(\"InProgress\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaulthNMfIF:\n    type: alicloud:oss:Bucket\n    properties:\n      storageClass: Standard\n  default:\n    type: alicloud:oss:BucketWorm\n    properties:\n      bucket: ${defaulthNMfIF.bucket}\n      retentionPeriodInDays: '1'\n      status: InProgress\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketWorm`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketWorm`\" pulumi-lang-go=\"`oss.BucketWorm`\" pulumi-lang-python=\"`oss.BucketWorm`\" pulumi-lang-yaml=\"`alicloud.oss.BucketWorm`\" pulumi-lang-java=\"`alicloud.oss.BucketWorm`\"\u003e`alicloud.oss.BucketWorm`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.oss.BucketWorm`\" pulumi-lang-dotnet=\"`alicloud.oss.BucketWorm`\" pulumi-lang-go=\"`oss.BucketWorm`\" pulumi-lang-python=\"`oss.BucketWorm`\" pulumi-lang-yaml=\"`alicloud.oss.BucketWorm`\" pulumi-lang-java=\"`alicloud.oss.BucketWorm`\"\u003e`alicloud.oss.BucketWorm`\u003c/span\u003e resource allows you to manage  `status = \"Locked\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOSS Bucket Worm can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:oss/bucketWorm:BucketWorm example \u003cbucket\u003e:\u003cworm_id\u003e\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the bucket\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"retentionPeriodInDays":{"type":"integer","description":"The specified number of days to retain the Object.\n"},"status":{"type":"string","description":"The status of the compliance retention policy. Optional values:\n- `InProgress`: After a compliance retention policy is created, the policy is in the InProgress status by default, and the validity period of this status is 24 hours.\n- `Locked`: The compliance retention policy is Locked.\n"},"wormId":{"type":"string","description":"The ID of the retention policy.\n"}},"required":["bucket","createTime","status","wormId"],"inputProperties":{"bucket":{"type":"string","description":"The name of the bucket\n","willReplaceOnChanges":true},"retentionPeriodInDays":{"type":"integer","description":"The specified number of days to retain the Object.\n"},"status":{"type":"string","description":"The status of the compliance retention policy. Optional values:\n- `InProgress`: After a compliance retention policy is created, the policy is in the InProgress status by default, and the validity period of this status is 24 hours.\n- `Locked`: The compliance retention policy is Locked.\n"}},"requiredInputs":["bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketWorm resources.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource\n"},"retentionPeriodInDays":{"type":"integer","description":"The specified number of days to retain the Object.\n"},"status":{"type":"string","description":"The status of the compliance retention policy. Optional values:\n- `InProgress`: After a compliance retention policy is created, the policy is in the InProgress status by default, and the validity period of this status is 24 hours.\n- `Locked`: The compliance retention policy is Locked.\n"},"wormId":{"type":"string","description":"The ID of the retention policy.\n"}},"type":"object"}},"alicloud:ots/instance:Instance":{"description":"This resource will help you to manager a [Table Store](https://www.alibabacloud.com/help/doc-detail/27280.htm) Instance.\nIt is foundation of creating data table.\n\n\u003e **NOTE:** Available since v1.10.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultInstance = new alicloud.ots.Instance(\"default\", {\n    name: `${name}-${_default.result}`,\n    description: name,\n    accessedBy: \"Vpc\",\n    tags: {\n        Created: \"TF\",\n        For: \"Building table\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_instance = alicloud.ots.Instance(\"default\",\n    name=f\"{name}-{default['result']}\",\n    description=name,\n    accessed_by=\"Vpc\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Building table\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultInstance = new AliCloud.Ots.Instance(\"default\", new()\n    {\n        Name = $\"{name}-{@default.Result}\",\n        Description = name,\n        AccessedBy = \"Vpc\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Building table\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ots.NewInstance(ctx, \"default\", \u0026ots.InstanceArgs{\n\t\t\tName:        pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tAccessedBy:  pulumi.String(\"Vpc\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"Building table\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ots.Instance;\nimport com.pulumi.alicloud.ots.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .name(String.format(\"%s-%s\", name,default_.result()))\n            .description(name)\n            .accessedBy(\"Vpc\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Building table\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultInstance:\n    type: alicloud:ots:Instance\n    name: default\n    properties:\n      name: ${name}-${default.result}\n      description: ${name}\n      accessedBy: Vpc\n      tags:\n        Created: TF\n        For: Building table\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOTS instance can be imported using instance id or name, e.g.\n\n```sh\n$ pulumi import alicloud:ots/instance:Instance foo \"my-ots-instance\"\n```\n\n","properties":{"accessedBy":{"type":"string","description":"The network limitation of accessing instance. Valid values:\n* `Any` - Allow all network to access the instance.\n* `Vpc` - Only can the attached VPC allow to access the instance.\n* `ConsoleOrVpc` - Allow web console or the attached VPC to access the instance.\n\nDefault to \"Any\".\n"},"description":{"type":"string","description":"The description of the instance. Currently, it does not support modifying.\n"},"instanceType":{"type":"string","description":"The type of instance. Valid values are \"Capacity\" and \"HighPerformance\". Default to \"HighPerformance\".\n"},"name":{"type":"string","description":"The name of the instance.\n"},"networkSourceAcls":{"type":"array","items":{"type":"string"},"description":"The set of request sources that are allowed access. Valid optional values:\n* `TRUST_PROXY` - Trusted proxy, usually the Alibaba Cloud console.\n\nDefault to [\"TRUST_PROXY\"].\n"},"networkTypeAcls":{"type":"array","items":{"type":"string"},"description":"The set of network types that are allowed access. Valid optional values:\n* `CLASSIC` - Classic network.\n* `VPC` - VPC network.\n* `INTERNET` - Public internet.\n\nDefault to [\"VPC\", \"CLASSIC\", \"INTERNET\"].\n"},"resourceGroupId":{"type":"string","description":"The resource group the instance belongs to.\nDefault to Alibaba Cloud default resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the instance.\n"}},"required":["accessedBy","name","networkSourceAcls","networkTypeAcls","resourceGroupId"],"inputProperties":{"accessedBy":{"type":"string","description":"The network limitation of accessing instance. Valid values:\n* `Any` - Allow all network to access the instance.\n* `Vpc` - Only can the attached VPC allow to access the instance.\n* `ConsoleOrVpc` - Allow web console or the attached VPC to access the instance.\n\nDefault to \"Any\".\n"},"description":{"type":"string","description":"The description of the instance. Currently, it does not support modifying.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of instance. Valid values are \"Capacity\" and \"HighPerformance\". Default to \"HighPerformance\".\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the instance.\n","willReplaceOnChanges":true},"networkSourceAcls":{"type":"array","items":{"type":"string"},"description":"The set of request sources that are allowed access. Valid optional values:\n* `TRUST_PROXY` - Trusted proxy, usually the Alibaba Cloud console.\n\nDefault to [\"TRUST_PROXY\"].\n"},"networkTypeAcls":{"type":"array","items":{"type":"string"},"description":"The set of network types that are allowed access. Valid optional values:\n* `CLASSIC` - Classic network.\n* `VPC` - VPC network.\n* `INTERNET` - Public internet.\n\nDefault to [\"VPC\", \"CLASSIC\", \"INTERNET\"].\n"},"resourceGroupId":{"type":"string","description":"The resource group the instance belongs to.\nDefault to Alibaba Cloud default resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the instance.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"accessedBy":{"type":"string","description":"The network limitation of accessing instance. Valid values:\n* `Any` - Allow all network to access the instance.\n* `Vpc` - Only can the attached VPC allow to access the instance.\n* `ConsoleOrVpc` - Allow web console or the attached VPC to access the instance.\n\nDefault to \"Any\".\n"},"description":{"type":"string","description":"The description of the instance. Currently, it does not support modifying.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of instance. Valid values are \"Capacity\" and \"HighPerformance\". Default to \"HighPerformance\".\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the instance.\n","willReplaceOnChanges":true},"networkSourceAcls":{"type":"array","items":{"type":"string"},"description":"The set of request sources that are allowed access. Valid optional values:\n* `TRUST_PROXY` - Trusted proxy, usually the Alibaba Cloud console.\n\nDefault to [\"TRUST_PROXY\"].\n"},"networkTypeAcls":{"type":"array","items":{"type":"string"},"description":"The set of network types that are allowed access. Valid optional values:\n* `CLASSIC` - Classic network.\n* `VPC` - VPC network.\n* `INTERNET` - Public internet.\n\nDefault to [\"VPC\", \"CLASSIC\", \"INTERNET\"].\n"},"resourceGroupId":{"type":"string","description":"The resource group the instance belongs to.\nDefault to Alibaba Cloud default resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the instance.\n"}},"type":"object"}},"alicloud:ots/instanceAttachment:InstanceAttachment":{"description":"This resource will help you to bind a VPC to an OTS instance.\n\n\u003e **NOTE:** Available since v1.10.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultInstance = new alicloud.ots.Instance(\"default\", {\n    name: `${name}-${defaultInteger.result}`,\n    description: name,\n    accessedBy: \"Vpc\",\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultInstanceAttachment = new alicloud.ots.InstanceAttachment(\"default\", {\n    instanceName: defaultInstance.name,\n    vpcName: \"examplename\",\n    vswitchId: defaultSwitch.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_instance = alicloud.ots.Instance(\"default\",\n    name=f\"{name}-{default_integer['result']}\",\n    description=name,\n    accessed_by=\"Vpc\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_instance_attachment = alicloud.ots.InstanceAttachment(\"default\",\n    instance_name=default_instance.name,\n    vpc_name=\"examplename\",\n    vswitch_id=default_switch.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultInstance = new AliCloud.Ots.Instance(\"default\", new()\n    {\n        Name = $\"{name}-{defaultInteger.Result}\",\n        Description = name,\n        AccessedBy = \"Vpc\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultInstanceAttachment = new AliCloud.Ots.InstanceAttachment(\"default\", new()\n    {\n        InstanceName = defaultInstance.Name,\n        VpcName = \"examplename\",\n        VswitchId = defaultSwitch.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ots.NewInstance(ctx, \"default\", \u0026ots.InstanceArgs{\n\t\t\tName:        pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tAccessedBy:  pulumi.String(\"Vpc\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ots.NewInstanceAttachment(ctx, \"default\", \u0026ots.InstanceAttachmentArgs{\n\t\t\tInstanceName: defaultInstance.Name,\n\t\t\tVpcName:      pulumi.String(\"examplename\"),\n\t\t\tVswitchId:    defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ots.Instance;\nimport com.pulumi.alicloud.ots.InstanceArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ots.InstanceAttachment;\nimport com.pulumi.alicloud.ots.InstanceAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .description(name)\n            .accessedBy(\"Vpc\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultInstanceAttachment = new InstanceAttachment(\"defaultInstanceAttachment\", InstanceAttachmentArgs.builder()\n            .instanceName(defaultInstance.name())\n            .vpcName(\"examplename\")\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultInstance:\n    type: alicloud:ots:Instance\n    name: default\n    properties:\n      name: ${name}-${defaultInteger.result}\n      description: ${name}\n      accessedBy: Vpc\n      tags:\n        Created: TF\n        For: example\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultInstanceAttachment:\n    type: alicloud:ots:InstanceAttachment\n    name: default\n    properties:\n      instanceName: ${defaultInstance.name}\n      vpcName: examplename\n      vswitchId: ${defaultSwitch.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"instanceName":{"type":"string","description":"The name of the OTS instance.\n"},"vpcId":{"type":"string","description":"The ID of attaching VPC to instance.\n"},"vpcName":{"type":"string","description":"The name of attaching VPC to instance. It can only contain letters and numbers, must start with a letter, and is limited to 3-16 characters in length.\n"},"vswitchId":{"type":"string","description":"The ID of attaching VSwitch to instance.\n"}},"required":["instanceName","vpcId","vpcName","vswitchId"],"inputProperties":{"instanceName":{"type":"string","description":"The name of the OTS instance.\n","willReplaceOnChanges":true},"vpcName":{"type":"string","description":"The name of attaching VPC to instance. It can only contain letters and numbers, must start with a letter, and is limited to 3-16 characters in length.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of attaching VSwitch to instance.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceName","vpcName","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceAttachment resources.\n","properties":{"instanceName":{"type":"string","description":"The name of the OTS instance.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of attaching VPC to instance.\n"},"vpcName":{"type":"string","description":"The name of attaching VPC to instance. It can only contain letters and numbers, must start with a letter, and is limited to 3-16 characters in length.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of attaching VSwitch to instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ots/searchIndex:SearchIndex":{"description":"Provides an OTS search index resource.\n\nFor information about OTS search index and how to use it, see [Search index overview](https://www.alibabacloud.com/help/en/tablestore/latest/search-index-overview).\n\n\u003e **NOTE:** Available since v1.187.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultInstance = new alicloud.ots.Instance(\"default\", {\n    name: `${name}-${_default.result}`,\n    description: name,\n    accessedBy: \"Any\",\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst defaultTable = new alicloud.ots.Table(\"default\", {\n    instanceName: defaultInstance.name,\n    tableName: \"tf_example\",\n    timeToLive: -1,\n    maxVersion: 1,\n    enableSse: true,\n    sseKeyType: \"SSE_KMS_SERVICE\",\n    primaryKeys: [\n        {\n            name: \"pk1\",\n            type: \"Integer\",\n        },\n        {\n            name: \"pk2\",\n            type: \"String\",\n        },\n        {\n            name: \"pk3\",\n            type: \"Binary\",\n        },\n    ],\n});\nconst defaultSearchIndex = new alicloud.ots.SearchIndex(\"default\", {\n    instanceName: defaultInstance.name,\n    tableName: defaultTable.tableName,\n    indexName: \"example_index\",\n    timeToLive: -1,\n    schemas: [{\n        fieldSchemas: [\n            {\n                fieldName: \"col1\",\n                fieldType: \"Text\",\n                isArray: false,\n                index: true,\n                analyzer: \"Split\",\n                store: true,\n            },\n            {\n                fieldName: \"col2\",\n                fieldType: \"Long\",\n                enableSortAndAgg: true,\n            },\n            {\n                fieldName: \"pk1\",\n                fieldType: \"Long\",\n            },\n            {\n                fieldName: \"pk2\",\n                fieldType: \"Text\",\n            },\n        ],\n        indexSettings: [{\n            routingFields: [\n                \"pk1\",\n                \"pk2\",\n            ],\n        }],\n        indexSorts: [{\n            sorters: [\n                {\n                    sorterType: \"PrimaryKeySort\",\n                    order: \"Asc\",\n                },\n                {\n                    sorterType: \"FieldSort\",\n                    order: \"Desc\",\n                    fieldName: \"col2\",\n                    mode: \"Max\",\n                },\n            ],\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_instance = alicloud.ots.Instance(\"default\",\n    name=f\"{name}-{default['result']}\",\n    description=name,\n    accessed_by=\"Any\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\ndefault_table = alicloud.ots.Table(\"default\",\n    instance_name=default_instance.name,\n    table_name=\"tf_example\",\n    time_to_live=-1,\n    max_version=1,\n    enable_sse=True,\n    sse_key_type=\"SSE_KMS_SERVICE\",\n    primary_keys=[\n        {\n            \"name\": \"pk1\",\n            \"type\": \"Integer\",\n        },\n        {\n            \"name\": \"pk2\",\n            \"type\": \"String\",\n        },\n        {\n            \"name\": \"pk3\",\n            \"type\": \"Binary\",\n        },\n    ])\ndefault_search_index = alicloud.ots.SearchIndex(\"default\",\n    instance_name=default_instance.name,\n    table_name=default_table.table_name,\n    index_name=\"example_index\",\n    time_to_live=-1,\n    schemas=[{\n        \"field_schemas\": [\n            {\n                \"field_name\": \"col1\",\n                \"field_type\": \"Text\",\n                \"is_array\": False,\n                \"index\": True,\n                \"analyzer\": \"Split\",\n                \"store\": True,\n            },\n            {\n                \"field_name\": \"col2\",\n                \"field_type\": \"Long\",\n                \"enable_sort_and_agg\": True,\n            },\n            {\n                \"field_name\": \"pk1\",\n                \"field_type\": \"Long\",\n            },\n            {\n                \"field_name\": \"pk2\",\n                \"field_type\": \"Text\",\n            },\n        ],\n        \"index_settings\": [{\n            \"routing_fields\": [\n                \"pk1\",\n                \"pk2\",\n            ],\n        }],\n        \"index_sorts\": [{\n            \"sorters\": [\n                {\n                    \"sorter_type\": \"PrimaryKeySort\",\n                    \"order\": \"Asc\",\n                },\n                {\n                    \"sorter_type\": \"FieldSort\",\n                    \"order\": \"Desc\",\n                    \"field_name\": \"col2\",\n                    \"mode\": \"Max\",\n                },\n            ],\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultInstance = new AliCloud.Ots.Instance(\"default\", new()\n    {\n        Name = $\"{name}-{@default.Result}\",\n        Description = name,\n        AccessedBy = \"Any\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var defaultTable = new AliCloud.Ots.Table(\"default\", new()\n    {\n        InstanceName = defaultInstance.Name,\n        TableName = \"tf_example\",\n        TimeToLive = -1,\n        MaxVersion = 1,\n        EnableSse = true,\n        SseKeyType = \"SSE_KMS_SERVICE\",\n        PrimaryKeys = new[]\n        {\n            new AliCloud.Ots.Inputs.TablePrimaryKeyArgs\n            {\n                Name = \"pk1\",\n                Type = \"Integer\",\n            },\n            new AliCloud.Ots.Inputs.TablePrimaryKeyArgs\n            {\n                Name = \"pk2\",\n                Type = \"String\",\n            },\n            new AliCloud.Ots.Inputs.TablePrimaryKeyArgs\n            {\n                Name = \"pk3\",\n                Type = \"Binary\",\n            },\n        },\n    });\n\n    var defaultSearchIndex = new AliCloud.Ots.SearchIndex(\"default\", new()\n    {\n        InstanceName = defaultInstance.Name,\n        TableName = defaultTable.TableName,\n        IndexName = \"example_index\",\n        TimeToLive = -1,\n        Schemas = new[]\n        {\n            new AliCloud.Ots.Inputs.SearchIndexSchemaArgs\n            {\n                FieldSchemas = new[]\n                {\n                    new AliCloud.Ots.Inputs.SearchIndexSchemaFieldSchemaArgs\n                    {\n                        FieldName = \"col1\",\n                        FieldType = \"Text\",\n                        IsArray = false,\n                        Index = true,\n                        Analyzer = \"Split\",\n                        Store = true,\n                    },\n                    new AliCloud.Ots.Inputs.SearchIndexSchemaFieldSchemaArgs\n                    {\n                        FieldName = \"col2\",\n                        FieldType = \"Long\",\n                        EnableSortAndAgg = true,\n                    },\n                    new AliCloud.Ots.Inputs.SearchIndexSchemaFieldSchemaArgs\n                    {\n                        FieldName = \"pk1\",\n                        FieldType = \"Long\",\n                    },\n                    new AliCloud.Ots.Inputs.SearchIndexSchemaFieldSchemaArgs\n                    {\n                        FieldName = \"pk2\",\n                        FieldType = \"Text\",\n                    },\n                },\n                IndexSettings = new[]\n                {\n                    new AliCloud.Ots.Inputs.SearchIndexSchemaIndexSettingArgs\n                    {\n                        RoutingFields = new[]\n                        {\n                            \"pk1\",\n                            \"pk2\",\n                        },\n                    },\n                },\n                IndexSorts = new[]\n                {\n                    new AliCloud.Ots.Inputs.SearchIndexSchemaIndexSortArgs\n                    {\n                        Sorters = new[]\n                        {\n                            new AliCloud.Ots.Inputs.SearchIndexSchemaIndexSortSorterArgs\n                            {\n                                SorterType = \"PrimaryKeySort\",\n                                Order = \"Asc\",\n                            },\n                            new AliCloud.Ots.Inputs.SearchIndexSchemaIndexSortSorterArgs\n                            {\n                                SorterType = \"FieldSort\",\n                                Order = \"Desc\",\n                                FieldName = \"col2\",\n                                Mode = \"Max\",\n                            },\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ots.NewInstance(ctx, \"default\", \u0026ots.InstanceArgs{\n\t\t\tName:        pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tAccessedBy:  pulumi.String(\"Any\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTable, err := ots.NewTable(ctx, \"default\", \u0026ots.TableArgs{\n\t\t\tInstanceName: defaultInstance.Name,\n\t\t\tTableName:    pulumi.String(\"tf_example\"),\n\t\t\tTimeToLive:   pulumi.Int(-1),\n\t\t\tMaxVersion:   pulumi.Int(1),\n\t\t\tEnableSse:    pulumi.Bool(true),\n\t\t\tSseKeyType:   pulumi.String(\"SSE_KMS_SERVICE\"),\n\t\t\tPrimaryKeys: ots.TablePrimaryKeyArray{\n\t\t\t\t\u0026ots.TablePrimaryKeyArgs{\n\t\t\t\t\tName: pulumi.String(\"pk1\"),\n\t\t\t\t\tType: pulumi.String(\"Integer\"),\n\t\t\t\t},\n\t\t\t\t\u0026ots.TablePrimaryKeyArgs{\n\t\t\t\t\tName: pulumi.String(\"pk2\"),\n\t\t\t\t\tType: pulumi.String(\"String\"),\n\t\t\t\t},\n\t\t\t\t\u0026ots.TablePrimaryKeyArgs{\n\t\t\t\t\tName: pulumi.String(\"pk3\"),\n\t\t\t\t\tType: pulumi.String(\"Binary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ots.NewSearchIndex(ctx, \"default\", \u0026ots.SearchIndexArgs{\n\t\t\tInstanceName: defaultInstance.Name,\n\t\t\tTableName:    defaultTable.TableName,\n\t\t\tIndexName:    pulumi.String(\"example_index\"),\n\t\t\tTimeToLive:   pulumi.Int(-1),\n\t\t\tSchemas: ots.SearchIndexSchemaArray{\n\t\t\t\t\u0026ots.SearchIndexSchemaArgs{\n\t\t\t\t\tFieldSchemas: ots.SearchIndexSchemaFieldSchemaArray{\n\t\t\t\t\t\t\u0026ots.SearchIndexSchemaFieldSchemaArgs{\n\t\t\t\t\t\t\tFieldName: pulumi.String(\"col1\"),\n\t\t\t\t\t\t\tFieldType: pulumi.String(\"Text\"),\n\t\t\t\t\t\t\tIsArray:   pulumi.Bool(false),\n\t\t\t\t\t\t\tIndex:     pulumi.Bool(true),\n\t\t\t\t\t\t\tAnalyzer:  pulumi.String(\"Split\"),\n\t\t\t\t\t\t\tStore:     pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026ots.SearchIndexSchemaFieldSchemaArgs{\n\t\t\t\t\t\t\tFieldName:        pulumi.String(\"col2\"),\n\t\t\t\t\t\t\tFieldType:        pulumi.String(\"Long\"),\n\t\t\t\t\t\t\tEnableSortAndAgg: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026ots.SearchIndexSchemaFieldSchemaArgs{\n\t\t\t\t\t\t\tFieldName: pulumi.String(\"pk1\"),\n\t\t\t\t\t\t\tFieldType: pulumi.String(\"Long\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026ots.SearchIndexSchemaFieldSchemaArgs{\n\t\t\t\t\t\t\tFieldName: pulumi.String(\"pk2\"),\n\t\t\t\t\t\t\tFieldType: pulumi.String(\"Text\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tIndexSettings: ots.SearchIndexSchemaIndexSettingArray{\n\t\t\t\t\t\t\u0026ots.SearchIndexSchemaIndexSettingArgs{\n\t\t\t\t\t\t\tRoutingFields: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"pk1\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"pk2\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tIndexSorts: ots.SearchIndexSchemaIndexSortArray{\n\t\t\t\t\t\t\u0026ots.SearchIndexSchemaIndexSortArgs{\n\t\t\t\t\t\t\tSorters: ots.SearchIndexSchemaIndexSortSorterArray{\n\t\t\t\t\t\t\t\t\u0026ots.SearchIndexSchemaIndexSortSorterArgs{\n\t\t\t\t\t\t\t\t\tSorterType: pulumi.String(\"PrimaryKeySort\"),\n\t\t\t\t\t\t\t\t\tOrder:      pulumi.String(\"Asc\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026ots.SearchIndexSchemaIndexSortSorterArgs{\n\t\t\t\t\t\t\t\t\tSorterType: pulumi.String(\"FieldSort\"),\n\t\t\t\t\t\t\t\t\tOrder:      pulumi.String(\"Desc\"),\n\t\t\t\t\t\t\t\t\tFieldName:  pulumi.String(\"col2\"),\n\t\t\t\t\t\t\t\t\tMode:       pulumi.String(\"Max\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ots.Instance;\nimport com.pulumi.alicloud.ots.InstanceArgs;\nimport com.pulumi.alicloud.ots.Table;\nimport com.pulumi.alicloud.ots.TableArgs;\nimport com.pulumi.alicloud.ots.inputs.TablePrimaryKeyArgs;\nimport com.pulumi.alicloud.ots.SearchIndex;\nimport com.pulumi.alicloud.ots.SearchIndexArgs;\nimport com.pulumi.alicloud.ots.inputs.SearchIndexSchemaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .name(String.format(\"%s-%s\", name,default_.result()))\n            .description(name)\n            .accessedBy(\"Any\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var defaultTable = new Table(\"defaultTable\", TableArgs.builder()\n            .instanceName(defaultInstance.name())\n            .tableName(\"tf_example\")\n            .timeToLive(-1)\n            .maxVersion(1)\n            .enableSse(true)\n            .sseKeyType(\"SSE_KMS_SERVICE\")\n            .primaryKeys(            \n                TablePrimaryKeyArgs.builder()\n                    .name(\"pk1\")\n                    .type(\"Integer\")\n                    .build(),\n                TablePrimaryKeyArgs.builder()\n                    .name(\"pk2\")\n                    .type(\"String\")\n                    .build(),\n                TablePrimaryKeyArgs.builder()\n                    .name(\"pk3\")\n                    .type(\"Binary\")\n                    .build())\n            .build());\n\n        var defaultSearchIndex = new SearchIndex(\"defaultSearchIndex\", SearchIndexArgs.builder()\n            .instanceName(defaultInstance.name())\n            .tableName(defaultTable.tableName())\n            .indexName(\"example_index\")\n            .timeToLive(-1)\n            .schemas(SearchIndexSchemaArgs.builder()\n                .fieldSchemas(                \n                    SearchIndexSchemaFieldSchemaArgs.builder()\n                        .fieldName(\"col1\")\n                        .fieldType(\"Text\")\n                        .isArray(false)\n                        .index(true)\n                        .analyzer(\"Split\")\n                        .store(true)\n                        .build(),\n                    SearchIndexSchemaFieldSchemaArgs.builder()\n                        .fieldName(\"col2\")\n                        .fieldType(\"Long\")\n                        .enableSortAndAgg(true)\n                        .build(),\n                    SearchIndexSchemaFieldSchemaArgs.builder()\n                        .fieldName(\"pk1\")\n                        .fieldType(\"Long\")\n                        .build(),\n                    SearchIndexSchemaFieldSchemaArgs.builder()\n                        .fieldName(\"pk2\")\n                        .fieldType(\"Text\")\n                        .build())\n                .indexSettings(SearchIndexSchemaIndexSettingArgs.builder()\n                    .routingFields(                    \n                        \"pk1\",\n                        \"pk2\")\n                    .build())\n                .indexSorts(SearchIndexSchemaIndexSortArgs.builder()\n                    .sorters(                    \n                        SearchIndexSchemaIndexSortSorterArgs.builder()\n                            .sorterType(\"PrimaryKeySort\")\n                            .order(\"Asc\")\n                            .build(),\n                        SearchIndexSchemaIndexSortSorterArgs.builder()\n                            .sorterType(\"FieldSort\")\n                            .order(\"Desc\")\n                            .fieldName(\"col2\")\n                            .mode(\"Max\")\n                            .build())\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultInstance:\n    type: alicloud:ots:Instance\n    name: default\n    properties:\n      name: ${name}-${default.result}\n      description: ${name}\n      accessedBy: Any\n      tags:\n        Created: TF\n        For: example\n  defaultTable:\n    type: alicloud:ots:Table\n    name: default\n    properties:\n      instanceName: ${defaultInstance.name}\n      tableName: tf_example\n      timeToLive: -1\n      maxVersion: 1\n      enableSse: true\n      sseKeyType: SSE_KMS_SERVICE\n      primaryKeys:\n        - name: pk1\n          type: Integer\n        - name: pk2\n          type: String\n        - name: pk3\n          type: Binary\n  defaultSearchIndex:\n    type: alicloud:ots:SearchIndex\n    name: default\n    properties:\n      instanceName: ${defaultInstance.name}\n      tableName: ${defaultTable.tableName}\n      indexName: example_index\n      timeToLive: -1\n      schemas:\n        - fieldSchemas:\n            - fieldName: col1\n              fieldType: Text\n              isArray: false\n              index: true\n              analyzer: Split\n              store: true\n            - fieldName: col2\n              fieldType: Long\n              enableSortAndAgg: true\n            - fieldName: pk1\n              fieldType: Long\n            - fieldName: pk2\n              fieldType: Text\n          indexSettings:\n            - routingFields:\n                - pk1\n                - pk2\n          indexSorts:\n            - sorters:\n                - sorterType: PrimaryKeySort\n                  order: Asc\n                - sorterType: FieldSort\n                  order: Desc\n                  fieldName: col2\n                  mode: Max\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOTS search index can be imported using id, e.g.\n\n```sh\n$ pulumi import alicloud:ots/searchIndex:SearchIndex index1 \u003cinstance_name\u003e:\u003ctable_name\u003e:\u003cindex_name\u003e:\u003cindex_type\u003e\n```\n\n","properties":{"createTime":{"type":"integer","description":"The search index create time.\n"},"currentSyncTimestamp":{"type":"integer","description":"The timestamp for sync phase.\n"},"indexId":{"type":"string","description":"The index id of the search index which could not be changed.\n"},"indexName":{"type":"string","description":"The index name of the OTS Table. If changed, a new index would be created.\n"},"instanceName":{"type":"string","description":"The name of the OTS instance in which table will located.\n"},"schemas":{"type":"array","items":{"$ref":"#/types/alicloud:ots/SearchIndexSchema:SearchIndexSchema"},"description":"The schema of the search index. If changed, a new index would be created. See \u003cspan pulumi-lang-nodejs=\"`schema`\" pulumi-lang-dotnet=\"`Schema`\" pulumi-lang-go=\"`schema`\" pulumi-lang-python=\"`schema`\" pulumi-lang-yaml=\"`schema`\" pulumi-lang-java=\"`schema`\"\u003e`schema`\u003c/span\u003e below.\n"},"syncPhase":{"type":"string","description":"The search index sync phase. possible values: `Full`, `Incr`.\n"},"tableName":{"type":"string","description":"The name of the OTS table. If changed, a new table would be created.\n"},"timeToLive":{"type":"integer","description":"The index type of the OTS Table. Specifies the retention period of data in the search index. Unit: seconds. Default value: -1.\nIf the retention period exceeds the TTL value, OTS automatically deletes expired data.\n"}},"required":["createTime","currentSyncTimestamp","indexId","indexName","instanceName","schemas","syncPhase","tableName"],"inputProperties":{"indexName":{"type":"string","description":"The index name of the OTS Table. If changed, a new index would be created.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the OTS instance in which table will located.\n","willReplaceOnChanges":true},"schemas":{"type":"array","items":{"$ref":"#/types/alicloud:ots/SearchIndexSchema:SearchIndexSchema"},"description":"The schema of the search index. If changed, a new index would be created. See \u003cspan pulumi-lang-nodejs=\"`schema`\" pulumi-lang-dotnet=\"`Schema`\" pulumi-lang-go=\"`schema`\" pulumi-lang-python=\"`schema`\" pulumi-lang-yaml=\"`schema`\" pulumi-lang-java=\"`schema`\"\u003e`schema`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"tableName":{"type":"string","description":"The name of the OTS table. If changed, a new table would be created.\n","willReplaceOnChanges":true},"timeToLive":{"type":"integer","description":"The index type of the OTS Table. Specifies the retention period of data in the search index. Unit: seconds. Default value: -1.\nIf the retention period exceeds the TTL value, OTS automatically deletes expired data.\n","willReplaceOnChanges":true}},"requiredInputs":["indexName","instanceName","schemas","tableName"],"stateInputs":{"description":"Input properties used for looking up and filtering SearchIndex resources.\n","properties":{"createTime":{"type":"integer","description":"The search index create time.\n"},"currentSyncTimestamp":{"type":"integer","description":"The timestamp for sync phase.\n"},"indexId":{"type":"string","description":"The index id of the search index which could not be changed.\n"},"indexName":{"type":"string","description":"The index name of the OTS Table. If changed, a new index would be created.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the OTS instance in which table will located.\n","willReplaceOnChanges":true},"schemas":{"type":"array","items":{"$ref":"#/types/alicloud:ots/SearchIndexSchema:SearchIndexSchema"},"description":"The schema of the search index. If changed, a new index would be created. See \u003cspan pulumi-lang-nodejs=\"`schema`\" pulumi-lang-dotnet=\"`Schema`\" pulumi-lang-go=\"`schema`\" pulumi-lang-python=\"`schema`\" pulumi-lang-yaml=\"`schema`\" pulumi-lang-java=\"`schema`\"\u003e`schema`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"syncPhase":{"type":"string","description":"The search index sync phase. possible values: `Full`, `Incr`.\n"},"tableName":{"type":"string","description":"The name of the OTS table. If changed, a new table would be created.\n","willReplaceOnChanges":true},"timeToLive":{"type":"integer","description":"The index type of the OTS Table. Specifies the retention period of data in the search index. Unit: seconds. Default value: -1.\nIf the retention period exceeds the TTL value, OTS automatically deletes expired data.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ots/secondaryIndex:SecondaryIndex":{"description":"Provides an OTS secondary index resource.\n\nFor information about OTS secondary index and how to use it, see [Secondary index overview](https://www.alibabacloud.com/help/en/tablestore/latest/secondary-index-overview).\n\n\u003e **NOTE:** Available since v1.187.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultInstance = new alicloud.ots.Instance(\"default\", {\n    name: `${name}-${_default.result}`,\n    description: name,\n    accessedBy: \"Any\",\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst defaultTable = new alicloud.ots.Table(\"default\", {\n    instanceName: defaultInstance.name,\n    tableName: \"tf_example\",\n    timeToLive: -1,\n    maxVersion: 1,\n    enableSse: true,\n    sseKeyType: \"SSE_KMS_SERVICE\",\n    primaryKeys: [\n        {\n            name: \"pk1\",\n            type: \"Integer\",\n        },\n        {\n            name: \"pk2\",\n            type: \"String\",\n        },\n        {\n            name: \"pk3\",\n            type: \"Binary\",\n        },\n    ],\n    definedColumns: [\n        {\n            name: \"col1\",\n            type: \"Integer\",\n        },\n        {\n            name: \"col2\",\n            type: \"String\",\n        },\n        {\n            name: \"col3\",\n            type: \"Binary\",\n        },\n    ],\n});\nconst defaultSecondaryIndex = new alicloud.ots.SecondaryIndex(\"default\", {\n    instanceName: defaultInstance.name,\n    tableName: defaultTable.tableName,\n    indexName: \"example_index\",\n    indexType: \"Global\",\n    includeBaseData: true,\n    primaryKeys: [\n        \"pk1\",\n        \"pk2\",\n        \"pk3\",\n    ],\n    definedColumns: [\n        \"col1\",\n        \"col2\",\n        \"col3\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_instance = alicloud.ots.Instance(\"default\",\n    name=f\"{name}-{default['result']}\",\n    description=name,\n    accessed_by=\"Any\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\ndefault_table = alicloud.ots.Table(\"default\",\n    instance_name=default_instance.name,\n    table_name=\"tf_example\",\n    time_to_live=-1,\n    max_version=1,\n    enable_sse=True,\n    sse_key_type=\"SSE_KMS_SERVICE\",\n    primary_keys=[\n        {\n            \"name\": \"pk1\",\n            \"type\": \"Integer\",\n        },\n        {\n            \"name\": \"pk2\",\n            \"type\": \"String\",\n        },\n        {\n            \"name\": \"pk3\",\n            \"type\": \"Binary\",\n        },\n    ],\n    defined_columns=[\n        {\n            \"name\": \"col1\",\n            \"type\": \"Integer\",\n        },\n        {\n            \"name\": \"col2\",\n            \"type\": \"String\",\n        },\n        {\n            \"name\": \"col3\",\n            \"type\": \"Binary\",\n        },\n    ])\ndefault_secondary_index = alicloud.ots.SecondaryIndex(\"default\",\n    instance_name=default_instance.name,\n    table_name=default_table.table_name,\n    index_name=\"example_index\",\n    index_type=\"Global\",\n    include_base_data=True,\n    primary_keys=[\n        \"pk1\",\n        \"pk2\",\n        \"pk3\",\n    ],\n    defined_columns=[\n        \"col1\",\n        \"col2\",\n        \"col3\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultInstance = new AliCloud.Ots.Instance(\"default\", new()\n    {\n        Name = $\"{name}-{@default.Result}\",\n        Description = name,\n        AccessedBy = \"Any\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var defaultTable = new AliCloud.Ots.Table(\"default\", new()\n    {\n        InstanceName = defaultInstance.Name,\n        TableName = \"tf_example\",\n        TimeToLive = -1,\n        MaxVersion = 1,\n        EnableSse = true,\n        SseKeyType = \"SSE_KMS_SERVICE\",\n        PrimaryKeys = new[]\n        {\n            new AliCloud.Ots.Inputs.TablePrimaryKeyArgs\n            {\n                Name = \"pk1\",\n                Type = \"Integer\",\n            },\n            new AliCloud.Ots.Inputs.TablePrimaryKeyArgs\n            {\n                Name = \"pk2\",\n                Type = \"String\",\n            },\n            new AliCloud.Ots.Inputs.TablePrimaryKeyArgs\n            {\n                Name = \"pk3\",\n                Type = \"Binary\",\n            },\n        },\n        DefinedColumns = new[]\n        {\n            new AliCloud.Ots.Inputs.TableDefinedColumnArgs\n            {\n                Name = \"col1\",\n                Type = \"Integer\",\n            },\n            new AliCloud.Ots.Inputs.TableDefinedColumnArgs\n            {\n                Name = \"col2\",\n                Type = \"String\",\n            },\n            new AliCloud.Ots.Inputs.TableDefinedColumnArgs\n            {\n                Name = \"col3\",\n                Type = \"Binary\",\n            },\n        },\n    });\n\n    var defaultSecondaryIndex = new AliCloud.Ots.SecondaryIndex(\"default\", new()\n    {\n        InstanceName = defaultInstance.Name,\n        TableName = defaultTable.TableName,\n        IndexName = \"example_index\",\n        IndexType = \"Global\",\n        IncludeBaseData = true,\n        PrimaryKeys = new[]\n        {\n            \"pk1\",\n            \"pk2\",\n            \"pk3\",\n        },\n        DefinedColumns = new[]\n        {\n            \"col1\",\n            \"col2\",\n            \"col3\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ots.NewInstance(ctx, \"default\", \u0026ots.InstanceArgs{\n\t\t\tName:        pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tAccessedBy:  pulumi.String(\"Any\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTable, err := ots.NewTable(ctx, \"default\", \u0026ots.TableArgs{\n\t\t\tInstanceName: defaultInstance.Name,\n\t\t\tTableName:    pulumi.String(\"tf_example\"),\n\t\t\tTimeToLive:   pulumi.Int(-1),\n\t\t\tMaxVersion:   pulumi.Int(1),\n\t\t\tEnableSse:    pulumi.Bool(true),\n\t\t\tSseKeyType:   pulumi.String(\"SSE_KMS_SERVICE\"),\n\t\t\tPrimaryKeys: ots.TablePrimaryKeyArray{\n\t\t\t\t\u0026ots.TablePrimaryKeyArgs{\n\t\t\t\t\tName: pulumi.String(\"pk1\"),\n\t\t\t\t\tType: pulumi.String(\"Integer\"),\n\t\t\t\t},\n\t\t\t\t\u0026ots.TablePrimaryKeyArgs{\n\t\t\t\t\tName: pulumi.String(\"pk2\"),\n\t\t\t\t\tType: pulumi.String(\"String\"),\n\t\t\t\t},\n\t\t\t\t\u0026ots.TablePrimaryKeyArgs{\n\t\t\t\t\tName: pulumi.String(\"pk3\"),\n\t\t\t\t\tType: pulumi.String(\"Binary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDefinedColumns: ots.TableDefinedColumnArray{\n\t\t\t\t\u0026ots.TableDefinedColumnArgs{\n\t\t\t\t\tName: pulumi.String(\"col1\"),\n\t\t\t\t\tType: pulumi.String(\"Integer\"),\n\t\t\t\t},\n\t\t\t\t\u0026ots.TableDefinedColumnArgs{\n\t\t\t\t\tName: pulumi.String(\"col2\"),\n\t\t\t\t\tType: pulumi.String(\"String\"),\n\t\t\t\t},\n\t\t\t\t\u0026ots.TableDefinedColumnArgs{\n\t\t\t\t\tName: pulumi.String(\"col3\"),\n\t\t\t\t\tType: pulumi.String(\"Binary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ots.NewSecondaryIndex(ctx, \"default\", \u0026ots.SecondaryIndexArgs{\n\t\t\tInstanceName:    defaultInstance.Name,\n\t\t\tTableName:       defaultTable.TableName,\n\t\t\tIndexName:       pulumi.String(\"example_index\"),\n\t\t\tIndexType:       pulumi.String(\"Global\"),\n\t\t\tIncludeBaseData: pulumi.Bool(true),\n\t\t\tPrimaryKeys: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"pk1\"),\n\t\t\t\tpulumi.String(\"pk2\"),\n\t\t\t\tpulumi.String(\"pk3\"),\n\t\t\t},\n\t\t\tDefinedColumns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"col1\"),\n\t\t\t\tpulumi.String(\"col2\"),\n\t\t\t\tpulumi.String(\"col3\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ots.Instance;\nimport com.pulumi.alicloud.ots.InstanceArgs;\nimport com.pulumi.alicloud.ots.Table;\nimport com.pulumi.alicloud.ots.TableArgs;\nimport com.pulumi.alicloud.ots.inputs.TablePrimaryKeyArgs;\nimport com.pulumi.alicloud.ots.inputs.TableDefinedColumnArgs;\nimport com.pulumi.alicloud.ots.SecondaryIndex;\nimport com.pulumi.alicloud.ots.SecondaryIndexArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .name(String.format(\"%s-%s\", name,default_.result()))\n            .description(name)\n            .accessedBy(\"Any\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var defaultTable = new Table(\"defaultTable\", TableArgs.builder()\n            .instanceName(defaultInstance.name())\n            .tableName(\"tf_example\")\n            .timeToLive(-1)\n            .maxVersion(1)\n            .enableSse(true)\n            .sseKeyType(\"SSE_KMS_SERVICE\")\n            .primaryKeys(            \n                TablePrimaryKeyArgs.builder()\n                    .name(\"pk1\")\n                    .type(\"Integer\")\n                    .build(),\n                TablePrimaryKeyArgs.builder()\n                    .name(\"pk2\")\n                    .type(\"String\")\n                    .build(),\n                TablePrimaryKeyArgs.builder()\n                    .name(\"pk3\")\n                    .type(\"Binary\")\n                    .build())\n            .definedColumns(            \n                TableDefinedColumnArgs.builder()\n                    .name(\"col1\")\n                    .type(\"Integer\")\n                    .build(),\n                TableDefinedColumnArgs.builder()\n                    .name(\"col2\")\n                    .type(\"String\")\n                    .build(),\n                TableDefinedColumnArgs.builder()\n                    .name(\"col3\")\n                    .type(\"Binary\")\n                    .build())\n            .build());\n\n        var defaultSecondaryIndex = new SecondaryIndex(\"defaultSecondaryIndex\", SecondaryIndexArgs.builder()\n            .instanceName(defaultInstance.name())\n            .tableName(defaultTable.tableName())\n            .indexName(\"example_index\")\n            .indexType(\"Global\")\n            .includeBaseData(true)\n            .primaryKeys(            \n                \"pk1\",\n                \"pk2\",\n                \"pk3\")\n            .definedColumns(            \n                \"col1\",\n                \"col2\",\n                \"col3\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultInstance:\n    type: alicloud:ots:Instance\n    name: default\n    properties:\n      name: ${name}-${default.result}\n      description: ${name}\n      accessedBy: Any\n      tags:\n        Created: TF\n        For: example\n  defaultTable:\n    type: alicloud:ots:Table\n    name: default\n    properties:\n      instanceName: ${defaultInstance.name}\n      tableName: tf_example\n      timeToLive: -1\n      maxVersion: 1\n      enableSse: true\n      sseKeyType: SSE_KMS_SERVICE\n      primaryKeys:\n        - name: pk1\n          type: Integer\n        - name: pk2\n          type: String\n        - name: pk3\n          type: Binary\n      definedColumns:\n        - name: col1\n          type: Integer\n        - name: col2\n          type: String\n        - name: col3\n          type: Binary\n  defaultSecondaryIndex:\n    type: alicloud:ots:SecondaryIndex\n    name: default\n    properties:\n      instanceName: ${defaultInstance.name}\n      tableName: ${defaultTable.tableName}\n      indexName: example_index\n      indexType: Global\n      includeBaseData: true\n      primaryKeys:\n        - pk1\n        - pk2\n        - pk3\n      definedColumns:\n        - col1\n        - col2\n        - col3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOTS secondary index can be imported using id, e.g.\n\n```sh\n$ pulumi import alicloud:ots/secondaryIndex:SecondaryIndex index1 \u003cinstance_name\u003e:\u003ctable_name\u003e:\u003cindex_name\u003e:\u003cindex_type\u003e\n```\n\n","properties":{"definedColumns":{"type":"array","items":{"type":"string"},"description":"A list of defined column for index, referenced from Table's primary keys or predefined columns.\n"},"includeBaseData":{"type":"boolean","description":"whether the index contains data that already exists in the data table. When\u003cspan pulumi-lang-nodejs=\" includeBaseData \" pulumi-lang-dotnet=\" IncludeBaseData \" pulumi-lang-go=\" includeBaseData \" pulumi-lang-python=\" include_base_data \" pulumi-lang-yaml=\" includeBaseData \" pulumi-lang-java=\" includeBaseData \"\u003e include_base_data \u003c/span\u003eis set to true, it means that stock data is included.\n"},"indexName":{"type":"string","description":"The index name of the OTS Table. If changed, a new index would be created.\n"},"indexType":{"type":"string","description":"The index type of the OTS Table. If changed, a new index would be created, only `Global` or `Local` is allowed.\n"},"instanceName":{"type":"string","description":"The name of the OTS instance in which table will located.\n"},"primaryKeys":{"type":"array","items":{"type":"string"},"description":"A list of primary keys for index, referenced from Table's primary keys or predefined columns.\n"},"tableName":{"type":"string","description":"The name of the OTS table. If changed, a new table would be created.\n"}},"required":["includeBaseData","indexName","indexType","instanceName","primaryKeys","tableName"],"inputProperties":{"definedColumns":{"type":"array","items":{"type":"string"},"description":"A list of defined column for index, referenced from Table's primary keys or predefined columns.\n","willReplaceOnChanges":true},"includeBaseData":{"type":"boolean","description":"whether the index contains data that already exists in the data table. When\u003cspan pulumi-lang-nodejs=\" includeBaseData \" pulumi-lang-dotnet=\" IncludeBaseData \" pulumi-lang-go=\" includeBaseData \" pulumi-lang-python=\" include_base_data \" pulumi-lang-yaml=\" includeBaseData \" pulumi-lang-java=\" includeBaseData \"\u003e include_base_data \u003c/span\u003eis set to true, it means that stock data is included.\n","willReplaceOnChanges":true},"indexName":{"type":"string","description":"The index name of the OTS Table. If changed, a new index would be created.\n","willReplaceOnChanges":true},"indexType":{"type":"string","description":"The index type of the OTS Table. If changed, a new index would be created, only `Global` or `Local` is allowed.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the OTS instance in which table will located.\n","willReplaceOnChanges":true},"primaryKeys":{"type":"array","items":{"type":"string"},"description":"A list of primary keys for index, referenced from Table's primary keys or predefined columns.\n","willReplaceOnChanges":true},"tableName":{"type":"string","description":"The name of the OTS table. If changed, a new table would be created.\n","willReplaceOnChanges":true}},"requiredInputs":["includeBaseData","indexName","indexType","instanceName","primaryKeys","tableName"],"stateInputs":{"description":"Input properties used for looking up and filtering SecondaryIndex resources.\n","properties":{"definedColumns":{"type":"array","items":{"type":"string"},"description":"A list of defined column for index, referenced from Table's primary keys or predefined columns.\n","willReplaceOnChanges":true},"includeBaseData":{"type":"boolean","description":"whether the index contains data that already exists in the data table. When\u003cspan pulumi-lang-nodejs=\" includeBaseData \" pulumi-lang-dotnet=\" IncludeBaseData \" pulumi-lang-go=\" includeBaseData \" pulumi-lang-python=\" include_base_data \" pulumi-lang-yaml=\" includeBaseData \" pulumi-lang-java=\" includeBaseData \"\u003e include_base_data \u003c/span\u003eis set to true, it means that stock data is included.\n","willReplaceOnChanges":true},"indexName":{"type":"string","description":"The index name of the OTS Table. If changed, a new index would be created.\n","willReplaceOnChanges":true},"indexType":{"type":"string","description":"The index type of the OTS Table. If changed, a new index would be created, only `Global` or `Local` is allowed.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the OTS instance in which table will located.\n","willReplaceOnChanges":true},"primaryKeys":{"type":"array","items":{"type":"string"},"description":"A list of primary keys for index, referenced from Table's primary keys or predefined columns.\n","willReplaceOnChanges":true},"tableName":{"type":"string","description":"The name of the OTS table. If changed, a new table would be created.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ots/table:Table":{"description":"Provides an OTS table resource.\n\n\u003e **NOTE:** From Provider version 1.10.0, the provider field 'ots_instance_name' has been deprecated and\nyou should use resource alicloud_ots_table's new field 'instance_name' and 'table_name' to re-import this resource.\n\n\u003e **NOTE:** Available since v1.9.2.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultInstance = new alicloud.ots.Instance(\"default\", {\n    name: `${name}-${_default.result}`,\n    description: name,\n    accessedBy: \"Any\",\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst defaultTable = new alicloud.ots.Table(\"default\", {\n    instanceName: defaultInstance.name,\n    tableName: \"tf_example\",\n    timeToLive: -1,\n    maxVersion: 1,\n    enableSse: true,\n    sseKeyType: \"SSE_KMS_SERVICE\",\n    primaryKeys: [\n        {\n            name: \"pk1\",\n            type: \"Integer\",\n        },\n        {\n            name: \"pk2\",\n            type: \"String\",\n        },\n        {\n            name: \"pk3\",\n            type: \"Binary\",\n        },\n    ],\n    definedColumns: [\n        {\n            name: \"col1\",\n            type: \"Integer\",\n        },\n        {\n            name: \"col2\",\n            type: \"String\",\n        },\n        {\n            name: \"col3\",\n            type: \"Binary\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_instance = alicloud.ots.Instance(\"default\",\n    name=f\"{name}-{default['result']}\",\n    description=name,\n    accessed_by=\"Any\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\ndefault_table = alicloud.ots.Table(\"default\",\n    instance_name=default_instance.name,\n    table_name=\"tf_example\",\n    time_to_live=-1,\n    max_version=1,\n    enable_sse=True,\n    sse_key_type=\"SSE_KMS_SERVICE\",\n    primary_keys=[\n        {\n            \"name\": \"pk1\",\n            \"type\": \"Integer\",\n        },\n        {\n            \"name\": \"pk2\",\n            \"type\": \"String\",\n        },\n        {\n            \"name\": \"pk3\",\n            \"type\": \"Binary\",\n        },\n    ],\n    defined_columns=[\n        {\n            \"name\": \"col1\",\n            \"type\": \"Integer\",\n        },\n        {\n            \"name\": \"col2\",\n            \"type\": \"String\",\n        },\n        {\n            \"name\": \"col3\",\n            \"type\": \"Binary\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultInstance = new AliCloud.Ots.Instance(\"default\", new()\n    {\n        Name = $\"{name}-{@default.Result}\",\n        Description = name,\n        AccessedBy = \"Any\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var defaultTable = new AliCloud.Ots.Table(\"default\", new()\n    {\n        InstanceName = defaultInstance.Name,\n        TableName = \"tf_example\",\n        TimeToLive = -1,\n        MaxVersion = 1,\n        EnableSse = true,\n        SseKeyType = \"SSE_KMS_SERVICE\",\n        PrimaryKeys = new[]\n        {\n            new AliCloud.Ots.Inputs.TablePrimaryKeyArgs\n            {\n                Name = \"pk1\",\n                Type = \"Integer\",\n            },\n            new AliCloud.Ots.Inputs.TablePrimaryKeyArgs\n            {\n                Name = \"pk2\",\n                Type = \"String\",\n            },\n            new AliCloud.Ots.Inputs.TablePrimaryKeyArgs\n            {\n                Name = \"pk3\",\n                Type = \"Binary\",\n            },\n        },\n        DefinedColumns = new[]\n        {\n            new AliCloud.Ots.Inputs.TableDefinedColumnArgs\n            {\n                Name = \"col1\",\n                Type = \"Integer\",\n            },\n            new AliCloud.Ots.Inputs.TableDefinedColumnArgs\n            {\n                Name = \"col2\",\n                Type = \"String\",\n            },\n            new AliCloud.Ots.Inputs.TableDefinedColumnArgs\n            {\n                Name = \"col3\",\n                Type = \"Binary\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ots.NewInstance(ctx, \"default\", \u0026ots.InstanceArgs{\n\t\t\tName:        pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tAccessedBy:  pulumi.String(\"Any\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ots.NewTable(ctx, \"default\", \u0026ots.TableArgs{\n\t\t\tInstanceName: defaultInstance.Name,\n\t\t\tTableName:    pulumi.String(\"tf_example\"),\n\t\t\tTimeToLive:   pulumi.Int(-1),\n\t\t\tMaxVersion:   pulumi.Int(1),\n\t\t\tEnableSse:    pulumi.Bool(true),\n\t\t\tSseKeyType:   pulumi.String(\"SSE_KMS_SERVICE\"),\n\t\t\tPrimaryKeys: ots.TablePrimaryKeyArray{\n\t\t\t\t\u0026ots.TablePrimaryKeyArgs{\n\t\t\t\t\tName: pulumi.String(\"pk1\"),\n\t\t\t\t\tType: pulumi.String(\"Integer\"),\n\t\t\t\t},\n\t\t\t\t\u0026ots.TablePrimaryKeyArgs{\n\t\t\t\t\tName: pulumi.String(\"pk2\"),\n\t\t\t\t\tType: pulumi.String(\"String\"),\n\t\t\t\t},\n\t\t\t\t\u0026ots.TablePrimaryKeyArgs{\n\t\t\t\t\tName: pulumi.String(\"pk3\"),\n\t\t\t\t\tType: pulumi.String(\"Binary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDefinedColumns: ots.TableDefinedColumnArray{\n\t\t\t\t\u0026ots.TableDefinedColumnArgs{\n\t\t\t\t\tName: pulumi.String(\"col1\"),\n\t\t\t\t\tType: pulumi.String(\"Integer\"),\n\t\t\t\t},\n\t\t\t\t\u0026ots.TableDefinedColumnArgs{\n\t\t\t\t\tName: pulumi.String(\"col2\"),\n\t\t\t\t\tType: pulumi.String(\"String\"),\n\t\t\t\t},\n\t\t\t\t\u0026ots.TableDefinedColumnArgs{\n\t\t\t\t\tName: pulumi.String(\"col3\"),\n\t\t\t\t\tType: pulumi.String(\"Binary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ots.Instance;\nimport com.pulumi.alicloud.ots.InstanceArgs;\nimport com.pulumi.alicloud.ots.Table;\nimport com.pulumi.alicloud.ots.TableArgs;\nimport com.pulumi.alicloud.ots.inputs.TablePrimaryKeyArgs;\nimport com.pulumi.alicloud.ots.inputs.TableDefinedColumnArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .name(String.format(\"%s-%s\", name,default_.result()))\n            .description(name)\n            .accessedBy(\"Any\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var defaultTable = new Table(\"defaultTable\", TableArgs.builder()\n            .instanceName(defaultInstance.name())\n            .tableName(\"tf_example\")\n            .timeToLive(-1)\n            .maxVersion(1)\n            .enableSse(true)\n            .sseKeyType(\"SSE_KMS_SERVICE\")\n            .primaryKeys(            \n                TablePrimaryKeyArgs.builder()\n                    .name(\"pk1\")\n                    .type(\"Integer\")\n                    .build(),\n                TablePrimaryKeyArgs.builder()\n                    .name(\"pk2\")\n                    .type(\"String\")\n                    .build(),\n                TablePrimaryKeyArgs.builder()\n                    .name(\"pk3\")\n                    .type(\"Binary\")\n                    .build())\n            .definedColumns(            \n                TableDefinedColumnArgs.builder()\n                    .name(\"col1\")\n                    .type(\"Integer\")\n                    .build(),\n                TableDefinedColumnArgs.builder()\n                    .name(\"col2\")\n                    .type(\"String\")\n                    .build(),\n                TableDefinedColumnArgs.builder()\n                    .name(\"col3\")\n                    .type(\"Binary\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultInstance:\n    type: alicloud:ots:Instance\n    name: default\n    properties:\n      name: ${name}-${default.result}\n      description: ${name}\n      accessedBy: Any\n      tags:\n        Created: TF\n        For: example\n  defaultTable:\n    type: alicloud:ots:Table\n    name: default\n    properties:\n      instanceName: ${defaultInstance.name}\n      tableName: tf_example\n      timeToLive: -1\n      maxVersion: 1\n      enableSse: true\n      sseKeyType: SSE_KMS_SERVICE\n      primaryKeys:\n        - name: pk1\n          type: Integer\n        - name: pk2\n          type: String\n        - name: pk3\n          type: Binary\n      definedColumns:\n        - name: col1\n          type: Integer\n        - name: col2\n          type: String\n        - name: col3\n          type: Binary\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOTS table can be imported using id, e.g.\n\n```sh\n$ pulumi import alicloud:ots/table:Table table my-ots:ots_table\n```\n\n","properties":{"allowUpdate":{"type":"boolean","description":"Whether allow data update operations. Default value is true. Skipping the resource state refresh step may result in unnecessary execution plan when upgrading from an earlier version.\n"},"definedColumns":{"type":"array","items":{"$ref":"#/types/alicloud:ots/TableDefinedColumn:TableDefinedColumn"},"description":"The property of `TableMeta` which indicates the structure information of a table. It describes the attribute value of defined column. The number of \u003cspan pulumi-lang-nodejs=\"`definedColumn`\" pulumi-lang-dotnet=\"`DefinedColumn`\" pulumi-lang-go=\"`definedColumn`\" pulumi-lang-python=\"`defined_column`\" pulumi-lang-yaml=\"`definedColumn`\" pulumi-lang-java=\"`definedColumn`\"\u003e`defined_column`\u003c/span\u003e should not be more than 32. See \u003cspan pulumi-lang-nodejs=\"`definedColumn`\" pulumi-lang-dotnet=\"`DefinedColumn`\" pulumi-lang-go=\"`definedColumn`\" pulumi-lang-python=\"`defined_column`\" pulumi-lang-yaml=\"`definedColumn`\" pulumi-lang-java=\"`definedColumn`\"\u003e`defined_column`\u003c/span\u003e below.\n"},"deviationCellVersionInSec":{"type":"string","description":"The max version offset of the table. The valid value is 1-9223372036854775807. Defaults to 86400.\n"},"enableSse":{"type":"boolean","description":"Whether enable OTS server side encryption. Default value is false.\n"},"instanceName":{"type":"string","description":"The name of the OTS instance in which table will located.\n"},"maxVersion":{"type":"integer","description":"The maximum number of versions stored in this table. The valid value is 1-2147483647.\n"},"primaryKeys":{"type":"array","items":{"$ref":"#/types/alicloud:ots/TablePrimaryKey:TablePrimaryKey"},"description":"The property of `TableMeta` which indicates the structure information of a table. It describes the attribute value of primary key. The number of \u003cspan pulumi-lang-nodejs=\"`primaryKey`\" pulumi-lang-dotnet=\"`PrimaryKey`\" pulumi-lang-go=\"`primaryKey`\" pulumi-lang-python=\"`primary_key`\" pulumi-lang-yaml=\"`primaryKey`\" pulumi-lang-java=\"`primaryKey`\"\u003e`primary_key`\u003c/span\u003e should not be less than one and not be more than four. See \u003cspan pulumi-lang-nodejs=\"`primaryKey`\" pulumi-lang-dotnet=\"`PrimaryKey`\" pulumi-lang-go=\"`primaryKey`\" pulumi-lang-python=\"`primary_key`\" pulumi-lang-yaml=\"`primaryKey`\" pulumi-lang-java=\"`primaryKey`\"\u003e`primary_key`\u003c/span\u003e below.\n"},"sseKeyId":{"type":"string","description":". The key ID of secret. \u003cspan pulumi-lang-nodejs=\"`sseKeyId`\" pulumi-lang-dotnet=\"`SseKeyId`\" pulumi-lang-go=\"`sseKeyId`\" pulumi-lang-python=\"`sse_key_id`\" pulumi-lang-yaml=\"`sseKeyId`\" pulumi-lang-java=\"`sseKeyId`\"\u003e`sse_key_id`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`sseKeyType`\" pulumi-lang-dotnet=\"`SseKeyType`\" pulumi-lang-go=\"`sseKeyType`\" pulumi-lang-python=\"`sse_key_type`\" pulumi-lang-yaml=\"`sseKeyType`\" pulumi-lang-java=\"`sseKeyType`\"\u003e`sse_key_type`\u003c/span\u003e is set to `SSE_BYOK`.\n"},"sseKeyType":{"type":"string","description":"The key type of OTS server side encryption. `SSE_KMS_SERVICE`, `SSE_BYOK` is allowed.\n"},"sseRoleArn":{"type":"string","description":"The arn of role that can access kms service. \u003cspan pulumi-lang-nodejs=\"`sseRoleArn`\" pulumi-lang-dotnet=\"`SseRoleArn`\" pulumi-lang-go=\"`sseRoleArn`\" pulumi-lang-python=\"`sse_role_arn`\" pulumi-lang-yaml=\"`sseRoleArn`\" pulumi-lang-java=\"`sseRoleArn`\"\u003e`sse_role_arn`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`sseKeyType`\" pulumi-lang-dotnet=\"`SseKeyType`\" pulumi-lang-go=\"`sseKeyType`\" pulumi-lang-python=\"`sse_key_type`\" pulumi-lang-yaml=\"`sseKeyType`\" pulumi-lang-java=\"`sseKeyType`\"\u003e`sse_key_type`\u003c/span\u003e is set to `SSE_BYOK`.\n"},"tableName":{"type":"string","description":"The table name of the OTS instance. If changed, a new table would be created.\n"},"timeToLive":{"type":"integer","description":"The retention time of data stored in this table (unit: second). The value maximum is 2147483647 and -1 means never expired.\n"}},"required":["instanceName","maxVersion","primaryKeys","tableName","timeToLive"],"inputProperties":{"allowUpdate":{"type":"boolean","description":"Whether allow data update operations. Default value is true. Skipping the resource state refresh step may result in unnecessary execution plan when upgrading from an earlier version.\n"},"definedColumns":{"type":"array","items":{"$ref":"#/types/alicloud:ots/TableDefinedColumn:TableDefinedColumn"},"description":"The property of `TableMeta` which indicates the structure information of a table. It describes the attribute value of defined column. The number of \u003cspan pulumi-lang-nodejs=\"`definedColumn`\" pulumi-lang-dotnet=\"`DefinedColumn`\" pulumi-lang-go=\"`definedColumn`\" pulumi-lang-python=\"`defined_column`\" pulumi-lang-yaml=\"`definedColumn`\" pulumi-lang-java=\"`definedColumn`\"\u003e`defined_column`\u003c/span\u003e should not be more than 32. See \u003cspan pulumi-lang-nodejs=\"`definedColumn`\" pulumi-lang-dotnet=\"`DefinedColumn`\" pulumi-lang-go=\"`definedColumn`\" pulumi-lang-python=\"`defined_column`\" pulumi-lang-yaml=\"`definedColumn`\" pulumi-lang-java=\"`definedColumn`\"\u003e`defined_column`\u003c/span\u003e below.\n"},"deviationCellVersionInSec":{"type":"string","description":"The max version offset of the table. The valid value is 1-9223372036854775807. Defaults to 86400.\n"},"enableSse":{"type":"boolean","description":"Whether enable OTS server side encryption. Default value is false.\n"},"instanceName":{"type":"string","description":"The name of the OTS instance in which table will located.\n","willReplaceOnChanges":true},"maxVersion":{"type":"integer","description":"The maximum number of versions stored in this table. The valid value is 1-2147483647.\n"},"primaryKeys":{"type":"array","items":{"$ref":"#/types/alicloud:ots/TablePrimaryKey:TablePrimaryKey"},"description":"The property of `TableMeta` which indicates the structure information of a table. It describes the attribute value of primary key. The number of \u003cspan pulumi-lang-nodejs=\"`primaryKey`\" pulumi-lang-dotnet=\"`PrimaryKey`\" pulumi-lang-go=\"`primaryKey`\" pulumi-lang-python=\"`primary_key`\" pulumi-lang-yaml=\"`primaryKey`\" pulumi-lang-java=\"`primaryKey`\"\u003e`primary_key`\u003c/span\u003e should not be less than one and not be more than four. See \u003cspan pulumi-lang-nodejs=\"`primaryKey`\" pulumi-lang-dotnet=\"`PrimaryKey`\" pulumi-lang-go=\"`primaryKey`\" pulumi-lang-python=\"`primary_key`\" pulumi-lang-yaml=\"`primaryKey`\" pulumi-lang-java=\"`primaryKey`\"\u003e`primary_key`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"sseKeyId":{"type":"string","description":". The key ID of secret. \u003cspan pulumi-lang-nodejs=\"`sseKeyId`\" pulumi-lang-dotnet=\"`SseKeyId`\" pulumi-lang-go=\"`sseKeyId`\" pulumi-lang-python=\"`sse_key_id`\" pulumi-lang-yaml=\"`sseKeyId`\" pulumi-lang-java=\"`sseKeyId`\"\u003e`sse_key_id`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`sseKeyType`\" pulumi-lang-dotnet=\"`SseKeyType`\" pulumi-lang-go=\"`sseKeyType`\" pulumi-lang-python=\"`sse_key_type`\" pulumi-lang-yaml=\"`sseKeyType`\" pulumi-lang-java=\"`sseKeyType`\"\u003e`sse_key_type`\u003c/span\u003e is set to `SSE_BYOK`.\n"},"sseKeyType":{"type":"string","description":"The key type of OTS server side encryption. `SSE_KMS_SERVICE`, `SSE_BYOK` is allowed.\n"},"sseRoleArn":{"type":"string","description":"The arn of role that can access kms service. \u003cspan pulumi-lang-nodejs=\"`sseRoleArn`\" pulumi-lang-dotnet=\"`SseRoleArn`\" pulumi-lang-go=\"`sseRoleArn`\" pulumi-lang-python=\"`sse_role_arn`\" pulumi-lang-yaml=\"`sseRoleArn`\" pulumi-lang-java=\"`sseRoleArn`\"\u003e`sse_role_arn`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`sseKeyType`\" pulumi-lang-dotnet=\"`SseKeyType`\" pulumi-lang-go=\"`sseKeyType`\" pulumi-lang-python=\"`sse_key_type`\" pulumi-lang-yaml=\"`sseKeyType`\" pulumi-lang-java=\"`sseKeyType`\"\u003e`sse_key_type`\u003c/span\u003e is set to `SSE_BYOK`.\n"},"tableName":{"type":"string","description":"The table name of the OTS instance. If changed, a new table would be created.\n","willReplaceOnChanges":true},"timeToLive":{"type":"integer","description":"The retention time of data stored in this table (unit: second). The value maximum is 2147483647 and -1 means never expired.\n"}},"requiredInputs":["instanceName","maxVersion","primaryKeys","tableName","timeToLive"],"stateInputs":{"description":"Input properties used for looking up and filtering Table resources.\n","properties":{"allowUpdate":{"type":"boolean","description":"Whether allow data update operations. Default value is true. Skipping the resource state refresh step may result in unnecessary execution plan when upgrading from an earlier version.\n"},"definedColumns":{"type":"array","items":{"$ref":"#/types/alicloud:ots/TableDefinedColumn:TableDefinedColumn"},"description":"The property of `TableMeta` which indicates the structure information of a table. It describes the attribute value of defined column. The number of \u003cspan pulumi-lang-nodejs=\"`definedColumn`\" pulumi-lang-dotnet=\"`DefinedColumn`\" pulumi-lang-go=\"`definedColumn`\" pulumi-lang-python=\"`defined_column`\" pulumi-lang-yaml=\"`definedColumn`\" pulumi-lang-java=\"`definedColumn`\"\u003e`defined_column`\u003c/span\u003e should not be more than 32. See \u003cspan pulumi-lang-nodejs=\"`definedColumn`\" pulumi-lang-dotnet=\"`DefinedColumn`\" pulumi-lang-go=\"`definedColumn`\" pulumi-lang-python=\"`defined_column`\" pulumi-lang-yaml=\"`definedColumn`\" pulumi-lang-java=\"`definedColumn`\"\u003e`defined_column`\u003c/span\u003e below.\n"},"deviationCellVersionInSec":{"type":"string","description":"The max version offset of the table. The valid value is 1-9223372036854775807. Defaults to 86400.\n"},"enableSse":{"type":"boolean","description":"Whether enable OTS server side encryption. Default value is false.\n"},"instanceName":{"type":"string","description":"The name of the OTS instance in which table will located.\n","willReplaceOnChanges":true},"maxVersion":{"type":"integer","description":"The maximum number of versions stored in this table. The valid value is 1-2147483647.\n"},"primaryKeys":{"type":"array","items":{"$ref":"#/types/alicloud:ots/TablePrimaryKey:TablePrimaryKey"},"description":"The property of `TableMeta` which indicates the structure information of a table. It describes the attribute value of primary key. The number of \u003cspan pulumi-lang-nodejs=\"`primaryKey`\" pulumi-lang-dotnet=\"`PrimaryKey`\" pulumi-lang-go=\"`primaryKey`\" pulumi-lang-python=\"`primary_key`\" pulumi-lang-yaml=\"`primaryKey`\" pulumi-lang-java=\"`primaryKey`\"\u003e`primary_key`\u003c/span\u003e should not be less than one and not be more than four. See \u003cspan pulumi-lang-nodejs=\"`primaryKey`\" pulumi-lang-dotnet=\"`PrimaryKey`\" pulumi-lang-go=\"`primaryKey`\" pulumi-lang-python=\"`primary_key`\" pulumi-lang-yaml=\"`primaryKey`\" pulumi-lang-java=\"`primaryKey`\"\u003e`primary_key`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"sseKeyId":{"type":"string","description":". The key ID of secret. \u003cspan pulumi-lang-nodejs=\"`sseKeyId`\" pulumi-lang-dotnet=\"`SseKeyId`\" pulumi-lang-go=\"`sseKeyId`\" pulumi-lang-python=\"`sse_key_id`\" pulumi-lang-yaml=\"`sseKeyId`\" pulumi-lang-java=\"`sseKeyId`\"\u003e`sse_key_id`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`sseKeyType`\" pulumi-lang-dotnet=\"`SseKeyType`\" pulumi-lang-go=\"`sseKeyType`\" pulumi-lang-python=\"`sse_key_type`\" pulumi-lang-yaml=\"`sseKeyType`\" pulumi-lang-java=\"`sseKeyType`\"\u003e`sse_key_type`\u003c/span\u003e is set to `SSE_BYOK`.\n"},"sseKeyType":{"type":"string","description":"The key type of OTS server side encryption. `SSE_KMS_SERVICE`, `SSE_BYOK` is allowed.\n"},"sseRoleArn":{"type":"string","description":"The arn of role that can access kms service. \u003cspan pulumi-lang-nodejs=\"`sseRoleArn`\" pulumi-lang-dotnet=\"`SseRoleArn`\" pulumi-lang-go=\"`sseRoleArn`\" pulumi-lang-python=\"`sse_role_arn`\" pulumi-lang-yaml=\"`sseRoleArn`\" pulumi-lang-java=\"`sseRoleArn`\"\u003e`sse_role_arn`\u003c/span\u003e is valid only when \u003cspan pulumi-lang-nodejs=\"`sseKeyType`\" pulumi-lang-dotnet=\"`SseKeyType`\" pulumi-lang-go=\"`sseKeyType`\" pulumi-lang-python=\"`sse_key_type`\" pulumi-lang-yaml=\"`sseKeyType`\" pulumi-lang-java=\"`sseKeyType`\"\u003e`sse_key_type`\u003c/span\u003e is set to `SSE_BYOK`.\n"},"tableName":{"type":"string","description":"The table name of the OTS instance. If changed, a new table would be created.\n","willReplaceOnChanges":true},"timeToLive":{"type":"integer","description":"The retention time of data stored in this table (unit: second). The value maximum is 2147483647 and -1 means never expired.\n"}},"type":"object"}},"alicloud:ots/tunnel:Tunnel":{"description":"Provides an OTS tunnel resource.\n\nFor information about OTS tunnel and how to use it, see [Tunnel overview](https://www.alibabacloud.com/help/en/tablestore/latest/tunnel-service-overview).\n\n\u003e **NOTE:** Available since v1.172.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultInstance = new alicloud.ots.Instance(\"default\", {\n    name: `${name}-${_default.result}`,\n    description: name,\n    accessedBy: \"Any\",\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n});\nconst defaultTable = new alicloud.ots.Table(\"default\", {\n    instanceName: defaultInstance.name,\n    tableName: \"tf_example\",\n    timeToLive: -1,\n    maxVersion: 1,\n    enableSse: true,\n    sseKeyType: \"SSE_KMS_SERVICE\",\n    primaryKeys: [\n        {\n            name: \"pk1\",\n            type: \"Integer\",\n        },\n        {\n            name: \"pk2\",\n            type: \"String\",\n        },\n        {\n            name: \"pk3\",\n            type: \"Binary\",\n        },\n    ],\n});\nconst defaultTunnel = new alicloud.ots.Tunnel(\"default\", {\n    instanceName: defaultInstance.name,\n    tableName: defaultTable.tableName,\n    tunnelName: \"tf_example\",\n    tunnelType: \"BaseAndStream\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_instance = alicloud.ots.Instance(\"default\",\n    name=f\"{name}-{default['result']}\",\n    description=name,\n    accessed_by=\"Any\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    })\ndefault_table = alicloud.ots.Table(\"default\",\n    instance_name=default_instance.name,\n    table_name=\"tf_example\",\n    time_to_live=-1,\n    max_version=1,\n    enable_sse=True,\n    sse_key_type=\"SSE_KMS_SERVICE\",\n    primary_keys=[\n        {\n            \"name\": \"pk1\",\n            \"type\": \"Integer\",\n        },\n        {\n            \"name\": \"pk2\",\n            \"type\": \"String\",\n        },\n        {\n            \"name\": \"pk3\",\n            \"type\": \"Binary\",\n        },\n    ])\ndefault_tunnel = alicloud.ots.Tunnel(\"default\",\n    instance_name=default_instance.name,\n    table_name=default_table.table_name,\n    tunnel_name=\"tf_example\",\n    tunnel_type=\"BaseAndStream\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultInstance = new AliCloud.Ots.Instance(\"default\", new()\n    {\n        Name = $\"{name}-{@default.Result}\",\n        Description = name,\n        AccessedBy = \"Any\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n    var defaultTable = new AliCloud.Ots.Table(\"default\", new()\n    {\n        InstanceName = defaultInstance.Name,\n        TableName = \"tf_example\",\n        TimeToLive = -1,\n        MaxVersion = 1,\n        EnableSse = true,\n        SseKeyType = \"SSE_KMS_SERVICE\",\n        PrimaryKeys = new[]\n        {\n            new AliCloud.Ots.Inputs.TablePrimaryKeyArgs\n            {\n                Name = \"pk1\",\n                Type = \"Integer\",\n            },\n            new AliCloud.Ots.Inputs.TablePrimaryKeyArgs\n            {\n                Name = \"pk2\",\n                Type = \"String\",\n            },\n            new AliCloud.Ots.Inputs.TablePrimaryKeyArgs\n            {\n                Name = \"pk3\",\n                Type = \"Binary\",\n            },\n        },\n    });\n\n    var defaultTunnel = new AliCloud.Ots.Tunnel(\"default\", new()\n    {\n        InstanceName = defaultInstance.Name,\n        TableName = defaultTable.TableName,\n        TunnelName = \"tf_example\",\n        TunnelType = \"BaseAndStream\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ots.NewInstance(ctx, \"default\", \u0026ots.InstanceArgs{\n\t\t\tName:        pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tAccessedBy:  pulumi.String(\"Any\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTable, err := ots.NewTable(ctx, \"default\", \u0026ots.TableArgs{\n\t\t\tInstanceName: defaultInstance.Name,\n\t\t\tTableName:    pulumi.String(\"tf_example\"),\n\t\t\tTimeToLive:   pulumi.Int(-1),\n\t\t\tMaxVersion:   pulumi.Int(1),\n\t\t\tEnableSse:    pulumi.Bool(true),\n\t\t\tSseKeyType:   pulumi.String(\"SSE_KMS_SERVICE\"),\n\t\t\tPrimaryKeys: ots.TablePrimaryKeyArray{\n\t\t\t\t\u0026ots.TablePrimaryKeyArgs{\n\t\t\t\t\tName: pulumi.String(\"pk1\"),\n\t\t\t\t\tType: pulumi.String(\"Integer\"),\n\t\t\t\t},\n\t\t\t\t\u0026ots.TablePrimaryKeyArgs{\n\t\t\t\t\tName: pulumi.String(\"pk2\"),\n\t\t\t\t\tType: pulumi.String(\"String\"),\n\t\t\t\t},\n\t\t\t\t\u0026ots.TablePrimaryKeyArgs{\n\t\t\t\t\tName: pulumi.String(\"pk3\"),\n\t\t\t\t\tType: pulumi.String(\"Binary\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ots.NewTunnel(ctx, \"default\", \u0026ots.TunnelArgs{\n\t\t\tInstanceName: defaultInstance.Name,\n\t\t\tTableName:    defaultTable.TableName,\n\t\t\tTunnelName:   pulumi.String(\"tf_example\"),\n\t\t\tTunnelType:   pulumi.String(\"BaseAndStream\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ots.Instance;\nimport com.pulumi.alicloud.ots.InstanceArgs;\nimport com.pulumi.alicloud.ots.Table;\nimport com.pulumi.alicloud.ots.TableArgs;\nimport com.pulumi.alicloud.ots.inputs.TablePrimaryKeyArgs;\nimport com.pulumi.alicloud.ots.Tunnel;\nimport com.pulumi.alicloud.ots.TunnelArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .name(String.format(\"%s-%s\", name,default_.result()))\n            .description(name)\n            .accessedBy(\"Any\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n        var defaultTable = new Table(\"defaultTable\", TableArgs.builder()\n            .instanceName(defaultInstance.name())\n            .tableName(\"tf_example\")\n            .timeToLive(-1)\n            .maxVersion(1)\n            .enableSse(true)\n            .sseKeyType(\"SSE_KMS_SERVICE\")\n            .primaryKeys(            \n                TablePrimaryKeyArgs.builder()\n                    .name(\"pk1\")\n                    .type(\"Integer\")\n                    .build(),\n                TablePrimaryKeyArgs.builder()\n                    .name(\"pk2\")\n                    .type(\"String\")\n                    .build(),\n                TablePrimaryKeyArgs.builder()\n                    .name(\"pk3\")\n                    .type(\"Binary\")\n                    .build())\n            .build());\n\n        var defaultTunnel = new Tunnel(\"defaultTunnel\", TunnelArgs.builder()\n            .instanceName(defaultInstance.name())\n            .tableName(defaultTable.tableName())\n            .tunnelName(\"tf_example\")\n            .tunnelType(\"BaseAndStream\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultInstance:\n    type: alicloud:ots:Instance\n    name: default\n    properties:\n      name: ${name}-${default.result}\n      description: ${name}\n      accessedBy: Any\n      tags:\n        Created: TF\n        For: example\n  defaultTable:\n    type: alicloud:ots:Table\n    name: default\n    properties:\n      instanceName: ${defaultInstance.name}\n      tableName: tf_example\n      timeToLive: -1\n      maxVersion: 1\n      enableSse: true\n      sseKeyType: SSE_KMS_SERVICE\n      primaryKeys:\n        - name: pk1\n          type: Integer\n        - name: pk2\n          type: String\n        - name: pk3\n          type: Binary\n  defaultTunnel:\n    type: alicloud:ots:Tunnel\n    name: default\n    properties:\n      instanceName: ${defaultInstance.name}\n      tableName: ${defaultTable.tableName}\n      tunnelName: tf_example\n      tunnelType: BaseAndStream\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nOTS tunnel can be imported using id, e.g.\n\n```sh\n$ pulumi import alicloud:ots/tunnel:Tunnel foo \u003cinstance_name\u003e:\u003ctable_name\u003e:\u003ctunnel_name\u003e\n```\n\n","properties":{"channels":{"type":"array","items":{"$ref":"#/types/alicloud:ots/TunnelChannel:TunnelChannel"},"description":"The channels of OTS tunnel. Each element contains the following attributes:\n"},"createTime":{"type":"integer","description":"The creation time of the Tunnel.\n"},"expired":{"type":"boolean","description":"Whether the tunnel has expired.\n"},"instanceName":{"type":"string","description":"The name of the OTS instance in which table will located.\n"},"tableName":{"type":"string","description":"The name of the OTS table. If changed, a new table would be created.\n"},"tunnelId":{"type":"string","description":"The tunnel id of the OTS which could not be changed.\n"},"tunnelName":{"type":"string","description":"The name of the OTS tunnel. If changed, a new tunnel would be created.\n"},"tunnelRpo":{"type":"integer","description":"The latest consumption time of the tunnel, unix time in nanosecond.\n"},"tunnelStage":{"type":"string","description":"The stage of OTS tunnel, valid values: `InitBaseDataAndStreamShard`, `ProcessBaseData`, `ProcessStream`.\n"},"tunnelType":{"type":"string","description":"The type of the OTS tunnel. Only `BaseAndStream`, `BaseData` or `Stream` is allowed.\n"}},"required":["channels","createTime","expired","instanceName","tableName","tunnelId","tunnelName","tunnelRpo","tunnelStage","tunnelType"],"inputProperties":{"instanceName":{"type":"string","description":"The name of the OTS instance in which table will located.\n","willReplaceOnChanges":true},"tableName":{"type":"string","description":"The name of the OTS table. If changed, a new table would be created.\n","willReplaceOnChanges":true},"tunnelName":{"type":"string","description":"The name of the OTS tunnel. If changed, a new tunnel would be created.\n","willReplaceOnChanges":true},"tunnelType":{"type":"string","description":"The type of the OTS tunnel. Only `BaseAndStream`, `BaseData` or `Stream` is allowed.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceName","tableName","tunnelName","tunnelType"],"stateInputs":{"description":"Input properties used for looking up and filtering Tunnel resources.\n","properties":{"channels":{"type":"array","items":{"$ref":"#/types/alicloud:ots/TunnelChannel:TunnelChannel"},"description":"The channels of OTS tunnel. Each element contains the following attributes:\n"},"createTime":{"type":"integer","description":"The creation time of the Tunnel.\n"},"expired":{"type":"boolean","description":"Whether the tunnel has expired.\n"},"instanceName":{"type":"string","description":"The name of the OTS instance in which table will located.\n","willReplaceOnChanges":true},"tableName":{"type":"string","description":"The name of the OTS table. If changed, a new table would be created.\n","willReplaceOnChanges":true},"tunnelId":{"type":"string","description":"The tunnel id of the OTS which could not be changed.\n"},"tunnelName":{"type":"string","description":"The name of the OTS tunnel. If changed, a new tunnel would be created.\n","willReplaceOnChanges":true},"tunnelRpo":{"type":"integer","description":"The latest consumption time of the tunnel, unix time in nanosecond.\n"},"tunnelStage":{"type":"string","description":"The stage of OTS tunnel, valid values: `InitBaseDataAndStreamShard`, `ProcessBaseData`, `ProcessStream`.\n"},"tunnelType":{"type":"string","description":"The type of the OTS tunnel. Only `BaseAndStream`, `BaseData` or `Stream` is allowed.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:pai/flowPipeline:FlowPipeline":{"description":"Provides a Pai Flow Pipeline resource.\n\n\n\nFor information about Pai Flow Pipeline and how to use it, see [What is Pipeline](https://www.alibabacloud.com/help/en/pai/developer-reference/api-paiflow-2021-02-02-createpipeline).\n\n\u003e **NOTE:** Available since v1.248.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst _default = alicloud.getAccount({});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultWjQD1e = new alicloud.pai.WorkspaceWorkspace(\"defaultWjQD1e\", {\n    description: name,\n    displayName: name,\n    workspaceName: name,\n    envTypes: [\"dev\"],\n});\nconst defaultFlowPipeline = new alicloud.pai.FlowPipeline(\"default\", {\n    workspaceId: defaultWjQD1e.id,\n    manifest: _default.then(_default =\u003e `apiVersion: \\\"core/v1\\\"\nmetadata:\n  provider: \\\"${_default.id}\\\"\n  version: \\\"v1\\\"\n  identifier: \\\"my_pipeline\\\"\n  name: \\\"source-transform\\\"\n  uuid: \\\"terraformuuid${defaultInteger.result}\\\"\n  annotations: {}\n  labels: {}\nspec:\n  inputs:\n    artifacts: []\n    parameters:\n    - name: \\\"execution_maxcompute\\\"\n      type: \\\"Map\\\"\n      value:\n        spec:\n          endpoint: \\\"http://service.cn.maxcompute.aliyun-inc.com/api\\\"\n          odpsProject: \\\"test_i****\\\"\n  outputs:\n    artifacts: []\n    parameters: []\n  arguments:\n    artifacts: []\n    parameters: []\n  dependencies: []\n  initContainers: []\n  sideCarContainers: []\n  pipelines:\n  - apiVersion: \\\"core/v1\\\"\n    metadata:\n      provider: \\\"pai\\\"\n      version: \\\"v1\\\"\n      identifier: \\\"data_source\\\"\n      name: \\\"data-source\\\"\n      uuid: \\\"2ftahdnzcod2rt6u9q\\\"\n      displayName: \\\"读数据表-1\\\"\n      annotations: {}\n      labels: {}\n    spec:\n      inputs:\n        artifacts: []\n        parameters: []\n      outputs:\n        artifacts: []\n        parameters: []\n      arguments:\n        artifacts: []\n        parameters:\n        - name: \\\"inputTableName\\\"\n          value: \\\"pai_online_project.wumai_data\\\"\n        - name: \\\"execution\\\"\n          from: \\\"{{inputs.parameters.execution_maxcompute}}\\\"\n      dependencies: []\n      initContainers: []\n      sideCarContainers: []\n      pipelines: []\n      volumes: []\n  - apiVersion: \\\"core/v1\\\"\n    metadata:\n      provider: \\\"pai\\\"\n      version: \\\"v1\\\"\n      identifier: \\\"type_transform\\\"\n      name: \\\"type-transform\\\"\n      uuid: \\\"gacnnnl4ksvbabfh6l\\\"\n      displayName: \\\"类型转换-1\\\"\n      annotations: {}\n      labels: {}\n    spec:\n      inputs:\n        artifacts: []\n        parameters: []\n      outputs:\n        artifacts: []\n        parameters: []\n      arguments:\n        artifacts:\n        - name: \\\"inputTable\\\"\n          from: \\\"{{pipelines.data_source.outputs.artifacts.outputTable}}\\\"\n        parameters:\n        - name: \\\"cols_to_double\\\"\n          value: \\\"time,hour,pm2,pm10,so2,co,no2\\\"\n        - name: \\\"execution\\\"\n          from: \\\"{{inputs.parameters.execution_maxcompute}}\\\"\n      dependencies:\n      - \\\"data_source\\\"\n      initContainers: []\n      sideCarContainers: []\n      pipelines: []\n      volumes: []\n  volumes: []\n`),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault = alicloud.get_account()\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_wj_qd1e = alicloud.pai.WorkspaceWorkspace(\"defaultWjQD1e\",\n    description=name,\n    display_name=name,\n    workspace_name=name,\n    env_types=[\"dev\"])\ndefault_flow_pipeline = alicloud.pai.FlowPipeline(\"default\",\n    workspace_id=default_wj_qd1e.id,\n    manifest=f\"\"\"apiVersion: \\\"core/v1\\\"\nmetadata:\n  provider: \\\"{default.id}\\\"\n  version: \\\"v1\\\"\n  identifier: \\\"my_pipeline\\\"\n  name: \\\"source-transform\\\"\n  uuid: \\\"terraformuuid{default_integer[\"result\"]}\\\"\n  annotations: {{}}\n  labels: {{}}\nspec:\n  inputs:\n    artifacts: []\n    parameters:\n    - name: \\\"execution_maxcompute\\\"\n      type: \\\"Map\\\"\n      value:\n        spec:\n          endpoint: \\\"http://service.cn.maxcompute.aliyun-inc.com/api\\\"\n          odpsProject: \\\"test_i****\\\"\n  outputs:\n    artifacts: []\n    parameters: []\n  arguments:\n    artifacts: []\n    parameters: []\n  dependencies: []\n  initContainers: []\n  sideCarContainers: []\n  pipelines:\n  - apiVersion: \\\"core/v1\\\"\n    metadata:\n      provider: \\\"pai\\\"\n      version: \\\"v1\\\"\n      identifier: \\\"data_source\\\"\n      name: \\\"data-source\\\"\n      uuid: \\\"2ftahdnzcod2rt6u9q\\\"\n      displayName: \\\"读数据表-1\\\"\n      annotations: {{}}\n      labels: {{}}\n    spec:\n      inputs:\n        artifacts: []\n        parameters: []\n      outputs:\n        artifacts: []\n        parameters: []\n      arguments:\n        artifacts: []\n        parameters:\n        - name: \\\"inputTableName\\\"\n          value: \\\"pai_online_project.wumai_data\\\"\n        - name: \\\"execution\\\"\n          from: \\\"{{{{inputs.parameters.execution_maxcompute}}}}\\\"\n      dependencies: []\n      initContainers: []\n      sideCarContainers: []\n      pipelines: []\n      volumes: []\n  - apiVersion: \\\"core/v1\\\"\n    metadata:\n      provider: \\\"pai\\\"\n      version: \\\"v1\\\"\n      identifier: \\\"type_transform\\\"\n      name: \\\"type-transform\\\"\n      uuid: \\\"gacnnnl4ksvbabfh6l\\\"\n      displayName: \\\"类型转换-1\\\"\n      annotations: {{}}\n      labels: {{}}\n    spec:\n      inputs:\n        artifacts: []\n        parameters: []\n      outputs:\n        artifacts: []\n        parameters: []\n      arguments:\n        artifacts:\n        - name: \\\"inputTable\\\"\n          from: \\\"{{{{pipelines.data_source.outputs.artifacts.outputTable}}}}\\\"\n        parameters:\n        - name: \\\"cols_to_double\\\"\n          value: \\\"time,hour,pm2,pm10,so2,co,no2\\\"\n        - name: \\\"execution\\\"\n          from: \\\"{{{{inputs.parameters.execution_maxcompute}}}}\\\"\n      dependencies:\n      - \\\"data_source\\\"\n      initContainers: []\n      sideCarContainers: []\n      pipelines: []\n      volumes: []\n  volumes: []\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultWjQD1e = new AliCloud.Pai.WorkspaceWorkspace(\"defaultWjQD1e\", new()\n    {\n        Description = name,\n        DisplayName = name,\n        WorkspaceName = name,\n        EnvTypes = new[]\n        {\n            \"dev\",\n        },\n    });\n\n    var defaultFlowPipeline = new AliCloud.Pai.FlowPipeline(\"default\", new()\n    {\n        WorkspaceId = defaultWjQD1e.Id,\n        Manifest = @default.Apply(@default =\u003e @$\"apiVersion: \\\"\"core/v1\\\"\"\nmetadata:\n  provider: \\\"\"{@default.Apply(getAccountResult =\u003e getAccountResult.Id)}\\\"\"\n  version: \\\"\"v1\\\"\"\n  identifier: \\\"\"my_pipeline\\\"\"\n  name: \\\"\"source-transform\\\"\"\n  uuid: \\\"\"terraformuuid{defaultInteger.Result}\\\"\"\n  annotations: {{}}\n  labels: {{}}\nspec:\n  inputs:\n    artifacts: []\n    parameters:\n    - name: \\\"\"execution_maxcompute\\\"\"\n      type: \\\"\"Map\\\"\"\n      value:\n        spec:\n          endpoint: \\\"\"http://service.cn.maxcompute.aliyun-inc.com/api\\\"\"\n          odpsProject: \\\"\"test_i****\\\"\"\n  outputs:\n    artifacts: []\n    parameters: []\n  arguments:\n    artifacts: []\n    parameters: []\n  dependencies: []\n  initContainers: []\n  sideCarContainers: []\n  pipelines:\n  - apiVersion: \\\"\"core/v1\\\"\"\n    metadata:\n      provider: \\\"\"pai\\\"\"\n      version: \\\"\"v1\\\"\"\n      identifier: \\\"\"data_source\\\"\"\n      name: \\\"\"data-source\\\"\"\n      uuid: \\\"\"2ftahdnzcod2rt6u9q\\\"\"\n      displayName: \\\"\"读数据表-1\\\"\"\n      annotations: {{}}\n      labels: {{}}\n    spec:\n      inputs:\n        artifacts: []\n        parameters: []\n      outputs:\n        artifacts: []\n        parameters: []\n      arguments:\n        artifacts: []\n        parameters:\n        - name: \\\"\"inputTableName\\\"\"\n          value: \\\"\"pai_online_project.wumai_data\\\"\"\n        - name: \\\"\"execution\\\"\"\n          from: \\\"\"{{{{inputs.parameters.execution_maxcompute}}}}\\\"\"\n      dependencies: []\n      initContainers: []\n      sideCarContainers: []\n      pipelines: []\n      volumes: []\n  - apiVersion: \\\"\"core/v1\\\"\"\n    metadata:\n      provider: \\\"\"pai\\\"\"\n      version: \\\"\"v1\\\"\"\n      identifier: \\\"\"type_transform\\\"\"\n      name: \\\"\"type-transform\\\"\"\n      uuid: \\\"\"gacnnnl4ksvbabfh6l\\\"\"\n      displayName: \\\"\"类型转换-1\\\"\"\n      annotations: {{}}\n      labels: {{}}\n    spec:\n      inputs:\n        artifacts: []\n        parameters: []\n      outputs:\n        artifacts: []\n        parameters: []\n      arguments:\n        artifacts:\n        - name: \\\"\"inputTable\\\"\"\n          from: \\\"\"{{{{pipelines.data_source.outputs.artifacts.outputTable}}}}\\\"\"\n        parameters:\n        - name: \\\"\"cols_to_double\\\"\"\n          value: \\\"\"time,hour,pm2,pm10,so2,co,no2\\\"\"\n        - name: \\\"\"execution\\\"\"\n          from: \\\"\"{{{{inputs.parameters.execution_maxcompute}}}}\\\"\"\n      dependencies:\n      - \\\"\"data_source\\\"\"\n      initContainers: []\n      sideCarContainers: []\n      pipelines: []\n      volumes: []\n  volumes: []\n\"),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pai\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultWjQD1e, err := pai.NewWorkspaceWorkspace(ctx, \"defaultWjQD1e\", \u0026pai.WorkspaceWorkspaceArgs{\n\t\t\tDescription:   pulumi.String(name),\n\t\t\tDisplayName:   pulumi.String(name),\n\t\t\tWorkspaceName: pulumi.String(name),\n\t\t\tEnvTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"dev\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pai.NewFlowPipeline(ctx, \"default\", \u0026pai.FlowPipelineArgs{\n\t\t\tWorkspaceId: defaultWjQD1e.ID(),\n\t\t\tManifest: pulumi.Sprintf(`apiVersion: \\\"core/v1\\\"\nmetadata:\n  provider: \\\"%v\\\"\n  version: \\\"v1\\\"\n  identifier: \\\"my_pipeline\\\"\n  name: \\\"source-transform\\\"\n  uuid: \\\"terraformuuid%v\\\"\n  annotations: {}\n  labels: {}\nspec:\n  inputs:\n    artifacts: []\n    parameters:\n    - name: \\\"execution_maxcompute\\\"\n      type: \\\"Map\\\"\n      value:\n        spec:\n          endpoint: \\\"http://service.cn.maxcompute.aliyun-inc.com/api\\\"\n          odpsProject: \\\"test_i****\\\"\n  outputs:\n    artifacts: []\n    parameters: []\n  arguments:\n    artifacts: []\n    parameters: []\n  dependencies: []\n  initContainers: []\n  sideCarContainers: []\n  pipelines:\n  - apiVersion: \\\"core/v1\\\"\n    metadata:\n      provider: \\\"pai\\\"\n      version: \\\"v1\\\"\n      identifier: \\\"data_source\\\"\n      name: \\\"data-source\\\"\n      uuid: \\\"2ftahdnzcod2rt6u9q\\\"\n      displayName: \\\"读数据表-1\\\"\n      annotations: {}\n      labels: {}\n    spec:\n      inputs:\n        artifacts: []\n        parameters: []\n      outputs:\n        artifacts: []\n        parameters: []\n      arguments:\n        artifacts: []\n        parameters:\n        - name: \\\"inputTableName\\\"\n          value: \\\"pai_online_project.wumai_data\\\"\n        - name: \\\"execution\\\"\n          from: \\\"{{inputs.parameters.execution_maxcompute}}\\\"\n      dependencies: []\n      initContainers: []\n      sideCarContainers: []\n      pipelines: []\n      volumes: []\n  - apiVersion: \\\"core/v1\\\"\n    metadata:\n      provider: \\\"pai\\\"\n      version: \\\"v1\\\"\n      identifier: \\\"type_transform\\\"\n      name: \\\"type-transform\\\"\n      uuid: \\\"gacnnnl4ksvbabfh6l\\\"\n      displayName: \\\"类型转换-1\\\"\n      annotations: {}\n      labels: {}\n    spec:\n      inputs:\n        artifacts: []\n        parameters: []\n      outputs:\n        artifacts: []\n        parameters: []\n      arguments:\n        artifacts:\n        - name: \\\"inputTable\\\"\n          from: \\\"{{pipelines.data_source.outputs.artifacts.outputTable}}\\\"\n        parameters:\n        - name: \\\"cols_to_double\\\"\n          value: \\\"time,hour,pm2,pm10,so2,co,no2\\\"\n        - name: \\\"execution\\\"\n          from: \\\"{{inputs.parameters.execution_maxcompute}}\\\"\n      dependencies:\n      - \\\"data_source\\\"\n      initContainers: []\n      sideCarContainers: []\n      pipelines: []\n      volumes: []\n  volumes: []\n`, _default.Id, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspace;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspaceArgs;\nimport com.pulumi.alicloud.pai.FlowPipeline;\nimport com.pulumi.alicloud.pai.FlowPipelineArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultWjQD1e = new WorkspaceWorkspace(\"defaultWjQD1e\", WorkspaceWorkspaceArgs.builder()\n            .description(name)\n            .displayName(name)\n            .workspaceName(name)\n            .envTypes(\"dev\")\n            .build());\n\n        var defaultFlowPipeline = new FlowPipeline(\"defaultFlowPipeline\", FlowPipelineArgs.builder()\n            .workspaceId(defaultWjQD1e.id())\n            .manifest(\"\"\"\napiVersion: \\\"core/v1\\\"\nmetadata:\n  provider: \\\"%s\\\"\n  version: \\\"v1\\\"\n  identifier: \\\"my_pipeline\\\"\n  name: \\\"source-transform\\\"\n  uuid: \\\"terraformuuid%s\\\"\n  annotations: {}\n  labels: {}\nspec:\n  inputs:\n    artifacts: []\n    parameters:\n    - name: \\\"execution_maxcompute\\\"\n      type: \\\"Map\\\"\n      value:\n        spec:\n          endpoint: \\\"http://service.cn.maxcompute.aliyun-inc.com/api\\\"\n          odpsProject: \\\"test_i****\\\"\n  outputs:\n    artifacts: []\n    parameters: []\n  arguments:\n    artifacts: []\n    parameters: []\n  dependencies: []\n  initContainers: []\n  sideCarContainers: []\n  pipelines:\n  - apiVersion: \\\"core/v1\\\"\n    metadata:\n      provider: \\\"pai\\\"\n      version: \\\"v1\\\"\n      identifier: \\\"data_source\\\"\n      name: \\\"data-source\\\"\n      uuid: \\\"2ftahdnzcod2rt6u9q\\\"\n      displayName: \\\"读数据表-1\\\"\n      annotations: {}\n      labels: {}\n    spec:\n      inputs:\n        artifacts: []\n        parameters: []\n      outputs:\n        artifacts: []\n        parameters: []\n      arguments:\n        artifacts: []\n        parameters:\n        - name: \\\"inputTableName\\\"\n          value: \\\"pai_online_project.wumai_data\\\"\n        - name: \\\"execution\\\"\n          from: \\\"{{inputs.parameters.execution_maxcompute}}\\\"\n      dependencies: []\n      initContainers: []\n      sideCarContainers: []\n      pipelines: []\n      volumes: []\n  - apiVersion: \\\"core/v1\\\"\n    metadata:\n      provider: \\\"pai\\\"\n      version: \\\"v1\\\"\n      identifier: \\\"type_transform\\\"\n      name: \\\"type-transform\\\"\n      uuid: \\\"gacnnnl4ksvbabfh6l\\\"\n      displayName: \\\"类型转换-1\\\"\n      annotations: {}\n      labels: {}\n    spec:\n      inputs:\n        artifacts: []\n        parameters: []\n      outputs:\n        artifacts: []\n        parameters: []\n      arguments:\n        artifacts:\n        - name: \\\"inputTable\\\"\n          from: \\\"{{pipelines.data_source.outputs.artifacts.outputTable}}\\\"\n        parameters:\n        - name: \\\"cols_to_double\\\"\n          value: \\\"time,hour,pm2,pm10,so2,co,no2\\\"\n        - name: \\\"execution\\\"\n          from: \\\"{{inputs.parameters.execution_maxcompute}}\\\"\n      dependencies:\n      - \\\"data_source\\\"\n      initContainers: []\n      sideCarContainers: []\n      pipelines: []\n      volumes: []\n  volumes: []\n\", default_.id(),defaultInteger.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultWjQD1e:\n    type: alicloud:pai:WorkspaceWorkspace\n    properties:\n      description: ${name}\n      displayName: ${name}\n      workspaceName: ${name}\n      envTypes:\n        - dev\n  defaultFlowPipeline:\n    type: alicloud:pai:FlowPipeline\n    name: default\n    properties:\n      workspaceId: ${defaultWjQD1e.id}\n      manifest: |\n        apiVersion: \\\"core/v1\\\"\n        metadata:\n          provider: \\\"${default.id}\\\"\n          version: \\\"v1\\\"\n          identifier: \\\"my_pipeline\\\"\n          name: \\\"source-transform\\\"\n          uuid: \\\"terraformuuid${defaultInteger.result}\\\"\n          annotations: {}\n          labels: {}\n        spec:\n          inputs:\n            artifacts: []\n            parameters:\n            - name: \\\"execution_maxcompute\\\"\n              type: \\\"Map\\\"\n              value:\n                spec:\n                  endpoint: \\\"http://service.cn.maxcompute.aliyun-inc.com/api\\\"\n                  odpsProject: \\\"test_i****\\\"\n          outputs:\n            artifacts: []\n            parameters: []\n          arguments:\n            artifacts: []\n            parameters: []\n          dependencies: []\n          initContainers: []\n          sideCarContainers: []\n          pipelines:\n          - apiVersion: \\\"core/v1\\\"\n            metadata:\n              provider: \\\"pai\\\"\n              version: \\\"v1\\\"\n              identifier: \\\"data_source\\\"\n              name: \\\"data-source\\\"\n              uuid: \\\"2ftahdnzcod2rt6u9q\\\"\n              displayName: \\\"读数据表-1\\\"\n              annotations: {}\n              labels: {}\n            spec:\n              inputs:\n                artifacts: []\n                parameters: []\n              outputs:\n                artifacts: []\n                parameters: []\n              arguments:\n                artifacts: []\n                parameters:\n                - name: \\\"inputTableName\\\"\n                  value: \\\"pai_online_project.wumai_data\\\"\n                - name: \\\"execution\\\"\n                  from: \\\"{{inputs.parameters.execution_maxcompute}}\\\"\n              dependencies: []\n              initContainers: []\n              sideCarContainers: []\n              pipelines: []\n              volumes: []\n          - apiVersion: \\\"core/v1\\\"\n            metadata:\n              provider: \\\"pai\\\"\n              version: \\\"v1\\\"\n              identifier: \\\"type_transform\\\"\n              name: \\\"type-transform\\\"\n              uuid: \\\"gacnnnl4ksvbabfh6l\\\"\n              displayName: \\\"类型转换-1\\\"\n              annotations: {}\n              labels: {}\n            spec:\n              inputs:\n                artifacts: []\n                parameters: []\n              outputs:\n                artifacts: []\n                parameters: []\n              arguments:\n                artifacts:\n                - name: \\\"inputTable\\\"\n                  from: \\\"{{pipelines.data_source.outputs.artifacts.outputTable}}\\\"\n                parameters:\n                - name: \\\"cols_to_double\\\"\n                  value: \\\"time,hour,pm2,pm10,so2,co,no2\\\"\n                - name: \\\"execution\\\"\n                  from: \\\"{{inputs.parameters.execution_maxcompute}}\\\"\n              dependencies:\n              - \\\"data_source\\\"\n              initContainers: []\n              sideCarContainers: []\n              pipelines: []\n              volumes: []\n          volumes: []\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPai Flow Pipeline can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pai/flowPipeline:FlowPipeline example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"manifest":{"type":"string","description":"The pipeline definition. For more information, see the sample pipeline definition).\n"},"workspaceId":{"type":"string","description":"The ID of the workspace.\n"}},"required":["createTime","manifest","workspaceId"],"inputProperties":{"manifest":{"type":"string","description":"The pipeline definition. For more information, see the sample pipeline definition).\n"},"workspaceId":{"type":"string","description":"The ID of the workspace.\n","willReplaceOnChanges":true}},"requiredInputs":["manifest","workspaceId"],"stateInputs":{"description":"Input properties used for looking up and filtering FlowPipeline resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"manifest":{"type":"string","description":"The pipeline definition. For more information, see the sample pipeline definition).\n"},"workspaceId":{"type":"string","description":"The ID of the workspace.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:pai/service:Service":{"description":"Provides a PAI Service resource.\n\nEas service instance.\n\nFor information about PAI Service and how to use it, see [What is Service](https://www.alibabacloud.com/help/en/pai/developer-reference/api-eas-2021-07-01-createservice).\n\n\u003e **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e has been removed since version 1.245.0. Please use new field \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e.\n\n\u003e **NOTE:** Available since v1.238.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.pai.Service(\"default\", {\n    develop: \"false\",\n    serviceConfig: JSON.stringify({\n        metadata: {\n            cpu: 1,\n            gpu: 0,\n            instance: 1,\n            memory: 2000,\n            name: \"tfexample\",\n            rpc: {\n                keepalive: 70000,\n            },\n        },\n        model_path: \"http://eas-data.oss-cn-shanghai.aliyuncs.com/processors/echo_processor_release.tar.gz\",\n        processor_entry: \"libecho.so\",\n        processor_path: \"http://eas-data.oss-cn-shanghai.aliyuncs.com/processors/echo_processor_release.tar.gz\",\n        processor_type: \"cpp\",\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.pai.Service(\"default\",\n    develop=\"false\",\n    service_config=json.dumps({\n        \"metadata\": {\n            \"cpu\": 1,\n            \"gpu\": 0,\n            \"instance\": 1,\n            \"memory\": 2000,\n            \"name\": \"tfexample\",\n            \"rpc\": {\n                \"keepalive\": 70000,\n            },\n        },\n        \"model_path\": \"http://eas-data.oss-cn-shanghai.aliyuncs.com/processors/echo_processor_release.tar.gz\",\n        \"processor_entry\": \"libecho.so\",\n        \"processor_path\": \"http://eas-data.oss-cn-shanghai.aliyuncs.com/processors/echo_processor_release.tar.gz\",\n        \"processor_type\": \"cpp\",\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Pai.Service(\"default\", new()\n    {\n        Develop = \"false\",\n        ServiceConfig = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"metadata\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"cpu\"] = 1,\n                [\"gpu\"] = 0,\n                [\"instance\"] = 1,\n                [\"memory\"] = 2000,\n                [\"name\"] = \"tfexample\",\n                [\"rpc\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"keepalive\"] = 70000,\n                },\n            },\n            [\"model_path\"] = \"http://eas-data.oss-cn-shanghai.aliyuncs.com/processors/echo_processor_release.tar.gz\",\n            [\"processor_entry\"] = \"libecho.so\",\n            [\"processor_path\"] = \"http://eas-data.oss-cn-shanghai.aliyuncs.com/processors/echo_processor_release.tar.gz\",\n            [\"processor_type\"] = \"cpp\",\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pai\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"metadata\": map[string]interface{}{\n\t\t\t\t\"cpu\":      1,\n\t\t\t\t\"gpu\":      0,\n\t\t\t\t\"instance\": 1,\n\t\t\t\t\"memory\":   2000,\n\t\t\t\t\"name\":     \"tfexample\",\n\t\t\t\t\"rpc\": map[string]interface{}{\n\t\t\t\t\t\"keepalive\": 70000,\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"model_path\":      \"http://eas-data.oss-cn-shanghai.aliyuncs.com/processors/echo_processor_release.tar.gz\",\n\t\t\t\"processor_entry\": \"libecho.so\",\n\t\t\t\"processor_path\":  \"http://eas-data.oss-cn-shanghai.aliyuncs.com/processors/echo_processor_release.tar.gz\",\n\t\t\t\"processor_type\":  \"cpp\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = pai.NewService(ctx, \"default\", \u0026pai.ServiceArgs{\n\t\t\tDevelop:       pulumi.String(\"false\"),\n\t\t\tServiceConfig: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pai.Service;\nimport com.pulumi.alicloud.pai.ServiceArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Service(\"default\", ServiceArgs.builder()\n            .develop(\"false\")\n            .serviceConfig(serializeJson(\n                jsonObject(\n                    jsonProperty(\"metadata\", jsonObject(\n                        jsonProperty(\"cpu\", 1),\n                        jsonProperty(\"gpu\", 0),\n                        jsonProperty(\"instance\", 1),\n                        jsonProperty(\"memory\", 2000),\n                        jsonProperty(\"name\", \"tfexample\"),\n                        jsonProperty(\"rpc\", jsonObject(\n                            jsonProperty(\"keepalive\", 70000)\n                        ))\n                    )),\n                    jsonProperty(\"model_path\", \"http://eas-data.oss-cn-shanghai.aliyuncs.com/processors/echo_processor_release.tar.gz\"),\n                    jsonProperty(\"processor_entry\", \"libecho.so\"),\n                    jsonProperty(\"processor_path\", \"http://eas-data.oss-cn-shanghai.aliyuncs.com/processors/echo_processor_release.tar.gz\"),\n                    jsonProperty(\"processor_type\", \"cpp\")\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:pai:Service\n    properties:\n      develop: 'false'\n      serviceConfig:\n        fn::toJSON:\n          metadata:\n            cpu: 1\n            gpu: 0\n            instance: 1\n            memory: 2000\n            name: tfexample\n            rpc:\n              keepalive: 70000\n          model_path: http://eas-data.oss-cn-shanghai.aliyuncs.com/processors/echo_processor_release.tar.gz\n          processor_entry: libecho.so\n          processor_path: http://eas-data.oss-cn-shanghai.aliyuncs.com/processors/echo_processor_release.tar.gz\n          processor_type: cpp\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPAI Service can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pai/service:Service example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"Creation time of the service\n"},"develop":{"type":"string","description":"Whether to enter the development mode.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"serviceConfig":{"type":"string","description":"Service configuration information. Please refer to https://www.alibabacloud.com/help/en/pai/user-guide/parameters-of-model-services\n"},"status":{"type":"string","description":"Service Current Status.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"workspaceId":{"type":"string","description":"Workspace id\n"}},"required":["createTime","regionId","serviceConfig","status"],"inputProperties":{"develop":{"type":"string","description":"Whether to enter the development mode.\n"},"serviceConfig":{"type":"string","description":"Service configuration information. Please refer to https://www.alibabacloud.com/help/en/pai/user-guide/parameters-of-model-services\n"},"status":{"type":"string","description":"Service Current Status.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"workspaceId":{"type":"string","description":"Workspace id\n"}},"requiredInputs":["serviceConfig"],"stateInputs":{"description":"Input properties used for looking up and filtering Service resources.\n","properties":{"createTime":{"type":"string","description":"Creation time of the service\n"},"develop":{"type":"string","description":"Whether to enter the development mode.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"serviceConfig":{"type":"string","description":"Service configuration information. Please refer to https://www.alibabacloud.com/help/en/pai/user-guide/parameters-of-model-services\n"},"status":{"type":"string","description":"Service Current Status.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"workspaceId":{"type":"string","description":"Workspace id\n"}},"type":"object"}},"alicloud:pai/workspaceCodeSource:WorkspaceCodeSource":{"description":"Provides a PAI Workspace Code Source resource.\n\n\n\nFor information about PAI Workspace Code Source and how to use it, see [What is Code Source](https://next.api.alibabacloud.com/document/AIWorkSpace/2021-02-04/CreateCodeSource).\n\n\u003e **NOTE:** Available since v1.236.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst defaultgklBnM = new alicloud.pai.WorkspaceWorkspace(\"defaultgklBnM\", {\n    description: \"for-pop-example\",\n    displayName: \"CodeSourceTest_1732796227\",\n    workspaceName: name,\n    envTypes: [\"prod\"],\n});\nconst _default = new alicloud.pai.WorkspaceCodeSource(\"default\", {\n    mountPath: \"/mnt/code/dir_01/\",\n    codeRepo: \"https://github.com/mattn/go-sqlite3.git\",\n    description: \"desc-01\",\n    codeRepoAccessToken: \"token-01\",\n    accessibility: \"PRIVATE\",\n    displayName: \"codesource-example-01\",\n    workspaceId: defaultgklBnM.id,\n    codeBranch: \"master\",\n    codeRepoUserName: \"user-01\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefaultgkl_bn_m = alicloud.pai.WorkspaceWorkspace(\"defaultgklBnM\",\n    description=\"for-pop-example\",\n    display_name=\"CodeSourceTest_1732796227\",\n    workspace_name=name,\n    env_types=[\"prod\"])\ndefault = alicloud.pai.WorkspaceCodeSource(\"default\",\n    mount_path=\"/mnt/code/dir_01/\",\n    code_repo=\"https://github.com/mattn/go-sqlite3.git\",\n    description=\"desc-01\",\n    code_repo_access_token=\"token-01\",\n    accessibility=\"PRIVATE\",\n    display_name=\"codesource-example-01\",\n    workspace_id=defaultgkl_bn_m.id,\n    code_branch=\"master\",\n    code_repo_user_name=\"user-01\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var defaultgklBnM = new AliCloud.Pai.WorkspaceWorkspace(\"defaultgklBnM\", new()\n    {\n        Description = \"for-pop-example\",\n        DisplayName = \"CodeSourceTest_1732796227\",\n        WorkspaceName = name,\n        EnvTypes = new[]\n        {\n            \"prod\",\n        },\n    });\n\n    var @default = new AliCloud.Pai.WorkspaceCodeSource(\"default\", new()\n    {\n        MountPath = \"/mnt/code/dir_01/\",\n        CodeRepo = \"https://github.com/mattn/go-sqlite3.git\",\n        Description = \"desc-01\",\n        CodeRepoAccessToken = \"token-01\",\n        Accessibility = \"PRIVATE\",\n        DisplayName = \"codesource-example-01\",\n        WorkspaceId = defaultgklBnM.Id,\n        CodeBranch = \"master\",\n        CodeRepoUserName = \"user-01\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pai\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultgklBnM, err := pai.NewWorkspaceWorkspace(ctx, \"defaultgklBnM\", \u0026pai.WorkspaceWorkspaceArgs{\n\t\t\tDescription:   pulumi.String(\"for-pop-example\"),\n\t\t\tDisplayName:   pulumi.String(\"CodeSourceTest_1732796227\"),\n\t\t\tWorkspaceName: pulumi.String(name),\n\t\t\tEnvTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"prod\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pai.NewWorkspaceCodeSource(ctx, \"default\", \u0026pai.WorkspaceCodeSourceArgs{\n\t\t\tMountPath:           pulumi.String(\"/mnt/code/dir_01/\"),\n\t\t\tCodeRepo:            pulumi.String(\"https://github.com/mattn/go-sqlite3.git\"),\n\t\t\tDescription:         pulumi.String(\"desc-01\"),\n\t\t\tCodeRepoAccessToken: pulumi.String(\"token-01\"),\n\t\t\tAccessibility:       pulumi.String(\"PRIVATE\"),\n\t\t\tDisplayName:         pulumi.String(\"codesource-example-01\"),\n\t\t\tWorkspaceId:         defaultgklBnM.ID(),\n\t\t\tCodeBranch:          pulumi.String(\"master\"),\n\t\t\tCodeRepoUserName:    pulumi.String(\"user-01\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspace;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspaceArgs;\nimport com.pulumi.alicloud.pai.WorkspaceCodeSource;\nimport com.pulumi.alicloud.pai.WorkspaceCodeSourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var defaultgklBnM = new WorkspaceWorkspace(\"defaultgklBnM\", WorkspaceWorkspaceArgs.builder()\n            .description(\"for-pop-example\")\n            .displayName(\"CodeSourceTest_1732796227\")\n            .workspaceName(name)\n            .envTypes(\"prod\")\n            .build());\n\n        var default_ = new WorkspaceCodeSource(\"default\", WorkspaceCodeSourceArgs.builder()\n            .mountPath(\"/mnt/code/dir_01/\")\n            .codeRepo(\"https://github.com/mattn/go-sqlite3.git\")\n            .description(\"desc-01\")\n            .codeRepoAccessToken(\"token-01\")\n            .accessibility(\"PRIVATE\")\n            .displayName(\"codesource-example-01\")\n            .workspaceId(defaultgklBnM.id())\n            .codeBranch(\"master\")\n            .codeRepoUserName(\"user-01\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  defaultgklBnM:\n    type: alicloud:pai:WorkspaceWorkspace\n    properties:\n      description: for-pop-example\n      displayName: CodeSourceTest_1732796227\n      workspaceName: ${name}\n      envTypes:\n        - prod\n  default:\n    type: alicloud:pai:WorkspaceCodeSource\n    properties:\n      mountPath: /mnt/code/dir_01/\n      codeRepo: https://github.com/mattn/go-sqlite3.git\n      description: desc-01\n      codeRepoAccessToken: token-01\n      accessibility: PRIVATE\n      displayName: codesource-example-01\n      workspaceId: ${defaultgklBnM.id}\n      codeBranch: master\n      codeRepoUserName: user-01\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPAI Workspace Code Source can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pai/workspaceCodeSource:WorkspaceCodeSource example \u003cid\u003e\n```\n\n","properties":{"accessibility":{"type":"string","description":"Visibility of the code configuration, possible values:\n- PRIVATE: In this workspace, it is only visible to you and the administrator.\n- PUBLIC: In this workspace, it is visible to everyone.\n"},"codeBranch":{"type":"string","description":"Code repository branch.\n"},"codeCommit":{"type":"string","description":"The code CommitId.\n"},"codeRepo":{"type":"string","description":"Code repository address.\n"},"codeRepoAccessToken":{"type":"string","description":"The Token used to access the code repository.\n"},"codeRepoUserName":{"type":"string","description":"The user name of the code repository.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"A detailed description of the code configuration.\n"},"displayName":{"type":"string","description":"Code source configuration name.\n"},"mountPath":{"type":"string","description":"The local Mount Directory of the code.\n"},"workspaceId":{"type":"string","description":"The ID of the workspace.\n"}},"required":["accessibility","codeRepo","createTime","displayName","mountPath","workspaceId"],"inputProperties":{"accessibility":{"type":"string","description":"Visibility of the code configuration, possible values:\n- PRIVATE: In this workspace, it is only visible to you and the administrator.\n- PUBLIC: In this workspace, it is visible to everyone.\n"},"codeBranch":{"type":"string","description":"Code repository branch.\n"},"codeCommit":{"type":"string","description":"The code CommitId.\n"},"codeRepo":{"type":"string","description":"Code repository address.\n"},"codeRepoAccessToken":{"type":"string","description":"The Token used to access the code repository.\n"},"codeRepoUserName":{"type":"string","description":"The user name of the code repository.\n"},"description":{"type":"string","description":"A detailed description of the code configuration.\n"},"displayName":{"type":"string","description":"Code source configuration name.\n"},"mountPath":{"type":"string","description":"The local Mount Directory of the code.\n"},"workspaceId":{"type":"string","description":"The ID of the workspace.\n","willReplaceOnChanges":true}},"requiredInputs":["accessibility","codeRepo","displayName","mountPath","workspaceId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkspaceCodeSource resources.\n","properties":{"accessibility":{"type":"string","description":"Visibility of the code configuration, possible values:\n- PRIVATE: In this workspace, it is only visible to you and the administrator.\n- PUBLIC: In this workspace, it is visible to everyone.\n"},"codeBranch":{"type":"string","description":"Code repository branch.\n"},"codeCommit":{"type":"string","description":"The code CommitId.\n"},"codeRepo":{"type":"string","description":"Code repository address.\n"},"codeRepoAccessToken":{"type":"string","description":"The Token used to access the code repository.\n"},"codeRepoUserName":{"type":"string","description":"The user name of the code repository.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"A detailed description of the code configuration.\n"},"displayName":{"type":"string","description":"Code source configuration name.\n"},"mountPath":{"type":"string","description":"The local Mount Directory of the code.\n"},"workspaceId":{"type":"string","description":"The ID of the workspace.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:pai/workspaceDataset:WorkspaceDataset":{"description":"Provides a PAI Workspace Dataset resource.\n\n\n\nFor information about PAI Workspace Dataset and how to use it, see [What is Dataset](https://next.api.alibabacloud.com/document/AIWorkSpace/2021-02-04/CreateDataset).\n\n\u003e **NOTE:** Available since v1.236.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst defaultWorkspace = new alicloud.pai.WorkspaceWorkspace(\"defaultWorkspace\", {\n    description: name,\n    displayName: name,\n    workspaceName: name,\n    envTypes: [\"prod\"],\n});\nconst _default = new alicloud.pai.WorkspaceDataset(\"default\", {\n    options: JSON.stringify({\n        mountPath: \"/mnt/data/\",\n    }),\n    description: name,\n    accessibility: \"PRIVATE\",\n    datasetName: name,\n    dataSourceType: \"NAS\",\n    sourceType: \"ITAG\",\n    workspaceId: defaultWorkspace.id,\n    dataType: \"PIC\",\n    property: \"DIRECTORY\",\n    uri: \"nas://086b649545.cn-hangzhou/\",\n    sourceId: \"d-xxxxx_v1\",\n    userId: \"1511928242963727\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault_workspace = alicloud.pai.WorkspaceWorkspace(\"defaultWorkspace\",\n    description=name,\n    display_name=name,\n    workspace_name=name,\n    env_types=[\"prod\"])\ndefault = alicloud.pai.WorkspaceDataset(\"default\",\n    options=json.dumps({\n        \"mountPath\": \"/mnt/data/\",\n    }),\n    description=name,\n    accessibility=\"PRIVATE\",\n    dataset_name=name,\n    data_source_type=\"NAS\",\n    source_type=\"ITAG\",\n    workspace_id=default_workspace.id,\n    data_type=\"PIC\",\n    property=\"DIRECTORY\",\n    uri=\"nas://086b649545.cn-hangzhou/\",\n    source_id=\"d-xxxxx_v1\",\n    user_id=\"1511928242963727\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var defaultWorkspace = new AliCloud.Pai.WorkspaceWorkspace(\"defaultWorkspace\", new()\n    {\n        Description = name,\n        DisplayName = name,\n        WorkspaceName = name,\n        EnvTypes = new[]\n        {\n            \"prod\",\n        },\n    });\n\n    var @default = new AliCloud.Pai.WorkspaceDataset(\"default\", new()\n    {\n        Options = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"mountPath\"] = \"/mnt/data/\",\n        }),\n        Description = name,\n        Accessibility = \"PRIVATE\",\n        DatasetName = name,\n        DataSourceType = \"NAS\",\n        SourceType = \"ITAG\",\n        WorkspaceId = defaultWorkspace.Id,\n        DataType = \"PIC\",\n        Property = \"DIRECTORY\",\n        Uri = \"nas://086b649545.cn-hangzhou/\",\n        SourceId = \"d-xxxxx_v1\",\n        UserId = \"1511928242963727\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pai\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultWorkspace, err := pai.NewWorkspaceWorkspace(ctx, \"defaultWorkspace\", \u0026pai.WorkspaceWorkspaceArgs{\n\t\t\tDescription:   pulumi.String(name),\n\t\t\tDisplayName:   pulumi.String(name),\n\t\t\tWorkspaceName: pulumi.String(name),\n\t\t\tEnvTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"prod\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"mountPath\": \"/mnt/data/\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = pai.NewWorkspaceDataset(ctx, \"default\", \u0026pai.WorkspaceDatasetArgs{\n\t\t\tOptions:        pulumi.String(json0),\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tAccessibility:  pulumi.String(\"PRIVATE\"),\n\t\t\tDatasetName:    pulumi.String(name),\n\t\t\tDataSourceType: pulumi.String(\"NAS\"),\n\t\t\tSourceType:     pulumi.String(\"ITAG\"),\n\t\t\tWorkspaceId:    defaultWorkspace.ID(),\n\t\t\tDataType:       pulumi.String(\"PIC\"),\n\t\t\tProperty:       pulumi.String(\"DIRECTORY\"),\n\t\t\tUri:            pulumi.String(\"nas://086b649545.cn-hangzhou/\"),\n\t\t\tSourceId:       pulumi.String(\"d-xxxxx_v1\"),\n\t\t\tUserId:         pulumi.String(\"1511928242963727\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspace;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspaceArgs;\nimport com.pulumi.alicloud.pai.WorkspaceDataset;\nimport com.pulumi.alicloud.pai.WorkspaceDatasetArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var defaultWorkspace = new WorkspaceWorkspace(\"defaultWorkspace\", WorkspaceWorkspaceArgs.builder()\n            .description(name)\n            .displayName(name)\n            .workspaceName(name)\n            .envTypes(\"prod\")\n            .build());\n\n        var default_ = new WorkspaceDataset(\"default\", WorkspaceDatasetArgs.builder()\n            .options(serializeJson(\n                jsonObject(\n                    jsonProperty(\"mountPath\", \"/mnt/data/\")\n                )))\n            .description(name)\n            .accessibility(\"PRIVATE\")\n            .datasetName(name)\n            .dataSourceType(\"NAS\")\n            .sourceType(\"ITAG\")\n            .workspaceId(defaultWorkspace.id())\n            .dataType(\"PIC\")\n            .property(\"DIRECTORY\")\n            .uri(\"nas://086b649545.cn-hangzhou/\")\n            .sourceId(\"d-xxxxx_v1\")\n            .userId(\"1511928242963727\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  defaultWorkspace:\n    type: alicloud:pai:WorkspaceWorkspace\n    properties:\n      description: ${name}\n      displayName: ${name}\n      workspaceName: ${name}\n      envTypes:\n        - prod\n  default:\n    type: alicloud:pai:WorkspaceDataset\n    properties:\n      options:\n        fn::toJSON:\n          mountPath: /mnt/data/\n      description: ${name}\n      accessibility: PRIVATE\n      datasetName: ${name}\n      dataSourceType: NAS\n      sourceType: ITAG\n      workspaceId: ${defaultWorkspace.id}\n      dataType: PIC\n      property: DIRECTORY\n      uri: nas://086b649545.cn-hangzhou/\n      sourceId: d-xxxxx_v1\n      userId: '1511928242963727'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPAI Workspace Dataset can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pai/workspaceDataset:WorkspaceDataset example \u003cid\u003e\n```\n\n","properties":{"accessibility":{"type":"string","description":"Workspace visibility. The following values are supported:\n- PRIVATE (default): indicates that the workspace is visible to itself and the administrator.\n- PUBLIC: The workspace is visible to all users.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"dataSourceType":{"type":"string","description":"The data source type. The following values are supported:\n- OSS: Alibaba Cloud Object Storage (OSS).\n- NAS: Alibaba cloud file storage (NAS).\n"},"dataType":{"type":"string","description":"The dataset type. The default value is COMMON. The following values are supported:\n- COMMON: COMMON.\n- PIC: picture.\n- TEXT: TEXT.\n- VIDEO: VIDEO.\n- AUDIO: AUDIO.\n"},"datasetName":{"type":"string","description":"The name of the dataset. The naming rules are as follows:\n- Start with a lowercase letter, uppercase letter, number, or Chinese.\n- Can contain an underscore (_) or a dash (-).\n- 1~127 characters in length.\n"},"description":{"type":"string","description":"Custom descriptions of datasets to distinguish between different datasets.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:pai/WorkspaceDatasetLabel:WorkspaceDatasetLabel"},"description":"Labels added to the dataset See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"options":{"type":"string","description":"The extended field, which is of the JsonString type.\n\nWhen DLC uses a dataset, you can specify the default Mount path for the dataset by configuring the mountPath field.\n"},"property":{"type":"string","description":"The properties of the dataset. The following values are supported:\n- FILE: FILE.\n- DIRECTORY: folder.\n"},"sourceId":{"type":"string","description":"The data source ID.\n- When the SourceType is USER, SourceId can be customized.\n- When SourceType is ITAG, that is, when the iTAG module labels the data set generated by the result, SourceId is the task ID of ITAG.\n- When SourceType is PAI_PUBLIC_DATASET, that is, a dataset created using PAI public datasets, SourceId is empty by default.\n"},"sourceType":{"type":"string","description":"The data source type. The default value is USER. The following values are supported:\n- PAI-PUBLIC-DATASET:PAI public dataset.\n- ITAG: The dataset generated by the iTAG module annotation result.\n- USER: The data set registered by the USER.\n"},"uri":{"type":"string","description":"The Uri configuration sample is as follows:\n- The data source type is OSS:'oss:// bucket.endpoint/object'\n- The data source type is NAS:\n\nThe general NAS format is: 'nas://.region/subpath/to/dir/';\n\nCPFS1.0:'nas://.region/subpath/to/dir /';\n\nCPFS2.0:'nas://.region//'.\n\nCPFS1.0 and CPFS2.0 are distinguished by the format of fsid: CPFS1.0 is cpfs-;CPFS2.0 is cpfs-.\n"},"userId":{"type":"string","description":"The ID of the dataset owner.\n"},"workspaceId":{"type":"string","description":"The ID of the workspace where the dataset is located. For details about how to obtain the workspace ID, see ListWorkspaces.\n\nIf this parameter is not configured, the default workspace is used. If the default workspace does not exist, an error is reported.\n"}},"required":["accessibility","createTime","dataSourceType","dataType","datasetName","property","sourceType","uri","userId","workspaceId"],"inputProperties":{"accessibility":{"type":"string","description":"Workspace visibility. The following values are supported:\n- PRIVATE (default): indicates that the workspace is visible to itself and the administrator.\n- PUBLIC: The workspace is visible to all users.\n"},"dataSourceType":{"type":"string","description":"The data source type. The following values are supported:\n- OSS: Alibaba Cloud Object Storage (OSS).\n- NAS: Alibaba cloud file storage (NAS).\n","willReplaceOnChanges":true},"dataType":{"type":"string","description":"The dataset type. The default value is COMMON. The following values are supported:\n- COMMON: COMMON.\n- PIC: picture.\n- TEXT: TEXT.\n- VIDEO: VIDEO.\n- AUDIO: AUDIO.\n","willReplaceOnChanges":true},"datasetName":{"type":"string","description":"The name of the dataset. The naming rules are as follows:\n- Start with a lowercase letter, uppercase letter, number, or Chinese.\n- Can contain an underscore (_) or a dash (-).\n- 1~127 characters in length.\n"},"description":{"type":"string","description":"Custom descriptions of datasets to distinguish between different datasets.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:pai/WorkspaceDatasetLabel:WorkspaceDatasetLabel"},"description":"Labels added to the dataset See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"options":{"type":"string","description":"The extended field, which is of the JsonString type.\n\nWhen DLC uses a dataset, you can specify the default Mount path for the dataset by configuring the mountPath field.\n"},"property":{"type":"string","description":"The properties of the dataset. The following values are supported:\n- FILE: FILE.\n- DIRECTORY: folder.\n","willReplaceOnChanges":true},"sourceId":{"type":"string","description":"The data source ID.\n- When the SourceType is USER, SourceId can be customized.\n- When SourceType is ITAG, that is, when the iTAG module labels the data set generated by the result, SourceId is the task ID of ITAG.\n- When SourceType is PAI_PUBLIC_DATASET, that is, a dataset created using PAI public datasets, SourceId is empty by default.\n","willReplaceOnChanges":true},"sourceType":{"type":"string","description":"The data source type. The default value is USER. The following values are supported:\n- PAI-PUBLIC-DATASET:PAI public dataset.\n- ITAG: The dataset generated by the iTAG module annotation result.\n- USER: The data set registered by the USER.\n","willReplaceOnChanges":true},"uri":{"type":"string","description":"The Uri configuration sample is as follows:\n- The data source type is OSS:'oss:// bucket.endpoint/object'\n- The data source type is NAS:\n\nThe general NAS format is: 'nas://.region/subpath/to/dir/';\n\nCPFS1.0:'nas://.region/subpath/to/dir /';\n\nCPFS2.0:'nas://.region//'.\n\nCPFS1.0 and CPFS2.0 are distinguished by the format of fsid: CPFS1.0 is cpfs-;CPFS2.0 is cpfs-.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of the dataset owner.\n","willReplaceOnChanges":true},"workspaceId":{"type":"string","description":"The ID of the workspace where the dataset is located. For details about how to obtain the workspace ID, see ListWorkspaces.\n\nIf this parameter is not configured, the default workspace is used. If the default workspace does not exist, an error is reported.\n","willReplaceOnChanges":true}},"requiredInputs":["dataSourceType","datasetName","property","uri","workspaceId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkspaceDataset resources.\n","properties":{"accessibility":{"type":"string","description":"Workspace visibility. The following values are supported:\n- PRIVATE (default): indicates that the workspace is visible to itself and the administrator.\n- PUBLIC: The workspace is visible to all users.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"dataSourceType":{"type":"string","description":"The data source type. The following values are supported:\n- OSS: Alibaba Cloud Object Storage (OSS).\n- NAS: Alibaba cloud file storage (NAS).\n","willReplaceOnChanges":true},"dataType":{"type":"string","description":"The dataset type. The default value is COMMON. The following values are supported:\n- COMMON: COMMON.\n- PIC: picture.\n- TEXT: TEXT.\n- VIDEO: VIDEO.\n- AUDIO: AUDIO.\n","willReplaceOnChanges":true},"datasetName":{"type":"string","description":"The name of the dataset. The naming rules are as follows:\n- Start with a lowercase letter, uppercase letter, number, or Chinese.\n- Can contain an underscore (_) or a dash (-).\n- 1~127 characters in length.\n"},"description":{"type":"string","description":"Custom descriptions of datasets to distinguish between different datasets.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:pai/WorkspaceDatasetLabel:WorkspaceDatasetLabel"},"description":"Labels added to the dataset See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"options":{"type":"string","description":"The extended field, which is of the JsonString type.\n\nWhen DLC uses a dataset, you can specify the default Mount path for the dataset by configuring the mountPath field.\n"},"property":{"type":"string","description":"The properties of the dataset. The following values are supported:\n- FILE: FILE.\n- DIRECTORY: folder.\n","willReplaceOnChanges":true},"sourceId":{"type":"string","description":"The data source ID.\n- When the SourceType is USER, SourceId can be customized.\n- When SourceType is ITAG, that is, when the iTAG module labels the data set generated by the result, SourceId is the task ID of ITAG.\n- When SourceType is PAI_PUBLIC_DATASET, that is, a dataset created using PAI public datasets, SourceId is empty by default.\n","willReplaceOnChanges":true},"sourceType":{"type":"string","description":"The data source type. The default value is USER. The following values are supported:\n- PAI-PUBLIC-DATASET:PAI public dataset.\n- ITAG: The dataset generated by the iTAG module annotation result.\n- USER: The data set registered by the USER.\n","willReplaceOnChanges":true},"uri":{"type":"string","description":"The Uri configuration sample is as follows:\n- The data source type is OSS:'oss:// bucket.endpoint/object'\n- The data source type is NAS:\n\nThe general NAS format is: 'nas://.region/subpath/to/dir/';\n\nCPFS1.0:'nas://.region/subpath/to/dir /';\n\nCPFS2.0:'nas://.region//'.\n\nCPFS1.0 and CPFS2.0 are distinguished by the format of fsid: CPFS1.0 is cpfs-;CPFS2.0 is cpfs-.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of the dataset owner.\n","willReplaceOnChanges":true},"workspaceId":{"type":"string","description":"The ID of the workspace where the dataset is located. For details about how to obtain the workspace ID, see ListWorkspaces.\n\nIf this parameter is not configured, the default workspace is used. If the default workspace does not exist, an error is reported.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:pai/workspaceDatasetversion:WorkspaceDatasetversion":{"description":"Provides a PAI Workspace Datasetversion resource.\n\n\n\nFor information about PAI Workspace Dataset Version and how to use it, see [What is Dataset Version](https://next.api.alibabacloud.com/document/AIWorkSpace/2021-02-04/CreateDatasetVersion).\n\u003e **NOTE:** Available since v1.236.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst defaultAiWorkspace = new alicloud.pai.WorkspaceWorkspace(\"defaultAiWorkspace\", {\n    description: name,\n    displayName: name,\n    workspaceName: name,\n    envTypes: [\"prod\"],\n});\nconst defaultDataset = new alicloud.pai.WorkspaceDataset(\"defaultDataset\", {\n    accessibility: \"PRIVATE\",\n    sourceType: \"USER\",\n    dataType: \"PIC\",\n    workspaceId: defaultAiWorkspace.id,\n    options: JSON.stringify({\n        mountPath: \"/mnt/data/\",\n    }),\n    description: name,\n    sourceId: \"d-xxxxx_v1\",\n    uri: \"oss://ai4d-q9lgxlpwxzqluij66y.oss-cn-hangzhou.aliyuncs.com/\",\n    datasetName: std.format({\n        input: \"%s1\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    userId: \"1511928242963727\",\n    dataSourceType: \"OSS\",\n    property: \"DIRECTORY\",\n});\nconst _default = new alicloud.pai.WorkspaceDatasetversion(\"default\", {\n    options: JSON.stringify({\n        mountPath: \"/mnt/data/verion/\",\n    }),\n    description: name,\n    dataSourceType: \"OSS\",\n    sourceType: \"USER\",\n    sourceId: \"d-xxxxx_v1\",\n    dataSize: 2068,\n    dataCount: 1000,\n    labels: [{\n        key: \"key1\",\n        value: \"example1\",\n    }],\n    uri: \"oss://ai4d-q9lgxlpwxzqluij66y.oss-cn-hangzhou.aliyuncs.com/\",\n    property: \"DIRECTORY\",\n    datasetId: defaultDataset.id,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault_ai_workspace = alicloud.pai.WorkspaceWorkspace(\"defaultAiWorkspace\",\n    description=name,\n    display_name=name,\n    workspace_name=name,\n    env_types=[\"prod\"])\ndefault_dataset = alicloud.pai.WorkspaceDataset(\"defaultDataset\",\n    accessibility=\"PRIVATE\",\n    source_type=\"USER\",\n    data_type=\"PIC\",\n    workspace_id=default_ai_workspace.id,\n    options=json.dumps({\n        \"mountPath\": \"/mnt/data/\",\n    }),\n    description=name,\n    source_id=\"d-xxxxx_v1\",\n    uri=\"oss://ai4d-q9lgxlpwxzqluij66y.oss-cn-hangzhou.aliyuncs.com/\",\n    dataset_name=std.format(input=\"%s1\",\n        args=[name]).result,\n    user_id=\"1511928242963727\",\n    data_source_type=\"OSS\",\n    property=\"DIRECTORY\")\ndefault = alicloud.pai.WorkspaceDatasetversion(\"default\",\n    options=json.dumps({\n        \"mountPath\": \"/mnt/data/verion/\",\n    }),\n    description=name,\n    data_source_type=\"OSS\",\n    source_type=\"USER\",\n    source_id=\"d-xxxxx_v1\",\n    data_size=2068,\n    data_count=1000,\n    labels=[{\n        \"key\": \"key1\",\n        \"value\": \"example1\",\n    }],\n    uri=\"oss://ai4d-q9lgxlpwxzqluij66y.oss-cn-hangzhou.aliyuncs.com/\",\n    property=\"DIRECTORY\",\n    dataset_id=default_dataset.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var defaultAiWorkspace = new AliCloud.Pai.WorkspaceWorkspace(\"defaultAiWorkspace\", new()\n    {\n        Description = name,\n        DisplayName = name,\n        WorkspaceName = name,\n        EnvTypes = new[]\n        {\n            \"prod\",\n        },\n    });\n\n    var defaultDataset = new AliCloud.Pai.WorkspaceDataset(\"defaultDataset\", new()\n    {\n        Accessibility = \"PRIVATE\",\n        SourceType = \"USER\",\n        DataType = \"PIC\",\n        WorkspaceId = defaultAiWorkspace.Id,\n        Options = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"mountPath\"] = \"/mnt/data/\",\n        }),\n        Description = name,\n        SourceId = \"d-xxxxx_v1\",\n        Uri = \"oss://ai4d-q9lgxlpwxzqluij66y.oss-cn-hangzhou.aliyuncs.com/\",\n        DatasetName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        UserId = \"1511928242963727\",\n        DataSourceType = \"OSS\",\n        Property = \"DIRECTORY\",\n    });\n\n    var @default = new AliCloud.Pai.WorkspaceDatasetversion(\"default\", new()\n    {\n        Options = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"mountPath\"] = \"/mnt/data/verion/\",\n        }),\n        Description = name,\n        DataSourceType = \"OSS\",\n        SourceType = \"USER\",\n        SourceId = \"d-xxxxx_v1\",\n        DataSize = 2068,\n        DataCount = 1000,\n        Labels = new[]\n        {\n            new AliCloud.Pai.Inputs.WorkspaceDatasetversionLabelArgs\n            {\n                Key = \"key1\",\n                Value = \"example1\",\n            },\n        },\n        Uri = \"oss://ai4d-q9lgxlpwxzqluij66y.oss-cn-hangzhou.aliyuncs.com/\",\n        Property = \"DIRECTORY\",\n        DatasetId = defaultDataset.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pai\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultAiWorkspace, err := pai.NewWorkspaceWorkspace(ctx, \"defaultAiWorkspace\", \u0026pai.WorkspaceWorkspaceArgs{\n\t\t\tDescription:   pulumi.String(name),\n\t\t\tDisplayName:   pulumi.String(name),\n\t\t\tWorkspaceName: pulumi.String(name),\n\t\t\tEnvTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"prod\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"mountPath\": \"/mnt/data/\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDataset, err := pai.NewWorkspaceDataset(ctx, \"defaultDataset\", \u0026pai.WorkspaceDatasetArgs{\n\t\t\tAccessibility:  pulumi.String(\"PRIVATE\"),\n\t\t\tSourceType:     pulumi.String(\"USER\"),\n\t\t\tDataType:       pulumi.String(\"PIC\"),\n\t\t\tWorkspaceId:    defaultAiWorkspace.ID(),\n\t\t\tOptions:        pulumi.String(json0),\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tSourceId:       pulumi.String(\"d-xxxxx_v1\"),\n\t\t\tUri:            pulumi.String(\"oss://ai4d-q9lgxlpwxzqluij66y.oss-cn-hangzhou.aliyuncs.com/\"),\n\t\t\tDatasetName:    pulumi.String(invokeFormat.Result),\n\t\t\tUserId:         pulumi.String(\"1511928242963727\"),\n\t\t\tDataSourceType: pulumi.String(\"OSS\"),\n\t\t\tProperty:       pulumi.String(\"DIRECTORY\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"mountPath\": \"/mnt/data/verion/\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_, err = pai.NewWorkspaceDatasetversion(ctx, \"default\", \u0026pai.WorkspaceDatasetversionArgs{\n\t\t\tOptions:        pulumi.String(json1),\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tDataSourceType: pulumi.String(\"OSS\"),\n\t\t\tSourceType:     pulumi.String(\"USER\"),\n\t\t\tSourceId:       pulumi.String(\"d-xxxxx_v1\"),\n\t\t\tDataSize:       pulumi.Int(2068),\n\t\t\tDataCount:      pulumi.Int(1000),\n\t\t\tLabels: pai.WorkspaceDatasetversionLabelArray{\n\t\t\t\t\u0026pai.WorkspaceDatasetversionLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"key1\"),\n\t\t\t\t\tValue: pulumi.String(\"example1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tUri:       pulumi.String(\"oss://ai4d-q9lgxlpwxzqluij66y.oss-cn-hangzhou.aliyuncs.com/\"),\n\t\t\tProperty:  pulumi.String(\"DIRECTORY\"),\n\t\t\tDatasetId: defaultDataset.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspace;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspaceArgs;\nimport com.pulumi.alicloud.pai.WorkspaceDataset;\nimport com.pulumi.alicloud.pai.WorkspaceDatasetArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.pai.WorkspaceDatasetversion;\nimport com.pulumi.alicloud.pai.WorkspaceDatasetversionArgs;\nimport com.pulumi.alicloud.pai.inputs.WorkspaceDatasetversionLabelArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var defaultAiWorkspace = new WorkspaceWorkspace(\"defaultAiWorkspace\", WorkspaceWorkspaceArgs.builder()\n            .description(name)\n            .displayName(name)\n            .workspaceName(name)\n            .envTypes(\"prod\")\n            .build());\n\n        var defaultDataset = new WorkspaceDataset(\"defaultDataset\", WorkspaceDatasetArgs.builder()\n            .accessibility(\"PRIVATE\")\n            .sourceType(\"USER\")\n            .dataType(\"PIC\")\n            .workspaceId(defaultAiWorkspace.id())\n            .options(serializeJson(\n                jsonObject(\n                    jsonProperty(\"mountPath\", \"/mnt/data/\")\n                )))\n            .description(name)\n            .sourceId(\"d-xxxxx_v1\")\n            .uri(\"oss://ai4d-q9lgxlpwxzqluij66y.oss-cn-hangzhou.aliyuncs.com/\")\n            .datasetName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1\")\n                .args(name)\n                .build()).result())\n            .userId(\"1511928242963727\")\n            .dataSourceType(\"OSS\")\n            .property(\"DIRECTORY\")\n            .build());\n\n        var default_ = new WorkspaceDatasetversion(\"default\", WorkspaceDatasetversionArgs.builder()\n            .options(serializeJson(\n                jsonObject(\n                    jsonProperty(\"mountPath\", \"/mnt/data/verion/\")\n                )))\n            .description(name)\n            .dataSourceType(\"OSS\")\n            .sourceType(\"USER\")\n            .sourceId(\"d-xxxxx_v1\")\n            .dataSize(2068)\n            .dataCount(1000)\n            .labels(WorkspaceDatasetversionLabelArgs.builder()\n                .key(\"key1\")\n                .value(\"example1\")\n                .build())\n            .uri(\"oss://ai4d-q9lgxlpwxzqluij66y.oss-cn-hangzhou.aliyuncs.com/\")\n            .property(\"DIRECTORY\")\n            .datasetId(defaultDataset.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  defaultAiWorkspace:\n    type: alicloud:pai:WorkspaceWorkspace\n    properties:\n      description: ${name}\n      displayName: ${name}\n      workspaceName: ${name}\n      envTypes:\n        - prod\n  defaultDataset:\n    type: alicloud:pai:WorkspaceDataset\n    properties:\n      accessibility: PRIVATE\n      sourceType: USER\n      dataType: PIC\n      workspaceId: ${defaultAiWorkspace.id}\n      options:\n        fn::toJSON:\n          mountPath: /mnt/data/\n      description: ${name}\n      sourceId: d-xxxxx_v1\n      uri: oss://ai4d-q9lgxlpwxzqluij66y.oss-cn-hangzhou.aliyuncs.com/\n      datasetName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1'\n            args:\n              - ${name}\n          return: result\n      userId: '1511928242963727'\n      dataSourceType: OSS\n      property: DIRECTORY\n  default:\n    type: alicloud:pai:WorkspaceDatasetversion\n    properties:\n      options:\n        fn::toJSON:\n          mountPath: /mnt/data/verion/\n      description: ${name}\n      dataSourceType: OSS\n      sourceType: USER\n      sourceId: d-xxxxx_v1\n      dataSize: '2068'\n      dataCount: '1000'\n      labels:\n        - key: key1\n          value: example1\n      uri: oss://ai4d-q9lgxlpwxzqluij66y.oss-cn-hangzhou.aliyuncs.com/\n      property: DIRECTORY\n      datasetId: ${defaultDataset.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPAI Workspace Datasetversion can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pai/workspaceDatasetversion:WorkspaceDatasetversion example \u003cdataset_id\u003e:\u003cversion_name\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"Update time.\n"},"dataCount":{"type":"integer","description":"Data count.\n"},"dataSize":{"type":"integer","description":"Data size.\n"},"dataSourceType":{"type":"string","description":"The data source type. The following values are supported:\n- OSS: Alibaba Cloud Object Storage (OSS).\n- NAS: Alibaba cloud file storage (NAS).\n"},"datasetId":{"type":"string","description":"The first ID of the resource\n"},"description":{"type":"string","description":"Description of dataset version.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:pai/WorkspaceDatasetversionLabel:WorkspaceDatasetversionLabel"},"description":"The tag of the resource See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"options":{"type":"string","description":"The extended field, which is of the JsonString type.\n\nWhen DLC uses a dataset, you can specify the default Mount path for the dataset by configuring the mountPath field.\n"},"property":{"type":"string","description":"The properties of the dataset. The following values are supported:\n- FILE: FILE.\n- DIRECTORY: folder.\n"},"sourceId":{"type":"string","description":"The data source ID.\n"},"sourceType":{"type":"string","description":"The data source type. The default value is USER.\n"},"uri":{"type":"string","description":"The Uri configuration sample is as follows:\n- The data source type is OSS:'oss:// bucket.endpoint/object'\n- The data source type is NAS:\n\nThe general NAS format is: 'nas://.region/subpath/to/dir/';\n\nCPFS1.0:'nas://.region/subpath/to/dir /';\n\nCPFS2.0:'nas://.region//'.\n\nCPFS1.0 and CPFS2.0 are distinguished by the format of fsid: CPFS1.0 is cpfs-;CPFS2.0 is cpfs-.\n"},"versionName":{"type":"string","description":"The name of the resource\n"}},"required":["createTime","dataSourceType","datasetId","property","uri","versionName"],"inputProperties":{"dataCount":{"type":"integer","description":"Data count.\n"},"dataSize":{"type":"integer","description":"Data size.\n"},"dataSourceType":{"type":"string","description":"The data source type. The following values are supported:\n- OSS: Alibaba Cloud Object Storage (OSS).\n- NAS: Alibaba cloud file storage (NAS).\n","willReplaceOnChanges":true},"datasetId":{"type":"string","description":"The first ID of the resource\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of dataset version.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:pai/WorkspaceDatasetversionLabel:WorkspaceDatasetversionLabel"},"description":"The tag of the resource See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"options":{"type":"string","description":"The extended field, which is of the JsonString type.\n\nWhen DLC uses a dataset, you can specify the default Mount path for the dataset by configuring the mountPath field.\n"},"property":{"type":"string","description":"The properties of the dataset. The following values are supported:\n- FILE: FILE.\n- DIRECTORY: folder.\n","willReplaceOnChanges":true},"sourceId":{"type":"string","description":"The data source ID.\n","willReplaceOnChanges":true},"sourceType":{"type":"string","description":"The data source type. The default value is USER.\n","willReplaceOnChanges":true},"uri":{"type":"string","description":"The Uri configuration sample is as follows:\n- The data source type is OSS:'oss:// bucket.endpoint/object'\n- The data source type is NAS:\n\nThe general NAS format is: 'nas://.region/subpath/to/dir/';\n\nCPFS1.0:'nas://.region/subpath/to/dir /';\n\nCPFS2.0:'nas://.region//'.\n\nCPFS1.0 and CPFS2.0 are distinguished by the format of fsid: CPFS1.0 is cpfs-;CPFS2.0 is cpfs-.\n","willReplaceOnChanges":true}},"requiredInputs":["dataSourceType","datasetId","property","uri"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkspaceDatasetversion resources.\n","properties":{"createTime":{"type":"string","description":"Update time.\n"},"dataCount":{"type":"integer","description":"Data count.\n"},"dataSize":{"type":"integer","description":"Data size.\n"},"dataSourceType":{"type":"string","description":"The data source type. The following values are supported:\n- OSS: Alibaba Cloud Object Storage (OSS).\n- NAS: Alibaba cloud file storage (NAS).\n","willReplaceOnChanges":true},"datasetId":{"type":"string","description":"The first ID of the resource\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of dataset version.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:pai/WorkspaceDatasetversionLabel:WorkspaceDatasetversionLabel"},"description":"The tag of the resource See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"options":{"type":"string","description":"The extended field, which is of the JsonString type.\n\nWhen DLC uses a dataset, you can specify the default Mount path for the dataset by configuring the mountPath field.\n"},"property":{"type":"string","description":"The properties of the dataset. The following values are supported:\n- FILE: FILE.\n- DIRECTORY: folder.\n","willReplaceOnChanges":true},"sourceId":{"type":"string","description":"The data source ID.\n","willReplaceOnChanges":true},"sourceType":{"type":"string","description":"The data source type. The default value is USER.\n","willReplaceOnChanges":true},"uri":{"type":"string","description":"The Uri configuration sample is as follows:\n- The data source type is OSS:'oss:// bucket.endpoint/object'\n- The data source type is NAS:\n\nThe general NAS format is: 'nas://.region/subpath/to/dir/';\n\nCPFS1.0:'nas://.region/subpath/to/dir /';\n\nCPFS2.0:'nas://.region//'.\n\nCPFS1.0 and CPFS2.0 are distinguished by the format of fsid: CPFS1.0 is cpfs-;CPFS2.0 is cpfs-.\n","willReplaceOnChanges":true},"versionName":{"type":"string","description":"The name of the resource\n"}},"type":"object"}},"alicloud:pai/workspaceExperiment:WorkspaceExperiment":{"description":"Provides a PAI Workspace Experiment resource.\n\n\n\nFor information about PAI Workspace Experiment and how to use it, see [What is Experiment](https://next.api.alibabacloud.com/document/AIWorkSpace/2021-02-04/CreateExperiment).\n\n\u003e **NOTE:** Available since v1.236.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst defaultDI9fsL = new alicloud.pai.WorkspaceWorkspace(\"defaultDI9fsL\", {\n    description: name,\n    displayName: name,\n    workspaceName: name,\n    envTypes: [\"prod\"],\n});\nconst _default = new alicloud.pai.WorkspaceExperiment(\"default\", {\n    accessibility: \"PRIVATE\",\n    artifactUri: \"oss://yyt-409262.oss-cn-hangzhou.aliyuncs.com/example/\",\n    experimentName: name,\n    workspaceId: defaultDI9fsL.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault_di9fs_l = alicloud.pai.WorkspaceWorkspace(\"defaultDI9fsL\",\n    description=name,\n    display_name=name,\n    workspace_name=name,\n    env_types=[\"prod\"])\ndefault = alicloud.pai.WorkspaceExperiment(\"default\",\n    accessibility=\"PRIVATE\",\n    artifact_uri=\"oss://yyt-409262.oss-cn-hangzhou.aliyuncs.com/example/\",\n    experiment_name=name,\n    workspace_id=default_di9fs_l.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var defaultDI9fsL = new AliCloud.Pai.WorkspaceWorkspace(\"defaultDI9fsL\", new()\n    {\n        Description = name,\n        DisplayName = name,\n        WorkspaceName = name,\n        EnvTypes = new[]\n        {\n            \"prod\",\n        },\n    });\n\n    var @default = new AliCloud.Pai.WorkspaceExperiment(\"default\", new()\n    {\n        Accessibility = \"PRIVATE\",\n        ArtifactUri = \"oss://yyt-409262.oss-cn-hangzhou.aliyuncs.com/example/\",\n        ExperimentName = name,\n        WorkspaceId = defaultDI9fsL.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pai\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultDI9fsL, err := pai.NewWorkspaceWorkspace(ctx, \"defaultDI9fsL\", \u0026pai.WorkspaceWorkspaceArgs{\n\t\t\tDescription:   pulumi.String(name),\n\t\t\tDisplayName:   pulumi.String(name),\n\t\t\tWorkspaceName: pulumi.String(name),\n\t\t\tEnvTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"prod\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pai.NewWorkspaceExperiment(ctx, \"default\", \u0026pai.WorkspaceExperimentArgs{\n\t\t\tAccessibility:  pulumi.String(\"PRIVATE\"),\n\t\t\tArtifactUri:    pulumi.String(\"oss://yyt-409262.oss-cn-hangzhou.aliyuncs.com/example/\"),\n\t\t\tExperimentName: pulumi.String(name),\n\t\t\tWorkspaceId:    defaultDI9fsL.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspace;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspaceArgs;\nimport com.pulumi.alicloud.pai.WorkspaceExperiment;\nimport com.pulumi.alicloud.pai.WorkspaceExperimentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var defaultDI9fsL = new WorkspaceWorkspace(\"defaultDI9fsL\", WorkspaceWorkspaceArgs.builder()\n            .description(name)\n            .displayName(name)\n            .workspaceName(name)\n            .envTypes(\"prod\")\n            .build());\n\n        var default_ = new WorkspaceExperiment(\"default\", WorkspaceExperimentArgs.builder()\n            .accessibility(\"PRIVATE\")\n            .artifactUri(\"oss://yyt-409262.oss-cn-hangzhou.aliyuncs.com/example/\")\n            .experimentName(name)\n            .workspaceId(defaultDI9fsL.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  defaultDI9fsL:\n    type: alicloud:pai:WorkspaceWorkspace\n    properties:\n      description: ${name}\n      displayName: ${name}\n      workspaceName: ${name}\n      envTypes:\n        - prod\n  default:\n    type: alicloud:pai:WorkspaceExperiment\n    properties:\n      accessibility: PRIVATE\n      artifactUri: oss://yyt-409262.oss-cn-hangzhou.aliyuncs.com/example/\n      experimentName: ${name}\n      workspaceId: ${defaultDI9fsL.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPAI Workspace Experiment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pai/workspaceExperiment:WorkspaceExperiment example \u003cid\u003e\n```\n\n","properties":{"accessibility":{"type":"string","description":"Experimental Visibility\n"},"artifactUri":{"type":"string","description":"ArtifactUri is default OSS storage path of the output of trials in the experiment\n"},"createTime":{"type":"string","description":"GmtCreateTime is time when this entity is created.\n"},"experimentName":{"type":"string","description":"Name is the name of the experiment, unique in a namespace\n"},"workspaceId":{"type":"string","description":"WorkspaceId is the workspace id which contains the experiment\n"}},"required":["accessibility","artifactUri","createTime","experimentName","workspaceId"],"inputProperties":{"accessibility":{"type":"string","description":"Experimental Visibility\n"},"artifactUri":{"type":"string","description":"ArtifactUri is default OSS storage path of the output of trials in the experiment\n","willReplaceOnChanges":true},"experimentName":{"type":"string","description":"Name is the name of the experiment, unique in a namespace\n"},"workspaceId":{"type":"string","description":"WorkspaceId is the workspace id which contains the experiment\n","willReplaceOnChanges":true}},"requiredInputs":["artifactUri","experimentName","workspaceId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkspaceExperiment resources.\n","properties":{"accessibility":{"type":"string","description":"Experimental Visibility\n"},"artifactUri":{"type":"string","description":"ArtifactUri is default OSS storage path of the output of trials in the experiment\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"GmtCreateTime is time when this entity is created.\n"},"experimentName":{"type":"string","description":"Name is the name of the experiment, unique in a namespace\n"},"workspaceId":{"type":"string","description":"WorkspaceId is the workspace id which contains the experiment\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:pai/workspaceMember:WorkspaceMember":{"description":"Provides a PAI Workspace Member resource.\n\n\n\nFor information about PAI Workspace Member and how to use it, see [What is Member](https://www.alibabacloud.com/help/en/pai/developer-reference/api-aiworkspace-2021-02-04-createmember).\n\n\u003e **NOTE:** Available since v1.249.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst workspace = new alicloud.pai.WorkspaceWorkspace(\"Workspace\", {\n    description: \"156\",\n    displayName: name,\n    workspaceName: `${name}_${_default.result}`,\n    envTypes: [\"prod\"],\n});\nconst defaultUser = new alicloud.ram.User(\"default\", {name: `${name}-${_default.result}`});\nconst defaultWorkspaceMember = new alicloud.pai.WorkspaceMember(\"default\", {\n    userId: defaultUser.id,\n    workspaceId: workspace.id,\n    roles: [\n        \"PAI.AlgoDeveloper\",\n        \"PAI.AlgoOperator\",\n        \"PAI.LabelManager\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nworkspace = alicloud.pai.WorkspaceWorkspace(\"Workspace\",\n    description=\"156\",\n    display_name=name,\n    workspace_name=f\"{name}_{default['result']}\",\n    env_types=[\"prod\"])\ndefault_user = alicloud.ram.User(\"default\", name=f\"{name}-{default['result']}\")\ndefault_workspace_member = alicloud.pai.WorkspaceMember(\"default\",\n    user_id=default_user.id,\n    workspace_id=workspace.id,\n    roles=[\n        \"PAI.AlgoDeveloper\",\n        \"PAI.AlgoOperator\",\n        \"PAI.LabelManager\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var workspace = new AliCloud.Pai.WorkspaceWorkspace(\"Workspace\", new()\n    {\n        Description = \"156\",\n        DisplayName = name,\n        WorkspaceName = $\"{name}_{@default.Result}\",\n        EnvTypes = new[]\n        {\n            \"prod\",\n        },\n    });\n\n    var defaultUser = new AliCloud.Ram.User(\"default\", new()\n    {\n        Name = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultWorkspaceMember = new AliCloud.Pai.WorkspaceMember(\"default\", new()\n    {\n        UserId = defaultUser.Id,\n        WorkspaceId = workspace.Id,\n        Roles = new[]\n        {\n            \"PAI.AlgoDeveloper\",\n            \"PAI.AlgoOperator\",\n            \"PAI.LabelManager\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pai\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tworkspace, err := pai.NewWorkspaceWorkspace(ctx, \"Workspace\", \u0026pai.WorkspaceWorkspaceArgs{\n\t\t\tDescription:   pulumi.String(\"156\"),\n\t\t\tDisplayName:   pulumi.String(name),\n\t\t\tWorkspaceName: pulumi.Sprintf(\"%v_%v\", name, _default.Result),\n\t\t\tEnvTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"prod\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultUser, err := ram.NewUser(ctx, \"default\", \u0026ram.UserArgs{\n\t\t\tName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pai.NewWorkspaceMember(ctx, \"default\", \u0026pai.WorkspaceMemberArgs{\n\t\t\tUserId:      defaultUser.ID(),\n\t\t\tWorkspaceId: workspace.ID(),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"PAI.AlgoDeveloper\"),\n\t\t\t\tpulumi.String(\"PAI.AlgoOperator\"),\n\t\t\t\tpulumi.String(\"PAI.LabelManager\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspace;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspaceArgs;\nimport com.pulumi.alicloud.ram.User;\nimport com.pulumi.alicloud.ram.UserArgs;\nimport com.pulumi.alicloud.pai.WorkspaceMember;\nimport com.pulumi.alicloud.pai.WorkspaceMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var workspace = new WorkspaceWorkspace(\"workspace\", WorkspaceWorkspaceArgs.builder()\n            .description(\"156\")\n            .displayName(name)\n            .workspaceName(String.format(\"%s_%s\", name,default_.result()))\n            .envTypes(\"prod\")\n            .build());\n\n        var defaultUser = new User(\"defaultUser\", UserArgs.builder()\n            .name(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultWorkspaceMember = new WorkspaceMember(\"defaultWorkspaceMember\", WorkspaceMemberArgs.builder()\n            .userId(defaultUser.id())\n            .workspaceId(workspace.id())\n            .roles(            \n                \"PAI.AlgoDeveloper\",\n                \"PAI.AlgoOperator\",\n                \"PAI.LabelManager\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  workspace:\n    type: alicloud:pai:WorkspaceWorkspace\n    name: Workspace\n    properties:\n      description: '156'\n      displayName: ${name}\n      workspaceName: ${name}_${default.result}\n      envTypes:\n        - prod\n  defaultUser:\n    type: alicloud:ram:User\n    name: default\n    properties:\n      name: ${name}-${default.result}\n  defaultWorkspaceMember:\n    type: alicloud:pai:WorkspaceMember\n    name: default\n    properties:\n      userId: ${defaultUser.id}\n      workspaceId: ${workspace.id}\n      roles:\n        - PAI.AlgoDeveloper\n        - PAI.AlgoOperator\n        - PAI.LabelManager\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPAI Workspace Member can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pai/workspaceMember:WorkspaceMember example \u003cworkspace_id\u003e:\u003cmember_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The time when the workspace is created, in UTC. The time follows the ISO 8601 standard.\n"},"memberId":{"type":"string","description":"The member ID.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"The list of roles. see [how to use it](https://www.alibabacloud.com/help/en/pai/developer-reference/api-aiworkspace-2021-02-04-createmember).\n"},"userId":{"type":"string","description":"The ID of the User.\n"},"workspaceId":{"type":"string","description":"The ID of the Workspace.\n"}},"required":["createTime","memberId","roles","userId","workspaceId"],"inputProperties":{"roles":{"type":"array","items":{"type":"string"},"description":"The list of roles. see [how to use it](https://www.alibabacloud.com/help/en/pai/developer-reference/api-aiworkspace-2021-02-04-createmember).\n"},"userId":{"type":"string","description":"The ID of the User.\n","willReplaceOnChanges":true},"workspaceId":{"type":"string","description":"The ID of the Workspace.\n","willReplaceOnChanges":true}},"requiredInputs":["roles","userId","workspaceId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkspaceMember resources.\n","properties":{"createTime":{"type":"string","description":"The time when the workspace is created, in UTC. The time follows the ISO 8601 standard.\n"},"memberId":{"type":"string","description":"The member ID.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"The list of roles. see [how to use it](https://www.alibabacloud.com/help/en/pai/developer-reference/api-aiworkspace-2021-02-04-createmember).\n"},"userId":{"type":"string","description":"The ID of the User.\n","willReplaceOnChanges":true},"workspaceId":{"type":"string","description":"The ID of the Workspace.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:pai/workspaceModel:WorkspaceModel":{"description":"Provides a PAI Workspace Model resource.\n\n\n\nFor information about PAI Workspace Model and how to use it, see [What is Model](https://www.alibabacloud.com/help/en/pai/developer-reference/api-aiworkspace-2021-02-04-createmodel).\n\n\u003e **NOTE:** Available since v1.249.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultENuC6u = new alicloud.pai.WorkspaceWorkspace(\"defaultENuC6u\", {\n    description: \"156\",\n    displayName: name,\n    workspaceName: `${name}_${_default.result}`,\n    envTypes: [\"prod\"],\n});\nconst defaultWorkspaceModel = new alicloud.pai.WorkspaceModel(\"default\", {\n    origin: \"Civitai\",\n    task: \"text-to-image-synthesis\",\n    modelName: name,\n    accessibility: \"PRIVATE\",\n    workspaceId: defaultENuC6u.id,\n    modelType: \"Checkpoint\",\n    labels: [{\n        key: \"base_model\",\n        value: \"SD 1.5\",\n    }],\n    orderNumber: 1,\n    extraInfo: {\n        test: \"15\",\n    },\n    modelDescription: \"ModelDescription.\",\n    modelDoc: \"https://eas-***.oss-cn-hangzhou.aliyuncs.com/s**.safetensors\",\n    domain: \"aigc\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_e_nu_c6u = alicloud.pai.WorkspaceWorkspace(\"defaultENuC6u\",\n    description=\"156\",\n    display_name=name,\n    workspace_name=f\"{name}_{default['result']}\",\n    env_types=[\"prod\"])\ndefault_workspace_model = alicloud.pai.WorkspaceModel(\"default\",\n    origin=\"Civitai\",\n    task=\"text-to-image-synthesis\",\n    model_name=name,\n    accessibility=\"PRIVATE\",\n    workspace_id=default_e_nu_c6u.id,\n    model_type=\"Checkpoint\",\n    labels=[{\n        \"key\": \"base_model\",\n        \"value\": \"SD 1.5\",\n    }],\n    order_number=1,\n    extra_info={\n        \"test\": \"15\",\n    },\n    model_description=\"ModelDescription.\",\n    model_doc=\"https://eas-***.oss-cn-hangzhou.aliyuncs.com/s**.safetensors\",\n    domain=\"aigc\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultENuC6u = new AliCloud.Pai.WorkspaceWorkspace(\"defaultENuC6u\", new()\n    {\n        Description = \"156\",\n        DisplayName = name,\n        WorkspaceName = $\"{name}_{@default.Result}\",\n        EnvTypes = new[]\n        {\n            \"prod\",\n        },\n    });\n\n    var defaultWorkspaceModel = new AliCloud.Pai.WorkspaceModel(\"default\", new()\n    {\n        Origin = \"Civitai\",\n        Task = \"text-to-image-synthesis\",\n        ModelName = name,\n        Accessibility = \"PRIVATE\",\n        WorkspaceId = defaultENuC6u.Id,\n        ModelType = \"Checkpoint\",\n        Labels = new[]\n        {\n            new AliCloud.Pai.Inputs.WorkspaceModelLabelArgs\n            {\n                Key = \"base_model\",\n                Value = \"SD 1.5\",\n            },\n        },\n        OrderNumber = 1,\n        ExtraInfo = \n        {\n            { \"test\", \"15\" },\n        },\n        ModelDescription = \"ModelDescription.\",\n        ModelDoc = \"https://eas-***.oss-cn-hangzhou.aliyuncs.com/s**.safetensors\",\n        Domain = \"aigc\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pai\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultENuC6u, err := pai.NewWorkspaceWorkspace(ctx, \"defaultENuC6u\", \u0026pai.WorkspaceWorkspaceArgs{\n\t\t\tDescription:   pulumi.String(\"156\"),\n\t\t\tDisplayName:   pulumi.String(name),\n\t\t\tWorkspaceName: pulumi.Sprintf(\"%v_%v\", name, _default.Result),\n\t\t\tEnvTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"prod\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pai.NewWorkspaceModel(ctx, \"default\", \u0026pai.WorkspaceModelArgs{\n\t\t\tOrigin:        pulumi.String(\"Civitai\"),\n\t\t\tTask:          pulumi.String(\"text-to-image-synthesis\"),\n\t\t\tModelName:     pulumi.String(name),\n\t\t\tAccessibility: pulumi.String(\"PRIVATE\"),\n\t\t\tWorkspaceId:   defaultENuC6u.ID(),\n\t\t\tModelType:     pulumi.String(\"Checkpoint\"),\n\t\t\tLabels: pai.WorkspaceModelLabelArray{\n\t\t\t\t\u0026pai.WorkspaceModelLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"base_model\"),\n\t\t\t\t\tValue: pulumi.String(\"SD 1.5\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOrderNumber: pulumi.Int(1),\n\t\t\tExtraInfo: pulumi.StringMap{\n\t\t\t\t\"test\": pulumi.String(\"15\"),\n\t\t\t},\n\t\t\tModelDescription: pulumi.String(\"ModelDescription.\"),\n\t\t\tModelDoc:         pulumi.String(\"https://eas-***.oss-cn-hangzhou.aliyuncs.com/s**.safetensors\"),\n\t\t\tDomain:           pulumi.String(\"aigc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspace;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspaceArgs;\nimport com.pulumi.alicloud.pai.WorkspaceModel;\nimport com.pulumi.alicloud.pai.WorkspaceModelArgs;\nimport com.pulumi.alicloud.pai.inputs.WorkspaceModelLabelArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultENuC6u = new WorkspaceWorkspace(\"defaultENuC6u\", WorkspaceWorkspaceArgs.builder()\n            .description(\"156\")\n            .displayName(name)\n            .workspaceName(String.format(\"%s_%s\", name,default_.result()))\n            .envTypes(\"prod\")\n            .build());\n\n        var defaultWorkspaceModel = new WorkspaceModel(\"defaultWorkspaceModel\", WorkspaceModelArgs.builder()\n            .origin(\"Civitai\")\n            .task(\"text-to-image-synthesis\")\n            .modelName(name)\n            .accessibility(\"PRIVATE\")\n            .workspaceId(defaultENuC6u.id())\n            .modelType(\"Checkpoint\")\n            .labels(WorkspaceModelLabelArgs.builder()\n                .key(\"base_model\")\n                .value(\"SD 1.5\")\n                .build())\n            .orderNumber(1)\n            .extraInfo(Map.of(\"test\", \"15\"))\n            .modelDescription(\"ModelDescription.\")\n            .modelDoc(\"https://eas-***.oss-cn-hangzhou.aliyuncs.com/s**.safetensors\")\n            .domain(\"aigc\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultENuC6u:\n    type: alicloud:pai:WorkspaceWorkspace\n    properties:\n      description: '156'\n      displayName: ${name}\n      workspaceName: ${name}_${default.result}\n      envTypes:\n        - prod\n  defaultWorkspaceModel:\n    type: alicloud:pai:WorkspaceModel\n    name: default\n    properties:\n      origin: Civitai\n      task: text-to-image-synthesis\n      modelName: ${name}\n      accessibility: PRIVATE\n      workspaceId: ${defaultENuC6u.id}\n      modelType: Checkpoint\n      labels:\n        - key: base_model\n          value: SD 1.5\n      orderNumber: '1'\n      extraInfo:\n        test: '15'\n      modelDescription: ModelDescription.\n      modelDoc: https://eas-***.oss-cn-hangzhou.aliyuncs.com/s**.safetensors\n      domain: aigc\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPAI Workspace Model can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pai/workspaceModel:WorkspaceModel example \u003cid\u003e\n```\n\n","properties":{"accessibility":{"type":"string","description":"The visibility of the model in the workspace. Default value: `PRIVATE`. Valid values:\n- `PRIVATE`: In this workspace, it is only visible to you and the administrator.\n- `PUBLIC`: In this workspace, it is visible to everyone.\n"},"domain":{"type":"string","description":"The domain of the model. Describe the domain in which the model solves the problem. For example: nlp (natural language processing), cv (computer vision), etc.\n"},"extraInfo":{"type":"object","additionalProperties":{"type":"string"},"description":"Other information about the model.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:pai/WorkspaceModelLabel:WorkspaceModelLabel"},"description":"A list of tags. See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"modelDescription":{"type":"string","description":"The model description, used to distinguish different models.\n"},"modelDoc":{"type":"string","description":"The documentation of the model.\n"},"modelName":{"type":"string","description":"The name of the model. The name must be 1 to 127 characters in length.\n"},"modelType":{"type":"string","description":"The model type. Example: Checkpoint or LoRA.\n"},"orderNumber":{"type":"integer","description":"The sequence number of the model. Can be used for custom sorting.\n"},"origin":{"type":"string","description":"The source of the model. The community or organization to which the source model belongs, such as ModelScope or HuggingFace.\n"},"task":{"type":"string","description":"The task of the model. Describes the specific problem that the model solves. Example: text-classification.\n"},"workspaceId":{"type":"string","description":"The ID of the workspace.\n"}},"required":["accessibility","modelName","workspaceId"],"inputProperties":{"accessibility":{"type":"string","description":"The visibility of the model in the workspace. Default value: `PRIVATE`. Valid values:\n- `PRIVATE`: In this workspace, it is only visible to you and the administrator.\n- `PUBLIC`: In this workspace, it is visible to everyone.\n"},"domain":{"type":"string","description":"The domain of the model. Describe the domain in which the model solves the problem. For example: nlp (natural language processing), cv (computer vision), etc.\n"},"extraInfo":{"type":"object","additionalProperties":{"type":"string"},"description":"Other information about the model.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:pai/WorkspaceModelLabel:WorkspaceModelLabel"},"description":"A list of tags. See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"modelDescription":{"type":"string","description":"The model description, used to distinguish different models.\n"},"modelDoc":{"type":"string","description":"The documentation of the model.\n"},"modelName":{"type":"string","description":"The name of the model. The name must be 1 to 127 characters in length.\n"},"modelType":{"type":"string","description":"The model type. Example: Checkpoint or LoRA.\n"},"orderNumber":{"type":"integer","description":"The sequence number of the model. Can be used for custom sorting.\n"},"origin":{"type":"string","description":"The source of the model. The community or organization to which the source model belongs, such as ModelScope or HuggingFace.\n"},"task":{"type":"string","description":"The task of the model. Describes the specific problem that the model solves. Example: text-classification.\n"},"workspaceId":{"type":"string","description":"The ID of the workspace.\n","willReplaceOnChanges":true}},"requiredInputs":["modelName"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkspaceModel resources.\n","properties":{"accessibility":{"type":"string","description":"The visibility of the model in the workspace. Default value: `PRIVATE`. Valid values:\n- `PRIVATE`: In this workspace, it is only visible to you and the administrator.\n- `PUBLIC`: In this workspace, it is visible to everyone.\n"},"domain":{"type":"string","description":"The domain of the model. Describe the domain in which the model solves the problem. For example: nlp (natural language processing), cv (computer vision), etc.\n"},"extraInfo":{"type":"object","additionalProperties":{"type":"string"},"description":"Other information about the model.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:pai/WorkspaceModelLabel:WorkspaceModelLabel"},"description":"A list of tags. See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"modelDescription":{"type":"string","description":"The model description, used to distinguish different models.\n"},"modelDoc":{"type":"string","description":"The documentation of the model.\n"},"modelName":{"type":"string","description":"The name of the model. The name must be 1 to 127 characters in length.\n"},"modelType":{"type":"string","description":"The model type. Example: Checkpoint or LoRA.\n"},"orderNumber":{"type":"integer","description":"The sequence number of the model. Can be used for custom sorting.\n"},"origin":{"type":"string","description":"The source of the model. The community or organization to which the source model belongs, such as ModelScope or HuggingFace.\n"},"task":{"type":"string","description":"The task of the model. Describes the specific problem that the model solves. Example: text-classification.\n"},"workspaceId":{"type":"string","description":"The ID of the workspace.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:pai/workspaceModelVersion:WorkspaceModelVersion":{"description":"Provides a PAI Workspace Model Version resource.\n\n\n\nFor information about PAI Workspace Model Version and how to use it, see [What is Model Version](https://next.api.alibabacloud.com/document/AIWorkSpace/2021-02-04/CreateModelVersion).\n\n\u003e **NOTE:** Available since v1.248.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultDI9fsL = new alicloud.pai.WorkspaceWorkspace(\"defaultDI9fsL\", {\n    description: \"802\",\n    displayName: name,\n    workspaceName: `${name}_${_default.result}`,\n    envTypes: [\"prod\"],\n});\nconst defaultsHptEL = new alicloud.pai.WorkspaceModel(\"defaultsHptEL\", {\n    modelName: name,\n    workspaceId: defaultDI9fsL.id,\n    origin: \"Civitai\",\n    task: \"text-to-image-synthesis\",\n    accessibility: \"PRIVATE\",\n    modelType: \"Checkpoint\",\n    orderNumber: 1,\n    modelDescription: \"ModelDescription.\",\n    modelDoc: \"https://eas-***.oss-cn-hangzhou.aliyuncs.com/s**.safetensors\",\n    domain: \"aigc\",\n    labels: [{\n        key: \"base_model\",\n        value: \"SD 1.5\",\n    }],\n    extraInfo: {\n        test: \"15\",\n    },\n});\nconst defaultWorkspaceModelVersion = new alicloud.pai.WorkspaceModelVersion(\"default\", {\n    versionDescription: \"VersionDescription.\",\n    sourceType: \"TrainingService\",\n    sourceId: \"region=${region},workspaceId=${workspace_id},kind=TrainingJob,id=job-id\",\n    extraInfo: {\n        test: \"15\",\n    },\n    trainingSpec: {\n        test: \"TrainingSpec\",\n    },\n    uri: \"oss://hz-example-0701.oss-cn-hangzhou-internal.aliyuncs.com/checkpoints/\",\n    inferenceSpec: {\n        test: \"InferenceSpec\",\n    },\n    modelId: defaultsHptEL.id,\n    formatType: \"SavedModel\",\n    approvalStatus: \"Pending\",\n    frameworkType: \"PyTorch\",\n    versionName: \"1.0.0\",\n    metrics: {},\n    labels: [{\n        key: \"k1\",\n        value: \"vs1\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_di9fs_l = alicloud.pai.WorkspaceWorkspace(\"defaultDI9fsL\",\n    description=\"802\",\n    display_name=name,\n    workspace_name=f\"{name}_{default['result']}\",\n    env_types=[\"prod\"])\ndefaults_hpt_el = alicloud.pai.WorkspaceModel(\"defaultsHptEL\",\n    model_name=name,\n    workspace_id=default_di9fs_l.id,\n    origin=\"Civitai\",\n    task=\"text-to-image-synthesis\",\n    accessibility=\"PRIVATE\",\n    model_type=\"Checkpoint\",\n    order_number=1,\n    model_description=\"ModelDescription.\",\n    model_doc=\"https://eas-***.oss-cn-hangzhou.aliyuncs.com/s**.safetensors\",\n    domain=\"aigc\",\n    labels=[{\n        \"key\": \"base_model\",\n        \"value\": \"SD 1.5\",\n    }],\n    extra_info={\n        \"test\": \"15\",\n    })\ndefault_workspace_model_version = alicloud.pai.WorkspaceModelVersion(\"default\",\n    version_description=\"VersionDescription.\",\n    source_type=\"TrainingService\",\n    source_id=\"region=${region},workspaceId=${workspace_id},kind=TrainingJob,id=job-id\",\n    extra_info={\n        \"test\": \"15\",\n    },\n    training_spec={\n        \"test\": \"TrainingSpec\",\n    },\n    uri=\"oss://hz-example-0701.oss-cn-hangzhou-internal.aliyuncs.com/checkpoints/\",\n    inference_spec={\n        \"test\": \"InferenceSpec\",\n    },\n    model_id=defaults_hpt_el.id,\n    format_type=\"SavedModel\",\n    approval_status=\"Pending\",\n    framework_type=\"PyTorch\",\n    version_name=\"1.0.0\",\n    metrics={},\n    labels=[{\n        \"key\": \"k1\",\n        \"value\": \"vs1\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultDI9fsL = new AliCloud.Pai.WorkspaceWorkspace(\"defaultDI9fsL\", new()\n    {\n        Description = \"802\",\n        DisplayName = name,\n        WorkspaceName = $\"{name}_{@default.Result}\",\n        EnvTypes = new[]\n        {\n            \"prod\",\n        },\n    });\n\n    var defaultsHptEL = new AliCloud.Pai.WorkspaceModel(\"defaultsHptEL\", new()\n    {\n        ModelName = name,\n        WorkspaceId = defaultDI9fsL.Id,\n        Origin = \"Civitai\",\n        Task = \"text-to-image-synthesis\",\n        Accessibility = \"PRIVATE\",\n        ModelType = \"Checkpoint\",\n        OrderNumber = 1,\n        ModelDescription = \"ModelDescription.\",\n        ModelDoc = \"https://eas-***.oss-cn-hangzhou.aliyuncs.com/s**.safetensors\",\n        Domain = \"aigc\",\n        Labels = new[]\n        {\n            new AliCloud.Pai.Inputs.WorkspaceModelLabelArgs\n            {\n                Key = \"base_model\",\n                Value = \"SD 1.5\",\n            },\n        },\n        ExtraInfo = \n        {\n            { \"test\", \"15\" },\n        },\n    });\n\n    var defaultWorkspaceModelVersion = new AliCloud.Pai.WorkspaceModelVersion(\"default\", new()\n    {\n        VersionDescription = \"VersionDescription.\",\n        SourceType = \"TrainingService\",\n        SourceId = \"region=${region},workspaceId=${workspace_id},kind=TrainingJob,id=job-id\",\n        ExtraInfo = \n        {\n            { \"test\", \"15\" },\n        },\n        TrainingSpec = \n        {\n            { \"test\", \"TrainingSpec\" },\n        },\n        Uri = \"oss://hz-example-0701.oss-cn-hangzhou-internal.aliyuncs.com/checkpoints/\",\n        InferenceSpec = \n        {\n            { \"test\", \"InferenceSpec\" },\n        },\n        ModelId = defaultsHptEL.Id,\n        FormatType = \"SavedModel\",\n        ApprovalStatus = \"Pending\",\n        FrameworkType = \"PyTorch\",\n        VersionName = \"1.0.0\",\n        Metrics = null,\n        Labels = new[]\n        {\n            new AliCloud.Pai.Inputs.WorkspaceModelVersionLabelArgs\n            {\n                Key = \"k1\",\n                Value = \"vs1\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pai\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDI9fsL, err := pai.NewWorkspaceWorkspace(ctx, \"defaultDI9fsL\", \u0026pai.WorkspaceWorkspaceArgs{\n\t\t\tDescription:   pulumi.String(\"802\"),\n\t\t\tDisplayName:   pulumi.String(name),\n\t\t\tWorkspaceName: pulumi.Sprintf(\"%v_%v\", name, _default.Result),\n\t\t\tEnvTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"prod\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultsHptEL, err := pai.NewWorkspaceModel(ctx, \"defaultsHptEL\", \u0026pai.WorkspaceModelArgs{\n\t\t\tModelName:        pulumi.String(name),\n\t\t\tWorkspaceId:      defaultDI9fsL.ID(),\n\t\t\tOrigin:           pulumi.String(\"Civitai\"),\n\t\t\tTask:             pulumi.String(\"text-to-image-synthesis\"),\n\t\t\tAccessibility:    pulumi.String(\"PRIVATE\"),\n\t\t\tModelType:        pulumi.String(\"Checkpoint\"),\n\t\t\tOrderNumber:      pulumi.Int(1),\n\t\t\tModelDescription: pulumi.String(\"ModelDescription.\"),\n\t\t\tModelDoc:         pulumi.String(\"https://eas-***.oss-cn-hangzhou.aliyuncs.com/s**.safetensors\"),\n\t\t\tDomain:           pulumi.String(\"aigc\"),\n\t\t\tLabels: pai.WorkspaceModelLabelArray{\n\t\t\t\t\u0026pai.WorkspaceModelLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"base_model\"),\n\t\t\t\t\tValue: pulumi.String(\"SD 1.5\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tExtraInfo: pulumi.StringMap{\n\t\t\t\t\"test\": pulumi.String(\"15\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pai.NewWorkspaceModelVersion(ctx, \"default\", \u0026pai.WorkspaceModelVersionArgs{\n\t\t\tVersionDescription: pulumi.String(\"VersionDescription.\"),\n\t\t\tSourceType:         pulumi.String(\"TrainingService\"),\n\t\t\tSourceId:           pulumi.String(\"region=${region},workspaceId=${workspace_id},kind=TrainingJob,id=job-id\"),\n\t\t\tExtraInfo: pulumi.StringMap{\n\t\t\t\t\"test\": pulumi.String(\"15\"),\n\t\t\t},\n\t\t\tTrainingSpec: pulumi.StringMap{\n\t\t\t\t\"test\": pulumi.String(\"TrainingSpec\"),\n\t\t\t},\n\t\t\tUri: pulumi.String(\"oss://hz-example-0701.oss-cn-hangzhou-internal.aliyuncs.com/checkpoints/\"),\n\t\t\tInferenceSpec: pulumi.StringMap{\n\t\t\t\t\"test\": pulumi.String(\"InferenceSpec\"),\n\t\t\t},\n\t\t\tModelId:        defaultsHptEL.ID(),\n\t\t\tFormatType:     pulumi.String(\"SavedModel\"),\n\t\t\tApprovalStatus: pulumi.String(\"Pending\"),\n\t\t\tFrameworkType:  pulumi.String(\"PyTorch\"),\n\t\t\tVersionName:    pulumi.String(\"1.0.0\"),\n\t\t\tMetrics:        pulumi.StringMap{},\n\t\t\tLabels: pai.WorkspaceModelVersionLabelArray{\n\t\t\t\t\u0026pai.WorkspaceModelVersionLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"k1\"),\n\t\t\t\t\tValue: pulumi.String(\"vs1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspace;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspaceArgs;\nimport com.pulumi.alicloud.pai.WorkspaceModel;\nimport com.pulumi.alicloud.pai.WorkspaceModelArgs;\nimport com.pulumi.alicloud.pai.inputs.WorkspaceModelLabelArgs;\nimport com.pulumi.alicloud.pai.WorkspaceModelVersion;\nimport com.pulumi.alicloud.pai.WorkspaceModelVersionArgs;\nimport com.pulumi.alicloud.pai.inputs.WorkspaceModelVersionLabelArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultDI9fsL = new WorkspaceWorkspace(\"defaultDI9fsL\", WorkspaceWorkspaceArgs.builder()\n            .description(\"802\")\n            .displayName(name)\n            .workspaceName(String.format(\"%s_%s\", name,default_.result()))\n            .envTypes(\"prod\")\n            .build());\n\n        var defaultsHptEL = new WorkspaceModel(\"defaultsHptEL\", WorkspaceModelArgs.builder()\n            .modelName(name)\n            .workspaceId(defaultDI9fsL.id())\n            .origin(\"Civitai\")\n            .task(\"text-to-image-synthesis\")\n            .accessibility(\"PRIVATE\")\n            .modelType(\"Checkpoint\")\n            .orderNumber(1)\n            .modelDescription(\"ModelDescription.\")\n            .modelDoc(\"https://eas-***.oss-cn-hangzhou.aliyuncs.com/s**.safetensors\")\n            .domain(\"aigc\")\n            .labels(WorkspaceModelLabelArgs.builder()\n                .key(\"base_model\")\n                .value(\"SD 1.5\")\n                .build())\n            .extraInfo(Map.of(\"test\", \"15\"))\n            .build());\n\n        var defaultWorkspaceModelVersion = new WorkspaceModelVersion(\"defaultWorkspaceModelVersion\", WorkspaceModelVersionArgs.builder()\n            .versionDescription(\"VersionDescription.\")\n            .sourceType(\"TrainingService\")\n            .sourceId(\"region=${region},workspaceId=${workspace_id},kind=TrainingJob,id=job-id\")\n            .extraInfo(Map.of(\"test\", \"15\"))\n            .trainingSpec(Map.of(\"test\", \"TrainingSpec\"))\n            .uri(\"oss://hz-example-0701.oss-cn-hangzhou-internal.aliyuncs.com/checkpoints/\")\n            .inferenceSpec(Map.of(\"test\", \"InferenceSpec\"))\n            .modelId(defaultsHptEL.id())\n            .formatType(\"SavedModel\")\n            .approvalStatus(\"Pending\")\n            .frameworkType(\"PyTorch\")\n            .versionName(\"1.0.0\")\n            .metrics(Map.ofEntries(\n            ))\n            .labels(WorkspaceModelVersionLabelArgs.builder()\n                .key(\"k1\")\n                .value(\"vs1\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultDI9fsL:\n    type: alicloud:pai:WorkspaceWorkspace\n    properties:\n      description: '802'\n      displayName: ${name}\n      workspaceName: ${name}_${default.result}\n      envTypes:\n        - prod\n  defaultsHptEL:\n    type: alicloud:pai:WorkspaceModel\n    properties:\n      modelName: ${name}\n      workspaceId: ${defaultDI9fsL.id}\n      origin: Civitai\n      task: text-to-image-synthesis\n      accessibility: PRIVATE\n      modelType: Checkpoint\n      orderNumber: '1'\n      modelDescription: ModelDescription.\n      modelDoc: https://eas-***.oss-cn-hangzhou.aliyuncs.com/s**.safetensors\n      domain: aigc\n      labels:\n        - key: base_model\n          value: SD 1.5\n      extraInfo:\n        test: '15'\n  defaultWorkspaceModelVersion:\n    type: alicloud:pai:WorkspaceModelVersion\n    name: default\n    properties:\n      versionDescription: VersionDescription.\n      sourceType: TrainingService\n      sourceId: region=$${region},workspaceId=$${workspace_id},kind=TrainingJob,id=job-id\n      extraInfo:\n        test: '15'\n      trainingSpec:\n        test: TrainingSpec\n      uri: oss://hz-example-0701.oss-cn-hangzhou-internal.aliyuncs.com/checkpoints/\n      inferenceSpec:\n        test: InferenceSpec\n      modelId: ${defaultsHptEL.id}\n      formatType: SavedModel\n      approvalStatus: Pending\n      frameworkType: PyTorch\n      versionName: 1.0.0\n      metrics: {}\n      labels:\n        - key: k1\n          value: vs1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPAI Workspace Model Version can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pai/workspaceModelVersion:WorkspaceModelVersion example \u003cmodel_id\u003e:\u003cversion_name\u003e\n```\n\n","properties":{"approvalStatus":{"type":"string","description":"The approval status. Valid values:\n- Pending: To be determined.\n- Approved: Allow to go online.\n- Rejected: Online is not allowed.\n"},"extraInfo":{"type":"object","additionalProperties":{"type":"string"},"description":"Other information.\n"},"formatType":{"type":"string","description":"The format of the model. Valid values:\n- OfflineModel\n- SavedModel\n- Keras H5\n- Frozen Pb\n- Caffe Prototxt\n- TorchScript\n- XGBoost\n- PMML\n- AlinkModel\n- ONNX\n"},"frameworkType":{"type":"string","description":"The framework of the model. Valid values:\n- Pytorch\n- XGBoost\n- Keras\n- Caffe\n- Alink\n- Xflow\n- TensorFlow\n"},"inferenceSpec":{"type":"object","additionalProperties":{"type":"string"},"description":"Describes how to apply to downstream inference services.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:pai/WorkspaceModelVersionLabel:WorkspaceModelVersionLabel"},"description":"List of model version labels. See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"metrics":{"type":"object","additionalProperties":{"type":"string"},"description":"The metrics for the model. The serialized length is limited to 8192.\n"},"modelId":{"type":"string","description":"The model ID.\n"},"options":{"type":"string","description":"The extended field. This is a JSON string.\n"},"sourceId":{"type":"string","description":"The source ID.\n"},"sourceType":{"type":"string","description":"The type of the model source. Valid values:\n- Custom: Custom.\n- PAIFlow:PAI workflow.\n- TrainingService:PAI training service.\n"},"trainingSpec":{"type":"object","additionalProperties":{"type":"string"},"description":"The training configurations. Used for fine-tuning and incremental training.\n"},"uri":{"type":"string","description":"The URI of the model version.\n"},"versionDescription":{"type":"string","description":"The version descriptions.\n"},"versionName":{"type":"string","description":"The Model version.\n"}},"required":["approvalStatus","modelId","sourceType","uri","versionName"],"inputProperties":{"approvalStatus":{"type":"string","description":"The approval status. Valid values:\n- Pending: To be determined.\n- Approved: Allow to go online.\n- Rejected: Online is not allowed.\n"},"extraInfo":{"type":"object","additionalProperties":{"type":"string"},"description":"Other information.\n"},"formatType":{"type":"string","description":"The format of the model. Valid values:\n- OfflineModel\n- SavedModel\n- Keras H5\n- Frozen Pb\n- Caffe Prototxt\n- TorchScript\n- XGBoost\n- PMML\n- AlinkModel\n- ONNX\n","willReplaceOnChanges":true},"frameworkType":{"type":"string","description":"The framework of the model. Valid values:\n- Pytorch\n- XGBoost\n- Keras\n- Caffe\n- Alink\n- Xflow\n- TensorFlow\n","willReplaceOnChanges":true},"inferenceSpec":{"type":"object","additionalProperties":{"type":"string"},"description":"Describes how to apply to downstream inference services.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:pai/WorkspaceModelVersionLabel:WorkspaceModelVersionLabel"},"description":"List of model version labels. See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"metrics":{"type":"object","additionalProperties":{"type":"string"},"description":"The metrics for the model. The serialized length is limited to 8192.\n"},"modelId":{"type":"string","description":"The model ID.\n","willReplaceOnChanges":true},"options":{"type":"string","description":"The extended field. This is a JSON string.\n"},"sourceId":{"type":"string","description":"The source ID.\n"},"sourceType":{"type":"string","description":"The type of the model source. Valid values:\n- Custom: Custom.\n- PAIFlow:PAI workflow.\n- TrainingService:PAI training service.\n"},"trainingSpec":{"type":"object","additionalProperties":{"type":"string"},"description":"The training configurations. Used for fine-tuning and incremental training.\n"},"uri":{"type":"string","description":"The URI of the model version.\n","willReplaceOnChanges":true},"versionDescription":{"type":"string","description":"The version descriptions.\n"},"versionName":{"type":"string","description":"The Model version.\n","willReplaceOnChanges":true}},"requiredInputs":["modelId","uri"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkspaceModelVersion resources.\n","properties":{"approvalStatus":{"type":"string","description":"The approval status. Valid values:\n- Pending: To be determined.\n- Approved: Allow to go online.\n- Rejected: Online is not allowed.\n"},"extraInfo":{"type":"object","additionalProperties":{"type":"string"},"description":"Other information.\n"},"formatType":{"type":"string","description":"The format of the model. Valid values:\n- OfflineModel\n- SavedModel\n- Keras H5\n- Frozen Pb\n- Caffe Prototxt\n- TorchScript\n- XGBoost\n- PMML\n- AlinkModel\n- ONNX\n","willReplaceOnChanges":true},"frameworkType":{"type":"string","description":"The framework of the model. Valid values:\n- Pytorch\n- XGBoost\n- Keras\n- Caffe\n- Alink\n- Xflow\n- TensorFlow\n","willReplaceOnChanges":true},"inferenceSpec":{"type":"object","additionalProperties":{"type":"string"},"description":"Describes how to apply to downstream inference services.\n"},"labels":{"type":"array","items":{"$ref":"#/types/alicloud:pai/WorkspaceModelVersionLabel:WorkspaceModelVersionLabel"},"description":"List of model version labels. See \u003cspan pulumi-lang-nodejs=\"`labels`\" pulumi-lang-dotnet=\"`Labels`\" pulumi-lang-go=\"`labels`\" pulumi-lang-python=\"`labels`\" pulumi-lang-yaml=\"`labels`\" pulumi-lang-java=\"`labels`\"\u003e`labels`\u003c/span\u003e below.\n"},"metrics":{"type":"object","additionalProperties":{"type":"string"},"description":"The metrics for the model. The serialized length is limited to 8192.\n"},"modelId":{"type":"string","description":"The model ID.\n","willReplaceOnChanges":true},"options":{"type":"string","description":"The extended field. This is a JSON string.\n"},"sourceId":{"type":"string","description":"The source ID.\n"},"sourceType":{"type":"string","description":"The type of the model source. Valid values:\n- Custom: Custom.\n- PAIFlow:PAI workflow.\n- TrainingService:PAI training service.\n"},"trainingSpec":{"type":"object","additionalProperties":{"type":"string"},"description":"The training configurations. Used for fine-tuning and incremental training.\n"},"uri":{"type":"string","description":"The URI of the model version.\n","willReplaceOnChanges":true},"versionDescription":{"type":"string","description":"The version descriptions.\n"},"versionName":{"type":"string","description":"The Model version.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:pai/workspaceRun:WorkspaceRun":{"description":"Provides a PAI Workspace Run resource.\n\n\n\nFor information about PAI Workspace Run and how to use it, see [What is Run](https://next.api.alibabacloud.com/document/AIWorkSpace/2021-02-04/CreateRun).\n\n\u003e **NOTE:** Available since v1.236.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst defaultCAFUa9 = new alicloud.pai.WorkspaceWorkspace(\"defaultCAFUa9\", {\n    description: name,\n    displayName: name,\n    workspaceName: name,\n    envTypes: [\"prod\"],\n});\nconst defaultQRwWbv = new alicloud.pai.WorkspaceExperiment(\"defaultQRwWbv\", {\n    accessibility: \"PRIVATE\",\n    artifactUri: \"oss://example.oss-cn-hangzhou.aliyuncs.com/example/\",\n    experimentName: std.format({\n        input: \"%s1\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    workspaceId: defaultCAFUa9.id,\n});\nconst _default = new alicloud.pai.WorkspaceRun(\"default\", {\n    sourceType: \"TrainingService\",\n    sourceId: \"759\",\n    runName: name,\n    experimentId: defaultQRwWbv.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault_caf_ua9 = alicloud.pai.WorkspaceWorkspace(\"defaultCAFUa9\",\n    description=name,\n    display_name=name,\n    workspace_name=name,\n    env_types=[\"prod\"])\ndefault_q_rw_wbv = alicloud.pai.WorkspaceExperiment(\"defaultQRwWbv\",\n    accessibility=\"PRIVATE\",\n    artifact_uri=\"oss://example.oss-cn-hangzhou.aliyuncs.com/example/\",\n    experiment_name=std.format(input=\"%s1\",\n        args=[name]).result,\n    workspace_id=default_caf_ua9.id)\ndefault = alicloud.pai.WorkspaceRun(\"default\",\n    source_type=\"TrainingService\",\n    source_id=\"759\",\n    run_name=name,\n    experiment_id=default_q_rw_wbv.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var defaultCAFUa9 = new AliCloud.Pai.WorkspaceWorkspace(\"defaultCAFUa9\", new()\n    {\n        Description = name,\n        DisplayName = name,\n        WorkspaceName = name,\n        EnvTypes = new[]\n        {\n            \"prod\",\n        },\n    });\n\n    var defaultQRwWbv = new AliCloud.Pai.WorkspaceExperiment(\"defaultQRwWbv\", new()\n    {\n        Accessibility = \"PRIVATE\",\n        ArtifactUri = \"oss://example.oss-cn-hangzhou.aliyuncs.com/example/\",\n        ExperimentName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        WorkspaceId = defaultCAFUa9.Id,\n    });\n\n    var @default = new AliCloud.Pai.WorkspaceRun(\"default\", new()\n    {\n        SourceType = \"TrainingService\",\n        SourceId = \"759\",\n        RunName = name,\n        ExperimentId = defaultQRwWbv.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pai\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultCAFUa9, err := pai.NewWorkspaceWorkspace(ctx, \"defaultCAFUa9\", \u0026pai.WorkspaceWorkspaceArgs{\n\t\t\tDescription:   pulumi.String(name),\n\t\t\tDisplayName:   pulumi.String(name),\n\t\t\tWorkspaceName: pulumi.String(name),\n\t\t\tEnvTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"prod\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultQRwWbv, err := pai.NewWorkspaceExperiment(ctx, \"defaultQRwWbv\", \u0026pai.WorkspaceExperimentArgs{\n\t\t\tAccessibility:  pulumi.String(\"PRIVATE\"),\n\t\t\tArtifactUri:    pulumi.String(\"oss://example.oss-cn-hangzhou.aliyuncs.com/example/\"),\n\t\t\tExperimentName: pulumi.String(invokeFormat.Result),\n\t\t\tWorkspaceId:    defaultCAFUa9.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pai.NewWorkspaceRun(ctx, \"default\", \u0026pai.WorkspaceRunArgs{\n\t\t\tSourceType:   pulumi.String(\"TrainingService\"),\n\t\t\tSourceId:     pulumi.String(\"759\"),\n\t\t\tRunName:      pulumi.String(name),\n\t\t\tExperimentId: defaultQRwWbv.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspace;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspaceArgs;\nimport com.pulumi.alicloud.pai.WorkspaceExperiment;\nimport com.pulumi.alicloud.pai.WorkspaceExperimentArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.pai.WorkspaceRun;\nimport com.pulumi.alicloud.pai.WorkspaceRunArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var defaultCAFUa9 = new WorkspaceWorkspace(\"defaultCAFUa9\", WorkspaceWorkspaceArgs.builder()\n            .description(name)\n            .displayName(name)\n            .workspaceName(name)\n            .envTypes(\"prod\")\n            .build());\n\n        var defaultQRwWbv = new WorkspaceExperiment(\"defaultQRwWbv\", WorkspaceExperimentArgs.builder()\n            .accessibility(\"PRIVATE\")\n            .artifactUri(\"oss://example.oss-cn-hangzhou.aliyuncs.com/example/\")\n            .experimentName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1\")\n                .args(name)\n                .build()).result())\n            .workspaceId(defaultCAFUa9.id())\n            .build());\n\n        var default_ = new WorkspaceRun(\"default\", WorkspaceRunArgs.builder()\n            .sourceType(\"TrainingService\")\n            .sourceId(\"759\")\n            .runName(name)\n            .experimentId(defaultQRwWbv.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  defaultCAFUa9:\n    type: alicloud:pai:WorkspaceWorkspace\n    properties:\n      description: ${name}\n      displayName: ${name}\n      workspaceName: ${name}\n      envTypes:\n        - prod\n  defaultQRwWbv:\n    type: alicloud:pai:WorkspaceExperiment\n    properties:\n      accessibility: PRIVATE\n      artifactUri: oss://example.oss-cn-hangzhou.aliyuncs.com/example/\n      experimentName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1'\n            args:\n              - ${name}\n          return: result\n      workspaceId: ${defaultCAFUa9.id}\n  default:\n    type: alicloud:pai:WorkspaceRun\n    properties:\n      sourceType: TrainingService\n      sourceId: '759'\n      runName: ${name}\n      experimentId: ${defaultQRwWbv.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPAI Workspace Run can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pai/workspaceRun:WorkspaceRun example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"experimentId":{"type":"string","description":"Resource attribute field of the experiment ID to which Run belongs\n"},"runName":{"type":"string","description":"The name of the resource\n"},"sourceId":{"type":"string","description":"Attribute Resource field representing the source task ID\n"},"sourceType":{"type":"string","description":"Resource attribute fields representing the source type\n"}},"required":["createTime","experimentId"],"inputProperties":{"experimentId":{"type":"string","description":"Resource attribute field of the experiment ID to which Run belongs\n","willReplaceOnChanges":true},"runName":{"type":"string","description":"The name of the resource\n"},"sourceId":{"type":"string","description":"Attribute Resource field representing the source task ID\n","willReplaceOnChanges":true},"sourceType":{"type":"string","description":"Resource attribute fields representing the source type\n","willReplaceOnChanges":true}},"requiredInputs":["experimentId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkspaceRun resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"experimentId":{"type":"string","description":"Resource attribute field of the experiment ID to which Run belongs\n","willReplaceOnChanges":true},"runName":{"type":"string","description":"The name of the resource\n"},"sourceId":{"type":"string","description":"Attribute Resource field representing the source task ID\n","willReplaceOnChanges":true},"sourceType":{"type":"string","description":"Resource attribute fields representing the source type\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:pai/workspaceUserConfig:WorkspaceUserConfig":{"description":"Provides a PAI Workspace User Config resource.\n\n\n\nFor information about PAI Workspace User Config and how to use it, see [What is User Config](https://www.alibabacloud.com/help/en/pai/developer-reference/api-aiworkspace-2021-02-04-setuserconfigs).\n\n\u003e **NOTE:** Available since v1.250.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst _default = new alicloud.pai.WorkspaceUserConfig(\"default\", {\n    categoryName: \"DataPrivacyConfig\",\n    configKey: \"customizePAIAssumedRole\",\n    configValue: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault = alicloud.pai.WorkspaceUserConfig(\"default\",\n    category_name=\"DataPrivacyConfig\",\n    config_key=\"customizePAIAssumedRole\",\n    config_value=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var @default = new AliCloud.Pai.WorkspaceUserConfig(\"default\", new()\n    {\n        CategoryName = \"DataPrivacyConfig\",\n        ConfigKey = \"customizePAIAssumedRole\",\n        ConfigValue = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pai\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := pai.NewWorkspaceUserConfig(ctx, \"default\", \u0026pai.WorkspaceUserConfigArgs{\n\t\t\tCategoryName: pulumi.String(\"DataPrivacyConfig\"),\n\t\t\tConfigKey:    pulumi.String(\"customizePAIAssumedRole\"),\n\t\t\tConfigValue:  pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pai.WorkspaceUserConfig;\nimport com.pulumi.alicloud.pai.WorkspaceUserConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var default_ = new WorkspaceUserConfig(\"default\", WorkspaceUserConfigArgs.builder()\n            .categoryName(\"DataPrivacyConfig\")\n            .configKey(\"customizePAIAssumedRole\")\n            .configValue(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  default:\n    type: alicloud:pai:WorkspaceUserConfig\n    properties:\n      categoryName: DataPrivacyConfig\n      configKey: customizePAIAssumedRole\n      configValue: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPAI Workspace User Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pai/workspaceUserConfig:WorkspaceUserConfig example \u003ccategory_name\u003e:\u003cconfig_key\u003e\n```\n\n","properties":{"categoryName":{"type":"string","description":"The category. Valid values: `DataPrivacyConfig`.\n"},"configKey":{"type":"string","description":"The key of the configuration.\n"},"configValue":{"type":"string","description":"The value of the configuration.\n"},"scope":{"type":"string","description":"The scope. Default value: \u003cspan pulumi-lang-nodejs=\"`owner`\" pulumi-lang-dotnet=\"`Owner`\" pulumi-lang-go=\"`owner`\" pulumi-lang-python=\"`owner`\" pulumi-lang-yaml=\"`owner`\" pulumi-lang-java=\"`owner`\"\u003e`owner`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`owner`\" pulumi-lang-dotnet=\"`Owner`\" pulumi-lang-go=\"`owner`\" pulumi-lang-python=\"`owner`\" pulumi-lang-yaml=\"`owner`\" pulumi-lang-java=\"`owner`\"\u003e`owner`\u003c/span\u003e, `subUser`.\n"}},"required":["categoryName","configKey","configValue","scope"],"inputProperties":{"categoryName":{"type":"string","description":"The category. Valid values: `DataPrivacyConfig`.\n","willReplaceOnChanges":true},"configKey":{"type":"string","description":"The key of the configuration.\n","willReplaceOnChanges":true},"configValue":{"type":"string","description":"The value of the configuration.\n"},"scope":{"type":"string","description":"The scope. Default value: \u003cspan pulumi-lang-nodejs=\"`owner`\" pulumi-lang-dotnet=\"`Owner`\" pulumi-lang-go=\"`owner`\" pulumi-lang-python=\"`owner`\" pulumi-lang-yaml=\"`owner`\" pulumi-lang-java=\"`owner`\"\u003e`owner`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`owner`\" pulumi-lang-dotnet=\"`Owner`\" pulumi-lang-go=\"`owner`\" pulumi-lang-python=\"`owner`\" pulumi-lang-yaml=\"`owner`\" pulumi-lang-java=\"`owner`\"\u003e`owner`\u003c/span\u003e, `subUser`.\n","willReplaceOnChanges":true}},"requiredInputs":["categoryName","configKey","configValue"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkspaceUserConfig resources.\n","properties":{"categoryName":{"type":"string","description":"The category. Valid values: `DataPrivacyConfig`.\n","willReplaceOnChanges":true},"configKey":{"type":"string","description":"The key of the configuration.\n","willReplaceOnChanges":true},"configValue":{"type":"string","description":"The value of the configuration.\n"},"scope":{"type":"string","description":"The scope. Default value: \u003cspan pulumi-lang-nodejs=\"`owner`\" pulumi-lang-dotnet=\"`Owner`\" pulumi-lang-go=\"`owner`\" pulumi-lang-python=\"`owner`\" pulumi-lang-yaml=\"`owner`\" pulumi-lang-java=\"`owner`\"\u003e`owner`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`owner`\" pulumi-lang-dotnet=\"`Owner`\" pulumi-lang-go=\"`owner`\" pulumi-lang-python=\"`owner`\" pulumi-lang-yaml=\"`owner`\" pulumi-lang-java=\"`owner`\"\u003e`owner`\u003c/span\u003e, `subUser`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:pai/workspaceWorkspace:WorkspaceWorkspace":{"description":"Provides a PAI Workspace Workspace resource.\n\n\n\nFor information about PAI Workspace Workspace and how to use it, see [What is Workspace](https://next.api.alibabacloud.com/document/AIWorkSpace/2021-02-04/CreateWorkspace).\n\n\u003e **NOTE:** Available since v1.233.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst _default = new alicloud.pai.WorkspaceWorkspace(\"default\", {\n    description: name,\n    workspaceName: name,\n    displayName: name,\n    envTypes: [\"prod\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault = alicloud.pai.WorkspaceWorkspace(\"default\",\n    description=name,\n    workspace_name=name,\n    display_name=name,\n    env_types=[\"prod\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var @default = new AliCloud.Pai.WorkspaceWorkspace(\"default\", new()\n    {\n        Description = name,\n        WorkspaceName = name,\n        DisplayName = name,\n        EnvTypes = new[]\n        {\n            \"prod\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pai\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := pai.NewWorkspaceWorkspace(ctx, \"default\", \u0026pai.WorkspaceWorkspaceArgs{\n\t\t\tDescription:   pulumi.String(name),\n\t\t\tWorkspaceName: pulumi.String(name),\n\t\t\tDisplayName:   pulumi.String(name),\n\t\t\tEnvTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"prod\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspace;\nimport com.pulumi.alicloud.pai.WorkspaceWorkspaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var default_ = new WorkspaceWorkspace(\"default\", WorkspaceWorkspaceArgs.builder()\n            .description(name)\n            .workspaceName(name)\n            .displayName(name)\n            .envTypes(\"prod\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  default:\n    type: alicloud:pai:WorkspaceWorkspace\n    properties:\n      description: ${name}\n      workspaceName: ${name}\n      displayName: ${name}\n      envTypes:\n        - prod\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPAI Workspace Workspace can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pai/workspaceWorkspace:WorkspaceWorkspace example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The UTC time when the workspace is created. The time format is ISO8601.\n"},"description":{"type":"string","description":"Workspace description, no more than 80 characters.\n"},"displayName":{"type":"string","description":"It is recommended that you name the workspace based on the business attribute to identify the purpose of the workspace. If not configured, the default value is the workspace name.\n"},"envTypes":{"type":"array","items":{"type":"string"},"description":"Environments contained in the workspace:\n- Simple mode only production environment (prod).\n- Standard mode includes development environment (dev) and production environment (prod).\n"},"status":{"type":"string","description":"Workspace state, possible values:\n"},"workspaceName":{"type":"string","description":"The workspace name. The format is as follows:\n- 3 to 23 characters in length and can contain letters, underscores, or numbers.\n- Must start with a large or small letter.\n- Unique in the current region.\n"}},"required":["createTime","description","envTypes","status","workspaceName"],"inputProperties":{"description":{"type":"string","description":"Workspace description, no more than 80 characters.\n"},"displayName":{"type":"string","description":"It is recommended that you name the workspace based on the business attribute to identify the purpose of the workspace. If not configured, the default value is the workspace name.\n"},"envTypes":{"type":"array","items":{"type":"string"},"description":"Environments contained in the workspace:\n- Simple mode only production environment (prod).\n- Standard mode includes development environment (dev) and production environment (prod).\n","willReplaceOnChanges":true},"workspaceName":{"type":"string","description":"The workspace name. The format is as follows:\n- 3 to 23 characters in length and can contain letters, underscores, or numbers.\n- Must start with a large or small letter.\n- Unique in the current region.\n","willReplaceOnChanges":true}},"requiredInputs":["description","envTypes","workspaceName"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkspaceWorkspace resources.\n","properties":{"createTime":{"type":"string","description":"The UTC time when the workspace is created. The time format is ISO8601.\n"},"description":{"type":"string","description":"Workspace description, no more than 80 characters.\n"},"displayName":{"type":"string","description":"It is recommended that you name the workspace based on the business attribute to identify the purpose of the workspace. If not configured, the default value is the workspace name.\n"},"envTypes":{"type":"array","items":{"type":"string"},"description":"Environments contained in the workspace:\n- Simple mode only production environment (prod).\n- Standard mode includes development environment (dev) and production environment (prod).\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Workspace state, possible values:\n"},"workspaceName":{"type":"string","description":"The workspace name. The format is as follows:\n- 3 to 23 characters in length and can contain letters, underscores, or numbers.\n- Must start with a large or small letter.\n- Unique in the current region.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:polardb/account:Account":{"description":"Provides a Polar Db Account resource.\n\nDatabase account information.\n\nFor information about Polar Db Account and how to use it, see [What is Account](https://next.api.alibabacloud.com/document/polardb/2017-08-01/CreateAccount).\n\n\u003e **NOTE:** Available since v1.67.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.polardb.getNodeClasses({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n    category: \"Normal\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.classes?.[0]?.zoneId),\n    vswitchName: \"terraform-example\",\n});\nconst defaultCluster = new alicloud.polardb.Cluster(\"default\", {\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    dbNodeClass: _default.then(_default =\u003e _default.classes?.[0]?.supportedEngines?.[0]?.availableResources?.[0]?.dbNodeClass),\n    payType: \"PostPaid\",\n    vswitchId: defaultSwitch.id,\n    description: \"terraform-example\",\n});\nconst defaultAccount = new alicloud.polardb.Account(\"default\", {\n    dbClusterId: defaultCluster.id,\n    accountName: \"terraform_example\",\n    accountPassword: \"Example1234\",\n    accountDescription: \"terraform-example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.polardb.get_node_classes(db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    category=\"Normal\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.classes[0].zone_id,\n    vswitch_name=\"terraform-example\")\ndefault_cluster = alicloud.polardb.Cluster(\"default\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    db_node_class=default.classes[0].supported_engines[0].available_resources[0].db_node_class,\n    pay_type=\"PostPaid\",\n    vswitch_id=default_switch.id,\n    description=\"terraform-example\")\ndefault_account = alicloud.polardb.Account(\"default\",\n    db_cluster_id=default_cluster.id,\n    account_name=\"terraform_example\",\n    account_password=\"Example1234\",\n    account_description=\"terraform-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        Category = \"Normal\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var defaultCluster = new AliCloud.PolarDB.Cluster(\"default\", new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        DbNodeClass = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.SupportedEngines[0]?.AvailableResources[0]?.DbNodeClass)),\n        PayType = \"PostPaid\",\n        VswitchId = defaultSwitch.Id,\n        Description = \"terraform-example\",\n    });\n\n    var defaultAccount = new AliCloud.PolarDB.Account(\"default\", new()\n    {\n        DbClusterId = defaultCluster.Id,\n        AccountName = \"terraform_example\",\n        AccountPassword = \"Example1234\",\n        AccountDescription = \"terraform-example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\n\t\t\tDbType:    pulumi.StringRef(\"MySQL\"),\n\t\t\tDbVersion: pulumi.StringRef(\"8.0\"),\n\t\t\tPayType:   \"PostPaid\",\n\t\t\tCategory:  pulumi.StringRef(\"Normal\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Classes[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := polardb.NewCluster(ctx, \"default\", \u0026polardb.ClusterArgs{\n\t\t\tDbType:      pulumi.String(\"MySQL\"),\n\t\t\tDbVersion:   pulumi.String(\"8.0\"),\n\t\t\tDbNodeClass: pulumi.String(_default.Classes[0].SupportedEngines[0].AvailableResources[0].DbNodeClass),\n\t\t\tPayType:     pulumi.String(\"PostPaid\"),\n\t\t\tVswitchId:   defaultSwitch.ID(),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = polardb.NewAccount(ctx, \"default\", \u0026polardb.AccountArgs{\n\t\t\tDbClusterId:        defaultCluster.ID(),\n\t\t\tAccountName:        pulumi.String(\"terraform_example\"),\n\t\t\tAccountPassword:    pulumi.String(\"Example1234\"),\n\t\t\tAccountDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.Account;\nimport com.pulumi.alicloud.polardb.AccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .category(\"Normal\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.classes()[0].zoneId())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .dbNodeClass(default_.classes()[0].supportedEngines()[0].availableResources()[0].dbNodeClass())\n            .payType(\"PostPaid\")\n            .vswitchId(defaultSwitch.id())\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultAccount = new Account(\"defaultAccount\", AccountArgs.builder()\n            .dbClusterId(defaultCluster.id())\n            .accountName(\"terraform_example\")\n            .accountPassword(\"Example1234\")\n            .accountDescription(\"terraform-example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.classes[0].zoneId}\n      vswitchName: terraform-example\n  defaultCluster:\n    type: alicloud:polardb:Cluster\n    name: default\n    properties:\n      dbType: MySQL\n      dbVersion: '8.0'\n      dbNodeClass: ${default.classes[0].supportedEngines[0].availableResources[0].dbNodeClass}\n      payType: PostPaid\n      vswitchId: ${defaultSwitch.id}\n      description: terraform-example\n  defaultAccount:\n    type: alicloud:polardb:Account\n    name: default\n    properties:\n      dbClusterId: ${defaultCluster.id}\n      accountName: terraform_example\n      accountPassword: Example1234\n      accountDescription: terraform-example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n        payType: PostPaid\n        category: Normal\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPolar Db Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:polardb/account:Account example \u003cdb_cluster_id\u003e:\u003caccount_name\u003e\n```\n\n","properties":{"accountDescription":{"type":"string","description":"The description of the database account.\n"},"accountLockState":{"type":"string","description":"The lock status of the account. Valid values:\n- `UnLock`: The account is not locked.\n- `Lock`: The account is locked.\n"},"accountName":{"type":"string","description":"The account name. Must meet the following requirements:\n- Start with a lowercase letter and end with a letter or number.\n- Consists of lowercase letters, numbers, or underscores.\n- The length is 2 to 16 characters.\n- You cannot use some reserved usernames, such as root and admin.\n"},"accountPassword":{"type":"string","description":"The account password. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields. Must  meet the following requirements:\n- Contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters.\n- Be 8 to 32 characters in length.\n- Special characters include !@#$%^\u0026*()_+-=.\n","secret":true},"accountPasswordValidTime":{"type":"string","description":"The time when the password for the database account expires.\n"},"accountType":{"type":"string","description":"The account type. Default value:`Normal`. Valid values: `Normal`, `Super`.\n"},"dbClusterId":{"type":"string","description":"The cluster ID.\n"},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a db account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"status":{"type":"string","description":"(Available since v1.265.0) The status of the database account.\n"}},"required":["accountLockState","accountName","accountPasswordValidTime","accountType","dbClusterId","status"],"inputProperties":{"accountDescription":{"type":"string","description":"The description of the database account.\n"},"accountLockState":{"type":"string","description":"The lock status of the account. Valid values:\n- `UnLock`: The account is not locked.\n- `Lock`: The account is locked.\n"},"accountName":{"type":"string","description":"The account name. Must meet the following requirements:\n- Start with a lowercase letter and end with a letter or number.\n- Consists of lowercase letters, numbers, or underscores.\n- The length is 2 to 16 characters.\n- You cannot use some reserved usernames, such as root and admin.\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"The account password. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields. Must  meet the following requirements:\n- Contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters.\n- Be 8 to 32 characters in length.\n- Special characters include !@#$%^\u0026*()_+-=.\n","secret":true},"accountPasswordValidTime":{"type":"string","description":"The time when the password for the database account expires.\n"},"accountType":{"type":"string","description":"The account type. Default value:`Normal`. Valid values: `Normal`, `Super`.\n","willReplaceOnChanges":true},"dbClusterId":{"type":"string","description":"The cluster ID.\n","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a db account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"}},"requiredInputs":["accountName","dbClusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering Account resources.\n","properties":{"accountDescription":{"type":"string","description":"The description of the database account.\n"},"accountLockState":{"type":"string","description":"The lock status of the account. Valid values:\n- `UnLock`: The account is not locked.\n- `Lock`: The account is locked.\n"},"accountName":{"type":"string","description":"The account name. Must meet the following requirements:\n- Start with a lowercase letter and end with a letter or number.\n- Consists of lowercase letters, numbers, or underscores.\n- The length is 2 to 16 characters.\n- You cannot use some reserved usernames, such as root and admin.\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"The account password. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields. Must  meet the following requirements:\n- Contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters.\n- Be 8 to 32 characters in length.\n- Special characters include !@#$%^\u0026*()_+-=.\n","secret":true},"accountPasswordValidTime":{"type":"string","description":"The time when the password for the database account expires.\n"},"accountType":{"type":"string","description":"The account type. Default value:`Normal`. Valid values: `Normal`, `Super`.\n","willReplaceOnChanges":true},"dbClusterId":{"type":"string","description":"The cluster ID.\n","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a db account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"status":{"type":"string","description":"(Available since v1.265.0) The status of the database account.\n"}},"type":"object"}},"alicloud:polardb/accountPrivilege:AccountPrivilege":{"description":"Provides a PolarDB account privilege resource and used to grant several database some access privilege. A database can be granted by multiple account.\n\n\u003e **NOTE:** Available in v1.67.0+.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.polardb.getNodeClasses({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n    category: \"Normal\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.classes?.[0]?.zoneId),\n    vswitchName: \"terraform-example\",\n});\nconst defaultCluster = new alicloud.polardb.Cluster(\"default\", {\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    dbNodeClass: _default.then(_default =\u003e _default.classes?.[0]?.supportedEngines?.[0]?.availableResources?.[0]?.dbNodeClass),\n    payType: \"PostPaid\",\n    vswitchId: defaultSwitch.id,\n    description: \"terraform-example\",\n});\nconst defaultAccount = new alicloud.polardb.Account(\"default\", {\n    dbClusterId: defaultCluster.id,\n    accountName: \"terraform_example\",\n    accountPassword: \"Example1234\",\n    accountDescription: \"terraform-example\",\n});\nconst defaultDatabase = new alicloud.polardb.Database(\"default\", {\n    dbClusterId: defaultCluster.id,\n    dbName: \"terraform-example\",\n});\nconst defaultAccountPrivilege = new alicloud.polardb.AccountPrivilege(\"default\", {\n    dbClusterId: defaultCluster.id,\n    accountName: defaultAccount.accountName,\n    accountPrivilege: \"ReadOnly\",\n    dbNames: [defaultDatabase.dbName],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.polardb.get_node_classes(db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    category=\"Normal\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.classes[0].zone_id,\n    vswitch_name=\"terraform-example\")\ndefault_cluster = alicloud.polardb.Cluster(\"default\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    db_node_class=default.classes[0].supported_engines[0].available_resources[0].db_node_class,\n    pay_type=\"PostPaid\",\n    vswitch_id=default_switch.id,\n    description=\"terraform-example\")\ndefault_account = alicloud.polardb.Account(\"default\",\n    db_cluster_id=default_cluster.id,\n    account_name=\"terraform_example\",\n    account_password=\"Example1234\",\n    account_description=\"terraform-example\")\ndefault_database = alicloud.polardb.Database(\"default\",\n    db_cluster_id=default_cluster.id,\n    db_name=\"terraform-example\")\ndefault_account_privilege = alicloud.polardb.AccountPrivilege(\"default\",\n    db_cluster_id=default_cluster.id,\n    account_name=default_account.account_name,\n    account_privilege=\"ReadOnly\",\n    db_names=[default_database.db_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        Category = \"Normal\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var defaultCluster = new AliCloud.PolarDB.Cluster(\"default\", new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        DbNodeClass = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.SupportedEngines[0]?.AvailableResources[0]?.DbNodeClass)),\n        PayType = \"PostPaid\",\n        VswitchId = defaultSwitch.Id,\n        Description = \"terraform-example\",\n    });\n\n    var defaultAccount = new AliCloud.PolarDB.Account(\"default\", new()\n    {\n        DbClusterId = defaultCluster.Id,\n        AccountName = \"terraform_example\",\n        AccountPassword = \"Example1234\",\n        AccountDescription = \"terraform-example\",\n    });\n\n    var defaultDatabase = new AliCloud.PolarDB.Database(\"default\", new()\n    {\n        DbClusterId = defaultCluster.Id,\n        DbName = \"terraform-example\",\n    });\n\n    var defaultAccountPrivilege = new AliCloud.PolarDB.AccountPrivilege(\"default\", new()\n    {\n        DbClusterId = defaultCluster.Id,\n        AccountName = defaultAccount.AccountName,\n        Privilege = \"ReadOnly\",\n        DbNames = new[]\n        {\n            defaultDatabase.DbName,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\n\t\t\tDbType:    pulumi.StringRef(\"MySQL\"),\n\t\t\tDbVersion: pulumi.StringRef(\"8.0\"),\n\t\t\tPayType:   \"PostPaid\",\n\t\t\tCategory:  pulumi.StringRef(\"Normal\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Classes[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := polardb.NewCluster(ctx, \"default\", \u0026polardb.ClusterArgs{\n\t\t\tDbType:      pulumi.String(\"MySQL\"),\n\t\t\tDbVersion:   pulumi.String(\"8.0\"),\n\t\t\tDbNodeClass: pulumi.String(_default.Classes[0].SupportedEngines[0].AvailableResources[0].DbNodeClass),\n\t\t\tPayType:     pulumi.String(\"PostPaid\"),\n\t\t\tVswitchId:   defaultSwitch.ID(),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAccount, err := polardb.NewAccount(ctx, \"default\", \u0026polardb.AccountArgs{\n\t\t\tDbClusterId:        defaultCluster.ID(),\n\t\t\tAccountName:        pulumi.String(\"terraform_example\"),\n\t\t\tAccountPassword:    pulumi.String(\"Example1234\"),\n\t\t\tAccountDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDatabase, err := polardb.NewDatabase(ctx, \"default\", \u0026polardb.DatabaseArgs{\n\t\t\tDbClusterId: defaultCluster.ID(),\n\t\t\tDbName:      pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = polardb.NewAccountPrivilege(ctx, \"default\", \u0026polardb.AccountPrivilegeArgs{\n\t\t\tDbClusterId:      defaultCluster.ID(),\n\t\t\tAccountName:      defaultAccount.AccountName,\n\t\t\tAccountPrivilege: pulumi.String(\"ReadOnly\"),\n\t\t\tDbNames: pulumi.StringArray{\n\t\t\t\tdefaultDatabase.DbName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.Account;\nimport com.pulumi.alicloud.polardb.AccountArgs;\nimport com.pulumi.alicloud.polardb.Database;\nimport com.pulumi.alicloud.polardb.DatabaseArgs;\nimport com.pulumi.alicloud.polardb.AccountPrivilege;\nimport com.pulumi.alicloud.polardb.AccountPrivilegeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .category(\"Normal\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.classes()[0].zoneId())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .dbNodeClass(default_.classes()[0].supportedEngines()[0].availableResources()[0].dbNodeClass())\n            .payType(\"PostPaid\")\n            .vswitchId(defaultSwitch.id())\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultAccount = new Account(\"defaultAccount\", AccountArgs.builder()\n            .dbClusterId(defaultCluster.id())\n            .accountName(\"terraform_example\")\n            .accountPassword(\"Example1234\")\n            .accountDescription(\"terraform-example\")\n            .build());\n\n        var defaultDatabase = new Database(\"defaultDatabase\", DatabaseArgs.builder()\n            .dbClusterId(defaultCluster.id())\n            .dbName(\"terraform-example\")\n            .build());\n\n        var defaultAccountPrivilege = new AccountPrivilege(\"defaultAccountPrivilege\", AccountPrivilegeArgs.builder()\n            .dbClusterId(defaultCluster.id())\n            .accountName(defaultAccount.accountName())\n            .accountPrivilege(\"ReadOnly\")\n            .dbNames(defaultDatabase.dbName())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.classes[0].zoneId}\n      vswitchName: terraform-example\n  defaultCluster:\n    type: alicloud:polardb:Cluster\n    name: default\n    properties:\n      dbType: MySQL\n      dbVersion: '8.0'\n      dbNodeClass: ${default.classes[0].supportedEngines[0].availableResources[0].dbNodeClass}\n      payType: PostPaid\n      vswitchId: ${defaultSwitch.id}\n      description: terraform-example\n  defaultAccount:\n    type: alicloud:polardb:Account\n    name: default\n    properties:\n      dbClusterId: ${defaultCluster.id}\n      accountName: terraform_example\n      accountPassword: Example1234\n      accountDescription: terraform-example\n  defaultDatabase:\n    type: alicloud:polardb:Database\n    name: default\n    properties:\n      dbClusterId: ${defaultCluster.id}\n      dbName: terraform-example\n  defaultAccountPrivilege:\n    type: alicloud:polardb:AccountPrivilege\n    name: default\n    properties:\n      dbClusterId: ${defaultCluster.id}\n      accountName: ${defaultAccount.accountName}\n      accountPrivilege: ReadOnly\n      dbNames:\n        - ${defaultDatabase.dbName}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n        payType: PostPaid\n        category: Normal\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPolarDB account privilege can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:polardb/accountPrivilege:AccountPrivilege example \"pc-12345:tf_account:ReadOnly\"\n```\n\n","properties":{"accountName":{"type":"string","description":"A specified account name.\n"},"accountPrivilege":{"type":"string","description":"The privilege of one account access database. Valid values: [\"ReadOnly\", \"ReadWrite\"], [\"DMLOnly\", \"DDLOnly\"] added since version v1.101.0. Default to \"ReadOnly\".\n","language":{"csharp":{"name":"Privilege"}}},"dbClusterId":{"type":"string","description":"The Id of cluster in which account belongs.\n"},"dbNames":{"type":"array","items":{"type":"string"},"description":"List of specified database name.\n"}},"required":["accountName","dbClusterId","dbNames"],"inputProperties":{"accountName":{"type":"string","description":"A specified account name.\n","willReplaceOnChanges":true},"accountPrivilege":{"type":"string","description":"The privilege of one account access database. Valid values: [\"ReadOnly\", \"ReadWrite\"], [\"DMLOnly\", \"DDLOnly\"] added since version v1.101.0. Default to \"ReadOnly\".\n","language":{"csharp":{"name":"Privilege"}},"willReplaceOnChanges":true},"dbClusterId":{"type":"string","description":"The Id of cluster in which account belongs.\n","willReplaceOnChanges":true},"dbNames":{"type":"array","items":{"type":"string"},"description":"List of specified database name.\n"}},"requiredInputs":["accountName","dbClusterId","dbNames"],"stateInputs":{"description":"Input properties used for looking up and filtering AccountPrivilege resources.\n","properties":{"accountName":{"type":"string","description":"A specified account name.\n","willReplaceOnChanges":true},"accountPrivilege":{"type":"string","description":"The privilege of one account access database. Valid values: [\"ReadOnly\", \"ReadWrite\"], [\"DMLOnly\", \"DDLOnly\"] added since version v1.101.0. Default to \"ReadOnly\".\n","language":{"csharp":{"name":"Privilege"}},"willReplaceOnChanges":true},"dbClusterId":{"type":"string","description":"The Id of cluster in which account belongs.\n","willReplaceOnChanges":true},"dbNames":{"type":"array","items":{"type":"string"},"description":"List of specified database name.\n"}},"type":"object"}},"alicloud:polardb/backupPolicy:BackupPolicy":{"description":"Provides a PolarDB cluster backup policy resource and used to configure cluster backup policy.\n\n\u003e **NOTE:** Available since v1.66.0+. Each PolarDB cluster has a backup policy.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.polardb.getNodeClasses({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n    category: \"Normal\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.classes?.[0]?.zoneId),\n    vswitchName: \"terraform-example\",\n});\nconst defaultCluster = new alicloud.polardb.Cluster(\"default\", {\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    dbNodeClass: _default.then(_default =\u003e _default.classes?.[0]?.supportedEngines?.[0]?.availableResources?.[0]?.dbNodeClass),\n    payType: \"PostPaid\",\n    vswitchId: defaultSwitch.id,\n    description: \"terraform-example\",\n});\nconst defaultBackupPolicy = new alicloud.polardb.BackupPolicy(\"default\", {\n    dbClusterId: defaultCluster.id,\n    preferredBackupPeriods: [\n        \"Tuesday\",\n        \"Wednesday\",\n    ],\n    preferredBackupTime: \"10:00Z-11:00Z\",\n    backupRetentionPolicyOnClusterDeletion: \"NONE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.polardb.get_node_classes(db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    category=\"Normal\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.classes[0].zone_id,\n    vswitch_name=\"terraform-example\")\ndefault_cluster = alicloud.polardb.Cluster(\"default\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    db_node_class=default.classes[0].supported_engines[0].available_resources[0].db_node_class,\n    pay_type=\"PostPaid\",\n    vswitch_id=default_switch.id,\n    description=\"terraform-example\")\ndefault_backup_policy = alicloud.polardb.BackupPolicy(\"default\",\n    db_cluster_id=default_cluster.id,\n    preferred_backup_periods=[\n        \"Tuesday\",\n        \"Wednesday\",\n    ],\n    preferred_backup_time=\"10:00Z-11:00Z\",\n    backup_retention_policy_on_cluster_deletion=\"NONE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        Category = \"Normal\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var defaultCluster = new AliCloud.PolarDB.Cluster(\"default\", new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        DbNodeClass = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.SupportedEngines[0]?.AvailableResources[0]?.DbNodeClass)),\n        PayType = \"PostPaid\",\n        VswitchId = defaultSwitch.Id,\n        Description = \"terraform-example\",\n    });\n\n    var defaultBackupPolicy = new AliCloud.PolarDB.BackupPolicy(\"default\", new()\n    {\n        DbClusterId = defaultCluster.Id,\n        PreferredBackupPeriods = new[]\n        {\n            \"Tuesday\",\n            \"Wednesday\",\n        },\n        PreferredBackupTime = \"10:00Z-11:00Z\",\n        BackupRetentionPolicyOnClusterDeletion = \"NONE\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\n\t\t\tDbType:    pulumi.StringRef(\"MySQL\"),\n\t\t\tDbVersion: pulumi.StringRef(\"8.0\"),\n\t\t\tPayType:   \"PostPaid\",\n\t\t\tCategory:  pulumi.StringRef(\"Normal\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Classes[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := polardb.NewCluster(ctx, \"default\", \u0026polardb.ClusterArgs{\n\t\t\tDbType:      pulumi.String(\"MySQL\"),\n\t\t\tDbVersion:   pulumi.String(\"8.0\"),\n\t\t\tDbNodeClass: pulumi.String(_default.Classes[0].SupportedEngines[0].AvailableResources[0].DbNodeClass),\n\t\t\tPayType:     pulumi.String(\"PostPaid\"),\n\t\t\tVswitchId:   defaultSwitch.ID(),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = polardb.NewBackupPolicy(ctx, \"default\", \u0026polardb.BackupPolicyArgs{\n\t\t\tDbClusterId: defaultCluster.ID(),\n\t\t\tPreferredBackupPeriods: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Tuesday\"),\n\t\t\t\tpulumi.String(\"Wednesday\"),\n\t\t\t},\n\t\t\tPreferredBackupTime:                    pulumi.String(\"10:00Z-11:00Z\"),\n\t\t\tBackupRetentionPolicyOnClusterDeletion: pulumi.String(\"NONE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.BackupPolicy;\nimport com.pulumi.alicloud.polardb.BackupPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .category(\"Normal\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.classes()[0].zoneId())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .dbNodeClass(default_.classes()[0].supportedEngines()[0].availableResources()[0].dbNodeClass())\n            .payType(\"PostPaid\")\n            .vswitchId(defaultSwitch.id())\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultBackupPolicy = new BackupPolicy(\"defaultBackupPolicy\", BackupPolicyArgs.builder()\n            .dbClusterId(defaultCluster.id())\n            .preferredBackupPeriods(            \n                \"Tuesday\",\n                \"Wednesday\")\n            .preferredBackupTime(\"10:00Z-11:00Z\")\n            .backupRetentionPolicyOnClusterDeletion(\"NONE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.classes[0].zoneId}\n      vswitchName: terraform-example\n  defaultCluster:\n    type: alicloud:polardb:Cluster\n    name: default\n    properties:\n      dbType: MySQL\n      dbVersion: '8.0'\n      dbNodeClass: ${default.classes[0].supportedEngines[0].availableResources[0].dbNodeClass}\n      payType: PostPaid\n      vswitchId: ${defaultSwitch.id}\n      description: terraform-example\n  defaultBackupPolicy:\n    type: alicloud:polardb:BackupPolicy\n    name: default\n    properties:\n      dbClusterId: ${defaultCluster.id}\n      preferredBackupPeriods:\n        - Tuesday\n        - Wednesday\n      preferredBackupTime: 10:00Z-11:00Z\n      backupRetentionPolicyOnClusterDeletion: NONE\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n        payType: PostPaid\n        category: Normal\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Removing\u003cspan pulumi-lang-nodejs=\" alicloud.polardb.Cluster \" pulumi-lang-dotnet=\" alicloud.polardb.Cluster \" pulumi-lang-go=\" polardb.Cluster \" pulumi-lang-python=\" polardb.Cluster \" pulumi-lang-yaml=\" alicloud.polardb.Cluster \" pulumi-lang-java=\" alicloud.polardb.Cluster \"\u003e alicloud.polardb.Cluster \u003c/span\u003efrom your configuration\n \nThe\u003cspan pulumi-lang-nodejs=\" alicloud.polardb.BackupPolicy \" pulumi-lang-dotnet=\" alicloud.polardb.BackupPolicy \" pulumi-lang-go=\" polardb.BackupPolicy \" pulumi-lang-python=\" polardb.BackupPolicy \" pulumi-lang-yaml=\" alicloud.polardb.BackupPolicy \" pulumi-lang-java=\" alicloud.polardb.BackupPolicy \"\u003e alicloud.polardb.BackupPolicy \u003c/span\u003eresource allows you to manage your polardb cluster policy, but Terraform cannot destroy it. Removing this resource from your configuration will remove it from your statefile and management, but will not destroy the cluster policy. You can resume managing the cluster via the polardb Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPolarDB backup policy can be imported using the id or cluster id, e.g.\n\n```sh\n$ pulumi import alicloud:polardb/backupPolicy:BackupPolicy example \"rm-12345678\"\n```\n\n","properties":{"backupFrequency":{"type":"string","description":"The backup frequency. Valid values are `Normal`, `2/24H`, `3/24H`, `4/24H`.Default to `Normal`.\n"},"backupRetentionPeriod":{"type":"string","description":"Cluster backup retention days, Fixed for 7 days, not modified.\n"},"backupRetentionPolicyOnClusterDeletion":{"type":"string","description":"Specifies whether to retain backups when you delete a cluster. Valid values are `ALL`, `LATEST`, `NONE`. Default to `NONE`. Value options can refer to the latest docs [ModifyBackupPolicy](https://www.alibabacloud.com/help/en/polardb/latest/modifybackuppolicy)\n"},"dataLevel1BackupFrequency":{"type":"string","description":"The Id of cluster that can run database.The backup frequency. Valid values are `Normal`, `2/24H`, `3/24H`, `4/24H`.Default to `Normal`.\n"},"dataLevel1BackupPeriods":{"type":"array","items":{"type":"string"},"description":"PolarDB Cluster of level-1 backup period. Valid values: [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"].\n\u003e **NOTE:** Note Select at least two values. Separate multiple values with commas (,).\n"},"dataLevel1BackupRetentionPeriod":{"type":"integer","description":"The retention period of level-1 backups. Valid values: 3 to 14. Unit: days.\n"},"dataLevel1BackupTime":{"type":"string","description":"The time period during which automatic backup is performed. The format is HH: MMZ HH: MMZ (UTC time), and the entered value must be an hour apart, such as 14:00z-15:00z.\n"},"dataLevel2BackupAnotherRegionRegion":{"type":"string","description":"PolarDB Cluster of level-2 backup is a cross regional backup area.\n"},"dataLevel2BackupAnotherRegionRetentionPeriod":{"type":"integer","description":"PolarDB Cluster of level-2 backup cross region backup retention period. Valid values are \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, `30 to 7300`, `-1`. Default to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"dataLevel2BackupPeriods":{"type":"array","items":{"type":"string"},"description":"PolarDB Cluster of level-2 backup period. Valid values: [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"].\n\u003e **NOTE:** Note Select at least two values. Separate multiple values with commas (,).\n"},"dataLevel2BackupRetentionPeriod":{"type":"integer","description":"The retention period of level-2 backups. Valid values are \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, `30 to 7300`, `-1`. Default to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n"},"enableBackupLog":{"type":"integer","description":"Indicates whether the log backup feature was enabled. Valid values are \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e By default, the log backup feature is enabled and cannot be disabled.\n"},"logBackupAnotherRegionRegion":{"type":"string","description":"The region in which you want to store cross-region log backups. For information about regions that support the cross-region backup feature, see [Overview.](https://www.alibabacloud.com/help/en/polardb/latest/backup-and-restoration-overview)\n"},"logBackupAnotherRegionRetentionPeriod":{"type":"integer","description":"The retention period of cross-region log backups. Default value: OFF. Valid values are \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, `30 to 7300`, `-1`.\n\u003e **NOTE:** Note When you create a cluster, the default value of this parameter is 0.\n"},"logBackupRetentionPeriod":{"type":"integer","description":"The retention period of the log backups. Valid values are `3 to 7300`, `-1`.\n"},"preferredBackupPeriods":{"type":"array","items":{"type":"string"},"description":"PolarDB Cluster backup period. Valid values: [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"]. Default to [\"Tuesday\", \"Thursday\", \"Saturday\"].\n"},"preferredBackupTime":{"type":"string","description":"PolarDB Cluster backup time, in the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. Default to \"02:00Z-03:00Z\". China time is 8 hours behind it.\n"}},"required":["backupFrequency","backupRetentionPeriod","backupRetentionPolicyOnClusterDeletion","dataLevel1BackupFrequency","dataLevel1BackupPeriods","dataLevel1BackupRetentionPeriod","dataLevel1BackupTime","dataLevel2BackupAnotherRegionRetentionPeriod","dataLevel2BackupRetentionPeriod","dbClusterId","enableBackupLog","logBackupRetentionPeriod","preferredBackupPeriods","preferredBackupTime"],"inputProperties":{"backupFrequency":{"type":"string","description":"The backup frequency. Valid values are `Normal`, `2/24H`, `3/24H`, `4/24H`.Default to `Normal`.\n"},"backupRetentionPeriod":{"type":"string","description":"Cluster backup retention days, Fixed for 7 days, not modified.\n"},"backupRetentionPolicyOnClusterDeletion":{"type":"string","description":"Specifies whether to retain backups when you delete a cluster. Valid values are `ALL`, `LATEST`, `NONE`. Default to `NONE`. Value options can refer to the latest docs [ModifyBackupPolicy](https://www.alibabacloud.com/help/en/polardb/latest/modifybackuppolicy)\n"},"dataLevel1BackupFrequency":{"type":"string","description":"The Id of cluster that can run database.The backup frequency. Valid values are `Normal`, `2/24H`, `3/24H`, `4/24H`.Default to `Normal`.\n"},"dataLevel1BackupPeriods":{"type":"array","items":{"type":"string"},"description":"PolarDB Cluster of level-1 backup period. Valid values: [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"].\n\u003e **NOTE:** Note Select at least two values. Separate multiple values with commas (,).\n"},"dataLevel1BackupRetentionPeriod":{"type":"integer","description":"The retention period of level-1 backups. Valid values: 3 to 14. Unit: days.\n"},"dataLevel1BackupTime":{"type":"string","description":"The time period during which automatic backup is performed. The format is HH: MMZ HH: MMZ (UTC time), and the entered value must be an hour apart, such as 14:00z-15:00z.\n"},"dataLevel2BackupAnotherRegionRegion":{"type":"string","description":"PolarDB Cluster of level-2 backup is a cross regional backup area.\n"},"dataLevel2BackupAnotherRegionRetentionPeriod":{"type":"integer","description":"PolarDB Cluster of level-2 backup cross region backup retention period. Valid values are \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, `30 to 7300`, `-1`. Default to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"dataLevel2BackupPeriods":{"type":"array","items":{"type":"string"},"description":"PolarDB Cluster of level-2 backup period. Valid values: [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"].\n\u003e **NOTE:** Note Select at least two values. Separate multiple values with commas (,).\n"},"dataLevel2BackupRetentionPeriod":{"type":"integer","description":"The retention period of level-2 backups. Valid values are \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, `30 to 7300`, `-1`. Default to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n","willReplaceOnChanges":true},"logBackupAnotherRegionRegion":{"type":"string","description":"The region in which you want to store cross-region log backups. For information about regions that support the cross-region backup feature, see [Overview.](https://www.alibabacloud.com/help/en/polardb/latest/backup-and-restoration-overview)\n"},"logBackupAnotherRegionRetentionPeriod":{"type":"integer","description":"The retention period of cross-region log backups. Default value: OFF. Valid values are \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, `30 to 7300`, `-1`.\n\u003e **NOTE:** Note When you create a cluster, the default value of this parameter is 0.\n"},"logBackupRetentionPeriod":{"type":"integer","description":"The retention period of the log backups. Valid values are `3 to 7300`, `-1`.\n"},"preferredBackupPeriods":{"type":"array","items":{"type":"string"},"description":"PolarDB Cluster backup period. Valid values: [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"]. Default to [\"Tuesday\", \"Thursday\", \"Saturday\"].\n"},"preferredBackupTime":{"type":"string","description":"PolarDB Cluster backup time, in the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. Default to \"02:00Z-03:00Z\". China time is 8 hours behind it.\n"}},"requiredInputs":["dbClusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering BackupPolicy resources.\n","properties":{"backupFrequency":{"type":"string","description":"The backup frequency. Valid values are `Normal`, `2/24H`, `3/24H`, `4/24H`.Default to `Normal`.\n"},"backupRetentionPeriod":{"type":"string","description":"Cluster backup retention days, Fixed for 7 days, not modified.\n"},"backupRetentionPolicyOnClusterDeletion":{"type":"string","description":"Specifies whether to retain backups when you delete a cluster. Valid values are `ALL`, `LATEST`, `NONE`. Default to `NONE`. Value options can refer to the latest docs [ModifyBackupPolicy](https://www.alibabacloud.com/help/en/polardb/latest/modifybackuppolicy)\n"},"dataLevel1BackupFrequency":{"type":"string","description":"The Id of cluster that can run database.The backup frequency. Valid values are `Normal`, `2/24H`, `3/24H`, `4/24H`.Default to `Normal`.\n"},"dataLevel1BackupPeriods":{"type":"array","items":{"type":"string"},"description":"PolarDB Cluster of level-1 backup period. Valid values: [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"].\n\u003e **NOTE:** Note Select at least two values. Separate multiple values with commas (,).\n"},"dataLevel1BackupRetentionPeriod":{"type":"integer","description":"The retention period of level-1 backups. Valid values: 3 to 14. Unit: days.\n"},"dataLevel1BackupTime":{"type":"string","description":"The time period during which automatic backup is performed. The format is HH: MMZ HH: MMZ (UTC time), and the entered value must be an hour apart, such as 14:00z-15:00z.\n"},"dataLevel2BackupAnotherRegionRegion":{"type":"string","description":"PolarDB Cluster of level-2 backup is a cross regional backup area.\n"},"dataLevel2BackupAnotherRegionRetentionPeriod":{"type":"integer","description":"PolarDB Cluster of level-2 backup cross region backup retention period. Valid values are \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, `30 to 7300`, `-1`. Default to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"dataLevel2BackupPeriods":{"type":"array","items":{"type":"string"},"description":"PolarDB Cluster of level-2 backup period. Valid values: [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"].\n\u003e **NOTE:** Note Select at least two values. Separate multiple values with commas (,).\n"},"dataLevel2BackupRetentionPeriod":{"type":"integer","description":"The retention period of level-2 backups. Valid values are \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, `30 to 7300`, `-1`. Default to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n","willReplaceOnChanges":true},"enableBackupLog":{"type":"integer","description":"Indicates whether the log backup feature was enabled. Valid values are \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e By default, the log backup feature is enabled and cannot be disabled.\n"},"logBackupAnotherRegionRegion":{"type":"string","description":"The region in which you want to store cross-region log backups. For information about regions that support the cross-region backup feature, see [Overview.](https://www.alibabacloud.com/help/en/polardb/latest/backup-and-restoration-overview)\n"},"logBackupAnotherRegionRetentionPeriod":{"type":"integer","description":"The retention period of cross-region log backups. Default value: OFF. Valid values are \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, `30 to 7300`, `-1`.\n\u003e **NOTE:** Note When you create a cluster, the default value of this parameter is 0.\n"},"logBackupRetentionPeriod":{"type":"integer","description":"The retention period of the log backups. Valid values are `3 to 7300`, `-1`.\n"},"preferredBackupPeriods":{"type":"array","items":{"type":"string"},"description":"PolarDB Cluster backup period. Valid values: [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"]. Default to [\"Tuesday\", \"Thursday\", \"Saturday\"].\n"},"preferredBackupTime":{"type":"string","description":"PolarDB Cluster backup time, in the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. Default to \"02:00Z-03:00Z\". China time is 8 hours behind it.\n"}},"type":"object"}},"alicloud:polardb/cluster:Cluster":{"description":"Provides an PolarDB cluster resource. An PolarDB cluster is an isolated database\nenvironment in the cloud. An PolarDB cluster can contain multiple user-created\ndatabases.\n\n\u003e **NOTE:** Available since v1.66.0.\n\n## Example Usage\n\nCreate a PolarDB MySQL cluster\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.polardb.getNodeClasses({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    category: \"Normal\",\n    payType: \"PostPaid\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.classes?.[0]?.zoneId),\n    vswitchName: \"terraform-example\",\n});\nconst defaultCluster = new alicloud.polardb.Cluster(\"default\", {\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    dbNodeClass: _default.then(_default =\u003e _default.classes?.[0]?.supportedEngines?.[0]?.availableResources?.[0]?.dbNodeClass),\n    payType: \"PostPaid\",\n    vswitchId: defaultSwitch.id,\n    description: \"terraform-example\",\n    dbClusterIpArrays: [\n        {\n            dbClusterIpArrayName: \"default\",\n            securityIps: [\n                \"1.2.3.4\",\n                \"1.2.3.5\",\n            ],\n        },\n        {\n            dbClusterIpArrayName: \"default2\",\n            securityIps: [\"1.2.3.6\"],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.polardb.get_node_classes(db_type=\"MySQL\",\n    db_version=\"8.0\",\n    category=\"Normal\",\n    pay_type=\"PostPaid\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.classes[0].zone_id,\n    vswitch_name=\"terraform-example\")\ndefault_cluster = alicloud.polardb.Cluster(\"default\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    db_node_class=default.classes[0].supported_engines[0].available_resources[0].db_node_class,\n    pay_type=\"PostPaid\",\n    vswitch_id=default_switch.id,\n    description=\"terraform-example\",\n    db_cluster_ip_arrays=[\n        {\n            \"db_cluster_ip_array_name\": \"default\",\n            \"security_ips\": [\n                \"1.2.3.4\",\n                \"1.2.3.5\",\n            ],\n        },\n        {\n            \"db_cluster_ip_array_name\": \"default2\",\n            \"security_ips\": [\"1.2.3.6\"],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        Category = \"Normal\",\n        PayType = \"PostPaid\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var defaultCluster = new AliCloud.PolarDB.Cluster(\"default\", new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        DbNodeClass = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.SupportedEngines[0]?.AvailableResources[0]?.DbNodeClass)),\n        PayType = \"PostPaid\",\n        VswitchId = defaultSwitch.Id,\n        Description = \"terraform-example\",\n        DbClusterIpArrays = new[]\n        {\n            new AliCloud.PolarDB.Inputs.ClusterDbClusterIpArrayArgs\n            {\n                DbClusterIpArrayName = \"default\",\n                SecurityIps = new[]\n                {\n                    \"1.2.3.4\",\n                    \"1.2.3.5\",\n                },\n            },\n            new AliCloud.PolarDB.Inputs.ClusterDbClusterIpArrayArgs\n            {\n                DbClusterIpArrayName = \"default2\",\n                SecurityIps = new[]\n                {\n                    \"1.2.3.6\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\n\t\t\tDbType:    pulumi.StringRef(\"MySQL\"),\n\t\t\tDbVersion: pulumi.StringRef(\"8.0\"),\n\t\t\tCategory:  pulumi.StringRef(\"Normal\"),\n\t\t\tPayType:   \"PostPaid\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Classes[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = polardb.NewCluster(ctx, \"default\", \u0026polardb.ClusterArgs{\n\t\t\tDbType:      pulumi.String(\"MySQL\"),\n\t\t\tDbVersion:   pulumi.String(\"8.0\"),\n\t\t\tDbNodeClass: pulumi.String(_default.Classes[0].SupportedEngines[0].AvailableResources[0].DbNodeClass),\n\t\t\tPayType:     pulumi.String(\"PostPaid\"),\n\t\t\tVswitchId:   defaultSwitch.ID(),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t\tDbClusterIpArrays: polardb.ClusterDbClusterIpArrayArray{\n\t\t\t\t\u0026polardb.ClusterDbClusterIpArrayArgs{\n\t\t\t\t\tDbClusterIpArrayName: pulumi.String(\"default\"),\n\t\t\t\t\tSecurityIps: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"1.2.3.4\"),\n\t\t\t\t\t\tpulumi.String(\"1.2.3.5\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026polardb.ClusterDbClusterIpArrayArgs{\n\t\t\t\t\tDbClusterIpArrayName: pulumi.String(\"default2\"),\n\t\t\t\t\tSecurityIps: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"1.2.3.6\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.inputs.ClusterDbClusterIpArrayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .category(\"Normal\")\n            .payType(\"PostPaid\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.classes()[0].zoneId())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .dbNodeClass(default_.classes()[0].supportedEngines()[0].availableResources()[0].dbNodeClass())\n            .payType(\"PostPaid\")\n            .vswitchId(defaultSwitch.id())\n            .description(\"terraform-example\")\n            .dbClusterIpArrays(            \n                ClusterDbClusterIpArrayArgs.builder()\n                    .dbClusterIpArrayName(\"default\")\n                    .securityIps(                    \n                        \"1.2.3.4\",\n                        \"1.2.3.5\")\n                    .build(),\n                ClusterDbClusterIpArrayArgs.builder()\n                    .dbClusterIpArrayName(\"default2\")\n                    .securityIps(\"1.2.3.6\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.classes[0].zoneId}\n      vswitchName: terraform-example\n  defaultCluster:\n    type: alicloud:polardb:Cluster\n    name: default\n    properties:\n      dbType: MySQL\n      dbVersion: '8.0'\n      dbNodeClass: ${default.classes[0].supportedEngines[0].availableResources[0].dbNodeClass}\n      payType: PostPaid\n      vswitchId: ${defaultSwitch.id}\n      description: terraform-example\n      dbClusterIpArrays:\n        - dbClusterIpArrayName: default\n          securityIps:\n            - 1.2.3.4\n            - 1.2.3.5\n        - dbClusterIpArrayName: default2\n          securityIps:\n            - 1.2.3.6\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n        category: Normal\n        payType: PostPaid\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nWhen enabling TDE encryption, it is necessary to ensure that there is an AliyunRDSInstanceEncryptionDefaultRole role, and it is authorized under the account. If not, the following code can be used to create it.\nNote: If there is only the role AliyunRDSSInceEncryptionDefaultRole under the account, this example may not be applicable.\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst current = alicloud.getAccount({});\nconst roles = alicloud.ram.getRoles({\n    nameRegex: \"AliyunRDSInstanceEncryptionDefaultRole\",\n});\nconst _default: alicloud.ram.Role[] = [];\nroles.then(roles =\u003e roles.roles).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        _default.push(new alicloud.ram.Role(`default-${range.value}`, {\n            name: \"AliyunRDSInstanceEncryptionDefaultRole\",\n            document: `    {\n        \\\\\"Statement\\\\\": [\n            {\n               \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n                \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n                \\\\\"Principal\\\\\": {\n                    \\\\\"Service\\\\\": [\n                        \\\\\"rds.aliyuncs.com\\\\\"\n                    ]\n                }\n            }\n        ],\n        \\\\\"Version\\\\\": \\\\\"1\\\\\"\n    }\n`,\n            description: \"RDS使用此角色来访问您在其他云产品中的资源\",\n        }));\n    }\n});\nconst defaultPolicyAttachment: alicloud.resourcemanager.PolicyAttachment[] = [];\nroles.then(roles =\u003e roles.roles).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultPolicyAttachment.push(new alicloud.resourcemanager.PolicyAttachment(`default-${range.value}`, {\n            policyName: \"AliyunRDSInstanceEncryptionRolePolicy\",\n            policyType: \"System\",\n            principalName: pulumi.all([roles.then(roles =\u003e roles.roles).length, roles, current, _default[0].name, current]).apply(([length, roles, current, name, current1]) =\u003e length \u003e 0 ? `${roles.roles?.[0]?.name}@role.${current.id}.onaliyunservice.com` : `${name}@role.${current1.id}.onaliyunservice.com`),\n            principalType: \"ServiceRole\",\n            resourceGroupId: current.then(current =\u003e current.id),\n        }));\n    }\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ncurrent = alicloud.get_account()\nroles = alicloud.ram.get_roles(name_regex=\"AliyunRDSInstanceEncryptionDefaultRole\")\ndefault = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default.append(alicloud.ram.Role(f\"default-{range['value']}\",\n            name=\"AliyunRDSInstanceEncryptionDefaultRole\",\n            document=\"\"\"    {\n        \\\"Statement\\\": [\n            {\n               \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                \\\"Effect\\\": \\\"Allow\\\",\n                \\\"Principal\\\": {\n                    \\\"Service\\\": [\n                        \\\"rds.aliyuncs.com\\\"\n                    ]\n                }\n            }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n\"\"\",\n            description=\"RDS使用此角色来访问您在其他云产品中的资源\"))\n\nlen(roles.roles).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\ndefault_policy_attachment = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_policy_attachment.append(alicloud.resourcemanager.PolicyAttachment(f\"default-{range['value']}\",\n            policy_name=\"AliyunRDSInstanceEncryptionRolePolicy\",\n            policy_type=\"System\",\n            principal_name=pulumi.Output.all(\n                length=len(roles.roles),\n                name=default[0].name\n).apply(lambda resolved_outputs: f\"{roles.roles[0].name}@role.{current.id}.onaliyunservice.com\" if resolved_outputs['length'].apply(lambda __convert: __convert \u003e 0) else f\"{resolved_outputs['name']}@role.{current.id}.onaliyunservice.com\")\n,\n            principal_type=\"ServiceRole\",\n            resource_group_id=current.id))\n\nlen(roles.roles).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var current = AliCloud.GetAccount.Invoke();\n\n    var roles = AliCloud.Ram.GetRoles.Invoke(new()\n    {\n        NameRegex = \"AliyunRDSInstanceEncryptionDefaultRole\",\n    });\n\n    var @default = new List\u003cAliCloud.Ram.Role\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c roles.Apply(getRolesResult =\u003e getRolesResult.Roles).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        @default.Add(new AliCloud.Ram.Role($\"default-{range.Value}\", new()\n        {\n            Name = \"AliyunRDSInstanceEncryptionDefaultRole\",\n            Document = @\"    {\n        \\\"\"Statement\\\"\": [\n            {\n               \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n                \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n                \\\"\"Principal\\\"\": {\n                    \\\"\"Service\\\"\": [\n                        \\\"\"rds.aliyuncs.com\\\"\"\n                    ]\n                }\n            }\n        ],\n        \\\"\"Version\\\"\": \\\"\"1\\\"\"\n    }\n\",\n            Description = \"RDS使用此角色来访问您在其他云产品中的资源\",\n        }));\n    }\n    var defaultPolicyAttachment = new List\u003cAliCloud.ResourceManager.PolicyAttachment\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c roles.Apply(getRolesResult =\u003e getRolesResult.Roles).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultPolicyAttachment.Add(new AliCloud.ResourceManager.PolicyAttachment($\"default-{range.Value}\", new()\n        {\n            PolicyName = \"AliyunRDSInstanceEncryptionRolePolicy\",\n            PolicyType = \"System\",\n            PrincipalName = Output.Tuple(roles.Apply(getRolesResult =\u003e getRolesResult.Roles).Length, roles, current, @default[0].Name, current).Apply(values =\u003e\n            {\n                var length = values.Item1;\n                var roles = values.Item2;\n                var current = values.Item3;\n                var name = values.Item4;\n                var current1 = values.Item5;\n                return length \u003e 0 ? $\"{roles.Apply(getRolesResult =\u003e getRolesResult.Roles[0]?.Name)}@role.{current.Apply(getAccountResult =\u003e getAccountResult.Id)}.onaliyunservice.com\" : $\"{name}@role.{current1.Id}.onaliyunservice.com\";\n            }),\n            PrincipalType = \"ServiceRole\",\n            ResourceGroupId = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n        }));\n    }\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\troles, err := ram.GetRoles(ctx, \u0026ram.GetRolesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"AliyunRDSInstanceEncryptionDefaultRole\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp0 float64\n\t\tif length \u003e 0 {\n\t\t\ttmp0 = 0\n\t\t} else {\n\t\t\ttmp0 = 1\n\t\t}\n\t\tvar _default []*ram.Role\n\t\tfor index := 0; index \u003c float64(len(roles.Roles).ApplyT(func(length int) (float64, error) {\n\t\t\treturn tmp0, nil\n\t\t}).(pulumi.Float64Output)); index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := ram.NewRole(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026ram.RoleArgs{\n\t\t\t\tName: pulumi.String(\"AliyunRDSInstanceEncryptionDefaultRole\"),\n\t\t\t\tDocument: pulumi.String(`    {\n        \\\"Statement\\\": [\n            {\n               \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                \\\"Effect\\\": \\\"Allow\\\",\n                \\\"Principal\\\": {\n                    \\\"Service\\\": [\n                        \\\"rds.aliyuncs.com\\\"\n                    ]\n                }\n            }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n`),\n\t\t\t\tDescription: pulumi.String(\"RDS使用此角色来访问您在其他云产品中的资源\"),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t_default = append(_default, __res)\n\t\t}\n\t\tvar tmp1 string\n\t\tif length \u003e 0 {\n\t\t\ttmp1 = fmt.Sprintf(\"%v@role.%v.onaliyunservice.com\", roles.Roles[0].Name, current.Id)\n\t\t} else {\n\t\t\ttmp1 = fmt.Sprintf(\"%v@role.%v.onaliyunservice.com\", name, current.Id)\n\t\t}\n\t\tvar tmp2 float64\n\t\tif length \u003e 0 {\n\t\t\ttmp2 = 0\n\t\t} else {\n\t\t\ttmp2 = 1\n\t\t}\n\t\tvar defaultPolicyAttachment []*resourcemanager.PolicyAttachment\n\t\tfor index := 0; index \u003c float64(len(roles.Roles).ApplyT(func(length int) (float64, error) {\n\t\t\treturn tmp2, nil\n\t\t}).(pulumi.Float64Output)); index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := resourcemanager.NewPolicyAttachment(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026resourcemanager.PolicyAttachmentArgs{\n\t\t\t\tPolicyName: pulumi.String(\"AliyunRDSInstanceEncryptionRolePolicy\"),\n\t\t\t\tPolicyType: pulumi.String(\"System\"),\n\t\t\t\tPrincipalName: pulumi.All(len(roles.Roles), _default[0].Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tlength := _args[0].(int)\n\t\t\t\t\tname := _args[1].(string)\n\t\t\t\t\treturn tmp1, nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tPrincipalType:   pulumi.String(\"ServiceRole\"),\n\t\t\t\tResourceGroupId: pulumi.String(current.Id),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultPolicyAttachment = append(defaultPolicyAttachment, __res)\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetRolesArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.resourcemanager.PolicyAttachment;\nimport com.pulumi.alicloud.resourcemanager.PolicyAttachmentArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var current = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var roles = RamFunctions.getRoles(GetRolesArgs.builder()\n            .nameRegex(\"AliyunRDSInstanceEncryptionDefaultRole\")\n            .build());\n\n        for (var i = 0; i \u003c roles.roles().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new Role(\"default-\" + i, RoleArgs.builder()\n                .name(\"AliyunRDSInstanceEncryptionDefaultRole\")\n                .document(\"\"\"\n    {\n        \\\"Statement\\\": [\n            {\n               \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                \\\"Effect\\\": \\\"Allow\\\",\n                \\\"Principal\\\": {\n                    \\\"Service\\\": [\n                        \\\"rds.aliyuncs.com\\\"\n                    ]\n                }\n            }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n                \"\"\")\n                .description(\"RDS使用此角色来访问您在其他云产品中的资源\")\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c roles.roles().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new PolicyAttachment(\"defaultPolicyAttachment-\" + i, PolicyAttachmentArgs.builder()\n                .policyName(\"AliyunRDSInstanceEncryptionRolePolicy\")\n                .policyType(\"System\")\n                .principalName(Output.tuple(roles.roles().length(), default_[0].name()).applyValue(values -\u003e {\n                    var length = values.t1;\n                    var name = values.t2;\n                    return length \u003e 0 ? String.format(\"%s@role.%s.onaliyunservice.com\", roles.roles()[0].name(),current.id()) : String.format(\"%s@role.%s.onaliyunservice.com\", name,current.id());\n                }))\n                .principalType(\"ServiceRole\")\n                .resourceGroupId(current.id())\n                .build());\n\n        \n}\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Removing\u003cspan pulumi-lang-nodejs=\" alicloud.polardb.Cluster \" pulumi-lang-dotnet=\" alicloud.polardb.Cluster \" pulumi-lang-go=\" polardb.Cluster \" pulumi-lang-python=\" polardb.Cluster \" pulumi-lang-yaml=\" alicloud.polardb.Cluster \" pulumi-lang-java=\" alicloud.polardb.Cluster \"\u003e alicloud.polardb.Cluster \u003c/span\u003efrom your configuration\n\nThe\u003cspan pulumi-lang-nodejs=\" alicloud.polardb.Cluster \" pulumi-lang-dotnet=\" alicloud.polardb.Cluster \" pulumi-lang-go=\" polardb.Cluster \" pulumi-lang-python=\" polardb.Cluster \" pulumi-lang-yaml=\" alicloud.polardb.Cluster \" pulumi-lang-java=\" alicloud.polardb.Cluster \"\u003e alicloud.polardb.Cluster \u003c/span\u003eresource allows you to manage your polardb cluster, but Terraform cannot destroy it if your cluster type is pre paid(post paid type can destroy normally). Removing this resource from your configuration will remove it from your statefile and management, but will not destroy the cluster. You can resume managing the cluster via the polardb Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPolarDB cluster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:polardb/cluster:Cluster example pc-abc12345678\n```\n\n","properties":{"allowShutDown":{"type":"string","description":"Specifies whether to enable the no-activity suspension feature. Default value: false. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. This parameter is valid only for serverless clusters.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an cluster, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid value:1, 2, 3, 6, 12, 24, 36, Default to 1.\n"},"backupRetentionPolicyOnClusterDeletion":{"type":"string","description":"The retention policy for the backup sets when you delete the cluster.  Valid values are `ALL`, `LATEST`, `NONE`. Value options can refer to the latest docs [DeleteDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/deletedbcluster-1)\n"},"cloneDataPoint":{"type":"string","description":"The time point of data to be cloned. Valid values are `LATEST`,`BackupID`,`Timestamp`.Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `CloneDataPoint`.\n\u003e **NOTE:** If CreationOption is set to CloneFromRDS, the value of this parameter must be `LATEST`. When clone to a historical backup set, you must specify a specific backup set ID. When clone to a specific point in time, specify a YYYY-MM-DDThh:mm:ssZ format UTC timestamp.\n"},"collectorStatus":{"type":"string","description":"Specifies whether to enable or disable SQL data collector. Valid values are `Enable`, `Disabled`.\n"},"compressStorage":{"type":"string","description":"Enable storage compression function. The value of this parameter is `ON`. Only MySQL supports.\n\u003e **NOTE:** When the value of\u003cspan pulumi-lang-nodejs=\" dbType \" pulumi-lang-dotnet=\" DbType \" pulumi-lang-go=\" dbType \" pulumi-lang-python=\" db_type \" pulumi-lang-yaml=\" dbType \" pulumi-lang-java=\" dbType \"\u003e db_type \u003c/span\u003eis not MySQL, the value of\u003cspan pulumi-lang-nodejs=\" creationOption \" pulumi-lang-dotnet=\" CreationOption \" pulumi-lang-go=\" creationOption \" pulumi-lang-python=\" creation_option \" pulumi-lang-yaml=\" creationOption \" pulumi-lang-java=\" creationOption \"\u003e creation_option \u003c/span\u003eis neither empty nor Normal, and the value of\u003cspan pulumi-lang-nodejs=\" storageType \" pulumi-lang-dotnet=\" StorageType \" pulumi-lang-go=\" storageType \" pulumi-lang-python=\" storage_type \" pulumi-lang-yaml=\" storageType \" pulumi-lang-java=\" storageType \"\u003e storage_type \u003c/span\u003eis not PSL4, this field will be ignored.\n"},"connectionString":{"type":"string","description":"(Available since 1.81.0) PolarDB cluster connection string.\n"},"createTime":{"type":"string","description":"(Available since 1.204.1) PolarDB cluster creation time.\n"},"creationCategory":{"type":"string","description":"The edition of the PolarDB service. Valid values are `Normal`,`Basic`,`ArchiveNormal`,`NormalMultimaster`,`SENormal`.Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `CreationCategory`.\n\u003e **NOTE:** You can set this parameter to Basic only when DBType is set to MySQL and DBVersion is set to 5.6, 5.7, or 8.0. You can set this parameter to Archive only when DBType is set to MySQL and DBVersion is set to 8.0. From version 1.188.0, \u003cspan pulumi-lang-nodejs=\"`creationCategory`\" pulumi-lang-dotnet=\"`CreationCategory`\" pulumi-lang-go=\"`creationCategory`\" pulumi-lang-python=\"`creation_category`\" pulumi-lang-yaml=\"`creationCategory`\" pulumi-lang-java=\"`creationCategory`\"\u003e`creation_category`\u003c/span\u003e can be set to `NormalMultimaster`. From version 1.203.0, \u003cspan pulumi-lang-nodejs=\"`creationCategory`\" pulumi-lang-dotnet=\"`CreationCategory`\" pulumi-lang-go=\"`creationCategory`\" pulumi-lang-python=\"`creation_category`\" pulumi-lang-yaml=\"`creationCategory`\" pulumi-lang-java=\"`creationCategory`\"\u003e`creation_category`\u003c/span\u003e can be set to `SENormal`.\n"},"creationOption":{"type":"string","description":"The method that is used to create a cluster. Valid values are `Normal`,`CloneFromPolarDB`,`CloneFromRDS`,`MigrationFromRDS`,`CreateGdnStandby`,`RecoverFromRecyclebin`,`UpgradeFromPolarDB`. **NOTE:** From version 1.233.0, \u003cspan pulumi-lang-nodejs=\"`creationOption`\" pulumi-lang-dotnet=\"`CreationOption`\" pulumi-lang-go=\"`creationOption`\" pulumi-lang-python=\"`creation_option`\" pulumi-lang-yaml=\"`creationOption`\" pulumi-lang-java=\"`creationOption`\"\u003e`creation_option`\u003c/span\u003e can be set to `RecoverFromRecyclebin`. From version 1.255.0, \u003cspan pulumi-lang-nodejs=\"`creationOption`\" pulumi-lang-dotnet=\"`CreationOption`\" pulumi-lang-go=\"`creationOption`\" pulumi-lang-python=\"`creation_option`\" pulumi-lang-yaml=\"`creationOption`\" pulumi-lang-java=\"`creationOption`\"\u003e`creation_option`\u003c/span\u003e can be set to `UpgradeFromPolarDB`. Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `CreationOption`.\n* \u003e **NOTE:** The default value is Normal. If DBType is set to MySQL and DBVersion is set to 5.6 or 5.7, this parameter can be set to CloneFromRDS or MigrationFromRDS. If DBType is set to MySQL and DBVersion is set to 8.0, this parameter can be set to CreateGdnStandby. If \u003cspan pulumi-lang-nodejs=\"`creationOption`\" pulumi-lang-dotnet=\"`CreationOption`\" pulumi-lang-go=\"`creationOption`\" pulumi-lang-python=\"`creation_option`\" pulumi-lang-yaml=\"`creationOption`\" pulumi-lang-java=\"`creationOption`\"\u003e`creation_option`\u003c/span\u003e is RecoverFromRecyclebin, you need to pass in the released source PolarDB cluster ID for this parameter. The DBType of the cluster recovered from the recycle bin and the source cluster must be consistent. For example, if the source cluster is MySQL 8.0, the cluster recovered from the recycle bin also needs to have its DBType set to MySQL and DBVersion set to 8.0.\n"},"dbClusterIpArrays":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/ClusterDbClusterIpArray:ClusterDbClusterIpArray"},"description":"db_cluster_ip_array defines how users can send requests to your API. See \u003cspan pulumi-lang-nodejs=\"`dbClusterIpArray`\" pulumi-lang-dotnet=\"`DbClusterIpArray`\" pulumi-lang-go=\"`dbClusterIpArray`\" pulumi-lang-python=\"`db_cluster_ip_array`\" pulumi-lang-yaml=\"`dbClusterIpArray`\" pulumi-lang-java=\"`dbClusterIpArray`\"\u003e`db_cluster_ip_array`\u003c/span\u003e below.\n"},"dbMinorVersion":{"type":"string","description":"Database minor version. Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `DBMinorVersion`. This parameter takes effect only when \u003cspan pulumi-lang-nodejs=\"`dbType`\" pulumi-lang-dotnet=\"`DbType`\" pulumi-lang-go=\"`dbType`\" pulumi-lang-python=\"`db_type`\" pulumi-lang-yaml=\"`dbType`\" pulumi-lang-java=\"`dbType`\"\u003e`db_type`\u003c/span\u003e is MySQL and \u003cspan pulumi-lang-nodejs=\"`dbVersion`\" pulumi-lang-dotnet=\"`DbVersion`\" pulumi-lang-go=\"`dbVersion`\" pulumi-lang-python=\"`db_version`\" pulumi-lang-yaml=\"`dbVersion`\" pulumi-lang-java=\"`dbVersion`\"\u003e`db_version`\u003c/span\u003e is 8.0.\n"},"dbNodeClass":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eof cluster node.\n\u003e **NOTE:** Node specifications are divided into cluster version, single node version and History Library version. They can't change each other, but the general specification and exclusive specification of cluster version can be changed.\nFrom version 1.204.0, If you need to create a Serverless cluster with MySQL , \u003cspan pulumi-lang-nodejs=\"`dbNodeClass`\" pulumi-lang-dotnet=\"`DbNodeClass`\" pulumi-lang-go=\"`dbNodeClass`\" pulumi-lang-python=\"`db_node_class`\" pulumi-lang-yaml=\"`dbNodeClass`\" pulumi-lang-java=\"`dbNodeClass`\"\u003e`db_node_class`\u003c/span\u003e can be set to `polar.mysql.sl.small` for enterprise edition, and `polar.mysql.sl.small.c` for standard edition.\nFrom version 1.229.1, If you need to create a Serverless cluster with PostgreSQL, \u003cspan pulumi-lang-nodejs=\"`dbNodeClass`\" pulumi-lang-dotnet=\"`DbNodeClass`\" pulumi-lang-go=\"`dbNodeClass`\" pulumi-lang-python=\"`db_node_class`\" pulumi-lang-yaml=\"`dbNodeClass`\" pulumi-lang-java=\"`dbNodeClass`\"\u003e`db_node_class`\u003c/span\u003e can be set to `polar.pg.sl.small` for enterprise edition, and `polar.pg.sl.small.c` for standard edition. Region can refer to the latest docs(https://help.aliyun.com/zh/polardb/polardb-for-postgresql/the-public-preview-of-polardb-for-postgresql-serverless-ends?spm=a2c4g.11186623.0.0.2e9f6cf0B4rIfC).\n"},"dbNodeCount":{"type":"integer","description":"Number of the PolarDB cluster nodes, default is 2(Each cluster must contain at least a primary node and a read-only node). Add/remove nodes by modifying this parameter, valid values: [2~16].  \n\u003e **NOTE:** To avoid adding or removing multiple read-only nodes by mistake, the system allows you to add or remove one read-only node at a time.\n"},"dbNodeId":{"type":"string","description":"The ID of the node or node subscript. Node subscript values: 1 to 15.\n"},"dbNodeNum":{"type":"integer","description":"The number of Standard and Enterprise Edition nodes. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e for Standard Edition, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e for Enterprise Edition. Valid values are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e. From version 1.235.0, Valid values for PolarDB for MySQL Standard Edition: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e. Valid values for PolarDB for MySQL Enterprise Edition: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\"\u003e`16`\u003c/span\u003e.\n\u003e **NOTE:** This parameter only takes effect on creation. To further manage target db node number, please refer to parameter \u003cspan pulumi-lang-nodejs=\"`dbNodeCount`\" pulumi-lang-dotnet=\"`DbNodeCount`\" pulumi-lang-go=\"`dbNodeCount`\" pulumi-lang-python=\"`db_node_count`\" pulumi-lang-yaml=\"`dbNodeCount`\" pulumi-lang-java=\"`dbNodeCount`\"\u003e`db_node_count`\u003c/span\u003e.\n"},"dbRevisionVersionLists":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/ClusterDbRevisionVersionList:ClusterDbRevisionVersionList"},"description":"(Available since v1.216.0) The\u003cspan pulumi-lang-nodejs=\" dbRevisionVersionList \" pulumi-lang-dotnet=\" DbRevisionVersionList \" pulumi-lang-go=\" dbRevisionVersionList \" pulumi-lang-python=\" db_revision_version_list \" pulumi-lang-yaml=\" dbRevisionVersionList \" pulumi-lang-java=\" dbRevisionVersionList \"\u003e db_revision_version_list \u003c/span\u003esupports the following:\n"},"dbType":{"type":"string","description":"Database type. Value options: MySQL, Oracle, PostgreSQL.\n"},"dbVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `DBVersion`.\n"},"defaultTimeZone":{"type":"string","description":"The time zone of the cluster. You can set the parameter to a value that is on the hour from -12:00 to +13:00 based on UTC. Example: 00:00. Default value: SYSTEM. This value indicates that the time zone of the cluster is the same as the time zone of the region.\n\u003e **NOTE:** This parameter is valid only when the DBType parameter is set to MySQL.\n"},"deletionLock":{"type":"integer","description":"turn on table deletion_lock. Valid values are 0, 1. 1 means to open the cluster protection lock, 0 means to close the cluster protection lock\n\u003e **NOTE:**  Cannot modify after created when \u003cspan pulumi-lang-nodejs=\"`payType`\" pulumi-lang-dotnet=\"`PayType`\" pulumi-lang-go=\"`payType`\" pulumi-lang-python=\"`pay_type`\" pulumi-lang-yaml=\"`payType`\" pulumi-lang-java=\"`payType`\"\u003e`pay_type`\u003c/span\u003e is `PrePaid` .\u003cspan pulumi-lang-nodejs=\"`deletionLock`\" pulumi-lang-dotnet=\"`DeletionLock`\" pulumi-lang-go=\"`deletionLock`\" pulumi-lang-python=\"`deletion_lock`\" pulumi-lang-yaml=\"`deletionLock`\" pulumi-lang-java=\"`deletionLock`\"\u003e`deletion_lock`\u003c/span\u003e the cluster protection lock can be turned on or off when \u003cspan pulumi-lang-nodejs=\"`payType`\" pulumi-lang-dotnet=\"`PayType`\" pulumi-lang-go=\"`payType`\" pulumi-lang-python=\"`pay_type`\" pulumi-lang-yaml=\"`payType`\" pulumi-lang-java=\"`payType`\"\u003e`pay_type`\u003c/span\u003e is `PostPaid`.\n"},"description":{"type":"string","description":"The description of cluster.\n"},"enableDynamodb":{"type":"boolean","description":"Specifies whether to enable DynamoDB compatibility. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\u003e **NOTE:** This parameter is valid only when the DBType parameter is set to PostgreSQL.\n"},"encryptNewTables":{"type":"string","description":"turn on table auto encryption. Valid values are `ON`, `OFF`. Only MySQL 8.0 supports. \n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`encryptNewTables`\" pulumi-lang-dotnet=\"`EncryptNewTables`\" pulumi-lang-go=\"`encryptNewTables`\" pulumi-lang-python=\"`encrypt_new_tables`\" pulumi-lang-yaml=\"`encryptNewTables`\" pulumi-lang-java=\"`encryptNewTables`\"\u003e`encrypt_new_tables`\u003c/span\u003e Polardb MySQL 8.0 cluster, after TDE and Automatic Encryption are enabled, all newly created tables are automatically encrypted in the cluster.\n"},"encryptionKey":{"type":"string","description":"The ID of the custom key. \u003cspan pulumi-lang-nodejs=\"`encryptionKey`\" pulumi-lang-dotnet=\"`EncryptionKey`\" pulumi-lang-go=\"`encryptionKey`\" pulumi-lang-python=\"`encryption_key`\" pulumi-lang-yaml=\"`encryptionKey`\" pulumi-lang-java=\"`encryptionKey`\"\u003e`encryption_key`\u003c/span\u003e cannot be modified after TDE is opened.\n"},"fromTimeService":{"type":"string","description":"Immediate or scheduled kernel version upgrade. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. True means immediate execution, False means scheduled execution.\n"},"gdnId":{"type":"string","description":"The ID of the global database network (GDN).\n\u003e **NOTE:** This parameter is required if CreationOption is set to CreateGdnStandby.\n"},"globalSecurityGroupLists":{"type":"array","items":{"type":"string"},"description":"The list of global security ip group ids.\n"},"hotReplicaMode":{"type":"string","description":"Indicates whether the hot standby feature is enabled. Valid values are `ON`, `OFF`. Only MySQL supports.\n"},"hotStandbyCluster":{"type":"string","description":"Whether to enable the hot standby cluster. Valid values are `ON`, `OFF`, `EQUAL`.\n\u003e **NOTE:** From version 1.249.0, \u003cspan pulumi-lang-nodejs=\"`hotStandbyCluster`\" pulumi-lang-dotnet=\"`HotStandbyCluster`\" pulumi-lang-go=\"`hotStandbyCluster`\" pulumi-lang-python=\"`hot_standby_cluster`\" pulumi-lang-yaml=\"`hotStandbyCluster`\" pulumi-lang-java=\"`hotStandbyCluster`\"\u003e`hot_standby_cluster`\u003c/span\u003e can be set to `EQUAL`, and this value is only valid for MySQL.\n"},"imciSwitch":{"type":"string","description":"Specifies whether to enable the In-Memory Column Index (IMCI) feature. Valid values are `ON`, `OFF`.\n\u003e **NOTE:**  Only polardb MySQL Cluster version is available. The cluster with minor version number of 8.0.1 supports the column index feature, and the specific kernel version must be 8.0.1.1.22 or above.\n\u003e **NOTE:**  The single node, the single node version of the history library, and the cluster version of the history library do not support column save indexes.\n"},"loosePolarLogBin":{"type":"string","description":"Enable the Binlog function. Default value: `OFF`. Valid values are `OFF`, `ON`.\n\u003e **NOTE:** This parameter is valid only MySQL Engine supports.\n"},"looseXengine":{"type":"string","description":"Specifies whether to enable X-Engine. Valid values are `ON`, `OFF`.\n\u003e **NOTE:** This parameter takes effect only if you do not set \u003cspan pulumi-lang-nodejs=\"`creationOption`\" pulumi-lang-dotnet=\"`CreationOption`\" pulumi-lang-go=\"`creationOption`\" pulumi-lang-python=\"`creation_option`\" pulumi-lang-yaml=\"`creationOption`\" pulumi-lang-java=\"`creationOption`\"\u003e`creation_option`\u003c/span\u003e to CreateGdnStandby and you set \u003cspan pulumi-lang-nodejs=\"`dbType`\" pulumi-lang-dotnet=\"`DbType`\" pulumi-lang-go=\"`dbType`\" pulumi-lang-python=\"`db_type`\" pulumi-lang-yaml=\"`dbType`\" pulumi-lang-java=\"`dbType`\"\u003e`db_type`\u003c/span\u003e to MySQL and \u003cspan pulumi-lang-nodejs=\"`dbVersion`\" pulumi-lang-dotnet=\"`DbVersion`\" pulumi-lang-go=\"`dbVersion`\" pulumi-lang-python=\"`db_version`\" pulumi-lang-yaml=\"`dbVersion`\" pulumi-lang-java=\"`dbVersion`\"\u003e`db_version`\u003c/span\u003e to 8.0. To enable X-Engine on a node, make sure that the memory of the node is greater than or equal to 8 GB in size.\n"},"looseXengineUseMemoryPct":{"type":"integer","description":"Set the ratio to enable the X-Engine storage engine. Valid values: 10 to 90.\n\u003e **NOTE:** When the parameter \u003cspan pulumi-lang-nodejs=\"`looseXengine`\" pulumi-lang-dotnet=\"`LooseXengine`\" pulumi-lang-go=\"`looseXengine`\" pulumi-lang-python=\"`loose_xengine`\" pulumi-lang-yaml=\"`looseXengine`\" pulumi-lang-java=\"`looseXengine`\"\u003e`loose_xengine`\u003c/span\u003e is ON, \u003cspan pulumi-lang-nodejs=\"`looseXengineUseMemoryPct`\" pulumi-lang-dotnet=\"`LooseXengineUseMemoryPct`\" pulumi-lang-go=\"`looseXengineUseMemoryPct`\" pulumi-lang-python=\"`loose_xengine_use_memory_pct`\" pulumi-lang-yaml=\"`looseXengineUseMemoryPct`\" pulumi-lang-java=\"`looseXengineUseMemoryPct`\"\u003e`loose_xengine_use_memory_pct`\u003c/span\u003e takes effect.\n"},"lowerCaseTableNames":{"type":"integer","description":"Specifies whether the table names are case-sensitive. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.  Valid values are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n\u003e **NOTE:** This parameter is valid only when the DBType parameter is set to MySQL.\n"},"maintainTime":{"type":"string","description":"Maintainable time period format of the instance: HH:MMZ-HH:MMZ (UTC time)\n"},"modifyType":{"type":"string","description":"Use as \u003cspan pulumi-lang-nodejs=\"`dbNodeClass`\" pulumi-lang-dotnet=\"`DbNodeClass`\" pulumi-lang-go=\"`dbNodeClass`\" pulumi-lang-python=\"`db_node_class`\" pulumi-lang-yaml=\"`dbNodeClass`\" pulumi-lang-java=\"`dbNodeClass`\"\u003e`db_node_class`\u003c/span\u003e change class, define upgrade or downgrade. Valid values are `Upgrade`, `Downgrade`, Default to `Upgrade`.\n"},"parameterGroupId":{"type":"string","description":"The ID of the parameter template\n\u003e **NOTE:** You can call the [DescribeParameterGroups](https://www.alibabacloud.com/help/en/polardb/latest/describeparametergroups) operation to query the details of all parameter templates of a specified region, such as the ID of a parameter template.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/ClusterParameter:ClusterParameter"},"description":"Set of parameters needs to be set after DB cluster was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/en/polardb/latest/modifydbclusterparameters) .See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"payType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`, Default to `PostPaid`.\n"},"period":{"type":"integer","description":"The duration that you will buy DB cluster (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid values: [1~9], 12, 24, 36.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"plannedEndTime":{"type":"string","description":"The latest time to start executing the target scheduled task. The format is YYYY-MM-DDThh: mm: ssZ (UTC).\n\u003e **NOTE:** The latest time must be 30 minutes or more later than the start time. If PlannedStartTime is set but this parameter is not specified, the latest time to execute the target task defaults to the start time+30 minutes. For example, when the PlannedStartTime is set to 2021-01-14T09:00:00Z and this parameter is left blank, the target task will start executing at the latest on 2021-01-14T09:30:00Z.\n"},"plannedStartTime":{"type":"string","description":"The earliest time to start executing a scheduled (i.e. within the target time period) kernel version upgrade task. The format is YYYY-MM-DDThh: mm: ssZ (UTC).\n\u003e **NOTE:** The starting time range is any time point within the next 24 hours. For example, the current time is 2021-01-14T09:00:00Z, and the allowed start time range for filling in here is 2021-01-14T09:00:00Z~2021-01-15T09:00:00Z. If this parameter is left blank, the kernel version upgrade task will be executed immediately by default.\n"},"port":{"type":"string","description":"(Available since 1.196.0) PolarDB cluster connection port.\n"},"provisionedIops":{"type":"string","description":"The provisioned read/write IOPS of the ESSD AutoPL disk. Valid values: 0 to min{50,000, 1,000 × Capacity - Baseline IOPS}. Baseline IOPS = min{1,800 + 50 × Capacity, 50,000}.\n\u003e **NOTE:** This parameter is available only if the StorageType parameter is set to ESSDAUTOPL.\n"},"proxyClass":{"type":"string","description":"The specifications of the Standard Edition PolarProxy. Available parameters can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1)\n\u003e **NOTE:** This parameter is valid only for standard edition clusters.\n"},"proxyType":{"type":"string","description":"The type of PolarProxy. Valid values are `EXCLUSIVE` `GENERAL`.\n\u003e **NOTE:** This parameter is valid for both standard and enterprise clusters.\n"},"renewalStatus":{"type":"string","description":"Valid values are `AutoRenewal`, `Normal`, `NotRenewal`, Default to `NotRenewal`.\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the PolarDB cluster belongs. If not specified, then it belongs to the default resource group.\n\u003e **NOTE:** From version 1.250.0, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e can be modified.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the RAM role. A RAM role is a virtual identity that you can create within your Alibaba Cloud account. For more information see [RAM role overview](https://www.alibabacloud.com/help/en/resource-access-management/latest/ram-role-overview).\n"},"scaleApRoNumMax":{"type":"integer","description":"Number of Read-only Columnar Nodes. Valid values: 0 to 7. This parameter is valid only for serverless clusters. This parameter is required when there are column nodes that support steady-state serverless.\n"},"scaleApRoNumMin":{"type":"integer","description":"Number of Read-only Columnar Nodes. Valid values: 0 to 7. This parameter is valid only for serverless clusters. This parameter is required when there are column nodes that support steady-state serverless.\n"},"scaleMax":{"type":"integer","description":"The maximum number of PCUs per node for scaling. Valid values: 1 PCU to 32 PCUs when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `AgileServerless` and 0 PCU to 8 PCUs when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `SteadyServerless`. This parameter is valid only for serverless clusters.\n"},"scaleMin":{"type":"integer","description":"The minimum number of PCUs per node for scaling. Valid values: 1 PCU to 31 PCUs when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `AgileServerless` and 0 PCU to 8 PCUs when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `SteadyServerless`. This parameter is valid only for serverless clusters.\n"},"scaleRoNumMax":{"type":"integer","description":"The maximum number of read-only nodes for scaling. Valid values: 0 to 15 when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `AgileServerless` and 0 to 7 when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `SteadyServerless`. This parameter is valid only for serverless clusters.\n"},"scaleRoNumMin":{"type":"integer","description":"The minimum number of read-only nodes for scaling. Valid values: 0 to 15 when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `AgileServerless` and 0 to 7 when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `SteadyServerless`. This parameter is valid only for serverless clusters.\n"},"secondsUntilAutoPause":{"type":"integer","description":"The detection period for No-activity Suspension. Valid values: 300 to 86,4005. Unit: seconds. The detection duration must be a multiple of 300 seconds. This parameter is valid only for serverless clusters.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The ID of the security group. Separate multiple security groups with commas (,). You can add a maximum of three security groups to a cluster.\n\u003e **NOTE:** Because of data backup and migration, change DB cluster type and storage would cost 15~20 minutes. Please make full preparation before changing them.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"This attribute has been deprecated from v1.130.0 and using \u003cspan pulumi-lang-nodejs=\"`dbClusterIpArray`\" pulumi-lang-dotnet=\"`DbClusterIpArray`\" pulumi-lang-go=\"`dbClusterIpArray`\" pulumi-lang-python=\"`db_cluster_ip_array`\" pulumi-lang-yaml=\"`dbClusterIpArray`\" pulumi-lang-java=\"`dbClusterIpArray`\"\u003e`db_cluster_ip_array`\u003c/span\u003e sub-element \u003cspan pulumi-lang-nodejs=\"`securityIps`\" pulumi-lang-dotnet=\"`SecurityIps`\" pulumi-lang-go=\"`securityIps`\" pulumi-lang-python=\"`security_ips`\" pulumi-lang-yaml=\"`securityIps`\" pulumi-lang-java=\"`securityIps`\"\u003e`security_ips`\u003c/span\u003e instead.\nIts value is same as \u003cspan pulumi-lang-nodejs=\"`dbClusterIpArray`\" pulumi-lang-dotnet=\"`DbClusterIpArray`\" pulumi-lang-go=\"`dbClusterIpArray`\" pulumi-lang-python=\"`db_cluster_ip_array`\" pulumi-lang-yaml=\"`dbClusterIpArray`\" pulumi-lang-java=\"`dbClusterIpArray`\"\u003e`db_cluster_ip_array`\u003c/span\u003e sub-element \u003cspan pulumi-lang-nodejs=\"`securityIps`\" pulumi-lang-dotnet=\"`SecurityIps`\" pulumi-lang-go=\"`securityIps`\" pulumi-lang-python=\"`security_ips`\" pulumi-lang-yaml=\"`securityIps`\" pulumi-lang-java=\"`securityIps`\"\u003e`security_ips`\u003c/span\u003e value and its\u003cspan pulumi-lang-nodejs=\" dbClusterIpArrayName \" pulumi-lang-dotnet=\" DbClusterIpArrayName \" pulumi-lang-go=\" dbClusterIpArrayName \" pulumi-lang-python=\" db_cluster_ip_array_name \" pulumi-lang-yaml=\" dbClusterIpArrayName \" pulumi-lang-java=\" dbClusterIpArrayName \"\u003e db_cluster_ip_array_name \u003c/span\u003eis \"default\".\n"},"serverlessRuleCpuEnlargeThreshold":{"type":"integer","description":"CPU upscale threshold. Valid values: 40 to 100. This parameter is valid only for serverless clusters.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`serverlessRuleCpuEnlargeThreshold`\" pulumi-lang-dotnet=\"`ServerlessRuleCpuEnlargeThreshold`\" pulumi-lang-go=\"`serverlessRuleCpuEnlargeThreshold`\" pulumi-lang-python=\"`serverless_rule_cpu_enlarge_threshold`\" pulumi-lang-yaml=\"`serverlessRuleCpuEnlargeThreshold`\" pulumi-lang-java=\"`serverlessRuleCpuEnlargeThreshold`\"\u003e`serverless_rule_cpu_enlarge_threshold`\u003c/span\u003e should be at least 30 greater than \u003cspan pulumi-lang-nodejs=\"`serverlessRuleCpuShrinkThreshold`\" pulumi-lang-dotnet=\"`ServerlessRuleCpuShrinkThreshold`\" pulumi-lang-go=\"`serverlessRuleCpuShrinkThreshold`\" pulumi-lang-python=\"`serverless_rule_cpu_shrink_threshold`\" pulumi-lang-yaml=\"`serverlessRuleCpuShrinkThreshold`\" pulumi-lang-java=\"`serverlessRuleCpuShrinkThreshold`\"\u003e`serverless_rule_cpu_shrink_threshold`\u003c/span\u003e.\n"},"serverlessRuleCpuShrinkThreshold":{"type":"integer","description":"CPU downscale threshold. Valid values: 10 to 100. This parameter is valid only for serverless clusters.\n"},"serverlessRuleMode":{"type":"string","description":"Elasticity sensitivity. Valid values: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e for standard and \u003cspan pulumi-lang-nodejs=\"`flexible`\" pulumi-lang-dotnet=\"`Flexible`\" pulumi-lang-go=\"`flexible`\" pulumi-lang-python=\"`flexible`\" pulumi-lang-yaml=\"`flexible`\" pulumi-lang-java=\"`flexible`\"\u003e`flexible`\u003c/span\u003e for sensitive. This parameter is valid only for serverless clusters.\n"},"serverlessSteadySwitch":{"type":"string","description":"Serverless steady-state switch. Valid values are `ON`, `OFF`. This parameter is valid only for serverless clusters.\n\u003e **NOTE:** When\u003cspan pulumi-lang-nodejs=\" serverlessSteadySwitch \" pulumi-lang-dotnet=\" ServerlessSteadySwitch \" pulumi-lang-go=\" serverlessSteadySwitch \" pulumi-lang-python=\" serverless_steady_switch \" pulumi-lang-yaml=\" serverlessSteadySwitch \" pulumi-lang-java=\" serverlessSteadySwitch \"\u003e serverless_steady_switch \u003c/span\u003eis `ON` and\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `SteadyServerless`, parameters \u003cspan pulumi-lang-nodejs=\"`scaleMin`\" pulumi-lang-dotnet=\"`ScaleMin`\" pulumi-lang-go=\"`scaleMin`\" pulumi-lang-python=\"`scale_min`\" pulumi-lang-yaml=\"`scaleMin`\" pulumi-lang-java=\"`scaleMin`\"\u003e`scale_min`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`scaleMax`\" pulumi-lang-dotnet=\"`ScaleMax`\" pulumi-lang-go=\"`scaleMax`\" pulumi-lang-python=\"`scale_max`\" pulumi-lang-yaml=\"`scaleMax`\" pulumi-lang-java=\"`scaleMax`\"\u003e`scale_max`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`scaleRoNumMin`\" pulumi-lang-dotnet=\"`ScaleRoNumMin`\" pulumi-lang-go=\"`scaleRoNumMin`\" pulumi-lang-python=\"`scale_ro_num_min`\" pulumi-lang-yaml=\"`scaleRoNumMin`\" pulumi-lang-java=\"`scaleRoNumMin`\"\u003e`scale_ro_num_min`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`scaleRoNumMax`\" pulumi-lang-dotnet=\"`ScaleRoNumMax`\" pulumi-lang-go=\"`scaleRoNumMax`\" pulumi-lang-python=\"`scale_ro_num_max`\" pulumi-lang-yaml=\"`scaleRoNumMax`\" pulumi-lang-java=\"`scaleRoNumMax`\"\u003e`scale_ro_num_max`\u003c/span\u003e are all required.\n"},"serverlessType":{"type":"string","description":"The type of the serverless cluster. Valid values `AgileServerless`, `SteadyServerless`. This parameter is valid only for serverless clusters.\n"},"sourceResourceId":{"type":"string","description":"The ID of the source RDS instance or the ID of the source PolarDB cluster. This parameter is required only when CreationOption is set to MigrationFromRDS, CloneFromRDS, or CloneFromPolarDB.Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `SourceResourceId`.\n"},"standbyAz":{"type":"string","description":"The availability zone where the hot standby cluster is stored, takes effect when \u003cspan pulumi-lang-nodejs=\"`hotStandbyCluster`\" pulumi-lang-dotnet=\"`HotStandbyCluster`\" pulumi-lang-go=\"`hotStandbyCluster`\" pulumi-lang-python=\"`hot_standby_cluster`\" pulumi-lang-yaml=\"`hotStandbyCluster`\" pulumi-lang-java=\"`hotStandbyCluster`\"\u003e`hot_standby_cluster`\u003c/span\u003e is `ON` or `EQUAL`.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`standbyAz`\" pulumi-lang-dotnet=\"`StandbyAz`\" pulumi-lang-go=\"`standbyAz`\" pulumi-lang-python=\"`standby_az`\" pulumi-lang-yaml=\"`standbyAz`\" pulumi-lang-java=\"`standbyAz`\"\u003e`standby_az`\u003c/span\u003e is required when \u003cspan pulumi-lang-nodejs=\"`hotStandbyCluster`\" pulumi-lang-dotnet=\"`HotStandbyCluster`\" pulumi-lang-go=\"`hotStandbyCluster`\" pulumi-lang-python=\"`hot_standby_cluster`\" pulumi-lang-yaml=\"`hotStandbyCluster`\" pulumi-lang-java=\"`hotStandbyCluster`\"\u003e`hot_standby_cluster`\u003c/span\u003e is `EQUAL`.\n"},"status":{"type":"string","description":"(Available since 1.204.1) PolarDB cluster status.\n"},"storagePayType":{"type":"string","description":"The billing method of the storage. Valid values `PostPaid`, `PrePaid`.\n"},"storageSpace":{"type":"integer","description":"Storage space charged by space (monthly package). Unit: GB.\n\u003e **NOTE:**  Valid values for PolarDB for MySQL Standard Edition: 20 to 32000. It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eare `PrePaid` ,`PostPaid`.\n\u003e **NOTE:**  Valid values for PolarDB for MySQL Enterprise Edition: 50 to 100000.It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`.\n"},"storageType":{"type":"string","description":"The storage type of the cluster. Enterprise storage type values are `PSL5`, `PSL4`. The standard version storage type values are `ESSDPL1`, `ESSDPL2`, `ESSDPL3`, `ESSDPL0`, `ESSDAUTOPL`. The standard version only supports MySQL and PostgreSQL.\n"},"strictConsistency":{"type":"string","description":"Whether the cluster has enabled strong data consistency across multiple zones. Valid values are `ON`, `OFF`. Available parameters can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1)\n"},"subCategory":{"type":"string","description":"The category of the cluster. Valid values are `Exclusive`, `General`. Only MySQL supports.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"targetDbRevisionVersionCode":{"type":"string","description":"The Version Code of the target version, whose parameter values can be obtained from the [DescribeDBClusterVersion](https://www.alibabacloud.com/help/en/polardb/latest/describedbclusterversion) interface.\n"},"tdeRegion":{"type":"string","description":"(Available since 1.200.0) The region where the TDE key resides.\n\u003e **NOTE:** TDE can be enabled on clusters that have joined a global database network (GDN). After TDE is enabled on the primary cluster in a GDN, TDE is enabled on the secondary clusters in the GDN by default. The key used by the secondary clusters and the region for the key resides must be the same as the primary cluster. The region of the key cannot be modified.\n\u003e **NOTE:** You cannot enable TDE for the secondary clusters in a GDN. Used to view user KMS activation status.\n"},"tdeStatus":{"type":"string","description":"turn on TDE encryption. Valid values are `Enabled`, `Disabled`. Default to `Disabled`. TDE cannot be closed after it is turned on. \n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`tdeStatus`\" pulumi-lang-dotnet=\"`TdeStatus`\" pulumi-lang-go=\"`tdeStatus`\" pulumi-lang-python=\"`tde_status`\" pulumi-lang-yaml=\"`tdeStatus`\" pulumi-lang-java=\"`tdeStatus`\"\u003e`tde_status`\u003c/span\u003e Cannot modify after created when \u003cspan pulumi-lang-nodejs=\"`dbType`\" pulumi-lang-dotnet=\"`DbType`\" pulumi-lang-go=\"`dbType`\" pulumi-lang-python=\"`db_type`\" pulumi-lang-yaml=\"`dbType`\" pulumi-lang-java=\"`dbType`\"\u003e`db_type`\u003c/span\u003e is `PostgreSQL` or `Oracle`.\u003cspan pulumi-lang-nodejs=\"`tdeStatus`\" pulumi-lang-dotnet=\"`TdeStatus`\" pulumi-lang-go=\"`tdeStatus`\" pulumi-lang-python=\"`tde_status`\" pulumi-lang-yaml=\"`tdeStatus`\" pulumi-lang-java=\"`tdeStatus`\"\u003e`tde_status`\u003c/span\u003e only support modification from `Disabled` to `Enabled` when \u003cspan pulumi-lang-nodejs=\"`dbType`\" pulumi-lang-dotnet=\"`DbType`\" pulumi-lang-go=\"`dbType`\" pulumi-lang-python=\"`db_type`\" pulumi-lang-yaml=\"`dbType`\" pulumi-lang-java=\"`dbType`\"\u003e`db_type`\u003c/span\u003e is `MySQL`.\n"},"upgradeType":{"type":"string","description":"Version upgrade type. Valid values are PROXY, DB, ALL. PROXY means upgrading the proxy version, DB means upgrading the db version, ALL means upgrading both db and proxy versions simultaneously.\n"},"vpcId":{"type":"string","description":"The id of the VPC.\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC.\n\u003e **NOTE:** If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis not specified, system will get a vswitch belongs to the user automatically.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB cluster. it supports multiple zone.\n"}},"required":["allowShutDown","backupRetentionPolicyOnClusterDeletion","collectorStatus","compressStorage","connectionString","createTime","creationCategory","creationOption","dbClusterIpArrays","dbMinorVersion","dbNodeClass","dbNodeCount","dbRevisionVersionLists","dbType","dbVersion","defaultTimeZone","description","enableDynamodb","hotReplicaMode","hotStandbyCluster","imciSwitch","loosePolarLogBin","looseXengine","looseXengineUseMemoryPct","lowerCaseTableNames","maintainTime","parameters","port","provisionedIops","resourceGroupId","roleArn","scaleApRoNumMax","scaleApRoNumMin","secondsUntilAutoPause","securityGroupIds","securityIps","serverlessRuleCpuEnlargeThreshold","serverlessRuleCpuShrinkThreshold","serverlessRuleMode","standbyAz","status","storagePayType","storageSpace","storageType","strictConsistency","subCategory","tdeRegion","vpcId","vswitchId","zoneId"],"inputProperties":{"allowShutDown":{"type":"string","description":"Specifies whether to enable the no-activity suspension feature. Default value: false. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. This parameter is valid only for serverless clusters.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an cluster, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid value:1, 2, 3, 6, 12, 24, 36, Default to 1.\n"},"backupRetentionPolicyOnClusterDeletion":{"type":"string","description":"The retention policy for the backup sets when you delete the cluster.  Valid values are `ALL`, `LATEST`, `NONE`. Value options can refer to the latest docs [DeleteDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/deletedbcluster-1)\n"},"cloneDataPoint":{"type":"string","description":"The time point of data to be cloned. Valid values are `LATEST`,`BackupID`,`Timestamp`.Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `CloneDataPoint`.\n\u003e **NOTE:** If CreationOption is set to CloneFromRDS, the value of this parameter must be `LATEST`. When clone to a historical backup set, you must specify a specific backup set ID. When clone to a specific point in time, specify a YYYY-MM-DDThh:mm:ssZ format UTC timestamp.\n"},"collectorStatus":{"type":"string","description":"Specifies whether to enable or disable SQL data collector. Valid values are `Enable`, `Disabled`.\n"},"compressStorage":{"type":"string","description":"Enable storage compression function. The value of this parameter is `ON`. Only MySQL supports.\n\u003e **NOTE:** When the value of\u003cspan pulumi-lang-nodejs=\" dbType \" pulumi-lang-dotnet=\" DbType \" pulumi-lang-go=\" dbType \" pulumi-lang-python=\" db_type \" pulumi-lang-yaml=\" dbType \" pulumi-lang-java=\" dbType \"\u003e db_type \u003c/span\u003eis not MySQL, the value of\u003cspan pulumi-lang-nodejs=\" creationOption \" pulumi-lang-dotnet=\" CreationOption \" pulumi-lang-go=\" creationOption \" pulumi-lang-python=\" creation_option \" pulumi-lang-yaml=\" creationOption \" pulumi-lang-java=\" creationOption \"\u003e creation_option \u003c/span\u003eis neither empty nor Normal, and the value of\u003cspan pulumi-lang-nodejs=\" storageType \" pulumi-lang-dotnet=\" StorageType \" pulumi-lang-go=\" storageType \" pulumi-lang-python=\" storage_type \" pulumi-lang-yaml=\" storageType \" pulumi-lang-java=\" storageType \"\u003e storage_type \u003c/span\u003eis not PSL4, this field will be ignored.\n"},"creationCategory":{"type":"string","description":"The edition of the PolarDB service. Valid values are `Normal`,`Basic`,`ArchiveNormal`,`NormalMultimaster`,`SENormal`.Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `CreationCategory`.\n\u003e **NOTE:** You can set this parameter to Basic only when DBType is set to MySQL and DBVersion is set to 5.6, 5.7, or 8.0. You can set this parameter to Archive only when DBType is set to MySQL and DBVersion is set to 8.0. From version 1.188.0, \u003cspan pulumi-lang-nodejs=\"`creationCategory`\" pulumi-lang-dotnet=\"`CreationCategory`\" pulumi-lang-go=\"`creationCategory`\" pulumi-lang-python=\"`creation_category`\" pulumi-lang-yaml=\"`creationCategory`\" pulumi-lang-java=\"`creationCategory`\"\u003e`creation_category`\u003c/span\u003e can be set to `NormalMultimaster`. From version 1.203.0, \u003cspan pulumi-lang-nodejs=\"`creationCategory`\" pulumi-lang-dotnet=\"`CreationCategory`\" pulumi-lang-go=\"`creationCategory`\" pulumi-lang-python=\"`creation_category`\" pulumi-lang-yaml=\"`creationCategory`\" pulumi-lang-java=\"`creationCategory`\"\u003e`creation_category`\u003c/span\u003e can be set to `SENormal`.\n","willReplaceOnChanges":true},"creationOption":{"type":"string","description":"The method that is used to create a cluster. Valid values are `Normal`,`CloneFromPolarDB`,`CloneFromRDS`,`MigrationFromRDS`,`CreateGdnStandby`,`RecoverFromRecyclebin`,`UpgradeFromPolarDB`. **NOTE:** From version 1.233.0, \u003cspan pulumi-lang-nodejs=\"`creationOption`\" pulumi-lang-dotnet=\"`CreationOption`\" pulumi-lang-go=\"`creationOption`\" pulumi-lang-python=\"`creation_option`\" pulumi-lang-yaml=\"`creationOption`\" pulumi-lang-java=\"`creationOption`\"\u003e`creation_option`\u003c/span\u003e can be set to `RecoverFromRecyclebin`. From version 1.255.0, \u003cspan pulumi-lang-nodejs=\"`creationOption`\" pulumi-lang-dotnet=\"`CreationOption`\" pulumi-lang-go=\"`creationOption`\" pulumi-lang-python=\"`creation_option`\" pulumi-lang-yaml=\"`creationOption`\" pulumi-lang-java=\"`creationOption`\"\u003e`creation_option`\u003c/span\u003e can be set to `UpgradeFromPolarDB`. Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `CreationOption`.\n* \u003e **NOTE:** The default value is Normal. If DBType is set to MySQL and DBVersion is set to 5.6 or 5.7, this parameter can be set to CloneFromRDS or MigrationFromRDS. If DBType is set to MySQL and DBVersion is set to 8.0, this parameter can be set to CreateGdnStandby. If \u003cspan pulumi-lang-nodejs=\"`creationOption`\" pulumi-lang-dotnet=\"`CreationOption`\" pulumi-lang-go=\"`creationOption`\" pulumi-lang-python=\"`creation_option`\" pulumi-lang-yaml=\"`creationOption`\" pulumi-lang-java=\"`creationOption`\"\u003e`creation_option`\u003c/span\u003e is RecoverFromRecyclebin, you need to pass in the released source PolarDB cluster ID for this parameter. The DBType of the cluster recovered from the recycle bin and the source cluster must be consistent. For example, if the source cluster is MySQL 8.0, the cluster recovered from the recycle bin also needs to have its DBType set to MySQL and DBVersion set to 8.0.\n"},"dbClusterIpArrays":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/ClusterDbClusterIpArray:ClusterDbClusterIpArray"},"description":"db_cluster_ip_array defines how users can send requests to your API. See \u003cspan pulumi-lang-nodejs=\"`dbClusterIpArray`\" pulumi-lang-dotnet=\"`DbClusterIpArray`\" pulumi-lang-go=\"`dbClusterIpArray`\" pulumi-lang-python=\"`db_cluster_ip_array`\" pulumi-lang-yaml=\"`dbClusterIpArray`\" pulumi-lang-java=\"`dbClusterIpArray`\"\u003e`db_cluster_ip_array`\u003c/span\u003e below.\n"},"dbMinorVersion":{"type":"string","description":"Database minor version. Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `DBMinorVersion`. This parameter takes effect only when \u003cspan pulumi-lang-nodejs=\"`dbType`\" pulumi-lang-dotnet=\"`DbType`\" pulumi-lang-go=\"`dbType`\" pulumi-lang-python=\"`db_type`\" pulumi-lang-yaml=\"`dbType`\" pulumi-lang-java=\"`dbType`\"\u003e`db_type`\u003c/span\u003e is MySQL and \u003cspan pulumi-lang-nodejs=\"`dbVersion`\" pulumi-lang-dotnet=\"`DbVersion`\" pulumi-lang-go=\"`dbVersion`\" pulumi-lang-python=\"`db_version`\" pulumi-lang-yaml=\"`dbVersion`\" pulumi-lang-java=\"`dbVersion`\"\u003e`db_version`\u003c/span\u003e is 8.0.\n","willReplaceOnChanges":true},"dbNodeClass":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eof cluster node.\n\u003e **NOTE:** Node specifications are divided into cluster version, single node version and History Library version. They can't change each other, but the general specification and exclusive specification of cluster version can be changed.\nFrom version 1.204.0, If you need to create a Serverless cluster with MySQL , \u003cspan pulumi-lang-nodejs=\"`dbNodeClass`\" pulumi-lang-dotnet=\"`DbNodeClass`\" pulumi-lang-go=\"`dbNodeClass`\" pulumi-lang-python=\"`db_node_class`\" pulumi-lang-yaml=\"`dbNodeClass`\" pulumi-lang-java=\"`dbNodeClass`\"\u003e`db_node_class`\u003c/span\u003e can be set to `polar.mysql.sl.small` for enterprise edition, and `polar.mysql.sl.small.c` for standard edition.\nFrom version 1.229.1, If you need to create a Serverless cluster with PostgreSQL, \u003cspan pulumi-lang-nodejs=\"`dbNodeClass`\" pulumi-lang-dotnet=\"`DbNodeClass`\" pulumi-lang-go=\"`dbNodeClass`\" pulumi-lang-python=\"`db_node_class`\" pulumi-lang-yaml=\"`dbNodeClass`\" pulumi-lang-java=\"`dbNodeClass`\"\u003e`db_node_class`\u003c/span\u003e can be set to `polar.pg.sl.small` for enterprise edition, and `polar.pg.sl.small.c` for standard edition. Region can refer to the latest docs(https://help.aliyun.com/zh/polardb/polardb-for-postgresql/the-public-preview-of-polardb-for-postgresql-serverless-ends?spm=a2c4g.11186623.0.0.2e9f6cf0B4rIfC).\n"},"dbNodeCount":{"type":"integer","description":"Number of the PolarDB cluster nodes, default is 2(Each cluster must contain at least a primary node and a read-only node). Add/remove nodes by modifying this parameter, valid values: [2~16].  \n\u003e **NOTE:** To avoid adding or removing multiple read-only nodes by mistake, the system allows you to add or remove one read-only node at a time.\n"},"dbNodeId":{"type":"string","description":"The ID of the node or node subscript. Node subscript values: 1 to 15.\n"},"dbNodeNum":{"type":"integer","description":"The number of Standard and Enterprise Edition nodes. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e for Standard Edition, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e for Enterprise Edition. Valid values are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e. From version 1.235.0, Valid values for PolarDB for MySQL Standard Edition: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e. Valid values for PolarDB for MySQL Enterprise Edition: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\"\u003e`16`\u003c/span\u003e.\n\u003e **NOTE:** This parameter only takes effect on creation. To further manage target db node number, please refer to parameter \u003cspan pulumi-lang-nodejs=\"`dbNodeCount`\" pulumi-lang-dotnet=\"`DbNodeCount`\" pulumi-lang-go=\"`dbNodeCount`\" pulumi-lang-python=\"`db_node_count`\" pulumi-lang-yaml=\"`dbNodeCount`\" pulumi-lang-java=\"`dbNodeCount`\"\u003e`db_node_count`\u003c/span\u003e.\n"},"dbType":{"type":"string","description":"Database type. Value options: MySQL, Oracle, PostgreSQL.\n","willReplaceOnChanges":true},"dbVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `DBVersion`.\n","willReplaceOnChanges":true},"defaultTimeZone":{"type":"string","description":"The time zone of the cluster. You can set the parameter to a value that is on the hour from -12:00 to +13:00 based on UTC. Example: 00:00. Default value: SYSTEM. This value indicates that the time zone of the cluster is the same as the time zone of the region.\n\u003e **NOTE:** This parameter is valid only when the DBType parameter is set to MySQL.\n"},"deletionLock":{"type":"integer","description":"turn on table deletion_lock. Valid values are 0, 1. 1 means to open the cluster protection lock, 0 means to close the cluster protection lock\n\u003e **NOTE:**  Cannot modify after created when \u003cspan pulumi-lang-nodejs=\"`payType`\" pulumi-lang-dotnet=\"`PayType`\" pulumi-lang-go=\"`payType`\" pulumi-lang-python=\"`pay_type`\" pulumi-lang-yaml=\"`payType`\" pulumi-lang-java=\"`payType`\"\u003e`pay_type`\u003c/span\u003e is `PrePaid` .\u003cspan pulumi-lang-nodejs=\"`deletionLock`\" pulumi-lang-dotnet=\"`DeletionLock`\" pulumi-lang-go=\"`deletionLock`\" pulumi-lang-python=\"`deletion_lock`\" pulumi-lang-yaml=\"`deletionLock`\" pulumi-lang-java=\"`deletionLock`\"\u003e`deletion_lock`\u003c/span\u003e the cluster protection lock can be turned on or off when \u003cspan pulumi-lang-nodejs=\"`payType`\" pulumi-lang-dotnet=\"`PayType`\" pulumi-lang-go=\"`payType`\" pulumi-lang-python=\"`pay_type`\" pulumi-lang-yaml=\"`payType`\" pulumi-lang-java=\"`payType`\"\u003e`pay_type`\u003c/span\u003e is `PostPaid`.\n"},"description":{"type":"string","description":"The description of cluster.\n"},"enableDynamodb":{"type":"boolean","description":"Specifies whether to enable DynamoDB compatibility. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\u003e **NOTE:** This parameter is valid only when the DBType parameter is set to PostgreSQL.\n"},"encryptNewTables":{"type":"string","description":"turn on table auto encryption. Valid values are `ON`, `OFF`. Only MySQL 8.0 supports. \n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`encryptNewTables`\" pulumi-lang-dotnet=\"`EncryptNewTables`\" pulumi-lang-go=\"`encryptNewTables`\" pulumi-lang-python=\"`encrypt_new_tables`\" pulumi-lang-yaml=\"`encryptNewTables`\" pulumi-lang-java=\"`encryptNewTables`\"\u003e`encrypt_new_tables`\u003c/span\u003e Polardb MySQL 8.0 cluster, after TDE and Automatic Encryption are enabled, all newly created tables are automatically encrypted in the cluster.\n"},"encryptionKey":{"type":"string","description":"The ID of the custom key. \u003cspan pulumi-lang-nodejs=\"`encryptionKey`\" pulumi-lang-dotnet=\"`EncryptionKey`\" pulumi-lang-go=\"`encryptionKey`\" pulumi-lang-python=\"`encryption_key`\" pulumi-lang-yaml=\"`encryptionKey`\" pulumi-lang-java=\"`encryptionKey`\"\u003e`encryption_key`\u003c/span\u003e cannot be modified after TDE is opened.\n"},"fromTimeService":{"type":"string","description":"Immediate or scheduled kernel version upgrade. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. True means immediate execution, False means scheduled execution.\n"},"gdnId":{"type":"string","description":"The ID of the global database network (GDN).\n\u003e **NOTE:** This parameter is required if CreationOption is set to CreateGdnStandby.\n"},"globalSecurityGroupLists":{"type":"array","items":{"type":"string"},"description":"The list of global security ip group ids.\n"},"hotReplicaMode":{"type":"string","description":"Indicates whether the hot standby feature is enabled. Valid values are `ON`, `OFF`. Only MySQL supports.\n"},"hotStandbyCluster":{"type":"string","description":"Whether to enable the hot standby cluster. Valid values are `ON`, `OFF`, `EQUAL`.\n\u003e **NOTE:** From version 1.249.0, \u003cspan pulumi-lang-nodejs=\"`hotStandbyCluster`\" pulumi-lang-dotnet=\"`HotStandbyCluster`\" pulumi-lang-go=\"`hotStandbyCluster`\" pulumi-lang-python=\"`hot_standby_cluster`\" pulumi-lang-yaml=\"`hotStandbyCluster`\" pulumi-lang-java=\"`hotStandbyCluster`\"\u003e`hot_standby_cluster`\u003c/span\u003e can be set to `EQUAL`, and this value is only valid for MySQL.\n","willReplaceOnChanges":true},"imciSwitch":{"type":"string","description":"Specifies whether to enable the In-Memory Column Index (IMCI) feature. Valid values are `ON`, `OFF`.\n\u003e **NOTE:**  Only polardb MySQL Cluster version is available. The cluster with minor version number of 8.0.1 supports the column index feature, and the specific kernel version must be 8.0.1.1.22 or above.\n\u003e **NOTE:**  The single node, the single node version of the history library, and the cluster version of the history library do not support column save indexes.\n"},"loosePolarLogBin":{"type":"string","description":"Enable the Binlog function. Default value: `OFF`. Valid values are `OFF`, `ON`.\n\u003e **NOTE:** This parameter is valid only MySQL Engine supports.\n"},"looseXengine":{"type":"string","description":"Specifies whether to enable X-Engine. Valid values are `ON`, `OFF`.\n\u003e **NOTE:** This parameter takes effect only if you do not set \u003cspan pulumi-lang-nodejs=\"`creationOption`\" pulumi-lang-dotnet=\"`CreationOption`\" pulumi-lang-go=\"`creationOption`\" pulumi-lang-python=\"`creation_option`\" pulumi-lang-yaml=\"`creationOption`\" pulumi-lang-java=\"`creationOption`\"\u003e`creation_option`\u003c/span\u003e to CreateGdnStandby and you set \u003cspan pulumi-lang-nodejs=\"`dbType`\" pulumi-lang-dotnet=\"`DbType`\" pulumi-lang-go=\"`dbType`\" pulumi-lang-python=\"`db_type`\" pulumi-lang-yaml=\"`dbType`\" pulumi-lang-java=\"`dbType`\"\u003e`db_type`\u003c/span\u003e to MySQL and \u003cspan pulumi-lang-nodejs=\"`dbVersion`\" pulumi-lang-dotnet=\"`DbVersion`\" pulumi-lang-go=\"`dbVersion`\" pulumi-lang-python=\"`db_version`\" pulumi-lang-yaml=\"`dbVersion`\" pulumi-lang-java=\"`dbVersion`\"\u003e`db_version`\u003c/span\u003e to 8.0. To enable X-Engine on a node, make sure that the memory of the node is greater than or equal to 8 GB in size.\n"},"looseXengineUseMemoryPct":{"type":"integer","description":"Set the ratio to enable the X-Engine storage engine. Valid values: 10 to 90.\n\u003e **NOTE:** When the parameter \u003cspan pulumi-lang-nodejs=\"`looseXengine`\" pulumi-lang-dotnet=\"`LooseXengine`\" pulumi-lang-go=\"`looseXengine`\" pulumi-lang-python=\"`loose_xengine`\" pulumi-lang-yaml=\"`looseXengine`\" pulumi-lang-java=\"`looseXengine`\"\u003e`loose_xengine`\u003c/span\u003e is ON, \u003cspan pulumi-lang-nodejs=\"`looseXengineUseMemoryPct`\" pulumi-lang-dotnet=\"`LooseXengineUseMemoryPct`\" pulumi-lang-go=\"`looseXengineUseMemoryPct`\" pulumi-lang-python=\"`loose_xengine_use_memory_pct`\" pulumi-lang-yaml=\"`looseXengineUseMemoryPct`\" pulumi-lang-java=\"`looseXengineUseMemoryPct`\"\u003e`loose_xengine_use_memory_pct`\u003c/span\u003e takes effect.\n"},"lowerCaseTableNames":{"type":"integer","description":"Specifies whether the table names are case-sensitive. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.  Valid values are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n\u003e **NOTE:** This parameter is valid only when the DBType parameter is set to MySQL.\n","willReplaceOnChanges":true},"maintainTime":{"type":"string","description":"Maintainable time period format of the instance: HH:MMZ-HH:MMZ (UTC time)\n"},"modifyType":{"type":"string","description":"Use as \u003cspan pulumi-lang-nodejs=\"`dbNodeClass`\" pulumi-lang-dotnet=\"`DbNodeClass`\" pulumi-lang-go=\"`dbNodeClass`\" pulumi-lang-python=\"`db_node_class`\" pulumi-lang-yaml=\"`dbNodeClass`\" pulumi-lang-java=\"`dbNodeClass`\"\u003e`db_node_class`\u003c/span\u003e change class, define upgrade or downgrade. Valid values are `Upgrade`, `Downgrade`, Default to `Upgrade`.\n"},"parameterGroupId":{"type":"string","description":"The ID of the parameter template\n\u003e **NOTE:** You can call the [DescribeParameterGroups](https://www.alibabacloud.com/help/en/polardb/latest/describeparametergroups) operation to query the details of all parameter templates of a specified region, such as the ID of a parameter template.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/ClusterParameter:ClusterParameter"},"description":"Set of parameters needs to be set after DB cluster was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/en/polardb/latest/modifydbclusterparameters) .See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"payType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`, Default to `PostPaid`.\n"},"period":{"type":"integer","description":"The duration that you will buy DB cluster (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid values: [1~9], 12, 24, 36.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"plannedEndTime":{"type":"string","description":"The latest time to start executing the target scheduled task. The format is YYYY-MM-DDThh: mm: ssZ (UTC).\n\u003e **NOTE:** The latest time must be 30 minutes or more later than the start time. If PlannedStartTime is set but this parameter is not specified, the latest time to execute the target task defaults to the start time+30 minutes. For example, when the PlannedStartTime is set to 2021-01-14T09:00:00Z and this parameter is left blank, the target task will start executing at the latest on 2021-01-14T09:30:00Z.\n"},"plannedStartTime":{"type":"string","description":"The earliest time to start executing a scheduled (i.e. within the target time period) kernel version upgrade task. The format is YYYY-MM-DDThh: mm: ssZ (UTC).\n\u003e **NOTE:** The starting time range is any time point within the next 24 hours. For example, the current time is 2021-01-14T09:00:00Z, and the allowed start time range for filling in here is 2021-01-14T09:00:00Z~2021-01-15T09:00:00Z. If this parameter is left blank, the kernel version upgrade task will be executed immediately by default.\n"},"provisionedIops":{"type":"string","description":"The provisioned read/write IOPS of the ESSD AutoPL disk. Valid values: 0 to min{50,000, 1,000 × Capacity - Baseline IOPS}. Baseline IOPS = min{1,800 + 50 × Capacity, 50,000}.\n\u003e **NOTE:** This parameter is available only if the StorageType parameter is set to ESSDAUTOPL.\n"},"proxyClass":{"type":"string","description":"The specifications of the Standard Edition PolarProxy. Available parameters can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1)\n\u003e **NOTE:** This parameter is valid only for standard edition clusters.\n"},"proxyType":{"type":"string","description":"The type of PolarProxy. Valid values are `EXCLUSIVE` `GENERAL`.\n\u003e **NOTE:** This parameter is valid for both standard and enterprise clusters.\n"},"renewalStatus":{"type":"string","description":"Valid values are `AutoRenewal`, `Normal`, `NotRenewal`, Default to `NotRenewal`.\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the PolarDB cluster belongs. If not specified, then it belongs to the default resource group.\n\u003e **NOTE:** From version 1.250.0, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e can be modified.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the RAM role. A RAM role is a virtual identity that you can create within your Alibaba Cloud account. For more information see [RAM role overview](https://www.alibabacloud.com/help/en/resource-access-management/latest/ram-role-overview).\n"},"scaleApRoNumMax":{"type":"integer","description":"Number of Read-only Columnar Nodes. Valid values: 0 to 7. This parameter is valid only for serverless clusters. This parameter is required when there are column nodes that support steady-state serverless.\n"},"scaleApRoNumMin":{"type":"integer","description":"Number of Read-only Columnar Nodes. Valid values: 0 to 7. This parameter is valid only for serverless clusters. This parameter is required when there are column nodes that support steady-state serverless.\n"},"scaleMax":{"type":"integer","description":"The maximum number of PCUs per node for scaling. Valid values: 1 PCU to 32 PCUs when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `AgileServerless` and 0 PCU to 8 PCUs when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `SteadyServerless`. This parameter is valid only for serverless clusters.\n"},"scaleMin":{"type":"integer","description":"The minimum number of PCUs per node for scaling. Valid values: 1 PCU to 31 PCUs when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `AgileServerless` and 0 PCU to 8 PCUs when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `SteadyServerless`. This parameter is valid only for serverless clusters.\n"},"scaleRoNumMax":{"type":"integer","description":"The maximum number of read-only nodes for scaling. Valid values: 0 to 15 when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `AgileServerless` and 0 to 7 when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `SteadyServerless`. This parameter is valid only for serverless clusters.\n"},"scaleRoNumMin":{"type":"integer","description":"The minimum number of read-only nodes for scaling. Valid values: 0 to 15 when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `AgileServerless` and 0 to 7 when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `SteadyServerless`. This parameter is valid only for serverless clusters.\n"},"secondsUntilAutoPause":{"type":"integer","description":"The detection period for No-activity Suspension. Valid values: 300 to 86,4005. Unit: seconds. The detection duration must be a multiple of 300 seconds. This parameter is valid only for serverless clusters.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The ID of the security group. Separate multiple security groups with commas (,). You can add a maximum of three security groups to a cluster.\n\u003e **NOTE:** Because of data backup and migration, change DB cluster type and storage would cost 15~20 minutes. Please make full preparation before changing them.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"This attribute has been deprecated from v1.130.0 and using \u003cspan pulumi-lang-nodejs=\"`dbClusterIpArray`\" pulumi-lang-dotnet=\"`DbClusterIpArray`\" pulumi-lang-go=\"`dbClusterIpArray`\" pulumi-lang-python=\"`db_cluster_ip_array`\" pulumi-lang-yaml=\"`dbClusterIpArray`\" pulumi-lang-java=\"`dbClusterIpArray`\"\u003e`db_cluster_ip_array`\u003c/span\u003e sub-element \u003cspan pulumi-lang-nodejs=\"`securityIps`\" pulumi-lang-dotnet=\"`SecurityIps`\" pulumi-lang-go=\"`securityIps`\" pulumi-lang-python=\"`security_ips`\" pulumi-lang-yaml=\"`securityIps`\" pulumi-lang-java=\"`securityIps`\"\u003e`security_ips`\u003c/span\u003e instead.\nIts value is same as \u003cspan pulumi-lang-nodejs=\"`dbClusterIpArray`\" pulumi-lang-dotnet=\"`DbClusterIpArray`\" pulumi-lang-go=\"`dbClusterIpArray`\" pulumi-lang-python=\"`db_cluster_ip_array`\" pulumi-lang-yaml=\"`dbClusterIpArray`\" pulumi-lang-java=\"`dbClusterIpArray`\"\u003e`db_cluster_ip_array`\u003c/span\u003e sub-element \u003cspan pulumi-lang-nodejs=\"`securityIps`\" pulumi-lang-dotnet=\"`SecurityIps`\" pulumi-lang-go=\"`securityIps`\" pulumi-lang-python=\"`security_ips`\" pulumi-lang-yaml=\"`securityIps`\" pulumi-lang-java=\"`securityIps`\"\u003e`security_ips`\u003c/span\u003e value and its\u003cspan pulumi-lang-nodejs=\" dbClusterIpArrayName \" pulumi-lang-dotnet=\" DbClusterIpArrayName \" pulumi-lang-go=\" dbClusterIpArrayName \" pulumi-lang-python=\" db_cluster_ip_array_name \" pulumi-lang-yaml=\" dbClusterIpArrayName \" pulumi-lang-java=\" dbClusterIpArrayName \"\u003e db_cluster_ip_array_name \u003c/span\u003eis \"default\".\n"},"serverlessRuleCpuEnlargeThreshold":{"type":"integer","description":"CPU upscale threshold. Valid values: 40 to 100. This parameter is valid only for serverless clusters.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`serverlessRuleCpuEnlargeThreshold`\" pulumi-lang-dotnet=\"`ServerlessRuleCpuEnlargeThreshold`\" pulumi-lang-go=\"`serverlessRuleCpuEnlargeThreshold`\" pulumi-lang-python=\"`serverless_rule_cpu_enlarge_threshold`\" pulumi-lang-yaml=\"`serverlessRuleCpuEnlargeThreshold`\" pulumi-lang-java=\"`serverlessRuleCpuEnlargeThreshold`\"\u003e`serverless_rule_cpu_enlarge_threshold`\u003c/span\u003e should be at least 30 greater than \u003cspan pulumi-lang-nodejs=\"`serverlessRuleCpuShrinkThreshold`\" pulumi-lang-dotnet=\"`ServerlessRuleCpuShrinkThreshold`\" pulumi-lang-go=\"`serverlessRuleCpuShrinkThreshold`\" pulumi-lang-python=\"`serverless_rule_cpu_shrink_threshold`\" pulumi-lang-yaml=\"`serverlessRuleCpuShrinkThreshold`\" pulumi-lang-java=\"`serverlessRuleCpuShrinkThreshold`\"\u003e`serverless_rule_cpu_shrink_threshold`\u003c/span\u003e.\n"},"serverlessRuleCpuShrinkThreshold":{"type":"integer","description":"CPU downscale threshold. Valid values: 10 to 100. This parameter is valid only for serverless clusters.\n"},"serverlessRuleMode":{"type":"string","description":"Elasticity sensitivity. Valid values: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e for standard and \u003cspan pulumi-lang-nodejs=\"`flexible`\" pulumi-lang-dotnet=\"`Flexible`\" pulumi-lang-go=\"`flexible`\" pulumi-lang-python=\"`flexible`\" pulumi-lang-yaml=\"`flexible`\" pulumi-lang-java=\"`flexible`\"\u003e`flexible`\u003c/span\u003e for sensitive. This parameter is valid only for serverless clusters.\n"},"serverlessSteadySwitch":{"type":"string","description":"Serverless steady-state switch. Valid values are `ON`, `OFF`. This parameter is valid only for serverless clusters.\n\u003e **NOTE:** When\u003cspan pulumi-lang-nodejs=\" serverlessSteadySwitch \" pulumi-lang-dotnet=\" ServerlessSteadySwitch \" pulumi-lang-go=\" serverlessSteadySwitch \" pulumi-lang-python=\" serverless_steady_switch \" pulumi-lang-yaml=\" serverlessSteadySwitch \" pulumi-lang-java=\" serverlessSteadySwitch \"\u003e serverless_steady_switch \u003c/span\u003eis `ON` and\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `SteadyServerless`, parameters \u003cspan pulumi-lang-nodejs=\"`scaleMin`\" pulumi-lang-dotnet=\"`ScaleMin`\" pulumi-lang-go=\"`scaleMin`\" pulumi-lang-python=\"`scale_min`\" pulumi-lang-yaml=\"`scaleMin`\" pulumi-lang-java=\"`scaleMin`\"\u003e`scale_min`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`scaleMax`\" pulumi-lang-dotnet=\"`ScaleMax`\" pulumi-lang-go=\"`scaleMax`\" pulumi-lang-python=\"`scale_max`\" pulumi-lang-yaml=\"`scaleMax`\" pulumi-lang-java=\"`scaleMax`\"\u003e`scale_max`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`scaleRoNumMin`\" pulumi-lang-dotnet=\"`ScaleRoNumMin`\" pulumi-lang-go=\"`scaleRoNumMin`\" pulumi-lang-python=\"`scale_ro_num_min`\" pulumi-lang-yaml=\"`scaleRoNumMin`\" pulumi-lang-java=\"`scaleRoNumMin`\"\u003e`scale_ro_num_min`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`scaleRoNumMax`\" pulumi-lang-dotnet=\"`ScaleRoNumMax`\" pulumi-lang-go=\"`scaleRoNumMax`\" pulumi-lang-python=\"`scale_ro_num_max`\" pulumi-lang-yaml=\"`scaleRoNumMax`\" pulumi-lang-java=\"`scaleRoNumMax`\"\u003e`scale_ro_num_max`\u003c/span\u003e are all required.\n"},"serverlessType":{"type":"string","description":"The type of the serverless cluster. Valid values `AgileServerless`, `SteadyServerless`. This parameter is valid only for serverless clusters.\n"},"sourceResourceId":{"type":"string","description":"The ID of the source RDS instance or the ID of the source PolarDB cluster. This parameter is required only when CreationOption is set to MigrationFromRDS, CloneFromRDS, or CloneFromPolarDB.Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `SourceResourceId`.\n"},"standbyAz":{"type":"string","description":"The availability zone where the hot standby cluster is stored, takes effect when \u003cspan pulumi-lang-nodejs=\"`hotStandbyCluster`\" pulumi-lang-dotnet=\"`HotStandbyCluster`\" pulumi-lang-go=\"`hotStandbyCluster`\" pulumi-lang-python=\"`hot_standby_cluster`\" pulumi-lang-yaml=\"`hotStandbyCluster`\" pulumi-lang-java=\"`hotStandbyCluster`\"\u003e`hot_standby_cluster`\u003c/span\u003e is `ON` or `EQUAL`.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`standbyAz`\" pulumi-lang-dotnet=\"`StandbyAz`\" pulumi-lang-go=\"`standbyAz`\" pulumi-lang-python=\"`standby_az`\" pulumi-lang-yaml=\"`standbyAz`\" pulumi-lang-java=\"`standbyAz`\"\u003e`standby_az`\u003c/span\u003e is required when \u003cspan pulumi-lang-nodejs=\"`hotStandbyCluster`\" pulumi-lang-dotnet=\"`HotStandbyCluster`\" pulumi-lang-go=\"`hotStandbyCluster`\" pulumi-lang-python=\"`hot_standby_cluster`\" pulumi-lang-yaml=\"`hotStandbyCluster`\" pulumi-lang-java=\"`hotStandbyCluster`\"\u003e`hot_standby_cluster`\u003c/span\u003e is `EQUAL`.\n"},"storagePayType":{"type":"string","description":"The billing method of the storage. Valid values `PostPaid`, `PrePaid`.\n","willReplaceOnChanges":true},"storageSpace":{"type":"integer","description":"Storage space charged by space (monthly package). Unit: GB.\n\u003e **NOTE:**  Valid values for PolarDB for MySQL Standard Edition: 20 to 32000. It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eare `PrePaid` ,`PostPaid`.\n\u003e **NOTE:**  Valid values for PolarDB for MySQL Enterprise Edition: 50 to 100000.It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`.\n"},"storageType":{"type":"string","description":"The storage type of the cluster. Enterprise storage type values are `PSL5`, `PSL4`. The standard version storage type values are `ESSDPL1`, `ESSDPL2`, `ESSDPL3`, `ESSDPL0`, `ESSDAUTOPL`. The standard version only supports MySQL and PostgreSQL.\n"},"strictConsistency":{"type":"string","description":"Whether the cluster has enabled strong data consistency across multiple zones. Valid values are `ON`, `OFF`. Available parameters can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1)\n","willReplaceOnChanges":true},"subCategory":{"type":"string","description":"The category of the cluster. Valid values are `Exclusive`, `General`. Only MySQL supports.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"targetDbRevisionVersionCode":{"type":"string","description":"The Version Code of the target version, whose parameter values can be obtained from the [DescribeDBClusterVersion](https://www.alibabacloud.com/help/en/polardb/latest/describedbclusterversion) interface.\n"},"tdeStatus":{"type":"string","description":"turn on TDE encryption. Valid values are `Enabled`, `Disabled`. Default to `Disabled`. TDE cannot be closed after it is turned on. \n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`tdeStatus`\" pulumi-lang-dotnet=\"`TdeStatus`\" pulumi-lang-go=\"`tdeStatus`\" pulumi-lang-python=\"`tde_status`\" pulumi-lang-yaml=\"`tdeStatus`\" pulumi-lang-java=\"`tdeStatus`\"\u003e`tde_status`\u003c/span\u003e Cannot modify after created when \u003cspan pulumi-lang-nodejs=\"`dbType`\" pulumi-lang-dotnet=\"`DbType`\" pulumi-lang-go=\"`dbType`\" pulumi-lang-python=\"`db_type`\" pulumi-lang-yaml=\"`dbType`\" pulumi-lang-java=\"`dbType`\"\u003e`db_type`\u003c/span\u003e is `PostgreSQL` or `Oracle`.\u003cspan pulumi-lang-nodejs=\"`tdeStatus`\" pulumi-lang-dotnet=\"`TdeStatus`\" pulumi-lang-go=\"`tdeStatus`\" pulumi-lang-python=\"`tde_status`\" pulumi-lang-yaml=\"`tdeStatus`\" pulumi-lang-java=\"`tdeStatus`\"\u003e`tde_status`\u003c/span\u003e only support modification from `Disabled` to `Enabled` when \u003cspan pulumi-lang-nodejs=\"`dbType`\" pulumi-lang-dotnet=\"`DbType`\" pulumi-lang-go=\"`dbType`\" pulumi-lang-python=\"`db_type`\" pulumi-lang-yaml=\"`dbType`\" pulumi-lang-java=\"`dbType`\"\u003e`db_type`\u003c/span\u003e is `MySQL`.\n"},"upgradeType":{"type":"string","description":"Version upgrade type. Valid values are PROXY, DB, ALL. PROXY means upgrading the proxy version, DB means upgrading the db version, ALL means upgrading both db and proxy versions simultaneously.\n"},"vpcId":{"type":"string","description":"The id of the VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC.\n\u003e **NOTE:** If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis not specified, system will get a vswitch belongs to the user automatically.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the DB cluster. it supports multiple zone.\n","willReplaceOnChanges":true}},"requiredInputs":["dbNodeClass","dbType","dbVersion"],"stateInputs":{"description":"Input properties used for looking up and filtering Cluster resources.\n","properties":{"allowShutDown":{"type":"string","description":"Specifies whether to enable the no-activity suspension feature. Default value: false. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. This parameter is valid only for serverless clusters.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an cluster, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid value:1, 2, 3, 6, 12, 24, 36, Default to 1.\n"},"backupRetentionPolicyOnClusterDeletion":{"type":"string","description":"The retention policy for the backup sets when you delete the cluster.  Valid values are `ALL`, `LATEST`, `NONE`. Value options can refer to the latest docs [DeleteDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/deletedbcluster-1)\n"},"cloneDataPoint":{"type":"string","description":"The time point of data to be cloned. Valid values are `LATEST`,`BackupID`,`Timestamp`.Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `CloneDataPoint`.\n\u003e **NOTE:** If CreationOption is set to CloneFromRDS, the value of this parameter must be `LATEST`. When clone to a historical backup set, you must specify a specific backup set ID. When clone to a specific point in time, specify a YYYY-MM-DDThh:mm:ssZ format UTC timestamp.\n"},"collectorStatus":{"type":"string","description":"Specifies whether to enable or disable SQL data collector. Valid values are `Enable`, `Disabled`.\n"},"compressStorage":{"type":"string","description":"Enable storage compression function. The value of this parameter is `ON`. Only MySQL supports.\n\u003e **NOTE:** When the value of\u003cspan pulumi-lang-nodejs=\" dbType \" pulumi-lang-dotnet=\" DbType \" pulumi-lang-go=\" dbType \" pulumi-lang-python=\" db_type \" pulumi-lang-yaml=\" dbType \" pulumi-lang-java=\" dbType \"\u003e db_type \u003c/span\u003eis not MySQL, the value of\u003cspan pulumi-lang-nodejs=\" creationOption \" pulumi-lang-dotnet=\" CreationOption \" pulumi-lang-go=\" creationOption \" pulumi-lang-python=\" creation_option \" pulumi-lang-yaml=\" creationOption \" pulumi-lang-java=\" creationOption \"\u003e creation_option \u003c/span\u003eis neither empty nor Normal, and the value of\u003cspan pulumi-lang-nodejs=\" storageType \" pulumi-lang-dotnet=\" StorageType \" pulumi-lang-go=\" storageType \" pulumi-lang-python=\" storage_type \" pulumi-lang-yaml=\" storageType \" pulumi-lang-java=\" storageType \"\u003e storage_type \u003c/span\u003eis not PSL4, this field will be ignored.\n"},"connectionString":{"type":"string","description":"(Available since 1.81.0) PolarDB cluster connection string.\n"},"createTime":{"type":"string","description":"(Available since 1.204.1) PolarDB cluster creation time.\n"},"creationCategory":{"type":"string","description":"The edition of the PolarDB service. Valid values are `Normal`,`Basic`,`ArchiveNormal`,`NormalMultimaster`,`SENormal`.Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `CreationCategory`.\n\u003e **NOTE:** You can set this parameter to Basic only when DBType is set to MySQL and DBVersion is set to 5.6, 5.7, or 8.0. You can set this parameter to Archive only when DBType is set to MySQL and DBVersion is set to 8.0. From version 1.188.0, \u003cspan pulumi-lang-nodejs=\"`creationCategory`\" pulumi-lang-dotnet=\"`CreationCategory`\" pulumi-lang-go=\"`creationCategory`\" pulumi-lang-python=\"`creation_category`\" pulumi-lang-yaml=\"`creationCategory`\" pulumi-lang-java=\"`creationCategory`\"\u003e`creation_category`\u003c/span\u003e can be set to `NormalMultimaster`. From version 1.203.0, \u003cspan pulumi-lang-nodejs=\"`creationCategory`\" pulumi-lang-dotnet=\"`CreationCategory`\" pulumi-lang-go=\"`creationCategory`\" pulumi-lang-python=\"`creation_category`\" pulumi-lang-yaml=\"`creationCategory`\" pulumi-lang-java=\"`creationCategory`\"\u003e`creation_category`\u003c/span\u003e can be set to `SENormal`.\n","willReplaceOnChanges":true},"creationOption":{"type":"string","description":"The method that is used to create a cluster. Valid values are `Normal`,`CloneFromPolarDB`,`CloneFromRDS`,`MigrationFromRDS`,`CreateGdnStandby`,`RecoverFromRecyclebin`,`UpgradeFromPolarDB`. **NOTE:** From version 1.233.0, \u003cspan pulumi-lang-nodejs=\"`creationOption`\" pulumi-lang-dotnet=\"`CreationOption`\" pulumi-lang-go=\"`creationOption`\" pulumi-lang-python=\"`creation_option`\" pulumi-lang-yaml=\"`creationOption`\" pulumi-lang-java=\"`creationOption`\"\u003e`creation_option`\u003c/span\u003e can be set to `RecoverFromRecyclebin`. From version 1.255.0, \u003cspan pulumi-lang-nodejs=\"`creationOption`\" pulumi-lang-dotnet=\"`CreationOption`\" pulumi-lang-go=\"`creationOption`\" pulumi-lang-python=\"`creation_option`\" pulumi-lang-yaml=\"`creationOption`\" pulumi-lang-java=\"`creationOption`\"\u003e`creation_option`\u003c/span\u003e can be set to `UpgradeFromPolarDB`. Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `CreationOption`.\n* \u003e **NOTE:** The default value is Normal. If DBType is set to MySQL and DBVersion is set to 5.6 or 5.7, this parameter can be set to CloneFromRDS or MigrationFromRDS. If DBType is set to MySQL and DBVersion is set to 8.0, this parameter can be set to CreateGdnStandby. If \u003cspan pulumi-lang-nodejs=\"`creationOption`\" pulumi-lang-dotnet=\"`CreationOption`\" pulumi-lang-go=\"`creationOption`\" pulumi-lang-python=\"`creation_option`\" pulumi-lang-yaml=\"`creationOption`\" pulumi-lang-java=\"`creationOption`\"\u003e`creation_option`\u003c/span\u003e is RecoverFromRecyclebin, you need to pass in the released source PolarDB cluster ID for this parameter. The DBType of the cluster recovered from the recycle bin and the source cluster must be consistent. For example, if the source cluster is MySQL 8.0, the cluster recovered from the recycle bin also needs to have its DBType set to MySQL and DBVersion set to 8.0.\n"},"dbClusterIpArrays":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/ClusterDbClusterIpArray:ClusterDbClusterIpArray"},"description":"db_cluster_ip_array defines how users can send requests to your API. See \u003cspan pulumi-lang-nodejs=\"`dbClusterIpArray`\" pulumi-lang-dotnet=\"`DbClusterIpArray`\" pulumi-lang-go=\"`dbClusterIpArray`\" pulumi-lang-python=\"`db_cluster_ip_array`\" pulumi-lang-yaml=\"`dbClusterIpArray`\" pulumi-lang-java=\"`dbClusterIpArray`\"\u003e`db_cluster_ip_array`\u003c/span\u003e below.\n"},"dbMinorVersion":{"type":"string","description":"Database minor version. Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `DBMinorVersion`. This parameter takes effect only when \u003cspan pulumi-lang-nodejs=\"`dbType`\" pulumi-lang-dotnet=\"`DbType`\" pulumi-lang-go=\"`dbType`\" pulumi-lang-python=\"`db_type`\" pulumi-lang-yaml=\"`dbType`\" pulumi-lang-java=\"`dbType`\"\u003e`db_type`\u003c/span\u003e is MySQL and \u003cspan pulumi-lang-nodejs=\"`dbVersion`\" pulumi-lang-dotnet=\"`DbVersion`\" pulumi-lang-go=\"`dbVersion`\" pulumi-lang-python=\"`db_version`\" pulumi-lang-yaml=\"`dbVersion`\" pulumi-lang-java=\"`dbVersion`\"\u003e`db_version`\u003c/span\u003e is 8.0.\n","willReplaceOnChanges":true},"dbNodeClass":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eof cluster node.\n\u003e **NOTE:** Node specifications are divided into cluster version, single node version and History Library version. They can't change each other, but the general specification and exclusive specification of cluster version can be changed.\nFrom version 1.204.0, If you need to create a Serverless cluster with MySQL , \u003cspan pulumi-lang-nodejs=\"`dbNodeClass`\" pulumi-lang-dotnet=\"`DbNodeClass`\" pulumi-lang-go=\"`dbNodeClass`\" pulumi-lang-python=\"`db_node_class`\" pulumi-lang-yaml=\"`dbNodeClass`\" pulumi-lang-java=\"`dbNodeClass`\"\u003e`db_node_class`\u003c/span\u003e can be set to `polar.mysql.sl.small` for enterprise edition, and `polar.mysql.sl.small.c` for standard edition.\nFrom version 1.229.1, If you need to create a Serverless cluster with PostgreSQL, \u003cspan pulumi-lang-nodejs=\"`dbNodeClass`\" pulumi-lang-dotnet=\"`DbNodeClass`\" pulumi-lang-go=\"`dbNodeClass`\" pulumi-lang-python=\"`db_node_class`\" pulumi-lang-yaml=\"`dbNodeClass`\" pulumi-lang-java=\"`dbNodeClass`\"\u003e`db_node_class`\u003c/span\u003e can be set to `polar.pg.sl.small` for enterprise edition, and `polar.pg.sl.small.c` for standard edition. Region can refer to the latest docs(https://help.aliyun.com/zh/polardb/polardb-for-postgresql/the-public-preview-of-polardb-for-postgresql-serverless-ends?spm=a2c4g.11186623.0.0.2e9f6cf0B4rIfC).\n"},"dbNodeCount":{"type":"integer","description":"Number of the PolarDB cluster nodes, default is 2(Each cluster must contain at least a primary node and a read-only node). Add/remove nodes by modifying this parameter, valid values: [2~16].  \n\u003e **NOTE:** To avoid adding or removing multiple read-only nodes by mistake, the system allows you to add or remove one read-only node at a time.\n"},"dbNodeId":{"type":"string","description":"The ID of the node or node subscript. Node subscript values: 1 to 15.\n"},"dbNodeNum":{"type":"integer","description":"The number of Standard and Enterprise Edition nodes. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e for Standard Edition, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e for Enterprise Edition. Valid values are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e. From version 1.235.0, Valid values for PolarDB for MySQL Standard Edition: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e. Valid values for PolarDB for MySQL Enterprise Edition: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\"\u003e`16`\u003c/span\u003e.\n\u003e **NOTE:** This parameter only takes effect on creation. To further manage target db node number, please refer to parameter \u003cspan pulumi-lang-nodejs=\"`dbNodeCount`\" pulumi-lang-dotnet=\"`DbNodeCount`\" pulumi-lang-go=\"`dbNodeCount`\" pulumi-lang-python=\"`db_node_count`\" pulumi-lang-yaml=\"`dbNodeCount`\" pulumi-lang-java=\"`dbNodeCount`\"\u003e`db_node_count`\u003c/span\u003e.\n"},"dbRevisionVersionLists":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/ClusterDbRevisionVersionList:ClusterDbRevisionVersionList"},"description":"(Available since v1.216.0) The\u003cspan pulumi-lang-nodejs=\" dbRevisionVersionList \" pulumi-lang-dotnet=\" DbRevisionVersionList \" pulumi-lang-go=\" dbRevisionVersionList \" pulumi-lang-python=\" db_revision_version_list \" pulumi-lang-yaml=\" dbRevisionVersionList \" pulumi-lang-java=\" dbRevisionVersionList \"\u003e db_revision_version_list \u003c/span\u003esupports the following:\n"},"dbType":{"type":"string","description":"Database type. Value options: MySQL, Oracle, PostgreSQL.\n","willReplaceOnChanges":true},"dbVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `DBVersion`.\n","willReplaceOnChanges":true},"defaultTimeZone":{"type":"string","description":"The time zone of the cluster. You can set the parameter to a value that is on the hour from -12:00 to +13:00 based on UTC. Example: 00:00. Default value: SYSTEM. This value indicates that the time zone of the cluster is the same as the time zone of the region.\n\u003e **NOTE:** This parameter is valid only when the DBType parameter is set to MySQL.\n"},"deletionLock":{"type":"integer","description":"turn on table deletion_lock. Valid values are 0, 1. 1 means to open the cluster protection lock, 0 means to close the cluster protection lock\n\u003e **NOTE:**  Cannot modify after created when \u003cspan pulumi-lang-nodejs=\"`payType`\" pulumi-lang-dotnet=\"`PayType`\" pulumi-lang-go=\"`payType`\" pulumi-lang-python=\"`pay_type`\" pulumi-lang-yaml=\"`payType`\" pulumi-lang-java=\"`payType`\"\u003e`pay_type`\u003c/span\u003e is `PrePaid` .\u003cspan pulumi-lang-nodejs=\"`deletionLock`\" pulumi-lang-dotnet=\"`DeletionLock`\" pulumi-lang-go=\"`deletionLock`\" pulumi-lang-python=\"`deletion_lock`\" pulumi-lang-yaml=\"`deletionLock`\" pulumi-lang-java=\"`deletionLock`\"\u003e`deletion_lock`\u003c/span\u003e the cluster protection lock can be turned on or off when \u003cspan pulumi-lang-nodejs=\"`payType`\" pulumi-lang-dotnet=\"`PayType`\" pulumi-lang-go=\"`payType`\" pulumi-lang-python=\"`pay_type`\" pulumi-lang-yaml=\"`payType`\" pulumi-lang-java=\"`payType`\"\u003e`pay_type`\u003c/span\u003e is `PostPaid`.\n"},"description":{"type":"string","description":"The description of cluster.\n"},"enableDynamodb":{"type":"boolean","description":"Specifies whether to enable DynamoDB compatibility. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\u003e **NOTE:** This parameter is valid only when the DBType parameter is set to PostgreSQL.\n"},"encryptNewTables":{"type":"string","description":"turn on table auto encryption. Valid values are `ON`, `OFF`. Only MySQL 8.0 supports. \n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`encryptNewTables`\" pulumi-lang-dotnet=\"`EncryptNewTables`\" pulumi-lang-go=\"`encryptNewTables`\" pulumi-lang-python=\"`encrypt_new_tables`\" pulumi-lang-yaml=\"`encryptNewTables`\" pulumi-lang-java=\"`encryptNewTables`\"\u003e`encrypt_new_tables`\u003c/span\u003e Polardb MySQL 8.0 cluster, after TDE and Automatic Encryption are enabled, all newly created tables are automatically encrypted in the cluster.\n"},"encryptionKey":{"type":"string","description":"The ID of the custom key. \u003cspan pulumi-lang-nodejs=\"`encryptionKey`\" pulumi-lang-dotnet=\"`EncryptionKey`\" pulumi-lang-go=\"`encryptionKey`\" pulumi-lang-python=\"`encryption_key`\" pulumi-lang-yaml=\"`encryptionKey`\" pulumi-lang-java=\"`encryptionKey`\"\u003e`encryption_key`\u003c/span\u003e cannot be modified after TDE is opened.\n"},"fromTimeService":{"type":"string","description":"Immediate or scheduled kernel version upgrade. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. True means immediate execution, False means scheduled execution.\n"},"gdnId":{"type":"string","description":"The ID of the global database network (GDN).\n\u003e **NOTE:** This parameter is required if CreationOption is set to CreateGdnStandby.\n"},"globalSecurityGroupLists":{"type":"array","items":{"type":"string"},"description":"The list of global security ip group ids.\n"},"hotReplicaMode":{"type":"string","description":"Indicates whether the hot standby feature is enabled. Valid values are `ON`, `OFF`. Only MySQL supports.\n"},"hotStandbyCluster":{"type":"string","description":"Whether to enable the hot standby cluster. Valid values are `ON`, `OFF`, `EQUAL`.\n\u003e **NOTE:** From version 1.249.0, \u003cspan pulumi-lang-nodejs=\"`hotStandbyCluster`\" pulumi-lang-dotnet=\"`HotStandbyCluster`\" pulumi-lang-go=\"`hotStandbyCluster`\" pulumi-lang-python=\"`hot_standby_cluster`\" pulumi-lang-yaml=\"`hotStandbyCluster`\" pulumi-lang-java=\"`hotStandbyCluster`\"\u003e`hot_standby_cluster`\u003c/span\u003e can be set to `EQUAL`, and this value is only valid for MySQL.\n","willReplaceOnChanges":true},"imciSwitch":{"type":"string","description":"Specifies whether to enable the In-Memory Column Index (IMCI) feature. Valid values are `ON`, `OFF`.\n\u003e **NOTE:**  Only polardb MySQL Cluster version is available. The cluster with minor version number of 8.0.1 supports the column index feature, and the specific kernel version must be 8.0.1.1.22 or above.\n\u003e **NOTE:**  The single node, the single node version of the history library, and the cluster version of the history library do not support column save indexes.\n"},"loosePolarLogBin":{"type":"string","description":"Enable the Binlog function. Default value: `OFF`. Valid values are `OFF`, `ON`.\n\u003e **NOTE:** This parameter is valid only MySQL Engine supports.\n"},"looseXengine":{"type":"string","description":"Specifies whether to enable X-Engine. Valid values are `ON`, `OFF`.\n\u003e **NOTE:** This parameter takes effect only if you do not set \u003cspan pulumi-lang-nodejs=\"`creationOption`\" pulumi-lang-dotnet=\"`CreationOption`\" pulumi-lang-go=\"`creationOption`\" pulumi-lang-python=\"`creation_option`\" pulumi-lang-yaml=\"`creationOption`\" pulumi-lang-java=\"`creationOption`\"\u003e`creation_option`\u003c/span\u003e to CreateGdnStandby and you set \u003cspan pulumi-lang-nodejs=\"`dbType`\" pulumi-lang-dotnet=\"`DbType`\" pulumi-lang-go=\"`dbType`\" pulumi-lang-python=\"`db_type`\" pulumi-lang-yaml=\"`dbType`\" pulumi-lang-java=\"`dbType`\"\u003e`db_type`\u003c/span\u003e to MySQL and \u003cspan pulumi-lang-nodejs=\"`dbVersion`\" pulumi-lang-dotnet=\"`DbVersion`\" pulumi-lang-go=\"`dbVersion`\" pulumi-lang-python=\"`db_version`\" pulumi-lang-yaml=\"`dbVersion`\" pulumi-lang-java=\"`dbVersion`\"\u003e`db_version`\u003c/span\u003e to 8.0. To enable X-Engine on a node, make sure that the memory of the node is greater than or equal to 8 GB in size.\n"},"looseXengineUseMemoryPct":{"type":"integer","description":"Set the ratio to enable the X-Engine storage engine. Valid values: 10 to 90.\n\u003e **NOTE:** When the parameter \u003cspan pulumi-lang-nodejs=\"`looseXengine`\" pulumi-lang-dotnet=\"`LooseXengine`\" pulumi-lang-go=\"`looseXengine`\" pulumi-lang-python=\"`loose_xengine`\" pulumi-lang-yaml=\"`looseXengine`\" pulumi-lang-java=\"`looseXengine`\"\u003e`loose_xengine`\u003c/span\u003e is ON, \u003cspan pulumi-lang-nodejs=\"`looseXengineUseMemoryPct`\" pulumi-lang-dotnet=\"`LooseXengineUseMemoryPct`\" pulumi-lang-go=\"`looseXengineUseMemoryPct`\" pulumi-lang-python=\"`loose_xengine_use_memory_pct`\" pulumi-lang-yaml=\"`looseXengineUseMemoryPct`\" pulumi-lang-java=\"`looseXengineUseMemoryPct`\"\u003e`loose_xengine_use_memory_pct`\u003c/span\u003e takes effect.\n"},"lowerCaseTableNames":{"type":"integer","description":"Specifies whether the table names are case-sensitive. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.  Valid values are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n\u003e **NOTE:** This parameter is valid only when the DBType parameter is set to MySQL.\n","willReplaceOnChanges":true},"maintainTime":{"type":"string","description":"Maintainable time period format of the instance: HH:MMZ-HH:MMZ (UTC time)\n"},"modifyType":{"type":"string","description":"Use as \u003cspan pulumi-lang-nodejs=\"`dbNodeClass`\" pulumi-lang-dotnet=\"`DbNodeClass`\" pulumi-lang-go=\"`dbNodeClass`\" pulumi-lang-python=\"`db_node_class`\" pulumi-lang-yaml=\"`dbNodeClass`\" pulumi-lang-java=\"`dbNodeClass`\"\u003e`db_node_class`\u003c/span\u003e change class, define upgrade or downgrade. Valid values are `Upgrade`, `Downgrade`, Default to `Upgrade`.\n"},"parameterGroupId":{"type":"string","description":"The ID of the parameter template\n\u003e **NOTE:** You can call the [DescribeParameterGroups](https://www.alibabacloud.com/help/en/polardb/latest/describeparametergroups) operation to query the details of all parameter templates of a specified region, such as the ID of a parameter template.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/ClusterParameter:ClusterParameter"},"description":"Set of parameters needs to be set after DB cluster was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/en/polardb/latest/modifydbclusterparameters) .See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"payType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`, Default to `PostPaid`.\n"},"period":{"type":"integer","description":"The duration that you will buy DB cluster (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid values: [1~9], 12, 24, 36.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"plannedEndTime":{"type":"string","description":"The latest time to start executing the target scheduled task. The format is YYYY-MM-DDThh: mm: ssZ (UTC).\n\u003e **NOTE:** The latest time must be 30 minutes or more later than the start time. If PlannedStartTime is set but this parameter is not specified, the latest time to execute the target task defaults to the start time+30 minutes. For example, when the PlannedStartTime is set to 2021-01-14T09:00:00Z and this parameter is left blank, the target task will start executing at the latest on 2021-01-14T09:30:00Z.\n"},"plannedStartTime":{"type":"string","description":"The earliest time to start executing a scheduled (i.e. within the target time period) kernel version upgrade task. The format is YYYY-MM-DDThh: mm: ssZ (UTC).\n\u003e **NOTE:** The starting time range is any time point within the next 24 hours. For example, the current time is 2021-01-14T09:00:00Z, and the allowed start time range for filling in here is 2021-01-14T09:00:00Z~2021-01-15T09:00:00Z. If this parameter is left blank, the kernel version upgrade task will be executed immediately by default.\n"},"port":{"type":"string","description":"(Available since 1.196.0) PolarDB cluster connection port.\n"},"provisionedIops":{"type":"string","description":"The provisioned read/write IOPS of the ESSD AutoPL disk. Valid values: 0 to min{50,000, 1,000 × Capacity - Baseline IOPS}. Baseline IOPS = min{1,800 + 50 × Capacity, 50,000}.\n\u003e **NOTE:** This parameter is available only if the StorageType parameter is set to ESSDAUTOPL.\n"},"proxyClass":{"type":"string","description":"The specifications of the Standard Edition PolarProxy. Available parameters can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1)\n\u003e **NOTE:** This parameter is valid only for standard edition clusters.\n"},"proxyType":{"type":"string","description":"The type of PolarProxy. Valid values are `EXCLUSIVE` `GENERAL`.\n\u003e **NOTE:** This parameter is valid for both standard and enterprise clusters.\n"},"renewalStatus":{"type":"string","description":"Valid values are `AutoRenewal`, `Normal`, `NotRenewal`, Default to `NotRenewal`.\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the PolarDB cluster belongs. If not specified, then it belongs to the default resource group.\n\u003e **NOTE:** From version 1.250.0, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e can be modified.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the RAM role. A RAM role is a virtual identity that you can create within your Alibaba Cloud account. For more information see [RAM role overview](https://www.alibabacloud.com/help/en/resource-access-management/latest/ram-role-overview).\n"},"scaleApRoNumMax":{"type":"integer","description":"Number of Read-only Columnar Nodes. Valid values: 0 to 7. This parameter is valid only for serverless clusters. This parameter is required when there are column nodes that support steady-state serverless.\n"},"scaleApRoNumMin":{"type":"integer","description":"Number of Read-only Columnar Nodes. Valid values: 0 to 7. This parameter is valid only for serverless clusters. This parameter is required when there are column nodes that support steady-state serverless.\n"},"scaleMax":{"type":"integer","description":"The maximum number of PCUs per node for scaling. Valid values: 1 PCU to 32 PCUs when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `AgileServerless` and 0 PCU to 8 PCUs when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `SteadyServerless`. This parameter is valid only for serverless clusters.\n"},"scaleMin":{"type":"integer","description":"The minimum number of PCUs per node for scaling. Valid values: 1 PCU to 31 PCUs when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `AgileServerless` and 0 PCU to 8 PCUs when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `SteadyServerless`. This parameter is valid only for serverless clusters.\n"},"scaleRoNumMax":{"type":"integer","description":"The maximum number of read-only nodes for scaling. Valid values: 0 to 15 when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `AgileServerless` and 0 to 7 when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `SteadyServerless`. This parameter is valid only for serverless clusters.\n"},"scaleRoNumMin":{"type":"integer","description":"The minimum number of read-only nodes for scaling. Valid values: 0 to 15 when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `AgileServerless` and 0 to 7 when\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `SteadyServerless`. This parameter is valid only for serverless clusters.\n"},"secondsUntilAutoPause":{"type":"integer","description":"The detection period for No-activity Suspension. Valid values: 300 to 86,4005. Unit: seconds. The detection duration must be a multiple of 300 seconds. This parameter is valid only for serverless clusters.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The ID of the security group. Separate multiple security groups with commas (,). You can add a maximum of three security groups to a cluster.\n\u003e **NOTE:** Because of data backup and migration, change DB cluster type and storage would cost 15~20 minutes. Please make full preparation before changing them.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"This attribute has been deprecated from v1.130.0 and using \u003cspan pulumi-lang-nodejs=\"`dbClusterIpArray`\" pulumi-lang-dotnet=\"`DbClusterIpArray`\" pulumi-lang-go=\"`dbClusterIpArray`\" pulumi-lang-python=\"`db_cluster_ip_array`\" pulumi-lang-yaml=\"`dbClusterIpArray`\" pulumi-lang-java=\"`dbClusterIpArray`\"\u003e`db_cluster_ip_array`\u003c/span\u003e sub-element \u003cspan pulumi-lang-nodejs=\"`securityIps`\" pulumi-lang-dotnet=\"`SecurityIps`\" pulumi-lang-go=\"`securityIps`\" pulumi-lang-python=\"`security_ips`\" pulumi-lang-yaml=\"`securityIps`\" pulumi-lang-java=\"`securityIps`\"\u003e`security_ips`\u003c/span\u003e instead.\nIts value is same as \u003cspan pulumi-lang-nodejs=\"`dbClusterIpArray`\" pulumi-lang-dotnet=\"`DbClusterIpArray`\" pulumi-lang-go=\"`dbClusterIpArray`\" pulumi-lang-python=\"`db_cluster_ip_array`\" pulumi-lang-yaml=\"`dbClusterIpArray`\" pulumi-lang-java=\"`dbClusterIpArray`\"\u003e`db_cluster_ip_array`\u003c/span\u003e sub-element \u003cspan pulumi-lang-nodejs=\"`securityIps`\" pulumi-lang-dotnet=\"`SecurityIps`\" pulumi-lang-go=\"`securityIps`\" pulumi-lang-python=\"`security_ips`\" pulumi-lang-yaml=\"`securityIps`\" pulumi-lang-java=\"`securityIps`\"\u003e`security_ips`\u003c/span\u003e value and its\u003cspan pulumi-lang-nodejs=\" dbClusterIpArrayName \" pulumi-lang-dotnet=\" DbClusterIpArrayName \" pulumi-lang-go=\" dbClusterIpArrayName \" pulumi-lang-python=\" db_cluster_ip_array_name \" pulumi-lang-yaml=\" dbClusterIpArrayName \" pulumi-lang-java=\" dbClusterIpArrayName \"\u003e db_cluster_ip_array_name \u003c/span\u003eis \"default\".\n"},"serverlessRuleCpuEnlargeThreshold":{"type":"integer","description":"CPU upscale threshold. Valid values: 40 to 100. This parameter is valid only for serverless clusters.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`serverlessRuleCpuEnlargeThreshold`\" pulumi-lang-dotnet=\"`ServerlessRuleCpuEnlargeThreshold`\" pulumi-lang-go=\"`serverlessRuleCpuEnlargeThreshold`\" pulumi-lang-python=\"`serverless_rule_cpu_enlarge_threshold`\" pulumi-lang-yaml=\"`serverlessRuleCpuEnlargeThreshold`\" pulumi-lang-java=\"`serverlessRuleCpuEnlargeThreshold`\"\u003e`serverless_rule_cpu_enlarge_threshold`\u003c/span\u003e should be at least 30 greater than \u003cspan pulumi-lang-nodejs=\"`serverlessRuleCpuShrinkThreshold`\" pulumi-lang-dotnet=\"`ServerlessRuleCpuShrinkThreshold`\" pulumi-lang-go=\"`serverlessRuleCpuShrinkThreshold`\" pulumi-lang-python=\"`serverless_rule_cpu_shrink_threshold`\" pulumi-lang-yaml=\"`serverlessRuleCpuShrinkThreshold`\" pulumi-lang-java=\"`serverlessRuleCpuShrinkThreshold`\"\u003e`serverless_rule_cpu_shrink_threshold`\u003c/span\u003e.\n"},"serverlessRuleCpuShrinkThreshold":{"type":"integer","description":"CPU downscale threshold. Valid values: 10 to 100. This parameter is valid only for serverless clusters.\n"},"serverlessRuleMode":{"type":"string","description":"Elasticity sensitivity. Valid values: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e for standard and \u003cspan pulumi-lang-nodejs=\"`flexible`\" pulumi-lang-dotnet=\"`Flexible`\" pulumi-lang-go=\"`flexible`\" pulumi-lang-python=\"`flexible`\" pulumi-lang-yaml=\"`flexible`\" pulumi-lang-java=\"`flexible`\"\u003e`flexible`\u003c/span\u003e for sensitive. This parameter is valid only for serverless clusters.\n"},"serverlessSteadySwitch":{"type":"string","description":"Serverless steady-state switch. Valid values are `ON`, `OFF`. This parameter is valid only for serverless clusters.\n\u003e **NOTE:** When\u003cspan pulumi-lang-nodejs=\" serverlessSteadySwitch \" pulumi-lang-dotnet=\" ServerlessSteadySwitch \" pulumi-lang-go=\" serverlessSteadySwitch \" pulumi-lang-python=\" serverless_steady_switch \" pulumi-lang-yaml=\" serverlessSteadySwitch \" pulumi-lang-java=\" serverlessSteadySwitch \"\u003e serverless_steady_switch \u003c/span\u003eis `ON` and\u003cspan pulumi-lang-nodejs=\" serverlessType \" pulumi-lang-dotnet=\" ServerlessType \" pulumi-lang-go=\" serverlessType \" pulumi-lang-python=\" serverless_type \" pulumi-lang-yaml=\" serverlessType \" pulumi-lang-java=\" serverlessType \"\u003e serverless_type \u003c/span\u003eis `SteadyServerless`, parameters \u003cspan pulumi-lang-nodejs=\"`scaleMin`\" pulumi-lang-dotnet=\"`ScaleMin`\" pulumi-lang-go=\"`scaleMin`\" pulumi-lang-python=\"`scale_min`\" pulumi-lang-yaml=\"`scaleMin`\" pulumi-lang-java=\"`scaleMin`\"\u003e`scale_min`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`scaleMax`\" pulumi-lang-dotnet=\"`ScaleMax`\" pulumi-lang-go=\"`scaleMax`\" pulumi-lang-python=\"`scale_max`\" pulumi-lang-yaml=\"`scaleMax`\" pulumi-lang-java=\"`scaleMax`\"\u003e`scale_max`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`scaleRoNumMin`\" pulumi-lang-dotnet=\"`ScaleRoNumMin`\" pulumi-lang-go=\"`scaleRoNumMin`\" pulumi-lang-python=\"`scale_ro_num_min`\" pulumi-lang-yaml=\"`scaleRoNumMin`\" pulumi-lang-java=\"`scaleRoNumMin`\"\u003e`scale_ro_num_min`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`scaleRoNumMax`\" pulumi-lang-dotnet=\"`ScaleRoNumMax`\" pulumi-lang-go=\"`scaleRoNumMax`\" pulumi-lang-python=\"`scale_ro_num_max`\" pulumi-lang-yaml=\"`scaleRoNumMax`\" pulumi-lang-java=\"`scaleRoNumMax`\"\u003e`scale_ro_num_max`\u003c/span\u003e are all required.\n"},"serverlessType":{"type":"string","description":"The type of the serverless cluster. Valid values `AgileServerless`, `SteadyServerless`. This parameter is valid only for serverless clusters.\n"},"sourceResourceId":{"type":"string","description":"The ID of the source RDS instance or the ID of the source PolarDB cluster. This parameter is required only when CreationOption is set to MigrationFromRDS, CloneFromRDS, or CloneFromPolarDB.Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `SourceResourceId`.\n"},"standbyAz":{"type":"string","description":"The availability zone where the hot standby cluster is stored, takes effect when \u003cspan pulumi-lang-nodejs=\"`hotStandbyCluster`\" pulumi-lang-dotnet=\"`HotStandbyCluster`\" pulumi-lang-go=\"`hotStandbyCluster`\" pulumi-lang-python=\"`hot_standby_cluster`\" pulumi-lang-yaml=\"`hotStandbyCluster`\" pulumi-lang-java=\"`hotStandbyCluster`\"\u003e`hot_standby_cluster`\u003c/span\u003e is `ON` or `EQUAL`.\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`standbyAz`\" pulumi-lang-dotnet=\"`StandbyAz`\" pulumi-lang-go=\"`standbyAz`\" pulumi-lang-python=\"`standby_az`\" pulumi-lang-yaml=\"`standbyAz`\" pulumi-lang-java=\"`standbyAz`\"\u003e`standby_az`\u003c/span\u003e is required when \u003cspan pulumi-lang-nodejs=\"`hotStandbyCluster`\" pulumi-lang-dotnet=\"`HotStandbyCluster`\" pulumi-lang-go=\"`hotStandbyCluster`\" pulumi-lang-python=\"`hot_standby_cluster`\" pulumi-lang-yaml=\"`hotStandbyCluster`\" pulumi-lang-java=\"`hotStandbyCluster`\"\u003e`hot_standby_cluster`\u003c/span\u003e is `EQUAL`.\n"},"status":{"type":"string","description":"(Available since 1.204.1) PolarDB cluster status.\n"},"storagePayType":{"type":"string","description":"The billing method of the storage. Valid values `PostPaid`, `PrePaid`.\n","willReplaceOnChanges":true},"storageSpace":{"type":"integer","description":"Storage space charged by space (monthly package). Unit: GB.\n\u003e **NOTE:**  Valid values for PolarDB for MySQL Standard Edition: 20 to 32000. It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eare `PrePaid` ,`PostPaid`.\n\u003e **NOTE:**  Valid values for PolarDB for MySQL Enterprise Edition: 50 to 100000.It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`.\n"},"storageType":{"type":"string","description":"The storage type of the cluster. Enterprise storage type values are `PSL5`, `PSL4`. The standard version storage type values are `ESSDPL1`, `ESSDPL2`, `ESSDPL3`, `ESSDPL0`, `ESSDAUTOPL`. The standard version only supports MySQL and PostgreSQL.\n"},"strictConsistency":{"type":"string","description":"Whether the cluster has enabled strong data consistency across multiple zones. Valid values are `ON`, `OFF`. Available parameters can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1)\n","willReplaceOnChanges":true},"subCategory":{"type":"string","description":"The category of the cluster. Valid values are `Exclusive`, `General`. Only MySQL supports.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"targetDbRevisionVersionCode":{"type":"string","description":"The Version Code of the target version, whose parameter values can be obtained from the [DescribeDBClusterVersion](https://www.alibabacloud.com/help/en/polardb/latest/describedbclusterversion) interface.\n"},"tdeRegion":{"type":"string","description":"(Available since 1.200.0) The region where the TDE key resides.\n\u003e **NOTE:** TDE can be enabled on clusters that have joined a global database network (GDN). After TDE is enabled on the primary cluster in a GDN, TDE is enabled on the secondary clusters in the GDN by default. The key used by the secondary clusters and the region for the key resides must be the same as the primary cluster. The region of the key cannot be modified.\n\u003e **NOTE:** You cannot enable TDE for the secondary clusters in a GDN. Used to view user KMS activation status.\n"},"tdeStatus":{"type":"string","description":"turn on TDE encryption. Valid values are `Enabled`, `Disabled`. Default to `Disabled`. TDE cannot be closed after it is turned on. \n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`tdeStatus`\" pulumi-lang-dotnet=\"`TdeStatus`\" pulumi-lang-go=\"`tdeStatus`\" pulumi-lang-python=\"`tde_status`\" pulumi-lang-yaml=\"`tdeStatus`\" pulumi-lang-java=\"`tdeStatus`\"\u003e`tde_status`\u003c/span\u003e Cannot modify after created when \u003cspan pulumi-lang-nodejs=\"`dbType`\" pulumi-lang-dotnet=\"`DbType`\" pulumi-lang-go=\"`dbType`\" pulumi-lang-python=\"`db_type`\" pulumi-lang-yaml=\"`dbType`\" pulumi-lang-java=\"`dbType`\"\u003e`db_type`\u003c/span\u003e is `PostgreSQL` or `Oracle`.\u003cspan pulumi-lang-nodejs=\"`tdeStatus`\" pulumi-lang-dotnet=\"`TdeStatus`\" pulumi-lang-go=\"`tdeStatus`\" pulumi-lang-python=\"`tde_status`\" pulumi-lang-yaml=\"`tdeStatus`\" pulumi-lang-java=\"`tdeStatus`\"\u003e`tde_status`\u003c/span\u003e only support modification from `Disabled` to `Enabled` when \u003cspan pulumi-lang-nodejs=\"`dbType`\" pulumi-lang-dotnet=\"`DbType`\" pulumi-lang-go=\"`dbType`\" pulumi-lang-python=\"`db_type`\" pulumi-lang-yaml=\"`dbType`\" pulumi-lang-java=\"`dbType`\"\u003e`db_type`\u003c/span\u003e is `MySQL`.\n"},"upgradeType":{"type":"string","description":"Version upgrade type. Valid values are PROXY, DB, ALL. PROXY means upgrading the proxy version, DB means upgrading the db version, ALL means upgrading both db and proxy versions simultaneously.\n"},"vpcId":{"type":"string","description":"The id of the VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC.\n\u003e **NOTE:** If\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eis not specified, system will get a vswitch belongs to the user automatically.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The Zone to launch the DB cluster. it supports multiple zone.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:polardb/clusterEndpoint:ClusterEndpoint":{"description":"Provides a PolarDB endpoint resource to manage cluster endpoint of PolarDB cluster.\n\n\u003e **NOTE:** Available since v1.217.0\n\n\u003e **NOTE:** The default cluster endpoint can not be created or deleted manually.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.polardb.getNodeClasses({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n    category: \"Normal\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.classes?.[0]?.zoneId),\n    vswitchName: \"terraform-example\",\n});\nconst defaultCluster = new alicloud.polardb.Cluster(\"default\", {\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    dbNodeClass: _default.then(_default =\u003e _default.classes?.[0]?.supportedEngines?.[0]?.availableResources?.[0]?.dbNodeClass),\n    payType: \"PostPaid\",\n    vswitchId: defaultSwitch.id,\n    description: \"terraform-example\",\n});\nconst defaultClusterEndpoint = new alicloud.polardb.ClusterEndpoint(\"default\", {dbClusterId: defaultCluster.id});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.polardb.get_node_classes(db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    category=\"Normal\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.classes[0].zone_id,\n    vswitch_name=\"terraform-example\")\ndefault_cluster = alicloud.polardb.Cluster(\"default\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    db_node_class=default.classes[0].supported_engines[0].available_resources[0].db_node_class,\n    pay_type=\"PostPaid\",\n    vswitch_id=default_switch.id,\n    description=\"terraform-example\")\ndefault_cluster_endpoint = alicloud.polardb.ClusterEndpoint(\"default\", db_cluster_id=default_cluster.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        Category = \"Normal\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var defaultCluster = new AliCloud.PolarDB.Cluster(\"default\", new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        DbNodeClass = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.SupportedEngines[0]?.AvailableResources[0]?.DbNodeClass)),\n        PayType = \"PostPaid\",\n        VswitchId = defaultSwitch.Id,\n        Description = \"terraform-example\",\n    });\n\n    var defaultClusterEndpoint = new AliCloud.PolarDB.ClusterEndpoint(\"default\", new()\n    {\n        DbClusterId = defaultCluster.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\n\t\t\tDbType:    pulumi.StringRef(\"MySQL\"),\n\t\t\tDbVersion: pulumi.StringRef(\"8.0\"),\n\t\t\tPayType:   \"PostPaid\",\n\t\t\tCategory:  pulumi.StringRef(\"Normal\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Classes[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := polardb.NewCluster(ctx, \"default\", \u0026polardb.ClusterArgs{\n\t\t\tDbType:      pulumi.String(\"MySQL\"),\n\t\t\tDbVersion:   pulumi.String(\"8.0\"),\n\t\t\tDbNodeClass: pulumi.String(_default.Classes[0].SupportedEngines[0].AvailableResources[0].DbNodeClass),\n\t\t\tPayType:     pulumi.String(\"PostPaid\"),\n\t\t\tVswitchId:   defaultSwitch.ID(),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = polardb.NewClusterEndpoint(ctx, \"default\", \u0026polardb.ClusterEndpointArgs{\n\t\t\tDbClusterId: defaultCluster.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.ClusterEndpoint;\nimport com.pulumi.alicloud.polardb.ClusterEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .category(\"Normal\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.classes()[0].zoneId())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .dbNodeClass(default_.classes()[0].supportedEngines()[0].availableResources()[0].dbNodeClass())\n            .payType(\"PostPaid\")\n            .vswitchId(defaultSwitch.id())\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultClusterEndpoint = new ClusterEndpoint(\"defaultClusterEndpoint\", ClusterEndpointArgs.builder()\n            .dbClusterId(defaultCluster.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.classes[0].zoneId}\n      vswitchName: terraform-example\n  defaultCluster:\n    type: alicloud:polardb:Cluster\n    name: default\n    properties:\n      dbType: MySQL\n      dbVersion: '8.0'\n      dbNodeClass: ${default.classes[0].supportedEngines[0].availableResources[0].dbNodeClass}\n      payType: PostPaid\n      vswitchId: ${defaultSwitch.id}\n      description: terraform-example\n  defaultClusterEndpoint:\n    type: alicloud:polardb:ClusterEndpoint\n    name: default\n    properties:\n      dbClusterId: ${defaultCluster.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n        payType: PostPaid\n        category: Normal\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPolarDB endpoint can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:polardb/clusterEndpoint:ClusterEndpoint example pc-abc123456:pe-abc123456\n```\n\n","properties":{"autoAddNewNodes":{"type":"string","description":"Whether the new node automatically joins the default cluster address. Valid values are `Enable`, `Disable`. When creating a new custom endpoint, default to `Disable`.\n"},"connectionPrefix":{"type":"string","description":"Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n"},"dbEndpointDescription":{"type":"string","description":"The name of the endpoint.\n"},"dbEndpointId":{"type":"string","description":"The ID of the cluster endpoint.\n"},"endpointConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"The advanced settings of the endpoint of Apsara PolarDB clusters are in JSON format. Including the settings of consistency level, transaction splitting, connection pool, and offload reads from primary node. For more details, see the [description of EndpointConfig in the Request parameters table for details](https://www.alibabacloud.com/help/doc-detail/116593.htm).\n"},"endpointType":{"type":"string","description":"Type of endpoint.\n"},"netType":{"type":"string","description":"The network type of the endpoint address.\n"},"nodes":{"type":"array","items":{"type":"string"},"description":"Node id list for endpoint configuration. At least 2 nodes if specified, or if the cluster has more than 3 nodes, read-only endpoint is allowed to mount only one node. Default is all nodes.\n"},"port":{"type":"string","description":"Port of the specified endpoint. Valid values: 3000 to 5999.\n"},"readWriteMode":{"type":"string","description":"Read or write mode. Valid values are `ReadWrite`, `ReadOnly`. When creating a new custom endpoint, default to `ReadOnly`.\n"},"sslAutoRotate":{"type":"string","description":"Specifies whether automatic rotation of SSL certificates is enabled. Valid values: `Enable`,`Disable`.\n**NOTE:** For a PolarDB for MySQL cluster, this parameter is required, and only one connection string in each endpoint can enable the ssl, for other notes, see [Configure SSL encryption](https://www.alibabacloud.com/help/doc-detail/153182.htm).\nFor a PolarDB for PostgreSQL cluster or a PolarDB-O cluster, this parameter is not required, by default, SSL encryption is enabled for all endpoints.\n"},"sslCertificateUrl":{"type":"string","description":"The specifies SSL certificate download link.\n"},"sslConnectionString":{"type":"string","description":"The SSL connection string.\n"},"sslEnabled":{"type":"string","description":"Specifies how to modify the SSL encryption status. Valid values: `Disable`, `Enable`, `Update`.\n"},"sslExpireTime":{"type":"string","description":"The time when the SSL certificate expires. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"}},"required":["autoAddNewNodes","connectionPrefix","dbClusterId","dbEndpointId","endpointConfig","endpointType","nodes","port","readWriteMode","sslCertificateUrl","sslConnectionString","sslExpireTime"],"inputProperties":{"autoAddNewNodes":{"type":"string","description":"Whether the new node automatically joins the default cluster address. Valid values are `Enable`, `Disable`. When creating a new custom endpoint, default to `Disable`.\n"},"connectionPrefix":{"type":"string","description":"Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n","willReplaceOnChanges":true},"dbEndpointDescription":{"type":"string","description":"The name of the endpoint.\n"},"endpointConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"The advanced settings of the endpoint of Apsara PolarDB clusters are in JSON format. Including the settings of consistency level, transaction splitting, connection pool, and offload reads from primary node. For more details, see the [description of EndpointConfig in the Request parameters table for details](https://www.alibabacloud.com/help/doc-detail/116593.htm).\n"},"netType":{"type":"string","description":"The network type of the endpoint address.\n"},"nodes":{"type":"array","items":{"type":"string"},"description":"Node id list for endpoint configuration. At least 2 nodes if specified, or if the cluster has more than 3 nodes, read-only endpoint is allowed to mount only one node. Default is all nodes.\n"},"port":{"type":"string","description":"Port of the specified endpoint. Valid values: 3000 to 5999.\n"},"readWriteMode":{"type":"string","description":"Read or write mode. Valid values are `ReadWrite`, `ReadOnly`. When creating a new custom endpoint, default to `ReadOnly`.\n"},"sslAutoRotate":{"type":"string","description":"Specifies whether automatic rotation of SSL certificates is enabled. Valid values: `Enable`,`Disable`.\n**NOTE:** For a PolarDB for MySQL cluster, this parameter is required, and only one connection string in each endpoint can enable the ssl, for other notes, see [Configure SSL encryption](https://www.alibabacloud.com/help/doc-detail/153182.htm).\nFor a PolarDB for PostgreSQL cluster or a PolarDB-O cluster, this parameter is not required, by default, SSL encryption is enabled for all endpoints.\n"},"sslEnabled":{"type":"string","description":"Specifies how to modify the SSL encryption status. Valid values: `Disable`, `Enable`, `Update`.\n"}},"requiredInputs":["dbClusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering ClusterEndpoint resources.\n","properties":{"autoAddNewNodes":{"type":"string","description":"Whether the new node automatically joins the default cluster address. Valid values are `Enable`, `Disable`. When creating a new custom endpoint, default to `Disable`.\n"},"connectionPrefix":{"type":"string","description":"Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n","willReplaceOnChanges":true},"dbEndpointDescription":{"type":"string","description":"The name of the endpoint.\n"},"dbEndpointId":{"type":"string","description":"The ID of the cluster endpoint.\n"},"endpointConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"The advanced settings of the endpoint of Apsara PolarDB clusters are in JSON format. Including the settings of consistency level, transaction splitting, connection pool, and offload reads from primary node. For more details, see the [description of EndpointConfig in the Request parameters table for details](https://www.alibabacloud.com/help/doc-detail/116593.htm).\n"},"endpointType":{"type":"string","description":"Type of endpoint.\n"},"netType":{"type":"string","description":"The network type of the endpoint address.\n"},"nodes":{"type":"array","items":{"type":"string"},"description":"Node id list for endpoint configuration. At least 2 nodes if specified, or if the cluster has more than 3 nodes, read-only endpoint is allowed to mount only one node. Default is all nodes.\n"},"port":{"type":"string","description":"Port of the specified endpoint. Valid values: 3000 to 5999.\n"},"readWriteMode":{"type":"string","description":"Read or write mode. Valid values are `ReadWrite`, `ReadOnly`. When creating a new custom endpoint, default to `ReadOnly`.\n"},"sslAutoRotate":{"type":"string","description":"Specifies whether automatic rotation of SSL certificates is enabled. Valid values: `Enable`,`Disable`.\n**NOTE:** For a PolarDB for MySQL cluster, this parameter is required, and only one connection string in each endpoint can enable the ssl, for other notes, see [Configure SSL encryption](https://www.alibabacloud.com/help/doc-detail/153182.htm).\nFor a PolarDB for PostgreSQL cluster or a PolarDB-O cluster, this parameter is not required, by default, SSL encryption is enabled for all endpoints.\n"},"sslCertificateUrl":{"type":"string","description":"The specifies SSL certificate download link.\n"},"sslConnectionString":{"type":"string","description":"The SSL connection string.\n"},"sslEnabled":{"type":"string","description":"Specifies how to modify the SSL encryption status. Valid values: `Disable`, `Enable`, `Update`.\n"},"sslExpireTime":{"type":"string","description":"The time when the SSL certificate expires. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"}},"type":"object"}},"alicloud:polardb/database:Database":{"description":"Provides a Polar Db Database resource.\n\nManage linked databases.\n\nFor information about Polar Db Database and how to use it, see [What is Database](https://next.api.alibabacloud.com/document/polardb/2017-08-01/CreateDatabase).\n\n\u003e **NOTE:** Available since v1.66.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.polardb.getNodeClasses({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n    category: \"Normal\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.classes?.[0]?.zoneId),\n    vswitchName: \"terraform-example\",\n});\nconst defaultCluster = new alicloud.polardb.Cluster(\"default\", {\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    dbNodeClass: _default.then(_default =\u003e _default.classes?.[0]?.supportedEngines?.[0]?.availableResources?.[0]?.dbNodeClass),\n    payType: \"PostPaid\",\n    vswitchId: defaultSwitch.id,\n    description: \"terraform-example\",\n});\nconst defaultDatabase = new alicloud.polardb.Database(\"default\", {\n    dbClusterId: defaultCluster.id,\n    dbName: \"terraform-example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.polardb.get_node_classes(db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    category=\"Normal\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.classes[0].zone_id,\n    vswitch_name=\"terraform-example\")\ndefault_cluster = alicloud.polardb.Cluster(\"default\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    db_node_class=default.classes[0].supported_engines[0].available_resources[0].db_node_class,\n    pay_type=\"PostPaid\",\n    vswitch_id=default_switch.id,\n    description=\"terraform-example\")\ndefault_database = alicloud.polardb.Database(\"default\",\n    db_cluster_id=default_cluster.id,\n    db_name=\"terraform-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        Category = \"Normal\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var defaultCluster = new AliCloud.PolarDB.Cluster(\"default\", new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        DbNodeClass = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.SupportedEngines[0]?.AvailableResources[0]?.DbNodeClass)),\n        PayType = \"PostPaid\",\n        VswitchId = defaultSwitch.Id,\n        Description = \"terraform-example\",\n    });\n\n    var defaultDatabase = new AliCloud.PolarDB.Database(\"default\", new()\n    {\n        DbClusterId = defaultCluster.Id,\n        DbName = \"terraform-example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\n\t\t\tDbType:    pulumi.StringRef(\"MySQL\"),\n\t\t\tDbVersion: pulumi.StringRef(\"8.0\"),\n\t\t\tPayType:   \"PostPaid\",\n\t\t\tCategory:  pulumi.StringRef(\"Normal\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Classes[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := polardb.NewCluster(ctx, \"default\", \u0026polardb.ClusterArgs{\n\t\t\tDbType:      pulumi.String(\"MySQL\"),\n\t\t\tDbVersion:   pulumi.String(\"8.0\"),\n\t\t\tDbNodeClass: pulumi.String(_default.Classes[0].SupportedEngines[0].AvailableResources[0].DbNodeClass),\n\t\t\tPayType:     pulumi.String(\"PostPaid\"),\n\t\t\tVswitchId:   defaultSwitch.ID(),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = polardb.NewDatabase(ctx, \"default\", \u0026polardb.DatabaseArgs{\n\t\t\tDbClusterId: defaultCluster.ID(),\n\t\t\tDbName:      pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.Database;\nimport com.pulumi.alicloud.polardb.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .category(\"Normal\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.classes()[0].zoneId())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .dbNodeClass(default_.classes()[0].supportedEngines()[0].availableResources()[0].dbNodeClass())\n            .payType(\"PostPaid\")\n            .vswitchId(defaultSwitch.id())\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultDatabase = new Database(\"defaultDatabase\", DatabaseArgs.builder()\n            .dbClusterId(defaultCluster.id())\n            .dbName(\"terraform-example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.classes[0].zoneId}\n      vswitchName: terraform-example\n  defaultCluster:\n    type: alicloud:polardb:Cluster\n    name: default\n    properties:\n      dbType: MySQL\n      dbVersion: '8.0'\n      dbNodeClass: ${default.classes[0].supportedEngines[0].availableResources[0].dbNodeClass}\n      payType: PostPaid\n      vswitchId: ${defaultSwitch.id}\n      description: terraform-example\n  defaultDatabase:\n    type: alicloud:polardb:Database\n    name: default\n    properties:\n      dbClusterId: ${defaultCluster.id}\n      dbName: terraform-example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n        payType: PostPaid\n        category: Normal\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPolar Db Database can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:polardb/database:Database example \u003cdb_cluster_id\u003e:\u003cdb_name\u003e\n```\n\n","properties":{"accountName":{"type":"string","description":"The name of the account that is authorized to access the database. **NOTE:** From version 1.265.0, \u003cspan pulumi-lang-nodejs=\"`accountName`\" pulumi-lang-dotnet=\"`AccountName`\" pulumi-lang-go=\"`accountName`\" pulumi-lang-python=\"`account_name`\" pulumi-lang-yaml=\"`accountName`\" pulumi-lang-java=\"`accountName`\"\u003e`account_name`\u003c/span\u003e can be modified. However, only PolarDB for PostgreSQL (Compatible with Oracle) and PolarDB for PostgreSQL cluster can be modified.\n"},"characterSetName":{"type":"string","description":"The character set that is used by the cluster. For more information, see [Character set tables](https://www.alibabacloud.com/help/en/doc-detail/99716.html).\n"},"collate":{"type":"string","description":"The language that defines the collation rules in the database.\n\u003e **NOTE:** The locale must be compatible with the character set set set by \u003cspan pulumi-lang-nodejs=\"`characterSetName`\" pulumi-lang-dotnet=\"`CharacterSetName`\" pulumi-lang-go=\"`characterSetName`\" pulumi-lang-python=\"`character_set_name`\" pulumi-lang-yaml=\"`characterSetName`\" pulumi-lang-java=\"`characterSetName`\"\u003e`character_set_name`\u003c/span\u003e. This parameter is required for a PolarDB for PostgreSQL (Compatible with Oracle) or PolarDB for PostgreSQL cluster. This parameter is optional for a PolarDB for MySQL cluster.\n"},"ctype":{"type":"string","description":"The language that indicates the character type of the database.\n\u003e **NOTE:** The language must be compatible with the character set that is specified by \u003cspan pulumi-lang-nodejs=\"`characterSetName`\" pulumi-lang-dotnet=\"`CharacterSetName`\" pulumi-lang-go=\"`characterSetName`\" pulumi-lang-python=\"`character_set_name`\" pulumi-lang-yaml=\"`characterSetName`\" pulumi-lang-java=\"`characterSetName`\"\u003e`character_set_name`\u003c/span\u003e. The value that you specify must be the same as the value of \u003cspan pulumi-lang-nodejs=\"`collate`\" pulumi-lang-dotnet=\"`Collate`\" pulumi-lang-go=\"`collate`\" pulumi-lang-python=\"`collate`\" pulumi-lang-yaml=\"`collate`\" pulumi-lang-java=\"`collate`\"\u003e`collate`\u003c/span\u003e. This parameter is required for PolarDB for PostgreSQL (Compatible with Oracle) clusters or PolarDB for PostgreSQL clusters. This parameter is optional for PolarDB for MySQL clusters.This parameter is required for a PolarDB for PostgreSQL (Compatible with Oracle) or PolarDB for PostgreSQL cluster. This parameter is optional for a PolarDB for MySQL cluster.\n"},"dbClusterId":{"type":"string","description":"The ID of cluster.\n"},"dbDescription":{"type":"string","description":"The description of the database. The description must meet the following requirements:\n- It cannot start with `http://` or `https://`.\n- It must be 2 to 256 characters in length.\n"},"dbName":{"type":"string","description":"The name of the database. It may consist of lower case letters, numbers, and underlines, and must start with a letterand have no more than 64 characters.\n"},"status":{"type":"string","description":"(Available since v1.265.0) The state of the database.\n"}},"required":["characterSetName","dbClusterId","dbDescription","dbName","status"],"inputProperties":{"accountName":{"type":"string","description":"The name of the account that is authorized to access the database. **NOTE:** From version 1.265.0, \u003cspan pulumi-lang-nodejs=\"`accountName`\" pulumi-lang-dotnet=\"`AccountName`\" pulumi-lang-go=\"`accountName`\" pulumi-lang-python=\"`account_name`\" pulumi-lang-yaml=\"`accountName`\" pulumi-lang-java=\"`accountName`\"\u003e`account_name`\u003c/span\u003e can be modified. However, only PolarDB for PostgreSQL (Compatible with Oracle) and PolarDB for PostgreSQL cluster can be modified.\n"},"characterSetName":{"type":"string","description":"The character set that is used by the cluster. For more information, see [Character set tables](https://www.alibabacloud.com/help/en/doc-detail/99716.html).\n","willReplaceOnChanges":true},"collate":{"type":"string","description":"The language that defines the collation rules in the database.\n\u003e **NOTE:** The locale must be compatible with the character set set set by \u003cspan pulumi-lang-nodejs=\"`characterSetName`\" pulumi-lang-dotnet=\"`CharacterSetName`\" pulumi-lang-go=\"`characterSetName`\" pulumi-lang-python=\"`character_set_name`\" pulumi-lang-yaml=\"`characterSetName`\" pulumi-lang-java=\"`characterSetName`\"\u003e`character_set_name`\u003c/span\u003e. This parameter is required for a PolarDB for PostgreSQL (Compatible with Oracle) or PolarDB for PostgreSQL cluster. This parameter is optional for a PolarDB for MySQL cluster.\n"},"ctype":{"type":"string","description":"The language that indicates the character type of the database.\n\u003e **NOTE:** The language must be compatible with the character set that is specified by \u003cspan pulumi-lang-nodejs=\"`characterSetName`\" pulumi-lang-dotnet=\"`CharacterSetName`\" pulumi-lang-go=\"`characterSetName`\" pulumi-lang-python=\"`character_set_name`\" pulumi-lang-yaml=\"`characterSetName`\" pulumi-lang-java=\"`characterSetName`\"\u003e`character_set_name`\u003c/span\u003e. The value that you specify must be the same as the value of \u003cspan pulumi-lang-nodejs=\"`collate`\" pulumi-lang-dotnet=\"`Collate`\" pulumi-lang-go=\"`collate`\" pulumi-lang-python=\"`collate`\" pulumi-lang-yaml=\"`collate`\" pulumi-lang-java=\"`collate`\"\u003e`collate`\u003c/span\u003e. This parameter is required for PolarDB for PostgreSQL (Compatible with Oracle) clusters or PolarDB for PostgreSQL clusters. This parameter is optional for PolarDB for MySQL clusters.This parameter is required for a PolarDB for PostgreSQL (Compatible with Oracle) or PolarDB for PostgreSQL cluster. This parameter is optional for a PolarDB for MySQL cluster.\n"},"dbClusterId":{"type":"string","description":"The ID of cluster.\n","willReplaceOnChanges":true},"dbDescription":{"type":"string","description":"The description of the database. The description must meet the following requirements:\n- It cannot start with `http://` or `https://`.\n- It must be 2 to 256 characters in length.\n"},"dbName":{"type":"string","description":"The name of the database. It may consist of lower case letters, numbers, and underlines, and must start with a letterand have no more than 64 characters.\n","willReplaceOnChanges":true}},"requiredInputs":["dbClusterId","dbName"],"stateInputs":{"description":"Input properties used for looking up and filtering Database resources.\n","properties":{"accountName":{"type":"string","description":"The name of the account that is authorized to access the database. **NOTE:** From version 1.265.0, \u003cspan pulumi-lang-nodejs=\"`accountName`\" pulumi-lang-dotnet=\"`AccountName`\" pulumi-lang-go=\"`accountName`\" pulumi-lang-python=\"`account_name`\" pulumi-lang-yaml=\"`accountName`\" pulumi-lang-java=\"`accountName`\"\u003e`account_name`\u003c/span\u003e can be modified. However, only PolarDB for PostgreSQL (Compatible with Oracle) and PolarDB for PostgreSQL cluster can be modified.\n"},"characterSetName":{"type":"string","description":"The character set that is used by the cluster. For more information, see [Character set tables](https://www.alibabacloud.com/help/en/doc-detail/99716.html).\n","willReplaceOnChanges":true},"collate":{"type":"string","description":"The language that defines the collation rules in the database.\n\u003e **NOTE:** The locale must be compatible with the character set set set by \u003cspan pulumi-lang-nodejs=\"`characterSetName`\" pulumi-lang-dotnet=\"`CharacterSetName`\" pulumi-lang-go=\"`characterSetName`\" pulumi-lang-python=\"`character_set_name`\" pulumi-lang-yaml=\"`characterSetName`\" pulumi-lang-java=\"`characterSetName`\"\u003e`character_set_name`\u003c/span\u003e. This parameter is required for a PolarDB for PostgreSQL (Compatible with Oracle) or PolarDB for PostgreSQL cluster. This parameter is optional for a PolarDB for MySQL cluster.\n"},"ctype":{"type":"string","description":"The language that indicates the character type of the database.\n\u003e **NOTE:** The language must be compatible with the character set that is specified by \u003cspan pulumi-lang-nodejs=\"`characterSetName`\" pulumi-lang-dotnet=\"`CharacterSetName`\" pulumi-lang-go=\"`characterSetName`\" pulumi-lang-python=\"`character_set_name`\" pulumi-lang-yaml=\"`characterSetName`\" pulumi-lang-java=\"`characterSetName`\"\u003e`character_set_name`\u003c/span\u003e. The value that you specify must be the same as the value of \u003cspan pulumi-lang-nodejs=\"`collate`\" pulumi-lang-dotnet=\"`Collate`\" pulumi-lang-go=\"`collate`\" pulumi-lang-python=\"`collate`\" pulumi-lang-yaml=\"`collate`\" pulumi-lang-java=\"`collate`\"\u003e`collate`\u003c/span\u003e. This parameter is required for PolarDB for PostgreSQL (Compatible with Oracle) clusters or PolarDB for PostgreSQL clusters. This parameter is optional for PolarDB for MySQL clusters.This parameter is required for a PolarDB for PostgreSQL (Compatible with Oracle) or PolarDB for PostgreSQL cluster. This parameter is optional for a PolarDB for MySQL cluster.\n"},"dbClusterId":{"type":"string","description":"The ID of cluster.\n","willReplaceOnChanges":true},"dbDescription":{"type":"string","description":"The description of the database. The description must meet the following requirements:\n- It cannot start with `http://` or `https://`.\n- It must be 2 to 256 characters in length.\n"},"dbName":{"type":"string","description":"The name of the database. It may consist of lower case letters, numbers, and underlines, and must start with a letterand have no more than 64 characters.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"(Available since v1.265.0) The state of the database.\n"}},"type":"object"}},"alicloud:polardb/endpoint:Endpoint":{"description":"Provides a PolarDB endpoint resource to manage custom endpoint of PolarDB cluster.\n\n\u003e **NOTE:** Available since v1.80.0.\n\u003e **NOTE:** After v1.80.0 and before v1.121.0, you can only use this resource to manage the custom endpoint. Since v1.121.0, you also can import the primary endpoint and the cluster endpoint, to modify their ssl status and so on.\n\u003e **NOTE:** The primary endpoint and the default cluster endpoint can not be created or deleted manually.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.polardb.getNodeClasses({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n    category: \"Normal\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.classes?.[0]?.zoneId),\n    vswitchName: \"terraform-example\",\n});\nconst defaultCluster = new alicloud.polardb.Cluster(\"default\", {\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    dbNodeClass: _default.then(_default =\u003e _default.classes?.[0]?.supportedEngines?.[0]?.availableResources?.[0]?.dbNodeClass),\n    payType: \"PostPaid\",\n    vswitchId: defaultSwitch.id,\n    description: \"terraform-example\",\n});\nconst defaultEndpoint = new alicloud.polardb.Endpoint(\"default\", {\n    dbClusterId: defaultCluster.id,\n    endpointType: \"Custom\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.polardb.get_node_classes(db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    category=\"Normal\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.classes[0].zone_id,\n    vswitch_name=\"terraform-example\")\ndefault_cluster = alicloud.polardb.Cluster(\"default\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    db_node_class=default.classes[0].supported_engines[0].available_resources[0].db_node_class,\n    pay_type=\"PostPaid\",\n    vswitch_id=default_switch.id,\n    description=\"terraform-example\")\ndefault_endpoint = alicloud.polardb.Endpoint(\"default\",\n    db_cluster_id=default_cluster.id,\n    endpoint_type=\"Custom\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        Category = \"Normal\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var defaultCluster = new AliCloud.PolarDB.Cluster(\"default\", new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        DbNodeClass = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.SupportedEngines[0]?.AvailableResources[0]?.DbNodeClass)),\n        PayType = \"PostPaid\",\n        VswitchId = defaultSwitch.Id,\n        Description = \"terraform-example\",\n    });\n\n    var defaultEndpoint = new AliCloud.PolarDB.Endpoint(\"default\", new()\n    {\n        DbClusterId = defaultCluster.Id,\n        EndpointType = \"Custom\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\n\t\t\tDbType:    pulumi.StringRef(\"MySQL\"),\n\t\t\tDbVersion: pulumi.StringRef(\"8.0\"),\n\t\t\tPayType:   \"PostPaid\",\n\t\t\tCategory:  pulumi.StringRef(\"Normal\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Classes[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := polardb.NewCluster(ctx, \"default\", \u0026polardb.ClusterArgs{\n\t\t\tDbType:      pulumi.String(\"MySQL\"),\n\t\t\tDbVersion:   pulumi.String(\"8.0\"),\n\t\t\tDbNodeClass: pulumi.String(_default.Classes[0].SupportedEngines[0].AvailableResources[0].DbNodeClass),\n\t\t\tPayType:     pulumi.String(\"PostPaid\"),\n\t\t\tVswitchId:   defaultSwitch.ID(),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = polardb.NewEndpoint(ctx, \"default\", \u0026polardb.EndpointArgs{\n\t\t\tDbClusterId:  defaultCluster.ID(),\n\t\t\tEndpointType: pulumi.String(\"Custom\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.Endpoint;\nimport com.pulumi.alicloud.polardb.EndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .category(\"Normal\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.classes()[0].zoneId())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .dbNodeClass(default_.classes()[0].supportedEngines()[0].availableResources()[0].dbNodeClass())\n            .payType(\"PostPaid\")\n            .vswitchId(defaultSwitch.id())\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultEndpoint = new Endpoint(\"defaultEndpoint\", EndpointArgs.builder()\n            .dbClusterId(defaultCluster.id())\n            .endpointType(\"Custom\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.classes[0].zoneId}\n      vswitchName: terraform-example\n  defaultCluster:\n    type: alicloud:polardb:Cluster\n    name: default\n    properties:\n      dbType: MySQL\n      dbVersion: '8.0'\n      dbNodeClass: ${default.classes[0].supportedEngines[0].availableResources[0].dbNodeClass}\n      payType: PostPaid\n      vswitchId: ${defaultSwitch.id}\n      description: terraform-example\n  defaultEndpoint:\n    type: alicloud:polardb:Endpoint\n    name: default\n    properties:\n      dbClusterId: ${defaultCluster.id}\n      endpointType: Custom\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n        payType: PostPaid\n        category: Normal\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPolarDB endpoint can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:polardb/endpoint:Endpoint example pc-abc123456:pe-abc123456\n```\n\n","properties":{"autoAddNewNodes":{"type":"string","description":"Whether the new node automatically joins the default cluster address. Valid values are `Enable`, `Disable`. When creating a new custom endpoint, default to `Disable`.\n"},"connectionPrefix":{"type":"string","description":"Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n"},"dbEndpointDescription":{"type":"string","description":"The name of the endpoint.\n"},"dbEndpointId":{"type":"string","description":"(Available since v1.161.0) The ID of the cluster endpoint.\n"},"endpointConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"The advanced settings of the endpoint of Apsara PolarDB clusters are in JSON format. Including the settings of consistency level, transaction splitting, connection pool, and offload reads from primary node. For more details, see the [description of EndpointConfig in the Request parameters table for details](https://www.alibabacloud.com/help/doc-detail/116593.htm).\n"},"endpointType":{"type":"string","description":"Type of the endpoint. Before v1.121.0, it only can be `Custom`. since v1.121.0, `Custom`, `Cluster`, `Primary` are valid, default to `Custom`. However when creating a new endpoint, it also only can be `Custom`.\n"},"netType":{"type":"string","description":"The network type of the endpoint address.\n"},"nodes":{"type":"array","items":{"type":"string"},"description":"Node id list for endpoint configuration. At least 2 nodes if specified, or if the cluster has more than 3 nodes, read-only endpoint is allowed to mount only one node. Default is all nodes.\n"},"port":{"type":"string","description":"Port of the specified endpoint. Valid values: 3000 to 5999.\n"},"readWriteMode":{"type":"string","description":"Read or write mode. Valid values are `ReadWrite`, `ReadOnly`. When creating a new custom endpoint, default to `ReadOnly`.\n"},"sslAutoRotate":{"type":"string","description":"Specifies whether automatic rotation of SSL certificates is enabled. Valid values: `Enable`,`Disable`.\n"},"sslCertificateUrl":{"type":"string","description":"Specifies SSL certificate download link.  \n**NOTE:** For a PolarDB for MySQL cluster, this parameter is required, and only one connection string in each endpoint can enable the ssl, for other notes, see [Configure SSL encryption](https://www.alibabacloud.com/help/doc-detail/153182.htm).\nFor a PolarDB for PostgreSQL cluster or a PolarDB-O cluster, this parameter is not required, by default, SSL encryption is enabled for all endpoints.\n"},"sslConnectionString":{"type":"string","description":"(Available since v1.121.0) The SSL connection string.\n"},"sslEnabled":{"type":"string","description":"Specifies how to modify the SSL encryption status. Valid values: `Disable`, `Enable`, `Update`.\n"},"sslExpireTime":{"type":"string","description":"(Available since v1.121.0) The time when the SSL certificate expires. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"}},"required":["autoAddNewNodes","connectionPrefix","dbClusterId","dbEndpointId","endpointConfig","nodes","port","readWriteMode","sslCertificateUrl","sslConnectionString","sslExpireTime"],"inputProperties":{"autoAddNewNodes":{"type":"string","description":"Whether the new node automatically joins the default cluster address. Valid values are `Enable`, `Disable`. When creating a new custom endpoint, default to `Disable`.\n"},"connectionPrefix":{"type":"string","description":"Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n","willReplaceOnChanges":true},"dbEndpointDescription":{"type":"string","description":"The name of the endpoint.\n"},"endpointConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"The advanced settings of the endpoint of Apsara PolarDB clusters are in JSON format. Including the settings of consistency level, transaction splitting, connection pool, and offload reads from primary node. For more details, see the [description of EndpointConfig in the Request parameters table for details](https://www.alibabacloud.com/help/doc-detail/116593.htm).\n"},"endpointType":{"type":"string","description":"Type of the endpoint. Before v1.121.0, it only can be `Custom`. since v1.121.0, `Custom`, `Cluster`, `Primary` are valid, default to `Custom`. However when creating a new endpoint, it also only can be `Custom`.\n","willReplaceOnChanges":true},"netType":{"type":"string","description":"The network type of the endpoint address.\n"},"nodes":{"type":"array","items":{"type":"string"},"description":"Node id list for endpoint configuration. At least 2 nodes if specified, or if the cluster has more than 3 nodes, read-only endpoint is allowed to mount only one node. Default is all nodes.\n"},"port":{"type":"string","description":"Port of the specified endpoint. Valid values: 3000 to 5999.\n"},"readWriteMode":{"type":"string","description":"Read or write mode. Valid values are `ReadWrite`, `ReadOnly`. When creating a new custom endpoint, default to `ReadOnly`.\n"},"sslAutoRotate":{"type":"string","description":"Specifies whether automatic rotation of SSL certificates is enabled. Valid values: `Enable`,`Disable`.\n"},"sslEnabled":{"type":"string","description":"Specifies how to modify the SSL encryption status. Valid values: `Disable`, `Enable`, `Update`.\n"}},"requiredInputs":["dbClusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering Endpoint resources.\n","properties":{"autoAddNewNodes":{"type":"string","description":"Whether the new node automatically joins the default cluster address. Valid values are `Enable`, `Disable`. When creating a new custom endpoint, default to `Disable`.\n"},"connectionPrefix":{"type":"string","description":"Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n","willReplaceOnChanges":true},"dbEndpointDescription":{"type":"string","description":"The name of the endpoint.\n"},"dbEndpointId":{"type":"string","description":"(Available since v1.161.0) The ID of the cluster endpoint.\n"},"endpointConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"The advanced settings of the endpoint of Apsara PolarDB clusters are in JSON format. Including the settings of consistency level, transaction splitting, connection pool, and offload reads from primary node. For more details, see the [description of EndpointConfig in the Request parameters table for details](https://www.alibabacloud.com/help/doc-detail/116593.htm).\n"},"endpointType":{"type":"string","description":"Type of the endpoint. Before v1.121.0, it only can be `Custom`. since v1.121.0, `Custom`, `Cluster`, `Primary` are valid, default to `Custom`. However when creating a new endpoint, it also only can be `Custom`.\n","willReplaceOnChanges":true},"netType":{"type":"string","description":"The network type of the endpoint address.\n"},"nodes":{"type":"array","items":{"type":"string"},"description":"Node id list for endpoint configuration. At least 2 nodes if specified, or if the cluster has more than 3 nodes, read-only endpoint is allowed to mount only one node. Default is all nodes.\n"},"port":{"type":"string","description":"Port of the specified endpoint. Valid values: 3000 to 5999.\n"},"readWriteMode":{"type":"string","description":"Read or write mode. Valid values are `ReadWrite`, `ReadOnly`. When creating a new custom endpoint, default to `ReadOnly`.\n"},"sslAutoRotate":{"type":"string","description":"Specifies whether automatic rotation of SSL certificates is enabled. Valid values: `Enable`,`Disable`.\n"},"sslCertificateUrl":{"type":"string","description":"Specifies SSL certificate download link.  \n**NOTE:** For a PolarDB for MySQL cluster, this parameter is required, and only one connection string in each endpoint can enable the ssl, for other notes, see [Configure SSL encryption](https://www.alibabacloud.com/help/doc-detail/153182.htm).\nFor a PolarDB for PostgreSQL cluster or a PolarDB-O cluster, this parameter is not required, by default, SSL encryption is enabled for all endpoints.\n"},"sslConnectionString":{"type":"string","description":"(Available since v1.121.0) The SSL connection string.\n"},"sslEnabled":{"type":"string","description":"Specifies how to modify the SSL encryption status. Valid values: `Disable`, `Enable`, `Update`.\n"},"sslExpireTime":{"type":"string","description":"(Available since v1.121.0) The time when the SSL certificate expires. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"}},"type":"object"}},"alicloud:polardb/endpointAddress:EndpointAddress":{"description":"Provides a PolarDB endpoint address resource to allocate an Internet endpoint address string for PolarDB instance.\n\n\u003e **NOTE:** Available since v1.68.0. Each PolarDB instance will allocate a intranet connection string automatically and its prefix is Cluster ID.\n To avoid unnecessary conflict, please specified a internet connection prefix before applying the resource.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.polardb.getNodeClasses({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n    category: \"Normal\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.classes?.[0]?.zoneId),\n    vswitchName: \"terraform-example\",\n});\nconst defaultCluster = new alicloud.polardb.Cluster(\"default\", {\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    dbNodeClass: _default.then(_default =\u003e _default.classes?.[0]?.supportedEngines?.[0]?.availableResources?.[0]?.dbNodeClass),\n    payType: \"PostPaid\",\n    vswitchId: defaultSwitch.id,\n    description: \"terraform-example\",\n});\nconst defaultGetEndpoints = alicloud.polardb.getEndpointsOutput({\n    dbClusterId: defaultCluster.id,\n});\nconst defaultEndpointAddress = new alicloud.polardb.EndpointAddress(\"default\", {\n    dbClusterId: defaultCluster.id,\n    dbEndpointId: defaultGetEndpoints.apply(defaultGetEndpoints =\u003e defaultGetEndpoints.endpoints?.[0]?.dbEndpointId),\n    connectionPrefix: \"polardbexample\",\n    netType: \"Public\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.polardb.get_node_classes(db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    category=\"Normal\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.classes[0].zone_id,\n    vswitch_name=\"terraform-example\")\ndefault_cluster = alicloud.polardb.Cluster(\"default\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    db_node_class=default.classes[0].supported_engines[0].available_resources[0].db_node_class,\n    pay_type=\"PostPaid\",\n    vswitch_id=default_switch.id,\n    description=\"terraform-example\")\ndefault_get_endpoints = alicloud.polardb.get_endpoints_output(db_cluster_id=default_cluster.id)\ndefault_endpoint_address = alicloud.polardb.EndpointAddress(\"default\",\n    db_cluster_id=default_cluster.id,\n    db_endpoint_id=default_get_endpoints.endpoints[0].db_endpoint_id,\n    connection_prefix=\"polardbexample\",\n    net_type=\"Public\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        Category = \"Normal\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var defaultCluster = new AliCloud.PolarDB.Cluster(\"default\", new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        DbNodeClass = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.SupportedEngines[0]?.AvailableResources[0]?.DbNodeClass)),\n        PayType = \"PostPaid\",\n        VswitchId = defaultSwitch.Id,\n        Description = \"terraform-example\",\n    });\n\n    var defaultGetEndpoints = AliCloud.PolarDB.GetEndpoints.Invoke(new()\n    {\n        DbClusterId = defaultCluster.Id,\n    });\n\n    var defaultEndpointAddress = new AliCloud.PolarDB.EndpointAddress(\"default\", new()\n    {\n        DbClusterId = defaultCluster.Id,\n        DbEndpointId = defaultGetEndpoints.Apply(getEndpointsResult =\u003e getEndpointsResult.Endpoints[0]?.DbEndpointId),\n        ConnectionPrefix = \"polardbexample\",\n        NetType = \"Public\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\n\t\t\tDbType:    pulumi.StringRef(\"MySQL\"),\n\t\t\tDbVersion: pulumi.StringRef(\"8.0\"),\n\t\t\tPayType:   \"PostPaid\",\n\t\t\tCategory:  pulumi.StringRef(\"Normal\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Classes[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := polardb.NewCluster(ctx, \"default\", \u0026polardb.ClusterArgs{\n\t\t\tDbType:      pulumi.String(\"MySQL\"),\n\t\t\tDbVersion:   pulumi.String(\"8.0\"),\n\t\t\tDbNodeClass: pulumi.String(_default.Classes[0].SupportedEngines[0].AvailableResources[0].DbNodeClass),\n\t\t\tPayType:     pulumi.String(\"PostPaid\"),\n\t\t\tVswitchId:   defaultSwitch.ID(),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetEndpoints := polardb.GetEndpointsOutput(ctx, polardb.GetEndpointsOutputArgs{\n\t\t\tDbClusterId: defaultCluster.ID(),\n\t\t}, nil)\n\t\t_, err = polardb.NewEndpointAddress(ctx, \"default\", \u0026polardb.EndpointAddressArgs{\n\t\t\tDbClusterId: defaultCluster.ID(),\n\t\t\tDbEndpointId: pulumi.String(defaultGetEndpoints.ApplyT(func(defaultGetEndpoints polardb.GetEndpointsResult) (*string, error) {\n\t\t\t\treturn \u0026defaultGetEndpoints.Endpoints[0].DbEndpointId, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tConnectionPrefix: pulumi.String(\"polardbexample\"),\n\t\t\tNetType:          pulumi.String(\"Public\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.inputs.GetEndpointsArgs;\nimport com.pulumi.alicloud.polardb.EndpointAddress;\nimport com.pulumi.alicloud.polardb.EndpointAddressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .category(\"Normal\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.classes()[0].zoneId())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .dbNodeClass(default_.classes()[0].supportedEngines()[0].availableResources()[0].dbNodeClass())\n            .payType(\"PostPaid\")\n            .vswitchId(defaultSwitch.id())\n            .description(\"terraform-example\")\n            .build());\n\n        final var defaultGetEndpoints = PolardbFunctions.getEndpoints(GetEndpointsArgs.builder()\n            .dbClusterId(defaultCluster.id())\n            .build());\n\n        var defaultEndpointAddress = new EndpointAddress(\"defaultEndpointAddress\", EndpointAddressArgs.builder()\n            .dbClusterId(defaultCluster.id())\n            .dbEndpointId(defaultGetEndpoints.applyValue(_defaultGetEndpoints -\u003e _defaultGetEndpoints.endpoints()[0].dbEndpointId()))\n            .connectionPrefix(\"polardbexample\")\n            .netType(\"Public\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.classes[0].zoneId}\n      vswitchName: terraform-example\n  defaultCluster:\n    type: alicloud:polardb:Cluster\n    name: default\n    properties:\n      dbType: MySQL\n      dbVersion: '8.0'\n      dbNodeClass: ${default.classes[0].supportedEngines[0].availableResources[0].dbNodeClass}\n      payType: PostPaid\n      vswitchId: ${defaultSwitch.id}\n      description: terraform-example\n  defaultEndpointAddress:\n    type: alicloud:polardb:EndpointAddress\n    name: default\n    properties:\n      dbClusterId: ${defaultCluster.id}\n      dbEndpointId: ${defaultGetEndpoints.endpoints[0].dbEndpointId}\n      connectionPrefix: polardbexample\n      netType: Public\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n        payType: PostPaid\n        category: Normal\n  defaultGetEndpoints:\n    fn::invoke:\n      function: alicloud:polardb:getEndpoints\n      arguments:\n        dbClusterId: ${defaultCluster.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPolarDB endpoint address can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:polardb/endpointAddress:EndpointAddress example pc-abc123456:pe-abc123456\n```\n\n","properties":{"connectionPrefix":{"type":"string","description":"Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.\n"},"connectionString":{"type":"string","description":"Connection cluster or endpoint string.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n"},"dbEndpointId":{"type":"string","description":"The Id of endpoint that can run database.\n"},"ipAddress":{"type":"string","description":"The ip address of connection string.\n"},"netType":{"type":"string","description":"Internet connection net type. Valid value: `Public`. Default to `Public`. Currently supported only `Public`.\n"},"port":{"type":"string","description":"Port of the specified endpoint. Valid values: 3000 to 5999.\n"}},"required":["connectionPrefix","connectionString","dbClusterId","dbEndpointId","ipAddress","port"],"inputProperties":{"connectionPrefix":{"type":"string","description":"Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n","willReplaceOnChanges":true},"dbEndpointId":{"type":"string","description":"The Id of endpoint that can run database.\n","willReplaceOnChanges":true},"netType":{"type":"string","description":"Internet connection net type. Valid value: `Public`. Default to `Public`. Currently supported only `Public`.\n","willReplaceOnChanges":true},"port":{"type":"string","description":"Port of the specified endpoint. Valid values: 3000 to 5999.\n"}},"requiredInputs":["dbClusterId","dbEndpointId"],"stateInputs":{"description":"Input properties used for looking up and filtering EndpointAddress resources.\n","properties":{"connectionPrefix":{"type":"string","description":"Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.\n"},"connectionString":{"type":"string","description":"Connection cluster or endpoint string.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n","willReplaceOnChanges":true},"dbEndpointId":{"type":"string","description":"The Id of endpoint that can run database.\n","willReplaceOnChanges":true},"ipAddress":{"type":"string","description":"The ip address of connection string.\n"},"netType":{"type":"string","description":"Internet connection net type. Valid value: `Public`. Default to `Public`. Currently supported only `Public`.\n","willReplaceOnChanges":true},"port":{"type":"string","description":"Port of the specified endpoint. Valid values: 3000 to 5999.\n"}},"type":"object"}},"alicloud:polardb/globalDatabaseNetwork:GlobalDatabaseNetwork":{"description":"Provides a PolarDB Global Database Network resource.\n\nFor information about PolarDB Global Database Network and how to use it, see [What is Global Database Network](https://www.alibabacloud.com/help/en/polardb/api-polardb-2017-08-01-createglobaldatabasenetwork).\n\n\u003e **NOTE:** Available since v1.181.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.polardb.getNodeClasses({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    category: \"Normal\",\n    payType: \"PostPaid\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.classes?.[0]?.zoneId),\n    vswitchName: \"terraform-example\",\n});\nconst defaultCluster = new alicloud.polardb.Cluster(\"default\", {\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    dbNodeClass: _default.then(_default =\u003e _default.classes?.[0]?.supportedEngines?.[0]?.availableResources?.[0]?.dbNodeClass),\n    payType: \"PostPaid\",\n    vswitchId: defaultSwitch.id,\n    description: \"terraform-example\",\n});\nconst defaultGlobalDatabaseNetwork = new alicloud.polardb.GlobalDatabaseNetwork(\"default\", {\n    dbClusterId: defaultCluster.id,\n    description: \"terraform-example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.polardb.get_node_classes(db_type=\"MySQL\",\n    db_version=\"8.0\",\n    category=\"Normal\",\n    pay_type=\"PostPaid\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.classes[0].zone_id,\n    vswitch_name=\"terraform-example\")\ndefault_cluster = alicloud.polardb.Cluster(\"default\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    db_node_class=default.classes[0].supported_engines[0].available_resources[0].db_node_class,\n    pay_type=\"PostPaid\",\n    vswitch_id=default_switch.id,\n    description=\"terraform-example\")\ndefault_global_database_network = alicloud.polardb.GlobalDatabaseNetwork(\"default\",\n    db_cluster_id=default_cluster.id,\n    description=\"terraform-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        Category = \"Normal\",\n        PayType = \"PostPaid\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var defaultCluster = new AliCloud.PolarDB.Cluster(\"default\", new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        DbNodeClass = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.SupportedEngines[0]?.AvailableResources[0]?.DbNodeClass)),\n        PayType = \"PostPaid\",\n        VswitchId = defaultSwitch.Id,\n        Description = \"terraform-example\",\n    });\n\n    var defaultGlobalDatabaseNetwork = new AliCloud.PolarDB.GlobalDatabaseNetwork(\"default\", new()\n    {\n        DbClusterId = defaultCluster.Id,\n        Description = \"terraform-example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\n\t\t\tDbType:    pulumi.StringRef(\"MySQL\"),\n\t\t\tDbVersion: pulumi.StringRef(\"8.0\"),\n\t\t\tCategory:  pulumi.StringRef(\"Normal\"),\n\t\t\tPayType:   \"PostPaid\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Classes[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := polardb.NewCluster(ctx, \"default\", \u0026polardb.ClusterArgs{\n\t\t\tDbType:      pulumi.String(\"MySQL\"),\n\t\t\tDbVersion:   pulumi.String(\"8.0\"),\n\t\t\tDbNodeClass: pulumi.String(_default.Classes[0].SupportedEngines[0].AvailableResources[0].DbNodeClass),\n\t\t\tPayType:     pulumi.String(\"PostPaid\"),\n\t\t\tVswitchId:   defaultSwitch.ID(),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = polardb.NewGlobalDatabaseNetwork(ctx, \"default\", \u0026polardb.GlobalDatabaseNetworkArgs{\n\t\t\tDbClusterId: defaultCluster.ID(),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.GlobalDatabaseNetwork;\nimport com.pulumi.alicloud.polardb.GlobalDatabaseNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .category(\"Normal\")\n            .payType(\"PostPaid\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.classes()[0].zoneId())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .dbNodeClass(default_.classes()[0].supportedEngines()[0].availableResources()[0].dbNodeClass())\n            .payType(\"PostPaid\")\n            .vswitchId(defaultSwitch.id())\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultGlobalDatabaseNetwork = new GlobalDatabaseNetwork(\"defaultGlobalDatabaseNetwork\", GlobalDatabaseNetworkArgs.builder()\n            .dbClusterId(defaultCluster.id())\n            .description(\"terraform-example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.classes[0].zoneId}\n      vswitchName: terraform-example\n  defaultCluster:\n    type: alicloud:polardb:Cluster\n    name: default\n    properties:\n      dbType: MySQL\n      dbVersion: '8.0'\n      dbNodeClass: ${default.classes[0].supportedEngines[0].availableResources[0].dbNodeClass}\n      payType: PostPaid\n      vswitchId: ${defaultSwitch.id}\n      description: terraform-example\n  defaultGlobalDatabaseNetwork:\n    type: alicloud:polardb:GlobalDatabaseNetwork\n    name: default\n    properties:\n      dbClusterId: ${defaultCluster.id}\n      description: terraform-example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n        category: Normal\n        payType: PostPaid\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPolarDB Global Database Network can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:polardb/globalDatabaseNetwork:GlobalDatabaseNetwork example \u003cid\u003e\n```\n\n","properties":{"dbClusterId":{"type":"string","description":"The ID of the primary cluster.\n"},"description":{"type":"string","description":"The description of the Global Database Network.\n"},"status":{"type":"string","description":"The status of the Global Database Network.\n"}},"required":["dbClusterId","description","status"],"inputProperties":{"dbClusterId":{"type":"string","description":"The ID of the primary cluster.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the Global Database Network.\n"}},"requiredInputs":["dbClusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering GlobalDatabaseNetwork resources.\n","properties":{"dbClusterId":{"type":"string","description":"The ID of the primary cluster.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the Global Database Network.\n"},"status":{"type":"string","description":"The status of the Global Database Network.\n"}},"type":"object"}},"alicloud:polardb/globalSecurityIpGroup:GlobalSecurityIpGroup":{"description":"Provides a Polardb Global Security Ip Group resource.\n\nGlobal Security IP Group.\n\nFor information about Polardb Global Security Ip Group and how to use it, see [What is Global Security Ip Group](https://next.api.alibabacloud.com/document/polardb/2017-08-01/CreateGlobalSecurityIPGroup).\n\n\u003e **NOTE:** Available since v1.266.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.polardb.GlobalSecurityIpGroup(\"default\", {\n    globalIpList: \"192.168.0.1\",\n    globalIpGroupName: \"example_template\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.polardb.GlobalSecurityIpGroup(\"default\",\n    global_ip_list=\"192.168.0.1\",\n    global_ip_group_name=\"example_template\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.PolarDB.GlobalSecurityIpGroup(\"default\", new()\n    {\n        GlobalIpList = \"192.168.0.1\",\n        GlobalIpGroupName = \"example_template\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := polardb.NewGlobalSecurityIpGroup(ctx, \"default\", \u0026polardb.GlobalSecurityIpGroupArgs{\n\t\t\tGlobalIpList:      pulumi.String(\"192.168.0.1\"),\n\t\t\tGlobalIpGroupName: pulumi.String(\"example_template\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.GlobalSecurityIpGroup;\nimport com.pulumi.alicloud.polardb.GlobalSecurityIpGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new GlobalSecurityIpGroup(\"default\", GlobalSecurityIpGroupArgs.builder()\n            .globalIpList(\"192.168.0.1\")\n            .globalIpGroupName(\"example_template\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:polardb:GlobalSecurityIpGroup\n    properties:\n      globalIpList: 192.168.0.1\n      globalIpGroupName: example_template\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPolardb Global Security Ip Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:polardb/globalSecurityIpGroup:GlobalSecurityIpGroup example \u003cid\u003e\n```\n\n","properties":{"globalIpGroupName":{"type":"string","description":"The name of the IP whitelist template. The name of the IP whitelist template must meet the following requirements:\n\n- The name can contain lowercase letters, digits, and underscores (\\_).\n- The name must start with a letter and end with a letter or digit.\n- The name must be 2 to 120 characters in length.\n"},"globalIpList":{"type":"string","description":"The IP address in the whitelist template.\n\n\u003e **NOTE:**   Multiple IP addresses are separated by commas (,). You can create up to 1,000 IP addresses or CIDR blocks for all IP whitelists.\n"},"regionId":{"type":"string","description":"The region ID of the IP whitelist template.\n"}},"required":["globalIpGroupName","globalIpList","regionId"],"inputProperties":{"globalIpGroupName":{"type":"string","description":"The name of the IP whitelist template. The name of the IP whitelist template must meet the following requirements:\n\n- The name can contain lowercase letters, digits, and underscores (\\_).\n- The name must start with a letter and end with a letter or digit.\n- The name must be 2 to 120 characters in length.\n"},"globalIpList":{"type":"string","description":"The IP address in the whitelist template.\n\n\u003e **NOTE:**   Multiple IP addresses are separated by commas (,). You can create up to 1,000 IP addresses or CIDR blocks for all IP whitelists.\n"}},"requiredInputs":["globalIpGroupName","globalIpList"],"stateInputs":{"description":"Input properties used for looking up and filtering GlobalSecurityIpGroup resources.\n","properties":{"globalIpGroupName":{"type":"string","description":"The name of the IP whitelist template. The name of the IP whitelist template must meet the following requirements:\n\n- The name can contain lowercase letters, digits, and underscores (\\_).\n- The name must start with a letter and end with a letter or digit.\n- The name must be 2 to 120 characters in length.\n"},"globalIpList":{"type":"string","description":"The IP address in the whitelist template.\n\n\u003e **NOTE:**   Multiple IP addresses are separated by commas (,). You can create up to 1,000 IP addresses or CIDR blocks for all IP whitelists.\n"},"regionId":{"type":"string","description":"The region ID of the IP whitelist template.\n"}},"type":"object"}},"alicloud:polardb/parameterGroup:ParameterGroup":{"description":"Provides a Polar Db Parameter Group resource.\n\n\n\nFor information about Polar Db Parameter Group and how to use it, see [What is Parameter Group](https://www.alibabacloud.com/help/en/polardb/polardb-for-mysql/user-guide/apply-a-parameter-template).\n\n\u003e **NOTE:** Available since v1.183.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.polardb.ParameterGroup(\"example\", {\n    parameterGroupName: \"example_value\",\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    parameters: [{\n        paramName: \"wait_timeout\",\n        paramValue: \"86400\",\n    }],\n    description: \"example_value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.polardb.ParameterGroup(\"example\",\n    parameter_group_name=\"example_value\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    parameters=[{\n        \"param_name\": \"wait_timeout\",\n        \"param_value\": \"86400\",\n    }],\n    description=\"example_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.PolarDB.ParameterGroup(\"example\", new()\n    {\n        ParameterGroupName = \"example_value\",\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        Parameters = new[]\n        {\n            new AliCloud.PolarDB.Inputs.ParameterGroupParameterArgs\n            {\n                ParamName = \"wait_timeout\",\n                ParamValue = \"86400\",\n            },\n        },\n        Description = \"example_value\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := polardb.NewParameterGroup(ctx, \"example\", \u0026polardb.ParameterGroupArgs{\n\t\t\tParameterGroupName: pulumi.String(\"example_value\"),\n\t\t\tDbType:             pulumi.String(\"MySQL\"),\n\t\t\tDbVersion:          pulumi.String(\"8.0\"),\n\t\t\tParameters: polardb.ParameterGroupParameterArray{\n\t\t\t\t\u0026polardb.ParameterGroupParameterArgs{\n\t\t\t\t\tParamName:  pulumi.String(\"wait_timeout\"),\n\t\t\t\t\tParamValue: pulumi.String(\"86400\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"example_value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.ParameterGroup;\nimport com.pulumi.alicloud.polardb.ParameterGroupArgs;\nimport com.pulumi.alicloud.polardb.inputs.ParameterGroupParameterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ParameterGroup(\"example\", ParameterGroupArgs.builder()\n            .parameterGroupName(\"example_value\")\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .parameters(ParameterGroupParameterArgs.builder()\n                .paramName(\"wait_timeout\")\n                .paramValue(\"86400\")\n                .build())\n            .description(\"example_value\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:polardb:ParameterGroup\n    properties:\n      parameterGroupName: example_value\n      dbType: MySQL\n      dbVersion: '8.0'\n      parameters:\n        - paramName: wait_timeout\n          paramValue: '86400'\n      description: example_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPolar Db Parameter Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:polardb/parameterGroup:ParameterGroup example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The time when the parameter template was created. The time is in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"dbType":{"type":"string","description":"The type of the database engine. Only `MySQL` is supported.\n"},"dbVersion":{"type":"string","description":"The version of the database engine. Valid values: \n- **5.6**\n- **5.7**\n- **8.0**\n"},"description":{"type":"string","description":"The description of the parameter template.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.263.0. New field 'parameter_group_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.263.0. New field 'parameter_group_name' instead."},"parameterGroupName":{"type":"string","description":"The name of the parameter template. The name must meet the following requirements:\n\n- It must start with a letter and can contain letters, digits, and underscores (_). It cannot contain Chinese characters or end with an underscore (_).\n\n- It must be 8 to 64 characters in length.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/ParameterGroupParameter:ParameterGroupParameter"},"description":"Details about the parameters. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n\n\u003e **NOTE:**  You can view all parameter details for the target database engine version database cluster through the [DescribeParameterTemplates](https://next.api.alibabacloud.com/document/polardb/2017-08-01/DescribeParameterTemplates), including parameter name, value.\n\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["createTime","dbType","dbVersion","name","parameterGroupName","parameters"],"inputProperties":{"dbType":{"type":"string","description":"The type of the database engine. Only `MySQL` is supported.\n","willReplaceOnChanges":true},"dbVersion":{"type":"string","description":"The version of the database engine. Valid values: \n- **5.6**\n- **5.7**\n- **8.0**\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the parameter template.\n","willReplaceOnChanges":true},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.263.0. New field 'parameter_group_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.263.0. New field 'parameter_group_name' instead.","willReplaceOnChanges":true},"parameterGroupName":{"type":"string","description":"The name of the parameter template. The name must meet the following requirements:\n\n- It must start with a letter and can contain letters, digits, and underscores (_). It cannot contain Chinese characters or end with an underscore (_).\n\n- It must be 8 to 64 characters in length.\n","willReplaceOnChanges":true},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/ParameterGroupParameter:ParameterGroupParameter"},"description":"Details about the parameters. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n\n\u003e **NOTE:**  You can view all parameter details for the target database engine version database cluster through the [DescribeParameterTemplates](https://next.api.alibabacloud.com/document/polardb/2017-08-01/DescribeParameterTemplates), including parameter name, value.\n\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"requiredInputs":["dbType","dbVersion","parameters"],"stateInputs":{"description":"Input properties used for looking up and filtering ParameterGroup resources.\n","properties":{"createTime":{"type":"string","description":"The time when the parameter template was created. The time is in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"dbType":{"type":"string","description":"The type of the database engine. Only `MySQL` is supported.\n","willReplaceOnChanges":true},"dbVersion":{"type":"string","description":"The version of the database engine. Valid values: \n- **5.6**\n- **5.7**\n- **8.0**\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the parameter template.\n","willReplaceOnChanges":true},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.263.0. New field 'parameter_group_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.263.0. New field 'parameter_group_name' instead.","willReplaceOnChanges":true},"parameterGroupName":{"type":"string","description":"The name of the parameter template. The name must meet the following requirements:\n\n- It must start with a letter and can contain letters, digits, and underscores (_). It cannot contain Chinese characters or end with an underscore (_).\n\n- It must be 8 to 64 characters in length.\n","willReplaceOnChanges":true},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:polardb/ParameterGroupParameter:ParameterGroupParameter"},"description":"Details about the parameters. See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n\n\u003e **NOTE:**  You can view all parameter details for the target database engine version database cluster through the [DescribeParameterTemplates](https://next.api.alibabacloud.com/document/polardb/2017-08-01/DescribeParameterTemplates), including parameter name, value.\n\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:polardb/primaryEndpoint:PrimaryEndpoint":{"description":"Provides a PolarDB endpoint resource to manage primary endpoint of PolarDB cluster.\n\n\u003e **NOTE:** Available since v1.217.0\n\n\u003e **NOTE:** The default primary endpoint can not be created or deleted manually.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.polardb.getNodeClasses({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n    category: \"Normal\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.classes?.[0]?.zoneId),\n    vswitchName: \"terraform-example\",\n});\nconst defaultCluster = new alicloud.polardb.Cluster(\"default\", {\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    dbNodeClass: _default.then(_default =\u003e _default.classes?.[0]?.supportedEngines?.[0]?.availableResources?.[0]?.dbNodeClass),\n    payType: \"PostPaid\",\n    vswitchId: defaultSwitch.id,\n    description: \"terraform-example\",\n});\nconst defaultPrimaryEndpoint = new alicloud.polardb.PrimaryEndpoint(\"default\", {dbClusterId: defaultCluster.id});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.polardb.get_node_classes(db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    category=\"Normal\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.classes[0].zone_id,\n    vswitch_name=\"terraform-example\")\ndefault_cluster = alicloud.polardb.Cluster(\"default\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    db_node_class=default.classes[0].supported_engines[0].available_resources[0].db_node_class,\n    pay_type=\"PostPaid\",\n    vswitch_id=default_switch.id,\n    description=\"terraform-example\")\ndefault_primary_endpoint = alicloud.polardb.PrimaryEndpoint(\"default\", db_cluster_id=default_cluster.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        Category = \"Normal\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var defaultCluster = new AliCloud.PolarDB.Cluster(\"default\", new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        DbNodeClass = @default.Apply(@default =\u003e @default.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.SupportedEngines[0]?.AvailableResources[0]?.DbNodeClass)),\n        PayType = \"PostPaid\",\n        VswitchId = defaultSwitch.Id,\n        Description = \"terraform-example\",\n    });\n\n    var defaultPrimaryEndpoint = new AliCloud.PolarDB.PrimaryEndpoint(\"default\", new()\n    {\n        DbClusterId = defaultCluster.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\n\t\t\tDbType:    pulumi.StringRef(\"MySQL\"),\n\t\t\tDbVersion: pulumi.StringRef(\"8.0\"),\n\t\t\tPayType:   \"PostPaid\",\n\t\t\tCategory:  pulumi.StringRef(\"Normal\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Classes[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := polardb.NewCluster(ctx, \"default\", \u0026polardb.ClusterArgs{\n\t\t\tDbType:      pulumi.String(\"MySQL\"),\n\t\t\tDbVersion:   pulumi.String(\"8.0\"),\n\t\t\tDbNodeClass: pulumi.String(_default.Classes[0].SupportedEngines[0].AvailableResources[0].DbNodeClass),\n\t\t\tPayType:     pulumi.String(\"PostPaid\"),\n\t\t\tVswitchId:   defaultSwitch.ID(),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = polardb.NewPrimaryEndpoint(ctx, \"default\", \u0026polardb.PrimaryEndpointArgs{\n\t\t\tDbClusterId: defaultCluster.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.PrimaryEndpoint;\nimport com.pulumi.alicloud.polardb.PrimaryEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .category(\"Normal\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.classes()[0].zoneId())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .dbNodeClass(default_.classes()[0].supportedEngines()[0].availableResources()[0].dbNodeClass())\n            .payType(\"PostPaid\")\n            .vswitchId(defaultSwitch.id())\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultPrimaryEndpoint = new PrimaryEndpoint(\"defaultPrimaryEndpoint\", PrimaryEndpointArgs.builder()\n            .dbClusterId(defaultCluster.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.classes[0].zoneId}\n      vswitchName: terraform-example\n  defaultCluster:\n    type: alicloud:polardb:Cluster\n    name: default\n    properties:\n      dbType: MySQL\n      dbVersion: '8.0'\n      dbNodeClass: ${default.classes[0].supportedEngines[0].availableResources[0].dbNodeClass}\n      payType: PostPaid\n      vswitchId: ${defaultSwitch.id}\n      description: terraform-example\n  defaultPrimaryEndpoint:\n    type: alicloud:polardb:PrimaryEndpoint\n    name: default\n    properties:\n      dbClusterId: ${defaultCluster.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n        payType: PostPaid\n        category: Normal\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPolarDB endpoint can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:polardb/primaryEndpoint:PrimaryEndpoint example pc-abc123456:pe-abc123456\n```\n\n","properties":{"connectionPrefix":{"type":"string","description":"Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n"},"dbEndpointDescription":{"type":"string","description":"The name of the endpoint.\n"},"dbEndpointId":{"type":"string","description":"The ID of the cluster endpoint.\n"},"endpointType":{"type":"string","description":"Type of endpoint.\n"},"netType":{"type":"string","description":"The network type of the endpoint address.\n"},"port":{"type":"string","description":"Port of the specified endpoint. Valid values: 3000 to 5999.\n"},"sslAutoRotate":{"type":"string","description":"Specifies whether automatic rotation of SSL certificates is enabled. Valid values: `Enable`,`Disable`.\n**NOTE:** For a PolarDB for MySQL cluster, this parameter is required, and only one connection string in each endpoint can enable the ssl, for other notes, see [Configure SSL encryption](https://www.alibabacloud.com/help/doc-detail/153182.htm).\nFor a PolarDB for PostgreSQL cluster or a PolarDB-O cluster, this parameter is not required, by default, SSL encryption is enabled for all endpoints.\n"},"sslCertificateUrl":{"type":"string","description":"The specifies SSL certificate download link.\n"},"sslConnectionString":{"type":"string","description":"The SSL connection string.\n"},"sslEnabled":{"type":"string","description":"Specifies how to modify the SSL encryption status. Valid values: `Disable`, `Enable`, `Update`.\n"},"sslExpireTime":{"type":"string","description":"The time when the SSL certificate expires. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"}},"required":["connectionPrefix","dbClusterId","dbEndpointId","endpointType","port","sslCertificateUrl","sslConnectionString","sslExpireTime"],"inputProperties":{"connectionPrefix":{"type":"string","description":"Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n","willReplaceOnChanges":true},"dbEndpointDescription":{"type":"string","description":"The name of the endpoint.\n"},"netType":{"type":"string","description":"The network type of the endpoint address.\n"},"port":{"type":"string","description":"Port of the specified endpoint. Valid values: 3000 to 5999.\n"},"sslAutoRotate":{"type":"string","description":"Specifies whether automatic rotation of SSL certificates is enabled. Valid values: `Enable`,`Disable`.\n**NOTE:** For a PolarDB for MySQL cluster, this parameter is required, and only one connection string in each endpoint can enable the ssl, for other notes, see [Configure SSL encryption](https://www.alibabacloud.com/help/doc-detail/153182.htm).\nFor a PolarDB for PostgreSQL cluster or a PolarDB-O cluster, this parameter is not required, by default, SSL encryption is enabled for all endpoints.\n"},"sslEnabled":{"type":"string","description":"Specifies how to modify the SSL encryption status. Valid values: `Disable`, `Enable`, `Update`.\n"}},"requiredInputs":["dbClusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering PrimaryEndpoint resources.\n","properties":{"connectionPrefix":{"type":"string","description":"Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n","willReplaceOnChanges":true},"dbEndpointDescription":{"type":"string","description":"The name of the endpoint.\n"},"dbEndpointId":{"type":"string","description":"The ID of the cluster endpoint.\n"},"endpointType":{"type":"string","description":"Type of endpoint.\n"},"netType":{"type":"string","description":"The network type of the endpoint address.\n"},"port":{"type":"string","description":"Port of the specified endpoint. Valid values: 3000 to 5999.\n"},"sslAutoRotate":{"type":"string","description":"Specifies whether automatic rotation of SSL certificates is enabled. Valid values: `Enable`,`Disable`.\n**NOTE:** For a PolarDB for MySQL cluster, this parameter is required, and only one connection string in each endpoint can enable the ssl, for other notes, see [Configure SSL encryption](https://www.alibabacloud.com/help/doc-detail/153182.htm).\nFor a PolarDB for PostgreSQL cluster or a PolarDB-O cluster, this parameter is not required, by default, SSL encryption is enabled for all endpoints.\n"},"sslCertificateUrl":{"type":"string","description":"The specifies SSL certificate download link.\n"},"sslConnectionString":{"type":"string","description":"The SSL connection string.\n"},"sslEnabled":{"type":"string","description":"Specifies how to modify the SSL encryption status. Valid values: `Disable`, `Enable`, `Update`.\n"},"sslExpireTime":{"type":"string","description":"The time when the SSL certificate expires. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"}},"type":"object"}},"alicloud:polardb/zonalAccount:ZonalAccount":{"description":"Provides a PolarDB Zonal account resource and used to manage databases.\n\n\u003e **NOTE:** Available since v1.262.0. \n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\n// The advanced configuration for all nodes in the cluster except for the RW node, including db_node_class, hot_replica_mode, and imci_switch properties.\nconst dbClusterNodesConfigs = config.getObject\u003cRecord\u003cstring, {dbNodeClass?: string, dbNodeRole?: string, hotReplicaMode?: string, imciSwitch?: string}\u003e\u003e(\"dbClusterNodesConfigs\") || {\n    db_node_1: {\n        dbNodeClass: \"polar.mysql.x4.medium.c\",\n        dbNodeRole: \"Writer\",\n        hotReplicaMode: null,\n        imciSwitch: null,\n    },\n};\nconst _default = new alicloud.ens.Network(\"default\", {\n    networkName: \"terraform-example\",\n    description: \"LoadBalancerNetworkDescription_test\",\n    cidrBlock: \"192.168.2.0/24\",\n    ensRegionId: \"tr-Istanbul-1\",\n});\nconst defaultVswitch = new alicloud.ens.Vswitch(\"default\", {\n    description: \"LoadBalancerVSwitchDescription_test\",\n    cidrBlock: \"192.168.2.0/24\",\n    vswitchName: \"terraform-example\",\n    ensRegionId: \"tr-Istanbul-1\",\n    networkId: _default.id,\n});\nconst defaultZonalDbCluster = new alicloud.polardb.ZonalDbCluster(\"default\", {\n    dbNodeClass: \"polar.mysql.x4.medium.c\",\n    description: \"terraform-example\",\n    ensRegionId: \"tr-Istanbul-1\",\n    vpcId: _default.id,\n    vswitchId: defaultVswitch.id,\n    dbClusterNodesConfigs: Object.entries(dbClusterNodesConfigs).reduce((__obj, [node, config]) =\u003e ({ ...__obj, [node]: JSON.stringify(Object.entries(config).filter(([k, v]) =\u003e v != null).reduce((__obj, [k, v]) =\u003e ({ ...__obj, [k]: v }))) })),\n});\nconst defaultZonalAccount = new alicloud.polardb.ZonalAccount(\"default\", {\n    dbClusterId: defaultZonalDbCluster.id,\n    accountName: \"terraform_example\",\n    accountPassword: \"Example1234\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\n# The advanced configuration for all nodes in the cluster except for the RW node, including db_node_class, hot_replica_mode, and imci_switch properties.\ndb_cluster_nodes_configs = config.get_object(\"dbClusterNodesConfigs\")\nif db_cluster_nodes_configs is None:\n    db_cluster_nodes_configs = {\n        \"db_node_1\": {\n            \"dbNodeClass\": \"polar.mysql.x4.medium.c\",\n            \"dbNodeRole\": \"Writer\",\n            \"hotReplicaMode\": None,\n            \"imciSwitch\": None,\n        },\n    }\ndefault = alicloud.ens.Network(\"default\",\n    network_name=\"terraform-example\",\n    description=\"LoadBalancerNetworkDescription_test\",\n    cidr_block=\"192.168.2.0/24\",\n    ens_region_id=\"tr-Istanbul-1\")\ndefault_vswitch = alicloud.ens.Vswitch(\"default\",\n    description=\"LoadBalancerVSwitchDescription_test\",\n    cidr_block=\"192.168.2.0/24\",\n    vswitch_name=\"terraform-example\",\n    ens_region_id=\"tr-Istanbul-1\",\n    network_id=default.id)\ndefault_zonal_db_cluster = alicloud.polardb.ZonalDbCluster(\"default\",\n    db_node_class=\"polar.mysql.x4.medium.c\",\n    description=\"terraform-example\",\n    ens_region_id=\"tr-Istanbul-1\",\n    vpc_id=default.id,\n    vswitch_id=default_vswitch.id,\n    db_cluster_nodes_configs={node: json.dumps({k: v for k, v in config if v != None}) for node, config in db_cluster_nodes_configs})\ndefault_zonal_account = alicloud.polardb.ZonalAccount(\"default\",\n    db_cluster_id=default_zonal_db_cluster.id,\n    account_name=\"terraform_example\",\n    account_password=\"Example1234\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    // The advanced configuration for all nodes in the cluster except for the RW node, including db_node_class, hot_replica_mode, and imci_switch properties.\n    var dbClusterNodesConfigs = config.GetObject\u003cDictionary\u003cstring, DbClusterNodesConfigs\u003e\u003e(\"dbClusterNodesConfigs\") ?? \n    {\n        { \"db_node_1\", \n        {\n            { \"dbNodeClass\", \"polar.mysql.x4.medium.c\" },\n            { \"dbNodeRole\", \"Writer\" },\n            { \"hotReplicaMode\", null },\n            { \"imciSwitch\", null },\n        } },\n    };\n    var @default = new AliCloud.Ens.Network(\"default\", new()\n    {\n        NetworkName = \"terraform-example\",\n        Description = \"LoadBalancerNetworkDescription_test\",\n        CidrBlock = \"192.168.2.0/24\",\n        EnsRegionId = \"tr-Istanbul-1\",\n    });\n\n    var defaultVswitch = new AliCloud.Ens.Vswitch(\"default\", new()\n    {\n        Description = \"LoadBalancerVSwitchDescription_test\",\n        CidrBlock = \"192.168.2.0/24\",\n        VswitchName = \"terraform-example\",\n        EnsRegionId = \"tr-Istanbul-1\",\n        NetworkId = @default.Id,\n    });\n\n    var defaultZonalDbCluster = new AliCloud.PolarDB.ZonalDbCluster(\"default\", new()\n    {\n        DbNodeClass = \"polar.mysql.x4.medium.c\",\n        Description = \"terraform-example\",\n        EnsRegionId = \"tr-Istanbul-1\",\n        VpcId = @default.Id,\n        VswitchId = defaultVswitch.Id,\n        DbClusterNodesConfigs = dbClusterNodesConfigs.Select(pair =\u003e new { pair.Key, pair.Value }).ToDictionary(item =\u003e {\n            var node = item.Key;\n            return node;\n        }, item =\u003e {\n            var config = item.Value;\n            return JsonSerializer.Serialize(.ToDictionary(item =\u003e {\n                var k = item.Key;\n                return k;\n            }, item =\u003e {\n                var v = item.Value;\n                return v;\n            }));\n        }),\n    });\n\n    var defaultZonalAccount = new AliCloud.PolarDB.ZonalAccount(\"default\", new()\n    {\n        DbClusterId = defaultZonalDbCluster.Id,\n        AccountName = \"terraform_example\",\n        AccountPassword = \"Example1234\",\n    });\n\n});\n\npublic class DbClusterNodesConfigs\n{\n    public string dbNodeClass { get; set; }\n    public string dbNodeRole { get; set; }\n    public string hotReplicaMode { get; set; }\n    public string imciSwitch { get; set; }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPolarDB Zonal account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:polardb/zonalAccount:ZonalAccount example \"pc-12345:tf_account\"\n```\n\n","properties":{"accountDescription":{"type":"string","description":"Account description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.\n"},"accountName":{"type":"string","description":"Operation account requiring a uniqueness check. It may consist of lower case letters, numbers, and underlines, and must start with a letter and have no more than 16 characters.\n"},"accountPassword":{"type":"string","description":"Operation password. It may consist of letters, digits, or underlines, with a length of 6 to 32 characters.\n","secret":true},"accountType":{"type":"string","description":"Account type, Valid values are `Normal`, `Super`, Default to `Normal`.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster in which account belongs.\n"}},"required":["accountName","accountPassword","accountType","dbClusterId"],"inputProperties":{"accountDescription":{"type":"string","description":"Account description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.\n"},"accountName":{"type":"string","description":"Operation account requiring a uniqueness check. It may consist of lower case letters, numbers, and underlines, and must start with a letter and have no more than 16 characters.\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"Operation password. It may consist of letters, digits, or underlines, with a length of 6 to 32 characters.\n","secret":true},"accountType":{"type":"string","description":"Account type, Valid values are `Normal`, `Super`, Default to `Normal`.\n","willReplaceOnChanges":true},"dbClusterId":{"type":"string","description":"The Id of cluster in which account belongs.\n","willReplaceOnChanges":true}},"requiredInputs":["accountName","dbClusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering ZonalAccount resources.\n","properties":{"accountDescription":{"type":"string","description":"Account description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.\n"},"accountName":{"type":"string","description":"Operation account requiring a uniqueness check. It may consist of lower case letters, numbers, and underlines, and must start with a letter and have no more than 16 characters.\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"Operation password. It may consist of letters, digits, or underlines, with a length of 6 to 32 characters.\n","secret":true},"accountType":{"type":"string","description":"Account type, Valid values are `Normal`, `Super`, Default to `Normal`.\n","willReplaceOnChanges":true},"dbClusterId":{"type":"string","description":"The Id of cluster in which account belongs.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:polardb/zonalDbCluster:ZonalDbCluster":{"description":"Provides an PolarDB zonal cluster resource. An PolarDB zonal cluster is an isolated database\nenvironment in the cloud. An PolarDB zonal cluster can contain multiple user-created\ndatabases.\n\n\u003e **NOTE:** Available since v1.261.0.\n\n## Example Usage\n\nCreate a PolarDB MySQL zonal cluster\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\n// The advanced configuration for all nodes in the cluster except for the RW node, including db_node_class, hot_replica_mode, and imci_switch properties.\nconst dbClusterNodesConfigs = config.getObject\u003cRecord\u003cstring, {dbNodeClass?: string, dbNodeRole?: string, hotReplicaMode?: string, imciSwitch?: string}\u003e\u003e(\"dbClusterNodesConfigs\") || {\n    db_node_1: {\n        dbNodeClass: \"polar.mysql.x4.medium.c\",\n        dbNodeRole: \"Writer\",\n        hotReplicaMode: null,\n        imciSwitch: null,\n    },\n    db_node_2: {\n        dbNodeClass: \"polar.mysql.x4.medium.c\",\n        dbNodeRole: \"Reader\",\n        hotReplicaMode: null,\n        imciSwitch: null,\n    },\n};\nconst _default = new alicloud.ens.Network(\"default\", {\n    networkName: \"terraform-example\",\n    description: \"LoadBalancerNetworkDescription_test\",\n    cidrBlock: \"192.168.2.0/24\",\n    ensRegionId: \"tr-Istanbul-1\",\n});\nconst defaultVswitch = new alicloud.ens.Vswitch(\"default\", {\n    description: \"LoadBalancerVSwitchDescription_test\",\n    cidrBlock: \"192.168.2.0/24\",\n    vswitchName: \"terraform-example\",\n    ensRegionId: \"tr-Istanbul-1\",\n    networkId: _default.id,\n});\nconst defaultZonalDbCluster = new alicloud.polardb.ZonalDbCluster(\"default\", {\n    dbNodeClass: \"polar.mysql.x4.medium.c\",\n    description: \"terraform-example\",\n    ensRegionId: \"tr-Istanbul-1\",\n    vpcId: _default.id,\n    vswitchId: defaultVswitch.id,\n    dbClusterNodesConfigs: Object.entries(dbClusterNodesConfigs).reduce((__obj, [node, config]) =\u003e ({ ...__obj, [node]: JSON.stringify(Object.entries(config).filter(([k, v]) =\u003e v != null).reduce((__obj, [k, v]) =\u003e ({ ...__obj, [k]: v }))) })),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\n# The advanced configuration for all nodes in the cluster except for the RW node, including db_node_class, hot_replica_mode, and imci_switch properties.\ndb_cluster_nodes_configs = config.get_object(\"dbClusterNodesConfigs\")\nif db_cluster_nodes_configs is None:\n    db_cluster_nodes_configs = {\n        \"db_node_1\": {\n            \"dbNodeClass\": \"polar.mysql.x4.medium.c\",\n            \"dbNodeRole\": \"Writer\",\n            \"hotReplicaMode\": None,\n            \"imciSwitch\": None,\n        },\n        \"db_node_2\": {\n            \"dbNodeClass\": \"polar.mysql.x4.medium.c\",\n            \"dbNodeRole\": \"Reader\",\n            \"hotReplicaMode\": None,\n            \"imciSwitch\": None,\n        },\n    }\ndefault = alicloud.ens.Network(\"default\",\n    network_name=\"terraform-example\",\n    description=\"LoadBalancerNetworkDescription_test\",\n    cidr_block=\"192.168.2.0/24\",\n    ens_region_id=\"tr-Istanbul-1\")\ndefault_vswitch = alicloud.ens.Vswitch(\"default\",\n    description=\"LoadBalancerVSwitchDescription_test\",\n    cidr_block=\"192.168.2.0/24\",\n    vswitch_name=\"terraform-example\",\n    ens_region_id=\"tr-Istanbul-1\",\n    network_id=default.id)\ndefault_zonal_db_cluster = alicloud.polardb.ZonalDbCluster(\"default\",\n    db_node_class=\"polar.mysql.x4.medium.c\",\n    description=\"terraform-example\",\n    ens_region_id=\"tr-Istanbul-1\",\n    vpc_id=default.id,\n    vswitch_id=default_vswitch.id,\n    db_cluster_nodes_configs={node: json.dumps({k: v for k, v in config if v != None}) for node, config in db_cluster_nodes_configs})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    // The advanced configuration for all nodes in the cluster except for the RW node, including db_node_class, hot_replica_mode, and imci_switch properties.\n    var dbClusterNodesConfigs = config.GetObject\u003cDictionary\u003cstring, DbClusterNodesConfigs\u003e\u003e(\"dbClusterNodesConfigs\") ?? \n    {\n        { \"db_node_1\", \n        {\n            { \"dbNodeClass\", \"polar.mysql.x4.medium.c\" },\n            { \"dbNodeRole\", \"Writer\" },\n            { \"hotReplicaMode\", null },\n            { \"imciSwitch\", null },\n        } },\n        { \"db_node_2\", \n        {\n            { \"dbNodeClass\", \"polar.mysql.x4.medium.c\" },\n            { \"dbNodeRole\", \"Reader\" },\n            { \"hotReplicaMode\", null },\n            { \"imciSwitch\", null },\n        } },\n    };\n    var @default = new AliCloud.Ens.Network(\"default\", new()\n    {\n        NetworkName = \"terraform-example\",\n        Description = \"LoadBalancerNetworkDescription_test\",\n        CidrBlock = \"192.168.2.0/24\",\n        EnsRegionId = \"tr-Istanbul-1\",\n    });\n\n    var defaultVswitch = new AliCloud.Ens.Vswitch(\"default\", new()\n    {\n        Description = \"LoadBalancerVSwitchDescription_test\",\n        CidrBlock = \"192.168.2.0/24\",\n        VswitchName = \"terraform-example\",\n        EnsRegionId = \"tr-Istanbul-1\",\n        NetworkId = @default.Id,\n    });\n\n    var defaultZonalDbCluster = new AliCloud.PolarDB.ZonalDbCluster(\"default\", new()\n    {\n        DbNodeClass = \"polar.mysql.x4.medium.c\",\n        Description = \"terraform-example\",\n        EnsRegionId = \"tr-Istanbul-1\",\n        VpcId = @default.Id,\n        VswitchId = defaultVswitch.Id,\n        DbClusterNodesConfigs = dbClusterNodesConfigs.Select(pair =\u003e new { pair.Key, pair.Value }).ToDictionary(item =\u003e {\n            var node = item.Key;\n            return node;\n        }, item =\u003e {\n            var config = item.Value;\n            return JsonSerializer.Serialize(.ToDictionary(item =\u003e {\n                var k = item.Key;\n                return k;\n            }, item =\u003e {\n                var v = item.Value;\n                return v;\n            }));\n        }),\n    });\n\n});\n\npublic class DbClusterNodesConfigs\n{\n    public string dbNodeClass { get; set; }\n    public string dbNodeRole { get; set; }\n    public string hotReplicaMode { get; set; }\n    public string imciSwitch { get; set; }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPolarDB zonal cluster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:polardb/zonalDbCluster:ZonalDbCluster example pc-abc12345678\n```\n\n","properties":{"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an cluster, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid value:1, 2, 3, 6, 12, 24, 36, Default to 1.\n"},"clusterLatestVersion":{"type":"string","description":"PolarDB zonal cluster latest version.\n"},"clusterVersion":{"type":"string","description":"current DB Cluster revision Version.\n"},"createTime":{"type":"string","description":"PolarDB zonal cluster creation time.\n"},"creationCategory":{"type":"string","description":"The edition of the PolarDB service. Valid values are `SENormal`.\n"},"dbClusterNodesAttributes":{"type":"object","additionalProperties":{"type":"string"},"description":"Cache of the relationship between node key and node ID for PolarDB zonal Cluster\n"},"dbClusterNodesConfigs":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of node needs to be created after DB cluster was launched.\n"},"dbClusterNodesIds":{"type":"object","additionalProperties":{"type":"string"},"description":"Cache of node ID for PolarDB zonal Cluster\n"},"dbMinorVersion":{"type":"string","description":"Database minor version. Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `DBMinorVersion`. This parameter takes effect only when \u003cspan pulumi-lang-nodejs=\"`dbType`\" pulumi-lang-dotnet=\"`DbType`\" pulumi-lang-go=\"`dbType`\" pulumi-lang-python=\"`db_type`\" pulumi-lang-yaml=\"`dbType`\" pulumi-lang-java=\"`dbType`\"\u003e`db_type`\u003c/span\u003e is MySQL and \u003cspan pulumi-lang-nodejs=\"`dbVersion`\" pulumi-lang-dotnet=\"`DbVersion`\" pulumi-lang-go=\"`dbVersion`\" pulumi-lang-python=\"`db_version`\" pulumi-lang-yaml=\"`dbVersion`\" pulumi-lang-java=\"`dbVersion`\"\u003e`db_version`\u003c/span\u003e is 8.0.\n"},"dbNodeClass":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eof cluster node.Only effective when the cluster is created for the first time. After the cluster is started, the cluster specification is maintained through the node class.\n"},"dbType":{"type":"string","description":"Database type. Value options: MySQL, Oracle, PostgreSQL.\n"},"dbVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `DBVersion`.\n"},"description":{"type":"string","description":"The description of cluster.\n"},"ensRegionId":{"type":"string","description":"The Zone to launch the DB cluster.\n"},"payType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`, Default to `PostPaid`.\n"},"regionId":{"type":"string","description":"PolarDB zonal cluster region\n"},"renewalStatus":{"type":"string","description":"Valid values are `AutoRenewal`, `Normal`, `NotRenewal`, Default to `NotRenewal`.\n"},"storagePayType":{"type":"string","description":"The billing method of the storage. Valid values `Prepaid`.\n"},"storageSpace":{"type":"integer","description":"Storage space charged by space (monthly package). Unit: GB.\n\u003e **NOTE:**  Valid values for PolarDB for MySQL Standard Edition: 20 to 32000. It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eare `PrePaid` ,`PostPaid`.\n"},"storageType":{"type":"string","description":"The storage type of the cluster. Valid values are `ESSDPL1`, `ESSDPL0`.\n"},"targetMinorVersion":{"type":"string","description":"The Version Code of the target version, whose parameter values can be obtained from the [DescribeDBClusterVersionZonal](https://www.alibabacloud.com/help/en/polardb/api-polardb-2017-08-01-describedbclusterversionzonal) interface.\n"},"usedTime":{"type":"integer","description":"The duration that you will buy DB cluster (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid values: [1~9], 12, 24, 36.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is only used to create Subscription instance or modify the PayAsYouGo instance to `PostPaid`. Once effect, it will not be modified that means running `pulumi up` will not affect the resource.\n"},"vpcId":{"type":"string","description":"The id of the ENS VPC.\n"},"vswitchId":{"type":"string","description":"The ENS virtual switch ID to launch DB instances in one VPC.\n"}},"required":["clusterLatestVersion","clusterVersion","createTime","creationCategory","dbClusterNodesAttributes","dbClusterNodesConfigs","dbClusterNodesIds","dbNodeClass","description","ensRegionId","regionId","storagePayType","vpcId","vswitchId"],"inputProperties":{"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an cluster, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid value:1, 2, 3, 6, 12, 24, 36, Default to 1.\n"},"clusterVersion":{"type":"string","description":"current DB Cluster revision Version.\n","willReplaceOnChanges":true},"creationCategory":{"type":"string","description":"The edition of the PolarDB service. Valid values are `SENormal`.\n","willReplaceOnChanges":true},"dbClusterNodesConfigs":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of node needs to be created after DB cluster was launched.\n"},"dbMinorVersion":{"type":"string","description":"Database minor version. Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `DBMinorVersion`. This parameter takes effect only when \u003cspan pulumi-lang-nodejs=\"`dbType`\" pulumi-lang-dotnet=\"`DbType`\" pulumi-lang-go=\"`dbType`\" pulumi-lang-python=\"`db_type`\" pulumi-lang-yaml=\"`dbType`\" pulumi-lang-java=\"`dbType`\"\u003e`db_type`\u003c/span\u003e is MySQL and \u003cspan pulumi-lang-nodejs=\"`dbVersion`\" pulumi-lang-dotnet=\"`DbVersion`\" pulumi-lang-go=\"`dbVersion`\" pulumi-lang-python=\"`db_version`\" pulumi-lang-yaml=\"`dbVersion`\" pulumi-lang-java=\"`dbVersion`\"\u003e`db_version`\u003c/span\u003e is 8.0.\n","willReplaceOnChanges":true},"dbNodeClass":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eof cluster node.Only effective when the cluster is created for the first time. After the cluster is started, the cluster specification is maintained through the node class.\n"},"dbType":{"type":"string","description":"Database type. Value options: MySQL, Oracle, PostgreSQL.\n","willReplaceOnChanges":true},"dbVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `DBVersion`.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of cluster.\n"},"ensRegionId":{"type":"string","description":"The Zone to launch the DB cluster.\n","willReplaceOnChanges":true},"payType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`, Default to `PostPaid`.\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Valid values are `AutoRenewal`, `Normal`, `NotRenewal`, Default to `NotRenewal`.\n"},"storageSpace":{"type":"integer","description":"Storage space charged by space (monthly package). Unit: GB.\n\u003e **NOTE:**  Valid values for PolarDB for MySQL Standard Edition: 20 to 32000. It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eare `PrePaid` ,`PostPaid`.\n"},"storageType":{"type":"string","description":"The storage type of the cluster. Valid values are `ESSDPL1`, `ESSDPL0`.\n","willReplaceOnChanges":true},"targetMinorVersion":{"type":"string","description":"The Version Code of the target version, whose parameter values can be obtained from the [DescribeDBClusterVersionZonal](https://www.alibabacloud.com/help/en/polardb/api-polardb-2017-08-01-describedbclusterversionzonal) interface.\n"},"usedTime":{"type":"integer","description":"The duration that you will buy DB cluster (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid values: [1~9], 12, 24, 36.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is only used to create Subscription instance or modify the PayAsYouGo instance to `PostPaid`. Once effect, it will not be modified that means running `pulumi up` will not affect the resource.\n"},"vpcId":{"type":"string","description":"The id of the ENS VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ENS virtual switch ID to launch DB instances in one VPC.\n","willReplaceOnChanges":true}},"requiredInputs":["dbClusterNodesConfigs","dbNodeClass","ensRegionId","vpcId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering ZonalDbCluster resources.\n","properties":{"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an cluster, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid value:1, 2, 3, 6, 12, 24, 36, Default to 1.\n"},"clusterLatestVersion":{"type":"string","description":"PolarDB zonal cluster latest version.\n"},"clusterVersion":{"type":"string","description":"current DB Cluster revision Version.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"PolarDB zonal cluster creation time.\n"},"creationCategory":{"type":"string","description":"The edition of the PolarDB service. Valid values are `SENormal`.\n","willReplaceOnChanges":true},"dbClusterNodesAttributes":{"type":"object","additionalProperties":{"type":"string"},"description":"Cache of the relationship between node key and node ID for PolarDB zonal Cluster\n"},"dbClusterNodesConfigs":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of node needs to be created after DB cluster was launched.\n"},"dbClusterNodesIds":{"type":"object","additionalProperties":{"type":"string"},"description":"Cache of node ID for PolarDB zonal Cluster\n"},"dbMinorVersion":{"type":"string","description":"Database minor version. Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `DBMinorVersion`. This parameter takes effect only when \u003cspan pulumi-lang-nodejs=\"`dbType`\" pulumi-lang-dotnet=\"`DbType`\" pulumi-lang-go=\"`dbType`\" pulumi-lang-python=\"`db_type`\" pulumi-lang-yaml=\"`dbType`\" pulumi-lang-java=\"`dbType`\"\u003e`db_type`\u003c/span\u003e is MySQL and \u003cspan pulumi-lang-nodejs=\"`dbVersion`\" pulumi-lang-dotnet=\"`DbVersion`\" pulumi-lang-go=\"`dbVersion`\" pulumi-lang-python=\"`db_version`\" pulumi-lang-yaml=\"`dbVersion`\" pulumi-lang-java=\"`dbVersion`\"\u003e`db_version`\u003c/span\u003e is 8.0.\n","willReplaceOnChanges":true},"dbNodeClass":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" dbNodeClass \" pulumi-lang-dotnet=\" DbNodeClass \" pulumi-lang-go=\" dbNodeClass \" pulumi-lang-python=\" db_node_class \" pulumi-lang-yaml=\" dbNodeClass \" pulumi-lang-java=\" dbNodeClass \"\u003e db_node_class \u003c/span\u003eof cluster node.Only effective when the cluster is created for the first time. After the cluster is started, the cluster specification is maintained through the node class.\n"},"dbType":{"type":"string","description":"Database type. Value options: MySQL, Oracle, PostgreSQL.\n","willReplaceOnChanges":true},"dbVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBCluster](https://www.alibabacloud.com/help/en/polardb/latest/createdbcluster-1) `DBVersion`.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of cluster.\n"},"ensRegionId":{"type":"string","description":"The Zone to launch the DB cluster.\n","willReplaceOnChanges":true},"payType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`, Default to `PostPaid`.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"PolarDB zonal cluster region\n"},"renewalStatus":{"type":"string","description":"Valid values are `AutoRenewal`, `Normal`, `NotRenewal`, Default to `NotRenewal`.\n"},"storagePayType":{"type":"string","description":"The billing method of the storage. Valid values `Prepaid`.\n"},"storageSpace":{"type":"integer","description":"Storage space charged by space (monthly package). Unit: GB.\n\u003e **NOTE:**  Valid values for PolarDB for MySQL Standard Edition: 20 to 32000. It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eare `PrePaid` ,`PostPaid`.\n"},"storageType":{"type":"string","description":"The storage type of the cluster. Valid values are `ESSDPL1`, `ESSDPL0`.\n","willReplaceOnChanges":true},"targetMinorVersion":{"type":"string","description":"The Version Code of the target version, whose parameter values can be obtained from the [DescribeDBClusterVersionZonal](https://www.alibabacloud.com/help/en/polardb/api-polardb-2017-08-01-describedbclusterversionzonal) interface.\n"},"usedTime":{"type":"integer","description":"The duration that you will buy DB cluster (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" payType \" pulumi-lang-dotnet=\" PayType \" pulumi-lang-go=\" payType \" pulumi-lang-python=\" pay_type \" pulumi-lang-yaml=\" payType \" pulumi-lang-java=\" payType \"\u003e pay_type \u003c/span\u003eis `PrePaid`. Valid values: [1~9], 12, 24, 36.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e is only used to create Subscription instance or modify the PayAsYouGo instance to `PostPaid`. Once effect, it will not be modified that means running `pulumi up` will not affect the resource.\n"},"vpcId":{"type":"string","description":"The id of the ENS VPC.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ENS virtual switch ID to launch DB instances in one VPC.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:polardb/zonalEndpoint:ZonalEndpoint":{"description":"Provides a PolarDB Zonal endpoint resource to manage custom endpoint of PolarDB cluster.\n\n\u003e **NOTE:** Available since v1.262.0.\n\u003e **NOTE:** The primary endpoint and the default cluster endpoint can not be created or deleted manually.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\n// The advanced configuration for all nodes in the cluster except for the RW node, including db_node_class, hot_replica_mode, and imci_switch properties.\nconst dbClusterNodesConfigs = config.getObject\u003cRecord\u003cstring, {dbNodeClass?: string, dbNodeRole?: string, hotReplicaMode?: string, imciSwitch?: string}\u003e\u003e(\"dbClusterNodesConfigs\") || {\n    db_node_1: {\n        dbNodeClass: \"polar.mysql.x4.medium.c\",\n        dbNodeRole: \"Writer\",\n        hotReplicaMode: null,\n        imciSwitch: null,\n    },\n    db_node_2: {\n        dbNodeClass: \"polar.mysql.x4.medium.c\",\n        dbNodeRole: \"Reader\",\n        hotReplicaMode: null,\n        imciSwitch: null,\n    },\n};\nconst _default = new alicloud.ens.Network(\"default\", {\n    networkName: \"terraform-example\",\n    description: \"LoadBalancerNetworkDescription_test\",\n    cidrBlock: \"192.168.2.0/24\",\n    ensRegionId: \"tr-Istanbul-1\",\n});\nconst defaultVswitch = new alicloud.ens.Vswitch(\"default\", {\n    description: \"LoadBalancerVSwitchDescription_test\",\n    cidrBlock: \"192.168.2.0/24\",\n    vswitchName: \"terraform-example\",\n    ensRegionId: \"tr-Istanbul-1\",\n    networkId: _default.id,\n});\nconst defaultZonalDbCluster = new alicloud.polardb.ZonalDbCluster(\"default\", {\n    dbNodeClass: \"polar.mysql.x4.medium.c\",\n    description: \"terraform-example\",\n    ensRegionId: \"tr-Istanbul-1\",\n    vpcId: _default.id,\n    vswitchId: defaultVswitch.id,\n    dbClusterNodesConfigs: Object.entries(dbClusterNodesConfigs).reduce((__obj, [node, config]) =\u003e ({ ...__obj, [node]: JSON.stringify(Object.entries(config).filter(([k, v]) =\u003e v != null).reduce((__obj, [k, v]) =\u003e ({ ...__obj, [k]: v }))) })),\n});\nconst defaultZonalEndpoint = new alicloud.polardb.ZonalEndpoint(\"default\", {\n    dbClusterId: defaultZonalDbCluster.id,\n    dbClusterNodesIds: defaultZonalDbCluster.dbClusterNodesIds,\n    endpointConfig: {},\n    nodesKeys: [\n        \"db_node_1\",\n        \"db_node_2\",\n    ],\n    readWriteMode: \"ReadWrite\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\n# The advanced configuration for all nodes in the cluster except for the RW node, including db_node_class, hot_replica_mode, and imci_switch properties.\ndb_cluster_nodes_configs = config.get_object(\"dbClusterNodesConfigs\")\nif db_cluster_nodes_configs is None:\n    db_cluster_nodes_configs = {\n        \"db_node_1\": {\n            \"dbNodeClass\": \"polar.mysql.x4.medium.c\",\n            \"dbNodeRole\": \"Writer\",\n            \"hotReplicaMode\": None,\n            \"imciSwitch\": None,\n        },\n        \"db_node_2\": {\n            \"dbNodeClass\": \"polar.mysql.x4.medium.c\",\n            \"dbNodeRole\": \"Reader\",\n            \"hotReplicaMode\": None,\n            \"imciSwitch\": None,\n        },\n    }\ndefault = alicloud.ens.Network(\"default\",\n    network_name=\"terraform-example\",\n    description=\"LoadBalancerNetworkDescription_test\",\n    cidr_block=\"192.168.2.0/24\",\n    ens_region_id=\"tr-Istanbul-1\")\ndefault_vswitch = alicloud.ens.Vswitch(\"default\",\n    description=\"LoadBalancerVSwitchDescription_test\",\n    cidr_block=\"192.168.2.0/24\",\n    vswitch_name=\"terraform-example\",\n    ens_region_id=\"tr-Istanbul-1\",\n    network_id=default.id)\ndefault_zonal_db_cluster = alicloud.polardb.ZonalDbCluster(\"default\",\n    db_node_class=\"polar.mysql.x4.medium.c\",\n    description=\"terraform-example\",\n    ens_region_id=\"tr-Istanbul-1\",\n    vpc_id=default.id,\n    vswitch_id=default_vswitch.id,\n    db_cluster_nodes_configs={node: json.dumps({k: v for k, v in config if v != None}) for node, config in db_cluster_nodes_configs})\ndefault_zonal_endpoint = alicloud.polardb.ZonalEndpoint(\"default\",\n    db_cluster_id=default_zonal_db_cluster.id,\n    db_cluster_nodes_ids=default_zonal_db_cluster.db_cluster_nodes_ids,\n    endpoint_config={},\n    nodes_keys=[\n        \"db_node_1\",\n        \"db_node_2\",\n    ],\n    read_write_mode=\"ReadWrite\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    // The advanced configuration for all nodes in the cluster except for the RW node, including db_node_class, hot_replica_mode, and imci_switch properties.\n    var dbClusterNodesConfigs = config.GetObject\u003cDictionary\u003cstring, DbClusterNodesConfigs\u003e\u003e(\"dbClusterNodesConfigs\") ?? \n    {\n        { \"db_node_1\", \n        {\n            { \"dbNodeClass\", \"polar.mysql.x4.medium.c\" },\n            { \"dbNodeRole\", \"Writer\" },\n            { \"hotReplicaMode\", null },\n            { \"imciSwitch\", null },\n        } },\n        { \"db_node_2\", \n        {\n            { \"dbNodeClass\", \"polar.mysql.x4.medium.c\" },\n            { \"dbNodeRole\", \"Reader\" },\n            { \"hotReplicaMode\", null },\n            { \"imciSwitch\", null },\n        } },\n    };\n    var @default = new AliCloud.Ens.Network(\"default\", new()\n    {\n        NetworkName = \"terraform-example\",\n        Description = \"LoadBalancerNetworkDescription_test\",\n        CidrBlock = \"192.168.2.0/24\",\n        EnsRegionId = \"tr-Istanbul-1\",\n    });\n\n    var defaultVswitch = new AliCloud.Ens.Vswitch(\"default\", new()\n    {\n        Description = \"LoadBalancerVSwitchDescription_test\",\n        CidrBlock = \"192.168.2.0/24\",\n        VswitchName = \"terraform-example\",\n        EnsRegionId = \"tr-Istanbul-1\",\n        NetworkId = @default.Id,\n    });\n\n    var defaultZonalDbCluster = new AliCloud.PolarDB.ZonalDbCluster(\"default\", new()\n    {\n        DbNodeClass = \"polar.mysql.x4.medium.c\",\n        Description = \"terraform-example\",\n        EnsRegionId = \"tr-Istanbul-1\",\n        VpcId = @default.Id,\n        VswitchId = defaultVswitch.Id,\n        DbClusterNodesConfigs = dbClusterNodesConfigs.Select(pair =\u003e new { pair.Key, pair.Value }).ToDictionary(item =\u003e {\n            var node = item.Key;\n            return node;\n        }, item =\u003e {\n            var config = item.Value;\n            return JsonSerializer.Serialize(.ToDictionary(item =\u003e {\n                var k = item.Key;\n                return k;\n            }, item =\u003e {\n                var v = item.Value;\n                return v;\n            }));\n        }),\n    });\n\n    var defaultZonalEndpoint = new AliCloud.PolarDB.ZonalEndpoint(\"default\", new()\n    {\n        DbClusterId = defaultZonalDbCluster.Id,\n        DbClusterNodesIds = defaultZonalDbCluster.DbClusterNodesIds,\n        EndpointConfig = null,\n        NodesKeys = new[]\n        {\n            \"db_node_1\",\n            \"db_node_2\",\n        },\n        ReadWriteMode = \"ReadWrite\",\n    });\n\n});\n\npublic class DbClusterNodesConfigs\n{\n    public string dbNodeClass { get; set; }\n    public string dbNodeRole { get; set; }\n    public string hotReplicaMode { get; set; }\n    public string imciSwitch { get; set; }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPolarDB Zonal endpoint can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:polardb/zonalEndpoint:ZonalEndpoint example pc-abc123456:pe-abc123456\n```\n\n","properties":{"autoAddNewNodes":{"type":"string","description":"Whether the new node automatically joins the default cluster address. Valid values are `Enable`, `Disable`. When creating a new custom endpoint, default to `Enable`.\n"},"connectionPrefix":{"type":"string","description":"Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n"},"dbClusterNodesIds":{"type":"object","additionalProperties":{"type":"string"},"description":"referenced from the\u003cspan pulumi-lang-nodejs=\" dbClusterNodesIds \" pulumi-lang-dotnet=\" DbClusterNodesIds \" pulumi-lang-go=\" dbClusterNodesIds \" pulumi-lang-python=\" db_cluster_nodes_ids \" pulumi-lang-yaml=\" dbClusterNodesIds \" pulumi-lang-java=\" dbClusterNodesIds \"\u003e db_cluster_nodes_ids \u003c/span\u003eattribute of alicloud_polardb_zonal_db_cluster..\n"},"dbEndpointDescription":{"type":"string","description":"The name of the endpoint.\n"},"dbEndpointId":{"type":"string","description":"The ID of the cluster endpoint.\n"},"endpointConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"The advanced settings of the endpoint of Apsara PolarDB clusters are in JSON format. Including the settings of consistency level, transaction splitting, connection pool, and offload reads from primary node. For more details, see the [description of EndpointConfig in the Request parameters table for details](https://www.alibabacloud.com/help/doc-detail/116593.htm).\n"},"endpointType":{"type":"string","description":"Type of the endpoint. Valid values are `Custom`, `Cluster`, `Primary`, default to `Custom`. However when creating a new endpoint, it also only can be `Custom`.\n"},"netType":{"type":"string","description":"The network type of the endpoint address.\n"},"nodes":{"type":"array","items":{"type":"string"},"description":"Node id list for endpoint configuration.\n"},"nodesKeys":{"type":"array","items":{"type":"string"},"description":"The list of backend nodes for the endpoint, with the attribute values derived from the map key of db_cluster_nodes_ids.\n"},"port":{"type":"string","description":"Port of the specified endpoint. Valid values: 3000 to 5999.\n"},"readWriteMode":{"type":"string","description":"Read or write mode. Valid values are `ReadWrite`, `ReadOnly`. When creating a new custom endpoint, default to `ReadOnly`.\n"},"vpcId":{"type":"string","description":"The ID of ENS VPC where to use the DB.\n"},"vswitchId":{"type":"string","description":"The ID of ENS virtual switch where to use the DB.\n"}},"required":["autoAddNewNodes","connectionPrefix","dbClusterId","dbClusterNodesIds","dbEndpointId","endpointType","netType","nodes","port","vpcId","vswitchId"],"inputProperties":{"autoAddNewNodes":{"type":"string","description":"Whether the new node automatically joins the default cluster address. Valid values are `Enable`, `Disable`. When creating a new custom endpoint, default to `Enable`.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n","willReplaceOnChanges":true},"dbClusterNodesIds":{"type":"object","additionalProperties":{"type":"string"},"description":"referenced from the\u003cspan pulumi-lang-nodejs=\" dbClusterNodesIds \" pulumi-lang-dotnet=\" DbClusterNodesIds \" pulumi-lang-go=\" dbClusterNodesIds \" pulumi-lang-python=\" db_cluster_nodes_ids \" pulumi-lang-yaml=\" dbClusterNodesIds \" pulumi-lang-java=\" dbClusterNodesIds \"\u003e db_cluster_nodes_ids \u003c/span\u003eattribute of alicloud_polardb_zonal_db_cluster..\n"},"dbEndpointDescription":{"type":"string","description":"The name of the endpoint.\n"},"endpointConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"The advanced settings of the endpoint of Apsara PolarDB clusters are in JSON format. Including the settings of consistency level, transaction splitting, connection pool, and offload reads from primary node. For more details, see the [description of EndpointConfig in the Request parameters table for details](https://www.alibabacloud.com/help/doc-detail/116593.htm).\n"},"endpointType":{"type":"string","description":"Type of the endpoint. Valid values are `Custom`, `Cluster`, `Primary`, default to `Custom`. However when creating a new endpoint, it also only can be `Custom`.\n","willReplaceOnChanges":true},"netType":{"type":"string","description":"The network type of the endpoint address.\n","willReplaceOnChanges":true},"nodesKeys":{"type":"array","items":{"type":"string"},"description":"The list of backend nodes for the endpoint, with the attribute values derived from the map key of db_cluster_nodes_ids.\n"},"readWriteMode":{"type":"string","description":"Read or write mode. Valid values are `ReadWrite`, `ReadOnly`. When creating a new custom endpoint, default to `ReadOnly`.\n"},"vpcId":{"type":"string","description":"The ID of ENS VPC where to use the DB.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of ENS virtual switch where to use the DB.\n","willReplaceOnChanges":true}},"requiredInputs":["dbClusterId","dbClusterNodesIds"],"stateInputs":{"description":"Input properties used for looking up and filtering ZonalEndpoint resources.\n","properties":{"autoAddNewNodes":{"type":"string","description":"Whether the new node automatically joins the default cluster address. Valid values are `Enable`, `Disable`. When creating a new custom endpoint, default to `Enable`.\n"},"connectionPrefix":{"type":"string","description":"Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.\n"},"dbClusterId":{"type":"string","description":"The Id of cluster that can run database.\n","willReplaceOnChanges":true},"dbClusterNodesIds":{"type":"object","additionalProperties":{"type":"string"},"description":"referenced from the\u003cspan pulumi-lang-nodejs=\" dbClusterNodesIds \" pulumi-lang-dotnet=\" DbClusterNodesIds \" pulumi-lang-go=\" dbClusterNodesIds \" pulumi-lang-python=\" db_cluster_nodes_ids \" pulumi-lang-yaml=\" dbClusterNodesIds \" pulumi-lang-java=\" dbClusterNodesIds \"\u003e db_cluster_nodes_ids \u003c/span\u003eattribute of alicloud_polardb_zonal_db_cluster..\n"},"dbEndpointDescription":{"type":"string","description":"The name of the endpoint.\n"},"dbEndpointId":{"type":"string","description":"The ID of the cluster endpoint.\n"},"endpointConfig":{"type":"object","additionalProperties":{"type":"string"},"description":"The advanced settings of the endpoint of Apsara PolarDB clusters are in JSON format. Including the settings of consistency level, transaction splitting, connection pool, and offload reads from primary node. For more details, see the [description of EndpointConfig in the Request parameters table for details](https://www.alibabacloud.com/help/doc-detail/116593.htm).\n"},"endpointType":{"type":"string","description":"Type of the endpoint. Valid values are `Custom`, `Cluster`, `Primary`, default to `Custom`. However when creating a new endpoint, it also only can be `Custom`.\n","willReplaceOnChanges":true},"netType":{"type":"string","description":"The network type of the endpoint address.\n","willReplaceOnChanges":true},"nodes":{"type":"array","items":{"type":"string"},"description":"Node id list for endpoint configuration.\n"},"nodesKeys":{"type":"array","items":{"type":"string"},"description":"The list of backend nodes for the endpoint, with the attribute values derived from the map key of db_cluster_nodes_ids.\n"},"port":{"type":"string","description":"Port of the specified endpoint. Valid values: 3000 to 5999.\n"},"readWriteMode":{"type":"string","description":"Read or write mode. Valid values are `ReadWrite`, `ReadOnly`. When creating a new custom endpoint, default to `ReadOnly`.\n"},"vpcId":{"type":"string","description":"The ID of ENS VPC where to use the DB.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of ENS virtual switch where to use the DB.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:privatelink/vpcEndpoint:VpcEndpoint":{"description":"Provides a Private Link Vpc Endpoint resource.\n\n\n\nFor information about Private Link Vpc Endpoint and how to use it, see [What is Vpc Endpoint](https://www.alibabacloud.com/help/en/privatelink/latest/api-privatelink-2020-04-15-createvpcendpoint).\n\n\u003e **NOTE:** Available since v1.109.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultbFzA4a = new alicloud.vpc.Network(\"defaultbFzA4a\", {\n    description: \"example-terraform\",\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: name,\n});\nconst default1FTFrP = new alicloud.ecs.SecurityGroup(\"default1FTFrP\", {\n    name: name,\n    vpcId: defaultbFzA4a.id,\n});\nconst defaultjljY5S = new alicloud.ecs.SecurityGroup(\"defaultjljY5S\", {\n    name: name,\n    vpcId: defaultbFzA4a.id,\n});\nconst defaultVpcEndpoint = new alicloud.privatelink.VpcEndpoint(\"default\", {\n    endpointDescription: name,\n    vpcEndpointName: name,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    endpointType: \"Interface\",\n    vpcId: defaultbFzA4a.id,\n    serviceName: \"com.aliyuncs.privatelink.ap-southeast-5.oss\",\n    dryRun: false,\n    zonePrivateIpAddressCount: 1,\n    policyDocument: JSON.stringify({\n        Version: \"1\",\n        Statement: [{\n            Effect: \"Allow\",\n            Action: [\"*\"],\n            Resource: [\"*\"],\n            Principal: \"*\",\n        }],\n    }),\n    securityGroupIds: [default1FTFrP.id],\n    serviceId: \"epsrv-k1apjysze8u1l9t6uyg9\",\n    protectedEnabled: false,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefaultb_fz_a4a = alicloud.vpc.Network(\"defaultbFzA4a\",\n    description=\"example-terraform\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=name)\ndefault1_ft_fr_p = alicloud.ecs.SecurityGroup(\"default1FTFrP\",\n    name=name,\n    vpc_id=defaultb_fz_a4a.id)\ndefaultjlj_y5_s = alicloud.ecs.SecurityGroup(\"defaultjljY5S\",\n    name=name,\n    vpc_id=defaultb_fz_a4a.id)\ndefault_vpc_endpoint = alicloud.privatelink.VpcEndpoint(\"default\",\n    endpoint_description=name,\n    vpc_endpoint_name=name,\n    resource_group_id=default.ids[0],\n    endpoint_type=\"Interface\",\n    vpc_id=defaultb_fz_a4a.id,\n    service_name=\"com.aliyuncs.privatelink.ap-southeast-5.oss\",\n    dry_run=False,\n    zone_private_ip_address_count=1,\n    policy_document=json.dumps({\n        \"Version\": \"1\",\n        \"Statement\": [{\n            \"Effect\": \"Allow\",\n            \"Action\": [\"*\"],\n            \"Resource\": [\"*\"],\n            \"Principal\": \"*\",\n        }],\n    }),\n    security_group_ids=[default1_ft_fr_p.id],\n    service_id=\"epsrv-k1apjysze8u1l9t6uyg9\",\n    protected_enabled=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultbFzA4a = new AliCloud.Vpc.Network(\"defaultbFzA4a\", new()\n    {\n        Description = \"example-terraform\",\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = name,\n    });\n\n    var default1FTFrP = new AliCloud.Ecs.SecurityGroup(\"default1FTFrP\", new()\n    {\n        Name = name,\n        VpcId = defaultbFzA4a.Id,\n    });\n\n    var defaultjljY5S = new AliCloud.Ecs.SecurityGroup(\"defaultjljY5S\", new()\n    {\n        Name = name,\n        VpcId = defaultbFzA4a.Id,\n    });\n\n    var defaultVpcEndpoint = new AliCloud.PrivateLink.VpcEndpoint(\"default\", new()\n    {\n        EndpointDescription = name,\n        VpcEndpointName = name,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        EndpointType = \"Interface\",\n        VpcId = defaultbFzA4a.Id,\n        ServiceName = \"com.aliyuncs.privatelink.ap-southeast-5.oss\",\n        DryRun = false,\n        ZonePrivateIpAddressCount = 1,\n        PolicyDocument = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Version\"] = \"1\",\n            [\"Statement\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"Effect\"] = \"Allow\",\n                    [\"Action\"] = new[]\n                    {\n                        \"*\",\n                    },\n                    [\"Resource\"] = new[]\n                    {\n                        \"*\",\n                    },\n                    [\"Principal\"] = \"*\",\n                },\n            },\n        }),\n        SecurityGroupIds = new[]\n        {\n            default1FTFrP.Id,\n        },\n        ServiceId = \"epsrv-k1apjysze8u1l9t6uyg9\",\n        ProtectedEnabled = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/privatelink\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultbFzA4a, err := vpc.NewNetwork(ctx, \"defaultbFzA4a\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(\"example-terraform\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:     pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1FTFrP, err := ecs.NewSecurityGroup(ctx, \"default1FTFrP\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultbFzA4a.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroup(ctx, \"defaultjljY5S\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultbFzA4a.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"1\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\"*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Principal\": \"*\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = privatelink.NewVpcEndpoint(ctx, \"default\", \u0026privatelink.VpcEndpointArgs{\n\t\t\tEndpointDescription:       pulumi.String(name),\n\t\t\tVpcEndpointName:           pulumi.String(name),\n\t\t\tResourceGroupId:           pulumi.String(_default.Ids[0]),\n\t\t\tEndpointType:              pulumi.String(\"Interface\"),\n\t\t\tVpcId:                     defaultbFzA4a.ID(),\n\t\t\tServiceName:               pulumi.String(\"com.aliyuncs.privatelink.ap-southeast-5.oss\"),\n\t\t\tDryRun:                    pulumi.Bool(false),\n\t\t\tZonePrivateIpAddressCount: pulumi.Int(1),\n\t\t\tPolicyDocument:            pulumi.String(json0),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefault1FTFrP.ID(),\n\t\t\t},\n\t\t\tServiceId:        pulumi.String(\"epsrv-k1apjysze8u1l9t6uyg9\"),\n\t\t\tProtectedEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.privatelink.VpcEndpoint;\nimport com.pulumi.alicloud.privatelink.VpcEndpointArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultbFzA4a = new Network(\"defaultbFzA4a\", NetworkArgs.builder()\n            .description(\"example-terraform\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(name)\n            .build());\n\n        var default1FTFrP = new SecurityGroup(\"default1FTFrP\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultbFzA4a.id())\n            .build());\n\n        var defaultjljY5S = new SecurityGroup(\"defaultjljY5S\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultbFzA4a.id())\n            .build());\n\n        var defaultVpcEndpoint = new VpcEndpoint(\"defaultVpcEndpoint\", VpcEndpointArgs.builder()\n            .endpointDescription(name)\n            .vpcEndpointName(name)\n            .resourceGroupId(default_.ids()[0])\n            .endpointType(\"Interface\")\n            .vpcId(defaultbFzA4a.id())\n            .serviceName(\"com.aliyuncs.privatelink.ap-southeast-5.oss\")\n            .dryRun(false)\n            .zonePrivateIpAddressCount(1)\n            .policyDocument(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Version\", \"1\"),\n                    jsonProperty(\"Statement\", jsonArray(jsonObject(\n                        jsonProperty(\"Effect\", \"Allow\"),\n                        jsonProperty(\"Action\", jsonArray(\"*\")),\n                        jsonProperty(\"Resource\", jsonArray(\"*\")),\n                        jsonProperty(\"Principal\", \"*\")\n                    )))\n                )))\n            .securityGroupIds(default1FTFrP.id())\n            .serviceId(\"epsrv-k1apjysze8u1l9t6uyg9\")\n            .protectedEnabled(false)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultbFzA4a:\n    type: alicloud:vpc:Network\n    properties:\n      description: example-terraform\n      cidrBlock: 172.16.0.0/12\n      vpcName: ${name}\n  default1FTFrP:\n    type: alicloud:ecs:SecurityGroup\n    properties:\n      name: ${name}\n      vpcId: ${defaultbFzA4a.id}\n  defaultjljY5S:\n    type: alicloud:ecs:SecurityGroup\n    properties:\n      name: ${name}\n      vpcId: ${defaultbFzA4a.id}\n  defaultVpcEndpoint:\n    type: alicloud:privatelink:VpcEndpoint\n    name: default\n    properties:\n      endpointDescription: ${name}\n      vpcEndpointName: ${name}\n      resourceGroupId: ${default.ids[0]}\n      endpointType: Interface\n      vpcId: ${defaultbFzA4a.id}\n      serviceName: com.aliyuncs.privatelink.ap-southeast-5.oss\n      dryRun: 'false'\n      zonePrivateIpAddressCount: '1'\n      policyDocument:\n        fn::toJSON:\n          Version: '1'\n          Statement:\n            - Effect: Allow\n              Action:\n                - '*'\n              Resource:\n                - '*'\n              Principal: '*'\n      securityGroupIds:\n        - ${default1FTFrP.id}\n      serviceId: epsrv-k1apjysze8u1l9t6uyg9\n      protectedEnabled: 'false'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPrivate Link Vpc Endpoint can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:privatelink/vpcEndpoint:VpcEndpoint example \u003cid\u003e\n```\n\n","properties":{"addressIpVersion":{"type":"string","description":"The IP address version. Valid values:\n- `IPv4` (default): IPv4.\n- `DualStack`: dual-stack.\n"},"bandwidth":{"type":"integer","description":"The bandwidth of the endpoint connection.  1024 to 10240. Unit: Mbit/s.\n"},"connectionStatus":{"type":"string","description":"The state of the endpoint connection.\n"},"createTime":{"type":"string","description":"The time when the endpoint was created.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"endpointBusinessStatus":{"type":"string","description":"The service state of the endpoint.\n"},"endpointDescription":{"type":"string","description":"The description of the endpoint.\n"},"endpointDomain":{"type":"string","description":"The domain name of the endpoint.\n"},"endpointType":{"type":"string","description":"The endpoint type.\n\nOnly the value: Interface, indicating the Interface endpoint. You can add the service resource types of Application Load Balancer (ALB), Classic Load Balancer (CLB), and Network Load Balancer (NLB).\n"},"policyDocument":{"type":"string","description":"RAM access policies. For more information about policy definitions, see Alibaba Cloud-access control (RAM) official guidance.\n"},"protectedEnabled":{"type":"boolean","description":"Specifies whether to enable user authentication. This parameter is available in Security Token Service (STS) mode. Valid values:\n"},"regionId":{"type":"string","description":"(Available since v1.239.0) The region ID of the endpoint.\n"},"resourceGroupId":{"type":"string","description":"The resource group ID.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The ID of the security group that is associated with the endpoint ENI. The security group can be used to control data transfer between the VPC and the endpoint ENI.\n\nThe endpoint can be associated with up to 10 security groups.\n"},"serviceId":{"type":"string","description":"The ID of the endpoint service with which the endpoint is associated.\n"},"serviceName":{"type":"string","description":"The name of the endpoint service with which the endpoint is associated.\n"},"status":{"type":"string","description":"The state of the endpoint.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags.\n"},"vpcEndpointName":{"type":"string","description":"The name of the endpoint.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the endpoint belongs.\n"},"zonePrivateIpAddressCount":{"type":"integer","description":"The number of private IP addresses that are assigned to an elastic network interface (ENI) in each zone. Only 1 is returned.\n"}},"required":["addressIpVersion","bandwidth","connectionStatus","createTime","endpointBusinessStatus","endpointDomain","endpointType","policyDocument","regionId","resourceGroupId","serviceId","serviceName","status","vpcId","zonePrivateIpAddressCount"],"inputProperties":{"addressIpVersion":{"type":"string","description":"The IP address version. Valid values:\n- `IPv4` (default): IPv4.\n- `DualStack`: dual-stack.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"endpointDescription":{"type":"string","description":"The description of the endpoint.\n"},"endpointType":{"type":"string","description":"The endpoint type.\n\nOnly the value: Interface, indicating the Interface endpoint. You can add the service resource types of Application Load Balancer (ALB), Classic Load Balancer (CLB), and Network Load Balancer (NLB).\n","willReplaceOnChanges":true},"policyDocument":{"type":"string","description":"RAM access policies. For more information about policy definitions, see Alibaba Cloud-access control (RAM) official guidance.\n"},"protectedEnabled":{"type":"boolean","description":"Specifies whether to enable user authentication. This parameter is available in Security Token Service (STS) mode. Valid values:\n"},"resourceGroupId":{"type":"string","description":"The resource group ID.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The ID of the security group that is associated with the endpoint ENI. The security group can be used to control data transfer between the VPC and the endpoint ENI.\n\nThe endpoint can be associated with up to 10 security groups.\n"},"serviceId":{"type":"string","description":"The ID of the endpoint service with which the endpoint is associated.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The name of the endpoint service with which the endpoint is associated.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags.\n"},"vpcEndpointName":{"type":"string","description":"The name of the endpoint.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the endpoint belongs.\n","willReplaceOnChanges":true},"zonePrivateIpAddressCount":{"type":"integer","description":"The number of private IP addresses that are assigned to an elastic network interface (ENI) in each zone. Only 1 is returned.\n","willReplaceOnChanges":true}},"requiredInputs":["vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcEndpoint resources.\n","properties":{"addressIpVersion":{"type":"string","description":"The IP address version. Valid values:\n- `IPv4` (default): IPv4.\n- `DualStack`: dual-stack.\n"},"bandwidth":{"type":"integer","description":"The bandwidth of the endpoint connection.  1024 to 10240. Unit: Mbit/s.\n"},"connectionStatus":{"type":"string","description":"The state of the endpoint connection.\n"},"createTime":{"type":"string","description":"The time when the endpoint was created.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"endpointBusinessStatus":{"type":"string","description":"The service state of the endpoint.\n"},"endpointDescription":{"type":"string","description":"The description of the endpoint.\n"},"endpointDomain":{"type":"string","description":"The domain name of the endpoint.\n"},"endpointType":{"type":"string","description":"The endpoint type.\n\nOnly the value: Interface, indicating the Interface endpoint. You can add the service resource types of Application Load Balancer (ALB), Classic Load Balancer (CLB), and Network Load Balancer (NLB).\n","willReplaceOnChanges":true},"policyDocument":{"type":"string","description":"RAM access policies. For more information about policy definitions, see Alibaba Cloud-access control (RAM) official guidance.\n"},"protectedEnabled":{"type":"boolean","description":"Specifies whether to enable user authentication. This parameter is available in Security Token Service (STS) mode. Valid values:\n"},"regionId":{"type":"string","description":"(Available since v1.239.0) The region ID of the endpoint.\n"},"resourceGroupId":{"type":"string","description":"The resource group ID.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"The ID of the security group that is associated with the endpoint ENI. The security group can be used to control data transfer between the VPC and the endpoint ENI.\n\nThe endpoint can be associated with up to 10 security groups.\n"},"serviceId":{"type":"string","description":"The ID of the endpoint service with which the endpoint is associated.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The name of the endpoint service with which the endpoint is associated.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The state of the endpoint.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags.\n"},"vpcEndpointName":{"type":"string","description":"The name of the endpoint.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the endpoint belongs.\n","willReplaceOnChanges":true},"zonePrivateIpAddressCount":{"type":"integer","description":"The number of private IP addresses that are assigned to an elastic network interface (ENI) in each zone. Only 1 is returned.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:privatelink/vpcEndpointService:VpcEndpointService":{"description":"Provides a Private Link Vpc Endpoint Service resource.\n\n\n\nFor information about Private Link Vpc Endpoint Service and how to use it, see [What is Vpc Endpoint Service](https://www.alibabacloud.com/help/en/privatelink/latest/api-privatelink-2020-04-15-createvpcendpointservice).\n\n\u003e **NOTE:** Available since v1.109.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst example = new alicloud.privatelink.VpcEndpointService(\"example\", {\n    serviceDescription: name,\n    connectBandwidth: 103,\n    autoAcceptConnection: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\nexample = alicloud.privatelink.VpcEndpointService(\"example\",\n    service_description=name,\n    connect_bandwidth=103,\n    auto_accept_connection=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var example = new AliCloud.PrivateLink.VpcEndpointService(\"example\", new()\n    {\n        ServiceDescription = name,\n        ConnectBandwidth = 103,\n        AutoAcceptConnection = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/privatelink\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := privatelink.NewVpcEndpointService(ctx, \"example\", \u0026privatelink.VpcEndpointServiceArgs{\n\t\t\tServiceDescription:   pulumi.String(name),\n\t\t\tConnectBandwidth:     pulumi.Int(103),\n\t\t\tAutoAcceptConnection: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.privatelink.VpcEndpointService;\nimport com.pulumi.alicloud.privatelink.VpcEndpointServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var example = new VpcEndpointService(\"example\", VpcEndpointServiceArgs.builder()\n            .serviceDescription(name)\n            .connectBandwidth(103)\n            .autoAcceptConnection(false)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  example:\n    type: alicloud:privatelink:VpcEndpointService\n    properties:\n      serviceDescription: ${name}\n      connectBandwidth: 103\n      autoAcceptConnection: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPrivate Link Vpc Endpoint Service can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:privatelink/vpcEndpointService:VpcEndpointService example \u003cid\u003e\n```\n\n","properties":{"addressIpVersion":{"type":"string","description":"The IP address version.\n"},"autoAcceptConnection":{"type":"boolean","description":"Indicates whether the endpoint service automatically accepts endpoint connection requests. Valid values:\n"},"connectBandwidth":{"type":"integer","description":"The default bandwidth of the endpoint connection. Valid values: 100 to 10240. Unit: Mbit/s.\n"},"createTime":{"type":"string","description":"The time when the endpoint service was created.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request.\n"},"payer":{"type":"string","description":"The payer of the endpoint service. Valid values:\n- `Endpoint`: the service consumer.\n- `EndpointService`: the service provider.\n"},"regionId":{"type":"string","description":"The ID of the region to which the endpoint service belongs.\n"},"resourceGroupId":{"type":"string","description":"The resource group ID.\n"},"serviceBusinessStatus":{"type":"string","description":"The service state of the endpoint service.\n"},"serviceDescription":{"type":"string","description":"The description of the endpoint service.\n"},"serviceDomain":{"type":"string","description":"The domain name of the endpoint service.\n"},"serviceResourceType":{"type":"string","description":"The service resource type. Value:\n"},"serviceSupportIpv6":{"type":"boolean","description":"Specifies whether to enable IPv6 for the endpoint service. Valid values:\n"},"status":{"type":"string","description":"The state of the endpoint service.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags.\n"},"vpcEndpointServiceName":{"type":"string","description":"The name of the endpoint service.\n"},"zoneAffinityEnabled":{"type":"boolean","description":"Specifies whether to first resolve the domain name of the nearest endpoint that is associated with the endpoint service. Valid values:\n"}},"required":["addressIpVersion","connectBandwidth","createTime","payer","regionId","resourceGroupId","serviceBusinessStatus","serviceDomain","serviceResourceType","serviceSupportIpv6","status","vpcEndpointServiceName","zoneAffinityEnabled"],"inputProperties":{"addressIpVersion":{"type":"string","description":"The IP address version.\n"},"autoAcceptConnection":{"type":"boolean","description":"Indicates whether the endpoint service automatically accepts endpoint connection requests. Valid values:\n"},"connectBandwidth":{"type":"integer","description":"The default bandwidth of the endpoint connection. Valid values: 100 to 10240. Unit: Mbit/s.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request.\n"},"payer":{"type":"string","description":"The payer of the endpoint service. Valid values:\n- `Endpoint`: the service consumer.\n- `EndpointService`: the service provider.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The resource group ID.\n"},"serviceDescription":{"type":"string","description":"The description of the endpoint service.\n"},"serviceResourceType":{"type":"string","description":"The service resource type. Value:\n","willReplaceOnChanges":true},"serviceSupportIpv6":{"type":"boolean","description":"Specifies whether to enable IPv6 for the endpoint service. Valid values:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags.\n"},"zoneAffinityEnabled":{"type":"boolean","description":"Specifies whether to first resolve the domain name of the nearest endpoint that is associated with the endpoint service. Valid values:\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering VpcEndpointService resources.\n","properties":{"addressIpVersion":{"type":"string","description":"The IP address version.\n"},"autoAcceptConnection":{"type":"boolean","description":"Indicates whether the endpoint service automatically accepts endpoint connection requests. Valid values:\n"},"connectBandwidth":{"type":"integer","description":"The default bandwidth of the endpoint connection. Valid values: 100 to 10240. Unit: Mbit/s.\n"},"createTime":{"type":"string","description":"The time when the endpoint service was created.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request.\n"},"payer":{"type":"string","description":"The payer of the endpoint service. Valid values:\n- `Endpoint`: the service consumer.\n- `EndpointService`: the service provider.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The ID of the region to which the endpoint service belongs.\n"},"resourceGroupId":{"type":"string","description":"The resource group ID.\n"},"serviceBusinessStatus":{"type":"string","description":"The service state of the endpoint service.\n"},"serviceDescription":{"type":"string","description":"The description of the endpoint service.\n"},"serviceDomain":{"type":"string","description":"The domain name of the endpoint service.\n"},"serviceResourceType":{"type":"string","description":"The service resource type. Value:\n","willReplaceOnChanges":true},"serviceSupportIpv6":{"type":"boolean","description":"Specifies whether to enable IPv6 for the endpoint service. Valid values:\n"},"status":{"type":"string","description":"The state of the endpoint service.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags.\n"},"vpcEndpointServiceName":{"type":"string","description":"The name of the endpoint service.\n"},"zoneAffinityEnabled":{"type":"boolean","description":"Specifies whether to first resolve the domain name of the nearest endpoint that is associated with the endpoint service. Valid values:\n"}},"type":"object"}},"alicloud:privatelink/vpcEndpointServiceConnection:VpcEndpointServiceConnection":{"description":"Provides a Private Link Vpc Endpoint Connection resource.\n\nvpc endpoint connection.\n\nFor information about Private Link Vpc Endpoint Connection and how to use it, see [What is Vpc Endpoint Connection](https://www.alibabacloud.com/help/en/privatelink/latest/api-privatelink-2020-04-15-enablevpcendpointzoneconnection).\n\n\u003e **NOTE:** Available since v1.110.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst example = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst exampleVpcEndpointService = new alicloud.privatelink.VpcEndpointService(\"example\", {\n    serviceDescription: name,\n    connectBandwidth: 103,\n    autoAcceptConnection: false,\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"10.0.0.0/8\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: name,\n    cidrBlock: \"10.1.0.0/16\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: name,\n    vpcId: exampleNetwork.id,\n});\nconst exampleApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"example\", {\n    loadBalancerName: name,\n    vswitchId: exampleSwitch.id,\n    loadBalancerSpec: \"slb.s2.small\",\n    addressType: \"intranet\",\n});\nconst exampleVpcEndpointServiceResource = new alicloud.privatelink.VpcEndpointServiceResource(\"example\", {\n    serviceId: exampleVpcEndpointService.id,\n    resourceId: exampleApplicationLoadBalancer.id,\n    resourceType: \"slb\",\n});\nconst exampleVpcEndpoint = new alicloud.privatelink.VpcEndpoint(\"example\", {\n    serviceId: exampleVpcEndpointServiceResource.serviceId,\n    securityGroupIds: [exampleSecurityGroup.id],\n    vpcId: exampleNetwork.id,\n    vpcEndpointName: name,\n});\nconst exampleVpcEndpointServiceConnection = new alicloud.privatelink.VpcEndpointServiceConnection(\"example\", {\n    endpointId: exampleVpcEndpoint.id,\n    serviceId: exampleVpcEndpoint.serviceId,\n    bandwidth: 1024,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\nexample = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample_vpc_endpoint_service = alicloud.privatelink.VpcEndpointService(\"example\",\n    service_description=name,\n    connect_bandwidth=103,\n    auto_accept_connection=False)\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"10.0.0.0/8\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=name,\n    cidr_block=\"10.1.0.0/16\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=name,\n    vpc_id=example_network.id)\nexample_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"example\",\n    load_balancer_name=name,\n    vswitch_id=example_switch.id,\n    load_balancer_spec=\"slb.s2.small\",\n    address_type=\"intranet\")\nexample_vpc_endpoint_service_resource = alicloud.privatelink.VpcEndpointServiceResource(\"example\",\n    service_id=example_vpc_endpoint_service.id,\n    resource_id=example_application_load_balancer.id,\n    resource_type=\"slb\")\nexample_vpc_endpoint = alicloud.privatelink.VpcEndpoint(\"example\",\n    service_id=example_vpc_endpoint_service_resource.service_id,\n    security_group_ids=[example_security_group.id],\n    vpc_id=example_network.id,\n    vpc_endpoint_name=name)\nexample_vpc_endpoint_service_connection = alicloud.privatelink.VpcEndpointServiceConnection(\"example\",\n    endpoint_id=example_vpc_endpoint.id,\n    service_id=example_vpc_endpoint.service_id,\n    bandwidth=1024)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var exampleVpcEndpointService = new AliCloud.PrivateLink.VpcEndpointService(\"example\", new()\n    {\n        ServiceDescription = name,\n        ConnectBandwidth = 103,\n        AutoAcceptConnection = false,\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.1.0.0/16\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = name,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"example\", new()\n    {\n        LoadBalancerName = name,\n        VswitchId = exampleSwitch.Id,\n        LoadBalancerSpec = \"slb.s2.small\",\n        AddressType = \"intranet\",\n    });\n\n    var exampleVpcEndpointServiceResource = new AliCloud.PrivateLink.VpcEndpointServiceResource(\"example\", new()\n    {\n        ServiceId = exampleVpcEndpointService.Id,\n        ResourceId = exampleApplicationLoadBalancer.Id,\n        ResourceType = \"slb\",\n    });\n\n    var exampleVpcEndpoint = new AliCloud.PrivateLink.VpcEndpoint(\"example\", new()\n    {\n        ServiceId = exampleVpcEndpointServiceResource.ServiceId,\n        SecurityGroupIds = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n        VpcId = exampleNetwork.Id,\n        VpcEndpointName = name,\n    });\n\n    var exampleVpcEndpointServiceConnection = new AliCloud.PrivateLink.VpcEndpointServiceConnection(\"example\", new()\n    {\n        EndpointId = exampleVpcEndpoint.Id,\n        ServiceId = exampleVpcEndpoint.ServiceId,\n        Bandwidth = 1024,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/privatelink\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpcEndpointService, err := privatelink.NewVpcEndpointService(ctx, \"example\", \u0026privatelink.VpcEndpointServiceArgs{\n\t\t\tServiceDescription:   pulumi.String(name),\n\t\t\tConnectBandwidth:     pulumi.Int(103),\n\t\t\tAutoAcceptConnection: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.1.0.0/16\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleApplicationLoadBalancer, err := slb.NewApplicationLoadBalancer(ctx, \"example\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tVswitchId:        exampleSwitch.ID(),\n\t\t\tLoadBalancerSpec: pulumi.String(\"slb.s2.small\"),\n\t\t\tAddressType:      pulumi.String(\"intranet\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpcEndpointServiceResource, err := privatelink.NewVpcEndpointServiceResource(ctx, \"example\", \u0026privatelink.VpcEndpointServiceResourceArgs{\n\t\t\tServiceId:    exampleVpcEndpointService.ID(),\n\t\t\tResourceId:   exampleApplicationLoadBalancer.ID(),\n\t\t\tResourceType: pulumi.String(\"slb\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpcEndpoint, err := privatelink.NewVpcEndpoint(ctx, \"example\", \u0026privatelink.VpcEndpointArgs{\n\t\t\tServiceId: exampleVpcEndpointServiceResource.ServiceId,\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVpcId:           exampleNetwork.ID(),\n\t\t\tVpcEndpointName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatelink.NewVpcEndpointServiceConnection(ctx, \"example\", \u0026privatelink.VpcEndpointServiceConnectionArgs{\n\t\t\tEndpointId: exampleVpcEndpoint.ID(),\n\t\t\tServiceId:  exampleVpcEndpoint.ServiceId,\n\t\t\tBandwidth:  pulumi.Int(1024),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.privatelink.VpcEndpointService;\nimport com.pulumi.alicloud.privatelink.VpcEndpointServiceArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.privatelink.VpcEndpointServiceResource;\nimport com.pulumi.alicloud.privatelink.VpcEndpointServiceResourceArgs;\nimport com.pulumi.alicloud.privatelink.VpcEndpoint;\nimport com.pulumi.alicloud.privatelink.VpcEndpointArgs;\nimport com.pulumi.alicloud.privatelink.VpcEndpointServiceConnection;\nimport com.pulumi.alicloud.privatelink.VpcEndpointServiceConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var exampleVpcEndpointService = new VpcEndpointService(\"exampleVpcEndpointService\", VpcEndpointServiceArgs.builder()\n            .serviceDescription(name)\n            .connectBandwidth(103)\n            .autoAcceptConnection(false)\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.1.0.0/16\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleApplicationLoadBalancer = new ApplicationLoadBalancer(\"exampleApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .vswitchId(exampleSwitch.id())\n            .loadBalancerSpec(\"slb.s2.small\")\n            .addressType(\"intranet\")\n            .build());\n\n        var exampleVpcEndpointServiceResource = new VpcEndpointServiceResource(\"exampleVpcEndpointServiceResource\", VpcEndpointServiceResourceArgs.builder()\n            .serviceId(exampleVpcEndpointService.id())\n            .resourceId(exampleApplicationLoadBalancer.id())\n            .resourceType(\"slb\")\n            .build());\n\n        var exampleVpcEndpoint = new VpcEndpoint(\"exampleVpcEndpoint\", VpcEndpointArgs.builder()\n            .serviceId(exampleVpcEndpointServiceResource.serviceId())\n            .securityGroupIds(exampleSecurityGroup.id())\n            .vpcId(exampleNetwork.id())\n            .vpcEndpointName(name)\n            .build());\n\n        var exampleVpcEndpointServiceConnection = new VpcEndpointServiceConnection(\"exampleVpcEndpointServiceConnection\", VpcEndpointServiceConnectionArgs.builder()\n            .endpointId(exampleVpcEndpoint.id())\n            .serviceId(exampleVpcEndpoint.serviceId())\n            .bandwidth(1024)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  exampleVpcEndpointService:\n    type: alicloud:privatelink:VpcEndpointService\n    name: example\n    properties:\n      serviceDescription: ${name}\n      connectBandwidth: 103\n      autoAcceptConnection: false\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.0.0.0/8\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.1.0.0/16\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: ${name}\n      vpcId: ${exampleNetwork.id}\n  exampleApplicationLoadBalancer:\n    type: alicloud:slb:ApplicationLoadBalancer\n    name: example\n    properties:\n      loadBalancerName: ${name}\n      vswitchId: ${exampleSwitch.id}\n      loadBalancerSpec: slb.s2.small\n      addressType: intranet\n  exampleVpcEndpointServiceResource:\n    type: alicloud:privatelink:VpcEndpointServiceResource\n    name: example\n    properties:\n      serviceId: ${exampleVpcEndpointService.id}\n      resourceId: ${exampleApplicationLoadBalancer.id}\n      resourceType: slb\n  exampleVpcEndpoint:\n    type: alicloud:privatelink:VpcEndpoint\n    name: example\n    properties:\n      serviceId: ${exampleVpcEndpointServiceResource.serviceId}\n      securityGroupIds:\n        - ${exampleSecurityGroup.id}\n      vpcId: ${exampleNetwork.id}\n      vpcEndpointName: ${name}\n  exampleVpcEndpointServiceConnection:\n    type: alicloud:privatelink:VpcEndpointServiceConnection\n    name: example\n    properties:\n      endpointId: ${exampleVpcEndpoint.id}\n      serviceId: ${exampleVpcEndpoint.serviceId}\n      bandwidth: '1024'\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPrivate Link Vpc Endpoint Connection can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:privatelink/vpcEndpointServiceConnection:VpcEndpointServiceConnection example \u003cservice_id\u003e:\u003cendpoint_id\u003e\n```\n\n","properties":{"bandwidth":{"type":"integer","description":"The bandwidth of the endpoint connection. Valid values: 1024 to 10240. Unit: Mbit/s.\n\nNote: The bandwidth of an endpoint connection is in the range of 100 to 10,240 Mbit/s. The default bandwidth is 1,024 Mbit/s. When the endpoint is connected to the endpoint service, the default bandwidth is the minimum bandwidth. In this case, the connection bandwidth range is 1,024 to 10,240 Mbit/s.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"endpointId":{"type":"string","description":"The endpoint ID.\n"},"serviceId":{"type":"string","description":"The endpoint service ID.\n"},"status":{"type":"string","description":"The state of the endpoint connection.\n"}},"required":["bandwidth","endpointId","serviceId","status"],"inputProperties":{"bandwidth":{"type":"integer","description":"The bandwidth of the endpoint connection. Valid values: 1024 to 10240. Unit: Mbit/s.\n\nNote: The bandwidth of an endpoint connection is in the range of 100 to 10,240 Mbit/s. The default bandwidth is 1,024 Mbit/s. When the endpoint is connected to the endpoint service, the default bandwidth is the minimum bandwidth. In this case, the connection bandwidth range is 1,024 to 10,240 Mbit/s.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"endpointId":{"type":"string","description":"The endpoint ID.\n","willReplaceOnChanges":true},"serviceId":{"type":"string","description":"The endpoint service ID.\n","willReplaceOnChanges":true}},"requiredInputs":["endpointId","serviceId"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcEndpointServiceConnection resources.\n","properties":{"bandwidth":{"type":"integer","description":"The bandwidth of the endpoint connection. Valid values: 1024 to 10240. Unit: Mbit/s.\n\nNote: The bandwidth of an endpoint connection is in the range of 100 to 10,240 Mbit/s. The default bandwidth is 1,024 Mbit/s. When the endpoint is connected to the endpoint service, the default bandwidth is the minimum bandwidth. In this case, the connection bandwidth range is 1,024 to 10,240 Mbit/s.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"endpointId":{"type":"string","description":"The endpoint ID.\n","willReplaceOnChanges":true},"serviceId":{"type":"string","description":"The endpoint service ID.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The state of the endpoint connection.\n"}},"type":"object"}},"alicloud:privatelink/vpcEndpointServiceResource:VpcEndpointServiceResource":{"description":"Provides a Private Link Vpc Endpoint Service Resource resource.\n\nEndpoint service resource.\n\nFor information about Private Link Vpc Endpoint Service Resource and how to use it, see [What is Vpc Endpoint Service Resource](https://www.alibabacloud.com/help/en/privatelink/latest/api-privatelink-2020-04-15-attachresourcetovpcendpointservice).\n\n\u003e **NOTE:** Available since v1.110.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst example = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst exampleVpcEndpointService = new alicloud.privatelink.VpcEndpointService(\"example\", {\n    serviceDescription: name,\n    connectBandwidth: 103,\n    autoAcceptConnection: false,\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"10.0.0.0/8\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: name,\n    cidrBlock: \"10.1.0.0/16\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    securityGroupName: name,\n    vpcId: exampleNetwork.id,\n});\nconst exampleApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"example\", {\n    loadBalancerName: name,\n    vswitchId: exampleSwitch.id,\n    loadBalancerSpec: \"slb.s2.small\",\n    addressType: \"intranet\",\n});\nconst exampleVpcEndpoint = new alicloud.privatelink.VpcEndpoint(\"example\", {\n    serviceId: exampleVpcEndpointService.id,\n    securityGroupIds: [exampleSecurityGroup.id],\n    vpcId: exampleNetwork.id,\n    vpcEndpointName: name,\n});\nconst exampleVpcEndpointServiceResource = new alicloud.privatelink.VpcEndpointServiceResource(\"example\", {\n    serviceId: exampleVpcEndpointService.id,\n    resourceId: exampleApplicationLoadBalancer.id,\n    resourceType: \"slb\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\nexample = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample_vpc_endpoint_service = alicloud.privatelink.VpcEndpointService(\"example\",\n    service_description=name,\n    connect_bandwidth=103,\n    auto_accept_connection=False)\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"10.0.0.0/8\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=name,\n    cidr_block=\"10.1.0.0/16\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    security_group_name=name,\n    vpc_id=example_network.id)\nexample_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"example\",\n    load_balancer_name=name,\n    vswitch_id=example_switch.id,\n    load_balancer_spec=\"slb.s2.small\",\n    address_type=\"intranet\")\nexample_vpc_endpoint = alicloud.privatelink.VpcEndpoint(\"example\",\n    service_id=example_vpc_endpoint_service.id,\n    security_group_ids=[example_security_group.id],\n    vpc_id=example_network.id,\n    vpc_endpoint_name=name)\nexample_vpc_endpoint_service_resource = alicloud.privatelink.VpcEndpointServiceResource(\"example\",\n    service_id=example_vpc_endpoint_service.id,\n    resource_id=example_application_load_balancer.id,\n    resource_type=\"slb\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var exampleVpcEndpointService = new AliCloud.PrivateLink.VpcEndpointService(\"example\", new()\n    {\n        ServiceDescription = name,\n        ConnectBandwidth = 103,\n        AutoAcceptConnection = false,\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.1.0.0/16\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        SecurityGroupName = name,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"example\", new()\n    {\n        LoadBalancerName = name,\n        VswitchId = exampleSwitch.Id,\n        LoadBalancerSpec = \"slb.s2.small\",\n        AddressType = \"intranet\",\n    });\n\n    var exampleVpcEndpoint = new AliCloud.PrivateLink.VpcEndpoint(\"example\", new()\n    {\n        ServiceId = exampleVpcEndpointService.Id,\n        SecurityGroupIds = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n        VpcId = exampleNetwork.Id,\n        VpcEndpointName = name,\n    });\n\n    var exampleVpcEndpointServiceResource = new AliCloud.PrivateLink.VpcEndpointServiceResource(\"example\", new()\n    {\n        ServiceId = exampleVpcEndpointService.Id,\n        ResourceId = exampleApplicationLoadBalancer.Id,\n        ResourceType = \"slb\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/privatelink\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpcEndpointService, err := privatelink.NewVpcEndpointService(ctx, \"example\", \u0026privatelink.VpcEndpointServiceArgs{\n\t\t\tServiceDescription:   pulumi.String(name),\n\t\t\tConnectBandwidth:     pulumi.Int(103),\n\t\t\tAutoAcceptConnection: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.1.0.0/16\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(name),\n\t\t\tVpcId:             exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleApplicationLoadBalancer, err := slb.NewApplicationLoadBalancer(ctx, \"example\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tVswitchId:        exampleSwitch.ID(),\n\t\t\tLoadBalancerSpec: pulumi.String(\"slb.s2.small\"),\n\t\t\tAddressType:      pulumi.String(\"intranet\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatelink.NewVpcEndpoint(ctx, \"example\", \u0026privatelink.VpcEndpointArgs{\n\t\t\tServiceId: exampleVpcEndpointService.ID(),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVpcId:           exampleNetwork.ID(),\n\t\t\tVpcEndpointName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatelink.NewVpcEndpointServiceResource(ctx, \"example\", \u0026privatelink.VpcEndpointServiceResourceArgs{\n\t\t\tServiceId:    exampleVpcEndpointService.ID(),\n\t\t\tResourceId:   exampleApplicationLoadBalancer.ID(),\n\t\t\tResourceType: pulumi.String(\"slb\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.privatelink.VpcEndpointService;\nimport com.pulumi.alicloud.privatelink.VpcEndpointServiceArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.privatelink.VpcEndpoint;\nimport com.pulumi.alicloud.privatelink.VpcEndpointArgs;\nimport com.pulumi.alicloud.privatelink.VpcEndpointServiceResource;\nimport com.pulumi.alicloud.privatelink.VpcEndpointServiceResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var exampleVpcEndpointService = new VpcEndpointService(\"exampleVpcEndpointService\", VpcEndpointServiceArgs.builder()\n            .serviceDescription(name)\n            .connectBandwidth(103)\n            .autoAcceptConnection(false)\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.1.0.0/16\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(name)\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleApplicationLoadBalancer = new ApplicationLoadBalancer(\"exampleApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .vswitchId(exampleSwitch.id())\n            .loadBalancerSpec(\"slb.s2.small\")\n            .addressType(\"intranet\")\n            .build());\n\n        var exampleVpcEndpoint = new VpcEndpoint(\"exampleVpcEndpoint\", VpcEndpointArgs.builder()\n            .serviceId(exampleVpcEndpointService.id())\n            .securityGroupIds(exampleSecurityGroup.id())\n            .vpcId(exampleNetwork.id())\n            .vpcEndpointName(name)\n            .build());\n\n        var exampleVpcEndpointServiceResource = new VpcEndpointServiceResource(\"exampleVpcEndpointServiceResource\", VpcEndpointServiceResourceArgs.builder()\n            .serviceId(exampleVpcEndpointService.id())\n            .resourceId(exampleApplicationLoadBalancer.id())\n            .resourceType(\"slb\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  exampleVpcEndpointService:\n    type: alicloud:privatelink:VpcEndpointService\n    name: example\n    properties:\n      serviceDescription: ${name}\n      connectBandwidth: 103\n      autoAcceptConnection: false\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.0.0.0/8\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.1.0.0/16\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      securityGroupName: ${name}\n      vpcId: ${exampleNetwork.id}\n  exampleApplicationLoadBalancer:\n    type: alicloud:slb:ApplicationLoadBalancer\n    name: example\n    properties:\n      loadBalancerName: ${name}\n      vswitchId: ${exampleSwitch.id}\n      loadBalancerSpec: slb.s2.small\n      addressType: intranet\n  exampleVpcEndpoint:\n    type: alicloud:privatelink:VpcEndpoint\n    name: example\n    properties:\n      serviceId: ${exampleVpcEndpointService.id}\n      securityGroupIds:\n        - ${exampleSecurityGroup.id}\n      vpcId: ${exampleNetwork.id}\n      vpcEndpointName: ${name}\n  exampleVpcEndpointServiceResource:\n    type: alicloud:privatelink:VpcEndpointServiceResource\n    name: example\n    properties:\n      serviceId: ${exampleVpcEndpointService.id}\n      resourceId: ${exampleApplicationLoadBalancer.id}\n      resourceType: slb\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPrivate Link Vpc Endpoint Service Resource can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:privatelink/vpcEndpointServiceResource:VpcEndpointServiceResource example \u003cservice_id\u003e:\u003cresource_id\u003e:\u003czone_id\u003e\n```\n\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"regionId":{"type":"string","description":"(Available since v1.235.0) The ID of the region where the service resource is deployed.\n"},"resourceId":{"type":"string","description":"The service resource ID.\n"},"resourceType":{"type":"string","description":"Service resource type, value:\n"},"serviceId":{"type":"string","description":"The endpoint service ID.\n"},"zoneId":{"type":"string","description":"The ID of the zone to which the service resource belongs. (valid when the resource type is nlb/alb).\n"}},"required":["regionId","resourceId","resourceType","serviceId","zoneId"],"inputProperties":{"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"resourceId":{"type":"string","description":"The service resource ID.\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"Service resource type, value:\n","willReplaceOnChanges":true},"serviceId":{"type":"string","description":"The endpoint service ID.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The ID of the zone to which the service resource belongs. (valid when the resource type is nlb/alb).\n","willReplaceOnChanges":true}},"requiredInputs":["resourceId","resourceType","serviceId"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcEndpointServiceResource resources.\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"regionId":{"type":"string","description":"(Available since v1.235.0) The ID of the region where the service resource is deployed.\n"},"resourceId":{"type":"string","description":"The service resource ID.\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"Service resource type, value:\n","willReplaceOnChanges":true},"serviceId":{"type":"string","description":"The endpoint service ID.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The ID of the zone to which the service resource belongs. (valid when the resource type is nlb/alb).\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:privatelink/vpcEndpointServiceUser:VpcEndpointServiceUser":{"description":"Provides a Private Link Vpc Endpoint Service User resource.\n\nEndpoint service user whitelist.\n\nFor information about Private Link Vpc Endpoint Service User and how to use it, see [What is Vpc Endpoint Service User](https://www.alibabacloud.com/help/en/privatelink/latest/api-privatelink-2020-04-15-addusertovpcendpointservice).\n\n\u003e **NOTE:** Available since v1.110.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexampleuser\";\nconst example = new alicloud.privatelink.VpcEndpointService(\"example\", {\n    serviceDescription: name,\n    connectBandwidth: 103,\n    autoAcceptConnection: false,\n});\nconst exampleUser = new alicloud.ram.User(\"example\", {\n    name: name,\n    displayName: \"user_display_name\",\n    mobile: \"86-18688888888\",\n    email: \"hello.uuu@aaa.com\",\n    comments: \"yoyoyo\",\n});\nconst exampleVpcEndpointServiceUser = new alicloud.privatelink.VpcEndpointServiceUser(\"example\", {\n    serviceId: example.id,\n    userId: exampleUser.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexampleuser\"\nexample = alicloud.privatelink.VpcEndpointService(\"example\",\n    service_description=name,\n    connect_bandwidth=103,\n    auto_accept_connection=False)\nexample_user = alicloud.ram.User(\"example\",\n    name=name,\n    display_name=\"user_display_name\",\n    mobile=\"86-18688888888\",\n    email=\"hello.uuu@aaa.com\",\n    comments=\"yoyoyo\")\nexample_vpc_endpoint_service_user = alicloud.privatelink.VpcEndpointServiceUser(\"example\",\n    service_id=example.id,\n    user_id=example_user.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexampleuser\";\n    var example = new AliCloud.PrivateLink.VpcEndpointService(\"example\", new()\n    {\n        ServiceDescription = name,\n        ConnectBandwidth = 103,\n        AutoAcceptConnection = false,\n    });\n\n    var exampleUser = new AliCloud.Ram.User(\"example\", new()\n    {\n        Name = name,\n        DisplayName = \"user_display_name\",\n        Mobile = \"86-18688888888\",\n        Email = \"hello.uuu@aaa.com\",\n        Comments = \"yoyoyo\",\n    });\n\n    var exampleVpcEndpointServiceUser = new AliCloud.PrivateLink.VpcEndpointServiceUser(\"example\", new()\n    {\n        ServiceId = example.Id,\n        UserId = exampleUser.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/privatelink\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexampleuser\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := privatelink.NewVpcEndpointService(ctx, \"example\", \u0026privatelink.VpcEndpointServiceArgs{\n\t\t\tServiceDescription:   pulumi.String(name),\n\t\t\tConnectBandwidth:     pulumi.Int(103),\n\t\t\tAutoAcceptConnection: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUser, err := ram.NewUser(ctx, \"example\", \u0026ram.UserArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tDisplayName: pulumi.String(\"user_display_name\"),\n\t\t\tMobile:      pulumi.String(\"86-18688888888\"),\n\t\t\tEmail:       pulumi.String(\"hello.uuu@aaa.com\"),\n\t\t\tComments:    pulumi.String(\"yoyoyo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatelink.NewVpcEndpointServiceUser(ctx, \"example\", \u0026privatelink.VpcEndpointServiceUserArgs{\n\t\t\tServiceId: example.ID(),\n\t\t\tUserId:    exampleUser.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.privatelink.VpcEndpointService;\nimport com.pulumi.alicloud.privatelink.VpcEndpointServiceArgs;\nimport com.pulumi.alicloud.ram.User;\nimport com.pulumi.alicloud.ram.UserArgs;\nimport com.pulumi.alicloud.privatelink.VpcEndpointServiceUser;\nimport com.pulumi.alicloud.privatelink.VpcEndpointServiceUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexampleuser\");\n        var example = new VpcEndpointService(\"example\", VpcEndpointServiceArgs.builder()\n            .serviceDescription(name)\n            .connectBandwidth(103)\n            .autoAcceptConnection(false)\n            .build());\n\n        var exampleUser = new User(\"exampleUser\", UserArgs.builder()\n            .name(name)\n            .displayName(\"user_display_name\")\n            .mobile(\"86-18688888888\")\n            .email(\"hello.uuu@aaa.com\")\n            .comments(\"yoyoyo\")\n            .build());\n\n        var exampleVpcEndpointServiceUser = new VpcEndpointServiceUser(\"exampleVpcEndpointServiceUser\", VpcEndpointServiceUserArgs.builder()\n            .serviceId(example.id())\n            .userId(exampleUser.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexampleuser\nresources:\n  example:\n    type: alicloud:privatelink:VpcEndpointService\n    properties:\n      serviceDescription: ${name}\n      connectBandwidth: 103\n      autoAcceptConnection: false\n  exampleUser:\n    type: alicloud:ram:User\n    name: example\n    properties:\n      name: ${name}\n      displayName: user_display_name\n      mobile: 86-18688888888\n      email: hello.uuu@aaa.com\n      comments: yoyoyo\n  exampleVpcEndpointServiceUser:\n    type: alicloud:privatelink:VpcEndpointServiceUser\n    name: example\n    properties:\n      serviceId: ${example.id}\n      userId: ${exampleUser.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPrivate Link Vpc Endpoint Service User can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:privatelink/vpcEndpointServiceUser:VpcEndpointServiceUser example \u003cservice_id\u003e:\u003cuser_id\u003e\n```\n\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"serviceId":{"type":"string","description":"The endpoint service ID.\n"},"userArn":{"type":"string","description":"The whitelist in the format of ARN.\n"},"userId":{"type":"string","description":"The ID of the Alibaba Cloud account in the whitelist of the endpoint service.\n"}},"required":["serviceId","userId"],"inputProperties":{"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"serviceId":{"type":"string","description":"The endpoint service ID.\n","willReplaceOnChanges":true},"userArn":{"type":"string","description":"The whitelist in the format of ARN.\n"},"userId":{"type":"string","description":"The ID of the Alibaba Cloud account in the whitelist of the endpoint service.\n","willReplaceOnChanges":true}},"requiredInputs":["serviceId","userId"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcEndpointServiceUser resources.\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"serviceId":{"type":"string","description":"The endpoint service ID.\n","willReplaceOnChanges":true},"userArn":{"type":"string","description":"The whitelist in the format of ARN.\n"},"userId":{"type":"string","description":"The ID of the Alibaba Cloud account in the whitelist of the endpoint service.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:privatelink/vpcEndpointZone:VpcEndpointZone":{"description":"Provides a Private Link Vpc Endpoint Zone resource.\n\n\n\nFor information about Private Link Vpc Endpoint Zone and how to use it, see [What is Vpc Endpoint Zone](https://www.alibabacloud.com/help/en/privatelink/latest/api-privatelink-2020-04-15-addzonetovpcendpoint).\n\n\u003e **NOTE:** Available since v1.111.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst example = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst exampleVpcEndpointService = new alicloud.privatelink.VpcEndpointService(\"example\", {\n    serviceDescription: name,\n    connectBandwidth: 103,\n    autoAcceptConnection: false,\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"10.0.0.0/8\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: name,\n    cidrBlock: \"10.1.0.0/16\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: name,\n    vpcId: exampleNetwork.id,\n});\nconst exampleApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"example\", {\n    loadBalancerName: name,\n    vswitchId: exampleSwitch.id,\n    loadBalancerSpec: \"slb.s2.small\",\n    addressType: \"intranet\",\n});\nconst exampleVpcEndpointServiceResource = new alicloud.privatelink.VpcEndpointServiceResource(\"example\", {\n    serviceId: exampleVpcEndpointService.id,\n    resourceId: exampleApplicationLoadBalancer.id,\n    resourceType: \"slb\",\n});\nconst exampleVpcEndpoint = new alicloud.privatelink.VpcEndpoint(\"example\", {\n    serviceId: exampleVpcEndpointServiceResource.serviceId,\n    securityGroupIds: [exampleSecurityGroup.id],\n    vpcId: exampleNetwork.id,\n    vpcEndpointName: name,\n});\nconst exampleVpcEndpointZone = new alicloud.privatelink.VpcEndpointZone(\"example\", {\n    endpointId: exampleVpcEndpoint.id,\n    vswitchId: exampleSwitch.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\nexample = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample_vpc_endpoint_service = alicloud.privatelink.VpcEndpointService(\"example\",\n    service_description=name,\n    connect_bandwidth=103,\n    auto_accept_connection=False)\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"10.0.0.0/8\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=name,\n    cidr_block=\"10.1.0.0/16\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=name,\n    vpc_id=example_network.id)\nexample_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"example\",\n    load_balancer_name=name,\n    vswitch_id=example_switch.id,\n    load_balancer_spec=\"slb.s2.small\",\n    address_type=\"intranet\")\nexample_vpc_endpoint_service_resource = alicloud.privatelink.VpcEndpointServiceResource(\"example\",\n    service_id=example_vpc_endpoint_service.id,\n    resource_id=example_application_load_balancer.id,\n    resource_type=\"slb\")\nexample_vpc_endpoint = alicloud.privatelink.VpcEndpoint(\"example\",\n    service_id=example_vpc_endpoint_service_resource.service_id,\n    security_group_ids=[example_security_group.id],\n    vpc_id=example_network.id,\n    vpc_endpoint_name=name)\nexample_vpc_endpoint_zone = alicloud.privatelink.VpcEndpointZone(\"example\",\n    endpoint_id=example_vpc_endpoint.id,\n    vswitch_id=example_switch.id,\n    zone_id=example.zones[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var exampleVpcEndpointService = new AliCloud.PrivateLink.VpcEndpointService(\"example\", new()\n    {\n        ServiceDescription = name,\n        ConnectBandwidth = 103,\n        AutoAcceptConnection = false,\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.1.0.0/16\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = name,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"example\", new()\n    {\n        LoadBalancerName = name,\n        VswitchId = exampleSwitch.Id,\n        LoadBalancerSpec = \"slb.s2.small\",\n        AddressType = \"intranet\",\n    });\n\n    var exampleVpcEndpointServiceResource = new AliCloud.PrivateLink.VpcEndpointServiceResource(\"example\", new()\n    {\n        ServiceId = exampleVpcEndpointService.Id,\n        ResourceId = exampleApplicationLoadBalancer.Id,\n        ResourceType = \"slb\",\n    });\n\n    var exampleVpcEndpoint = new AliCloud.PrivateLink.VpcEndpoint(\"example\", new()\n    {\n        ServiceId = exampleVpcEndpointServiceResource.ServiceId,\n        SecurityGroupIds = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n        VpcId = exampleNetwork.Id,\n        VpcEndpointName = name,\n    });\n\n    var exampleVpcEndpointZone = new AliCloud.PrivateLink.VpcEndpointZone(\"example\", new()\n    {\n        EndpointId = exampleVpcEndpoint.Id,\n        VswitchId = exampleSwitch.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/privatelink\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpcEndpointService, err := privatelink.NewVpcEndpointService(ctx, \"example\", \u0026privatelink.VpcEndpointServiceArgs{\n\t\t\tServiceDescription:   pulumi.String(name),\n\t\t\tConnectBandwidth:     pulumi.Int(103),\n\t\t\tAutoAcceptConnection: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.1.0.0/16\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleApplicationLoadBalancer, err := slb.NewApplicationLoadBalancer(ctx, \"example\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tVswitchId:        exampleSwitch.ID(),\n\t\t\tLoadBalancerSpec: pulumi.String(\"slb.s2.small\"),\n\t\t\tAddressType:      pulumi.String(\"intranet\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpcEndpointServiceResource, err := privatelink.NewVpcEndpointServiceResource(ctx, \"example\", \u0026privatelink.VpcEndpointServiceResourceArgs{\n\t\t\tServiceId:    exampleVpcEndpointService.ID(),\n\t\t\tResourceId:   exampleApplicationLoadBalancer.ID(),\n\t\t\tResourceType: pulumi.String(\"slb\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpcEndpoint, err := privatelink.NewVpcEndpoint(ctx, \"example\", \u0026privatelink.VpcEndpointArgs{\n\t\t\tServiceId: exampleVpcEndpointServiceResource.ServiceId,\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t\tVpcId:           exampleNetwork.ID(),\n\t\t\tVpcEndpointName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = privatelink.NewVpcEndpointZone(ctx, \"example\", \u0026privatelink.VpcEndpointZoneArgs{\n\t\t\tEndpointId: exampleVpcEndpoint.ID(),\n\t\t\tVswitchId:  exampleSwitch.ID(),\n\t\t\tZoneId:     pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.privatelink.VpcEndpointService;\nimport com.pulumi.alicloud.privatelink.VpcEndpointServiceArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.privatelink.VpcEndpointServiceResource;\nimport com.pulumi.alicloud.privatelink.VpcEndpointServiceResourceArgs;\nimport com.pulumi.alicloud.privatelink.VpcEndpoint;\nimport com.pulumi.alicloud.privatelink.VpcEndpointArgs;\nimport com.pulumi.alicloud.privatelink.VpcEndpointZone;\nimport com.pulumi.alicloud.privatelink.VpcEndpointZoneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var exampleVpcEndpointService = new VpcEndpointService(\"exampleVpcEndpointService\", VpcEndpointServiceArgs.builder()\n            .serviceDescription(name)\n            .connectBandwidth(103)\n            .autoAcceptConnection(false)\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.1.0.0/16\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleApplicationLoadBalancer = new ApplicationLoadBalancer(\"exampleApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .vswitchId(exampleSwitch.id())\n            .loadBalancerSpec(\"slb.s2.small\")\n            .addressType(\"intranet\")\n            .build());\n\n        var exampleVpcEndpointServiceResource = new VpcEndpointServiceResource(\"exampleVpcEndpointServiceResource\", VpcEndpointServiceResourceArgs.builder()\n            .serviceId(exampleVpcEndpointService.id())\n            .resourceId(exampleApplicationLoadBalancer.id())\n            .resourceType(\"slb\")\n            .build());\n\n        var exampleVpcEndpoint = new VpcEndpoint(\"exampleVpcEndpoint\", VpcEndpointArgs.builder()\n            .serviceId(exampleVpcEndpointServiceResource.serviceId())\n            .securityGroupIds(exampleSecurityGroup.id())\n            .vpcId(exampleNetwork.id())\n            .vpcEndpointName(name)\n            .build());\n\n        var exampleVpcEndpointZone = new VpcEndpointZone(\"exampleVpcEndpointZone\", VpcEndpointZoneArgs.builder()\n            .endpointId(exampleVpcEndpoint.id())\n            .vswitchId(exampleSwitch.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  exampleVpcEndpointService:\n    type: alicloud:privatelink:VpcEndpointService\n    name: example\n    properties:\n      serviceDescription: ${name}\n      connectBandwidth: 103\n      autoAcceptConnection: false\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.0.0.0/8\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.1.0.0/16\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: ${name}\n      vpcId: ${exampleNetwork.id}\n  exampleApplicationLoadBalancer:\n    type: alicloud:slb:ApplicationLoadBalancer\n    name: example\n    properties:\n      loadBalancerName: ${name}\n      vswitchId: ${exampleSwitch.id}\n      loadBalancerSpec: slb.s2.small\n      addressType: intranet\n  exampleVpcEndpointServiceResource:\n    type: alicloud:privatelink:VpcEndpointServiceResource\n    name: example\n    properties:\n      serviceId: ${exampleVpcEndpointService.id}\n      resourceId: ${exampleApplicationLoadBalancer.id}\n      resourceType: slb\n  exampleVpcEndpoint:\n    type: alicloud:privatelink:VpcEndpoint\n    name: example\n    properties:\n      serviceId: ${exampleVpcEndpointServiceResource.serviceId}\n      securityGroupIds:\n        - ${exampleSecurityGroup.id}\n      vpcId: ${exampleNetwork.id}\n      vpcEndpointName: ${name}\n  exampleVpcEndpointZone:\n    type: alicloud:privatelink:VpcEndpointZone\n    name: example\n    properties:\n      endpointId: ${exampleVpcEndpoint.id}\n      vswitchId: ${exampleSwitch.id}\n      zoneId: ${example.zones[0].id}\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPrivate Link Vpc Endpoint Zone can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:privatelink/vpcEndpointZone:VpcEndpointZone example \u003cendpoint_id\u003e:\u003czone_id\u003e\n```\n\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"endpointId":{"type":"string","description":"The endpoint ID.\n"},"eniIp":{"type":"string","description":"The IP address of the endpoint ENI.\n"},"regionId":{"type":"string","description":"(Available since v1.235.0) The ID of the region to which the endpoint service belongs.\n"},"status":{"type":"string","description":"The state of the zone.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch in the zone.\n"},"zoneId":{"type":"string","description":"The zone ID.\n"}},"required":["endpointId","eniIp","regionId","status","vswitchId","zoneId"],"inputProperties":{"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"endpointId":{"type":"string","description":"The endpoint ID.\n","willReplaceOnChanges":true},"eniIp":{"type":"string","description":"The IP address of the endpoint ENI.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch in the zone.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID.\n","willReplaceOnChanges":true}},"requiredInputs":["endpointId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcEndpointZone resources.\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"endpointId":{"type":"string","description":"The endpoint ID.\n","willReplaceOnChanges":true},"eniIp":{"type":"string","description":"The IP address of the endpoint ENI.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"(Available since v1.235.0) The ID of the region to which the endpoint service belongs.\n"},"status":{"type":"string","description":"The state of the zone.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch in the zone.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:pvtz/endpoint:Endpoint":{"description":"Provides a Private Zone Endpoint resource.\n\nFor information about Private Zone Endpoint and how to use it, see [What is Endpoint](https://www.alibabacloud.com/help/en/privatezone/latest/add-endpoint).\n\n\u003e **NOTE:** Available since v1.143.0.\n\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"example_name\";\nconst _default = alicloud.pvtz.getResolverZones({\n    status: \"NORMAL\",\n});\nconst defaultGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultSwitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultSwitch.push(new alicloud.vpc.Switch(`default-${range.value}`, {\n        vpcId: defaultNetwork.id,\n        cidrBlock: defaultNetwork.cidrBlock.apply(cidrBlock =\u003e std.cidrsubnetOutput({\n            input: cidrBlock,\n            newbits: 8,\n            netnum: range.value,\n        })).apply(invoke =\u003e invoke.result),\n        zoneId: _default.then(_default =\u003e _default.zones[range.value].zoneId),\n    }));\n}\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    vpcId: defaultNetwork.id,\n    name: name,\n});\nconst defaultEndpoint = new alicloud.pvtz.Endpoint(\"default\", {\n    endpointName: name,\n    securityGroupId: defaultSecurityGroup.id,\n    vpcId: defaultNetwork.id,\n    vpcRegionId: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.id),\n    ipConfigs: [\n        {\n            zoneId: defaultSwitch[0].zoneId,\n            cidrBlock: defaultSwitch[0].cidrBlock,\n            vswitchId: defaultSwitch[0].id,\n        },\n        {\n            zoneId: defaultSwitch[1].zoneId,\n            cidrBlock: defaultSwitch[1].cidrBlock,\n            vswitchId: defaultSwitch[1].id,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"example_name\"\ndefault = alicloud.pvtz.get_resolver_zones(status=\"NORMAL\")\ndefault_get_regions = alicloud.get_regions(current=True)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault_switch = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_switch.append(alicloud.vpc.Switch(f\"default-{range['value']}\",\n        vpc_id=default_network.id,\n        cidr_block=default_network.cidr_block.apply(lambda cidr_block: std.cidrsubnet_output(input=cidr_block,\n            newbits=8,\n            netnum=range[\"value\"])).apply(lambda invoke: invoke.result),\n        zone_id=default.zones[range[\"value\"]].zone_id))\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    vpc_id=default_network.id,\n    name=name)\ndefault_endpoint = alicloud.pvtz.Endpoint(\"default\",\n    endpoint_name=name,\n    security_group_id=default_security_group.id,\n    vpc_id=default_network.id,\n    vpc_region_id=default_get_regions.regions[0].id,\n    ip_configs=[\n        {\n            \"zone_id\": default_switch[0].zone_id,\n            \"cidr_block\": default_switch[0].cidr_block,\n            \"vswitch_id\": default_switch[0].id,\n        },\n        {\n            \"zone_id\": default_switch[1].zone_id,\n            \"cidr_block\": default_switch[1].cidr_block,\n            \"vswitch_id\": default_switch[1].id,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"example_name\";\n    var @default = AliCloud.Pvtz.GetResolverZones.Invoke(new()\n    {\n        Status = \"NORMAL\",\n    });\n\n    var defaultGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSwitch.Add(new AliCloud.Vpc.Switch($\"default-{range.Value}\", new()\n        {\n            VpcId = defaultNetwork.Id,\n            CidrBlock = defaultNetwork.CidrBlock.Apply(cidrBlock =\u003e Std.Cidrsubnet.Invoke(new()\n            {\n                Input = cidrBlock,\n                Newbits = 8,\n                Netnum = range.Value,\n            })).Apply(invoke =\u003e invoke.Result),\n            ZoneId = @default.Apply(@default =\u003e @default.Apply(getResolverZonesResult =\u003e getResolverZonesResult.Zones)[range.Value].ZoneId),\n        }));\n    }\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        Name = name,\n    });\n\n    var defaultEndpoint = new AliCloud.Pvtz.Endpoint(\"default\", new()\n    {\n        EndpointName = name,\n        SecurityGroupId = defaultSecurityGroup.Id,\n        VpcId = defaultNetwork.Id,\n        VpcRegionId = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        IpConfigs = new[]\n        {\n            new AliCloud.Pvtz.Inputs.EndpointIpConfigArgs\n            {\n                ZoneId = defaultSwitch[0].ZoneId,\n                CidrBlock = defaultSwitch[0].CidrBlock,\n                VswitchId = defaultSwitch[0].Id,\n            },\n            new AliCloud.Pvtz.Inputs.EndpointIpConfigArgs\n            {\n                ZoneId = defaultSwitch[1].ZoneId,\n                CidrBlock = defaultSwitch[1].CidrBlock,\n                VswitchId = defaultSwitch[1].Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pvtz\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"example_name\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := pvtz.GetResolverZones(ctx, \u0026pvtz.GetResolverZonesArgs{\nStatus: pulumi.StringRef(\"NORMAL\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetRegions, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\nCurrent: pulumi.BoolRef(true),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: cidrBlock,\nNewbits: 8,\nNetnum: val0,\n}, nil)\nif err != nil {\nreturn err\n}\nvar defaultSwitch []*vpc.Switch\nfor index := 0; index \u003c 2; index++ {\n    key0 := index\n    val0 := index\n__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026vpc.SwitchArgs{\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(defaultNetwork.CidrBlock.ApplyT(func(cidrBlock string) (std.CidrsubnetResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrsubnetResultOutput).ApplyT(func(invoke std.CidrsubnetResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\nZoneId: pulumi.String(_default.Zones[val0].ZoneId),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch = append(defaultSwitch, __res)\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nVpcId: defaultNetwork.ID(),\nName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\n_, err = pvtz.NewEndpoint(ctx, \"default\", \u0026pvtz.EndpointArgs{\nEndpointName: pulumi.String(name),\nSecurityGroupId: defaultSecurityGroup.ID(),\nVpcId: defaultNetwork.ID(),\nVpcRegionId: pulumi.String(defaultGetRegions.Regions[0].Id),\nIpConfigs: pvtz.EndpointIpConfigArray{\n\u0026pvtz.EndpointIpConfigArgs{\nZoneId: defaultSwitch[0].ZoneId,\nCidrBlock: defaultSwitch[0].CidrBlock,\nVswitchId: defaultSwitch[0].ID(),\n},\n\u0026pvtz.EndpointIpConfigArgs{\nZoneId: defaultSwitch[1].ZoneId,\nCidrBlock: defaultSwitch[1].CidrBlock,\nVswitchId: defaultSwitch[1].ID(),\n},\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pvtz.PvtzFunctions;\nimport com.pulumi.alicloud.pvtz.inputs.GetResolverZonesArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.pvtz.Endpoint;\nimport com.pulumi.alicloud.pvtz.EndpointArgs;\nimport com.pulumi.alicloud.pvtz.inputs.EndpointIpConfigArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"example_name\");\n        final var default = PvtzFunctions.getResolverZones(GetResolverZonesArgs.builder()\n            .status(\"NORMAL\")\n            .build());\n\n        final var defaultGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Switch(\"defaultSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(defaultNetwork.id())\n                .cidrBlock(defaultNetwork.cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                    .input(_cidrBlock)\n                    .newbits(8)\n                    .netnum(range.value())\n                    .build())).applyValue(_invoke -\u003e _invoke.result()))\n                .zoneId(default_.zones()[range.value()].zoneId())\n                .build());\n\n        \n}\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .name(name)\n            .build());\n\n        var defaultEndpoint = new Endpoint(\"defaultEndpoint\", EndpointArgs.builder()\n            .endpointName(name)\n            .securityGroupId(defaultSecurityGroup.id())\n            .vpcId(defaultNetwork.id())\n            .vpcRegionId(defaultGetRegions.regions()[0].id())\n            .ipConfigs(            \n                EndpointIpConfigArgs.builder()\n                    .zoneId(defaultSwitch[0].zoneId())\n                    .cidrBlock(defaultSwitch[0].cidrBlock())\n                    .vswitchId(defaultSwitch[0].id())\n                    .build(),\n                EndpointIpConfigArgs.builder()\n                    .zoneId(defaultSwitch[1].zoneId())\n                    .cidrBlock(defaultSwitch[1].cidrBlock())\n                    .vswitchId(defaultSwitch[1].id())\n                    .build())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPrivate Zone Endpoint can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pvtz/endpoint:Endpoint example \u003cid\u003e\n```\n\n","properties":{"endpointName":{"type":"string","description":"The name of the resource.\n"},"ipConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/EndpointIpConfig:EndpointIpConfig"},"description":"The Ip Configs. See \u003cspan pulumi-lang-nodejs=\"`ipConfigs`\" pulumi-lang-dotnet=\"`IpConfigs`\" pulumi-lang-go=\"`ipConfigs`\" pulumi-lang-python=\"`ip_configs`\" pulumi-lang-yaml=\"`ipConfigs`\" pulumi-lang-java=\"`ipConfigs`\"\u003e`ip_configs`\u003c/span\u003e below. **NOTE:** In order to ensure high availability, add at least 2 and up to 6.\n"},"securityGroupId":{"type":"string","description":"The ID of the Security Group.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `CHANGE_FAILED`, `CHANGE_INIT`, `EXCEPTION`, `FAILED`, `INIT`, `SUCCESS`.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n"},"vpcRegionId":{"type":"string","description":"The Region of the VPC.\n"}},"required":["endpointName","ipConfigs","securityGroupId","status","vpcId","vpcRegionId"],"inputProperties":{"endpointName":{"type":"string","description":"The name of the resource.\n"},"ipConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/EndpointIpConfig:EndpointIpConfig"},"description":"The Ip Configs. See \u003cspan pulumi-lang-nodejs=\"`ipConfigs`\" pulumi-lang-dotnet=\"`IpConfigs`\" pulumi-lang-go=\"`ipConfigs`\" pulumi-lang-python=\"`ip_configs`\" pulumi-lang-yaml=\"`ipConfigs`\" pulumi-lang-java=\"`ipConfigs`\"\u003e`ip_configs`\u003c/span\u003e below. **NOTE:** In order to ensure high availability, add at least 2 and up to 6.\n"},"securityGroupId":{"type":"string","description":"The ID of the Security Group.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VPC ID.\n","willReplaceOnChanges":true},"vpcRegionId":{"type":"string","description":"The Region of the VPC.\n","willReplaceOnChanges":true}},"requiredInputs":["endpointName","ipConfigs","securityGroupId","vpcId","vpcRegionId"],"stateInputs":{"description":"Input properties used for looking up and filtering Endpoint resources.\n","properties":{"endpointName":{"type":"string","description":"The name of the resource.\n"},"ipConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/EndpointIpConfig:EndpointIpConfig"},"description":"The Ip Configs. See \u003cspan pulumi-lang-nodejs=\"`ipConfigs`\" pulumi-lang-dotnet=\"`IpConfigs`\" pulumi-lang-go=\"`ipConfigs`\" pulumi-lang-python=\"`ip_configs`\" pulumi-lang-yaml=\"`ipConfigs`\" pulumi-lang-java=\"`ipConfigs`\"\u003e`ip_configs`\u003c/span\u003e below. **NOTE:** In order to ensure high availability, add at least 2 and up to 6.\n"},"securityGroupId":{"type":"string","description":"The ID of the Security Group.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource. Valid values: `CHANGE_FAILED`, `CHANGE_INIT`, `EXCEPTION`, `FAILED`, `INIT`, `SUCCESS`.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n","willReplaceOnChanges":true},"vpcRegionId":{"type":"string","description":"The Region of the VPC.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:pvtz/rule:Rule":{"description":"Provides a Private Zone Rule resource.\n\nFor information about Private Zone Rule and how to use it, see [What is Rule](https://www.alibabacloud.com/help/en/privatezone/latest/add-forwarding-rule).\n\n\u003e **NOTE:** Available since v1.143.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"example_value\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.pvtz.getResolverZones({\n    status: \"NORMAL\",\n});\nconst defaultGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultSwitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultSwitch.push(new alicloud.vpc.Switch(`default-${range.value}`, {\n        vpcId: defaultNetwork.id,\n        cidrBlock: defaultNetwork.cidrBlock.apply(cidrBlock =\u003e std.cidrsubnetOutput({\n            input: cidrBlock,\n            newbits: 8,\n            netnum: range.value,\n        })).apply(invoke =\u003e invoke.result),\n        zoneId: _default.then(_default =\u003e _default.zones[range.value].zoneId),\n    }));\n}\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    vpcId: defaultNetwork.id,\n    name: name,\n});\nconst defaultEndpoint = new alicloud.pvtz.Endpoint(\"default\", {\n    endpointName: `${name}-${defaultInteger.result}`,\n    securityGroupId: defaultSecurityGroup.id,\n    vpcId: defaultNetwork.id,\n    vpcRegionId: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.id),\n    ipConfigs: [\n        {\n            zoneId: defaultSwitch[0].zoneId,\n            cidrBlock: defaultSwitch[0].cidrBlock,\n            vswitchId: defaultSwitch[0].id,\n        },\n        {\n            zoneId: defaultSwitch[1].zoneId,\n            cidrBlock: defaultSwitch[1].cidrBlock,\n            vswitchId: defaultSwitch[1].id,\n        },\n    ],\n});\nconst defaultRule = new alicloud.pvtz.Rule(\"default\", {\n    endpointId: defaultEndpoint.id,\n    ruleName: `${name}-${defaultInteger.result}`,\n    type: \"OUTBOUND\",\n    zoneName: name,\n    forwardIps: [{\n        ip: \"114.114.114.114\",\n        port: 8080,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"example_value\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.pvtz.get_resolver_zones(status=\"NORMAL\")\ndefault_get_regions = alicloud.get_regions(current=True)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault_switch = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_switch.append(alicloud.vpc.Switch(f\"default-{range['value']}\",\n        vpc_id=default_network.id,\n        cidr_block=default_network.cidr_block.apply(lambda cidr_block: std.cidrsubnet_output(input=cidr_block,\n            newbits=8,\n            netnum=range[\"value\"])).apply(lambda invoke: invoke.result),\n        zone_id=default.zones[range[\"value\"]].zone_id))\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    vpc_id=default_network.id,\n    name=name)\ndefault_endpoint = alicloud.pvtz.Endpoint(\"default\",\n    endpoint_name=f\"{name}-{default_integer['result']}\",\n    security_group_id=default_security_group.id,\n    vpc_id=default_network.id,\n    vpc_region_id=default_get_regions.regions[0].id,\n    ip_configs=[\n        {\n            \"zone_id\": default_switch[0].zone_id,\n            \"cidr_block\": default_switch[0].cidr_block,\n            \"vswitch_id\": default_switch[0].id,\n        },\n        {\n            \"zone_id\": default_switch[1].zone_id,\n            \"cidr_block\": default_switch[1].cidr_block,\n            \"vswitch_id\": default_switch[1].id,\n        },\n    ])\ndefault_rule = alicloud.pvtz.Rule(\"default\",\n    endpoint_id=default_endpoint.id,\n    rule_name=f\"{name}-{default_integer['result']}\",\n    type=\"OUTBOUND\",\n    zone_name=name,\n    forward_ips=[{\n        \"ip\": \"114.114.114.114\",\n        \"port\": 8080,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"example_value\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.Pvtz.GetResolverZones.Invoke(new()\n    {\n        Status = \"NORMAL\",\n    });\n\n    var defaultGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSwitch.Add(new AliCloud.Vpc.Switch($\"default-{range.Value}\", new()\n        {\n            VpcId = defaultNetwork.Id,\n            CidrBlock = defaultNetwork.CidrBlock.Apply(cidrBlock =\u003e Std.Cidrsubnet.Invoke(new()\n            {\n                Input = cidrBlock,\n                Newbits = 8,\n                Netnum = range.Value,\n            })).Apply(invoke =\u003e invoke.Result),\n            ZoneId = @default.Apply(@default =\u003e @default.Apply(getResolverZonesResult =\u003e getResolverZonesResult.Zones)[range.Value].ZoneId),\n        }));\n    }\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        Name = name,\n    });\n\n    var defaultEndpoint = new AliCloud.Pvtz.Endpoint(\"default\", new()\n    {\n        EndpointName = $\"{name}-{defaultInteger.Result}\",\n        SecurityGroupId = defaultSecurityGroup.Id,\n        VpcId = defaultNetwork.Id,\n        VpcRegionId = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        IpConfigs = new[]\n        {\n            new AliCloud.Pvtz.Inputs.EndpointIpConfigArgs\n            {\n                ZoneId = defaultSwitch[0].ZoneId,\n                CidrBlock = defaultSwitch[0].CidrBlock,\n                VswitchId = defaultSwitch[0].Id,\n            },\n            new AliCloud.Pvtz.Inputs.EndpointIpConfigArgs\n            {\n                ZoneId = defaultSwitch[1].ZoneId,\n                CidrBlock = defaultSwitch[1].CidrBlock,\n                VswitchId = defaultSwitch[1].Id,\n            },\n        },\n    });\n\n    var defaultRule = new AliCloud.Pvtz.Rule(\"default\", new()\n    {\n        EndpointId = defaultEndpoint.Id,\n        RuleName = $\"{name}-{defaultInteger.Result}\",\n        Type = \"OUTBOUND\",\n        ZoneName = name,\n        ForwardIps = new[]\n        {\n            new AliCloud.Pvtz.Inputs.RuleForwardIpArgs\n            {\n                Ip = \"114.114.114.114\",\n                Port = 8080,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pvtz\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"example_value\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMin: 10000,\nMax: 99999,\n})\nif err != nil {\nreturn err\n}\n_default, err := pvtz.GetResolverZones(ctx, \u0026pvtz.GetResolverZonesArgs{\nStatus: pulumi.StringRef(\"NORMAL\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetRegions, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\nCurrent: pulumi.BoolRef(true),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: cidrBlock,\nNewbits: 8,\nNetnum: val0,\n}, nil)\nif err != nil {\nreturn err\n}\nvar defaultSwitch []*vpc.Switch\nfor index := 0; index \u003c 2; index++ {\n    key0 := index\n    val0 := index\n__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026vpc.SwitchArgs{\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(defaultNetwork.CidrBlock.ApplyT(func(cidrBlock string) (std.CidrsubnetResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrsubnetResultOutput).ApplyT(func(invoke std.CidrsubnetResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\nZoneId: pulumi.String(_default.Zones[val0].ZoneId),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch = append(defaultSwitch, __res)\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nVpcId: defaultNetwork.ID(),\nName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ndefaultEndpoint, err := pvtz.NewEndpoint(ctx, \"default\", \u0026pvtz.EndpointArgs{\nEndpointName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nSecurityGroupId: defaultSecurityGroup.ID(),\nVpcId: defaultNetwork.ID(),\nVpcRegionId: pulumi.String(defaultGetRegions.Regions[0].Id),\nIpConfigs: pvtz.EndpointIpConfigArray{\n\u0026pvtz.EndpointIpConfigArgs{\nZoneId: defaultSwitch[0].ZoneId,\nCidrBlock: defaultSwitch[0].CidrBlock,\nVswitchId: defaultSwitch[0].ID(),\n},\n\u0026pvtz.EndpointIpConfigArgs{\nZoneId: defaultSwitch[1].ZoneId,\nCidrBlock: defaultSwitch[1].CidrBlock,\nVswitchId: defaultSwitch[1].ID(),\n},\n},\n})\nif err != nil {\nreturn err\n}\n_, err = pvtz.NewRule(ctx, \"default\", \u0026pvtz.RuleArgs{\nEndpointId: defaultEndpoint.ID(),\nRuleName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nType: pulumi.String(\"OUTBOUND\"),\nZoneName: pulumi.String(name),\nForwardIps: pvtz.RuleForwardIpArray{\n\u0026pvtz.RuleForwardIpArgs{\nIp: pulumi.String(\"114.114.114.114\"),\nPort: pulumi.Int(8080),\n},\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.pvtz.PvtzFunctions;\nimport com.pulumi.alicloud.pvtz.inputs.GetResolverZonesArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.pvtz.Endpoint;\nimport com.pulumi.alicloud.pvtz.EndpointArgs;\nimport com.pulumi.alicloud.pvtz.inputs.EndpointIpConfigArgs;\nimport com.pulumi.alicloud.pvtz.Rule;\nimport com.pulumi.alicloud.pvtz.RuleArgs;\nimport com.pulumi.alicloud.pvtz.inputs.RuleForwardIpArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"example_value\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = PvtzFunctions.getResolverZones(GetResolverZonesArgs.builder()\n            .status(\"NORMAL\")\n            .build());\n\n        final var defaultGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Switch(\"defaultSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(defaultNetwork.id())\n                .cidrBlock(defaultNetwork.cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                    .input(_cidrBlock)\n                    .newbits(8)\n                    .netnum(range.value())\n                    .build())).applyValue(_invoke -\u003e _invoke.result()))\n                .zoneId(default_.zones()[range.value()].zoneId())\n                .build());\n\n        \n}\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .name(name)\n            .build());\n\n        var defaultEndpoint = new Endpoint(\"defaultEndpoint\", EndpointArgs.builder()\n            .endpointName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .securityGroupId(defaultSecurityGroup.id())\n            .vpcId(defaultNetwork.id())\n            .vpcRegionId(defaultGetRegions.regions()[0].id())\n            .ipConfigs(            \n                EndpointIpConfigArgs.builder()\n                    .zoneId(defaultSwitch[0].zoneId())\n                    .cidrBlock(defaultSwitch[0].cidrBlock())\n                    .vswitchId(defaultSwitch[0].id())\n                    .build(),\n                EndpointIpConfigArgs.builder()\n                    .zoneId(defaultSwitch[1].zoneId())\n                    .cidrBlock(defaultSwitch[1].cidrBlock())\n                    .vswitchId(defaultSwitch[1].id())\n                    .build())\n            .build());\n\n        var defaultRule = new Rule(\"defaultRule\", RuleArgs.builder()\n            .endpointId(defaultEndpoint.id())\n            .ruleName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .type(\"OUTBOUND\")\n            .zoneName(name)\n            .forwardIps(RuleForwardIpArgs.builder()\n                .ip(\"114.114.114.114\")\n                .port(8080)\n                .build())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPrivate Zone Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pvtz/rule:Rule example \u003cid\u003e\n```\n\n","properties":{"endpointId":{"type":"string","description":"The ID of the Endpoint.\n"},"forwardIps":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/RuleForwardIp:RuleForwardIp"},"description":"Forwarding target. See \u003cspan pulumi-lang-nodejs=\"`forwardIps`\" pulumi-lang-dotnet=\"`ForwardIps`\" pulumi-lang-go=\"`forwardIps`\" pulumi-lang-python=\"`forward_ips`\" pulumi-lang-yaml=\"`forwardIps`\" pulumi-lang-java=\"`forwardIps`\"\u003e`forward_ips`\u003c/span\u003e below.\n"},"ruleName":{"type":"string","description":"The name of the resource.\n"},"type":{"type":"string","description":"The type of the rule. Valid values: `OUTBOUND`.\n"},"zoneName":{"type":"string","description":"The name of the forwarding zone.\n"}},"required":["endpointId","forwardIps","ruleName","zoneName"],"inputProperties":{"endpointId":{"type":"string","description":"The ID of the Endpoint.\n","willReplaceOnChanges":true},"forwardIps":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/RuleForwardIp:RuleForwardIp"},"description":"Forwarding target. See \u003cspan pulumi-lang-nodejs=\"`forwardIps`\" pulumi-lang-dotnet=\"`ForwardIps`\" pulumi-lang-go=\"`forwardIps`\" pulumi-lang-python=\"`forward_ips`\" pulumi-lang-yaml=\"`forwardIps`\" pulumi-lang-java=\"`forwardIps`\"\u003e`forward_ips`\u003c/span\u003e below.\n"},"ruleName":{"type":"string","description":"The name of the resource.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the rule. Valid values: `OUTBOUND`.\n","willReplaceOnChanges":true},"zoneName":{"type":"string","description":"The name of the forwarding zone.\n","willReplaceOnChanges":true}},"requiredInputs":["endpointId","forwardIps","ruleName","zoneName"],"stateInputs":{"description":"Input properties used for looking up and filtering Rule resources.\n","properties":{"endpointId":{"type":"string","description":"The ID of the Endpoint.\n","willReplaceOnChanges":true},"forwardIps":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/RuleForwardIp:RuleForwardIp"},"description":"Forwarding target. See \u003cspan pulumi-lang-nodejs=\"`forwardIps`\" pulumi-lang-dotnet=\"`ForwardIps`\" pulumi-lang-go=\"`forwardIps`\" pulumi-lang-python=\"`forward_ips`\" pulumi-lang-yaml=\"`forwardIps`\" pulumi-lang-java=\"`forwardIps`\"\u003e`forward_ips`\u003c/span\u003e below.\n"},"ruleName":{"type":"string","description":"The name of the resource.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the rule. Valid values: `OUTBOUND`.\n","willReplaceOnChanges":true},"zoneName":{"type":"string","description":"The name of the forwarding zone.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:pvtz/ruleAttachment:RuleAttachment":{"description":"Provides a Private Zone Rule Attachment resource.\n\nFor information about Private Zone Rule Attachment and how to use it, see [What is Rule Attachment](https://www.alibabacloud.com/help/en/doc-detail/177601.htm).\n\n\u003e **NOTE:** Available since v1.143.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"example_value\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.pvtz.getResolverZones({\n    status: \"NORMAL\",\n});\nconst defaultGetRegions = alicloud.getRegions({\n    current: true,\n});\nconst defaultNetwork: alicloud.vpc.Network[] = [];\nfor (const range = {value: 0}; range.value \u003c 3; range.value++) {\n    defaultNetwork.push(new alicloud.vpc.Network(`default-${range.value}`, {\n        vpcName: name,\n        cidrBlock: \"172.16.0.0/12\",\n    }));\n}\nconst defaultSwitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultSwitch.push(new alicloud.vpc.Switch(`default-${range.value}`, {\n        vpcId: defaultNetwork[2].id,\n        cidrBlock: defaultNetwork[2].cidrBlock.apply(cidrBlock =\u003e std.cidrsubnetOutput({\n            input: cidrBlock,\n            newbits: 8,\n            netnum: range.value,\n        })).apply(invoke =\u003e invoke.result),\n        zoneId: _default.then(_default =\u003e _default.zones[range.value].zoneId),\n    }));\n}\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    vpcId: defaultNetwork[2].id,\n    name: name,\n});\nconst defaultEndpoint = new alicloud.pvtz.Endpoint(\"default\", {\n    endpointName: `${name}-${defaultInteger.result}`,\n    securityGroupId: defaultSecurityGroup.id,\n    vpcId: defaultNetwork[2].id,\n    vpcRegionId: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.id),\n    ipConfigs: [\n        {\n            zoneId: defaultSwitch[0].zoneId,\n            cidrBlock: defaultSwitch[0].cidrBlock,\n            vswitchId: defaultSwitch[0].id,\n        },\n        {\n            zoneId: defaultSwitch[1].zoneId,\n            cidrBlock: defaultSwitch[1].cidrBlock,\n            vswitchId: defaultSwitch[1].id,\n        },\n    ],\n});\nconst defaultRule = new alicloud.pvtz.Rule(\"default\", {\n    endpointId: defaultEndpoint.id,\n    ruleName: `${name}-${defaultInteger.result}`,\n    type: \"OUTBOUND\",\n    zoneName: name,\n    forwardIps: [{\n        ip: \"114.114.114.114\",\n        port: 8080,\n    }],\n});\nconst defaultRuleAttachment = new alicloud.pvtz.RuleAttachment(\"default\", {\n    ruleId: defaultRule.id,\n    vpcs: [\n        {\n            regionId: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.id),\n            vpcId: defaultNetwork[0].id,\n        },\n        {\n            regionId: defaultGetRegions.then(defaultGetRegions =\u003e defaultGetRegions.regions?.[0]?.id),\n            vpcId: defaultNetwork[1].id,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"example_value\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.pvtz.get_resolver_zones(status=\"NORMAL\")\ndefault_get_regions = alicloud.get_regions(current=True)\ndefault_network = []\nfor range in [{\"value\": i} for i in range(0, 3)]:\n    default_network.append(alicloud.vpc.Network(f\"default-{range['value']}\",\n        vpc_name=name,\n        cidr_block=\"172.16.0.0/12\"))\ndefault_switch = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_switch.append(alicloud.vpc.Switch(f\"default-{range['value']}\",\n        vpc_id=default_network[2].id,\n        cidr_block=default_network[2].cidr_block.apply(lambda cidr_block: std.cidrsubnet_output(input=cidr_block,\n            newbits=8,\n            netnum=range[\"value\"])).apply(lambda invoke: invoke.result),\n        zone_id=default.zones[range[\"value\"]].zone_id))\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    vpc_id=default_network[2].id,\n    name=name)\ndefault_endpoint = alicloud.pvtz.Endpoint(\"default\",\n    endpoint_name=f\"{name}-{default_integer['result']}\",\n    security_group_id=default_security_group.id,\n    vpc_id=default_network[2].id,\n    vpc_region_id=default_get_regions.regions[0].id,\n    ip_configs=[\n        {\n            \"zone_id\": default_switch[0].zone_id,\n            \"cidr_block\": default_switch[0].cidr_block,\n            \"vswitch_id\": default_switch[0].id,\n        },\n        {\n            \"zone_id\": default_switch[1].zone_id,\n            \"cidr_block\": default_switch[1].cidr_block,\n            \"vswitch_id\": default_switch[1].id,\n        },\n    ])\ndefault_rule = alicloud.pvtz.Rule(\"default\",\n    endpoint_id=default_endpoint.id,\n    rule_name=f\"{name}-{default_integer['result']}\",\n    type=\"OUTBOUND\",\n    zone_name=name,\n    forward_ips=[{\n        \"ip\": \"114.114.114.114\",\n        \"port\": 8080,\n    }])\ndefault_rule_attachment = alicloud.pvtz.RuleAttachment(\"default\",\n    rule_id=default_rule.id,\n    vpcs=[\n        {\n            \"region_id\": default_get_regions.regions[0].id,\n            \"vpc_id\": default_network[0].id,\n        },\n        {\n            \"region_id\": default_get_regions.regions[0].id,\n            \"vpc_id\": default_network[1].id,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"example_value\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.Pvtz.GetResolverZones.Invoke(new()\n    {\n        Status = \"NORMAL\",\n    });\n\n    var defaultGetRegions = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultNetwork = new List\u003cAliCloud.Vpc.Network\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 3; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultNetwork.Add(new AliCloud.Vpc.Network($\"default-{range.Value}\", new()\n        {\n            VpcName = name,\n            CidrBlock = \"172.16.0.0/12\",\n        }));\n    }\n    var defaultSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSwitch.Add(new AliCloud.Vpc.Switch($\"default-{range.Value}\", new()\n        {\n            VpcId = defaultNetwork[2].Id,\n            CidrBlock = defaultNetwork[2].CidrBlock.Apply(cidrBlock =\u003e Std.Cidrsubnet.Invoke(new()\n            {\n                Input = cidrBlock,\n                Newbits = 8,\n                Netnum = range.Value,\n            })).Apply(invoke =\u003e invoke.Result),\n            ZoneId = @default.Apply(@default =\u003e @default.Apply(getResolverZonesResult =\u003e getResolverZonesResult.Zones)[range.Value].ZoneId),\n        }));\n    }\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork[2].Id,\n        Name = name,\n    });\n\n    var defaultEndpoint = new AliCloud.Pvtz.Endpoint(\"default\", new()\n    {\n        EndpointName = $\"{name}-{defaultInteger.Result}\",\n        SecurityGroupId = defaultSecurityGroup.Id,\n        VpcId = defaultNetwork[2].Id,\n        VpcRegionId = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n        IpConfigs = new[]\n        {\n            new AliCloud.Pvtz.Inputs.EndpointIpConfigArgs\n            {\n                ZoneId = defaultSwitch[0].ZoneId,\n                CidrBlock = defaultSwitch[0].CidrBlock,\n                VswitchId = defaultSwitch[0].Id,\n            },\n            new AliCloud.Pvtz.Inputs.EndpointIpConfigArgs\n            {\n                ZoneId = defaultSwitch[1].ZoneId,\n                CidrBlock = defaultSwitch[1].CidrBlock,\n                VswitchId = defaultSwitch[1].Id,\n            },\n        },\n    });\n\n    var defaultRule = new AliCloud.Pvtz.Rule(\"default\", new()\n    {\n        EndpointId = defaultEndpoint.Id,\n        RuleName = $\"{name}-{defaultInteger.Result}\",\n        Type = \"OUTBOUND\",\n        ZoneName = name,\n        ForwardIps = new[]\n        {\n            new AliCloud.Pvtz.Inputs.RuleForwardIpArgs\n            {\n                Ip = \"114.114.114.114\",\n                Port = 8080,\n            },\n        },\n    });\n\n    var defaultRuleAttachment = new AliCloud.Pvtz.RuleAttachment(\"default\", new()\n    {\n        RuleId = defaultRule.Id,\n        Vpcs = new[]\n        {\n            new AliCloud.Pvtz.Inputs.RuleAttachmentVpcArgs\n            {\n                RegionId = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n                VpcId = defaultNetwork[0].Id,\n            },\n            new AliCloud.Pvtz.Inputs.RuleAttachmentVpcArgs\n            {\n                RegionId = defaultGetRegions.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n                VpcId = defaultNetwork[1].Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pvtz\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"example_value\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMin: 10000,\nMax: 99999,\n})\nif err != nil {\nreturn err\n}\n_default, err := pvtz.GetResolverZones(ctx, \u0026pvtz.GetResolverZonesArgs{\nStatus: pulumi.StringRef(\"NORMAL\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetRegions, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\nCurrent: pulumi.BoolRef(true),\n}, nil);\nif err != nil {\nreturn err\n}\nvar defaultNetwork []*vpc.Network\nfor index := 0; index \u003c 3; index++ {\n    key0 := index\n    _ := index\n__res, err := vpc.NewNetwork(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n})\nif err != nil {\nreturn err\n}\ndefaultNetwork = append(defaultNetwork, __res)\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: cidrBlock,\nNewbits: 8,\nNetnum: val0,\n}, nil)\nif err != nil {\nreturn err\n}\nvar defaultSwitch []*vpc.Switch\nfor index := 0; index \u003c 2; index++ {\n    key0 := index\n    val0 := index\n__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026vpc.SwitchArgs{\nVpcId: defaultNetwork[2].ID(),\nCidrBlock: pulumi.String(defaultNetwork[2].CidrBlock.ApplyT(func(cidrBlock string) (std.CidrsubnetResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrsubnetResultOutput).ApplyT(func(invoke std.CidrsubnetResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\nZoneId: pulumi.String(_default.Zones[val0].ZoneId),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch = append(defaultSwitch, __res)\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nVpcId: defaultNetwork[2].ID(),\nName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ndefaultEndpoint, err := pvtz.NewEndpoint(ctx, \"default\", \u0026pvtz.EndpointArgs{\nEndpointName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nSecurityGroupId: defaultSecurityGroup.ID(),\nVpcId: defaultNetwork[2].ID(),\nVpcRegionId: pulumi.String(defaultGetRegions.Regions[0].Id),\nIpConfigs: pvtz.EndpointIpConfigArray{\n\u0026pvtz.EndpointIpConfigArgs{\nZoneId: defaultSwitch[0].ZoneId,\nCidrBlock: defaultSwitch[0].CidrBlock,\nVswitchId: defaultSwitch[0].ID(),\n},\n\u0026pvtz.EndpointIpConfigArgs{\nZoneId: defaultSwitch[1].ZoneId,\nCidrBlock: defaultSwitch[1].CidrBlock,\nVswitchId: defaultSwitch[1].ID(),\n},\n},\n})\nif err != nil {\nreturn err\n}\ndefaultRule, err := pvtz.NewRule(ctx, \"default\", \u0026pvtz.RuleArgs{\nEndpointId: defaultEndpoint.ID(),\nRuleName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nType: pulumi.String(\"OUTBOUND\"),\nZoneName: pulumi.String(name),\nForwardIps: pvtz.RuleForwardIpArray{\n\u0026pvtz.RuleForwardIpArgs{\nIp: pulumi.String(\"114.114.114.114\"),\nPort: pulumi.Int(8080),\n},\n},\n})\nif err != nil {\nreturn err\n}\n_, err = pvtz.NewRuleAttachment(ctx, \"default\", \u0026pvtz.RuleAttachmentArgs{\nRuleId: defaultRule.ID(),\nVpcs: pvtz.RuleAttachmentVpcArray{\n\u0026pvtz.RuleAttachmentVpcArgs{\nRegionId: pulumi.String(defaultGetRegions.Regions[0].Id),\nVpcId: defaultNetwork[0].ID(),\n},\n\u0026pvtz.RuleAttachmentVpcArgs{\nRegionId: pulumi.String(defaultGetRegions.Regions[0].Id),\nVpcId: defaultNetwork[1].ID(),\n},\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.pvtz.PvtzFunctions;\nimport com.pulumi.alicloud.pvtz.inputs.GetResolverZonesArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.pvtz.Endpoint;\nimport com.pulumi.alicloud.pvtz.EndpointArgs;\nimport com.pulumi.alicloud.pvtz.inputs.EndpointIpConfigArgs;\nimport com.pulumi.alicloud.pvtz.Rule;\nimport com.pulumi.alicloud.pvtz.RuleArgs;\nimport com.pulumi.alicloud.pvtz.inputs.RuleForwardIpArgs;\nimport com.pulumi.alicloud.pvtz.RuleAttachment;\nimport com.pulumi.alicloud.pvtz.RuleAttachmentArgs;\nimport com.pulumi.alicloud.pvtz.inputs.RuleAttachmentVpcArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"example_value\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = PvtzFunctions.getResolverZones(GetResolverZonesArgs.builder()\n            .status(\"NORMAL\")\n            .build());\n\n        final var defaultGetRegions = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        for (var i = 0; i \u003c 3; i++) {\n            new Network(\"defaultNetwork-\" + i, NetworkArgs.builder()\n                .vpcName(name)\n                .cidrBlock(\"172.16.0.0/12\")\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c 2; i++) {\n            new Switch(\"defaultSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(defaultNetwork[2].id())\n                .cidrBlock(defaultNetwork[2].cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                    .input(_cidrBlock)\n                    .newbits(8)\n                    .netnum(range.value())\n                    .build())).applyValue(_invoke -\u003e _invoke.result()))\n                .zoneId(default_.zones()[range.value()].zoneId())\n                .build());\n\n        \n}\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork[2].id())\n            .name(name)\n            .build());\n\n        var defaultEndpoint = new Endpoint(\"defaultEndpoint\", EndpointArgs.builder()\n            .endpointName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .securityGroupId(defaultSecurityGroup.id())\n            .vpcId(defaultNetwork[2].id())\n            .vpcRegionId(defaultGetRegions.regions()[0].id())\n            .ipConfigs(            \n                EndpointIpConfigArgs.builder()\n                    .zoneId(defaultSwitch[0].zoneId())\n                    .cidrBlock(defaultSwitch[0].cidrBlock())\n                    .vswitchId(defaultSwitch[0].id())\n                    .build(),\n                EndpointIpConfigArgs.builder()\n                    .zoneId(defaultSwitch[1].zoneId())\n                    .cidrBlock(defaultSwitch[1].cidrBlock())\n                    .vswitchId(defaultSwitch[1].id())\n                    .build())\n            .build());\n\n        var defaultRule = new Rule(\"defaultRule\", RuleArgs.builder()\n            .endpointId(defaultEndpoint.id())\n            .ruleName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .type(\"OUTBOUND\")\n            .zoneName(name)\n            .forwardIps(RuleForwardIpArgs.builder()\n                .ip(\"114.114.114.114\")\n                .port(8080)\n                .build())\n            .build());\n\n        var defaultRuleAttachment = new RuleAttachment(\"defaultRuleAttachment\", RuleAttachmentArgs.builder()\n            .ruleId(defaultRule.id())\n            .vpcs(            \n                RuleAttachmentVpcArgs.builder()\n                    .regionId(defaultGetRegions.regions()[0].id())\n                    .vpcId(defaultNetwork[0].id())\n                    .build(),\n                RuleAttachmentVpcArgs.builder()\n                    .regionId(defaultGetRegions.regions()[0].id())\n                    .vpcId(defaultNetwork[1].id())\n                    .build())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPrivate Zone Rule Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pvtz/ruleAttachment:RuleAttachment example \u003crule_id\u003e\n```\n\n","properties":{"ruleId":{"type":"string","description":"The ID of the rule.\n"},"vpcs":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/RuleAttachmentVpc:RuleAttachmentVpc"},"description":"The List of the VPC. See \u003cspan pulumi-lang-nodejs=\"`vpcs`\" pulumi-lang-dotnet=\"`Vpcs`\" pulumi-lang-go=\"`vpcs`\" pulumi-lang-python=\"`vpcs`\" pulumi-lang-yaml=\"`vpcs`\" pulumi-lang-java=\"`vpcs`\"\u003e`vpcs`\u003c/span\u003e below.\n"}},"required":["ruleId","vpcs"],"inputProperties":{"ruleId":{"type":"string","description":"The ID of the rule.\n","willReplaceOnChanges":true},"vpcs":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/RuleAttachmentVpc:RuleAttachmentVpc"},"description":"The List of the VPC. See \u003cspan pulumi-lang-nodejs=\"`vpcs`\" pulumi-lang-dotnet=\"`Vpcs`\" pulumi-lang-go=\"`vpcs`\" pulumi-lang-python=\"`vpcs`\" pulumi-lang-yaml=\"`vpcs`\" pulumi-lang-java=\"`vpcs`\"\u003e`vpcs`\u003c/span\u003e below.\n"}},"requiredInputs":["ruleId","vpcs"],"stateInputs":{"description":"Input properties used for looking up and filtering RuleAttachment resources.\n","properties":{"ruleId":{"type":"string","description":"The ID of the rule.\n","willReplaceOnChanges":true},"vpcs":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/RuleAttachmentVpc:RuleAttachmentVpc"},"description":"The List of the VPC. See \u003cspan pulumi-lang-nodejs=\"`vpcs`\" pulumi-lang-dotnet=\"`Vpcs`\" pulumi-lang-go=\"`vpcs`\" pulumi-lang-python=\"`vpcs`\" pulumi-lang-yaml=\"`vpcs`\" pulumi-lang-java=\"`vpcs`\"\u003e`vpcs`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:pvtz/userVpcAuthorization:UserVpcAuthorization":{"description":"Provides a Private Zone User Vpc Authorization resource.\n\n\u003e **NOTE:** Available since v1.138.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst authorizedUserId = config.getNumber(\"authorizedUserId\") || 123456789;\nconst example = new alicloud.pvtz.UserVpcAuthorization(\"example\", {\n    authorizedUserId: authorizedUserId,\n    authChannel: \"RESOURCE_DIRECTORY\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nauthorized_user_id = config.get_float(\"authorizedUserId\")\nif authorized_user_id is None:\n    authorized_user_id = 123456789\nexample = alicloud.pvtz.UserVpcAuthorization(\"example\",\n    authorized_user_id=authorized_user_id,\n    auth_channel=\"RESOURCE_DIRECTORY\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var authorizedUserId = config.GetDouble(\"authorizedUserId\") ?? 123456789;\n    var example = new AliCloud.Pvtz.UserVpcAuthorization(\"example\", new()\n    {\n        AuthorizedUserId = authorizedUserId,\n        AuthChannel = \"RESOURCE_DIRECTORY\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pvtz\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tauthorizedUserId := float64(123456789)\n\t\tif param := cfg.GetFloat64(\"authorizedUserId\"); param != 0 {\n\t\t\tauthorizedUserId = param\n\t\t}\n\t\t_, err := pvtz.NewUserVpcAuthorization(ctx, \"example\", \u0026pvtz.UserVpcAuthorizationArgs{\n\t\t\tAuthorizedUserId: pulumi.Float64(authorizedUserId),\n\t\t\tAuthChannel:      pulumi.String(\"RESOURCE_DIRECTORY\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pvtz.UserVpcAuthorization;\nimport com.pulumi.alicloud.pvtz.UserVpcAuthorizationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var authorizedUserId = config.get(\"authorizedUserId\").orElse(123456789);\n        var example = new UserVpcAuthorization(\"example\", UserVpcAuthorizationArgs.builder()\n            .authorizedUserId(authorizedUserId)\n            .authChannel(\"RESOURCE_DIRECTORY\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  authorizedUserId:\n    type: number\n    default: 1.23456789e+08\nresources:\n  example:\n    type: alicloud:pvtz:UserVpcAuthorization\n    properties:\n      authorizedUserId: ${authorizedUserId}\n      authChannel: RESOURCE_DIRECTORY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPrivate Zone User Vpc Authorization can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pvtz/userVpcAuthorization:UserVpcAuthorization example \u003cauthorized_user_id\u003e:\u003cauth_type\u003e\n```\n\n","properties":{"authChannel":{"type":"string","description":"The auth channel. Valid values: `RESOURCE_DIRECTORY`.\n"},"authType":{"type":"string","description":"The type of Authorization. Valid values: `NORMAL` and `CLOUD_PRODUCT`.\n"},"authorizedUserId":{"type":"string","description":"The primary account ID of the user who authorizes the resource.\n"}},"required":["authorizedUserId"],"inputProperties":{"authChannel":{"type":"string","description":"The auth channel. Valid values: `RESOURCE_DIRECTORY`.\n"},"authType":{"type":"string","description":"The type of Authorization. Valid values: `NORMAL` and `CLOUD_PRODUCT`.\n","willReplaceOnChanges":true},"authorizedUserId":{"type":"string","description":"The primary account ID of the user who authorizes the resource.\n","willReplaceOnChanges":true}},"requiredInputs":["authorizedUserId"],"stateInputs":{"description":"Input properties used for looking up and filtering UserVpcAuthorization resources.\n","properties":{"authChannel":{"type":"string","description":"The auth channel. Valid values: `RESOURCE_DIRECTORY`.\n"},"authType":{"type":"string","description":"The type of Authorization. Valid values: `NORMAL` and `CLOUD_PRODUCT`.\n","willReplaceOnChanges":true},"authorizedUserId":{"type":"string","description":"The primary account ID of the user who authorizes the resource.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:pvtz/zone:Zone":{"description":"Provides a Private Zone resource.\n\n\u003e **NOTE:** Terraform will auto Create a Private Zone while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.pvtz.Zone`\" pulumi-lang-dotnet=\"`alicloud.pvtz.Zone`\" pulumi-lang-go=\"`pvtz.Zone`\" pulumi-lang-python=\"`pvtz.Zone`\" pulumi-lang-yaml=\"`alicloud.pvtz.Zone`\" pulumi-lang-java=\"`alicloud.pvtz.Zone`\"\u003e`alicloud.pvtz.Zone`\u003c/span\u003e to build a Private Zone resource.\n\n\u003e **NOTE:** Available since v1.13.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst foo = new alicloud.pvtz.Zone(\"foo\", {zoneName: \"foo.example.com\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfoo = alicloud.pvtz.Zone(\"foo\", zone_name=\"foo.example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = new AliCloud.Pvtz.Zone(\"foo\", new()\n    {\n        ZoneName = \"foo.example.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pvtz\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := pvtz.NewZone(ctx, \"foo\", \u0026pvtz.ZoneArgs{\n\t\t\tZoneName: pulumi.String(\"foo.example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pvtz.Zone;\nimport com.pulumi.alicloud.pvtz.ZoneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var foo = new Zone(\"foo\", ZoneArgs.builder()\n            .zoneName(\"foo.example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  foo:\n    type: alicloud:pvtz:Zone\n    properties:\n      zoneName: foo.example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPrivate Zone can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pvtz/zone:Zone example abc123456\n```\n\n","properties":{"isPtr":{"type":"boolean","description":"Whether the Private Zone is ptr.\n"},"lang":{"type":"string","description":"The language. Valid values: \"zh\", \"en\", \"jp\".\n"},"name":{"type":"string","description":"The name of the Private Zone. The \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.107.0. Please use 'zone_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated from version 1.107.0. Use 'zone_name' instead."},"proxyPattern":{"type":"string","description":"The recursive DNS proxy. Valid values:\n- ZONE: indicates that the recursive DNS proxy is disabled.\n- RECORD: indicates that the recursive DNS proxy is enabled.\nDefault to \"ZONE\".\n"},"recordCount":{"type":"integer","description":"The count of the Private Zone Record.\n"},"remark":{"type":"string","description":"The remark of the Private Zone.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the Private Zone belongs.\n"},"syncStatus":{"type":"string","description":"The status of the host synchronization task. Valid values:  `ON`,`OFF`. **NOTE:** You can update the \u003cspan pulumi-lang-nodejs=\"`syncStatus`\" pulumi-lang-dotnet=\"`SyncStatus`\" pulumi-lang-go=\"`syncStatus`\" pulumi-lang-python=\"`sync_status`\" pulumi-lang-yaml=\"`syncStatus`\" pulumi-lang-java=\"`syncStatus`\"\u003e`sync_status`\u003c/span\u003e to enable/disable the host synchronization task.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the Private Zone.\n"},"userClientIp":{"type":"string","description":"The IP address of the client.\n"},"userInfos":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/ZoneUserInfo:ZoneUserInfo"},"description":"The user information of the host synchronization task. See \u003cspan pulumi-lang-nodejs=\"`userInfo`\" pulumi-lang-dotnet=\"`UserInfo`\" pulumi-lang-go=\"`userInfo`\" pulumi-lang-python=\"`user_info`\" pulumi-lang-yaml=\"`userInfo`\" pulumi-lang-java=\"`userInfo`\"\u003e`user_info`\u003c/span\u003e below.\n"},"zoneName":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" zoneName \" pulumi-lang-dotnet=\" ZoneName \" pulumi-lang-go=\" zoneName \" pulumi-lang-python=\" zone_name \" pulumi-lang-yaml=\" zoneName \" pulumi-lang-java=\" zoneName \"\u003e zone_name \u003c/span\u003eof the Private Zone. The \u003cspan pulumi-lang-nodejs=\"`zoneName`\" pulumi-lang-dotnet=\"`ZoneName`\" pulumi-lang-go=\"`zoneName`\" pulumi-lang-python=\"`zone_name`\" pulumi-lang-yaml=\"`zoneName`\" pulumi-lang-java=\"`zoneName`\"\u003e`zone_name`\u003c/span\u003e is required when the value of the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e  is Empty.\n"}},"required":["isPtr","name","recordCount","resourceGroupId","userInfos","zoneName"],"inputProperties":{"lang":{"type":"string","description":"The language. Valid values: \"zh\", \"en\", \"jp\".\n"},"name":{"type":"string","description":"The name of the Private Zone. The \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.107.0. Please use 'zone_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated from version 1.107.0. Use 'zone_name' instead.","willReplaceOnChanges":true},"proxyPattern":{"type":"string","description":"The recursive DNS proxy. Valid values:\n- ZONE: indicates that the recursive DNS proxy is disabled.\n- RECORD: indicates that the recursive DNS proxy is enabled.\nDefault to \"ZONE\".\n"},"remark":{"type":"string","description":"The remark of the Private Zone.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the Private Zone belongs.\n","willReplaceOnChanges":true},"syncStatus":{"type":"string","description":"The status of the host synchronization task. Valid values:  `ON`,`OFF`. **NOTE:** You can update the \u003cspan pulumi-lang-nodejs=\"`syncStatus`\" pulumi-lang-dotnet=\"`SyncStatus`\" pulumi-lang-go=\"`syncStatus`\" pulumi-lang-python=\"`sync_status`\" pulumi-lang-yaml=\"`syncStatus`\" pulumi-lang-java=\"`syncStatus`\"\u003e`sync_status`\u003c/span\u003e to enable/disable the host synchronization task.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the Private Zone.\n"},"userClientIp":{"type":"string","description":"The IP address of the client.\n"},"userInfos":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/ZoneUserInfo:ZoneUserInfo"},"description":"The user information of the host synchronization task. See \u003cspan pulumi-lang-nodejs=\"`userInfo`\" pulumi-lang-dotnet=\"`UserInfo`\" pulumi-lang-go=\"`userInfo`\" pulumi-lang-python=\"`user_info`\" pulumi-lang-yaml=\"`userInfo`\" pulumi-lang-java=\"`userInfo`\"\u003e`user_info`\u003c/span\u003e below.\n"},"zoneName":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" zoneName \" pulumi-lang-dotnet=\" ZoneName \" pulumi-lang-go=\" zoneName \" pulumi-lang-python=\" zone_name \" pulumi-lang-yaml=\" zoneName \" pulumi-lang-java=\" zoneName \"\u003e zone_name \u003c/span\u003eof the Private Zone. The \u003cspan pulumi-lang-nodejs=\"`zoneName`\" pulumi-lang-dotnet=\"`ZoneName`\" pulumi-lang-go=\"`zoneName`\" pulumi-lang-python=\"`zone_name`\" pulumi-lang-yaml=\"`zoneName`\" pulumi-lang-java=\"`zoneName`\"\u003e`zone_name`\u003c/span\u003e is required when the value of the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e  is Empty.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Zone resources.\n","properties":{"isPtr":{"type":"boolean","description":"Whether the Private Zone is ptr.\n"},"lang":{"type":"string","description":"The language. Valid values: \"zh\", \"en\", \"jp\".\n"},"name":{"type":"string","description":"The name of the Private Zone. The \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.107.0. Please use 'zone_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated from version 1.107.0. Use 'zone_name' instead.","willReplaceOnChanges":true},"proxyPattern":{"type":"string","description":"The recursive DNS proxy. Valid values:\n- ZONE: indicates that the recursive DNS proxy is disabled.\n- RECORD: indicates that the recursive DNS proxy is enabled.\nDefault to \"ZONE\".\n"},"recordCount":{"type":"integer","description":"The count of the Private Zone Record.\n"},"remark":{"type":"string","description":"The remark of the Private Zone.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the Private Zone belongs.\n","willReplaceOnChanges":true},"syncStatus":{"type":"string","description":"The status of the host synchronization task. Valid values:  `ON`,`OFF`. **NOTE:** You can update the \u003cspan pulumi-lang-nodejs=\"`syncStatus`\" pulumi-lang-dotnet=\"`SyncStatus`\" pulumi-lang-go=\"`syncStatus`\" pulumi-lang-python=\"`sync_status`\" pulumi-lang-yaml=\"`syncStatus`\" pulumi-lang-java=\"`syncStatus`\"\u003e`sync_status`\u003c/span\u003e to enable/disable the host synchronization task.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the Private Zone.\n"},"userClientIp":{"type":"string","description":"The IP address of the client.\n"},"userInfos":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/ZoneUserInfo:ZoneUserInfo"},"description":"The user information of the host synchronization task. See \u003cspan pulumi-lang-nodejs=\"`userInfo`\" pulumi-lang-dotnet=\"`UserInfo`\" pulumi-lang-go=\"`userInfo`\" pulumi-lang-python=\"`user_info`\" pulumi-lang-yaml=\"`userInfo`\" pulumi-lang-java=\"`userInfo`\"\u003e`user_info`\u003c/span\u003e below.\n"},"zoneName":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" zoneName \" pulumi-lang-dotnet=\" ZoneName \" pulumi-lang-go=\" zoneName \" pulumi-lang-python=\" zone_name \" pulumi-lang-yaml=\" zoneName \" pulumi-lang-java=\" zoneName \"\u003e zone_name \u003c/span\u003eof the Private Zone. The \u003cspan pulumi-lang-nodejs=\"`zoneName`\" pulumi-lang-dotnet=\"`ZoneName`\" pulumi-lang-go=\"`zoneName`\" pulumi-lang-python=\"`zone_name`\" pulumi-lang-yaml=\"`zoneName`\" pulumi-lang-java=\"`zoneName`\"\u003e`zone_name`\u003c/span\u003e is required when the value of the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e  is Empty.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:pvtz/zoneAttachment:ZoneAttachment":{"description":"Provides vpcs bound to Alicloud Private Zone resource.\n\n\u003e **NOTE:** Available since v1.13.0.\n\n\u003e **NOTE:** Terraform will auto bind vpc to a Private Zone while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.pvtz.ZoneAttachment`\" pulumi-lang-dotnet=\"`alicloud.pvtz.ZoneAttachment`\" pulumi-lang-go=\"`pvtz.ZoneAttachment`\" pulumi-lang-python=\"`pvtz.ZoneAttachment`\" pulumi-lang-yaml=\"`alicloud.pvtz.ZoneAttachment`\" pulumi-lang-java=\"`alicloud.pvtz.ZoneAttachment`\"\u003e`alicloud.pvtz.ZoneAttachment`\u003c/span\u003e to build a Private Zone and VPC binding resource.\n\n## Example Usage\n\nUsing \u003cspan pulumi-lang-nodejs=\"`vpcIds`\" pulumi-lang-dotnet=\"`VpcIds`\" pulumi-lang-go=\"`vpcIds`\" pulumi-lang-python=\"`vpc_ids`\" pulumi-lang-yaml=\"`vpcIds`\" pulumi-lang-java=\"`vpcIds`\"\u003e`vpc_ids`\u003c/span\u003e to attach being in same region several vpc instances to a private zone\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst zone = new alicloud.pvtz.Zone(\"zone\", {zoneName: \"foo.example.com\"});\nconst first = new alicloud.vpc.Network(\"first\", {\n    vpcName: \"the-first-vpc\",\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst second = new alicloud.vpc.Network(\"second\", {\n    vpcName: \"the-second-vpc\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst zone_attachment = new alicloud.pvtz.ZoneAttachment(\"zone-attachment\", {\n    zoneId: zone.id,\n    vpcIds: [\n        first.id,\n        second.id,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nzone = alicloud.pvtz.Zone(\"zone\", zone_name=\"foo.example.com\")\nfirst = alicloud.vpc.Network(\"first\",\n    vpc_name=\"the-first-vpc\",\n    cidr_block=\"172.16.0.0/12\")\nsecond = alicloud.vpc.Network(\"second\",\n    vpc_name=\"the-second-vpc\",\n    cidr_block=\"172.16.0.0/16\")\nzone_attachment = alicloud.pvtz.ZoneAttachment(\"zone-attachment\",\n    zone_id=zone.id,\n    vpc_ids=[\n        first.id,\n        second.id,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var zone = new AliCloud.Pvtz.Zone(\"zone\", new()\n    {\n        ZoneName = \"foo.example.com\",\n    });\n\n    var first = new AliCloud.Vpc.Network(\"first\", new()\n    {\n        VpcName = \"the-first-vpc\",\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var second = new AliCloud.Vpc.Network(\"second\", new()\n    {\n        VpcName = \"the-second-vpc\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var zone_attachment = new AliCloud.Pvtz.ZoneAttachment(\"zone-attachment\", new()\n    {\n        ZoneId = zone.Id,\n        VpcIds = new[]\n        {\n            first.Id,\n            second.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pvtz\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tzone, err := pvtz.NewZone(ctx, \"zone\", \u0026pvtz.ZoneArgs{\n\t\t\tZoneName: pulumi.String(\"foo.example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfirst, err := vpc.NewNetwork(ctx, \"first\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"the-first-vpc\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecond, err := vpc.NewNetwork(ctx, \"second\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"the-second-vpc\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pvtz.NewZoneAttachment(ctx, \"zone-attachment\", \u0026pvtz.ZoneAttachmentArgs{\n\t\t\tZoneId: zone.ID(),\n\t\t\tVpcIds: pulumi.StringArray{\n\t\t\t\tfirst.ID(),\n\t\t\t\tsecond.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pvtz.Zone;\nimport com.pulumi.alicloud.pvtz.ZoneArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.pvtz.ZoneAttachment;\nimport com.pulumi.alicloud.pvtz.ZoneAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var zone = new Zone(\"zone\", ZoneArgs.builder()\n            .zoneName(\"foo.example.com\")\n            .build());\n\n        var first = new Network(\"first\", NetworkArgs.builder()\n            .vpcName(\"the-first-vpc\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var second = new Network(\"second\", NetworkArgs.builder()\n            .vpcName(\"the-second-vpc\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var zone_attachment = new ZoneAttachment(\"zone-attachment\", ZoneAttachmentArgs.builder()\n            .zoneId(zone.id())\n            .vpcIds(            \n                first.id(),\n                second.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  zone:\n    type: alicloud:pvtz:Zone\n    properties:\n      zoneName: foo.example.com\n  first:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: the-first-vpc\n      cidrBlock: 172.16.0.0/12\n  second:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: the-second-vpc\n      cidrBlock: 172.16.0.0/16\n  zone-attachment:\n    type: alicloud:pvtz:ZoneAttachment\n    properties:\n      zoneId: ${zone.id}\n      vpcIds:\n        - ${first.id}\n        - ${second.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nUsing \u003cspan pulumi-lang-nodejs=\"`vpcs`\" pulumi-lang-dotnet=\"`Vpcs`\" pulumi-lang-go=\"`vpcs`\" pulumi-lang-python=\"`vpcs`\" pulumi-lang-yaml=\"`vpcs`\" pulumi-lang-java=\"`vpcs`\"\u003e`vpcs`\u003c/span\u003e to attach being in same region several vpc instances to a private zone\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst zone = new alicloud.pvtz.Zone(\"zone\", {zoneName: \"foo.example.com\"});\nconst first = new alicloud.vpc.Network(\"first\", {\n    vpcName: \"the-first-vpc\",\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst second = new alicloud.vpc.Network(\"second\", {\n    vpcName: \"the-second-vpc\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst zone_attachment = new alicloud.pvtz.ZoneAttachment(\"zone-attachment\", {\n    zoneId: zone.id,\n    vpcs: [\n        {\n            vpcId: first.id,\n        },\n        {\n            vpcId: second.id,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nzone = alicloud.pvtz.Zone(\"zone\", zone_name=\"foo.example.com\")\nfirst = alicloud.vpc.Network(\"first\",\n    vpc_name=\"the-first-vpc\",\n    cidr_block=\"172.16.0.0/12\")\nsecond = alicloud.vpc.Network(\"second\",\n    vpc_name=\"the-second-vpc\",\n    cidr_block=\"172.16.0.0/16\")\nzone_attachment = alicloud.pvtz.ZoneAttachment(\"zone-attachment\",\n    zone_id=zone.id,\n    vpcs=[\n        {\n            \"vpc_id\": first.id,\n        },\n        {\n            \"vpc_id\": second.id,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var zone = new AliCloud.Pvtz.Zone(\"zone\", new()\n    {\n        ZoneName = \"foo.example.com\",\n    });\n\n    var first = new AliCloud.Vpc.Network(\"first\", new()\n    {\n        VpcName = \"the-first-vpc\",\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var second = new AliCloud.Vpc.Network(\"second\", new()\n    {\n        VpcName = \"the-second-vpc\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var zone_attachment = new AliCloud.Pvtz.ZoneAttachment(\"zone-attachment\", new()\n    {\n        ZoneId = zone.Id,\n        Vpcs = new[]\n        {\n            new AliCloud.Pvtz.Inputs.ZoneAttachmentVpcArgs\n            {\n                VpcId = first.Id,\n            },\n            new AliCloud.Pvtz.Inputs.ZoneAttachmentVpcArgs\n            {\n                VpcId = second.Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pvtz\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tzone, err := pvtz.NewZone(ctx, \"zone\", \u0026pvtz.ZoneArgs{\n\t\t\tZoneName: pulumi.String(\"foo.example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfirst, err := vpc.NewNetwork(ctx, \"first\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"the-first-vpc\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecond, err := vpc.NewNetwork(ctx, \"second\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"the-second-vpc\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pvtz.NewZoneAttachment(ctx, \"zone-attachment\", \u0026pvtz.ZoneAttachmentArgs{\n\t\t\tZoneId: zone.ID(),\n\t\t\tVpcs: pvtz.ZoneAttachmentVpcArray{\n\t\t\t\t\u0026pvtz.ZoneAttachmentVpcArgs{\n\t\t\t\t\tVpcId: first.ID(),\n\t\t\t\t},\n\t\t\t\t\u0026pvtz.ZoneAttachmentVpcArgs{\n\t\t\t\t\tVpcId: second.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pvtz.Zone;\nimport com.pulumi.alicloud.pvtz.ZoneArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.pvtz.ZoneAttachment;\nimport com.pulumi.alicloud.pvtz.ZoneAttachmentArgs;\nimport com.pulumi.alicloud.pvtz.inputs.ZoneAttachmentVpcArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var zone = new Zone(\"zone\", ZoneArgs.builder()\n            .zoneName(\"foo.example.com\")\n            .build());\n\n        var first = new Network(\"first\", NetworkArgs.builder()\n            .vpcName(\"the-first-vpc\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var second = new Network(\"second\", NetworkArgs.builder()\n            .vpcName(\"the-second-vpc\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var zone_attachment = new ZoneAttachment(\"zone-attachment\", ZoneAttachmentArgs.builder()\n            .zoneId(zone.id())\n            .vpcs(            \n                ZoneAttachmentVpcArgs.builder()\n                    .vpcId(first.id())\n                    .build(),\n                ZoneAttachmentVpcArgs.builder()\n                    .vpcId(second.id())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  zone:\n    type: alicloud:pvtz:Zone\n    properties:\n      zoneName: foo.example.com\n  first:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: the-first-vpc\n      cidrBlock: 172.16.0.0/12\n  second:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: the-second-vpc\n      cidrBlock: 172.16.0.0/16\n  zone-attachment:\n    type: alicloud:pvtz:ZoneAttachment\n    properties:\n      zoneId: ${zone.id}\n      vpcs:\n        - vpcId: ${first.id}\n        - vpcId: ${second.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nUsing \u003cspan pulumi-lang-nodejs=\"`vpcs`\" pulumi-lang-dotnet=\"`Vpcs`\" pulumi-lang-go=\"`vpcs`\" pulumi-lang-python=\"`vpcs`\" pulumi-lang-yaml=\"`vpcs`\" pulumi-lang-java=\"`vpcs`\"\u003e`vpcs`\u003c/span\u003e to attach being in different regions several vpc instances to a private zone\n\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst zone = new alicloud.pvtz.Zone(\"zone\", {zoneName: \"foo.example.com\"});\nconst first = new alicloud.vpc.Network(\"first\", {\n    vpcName: \"the-first-vpc\",\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst second = new alicloud.vpc.Network(\"second\", {\n    vpcName: \"the-second-vpc\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst third = new alicloud.vpc.Network(\"third\", {\n    vpcName: \"the-third-vpc\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst zone_attachment = new alicloud.pvtz.ZoneAttachment(\"zone-attachment\", {\n    zoneId: zone.id,\n    vpcs: [\n        {\n            vpcId: first.id,\n        },\n        {\n            vpcId: second.id,\n        },\n        {\n            regionId: \"eu-central-1\",\n            vpcId: third.id,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nzone = alicloud.pvtz.Zone(\"zone\", zone_name=\"foo.example.com\")\nfirst = alicloud.vpc.Network(\"first\",\n    vpc_name=\"the-first-vpc\",\n    cidr_block=\"172.16.0.0/12\")\nsecond = alicloud.vpc.Network(\"second\",\n    vpc_name=\"the-second-vpc\",\n    cidr_block=\"172.16.0.0/16\")\nthird = alicloud.vpc.Network(\"third\",\n    vpc_name=\"the-third-vpc\",\n    cidr_block=\"172.16.0.0/16\")\nzone_attachment = alicloud.pvtz.ZoneAttachment(\"zone-attachment\",\n    zone_id=zone.id,\n    vpcs=[\n        {\n            \"vpc_id\": first.id,\n        },\n        {\n            \"vpc_id\": second.id,\n        },\n        {\n            \"region_id\": \"eu-central-1\",\n            \"vpc_id\": third.id,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var zone = new AliCloud.Pvtz.Zone(\"zone\", new()\n    {\n        ZoneName = \"foo.example.com\",\n    });\n\n    var first = new AliCloud.Vpc.Network(\"first\", new()\n    {\n        VpcName = \"the-first-vpc\",\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var second = new AliCloud.Vpc.Network(\"second\", new()\n    {\n        VpcName = \"the-second-vpc\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var third = new AliCloud.Vpc.Network(\"third\", new()\n    {\n        VpcName = \"the-third-vpc\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var zone_attachment = new AliCloud.Pvtz.ZoneAttachment(\"zone-attachment\", new()\n    {\n        ZoneId = zone.Id,\n        Vpcs = new[]\n        {\n            new AliCloud.Pvtz.Inputs.ZoneAttachmentVpcArgs\n            {\n                VpcId = first.Id,\n            },\n            new AliCloud.Pvtz.Inputs.ZoneAttachmentVpcArgs\n            {\n                VpcId = second.Id,\n            },\n            new AliCloud.Pvtz.Inputs.ZoneAttachmentVpcArgs\n            {\n                RegionId = \"eu-central-1\",\n                VpcId = third.Id,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pvtz\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tzone, err := pvtz.NewZone(ctx, \"zone\", \u0026pvtz.ZoneArgs{\n\t\t\tZoneName: pulumi.String(\"foo.example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfirst, err := vpc.NewNetwork(ctx, \"first\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"the-first-vpc\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecond, err := vpc.NewNetwork(ctx, \"second\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"the-second-vpc\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthird, err := vpc.NewNetwork(ctx, \"third\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"the-third-vpc\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pvtz.NewZoneAttachment(ctx, \"zone-attachment\", \u0026pvtz.ZoneAttachmentArgs{\n\t\t\tZoneId: zone.ID(),\n\t\t\tVpcs: pvtz.ZoneAttachmentVpcArray{\n\t\t\t\t\u0026pvtz.ZoneAttachmentVpcArgs{\n\t\t\t\t\tVpcId: first.ID(),\n\t\t\t\t},\n\t\t\t\t\u0026pvtz.ZoneAttachmentVpcArgs{\n\t\t\t\t\tVpcId: second.ID(),\n\t\t\t\t},\n\t\t\t\t\u0026pvtz.ZoneAttachmentVpcArgs{\n\t\t\t\t\tRegionId: pulumi.String(\"eu-central-1\"),\n\t\t\t\t\tVpcId:    third.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pvtz.Zone;\nimport com.pulumi.alicloud.pvtz.ZoneArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.pvtz.ZoneAttachment;\nimport com.pulumi.alicloud.pvtz.ZoneAttachmentArgs;\nimport com.pulumi.alicloud.pvtz.inputs.ZoneAttachmentVpcArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var zone = new Zone(\"zone\", ZoneArgs.builder()\n            .zoneName(\"foo.example.com\")\n            .build());\n\n        var first = new Network(\"first\", NetworkArgs.builder()\n            .vpcName(\"the-first-vpc\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var second = new Network(\"second\", NetworkArgs.builder()\n            .vpcName(\"the-second-vpc\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var third = new Network(\"third\", NetworkArgs.builder()\n            .vpcName(\"the-third-vpc\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var zone_attachment = new ZoneAttachment(\"zone-attachment\", ZoneAttachmentArgs.builder()\n            .zoneId(zone.id())\n            .vpcs(            \n                ZoneAttachmentVpcArgs.builder()\n                    .vpcId(first.id())\n                    .build(),\n                ZoneAttachmentVpcArgs.builder()\n                    .vpcId(second.id())\n                    .build(),\n                ZoneAttachmentVpcArgs.builder()\n                    .regionId(\"eu-central-1\")\n                    .vpcId(third.id())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  zone:\n    type: alicloud:pvtz:Zone\n    properties:\n      zoneName: foo.example.com\n  first:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: the-first-vpc\n      cidrBlock: 172.16.0.0/12\n  second:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: the-second-vpc\n      cidrBlock: 172.16.0.0/16\n  third:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: the-third-vpc\n      cidrBlock: 172.16.0.0/16\n  zone-attachment:\n    type: alicloud:pvtz:ZoneAttachment\n    properties:\n      zoneId: ${zone.id}\n      vpcs:\n        - vpcId: ${first.id}\n        - vpcId: ${second.id}\n        - regionId: eu-central-1\n          vpcId: ${third.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPrivate Zone attachment can be imported using the id(same with \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e), e.g.\n\n```sh\n$ pulumi import alicloud:pvtz/zoneAttachment:ZoneAttachment example abc123456\n```\n\n","properties":{"lang":{"type":"string","description":"The language of code.\n"},"userClientIp":{"type":"string","description":"The user custom IP address.\n"},"vpcIds":{"type":"array","items":{"type":"string"},"description":"The id List of the VPC with the same region, for example:[\"vpc-1\",\"vpc-2\"].\n"},"vpcs":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/ZoneAttachmentVpc:ZoneAttachmentVpc"},"description":"See \u003cspan pulumi-lang-nodejs=\"`vpcs`\" pulumi-lang-dotnet=\"`Vpcs`\" pulumi-lang-go=\"`vpcs`\" pulumi-lang-python=\"`vpcs`\" pulumi-lang-yaml=\"`vpcs`\" pulumi-lang-java=\"`vpcs`\"\u003e`vpcs`\u003c/span\u003e below.Recommend to use \u003cspan pulumi-lang-nodejs=\"`vpcs`\" pulumi-lang-dotnet=\"`Vpcs`\" pulumi-lang-go=\"`vpcs`\" pulumi-lang-python=\"`vpcs`\" pulumi-lang-yaml=\"`vpcs`\" pulumi-lang-java=\"`vpcs`\"\u003e`vpcs`\u003c/span\u003e.\n"},"zoneId":{"type":"string","description":"The name of the Private Zone Record.\n"}},"required":["vpcIds","vpcs","zoneId"],"inputProperties":{"lang":{"type":"string","description":"The language of code.\n","willReplaceOnChanges":true},"userClientIp":{"type":"string","description":"The user custom IP address.\n","willReplaceOnChanges":true},"vpcIds":{"type":"array","items":{"type":"string"},"description":"The id List of the VPC with the same region, for example:[\"vpc-1\",\"vpc-2\"].\n"},"vpcs":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/ZoneAttachmentVpc:ZoneAttachmentVpc"},"description":"See \u003cspan pulumi-lang-nodejs=\"`vpcs`\" pulumi-lang-dotnet=\"`Vpcs`\" pulumi-lang-go=\"`vpcs`\" pulumi-lang-python=\"`vpcs`\" pulumi-lang-yaml=\"`vpcs`\" pulumi-lang-java=\"`vpcs`\"\u003e`vpcs`\u003c/span\u003e below.Recommend to use \u003cspan pulumi-lang-nodejs=\"`vpcs`\" pulumi-lang-dotnet=\"`Vpcs`\" pulumi-lang-go=\"`vpcs`\" pulumi-lang-python=\"`vpcs`\" pulumi-lang-yaml=\"`vpcs`\" pulumi-lang-java=\"`vpcs`\"\u003e`vpcs`\u003c/span\u003e.\n"},"zoneId":{"type":"string","description":"The name of the Private Zone Record.\n","willReplaceOnChanges":true}},"requiredInputs":["zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering ZoneAttachment resources.\n","properties":{"lang":{"type":"string","description":"The language of code.\n","willReplaceOnChanges":true},"userClientIp":{"type":"string","description":"The user custom IP address.\n","willReplaceOnChanges":true},"vpcIds":{"type":"array","items":{"type":"string"},"description":"The id List of the VPC with the same region, for example:[\"vpc-1\",\"vpc-2\"].\n"},"vpcs":{"type":"array","items":{"$ref":"#/types/alicloud:pvtz/ZoneAttachmentVpc:ZoneAttachmentVpc"},"description":"See \u003cspan pulumi-lang-nodejs=\"`vpcs`\" pulumi-lang-dotnet=\"`Vpcs`\" pulumi-lang-go=\"`vpcs`\" pulumi-lang-python=\"`vpcs`\" pulumi-lang-yaml=\"`vpcs`\" pulumi-lang-java=\"`vpcs`\"\u003e`vpcs`\u003c/span\u003e below.Recommend to use \u003cspan pulumi-lang-nodejs=\"`vpcs`\" pulumi-lang-dotnet=\"`Vpcs`\" pulumi-lang-go=\"`vpcs`\" pulumi-lang-python=\"`vpcs`\" pulumi-lang-yaml=\"`vpcs`\" pulumi-lang-java=\"`vpcs`\"\u003e`vpcs`\u003c/span\u003e.\n"},"zoneId":{"type":"string","description":"The name of the Private Zone Record.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:pvtz/zoneRecord:ZoneRecord":{"description":"Provides a Private Zone Record resource.\n\n\u003e **NOTE:** Terraform will auto Create a Private Zone Record while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.pvtz.ZoneRecord`\" pulumi-lang-dotnet=\"`alicloud.pvtz.ZoneRecord`\" pulumi-lang-go=\"`pvtz.ZoneRecord`\" pulumi-lang-python=\"`pvtz.ZoneRecord`\" pulumi-lang-yaml=\"`alicloud.pvtz.ZoneRecord`\" pulumi-lang-java=\"`alicloud.pvtz.ZoneRecord`\"\u003e`alicloud.pvtz.ZoneRecord`\u003c/span\u003e to build a Private Zone Record resource.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst zone = new alicloud.pvtz.Zone(\"zone\", {zoneName: \"foo.test.com\"});\nconst foo = new alicloud.pvtz.ZoneRecord(\"foo\", {\n    zoneId: zone.id,\n    rr: \"www\",\n    type: \"CNAME\",\n    value: \"bbb.test.com\",\n    ttl: 60,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nzone = alicloud.pvtz.Zone(\"zone\", zone_name=\"foo.test.com\")\nfoo = alicloud.pvtz.ZoneRecord(\"foo\",\n    zone_id=zone.id,\n    rr=\"www\",\n    type=\"CNAME\",\n    value=\"bbb.test.com\",\n    ttl=60)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var zone = new AliCloud.Pvtz.Zone(\"zone\", new()\n    {\n        ZoneName = \"foo.test.com\",\n    });\n\n    var foo = new AliCloud.Pvtz.ZoneRecord(\"foo\", new()\n    {\n        ZoneId = zone.Id,\n        Rr = \"www\",\n        Type = \"CNAME\",\n        Value = \"bbb.test.com\",\n        Ttl = 60,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pvtz\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tzone, err := pvtz.NewZone(ctx, \"zone\", \u0026pvtz.ZoneArgs{\n\t\t\tZoneName: pulumi.String(\"foo.test.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pvtz.NewZoneRecord(ctx, \"foo\", \u0026pvtz.ZoneRecordArgs{\n\t\t\tZoneId: zone.ID(),\n\t\t\tRr:     pulumi.String(\"www\"),\n\t\t\tType:   pulumi.String(\"CNAME\"),\n\t\t\tValue:  pulumi.String(\"bbb.test.com\"),\n\t\t\tTtl:    pulumi.Int(60),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pvtz.Zone;\nimport com.pulumi.alicloud.pvtz.ZoneArgs;\nimport com.pulumi.alicloud.pvtz.ZoneRecord;\nimport com.pulumi.alicloud.pvtz.ZoneRecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var zone = new Zone(\"zone\", ZoneArgs.builder()\n            .zoneName(\"foo.test.com\")\n            .build());\n\n        var foo = new ZoneRecord(\"foo\", ZoneRecordArgs.builder()\n            .zoneId(zone.id())\n            .rr(\"www\")\n            .type(\"CNAME\")\n            .value(\"bbb.test.com\")\n            .ttl(60)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  zone:\n    type: alicloud:pvtz:Zone\n    properties:\n      zoneName: foo.test.com\n  foo:\n    type: alicloud:pvtz:ZoneRecord\n    properties:\n      zoneId: ${zone.id}\n      rr: www\n      type: CNAME\n      value: bbb.test.com\n      ttl: 60\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nPrivate Zone Record can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:pvtz/zoneRecord:ZoneRecord example abc123456\n```\n\n","properties":{"lang":{"type":"string","description":"User language.\n"},"priority":{"type":"integer","description":"The priority of the Private Zone Record. At present, only can \"MX\" record support it. Valid values: [1-99]. Default to 1.\n"},"recordId":{"type":"string","description":"The Private Zone Record ID.\n"},"remark":{"type":"string","description":"The remark of the Private Zone Record.\n"},"resourceRecord":{"type":"string","description":"The resource record of the Private Zone Record.\n","deprecationMessage":"Field 'resource_record' has been deprecated from version 1.109.0. Use 'rr' instead."},"rr":{"type":"string","description":"The rr of the Private Zone Record.\n"},"status":{"type":"string","description":"Resolve record status. Value:\n- ENABLE: enable resolution.\n- DISABLE: pause parsing.\n"},"ttl":{"type":"integer","description":"The ttl of the Private Zone Record. Default to \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of the Private Zone Record. Valid values: A, CNAME, TXT, MX, PTR, SRV.\n"},"userClientIp":{"type":"string"},"value":{"type":"string","description":"The value of the Private Zone Record.\n"},"zoneId":{"type":"string","description":"The name of the Private Zone Record.\n"}},"required":["recordId","resourceRecord","rr","type","value","zoneId"],"inputProperties":{"lang":{"type":"string","description":"User language.\n"},"priority":{"type":"integer","description":"The priority of the Private Zone Record. At present, only can \"MX\" record support it. Valid values: [1-99]. Default to 1.\n"},"remark":{"type":"string","description":"The remark of the Private Zone Record.\n"},"resourceRecord":{"type":"string","description":"The resource record of the Private Zone Record.\n","deprecationMessage":"Field 'resource_record' has been deprecated from version 1.109.0. Use 'rr' instead."},"rr":{"type":"string","description":"The rr of the Private Zone Record.\n"},"status":{"type":"string","description":"Resolve record status. Value:\n- ENABLE: enable resolution.\n- DISABLE: pause parsing.\n"},"ttl":{"type":"integer","description":"The ttl of the Private Zone Record. Default to \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of the Private Zone Record. Valid values: A, CNAME, TXT, MX, PTR, SRV.\n"},"userClientIp":{"type":"string"},"value":{"type":"string","description":"The value of the Private Zone Record.\n"},"zoneId":{"type":"string","description":"The name of the Private Zone Record.\n","willReplaceOnChanges":true}},"requiredInputs":["type","value","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering ZoneRecord resources.\n","properties":{"lang":{"type":"string","description":"User language.\n"},"priority":{"type":"integer","description":"The priority of the Private Zone Record. At present, only can \"MX\" record support it. Valid values: [1-99]. Default to 1.\n"},"recordId":{"type":"string","description":"The Private Zone Record ID.\n"},"remark":{"type":"string","description":"The remark of the Private Zone Record.\n"},"resourceRecord":{"type":"string","description":"The resource record of the Private Zone Record.\n","deprecationMessage":"Field 'resource_record' has been deprecated from version 1.109.0. Use 'rr' instead."},"rr":{"type":"string","description":"The rr of the Private Zone Record.\n"},"status":{"type":"string","description":"Resolve record status. Value:\n- ENABLE: enable resolution.\n- DISABLE: pause parsing.\n"},"ttl":{"type":"integer","description":"The ttl of the Private Zone Record. Default to \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of the Private Zone Record. Valid values: A, CNAME, TXT, MX, PTR, SRV.\n"},"userClientIp":{"type":"string"},"value":{"type":"string","description":"The value of the Private Zone Record.\n"},"zoneId":{"type":"string","description":"The name of the Private Zone Record.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:quickbi/user:User":{"description":"Provides a Quick BI User resource.\n\nFor information about Quick BI User and how to use it, see [What is User](https://www.alibabacloud.com/help/doc-detail/33813.htm).\n\n\u003e **NOTE:** Available in v1.136.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.quickbi.User(\"example\", {\n    accountName: \"example_value\",\n    adminUser: false,\n    authAdminUser: false,\n    nickName: \"example_value\",\n    userType: \"Analyst\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.quickbi.User(\"example\",\n    account_name=\"example_value\",\n    admin_user=False,\n    auth_admin_user=False,\n    nick_name=\"example_value\",\n    user_type=\"Analyst\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.QuickBI.User(\"example\", new()\n    {\n        AccountName = \"example_value\",\n        AdminUser = false,\n        AuthAdminUser = false,\n        NickName = \"example_value\",\n        UserType = \"Analyst\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/quickbi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := quickbi.NewUser(ctx, \"example\", \u0026quickbi.UserArgs{\n\t\t\tAccountName:   pulumi.String(\"example_value\"),\n\t\t\tAdminUser:     pulumi.Bool(false),\n\t\t\tAuthAdminUser: pulumi.Bool(false),\n\t\t\tNickName:      pulumi.String(\"example_value\"),\n\t\t\tUserType:      pulumi.String(\"Analyst\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.quickbi.User;\nimport com.pulumi.alicloud.quickbi.UserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new User(\"example\", UserArgs.builder()\n            .accountName(\"example_value\")\n            .adminUser(false)\n            .authAdminUser(false)\n            .nickName(\"example_value\")\n            .userType(\"Analyst\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:quickbi:User\n    properties:\n      accountName: example_value\n      adminUser: false\n      authAdminUser: false\n      nickName: example_value\n      userType: Analyst\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nQuick BI User can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:quickbi/user:User example \u003cid\u003e\n```\n\n","properties":{"accountId":{"type":"string","description":"Alibaba Cloud account ID.\n"},"accountName":{"type":"string","description":"An Alibaba Cloud account, Alibaba Cloud name.\n"},"adminUser":{"type":"boolean","description":"Whether it is the administrator. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"authAdminUser":{"type":"boolean","description":"Whether this is a permissions administrator. Valid values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"nickName":{"type":"string","description":"The nickname of the user.\n"},"userType":{"type":"string","description":"The members of the organization of the type of role separately. Valid values: `Analyst`, `Developer` and `Visitor`.\n"}},"required":["accountName","adminUser","authAdminUser","nickName","userType"],"inputProperties":{"accountId":{"type":"string","description":"Alibaba Cloud account ID.\n","willReplaceOnChanges":true},"accountName":{"type":"string","description":"An Alibaba Cloud account, Alibaba Cloud name.\n"},"adminUser":{"type":"boolean","description":"Whether it is the administrator. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"authAdminUser":{"type":"boolean","description":"Whether this is a permissions administrator. Valid values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"nickName":{"type":"string","description":"The nickname of the user.\n","willReplaceOnChanges":true},"userType":{"type":"string","description":"The members of the organization of the type of role separately. Valid values: `Analyst`, `Developer` and `Visitor`.\n"}},"requiredInputs":["accountName","adminUser","authAdminUser","nickName","userType"],"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"accountId":{"type":"string","description":"Alibaba Cloud account ID.\n","willReplaceOnChanges":true},"accountName":{"type":"string","description":"An Alibaba Cloud account, Alibaba Cloud name.\n"},"adminUser":{"type":"boolean","description":"Whether it is the administrator. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"authAdminUser":{"type":"boolean","description":"Whether this is a permissions administrator. Valid values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"nickName":{"type":"string","description":"The nickname of the user.\n","willReplaceOnChanges":true},"userType":{"type":"string","description":"The members of the organization of the type of role separately. Valid values: `Analyst`, `Developer` and `Visitor`.\n"}},"type":"object"}},"alicloud:quotas/applicationInfo:ApplicationInfo":{"properties":{"approveValue":{"type":"string"},"auditMode":{"type":"string"},"auditReason":{"type":"string"},"createTime":{"type":"string"},"desireValue":{"type":"number"},"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/ApplicationInfoDimension:ApplicationInfoDimension"}},"effectiveTime":{"type":"string"},"envLanguage":{"type":"string"},"expireTime":{"type":"string"},"noticeType":{"type":"integer"},"productCode":{"type":"string"},"quotaActionCode":{"type":"string"},"quotaCategory":{"type":"string"},"quotaDescription":{"type":"string"},"quotaName":{"type":"string"},"quotaUnit":{"type":"string"},"reason":{"type":"string"},"status":{"type":"string"}},"required":["approveValue","auditMode","auditReason","createTime","desireValue","noticeType","productCode","quotaActionCode","quotaDescription","quotaName","quotaUnit","reason","status"],"inputProperties":{"auditMode":{"type":"string","willReplaceOnChanges":true},"desireValue":{"type":"number","willReplaceOnChanges":true},"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/ApplicationInfoDimension:ApplicationInfoDimension"},"willReplaceOnChanges":true},"effectiveTime":{"type":"string","willReplaceOnChanges":true},"envLanguage":{"type":"string","willReplaceOnChanges":true},"expireTime":{"type":"string","willReplaceOnChanges":true},"noticeType":{"type":"integer","willReplaceOnChanges":true},"productCode":{"type":"string","willReplaceOnChanges":true},"quotaActionCode":{"type":"string","willReplaceOnChanges":true},"quotaCategory":{"type":"string","willReplaceOnChanges":true},"reason":{"type":"string","willReplaceOnChanges":true}},"requiredInputs":["desireValue","productCode","quotaActionCode","reason"],"stateInputs":{"description":"Input properties used for looking up and filtering ApplicationInfo resources.\n","properties":{"approveValue":{"type":"string"},"auditMode":{"type":"string","willReplaceOnChanges":true},"auditReason":{"type":"string"},"createTime":{"type":"string"},"desireValue":{"type":"number","willReplaceOnChanges":true},"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/ApplicationInfoDimension:ApplicationInfoDimension"},"willReplaceOnChanges":true},"effectiveTime":{"type":"string","willReplaceOnChanges":true},"envLanguage":{"type":"string","willReplaceOnChanges":true},"expireTime":{"type":"string","willReplaceOnChanges":true},"noticeType":{"type":"integer","willReplaceOnChanges":true},"productCode":{"type":"string","willReplaceOnChanges":true},"quotaActionCode":{"type":"string","willReplaceOnChanges":true},"quotaCategory":{"type":"string","willReplaceOnChanges":true},"quotaDescription":{"type":"string"},"quotaName":{"type":"string"},"quotaUnit":{"type":"string"},"reason":{"type":"string","willReplaceOnChanges":true},"status":{"type":"string"}},"type":"object"}},"alicloud:quotas/quotaAlarm:QuotaAlarm":{"description":"Provides a Quotas Quota Alarm resource. \n\nFor information about Quotas Quota Alarm and how to use it, see [What is Quota Alarm](https://www.alibabacloud.com/help/en/quota-center/developer-reference/api-quotas-2020-05-10-createquotaalarm).\n\n\u003e **NOTE:** Available since v1.116.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultQuotaAlarm = new alicloud.quotas.QuotaAlarm(\"default\", {\n    quotaActionCode: \"q_desktop-count\",\n    quotaDimensions: [{\n        key: \"regionId\",\n        value: \"cn-hangzhou\",\n    }],\n    thresholdPercent: 80,\n    productCode: \"gws\",\n    quotaAlarmName: `${name}-${_default.result}`,\n    thresholdType: \"used\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_quota_alarm = alicloud.quotas.QuotaAlarm(\"default\",\n    quota_action_code=\"q_desktop-count\",\n    quota_dimensions=[{\n        \"key\": \"regionId\",\n        \"value\": \"cn-hangzhou\",\n    }],\n    threshold_percent=80,\n    product_code=\"gws\",\n    quota_alarm_name=f\"{name}-{default['result']}\",\n    threshold_type=\"used\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultQuotaAlarm = new AliCloud.Quotas.QuotaAlarm(\"default\", new()\n    {\n        QuotaActionCode = \"q_desktop-count\",\n        QuotaDimensions = new[]\n        {\n            new AliCloud.Quotas.Inputs.QuotaAlarmQuotaDimensionArgs\n            {\n                Key = \"regionId\",\n                Value = \"cn-hangzhou\",\n            },\n        },\n        ThresholdPercent = 80,\n        ProductCode = \"gws\",\n        QuotaAlarmName = $\"{name}-{@default.Result}\",\n        ThresholdType = \"used\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/quotas\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = quotas.NewQuotaAlarm(ctx, \"default\", \u0026quotas.QuotaAlarmArgs{\n\t\t\tQuotaActionCode: pulumi.String(\"q_desktop-count\"),\n\t\t\tQuotaDimensions: quotas.QuotaAlarmQuotaDimensionArray{\n\t\t\t\t\u0026quotas.QuotaAlarmQuotaDimensionArgs{\n\t\t\t\t\tKey:   pulumi.String(\"regionId\"),\n\t\t\t\t\tValue: pulumi.String(\"cn-hangzhou\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tThresholdPercent: pulumi.Float64(80),\n\t\t\tProductCode:      pulumi.String(\"gws\"),\n\t\t\tQuotaAlarmName:   pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tThresholdType:    pulumi.String(\"used\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.quotas.QuotaAlarm;\nimport com.pulumi.alicloud.quotas.QuotaAlarmArgs;\nimport com.pulumi.alicloud.quotas.inputs.QuotaAlarmQuotaDimensionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultQuotaAlarm = new QuotaAlarm(\"defaultQuotaAlarm\", QuotaAlarmArgs.builder()\n            .quotaActionCode(\"q_desktop-count\")\n            .quotaDimensions(QuotaAlarmQuotaDimensionArgs.builder()\n                .key(\"regionId\")\n                .value(\"cn-hangzhou\")\n                .build())\n            .thresholdPercent(80.0)\n            .productCode(\"gws\")\n            .quotaAlarmName(String.format(\"%s-%s\", name,default_.result()))\n            .thresholdType(\"used\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultQuotaAlarm:\n    type: alicloud:quotas:QuotaAlarm\n    name: default\n    properties:\n      quotaActionCode: q_desktop-count\n      quotaDimensions:\n        - key: regionId\n          value: cn-hangzhou\n      thresholdPercent: 80\n      productCode: gws\n      quotaAlarmName: ${name}-${default.result}\n      thresholdType: used\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nQuotas Quota Alarm can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:quotas/quotaAlarm:QuotaAlarm example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"productCode":{"type":"string","description":"The Product Code.\n"},"quotaActionCode":{"type":"string","description":"The Quota Action Code.\n"},"quotaAlarmName":{"type":"string","description":"The name of Quota Alarm.\n"},"quotaDimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/QuotaAlarmQuotaDimension:QuotaAlarmQuotaDimension"},"description":"The Quota Dimensions. See \u003cspan pulumi-lang-nodejs=\"`quotaDimensions`\" pulumi-lang-dotnet=\"`QuotaDimensions`\" pulumi-lang-go=\"`quotaDimensions`\" pulumi-lang-python=\"`quota_dimensions`\" pulumi-lang-yaml=\"`quotaDimensions`\" pulumi-lang-java=\"`quotaDimensions`\"\u003e`quota_dimensions`\u003c/span\u003e below.\n"},"threshold":{"type":"number","description":"The threshold of Quota Alarm.\n"},"thresholdPercent":{"type":"number","description":"The threshold percent of Quota Alarm.\n"},"thresholdType":{"type":"string","description":"Quota alarm type. Value:\n- used: Quota used alarm.\n- usable: alarm for the remaining available quota.\n"},"webHook":{"type":"string","description":"The WebHook of Quota Alarm.\n"}},"required":["createTime","productCode","quotaActionCode","quotaAlarmName","thresholdType"],"inputProperties":{"productCode":{"type":"string","description":"The Product Code.\n","willReplaceOnChanges":true},"quotaActionCode":{"type":"string","description":"The Quota Action Code.\n","willReplaceOnChanges":true},"quotaAlarmName":{"type":"string","description":"The name of Quota Alarm.\n"},"quotaDimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/QuotaAlarmQuotaDimension:QuotaAlarmQuotaDimension"},"description":"The Quota Dimensions. See \u003cspan pulumi-lang-nodejs=\"`quotaDimensions`\" pulumi-lang-dotnet=\"`QuotaDimensions`\" pulumi-lang-go=\"`quotaDimensions`\" pulumi-lang-python=\"`quota_dimensions`\" pulumi-lang-yaml=\"`quotaDimensions`\" pulumi-lang-java=\"`quotaDimensions`\"\u003e`quota_dimensions`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"threshold":{"type":"number","description":"The threshold of Quota Alarm.\n"},"thresholdPercent":{"type":"number","description":"The threshold percent of Quota Alarm.\n"},"thresholdType":{"type":"string","description":"Quota alarm type. Value:\n- used: Quota used alarm.\n- usable: alarm for the remaining available quota.\n"},"webHook":{"type":"string","description":"The WebHook of Quota Alarm.\n"}},"requiredInputs":["productCode","quotaActionCode","quotaAlarmName"],"stateInputs":{"description":"Input properties used for looking up and filtering QuotaAlarm resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"productCode":{"type":"string","description":"The Product Code.\n","willReplaceOnChanges":true},"quotaActionCode":{"type":"string","description":"The Quota Action Code.\n","willReplaceOnChanges":true},"quotaAlarmName":{"type":"string","description":"The name of Quota Alarm.\n"},"quotaDimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/QuotaAlarmQuotaDimension:QuotaAlarmQuotaDimension"},"description":"The Quota Dimensions. See \u003cspan pulumi-lang-nodejs=\"`quotaDimensions`\" pulumi-lang-dotnet=\"`QuotaDimensions`\" pulumi-lang-go=\"`quotaDimensions`\" pulumi-lang-python=\"`quota_dimensions`\" pulumi-lang-yaml=\"`quotaDimensions`\" pulumi-lang-java=\"`quotaDimensions`\"\u003e`quota_dimensions`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"threshold":{"type":"number","description":"The threshold of Quota Alarm.\n"},"thresholdPercent":{"type":"number","description":"The threshold percent of Quota Alarm.\n"},"thresholdType":{"type":"string","description":"Quota alarm type. Value:\n- used: Quota used alarm.\n- usable: alarm for the remaining available quota.\n"},"webHook":{"type":"string","description":"The WebHook of Quota Alarm.\n"}},"type":"object"}},"alicloud:quotas/quotaApplication:QuotaApplication":{"description":"Provides a Quotas Quota Application resource. Details of Quota Application.\n\nFor information about Quotas Quota Application and how to use it, see [What is Quota Application](https://www.alibabacloud.com/help/en/quota-center/developer-reference/api-quotas-2020-05-10-createquotaapplication).\n\n\u003e **NOTE:** Available since v1.117.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.quotas.QuotaApplication(\"default\", {\n    quotaActionCode: \"q_desktop-count\",\n    productCode: \"gws\",\n    quotaCategory: \"CommonQuota\",\n    noticeType: 3,\n    dimensions: [{\n        key: \"regionId\",\n        value: \"cn-hangzhou\",\n    }],\n    desireValue: 1001,\n    reason: \"测试\",\n    envLanguage: \"zh\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.quotas.QuotaApplication(\"default\",\n    quota_action_code=\"q_desktop-count\",\n    product_code=\"gws\",\n    quota_category=\"CommonQuota\",\n    notice_type=3,\n    dimensions=[{\n        \"key\": \"regionId\",\n        \"value\": \"cn-hangzhou\",\n    }],\n    desire_value=1001,\n    reason=\"测试\",\n    env_language=\"zh\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Quotas.QuotaApplication(\"default\", new()\n    {\n        QuotaActionCode = \"q_desktop-count\",\n        ProductCode = \"gws\",\n        QuotaCategory = \"CommonQuota\",\n        NoticeType = 3,\n        Dimensions = new[]\n        {\n            new AliCloud.Quotas.Inputs.QuotaApplicationDimensionArgs\n            {\n                Key = \"regionId\",\n                Value = \"cn-hangzhou\",\n            },\n        },\n        DesireValue = 1001,\n        Reason = \"测试\",\n        EnvLanguage = \"zh\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/quotas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := quotas.NewQuotaApplication(ctx, \"default\", \u0026quotas.QuotaApplicationArgs{\n\t\t\tQuotaActionCode: pulumi.String(\"q_desktop-count\"),\n\t\t\tProductCode:     pulumi.String(\"gws\"),\n\t\t\tQuotaCategory:   pulumi.String(\"CommonQuota\"),\n\t\t\tNoticeType:      pulumi.Int(3),\n\t\t\tDimensions: quotas.QuotaApplicationDimensionArray{\n\t\t\t\t\u0026quotas.QuotaApplicationDimensionArgs{\n\t\t\t\t\tKey:   pulumi.String(\"regionId\"),\n\t\t\t\t\tValue: pulumi.String(\"cn-hangzhou\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDesireValue: pulumi.Float64(1001),\n\t\t\tReason:      pulumi.String(\"测试\"),\n\t\t\tEnvLanguage: pulumi.String(\"zh\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.quotas.QuotaApplication;\nimport com.pulumi.alicloud.quotas.QuotaApplicationArgs;\nimport com.pulumi.alicloud.quotas.inputs.QuotaApplicationDimensionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new QuotaApplication(\"default\", QuotaApplicationArgs.builder()\n            .quotaActionCode(\"q_desktop-count\")\n            .productCode(\"gws\")\n            .quotaCategory(\"CommonQuota\")\n            .noticeType(3)\n            .dimensions(QuotaApplicationDimensionArgs.builder()\n                .key(\"regionId\")\n                .value(\"cn-hangzhou\")\n                .build())\n            .desireValue(1001.0)\n            .reason(\"测试\")\n            .envLanguage(\"zh\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:quotas:QuotaApplication\n    properties:\n      quotaActionCode: q_desktop-count\n      productCode: gws\n      quotaCategory: CommonQuota\n      noticeType: 3\n      dimensions:\n        - key: regionId\n          value: cn-hangzhou\n      desireValue: 1001\n      reason: 测试\n      envLanguage: zh\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.quotas.QuotaApplication`\" pulumi-lang-dotnet=\"`alicloud.quotas.QuotaApplication`\" pulumi-lang-go=\"`quotas.QuotaApplication`\" pulumi-lang-python=\"`quotas.QuotaApplication`\" pulumi-lang-yaml=\"`alicloud.quotas.QuotaApplication`\" pulumi-lang-java=\"`alicloud.quotas.QuotaApplication`\"\u003e`alicloud.quotas.QuotaApplication`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.quotas.QuotaApplication`\" pulumi-lang-dotnet=\"`alicloud.quotas.QuotaApplication`\" pulumi-lang-go=\"`quotas.QuotaApplication`\" pulumi-lang-python=\"`quotas.QuotaApplication`\" pulumi-lang-yaml=\"`alicloud.quotas.QuotaApplication`\" pulumi-lang-java=\"`alicloud.quotas.QuotaApplication`\"\u003e`alicloud.quotas.QuotaApplication`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nQuotas Quota Application can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:quotas/quotaApplication:QuotaApplication example \u003cid\u003e\n```\n\n","properties":{"approveValue":{"type":"string","description":"The approve value of the quota application.\n"},"auditMode":{"type":"string","description":"This parameter is discontinued and is not recommended. The mode in which you want the application to be reviewed. Valid values:\n- Sync: The application is reviewed in a synchronous manner. Quota Center automatically reviews the application. The result is returned immediately after you submit the application. However, the chance of an approval for an application that is reviewed in Sync mode is lower than the chance of an approval for an application that is reviewed in Async mode. The validity period of the new quota value is 1 hour.\n- Async: The application is reviewed in an asynchronous manner. An Alibaba Cloud support engineer reviews the application. The chance of an approval for an application that is reviewed in Async mode is higher than the chance of an approval for an application that is reviewed in Sync mode. The validity period of the new quota value is one month.\n"},"auditReason":{"type":"string","description":"The audit reason.\n"},"createTime":{"type":"string","description":"Resource attribute field representing creation time.\n"},"desireValue":{"type":"number","description":"The desire value of the quota application.\n"},"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/QuotaApplicationDimension:QuotaApplicationDimension"},"description":"QuotaDimensions. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below.\n"},"effectiveTime":{"type":"string","description":"The effective time of the quota application.\n"},"envLanguage":{"type":"string","description":"The language of the quota alert notification. Value:\n- zh (default): Chinese.\n- en: English.\n"},"expireTime":{"type":"string","description":"The expired time of the quota application.\n"},"noticeType":{"type":"integer","description":"Specifies whether to send a notification about the application result. Valid values:0: sends a notification about the application result.3: A notification about the application result is sent.\n"},"productCode":{"type":"string","description":"The product code.\n"},"quotaActionCode":{"type":"string","description":"The ID of quota action.\n"},"quotaCategory":{"type":"string","description":"The quota type.\n- CommonQuota (default): Generic quota.\n- FlowControl:API rate quota.\n- WhiteListLabel: Equity quota.\n"},"quotaDescription":{"type":"string","description":"The description of the quota application.\n"},"quotaName":{"type":"string","description":"The name of the quota application.\n"},"quotaUnit":{"type":"string","description":"The unit of the quota application.\n"},"reason":{"type":"string","description":"The reason of the quota application.\n"},"status":{"type":"string","description":"Application Status:\n- Disagree: reject.\n- Agree: Approved.\n- Process: under review.\n- Cancel: Closed.\n"}},"required":["approveValue","auditMode","auditReason","createTime","desireValue","noticeType","productCode","quotaActionCode","quotaDescription","quotaName","quotaUnit","reason","status"],"inputProperties":{"auditMode":{"type":"string","description":"This parameter is discontinued and is not recommended. The mode in which you want the application to be reviewed. Valid values:\n- Sync: The application is reviewed in a synchronous manner. Quota Center automatically reviews the application. The result is returned immediately after you submit the application. However, the chance of an approval for an application that is reviewed in Sync mode is lower than the chance of an approval for an application that is reviewed in Async mode. The validity period of the new quota value is 1 hour.\n- Async: The application is reviewed in an asynchronous manner. An Alibaba Cloud support engineer reviews the application. The chance of an approval for an application that is reviewed in Async mode is higher than the chance of an approval for an application that is reviewed in Sync mode. The validity period of the new quota value is one month.\n","willReplaceOnChanges":true},"desireValue":{"type":"number","description":"The desire value of the quota application.\n","willReplaceOnChanges":true},"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/QuotaApplicationDimension:QuotaApplicationDimension"},"description":"QuotaDimensions. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"effectiveTime":{"type":"string","description":"The effective time of the quota application.\n","willReplaceOnChanges":true},"envLanguage":{"type":"string","description":"The language of the quota alert notification. Value:\n- zh (default): Chinese.\n- en: English.\n","willReplaceOnChanges":true},"expireTime":{"type":"string","description":"The expired time of the quota application.\n","willReplaceOnChanges":true},"noticeType":{"type":"integer","description":"Specifies whether to send a notification about the application result. Valid values:0: sends a notification about the application result.3: A notification about the application result is sent.\n","willReplaceOnChanges":true},"productCode":{"type":"string","description":"The product code.\n","willReplaceOnChanges":true},"quotaActionCode":{"type":"string","description":"The ID of quota action.\n","willReplaceOnChanges":true},"quotaCategory":{"type":"string","description":"The quota type.\n- CommonQuota (default): Generic quota.\n- FlowControl:API rate quota.\n- WhiteListLabel: Equity quota.\n","willReplaceOnChanges":true},"reason":{"type":"string","description":"The reason of the quota application.\n","willReplaceOnChanges":true}},"requiredInputs":["desireValue","productCode","quotaActionCode","reason"],"stateInputs":{"description":"Input properties used for looking up and filtering QuotaApplication resources.\n","properties":{"approveValue":{"type":"string","description":"The approve value of the quota application.\n"},"auditMode":{"type":"string","description":"This parameter is discontinued and is not recommended. The mode in which you want the application to be reviewed. Valid values:\n- Sync: The application is reviewed in a synchronous manner. Quota Center automatically reviews the application. The result is returned immediately after you submit the application. However, the chance of an approval for an application that is reviewed in Sync mode is lower than the chance of an approval for an application that is reviewed in Async mode. The validity period of the new quota value is 1 hour.\n- Async: The application is reviewed in an asynchronous manner. An Alibaba Cloud support engineer reviews the application. The chance of an approval for an application that is reviewed in Async mode is higher than the chance of an approval for an application that is reviewed in Sync mode. The validity period of the new quota value is one month.\n","willReplaceOnChanges":true},"auditReason":{"type":"string","description":"The audit reason.\n"},"createTime":{"type":"string","description":"Resource attribute field representing creation time.\n"},"desireValue":{"type":"number","description":"The desire value of the quota application.\n","willReplaceOnChanges":true},"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/QuotaApplicationDimension:QuotaApplicationDimension"},"description":"QuotaDimensions. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"effectiveTime":{"type":"string","description":"The effective time of the quota application.\n","willReplaceOnChanges":true},"envLanguage":{"type":"string","description":"The language of the quota alert notification. Value:\n- zh (default): Chinese.\n- en: English.\n","willReplaceOnChanges":true},"expireTime":{"type":"string","description":"The expired time of the quota application.\n","willReplaceOnChanges":true},"noticeType":{"type":"integer","description":"Specifies whether to send a notification about the application result. Valid values:0: sends a notification about the application result.3: A notification about the application result is sent.\n","willReplaceOnChanges":true},"productCode":{"type":"string","description":"The product code.\n","willReplaceOnChanges":true},"quotaActionCode":{"type":"string","description":"The ID of quota action.\n","willReplaceOnChanges":true},"quotaCategory":{"type":"string","description":"The quota type.\n- CommonQuota (default): Generic quota.\n- FlowControl:API rate quota.\n- WhiteListLabel: Equity quota.\n","willReplaceOnChanges":true},"quotaDescription":{"type":"string","description":"The description of the quota application.\n"},"quotaName":{"type":"string","description":"The name of the quota application.\n"},"quotaUnit":{"type":"string","description":"The unit of the quota application.\n"},"reason":{"type":"string","description":"The reason of the quota application.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Application Status:\n- Disagree: reject.\n- Agree: Approved.\n- Process: under review.\n- Cancel: Closed.\n"}},"type":"object"}},"alicloud:quotas/templateApplications:TemplateApplications":{"description":"Provides a Quotas Template Applications resource. Template Batch Application.\n\nFor information about Quotas Template Applications and how to use it, see [What is Template Applications](https://www.alibabacloud.com/help/en/quota-center/developer-reference/api-quotas-2020-05-10-createquotaapplicationsfortemplate).\n\n\u003e **NOTE:** Available since v1.214.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst account = new alicloud.resourcemanager.Account(\"account\", {displayName: `${name}-${_default.result}`});\nconst defaultTemplateApplications = new alicloud.quotas.TemplateApplications(\"default\", {\n    envLanguage: \"zh\",\n    noticeType: 0,\n    quotaCategory: \"WhiteListLabel\",\n    desireValue: 1,\n    reason: \"example\",\n    quotaActionCode: \"quotas.label_multi/A\",\n    aliyunUids: [account.id],\n    productCode: \"quotas\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\naccount = alicloud.resourcemanager.Account(\"account\", display_name=f\"{name}-{default['result']}\")\ndefault_template_applications = alicloud.quotas.TemplateApplications(\"default\",\n    env_language=\"zh\",\n    notice_type=0,\n    quota_category=\"WhiteListLabel\",\n    desire_value=1,\n    reason=\"example\",\n    quota_action_code=\"quotas.label_multi/A\",\n    aliyun_uids=[account.id],\n    product_code=\"quotas\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var account = new AliCloud.ResourceManager.Account(\"account\", new()\n    {\n        DisplayName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultTemplateApplications = new AliCloud.Quotas.TemplateApplications(\"default\", new()\n    {\n        EnvLanguage = \"zh\",\n        NoticeType = 0,\n        QuotaCategory = \"WhiteListLabel\",\n        DesireValue = 1,\n        Reason = \"example\",\n        QuotaActionCode = \"quotas.label_multi/A\",\n        AliyunUids = new[]\n        {\n            account.Id,\n        },\n        ProductCode = \"quotas\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/quotas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taccount, err := resourcemanager.NewAccount(ctx, \"account\", \u0026resourcemanager.AccountArgs{\n\t\t\tDisplayName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = quotas.NewTemplateApplications(ctx, \"default\", \u0026quotas.TemplateApplicationsArgs{\n\t\t\tEnvLanguage:     pulumi.String(\"zh\"),\n\t\t\tNoticeType:      pulumi.Int(0),\n\t\t\tQuotaCategory:   pulumi.String(\"WhiteListLabel\"),\n\t\t\tDesireValue:     pulumi.Float64(1),\n\t\t\tReason:          pulumi.String(\"example\"),\n\t\t\tQuotaActionCode: pulumi.String(\"quotas.label_multi/A\"),\n\t\t\tAliyunUids: pulumi.StringArray{\n\t\t\t\taccount.ID(),\n\t\t\t},\n\t\t\tProductCode: pulumi.String(\"quotas\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.resourcemanager.Account;\nimport com.pulumi.alicloud.resourcemanager.AccountArgs;\nimport com.pulumi.alicloud.quotas.TemplateApplications;\nimport com.pulumi.alicloud.quotas.TemplateApplicationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var account = new Account(\"account\", AccountArgs.builder()\n            .displayName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultTemplateApplications = new TemplateApplications(\"defaultTemplateApplications\", TemplateApplicationsArgs.builder()\n            .envLanguage(\"zh\")\n            .noticeType(0)\n            .quotaCategory(\"WhiteListLabel\")\n            .desireValue(1.0)\n            .reason(\"example\")\n            .quotaActionCode(\"quotas.label_multi/A\")\n            .aliyunUids(account.id())\n            .productCode(\"quotas\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  account:\n    type: alicloud:resourcemanager:Account\n    properties:\n      displayName: ${name}-${default.result}\n  defaultTemplateApplications:\n    type: alicloud:quotas:TemplateApplications\n    name: default\n    properties:\n      envLanguage: zh\n      noticeType: '0'\n      quotaCategory: WhiteListLabel\n      desireValue: '1'\n      reason: example\n      quotaActionCode: quotas.label_multi/A\n      aliyunUids:\n        - ${account.id}\n      productCode: quotas\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.quotas.TemplateApplications`\" pulumi-lang-dotnet=\"`alicloud.quotas.TemplateApplications`\" pulumi-lang-go=\"`quotas.TemplateApplications`\" pulumi-lang-python=\"`quotas.TemplateApplications`\" pulumi-lang-yaml=\"`alicloud.quotas.TemplateApplications`\" pulumi-lang-java=\"`alicloud.quotas.TemplateApplications`\"\u003e`alicloud.quotas.TemplateApplications`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.quotas.TemplateApplications`\" pulumi-lang-dotnet=\"`alicloud.quotas.TemplateApplications`\" pulumi-lang-go=\"`quotas.TemplateApplications`\" pulumi-lang-python=\"`quotas.TemplateApplications`\" pulumi-lang-yaml=\"`alicloud.quotas.TemplateApplications`\" pulumi-lang-java=\"`alicloud.quotas.TemplateApplications`\"\u003e`alicloud.quotas.TemplateApplications`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nQuotas Template Applications can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:quotas/templateApplications:TemplateApplications example \u003cid\u003e\n```\n\n","properties":{"aliyunUids":{"type":"array","items":{"type":"string"},"description":"The list of Alibaba Cloud accounts (primary accounts) of the resource directory members to which the quota is applied.\n\u003e **NOTE:**  Only 50 members can apply for quota increase in batch at a time. For more information about the members of the resource directory, see Query the list of all members in the resource directory.\n"},"desireValue":{"type":"number","description":"The value of the quota request.\n\u003e **NOTE:**  The quota request is approved by the technical support of each cloud service. If you want to increase the chance of passing, please fill in a reasonable application value and detailed application reasons when applying for quota.\n"},"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/TemplateApplicationsDimension:TemplateApplicationsDimension"},"description":"Quota dimension. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below.\n"},"effectiveTime":{"type":"string","description":"The UTC time when the quota takes effect. This parameter applies only to the equity quota (WhiteListLabel).\n\u003e **NOTE:**  If the current account does not select the effective time, the default is the submission time.\n"},"envLanguage":{"type":"string","description":"The language of the quota application result notification. Value:\n- zh (default): Chinese.\n- en: English.\n"},"expireTime":{"type":"string","description":"The UTC time when the quota expires. This parameter applies only to the equity quota (WhiteListLabel).\n\u003e **NOTE:**  If No Expiration Time is selected for the current account, the expiration time is 99 years from the effective time of the current quota.\n"},"noticeType":{"type":"integer","description":"Whether to send notification of quota application result. Value:\n- 0 (default): No.\n- 3: Yes.\n"},"productCode":{"type":"string","description":"Cloud service name abbreviation.\n\u003e **NOTE:**  For more information about cloud services that support quota centers, see Cloud services that support quota centers.\n"},"quotaActionCode":{"type":"string","description":"The quota ID.\n"},"quotaApplicationDetails":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/TemplateApplicationsQuotaApplicationDetail:TemplateApplicationsQuotaApplicationDetail"},"description":"List of quota application details.\n"},"quotaCategory":{"type":"string","description":"The quota type. Value:\n- CommonQuota (default): Generic quota.\n- FlowControl:API rate quota.\n- WhiteListLabel: Equity quota.\n"},"reason":{"type":"string","description":"Reason for quota application.\n\u003e **NOTE:**  The quota request is approved by the technical support of each cloud service. If you want to increase the chance of passing, please fill in a reasonable application value and detailed application reasons when applying for quota.\n"}},"required":["aliyunUids","desireValue","productCode","quotaActionCode","quotaApplicationDetails","quotaCategory","reason"],"inputProperties":{"aliyunUids":{"type":"array","items":{"type":"string"},"description":"The list of Alibaba Cloud accounts (primary accounts) of the resource directory members to which the quota is applied.\n\u003e **NOTE:**  Only 50 members can apply for quota increase in batch at a time. For more information about the members of the resource directory, see Query the list of all members in the resource directory.\n","willReplaceOnChanges":true},"desireValue":{"type":"number","description":"The value of the quota request.\n\u003e **NOTE:**  The quota request is approved by the technical support of each cloud service. If you want to increase the chance of passing, please fill in a reasonable application value and detailed application reasons when applying for quota.\n","willReplaceOnChanges":true},"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/TemplateApplicationsDimension:TemplateApplicationsDimension"},"description":"Quota dimension. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"effectiveTime":{"type":"string","description":"The UTC time when the quota takes effect. This parameter applies only to the equity quota (WhiteListLabel).\n\u003e **NOTE:**  If the current account does not select the effective time, the default is the submission time.\n","willReplaceOnChanges":true},"envLanguage":{"type":"string","description":"The language of the quota application result notification. Value:\n- zh (default): Chinese.\n- en: English.\n"},"expireTime":{"type":"string","description":"The UTC time when the quota expires. This parameter applies only to the equity quota (WhiteListLabel).\n\u003e **NOTE:**  If No Expiration Time is selected for the current account, the expiration time is 99 years from the effective time of the current quota.\n","willReplaceOnChanges":true},"noticeType":{"type":"integer","description":"Whether to send notification of quota application result. Value:\n- 0 (default): No.\n- 3: Yes.\n"},"productCode":{"type":"string","description":"Cloud service name abbreviation.\n\u003e **NOTE:**  For more information about cloud services that support quota centers, see Cloud services that support quota centers.\n","willReplaceOnChanges":true},"quotaActionCode":{"type":"string","description":"The quota ID.\n","willReplaceOnChanges":true},"quotaCategory":{"type":"string","description":"The quota type. Value:\n- CommonQuota (default): Generic quota.\n- FlowControl:API rate quota.\n- WhiteListLabel: Equity quota.\n","willReplaceOnChanges":true},"reason":{"type":"string","description":"Reason for quota application.\n\u003e **NOTE:**  The quota request is approved by the technical support of each cloud service. If you want to increase the chance of passing, please fill in a reasonable application value and detailed application reasons when applying for quota.\n","willReplaceOnChanges":true}},"requiredInputs":["aliyunUids","desireValue","productCode","quotaActionCode","quotaCategory","reason"],"stateInputs":{"description":"Input properties used for looking up and filtering TemplateApplications resources.\n","properties":{"aliyunUids":{"type":"array","items":{"type":"string"},"description":"The list of Alibaba Cloud accounts (primary accounts) of the resource directory members to which the quota is applied.\n\u003e **NOTE:**  Only 50 members can apply for quota increase in batch at a time. For more information about the members of the resource directory, see Query the list of all members in the resource directory.\n","willReplaceOnChanges":true},"desireValue":{"type":"number","description":"The value of the quota request.\n\u003e **NOTE:**  The quota request is approved by the technical support of each cloud service. If you want to increase the chance of passing, please fill in a reasonable application value and detailed application reasons when applying for quota.\n","willReplaceOnChanges":true},"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/TemplateApplicationsDimension:TemplateApplicationsDimension"},"description":"Quota dimension. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"effectiveTime":{"type":"string","description":"The UTC time when the quota takes effect. This parameter applies only to the equity quota (WhiteListLabel).\n\u003e **NOTE:**  If the current account does not select the effective time, the default is the submission time.\n","willReplaceOnChanges":true},"envLanguage":{"type":"string","description":"The language of the quota application result notification. Value:\n- zh (default): Chinese.\n- en: English.\n"},"expireTime":{"type":"string","description":"The UTC time when the quota expires. This parameter applies only to the equity quota (WhiteListLabel).\n\u003e **NOTE:**  If No Expiration Time is selected for the current account, the expiration time is 99 years from the effective time of the current quota.\n","willReplaceOnChanges":true},"noticeType":{"type":"integer","description":"Whether to send notification of quota application result. Value:\n- 0 (default): No.\n- 3: Yes.\n"},"productCode":{"type":"string","description":"Cloud service name abbreviation.\n\u003e **NOTE:**  For more information about cloud services that support quota centers, see Cloud services that support quota centers.\n","willReplaceOnChanges":true},"quotaActionCode":{"type":"string","description":"The quota ID.\n","willReplaceOnChanges":true},"quotaApplicationDetails":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/TemplateApplicationsQuotaApplicationDetail:TemplateApplicationsQuotaApplicationDetail"},"description":"List of quota application details.\n"},"quotaCategory":{"type":"string","description":"The quota type. Value:\n- CommonQuota (default): Generic quota.\n- FlowControl:API rate quota.\n- WhiteListLabel: Equity quota.\n","willReplaceOnChanges":true},"reason":{"type":"string","description":"Reason for quota application.\n\u003e **NOTE:**  The quota request is approved by the technical support of each cloud service. If you want to increase the chance of passing, please fill in a reasonable application value and detailed application reasons when applying for quota.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:quotas/templateQuota:TemplateQuota":{"description":"Provides a Quotas Template Quota resource. \n\nFor information about Quotas Template Quota and how to use it, see [What is Template Quota](https://www.alibabacloud.com/help/en/quota-center/developer-reference/api-quotas-2020-05-10-createtemplatequotaitem).\n\n\u003e **NOTE:** Available since v1.206.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.quotas.TemplateQuota(\"default\", {\n    quotaActionCode: \"q_desktop-count\",\n    productCode: \"gws\",\n    noticeType: 3,\n    dimensions: [{\n        key: \"regionId\",\n        value: \"cn-hangzhou\",\n    }],\n    desireValue: 1001,\n    envLanguage: \"zh\",\n    quotaCategory: \"CommonQuota\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.quotas.TemplateQuota(\"default\",\n    quota_action_code=\"q_desktop-count\",\n    product_code=\"gws\",\n    notice_type=3,\n    dimensions=[{\n        \"key\": \"regionId\",\n        \"value\": \"cn-hangzhou\",\n    }],\n    desire_value=1001,\n    env_language=\"zh\",\n    quota_category=\"CommonQuota\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Quotas.TemplateQuota(\"default\", new()\n    {\n        QuotaActionCode = \"q_desktop-count\",\n        ProductCode = \"gws\",\n        NoticeType = 3,\n        Dimensions = new[]\n        {\n            new AliCloud.Quotas.Inputs.TemplateQuotaDimensionArgs\n            {\n                Key = \"regionId\",\n                Value = \"cn-hangzhou\",\n            },\n        },\n        DesireValue = 1001,\n        EnvLanguage = \"zh\",\n        QuotaCategory = \"CommonQuota\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/quotas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := quotas.NewTemplateQuota(ctx, \"default\", \u0026quotas.TemplateQuotaArgs{\n\t\t\tQuotaActionCode: pulumi.String(\"q_desktop-count\"),\n\t\t\tProductCode:     pulumi.String(\"gws\"),\n\t\t\tNoticeType:      pulumi.Int(3),\n\t\t\tDimensions: quotas.TemplateQuotaDimensionArray{\n\t\t\t\t\u0026quotas.TemplateQuotaDimensionArgs{\n\t\t\t\t\tKey:   pulumi.String(\"regionId\"),\n\t\t\t\t\tValue: pulumi.String(\"cn-hangzhou\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDesireValue:   pulumi.Float64(1001),\n\t\t\tEnvLanguage:   pulumi.String(\"zh\"),\n\t\t\tQuotaCategory: pulumi.String(\"CommonQuota\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.quotas.TemplateQuota;\nimport com.pulumi.alicloud.quotas.TemplateQuotaArgs;\nimport com.pulumi.alicloud.quotas.inputs.TemplateQuotaDimensionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new TemplateQuota(\"default\", TemplateQuotaArgs.builder()\n            .quotaActionCode(\"q_desktop-count\")\n            .productCode(\"gws\")\n            .noticeType(3)\n            .dimensions(TemplateQuotaDimensionArgs.builder()\n                .key(\"regionId\")\n                .value(\"cn-hangzhou\")\n                .build())\n            .desireValue(1001.0)\n            .envLanguage(\"zh\")\n            .quotaCategory(\"CommonQuota\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:quotas:TemplateQuota\n    properties:\n      quotaActionCode: q_desktop-count\n      productCode: gws\n      noticeType: 3\n      dimensions:\n        - key: regionId\n          value: cn-hangzhou\n      desireValue: 1001\n      envLanguage: zh\n      quotaCategory: CommonQuota\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nQuotas Template Quota can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:quotas/templateQuota:TemplateQuota example \u003cid\u003e\n```\n\n","properties":{"desireValue":{"type":"number","description":"Quota application value.\n"},"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/TemplateQuotaDimension:TemplateQuotaDimension"},"description":"The Quota Dimensions. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below.\n"},"effectiveTime":{"type":"string","description":"The UTC time when the quota takes effect.\n"},"envLanguage":{"type":"string","description":"The language of the quota alert notification. Value:\n- zh: Chinese.\n- en: English.\n"},"expireTime":{"type":"string","description":"The UTC time when the quota expires.\n"},"noticeType":{"type":"integer","description":"Whether to notify the result of quota promotion application. Value:\n- 0: No.\n- 3: Yes.\n"},"productCode":{"type":"string","description":"The abbreviation of the cloud service name.\n"},"quotaActionCode":{"type":"string","description":"The quota ID.\n"},"quotaCategory":{"type":"string","description":"Type of quota. Value:\n- CommonQuota : Generic quota.\n- WhiteListLabel: Equity quota.\n- FlowControl:API rate quota.\n"}},"required":["desireValue","envLanguage","noticeType","productCode","quotaActionCode"],"inputProperties":{"desireValue":{"type":"number","description":"Quota application value.\n"},"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/TemplateQuotaDimension:TemplateQuotaDimension"},"description":"The Quota Dimensions. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below.\n"},"effectiveTime":{"type":"string","description":"The UTC time when the quota takes effect.\n"},"envLanguage":{"type":"string","description":"The language of the quota alert notification. Value:\n- zh: Chinese.\n- en: English.\n"},"expireTime":{"type":"string","description":"The UTC time when the quota expires.\n"},"noticeType":{"type":"integer","description":"Whether to notify the result of quota promotion application. Value:\n- 0: No.\n- 3: Yes.\n"},"productCode":{"type":"string","description":"The abbreviation of the cloud service name.\n","willReplaceOnChanges":true},"quotaActionCode":{"type":"string","description":"The quota ID.\n","willReplaceOnChanges":true},"quotaCategory":{"type":"string","description":"Type of quota. Value:\n- CommonQuota : Generic quota.\n- WhiteListLabel: Equity quota.\n- FlowControl:API rate quota.\n"}},"requiredInputs":["desireValue","productCode","quotaActionCode"],"stateInputs":{"description":"Input properties used for looking up and filtering TemplateQuota resources.\n","properties":{"desireValue":{"type":"number","description":"Quota application value.\n"},"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/TemplateQuotaDimension:TemplateQuotaDimension"},"description":"The Quota Dimensions. See \u003cspan pulumi-lang-nodejs=\"`dimensions`\" pulumi-lang-dotnet=\"`Dimensions`\" pulumi-lang-go=\"`dimensions`\" pulumi-lang-python=\"`dimensions`\" pulumi-lang-yaml=\"`dimensions`\" pulumi-lang-java=\"`dimensions`\"\u003e`dimensions`\u003c/span\u003e below.\n"},"effectiveTime":{"type":"string","description":"The UTC time when the quota takes effect.\n"},"envLanguage":{"type":"string","description":"The language of the quota alert notification. Value:\n- zh: Chinese.\n- en: English.\n"},"expireTime":{"type":"string","description":"The UTC time when the quota expires.\n"},"noticeType":{"type":"integer","description":"Whether to notify the result of quota promotion application. Value:\n- 0: No.\n- 3: Yes.\n"},"productCode":{"type":"string","description":"The abbreviation of the cloud service name.\n","willReplaceOnChanges":true},"quotaActionCode":{"type":"string","description":"The quota ID.\n","willReplaceOnChanges":true},"quotaCategory":{"type":"string","description":"Type of quota. Value:\n- CommonQuota : Generic quota.\n- WhiteListLabel: Equity quota.\n- FlowControl:API rate quota.\n"}},"type":"object"}},"alicloud:quotas/templateService:TemplateService":{"description":"Provides a Quotas Template Service resource.\n\nQuota Template Service.\n\nFor information about Quotas Template Service and how to use it, see [What is Template Service](https://www.alibabacloud.com/help/en/quota-center/developer-reference/api-quotas-2020-05-10-modifyquotatemplateservicestatus).\n\n\u003e **NOTE:** Available since v1.230.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.quotas.TemplateService(\"default\", {serviceStatus: 1});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.quotas.TemplateService(\"default\", service_status=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Quotas.TemplateService(\"default\", new()\n    {\n        ServiceStatus = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/quotas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := quotas.NewTemplateService(ctx, \"default\", \u0026quotas.TemplateServiceArgs{\n\t\t\tServiceStatus: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.quotas.TemplateService;\nimport com.pulumi.alicloud.quotas.TemplateServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new TemplateService(\"default\", TemplateServiceArgs.builder()\n            .serviceStatus(1)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:quotas:TemplateService\n    properties:\n      serviceStatus: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.quotas.TemplateService`\" pulumi-lang-dotnet=\"`alicloud.quotas.TemplateService`\" pulumi-lang-go=\"`quotas.TemplateService`\" pulumi-lang-python=\"`quotas.TemplateService`\" pulumi-lang-yaml=\"`alicloud.quotas.TemplateService`\" pulumi-lang-java=\"`alicloud.quotas.TemplateService`\"\u003e`alicloud.quotas.TemplateService`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.quotas.TemplateService`\" pulumi-lang-dotnet=\"`alicloud.quotas.TemplateService`\" pulumi-lang-go=\"`quotas.TemplateService`\" pulumi-lang-python=\"`quotas.TemplateService`\" pulumi-lang-yaml=\"`alicloud.quotas.TemplateService`\" pulumi-lang-java=\"`alicloud.quotas.TemplateService`\"\u003e`alicloud.quotas.TemplateService`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nQuotas Template Service can be imported using the id, e.g.\n\n```sh\n$ terraform import alicloud_quotas_template_service.example \n```\n\n","properties":{"serviceStatus":{"type":"integer","description":"Status of the quota template. Valid values:\n- `-1`: disabled.\n"}},"required":["serviceStatus"],"inputProperties":{"serviceStatus":{"type":"integer","description":"Status of the quota template. Valid values:\n- `-1`: disabled.\n"}},"requiredInputs":["serviceStatus"],"stateInputs":{"description":"Input properties used for looking up and filtering TemplateService resources.\n","properties":{"serviceStatus":{"type":"integer","description":"Status of the quota template. Valid values:\n- `-1`: disabled.\n"}},"type":"object"}},"alicloud:ram/accessKey:AccessKey":{"description":"Provides a RAM Access Key resource.\n\n\n\nFor information about RAM Access Key and how to use it, see [What is Access Key](https://www.alibabacloud.com/help/en/ram/developer-reference/api-ram-2015-05-01-createaccesskey).\n\n\u003e **NOTE:** Available since v1.0.0.\n\n\u003e **NOTE:**  You should set the \u003cspan pulumi-lang-nodejs=\"`secretFile`\" pulumi-lang-dotnet=\"`SecretFile`\" pulumi-lang-go=\"`secretFile`\" pulumi-lang-python=\"`secret_file`\" pulumi-lang-yaml=\"`secretFile`\" pulumi-lang-java=\"`secretFile`\"\u003e`secret_file`\u003c/span\u003e if you want to get the access key.  \n\n\u003e **NOTE:**  From version 1.98.0, if not set \u003cspan pulumi-lang-nodejs=\"`pgpKey`\" pulumi-lang-dotnet=\"`PgpKey`\" pulumi-lang-go=\"`pgpKey`\" pulumi-lang-python=\"`pgp_key`\" pulumi-lang-yaml=\"`pgpKey`\" pulumi-lang-java=\"`pgpKey`\"\u003e`pgp_key`\u003c/span\u003e, the resource will output the access key secret to field \u003cspan pulumi-lang-nodejs=\"`secret`\" pulumi-lang-dotnet=\"`Secret`\" pulumi-lang-go=\"`secret`\" pulumi-lang-python=\"`secret`\" pulumi-lang-yaml=\"`secret`\" pulumi-lang-java=\"`secret`\"\u003e`secret`\u003c/span\u003e and please protect your backend state file judiciously\n\n\n## Example Usage\n\nOutput the secret to a file.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\n// Create a new RAM access key for user.\nconst user = new alicloud.ram.User(\"user\", {\n    name: `terraform-example-${_default.result}`,\n    displayName: \"user_display_name\",\n    mobile: \"86-18688888888\",\n    email: \"hello.uuu@aaa.com\",\n    comments: \"yoyoyo\",\n    force: true,\n});\nconst ak = new alicloud.ram.AccessKey(\"ak\", {\n    userName: user.name,\n    secretFile: \"/xxx/xxx/xxx.txt\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\n# Create a new RAM access key for user.\nuser = alicloud.ram.User(\"user\",\n    name=f\"terraform-example-{default['result']}\",\n    display_name=\"user_display_name\",\n    mobile=\"86-18688888888\",\n    email=\"hello.uuu@aaa.com\",\n    comments=\"yoyoyo\",\n    force=True)\nak = alicloud.ram.AccessKey(\"ak\",\n    user_name=user.name,\n    secret_file=\"/xxx/xxx/xxx.txt\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    // Create a new RAM access key for user.\n    var user = new AliCloud.Ram.User(\"user\", new()\n    {\n        Name = $\"terraform-example-{@default.Result}\",\n        DisplayName = \"user_display_name\",\n        Mobile = \"86-18688888888\",\n        Email = \"hello.uuu@aaa.com\",\n        Comments = \"yoyoyo\",\n        Force = true,\n    });\n\n    var ak = new AliCloud.Ram.AccessKey(\"ak\", new()\n    {\n        UserName = user.Name,\n        SecretFile = \"/xxx/xxx/xxx.txt\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new RAM access key for user.\n\t\tuser, err := ram.NewUser(ctx, \"user\", \u0026ram.UserArgs{\n\t\t\tName:        pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDisplayName: pulumi.String(\"user_display_name\"),\n\t\t\tMobile:      pulumi.String(\"86-18688888888\"),\n\t\t\tEmail:       pulumi.String(\"hello.uuu@aaa.com\"),\n\t\t\tComments:    pulumi.String(\"yoyoyo\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewAccessKey(ctx, \"ak\", \u0026ram.AccessKeyArgs{\n\t\t\tUserName:   user.Name,\n\t\t\tSecretFile: pulumi.String(\"/xxx/xxx/xxx.txt\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ram.User;\nimport com.pulumi.alicloud.ram.UserArgs;\nimport com.pulumi.alicloud.ram.AccessKey;\nimport com.pulumi.alicloud.ram.AccessKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        // Create a new RAM access key for user.\n        var user = new User(\"user\", UserArgs.builder()\n            .name(String.format(\"terraform-example-%s\", default_.result()))\n            .displayName(\"user_display_name\")\n            .mobile(\"86-18688888888\")\n            .email(\"hello.uuu@aaa.com\")\n            .comments(\"yoyoyo\")\n            .force(true)\n            .build());\n\n        var ak = new AccessKey(\"ak\", AccessKeyArgs.builder()\n            .userName(user.name())\n            .secretFile(\"/xxx/xxx/xxx.txt\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  # Create a new RAM access key for user.\n  user:\n    type: alicloud:ram:User\n    properties:\n      name: terraform-example-${default.result}\n      displayName: user_display_name\n      mobile: 86-18688888888\n      email: hello.uuu@aaa.com\n      comments: yoyoyo\n      force: true\n  ak:\n    type: alicloud:ram:AccessKey\n    properties:\n      userName: ${user.name}\n      secretFile: /xxx/xxx/xxx.txt\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nUsing \u003cspan pulumi-lang-nodejs=\"`pgpKey`\" pulumi-lang-dotnet=\"`PgpKey`\" pulumi-lang-go=\"`pgpKey`\" pulumi-lang-python=\"`pgp_key`\" pulumi-lang-yaml=\"`pgpKey`\" pulumi-lang-java=\"`pgpKey`\"\u003e`pgp_key`\u003c/span\u003e to encrypt the secret.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\n// Create a new RAM access key for user.\nconst user = new alicloud.ram.User(\"user\", {\n    name: `terraform-example-${_default.result}`,\n    displayName: \"user_display_name\",\n    mobile: \"86-18688888888\",\n    email: \"hello.uuu@aaa.com\",\n    comments: \"yoyoyo\",\n    force: true,\n});\nconst encrypt = new alicloud.ram.AccessKey(\"encrypt\", {\n    userName: user.name,\n    pgpKey: `mQENBFXbjPUBCADjNjCUQwfxKL+RR2GA6pv/1K+zJZ8UWIF9S0lk7cVIEfJiprzzwiMwBS5cD0da\nrGin1FHvIWOZxujA7oW0O2TUuatqI3aAYDTfRYurh6iKLC+VS+F7H+/mhfFvKmgr0Y5kDCF1j0T/\n063QZ84IRGucR/X43IY7kAtmxGXH0dYOCzOe5UBX1fTn3mXGe2ImCDWBH7gOViynXmb6XNvXkP0f\nsF5St9jhO7mbZU9EFkv9O3t3EaURfHopsCVDOlCkFCw5ArY+DUORHRzoMX0PnkyQb5OzibkChzpg\n8hQssKeVGpuskTdz5Q7PtdW71jXd4fFVzoNH8fYwRpziD2xNvi6HABEBAAG0EFZhdWx0IFRlc3Qg\nS2V5IDGJATgEEwECACIFAlXbjPUCGy8GCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOfLr44B\nHbeTo+sH/i7bapIgPnZsJ81hmxPj4W12uvunksGJiC7d4hIHsG7kmJRTJfjECi+AuTGeDwBy84TD\ncRaOB6e79fj65Fg6HgSahDUtKJbGxj/lWzmaBuTzlN3CEe8cMwIPqPT2kajJVdOyrvkyuFOdPFOE\nA7bdCH0MqgIdM2SdF8t40k/ATfuD2K1ZmumJ508I3gF39jgTnPzD4C8quswrMQ3bzfvKC3klXRlB\nC0yoArn+0QA3cf2B9T4zJ2qnvgotVbeK/b1OJRNj6Poeo+SsWNc/A5mw7lGScnDgL3yfwCm1gQXa\nQKfOt5x+7GqhWDw10q+bJpJlI10FfzAnhMF9etSqSeURBRW5AQ0EVduM9QEIAL53hJ5bZJ7oEDCn\naY+SCzt9QsAfnFTAnZJQrvkvusJzrTQ088eUQmAjvxkfRqnv981fFwGnh2+I1Ktm698UAZS9Jt8y\njak9wWUICKQO5QUt5k8cHwldQXNXVXFa+TpQWQR5yW1a9okjh5o/3d4cBt1yZPUJJyLKY43Wvptb\n6EuEsScO2DnRkh5wSMDQ7dTooddJCmaq3LTjOleRFQbu9ij386Do6jzK69mJU56TfdcydkxkWF5N\nZLGnED3lq+hQNbe+8UI5tD2oP/3r5tXKgMy1R/XPvR/zbfwvx4FAKFOP01awLq4P3d/2xOkMu4Lu\n9p315E87DOleYwxk+FoTqXEAEQEAAYkCPgQYAQIACQUCVduM9QIbLgEpCRDny6+OAR23k8BdIAQZ\nAQIABgUCVduM9QAKCRAID0JGyHtSGmqYB/4m4rJbbWa7dBJ8VqRU7ZKnNRDR9CVhEGipBmpDGRYu\nlEimOPzLUX/ZXZmTZzgemeXLBaJJlWnopVUWuAsyjQuZAfdd8nHkGRHG0/DGum0l4sKTta3OPGHN\nC1z1dAcQ1RCr9bTD3PxjLBczdGqhzw71trkQRBRdtPiUchltPMIyjUHqVJ0xmg0hPqFic0fICsr0\nYwKoz3h9+QEcZHvsjSZjgydKvfLYcm+4DDMCCqcHuJrbXJKUWmJcXR0y/+HQONGrGJ5xWdO+6eJi\noPn2jVMnXCm4EKc7fcLFrz/LKmJ8seXhxjM3EdFtylBGCrx3xdK0f+JDNQaC/rhUb5V2XuX6VwoH\n/AtY+XsKVYRfNIupLOUcf/srsm3IXT4SXWVomOc9hjGQiJ3rraIbADsc+6bCAr4XNZS7moViAAcI\nPXFv3m3WfUlnG/om78UjQqyVACRZqqAGmuPq+TSkRUCpt9h+A39LQWkojHqyob3cyLgy6z9Q557O\n9uK3lQozbw2gH9zC0RqnePl+rsWIUU/ga16fH6pWc1uJiEBt8UZGypQ/E56/343epmYAe0a87sHx\n8iDV+dNtDVKfPRENiLOOc19MmS+phmUyrbHqI91c0pmysYcJZCD3a502X1gpjFbPZcRtiTmGnUKd\nOIu60YPNE4+h7u2CfYyFPu3AlUaGNMBlvy6PEpU=\n`,\n});\nexport const encryptedSecret = encrypt.encryptedSecret;\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\n# Create a new RAM access key for user.\nuser = alicloud.ram.User(\"user\",\n    name=f\"terraform-example-{default['result']}\",\n    display_name=\"user_display_name\",\n    mobile=\"86-18688888888\",\n    email=\"hello.uuu@aaa.com\",\n    comments=\"yoyoyo\",\n    force=True)\nencrypt = alicloud.ram.AccessKey(\"encrypt\",\n    user_name=user.name,\n    pgp_key=\"\"\"mQENBFXbjPUBCADjNjCUQwfxKL+RR2GA6pv/1K+zJZ8UWIF9S0lk7cVIEfJiprzzwiMwBS5cD0da\nrGin1FHvIWOZxujA7oW0O2TUuatqI3aAYDTfRYurh6iKLC+VS+F7H+/mhfFvKmgr0Y5kDCF1j0T/\n063QZ84IRGucR/X43IY7kAtmxGXH0dYOCzOe5UBX1fTn3mXGe2ImCDWBH7gOViynXmb6XNvXkP0f\nsF5St9jhO7mbZU9EFkv9O3t3EaURfHopsCVDOlCkFCw5ArY+DUORHRzoMX0PnkyQb5OzibkChzpg\n8hQssKeVGpuskTdz5Q7PtdW71jXd4fFVzoNH8fYwRpziD2xNvi6HABEBAAG0EFZhdWx0IFRlc3Qg\nS2V5IDGJATgEEwECACIFAlXbjPUCGy8GCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOfLr44B\nHbeTo+sH/i7bapIgPnZsJ81hmxPj4W12uvunksGJiC7d4hIHsG7kmJRTJfjECi+AuTGeDwBy84TD\ncRaOB6e79fj65Fg6HgSahDUtKJbGxj/lWzmaBuTzlN3CEe8cMwIPqPT2kajJVdOyrvkyuFOdPFOE\nA7bdCH0MqgIdM2SdF8t40k/ATfuD2K1ZmumJ508I3gF39jgTnPzD4C8quswrMQ3bzfvKC3klXRlB\nC0yoArn+0QA3cf2B9T4zJ2qnvgotVbeK/b1OJRNj6Poeo+SsWNc/A5mw7lGScnDgL3yfwCm1gQXa\nQKfOt5x+7GqhWDw10q+bJpJlI10FfzAnhMF9etSqSeURBRW5AQ0EVduM9QEIAL53hJ5bZJ7oEDCn\naY+SCzt9QsAfnFTAnZJQrvkvusJzrTQ088eUQmAjvxkfRqnv981fFwGnh2+I1Ktm698UAZS9Jt8y\njak9wWUICKQO5QUt5k8cHwldQXNXVXFa+TpQWQR5yW1a9okjh5o/3d4cBt1yZPUJJyLKY43Wvptb\n6EuEsScO2DnRkh5wSMDQ7dTooddJCmaq3LTjOleRFQbu9ij386Do6jzK69mJU56TfdcydkxkWF5N\nZLGnED3lq+hQNbe+8UI5tD2oP/3r5tXKgMy1R/XPvR/zbfwvx4FAKFOP01awLq4P3d/2xOkMu4Lu\n9p315E87DOleYwxk+FoTqXEAEQEAAYkCPgQYAQIACQUCVduM9QIbLgEpCRDny6+OAR23k8BdIAQZ\nAQIABgUCVduM9QAKCRAID0JGyHtSGmqYB/4m4rJbbWa7dBJ8VqRU7ZKnNRDR9CVhEGipBmpDGRYu\nlEimOPzLUX/ZXZmTZzgemeXLBaJJlWnopVUWuAsyjQuZAfdd8nHkGRHG0/DGum0l4sKTta3OPGHN\nC1z1dAcQ1RCr9bTD3PxjLBczdGqhzw71trkQRBRdtPiUchltPMIyjUHqVJ0xmg0hPqFic0fICsr0\nYwKoz3h9+QEcZHvsjSZjgydKvfLYcm+4DDMCCqcHuJrbXJKUWmJcXR0y/+HQONGrGJ5xWdO+6eJi\noPn2jVMnXCm4EKc7fcLFrz/LKmJ8seXhxjM3EdFtylBGCrx3xdK0f+JDNQaC/rhUb5V2XuX6VwoH\n/AtY+XsKVYRfNIupLOUcf/srsm3IXT4SXWVomOc9hjGQiJ3rraIbADsc+6bCAr4XNZS7moViAAcI\nPXFv3m3WfUlnG/om78UjQqyVACRZqqAGmuPq+TSkRUCpt9h+A39LQWkojHqyob3cyLgy6z9Q557O\n9uK3lQozbw2gH9zC0RqnePl+rsWIUU/ga16fH6pWc1uJiEBt8UZGypQ/E56/343epmYAe0a87sHx\n8iDV+dNtDVKfPRENiLOOc19MmS+phmUyrbHqI91c0pmysYcJZCD3a502X1gpjFbPZcRtiTmGnUKd\nOIu60YPNE4+h7u2CfYyFPu3AlUaGNMBlvy6PEpU=\n\"\"\")\npulumi.export(\"encryptedSecret\", encrypt.encrypted_secret)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    // Create a new RAM access key for user.\n    var user = new AliCloud.Ram.User(\"user\", new()\n    {\n        Name = $\"terraform-example-{@default.Result}\",\n        DisplayName = \"user_display_name\",\n        Mobile = \"86-18688888888\",\n        Email = \"hello.uuu@aaa.com\",\n        Comments = \"yoyoyo\",\n        Force = true,\n    });\n\n    var encrypt = new AliCloud.Ram.AccessKey(\"encrypt\", new()\n    {\n        UserName = user.Name,\n        PgpKey = @\"mQENBFXbjPUBCADjNjCUQwfxKL+RR2GA6pv/1K+zJZ8UWIF9S0lk7cVIEfJiprzzwiMwBS5cD0da\nrGin1FHvIWOZxujA7oW0O2TUuatqI3aAYDTfRYurh6iKLC+VS+F7H+/mhfFvKmgr0Y5kDCF1j0T/\n063QZ84IRGucR/X43IY7kAtmxGXH0dYOCzOe5UBX1fTn3mXGe2ImCDWBH7gOViynXmb6XNvXkP0f\nsF5St9jhO7mbZU9EFkv9O3t3EaURfHopsCVDOlCkFCw5ArY+DUORHRzoMX0PnkyQb5OzibkChzpg\n8hQssKeVGpuskTdz5Q7PtdW71jXd4fFVzoNH8fYwRpziD2xNvi6HABEBAAG0EFZhdWx0IFRlc3Qg\nS2V5IDGJATgEEwECACIFAlXbjPUCGy8GCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOfLr44B\nHbeTo+sH/i7bapIgPnZsJ81hmxPj4W12uvunksGJiC7d4hIHsG7kmJRTJfjECi+AuTGeDwBy84TD\ncRaOB6e79fj65Fg6HgSahDUtKJbGxj/lWzmaBuTzlN3CEe8cMwIPqPT2kajJVdOyrvkyuFOdPFOE\nA7bdCH0MqgIdM2SdF8t40k/ATfuD2K1ZmumJ508I3gF39jgTnPzD4C8quswrMQ3bzfvKC3klXRlB\nC0yoArn+0QA3cf2B9T4zJ2qnvgotVbeK/b1OJRNj6Poeo+SsWNc/A5mw7lGScnDgL3yfwCm1gQXa\nQKfOt5x+7GqhWDw10q+bJpJlI10FfzAnhMF9etSqSeURBRW5AQ0EVduM9QEIAL53hJ5bZJ7oEDCn\naY+SCzt9QsAfnFTAnZJQrvkvusJzrTQ088eUQmAjvxkfRqnv981fFwGnh2+I1Ktm698UAZS9Jt8y\njak9wWUICKQO5QUt5k8cHwldQXNXVXFa+TpQWQR5yW1a9okjh5o/3d4cBt1yZPUJJyLKY43Wvptb\n6EuEsScO2DnRkh5wSMDQ7dTooddJCmaq3LTjOleRFQbu9ij386Do6jzK69mJU56TfdcydkxkWF5N\nZLGnED3lq+hQNbe+8UI5tD2oP/3r5tXKgMy1R/XPvR/zbfwvx4FAKFOP01awLq4P3d/2xOkMu4Lu\n9p315E87DOleYwxk+FoTqXEAEQEAAYkCPgQYAQIACQUCVduM9QIbLgEpCRDny6+OAR23k8BdIAQZ\nAQIABgUCVduM9QAKCRAID0JGyHtSGmqYB/4m4rJbbWa7dBJ8VqRU7ZKnNRDR9CVhEGipBmpDGRYu\nlEimOPzLUX/ZXZmTZzgemeXLBaJJlWnopVUWuAsyjQuZAfdd8nHkGRHG0/DGum0l4sKTta3OPGHN\nC1z1dAcQ1RCr9bTD3PxjLBczdGqhzw71trkQRBRdtPiUchltPMIyjUHqVJ0xmg0hPqFic0fICsr0\nYwKoz3h9+QEcZHvsjSZjgydKvfLYcm+4DDMCCqcHuJrbXJKUWmJcXR0y/+HQONGrGJ5xWdO+6eJi\noPn2jVMnXCm4EKc7fcLFrz/LKmJ8seXhxjM3EdFtylBGCrx3xdK0f+JDNQaC/rhUb5V2XuX6VwoH\n/AtY+XsKVYRfNIupLOUcf/srsm3IXT4SXWVomOc9hjGQiJ3rraIbADsc+6bCAr4XNZS7moViAAcI\nPXFv3m3WfUlnG/om78UjQqyVACRZqqAGmuPq+TSkRUCpt9h+A39LQWkojHqyob3cyLgy6z9Q557O\n9uK3lQozbw2gH9zC0RqnePl+rsWIUU/ga16fH6pWc1uJiEBt8UZGypQ/E56/343epmYAe0a87sHx\n8iDV+dNtDVKfPRENiLOOc19MmS+phmUyrbHqI91c0pmysYcJZCD3a502X1gpjFbPZcRtiTmGnUKd\nOIu60YPNE4+h7u2CfYyFPu3AlUaGNMBlvy6PEpU=\n\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"encryptedSecret\"] = encrypt.EncryptedSecret,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new RAM access key for user.\n\t\tuser, err := ram.NewUser(ctx, \"user\", \u0026ram.UserArgs{\n\t\t\tName:        pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDisplayName: pulumi.String(\"user_display_name\"),\n\t\t\tMobile:      pulumi.String(\"86-18688888888\"),\n\t\t\tEmail:       pulumi.String(\"hello.uuu@aaa.com\"),\n\t\t\tComments:    pulumi.String(\"yoyoyo\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tencrypt, err := ram.NewAccessKey(ctx, \"encrypt\", \u0026ram.AccessKeyArgs{\n\t\t\tUserName: user.Name,\n\t\t\tPgpKey: pulumi.String(`mQENBFXbjPUBCADjNjCUQwfxKL+RR2GA6pv/1K+zJZ8UWIF9S0lk7cVIEfJiprzzwiMwBS5cD0da\nrGin1FHvIWOZxujA7oW0O2TUuatqI3aAYDTfRYurh6iKLC+VS+F7H+/mhfFvKmgr0Y5kDCF1j0T/\n063QZ84IRGucR/X43IY7kAtmxGXH0dYOCzOe5UBX1fTn3mXGe2ImCDWBH7gOViynXmb6XNvXkP0f\nsF5St9jhO7mbZU9EFkv9O3t3EaURfHopsCVDOlCkFCw5ArY+DUORHRzoMX0PnkyQb5OzibkChzpg\n8hQssKeVGpuskTdz5Q7PtdW71jXd4fFVzoNH8fYwRpziD2xNvi6HABEBAAG0EFZhdWx0IFRlc3Qg\nS2V5IDGJATgEEwECACIFAlXbjPUCGy8GCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOfLr44B\nHbeTo+sH/i7bapIgPnZsJ81hmxPj4W12uvunksGJiC7d4hIHsG7kmJRTJfjECi+AuTGeDwBy84TD\ncRaOB6e79fj65Fg6HgSahDUtKJbGxj/lWzmaBuTzlN3CEe8cMwIPqPT2kajJVdOyrvkyuFOdPFOE\nA7bdCH0MqgIdM2SdF8t40k/ATfuD2K1ZmumJ508I3gF39jgTnPzD4C8quswrMQ3bzfvKC3klXRlB\nC0yoArn+0QA3cf2B9T4zJ2qnvgotVbeK/b1OJRNj6Poeo+SsWNc/A5mw7lGScnDgL3yfwCm1gQXa\nQKfOt5x+7GqhWDw10q+bJpJlI10FfzAnhMF9etSqSeURBRW5AQ0EVduM9QEIAL53hJ5bZJ7oEDCn\naY+SCzt9QsAfnFTAnZJQrvkvusJzrTQ088eUQmAjvxkfRqnv981fFwGnh2+I1Ktm698UAZS9Jt8y\njak9wWUICKQO5QUt5k8cHwldQXNXVXFa+TpQWQR5yW1a9okjh5o/3d4cBt1yZPUJJyLKY43Wvptb\n6EuEsScO2DnRkh5wSMDQ7dTooddJCmaq3LTjOleRFQbu9ij386Do6jzK69mJU56TfdcydkxkWF5N\nZLGnED3lq+hQNbe+8UI5tD2oP/3r5tXKgMy1R/XPvR/zbfwvx4FAKFOP01awLq4P3d/2xOkMu4Lu\n9p315E87DOleYwxk+FoTqXEAEQEAAYkCPgQYAQIACQUCVduM9QIbLgEpCRDny6+OAR23k8BdIAQZ\nAQIABgUCVduM9QAKCRAID0JGyHtSGmqYB/4m4rJbbWa7dBJ8VqRU7ZKnNRDR9CVhEGipBmpDGRYu\nlEimOPzLUX/ZXZmTZzgemeXLBaJJlWnopVUWuAsyjQuZAfdd8nHkGRHG0/DGum0l4sKTta3OPGHN\nC1z1dAcQ1RCr9bTD3PxjLBczdGqhzw71trkQRBRdtPiUchltPMIyjUHqVJ0xmg0hPqFic0fICsr0\nYwKoz3h9+QEcZHvsjSZjgydKvfLYcm+4DDMCCqcHuJrbXJKUWmJcXR0y/+HQONGrGJ5xWdO+6eJi\noPn2jVMnXCm4EKc7fcLFrz/LKmJ8seXhxjM3EdFtylBGCrx3xdK0f+JDNQaC/rhUb5V2XuX6VwoH\n/AtY+XsKVYRfNIupLOUcf/srsm3IXT4SXWVomOc9hjGQiJ3rraIbADsc+6bCAr4XNZS7moViAAcI\nPXFv3m3WfUlnG/om78UjQqyVACRZqqAGmuPq+TSkRUCpt9h+A39LQWkojHqyob3cyLgy6z9Q557O\n9uK3lQozbw2gH9zC0RqnePl+rsWIUU/ga16fH6pWc1uJiEBt8UZGypQ/E56/343epmYAe0a87sHx\n8iDV+dNtDVKfPRENiLOOc19MmS+phmUyrbHqI91c0pmysYcJZCD3a502X1gpjFbPZcRtiTmGnUKd\nOIu60YPNE4+h7u2CfYyFPu3AlUaGNMBlvy6PEpU=\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"encryptedSecret\", encrypt.EncryptedSecret)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ram.User;\nimport com.pulumi.alicloud.ram.UserArgs;\nimport com.pulumi.alicloud.ram.AccessKey;\nimport com.pulumi.alicloud.ram.AccessKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        // Create a new RAM access key for user.\n        var user = new User(\"user\", UserArgs.builder()\n            .name(String.format(\"terraform-example-%s\", default_.result()))\n            .displayName(\"user_display_name\")\n            .mobile(\"86-18688888888\")\n            .email(\"hello.uuu@aaa.com\")\n            .comments(\"yoyoyo\")\n            .force(true)\n            .build());\n\n        var encrypt = new AccessKey(\"encrypt\", AccessKeyArgs.builder()\n            .userName(user.name())\n            .pgpKey(\"\"\"\nmQENBFXbjPUBCADjNjCUQwfxKL+RR2GA6pv/1K+zJZ8UWIF9S0lk7cVIEfJiprzzwiMwBS5cD0da\nrGin1FHvIWOZxujA7oW0O2TUuatqI3aAYDTfRYurh6iKLC+VS+F7H+/mhfFvKmgr0Y5kDCF1j0T/\n063QZ84IRGucR/X43IY7kAtmxGXH0dYOCzOe5UBX1fTn3mXGe2ImCDWBH7gOViynXmb6XNvXkP0f\nsF5St9jhO7mbZU9EFkv9O3t3EaURfHopsCVDOlCkFCw5ArY+DUORHRzoMX0PnkyQb5OzibkChzpg\n8hQssKeVGpuskTdz5Q7PtdW71jXd4fFVzoNH8fYwRpziD2xNvi6HABEBAAG0EFZhdWx0IFRlc3Qg\nS2V5IDGJATgEEwECACIFAlXbjPUCGy8GCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOfLr44B\nHbeTo+sH/i7bapIgPnZsJ81hmxPj4W12uvunksGJiC7d4hIHsG7kmJRTJfjECi+AuTGeDwBy84TD\ncRaOB6e79fj65Fg6HgSahDUtKJbGxj/lWzmaBuTzlN3CEe8cMwIPqPT2kajJVdOyrvkyuFOdPFOE\nA7bdCH0MqgIdM2SdF8t40k/ATfuD2K1ZmumJ508I3gF39jgTnPzD4C8quswrMQ3bzfvKC3klXRlB\nC0yoArn+0QA3cf2B9T4zJ2qnvgotVbeK/b1OJRNj6Poeo+SsWNc/A5mw7lGScnDgL3yfwCm1gQXa\nQKfOt5x+7GqhWDw10q+bJpJlI10FfzAnhMF9etSqSeURBRW5AQ0EVduM9QEIAL53hJ5bZJ7oEDCn\naY+SCzt9QsAfnFTAnZJQrvkvusJzrTQ088eUQmAjvxkfRqnv981fFwGnh2+I1Ktm698UAZS9Jt8y\njak9wWUICKQO5QUt5k8cHwldQXNXVXFa+TpQWQR5yW1a9okjh5o/3d4cBt1yZPUJJyLKY43Wvptb\n6EuEsScO2DnRkh5wSMDQ7dTooddJCmaq3LTjOleRFQbu9ij386Do6jzK69mJU56TfdcydkxkWF5N\nZLGnED3lq+hQNbe+8UI5tD2oP/3r5tXKgMy1R/XPvR/zbfwvx4FAKFOP01awLq4P3d/2xOkMu4Lu\n9p315E87DOleYwxk+FoTqXEAEQEAAYkCPgQYAQIACQUCVduM9QIbLgEpCRDny6+OAR23k8BdIAQZ\nAQIABgUCVduM9QAKCRAID0JGyHtSGmqYB/4m4rJbbWa7dBJ8VqRU7ZKnNRDR9CVhEGipBmpDGRYu\nlEimOPzLUX/ZXZmTZzgemeXLBaJJlWnopVUWuAsyjQuZAfdd8nHkGRHG0/DGum0l4sKTta3OPGHN\nC1z1dAcQ1RCr9bTD3PxjLBczdGqhzw71trkQRBRdtPiUchltPMIyjUHqVJ0xmg0hPqFic0fICsr0\nYwKoz3h9+QEcZHvsjSZjgydKvfLYcm+4DDMCCqcHuJrbXJKUWmJcXR0y/+HQONGrGJ5xWdO+6eJi\noPn2jVMnXCm4EKc7fcLFrz/LKmJ8seXhxjM3EdFtylBGCrx3xdK0f+JDNQaC/rhUb5V2XuX6VwoH\n/AtY+XsKVYRfNIupLOUcf/srsm3IXT4SXWVomOc9hjGQiJ3rraIbADsc+6bCAr4XNZS7moViAAcI\nPXFv3m3WfUlnG/om78UjQqyVACRZqqAGmuPq+TSkRUCpt9h+A39LQWkojHqyob3cyLgy6z9Q557O\n9uK3lQozbw2gH9zC0RqnePl+rsWIUU/ga16fH6pWc1uJiEBt8UZGypQ/E56/343epmYAe0a87sHx\n8iDV+dNtDVKfPRENiLOOc19MmS+phmUyrbHqI91c0pmysYcJZCD3a502X1gpjFbPZcRtiTmGnUKd\nOIu60YPNE4+h7u2CfYyFPu3AlUaGNMBlvy6PEpU=\n            \"\"\")\n            .build());\n\n        ctx.export(\"encryptedSecret\", encrypt.encryptedSecret());\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  # Create a new RAM access key for user.\n  user:\n    type: alicloud:ram:User\n    properties:\n      name: terraform-example-${default.result}\n      displayName: user_display_name\n      mobile: 86-18688888888\n      email: hello.uuu@aaa.com\n      comments: yoyoyo\n      force: true\n  encrypt:\n    type: alicloud:ram:AccessKey\n    properties:\n      userName: ${user.name}\n      pgpKey: |\n        mQENBFXbjPUBCADjNjCUQwfxKL+RR2GA6pv/1K+zJZ8UWIF9S0lk7cVIEfJiprzzwiMwBS5cD0da\n        rGin1FHvIWOZxujA7oW0O2TUuatqI3aAYDTfRYurh6iKLC+VS+F7H+/mhfFvKmgr0Y5kDCF1j0T/\n        063QZ84IRGucR/X43IY7kAtmxGXH0dYOCzOe5UBX1fTn3mXGe2ImCDWBH7gOViynXmb6XNvXkP0f\n        sF5St9jhO7mbZU9EFkv9O3t3EaURfHopsCVDOlCkFCw5ArY+DUORHRzoMX0PnkyQb5OzibkChzpg\n        8hQssKeVGpuskTdz5Q7PtdW71jXd4fFVzoNH8fYwRpziD2xNvi6HABEBAAG0EFZhdWx0IFRlc3Qg\n        S2V5IDGJATgEEwECACIFAlXbjPUCGy8GCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOfLr44B\n        HbeTo+sH/i7bapIgPnZsJ81hmxPj4W12uvunksGJiC7d4hIHsG7kmJRTJfjECi+AuTGeDwBy84TD\n        cRaOB6e79fj65Fg6HgSahDUtKJbGxj/lWzmaBuTzlN3CEe8cMwIPqPT2kajJVdOyrvkyuFOdPFOE\n        A7bdCH0MqgIdM2SdF8t40k/ATfuD2K1ZmumJ508I3gF39jgTnPzD4C8quswrMQ3bzfvKC3klXRlB\n        C0yoArn+0QA3cf2B9T4zJ2qnvgotVbeK/b1OJRNj6Poeo+SsWNc/A5mw7lGScnDgL3yfwCm1gQXa\n        QKfOt5x+7GqhWDw10q+bJpJlI10FfzAnhMF9etSqSeURBRW5AQ0EVduM9QEIAL53hJ5bZJ7oEDCn\n        aY+SCzt9QsAfnFTAnZJQrvkvusJzrTQ088eUQmAjvxkfRqnv981fFwGnh2+I1Ktm698UAZS9Jt8y\n        jak9wWUICKQO5QUt5k8cHwldQXNXVXFa+TpQWQR5yW1a9okjh5o/3d4cBt1yZPUJJyLKY43Wvptb\n        6EuEsScO2DnRkh5wSMDQ7dTooddJCmaq3LTjOleRFQbu9ij386Do6jzK69mJU56TfdcydkxkWF5N\n        ZLGnED3lq+hQNbe+8UI5tD2oP/3r5tXKgMy1R/XPvR/zbfwvx4FAKFOP01awLq4P3d/2xOkMu4Lu\n        9p315E87DOleYwxk+FoTqXEAEQEAAYkCPgQYAQIACQUCVduM9QIbLgEpCRDny6+OAR23k8BdIAQZ\n        AQIABgUCVduM9QAKCRAID0JGyHtSGmqYB/4m4rJbbWa7dBJ8VqRU7ZKnNRDR9CVhEGipBmpDGRYu\n        lEimOPzLUX/ZXZmTZzgemeXLBaJJlWnopVUWuAsyjQuZAfdd8nHkGRHG0/DGum0l4sKTta3OPGHN\n        C1z1dAcQ1RCr9bTD3PxjLBczdGqhzw71trkQRBRdtPiUchltPMIyjUHqVJ0xmg0hPqFic0fICsr0\n        YwKoz3h9+QEcZHvsjSZjgydKvfLYcm+4DDMCCqcHuJrbXJKUWmJcXR0y/+HQONGrGJ5xWdO+6eJi\n        oPn2jVMnXCm4EKc7fcLFrz/LKmJ8seXhxjM3EdFtylBGCrx3xdK0f+JDNQaC/rhUb5V2XuX6VwoH\n        /AtY+XsKVYRfNIupLOUcf/srsm3IXT4SXWVomOc9hjGQiJ3rraIbADsc+6bCAr4XNZS7moViAAcI\n        PXFv3m3WfUlnG/om78UjQqyVACRZqqAGmuPq+TSkRUCpt9h+A39LQWkojHqyob3cyLgy6z9Q557O\n        9uK3lQozbw2gH9zC0RqnePl+rsWIUU/ga16fH6pWc1uJiEBt8UZGypQ/E56/343epmYAe0a87sHx\n        8iDV+dNtDVKfPRENiLOOc19MmS+phmUyrbHqI91c0pmysYcJZCD3a502X1gpjFbPZcRtiTmGnUKd\n        OIu60YPNE4+h7u2CfYyFPu3AlUaGNMBlvy6PEpU=\noutputs:\n  encryptedSecret: ${encrypt.encryptedSecret}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"createTime":{"type":"string","description":"(Available since v1.246.0) The create time of the AccessKey.\n"},"encryptedSecret":{"type":"string","description":"(Available since v1.47.0) The encrypted secret, base64 encoded. \u003e NOTE: The encrypted secret may be decrypted using the command line, for example: `terraform output\u003cspan pulumi-lang-nodejs=\" encryptedSecret \" pulumi-lang-dotnet=\" EncryptedSecret \" pulumi-lang-go=\" encryptedSecret \" pulumi-lang-python=\" encrypted_secret \" pulumi-lang-yaml=\" encryptedSecret \" pulumi-lang-java=\" encryptedSecret \"\u003e encrypted_secret \u003c/span\u003e| base64 --decode | keybase pgp decrypt`.\n"},"keyFingerprint":{"type":"string","description":"(Available since v1.47.0) The fingerprint of the PGP key used to encrypt the secret\n"},"pgpKey":{"type":"string","description":"Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:some_person_that_exists`\n"},"secret":{"type":"string","description":"(Available since v1.98.0) The secret access key. Note that this will be written to the state file. \nIf you use this, please protect your backend state file judiciously.\nAlternatively, you may supply a \u003cspan pulumi-lang-nodejs=\"`pgpKey`\" pulumi-lang-dotnet=\"`PgpKey`\" pulumi-lang-go=\"`pgpKey`\" pulumi-lang-python=\"`pgp_key`\" pulumi-lang-yaml=\"`pgpKey`\" pulumi-lang-java=\"`pgpKey`\"\u003e`pgp_key`\u003c/span\u003e instead, which will prevent the secret from being stored in plaintext,\nat the cost of preventing the use of the secret key in automation.\n","secret":true},"secretFile":{"type":"string","description":"The name of file that can save access key id and access key secret. Strongly suggest you to specified it when you creating access key, otherwise, you wouldn't get its secret ever.\n"},"status":{"type":"string","description":"The status of the AccessKey. Value:\n- Active: Activated.\n- Inactive: Disabled.\n"},"userName":{"type":"string","description":"The RAM user name.\n"}},"required":["createTime","encryptedSecret","keyFingerprint","secret","status"],"inputProperties":{"pgpKey":{"type":"string","description":"Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:some_person_that_exists`\n","willReplaceOnChanges":true},"secretFile":{"type":"string","description":"The name of file that can save access key id and access key secret. Strongly suggest you to specified it when you creating access key, otherwise, you wouldn't get its secret ever.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the AccessKey. Value:\n- Active: Activated.\n- Inactive: Disabled.\n"},"userName":{"type":"string","description":"The RAM user name.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering AccessKey resources.\n","properties":{"createTime":{"type":"string","description":"(Available since v1.246.0) The create time of the AccessKey.\n"},"encryptedSecret":{"type":"string","description":"(Available since v1.47.0) The encrypted secret, base64 encoded. \u003e NOTE: The encrypted secret may be decrypted using the command line, for example: `terraform output\u003cspan pulumi-lang-nodejs=\" encryptedSecret \" pulumi-lang-dotnet=\" EncryptedSecret \" pulumi-lang-go=\" encryptedSecret \" pulumi-lang-python=\" encrypted_secret \" pulumi-lang-yaml=\" encryptedSecret \" pulumi-lang-java=\" encryptedSecret \"\u003e encrypted_secret \u003c/span\u003e| base64 --decode | keybase pgp decrypt`.\n"},"keyFingerprint":{"type":"string","description":"(Available since v1.47.0) The fingerprint of the PGP key used to encrypt the secret\n"},"pgpKey":{"type":"string","description":"Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:some_person_that_exists`\n","willReplaceOnChanges":true},"secret":{"type":"string","description":"(Available since v1.98.0) The secret access key. Note that this will be written to the state file. \nIf you use this, please protect your backend state file judiciously.\nAlternatively, you may supply a \u003cspan pulumi-lang-nodejs=\"`pgpKey`\" pulumi-lang-dotnet=\"`PgpKey`\" pulumi-lang-go=\"`pgpKey`\" pulumi-lang-python=\"`pgp_key`\" pulumi-lang-yaml=\"`pgpKey`\" pulumi-lang-java=\"`pgpKey`\"\u003e`pgp_key`\u003c/span\u003e instead, which will prevent the secret from being stored in plaintext,\nat the cost of preventing the use of the secret key in automation.\n","secret":true},"secretFile":{"type":"string","description":"The name of file that can save access key id and access key secret. Strongly suggest you to specified it when you creating access key, otherwise, you wouldn't get its secret ever.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the AccessKey. Value:\n- Active: Activated.\n- Inactive: Disabled.\n"},"userName":{"type":"string","description":"The RAM user name.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ram/accountAlias:AccountAlias":{"description":"Provides a RAM Account Alias resource.\n\n\n\nFor information about RAM Account Alias and how to use it, see [What is Account Alias](https://next.api.alibabacloud.com/document/Ram/2015-05-01/SetAccountAlias).\n\n\u003e **NOTE:** Available since v1.0.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst alias = new alicloud.ram.AccountAlias(\"alias\", {accountAlias: name});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\nalias = alicloud.ram.AccountAlias(\"alias\", account_alias=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var @alias = new AliCloud.Ram.AccountAlias(\"alias\", new()\n    {\n        Alias = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ram.NewAccountAlias(ctx, \"alias\", \u0026ram.AccountAliasArgs{\n\t\t\tAccountAlias: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.AccountAlias;\nimport com.pulumi.alicloud.ram.AccountAliasArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        var alias = new AccountAlias(\"alias\", AccountAliasArgs.builder()\n            .accountAlias(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  alias:\n    type: alicloud:ram:AccountAlias\n    properties:\n      accountAlias: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.ram.AccountAlias`\" pulumi-lang-dotnet=\"`alicloud.ram.AccountAlias`\" pulumi-lang-go=\"`ram.AccountAlias`\" pulumi-lang-python=\"`ram.AccountAlias`\" pulumi-lang-yaml=\"`alicloud.ram.AccountAlias`\" pulumi-lang-java=\"`alicloud.ram.AccountAlias`\"\u003e`alicloud.ram.AccountAlias`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ram.AccountAlias`\" pulumi-lang-dotnet=\"`alicloud.ram.AccountAlias`\" pulumi-lang-go=\"`ram.AccountAlias`\" pulumi-lang-python=\"`ram.AccountAlias`\" pulumi-lang-yaml=\"`alicloud.ram.AccountAlias`\" pulumi-lang-java=\"`alicloud.ram.AccountAlias`\"\u003e`alicloud.ram.AccountAlias`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRAM Account Alias can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ram/accountAlias:AccountAlias example \u003cid\u003e\n```\n\n","properties":{"accountAlias":{"type":"string","description":"The alias of the account.\nIt can be 3 to 32 characters in length and can contain lowercase letters, digits, and dashes (-).\n","language":{"csharp":{"name":"Alias"}}}},"required":["accountAlias"],"inputProperties":{"accountAlias":{"type":"string","description":"The alias of the account.\nIt can be 3 to 32 characters in length and can contain lowercase letters, digits, and dashes (-).\n","language":{"csharp":{"name":"Alias"}}}},"requiredInputs":["accountAlias"],"stateInputs":{"description":"Input properties used for looking up and filtering AccountAlias resources.\n","properties":{"accountAlias":{"type":"string","description":"The alias of the account.\nIt can be 3 to 32 characters in length and can contain lowercase letters, digits, and dashes (-).\n","language":{"csharp":{"name":"Alias"}}}},"type":"object"}},"alicloud:ram/accountPasswordPolicy:AccountPasswordPolicy":{"description":"Provides a RAM password policy configuration for entire account. Only one resource per account.\n\n\u003e **NOTE:** This resource overwrites an existing configuration. During action `terraform destroy` it sets values the same as defaults for this resource (it does not preserve any preexisted configuration).\n\n\u003e **NOTE:** Available since v1.46.0.\n\n## Example Usage\n\nEmpty resource sets defaults values for every property.\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ram.AccountPasswordPolicy(\"default\", {});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ram.AccountPasswordPolicy(\"default\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ram.AccountPasswordPolicy(\"default\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ram.NewAccountPasswordPolicy(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.AccountPasswordPolicy;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new AccountPasswordPolicy(\"default\");\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ram:AccountPasswordPolicy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst corporate = new alicloud.ram.AccountPasswordPolicy(\"corporate\", {\n    minimumPasswordLength: 9,\n    requireLowercaseCharacters: false,\n    requireUppercaseCharacters: false,\n    requireNumbers: false,\n    requireSymbols: false,\n    hardExpiry: true,\n    maxPasswordAge: 12,\n    passwordReusePrevention: 5,\n    maxLoginAttempts: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ncorporate = alicloud.ram.AccountPasswordPolicy(\"corporate\",\n    minimum_password_length=9,\n    require_lowercase_characters=False,\n    require_uppercase_characters=False,\n    require_numbers=False,\n    require_symbols=False,\n    hard_expiry=True,\n    max_password_age=12,\n    password_reuse_prevention=5,\n    max_login_attempts=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var corporate = new AliCloud.Ram.AccountPasswordPolicy(\"corporate\", new()\n    {\n        MinimumPasswordLength = 9,\n        RequireLowercaseCharacters = false,\n        RequireUppercaseCharacters = false,\n        RequireNumbers = false,\n        RequireSymbols = false,\n        HardExpiry = true,\n        MaxPasswordAge = 12,\n        PasswordReusePrevention = 5,\n        MaxLoginAttempts = 3,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ram.NewAccountPasswordPolicy(ctx, \"corporate\", \u0026ram.AccountPasswordPolicyArgs{\n\t\t\tMinimumPasswordLength:      pulumi.Int(9),\n\t\t\tRequireLowercaseCharacters: pulumi.Bool(false),\n\t\t\tRequireUppercaseCharacters: pulumi.Bool(false),\n\t\t\tRequireNumbers:             pulumi.Bool(false),\n\t\t\tRequireSymbols:             pulumi.Bool(false),\n\t\t\tHardExpiry:                 pulumi.Bool(true),\n\t\t\tMaxPasswordAge:             pulumi.Int(12),\n\t\t\tPasswordReusePrevention:    pulumi.Int(5),\n\t\t\tMaxLoginAttempts:           pulumi.Int(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.AccountPasswordPolicy;\nimport com.pulumi.alicloud.ram.AccountPasswordPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var corporate = new AccountPasswordPolicy(\"corporate\", AccountPasswordPolicyArgs.builder()\n            .minimumPasswordLength(9)\n            .requireLowercaseCharacters(false)\n            .requireUppercaseCharacters(false)\n            .requireNumbers(false)\n            .requireSymbols(false)\n            .hardExpiry(true)\n            .maxPasswordAge(12)\n            .passwordReusePrevention(5)\n            .maxLoginAttempts(3)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  corporate:\n    type: alicloud:ram:AccountPasswordPolicy\n    properties:\n      minimumPasswordLength: 9\n      requireLowercaseCharacters: false\n      requireUppercaseCharacters: false\n      requireNumbers: false\n      requireSymbols: false\n      hardExpiry: true\n      maxPasswordAge: 12\n      passwordReusePrevention: 5\n      maxLoginAttempts: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\nFor not specified values sets defaults.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRAM account password policy can be imported using the \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e, e.g.\n\n```sh\n$ pulumi import alicloud:ram/accountPasswordPolicy:AccountPasswordPolicy example ram-account-password-policy\n```\n\n","properties":{"hardExpiry":{"type":"boolean","description":"Specifies if a password can expire in a hard way. Default to false.\n"},"maxLoginAttempts":{"type":"integer","description":"Maximum logon attempts with an incorrect password within an hour. Valid value range: [0-32]. Default to 5.\n"},"maxPasswordAge":{"type":"integer","description":"The number of days after which password expires. A value of 0 indicates that the password never expires. Valid value range: [0-1095]. Default to 0.\n"},"minimumPasswordLength":{"type":"integer","description":"Minimal required length of password for a user. Valid value range: [8-32]. Default to 12.\n"},"passwordReusePrevention":{"type":"integer","description":"User is not allowed to use the latest number of passwords specified in this parameter. A value of 0 indicates the password history check policy is disabled. Valid value range: [0-24]. Default to 0.\n"},"requireLowercaseCharacters":{"type":"boolean","description":"Specifies if the occurrence of a lowercase character in the password is mandatory. Default to true.\n"},"requireNumbers":{"type":"boolean","description":"Specifies if the occurrence of a number in the password is mandatory. Default to true.\n"},"requireSymbols":{"type":"boolean","description":"Specifies if the occurrence of a special character in the password is mandatory. Default to true.\n"},"requireUppercaseCharacters":{"type":"boolean","description":"Specifies if the occurrence of an uppercase character in the password is mandatory. Default to true.\n"}},"inputProperties":{"hardExpiry":{"type":"boolean","description":"Specifies if a password can expire in a hard way. Default to false.\n"},"maxLoginAttempts":{"type":"integer","description":"Maximum logon attempts with an incorrect password within an hour. Valid value range: [0-32]. Default to 5.\n"},"maxPasswordAge":{"type":"integer","description":"The number of days after which password expires. A value of 0 indicates that the password never expires. Valid value range: [0-1095]. Default to 0.\n"},"minimumPasswordLength":{"type":"integer","description":"Minimal required length of password for a user. Valid value range: [8-32]. Default to 12.\n"},"passwordReusePrevention":{"type":"integer","description":"User is not allowed to use the latest number of passwords specified in this parameter. A value of 0 indicates the password history check policy is disabled. Valid value range: [0-24]. Default to 0.\n"},"requireLowercaseCharacters":{"type":"boolean","description":"Specifies if the occurrence of a lowercase character in the password is mandatory. Default to true.\n"},"requireNumbers":{"type":"boolean","description":"Specifies if the occurrence of a number in the password is mandatory. Default to true.\n"},"requireSymbols":{"type":"boolean","description":"Specifies if the occurrence of a special character in the password is mandatory. Default to true.\n"},"requireUppercaseCharacters":{"type":"boolean","description":"Specifies if the occurrence of an uppercase character in the password is mandatory. Default to true.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering AccountPasswordPolicy resources.\n","properties":{"hardExpiry":{"type":"boolean","description":"Specifies if a password can expire in a hard way. Default to false.\n"},"maxLoginAttempts":{"type":"integer","description":"Maximum logon attempts with an incorrect password within an hour. Valid value range: [0-32]. Default to 5.\n"},"maxPasswordAge":{"type":"integer","description":"The number of days after which password expires. A value of 0 indicates that the password never expires. Valid value range: [0-1095]. Default to 0.\n"},"minimumPasswordLength":{"type":"integer","description":"Minimal required length of password for a user. Valid value range: [8-32]. Default to 12.\n"},"passwordReusePrevention":{"type":"integer","description":"User is not allowed to use the latest number of passwords specified in this parameter. A value of 0 indicates the password history check policy is disabled. Valid value range: [0-24]. Default to 0.\n"},"requireLowercaseCharacters":{"type":"boolean","description":"Specifies if the occurrence of a lowercase character in the password is mandatory. Default to true.\n"},"requireNumbers":{"type":"boolean","description":"Specifies if the occurrence of a number in the password is mandatory. Default to true.\n"},"requireSymbols":{"type":"boolean","description":"Specifies if the occurrence of a special character in the password is mandatory. Default to true.\n"},"requireUppercaseCharacters":{"type":"boolean","description":"Specifies if the occurrence of an uppercase character in the password is mandatory. Default to true.\n"}},"type":"object"}},"alicloud:ram/alias:Alias":{"properties":{"accountAlias":{"type":"string"}},"required":["accountAlias"],"inputProperties":{"accountAlias":{"type":"string"}},"requiredInputs":["accountAlias"],"stateInputs":{"description":"Input properties used for looking up and filtering Alias resources.\n","properties":{"accountAlias":{"type":"string"}},"type":"object"}},"alicloud:ram/group:Group":{"description":"Provides a RAM Group resource.\n\nThe group that users can join.\n\nFor information about RAM Group and how to use it, see [What is Group](https://www.alibabacloud.com/help/en/ram/developer-reference/api-ram-2015-05-01-creategroup).\n\n\u003e **NOTE:** Available since v1.0.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst group = new alicloud.ram.Group(\"group\", {\n    groupName: name,\n    comments: name,\n    force: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ngroup = alicloud.ram.Group(\"group\",\n    group_name=name,\n    comments=name,\n    force=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @group = new AliCloud.Ram.Group(\"group\", new()\n    {\n        GroupName = name,\n        Comments = name,\n        Force = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ram.NewGroup(ctx, \"group\", \u0026ram.GroupArgs{\n\t\t\tGroupName: pulumi.String(name),\n\t\t\tComments:  pulumi.String(name),\n\t\t\tForce:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.Group;\nimport com.pulumi.alicloud.ram.GroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var group = new Group(\"group\", GroupArgs.builder()\n            .groupName(name)\n            .comments(name)\n            .force(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  group:\n    type: alicloud:ram:Group\n    properties:\n      groupName: ${name}\n      comments: ${name}\n      force: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRAM Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ram/group:Group example \u003cid\u003e\n```\n\n","properties":{"comments":{"type":"string","description":"The Group comment information. The maximum length is 128 characters.\n"},"createTime":{"type":"string","description":"(Available since v1.245.0) The create time of the group.\n"},"force":{"type":"boolean","description":"Specifies whether to force delete the Group. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"groupName":{"type":"string","description":"The group name. You must specify at least one of the \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\nIt can be 1 to 64 characters in length and can contain letters, digits, periods (.), underscores (_), and dashes (-).\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.120.0. New field 'group_name' instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.245.0. New field \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e instead."}},"required":["createTime","groupName","name"],"inputProperties":{"comments":{"type":"string","description":"The Group comment information. The maximum length is 128 characters.\n"},"force":{"type":"boolean","description":"Specifies whether to force delete the Group. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"groupName":{"type":"string","description":"The group name. You must specify at least one of the \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\nIt can be 1 to 64 characters in length and can contain letters, digits, periods (.), underscores (_), and dashes (-).\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.120.0. New field 'group_name' instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.245.0. New field \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e instead.","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Group resources.\n","properties":{"comments":{"type":"string","description":"The Group comment information. The maximum length is 128 characters.\n"},"createTime":{"type":"string","description":"(Available since v1.245.0) The create time of the group.\n"},"force":{"type":"boolean","description":"Specifies whether to force delete the Group. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"groupName":{"type":"string","description":"The group name. You must specify at least one of the \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\nIt can be 1 to 64 characters in length and can contain letters, digits, periods (.), underscores (_), and dashes (-).\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.120.0. New field 'group_name' instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.245.0. New field \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e instead.","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ram/groupMembership:GroupMembership":{"description":"Provides a RAM Group membership resource. \n\n\u003e **NOTE:** Available since v1.0.0.\n\n\u003e **DEPRECATED:**  This resource has been deprecated since version `1.267.0`. Replace by \u003cspan pulumi-lang-nodejs=\"`alicloud.ram.UserGroupAttachment`\" pulumi-lang-dotnet=\"`alicloud.ram.UserGroupAttachment`\" pulumi-lang-go=\"`ram.UserGroupAttachment`\" pulumi-lang-python=\"`ram.UserGroupAttachment`\" pulumi-lang-yaml=\"`alicloud.ram.UserGroupAttachment`\" pulumi-lang-java=\"`alicloud.ram.UserGroupAttachment`\"\u003e`alicloud.ram.UserGroupAttachment`\u003c/span\u003e.\n\n\u003e **WARNING:** When you delete this resource, any other users in the group will also be deleted—even if those users were not added to the group via this Terraform resource. Therefore, it is strongly recommended to use \u003cspan pulumi-lang-nodejs=\"`alicloud.ram.UserGroupAttachment`\" pulumi-lang-dotnet=\"`alicloud.ram.UserGroupAttachment`\" pulumi-lang-go=\"`ram.UserGroupAttachment`\" pulumi-lang-python=\"`ram.UserGroupAttachment`\" pulumi-lang-yaml=\"`alicloud.ram.UserGroupAttachment`\" pulumi-lang-java=\"`alicloud.ram.UserGroupAttachment`\"\u003e`alicloud.ram.UserGroupAttachment`\u003c/span\u003e instead of this resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst group = new alicloud.ram.Group(\"group\", {\n    name: std.format({\n        input: \"%sgroup\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    comments: \"this is a group comments.\",\n});\nconst user = new alicloud.ram.User(\"user\", {\n    name: std.format({\n        input: \"%suser\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    displayName: \"user_display_name\",\n    mobile: \"86-18688888888\",\n    email: \"hello.uuu@aaa.com\",\n    comments: \"yoyoyo\",\n});\nconst user1 = new alicloud.ram.User(\"user1\", {\n    name: std.format({\n        input: \"%suser1\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    displayName: \"user_display_name1\",\n    mobile: \"86-18688888889\",\n    email: \"hello.uuu@aaa.com\",\n    comments: \"yoyoyo\",\n});\nconst membership = new alicloud.ram.GroupMembership(\"membership\", {\n    groupName: group.name,\n    userNames: [\n        user.name,\n        user1.name,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\ngroup = alicloud.ram.Group(\"group\",\n    name=std.format(input=\"%sgroup\",\n        args=[name]).result,\n    comments=\"this is a group comments.\")\nuser = alicloud.ram.User(\"user\",\n    name=std.format(input=\"%suser\",\n        args=[name]).result,\n    display_name=\"user_display_name\",\n    mobile=\"86-18688888888\",\n    email=\"hello.uuu@aaa.com\",\n    comments=\"yoyoyo\")\nuser1 = alicloud.ram.User(\"user1\",\n    name=std.format(input=\"%suser1\",\n        args=[name]).result,\n    display_name=\"user_display_name1\",\n    mobile=\"86-18688888889\",\n    email=\"hello.uuu@aaa.com\",\n    comments=\"yoyoyo\")\nmembership = alicloud.ram.GroupMembership(\"membership\",\n    group_name=group.name,\n    user_names=[\n        user.name,\n        user1.name,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var @group = new AliCloud.Ram.Group(\"group\", new()\n    {\n        Name = Std.Format.Invoke(new()\n        {\n            Input = \"%sgroup\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        Comments = \"this is a group comments.\",\n    });\n\n    var user = new AliCloud.Ram.User(\"user\", new()\n    {\n        Name = Std.Format.Invoke(new()\n        {\n            Input = \"%suser\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        DisplayName = \"user_display_name\",\n        Mobile = \"86-18688888888\",\n        Email = \"hello.uuu@aaa.com\",\n        Comments = \"yoyoyo\",\n    });\n\n    var user1 = new AliCloud.Ram.User(\"user1\", new()\n    {\n        Name = Std.Format.Invoke(new()\n        {\n            Input = \"%suser1\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        DisplayName = \"user_display_name1\",\n        Mobile = \"86-18688888889\",\n        Email = \"hello.uuu@aaa.com\",\n        Comments = \"yoyoyo\",\n    });\n\n    var membership = new AliCloud.Ram.GroupMembership(\"membership\", new()\n    {\n        GroupName = @group.Name,\n        UserNames = new[]\n        {\n            user.Name,\n            user1.Name,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%sgroup\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup, err := ram.NewGroup(ctx, \"group\", \u0026ram.GroupArgs{\n\t\t\tName:     pulumi.String(invokeFormat.Result),\n\t\t\tComments: pulumi.String(\"this is a group comments.\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%suser\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser, err := ram.NewUser(ctx, \"user\", \u0026ram.UserArgs{\n\t\t\tName:        pulumi.String(invokeFormat1.Result),\n\t\t\tDisplayName: pulumi.String(\"user_display_name\"),\n\t\t\tMobile:      pulumi.String(\"86-18688888888\"),\n\t\t\tEmail:       pulumi.String(\"hello.uuu@aaa.com\"),\n\t\t\tComments:    pulumi.String(\"yoyoyo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat2, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%suser1\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser1, err := ram.NewUser(ctx, \"user1\", \u0026ram.UserArgs{\n\t\t\tName:        pulumi.String(invokeFormat2.Result),\n\t\t\tDisplayName: pulumi.String(\"user_display_name1\"),\n\t\t\tMobile:      pulumi.String(\"86-18688888889\"),\n\t\t\tEmail:       pulumi.String(\"hello.uuu@aaa.com\"),\n\t\t\tComments:    pulumi.String(\"yoyoyo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewGroupMembership(ctx, \"membership\", \u0026ram.GroupMembershipArgs{\n\t\t\tGroupName: group.Name,\n\t\t\tUserNames: pulumi.StringArray{\n\t\t\t\tuser.Name,\n\t\t\t\tuser1.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.Group;\nimport com.pulumi.alicloud.ram.GroupArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.ram.User;\nimport com.pulumi.alicloud.ram.UserArgs;\nimport com.pulumi.alicloud.ram.GroupMembership;\nimport com.pulumi.alicloud.ram.GroupMembershipArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        var group = new Group(\"group\", GroupArgs.builder()\n            .name(StdFunctions.format(FormatArgs.builder()\n                .input(\"%sgroup\")\n                .args(name)\n                .build()).result())\n            .comments(\"this is a group comments.\")\n            .build());\n\n        var user = new User(\"user\", UserArgs.builder()\n            .name(StdFunctions.format(FormatArgs.builder()\n                .input(\"%suser\")\n                .args(name)\n                .build()).result())\n            .displayName(\"user_display_name\")\n            .mobile(\"86-18688888888\")\n            .email(\"hello.uuu@aaa.com\")\n            .comments(\"yoyoyo\")\n            .build());\n\n        var user1 = new User(\"user1\", UserArgs.builder()\n            .name(StdFunctions.format(FormatArgs.builder()\n                .input(\"%suser1\")\n                .args(name)\n                .build()).result())\n            .displayName(\"user_display_name1\")\n            .mobile(\"86-18688888889\")\n            .email(\"hello.uuu@aaa.com\")\n            .comments(\"yoyoyo\")\n            .build());\n\n        var membership = new GroupMembership(\"membership\", GroupMembershipArgs.builder()\n            .groupName(group.name())\n            .userNames(            \n                user.name(),\n                user1.name())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  group:\n    type: alicloud:ram:Group\n    properties:\n      name:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%sgroup'\n            args:\n              - ${name}\n          return: result\n      comments: this is a group comments.\n  user:\n    type: alicloud:ram:User\n    properties:\n      name:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%suser'\n            args:\n              - ${name}\n          return: result\n      displayName: user_display_name\n      mobile: 86-18688888888\n      email: hello.uuu@aaa.com\n      comments: yoyoyo\n  user1:\n    type: alicloud:ram:User\n    properties:\n      name:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%suser1'\n            args:\n              - ${name}\n          return: result\n      displayName: user_display_name1\n      mobile: 86-18688888889\n      email: hello.uuu@aaa.com\n      comments: yoyoyo\n  membership:\n    type: alicloud:ram:GroupMembership\n    properties:\n      groupName: ${group.name}\n      userNames:\n        - ${user.name}\n        - ${user1.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRAM Group membership can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ram/groupMembership:GroupMembership example my-group\n```\n\n","properties":{"groupName":{"type":"string","description":"Name of the RAM group. This name can have a string of 1 to 64 characters, must contain only alphanumeric characters or hyphen \"-\", and must not begin with a hyphen.\n"},"userNames":{"type":"array","items":{"type":"string"},"description":"Set of user name which will be added to group. Each name can have a string of 1 to 64 characters, must contain only alphanumeric characters or hyphens, such as \"-\",\".\",\"_\", and must not begin with a hyphen.\n"}},"required":["groupName","userNames"],"inputProperties":{"groupName":{"type":"string","description":"Name of the RAM group. This name can have a string of 1 to 64 characters, must contain only alphanumeric characters or hyphen \"-\", and must not begin with a hyphen.\n","willReplaceOnChanges":true},"userNames":{"type":"array","items":{"type":"string"},"description":"Set of user name which will be added to group. Each name can have a string of 1 to 64 characters, must contain only alphanumeric characters or hyphens, such as \"-\",\".\",\"_\", and must not begin with a hyphen.\n"}},"requiredInputs":["groupName","userNames"],"stateInputs":{"description":"Input properties used for looking up and filtering GroupMembership resources.\n","properties":{"groupName":{"type":"string","description":"Name of the RAM group. This name can have a string of 1 to 64 characters, must contain only alphanumeric characters or hyphen \"-\", and must not begin with a hyphen.\n","willReplaceOnChanges":true},"userNames":{"type":"array","items":{"type":"string"},"description":"Set of user name which will be added to group. Each name can have a string of 1 to 64 characters, must contain only alphanumeric characters or hyphens, such as \"-\",\".\",\"_\", and must not begin with a hyphen.\n"}},"type":"object"}},"alicloud:ram/groupPolicyAttachment:GroupPolicyAttachment":{"description":"Provides a RAM Group Policy Attachment resource.\n\n\n\nFor information about RAM Group Policy Attachment and how to use it, see [What is Group Policy Attachment](https://next.api.alibabacloud.com/document/Ram/2015-05-01/AttachPolicyToGroup).\n\n\u003e **NOTE:** Available since v1.0.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\n// Create a RAM Group Policy attachment.\nconst group = new alicloud.ram.Group(\"group\", {\n    groupName: \"groupName\",\n    comments: \"this is a group comments.\",\n});\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst policy = new alicloud.ram.Policy(\"policy\", {\n    policyName: `tf-example-${_default.result}`,\n    policyDocument: `    {\n      \\\\\"Statement\\\\\": [\n        {\n          \\\\\"Action\\\\\": [\n            \\\\\"oss:ListObjects\\\\\",\n            \\\\\"oss:GetObject\\\\\"\n          ],\n          \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n          \\\\\"Resource\\\\\": [\n            \\\\\"acs:oss:*:*:mybucket\\\\\",\n            \\\\\"acs:oss:*:*:mybucket/*\\\\\"\n          ]\n        }\n      ],\n        \\\\\"Version\\\\\": \\\\\"1\\\\\"\n    }\n`,\n    description: \"this is a policy test\",\n});\nconst attach = new alicloud.ram.GroupPolicyAttachment(\"attach\", {\n    policyName: policy.policyName,\n    policyType: policy.type,\n    groupName: group.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\n# Create a RAM Group Policy attachment.\ngroup = alicloud.ram.Group(\"group\",\n    group_name=\"groupName\",\n    comments=\"this is a group comments.\")\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\npolicy = alicloud.ram.Policy(\"policy\",\n    policy_name=f\"tf-example-{default['result']}\",\n    policy_document=\"\"\"    {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": [\n            \\\"oss:ListObjects\\\",\n            \\\"oss:GetObject\\\"\n          ],\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Resource\\\": [\n            \\\"acs:oss:*:*:mybucket\\\",\n            \\\"acs:oss:*:*:mybucket/*\\\"\n          ]\n        }\n      ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n\"\"\",\n    description=\"this is a policy test\")\nattach = alicloud.ram.GroupPolicyAttachment(\"attach\",\n    policy_name=policy.policy_name,\n    policy_type=policy.type,\n    group_name=group.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a RAM Group Policy attachment.\n    var @group = new AliCloud.Ram.Group(\"group\", new()\n    {\n        GroupName = \"groupName\",\n        Comments = \"this is a group comments.\",\n    });\n\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var policy = new AliCloud.Ram.Policy(\"policy\", new()\n    {\n        PolicyName = $\"tf-example-{@default.Result}\",\n        PolicyDocument = @\"    {\n      \\\"\"Statement\\\"\": [\n        {\n          \\\"\"Action\\\"\": [\n            \\\"\"oss:ListObjects\\\"\",\n            \\\"\"oss:GetObject\\\"\"\n          ],\n          \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n          \\\"\"Resource\\\"\": [\n            \\\"\"acs:oss:*:*:mybucket\\\"\",\n            \\\"\"acs:oss:*:*:mybucket/*\\\"\"\n          ]\n        }\n      ],\n        \\\"\"Version\\\"\": \\\"\"1\\\"\"\n    }\n\",\n        Description = \"this is a policy test\",\n    });\n\n    var attach = new AliCloud.Ram.GroupPolicyAttachment(\"attach\", new()\n    {\n        PolicyName = policy.PolicyName,\n        PolicyType = policy.Type,\n        GroupName = @group.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a RAM Group Policy attachment.\n\t\tgroup, err := ram.NewGroup(ctx, \"group\", \u0026ram.GroupArgs{\n\t\t\tGroupName: pulumi.String(\"groupName\"),\n\t\t\tComments:  pulumi.String(\"this is a group comments.\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicy, err := ram.NewPolicy(ctx, \"policy\", \u0026ram.PolicyArgs{\n\t\t\tPolicyName: pulumi.Sprintf(\"tf-example-%v\", _default.Result),\n\t\t\tPolicyDocument: pulumi.String(`    {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": [\n            \\\"oss:ListObjects\\\",\n            \\\"oss:GetObject\\\"\n          ],\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Resource\\\": [\n            \\\"acs:oss:*:*:mybucket\\\",\n            \\\"acs:oss:*:*:mybucket/*\\\"\n          ]\n        }\n      ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n`),\n\t\t\tDescription: pulumi.String(\"this is a policy test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewGroupPolicyAttachment(ctx, \"attach\", \u0026ram.GroupPolicyAttachmentArgs{\n\t\t\tPolicyName: policy.PolicyName,\n\t\t\tPolicyType: policy.Type,\n\t\t\tGroupName:  group.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.Group;\nimport com.pulumi.alicloud.ram.GroupArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ram.Policy;\nimport com.pulumi.alicloud.ram.PolicyArgs;\nimport com.pulumi.alicloud.ram.GroupPolicyAttachment;\nimport com.pulumi.alicloud.ram.GroupPolicyAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a RAM Group Policy attachment.\n        var group = new Group(\"group\", GroupArgs.builder()\n            .groupName(\"groupName\")\n            .comments(\"this is a group comments.\")\n            .build());\n\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var policy = new Policy(\"policy\", PolicyArgs.builder()\n            .policyName(String.format(\"tf-example-%s\", default_.result()))\n            .policyDocument(\"\"\"\n    {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": [\n            \\\"oss:ListObjects\\\",\n            \\\"oss:GetObject\\\"\n          ],\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Resource\\\": [\n            \\\"acs:oss:*:*:mybucket\\\",\n            \\\"acs:oss:*:*:mybucket/*\\\"\n          ]\n        }\n      ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n            \"\"\")\n            .description(\"this is a policy test\")\n            .build());\n\n        var attach = new GroupPolicyAttachment(\"attach\", GroupPolicyAttachmentArgs.builder()\n            .policyName(policy.policyName())\n            .policyType(policy.type())\n            .groupName(group.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a RAM Group Policy attachment.\n  group:\n    type: alicloud:ram:Group\n    properties:\n      groupName: groupName\n      comments: this is a group comments.\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  policy:\n    type: alicloud:ram:Policy\n    properties:\n      policyName: tf-example-${default.result}\n      policyDocument: |2\n            {\n              \\\"Statement\\\": [\n                {\n                  \\\"Action\\\": [\n                    \\\"oss:ListObjects\\\",\n                    \\\"oss:GetObject\\\"\n                  ],\n                  \\\"Effect\\\": \\\"Allow\\\",\n                  \\\"Resource\\\": [\n                    \\\"acs:oss:*:*:mybucket\\\",\n                    \\\"acs:oss:*:*:mybucket/*\\\"\n                  ]\n                }\n              ],\n                \\\"Version\\\": \\\"1\\\"\n            }\n      description: this is a policy test\n  attach:\n    type: alicloud:ram:GroupPolicyAttachment\n    properties:\n      policyName: ${policy.policyName}\n      policyType: ${policy.type}\n      groupName: ${group.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRAM Group Policy Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ram/groupPolicyAttachment:GroupPolicyAttachment example group:\u003cpolicy_name\u003e:\u003cpolicy_type\u003e:\u003cgroup_name\u003e\n```\n\n","properties":{"groupName":{"type":"string","description":"The name of the group.\n"},"policyName":{"type":"string","description":"The name of the policy.\n"},"policyType":{"type":"string","description":"Policy type.\n- Custom: Custom policy.\n- System: System policy.\n"}},"required":["groupName","policyName","policyType"],"inputProperties":{"groupName":{"type":"string","description":"The name of the group.\n","willReplaceOnChanges":true},"policyName":{"type":"string","description":"The name of the policy.\n","willReplaceOnChanges":true},"policyType":{"type":"string","description":"Policy type.\n- Custom: Custom policy.\n- System: System policy.\n","willReplaceOnChanges":true}},"requiredInputs":["groupName","policyName","policyType"],"stateInputs":{"description":"Input properties used for looking up and filtering GroupPolicyAttachment resources.\n","properties":{"groupName":{"type":"string","description":"The name of the group.\n","willReplaceOnChanges":true},"policyName":{"type":"string","description":"The name of the policy.\n","willReplaceOnChanges":true},"policyType":{"type":"string","description":"Policy type.\n- Custom: Custom policy.\n- System: System policy.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ram/loginProfile:LoginProfile":{"description":"Provides a RAM Login Profile resource.\n\n\n\nFor information about RAM Login Profile and how to use it, see [What is Login Profile](https://www.alibabacloud.com/help/en/ram/developer-reference/api-ram-2015-05-01-createloginprofile).\n\n\u003e **NOTE:** Available since v1.0.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst user = new alicloud.ram.User(\"user\", {\n    name: \"terraform_example\",\n    displayName: \"terraform_example\",\n    mobile: \"86-18688888888\",\n    email: \"hello.uuu@aaa.com\",\n    comments: \"terraform_example\",\n    force: true,\n});\nconst profile = new alicloud.ram.LoginProfile(\"profile\", {\n    userName: user.name,\n    password: \"Example_1234\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nuser = alicloud.ram.User(\"user\",\n    name=\"terraform_example\",\n    display_name=\"terraform_example\",\n    mobile=\"86-18688888888\",\n    email=\"hello.uuu@aaa.com\",\n    comments=\"terraform_example\",\n    force=True)\nprofile = alicloud.ram.LoginProfile(\"profile\",\n    user_name=user.name,\n    password=\"Example_1234\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var user = new AliCloud.Ram.User(\"user\", new()\n    {\n        Name = \"terraform_example\",\n        DisplayName = \"terraform_example\",\n        Mobile = \"86-18688888888\",\n        Email = \"hello.uuu@aaa.com\",\n        Comments = \"terraform_example\",\n        Force = true,\n    });\n\n    var profile = new AliCloud.Ram.LoginProfile(\"profile\", new()\n    {\n        UserName = user.Name,\n        Password = \"Example_1234\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tuser, err := ram.NewUser(ctx, \"user\", \u0026ram.UserArgs{\n\t\t\tName:        pulumi.String(\"terraform_example\"),\n\t\t\tDisplayName: pulumi.String(\"terraform_example\"),\n\t\t\tMobile:      pulumi.String(\"86-18688888888\"),\n\t\t\tEmail:       pulumi.String(\"hello.uuu@aaa.com\"),\n\t\t\tComments:    pulumi.String(\"terraform_example\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewLoginProfile(ctx, \"profile\", \u0026ram.LoginProfileArgs{\n\t\t\tUserName: user.Name,\n\t\t\tPassword: pulumi.String(\"Example_1234\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.User;\nimport com.pulumi.alicloud.ram.UserArgs;\nimport com.pulumi.alicloud.ram.LoginProfile;\nimport com.pulumi.alicloud.ram.LoginProfileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var user = new User(\"user\", UserArgs.builder()\n            .name(\"terraform_example\")\n            .displayName(\"terraform_example\")\n            .mobile(\"86-18688888888\")\n            .email(\"hello.uuu@aaa.com\")\n            .comments(\"terraform_example\")\n            .force(true)\n            .build());\n\n        var profile = new LoginProfile(\"profile\", LoginProfileArgs.builder()\n            .userName(user.name())\n            .password(\"Example_1234\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user:\n    type: alicloud:ram:User\n    properties:\n      name: terraform_example\n      displayName: terraform_example\n      mobile: 86-18688888888\n      email: hello.uuu@aaa.com\n      comments: terraform_example\n      force: true\n  profile:\n    type: alicloud:ram:LoginProfile\n    properties:\n      userName: ${user.name}\n      password: Example_1234\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRAM Login Profile can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ram/loginProfile:LoginProfile example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"Creation time.\n"},"mfaBindRequired":{"type":"boolean","description":"Specifies whether to forcefully enable multi-factor authentication (MFA) for the RAM user. Valid values:\n- true: forcefully enables MFA for the RAM user. The RAM user must bind an MFA device upon the next logon.\n- false (default): does not forcefully enable MFA for the RAM user.\n"},"password":{"type":"string","description":"The password must meet the Password strength requirements. For more information about password strength setting requirements, see [GetPasswordPolicy](https://help.aliyun.com/document_detail/2337691.html).\n"},"passwordResetRequired":{"type":"boolean","description":"Whether the user must reset the password at the next logon. Value:\n- true\n- false (default)\n"},"userName":{"type":"string","description":"The user name.\n"}},"required":["createTime","mfaBindRequired","password","userName"],"inputProperties":{"mfaBindRequired":{"type":"boolean","description":"Specifies whether to forcefully enable multi-factor authentication (MFA) for the RAM user. Valid values:\n- true: forcefully enables MFA for the RAM user. The RAM user must bind an MFA device upon the next logon.\n- false (default): does not forcefully enable MFA for the RAM user.\n"},"password":{"type":"string","description":"The password must meet the Password strength requirements. For more information about password strength setting requirements, see [GetPasswordPolicy](https://help.aliyun.com/document_detail/2337691.html).\n"},"passwordResetRequired":{"type":"boolean","description":"Whether the user must reset the password at the next logon. Value:\n- true\n- false (default)\n"},"userName":{"type":"string","description":"The user name.\n","willReplaceOnChanges":true}},"requiredInputs":["password","userName"],"stateInputs":{"description":"Input properties used for looking up and filtering LoginProfile resources.\n","properties":{"createTime":{"type":"string","description":"Creation time.\n"},"mfaBindRequired":{"type":"boolean","description":"Specifies whether to forcefully enable multi-factor authentication (MFA) for the RAM user. Valid values:\n- true: forcefully enables MFA for the RAM user. The RAM user must bind an MFA device upon the next logon.\n- false (default): does not forcefully enable MFA for the RAM user.\n"},"password":{"type":"string","description":"The password must meet the Password strength requirements. For more information about password strength setting requirements, see [GetPasswordPolicy](https://help.aliyun.com/document_detail/2337691.html).\n"},"passwordResetRequired":{"type":"boolean","description":"Whether the user must reset the password at the next logon. Value:\n- true\n- false (default)\n"},"userName":{"type":"string","description":"The user name.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ram/passwordPolicy:PasswordPolicy":{"description":"Provides a RAM Password Policy resource.\n\nPassword strength information.\n\nFor information about RAM Password Policy and how to use it, see [What is Password Policy](https://next.api.alibabacloud.com/document/Ram/2015-05-01/SetPasswordPolicy).\n\n\u003e **NOTE:** Available since v1.247.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ram.PasswordPolicy(\"default\", {\n    minimumPasswordLength: 8,\n    requireLowercaseCharacters: false,\n    requireNumbers: false,\n    maxPasswordAge: 0,\n    passwordReusePrevention: 1,\n    maxLoginAttemps: 1,\n    hardExpiry: false,\n    requireUppercaseCharacters: false,\n    requireSymbols: false,\n    passwordNotContainUserName: false,\n    minimumPasswordDifferentCharacter: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ram.PasswordPolicy(\"default\",\n    minimum_password_length=8,\n    require_lowercase_characters=False,\n    require_numbers=False,\n    max_password_age=0,\n    password_reuse_prevention=1,\n    max_login_attemps=1,\n    hard_expiry=False,\n    require_uppercase_characters=False,\n    require_symbols=False,\n    password_not_contain_user_name=False,\n    minimum_password_different_character=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ram.PasswordPolicy(\"default\", new()\n    {\n        MinimumPasswordLength = 8,\n        RequireLowercaseCharacters = false,\n        RequireNumbers = false,\n        MaxPasswordAge = 0,\n        PasswordReusePrevention = 1,\n        MaxLoginAttemps = 1,\n        HardExpiry = false,\n        RequireUppercaseCharacters = false,\n        RequireSymbols = false,\n        PasswordNotContainUserName = false,\n        MinimumPasswordDifferentCharacter = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := ram.NewPasswordPolicy(ctx, \"default\", \u0026ram.PasswordPolicyArgs{\n\t\t\tMinimumPasswordLength:             pulumi.Int(8),\n\t\t\tRequireLowercaseCharacters:        pulumi.Bool(false),\n\t\t\tRequireNumbers:                    pulumi.Bool(false),\n\t\t\tMaxPasswordAge:                    pulumi.Int(0),\n\t\t\tPasswordReusePrevention:           pulumi.Int(1),\n\t\t\tMaxLoginAttemps:                   pulumi.Int(1),\n\t\t\tHardExpiry:                        pulumi.Bool(false),\n\t\t\tRequireUppercaseCharacters:        pulumi.Bool(false),\n\t\t\tRequireSymbols:                    pulumi.Bool(false),\n\t\t\tPasswordNotContainUserName:        pulumi.Bool(false),\n\t\t\tMinimumPasswordDifferentCharacter: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.PasswordPolicy;\nimport com.pulumi.alicloud.ram.PasswordPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new PasswordPolicy(\"default\", PasswordPolicyArgs.builder()\n            .minimumPasswordLength(8)\n            .requireLowercaseCharacters(false)\n            .requireNumbers(false)\n            .maxPasswordAge(0)\n            .passwordReusePrevention(1)\n            .maxLoginAttemps(1)\n            .hardExpiry(false)\n            .requireUppercaseCharacters(false)\n            .requireSymbols(false)\n            .passwordNotContainUserName(false)\n            .minimumPasswordDifferentCharacter(1)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ram:PasswordPolicy\n    properties:\n      minimumPasswordLength: '8'\n      requireLowercaseCharacters: false\n      requireNumbers: false\n      maxPasswordAge: '0'\n      passwordReusePrevention: '1'\n      maxLoginAttemps: '1'\n      hardExpiry: false\n      requireUppercaseCharacters: false\n      requireSymbols: false\n      passwordNotContainUserName: false\n      minimumPasswordDifferentCharacter: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.ram.PasswordPolicy`\" pulumi-lang-dotnet=\"`alicloud.ram.PasswordPolicy`\" pulumi-lang-go=\"`ram.PasswordPolicy`\" pulumi-lang-python=\"`ram.PasswordPolicy`\" pulumi-lang-yaml=\"`alicloud.ram.PasswordPolicy`\" pulumi-lang-java=\"`alicloud.ram.PasswordPolicy`\"\u003e`alicloud.ram.PasswordPolicy`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ram.PasswordPolicy`\" pulumi-lang-dotnet=\"`alicloud.ram.PasswordPolicy`\" pulumi-lang-go=\"`ram.PasswordPolicy`\" pulumi-lang-python=\"`ram.PasswordPolicy`\" pulumi-lang-yaml=\"`alicloud.ram.PasswordPolicy`\" pulumi-lang-java=\"`alicloud.ram.PasswordPolicy`\"\u003e`alicloud.ram.PasswordPolicy`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRAM Password Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ram/passwordPolicy:PasswordPolicy example \u003cid\u003e.\n```\n\n","properties":{"hardExpiry":{"type":"boolean","description":"Whether to restrict logon after the password expires. Value:\n- true: After the password expires, you cannot log in to the console. You must reset the password of the RAM user through the main account or a RAM user with administrator permissions to log on normally.\n- false (default): After the password expires, the RAM user can change the password and log on normally.\n"},"maxLoginAttemps":{"type":"integer","description":"Password retry constraint. After entering the wrong password continuously for the set number of times, the account will be locked for one hour.\nValue range: 0~32.\nDefault value: 0, which means that the password retry constraint is not enabled.\n"},"maxPasswordAge":{"type":"integer","description":"Password validity period.\nValue range: 0~1095. Unit: days.\nDefault value: 0, which means never expires.\n"},"minimumPasswordDifferentCharacter":{"type":"integer","description":"The minimum number of unique characters in the password.\nValid values: 0 to 8.\nThe default value is 0, which indicates that no limits are imposed on the number of unique characters in a password.\n"},"minimumPasswordLength":{"type":"integer","description":"The minimum number of characters in the password.\nValid values: 8 to 32. Default value: 8.\n"},"passwordNotContainUserName":{"type":"boolean","description":"Whether the user name is not allowed in the password. Value:\n- true: The password cannot contain the user name.\n- false (default): The user name can be included in the password.\n"},"passwordReusePrevention":{"type":"integer","description":"Historical password check policy.\nDo not use the previous N Passwords. The value range of N is 0 to 24.\nDefault value: 0, indicating that the historical password check policy is not enabled.\n"},"requireLowercaseCharacters":{"type":"boolean","description":"Specifies whether the password must contain lowercase letters. Valid values:\n- true\n- false (default)\n"},"requireNumbers":{"type":"boolean","description":"Specifies whether the password must contain digits. Valid values:\n- true\n- false (default)\n"},"requireSymbols":{"type":"boolean","description":"Specifies whether the password must contain special characters. Valid values:\n- true\n- false (default)\n"},"requireUppercaseCharacters":{"type":"boolean","description":"Specifies whether the password must contain uppercase letters. Valid values:\n- true\n- false (default)\n"}},"required":["minimumPasswordLength"],"inputProperties":{"hardExpiry":{"type":"boolean","description":"Whether to restrict logon after the password expires. Value:\n- true: After the password expires, you cannot log in to the console. You must reset the password of the RAM user through the main account or a RAM user with administrator permissions to log on normally.\n- false (default): After the password expires, the RAM user can change the password and log on normally.\n"},"maxLoginAttemps":{"type":"integer","description":"Password retry constraint. After entering the wrong password continuously for the set number of times, the account will be locked for one hour.\nValue range: 0~32.\nDefault value: 0, which means that the password retry constraint is not enabled.\n"},"maxPasswordAge":{"type":"integer","description":"Password validity period.\nValue range: 0~1095. Unit: days.\nDefault value: 0, which means never expires.\n"},"minimumPasswordDifferentCharacter":{"type":"integer","description":"The minimum number of unique characters in the password.\nValid values: 0 to 8.\nThe default value is 0, which indicates that no limits are imposed on the number of unique characters in a password.\n"},"minimumPasswordLength":{"type":"integer","description":"The minimum number of characters in the password.\nValid values: 8 to 32. Default value: 8.\n"},"passwordNotContainUserName":{"type":"boolean","description":"Whether the user name is not allowed in the password. Value:\n- true: The password cannot contain the user name.\n- false (default): The user name can be included in the password.\n"},"passwordReusePrevention":{"type":"integer","description":"Historical password check policy.\nDo not use the previous N Passwords. The value range of N is 0 to 24.\nDefault value: 0, indicating that the historical password check policy is not enabled.\n"},"requireLowercaseCharacters":{"type":"boolean","description":"Specifies whether the password must contain lowercase letters. Valid values:\n- true\n- false (default)\n"},"requireNumbers":{"type":"boolean","description":"Specifies whether the password must contain digits. Valid values:\n- true\n- false (default)\n"},"requireSymbols":{"type":"boolean","description":"Specifies whether the password must contain special characters. Valid values:\n- true\n- false (default)\n"},"requireUppercaseCharacters":{"type":"boolean","description":"Specifies whether the password must contain uppercase letters. Valid values:\n- true\n- false (default)\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering PasswordPolicy resources.\n","properties":{"hardExpiry":{"type":"boolean","description":"Whether to restrict logon after the password expires. Value:\n- true: After the password expires, you cannot log in to the console. You must reset the password of the RAM user through the main account or a RAM user with administrator permissions to log on normally.\n- false (default): After the password expires, the RAM user can change the password and log on normally.\n"},"maxLoginAttemps":{"type":"integer","description":"Password retry constraint. After entering the wrong password continuously for the set number of times, the account will be locked for one hour.\nValue range: 0~32.\nDefault value: 0, which means that the password retry constraint is not enabled.\n"},"maxPasswordAge":{"type":"integer","description":"Password validity period.\nValue range: 0~1095. Unit: days.\nDefault value: 0, which means never expires.\n"},"minimumPasswordDifferentCharacter":{"type":"integer","description":"The minimum number of unique characters in the password.\nValid values: 0 to 8.\nThe default value is 0, which indicates that no limits are imposed on the number of unique characters in a password.\n"},"minimumPasswordLength":{"type":"integer","description":"The minimum number of characters in the password.\nValid values: 8 to 32. Default value: 8.\n"},"passwordNotContainUserName":{"type":"boolean","description":"Whether the user name is not allowed in the password. Value:\n- true: The password cannot contain the user name.\n- false (default): The user name can be included in the password.\n"},"passwordReusePrevention":{"type":"integer","description":"Historical password check policy.\nDo not use the previous N Passwords. The value range of N is 0 to 24.\nDefault value: 0, indicating that the historical password check policy is not enabled.\n"},"requireLowercaseCharacters":{"type":"boolean","description":"Specifies whether the password must contain lowercase letters. Valid values:\n- true\n- false (default)\n"},"requireNumbers":{"type":"boolean","description":"Specifies whether the password must contain digits. Valid values:\n- true\n- false (default)\n"},"requireSymbols":{"type":"boolean","description":"Specifies whether the password must contain special characters. Valid values:\n- true\n- false (default)\n"},"requireUppercaseCharacters":{"type":"boolean","description":"Specifies whether the password must contain uppercase letters. Valid values:\n- true\n- false (default)\n"}},"type":"object"}},"alicloud:ram/policy:Policy":{"description":"Provides a RAM Policy resource.\n\n\n\nFor information about RAM Policy and how to use it, see [What is Policy](https://www.alibabacloud.com/help/en/ram/developer-reference/api-ram-2015-05-01-createpolicy).\n\n\u003e **NOTE:** Available since v1.0.0.\n\n\u003e **NOTE:** When you want to destroy this resource forcefully(means remove all the relationships associated with it automatically and then destroy it) without set \u003cspan pulumi-lang-nodejs=\"`force`\" pulumi-lang-dotnet=\"`Force`\" pulumi-lang-go=\"`force`\" pulumi-lang-python=\"`force`\" pulumi-lang-yaml=\"`force`\" pulumi-lang-java=\"`force`\"\u003e`force`\u003c/span\u003e  with \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e at beginning, you need add `force = true` to configuration file and run `pulumi preview`, then you can delete resource forcefully.\n\n\u003e **NOTE:** Each strategy can have a maximum of five versions. When the number of versions reaches five, the oldest version is not automatically deleted by default. You need to explicitly set \u003cspan pulumi-lang-nodejs=\"`rotateStrategy \" pulumi-lang-dotnet=\"`RotateStrategy \" pulumi-lang-go=\"`rotateStrategy \" pulumi-lang-python=\"`rotate_strategy \" pulumi-lang-yaml=\"`rotateStrategy \" pulumi-lang-java=\"`rotateStrategy \"\u003e`rotate_strategy \u003c/span\u003e= DeleteOldestNonDefaultVersionWhenLimitExceeded` to automatically delete the oldest version.\n\n\u003e **NOTE:** If the policy has multiple versions, all non-default versions will be deleted first when deleting policy.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\n// Create a new RAM Policy.\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst policy = new alicloud.ram.Policy(\"policy\", {\n    policyName: `tf-example-${_default.result}`,\n    policyDocument: `  {\n    \\\\\"Statement\\\\\": [\n      {\n        \\\\\"Action\\\\\": [\n          \\\\\"oss:ListObjects\\\\\",\n          \\\\\"oss:GetObject\\\\\"\n        ],\n        \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n        \\\\\"Resource\\\\\": [\n          \\\\\"acs:oss:*:*:mybucket\\\\\",\n          \\\\\"acs:oss:*:*:mybucket/*\\\\\"\n        ]\n      }\n    ],\n      \\\\\"Version\\\\\": \\\\\"1\\\\\"\n  }\n`,\n    description: \"this is a policy test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\n# Create a new RAM Policy.\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\npolicy = alicloud.ram.Policy(\"policy\",\n    policy_name=f\"tf-example-{default['result']}\",\n    policy_document=\"\"\"  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": [\n          \\\"oss:ListObjects\\\",\n          \\\"oss:GetObject\\\"\n        ],\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Resource\\\": [\n          \\\"acs:oss:*:*:mybucket\\\",\n          \\\"acs:oss:*:*:mybucket/*\\\"\n        ]\n      }\n    ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n\"\"\",\n    description=\"this is a policy test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new RAM Policy.\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var policy = new AliCloud.Ram.Policy(\"policy\", new()\n    {\n        PolicyName = $\"tf-example-{@default.Result}\",\n        PolicyDocument = @\"  {\n    \\\"\"Statement\\\"\": [\n      {\n        \\\"\"Action\\\"\": [\n          \\\"\"oss:ListObjects\\\"\",\n          \\\"\"oss:GetObject\\\"\"\n        ],\n        \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n        \\\"\"Resource\\\"\": [\n          \\\"\"acs:oss:*:*:mybucket\\\"\",\n          \\\"\"acs:oss:*:*:mybucket/*\\\"\"\n        ]\n      }\n    ],\n      \\\"\"Version\\\"\": \\\"\"1\\\"\"\n  }\n\",\n        Description = \"this is a policy test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new RAM Policy.\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewPolicy(ctx, \"policy\", \u0026ram.PolicyArgs{\n\t\t\tPolicyName: pulumi.Sprintf(\"tf-example-%v\", _default.Result),\n\t\t\tPolicyDocument: pulumi.String(`  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": [\n          \\\"oss:ListObjects\\\",\n          \\\"oss:GetObject\\\"\n        ],\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Resource\\\": [\n          \\\"acs:oss:*:*:mybucket\\\",\n          \\\"acs:oss:*:*:mybucket/*\\\"\n        ]\n      }\n    ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n`),\n\t\t\tDescription: pulumi.String(\"this is a policy test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ram.Policy;\nimport com.pulumi.alicloud.ram.PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new RAM Policy.\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var policy = new Policy(\"policy\", PolicyArgs.builder()\n            .policyName(String.format(\"tf-example-%s\", default_.result()))\n            .policyDocument(\"\"\"\n  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": [\n          \\\"oss:ListObjects\\\",\n          \\\"oss:GetObject\\\"\n        ],\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Resource\\\": [\n          \\\"acs:oss:*:*:mybucket\\\",\n          \\\"acs:oss:*:*:mybucket/*\\\"\n        ]\n      }\n    ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n            \"\"\")\n            .description(\"this is a policy test\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new RAM Policy.\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  policy:\n    type: alicloud:ram:Policy\n    properties:\n      policyName: tf-example-${default.result}\n      policyDocument: |2\n          {\n            \\\"Statement\\\": [\n              {\n                \\\"Action\\\": [\n                  \\\"oss:ListObjects\\\",\n                  \\\"oss:GetObject\\\"\n                ],\n                \\\"Effect\\\": \\\"Allow\\\",\n                \\\"Resource\\\": [\n                  \\\"acs:oss:*:*:mybucket\\\",\n                  \\\"acs:oss:*:*:mybucket/*\\\"\n                ]\n              }\n            ],\n              \\\"Version\\\": \\\"1\\\"\n          }\n      description: this is a policy test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRAM Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ram/policy:Policy example \u003cid\u003e\n```\n\n","properties":{"attachmentCount":{"type":"integer","description":"Number of attachments of the policy.\n"},"createTime":{"type":"string","description":"(Available since v1.246.0) The create time of the policy.\n"},"defaultVersion":{"type":"string","description":"The default version ID of the policy.\n"},"description":{"type":"string","description":"The description of the policy. It can be 1 to 1024 characters in length.\n"},"document":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e has been deprecated from provider version 1.114.0. New field \u003cspan pulumi-lang-nodejs=\"`policyDocument`\" pulumi-lang-dotnet=\"`PolicyDocument`\" pulumi-lang-go=\"`policyDocument`\" pulumi-lang-python=\"`policy_document`\" pulumi-lang-yaml=\"`policyDocument`\" pulumi-lang-java=\"`policyDocument`\"\u003e`policy_document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'document' has been deprecated from provider version 1.114.0. New field 'policy_document' instead."},"force":{"type":"boolean","description":"Specifies whether to force delete the Policy. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.114.0. New field \u003cspan pulumi-lang-nodejs=\"`policyName`\" pulumi-lang-dotnet=\"`PolicyName`\" pulumi-lang-go=\"`policyName`\" pulumi-lang-python=\"`policy_name`\" pulumi-lang-yaml=\"`policyName`\" pulumi-lang-java=\"`policyName`\"\u003e`policy_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.114.0. New field 'policy_name' instead."},"policyDocument":{"type":"string","description":"The content of the policy. The maximum length is 6144 bytes.\n"},"policyName":{"type":"string","description":"The policy name. It can be 1 to 128 characters in length and can contain English letters, digits, and dashes (-).\n"},"rotateStrategy":{"type":"string","description":"The automatic rotation mechanism of policy versions can delete historical policy versions. The default value is None. Valid values:\n- `None`: Turn off the rotation mechanism.\n- `DeleteOldestNonDefaultVersionWhenLimitExceeded`: When the number of permission policy versions exceeds the limit, the oldest and inactive version is deleted.\n"},"statements":{"type":"array","items":{"$ref":"#/types/alicloud:ram/PolicyStatement:PolicyStatement"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`statement`\" pulumi-lang-dotnet=\"`Statement`\" pulumi-lang-go=\"`statement`\" pulumi-lang-python=\"`statement`\" pulumi-lang-yaml=\"`statement`\" pulumi-lang-java=\"`statement`\"\u003e`statement`\u003c/span\u003e has been deprecated from provider version 1.49.0. New field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e instead. See \u003cspan pulumi-lang-nodejs=\"`statement`\" pulumi-lang-dotnet=\"`Statement`\" pulumi-lang-go=\"`statement`\" pulumi-lang-python=\"`statement`\" pulumi-lang-yaml=\"`statement`\" pulumi-lang-java=\"`statement`\"\u003e`statement`\u003c/span\u003e below.\n","deprecationMessage":"Field 'statement' has been deprecated from version 1.49.0, and use field 'document' to replace. "},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags on the policy.\n"},"type":{"type":"string","description":"The type of the policy.\n"},"version":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e has been deprecated from provider version 1.49.0. New field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'version' has been deprecated from version 1.49.0, and use field 'document' to replace. "},"versionId":{"type":"string","description":"The ID of the default policy version.\n"}},"required":["attachmentCount","createTime","defaultVersion","document","name","policyDocument","policyName","statements","type","versionId"],"inputProperties":{"description":{"type":"string","description":"The description of the policy. It can be 1 to 1024 characters in length.\n"},"document":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e has been deprecated from provider version 1.114.0. New field \u003cspan pulumi-lang-nodejs=\"`policyDocument`\" pulumi-lang-dotnet=\"`PolicyDocument`\" pulumi-lang-go=\"`policyDocument`\" pulumi-lang-python=\"`policy_document`\" pulumi-lang-yaml=\"`policyDocument`\" pulumi-lang-java=\"`policyDocument`\"\u003e`policy_document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'document' has been deprecated from provider version 1.114.0. New field 'policy_document' instead."},"force":{"type":"boolean","description":"Specifies whether to force delete the Policy. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.114.0. New field \u003cspan pulumi-lang-nodejs=\"`policyName`\" pulumi-lang-dotnet=\"`PolicyName`\" pulumi-lang-go=\"`policyName`\" pulumi-lang-python=\"`policy_name`\" pulumi-lang-yaml=\"`policyName`\" pulumi-lang-java=\"`policyName`\"\u003e`policy_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.114.0. New field 'policy_name' instead.","willReplaceOnChanges":true},"policyDocument":{"type":"string","description":"The content of the policy. The maximum length is 6144 bytes.\n"},"policyName":{"type":"string","description":"The policy name. It can be 1 to 128 characters in length and can contain English letters, digits, and dashes (-).\n","willReplaceOnChanges":true},"rotateStrategy":{"type":"string","description":"The automatic rotation mechanism of policy versions can delete historical policy versions. The default value is None. Valid values:\n- `None`: Turn off the rotation mechanism.\n- `DeleteOldestNonDefaultVersionWhenLimitExceeded`: When the number of permission policy versions exceeds the limit, the oldest and inactive version is deleted.\n"},"statements":{"type":"array","items":{"$ref":"#/types/alicloud:ram/PolicyStatement:PolicyStatement"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`statement`\" pulumi-lang-dotnet=\"`Statement`\" pulumi-lang-go=\"`statement`\" pulumi-lang-python=\"`statement`\" pulumi-lang-yaml=\"`statement`\" pulumi-lang-java=\"`statement`\"\u003e`statement`\u003c/span\u003e has been deprecated from provider version 1.49.0. New field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e instead. See \u003cspan pulumi-lang-nodejs=\"`statement`\" pulumi-lang-dotnet=\"`Statement`\" pulumi-lang-go=\"`statement`\" pulumi-lang-python=\"`statement`\" pulumi-lang-yaml=\"`statement`\" pulumi-lang-java=\"`statement`\"\u003e`statement`\u003c/span\u003e below.\n","deprecationMessage":"Field 'statement' has been deprecated from version 1.49.0, and use field 'document' to replace. "},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags on the policy.\n"},"version":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e has been deprecated from provider version 1.49.0. New field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'version' has been deprecated from version 1.49.0, and use field 'document' to replace. "}},"stateInputs":{"description":"Input properties used for looking up and filtering Policy resources.\n","properties":{"attachmentCount":{"type":"integer","description":"Number of attachments of the policy.\n"},"createTime":{"type":"string","description":"(Available since v1.246.0) The create time of the policy.\n"},"defaultVersion":{"type":"string","description":"The default version ID of the policy.\n"},"description":{"type":"string","description":"The description of the policy. It can be 1 to 1024 characters in length.\n"},"document":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e has been deprecated from provider version 1.114.0. New field \u003cspan pulumi-lang-nodejs=\"`policyDocument`\" pulumi-lang-dotnet=\"`PolicyDocument`\" pulumi-lang-go=\"`policyDocument`\" pulumi-lang-python=\"`policy_document`\" pulumi-lang-yaml=\"`policyDocument`\" pulumi-lang-java=\"`policyDocument`\"\u003e`policy_document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'document' has been deprecated from provider version 1.114.0. New field 'policy_document' instead."},"force":{"type":"boolean","description":"Specifies whether to force delete the Policy. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.114.0. New field \u003cspan pulumi-lang-nodejs=\"`policyName`\" pulumi-lang-dotnet=\"`PolicyName`\" pulumi-lang-go=\"`policyName`\" pulumi-lang-python=\"`policy_name`\" pulumi-lang-yaml=\"`policyName`\" pulumi-lang-java=\"`policyName`\"\u003e`policy_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.114.0. New field 'policy_name' instead.","willReplaceOnChanges":true},"policyDocument":{"type":"string","description":"The content of the policy. The maximum length is 6144 bytes.\n"},"policyName":{"type":"string","description":"The policy name. It can be 1 to 128 characters in length and can contain English letters, digits, and dashes (-).\n","willReplaceOnChanges":true},"rotateStrategy":{"type":"string","description":"The automatic rotation mechanism of policy versions can delete historical policy versions. The default value is None. Valid values:\n- `None`: Turn off the rotation mechanism.\n- `DeleteOldestNonDefaultVersionWhenLimitExceeded`: When the number of permission policy versions exceeds the limit, the oldest and inactive version is deleted.\n"},"statements":{"type":"array","items":{"$ref":"#/types/alicloud:ram/PolicyStatement:PolicyStatement"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`statement`\" pulumi-lang-dotnet=\"`Statement`\" pulumi-lang-go=\"`statement`\" pulumi-lang-python=\"`statement`\" pulumi-lang-yaml=\"`statement`\" pulumi-lang-java=\"`statement`\"\u003e`statement`\u003c/span\u003e has been deprecated from provider version 1.49.0. New field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e instead. See \u003cspan pulumi-lang-nodejs=\"`statement`\" pulumi-lang-dotnet=\"`Statement`\" pulumi-lang-go=\"`statement`\" pulumi-lang-python=\"`statement`\" pulumi-lang-yaml=\"`statement`\" pulumi-lang-java=\"`statement`\"\u003e`statement`\u003c/span\u003e below.\n","deprecationMessage":"Field 'statement' has been deprecated from version 1.49.0, and use field 'document' to replace. "},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags on the policy.\n"},"type":{"type":"string","description":"The type of the policy.\n"},"version":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e has been deprecated from provider version 1.49.0. New field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'version' has been deprecated from version 1.49.0, and use field 'document' to replace. "},"versionId":{"type":"string","description":"The ID of the default policy version.\n"}},"type":"object"}},"alicloud:ram/role:Role":{"description":"Provides a RAM Role resource.\n\n\n\nFor information about RAM Role and how to use it, see [What is Role](https://www.alibabacloud.com/help/en/ram/developer-reference/api-ram-2015-05-01-createrole).\n\n\u003e **NOTE:** Available since v1.0.0.\n\n\u003e **NOTE:** When you want to destroy this resource forcefully(means remove all the relationships associated with it automatically and then destroy it) without set \u003cspan pulumi-lang-nodejs=\"`force`\" pulumi-lang-dotnet=\"`Force`\" pulumi-lang-go=\"`force`\" pulumi-lang-python=\"`force`\" pulumi-lang-yaml=\"`force`\" pulumi-lang-java=\"`force`\"\u003e`force`\u003c/span\u003e  with \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e at beginning, you need add `force = true` to configuration file and run `pulumi preview`, then you can delete resource forcefully.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    roleName: `terraform-example-${_default.result}`,\n    assumeRolePolicyDocument: `  {\n    \\\\\"Statement\\\\\": [\n      {\n        \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n        \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n        \\\\\"Principal\\\\\": {\n          \\\\\"Service\\\\\": [\n            \\\\\"apigateway.aliyuncs.com\\\\\",\n            \\\\\"ecs.aliyuncs.com\\\\\"\n          ]\n        }\n      }\n    ],\n    \\\\\"Version\\\\\": \\\\\"1\\\\\"\n  }\n`,\n    description: \"this is a role test.\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_role = alicloud.ram.Role(\"default\",\n    role_name=f\"terraform-example-{default['result']}\",\n    assume_role_policy_document=\"\"\"  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"apigateway.aliyuncs.com\\\",\n            \\\"ecs.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n\"\"\",\n    description=\"this is a role test.\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        RoleName = $\"terraform-example-{@default.Result}\",\n        AssumeRolePolicyDocument = @\"  {\n    \\\"\"Statement\\\"\": [\n      {\n        \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n        \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n        \\\"\"Principal\\\"\": {\n          \\\"\"Service\\\"\": [\n            \\\"\"apigateway.aliyuncs.com\\\"\",\n            \\\"\"ecs.aliyuncs.com\\\"\"\n          ]\n        }\n      }\n    ],\n    \\\"\"Version\\\"\": \\\"\"1\\\"\"\n  }\n\",\n        Description = \"this is a role test.\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tRoleName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tAssumeRolePolicyDocument: pulumi.String(`  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"apigateway.aliyuncs.com\\\",\n            \\\"ecs.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n`),\n\t\t\tDescription: pulumi.String(\"this is a role test.\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .roleName(String.format(\"terraform-example-%s\", default_.result()))\n            .assumeRolePolicyDocument(\"\"\"\n  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"apigateway.aliyuncs.com\\\",\n            \\\"ecs.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n            \"\"\")\n            .description(\"this is a role test.\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultRole:\n    type: alicloud:ram:Role\n    name: default\n    properties:\n      roleName: terraform-example-${default.result}\n      assumeRolePolicyDocument: |2\n          {\n            \\\"Statement\\\": [\n              {\n                \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                \\\"Effect\\\": \\\"Allow\\\",\n                \\\"Principal\\\": {\n                  \\\"Service\\\": [\n                    \\\"apigateway.aliyuncs.com\\\",\n                    \\\"ecs.aliyuncs.com\\\"\n                  ]\n                }\n              }\n            ],\n            \\\"Version\\\": \\\"1\\\"\n          }\n      description: this is a role test.\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRAM Role can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ram/role:Role example \u003cid\u003e\n```\n\n","properties":{"arn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the RAM role.\n"},"assumeRolePolicyDocument":{"type":"string","description":"The trust policy that specifies one or more trusted entities to assume the RAM role. The trusted entities can be Alibaba Cloud accounts, Alibaba Cloud services, or identity providers (IdPs).\n"},"createTime":{"type":"string","description":"(Available since v1.252.0) The time when the RAM role was created.\n"},"description":{"type":"string","description":"The description of the RAM role.\n"},"document":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e has been deprecated from provider version 1.252.0. New field \u003cspan pulumi-lang-nodejs=\"`assumeRolePolicyDocument`\" pulumi-lang-dotnet=\"`AssumeRolePolicyDocument`\" pulumi-lang-go=\"`assumeRolePolicyDocument`\" pulumi-lang-python=\"`assume_role_policy_document`\" pulumi-lang-yaml=\"`assumeRolePolicyDocument`\" pulumi-lang-java=\"`assumeRolePolicyDocument`\"\u003e`assume_role_policy_document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'document' has been deprecated from provider version 1.252.0. New field 'assume_role_policy_document' instead."},"force":{"type":"boolean","description":"Specifies whether to force delete the Role. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"maxSessionDuration":{"type":"integer","description":"The maximum session time of the RAM role. Default value: \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`43200`\" pulumi-lang-dotnet=\"`43200`\" pulumi-lang-go=\"`43200`\" pulumi-lang-python=\"`43200`\" pulumi-lang-yaml=\"`43200`\" pulumi-lang-java=\"`43200`\"\u003e`43200`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.252.0. New field \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.252.0. New field 'role_name' instead."},"ramUsers":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`ramUsers`\" pulumi-lang-dotnet=\"`RamUsers`\" pulumi-lang-go=\"`ramUsers`\" pulumi-lang-python=\"`ram_users`\" pulumi-lang-yaml=\"`ramUsers`\" pulumi-lang-java=\"`ramUsers`\"\u003e`ram_users`\u003c/span\u003e has been deprecated from provider version 1.49.0. New field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'ram_users' has been deprecated from provider version 1.49.0. New field 'document' instead."},"roleId":{"type":"string","description":"The ID of the RAM role.\n"},"roleName":{"type":"string","description":"The name of the RAM role.\n"},"services":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`services`\" pulumi-lang-dotnet=\"`Services`\" pulumi-lang-go=\"`services`\" pulumi-lang-python=\"`services`\" pulumi-lang-yaml=\"`services`\" pulumi-lang-java=\"`services`\"\u003e`services`\u003c/span\u003e has been deprecated from provider version 1.49.0. New field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'services' has been deprecated from provider version 1.49.0. New field 'document' instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags for the role.\n"},"version":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e has been deprecated from provider version 1.49.0. New field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'version' has been deprecated from provider version 1.49.0. New field 'document' instead."}},"required":["arn","assumeRolePolicyDocument","createTime","document","maxSessionDuration","name","ramUsers","roleId","roleName","services"],"inputProperties":{"assumeRolePolicyDocument":{"type":"string","description":"The trust policy that specifies one or more trusted entities to assume the RAM role. The trusted entities can be Alibaba Cloud accounts, Alibaba Cloud services, or identity providers (IdPs).\n"},"description":{"type":"string","description":"The description of the RAM role.\n"},"document":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e has been deprecated from provider version 1.252.0. New field \u003cspan pulumi-lang-nodejs=\"`assumeRolePolicyDocument`\" pulumi-lang-dotnet=\"`AssumeRolePolicyDocument`\" pulumi-lang-go=\"`assumeRolePolicyDocument`\" pulumi-lang-python=\"`assume_role_policy_document`\" pulumi-lang-yaml=\"`assumeRolePolicyDocument`\" pulumi-lang-java=\"`assumeRolePolicyDocument`\"\u003e`assume_role_policy_document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'document' has been deprecated from provider version 1.252.0. New field 'assume_role_policy_document' instead."},"force":{"type":"boolean","description":"Specifies whether to force delete the Role. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"maxSessionDuration":{"type":"integer","description":"The maximum session time of the RAM role. Default value: \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`43200`\" pulumi-lang-dotnet=\"`43200`\" pulumi-lang-go=\"`43200`\" pulumi-lang-python=\"`43200`\" pulumi-lang-yaml=\"`43200`\" pulumi-lang-java=\"`43200`\"\u003e`43200`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.252.0. New field \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.252.0. New field 'role_name' instead.","willReplaceOnChanges":true},"ramUsers":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`ramUsers`\" pulumi-lang-dotnet=\"`RamUsers`\" pulumi-lang-go=\"`ramUsers`\" pulumi-lang-python=\"`ram_users`\" pulumi-lang-yaml=\"`ramUsers`\" pulumi-lang-java=\"`ramUsers`\"\u003e`ram_users`\u003c/span\u003e has been deprecated from provider version 1.49.0. New field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'ram_users' has been deprecated from provider version 1.49.0. New field 'document' instead."},"roleName":{"type":"string","description":"The name of the RAM role.\n","willReplaceOnChanges":true},"services":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`services`\" pulumi-lang-dotnet=\"`Services`\" pulumi-lang-go=\"`services`\" pulumi-lang-python=\"`services`\" pulumi-lang-yaml=\"`services`\" pulumi-lang-java=\"`services`\"\u003e`services`\u003c/span\u003e has been deprecated from provider version 1.49.0. New field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'services' has been deprecated from provider version 1.49.0. New field 'document' instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags for the role.\n"},"version":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e has been deprecated from provider version 1.49.0. New field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'version' has been deprecated from provider version 1.49.0. New field 'document' instead."}},"stateInputs":{"description":"Input properties used for looking up and filtering Role resources.\n","properties":{"arn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the RAM role.\n"},"assumeRolePolicyDocument":{"type":"string","description":"The trust policy that specifies one or more trusted entities to assume the RAM role. The trusted entities can be Alibaba Cloud accounts, Alibaba Cloud services, or identity providers (IdPs).\n"},"createTime":{"type":"string","description":"(Available since v1.252.0) The time when the RAM role was created.\n"},"description":{"type":"string","description":"The description of the RAM role.\n"},"document":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e has been deprecated from provider version 1.252.0. New field \u003cspan pulumi-lang-nodejs=\"`assumeRolePolicyDocument`\" pulumi-lang-dotnet=\"`AssumeRolePolicyDocument`\" pulumi-lang-go=\"`assumeRolePolicyDocument`\" pulumi-lang-python=\"`assume_role_policy_document`\" pulumi-lang-yaml=\"`assumeRolePolicyDocument`\" pulumi-lang-java=\"`assumeRolePolicyDocument`\"\u003e`assume_role_policy_document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'document' has been deprecated from provider version 1.252.0. New field 'assume_role_policy_document' instead."},"force":{"type":"boolean","description":"Specifies whether to force delete the Role. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"maxSessionDuration":{"type":"integer","description":"The maximum session time of the RAM role. Default value: \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`43200`\" pulumi-lang-dotnet=\"`43200`\" pulumi-lang-go=\"`43200`\" pulumi-lang-python=\"`43200`\" pulumi-lang-yaml=\"`43200`\" pulumi-lang-java=\"`43200`\"\u003e`43200`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.252.0. New field \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.252.0. New field 'role_name' instead.","willReplaceOnChanges":true},"ramUsers":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`ramUsers`\" pulumi-lang-dotnet=\"`RamUsers`\" pulumi-lang-go=\"`ramUsers`\" pulumi-lang-python=\"`ram_users`\" pulumi-lang-yaml=\"`ramUsers`\" pulumi-lang-java=\"`ramUsers`\"\u003e`ram_users`\u003c/span\u003e has been deprecated from provider version 1.49.0. New field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'ram_users' has been deprecated from provider version 1.49.0. New field 'document' instead."},"roleId":{"type":"string","description":"The ID of the RAM role.\n"},"roleName":{"type":"string","description":"The name of the RAM role.\n","willReplaceOnChanges":true},"services":{"type":"array","items":{"type":"string"},"description":"Field \u003cspan pulumi-lang-nodejs=\"`services`\" pulumi-lang-dotnet=\"`Services`\" pulumi-lang-go=\"`services`\" pulumi-lang-python=\"`services`\" pulumi-lang-yaml=\"`services`\" pulumi-lang-java=\"`services`\"\u003e`services`\u003c/span\u003e has been deprecated from provider version 1.49.0. New field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'services' has been deprecated from provider version 1.49.0. New field 'document' instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags for the role.\n"},"version":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e has been deprecated from provider version 1.49.0. New field \u003cspan pulumi-lang-nodejs=\"`document`\" pulumi-lang-dotnet=\"`Document`\" pulumi-lang-go=\"`document`\" pulumi-lang-python=\"`document`\" pulumi-lang-yaml=\"`document`\" pulumi-lang-java=\"`document`\"\u003e`document`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'version' has been deprecated from provider version 1.49.0. New field 'document' instead."}},"type":"object"}},"alicloud:ram/roleAttachment:RoleAttachment":{"description":"Provides a RAM role attachment resource to bind role for several ECS instances.\n\n\u003e **NOTE:** Deprecated since v1.250.0.\n\n\u003e **DEPRECATED:** This resource has been deprecated from version `1.250.0`. Please use new resource alicloud_ecs_ram_role_attachment.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 2,\n    memorySize: 8,\n    instanceTypeFamily: \"ecs.g6\",\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"ecsInstanceVPCExample\";\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    securityGroupName: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultSecurityGroupRule = new alicloud.ecs.SecurityGroupRule(\"default\", {\n    type: \"ingress\",\n    ipProtocol: \"tcp\",\n    nicType: \"intranet\",\n    policy: \"accept\",\n    portRange: \"22/22\",\n    priority: 1,\n    securityGroupId: defaultSecurityGroup.id,\n    cidrIp: \"172.16.0.0/24\",\n});\nconst foo = new alicloud.ecs.Instance(\"foo\", {\n    vswitchId: defaultSwitch.id,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    systemDiskCategory: \"cloud_efficiency\",\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 5,\n    securityGroups: [defaultSecurityGroup.id],\n    instanceName: name,\n});\nconst role = new alicloud.ram.Role(\"role\", {\n    name: \"terraform-example\",\n    document: `  {\n    \\\\\"Statement\\\\\": [\n      {\n        \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n        \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n        \\\\\"Principal\\\\\": {\n          \\\\\"Service\\\\\": [\n            \\\\\"ecs.aliyuncs.com\\\\\"\n          ]\n        }\n      }\n    ],\n    \\\\\"Version\\\\\": \\\\\"1\\\\\"\n  }\n\n`,\n    description: \"this is a test\",\n    force: true,\n});\nconst attach = new alicloud.ram.RoleAttachment(\"attach\", {\n    roleName: role.name,\n    instanceIds: [foo].map(__item =\u003e __item.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=2,\n    memory_size=8,\n    instance_type_family=\"ecs.g6\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"ecsInstanceVPCExample\"\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    security_group_name=name,\n    vpc_id=default_network.id)\ndefault_security_group_rule = alicloud.ecs.SecurityGroupRule(\"default\",\n    type=\"ingress\",\n    ip_protocol=\"tcp\",\n    nic_type=\"intranet\",\n    policy=\"accept\",\n    port_range=\"22/22\",\n    priority=1,\n    security_group_id=default_security_group.id,\n    cidr_ip=\"172.16.0.0/24\")\nfoo = alicloud.ecs.Instance(\"foo\",\n    vswitch_id=default_switch.id,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    system_disk_category=\"cloud_efficiency\",\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=5,\n    security_groups=[default_security_group.id],\n    instance_name=name)\nrole = alicloud.ram.Role(\"role\",\n    name=\"terraform-example\",\n    document=\"\"\"  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"ecs.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n\n\"\"\",\n    description=\"this is a test\",\n    force=True)\nattach = alicloud.ram.RoleAttachment(\"attach\",\n    role_name=role.name,\n    instance_ids=[__item.id for __item in [foo]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 2,\n        MemorySize = 8,\n        InstanceTypeFamily = \"ecs.g6\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"ecsInstanceVPCExample\";\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultSecurityGroupRule = new AliCloud.Ecs.SecurityGroupRule(\"default\", new()\n    {\n        Type = \"ingress\",\n        IpProtocol = \"tcp\",\n        NicType = \"intranet\",\n        Policy = \"accept\",\n        PortRange = \"22/22\",\n        Priority = 1,\n        SecurityGroupId = defaultSecurityGroup.Id,\n        CidrIp = \"172.16.0.0/24\",\n    });\n\n    var foo = new AliCloud.Ecs.Instance(\"foo\", new()\n    {\n        VswitchId = defaultSwitch.Id,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SystemDiskCategory = \"cloud_efficiency\",\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 5,\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        InstanceName = name,\n    });\n\n    var role = new AliCloud.Ram.Role(\"role\", new()\n    {\n        Name = \"terraform-example\",\n        Document = @\"  {\n    \\\"\"Statement\\\"\": [\n      {\n        \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n        \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n        \\\"\"Principal\\\"\": {\n          \\\"\"Service\\\"\": [\n            \\\"\"ecs.aliyuncs.com\\\"\"\n          ]\n        }\n      }\n    ],\n    \\\"\"Version\\\"\": \\\"\"1\\\"\"\n  }\n\n\",\n        Description = \"this is a test\",\n        Force = true,\n    });\n\n    var attach = new AliCloud.Ram.RoleAttachment(\"attach\", new()\n    {\n        RoleName = role.Name,\n        InstanceIds = new[]\n        {\n            foo,\n        }.Select(__item =\u003e __item.Id).ToList(),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableDiskCategory: pulumi.StringRef(\"cloud_efficiency\"),\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\nCpuCoreCount: pulumi.IntRef(2),\nMemorySize: pulumi.Float64Ref(8),\nInstanceTypeFamily: pulumi.StringRef(\"ecs.g6\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\nMostRecent: pulumi.BoolRef(true),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\ncfg := config.New(ctx, \"\")\nname := \"ecsInstanceVPCExample\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"172.16.0.0/24\"),\nZoneId: pulumi.String(_default.Zones[0].Id),\nVswitchName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nSecurityGroupName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\n_, err = ecs.NewSecurityGroupRule(ctx, \"default\", \u0026ecs.SecurityGroupRuleArgs{\nType: pulumi.String(\"ingress\"),\nIpProtocol: pulumi.String(\"tcp\"),\nNicType: pulumi.String(\"intranet\"),\nPolicy: pulumi.String(\"accept\"),\nPortRange: pulumi.String(\"22/22\"),\nPriority: pulumi.Int(1),\nSecurityGroupId: defaultSecurityGroup.ID(),\nCidrIp: pulumi.String(\"172.16.0.0/24\"),\n})\nif err != nil {\nreturn err\n}\nfoo, err := ecs.NewInstance(ctx, \"foo\", \u0026ecs.InstanceArgs{\nVswitchId: defaultSwitch.ID(),\nImageId: pulumi.String(defaultGetImages.Images[0].Id),\nInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nInternetChargeType: pulumi.String(\"PayByTraffic\"),\nInternetMaxBandwidthOut: pulumi.Int(5),\nSecurityGroups: pulumi.StringArray{\ndefaultSecurityGroup.ID(),\n},\nInstanceName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\nrole, err := ram.NewRole(ctx, \"role\", \u0026ram.RoleArgs{\nName: pulumi.String(\"terraform-example\"),\nDocument: pulumi.String(`  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"ecs.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n\n`),\nDescription: pulumi.String(\"this is a test\"),\nForce: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\n_, err = ram.NewRoleAttachment(ctx, \"attach\", \u0026ram.RoleAttachmentArgs{\nRoleName: role.Name,\nInstanceIds: splat0,\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroupRule;\nimport com.pulumi.alicloud.ecs.SecurityGroupRuleArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.ram.RoleAttachment;\nimport com.pulumi.alicloud.ram.RoleAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(2)\n            .memorySize(8)\n            .instanceTypeFamily(\"ecs.g6\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"ecsInstanceVPCExample\");\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultSecurityGroupRule = new SecurityGroupRule(\"defaultSecurityGroupRule\", SecurityGroupRuleArgs.builder()\n            .type(\"ingress\")\n            .ipProtocol(\"tcp\")\n            .nicType(\"intranet\")\n            .policy(\"accept\")\n            .portRange(\"22/22\")\n            .priority(1)\n            .securityGroupId(defaultSecurityGroup.id())\n            .cidrIp(\"172.16.0.0/24\")\n            .build());\n\n        var foo = new Instance(\"foo\", InstanceArgs.builder()\n            .vswitchId(defaultSwitch.id())\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(5)\n            .securityGroups(defaultSecurityGroup.id())\n            .instanceName(name)\n            .build());\n\n        var role = new Role(\"role\", RoleArgs.builder()\n            .name(\"terraform-example\")\n            .document(\"\"\"\n  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"ecs.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n\n            \"\"\")\n            .description(\"this is a test\")\n            .force(true)\n            .build());\n\n        var attach = new RoleAttachment(\"attach\", RoleAttachmentArgs.builder()\n            .roleName(role.name())\n            .instanceIds(foo.stream().map(element -\u003e element.id()).collect(toList()))\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"instanceIds":{"type":"array","items":{"type":"string"},"description":"The list of ECS instance's IDs.\n"},"roleName":{"type":"string","description":"The name of role used to bind. This name can have a string of 1 to 64 characters, must contain only alphanumeric characters or hyphens, such as \"-\", \"_\", and must not begin with a hyphen.\n"}},"required":["instanceIds","roleName"],"inputProperties":{"instanceIds":{"type":"array","items":{"type":"string"},"description":"The list of ECS instance's IDs.\n","willReplaceOnChanges":true},"roleName":{"type":"string","description":"The name of role used to bind. This name can have a string of 1 to 64 characters, must contain only alphanumeric characters or hyphens, such as \"-\", \"_\", and must not begin with a hyphen.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceIds","roleName"],"stateInputs":{"description":"Input properties used for looking up and filtering RoleAttachment resources.\n","properties":{"instanceIds":{"type":"array","items":{"type":"string"},"description":"The list of ECS instance's IDs.\n","willReplaceOnChanges":true},"roleName":{"type":"string","description":"The name of role used to bind. This name can have a string of 1 to 64 characters, must contain only alphanumeric characters or hyphens, such as \"-\", \"_\", and must not begin with a hyphen.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ram/rolePolicyAttachment:RolePolicyAttachment":{"description":"Provides a RAM Role Policy Attachment resource.\n\n\n\nFor information about RAM Role Policy Attachment and how to use it, see [What is Role Policy Attachment](https://next.api.alibabacloud.com/document/Ram/2015-05-01/AttachPolicyToRole).\n\n\u003e **NOTE:** Available since v1.0.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\n// Create a RAM Role Policy attachment.\nconst role = new alicloud.ram.Role(\"role\", {\n    name: \"roleName\",\n    document: `    {\n      \\\\\"Statement\\\\\": [\n        {\n          \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n          \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n          \\\\\"Principal\\\\\": {\n            \\\\\"Service\\\\\": [\n              \\\\\"apigateway.aliyuncs.com\\\\\", \n              \\\\\"ecs.aliyuncs.com\\\\\"\n            ]\n          }\n        }\n      ],\n      \\\\\"Version\\\\\": \\\\\"1\\\\\"\n    }\n`,\n    description: \"this is a role test.\",\n});\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst policy = new alicloud.ram.Policy(\"policy\", {\n    policyName: `tf-example-${_default.result}`,\n    policyDocument: `  {\n    \\\\\"Statement\\\\\": [\n      {\n        \\\\\"Action\\\\\": [\n          \\\\\"oss:ListObjects\\\\\",\n          \\\\\"oss:GetObject\\\\\"\n        ],\n        \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n        \\\\\"Resource\\\\\": [\n          \\\\\"acs:oss:*:*:mybucket\\\\\",\n          \\\\\"acs:oss:*:*:mybucket/*\\\\\"\n        ]\n      }\n    ],\n      \\\\\"Version\\\\\": \\\\\"1\\\\\"\n  }\n`,\n    description: \"this is a policy test\",\n});\nconst attach = new alicloud.ram.RolePolicyAttachment(\"attach\", {\n    policyName: policy.policyName,\n    policyType: policy.type,\n    roleName: role.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\n# Create a RAM Role Policy attachment.\nrole = alicloud.ram.Role(\"role\",\n    name=\"roleName\",\n    document=\"\"\"    {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"apigateway.aliyuncs.com\\\", \n              \\\"ecs.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n    }\n\"\"\",\n    description=\"this is a role test.\")\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\npolicy = alicloud.ram.Policy(\"policy\",\n    policy_name=f\"tf-example-{default['result']}\",\n    policy_document=\"\"\"  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": [\n          \\\"oss:ListObjects\\\",\n          \\\"oss:GetObject\\\"\n        ],\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Resource\\\": [\n          \\\"acs:oss:*:*:mybucket\\\",\n          \\\"acs:oss:*:*:mybucket/*\\\"\n        ]\n      }\n    ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n\"\"\",\n    description=\"this is a policy test\")\nattach = alicloud.ram.RolePolicyAttachment(\"attach\",\n    policy_name=policy.policy_name,\n    policy_type=policy.type,\n    role_name=role.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a RAM Role Policy attachment.\n    var role = new AliCloud.Ram.Role(\"role\", new()\n    {\n        Name = \"roleName\",\n        Document = @\"    {\n      \\\"\"Statement\\\"\": [\n        {\n          \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n          \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n          \\\"\"Principal\\\"\": {\n            \\\"\"Service\\\"\": [\n              \\\"\"apigateway.aliyuncs.com\\\"\", \n              \\\"\"ecs.aliyuncs.com\\\"\"\n            ]\n          }\n        }\n      ],\n      \\\"\"Version\\\"\": \\\"\"1\\\"\"\n    }\n\",\n        Description = \"this is a role test.\",\n    });\n\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var policy = new AliCloud.Ram.Policy(\"policy\", new()\n    {\n        PolicyName = $\"tf-example-{@default.Result}\",\n        PolicyDocument = @\"  {\n    \\\"\"Statement\\\"\": [\n      {\n        \\\"\"Action\\\"\": [\n          \\\"\"oss:ListObjects\\\"\",\n          \\\"\"oss:GetObject\\\"\"\n        ],\n        \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n        \\\"\"Resource\\\"\": [\n          \\\"\"acs:oss:*:*:mybucket\\\"\",\n          \\\"\"acs:oss:*:*:mybucket/*\\\"\"\n        ]\n      }\n    ],\n      \\\"\"Version\\\"\": \\\"\"1\\\"\"\n  }\n\",\n        Description = \"this is a policy test\",\n    });\n\n    var attach = new AliCloud.Ram.RolePolicyAttachment(\"attach\", new()\n    {\n        PolicyName = policy.PolicyName,\n        PolicyType = policy.Type,\n        RoleName = role.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a RAM Role Policy attachment.\n\t\trole, err := ram.NewRole(ctx, \"role\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.String(\"roleName\"),\n\t\t\tDocument: pulumi.String(`    {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"apigateway.aliyuncs.com\\\", \n              \\\"ecs.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n    }\n`),\n\t\t\tDescription: pulumi.String(\"this is a role test.\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicy, err := ram.NewPolicy(ctx, \"policy\", \u0026ram.PolicyArgs{\n\t\t\tPolicyName: pulumi.Sprintf(\"tf-example-%v\", _default.Result),\n\t\t\tPolicyDocument: pulumi.String(`  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": [\n          \\\"oss:ListObjects\\\",\n          \\\"oss:GetObject\\\"\n        ],\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Resource\\\": [\n          \\\"acs:oss:*:*:mybucket\\\",\n          \\\"acs:oss:*:*:mybucket/*\\\"\n        ]\n      }\n    ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n`),\n\t\t\tDescription: pulumi.String(\"this is a policy test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewRolePolicyAttachment(ctx, \"attach\", \u0026ram.RolePolicyAttachmentArgs{\n\t\t\tPolicyName: policy.PolicyName,\n\t\t\tPolicyType: policy.Type,\n\t\t\tRoleName:   role.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ram.Policy;\nimport com.pulumi.alicloud.ram.PolicyArgs;\nimport com.pulumi.alicloud.ram.RolePolicyAttachment;\nimport com.pulumi.alicloud.ram.RolePolicyAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a RAM Role Policy attachment.\n        var role = new Role(\"role\", RoleArgs.builder()\n            .name(\"roleName\")\n            .document(\"\"\"\n    {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"apigateway.aliyuncs.com\\\", \n              \\\"ecs.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n    }\n            \"\"\")\n            .description(\"this is a role test.\")\n            .build());\n\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var policy = new Policy(\"policy\", PolicyArgs.builder()\n            .policyName(String.format(\"tf-example-%s\", default_.result()))\n            .policyDocument(\"\"\"\n  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": [\n          \\\"oss:ListObjects\\\",\n          \\\"oss:GetObject\\\"\n        ],\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Resource\\\": [\n          \\\"acs:oss:*:*:mybucket\\\",\n          \\\"acs:oss:*:*:mybucket/*\\\"\n        ]\n      }\n    ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n            \"\"\")\n            .description(\"this is a policy test\")\n            .build());\n\n        var attach = new RolePolicyAttachment(\"attach\", RolePolicyAttachmentArgs.builder()\n            .policyName(policy.policyName())\n            .policyType(policy.type())\n            .roleName(role.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a RAM Role Policy attachment.\n  role:\n    type: alicloud:ram:Role\n    properties:\n      name: roleName\n      document: \"    {\\n      \\\\\\\"Statement\\\\\\\": [\\n        {\\n          \\\\\\\"Action\\\\\\\": \\\\\\\"sts:AssumeRole\\\\\\\",\\n          \\\\\\\"Effect\\\\\\\": \\\\\\\"Allow\\\\\\\",\\n          \\\\\\\"Principal\\\\\\\": {\\n            \\\\\\\"Service\\\\\\\": [\\n              \\\\\\\"apigateway.aliyuncs.com\\\\\\\", \\n              \\\\\\\"ecs.aliyuncs.com\\\\\\\"\\n            ]\\n          }\\n        }\\n      ],\\n      \\\\\\\"Version\\\\\\\": \\\\\\\"1\\\\\\\"\\n    }\\n\"\n      description: this is a role test.\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  policy:\n    type: alicloud:ram:Policy\n    properties:\n      policyName: tf-example-${default.result}\n      policyDocument: |2\n          {\n            \\\"Statement\\\": [\n              {\n                \\\"Action\\\": [\n                  \\\"oss:ListObjects\\\",\n                  \\\"oss:GetObject\\\"\n                ],\n                \\\"Effect\\\": \\\"Allow\\\",\n                \\\"Resource\\\": [\n                  \\\"acs:oss:*:*:mybucket\\\",\n                  \\\"acs:oss:*:*:mybucket/*\\\"\n                ]\n              }\n            ],\n              \\\"Version\\\": \\\"1\\\"\n          }\n      description: this is a policy test\n  attach:\n    type: alicloud:ram:RolePolicyAttachment\n    properties:\n      policyName: ${policy.policyName}\n      policyType: ${policy.type}\n      roleName: ${role.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRAM Role Policy Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ram/rolePolicyAttachment:RolePolicyAttachment example role:\u003cpolicy_name\u003e:\u003cpolicy_type\u003e:\u003crole_name\u003e\n```\n\n","properties":{"policyName":{"type":"string","description":"The name of the policy.\n"},"policyType":{"type":"string","description":"Policy type.\n- Custom: Custom policy.\n- System: System policy.\n"},"roleName":{"type":"string","description":"The RAM role name.\n"}},"required":["policyName","policyType","roleName"],"inputProperties":{"policyName":{"type":"string","description":"The name of the policy.\n","willReplaceOnChanges":true},"policyType":{"type":"string","description":"Policy type.\n- Custom: Custom policy.\n- System: System policy.\n","willReplaceOnChanges":true},"roleName":{"type":"string","description":"The RAM role name.\n","willReplaceOnChanges":true}},"requiredInputs":["policyName","policyType","roleName"],"stateInputs":{"description":"Input properties used for looking up and filtering RolePolicyAttachment resources.\n","properties":{"policyName":{"type":"string","description":"The name of the policy.\n","willReplaceOnChanges":true},"policyType":{"type":"string","description":"Policy type.\n- Custom: Custom policy.\n- System: System policy.\n","willReplaceOnChanges":true},"roleName":{"type":"string","description":"The RAM role name.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ram/samlProvider:SamlProvider":{"description":"Provides a RAM Saml Provider resource.\n\n\n\nFor information about RAM Saml Provider and how to use it, see [What is Saml Provider](https://www.alibabacloud.com/help/en/ram/developer-reference/api-ims-2019-08-15-createsamlprovider).\n\n\u003e **NOTE:** Available since v1.114.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.ram.SamlProvider(\"example\", {\n    samlProviderName: \"terraform-example\",\n    encodedsamlMetadataDocument: \"  PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48bWQ6RW50aXR5RGVzY3JpcHRvciBlbnRpdHlJRD0iaHR0cDovL2V4YW1wbGUuYWxpeXVuLmNvbS9leGFtcGxlLWlkcCIgeG1sbnM6bWQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDptZXRhZGF0YSI+PG1kOklEUFNTT0Rlc2NyaXB0b3IgV2FudEF1dGhuUmVxdWVzdHNTaWduZWQ9ImZhbHNlIiBwcm90b2NvbFN1cHBvcnRFbnVtZXJhdGlvbj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIj48bWQ6S2V5RGVzY3JpcHRvciB1c2U9InNpZ25pbmciPjxkczpLZXlJbmZvIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlEL3pDQ0F1ZWdBd0lCQWdJRU1yb0tjakFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnREVuTUNVR0ExVUVBeE1lClFXeHBlWFZ1SUZKQlRTQkZlR0Z0Y0d4bElFTmxjblJwWm1sallYUmxNUkF3RGdZRFZRUUxFd2RCYkdsaVlXSmgKTVJBd0RnWURWUVFLRXdkQmJHbGlZV0poTVJFd0R3WURWUVFIRXdoSVlXNW5XbWh2ZFRFUk1BOEdBMVVFQ0JNSQpXbWhsU21saGJtY3hDekFKQmdOVkJBWVRBa05PTUNBWERUSXpNVEl3TkRFeU1EY3dNRm9ZRHpJd05URXdOREl4Ck1USXdOekF3V2pDQmdERW5NQ1VHQTFVRUF4TWVRV3hwZVhWdUlGSkJUU0JGZUdGdGNHeGxJRU5sY25ScFptbGoKWVhSbE1SQXdEZ1lEVlFRTEV3ZEJiR2xpWVdKaE1SQXdEZ1lEVlFRS0V3ZEJiR2xpWVdKaE1SRXdEd1lEVlFRSApFd2hJWVc1bldtaHZkVEVSTUE4R0ExVUVDQk1JV21obFNtbGhibWN4Q3pBSkJnTlZCQVlUQWtOT01JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQW9KVGVndWc0eXFaalNzQzFQUWpzbGxreUxWZHEKcXR0UGFqNmNOYldQdVFRNThSMkF4ZHNYeng4c05lOElLYUFYbW84azdDTFhDcXFLVzNjNEpzRWtTOUcva3B2NApJWFpBOGFVcDBCeXdQUFBocmFjUXd4cmJ5dkhja0dqVUpkNEZrOEVjbVVjNjRrSE5LbjBCaVJpL0NEZlM3MXBuCjh5T3dDNUZPSUlYWXhWMGtTTnNQMnozV2tBbFBXWm1sVkZSd1dxeHhGS2xCTjVpdVhaVHA4dk5rU2htVndBTW8KcjVpb2VBaFdXd0N1L0pvdUhLa3lnbVJnSDNhRjlSRlkrOGZ4NkMzR2hjZktISUszRTFBbVVtWlpjR3NDUCtxNApXeTBuSFp4QStaZEhTeE1OYUJPMm5JbkxJSHVDWHgza096eWpGV3dUaTVGSTlwdE5vNktBay9wRThRSURBUUFCCm8zMHdlekFQQmdOVkhSTUVDREFHQVFIL0FnRURNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUYKQlFjREFqQUxCZ05WSFE4RUJBTUNBb1F3SFFZRFZSMFJBUUgvQkJNd0VZSUpiRzlqWVd4b2IzTjBod1IvQUFBQgpNQjBHQTFVZERnUVdCQlQ2TXluMnJjMVhEQTZqQkZYWVBOYitGaldMVmpBTkJna3Foa2lHOXcwQkFRc0ZBQU9DCkFRRUFoWHpUUzJJaHZjY3hzSVNzVVNFcldNNDJiQlZESHhTa05EemhPRmd0eGNtNUxuNHdjWXJvdkM3NHZxS1oKUWdQWmpGcWw3YUJTb1ZyNFdseWFaZlVBdHdNL3pZZytJbklUSVpBQ0dhM1VNK3h5V0NLSVhRNGpJVldnNG9QWQpxTStjNWllLzJFVlE0YmhObEQyL0lYZUVEZFd2TXMzdmFyRTFCUE5PQXJZZ2tZTmNER3lDSnA0ZmQ3d3ladWxhCllEZFFIWDdpdUJ1R0JOZFRBajlCUW5xaTJRcTc5RndMVTBrQkFvdUpVVVBPUjBpMGtwZ24vc2dSbHhvaHY1bHgKVTFwYVhtMEZRWHpUUDEvdjV5Y24wM3NVckFUekg2VkRpVlQ2N0NRQjR4MXJpOTFvUVRkWERXN1RvRkVhOGIrOApPdE8wZERMdDlnbCtNMkxYRzJTWnBZTkJoZz09PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9tZDpLZXlEZXNjcmlwdG9yPjxtZDpOYW1lSURGb3JtYXQ+dXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6ZW1haWxBZGRyZXNzPC9tZDpOYW1lSURGb3JtYXQ+PG1kOk5hbWVJREZvcm1hdD51cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6bmFtZWlkLWZvcm1hdDpwZXJzaXN0ZW50PC9tZDpOYW1lSURGb3JtYXQ+PG1kOlNpbmdsZVNpZ25PblNlcnZpY2UgQmluZGluZz0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmJpbmRpbmdzOkhUVFAtUE9TVCIgTG9jYXRpb249Imh0dHA6Ly9leGFtcGxlLmFsaXl1bi5jb20vZXhhbXBsZS1pZHAvc3NvL3NhbWwiLz48bWQ6U2luZ2xlU2lnbk9uU2VydmljZSBCaW5kaW5nPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YmluZGluZ3M6SFRUUC1SZWRpcmVjdCIgTG9jYXRpb249Imh0dHA6Ly9leGFtcGxlLmFsaXl1bi5jb20vZXhhbXBsZS1pZHAvc3NvL3NhbWwiLz48L21kOklEUFNTT0Rlc2NyaXB0b3I+PC9tZDpFbnRpdHlEZXNjcmlwdG9yPg==\\n\",\n    description: \"For Terraform Test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ram.SamlProvider(\"example\",\n    saml_provider_name=\"terraform-example\",\n    encodedsaml_metadata_document=\"  PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48bWQ6RW50aXR5RGVzY3JpcHRvciBlbnRpdHlJRD0iaHR0cDovL2V4YW1wbGUuYWxpeXVuLmNvbS9leGFtcGxlLWlkcCIgeG1sbnM6bWQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDptZXRhZGF0YSI+PG1kOklEUFNTT0Rlc2NyaXB0b3IgV2FudEF1dGhuUmVxdWVzdHNTaWduZWQ9ImZhbHNlIiBwcm90b2NvbFN1cHBvcnRFbnVtZXJhdGlvbj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIj48bWQ6S2V5RGVzY3JpcHRvciB1c2U9InNpZ25pbmciPjxkczpLZXlJbmZvIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlEL3pDQ0F1ZWdBd0lCQWdJRU1yb0tjakFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnREVuTUNVR0ExVUVBeE1lClFXeHBlWFZ1SUZKQlRTQkZlR0Z0Y0d4bElFTmxjblJwWm1sallYUmxNUkF3RGdZRFZRUUxFd2RCYkdsaVlXSmgKTVJBd0RnWURWUVFLRXdkQmJHbGlZV0poTVJFd0R3WURWUVFIRXdoSVlXNW5XbWh2ZFRFUk1BOEdBMVVFQ0JNSQpXbWhsU21saGJtY3hDekFKQmdOVkJBWVRBa05PTUNBWERUSXpNVEl3TkRFeU1EY3dNRm9ZRHpJd05URXdOREl4Ck1USXdOekF3V2pDQmdERW5NQ1VHQTFVRUF4TWVRV3hwZVhWdUlGSkJUU0JGZUdGdGNHeGxJRU5sY25ScFptbGoKWVhSbE1SQXdEZ1lEVlFRTEV3ZEJiR2xpWVdKaE1SQXdEZ1lEVlFRS0V3ZEJiR2xpWVdKaE1SRXdEd1lEVlFRSApFd2hJWVc1bldtaHZkVEVSTUE4R0ExVUVDQk1JV21obFNtbGhibWN4Q3pBSkJnTlZCQVlUQWtOT01JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQW9KVGVndWc0eXFaalNzQzFQUWpzbGxreUxWZHEKcXR0UGFqNmNOYldQdVFRNThSMkF4ZHNYeng4c05lOElLYUFYbW84azdDTFhDcXFLVzNjNEpzRWtTOUcva3B2NApJWFpBOGFVcDBCeXdQUFBocmFjUXd4cmJ5dkhja0dqVUpkNEZrOEVjbVVjNjRrSE5LbjBCaVJpL0NEZlM3MXBuCjh5T3dDNUZPSUlYWXhWMGtTTnNQMnozV2tBbFBXWm1sVkZSd1dxeHhGS2xCTjVpdVhaVHA4dk5rU2htVndBTW8KcjVpb2VBaFdXd0N1L0pvdUhLa3lnbVJnSDNhRjlSRlkrOGZ4NkMzR2hjZktISUszRTFBbVVtWlpjR3NDUCtxNApXeTBuSFp4QStaZEhTeE1OYUJPMm5JbkxJSHVDWHgza096eWpGV3dUaTVGSTlwdE5vNktBay9wRThRSURBUUFCCm8zMHdlekFQQmdOVkhSTUVDREFHQVFIL0FnRURNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUYKQlFjREFqQUxCZ05WSFE4RUJBTUNBb1F3SFFZRFZSMFJBUUgvQkJNd0VZSUpiRzlqWVd4b2IzTjBod1IvQUFBQgpNQjBHQTFVZERnUVdCQlQ2TXluMnJjMVhEQTZqQkZYWVBOYitGaldMVmpBTkJna3Foa2lHOXcwQkFRc0ZBQU9DCkFRRUFoWHpUUzJJaHZjY3hzSVNzVVNFcldNNDJiQlZESHhTa05EemhPRmd0eGNtNUxuNHdjWXJvdkM3NHZxS1oKUWdQWmpGcWw3YUJTb1ZyNFdseWFaZlVBdHdNL3pZZytJbklUSVpBQ0dhM1VNK3h5V0NLSVhRNGpJVldnNG9QWQpxTStjNWllLzJFVlE0YmhObEQyL0lYZUVEZFd2TXMzdmFyRTFCUE5PQXJZZ2tZTmNER3lDSnA0ZmQ3d3ladWxhCllEZFFIWDdpdUJ1R0JOZFRBajlCUW5xaTJRcTc5RndMVTBrQkFvdUpVVVBPUjBpMGtwZ24vc2dSbHhvaHY1bHgKVTFwYVhtMEZRWHpUUDEvdjV5Y24wM3NVckFUekg2VkRpVlQ2N0NRQjR4MXJpOTFvUVRkWERXN1RvRkVhOGIrOApPdE8wZERMdDlnbCtNMkxYRzJTWnBZTkJoZz09PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9tZDpLZXlEZXNjcmlwdG9yPjxtZDpOYW1lSURGb3JtYXQ+dXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6ZW1haWxBZGRyZXNzPC9tZDpOYW1lSURGb3JtYXQ+PG1kOk5hbWVJREZvcm1hdD51cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6bmFtZWlkLWZvcm1hdDpwZXJzaXN0ZW50PC9tZDpOYW1lSURGb3JtYXQ+PG1kOlNpbmdsZVNpZ25PblNlcnZpY2UgQmluZGluZz0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmJpbmRpbmdzOkhUVFAtUE9TVCIgTG9jYXRpb249Imh0dHA6Ly9leGFtcGxlLmFsaXl1bi5jb20vZXhhbXBsZS1pZHAvc3NvL3NhbWwiLz48bWQ6U2luZ2xlU2lnbk9uU2VydmljZSBCaW5kaW5nPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YmluZGluZ3M6SFRUUC1SZWRpcmVjdCIgTG9jYXRpb249Imh0dHA6Ly9leGFtcGxlLmFsaXl1bi5jb20vZXhhbXBsZS1pZHAvc3NvL3NhbWwiLz48L21kOklEUFNTT0Rlc2NyaXB0b3I+PC9tZDpFbnRpdHlEZXNjcmlwdG9yPg==\\n\",\n    description=\"For Terraform Test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Ram.SamlProvider(\"example\", new()\n    {\n        SamlProviderName = \"terraform-example\",\n        EncodedsamlMetadataDocument = @\"  PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48bWQ6RW50aXR5RGVzY3JpcHRvciBlbnRpdHlJRD0iaHR0cDovL2V4YW1wbGUuYWxpeXVuLmNvbS9leGFtcGxlLWlkcCIgeG1sbnM6bWQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDptZXRhZGF0YSI+PG1kOklEUFNTT0Rlc2NyaXB0b3IgV2FudEF1dGhuUmVxdWVzdHNTaWduZWQ9ImZhbHNlIiBwcm90b2NvbFN1cHBvcnRFbnVtZXJhdGlvbj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIj48bWQ6S2V5RGVzY3JpcHRvciB1c2U9InNpZ25pbmciPjxkczpLZXlJbmZvIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlEL3pDQ0F1ZWdBd0lCQWdJRU1yb0tjakFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnREVuTUNVR0ExVUVBeE1lClFXeHBlWFZ1SUZKQlRTQkZlR0Z0Y0d4bElFTmxjblJwWm1sallYUmxNUkF3RGdZRFZRUUxFd2RCYkdsaVlXSmgKTVJBd0RnWURWUVFLRXdkQmJHbGlZV0poTVJFd0R3WURWUVFIRXdoSVlXNW5XbWh2ZFRFUk1BOEdBMVVFQ0JNSQpXbWhsU21saGJtY3hDekFKQmdOVkJBWVRBa05PTUNBWERUSXpNVEl3TkRFeU1EY3dNRm9ZRHpJd05URXdOREl4Ck1USXdOekF3V2pDQmdERW5NQ1VHQTFVRUF4TWVRV3hwZVhWdUlGSkJUU0JGZUdGdGNHeGxJRU5sY25ScFptbGoKWVhSbE1SQXdEZ1lEVlFRTEV3ZEJiR2xpWVdKaE1SQXdEZ1lEVlFRS0V3ZEJiR2xpWVdKaE1SRXdEd1lEVlFRSApFd2hJWVc1bldtaHZkVEVSTUE4R0ExVUVDQk1JV21obFNtbGhibWN4Q3pBSkJnTlZCQVlUQWtOT01JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQW9KVGVndWc0eXFaalNzQzFQUWpzbGxreUxWZHEKcXR0UGFqNmNOYldQdVFRNThSMkF4ZHNYeng4c05lOElLYUFYbW84azdDTFhDcXFLVzNjNEpzRWtTOUcva3B2NApJWFpBOGFVcDBCeXdQUFBocmFjUXd4cmJ5dkhja0dqVUpkNEZrOEVjbVVjNjRrSE5LbjBCaVJpL0NEZlM3MXBuCjh5T3dDNUZPSUlYWXhWMGtTTnNQMnozV2tBbFBXWm1sVkZSd1dxeHhGS2xCTjVpdVhaVHA4dk5rU2htVndBTW8KcjVpb2VBaFdXd0N1L0pvdUhLa3lnbVJnSDNhRjlSRlkrOGZ4NkMzR2hjZktISUszRTFBbVVtWlpjR3NDUCtxNApXeTBuSFp4QStaZEhTeE1OYUJPMm5JbkxJSHVDWHgza096eWpGV3dUaTVGSTlwdE5vNktBay9wRThRSURBUUFCCm8zMHdlekFQQmdOVkhSTUVDREFHQVFIL0FnRURNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUYKQlFjREFqQUxCZ05WSFE4RUJBTUNBb1F3SFFZRFZSMFJBUUgvQkJNd0VZSUpiRzlqWVd4b2IzTjBod1IvQUFBQgpNQjBHQTFVZERnUVdCQlQ2TXluMnJjMVhEQTZqQkZYWVBOYitGaldMVmpBTkJna3Foa2lHOXcwQkFRc0ZBQU9DCkFRRUFoWHpUUzJJaHZjY3hzSVNzVVNFcldNNDJiQlZESHhTa05EemhPRmd0eGNtNUxuNHdjWXJvdkM3NHZxS1oKUWdQWmpGcWw3YUJTb1ZyNFdseWFaZlVBdHdNL3pZZytJbklUSVpBQ0dhM1VNK3h5V0NLSVhRNGpJVldnNG9QWQpxTStjNWllLzJFVlE0YmhObEQyL0lYZUVEZFd2TXMzdmFyRTFCUE5PQXJZZ2tZTmNER3lDSnA0ZmQ3d3ladWxhCllEZFFIWDdpdUJ1R0JOZFRBajlCUW5xaTJRcTc5RndMVTBrQkFvdUpVVVBPUjBpMGtwZ24vc2dSbHhvaHY1bHgKVTFwYVhtMEZRWHpUUDEvdjV5Y24wM3NVckFUekg2VkRpVlQ2N0NRQjR4MXJpOTFvUVRkWERXN1RvRkVhOGIrOApPdE8wZERMdDlnbCtNMkxYRzJTWnBZTkJoZz09PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9tZDpLZXlEZXNjcmlwdG9yPjxtZDpOYW1lSURGb3JtYXQ+dXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6ZW1haWxBZGRyZXNzPC9tZDpOYW1lSURGb3JtYXQ+PG1kOk5hbWVJREZvcm1hdD51cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6bmFtZWlkLWZvcm1hdDpwZXJzaXN0ZW50PC9tZDpOYW1lSURGb3JtYXQ+PG1kOlNpbmdsZVNpZ25PblNlcnZpY2UgQmluZGluZz0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmJpbmRpbmdzOkhUVFAtUE9TVCIgTG9jYXRpb249Imh0dHA6Ly9leGFtcGxlLmFsaXl1bi5jb20vZXhhbXBsZS1pZHAvc3NvL3NhbWwiLz48bWQ6U2luZ2xlU2lnbk9uU2VydmljZSBCaW5kaW5nPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YmluZGluZ3M6SFRUUC1SZWRpcmVjdCIgTG9jYXRpb249Imh0dHA6Ly9leGFtcGxlLmFsaXl1bi5jb20vZXhhbXBsZS1pZHAvc3NvL3NhbWwiLz48L21kOklEUFNTT0Rlc2NyaXB0b3I+PC9tZDpFbnRpdHlEZXNjcmlwdG9yPg==\n\",\n        Description = \"For Terraform Test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ram.NewSamlProvider(ctx, \"example\", \u0026ram.SamlProviderArgs{\n\t\t\tSamlProviderName:            pulumi.String(\"terraform-example\"),\n\t\t\tEncodedsamlMetadataDocument: pulumi.String(\"  PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48bWQ6RW50aXR5RGVzY3JpcHRvciBlbnRpdHlJRD0iaHR0cDovL2V4YW1wbGUuYWxpeXVuLmNvbS9leGFtcGxlLWlkcCIgeG1sbnM6bWQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDptZXRhZGF0YSI+PG1kOklEUFNTT0Rlc2NyaXB0b3IgV2FudEF1dGhuUmVxdWVzdHNTaWduZWQ9ImZhbHNlIiBwcm90b2NvbFN1cHBvcnRFbnVtZXJhdGlvbj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIj48bWQ6S2V5RGVzY3JpcHRvciB1c2U9InNpZ25pbmciPjxkczpLZXlJbmZvIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlEL3pDQ0F1ZWdBd0lCQWdJRU1yb0tjakFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnREVuTUNVR0ExVUVBeE1lClFXeHBlWFZ1SUZKQlRTQkZlR0Z0Y0d4bElFTmxjblJwWm1sallYUmxNUkF3RGdZRFZRUUxFd2RCYkdsaVlXSmgKTVJBd0RnWURWUVFLRXdkQmJHbGlZV0poTVJFd0R3WURWUVFIRXdoSVlXNW5XbWh2ZFRFUk1BOEdBMVVFQ0JNSQpXbWhsU21saGJtY3hDekFKQmdOVkJBWVRBa05PTUNBWERUSXpNVEl3TkRFeU1EY3dNRm9ZRHpJd05URXdOREl4Ck1USXdOekF3V2pDQmdERW5NQ1VHQTFVRUF4TWVRV3hwZVhWdUlGSkJUU0JGZUdGdGNHeGxJRU5sY25ScFptbGoKWVhSbE1SQXdEZ1lEVlFRTEV3ZEJiR2xpWVdKaE1SQXdEZ1lEVlFRS0V3ZEJiR2xpWVdKaE1SRXdEd1lEVlFRSApFd2hJWVc1bldtaHZkVEVSTUE4R0ExVUVDQk1JV21obFNtbGhibWN4Q3pBSkJnTlZCQVlUQWtOT01JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQW9KVGVndWc0eXFaalNzQzFQUWpzbGxreUxWZHEKcXR0UGFqNmNOYldQdVFRNThSMkF4ZHNYeng4c05lOElLYUFYbW84azdDTFhDcXFLVzNjNEpzRWtTOUcva3B2NApJWFpBOGFVcDBCeXdQUFBocmFjUXd4cmJ5dkhja0dqVUpkNEZrOEVjbVVjNjRrSE5LbjBCaVJpL0NEZlM3MXBuCjh5T3dDNUZPSUlYWXhWMGtTTnNQMnozV2tBbFBXWm1sVkZSd1dxeHhGS2xCTjVpdVhaVHA4dk5rU2htVndBTW8KcjVpb2VBaFdXd0N1L0pvdUhLa3lnbVJnSDNhRjlSRlkrOGZ4NkMzR2hjZktISUszRTFBbVVtWlpjR3NDUCtxNApXeTBuSFp4QStaZEhTeE1OYUJPMm5JbkxJSHVDWHgza096eWpGV3dUaTVGSTlwdE5vNktBay9wRThRSURBUUFCCm8zMHdlekFQQmdOVkhSTUVDREFHQVFIL0FnRURNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUYKQlFjREFqQUxCZ05WSFE4RUJBTUNBb1F3SFFZRFZSMFJBUUgvQkJNd0VZSUpiRzlqWVd4b2IzTjBod1IvQUFBQgpNQjBHQTFVZERnUVdCQlQ2TXluMnJjMVhEQTZqQkZYWVBOYitGaldMVmpBTkJna3Foa2lHOXcwQkFRc0ZBQU9DCkFRRUFoWHpUUzJJaHZjY3hzSVNzVVNFcldNNDJiQlZESHhTa05EemhPRmd0eGNtNUxuNHdjWXJvdkM3NHZxS1oKUWdQWmpGcWw3YUJTb1ZyNFdseWFaZlVBdHdNL3pZZytJbklUSVpBQ0dhM1VNK3h5V0NLSVhRNGpJVldnNG9QWQpxTStjNWllLzJFVlE0YmhObEQyL0lYZUVEZFd2TXMzdmFyRTFCUE5PQXJZZ2tZTmNER3lDSnA0ZmQ3d3ladWxhCllEZFFIWDdpdUJ1R0JOZFRBajlCUW5xaTJRcTc5RndMVTBrQkFvdUpVVVBPUjBpMGtwZ24vc2dSbHhvaHY1bHgKVTFwYVhtMEZRWHpUUDEvdjV5Y24wM3NVckFUekg2VkRpVlQ2N0NRQjR4MXJpOTFvUVRkWERXN1RvRkVhOGIrOApPdE8wZERMdDlnbCtNMkxYRzJTWnBZTkJoZz09PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9tZDpLZXlEZXNjcmlwdG9yPjxtZDpOYW1lSURGb3JtYXQ+dXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6ZW1haWxBZGRyZXNzPC9tZDpOYW1lSURGb3JtYXQ+PG1kOk5hbWVJREZvcm1hdD51cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6bmFtZWlkLWZvcm1hdDpwZXJzaXN0ZW50PC9tZDpOYW1lSURGb3JtYXQ+PG1kOlNpbmdsZVNpZ25PblNlcnZpY2UgQmluZGluZz0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmJpbmRpbmdzOkhUVFAtUE9TVCIgTG9jYXRpb249Imh0dHA6Ly9leGFtcGxlLmFsaXl1bi5jb20vZXhhbXBsZS1pZHAvc3NvL3NhbWwiLz48bWQ6U2luZ2xlU2lnbk9uU2VydmljZSBCaW5kaW5nPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YmluZGluZ3M6SFRUUC1SZWRpcmVjdCIgTG9jYXRpb249Imh0dHA6Ly9leGFtcGxlLmFsaXl1bi5jb20vZXhhbXBsZS1pZHAvc3NvL3NhbWwiLz48L21kOklEUFNTT0Rlc2NyaXB0b3I+PC9tZDpFbnRpdHlEZXNjcmlwdG9yPg==\\n\"),\n\t\t\tDescription:                 pulumi.String(\"For Terraform Test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.SamlProvider;\nimport com.pulumi.alicloud.ram.SamlProviderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new SamlProvider(\"example\", SamlProviderArgs.builder()\n            .samlProviderName(\"terraform-example\")\n            .encodedsamlMetadataDocument(\"\"\"\n  PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48bWQ6RW50aXR5RGVzY3JpcHRvciBlbnRpdHlJRD0iaHR0cDovL2V4YW1wbGUuYWxpeXVuLmNvbS9leGFtcGxlLWlkcCIgeG1sbnM6bWQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDptZXRhZGF0YSI+PG1kOklEUFNTT0Rlc2NyaXB0b3IgV2FudEF1dGhuUmVxdWVzdHNTaWduZWQ9ImZhbHNlIiBwcm90b2NvbFN1cHBvcnRFbnVtZXJhdGlvbj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIj48bWQ6S2V5RGVzY3JpcHRvciB1c2U9InNpZ25pbmciPjxkczpLZXlJbmZvIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlEL3pDQ0F1ZWdBd0lCQWdJRU1yb0tjakFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnREVuTUNVR0ExVUVBeE1lClFXeHBlWFZ1SUZKQlRTQkZlR0Z0Y0d4bElFTmxjblJwWm1sallYUmxNUkF3RGdZRFZRUUxFd2RCYkdsaVlXSmgKTVJBd0RnWURWUVFLRXdkQmJHbGlZV0poTVJFd0R3WURWUVFIRXdoSVlXNW5XbWh2ZFRFUk1BOEdBMVVFQ0JNSQpXbWhsU21saGJtY3hDekFKQmdOVkJBWVRBa05PTUNBWERUSXpNVEl3TkRFeU1EY3dNRm9ZRHpJd05URXdOREl4Ck1USXdOekF3V2pDQmdERW5NQ1VHQTFVRUF4TWVRV3hwZVhWdUlGSkJUU0JGZUdGdGNHeGxJRU5sY25ScFptbGoKWVhSbE1SQXdEZ1lEVlFRTEV3ZEJiR2xpWVdKaE1SQXdEZ1lEVlFRS0V3ZEJiR2xpWVdKaE1SRXdEd1lEVlFRSApFd2hJWVc1bldtaHZkVEVSTUE4R0ExVUVDQk1JV21obFNtbGhibWN4Q3pBSkJnTlZCQVlUQWtOT01JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQW9KVGVndWc0eXFaalNzQzFQUWpzbGxreUxWZHEKcXR0UGFqNmNOYldQdVFRNThSMkF4ZHNYeng4c05lOElLYUFYbW84azdDTFhDcXFLVzNjNEpzRWtTOUcva3B2NApJWFpBOGFVcDBCeXdQUFBocmFjUXd4cmJ5dkhja0dqVUpkNEZrOEVjbVVjNjRrSE5LbjBCaVJpL0NEZlM3MXBuCjh5T3dDNUZPSUlYWXhWMGtTTnNQMnozV2tBbFBXWm1sVkZSd1dxeHhGS2xCTjVpdVhaVHA4dk5rU2htVndBTW8KcjVpb2VBaFdXd0N1L0pvdUhLa3lnbVJnSDNhRjlSRlkrOGZ4NkMzR2hjZktISUszRTFBbVVtWlpjR3NDUCtxNApXeTBuSFp4QStaZEhTeE1OYUJPMm5JbkxJSHVDWHgza096eWpGV3dUaTVGSTlwdE5vNktBay9wRThRSURBUUFCCm8zMHdlekFQQmdOVkhSTUVDREFHQVFIL0FnRURNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUYKQlFjREFqQUxCZ05WSFE4RUJBTUNBb1F3SFFZRFZSMFJBUUgvQkJNd0VZSUpiRzlqWVd4b2IzTjBod1IvQUFBQgpNQjBHQTFVZERnUVdCQlQ2TXluMnJjMVhEQTZqQkZYWVBOYitGaldMVmpBTkJna3Foa2lHOXcwQkFRc0ZBQU9DCkFRRUFoWHpUUzJJaHZjY3hzSVNzVVNFcldNNDJiQlZESHhTa05EemhPRmd0eGNtNUxuNHdjWXJvdkM3NHZxS1oKUWdQWmpGcWw3YUJTb1ZyNFdseWFaZlVBdHdNL3pZZytJbklUSVpBQ0dhM1VNK3h5V0NLSVhRNGpJVldnNG9QWQpxTStjNWllLzJFVlE0YmhObEQyL0lYZUVEZFd2TXMzdmFyRTFCUE5PQXJZZ2tZTmNER3lDSnA0ZmQ3d3ladWxhCllEZFFIWDdpdUJ1R0JOZFRBajlCUW5xaTJRcTc5RndMVTBrQkFvdUpVVVBPUjBpMGtwZ24vc2dSbHhvaHY1bHgKVTFwYVhtMEZRWHpUUDEvdjV5Y24wM3NVckFUekg2VkRpVlQ2N0NRQjR4MXJpOTFvUVRkWERXN1RvRkVhOGIrOApPdE8wZERMdDlnbCtNMkxYRzJTWnBZTkJoZz09PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9tZDpLZXlEZXNjcmlwdG9yPjxtZDpOYW1lSURGb3JtYXQ+dXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6ZW1haWxBZGRyZXNzPC9tZDpOYW1lSURGb3JtYXQ+PG1kOk5hbWVJREZvcm1hdD51cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6bmFtZWlkLWZvcm1hdDpwZXJzaXN0ZW50PC9tZDpOYW1lSURGb3JtYXQ+PG1kOlNpbmdsZVNpZ25PblNlcnZpY2UgQmluZGluZz0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmJpbmRpbmdzOkhUVFAtUE9TVCIgTG9jYXRpb249Imh0dHA6Ly9leGFtcGxlLmFsaXl1bi5jb20vZXhhbXBsZS1pZHAvc3NvL3NhbWwiLz48bWQ6U2luZ2xlU2lnbk9uU2VydmljZSBCaW5kaW5nPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YmluZGluZ3M6SFRUUC1SZWRpcmVjdCIgTG9jYXRpb249Imh0dHA6Ly9leGFtcGxlLmFsaXl1bi5jb20vZXhhbXBsZS1pZHAvc3NvL3NhbWwiLz48L21kOklEUFNTT0Rlc2NyaXB0b3I+PC9tZDpFbnRpdHlEZXNjcmlwdG9yPg==\n            \"\"\")\n            .description(\"For Terraform Test\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:ram:SamlProvider\n    properties:\n      samlProviderName: terraform-example\n      encodedsamlMetadataDocument: |2\n          PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48bWQ6RW50aXR5RGVzY3JpcHRvciBlbnRpdHlJRD0iaHR0cDovL2V4YW1wbGUuYWxpeXVuLmNvbS9leGFtcGxlLWlkcCIgeG1sbnM6bWQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDptZXRhZGF0YSI+PG1kOklEUFNTT0Rlc2NyaXB0b3IgV2FudEF1dGhuUmVxdWVzdHNTaWduZWQ9ImZhbHNlIiBwcm90b2NvbFN1cHBvcnRFbnVtZXJhdGlvbj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOnByb3RvY29sIj48bWQ6S2V5RGVzY3JpcHRvciB1c2U9InNpZ25pbmciPjxkczpLZXlJbmZvIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlEL3pDQ0F1ZWdBd0lCQWdJRU1yb0tjakFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnREVuTUNVR0ExVUVBeE1lClFXeHBlWFZ1SUZKQlRTQkZlR0Z0Y0d4bElFTmxjblJwWm1sallYUmxNUkF3RGdZRFZRUUxFd2RCYkdsaVlXSmgKTVJBd0RnWURWUVFLRXdkQmJHbGlZV0poTVJFd0R3WURWUVFIRXdoSVlXNW5XbWh2ZFRFUk1BOEdBMVVFQ0JNSQpXbWhsU21saGJtY3hDekFKQmdOVkJBWVRBa05PTUNBWERUSXpNVEl3TkRFeU1EY3dNRm9ZRHpJd05URXdOREl4Ck1USXdOekF3V2pDQmdERW5NQ1VHQTFVRUF4TWVRV3hwZVhWdUlGSkJUU0JGZUdGdGNHeGxJRU5sY25ScFptbGoKWVhSbE1SQXdEZ1lEVlFRTEV3ZEJiR2xpWVdKaE1SQXdEZ1lEVlFRS0V3ZEJiR2xpWVdKaE1SRXdEd1lEVlFRSApFd2hJWVc1bldtaHZkVEVSTUE4R0ExVUVDQk1JV21obFNtbGhibWN4Q3pBSkJnTlZCQVlUQWtOT01JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQW9KVGVndWc0eXFaalNzQzFQUWpzbGxreUxWZHEKcXR0UGFqNmNOYldQdVFRNThSMkF4ZHNYeng4c05lOElLYUFYbW84azdDTFhDcXFLVzNjNEpzRWtTOUcva3B2NApJWFpBOGFVcDBCeXdQUFBocmFjUXd4cmJ5dkhja0dqVUpkNEZrOEVjbVVjNjRrSE5LbjBCaVJpL0NEZlM3MXBuCjh5T3dDNUZPSUlYWXhWMGtTTnNQMnozV2tBbFBXWm1sVkZSd1dxeHhGS2xCTjVpdVhaVHA4dk5rU2htVndBTW8KcjVpb2VBaFdXd0N1L0pvdUhLa3lnbVJnSDNhRjlSRlkrOGZ4NkMzR2hjZktISUszRTFBbVVtWlpjR3NDUCtxNApXeTBuSFp4QStaZEhTeE1OYUJPMm5JbkxJSHVDWHgza096eWpGV3dUaTVGSTlwdE5vNktBay9wRThRSURBUUFCCm8zMHdlekFQQmdOVkhSTUVDREFHQVFIL0FnRURNQjBHQTFVZEpRUVdNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUYKQlFjREFqQUxCZ05WSFE4RUJBTUNBb1F3SFFZRFZSMFJBUUgvQkJNd0VZSUpiRzlqWVd4b2IzTjBod1IvQUFBQgpNQjBHQTFVZERnUVdCQlQ2TXluMnJjMVhEQTZqQkZYWVBOYitGaldMVmpBTkJna3Foa2lHOXcwQkFRc0ZBQU9DCkFRRUFoWHpUUzJJaHZjY3hzSVNzVVNFcldNNDJiQlZESHhTa05EemhPRmd0eGNtNUxuNHdjWXJvdkM3NHZxS1oKUWdQWmpGcWw3YUJTb1ZyNFdseWFaZlVBdHdNL3pZZytJbklUSVpBQ0dhM1VNK3h5V0NLSVhRNGpJVldnNG9QWQpxTStjNWllLzJFVlE0YmhObEQyL0lYZUVEZFd2TXMzdmFyRTFCUE5PQXJZZ2tZTmNER3lDSnA0ZmQ3d3ladWxhCllEZFFIWDdpdUJ1R0JOZFRBajlCUW5xaTJRcTc5RndMVTBrQkFvdUpVVVBPUjBpMGtwZ24vc2dSbHhvaHY1bHgKVTFwYVhtMEZRWHpUUDEvdjV5Y24wM3NVckFUekg2VkRpVlQ2N0NRQjR4MXJpOTFvUVRkWERXN1RvRkVhOGIrOApPdE8wZERMdDlnbCtNMkxYRzJTWnBZTkJoZz09PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9tZDpLZXlEZXNjcmlwdG9yPjxtZDpOYW1lSURGb3JtYXQ+dXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6ZW1haWxBZGRyZXNzPC9tZDpOYW1lSURGb3JtYXQ+PG1kOk5hbWVJREZvcm1hdD51cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6bmFtZWlkLWZvcm1hdDpwZXJzaXN0ZW50PC9tZDpOYW1lSURGb3JtYXQ+PG1kOlNpbmdsZVNpZ25PblNlcnZpY2UgQmluZGluZz0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmJpbmRpbmdzOkhUVFAtUE9TVCIgTG9jYXRpb249Imh0dHA6Ly9leGFtcGxlLmFsaXl1bi5jb20vZXhhbXBsZS1pZHAvc3NvL3NhbWwiLz48bWQ6U2luZ2xlU2lnbk9uU2VydmljZSBCaW5kaW5nPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YmluZGluZ3M6SFRUUC1SZWRpcmVjdCIgTG9jYXRpb249Imh0dHA6Ly9leGFtcGxlLmFsaXl1bi5jb20vZXhhbXBsZS1pZHAvc3NvL3NhbWwiLz48L21kOklEUFNTT0Rlc2NyaXB0b3I+PC9tZDpFbnRpdHlEZXNjcmlwdG9yPg==\n      description: For Terraform Test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRAM Saml Provider can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ram/samlProvider:SamlProvider example \u003cid\u003e\n```\n\n","properties":{"arn":{"type":"string","description":"The identity provider's ARN.\n"},"description":{"type":"string","description":"The description.\n"},"encodedsamlMetadataDocument":{"type":"string","description":"The metadata file which is Base64-encoded.\nThe file is provided by an IdP that supports Security Assertion Markup Language (SAML) 2.0.\n"},"samlProviderName":{"type":"string","description":"The name of the IdP.  The name can be up to 128 characters in length. The name can contain letters, digits, periods (.), hyphens (-), and underscores (_). The name cannot start or end with periods (.), hyphens (-), or underscores (_).\n"},"updateDate":{"type":"string","description":"Update time.\n"}},"required":["arn","encodedsamlMetadataDocument","samlProviderName","updateDate"],"inputProperties":{"description":{"type":"string","description":"The description.\n"},"encodedsamlMetadataDocument":{"type":"string","description":"The metadata file which is Base64-encoded.\nThe file is provided by an IdP that supports Security Assertion Markup Language (SAML) 2.0.\n"},"samlProviderName":{"type":"string","description":"The name of the IdP.  The name can be up to 128 characters in length. The name can contain letters, digits, periods (.), hyphens (-), and underscores (_). The name cannot start or end with periods (.), hyphens (-), or underscores (_).\n","willReplaceOnChanges":true}},"requiredInputs":["encodedsamlMetadataDocument","samlProviderName"],"stateInputs":{"description":"Input properties used for looking up and filtering SamlProvider resources.\n","properties":{"arn":{"type":"string","description":"The identity provider's ARN.\n"},"description":{"type":"string","description":"The description.\n"},"encodedsamlMetadataDocument":{"type":"string","description":"The metadata file which is Base64-encoded.\nThe file is provided by an IdP that supports Security Assertion Markup Language (SAML) 2.0.\n"},"samlProviderName":{"type":"string","description":"The name of the IdP.  The name can be up to 128 characters in length. The name can contain letters, digits, periods (.), hyphens (-), and underscores (_). The name cannot start or end with periods (.), hyphens (-), or underscores (_).\n","willReplaceOnChanges":true},"updateDate":{"type":"string","description":"Update time.\n"}},"type":"object"}},"alicloud:ram/securityPreference:SecurityPreference":{"description":"Provides a RAM Security Preference resource.\n\n\n\nFor information about RAM Security Preference and how to use it, see [What is Security Preference](https://www.alibabacloud.com/help/en/doc-detail/186694.htm).\n\n\u003e **NOTE:** Available since v1.152.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.ram.SecurityPreference(\"example\", {\n    enableSaveMfaTicket: false,\n    allowUserToChangePassword: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ram.SecurityPreference(\"example\",\n    enable_save_mfa_ticket=False,\n    allow_user_to_change_password=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Ram.SecurityPreference(\"example\", new()\n    {\n        EnableSaveMfaTicket = false,\n        AllowUserToChangePassword = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ram.NewSecurityPreference(ctx, \"example\", \u0026ram.SecurityPreferenceArgs{\n\t\t\tEnableSaveMfaTicket:       pulumi.Bool(false),\n\t\t\tAllowUserToChangePassword: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.SecurityPreference;\nimport com.pulumi.alicloud.ram.SecurityPreferenceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new SecurityPreference(\"example\", SecurityPreferenceArgs.builder()\n            .enableSaveMfaTicket(false)\n            .allowUserToChangePassword(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:ram:SecurityPreference\n    properties:\n      enableSaveMfaTicket: false\n      allowUserToChangePassword: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.ram.SecurityPreference`\" pulumi-lang-dotnet=\"`alicloud.ram.SecurityPreference`\" pulumi-lang-go=\"`ram.SecurityPreference`\" pulumi-lang-python=\"`ram.SecurityPreference`\" pulumi-lang-yaml=\"`alicloud.ram.SecurityPreference`\" pulumi-lang-java=\"`alicloud.ram.SecurityPreference`\"\u003e`alicloud.ram.SecurityPreference`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.ram.SecurityPreference`\" pulumi-lang-dotnet=\"`alicloud.ram.SecurityPreference`\" pulumi-lang-go=\"`ram.SecurityPreference`\" pulumi-lang-python=\"`ram.SecurityPreference`\" pulumi-lang-yaml=\"`alicloud.ram.SecurityPreference`\" pulumi-lang-java=\"`alicloud.ram.SecurityPreference`\"\u003e`alicloud.ram.SecurityPreference`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRAM Security Preference can be imported using the id, e.g.\n\n```sh\n$ terraform import alicloud_ram_security_preference.example \n```\n\n","properties":{"allowUserToChangePassword":{"type":"boolean","description":"Whether to allow RAM users to manage their own passwords. Value:\n- true (default): Allowed.\n- false: not allowed.\n"},"allowUserToLoginWithPasskey":{"type":"boolean","description":"Whether to allow RAM users to log on using a passkey. Value:\n- true (default): Allowed.\n- false: not allowed.\n"},"allowUserToManageAccessKeys":{"type":"boolean","description":"Whether to allow RAM users to manage their own access keys. Value:\n- true: Allow.\n- false (default): Not allowed.\n"},"allowUserToManageMfaDevices":{"type":"boolean","description":"Whether to allow RAM users to manage multi-factor authentication devices. Value:\n- true (default): Allowed.\n- false: not allowed.\n"},"allowUserToManagePersonalDingTalk":{"type":"boolean","description":"Whether to allow RAM users to independently manage the binding and unbinding of personal DingTalk. Value:\n- true (default): Allowed.\n- false: not allowed.\n"},"enableSaveMfaTicket":{"type":"boolean","description":"Whether to save the verification status of a RAM user after logging in using multi-factor authentication. The validity period is 7 days. Value:\n- true: Allow.\n- false (default): Not allowed.\n"},"enforceMfaForLogin":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`enforceMfaForLogin`\" pulumi-lang-dotnet=\"`EnforceMfaForLogin`\" pulumi-lang-go=\"`enforceMfaForLogin`\" pulumi-lang-python=\"`enforce_mfa_for_login`\" pulumi-lang-yaml=\"`enforceMfaForLogin`\" pulumi-lang-java=\"`enforceMfaForLogin`\"\u003e`enforce_mfa_for_login`\u003c/span\u003e has been deprecated from provider version 1.248.0. New field \u003cspan pulumi-lang-nodejs=\"`mfaOperationForLogin`\" pulumi-lang-dotnet=\"`MfaOperationForLogin`\" pulumi-lang-go=\"`mfaOperationForLogin`\" pulumi-lang-python=\"`mfa_operation_for_login`\" pulumi-lang-yaml=\"`mfaOperationForLogin`\" pulumi-lang-java=\"`mfaOperationForLogin`\"\u003e`mfa_operation_for_login`\u003c/span\u003e instead. \nSpecifies whether MFA is required for all RAM users when they log on to the Alibaba Cloud Management Console by using usernames and passwords. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n","deprecationMessage":"This property has been deprecated as it is no longer supported by Aliyun."},"loginNetworkMasks":{"type":"string","description":"The login mask. The logon mask determines which IP addresses are affected by the logon console, including password logon and single sign-on (SSO), but API calls made using the access key are not affected.\n- If the mask is specified, RAM users can only log on from the specified IP address.\n- If you do not specify any mask, the login console function will apply to the entire network.\n\n\u003e NOTE: When you need to configure multiple login masks, use a semicolon `;` to separate them, for example: `192.168.0.0/16;10.0.0.0/8`.\n\nConfigure a maximum of 40 logon masks, with a total length of 512 characters.\n"},"loginSessionDuration":{"type":"integer","description":"The validity period of the logon session of RAM users.\nValid values: 1 to 24. Unit: hours.\nDefault value: 6.\n"},"maxIdleDaysForAccessKeys":{"type":"integer","description":"The maximum idle time (in days) of an access key for a RAM user. After the access key is not used for this period, it is automatically disabled on the next day. Possible values are \u003cspan pulumi-lang-nodejs=\"`90`\" pulumi-lang-dotnet=\"`90`\" pulumi-lang-go=\"`90`\" pulumi-lang-python=\"`90`\" pulumi-lang-yaml=\"`90`\" pulumi-lang-java=\"`90`\"\u003e`90`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e.\n"},"maxIdleDaysForUsers":{"type":"integer","description":"The maximum idle time (days) of the RAM user. If the RAM user has the console logon enabled, the console logon will be automatically disabled on the next day after the continuous logon time (excluding SSO logon time) reaches this time. Possible values are \u003cspan pulumi-lang-nodejs=\"`90`\" pulumi-lang-dotnet=\"`90`\" pulumi-lang-go=\"`90`\" pulumi-lang-python=\"`90`\" pulumi-lang-yaml=\"`90`\" pulumi-lang-java=\"`90`\"\u003e`90`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e.\n"},"mfaOperationForLogin":{"type":"string","description":"MFA must be used during logon (replace the original EnforceMFAForLogin parameter, the original parameter is still valid, we recommend that you update it to a new parameter). Value:\n- mandatory: mandatory for all RAM users. The original value of EnforceMFAForLogin is true.\n- independent (default): depends on the independent configuration of each RAM user. The original value of EnforceMFAForLogin is false.\n- adaptive: Used only during abnormal login.\n"},"operationForRiskLogin":{"type":"string","description":"Whether MFA is verified twice during abnormal logon. Value:\n- autonomous (default): Skip, do not force binding.\n- enforceVerify: Force binding validation.\n"},"verificationTypes":{"type":"array","items":{"type":"string"},"description":"Means of multi-factor authentication. Value:\n- sms: secure phone.\n- email: Secure mailbox.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["allowUserToChangePassword","allowUserToLoginWithPasskey","allowUserToManageAccessKeys","allowUserToManageMfaDevices","allowUserToManagePersonalDingTalk","enableSaveMfaTicket","enforceMfaForLogin","loginSessionDuration","maxIdleDaysForAccessKeys","maxIdleDaysForUsers","mfaOperationForLogin","operationForRiskLogin"],"inputProperties":{"allowUserToChangePassword":{"type":"boolean","description":"Whether to allow RAM users to manage their own passwords. Value:\n- true (default): Allowed.\n- false: not allowed.\n"},"allowUserToLoginWithPasskey":{"type":"boolean","description":"Whether to allow RAM users to log on using a passkey. Value:\n- true (default): Allowed.\n- false: not allowed.\n"},"allowUserToManageAccessKeys":{"type":"boolean","description":"Whether to allow RAM users to manage their own access keys. Value:\n- true: Allow.\n- false (default): Not allowed.\n"},"allowUserToManageMfaDevices":{"type":"boolean","description":"Whether to allow RAM users to manage multi-factor authentication devices. Value:\n- true (default): Allowed.\n- false: not allowed.\n"},"allowUserToManagePersonalDingTalk":{"type":"boolean","description":"Whether to allow RAM users to independently manage the binding and unbinding of personal DingTalk. Value:\n- true (default): Allowed.\n- false: not allowed.\n"},"enableSaveMfaTicket":{"type":"boolean","description":"Whether to save the verification status of a RAM user after logging in using multi-factor authentication. The validity period is 7 days. Value:\n- true: Allow.\n- false (default): Not allowed.\n"},"enforceMfaForLogin":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`enforceMfaForLogin`\" pulumi-lang-dotnet=\"`EnforceMfaForLogin`\" pulumi-lang-go=\"`enforceMfaForLogin`\" pulumi-lang-python=\"`enforce_mfa_for_login`\" pulumi-lang-yaml=\"`enforceMfaForLogin`\" pulumi-lang-java=\"`enforceMfaForLogin`\"\u003e`enforce_mfa_for_login`\u003c/span\u003e has been deprecated from provider version 1.248.0. New field \u003cspan pulumi-lang-nodejs=\"`mfaOperationForLogin`\" pulumi-lang-dotnet=\"`MfaOperationForLogin`\" pulumi-lang-go=\"`mfaOperationForLogin`\" pulumi-lang-python=\"`mfa_operation_for_login`\" pulumi-lang-yaml=\"`mfaOperationForLogin`\" pulumi-lang-java=\"`mfaOperationForLogin`\"\u003e`mfa_operation_for_login`\u003c/span\u003e instead. \nSpecifies whether MFA is required for all RAM users when they log on to the Alibaba Cloud Management Console by using usernames and passwords. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n","deprecationMessage":"This property has been deprecated as it is no longer supported by Aliyun."},"loginNetworkMasks":{"type":"string","description":"The login mask. The logon mask determines which IP addresses are affected by the logon console, including password logon and single sign-on (SSO), but API calls made using the access key are not affected.\n- If the mask is specified, RAM users can only log on from the specified IP address.\n- If you do not specify any mask, the login console function will apply to the entire network.\n\n\u003e NOTE: When you need to configure multiple login masks, use a semicolon `;` to separate them, for example: `192.168.0.0/16;10.0.0.0/8`.\n\nConfigure a maximum of 40 logon masks, with a total length of 512 characters.\n"},"loginSessionDuration":{"type":"integer","description":"The validity period of the logon session of RAM users.\nValid values: 1 to 24. Unit: hours.\nDefault value: 6.\n"},"maxIdleDaysForAccessKeys":{"type":"integer","description":"The maximum idle time (in days) of an access key for a RAM user. After the access key is not used for this period, it is automatically disabled on the next day. Possible values are \u003cspan pulumi-lang-nodejs=\"`90`\" pulumi-lang-dotnet=\"`90`\" pulumi-lang-go=\"`90`\" pulumi-lang-python=\"`90`\" pulumi-lang-yaml=\"`90`\" pulumi-lang-java=\"`90`\"\u003e`90`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e.\n"},"maxIdleDaysForUsers":{"type":"integer","description":"The maximum idle time (days) of the RAM user. If the RAM user has the console logon enabled, the console logon will be automatically disabled on the next day after the continuous logon time (excluding SSO logon time) reaches this time. Possible values are \u003cspan pulumi-lang-nodejs=\"`90`\" pulumi-lang-dotnet=\"`90`\" pulumi-lang-go=\"`90`\" pulumi-lang-python=\"`90`\" pulumi-lang-yaml=\"`90`\" pulumi-lang-java=\"`90`\"\u003e`90`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e.\n"},"mfaOperationForLogin":{"type":"string","description":"MFA must be used during logon (replace the original EnforceMFAForLogin parameter, the original parameter is still valid, we recommend that you update it to a new parameter). Value:\n- mandatory: mandatory for all RAM users. The original value of EnforceMFAForLogin is true.\n- independent (default): depends on the independent configuration of each RAM user. The original value of EnforceMFAForLogin is false.\n- adaptive: Used only during abnormal login.\n"},"operationForRiskLogin":{"type":"string","description":"Whether MFA is verified twice during abnormal logon. Value:\n- autonomous (default): Skip, do not force binding.\n- enforceVerify: Force binding validation.\n"},"verificationTypes":{"type":"array","items":{"type":"string"},"description":"Means of multi-factor authentication. Value:\n- sms: secure phone.\n- email: Secure mailbox.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering SecurityPreference resources.\n","properties":{"allowUserToChangePassword":{"type":"boolean","description":"Whether to allow RAM users to manage their own passwords. Value:\n- true (default): Allowed.\n- false: not allowed.\n"},"allowUserToLoginWithPasskey":{"type":"boolean","description":"Whether to allow RAM users to log on using a passkey. Value:\n- true (default): Allowed.\n- false: not allowed.\n"},"allowUserToManageAccessKeys":{"type":"boolean","description":"Whether to allow RAM users to manage their own access keys. Value:\n- true: Allow.\n- false (default): Not allowed.\n"},"allowUserToManageMfaDevices":{"type":"boolean","description":"Whether to allow RAM users to manage multi-factor authentication devices. Value:\n- true (default): Allowed.\n- false: not allowed.\n"},"allowUserToManagePersonalDingTalk":{"type":"boolean","description":"Whether to allow RAM users to independently manage the binding and unbinding of personal DingTalk. Value:\n- true (default): Allowed.\n- false: not allowed.\n"},"enableSaveMfaTicket":{"type":"boolean","description":"Whether to save the verification status of a RAM user after logging in using multi-factor authentication. The validity period is 7 days. Value:\n- true: Allow.\n- false (default): Not allowed.\n"},"enforceMfaForLogin":{"type":"boolean","description":"Field \u003cspan pulumi-lang-nodejs=\"`enforceMfaForLogin`\" pulumi-lang-dotnet=\"`EnforceMfaForLogin`\" pulumi-lang-go=\"`enforceMfaForLogin`\" pulumi-lang-python=\"`enforce_mfa_for_login`\" pulumi-lang-yaml=\"`enforceMfaForLogin`\" pulumi-lang-java=\"`enforceMfaForLogin`\"\u003e`enforce_mfa_for_login`\u003c/span\u003e has been deprecated from provider version 1.248.0. New field \u003cspan pulumi-lang-nodejs=\"`mfaOperationForLogin`\" pulumi-lang-dotnet=\"`MfaOperationForLogin`\" pulumi-lang-go=\"`mfaOperationForLogin`\" pulumi-lang-python=\"`mfa_operation_for_login`\" pulumi-lang-yaml=\"`mfaOperationForLogin`\" pulumi-lang-java=\"`mfaOperationForLogin`\"\u003e`mfa_operation_for_login`\u003c/span\u003e instead. \nSpecifies whether MFA is required for all RAM users when they log on to the Alibaba Cloud Management Console by using usernames and passwords. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n","deprecationMessage":"This property has been deprecated as it is no longer supported by Aliyun."},"loginNetworkMasks":{"type":"string","description":"The login mask. The logon mask determines which IP addresses are affected by the logon console, including password logon and single sign-on (SSO), but API calls made using the access key are not affected.\n- If the mask is specified, RAM users can only log on from the specified IP address.\n- If you do not specify any mask, the login console function will apply to the entire network.\n\n\u003e NOTE: When you need to configure multiple login masks, use a semicolon `;` to separate them, for example: `192.168.0.0/16;10.0.0.0/8`.\n\nConfigure a maximum of 40 logon masks, with a total length of 512 characters.\n"},"loginSessionDuration":{"type":"integer","description":"The validity period of the logon session of RAM users.\nValid values: 1 to 24. Unit: hours.\nDefault value: 6.\n"},"maxIdleDaysForAccessKeys":{"type":"integer","description":"The maximum idle time (in days) of an access key for a RAM user. After the access key is not used for this period, it is automatically disabled on the next day. Possible values are \u003cspan pulumi-lang-nodejs=\"`90`\" pulumi-lang-dotnet=\"`90`\" pulumi-lang-go=\"`90`\" pulumi-lang-python=\"`90`\" pulumi-lang-yaml=\"`90`\" pulumi-lang-java=\"`90`\"\u003e`90`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e.\n"},"maxIdleDaysForUsers":{"type":"integer","description":"The maximum idle time (days) of the RAM user. If the RAM user has the console logon enabled, the console logon will be automatically disabled on the next day after the continuous logon time (excluding SSO logon time) reaches this time. Possible values are \u003cspan pulumi-lang-nodejs=\"`90`\" pulumi-lang-dotnet=\"`90`\" pulumi-lang-go=\"`90`\" pulumi-lang-python=\"`90`\" pulumi-lang-yaml=\"`90`\" pulumi-lang-java=\"`90`\"\u003e`90`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`730`\" pulumi-lang-dotnet=\"`730`\" pulumi-lang-go=\"`730`\" pulumi-lang-python=\"`730`\" pulumi-lang-yaml=\"`730`\" pulumi-lang-java=\"`730`\"\u003e`730`\u003c/span\u003e.\n"},"mfaOperationForLogin":{"type":"string","description":"MFA must be used during logon (replace the original EnforceMFAForLogin parameter, the original parameter is still valid, we recommend that you update it to a new parameter). Value:\n- mandatory: mandatory for all RAM users. The original value of EnforceMFAForLogin is true.\n- independent (default): depends on the independent configuration of each RAM user. The original value of EnforceMFAForLogin is false.\n- adaptive: Used only during abnormal login.\n"},"operationForRiskLogin":{"type":"string","description":"Whether MFA is verified twice during abnormal logon. Value:\n- autonomous (default): Skip, do not force binding.\n- enforceVerify: Force binding validation.\n"},"verificationTypes":{"type":"array","items":{"type":"string"},"description":"Means of multi-factor authentication. Value:\n- sms: secure phone.\n- email: Secure mailbox.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"type":"object"}},"alicloud:ram/user:User":{"description":"Provides a RAM User resource.\n\nFor information about RAM User and how to use it, see [What is User](https://www.alibabacloud.com/help/en/ram/developer-reference/api-ram-2015-05-01-createuser).\n\n\u003e **NOTE:** When you want to destroy this resource forcefully(means release all the relationships associated with it automatically and then destroy it) without set \u003cspan pulumi-lang-nodejs=\"`force`\" pulumi-lang-dotnet=\"`Force`\" pulumi-lang-go=\"`force`\" pulumi-lang-python=\"`force`\" pulumi-lang-yaml=\"`force`\" pulumi-lang-java=\"`force`\"\u003e`force`\u003c/span\u003e  with \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e at beginning, you need add `force = true` to configuration file and run `pulumi preview`, then you can delete resource forcefully.\n\n\u003e **NOTE:** Available since v1.0.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\n// Create a new RAM user.\nconst user = new alicloud.ram.User(\"user\", {\n    name: `terraform-example-${_default.result}`,\n    displayName: \"user_display_name\",\n    mobile: \"86-18688888888\",\n    email: \"hello.uuu@aaa.com\",\n    comments: \"yoyoyo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\n# Create a new RAM user.\nuser = alicloud.ram.User(\"user\",\n    name=f\"terraform-example-{default['result']}\",\n    display_name=\"user_display_name\",\n    mobile=\"86-18688888888\",\n    email=\"hello.uuu@aaa.com\",\n    comments=\"yoyoyo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    // Create a new RAM user.\n    var user = new AliCloud.Ram.User(\"user\", new()\n    {\n        Name = $\"terraform-example-{@default.Result}\",\n        DisplayName = \"user_display_name\",\n        Mobile = \"86-18688888888\",\n        Email = \"hello.uuu@aaa.com\",\n        Comments = \"yoyoyo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new RAM user.\n\t\t_, err = ram.NewUser(ctx, \"user\", \u0026ram.UserArgs{\n\t\t\tName:        pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDisplayName: pulumi.String(\"user_display_name\"),\n\t\t\tMobile:      pulumi.String(\"86-18688888888\"),\n\t\t\tEmail:       pulumi.String(\"hello.uuu@aaa.com\"),\n\t\t\tComments:    pulumi.String(\"yoyoyo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ram.User;\nimport com.pulumi.alicloud.ram.UserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        // Create a new RAM user.\n        var user = new User(\"user\", UserArgs.builder()\n            .name(String.format(\"terraform-example-%s\", default_.result()))\n            .displayName(\"user_display_name\")\n            .mobile(\"86-18688888888\")\n            .email(\"hello.uuu@aaa.com\")\n            .comments(\"yoyoyo\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  # Create a new RAM user.\n  user:\n    type: alicloud:ram:User\n    properties:\n      name: terraform-example-${default.result}\n      displayName: user_display_name\n      mobile: 86-18688888888\n      email: hello.uuu@aaa.com\n      comments: yoyoyo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRAM User can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ram/user:User example 123456789xxx\n```\n\n","properties":{"comments":{"type":"string","description":"Comment of the RAM user. This parameter can have a string of 1 to 128 characters.\n"},"displayName":{"type":"string","description":"Name of the RAM user which for display. This name can have a string of 1 to 128 characters or Chinese characters, must contain only alphanumeric characters or Chinese characters or hyphens, such as \"-\",\".\", and must not end with a hyphen.\n"},"email":{"type":"string","description":"Email of the RAM user.\n"},"force":{"type":"boolean","description":"This parameter is used for resource destroy. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"mobile":{"type":"string","description":"Phone number of the RAM user. This number must contain an international area code prefix, just look like this: 86-18600008888.\n"},"name":{"type":"string","description":"Name of the RAM user. This name can have a string of 1 to 64 characters, must contain only alphanumeric characters or hyphens, such as \"-\",\".\",\"_\", and must not begin with a hyphen.\n"}},"required":["name"],"inputProperties":{"comments":{"type":"string","description":"Comment of the RAM user. This parameter can have a string of 1 to 128 characters.\n"},"displayName":{"type":"string","description":"Name of the RAM user which for display. This name can have a string of 1 to 128 characters or Chinese characters, must contain only alphanumeric characters or Chinese characters or hyphens, such as \"-\",\".\", and must not end with a hyphen.\n"},"email":{"type":"string","description":"Email of the RAM user.\n"},"force":{"type":"boolean","description":"This parameter is used for resource destroy. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"mobile":{"type":"string","description":"Phone number of the RAM user. This number must contain an international area code prefix, just look like this: 86-18600008888.\n"},"name":{"type":"string","description":"Name of the RAM user. This name can have a string of 1 to 64 characters, must contain only alphanumeric characters or hyphens, such as \"-\",\".\",\"_\", and must not begin with a hyphen.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"comments":{"type":"string","description":"Comment of the RAM user. This parameter can have a string of 1 to 128 characters.\n"},"displayName":{"type":"string","description":"Name of the RAM user which for display. This name can have a string of 1 to 128 characters or Chinese characters, must contain only alphanumeric characters or Chinese characters or hyphens, such as \"-\",\".\", and must not end with a hyphen.\n"},"email":{"type":"string","description":"Email of the RAM user.\n"},"force":{"type":"boolean","description":"This parameter is used for resource destroy. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"mobile":{"type":"string","description":"Phone number of the RAM user. This number must contain an international area code prefix, just look like this: 86-18600008888.\n"},"name":{"type":"string","description":"Name of the RAM user. This name can have a string of 1 to 64 characters, must contain only alphanumeric characters or hyphens, such as \"-\",\".\",\"_\", and must not begin with a hyphen.\n"}},"type":"object"}},"alicloud:ram/userGroupAttachment:UserGroupAttachment":{"description":"Provides a RAM User Group Attachment resource.\n\n\n\nFor information about RAM User Group Attachment and how to use it, see [What is User Group Attachment](https://next.api.alibabacloud.com/document/Ram/2015-05-01/AddUserToGroup).\n\n\u003e **NOTE:** Available since v1.245.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultUser = new alicloud.ram.User(\"default\", {\n    name: `terraform-example-${_default.result}`,\n    displayName: `terraform-example-${_default.result}`,\n});\nconst defaultGroup = new alicloud.ram.Group(\"default\", {name: `terraform-example-${_default.result}`});\nconst defaultUserGroupAttachment = new alicloud.ram.UserGroupAttachment(\"default\", {\n    groupName: defaultGroup.id,\n    userName: defaultUser.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_user = alicloud.ram.User(\"default\",\n    name=f\"terraform-example-{default['result']}\",\n    display_name=f\"terraform-example-{default['result']}\")\ndefault_group = alicloud.ram.Group(\"default\", name=f\"terraform-example-{default['result']}\")\ndefault_user_group_attachment = alicloud.ram.UserGroupAttachment(\"default\",\n    group_name=default_group.id,\n    user_name=default_user.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultUser = new AliCloud.Ram.User(\"default\", new()\n    {\n        Name = $\"terraform-example-{@default.Result}\",\n        DisplayName = $\"terraform-example-{@default.Result}\",\n    });\n\n    var defaultGroup = new AliCloud.Ram.Group(\"default\", new()\n    {\n        Name = $\"terraform-example-{@default.Result}\",\n    });\n\n    var defaultUserGroupAttachment = new AliCloud.Ram.UserGroupAttachment(\"default\", new()\n    {\n        GroupName = defaultGroup.Id,\n        UserName = defaultUser.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultUser, err := ram.NewUser(ctx, \"default\", \u0026ram.UserArgs{\n\t\t\tName:        pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t\tDisplayName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGroup, err := ram.NewGroup(ctx, \"default\", \u0026ram.GroupArgs{\n\t\t\tName: pulumi.Sprintf(\"terraform-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewUserGroupAttachment(ctx, \"default\", \u0026ram.UserGroupAttachmentArgs{\n\t\t\tGroupName: defaultGroup.ID(),\n\t\t\tUserName:  defaultUser.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ram.User;\nimport com.pulumi.alicloud.ram.UserArgs;\nimport com.pulumi.alicloud.ram.Group;\nimport com.pulumi.alicloud.ram.GroupArgs;\nimport com.pulumi.alicloud.ram.UserGroupAttachment;\nimport com.pulumi.alicloud.ram.UserGroupAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultUser = new User(\"defaultUser\", UserArgs.builder()\n            .name(String.format(\"terraform-example-%s\", default_.result()))\n            .displayName(String.format(\"terraform-example-%s\", default_.result()))\n            .build());\n\n        var defaultGroup = new Group(\"defaultGroup\", GroupArgs.builder()\n            .name(String.format(\"terraform-example-%s\", default_.result()))\n            .build());\n\n        var defaultUserGroupAttachment = new UserGroupAttachment(\"defaultUserGroupAttachment\", UserGroupAttachmentArgs.builder()\n            .groupName(defaultGroup.id())\n            .userName(defaultUser.name())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultUser:\n    type: alicloud:ram:User\n    name: default\n    properties:\n      name: terraform-example-${default.result}\n      displayName: terraform-example-${default.result}\n  defaultGroup:\n    type: alicloud:ram:Group\n    name: default\n    properties:\n      name: terraform-example-${default.result}\n  defaultUserGroupAttachment:\n    type: alicloud:ram:UserGroupAttachment\n    name: default\n    properties:\n      groupName: ${defaultGroup.id}\n      userName: ${defaultUser.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRAM User Group Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ram/userGroupAttachment:UserGroupAttachment example \u003cgroup_name\u003e:\u003cuser_name\u003e\n```\n\n","properties":{"groupName":{"type":"string","description":"The name of group.\n"},"userName":{"type":"string","description":"The name of user.\n"}},"required":["groupName","userName"],"inputProperties":{"groupName":{"type":"string","description":"The name of group.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"The name of user.\n","willReplaceOnChanges":true}},"requiredInputs":["groupName","userName"],"stateInputs":{"description":"Input properties used for looking up and filtering UserGroupAttachment resources.\n","properties":{"groupName":{"type":"string","description":"The name of group.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"The name of user.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ram/userPolicyAttachment:UserPolicyAttachment":{"description":"Provides a RAM User Policy Attachment resource.\n\n\n\nFor information about RAM User Policy Attachment and how to use it, see [What is User Policy Attachment](https://next.api.alibabacloud.com/document/Ram/2015-05-01/AttachPolicyToUser).\n\n\u003e **NOTE:** Available since v1.0.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\n// Create a RAM User Policy attachment.\nconst user = new alicloud.ram.User(\"user\", {\n    name: \"userName\",\n    displayName: \"user_display_name\",\n    mobile: \"86-18688888888\",\n    email: \"hello.uuu@aaa.com\",\n    comments: \"yoyoyo\",\n});\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst policy = new alicloud.ram.Policy(\"policy\", {\n    policyName: `tf-example-${_default.result}`,\n    policyDocument: `  {\n    \\\\\"Statement\\\\\": [\n      {\n        \\\\\"Action\\\\\": [\n          \\\\\"oss:ListObjects\\\\\",\n          \\\\\"oss:GetObject\\\\\"\n        ],\n        \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n        \\\\\"Resource\\\\\": [\n          \\\\\"acs:oss:*:*:mybucket\\\\\",\n          \\\\\"acs:oss:*:*:mybucket/*\\\\\"\n        ]\n      }\n    ],\n      \\\\\"Version\\\\\": \\\\\"1\\\\\"\n  }\n`,\n    description: \"this is a policy test\",\n});\nconst attach = new alicloud.ram.UserPolicyAttachment(\"attach\", {\n    policyName: policy.policyName,\n    policyType: policy.type,\n    userName: user.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\n# Create a RAM User Policy attachment.\nuser = alicloud.ram.User(\"user\",\n    name=\"userName\",\n    display_name=\"user_display_name\",\n    mobile=\"86-18688888888\",\n    email=\"hello.uuu@aaa.com\",\n    comments=\"yoyoyo\")\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\npolicy = alicloud.ram.Policy(\"policy\",\n    policy_name=f\"tf-example-{default['result']}\",\n    policy_document=\"\"\"  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": [\n          \\\"oss:ListObjects\\\",\n          \\\"oss:GetObject\\\"\n        ],\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Resource\\\": [\n          \\\"acs:oss:*:*:mybucket\\\",\n          \\\"acs:oss:*:*:mybucket/*\\\"\n        ]\n      }\n    ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n\"\"\",\n    description=\"this is a policy test\")\nattach = alicloud.ram.UserPolicyAttachment(\"attach\",\n    policy_name=policy.policy_name,\n    policy_type=policy.type,\n    user_name=user.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a RAM User Policy attachment.\n    var user = new AliCloud.Ram.User(\"user\", new()\n    {\n        Name = \"userName\",\n        DisplayName = \"user_display_name\",\n        Mobile = \"86-18688888888\",\n        Email = \"hello.uuu@aaa.com\",\n        Comments = \"yoyoyo\",\n    });\n\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var policy = new AliCloud.Ram.Policy(\"policy\", new()\n    {\n        PolicyName = $\"tf-example-{@default.Result}\",\n        PolicyDocument = @\"  {\n    \\\"\"Statement\\\"\": [\n      {\n        \\\"\"Action\\\"\": [\n          \\\"\"oss:ListObjects\\\"\",\n          \\\"\"oss:GetObject\\\"\"\n        ],\n        \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n        \\\"\"Resource\\\"\": [\n          \\\"\"acs:oss:*:*:mybucket\\\"\",\n          \\\"\"acs:oss:*:*:mybucket/*\\\"\"\n        ]\n      }\n    ],\n      \\\"\"Version\\\"\": \\\"\"1\\\"\"\n  }\n\",\n        Description = \"this is a policy test\",\n    });\n\n    var attach = new AliCloud.Ram.UserPolicyAttachment(\"attach\", new()\n    {\n        PolicyName = policy.PolicyName,\n        PolicyType = policy.Type,\n        UserName = user.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a RAM User Policy attachment.\n\t\tuser, err := ram.NewUser(ctx, \"user\", \u0026ram.UserArgs{\n\t\t\tName:        pulumi.String(\"userName\"),\n\t\t\tDisplayName: pulumi.String(\"user_display_name\"),\n\t\t\tMobile:      pulumi.String(\"86-18688888888\"),\n\t\t\tEmail:       pulumi.String(\"hello.uuu@aaa.com\"),\n\t\t\tComments:    pulumi.String(\"yoyoyo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicy, err := ram.NewPolicy(ctx, \"policy\", \u0026ram.PolicyArgs{\n\t\t\tPolicyName: pulumi.Sprintf(\"tf-example-%v\", _default.Result),\n\t\t\tPolicyDocument: pulumi.String(`  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": [\n          \\\"oss:ListObjects\\\",\n          \\\"oss:GetObject\\\"\n        ],\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Resource\\\": [\n          \\\"acs:oss:*:*:mybucket\\\",\n          \\\"acs:oss:*:*:mybucket/*\\\"\n        ]\n      }\n    ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n`),\n\t\t\tDescription: pulumi.String(\"this is a policy test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewUserPolicyAttachment(ctx, \"attach\", \u0026ram.UserPolicyAttachmentArgs{\n\t\t\tPolicyName: policy.PolicyName,\n\t\t\tPolicyType: policy.Type,\n\t\t\tUserName:   user.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.User;\nimport com.pulumi.alicloud.ram.UserArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ram.Policy;\nimport com.pulumi.alicloud.ram.PolicyArgs;\nimport com.pulumi.alicloud.ram.UserPolicyAttachment;\nimport com.pulumi.alicloud.ram.UserPolicyAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a RAM User Policy attachment.\n        var user = new User(\"user\", UserArgs.builder()\n            .name(\"userName\")\n            .displayName(\"user_display_name\")\n            .mobile(\"86-18688888888\")\n            .email(\"hello.uuu@aaa.com\")\n            .comments(\"yoyoyo\")\n            .build());\n\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var policy = new Policy(\"policy\", PolicyArgs.builder()\n            .policyName(String.format(\"tf-example-%s\", default_.result()))\n            .policyDocument(\"\"\"\n  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": [\n          \\\"oss:ListObjects\\\",\n          \\\"oss:GetObject\\\"\n        ],\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Resource\\\": [\n          \\\"acs:oss:*:*:mybucket\\\",\n          \\\"acs:oss:*:*:mybucket/*\\\"\n        ]\n      }\n    ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n            \"\"\")\n            .description(\"this is a policy test\")\n            .build());\n\n        var attach = new UserPolicyAttachment(\"attach\", UserPolicyAttachmentArgs.builder()\n            .policyName(policy.policyName())\n            .policyType(policy.type())\n            .userName(user.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a RAM User Policy attachment.\n  user:\n    type: alicloud:ram:User\n    properties:\n      name: userName\n      displayName: user_display_name\n      mobile: 86-18688888888\n      email: hello.uuu@aaa.com\n      comments: yoyoyo\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  policy:\n    type: alicloud:ram:Policy\n    properties:\n      policyName: tf-example-${default.result}\n      policyDocument: |2\n          {\n            \\\"Statement\\\": [\n              {\n                \\\"Action\\\": [\n                  \\\"oss:ListObjects\\\",\n                  \\\"oss:GetObject\\\"\n                ],\n                \\\"Effect\\\": \\\"Allow\\\",\n                \\\"Resource\\\": [\n                  \\\"acs:oss:*:*:mybucket\\\",\n                  \\\"acs:oss:*:*:mybucket/*\\\"\n                ]\n              }\n            ],\n              \\\"Version\\\": \\\"1\\\"\n          }\n      description: this is a policy test\n  attach:\n    type: alicloud:ram:UserPolicyAttachment\n    properties:\n      policyName: ${policy.policyName}\n      policyType: ${policy.type}\n      userName: ${user.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRAM User Policy Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ram/userPolicyAttachment:UserPolicyAttachment example user:\u003cpolicy_name\u003e:\u003cpolicy_type\u003e:\u003cuser_name\u003e\n```\n\n","properties":{"policyName":{"type":"string","description":"The name of the policy.\n"},"policyType":{"type":"string","description":"Permission policy type.\n- Custom: Custom policy.\n- System: System policy.\n"},"userName":{"type":"string","description":"The name of the RAM user.\n"}},"required":["policyName","policyType","userName"],"inputProperties":{"policyName":{"type":"string","description":"The name of the policy.\n","willReplaceOnChanges":true},"policyType":{"type":"string","description":"Permission policy type.\n- Custom: Custom policy.\n- System: System policy.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"The name of the RAM user.\n","willReplaceOnChanges":true}},"requiredInputs":["policyName","policyType","userName"],"stateInputs":{"description":"Input properties used for looking up and filtering UserPolicyAttachment resources.\n","properties":{"policyName":{"type":"string","description":"The name of the policy.\n","willReplaceOnChanges":true},"policyType":{"type":"string","description":"Permission policy type.\n- Custom: Custom policy.\n- System: System policy.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"The name of the RAM user.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rdc/organization:Organization":{"description":"Provides a RDC Organization resource.\n\nFor information about RDC Organization and how to use it, see [What is Organization](https://www.alibabacloud.com/help/en/yunxiao/product-overview/what-is-cloud-effect).\n\n\u003e **NOTE:** Available since v1.137.0.\n\n\u003e **DEPRECATED:** This resource has been deprecated from version `1.238.0`.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.rdc.Organization(\"example\", {\n    organizationName: \"example_value\",\n    source: \"example_value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.rdc.Organization(\"example\",\n    organization_name=\"example_value\",\n    source=\"example_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Rdc.Organization(\"example\", new()\n    {\n        OrganizationName = \"example_value\",\n        Source = \"example_value\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rdc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rdc.NewOrganization(ctx, \"example\", \u0026rdc.OrganizationArgs{\n\t\t\tOrganizationName: pulumi.String(\"example_value\"),\n\t\t\tSource:           pulumi.String(\"example_value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rdc.Organization;\nimport com.pulumi.alicloud.rdc.OrganizationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Organization(\"example\", OrganizationArgs.builder()\n            .organizationName(\"example_value\")\n            .source(\"example_value\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:rdc:Organization\n    properties:\n      organizationName: example_value\n      source: example_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDC Organization can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rdc/organization:Organization example \u003cid\u003e\n```\n\n","properties":{"desiredMemberCount":{"type":"integer","description":"The desired member count.\n"},"organizationName":{"type":"string","description":"Company name.\n"},"realPk":{"type":"string","description":"User pk, not required, only required when the ak used by the calling interface is inconsistent with the user pk\n"},"source":{"type":"string","description":"This is organization source information\n"}},"required":["organizationName","source"],"inputProperties":{"desiredMemberCount":{"type":"integer","description":"The desired member count.\n"},"organizationName":{"type":"string","description":"Company name.\n","willReplaceOnChanges":true},"realPk":{"type":"string","description":"User pk, not required, only required when the ak used by the calling interface is inconsistent with the user pk\n"},"source":{"type":"string","description":"This is organization source information\n"}},"requiredInputs":["organizationName","source"],"stateInputs":{"description":"Input properties used for looking up and filtering Organization resources.\n","properties":{"desiredMemberCount":{"type":"integer","description":"The desired member count.\n"},"organizationName":{"type":"string","description":"Company name.\n","willReplaceOnChanges":true},"realPk":{"type":"string","description":"User pk, not required, only required when the ak used by the calling interface is inconsistent with the user pk\n"},"source":{"type":"string","description":"This is organization source information\n"}},"type":"object"}},"alicloud:rds/account:Account":{"description":"Provides an RDS account resource and used to manage databases.\n\n\u003e **DEPRECATED:**  This resource  has been deprecated from version `1.120.0`. Please use new resource alicloud_rds_account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst creation = config.get(\"creation\") || \"Rds\";\nconst name = config.get(\"name\") || \"dbaccountmysql\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: creation,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst instance = new alicloud.rds.Instance(\"instance\", {\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n    instanceType: \"rds.mysql.s1.small\",\n    instanceStorage: 10,\n    vswitchId: defaultSwitch.id,\n    instanceName: name,\n});\nconst account = new alicloud.rds.Account(\"account\", {\n    instanceId: instance.id,\n    name: \"tftestnormal\",\n    password: \"Test12345\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\ncreation = config.get(\"creation\")\nif creation is None:\n    creation = \"Rds\"\nname = config.get(\"name\")\nif name is None:\n    name = \"dbaccountmysql\"\ndefault = alicloud.get_zones(available_resource_creation=creation)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ninstance = alicloud.rds.Instance(\"instance\",\n    engine=\"MySQL\",\n    engine_version=\"5.6\",\n    instance_type=\"rds.mysql.s1.small\",\n    instance_storage=10,\n    vswitch_id=default_switch.id,\n    instance_name=name)\naccount = alicloud.rds.Account(\"account\",\n    instance_id=instance.id,\n    name=\"tftestnormal\",\n    password=\"Test12345\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var creation = config.Get(\"creation\") ?? \"Rds\";\n    var name = config.Get(\"name\") ?? \"dbaccountmysql\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = creation,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var instance = new AliCloud.Rds.Instance(\"instance\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n        InstanceType = \"rds.mysql.s1.small\",\n        InstanceStorage = 10,\n        VswitchId = defaultSwitch.Id,\n        InstanceName = name,\n    });\n\n    var account = new AliCloud.Rds.Account(\"account\", new()\n    {\n        InstanceId = instance.Id,\n        Name = \"tftestnormal\",\n        Password = \"Test12345\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tcreation := \"Rds\"\n\t\tif param := cfg.Get(\"creation\"); param != \"\" {\n\t\t\tcreation = param\n\t\t}\n\t\tname := \"dbaccountmysql\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(creation),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := rds.NewInstance(ctx, \"instance\", \u0026rds.InstanceArgs{\n\t\t\tEngine:          pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:   pulumi.String(\"5.6\"),\n\t\t\tInstanceType:    pulumi.String(\"rds.mysql.s1.small\"),\n\t\t\tInstanceStorage: pulumi.Int(10),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\tInstanceName:    pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewAccount(ctx, \"account\", \u0026rds.AccountArgs{\n\t\t\tInstanceId: instance.ID(),\n\t\t\tName:       pulumi.String(\"tftestnormal\"),\n\t\t\tPassword:   pulumi.String(\"Test12345\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.Account;\nimport com.pulumi.alicloud.rds.AccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var creation = config.get(\"creation\").orElse(\"Rds\");\n        final var name = config.get(\"name\").orElse(\"dbaccountmysql\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(creation)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var instance = new Instance(\"instance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .instanceType(\"rds.mysql.s1.small\")\n            .instanceStorage(10)\n            .vswitchId(defaultSwitch.id())\n            .instanceName(name)\n            .build());\n\n        var account = new Account(\"account\", AccountArgs.builder()\n            .instanceId(instance.id())\n            .name(\"tftestnormal\")\n            .password(\"Test12345\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  creation:\n    type: string\n    default: Rds\n  name:\n    type: string\n    default: dbaccountmysql\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  instance:\n    type: alicloud:rds:Instance\n    properties:\n      engine: MySQL\n      engineVersion: '5.6'\n      instanceType: rds.mysql.s1.small\n      instanceStorage: '10'\n      vswitchId: ${defaultSwitch.id}\n      instanceName: ${name}\n  account:\n    type: alicloud:rds:Account\n    properties:\n      instanceId: ${instance.id}\n      name: tftestnormal\n      password: Test12345\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: ${creation}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/account:Account example \"rm-12345:tf_account\"\n```\n\n","properties":{"accountDescription":{"type":"string"},"accountName":{"type":"string"},"accountPassword":{"type":"string","secret":true},"accountType":{"type":"string"},"checkPolicy":{"type":"boolean"},"dbInstanceId":{"type":"string"},"description":{"type":"string","description":"Database description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.\n","deprecationMessage":"Field 'description' has been deprecated from provider version 1.120.0. New field 'account_description' instead."},"instanceId":{"type":"string","description":"The Id of instance in which account belongs.\n","deprecationMessage":"Field 'instance_id' has been deprecated from provider version 1.120.0. New field 'db_instance_id' instead."},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a db account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"name":{"type":"string","description":"Operation account requiring a uniqueness check. It may consist of lower case letters, numbers, and underlines, and must start with a letter and have no more than 16 characters.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.120.0. New field 'account_name' instead."},"password":{"type":"string","description":"Operation password. It may consist of letters, digits, or underlines, with a length of 6 to 32 characters. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","deprecationMessage":"Field 'password' has been deprecated from provider version 1.120.0. New field 'account_password' instead.","secret":true},"resetPermissionFlag":{"type":"boolean"},"status":{"type":"string"},"type":{"type":"string","description":"Privilege type of account. The SQLServer engine does not support create high privilege accounts.\n- Normal: Common privilege.\n- Super: High privilege.\n\nDefault to Normal.\n","deprecationMessage":"Field 'type' has been deprecated from provider version 1.120.0. New field 'account_type' instead."}},"required":["accountDescription","accountName","accountPassword","accountType","dbInstanceId","description","instanceId","name","password","status","type"],"inputProperties":{"accountDescription":{"type":"string"},"accountName":{"type":"string","willReplaceOnChanges":true},"accountPassword":{"type":"string","secret":true},"accountType":{"type":"string","willReplaceOnChanges":true},"checkPolicy":{"type":"boolean"},"dbInstanceId":{"type":"string","willReplaceOnChanges":true},"description":{"type":"string","description":"Database description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.\n","deprecationMessage":"Field 'description' has been deprecated from provider version 1.120.0. New field 'account_description' instead."},"instanceId":{"type":"string","description":"The Id of instance in which account belongs.\n","deprecationMessage":"Field 'instance_id' has been deprecated from provider version 1.120.0. New field 'db_instance_id' instead.","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a db account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"name":{"type":"string","description":"Operation account requiring a uniqueness check. It may consist of lower case letters, numbers, and underlines, and must start with a letter and have no more than 16 characters.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.120.0. New field 'account_name' instead.","willReplaceOnChanges":true},"password":{"type":"string","description":"Operation password. It may consist of letters, digits, or underlines, with a length of 6 to 32 characters. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","deprecationMessage":"Field 'password' has been deprecated from provider version 1.120.0. New field 'account_password' instead.","secret":true},"resetPermissionFlag":{"type":"boolean"},"status":{"type":"string"},"type":{"type":"string","description":"Privilege type of account. The SQLServer engine does not support create high privilege accounts.\n- Normal: Common privilege.\n- Super: High privilege.\n\nDefault to Normal.\n","deprecationMessage":"Field 'type' has been deprecated from provider version 1.120.0. New field 'account_type' instead.","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Account resources.\n","properties":{"accountDescription":{"type":"string"},"accountName":{"type":"string","willReplaceOnChanges":true},"accountPassword":{"type":"string","secret":true},"accountType":{"type":"string","willReplaceOnChanges":true},"checkPolicy":{"type":"boolean"},"dbInstanceId":{"type":"string","willReplaceOnChanges":true},"description":{"type":"string","description":"Database description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.\n","deprecationMessage":"Field 'description' has been deprecated from provider version 1.120.0. New field 'account_description' instead."},"instanceId":{"type":"string","description":"The Id of instance in which account belongs.\n","deprecationMessage":"Field 'instance_id' has been deprecated from provider version 1.120.0. New field 'db_instance_id' instead.","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. If the \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a db account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"name":{"type":"string","description":"Operation account requiring a uniqueness check. It may consist of lower case letters, numbers, and underlines, and must start with a letter and have no more than 16 characters.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.120.0. New field 'account_name' instead.","willReplaceOnChanges":true},"password":{"type":"string","description":"Operation password. It may consist of letters, digits, or underlines, with a length of 6 to 32 characters. You have to specify one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e fields.\n","deprecationMessage":"Field 'password' has been deprecated from provider version 1.120.0. New field 'account_password' instead.","secret":true},"resetPermissionFlag":{"type":"boolean"},"status":{"type":"string"},"type":{"type":"string","description":"Privilege type of account. The SQLServer engine does not support create high privilege accounts.\n- Normal: Common privilege.\n- Super: High privilege.\n\nDefault to Normal.\n","deprecationMessage":"Field 'type' has been deprecated from provider version 1.120.0. New field 'account_type' instead.","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rds/accountPrivilege:AccountPrivilege":{"description":"Provides an RDS account privilege resource and used to grant several database some access privilege. A database can be granted by multiple account, see [What is DB Account Privilege](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/api-rds-2014-08-15-grantaccountprivilege).\n\n\u003e **NOTE:** At present, a database can only have one database owner.\n\n\u003e **NOTE:** Available since v1.5.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst instance = new alicloud.rds.Instance(\"instance\", {\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n    instanceType: \"rds.mysql.s1.small\",\n    instanceStorage: 10,\n    vswitchId: defaultSwitch.id,\n    instanceName: name,\n});\nconst db: alicloud.rds.Database[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    db.push(new alicloud.rds.Database(`db-${range.value}`, {\n        instanceId: instance.id,\n        name: `${name}_${range.value}`,\n        description: \"from terraform\",\n    }));\n}\nconst account = new alicloud.rds.Account(\"account\", {\n    dbInstanceId: instance.id,\n    accountName: \"tfexample\",\n    accountPassword: \"Example12345\",\n    accountDescription: \"from terraform\",\n});\nconst privilege = new alicloud.rds.AccountPrivilege(\"privilege\", {\n    instanceId: instance.id,\n    accountName: account.accountName,\n    privilege: \"ReadOnly\",\n    dbNames: db.map(__item =\u003e __item.name),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"5.6\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ninstance = alicloud.rds.Instance(\"instance\",\n    engine=\"MySQL\",\n    engine_version=\"5.6\",\n    instance_type=\"rds.mysql.s1.small\",\n    instance_storage=10,\n    vswitch_id=default_switch.id,\n    instance_name=name)\ndb = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    db.append(alicloud.rds.Database(f\"db-{range['value']}\",\n        instance_id=instance.id,\n        name=f\"{name}_{range['value']}\",\n        description=\"from terraform\"))\naccount = alicloud.rds.Account(\"account\",\n    db_instance_id=instance.id,\n    account_name=\"tfexample\",\n    account_password=\"Example12345\",\n    account_description=\"from terraform\")\nprivilege = alicloud.rds.AccountPrivilege(\"privilege\",\n    instance_id=instance.id,\n    account_name=account.account_name,\n    privilege=\"ReadOnly\",\n    db_names=[__item.name for __item in db])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var instance = new AliCloud.Rds.Instance(\"instance\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n        InstanceType = \"rds.mysql.s1.small\",\n        InstanceStorage = 10,\n        VswitchId = defaultSwitch.Id,\n        InstanceName = name,\n    });\n\n    var db = new List\u003cAliCloud.Rds.Database\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        db.Add(new AliCloud.Rds.Database($\"db-{range.Value}\", new()\n        {\n            InstanceId = instance.Id,\n            Name = $\"{name}_{range.Value}\",\n            Description = \"from terraform\",\n        }));\n    }\n    var account = new AliCloud.Rds.Account(\"account\", new()\n    {\n        DbInstanceId = instance.Id,\n        AccountName = \"tfexample\",\n        AccountPassword = \"Example12345\",\n        AccountDescription = \"from terraform\",\n    });\n\n    var privilege = new AliCloud.Rds.AccountPrivilege(\"privilege\", new()\n    {\n        InstanceId = instance.Id,\n        AccountName = account.AccountName,\n        Privilege = \"ReadOnly\",\n        DbNames = db.Select(__item =\u003e __item.Name).ToList(),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:        pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion: pulumi.StringRef(\"5.6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := rds.NewInstance(ctx, \"instance\", \u0026rds.InstanceArgs{\n\t\t\tEngine:          pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:   pulumi.String(\"5.6\"),\n\t\t\tInstanceType:    pulumi.String(\"rds.mysql.s1.small\"),\n\t\t\tInstanceStorage: pulumi.Int(10),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\tInstanceName:    pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar db []*rds.Database\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := rds.NewDatabase(ctx, fmt.Sprintf(\"db-%v\", key0), \u0026rds.DatabaseArgs{\n\t\t\t\tInstanceId:  instance.ID(),\n\t\t\t\tName:        pulumi.Sprintf(\"%v_%v\", name, val0),\n\t\t\t\tDescription: pulumi.String(\"from terraform\"),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdb = append(db, __res)\n\t\t}\n\t\taccount, err := rds.NewAccount(ctx, \"account\", \u0026rds.AccountArgs{\n\t\t\tDbInstanceId:       instance.ID(),\n\t\t\tAccountName:        pulumi.String(\"tfexample\"),\n\t\t\tAccountPassword:    pulumi.String(\"Example12345\"),\n\t\t\tAccountDescription: pulumi.String(\"from terraform\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar splat0 pulumi.StringArray\n\t\tfor _, val0 := range db {\n\t\t\tsplat0 = append(splat0, val0.Name)\n\t\t}\n\t\t_, err = rds.NewAccountPrivilege(ctx, \"privilege\", \u0026rds.AccountPrivilegeArgs{\n\t\t\tInstanceId:  instance.ID(),\n\t\t\tAccountName: account.AccountName,\n\t\t\tPrivilege:   pulumi.String(\"ReadOnly\"),\n\t\t\tDbNames:     splat0,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.Database;\nimport com.pulumi.alicloud.rds.DatabaseArgs;\nimport com.pulumi.alicloud.rds.Account;\nimport com.pulumi.alicloud.rds.AccountArgs;\nimport com.pulumi.alicloud.rds.AccountPrivilege;\nimport com.pulumi.alicloud.rds.AccountPrivilegeArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var instance = new Instance(\"instance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .instanceType(\"rds.mysql.s1.small\")\n            .instanceStorage(10)\n            .vswitchId(defaultSwitch.id())\n            .instanceName(name)\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Database(\"db-\" + i, DatabaseArgs.builder()\n                .instanceId(instance.id())\n                .name(String.format(\"%s_%s\", name,range.value()))\n                .description(\"from terraform\")\n                .build());\n\n        \n}\n        var account = new Account(\"account\", AccountArgs.builder()\n            .dbInstanceId(instance.id())\n            .accountName(\"tfexample\")\n            .accountPassword(\"Example12345\")\n            .accountDescription(\"from terraform\")\n            .build());\n\n        var privilege = new AccountPrivilege(\"privilege\", AccountPrivilegeArgs.builder()\n            .instanceId(instance.id())\n            .accountName(account.accountName())\n            .privilege(\"ReadOnly\")\n            .dbNames(db.stream().map(element -\u003e element.name()).collect(toList()))\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS account privilege can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/accountPrivilege:AccountPrivilege example \"rm-12345:tf_account:ReadOnly\"\n```\n\n","properties":{"accountName":{"type":"string","description":"A specified account name.\n"},"dbNames":{"type":"array","items":{"type":"string"},"description":"List of specified database name.\n"},"instanceId":{"type":"string","description":"The Id of instance in which account belongs.\n"},"privilege":{"type":"string","description":"The privilege of one account access database. Valid values: \n- ReadOnly: This value is only for MySQL, MariaDB and SQL Server\n- ReadWrite: This value is only for MySQL, MariaDB and SQL Server\n- DDLOnly: (Available in 1.64.0+) This value is only for MySQL and MariaDB\n- DMLOnly: (Available in 1.64.0+) This value is only for MySQL and MariaDB\n- DBOwner: (Available in 1.64.0+) This value is only for SQL Server and PostgreSQL.\nDefault to \"ReadOnly\".\n"}},"required":["accountName","dbNames","instanceId"],"inputProperties":{"accountName":{"type":"string","description":"A specified account name.\n","willReplaceOnChanges":true},"dbNames":{"type":"array","items":{"type":"string"},"description":"List of specified database name.\n"},"instanceId":{"type":"string","description":"The Id of instance in which account belongs.\n","willReplaceOnChanges":true},"privilege":{"type":"string","description":"The privilege of one account access database. Valid values: \n- ReadOnly: This value is only for MySQL, MariaDB and SQL Server\n- ReadWrite: This value is only for MySQL, MariaDB and SQL Server\n- DDLOnly: (Available in 1.64.0+) This value is only for MySQL and MariaDB\n- DMLOnly: (Available in 1.64.0+) This value is only for MySQL and MariaDB\n- DBOwner: (Available in 1.64.0+) This value is only for SQL Server and PostgreSQL.\nDefault to \"ReadOnly\".\n","willReplaceOnChanges":true}},"requiredInputs":["accountName","dbNames","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering AccountPrivilege resources.\n","properties":{"accountName":{"type":"string","description":"A specified account name.\n","willReplaceOnChanges":true},"dbNames":{"type":"array","items":{"type":"string"},"description":"List of specified database name.\n"},"instanceId":{"type":"string","description":"The Id of instance in which account belongs.\n","willReplaceOnChanges":true},"privilege":{"type":"string","description":"The privilege of one account access database. Valid values: \n- ReadOnly: This value is only for MySQL, MariaDB and SQL Server\n- ReadWrite: This value is only for MySQL, MariaDB and SQL Server\n- DDLOnly: (Available in 1.64.0+) This value is only for MySQL and MariaDB\n- DMLOnly: (Available in 1.64.0+) This value is only for MySQL and MariaDB\n- DBOwner: (Available in 1.64.0+) This value is only for SQL Server and PostgreSQL.\nDefault to \"ReadOnly\".\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rds/aiInstance:AiInstance":{"description":"Provides a Rds Ai Instance resource.\n\n\n\nFor information about Rds Ai Instance and how to use it, see [What is Instance](https://next.api.alibabacloud.com/document/RdsAi/2025-05-07/CreateAppInstance).\n\n\u003e **NOTE:** Available since v1.268.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.vpc.getSwitches({\n    zoneId: \"cn-hangzhou-i\",\n});\nconst defaultInstance = new alicloud.rds.Instance(\"default\", {\n    engine: \"PostgreSQL\",\n    engineVersion: \"17.0\",\n    dbInstanceStorageType: \"general_essd\",\n    instanceType: \"pg.n2.1c.1m\",\n    instanceStorage: 100,\n    vswitchId: _default.then(_default =\u003e _default.ids?.[0]),\n    instanceName: name,\n});\nconst defaultAiInstance = new alicloud.rds.AiInstance(\"default\", {\n    appName: name,\n    appType: \"supabase\",\n    dbInstanceName: defaultInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.vpc.get_switches(zone_id=\"cn-hangzhou-i\")\ndefault_instance = alicloud.rds.Instance(\"default\",\n    engine=\"PostgreSQL\",\n    engine_version=\"17.0\",\n    db_instance_storage_type=\"general_essd\",\n    instance_type=\"pg.n2.1c.1m\",\n    instance_storage=100,\n    vswitch_id=default.ids[0],\n    instance_name=name)\ndefault_ai_instance = alicloud.rds.AiInstance(\"default\",\n    app_name=name,\n    app_type=\"supabase\",\n    db_instance_name=default_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        ZoneId = \"cn-hangzhou-i\",\n    });\n\n    var defaultInstance = new AliCloud.Rds.Instance(\"default\", new()\n    {\n        Engine = \"PostgreSQL\",\n        EngineVersion = \"17.0\",\n        DbInstanceStorageType = \"general_essd\",\n        InstanceType = \"pg.n2.1c.1m\",\n        InstanceStorage = 100,\n        VswitchId = @default.Apply(@default =\u003e @default.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0])),\n        InstanceName = name,\n    });\n\n    var defaultAiInstance = new AliCloud.Rds.AiInstance(\"default\", new()\n    {\n        AppName = name,\n        AppType = \"supabase\",\n        DbInstanceName = defaultInstance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tZoneId: pulumi.StringRef(\"cn-hangzhou-i\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rds.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"PostgreSQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"17.0\"),\n\t\t\tDbInstanceStorageType: pulumi.String(\"general_essd\"),\n\t\t\tInstanceType:          pulumi.String(\"pg.n2.1c.1m\"),\n\t\t\tInstanceStorage:       pulumi.Int(100),\n\t\t\tVswitchId:             pulumi.String(_default.Ids[0]),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewAiInstance(ctx, \"default\", \u0026rds.AiInstanceArgs{\n\t\t\tAppName:        pulumi.String(name),\n\t\t\tAppType:        pulumi.String(\"supabase\"),\n\t\t\tDbInstanceName: defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.AiInstance;\nimport com.pulumi.alicloud.rds.AiInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .zoneId(\"cn-hangzhou-i\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engine(\"PostgreSQL\")\n            .engineVersion(\"17.0\")\n            .dbInstanceStorageType(\"general_essd\")\n            .instanceType(\"pg.n2.1c.1m\")\n            .instanceStorage(100)\n            .vswitchId(default_.ids()[0])\n            .instanceName(name)\n            .build());\n\n        var defaultAiInstance = new AiInstance(\"defaultAiInstance\", AiInstanceArgs.builder()\n            .appName(name)\n            .appType(\"supabase\")\n            .dbInstanceName(defaultInstance.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInstance:\n    type: alicloud:rds:Instance\n    name: default\n    properties:\n      engine: PostgreSQL\n      engineVersion: '17.0'\n      dbInstanceStorageType: general_essd\n      instanceType: pg.n2.1c.1m\n      instanceStorage: 100\n      vswitchId: ${default.ids[0]}\n      instanceName: ${name}\n  defaultAiInstance:\n    type: alicloud:rds:AiInstance\n    name: default\n    properties:\n      appName: ${name}\n      appType: supabase\n      dbInstanceName: ${defaultInstance.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        zoneId: cn-hangzhou-i\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRds Ai Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/aiInstance:AiInstance example \u003cid\u003e\n```\n\n","properties":{"appName":{"type":"string","description":"The name of the new AI application.\n"},"appType":{"type":"string","description":"Application type. Currently, only \u003cspan pulumi-lang-nodejs=\"`supabase`\" pulumi-lang-dotnet=\"`Supabase`\" pulumi-lang-go=\"`supabase`\" pulumi-lang-python=\"`supabase`\" pulumi-lang-yaml=\"`supabase`\" pulumi-lang-java=\"`supabase`\"\u003e`supabase`\u003c/span\u003e is supported.\n"},"authConfigLists":{"type":"array","items":{"$ref":"#/types/alicloud:rds/AiInstanceAuthConfigList:AiInstanceAuthConfigList"},"description":"Authentication information list. See \u003cspan pulumi-lang-nodejs=\"`authConfigList`\" pulumi-lang-dotnet=\"`AuthConfigList`\" pulumi-lang-go=\"`authConfigList`\" pulumi-lang-python=\"`auth_config_list`\" pulumi-lang-yaml=\"`authConfigList`\" pulumi-lang-java=\"`authConfigList`\"\u003e`auth_config_list`\u003c/span\u003e below.\n"},"caType":{"type":"string","description":"The type of the certificate. Currently, only \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e is supported. A custom certificate is used.\n\n\u003e **NOTE:**  When \u003cspan pulumi-lang-nodejs=\"`sslEnabled`\" pulumi-lang-dotnet=\"`SslEnabled`\" pulumi-lang-go=\"`sslEnabled`\" pulumi-lang-python=\"`ssl_enabled`\" pulumi-lang-yaml=\"`sslEnabled`\" pulumi-lang-java=\"`sslEnabled`\"\u003e`ssl_enabled`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, this parameter must be configured.\n"},"dashboardPassword":{"type":"string","description":"Supabase Dashboard password.\nThe password must be 8 to 32 characters in length and contain three or more characters: uppercase letters, lowercase letters, numbers, and underscores (_).\n","secret":true},"databasePassword":{"type":"string","description":"The RDS Database access password.\nThe password must be 8 to 32 characters in length and contain three or more characters: uppercase letters, lowercase letters, numbers, and underscores (_).\n","secret":true},"dbInstanceName":{"type":"string","description":"The ID of the RDS PostgreSQL database instance accessed by the AI application.\nsupports only **newly purchased empty RDS PostgreSQL instances**. The major version is \u003cspan pulumi-lang-nodejs=\"`17`\" pulumi-lang-dotnet=\"`17`\" pulumi-lang-go=\"`17`\" pulumi-lang-python=\"`17`\" pulumi-lang-yaml=\"`17`\" pulumi-lang-java=\"`17`\"\u003e`17`\u003c/span\u003e, and the minor version is **20250630 or later**.\u003e\n"},"initializeWithExistingData":{"type":"boolean","description":"Whether to recover from existing PG data. Valid values:\n"},"publicEndpointEnabled":{"type":"boolean","description":"Whether to enable the public network connection address. Valid values:\n"},"publicNetworkAccessEnabled":{"type":"boolean","description":"Whether to enable the public network NAT gateway. Valid values:\n"},"serverCert":{"type":"string","description":"Customize the certificate content.\n\n\u003e **NOTE:**  When \u003cspan pulumi-lang-nodejs=\"`caType`\" pulumi-lang-dotnet=\"`CaType`\" pulumi-lang-go=\"`caType`\" pulumi-lang-python=\"`ca_type`\" pulumi-lang-yaml=\"`caType`\" pulumi-lang-java=\"`caType`\"\u003e`ca_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e, this parameter must be configured.\n"},"serverKey":{"type":"string","description":"The certificate private key.\n\n\u003e **NOTE:**  When \u003cspan pulumi-lang-nodejs=\"`caType`\" pulumi-lang-dotnet=\"`CaType`\" pulumi-lang-go=\"`caType`\" pulumi-lang-python=\"`ca_type`\" pulumi-lang-yaml=\"`caType`\" pulumi-lang-java=\"`caType`\"\u003e`ca_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e, this parameter must be configured.\n"},"sslEnabled":{"type":"integer","description":"Enable or disable SSL. Valid values:\n"},"status":{"type":"string","description":"The status of the instance. Valid values: `Running`, `Stopped`.\n"},"storageConfigLists":{"type":"array","items":{"$ref":"#/types/alicloud:rds/AiInstanceStorageConfigList:AiInstanceStorageConfigList"},"description":"A list of storage configurations. See \u003cspan pulumi-lang-nodejs=\"`storageConfigList`\" pulumi-lang-dotnet=\"`StorageConfigList`\" pulumi-lang-go=\"`storageConfigList`\" pulumi-lang-python=\"`storage_config_list`\" pulumi-lang-yaml=\"`storageConfigList`\" pulumi-lang-java=\"`storageConfigList`\"\u003e`storage_config_list`\u003c/span\u003e below.\n"}},"required":["appName","appType","authConfigLists","status","storageConfigLists"],"inputProperties":{"appName":{"type":"string","description":"The name of the new AI application.\n","willReplaceOnChanges":true},"appType":{"type":"string","description":"Application type. Currently, only \u003cspan pulumi-lang-nodejs=\"`supabase`\" pulumi-lang-dotnet=\"`Supabase`\" pulumi-lang-go=\"`supabase`\" pulumi-lang-python=\"`supabase`\" pulumi-lang-yaml=\"`supabase`\" pulumi-lang-java=\"`supabase`\"\u003e`supabase`\u003c/span\u003e is supported.\n","willReplaceOnChanges":true},"authConfigLists":{"type":"array","items":{"$ref":"#/types/alicloud:rds/AiInstanceAuthConfigList:AiInstanceAuthConfigList"},"description":"Authentication information list. See \u003cspan pulumi-lang-nodejs=\"`authConfigList`\" pulumi-lang-dotnet=\"`AuthConfigList`\" pulumi-lang-go=\"`authConfigList`\" pulumi-lang-python=\"`auth_config_list`\" pulumi-lang-yaml=\"`authConfigList`\" pulumi-lang-java=\"`authConfigList`\"\u003e`auth_config_list`\u003c/span\u003e below.\n"},"caType":{"type":"string","description":"The type of the certificate. Currently, only \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e is supported. A custom certificate is used.\n\n\u003e **NOTE:**  When \u003cspan pulumi-lang-nodejs=\"`sslEnabled`\" pulumi-lang-dotnet=\"`SslEnabled`\" pulumi-lang-go=\"`sslEnabled`\" pulumi-lang-python=\"`ssl_enabled`\" pulumi-lang-yaml=\"`sslEnabled`\" pulumi-lang-java=\"`sslEnabled`\"\u003e`ssl_enabled`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, this parameter must be configured.\n"},"dashboardPassword":{"type":"string","description":"Supabase Dashboard password.\nThe password must be 8 to 32 characters in length and contain three or more characters: uppercase letters, lowercase letters, numbers, and underscores (_).\n","secret":true},"databasePassword":{"type":"string","description":"The RDS Database access password.\nThe password must be 8 to 32 characters in length and contain three or more characters: uppercase letters, lowercase letters, numbers, and underscores (_).\n","secret":true},"dbInstanceName":{"type":"string","description":"The ID of the RDS PostgreSQL database instance accessed by the AI application.\nsupports only **newly purchased empty RDS PostgreSQL instances**. The major version is \u003cspan pulumi-lang-nodejs=\"`17`\" pulumi-lang-dotnet=\"`17`\" pulumi-lang-go=\"`17`\" pulumi-lang-python=\"`17`\" pulumi-lang-yaml=\"`17`\" pulumi-lang-java=\"`17`\"\u003e`17`\u003c/span\u003e, and the minor version is **20250630 or later**.\u003e\n","willReplaceOnChanges":true},"initializeWithExistingData":{"type":"boolean","description":"Whether to recover from existing PG data. Valid values:\n"},"publicEndpointEnabled":{"type":"boolean","description":"Whether to enable the public network connection address. Valid values:\n"},"publicNetworkAccessEnabled":{"type":"boolean","description":"Whether to enable the public network NAT gateway. Valid values:\n"},"serverCert":{"type":"string","description":"Customize the certificate content.\n\n\u003e **NOTE:**  When \u003cspan pulumi-lang-nodejs=\"`caType`\" pulumi-lang-dotnet=\"`CaType`\" pulumi-lang-go=\"`caType`\" pulumi-lang-python=\"`ca_type`\" pulumi-lang-yaml=\"`caType`\" pulumi-lang-java=\"`caType`\"\u003e`ca_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e, this parameter must be configured.\n"},"serverKey":{"type":"string","description":"The certificate private key.\n\n\u003e **NOTE:**  When \u003cspan pulumi-lang-nodejs=\"`caType`\" pulumi-lang-dotnet=\"`CaType`\" pulumi-lang-go=\"`caType`\" pulumi-lang-python=\"`ca_type`\" pulumi-lang-yaml=\"`caType`\" pulumi-lang-java=\"`caType`\"\u003e`ca_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e, this parameter must be configured.\n"},"sslEnabled":{"type":"integer","description":"Enable or disable SSL. Valid values:\n"},"status":{"type":"string","description":"The status of the instance. Valid values: `Running`, `Stopped`.\n"},"storageConfigLists":{"type":"array","items":{"$ref":"#/types/alicloud:rds/AiInstanceStorageConfigList:AiInstanceStorageConfigList"},"description":"A list of storage configurations. See \u003cspan pulumi-lang-nodejs=\"`storageConfigList`\" pulumi-lang-dotnet=\"`StorageConfigList`\" pulumi-lang-go=\"`storageConfigList`\" pulumi-lang-python=\"`storage_config_list`\" pulumi-lang-yaml=\"`storageConfigList`\" pulumi-lang-java=\"`storageConfigList`\"\u003e`storage_config_list`\u003c/span\u003e below.\n"}},"requiredInputs":["appName","appType"],"stateInputs":{"description":"Input properties used for looking up and filtering AiInstance resources.\n","properties":{"appName":{"type":"string","description":"The name of the new AI application.\n","willReplaceOnChanges":true},"appType":{"type":"string","description":"Application type. Currently, only \u003cspan pulumi-lang-nodejs=\"`supabase`\" pulumi-lang-dotnet=\"`Supabase`\" pulumi-lang-go=\"`supabase`\" pulumi-lang-python=\"`supabase`\" pulumi-lang-yaml=\"`supabase`\" pulumi-lang-java=\"`supabase`\"\u003e`supabase`\u003c/span\u003e is supported.\n","willReplaceOnChanges":true},"authConfigLists":{"type":"array","items":{"$ref":"#/types/alicloud:rds/AiInstanceAuthConfigList:AiInstanceAuthConfigList"},"description":"Authentication information list. See \u003cspan pulumi-lang-nodejs=\"`authConfigList`\" pulumi-lang-dotnet=\"`AuthConfigList`\" pulumi-lang-go=\"`authConfigList`\" pulumi-lang-python=\"`auth_config_list`\" pulumi-lang-yaml=\"`authConfigList`\" pulumi-lang-java=\"`authConfigList`\"\u003e`auth_config_list`\u003c/span\u003e below.\n"},"caType":{"type":"string","description":"The type of the certificate. Currently, only \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e is supported. A custom certificate is used.\n\n\u003e **NOTE:**  When \u003cspan pulumi-lang-nodejs=\"`sslEnabled`\" pulumi-lang-dotnet=\"`SslEnabled`\" pulumi-lang-go=\"`sslEnabled`\" pulumi-lang-python=\"`ssl_enabled`\" pulumi-lang-yaml=\"`sslEnabled`\" pulumi-lang-java=\"`sslEnabled`\"\u003e`ssl_enabled`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, this parameter must be configured.\n"},"dashboardPassword":{"type":"string","description":"Supabase Dashboard password.\nThe password must be 8 to 32 characters in length and contain three or more characters: uppercase letters, lowercase letters, numbers, and underscores (_).\n","secret":true},"databasePassword":{"type":"string","description":"The RDS Database access password.\nThe password must be 8 to 32 characters in length and contain three or more characters: uppercase letters, lowercase letters, numbers, and underscores (_).\n","secret":true},"dbInstanceName":{"type":"string","description":"The ID of the RDS PostgreSQL database instance accessed by the AI application.\nsupports only **newly purchased empty RDS PostgreSQL instances**. The major version is \u003cspan pulumi-lang-nodejs=\"`17`\" pulumi-lang-dotnet=\"`17`\" pulumi-lang-go=\"`17`\" pulumi-lang-python=\"`17`\" pulumi-lang-yaml=\"`17`\" pulumi-lang-java=\"`17`\"\u003e`17`\u003c/span\u003e, and the minor version is **20250630 or later**.\u003e\n","willReplaceOnChanges":true},"initializeWithExistingData":{"type":"boolean","description":"Whether to recover from existing PG data. Valid values:\n"},"publicEndpointEnabled":{"type":"boolean","description":"Whether to enable the public network connection address. Valid values:\n"},"publicNetworkAccessEnabled":{"type":"boolean","description":"Whether to enable the public network NAT gateway. Valid values:\n"},"serverCert":{"type":"string","description":"Customize the certificate content.\n\n\u003e **NOTE:**  When \u003cspan pulumi-lang-nodejs=\"`caType`\" pulumi-lang-dotnet=\"`CaType`\" pulumi-lang-go=\"`caType`\" pulumi-lang-python=\"`ca_type`\" pulumi-lang-yaml=\"`caType`\" pulumi-lang-java=\"`caType`\"\u003e`ca_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e, this parameter must be configured.\n"},"serverKey":{"type":"string","description":"The certificate private key.\n\n\u003e **NOTE:**  When \u003cspan pulumi-lang-nodejs=\"`caType`\" pulumi-lang-dotnet=\"`CaType`\" pulumi-lang-go=\"`caType`\" pulumi-lang-python=\"`ca_type`\" pulumi-lang-yaml=\"`caType`\" pulumi-lang-java=\"`caType`\"\u003e`ca_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e, this parameter must be configured.\n"},"sslEnabled":{"type":"integer","description":"Enable or disable SSL. Valid values:\n"},"status":{"type":"string","description":"The status of the instance. Valid values: `Running`, `Stopped`.\n"},"storageConfigLists":{"type":"array","items":{"$ref":"#/types/alicloud:rds/AiInstanceStorageConfigList:AiInstanceStorageConfigList"},"description":"A list of storage configurations. See \u003cspan pulumi-lang-nodejs=\"`storageConfigList`\" pulumi-lang-dotnet=\"`StorageConfigList`\" pulumi-lang-go=\"`storageConfigList`\" pulumi-lang-python=\"`storage_config_list`\" pulumi-lang-yaml=\"`storageConfigList`\" pulumi-lang-java=\"`storageConfigList`\"\u003e`storage_config_list`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:rds/backupPolicy:BackupPolicy":{"description":"Provides an RDS instance backup policy resource and used to configure instance backup policy, see [What is DB Backup Policy](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/api-rds-2014-08-15-modifybackuppolicy).\n\n\n\u003e **NOTE:** Each DB instance has a backup policy and it will be set default values when destroying the resource.\n\n\u003e **NOTE:** Available since v1.5.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst instance = new alicloud.rds.Instance(\"instance\", {\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n    instanceType: \"rds.mysql.s1.small\",\n    instanceStorage: 10,\n    vswitchId: defaultSwitch.id,\n    instanceName: name,\n});\nconst policy = new alicloud.rds.BackupPolicy(\"policy\", {instanceId: instance.id});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"5.6\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ninstance = alicloud.rds.Instance(\"instance\",\n    engine=\"MySQL\",\n    engine_version=\"5.6\",\n    instance_type=\"rds.mysql.s1.small\",\n    instance_storage=10,\n    vswitch_id=default_switch.id,\n    instance_name=name)\npolicy = alicloud.rds.BackupPolicy(\"policy\", instance_id=instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var instance = new AliCloud.Rds.Instance(\"instance\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n        InstanceType = \"rds.mysql.s1.small\",\n        InstanceStorage = 10,\n        VswitchId = defaultSwitch.Id,\n        InstanceName = name,\n    });\n\n    var policy = new AliCloud.Rds.BackupPolicy(\"policy\", new()\n    {\n        InstanceId = instance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:        pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion: pulumi.StringRef(\"5.6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := rds.NewInstance(ctx, \"instance\", \u0026rds.InstanceArgs{\n\t\t\tEngine:          pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:   pulumi.String(\"5.6\"),\n\t\t\tInstanceType:    pulumi.String(\"rds.mysql.s1.small\"),\n\t\t\tInstanceStorage: pulumi.Int(10),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\tInstanceName:    pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewBackupPolicy(ctx, \"policy\", \u0026rds.BackupPolicyArgs{\n\t\t\tInstanceId: instance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.BackupPolicy;\nimport com.pulumi.alicloud.rds.BackupPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var instance = new Instance(\"instance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .instanceType(\"rds.mysql.s1.small\")\n            .instanceStorage(10)\n            .vswitchId(defaultSwitch.id())\n            .instanceName(name)\n            .build());\n\n        var policy = new BackupPolicy(\"policy\", BackupPolicyArgs.builder()\n            .instanceId(instance.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  instance:\n    type: alicloud:rds:Instance\n    properties:\n      engine: MySQL\n      engineVersion: '5.6'\n      instanceType: rds.mysql.s1.small\n      instanceStorage: '10'\n      vswitchId: ${defaultSwitch.id}\n      instanceName: ${name}\n  policy:\n    type: alicloud:rds:BackupPolicy\n    properties:\n      instanceId: ${instance.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '5.6'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS backup policy can be imported using the id or instance id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/backupPolicy:BackupPolicy example \"rm-12345678\"\n```\n\n","properties":{"archiveBackupKeepCount":{"type":"integer","description":"Instance archive backup keep count. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and instance is mysql local disk. When \u003cspan pulumi-lang-nodejs=\"`archiveBackupKeepPolicy`\" pulumi-lang-dotnet=\"`ArchiveBackupKeepPolicy`\" pulumi-lang-go=\"`archiveBackupKeepPolicy`\" pulumi-lang-python=\"`archive_backup_keep_policy`\" pulumi-lang-yaml=\"`archiveBackupKeepPolicy`\" pulumi-lang-java=\"`archiveBackupKeepPolicy`\"\u003e`archive_backup_keep_policy`\u003c/span\u003e is `ByMonth` Valid values: [1-31]. When \u003cspan pulumi-lang-nodejs=\"`archiveBackupKeepPolicy`\" pulumi-lang-dotnet=\"`ArchiveBackupKeepPolicy`\" pulumi-lang-go=\"`archiveBackupKeepPolicy`\" pulumi-lang-python=\"`archive_backup_keep_policy`\" pulumi-lang-yaml=\"`archiveBackupKeepPolicy`\" pulumi-lang-java=\"`archiveBackupKeepPolicy`\"\u003e`archive_backup_keep_policy`\u003c/span\u003e is `ByWeek` Valid values: [1-7].\n"},"archiveBackupKeepPolicy":{"type":"string","description":"Instance archive backup keep policy. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and instance is mysql local disk. Valid values are `ByMonth`, `ByWeek`, `KeepAll`.\n"},"archiveBackupRetentionPeriod":{"type":"integer","description":"Instance archive backup retention days. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and instance is mysql local disk. Valid values: [30-1095], and \u003cspan pulumi-lang-nodejs=\"`archiveBackupRetentionPeriod`\" pulumi-lang-dotnet=\"`ArchiveBackupRetentionPeriod`\" pulumi-lang-go=\"`archiveBackupRetentionPeriod`\" pulumi-lang-python=\"`archive_backup_retention_period`\" pulumi-lang-yaml=\"`archiveBackupRetentionPeriod`\" pulumi-lang-java=\"`archiveBackupRetentionPeriod`\"\u003e`archive_backup_retention_period`\u003c/span\u003e must larger than \u003cspan pulumi-lang-nodejs=\"`backupRetentionPeriod`\" pulumi-lang-dotnet=\"`BackupRetentionPeriod`\" pulumi-lang-go=\"`backupRetentionPeriod`\" pulumi-lang-python=\"`backup_retention_period`\" pulumi-lang-yaml=\"`backupRetentionPeriod`\" pulumi-lang-java=\"`backupRetentionPeriod`\"\u003e`backup_retention_period`\u003c/span\u003e 730.\n"},"backupInterval":{"type":"string","description":"The frequency at which you want to perform a snapshot backup on the instance. Valid values:\n- -1: No backup frequencies are specified.\n- 30: A snapshot backup is performed once every 30 minutes.\n- 60: A snapshot backup is performed once every 60 minutes.\n- 120: A snapshot backup is performed once every 120 minutes.\n- 240: A snapshot backup is performed once every 240 minutes.\n- 360: A snapshot backup is performed once every 360 minutes.\n- 480: A snapshot backup is performed once every 480 minutes.\n- 720: A snapshot backup is performed once every 720 minutes.\n"},"backupMethod":{"type":"string","description":"The backup method of the instance. Valid values:\n- Physical: physical backup\n- Snapshot: snapshot backup\n-\u003e**NOTE:** This parameter takes effect only on instances that run SQL Server with cloud disks. This parameter takes effect only when BackupPolicyMode is set to DataBackupPolicy.\n\n\u003e **NOTE:** Currently, the SQLServer instance does not support to modify \u003cspan pulumi-lang-nodejs=\"`logBackupRetentionPeriod`\" pulumi-lang-dotnet=\"`LogBackupRetentionPeriod`\" pulumi-lang-go=\"`logBackupRetentionPeriod`\" pulumi-lang-python=\"`log_backup_retention_period`\" pulumi-lang-yaml=\"`logBackupRetentionPeriod`\" pulumi-lang-java=\"`logBackupRetentionPeriod`\"\u003e`log_backup_retention_period`\u003c/span\u003e.\n"},"backupPeriods":{"type":"array","items":{"type":"string"},"description":"It has been deprecated from version 1.69.0, and use field 'preferred_backup_period' instead.\n","deprecationMessage":"Attribute 'backup_period' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`preferredBackupPeriod`\" pulumi-lang-dotnet=\"`PreferredBackupPeriod`\" pulumi-lang-go=\"`preferredBackupPeriod`\" pulumi-lang-python=\"`preferred_backup_period`\" pulumi-lang-yaml=\"`preferredBackupPeriod`\" pulumi-lang-java=\"`preferredBackupPeriod`\"\u003e`preferred_backup_period`\u003c/span\u003e instead"},"backupPriority":{"type":"integer","description":"Specifies whether the backup settings of a secondary instance are configured. Valid values:\n- 1: secondary instance preferred\n- 2: primary instance preferred\n-\u003e**NOTE:** This parameter is suitable only for instances that run SQL Server on RDS Cluster Edition. This parameter takes effect only when BackupMethod is set to Physical. If BackupMethod is set to Snapshot, backups are forcefully performed on the primary instance that runs SQL Server on RDS Cluster Edition.\n"},"backupRetentionPeriod":{"type":"integer","description":"Instance backup retention days. Valid values: [7-730]. Default to 7. But mysql local disk is unlimited.\n"},"backupTime":{"type":"string","description":"It has been deprecated from version 1.69.0, and use field 'preferred_backup_time' instead.\n","deprecationMessage":"Attribute 'backup_time' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`preferredBackupTime`\" pulumi-lang-dotnet=\"`PreferredBackupTime`\" pulumi-lang-go=\"`preferredBackupTime`\" pulumi-lang-python=\"`preferred_backup_time`\" pulumi-lang-yaml=\"`preferredBackupTime`\" pulumi-lang-java=\"`preferredBackupTime`\"\u003e`preferred_backup_time`\u003c/span\u003e instead"},"category":{"type":"string","description":"Whether to enable second level backup.Valid values are `Flash`, `Standard`, Note:It only takes effect when the BackupPolicyMode parameter is DataBackupPolicy.\n\u003e **NOTE:** You can configure a backup policy by using this parameter and the PreferredBackupPeriod parameter. For example, if you set the PreferredBackupPeriod parameter to Saturday,Sunday and the BackupInterval parameter to -1, a snapshot backup is performed on every Saturday and Sunday.If the instance runs PostgreSQL, the BackupInterval parameter is supported only when the instance is equipped with standard SSDs or enhanced SSDs (ESSDs).This parameter takes effect only when you set the BackupPolicyMode parameter to DataBackupPolicy.\n"},"compressType":{"type":"string","description":"The compress type of instance policy. Valid values are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e.\n"},"enableBackupLog":{"type":"boolean","description":"Whether to backup instance log. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Note: The 'Basic Edition' category Rds instance does not support setting log backup. [What is Basic Edition](https://www.alibabacloud.com/help/doc-detail/48980.htm).\n"},"enableIncrementDataBackup":{"type":"boolean","description":"Specifies whether to enable incremental backup. Valid values:\n- false (default): disables the feature.\n- true: enables the feature.\n-\u003e**NOTE:** This parameter takes effect only on instances that run SQL Server with cloud disks. This parameter takes effect only when BackupPolicyMode is set to DataBackupPolicy.\n"},"highSpaceUsageProtection":{"type":"string","description":"Instance high space usage protection policy. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values are `Enable`, `Disable`.\n"},"instanceId":{"type":"string","description":"The Id of instance that can run database.\n"},"localLogRetentionHours":{"type":"integer","description":"Instance log backup local retention hours. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values: [0-7*24].\n"},"localLogRetentionSpace":{"type":"integer","description":"Instance log backup local retention space. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values: [0-50].\n"},"logBackup":{"type":"boolean","description":"It has been deprecated from version 1.68.0, and use field 'enable_backup_log' instead.\n","deprecationMessage":"Attribute 'log_backup' has been deprecated from version 1.68.0. Use \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e instead"},"logBackupFrequency":{"type":"string","description":"Instance log backup frequency. Valid when the instance engine is `SQLServer`. Valid values are `LogInterval`.\n"},"logBackupLocalRetentionNumber":{"type":"integer","description":"The number of binary log files that you want to retain on the instance. Default value: 60. Valid values: 6 to 100.\n-\u003e**NOTE:** This parameter takes effect only when you set the BackupPolicyMode parameter to LogBackupPolicy. If the instance runs MySQL, you can set this parameter to -1. The value -1 specifies that an unlimited number of binary log files can be retained on the instance.\n"},"logBackupRetentionPeriod":{"type":"integer","description":"Instance log backup retention days. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values: [7-730]. Default to 7. It cannot be larger than \u003cspan pulumi-lang-nodejs=\"`backupRetentionPeriod`\" pulumi-lang-dotnet=\"`BackupRetentionPeriod`\" pulumi-lang-go=\"`backupRetentionPeriod`\" pulumi-lang-python=\"`backup_retention_period`\" pulumi-lang-yaml=\"`backupRetentionPeriod`\" pulumi-lang-java=\"`backupRetentionPeriod`\"\u003e`backup_retention_period`\u003c/span\u003e.\n"},"logRetentionPeriod":{"type":"integer","description":"It has been deprecated from version 1.69.0, and use field 'log_backup_retention_period' instead.\n","deprecationMessage":"Attribute 'log_retention_period' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`logBackupRetentionPeriod`\" pulumi-lang-dotnet=\"`LogBackupRetentionPeriod`\" pulumi-lang-go=\"`logBackupRetentionPeriod`\" pulumi-lang-python=\"`log_backup_retention_period`\" pulumi-lang-yaml=\"`logBackupRetentionPeriod`\" pulumi-lang-java=\"`logBackupRetentionPeriod`\"\u003e`log_backup_retention_period`\u003c/span\u003e instead"},"preferredBackupPeriods":{"type":"array","items":{"type":"string"},"description":"DB Instance backup period. Please set at least two days to ensure backing up at least twice a week. Valid values: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday].\n"},"preferredBackupTime":{"type":"string","description":"DB instance backup time, in the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. Default to \"02:00Z-03:00Z\". China time is 8 hours behind it.\n"},"releasedKeepPolicy":{"type":"string","description":"The policy based on which ApsaraDB RDS retains archived backup files if the instance is released. Default value: None. Valid values:\n* **None**: No archived backup files are retained.\n* **Lastest**: Only the most recent archived backup file is retained.\n* **All**: All archived backup files are retained.\n"},"retentionPeriod":{"type":"integer","description":"It has been deprecated from version 1.69.0, and use field 'backup_retention_period' instead.\n","deprecationMessage":"Attribute 'retention_period' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`backupRetentionPeriod`\" pulumi-lang-dotnet=\"`BackupRetentionPeriod`\" pulumi-lang-go=\"`backupRetentionPeriod`\" pulumi-lang-python=\"`backup_retention_period`\" pulumi-lang-yaml=\"`backupRetentionPeriod`\" pulumi-lang-java=\"`backupRetentionPeriod`\"\u003e`backup_retention_period`\u003c/span\u003e instead"}},"required":["archiveBackupKeepCount","archiveBackupKeepPolicy","archiveBackupRetentionPeriod","backupInterval","backupMethod","backupPeriods","backupTime","category","compressType","enableBackupLog","enableIncrementDataBackup","instanceId","localLogRetentionHours","localLogRetentionSpace","logBackup","logBackupFrequency","logBackupLocalRetentionNumber","logBackupRetentionPeriod","logRetentionPeriod","preferredBackupPeriods","releasedKeepPolicy","retentionPeriod"],"inputProperties":{"archiveBackupKeepCount":{"type":"integer","description":"Instance archive backup keep count. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and instance is mysql local disk. When \u003cspan pulumi-lang-nodejs=\"`archiveBackupKeepPolicy`\" pulumi-lang-dotnet=\"`ArchiveBackupKeepPolicy`\" pulumi-lang-go=\"`archiveBackupKeepPolicy`\" pulumi-lang-python=\"`archive_backup_keep_policy`\" pulumi-lang-yaml=\"`archiveBackupKeepPolicy`\" pulumi-lang-java=\"`archiveBackupKeepPolicy`\"\u003e`archive_backup_keep_policy`\u003c/span\u003e is `ByMonth` Valid values: [1-31]. When \u003cspan pulumi-lang-nodejs=\"`archiveBackupKeepPolicy`\" pulumi-lang-dotnet=\"`ArchiveBackupKeepPolicy`\" pulumi-lang-go=\"`archiveBackupKeepPolicy`\" pulumi-lang-python=\"`archive_backup_keep_policy`\" pulumi-lang-yaml=\"`archiveBackupKeepPolicy`\" pulumi-lang-java=\"`archiveBackupKeepPolicy`\"\u003e`archive_backup_keep_policy`\u003c/span\u003e is `ByWeek` Valid values: [1-7].\n"},"archiveBackupKeepPolicy":{"type":"string","description":"Instance archive backup keep policy. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and instance is mysql local disk. Valid values are `ByMonth`, `ByWeek`, `KeepAll`.\n"},"archiveBackupRetentionPeriod":{"type":"integer","description":"Instance archive backup retention days. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and instance is mysql local disk. Valid values: [30-1095], and \u003cspan pulumi-lang-nodejs=\"`archiveBackupRetentionPeriod`\" pulumi-lang-dotnet=\"`ArchiveBackupRetentionPeriod`\" pulumi-lang-go=\"`archiveBackupRetentionPeriod`\" pulumi-lang-python=\"`archive_backup_retention_period`\" pulumi-lang-yaml=\"`archiveBackupRetentionPeriod`\" pulumi-lang-java=\"`archiveBackupRetentionPeriod`\"\u003e`archive_backup_retention_period`\u003c/span\u003e must larger than \u003cspan pulumi-lang-nodejs=\"`backupRetentionPeriod`\" pulumi-lang-dotnet=\"`BackupRetentionPeriod`\" pulumi-lang-go=\"`backupRetentionPeriod`\" pulumi-lang-python=\"`backup_retention_period`\" pulumi-lang-yaml=\"`backupRetentionPeriod`\" pulumi-lang-java=\"`backupRetentionPeriod`\"\u003e`backup_retention_period`\u003c/span\u003e 730.\n"},"backupInterval":{"type":"string","description":"The frequency at which you want to perform a snapshot backup on the instance. Valid values:\n- -1: No backup frequencies are specified.\n- 30: A snapshot backup is performed once every 30 minutes.\n- 60: A snapshot backup is performed once every 60 minutes.\n- 120: A snapshot backup is performed once every 120 minutes.\n- 240: A snapshot backup is performed once every 240 minutes.\n- 360: A snapshot backup is performed once every 360 minutes.\n- 480: A snapshot backup is performed once every 480 minutes.\n- 720: A snapshot backup is performed once every 720 minutes.\n"},"backupMethod":{"type":"string","description":"The backup method of the instance. Valid values:\n- Physical: physical backup\n- Snapshot: snapshot backup\n-\u003e**NOTE:** This parameter takes effect only on instances that run SQL Server with cloud disks. This parameter takes effect only when BackupPolicyMode is set to DataBackupPolicy.\n\n\u003e **NOTE:** Currently, the SQLServer instance does not support to modify \u003cspan pulumi-lang-nodejs=\"`logBackupRetentionPeriod`\" pulumi-lang-dotnet=\"`LogBackupRetentionPeriod`\" pulumi-lang-go=\"`logBackupRetentionPeriod`\" pulumi-lang-python=\"`log_backup_retention_period`\" pulumi-lang-yaml=\"`logBackupRetentionPeriod`\" pulumi-lang-java=\"`logBackupRetentionPeriod`\"\u003e`log_backup_retention_period`\u003c/span\u003e.\n"},"backupPeriods":{"type":"array","items":{"type":"string"},"description":"It has been deprecated from version 1.69.0, and use field 'preferred_backup_period' instead.\n","deprecationMessage":"Attribute 'backup_period' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`preferredBackupPeriod`\" pulumi-lang-dotnet=\"`PreferredBackupPeriod`\" pulumi-lang-go=\"`preferredBackupPeriod`\" pulumi-lang-python=\"`preferred_backup_period`\" pulumi-lang-yaml=\"`preferredBackupPeriod`\" pulumi-lang-java=\"`preferredBackupPeriod`\"\u003e`preferred_backup_period`\u003c/span\u003e instead"},"backupPriority":{"type":"integer","description":"Specifies whether the backup settings of a secondary instance are configured. Valid values:\n- 1: secondary instance preferred\n- 2: primary instance preferred\n-\u003e**NOTE:** This parameter is suitable only for instances that run SQL Server on RDS Cluster Edition. This parameter takes effect only when BackupMethod is set to Physical. If BackupMethod is set to Snapshot, backups are forcefully performed on the primary instance that runs SQL Server on RDS Cluster Edition.\n"},"backupRetentionPeriod":{"type":"integer","description":"Instance backup retention days. Valid values: [7-730]. Default to 7. But mysql local disk is unlimited.\n"},"backupTime":{"type":"string","description":"It has been deprecated from version 1.69.0, and use field 'preferred_backup_time' instead.\n","deprecationMessage":"Attribute 'backup_time' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`preferredBackupTime`\" pulumi-lang-dotnet=\"`PreferredBackupTime`\" pulumi-lang-go=\"`preferredBackupTime`\" pulumi-lang-python=\"`preferred_backup_time`\" pulumi-lang-yaml=\"`preferredBackupTime`\" pulumi-lang-java=\"`preferredBackupTime`\"\u003e`preferred_backup_time`\u003c/span\u003e instead"},"category":{"type":"string","description":"Whether to enable second level backup.Valid values are `Flash`, `Standard`, Note:It only takes effect when the BackupPolicyMode parameter is DataBackupPolicy.\n\u003e **NOTE:** You can configure a backup policy by using this parameter and the PreferredBackupPeriod parameter. For example, if you set the PreferredBackupPeriod parameter to Saturday,Sunday and the BackupInterval parameter to -1, a snapshot backup is performed on every Saturday and Sunday.If the instance runs PostgreSQL, the BackupInterval parameter is supported only when the instance is equipped with standard SSDs or enhanced SSDs (ESSDs).This parameter takes effect only when you set the BackupPolicyMode parameter to DataBackupPolicy.\n"},"compressType":{"type":"string","description":"The compress type of instance policy. Valid values are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e.\n"},"enableBackupLog":{"type":"boolean","description":"Whether to backup instance log. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Note: The 'Basic Edition' category Rds instance does not support setting log backup. [What is Basic Edition](https://www.alibabacloud.com/help/doc-detail/48980.htm).\n"},"enableIncrementDataBackup":{"type":"boolean","description":"Specifies whether to enable incremental backup. Valid values:\n- false (default): disables the feature.\n- true: enables the feature.\n-\u003e**NOTE:** This parameter takes effect only on instances that run SQL Server with cloud disks. This parameter takes effect only when BackupPolicyMode is set to DataBackupPolicy.\n"},"highSpaceUsageProtection":{"type":"string","description":"Instance high space usage protection policy. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values are `Enable`, `Disable`.\n"},"instanceId":{"type":"string","description":"The Id of instance that can run database.\n","willReplaceOnChanges":true},"localLogRetentionHours":{"type":"integer","description":"Instance log backup local retention hours. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values: [0-7*24].\n"},"localLogRetentionSpace":{"type":"integer","description":"Instance log backup local retention space. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values: [0-50].\n"},"logBackup":{"type":"boolean","description":"It has been deprecated from version 1.68.0, and use field 'enable_backup_log' instead.\n","deprecationMessage":"Attribute 'log_backup' has been deprecated from version 1.68.0. Use \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e instead"},"logBackupFrequency":{"type":"string","description":"Instance log backup frequency. Valid when the instance engine is `SQLServer`. Valid values are `LogInterval`.\n"},"logBackupLocalRetentionNumber":{"type":"integer","description":"The number of binary log files that you want to retain on the instance. Default value: 60. Valid values: 6 to 100.\n-\u003e**NOTE:** This parameter takes effect only when you set the BackupPolicyMode parameter to LogBackupPolicy. If the instance runs MySQL, you can set this parameter to -1. The value -1 specifies that an unlimited number of binary log files can be retained on the instance.\n"},"logBackupRetentionPeriod":{"type":"integer","description":"Instance log backup retention days. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values: [7-730]. Default to 7. It cannot be larger than \u003cspan pulumi-lang-nodejs=\"`backupRetentionPeriod`\" pulumi-lang-dotnet=\"`BackupRetentionPeriod`\" pulumi-lang-go=\"`backupRetentionPeriod`\" pulumi-lang-python=\"`backup_retention_period`\" pulumi-lang-yaml=\"`backupRetentionPeriod`\" pulumi-lang-java=\"`backupRetentionPeriod`\"\u003e`backup_retention_period`\u003c/span\u003e.\n"},"logRetentionPeriod":{"type":"integer","description":"It has been deprecated from version 1.69.0, and use field 'log_backup_retention_period' instead.\n","deprecationMessage":"Attribute 'log_retention_period' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`logBackupRetentionPeriod`\" pulumi-lang-dotnet=\"`LogBackupRetentionPeriod`\" pulumi-lang-go=\"`logBackupRetentionPeriod`\" pulumi-lang-python=\"`log_backup_retention_period`\" pulumi-lang-yaml=\"`logBackupRetentionPeriod`\" pulumi-lang-java=\"`logBackupRetentionPeriod`\"\u003e`log_backup_retention_period`\u003c/span\u003e instead"},"preferredBackupPeriods":{"type":"array","items":{"type":"string"},"description":"DB Instance backup period. Please set at least two days to ensure backing up at least twice a week. Valid values: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday].\n"},"preferredBackupTime":{"type":"string","description":"DB instance backup time, in the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. Default to \"02:00Z-03:00Z\". China time is 8 hours behind it.\n"},"releasedKeepPolicy":{"type":"string","description":"The policy based on which ApsaraDB RDS retains archived backup files if the instance is released. Default value: None. Valid values:\n* **None**: No archived backup files are retained.\n* **Lastest**: Only the most recent archived backup file is retained.\n* **All**: All archived backup files are retained.\n"},"retentionPeriod":{"type":"integer","description":"It has been deprecated from version 1.69.0, and use field 'backup_retention_period' instead.\n","deprecationMessage":"Attribute 'retention_period' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`backupRetentionPeriod`\" pulumi-lang-dotnet=\"`BackupRetentionPeriod`\" pulumi-lang-go=\"`backupRetentionPeriod`\" pulumi-lang-python=\"`backup_retention_period`\" pulumi-lang-yaml=\"`backupRetentionPeriod`\" pulumi-lang-java=\"`backupRetentionPeriod`\"\u003e`backup_retention_period`\u003c/span\u003e instead"}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering BackupPolicy resources.\n","properties":{"archiveBackupKeepCount":{"type":"integer","description":"Instance archive backup keep count. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and instance is mysql local disk. When \u003cspan pulumi-lang-nodejs=\"`archiveBackupKeepPolicy`\" pulumi-lang-dotnet=\"`ArchiveBackupKeepPolicy`\" pulumi-lang-go=\"`archiveBackupKeepPolicy`\" pulumi-lang-python=\"`archive_backup_keep_policy`\" pulumi-lang-yaml=\"`archiveBackupKeepPolicy`\" pulumi-lang-java=\"`archiveBackupKeepPolicy`\"\u003e`archive_backup_keep_policy`\u003c/span\u003e is `ByMonth` Valid values: [1-31]. When \u003cspan pulumi-lang-nodejs=\"`archiveBackupKeepPolicy`\" pulumi-lang-dotnet=\"`ArchiveBackupKeepPolicy`\" pulumi-lang-go=\"`archiveBackupKeepPolicy`\" pulumi-lang-python=\"`archive_backup_keep_policy`\" pulumi-lang-yaml=\"`archiveBackupKeepPolicy`\" pulumi-lang-java=\"`archiveBackupKeepPolicy`\"\u003e`archive_backup_keep_policy`\u003c/span\u003e is `ByWeek` Valid values: [1-7].\n"},"archiveBackupKeepPolicy":{"type":"string","description":"Instance archive backup keep policy. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and instance is mysql local disk. Valid values are `ByMonth`, `ByWeek`, `KeepAll`.\n"},"archiveBackupRetentionPeriod":{"type":"integer","description":"Instance archive backup retention days. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and instance is mysql local disk. Valid values: [30-1095], and \u003cspan pulumi-lang-nodejs=\"`archiveBackupRetentionPeriod`\" pulumi-lang-dotnet=\"`ArchiveBackupRetentionPeriod`\" pulumi-lang-go=\"`archiveBackupRetentionPeriod`\" pulumi-lang-python=\"`archive_backup_retention_period`\" pulumi-lang-yaml=\"`archiveBackupRetentionPeriod`\" pulumi-lang-java=\"`archiveBackupRetentionPeriod`\"\u003e`archive_backup_retention_period`\u003c/span\u003e must larger than \u003cspan pulumi-lang-nodejs=\"`backupRetentionPeriod`\" pulumi-lang-dotnet=\"`BackupRetentionPeriod`\" pulumi-lang-go=\"`backupRetentionPeriod`\" pulumi-lang-python=\"`backup_retention_period`\" pulumi-lang-yaml=\"`backupRetentionPeriod`\" pulumi-lang-java=\"`backupRetentionPeriod`\"\u003e`backup_retention_period`\u003c/span\u003e 730.\n"},"backupInterval":{"type":"string","description":"The frequency at which you want to perform a snapshot backup on the instance. Valid values:\n- -1: No backup frequencies are specified.\n- 30: A snapshot backup is performed once every 30 minutes.\n- 60: A snapshot backup is performed once every 60 minutes.\n- 120: A snapshot backup is performed once every 120 minutes.\n- 240: A snapshot backup is performed once every 240 minutes.\n- 360: A snapshot backup is performed once every 360 minutes.\n- 480: A snapshot backup is performed once every 480 minutes.\n- 720: A snapshot backup is performed once every 720 minutes.\n"},"backupMethod":{"type":"string","description":"The backup method of the instance. Valid values:\n- Physical: physical backup\n- Snapshot: snapshot backup\n-\u003e**NOTE:** This parameter takes effect only on instances that run SQL Server with cloud disks. This parameter takes effect only when BackupPolicyMode is set to DataBackupPolicy.\n\n\u003e **NOTE:** Currently, the SQLServer instance does not support to modify \u003cspan pulumi-lang-nodejs=\"`logBackupRetentionPeriod`\" pulumi-lang-dotnet=\"`LogBackupRetentionPeriod`\" pulumi-lang-go=\"`logBackupRetentionPeriod`\" pulumi-lang-python=\"`log_backup_retention_period`\" pulumi-lang-yaml=\"`logBackupRetentionPeriod`\" pulumi-lang-java=\"`logBackupRetentionPeriod`\"\u003e`log_backup_retention_period`\u003c/span\u003e.\n"},"backupPeriods":{"type":"array","items":{"type":"string"},"description":"It has been deprecated from version 1.69.0, and use field 'preferred_backup_period' instead.\n","deprecationMessage":"Attribute 'backup_period' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`preferredBackupPeriod`\" pulumi-lang-dotnet=\"`PreferredBackupPeriod`\" pulumi-lang-go=\"`preferredBackupPeriod`\" pulumi-lang-python=\"`preferred_backup_period`\" pulumi-lang-yaml=\"`preferredBackupPeriod`\" pulumi-lang-java=\"`preferredBackupPeriod`\"\u003e`preferred_backup_period`\u003c/span\u003e instead"},"backupPriority":{"type":"integer","description":"Specifies whether the backup settings of a secondary instance are configured. Valid values:\n- 1: secondary instance preferred\n- 2: primary instance preferred\n-\u003e**NOTE:** This parameter is suitable only for instances that run SQL Server on RDS Cluster Edition. This parameter takes effect only when BackupMethod is set to Physical. If BackupMethod is set to Snapshot, backups are forcefully performed on the primary instance that runs SQL Server on RDS Cluster Edition.\n"},"backupRetentionPeriod":{"type":"integer","description":"Instance backup retention days. Valid values: [7-730]. Default to 7. But mysql local disk is unlimited.\n"},"backupTime":{"type":"string","description":"It has been deprecated from version 1.69.0, and use field 'preferred_backup_time' instead.\n","deprecationMessage":"Attribute 'backup_time' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`preferredBackupTime`\" pulumi-lang-dotnet=\"`PreferredBackupTime`\" pulumi-lang-go=\"`preferredBackupTime`\" pulumi-lang-python=\"`preferred_backup_time`\" pulumi-lang-yaml=\"`preferredBackupTime`\" pulumi-lang-java=\"`preferredBackupTime`\"\u003e`preferred_backup_time`\u003c/span\u003e instead"},"category":{"type":"string","description":"Whether to enable second level backup.Valid values are `Flash`, `Standard`, Note:It only takes effect when the BackupPolicyMode parameter is DataBackupPolicy.\n\u003e **NOTE:** You can configure a backup policy by using this parameter and the PreferredBackupPeriod parameter. For example, if you set the PreferredBackupPeriod parameter to Saturday,Sunday and the BackupInterval parameter to -1, a snapshot backup is performed on every Saturday and Sunday.If the instance runs PostgreSQL, the BackupInterval parameter is supported only when the instance is equipped with standard SSDs or enhanced SSDs (ESSDs).This parameter takes effect only when you set the BackupPolicyMode parameter to DataBackupPolicy.\n"},"compressType":{"type":"string","description":"The compress type of instance policy. Valid values are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e.\n"},"enableBackupLog":{"type":"boolean","description":"Whether to backup instance log. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Note: The 'Basic Edition' category Rds instance does not support setting log backup. [What is Basic Edition](https://www.alibabacloud.com/help/doc-detail/48980.htm).\n"},"enableIncrementDataBackup":{"type":"boolean","description":"Specifies whether to enable incremental backup. Valid values:\n- false (default): disables the feature.\n- true: enables the feature.\n-\u003e**NOTE:** This parameter takes effect only on instances that run SQL Server with cloud disks. This parameter takes effect only when BackupPolicyMode is set to DataBackupPolicy.\n"},"highSpaceUsageProtection":{"type":"string","description":"Instance high space usage protection policy. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values are `Enable`, `Disable`.\n"},"instanceId":{"type":"string","description":"The Id of instance that can run database.\n","willReplaceOnChanges":true},"localLogRetentionHours":{"type":"integer","description":"Instance log backup local retention hours. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values: [0-7*24].\n"},"localLogRetentionSpace":{"type":"integer","description":"Instance log backup local retention space. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values: [0-50].\n"},"logBackup":{"type":"boolean","description":"It has been deprecated from version 1.68.0, and use field 'enable_backup_log' instead.\n","deprecationMessage":"Attribute 'log_backup' has been deprecated from version 1.68.0. Use \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e instead"},"logBackupFrequency":{"type":"string","description":"Instance log backup frequency. Valid when the instance engine is `SQLServer`. Valid values are `LogInterval`.\n"},"logBackupLocalRetentionNumber":{"type":"integer","description":"The number of binary log files that you want to retain on the instance. Default value: 60. Valid values: 6 to 100.\n-\u003e**NOTE:** This parameter takes effect only when you set the BackupPolicyMode parameter to LogBackupPolicy. If the instance runs MySQL, you can set this parameter to -1. The value -1 specifies that an unlimited number of binary log files can be retained on the instance.\n"},"logBackupRetentionPeriod":{"type":"integer","description":"Instance log backup retention days. Valid when the \u003cspan pulumi-lang-nodejs=\"`enableBackupLog`\" pulumi-lang-dotnet=\"`EnableBackupLog`\" pulumi-lang-go=\"`enableBackupLog`\" pulumi-lang-python=\"`enable_backup_log`\" pulumi-lang-yaml=\"`enableBackupLog`\" pulumi-lang-java=\"`enableBackupLog`\"\u003e`enable_backup_log`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Valid values: [7-730]. Default to 7. It cannot be larger than \u003cspan pulumi-lang-nodejs=\"`backupRetentionPeriod`\" pulumi-lang-dotnet=\"`BackupRetentionPeriod`\" pulumi-lang-go=\"`backupRetentionPeriod`\" pulumi-lang-python=\"`backup_retention_period`\" pulumi-lang-yaml=\"`backupRetentionPeriod`\" pulumi-lang-java=\"`backupRetentionPeriod`\"\u003e`backup_retention_period`\u003c/span\u003e.\n"},"logRetentionPeriod":{"type":"integer","description":"It has been deprecated from version 1.69.0, and use field 'log_backup_retention_period' instead.\n","deprecationMessage":"Attribute 'log_retention_period' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`logBackupRetentionPeriod`\" pulumi-lang-dotnet=\"`LogBackupRetentionPeriod`\" pulumi-lang-go=\"`logBackupRetentionPeriod`\" pulumi-lang-python=\"`log_backup_retention_period`\" pulumi-lang-yaml=\"`logBackupRetentionPeriod`\" pulumi-lang-java=\"`logBackupRetentionPeriod`\"\u003e`log_backup_retention_period`\u003c/span\u003e instead"},"preferredBackupPeriods":{"type":"array","items":{"type":"string"},"description":"DB Instance backup period. Please set at least two days to ensure backing up at least twice a week. Valid values: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday].\n"},"preferredBackupTime":{"type":"string","description":"DB instance backup time, in the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. Default to \"02:00Z-03:00Z\". China time is 8 hours behind it.\n"},"releasedKeepPolicy":{"type":"string","description":"The policy based on which ApsaraDB RDS retains archived backup files if the instance is released. Default value: None. Valid values:\n* **None**: No archived backup files are retained.\n* **Lastest**: Only the most recent archived backup file is retained.\n* **All**: All archived backup files are retained.\n"},"retentionPeriod":{"type":"integer","description":"It has been deprecated from version 1.69.0, and use field 'backup_retention_period' instead.\n","deprecationMessage":"Attribute 'retention_period' has been deprecated from version 1.69.0. Use \u003cspan pulumi-lang-nodejs=\"`backupRetentionPeriod`\" pulumi-lang-dotnet=\"`BackupRetentionPeriod`\" pulumi-lang-go=\"`backupRetentionPeriod`\" pulumi-lang-python=\"`backup_retention_period`\" pulumi-lang-yaml=\"`backupRetentionPeriod`\" pulumi-lang-java=\"`backupRetentionPeriod`\"\u003e`backup_retention_period`\u003c/span\u003e instead"}},"type":"object"}},"alicloud:rds/connection:Connection":{"description":"Provides an RDS connection resource to allocate an Internet connection string for RDS instance, see [What is DB Connection](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/api-rds-2014-08-15-allocateinstancepublicconnection).\n\n\u003e **NOTE:** Each RDS instance will allocate a intranet connnection string automatically and its prifix is RDS instance ID.\n To avoid unnecessary conflict, please specified a internet connection prefix before applying the resource.\n \n\u003e **NOTE:** Available since v1.5.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultInstance = new alicloud.rds.Instance(\"default\", {\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n    instanceType: \"rds.mysql.t1.small\",\n    instanceStorage: 10,\n    vswitchId: defaultSwitch.id,\n    instanceName: name,\n});\nconst defaultConnection = new alicloud.rds.Connection(\"default\", {\n    instanceId: defaultInstance.id,\n    connectionPrefix: \"testabc\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"5.6\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_instance = alicloud.rds.Instance(\"default\",\n    engine=\"MySQL\",\n    engine_version=\"5.6\",\n    instance_type=\"rds.mysql.t1.small\",\n    instance_storage=10,\n    vswitch_id=default_switch.id,\n    instance_name=name)\ndefault_connection = alicloud.rds.Connection(\"default\",\n    instance_id=default_instance.id,\n    connection_prefix=\"testabc\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultInstance = new AliCloud.Rds.Instance(\"default\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n        InstanceType = \"rds.mysql.t1.small\",\n        InstanceStorage = 10,\n        VswitchId = defaultSwitch.Id,\n        InstanceName = name,\n    });\n\n    var defaultConnection = new AliCloud.Rds.Connection(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        ConnectionPrefix = \"testabc\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:        pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion: pulumi.StringRef(\"5.6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rds.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tEngine:          pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:   pulumi.String(\"5.6\"),\n\t\t\tInstanceType:    pulumi.String(\"rds.mysql.t1.small\"),\n\t\t\tInstanceStorage: pulumi.Int(10),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\tInstanceName:    pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewConnection(ctx, \"default\", \u0026rds.ConnectionArgs{\n\t\t\tInstanceId:       defaultInstance.ID(),\n\t\t\tConnectionPrefix: pulumi.String(\"testabc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.Connection;\nimport com.pulumi.alicloud.rds.ConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .instanceType(\"rds.mysql.t1.small\")\n            .instanceStorage(10)\n            .vswitchId(defaultSwitch.id())\n            .instanceName(name)\n            .build());\n\n        var defaultConnection = new Connection(\"defaultConnection\", ConnectionArgs.builder()\n            .instanceId(defaultInstance.id())\n            .connectionPrefix(\"testabc\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultInstance:\n    type: alicloud:rds:Instance\n    name: default\n    properties:\n      engine: MySQL\n      engineVersion: '5.6'\n      instanceType: rds.mysql.t1.small\n      instanceStorage: '10'\n      vswitchId: ${defaultSwitch.id}\n      instanceName: ${name}\n  defaultConnection:\n    type: alicloud:rds:Connection\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      connectionPrefix: testabc\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '5.6'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS connection can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/connection:Connection example abc12345678\n```\n\n","properties":{"babelfishPort":{"type":"string","description":"The Tabular Data Stream (TDS) port of the instance for which Babelfish is enabled.\n\n\u003e **NOTE:** This parameter applies only to ApsaraDB RDS for PostgreSQL instances. For more information about Babelfish for ApsaraDB RDS for PostgreSQL, see [Introduction to Babelfish](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/babelfish-for-pg).\n"},"connectionPrefix":{"type":"string","description":"Prefix of an Internet connection string. It must be checked for uniqueness. It may consist of lowercase letters, numbers, and underlines, and must start with a letter and have no more than 40 characters. Default to \u003cinstance_id\u003e + 'tf'.\n"},"connectionString":{"type":"string","description":"Connection instance string.\n"},"instanceId":{"type":"string","description":"The Id of instance that can run database.\n"},"ipAddress":{"type":"string","description":"The ip address of connection string.\n"},"port":{"type":"string","description":"Internet connection port. Valid value: [1000-5999]. Default to 3306.\n"}},"required":["babelfishPort","connectionPrefix","connectionString","instanceId","ipAddress"],"inputProperties":{"babelfishPort":{"type":"string","description":"The Tabular Data Stream (TDS) port of the instance for which Babelfish is enabled.\n\n\u003e **NOTE:** This parameter applies only to ApsaraDB RDS for PostgreSQL instances. For more information about Babelfish for ApsaraDB RDS for PostgreSQL, see [Introduction to Babelfish](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/babelfish-for-pg).\n"},"connectionPrefix":{"type":"string","description":"Prefix of an Internet connection string. It must be checked for uniqueness. It may consist of lowercase letters, numbers, and underlines, and must start with a letter and have no more than 40 characters. Default to \u003cinstance_id\u003e + 'tf'.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The Id of instance that can run database.\n","willReplaceOnChanges":true},"port":{"type":"string","description":"Internet connection port. Valid value: [1000-5999]. Default to 3306.\n"}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Connection resources.\n","properties":{"babelfishPort":{"type":"string","description":"The Tabular Data Stream (TDS) port of the instance for which Babelfish is enabled.\n\n\u003e **NOTE:** This parameter applies only to ApsaraDB RDS for PostgreSQL instances. For more information about Babelfish for ApsaraDB RDS for PostgreSQL, see [Introduction to Babelfish](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/babelfish-for-pg).\n"},"connectionPrefix":{"type":"string","description":"Prefix of an Internet connection string. It must be checked for uniqueness. It may consist of lowercase letters, numbers, and underlines, and must start with a letter and have no more than 40 characters. Default to \u003cinstance_id\u003e + 'tf'.\n","willReplaceOnChanges":true},"connectionString":{"type":"string","description":"Connection instance string.\n"},"instanceId":{"type":"string","description":"The Id of instance that can run database.\n","willReplaceOnChanges":true},"ipAddress":{"type":"string","description":"The ip address of connection string.\n"},"port":{"type":"string","description":"Internet connection port. Valid value: [1000-5999]. Default to 3306.\n"}},"type":"object"}},"alicloud:rds/custom:Custom":{"description":"Provides a RDS Custom resource.\n\nDedicated RDS User host.\n\nFor information about RDS Custom and how to use it, see [What is Custom](https://next.api.alibabacloud.com/document/Rds/2014-08-15/RunRCInstances).\n\n\u003e **NOTE:** Available since v1.247.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst clusterId = config.get(\"clusterId\") || \"c18c40b2b336840e2b2bbf8ab291758e2\";\nconst deploymentsetid = config.get(\"deploymentsetid\") || \"ds-2ze78ef5kyj9eveue92m\";\nconst vswtich_id = config.get(\"vswtich-id\") || \"example_vswitch\";\nconst vpcName = config.get(\"vpcName\") || \"beijing111\";\nconst exampleRegionId = config.get(\"exampleRegionId\") || \"cn-beijing\";\nconst description = config.get(\"description\") || \"ran_1-08_rccreatenodepool_api\";\nconst exampleZoneId = config.get(\"exampleZoneId\") || \"cn-beijing-h\";\nconst securitygroupName = config.get(\"securitygroupName\") || \"rds_custom_init_sg_cn_beijing\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst vpcId = new alicloud.vpc.Network(\"vpcId\", {vpcName: vpcName});\nconst vSwitchId = new alicloud.vpc.Switch(\"vSwitchId\", {\n    vpcId: vpcId.id,\n    zoneId: exampleZoneId,\n    vswitchName: vswtich_id,\n    cidrBlock: \"172.16.5.0/24\",\n});\nconst securityGroupId = new alicloud.ecs.SecurityGroup(\"securityGroupId\", {\n    vpcId: vpcId.id,\n    securityGroupName: securitygroupName,\n});\nconst deploymentSet = new alicloud.ecs.EcsDeploymentSet(\"deploymentSet\", {});\nconst keyPairName = new alicloud.ecs.EcsKeyPair(\"KeyPairName\", {keyPairName: vSwitchId.id});\nconst defaultCustom = new alicloud.rds.Custom(\"default\", {\n    amount: 1,\n    autoRenew: false,\n    period: 1,\n    autoPay: true,\n    instanceType: \"mysql.x2.xlarge.6cm\",\n    dataDisks: [{\n        category: \"cloud_essd\",\n        size: 50,\n        performanceLevel: \"PL1\",\n    }],\n    status: \"Running\",\n    securityGroupIds: [securityGroupId.id],\n    ioOptimized: \"optimized\",\n    description: description,\n    keyPairName: keyPairName.id,\n    zoneId: exampleZoneId,\n    instanceChargeType: \"Prepaid\",\n    internetMaxBandwidthOut: 0,\n    imageId: \"aliyun_2_1903_x64_20G_alibase_20240628.vhd\",\n    securityEnhancementStrategy: \"Active\",\n    periodUnit: \"Month\",\n    password: \"jingyiTEST@123\",\n    systemDisk: {\n        size: \"40\",\n        category: \"cloud_essd\",\n    },\n    hostName: \"1743386110\",\n    createMode: \"0\",\n    spotStrategy: \"NoSpot\",\n    vswitchId: vSwitchId.id,\n    supportCase: \"eni\",\n    deploymentSetId: deploymentsetid,\n    dryRun: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncluster_id = config.get(\"clusterId\")\nif cluster_id is None:\n    cluster_id = \"c18c40b2b336840e2b2bbf8ab291758e2\"\ndeploymentsetid = config.get(\"deploymentsetid\")\nif deploymentsetid is None:\n    deploymentsetid = \"ds-2ze78ef5kyj9eveue92m\"\nvswtich_id = config.get(\"vswtich-id\")\nif vswtich_id is None:\n    vswtich_id = \"example_vswitch\"\nvpc_name = config.get(\"vpcName\")\nif vpc_name is None:\n    vpc_name = \"beijing111\"\nexample_region_id = config.get(\"exampleRegionId\")\nif example_region_id is None:\n    example_region_id = \"cn-beijing\"\ndescription = config.get(\"description\")\nif description is None:\n    description = \"ran_1-08_rccreatenodepool_api\"\nexample_zone_id = config.get(\"exampleZoneId\")\nif example_zone_id is None:\n    example_zone_id = \"cn-beijing-h\"\nsecuritygroup_name = config.get(\"securitygroupName\")\nif securitygroup_name is None:\n    securitygroup_name = \"rds_custom_init_sg_cn_beijing\"\ndefault = alicloud.resourcemanager.get_resource_groups()\nvpc_id = alicloud.vpc.Network(\"vpcId\", vpc_name=vpc_name)\nv_switch_id = alicloud.vpc.Switch(\"vSwitchId\",\n    vpc_id=vpc_id.id,\n    zone_id=example_zone_id,\n    vswitch_name=vswtich_id,\n    cidr_block=\"172.16.5.0/24\")\nsecurity_group_id = alicloud.ecs.SecurityGroup(\"securityGroupId\",\n    vpc_id=vpc_id.id,\n    security_group_name=securitygroup_name)\ndeployment_set = alicloud.ecs.EcsDeploymentSet(\"deploymentSet\")\nkey_pair_name = alicloud.ecs.EcsKeyPair(\"KeyPairName\", key_pair_name=v_switch_id.id)\ndefault_custom = alicloud.rds.Custom(\"default\",\n    amount=1,\n    auto_renew=False,\n    period=1,\n    auto_pay=True,\n    instance_type=\"mysql.x2.xlarge.6cm\",\n    data_disks=[{\n        \"category\": \"cloud_essd\",\n        \"size\": 50,\n        \"performance_level\": \"PL1\",\n    }],\n    status=\"Running\",\n    security_group_ids=[security_group_id.id],\n    io_optimized=\"optimized\",\n    description=description,\n    key_pair_name=key_pair_name.id,\n    zone_id=example_zone_id,\n    instance_charge_type=\"Prepaid\",\n    internet_max_bandwidth_out=0,\n    image_id=\"aliyun_2_1903_x64_20G_alibase_20240628.vhd\",\n    security_enhancement_strategy=\"Active\",\n    period_unit=\"Month\",\n    password=\"jingyiTEST@123\",\n    system_disk={\n        \"size\": \"40\",\n        \"category\": \"cloud_essd\",\n    },\n    host_name=\"1743386110\",\n    create_mode=\"0\",\n    spot_strategy=\"NoSpot\",\n    vswitch_id=v_switch_id.id,\n    support_case=\"eni\",\n    deployment_set_id=deploymentsetid,\n    dry_run=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var clusterId = config.Get(\"clusterId\") ?? \"c18c40b2b336840e2b2bbf8ab291758e2\";\n    var deploymentsetid = config.Get(\"deploymentsetid\") ?? \"ds-2ze78ef5kyj9eveue92m\";\n    var vswtich_id = config.Get(\"vswtich-id\") ?? \"example_vswitch\";\n    var vpcName = config.Get(\"vpcName\") ?? \"beijing111\";\n    var exampleRegionId = config.Get(\"exampleRegionId\") ?? \"cn-beijing\";\n    var description = config.Get(\"description\") ?? \"ran_1-08_rccreatenodepool_api\";\n    var exampleZoneId = config.Get(\"exampleZoneId\") ?? \"cn-beijing-h\";\n    var securitygroupName = config.Get(\"securitygroupName\") ?? \"rds_custom_init_sg_cn_beijing\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var vpcId = new AliCloud.Vpc.Network(\"vpcId\", new()\n    {\n        VpcName = vpcName,\n    });\n\n    var vSwitchId = new AliCloud.Vpc.Switch(\"vSwitchId\", new()\n    {\n        VpcId = vpcId.Id,\n        ZoneId = exampleZoneId,\n        VswitchName = vswtich_id,\n        CidrBlock = \"172.16.5.0/24\",\n    });\n\n    var securityGroupId = new AliCloud.Ecs.SecurityGroup(\"securityGroupId\", new()\n    {\n        VpcId = vpcId.Id,\n        SecurityGroupName = securitygroupName,\n    });\n\n    var deploymentSet = new AliCloud.Ecs.EcsDeploymentSet(\"deploymentSet\");\n\n    var keyPairName = new AliCloud.Ecs.EcsKeyPair(\"KeyPairName\", new()\n    {\n        KeyPairName = vSwitchId.Id,\n    });\n\n    var defaultCustom = new AliCloud.Rds.Custom(\"default\", new()\n    {\n        Amount = 1,\n        AutoRenew = false,\n        Period = 1,\n        AutoPay = true,\n        InstanceType = \"mysql.x2.xlarge.6cm\",\n        DataDisks = new[]\n        {\n            new AliCloud.Rds.Inputs.CustomDataDiskArgs\n            {\n                Category = \"cloud_essd\",\n                Size = 50,\n                PerformanceLevel = \"PL1\",\n            },\n        },\n        Status = \"Running\",\n        SecurityGroupIds = new[]\n        {\n            securityGroupId.Id,\n        },\n        IoOptimized = \"optimized\",\n        Description = description,\n        KeyPairName = keyPairName.Id,\n        ZoneId = exampleZoneId,\n        InstanceChargeType = \"Prepaid\",\n        InternetMaxBandwidthOut = 0,\n        ImageId = \"aliyun_2_1903_x64_20G_alibase_20240628.vhd\",\n        SecurityEnhancementStrategy = \"Active\",\n        PeriodUnit = \"Month\",\n        Password = \"jingyiTEST@123\",\n        SystemDisk = new AliCloud.Rds.Inputs.CustomSystemDiskArgs\n        {\n            Size = \"40\",\n            Category = \"cloud_essd\",\n        },\n        HostName = \"1743386110\",\n        CreateMode = \"0\",\n        SpotStrategy = \"NoSpot\",\n        VswitchId = vSwitchId.Id,\n        SupportCase = \"eni\",\n        DeploymentSetId = deploymentsetid,\n        DryRun = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tclusterId := \"c18c40b2b336840e2b2bbf8ab291758e2\"\n\t\tif param := cfg.Get(\"clusterId\"); param != \"\" {\n\t\t\tclusterId = param\n\t\t}\n\t\tdeploymentsetid := \"ds-2ze78ef5kyj9eveue92m\"\n\t\tif param := cfg.Get(\"deploymentsetid\"); param != \"\" {\n\t\t\tdeploymentsetid = param\n\t\t}\n\t\tvswtich_id := \"example_vswitch\"\n\t\tif param := cfg.Get(\"vswtich-id\"); param != \"\" {\n\t\t\tvswtich_id = param\n\t\t}\n\t\tvpcName := \"beijing111\"\n\t\tif param := cfg.Get(\"vpcName\"); param != \"\" {\n\t\t\tvpcName = param\n\t\t}\n\t\texampleRegionId := \"cn-beijing\"\n\t\tif param := cfg.Get(\"exampleRegionId\"); param != \"\" {\n\t\t\texampleRegionId = param\n\t\t}\n\t\tdescription := \"ran_1-08_rccreatenodepool_api\"\n\t\tif param := cfg.Get(\"description\"); param != \"\" {\n\t\t\tdescription = param\n\t\t}\n\t\texampleZoneId := \"cn-beijing-h\"\n\t\tif param := cfg.Get(\"exampleZoneId\"); param != \"\" {\n\t\t\texampleZoneId = param\n\t\t}\n\t\tsecuritygroupName := \"rds_custom_init_sg_cn_beijing\"\n\t\tif param := cfg.Get(\"securitygroupName\"); param != \"\" {\n\t\t\tsecuritygroupName = param\n\t\t}\n\t\t_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpcId, err := vpc.NewNetwork(ctx, \"vpcId\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName: pulumi.String(vpcName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvSwitchId, err := vpc.NewSwitch(ctx, \"vSwitchId\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       vpcId.ID(),\n\t\t\tZoneId:      pulumi.String(exampleZoneId),\n\t\t\tVswitchName: pulumi.String(vswtich_id),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.5.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecurityGroupId, err := ecs.NewSecurityGroup(ctx, \"securityGroupId\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId:             vpcId.ID(),\n\t\t\tSecurityGroupName: pulumi.String(securitygroupName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEcsDeploymentSet(ctx, \"deploymentSet\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkeyPairName, err := ecs.NewEcsKeyPair(ctx, \"KeyPairName\", \u0026ecs.EcsKeyPairArgs{\n\t\t\tKeyPairName: vSwitchId.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewCustom(ctx, \"default\", \u0026rds.CustomArgs{\n\t\t\tAmount:       pulumi.Int(1),\n\t\t\tAutoRenew:    pulumi.Bool(false),\n\t\t\tPeriod:       pulumi.Int(1),\n\t\t\tAutoPay:      pulumi.Bool(true),\n\t\t\tInstanceType: pulumi.String(\"mysql.x2.xlarge.6cm\"),\n\t\t\tDataDisks: rds.CustomDataDiskArray{\n\t\t\t\t\u0026rds.CustomDataDiskArgs{\n\t\t\t\t\tCategory:         pulumi.String(\"cloud_essd\"),\n\t\t\t\t\tSize:             pulumi.Int(50),\n\t\t\t\t\tPerformanceLevel: pulumi.String(\"PL1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tStatus: pulumi.String(\"Running\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tsecurityGroupId.ID(),\n\t\t\t},\n\t\t\tIoOptimized:                 pulumi.String(\"optimized\"),\n\t\t\tDescription:                 pulumi.String(description),\n\t\t\tKeyPairName:                 keyPairName.ID(),\n\t\t\tZoneId:                      pulumi.String(exampleZoneId),\n\t\t\tInstanceChargeType:          pulumi.String(\"Prepaid\"),\n\t\t\tInternetMaxBandwidthOut:     pulumi.Int(0),\n\t\t\tImageId:                     pulumi.String(\"aliyun_2_1903_x64_20G_alibase_20240628.vhd\"),\n\t\t\tSecurityEnhancementStrategy: pulumi.String(\"Active\"),\n\t\t\tPeriodUnit:                  pulumi.String(\"Month\"),\n\t\t\tPassword:                    pulumi.String(\"jingyiTEST@123\"),\n\t\t\tSystemDisk: \u0026rds.CustomSystemDiskArgs{\n\t\t\t\tSize:     pulumi.String(\"40\"),\n\t\t\t\tCategory: pulumi.String(\"cloud_essd\"),\n\t\t\t},\n\t\t\tHostName:        pulumi.String(\"1743386110\"),\n\t\t\tCreateMode:      pulumi.String(\"0\"),\n\t\t\tSpotStrategy:    pulumi.String(\"NoSpot\"),\n\t\t\tVswitchId:       vSwitchId.ID(),\n\t\t\tSupportCase:     pulumi.String(\"eni\"),\n\t\t\tDeploymentSetId: pulumi.String(deploymentsetid),\n\t\t\tDryRun:          pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.EcsDeploymentSet;\nimport com.pulumi.alicloud.ecs.EcsKeyPair;\nimport com.pulumi.alicloud.ecs.EcsKeyPairArgs;\nimport com.pulumi.alicloud.rds.Custom;\nimport com.pulumi.alicloud.rds.CustomArgs;\nimport com.pulumi.alicloud.rds.inputs.CustomDataDiskArgs;\nimport com.pulumi.alicloud.rds.inputs.CustomSystemDiskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var clusterId = config.get(\"clusterId\").orElse(\"c18c40b2b336840e2b2bbf8ab291758e2\");\n        final var deploymentsetid = config.get(\"deploymentsetid\").orElse(\"ds-2ze78ef5kyj9eveue92m\");\n        final var vswtich_id = config.get(\"vswtich-id\").orElse(\"example_vswitch\");\n        final var vpcName = config.get(\"vpcName\").orElse(\"beijing111\");\n        final var exampleRegionId = config.get(\"exampleRegionId\").orElse(\"cn-beijing\");\n        final var description = config.get(\"description\").orElse(\"ran_1-08_rccreatenodepool_api\");\n        final var exampleZoneId = config.get(\"exampleZoneId\").orElse(\"cn-beijing-h\");\n        final var securitygroupName = config.get(\"securitygroupName\").orElse(\"rds_custom_init_sg_cn_beijing\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var vpcId = new Network(\"vpcId\", NetworkArgs.builder()\n            .vpcName(vpcName)\n            .build());\n\n        var vSwitchId = new Switch(\"vSwitchId\", SwitchArgs.builder()\n            .vpcId(vpcId.id())\n            .zoneId(exampleZoneId)\n            .vswitchName(vswtich_id)\n            .cidrBlock(\"172.16.5.0/24\")\n            .build());\n\n        var securityGroupId = new SecurityGroup(\"securityGroupId\", SecurityGroupArgs.builder()\n            .vpcId(vpcId.id())\n            .securityGroupName(securitygroupName)\n            .build());\n\n        var deploymentSet = new EcsDeploymentSet(\"deploymentSet\");\n\n        var keyPairName = new EcsKeyPair(\"keyPairName\", EcsKeyPairArgs.builder()\n            .keyPairName(vSwitchId.id())\n            .build());\n\n        var defaultCustom = new Custom(\"defaultCustom\", CustomArgs.builder()\n            .amount(1)\n            .autoRenew(false)\n            .period(1)\n            .autoPay(true)\n            .instanceType(\"mysql.x2.xlarge.6cm\")\n            .dataDisks(CustomDataDiskArgs.builder()\n                .category(\"cloud_essd\")\n                .size(50)\n                .performanceLevel(\"PL1\")\n                .build())\n            .status(\"Running\")\n            .securityGroupIds(securityGroupId.id())\n            .ioOptimized(\"optimized\")\n            .description(description)\n            .keyPairName(keyPairName.id())\n            .zoneId(exampleZoneId)\n            .instanceChargeType(\"Prepaid\")\n            .internetMaxBandwidthOut(0)\n            .imageId(\"aliyun_2_1903_x64_20G_alibase_20240628.vhd\")\n            .securityEnhancementStrategy(\"Active\")\n            .periodUnit(\"Month\")\n            .password(\"jingyiTEST@123\")\n            .systemDisk(CustomSystemDiskArgs.builder()\n                .size(\"40\")\n                .category(\"cloud_essd\")\n                .build())\n            .hostName(\"1743386110\")\n            .createMode(\"0\")\n            .spotStrategy(\"NoSpot\")\n            .vswitchId(vSwitchId.id())\n            .supportCase(\"eni\")\n            .deploymentSetId(deploymentsetid)\n            .dryRun(false)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  clusterId:\n    type: string\n    default: c18c40b2b336840e2b2bbf8ab291758e2\n  deploymentsetid:\n    type: string\n    default: ds-2ze78ef5kyj9eveue92m\n  vswtich-id:\n    type: string\n    default: example_vswitch\n  vpcName:\n    type: string\n    default: beijing111\n  exampleRegionId:\n    type: string\n    default: cn-beijing\n  description:\n    type: string\n    default: ran_1-08_rccreatenodepool_api\n  exampleZoneId:\n    type: string\n    default: cn-beijing-h\n  securitygroupName:\n    type: string\n    default: rds_custom_init_sg_cn_beijing\nresources:\n  vpcId:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${vpcName}\n  vSwitchId:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${vpcId.id}\n      zoneId: ${exampleZoneId}\n      vswitchName: ${[\"vswtich-id\"]}\n      cidrBlock: 172.16.5.0/24\n  securityGroupId:\n    type: alicloud:ecs:SecurityGroup\n    properties:\n      vpcId: ${vpcId.id}\n      securityGroupName: ${securitygroupName}\n  deploymentSet:\n    type: alicloud:ecs:EcsDeploymentSet\n  keyPairName:\n    type: alicloud:ecs:EcsKeyPair\n    name: KeyPairName\n    properties:\n      keyPairName: ${vSwitchId.id}\n  defaultCustom:\n    type: alicloud:rds:Custom\n    name: default\n    properties:\n      amount: '1'\n      autoRenew: false\n      period: '1'\n      autoPay: true\n      instanceType: mysql.x2.xlarge.6cm\n      dataDisks:\n        - category: cloud_essd\n          size: '50'\n          performanceLevel: PL1\n      status: Running\n      securityGroupIds:\n        - ${securityGroupId.id}\n      ioOptimized: optimized\n      description: ${description}\n      keyPairName: ${keyPairName.id}\n      zoneId: ${exampleZoneId}\n      instanceChargeType: Prepaid\n      internetMaxBandwidthOut: '0'\n      imageId: aliyun_2_1903_x64_20G_alibase_20240628.vhd\n      securityEnhancementStrategy: Active\n      periodUnit: Month\n      password: jingyiTEST@123\n      systemDisk:\n        size: '40'\n        category: cloud_essd\n      hostName: '1743386110'\n      createMode: '0'\n      spotStrategy: NoSpot\n      vswitchId: ${vSwitchId.id}\n      supportCase: eni\n      deploymentSetId: ${deploymentsetid}\n      dryRun: false\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS Custom can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/custom:Custom example \u003cid\u003e\n```\n\n","properties":{"amount":{"type":"integer","description":"Represents the number of instances created\n"},"autoPay":{"type":"boolean","description":"Whether to pay automatically. Value range:\n"},"autoRenew":{"type":"boolean","description":"Whether the instance is automatically renewed. Valid values: true/false. The default is false.\n"},"createExtraParam":{"type":"string","description":"Reserved parameters are not supported.\n"},"createMode":{"type":"string","description":"Whether to allow joining the ACK cluster. When this parameter is set to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, the created instance can be added to the ACK cluster through The `AttachRCInstances` API to efficiently manage container applications.\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:rds/CustomDataDisk:CustomDataDisk"},"description":"Data disk See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below.\n"},"deploymentSetId":{"type":"string","description":"The ID of the deployment set.\n"},"description":{"type":"string","description":"Instance description. It must be 2 to 256 characters in length and cannot start with http:// or https.\n"},"direction":{"type":"string","description":"Instance configuration type, value range:\n\n\u003e **NOTE:**  This parameter does not need to be uploaded, and the system can automatically determine whether to upgrade or downgrade. If you want to upload, please follow the following logic rules.\n- `Up` (default): upgrade the instance specification. Please ensure that your account balance is sufficient.\n- `Down`: Downgrade instance specifications. When the instance type set to InstanceType is lower than the current instance type, set Direction = down.\n"},"dryRun":{"type":"boolean","description":"Whether to pre-check the operation of creating an instance. Valid values:\n"},"force":{"type":"boolean","description":"Whether to forcibly release the running instance. Value: true/false\n"},"forceStop":{"type":"boolean","description":"Whether to force shutdown. Value range:\n"},"hostName":{"type":"string","description":"The instance host name.\n"},"imageId":{"type":"string","description":"The ID of the image used by the instance.\n"},"instanceChargeType":{"type":"string","description":"The Payment type. Currently, only `Prepaid` (package year and month) types are supported.\n"},"instanceType":{"type":"string","description":"The type of the created RDS Custom dedicated host instance.\n"},"internetChargeType":{"type":"string","description":"Reserved parameters are not supported.\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Reserved parameters are not supported.\n"},"ioOptimized":{"type":"string","description":"Reserved parameters are not supported.\n"},"keyPairName":{"type":"string","description":"The key pair name. Only flyer names are supported.\n"},"password":{"type":"string","description":"The account and password of the instance.\n"},"period":{"type":"integer","description":"Prepaid renewal duration, unit: Month/Year.\n"},"periodUnit":{"type":"string","description":"The unit of duration of the year-to-month billing method. Value range:\n- `Year`: Year\n- `Month` (default): Month\n"},"regionId":{"type":"string","description":"The region ID. Callable DescribeRegions to get.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"securityEnhancementStrategy":{"type":"string","description":"Reserved parameters are not supported.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"Security group list\n"},"spotStrategy":{"type":"string","description":"The bidding strategy for pay-as-you-go instances. This parameter takes effect when the value of `InstanceChargeType` is set to **PostPaid. Value range:\n- `NoSpot`: normal pay-as-you-go instances.\n- `SpotAsPriceGo`: The system automatically bids and follows the actual price in the current market.\n\nDefault value: **NoSpot * *.\n"},"status":{"type":"string","description":"The status of the resource\n"},"supportCase":{"type":"string","description":"Supported scenarios: createMode:supportCase, for example: NATIVE(\"0\", \"eni\"),RCK(\"1\", \"rck\"),ACK_EDGE(\"1\", \"edge\");\n"},"systemDisk":{"$ref":"#/types/alicloud:rds/CustomSystemDisk:CustomSystemDisk","description":"System disk specifications. See \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"vswitchId":{"type":"string","description":"The ID of the virtual switch. The zone in which the vSwitch is located must correspond to the zone ID entered in ZoneId.\nThe network type InstanceNetworkType must be VPC.\n"},"zoneId":{"type":"string","description":"The zone ID  of the resource\n"}},"required":["instanceType","regionId","resourceGroupId","status","vswitchId"],"inputProperties":{"amount":{"type":"integer","description":"Represents the number of instances created\n"},"autoPay":{"type":"boolean","description":"Whether to pay automatically. Value range:\n"},"autoRenew":{"type":"boolean","description":"Whether the instance is automatically renewed. Valid values: true/false. The default is false.\n"},"createExtraParam":{"type":"string","description":"Reserved parameters are not supported.\n"},"createMode":{"type":"string","description":"Whether to allow joining the ACK cluster. When this parameter is set to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, the created instance can be added to the ACK cluster through The `AttachRCInstances` API to efficiently manage container applications.\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:rds/CustomDataDisk:CustomDataDisk"},"description":"Data disk See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"deploymentSetId":{"type":"string","description":"The ID of the deployment set.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Instance description. It must be 2 to 256 characters in length and cannot start with http:// or https.\n","willReplaceOnChanges":true},"direction":{"type":"string","description":"Instance configuration type, value range:\n\n\u003e **NOTE:**  This parameter does not need to be uploaded, and the system can automatically determine whether to upgrade or downgrade. If you want to upload, please follow the following logic rules.\n- `Up` (default): upgrade the instance specification. Please ensure that your account balance is sufficient.\n- `Down`: Downgrade instance specifications. When the instance type set to InstanceType is lower than the current instance type, set Direction = down.\n"},"dryRun":{"type":"boolean","description":"Whether to pre-check the operation of creating an instance. Valid values:\n"},"force":{"type":"boolean","description":"Whether to forcibly release the running instance. Value: true/false\n"},"forceStop":{"type":"boolean","description":"Whether to force shutdown. Value range:\n"},"hostName":{"type":"string","description":"The instance host name.\n"},"imageId":{"type":"string","description":"The ID of the image used by the instance.\n"},"instanceChargeType":{"type":"string","description":"The Payment type. Currently, only `Prepaid` (package year and month) types are supported.\n"},"instanceType":{"type":"string","description":"The type of the created RDS Custom dedicated host instance.\n"},"internetChargeType":{"type":"string","description":"Reserved parameters are not supported.\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Reserved parameters are not supported.\n"},"ioOptimized":{"type":"string","description":"Reserved parameters are not supported.\n"},"keyPairName":{"type":"string","description":"The key pair name. Only flyer names are supported.\n"},"password":{"type":"string","description":"The account and password of the instance.\n"},"period":{"type":"integer","description":"Prepaid renewal duration, unit: Month/Year.\n"},"periodUnit":{"type":"string","description":"The unit of duration of the year-to-month billing method. Value range:\n- `Year`: Year\n- `Month` (default): Month\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"securityEnhancementStrategy":{"type":"string","description":"Reserved parameters are not supported.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"Security group list\n","willReplaceOnChanges":true},"spotStrategy":{"type":"string","description":"The bidding strategy for pay-as-you-go instances. This parameter takes effect when the value of `InstanceChargeType` is set to **PostPaid. Value range:\n- `NoSpot`: normal pay-as-you-go instances.\n- `SpotAsPriceGo`: The system automatically bids and follows the actual price in the current market.\n\nDefault value: **NoSpot * *.\n"},"status":{"type":"string","description":"The status of the resource\n"},"supportCase":{"type":"string","description":"Supported scenarios: createMode:supportCase, for example: NATIVE(\"0\", \"eni\"),RCK(\"1\", \"rck\"),ACK_EDGE(\"1\", \"edge\");\n"},"systemDisk":{"$ref":"#/types/alicloud:rds/CustomSystemDisk:CustomSystemDisk","description":"System disk specifications. See \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"vswitchId":{"type":"string","description":"The ID of the virtual switch. The zone in which the vSwitch is located must correspond to the zone ID entered in ZoneId.\nThe network type InstanceNetworkType must be VPC.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID  of the resource\n","willReplaceOnChanges":true}},"requiredInputs":["instanceType","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering Custom resources.\n","properties":{"amount":{"type":"integer","description":"Represents the number of instances created\n"},"autoPay":{"type":"boolean","description":"Whether to pay automatically. Value range:\n"},"autoRenew":{"type":"boolean","description":"Whether the instance is automatically renewed. Valid values: true/false. The default is false.\n"},"createExtraParam":{"type":"string","description":"Reserved parameters are not supported.\n"},"createMode":{"type":"string","description":"Whether to allow joining the ACK cluster. When this parameter is set to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, the created instance can be added to the ACK cluster through The `AttachRCInstances` API to efficiently manage container applications.\n"},"dataDisks":{"type":"array","items":{"$ref":"#/types/alicloud:rds/CustomDataDisk:CustomDataDisk"},"description":"Data disk See \u003cspan pulumi-lang-nodejs=\"`dataDisk`\" pulumi-lang-dotnet=\"`DataDisk`\" pulumi-lang-go=\"`dataDisk`\" pulumi-lang-python=\"`data_disk`\" pulumi-lang-yaml=\"`dataDisk`\" pulumi-lang-java=\"`dataDisk`\"\u003e`data_disk`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"deploymentSetId":{"type":"string","description":"The ID of the deployment set.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Instance description. It must be 2 to 256 characters in length and cannot start with http:// or https.\n","willReplaceOnChanges":true},"direction":{"type":"string","description":"Instance configuration type, value range:\n\n\u003e **NOTE:**  This parameter does not need to be uploaded, and the system can automatically determine whether to upgrade or downgrade. If you want to upload, please follow the following logic rules.\n- `Up` (default): upgrade the instance specification. Please ensure that your account balance is sufficient.\n- `Down`: Downgrade instance specifications. When the instance type set to InstanceType is lower than the current instance type, set Direction = down.\n"},"dryRun":{"type":"boolean","description":"Whether to pre-check the operation of creating an instance. Valid values:\n"},"force":{"type":"boolean","description":"Whether to forcibly release the running instance. Value: true/false\n"},"forceStop":{"type":"boolean","description":"Whether to force shutdown. Value range:\n"},"hostName":{"type":"string","description":"The instance host name.\n"},"imageId":{"type":"string","description":"The ID of the image used by the instance.\n"},"instanceChargeType":{"type":"string","description":"The Payment type. Currently, only `Prepaid` (package year and month) types are supported.\n"},"instanceType":{"type":"string","description":"The type of the created RDS Custom dedicated host instance.\n"},"internetChargeType":{"type":"string","description":"Reserved parameters are not supported.\n"},"internetMaxBandwidthOut":{"type":"integer","description":"Reserved parameters are not supported.\n"},"ioOptimized":{"type":"string","description":"Reserved parameters are not supported.\n"},"keyPairName":{"type":"string","description":"The key pair name. Only flyer names are supported.\n"},"password":{"type":"string","description":"The account and password of the instance.\n"},"period":{"type":"integer","description":"Prepaid renewal duration, unit: Month/Year.\n"},"periodUnit":{"type":"string","description":"The unit of duration of the year-to-month billing method. Value range:\n- `Year`: Year\n- `Month` (default): Month\n"},"regionId":{"type":"string","description":"The region ID. Callable DescribeRegions to get.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"securityEnhancementStrategy":{"type":"string","description":"Reserved parameters are not supported.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"Security group list\n","willReplaceOnChanges":true},"spotStrategy":{"type":"string","description":"The bidding strategy for pay-as-you-go instances. This parameter takes effect when the value of `InstanceChargeType` is set to **PostPaid. Value range:\n- `NoSpot`: normal pay-as-you-go instances.\n- `SpotAsPriceGo`: The system automatically bids and follows the actual price in the current market.\n\nDefault value: **NoSpot * *.\n"},"status":{"type":"string","description":"The status of the resource\n"},"supportCase":{"type":"string","description":"Supported scenarios: createMode:supportCase, for example: NATIVE(\"0\", \"eni\"),RCK(\"1\", \"rck\"),ACK_EDGE(\"1\", \"edge\");\n"},"systemDisk":{"$ref":"#/types/alicloud:rds/CustomSystemDisk:CustomSystemDisk","description":"System disk specifications. See \u003cspan pulumi-lang-nodejs=\"`systemDisk`\" pulumi-lang-dotnet=\"`SystemDisk`\" pulumi-lang-go=\"`systemDisk`\" pulumi-lang-python=\"`system_disk`\" pulumi-lang-yaml=\"`systemDisk`\" pulumi-lang-java=\"`systemDisk`\"\u003e`system_disk`\u003c/span\u003e below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"vswitchId":{"type":"string","description":"The ID of the virtual switch. The zone in which the vSwitch is located must correspond to the zone ID entered in ZoneId.\nThe network type InstanceNetworkType must be VPC.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID  of the resource\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rds/customDeploymentSet:CustomDeploymentSet":{"description":"Provides a RDS Custom Deployment Set resource.\n\nCustom Deployment set.\n\nFor information about RDS Custom Deployment Set and how to use it, see [What is Custom Deployment Set](https://www.alibabacloud.com/help/en/).\n\n\u003e **NOTE:** Available since v1.235.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.rds.CustomDeploymentSet(\"default\", {\n    onUnableToRedeployFailedInstance: \"CancelMembershipAndStart\",\n    customDeploymentSetName: name,\n    description: \"2024:11:19 1010:1111:0808\",\n    groupCount: 3,\n    strategy: \"Availability\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.rds.CustomDeploymentSet(\"default\",\n    on_unable_to_redeploy_failed_instance=\"CancelMembershipAndStart\",\n    custom_deployment_set_name=name,\n    description=\"2024:11:19 1010:1111:0808\",\n    group_count=3,\n    strategy=\"Availability\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Rds.CustomDeploymentSet(\"default\", new()\n    {\n        OnUnableToRedeployFailedInstance = \"CancelMembershipAndStart\",\n        CustomDeploymentSetName = name,\n        Description = \"2024:11:19 1010:1111:0808\",\n        GroupCount = 3,\n        Strategy = \"Availability\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := rds.NewCustomDeploymentSet(ctx, \"default\", \u0026rds.CustomDeploymentSetArgs{\n\t\t\tOnUnableToRedeployFailedInstance: pulumi.String(\"CancelMembershipAndStart\"),\n\t\t\tCustomDeploymentSetName:          pulumi.String(name),\n\t\t\tDescription:                      pulumi.String(\"2024:11:19 1010:1111:0808\"),\n\t\t\tGroupCount:                       pulumi.Int(3),\n\t\t\tStrategy:                         pulumi.String(\"Availability\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.CustomDeploymentSet;\nimport com.pulumi.alicloud.rds.CustomDeploymentSetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new CustomDeploymentSet(\"default\", CustomDeploymentSetArgs.builder()\n            .onUnableToRedeployFailedInstance(\"CancelMembershipAndStart\")\n            .customDeploymentSetName(name)\n            .description(\"2024:11:19 1010:1111:0808\")\n            .groupCount(3)\n            .strategy(\"Availability\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:rds:CustomDeploymentSet\n    properties:\n      onUnableToRedeployFailedInstance: CancelMembershipAndStart\n      customDeploymentSetName: ${name}\n      description: 2024:11:19 1010:1111:0808\n      groupCount: '3'\n      strategy: Availability\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS Custom Deployment Set can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/customDeploymentSet:CustomDeploymentSet example \u003cid\u003e\n```\n\n","properties":{"customDeploymentSetName":{"type":"string","description":"The name of the resource\n"},"description":{"type":"string","description":"Deployment set description information. It must be 2 to 256 characters in length and cannot start with http:// or https.\n"},"groupCount":{"type":"integer","description":"Set the number of groups for the deployment set group high availability policy. Value range: 1~7.\n\nDefault value: 3\n\n\u003e **NOTE:**  This parameter takes effect only when 'Strategy = AvailabilityGroup.\n"},"onUnableToRedeployFailedInstance":{"type":"string","description":"After the instance in the deployment set is down and migrated, there is no emergency solution for the scattered instance inventory. Value range:\n- `CancelMembershipAndStart`: removes the instance from the deployment set and starts the instance immediately after the instance is down and migrated.\n- `KeepStopped`: The deployment set of the instance is maintained. The instance remains in the stopped state.\n\nDefault value: CancelMembershipAndStart.\n"},"status":{"type":"string","description":"The status of the resource\n"},"strategy":{"type":"string","description":"Deployment strategy. Value range:\n- `Availability`: High Availability policy.\n- `AvailabilityGroup`: the high availability policy of the deployment set group.\n- `LowLatency`: Network low latency policy.\n\nDefault value: Availability.\n"}},"required":["status","strategy"],"inputProperties":{"customDeploymentSetName":{"type":"string","description":"The name of the resource\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Deployment set description information. It must be 2 to 256 characters in length and cannot start with http:// or https.\n","willReplaceOnChanges":true},"groupCount":{"type":"integer","description":"Set the number of groups for the deployment set group high availability policy. Value range: 1~7.\n\nDefault value: 3\n\n\u003e **NOTE:**  This parameter takes effect only when 'Strategy = AvailabilityGroup.\n"},"onUnableToRedeployFailedInstance":{"type":"string","description":"After the instance in the deployment set is down and migrated, there is no emergency solution for the scattered instance inventory. Value range:\n- `CancelMembershipAndStart`: removes the instance from the deployment set and starts the instance immediately after the instance is down and migrated.\n- `KeepStopped`: The deployment set of the instance is maintained. The instance remains in the stopped state.\n\nDefault value: CancelMembershipAndStart.\n"},"strategy":{"type":"string","description":"Deployment strategy. Value range:\n- `Availability`: High Availability policy.\n- `AvailabilityGroup`: the high availability policy of the deployment set group.\n- `LowLatency`: Network low latency policy.\n\nDefault value: Availability.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering CustomDeploymentSet resources.\n","properties":{"customDeploymentSetName":{"type":"string","description":"The name of the resource\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Deployment set description information. It must be 2 to 256 characters in length and cannot start with http:// or https.\n","willReplaceOnChanges":true},"groupCount":{"type":"integer","description":"Set the number of groups for the deployment set group high availability policy. Value range: 1~7.\n\nDefault value: 3\n\n\u003e **NOTE:**  This parameter takes effect only when 'Strategy = AvailabilityGroup.\n"},"onUnableToRedeployFailedInstance":{"type":"string","description":"After the instance in the deployment set is down and migrated, there is no emergency solution for the scattered instance inventory. Value range:\n- `CancelMembershipAndStart`: removes the instance from the deployment set and starts the instance immediately after the instance is down and migrated.\n- `KeepStopped`: The deployment set of the instance is maintained. The instance remains in the stopped state.\n\nDefault value: CancelMembershipAndStart.\n"},"status":{"type":"string","description":"The status of the resource\n"},"strategy":{"type":"string","description":"Deployment strategy. Value range:\n- `Availability`: High Availability policy.\n- `AvailabilityGroup`: the high availability policy of the deployment set group.\n- `LowLatency`: Network low latency policy.\n\nDefault value: Availability.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rds/customDisk:CustomDisk":{"description":"Provides a RDS Custom Disk resource.\n\nRDS User dedicated host disk.\n\nFor information about RDS Custom Disk and how to use it, see [What is Custom Disk](https://next.api.alibabacloud.com/document/Rds/2014-08-15/CreateRCDisk).\n\n\u003e **NOTE:** Available since v1.247.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst regionId = config.get(\"regionId\") || \"cn-beijing\";\nconst _default = new alicloud.rds.CustomDisk(\"default\", {\n    description: \"zcc测试用例\",\n    zoneId: \"cn-beijing-i\",\n    size: 40,\n    performanceLevel: \"PL1\",\n    instanceChargeType: \"Postpaid\",\n    diskCategory: \"cloud_essd\",\n    diskName: \"custom_disk_001\",\n    autoRenew: false,\n    period: 1,\n    autoPay: true,\n    periodUnit: \"1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-beijing\"\ndefault = alicloud.rds.CustomDisk(\"default\",\n    description=\"zcc测试用例\",\n    zone_id=\"cn-beijing-i\",\n    size=40,\n    performance_level=\"PL1\",\n    instance_charge_type=\"Postpaid\",\n    disk_category=\"cloud_essd\",\n    disk_name=\"custom_disk_001\",\n    auto_renew=False,\n    period=1,\n    auto_pay=True,\n    period_unit=\"1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-beijing\";\n    var @default = new AliCloud.Rds.CustomDisk(\"default\", new()\n    {\n        Description = \"zcc测试用例\",\n        ZoneId = \"cn-beijing-i\",\n        Size = 40,\n        PerformanceLevel = \"PL1\",\n        InstanceChargeType = \"Postpaid\",\n        DiskCategory = \"cloud_essd\",\n        DiskName = \"custom_disk_001\",\n        AutoRenew = false,\n        Period = 1,\n        AutoPay = true,\n        PeriodUnit = \"1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tregionId := \"cn-beijing\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\t_, err := rds.NewCustomDisk(ctx, \"default\", \u0026rds.CustomDiskArgs{\n\t\t\tDescription:        pulumi.String(\"zcc测试用例\"),\n\t\t\tZoneId:             pulumi.String(\"cn-beijing-i\"),\n\t\t\tSize:               pulumi.Int(40),\n\t\t\tPerformanceLevel:   pulumi.String(\"PL1\"),\n\t\t\tInstanceChargeType: pulumi.String(\"Postpaid\"),\n\t\t\tDiskCategory:       pulumi.String(\"cloud_essd\"),\n\t\t\tDiskName:           pulumi.String(\"custom_disk_001\"),\n\t\t\tAutoRenew:          pulumi.Bool(false),\n\t\t\tPeriod:             pulumi.Int(1),\n\t\t\tAutoPay:            pulumi.Bool(true),\n\t\t\tPeriodUnit:         pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.CustomDisk;\nimport com.pulumi.alicloud.rds.CustomDiskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-beijing\");\n        var default_ = new CustomDisk(\"default\", CustomDiskArgs.builder()\n            .description(\"zcc测试用例\")\n            .zoneId(\"cn-beijing-i\")\n            .size(40)\n            .performanceLevel(\"PL1\")\n            .instanceChargeType(\"Postpaid\")\n            .diskCategory(\"cloud_essd\")\n            .diskName(\"custom_disk_001\")\n            .autoRenew(false)\n            .period(1)\n            .autoPay(true)\n            .periodUnit(\"1\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  regionId:\n    type: string\n    default: cn-beijing\nresources:\n  default:\n    type: alicloud:rds:CustomDisk\n    properties:\n      description: zcc测试用例\n      zoneId: cn-beijing-i\n      size: '40'\n      performanceLevel: PL1\n      instanceChargeType: Postpaid\n      diskCategory: cloud_essd\n      diskName: custom_disk_001\n      autoRenew: false\n      period: '1'\n      autoPay: true\n      periodUnit: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS Custom Disk can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/customDisk:CustomDisk example \u003cid\u003e\n```\n\n","properties":{"autoPay":{"type":"boolean","description":"Whether to pay automatically. Value range:\n"},"autoRenew":{"type":"boolean","description":"Whether to automatically renew. This parameter is passed in only when you create a data disk. Valid values:\n"},"createTime":{"type":"string","description":"Creation time.\n"},"description":{"type":"string","description":"The disk description. It must be 2 to 256 characters in length and cannot start with 'http:// 'or 'https.\nDefault value: empty.\n"},"diskCategory":{"type":"string","description":"The type of the data disk. Value range:\n"},"diskName":{"type":"string","description":"The disk name. It can be 2 to 128 characters in length. It supports letters in Unicode (including English, Chinese, and numbers). Can contain a colon (:), an underscore (_), a period (.), or a dash (-).\nDefault value: empty.\n"},"dryRun":{"type":"boolean","description":"Whether to pre-check the instance creation operation. Valid values:\n"},"instanceChargeType":{"type":"string","description":"The Payment type. Only `Postpaid`: Pay-As-You-Go is supported.\n"},"performanceLevel":{"type":"string","description":"When creating an ESSD cloud disk, set the performance level of the disk. Value range:\n- `PL0`: The maximum random read/write IOPS 10000 for a single disk.\n- `PL1` (default): The maximum number of random read/write IOPS 50000 for a single disk.\n- `PL2`: maximum random read/write IOPS 100000 for a single disk.\n- `PL3`: The maximum random read/write IOPS 1 million for a single disk.\n\nFor more information about how to select an ESSD performance level, see ESSD cloud disk.\n"},"period":{"type":"integer","description":"Reserved parameters, no need to fill in.\n"},"periodUnit":{"type":"string","description":"Reserved parameters, no need to fill in.\n"},"regionId":{"type":"string","description":"The region ID. You can view the region ID through the DescribeRegions interface.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the disk belongs.\n"},"size":{"type":"integer","description":"Capacity size. Unit: GiB. You must pass in a parameter value for this parameter. Value range:\n"},"snapshotId":{"type":"string","description":"The snapshot used to create the cloud disk. Snapshots made on or before July 15, 2013 cannot be used to create cloud disks. The 'SnapshotId' parameter and the 'Size' parameter have the following limitations:\n- If the snapshot capacity corresponding to the 'SnapshotId' parameter is greater than the set 'Size' parameter value, the actual size of the cloud disk created is the size of the specified snapshot.\n- If the snapshot capacity corresponding to the 'SnapshotId' parameter is less than the set 'Size' parameter value, the size of the cloud disk created is the specified 'Size' parameter value.\n- Snapshots are not supported for creating elastic temporary disks.\n"},"status":{"type":"string","description":"Disk status. Value Description:_use: In use.\n"},"type":{"type":"string","description":"The method of expanding the disk. Value range:\noffline (default): offline expansion. After the expansion, the instance must be restarted to take effect.\nonline: online expansion, which can be completed without restarting the instance.\n"},"zoneId":{"type":"string","description":"The zone ID.\n"}},"required":["createTime","diskCategory","regionId","resourceGroupId","size","status","zoneId"],"inputProperties":{"autoPay":{"type":"boolean","description":"Whether to pay automatically. Value range:\n"},"autoRenew":{"type":"boolean","description":"Whether to automatically renew. This parameter is passed in only when you create a data disk. Valid values:\n"},"description":{"type":"string","description":"The disk description. It must be 2 to 256 characters in length and cannot start with 'http:// 'or 'https.\nDefault value: empty.\n","willReplaceOnChanges":true},"diskCategory":{"type":"string","description":"The type of the data disk. Value range:\n"},"diskName":{"type":"string","description":"The disk name. It can be 2 to 128 characters in length. It supports letters in Unicode (including English, Chinese, and numbers). Can contain a colon (:), an underscore (_), a period (.), or a dash (-).\nDefault value: empty.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Whether to pre-check the instance creation operation. Valid values:\n"},"instanceChargeType":{"type":"string","description":"The Payment type. Only `Postpaid`: Pay-As-You-Go is supported.\n"},"performanceLevel":{"type":"string","description":"When creating an ESSD cloud disk, set the performance level of the disk. Value range:\n- `PL0`: The maximum random read/write IOPS 10000 for a single disk.\n- `PL1` (default): The maximum number of random read/write IOPS 50000 for a single disk.\n- `PL2`: maximum random read/write IOPS 100000 for a single disk.\n- `PL3`: The maximum random read/write IOPS 1 million for a single disk.\n\nFor more information about how to select an ESSD performance level, see ESSD cloud disk.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Reserved parameters, no need to fill in.\n"},"periodUnit":{"type":"string","description":"Reserved parameters, no need to fill in.\n"},"size":{"type":"integer","description":"Capacity size. Unit: GiB. You must pass in a parameter value for this parameter. Value range:\n"},"snapshotId":{"type":"string","description":"The snapshot used to create the cloud disk. Snapshots made on or before July 15, 2013 cannot be used to create cloud disks. The 'SnapshotId' parameter and the 'Size' parameter have the following limitations:\n- If the snapshot capacity corresponding to the 'SnapshotId' parameter is greater than the set 'Size' parameter value, the actual size of the cloud disk created is the size of the specified snapshot.\n- If the snapshot capacity corresponding to the 'SnapshotId' parameter is less than the set 'Size' parameter value, the size of the cloud disk created is the specified 'Size' parameter value.\n- Snapshots are not supported for creating elastic temporary disks.\n"},"type":{"type":"string","description":"The method of expanding the disk. Value range:\noffline (default): offline expansion. After the expansion, the instance must be restarted to take effect.\nonline: online expansion, which can be completed without restarting the instance.\n"},"zoneId":{"type":"string","description":"The zone ID.\n","willReplaceOnChanges":true}},"requiredInputs":["diskCategory","size","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomDisk resources.\n","properties":{"autoPay":{"type":"boolean","description":"Whether to pay automatically. Value range:\n"},"autoRenew":{"type":"boolean","description":"Whether to automatically renew. This parameter is passed in only when you create a data disk. Valid values:\n"},"createTime":{"type":"string","description":"Creation time.\n"},"description":{"type":"string","description":"The disk description. It must be 2 to 256 characters in length and cannot start with 'http:// 'or 'https.\nDefault value: empty.\n","willReplaceOnChanges":true},"diskCategory":{"type":"string","description":"The type of the data disk. Value range:\n"},"diskName":{"type":"string","description":"The disk name. It can be 2 to 128 characters in length. It supports letters in Unicode (including English, Chinese, and numbers). Can contain a colon (:), an underscore (_), a period (.), or a dash (-).\nDefault value: empty.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Whether to pre-check the instance creation operation. Valid values:\n"},"instanceChargeType":{"type":"string","description":"The Payment type. Only `Postpaid`: Pay-As-You-Go is supported.\n"},"performanceLevel":{"type":"string","description":"When creating an ESSD cloud disk, set the performance level of the disk. Value range:\n- `PL0`: The maximum random read/write IOPS 10000 for a single disk.\n- `PL1` (default): The maximum number of random read/write IOPS 50000 for a single disk.\n- `PL2`: maximum random read/write IOPS 100000 for a single disk.\n- `PL3`: The maximum random read/write IOPS 1 million for a single disk.\n\nFor more information about how to select an ESSD performance level, see ESSD cloud disk.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Reserved parameters, no need to fill in.\n"},"periodUnit":{"type":"string","description":"Reserved parameters, no need to fill in.\n"},"regionId":{"type":"string","description":"The region ID. You can view the region ID through the DescribeRegions interface.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the disk belongs.\n"},"size":{"type":"integer","description":"Capacity size. Unit: GiB. You must pass in a parameter value for this parameter. Value range:\n"},"snapshotId":{"type":"string","description":"The snapshot used to create the cloud disk. Snapshots made on or before July 15, 2013 cannot be used to create cloud disks. The 'SnapshotId' parameter and the 'Size' parameter have the following limitations:\n- If the snapshot capacity corresponding to the 'SnapshotId' parameter is greater than the set 'Size' parameter value, the actual size of the cloud disk created is the size of the specified snapshot.\n- If the snapshot capacity corresponding to the 'SnapshotId' parameter is less than the set 'Size' parameter value, the size of the cloud disk created is the specified 'Size' parameter value.\n- Snapshots are not supported for creating elastic temporary disks.\n"},"status":{"type":"string","description":"Disk status. Value Description:_use: In use.\n"},"type":{"type":"string","description":"The method of expanding the disk. Value range:\noffline (default): offline expansion. After the expansion, the instance must be restarted to take effect.\nonline: online expansion, which can be completed without restarting the instance.\n"},"zoneId":{"type":"string","description":"The zone ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rds/database:Database":{"description":"Provides a RDS Database resource.\n\nSupports creating a database under an instance.\n\nFor information about RDS Database and how to use it, see [What is Database](https://next.api.alibabacloud.com/document/Rds/2014-08-15/CreateDatabase).\n\n\u003e **NOTE:** Available since v1.5.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"HighAvailability\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst defaultGetInstanceClasses = _default.then(_default =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: _default.zones?.[0]?.id,\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    category: \"HighAvailability\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceChargeType: \"PostPaid\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultInstance = new alicloud.rds.Instance(\"default\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceType: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    vswitchId: defaultSwitch.id,\n    instanceName: name,\n    instanceChargeType: \"Postpaid\",\n});\nconst defaultDatabase = new alicloud.rds.Database(\"default\", {\n    instanceId: defaultInstance.id,\n    dataBaseName: name,\n    characterSet: \"utf8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"HighAvailability\",\n    db_instance_storage_type=\"cloud_essd\")\ndefault_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=default.zones[0].id,\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    category=\"HighAvailability\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_charge_type=\"PostPaid\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_instance = alicloud.rds.Instance(\"default\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_type=default_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=default_get_instance_classes.instance_classes[0].storage_range.min,\n    vswitch_id=default_switch.id,\n    instance_name=name,\n    instance_charge_type=\"Postpaid\")\ndefault_database = alicloud.rds.Database(\"default\",\n    instance_id=default_instance.id,\n    data_base_name=name,\n    character_set=\"utf8\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"HighAvailability\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var defaultGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        Category = \"HighAvailability\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultInstance = new AliCloud.Rds.Instance(\"default\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceType = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        VswitchId = defaultSwitch.Id,\n        InstanceName = name,\n        InstanceChargeType = \"Postpaid\",\n    });\n\n    var defaultDatabase = new AliCloud.Rds.Database(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        DataBaseName = name,\n        CharacterSet = \"utf8\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"HighAvailability\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tCategory:              pulumi.StringRef(\"HighAvailability\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rds.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tInstanceType:          pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceStorage:       pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tVswitchId:             defaultSwitch.ID(),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewDatabase(ctx, \"default\", \u0026rds.DatabaseArgs{\n\t\t\tInstanceId:   defaultInstance.ID(),\n\t\t\tDataBaseName: pulumi.String(name),\n\t\t\tCharacterSet: pulumi.String(\"utf8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.Database;\nimport com.pulumi.alicloud.rds.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"HighAvailability\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var defaultGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(default_.zones()[0].id())\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .category(\"HighAvailability\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceType(defaultGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(defaultGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .vswitchId(defaultSwitch.id())\n            .instanceName(name)\n            .instanceChargeType(\"Postpaid\")\n            .build());\n\n        var defaultDatabase = new Database(\"defaultDatabase\", DatabaseArgs.builder()\n            .instanceId(defaultInstance.id())\n            .dataBaseName(name)\n            .characterSet(\"utf8\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultInstance:\n    type: alicloud:rds:Instance\n    name: default\n    properties:\n      engine: MySQL\n      engineVersion: '8.0'\n      dbInstanceStorageType: cloud_essd\n      instanceType: ${defaultGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceStorage: ${defaultGetInstanceClasses.instanceClasses[0].storageRange.min}\n      vswitchId: ${defaultSwitch.id}\n      instanceName: ${name}\n      instanceChargeType: Postpaid\n  defaultDatabase:\n    type: alicloud:rds:Database\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      dataBaseName: ${name}\n      characterSet: utf8\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: PostPaid\n        category: HighAvailability\n        dbInstanceStorageType: cloud_essd\n  defaultGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${default.zones[0].id}\n        engine: MySQL\n        engineVersion: '8.0'\n        category: HighAvailability\n        dbInstanceStorageType: cloud_essd\n        instanceChargeType: PostPaid\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS Database can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/database:Database example \u003cinstance_id\u003e:\u003cdata_base_name\u003e\n```\n\n","properties":{"characterSet":{"type":"string","description":"Character set. The value range is limited to the following:\n- MySQL: [ utf8, gbk, latin1, utf8mb4 ] \\(\u003cspan pulumi-lang-nodejs=\"`utf8mb4`\" pulumi-lang-dotnet=\"`Utf8mb4`\" pulumi-lang-go=\"`utf8mb4`\" pulumi-lang-python=\"`utf8mb4`\" pulumi-lang-yaml=\"`utf8mb4`\" pulumi-lang-java=\"`utf8mb4`\"\u003e`utf8mb4`\u003c/span\u003e only supports versions 5.5 and 5.6\\).\n- SQLServer: [ Chinese_PRC_CI_AS, Chinese_PRC_CS_AS, SQL_Latin1_General_CP1_CI_AS, SQL_Latin1_General_CP1_CS_AS, Chinese_PRC_BIN ]\n- PostgreSQL: Valid values for PostgreSQL databases: a value in the `character set,\u003cCollate\u003e,\u003cCtype\u003e` format. Example: `UTF8,C,en_US.utf8`.\n\u003e - Valid values for the character set : [ KOI8U, UTF8, WIN866, WIN874, WIN1250, WIN1251, WIN1252, WIN1253, WIN1254, WIN1255, WIN1256, WIN1257, WIN1258, EUC_CN, EUC_KR, EUC_TW, EUC_JP, EUC_JIS_2004, KOI8R, MULE_INTERNAL, LATIN1, LATIN2, LATIN3, LATIN4, LATIN5, LATIN6, LATIN7, LATIN8, LATIN9, LATIN10, ISO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8, SQL_ASCII ]\n\u003e - Valid values for the Collate field: You can execute the `SELECT DISTINCT collname FROM pg_collation;` statement to obtain the field value. The default value is `C`.\n\u003e - Valid values for the Ctype field: You can execute the `SELECT DISTINCT collctype FROM pg_collation;` statement to obtain the field value. The default value is `en_US.utf8`.\n- MariaDB: [ utf8, gbk, latin1, utf8mb4 ]\n\nMore details refer to [API Docs](https://www.alibabacloud.com/help/zh/doc-detail/26258.htm)\n"},"dataBaseName":{"type":"string","description":"The name of the database.\n\u003e **NOTE:**\nThe name must be 2 to 64 characters in length.\nThe name must start with a lowercase letter and end with a lowercase letter or digit.\nThe name can contain lowercase letters, digits, underscores (_), and hyphens (-).\nThe name must be unique within the instance.\nFor more information about invalid characters, see [Forbidden keywords table](https://help.aliyun.com/zh/rds/developer-reference/forbidden-keywords?spm=api-workbench.api_explorer.0.0.20e15f16d1z52p).\n"},"description":{"type":"string","description":"Database description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.\n"},"instanceId":{"type":"string","description":"The instance ID. You can call the DescribeDBInstances operation to query the instance ID.\n"},"name":{"type":"string","description":"The attribute has been deprecated from 1.267.0 and using \u003cspan pulumi-lang-nodejs=\"`dataBaseName`\" pulumi-lang-dotnet=\"`DataBaseName`\" pulumi-lang-go=\"`dataBaseName`\" pulumi-lang-python=\"`data_base_name`\" pulumi-lang-yaml=\"`dataBaseName`\" pulumi-lang-java=\"`dataBaseName`\"\u003e`data_base_name`\u003c/span\u003e instead.\n\u003e **NOTE:** The value of \u003cspan pulumi-lang-nodejs=\"\"dataBaseName\"\" pulumi-lang-dotnet=\"\"DataBaseName\"\" pulumi-lang-go=\"\"dataBaseName\"\" pulumi-lang-python=\"\"data_base_name\"\" pulumi-lang-yaml=\"\"dataBaseName\"\" pulumi-lang-java=\"\"dataBaseName\"\"\u003e\"data_base_name\"\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"\"characterSet\"\" pulumi-lang-dotnet=\"\"CharacterSet\"\" pulumi-lang-go=\"\"characterSet\"\" pulumi-lang-python=\"\"character_set\"\" pulumi-lang-yaml=\"\"characterSet\"\" pulumi-lang-java=\"\"characterSet\"\"\u003e\"character_set\"\u003c/span\u003e  does not support modification.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.266.0. New field 'data_base_name' instead."},"status":{"type":"string","description":"The status of the resource\n"}},"required":["dataBaseName","instanceId","name","status"],"inputProperties":{"characterSet":{"type":"string","description":"Character set. The value range is limited to the following:\n- MySQL: [ utf8, gbk, latin1, utf8mb4 ] \\(\u003cspan pulumi-lang-nodejs=\"`utf8mb4`\" pulumi-lang-dotnet=\"`Utf8mb4`\" pulumi-lang-go=\"`utf8mb4`\" pulumi-lang-python=\"`utf8mb4`\" pulumi-lang-yaml=\"`utf8mb4`\" pulumi-lang-java=\"`utf8mb4`\"\u003e`utf8mb4`\u003c/span\u003e only supports versions 5.5 and 5.6\\).\n- SQLServer: [ Chinese_PRC_CI_AS, Chinese_PRC_CS_AS, SQL_Latin1_General_CP1_CI_AS, SQL_Latin1_General_CP1_CS_AS, Chinese_PRC_BIN ]\n- PostgreSQL: Valid values for PostgreSQL databases: a value in the `character set,\u003cCollate\u003e,\u003cCtype\u003e` format. Example: `UTF8,C,en_US.utf8`.\n\u003e - Valid values for the character set : [ KOI8U, UTF8, WIN866, WIN874, WIN1250, WIN1251, WIN1252, WIN1253, WIN1254, WIN1255, WIN1256, WIN1257, WIN1258, EUC_CN, EUC_KR, EUC_TW, EUC_JP, EUC_JIS_2004, KOI8R, MULE_INTERNAL, LATIN1, LATIN2, LATIN3, LATIN4, LATIN5, LATIN6, LATIN7, LATIN8, LATIN9, LATIN10, ISO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8, SQL_ASCII ]\n\u003e - Valid values for the Collate field: You can execute the `SELECT DISTINCT collname FROM pg_collation;` statement to obtain the field value. The default value is `C`.\n\u003e - Valid values for the Ctype field: You can execute the `SELECT DISTINCT collctype FROM pg_collation;` statement to obtain the field value. The default value is `en_US.utf8`.\n- MariaDB: [ utf8, gbk, latin1, utf8mb4 ]\n\nMore details refer to [API Docs](https://www.alibabacloud.com/help/zh/doc-detail/26258.htm)\n","willReplaceOnChanges":true},"dataBaseName":{"type":"string","description":"The name of the database.\n\u003e **NOTE:**\nThe name must be 2 to 64 characters in length.\nThe name must start with a lowercase letter and end with a lowercase letter or digit.\nThe name can contain lowercase letters, digits, underscores (_), and hyphens (-).\nThe name must be unique within the instance.\nFor more information about invalid characters, see [Forbidden keywords table](https://help.aliyun.com/zh/rds/developer-reference/forbidden-keywords?spm=api-workbench.api_explorer.0.0.20e15f16d1z52p).\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Database description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.\n"},"instanceId":{"type":"string","description":"The instance ID. You can call the DescribeDBInstances operation to query the instance ID.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The attribute has been deprecated from 1.267.0 and using \u003cspan pulumi-lang-nodejs=\"`dataBaseName`\" pulumi-lang-dotnet=\"`DataBaseName`\" pulumi-lang-go=\"`dataBaseName`\" pulumi-lang-python=\"`data_base_name`\" pulumi-lang-yaml=\"`dataBaseName`\" pulumi-lang-java=\"`dataBaseName`\"\u003e`data_base_name`\u003c/span\u003e instead.\n\u003e **NOTE:** The value of \u003cspan pulumi-lang-nodejs=\"\"dataBaseName\"\" pulumi-lang-dotnet=\"\"DataBaseName\"\" pulumi-lang-go=\"\"dataBaseName\"\" pulumi-lang-python=\"\"data_base_name\"\" pulumi-lang-yaml=\"\"dataBaseName\"\" pulumi-lang-java=\"\"dataBaseName\"\"\u003e\"data_base_name\"\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"\"characterSet\"\" pulumi-lang-dotnet=\"\"CharacterSet\"\" pulumi-lang-go=\"\"characterSet\"\" pulumi-lang-python=\"\"character_set\"\" pulumi-lang-yaml=\"\"characterSet\"\" pulumi-lang-java=\"\"characterSet\"\"\u003e\"character_set\"\u003c/span\u003e  does not support modification.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.266.0. New field 'data_base_name' instead.","willReplaceOnChanges":true}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Database resources.\n","properties":{"characterSet":{"type":"string","description":"Character set. The value range is limited to the following:\n- MySQL: [ utf8, gbk, latin1, utf8mb4 ] \\(\u003cspan pulumi-lang-nodejs=\"`utf8mb4`\" pulumi-lang-dotnet=\"`Utf8mb4`\" pulumi-lang-go=\"`utf8mb4`\" pulumi-lang-python=\"`utf8mb4`\" pulumi-lang-yaml=\"`utf8mb4`\" pulumi-lang-java=\"`utf8mb4`\"\u003e`utf8mb4`\u003c/span\u003e only supports versions 5.5 and 5.6\\).\n- SQLServer: [ Chinese_PRC_CI_AS, Chinese_PRC_CS_AS, SQL_Latin1_General_CP1_CI_AS, SQL_Latin1_General_CP1_CS_AS, Chinese_PRC_BIN ]\n- PostgreSQL: Valid values for PostgreSQL databases: a value in the `character set,\u003cCollate\u003e,\u003cCtype\u003e` format. Example: `UTF8,C,en_US.utf8`.\n\u003e - Valid values for the character set : [ KOI8U, UTF8, WIN866, WIN874, WIN1250, WIN1251, WIN1252, WIN1253, WIN1254, WIN1255, WIN1256, WIN1257, WIN1258, EUC_CN, EUC_KR, EUC_TW, EUC_JP, EUC_JIS_2004, KOI8R, MULE_INTERNAL, LATIN1, LATIN2, LATIN3, LATIN4, LATIN5, LATIN6, LATIN7, LATIN8, LATIN9, LATIN10, ISO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8, SQL_ASCII ]\n\u003e - Valid values for the Collate field: You can execute the `SELECT DISTINCT collname FROM pg_collation;` statement to obtain the field value. The default value is `C`.\n\u003e - Valid values for the Ctype field: You can execute the `SELECT DISTINCT collctype FROM pg_collation;` statement to obtain the field value. The default value is `en_US.utf8`.\n- MariaDB: [ utf8, gbk, latin1, utf8mb4 ]\n\nMore details refer to [API Docs](https://www.alibabacloud.com/help/zh/doc-detail/26258.htm)\n","willReplaceOnChanges":true},"dataBaseName":{"type":"string","description":"The name of the database.\n\u003e **NOTE:**\nThe name must be 2 to 64 characters in length.\nThe name must start with a lowercase letter and end with a lowercase letter or digit.\nThe name can contain lowercase letters, digits, underscores (_), and hyphens (-).\nThe name must be unique within the instance.\nFor more information about invalid characters, see [Forbidden keywords table](https://help.aliyun.com/zh/rds/developer-reference/forbidden-keywords?spm=api-workbench.api_explorer.0.0.20e15f16d1z52p).\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Database description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.\n"},"instanceId":{"type":"string","description":"The instance ID. You can call the DescribeDBInstances operation to query the instance ID.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The attribute has been deprecated from 1.267.0 and using \u003cspan pulumi-lang-nodejs=\"`dataBaseName`\" pulumi-lang-dotnet=\"`DataBaseName`\" pulumi-lang-go=\"`dataBaseName`\" pulumi-lang-python=\"`data_base_name`\" pulumi-lang-yaml=\"`dataBaseName`\" pulumi-lang-java=\"`dataBaseName`\"\u003e`data_base_name`\u003c/span\u003e instead.\n\u003e **NOTE:** The value of \u003cspan pulumi-lang-nodejs=\"\"dataBaseName\"\" pulumi-lang-dotnet=\"\"DataBaseName\"\" pulumi-lang-go=\"\"dataBaseName\"\" pulumi-lang-python=\"\"data_base_name\"\" pulumi-lang-yaml=\"\"dataBaseName\"\" pulumi-lang-java=\"\"dataBaseName\"\"\u003e\"data_base_name\"\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"\"characterSet\"\" pulumi-lang-dotnet=\"\"CharacterSet\"\" pulumi-lang-go=\"\"characterSet\"\" pulumi-lang-python=\"\"character_set\"\" pulumi-lang-yaml=\"\"characterSet\"\" pulumi-lang-java=\"\"characterSet\"\"\u003e\"character_set\"\u003c/span\u003e  does not support modification.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.266.0. New field 'data_base_name' instead.","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object"}},"alicloud:rds/dbInstanceEndpoint:DbInstanceEndpoint":{"description":"Provide RDS cluster instance endpoint connection resources, see [What is RDS DB Instance Endpoint](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/api-rds-2014-08-15-createdbinstanceendpoint).\n\n\u003e **NOTE:** Available since v1.203.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"cluster\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst defaultGetInstanceClasses = _default.then(_default =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: _default.ids?.[0],\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    category: \"cluster\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceChargeType: \"PostPaid\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n    vswitchName: name,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.rds.Instance(\"default\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceType: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    instanceChargeType: \"Postpaid\",\n    instanceName: name,\n    vswitchId: defaultSwitch.id,\n    monitoringPeriod: 60,\n    dbInstanceStorageType: \"cloud_essd\",\n    securityGroupIds: [defaultSecurityGroup.id],\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n    zoneIdSlaveA: _default.then(_default =\u003e _default.ids?.[0]),\n});\nconst defaultDbNode = new alicloud.rds.DbNode(\"default\", {\n    dbInstanceId: defaultInstance.id,\n    classCode: defaultInstance.instanceType,\n    zoneId: defaultSwitch.zoneId,\n});\nconst defaultDbInstanceEndpoint = new alicloud.rds.DbInstanceEndpoint(\"default\", {\n    dbInstanceId: defaultDbNode.dbInstanceId,\n    vpcId: defaultNetwork.id,\n    vswitchId: defaultInstance.vswitchId,\n    connectionStringPrefix: \"example\",\n    port: \"3306\",\n    dbInstanceEndpointDescription: name,\n    nodeItems: [{\n        nodeId: defaultDbNode.nodeId,\n        weight: 25,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"cluster\",\n    db_instance_storage_type=\"cloud_essd\")\ndefault_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=default.ids[0],\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    category=\"cluster\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_charge_type=\"PostPaid\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.ids[0],\n    vswitch_name=name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.rds.Instance(\"default\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_type=default_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=default_get_instance_classes.instance_classes[0].storage_range.min,\n    instance_charge_type=\"Postpaid\",\n    instance_name=name,\n    vswitch_id=default_switch.id,\n    monitoring_period=60,\n    db_instance_storage_type=\"cloud_essd\",\n    security_group_ids=[default_security_group.id],\n    zone_id=default.ids[0],\n    zone_id_slave_a=default.ids[0])\ndefault_db_node = alicloud.rds.DbNode(\"default\",\n    db_instance_id=default_instance.id,\n    class_code=default_instance.instance_type,\n    zone_id=default_switch.zone_id)\ndefault_db_instance_endpoint = alicloud.rds.DbInstanceEndpoint(\"default\",\n    db_instance_id=default_db_node.db_instance_id,\n    vpc_id=default_network.id,\n    vswitch_id=default_instance.vswitch_id,\n    connection_string_prefix=\"example\",\n    port=\"3306\",\n    db_instance_endpoint_description=name,\n    node_items=[{\n        \"node_id\": default_db_node.node_id,\n        \"weight\": 25,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"cluster\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var defaultGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        Category = \"cluster\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n        VswitchName = name,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Rds.Instance(\"default\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceType = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = name,\n        VswitchId = defaultSwitch.Id,\n        MonitoringPeriod = 60,\n        DbInstanceStorageType = \"cloud_essd\",\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n        ZoneIdSlaveA = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n    });\n\n    var defaultDbNode = new AliCloud.Rds.DbNode(\"default\", new()\n    {\n        DbInstanceId = defaultInstance.Id,\n        ClassCode = defaultInstance.InstanceType,\n        ZoneId = defaultSwitch.ZoneId,\n    });\n\n    var defaultDbInstanceEndpoint = new AliCloud.Rds.DbInstanceEndpoint(\"default\", new()\n    {\n        DbInstanceId = defaultDbNode.DbInstanceId,\n        VpcId = defaultNetwork.Id,\n        VswitchId = defaultInstance.VswitchId,\n        ConnectionStringPrefix = \"example\",\n        Port = \"3306\",\n        DbInstanceEndpointDescription = name,\n        NodeItems = new[]\n        {\n            new AliCloud.Rds.Inputs.DbInstanceEndpointNodeItemArgs\n            {\n                NodeId = defaultDbNode.NodeId,\n                Weight = 25,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"cluster\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(_default.Ids[0]),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tCategory:              pulumi.StringRef(\"cluster\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Ids[0]),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rds.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\tInstanceType:          pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceStorage:       pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t\tVswitchId:             defaultSwitch.ID(),\n\t\t\tMonitoringPeriod:      pulumi.Int(60),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tZoneId:       pulumi.String(_default.Ids[0]),\n\t\t\tZoneIdSlaveA: pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDbNode, err := rds.NewDbNode(ctx, \"default\", \u0026rds.DbNodeArgs{\n\t\t\tDbInstanceId: defaultInstance.ID(),\n\t\t\tClassCode:    defaultInstance.InstanceType,\n\t\t\tZoneId:       defaultSwitch.ZoneId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewDbInstanceEndpoint(ctx, \"default\", \u0026rds.DbInstanceEndpointArgs{\n\t\t\tDbInstanceId:                  defaultDbNode.DbInstanceId,\n\t\t\tVpcId:                         defaultNetwork.ID(),\n\t\t\tVswitchId:                     defaultInstance.VswitchId,\n\t\t\tConnectionStringPrefix:        pulumi.String(\"example\"),\n\t\t\tPort:                          pulumi.String(\"3306\"),\n\t\t\tDbInstanceEndpointDescription: pulumi.String(name),\n\t\t\tNodeItems: rds.DbInstanceEndpointNodeItemArray{\n\t\t\t\t\u0026rds.DbInstanceEndpointNodeItemArgs{\n\t\t\t\t\tNodeId: defaultDbNode.NodeId,\n\t\t\t\t\tWeight: pulumi.Int(25),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.DbNode;\nimport com.pulumi.alicloud.rds.DbNodeArgs;\nimport com.pulumi.alicloud.rds.DbInstanceEndpoint;\nimport com.pulumi.alicloud.rds.DbInstanceEndpointArgs;\nimport com.pulumi.alicloud.rds.inputs.DbInstanceEndpointNodeItemArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"cluster\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var defaultGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(default_.ids()[0])\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .category(\"cluster\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.ids()[0])\n            .vswitchName(name)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceType(defaultGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(defaultGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(name)\n            .vswitchId(defaultSwitch.id())\n            .monitoringPeriod(60)\n            .dbInstanceStorageType(\"cloud_essd\")\n            .securityGroupIds(defaultSecurityGroup.id())\n            .zoneId(default_.ids()[0])\n            .zoneIdSlaveA(default_.ids()[0])\n            .build());\n\n        var defaultDbNode = new DbNode(\"defaultDbNode\", DbNodeArgs.builder()\n            .dbInstanceId(defaultInstance.id())\n            .classCode(defaultInstance.instanceType())\n            .zoneId(defaultSwitch.zoneId())\n            .build());\n\n        var defaultDbInstanceEndpoint = new DbInstanceEndpoint(\"defaultDbInstanceEndpoint\", DbInstanceEndpointArgs.builder()\n            .dbInstanceId(defaultDbNode.dbInstanceId())\n            .vpcId(defaultNetwork.id())\n            .vswitchId(defaultInstance.vswitchId())\n            .connectionStringPrefix(\"example\")\n            .port(\"3306\")\n            .dbInstanceEndpointDescription(name)\n            .nodeItems(DbInstanceEndpointNodeItemArgs.builder()\n                .nodeId(defaultDbNode.nodeId())\n                .weight(25)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.ids[0]}\n      vswitchName: ${name}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:rds:Instance\n    name: default\n    properties:\n      engine: MySQL\n      engineVersion: '8.0'\n      instanceType: ${defaultGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceStorage: ${defaultGetInstanceClasses.instanceClasses[0].storageRange.min}\n      instanceChargeType: Postpaid\n      instanceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      monitoringPeriod: '60'\n      dbInstanceStorageType: cloud_essd\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n      zoneId: ${default.ids[0]}\n      zoneIdSlaveA: ${default.ids[0]}\n  defaultDbNode:\n    type: alicloud:rds:DbNode\n    name: default\n    properties:\n      dbInstanceId: ${defaultInstance.id}\n      classCode: ${defaultInstance.instanceType}\n      zoneId: ${defaultSwitch.zoneId}\n  defaultDbInstanceEndpoint:\n    type: alicloud:rds:DbInstanceEndpoint\n    name: default\n    properties:\n      dbInstanceId: ${defaultDbNode.dbInstanceId}\n      vpcId: ${defaultNetwork.id}\n      vswitchId: ${defaultInstance.vswitchId}\n      connectionStringPrefix: example\n      port: '3306'\n      dbInstanceEndpointDescription: ${name}\n      nodeItems:\n        - nodeId: ${defaultDbNode.nodeId}\n          weight: 25\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: PostPaid\n        category: cluster\n        dbInstanceStorageType: cloud_essd\n  defaultGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${default.ids[0]}\n        engine: MySQL\n        engineVersion: '8.0'\n        category: cluster\n        dbInstanceStorageType: cloud_essd\n        instanceChargeType: PostPaid\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS database endpoint feature can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/dbInstanceEndpoint:DbInstanceEndpoint example \u003cdb_instance_id\u003e:\u003cdb_instance_endpoint_id\u003e\n```\n\n","properties":{"connectionString":{"type":"string","description":"The internal endpoint.\n"},"connectionStringPrefix":{"type":"string","description":"The IP address of the internal endpoint.\n"},"dbInstanceEndpointDescription":{"type":"string","description":"The user-defined description of the endpoint.\n"},"dbInstanceEndpointId":{"type":"string","description":"The Endpoint ID of the instance.\n"},"dbInstanceEndpointType":{"type":"string","description":"The type of the endpoint.\n"},"dbInstanceId":{"type":"string","description":"The ID of the instance.\n"},"ipType":{"type":"string","description":"The type of the IP address.\n"},"nodeItems":{"type":"array","items":{"$ref":"#/types/alicloud:rds/DbInstanceEndpointNodeItem:DbInstanceEndpointNodeItem"},"description":"The information about the node that is configured for the endpoint.  It contains two sub-fields(node_id and weight). See \u003cspan pulumi-lang-nodejs=\"`nodeItems`\" pulumi-lang-dotnet=\"`NodeItems`\" pulumi-lang-go=\"`nodeItems`\" pulumi-lang-python=\"`node_items`\" pulumi-lang-yaml=\"`nodeItems`\" pulumi-lang-java=\"`nodeItems`\"\u003e`node_items`\u003c/span\u003e below.\n"},"port":{"type":"string","description":"The port number of the internal endpoint. You can specify the port number for the internal endpoint.Valid values: 3000 to 5999.\n"},"privateIpAddress":{"type":"string","description":"The IP address of the internal endpoint.\n"},"vpcId":{"type":"string","description":"The virtual private cloud (VPC) ID of the internal endpoint.\n"},"vswitchId":{"type":"string","description":"The vSwitch ID of the internal endpoint.\n"}},"required":["connectionString","connectionStringPrefix","dbInstanceEndpointDescription","dbInstanceEndpointId","dbInstanceEndpointType","dbInstanceId","ipType","nodeItems","port","privateIpAddress","vpcId","vswitchId"],"inputProperties":{"connectionStringPrefix":{"type":"string","description":"The IP address of the internal endpoint.\n"},"dbInstanceEndpointDescription":{"type":"string","description":"The user-defined description of the endpoint.\n"},"dbInstanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"nodeItems":{"type":"array","items":{"$ref":"#/types/alicloud:rds/DbInstanceEndpointNodeItem:DbInstanceEndpointNodeItem"},"description":"The information about the node that is configured for the endpoint.  It contains two sub-fields(node_id and weight). See \u003cspan pulumi-lang-nodejs=\"`nodeItems`\" pulumi-lang-dotnet=\"`NodeItems`\" pulumi-lang-go=\"`nodeItems`\" pulumi-lang-python=\"`node_items`\" pulumi-lang-yaml=\"`nodeItems`\" pulumi-lang-java=\"`nodeItems`\"\u003e`node_items`\u003c/span\u003e below.\n"},"port":{"type":"string","description":"The port number of the internal endpoint. You can specify the port number for the internal endpoint.Valid values: 3000 to 5999.\n"},"vpcId":{"type":"string","description":"The virtual private cloud (VPC) ID of the internal endpoint.\n"},"vswitchId":{"type":"string","description":"The vSwitch ID of the internal endpoint.\n"}},"requiredInputs":["connectionStringPrefix","dbInstanceId","nodeItems","port","vpcId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering DbInstanceEndpoint resources.\n","properties":{"connectionString":{"type":"string","description":"The internal endpoint.\n"},"connectionStringPrefix":{"type":"string","description":"The IP address of the internal endpoint.\n"},"dbInstanceEndpointDescription":{"type":"string","description":"The user-defined description of the endpoint.\n"},"dbInstanceEndpointId":{"type":"string","description":"The Endpoint ID of the instance.\n"},"dbInstanceEndpointType":{"type":"string","description":"The type of the endpoint.\n"},"dbInstanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"ipType":{"type":"string","description":"The type of the IP address.\n"},"nodeItems":{"type":"array","items":{"$ref":"#/types/alicloud:rds/DbInstanceEndpointNodeItem:DbInstanceEndpointNodeItem"},"description":"The information about the node that is configured for the endpoint.  It contains two sub-fields(node_id and weight). See \u003cspan pulumi-lang-nodejs=\"`nodeItems`\" pulumi-lang-dotnet=\"`NodeItems`\" pulumi-lang-go=\"`nodeItems`\" pulumi-lang-python=\"`node_items`\" pulumi-lang-yaml=\"`nodeItems`\" pulumi-lang-java=\"`nodeItems`\"\u003e`node_items`\u003c/span\u003e below.\n"},"port":{"type":"string","description":"The port number of the internal endpoint. You can specify the port number for the internal endpoint.Valid values: 3000 to 5999.\n"},"privateIpAddress":{"type":"string","description":"The IP address of the internal endpoint.\n"},"vpcId":{"type":"string","description":"The virtual private cloud (VPC) ID of the internal endpoint.\n"},"vswitchId":{"type":"string","description":"The vSwitch ID of the internal endpoint.\n"}},"type":"object"}},"alicloud:rds/dbInstanceEndpointAddress:DbInstanceEndpointAddress":{"description":"Provide RDS cluster instance endpoint public connection resources.\n\nInformation about RDS MySQL cluster endpoint address and how to use it, see [What is RDS DB Instance Endpoint Address](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/api-rds-2014-08-15-createdbinstanceendpointaddress).\n\n\u003e **NOTE:** Available since v1.204.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"cluster\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst defaultGetInstanceClasses = _default.then(_default =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: _default.ids?.[0],\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    category: \"cluster\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceChargeType: \"PostPaid\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n    vswitchName: name,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.rds.Instance(\"default\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceType: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    instanceChargeType: \"Postpaid\",\n    instanceName: name,\n    vswitchId: defaultSwitch.id,\n    monitoringPeriod: 60,\n    dbInstanceStorageType: \"cloud_essd\",\n    securityGroupIds: [defaultSecurityGroup.id],\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n    zoneIdSlaveA: _default.then(_default =\u003e _default.ids?.[0]),\n});\nconst defaultDbNode = new alicloud.rds.DbNode(\"default\", {\n    dbInstanceId: defaultInstance.id,\n    classCode: defaultInstance.instanceType,\n    zoneId: defaultSwitch.zoneId,\n});\nconst defaultDbInstanceEndpoint = new alicloud.rds.DbInstanceEndpoint(\"default\", {\n    dbInstanceId: defaultDbNode.dbInstanceId,\n    vpcId: defaultNetwork.id,\n    vswitchId: defaultInstance.vswitchId,\n    connectionStringPrefix: \"example\",\n    port: \"3306\",\n    dbInstanceEndpointDescription: name,\n    nodeItems: [{\n        nodeId: defaultDbNode.nodeId,\n        weight: 25,\n    }],\n});\nconst defaultDbInstanceEndpointAddress = new alicloud.rds.DbInstanceEndpointAddress(\"default\", {\n    dbInstanceId: defaultInstance.id,\n    dbInstanceEndpointId: defaultDbInstanceEndpoint.dbInstanceEndpointId,\n    connectionStringPrefix: \"tf-example-prefix\",\n    port: \"3306\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"cluster\",\n    db_instance_storage_type=\"cloud_essd\")\ndefault_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=default.ids[0],\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    category=\"cluster\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_charge_type=\"PostPaid\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.ids[0],\n    vswitch_name=name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.rds.Instance(\"default\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_type=default_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=default_get_instance_classes.instance_classes[0].storage_range.min,\n    instance_charge_type=\"Postpaid\",\n    instance_name=name,\n    vswitch_id=default_switch.id,\n    monitoring_period=60,\n    db_instance_storage_type=\"cloud_essd\",\n    security_group_ids=[default_security_group.id],\n    zone_id=default.ids[0],\n    zone_id_slave_a=default.ids[0])\ndefault_db_node = alicloud.rds.DbNode(\"default\",\n    db_instance_id=default_instance.id,\n    class_code=default_instance.instance_type,\n    zone_id=default_switch.zone_id)\ndefault_db_instance_endpoint = alicloud.rds.DbInstanceEndpoint(\"default\",\n    db_instance_id=default_db_node.db_instance_id,\n    vpc_id=default_network.id,\n    vswitch_id=default_instance.vswitch_id,\n    connection_string_prefix=\"example\",\n    port=\"3306\",\n    db_instance_endpoint_description=name,\n    node_items=[{\n        \"node_id\": default_db_node.node_id,\n        \"weight\": 25,\n    }])\ndefault_db_instance_endpoint_address = alicloud.rds.DbInstanceEndpointAddress(\"default\",\n    db_instance_id=default_instance.id,\n    db_instance_endpoint_id=default_db_instance_endpoint.db_instance_endpoint_id,\n    connection_string_prefix=\"tf-example-prefix\",\n    port=\"3306\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"cluster\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var defaultGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        Category = \"cluster\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n        VswitchName = name,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Rds.Instance(\"default\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceType = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = name,\n        VswitchId = defaultSwitch.Id,\n        MonitoringPeriod = 60,\n        DbInstanceStorageType = \"cloud_essd\",\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n        ZoneIdSlaveA = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n    });\n\n    var defaultDbNode = new AliCloud.Rds.DbNode(\"default\", new()\n    {\n        DbInstanceId = defaultInstance.Id,\n        ClassCode = defaultInstance.InstanceType,\n        ZoneId = defaultSwitch.ZoneId,\n    });\n\n    var defaultDbInstanceEndpoint = new AliCloud.Rds.DbInstanceEndpoint(\"default\", new()\n    {\n        DbInstanceId = defaultDbNode.DbInstanceId,\n        VpcId = defaultNetwork.Id,\n        VswitchId = defaultInstance.VswitchId,\n        ConnectionStringPrefix = \"example\",\n        Port = \"3306\",\n        DbInstanceEndpointDescription = name,\n        NodeItems = new[]\n        {\n            new AliCloud.Rds.Inputs.DbInstanceEndpointNodeItemArgs\n            {\n                NodeId = defaultDbNode.NodeId,\n                Weight = 25,\n            },\n        },\n    });\n\n    var defaultDbInstanceEndpointAddress = new AliCloud.Rds.DbInstanceEndpointAddress(\"default\", new()\n    {\n        DbInstanceId = defaultInstance.Id,\n        DbInstanceEndpointId = defaultDbInstanceEndpoint.DbInstanceEndpointId,\n        ConnectionStringPrefix = \"tf-example-prefix\",\n        Port = \"3306\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"cluster\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(_default.Ids[0]),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tCategory:              pulumi.StringRef(\"cluster\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Ids[0]),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rds.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\tInstanceType:          pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceStorage:       pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t\tVswitchId:             defaultSwitch.ID(),\n\t\t\tMonitoringPeriod:      pulumi.Int(60),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tZoneId:       pulumi.String(_default.Ids[0]),\n\t\t\tZoneIdSlaveA: pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDbNode, err := rds.NewDbNode(ctx, \"default\", \u0026rds.DbNodeArgs{\n\t\t\tDbInstanceId: defaultInstance.ID(),\n\t\t\tClassCode:    defaultInstance.InstanceType,\n\t\t\tZoneId:       defaultSwitch.ZoneId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDbInstanceEndpoint, err := rds.NewDbInstanceEndpoint(ctx, \"default\", \u0026rds.DbInstanceEndpointArgs{\n\t\t\tDbInstanceId:                  defaultDbNode.DbInstanceId,\n\t\t\tVpcId:                         defaultNetwork.ID(),\n\t\t\tVswitchId:                     defaultInstance.VswitchId,\n\t\t\tConnectionStringPrefix:        pulumi.String(\"example\"),\n\t\t\tPort:                          pulumi.String(\"3306\"),\n\t\t\tDbInstanceEndpointDescription: pulumi.String(name),\n\t\t\tNodeItems: rds.DbInstanceEndpointNodeItemArray{\n\t\t\t\t\u0026rds.DbInstanceEndpointNodeItemArgs{\n\t\t\t\t\tNodeId: defaultDbNode.NodeId,\n\t\t\t\t\tWeight: pulumi.Int(25),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewDbInstanceEndpointAddress(ctx, \"default\", \u0026rds.DbInstanceEndpointAddressArgs{\n\t\t\tDbInstanceId:           defaultInstance.ID(),\n\t\t\tDbInstanceEndpointId:   defaultDbInstanceEndpoint.DbInstanceEndpointId,\n\t\t\tConnectionStringPrefix: pulumi.String(\"tf-example-prefix\"),\n\t\t\tPort:                   pulumi.String(\"3306\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.DbNode;\nimport com.pulumi.alicloud.rds.DbNodeArgs;\nimport com.pulumi.alicloud.rds.DbInstanceEndpoint;\nimport com.pulumi.alicloud.rds.DbInstanceEndpointArgs;\nimport com.pulumi.alicloud.rds.inputs.DbInstanceEndpointNodeItemArgs;\nimport com.pulumi.alicloud.rds.DbInstanceEndpointAddress;\nimport com.pulumi.alicloud.rds.DbInstanceEndpointAddressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"cluster\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var defaultGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(default_.ids()[0])\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .category(\"cluster\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.ids()[0])\n            .vswitchName(name)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceType(defaultGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(defaultGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(name)\n            .vswitchId(defaultSwitch.id())\n            .monitoringPeriod(60)\n            .dbInstanceStorageType(\"cloud_essd\")\n            .securityGroupIds(defaultSecurityGroup.id())\n            .zoneId(default_.ids()[0])\n            .zoneIdSlaveA(default_.ids()[0])\n            .build());\n\n        var defaultDbNode = new DbNode(\"defaultDbNode\", DbNodeArgs.builder()\n            .dbInstanceId(defaultInstance.id())\n            .classCode(defaultInstance.instanceType())\n            .zoneId(defaultSwitch.zoneId())\n            .build());\n\n        var defaultDbInstanceEndpoint = new DbInstanceEndpoint(\"defaultDbInstanceEndpoint\", DbInstanceEndpointArgs.builder()\n            .dbInstanceId(defaultDbNode.dbInstanceId())\n            .vpcId(defaultNetwork.id())\n            .vswitchId(defaultInstance.vswitchId())\n            .connectionStringPrefix(\"example\")\n            .port(\"3306\")\n            .dbInstanceEndpointDescription(name)\n            .nodeItems(DbInstanceEndpointNodeItemArgs.builder()\n                .nodeId(defaultDbNode.nodeId())\n                .weight(25)\n                .build())\n            .build());\n\n        var defaultDbInstanceEndpointAddress = new DbInstanceEndpointAddress(\"defaultDbInstanceEndpointAddress\", DbInstanceEndpointAddressArgs.builder()\n            .dbInstanceId(defaultInstance.id())\n            .dbInstanceEndpointId(defaultDbInstanceEndpoint.dbInstanceEndpointId())\n            .connectionStringPrefix(\"tf-example-prefix\")\n            .port(\"3306\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.ids[0]}\n      vswitchName: ${name}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:rds:Instance\n    name: default\n    properties:\n      engine: MySQL\n      engineVersion: '8.0'\n      instanceType: ${defaultGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceStorage: ${defaultGetInstanceClasses.instanceClasses[0].storageRange.min}\n      instanceChargeType: Postpaid\n      instanceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      monitoringPeriod: '60'\n      dbInstanceStorageType: cloud_essd\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n      zoneId: ${default.ids[0]}\n      zoneIdSlaveA: ${default.ids[0]}\n  defaultDbNode:\n    type: alicloud:rds:DbNode\n    name: default\n    properties:\n      dbInstanceId: ${defaultInstance.id}\n      classCode: ${defaultInstance.instanceType}\n      zoneId: ${defaultSwitch.zoneId}\n  defaultDbInstanceEndpoint:\n    type: alicloud:rds:DbInstanceEndpoint\n    name: default\n    properties:\n      dbInstanceId: ${defaultDbNode.dbInstanceId}\n      vpcId: ${defaultNetwork.id}\n      vswitchId: ${defaultInstance.vswitchId}\n      connectionStringPrefix: example\n      port: '3306'\n      dbInstanceEndpointDescription: ${name}\n      nodeItems:\n        - nodeId: ${defaultDbNode.nodeId}\n          weight: 25\n  defaultDbInstanceEndpointAddress:\n    type: alicloud:rds:DbInstanceEndpointAddress\n    name: default\n    properties:\n      dbInstanceId: ${defaultInstance.id}\n      dbInstanceEndpointId: ${defaultDbInstanceEndpoint.dbInstanceEndpointId}\n      connectionStringPrefix: tf-example-prefix\n      port: '3306'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: PostPaid\n        category: cluster\n        dbInstanceStorageType: cloud_essd\n  defaultGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${default.ids[0]}\n        engine: MySQL\n        engineVersion: '8.0'\n        category: cluster\n        dbInstanceStorageType: cloud_essd\n        instanceChargeType: PostPaid\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS database endpoint public address feature can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/dbInstanceEndpointAddress:DbInstanceEndpointAddress example \u003cdb_instance_id\u003e:\u003cdb_instance_endpoint_id\u003e\n```\n\n","properties":{"connectionString":{"type":"string","description":"The endpoint of the instance.\n"},"connectionStringPrefix":{"type":"string","description":"The prefix of the public endpoint.\n"},"dbInstanceEndpointId":{"type":"string","description":"The Endpoint ID of the instance.\n"},"dbInstanceId":{"type":"string","description":"The ID of the instance.\n"},"ipAddress":{"type":"string","description":"The IP address of the endpoint.\n"},"ipType":{"type":"string","description":"The type of the IP address.\n"},"port":{"type":"string","description":"The port number of the public endpoint.\n"}},"required":["connectionString","connectionStringPrefix","dbInstanceEndpointId","dbInstanceId","ipAddress","ipType","port"],"inputProperties":{"connectionStringPrefix":{"type":"string","description":"The prefix of the public endpoint.\n"},"dbInstanceEndpointId":{"type":"string","description":"The Endpoint ID of the instance.\n","willReplaceOnChanges":true},"dbInstanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"port":{"type":"string","description":"The port number of the public endpoint.\n"}},"requiredInputs":["connectionStringPrefix","dbInstanceEndpointId","dbInstanceId","port"],"stateInputs":{"description":"Input properties used for looking up and filtering DbInstanceEndpointAddress resources.\n","properties":{"connectionString":{"type":"string","description":"The endpoint of the instance.\n"},"connectionStringPrefix":{"type":"string","description":"The prefix of the public endpoint.\n"},"dbInstanceEndpointId":{"type":"string","description":"The Endpoint ID of the instance.\n","willReplaceOnChanges":true},"dbInstanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"ipAddress":{"type":"string","description":"The IP address of the endpoint.\n"},"ipType":{"type":"string","description":"The type of the IP address.\n"},"port":{"type":"string","description":"The port number of the public endpoint.\n"}},"type":"object"}},"alicloud:rds/dbNode:DbNode":{"description":"Provide RDS cluster instance to increase node resources, see [What is RDS DB Node](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/api-rds-2014-08-15-createdbnodes).\n\n\u003e **NOTE:** Available since v1.202.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"cluster\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst defaultGetInstanceClasses = _default.then(_default =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: _default.ids?.[0],\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    category: \"cluster\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceChargeType: \"PostPaid\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n    vswitchName: name,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.rds.Instance(\"default\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceType: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    instanceChargeType: \"Postpaid\",\n    instanceName: name,\n    vswitchId: defaultSwitch.id,\n    monitoringPeriod: 60,\n    dbInstanceStorageType: \"cloud_essd\",\n    securityGroupIds: [defaultSecurityGroup.id],\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n    zoneIdSlaveA: _default.then(_default =\u003e _default.ids?.[0]),\n});\nconst defaultDbNode = new alicloud.rds.DbNode(\"default\", {\n    dbInstanceId: defaultInstance.id,\n    classCode: defaultInstance.instanceType,\n    zoneId: defaultSwitch.zoneId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"cluster\",\n    db_instance_storage_type=\"cloud_essd\")\ndefault_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=default.ids[0],\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    category=\"cluster\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_charge_type=\"PostPaid\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.ids[0],\n    vswitch_name=name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.rds.Instance(\"default\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_type=default_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=default_get_instance_classes.instance_classes[0].storage_range.min,\n    instance_charge_type=\"Postpaid\",\n    instance_name=name,\n    vswitch_id=default_switch.id,\n    monitoring_period=60,\n    db_instance_storage_type=\"cloud_essd\",\n    security_group_ids=[default_security_group.id],\n    zone_id=default.ids[0],\n    zone_id_slave_a=default.ids[0])\ndefault_db_node = alicloud.rds.DbNode(\"default\",\n    db_instance_id=default_instance.id,\n    class_code=default_instance.instance_type,\n    zone_id=default_switch.zone_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"cluster\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var defaultGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        Category = \"cluster\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n        VswitchName = name,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Rds.Instance(\"default\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceType = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = name,\n        VswitchId = defaultSwitch.Id,\n        MonitoringPeriod = 60,\n        DbInstanceStorageType = \"cloud_essd\",\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n        ZoneIdSlaveA = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n    });\n\n    var defaultDbNode = new AliCloud.Rds.DbNode(\"default\", new()\n    {\n        DbInstanceId = defaultInstance.Id,\n        ClassCode = defaultInstance.InstanceType,\n        ZoneId = defaultSwitch.ZoneId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"cluster\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(_default.Ids[0]),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tCategory:              pulumi.StringRef(\"cluster\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Ids[0]),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rds.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\tInstanceType:          pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceStorage:       pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t\tVswitchId:             defaultSwitch.ID(),\n\t\t\tMonitoringPeriod:      pulumi.Int(60),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tZoneId:       pulumi.String(_default.Ids[0]),\n\t\t\tZoneIdSlaveA: pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewDbNode(ctx, \"default\", \u0026rds.DbNodeArgs{\n\t\t\tDbInstanceId: defaultInstance.ID(),\n\t\t\tClassCode:    defaultInstance.InstanceType,\n\t\t\tZoneId:       defaultSwitch.ZoneId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.DbNode;\nimport com.pulumi.alicloud.rds.DbNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"cluster\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var defaultGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(default_.ids()[0])\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .category(\"cluster\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.ids()[0])\n            .vswitchName(name)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceType(defaultGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(defaultGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(name)\n            .vswitchId(defaultSwitch.id())\n            .monitoringPeriod(60)\n            .dbInstanceStorageType(\"cloud_essd\")\n            .securityGroupIds(defaultSecurityGroup.id())\n            .zoneId(default_.ids()[0])\n            .zoneIdSlaveA(default_.ids()[0])\n            .build());\n\n        var defaultDbNode = new DbNode(\"defaultDbNode\", DbNodeArgs.builder()\n            .dbInstanceId(defaultInstance.id())\n            .classCode(defaultInstance.instanceType())\n            .zoneId(defaultSwitch.zoneId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.ids[0]}\n      vswitchName: ${name}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:rds:Instance\n    name: default\n    properties:\n      engine: MySQL\n      engineVersion: '8.0'\n      instanceType: ${defaultGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceStorage: ${defaultGetInstanceClasses.instanceClasses[0].storageRange.min}\n      instanceChargeType: Postpaid\n      instanceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      monitoringPeriod: '60'\n      dbInstanceStorageType: cloud_essd\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n      zoneId: ${default.ids[0]}\n      zoneIdSlaveA: ${default.ids[0]}\n  defaultDbNode:\n    type: alicloud:rds:DbNode\n    name: default\n    properties:\n      dbInstanceId: ${defaultInstance.id}\n      classCode: ${defaultInstance.instanceType}\n      zoneId: ${defaultSwitch.zoneId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: PostPaid\n        category: cluster\n        dbInstanceStorageType: cloud_essd\n  defaultGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${default.ids[0]}\n        engine: MySQL\n        engineVersion: '8.0'\n        category: cluster\n        dbInstanceStorageType: cloud_essd\n        instanceChargeType: PostPaid\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS MySQL database cluster node agent function can be imported using id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/dbNode:DbNode example \u003cdb_instance_id\u003e:\u003cnode_id\u003e\n```\n\n","properties":{"classCode":{"type":"string","description":"The specification information of the node.\n"},"dbInstanceId":{"type":"string","description":"The Id of instance that can run database.\n"},"nodeId":{"type":"string","description":"The ID of the node.\n"},"nodeRegionId":{"type":"string","description":"The region ID of the node.\n"},"nodeRole":{"type":"string","description":"The role of node.\n"},"zoneId":{"type":"string","description":"The zone ID of the node.\n"}},"required":["classCode","dbInstanceId","nodeId","nodeRegionId","nodeRole","zoneId"],"inputProperties":{"classCode":{"type":"string","description":"The specification information of the node.\n","willReplaceOnChanges":true},"dbInstanceId":{"type":"string","description":"The Id of instance that can run database.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the node.\n","willReplaceOnChanges":true}},"requiredInputs":["classCode","dbInstanceId","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering DbNode resources.\n","properties":{"classCode":{"type":"string","description":"The specification information of the node.\n","willReplaceOnChanges":true},"dbInstanceId":{"type":"string","description":"The Id of instance that can run database.\n","willReplaceOnChanges":true},"nodeId":{"type":"string","description":"The ID of the node.\n"},"nodeRegionId":{"type":"string","description":"The region ID of the node.\n"},"nodeRole":{"type":"string","description":"The role of node.\n"},"zoneId":{"type":"string","description":"The zone ID of the node.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rds/dbProxyPublic:DbProxyPublic":{"description":"Provides a RDS database proxy public network address resource.\n\n\n\nFor information about Resource AlicloudRdsDBProxyPublic and how to use it, see [What is proxy](https://www.alibabacloud.com/help/en/rds/developer-reference/api-rds-2014-08-15-createdbproxyendpointaddress).\n\n\u003e **NOTE:** Available since v1.250.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.rds.Instance(\"default\", {\n    engine: \"MySQL\",\n    engineVersion: \"5.7\",\n    instanceType: \"rds.mysql.c1.large\",\n    instanceStorage: 20,\n    instanceChargeType: \"Postpaid\",\n    instanceName: name,\n    vswitchId: defaultSwitch.id,\n    dbInstanceStorageType: \"local_ssd\",\n});\nconst defaultReadOnlyInstance = new alicloud.rds.ReadOnlyInstance(\"default\", {\n    zoneId: defaultInstance.zoneId,\n    masterDbInstanceId: defaultInstance.id,\n    engineVersion: defaultInstance.engineVersion,\n    instanceStorage: defaultInstance.instanceStorage,\n    instanceType: defaultInstance.instanceType,\n    instanceName: `${name}readonly`,\n    vswitchId: defaultSwitch.id,\n});\nconst defaultRdsDbProxy = new alicloud.rds.RdsDbProxy(\"default\", {\n    instanceId: defaultInstance.id,\n    instanceNetworkType: \"VPC\",\n    vpcId: defaultInstance.vpcId,\n    vswitchId: defaultInstance.vswitchId,\n    dbProxyInstanceNum: 2,\n    dbProxyConnectionPrefix: \"example\",\n    dbProxyConnectStringPort: 3306,\n    dbProxyEndpointReadWriteMode: \"ReadWrite\",\n    readOnlyInstanceMaxDelayTime: 90,\n    dbProxyFeatures: \"TransactionReadSqlRouteOptimizeStatus:1;ConnectionPersist:1;ReadWriteSpliting:1\",\n    readOnlyInstanceDistributionType: \"Custom\",\n    readOnlyInstanceWeights: [\n        {\n            instanceId: defaultInstance.id,\n            weight: \"100\",\n        },\n        {\n            instanceId: defaultReadOnlyInstance.id,\n            weight: \"500\",\n        },\n    ],\n});\nconst defaultDbProxyPublic = new alicloud.rds.DbProxyPublic(\"default\", {\n    dbInstanceId: defaultInstance.id,\n    dbProxyEndpointId: defaultRdsDbProxy.dbProxyEndpointId,\n    connectionStringPrefix: \"exampleabc\",\n    dbProxyConnectionStringNetType: \"Public\",\n    dbProxyNewConnectStringPort: \"3306\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"5.6\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.rds.Instance(\"default\",\n    engine=\"MySQL\",\n    engine_version=\"5.7\",\n    instance_type=\"rds.mysql.c1.large\",\n    instance_storage=20,\n    instance_charge_type=\"Postpaid\",\n    instance_name=name,\n    vswitch_id=default_switch.id,\n    db_instance_storage_type=\"local_ssd\")\ndefault_read_only_instance = alicloud.rds.ReadOnlyInstance(\"default\",\n    zone_id=default_instance.zone_id,\n    master_db_instance_id=default_instance.id,\n    engine_version=default_instance.engine_version,\n    instance_storage=default_instance.instance_storage,\n    instance_type=default_instance.instance_type,\n    instance_name=f\"{name}readonly\",\n    vswitch_id=default_switch.id)\ndefault_rds_db_proxy = alicloud.rds.RdsDbProxy(\"default\",\n    instance_id=default_instance.id,\n    instance_network_type=\"VPC\",\n    vpc_id=default_instance.vpc_id,\n    vswitch_id=default_instance.vswitch_id,\n    db_proxy_instance_num=2,\n    db_proxy_connection_prefix=\"example\",\n    db_proxy_connect_string_port=3306,\n    db_proxy_endpoint_read_write_mode=\"ReadWrite\",\n    read_only_instance_max_delay_time=90,\n    db_proxy_features=\"TransactionReadSqlRouteOptimizeStatus:1;ConnectionPersist:1;ReadWriteSpliting:1\",\n    read_only_instance_distribution_type=\"Custom\",\n    read_only_instance_weights=[\n        {\n            \"instance_id\": default_instance.id,\n            \"weight\": \"100\",\n        },\n        {\n            \"instance_id\": default_read_only_instance.id,\n            \"weight\": \"500\",\n        },\n    ])\ndefault_db_proxy_public = alicloud.rds.DbProxyPublic(\"default\",\n    db_instance_id=default_instance.id,\n    db_proxy_endpoint_id=default_rds_db_proxy.db_proxy_endpoint_id,\n    connection_string_prefix=\"exampleabc\",\n    db_proxy_connection_string_net_type=\"Public\",\n    db_proxy_new_connect_string_port=\"3306\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Rds.Instance(\"default\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"5.7\",\n        InstanceType = \"rds.mysql.c1.large\",\n        InstanceStorage = 20,\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = name,\n        VswitchId = defaultSwitch.Id,\n        DbInstanceStorageType = \"local_ssd\",\n    });\n\n    var defaultReadOnlyInstance = new AliCloud.Rds.ReadOnlyInstance(\"default\", new()\n    {\n        ZoneId = defaultInstance.ZoneId,\n        MasterDbInstanceId = defaultInstance.Id,\n        EngineVersion = defaultInstance.EngineVersion,\n        InstanceStorage = defaultInstance.InstanceStorage,\n        InstanceType = defaultInstance.InstanceType,\n        InstanceName = $\"{name}readonly\",\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var defaultRdsDbProxy = new AliCloud.Rds.RdsDbProxy(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        InstanceNetworkType = \"VPC\",\n        VpcId = defaultInstance.VpcId,\n        VswitchId = defaultInstance.VswitchId,\n        DbProxyInstanceNum = 2,\n        DbProxyConnectionPrefix = \"example\",\n        DbProxyConnectStringPort = 3306,\n        DbProxyEndpointReadWriteMode = \"ReadWrite\",\n        ReadOnlyInstanceMaxDelayTime = 90,\n        DbProxyFeatures = \"TransactionReadSqlRouteOptimizeStatus:1;ConnectionPersist:1;ReadWriteSpliting:1\",\n        ReadOnlyInstanceDistributionType = \"Custom\",\n        ReadOnlyInstanceWeights = new[]\n        {\n            new AliCloud.Rds.Inputs.RdsDbProxyReadOnlyInstanceWeightArgs\n            {\n                InstanceId = defaultInstance.Id,\n                Weight = \"100\",\n            },\n            new AliCloud.Rds.Inputs.RdsDbProxyReadOnlyInstanceWeightArgs\n            {\n                InstanceId = defaultReadOnlyInstance.Id,\n                Weight = \"500\",\n            },\n        },\n    });\n\n    var defaultDbProxyPublic = new AliCloud.Rds.DbProxyPublic(\"default\", new()\n    {\n        DbInstanceId = defaultInstance.Id,\n        DbProxyEndpointId = defaultRdsDbProxy.DbProxyEndpointId,\n        ConnectionStringPrefix = \"exampleabc\",\n        DbProxyConnectionStringNetType = \"Public\",\n        DbProxyNewConnectStringPort = \"3306\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:        pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion: pulumi.StringRef(\"5.6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rds.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"5.7\"),\n\t\t\tInstanceType:          pulumi.String(\"rds.mysql.c1.large\"),\n\t\t\tInstanceStorage:       pulumi.Int(20),\n\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t\tVswitchId:             defaultSwitch.ID(),\n\t\t\tDbInstanceStorageType: pulumi.String(\"local_ssd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultReadOnlyInstance, err := rds.NewReadOnlyInstance(ctx, \"default\", \u0026rds.ReadOnlyInstanceArgs{\n\t\t\tZoneId:             defaultInstance.ZoneId,\n\t\t\tMasterDbInstanceId: defaultInstance.ID(),\n\t\t\tEngineVersion:      defaultInstance.EngineVersion,\n\t\t\tInstanceStorage:    defaultInstance.InstanceStorage,\n\t\t\tInstanceType:       defaultInstance.InstanceType,\n\t\t\tInstanceName:       pulumi.Sprintf(\"%vreadonly\", name),\n\t\t\tVswitchId:          defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRdsDbProxy, err := rds.NewRdsDbProxy(ctx, \"default\", \u0026rds.RdsDbProxyArgs{\n\t\t\tInstanceId:                       defaultInstance.ID(),\n\t\t\tInstanceNetworkType:              pulumi.String(\"VPC\"),\n\t\t\tVpcId:                            defaultInstance.VpcId,\n\t\t\tVswitchId:                        defaultInstance.VswitchId,\n\t\t\tDbProxyInstanceNum:               pulumi.Int(2),\n\t\t\tDbProxyConnectionPrefix:          pulumi.String(\"example\"),\n\t\t\tDbProxyConnectStringPort:         pulumi.Int(3306),\n\t\t\tDbProxyEndpointReadWriteMode:     pulumi.String(\"ReadWrite\"),\n\t\t\tReadOnlyInstanceMaxDelayTime:     pulumi.Int(90),\n\t\t\tDbProxyFeatures:                  pulumi.String(\"TransactionReadSqlRouteOptimizeStatus:1;ConnectionPersist:1;ReadWriteSpliting:1\"),\n\t\t\tReadOnlyInstanceDistributionType: pulumi.String(\"Custom\"),\n\t\t\tReadOnlyInstanceWeights: rds.RdsDbProxyReadOnlyInstanceWeightArray{\n\t\t\t\t\u0026rds.RdsDbProxyReadOnlyInstanceWeightArgs{\n\t\t\t\t\tInstanceId: defaultInstance.ID(),\n\t\t\t\t\tWeight:     pulumi.String(\"100\"),\n\t\t\t\t},\n\t\t\t\t\u0026rds.RdsDbProxyReadOnlyInstanceWeightArgs{\n\t\t\t\t\tInstanceId: defaultReadOnlyInstance.ID(),\n\t\t\t\t\tWeight:     pulumi.String(\"500\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewDbProxyPublic(ctx, \"default\", \u0026rds.DbProxyPublicArgs{\n\t\t\tDbInstanceId:                   defaultInstance.ID(),\n\t\t\tDbProxyEndpointId:              defaultRdsDbProxy.DbProxyEndpointId,\n\t\t\tConnectionStringPrefix:         pulumi.String(\"exampleabc\"),\n\t\t\tDbProxyConnectionStringNetType: pulumi.String(\"Public\"),\n\t\t\tDbProxyNewConnectStringPort:    pulumi.String(\"3306\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.ReadOnlyInstance;\nimport com.pulumi.alicloud.rds.ReadOnlyInstanceArgs;\nimport com.pulumi.alicloud.rds.RdsDbProxy;\nimport com.pulumi.alicloud.rds.RdsDbProxyArgs;\nimport com.pulumi.alicloud.rds.inputs.RdsDbProxyReadOnlyInstanceWeightArgs;\nimport com.pulumi.alicloud.rds.DbProxyPublic;\nimport com.pulumi.alicloud.rds.DbProxyPublicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"5.7\")\n            .instanceType(\"rds.mysql.c1.large\")\n            .instanceStorage(20)\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(name)\n            .vswitchId(defaultSwitch.id())\n            .dbInstanceStorageType(\"local_ssd\")\n            .build());\n\n        var defaultReadOnlyInstance = new ReadOnlyInstance(\"defaultReadOnlyInstance\", ReadOnlyInstanceArgs.builder()\n            .zoneId(defaultInstance.zoneId())\n            .masterDbInstanceId(defaultInstance.id())\n            .engineVersion(defaultInstance.engineVersion())\n            .instanceStorage(defaultInstance.instanceStorage())\n            .instanceType(defaultInstance.instanceType())\n            .instanceName(String.format(\"%sreadonly\", name))\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var defaultRdsDbProxy = new RdsDbProxy(\"defaultRdsDbProxy\", RdsDbProxyArgs.builder()\n            .instanceId(defaultInstance.id())\n            .instanceNetworkType(\"VPC\")\n            .vpcId(defaultInstance.vpcId())\n            .vswitchId(defaultInstance.vswitchId())\n            .dbProxyInstanceNum(2)\n            .dbProxyConnectionPrefix(\"example\")\n            .dbProxyConnectStringPort(3306)\n            .dbProxyEndpointReadWriteMode(\"ReadWrite\")\n            .readOnlyInstanceMaxDelayTime(90)\n            .dbProxyFeatures(\"TransactionReadSqlRouteOptimizeStatus:1;ConnectionPersist:1;ReadWriteSpliting:1\")\n            .readOnlyInstanceDistributionType(\"Custom\")\n            .readOnlyInstanceWeights(            \n                RdsDbProxyReadOnlyInstanceWeightArgs.builder()\n                    .instanceId(defaultInstance.id())\n                    .weight(\"100\")\n                    .build(),\n                RdsDbProxyReadOnlyInstanceWeightArgs.builder()\n                    .instanceId(defaultReadOnlyInstance.id())\n                    .weight(\"500\")\n                    .build())\n            .build());\n\n        var defaultDbProxyPublic = new DbProxyPublic(\"defaultDbProxyPublic\", DbProxyPublicArgs.builder()\n            .dbInstanceId(defaultInstance.id())\n            .dbProxyEndpointId(defaultRdsDbProxy.dbProxyEndpointId())\n            .connectionStringPrefix(\"exampleabc\")\n            .dbProxyConnectionStringNetType(\"Public\")\n            .dbProxyNewConnectStringPort(\"3306\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:rds:Instance\n    name: default\n    properties:\n      engine: MySQL\n      engineVersion: '5.7'\n      instanceType: rds.mysql.c1.large\n      instanceStorage: '20'\n      instanceChargeType: Postpaid\n      instanceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      dbInstanceStorageType: local_ssd\n  defaultReadOnlyInstance:\n    type: alicloud:rds:ReadOnlyInstance\n    name: default\n    properties:\n      zoneId: ${defaultInstance.zoneId}\n      masterDbInstanceId: ${defaultInstance.id}\n      engineVersion: ${defaultInstance.engineVersion}\n      instanceStorage: ${defaultInstance.instanceStorage}\n      instanceType: ${defaultInstance.instanceType}\n      instanceName: ${name}readonly\n      vswitchId: ${defaultSwitch.id}\n  defaultRdsDbProxy:\n    type: alicloud:rds:RdsDbProxy\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      instanceNetworkType: VPC\n      vpcId: ${defaultInstance.vpcId}\n      vswitchId: ${defaultInstance.vswitchId}\n      dbProxyInstanceNum: 2\n      dbProxyConnectionPrefix: example\n      dbProxyConnectStringPort: 3306\n      dbProxyEndpointReadWriteMode: ReadWrite\n      readOnlyInstanceMaxDelayTime: 90\n      dbProxyFeatures: TransactionReadSqlRouteOptimizeStatus:1;ConnectionPersist:1;ReadWriteSpliting:1\n      readOnlyInstanceDistributionType: Custom\n      readOnlyInstanceWeights:\n        - instanceId: ${defaultInstance.id}\n          weight: '100'\n        - instanceId: ${defaultReadOnlyInstance.id}\n          weight: '500'\n  defaultDbProxyPublic:\n    type: alicloud:rds:DbProxyPublic\n    name: default\n    properties:\n      dbInstanceId: ${defaultInstance.id}\n      dbProxyEndpointId: ${defaultRdsDbProxy.dbProxyEndpointId}\n      connectionStringPrefix: exampleabc\n      dbProxyConnectionStringNetType: Public\n      dbProxyNewConnectStringPort: '3306'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '5.6'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **NOTE:** Resource \u003cspan pulumi-lang-nodejs=\"`alicloud.rds.DbProxyPublic`\" pulumi-lang-dotnet=\"`alicloud.rds.DbProxyPublic`\" pulumi-lang-go=\"`rds.DbProxyPublic`\" pulumi-lang-python=\"`rds.DbProxyPublic`\" pulumi-lang-yaml=\"`alicloud.rds.DbProxyPublic`\" pulumi-lang-java=\"`alicloud.rds.DbProxyPublic`\"\u003e`alicloud.rds.DbProxyPublic`\u003c/span\u003e should be created after \u003cspan pulumi-lang-nodejs=\"`alicloud.rds.RdsDbProxy`\" pulumi-lang-dotnet=\"`alicloud.rds.RdsDbProxy`\" pulumi-lang-go=\"`rds.RdsDbProxy`\" pulumi-lang-python=\"`rds.RdsDbProxy`\" pulumi-lang-yaml=\"`alicloud.rds.RdsDbProxy`\" pulumi-lang-java=\"`alicloud.rds.RdsDbProxy`\"\u003e`alicloud.rds.RdsDbProxy`\u003c/span\u003e, so the \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e statement is necessary.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS Database Proxy Public Network Address can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/dbProxyPublic:DbProxyPublic example \u003cid\u003e\n```\n\n","properties":{"connectionStringPrefix":{"type":"string","description":"The prefix for the new database proxy connection address can be customized.\n"},"dbInstanceId":{"type":"string","description":"Instance ID.\n"},"dbProxyConnectionStringNetType":{"type":"string","description":"The network type of the new database proxy connection address,This resource defaults to Public.\n"},"dbProxyEndpointId":{"type":"string","description":"Database proxy connection address ID.\n"},"dbProxyNewConnectStringPort":{"type":"string","description":"The port for the new database proxy connection address is 3306 by default for MySQL and 5432 by default for PostgreSQL, which can be customized.\n"}},"required":["connectionStringPrefix","dbInstanceId","dbProxyConnectionStringNetType","dbProxyEndpointId","dbProxyNewConnectStringPort"],"inputProperties":{"connectionStringPrefix":{"type":"string","description":"The prefix for the new database proxy connection address can be customized.\n"},"dbInstanceId":{"type":"string","description":"Instance ID.\n","willReplaceOnChanges":true},"dbProxyConnectionStringNetType":{"type":"string","description":"The network type of the new database proxy connection address,This resource defaults to Public.\n","willReplaceOnChanges":true},"dbProxyEndpointId":{"type":"string","description":"Database proxy connection address ID.\n","willReplaceOnChanges":true},"dbProxyNewConnectStringPort":{"type":"string","description":"The port for the new database proxy connection address is 3306 by default for MySQL and 5432 by default for PostgreSQL, which can be customized.\n"}},"requiredInputs":["connectionStringPrefix","dbInstanceId","dbProxyConnectionStringNetType","dbProxyEndpointId"],"stateInputs":{"description":"Input properties used for looking up and filtering DbProxyPublic resources.\n","properties":{"connectionStringPrefix":{"type":"string","description":"The prefix for the new database proxy connection address can be customized.\n"},"dbInstanceId":{"type":"string","description":"Instance ID.\n","willReplaceOnChanges":true},"dbProxyConnectionStringNetType":{"type":"string","description":"The network type of the new database proxy connection address,This resource defaults to Public.\n","willReplaceOnChanges":true},"dbProxyEndpointId":{"type":"string","description":"Database proxy connection address ID.\n","willReplaceOnChanges":true},"dbProxyNewConnectStringPort":{"type":"string","description":"The port for the new database proxy connection address is 3306 by default for MySQL and 5432 by default for PostgreSQL, which can be customized.\n"}},"type":"object"}},"alicloud:rds/ddrInstance:DdrInstance":{"description":"Provide RDS remote disaster recovery instance resources. \n\nFor information about RDS remote disaster recovery instance and how to use it, see [What is ApsaraDB for RDS Remote Disaster Recovery](https://www.alibabacloud.com/help/en/rds/developer-reference/api-rds-2014-08-15-createddrinstance).\n\n\u003e **NOTE:** Available since v1.198.0.\n\n## Example Usage\n\nBecause the generation time of the disaster recovery set is uncertain, the query backup set may not have a value, so the following examples may not be executed successfully in one run.\n\n## Import\n\nRDS ddr instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/ddrInstance:DdrInstance example rm-abc12345678\n```\n\n","properties":{"acl":{"type":"string","description":"The method that is used to verify the identities of clients. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"autoRenew":{"type":"boolean","description":"Whether to renewal a DB instance automatically or not. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an instance, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Valid value:[1~12], Default to 1.\n"},"autoUpgradeMinorVersion":{"type":"string","description":"The upgrade method to use. Valid values:\n- Auto: Instances are automatically upgraded to a higher minor version.\n- Manual: Instances are forcibly upgraded to a higher minor version when the current version is unpublished.\n\nSee more [details and limitation](https://www.alibabacloud.com/help/doc-detail/123605.htm).\n"},"backupSetId":{"type":"string","description":"The ID of the backup set that is used for the restoration. You can call the DescribeCrossRegionBackups operation to query the ID of the backup set.\n"},"caType":{"type":"string","description":"The type of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the SSLEnabled parameter to 1, the default value of this parameter is aliyun. Value range:\n- aliyun: a cloud certificate\n- custom: a custom certificate\n"},"category":{"type":"string","description":"The RDS edition of the instance.\n"},"clientCaCert":{"type":"string","description":"The public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCAEbabled parameter to 1, you must also specify this parameter.\n"},"clientCaEnabled":{"type":"integer","description":"Specifies whether to enable the public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. Valid values:\n- 1: enables the public key\n- 0: disables the public key\n"},"clientCertRevocationList":{"type":"string","description":"The CRL that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCrlEnabled parameter to 1, you must also specify this parameter.\n"},"clientCrlEnabled":{"type":"integer","description":"Specifies whether to enable a certificate revocation list (CRL) that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- 1: enables the CRL\n- 0: disables the CRL\n"},"connectionString":{"type":"string","description":"RDS database connection string.\n"},"connectionStringPrefix":{"type":"string","description":"The private connection string prefix. If you want to update public connection string prefix, please use resource\u003cspan pulumi-lang-nodejs=\" alicloud.rds.Connection \" pulumi-lang-dotnet=\" alicloud.rds.Connection \" pulumi-lang-go=\" rds.Connection \" pulumi-lang-python=\" rds.Connection \" pulumi-lang-yaml=\" alicloud.rds.Connection \" pulumi-lang-java=\" alicloud.rds.Connection \"\u003e alicloud.rds.Connection \u003c/span\u003econnection_prefix. \n\u003e **NOTE:** The prefix must be 8 to 64 characters in length and can contain letters, digits, and hyphens (-). It cannot contain Chinese characters and special characters ~!#%^\u0026*=+\\|{};:'\",\u003c\u003e/?\n"},"dbInstanceIpArrayAttribute":{"type":"string","description":"The attribute of the IP address whitelist. By default, this parameter is empty.\n\n\u003e **NOTE:** The IP address whitelists that have the hidden attribute are not displayed in the ApsaraDB RDS console. These IP address whitelists are used to access Alibaba Cloud services, such as Data Transmission Service (DTS).\n"},"dbInstanceIpArrayName":{"type":"string","description":"The name of the IP address whitelist. Default value: Default.\n\n\u003e **NOTE:** A maximum of 200 IP address whitelists can be configured for each instance.\n"},"dbInstanceStorageType":{"type":"string","description":"The storage type of the instance. Valid values:\n- local_ssd: specifies to use local SSDs. This value is recommended.\n- cloud_ssd: specifies to use standard SSDs.\n- cloud_essd: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd2: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd3: specifies to use enhanced SSDs (ESSDs).\n\n\u003e **NOTE:** You can specify the time zone when you create a primary instance. You cannot specify the time zone when you create a read-only instance. Read-only instances inherit the time zone of their primary instance. If you do not specify this parameter, the system assigns the default time zone of the region where the instance resides.\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. Valid values: \n- true: delete protect.\n- false: no delete protect.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`deletionProtection`\" pulumi-lang-dotnet=\"`DeletionProtection`\" pulumi-lang-go=\"`deletionProtection`\" pulumi-lang-python=\"`deletion_protection`\" pulumi-lang-yaml=\"`deletionProtection`\" pulumi-lang-java=\"`deletionProtection`\"\u003e`deletion_protection`\u003c/span\u003e is valid only when attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, supported engine type: **MySQL**, **PostgreSQL**, **MariaDB**, **MSSQL**.\n"},"effectiveTime":{"type":"string","description":"The method to update the engine version and change.  Default value: Immediate. Valid values:\n- Immediate: The change immediately takes effect.\n- MaintainTime: The change takes effect during the specified maintenance window. For more information, see ModifyDBInstanceMaintainTime.\n"},"encryptionKey":{"type":"string","description":"The key id of the KMS. Used for encrypting a disk if not null. Only for PostgreSQL, MySQL and SQLServer.\n"},"engine":{"type":"string","description":"Database type. Value options: MySQL, SQLServer.\n\n\u003e **NOTE:** When the 'EngineVersion' changes, it can be used as the target database version for the large version upgrade of RDS for MySQL instance.\n"},"engineVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDdrInstance](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/restore-data-to-a-new-instance-across-regions) `EngineVersion`.\n"},"forceRestart":{"type":"boolean","description":"Set it to true to make some parameter efficient when modifying them. Default to false.\n"},"freshWhiteListReadins":{"type":"string","description":"The read-only instances to which you want to synchronize the IP address whitelist.\n* If the instance is attached with a read-only instance, you can use this parameter to synchronize the IP address whitelist to the read-only instance. If the instance is attached with multiple read-only instances, the read-only instances must be separated by commas (,).\n* If the instance is not attached with a read-only instance, this parameter is empty.\n"},"haConfig":{"type":"string","description":"The primary/secondary switchover mode of the instance. Default value: Auto. Valid values:\n- Auto: The system automatically switches over services from the primary to secondary instances in the event of a fault.\n- Manual: You must manually switch over services from the primary to secondary instances in the event of a fault.\n\n\u003e **NOTE:** If you set this parameter to Manual, you must specify the ManualHATime parameter.\n"},"instanceName":{"type":"string","description":"The name of DB instance. It a string of 2 to 256 characters.\n"},"instanceStorage":{"type":"integer","description":"The storage capacity of the destination instance. Valid values: 5 to 2000. Unit: GB.\n\nThis value must be a multiple of 5 GB. For more information, see Primary ApsaraDB RDS instance types.\n"},"instanceType":{"type":"string","description":"DB Instance type.\n\n\u003e **NOTE:** When `storage_auto_scale=\"Enable\"`, do not perform \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e check. when `storage_auto_scale=\"Disable\"`, if the instance itself \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003ehas changed. You need to manually revise the \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e in the template value.\n"},"maintainTime":{"type":"string","description":"Maintainable time period format of the instance: HH:MMZ-HH:MMZ (UTC time)\n"},"manualHaTime":{"type":"string","description":"The time after when you want to enable automatic primary/secondary switchover. At most, you can set this parameter to 23:59:59 seven days later. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n\n\u003e **NOTE:** This parameter only takes effect when the HAConfig parameter is set to Manual.\n"},"modifyMode":{"type":"string","description":"The method that is used to modify the IP address whitelist. Default value: Cover. Valid values:\n- Cover: Use the value of the SecurityIps parameter to overwrite the existing entries in the IP address whitelist.\n- Append: Add the IP addresses and CIDR blocks that are specified in the SecurityIps parameter to the IP address whitelist.\n- Delete: Delete IP addresses and CIDR blocks that are specified in the SecurityIps parameter from the IP address whitelist. You must retain at least one IP address or CIDR block.\n"},"monitoringPeriod":{"type":"integer","description":"The monitoring frequency in seconds. Valid values are 5, 60, 300. Defaults to 300.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:rds/DdrInstanceParameter:DdrInstanceParameter"},"description":"Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm) . See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"paymentType":{"type":"string","description":"Valid values are `Subscription`, `PayAsYouGo`, Default to `PayAsYouGo`.\n"},"period":{"type":"integer","description":"The duration that you will buy DB instance (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Valid values: [1~9], 12, 24, 36.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"pgHbaConfs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/DdrInstancePgHbaConf:DdrInstancePgHbaConf"},"description":"The configuration of [AD domain](https://www.alibabacloud.com/help/en/doc-detail/349288.htm) . See \u003cspan pulumi-lang-nodejs=\"`pgHbaConf`\" pulumi-lang-dotnet=\"`PgHbaConf`\" pulumi-lang-go=\"`pgHbaConf`\" pulumi-lang-python=\"`pg_hba_conf`\" pulumi-lang-yaml=\"`pgHbaConf`\" pulumi-lang-java=\"`pgHbaConf`\"\u003e`pg_hba_conf`\u003c/span\u003e below.\n"},"port":{"type":"string","description":"The private port of the database service. If you want to update public port, please use resource\u003cspan pulumi-lang-nodejs=\" alicloud.rds.Connection \" pulumi-lang-dotnet=\" alicloud.rds.Connection \" pulumi-lang-go=\" rds.Connection \" pulumi-lang-python=\" rds.Connection \" pulumi-lang-yaml=\" alicloud.rds.Connection \" pulumi-lang-java=\" alicloud.rds.Connection \"\u003e alicloud.rds.Connection \u003c/span\u003eport.\n"},"privateIpAddress":{"type":"string","description":"The private IP address of the instance. The private IP address must be within the Classless Inter-Domain Routing (CIDR) block of the vSwitch that is specified by the VSwitchId parameter.\n"},"releasedKeepPolicy":{"type":"string","description":"The policy based on which ApsaraDB RDS retains archived backup files after the instance is released. Valid values:\n- None: No archived backup files are retained.\n- Lastest: Only the last archived backup file is retained.\n- All: All the archived backup files are retained.\n\n\u003e **NOTE:** This parameter is supported only when the instance runs the MySQL database engine.\n"},"replicationAcl":{"type":"string","description":"The method that is used to verify the replication permission. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the DB instance belongs.\n"},"restoreTime":{"type":"string","description":"The point in time to which you want to restore data. The point in time that you specify must be earlier than the current time. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"restoreType":{"type":"string","description":"The method that is used to restore data. Valid values:\n- BackupSet: Data is restored from a backup set. If you use this value, you must also specify the BackupSetID parameter.\n- BackupTime: restores data to a point in time. You must also specify the RestoreTime, SourceRegion, and SourceDBInstanceName parameters.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":") The list IDs to join ECS Security Group. At most supports three security groups.\n"},"securityIpMode":{"type":"string","description":"Valid values are \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`safety`\" pulumi-lang-dotnet=\"`Safety`\" pulumi-lang-go=\"`safety`\" pulumi-lang-python=\"`safety`\" pulumi-lang-yaml=\"`safety`\" pulumi-lang-java=\"`safety`\"\u003e`safety`\u003c/span\u003e, Default to \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e. support \u003cspan pulumi-lang-nodejs=\"`safety`\" pulumi-lang-dotnet=\"`Safety`\" pulumi-lang-go=\"`safety`\" pulumi-lang-python=\"`safety`\" pulumi-lang-yaml=\"`safety`\" pulumi-lang-java=\"`safety`\"\u003e`safety`\u003c/span\u003e switch to high security access mode.\n"},"securityIpType":{"type":"string","description":"The type of IP address in the IP address whitelist.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"serverCert":{"type":"string","description":"The content of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter.\n"},"serverKey":{"type":"string","description":"The private key of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter.\n"},"sourceDbInstanceName":{"type":"string","description":"The ID of the source instance if you want to restore data to a point in time.\n"},"sourceRegion":{"type":"string","description":"The region ID of the source instance if you want to restore data to a point in time.\n"},"sqlCollectorConfigValue":{"type":"integer","description":"The sql collector keep time of the instance. Valid values are \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1095`\" pulumi-lang-dotnet=\"`1095`\" pulumi-lang-go=\"`1095`\" pulumi-lang-python=\"`1095`\" pulumi-lang-yaml=\"`1095`\" pulumi-lang-java=\"`1095`\"\u003e`1095`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1825`\" pulumi-lang-dotnet=\"`1825`\" pulumi-lang-go=\"`1825`\" pulumi-lang-python=\"`1825`\" pulumi-lang-yaml=\"`1825`\" pulumi-lang-java=\"`1825`\"\u003e`1825`\u003c/span\u003e, Default to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n"},"sqlCollectorStatus":{"type":"string","description":"The sql collector status of the instance. Valid values are `Enabled`, `Disabled`, Default to `Disabled`.\n"},"sslAction":{"type":"string","description":"Actions performed on SSL functions, Valid values: `Open`: turn on SSL encryption; `Close`: turn off SSL encryption; `Update`: update SSL certificate. See more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26254.htm).\n"},"sslStatus":{"type":"string","description":"Status of the SSL feature. `Yes`: SSL is turned on; `No`: SSL is turned off.\n"},"storageAutoScale":{"type":"string","description":"Automatic storage space expansion switch. Valid values:\n- Enable\n- Disable\n\n\u003e **NOTE:** This parameter only takes effect when the StorageAutoScale parameter is set to Enable.\n"},"storageThreshold":{"type":"integer","description":"The trigger threshold (percentage) for automatic storage space expansion. Valid values:\n- 10\n- 20\n- 30\n- 40\n- 50\n\n\u003e **NOTE:** This parameter only takes effect when the StorageAutoScale parameter is set to Enable. The value must be greater than or equal to the total size of the current storage space of the instance.\n"},"storageUpperBound":{"type":"integer","description":"The upper limit of the total storage space for automatic expansion of the storage space, that is, automatic expansion will not cause the total storage space of the instance to exceed this value. Unit: GB. The value must be ≥0.\n\n\u003e **NOTE:** Because of data backup and migration, change DB instance type and storage would cost 15~20 minutes. Please make full preparation before changing them.\n"},"switchTime":{"type":"string","description":"The specific point in time when you want to perform the update. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. The time must be in UTC.\n\n\u003e **NOTE:** This parameter takes effect only when you set the UpgradeTime parameter to SpecifyTime.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"targetMinorVersion":{"type":"string","description":"The minor engine version to which you want to update the instance. If you do not specify this parameter, the instance is updated to the latest minor engine version. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. You must specify the minor engine version in one of the following formats:\n- PostgreSQL: rds_postgres_\u003cMajor engine version\u003e00_\u003cMinor engine version\u003e. Example: rds_postgres_1200_20200830.\n- MySQL: \u003cRDS edition\u003e_\u003cMinor engine version\u003e. Examples: rds_20200229, xcluster_20200229, and xcluster80_20200229. The following RDS editions are supported:\n- rds: The instance runs RDS Basic or High-availability Edition.\n- xcluster: The instance runs MySQL 5.7 on RDS Enterprise Edition.\n- xcluster80: The instance runs MySQL 8.0 on RDS Enterprise Edition.\n- SQLServer: \u003cMinor engine version\u003e. Example: 15.0.4073.23.\n\n\u003e **NOTE:** For more information about minor engine versions, see Release notes of minor AliPG versions, Release notes of minor AliSQL versions, and Release notes of minor engine versions of ApsaraDB RDS for SQL Server.\n"},"tcpConnectionType":{"type":"string","description":"The availability check method of the instance. Valid values:\n- **SHORT**: Alibaba Cloud uses short-lived connections to check the availability of the instance.\n- **LONG**: Alibaba Cloud uses persistent connections to check the availability of the instance.\n"},"tdeStatus":{"type":"string","description":"The TDE(Transparent Data Encryption) status. See more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26256.htm).\n"},"upgradeDbInstanceKernelVersion":{"type":"boolean","description":"Whether to upgrade a minor version of the kernel. Valid values:\n- true: upgrade\n- false: not to upgrade\n"},"upgradeTime":{"type":"string","description":"The method to update the minor engine version. Default value: Immediate. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. Valid values:\n- Immediate: The minor engine version is immediately updated.\n- MaintainTime: The minor engine version is updated during the maintenance window. For more information about how to change the maintenance window, see ModifyDBInstanceMaintainTime.\n- SpecifyTime: The minor engine version is updated at the point in time you specify.\n"},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n\n\u003e **NOTE:** This parameter applies only to ApsaraDB RDS for MySQL instances. For more information about Upgrade the major engine version of an ApsaraDB RDS for MySQL instance, see [Upgrade the major engine version of an RDS instance in the ApsaraDB RDS console](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/upgrade-the-major-engine-version-of-an-apsaradb-rds-for-mysql-instance-1).\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC. If there are multiple vswitches, separate them with commas.\n"},"whitelistNetworkType":{"type":"string","description":"The network type of the IP address whitelist. Default value: MIX. Valid values:\n- Classic: classic network in enhanced whitelist mode\n- VPC: virtual private cloud (VPC) in enhanced whitelist mode\n- MIX: standard whitelist mode\n\n\u003e **NOTE:** In standard whitelist mode, IP addresses and CIDR blocks can be added only to the default IP address whitelist. In enhanced whitelist mode, IP addresses and CIDR blocks can be added to both IP address whitelists of the classic network type and those of the VPC network type.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB instance. It supports multiple zone.\nIf it is a multi-zone and \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified, the vswitch must in the one of them.\nThe multiple zone ID can be retrieved by setting \u003cspan pulumi-lang-nodejs=\"`multi`\" pulumi-lang-dotnet=\"`Multi`\" pulumi-lang-go=\"`multi`\" pulumi-lang-python=\"`multi`\" pulumi-lang-yaml=\"`multi`\" pulumi-lang-java=\"`multi`\"\u003e`multi`\u003c/span\u003e to \"true\" in the data source \u003cspan pulumi-lang-nodejs=\"`alicloud.getZones`\" pulumi-lang-dotnet=\"`alicloud.getZones`\" pulumi-lang-go=\"`getZones`\" pulumi-lang-python=\"`get_zones`\" pulumi-lang-yaml=\"`alicloud.getZones`\" pulumi-lang-java=\"`alicloud.getZones`\"\u003e`alicloud.getZones`\u003c/span\u003e.\n"},"zoneIdSlaveA":{"type":"string","description":"The region ID of the secondary instance if you create a secondary instance.\n"},"zoneIdSlaveB":{"type":"string","description":"The region ID of the log instance if you create a log instance.\n"}},"required":["acl","autoRenew","autoRenewPeriod","autoUpgradeMinorVersion","caType","category","connectionString","connectionStringPrefix","dbInstanceStorageType","deletionProtection","engine","engineVersion","forceRestart","haConfig","instanceStorage","instanceType","maintainTime","monitoringPeriod","parameters","paymentType","pgHbaConfs","port","privateIpAddress","replicationAcl","resourceGroupId","restoreType","securityGroupIds","securityIpMode","securityIps","serverCert","serverKey","sqlCollectorConfigValue","sqlCollectorStatus","sslAction","sslStatus","targetMinorVersion","tcpConnectionType","vpcId","zoneId","zoneIdSlaveA","zoneIdSlaveB"],"inputProperties":{"acl":{"type":"string","description":"The method that is used to verify the identities of clients. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"autoRenew":{"type":"boolean","description":"Whether to renewal a DB instance automatically or not. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an instance, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Valid value:[1~12], Default to 1.\n"},"autoUpgradeMinorVersion":{"type":"string","description":"The upgrade method to use. Valid values:\n- Auto: Instances are automatically upgraded to a higher minor version.\n- Manual: Instances are forcibly upgraded to a higher minor version when the current version is unpublished.\n\nSee more [details and limitation](https://www.alibabacloud.com/help/doc-detail/123605.htm).\n"},"backupSetId":{"type":"string","description":"The ID of the backup set that is used for the restoration. You can call the DescribeCrossRegionBackups operation to query the ID of the backup set.\n","willReplaceOnChanges":true},"caType":{"type":"string","description":"The type of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the SSLEnabled parameter to 1, the default value of this parameter is aliyun. Value range:\n- aliyun: a cloud certificate\n- custom: a custom certificate\n"},"clientCaCert":{"type":"string","description":"The public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCAEbabled parameter to 1, you must also specify this parameter.\n"},"clientCaEnabled":{"type":"integer","description":"Specifies whether to enable the public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. Valid values:\n- 1: enables the public key\n- 0: disables the public key\n"},"clientCertRevocationList":{"type":"string","description":"The CRL that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCrlEnabled parameter to 1, you must also specify this parameter.\n"},"clientCrlEnabled":{"type":"integer","description":"Specifies whether to enable a certificate revocation list (CRL) that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- 1: enables the CRL\n- 0: disables the CRL\n"},"connectionStringPrefix":{"type":"string","description":"The private connection string prefix. If you want to update public connection string prefix, please use resource\u003cspan pulumi-lang-nodejs=\" alicloud.rds.Connection \" pulumi-lang-dotnet=\" alicloud.rds.Connection \" pulumi-lang-go=\" rds.Connection \" pulumi-lang-python=\" rds.Connection \" pulumi-lang-yaml=\" alicloud.rds.Connection \" pulumi-lang-java=\" alicloud.rds.Connection \"\u003e alicloud.rds.Connection \u003c/span\u003econnection_prefix. \n\u003e **NOTE:** The prefix must be 8 to 64 characters in length and can contain letters, digits, and hyphens (-). It cannot contain Chinese characters and special characters ~!#%^\u0026*=+\\|{};:'\",\u003c\u003e/?\n"},"dbInstanceIpArrayAttribute":{"type":"string","description":"The attribute of the IP address whitelist. By default, this parameter is empty.\n\n\u003e **NOTE:** The IP address whitelists that have the hidden attribute are not displayed in the ApsaraDB RDS console. These IP address whitelists are used to access Alibaba Cloud services, such as Data Transmission Service (DTS).\n"},"dbInstanceIpArrayName":{"type":"string","description":"The name of the IP address whitelist. Default value: Default.\n\n\u003e **NOTE:** A maximum of 200 IP address whitelists can be configured for each instance.\n"},"dbInstanceStorageType":{"type":"string","description":"The storage type of the instance. Valid values:\n- local_ssd: specifies to use local SSDs. This value is recommended.\n- cloud_ssd: specifies to use standard SSDs.\n- cloud_essd: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd2: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd3: specifies to use enhanced SSDs (ESSDs).\n\n\u003e **NOTE:** You can specify the time zone when you create a primary instance. You cannot specify the time zone when you create a read-only instance. Read-only instances inherit the time zone of their primary instance. If you do not specify this parameter, the system assigns the default time zone of the region where the instance resides.\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. Valid values: \n- true: delete protect.\n- false: no delete protect.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`deletionProtection`\" pulumi-lang-dotnet=\"`DeletionProtection`\" pulumi-lang-go=\"`deletionProtection`\" pulumi-lang-python=\"`deletion_protection`\" pulumi-lang-yaml=\"`deletionProtection`\" pulumi-lang-java=\"`deletionProtection`\"\u003e`deletion_protection`\u003c/span\u003e is valid only when attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, supported engine type: **MySQL**, **PostgreSQL**, **MariaDB**, **MSSQL**.\n"},"effectiveTime":{"type":"string","description":"The method to update the engine version and change.  Default value: Immediate. Valid values:\n- Immediate: The change immediately takes effect.\n- MaintainTime: The change takes effect during the specified maintenance window. For more information, see ModifyDBInstanceMaintainTime.\n"},"encryptionKey":{"type":"string","description":"The key id of the KMS. Used for encrypting a disk if not null. Only for PostgreSQL, MySQL and SQLServer.\n"},"engine":{"type":"string","description":"Database type. Value options: MySQL, SQLServer.\n\n\u003e **NOTE:** When the 'EngineVersion' changes, it can be used as the target database version for the large version upgrade of RDS for MySQL instance.\n","willReplaceOnChanges":true},"engineVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDdrInstance](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/restore-data-to-a-new-instance-across-regions) `EngineVersion`.\n"},"forceRestart":{"type":"boolean","description":"Set it to true to make some parameter efficient when modifying them. Default to false.\n"},"freshWhiteListReadins":{"type":"string","description":"The read-only instances to which you want to synchronize the IP address whitelist.\n* If the instance is attached with a read-only instance, you can use this parameter to synchronize the IP address whitelist to the read-only instance. If the instance is attached with multiple read-only instances, the read-only instances must be separated by commas (,).\n* If the instance is not attached with a read-only instance, this parameter is empty.\n"},"haConfig":{"type":"string","description":"The primary/secondary switchover mode of the instance. Default value: Auto. Valid values:\n- Auto: The system automatically switches over services from the primary to secondary instances in the event of a fault.\n- Manual: You must manually switch over services from the primary to secondary instances in the event of a fault.\n\n\u003e **NOTE:** If you set this parameter to Manual, you must specify the ManualHATime parameter.\n"},"instanceName":{"type":"string","description":"The name of DB instance. It a string of 2 to 256 characters.\n"},"instanceStorage":{"type":"integer","description":"The storage capacity of the destination instance. Valid values: 5 to 2000. Unit: GB.\n\nThis value must be a multiple of 5 GB. For more information, see Primary ApsaraDB RDS instance types.\n"},"instanceType":{"type":"string","description":"DB Instance type.\n\n\u003e **NOTE:** When `storage_auto_scale=\"Enable\"`, do not perform \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e check. when `storage_auto_scale=\"Disable\"`, if the instance itself \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003ehas changed. You need to manually revise the \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e in the template value.\n"},"maintainTime":{"type":"string","description":"Maintainable time period format of the instance: HH:MMZ-HH:MMZ (UTC time)\n"},"manualHaTime":{"type":"string","description":"The time after when you want to enable automatic primary/secondary switchover. At most, you can set this parameter to 23:59:59 seven days later. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n\n\u003e **NOTE:** This parameter only takes effect when the HAConfig parameter is set to Manual.\n"},"modifyMode":{"type":"string","description":"The method that is used to modify the IP address whitelist. Default value: Cover. Valid values:\n- Cover: Use the value of the SecurityIps parameter to overwrite the existing entries in the IP address whitelist.\n- Append: Add the IP addresses and CIDR blocks that are specified in the SecurityIps parameter to the IP address whitelist.\n- Delete: Delete IP addresses and CIDR blocks that are specified in the SecurityIps parameter from the IP address whitelist. You must retain at least one IP address or CIDR block.\n"},"monitoringPeriod":{"type":"integer","description":"The monitoring frequency in seconds. Valid values are 5, 60, 300. Defaults to 300.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:rds/DdrInstanceParameter:DdrInstanceParameter"},"description":"Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm) . See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"paymentType":{"type":"string","description":"Valid values are `Subscription`, `PayAsYouGo`, Default to `PayAsYouGo`.\n"},"period":{"type":"integer","description":"The duration that you will buy DB instance (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Valid values: [1~9], 12, 24, 36.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"pgHbaConfs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/DdrInstancePgHbaConf:DdrInstancePgHbaConf"},"description":"The configuration of [AD domain](https://www.alibabacloud.com/help/en/doc-detail/349288.htm) . See \u003cspan pulumi-lang-nodejs=\"`pgHbaConf`\" pulumi-lang-dotnet=\"`PgHbaConf`\" pulumi-lang-go=\"`pgHbaConf`\" pulumi-lang-python=\"`pg_hba_conf`\" pulumi-lang-yaml=\"`pgHbaConf`\" pulumi-lang-java=\"`pgHbaConf`\"\u003e`pg_hba_conf`\u003c/span\u003e below.\n"},"port":{"type":"string","description":"The private port of the database service. If you want to update public port, please use resource\u003cspan pulumi-lang-nodejs=\" alicloud.rds.Connection \" pulumi-lang-dotnet=\" alicloud.rds.Connection \" pulumi-lang-go=\" rds.Connection \" pulumi-lang-python=\" rds.Connection \" pulumi-lang-yaml=\" alicloud.rds.Connection \" pulumi-lang-java=\" alicloud.rds.Connection \"\u003e alicloud.rds.Connection \u003c/span\u003eport.\n"},"privateIpAddress":{"type":"string","description":"The private IP address of the instance. The private IP address must be within the Classless Inter-Domain Routing (CIDR) block of the vSwitch that is specified by the VSwitchId parameter.\n"},"releasedKeepPolicy":{"type":"string","description":"The policy based on which ApsaraDB RDS retains archived backup files after the instance is released. Valid values:\n- None: No archived backup files are retained.\n- Lastest: Only the last archived backup file is retained.\n- All: All the archived backup files are retained.\n\n\u003e **NOTE:** This parameter is supported only when the instance runs the MySQL database engine.\n"},"replicationAcl":{"type":"string","description":"The method that is used to verify the replication permission. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the DB instance belongs.\n"},"restoreTime":{"type":"string","description":"The point in time to which you want to restore data. The point in time that you specify must be earlier than the current time. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n","willReplaceOnChanges":true},"restoreType":{"type":"string","description":"The method that is used to restore data. Valid values:\n- BackupSet: Data is restored from a backup set. If you use this value, you must also specify the BackupSetID parameter.\n- BackupTime: restores data to a point in time. You must also specify the RestoreTime, SourceRegion, and SourceDBInstanceName parameters.\n","willReplaceOnChanges":true},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":") The list IDs to join ECS Security Group. At most supports three security groups.\n"},"securityIpMode":{"type":"string","description":"Valid values are \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`safety`\" pulumi-lang-dotnet=\"`Safety`\" pulumi-lang-go=\"`safety`\" pulumi-lang-python=\"`safety`\" pulumi-lang-yaml=\"`safety`\" pulumi-lang-java=\"`safety`\"\u003e`safety`\u003c/span\u003e, Default to \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e. support \u003cspan pulumi-lang-nodejs=\"`safety`\" pulumi-lang-dotnet=\"`Safety`\" pulumi-lang-go=\"`safety`\" pulumi-lang-python=\"`safety`\" pulumi-lang-yaml=\"`safety`\" pulumi-lang-java=\"`safety`\"\u003e`safety`\u003c/span\u003e switch to high security access mode.\n"},"securityIpType":{"type":"string","description":"The type of IP address in the IP address whitelist.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"serverCert":{"type":"string","description":"The content of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter.\n"},"serverKey":{"type":"string","description":"The private key of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter.\n"},"sourceDbInstanceName":{"type":"string","description":"The ID of the source instance if you want to restore data to a point in time.\n","willReplaceOnChanges":true},"sourceRegion":{"type":"string","description":"The region ID of the source instance if you want to restore data to a point in time.\n","willReplaceOnChanges":true},"sqlCollectorConfigValue":{"type":"integer","description":"The sql collector keep time of the instance. Valid values are \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1095`\" pulumi-lang-dotnet=\"`1095`\" pulumi-lang-go=\"`1095`\" pulumi-lang-python=\"`1095`\" pulumi-lang-yaml=\"`1095`\" pulumi-lang-java=\"`1095`\"\u003e`1095`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1825`\" pulumi-lang-dotnet=\"`1825`\" pulumi-lang-go=\"`1825`\" pulumi-lang-python=\"`1825`\" pulumi-lang-yaml=\"`1825`\" pulumi-lang-java=\"`1825`\"\u003e`1825`\u003c/span\u003e, Default to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n"},"sqlCollectorStatus":{"type":"string","description":"The sql collector status of the instance. Valid values are `Enabled`, `Disabled`, Default to `Disabled`.\n"},"sslAction":{"type":"string","description":"Actions performed on SSL functions, Valid values: `Open`: turn on SSL encryption; `Close`: turn off SSL encryption; `Update`: update SSL certificate. See more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26254.htm).\n"},"storageAutoScale":{"type":"string","description":"Automatic storage space expansion switch. Valid values:\n- Enable\n- Disable\n\n\u003e **NOTE:** This parameter only takes effect when the StorageAutoScale parameter is set to Enable.\n"},"storageThreshold":{"type":"integer","description":"The trigger threshold (percentage) for automatic storage space expansion. Valid values:\n- 10\n- 20\n- 30\n- 40\n- 50\n\n\u003e **NOTE:** This parameter only takes effect when the StorageAutoScale parameter is set to Enable. The value must be greater than or equal to the total size of the current storage space of the instance.\n"},"storageUpperBound":{"type":"integer","description":"The upper limit of the total storage space for automatic expansion of the storage space, that is, automatic expansion will not cause the total storage space of the instance to exceed this value. Unit: GB. The value must be ≥0.\n\n\u003e **NOTE:** Because of data backup and migration, change DB instance type and storage would cost 15~20 minutes. Please make full preparation before changing them.\n"},"switchTime":{"type":"string","description":"The specific point in time when you want to perform the update. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. The time must be in UTC.\n\n\u003e **NOTE:** This parameter takes effect only when you set the UpgradeTime parameter to SpecifyTime.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"targetMinorVersion":{"type":"string","description":"The minor engine version to which you want to update the instance. If you do not specify this parameter, the instance is updated to the latest minor engine version. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. You must specify the minor engine version in one of the following formats:\n- PostgreSQL: rds_postgres_\u003cMajor engine version\u003e00_\u003cMinor engine version\u003e. Example: rds_postgres_1200_20200830.\n- MySQL: \u003cRDS edition\u003e_\u003cMinor engine version\u003e. Examples: rds_20200229, xcluster_20200229, and xcluster80_20200229. The following RDS editions are supported:\n- rds: The instance runs RDS Basic or High-availability Edition.\n- xcluster: The instance runs MySQL 5.7 on RDS Enterprise Edition.\n- xcluster80: The instance runs MySQL 8.0 on RDS Enterprise Edition.\n- SQLServer: \u003cMinor engine version\u003e. Example: 15.0.4073.23.\n\n\u003e **NOTE:** For more information about minor engine versions, see Release notes of minor AliPG versions, Release notes of minor AliSQL versions, and Release notes of minor engine versions of ApsaraDB RDS for SQL Server.\n"},"tcpConnectionType":{"type":"string","description":"The availability check method of the instance. Valid values:\n- **SHORT**: Alibaba Cloud uses short-lived connections to check the availability of the instance.\n- **LONG**: Alibaba Cloud uses persistent connections to check the availability of the instance.\n"},"tdeStatus":{"type":"string","description":"The TDE(Transparent Data Encryption) status. See more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26256.htm).\n","willReplaceOnChanges":true},"upgradeDbInstanceKernelVersion":{"type":"boolean","description":"Whether to upgrade a minor version of the kernel. Valid values:\n- true: upgrade\n- false: not to upgrade\n"},"upgradeTime":{"type":"string","description":"The method to update the minor engine version. Default value: Immediate. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. Valid values:\n- Immediate: The minor engine version is immediately updated.\n- MaintainTime: The minor engine version is updated during the maintenance window. For more information about how to change the maintenance window, see ModifyDBInstanceMaintainTime.\n- SpecifyTime: The minor engine version is updated at the point in time you specify.\n"},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n\n\u003e **NOTE:** This parameter applies only to ApsaraDB RDS for MySQL instances. For more information about Upgrade the major engine version of an ApsaraDB RDS for MySQL instance, see [Upgrade the major engine version of an RDS instance in the ApsaraDB RDS console](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/upgrade-the-major-engine-version-of-an-apsaradb-rds-for-mysql-instance-1).\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC. If there are multiple vswitches, separate them with commas.\n","willReplaceOnChanges":true},"whitelistNetworkType":{"type":"string","description":"The network type of the IP address whitelist. Default value: MIX. Valid values:\n- Classic: classic network in enhanced whitelist mode\n- VPC: virtual private cloud (VPC) in enhanced whitelist mode\n- MIX: standard whitelist mode\n\n\u003e **NOTE:** In standard whitelist mode, IP addresses and CIDR blocks can be added only to the default IP address whitelist. In enhanced whitelist mode, IP addresses and CIDR blocks can be added to both IP address whitelists of the classic network type and those of the VPC network type.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB instance. It supports multiple zone.\nIf it is a multi-zone and \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified, the vswitch must in the one of them.\nThe multiple zone ID can be retrieved by setting \u003cspan pulumi-lang-nodejs=\"`multi`\" pulumi-lang-dotnet=\"`Multi`\" pulumi-lang-go=\"`multi`\" pulumi-lang-python=\"`multi`\" pulumi-lang-yaml=\"`multi`\" pulumi-lang-java=\"`multi`\"\u003e`multi`\u003c/span\u003e to \"true\" in the data source \u003cspan pulumi-lang-nodejs=\"`alicloud.getZones`\" pulumi-lang-dotnet=\"`alicloud.getZones`\" pulumi-lang-go=\"`getZones`\" pulumi-lang-python=\"`get_zones`\" pulumi-lang-yaml=\"`alicloud.getZones`\" pulumi-lang-java=\"`alicloud.getZones`\"\u003e`alicloud.getZones`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["engine","engineVersion","instanceStorage","instanceType","paymentType","restoreType"],"stateInputs":{"description":"Input properties used for looking up and filtering DdrInstance resources.\n","properties":{"acl":{"type":"string","description":"The method that is used to verify the identities of clients. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"autoRenew":{"type":"boolean","description":"Whether to renewal a DB instance automatically or not. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an instance, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Valid value:[1~12], Default to 1.\n"},"autoUpgradeMinorVersion":{"type":"string","description":"The upgrade method to use. Valid values:\n- Auto: Instances are automatically upgraded to a higher minor version.\n- Manual: Instances are forcibly upgraded to a higher minor version when the current version is unpublished.\n\nSee more [details and limitation](https://www.alibabacloud.com/help/doc-detail/123605.htm).\n"},"backupSetId":{"type":"string","description":"The ID of the backup set that is used for the restoration. You can call the DescribeCrossRegionBackups operation to query the ID of the backup set.\n","willReplaceOnChanges":true},"caType":{"type":"string","description":"The type of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the SSLEnabled parameter to 1, the default value of this parameter is aliyun. Value range:\n- aliyun: a cloud certificate\n- custom: a custom certificate\n"},"category":{"type":"string","description":"The RDS edition of the instance.\n"},"clientCaCert":{"type":"string","description":"The public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCAEbabled parameter to 1, you must also specify this parameter.\n"},"clientCaEnabled":{"type":"integer","description":"Specifies whether to enable the public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. Valid values:\n- 1: enables the public key\n- 0: disables the public key\n"},"clientCertRevocationList":{"type":"string","description":"The CRL that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCrlEnabled parameter to 1, you must also specify this parameter.\n"},"clientCrlEnabled":{"type":"integer","description":"Specifies whether to enable a certificate revocation list (CRL) that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- 1: enables the CRL\n- 0: disables the CRL\n"},"connectionString":{"type":"string","description":"RDS database connection string.\n"},"connectionStringPrefix":{"type":"string","description":"The private connection string prefix. If you want to update public connection string prefix, please use resource\u003cspan pulumi-lang-nodejs=\" alicloud.rds.Connection \" pulumi-lang-dotnet=\" alicloud.rds.Connection \" pulumi-lang-go=\" rds.Connection \" pulumi-lang-python=\" rds.Connection \" pulumi-lang-yaml=\" alicloud.rds.Connection \" pulumi-lang-java=\" alicloud.rds.Connection \"\u003e alicloud.rds.Connection \u003c/span\u003econnection_prefix. \n\u003e **NOTE:** The prefix must be 8 to 64 characters in length and can contain letters, digits, and hyphens (-). It cannot contain Chinese characters and special characters ~!#%^\u0026*=+\\|{};:'\",\u003c\u003e/?\n"},"dbInstanceIpArrayAttribute":{"type":"string","description":"The attribute of the IP address whitelist. By default, this parameter is empty.\n\n\u003e **NOTE:** The IP address whitelists that have the hidden attribute are not displayed in the ApsaraDB RDS console. These IP address whitelists are used to access Alibaba Cloud services, such as Data Transmission Service (DTS).\n"},"dbInstanceIpArrayName":{"type":"string","description":"The name of the IP address whitelist. Default value: Default.\n\n\u003e **NOTE:** A maximum of 200 IP address whitelists can be configured for each instance.\n"},"dbInstanceStorageType":{"type":"string","description":"The storage type of the instance. Valid values:\n- local_ssd: specifies to use local SSDs. This value is recommended.\n- cloud_ssd: specifies to use standard SSDs.\n- cloud_essd: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd2: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd3: specifies to use enhanced SSDs (ESSDs).\n\n\u003e **NOTE:** You can specify the time zone when you create a primary instance. You cannot specify the time zone when you create a read-only instance. Read-only instances inherit the time zone of their primary instance. If you do not specify this parameter, the system assigns the default time zone of the region where the instance resides.\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. Valid values: \n- true: delete protect.\n- false: no delete protect.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`deletionProtection`\" pulumi-lang-dotnet=\"`DeletionProtection`\" pulumi-lang-go=\"`deletionProtection`\" pulumi-lang-python=\"`deletion_protection`\" pulumi-lang-yaml=\"`deletionProtection`\" pulumi-lang-java=\"`deletionProtection`\"\u003e`deletion_protection`\u003c/span\u003e is valid only when attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, supported engine type: **MySQL**, **PostgreSQL**, **MariaDB**, **MSSQL**.\n"},"effectiveTime":{"type":"string","description":"The method to update the engine version and change.  Default value: Immediate. Valid values:\n- Immediate: The change immediately takes effect.\n- MaintainTime: The change takes effect during the specified maintenance window. For more information, see ModifyDBInstanceMaintainTime.\n"},"encryptionKey":{"type":"string","description":"The key id of the KMS. Used for encrypting a disk if not null. Only for PostgreSQL, MySQL and SQLServer.\n"},"engine":{"type":"string","description":"Database type. Value options: MySQL, SQLServer.\n\n\u003e **NOTE:** When the 'EngineVersion' changes, it can be used as the target database version for the large version upgrade of RDS for MySQL instance.\n","willReplaceOnChanges":true},"engineVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDdrInstance](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/restore-data-to-a-new-instance-across-regions) `EngineVersion`.\n"},"forceRestart":{"type":"boolean","description":"Set it to true to make some parameter efficient when modifying them. Default to false.\n"},"freshWhiteListReadins":{"type":"string","description":"The read-only instances to which you want to synchronize the IP address whitelist.\n* If the instance is attached with a read-only instance, you can use this parameter to synchronize the IP address whitelist to the read-only instance. If the instance is attached with multiple read-only instances, the read-only instances must be separated by commas (,).\n* If the instance is not attached with a read-only instance, this parameter is empty.\n"},"haConfig":{"type":"string","description":"The primary/secondary switchover mode of the instance. Default value: Auto. Valid values:\n- Auto: The system automatically switches over services from the primary to secondary instances in the event of a fault.\n- Manual: You must manually switch over services from the primary to secondary instances in the event of a fault.\n\n\u003e **NOTE:** If you set this parameter to Manual, you must specify the ManualHATime parameter.\n"},"instanceName":{"type":"string","description":"The name of DB instance. It a string of 2 to 256 characters.\n"},"instanceStorage":{"type":"integer","description":"The storage capacity of the destination instance. Valid values: 5 to 2000. Unit: GB.\n\nThis value must be a multiple of 5 GB. For more information, see Primary ApsaraDB RDS instance types.\n"},"instanceType":{"type":"string","description":"DB Instance type.\n\n\u003e **NOTE:** When `storage_auto_scale=\"Enable\"`, do not perform \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e check. when `storage_auto_scale=\"Disable\"`, if the instance itself \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003ehas changed. You need to manually revise the \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e in the template value.\n"},"maintainTime":{"type":"string","description":"Maintainable time period format of the instance: HH:MMZ-HH:MMZ (UTC time)\n"},"manualHaTime":{"type":"string","description":"The time after when you want to enable automatic primary/secondary switchover. At most, you can set this parameter to 23:59:59 seven days later. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n\n\u003e **NOTE:** This parameter only takes effect when the HAConfig parameter is set to Manual.\n"},"modifyMode":{"type":"string","description":"The method that is used to modify the IP address whitelist. Default value: Cover. Valid values:\n- Cover: Use the value of the SecurityIps parameter to overwrite the existing entries in the IP address whitelist.\n- Append: Add the IP addresses and CIDR blocks that are specified in the SecurityIps parameter to the IP address whitelist.\n- Delete: Delete IP addresses and CIDR blocks that are specified in the SecurityIps parameter from the IP address whitelist. You must retain at least one IP address or CIDR block.\n"},"monitoringPeriod":{"type":"integer","description":"The monitoring frequency in seconds. Valid values are 5, 60, 300. Defaults to 300.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:rds/DdrInstanceParameter:DdrInstanceParameter"},"description":"Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm) . See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"paymentType":{"type":"string","description":"Valid values are `Subscription`, `PayAsYouGo`, Default to `PayAsYouGo`.\n"},"period":{"type":"integer","description":"The duration that you will buy DB instance (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Valid values: [1~9], 12, 24, 36.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"pgHbaConfs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/DdrInstancePgHbaConf:DdrInstancePgHbaConf"},"description":"The configuration of [AD domain](https://www.alibabacloud.com/help/en/doc-detail/349288.htm) . See \u003cspan pulumi-lang-nodejs=\"`pgHbaConf`\" pulumi-lang-dotnet=\"`PgHbaConf`\" pulumi-lang-go=\"`pgHbaConf`\" pulumi-lang-python=\"`pg_hba_conf`\" pulumi-lang-yaml=\"`pgHbaConf`\" pulumi-lang-java=\"`pgHbaConf`\"\u003e`pg_hba_conf`\u003c/span\u003e below.\n"},"port":{"type":"string","description":"The private port of the database service. If you want to update public port, please use resource\u003cspan pulumi-lang-nodejs=\" alicloud.rds.Connection \" pulumi-lang-dotnet=\" alicloud.rds.Connection \" pulumi-lang-go=\" rds.Connection \" pulumi-lang-python=\" rds.Connection \" pulumi-lang-yaml=\" alicloud.rds.Connection \" pulumi-lang-java=\" alicloud.rds.Connection \"\u003e alicloud.rds.Connection \u003c/span\u003eport.\n"},"privateIpAddress":{"type":"string","description":"The private IP address of the instance. The private IP address must be within the Classless Inter-Domain Routing (CIDR) block of the vSwitch that is specified by the VSwitchId parameter.\n"},"releasedKeepPolicy":{"type":"string","description":"The policy based on which ApsaraDB RDS retains archived backup files after the instance is released. Valid values:\n- None: No archived backup files are retained.\n- Lastest: Only the last archived backup file is retained.\n- All: All the archived backup files are retained.\n\n\u003e **NOTE:** This parameter is supported only when the instance runs the MySQL database engine.\n"},"replicationAcl":{"type":"string","description":"The method that is used to verify the replication permission. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the DB instance belongs.\n"},"restoreTime":{"type":"string","description":"The point in time to which you want to restore data. The point in time that you specify must be earlier than the current time. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n","willReplaceOnChanges":true},"restoreType":{"type":"string","description":"The method that is used to restore data. Valid values:\n- BackupSet: Data is restored from a backup set. If you use this value, you must also specify the BackupSetID parameter.\n- BackupTime: restores data to a point in time. You must also specify the RestoreTime, SourceRegion, and SourceDBInstanceName parameters.\n","willReplaceOnChanges":true},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":") The list IDs to join ECS Security Group. At most supports three security groups.\n"},"securityIpMode":{"type":"string","description":"Valid values are \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`safety`\" pulumi-lang-dotnet=\"`Safety`\" pulumi-lang-go=\"`safety`\" pulumi-lang-python=\"`safety`\" pulumi-lang-yaml=\"`safety`\" pulumi-lang-java=\"`safety`\"\u003e`safety`\u003c/span\u003e, Default to \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e. support \u003cspan pulumi-lang-nodejs=\"`safety`\" pulumi-lang-dotnet=\"`Safety`\" pulumi-lang-go=\"`safety`\" pulumi-lang-python=\"`safety`\" pulumi-lang-yaml=\"`safety`\" pulumi-lang-java=\"`safety`\"\u003e`safety`\u003c/span\u003e switch to high security access mode.\n"},"securityIpType":{"type":"string","description":"The type of IP address in the IP address whitelist.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"serverCert":{"type":"string","description":"The content of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter.\n"},"serverKey":{"type":"string","description":"The private key of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter.\n"},"sourceDbInstanceName":{"type":"string","description":"The ID of the source instance if you want to restore data to a point in time.\n","willReplaceOnChanges":true},"sourceRegion":{"type":"string","description":"The region ID of the source instance if you want to restore data to a point in time.\n","willReplaceOnChanges":true},"sqlCollectorConfigValue":{"type":"integer","description":"The sql collector keep time of the instance. Valid values are \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1095`\" pulumi-lang-dotnet=\"`1095`\" pulumi-lang-go=\"`1095`\" pulumi-lang-python=\"`1095`\" pulumi-lang-yaml=\"`1095`\" pulumi-lang-java=\"`1095`\"\u003e`1095`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1825`\" pulumi-lang-dotnet=\"`1825`\" pulumi-lang-go=\"`1825`\" pulumi-lang-python=\"`1825`\" pulumi-lang-yaml=\"`1825`\" pulumi-lang-java=\"`1825`\"\u003e`1825`\u003c/span\u003e, Default to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n"},"sqlCollectorStatus":{"type":"string","description":"The sql collector status of the instance. Valid values are `Enabled`, `Disabled`, Default to `Disabled`.\n"},"sslAction":{"type":"string","description":"Actions performed on SSL functions, Valid values: `Open`: turn on SSL encryption; `Close`: turn off SSL encryption; `Update`: update SSL certificate. See more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26254.htm).\n"},"sslStatus":{"type":"string","description":"Status of the SSL feature. `Yes`: SSL is turned on; `No`: SSL is turned off.\n"},"storageAutoScale":{"type":"string","description":"Automatic storage space expansion switch. Valid values:\n- Enable\n- Disable\n\n\u003e **NOTE:** This parameter only takes effect when the StorageAutoScale parameter is set to Enable.\n"},"storageThreshold":{"type":"integer","description":"The trigger threshold (percentage) for automatic storage space expansion. Valid values:\n- 10\n- 20\n- 30\n- 40\n- 50\n\n\u003e **NOTE:** This parameter only takes effect when the StorageAutoScale parameter is set to Enable. The value must be greater than or equal to the total size of the current storage space of the instance.\n"},"storageUpperBound":{"type":"integer","description":"The upper limit of the total storage space for automatic expansion of the storage space, that is, automatic expansion will not cause the total storage space of the instance to exceed this value. Unit: GB. The value must be ≥0.\n\n\u003e **NOTE:** Because of data backup and migration, change DB instance type and storage would cost 15~20 minutes. Please make full preparation before changing them.\n"},"switchTime":{"type":"string","description":"The specific point in time when you want to perform the update. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. The time must be in UTC.\n\n\u003e **NOTE:** This parameter takes effect only when you set the UpgradeTime parameter to SpecifyTime.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"targetMinorVersion":{"type":"string","description":"The minor engine version to which you want to update the instance. If you do not specify this parameter, the instance is updated to the latest minor engine version. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. You must specify the minor engine version in one of the following formats:\n- PostgreSQL: rds_postgres_\u003cMajor engine version\u003e00_\u003cMinor engine version\u003e. Example: rds_postgres_1200_20200830.\n- MySQL: \u003cRDS edition\u003e_\u003cMinor engine version\u003e. Examples: rds_20200229, xcluster_20200229, and xcluster80_20200229. The following RDS editions are supported:\n- rds: The instance runs RDS Basic or High-availability Edition.\n- xcluster: The instance runs MySQL 5.7 on RDS Enterprise Edition.\n- xcluster80: The instance runs MySQL 8.0 on RDS Enterprise Edition.\n- SQLServer: \u003cMinor engine version\u003e. Example: 15.0.4073.23.\n\n\u003e **NOTE:** For more information about minor engine versions, see Release notes of minor AliPG versions, Release notes of minor AliSQL versions, and Release notes of minor engine versions of ApsaraDB RDS for SQL Server.\n"},"tcpConnectionType":{"type":"string","description":"The availability check method of the instance. Valid values:\n- **SHORT**: Alibaba Cloud uses short-lived connections to check the availability of the instance.\n- **LONG**: Alibaba Cloud uses persistent connections to check the availability of the instance.\n"},"tdeStatus":{"type":"string","description":"The TDE(Transparent Data Encryption) status. See more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26256.htm).\n","willReplaceOnChanges":true},"upgradeDbInstanceKernelVersion":{"type":"boolean","description":"Whether to upgrade a minor version of the kernel. Valid values:\n- true: upgrade\n- false: not to upgrade\n"},"upgradeTime":{"type":"string","description":"The method to update the minor engine version. Default value: Immediate. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. Valid values:\n- Immediate: The minor engine version is immediately updated.\n- MaintainTime: The minor engine version is updated during the maintenance window. For more information about how to change the maintenance window, see ModifyDBInstanceMaintainTime.\n- SpecifyTime: The minor engine version is updated at the point in time you specify.\n"},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n\n\u003e **NOTE:** This parameter applies only to ApsaraDB RDS for MySQL instances. For more information about Upgrade the major engine version of an ApsaraDB RDS for MySQL instance, see [Upgrade the major engine version of an RDS instance in the ApsaraDB RDS console](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/upgrade-the-major-engine-version-of-an-apsaradb-rds-for-mysql-instance-1).\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC. If there are multiple vswitches, separate them with commas.\n","willReplaceOnChanges":true},"whitelistNetworkType":{"type":"string","description":"The network type of the IP address whitelist. Default value: MIX. Valid values:\n- Classic: classic network in enhanced whitelist mode\n- VPC: virtual private cloud (VPC) in enhanced whitelist mode\n- MIX: standard whitelist mode\n\n\u003e **NOTE:** In standard whitelist mode, IP addresses and CIDR blocks can be added only to the default IP address whitelist. In enhanced whitelist mode, IP addresses and CIDR blocks can be added to both IP address whitelists of the classic network type and those of the VPC network type.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB instance. It supports multiple zone.\nIf it is a multi-zone and \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified, the vswitch must in the one of them.\nThe multiple zone ID can be retrieved by setting \u003cspan pulumi-lang-nodejs=\"`multi`\" pulumi-lang-dotnet=\"`Multi`\" pulumi-lang-go=\"`multi`\" pulumi-lang-python=\"`multi`\" pulumi-lang-yaml=\"`multi`\" pulumi-lang-java=\"`multi`\"\u003e`multi`\u003c/span\u003e to \"true\" in the data source \u003cspan pulumi-lang-nodejs=\"`alicloud.getZones`\" pulumi-lang-dotnet=\"`alicloud.getZones`\" pulumi-lang-go=\"`getZones`\" pulumi-lang-python=\"`get_zones`\" pulumi-lang-yaml=\"`alicloud.getZones`\" pulumi-lang-java=\"`alicloud.getZones`\"\u003e`alicloud.getZones`\u003c/span\u003e.\n","willReplaceOnChanges":true},"zoneIdSlaveA":{"type":"string","description":"The region ID of the secondary instance if you create a secondary instance.\n"},"zoneIdSlaveB":{"type":"string","description":"The region ID of the log instance if you create a log instance.\n"}},"type":"object"}},"alicloud:rds/instance:Instance":{"description":"Provides an RDS instance resource. A DB instance is an isolated database environment in the cloud. A DB instance can contain multiple user-created databases.\n\nFor information about RDS and how to use it, see [What is ApsaraDB for RDS](https://www.alibabacloud.com/help/en/doc-detail/26092.htm).\n\n\u003e **NOTE:** This resource has a fatal bug in the version v1.155.0. If you want to use new feature, please upgrade it to v1.156.0.\n\n\u003e **NOTE:** Available since v1.155.0.\n\n## Example Usage\n\n### Create RDS MySQL instance\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst exampleGetInstanceClasses = example.then(example =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: example.zones?.[0]?.id,\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceChargeType: \"PostPaid\",\n}));\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vpcId: exampleNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n    vswitchName: \"terraform-example\",\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: \"terraform-example\",\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.rds.Instance(\"example\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceType: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    instanceChargeType: \"Postpaid\",\n    instanceName: \"terraform-example\",\n    vswitchId: exampleSwitch.id,\n    monitoringPeriod: 60,\n    dbInstanceStorageType: \"cloud_essd\",\n    securityGroupIds: [exampleSecurityGroup.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=example.zones[0].id,\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_charge_type=\"PostPaid\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vpc_id=example_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=example.zones[0].id,\n    vswitch_name=\"terraform-example\")\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=\"terraform-example\",\n    vpc_id=example_network.id)\nexample_instance = alicloud.rds.Instance(\"example\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_type=example_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=example_get_instance_classes.instance_classes[0].storage_range.min,\n    instance_charge_type=\"Postpaid\",\n    instance_name=\"terraform-example\",\n    vswitch_id=example_switch.id,\n    monitoring_period=60,\n    db_instance_storage_type=\"cloud_essd\",\n    security_group_ids=[example_security_group.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VpcId = exampleNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = \"terraform-example\",\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = \"terraform-example\",\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Rds.Instance(\"example\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceType = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = \"terraform-example\",\n        VswitchId = exampleSwitch.Id,\n        MonitoringPeriod = 60,\n        DbInstanceStorageType = \"cloud_essd\",\n        SecurityGroupIds = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(example.Zones[0].Id),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(\"terraform-example\"),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\tInstanceType:          pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceStorage:       pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\tInstanceName:          pulumi.String(\"terraform-example\"),\n\t\t\tVswitchId:             exampleSwitch.ID(),\n\t\t\tMonitoringPeriod:      pulumi.Int(60),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var exampleGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(example.zones()[0].id())\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vpcId(exampleNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(example.zones()[0].id())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"terraform-example\")\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceType(exampleGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(exampleGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(\"terraform-example\")\n            .vswitchId(exampleSwitch.id())\n            .monitoringPeriod(60)\n            .dbInstanceStorageType(\"cloud_essd\")\n            .securityGroupIds(exampleSecurityGroup.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vpcId: ${exampleNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${example.zones[0].id}\n      vswitchName: terraform-example\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: terraform-example\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:rds:Instance\n    name: example\n    properties:\n      engine: MySQL\n      engineVersion: '8.0'\n      instanceType: ${exampleGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceStorage: ${exampleGetInstanceClasses.instanceClasses[0].storageRange.min}\n      instanceChargeType: Postpaid\n      instanceName: terraform-example\n      vswitchId: ${exampleSwitch.id}\n      monitoringPeriod: '60'\n      dbInstanceStorageType: cloud_essd\n      securityGroupIds:\n        - ${exampleSecurityGroup.id}\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: PostPaid\n        category: Basic\n        dbInstanceStorageType: cloud_essd\n  exampleGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${example.zones[0].id}\n        engine: MySQL\n        engineVersion: '8.0'\n        category: Basic\n        dbInstanceStorageType: cloud_essd\n        instanceChargeType: PostPaid\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a RDS MySQL instance with specific parameters\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst exampleGetInstanceClasses = example.then(example =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: example.zones?.[0]?.id,\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceChargeType: \"PostPaid\",\n}));\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vpcId: exampleNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n    vswitchName: \"terraform-example\",\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: \"terraform-example\",\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.rds.Instance(\"example\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceType: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    instanceChargeType: \"Postpaid\",\n    instanceName: \"terraform-example\",\n    vswitchId: exampleSwitch.id,\n    monitoringPeriod: 60,\n    dbInstanceStorageType: \"cloud_essd\",\n    securityGroupIds: [exampleSecurityGroup.id],\n    parameters: [\n        {\n            name: \"delayed_insert_timeout\",\n            value: \"600\",\n        },\n        {\n            name: \"max_length_for_sort_data\",\n            value: \"2048\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=example.zones[0].id,\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_charge_type=\"PostPaid\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vpc_id=example_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=example.zones[0].id,\n    vswitch_name=\"terraform-example\")\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=\"terraform-example\",\n    vpc_id=example_network.id)\nexample_instance = alicloud.rds.Instance(\"example\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_type=example_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=example_get_instance_classes.instance_classes[0].storage_range.min,\n    instance_charge_type=\"Postpaid\",\n    instance_name=\"terraform-example\",\n    vswitch_id=example_switch.id,\n    monitoring_period=60,\n    db_instance_storage_type=\"cloud_essd\",\n    security_group_ids=[example_security_group.id],\n    parameters=[\n        {\n            \"name\": \"delayed_insert_timeout\",\n            \"value\": \"600\",\n        },\n        {\n            \"name\": \"max_length_for_sort_data\",\n            \"value\": \"2048\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VpcId = exampleNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = \"terraform-example\",\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = \"terraform-example\",\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Rds.Instance(\"example\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceType = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = \"terraform-example\",\n        VswitchId = exampleSwitch.Id,\n        MonitoringPeriod = 60,\n        DbInstanceStorageType = \"cloud_essd\",\n        SecurityGroupIds = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n        Parameters = new[]\n        {\n            new AliCloud.Rds.Inputs.InstanceParameterArgs\n            {\n                Name = \"delayed_insert_timeout\",\n                Value = \"600\",\n            },\n            new AliCloud.Rds.Inputs.InstanceParameterArgs\n            {\n                Name = \"max_length_for_sort_data\",\n                Value = \"2048\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(example.Zones[0].Id),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(\"terraform-example\"),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\tInstanceType:          pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceStorage:       pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\tInstanceName:          pulumi.String(\"terraform-example\"),\n\t\t\tVswitchId:             exampleSwitch.ID(),\n\t\t\tMonitoringPeriod:      pulumi.Int(60),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t\tParameters: rds.InstanceParameterArray{\n\t\t\t\t\u0026rds.InstanceParameterArgs{\n\t\t\t\t\tName:  pulumi.String(\"delayed_insert_timeout\"),\n\t\t\t\t\tValue: pulumi.String(\"600\"),\n\t\t\t\t},\n\t\t\t\t\u0026rds.InstanceParameterArgs{\n\t\t\t\t\tName:  pulumi.String(\"max_length_for_sort_data\"),\n\t\t\t\t\tValue: pulumi.String(\"2048\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.inputs.InstanceParameterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var exampleGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(example.zones()[0].id())\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vpcId(exampleNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(example.zones()[0].id())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"terraform-example\")\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceType(exampleGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(exampleGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(\"terraform-example\")\n            .vswitchId(exampleSwitch.id())\n            .monitoringPeriod(60)\n            .dbInstanceStorageType(\"cloud_essd\")\n            .securityGroupIds(exampleSecurityGroup.id())\n            .parameters(            \n                InstanceParameterArgs.builder()\n                    .name(\"delayed_insert_timeout\")\n                    .value(\"600\")\n                    .build(),\n                InstanceParameterArgs.builder()\n                    .name(\"max_length_for_sort_data\")\n                    .value(\"2048\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vpcId: ${exampleNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${example.zones[0].id}\n      vswitchName: terraform-example\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: terraform-example\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:rds:Instance\n    name: example\n    properties:\n      engine: MySQL\n      engineVersion: '8.0'\n      instanceType: ${exampleGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceStorage: ${exampleGetInstanceClasses.instanceClasses[0].storageRange.min}\n      instanceChargeType: Postpaid\n      instanceName: terraform-example\n      vswitchId: ${exampleSwitch.id}\n      monitoringPeriod: '60'\n      dbInstanceStorageType: cloud_essd\n      securityGroupIds:\n        - ${exampleSecurityGroup.id}\n      parameters:\n        - name: delayed_insert_timeout\n          value: '600'\n        - name: max_length_for_sort_data\n          value: '2048'\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: PostPaid\n        category: Basic\n        dbInstanceStorageType: cloud_essd\n  exampleGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${example.zones[0].id}\n        engine: MySQL\n        engineVersion: '8.0'\n        category: Basic\n        dbInstanceStorageType: cloud_essd\n        instanceChargeType: PostPaid\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Create a High Availability RDS MySQL Instance\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst example = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst exampleGetInstanceClasses = example.then(example =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: example.zones?.[0]?.id,\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceChargeType: \"PostPaid\",\n}));\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleSwitch.push(new alicloud.vpc.Switch(`example-${range.value}`, {\n        vpcId: exampleNetwork.id,\n        cidrBlock: std.format({\n            input: \"172.16.%d.0/24\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        zoneId: example.then(example =\u003e example.zones[range.value].id),\n        vswitchName: std.format({\n            input: \"terraform_example_%d\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: \"terraform-example\",\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.rds.Instance(\"example\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceType: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    instanceChargeType: \"Postpaid\",\n    instanceName: \"terraform-example\",\n    vswitchId: std.joinOutput({\n        separator: \",\",\n        input: exampleSwitch.map(__item =\u003e __item.id),\n    }).apply(invoke =\u003e invoke.result),\n    monitoringPeriod: 60,\n    dbInstanceStorageType: \"cloud_essd\",\n    securityGroupIds: [exampleSecurityGroup.id],\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n    zoneIdSlaveA: example.then(example =\u003e example.zones?.[1]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nexample = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=example.zones[0].id,\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_charge_type=\"PostPaid\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_switch.append(alicloud.vpc.Switch(f\"example-{range['value']}\",\n        vpc_id=example_network.id,\n        cidr_block=std.format(input=\"172.16.%d.0/24\",\n            args=[range[\"value\"] + 1]).result,\n        zone_id=example.zones[range[\"value\"]].id,\n        vswitch_name=std.format(input=\"terraform_example_%d\",\n            args=[range[\"value\"] + 1]).result))\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=\"terraform-example\",\n    vpc_id=example_network.id)\nexample_instance = alicloud.rds.Instance(\"example\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_type=example_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=example_get_instance_classes.instance_classes[0].storage_range.min,\n    instance_charge_type=\"Postpaid\",\n    instance_name=\"terraform-example\",\n    vswitch_id=std.join_output(separator=\",\",\n        input=[__item.id for __item in example_switch]).apply(lambda invoke: invoke.result),\n    monitoring_period=60,\n    db_instance_storage_type=\"cloud_essd\",\n    security_group_ids=[example_security_group.id],\n    zone_id=example.zones[0].id,\n    zone_id_slave_a=example.zones[1].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleSwitch.Add(new AliCloud.Vpc.Switch($\"example-{range.Value}\", new()\n        {\n            VpcId = exampleNetwork.Id,\n            CidrBlock = Std.Format.Invoke(new()\n            {\n                Input = \"172.16.%d.0/24\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones)[range.Value].Id,\n            VswitchName = Std.Format.Invoke(new()\n            {\n                Input = \"terraform_example_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = \"terraform-example\",\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Rds.Instance(\"example\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceType = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = \"terraform-example\",\n        VswitchId = Std.Join.Invoke(new()\n        {\n            Separator = \",\",\n            Input = exampleSwitch.Select(__item =\u003e __item.Id).ToList(),\n        }).Apply(invoke =\u003e invoke.Result),\n        MonitoringPeriod = 60,\n        DbInstanceStorageType = \"cloud_essd\",\n        SecurityGroupIds = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        ZoneIdSlaveA = example.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexample, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\nEngine: pulumi.StringRef(\"MySQL\"),\nEngineVersion: pulumi.StringRef(\"8.0\"),\nInstanceChargeType: pulumi.StringRef(\"PostPaid\"),\nCategory: pulumi.StringRef(\"Basic\"),\nDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n}, nil);\nif err != nil {\nreturn err\n}\nexampleGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\nZoneId: pulumi.StringRef(example.Zones[0].Id),\nEngine: pulumi.StringRef(\"MySQL\"),\nEngineVersion: pulumi.StringRef(\"8.0\"),\nCategory: pulumi.StringRef(\"Basic\"),\nDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\nInstanceChargeType: pulumi.StringRef(\"PostPaid\"),\n}, nil);\nif err != nil {\nreturn err\n}\nexampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(\"terraform-example\"),\nCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ninvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\nInput: \"172.16.%d.0/24\",\nArgs: []float64{\nval0 + 1,\n},\n}, nil)\nif err != nil {\nreturn err\n}\ninvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\nInput: \"terraform_example_%d\",\nArgs: []float64{\nval0 + 1,\n},\n}, nil)\nif err != nil {\nreturn err\n}\nvar exampleSwitch []*vpc.Switch\nfor index := 0; index \u003c 2; index++ {\n    key0 := index\n    val0 := index\n__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026vpc.SwitchArgs{\nVpcId: exampleNetwork.ID(),\nCidrBlock: pulumi.String(invokeFormat.Result),\nZoneId: example.Zones[val0].Id,\nVswitchName: pulumi.String(invokeFormat1.Result),\n})\nif err != nil {\nreturn err\n}\nexampleSwitch = append(exampleSwitch, __res)\n}\nexampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(\"terraform-example\"),\nVpcId: exampleNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\n_, err = rds.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\nEngine: pulumi.String(\"MySQL\"),\nEngineVersion: pulumi.String(\"8.0\"),\nInstanceType: pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].InstanceClass),\nInstanceStorage: pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\nInstanceChargeType: pulumi.String(\"Postpaid\"),\nInstanceName: pulumi.String(\"terraform-example\"),\nVswitchId: pulumi.String(std.JoinOutput(ctx, std.JoinOutputArgs{\nSeparator: pulumi.String(\",\"),\nInput: %!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:56,17-36),\n}, nil).ApplyT(func(invoke std.JoinResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\nMonitoringPeriod: pulumi.Int(60),\nDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\nSecurityGroupIds: pulumi.StringArray{\nexampleSecurityGroup.ID(),\n},\nZoneId: pulumi.String(example.Zones[0].Id),\nZoneIdSlaveA: pulumi.String(example.Zones[1].Id),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.std.inputs.JoinArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var exampleGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(example.zones()[0].id())\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Switch(\"exampleSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(exampleNetwork.id())\n                .cidrBlock(StdFunctions.format(FormatArgs.builder()\n                    .input(\"172.16.%d.0/24\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .zoneId(example.zones()[range.value()].id())\n                .vswitchName(StdFunctions.format(FormatArgs.builder()\n                    .input(\"terraform_example_%d\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .build());\n\n        \n}\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"terraform-example\")\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceType(exampleGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(exampleGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(\"terraform-example\")\n            .vswitchId(StdFunctions.join(JoinArgs.builder()\n                .separator(\",\")\n                .input(exampleSwitch.stream().map(element -\u003e element.id()).collect(toList()))\n                .build()).applyValue(_invoke -\u003e _invoke.result()))\n            .monitoringPeriod(60)\n            .dbInstanceStorageType(\"cloud_essd\")\n            .securityGroupIds(exampleSecurityGroup.id())\n            .zoneId(example.zones()[0].id())\n            .zoneIdSlaveA(example.zones()[1].id())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a High Availability RDS MySQL Instance with multi zones\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst example = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"HighAvailability\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst exampleGetInstanceClasses = example.then(example =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: example.zones?.[0]?.id,\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    category: \"HighAvailability\",\n    instanceChargeType: \"PostPaid\",\n    dbInstanceStorageType: \"cloud_essd\",\n}));\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleSwitch.push(new alicloud.vpc.Switch(`example-${range.value}`, {\n        vpcId: exampleNetwork.id,\n        cidrBlock: std.format({\n            input: \"172.16.%d.0/24\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        zoneId: example.then(example =\u003e example.zones[range.value].id),\n        vswitchName: std.format({\n            input: \"%s_%d\",\n            args: [\n                name,\n                range.value,\n            ],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: name,\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.rds.Instance(\"example\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    category: \"HighAvailability\",\n    instanceType: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    instanceChargeType: \"Postpaid\",\n    instanceName: name,\n    vswitchId: std.joinOutput({\n        separator: \",\",\n        input: exampleSwitch.map(__item =\u003e __item.id),\n    }).apply(invoke =\u003e invoke.result),\n    monitoringPeriod: 60,\n    dbInstanceStorageType: \"cloud_essd\",\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n    zoneIdSlaveA: example.then(example =\u003e example.zones?.[1]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\nexample = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"HighAvailability\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=example.zones[0].id,\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    category=\"HighAvailability\",\n    instance_charge_type=\"PostPaid\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_switch.append(alicloud.vpc.Switch(f\"example-{range['value']}\",\n        vpc_id=example_network.id,\n        cidr_block=std.format(input=\"172.16.%d.0/24\",\n            args=[range[\"value\"] + 1]).result,\n        zone_id=example.zones[range[\"value\"]].id,\n        vswitch_name=std.format(input=\"%s_%d\",\n            args=[\n                name,\n                range[\"value\"],\n            ]).result))\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=name,\n    vpc_id=example_network.id)\nexample_instance = alicloud.rds.Instance(\"example\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    category=\"HighAvailability\",\n    instance_type=example_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=example_get_instance_classes.instance_classes[0].storage_range.min,\n    instance_charge_type=\"Postpaid\",\n    instance_name=name,\n    vswitch_id=std.join_output(separator=\",\",\n        input=[__item.id for __item in example_switch]).apply(lambda invoke: invoke.result),\n    monitoring_period=60,\n    db_instance_storage_type=\"cloud_essd\",\n    zone_id=example.zones[0].id,\n    zone_id_slave_a=example.zones[1].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var example = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"HighAvailability\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        Category = \"HighAvailability\",\n        InstanceChargeType = \"PostPaid\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleSwitch.Add(new AliCloud.Vpc.Switch($\"example-{range.Value}\", new()\n        {\n            VpcId = exampleNetwork.Id,\n            CidrBlock = Std.Format.Invoke(new()\n            {\n                Input = \"172.16.%d.0/24\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones)[range.Value].Id,\n            VswitchName = Std.Format.Invoke(new()\n            {\n                Input = \"%s_%d\",\n                Args = new[]\n                {\n                    name,\n                    range.Value,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = name,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Rds.Instance(\"example\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        Category = \"HighAvailability\",\n        InstanceType = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = name,\n        VswitchId = Std.Join.Invoke(new()\n        {\n            Separator = \",\",\n            Input = exampleSwitch.Select(__item =\u003e __item.Id).ToList(),\n        }).Apply(invoke =\u003e invoke.Result),\n        MonitoringPeriod = 60,\n        DbInstanceStorageType = \"cloud_essd\",\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        ZoneIdSlaveA = example.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"tf_example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nexample, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\nEngine: pulumi.StringRef(\"MySQL\"),\nEngineVersion: pulumi.StringRef(\"8.0\"),\nInstanceChargeType: pulumi.StringRef(\"PostPaid\"),\nCategory: pulumi.StringRef(\"HighAvailability\"),\nDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n}, nil);\nif err != nil {\nreturn err\n}\nexampleGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\nZoneId: pulumi.StringRef(example.Zones[0].Id),\nEngine: pulumi.StringRef(\"MySQL\"),\nEngineVersion: pulumi.StringRef(\"8.0\"),\nCategory: pulumi.StringRef(\"HighAvailability\"),\nInstanceChargeType: pulumi.StringRef(\"PostPaid\"),\nDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n}, nil);\nif err != nil {\nreturn err\n}\nexampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ninvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\nInput: \"172.16.%d.0/24\",\nArgs: []float64{\nval0 + 1,\n},\n}, nil)\nif err != nil {\nreturn err\n}\ninvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\nInput: \"%s_%d\",\nArgs: []interface{}{\nname,\nval0,\n},\n}, nil)\nif err != nil {\nreturn err\n}\nvar exampleSwitch []*vpc.Switch\nfor index := 0; index \u003c 2; index++ {\n    key0 := index\n    val0 := index\n__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026vpc.SwitchArgs{\nVpcId: exampleNetwork.ID(),\nCidrBlock: pulumi.String(invokeFormat.Result),\nZoneId: example.Zones[val0].Id,\nVswitchName: pulumi.String(invokeFormat1.Result),\n})\nif err != nil {\nreturn err\n}\nexampleSwitch = append(exampleSwitch, __res)\n}\n_, err = ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(name),\nVpcId: exampleNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\n_, err = rds.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\nEngine: pulumi.String(\"MySQL\"),\nEngineVersion: pulumi.String(\"8.0\"),\nCategory: pulumi.String(\"HighAvailability\"),\nInstanceType: pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].InstanceClass),\nInstanceStorage: pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\nInstanceChargeType: pulumi.String(\"Postpaid\"),\nInstanceName: pulumi.String(name),\nVswitchId: pulumi.String(std.JoinOutput(ctx, std.JoinOutputArgs{\nSeparator: pulumi.String(\",\"),\nInput: %!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:61,17-36),\n}, nil).ApplyT(func(invoke std.JoinResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\nMonitoringPeriod: pulumi.Int(60),\nDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\nZoneId: pulumi.String(example.Zones[0].Id),\nZoneIdSlaveA: pulumi.String(example.Zones[1].Id),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.std.inputs.JoinArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var example = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"HighAvailability\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var exampleGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(example.zones()[0].id())\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .category(\"HighAvailability\")\n            .instanceChargeType(\"PostPaid\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Switch(\"exampleSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(exampleNetwork.id())\n                .cidrBlock(StdFunctions.format(FormatArgs.builder()\n                    .input(\"172.16.%d.0/24\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .zoneId(example.zones()[range.value()].id())\n                .vswitchName(StdFunctions.format(FormatArgs.builder()\n                    .input(\"%s_%d\")\n                    .args(                    \n                        name,\n                        range.value())\n                    .build()).result())\n                .build());\n\n        \n}\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .category(\"HighAvailability\")\n            .instanceType(exampleGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(exampleGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(name)\n            .vswitchId(StdFunctions.join(JoinArgs.builder()\n                .separator(\",\")\n                .input(exampleSwitch.stream().map(element -\u003e element.id()).collect(toList()))\n                .build()).applyValue(_invoke -\u003e _invoke.result()))\n            .monitoringPeriod(60)\n            .dbInstanceStorageType(\"cloud_essd\")\n            .zoneId(example.zones()[0].id())\n            .zoneIdSlaveA(example.zones()[1].id())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create an Enterprise Edition RDS MySQL Instance\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst example = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    dbInstanceStorageType: \"local_ssd\",\n});\nconst exampleGetInstanceClasses = example.then(example =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: example.zones?.[0]?.id,\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    dbInstanceStorageType: \"local_ssd\",\n    instanceChargeType: \"PostPaid\",\n}));\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleSwitch.push(new alicloud.vpc.Switch(`example-${range.value}`, {\n        vpcId: exampleNetwork.id,\n        cidrBlock: std.format({\n            input: \"172.16.%d.0/24\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        zoneId: example.then(example =\u003e example.zones[range.value].id),\n        vswitchName: std.format({\n            input: \"%s_%d\",\n            args: [\n                name,\n                range.value,\n            ],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: name,\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.rds.Instance(\"example\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    category: \"Finance\",\n    instanceType: \"mysql.n2.xlarge.25\",\n    instanceStorage: 20,\n    instanceChargeType: \"Postpaid\",\n    instanceName: name,\n    vswitchId: std.joinOutput({\n        separator: \",\",\n        input: exampleSwitch.map(__item =\u003e __item.id),\n    }).apply(invoke =\u003e invoke.result),\n    monitoringPeriod: 60,\n    dbInstanceStorageType: \"local_ssd\",\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n    zoneIdSlaveA: example.then(example =\u003e example.zones?.[1]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nexample = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    db_instance_storage_type=\"local_ssd\")\nexample_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=example.zones[0].id,\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    db_instance_storage_type=\"local_ssd\",\n    instance_charge_type=\"PostPaid\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_switch.append(alicloud.vpc.Switch(f\"example-{range['value']}\",\n        vpc_id=example_network.id,\n        cidr_block=std.format(input=\"172.16.%d.0/24\",\n            args=[range[\"value\"] + 1]).result,\n        zone_id=example.zones[range[\"value\"]].id,\n        vswitch_name=std.format(input=\"%s_%d\",\n            args=[\n                name,\n                range[\"value\"],\n            ]).result))\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=name,\n    vpc_id=example_network.id)\nexample_instance = alicloud.rds.Instance(\"example\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    category=\"Finance\",\n    instance_type=\"mysql.n2.xlarge.25\",\n    instance_storage=20,\n    instance_charge_type=\"Postpaid\",\n    instance_name=name,\n    vswitch_id=std.join_output(separator=\",\",\n        input=[__item.id for __item in example_switch]).apply(lambda invoke: invoke.result),\n    monitoring_period=60,\n    db_instance_storage_type=\"local_ssd\",\n    zone_id=example.zones[0].id,\n    zone_id_slave_a=example.zones[1].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var example = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        DbInstanceStorageType = \"local_ssd\",\n    });\n\n    var exampleGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        DbInstanceStorageType = \"local_ssd\",\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleSwitch.Add(new AliCloud.Vpc.Switch($\"example-{range.Value}\", new()\n        {\n            VpcId = exampleNetwork.Id,\n            CidrBlock = Std.Format.Invoke(new()\n            {\n                Input = \"172.16.%d.0/24\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones)[range.Value].Id,\n            VswitchName = Std.Format.Invoke(new()\n            {\n                Input = \"%s_%d\",\n                Args = new[]\n                {\n                    name,\n                    range.Value,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = name,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Rds.Instance(\"example\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        Category = \"Finance\",\n        InstanceType = \"mysql.n2.xlarge.25\",\n        InstanceStorage = 20,\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = name,\n        VswitchId = Std.Join.Invoke(new()\n        {\n            Separator = \",\",\n            Input = exampleSwitch.Select(__item =\u003e __item.Id).ToList(),\n        }).Apply(invoke =\u003e invoke.Result),\n        MonitoringPeriod = 60,\n        DbInstanceStorageType = \"local_ssd\",\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        ZoneIdSlaveA = example.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"tf-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nexample, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\nEngine: pulumi.StringRef(\"MySQL\"),\nEngineVersion: pulumi.StringRef(\"8.0\"),\nInstanceChargeType: pulumi.StringRef(\"PostPaid\"),\nDbInstanceStorageType: pulumi.StringRef(\"local_ssd\"),\n}, nil);\nif err != nil {\nreturn err\n}\n_, err = rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\nZoneId: pulumi.StringRef(example.Zones[0].Id),\nEngine: pulumi.StringRef(\"MySQL\"),\nEngineVersion: pulumi.StringRef(\"8.0\"),\nDbInstanceStorageType: pulumi.StringRef(\"local_ssd\"),\nInstanceChargeType: pulumi.StringRef(\"PostPaid\"),\n}, nil);\nif err != nil {\nreturn err\n}\nexampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ninvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\nInput: \"172.16.%d.0/24\",\nArgs: []float64{\nval0 + 1,\n},\n}, nil)\nif err != nil {\nreturn err\n}\ninvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\nInput: \"%s_%d\",\nArgs: []interface{}{\nname,\nval0,\n},\n}, nil)\nif err != nil {\nreturn err\n}\nvar exampleSwitch []*vpc.Switch\nfor index := 0; index \u003c 2; index++ {\n    key0 := index\n    val0 := index\n__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026vpc.SwitchArgs{\nVpcId: exampleNetwork.ID(),\nCidrBlock: pulumi.String(invokeFormat.Result),\nZoneId: example.Zones[val0].Id,\nVswitchName: pulumi.String(invokeFormat1.Result),\n})\nif err != nil {\nreturn err\n}\nexampleSwitch = append(exampleSwitch, __res)\n}\n_, err = ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(name),\nVpcId: exampleNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\n_, err = rds.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\nEngine: pulumi.String(\"MySQL\"),\nEngineVersion: pulumi.String(\"8.0\"),\nCategory: pulumi.String(\"Finance\"),\nInstanceType: pulumi.String(\"mysql.n2.xlarge.25\"),\nInstanceStorage: pulumi.Int(20),\nInstanceChargeType: pulumi.String(\"Postpaid\"),\nInstanceName: pulumi.String(name),\nVswitchId: pulumi.String(std.JoinOutput(ctx, std.JoinOutputArgs{\nSeparator: pulumi.String(\",\"),\nInput: %!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:59,17-36),\n}, nil).ApplyT(func(invoke std.JoinResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\nMonitoringPeriod: pulumi.Int(60),\nDbInstanceStorageType: pulumi.String(\"local_ssd\"),\nZoneId: pulumi.String(example.Zones[0].Id),\nZoneIdSlaveA: pulumi.String(example.Zones[1].Id),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.std.inputs.JoinArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var example = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .dbInstanceStorageType(\"local_ssd\")\n            .build());\n\n        final var exampleGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(example.zones()[0].id())\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .dbInstanceStorageType(\"local_ssd\")\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Switch(\"exampleSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(exampleNetwork.id())\n                .cidrBlock(StdFunctions.format(FormatArgs.builder()\n                    .input(\"172.16.%d.0/24\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .zoneId(example.zones()[range.value()].id())\n                .vswitchName(StdFunctions.format(FormatArgs.builder()\n                    .input(\"%s_%d\")\n                    .args(                    \n                        name,\n                        range.value())\n                    .build()).result())\n                .build());\n\n        \n}\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .category(\"Finance\")\n            .instanceType(\"mysql.n2.xlarge.25\")\n            .instanceStorage(20)\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(name)\n            .vswitchId(StdFunctions.join(JoinArgs.builder()\n                .separator(\",\")\n                .input(exampleSwitch.stream().map(element -\u003e element.id()).collect(toList()))\n                .build()).applyValue(_invoke -\u003e _invoke.result()))\n            .monitoringPeriod(60)\n            .dbInstanceStorageType(\"local_ssd\")\n            .zoneId(example.zones()[0].id())\n            .zoneIdSlaveA(example.zones()[1].id())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a Serverless RDS MySQL Instance\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-accdbinstance\";\nconst example = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"Serverless\",\n    category: \"serverless_basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst exampleGetInstanceClasses = example.then(example =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: example.ids?.[1],\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    category: \"serverless_basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceChargeType: \"Serverless\",\n    commodityCode: \"rds_serverless_public_cn\",\n}));\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vpcId: exampleNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: example.then(example =\u003e example.ids?.[1]),\n    vswitchName: name,\n});\nconst exampleInstance = new alicloud.rds.Instance(\"example\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceStorage: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    instanceType: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceChargeType: \"Serverless\",\n    instanceName: name,\n    zoneId: example.then(example =\u003e example.ids?.[1]),\n    vswitchId: exampleSwitch.id,\n    dbInstanceStorageType: \"cloud_essd\",\n    category: \"serverless_basic\",\n    serverlessConfigs: [{\n        maxCapacity: 8,\n        minCapacity: 0.5,\n        autoPause: false,\n        switchForce: false,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-accdbinstance\"\nexample = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"Serverless\",\n    category=\"serverless_basic\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=example.ids[1],\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    category=\"serverless_basic\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_charge_type=\"Serverless\",\n    commodity_code=\"rds_serverless_public_cn\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vpc_id=example_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=example.ids[1],\n    vswitch_name=name)\nexample_instance = alicloud.rds.Instance(\"example\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_storage=example_get_instance_classes.instance_classes[0].storage_range.min,\n    instance_type=example_get_instance_classes.instance_classes[0].instance_class,\n    instance_charge_type=\"Serverless\",\n    instance_name=name,\n    zone_id=example.ids[1],\n    vswitch_id=example_switch.id,\n    db_instance_storage_type=\"cloud_essd\",\n    category=\"serverless_basic\",\n    serverless_configs=[{\n        \"max_capacity\": 8,\n        \"min_capacity\": 0.5,\n        \"auto_pause\": False,\n        \"switch_force\": False,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-accdbinstance\";\n    var example = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"Serverless\",\n        Category = \"serverless_basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Ids[1]),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        Category = \"serverless_basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceChargeType = \"Serverless\",\n        CommodityCode = \"rds_serverless_public_cn\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VpcId = exampleNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Ids[1]),\n        VswitchName = name,\n    });\n\n    var exampleInstance = new AliCloud.Rds.Instance(\"example\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceStorage = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        InstanceType = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceChargeType = \"Serverless\",\n        InstanceName = name,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Ids[1]),\n        VswitchId = exampleSwitch.Id,\n        DbInstanceStorageType = \"cloud_essd\",\n        Category = \"serverless_basic\",\n        ServerlessConfigs = new[]\n        {\n            new AliCloud.Rds.Inputs.InstanceServerlessConfigArgs\n            {\n                MaxCapacity = 8,\n                MinCapacity = 0.5,\n                AutoPause = false,\n                SwitchForce = false,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-accdbinstance\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"Serverless\"),\n\t\t\tCategory:              pulumi.StringRef(\"serverless_basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(example.Ids[1]),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tCategory:              pulumi.StringRef(\"serverless_basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"Serverless\"),\n\t\t\tCommodityCode:         pulumi.StringRef(\"rds_serverless_public_cn\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(example.Ids[1]),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\tInstanceStorage:       pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tInstanceType:          pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceChargeType:    pulumi.String(\"Serverless\"),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t\tZoneId:                pulumi.String(example.Ids[1]),\n\t\t\tVswitchId:             exampleSwitch.ID(),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tCategory:              pulumi.String(\"serverless_basic\"),\n\t\t\tServerlessConfigs: rds.InstanceServerlessConfigArray{\n\t\t\t\t\u0026rds.InstanceServerlessConfigArgs{\n\t\t\t\t\tMaxCapacity: pulumi.Float64(8),\n\t\t\t\t\tMinCapacity: pulumi.Float64(0.5),\n\t\t\t\t\tAutoPause:   pulumi.Bool(false),\n\t\t\t\t\tSwitchForce: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.inputs.InstanceServerlessConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-accdbinstance\");\n        final var example = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"Serverless\")\n            .category(\"serverless_basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var exampleGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(example.ids()[1])\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .category(\"serverless_basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceChargeType(\"Serverless\")\n            .commodityCode(\"rds_serverless_public_cn\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vpcId(exampleNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(example.ids()[1])\n            .vswitchName(name)\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceStorage(exampleGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .instanceType(exampleGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceChargeType(\"Serverless\")\n            .instanceName(name)\n            .zoneId(example.ids()[1])\n            .vswitchId(exampleSwitch.id())\n            .dbInstanceStorageType(\"cloud_essd\")\n            .category(\"serverless_basic\")\n            .serverlessConfigs(InstanceServerlessConfigArgs.builder()\n                .maxCapacity(8.0)\n                .minCapacity(0.5)\n                .autoPause(false)\n                .switchForce(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-accdbinstance\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vpcId: ${exampleNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${example.ids[1]}\n      vswitchName: ${name}\n  exampleInstance:\n    type: alicloud:rds:Instance\n    name: example\n    properties:\n      engine: MySQL\n      engineVersion: '8.0'\n      instanceStorage: ${exampleGetInstanceClasses.instanceClasses[0].storageRange.min}\n      instanceType: ${exampleGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceChargeType: Serverless\n      instanceName: ${name}\n      zoneId: ${example.ids[1]}\n      vswitchId: ${exampleSwitch.id}\n      dbInstanceStorageType: cloud_essd\n      category: serverless_basic\n      serverlessConfigs:\n        - maxCapacity: 8\n          minCapacity: 0.5\n          autoPause: false\n          switchForce: false\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: Serverless\n        category: serverless_basic\n        dbInstanceStorageType: cloud_essd\n  exampleGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${example.ids[1]}\n        engine: MySQL\n        engineVersion: '8.0'\n        category: serverless_basic\n        dbInstanceStorageType: cloud_essd\n        instanceChargeType: Serverless\n        commodityCode: rds_serverless_public_cn\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a Serverless RDS PostgreSQL Instance\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-accdbinstance\";\nconst example = alicloud.rds.getZones({\n    engine: \"PostgreSQL\",\n    engineVersion: \"14.0\",\n    instanceChargeType: \"Serverless\",\n    category: \"serverless_basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst exampleGetInstanceClasses = example.then(example =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: example.ids?.[1],\n    engine: \"PostgreSQL\",\n    engineVersion: \"14.0\",\n    category: \"serverless_basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceChargeType: \"Serverless\",\n    commodityCode: \"rds_serverless_public_cn\",\n}));\nconst _default = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([_default, example]).then(([_default, example]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: _default.ids?.[0],\n    zoneId: example.ids?.[1],\n}));\nconst exampleInstance = new alicloud.rds.Instance(\"example\", {\n    engine: \"PostgreSQL\",\n    engineVersion: \"14.0\",\n    instanceStorage: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    instanceType: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceChargeType: \"Serverless\",\n    instanceName: name,\n    zoneId: example.then(example =\u003e example.ids?.[1]),\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    dbInstanceStorageType: \"cloud_essd\",\n    category: \"serverless_basic\",\n    serverlessConfigs: [{\n        maxCapacity: 12,\n        minCapacity: 0.5,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-accdbinstance\"\nexample = alicloud.rds.get_zones(engine=\"PostgreSQL\",\n    engine_version=\"14.0\",\n    instance_charge_type=\"Serverless\",\n    category=\"serverless_basic\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=example.ids[1],\n    engine=\"PostgreSQL\",\n    engine_version=\"14.0\",\n    category=\"serverless_basic\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_charge_type=\"Serverless\",\n    commodity_code=\"rds_serverless_public_cn\")\ndefault = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default.ids[0],\n    zone_id=example.ids[1])\nexample_instance = alicloud.rds.Instance(\"example\",\n    engine=\"PostgreSQL\",\n    engine_version=\"14.0\",\n    instance_storage=example_get_instance_classes.instance_classes[0].storage_range.min,\n    instance_type=example_get_instance_classes.instance_classes[0].instance_class,\n    instance_charge_type=\"Serverless\",\n    instance_name=name,\n    zone_id=example.ids[1],\n    vswitch_id=default_get_switches.ids[0],\n    db_instance_storage_type=\"cloud_essd\",\n    category=\"serverless_basic\",\n    serverless_configs=[{\n        \"max_capacity\": 12,\n        \"min_capacity\": 0.5,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-accdbinstance\";\n    var example = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"PostgreSQL\",\n        EngineVersion = \"14.0\",\n        InstanceChargeType = \"Serverless\",\n        Category = \"serverless_basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Ids[1]),\n        Engine = \"PostgreSQL\",\n        EngineVersion = \"14.0\",\n        Category = \"serverless_basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceChargeType = \"Serverless\",\n        CommodityCode = \"rds_serverless_public_cn\",\n    });\n\n    var @default = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Ids[1]),\n    });\n\n    var exampleInstance = new AliCloud.Rds.Instance(\"example\", new()\n    {\n        Engine = \"PostgreSQL\",\n        EngineVersion = \"14.0\",\n        InstanceStorage = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        InstanceType = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceChargeType = \"Serverless\",\n        InstanceName = name,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Ids[1]),\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        DbInstanceStorageType = \"cloud_essd\",\n        Category = \"serverless_basic\",\n        ServerlessConfigs = new[]\n        {\n            new AliCloud.Rds.Inputs.InstanceServerlessConfigArgs\n            {\n                MaxCapacity = 12,\n                MinCapacity = 0.5,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-accdbinstance\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"PostgreSQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"14.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"Serverless\"),\n\t\t\tCategory:              pulumi.StringRef(\"serverless_basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(example.Ids[1]),\n\t\t\tEngine:                pulumi.StringRef(\"PostgreSQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"14.0\"),\n\t\t\tCategory:              pulumi.StringRef(\"serverless_basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"Serverless\"),\n\t\t\tCommodityCode:         pulumi.StringRef(\"rds_serverless_public_cn\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(_default.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(example.Ids[1]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"PostgreSQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"14.0\"),\n\t\t\tInstanceStorage:       pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tInstanceType:          pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceChargeType:    pulumi.String(\"Serverless\"),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t\tZoneId:                pulumi.String(example.Ids[1]),\n\t\t\tVswitchId:             pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tCategory:              pulumi.String(\"serverless_basic\"),\n\t\t\tServerlessConfigs: rds.InstanceServerlessConfigArray{\n\t\t\t\t\u0026rds.InstanceServerlessConfigArgs{\n\t\t\t\t\tMaxCapacity: pulumi.Float64(12),\n\t\t\t\t\tMinCapacity: pulumi.Float64(0.5),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.inputs.InstanceServerlessConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-accdbinstance\");\n        final var example = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"PostgreSQL\")\n            .engineVersion(\"14.0\")\n            .instanceChargeType(\"Serverless\")\n            .category(\"serverless_basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var exampleGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(example.ids()[1])\n            .engine(\"PostgreSQL\")\n            .engineVersion(\"14.0\")\n            .category(\"serverless_basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceChargeType(\"Serverless\")\n            .commodityCode(\"rds_serverless_public_cn\")\n            .build());\n\n        final var default = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(default_.ids()[0])\n            .zoneId(example.ids()[1])\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .engine(\"PostgreSQL\")\n            .engineVersion(\"14.0\")\n            .instanceStorage(exampleGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .instanceType(exampleGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceChargeType(\"Serverless\")\n            .instanceName(name)\n            .zoneId(example.ids()[1])\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .dbInstanceStorageType(\"cloud_essd\")\n            .category(\"serverless_basic\")\n            .serverlessConfigs(InstanceServerlessConfigArgs.builder()\n                .maxCapacity(12.0)\n                .minCapacity(0.5)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-accdbinstance\nresources:\n  exampleInstance:\n    type: alicloud:rds:Instance\n    name: example\n    properties:\n      engine: PostgreSQL\n      engineVersion: '14.0'\n      instanceStorage: ${exampleGetInstanceClasses.instanceClasses[0].storageRange.min}\n      instanceType: ${exampleGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceChargeType: Serverless\n      instanceName: ${name}\n      zoneId: ${example.ids[1]}\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      dbInstanceStorageType: cloud_essd\n      category: serverless_basic\n      serverlessConfigs:\n        - maxCapacity: 12\n          minCapacity: 0.5\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: PostgreSQL\n        engineVersion: '14.0'\n        instanceChargeType: Serverless\n        category: serverless_basic\n        dbInstanceStorageType: cloud_essd\n  exampleGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${example.ids[1]}\n        engine: PostgreSQL\n        engineVersion: '14.0'\n        category: serverless_basic\n        dbInstanceStorageType: cloud_essd\n        instanceChargeType: Serverless\n        commodityCode: rds_serverless_public_cn\n  default:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${default.ids[0]}\n        zoneId: ${example.ids[1]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a Serverless RDS SQLServer Instance\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-accdbinstance\";\nconst example = alicloud.rds.getZones({\n    engine: \"SQLServer\",\n    engineVersion: \"2019_std_sl\",\n    instanceChargeType: \"Serverless\",\n    category: \"serverless_ha\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst exampleGetInstanceClasses = example.then(example =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: example.ids?.[1],\n    engine: \"SQLServer\",\n    engineVersion: \"2019_std_sl\",\n    category: \"serverless_ha\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceChargeType: \"Serverless\",\n    commodityCode: \"rds_serverless_public_cn\",\n}));\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vpcId: exampleNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: example.then(example =\u003e example.ids?.[1]),\n    vswitchName: name,\n});\nconst exampleInstance = new alicloud.rds.Instance(\"example\", {\n    engine: \"SQLServer\",\n    engineVersion: \"2019_std_sl\",\n    instanceStorage: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    instanceType: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceChargeType: \"Serverless\",\n    instanceName: name,\n    zoneId: example.then(example =\u003e example.ids?.[1]),\n    zoneIdSlaveA: example.then(example =\u003e example.ids?.[1]),\n    vswitchId: std.joinOutput({\n        separator: \",\",\n        input: [\n            exampleSwitch.id,\n            exampleSwitch.id,\n        ],\n    }).apply(invoke =\u003e invoke.result),\n    dbInstanceStorageType: \"cloud_essd\",\n    category: \"serverless_ha\",\n    serverlessConfigs: [{\n        maxCapacity: 8,\n        minCapacity: 2,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-accdbinstance\"\nexample = alicloud.rds.get_zones(engine=\"SQLServer\",\n    engine_version=\"2019_std_sl\",\n    instance_charge_type=\"Serverless\",\n    category=\"serverless_ha\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=example.ids[1],\n    engine=\"SQLServer\",\n    engine_version=\"2019_std_sl\",\n    category=\"serverless_ha\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_charge_type=\"Serverless\",\n    commodity_code=\"rds_serverless_public_cn\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vpc_id=example_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=example.ids[1],\n    vswitch_name=name)\nexample_instance = alicloud.rds.Instance(\"example\",\n    engine=\"SQLServer\",\n    engine_version=\"2019_std_sl\",\n    instance_storage=example_get_instance_classes.instance_classes[0].storage_range.min,\n    instance_type=example_get_instance_classes.instance_classes[0].instance_class,\n    instance_charge_type=\"Serverless\",\n    instance_name=name,\n    zone_id=example.ids[1],\n    zone_id_slave_a=example.ids[1],\n    vswitch_id=std.join_output(separator=\",\",\n        input=[\n            example_switch.id,\n            example_switch.id,\n        ]).apply(lambda invoke: invoke.result),\n    db_instance_storage_type=\"cloud_essd\",\n    category=\"serverless_ha\",\n    serverless_configs=[{\n        \"max_capacity\": 8,\n        \"min_capacity\": 2,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-accdbinstance\";\n    var example = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"SQLServer\",\n        EngineVersion = \"2019_std_sl\",\n        InstanceChargeType = \"Serverless\",\n        Category = \"serverless_ha\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Ids[1]),\n        Engine = \"SQLServer\",\n        EngineVersion = \"2019_std_sl\",\n        Category = \"serverless_ha\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceChargeType = \"Serverless\",\n        CommodityCode = \"rds_serverless_public_cn\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VpcId = exampleNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Ids[1]),\n        VswitchName = name,\n    });\n\n    var exampleInstance = new AliCloud.Rds.Instance(\"example\", new()\n    {\n        Engine = \"SQLServer\",\n        EngineVersion = \"2019_std_sl\",\n        InstanceStorage = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        InstanceType = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceChargeType = \"Serverless\",\n        InstanceName = name,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Ids[1]),\n        ZoneIdSlaveA = example.Apply(getZonesResult =\u003e getZonesResult.Ids[1]),\n        VswitchId = Std.Join.Invoke(new()\n        {\n            Separator = \",\",\n            Input = new[]\n            {\n                exampleSwitch.Id,\n                exampleSwitch.Id,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        DbInstanceStorageType = \"cloud_essd\",\n        Category = \"serverless_ha\",\n        ServerlessConfigs = new[]\n        {\n            new AliCloud.Rds.Inputs.InstanceServerlessConfigArgs\n            {\n                MaxCapacity = 8,\n                MinCapacity = 2,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-accdbinstance\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"SQLServer\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"2019_std_sl\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"Serverless\"),\n\t\t\tCategory:              pulumi.StringRef(\"serverless_ha\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(example.Ids[1]),\n\t\t\tEngine:                pulumi.StringRef(\"SQLServer\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"2019_std_sl\"),\n\t\t\tCategory:              pulumi.StringRef(\"serverless_ha\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"Serverless\"),\n\t\t\tCommodityCode:         pulumi.StringRef(\"rds_serverless_public_cn\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(example.Ids[1]),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\n\t\t\tEngine:             pulumi.String(\"SQLServer\"),\n\t\t\tEngineVersion:      pulumi.String(\"2019_std_sl\"),\n\t\t\tInstanceStorage:    pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tInstanceType:       pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceChargeType: pulumi.String(\"Serverless\"),\n\t\t\tInstanceName:       pulumi.String(name),\n\t\t\tZoneId:             pulumi.String(example.Ids[1]),\n\t\t\tZoneIdSlaveA:       pulumi.String(example.Ids[1]),\n\t\t\tVswitchId: pulumi.String(std.JoinOutput(ctx, std.JoinOutputArgs{\n\t\t\t\tSeparator: pulumi.String(\",\"),\n\t\t\t\tInput: pulumi.StringArray{\n\t\t\t\t\texampleSwitch.ID(),\n\t\t\t\t\texampleSwitch.ID(),\n\t\t\t\t},\n\t\t\t}, nil).ApplyT(func(invoke std.JoinResult) (*string, error) {\n\t\t\t\treturn invoke.Result, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tCategory:              pulumi.String(\"serverless_ha\"),\n\t\t\tServerlessConfigs: rds.InstanceServerlessConfigArray{\n\t\t\t\t\u0026rds.InstanceServerlessConfigArgs{\n\t\t\t\t\tMaxCapacity: pulumi.Float64(8),\n\t\t\t\t\tMinCapacity: pulumi.Float64(2),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.inputs.InstanceServerlessConfigArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.JoinArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-accdbinstance\");\n        final var example = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"SQLServer\")\n            .engineVersion(\"2019_std_sl\")\n            .instanceChargeType(\"Serverless\")\n            .category(\"serverless_ha\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var exampleGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(example.ids()[1])\n            .engine(\"SQLServer\")\n            .engineVersion(\"2019_std_sl\")\n            .category(\"serverless_ha\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceChargeType(\"Serverless\")\n            .commodityCode(\"rds_serverless_public_cn\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vpcId(exampleNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(example.ids()[1])\n            .vswitchName(name)\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .engine(\"SQLServer\")\n            .engineVersion(\"2019_std_sl\")\n            .instanceStorage(exampleGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .instanceType(exampleGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceChargeType(\"Serverless\")\n            .instanceName(name)\n            .zoneId(example.ids()[1])\n            .zoneIdSlaveA(example.ids()[1])\n            .vswitchId(StdFunctions.join(JoinArgs.builder()\n                .separator(\",\")\n                .input(                \n                    exampleSwitch.id(),\n                    exampleSwitch.id())\n                .build()).applyValue(_invoke -\u003e _invoke.result()))\n            .dbInstanceStorageType(\"cloud_essd\")\n            .category(\"serverless_ha\")\n            .serverlessConfigs(InstanceServerlessConfigArgs.builder()\n                .maxCapacity(8.0)\n                .minCapacity(2.0)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-accdbinstance\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vpcId: ${exampleNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${example.ids[1]}\n      vswitchName: ${name}\n  exampleInstance:\n    type: alicloud:rds:Instance\n    name: example\n    properties:\n      engine: SQLServer\n      engineVersion: 2019_std_sl\n      instanceStorage: ${exampleGetInstanceClasses.instanceClasses[0].storageRange.min}\n      instanceType: ${exampleGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceChargeType: Serverless\n      instanceName: ${name}\n      zoneId: ${example.ids[1]}\n      zoneIdSlaveA: ${example.ids[1]}\n      vswitchId:\n        fn::invoke:\n          function: std:join\n          arguments:\n            separator: ','\n            input:\n              - ${exampleSwitch.id}\n              - ${exampleSwitch.id}\n          return: result\n      dbInstanceStorageType: cloud_essd\n      category: serverless_ha\n      serverlessConfigs:\n        - maxCapacity: 8\n          minCapacity: 2\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: SQLServer\n        engineVersion: 2019_std_sl\n        instanceChargeType: Serverless\n        category: serverless_ha\n        dbInstanceStorageType: cloud_essd\n  exampleGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${example.ids[1]}\n        engine: SQLServer\n        engineVersion: 2019_std_sl\n        category: serverless_ha\n        dbInstanceStorageType: cloud_essd\n        instanceChargeType: Serverless\n        commodityCode: rds_serverless_public_cn\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.rds.Instance`\" pulumi-lang-dotnet=\"`alicloud.rds.Instance`\" pulumi-lang-go=\"`rds.Instance`\" pulumi-lang-python=\"`rds.Instance`\" pulumi-lang-yaml=\"`alicloud.rds.Instance`\" pulumi-lang-java=\"`alicloud.rds.Instance`\"\u003e`alicloud.rds.Instance`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.rds.Instance`\" pulumi-lang-dotnet=\"`alicloud.rds.Instance`\" pulumi-lang-go=\"`rds.Instance`\" pulumi-lang-python=\"`rds.Instance`\" pulumi-lang-yaml=\"`alicloud.rds.Instance`\" pulumi-lang-java=\"`alicloud.rds.Instance`\"\u003e`alicloud.rds.Instance`\u003c/span\u003e resource allows you to manage \u003cspan pulumi-lang-nodejs=\"`instanceChargeType \" pulumi-lang-dotnet=\"`InstanceChargeType \" pulumi-lang-go=\"`instanceChargeType \" pulumi-lang-python=\"`instance_charge_type \" pulumi-lang-yaml=\"`instanceChargeType \" pulumi-lang-java=\"`instanceChargeType \"\u003e`instance_charge_type \u003c/span\u003e= \"Prepaid\"` db instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the DB Instance.\nYou can resume managing the subscription db instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/instance:Instance example rm-abc12345678\n```\n\n","properties":{"acl":{"type":"string","description":"The method that is used to verify the identities of clients. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"autoRenew":{"type":"boolean","description":"Whether to renewal a DB instance automatically or not. It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an instance, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Valid value:[1~12], Default to 1.\n"},"autoUpgradeMinorVersion":{"type":"string","description":"The upgrade method to use. Valid values:\n- Auto: Instances are automatically upgraded to a higher minor version.\n- Manual: Instances are forcibly upgraded to a higher minor version when the current version is unpublished.\n\nSee more [details and limitation](https://www.alibabacloud.com/help/doc-detail/123605.htm).\n"},"babelfishConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/InstanceBabelfishConfig:InstanceBabelfishConfig"},"description":"The configuration of an ApsaraDB RDS for PostgreSQL instance for which Babelfish is enabled. See \u003cspan pulumi-lang-nodejs=\"`babelfishConfig`\" pulumi-lang-dotnet=\"`BabelfishConfig`\" pulumi-lang-go=\"`babelfishConfig`\" pulumi-lang-python=\"`babelfish_config`\" pulumi-lang-yaml=\"`babelfishConfig`\" pulumi-lang-java=\"`babelfishConfig`\"\u003e`babelfish_config`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter takes effect only when you create an ApsaraDB RDS for PostgreSQL instance. For more information, see [Introduction to Babelfish](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/babelfish-for-pg).\n"},"babelfishPort":{"type":"string","description":"The TDS port of the instance for which Babelfish is enabled.\n\n\u003e **NOTE:** This parameter applies only to ApsaraDB RDS for PostgreSQL instances. For more information about Babelfish for ApsaraDB RDS for PostgreSQL, see [Introduction to Babelfish](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/babelfish-for-pg).\n"},"burstingEnabled":{"type":"boolean","description":"Specifies whether to enable the I/O burst feature of general\nESSDs. Valid values:\n- true\n- false\n"},"caType":{"type":"string","description":"The type of the server certificate. This parameter is supported only when the instance runs PostgreSQL or MySQL with standard or enhanced SSDs. If you set the SSLEnabled parameter to 1, the default value of this parameter is aliyun. **NOTE:** From version 1.231.0, \u003cspan pulumi-lang-nodejs=\"`caType`\" pulumi-lang-dotnet=\"`CaType`\" pulumi-lang-go=\"`caType`\" pulumi-lang-python=\"`ca_type`\" pulumi-lang-yaml=\"`caType`\" pulumi-lang-java=\"`caType`\"\u003e`ca_type`\u003c/span\u003e start  support `MySQL` engine. Value range:\n- aliyun: a cloud certificate\n- custom: a custom certificate\n"},"category":{"type":"string","description":"The RDS edition of the instance. If you want to create a serverless instance, you must use this value. Valid values:\n* **Basic**: Basic Edition.\n* **HighAvailability**: High-availability Edition.\n* **AlwaysOn**: Cluster Edition.\n* **Finance**: Enterprise Edition.\n* **cluster**: MySQL Cluster Edition. (Available since v1.202.0)\n* **serverless_basic**: RDS Serverless Basic Edition. This edition is available only for instances that run MySQL and PostgreSQL. (Available since v1.200.0)\n* **serverless_standard**: RDS Serverless Basic Edition. This edition is available only for instances that run MySQL and PostgreSQL. (Available since v1.204.0)\n* **serverless_ha**: RDS Serverless High-availability Edition for SQL Server. (Available since v1.204.0)\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveA`\" pulumi-lang-dotnet=\"`ZoneIdSlaveA`\" pulumi-lang-go=\"`zoneIdSlaveA`\" pulumi-lang-python=\"`zone_id_slave_a`\" pulumi-lang-yaml=\"`zoneIdSlaveA`\" pulumi-lang-java=\"`zoneIdSlaveA`\"\u003e`zone_id_slave_a`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveB`\" pulumi-lang-dotnet=\"`ZoneIdSlaveB`\" pulumi-lang-go=\"`zoneIdSlaveB`\" pulumi-lang-python=\"`zone_id_slave_b`\" pulumi-lang-yaml=\"`zoneIdSlaveB`\" pulumi-lang-java=\"`zoneIdSlaveB`\"\u003e`zone_id_slave_b`\u003c/span\u003e can specify slave zone ids when creating the high-availability or enterprise edition instances. Meanwhile, \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e needs to pass in the corresponding vswitch id to the slave zone by order (If the \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is not specified, the classic network version will be created). For example, \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e = \"zone-a\" and \u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveA`\" pulumi-lang-dotnet=\"`ZoneIdSlaveA`\" pulumi-lang-go=\"`zoneIdSlaveA`\" pulumi-lang-python=\"`zone_id_slave_a`\" pulumi-lang-yaml=\"`zoneIdSlaveA`\" pulumi-lang-java=\"`zoneIdSlaveA`\"\u003e`zone_id_slave_a`\u003c/span\u003e = \"zone-c\", \u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveB`\" pulumi-lang-dotnet=\"`ZoneIdSlaveB`\" pulumi-lang-go=\"`zoneIdSlaveB`\" pulumi-lang-python=\"`zone_id_slave_b`\" pulumi-lang-yaml=\"`zoneIdSlaveB`\" pulumi-lang-java=\"`zoneIdSlaveB`\"\u003e`zone_id_slave_b`\u003c/span\u003e = \"zone-b\", then the \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e must be \"vsw-zone-a,vsw-zone-c,vsw-zone-b\". Of course, you can also choose automatic allocation , for example, \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e = \"zone-a\" and \u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveA`\" pulumi-lang-dotnet=\"`ZoneIdSlaveA`\" pulumi-lang-go=\"`zoneIdSlaveA`\" pulumi-lang-python=\"`zone_id_slave_a`\" pulumi-lang-yaml=\"`zoneIdSlaveA`\" pulumi-lang-java=\"`zoneIdSlaveA`\"\u003e`zone_id_slave_a`\u003c/span\u003e = \"Auto\",\u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveB`\" pulumi-lang-dotnet=\"`ZoneIdSlaveB`\" pulumi-lang-go=\"`zoneIdSlaveB`\" pulumi-lang-python=\"`zone_id_slave_b`\" pulumi-lang-yaml=\"`zoneIdSlaveB`\" pulumi-lang-java=\"`zoneIdSlaveB`\"\u003e`zone_id_slave_b`\u003c/span\u003e = \"Auto\", then the \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e must be \"vsw-zone-a,Auto,Auto\". The list contains up to 2 slave zone ids , separated by commas.\n"},"clientCaCert":{"type":"string","description":"The public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCAEbabled parameter to 1, you must also specify this parameter.\n","secret":true},"clientCaEnabled":{"type":"integer","description":"Specifies whether to enable the public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. Valid values:\n- 1: enables the public key\n- 0: disables the public key\n"},"clientCertRevocationList":{"type":"string","description":"The CRL that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCrlEnabled parameter to 1, you must also specify this parameter.\n"},"clientCrlEnabled":{"type":"integer","description":"Specifies whether to enable a certificate revocation list (CRL) that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- 1: enables the CRL\n- 0: disables the CRL\n"},"coldDataEnabled":{"type":"boolean","description":"High performance cloud disk data archiving function switch.Example value:\n- true: Enable high-performance cloud disk data archiving function.\n- false: Disable high-performance cloud disk data archiving function.\n"},"connectionString":{"type":"string","description":"RDS database connection string.\n"},"connectionStringPrefix":{"type":"string","description":"The private connection string prefix. If you want to update public connection string prefix, please use resource\u003cspan pulumi-lang-nodejs=\" alicloud.rds.Connection \" pulumi-lang-dotnet=\" alicloud.rds.Connection \" pulumi-lang-go=\" rds.Connection \" pulumi-lang-python=\" rds.Connection \" pulumi-lang-yaml=\" alicloud.rds.Connection \" pulumi-lang-java=\" alicloud.rds.Connection \"\u003e alicloud.rds.Connection \u003c/span\u003econnection_prefix.\n\u003e **NOTE:** The prefix must be 8 to 64 characters in length and can contain letters, digits, and hyphens (-). It cannot contain Chinese characters and special characters ~!#%^\u0026*=+\\|{};:'\",\u003c\u003e/?\n"},"createTime":{"type":"string","description":"(Available since v1.204.1) The creation time of db instance.\n"},"dbInstanceIpArrayAttribute":{"type":"string","description":"The attribute of the IP address whitelist. By default, this parameter is empty.\n\n\u003e **NOTE:** The IP address whitelists that have the hidden attribute are not displayed in the ApsaraDB RDS console. These IP address whitelists are used to access Alibaba Cloud services, such as Data Transmission Service (DTS).\n"},"dbInstanceIpArrayName":{"type":"string","description":"The name of the IP address whitelist. Default value: Default.\n\n\u003e **NOTE:** A maximum of 200 IP address whitelists can be configured for each instance.\n"},"dbInstanceStorageType":{"type":"string","description":"The storage type of the instance. Serverless instance, only \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e can be selected. Valid values:\n- local_ssd: specifies to use local SSDs. This value is recommended.\n- cloud_ssd: specifies to use standard SSDs.\n- cloud_essd: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd2: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd3: specifies to use enhanced SSDs (ESSDs).\n- general_essd: general essd.\n"},"dbInstanceType":{"type":"string","description":"(Available since v1.197.0) The type of db instance.\n"},"dbIsIgnoreCase":{"type":"boolean","description":"Specifies whether table names on the instance are case-sensitive. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dbParamGroupId":{"type":"string","description":"Parameter template ID. Only MySQL and PostgreSQL support this parameter. If this parameter is not specified, the default parameter template is used. You can also customize a parameter template and use it here.\n"},"dbTimeZone":{"type":"string","description":"The time zone of the instance. This parameter takes effect only when you set the `Engine` parameter to MySQL or PostgreSQL.\n- If you set the `Engine` parameter to MySQL.\n- This time zone of the instance is in UTC. Valid values: -12:59 to +13:00.\n- You can specify this parameter when the instance is equipped with local SSDs. For example, you can specify the time zone to Asia/Hong_Kong. For more information about time zones, see [Time zones](https://www.alibabacloud.com/help/doc-detail/297356.htm).\n- If you set the `Engine` parameter to PostgreSQL.\n- This time zone of the instance is not in UTC. For more information about time zones, see [Time zones](https://www.alibabacloud.com/help/doc-detail/297356.htm).\n- You can specify this parameter only when the instance is equipped with standard SSDs or ESSDs.\n\n\u003e **NOTE:** You can specify the time zone when you create a primary instance. You cannot specify the time zone when you create a read-only instance. Read-only instances inherit the time zone of their primary instance. If you do not specify this parameter, the system assigns the default time zone of the region where the instance resides.\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. Valid values:\n- true: delete protect.\n- false: no delete protect.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`deletionProtection`\" pulumi-lang-dotnet=\"`DeletionProtection`\" pulumi-lang-go=\"`deletionProtection`\" pulumi-lang-python=\"`deletion_protection`\" pulumi-lang-yaml=\"`deletionProtection`\" pulumi-lang-java=\"`deletionProtection`\"\u003e`deletion_protection`\u003c/span\u003e is valid only when attribute \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `Postpaid` or `Serverless`, supported engine type: `MySQL`, `PostgreSQL`, `MariaDB`, `MSSQL`.\n"},"direction":{"type":"string","description":"The instance configuration type. Valid values: [\"Up\", \"Down\", \"TempUpgrade\", \"Serverless\"]\n"},"effectiveTime":{"type":"string","description":"The method to update the engine version and change.  Default value: Immediate. Valid values:\n- Immediate: The change immediately takes effect.\n- MaintainTime: The change takes effect during the specified maintenance window. For more information, see ModifyDBInstanceMaintainTime.\n"},"encryptionKey":{"type":"string","description":"The key id of the KMS. Used for encrypting a disk if not null. Only for PostgreSQL, MySQL and SQLServer.\nWhen the instance is PostgreSQL, this parameter can be used to enable, modify, and disable cloud disk encryption.Value range:\n- ServiceKey: Enable disk encryption using the service-managed key (Default Service CMK) automatically generated by Alibaba Cloud RDS.\n- \u003cKey ID\u003e: Use a custom key to enable cloud disk encryption or change the current key. For example: 494c98ce-f2b5-48ab-96ab-36c986b6****.\n- disabled: Turn off cloud disk encryption.\n\u003e **NOTE:** This parameter is available when the instance runs MySQL.\n"},"engine":{"type":"string","description":"Database type. Value options: MySQL, SQLServer, PostgreSQL, MariaDB.\n\n\u003e **NOTE:** When the 'engine_version' changes, it can be used as the target database version for the large version upgrade of RDS for MySQL instance.\n"},"engineVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.\n- MySQL: [ 5.5、5.6、5.7、8.0 ]\n- SQLServer: [ 2008r2、08r2_ent_ha、2012、2012_ent_ha、2012_std_ha、2012_web、2014_std_ha、2016_ent_ha、2016_std_ha、2016_web、2017_std_ha、2017_ent、2019_std_ha、2019_ent ]\n- PostgreSQL: [ 10.0、11.0、12.0、13.0、14.0、15.0 ]\n- MariaDB: [ 10.3 ]\n**Serverless**\n- MySQL: [ 5.7、8.0 ]\n- SQLServer: [ 2016_std_sl、2017_std_sl、2019_std_sl ]\n- PostgreSQL: [ 14.0 ]\n- MariaDB does not support creating serverless instances.\n"},"force":{"type":"string","description":"Specifies whether to enable forcible switching. Valid values:\n- Yes\n- No\n"},"forceRestart":{"type":"boolean","description":"Set it to true to make some parameter efficient when modifying them. Default to false.\n"},"freshWhiteListReadins":{"type":"string","description":"The read-only instances to which you want to synchronize the IP address whitelist.\n* If the instance is attached with a read-only instance, you can use this parameter to synchronize the IP address whitelist to the read-only instance. If the instance is attached with multiple read-only instances, the read-only instances must be separated by commas (,).\n* If the instance is not attached with a read-only instance, this parameter is empty.\n"},"haConfig":{"type":"string","description":"The primary/secondary switchover mode of the instance. Default value: Auto. Valid values:\n- Auto: The system automatically switches over services from the primary to secondary instances in the event of a fault.\n- Manual: You must manually switch over services from the primary to secondary instances in the event of a fault.\n"},"instanceChargeType":{"type":"string","description":"Valid values are `Prepaid`, `Postpaid`, `Serverless`, Default to `Postpaid`. Currently, the resource only supports PostPaid to PrePaid. For more information, see [Overview](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/what-is-serverless?spm=a2c63.p38356.0.0.772a28cfTAGqIv).\n"},"instanceName":{"type":"string","description":"The name of DB instance. It a string of 2 to 256 characters.\n"},"instanceStorage":{"type":"integer","description":"User-defined DB instance storage space. Value range:\n- [5, 2000] for MySQL/PostgreSQL HA dual node edition;\n- [20,1000] for MySQL 5.7 basic single node edition;\n- [10, 2000] for SQL Server 2008R2;\n- [20,2000] for SQL Server 2012 basic single node edition\nIncrease progressively at a rate of 5 GB. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).\nNote: There is extra 5 GB storage for SQL Server Instance, and it is not in specified \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e.\n"},"instanceType":{"type":"string","description":"DB Instance type. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).\n- To create a serverless instance, please pass the following values:\n- MySQL basic: mysql.n2.serverless.1c\n- MySQL high availability: mysql.n2.serverless.2c\n- SQLServer high availability: mssql.mem2.serverless.s2\n- PostgreSQL basic: pg.n2.serverless.1c\n\n\u003e **NOTE:** When `storage_auto_scale=\"Enable\"`, do not perform \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e check. when `storage_auto_scale=\"Disable\"`, if the instance itself \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003ehas changed. You need to manually revise the \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e in the template value. When `payment_type=\"Serverless\"` and when modifying, do not perform \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e check. Otherwise, check.\n"},"maintainTime":{"type":"string","description":"Maintainable time period format of the instance: HH:MMZ-HH:MMZ (UTC time)\n"},"manualHaTime":{"type":"string","description":"The time after when you want to enable automatic primary/secondary switchover. At most, you can set this parameter to 23:59:59 seven days later. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n\n\u003e **NOTE:** This parameter only takes effect when the HAConfig parameter is set to Manual.\n"},"modifyMode":{"type":"string","description":"The method that is used to modify the IP address whitelist. Default value: Cover. Valid values:\n- Cover: Use the value of the SecurityIps parameter to overwrite the existing entries in the IP address whitelist.\n- Append: Add the IP addresses and CIDR blocks that are specified in the SecurityIps parameter to the IP address whitelist.\n- Delete: Delete IP addresses and CIDR blocks that are specified in the SecurityIps parameter from the IP address whitelist. You must retain at least one IP address or CIDR block.\n"},"monitoringPeriod":{"type":"integer","description":"The monitoring frequency in seconds. Valid values are 5, 10, 60, 300. Defaults to 300.\n"},"nodeId":{"type":"string","description":"The globally unique identifier (GUID) of the secondary instance. You can call the DescribeDBInstanceHAConfig operation to query the GUID of the secondary instance.\n"},"optimizedWrites":{"type":"string","description":"Write optimization function switch. supported engine type: `MySQL`. Valid values:\n- optimized: Enable\n- none: Disable\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:rds/InstanceParameter:InstanceParameter"},"description":"Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm) . See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n\n\u003e **NOTE:** The system will use \u003cspan pulumi-lang-nodejs=\"`520`\" pulumi-lang-dotnet=\"`520`\" pulumi-lang-go=\"`520`\" pulumi-lang-python=\"`520`\" pulumi-lang-yaml=\"`520`\" pulumi-lang-java=\"`520`\"\u003e`520`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`532`\" pulumi-lang-dotnet=\"`532`\" pulumi-lang-go=\"`532`\" pulumi-lang-python=\"`532`\" pulumi-lang-yaml=\"`532`\" pulumi-lang-java=\"`532`\"\u003e`532`\u003c/span\u003e connections from \u003cspan pulumi-lang-nodejs=\"`maxConnections`\" pulumi-lang-dotnet=\"`MaxConnections`\" pulumi-lang-go=\"`maxConnections`\" pulumi-lang-python=\"`max_connections`\" pulumi-lang-yaml=\"`maxConnections`\" pulumi-lang-java=\"`maxConnections`\"\u003e`max_connections`\u003c/span\u003e depending on your instance type.\n"},"period":{"type":"integer","description":"The duration that you will buy DB instance (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Valid values: [1~9], 12, 24, 36.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"pgBouncerEnabled":{"type":"boolean","description":"Modify the PgBouncer feature of the RDS PostgreSQL instance. Valid values:\n- true: enable.\n- false: disable.\n"},"pgHbaConfs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/InstancePgHbaConf:InstancePgHbaConf"},"description":"The configuration of [AD domain](https://www.alibabacloud.com/help/en/doc-detail/349288.htm) . See \u003cspan pulumi-lang-nodejs=\"`pgHbaConf`\" pulumi-lang-dotnet=\"`PgHbaConf`\" pulumi-lang-go=\"`pgHbaConf`\" pulumi-lang-python=\"`pg_hba_conf`\" pulumi-lang-yaml=\"`pgHbaConf`\" pulumi-lang-java=\"`pgHbaConf`\"\u003e`pg_hba_conf`\u003c/span\u003e below.\n"},"port":{"type":"string","description":"The private port of the database service. If you want to update public port, please use resource\u003cspan pulumi-lang-nodejs=\" alicloud.rds.Connection \" pulumi-lang-dotnet=\" alicloud.rds.Connection \" pulumi-lang-go=\" rds.Connection \" pulumi-lang-python=\" rds.Connection \" pulumi-lang-yaml=\" alicloud.rds.Connection \" pulumi-lang-java=\" alicloud.rds.Connection \"\u003e alicloud.rds.Connection \u003c/span\u003eport.\n"},"privateIpAddress":{"type":"string","description":"The private IP address of the instance. The private IP address must be within the Classless Inter-Domain Routing (CIDR) block of the vSwitch that is specified by the VSwitchId parameter.\n"},"recoveryModel":{"type":"string","description":"Enable the Simple Recovery Model for an RDS SQL Server Instance.The Simple Recovery Model feature is only supported by the Basic Series of RDS SQL Server instances. Once this feature is enabled, it cannot be disabled.Valid values:\n- simple: Enable Simple Recovery.\n\u003e **NOTE:** If you set this parameter to Manual, you must specify the ManualHATime parameter.\n"},"releasedKeepPolicy":{"type":"string","description":"The policy based on which ApsaraDB RDS retains archived backup files after the instance is released. Valid values:\n- None: No archived backup files are retained.\n- Lastest: Only the last archived backup file is retained.\n- All: All the archived backup files are retained.\n\n\u003e **NOTE:** This parameter is supported only when the instance runs the MySQL database engine.\n"},"replicationAcl":{"type":"string","description":"The method that is used to verify the replication permission. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the DB instance belongs.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the RAM role.\n\n\u003e **NOTE:**  This parameter is not required when creating an instance running MySQL, PostgreSQL, or SQL Server.It is required only when you need to create an instance with cloud disk encryption enabled using a specified key ID.\nYou can configure RAM authorization to require a RAM user to enable cloud disk encryption when the RAM user is used to create an instance. If cloud disk encryption is disabled during the instance creation, the creation operation fails. To complete the configuration, you can attach the following policy to the RAM user: {\"Version\":\"1\",\"Statement\":[{\"Effect\":\"Deny\",\"Action\":\"rds:CreateDBInstance\",\"Resource\":\"*\",\"Condition\":{\"StringEquals\":{\"rds:DiskEncryptionRequired\":\"false\"}}}]}\n"},"securityGroupId":{"type":"string","description":"It has been deprecated from 1.69.0 and use \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e instead.\n","deprecationMessage":"Attribute \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e has been deprecated from 1.69.0 and use \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e instead."},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":", Available since v1.69.0) The list IDs to join ECS Security Group. At most supports three security groups.\n"},"securityIpMode":{"type":"string","description":"Valid values are \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`safety`\" pulumi-lang-dotnet=\"`Safety`\" pulumi-lang-go=\"`safety`\" pulumi-lang-python=\"`safety`\" pulumi-lang-yaml=\"`safety`\" pulumi-lang-java=\"`safety`\"\u003e`safety`\u003c/span\u003e, Default to \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e. support \u003cspan pulumi-lang-nodejs=\"`safety`\" pulumi-lang-dotnet=\"`Safety`\" pulumi-lang-go=\"`safety`\" pulumi-lang-python=\"`safety`\" pulumi-lang-yaml=\"`safety`\" pulumi-lang-java=\"`safety`\"\u003e`safety`\u003c/span\u003e switch to high security access mode.\n"},"securityIpType":{"type":"string","description":"The type of IP address in the IP address whitelist.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"serverCert":{"type":"string","description":"The content of the server certificate. This parameter is supported only when the instance runs PostgreSQL or MySQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter. **NOTE:** From version 1.231.0, \u003cspan pulumi-lang-nodejs=\"`serverCert`\" pulumi-lang-dotnet=\"`ServerCert`\" pulumi-lang-go=\"`serverCert`\" pulumi-lang-python=\"`server_cert`\" pulumi-lang-yaml=\"`serverCert`\" pulumi-lang-java=\"`serverCert`\"\u003e`server_cert`\u003c/span\u003e start  support `MySQL` engine.\n","secret":true},"serverKey":{"type":"string","description":"The private key of the server certificate. This parameter is supported only when the instance runs PostgreSQL or MySQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter. **NOTE:** From version 1.231.0, \u003cspan pulumi-lang-nodejs=\"`serverKey`\" pulumi-lang-dotnet=\"`ServerKey`\" pulumi-lang-go=\"`serverKey`\" pulumi-lang-python=\"`server_key`\" pulumi-lang-yaml=\"`serverKey`\" pulumi-lang-java=\"`serverKey`\"\u003e`server_key`\u003c/span\u003e start support `MySQL` engine.\n"},"serverlessConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/InstanceServerlessConfig:InstanceServerlessConfig"},"description":"The settings of the serverless instance. This parameter is required when you create a serverless instance. This parameter takes effect only when you create an ApsaraDB RDS for Serverless instance. See \u003cspan pulumi-lang-nodejs=\"`serverlessConfig`\" pulumi-lang-dotnet=\"`ServerlessConfig`\" pulumi-lang-go=\"`serverlessConfig`\" pulumi-lang-python=\"`serverless_config`\" pulumi-lang-yaml=\"`serverlessConfig`\" pulumi-lang-java=\"`serverlessConfig`\"\u003e`serverless_config`\u003c/span\u003e below.\n"},"sqlCollectorConfigValue":{"type":"integer","description":"The sql collector keep time of the instance. Valid values are \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1095`\" pulumi-lang-dotnet=\"`1095`\" pulumi-lang-go=\"`1095`\" pulumi-lang-python=\"`1095`\" pulumi-lang-yaml=\"`1095`\" pulumi-lang-java=\"`1095`\"\u003e`1095`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1825`\" pulumi-lang-dotnet=\"`1825`\" pulumi-lang-go=\"`1825`\" pulumi-lang-python=\"`1825`\" pulumi-lang-yaml=\"`1825`\" pulumi-lang-java=\"`1825`\"\u003e`1825`\u003c/span\u003e, Default to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n\u003e **NOTE:** This parameter takes effect when\u003cspan pulumi-lang-nodejs=\" sqlCollectorStatus \" pulumi-lang-dotnet=\" SqlCollectorStatus \" pulumi-lang-go=\" sqlCollectorStatus \" pulumi-lang-python=\" sql_collector_status \" pulumi-lang-yaml=\" sqlCollectorStatus \" pulumi-lang-java=\" sqlCollectorStatus \"\u003e sql_collector_status \u003c/span\u003eis set to Enabled and does not take effect when\u003cspan pulumi-lang-nodejs=\" sqlCollectorStatus \" pulumi-lang-dotnet=\" SqlCollectorStatus \" pulumi-lang-go=\" sqlCollectorStatus \" pulumi-lang-python=\" sql_collector_status \" pulumi-lang-yaml=\" sqlCollectorStatus \" pulumi-lang-java=\" sqlCollectorStatus \"\u003e sql_collector_status \u003c/span\u003eis set to Disabled.\n"},"sqlCollectorStatus":{"type":"string","description":"The sql collector status of the instance. Valid values are `Enabled`, `Disabled`, Default to `Disabled`.\n"},"sslAction":{"type":"string","description":"Actions performed on SSL functions. Valid values: \n`Open`: turn on SSL encryption;\n`Close`: turn off SSL encryption;\n`Update`: update SSL certificate.\nSee more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26254.htm).\n\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`sslAction`\" pulumi-lang-dotnet=\"`SslAction`\" pulumi-lang-go=\"`sslAction`\" pulumi-lang-python=\"`ssl_action`\" pulumi-lang-yaml=\"`sslAction`\" pulumi-lang-java=\"`sslAction`\"\u003e`ssl_action`\u003c/span\u003e will be ignored when setting \u003cspan pulumi-lang-nodejs=\"`instanceChargeType \" pulumi-lang-dotnet=\"`InstanceChargeType \" pulumi-lang-go=\"`instanceChargeType \" pulumi-lang-python=\"`instance_charge_type \" pulumi-lang-yaml=\"`instanceChargeType \" pulumi-lang-java=\"`instanceChargeType \"\u003e`instance_charge_type \u003c/span\u003e= \"Serverless\"` for SQLServer, PostgreSQL or MariaDB.\n"},"sslConnectionString":{"type":"string","description":"The internal or public endpoint for which the server certificate needs to be created or updated.\n"},"sslStatus":{"type":"string","description":"Status of the SSL feature. `Yes`: SSL is turned on; `No`: SSL is turned off.\n"},"status":{"type":"string","description":"(Available since v1.204.1) The status of db instance.\n"},"storageAutoScale":{"type":"string","description":"Automatic storage space expansion switch. Valid values:\n- Enable\n- Disable\n\n\u003e **NOTE:** This parameter only takes effect when the StorageAutoScale parameter is set to Enable.\n"},"storageThreshold":{"type":"integer","description":"The threshold in percentage based on which an automatic storage expansion is triggered. If the available storage reaches the threshold, ApsaraDB RDS increases the storage capacity of the instance.\nValid values: [10, 20, 30, 40, 50].\n\n\u003e **NOTE:** This parameter only takes effect when the StorageAutoScale parameter is set to Enable. The value must be greater than or equal to the total size of the current storage space of the instance.\n"},"storageUpperBound":{"type":"integer","description":"The upper limit of the total storage space for automatic expansion of the storage space, that is, automatic expansion will not cause the total storage space of the instance to exceed this value. Unit: GB. The value must be ≥0.\n\n\u003e **NOTE:** Because of data backup and migration, change DB instance type and storage would cost 15~20 minutes. Please make full preparation before changing them.\n"},"switchTime":{"type":"string","description":"The specific point in time when you want to perform the update. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. It is valid only when \u003cspan pulumi-lang-nodejs=\"`targetMinorVersion`\" pulumi-lang-dotnet=\"`TargetMinorVersion`\" pulumi-lang-go=\"`targetMinorVersion`\" pulumi-lang-python=\"`target_minor_version`\" pulumi-lang-yaml=\"`targetMinorVersion`\" pulumi-lang-java=\"`targetMinorVersion`\"\u003e`target_minor_version`\u003c/span\u003e is changed. The time must be in UTC.\n\n\u003e **NOTE:** This parameter takes effect only when you set the UpgradeTime parameter to SpecifyTime.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \u003cspan pulumi-lang-nodejs=\"`aliyun`\" pulumi-lang-dotnet=\"`Aliyun`\" pulumi-lang-go=\"`aliyun`\" pulumi-lang-python=\"`aliyun`\" pulumi-lang-yaml=\"`aliyun`\" pulumi-lang-java=\"`aliyun`\"\u003e`aliyun`\u003c/span\u003e, `acs:`, \u003cspan pulumi-lang-nodejs=\"`aliyun`\" pulumi-lang-dotnet=\"`Aliyun`\" pulumi-lang-go=\"`aliyun`\" pulumi-lang-python=\"`aliyun`\" pulumi-lang-yaml=\"`aliyun`\" pulumi-lang-java=\"`aliyun`\"\u003e`aliyun`\u003c/span\u003e, or `https://`. It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \u003cspan pulumi-lang-nodejs=\"`aliyun`\" pulumi-lang-dotnet=\"`Aliyun`\" pulumi-lang-go=\"`aliyun`\" pulumi-lang-python=\"`aliyun`\" pulumi-lang-yaml=\"`aliyun`\" pulumi-lang-java=\"`aliyun`\"\u003e`aliyun`\u003c/span\u003e, `acs:`, `http://`, or `https://`. It can be a null string.\n\n\u003e **Note:** From 1.63.0, the tag key and value are case sensitive. Before that, they are not case sensitive.\n"},"targetMinorVersion":{"type":"string","description":"The minor engine version to which you want to update the instance. If you do not specify this parameter, the instance is updated to the latest minor engine version. You must specify the minor engine version in one of the following formats:\n- PostgreSQL: rds_postgres_\u003cMajor engine version\u003e00_\u003cMinor engine version\u003e. Example: rds_postgres_1200_20200830.\n- MySQL: \u003cRDS edition\u003e_\u003cMinor engine version\u003e. Examples: rds_20200229, xcluster_20200229, and xcluster80_20200229. The following RDS editions are supported:\n- rds: The instance runs RDS Basic or High-availability Edition.\n- xcluster: The instance runs MySQL 5.7 on RDS Enterprise Edition.\n- xcluster80: The instance runs MySQL 8.0 on RDS Enterprise Edition.\n- SQLServer: \u003cMinor engine version\u003e. Example: 15.0.4073.23.\n\n\u003e **NOTE:** For more information about minor engine versions, see Release notes of minor AliPG versions, Release notes of minor AliSQL versions, and Release notes of minor engine versions of ApsaraDB RDS for SQL Server.\n"},"tcpConnectionType":{"type":"string","description":"The availability check method of the instance. Valid values:\n- **SHORT**: Alibaba Cloud uses short-lived connections to check the availability of the instance.\n- **LONG**: Alibaba Cloud uses persistent connections to check the availability of the instance.\n"},"tdeEncryptionKey":{"type":"string","description":"The ID of the custom key.\n"},"tdeStatus":{"type":"string","description":"The TDE(Transparent Data Encryption) status. After TDE is turned on, it cannot be turned off. See more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26256.htm).\n\n\u003e **NOTE:** When creating an instance and enabling disk encryption, the value of\u003cspan pulumi-lang-nodejs=\" encryptionKey \" pulumi-lang-dotnet=\" EncryptionKey \" pulumi-lang-go=\" encryptionKey \" pulumi-lang-python=\" encryption_key \" pulumi-lang-yaml=\" encryptionKey \" pulumi-lang-java=\" encryptionKey \"\u003e encryption_key \u003c/span\u003ecan only be a Key ID; it cannot be a ServiceKey. After the instance is created, you can manage the disk encryption using: ServiceKey, Key ID, or disabled.\n"},"templateIdLists":{"type":"array","items":{"type":"integer"},"description":"Whitelist Template ID List.\n"},"templates":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"(Computed, Available since v1.254.0) Whitelist Template Details.\n"},"upgradeDbInstanceKernelVersion":{"type":"boolean","description":"Whether to upgrade a minor version of the kernel. Valid values:\n- true: upgrade\n- false: not to upgrade\n\n\u003e **NOTE:** Database Engine and Version: Supports only MySQL `5.7` or `8.0` instances.\n\n\u003e **NOTE:** Storage Type: Supports only ESSD cloud disks and general-purpose cloud disks.\n\n\u003e **NOTE:** Activation Stage: Supports only during instance creation or when enabling write optimization features for existing  (high-availability/cluster series) instances.\n","deprecationMessage":"Attribute \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion`\" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion`\" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion`\" pulumi-lang-python=\"`upgrade_db_instance_kernel_version`\" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion`\" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion`\"\u003e`upgrade_db_instance_kernel_version`\u003c/span\u003e has been deprecated from 1.198.0 and use \u003cspan pulumi-lang-nodejs=\"`targetMinorVersion`\" pulumi-lang-dotnet=\"`TargetMinorVersion`\" pulumi-lang-go=\"`targetMinorVersion`\" pulumi-lang-python=\"`target_minor_version`\" pulumi-lang-yaml=\"`targetMinorVersion`\" pulumi-lang-java=\"`targetMinorVersion`\"\u003e`target_minor_version`\u003c/span\u003e instead."},"upgradeTime":{"type":"string","description":"The method to update the minor engine version. Default value: Immediate. It is valid only when \u003cspan pulumi-lang-nodejs=\"`targetMinorVersion`\" pulumi-lang-dotnet=\"`TargetMinorVersion`\" pulumi-lang-go=\"`targetMinorVersion`\" pulumi-lang-python=\"`target_minor_version`\" pulumi-lang-yaml=\"`targetMinorVersion`\" pulumi-lang-java=\"`targetMinorVersion`\"\u003e`target_minor_version`\u003c/span\u003e is changed. Valid values:\n- Immediate: The minor engine version is immediately updated.\n- MaintainTime: The minor engine version is updated during the maintenance window. For more information about how to change the maintenance window, see ModifyDBInstanceMaintainTime.\n- SpecifyTime: The minor engine version is updated at the point in time you specify.\n"},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n\n\n\u003e **NOTE:** This parameter applies only to ApsaraDB RDS for MySQL instances. For more information about Upgrade the major engine version of an ApsaraDB RDS for MySQL instance, see [Upgrade the major engine version of an RDS instance in the ApsaraDB RDS console](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/upgrade-the-major-engine-version-of-an-apsaradb-rds-for-mysql-instance-1).\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC. If there are multiple vswitches, separate them with commas.\n"},"whitelistNetworkType":{"type":"string","description":"The network type of the IP address whitelist. Default value: MIX. Valid values:\n- Classic: classic network in enhanced whitelist mode\n- VPC: virtual private cloud (VPC) in enhanced whitelist mode\n- MIX: standard whitelist mode\n\n\u003e **NOTE:** In standard whitelist mode, IP addresses and CIDR blocks can be added only to the default IP address whitelist. In enhanced whitelist mode, IP addresses and CIDR blocks can be added to both IP address whitelists of the classic network type and those of the VPC network type.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB instance. From version 1.8.1, it supports multiple zone.\nIf it is a multi-zone and \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified, the vswitch must in the one of them.\nThe multiple zone ID can be retrieved by setting \u003cspan pulumi-lang-nodejs=\"`multi`\" pulumi-lang-dotnet=\"`Multi`\" pulumi-lang-go=\"`multi`\" pulumi-lang-python=\"`multi`\" pulumi-lang-yaml=\"`multi`\" pulumi-lang-java=\"`multi`\"\u003e`multi`\u003c/span\u003e to \"true\" in the data source \u003cspan pulumi-lang-nodejs=\"`alicloud.getZones`\" pulumi-lang-dotnet=\"`alicloud.getZones`\" pulumi-lang-go=\"`getZones`\" pulumi-lang-python=\"`get_zones`\" pulumi-lang-yaml=\"`alicloud.getZones`\" pulumi-lang-java=\"`alicloud.getZones`\"\u003e`alicloud.getZones`\u003c/span\u003e.\n"},"zoneIdSlaveA":{"type":"string","description":"The region ID of the secondary instance if you create a secondary instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.\n"},"zoneIdSlaveB":{"type":"string","description":"RDS MySQL Cluster series instances support creating 1 to 2 secondary nodes at the same time when establishing a new instance. If you have this requirement, you can use this parameter to specify the availability zone for the second secondary node.\n"}},"required":["acl","autoUpgradeMinorVersion","babelfishConfigs","babelfishPort","caType","category","connectionString","connectionStringPrefix","createTime","dbInstanceStorageType","dbInstanceType","dbIsIgnoreCase","dbTimeZone","encryptionKey","engine","engineVersion","haConfig","instanceStorage","instanceType","maintainTime","monitoringPeriod","nodeId","optimizedWrites","parameters","pgHbaConfs","port","privateIpAddress","recoveryModel","replicationAcl","resourceGroupId","roleArn","securityGroupId","securityGroupIds","securityIps","serverCert","serverKey","sqlCollectorStatus","sslAction","sslConnectionString","sslStatus","status","targetMinorVersion","tcpConnectionType","tdeStatus","templates","vpcId","zoneId","zoneIdSlaveA","zoneIdSlaveB"],"inputProperties":{"acl":{"type":"string","description":"The method that is used to verify the identities of clients. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"autoRenew":{"type":"boolean","description":"Whether to renewal a DB instance automatically or not. It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an instance, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Valid value:[1~12], Default to 1.\n"},"autoUpgradeMinorVersion":{"type":"string","description":"The upgrade method to use. Valid values:\n- Auto: Instances are automatically upgraded to a higher minor version.\n- Manual: Instances are forcibly upgraded to a higher minor version when the current version is unpublished.\n\nSee more [details and limitation](https://www.alibabacloud.com/help/doc-detail/123605.htm).\n"},"babelfishConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/InstanceBabelfishConfig:InstanceBabelfishConfig"},"description":"The configuration of an ApsaraDB RDS for PostgreSQL instance for which Babelfish is enabled. See \u003cspan pulumi-lang-nodejs=\"`babelfishConfig`\" pulumi-lang-dotnet=\"`BabelfishConfig`\" pulumi-lang-go=\"`babelfishConfig`\" pulumi-lang-python=\"`babelfish_config`\" pulumi-lang-yaml=\"`babelfishConfig`\" pulumi-lang-java=\"`babelfishConfig`\"\u003e`babelfish_config`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter takes effect only when you create an ApsaraDB RDS for PostgreSQL instance. For more information, see [Introduction to Babelfish](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/babelfish-for-pg).\n","willReplaceOnChanges":true},"babelfishPort":{"type":"string","description":"The TDS port of the instance for which Babelfish is enabled.\n\n\u003e **NOTE:** This parameter applies only to ApsaraDB RDS for PostgreSQL instances. For more information about Babelfish for ApsaraDB RDS for PostgreSQL, see [Introduction to Babelfish](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/babelfish-for-pg).\n"},"burstingEnabled":{"type":"boolean","description":"Specifies whether to enable the I/O burst feature of general\nESSDs. Valid values:\n- true\n- false\n"},"caType":{"type":"string","description":"The type of the server certificate. This parameter is supported only when the instance runs PostgreSQL or MySQL with standard or enhanced SSDs. If you set the SSLEnabled parameter to 1, the default value of this parameter is aliyun. **NOTE:** From version 1.231.0, \u003cspan pulumi-lang-nodejs=\"`caType`\" pulumi-lang-dotnet=\"`CaType`\" pulumi-lang-go=\"`caType`\" pulumi-lang-python=\"`ca_type`\" pulumi-lang-yaml=\"`caType`\" pulumi-lang-java=\"`caType`\"\u003e`ca_type`\u003c/span\u003e start  support `MySQL` engine. Value range:\n- aliyun: a cloud certificate\n- custom: a custom certificate\n"},"category":{"type":"string","description":"The RDS edition of the instance. If you want to create a serverless instance, you must use this value. Valid values:\n* **Basic**: Basic Edition.\n* **HighAvailability**: High-availability Edition.\n* **AlwaysOn**: Cluster Edition.\n* **Finance**: Enterprise Edition.\n* **cluster**: MySQL Cluster Edition. (Available since v1.202.0)\n* **serverless_basic**: RDS Serverless Basic Edition. This edition is available only for instances that run MySQL and PostgreSQL. (Available since v1.200.0)\n* **serverless_standard**: RDS Serverless Basic Edition. This edition is available only for instances that run MySQL and PostgreSQL. (Available since v1.204.0)\n* **serverless_ha**: RDS Serverless High-availability Edition for SQL Server. (Available since v1.204.0)\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveA`\" pulumi-lang-dotnet=\"`ZoneIdSlaveA`\" pulumi-lang-go=\"`zoneIdSlaveA`\" pulumi-lang-python=\"`zone_id_slave_a`\" pulumi-lang-yaml=\"`zoneIdSlaveA`\" pulumi-lang-java=\"`zoneIdSlaveA`\"\u003e`zone_id_slave_a`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveB`\" pulumi-lang-dotnet=\"`ZoneIdSlaveB`\" pulumi-lang-go=\"`zoneIdSlaveB`\" pulumi-lang-python=\"`zone_id_slave_b`\" pulumi-lang-yaml=\"`zoneIdSlaveB`\" pulumi-lang-java=\"`zoneIdSlaveB`\"\u003e`zone_id_slave_b`\u003c/span\u003e can specify slave zone ids when creating the high-availability or enterprise edition instances. Meanwhile, \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e needs to pass in the corresponding vswitch id to the slave zone by order (If the \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is not specified, the classic network version will be created). For example, \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e = \"zone-a\" and \u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveA`\" pulumi-lang-dotnet=\"`ZoneIdSlaveA`\" pulumi-lang-go=\"`zoneIdSlaveA`\" pulumi-lang-python=\"`zone_id_slave_a`\" pulumi-lang-yaml=\"`zoneIdSlaveA`\" pulumi-lang-java=\"`zoneIdSlaveA`\"\u003e`zone_id_slave_a`\u003c/span\u003e = \"zone-c\", \u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveB`\" pulumi-lang-dotnet=\"`ZoneIdSlaveB`\" pulumi-lang-go=\"`zoneIdSlaveB`\" pulumi-lang-python=\"`zone_id_slave_b`\" pulumi-lang-yaml=\"`zoneIdSlaveB`\" pulumi-lang-java=\"`zoneIdSlaveB`\"\u003e`zone_id_slave_b`\u003c/span\u003e = \"zone-b\", then the \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e must be \"vsw-zone-a,vsw-zone-c,vsw-zone-b\". Of course, you can also choose automatic allocation , for example, \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e = \"zone-a\" and \u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveA`\" pulumi-lang-dotnet=\"`ZoneIdSlaveA`\" pulumi-lang-go=\"`zoneIdSlaveA`\" pulumi-lang-python=\"`zone_id_slave_a`\" pulumi-lang-yaml=\"`zoneIdSlaveA`\" pulumi-lang-java=\"`zoneIdSlaveA`\"\u003e`zone_id_slave_a`\u003c/span\u003e = \"Auto\",\u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveB`\" pulumi-lang-dotnet=\"`ZoneIdSlaveB`\" pulumi-lang-go=\"`zoneIdSlaveB`\" pulumi-lang-python=\"`zone_id_slave_b`\" pulumi-lang-yaml=\"`zoneIdSlaveB`\" pulumi-lang-java=\"`zoneIdSlaveB`\"\u003e`zone_id_slave_b`\u003c/span\u003e = \"Auto\", then the \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e must be \"vsw-zone-a,Auto,Auto\". The list contains up to 2 slave zone ids , separated by commas.\n"},"clientCaCert":{"type":"string","description":"The public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCAEbabled parameter to 1, you must also specify this parameter.\n","secret":true},"clientCaEnabled":{"type":"integer","description":"Specifies whether to enable the public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. Valid values:\n- 1: enables the public key\n- 0: disables the public key\n"},"clientCertRevocationList":{"type":"string","description":"The CRL that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCrlEnabled parameter to 1, you must also specify this parameter.\n"},"clientCrlEnabled":{"type":"integer","description":"Specifies whether to enable a certificate revocation list (CRL) that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- 1: enables the CRL\n- 0: disables the CRL\n"},"coldDataEnabled":{"type":"boolean","description":"High performance cloud disk data archiving function switch.Example value:\n- true: Enable high-performance cloud disk data archiving function.\n- false: Disable high-performance cloud disk data archiving function.\n"},"connectionStringPrefix":{"type":"string","description":"The private connection string prefix. If you want to update public connection string prefix, please use resource\u003cspan pulumi-lang-nodejs=\" alicloud.rds.Connection \" pulumi-lang-dotnet=\" alicloud.rds.Connection \" pulumi-lang-go=\" rds.Connection \" pulumi-lang-python=\" rds.Connection \" pulumi-lang-yaml=\" alicloud.rds.Connection \" pulumi-lang-java=\" alicloud.rds.Connection \"\u003e alicloud.rds.Connection \u003c/span\u003econnection_prefix.\n\u003e **NOTE:** The prefix must be 8 to 64 characters in length and can contain letters, digits, and hyphens (-). It cannot contain Chinese characters and special characters ~!#%^\u0026*=+\\|{};:'\",\u003c\u003e/?\n"},"dbInstanceIpArrayAttribute":{"type":"string","description":"The attribute of the IP address whitelist. By default, this parameter is empty.\n\n\u003e **NOTE:** The IP address whitelists that have the hidden attribute are not displayed in the ApsaraDB RDS console. These IP address whitelists are used to access Alibaba Cloud services, such as Data Transmission Service (DTS).\n"},"dbInstanceIpArrayName":{"type":"string","description":"The name of the IP address whitelist. Default value: Default.\n\n\u003e **NOTE:** A maximum of 200 IP address whitelists can be configured for each instance.\n"},"dbInstanceStorageType":{"type":"string","description":"The storage type of the instance. Serverless instance, only \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e can be selected. Valid values:\n- local_ssd: specifies to use local SSDs. This value is recommended.\n- cloud_ssd: specifies to use standard SSDs.\n- cloud_essd: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd2: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd3: specifies to use enhanced SSDs (ESSDs).\n- general_essd: general essd.\n"},"dbIsIgnoreCase":{"type":"boolean","description":"Specifies whether table names on the instance are case-sensitive. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dbParamGroupId":{"type":"string","description":"Parameter template ID. Only MySQL and PostgreSQL support this parameter. If this parameter is not specified, the default parameter template is used. You can also customize a parameter template and use it here.\n"},"dbTimeZone":{"type":"string","description":"The time zone of the instance. This parameter takes effect only when you set the `Engine` parameter to MySQL or PostgreSQL.\n- If you set the `Engine` parameter to MySQL.\n- This time zone of the instance is in UTC. Valid values: -12:59 to +13:00.\n- You can specify this parameter when the instance is equipped with local SSDs. For example, you can specify the time zone to Asia/Hong_Kong. For more information about time zones, see [Time zones](https://www.alibabacloud.com/help/doc-detail/297356.htm).\n- If you set the `Engine` parameter to PostgreSQL.\n- This time zone of the instance is not in UTC. For more information about time zones, see [Time zones](https://www.alibabacloud.com/help/doc-detail/297356.htm).\n- You can specify this parameter only when the instance is equipped with standard SSDs or ESSDs.\n\n\u003e **NOTE:** You can specify the time zone when you create a primary instance. You cannot specify the time zone when you create a read-only instance. Read-only instances inherit the time zone of their primary instance. If you do not specify this parameter, the system assigns the default time zone of the region where the instance resides.\n","willReplaceOnChanges":true},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. Valid values:\n- true: delete protect.\n- false: no delete protect.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`deletionProtection`\" pulumi-lang-dotnet=\"`DeletionProtection`\" pulumi-lang-go=\"`deletionProtection`\" pulumi-lang-python=\"`deletion_protection`\" pulumi-lang-yaml=\"`deletionProtection`\" pulumi-lang-java=\"`deletionProtection`\"\u003e`deletion_protection`\u003c/span\u003e is valid only when attribute \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `Postpaid` or `Serverless`, supported engine type: `MySQL`, `PostgreSQL`, `MariaDB`, `MSSQL`.\n"},"direction":{"type":"string","description":"The instance configuration type. Valid values: [\"Up\", \"Down\", \"TempUpgrade\", \"Serverless\"]\n"},"effectiveTime":{"type":"string","description":"The method to update the engine version and change.  Default value: Immediate. Valid values:\n- Immediate: The change immediately takes effect.\n- MaintainTime: The change takes effect during the specified maintenance window. For more information, see ModifyDBInstanceMaintainTime.\n"},"encryptionKey":{"type":"string","description":"The key id of the KMS. Used for encrypting a disk if not null. Only for PostgreSQL, MySQL and SQLServer.\nWhen the instance is PostgreSQL, this parameter can be used to enable, modify, and disable cloud disk encryption.Value range:\n- ServiceKey: Enable disk encryption using the service-managed key (Default Service CMK) automatically generated by Alibaba Cloud RDS.\n- \u003cKey ID\u003e: Use a custom key to enable cloud disk encryption or change the current key. For example: 494c98ce-f2b5-48ab-96ab-36c986b6****.\n- disabled: Turn off cloud disk encryption.\n\u003e **NOTE:** This parameter is available when the instance runs MySQL.\n"},"engine":{"type":"string","description":"Database type. Value options: MySQL, SQLServer, PostgreSQL, MariaDB.\n\n\u003e **NOTE:** When the 'engine_version' changes, it can be used as the target database version for the large version upgrade of RDS for MySQL instance.\n","willReplaceOnChanges":true},"engineVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.\n- MySQL: [ 5.5、5.6、5.7、8.0 ]\n- SQLServer: [ 2008r2、08r2_ent_ha、2012、2012_ent_ha、2012_std_ha、2012_web、2014_std_ha、2016_ent_ha、2016_std_ha、2016_web、2017_std_ha、2017_ent、2019_std_ha、2019_ent ]\n- PostgreSQL: [ 10.0、11.0、12.0、13.0、14.0、15.0 ]\n- MariaDB: [ 10.3 ]\n**Serverless**\n- MySQL: [ 5.7、8.0 ]\n- SQLServer: [ 2016_std_sl、2017_std_sl、2019_std_sl ]\n- PostgreSQL: [ 14.0 ]\n- MariaDB does not support creating serverless instances.\n"},"force":{"type":"string","description":"Specifies whether to enable forcible switching. Valid values:\n- Yes\n- No\n"},"forceRestart":{"type":"boolean","description":"Set it to true to make some parameter efficient when modifying them. Default to false.\n"},"freshWhiteListReadins":{"type":"string","description":"The read-only instances to which you want to synchronize the IP address whitelist.\n* If the instance is attached with a read-only instance, you can use this parameter to synchronize the IP address whitelist to the read-only instance. If the instance is attached with multiple read-only instances, the read-only instances must be separated by commas (,).\n* If the instance is not attached with a read-only instance, this parameter is empty.\n"},"haConfig":{"type":"string","description":"The primary/secondary switchover mode of the instance. Default value: Auto. Valid values:\n- Auto: The system automatically switches over services from the primary to secondary instances in the event of a fault.\n- Manual: You must manually switch over services from the primary to secondary instances in the event of a fault.\n"},"instanceChargeType":{"type":"string","description":"Valid values are `Prepaid`, `Postpaid`, `Serverless`, Default to `Postpaid`. Currently, the resource only supports PostPaid to PrePaid. For more information, see [Overview](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/what-is-serverless?spm=a2c63.p38356.0.0.772a28cfTAGqIv).\n"},"instanceName":{"type":"string","description":"The name of DB instance. It a string of 2 to 256 characters.\n"},"instanceStorage":{"type":"integer","description":"User-defined DB instance storage space. Value range:\n- [5, 2000] for MySQL/PostgreSQL HA dual node edition;\n- [20,1000] for MySQL 5.7 basic single node edition;\n- [10, 2000] for SQL Server 2008R2;\n- [20,2000] for SQL Server 2012 basic single node edition\nIncrease progressively at a rate of 5 GB. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).\nNote: There is extra 5 GB storage for SQL Server Instance, and it is not in specified \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e.\n"},"instanceType":{"type":"string","description":"DB Instance type. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).\n- To create a serverless instance, please pass the following values:\n- MySQL basic: mysql.n2.serverless.1c\n- MySQL high availability: mysql.n2.serverless.2c\n- SQLServer high availability: mssql.mem2.serverless.s2\n- PostgreSQL basic: pg.n2.serverless.1c\n\n\u003e **NOTE:** When `storage_auto_scale=\"Enable\"`, do not perform \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e check. when `storage_auto_scale=\"Disable\"`, if the instance itself \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003ehas changed. You need to manually revise the \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e in the template value. When `payment_type=\"Serverless\"` and when modifying, do not perform \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e check. Otherwise, check.\n"},"maintainTime":{"type":"string","description":"Maintainable time period format of the instance: HH:MMZ-HH:MMZ (UTC time)\n"},"manualHaTime":{"type":"string","description":"The time after when you want to enable automatic primary/secondary switchover. At most, you can set this parameter to 23:59:59 seven days later. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n\n\u003e **NOTE:** This parameter only takes effect when the HAConfig parameter is set to Manual.\n"},"modifyMode":{"type":"string","description":"The method that is used to modify the IP address whitelist. Default value: Cover. Valid values:\n- Cover: Use the value of the SecurityIps parameter to overwrite the existing entries in the IP address whitelist.\n- Append: Add the IP addresses and CIDR blocks that are specified in the SecurityIps parameter to the IP address whitelist.\n- Delete: Delete IP addresses and CIDR blocks that are specified in the SecurityIps parameter from the IP address whitelist. You must retain at least one IP address or CIDR block.\n"},"monitoringPeriod":{"type":"integer","description":"The monitoring frequency in seconds. Valid values are 5, 10, 60, 300. Defaults to 300.\n"},"nodeId":{"type":"string","description":"The globally unique identifier (GUID) of the secondary instance. You can call the DescribeDBInstanceHAConfig operation to query the GUID of the secondary instance.\n"},"optimizedWrites":{"type":"string","description":"Write optimization function switch. supported engine type: `MySQL`. Valid values:\n- optimized: Enable\n- none: Disable\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:rds/InstanceParameter:InstanceParameter"},"description":"Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm) . See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n\n\u003e **NOTE:** The system will use \u003cspan pulumi-lang-nodejs=\"`520`\" pulumi-lang-dotnet=\"`520`\" pulumi-lang-go=\"`520`\" pulumi-lang-python=\"`520`\" pulumi-lang-yaml=\"`520`\" pulumi-lang-java=\"`520`\"\u003e`520`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`532`\" pulumi-lang-dotnet=\"`532`\" pulumi-lang-go=\"`532`\" pulumi-lang-python=\"`532`\" pulumi-lang-yaml=\"`532`\" pulumi-lang-java=\"`532`\"\u003e`532`\u003c/span\u003e connections from \u003cspan pulumi-lang-nodejs=\"`maxConnections`\" pulumi-lang-dotnet=\"`MaxConnections`\" pulumi-lang-go=\"`maxConnections`\" pulumi-lang-python=\"`max_connections`\" pulumi-lang-yaml=\"`maxConnections`\" pulumi-lang-java=\"`maxConnections`\"\u003e`max_connections`\u003c/span\u003e depending on your instance type.\n"},"period":{"type":"integer","description":"The duration that you will buy DB instance (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Valid values: [1~9], 12, 24, 36.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"pgBouncerEnabled":{"type":"boolean","description":"Modify the PgBouncer feature of the RDS PostgreSQL instance. Valid values:\n- true: enable.\n- false: disable.\n"},"pgHbaConfs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/InstancePgHbaConf:InstancePgHbaConf"},"description":"The configuration of [AD domain](https://www.alibabacloud.com/help/en/doc-detail/349288.htm) . See \u003cspan pulumi-lang-nodejs=\"`pgHbaConf`\" pulumi-lang-dotnet=\"`PgHbaConf`\" pulumi-lang-go=\"`pgHbaConf`\" pulumi-lang-python=\"`pg_hba_conf`\" pulumi-lang-yaml=\"`pgHbaConf`\" pulumi-lang-java=\"`pgHbaConf`\"\u003e`pg_hba_conf`\u003c/span\u003e below.\n"},"port":{"type":"string","description":"The private port of the database service. If you want to update public port, please use resource\u003cspan pulumi-lang-nodejs=\" alicloud.rds.Connection \" pulumi-lang-dotnet=\" alicloud.rds.Connection \" pulumi-lang-go=\" rds.Connection \" pulumi-lang-python=\" rds.Connection \" pulumi-lang-yaml=\" alicloud.rds.Connection \" pulumi-lang-java=\" alicloud.rds.Connection \"\u003e alicloud.rds.Connection \u003c/span\u003eport.\n"},"privateIpAddress":{"type":"string","description":"The private IP address of the instance. The private IP address must be within the Classless Inter-Domain Routing (CIDR) block of the vSwitch that is specified by the VSwitchId parameter.\n"},"recoveryModel":{"type":"string","description":"Enable the Simple Recovery Model for an RDS SQL Server Instance.The Simple Recovery Model feature is only supported by the Basic Series of RDS SQL Server instances. Once this feature is enabled, it cannot be disabled.Valid values:\n- simple: Enable Simple Recovery.\n\u003e **NOTE:** If you set this parameter to Manual, you must specify the ManualHATime parameter.\n"},"releasedKeepPolicy":{"type":"string","description":"The policy based on which ApsaraDB RDS retains archived backup files after the instance is released. Valid values:\n- None: No archived backup files are retained.\n- Lastest: Only the last archived backup file is retained.\n- All: All the archived backup files are retained.\n\n\u003e **NOTE:** This parameter is supported only when the instance runs the MySQL database engine.\n"},"replicationAcl":{"type":"string","description":"The method that is used to verify the replication permission. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the DB instance belongs.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the RAM role.\n\n\u003e **NOTE:**  This parameter is not required when creating an instance running MySQL, PostgreSQL, or SQL Server.It is required only when you need to create an instance with cloud disk encryption enabled using a specified key ID.\nYou can configure RAM authorization to require a RAM user to enable cloud disk encryption when the RAM user is used to create an instance. If cloud disk encryption is disabled during the instance creation, the creation operation fails. To complete the configuration, you can attach the following policy to the RAM user: {\"Version\":\"1\",\"Statement\":[{\"Effect\":\"Deny\",\"Action\":\"rds:CreateDBInstance\",\"Resource\":\"*\",\"Condition\":{\"StringEquals\":{\"rds:DiskEncryptionRequired\":\"false\"}}}]}\n"},"securityGroupId":{"type":"string","description":"It has been deprecated from 1.69.0 and use \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e instead.\n","deprecationMessage":"Attribute \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e has been deprecated from 1.69.0 and use \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e instead."},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":", Available since v1.69.0) The list IDs to join ECS Security Group. At most supports three security groups.\n"},"securityIpMode":{"type":"string","description":"Valid values are \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`safety`\" pulumi-lang-dotnet=\"`Safety`\" pulumi-lang-go=\"`safety`\" pulumi-lang-python=\"`safety`\" pulumi-lang-yaml=\"`safety`\" pulumi-lang-java=\"`safety`\"\u003e`safety`\u003c/span\u003e, Default to \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e. support \u003cspan pulumi-lang-nodejs=\"`safety`\" pulumi-lang-dotnet=\"`Safety`\" pulumi-lang-go=\"`safety`\" pulumi-lang-python=\"`safety`\" pulumi-lang-yaml=\"`safety`\" pulumi-lang-java=\"`safety`\"\u003e`safety`\u003c/span\u003e switch to high security access mode.\n"},"securityIpType":{"type":"string","description":"The type of IP address in the IP address whitelist.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"serverCert":{"type":"string","description":"The content of the server certificate. This parameter is supported only when the instance runs PostgreSQL or MySQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter. **NOTE:** From version 1.231.0, \u003cspan pulumi-lang-nodejs=\"`serverCert`\" pulumi-lang-dotnet=\"`ServerCert`\" pulumi-lang-go=\"`serverCert`\" pulumi-lang-python=\"`server_cert`\" pulumi-lang-yaml=\"`serverCert`\" pulumi-lang-java=\"`serverCert`\"\u003e`server_cert`\u003c/span\u003e start  support `MySQL` engine.\n","secret":true},"serverKey":{"type":"string","description":"The private key of the server certificate. This parameter is supported only when the instance runs PostgreSQL or MySQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter. **NOTE:** From version 1.231.0, \u003cspan pulumi-lang-nodejs=\"`serverKey`\" pulumi-lang-dotnet=\"`ServerKey`\" pulumi-lang-go=\"`serverKey`\" pulumi-lang-python=\"`server_key`\" pulumi-lang-yaml=\"`serverKey`\" pulumi-lang-java=\"`serverKey`\"\u003e`server_key`\u003c/span\u003e start support `MySQL` engine.\n"},"serverlessConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/InstanceServerlessConfig:InstanceServerlessConfig"},"description":"The settings of the serverless instance. This parameter is required when you create a serverless instance. This parameter takes effect only when you create an ApsaraDB RDS for Serverless instance. See \u003cspan pulumi-lang-nodejs=\"`serverlessConfig`\" pulumi-lang-dotnet=\"`ServerlessConfig`\" pulumi-lang-go=\"`serverlessConfig`\" pulumi-lang-python=\"`serverless_config`\" pulumi-lang-yaml=\"`serverlessConfig`\" pulumi-lang-java=\"`serverlessConfig`\"\u003e`serverless_config`\u003c/span\u003e below.\n"},"sqlCollectorConfigValue":{"type":"integer","description":"The sql collector keep time of the instance. Valid values are \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1095`\" pulumi-lang-dotnet=\"`1095`\" pulumi-lang-go=\"`1095`\" pulumi-lang-python=\"`1095`\" pulumi-lang-yaml=\"`1095`\" pulumi-lang-java=\"`1095`\"\u003e`1095`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1825`\" pulumi-lang-dotnet=\"`1825`\" pulumi-lang-go=\"`1825`\" pulumi-lang-python=\"`1825`\" pulumi-lang-yaml=\"`1825`\" pulumi-lang-java=\"`1825`\"\u003e`1825`\u003c/span\u003e, Default to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n\u003e **NOTE:** This parameter takes effect when\u003cspan pulumi-lang-nodejs=\" sqlCollectorStatus \" pulumi-lang-dotnet=\" SqlCollectorStatus \" pulumi-lang-go=\" sqlCollectorStatus \" pulumi-lang-python=\" sql_collector_status \" pulumi-lang-yaml=\" sqlCollectorStatus \" pulumi-lang-java=\" sqlCollectorStatus \"\u003e sql_collector_status \u003c/span\u003eis set to Enabled and does not take effect when\u003cspan pulumi-lang-nodejs=\" sqlCollectorStatus \" pulumi-lang-dotnet=\" SqlCollectorStatus \" pulumi-lang-go=\" sqlCollectorStatus \" pulumi-lang-python=\" sql_collector_status \" pulumi-lang-yaml=\" sqlCollectorStatus \" pulumi-lang-java=\" sqlCollectorStatus \"\u003e sql_collector_status \u003c/span\u003eis set to Disabled.\n"},"sqlCollectorStatus":{"type":"string","description":"The sql collector status of the instance. Valid values are `Enabled`, `Disabled`, Default to `Disabled`.\n"},"sslAction":{"type":"string","description":"Actions performed on SSL functions. Valid values: \n`Open`: turn on SSL encryption;\n`Close`: turn off SSL encryption;\n`Update`: update SSL certificate.\nSee more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26254.htm).\n\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`sslAction`\" pulumi-lang-dotnet=\"`SslAction`\" pulumi-lang-go=\"`sslAction`\" pulumi-lang-python=\"`ssl_action`\" pulumi-lang-yaml=\"`sslAction`\" pulumi-lang-java=\"`sslAction`\"\u003e`ssl_action`\u003c/span\u003e will be ignored when setting \u003cspan pulumi-lang-nodejs=\"`instanceChargeType \" pulumi-lang-dotnet=\"`InstanceChargeType \" pulumi-lang-go=\"`instanceChargeType \" pulumi-lang-python=\"`instance_charge_type \" pulumi-lang-yaml=\"`instanceChargeType \" pulumi-lang-java=\"`instanceChargeType \"\u003e`instance_charge_type \u003c/span\u003e= \"Serverless\"` for SQLServer, PostgreSQL or MariaDB.\n"},"sslConnectionString":{"type":"string","description":"The internal or public endpoint for which the server certificate needs to be created or updated.\n"},"storageAutoScale":{"type":"string","description":"Automatic storage space expansion switch. Valid values:\n- Enable\n- Disable\n\n\u003e **NOTE:** This parameter only takes effect when the StorageAutoScale parameter is set to Enable.\n"},"storageThreshold":{"type":"integer","description":"The threshold in percentage based on which an automatic storage expansion is triggered. If the available storage reaches the threshold, ApsaraDB RDS increases the storage capacity of the instance.\nValid values: [10, 20, 30, 40, 50].\n\n\u003e **NOTE:** This parameter only takes effect when the StorageAutoScale parameter is set to Enable. The value must be greater than or equal to the total size of the current storage space of the instance.\n"},"storageUpperBound":{"type":"integer","description":"The upper limit of the total storage space for automatic expansion of the storage space, that is, automatic expansion will not cause the total storage space of the instance to exceed this value. Unit: GB. The value must be ≥0.\n\n\u003e **NOTE:** Because of data backup and migration, change DB instance type and storage would cost 15~20 minutes. Please make full preparation before changing them.\n"},"switchTime":{"type":"string","description":"The specific point in time when you want to perform the update. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. It is valid only when \u003cspan pulumi-lang-nodejs=\"`targetMinorVersion`\" pulumi-lang-dotnet=\"`TargetMinorVersion`\" pulumi-lang-go=\"`targetMinorVersion`\" pulumi-lang-python=\"`target_minor_version`\" pulumi-lang-yaml=\"`targetMinorVersion`\" pulumi-lang-java=\"`targetMinorVersion`\"\u003e`target_minor_version`\u003c/span\u003e is changed. The time must be in UTC.\n\n\u003e **NOTE:** This parameter takes effect only when you set the UpgradeTime parameter to SpecifyTime.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \u003cspan pulumi-lang-nodejs=\"`aliyun`\" pulumi-lang-dotnet=\"`Aliyun`\" pulumi-lang-go=\"`aliyun`\" pulumi-lang-python=\"`aliyun`\" pulumi-lang-yaml=\"`aliyun`\" pulumi-lang-java=\"`aliyun`\"\u003e`aliyun`\u003c/span\u003e, `acs:`, \u003cspan pulumi-lang-nodejs=\"`aliyun`\" pulumi-lang-dotnet=\"`Aliyun`\" pulumi-lang-go=\"`aliyun`\" pulumi-lang-python=\"`aliyun`\" pulumi-lang-yaml=\"`aliyun`\" pulumi-lang-java=\"`aliyun`\"\u003e`aliyun`\u003c/span\u003e, or `https://`. It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \u003cspan pulumi-lang-nodejs=\"`aliyun`\" pulumi-lang-dotnet=\"`Aliyun`\" pulumi-lang-go=\"`aliyun`\" pulumi-lang-python=\"`aliyun`\" pulumi-lang-yaml=\"`aliyun`\" pulumi-lang-java=\"`aliyun`\"\u003e`aliyun`\u003c/span\u003e, `acs:`, `http://`, or `https://`. It can be a null string.\n\n\u003e **Note:** From 1.63.0, the tag key and value are case sensitive. Before that, they are not case sensitive.\n"},"targetMinorVersion":{"type":"string","description":"The minor engine version to which you want to update the instance. If you do not specify this parameter, the instance is updated to the latest minor engine version. You must specify the minor engine version in one of the following formats:\n- PostgreSQL: rds_postgres_\u003cMajor engine version\u003e00_\u003cMinor engine version\u003e. Example: rds_postgres_1200_20200830.\n- MySQL: \u003cRDS edition\u003e_\u003cMinor engine version\u003e. Examples: rds_20200229, xcluster_20200229, and xcluster80_20200229. The following RDS editions are supported:\n- rds: The instance runs RDS Basic or High-availability Edition.\n- xcluster: The instance runs MySQL 5.7 on RDS Enterprise Edition.\n- xcluster80: The instance runs MySQL 8.0 on RDS Enterprise Edition.\n- SQLServer: \u003cMinor engine version\u003e. Example: 15.0.4073.23.\n\n\u003e **NOTE:** For more information about minor engine versions, see Release notes of minor AliPG versions, Release notes of minor AliSQL versions, and Release notes of minor engine versions of ApsaraDB RDS for SQL Server.\n"},"tcpConnectionType":{"type":"string","description":"The availability check method of the instance. Valid values:\n- **SHORT**: Alibaba Cloud uses short-lived connections to check the availability of the instance.\n- **LONG**: Alibaba Cloud uses persistent connections to check the availability of the instance.\n"},"tdeEncryptionKey":{"type":"string","description":"The ID of the custom key.\n"},"tdeStatus":{"type":"string","description":"The TDE(Transparent Data Encryption) status. After TDE is turned on, it cannot be turned off. See more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26256.htm).\n\n\u003e **NOTE:** When creating an instance and enabling disk encryption, the value of\u003cspan pulumi-lang-nodejs=\" encryptionKey \" pulumi-lang-dotnet=\" EncryptionKey \" pulumi-lang-go=\" encryptionKey \" pulumi-lang-python=\" encryption_key \" pulumi-lang-yaml=\" encryptionKey \" pulumi-lang-java=\" encryptionKey \"\u003e encryption_key \u003c/span\u003ecan only be a Key ID; it cannot be a ServiceKey. After the instance is created, you can manage the disk encryption using: ServiceKey, Key ID, or disabled.\n"},"templateIdLists":{"type":"array","items":{"type":"integer"},"description":"Whitelist Template ID List.\n"},"upgradeDbInstanceKernelVersion":{"type":"boolean","description":"Whether to upgrade a minor version of the kernel. Valid values:\n- true: upgrade\n- false: not to upgrade\n\n\u003e **NOTE:** Database Engine and Version: Supports only MySQL `5.7` or `8.0` instances.\n\n\u003e **NOTE:** Storage Type: Supports only ESSD cloud disks and general-purpose cloud disks.\n\n\u003e **NOTE:** Activation Stage: Supports only during instance creation or when enabling write optimization features for existing  (high-availability/cluster series) instances.\n","deprecationMessage":"Attribute \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion`\" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion`\" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion`\" pulumi-lang-python=\"`upgrade_db_instance_kernel_version`\" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion`\" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion`\"\u003e`upgrade_db_instance_kernel_version`\u003c/span\u003e has been deprecated from 1.198.0 and use \u003cspan pulumi-lang-nodejs=\"`targetMinorVersion`\" pulumi-lang-dotnet=\"`TargetMinorVersion`\" pulumi-lang-go=\"`targetMinorVersion`\" pulumi-lang-python=\"`target_minor_version`\" pulumi-lang-yaml=\"`targetMinorVersion`\" pulumi-lang-java=\"`targetMinorVersion`\"\u003e`target_minor_version`\u003c/span\u003e instead."},"upgradeTime":{"type":"string","description":"The method to update the minor engine version. Default value: Immediate. It is valid only when \u003cspan pulumi-lang-nodejs=\"`targetMinorVersion`\" pulumi-lang-dotnet=\"`TargetMinorVersion`\" pulumi-lang-go=\"`targetMinorVersion`\" pulumi-lang-python=\"`target_minor_version`\" pulumi-lang-yaml=\"`targetMinorVersion`\" pulumi-lang-java=\"`targetMinorVersion`\"\u003e`target_minor_version`\u003c/span\u003e is changed. Valid values:\n- Immediate: The minor engine version is immediately updated.\n- MaintainTime: The minor engine version is updated during the maintenance window. For more information about how to change the maintenance window, see ModifyDBInstanceMaintainTime.\n- SpecifyTime: The minor engine version is updated at the point in time you specify.\n"},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n\n\n\u003e **NOTE:** This parameter applies only to ApsaraDB RDS for MySQL instances. For more information about Upgrade the major engine version of an ApsaraDB RDS for MySQL instance, see [Upgrade the major engine version of an RDS instance in the ApsaraDB RDS console](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/upgrade-the-major-engine-version-of-an-apsaradb-rds-for-mysql-instance-1).\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC. If there are multiple vswitches, separate them with commas.\n","willReplaceOnChanges":true},"whitelistNetworkType":{"type":"string","description":"The network type of the IP address whitelist. Default value: MIX. Valid values:\n- Classic: classic network in enhanced whitelist mode\n- VPC: virtual private cloud (VPC) in enhanced whitelist mode\n- MIX: standard whitelist mode\n\n\u003e **NOTE:** In standard whitelist mode, IP addresses and CIDR blocks can be added only to the default IP address whitelist. In enhanced whitelist mode, IP addresses and CIDR blocks can be added to both IP address whitelists of the classic network type and those of the VPC network type.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB instance. From version 1.8.1, it supports multiple zone.\nIf it is a multi-zone and \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified, the vswitch must in the one of them.\nThe multiple zone ID can be retrieved by setting \u003cspan pulumi-lang-nodejs=\"`multi`\" pulumi-lang-dotnet=\"`Multi`\" pulumi-lang-go=\"`multi`\" pulumi-lang-python=\"`multi`\" pulumi-lang-yaml=\"`multi`\" pulumi-lang-java=\"`multi`\"\u003e`multi`\u003c/span\u003e to \"true\" in the data source \u003cspan pulumi-lang-nodejs=\"`alicloud.getZones`\" pulumi-lang-dotnet=\"`alicloud.getZones`\" pulumi-lang-go=\"`getZones`\" pulumi-lang-python=\"`get_zones`\" pulumi-lang-yaml=\"`alicloud.getZones`\" pulumi-lang-java=\"`alicloud.getZones`\"\u003e`alicloud.getZones`\u003c/span\u003e.\n","willReplaceOnChanges":true},"zoneIdSlaveA":{"type":"string","description":"The region ID of the secondary instance if you create a secondary instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.\n","willReplaceOnChanges":true},"zoneIdSlaveB":{"type":"string","description":"RDS MySQL Cluster series instances support creating 1 to 2 secondary nodes at the same time when establishing a new instance. If you have this requirement, you can use this parameter to specify the availability zone for the second secondary node.\n","willReplaceOnChanges":true}},"requiredInputs":["engine","engineVersion","instanceStorage","instanceType"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"acl":{"type":"string","description":"The method that is used to verify the identities of clients. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"autoRenew":{"type":"boolean","description":"Whether to renewal a DB instance automatically or not. It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an instance, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Valid value:[1~12], Default to 1.\n"},"autoUpgradeMinorVersion":{"type":"string","description":"The upgrade method to use. Valid values:\n- Auto: Instances are automatically upgraded to a higher minor version.\n- Manual: Instances are forcibly upgraded to a higher minor version when the current version is unpublished.\n\nSee more [details and limitation](https://www.alibabacloud.com/help/doc-detail/123605.htm).\n"},"babelfishConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/InstanceBabelfishConfig:InstanceBabelfishConfig"},"description":"The configuration of an ApsaraDB RDS for PostgreSQL instance for which Babelfish is enabled. See \u003cspan pulumi-lang-nodejs=\"`babelfishConfig`\" pulumi-lang-dotnet=\"`BabelfishConfig`\" pulumi-lang-go=\"`babelfishConfig`\" pulumi-lang-python=\"`babelfish_config`\" pulumi-lang-yaml=\"`babelfishConfig`\" pulumi-lang-java=\"`babelfishConfig`\"\u003e`babelfish_config`\u003c/span\u003e below.\n\n\u003e **NOTE:** This parameter takes effect only when you create an ApsaraDB RDS for PostgreSQL instance. For more information, see [Introduction to Babelfish](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/babelfish-for-pg).\n","willReplaceOnChanges":true},"babelfishPort":{"type":"string","description":"The TDS port of the instance for which Babelfish is enabled.\n\n\u003e **NOTE:** This parameter applies only to ApsaraDB RDS for PostgreSQL instances. For more information about Babelfish for ApsaraDB RDS for PostgreSQL, see [Introduction to Babelfish](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/babelfish-for-pg).\n"},"burstingEnabled":{"type":"boolean","description":"Specifies whether to enable the I/O burst feature of general\nESSDs. Valid values:\n- true\n- false\n"},"caType":{"type":"string","description":"The type of the server certificate. This parameter is supported only when the instance runs PostgreSQL or MySQL with standard or enhanced SSDs. If you set the SSLEnabled parameter to 1, the default value of this parameter is aliyun. **NOTE:** From version 1.231.0, \u003cspan pulumi-lang-nodejs=\"`caType`\" pulumi-lang-dotnet=\"`CaType`\" pulumi-lang-go=\"`caType`\" pulumi-lang-python=\"`ca_type`\" pulumi-lang-yaml=\"`caType`\" pulumi-lang-java=\"`caType`\"\u003e`ca_type`\u003c/span\u003e start  support `MySQL` engine. Value range:\n- aliyun: a cloud certificate\n- custom: a custom certificate\n"},"category":{"type":"string","description":"The RDS edition of the instance. If you want to create a serverless instance, you must use this value. Valid values:\n* **Basic**: Basic Edition.\n* **HighAvailability**: High-availability Edition.\n* **AlwaysOn**: Cluster Edition.\n* **Finance**: Enterprise Edition.\n* **cluster**: MySQL Cluster Edition. (Available since v1.202.0)\n* **serverless_basic**: RDS Serverless Basic Edition. This edition is available only for instances that run MySQL and PostgreSQL. (Available since v1.200.0)\n* **serverless_standard**: RDS Serverless Basic Edition. This edition is available only for instances that run MySQL and PostgreSQL. (Available since v1.204.0)\n* **serverless_ha**: RDS Serverless High-availability Edition for SQL Server. (Available since v1.204.0)\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveA`\" pulumi-lang-dotnet=\"`ZoneIdSlaveA`\" pulumi-lang-go=\"`zoneIdSlaveA`\" pulumi-lang-python=\"`zone_id_slave_a`\" pulumi-lang-yaml=\"`zoneIdSlaveA`\" pulumi-lang-java=\"`zoneIdSlaveA`\"\u003e`zone_id_slave_a`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveB`\" pulumi-lang-dotnet=\"`ZoneIdSlaveB`\" pulumi-lang-go=\"`zoneIdSlaveB`\" pulumi-lang-python=\"`zone_id_slave_b`\" pulumi-lang-yaml=\"`zoneIdSlaveB`\" pulumi-lang-java=\"`zoneIdSlaveB`\"\u003e`zone_id_slave_b`\u003c/span\u003e can specify slave zone ids when creating the high-availability or enterprise edition instances. Meanwhile, \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e needs to pass in the corresponding vswitch id to the slave zone by order (If the \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is not specified, the classic network version will be created). For example, \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e = \"zone-a\" and \u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveA`\" pulumi-lang-dotnet=\"`ZoneIdSlaveA`\" pulumi-lang-go=\"`zoneIdSlaveA`\" pulumi-lang-python=\"`zone_id_slave_a`\" pulumi-lang-yaml=\"`zoneIdSlaveA`\" pulumi-lang-java=\"`zoneIdSlaveA`\"\u003e`zone_id_slave_a`\u003c/span\u003e = \"zone-c\", \u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveB`\" pulumi-lang-dotnet=\"`ZoneIdSlaveB`\" pulumi-lang-go=\"`zoneIdSlaveB`\" pulumi-lang-python=\"`zone_id_slave_b`\" pulumi-lang-yaml=\"`zoneIdSlaveB`\" pulumi-lang-java=\"`zoneIdSlaveB`\"\u003e`zone_id_slave_b`\u003c/span\u003e = \"zone-b\", then the \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e must be \"vsw-zone-a,vsw-zone-c,vsw-zone-b\". Of course, you can also choose automatic allocation , for example, \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e = \"zone-a\" and \u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveA`\" pulumi-lang-dotnet=\"`ZoneIdSlaveA`\" pulumi-lang-go=\"`zoneIdSlaveA`\" pulumi-lang-python=\"`zone_id_slave_a`\" pulumi-lang-yaml=\"`zoneIdSlaveA`\" pulumi-lang-java=\"`zoneIdSlaveA`\"\u003e`zone_id_slave_a`\u003c/span\u003e = \"Auto\",\u003cspan pulumi-lang-nodejs=\"`zoneIdSlaveB`\" pulumi-lang-dotnet=\"`ZoneIdSlaveB`\" pulumi-lang-go=\"`zoneIdSlaveB`\" pulumi-lang-python=\"`zone_id_slave_b`\" pulumi-lang-yaml=\"`zoneIdSlaveB`\" pulumi-lang-java=\"`zoneIdSlaveB`\"\u003e`zone_id_slave_b`\u003c/span\u003e = \"Auto\", then the \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e must be \"vsw-zone-a,Auto,Auto\". The list contains up to 2 slave zone ids , separated by commas.\n"},"clientCaCert":{"type":"string","description":"The public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCAEbabled parameter to 1, you must also specify this parameter.\n","secret":true},"clientCaEnabled":{"type":"integer","description":"Specifies whether to enable the public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. Valid values:\n- 1: enables the public key\n- 0: disables the public key\n"},"clientCertRevocationList":{"type":"string","description":"The CRL that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCrlEnabled parameter to 1, you must also specify this parameter.\n"},"clientCrlEnabled":{"type":"integer","description":"Specifies whether to enable a certificate revocation list (CRL) that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- 1: enables the CRL\n- 0: disables the CRL\n"},"coldDataEnabled":{"type":"boolean","description":"High performance cloud disk data archiving function switch.Example value:\n- true: Enable high-performance cloud disk data archiving function.\n- false: Disable high-performance cloud disk data archiving function.\n"},"connectionString":{"type":"string","description":"RDS database connection string.\n"},"connectionStringPrefix":{"type":"string","description":"The private connection string prefix. If you want to update public connection string prefix, please use resource\u003cspan pulumi-lang-nodejs=\" alicloud.rds.Connection \" pulumi-lang-dotnet=\" alicloud.rds.Connection \" pulumi-lang-go=\" rds.Connection \" pulumi-lang-python=\" rds.Connection \" pulumi-lang-yaml=\" alicloud.rds.Connection \" pulumi-lang-java=\" alicloud.rds.Connection \"\u003e alicloud.rds.Connection \u003c/span\u003econnection_prefix.\n\u003e **NOTE:** The prefix must be 8 to 64 characters in length and can contain letters, digits, and hyphens (-). It cannot contain Chinese characters and special characters ~!#%^\u0026*=+\\|{};:'\",\u003c\u003e/?\n"},"createTime":{"type":"string","description":"(Available since v1.204.1) The creation time of db instance.\n"},"dbInstanceIpArrayAttribute":{"type":"string","description":"The attribute of the IP address whitelist. By default, this parameter is empty.\n\n\u003e **NOTE:** The IP address whitelists that have the hidden attribute are not displayed in the ApsaraDB RDS console. These IP address whitelists are used to access Alibaba Cloud services, such as Data Transmission Service (DTS).\n"},"dbInstanceIpArrayName":{"type":"string","description":"The name of the IP address whitelist. Default value: Default.\n\n\u003e **NOTE:** A maximum of 200 IP address whitelists can be configured for each instance.\n"},"dbInstanceStorageType":{"type":"string","description":"The storage type of the instance. Serverless instance, only \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e can be selected. Valid values:\n- local_ssd: specifies to use local SSDs. This value is recommended.\n- cloud_ssd: specifies to use standard SSDs.\n- cloud_essd: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd2: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd3: specifies to use enhanced SSDs (ESSDs).\n- general_essd: general essd.\n"},"dbInstanceType":{"type":"string","description":"(Available since v1.197.0) The type of db instance.\n"},"dbIsIgnoreCase":{"type":"boolean","description":"Specifies whether table names on the instance are case-sensitive. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"dbParamGroupId":{"type":"string","description":"Parameter template ID. Only MySQL and PostgreSQL support this parameter. If this parameter is not specified, the default parameter template is used. You can also customize a parameter template and use it here.\n"},"dbTimeZone":{"type":"string","description":"The time zone of the instance. This parameter takes effect only when you set the `Engine` parameter to MySQL or PostgreSQL.\n- If you set the `Engine` parameter to MySQL.\n- This time zone of the instance is in UTC. Valid values: -12:59 to +13:00.\n- You can specify this parameter when the instance is equipped with local SSDs. For example, you can specify the time zone to Asia/Hong_Kong. For more information about time zones, see [Time zones](https://www.alibabacloud.com/help/doc-detail/297356.htm).\n- If you set the `Engine` parameter to PostgreSQL.\n- This time zone of the instance is not in UTC. For more information about time zones, see [Time zones](https://www.alibabacloud.com/help/doc-detail/297356.htm).\n- You can specify this parameter only when the instance is equipped with standard SSDs or ESSDs.\n\n\u003e **NOTE:** You can specify the time zone when you create a primary instance. You cannot specify the time zone when you create a read-only instance. Read-only instances inherit the time zone of their primary instance. If you do not specify this parameter, the system assigns the default time zone of the region where the instance resides.\n","willReplaceOnChanges":true},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. Valid values:\n- true: delete protect.\n- false: no delete protect.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`deletionProtection`\" pulumi-lang-dotnet=\"`DeletionProtection`\" pulumi-lang-go=\"`deletionProtection`\" pulumi-lang-python=\"`deletion_protection`\" pulumi-lang-yaml=\"`deletionProtection`\" pulumi-lang-java=\"`deletionProtection`\"\u003e`deletion_protection`\u003c/span\u003e is valid only when attribute \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is set to `Postpaid` or `Serverless`, supported engine type: `MySQL`, `PostgreSQL`, `MariaDB`, `MSSQL`.\n"},"direction":{"type":"string","description":"The instance configuration type. Valid values: [\"Up\", \"Down\", \"TempUpgrade\", \"Serverless\"]\n"},"effectiveTime":{"type":"string","description":"The method to update the engine version and change.  Default value: Immediate. Valid values:\n- Immediate: The change immediately takes effect.\n- MaintainTime: The change takes effect during the specified maintenance window. For more information, see ModifyDBInstanceMaintainTime.\n"},"encryptionKey":{"type":"string","description":"The key id of the KMS. Used for encrypting a disk if not null. Only for PostgreSQL, MySQL and SQLServer.\nWhen the instance is PostgreSQL, this parameter can be used to enable, modify, and disable cloud disk encryption.Value range:\n- ServiceKey: Enable disk encryption using the service-managed key (Default Service CMK) automatically generated by Alibaba Cloud RDS.\n- \u003cKey ID\u003e: Use a custom key to enable cloud disk encryption or change the current key. For example: 494c98ce-f2b5-48ab-96ab-36c986b6****.\n- disabled: Turn off cloud disk encryption.\n\u003e **NOTE:** This parameter is available when the instance runs MySQL.\n"},"engine":{"type":"string","description":"Database type. Value options: MySQL, SQLServer, PostgreSQL, MariaDB.\n\n\u003e **NOTE:** When the 'engine_version' changes, it can be used as the target database version for the large version upgrade of RDS for MySQL instance.\n","willReplaceOnChanges":true},"engineVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.\n- MySQL: [ 5.5、5.6、5.7、8.0 ]\n- SQLServer: [ 2008r2、08r2_ent_ha、2012、2012_ent_ha、2012_std_ha、2012_web、2014_std_ha、2016_ent_ha、2016_std_ha、2016_web、2017_std_ha、2017_ent、2019_std_ha、2019_ent ]\n- PostgreSQL: [ 10.0、11.0、12.0、13.0、14.0、15.0 ]\n- MariaDB: [ 10.3 ]\n**Serverless**\n- MySQL: [ 5.7、8.0 ]\n- SQLServer: [ 2016_std_sl、2017_std_sl、2019_std_sl ]\n- PostgreSQL: [ 14.0 ]\n- MariaDB does not support creating serverless instances.\n"},"force":{"type":"string","description":"Specifies whether to enable forcible switching. Valid values:\n- Yes\n- No\n"},"forceRestart":{"type":"boolean","description":"Set it to true to make some parameter efficient when modifying them. Default to false.\n"},"freshWhiteListReadins":{"type":"string","description":"The read-only instances to which you want to synchronize the IP address whitelist.\n* If the instance is attached with a read-only instance, you can use this parameter to synchronize the IP address whitelist to the read-only instance. If the instance is attached with multiple read-only instances, the read-only instances must be separated by commas (,).\n* If the instance is not attached with a read-only instance, this parameter is empty.\n"},"haConfig":{"type":"string","description":"The primary/secondary switchover mode of the instance. Default value: Auto. Valid values:\n- Auto: The system automatically switches over services from the primary to secondary instances in the event of a fault.\n- Manual: You must manually switch over services from the primary to secondary instances in the event of a fault.\n"},"instanceChargeType":{"type":"string","description":"Valid values are `Prepaid`, `Postpaid`, `Serverless`, Default to `Postpaid`. Currently, the resource only supports PostPaid to PrePaid. For more information, see [Overview](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/what-is-serverless?spm=a2c63.p38356.0.0.772a28cfTAGqIv).\n"},"instanceName":{"type":"string","description":"The name of DB instance. It a string of 2 to 256 characters.\n"},"instanceStorage":{"type":"integer","description":"User-defined DB instance storage space. Value range:\n- [5, 2000] for MySQL/PostgreSQL HA dual node edition;\n- [20,1000] for MySQL 5.7 basic single node edition;\n- [10, 2000] for SQL Server 2008R2;\n- [20,2000] for SQL Server 2012 basic single node edition\nIncrease progressively at a rate of 5 GB. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).\nNote: There is extra 5 GB storage for SQL Server Instance, and it is not in specified \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e.\n"},"instanceType":{"type":"string","description":"DB Instance type. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).\n- To create a serverless instance, please pass the following values:\n- MySQL basic: mysql.n2.serverless.1c\n- MySQL high availability: mysql.n2.serverless.2c\n- SQLServer high availability: mssql.mem2.serverless.s2\n- PostgreSQL basic: pg.n2.serverless.1c\n\n\u003e **NOTE:** When `storage_auto_scale=\"Enable\"`, do not perform \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e check. when `storage_auto_scale=\"Disable\"`, if the instance itself \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003ehas changed. You need to manually revise the \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e in the template value. When `payment_type=\"Serverless\"` and when modifying, do not perform \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e check. Otherwise, check.\n"},"maintainTime":{"type":"string","description":"Maintainable time period format of the instance: HH:MMZ-HH:MMZ (UTC time)\n"},"manualHaTime":{"type":"string","description":"The time after when you want to enable automatic primary/secondary switchover. At most, you can set this parameter to 23:59:59 seven days later. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n\n\u003e **NOTE:** This parameter only takes effect when the HAConfig parameter is set to Manual.\n"},"modifyMode":{"type":"string","description":"The method that is used to modify the IP address whitelist. Default value: Cover. Valid values:\n- Cover: Use the value of the SecurityIps parameter to overwrite the existing entries in the IP address whitelist.\n- Append: Add the IP addresses and CIDR blocks that are specified in the SecurityIps parameter to the IP address whitelist.\n- Delete: Delete IP addresses and CIDR blocks that are specified in the SecurityIps parameter from the IP address whitelist. You must retain at least one IP address or CIDR block.\n"},"monitoringPeriod":{"type":"integer","description":"The monitoring frequency in seconds. Valid values are 5, 10, 60, 300. Defaults to 300.\n"},"nodeId":{"type":"string","description":"The globally unique identifier (GUID) of the secondary instance. You can call the DescribeDBInstanceHAConfig operation to query the GUID of the secondary instance.\n"},"optimizedWrites":{"type":"string","description":"Write optimization function switch. supported engine type: `MySQL`. Valid values:\n- optimized: Enable\n- none: Disable\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:rds/InstanceParameter:InstanceParameter"},"description":"Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm) . See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n\n\u003e **NOTE:** The system will use \u003cspan pulumi-lang-nodejs=\"`520`\" pulumi-lang-dotnet=\"`520`\" pulumi-lang-go=\"`520`\" pulumi-lang-python=\"`520`\" pulumi-lang-yaml=\"`520`\" pulumi-lang-java=\"`520`\"\u003e`520`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`532`\" pulumi-lang-dotnet=\"`532`\" pulumi-lang-go=\"`532`\" pulumi-lang-python=\"`532`\" pulumi-lang-yaml=\"`532`\" pulumi-lang-java=\"`532`\"\u003e`532`\u003c/span\u003e connections from \u003cspan pulumi-lang-nodejs=\"`maxConnections`\" pulumi-lang-dotnet=\"`MaxConnections`\" pulumi-lang-go=\"`maxConnections`\" pulumi-lang-python=\"`max_connections`\" pulumi-lang-yaml=\"`maxConnections`\" pulumi-lang-java=\"`maxConnections`\"\u003e`max_connections`\u003c/span\u003e depending on your instance type.\n"},"period":{"type":"integer","description":"The duration that you will buy DB instance (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Valid values: [1~9], 12, 24, 36.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"pgBouncerEnabled":{"type":"boolean","description":"Modify the PgBouncer feature of the RDS PostgreSQL instance. Valid values:\n- true: enable.\n- false: disable.\n"},"pgHbaConfs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/InstancePgHbaConf:InstancePgHbaConf"},"description":"The configuration of [AD domain](https://www.alibabacloud.com/help/en/doc-detail/349288.htm) . See \u003cspan pulumi-lang-nodejs=\"`pgHbaConf`\" pulumi-lang-dotnet=\"`PgHbaConf`\" pulumi-lang-go=\"`pgHbaConf`\" pulumi-lang-python=\"`pg_hba_conf`\" pulumi-lang-yaml=\"`pgHbaConf`\" pulumi-lang-java=\"`pgHbaConf`\"\u003e`pg_hba_conf`\u003c/span\u003e below.\n"},"port":{"type":"string","description":"The private port of the database service. If you want to update public port, please use resource\u003cspan pulumi-lang-nodejs=\" alicloud.rds.Connection \" pulumi-lang-dotnet=\" alicloud.rds.Connection \" pulumi-lang-go=\" rds.Connection \" pulumi-lang-python=\" rds.Connection \" pulumi-lang-yaml=\" alicloud.rds.Connection \" pulumi-lang-java=\" alicloud.rds.Connection \"\u003e alicloud.rds.Connection \u003c/span\u003eport.\n"},"privateIpAddress":{"type":"string","description":"The private IP address of the instance. The private IP address must be within the Classless Inter-Domain Routing (CIDR) block of the vSwitch that is specified by the VSwitchId parameter.\n"},"recoveryModel":{"type":"string","description":"Enable the Simple Recovery Model for an RDS SQL Server Instance.The Simple Recovery Model feature is only supported by the Basic Series of RDS SQL Server instances. Once this feature is enabled, it cannot be disabled.Valid values:\n- simple: Enable Simple Recovery.\n\u003e **NOTE:** If you set this parameter to Manual, you must specify the ManualHATime parameter.\n"},"releasedKeepPolicy":{"type":"string","description":"The policy based on which ApsaraDB RDS retains archived backup files after the instance is released. Valid values:\n- None: No archived backup files are retained.\n- Lastest: Only the last archived backup file is retained.\n- All: All the archived backup files are retained.\n\n\u003e **NOTE:** This parameter is supported only when the instance runs the MySQL database engine.\n"},"replicationAcl":{"type":"string","description":"The method that is used to verify the replication permission. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the DB instance belongs.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the RAM role.\n\n\u003e **NOTE:**  This parameter is not required when creating an instance running MySQL, PostgreSQL, or SQL Server.It is required only when you need to create an instance with cloud disk encryption enabled using a specified key ID.\nYou can configure RAM authorization to require a RAM user to enable cloud disk encryption when the RAM user is used to create an instance. If cloud disk encryption is disabled during the instance creation, the creation operation fails. To complete the configuration, you can attach the following policy to the RAM user: {\"Version\":\"1\",\"Statement\":[{\"Effect\":\"Deny\",\"Action\":\"rds:CreateDBInstance\",\"Resource\":\"*\",\"Condition\":{\"StringEquals\":{\"rds:DiskEncryptionRequired\":\"false\"}}}]}\n"},"securityGroupId":{"type":"string","description":"It has been deprecated from 1.69.0 and use \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e instead.\n","deprecationMessage":"Attribute \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e has been deprecated from 1.69.0 and use \u003cspan pulumi-lang-nodejs=\"`securityGroupIds`\" pulumi-lang-dotnet=\"`SecurityGroupIds`\" pulumi-lang-go=\"`securityGroupIds`\" pulumi-lang-python=\"`security_group_ids`\" pulumi-lang-yaml=\"`securityGroupIds`\" pulumi-lang-java=\"`securityGroupIds`\"\u003e`security_group_ids`\u003c/span\u003e instead."},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":", Available since v1.69.0) The list IDs to join ECS Security Group. At most supports three security groups.\n"},"securityIpMode":{"type":"string","description":"Valid values are \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`safety`\" pulumi-lang-dotnet=\"`Safety`\" pulumi-lang-go=\"`safety`\" pulumi-lang-python=\"`safety`\" pulumi-lang-yaml=\"`safety`\" pulumi-lang-java=\"`safety`\"\u003e`safety`\u003c/span\u003e, Default to \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e. support \u003cspan pulumi-lang-nodejs=\"`safety`\" pulumi-lang-dotnet=\"`Safety`\" pulumi-lang-go=\"`safety`\" pulumi-lang-python=\"`safety`\" pulumi-lang-yaml=\"`safety`\" pulumi-lang-java=\"`safety`\"\u003e`safety`\u003c/span\u003e switch to high security access mode.\n"},"securityIpType":{"type":"string","description":"The type of IP address in the IP address whitelist.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"serverCert":{"type":"string","description":"The content of the server certificate. This parameter is supported only when the instance runs PostgreSQL or MySQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter. **NOTE:** From version 1.231.0, \u003cspan pulumi-lang-nodejs=\"`serverCert`\" pulumi-lang-dotnet=\"`ServerCert`\" pulumi-lang-go=\"`serverCert`\" pulumi-lang-python=\"`server_cert`\" pulumi-lang-yaml=\"`serverCert`\" pulumi-lang-java=\"`serverCert`\"\u003e`server_cert`\u003c/span\u003e start  support `MySQL` engine.\n","secret":true},"serverKey":{"type":"string","description":"The private key of the server certificate. This parameter is supported only when the instance runs PostgreSQL or MySQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter. **NOTE:** From version 1.231.0, \u003cspan pulumi-lang-nodejs=\"`serverKey`\" pulumi-lang-dotnet=\"`ServerKey`\" pulumi-lang-go=\"`serverKey`\" pulumi-lang-python=\"`server_key`\" pulumi-lang-yaml=\"`serverKey`\" pulumi-lang-java=\"`serverKey`\"\u003e`server_key`\u003c/span\u003e start support `MySQL` engine.\n"},"serverlessConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/InstanceServerlessConfig:InstanceServerlessConfig"},"description":"The settings of the serverless instance. This parameter is required when you create a serverless instance. This parameter takes effect only when you create an ApsaraDB RDS for Serverless instance. See \u003cspan pulumi-lang-nodejs=\"`serverlessConfig`\" pulumi-lang-dotnet=\"`ServerlessConfig`\" pulumi-lang-go=\"`serverlessConfig`\" pulumi-lang-python=\"`serverless_config`\" pulumi-lang-yaml=\"`serverlessConfig`\" pulumi-lang-java=\"`serverlessConfig`\"\u003e`serverless_config`\u003c/span\u003e below.\n"},"sqlCollectorConfigValue":{"type":"integer","description":"The sql collector keep time of the instance. Valid values are \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1095`\" pulumi-lang-dotnet=\"`1095`\" pulumi-lang-go=\"`1095`\" pulumi-lang-python=\"`1095`\" pulumi-lang-yaml=\"`1095`\" pulumi-lang-java=\"`1095`\"\u003e`1095`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1825`\" pulumi-lang-dotnet=\"`1825`\" pulumi-lang-go=\"`1825`\" pulumi-lang-python=\"`1825`\" pulumi-lang-yaml=\"`1825`\" pulumi-lang-java=\"`1825`\"\u003e`1825`\u003c/span\u003e, Default to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n\u003e **NOTE:** This parameter takes effect when\u003cspan pulumi-lang-nodejs=\" sqlCollectorStatus \" pulumi-lang-dotnet=\" SqlCollectorStatus \" pulumi-lang-go=\" sqlCollectorStatus \" pulumi-lang-python=\" sql_collector_status \" pulumi-lang-yaml=\" sqlCollectorStatus \" pulumi-lang-java=\" sqlCollectorStatus \"\u003e sql_collector_status \u003c/span\u003eis set to Enabled and does not take effect when\u003cspan pulumi-lang-nodejs=\" sqlCollectorStatus \" pulumi-lang-dotnet=\" SqlCollectorStatus \" pulumi-lang-go=\" sqlCollectorStatus \" pulumi-lang-python=\" sql_collector_status \" pulumi-lang-yaml=\" sqlCollectorStatus \" pulumi-lang-java=\" sqlCollectorStatus \"\u003e sql_collector_status \u003c/span\u003eis set to Disabled.\n"},"sqlCollectorStatus":{"type":"string","description":"The sql collector status of the instance. Valid values are `Enabled`, `Disabled`, Default to `Disabled`.\n"},"sslAction":{"type":"string","description":"Actions performed on SSL functions. Valid values: \n`Open`: turn on SSL encryption;\n`Close`: turn off SSL encryption;\n`Update`: update SSL certificate.\nSee more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26254.htm).\n\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`sslAction`\" pulumi-lang-dotnet=\"`SslAction`\" pulumi-lang-go=\"`sslAction`\" pulumi-lang-python=\"`ssl_action`\" pulumi-lang-yaml=\"`sslAction`\" pulumi-lang-java=\"`sslAction`\"\u003e`ssl_action`\u003c/span\u003e will be ignored when setting \u003cspan pulumi-lang-nodejs=\"`instanceChargeType \" pulumi-lang-dotnet=\"`InstanceChargeType \" pulumi-lang-go=\"`instanceChargeType \" pulumi-lang-python=\"`instance_charge_type \" pulumi-lang-yaml=\"`instanceChargeType \" pulumi-lang-java=\"`instanceChargeType \"\u003e`instance_charge_type \u003c/span\u003e= \"Serverless\"` for SQLServer, PostgreSQL or MariaDB.\n"},"sslConnectionString":{"type":"string","description":"The internal or public endpoint for which the server certificate needs to be created or updated.\n"},"sslStatus":{"type":"string","description":"Status of the SSL feature. `Yes`: SSL is turned on; `No`: SSL is turned off.\n"},"status":{"type":"string","description":"(Available since v1.204.1) The status of db instance.\n"},"storageAutoScale":{"type":"string","description":"Automatic storage space expansion switch. Valid values:\n- Enable\n- Disable\n\n\u003e **NOTE:** This parameter only takes effect when the StorageAutoScale parameter is set to Enable.\n"},"storageThreshold":{"type":"integer","description":"The threshold in percentage based on which an automatic storage expansion is triggered. If the available storage reaches the threshold, ApsaraDB RDS increases the storage capacity of the instance.\nValid values: [10, 20, 30, 40, 50].\n\n\u003e **NOTE:** This parameter only takes effect when the StorageAutoScale parameter is set to Enable. The value must be greater than or equal to the total size of the current storage space of the instance.\n"},"storageUpperBound":{"type":"integer","description":"The upper limit of the total storage space for automatic expansion of the storage space, that is, automatic expansion will not cause the total storage space of the instance to exceed this value. Unit: GB. The value must be ≥0.\n\n\u003e **NOTE:** Because of data backup and migration, change DB instance type and storage would cost 15~20 minutes. Please make full preparation before changing them.\n"},"switchTime":{"type":"string","description":"The specific point in time when you want to perform the update. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. It is valid only when \u003cspan pulumi-lang-nodejs=\"`targetMinorVersion`\" pulumi-lang-dotnet=\"`TargetMinorVersion`\" pulumi-lang-go=\"`targetMinorVersion`\" pulumi-lang-python=\"`target_minor_version`\" pulumi-lang-yaml=\"`targetMinorVersion`\" pulumi-lang-java=\"`targetMinorVersion`\"\u003e`target_minor_version`\u003c/span\u003e is changed. The time must be in UTC.\n\n\u003e **NOTE:** This parameter takes effect only when you set the UpgradeTime parameter to SpecifyTime.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \u003cspan pulumi-lang-nodejs=\"`aliyun`\" pulumi-lang-dotnet=\"`Aliyun`\" pulumi-lang-go=\"`aliyun`\" pulumi-lang-python=\"`aliyun`\" pulumi-lang-yaml=\"`aliyun`\" pulumi-lang-java=\"`aliyun`\"\u003e`aliyun`\u003c/span\u003e, `acs:`, \u003cspan pulumi-lang-nodejs=\"`aliyun`\" pulumi-lang-dotnet=\"`Aliyun`\" pulumi-lang-go=\"`aliyun`\" pulumi-lang-python=\"`aliyun`\" pulumi-lang-yaml=\"`aliyun`\" pulumi-lang-java=\"`aliyun`\"\u003e`aliyun`\u003c/span\u003e, or `https://`. It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \u003cspan pulumi-lang-nodejs=\"`aliyun`\" pulumi-lang-dotnet=\"`Aliyun`\" pulumi-lang-go=\"`aliyun`\" pulumi-lang-python=\"`aliyun`\" pulumi-lang-yaml=\"`aliyun`\" pulumi-lang-java=\"`aliyun`\"\u003e`aliyun`\u003c/span\u003e, `acs:`, `http://`, or `https://`. It can be a null string.\n\n\u003e **Note:** From 1.63.0, the tag key and value are case sensitive. Before that, they are not case sensitive.\n"},"targetMinorVersion":{"type":"string","description":"The minor engine version to which you want to update the instance. If you do not specify this parameter, the instance is updated to the latest minor engine version. You must specify the minor engine version in one of the following formats:\n- PostgreSQL: rds_postgres_\u003cMajor engine version\u003e00_\u003cMinor engine version\u003e. Example: rds_postgres_1200_20200830.\n- MySQL: \u003cRDS edition\u003e_\u003cMinor engine version\u003e. Examples: rds_20200229, xcluster_20200229, and xcluster80_20200229. The following RDS editions are supported:\n- rds: The instance runs RDS Basic or High-availability Edition.\n- xcluster: The instance runs MySQL 5.7 on RDS Enterprise Edition.\n- xcluster80: The instance runs MySQL 8.0 on RDS Enterprise Edition.\n- SQLServer: \u003cMinor engine version\u003e. Example: 15.0.4073.23.\n\n\u003e **NOTE:** For more information about minor engine versions, see Release notes of minor AliPG versions, Release notes of minor AliSQL versions, and Release notes of minor engine versions of ApsaraDB RDS for SQL Server.\n"},"tcpConnectionType":{"type":"string","description":"The availability check method of the instance. Valid values:\n- **SHORT**: Alibaba Cloud uses short-lived connections to check the availability of the instance.\n- **LONG**: Alibaba Cloud uses persistent connections to check the availability of the instance.\n"},"tdeEncryptionKey":{"type":"string","description":"The ID of the custom key.\n"},"tdeStatus":{"type":"string","description":"The TDE(Transparent Data Encryption) status. After TDE is turned on, it cannot be turned off. See more [engine and engineVersion limitation](https://www.alibabacloud.com/help/zh/doc-detail/26256.htm).\n\n\u003e **NOTE:** When creating an instance and enabling disk encryption, the value of\u003cspan pulumi-lang-nodejs=\" encryptionKey \" pulumi-lang-dotnet=\" EncryptionKey \" pulumi-lang-go=\" encryptionKey \" pulumi-lang-python=\" encryption_key \" pulumi-lang-yaml=\" encryptionKey \" pulumi-lang-java=\" encryptionKey \"\u003e encryption_key \u003c/span\u003ecan only be a Key ID; it cannot be a ServiceKey. After the instance is created, you can manage the disk encryption using: ServiceKey, Key ID, or disabled.\n"},"templateIdLists":{"type":"array","items":{"type":"integer"},"description":"Whitelist Template ID List.\n"},"templates":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"(Computed, Available since v1.254.0) Whitelist Template Details.\n"},"upgradeDbInstanceKernelVersion":{"type":"boolean","description":"Whether to upgrade a minor version of the kernel. Valid values:\n- true: upgrade\n- false: not to upgrade\n\n\u003e **NOTE:** Database Engine and Version: Supports only MySQL `5.7` or `8.0` instances.\n\n\u003e **NOTE:** Storage Type: Supports only ESSD cloud disks and general-purpose cloud disks.\n\n\u003e **NOTE:** Activation Stage: Supports only during instance creation or when enabling write optimization features for existing  (high-availability/cluster series) instances.\n","deprecationMessage":"Attribute \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion`\" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion`\" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion`\" pulumi-lang-python=\"`upgrade_db_instance_kernel_version`\" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion`\" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion`\"\u003e`upgrade_db_instance_kernel_version`\u003c/span\u003e has been deprecated from 1.198.0 and use \u003cspan pulumi-lang-nodejs=\"`targetMinorVersion`\" pulumi-lang-dotnet=\"`TargetMinorVersion`\" pulumi-lang-go=\"`targetMinorVersion`\" pulumi-lang-python=\"`target_minor_version`\" pulumi-lang-yaml=\"`targetMinorVersion`\" pulumi-lang-java=\"`targetMinorVersion`\"\u003e`target_minor_version`\u003c/span\u003e instead."},"upgradeTime":{"type":"string","description":"The method to update the minor engine version. Default value: Immediate. It is valid only when \u003cspan pulumi-lang-nodejs=\"`targetMinorVersion`\" pulumi-lang-dotnet=\"`TargetMinorVersion`\" pulumi-lang-go=\"`targetMinorVersion`\" pulumi-lang-python=\"`target_minor_version`\" pulumi-lang-yaml=\"`targetMinorVersion`\" pulumi-lang-java=\"`targetMinorVersion`\"\u003e`target_minor_version`\u003c/span\u003e is changed. Valid values:\n- Immediate: The minor engine version is immediately updated.\n- MaintainTime: The minor engine version is updated during the maintenance window. For more information about how to change the maintenance window, see ModifyDBInstanceMaintainTime.\n- SpecifyTime: The minor engine version is updated at the point in time you specify.\n"},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n\n\n\u003e **NOTE:** This parameter applies only to ApsaraDB RDS for MySQL instances. For more information about Upgrade the major engine version of an ApsaraDB RDS for MySQL instance, see [Upgrade the major engine version of an RDS instance in the ApsaraDB RDS console](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/upgrade-the-major-engine-version-of-an-apsaradb-rds-for-mysql-instance-1).\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC. If there are multiple vswitches, separate them with commas.\n","willReplaceOnChanges":true},"whitelistNetworkType":{"type":"string","description":"The network type of the IP address whitelist. Default value: MIX. Valid values:\n- Classic: classic network in enhanced whitelist mode\n- VPC: virtual private cloud (VPC) in enhanced whitelist mode\n- MIX: standard whitelist mode\n\n\u003e **NOTE:** In standard whitelist mode, IP addresses and CIDR blocks can be added only to the default IP address whitelist. In enhanced whitelist mode, IP addresses and CIDR blocks can be added to both IP address whitelists of the classic network type and those of the VPC network type.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB instance. From version 1.8.1, it supports multiple zone.\nIf it is a multi-zone and \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e is specified, the vswitch must in the one of them.\nThe multiple zone ID can be retrieved by setting \u003cspan pulumi-lang-nodejs=\"`multi`\" pulumi-lang-dotnet=\"`Multi`\" pulumi-lang-go=\"`multi`\" pulumi-lang-python=\"`multi`\" pulumi-lang-yaml=\"`multi`\" pulumi-lang-java=\"`multi`\"\u003e`multi`\u003c/span\u003e to \"true\" in the data source \u003cspan pulumi-lang-nodejs=\"`alicloud.getZones`\" pulumi-lang-dotnet=\"`alicloud.getZones`\" pulumi-lang-go=\"`getZones`\" pulumi-lang-python=\"`get_zones`\" pulumi-lang-yaml=\"`alicloud.getZones`\" pulumi-lang-java=\"`alicloud.getZones`\"\u003e`alicloud.getZones`\u003c/span\u003e.\n","willReplaceOnChanges":true},"zoneIdSlaveA":{"type":"string","description":"The region ID of the secondary instance if you create a secondary instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.\n","willReplaceOnChanges":true},"zoneIdSlaveB":{"type":"string","description":"RDS MySQL Cluster series instances support creating 1 to 2 secondary nodes at the same time when establishing a new instance. If you have this requirement, you can use this parameter to specify the availability zone for the second secondary node.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rds/rdsAccount:RdsAccount":{"description":"Provides a RDS Account resource.\n\n\n\nFor information about RDS Account and how to use it, see [What is Account](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/api-rds-2014-08-15-createaccount).\n\n\u003e **NOTE:** Available since v1.120.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"HighAvailability\",\n    dbInstanceStorageType: \"local_ssd\",\n});\nconst defaultGetInstanceClasses = _default.then(_default =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: _default.zones?.[0]?.id,\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    category: \"HighAvailability\",\n    dbInstanceStorageType: \"local_ssd\",\n    instanceChargeType: \"PostPaid\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n    vswitchName: name,\n});\nconst defaultInstance = new alicloud.rds.Instance(\"default\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceType: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    vswitchId: defaultSwitch.id,\n    instanceName: name,\n    instanceChargeType: \"Postpaid\",\n    monitoringPeriod: 60,\n    dbInstanceStorageType: \"local_ssd\",\n    dbIsIgnoreCase: false,\n});\nconst defaultRdsAccount = new alicloud.rds.RdsAccount(\"default\", {\n    dbInstanceId: defaultInstance.id,\n    accountName: name,\n    accountPassword: \"Example1234\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"HighAvailability\",\n    db_instance_storage_type=\"local_ssd\")\ndefault_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=default.zones[0].id,\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    category=\"HighAvailability\",\n    db_instance_storage_type=\"local_ssd\",\n    instance_charge_type=\"PostPaid\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.ids[0],\n    vswitch_name=name)\ndefault_instance = alicloud.rds.Instance(\"default\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_type=default_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=default_get_instance_classes.instance_classes[0].storage_range.min,\n    vswitch_id=default_switch.id,\n    instance_name=name,\n    instance_charge_type=\"Postpaid\",\n    monitoring_period=60,\n    db_instance_storage_type=\"local_ssd\",\n    db_is_ignore_case=False)\ndefault_rds_account = alicloud.rds.RdsAccount(\"default\",\n    db_instance_id=default_instance.id,\n    account_name=name,\n    account_password=\"Example1234\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"HighAvailability\",\n        DbInstanceStorageType = \"local_ssd\",\n    });\n\n    var defaultGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        Category = \"HighAvailability\",\n        DbInstanceStorageType = \"local_ssd\",\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n        VswitchName = name,\n    });\n\n    var defaultInstance = new AliCloud.Rds.Instance(\"default\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceType = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        VswitchId = defaultSwitch.Id,\n        InstanceName = name,\n        InstanceChargeType = \"Postpaid\",\n        MonitoringPeriod = 60,\n        DbInstanceStorageType = \"local_ssd\",\n        DbIsIgnoreCase = false,\n    });\n\n    var defaultRdsAccount = new AliCloud.Rds.RdsAccount(\"default\", new()\n    {\n        DbInstanceId = defaultInstance.Id,\n        AccountName = name,\n        AccountPassword = \"Example1234\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"HighAvailability\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"local_ssd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tCategory:              pulumi.StringRef(\"HighAvailability\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"local_ssd\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Ids[0]),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rds.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\tInstanceType:          pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceStorage:       pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tVswitchId:             defaultSwitch.ID(),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\tMonitoringPeriod:      pulumi.Int(60),\n\t\t\tDbInstanceStorageType: pulumi.String(\"local_ssd\"),\n\t\t\tDbIsIgnoreCase:        pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewRdsAccount(ctx, \"default\", \u0026rds.RdsAccountArgs{\n\t\t\tDbInstanceId:    defaultInstance.ID(),\n\t\t\tAccountName:     pulumi.String(name),\n\t\t\tAccountPassword: pulumi.String(\"Example1234\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.RdsAccount;\nimport com.pulumi.alicloud.rds.RdsAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"HighAvailability\")\n            .dbInstanceStorageType(\"local_ssd\")\n            .build());\n\n        final var defaultGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(default_.zones()[0].id())\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .category(\"HighAvailability\")\n            .dbInstanceStorageType(\"local_ssd\")\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.ids()[0])\n            .vswitchName(name)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceType(defaultGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(defaultGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .vswitchId(defaultSwitch.id())\n            .instanceName(name)\n            .instanceChargeType(\"Postpaid\")\n            .monitoringPeriod(60)\n            .dbInstanceStorageType(\"local_ssd\")\n            .dbIsIgnoreCase(false)\n            .build());\n\n        var defaultRdsAccount = new RdsAccount(\"defaultRdsAccount\", RdsAccountArgs.builder()\n            .dbInstanceId(defaultInstance.id())\n            .accountName(name)\n            .accountPassword(\"Example1234\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.ids[0]}\n      vswitchName: ${name}\n  defaultInstance:\n    type: alicloud:rds:Instance\n    name: default\n    properties:\n      engine: MySQL\n      engineVersion: '8.0'\n      instanceType: ${defaultGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceStorage: ${defaultGetInstanceClasses.instanceClasses[0].storageRange.min}\n      vswitchId: ${defaultSwitch.id}\n      instanceName: ${name}\n      instanceChargeType: Postpaid\n      monitoringPeriod: 60\n      dbInstanceStorageType: local_ssd\n      dbIsIgnoreCase: false\n  defaultRdsAccount:\n    type: alicloud:rds:RdsAccount\n    name: default\n    properties:\n      dbInstanceId: ${defaultInstance.id}\n      accountName: ${name}\n      accountPassword: Example1234\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: PostPaid\n        category: HighAvailability\n        dbInstanceStorageType: local_ssd\n  defaultGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${default.zones[0].id}\n        engine: MySQL\n        engineVersion: '8.0'\n        category: HighAvailability\n        dbInstanceStorageType: local_ssd\n        instanceChargeType: PostPaid\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/rdsAccount:RdsAccount example \u003cdb_instance_id\u003e:\u003caccount_name\u003e\n```\n\n","properties":{"accountDescription":{"type":"string","description":"The description of the account. The value must be 2 to 256 characters in length. The value can contain letters, digits, underscores (_), and hyphens (-), and must start with a letter.\n\n\u003e **NOTE:** The name cannot start with http:// or https://.\n"},"accountName":{"type":"string","description":"The name of the database account.\n* The name must be unique.\n* The name can contain lowercase letters, digits, and underscores (_). For MySQL databases, the name can contain uppercase letters.\n* The name must start with a letter and end with a letter or digit.\n* For MySQL databases, the name of the privileged account cannot be the same as that of the standard account. For example, if the name of the privileged account is Test1, the name of the standard account cannot be test1.\n* The length of the value must meet the following requirements:\n* If the instance runs MySQL 5.7 or MySQL 8.0, the value must be 2 to 32 characters in length.\n* If the instance runs MySQL 5.6, the value must be 2 to 16 characters in length.\n* If the instance runs SQL Server, the value must be 2 to 64 characters in length.\n* If the instance runs PostgreSQL with cloud disks, the value must be 2 to 63 characters in length.\n* If the instance runs PostgreSQL with local disks, the value must be 2 to 16 characters in length.\n* If the instance runs MariaDB, the value must be 2 to 16 characters in length.\n* For more information about invalid characters, See [Forbidden keywords](https://help.aliyun.com/zh/rds/developer-reference/forbidden-keywords?spm=api-workbench.API%20Document.0.0.529e2defHKoZ3o).\n"},"accountPassword":{"type":"string","description":"The password of the account.\n* The value must be 8 to 32 characters in length.\n* The password must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters.\n* Special characters include ! @ # $ % ^ \u0026 * ( ) _ + - =\n","secret":true},"accountType":{"type":"string","description":"The account type. Valid values:\n* Normal: standard account (default).\n* Super: privileged account.\n* Sysadmin: system admin account. The account type is available only for ApsaraDB RDS for SQL Server instances.\n\n\u003e **NOTE:** Before you create a system admin account, check whether the RDS instance meets all prerequisites. For more information, See [Create a system admin account](https://help.aliyun.com/zh/rds/apsaradb-rds-for-sql-server/create-a-system-admin-account-for-an-apsaradb-rds-for-sql-server-instance?spm=api-workbench.API%20Document.0.0.529e2defHKoZ3o).\n"},"checkPolicy":{"type":"boolean","description":"Whether to apply password policy\n"},"dbInstanceId":{"type":"string","description":"The ID of the instance.\n"},"description":{"type":"string","description":"The attribute has been deprecated from 1.120.0 and using \u003cspan pulumi-lang-nodejs=\"`accountDescription`\" pulumi-lang-dotnet=\"`AccountDescription`\" pulumi-lang-go=\"`accountDescription`\" pulumi-lang-python=\"`account_description`\" pulumi-lang-yaml=\"`accountDescription`\" pulumi-lang-java=\"`accountDescription`\"\u003e`account_description`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'description' has been deprecated from provider version 1.120.0. New field 'account_description' instead."},"instanceId":{"type":"string","description":"The attribute has been deprecated from 1.120.0 and using \u003cspan pulumi-lang-nodejs=\"`dbInstanceId`\" pulumi-lang-dotnet=\"`DbInstanceId`\" pulumi-lang-go=\"`dbInstanceId`\" pulumi-lang-python=\"`db_instance_id`\" pulumi-lang-yaml=\"`dbInstanceId`\" pulumi-lang-java=\"`dbInstanceId`\"\u003e`db_instance_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'instance_id' has been deprecated from provider version 1.120.0. New field 'db_instance_id' instead."},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a db account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"name":{"type":"string","description":"The attribute has been deprecated from 1.120.0 and using \u003cspan pulumi-lang-nodejs=\"`accountName`\" pulumi-lang-dotnet=\"`AccountName`\" pulumi-lang-go=\"`accountName`\" pulumi-lang-python=\"`account_name`\" pulumi-lang-yaml=\"`accountName`\" pulumi-lang-java=\"`accountName`\"\u003e`account_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.120.0. New field 'account_name' instead."},"password":{"type":"string","description":"The attribute has been deprecated from 1.120.0 and using \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'password' has been deprecated from provider version 1.120.0. New field 'account_password' instead.","secret":true},"resetPermissionFlag":{"type":"boolean","description":"Resets permissions flag of the privileged account. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can resets permissions of the privileged account.\n"},"status":{"type":"string","description":"The status of the resource\n"},"type":{"type":"string","description":"The attribute has been deprecated from 1.120.0 and using \u003cspan pulumi-lang-nodejs=\"`accountType`\" pulumi-lang-dotnet=\"`AccountType`\" pulumi-lang-go=\"`accountType`\" pulumi-lang-python=\"`account_type`\" pulumi-lang-yaml=\"`accountType`\" pulumi-lang-java=\"`accountType`\"\u003e`account_type`\u003c/span\u003e instead.\n\n\u003e **NOTE**: Only MySQL engine is supported resets permissions of the privileged account.\n","deprecationMessage":"Field 'type' has been deprecated from provider version 1.120.0. New field 'account_type' instead."}},"required":["accountDescription","accountName","accountPassword","accountType","dbInstanceId","description","instanceId","name","password","status","type"],"inputProperties":{"accountDescription":{"type":"string","description":"The description of the account. The value must be 2 to 256 characters in length. The value can contain letters, digits, underscores (_), and hyphens (-), and must start with a letter.\n\n\u003e **NOTE:** The name cannot start with http:// or https://.\n"},"accountName":{"type":"string","description":"The name of the database account.\n* The name must be unique.\n* The name can contain lowercase letters, digits, and underscores (_). For MySQL databases, the name can contain uppercase letters.\n* The name must start with a letter and end with a letter or digit.\n* For MySQL databases, the name of the privileged account cannot be the same as that of the standard account. For example, if the name of the privileged account is Test1, the name of the standard account cannot be test1.\n* The length of the value must meet the following requirements:\n* If the instance runs MySQL 5.7 or MySQL 8.0, the value must be 2 to 32 characters in length.\n* If the instance runs MySQL 5.6, the value must be 2 to 16 characters in length.\n* If the instance runs SQL Server, the value must be 2 to 64 characters in length.\n* If the instance runs PostgreSQL with cloud disks, the value must be 2 to 63 characters in length.\n* If the instance runs PostgreSQL with local disks, the value must be 2 to 16 characters in length.\n* If the instance runs MariaDB, the value must be 2 to 16 characters in length.\n* For more information about invalid characters, See [Forbidden keywords](https://help.aliyun.com/zh/rds/developer-reference/forbidden-keywords?spm=api-workbench.API%20Document.0.0.529e2defHKoZ3o).\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"The password of the account.\n* The value must be 8 to 32 characters in length.\n* The password must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters.\n* Special characters include ! @ # $ % ^ \u0026 * ( ) _ + - =\n","secret":true},"accountType":{"type":"string","description":"The account type. Valid values:\n* Normal: standard account (default).\n* Super: privileged account.\n* Sysadmin: system admin account. The account type is available only for ApsaraDB RDS for SQL Server instances.\n\n\u003e **NOTE:** Before you create a system admin account, check whether the RDS instance meets all prerequisites. For more information, See [Create a system admin account](https://help.aliyun.com/zh/rds/apsaradb-rds-for-sql-server/create-a-system-admin-account-for-an-apsaradb-rds-for-sql-server-instance?spm=api-workbench.API%20Document.0.0.529e2defHKoZ3o).\n","willReplaceOnChanges":true},"checkPolicy":{"type":"boolean","description":"Whether to apply password policy\n"},"dbInstanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The attribute has been deprecated from 1.120.0 and using \u003cspan pulumi-lang-nodejs=\"`accountDescription`\" pulumi-lang-dotnet=\"`AccountDescription`\" pulumi-lang-go=\"`accountDescription`\" pulumi-lang-python=\"`account_description`\" pulumi-lang-yaml=\"`accountDescription`\" pulumi-lang-java=\"`accountDescription`\"\u003e`account_description`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'description' has been deprecated from provider version 1.120.0. New field 'account_description' instead."},"instanceId":{"type":"string","description":"The attribute has been deprecated from 1.120.0 and using \u003cspan pulumi-lang-nodejs=\"`dbInstanceId`\" pulumi-lang-dotnet=\"`DbInstanceId`\" pulumi-lang-go=\"`dbInstanceId`\" pulumi-lang-python=\"`db_instance_id`\" pulumi-lang-yaml=\"`dbInstanceId`\" pulumi-lang-java=\"`dbInstanceId`\"\u003e`db_instance_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'instance_id' has been deprecated from provider version 1.120.0. New field 'db_instance_id' instead.","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a db account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"name":{"type":"string","description":"The attribute has been deprecated from 1.120.0 and using \u003cspan pulumi-lang-nodejs=\"`accountName`\" pulumi-lang-dotnet=\"`AccountName`\" pulumi-lang-go=\"`accountName`\" pulumi-lang-python=\"`account_name`\" pulumi-lang-yaml=\"`accountName`\" pulumi-lang-java=\"`accountName`\"\u003e`account_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.120.0. New field 'account_name' instead.","willReplaceOnChanges":true},"password":{"type":"string","description":"The attribute has been deprecated from 1.120.0 and using \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'password' has been deprecated from provider version 1.120.0. New field 'account_password' instead.","secret":true},"resetPermissionFlag":{"type":"boolean","description":"Resets permissions flag of the privileged account. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can resets permissions of the privileged account.\n"},"status":{"type":"string","description":"The status of the resource\n"},"type":{"type":"string","description":"The attribute has been deprecated from 1.120.0 and using \u003cspan pulumi-lang-nodejs=\"`accountType`\" pulumi-lang-dotnet=\"`AccountType`\" pulumi-lang-go=\"`accountType`\" pulumi-lang-python=\"`account_type`\" pulumi-lang-yaml=\"`accountType`\" pulumi-lang-java=\"`accountType`\"\u003e`account_type`\u003c/span\u003e instead.\n\n\u003e **NOTE**: Only MySQL engine is supported resets permissions of the privileged account.\n","deprecationMessage":"Field 'type' has been deprecated from provider version 1.120.0. New field 'account_type' instead.","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering RdsAccount resources.\n","properties":{"accountDescription":{"type":"string","description":"The description of the account. The value must be 2 to 256 characters in length. The value can contain letters, digits, underscores (_), and hyphens (-), and must start with a letter.\n\n\u003e **NOTE:** The name cannot start with http:// or https://.\n"},"accountName":{"type":"string","description":"The name of the database account.\n* The name must be unique.\n* The name can contain lowercase letters, digits, and underscores (_). For MySQL databases, the name can contain uppercase letters.\n* The name must start with a letter and end with a letter or digit.\n* For MySQL databases, the name of the privileged account cannot be the same as that of the standard account. For example, if the name of the privileged account is Test1, the name of the standard account cannot be test1.\n* The length of the value must meet the following requirements:\n* If the instance runs MySQL 5.7 or MySQL 8.0, the value must be 2 to 32 characters in length.\n* If the instance runs MySQL 5.6, the value must be 2 to 16 characters in length.\n* If the instance runs SQL Server, the value must be 2 to 64 characters in length.\n* If the instance runs PostgreSQL with cloud disks, the value must be 2 to 63 characters in length.\n* If the instance runs PostgreSQL with local disks, the value must be 2 to 16 characters in length.\n* If the instance runs MariaDB, the value must be 2 to 16 characters in length.\n* For more information about invalid characters, See [Forbidden keywords](https://help.aliyun.com/zh/rds/developer-reference/forbidden-keywords?spm=api-workbench.API%20Document.0.0.529e2defHKoZ3o).\n","willReplaceOnChanges":true},"accountPassword":{"type":"string","description":"The password of the account.\n* The value must be 8 to 32 characters in length.\n* The password must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters.\n* Special characters include ! @ # $ % ^ \u0026 * ( ) _ + - =\n","secret":true},"accountType":{"type":"string","description":"The account type. Valid values:\n* Normal: standard account (default).\n* Super: privileged account.\n* Sysadmin: system admin account. The account type is available only for ApsaraDB RDS for SQL Server instances.\n\n\u003e **NOTE:** Before you create a system admin account, check whether the RDS instance meets all prerequisites. For more information, See [Create a system admin account](https://help.aliyun.com/zh/rds/apsaradb-rds-for-sql-server/create-a-system-admin-account-for-an-apsaradb-rds-for-sql-server-instance?spm=api-workbench.API%20Document.0.0.529e2defHKoZ3o).\n","willReplaceOnChanges":true},"checkPolicy":{"type":"boolean","description":"Whether to apply password policy\n"},"dbInstanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The attribute has been deprecated from 1.120.0 and using \u003cspan pulumi-lang-nodejs=\"`accountDescription`\" pulumi-lang-dotnet=\"`AccountDescription`\" pulumi-lang-go=\"`accountDescription`\" pulumi-lang-python=\"`account_description`\" pulumi-lang-yaml=\"`accountDescription`\" pulumi-lang-java=\"`accountDescription`\"\u003e`account_description`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'description' has been deprecated from provider version 1.120.0. New field 'account_description' instead."},"instanceId":{"type":"string","description":"The attribute has been deprecated from 1.120.0 and using \u003cspan pulumi-lang-nodejs=\"`dbInstanceId`\" pulumi-lang-dotnet=\"`DbInstanceId`\" pulumi-lang-go=\"`dbInstanceId`\" pulumi-lang-python=\"`db_instance_id`\" pulumi-lang-yaml=\"`dbInstanceId`\" pulumi-lang-java=\"`dbInstanceId`\"\u003e`db_instance_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'instance_id' has been deprecated from provider version 1.120.0. New field 'db_instance_id' instead.","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"An KMS encrypts password used to a db account. If the \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e is filled in, this field will be ignored.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"An KMS encryption context used to decrypt \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e before creating or updating a db account with \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when \u003cspan pulumi-lang-nodejs=\"`kmsEncryptedPassword`\" pulumi-lang-dotnet=\"`KmsEncryptedPassword`\" pulumi-lang-go=\"`kmsEncryptedPassword`\" pulumi-lang-python=\"`kms_encrypted_password`\" pulumi-lang-yaml=\"`kmsEncryptedPassword`\" pulumi-lang-java=\"`kmsEncryptedPassword`\"\u003e`kms_encrypted_password`\u003c/span\u003e is set.\n"},"name":{"type":"string","description":"The attribute has been deprecated from 1.120.0 and using \u003cspan pulumi-lang-nodejs=\"`accountName`\" pulumi-lang-dotnet=\"`AccountName`\" pulumi-lang-go=\"`accountName`\" pulumi-lang-python=\"`account_name`\" pulumi-lang-yaml=\"`accountName`\" pulumi-lang-java=\"`accountName`\"\u003e`account_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.120.0. New field 'account_name' instead.","willReplaceOnChanges":true},"password":{"type":"string","description":"The attribute has been deprecated from 1.120.0 and using \u003cspan pulumi-lang-nodejs=\"`accountPassword`\" pulumi-lang-dotnet=\"`AccountPassword`\" pulumi-lang-go=\"`accountPassword`\" pulumi-lang-python=\"`account_password`\" pulumi-lang-yaml=\"`accountPassword`\" pulumi-lang-java=\"`accountPassword`\"\u003e`account_password`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'password' has been deprecated from provider version 1.120.0. New field 'account_password' instead.","secret":true},"resetPermissionFlag":{"type":"boolean","description":"Resets permissions flag of the privileged account. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can resets permissions of the privileged account.\n"},"status":{"type":"string","description":"The status of the resource\n"},"type":{"type":"string","description":"The attribute has been deprecated from 1.120.0 and using \u003cspan pulumi-lang-nodejs=\"`accountType`\" pulumi-lang-dotnet=\"`AccountType`\" pulumi-lang-go=\"`accountType`\" pulumi-lang-python=\"`account_type`\" pulumi-lang-yaml=\"`accountType`\" pulumi-lang-java=\"`accountType`\"\u003e`account_type`\u003c/span\u003e instead.\n\n\u003e **NOTE**: Only MySQL engine is supported resets permissions of the privileged account.\n","deprecationMessage":"Field 'type' has been deprecated from provider version 1.120.0. New field 'account_type' instead.","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rds/rdsBackup:RdsBackup":{"description":"Provides a RDS Backup resource.\n\nBackup object at the instance level or database level.\n\nFor information about RDS Backup and how to use it, see [What is Backup](https://www.alibabacloud.com/help/en/rds/developer-reference/api-rds-2014-08-15-createbackup).\n\n\u003e **NOTE:** Available since v1.149.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.rds.Instance(\"example\", {\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n    instanceType: \"rds.mysql.t1.small\",\n    instanceStorage: 30,\n    instanceChargeType: \"Postpaid\",\n    dbInstanceStorageType: \"local_ssd\",\n});\nconst exampleRdsBackup = new alicloud.rds.RdsBackup(\"example\", {dbInstanceId: example.id});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.rds.Instance(\"example\",\n    engine=\"MySQL\",\n    engine_version=\"5.6\",\n    instance_type=\"rds.mysql.t1.small\",\n    instance_storage=30,\n    instance_charge_type=\"Postpaid\",\n    db_instance_storage_type=\"local_ssd\")\nexample_rds_backup = alicloud.rds.RdsBackup(\"example\", db_instance_id=example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Rds.Instance(\"example\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n        InstanceType = \"rds.mysql.t1.small\",\n        InstanceStorage = 30,\n        InstanceChargeType = \"Postpaid\",\n        DbInstanceStorageType = \"local_ssd\",\n    });\n\n    var exampleRdsBackup = new AliCloud.Rds.RdsBackup(\"example\", new()\n    {\n        DbInstanceId = example.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rds.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"5.6\"),\n\t\t\tInstanceType:          pulumi.String(\"rds.mysql.t1.small\"),\n\t\t\tInstanceStorage:       pulumi.Int(30),\n\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\tDbInstanceStorageType: pulumi.String(\"local_ssd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewRdsBackup(ctx, \"example\", \u0026rds.RdsBackupArgs{\n\t\t\tDbInstanceId: example.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.RdsBackup;\nimport com.pulumi.alicloud.rds.RdsBackupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Instance(\"example\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .instanceType(\"rds.mysql.t1.small\")\n            .instanceStorage(30)\n            .instanceChargeType(\"Postpaid\")\n            .dbInstanceStorageType(\"local_ssd\")\n            .build());\n\n        var exampleRdsBackup = new RdsBackup(\"exampleRdsBackup\", RdsBackupArgs.builder()\n            .dbInstanceId(example.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:rds:Instance\n    properties:\n      engine: MySQL\n      engineVersion: '5.6'\n      instanceType: rds.mysql.t1.small\n      instanceStorage: '30'\n      instanceChargeType: Postpaid\n      dbInstanceStorageType: local_ssd\n  exampleRdsBackup:\n    type: alicloud:rds:RdsBackup\n    name: example\n    properties:\n      dbInstanceId: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS Backup can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/rdsBackup:RdsBackup example \u003cbackup_id\u003e\n```\n\n","properties":{"backupId":{"type":"string","description":"The backup set ID.\n"},"backupMethod":{"type":"string","description":"The backup type. Valid values:  \n* `Logical`: logical backup (supported only for MySQL)\n* `Physical`: physical backup (supported for MySQL, SQL Server, and PostgreSQL)\n* `Snapshot`: snapshot backup (supported for all database engines)\n\nDefault value: `Physical`.\n\n\u003e **NOTE:**  * When using logical backup, the database must contain data (the data cannot be empty).\n\n\u003e **NOTE:**  * MariaDB instances support only snapshot backup, but you must specify `Physical` for this parameter.\n"},"backupRetentionPeriod":{"type":"integer","description":"When the database engine is SQL Server, `BackupStrategy` is set to \u003cspan pulumi-lang-nodejs=\"`db`\" pulumi-lang-dotnet=\"`Db`\" pulumi-lang-go=\"`db`\" pulumi-lang-python=\"`db`\" pulumi-lang-yaml=\"`db`\" pulumi-lang-java=\"`db`\"\u003e`db`\u003c/span\u003e, `BackupMethod` is `Physical`, and `BackupType` is `FullBackup`, you can specify the retention period for the backup set. Valid values: 7 to 730 days, or - 1 (permanent retention).  \n\n\u003e **NOTE:** This parameter is immutable. Changing it after creation has no effect.\n"},"backupStrategy":{"type":"string","description":"The backup strategy. Valid values:\n"},"backupType":{"type":"string","description":"The backup type. Valid values:  \n- FullBackup: full backup\n- IncrementalBackup: incremental backup\n"},"dbInstanceId":{"type":"string","description":"The instance ID. You can call DescribeDBInstances to obtain it.\n"},"dbName":{"type":"string","description":"A list of databases, separated by commas (,).  \n\n\u003e **NOTE:**  This parameter takes effect only when the `BackupStrategy` parameter is specified and its value is \u003cspan pulumi-lang-nodejs=\"`db`\" pulumi-lang-dotnet=\"`Db`\" pulumi-lang-go=\"`db`\" pulumi-lang-python=\"`db`\" pulumi-lang-yaml=\"`db`\" pulumi-lang-java=\"`db`\"\u003e`db`\u003c/span\u003e.\n\n\n\u003e **NOTE:** This parameter is immutable. Changing it after creation has no effect.\n"},"removeFromState":{"type":"boolean","description":"Remove form state when resource cannot be deleted. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"storeStatus":{"type":"string","description":"Indicates whether the backup can be deleted.\n"}},"required":["backupId","backupMethod","backupType","dbInstanceId","status","storeStatus"],"inputProperties":{"backupMethod":{"type":"string","description":"The backup type. Valid values:  \n* `Logical`: logical backup (supported only for MySQL)\n* `Physical`: physical backup (supported for MySQL, SQL Server, and PostgreSQL)\n* `Snapshot`: snapshot backup (supported for all database engines)\n\nDefault value: `Physical`.\n\n\u003e **NOTE:**  * When using logical backup, the database must contain data (the data cannot be empty).\n\n\u003e **NOTE:**  * MariaDB instances support only snapshot backup, but you must specify `Physical` for this parameter.\n","willReplaceOnChanges":true},"backupRetentionPeriod":{"type":"integer","description":"When the database engine is SQL Server, `BackupStrategy` is set to \u003cspan pulumi-lang-nodejs=\"`db`\" pulumi-lang-dotnet=\"`Db`\" pulumi-lang-go=\"`db`\" pulumi-lang-python=\"`db`\" pulumi-lang-yaml=\"`db`\" pulumi-lang-java=\"`db`\"\u003e`db`\u003c/span\u003e, `BackupMethod` is `Physical`, and `BackupType` is `FullBackup`, you can specify the retention period for the backup set. Valid values: 7 to 730 days, or - 1 (permanent retention).  \n\n\u003e **NOTE:** This parameter is immutable. Changing it after creation has no effect.\n"},"backupStrategy":{"type":"string","description":"The backup strategy. Valid values:\n"},"backupType":{"type":"string","description":"The backup type. Valid values:  \n- FullBackup: full backup\n- IncrementalBackup: incremental backup\n","willReplaceOnChanges":true},"dbInstanceId":{"type":"string","description":"The instance ID. You can call DescribeDBInstances to obtain it.\n","willReplaceOnChanges":true},"dbName":{"type":"string","description":"A list of databases, separated by commas (,).  \n\n\u003e **NOTE:**  This parameter takes effect only when the `BackupStrategy` parameter is specified and its value is \u003cspan pulumi-lang-nodejs=\"`db`\" pulumi-lang-dotnet=\"`Db`\" pulumi-lang-go=\"`db`\" pulumi-lang-python=\"`db`\" pulumi-lang-yaml=\"`db`\" pulumi-lang-java=\"`db`\"\u003e`db`\u003c/span\u003e.\n\n\n\u003e **NOTE:** This parameter is immutable. Changing it after creation has no effect.\n"},"removeFromState":{"type":"boolean","description":"Remove form state when resource cannot be deleted. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"requiredInputs":["dbInstanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering RdsBackup resources.\n","properties":{"backupId":{"type":"string","description":"The backup set ID.\n"},"backupMethod":{"type":"string","description":"The backup type. Valid values:  \n* `Logical`: logical backup (supported only for MySQL)\n* `Physical`: physical backup (supported for MySQL, SQL Server, and PostgreSQL)\n* `Snapshot`: snapshot backup (supported for all database engines)\n\nDefault value: `Physical`.\n\n\u003e **NOTE:**  * When using logical backup, the database must contain data (the data cannot be empty).\n\n\u003e **NOTE:**  * MariaDB instances support only snapshot backup, but you must specify `Physical` for this parameter.\n","willReplaceOnChanges":true},"backupRetentionPeriod":{"type":"integer","description":"When the database engine is SQL Server, `BackupStrategy` is set to \u003cspan pulumi-lang-nodejs=\"`db`\" pulumi-lang-dotnet=\"`Db`\" pulumi-lang-go=\"`db`\" pulumi-lang-python=\"`db`\" pulumi-lang-yaml=\"`db`\" pulumi-lang-java=\"`db`\"\u003e`db`\u003c/span\u003e, `BackupMethod` is `Physical`, and `BackupType` is `FullBackup`, you can specify the retention period for the backup set. Valid values: 7 to 730 days, or - 1 (permanent retention).  \n\n\u003e **NOTE:** This parameter is immutable. Changing it after creation has no effect.\n"},"backupStrategy":{"type":"string","description":"The backup strategy. Valid values:\n"},"backupType":{"type":"string","description":"The backup type. Valid values:  \n- FullBackup: full backup\n- IncrementalBackup: incremental backup\n","willReplaceOnChanges":true},"dbInstanceId":{"type":"string","description":"The instance ID. You can call DescribeDBInstances to obtain it.\n","willReplaceOnChanges":true},"dbName":{"type":"string","description":"A list of databases, separated by commas (,).  \n\n\u003e **NOTE:**  This parameter takes effect only when the `BackupStrategy` parameter is specified and its value is \u003cspan pulumi-lang-nodejs=\"`db`\" pulumi-lang-dotnet=\"`Db`\" pulumi-lang-go=\"`db`\" pulumi-lang-python=\"`db`\" pulumi-lang-yaml=\"`db`\" pulumi-lang-java=\"`db`\"\u003e`db`\u003c/span\u003e.\n\n\n\u003e **NOTE:** This parameter is immutable. Changing it after creation has no effect.\n"},"removeFromState":{"type":"boolean","description":"Remove form state when resource cannot be deleted. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"storeStatus":{"type":"string","description":"Indicates whether the backup can be deleted.\n"}},"type":"object"}},"alicloud:rds/rdsCloneDbInstance:RdsCloneDbInstance":{"description":"Provides an RDS Clone DB Instance resource.\n\nFor information about RDS Clone DB Instance and how to use it, see [What is ApsaraDB for RDS](https://www.alibabacloud.com/help/en/rds/product-overview/what-is-apsaradb-rds).\n\n\u003e **NOTE:** Available since v1.149.0.\n\n## Example Usage\n\n### Create an RDS MySQL clone instance\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.rds.getZones({\n    engine: \"PostgreSQL\",\n    engineVersion: \"13.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"HighAvailability\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst exampleGetInstanceClasses = example.then(example =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: example.zones?.[0]?.id,\n    engine: \"PostgreSQL\",\n    engineVersion: \"13.0\",\n    category: \"HighAvailability\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceChargeType: \"PostPaid\",\n}));\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vpcId: exampleNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n    vswitchName: \"terraform-example\",\n});\nconst exampleInstance = new alicloud.rds.Instance(\"example\", {\n    engine: \"PostgreSQL\",\n    engineVersion: \"13.0\",\n    instanceType: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    instanceChargeType: \"Postpaid\",\n    instanceName: \"terraform-example\",\n    vswitchId: exampleSwitch.id,\n    monitoringPeriod: 60,\n});\nconst exampleRdsBackup = new alicloud.rds.RdsBackup(\"example\", {\n    dbInstanceId: exampleInstance.id,\n    removeFromState: true,\n});\nconst exampleRdsCloneDbInstance = new alicloud.rds.RdsCloneDbInstance(\"example\", {\n    sourceDbInstanceId: exampleInstance.id,\n    dbInstanceStorageType: \"cloud_essd\",\n    paymentType: \"PayAsYouGo\",\n    backupId: exampleRdsBackup.backupId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.rds.get_zones(engine=\"PostgreSQL\",\n    engine_version=\"13.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"HighAvailability\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=example.zones[0].id,\n    engine=\"PostgreSQL\",\n    engine_version=\"13.0\",\n    category=\"HighAvailability\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_charge_type=\"PostPaid\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vpc_id=example_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=example.zones[0].id,\n    vswitch_name=\"terraform-example\")\nexample_instance = alicloud.rds.Instance(\"example\",\n    engine=\"PostgreSQL\",\n    engine_version=\"13.0\",\n    instance_type=example_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=example_get_instance_classes.instance_classes[0].storage_range.min,\n    instance_charge_type=\"Postpaid\",\n    instance_name=\"terraform-example\",\n    vswitch_id=example_switch.id,\n    monitoring_period=60)\nexample_rds_backup = alicloud.rds.RdsBackup(\"example\",\n    db_instance_id=example_instance.id,\n    remove_from_state=True)\nexample_rds_clone_db_instance = alicloud.rds.RdsCloneDbInstance(\"example\",\n    source_db_instance_id=example_instance.id,\n    db_instance_storage_type=\"cloud_essd\",\n    payment_type=\"PayAsYouGo\",\n    backup_id=example_rds_backup.backup_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"PostgreSQL\",\n        EngineVersion = \"13.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"HighAvailability\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Engine = \"PostgreSQL\",\n        EngineVersion = \"13.0\",\n        Category = \"HighAvailability\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VpcId = exampleNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = \"terraform-example\",\n    });\n\n    var exampleInstance = new AliCloud.Rds.Instance(\"example\", new()\n    {\n        Engine = \"PostgreSQL\",\n        EngineVersion = \"13.0\",\n        InstanceType = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = \"terraform-example\",\n        VswitchId = exampleSwitch.Id,\n        MonitoringPeriod = 60,\n    });\n\n    var exampleRdsBackup = new AliCloud.Rds.RdsBackup(\"example\", new()\n    {\n        DbInstanceId = exampleInstance.Id,\n        RemoveFromState = true,\n    });\n\n    var exampleRdsCloneDbInstance = new AliCloud.Rds.RdsCloneDbInstance(\"example\", new()\n    {\n        SourceDbInstanceId = exampleInstance.Id,\n        DbInstanceStorageType = \"cloud_essd\",\n        PaymentType = \"PayAsYouGo\",\n        BackupId = exampleRdsBackup.BackupId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"PostgreSQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"13.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"HighAvailability\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(example.Zones[0].Id),\n\t\t\tEngine:                pulumi.StringRef(\"PostgreSQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"13.0\"),\n\t\t\tCategory:              pulumi.StringRef(\"HighAvailability\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := rds.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\n\t\t\tEngine:             pulumi.String(\"PostgreSQL\"),\n\t\t\tEngineVersion:      pulumi.String(\"13.0\"),\n\t\t\tInstanceType:       pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceStorage:    pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tInstanceChargeType: pulumi.String(\"Postpaid\"),\n\t\t\tInstanceName:       pulumi.String(\"terraform-example\"),\n\t\t\tVswitchId:          exampleSwitch.ID(),\n\t\t\tMonitoringPeriod:   pulumi.Int(60),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRdsBackup, err := rds.NewRdsBackup(ctx, \"example\", \u0026rds.RdsBackupArgs{\n\t\t\tDbInstanceId:    exampleInstance.ID(),\n\t\t\tRemoveFromState: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewRdsCloneDbInstance(ctx, \"example\", \u0026rds.RdsCloneDbInstanceArgs{\n\t\t\tSourceDbInstanceId:    exampleInstance.ID(),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tPaymentType:           pulumi.String(\"PayAsYouGo\"),\n\t\t\tBackupId:              exampleRdsBackup.BackupId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.RdsBackup;\nimport com.pulumi.alicloud.rds.RdsBackupArgs;\nimport com.pulumi.alicloud.rds.RdsCloneDbInstance;\nimport com.pulumi.alicloud.rds.RdsCloneDbInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"PostgreSQL\")\n            .engineVersion(\"13.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"HighAvailability\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var exampleGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(example.zones()[0].id())\n            .engine(\"PostgreSQL\")\n            .engineVersion(\"13.0\")\n            .category(\"HighAvailability\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vpcId(exampleNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(example.zones()[0].id())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .engine(\"PostgreSQL\")\n            .engineVersion(\"13.0\")\n            .instanceType(exampleGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(exampleGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(\"terraform-example\")\n            .vswitchId(exampleSwitch.id())\n            .monitoringPeriod(60)\n            .build());\n\n        var exampleRdsBackup = new RdsBackup(\"exampleRdsBackup\", RdsBackupArgs.builder()\n            .dbInstanceId(exampleInstance.id())\n            .removeFromState(true)\n            .build());\n\n        var exampleRdsCloneDbInstance = new RdsCloneDbInstance(\"exampleRdsCloneDbInstance\", RdsCloneDbInstanceArgs.builder()\n            .sourceDbInstanceId(exampleInstance.id())\n            .dbInstanceStorageType(\"cloud_essd\")\n            .paymentType(\"PayAsYouGo\")\n            .backupId(exampleRdsBackup.backupId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vpcId: ${exampleNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${example.zones[0].id}\n      vswitchName: terraform-example\n  exampleInstance:\n    type: alicloud:rds:Instance\n    name: example\n    properties:\n      engine: PostgreSQL\n      engineVersion: '13.0'\n      instanceType: ${exampleGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceStorage: ${exampleGetInstanceClasses.instanceClasses[0].storageRange.min}\n      instanceChargeType: Postpaid\n      instanceName: terraform-example\n      vswitchId: ${exampleSwitch.id}\n      monitoringPeriod: '60'\n  exampleRdsBackup:\n    type: alicloud:rds:RdsBackup\n    name: example\n    properties:\n      dbInstanceId: ${exampleInstance.id}\n      removeFromState: 'true'\n  exampleRdsCloneDbInstance:\n    type: alicloud:rds:RdsCloneDbInstance\n    name: example\n    properties:\n      sourceDbInstanceId: ${exampleInstance.id}\n      dbInstanceStorageType: cloud_essd\n      paymentType: PayAsYouGo\n      backupId: ${exampleRdsBackup.backupId}\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: PostgreSQL\n        engineVersion: '13.0'\n        instanceChargeType: PostPaid\n        category: HighAvailability\n        dbInstanceStorageType: cloud_essd\n  exampleGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${example.zones[0].id}\n        engine: PostgreSQL\n        engineVersion: '13.0'\n        category: HighAvailability\n        dbInstanceStorageType: cloud_essd\n        instanceChargeType: PostPaid\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS Clone DB Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/rdsCloneDbInstance:RdsCloneDbInstance example \u003cid\u003e\n```\n\n","properties":{"acl":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. This parameter indicates the authentication method. It is allowed only when the public key of the client certificate authority is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`perfer`\" pulumi-lang-dotnet=\"`Perfer`\" pulumi-lang-go=\"`perfer`\" pulumi-lang-python=\"`perfer`\" pulumi-lang-yaml=\"`perfer`\" pulumi-lang-java=\"`perfer`\"\u003e`perfer`\u003c/span\u003e and `verify-ca` and `verify-full (supported by RDS PostgreSQL above 12)`.\n"},"autoUpgradeMinorVersion":{"type":"string","description":"How to upgrade the minor version of the instance. Valid values:\n* **Auto**: automatically upgrade the minor version.\n* **Manual**: It is not automatically upgraded. It is only mandatory when the current version is offline.\n"},"backupId":{"type":"string","description":"The ID of the data backup file you want to use. You can call the DescribeBackups operation to query the most recent data backup file list.\n\n\u003e **NOTE:** You must specify at least one of the BackupId and RestoreTime parameters. When `payment_type=\"Serverless\"` and when modifying, do not perform \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e check. Otherwise, check.\n"},"backupType":{"type":"string","description":"The type of backup that is used to restore the data of the original instance. Valid values:\n* **FullBackup**: full backup\n* **IncrementalBackup**: incremental backup\n"},"caType":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the certificate type. When the value of\u003cspan pulumi-lang-nodejs=\" sslAction \" pulumi-lang-dotnet=\" SslAction \" pulumi-lang-go=\" sslAction \" pulumi-lang-python=\" ssl_action \" pulumi-lang-yaml=\" sslAction \" pulumi-lang-java=\" sslAction \"\u003e ssl_action \u003c/span\u003eis Open, the default value of this parameter is aliyun. Value range:\n* **aliyun**: using cloud certificates\n* **custom**: use a custom certificate. Valid values: \u003cspan pulumi-lang-nodejs=\"`aliyun`\" pulumi-lang-dotnet=\"`Aliyun`\" pulumi-lang-go=\"`aliyun`\" pulumi-lang-python=\"`aliyun`\" pulumi-lang-yaml=\"`aliyun`\" pulumi-lang-java=\"`aliyun`\"\u003e`aliyun`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"category":{"type":"string","description":"Instance series. Valid values:\n* **Basic**: Basic Edition\n* **HighAvailability**: High availability\n* **AlwaysOn**: Cluster Edition\n* **Finance**: Three-node Enterprise Edition.\n* **serverless_basic**: Serverless Basic Edition. (Available since v1.200.0)\n* **serverless_standard**: MySQL Serverless High Availability Edition. (Available since v1.207.0)\n* **serverless_ha**: SQLServer Serverless High Availability Edition. (Available since v1.207.0)\n* **cluster**: MySQL Cluster Edition. (Available since v1.207.0)\n"},"certificate":{"type":"string","description":"The file that contains the certificate used for TDE.\n"},"clientCaCert":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the public key of the client certification authority. If the value of\u003cspan pulumi-lang-nodejs=\" clientCaEnabled \" pulumi-lang-dotnet=\" ClientCaEnabled \" pulumi-lang-go=\" clientCaEnabled \" pulumi-lang-python=\" client_ca_enabled \" pulumi-lang-yaml=\" clientCaEnabled \" pulumi-lang-java=\" clientCaEnabled \"\u003e client_ca_enabled \u003c/span\u003eis 1, this parameter must be configured.\n"},"clientCaEnabled":{"type":"integer","description":"The client ca enabled.\n"},"clientCertRevocationList":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version, which indicates that the client revokes the certificate file. If the value of\u003cspan pulumi-lang-nodejs=\" clientCrlEnabled \" pulumi-lang-dotnet=\" ClientCrlEnabled \" pulumi-lang-go=\" clientCrlEnabled \" pulumi-lang-python=\" client_crl_enabled \" pulumi-lang-yaml=\" clientCrlEnabled \" pulumi-lang-java=\" clientCrlEnabled \"\u003e client_crl_enabled \u003c/span\u003eis 1, this parameter must be configured.\n"},"clientCrlEnabled":{"type":"integer","description":"The client crl enabled.\n"},"connectionString":{"type":"string","description":"The database connection address.\n"},"connectionStringPrefix":{"type":"string","description":"The connection string prefix.\n"},"dbInstanceClass":{"type":"string","description":"The instance type of the new instance. For information, see [Primary ApsaraDB RDS instance types](https://www.alibabacloud.com/help/en/rds/product-overview/primary-apsaradb-rds-instance-types).\n"},"dbInstanceDescription":{"type":"string","description":"The db instance description.\n"},"dbInstanceStorage":{"type":"integer","description":"The storage capacity of the new instance. Unit: GB. The storage capacity increases in increments of 5 GB. For more information, see [Primary ApsaraDB RDS instance types](https://www.alibabacloud.com/help/en/rds/product-overview/primary-apsaradb-rds-instance-types).\n\n\u003e **NOTE:** The default value of this parameter is the storage capacity of the original instance.\n"},"dbInstanceStorageType":{"type":"string","description":"The type of storage media that is used for the new instance. Valid values:\n* **local_ssd**: local SSDs\n* **cloud_ssd**: standard SSDs\n* **cloud_essd**: enhanced SSDs (ESSDs) of performance level 1 (PL1)\n* **cloud_essd2**: ESSDs of PL2\n* **cloud_essd3**: ESSDs of PL3\n* **general_essd**: general ESSDS Available since v1.258.0\n"},"dbName":{"type":"string","description":"The name of the database for which you want to enable TDE. Up to 50 names can be entered in a single request. If you specify multiple names, separate these names with commas (,).\n\n\u003e **NOTE:** This parameter is available and must be specified only when the instance runs SQL Server 2019 SE or an Enterprise Edition of SQL Server.\n"},"dbNames":{"type":"string","description":"The names of the databases that you want to create on the new instance.\n"},"dedicatedHostGroupId":{"type":"string","description":"The ID of the dedicated cluster to which the new instance belongs. This parameter takes effect only when you create the new instance in a dedicated cluster.\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. Valid values:\n- true: delete protect.\n- false: no delete protect.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`deletionProtection`\" pulumi-lang-dotnet=\"`DeletionProtection`\" pulumi-lang-go=\"`deletionProtection`\" pulumi-lang-python=\"`deletion_protection`\" pulumi-lang-yaml=\"`deletionProtection`\" pulumi-lang-java=\"`deletionProtection`\"\u003e`deletion_protection`\u003c/span\u003e is valid only when attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, supported engine type: **MySQL**, **PostgreSQL**, **MariaDB**, **MSSQL**.\n"},"direction":{"type":"string","description":"The direction. Valid values: `Auto`, `Down`, `TempUpgrade`, `Up`.\n"},"effectiveTime":{"type":"string","description":"The effective time.\n"},"encryptionKey":{"type":"string","description":"The ID of the private key.\n\n\u003e **NOTE:** This parameter is available only when the instance runs MySQL.\n"},"engine":{"type":"string","description":"Database type. Value options: MySQL, SQLServer, PostgreSQL, MariaDB.\n"},"engineVersion":{"type":"string","description":"Database version. Value:\n* MySQL:**5.5/5.6/5.7/8.0**\n* SQL Server:**2008r2/08r2_ent_ha/2012/2012_ent_ha/2012_std_ha/2012_web/2014_std_ha/2016_ent_ha/2016_std_ha/2016_web/2017_std_ha/2017_ent/2019_std_ha/2019_ent**\n* PostgreSQL:**9.4/10.0/11.0/12.0/13.0**\n* MariaDB:**10.3**.\n"},"forceRestart":{"type":"boolean","description":"Set it to true to make some parameter efficient when modifying them. Default to false.\n"},"haMode":{"type":"string","description":"The high availability mode. Valid values:\n* **RPO**: Data persistence is preferred. The instance preferentially ensures data reliability to minimize data loss. Use this mode if you have higher requirements on data consistency.\n* **RTO**: Instance availability is preferred. The instance restores services as soon as possible to ensure availability. Use this mode if you have higher requirements on service availability.\n"},"instanceNetworkType":{"type":"string","description":"The network type of the instance. Valid values:\n* **Classic**: Classic Network\n* **VPC**: VPC.\n"},"maintainTime":{"type":"string","description":"The maintainable time period of the instance. Format: \u003cI\u003e HH:mm\u003c/I\u003e Z-\u003cI\u003e HH:mm\u003c/I\u003e Z(UTC time).\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsCloneDbInstanceParameter:RdsCloneDbInstanceParameter"},"description":"Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm).See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"password":{"type":"string","description":"The password of the certificate. \n\n\u003e **NOTE:** This parameter is available only when the instance runs SQL Server 2019 SE or an Enterprise Edition of SQL Server.\n"},"paymentType":{"type":"string","description":"The billing method of the new instance. Valid values: `PayAsYouGo` and `Subscription` and `Serverless`.\n"},"period":{"type":"string","description":"The period. Valid values: `Month`, `Year`.\n\n\u003e **NOTE:** If you set the\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eparameter to Subscription, you must specify the period parameter.\n"},"pgHbaConfs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsCloneDbInstancePgHbaConf:RdsCloneDbInstancePgHbaConf"},"description":"The details of the AD domain.See \u003cspan pulumi-lang-nodejs=\"`pgHbaConf`\" pulumi-lang-dotnet=\"`PgHbaConf`\" pulumi-lang-go=\"`pgHbaConf`\" pulumi-lang-python=\"`pg_hba_conf`\" pulumi-lang-yaml=\"`pgHbaConf`\" pulumi-lang-java=\"`pgHbaConf`\"\u003e`pg_hba_conf`\u003c/span\u003e below.\n"},"port":{"type":"string","description":"The port.\n"},"privateIpAddress":{"type":"string","description":"The intranet IP address of the new instance must be within the specified vSwitch IP address range. By default, the system automatically allocates by using **VPCId** and **VSwitchId**.\n"},"privateKey":{"type":"string","description":"The file that contains the private key used for TDE.\n"},"releasedKeepPolicy":{"type":"string","description":"The released keep policy.\n"},"replicationAcl":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version, indicating the authentication method of the replication permission. It is only allowed when the public key of the client certificate authority is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`perfer`\" pulumi-lang-dotnet=\"`Perfer`\" pulumi-lang-go=\"`perfer`\" pulumi-lang-python=\"`perfer`\" pulumi-lang-yaml=\"`perfer`\" pulumi-lang-java=\"`perfer`\"\u003e`perfer`\u003c/span\u003e and `verify-ca` and `verify-full (supported by RDS PostgreSQL above 12)`.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"restoreTable":{"type":"string","description":"Specifies whether to restore only the databases and tables that you specify. The value 1 specifies to restore only the specified databases and tables. If you do not want to restore only the specified databases or tables, you can choose not to specify this parameter.\n"},"restoreTime":{"type":"string","description":"The point in time to which you want to restore the data of the original instance. The point in time must fall within the specified log backup retention period. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of a RAM role. A RAM role is a virtual RAM identity that you can create within your Alibaba Cloud account.\n\n\u003e **NOTE:** This parameter is available only when the instance runs MySQL.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"The IP address whitelist of the instance. Separate multiple IP addresses with commas (,) and cannot be repeated. The following two formats are supported:\n* IP address form, for example: 10.23.12.24.\n* CIDR format, for example, 10.23.12.0/24 (no Inter-Domain Routing, 24 indicates the length of the prefix in the address, ranging from 1 to 32).\n\n\u003e **NOTE:** each instance can add up to 1000 IP addresses or IP segments, that is, the total number of IP addresses or IP segments in all IP whitelist groups cannot exceed 1000. When there are more IP addresses, it is recommended to merge them into IP segments, for example, 10.23.12.0/24.\n"},"serverCert":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the content of the server certificate. If the CAType value is custom, this parameter must be configured.\n"},"serverKey":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the private key of the server certificate. If the value of CAType is custom, this parameter must be configured.\n"},"serverlessConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsCloneDbInstanceServerlessConfig:RdsCloneDbInstanceServerlessConfig"},"description":"The settings of the serverless instance. This parameter is required when you create a serverless instance. This parameter takes effect only when you create an ApsaraDB RDS for MySQL instance.See \u003cspan pulumi-lang-nodejs=\"`serverlessConfig`\" pulumi-lang-dotnet=\"`ServerlessConfig`\" pulumi-lang-go=\"`serverlessConfig`\" pulumi-lang-python=\"`serverless_config`\" pulumi-lang-yaml=\"`serverlessConfig`\" pulumi-lang-java=\"`serverlessConfig`\"\u003e`serverless_config`\u003c/span\u003e below.\n"},"sourceBiz":{"type":"string","description":"The source biz.\n"},"sourceDbInstanceId":{"type":"string","description":"The source db instance id.\n"},"sslEnabled":{"type":"integer","description":"Enable or disable SSL. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"switchTime":{"type":"string","description":"The time at which you want to apply the specification changes. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"syncMode":{"type":"string","description":"[The data replication mode](https://www.alibabacloud.com/help/doc-detail/96055.htm). Valid values:\n* **Sync**: strong synchronization\n* **Semi-sync**: Semi-synchronous\n* **Async**: asynchronous\n\n\u003e **NOTE:** SQL Server 2017 cluster version is currently not supported.\n"},"tableMeta":{"type":"string","description":"The information about the databases and tables that you want to restore. Format:\n[{\"type\":\"db\",\"name\":\"The original name of Database 1\",\"newname\":\"The new name of Database 1\",\"tables\":[{\"type\":\"table\",\"name\":\"The original name of Table 1 in Database 1\",\"newname\":\"The new name of Table 1 in Database 1\"},{\"type\":\"table\",\"name\":\"The original name of Table 2 in Database 1\",\"newname\":\"The new name of Table 2 in Database 1\"}]},{\"type\":\"db\",\"name\":\"The original name of Database 2\",\"newname\":\"The new name of Database 2\",\"tables\":[{\"type\":\"table\",\"name\":\"The original name of Table 1 in Database 2\",\"newname\":\"The new name of Table 1 in Database 2\"},{\"type\":\"table\",\"name\":\"The original name of Table 2 in Database 2\",\"newname\":\"The new name of Table 2 in Database 2\"}]}]\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"tcpConnectionType":{"type":"string","description":"The availability check method of the instance. Valid values:\n- **SHORT**: Alibaba Cloud uses short-lived connections to check the availability of the instance.\n- **LONG**: Alibaba Cloud uses persistent connections to check the availability of the instance.\n"},"tdeStatus":{"type":"string","description":"Specifies whether to enable TDE. Valid values:\n* Enabled\n* Disabled\n"},"usedTime":{"type":"integer","description":"The subscription period of the new instance. This parameter takes effect only when you select the subscription billing method for the new instance. Valid values:\n* If you set the `Period` parameter to Year, the value of the UsedTime parameter ranges from 1 to 3.\n* If you set the `Period` parameter to Month, the value of the UsedTime parameter ranges from 1 to 9.\n\n\u003e **NOTE:** If you set the\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eparameter to Subscription, you must specify the\u003cspan pulumi-lang-nodejs=\" usedTime \" pulumi-lang-dotnet=\" UsedTime \" pulumi-lang-go=\" usedTime \" pulumi-lang-python=\" used_time \" pulumi-lang-yaml=\" usedTime \" pulumi-lang-java=\" usedTime \"\u003e used_time \u003c/span\u003eparameter.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the new instance belongs.\n\n\u003e **NOTE:** Make sure that the VPC resides in the specified region.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch associated with the specified VPC. If there are multiple vswitches, separate them with commas. The first vswitch is a primary zone switch and the query only returns that vswitch. If there are multiple vswitches, do not perform \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e check.\n\n\u003e **NOTE:** Make sure that the vSwitch belongs to the specified VPC and region.\n"},"zoneId":{"type":"string","description":"The ID of the zone to which the new instance belongs. You can call the [DescribeRegions](https://www.alibabacloud.com/help/en/rds/developer-reference/api-rds-2014-08-15-describeregions) operation to query the most recent region list.\n"},"zoneIdSlaveA":{"type":"string","description":"The region ID of the secondary instance if you create a secondary instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.\n"},"zoneIdSlaveB":{"type":"string","description":"The region ID of the log instance if you create a log instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.\n\n\u003e **NOTE:** The default value of this parameter is the ID of the zone to which the original instance belongs.\n"}},"required":["acl","autoUpgradeMinorVersion","caType","category","connectionString","dbInstanceClass","dbInstanceDescription","dbInstanceStorage","dbInstanceStorageType","engine","engineVersion","haMode","instanceNetworkType","maintainTime","parameters","paymentType","pgHbaConfs","port","privateIpAddress","replicationAcl","securityIps","serverCert","serverKey","sourceDbInstanceId","sslEnabled","syncMode","tcpConnectionType","vpcId","vswitchId","zoneId","zoneIdSlaveA","zoneIdSlaveB"],"inputProperties":{"acl":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. This parameter indicates the authentication method. It is allowed only when the public key of the client certificate authority is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`perfer`\" pulumi-lang-dotnet=\"`Perfer`\" pulumi-lang-go=\"`perfer`\" pulumi-lang-python=\"`perfer`\" pulumi-lang-yaml=\"`perfer`\" pulumi-lang-java=\"`perfer`\"\u003e`perfer`\u003c/span\u003e and `verify-ca` and `verify-full (supported by RDS PostgreSQL above 12)`.\n"},"autoUpgradeMinorVersion":{"type":"string","description":"How to upgrade the minor version of the instance. Valid values:\n* **Auto**: automatically upgrade the minor version.\n* **Manual**: It is not automatically upgraded. It is only mandatory when the current version is offline.\n"},"backupId":{"type":"string","description":"The ID of the data backup file you want to use. You can call the DescribeBackups operation to query the most recent data backup file list.\n\n\u003e **NOTE:** You must specify at least one of the BackupId and RestoreTime parameters. When `payment_type=\"Serverless\"` and when modifying, do not perform \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e check. Otherwise, check.\n"},"backupType":{"type":"string","description":"The type of backup that is used to restore the data of the original instance. Valid values:\n* **FullBackup**: full backup\n* **IncrementalBackup**: incremental backup\n"},"caType":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the certificate type. When the value of\u003cspan pulumi-lang-nodejs=\" sslAction \" pulumi-lang-dotnet=\" SslAction \" pulumi-lang-go=\" sslAction \" pulumi-lang-python=\" ssl_action \" pulumi-lang-yaml=\" sslAction \" pulumi-lang-java=\" sslAction \"\u003e ssl_action \u003c/span\u003eis Open, the default value of this parameter is aliyun. Value range:\n* **aliyun**: using cloud certificates\n* **custom**: use a custom certificate. Valid values: \u003cspan pulumi-lang-nodejs=\"`aliyun`\" pulumi-lang-dotnet=\"`Aliyun`\" pulumi-lang-go=\"`aliyun`\" pulumi-lang-python=\"`aliyun`\" pulumi-lang-yaml=\"`aliyun`\" pulumi-lang-java=\"`aliyun`\"\u003e`aliyun`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"category":{"type":"string","description":"Instance series. Valid values:\n* **Basic**: Basic Edition\n* **HighAvailability**: High availability\n* **AlwaysOn**: Cluster Edition\n* **Finance**: Three-node Enterprise Edition.\n* **serverless_basic**: Serverless Basic Edition. (Available since v1.200.0)\n* **serverless_standard**: MySQL Serverless High Availability Edition. (Available since v1.207.0)\n* **serverless_ha**: SQLServer Serverless High Availability Edition. (Available since v1.207.0)\n* **cluster**: MySQL Cluster Edition. (Available since v1.207.0)\n","willReplaceOnChanges":true},"certificate":{"type":"string","description":"The file that contains the certificate used for TDE.\n"},"clientCaCert":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the public key of the client certification authority. If the value of\u003cspan pulumi-lang-nodejs=\" clientCaEnabled \" pulumi-lang-dotnet=\" ClientCaEnabled \" pulumi-lang-go=\" clientCaEnabled \" pulumi-lang-python=\" client_ca_enabled \" pulumi-lang-yaml=\" clientCaEnabled \" pulumi-lang-java=\" clientCaEnabled \"\u003e client_ca_enabled \u003c/span\u003eis 1, this parameter must be configured.\n"},"clientCaEnabled":{"type":"integer","description":"The client ca enabled.\n"},"clientCertRevocationList":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version, which indicates that the client revokes the certificate file. If the value of\u003cspan pulumi-lang-nodejs=\" clientCrlEnabled \" pulumi-lang-dotnet=\" ClientCrlEnabled \" pulumi-lang-go=\" clientCrlEnabled \" pulumi-lang-python=\" client_crl_enabled \" pulumi-lang-yaml=\" clientCrlEnabled \" pulumi-lang-java=\" clientCrlEnabled \"\u003e client_crl_enabled \u003c/span\u003eis 1, this parameter must be configured.\n"},"clientCrlEnabled":{"type":"integer","description":"The client crl enabled.\n"},"connectionStringPrefix":{"type":"string","description":"The connection string prefix.\n"},"dbInstanceClass":{"type":"string","description":"The instance type of the new instance. For information, see [Primary ApsaraDB RDS instance types](https://www.alibabacloud.com/help/en/rds/product-overview/primary-apsaradb-rds-instance-types).\n"},"dbInstanceDescription":{"type":"string","description":"The db instance description.\n"},"dbInstanceStorage":{"type":"integer","description":"The storage capacity of the new instance. Unit: GB. The storage capacity increases in increments of 5 GB. For more information, see [Primary ApsaraDB RDS instance types](https://www.alibabacloud.com/help/en/rds/product-overview/primary-apsaradb-rds-instance-types).\n\n\u003e **NOTE:** The default value of this parameter is the storage capacity of the original instance.\n"},"dbInstanceStorageType":{"type":"string","description":"The type of storage media that is used for the new instance. Valid values:\n* **local_ssd**: local SSDs\n* **cloud_ssd**: standard SSDs\n* **cloud_essd**: enhanced SSDs (ESSDs) of performance level 1 (PL1)\n* **cloud_essd2**: ESSDs of PL2\n* **cloud_essd3**: ESSDs of PL3\n* **general_essd**: general ESSDS Available since v1.258.0\n"},"dbName":{"type":"string","description":"The name of the database for which you want to enable TDE. Up to 50 names can be entered in a single request. If you specify multiple names, separate these names with commas (,).\n\n\u003e **NOTE:** This parameter is available and must be specified only when the instance runs SQL Server 2019 SE or an Enterprise Edition of SQL Server.\n"},"dbNames":{"type":"string","description":"The names of the databases that you want to create on the new instance.\n"},"dedicatedHostGroupId":{"type":"string","description":"The ID of the dedicated cluster to which the new instance belongs. This parameter takes effect only when you create the new instance in a dedicated cluster.\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. Valid values:\n- true: delete protect.\n- false: no delete protect.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`deletionProtection`\" pulumi-lang-dotnet=\"`DeletionProtection`\" pulumi-lang-go=\"`deletionProtection`\" pulumi-lang-python=\"`deletion_protection`\" pulumi-lang-yaml=\"`deletionProtection`\" pulumi-lang-java=\"`deletionProtection`\"\u003e`deletion_protection`\u003c/span\u003e is valid only when attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, supported engine type: **MySQL**, **PostgreSQL**, **MariaDB**, **MSSQL**.\n"},"direction":{"type":"string","description":"The direction. Valid values: `Auto`, `Down`, `TempUpgrade`, `Up`.\n"},"effectiveTime":{"type":"string","description":"The effective time.\n"},"encryptionKey":{"type":"string","description":"The ID of the private key.\n\n\u003e **NOTE:** This parameter is available only when the instance runs MySQL.\n"},"engine":{"type":"string","description":"Database type. Value options: MySQL, SQLServer, PostgreSQL, MariaDB.\n","willReplaceOnChanges":true},"engineVersion":{"type":"string","description":"Database version. Value:\n* MySQL:**5.5/5.6/5.7/8.0**\n* SQL Server:**2008r2/08r2_ent_ha/2012/2012_ent_ha/2012_std_ha/2012_web/2014_std_ha/2016_ent_ha/2016_std_ha/2016_web/2017_std_ha/2017_ent/2019_std_ha/2019_ent**\n* PostgreSQL:**9.4/10.0/11.0/12.0/13.0**\n* MariaDB:**10.3**.\n","willReplaceOnChanges":true},"forceRestart":{"type":"boolean","description":"Set it to true to make some parameter efficient when modifying them. Default to false.\n"},"haMode":{"type":"string","description":"The high availability mode. Valid values:\n* **RPO**: Data persistence is preferred. The instance preferentially ensures data reliability to minimize data loss. Use this mode if you have higher requirements on data consistency.\n* **RTO**: Instance availability is preferred. The instance restores services as soon as possible to ensure availability. Use this mode if you have higher requirements on service availability.\n"},"instanceNetworkType":{"type":"string","description":"The network type of the instance. Valid values:\n* **Classic**: Classic Network\n* **VPC**: VPC.\n","willReplaceOnChanges":true},"maintainTime":{"type":"string","description":"The maintainable time period of the instance. Format: \u003cI\u003e HH:mm\u003c/I\u003e Z-\u003cI\u003e HH:mm\u003c/I\u003e Z(UTC time).\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsCloneDbInstanceParameter:RdsCloneDbInstanceParameter"},"description":"Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm).See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"password":{"type":"string","description":"The password of the certificate. \n\n\u003e **NOTE:** This parameter is available only when the instance runs SQL Server 2019 SE or an Enterprise Edition of SQL Server.\n"},"paymentType":{"type":"string","description":"The billing method of the new instance. Valid values: `PayAsYouGo` and `Subscription` and `Serverless`.\n"},"period":{"type":"string","description":"The period. Valid values: `Month`, `Year`.\n\n\u003e **NOTE:** If you set the\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eparameter to Subscription, you must specify the period parameter.\n"},"pgHbaConfs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsCloneDbInstancePgHbaConf:RdsCloneDbInstancePgHbaConf"},"description":"The details of the AD domain.See \u003cspan pulumi-lang-nodejs=\"`pgHbaConf`\" pulumi-lang-dotnet=\"`PgHbaConf`\" pulumi-lang-go=\"`pgHbaConf`\" pulumi-lang-python=\"`pg_hba_conf`\" pulumi-lang-yaml=\"`pgHbaConf`\" pulumi-lang-java=\"`pgHbaConf`\"\u003e`pg_hba_conf`\u003c/span\u003e below.\n"},"port":{"type":"string","description":"The port.\n"},"privateIpAddress":{"type":"string","description":"The intranet IP address of the new instance must be within the specified vSwitch IP address range. By default, the system automatically allocates by using **VPCId** and **VSwitchId**.\n"},"privateKey":{"type":"string","description":"The file that contains the private key used for TDE.\n"},"releasedKeepPolicy":{"type":"string","description":"The released keep policy.\n"},"replicationAcl":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version, indicating the authentication method of the replication permission. It is only allowed when the public key of the client certificate authority is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`perfer`\" pulumi-lang-dotnet=\"`Perfer`\" pulumi-lang-go=\"`perfer`\" pulumi-lang-python=\"`perfer`\" pulumi-lang-yaml=\"`perfer`\" pulumi-lang-java=\"`perfer`\"\u003e`perfer`\u003c/span\u003e and `verify-ca` and `verify-full (supported by RDS PostgreSQL above 12)`.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"restoreTable":{"type":"string","description":"Specifies whether to restore only the databases and tables that you specify. The value 1 specifies to restore only the specified databases and tables. If you do not want to restore only the specified databases or tables, you can choose not to specify this parameter.\n"},"restoreTime":{"type":"string","description":"The point in time to which you want to restore the data of the original instance. The point in time must fall within the specified log backup retention period. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of a RAM role. A RAM role is a virtual RAM identity that you can create within your Alibaba Cloud account.\n\n\u003e **NOTE:** This parameter is available only when the instance runs MySQL.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"The IP address whitelist of the instance. Separate multiple IP addresses with commas (,) and cannot be repeated. The following two formats are supported:\n* IP address form, for example: 10.23.12.24.\n* CIDR format, for example, 10.23.12.0/24 (no Inter-Domain Routing, 24 indicates the length of the prefix in the address, ranging from 1 to 32).\n\n\u003e **NOTE:** each instance can add up to 1000 IP addresses or IP segments, that is, the total number of IP addresses or IP segments in all IP whitelist groups cannot exceed 1000. When there are more IP addresses, it is recommended to merge them into IP segments, for example, 10.23.12.0/24.\n"},"serverCert":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the content of the server certificate. If the CAType value is custom, this parameter must be configured.\n"},"serverKey":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the private key of the server certificate. If the value of CAType is custom, this parameter must be configured.\n"},"serverlessConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsCloneDbInstanceServerlessConfig:RdsCloneDbInstanceServerlessConfig"},"description":"The settings of the serverless instance. This parameter is required when you create a serverless instance. This parameter takes effect only when you create an ApsaraDB RDS for MySQL instance.See \u003cspan pulumi-lang-nodejs=\"`serverlessConfig`\" pulumi-lang-dotnet=\"`ServerlessConfig`\" pulumi-lang-go=\"`serverlessConfig`\" pulumi-lang-python=\"`serverless_config`\" pulumi-lang-yaml=\"`serverlessConfig`\" pulumi-lang-java=\"`serverlessConfig`\"\u003e`serverless_config`\u003c/span\u003e below.\n"},"sourceBiz":{"type":"string","description":"The source biz.\n"},"sourceDbInstanceId":{"type":"string","description":"The source db instance id.\n","willReplaceOnChanges":true},"sslEnabled":{"type":"integer","description":"Enable or disable SSL. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"switchTime":{"type":"string","description":"The time at which you want to apply the specification changes. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"syncMode":{"type":"string","description":"[The data replication mode](https://www.alibabacloud.com/help/doc-detail/96055.htm). Valid values:\n* **Sync**: strong synchronization\n* **Semi-sync**: Semi-synchronous\n* **Async**: asynchronous\n\n\u003e **NOTE:** SQL Server 2017 cluster version is currently not supported.\n"},"tableMeta":{"type":"string","description":"The information about the databases and tables that you want to restore. Format:\n[{\"type\":\"db\",\"name\":\"The original name of Database 1\",\"newname\":\"The new name of Database 1\",\"tables\":[{\"type\":\"table\",\"name\":\"The original name of Table 1 in Database 1\",\"newname\":\"The new name of Table 1 in Database 1\"},{\"type\":\"table\",\"name\":\"The original name of Table 2 in Database 1\",\"newname\":\"The new name of Table 2 in Database 1\"}]},{\"type\":\"db\",\"name\":\"The original name of Database 2\",\"newname\":\"The new name of Database 2\",\"tables\":[{\"type\":\"table\",\"name\":\"The original name of Table 1 in Database 2\",\"newname\":\"The new name of Table 1 in Database 2\"},{\"type\":\"table\",\"name\":\"The original name of Table 2 in Database 2\",\"newname\":\"The new name of Table 2 in Database 2\"}]}]\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"tcpConnectionType":{"type":"string","description":"The availability check method of the instance. Valid values:\n- **SHORT**: Alibaba Cloud uses short-lived connections to check the availability of the instance.\n- **LONG**: Alibaba Cloud uses persistent connections to check the availability of the instance.\n"},"tdeStatus":{"type":"string","description":"Specifies whether to enable TDE. Valid values:\n* Enabled\n* Disabled\n"},"usedTime":{"type":"integer","description":"The subscription period of the new instance. This parameter takes effect only when you select the subscription billing method for the new instance. Valid values:\n* If you set the `Period` parameter to Year, the value of the UsedTime parameter ranges from 1 to 3.\n* If you set the `Period` parameter to Month, the value of the UsedTime parameter ranges from 1 to 9.\n\n\u003e **NOTE:** If you set the\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eparameter to Subscription, you must specify the\u003cspan pulumi-lang-nodejs=\" usedTime \" pulumi-lang-dotnet=\" UsedTime \" pulumi-lang-go=\" usedTime \" pulumi-lang-python=\" used_time \" pulumi-lang-yaml=\" usedTime \" pulumi-lang-java=\" usedTime \"\u003e used_time \u003c/span\u003eparameter.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the new instance belongs.\n\n\u003e **NOTE:** Make sure that the VPC resides in the specified region.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch associated with the specified VPC. If there are multiple vswitches, separate them with commas. The first vswitch is a primary zone switch and the query only returns that vswitch. If there are multiple vswitches, do not perform \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e check.\n\n\u003e **NOTE:** Make sure that the vSwitch belongs to the specified VPC and region.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The ID of the zone to which the new instance belongs. You can call the [DescribeRegions](https://www.alibabacloud.com/help/en/rds/developer-reference/api-rds-2014-08-15-describeregions) operation to query the most recent region list.\n","willReplaceOnChanges":true},"zoneIdSlaveA":{"type":"string","description":"The region ID of the secondary instance if you create a secondary instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.\n","willReplaceOnChanges":true},"zoneIdSlaveB":{"type":"string","description":"The region ID of the log instance if you create a log instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.\n\n\u003e **NOTE:** The default value of this parameter is the ID of the zone to which the original instance belongs.\n","willReplaceOnChanges":true}},"requiredInputs":["dbInstanceStorageType","paymentType","sourceDbInstanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering RdsCloneDbInstance resources.\n","properties":{"acl":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. This parameter indicates the authentication method. It is allowed only when the public key of the client certificate authority is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`perfer`\" pulumi-lang-dotnet=\"`Perfer`\" pulumi-lang-go=\"`perfer`\" pulumi-lang-python=\"`perfer`\" pulumi-lang-yaml=\"`perfer`\" pulumi-lang-java=\"`perfer`\"\u003e`perfer`\u003c/span\u003e and `verify-ca` and `verify-full (supported by RDS PostgreSQL above 12)`.\n"},"autoUpgradeMinorVersion":{"type":"string","description":"How to upgrade the minor version of the instance. Valid values:\n* **Auto**: automatically upgrade the minor version.\n* **Manual**: It is not automatically upgraded. It is only mandatory when the current version is offline.\n"},"backupId":{"type":"string","description":"The ID of the data backup file you want to use. You can call the DescribeBackups operation to query the most recent data backup file list.\n\n\u003e **NOTE:** You must specify at least one of the BackupId and RestoreTime parameters. When `payment_type=\"Serverless\"` and when modifying, do not perform \u003cspan pulumi-lang-nodejs=\"`instanceStorage`\" pulumi-lang-dotnet=\"`InstanceStorage`\" pulumi-lang-go=\"`instanceStorage`\" pulumi-lang-python=\"`instance_storage`\" pulumi-lang-yaml=\"`instanceStorage`\" pulumi-lang-java=\"`instanceStorage`\"\u003e`instance_storage`\u003c/span\u003e check. Otherwise, check.\n"},"backupType":{"type":"string","description":"The type of backup that is used to restore the data of the original instance. Valid values:\n* **FullBackup**: full backup\n* **IncrementalBackup**: incremental backup\n"},"caType":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the certificate type. When the value of\u003cspan pulumi-lang-nodejs=\" sslAction \" pulumi-lang-dotnet=\" SslAction \" pulumi-lang-go=\" sslAction \" pulumi-lang-python=\" ssl_action \" pulumi-lang-yaml=\" sslAction \" pulumi-lang-java=\" sslAction \"\u003e ssl_action \u003c/span\u003eis Open, the default value of this parameter is aliyun. Value range:\n* **aliyun**: using cloud certificates\n* **custom**: use a custom certificate. Valid values: \u003cspan pulumi-lang-nodejs=\"`aliyun`\" pulumi-lang-dotnet=\"`Aliyun`\" pulumi-lang-go=\"`aliyun`\" pulumi-lang-python=\"`aliyun`\" pulumi-lang-yaml=\"`aliyun`\" pulumi-lang-java=\"`aliyun`\"\u003e`aliyun`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"category":{"type":"string","description":"Instance series. Valid values:\n* **Basic**: Basic Edition\n* **HighAvailability**: High availability\n* **AlwaysOn**: Cluster Edition\n* **Finance**: Three-node Enterprise Edition.\n* **serverless_basic**: Serverless Basic Edition. (Available since v1.200.0)\n* **serverless_standard**: MySQL Serverless High Availability Edition. (Available since v1.207.0)\n* **serverless_ha**: SQLServer Serverless High Availability Edition. (Available since v1.207.0)\n* **cluster**: MySQL Cluster Edition. (Available since v1.207.0)\n","willReplaceOnChanges":true},"certificate":{"type":"string","description":"The file that contains the certificate used for TDE.\n"},"clientCaCert":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the public key of the client certification authority. If the value of\u003cspan pulumi-lang-nodejs=\" clientCaEnabled \" pulumi-lang-dotnet=\" ClientCaEnabled \" pulumi-lang-go=\" clientCaEnabled \" pulumi-lang-python=\" client_ca_enabled \" pulumi-lang-yaml=\" clientCaEnabled \" pulumi-lang-java=\" clientCaEnabled \"\u003e client_ca_enabled \u003c/span\u003eis 1, this parameter must be configured.\n"},"clientCaEnabled":{"type":"integer","description":"The client ca enabled.\n"},"clientCertRevocationList":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version, which indicates that the client revokes the certificate file. If the value of\u003cspan pulumi-lang-nodejs=\" clientCrlEnabled \" pulumi-lang-dotnet=\" ClientCrlEnabled \" pulumi-lang-go=\" clientCrlEnabled \" pulumi-lang-python=\" client_crl_enabled \" pulumi-lang-yaml=\" clientCrlEnabled \" pulumi-lang-java=\" clientCrlEnabled \"\u003e client_crl_enabled \u003c/span\u003eis 1, this parameter must be configured.\n"},"clientCrlEnabled":{"type":"integer","description":"The client crl enabled.\n"},"connectionString":{"type":"string","description":"The database connection address.\n"},"connectionStringPrefix":{"type":"string","description":"The connection string prefix.\n"},"dbInstanceClass":{"type":"string","description":"The instance type of the new instance. For information, see [Primary ApsaraDB RDS instance types](https://www.alibabacloud.com/help/en/rds/product-overview/primary-apsaradb-rds-instance-types).\n"},"dbInstanceDescription":{"type":"string","description":"The db instance description.\n"},"dbInstanceStorage":{"type":"integer","description":"The storage capacity of the new instance. Unit: GB. The storage capacity increases in increments of 5 GB. For more information, see [Primary ApsaraDB RDS instance types](https://www.alibabacloud.com/help/en/rds/product-overview/primary-apsaradb-rds-instance-types).\n\n\u003e **NOTE:** The default value of this parameter is the storage capacity of the original instance.\n"},"dbInstanceStorageType":{"type":"string","description":"The type of storage media that is used for the new instance. Valid values:\n* **local_ssd**: local SSDs\n* **cloud_ssd**: standard SSDs\n* **cloud_essd**: enhanced SSDs (ESSDs) of performance level 1 (PL1)\n* **cloud_essd2**: ESSDs of PL2\n* **cloud_essd3**: ESSDs of PL3\n* **general_essd**: general ESSDS Available since v1.258.0\n"},"dbName":{"type":"string","description":"The name of the database for which you want to enable TDE. Up to 50 names can be entered in a single request. If you specify multiple names, separate these names with commas (,).\n\n\u003e **NOTE:** This parameter is available and must be specified only when the instance runs SQL Server 2019 SE or an Enterprise Edition of SQL Server.\n"},"dbNames":{"type":"string","description":"The names of the databases that you want to create on the new instance.\n"},"dedicatedHostGroupId":{"type":"string","description":"The ID of the dedicated cluster to which the new instance belongs. This parameter takes effect only when you create the new instance in a dedicated cluster.\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. Valid values:\n- true: delete protect.\n- false: no delete protect.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`deletionProtection`\" pulumi-lang-dotnet=\"`DeletionProtection`\" pulumi-lang-go=\"`deletionProtection`\" pulumi-lang-python=\"`deletion_protection`\" pulumi-lang-yaml=\"`deletionProtection`\" pulumi-lang-java=\"`deletionProtection`\"\u003e`deletion_protection`\u003c/span\u003e is valid only when attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, supported engine type: **MySQL**, **PostgreSQL**, **MariaDB**, **MSSQL**.\n"},"direction":{"type":"string","description":"The direction. Valid values: `Auto`, `Down`, `TempUpgrade`, `Up`.\n"},"effectiveTime":{"type":"string","description":"The effective time.\n"},"encryptionKey":{"type":"string","description":"The ID of the private key.\n\n\u003e **NOTE:** This parameter is available only when the instance runs MySQL.\n"},"engine":{"type":"string","description":"Database type. Value options: MySQL, SQLServer, PostgreSQL, MariaDB.\n","willReplaceOnChanges":true},"engineVersion":{"type":"string","description":"Database version. Value:\n* MySQL:**5.5/5.6/5.7/8.0**\n* SQL Server:**2008r2/08r2_ent_ha/2012/2012_ent_ha/2012_std_ha/2012_web/2014_std_ha/2016_ent_ha/2016_std_ha/2016_web/2017_std_ha/2017_ent/2019_std_ha/2019_ent**\n* PostgreSQL:**9.4/10.0/11.0/12.0/13.0**\n* MariaDB:**10.3**.\n","willReplaceOnChanges":true},"forceRestart":{"type":"boolean","description":"Set it to true to make some parameter efficient when modifying them. Default to false.\n"},"haMode":{"type":"string","description":"The high availability mode. Valid values:\n* **RPO**: Data persistence is preferred. The instance preferentially ensures data reliability to minimize data loss. Use this mode if you have higher requirements on data consistency.\n* **RTO**: Instance availability is preferred. The instance restores services as soon as possible to ensure availability. Use this mode if you have higher requirements on service availability.\n"},"instanceNetworkType":{"type":"string","description":"The network type of the instance. Valid values:\n* **Classic**: Classic Network\n* **VPC**: VPC.\n","willReplaceOnChanges":true},"maintainTime":{"type":"string","description":"The maintainable time period of the instance. Format: \u003cI\u003e HH:mm\u003c/I\u003e Z-\u003cI\u003e HH:mm\u003c/I\u003e Z(UTC time).\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsCloneDbInstanceParameter:RdsCloneDbInstanceParameter"},"description":"Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm).See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"password":{"type":"string","description":"The password of the certificate. \n\n\u003e **NOTE:** This parameter is available only when the instance runs SQL Server 2019 SE or an Enterprise Edition of SQL Server.\n"},"paymentType":{"type":"string","description":"The billing method of the new instance. Valid values: `PayAsYouGo` and `Subscription` and `Serverless`.\n"},"period":{"type":"string","description":"The period. Valid values: `Month`, `Year`.\n\n\u003e **NOTE:** If you set the\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eparameter to Subscription, you must specify the period parameter.\n"},"pgHbaConfs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsCloneDbInstancePgHbaConf:RdsCloneDbInstancePgHbaConf"},"description":"The details of the AD domain.See \u003cspan pulumi-lang-nodejs=\"`pgHbaConf`\" pulumi-lang-dotnet=\"`PgHbaConf`\" pulumi-lang-go=\"`pgHbaConf`\" pulumi-lang-python=\"`pg_hba_conf`\" pulumi-lang-yaml=\"`pgHbaConf`\" pulumi-lang-java=\"`pgHbaConf`\"\u003e`pg_hba_conf`\u003c/span\u003e below.\n"},"port":{"type":"string","description":"The port.\n"},"privateIpAddress":{"type":"string","description":"The intranet IP address of the new instance must be within the specified vSwitch IP address range. By default, the system automatically allocates by using **VPCId** and **VSwitchId**.\n"},"privateKey":{"type":"string","description":"The file that contains the private key used for TDE.\n"},"releasedKeepPolicy":{"type":"string","description":"The released keep policy.\n"},"replicationAcl":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version, indicating the authentication method of the replication permission. It is only allowed when the public key of the client certificate authority is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`perfer`\" pulumi-lang-dotnet=\"`Perfer`\" pulumi-lang-go=\"`perfer`\" pulumi-lang-python=\"`perfer`\" pulumi-lang-yaml=\"`perfer`\" pulumi-lang-java=\"`perfer`\"\u003e`perfer`\u003c/span\u003e and `verify-ca` and `verify-full (supported by RDS PostgreSQL above 12)`.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"restoreTable":{"type":"string","description":"Specifies whether to restore only the databases and tables that you specify. The value 1 specifies to restore only the specified databases and tables. If you do not want to restore only the specified databases or tables, you can choose not to specify this parameter.\n"},"restoreTime":{"type":"string","description":"The point in time to which you want to restore the data of the original instance. The point in time must fall within the specified log backup retention period. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of a RAM role. A RAM role is a virtual RAM identity that you can create within your Alibaba Cloud account.\n\n\u003e **NOTE:** This parameter is available only when the instance runs MySQL.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"The IP address whitelist of the instance. Separate multiple IP addresses with commas (,) and cannot be repeated. The following two formats are supported:\n* IP address form, for example: 10.23.12.24.\n* CIDR format, for example, 10.23.12.0/24 (no Inter-Domain Routing, 24 indicates the length of the prefix in the address, ranging from 1 to 32).\n\n\u003e **NOTE:** each instance can add up to 1000 IP addresses or IP segments, that is, the total number of IP addresses or IP segments in all IP whitelist groups cannot exceed 1000. When there are more IP addresses, it is recommended to merge them into IP segments, for example, 10.23.12.0/24.\n"},"serverCert":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the content of the server certificate. If the CAType value is custom, this parameter must be configured.\n"},"serverKey":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the private key of the server certificate. If the value of CAType is custom, this parameter must be configured.\n"},"serverlessConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsCloneDbInstanceServerlessConfig:RdsCloneDbInstanceServerlessConfig"},"description":"The settings of the serverless instance. This parameter is required when you create a serverless instance. This parameter takes effect only when you create an ApsaraDB RDS for MySQL instance.See \u003cspan pulumi-lang-nodejs=\"`serverlessConfig`\" pulumi-lang-dotnet=\"`ServerlessConfig`\" pulumi-lang-go=\"`serverlessConfig`\" pulumi-lang-python=\"`serverless_config`\" pulumi-lang-yaml=\"`serverlessConfig`\" pulumi-lang-java=\"`serverlessConfig`\"\u003e`serverless_config`\u003c/span\u003e below.\n"},"sourceBiz":{"type":"string","description":"The source biz.\n"},"sourceDbInstanceId":{"type":"string","description":"The source db instance id.\n","willReplaceOnChanges":true},"sslEnabled":{"type":"integer","description":"Enable or disable SSL. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"switchTime":{"type":"string","description":"The time at which you want to apply the specification changes. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"syncMode":{"type":"string","description":"[The data replication mode](https://www.alibabacloud.com/help/doc-detail/96055.htm). Valid values:\n* **Sync**: strong synchronization\n* **Semi-sync**: Semi-synchronous\n* **Async**: asynchronous\n\n\u003e **NOTE:** SQL Server 2017 cluster version is currently not supported.\n"},"tableMeta":{"type":"string","description":"The information about the databases and tables that you want to restore. Format:\n[{\"type\":\"db\",\"name\":\"The original name of Database 1\",\"newname\":\"The new name of Database 1\",\"tables\":[{\"type\":\"table\",\"name\":\"The original name of Table 1 in Database 1\",\"newname\":\"The new name of Table 1 in Database 1\"},{\"type\":\"table\",\"name\":\"The original name of Table 2 in Database 1\",\"newname\":\"The new name of Table 2 in Database 1\"}]},{\"type\":\"db\",\"name\":\"The original name of Database 2\",\"newname\":\"The new name of Database 2\",\"tables\":[{\"type\":\"table\",\"name\":\"The original name of Table 1 in Database 2\",\"newname\":\"The new name of Table 1 in Database 2\"},{\"type\":\"table\",\"name\":\"The original name of Table 2 in Database 2\",\"newname\":\"The new name of Table 2 in Database 2\"}]}]\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"tcpConnectionType":{"type":"string","description":"The availability check method of the instance. Valid values:\n- **SHORT**: Alibaba Cloud uses short-lived connections to check the availability of the instance.\n- **LONG**: Alibaba Cloud uses persistent connections to check the availability of the instance.\n"},"tdeStatus":{"type":"string","description":"Specifies whether to enable TDE. Valid values:\n* Enabled\n* Disabled\n"},"usedTime":{"type":"integer","description":"The subscription period of the new instance. This parameter takes effect only when you select the subscription billing method for the new instance. Valid values:\n* If you set the `Period` parameter to Year, the value of the UsedTime parameter ranges from 1 to 3.\n* If you set the `Period` parameter to Month, the value of the UsedTime parameter ranges from 1 to 9.\n\n\u003e **NOTE:** If you set the\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eparameter to Subscription, you must specify the\u003cspan pulumi-lang-nodejs=\" usedTime \" pulumi-lang-dotnet=\" UsedTime \" pulumi-lang-go=\" usedTime \" pulumi-lang-python=\" used_time \" pulumi-lang-yaml=\" usedTime \" pulumi-lang-java=\" usedTime \"\u003e used_time \u003c/span\u003eparameter.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the new instance belongs.\n\n\u003e **NOTE:** Make sure that the VPC resides in the specified region.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch associated with the specified VPC. If there are multiple vswitches, separate them with commas. The first vswitch is a primary zone switch and the query only returns that vswitch. If there are multiple vswitches, do not perform \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e check.\n\n\u003e **NOTE:** Make sure that the vSwitch belongs to the specified VPC and region.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The ID of the zone to which the new instance belongs. You can call the [DescribeRegions](https://www.alibabacloud.com/help/en/rds/developer-reference/api-rds-2014-08-15-describeregions) operation to query the most recent region list.\n","willReplaceOnChanges":true},"zoneIdSlaveA":{"type":"string","description":"The region ID of the secondary instance if you create a secondary instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.\n","willReplaceOnChanges":true},"zoneIdSlaveB":{"type":"string","description":"The region ID of the log instance if you create a log instance. If you set this parameter to the same value as the ZoneId parameter, the instance is deployed in a single zone. Otherwise, the instance is deployed in multiple zones.\n\n\u003e **NOTE:** The default value of this parameter is the ID of the zone to which the original instance belongs.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rds/rdsDbProxy:RdsDbProxy":{"description":"Information about RDS database exclusive agent and its usage, see [What is RDS DB Proxy](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/api-rds-2014-08-15-modifydbproxy).\n\n\u003e **NOTE:** Available since v1.193.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.rds.Instance(\"default\", {\n    engine: \"MySQL\",\n    engineVersion: \"5.7\",\n    instanceType: \"rds.mysql.c1.large\",\n    instanceStorage: 20,\n    instanceChargeType: \"Postpaid\",\n    instanceName: name,\n    vswitchId: defaultSwitch.id,\n    dbInstanceStorageType: \"local_ssd\",\n});\nconst defaultReadOnlyInstance = new alicloud.rds.ReadOnlyInstance(\"default\", {\n    zoneId: defaultInstance.zoneId,\n    masterDbInstanceId: defaultInstance.id,\n    engineVersion: defaultInstance.engineVersion,\n    instanceStorage: defaultInstance.instanceStorage,\n    instanceType: defaultInstance.instanceType,\n    instanceName: `${name}readonly`,\n    vswitchId: defaultSwitch.id,\n});\nconst defaultRdsDbProxy = new alicloud.rds.RdsDbProxy(\"default\", {\n    instanceId: defaultInstance.id,\n    instanceNetworkType: \"VPC\",\n    vpcId: defaultInstance.vpcId,\n    vswitchId: defaultInstance.vswitchId,\n    dbProxyInstanceNum: 2,\n    dbProxyConnectionPrefix: \"example\",\n    dbProxyConnectStringPort: 3306,\n    dbProxyEndpointReadWriteMode: \"ReadWrite\",\n    readOnlyInstanceMaxDelayTime: 90,\n    dbProxyFeatures: \"TransactionReadSqlRouteOptimizeStatus:1;ConnectionPersist:1;ReadWriteSpliting:1\",\n    readOnlyInstanceDistributionType: \"Custom\",\n    readOnlyInstanceWeights: [\n        {\n            instanceId: defaultInstance.id,\n            weight: \"100\",\n        },\n        {\n            instanceId: defaultReadOnlyInstance.id,\n            weight: \"500\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"5.6\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.rds.Instance(\"default\",\n    engine=\"MySQL\",\n    engine_version=\"5.7\",\n    instance_type=\"rds.mysql.c1.large\",\n    instance_storage=20,\n    instance_charge_type=\"Postpaid\",\n    instance_name=name,\n    vswitch_id=default_switch.id,\n    db_instance_storage_type=\"local_ssd\")\ndefault_read_only_instance = alicloud.rds.ReadOnlyInstance(\"default\",\n    zone_id=default_instance.zone_id,\n    master_db_instance_id=default_instance.id,\n    engine_version=default_instance.engine_version,\n    instance_storage=default_instance.instance_storage,\n    instance_type=default_instance.instance_type,\n    instance_name=f\"{name}readonly\",\n    vswitch_id=default_switch.id)\ndefault_rds_db_proxy = alicloud.rds.RdsDbProxy(\"default\",\n    instance_id=default_instance.id,\n    instance_network_type=\"VPC\",\n    vpc_id=default_instance.vpc_id,\n    vswitch_id=default_instance.vswitch_id,\n    db_proxy_instance_num=2,\n    db_proxy_connection_prefix=\"example\",\n    db_proxy_connect_string_port=3306,\n    db_proxy_endpoint_read_write_mode=\"ReadWrite\",\n    read_only_instance_max_delay_time=90,\n    db_proxy_features=\"TransactionReadSqlRouteOptimizeStatus:1;ConnectionPersist:1;ReadWriteSpliting:1\",\n    read_only_instance_distribution_type=\"Custom\",\n    read_only_instance_weights=[\n        {\n            \"instance_id\": default_instance.id,\n            \"weight\": \"100\",\n        },\n        {\n            \"instance_id\": default_read_only_instance.id,\n            \"weight\": \"500\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Rds.Instance(\"default\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"5.7\",\n        InstanceType = \"rds.mysql.c1.large\",\n        InstanceStorage = 20,\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = name,\n        VswitchId = defaultSwitch.Id,\n        DbInstanceStorageType = \"local_ssd\",\n    });\n\n    var defaultReadOnlyInstance = new AliCloud.Rds.ReadOnlyInstance(\"default\", new()\n    {\n        ZoneId = defaultInstance.ZoneId,\n        MasterDbInstanceId = defaultInstance.Id,\n        EngineVersion = defaultInstance.EngineVersion,\n        InstanceStorage = defaultInstance.InstanceStorage,\n        InstanceType = defaultInstance.InstanceType,\n        InstanceName = $\"{name}readonly\",\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var defaultRdsDbProxy = new AliCloud.Rds.RdsDbProxy(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        InstanceNetworkType = \"VPC\",\n        VpcId = defaultInstance.VpcId,\n        VswitchId = defaultInstance.VswitchId,\n        DbProxyInstanceNum = 2,\n        DbProxyConnectionPrefix = \"example\",\n        DbProxyConnectStringPort = 3306,\n        DbProxyEndpointReadWriteMode = \"ReadWrite\",\n        ReadOnlyInstanceMaxDelayTime = 90,\n        DbProxyFeatures = \"TransactionReadSqlRouteOptimizeStatus:1;ConnectionPersist:1;ReadWriteSpliting:1\",\n        ReadOnlyInstanceDistributionType = \"Custom\",\n        ReadOnlyInstanceWeights = new[]\n        {\n            new AliCloud.Rds.Inputs.RdsDbProxyReadOnlyInstanceWeightArgs\n            {\n                InstanceId = defaultInstance.Id,\n                Weight = \"100\",\n            },\n            new AliCloud.Rds.Inputs.RdsDbProxyReadOnlyInstanceWeightArgs\n            {\n                InstanceId = defaultReadOnlyInstance.Id,\n                Weight = \"500\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:        pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion: pulumi.StringRef(\"5.6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rds.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"5.7\"),\n\t\t\tInstanceType:          pulumi.String(\"rds.mysql.c1.large\"),\n\t\t\tInstanceStorage:       pulumi.Int(20),\n\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t\tVswitchId:             defaultSwitch.ID(),\n\t\t\tDbInstanceStorageType: pulumi.String(\"local_ssd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultReadOnlyInstance, err := rds.NewReadOnlyInstance(ctx, \"default\", \u0026rds.ReadOnlyInstanceArgs{\n\t\t\tZoneId:             defaultInstance.ZoneId,\n\t\t\tMasterDbInstanceId: defaultInstance.ID(),\n\t\t\tEngineVersion:      defaultInstance.EngineVersion,\n\t\t\tInstanceStorage:    defaultInstance.InstanceStorage,\n\t\t\tInstanceType:       defaultInstance.InstanceType,\n\t\t\tInstanceName:       pulumi.Sprintf(\"%vreadonly\", name),\n\t\t\tVswitchId:          defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewRdsDbProxy(ctx, \"default\", \u0026rds.RdsDbProxyArgs{\n\t\t\tInstanceId:                       defaultInstance.ID(),\n\t\t\tInstanceNetworkType:              pulumi.String(\"VPC\"),\n\t\t\tVpcId:                            defaultInstance.VpcId,\n\t\t\tVswitchId:                        defaultInstance.VswitchId,\n\t\t\tDbProxyInstanceNum:               pulumi.Int(2),\n\t\t\tDbProxyConnectionPrefix:          pulumi.String(\"example\"),\n\t\t\tDbProxyConnectStringPort:         pulumi.Int(3306),\n\t\t\tDbProxyEndpointReadWriteMode:     pulumi.String(\"ReadWrite\"),\n\t\t\tReadOnlyInstanceMaxDelayTime:     pulumi.Int(90),\n\t\t\tDbProxyFeatures:                  pulumi.String(\"TransactionReadSqlRouteOptimizeStatus:1;ConnectionPersist:1;ReadWriteSpliting:1\"),\n\t\t\tReadOnlyInstanceDistributionType: pulumi.String(\"Custom\"),\n\t\t\tReadOnlyInstanceWeights: rds.RdsDbProxyReadOnlyInstanceWeightArray{\n\t\t\t\t\u0026rds.RdsDbProxyReadOnlyInstanceWeightArgs{\n\t\t\t\t\tInstanceId: defaultInstance.ID(),\n\t\t\t\t\tWeight:     pulumi.String(\"100\"),\n\t\t\t\t},\n\t\t\t\t\u0026rds.RdsDbProxyReadOnlyInstanceWeightArgs{\n\t\t\t\t\tInstanceId: defaultReadOnlyInstance.ID(),\n\t\t\t\t\tWeight:     pulumi.String(\"500\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.ReadOnlyInstance;\nimport com.pulumi.alicloud.rds.ReadOnlyInstanceArgs;\nimport com.pulumi.alicloud.rds.RdsDbProxy;\nimport com.pulumi.alicloud.rds.RdsDbProxyArgs;\nimport com.pulumi.alicloud.rds.inputs.RdsDbProxyReadOnlyInstanceWeightArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"5.7\")\n            .instanceType(\"rds.mysql.c1.large\")\n            .instanceStorage(20)\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(name)\n            .vswitchId(defaultSwitch.id())\n            .dbInstanceStorageType(\"local_ssd\")\n            .build());\n\n        var defaultReadOnlyInstance = new ReadOnlyInstance(\"defaultReadOnlyInstance\", ReadOnlyInstanceArgs.builder()\n            .zoneId(defaultInstance.zoneId())\n            .masterDbInstanceId(defaultInstance.id())\n            .engineVersion(defaultInstance.engineVersion())\n            .instanceStorage(defaultInstance.instanceStorage())\n            .instanceType(defaultInstance.instanceType())\n            .instanceName(String.format(\"%sreadonly\", name))\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var defaultRdsDbProxy = new RdsDbProxy(\"defaultRdsDbProxy\", RdsDbProxyArgs.builder()\n            .instanceId(defaultInstance.id())\n            .instanceNetworkType(\"VPC\")\n            .vpcId(defaultInstance.vpcId())\n            .vswitchId(defaultInstance.vswitchId())\n            .dbProxyInstanceNum(2)\n            .dbProxyConnectionPrefix(\"example\")\n            .dbProxyConnectStringPort(3306)\n            .dbProxyEndpointReadWriteMode(\"ReadWrite\")\n            .readOnlyInstanceMaxDelayTime(90)\n            .dbProxyFeatures(\"TransactionReadSqlRouteOptimizeStatus:1;ConnectionPersist:1;ReadWriteSpliting:1\")\n            .readOnlyInstanceDistributionType(\"Custom\")\n            .readOnlyInstanceWeights(            \n                RdsDbProxyReadOnlyInstanceWeightArgs.builder()\n                    .instanceId(defaultInstance.id())\n                    .weight(\"100\")\n                    .build(),\n                RdsDbProxyReadOnlyInstanceWeightArgs.builder()\n                    .instanceId(defaultReadOnlyInstance.id())\n                    .weight(\"500\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:rds:Instance\n    name: default\n    properties:\n      engine: MySQL\n      engineVersion: '5.7'\n      instanceType: rds.mysql.c1.large\n      instanceStorage: '20'\n      instanceChargeType: Postpaid\n      instanceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      dbInstanceStorageType: local_ssd\n  defaultReadOnlyInstance:\n    type: alicloud:rds:ReadOnlyInstance\n    name: default\n    properties:\n      zoneId: ${defaultInstance.zoneId}\n      masterDbInstanceId: ${defaultInstance.id}\n      engineVersion: ${defaultInstance.engineVersion}\n      instanceStorage: ${defaultInstance.instanceStorage}\n      instanceType: ${defaultInstance.instanceType}\n      instanceName: ${name}readonly\n      vswitchId: ${defaultSwitch.id}\n  defaultRdsDbProxy:\n    type: alicloud:rds:RdsDbProxy\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      instanceNetworkType: VPC\n      vpcId: ${defaultInstance.vpcId}\n      vswitchId: ${defaultInstance.vswitchId}\n      dbProxyInstanceNum: 2\n      dbProxyConnectionPrefix: example\n      dbProxyConnectStringPort: 3306\n      dbProxyEndpointReadWriteMode: ReadWrite\n      readOnlyInstanceMaxDelayTime: 90\n      dbProxyFeatures: TransactionReadSqlRouteOptimizeStatus:1;ConnectionPersist:1;ReadWriteSpliting:1\n      readOnlyInstanceDistributionType: Custom\n      readOnlyInstanceWeights:\n        - instanceId: ${defaultInstance.id}\n          weight: '100'\n        - instanceId: ${defaultReadOnlyInstance.id}\n          weight: '500'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '5.6'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **NOTE:** Resource \u003cspan pulumi-lang-nodejs=\"`alicloud.rds.RdsDbProxy`\" pulumi-lang-dotnet=\"`alicloud.rds.RdsDbProxy`\" pulumi-lang-go=\"`rds.RdsDbProxy`\" pulumi-lang-python=\"`rds.RdsDbProxy`\" pulumi-lang-yaml=\"`alicloud.rds.RdsDbProxy`\" pulumi-lang-java=\"`alicloud.rds.RdsDbProxy`\"\u003e`alicloud.rds.RdsDbProxy`\u003c/span\u003e should be created after \u003cspan pulumi-lang-nodejs=\"`alicloud.rds.ReadOnlyInstance`\" pulumi-lang-dotnet=\"`alicloud.rds.ReadOnlyInstance`\" pulumi-lang-go=\"`rds.ReadOnlyInstance`\" pulumi-lang-python=\"`rds.ReadOnlyInstance`\" pulumi-lang-yaml=\"`alicloud.rds.ReadOnlyInstance`\" pulumi-lang-java=\"`alicloud.rds.ReadOnlyInstance`\"\u003e`alicloud.rds.ReadOnlyInstance`\u003c/span\u003e, so the \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e statement is necessary.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS database proxy feature can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/rdsDbProxy:RdsDbProxy example abc12345678\n```\n\n","properties":{"dbProxyConnectStringPort":{"type":"integer","description":"The port number that is associated with the proxy endpoint.\n"},"dbProxyConnectionPrefix":{"type":"string","description":"The new prefix of the proxy endpoint. Enter a prefix.\n"},"dbProxyConnectionString":{"type":"string","description":"Connection instance string.\n"},"dbProxyEndpointAliases":{"type":"string","description":"Remarks of agent terminal.\n"},"dbProxyEndpointId":{"type":"string","description":"Proxy connection address ID.\n"},"dbProxyEndpointReadWriteMode":{"type":"string","description":"The read and write attributes of the proxy terminal. Valid values:\n- ReadWrite: The proxy terminal connects to the primary instance and can receive both read and write requests.\n- ReadOnly: The proxy terminal does not connect to the primary instance and can receive only read requests. This is the default value.\n\n\u003e **NOTE:** Note This setting causes your instance to restart. Proceed with caution.\n"},"dbProxyFeatures":{"type":"string","description":"The features that you want to enable for the proxy endpoint. If you specify more than one feature, separate the features with semicolons (;). Format: Feature 1:Status;Feature 2:Status;.... Do not add a semicolon (;) at the end of the last value. Valid feature values:\n- ReadWriteSpliting: read/write splitting.\n- ConnectionPersist: connection pooling.\n- TransactionReadSqlRouteOptimizeStatus: transaction splitting.\nValid status values:\n- 1: enabled.\n- 0: disabled.\n\n\u003e **NOTE:** Note You must specify this parameter only when the read/write splitting feature is enabled.\n"},"dbProxyInstanceNum":{"type":"integer","description":"The number of proxy instances that are enabled. Valid values: 1 to 60.\n"},"dbProxyInstanceType":{"type":"string","description":"The database proxy type. Valid values:\n- common: universal proxy.\n- exclusive: Exclusive proxy (default).\n"},"dbProxySslEnabled":{"type":"string","description":"The SSL configuration setting that you want to apply on the instance. Valid values:\n- Close: disables SSL encryption.\n- Open: enables SSL encryption or modifies the endpoint that requires SSL encryption.\n- Update: updates the validity period of the SSL certificate.\n"},"effectiveSpecificTime":{"type":"string","description":"The point in time at which you want to apply the new database proxy settings. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"effectiveTime":{"type":"string","description":"When modifying the number of proxy instances,The time when you want to apply the new database proxy settings.Valid values:\n- Immediate: ApsaraDB RDS immediately applies the new settings.\n- MaintainTime: ApsaraDB RDS applies the new settings during the maintenance window that you specified. For more information, see Modify the maintenance window.\n- SpecificTime: ApsaraDB RDS applies the new settings at a specified point in time.\n\n\u003e **NOTE:** Note If you set the EffectiveTime parameter to SpecificTime, you must specify the EffectiveSpecificTime parameter.\n"},"instanceId":{"type":"string","description":"The Id of instance that can run database.\n"},"instanceNetworkType":{"type":"string","description":"The network type of the instance. Set the value to VPC.\n"},"netType":{"type":"string","description":"Network type of proxy connection address.\n"},"readOnlyInstanceDistributionType":{"type":"string","description":"The policy that is used to allocate read weights. Valid values:\n- Standard: ApsaraDB RDS automatically allocates read weights to the instance and its read-only instances based on the specifications of the instances.\n- Custom: You must manually allocate read weights to the instance and its read-only instances.\n\n\u003e **NOTE:** Note If you set the ReadOnlyInstanceDistributionType parameter to Custom, you must specify the ReadOnlyInstanceWeight parameter.\n"},"readOnlyInstanceMaxDelayTime":{"type":"integer","description":"The maximum latency threshold that is allowed for read/write splitting. If the latency on a read-only instance exceeds the threshold that you specified, ApsaraDB RDS no longer forwards read requests to the read-only instance. If you do not specify this parameter, the default value of this parameter is retained. Unit: seconds. Valid values: 0 to 3600.\n\n\u003e **NOTE:** Note If the instance runs PostgreSQL, you can enable only the read/write splitting feature, which is specified by ReadWriteSpliting.\n"},"readOnlyInstanceWeights":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsDbProxyReadOnlyInstanceWeight:RdsDbProxyReadOnlyInstanceWeight"},"description":"A list of the read weights of the instance and its read-only instances.  It contains two sub-fields(instance_id and weight). Read weights increase in increments of 100, and the maximum read weight is 10000. See \u003cspan pulumi-lang-nodejs=\"`readOnlyInstanceWeight`\" pulumi-lang-dotnet=\"`ReadOnlyInstanceWeight`\" pulumi-lang-go=\"`readOnlyInstanceWeight`\" pulumi-lang-python=\"`read_only_instance_weight`\" pulumi-lang-yaml=\"`readOnlyInstanceWeight`\" pulumi-lang-java=\"`readOnlyInstanceWeight`\"\u003e`read_only_instance_weight`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sslExpiredTime":{"type":"string","description":"The time when the certificate expires.\n"},"switchTime":{"type":"string","description":"The point in time at which you want to upgrade the database proxy version of the instance. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"upgradeTime":{"type":"string","description":"The time when you want to upgrade the database proxy version of the instance. Valid values:\n- MaintainTime: ApsaraDB RDS performs the upgrade during the maintenance window that you specified. This is the default value. For more information, see Modify the maintenance window.\n- Immediate: ApsaraDB RDS immediately performs the upgrade.\n- SpecificTime: ApsaraDB RDS performs the upgrade at a specified point in time.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) to which the instance belongs.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch that is associated with the specified VPC.\n"}},"required":["dbProxyConnectStringPort","dbProxyConnectionPrefix","dbProxyConnectionString","dbProxyEndpointAliases","dbProxyEndpointId","dbProxyEndpointReadWriteMode","dbProxyFeatures","dbProxyInstanceNum","dbProxyInstanceType","dbProxySslEnabled","effectiveSpecificTime","effectiveTime","instanceId","instanceNetworkType","netType","readOnlyInstanceDistributionType","readOnlyInstanceMaxDelayTime","readOnlyInstanceWeights","resourceGroupId","sslExpiredTime","vpcId","vswitchId"],"inputProperties":{"dbProxyConnectStringPort":{"type":"integer","description":"The port number that is associated with the proxy endpoint.\n"},"dbProxyConnectionPrefix":{"type":"string","description":"The new prefix of the proxy endpoint. Enter a prefix.\n"},"dbProxyEndpointReadWriteMode":{"type":"string","description":"The read and write attributes of the proxy terminal. Valid values:\n- ReadWrite: The proxy terminal connects to the primary instance and can receive both read and write requests.\n- ReadOnly: The proxy terminal does not connect to the primary instance and can receive only read requests. This is the default value.\n\n\u003e **NOTE:** Note This setting causes your instance to restart. Proceed with caution.\n"},"dbProxyFeatures":{"type":"string","description":"The features that you want to enable for the proxy endpoint. If you specify more than one feature, separate the features with semicolons (;). Format: Feature 1:Status;Feature 2:Status;.... Do not add a semicolon (;) at the end of the last value. Valid feature values:\n- ReadWriteSpliting: read/write splitting.\n- ConnectionPersist: connection pooling.\n- TransactionReadSqlRouteOptimizeStatus: transaction splitting.\nValid status values:\n- 1: enabled.\n- 0: disabled.\n\n\u003e **NOTE:** Note You must specify this parameter only when the read/write splitting feature is enabled.\n"},"dbProxyInstanceNum":{"type":"integer","description":"The number of proxy instances that are enabled. Valid values: 1 to 60.\n"},"dbProxyInstanceType":{"type":"string","description":"The database proxy type. Valid values:\n- common: universal proxy.\n- exclusive: Exclusive proxy (default).\n"},"dbProxySslEnabled":{"type":"string","description":"The SSL configuration setting that you want to apply on the instance. Valid values:\n- Close: disables SSL encryption.\n- Open: enables SSL encryption or modifies the endpoint that requires SSL encryption.\n- Update: updates the validity period of the SSL certificate.\n"},"effectiveSpecificTime":{"type":"string","description":"The point in time at which you want to apply the new database proxy settings. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"effectiveTime":{"type":"string","description":"When modifying the number of proxy instances,The time when you want to apply the new database proxy settings.Valid values:\n- Immediate: ApsaraDB RDS immediately applies the new settings.\n- MaintainTime: ApsaraDB RDS applies the new settings during the maintenance window that you specified. For more information, see Modify the maintenance window.\n- SpecificTime: ApsaraDB RDS applies the new settings at a specified point in time.\n\n\u003e **NOTE:** Note If you set the EffectiveTime parameter to SpecificTime, you must specify the EffectiveSpecificTime parameter.\n"},"instanceId":{"type":"string","description":"The Id of instance that can run database.\n","willReplaceOnChanges":true},"instanceNetworkType":{"type":"string","description":"The network type of the instance. Set the value to VPC.\n","willReplaceOnChanges":true},"readOnlyInstanceDistributionType":{"type":"string","description":"The policy that is used to allocate read weights. Valid values:\n- Standard: ApsaraDB RDS automatically allocates read weights to the instance and its read-only instances based on the specifications of the instances.\n- Custom: You must manually allocate read weights to the instance and its read-only instances.\n\n\u003e **NOTE:** Note If you set the ReadOnlyInstanceDistributionType parameter to Custom, you must specify the ReadOnlyInstanceWeight parameter.\n"},"readOnlyInstanceMaxDelayTime":{"type":"integer","description":"The maximum latency threshold that is allowed for read/write splitting. If the latency on a read-only instance exceeds the threshold that you specified, ApsaraDB RDS no longer forwards read requests to the read-only instance. If you do not specify this parameter, the default value of this parameter is retained. Unit: seconds. Valid values: 0 to 3600.\n\n\u003e **NOTE:** Note If the instance runs PostgreSQL, you can enable only the read/write splitting feature, which is specified by ReadWriteSpliting.\n"},"readOnlyInstanceWeights":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsDbProxyReadOnlyInstanceWeight:RdsDbProxyReadOnlyInstanceWeight"},"description":"A list of the read weights of the instance and its read-only instances.  It contains two sub-fields(instance_id and weight). Read weights increase in increments of 100, and the maximum read weight is 10000. See \u003cspan pulumi-lang-nodejs=\"`readOnlyInstanceWeight`\" pulumi-lang-dotnet=\"`ReadOnlyInstanceWeight`\" pulumi-lang-go=\"`readOnlyInstanceWeight`\" pulumi-lang-python=\"`read_only_instance_weight`\" pulumi-lang-yaml=\"`readOnlyInstanceWeight`\" pulumi-lang-java=\"`readOnlyInstanceWeight`\"\u003e`read_only_instance_weight`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"switchTime":{"type":"string","description":"The point in time at which you want to upgrade the database proxy version of the instance. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"upgradeTime":{"type":"string","description":"The time when you want to upgrade the database proxy version of the instance. Valid values:\n- MaintainTime: ApsaraDB RDS performs the upgrade during the maintenance window that you specified. This is the default value. For more information, see Modify the maintenance window.\n- Immediate: ApsaraDB RDS immediately performs the upgrade.\n- SpecificTime: ApsaraDB RDS performs the upgrade at a specified point in time.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) to which the instance belongs.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch that is associated with the specified VPC.\n","willReplaceOnChanges":true}},"requiredInputs":["dbProxyInstanceNum","instanceId","instanceNetworkType","vpcId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering RdsDbProxy resources.\n","properties":{"dbProxyConnectStringPort":{"type":"integer","description":"The port number that is associated with the proxy endpoint.\n"},"dbProxyConnectionPrefix":{"type":"string","description":"The new prefix of the proxy endpoint. Enter a prefix.\n"},"dbProxyConnectionString":{"type":"string","description":"Connection instance string.\n"},"dbProxyEndpointAliases":{"type":"string","description":"Remarks of agent terminal.\n"},"dbProxyEndpointId":{"type":"string","description":"Proxy connection address ID.\n"},"dbProxyEndpointReadWriteMode":{"type":"string","description":"The read and write attributes of the proxy terminal. Valid values:\n- ReadWrite: The proxy terminal connects to the primary instance and can receive both read and write requests.\n- ReadOnly: The proxy terminal does not connect to the primary instance and can receive only read requests. This is the default value.\n\n\u003e **NOTE:** Note This setting causes your instance to restart. Proceed with caution.\n"},"dbProxyFeatures":{"type":"string","description":"The features that you want to enable for the proxy endpoint. If you specify more than one feature, separate the features with semicolons (;). Format: Feature 1:Status;Feature 2:Status;.... Do not add a semicolon (;) at the end of the last value. Valid feature values:\n- ReadWriteSpliting: read/write splitting.\n- ConnectionPersist: connection pooling.\n- TransactionReadSqlRouteOptimizeStatus: transaction splitting.\nValid status values:\n- 1: enabled.\n- 0: disabled.\n\n\u003e **NOTE:** Note You must specify this parameter only when the read/write splitting feature is enabled.\n"},"dbProxyInstanceNum":{"type":"integer","description":"The number of proxy instances that are enabled. Valid values: 1 to 60.\n"},"dbProxyInstanceType":{"type":"string","description":"The database proxy type. Valid values:\n- common: universal proxy.\n- exclusive: Exclusive proxy (default).\n"},"dbProxySslEnabled":{"type":"string","description":"The SSL configuration setting that you want to apply on the instance. Valid values:\n- Close: disables SSL encryption.\n- Open: enables SSL encryption or modifies the endpoint that requires SSL encryption.\n- Update: updates the validity period of the SSL certificate.\n"},"effectiveSpecificTime":{"type":"string","description":"The point in time at which you want to apply the new database proxy settings. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"effectiveTime":{"type":"string","description":"When modifying the number of proxy instances,The time when you want to apply the new database proxy settings.Valid values:\n- Immediate: ApsaraDB RDS immediately applies the new settings.\n- MaintainTime: ApsaraDB RDS applies the new settings during the maintenance window that you specified. For more information, see Modify the maintenance window.\n- SpecificTime: ApsaraDB RDS applies the new settings at a specified point in time.\n\n\u003e **NOTE:** Note If you set the EffectiveTime parameter to SpecificTime, you must specify the EffectiveSpecificTime parameter.\n"},"instanceId":{"type":"string","description":"The Id of instance that can run database.\n","willReplaceOnChanges":true},"instanceNetworkType":{"type":"string","description":"The network type of the instance. Set the value to VPC.\n","willReplaceOnChanges":true},"netType":{"type":"string","description":"Network type of proxy connection address.\n"},"readOnlyInstanceDistributionType":{"type":"string","description":"The policy that is used to allocate read weights. Valid values:\n- Standard: ApsaraDB RDS automatically allocates read weights to the instance and its read-only instances based on the specifications of the instances.\n- Custom: You must manually allocate read weights to the instance and its read-only instances.\n\n\u003e **NOTE:** Note If you set the ReadOnlyInstanceDistributionType parameter to Custom, you must specify the ReadOnlyInstanceWeight parameter.\n"},"readOnlyInstanceMaxDelayTime":{"type":"integer","description":"The maximum latency threshold that is allowed for read/write splitting. If the latency on a read-only instance exceeds the threshold that you specified, ApsaraDB RDS no longer forwards read requests to the read-only instance. If you do not specify this parameter, the default value of this parameter is retained. Unit: seconds. Valid values: 0 to 3600.\n\n\u003e **NOTE:** Note If the instance runs PostgreSQL, you can enable only the read/write splitting feature, which is specified by ReadWriteSpliting.\n"},"readOnlyInstanceWeights":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsDbProxyReadOnlyInstanceWeight:RdsDbProxyReadOnlyInstanceWeight"},"description":"A list of the read weights of the instance and its read-only instances.  It contains two sub-fields(instance_id and weight). Read weights increase in increments of 100, and the maximum read weight is 10000. See \u003cspan pulumi-lang-nodejs=\"`readOnlyInstanceWeight`\" pulumi-lang-dotnet=\"`ReadOnlyInstanceWeight`\" pulumi-lang-go=\"`readOnlyInstanceWeight`\" pulumi-lang-python=\"`read_only_instance_weight`\" pulumi-lang-yaml=\"`readOnlyInstanceWeight`\" pulumi-lang-java=\"`readOnlyInstanceWeight`\"\u003e`read_only_instance_weight`\u003c/span\u003e below.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sslExpiredTime":{"type":"string","description":"The time when the certificate expires.\n"},"switchTime":{"type":"string","description":"The point in time at which you want to upgrade the database proxy version of the instance. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"upgradeTime":{"type":"string","description":"The time when you want to upgrade the database proxy version of the instance. Valid values:\n- MaintainTime: ApsaraDB RDS performs the upgrade during the maintenance window that you specified. This is the default value. For more information, see Modify the maintenance window.\n- Immediate: ApsaraDB RDS immediately performs the upgrade.\n- SpecificTime: ApsaraDB RDS performs the upgrade at a specified point in time.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) to which the instance belongs.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch that is associated with the specified VPC.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rds/rdsInstanceCrossBackupPolicy:RdsInstanceCrossBackupPolicy":{"description":"Provides an RDS instance emote disaster recovery strategy policy resource and used to configure instance emote disaster recovery strategy policy.\n\nFor information about RDS cross region backup settings and how to use them, see [What is cross region backup](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/modify-cross-region-backup-settings).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    dbInstanceStorageType: \"local_ssd\",\n    category: \"HighAvailability\",\n});\nconst defaultGetInstanceClasses = _default.then(_default =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: _default.ids?.[0],\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    dbInstanceStorageType: \"local_ssd\",\n    category: \"HighAvailability\",\n}));\nconst regions = alicloud.rds.getCrossRegions({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n    vswitchName: name,\n});\nconst defaultInstance = new alicloud.rds.Instance(\"default\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceType: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    instanceChargeType: \"Postpaid\",\n    category: \"HighAvailability\",\n    instanceName: name,\n    vswitchId: defaultSwitch.id,\n    dbInstanceStorageType: \"local_ssd\",\n});\nconst defaultRdsInstanceCrossBackupPolicy = new alicloud.rds.RdsInstanceCrossBackupPolicy(\"default\", {\n    instanceId: defaultInstance.id,\n    crossBackupRegion: regions.then(regions =\u003e regions.ids?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    db_instance_storage_type=\"local_ssd\",\n    category=\"HighAvailability\")\ndefault_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=default.ids[0],\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    db_instance_storage_type=\"local_ssd\",\n    category=\"HighAvailability\")\nregions = alicloud.rds.get_cross_regions()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.ids[0],\n    vswitch_name=name)\ndefault_instance = alicloud.rds.Instance(\"default\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_type=default_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=default_get_instance_classes.instance_classes[0].storage_range.min,\n    instance_charge_type=\"Postpaid\",\n    category=\"HighAvailability\",\n    instance_name=name,\n    vswitch_id=default_switch.id,\n    db_instance_storage_type=\"local_ssd\")\ndefault_rds_instance_cross_backup_policy = alicloud.rds.RdsInstanceCrossBackupPolicy(\"default\",\n    instance_id=default_instance.id,\n    cross_backup_region=regions.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        DbInstanceStorageType = \"local_ssd\",\n        Category = \"HighAvailability\",\n    });\n\n    var defaultGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        DbInstanceStorageType = \"local_ssd\",\n        Category = \"HighAvailability\",\n    });\n\n    var regions = AliCloud.Rds.GetCrossRegions.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n        VswitchName = name,\n    });\n\n    var defaultInstance = new AliCloud.Rds.Instance(\"default\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceType = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        InstanceChargeType = \"Postpaid\",\n        Category = \"HighAvailability\",\n        InstanceName = name,\n        VswitchId = defaultSwitch.Id,\n        DbInstanceStorageType = \"local_ssd\",\n    });\n\n    var defaultRdsInstanceCrossBackupPolicy = new AliCloud.Rds.RdsInstanceCrossBackupPolicy(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        CrossBackupRegion = regions.Apply(getCrossRegionsResult =\u003e getCrossRegionsResult.Ids[0]),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"local_ssd\"),\n\t\t\tCategory:              pulumi.StringRef(\"HighAvailability\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(_default.Ids[0]),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"local_ssd\"),\n\t\t\tCategory:              pulumi.StringRef(\"HighAvailability\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tregions, err := rds.GetCrossRegions(ctx, \u0026rds.GetCrossRegionsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Ids[0]),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rds.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\tInstanceType:          pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceStorage:       pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\tCategory:              pulumi.String(\"HighAvailability\"),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t\tVswitchId:             defaultSwitch.ID(),\n\t\t\tDbInstanceStorageType: pulumi.String(\"local_ssd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewRdsInstanceCrossBackupPolicy(ctx, \"default\", \u0026rds.RdsInstanceCrossBackupPolicyArgs{\n\t\t\tInstanceId:        defaultInstance.ID(),\n\t\t\tCrossBackupRegion: pulumi.String(regions.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetCrossRegionsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.RdsInstanceCrossBackupPolicy;\nimport com.pulumi.alicloud.rds.RdsInstanceCrossBackupPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .dbInstanceStorageType(\"local_ssd\")\n            .category(\"HighAvailability\")\n            .build());\n\n        final var defaultGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(default_.ids()[0])\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .dbInstanceStorageType(\"local_ssd\")\n            .category(\"HighAvailability\")\n            .build());\n\n        final var regions = RdsFunctions.getCrossRegions(GetCrossRegionsArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.ids()[0])\n            .vswitchName(name)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceType(defaultGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(defaultGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .instanceChargeType(\"Postpaid\")\n            .category(\"HighAvailability\")\n            .instanceName(name)\n            .vswitchId(defaultSwitch.id())\n            .dbInstanceStorageType(\"local_ssd\")\n            .build());\n\n        var defaultRdsInstanceCrossBackupPolicy = new RdsInstanceCrossBackupPolicy(\"defaultRdsInstanceCrossBackupPolicy\", RdsInstanceCrossBackupPolicyArgs.builder()\n            .instanceId(defaultInstance.id())\n            .crossBackupRegion(regions.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.ids[0]}\n      vswitchName: ${name}\n  defaultInstance:\n    type: alicloud:rds:Instance\n    name: default\n    properties:\n      engine: MySQL\n      engineVersion: '8.0'\n      instanceType: ${defaultGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceStorage: ${defaultGetInstanceClasses.instanceClasses[0].storageRange.min}\n      instanceChargeType: Postpaid\n      category: HighAvailability\n      instanceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      dbInstanceStorageType: local_ssd\n  defaultRdsInstanceCrossBackupPolicy:\n    type: alicloud:rds:RdsInstanceCrossBackupPolicy\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      crossBackupRegion: ${regions.ids[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '8.0'\n        dbInstanceStorageType: local_ssd\n        category: HighAvailability\n  defaultGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${default.ids[0]}\n        engine: MySQL\n        engineVersion: '8.0'\n        dbInstanceStorageType: local_ssd\n        category: HighAvailability\n  regions:\n    fn::invoke:\n      function: alicloud:rds:getCrossRegions\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS remote disaster recovery policies can be imported using id or instance id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/rdsInstanceCrossBackupPolicy:RdsInstanceCrossBackupPolicy example \"rm-12345678\"\n```\n\n","properties":{"backupEnabled":{"type":"string","description":"The status of the overall cross-region backup switch on the instance. Valid values:\n- Disabled\n- Enable\n"},"backupEnabledTime":{"type":"string","description":"The time when cross-region backup was enabled on the instance. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"crossBackupRegion":{"type":"string","description":"The ID of the destination region where the cross-region backup files of the instance are stored.\n"},"crossBackupType":{"type":"string","description":"The policy that is used to save cross-region backups of the instance. Default value: 1. The default value 1 indicates that all cross-region backups are saved.\n"},"dbInstanceStatus":{"type":"string","description":"The state of the instance. For more information, see Instance status.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"lockMode":{"type":"string","description":"The lock status of the instance. Valid values:\n- Unlock: The instance is not locked.\n- ManualLock: The instance is manually locked.\n- LockByExpiration: The instance is locked upon expiration.\n- LockByRestoration: The instance is automatically locked before a rollback.\n- LockByDiskQuota: The instance is automatically locked because its storage space is exhausted. In this situation, the instance is inaccessible.\n"},"logBackupEnabled":{"type":"string","description":"The status of the cross-region log backup feature on the instance. Valid values:\n- Enable: Enables the feature.\n- Disabled: Disables the feature.\n"},"logBackupEnabledTime":{"type":"string","description":"The time when cross-region log backup was enabled on the instance. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"retentType":{"type":"string","description":"The policy that is used to retain cross-region backups of the instance. Default value: 1. The default value 1 indicate that cross-region backups are retained based on the specified retention period.\n"},"retention":{"type":"integer","description":"The number of days for which the cross-region backup files of the instance are retained. Valid values: 7 to 1825. Default value: 7.\n"}},"required":["backupEnabled","backupEnabledTime","crossBackupRegion","crossBackupType","dbInstanceStatus","instanceId","lockMode","logBackupEnabled","logBackupEnabledTime","retentType","retention"],"inputProperties":{"crossBackupRegion":{"type":"string","description":"The ID of the destination region where the cross-region backup files of the instance are stored.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"logBackupEnabled":{"type":"string","description":"The status of the cross-region log backup feature on the instance. Valid values:\n- Enable: Enables the feature.\n- Disabled: Disables the feature.\n"},"retention":{"type":"integer","description":"The number of days for which the cross-region backup files of the instance are retained. Valid values: 7 to 1825. Default value: 7.\n"}},"requiredInputs":["crossBackupRegion","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering RdsInstanceCrossBackupPolicy resources.\n","properties":{"backupEnabled":{"type":"string","description":"The status of the overall cross-region backup switch on the instance. Valid values:\n- Disabled\n- Enable\n"},"backupEnabledTime":{"type":"string","description":"The time when cross-region backup was enabled on the instance. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"crossBackupRegion":{"type":"string","description":"The ID of the destination region where the cross-region backup files of the instance are stored.\n"},"crossBackupType":{"type":"string","description":"The policy that is used to save cross-region backups of the instance. Default value: 1. The default value 1 indicates that all cross-region backups are saved.\n"},"dbInstanceStatus":{"type":"string","description":"The state of the instance. For more information, see Instance status.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"lockMode":{"type":"string","description":"The lock status of the instance. Valid values:\n- Unlock: The instance is not locked.\n- ManualLock: The instance is manually locked.\n- LockByExpiration: The instance is locked upon expiration.\n- LockByRestoration: The instance is automatically locked before a rollback.\n- LockByDiskQuota: The instance is automatically locked because its storage space is exhausted. In this situation, the instance is inaccessible.\n"},"logBackupEnabled":{"type":"string","description":"The status of the cross-region log backup feature on the instance. Valid values:\n- Enable: Enables the feature.\n- Disabled: Disables the feature.\n"},"logBackupEnabledTime":{"type":"string","description":"The time when cross-region log backup was enabled on the instance. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"retentType":{"type":"string","description":"The policy that is used to retain cross-region backups of the instance. Default value: 1. The default value 1 indicate that cross-region backups are retained based on the specified retention period.\n"},"retention":{"type":"integer","description":"The number of days for which the cross-region backup files of the instance are retained. Valid values: 7 to 1825. Default value: 7.\n"}},"type":"object"}},"alicloud:rds/rdsParameterGroup:RdsParameterGroup":{"description":"Provides a RDS Parameter Group resource.\n\nFor information about RDS Parameter Group and how to use it, see [What is Parameter Group](https://www.alibabacloud.com/help/en/doc-detail/144839.htm).\n\n\u003e **NOTE:** Available since v1.119.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = new alicloud.rds.RdsParameterGroup(\"default\", {\n    engine: \"mysql\",\n    engineVersion: \"5.7\",\n    paramDetails: [\n        {\n            paramName: \"back_log\",\n            paramValue: \"4000\",\n        },\n        {\n            paramName: \"wait_timeout\",\n            paramValue: \"86460\",\n        },\n    ],\n    parameterGroupDesc: name,\n    parameterGroupName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.rds.RdsParameterGroup(\"default\",\n    engine=\"mysql\",\n    engine_version=\"5.7\",\n    param_details=[\n        {\n            \"param_name\": \"back_log\",\n            \"param_value\": \"4000\",\n        },\n        {\n            \"param_name\": \"wait_timeout\",\n            \"param_value\": \"86460\",\n        },\n    ],\n    parameter_group_desc=name,\n    parameter_group_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = new AliCloud.Rds.RdsParameterGroup(\"default\", new()\n    {\n        Engine = \"mysql\",\n        EngineVersion = \"5.7\",\n        ParamDetails = new[]\n        {\n            new AliCloud.Rds.Inputs.RdsParameterGroupParamDetailArgs\n            {\n                ParamName = \"back_log\",\n                ParamValue = \"4000\",\n            },\n            new AliCloud.Rds.Inputs.RdsParameterGroupParamDetailArgs\n            {\n                ParamName = \"wait_timeout\",\n                ParamValue = \"86460\",\n            },\n        },\n        ParameterGroupDesc = name,\n        ParameterGroupName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := rds.NewRdsParameterGroup(ctx, \"default\", \u0026rds.RdsParameterGroupArgs{\n\t\t\tEngine:        pulumi.String(\"mysql\"),\n\t\t\tEngineVersion: pulumi.String(\"5.7\"),\n\t\t\tParamDetails: rds.RdsParameterGroupParamDetailArray{\n\t\t\t\t\u0026rds.RdsParameterGroupParamDetailArgs{\n\t\t\t\t\tParamName:  pulumi.String(\"back_log\"),\n\t\t\t\t\tParamValue: pulumi.String(\"4000\"),\n\t\t\t\t},\n\t\t\t\t\u0026rds.RdsParameterGroupParamDetailArgs{\n\t\t\t\t\tParamName:  pulumi.String(\"wait_timeout\"),\n\t\t\t\t\tParamValue: pulumi.String(\"86460\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tParameterGroupDesc: pulumi.String(name),\n\t\t\tParameterGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsParameterGroup;\nimport com.pulumi.alicloud.rds.RdsParameterGroupArgs;\nimport com.pulumi.alicloud.rds.inputs.RdsParameterGroupParamDetailArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var default_ = new RdsParameterGroup(\"default\", RdsParameterGroupArgs.builder()\n            .engine(\"mysql\")\n            .engineVersion(\"5.7\")\n            .paramDetails(            \n                RdsParameterGroupParamDetailArgs.builder()\n                    .paramName(\"back_log\")\n                    .paramValue(\"4000\")\n                    .build(),\n                RdsParameterGroupParamDetailArgs.builder()\n                    .paramName(\"wait_timeout\")\n                    .paramValue(\"86460\")\n                    .build())\n            .parameterGroupDesc(name)\n            .parameterGroupName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  default:\n    type: alicloud:rds:RdsParameterGroup\n    properties:\n      engine: mysql\n      engineVersion: '5.7'\n      paramDetails:\n        - paramName: back_log\n          paramValue: '4000'\n        - paramName: wait_timeout\n          paramValue: '86460'\n      parameterGroupDesc: ${name}\n      parameterGroupName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS Parameter Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/rdsParameterGroup:RdsParameterGroup example \u003cid\u003e\n```\n\n","properties":{"engine":{"type":"string","description":"The database engine. Valid values: \u003cspan pulumi-lang-nodejs=\"`mysql`\" pulumi-lang-dotnet=\"`Mysql`\" pulumi-lang-go=\"`mysql`\" pulumi-lang-python=\"`mysql`\" pulumi-lang-yaml=\"`mysql`\" pulumi-lang-java=\"`mysql`\"\u003e`mysql`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mariadb`\" pulumi-lang-dotnet=\"`Mariadb`\" pulumi-lang-go=\"`mariadb`\" pulumi-lang-python=\"`mariadb`\" pulumi-lang-yaml=\"`mariadb`\" pulumi-lang-java=\"`mariadb`\"\u003e`mariadb`\u003c/span\u003e, `PostgreSQL`.\n"},"engineVersion":{"type":"string","description":"The version of the database engine. Valid values: mysql: `5.1`, `5.5`, `5.6`, `5.7`, `8.0`; mariadb: `10.3`; PostgreSQL: `10.0`, `11.0`, `12.0`, `13.0`, `14.0`, `15.0`.\n"},"paramDetails":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsParameterGroupParamDetail:RdsParameterGroupParamDetail"},"description":"Parameter list. See \u003cspan pulumi-lang-nodejs=\"`paramDetail`\" pulumi-lang-dotnet=\"`ParamDetail`\" pulumi-lang-go=\"`paramDetail`\" pulumi-lang-python=\"`param_detail`\" pulumi-lang-yaml=\"`paramDetail`\" pulumi-lang-java=\"`paramDetail`\"\u003e`param_detail`\u003c/span\u003e below.\n"},"parameterGroupDesc":{"type":"string","description":"The description of the parameter template.\n"},"parameterGroupName":{"type":"string","description":"The name of the parameter template.\n"}},"required":["engine","engineVersion","paramDetails","parameterGroupName"],"inputProperties":{"engine":{"type":"string","description":"The database engine. Valid values: \u003cspan pulumi-lang-nodejs=\"`mysql`\" pulumi-lang-dotnet=\"`Mysql`\" pulumi-lang-go=\"`mysql`\" pulumi-lang-python=\"`mysql`\" pulumi-lang-yaml=\"`mysql`\" pulumi-lang-java=\"`mysql`\"\u003e`mysql`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mariadb`\" pulumi-lang-dotnet=\"`Mariadb`\" pulumi-lang-go=\"`mariadb`\" pulumi-lang-python=\"`mariadb`\" pulumi-lang-yaml=\"`mariadb`\" pulumi-lang-java=\"`mariadb`\"\u003e`mariadb`\u003c/span\u003e, `PostgreSQL`.\n","willReplaceOnChanges":true},"engineVersion":{"type":"string","description":"The version of the database engine. Valid values: mysql: `5.1`, `5.5`, `5.6`, `5.7`, `8.0`; mariadb: `10.3`; PostgreSQL: `10.0`, `11.0`, `12.0`, `13.0`, `14.0`, `15.0`.\n","willReplaceOnChanges":true},"paramDetails":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsParameterGroupParamDetail:RdsParameterGroupParamDetail"},"description":"Parameter list. See \u003cspan pulumi-lang-nodejs=\"`paramDetail`\" pulumi-lang-dotnet=\"`ParamDetail`\" pulumi-lang-go=\"`paramDetail`\" pulumi-lang-python=\"`param_detail`\" pulumi-lang-yaml=\"`paramDetail`\" pulumi-lang-java=\"`paramDetail`\"\u003e`param_detail`\u003c/span\u003e below.\n"},"parameterGroupDesc":{"type":"string","description":"The description of the parameter template.\n"},"parameterGroupName":{"type":"string","description":"The name of the parameter template.\n"}},"requiredInputs":["engine","engineVersion","paramDetails","parameterGroupName"],"stateInputs":{"description":"Input properties used for looking up and filtering RdsParameterGroup resources.\n","properties":{"engine":{"type":"string","description":"The database engine. Valid values: \u003cspan pulumi-lang-nodejs=\"`mysql`\" pulumi-lang-dotnet=\"`Mysql`\" pulumi-lang-go=\"`mysql`\" pulumi-lang-python=\"`mysql`\" pulumi-lang-yaml=\"`mysql`\" pulumi-lang-java=\"`mysql`\"\u003e`mysql`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mariadb`\" pulumi-lang-dotnet=\"`Mariadb`\" pulumi-lang-go=\"`mariadb`\" pulumi-lang-python=\"`mariadb`\" pulumi-lang-yaml=\"`mariadb`\" pulumi-lang-java=\"`mariadb`\"\u003e`mariadb`\u003c/span\u003e, `PostgreSQL`.\n","willReplaceOnChanges":true},"engineVersion":{"type":"string","description":"The version of the database engine. Valid values: mysql: `5.1`, `5.5`, `5.6`, `5.7`, `8.0`; mariadb: `10.3`; PostgreSQL: `10.0`, `11.0`, `12.0`, `13.0`, `14.0`, `15.0`.\n","willReplaceOnChanges":true},"paramDetails":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsParameterGroupParamDetail:RdsParameterGroupParamDetail"},"description":"Parameter list. See \u003cspan pulumi-lang-nodejs=\"`paramDetail`\" pulumi-lang-dotnet=\"`ParamDetail`\" pulumi-lang-go=\"`paramDetail`\" pulumi-lang-python=\"`param_detail`\" pulumi-lang-yaml=\"`paramDetail`\" pulumi-lang-java=\"`paramDetail`\"\u003e`param_detail`\u003c/span\u003e below.\n"},"parameterGroupDesc":{"type":"string","description":"The description of the parameter template.\n"},"parameterGroupName":{"type":"string","description":"The name of the parameter template.\n"}},"type":"object"}},"alicloud:rds/rdsServiceLinkedRole:RdsServiceLinkedRole":{"description":"Provides a RDS Service Linked Role.\n\nFor information about RDS Service Linked Role and how to use it, see [What is Service Linked Role.](https://www.alibabacloud.com/help/en/doc-detail/171226.htm).\n\n\u003e **NOTE:** Available since v1.189.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.rds.RdsServiceLinkedRole(\"default\", {serviceName: \"AliyunServiceRoleForRdsPgsqlOnEcs\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.rds.RdsServiceLinkedRole(\"default\", service_name=\"AliyunServiceRoleForRdsPgsqlOnEcs\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Rds.RdsServiceLinkedRole(\"default\", new()\n    {\n        ServiceName = \"AliyunServiceRoleForRdsPgsqlOnEcs\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewRdsServiceLinkedRole(ctx, \"default\", \u0026rds.RdsServiceLinkedRoleArgs{\n\t\t\tServiceName: pulumi.String(\"AliyunServiceRoleForRdsPgsqlOnEcs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsServiceLinkedRole;\nimport com.pulumi.alicloud.rds.RdsServiceLinkedRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new RdsServiceLinkedRole(\"default\", RdsServiceLinkedRoleArgs.builder()\n            .serviceName(\"AliyunServiceRoleForRdsPgsqlOnEcs\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:rds:RdsServiceLinkedRole\n    properties:\n      serviceName: AliyunServiceRoleForRdsPgsqlOnEcs\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS Service Linked Role can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/rdsServiceLinkedRole:RdsServiceLinkedRole default \u003cservice_name\u003e\n```\n\n","properties":{"arn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the role.\n"},"roleId":{"type":"string","description":"The ID of the role.\n"},"roleName":{"type":"string","description":"The name of the role.\n"},"serviceName":{"type":"string","description":"The product name for SLR. RDS can automatically create the following service-linked roles: `AliyunServiceRoleForRdsPgsqlOnEcs`, `AliyunServiceRoleForRDSProxyOnEcs`.\n"}},"required":["arn","roleId","roleName","serviceName"],"inputProperties":{"serviceName":{"type":"string","description":"The product name for SLR. RDS can automatically create the following service-linked roles: `AliyunServiceRoleForRdsPgsqlOnEcs`, `AliyunServiceRoleForRDSProxyOnEcs`.\n","willReplaceOnChanges":true}},"requiredInputs":["serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering RdsServiceLinkedRole resources.\n","properties":{"arn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the role.\n"},"roleId":{"type":"string","description":"The ID of the role.\n"},"roleName":{"type":"string","description":"The name of the role.\n"},"serviceName":{"type":"string","description":"The product name for SLR. RDS can automatically create the following service-linked roles: `AliyunServiceRoleForRdsPgsqlOnEcs`, `AliyunServiceRoleForRDSProxyOnEcs`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rds/rdsUpgradeDbInstance:RdsUpgradeDbInstance":{"description":"Provides a RDS Upgrade DB Instance resource.\n\nFor information about RDS Upgrade DB Instance and how to use it, see [What is ApsaraDB for RDS](https://www.alibabacloud.com/help/en/doc-detail/26092.htm).\n\n\u003e **NOTE:** Available since v1.153.0.\n\n## Example Usage\n\n### Create a RDS PostgreSQL upgrade instance\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.rds.getZones({\n    engine: \"PostgreSQL\",\n    engineVersion: \"13.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"HighAvailability\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst exampleGetInstanceClasses = example.then(example =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: example.zones?.[0]?.id,\n    engine: \"PostgreSQL\",\n    engineVersion: \"13.0\",\n    category: \"HighAvailability\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceChargeType: \"PostPaid\",\n}));\nconst exampleGetCrossRegions = alicloud.rds.getCrossRegions({});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vpcId: exampleNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n    vswitchName: \"terraform-example\",\n});\nconst exampleInstance = new alicloud.rds.Instance(\"example\", {\n    engine: \"PostgreSQL\",\n    engineVersion: \"13.0\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceType: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    instanceChargeType: \"Postpaid\",\n    instanceName: \"terraform-example\",\n    vswitchId: exampleSwitch.id,\n    monitoringPeriod: 60,\n});\nconst exampleRdsUpgradeDbInstance = new alicloud.rds.RdsUpgradeDbInstance(\"example\", {\n    sourceDbInstanceId: exampleInstance.id,\n    targetMajorVersion: \"14.0\",\n    dbInstanceClass: exampleInstance.instanceType,\n    dbInstanceStorage: exampleInstance.instanceStorage,\n    dbInstanceStorageType: exampleInstance.dbInstanceStorageType,\n    instanceNetworkType: \"VPC\",\n    collectStatMode: \"After\",\n    switchOver: \"false\",\n    paymentType: \"PayAsYouGo\",\n    dbInstanceDescription: \"terraform-example\",\n    vswitchId: exampleSwitch.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.rds.get_zones(engine=\"PostgreSQL\",\n    engine_version=\"13.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"HighAvailability\",\n    db_instance_storage_type=\"cloud_essd\")\nexample_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=example.zones[0].id,\n    engine=\"PostgreSQL\",\n    engine_version=\"13.0\",\n    category=\"HighAvailability\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_charge_type=\"PostPaid\")\nexample_get_cross_regions = alicloud.rds.get_cross_regions()\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vpc_id=example_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=example.zones[0].id,\n    vswitch_name=\"terraform-example\")\nexample_instance = alicloud.rds.Instance(\"example\",\n    engine=\"PostgreSQL\",\n    engine_version=\"13.0\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_type=example_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=example_get_instance_classes.instance_classes[0].storage_range.min,\n    instance_charge_type=\"Postpaid\",\n    instance_name=\"terraform-example\",\n    vswitch_id=example_switch.id,\n    monitoring_period=60)\nexample_rds_upgrade_db_instance = alicloud.rds.RdsUpgradeDbInstance(\"example\",\n    source_db_instance_id=example_instance.id,\n    target_major_version=\"14.0\",\n    db_instance_class=example_instance.instance_type,\n    db_instance_storage=example_instance.instance_storage,\n    db_instance_storage_type=example_instance.db_instance_storage_type,\n    instance_network_type=\"VPC\",\n    collect_stat_mode=\"After\",\n    switch_over=\"false\",\n    payment_type=\"PayAsYouGo\",\n    db_instance_description=\"terraform-example\",\n    vswitch_id=example_switch.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"PostgreSQL\",\n        EngineVersion = \"13.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"HighAvailability\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var exampleGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Engine = \"PostgreSQL\",\n        EngineVersion = \"13.0\",\n        Category = \"HighAvailability\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var exampleGetCrossRegions = AliCloud.Rds.GetCrossRegions.Invoke();\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VpcId = exampleNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = \"terraform-example\",\n    });\n\n    var exampleInstance = new AliCloud.Rds.Instance(\"example\", new()\n    {\n        Engine = \"PostgreSQL\",\n        EngineVersion = \"13.0\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceType = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = \"terraform-example\",\n        VswitchId = exampleSwitch.Id,\n        MonitoringPeriod = 60,\n    });\n\n    var exampleRdsUpgradeDbInstance = new AliCloud.Rds.RdsUpgradeDbInstance(\"example\", new()\n    {\n        SourceDbInstanceId = exampleInstance.Id,\n        TargetMajorVersion = \"14.0\",\n        DbInstanceClass = exampleInstance.InstanceType,\n        DbInstanceStorage = exampleInstance.InstanceStorage,\n        DbInstanceStorageType = exampleInstance.DbInstanceStorageType,\n        InstanceNetworkType = \"VPC\",\n        CollectStatMode = \"After\",\n        SwitchOver = \"false\",\n        PaymentType = \"PayAsYouGo\",\n        DbInstanceDescription = \"terraform-example\",\n        VswitchId = exampleSwitch.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"PostgreSQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"13.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"HighAvailability\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(example.Zones[0].Id),\n\t\t\tEngine:                pulumi.StringRef(\"PostgreSQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"13.0\"),\n\t\t\tCategory:              pulumi.StringRef(\"HighAvailability\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.GetCrossRegions(ctx, \u0026rds.GetCrossRegionsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := rds.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"PostgreSQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"13.0\"),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tInstanceType:          pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceStorage:       pulumi.String(exampleGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\tInstanceName:          pulumi.String(\"terraform-example\"),\n\t\t\tVswitchId:             exampleSwitch.ID(),\n\t\t\tMonitoringPeriod:      pulumi.Int(60),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewRdsUpgradeDbInstance(ctx, \"example\", \u0026rds.RdsUpgradeDbInstanceArgs{\n\t\t\tSourceDbInstanceId:    exampleInstance.ID(),\n\t\t\tTargetMajorVersion:    pulumi.String(\"14.0\"),\n\t\t\tDbInstanceClass:       exampleInstance.InstanceType,\n\t\t\tDbInstanceStorage:     exampleInstance.InstanceStorage,\n\t\t\tDbInstanceStorageType: exampleInstance.DbInstanceStorageType,\n\t\t\tInstanceNetworkType:   pulumi.String(\"VPC\"),\n\t\t\tCollectStatMode:       pulumi.String(\"After\"),\n\t\t\tSwitchOver:            pulumi.String(\"false\"),\n\t\t\tPaymentType:           pulumi.String(\"PayAsYouGo\"),\n\t\t\tDbInstanceDescription: pulumi.String(\"terraform-example\"),\n\t\t\tVswitchId:             exampleSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetCrossRegionsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.RdsUpgradeDbInstance;\nimport com.pulumi.alicloud.rds.RdsUpgradeDbInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"PostgreSQL\")\n            .engineVersion(\"13.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"HighAvailability\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var exampleGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(example.zones()[0].id())\n            .engine(\"PostgreSQL\")\n            .engineVersion(\"13.0\")\n            .category(\"HighAvailability\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        final var exampleGetCrossRegions = RdsFunctions.getCrossRegions(GetCrossRegionsArgs.builder()\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vpcId(exampleNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(example.zones()[0].id())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .engine(\"PostgreSQL\")\n            .engineVersion(\"13.0\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceType(exampleGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(exampleGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(\"terraform-example\")\n            .vswitchId(exampleSwitch.id())\n            .monitoringPeriod(60)\n            .build());\n\n        var exampleRdsUpgradeDbInstance = new RdsUpgradeDbInstance(\"exampleRdsUpgradeDbInstance\", RdsUpgradeDbInstanceArgs.builder()\n            .sourceDbInstanceId(exampleInstance.id())\n            .targetMajorVersion(\"14.0\")\n            .dbInstanceClass(exampleInstance.instanceType())\n            .dbInstanceStorage(exampleInstance.instanceStorage())\n            .dbInstanceStorageType(exampleInstance.dbInstanceStorageType())\n            .instanceNetworkType(\"VPC\")\n            .collectStatMode(\"After\")\n            .switchOver(\"false\")\n            .paymentType(\"PayAsYouGo\")\n            .dbInstanceDescription(\"terraform-example\")\n            .vswitchId(exampleSwitch.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vpcId: ${exampleNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${example.zones[0].id}\n      vswitchName: terraform-example\n  exampleInstance:\n    type: alicloud:rds:Instance\n    name: example\n    properties:\n      engine: PostgreSQL\n      engineVersion: '13.0'\n      dbInstanceStorageType: cloud_essd\n      instanceType: ${exampleGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceStorage: ${exampleGetInstanceClasses.instanceClasses[0].storageRange.min}\n      instanceChargeType: Postpaid\n      instanceName: terraform-example\n      vswitchId: ${exampleSwitch.id}\n      monitoringPeriod: '60'\n  exampleRdsUpgradeDbInstance:\n    type: alicloud:rds:RdsUpgradeDbInstance\n    name: example\n    properties:\n      sourceDbInstanceId: ${exampleInstance.id}\n      targetMajorVersion: '14.0'\n      dbInstanceClass: ${exampleInstance.instanceType}\n      dbInstanceStorage: ${exampleInstance.instanceStorage}\n      dbInstanceStorageType: ${exampleInstance.dbInstanceStorageType}\n      instanceNetworkType: VPC\n      collectStatMode: After\n      switchOver: 'false'\n      paymentType: PayAsYouGo\n      dbInstanceDescription: terraform-example\n      vswitchId: ${exampleSwitch.id}\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: PostgreSQL\n        engineVersion: '13.0'\n        instanceChargeType: PostPaid\n        category: HighAvailability\n        dbInstanceStorageType: cloud_essd\n  exampleGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${example.zones[0].id}\n        engine: PostgreSQL\n        engineVersion: '13.0'\n        category: HighAvailability\n        dbInstanceStorageType: cloud_essd\n        instanceChargeType: PostPaid\n  exampleGetCrossRegions:\n    fn::invoke:\n      function: alicloud:rds:getCrossRegions\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS Upgrade DB Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/rdsUpgradeDbInstance:RdsUpgradeDbInstance example \u003cid\u003e\n```\n\n","properties":{"acl":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. This parameter indicates the authentication method. It is allowed only when the public key of the client certificate authority is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`perfer`\" pulumi-lang-dotnet=\"`Perfer`\" pulumi-lang-go=\"`perfer`\" pulumi-lang-python=\"`perfer`\" pulumi-lang-yaml=\"`perfer`\" pulumi-lang-java=\"`perfer`\"\u003e`perfer`\u003c/span\u003e and `verify-ca` and `verify-full (supported by RDS PostgreSQL above 12)`.\n"},"autoUpgradeMinorVersion":{"type":"string","description":"How to upgrade the minor version of the instance. Valid values:\n* **Auto**: automatically upgrade the minor version.\n* **Manual**: It is not automatically upgraded. It is only mandatory when the current version is offline.\n"},"caType":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the certificate type. When the value of\u003cspan pulumi-lang-nodejs=\" sslAction \" pulumi-lang-dotnet=\" SslAction \" pulumi-lang-go=\" sslAction \" pulumi-lang-python=\" ssl_action \" pulumi-lang-yaml=\" sslAction \" pulumi-lang-java=\" sslAction \"\u003e ssl_action \u003c/span\u003eis Open, the default value of this parameter is aliyun. Value range:\n* **aliyun**: using cloud certificates.\n* **custom**: use a custom certificate. Valid values: \u003cspan pulumi-lang-nodejs=\"`aliyun`\" pulumi-lang-dotnet=\"`Aliyun`\" pulumi-lang-go=\"`aliyun`\" pulumi-lang-python=\"`aliyun`\" pulumi-lang-yaml=\"`aliyun`\" pulumi-lang-java=\"`aliyun`\"\u003e`aliyun`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"certificate":{"type":"string","description":"The file that contains the certificate used for TDE.\n"},"clientCaCert":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the public key of the client certification authority. If the value of\u003cspan pulumi-lang-nodejs=\" clientCaEnabled \" pulumi-lang-dotnet=\" ClientCaEnabled \" pulumi-lang-go=\" clientCaEnabled \" pulumi-lang-python=\" client_ca_enabled \" pulumi-lang-yaml=\" clientCaEnabled \" pulumi-lang-java=\" clientCaEnabled \"\u003e client_ca_enabled \u003c/span\u003eis 1, this parameter must be configured.\n"},"clientCaEnabled":{"type":"integer","description":"The client ca enabled.\n"},"clientCertRevocationList":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version, which indicates that the client revokes the certificate file. If the value of\u003cspan pulumi-lang-nodejs=\" clientCrlEnabled \" pulumi-lang-dotnet=\" ClientCrlEnabled \" pulumi-lang-go=\" clientCrlEnabled \" pulumi-lang-python=\" client_crl_enabled \" pulumi-lang-yaml=\" clientCrlEnabled \" pulumi-lang-java=\" clientCrlEnabled \"\u003e client_crl_enabled \u003c/span\u003eis 1, this parameter must be configured.\n"},"clientCrlEnabled":{"type":"integer","description":"The client crl enabled.\n"},"collectStatMode":{"type":"string","description":"The time at which ApsaraDB RDS collects the statistics of the new instance.\n* **Before**: ApsaraDB RDS collects the statistics of the new instance before the switchover to ensure service stability. If the original instance contains a large amount of data, the upgrade may require a long period of time.\n* **After**: ApsaraDB RDS collects the statistics of the new instance after the switchover to accelerate the upgrade. If you access tables for which no statistics are generated, the query plans that you specify may be inaccurately executed. In addition, your database service may be unavailable during peak hours.\n\n\u003e **NOTE** If you set the SwitchOver parameter to false, the value Before specifies that ApsaraDB RDS collects the statistics of the new instance before the new instance starts to process read and write requests, and the value After specifies that ApsaraDB RDS collects the statistics of the new instance after the new instance starts to process read and write requests.\n"},"connectionString":{"type":"string","description":"The database connection address.\n"},"connectionStringPrefix":{"type":"string","description":"The connection string prefix.\n"},"dbInstanceClass":{"type":"string","description":"The instance type of the new instance. For information, see [Primary ApsaraDB RDS instance types](https://www.alibabacloud.com/help/en/rds/product-overview/primary-apsaradb-rds-instance-types).\n"},"dbInstanceDescription":{"type":"string","description":"The db instance description.\n"},"dbInstanceStorage":{"type":"integer","description":"The storage capacity of the new instance. Unit: GB. The storage capacity increases in increments of 5 GB. For more information, see [Primary ApsaraDB RDS instance types](https://www.alibabacloud.com/help/en/rds/product-overview/primary-apsaradb-rds-instance-types).\n\n\u003e **NOTE:** The default value of this parameter is the storage capacity of the original instance.\n"},"dbInstanceStorageType":{"type":"string","description":"The type of storage media that is used for the new instance. Valid values:\n* **local_ssd**: local SSDs.\n* **cloud_ssd**: standard SSDs.\n* **cloud_essd**: enhanced SSDs (ESSDs) of performance level 1 (PL1).\n* **cloud_essd2**: ESSDs of PL2.\n* **cloud_essd3**: ESSDs of PL3.\n"},"dbName":{"type":"string","description":"The name of the database for which you want to enable TDE. Up to 50 names can be entered in a single request. If you specify multiple names, separate these names with commas (,).\n\n\u003e **NOTE:** This parameter is available and must be specified only when the instance runs SQL Server 2019 SE or an Enterprise Edition of SQL Server.\n"},"dedicatedHostGroupId":{"type":"string","description":"The ID of the dedicated cluster to which the new instance belongs. This parameter takes effect only when you create the new instance in a dedicated cluster.\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. Valid values:\n- true: delete protect.\n- false: no delete protect.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`deletionProtection`\" pulumi-lang-dotnet=\"`DeletionProtection`\" pulumi-lang-go=\"`deletionProtection`\" pulumi-lang-python=\"`deletion_protection`\" pulumi-lang-yaml=\"`deletionProtection`\" pulumi-lang-java=\"`deletionProtection`\"\u003e`deletion_protection`\u003c/span\u003e is valid only when attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, supported engine type: **MySQL**, **PostgreSQL**, **MariaDB**, **MSSQL**.\n"},"direction":{"type":"string","description":"The direction. Valid values: `Auto`, `Down`, `TempUpgrade`, `Up`.\n"},"effectiveTime":{"type":"string","description":"The effective time.\n"},"encryptionKey":{"type":"string","description":"The ID of the private key.\n\n\u003e **NOTE:** This parameter is available only when the instance runs MySQL.\n"},"engine":{"type":"string","description":"Database type. Value options: MySQL, SQLServer, PostgreSQL.\n"},"engineVersion":{"type":"string","description":"Database version. Value:\n* MySQL: **5.5/5.6/5.7/8.0**.\n* SQL Server: **2008r2/08r2_ent_ha/2012/2012_ent_ha/2012_std_ha/2012_web/2014_std_ha/2016_ent_ha/2016_std_ha/2016_web/2017_std_ha/2017_ent/2019_std_ha/2019_ent**.\n* PostgreSQL: **9.4/10.0/11.0/12.0/13.0**.\n* MariaDB: **10.3**.\n"},"forceRestart":{"type":"boolean","description":"Set it to true to make some parameter efficient when modifying them. Default to false.\n"},"haMode":{"type":"string","description":"The high availability mode. Valid values:\n* **RPO**: Data persistence is preferred. The instance preferentially ensures data reliability to minimize data loss. Use this mode if you have higher requirements on data consistency.\n* **RTO**: Instance availability is preferred. The instance restores services as soon as possible to ensure availability. Use this mode if you have higher requirements on service availability.\n"},"instanceNetworkType":{"type":"string","description":"The network type of the instance. Valid values:\n* **Classic**: Classic Network.\n* **VPC**: VPC.\n"},"maintainTime":{"type":"string","description":"The maintainable time period of the instance. Format: \u003cI\u003e HH:mm\u003c/I\u003e Z-\u003cI\u003e HH:mm\u003c/I\u003e Z(UTC time).\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsUpgradeDbInstanceParameter:RdsUpgradeDbInstanceParameter"},"description":"Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm). See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"password":{"type":"string","description":"The password of the certificate. \n\n\u003e **NOTE:** This parameter is available only when the instance runs SQL Server 2019 SE or an Enterprise Edition of SQL Server.\n"},"paymentType":{"type":"string","description":"The billing method of the new instance. Valid values: `PayAsYouGo` and `Subscription`.\n"},"pgHbaConfs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsUpgradeDbInstancePgHbaConf:RdsUpgradeDbInstancePgHbaConf"},"description":"The configuration of [AD domain](https://www.alibabacloud.com/help/en/doc-detail/349288.htm) . See \u003cspan pulumi-lang-nodejs=\"`pgHbaConf`\" pulumi-lang-dotnet=\"`PgHbaConf`\" pulumi-lang-go=\"`pgHbaConf`\" pulumi-lang-python=\"`pg_hba_conf`\" pulumi-lang-yaml=\"`pgHbaConf`\" pulumi-lang-java=\"`pgHbaConf`\"\u003e`pg_hba_conf`\u003c/span\u003e below.\n"},"port":{"type":"string","description":"The port.\n"},"privateIpAddress":{"type":"string","description":"The intranet IP address of the new instance must be within the specified vSwitch IP address range. By default, the system automatically allocates by using **VPCId** and **VSwitchId**.\n"},"privateKey":{"type":"string","description":"The file that contains the private key used for TDE.\n"},"releasedKeepPolicy":{"type":"string","description":"The released keep policy.\n"},"replicationAcl":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version, indicating the authentication method of the replication permission. It is only allowed when the public key of the client certificate authority is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`perfer`\" pulumi-lang-dotnet=\"`Perfer`\" pulumi-lang-go=\"`perfer`\" pulumi-lang-python=\"`perfer`\" pulumi-lang-yaml=\"`perfer`\" pulumi-lang-java=\"`perfer`\"\u003e`perfer`\u003c/span\u003e and `verify-ca` and `verify-full (supported by RDS PostgreSQL above 12)`.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of a RAM role. A RAM role is a virtual RAM identity that you can create within your Alibaba Cloud account. For more information, see [RAM role overview](https://www.alibabacloud.com/help/en/ram/user-guide/ram-role-overview).\n\n\u003e **NOTE:** This parameter is available only when the instance runs MySQL.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"The IP address whitelist of the instance. Separate multiple IP addresses with commas (,) and cannot be repeated. The following two formats are supported:\n* IP address form, for example: 10.23.12.24.\n* CIDR format, for example, 10.23.12.0/24 (no Inter-Domain Routing, 24 indicates the length of the prefix in the address, ranging from 1 to 32).\n\n\u003e **NOTE:** each instance can add up to 1000 IP addresses or IP segments, that is, the total number of IP addresses or IP segments in all IP whitelist groups cannot exceed 1000. When there are more IP addresses, it is recommended to merge them into IP segments, for example, 10.23.12.0/24.\n"},"serverCert":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the content of the server certificate. If the CAType value is custom, this parameter must be configured.\n"},"serverKey":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the private key of the server certificate. If the value of CAType is custom, this parameter must be configured.\n"},"sourceBiz":{"type":"string","description":"The source biz.\n"},"sourceDbInstanceId":{"type":"string","description":"The source db instance id.\n"},"sslEnabled":{"type":"integer","description":"Enable or disable SSL. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"switchOver":{"type":"string","description":"Specifies whether ApsaraDB RDS automatically switches your workloads over to the new instance after data is migrated to the new instance. Valid values:\n* **true**: ApsaraDB RDS automatically switches workloads over to the new instance. If you set this parameter to true, you must take note of the following information:\n* After the switchover is complete, you cannot roll your workloads back to the original instance. Proceed with caution.\n* During the switchover, the original instance processes only read requests. You must perform the switchover during off-peak hours.\n* If read-only instances are attached to the original instance, you can set this parameter only to false. In this case, the read-only instances that are attached to the original instance cannot be cloned. After the upgrade is complete, you must create read-only instances for the new instance.\n* **false**: ApsaraDB RDS does not automatically switch your workloads over to the new instance. Before you perform an upgrade, we recommend that you set this parameter to false to test whether the new major engine version is compatible with your workloads. If you set this parameter to false, you must take note of the following information:\n* The data migration does not interrupt your workloads on the original instance.\n* After data is migrated to the new instance, you must update the endpoint configuration on your application. This update requires you to replace the endpoint of the original instance with the endpoint of the new instance. For more information about how to view the endpoint of an instance, see [View and change the internal and public endpoints and port numbers of an ApsaraDB RDS for PostgreSQL instance](https://www.alibabacloud.com/help/doc-detail/96788.htm).\n"},"switchTime":{"type":"string","description":"The time at which you want to apply the specification changes. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"switchTimeMode":{"type":"string","description":"The time at which ApsaraDB RDS switches your workloads over to the new instance. This parameter is used together with the SwitchOver parameter and takes effect only when you set the SwitchOver parameter to true. Valid values:\n* **Immediate**: After data is migrated to the new instance, ApsaraDB RDS immediately switches your workloads over to the new instance.\n* **MaintainTime**: After data is migrated to the new instance, ApsaraDB RDS switches your workloads over to the new instance during the maintenance window that you specify. You can call the [ModifyDBInstanceMaintainTime](https://www.alibabacloud.com/help/doc-detail/26249.htm) operation to change the maintenance window of an instance.\n"},"syncMode":{"type":"string","description":"[The data replication mode](https://www.alibabacloud.com/help/doc-detail/96055.htm). Valid values:\n* **Sync**: strong synchronization.\n* **Semi-sync**: Semi-synchronous.\n* **Async**: asynchronous.\n\n\u003e **NOTE:** SQL Server 2017 cluster version is currently not supported.\n"},"targetMajorVersion":{"type":"string","description":"The major engine version of the new instance. The value of this parameter must be the major engine version on which an upgrade check is performed.\n\n\u003e **NOTE** You can call the [UpgradeDBInstanceMajorVersionPrecheck](https://www.alibabacloud.com/help/doc-detail/330050.htm) operation to perform an upgrade check on a major engine version.\n"},"tcpConnectionType":{"type":"string","description":"The availability check method of the instance. Valid values:\n- **SHORT**: Alibaba Cloud uses short-lived connections to check the availability of the instance.\n- **LONG**: Alibaba Cloud uses persistent connections to check the availability of the instance.\n"},"tdeStatus":{"type":"string","description":"Specifies whether to enable TDE. Valid values: `Enabled` and `Disabled`.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the new instance belongs.\n\n\u003e **NOTE:** Make sure that the VPC resides in the specified region.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch associated with the specified VPC.\n\n\u003e **NOTE:** Make sure that the vSwitch belongs to the specified VPC and region.\n"},"zoneId":{"type":"string","description":"The ID of the zone to which the new instance belongs. You can call the [DescribeRegions](https://www.alibabacloud.com/help/en/rds/developer-reference/api-rds-2014-08-15-describeregions) operation to query the most recent region list.\n\n\u003e **NOTE:** The default value of this parameter is the ID of the zone to which the original instance belongs.\n"},"zoneIdSlave1":{"type":"string","description":"The ID of the zone to which the secondary instance of the new instance belongs. You can specify this parameter only when the original instance runs RDS High-availability Edition. You can select a zone that belongs to the region where the original instance resides. You can call the [DescribeRegions](https://www.alibabacloud.com/help/en/rds/developer-reference/api-rds-2014-08-15-describeregions) operation to query zone IDs.\n"}},"required":["acl","autoUpgradeMinorVersion","caType","collectStatMode","connectionString","dbInstanceClass","dbInstanceDescription","dbInstanceStorage","dbInstanceStorageType","engine","engineVersion","haMode","instanceNetworkType","maintainTime","parameters","paymentType","pgHbaConfs","port","privateIpAddress","replicationAcl","securityIps","serverCert","serverKey","sourceDbInstanceId","sslEnabled","switchOver","syncMode","targetMajorVersion","tcpConnectionType","vpcId","vswitchId","zoneId","zoneIdSlave1"],"inputProperties":{"acl":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. This parameter indicates the authentication method. It is allowed only when the public key of the client certificate authority is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`perfer`\" pulumi-lang-dotnet=\"`Perfer`\" pulumi-lang-go=\"`perfer`\" pulumi-lang-python=\"`perfer`\" pulumi-lang-yaml=\"`perfer`\" pulumi-lang-java=\"`perfer`\"\u003e`perfer`\u003c/span\u003e and `verify-ca` and `verify-full (supported by RDS PostgreSQL above 12)`.\n"},"autoUpgradeMinorVersion":{"type":"string","description":"How to upgrade the minor version of the instance. Valid values:\n* **Auto**: automatically upgrade the minor version.\n* **Manual**: It is not automatically upgraded. It is only mandatory when the current version is offline.\n"},"caType":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the certificate type. When the value of\u003cspan pulumi-lang-nodejs=\" sslAction \" pulumi-lang-dotnet=\" SslAction \" pulumi-lang-go=\" sslAction \" pulumi-lang-python=\" ssl_action \" pulumi-lang-yaml=\" sslAction \" pulumi-lang-java=\" sslAction \"\u003e ssl_action \u003c/span\u003eis Open, the default value of this parameter is aliyun. Value range:\n* **aliyun**: using cloud certificates.\n* **custom**: use a custom certificate. Valid values: \u003cspan pulumi-lang-nodejs=\"`aliyun`\" pulumi-lang-dotnet=\"`Aliyun`\" pulumi-lang-go=\"`aliyun`\" pulumi-lang-python=\"`aliyun`\" pulumi-lang-yaml=\"`aliyun`\" pulumi-lang-java=\"`aliyun`\"\u003e`aliyun`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"certificate":{"type":"string","description":"The file that contains the certificate used for TDE.\n"},"clientCaCert":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the public key of the client certification authority. If the value of\u003cspan pulumi-lang-nodejs=\" clientCaEnabled \" pulumi-lang-dotnet=\" ClientCaEnabled \" pulumi-lang-go=\" clientCaEnabled \" pulumi-lang-python=\" client_ca_enabled \" pulumi-lang-yaml=\" clientCaEnabled \" pulumi-lang-java=\" clientCaEnabled \"\u003e client_ca_enabled \u003c/span\u003eis 1, this parameter must be configured.\n"},"clientCaEnabled":{"type":"integer","description":"The client ca enabled.\n"},"clientCertRevocationList":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version, which indicates that the client revokes the certificate file. If the value of\u003cspan pulumi-lang-nodejs=\" clientCrlEnabled \" pulumi-lang-dotnet=\" ClientCrlEnabled \" pulumi-lang-go=\" clientCrlEnabled \" pulumi-lang-python=\" client_crl_enabled \" pulumi-lang-yaml=\" clientCrlEnabled \" pulumi-lang-java=\" clientCrlEnabled \"\u003e client_crl_enabled \u003c/span\u003eis 1, this parameter must be configured.\n"},"clientCrlEnabled":{"type":"integer","description":"The client crl enabled.\n"},"collectStatMode":{"type":"string","description":"The time at which ApsaraDB RDS collects the statistics of the new instance.\n* **Before**: ApsaraDB RDS collects the statistics of the new instance before the switchover to ensure service stability. If the original instance contains a large amount of data, the upgrade may require a long period of time.\n* **After**: ApsaraDB RDS collects the statistics of the new instance after the switchover to accelerate the upgrade. If you access tables for which no statistics are generated, the query plans that you specify may be inaccurately executed. In addition, your database service may be unavailable during peak hours.\n\n\u003e **NOTE** If you set the SwitchOver parameter to false, the value Before specifies that ApsaraDB RDS collects the statistics of the new instance before the new instance starts to process read and write requests, and the value After specifies that ApsaraDB RDS collects the statistics of the new instance after the new instance starts to process read and write requests.\n"},"connectionStringPrefix":{"type":"string","description":"The connection string prefix.\n"},"dbInstanceClass":{"type":"string","description":"The instance type of the new instance. For information, see [Primary ApsaraDB RDS instance types](https://www.alibabacloud.com/help/en/rds/product-overview/primary-apsaradb-rds-instance-types).\n"},"dbInstanceDescription":{"type":"string","description":"The db instance description.\n"},"dbInstanceStorage":{"type":"integer","description":"The storage capacity of the new instance. Unit: GB. The storage capacity increases in increments of 5 GB. For more information, see [Primary ApsaraDB RDS instance types](https://www.alibabacloud.com/help/en/rds/product-overview/primary-apsaradb-rds-instance-types).\n\n\u003e **NOTE:** The default value of this parameter is the storage capacity of the original instance.\n"},"dbInstanceStorageType":{"type":"string","description":"The type of storage media that is used for the new instance. Valid values:\n* **local_ssd**: local SSDs.\n* **cloud_ssd**: standard SSDs.\n* **cloud_essd**: enhanced SSDs (ESSDs) of performance level 1 (PL1).\n* **cloud_essd2**: ESSDs of PL2.\n* **cloud_essd3**: ESSDs of PL3.\n"},"dbName":{"type":"string","description":"The name of the database for which you want to enable TDE. Up to 50 names can be entered in a single request. If you specify multiple names, separate these names with commas (,).\n\n\u003e **NOTE:** This parameter is available and must be specified only when the instance runs SQL Server 2019 SE or an Enterprise Edition of SQL Server.\n"},"dedicatedHostGroupId":{"type":"string","description":"The ID of the dedicated cluster to which the new instance belongs. This parameter takes effect only when you create the new instance in a dedicated cluster.\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. Valid values:\n- true: delete protect.\n- false: no delete protect.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`deletionProtection`\" pulumi-lang-dotnet=\"`DeletionProtection`\" pulumi-lang-go=\"`deletionProtection`\" pulumi-lang-python=\"`deletion_protection`\" pulumi-lang-yaml=\"`deletionProtection`\" pulumi-lang-java=\"`deletionProtection`\"\u003e`deletion_protection`\u003c/span\u003e is valid only when attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, supported engine type: **MySQL**, **PostgreSQL**, **MariaDB**, **MSSQL**.\n"},"direction":{"type":"string","description":"The direction. Valid values: `Auto`, `Down`, `TempUpgrade`, `Up`.\n"},"effectiveTime":{"type":"string","description":"The effective time.\n"},"encryptionKey":{"type":"string","description":"The ID of the private key.\n\n\u003e **NOTE:** This parameter is available only when the instance runs MySQL.\n"},"engine":{"type":"string","description":"Database type. Value options: MySQL, SQLServer, PostgreSQL.\n","willReplaceOnChanges":true},"engineVersion":{"type":"string","description":"Database version. Value:\n* MySQL: **5.5/5.6/5.7/8.0**.\n* SQL Server: **2008r2/08r2_ent_ha/2012/2012_ent_ha/2012_std_ha/2012_web/2014_std_ha/2016_ent_ha/2016_std_ha/2016_web/2017_std_ha/2017_ent/2019_std_ha/2019_ent**.\n* PostgreSQL: **9.4/10.0/11.0/12.0/13.0**.\n* MariaDB: **10.3**.\n","willReplaceOnChanges":true},"forceRestart":{"type":"boolean","description":"Set it to true to make some parameter efficient when modifying them. Default to false.\n"},"haMode":{"type":"string","description":"The high availability mode. Valid values:\n* **RPO**: Data persistence is preferred. The instance preferentially ensures data reliability to minimize data loss. Use this mode if you have higher requirements on data consistency.\n* **RTO**: Instance availability is preferred. The instance restores services as soon as possible to ensure availability. Use this mode if you have higher requirements on service availability.\n"},"instanceNetworkType":{"type":"string","description":"The network type of the instance. Valid values:\n* **Classic**: Classic Network.\n* **VPC**: VPC.\n","willReplaceOnChanges":true},"maintainTime":{"type":"string","description":"The maintainable time period of the instance. Format: \u003cI\u003e HH:mm\u003c/I\u003e Z-\u003cI\u003e HH:mm\u003c/I\u003e Z(UTC time).\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsUpgradeDbInstanceParameter:RdsUpgradeDbInstanceParameter"},"description":"Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm). See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"password":{"type":"string","description":"The password of the certificate. \n\n\u003e **NOTE:** This parameter is available only when the instance runs SQL Server 2019 SE or an Enterprise Edition of SQL Server.\n"},"paymentType":{"type":"string","description":"The billing method of the new instance. Valid values: `PayAsYouGo` and `Subscription`.\n"},"pgHbaConfs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsUpgradeDbInstancePgHbaConf:RdsUpgradeDbInstancePgHbaConf"},"description":"The configuration of [AD domain](https://www.alibabacloud.com/help/en/doc-detail/349288.htm) . See \u003cspan pulumi-lang-nodejs=\"`pgHbaConf`\" pulumi-lang-dotnet=\"`PgHbaConf`\" pulumi-lang-go=\"`pgHbaConf`\" pulumi-lang-python=\"`pg_hba_conf`\" pulumi-lang-yaml=\"`pgHbaConf`\" pulumi-lang-java=\"`pgHbaConf`\"\u003e`pg_hba_conf`\u003c/span\u003e below.\n"},"port":{"type":"string","description":"The port.\n"},"privateIpAddress":{"type":"string","description":"The intranet IP address of the new instance must be within the specified vSwitch IP address range. By default, the system automatically allocates by using **VPCId** and **VSwitchId**.\n"},"privateKey":{"type":"string","description":"The file that contains the private key used for TDE.\n"},"releasedKeepPolicy":{"type":"string","description":"The released keep policy.\n"},"replicationAcl":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version, indicating the authentication method of the replication permission. It is only allowed when the public key of the client certificate authority is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`perfer`\" pulumi-lang-dotnet=\"`Perfer`\" pulumi-lang-go=\"`perfer`\" pulumi-lang-python=\"`perfer`\" pulumi-lang-yaml=\"`perfer`\" pulumi-lang-java=\"`perfer`\"\u003e`perfer`\u003c/span\u003e and `verify-ca` and `verify-full (supported by RDS PostgreSQL above 12)`.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of a RAM role. A RAM role is a virtual RAM identity that you can create within your Alibaba Cloud account. For more information, see [RAM role overview](https://www.alibabacloud.com/help/en/ram/user-guide/ram-role-overview).\n\n\u003e **NOTE:** This parameter is available only when the instance runs MySQL.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"The IP address whitelist of the instance. Separate multiple IP addresses with commas (,) and cannot be repeated. The following two formats are supported:\n* IP address form, for example: 10.23.12.24.\n* CIDR format, for example, 10.23.12.0/24 (no Inter-Domain Routing, 24 indicates the length of the prefix in the address, ranging from 1 to 32).\n\n\u003e **NOTE:** each instance can add up to 1000 IP addresses or IP segments, that is, the total number of IP addresses or IP segments in all IP whitelist groups cannot exceed 1000. When there are more IP addresses, it is recommended to merge them into IP segments, for example, 10.23.12.0/24.\n"},"serverCert":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the content of the server certificate. If the CAType value is custom, this parameter must be configured.\n"},"serverKey":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the private key of the server certificate. If the value of CAType is custom, this parameter must be configured.\n"},"sourceBiz":{"type":"string","description":"The source biz.\n"},"sourceDbInstanceId":{"type":"string","description":"The source db instance id.\n","willReplaceOnChanges":true},"sslEnabled":{"type":"integer","description":"Enable or disable SSL. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"switchOver":{"type":"string","description":"Specifies whether ApsaraDB RDS automatically switches your workloads over to the new instance after data is migrated to the new instance. Valid values:\n* **true**: ApsaraDB RDS automatically switches workloads over to the new instance. If you set this parameter to true, you must take note of the following information:\n* After the switchover is complete, you cannot roll your workloads back to the original instance. Proceed with caution.\n* During the switchover, the original instance processes only read requests. You must perform the switchover during off-peak hours.\n* If read-only instances are attached to the original instance, you can set this parameter only to false. In this case, the read-only instances that are attached to the original instance cannot be cloned. After the upgrade is complete, you must create read-only instances for the new instance.\n* **false**: ApsaraDB RDS does not automatically switch your workloads over to the new instance. Before you perform an upgrade, we recommend that you set this parameter to false to test whether the new major engine version is compatible with your workloads. If you set this parameter to false, you must take note of the following information:\n* The data migration does not interrupt your workloads on the original instance.\n* After data is migrated to the new instance, you must update the endpoint configuration on your application. This update requires you to replace the endpoint of the original instance with the endpoint of the new instance. For more information about how to view the endpoint of an instance, see [View and change the internal and public endpoints and port numbers of an ApsaraDB RDS for PostgreSQL instance](https://www.alibabacloud.com/help/doc-detail/96788.htm).\n"},"switchTime":{"type":"string","description":"The time at which you want to apply the specification changes. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"switchTimeMode":{"type":"string","description":"The time at which ApsaraDB RDS switches your workloads over to the new instance. This parameter is used together with the SwitchOver parameter and takes effect only when you set the SwitchOver parameter to true. Valid values:\n* **Immediate**: After data is migrated to the new instance, ApsaraDB RDS immediately switches your workloads over to the new instance.\n* **MaintainTime**: After data is migrated to the new instance, ApsaraDB RDS switches your workloads over to the new instance during the maintenance window that you specify. You can call the [ModifyDBInstanceMaintainTime](https://www.alibabacloud.com/help/doc-detail/26249.htm) operation to change the maintenance window of an instance.\n"},"syncMode":{"type":"string","description":"[The data replication mode](https://www.alibabacloud.com/help/doc-detail/96055.htm). Valid values:\n* **Sync**: strong synchronization.\n* **Semi-sync**: Semi-synchronous.\n* **Async**: asynchronous.\n\n\u003e **NOTE:** SQL Server 2017 cluster version is currently not supported.\n"},"targetMajorVersion":{"type":"string","description":"The major engine version of the new instance. The value of this parameter must be the major engine version on which an upgrade check is performed.\n\n\u003e **NOTE** You can call the [UpgradeDBInstanceMajorVersionPrecheck](https://www.alibabacloud.com/help/doc-detail/330050.htm) operation to perform an upgrade check on a major engine version.\n","willReplaceOnChanges":true},"tcpConnectionType":{"type":"string","description":"The availability check method of the instance. Valid values:\n- **SHORT**: Alibaba Cloud uses short-lived connections to check the availability of the instance.\n- **LONG**: Alibaba Cloud uses persistent connections to check the availability of the instance.\n"},"tdeStatus":{"type":"string","description":"Specifies whether to enable TDE. Valid values: `Enabled` and `Disabled`.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the new instance belongs.\n\n\u003e **NOTE:** Make sure that the VPC resides in the specified region.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch associated with the specified VPC.\n\n\u003e **NOTE:** Make sure that the vSwitch belongs to the specified VPC and region.\n"},"zoneId":{"type":"string","description":"The ID of the zone to which the new instance belongs. You can call the [DescribeRegions](https://www.alibabacloud.com/help/en/rds/developer-reference/api-rds-2014-08-15-describeregions) operation to query the most recent region list.\n\n\u003e **NOTE:** The default value of this parameter is the ID of the zone to which the original instance belongs.\n","willReplaceOnChanges":true},"zoneIdSlave1":{"type":"string","description":"The ID of the zone to which the secondary instance of the new instance belongs. You can specify this parameter only when the original instance runs RDS High-availability Edition. You can select a zone that belongs to the region where the original instance resides. You can call the [DescribeRegions](https://www.alibabacloud.com/help/en/rds/developer-reference/api-rds-2014-08-15-describeregions) operation to query zone IDs.\n","willReplaceOnChanges":true}},"requiredInputs":["collectStatMode","dbInstanceClass","dbInstanceStorage","dbInstanceStorageType","instanceNetworkType","paymentType","sourceDbInstanceId","switchOver","targetMajorVersion"],"stateInputs":{"description":"Input properties used for looking up and filtering RdsUpgradeDbInstance resources.\n","properties":{"acl":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. This parameter indicates the authentication method. It is allowed only when the public key of the client certificate authority is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`perfer`\" pulumi-lang-dotnet=\"`Perfer`\" pulumi-lang-go=\"`perfer`\" pulumi-lang-python=\"`perfer`\" pulumi-lang-yaml=\"`perfer`\" pulumi-lang-java=\"`perfer`\"\u003e`perfer`\u003c/span\u003e and `verify-ca` and `verify-full (supported by RDS PostgreSQL above 12)`.\n"},"autoUpgradeMinorVersion":{"type":"string","description":"How to upgrade the minor version of the instance. Valid values:\n* **Auto**: automatically upgrade the minor version.\n* **Manual**: It is not automatically upgraded. It is only mandatory when the current version is offline.\n"},"caType":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the certificate type. When the value of\u003cspan pulumi-lang-nodejs=\" sslAction \" pulumi-lang-dotnet=\" SslAction \" pulumi-lang-go=\" sslAction \" pulumi-lang-python=\" ssl_action \" pulumi-lang-yaml=\" sslAction \" pulumi-lang-java=\" sslAction \"\u003e ssl_action \u003c/span\u003eis Open, the default value of this parameter is aliyun. Value range:\n* **aliyun**: using cloud certificates.\n* **custom**: use a custom certificate. Valid values: \u003cspan pulumi-lang-nodejs=\"`aliyun`\" pulumi-lang-dotnet=\"`Aliyun`\" pulumi-lang-go=\"`aliyun`\" pulumi-lang-python=\"`aliyun`\" pulumi-lang-yaml=\"`aliyun`\" pulumi-lang-java=\"`aliyun`\"\u003e`aliyun`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"certificate":{"type":"string","description":"The file that contains the certificate used for TDE.\n"},"clientCaCert":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the public key of the client certification authority. If the value of\u003cspan pulumi-lang-nodejs=\" clientCaEnabled \" pulumi-lang-dotnet=\" ClientCaEnabled \" pulumi-lang-go=\" clientCaEnabled \" pulumi-lang-python=\" client_ca_enabled \" pulumi-lang-yaml=\" clientCaEnabled \" pulumi-lang-java=\" clientCaEnabled \"\u003e client_ca_enabled \u003c/span\u003eis 1, this parameter must be configured.\n"},"clientCaEnabled":{"type":"integer","description":"The client ca enabled.\n"},"clientCertRevocationList":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version, which indicates that the client revokes the certificate file. If the value of\u003cspan pulumi-lang-nodejs=\" clientCrlEnabled \" pulumi-lang-dotnet=\" ClientCrlEnabled \" pulumi-lang-go=\" clientCrlEnabled \" pulumi-lang-python=\" client_crl_enabled \" pulumi-lang-yaml=\" clientCrlEnabled \" pulumi-lang-java=\" clientCrlEnabled \"\u003e client_crl_enabled \u003c/span\u003eis 1, this parameter must be configured.\n"},"clientCrlEnabled":{"type":"integer","description":"The client crl enabled.\n"},"collectStatMode":{"type":"string","description":"The time at which ApsaraDB RDS collects the statistics of the new instance.\n* **Before**: ApsaraDB RDS collects the statistics of the new instance before the switchover to ensure service stability. If the original instance contains a large amount of data, the upgrade may require a long period of time.\n* **After**: ApsaraDB RDS collects the statistics of the new instance after the switchover to accelerate the upgrade. If you access tables for which no statistics are generated, the query plans that you specify may be inaccurately executed. In addition, your database service may be unavailable during peak hours.\n\n\u003e **NOTE** If you set the SwitchOver parameter to false, the value Before specifies that ApsaraDB RDS collects the statistics of the new instance before the new instance starts to process read and write requests, and the value After specifies that ApsaraDB RDS collects the statistics of the new instance after the new instance starts to process read and write requests.\n"},"connectionString":{"type":"string","description":"The database connection address.\n"},"connectionStringPrefix":{"type":"string","description":"The connection string prefix.\n"},"dbInstanceClass":{"type":"string","description":"The instance type of the new instance. For information, see [Primary ApsaraDB RDS instance types](https://www.alibabacloud.com/help/en/rds/product-overview/primary-apsaradb-rds-instance-types).\n"},"dbInstanceDescription":{"type":"string","description":"The db instance description.\n"},"dbInstanceStorage":{"type":"integer","description":"The storage capacity of the new instance. Unit: GB. The storage capacity increases in increments of 5 GB. For more information, see [Primary ApsaraDB RDS instance types](https://www.alibabacloud.com/help/en/rds/product-overview/primary-apsaradb-rds-instance-types).\n\n\u003e **NOTE:** The default value of this parameter is the storage capacity of the original instance.\n"},"dbInstanceStorageType":{"type":"string","description":"The type of storage media that is used for the new instance. Valid values:\n* **local_ssd**: local SSDs.\n* **cloud_ssd**: standard SSDs.\n* **cloud_essd**: enhanced SSDs (ESSDs) of performance level 1 (PL1).\n* **cloud_essd2**: ESSDs of PL2.\n* **cloud_essd3**: ESSDs of PL3.\n"},"dbName":{"type":"string","description":"The name of the database for which you want to enable TDE. Up to 50 names can be entered in a single request. If you specify multiple names, separate these names with commas (,).\n\n\u003e **NOTE:** This parameter is available and must be specified only when the instance runs SQL Server 2019 SE or an Enterprise Edition of SQL Server.\n"},"dedicatedHostGroupId":{"type":"string","description":"The ID of the dedicated cluster to which the new instance belongs. This parameter takes effect only when you create the new instance in a dedicated cluster.\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. Valid values:\n- true: delete protect.\n- false: no delete protect.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`deletionProtection`\" pulumi-lang-dotnet=\"`DeletionProtection`\" pulumi-lang-go=\"`deletionProtection`\" pulumi-lang-python=\"`deletion_protection`\" pulumi-lang-yaml=\"`deletionProtection`\" pulumi-lang-java=\"`deletionProtection`\"\u003e`deletion_protection`\u003c/span\u003e is valid only when attribute \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e is set to `PayAsYouGo`, supported engine type: **MySQL**, **PostgreSQL**, **MariaDB**, **MSSQL**.\n"},"direction":{"type":"string","description":"The direction. Valid values: `Auto`, `Down`, `TempUpgrade`, `Up`.\n"},"effectiveTime":{"type":"string","description":"The effective time.\n"},"encryptionKey":{"type":"string","description":"The ID of the private key.\n\n\u003e **NOTE:** This parameter is available only when the instance runs MySQL.\n"},"engine":{"type":"string","description":"Database type. Value options: MySQL, SQLServer, PostgreSQL.\n","willReplaceOnChanges":true},"engineVersion":{"type":"string","description":"Database version. Value:\n* MySQL: **5.5/5.6/5.7/8.0**.\n* SQL Server: **2008r2/08r2_ent_ha/2012/2012_ent_ha/2012_std_ha/2012_web/2014_std_ha/2016_ent_ha/2016_std_ha/2016_web/2017_std_ha/2017_ent/2019_std_ha/2019_ent**.\n* PostgreSQL: **9.4/10.0/11.0/12.0/13.0**.\n* MariaDB: **10.3**.\n","willReplaceOnChanges":true},"forceRestart":{"type":"boolean","description":"Set it to true to make some parameter efficient when modifying them. Default to false.\n"},"haMode":{"type":"string","description":"The high availability mode. Valid values:\n* **RPO**: Data persistence is preferred. The instance preferentially ensures data reliability to minimize data loss. Use this mode if you have higher requirements on data consistency.\n* **RTO**: Instance availability is preferred. The instance restores services as soon as possible to ensure availability. Use this mode if you have higher requirements on service availability.\n"},"instanceNetworkType":{"type":"string","description":"The network type of the instance. Valid values:\n* **Classic**: Classic Network.\n* **VPC**: VPC.\n","willReplaceOnChanges":true},"maintainTime":{"type":"string","description":"The maintainable time period of the instance. Format: \u003cI\u003e HH:mm\u003c/I\u003e Z-\u003cI\u003e HH:mm\u003c/I\u003e Z(UTC time).\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsUpgradeDbInstanceParameter:RdsUpgradeDbInstanceParameter"},"description":"Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm). See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"password":{"type":"string","description":"The password of the certificate. \n\n\u003e **NOTE:** This parameter is available only when the instance runs SQL Server 2019 SE or an Enterprise Edition of SQL Server.\n"},"paymentType":{"type":"string","description":"The billing method of the new instance. Valid values: `PayAsYouGo` and `Subscription`.\n"},"pgHbaConfs":{"type":"array","items":{"$ref":"#/types/alicloud:rds/RdsUpgradeDbInstancePgHbaConf:RdsUpgradeDbInstancePgHbaConf"},"description":"The configuration of [AD domain](https://www.alibabacloud.com/help/en/doc-detail/349288.htm) . See \u003cspan pulumi-lang-nodejs=\"`pgHbaConf`\" pulumi-lang-dotnet=\"`PgHbaConf`\" pulumi-lang-go=\"`pgHbaConf`\" pulumi-lang-python=\"`pg_hba_conf`\" pulumi-lang-yaml=\"`pgHbaConf`\" pulumi-lang-java=\"`pgHbaConf`\"\u003e`pg_hba_conf`\u003c/span\u003e below.\n"},"port":{"type":"string","description":"The port.\n"},"privateIpAddress":{"type":"string","description":"The intranet IP address of the new instance must be within the specified vSwitch IP address range. By default, the system automatically allocates by using **VPCId** and **VSwitchId**.\n"},"privateKey":{"type":"string","description":"The file that contains the private key used for TDE.\n"},"releasedKeepPolicy":{"type":"string","description":"The released keep policy.\n"},"replicationAcl":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version, indicating the authentication method of the replication permission. It is only allowed when the public key of the client certificate authority is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`cert`\" pulumi-lang-dotnet=\"`Cert`\" pulumi-lang-go=\"`cert`\" pulumi-lang-python=\"`cert`\" pulumi-lang-yaml=\"`cert`\" pulumi-lang-java=\"`cert`\"\u003e`cert`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`perfer`\" pulumi-lang-dotnet=\"`Perfer`\" pulumi-lang-go=\"`perfer`\" pulumi-lang-python=\"`perfer`\" pulumi-lang-yaml=\"`perfer`\" pulumi-lang-java=\"`perfer`\"\u003e`perfer`\u003c/span\u003e and `verify-ca` and `verify-full (supported by RDS PostgreSQL above 12)`.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of a RAM role. A RAM role is a virtual RAM identity that you can create within your Alibaba Cloud account. For more information, see [RAM role overview](https://www.alibabacloud.com/help/en/ram/user-guide/ram-role-overview).\n\n\u003e **NOTE:** This parameter is available only when the instance runs MySQL.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"The IP address whitelist of the instance. Separate multiple IP addresses with commas (,) and cannot be repeated. The following two formats are supported:\n* IP address form, for example: 10.23.12.24.\n* CIDR format, for example, 10.23.12.0/24 (no Inter-Domain Routing, 24 indicates the length of the prefix in the address, ranging from 1 to 32).\n\n\u003e **NOTE:** each instance can add up to 1000 IP addresses or IP segments, that is, the total number of IP addresses or IP segments in all IP whitelist groups cannot exceed 1000. When there are more IP addresses, it is recommended to merge them into IP segments, for example, 10.23.12.0/24.\n"},"serverCert":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the content of the server certificate. If the CAType value is custom, this parameter must be configured.\n"},"serverKey":{"type":"string","description":"This parameter is only supported by the RDS PostgreSQL cloud disk version. It indicates the private key of the server certificate. If the value of CAType is custom, this parameter must be configured.\n"},"sourceBiz":{"type":"string","description":"The source biz.\n"},"sourceDbInstanceId":{"type":"string","description":"The source db instance id.\n","willReplaceOnChanges":true},"sslEnabled":{"type":"integer","description":"Enable or disable SSL. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"switchOver":{"type":"string","description":"Specifies whether ApsaraDB RDS automatically switches your workloads over to the new instance after data is migrated to the new instance. Valid values:\n* **true**: ApsaraDB RDS automatically switches workloads over to the new instance. If you set this parameter to true, you must take note of the following information:\n* After the switchover is complete, you cannot roll your workloads back to the original instance. Proceed with caution.\n* During the switchover, the original instance processes only read requests. You must perform the switchover during off-peak hours.\n* If read-only instances are attached to the original instance, you can set this parameter only to false. In this case, the read-only instances that are attached to the original instance cannot be cloned. After the upgrade is complete, you must create read-only instances for the new instance.\n* **false**: ApsaraDB RDS does not automatically switch your workloads over to the new instance. Before you perform an upgrade, we recommend that you set this parameter to false to test whether the new major engine version is compatible with your workloads. If you set this parameter to false, you must take note of the following information:\n* The data migration does not interrupt your workloads on the original instance.\n* After data is migrated to the new instance, you must update the endpoint configuration on your application. This update requires you to replace the endpoint of the original instance with the endpoint of the new instance. For more information about how to view the endpoint of an instance, see [View and change the internal and public endpoints and port numbers of an ApsaraDB RDS for PostgreSQL instance](https://www.alibabacloud.com/help/doc-detail/96788.htm).\n"},"switchTime":{"type":"string","description":"The time at which you want to apply the specification changes. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"switchTimeMode":{"type":"string","description":"The time at which ApsaraDB RDS switches your workloads over to the new instance. This parameter is used together with the SwitchOver parameter and takes effect only when you set the SwitchOver parameter to true. Valid values:\n* **Immediate**: After data is migrated to the new instance, ApsaraDB RDS immediately switches your workloads over to the new instance.\n* **MaintainTime**: After data is migrated to the new instance, ApsaraDB RDS switches your workloads over to the new instance during the maintenance window that you specify. You can call the [ModifyDBInstanceMaintainTime](https://www.alibabacloud.com/help/doc-detail/26249.htm) operation to change the maintenance window of an instance.\n"},"syncMode":{"type":"string","description":"[The data replication mode](https://www.alibabacloud.com/help/doc-detail/96055.htm). Valid values:\n* **Sync**: strong synchronization.\n* **Semi-sync**: Semi-synchronous.\n* **Async**: asynchronous.\n\n\u003e **NOTE:** SQL Server 2017 cluster version is currently not supported.\n"},"targetMajorVersion":{"type":"string","description":"The major engine version of the new instance. The value of this parameter must be the major engine version on which an upgrade check is performed.\n\n\u003e **NOTE** You can call the [UpgradeDBInstanceMajorVersionPrecheck](https://www.alibabacloud.com/help/doc-detail/330050.htm) operation to perform an upgrade check on a major engine version.\n","willReplaceOnChanges":true},"tcpConnectionType":{"type":"string","description":"The availability check method of the instance. Valid values:\n- **SHORT**: Alibaba Cloud uses short-lived connections to check the availability of the instance.\n- **LONG**: Alibaba Cloud uses persistent connections to check the availability of the instance.\n"},"tdeStatus":{"type":"string","description":"Specifies whether to enable TDE. Valid values: `Enabled` and `Disabled`.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the new instance belongs.\n\n\u003e **NOTE:** Make sure that the VPC resides in the specified region.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch associated with the specified VPC.\n\n\u003e **NOTE:** Make sure that the vSwitch belongs to the specified VPC and region.\n"},"zoneId":{"type":"string","description":"The ID of the zone to which the new instance belongs. You can call the [DescribeRegions](https://www.alibabacloud.com/help/en/rds/developer-reference/api-rds-2014-08-15-describeregions) operation to query the most recent region list.\n\n\u003e **NOTE:** The default value of this parameter is the ID of the zone to which the original instance belongs.\n","willReplaceOnChanges":true},"zoneIdSlave1":{"type":"string","description":"The ID of the zone to which the secondary instance of the new instance belongs. You can specify this parameter only when the original instance runs RDS High-availability Edition. You can select a zone that belongs to the region where the original instance resides. You can call the [DescribeRegions](https://www.alibabacloud.com/help/en/rds/developer-reference/api-rds-2014-08-15-describeregions) operation to query zone IDs.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rds/readOnlyInstance:ReadOnlyInstance":{"description":"Provides an RDS readonly instance resource, see [What is DB Readonly Instance](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/api-rds-2014-08-15-createreadonlydbinstance).\n\n\u003e **NOTE:** Available since v1.52.1.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst example = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vpcId: exampleNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: name,\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.rds.Instance(\"example\", {\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n    instanceType: \"rds.mysql.t1.small\",\n    instanceStorage: 20,\n    instanceChargeType: \"Postpaid\",\n    instanceName: name,\n    vswitchId: exampleSwitch.id,\n    securityIps: [\n        \"10.168.1.12\",\n        \"100.69.7.112\",\n    ],\n});\nconst exampleReadOnlyInstance = new alicloud.rds.ReadOnlyInstance(\"example\", {\n    zoneId: exampleInstance.zoneId,\n    masterDbInstanceId: exampleInstance.id,\n    engineVersion: exampleInstance.engineVersion,\n    instanceStorage: exampleInstance.instanceStorage,\n    instanceType: exampleInstance.instanceType,\n    instanceName: `${name}readonly`,\n    vswitchId: exampleSwitch.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nexample = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"5.6\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vpc_id=example_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=example.zones[0].id,\n    vswitch_name=name)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=name,\n    vpc_id=example_network.id)\nexample_instance = alicloud.rds.Instance(\"example\",\n    engine=\"MySQL\",\n    engine_version=\"5.6\",\n    instance_type=\"rds.mysql.t1.small\",\n    instance_storage=20,\n    instance_charge_type=\"Postpaid\",\n    instance_name=name,\n    vswitch_id=example_switch.id,\n    security_ips=[\n        \"10.168.1.12\",\n        \"100.69.7.112\",\n    ])\nexample_read_only_instance = alicloud.rds.ReadOnlyInstance(\"example\",\n    zone_id=example_instance.zone_id,\n    master_db_instance_id=example_instance.id,\n    engine_version=example_instance.engine_version,\n    instance_storage=example_instance.instance_storage,\n    instance_type=example_instance.instance_type,\n    instance_name=f\"{name}readonly\",\n    vswitch_id=example_switch.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var example = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VpcId = exampleNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = name,\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = name,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Rds.Instance(\"example\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n        InstanceType = \"rds.mysql.t1.small\",\n        InstanceStorage = 20,\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = name,\n        VswitchId = exampleSwitch.Id,\n        SecurityIps = new[]\n        {\n            \"10.168.1.12\",\n            \"100.69.7.112\",\n        },\n    });\n\n    var exampleReadOnlyInstance = new AliCloud.Rds.ReadOnlyInstance(\"example\", new()\n    {\n        ZoneId = exampleInstance.ZoneId,\n        MasterDbInstanceId = exampleInstance.Id,\n        EngineVersion = exampleInstance.EngineVersion,\n        InstanceStorage = exampleInstance.InstanceStorage,\n        InstanceType = exampleInstance.InstanceType,\n        InstanceName = $\"{name}readonly\",\n        VswitchId = exampleSwitch.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:        pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion: pulumi.StringRef(\"5.6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := rds.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\n\t\t\tEngine:             pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:      pulumi.String(\"5.6\"),\n\t\t\tInstanceType:       pulumi.String(\"rds.mysql.t1.small\"),\n\t\t\tInstanceStorage:    pulumi.Int(20),\n\t\t\tInstanceChargeType: pulumi.String(\"Postpaid\"),\n\t\t\tInstanceName:       pulumi.String(name),\n\t\t\tVswitchId:          exampleSwitch.ID(),\n\t\t\tSecurityIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.168.1.12\"),\n\t\t\t\tpulumi.String(\"100.69.7.112\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewReadOnlyInstance(ctx, \"example\", \u0026rds.ReadOnlyInstanceArgs{\n\t\t\tZoneId:             exampleInstance.ZoneId,\n\t\t\tMasterDbInstanceId: exampleInstance.ID(),\n\t\t\tEngineVersion:      exampleInstance.EngineVersion,\n\t\t\tInstanceStorage:    exampleInstance.InstanceStorage,\n\t\t\tInstanceType:       exampleInstance.InstanceType,\n\t\t\tInstanceName:       pulumi.Sprintf(\"%vreadonly\", name),\n\t\t\tVswitchId:          exampleSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.ReadOnlyInstance;\nimport com.pulumi.alicloud.rds.ReadOnlyInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var example = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vpcId(exampleNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(example.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .instanceType(\"rds.mysql.t1.small\")\n            .instanceStorage(20)\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(name)\n            .vswitchId(exampleSwitch.id())\n            .securityIps(            \n                \"10.168.1.12\",\n                \"100.69.7.112\")\n            .build());\n\n        var exampleReadOnlyInstance = new ReadOnlyInstance(\"exampleReadOnlyInstance\", ReadOnlyInstanceArgs.builder()\n            .zoneId(exampleInstance.zoneId())\n            .masterDbInstanceId(exampleInstance.id())\n            .engineVersion(exampleInstance.engineVersion())\n            .instanceStorage(exampleInstance.instanceStorage())\n            .instanceType(exampleInstance.instanceType())\n            .instanceName(String.format(\"%sreadonly\", name))\n            .vswitchId(exampleSwitch.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vpcId: ${exampleNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${example.zones[0].id}\n      vswitchName: ${name}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: ${name}\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:rds:Instance\n    name: example\n    properties:\n      engine: MySQL\n      engineVersion: '5.6'\n      instanceType: rds.mysql.t1.small\n      instanceStorage: '20'\n      instanceChargeType: Postpaid\n      instanceName: ${name}\n      vswitchId: ${exampleSwitch.id}\n      securityIps:\n        - 10.168.1.12\n        - 100.69.7.112\n  exampleReadOnlyInstance:\n    type: alicloud:rds:ReadOnlyInstance\n    name: example\n    properties:\n      zoneId: ${exampleInstance.zoneId}\n      masterDbInstanceId: ${exampleInstance.id}\n      engineVersion: ${exampleInstance.engineVersion}\n      instanceStorage: ${exampleInstance.instanceStorage}\n      instanceType: ${exampleInstance.instanceType}\n      instanceName: ${name}readonly\n      vswitchId: ${exampleSwitch.id}\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '5.6'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS readonly instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/readOnlyInstance:ReadOnlyInstance example rm-abc12345678\n```\n\n","properties":{"acl":{"type":"string","description":"The method that is used to verify the identities of clients. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"autoRenew":{"type":"boolean","description":"Whether to renewal a DB instance automatically or not. It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an instance, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Valid value:[1~12], Default to 1.\n"},"caType":{"type":"string","description":"The type of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the SSLEnabled parameter to 1, the default value of this parameter is aliyun. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`. Value range:\n- aliyun: a cloud certificate\n- custom: a custom certificate\n"},"clientCaCert":{"type":"string","description":"The public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCAEbabled parameter to 1, you must also specify this parameter. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`.\n"},"clientCaEnabled":{"type":"integer","description":"Specifies whether to enable the public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`. Valid values:\n- 1: enables the public key\n- 0: disables the public key\n"},"clientCertRevocationList":{"type":"string","description":"The CRL that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCrlEnabled parameter to 1, you must also specify this parameter. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`.\n"},"clientCrlEnabled":{"type":"integer","description":"Specifies whether to enable a certificate revocation list (CRL) that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`. Valid values:\n- 1: enables the CRL\n- 0: disables the CRL\n"},"connectionString":{"type":"string","description":"RDS database connection string.\n"},"dbInstanceIpArrayAttribute":{"type":"string","description":"The attribute of the IP address whitelist. By default, this parameter is empty.\n\n\u003e **NOTE:** The IP address whitelists that have the hidden attribute are not displayed in the ApsaraDB RDS console. These IP address whitelists are used to access Alibaba Cloud services, such as Data Transmission Service (DTS).\n"},"dbInstanceIpArrayName":{"type":"string","description":"The name of the IP address whitelist. Default value: Default.\n\n\u003e **NOTE:** A maximum of 200 IP address whitelists can be configured for each instance.\n"},"dbInstanceStorageType":{"type":"string","description":"The storage type of the instance. Valid values:\n- local_ssd: specifies to use local SSDs. This value is recommended.\n- cloud_ssd: specifies to use standard SSDs.\n- cloud_essd: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd2: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd3: specifies to use enhanced SSDs (ESSDs).\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. Valid values:\n- true: delete protect.\n- false: no delete protect.\n"},"direction":{"type":"string","description":"The instance configuration type. Valid values:\n- Up\n- Down\n- TempUpgrade\n- Serverless\n"},"effectiveTime":{"type":"string","description":"The method to change.  Default value: Immediate. Valid values:\n- Immediate: The change immediately takes effect.\n- MaintainTime: The change takes effect during the specified maintenance window. For more information, see ModifyDBInstanceMaintainTime.\n"},"engine":{"type":"string","description":"Database type.\n"},"engineVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.\n"},"forceRestart":{"type":"boolean","description":"Set it to true to make some parameter efficient when modifying them. Default to false.\n"},"instanceChargeType":{"type":"string","description":"Valid values are `Prepaid`, `Postpaid`, Default to `Postpaid`. The interval between the two conversion operations must be greater than 15 minutes. Only when this parameter is `Postpaid`, the instance can be released.\n"},"instanceName":{"type":"string","description":"The name of DB instance. It a string of 2 to 256 characters.\n"},"instanceStorage":{"type":"integer","description":"User-defined DB instance storage space. Value range: [5, 2000] for MySQL/SQL Server HA dual node edition. Increase progressively at a rate of 5 GB. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).\n"},"instanceType":{"type":"string","description":"DB Instance type. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).\n"},"masterDbInstanceId":{"type":"string","description":"ID of the master instance.\n"},"modifyMode":{"type":"string","description":"The method that is used to modify the IP address whitelist. Default value: Cover. Valid values:\n- Cover: Use the value of the SecurityIps parameter to overwrite the existing entries in the IP address whitelist.\n- Append: Add the IP addresses and CIDR blocks that are specified in the SecurityIps parameter to the IP address whitelist.\n- Delete: Delete IP addresses and CIDR blocks that are specified in the SecurityIps parameter from the IP address whitelist. You must retain at least one IP address or CIDR block.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:rds/ReadOnlyInstanceParameter:ReadOnlyInstanceParameter"},"description":"Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm). See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"period":{"type":"integer","description":"The duration that you will buy DB instance (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Valid values: [1~9], 12, 24, 36.\n"},"port":{"type":"string","description":"RDS database connection port.\n"},"replicationAcl":{"type":"string","description":"The method that is used to verify the replication permission. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n\u003e **NOTE:** Because of data backup and migration, change DB instance type and storage would cost 15~20 minutes. Please make full preparation before changing them.\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the DB read-only instance belongs.\n"},"securityIpType":{"type":"string","description":"The type of IP address in the IP address whitelist.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"serverCert":{"type":"string","description":"The content of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`.\n"},"serverKey":{"type":"string","description":"The private key of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`.\n"},"sslEnabled":{"type":"integer","description":"Specifies whether to enable or disable SSL encryption. Valid values:\n- 1: enables SSL encryption\n- 0: disables SSL encryption\n"},"switchTime":{"type":"string","description":"The specific point in time when you want to perform the update. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. The time must be in UTC.\n\n\u003e **NOTE:** This parameter takes effect only when you set the UpgradeTime parameter to SpecifyTime.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"targetMinorVersion":{"type":"string","description":"The minor engine version to which you want to update the instance. If you do not specify this parameter, the instance is updated to the latest minor engine version. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. You must specify the minor engine version in one of the following formats:\n- PostgreSQL: rds_postgres_\u003cMajor engine version\u003e00_\u003cMinor engine version\u003e. Example: rds_postgres_1200_20200830.\n- MySQL: \u003cRDS edition\u003e_\u003cMinor engine version\u003e. Examples: rds_20200229, xcluster_20200229, and xcluster80_20200229. The following RDS editions are supported:\n- rds: The instance runs RDS Basic or High-availability Edition.\n- xcluster: The instance runs MySQL 5.7 on RDS Enterprise Edition.\n- xcluster80: The instance runs MySQL 8.0 on RDS Enterprise Edition.\n- SQLServer: \u003cMinor engine version\u003e. Example: 15.0.4073.23.\n\n\u003e **NOTE:** For more information about minor engine versions, see Release notes of minor AliPG versions, Release notes of minor AliSQL versions, and Release notes of minor engine versions of ApsaraDB RDS for SQL Server.\n"},"upgradeDbInstanceKernelVersion":{"type":"boolean","description":"Whether to upgrade a minor version of the kernel. Valid values:\n- true: upgrade\n- false: not to upgrade\n"},"upgradeTime":{"type":"string","description":"The method to update the minor engine version. Default value: Immediate. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. Valid values:\n- Immediate: The minor engine version is immediately updated.\n- MaintainTime: The minor engine version is updated during the maintenance window. For more information about how to change the maintenance window, see ModifyDBInstanceMaintainTime.\n- SpecifyTime: The minor engine version is updated at the point in time you specify.\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC.\n"},"whitelistNetworkType":{"type":"string","description":"The network type of the IP address whitelist. Default value: MIX. Valid values:\n- Classic: classic network in enhanced whitelist mode\n- VPC: virtual private cloud (VPC) in enhanced whitelist mode\n- MIX: standard whitelist mode\n\u003e **NOTE:** In standard whitelist mode, IP addresses and CIDR blocks can be added only to the default IP address whitelist. In enhanced whitelist mode, IP addresses and CIDR blocks can be added to both IP address whitelists of the classic network type and those of the VPC network type.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB instance.\n"}},"required":["acl","caType","connectionString","dbInstanceStorageType","engine","engineVersion","instanceName","instanceStorage","instanceType","masterDbInstanceId","parameters","port","replicationAcl","resourceGroupId","securityIps","serverCert","serverKey","sslEnabled","targetMinorVersion","zoneId"],"inputProperties":{"acl":{"type":"string","description":"The method that is used to verify the identities of clients. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"autoRenew":{"type":"boolean","description":"Whether to renewal a DB instance automatically or not. It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an instance, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Valid value:[1~12], Default to 1.\n"},"caType":{"type":"string","description":"The type of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the SSLEnabled parameter to 1, the default value of this parameter is aliyun. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`. Value range:\n- aliyun: a cloud certificate\n- custom: a custom certificate\n"},"clientCaCert":{"type":"string","description":"The public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCAEbabled parameter to 1, you must also specify this parameter. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`.\n"},"clientCaEnabled":{"type":"integer","description":"Specifies whether to enable the public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`. Valid values:\n- 1: enables the public key\n- 0: disables the public key\n"},"clientCertRevocationList":{"type":"string","description":"The CRL that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCrlEnabled parameter to 1, you must also specify this parameter. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`.\n"},"clientCrlEnabled":{"type":"integer","description":"Specifies whether to enable a certificate revocation list (CRL) that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`. Valid values:\n- 1: enables the CRL\n- 0: disables the CRL\n"},"dbInstanceIpArrayAttribute":{"type":"string","description":"The attribute of the IP address whitelist. By default, this parameter is empty.\n\n\u003e **NOTE:** The IP address whitelists that have the hidden attribute are not displayed in the ApsaraDB RDS console. These IP address whitelists are used to access Alibaba Cloud services, such as Data Transmission Service (DTS).\n"},"dbInstanceIpArrayName":{"type":"string","description":"The name of the IP address whitelist. Default value: Default.\n\n\u003e **NOTE:** A maximum of 200 IP address whitelists can be configured for each instance.\n"},"dbInstanceStorageType":{"type":"string","description":"The storage type of the instance. Valid values:\n- local_ssd: specifies to use local SSDs. This value is recommended.\n- cloud_ssd: specifies to use standard SSDs.\n- cloud_essd: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd2: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd3: specifies to use enhanced SSDs (ESSDs).\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. Valid values:\n- true: delete protect.\n- false: no delete protect.\n"},"direction":{"type":"string","description":"The instance configuration type. Valid values:\n- Up\n- Down\n- TempUpgrade\n- Serverless\n"},"effectiveTime":{"type":"string","description":"The method to change.  Default value: Immediate. Valid values:\n- Immediate: The change immediately takes effect.\n- MaintainTime: The change takes effect during the specified maintenance window. For more information, see ModifyDBInstanceMaintainTime.\n"},"engineVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.\n","willReplaceOnChanges":true},"forceRestart":{"type":"boolean","description":"Set it to true to make some parameter efficient when modifying them. Default to false.\n"},"instanceChargeType":{"type":"string","description":"Valid values are `Prepaid`, `Postpaid`, Default to `Postpaid`. The interval between the two conversion operations must be greater than 15 minutes. Only when this parameter is `Postpaid`, the instance can be released.\n"},"instanceName":{"type":"string","description":"The name of DB instance. It a string of 2 to 256 characters.\n"},"instanceStorage":{"type":"integer","description":"User-defined DB instance storage space. Value range: [5, 2000] for MySQL/SQL Server HA dual node edition. Increase progressively at a rate of 5 GB. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).\n"},"instanceType":{"type":"string","description":"DB Instance type. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).\n"},"masterDbInstanceId":{"type":"string","description":"ID of the master instance.\n","willReplaceOnChanges":true},"modifyMode":{"type":"string","description":"The method that is used to modify the IP address whitelist. Default value: Cover. Valid values:\n- Cover: Use the value of the SecurityIps parameter to overwrite the existing entries in the IP address whitelist.\n- Append: Add the IP addresses and CIDR blocks that are specified in the SecurityIps parameter to the IP address whitelist.\n- Delete: Delete IP addresses and CIDR blocks that are specified in the SecurityIps parameter from the IP address whitelist. You must retain at least one IP address or CIDR block.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:rds/ReadOnlyInstanceParameter:ReadOnlyInstanceParameter"},"description":"Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm). See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"period":{"type":"integer","description":"The duration that you will buy DB instance (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Valid values: [1~9], 12, 24, 36.\n"},"replicationAcl":{"type":"string","description":"The method that is used to verify the replication permission. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n\u003e **NOTE:** Because of data backup and migration, change DB instance type and storage would cost 15~20 minutes. Please make full preparation before changing them.\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the DB read-only instance belongs.\n"},"securityIpType":{"type":"string","description":"The type of IP address in the IP address whitelist.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"serverCert":{"type":"string","description":"The content of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`.\n"},"serverKey":{"type":"string","description":"The private key of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`.\n"},"sslEnabled":{"type":"integer","description":"Specifies whether to enable or disable SSL encryption. Valid values:\n- 1: enables SSL encryption\n- 0: disables SSL encryption\n"},"switchTime":{"type":"string","description":"The specific point in time when you want to perform the update. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. The time must be in UTC.\n\n\u003e **NOTE:** This parameter takes effect only when you set the UpgradeTime parameter to SpecifyTime.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"targetMinorVersion":{"type":"string","description":"The minor engine version to which you want to update the instance. If you do not specify this parameter, the instance is updated to the latest minor engine version. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. You must specify the minor engine version in one of the following formats:\n- PostgreSQL: rds_postgres_\u003cMajor engine version\u003e00_\u003cMinor engine version\u003e. Example: rds_postgres_1200_20200830.\n- MySQL: \u003cRDS edition\u003e_\u003cMinor engine version\u003e. Examples: rds_20200229, xcluster_20200229, and xcluster80_20200229. The following RDS editions are supported:\n- rds: The instance runs RDS Basic or High-availability Edition.\n- xcluster: The instance runs MySQL 5.7 on RDS Enterprise Edition.\n- xcluster80: The instance runs MySQL 8.0 on RDS Enterprise Edition.\n- SQLServer: \u003cMinor engine version\u003e. Example: 15.0.4073.23.\n\n\u003e **NOTE:** For more information about minor engine versions, see Release notes of minor AliPG versions, Release notes of minor AliSQL versions, and Release notes of minor engine versions of ApsaraDB RDS for SQL Server.\n"},"upgradeDbInstanceKernelVersion":{"type":"boolean","description":"Whether to upgrade a minor version of the kernel. Valid values:\n- true: upgrade\n- false: not to upgrade\n"},"upgradeTime":{"type":"string","description":"The method to update the minor engine version. Default value: Immediate. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. Valid values:\n- Immediate: The minor engine version is immediately updated.\n- MaintainTime: The minor engine version is updated during the maintenance window. For more information about how to change the maintenance window, see ModifyDBInstanceMaintainTime.\n- SpecifyTime: The minor engine version is updated at the point in time you specify.\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC.\n","willReplaceOnChanges":true},"whitelistNetworkType":{"type":"string","description":"The network type of the IP address whitelist. Default value: MIX. Valid values:\n- Classic: classic network in enhanced whitelist mode\n- VPC: virtual private cloud (VPC) in enhanced whitelist mode\n- MIX: standard whitelist mode\n\u003e **NOTE:** In standard whitelist mode, IP addresses and CIDR blocks can be added only to the default IP address whitelist. In enhanced whitelist mode, IP addresses and CIDR blocks can be added to both IP address whitelists of the classic network type and those of the VPC network type.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB instance.\n","willReplaceOnChanges":true}},"requiredInputs":["engineVersion","instanceStorage","instanceType","masterDbInstanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering ReadOnlyInstance resources.\n","properties":{"acl":{"type":"string","description":"The method that is used to verify the identities of clients. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n"},"autoRenew":{"type":"boolean","description":"Whether to renewal a DB instance automatically or not. It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period of an instance, in the unit of the month. It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Valid value:[1~12], Default to 1.\n"},"caType":{"type":"string","description":"The type of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the SSLEnabled parameter to 1, the default value of this parameter is aliyun. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`. Value range:\n- aliyun: a cloud certificate\n- custom: a custom certificate\n"},"clientCaCert":{"type":"string","description":"The public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCAEbabled parameter to 1, you must also specify this parameter. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`.\n"},"clientCaEnabled":{"type":"integer","description":"Specifies whether to enable the public key of the CA that issues client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`. Valid values:\n- 1: enables the public key\n- 0: disables the public key\n"},"clientCertRevocationList":{"type":"string","description":"The CRL that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the ClientCrlEnabled parameter to 1, you must also specify this parameter. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`.\n"},"clientCrlEnabled":{"type":"integer","description":"Specifies whether to enable a certificate revocation list (CRL) that contains revoked client certificates. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`. Valid values:\n- 1: enables the CRL\n- 0: disables the CRL\n"},"connectionString":{"type":"string","description":"RDS database connection string.\n"},"dbInstanceIpArrayAttribute":{"type":"string","description":"The attribute of the IP address whitelist. By default, this parameter is empty.\n\n\u003e **NOTE:** The IP address whitelists that have the hidden attribute are not displayed in the ApsaraDB RDS console. These IP address whitelists are used to access Alibaba Cloud services, such as Data Transmission Service (DTS).\n"},"dbInstanceIpArrayName":{"type":"string","description":"The name of the IP address whitelist. Default value: Default.\n\n\u003e **NOTE:** A maximum of 200 IP address whitelists can be configured for each instance.\n"},"dbInstanceStorageType":{"type":"string","description":"The storage type of the instance. Valid values:\n- local_ssd: specifies to use local SSDs. This value is recommended.\n- cloud_ssd: specifies to use standard SSDs.\n- cloud_essd: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd2: specifies to use enhanced SSDs (ESSDs).\n- cloud_essd3: specifies to use enhanced SSDs (ESSDs).\n"},"deletionProtection":{"type":"boolean","description":"The switch of delete protection. Valid values:\n- true: delete protect.\n- false: no delete protect.\n"},"direction":{"type":"string","description":"The instance configuration type. Valid values:\n- Up\n- Down\n- TempUpgrade\n- Serverless\n"},"effectiveTime":{"type":"string","description":"The method to change.  Default value: Immediate. Valid values:\n- Immediate: The change immediately takes effect.\n- MaintainTime: The change takes effect during the specified maintenance window. For more information, see ModifyDBInstanceMaintainTime.\n"},"engine":{"type":"string","description":"Database type.\n"},"engineVersion":{"type":"string","description":"Database version. Value options can refer to the latest docs [CreateDBInstance](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.\n","willReplaceOnChanges":true},"forceRestart":{"type":"boolean","description":"Set it to true to make some parameter efficient when modifying them. Default to false.\n"},"instanceChargeType":{"type":"string","description":"Valid values are `Prepaid`, `Postpaid`, Default to `Postpaid`. The interval between the two conversion operations must be greater than 15 minutes. Only when this parameter is `Postpaid`, the instance can be released.\n"},"instanceName":{"type":"string","description":"The name of DB instance. It a string of 2 to 256 characters.\n"},"instanceStorage":{"type":"integer","description":"User-defined DB instance storage space. Value range: [5, 2000] for MySQL/SQL Server HA dual node edition. Increase progressively at a rate of 5 GB. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).\n"},"instanceType":{"type":"string","description":"DB Instance type. For details, see [Instance type table](https://www.alibabacloud.com/help/doc-detail/26312.htm).\n"},"masterDbInstanceId":{"type":"string","description":"ID of the master instance.\n","willReplaceOnChanges":true},"modifyMode":{"type":"string","description":"The method that is used to modify the IP address whitelist. Default value: Cover. Valid values:\n- Cover: Use the value of the SecurityIps parameter to overwrite the existing entries in the IP address whitelist.\n- Append: Add the IP addresses and CIDR blocks that are specified in the SecurityIps parameter to the IP address whitelist.\n- Delete: Delete IP addresses and CIDR blocks that are specified in the SecurityIps parameter from the IP address whitelist. You must retain at least one IP address or CIDR block.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:rds/ReadOnlyInstanceParameter:ReadOnlyInstanceParameter"},"description":"Set of parameters needs to be set after DB instance was launched. Available parameters can refer to the latest docs [View database parameter templates](https://www.alibabacloud.com/help/doc-detail/26284.htm). See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"period":{"type":"integer","description":"The duration that you will buy DB instance (in month). It is valid when\u003cspan pulumi-lang-nodejs=\" instanceChargeType \" pulumi-lang-dotnet=\" InstanceChargeType \" pulumi-lang-go=\" instanceChargeType \" pulumi-lang-python=\" instance_charge_type \" pulumi-lang-yaml=\" instanceChargeType \" pulumi-lang-java=\" instanceChargeType \"\u003e instance_charge_type \u003c/span\u003eis `PrePaid`. Valid values: [1~9], 12, 24, 36.\n"},"port":{"type":"string","description":"RDS database connection port.\n"},"replicationAcl":{"type":"string","description":"The method that is used to verify the replication permission. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. In addition, this parameter is available only when the public key of the CA that issues client certificates is enabled. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`. Valid values:\n- cert\n- perfer\n- verify-ca\n- verify-full (supported only when the instance runs PostgreSQL 12 or later)\n\u003e **NOTE:** Because of data backup and migration, change DB instance type and storage would cost 15~20 minutes. Please make full preparation before changing them.\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the DB read-only instance belongs.\n"},"securityIpType":{"type":"string","description":"The type of IP address in the IP address whitelist.\n"},"securityIps":{"type":"array","items":{"type":"string"},"description":"List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is [1,32]).\n"},"serverCert":{"type":"string","description":"The content of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`.\n"},"serverKey":{"type":"string","description":"The private key of the server certificate. This parameter is supported only when the instance runs PostgreSQL with standard or enhanced SSDs. If you set the CAType parameter to custom, you must also specify this parameter. It is valid only when \u003cspan pulumi-lang-nodejs=\"`sslEnabled \" pulumi-lang-dotnet=\"`SslEnabled \" pulumi-lang-go=\"`sslEnabled \" pulumi-lang-python=\"`ssl_enabled \" pulumi-lang-yaml=\"`sslEnabled \" pulumi-lang-java=\"`sslEnabled \"\u003e`ssl_enabled \u003c/span\u003e = 1`.\n"},"sslEnabled":{"type":"integer","description":"Specifies whether to enable or disable SSL encryption. Valid values:\n- 1: enables SSL encryption\n- 0: disables SSL encryption\n"},"switchTime":{"type":"string","description":"The specific point in time when you want to perform the update. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. The time must be in UTC.\n\n\u003e **NOTE:** This parameter takes effect only when you set the UpgradeTime parameter to SpecifyTime.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"targetMinorVersion":{"type":"string","description":"The minor engine version to which you want to update the instance. If you do not specify this parameter, the instance is updated to the latest minor engine version. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. You must specify the minor engine version in one of the following formats:\n- PostgreSQL: rds_postgres_\u003cMajor engine version\u003e00_\u003cMinor engine version\u003e. Example: rds_postgres_1200_20200830.\n- MySQL: \u003cRDS edition\u003e_\u003cMinor engine version\u003e. Examples: rds_20200229, xcluster_20200229, and xcluster80_20200229. The following RDS editions are supported:\n- rds: The instance runs RDS Basic or High-availability Edition.\n- xcluster: The instance runs MySQL 5.7 on RDS Enterprise Edition.\n- xcluster80: The instance runs MySQL 8.0 on RDS Enterprise Edition.\n- SQLServer: \u003cMinor engine version\u003e. Example: 15.0.4073.23.\n\n\u003e **NOTE:** For more information about minor engine versions, see Release notes of minor AliPG versions, Release notes of minor AliSQL versions, and Release notes of minor engine versions of ApsaraDB RDS for SQL Server.\n"},"upgradeDbInstanceKernelVersion":{"type":"boolean","description":"Whether to upgrade a minor version of the kernel. Valid values:\n- true: upgrade\n- false: not to upgrade\n"},"upgradeTime":{"type":"string","description":"The method to update the minor engine version. Default value: Immediate. It is valid only when \u003cspan pulumi-lang-nodejs=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-dotnet=\"`UpgradeDbInstanceKernelVersion \" pulumi-lang-go=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-python=\"`upgrade_db_instance_kernel_version \" pulumi-lang-yaml=\"`upgradeDbInstanceKernelVersion \" pulumi-lang-java=\"`upgradeDbInstanceKernelVersion \"\u003e`upgrade_db_instance_kernel_version \u003c/span\u003e= true`. Valid values:\n- Immediate: The minor engine version is immediately updated.\n- MaintainTime: The minor engine version is updated during the maintenance window. For more information about how to change the maintenance window, see ModifyDBInstanceMaintainTime.\n- SpecifyTime: The minor engine version is updated at the point in time you specify.\n"},"vswitchId":{"type":"string","description":"The virtual switch ID to launch DB instances in one VPC.\n","willReplaceOnChanges":true},"whitelistNetworkType":{"type":"string","description":"The network type of the IP address whitelist. Default value: MIX. Valid values:\n- Classic: classic network in enhanced whitelist mode\n- VPC: virtual private cloud (VPC) in enhanced whitelist mode\n- MIX: standard whitelist mode\n\u003e **NOTE:** In standard whitelist mode, IP addresses and CIDR blocks can be added only to the default IP address whitelist. In enhanced whitelist mode, IP addresses and CIDR blocks can be added to both IP address whitelists of the classic network type and those of the VPC network type.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rds/readWriteSplittingConnection:ReadWriteSplittingConnection":{"description":"Provides an RDS read write splitting connection resource to allocate an Intranet connection string for RDS instance, see [What is DB Read Write Splitting Connection](https://www.alibabacloud.com/help/en/apsaradb-for-rds/latest/api-rds-2014-08-15-allocatereadwritesplittingconnection).\n\n\u003e **NOTE:** Available since v1.48.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst example = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n});\nconst exampleGetInstanceClasses = example.then(example =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: example.ids?.[0],\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n}));\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vpcId: exampleNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    name: name,\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.rds.Instance(\"example\", {\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n    category: \"HighAvailability\",\n    instanceType: exampleGetInstanceClasses.then(exampleGetInstanceClasses =\u003e exampleGetInstanceClasses.instanceClasses?.[1]?.instanceClass),\n    instanceStorage: 20,\n    instanceChargeType: \"Postpaid\",\n    instanceName: name,\n    vswitchId: exampleSwitch.id,\n    securityIps: [\n        \"10.168.1.12\",\n        \"100.69.7.112\",\n    ],\n});\nconst exampleReadOnlyInstance = new alicloud.rds.ReadOnlyInstance(\"example\", {\n    zoneId: exampleInstance.zoneId,\n    masterDbInstanceId: exampleInstance.id,\n    engineVersion: exampleInstance.engineVersion,\n    instanceStorage: exampleInstance.instanceStorage,\n    instanceType: exampleInstance.instanceType,\n    instanceName: `${name}readonly`,\n    vswitchId: exampleSwitch.id,\n});\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst exampleReadWriteSplittingConnection = new alicloud.rds.ReadWriteSplittingConnection(\"example\", {\n    instanceId: exampleReadOnlyInstance.masterDbInstanceId,\n    connectionPrefix: `example-con-${_default.result}`,\n    distributionType: \"Standard\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nexample = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"5.6\")\nexample_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=example.ids[0],\n    engine=\"MySQL\",\n    engine_version=\"5.6\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vpc_id=example_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=example.zones[0].id,\n    vswitch_name=name)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    name=name,\n    vpc_id=example_network.id)\nexample_instance = alicloud.rds.Instance(\"example\",\n    engine=\"MySQL\",\n    engine_version=\"5.6\",\n    category=\"HighAvailability\",\n    instance_type=example_get_instance_classes.instance_classes[1].instance_class,\n    instance_storage=20,\n    instance_charge_type=\"Postpaid\",\n    instance_name=name,\n    vswitch_id=example_switch.id,\n    security_ips=[\n        \"10.168.1.12\",\n        \"100.69.7.112\",\n    ])\nexample_read_only_instance = alicloud.rds.ReadOnlyInstance(\"example\",\n    zone_id=example_instance.zone_id,\n    master_db_instance_id=example_instance.id,\n    engine_version=example_instance.engine_version,\n    instance_storage=example_instance.instance_storage,\n    instance_type=example_instance.instance_type,\n    instance_name=f\"{name}readonly\",\n    vswitch_id=example_switch.id)\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample_read_write_splitting_connection = alicloud.rds.ReadWriteSplittingConnection(\"example\",\n    instance_id=example_read_only_instance.master_db_instance_id,\n    connection_prefix=f\"example-con-{default['result']}\",\n    distribution_type=\"Standard\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var example = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n    });\n\n    var exampleGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VpcId = exampleNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = name,\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        Name = name,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Rds.Instance(\"example\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n        Category = \"HighAvailability\",\n        InstanceType = exampleGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[1]?.InstanceClass),\n        InstanceStorage = 20,\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = name,\n        VswitchId = exampleSwitch.Id,\n        SecurityIps = new[]\n        {\n            \"10.168.1.12\",\n            \"100.69.7.112\",\n        },\n    });\n\n    var exampleReadOnlyInstance = new AliCloud.Rds.ReadOnlyInstance(\"example\", new()\n    {\n        ZoneId = exampleInstance.ZoneId,\n        MasterDbInstanceId = exampleInstance.Id,\n        EngineVersion = exampleInstance.EngineVersion,\n        InstanceStorage = exampleInstance.InstanceStorage,\n        InstanceType = exampleInstance.InstanceType,\n        InstanceName = $\"{name}readonly\",\n        VswitchId = exampleSwitch.Id,\n    });\n\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var exampleReadWriteSplittingConnection = new AliCloud.Rds.ReadWriteSplittingConnection(\"example\", new()\n    {\n        InstanceId = exampleReadOnlyInstance.MasterDbInstanceId,\n        ConnectionPrefix = $\"example-con-{@default.Result}\",\n        DistributionType = \"Standard\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:        pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion: pulumi.StringRef(\"5.6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:        pulumi.StringRef(example.Ids[0]),\n\t\t\tEngine:        pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion: pulumi.StringRef(\"5.6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := rds.NewInstance(ctx, \"example\", \u0026rds.InstanceArgs{\n\t\t\tEngine:             pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:      pulumi.String(\"5.6\"),\n\t\t\tCategory:           pulumi.String(\"HighAvailability\"),\n\t\t\tInstanceType:       pulumi.String(exampleGetInstanceClasses.InstanceClasses[1].InstanceClass),\n\t\t\tInstanceStorage:    pulumi.Int(20),\n\t\t\tInstanceChargeType: pulumi.String(\"Postpaid\"),\n\t\t\tInstanceName:       pulumi.String(name),\n\t\t\tVswitchId:          exampleSwitch.ID(),\n\t\t\tSecurityIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.168.1.12\"),\n\t\t\t\tpulumi.String(\"100.69.7.112\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleReadOnlyInstance, err := rds.NewReadOnlyInstance(ctx, \"example\", \u0026rds.ReadOnlyInstanceArgs{\n\t\t\tZoneId:             exampleInstance.ZoneId,\n\t\t\tMasterDbInstanceId: exampleInstance.ID(),\n\t\t\tEngineVersion:      exampleInstance.EngineVersion,\n\t\t\tInstanceStorage:    exampleInstance.InstanceStorage,\n\t\t\tInstanceType:       exampleInstance.InstanceType,\n\t\t\tInstanceName:       pulumi.Sprintf(\"%vreadonly\", name),\n\t\t\tVswitchId:          exampleSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewReadWriteSplittingConnection(ctx, \"example\", \u0026rds.ReadWriteSplittingConnectionArgs{\n\t\t\tInstanceId:       exampleReadOnlyInstance.MasterDbInstanceId,\n\t\t\tConnectionPrefix: pulumi.Sprintf(\"example-con-%v\", _default.Result),\n\t\t\tDistributionType: pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.ReadOnlyInstance;\nimport com.pulumi.alicloud.rds.ReadOnlyInstanceArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.rds.ReadWriteSplittingConnection;\nimport com.pulumi.alicloud.rds.ReadWriteSplittingConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var example = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .build());\n\n        final var exampleGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(example.ids()[0])\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vpcId(exampleNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(example.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .category(\"HighAvailability\")\n            .instanceType(exampleGetInstanceClasses.instanceClasses()[1].instanceClass())\n            .instanceStorage(20)\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(name)\n            .vswitchId(exampleSwitch.id())\n            .securityIps(            \n                \"10.168.1.12\",\n                \"100.69.7.112\")\n            .build());\n\n        var exampleReadOnlyInstance = new ReadOnlyInstance(\"exampleReadOnlyInstance\", ReadOnlyInstanceArgs.builder()\n            .zoneId(exampleInstance.zoneId())\n            .masterDbInstanceId(exampleInstance.id())\n            .engineVersion(exampleInstance.engineVersion())\n            .instanceStorage(exampleInstance.instanceStorage())\n            .instanceType(exampleInstance.instanceType())\n            .instanceName(String.format(\"%sreadonly\", name))\n            .vswitchId(exampleSwitch.id())\n            .build());\n\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var exampleReadWriteSplittingConnection = new ReadWriteSplittingConnection(\"exampleReadWriteSplittingConnection\", ReadWriteSplittingConnectionArgs.builder()\n            .instanceId(exampleReadOnlyInstance.masterDbInstanceId())\n            .connectionPrefix(String.format(\"example-con-%s\", default_.result()))\n            .distributionType(\"Standard\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vpcId: ${exampleNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${example.zones[0].id}\n      vswitchName: ${name}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      name: ${name}\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:rds:Instance\n    name: example\n    properties:\n      engine: MySQL\n      engineVersion: '5.6'\n      category: HighAvailability\n      instanceType: ${exampleGetInstanceClasses.instanceClasses[1].instanceClass}\n      instanceStorage: '20'\n      instanceChargeType: Postpaid\n      instanceName: ${name}\n      vswitchId: ${exampleSwitch.id}\n      securityIps:\n        - 10.168.1.12\n        - 100.69.7.112\n  exampleReadOnlyInstance:\n    type: alicloud:rds:ReadOnlyInstance\n    name: example\n    properties:\n      zoneId: ${exampleInstance.zoneId}\n      masterDbInstanceId: ${exampleInstance.id}\n      engineVersion: ${exampleInstance.engineVersion}\n      instanceStorage: ${exampleInstance.instanceStorage}\n      instanceType: ${exampleInstance.instanceType}\n      instanceName: ${name}readonly\n      vswitchId: ${exampleSwitch.id}\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  exampleReadWriteSplittingConnection:\n    type: alicloud:rds:ReadWriteSplittingConnection\n    name: example\n    properties:\n      instanceId: ${exampleReadOnlyInstance.masterDbInstanceId}\n      connectionPrefix: example-con-${default.result}\n      distributionType: Standard\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '5.6'\n  exampleGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${example.ids[0]}\n        engine: MySQL\n        engineVersion: '5.6'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **NOTE:** Resource \u003cspan pulumi-lang-nodejs=\"`alicloud.rds.ReadWriteSplittingConnection`\" pulumi-lang-dotnet=\"`alicloud.rds.ReadWriteSplittingConnection`\" pulumi-lang-go=\"`rds.ReadWriteSplittingConnection`\" pulumi-lang-python=\"`rds.ReadWriteSplittingConnection`\" pulumi-lang-yaml=\"`alicloud.rds.ReadWriteSplittingConnection`\" pulumi-lang-java=\"`alicloud.rds.ReadWriteSplittingConnection`\"\u003e`alicloud.rds.ReadWriteSplittingConnection`\u003c/span\u003e should be created after \u003cspan pulumi-lang-nodejs=\"`alicloud.rds.ReadOnlyInstance`\" pulumi-lang-dotnet=\"`alicloud.rds.ReadOnlyInstance`\" pulumi-lang-go=\"`rds.ReadOnlyInstance`\" pulumi-lang-python=\"`rds.ReadOnlyInstance`\" pulumi-lang-yaml=\"`alicloud.rds.ReadOnlyInstance`\" pulumi-lang-java=\"`alicloud.rds.ReadOnlyInstance`\"\u003e`alicloud.rds.ReadOnlyInstance`\u003c/span\u003e, so the \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e statement is necessary.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRDS read write splitting connection can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rds/readWriteSplittingConnection:ReadWriteSplittingConnection example abc12345678\n```\n\n","properties":{"connectionPrefix":{"type":"string","description":"Prefix of an Internet connection string. It must be checked for uniqueness. It may consist of lowercase letters, numbers, and underlines, and must start with a letter and have no more than 30 characters. Default to \u003cinstance_id\u003e + 'rw'.\n"},"connectionString":{"type":"string","description":"Connection instance string.\n"},"distributionType":{"type":"string","description":"Read weight distribution mode. Values are as follows: `Standard` indicates automatic weight distribution based on types, `Custom` indicates custom weight distribution.\n"},"instanceId":{"type":"string","description":"The Id of instance that can run database.\n"},"maxDelayTime":{"type":"integer","description":"Delay threshold, in seconds. The value range is 0 to 7200. Default to 30. Read requests are not routed to the read-only instances with a delay greater than the threshold.\n"},"port":{"type":"integer","description":"Intranet connection port. Valid value: [3001-3999]. Default to 3306.\n"},"weight":{"type":"object","additionalProperties":{"type":"string"},"description":"Read weight distribution. Read weights increase at a step of 100 up to 10,000. Enter weights in the following format: {\"Instanceid\":\"Weight\",\"Instanceid\":\"Weight\"}. This parameter must be set when\u003cspan pulumi-lang-nodejs=\" distributionType \" pulumi-lang-dotnet=\" DistributionType \" pulumi-lang-go=\" distributionType \" pulumi-lang-python=\" distribution_type \" pulumi-lang-yaml=\" distributionType \" pulumi-lang-java=\" distributionType \"\u003e distribution_type \u003c/span\u003eis set to Custom.\n"}},"required":["connectionString","distributionType","instanceId","maxDelayTime","port"],"inputProperties":{"connectionPrefix":{"type":"string","description":"Prefix of an Internet connection string. It must be checked for uniqueness. It may consist of lowercase letters, numbers, and underlines, and must start with a letter and have no more than 30 characters. Default to \u003cinstance_id\u003e + 'rw'.\n","willReplaceOnChanges":true},"distributionType":{"type":"string","description":"Read weight distribution mode. Values are as follows: `Standard` indicates automatic weight distribution based on types, `Custom` indicates custom weight distribution.\n"},"instanceId":{"type":"string","description":"The Id of instance that can run database.\n","willReplaceOnChanges":true},"maxDelayTime":{"type":"integer","description":"Delay threshold, in seconds. The value range is 0 to 7200. Default to 30. Read requests are not routed to the read-only instances with a delay greater than the threshold.\n"},"port":{"type":"integer","description":"Intranet connection port. Valid value: [3001-3999]. Default to 3306.\n"},"weight":{"type":"object","additionalProperties":{"type":"string"},"description":"Read weight distribution. Read weights increase at a step of 100 up to 10,000. Enter weights in the following format: {\"Instanceid\":\"Weight\",\"Instanceid\":\"Weight\"}. This parameter must be set when\u003cspan pulumi-lang-nodejs=\" distributionType \" pulumi-lang-dotnet=\" DistributionType \" pulumi-lang-go=\" distributionType \" pulumi-lang-python=\" distribution_type \" pulumi-lang-yaml=\" distributionType \" pulumi-lang-java=\" distributionType \"\u003e distribution_type \u003c/span\u003eis set to Custom.\n"}},"requiredInputs":["distributionType","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering ReadWriteSplittingConnection resources.\n","properties":{"connectionPrefix":{"type":"string","description":"Prefix of an Internet connection string. It must be checked for uniqueness. It may consist of lowercase letters, numbers, and underlines, and must start with a letter and have no more than 30 characters. Default to \u003cinstance_id\u003e + 'rw'.\n","willReplaceOnChanges":true},"connectionString":{"type":"string","description":"Connection instance string.\n"},"distributionType":{"type":"string","description":"Read weight distribution mode. Values are as follows: `Standard` indicates automatic weight distribution based on types, `Custom` indicates custom weight distribution.\n"},"instanceId":{"type":"string","description":"The Id of instance that can run database.\n","willReplaceOnChanges":true},"maxDelayTime":{"type":"integer","description":"Delay threshold, in seconds. The value range is 0 to 7200. Default to 30. Read requests are not routed to the read-only instances with a delay greater than the threshold.\n"},"port":{"type":"integer","description":"Intranet connection port. Valid value: [3001-3999]. Default to 3306.\n"},"weight":{"type":"object","additionalProperties":{"type":"string"},"description":"Read weight distribution. Read weights increase at a step of 100 up to 10,000. Enter weights in the following format: {\"Instanceid\":\"Weight\",\"Instanceid\":\"Weight\"}. This parameter must be set when\u003cspan pulumi-lang-nodejs=\" distributionType \" pulumi-lang-dotnet=\" DistributionType \" pulumi-lang-go=\" distributionType \" pulumi-lang-python=\" distribution_type \" pulumi-lang-yaml=\" distributionType \" pulumi-lang-java=\" distributionType \"\u003e distribution_type \u003c/span\u003eis set to Custom.\n"}},"type":"object"}},"alicloud:rds/whitelistTemplate:WhitelistTemplate":{"description":"Provide a whitelist template resource.\n\n\nFor information about Resource AliCloudWhitelistTemplate and how to use it, see [What is Whitelist Template](https://www.alibabacloud.com/help/en/rds/developer-reference/api-rds-2014-08-15-modifywhitelisttemplate?).\n\n\u003e **NOTE:** Available since v1.254.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.rds.WhitelistTemplate(\"example\", {\n    ipWhiteList: \"172.16.0.0\",\n    templateName: \"example-whitelist\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.rds.WhitelistTemplate(\"example\",\n    ip_white_list=\"172.16.0.0\",\n    template_name=\"example-whitelist\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Rds.WhitelistTemplate(\"example\", new()\n    {\n        IpWhiteList = \"172.16.0.0\",\n        TemplateName = \"example-whitelist\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewWhitelistTemplate(ctx, \"example\", \u0026rds.WhitelistTemplateArgs{\n\t\t\tIpWhiteList:  pulumi.String(\"172.16.0.0\"),\n\t\t\tTemplateName: pulumi.String(\"example-whitelist\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.WhitelistTemplate;\nimport com.pulumi.alicloud.rds.WhitelistTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WhitelistTemplate(\"example\", WhitelistTemplateArgs.builder()\n            .ipWhiteList(\"172.16.0.0\")\n            .templateName(\"example-whitelist\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:rds:WhitelistTemplate\n    properties:\n      ipWhiteList: 172.16.0.0\n      templateName: example-whitelist\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nYou can use the whitelist template ID to import whitelist templates, e.g.\n\n```sh\n$ pulumi import alicloud:rds/whitelistTemplate:WhitelistTemplate example \u003cid\u003e\n```\n\n","properties":{"ipWhiteList":{"type":"string","description":"IP whitelist, multiple IP addresses should be separated by commas (,) and cannot be duplicated.Supports the following two formats:\n- IP address format, for example: 10.23.XX.XX.\n- CIDR format, for example: 10.23.XX.XX/24 (no inter domain routing, 24 represents the length of the prefix in the address, ranging from 1 to 32).\n"},"templateName":{"type":"string","description":"Whitelist template name. Passed in when creating a template, and cannot have the same name under the same account, starting with a letter.\n"}},"required":["ipWhiteList","templateName"],"inputProperties":{"ipWhiteList":{"type":"string","description":"IP whitelist, multiple IP addresses should be separated by commas (,) and cannot be duplicated.Supports the following two formats:\n- IP address format, for example: 10.23.XX.XX.\n- CIDR format, for example: 10.23.XX.XX/24 (no inter domain routing, 24 represents the length of the prefix in the address, ranging from 1 to 32).\n"},"templateName":{"type":"string","description":"Whitelist template name. Passed in when creating a template, and cannot have the same name under the same account, starting with a letter.\n"}},"requiredInputs":["ipWhiteList","templateName"],"stateInputs":{"description":"Input properties used for looking up and filtering WhitelistTemplate resources.\n","properties":{"ipWhiteList":{"type":"string","description":"IP whitelist, multiple IP addresses should be separated by commas (,) and cannot be duplicated.Supports the following two formats:\n- IP address format, for example: 10.23.XX.XX.\n- CIDR format, for example: 10.23.XX.XX/24 (no inter domain routing, 24 represents the length of the prefix in the address, ranging from 1 to 32).\n"},"templateName":{"type":"string","description":"Whitelist template name. Passed in when creating a template, and cannot have the same name under the same account, starting with a letter.\n"}},"type":"object"}},"alicloud:realtimecompute/deployment:Deployment":{"description":"Provides a Realtime Compute Deployment resource.\n\nDeployment in the Realtime Compute console.\n\nFor information about Realtime Compute Deployment and how to use it, see [What is Deployment](https://next.api.alibabacloud.com/document/ververica/2022-07-18/CreateDeployment).\n\n\u003e **NOTE:** Available since v1.265.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.vpc.Network(\"default\", {\n    isDefault: false,\n    cidrBlock: \"172.16.0.0/16\",\n    vpcName: \"example-tf-vpc-deployment\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    isDefault: false,\n    vpcId: _default.id,\n    zoneId: \"cn-beijing-g\",\n    cidrBlock: \"172.16.0.0/24\",\n    vswitchName: \"example-tf-vSwitch-deployment\",\n});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {});\nconst defaultVvpInstance = new alicloud.realtimecompute.VvpInstance(\"default\", {\n    vvpInstanceName: \"code-example-tf-deployment\",\n    storage: {\n        oss: {\n            bucket: defaultBucket.id,\n        },\n    },\n    vpcId: _default.id,\n    vswitchIds: [defaultSwitch.id],\n    resourceSpec: {\n        cpu: 8,\n        memoryGb: 32,\n    },\n    paymentType: \"PayAsYouGo\",\n    zoneId: defaultSwitch.zoneId,\n});\nconst createDeployment9 = new alicloud.realtimecompute.Deployment(\"create_Deployment9\", {\n    deploymentName: \"tf-example-deployment-sql-56\",\n    engineVersion: \"vvr-8.0.10-flink-1.17\",\n    resourceId: defaultVvpInstance.resourceId,\n    executionMode: \"STREAMING\",\n    deploymentTarget: {\n        mode: \"PER_JOB\",\n        name: \"default-queue\",\n    },\n    namespace: pulumi.interpolate`${defaultVvpInstance.vvpInstanceName}-default`,\n    artifact: {\n        kind: \"SQLSCRIPT\",\n        sqlArtifact: {\n            sqlScript: \"create temporary table `datagen` ( id varchar, name varchar ) with ( 'connector' = 'datagen' );  create temporary table `blackhole` ( id varchar, name varchar ) with ( 'connector' = 'blackhole' );  insert into blackhole select * from datagen;\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.vpc.Network(\"default\",\n    is_default=False,\n    cidr_block=\"172.16.0.0/16\",\n    vpc_name=\"example-tf-vpc-deployment\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    is_default=False,\n    vpc_id=default.id,\n    zone_id=\"cn-beijing-g\",\n    cidr_block=\"172.16.0.0/24\",\n    vswitch_name=\"example-tf-vSwitch-deployment\")\ndefault_bucket = alicloud.oss.Bucket(\"default\")\ndefault_vvp_instance = alicloud.realtimecompute.VvpInstance(\"default\",\n    vvp_instance_name=\"code-example-tf-deployment\",\n    storage={\n        \"oss\": {\n            \"bucket\": default_bucket.id,\n        },\n    },\n    vpc_id=default.id,\n    vswitch_ids=[default_switch.id],\n    resource_spec={\n        \"cpu\": 8,\n        \"memory_gb\": 32,\n    },\n    payment_type=\"PayAsYouGo\",\n    zone_id=default_switch.zone_id)\ncreate_deployment9 = alicloud.realtimecompute.Deployment(\"create_Deployment9\",\n    deployment_name=\"tf-example-deployment-sql-56\",\n    engine_version=\"vvr-8.0.10-flink-1.17\",\n    resource_id=default_vvp_instance.resource_id,\n    execution_mode=\"STREAMING\",\n    deployment_target={\n        \"mode\": \"PER_JOB\",\n        \"name\": \"default-queue\",\n    },\n    namespace=default_vvp_instance.vvp_instance_name.apply(lambda vvp_instance_name: f\"{vvp_instance_name}-default\"),\n    artifact={\n        \"kind\": \"SQLSCRIPT\",\n        \"sql_artifact\": {\n            \"sql_script\": \"create temporary table `datagen` ( id varchar, name varchar ) with ( 'connector' = 'datagen' );  create temporary table `blackhole` ( id varchar, name varchar ) with ( 'connector' = 'blackhole' );  insert into blackhole select * from datagen;\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        IsDefault = false,\n        CidrBlock = \"172.16.0.0/16\",\n        VpcName = \"example-tf-vpc-deployment\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        IsDefault = false,\n        VpcId = @default.Id,\n        ZoneId = \"cn-beijing-g\",\n        CidrBlock = \"172.16.0.0/24\",\n        VswitchName = \"example-tf-vSwitch-deployment\",\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\");\n\n    var defaultVvpInstance = new AliCloud.RealtimeCompute.VvpInstance(\"default\", new()\n    {\n        VvpInstanceName = \"code-example-tf-deployment\",\n        Storage = new AliCloud.RealtimeCompute.Inputs.VvpInstanceStorageArgs\n        {\n            Oss = new AliCloud.RealtimeCompute.Inputs.VvpInstanceStorageOssArgs\n            {\n                Bucket = defaultBucket.Id,\n            },\n        },\n        VpcId = @default.Id,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        ResourceSpec = new AliCloud.RealtimeCompute.Inputs.VvpInstanceResourceSpecArgs\n        {\n            Cpu = 8,\n            MemoryGb = 32,\n        },\n        PaymentType = \"PayAsYouGo\",\n        ZoneId = defaultSwitch.ZoneId,\n    });\n\n    var createDeployment9 = new AliCloud.RealtimeCompute.Deployment(\"create_Deployment9\", new()\n    {\n        DeploymentName = \"tf-example-deployment-sql-56\",\n        EngineVersion = \"vvr-8.0.10-flink-1.17\",\n        ResourceId = defaultVvpInstance.ResourceId,\n        ExecutionMode = \"STREAMING\",\n        DeploymentTarget = new AliCloud.RealtimeCompute.Inputs.DeploymentDeploymentTargetArgs\n        {\n            Mode = \"PER_JOB\",\n            Name = \"default-queue\",\n        },\n        Namespace = defaultVvpInstance.VvpInstanceName.Apply(vvpInstanceName =\u003e $\"{vvpInstanceName}-default\"),\n        Artifact = new AliCloud.RealtimeCompute.Inputs.DeploymentArtifactArgs\n        {\n            Kind = \"SQLSCRIPT\",\n            SqlArtifact = new AliCloud.RealtimeCompute.Inputs.DeploymentArtifactSqlArtifactArgs\n            {\n                SqlScript = \"create temporary table `datagen` ( id varchar, name varchar ) with ( 'connector' = 'datagen' );  create temporary table `blackhole` ( id varchar, name varchar ) with ( 'connector' = 'blackhole' );  insert into blackhole select * from datagen;\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/realtimecompute\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tIsDefault: pulumi.Bool(false),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t\tVpcName:   pulumi.String(\"example-tf-vpc-deployment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tIsDefault:   pulumi.Bool(false),\n\t\t\tVpcId:       _default.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-beijing-g\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"example-tf-vSwitch-deployment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVvpInstance, err := realtimecompute.NewVvpInstance(ctx, \"default\", \u0026realtimecompute.VvpInstanceArgs{\n\t\t\tVvpInstanceName: pulumi.String(\"code-example-tf-deployment\"),\n\t\t\tStorage: \u0026realtimecompute.VvpInstanceStorageArgs{\n\t\t\t\tOss: \u0026realtimecompute.VvpInstanceStorageOssArgs{\n\t\t\t\t\tBucket: defaultBucket.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVpcId: _default.ID(),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tResourceSpec: \u0026realtimecompute.VvpInstanceResourceSpecArgs{\n\t\t\t\tCpu:      pulumi.Int(8),\n\t\t\t\tMemoryGb: pulumi.Int(32),\n\t\t\t},\n\t\t\tPaymentType: pulumi.String(\"PayAsYouGo\"),\n\t\t\tZoneId:      defaultSwitch.ZoneId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = realtimecompute.NewDeployment(ctx, \"create_Deployment9\", \u0026realtimecompute.DeploymentArgs{\n\t\t\tDeploymentName: pulumi.String(\"tf-example-deployment-sql-56\"),\n\t\t\tEngineVersion:  pulumi.String(\"vvr-8.0.10-flink-1.17\"),\n\t\t\tResourceId:     defaultVvpInstance.ResourceId,\n\t\t\tExecutionMode:  pulumi.String(\"STREAMING\"),\n\t\t\tDeploymentTarget: \u0026realtimecompute.DeploymentDeploymentTargetArgs{\n\t\t\t\tMode: pulumi.String(\"PER_JOB\"),\n\t\t\t\tName: pulumi.String(\"default-queue\"),\n\t\t\t},\n\t\t\tNamespace: defaultVvpInstance.VvpInstanceName.ApplyT(func(vvpInstanceName string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v-default\", vvpInstanceName), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tArtifact: \u0026realtimecompute.DeploymentArtifactArgs{\n\t\t\t\tKind: pulumi.String(\"SQLSCRIPT\"),\n\t\t\t\tSqlArtifact: \u0026realtimecompute.DeploymentArtifactSqlArtifactArgs{\n\t\t\t\t\tSqlScript: pulumi.String(\"create temporary table `datagen` ( id varchar, name varchar ) with ( 'connector' = 'datagen' );  create temporary table `blackhole` ( id varchar, name varchar ) with ( 'connector' = 'blackhole' );  insert into blackhole select * from datagen;\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.realtimecompute.VvpInstance;\nimport com.pulumi.alicloud.realtimecompute.VvpInstanceArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.VvpInstanceStorageArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.VvpInstanceStorageOssArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.VvpInstanceResourceSpecArgs;\nimport com.pulumi.alicloud.realtimecompute.Deployment;\nimport com.pulumi.alicloud.realtimecompute.DeploymentArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.DeploymentDeploymentTargetArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.DeploymentArtifactArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.DeploymentArtifactSqlArtifactArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .isDefault(false)\n            .cidrBlock(\"172.16.0.0/16\")\n            .vpcName(\"example-tf-vpc-deployment\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .isDefault(false)\n            .vpcId(default_.id())\n            .zoneId(\"cn-beijing-g\")\n            .cidrBlock(\"172.16.0.0/24\")\n            .vswitchName(\"example-tf-vSwitch-deployment\")\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\");\n\n        var defaultVvpInstance = new VvpInstance(\"defaultVvpInstance\", VvpInstanceArgs.builder()\n            .vvpInstanceName(\"code-example-tf-deployment\")\n            .storage(VvpInstanceStorageArgs.builder()\n                .oss(VvpInstanceStorageOssArgs.builder()\n                    .bucket(defaultBucket.id())\n                    .build())\n                .build())\n            .vpcId(default_.id())\n            .vswitchIds(defaultSwitch.id())\n            .resourceSpec(VvpInstanceResourceSpecArgs.builder()\n                .cpu(8)\n                .memoryGb(32)\n                .build())\n            .paymentType(\"PayAsYouGo\")\n            .zoneId(defaultSwitch.zoneId())\n            .build());\n\n        var createDeployment9 = new Deployment(\"createDeployment9\", DeploymentArgs.builder()\n            .deploymentName(\"tf-example-deployment-sql-56\")\n            .engineVersion(\"vvr-8.0.10-flink-1.17\")\n            .resourceId(defaultVvpInstance.resourceId())\n            .executionMode(\"STREAMING\")\n            .deploymentTarget(DeploymentDeploymentTargetArgs.builder()\n                .mode(\"PER_JOB\")\n                .name(\"default-queue\")\n                .build())\n            .namespace(defaultVvpInstance.vvpInstanceName().applyValue(_vvpInstanceName -\u003e String.format(\"%s-default\", _vvpInstanceName)))\n            .artifact(DeploymentArtifactArgs.builder()\n                .kind(\"SQLSCRIPT\")\n                .sqlArtifact(DeploymentArtifactSqlArtifactArgs.builder()\n                    .sqlScript(\"create temporary table `datagen` ( id varchar, name varchar ) with ( 'connector' = 'datagen' );  create temporary table `blackhole` ( id varchar, name varchar ) with ( 'connector' = 'blackhole' );  insert into blackhole select * from datagen;\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:vpc:Network\n    properties:\n      isDefault: false\n      cidrBlock: 172.16.0.0/16\n      vpcName: example-tf-vpc-deployment\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      isDefault: false\n      vpcId: ${default.id}\n      zoneId: cn-beijing-g\n      cidrBlock: 172.16.0.0/24\n      vswitchName: example-tf-vSwitch-deployment\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n  defaultVvpInstance:\n    type: alicloud:realtimecompute:VvpInstance\n    name: default\n    properties:\n      vvpInstanceName: code-example-tf-deployment\n      storage:\n        oss:\n          bucket: ${defaultBucket.id}\n      vpcId: ${default.id}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      resourceSpec:\n        cpu: '8'\n        memoryGb: '32'\n      paymentType: PayAsYouGo\n      zoneId: ${defaultSwitch.zoneId}\n  createDeployment9:\n    type: alicloud:realtimecompute:Deployment\n    name: create_Deployment9\n    properties:\n      deploymentName: tf-example-deployment-sql-56\n      engineVersion: vvr-8.0.10-flink-1.17\n      resourceId: ${defaultVvpInstance.resourceId}\n      executionMode: STREAMING\n      deploymentTarget:\n        mode: PER_JOB\n        name: default-queue\n      namespace: ${defaultVvpInstance.vvpInstanceName}-default\n      artifact:\n        kind: SQLSCRIPT\n        sqlArtifact:\n          sqlScript: create temporary table `datagen` ( id varchar, name varchar ) with ( 'connector' = 'datagen' );  create temporary table `blackhole` ( id varchar, name varchar ) with ( 'connector' = 'blackhole' );  insert into blackhole select * from datagen;\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRealtime Compute Deployment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:realtimecompute/deployment:Deployment example \u003cresource_id\u003e:\u003cnamespace\u003e:\u003cdeployment_id\u003e\n```\n\n","properties":{"artifact":{"$ref":"#/types/alicloud:realtimecompute/DeploymentArtifact:DeploymentArtifact","description":"Content of the deployment job See \u003cspan pulumi-lang-nodejs=\"`artifact`\" pulumi-lang-dotnet=\"`Artifact`\" pulumi-lang-go=\"`artifact`\" pulumi-lang-python=\"`artifact`\" pulumi-lang-yaml=\"`artifact`\" pulumi-lang-java=\"`artifact`\"\u003e`artifact`\u003c/span\u003e below.\n"},"batchResourceSetting":{"$ref":"#/types/alicloud:realtimecompute/DeploymentBatchResourceSetting:DeploymentBatchResourceSetting","description":"Batch job resource settings See \u003cspan pulumi-lang-nodejs=\"`batchResourceSetting`\" pulumi-lang-dotnet=\"`BatchResourceSetting`\" pulumi-lang-go=\"`batchResourceSetting`\" pulumi-lang-python=\"`batch_resource_setting`\" pulumi-lang-yaml=\"`batchResourceSetting`\" pulumi-lang-java=\"`batchResourceSetting`\"\u003e`batch_resource_setting`\u003c/span\u003e below.\n"},"deploymentId":{"type":"string","description":"Resource property field representing the primary resource ID\n"},"deploymentName":{"type":"string","description":"Name of the deployment\n"},"deploymentTarget":{"$ref":"#/types/alicloud:realtimecompute/DeploymentDeploymentTarget:DeploymentDeploymentTarget","description":"Deployment target See \u003cspan pulumi-lang-nodejs=\"`deploymentTarget`\" pulumi-lang-dotnet=\"`DeploymentTarget`\" pulumi-lang-go=\"`deploymentTarget`\" pulumi-lang-python=\"`deployment_target`\" pulumi-lang-yaml=\"`deploymentTarget`\" pulumi-lang-java=\"`deploymentTarget`\"\u003e`deployment_target`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"Description\n"},"engineVersion":{"type":"string","description":"Engine version of the deployment instance\n"},"executionMode":{"type":"string","description":"Execution mode. Valid values: STREAMING or BATCH.\n"},"flinkConf":{"type":"object","additionalProperties":{"type":"string"},"description":"Flink configuration\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Deployment labels\n"},"localVariables":{"type":"array","items":{"$ref":"#/types/alicloud:realtimecompute/DeploymentLocalVariable:DeploymentLocalVariable"},"description":"Job variables See \u003cspan pulumi-lang-nodejs=\"`localVariables`\" pulumi-lang-dotnet=\"`LocalVariables`\" pulumi-lang-go=\"`localVariables`\" pulumi-lang-python=\"`local_variables`\" pulumi-lang-yaml=\"`localVariables`\" pulumi-lang-java=\"`localVariables`\"\u003e`local_variables`\u003c/span\u003e below.\n"},"logging":{"$ref":"#/types/alicloud:realtimecompute/DeploymentLogging:DeploymentLogging","description":"Job log configuration   See \u003cspan pulumi-lang-nodejs=\"`logging`\" pulumi-lang-dotnet=\"`Logging`\" pulumi-lang-go=\"`logging`\" pulumi-lang-python=\"`logging`\" pulumi-lang-yaml=\"`logging`\" pulumi-lang-java=\"`logging`\"\u003e`logging`\u003c/span\u003e below.\n"},"namespace":{"type":"string","description":"Namespace name\n"},"resourceId":{"type":"string","description":"Workspace resource ID\n"},"streamingResourceSetting":{"$ref":"#/types/alicloud:realtimecompute/DeploymentStreamingResourceSetting:DeploymentStreamingResourceSetting","description":"Resource settings for streaming mode See \u003cspan pulumi-lang-nodejs=\"`streamingResourceSetting`\" pulumi-lang-dotnet=\"`StreamingResourceSetting`\" pulumi-lang-go=\"`streamingResourceSetting`\" pulumi-lang-python=\"`streaming_resource_setting`\" pulumi-lang-yaml=\"`streamingResourceSetting`\" pulumi-lang-java=\"`streamingResourceSetting`\"\u003e`streaming_resource_setting`\u003c/span\u003e below.\n"}},"required":["artifact","deploymentId","deploymentName","deploymentTarget","engineVersion","executionMode","flinkConf","logging","namespace","resourceId","streamingResourceSetting"],"inputProperties":{"artifact":{"$ref":"#/types/alicloud:realtimecompute/DeploymentArtifact:DeploymentArtifact","description":"Content of the deployment job See \u003cspan pulumi-lang-nodejs=\"`artifact`\" pulumi-lang-dotnet=\"`Artifact`\" pulumi-lang-go=\"`artifact`\" pulumi-lang-python=\"`artifact`\" pulumi-lang-yaml=\"`artifact`\" pulumi-lang-java=\"`artifact`\"\u003e`artifact`\u003c/span\u003e below.\n"},"batchResourceSetting":{"$ref":"#/types/alicloud:realtimecompute/DeploymentBatchResourceSetting:DeploymentBatchResourceSetting","description":"Batch job resource settings See \u003cspan pulumi-lang-nodejs=\"`batchResourceSetting`\" pulumi-lang-dotnet=\"`BatchResourceSetting`\" pulumi-lang-go=\"`batchResourceSetting`\" pulumi-lang-python=\"`batch_resource_setting`\" pulumi-lang-yaml=\"`batchResourceSetting`\" pulumi-lang-java=\"`batchResourceSetting`\"\u003e`batch_resource_setting`\u003c/span\u003e below.\n"},"deploymentName":{"type":"string","description":"Name of the deployment\n"},"deploymentTarget":{"$ref":"#/types/alicloud:realtimecompute/DeploymentDeploymentTarget:DeploymentDeploymentTarget","description":"Deployment target See \u003cspan pulumi-lang-nodejs=\"`deploymentTarget`\" pulumi-lang-dotnet=\"`DeploymentTarget`\" pulumi-lang-go=\"`deploymentTarget`\" pulumi-lang-python=\"`deployment_target`\" pulumi-lang-yaml=\"`deploymentTarget`\" pulumi-lang-java=\"`deploymentTarget`\"\u003e`deployment_target`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"Description\n"},"engineVersion":{"type":"string","description":"Engine version of the deployment instance\n"},"executionMode":{"type":"string","description":"Execution mode. Valid values: STREAMING or BATCH.\n","willReplaceOnChanges":true},"flinkConf":{"type":"object","additionalProperties":{"type":"string"},"description":"Flink configuration\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Deployment labels\n"},"localVariables":{"type":"array","items":{"$ref":"#/types/alicloud:realtimecompute/DeploymentLocalVariable:DeploymentLocalVariable"},"description":"Job variables See \u003cspan pulumi-lang-nodejs=\"`localVariables`\" pulumi-lang-dotnet=\"`LocalVariables`\" pulumi-lang-go=\"`localVariables`\" pulumi-lang-python=\"`local_variables`\" pulumi-lang-yaml=\"`localVariables`\" pulumi-lang-java=\"`localVariables`\"\u003e`local_variables`\u003c/span\u003e below.\n"},"logging":{"$ref":"#/types/alicloud:realtimecompute/DeploymentLogging:DeploymentLogging","description":"Job log configuration   See \u003cspan pulumi-lang-nodejs=\"`logging`\" pulumi-lang-dotnet=\"`Logging`\" pulumi-lang-go=\"`logging`\" pulumi-lang-python=\"`logging`\" pulumi-lang-yaml=\"`logging`\" pulumi-lang-java=\"`logging`\"\u003e`logging`\u003c/span\u003e below.\n"},"namespace":{"type":"string","description":"Namespace name\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"Workspace resource ID\n","willReplaceOnChanges":true},"streamingResourceSetting":{"$ref":"#/types/alicloud:realtimecompute/DeploymentStreamingResourceSetting:DeploymentStreamingResourceSetting","description":"Resource settings for streaming mode See \u003cspan pulumi-lang-nodejs=\"`streamingResourceSetting`\" pulumi-lang-dotnet=\"`StreamingResourceSetting`\" pulumi-lang-go=\"`streamingResourceSetting`\" pulumi-lang-python=\"`streaming_resource_setting`\" pulumi-lang-yaml=\"`streamingResourceSetting`\" pulumi-lang-java=\"`streamingResourceSetting`\"\u003e`streaming_resource_setting`\u003c/span\u003e below.\n"}},"requiredInputs":["artifact","deploymentName","deploymentTarget","executionMode","namespace"],"stateInputs":{"description":"Input properties used for looking up and filtering Deployment resources.\n","properties":{"artifact":{"$ref":"#/types/alicloud:realtimecompute/DeploymentArtifact:DeploymentArtifact","description":"Content of the deployment job See \u003cspan pulumi-lang-nodejs=\"`artifact`\" pulumi-lang-dotnet=\"`Artifact`\" pulumi-lang-go=\"`artifact`\" pulumi-lang-python=\"`artifact`\" pulumi-lang-yaml=\"`artifact`\" pulumi-lang-java=\"`artifact`\"\u003e`artifact`\u003c/span\u003e below.\n"},"batchResourceSetting":{"$ref":"#/types/alicloud:realtimecompute/DeploymentBatchResourceSetting:DeploymentBatchResourceSetting","description":"Batch job resource settings See \u003cspan pulumi-lang-nodejs=\"`batchResourceSetting`\" pulumi-lang-dotnet=\"`BatchResourceSetting`\" pulumi-lang-go=\"`batchResourceSetting`\" pulumi-lang-python=\"`batch_resource_setting`\" pulumi-lang-yaml=\"`batchResourceSetting`\" pulumi-lang-java=\"`batchResourceSetting`\"\u003e`batch_resource_setting`\u003c/span\u003e below.\n"},"deploymentId":{"type":"string","description":"Resource property field representing the primary resource ID\n"},"deploymentName":{"type":"string","description":"Name of the deployment\n"},"deploymentTarget":{"$ref":"#/types/alicloud:realtimecompute/DeploymentDeploymentTarget:DeploymentDeploymentTarget","description":"Deployment target See \u003cspan pulumi-lang-nodejs=\"`deploymentTarget`\" pulumi-lang-dotnet=\"`DeploymentTarget`\" pulumi-lang-go=\"`deploymentTarget`\" pulumi-lang-python=\"`deployment_target`\" pulumi-lang-yaml=\"`deploymentTarget`\" pulumi-lang-java=\"`deploymentTarget`\"\u003e`deployment_target`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"Description\n"},"engineVersion":{"type":"string","description":"Engine version of the deployment instance\n"},"executionMode":{"type":"string","description":"Execution mode. Valid values: STREAMING or BATCH.\n","willReplaceOnChanges":true},"flinkConf":{"type":"object","additionalProperties":{"type":"string"},"description":"Flink configuration\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Deployment labels\n"},"localVariables":{"type":"array","items":{"$ref":"#/types/alicloud:realtimecompute/DeploymentLocalVariable:DeploymentLocalVariable"},"description":"Job variables See \u003cspan pulumi-lang-nodejs=\"`localVariables`\" pulumi-lang-dotnet=\"`LocalVariables`\" pulumi-lang-go=\"`localVariables`\" pulumi-lang-python=\"`local_variables`\" pulumi-lang-yaml=\"`localVariables`\" pulumi-lang-java=\"`localVariables`\"\u003e`local_variables`\u003c/span\u003e below.\n"},"logging":{"$ref":"#/types/alicloud:realtimecompute/DeploymentLogging:DeploymentLogging","description":"Job log configuration   See \u003cspan pulumi-lang-nodejs=\"`logging`\" pulumi-lang-dotnet=\"`Logging`\" pulumi-lang-go=\"`logging`\" pulumi-lang-python=\"`logging`\" pulumi-lang-yaml=\"`logging`\" pulumi-lang-java=\"`logging`\"\u003e`logging`\u003c/span\u003e below.\n"},"namespace":{"type":"string","description":"Namespace name\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"Workspace resource ID\n","willReplaceOnChanges":true},"streamingResourceSetting":{"$ref":"#/types/alicloud:realtimecompute/DeploymentStreamingResourceSetting:DeploymentStreamingResourceSetting","description":"Resource settings for streaming mode See \u003cspan pulumi-lang-nodejs=\"`streamingResourceSetting`\" pulumi-lang-dotnet=\"`StreamingResourceSetting`\" pulumi-lang-go=\"`streamingResourceSetting`\" pulumi-lang-python=\"`streaming_resource_setting`\" pulumi-lang-yaml=\"`streamingResourceSetting`\" pulumi-lang-java=\"`streamingResourceSetting`\"\u003e`streaming_resource_setting`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:realtimecompute/job:Job":{"description":"Provides a Realtime Compute Job resource.\n\n\n\nFor information about Realtime Compute Job and how to use it, see [What is Job](https://next.api.alibabacloud.com/document/ververica/2022-07-18/StartJobWithParams).\n\n\u003e **NOTE:** Available since v1.265.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.vpc.Network(\"default\", {\n    isDefault: false,\n    cidrBlock: \"172.16.0.0/16\",\n    vpcName: \"example-tf-vpc-deployment\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    isDefault: false,\n    vpcId: _default.id,\n    zoneId: \"cn-beijing-g\",\n    cidrBlock: \"172.16.0.0/24\",\n    vswitchName: \"example-tf-vSwitch-deployment\",\n});\nconst defaultBucket = new alicloud.oss.Bucket(\"default\", {});\nconst defaultVvpInstance = new alicloud.realtimecompute.VvpInstance(\"default\", {\n    vvpInstanceName: \"code-example-tf-deployment\",\n    storage: {\n        oss: {\n            bucket: defaultBucket.id,\n        },\n    },\n    vpcId: _default.id,\n    vswitchIds: [defaultSwitch.id],\n    resourceSpec: {\n        cpu: 8,\n        memoryGb: 32,\n    },\n    paymentType: \"PayAsYouGo\",\n    zoneId: defaultSwitch.zoneId,\n});\nconst createDeployment9 = new alicloud.realtimecompute.Deployment(\"create_Deployment9\", {\n    deploymentName: \"tf-example-deployment-sql-56\",\n    engineVersion: \"vvr-8.0.10-flink-1.17\",\n    resourceId: defaultVvpInstance.resourceId,\n    executionMode: \"STREAMING\",\n    deploymentTarget: {\n        mode: \"PER_JOB\",\n        name: \"default-queue\",\n    },\n    namespace: pulumi.interpolate`${defaultVvpInstance.vvpInstanceName}-default`,\n    artifact: {\n        kind: \"SQLSCRIPT\",\n        sqlArtifact: {\n            sqlScript: \"create temporary table `datagen` ( id varchar, name varchar ) with ( 'connector' = 'datagen' );  create temporary table `blackhole` ( id varchar, name varchar ) with ( 'connector' = 'blackhole' );  insert into blackhole select * from datagen;\",\n        },\n    },\n});\nconst defaultJob = new alicloud.realtimecompute.Job(\"default\", {\n    localVariables: [{\n        value: \"qq\",\n        name: \"tt\",\n    }],\n    restoreStrategy: {\n        kind: \"NONE\",\n        jobStartTimeInMs: 1763694521254,\n    },\n    namespace: pulumi.interpolate`${defaultVvpInstance.vvpInstanceName}-default`,\n    stopStrategy: \"NONE\",\n    deploymentId: createDeployment9.deploymentId,\n    resourceQueueName: \"default-queue\",\n    status: {\n        currentJobStatus: \"CANCELLED\",\n    },\n    resourceId: defaultVvpInstance.resourceId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.vpc.Network(\"default\",\n    is_default=False,\n    cidr_block=\"172.16.0.0/16\",\n    vpc_name=\"example-tf-vpc-deployment\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    is_default=False,\n    vpc_id=default.id,\n    zone_id=\"cn-beijing-g\",\n    cidr_block=\"172.16.0.0/24\",\n    vswitch_name=\"example-tf-vSwitch-deployment\")\ndefault_bucket = alicloud.oss.Bucket(\"default\")\ndefault_vvp_instance = alicloud.realtimecompute.VvpInstance(\"default\",\n    vvp_instance_name=\"code-example-tf-deployment\",\n    storage={\n        \"oss\": {\n            \"bucket\": default_bucket.id,\n        },\n    },\n    vpc_id=default.id,\n    vswitch_ids=[default_switch.id],\n    resource_spec={\n        \"cpu\": 8,\n        \"memory_gb\": 32,\n    },\n    payment_type=\"PayAsYouGo\",\n    zone_id=default_switch.zone_id)\ncreate_deployment9 = alicloud.realtimecompute.Deployment(\"create_Deployment9\",\n    deployment_name=\"tf-example-deployment-sql-56\",\n    engine_version=\"vvr-8.0.10-flink-1.17\",\n    resource_id=default_vvp_instance.resource_id,\n    execution_mode=\"STREAMING\",\n    deployment_target={\n        \"mode\": \"PER_JOB\",\n        \"name\": \"default-queue\",\n    },\n    namespace=default_vvp_instance.vvp_instance_name.apply(lambda vvp_instance_name: f\"{vvp_instance_name}-default\"),\n    artifact={\n        \"kind\": \"SQLSCRIPT\",\n        \"sql_artifact\": {\n            \"sql_script\": \"create temporary table `datagen` ( id varchar, name varchar ) with ( 'connector' = 'datagen' );  create temporary table `blackhole` ( id varchar, name varchar ) with ( 'connector' = 'blackhole' );  insert into blackhole select * from datagen;\",\n        },\n    })\ndefault_job = alicloud.realtimecompute.Job(\"default\",\n    local_variables=[{\n        \"value\": \"qq\",\n        \"name\": \"tt\",\n    }],\n    restore_strategy={\n        \"kind\": \"NONE\",\n        \"job_start_time_in_ms\": 1763694521254,\n    },\n    namespace=default_vvp_instance.vvp_instance_name.apply(lambda vvp_instance_name: f\"{vvp_instance_name}-default\"),\n    stop_strategy=\"NONE\",\n    deployment_id=create_deployment9.deployment_id,\n    resource_queue_name=\"default-queue\",\n    status={\n        \"current_job_status\": \"CANCELLED\",\n    },\n    resource_id=default_vvp_instance.resource_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        IsDefault = false,\n        CidrBlock = \"172.16.0.0/16\",\n        VpcName = \"example-tf-vpc-deployment\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        IsDefault = false,\n        VpcId = @default.Id,\n        ZoneId = \"cn-beijing-g\",\n        CidrBlock = \"172.16.0.0/24\",\n        VswitchName = \"example-tf-vSwitch-deployment\",\n    });\n\n    var defaultBucket = new AliCloud.Oss.Bucket(\"default\");\n\n    var defaultVvpInstance = new AliCloud.RealtimeCompute.VvpInstance(\"default\", new()\n    {\n        VvpInstanceName = \"code-example-tf-deployment\",\n        Storage = new AliCloud.RealtimeCompute.Inputs.VvpInstanceStorageArgs\n        {\n            Oss = new AliCloud.RealtimeCompute.Inputs.VvpInstanceStorageOssArgs\n            {\n                Bucket = defaultBucket.Id,\n            },\n        },\n        VpcId = @default.Id,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        ResourceSpec = new AliCloud.RealtimeCompute.Inputs.VvpInstanceResourceSpecArgs\n        {\n            Cpu = 8,\n            MemoryGb = 32,\n        },\n        PaymentType = \"PayAsYouGo\",\n        ZoneId = defaultSwitch.ZoneId,\n    });\n\n    var createDeployment9 = new AliCloud.RealtimeCompute.Deployment(\"create_Deployment9\", new()\n    {\n        DeploymentName = \"tf-example-deployment-sql-56\",\n        EngineVersion = \"vvr-8.0.10-flink-1.17\",\n        ResourceId = defaultVvpInstance.ResourceId,\n        ExecutionMode = \"STREAMING\",\n        DeploymentTarget = new AliCloud.RealtimeCompute.Inputs.DeploymentDeploymentTargetArgs\n        {\n            Mode = \"PER_JOB\",\n            Name = \"default-queue\",\n        },\n        Namespace = defaultVvpInstance.VvpInstanceName.Apply(vvpInstanceName =\u003e $\"{vvpInstanceName}-default\"),\n        Artifact = new AliCloud.RealtimeCompute.Inputs.DeploymentArtifactArgs\n        {\n            Kind = \"SQLSCRIPT\",\n            SqlArtifact = new AliCloud.RealtimeCompute.Inputs.DeploymentArtifactSqlArtifactArgs\n            {\n                SqlScript = \"create temporary table `datagen` ( id varchar, name varchar ) with ( 'connector' = 'datagen' );  create temporary table `blackhole` ( id varchar, name varchar ) with ( 'connector' = 'blackhole' );  insert into blackhole select * from datagen;\",\n            },\n        },\n    });\n\n    var defaultJob = new AliCloud.RealtimeCompute.Job(\"default\", new()\n    {\n        LocalVariables = new[]\n        {\n            new AliCloud.RealtimeCompute.Inputs.JobLocalVariableArgs\n            {\n                Value = \"qq\",\n                Name = \"tt\",\n            },\n        },\n        RestoreStrategy = new AliCloud.RealtimeCompute.Inputs.JobRestoreStrategyArgs\n        {\n            Kind = \"NONE\",\n            JobStartTimeInMs = 1763694521254,\n        },\n        Namespace = defaultVvpInstance.VvpInstanceName.Apply(vvpInstanceName =\u003e $\"{vvpInstanceName}-default\"),\n        StopStrategy = \"NONE\",\n        DeploymentId = createDeployment9.DeploymentId,\n        ResourceQueueName = \"default-queue\",\n        Status = new AliCloud.RealtimeCompute.Inputs.JobStatusArgs\n        {\n            CurrentJobStatus = \"CANCELLED\",\n        },\n        ResourceId = defaultVvpInstance.ResourceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/realtimecompute\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tIsDefault: pulumi.Bool(false),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t\tVpcName:   pulumi.String(\"example-tf-vpc-deployment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tIsDefault:   pulumi.Bool(false),\n\t\t\tVpcId:       _default.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-beijing-g\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"example-tf-vSwitch-deployment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBucket, err := oss.NewBucket(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVvpInstance, err := realtimecompute.NewVvpInstance(ctx, \"default\", \u0026realtimecompute.VvpInstanceArgs{\n\t\t\tVvpInstanceName: pulumi.String(\"code-example-tf-deployment\"),\n\t\t\tStorage: \u0026realtimecompute.VvpInstanceStorageArgs{\n\t\t\t\tOss: \u0026realtimecompute.VvpInstanceStorageOssArgs{\n\t\t\t\t\tBucket: defaultBucket.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVpcId: _default.ID(),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tResourceSpec: \u0026realtimecompute.VvpInstanceResourceSpecArgs{\n\t\t\t\tCpu:      pulumi.Int(8),\n\t\t\t\tMemoryGb: pulumi.Int(32),\n\t\t\t},\n\t\t\tPaymentType: pulumi.String(\"PayAsYouGo\"),\n\t\t\tZoneId:      defaultSwitch.ZoneId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateDeployment9, err := realtimecompute.NewDeployment(ctx, \"create_Deployment9\", \u0026realtimecompute.DeploymentArgs{\n\t\t\tDeploymentName: pulumi.String(\"tf-example-deployment-sql-56\"),\n\t\t\tEngineVersion:  pulumi.String(\"vvr-8.0.10-flink-1.17\"),\n\t\t\tResourceId:     defaultVvpInstance.ResourceId,\n\t\t\tExecutionMode:  pulumi.String(\"STREAMING\"),\n\t\t\tDeploymentTarget: \u0026realtimecompute.DeploymentDeploymentTargetArgs{\n\t\t\t\tMode: pulumi.String(\"PER_JOB\"),\n\t\t\t\tName: pulumi.String(\"default-queue\"),\n\t\t\t},\n\t\t\tNamespace: defaultVvpInstance.VvpInstanceName.ApplyT(func(vvpInstanceName string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v-default\", vvpInstanceName), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tArtifact: \u0026realtimecompute.DeploymentArtifactArgs{\n\t\t\t\tKind: pulumi.String(\"SQLSCRIPT\"),\n\t\t\t\tSqlArtifact: \u0026realtimecompute.DeploymentArtifactSqlArtifactArgs{\n\t\t\t\t\tSqlScript: pulumi.String(\"create temporary table `datagen` ( id varchar, name varchar ) with ( 'connector' = 'datagen' );  create temporary table `blackhole` ( id varchar, name varchar ) with ( 'connector' = 'blackhole' );  insert into blackhole select * from datagen;\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = realtimecompute.NewJob(ctx, \"default\", \u0026realtimecompute.JobArgs{\n\t\t\tLocalVariables: realtimecompute.JobLocalVariableArray{\n\t\t\t\t\u0026realtimecompute.JobLocalVariableArgs{\n\t\t\t\t\tValue: pulumi.String(\"qq\"),\n\t\t\t\t\tName:  pulumi.String(\"tt\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRestoreStrategy: \u0026realtimecompute.JobRestoreStrategyArgs{\n\t\t\t\tKind:             pulumi.String(\"NONE\"),\n\t\t\t\tJobStartTimeInMs: pulumi.Int(1763694521254),\n\t\t\t},\n\t\t\tNamespace: defaultVvpInstance.VvpInstanceName.ApplyT(func(vvpInstanceName string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v-default\", vvpInstanceName), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tStopStrategy:      pulumi.String(\"NONE\"),\n\t\t\tDeploymentId:      createDeployment9.DeploymentId,\n\t\t\tResourceQueueName: pulumi.String(\"default-queue\"),\n\t\t\tStatus: \u0026realtimecompute.JobStatusArgs{\n\t\t\t\tCurrentJobStatus: pulumi.String(\"CANCELLED\"),\n\t\t\t},\n\t\t\tResourceId: defaultVvpInstance.ResourceId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.realtimecompute.VvpInstance;\nimport com.pulumi.alicloud.realtimecompute.VvpInstanceArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.VvpInstanceStorageArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.VvpInstanceStorageOssArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.VvpInstanceResourceSpecArgs;\nimport com.pulumi.alicloud.realtimecompute.Deployment;\nimport com.pulumi.alicloud.realtimecompute.DeploymentArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.DeploymentDeploymentTargetArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.DeploymentArtifactArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.DeploymentArtifactSqlArtifactArgs;\nimport com.pulumi.alicloud.realtimecompute.Job;\nimport com.pulumi.alicloud.realtimecompute.JobArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.JobLocalVariableArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.JobRestoreStrategyArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.JobStatusArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .isDefault(false)\n            .cidrBlock(\"172.16.0.0/16\")\n            .vpcName(\"example-tf-vpc-deployment\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .isDefault(false)\n            .vpcId(default_.id())\n            .zoneId(\"cn-beijing-g\")\n            .cidrBlock(\"172.16.0.0/24\")\n            .vswitchName(\"example-tf-vSwitch-deployment\")\n            .build());\n\n        var defaultBucket = new Bucket(\"defaultBucket\");\n\n        var defaultVvpInstance = new VvpInstance(\"defaultVvpInstance\", VvpInstanceArgs.builder()\n            .vvpInstanceName(\"code-example-tf-deployment\")\n            .storage(VvpInstanceStorageArgs.builder()\n                .oss(VvpInstanceStorageOssArgs.builder()\n                    .bucket(defaultBucket.id())\n                    .build())\n                .build())\n            .vpcId(default_.id())\n            .vswitchIds(defaultSwitch.id())\n            .resourceSpec(VvpInstanceResourceSpecArgs.builder()\n                .cpu(8)\n                .memoryGb(32)\n                .build())\n            .paymentType(\"PayAsYouGo\")\n            .zoneId(defaultSwitch.zoneId())\n            .build());\n\n        var createDeployment9 = new Deployment(\"createDeployment9\", DeploymentArgs.builder()\n            .deploymentName(\"tf-example-deployment-sql-56\")\n            .engineVersion(\"vvr-8.0.10-flink-1.17\")\n            .resourceId(defaultVvpInstance.resourceId())\n            .executionMode(\"STREAMING\")\n            .deploymentTarget(DeploymentDeploymentTargetArgs.builder()\n                .mode(\"PER_JOB\")\n                .name(\"default-queue\")\n                .build())\n            .namespace(defaultVvpInstance.vvpInstanceName().applyValue(_vvpInstanceName -\u003e String.format(\"%s-default\", _vvpInstanceName)))\n            .artifact(DeploymentArtifactArgs.builder()\n                .kind(\"SQLSCRIPT\")\n                .sqlArtifact(DeploymentArtifactSqlArtifactArgs.builder()\n                    .sqlScript(\"create temporary table `datagen` ( id varchar, name varchar ) with ( 'connector' = 'datagen' );  create temporary table `blackhole` ( id varchar, name varchar ) with ( 'connector' = 'blackhole' );  insert into blackhole select * from datagen;\")\n                    .build())\n                .build())\n            .build());\n\n        var defaultJob = new Job(\"defaultJob\", JobArgs.builder()\n            .localVariables(JobLocalVariableArgs.builder()\n                .value(\"qq\")\n                .name(\"tt\")\n                .build())\n            .restoreStrategy(JobRestoreStrategyArgs.builder()\n                .kind(\"NONE\")\n                .jobStartTimeInMs(1763694521254)\n                .build())\n            .namespace(defaultVvpInstance.vvpInstanceName().applyValue(_vvpInstanceName -\u003e String.format(\"%s-default\", _vvpInstanceName)))\n            .stopStrategy(\"NONE\")\n            .deploymentId(createDeployment9.deploymentId())\n            .resourceQueueName(\"default-queue\")\n            .status(JobStatusArgs.builder()\n                .currentJobStatus(\"CANCELLED\")\n                .build())\n            .resourceId(defaultVvpInstance.resourceId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:vpc:Network\n    properties:\n      isDefault: false\n      cidrBlock: 172.16.0.0/16\n      vpcName: example-tf-vpc-deployment\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      isDefault: false\n      vpcId: ${default.id}\n      zoneId: cn-beijing-g\n      cidrBlock: 172.16.0.0/24\n      vswitchName: example-tf-vSwitch-deployment\n  defaultBucket:\n    type: alicloud:oss:Bucket\n    name: default\n  defaultVvpInstance:\n    type: alicloud:realtimecompute:VvpInstance\n    name: default\n    properties:\n      vvpInstanceName: code-example-tf-deployment\n      storage:\n        oss:\n          bucket: ${defaultBucket.id}\n      vpcId: ${default.id}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      resourceSpec:\n        cpu: '8'\n        memoryGb: '32'\n      paymentType: PayAsYouGo\n      zoneId: ${defaultSwitch.zoneId}\n  createDeployment9:\n    type: alicloud:realtimecompute:Deployment\n    name: create_Deployment9\n    properties:\n      deploymentName: tf-example-deployment-sql-56\n      engineVersion: vvr-8.0.10-flink-1.17\n      resourceId: ${defaultVvpInstance.resourceId}\n      executionMode: STREAMING\n      deploymentTarget:\n        mode: PER_JOB\n        name: default-queue\n      namespace: ${defaultVvpInstance.vvpInstanceName}-default\n      artifact:\n        kind: SQLSCRIPT\n        sqlArtifact:\n          sqlScript: create temporary table `datagen` ( id varchar, name varchar ) with ( 'connector' = 'datagen' );  create temporary table `blackhole` ( id varchar, name varchar ) with ( 'connector' = 'blackhole' );  insert into blackhole select * from datagen;\n  defaultJob:\n    type: alicloud:realtimecompute:Job\n    name: default\n    properties:\n      localVariables:\n        - value: qq\n          name: tt\n      restoreStrategy:\n        kind: NONE\n        jobStartTimeInMs: '1763694521254'\n      namespace: ${defaultVvpInstance.vvpInstanceName}-default\n      stopStrategy: NONE\n      deploymentId: ${createDeployment9.deploymentId}\n      resourceQueueName: default-queue\n      status:\n        currentJobStatus: CANCELLED\n      resourceId: ${defaultVvpInstance.resourceId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRealtime Compute Job can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:realtimecompute/job:Job example \u003cresource_id\u003e:\u003cnamespace\u003e:\u003cjob_id\u003e\n```\n\n","properties":{"deploymentId":{"type":"string","description":"deploymentId\n"},"jobId":{"type":"string","description":"The first ID of the resource\n"},"localVariables":{"type":"array","items":{"$ref":"#/types/alicloud:realtimecompute/JobLocalVariable:JobLocalVariable"},"description":"Local variables See \u003cspan pulumi-lang-nodejs=\"`localVariables`\" pulumi-lang-dotnet=\"`LocalVariables`\" pulumi-lang-go=\"`localVariables`\" pulumi-lang-python=\"`local_variables`\" pulumi-lang-yaml=\"`localVariables`\" pulumi-lang-java=\"`localVariables`\"\u003e`local_variables`\u003c/span\u003e below.\n"},"namespace":{"type":"string","description":"namespace\n"},"resourceId":{"type":"string","description":"workspace\n"},"resourceQueueName":{"type":"string","description":"Resource Queue for Job Run\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"restoreStrategy":{"$ref":"#/types/alicloud:realtimecompute/JobRestoreStrategy:JobRestoreStrategy","description":"Restore strategy See \u003cspan pulumi-lang-nodejs=\"`restoreStrategy`\" pulumi-lang-dotnet=\"`RestoreStrategy`\" pulumi-lang-go=\"`restoreStrategy`\" pulumi-lang-python=\"`restore_strategy`\" pulumi-lang-yaml=\"`restoreStrategy`\" pulumi-lang-java=\"`restoreStrategy`\"\u003e`restore_strategy`\u003c/span\u003e below.\n"},"status":{"$ref":"#/types/alicloud:realtimecompute/JobStatus:JobStatus","description":"job status See \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e below.\n"},"stopStrategy":{"type":"string","description":"Job Stop Policy\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"}},"required":["jobId","namespace","resourceId","status"],"inputProperties":{"deploymentId":{"type":"string","description":"deploymentId\n","willReplaceOnChanges":true},"localVariables":{"type":"array","items":{"$ref":"#/types/alicloud:realtimecompute/JobLocalVariable:JobLocalVariable"},"description":"Local variables See \u003cspan pulumi-lang-nodejs=\"`localVariables`\" pulumi-lang-dotnet=\"`LocalVariables`\" pulumi-lang-go=\"`localVariables`\" pulumi-lang-python=\"`local_variables`\" pulumi-lang-yaml=\"`localVariables`\" pulumi-lang-java=\"`localVariables`\"\u003e`local_variables`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"namespace\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"workspace\n","willReplaceOnChanges":true},"resourceQueueName":{"type":"string","description":"Resource Queue for Job Run\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"restoreStrategy":{"$ref":"#/types/alicloud:realtimecompute/JobRestoreStrategy:JobRestoreStrategy","description":"Restore strategy See \u003cspan pulumi-lang-nodejs=\"`restoreStrategy`\" pulumi-lang-dotnet=\"`RestoreStrategy`\" pulumi-lang-go=\"`restoreStrategy`\" pulumi-lang-python=\"`restore_strategy`\" pulumi-lang-yaml=\"`restoreStrategy`\" pulumi-lang-java=\"`restoreStrategy`\"\u003e`restore_strategy`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"status":{"$ref":"#/types/alicloud:realtimecompute/JobStatus:JobStatus","description":"job status See \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e below.\n"},"stopStrategy":{"type":"string","description":"Job Stop Policy\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"}},"requiredInputs":["namespace","resourceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Job resources.\n","properties":{"deploymentId":{"type":"string","description":"deploymentId\n","willReplaceOnChanges":true},"jobId":{"type":"string","description":"The first ID of the resource\n"},"localVariables":{"type":"array","items":{"$ref":"#/types/alicloud:realtimecompute/JobLocalVariable:JobLocalVariable"},"description":"Local variables See \u003cspan pulumi-lang-nodejs=\"`localVariables`\" pulumi-lang-dotnet=\"`LocalVariables`\" pulumi-lang-go=\"`localVariables`\" pulumi-lang-python=\"`local_variables`\" pulumi-lang-yaml=\"`localVariables`\" pulumi-lang-java=\"`localVariables`\"\u003e`local_variables`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"namespace\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"workspace\n","willReplaceOnChanges":true},"resourceQueueName":{"type":"string","description":"Resource Queue for Job Run\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"restoreStrategy":{"$ref":"#/types/alicloud:realtimecompute/JobRestoreStrategy:JobRestoreStrategy","description":"Restore strategy See \u003cspan pulumi-lang-nodejs=\"`restoreStrategy`\" pulumi-lang-dotnet=\"`RestoreStrategy`\" pulumi-lang-go=\"`restoreStrategy`\" pulumi-lang-python=\"`restore_strategy`\" pulumi-lang-yaml=\"`restoreStrategy`\" pulumi-lang-java=\"`restoreStrategy`\"\u003e`restore_strategy`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"status":{"$ref":"#/types/alicloud:realtimecompute/JobStatus:JobStatus","description":"job status See \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e below.\n"},"stopStrategy":{"type":"string","description":"Job Stop Policy\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"}},"type":"object"}},"alicloud:realtimecompute/vvpInstance:VvpInstance":{"description":"Provides a Realtime Compute Vvp Instance resource.\n\nFor information about Realtime Compute Vvp Instance and how to use it, see [What is Vvp Instance](https://next.api.alibabacloud.com/api/foasconsole/2019-06-01/CreateInstance).\n\n\u003e **NOTE:** Available since v1.214.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst zoneId = config.get(\"zoneId\") || \"cn-hangzhou-i\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = defaultGetNetworks.then(defaultGetNetworks =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: zoneId,\n}));\nconst defaultOSS = new alicloud.oss.Bucket(\"defaultOSS\", {bucket: `${name}-${defaultInteger.result}`});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultVvpInstance = new alicloud.realtimecompute.VvpInstance(\"default\", {\n    storage: {\n        oss: {\n            bucket: defaultOSS.bucket,\n        },\n    },\n    vvpInstanceName: `${name}-${defaultInteger.result}`,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    zoneId: zoneId,\n    vswitchIds: [defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0])],\n    paymentType: \"PayAsYouGo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nzone_id = config.get(\"zoneId\")\nif zone_id is None:\n    zone_id = \"cn-hangzhou-i\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=zone_id)\ndefault_oss = alicloud.oss.Bucket(\"defaultOSS\", bucket=f\"{name}-{default_integer['result']}\")\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_vvp_instance = alicloud.realtimecompute.VvpInstance(\"default\",\n    storage={\n        \"oss\": {\n            \"bucket\": default_oss.bucket,\n        },\n    },\n    vvp_instance_name=f\"{name}-{default_integer['result']}\",\n    vpc_id=default_get_networks.ids[0],\n    zone_id=zone_id,\n    vswitch_ids=[default_get_switches.ids[0]],\n    payment_type=\"PayAsYouGo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var zoneId = config.Get(\"zoneId\") ?? \"cn-hangzhou-i\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = zoneId,\n    });\n\n    var defaultOSS = new AliCloud.Oss.Bucket(\"defaultOSS\", new()\n    {\n        BucketName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultVvpInstance = new AliCloud.RealtimeCompute.VvpInstance(\"default\", new()\n    {\n        Storage = new AliCloud.RealtimeCompute.Inputs.VvpInstanceStorageArgs\n        {\n            Oss = new AliCloud.RealtimeCompute.Inputs.VvpInstanceStorageOssArgs\n            {\n                Bucket = defaultOSS.BucketName,\n            },\n        },\n        VvpInstanceName = $\"{name}-{defaultInteger.Result}\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = zoneId,\n        VswitchIds = new[]\n        {\n            defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        },\n        PaymentType = \"PayAsYouGo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/realtimecompute\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tzoneId := \"cn-hangzhou-i\"\n\t\tif param := cfg.Get(\"zoneId\"); param != \"\" {\n\t\t\tzoneId = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(zoneId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultOSS, err := oss.NewBucket(ctx, \"defaultOSS\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = realtimecompute.NewVvpInstance(ctx, \"default\", \u0026realtimecompute.VvpInstanceArgs{\n\t\t\tStorage: \u0026realtimecompute.VvpInstanceStorageArgs{\n\t\t\t\tOss: \u0026realtimecompute.VvpInstanceStorageOssArgs{\n\t\t\t\t\tBucket: defaultOSS.Bucket,\n\t\t\t\t},\n\t\t\t},\n\t\t\tVvpInstanceName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tVpcId:           pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId:          pulumi.String(zoneId),\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\t},\n\t\t\tPaymentType: pulumi.String(\"PayAsYouGo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.realtimecompute.VvpInstance;\nimport com.pulumi.alicloud.realtimecompute.VvpInstanceArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.VvpInstanceStorageArgs;\nimport com.pulumi.alicloud.realtimecompute.inputs.VvpInstanceStorageOssArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var zoneId = config.get(\"zoneId\").orElse(\"cn-hangzhou-i\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(zoneId)\n            .build());\n\n        var defaultOSS = new Bucket(\"defaultOSS\", BucketArgs.builder()\n            .bucket(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var defaultVvpInstance = new VvpInstance(\"defaultVvpInstance\", VvpInstanceArgs.builder()\n            .storage(VvpInstanceStorageArgs.builder()\n                .oss(VvpInstanceStorageOssArgs.builder()\n                    .bucket(defaultOSS.bucket())\n                    .build())\n                .build())\n            .vvpInstanceName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(zoneId)\n            .vswitchIds(defaultGetSwitches.ids()[0])\n            .paymentType(\"PayAsYouGo\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  zoneId:\n    type: string\n    default: cn-hangzhou-i\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultOSS:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: ${name}-${defaultInteger.result}\n  defaultVvpInstance:\n    type: alicloud:realtimecompute:VvpInstance\n    name: default\n    properties:\n      storage:\n        oss:\n          bucket: ${defaultOSS.bucket}\n      vvpInstanceName: ${name}-${defaultInteger.result}\n      vpcId: ${defaultGetNetworks.ids[0]}\n      zoneId: ${zoneId}\n      vswitchIds:\n        - ${defaultGetSwitches.ids[0]}\n      paymentType: PayAsYouGo\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${zoneId}\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.realtimecompute.VvpInstance`\" pulumi-lang-dotnet=\"`alicloud.realtimecompute.VvpInstance`\" pulumi-lang-go=\"`realtimecompute.VvpInstance`\" pulumi-lang-python=\"`realtimecompute.VvpInstance`\" pulumi-lang-yaml=\"`alicloud.realtimecompute.VvpInstance`\" pulumi-lang-java=\"`alicloud.realtimecompute.VvpInstance`\"\u003e`alicloud.realtimecompute.VvpInstance`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.realtimecompute.VvpInstance`\" pulumi-lang-dotnet=\"`alicloud.realtimecompute.VvpInstance`\" pulumi-lang-go=\"`realtimecompute.VvpInstance`\" pulumi-lang-python=\"`realtimecompute.VvpInstance`\" pulumi-lang-yaml=\"`alicloud.realtimecompute.VvpInstance`\" pulumi-lang-java=\"`alicloud.realtimecompute.VvpInstance`\"\u003e`alicloud.realtimecompute.VvpInstance`\u003c/span\u003e resource allows you to manage  \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"Subscription\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRealtime Compute Vvp Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:realtimecompute/vvpInstance:VvpInstance example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"duration":{"type":"integer","description":"The number of subscription periods. If the payment type is PRE, this parameter is required.\n"},"paymentType":{"type":"string","description":"The payment type of the resource.\n"},"pricingCycle":{"type":"string","description":"The subscription period. If the payment type is PRE, this parameter is required.\n"},"resourceGroupId":{"type":"string","description":"The resource group to which the newly purchased instance belongs.\n"},"resourceId":{"type":"string","description":"(Available since v1.264.0) The ID of the K8s cluster.\n"},"resourceSpec":{"$ref":"#/types/alicloud:realtimecompute/VvpInstanceResourceSpec:VvpInstanceResourceSpec","description":"Resource specifications. See \u003cspan pulumi-lang-nodejs=\"`resourceSpec`\" pulumi-lang-dotnet=\"`ResourceSpec`\" pulumi-lang-go=\"`resourceSpec`\" pulumi-lang-python=\"`resource_spec`\" pulumi-lang-yaml=\"`resourceSpec`\" pulumi-lang-java=\"`resourceSpec`\"\u003e`resource_spec`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"storage":{"$ref":"#/types/alicloud:realtimecompute/VvpInstanceStorage:VvpInstanceStorage","description":"Store information. See \u003cspan pulumi-lang-nodejs=\"`storage`\" pulumi-lang-dotnet=\"`Storage`\" pulumi-lang-go=\"`storage`\" pulumi-lang-python=\"`storage`\" pulumi-lang-yaml=\"`storage`\" pulumi-lang-java=\"`storage`\"\u003e`storage`\u003c/span\u003e below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the resource.\n"},"vpcId":{"type":"string","description":"The VPC ID of the user.\n"},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"Virtual Switch ID.\n"},"vvpInstanceName":{"type":"string","description":"The name of the workspace.\n"},"zoneId":{"type":"string","description":"The zone ID of the resource.\n"}},"required":["createTime","paymentType","resourceGroupId","resourceId","resourceSpec","status","storage","vpcId","vswitchIds","vvpInstanceName","zoneId"],"inputProperties":{"duration":{"type":"integer","description":"The number of subscription periods. If the payment type is PRE, this parameter is required.\n"},"paymentType":{"type":"string","description":"The payment type of the resource.\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The subscription period. If the payment type is PRE, this parameter is required.\n"},"resourceGroupId":{"type":"string","description":"The resource group to which the newly purchased instance belongs.\n"},"resourceSpec":{"$ref":"#/types/alicloud:realtimecompute/VvpInstanceResourceSpec:VvpInstanceResourceSpec","description":"Resource specifications. See \u003cspan pulumi-lang-nodejs=\"`resourceSpec`\" pulumi-lang-dotnet=\"`ResourceSpec`\" pulumi-lang-go=\"`resourceSpec`\" pulumi-lang-python=\"`resource_spec`\" pulumi-lang-yaml=\"`resourceSpec`\" pulumi-lang-java=\"`resourceSpec`\"\u003e`resource_spec`\u003c/span\u003e below.\n"},"storage":{"$ref":"#/types/alicloud:realtimecompute/VvpInstanceStorage:VvpInstanceStorage","description":"Store information. See \u003cspan pulumi-lang-nodejs=\"`storage`\" pulumi-lang-dotnet=\"`Storage`\" pulumi-lang-go=\"`storage`\" pulumi-lang-python=\"`storage`\" pulumi-lang-yaml=\"`storage`\" pulumi-lang-java=\"`storage`\"\u003e`storage`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the resource.\n"},"vpcId":{"type":"string","description":"The VPC ID of the user.\n","willReplaceOnChanges":true},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"Virtual Switch ID.\n","willReplaceOnChanges":true},"vvpInstanceName":{"type":"string","description":"The name of the workspace.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the resource.\n","willReplaceOnChanges":true}},"requiredInputs":["paymentType","storage","vpcId","vswitchIds","vvpInstanceName","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering VvpInstance resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"duration":{"type":"integer","description":"The number of subscription periods. If the payment type is PRE, this parameter is required.\n"},"paymentType":{"type":"string","description":"The payment type of the resource.\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The subscription period. If the payment type is PRE, this parameter is required.\n"},"resourceGroupId":{"type":"string","description":"The resource group to which the newly purchased instance belongs.\n"},"resourceId":{"type":"string","description":"(Available since v1.264.0) The ID of the K8s cluster.\n"},"resourceSpec":{"$ref":"#/types/alicloud:realtimecompute/VvpInstanceResourceSpec:VvpInstanceResourceSpec","description":"Resource specifications. See \u003cspan pulumi-lang-nodejs=\"`resourceSpec`\" pulumi-lang-dotnet=\"`ResourceSpec`\" pulumi-lang-go=\"`resourceSpec`\" pulumi-lang-python=\"`resource_spec`\" pulumi-lang-yaml=\"`resourceSpec`\" pulumi-lang-java=\"`resourceSpec`\"\u003e`resource_spec`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"storage":{"$ref":"#/types/alicloud:realtimecompute/VvpInstanceStorage:VvpInstanceStorage","description":"Store information. See \u003cspan pulumi-lang-nodejs=\"`storage`\" pulumi-lang-dotnet=\"`Storage`\" pulumi-lang-go=\"`storage`\" pulumi-lang-python=\"`storage`\" pulumi-lang-yaml=\"`storage`\" pulumi-lang-java=\"`storage`\"\u003e`storage`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the resource.\n"},"vpcId":{"type":"string","description":"The VPC ID of the user.\n","willReplaceOnChanges":true},"vswitchIds":{"type":"array","items":{"type":"string"},"description":"Virtual Switch ID.\n","willReplaceOnChanges":true},"vvpInstanceName":{"type":"string","description":"The name of the workspace.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the resource.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:redis/backup:Backup":{"description":"Provides a Tair (Redis OSS-Compatible) And Memcache (KVStore) Backup resource.\n\nInstance level or database level backup objects.\n\nFor information about Tair (Redis OSS-Compatible) And Memcache (KVStore) Backup and how to use it, see [What is Backup](https://www.alibabacloud.com/help/en/redis/developer-reference/api-r-kvstore-2015-01-01-modifybackuppolicy-redis).\n\n\u003e **NOTE:** Available since v1.15.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst zoneId = config.get(\"zoneId\") || \"cn-hangzhou-h\";\nconst _default = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = _default.then(_default =\u003e alicloud.vpc.getSwitches({\n    zoneId: zoneId,\n    vpcId: _default.ids?.[0],\n}));\nconst vswitch: alicloud.vpc.Switch[] = [];\ndefaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        vswitch.push(new alicloud.vpc.Switch(`vswitch-${range.value}`, {\n            vpcId: _default.then(_default =\u003e _default.ids?.[0]),\n            cidrBlock: _default.then(_default =\u003e std.cidrsubnet({\n                input: _default.vpcs?.[0]?.cidrBlock,\n                newbits: 8,\n                netnum: 8,\n            })).then(invoke =\u003e invoke.result),\n            zoneId: zoneId,\n            vswitchName: name,\n        }));\n    }\n});\nconst vswitchId = pulumi.all([defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids).length, defaultGetSwitches, std.concat({\n    input: [\n        vswitch.map(__item =\u003e __item.id),\n        [\"\"],\n    ],\n})]).apply(([length, defaultGetSwitches, invoke]) =\u003e length \u003e 0 ? defaultGetSwitches.ids?.[0] : invoke.result?.[0]);\nconst defaultInstance = new alicloud.kvstore.Instance(\"default\", {\n    port: 6379,\n    paymentType: \"PrePaid\",\n    instanceType: \"Redis\",\n    password: \"123456_tf\",\n    engineVersion: \"5.0\",\n    zoneId: zoneId,\n    vswitchId: vswitchId,\n    period: \"1\",\n    instanceClass: \"redis.shard.small.2.ce\",\n});\nconst defaultBackup = new alicloud.redis.Backup(\"default\", {\n    instanceId: defaultInstance.id,\n    backupRetentionPeriod: 7,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nzone_id = config.get(\"zoneId\")\nif zone_id is None:\n    zone_id = \"cn-hangzhou-h\"\ndefault = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(zone_id=zone_id,\n    vpc_id=default.ids[0])\nvswitch = []\ndef create_vswitch(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        vswitch.append(alicloud.vpc.Switch(f\"vswitch-{range['value']}\",\n            vpc_id=default.ids[0],\n            cidr_block=std.cidrsubnet(input=default.vpcs[0].cidr_block,\n                newbits=8,\n                netnum=8).result,\n            zone_id=zone_id,\n            vswitch_name=name))\n\nlen(default_get_switches.ids).apply(lambda resolved_outputs: create_vswitch(0 if resolved_outputs['length'] \u003e 0 else 1))\nvswitch_id = len(default_get_switches.ids).apply(lambda length: default_get_switches.ids[0] if length \u003e 0 else std.concat(input=[\n    [__item.id for __item in vswitch],\n    [\"\"],\n]).result[0])\ndefault_instance = alicloud.kvstore.Instance(\"default\",\n    port=6379,\n    payment_type=\"PrePaid\",\n    instance_type=\"Redis\",\n    password=\"123456_tf\",\n    engine_version=\"5.0\",\n    zone_id=zone_id,\n    vswitch_id=vswitch_id,\n    period=\"1\",\n    instance_class=\"redis.shard.small.2.ce\")\ndefault_backup = alicloud.redis.Backup(\"default\",\n    instance_id=default_instance.id,\n    backup_retention_period=7)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var zoneId = config.Get(\"zoneId\") ?? \"cn-hangzhou-h\";\n    var @default = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        ZoneId = zoneId,\n        VpcId = @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var vswitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        vswitch.Add(new AliCloud.Vpc.Switch($\"vswitch-{range.Value}\", new()\n        {\n            VpcId = @default.Apply(@default =\u003e @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0])),\n            CidrBlock = @default.Apply(@default =\u003e Std.Cidrsubnet.Invoke(new()\n            {\n                Input = @default.Apply(getNetworksResult =\u003e getNetworksResult.Vpcs[0]?.CidrBlock),\n                Newbits = 8,\n                Netnum = 8,\n            })).Apply(invoke =\u003e invoke.Result),\n            ZoneId = zoneId,\n            VswitchName = name,\n        }));\n    }\n    var vswitchId = Output.Tuple(defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids).Length, defaultGetSwitches, Std.Concat.Invoke(new()\n    {\n        Input = new[]\n        {\n            vswitch.Select(__item =\u003e __item.Id).ToList(),\n            new[]\n            {\n                \"\",\n            },\n        },\n    })).Apply(values =\u003e\n    {\n        var length = values.Item1;\n        var defaultGetSwitches = values.Item2;\n        var invoke = values.Item3;\n        return length \u003e 0 ? defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]) : invoke.Result[0];\n    });\n\n    var defaultInstance = new AliCloud.KVStore.Instance(\"default\", new()\n    {\n        Port = 6379,\n        PaymentType = \"PrePaid\",\n        InstanceType = \"Redis\",\n        Password = \"123456_tf\",\n        EngineVersion = \"5.0\",\n        ZoneId = zoneId,\n        VswitchId = vswitchId,\n        Period = \"1\",\n        InstanceClass = \"redis.shard.small.2.ce\",\n    });\n\n    var defaultBackup = new AliCloud.Redis.Backup(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        BackupRetentionPeriod = 7,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/redis\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nzoneId := \"cn-hangzhou-h\";\nif param := cfg.Get(\"zoneId\"); param != \"\"{\nzoneId = param\n}\n_default, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\nNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\nZoneId: pulumi.StringRef(zoneId),\nVpcId: pulumi.StringRef(_default.Ids[0]),\n}, nil);\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: _default.Vpcs[0].CidrBlock,\nNewbits: 8,\nNetnum: 8,\n}, nil)\nif err != nil {\nreturn err\n}\nvar tmp0 float64\nif length \u003e 0 {\ntmp0 = 0\n} else {\ntmp0 = 1\n}\nvar vswitch []*vpc.Switch\nfor index := 0; index \u003c float64(len(defaultGetSwitches.Ids).ApplyT(func(length int) (float64, error) {\nreturn tmp0, nil\n}).(pulumi.Float64Output)); index++ {\n    key0 := index\n    _ := index\n__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"vswitch-%v\", key0), \u0026vpc.SwitchArgs{\nVpcId: pulumi.String(_default.Ids[0]),\nCidrBlock: pulumi.String(invokeCidrsubnet.Result),\nZoneId: pulumi.String(zoneId),\nVswitchName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\nvswitch = append(vswitch, __res)\n}\nvar tmp1 *interface{}\nif length \u003e 0 {\ntmp1 = defaultGetSwitches.Ids[0]\n} else {\ntmp1 = std.Concat(ctx, \u0026std.ConcatArgs{\nInput: pulumi.StringArrayArray{\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:32,12-25),\n[]string{\n\"\",\n},\n},\n}, nil).Result[0]\n}\nvswitchId := len(defaultGetSwitches.Ids).ApplyT(func(length int) (*interface{}, error) {\nreturn \u0026tmp1, nil\n}).(pulumi.Interface{}PtrOutput)\ndefaultInstance, err := kvstore.NewInstance(ctx, \"default\", \u0026kvstore.InstanceArgs{\nPort: pulumi.Int(6379),\nPaymentType: pulumi.String(\"PrePaid\"),\nInstanceType: pulumi.String(\"Redis\"),\nPassword: pulumi.String(\"123456_tf\"),\nEngineVersion: pulumi.String(\"5.0\"),\nZoneId: pulumi.String(zoneId),\nVswitchId: pulumi.Any(vswitchId),\nPeriod: pulumi.String(\"1\"),\nInstanceClass: pulumi.String(\"redis.shard.small.2.ce\"),\n})\nif err != nil {\nreturn err\n}\n_, err = redis.NewBackup(ctx, \"default\", \u0026redis.BackupArgs{\nInstanceId: defaultInstance.ID(),\nBackupRetentionPeriod: pulumi.Int(7),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.std.inputs.ConcatArgs;\nimport com.pulumi.alicloud.kvstore.Instance;\nimport com.pulumi.alicloud.kvstore.InstanceArgs;\nimport com.pulumi.alicloud.redis.Backup;\nimport com.pulumi.alicloud.redis.BackupArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var zoneId = config.get(\"zoneId\").orElse(\"cn-hangzhou-h\");\n        final var default = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .zoneId(zoneId)\n            .vpcId(default_.ids()[0])\n            .build());\n\n        for (var i = 0; i \u003c defaultGetSwitches.ids().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new Switch(\"vswitch-\" + i, SwitchArgs.builder()\n                .vpcId(default_.ids()[0])\n                .cidrBlock(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                    .input(default_.vpcs()[0].cidrBlock())\n                    .newbits(8)\n                    .netnum(8)\n                    .build()).result())\n                .zoneId(zoneId)\n                .vswitchName(name)\n                .build());\n\n        \n}\n        final var vswitchId = defaultGetSwitches.ids().length().applyValue(_length -\u003e _length \u003e 0 ? defaultGetSwitches.ids()[0] : StdFunctions.concat(ConcatArgs.builder()\n            .input(            \n                vswitch.stream().map(element -\u003e element.id()).collect(toList()),\n                \"\")\n            .build()).result()[0]);\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .port(6379)\n            .paymentType(\"PrePaid\")\n            .instanceType(\"Redis\")\n            .password(\"123456_tf\")\n            .engineVersion(\"5.0\")\n            .zoneId(zoneId)\n            .vswitchId(vswitchId)\n            .period(\"1\")\n            .instanceClass(\"redis.shard.small.2.ce\")\n            .build());\n\n        var defaultBackup = new Backup(\"defaultBackup\", BackupArgs.builder()\n            .instanceId(defaultInstance.id())\n            .backupRetentionPeriod(7)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nTair (Redis OSS-Compatible) And Memcache (KVStore) Backup can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:redis/backup:Backup example \u003cinstance_id\u003e:\u003cbackup_id\u003e\n```\n\n","properties":{"backupId":{"type":"integer","description":"Backup ID.\n"},"backupRetentionPeriod":{"type":"integer","description":"The expiration period for this manual backup ranges from 7 to 730 days. When you pass in -1, it indicates that this manual backup will not expire (during the instance's lifecycle). If you do not pass any value (default case), it means the expiration policy will be consistent with the current automatic backup strategy.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"instanceId":{"type":"string","description":"InstanceId\n"},"status":{"type":"string","description":"Backup status.\n"}},"required":["backupId","instanceId","status"],"inputProperties":{"backupRetentionPeriod":{"type":"integer","description":"The expiration period for this manual backup ranges from 7 to 730 days. When you pass in -1, it indicates that this manual backup will not expire (during the instance's lifecycle). If you do not pass any value (default case), it means the expiration policy will be consistent with the current automatic backup strategy.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"instanceId":{"type":"string","description":"InstanceId\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Backup resources.\n","properties":{"backupId":{"type":"integer","description":"Backup ID.\n"},"backupRetentionPeriod":{"type":"integer","description":"The expiration period for this manual backup ranges from 7 to 730 days. When you pass in -1, it indicates that this manual backup will not expire (during the instance's lifecycle). If you do not pass any value (default case), it means the expiration policy will be consistent with the current automatic backup strategy.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"instanceId":{"type":"string","description":"InstanceId\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Backup status.\n"}},"type":"object"}},"alicloud:redis/tairInstance:TairInstance":{"description":"Provides a Tair (Redis OSS-Compatible) And Memcache (KVStore) Tair Instance resource.\n\nDescribe the creation, deletion and query of tair instances.\n\nFor information about Tair (Redis OSS-Compatible) And Memcache (KVStore) Tair Instance and how to use it, see [What is Tair Instance](https://www.alibabacloud.com/help/en/redis/developer-reference/api-r-kvstore-2015-01-01-createtairinstance-redis).\n\n\u003e **NOTE:** Available since v1.206.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.kvstore.getZones({\n    productType: \"Tair_rdb\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"default-NODELETING\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst vswitchId = defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]);\nconst zoneId = _default.then(_default =\u003e _default.zones?.[0]?.id);\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultTairInstance = new alicloud.redis.TairInstance(\"default\", {\n    paymentType: \"Subscription\",\n    period: 1,\n    instanceType: \"tair_rdb\",\n    zoneId: zoneId,\n    instanceClass: \"tair.rdb.2g\",\n    shardCount: 2,\n    vswitchId: vswitchId,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    tairInstanceName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.kvstore.get_zones(product_type=\"Tair_rdb\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"default-NODELETING\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\nvswitch_id = default_get_switches.ids[0]\nzone_id = default.zones[0].id\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_tair_instance = alicloud.redis.TairInstance(\"default\",\n    payment_type=\"Subscription\",\n    period=1,\n    instance_type=\"tair_rdb\",\n    zone_id=zone_id,\n    instance_class=\"tair.rdb.2g\",\n    shard_count=2,\n    vswitch_id=vswitch_id,\n    vpc_id=default_get_networks.ids[0],\n    tair_instance_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.KVStore.GetZones.Invoke(new()\n    {\n        ProductType = \"Tair_rdb\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"default-NODELETING\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var vswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]);\n\n    var zoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id));\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultTairInstance = new AliCloud.Redis.TairInstance(\"default\", new()\n    {\n        PaymentType = \"Subscription\",\n        Period = 1,\n        InstanceType = \"tair_rdb\",\n        ZoneId = zoneId,\n        InstanceClass = \"tair.rdb.2g\",\n        ShardCount = 2,\n        VswitchId = vswitchId,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        TairInstanceName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/redis\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := kvstore.GetZones(ctx, \u0026kvstore.GetZonesArgs{\n\t\t\tProductType: pulumi.StringRef(\"Tair_rdb\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"default-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvswitchId := defaultGetSwitches.Ids[0]\n\t\tzoneId := _default.Zones[0].Id\n\t\t_, err = resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redis.NewTairInstance(ctx, \"default\", \u0026redis.TairInstanceArgs{\n\t\t\tPaymentType:      pulumi.String(\"Subscription\"),\n\t\t\tPeriod:           pulumi.Int(1),\n\t\t\tInstanceType:     pulumi.String(\"tair_rdb\"),\n\t\t\tZoneId:           pulumi.String(zoneId),\n\t\t\tInstanceClass:    pulumi.String(\"tair.rdb.2g\"),\n\t\t\tShardCount:       pulumi.Int(2),\n\t\t\tVswitchId:        pulumi.String(vswitchId),\n\t\t\tVpcId:            pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tTairInstanceName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kvstore.KvstoreFunctions;\nimport com.pulumi.alicloud.kvstore.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.redis.TairInstance;\nimport com.pulumi.alicloud.redis.TairInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = KvstoreFunctions.getZones(GetZonesArgs.builder()\n            .productType(\"Tair_rdb\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"default-NODELETING\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        final var vswitchId = defaultGetSwitches.ids()[0];\n\n        final var zoneId = default_.zones()[0].id();\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultTairInstance = new TairInstance(\"defaultTairInstance\", TairInstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .period(1)\n            .instanceType(\"tair_rdb\")\n            .zoneId(zoneId)\n            .instanceClass(\"tair.rdb.2g\")\n            .shardCount(2)\n            .vswitchId(vswitchId)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .tairInstanceName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultTairInstance:\n    type: alicloud:redis:TairInstance\n    name: default\n    properties:\n      paymentType: Subscription\n      period: '1'\n      instanceType: tair_rdb\n      zoneId: ${zoneId}\n      instanceClass: tair.rdb.2g\n      shardCount: '2'\n      vswitchId: ${vswitchId}\n      vpcId: ${defaultGetNetworks.ids[0]}\n      tairInstanceName: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:kvstore:getZones\n      arguments:\n        productType: Tair_rdb\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: default-NODELETING\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n  vswitchId: ${defaultGetSwitches.ids[0]}\n  zoneId: ${default.zones[0].id}\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.redis.TairInstance`\" pulumi-lang-dotnet=\"`alicloud.redis.TairInstance`\" pulumi-lang-go=\"`redis.TairInstance`\" pulumi-lang-python=\"`redis.TairInstance`\" pulumi-lang-yaml=\"`alicloud.redis.TairInstance`\" pulumi-lang-java=\"`alicloud.redis.TairInstance`\"\u003e`alicloud.redis.TairInstance`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.redis.TairInstance`\" pulumi-lang-dotnet=\"`alicloud.redis.TairInstance`\" pulumi-lang-go=\"`redis.TairInstance`\" pulumi-lang-python=\"`redis.TairInstance`\" pulumi-lang-yaml=\"`alicloud.redis.TairInstance`\" pulumi-lang-java=\"`alicloud.redis.TairInstance`\"\u003e`alicloud.redis.TairInstance`\u003c/span\u003e resource allows you to manage  \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"Subscription\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nTair (Redis OSS-Compatible) And Memcache (KVStore) Tair Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:redis/tairInstance:TairInstance example \u003cid\u003e\n```\n\n","properties":{"architectureType":{"type":"string","description":"The architecture of the instance.  cluster, standard, rwsplit.\n"},"autoRenew":{"type":"string","description":"Specifies whether to enable auto-renewal for the instance. Default value: false. Valid values: true(enables auto-renewal), false(disables auto-renewal).\n"},"autoRenewPeriod":{"type":"string","description":"The subscription duration that is supported by auto-renewal. Unit: months. Valid values: 1, 2, 3, 6, and 12. This parameter is required only if the AutoRenew parameter is set to true.\n"},"backupId":{"type":"string","description":"You can set the BackupId parameter to the backup set ID of the source instance. The system uses the data stored in the backup set to create an instance. You can call the DescribeBackups operation to query backup set IDs. If the source instance is a cluster instance, set the BackupId parameter to the backup set IDs of all shards of the source instance, separated by commas (,).\n\nIf your instance is a cloud-native cluster instance, we recommend that you use DescribeClusterBackupList to query the backup set ID of the cluster instance. Then, set the ClusterBackupId request parameter to the backup set ID to clone the cluster instance. This eliminates the need to specify the backup set ID of each shard.\n"},"clusterBackupId":{"type":"string","description":"This parameter is supported for specific new cluster instances. You can query the backup set ID by calling the DescribeClusterBackupList operation. If this parameter is supported, you can specify the backup set ID. In this case, you do not need to specify the BackupId parameter. If this parameter is not supported, set the BackupId parameter to the IDs of backup sets in all shards of the source instance, separated by commas (,).\n"},"connectionDomain":{"type":"string","description":"The internal endpoint of the instance.\n"},"connectionStringPrefix":{"type":"string","description":"The prefix of the endpoint the instance, which must consist of lowercase letters and numbers and start with a lowercase letter.\n"},"createTime":{"type":"string","description":"The time when the instance was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"effectiveTime":{"type":"string","description":"The time when to change the configurations. Default value: Immediately. Valid values: Immediately (The configurations are immediately changed), MaintainTime (The configurations are changed within the maintenance window).\n"},"encryptionKey":{"type":"string","description":"The custom key ID. You can call [DescribeEncryptionKeyList](https://help.aliyun.com/document_detail/473860.html) to obtain it.\n\n\u003e **NOTE:**  * If this parameter is not specified, a key is automatically generated by [Key Management Service](https://help.aliyun.com/document_detail/28935.html).\n\n\u003e **NOTE:**  * To create a custom key, you can call the [CreateKey](https://help.aliyun.com/document_detail/28947.html) operation of Key Management Service.\n\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"encryptionName":{"type":"string","description":"The encryption algorithm. The default value is AES-CTR-256.\n\n\u003e **NOTE:**  This parameter is available only when the `TDEStatus` parameter is set to `Enabled`.\n\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"engineVersion":{"type":"string","description":"Database version. Default value: 1.0.\n\nRules for transferring parameters of different tair product types:\n\ntair_rdb:  Compatible with the Redis5.0 and Redis6.0 protocols, and is transmitted to 5.0 or 6.0.\n\ntair_scm: The Tair persistent memory is compatible with the Redis6.0 protocol and is passed 1.0.\n\ntair_essd: The disk (ESSD/SSD) is compatible with the Redis4.0 and Redis6.0 protocols, and is transmitted to 1.0 and 2.0 respectively.\n"},"forceUpgrade":{"type":"boolean","description":"Specifies whether to forcefully change the configurations of the instance. Default value: true. Valid values: false (The system does not forcefully change the configurations), true (The system forcefully changes the configurations).\n"},"globalInstanceId":{"type":"string","description":"The ID of a distributed (Global Distributed Cache) instance, which indicates whether to use the newly created instance as a sub-instance of a distributed instance. You can use this method to create a distributed instance.\n\n1. Enter true if you want the new instance to be the first child instance.\n\n2. If you want the new instance to be used as the second and third sub-instances, enter the distributed instance ID.\n\n3. Not as a distributed instance, you do not need to enter any values.\n"},"instanceClass":{"type":"string","description":"The instance type of the instance. For more information, see [Instance types](https://www.alibabacloud.com/help/en/apsaradb-for-redis/latest/instance-types).\n"},"instanceType":{"type":"string","description":"The storage medium of the instance. Valid values: tair_rdb, tair_scm, tair_essd.\n"},"intranetBandwidth":{"type":"integer","description":"Instance intranet bandwidth\n"},"maxConnections":{"type":"integer","description":"The maximum number of connections supported by the instance.\n"},"modifyMode":{"type":"string","description":"The modification method when modifying the IP whitelist. The value includes Cover (default): overwrite the original whitelist; Append: Append the whitelist; Delete: Delete the whitelist.\n"},"networkType":{"type":"string","description":"The network type of the instance.  CLASSIC(classic network), VPC.\n"},"nodeType":{"type":"string","description":"The node type. For cloud-native instances, input MASTER_SLAVE (master-replica) or STAND_ALONE (standalone). For classic instances, input double (master-replica) or single (standalone).\n"},"paramNoLooseSentinelEnabled":{"type":"string","description":"sentinel compatibility mode, applicable to non-cluster instances. For more information about parameters, see yes or no in the https://www.alibabacloud.com/help/en/redis/user-guide/use-the-sentinel-compatible-mode-to-connect-to-an-apsaradb-for-redis-instance, valid values: yes, no. The default value is no.\n"},"paramNoLooseSentinelPasswordFreeAccess":{"type":"string","description":"Whether to allow Sentinel commands to be executed without secrets when Sentinel mode is enabled. Value: yes: enabled. After the command is enabled, you can directly run the Sentinel command in the VPC without enabling the password-free feature. no: the default value, disabled. For parameters, see https://help.aliyun.com/zh/redis/user-guide/use-the-sentinel-compatible-mode-to-connect-to-an-apsaradb-for-redis-instance\n"},"paramNoLooseSentinelPasswordFreeCommands":{"type":"string","description":"After sentinel mode and the# no_loose_sentinel-password-free-access parameter are enabled, you can use this parameter to add additional secret-free command lists (empty by default). After setting, you can execute the corresponding command on any connection without secret, please operate carefully. Commands are written in lowercase letters, and multiple commands are separated by commas (,). See https://help.aliyun.com/zh/redis/user-guide/parameter-support for details\n"},"paramReplMode":{"type":"string","description":"The value is semisync or async. The default value is async.\n\nThe default data synchronization mode is asynchronous replication. To modify the data synchronization mode, refer to https://www.alibabacloud.com/help/en/redis/user-guide/modify-the-synchronization-mode-of-a-persistent-memory-optimized-instance.\n"},"paramSemisyncReplTimeout":{"type":"string","description":"The degradation threshold time of the semi-synchronous replication mode. This parameter value is required only when semi-synchronous replication is enabled. The unit is milliseconds, and the range is 10ms to 60000ms. The default value is 500ms. Please refer to: https://www.alibabacloud.com/help/en/redis/user-guide/modify-the-synchronization-mode-of-a-persistent-memory-optimized-instance.\n"},"paramSentinelCompatEnable":{"type":"string","description":"sentinel compatibility mode, applicable to instances in the cluster architecture proxy connection mode or read/write splitting architecture. For more information about the parameters, see https://www.alibabacloud.com/help/en/redis/user-guide/use-the-sentinel-compatible-mode-to-connect-to-an-apsaradb-for-redis-instance. The value is 0 or 1. The default value is 0.\n"},"password":{"type":"string","description":"The password that is used to connect to the instance. The password must be 8 to 32 characters in length and contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include ! @ # $ % ^ \u0026 * ( ) _ + - =\n","secret":true},"paymentType":{"type":"string","description":"Payment type: Subscription (prepaid), PayAsYouGo (postpaid). Default Subscription.\n"},"period":{"type":"integer","description":"The subscription duration. Unit: months. Valid values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24,36, and 60. This parameter is required only if you set the PaymentType parameter to Subscription.\n"},"port":{"type":"integer","description":"The Tair service port. The service port of the instance. Valid values: 1024 to 65535. Default value: 6379.\n"},"readOnlyCount":{"type":"integer","description":"Number of read-only nodes in the primary zone. Valid values: 0 to 5. This parameter is only applicable to the following conditions:\n\nIf the instance is in the cloud disk version standard architecture, you can set this parameter to a value greater than 0 to enable the read/write splitting architecture.\n\nIf the instance is a cloud disk version read/write splitting architecture instance, you can use this parameter to customize the number of read-only nodes, or set this parameter to 0 to disable the read/write splitting architecture and switch the instance to the standard architecture.\n"},"recoverConfigMode":{"type":"string","description":"Whether to restore the account, kernel parameters, and whitelist (config) information from the original backup set when creating an instance using a specified backup set. The default value is empty, indicating that the account, kernel parameters, and whitelist information are not restored from the original backup set. This parameter is only applicable to Cloud Native instances, and the account, kernel parameters, and whitelist information must have been saved in the original backup set.\n"},"regionId":{"type":"string","description":"Region Id\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the role to be authorized. After authorization, you can use the related Key Management Service (KMS) features. Format: `acs:ram::$accountID:role/$roleName`.\n\n\u003e **NOTE:**  * `$accountID`: Your Alibaba Cloud account ID. To view it, log on to the Alibaba Cloud console, move the pointer over your profile picture in the upper-right corner, and click **Security Settings**.\n\n\u003e **NOTE:**  * `$roleName`: The RAM role name. The value is fixed as `AliyunRdsInstanceEncryptionDefaultRole`.\n\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"secondaryZoneId":{"type":"string","description":"The ID of the secondary zone.This parameter is returned only if the instance is deployed in two zones.\n"},"securityGroupId":{"type":"string","description":"Security group id\n"},"securityIpGroupName":{"type":"string","description":"The name of the IP address whitelist. You cannot modify the whitelist that is generated by the system. If you do not specify this parameter, the default whitelist is modified by default.\n"},"securityIps":{"type":"string","description":"The IP addresses in the whitelist. Up to 1,000 IP addresses can be specified in a whitelist. Separate multiple IP addresses with a comma (,). Specify an IP address in the 0.0.0.0/0, 10.23.12.24, or 10.23.12.24/24 format. In CIDR block 10.23.12.24/24, /24 specifies the length of the prefix of an IP address. The prefix length ranges from 1 to 32.\n"},"shardCount":{"type":"integer","description":"The number of data nodes in the instance. When 1 is passed, it means that the instance created is a standard architecture with only one data node. You can create an instance in the standard architecture that contains only a single data node. 2 to 32: You can create an instance in the cluster architecture that contains the specified number of data nodes. Only persistent memory-optimized instances can use the cluster architecture. Therefore, you can set this parameter to an integer from 2 to 32 only if you set the InstanceType parameter to tair_scm. It is not allowed to modify the number of shards by modifying this parameter after creating a master-slave architecture instance with or without passing 1.\n"},"slaveReadOnlyCount":{"type":"integer","description":"Specifies the number of read-only nodes in the secondary zone when creating a multi-zone read/write splitting instance.\n\nNote: To create a multi-zone read/write splitting instance, slaveadonlycount and SecondaryZoneId must be specified at the same time.\n"},"srcDbInstanceId":{"type":"string","description":"If you want to create an instance based on the backup set of an existing instance, set this parameter to the ID of the source instance. preceding three parameters. After you specify the SrcDBInstanceId parameter, use the BackupId, ClusterBackupId (recommended for cloud-native cluster instances), or RestoreTime parameter to specify the backup set or the specific point in time that you want to use to create an instance. The SrcDBInstanceId parameter must be used in combination with one of the preceding three parameters.\n"},"sslEnabled":{"type":"string","description":"Modifies SSL encryption configurations. Valid values: 1. Disable (The SSL encryption is disabled) 2. Enable (The SSL encryption is enabled)  3. Update (The SSL certificate is updated)\n"},"status":{"type":"string","description":"The status of the resource\n"},"storagePerformanceLevel":{"type":"string","description":"The storage type. Valid values: PL1, PL2, and PL3. This parameter is available only when the value of InstanceType is tair_essd, that is, when an ESSD disk instance is selected.\n\nIf the ESSD instance type is 4C, 8C, or 16C, you can specify the storage type as PL1.\n\nIf the type of ESSD instance you select is 8C, 16C, 32C, or 52C, you can specify the storage type as PL2.\n\nIf the ESSD instance type is 16C, 32C, or 52C, you can specify the storage type as PL3.\n"},"storageSizeGb":{"type":"integer","description":"Different specifications have different value ranges. When the\u003cspan pulumi-lang-nodejs=\" instanceType \" pulumi-lang-dotnet=\" InstanceType \" pulumi-lang-go=\" instanceType \" pulumi-lang-python=\" instance_type \" pulumi-lang-yaml=\" instanceType \" pulumi-lang-java=\" instanceType \"\u003e instance_type \u003c/span\u003evalue is\u003cspan pulumi-lang-nodejs=\" tairEssd \" pulumi-lang-dotnet=\" TairEssd \" pulumi-lang-go=\" tairEssd \" pulumi-lang-python=\" tair_essd \" pulumi-lang-yaml=\" tairEssd \" pulumi-lang-java=\" tairEssd \"\u003e tair_essd \u003c/span\u003eand the disk type is ESSD, this attribute takes effect and is required. When a Tair disk is an SSD, see-https://help.aliyun.com/zh/redis/product-overview/capacity-storage-type. The capacity field is defined as different fixed values according to different specifications, and does not need to be specified.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"tairInstanceId":{"type":"string","description":"The ID of the resource.\n"},"tairInstanceName":{"type":"string","description":"The name of the resource.\n"},"tdeStatus":{"type":"string","description":"Specifies whether to enable Transparent Data Encryption (TDE). Valid value: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n\n\u003e **NOTE:**  After TDE is enabled, it cannot be disabled. Evaluate the potential impact on your business before enabling this feature. For more information, see [Enable Transparent Data Encryption (TDE)](https://help.aliyun.com/document_detail/265913.html).\n"},"vpcAuthMode":{"type":"string","description":"The VPC authentication mode. Valid values: Open (enables password authentication), Close (disables password authentication and enables [password-free access](https://www.alibabacloud.com/help/en/apsaradb-for-redis/latest/enable-password-free-access)).\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC).\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which the instance is connected.\n"},"zoneId":{"type":"string","description":"Zone ID\n"}},"required":["architectureType","connectionDomain","createTime","engineVersion","instanceClass","instanceType","intranetBandwidth","maxConnections","networkType","nodeType","paramNoLooseSentinelEnabled","paramNoLooseSentinelPasswordFreeAccess","paramNoLooseSentinelPasswordFreeCommands","paramReplMode","paramSemisyncReplTimeout","paramSentinelCompatEnable","paymentType","port","regionId","resourceGroupId","securityIpGroupName","securityIps","shardCount","sslEnabled","status","storageSizeGb","tairInstanceId","tdeStatus","vpcAuthMode","vpcId","vswitchId","zoneId"],"inputProperties":{"autoRenew":{"type":"string","description":"Specifies whether to enable auto-renewal for the instance. Default value: false. Valid values: true(enables auto-renewal), false(disables auto-renewal).\n"},"autoRenewPeriod":{"type":"string","description":"The subscription duration that is supported by auto-renewal. Unit: months. Valid values: 1, 2, 3, 6, and 12. This parameter is required only if the AutoRenew parameter is set to true.\n"},"backupId":{"type":"string","description":"You can set the BackupId parameter to the backup set ID of the source instance. The system uses the data stored in the backup set to create an instance. You can call the DescribeBackups operation to query backup set IDs. If the source instance is a cluster instance, set the BackupId parameter to the backup set IDs of all shards of the source instance, separated by commas (,).\n\nIf your instance is a cloud-native cluster instance, we recommend that you use DescribeClusterBackupList to query the backup set ID of the cluster instance. Then, set the ClusterBackupId request parameter to the backup set ID to clone the cluster instance. This eliminates the need to specify the backup set ID of each shard.\n"},"clusterBackupId":{"type":"string","description":"This parameter is supported for specific new cluster instances. You can query the backup set ID by calling the DescribeClusterBackupList operation. If this parameter is supported, you can specify the backup set ID. In this case, you do not need to specify the BackupId parameter. If this parameter is not supported, set the BackupId parameter to the IDs of backup sets in all shards of the source instance, separated by commas (,).\n"},"connectionStringPrefix":{"type":"string","description":"The prefix of the endpoint the instance, which must consist of lowercase letters and numbers and start with a lowercase letter.\n"},"effectiveTime":{"type":"string","description":"The time when to change the configurations. Default value: Immediately. Valid values: Immediately (The configurations are immediately changed), MaintainTime (The configurations are changed within the maintenance window).\n"},"encryptionKey":{"type":"string","description":"The custom key ID. You can call [DescribeEncryptionKeyList](https://help.aliyun.com/document_detail/473860.html) to obtain it.\n\n\u003e **NOTE:**  * If this parameter is not specified, a key is automatically generated by [Key Management Service](https://help.aliyun.com/document_detail/28935.html).\n\n\u003e **NOTE:**  * To create a custom key, you can call the [CreateKey](https://help.aliyun.com/document_detail/28947.html) operation of Key Management Service.\n\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"encryptionName":{"type":"string","description":"The encryption algorithm. The default value is AES-CTR-256.\n\n\u003e **NOTE:**  This parameter is available only when the `TDEStatus` parameter is set to `Enabled`.\n\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"engineVersion":{"type":"string","description":"Database version. Default value: 1.0.\n\nRules for transferring parameters of different tair product types:\n\ntair_rdb:  Compatible with the Redis5.0 and Redis6.0 protocols, and is transmitted to 5.0 or 6.0.\n\ntair_scm: The Tair persistent memory is compatible with the Redis6.0 protocol and is passed 1.0.\n\ntair_essd: The disk (ESSD/SSD) is compatible with the Redis4.0 and Redis6.0 protocols, and is transmitted to 1.0 and 2.0 respectively.\n"},"forceUpgrade":{"type":"boolean","description":"Specifies whether to forcefully change the configurations of the instance. Default value: true. Valid values: false (The system does not forcefully change the configurations), true (The system forcefully changes the configurations).\n"},"globalInstanceId":{"type":"string","description":"The ID of a distributed (Global Distributed Cache) instance, which indicates whether to use the newly created instance as a sub-instance of a distributed instance. You can use this method to create a distributed instance.\n\n1. Enter true if you want the new instance to be the first child instance.\n\n2. If you want the new instance to be used as the second and third sub-instances, enter the distributed instance ID.\n\n3. Not as a distributed instance, you do not need to enter any values.\n"},"instanceClass":{"type":"string","description":"The instance type of the instance. For more information, see [Instance types](https://www.alibabacloud.com/help/en/apsaradb-for-redis/latest/instance-types).\n"},"instanceType":{"type":"string","description":"The storage medium of the instance. Valid values: tair_rdb, tair_scm, tair_essd.\n","willReplaceOnChanges":true},"intranetBandwidth":{"type":"integer","description":"Instance intranet bandwidth\n"},"modifyMode":{"type":"string","description":"The modification method when modifying the IP whitelist. The value includes Cover (default): overwrite the original whitelist; Append: Append the whitelist; Delete: Delete the whitelist.\n"},"nodeType":{"type":"string","description":"The node type. For cloud-native instances, input MASTER_SLAVE (master-replica) or STAND_ALONE (standalone). For classic instances, input double (master-replica) or single (standalone).\n"},"paramNoLooseSentinelEnabled":{"type":"string","description":"sentinel compatibility mode, applicable to non-cluster instances. For more information about parameters, see yes or no in the https://www.alibabacloud.com/help/en/redis/user-guide/use-the-sentinel-compatible-mode-to-connect-to-an-apsaradb-for-redis-instance, valid values: yes, no. The default value is no.\n"},"paramNoLooseSentinelPasswordFreeAccess":{"type":"string","description":"Whether to allow Sentinel commands to be executed without secrets when Sentinel mode is enabled. Value: yes: enabled. After the command is enabled, you can directly run the Sentinel command in the VPC without enabling the password-free feature. no: the default value, disabled. For parameters, see https://help.aliyun.com/zh/redis/user-guide/use-the-sentinel-compatible-mode-to-connect-to-an-apsaradb-for-redis-instance\n"},"paramNoLooseSentinelPasswordFreeCommands":{"type":"string","description":"After sentinel mode and the# no_loose_sentinel-password-free-access parameter are enabled, you can use this parameter to add additional secret-free command lists (empty by default). After setting, you can execute the corresponding command on any connection without secret, please operate carefully. Commands are written in lowercase letters, and multiple commands are separated by commas (,). See https://help.aliyun.com/zh/redis/user-guide/parameter-support for details\n"},"paramReplMode":{"type":"string","description":"The value is semisync or async. The default value is async.\n\nThe default data synchronization mode is asynchronous replication. To modify the data synchronization mode, refer to https://www.alibabacloud.com/help/en/redis/user-guide/modify-the-synchronization-mode-of-a-persistent-memory-optimized-instance.\n"},"paramSemisyncReplTimeout":{"type":"string","description":"The degradation threshold time of the semi-synchronous replication mode. This parameter value is required only when semi-synchronous replication is enabled. The unit is milliseconds, and the range is 10ms to 60000ms. The default value is 500ms. Please refer to: https://www.alibabacloud.com/help/en/redis/user-guide/modify-the-synchronization-mode-of-a-persistent-memory-optimized-instance.\n"},"paramSentinelCompatEnable":{"type":"string","description":"sentinel compatibility mode, applicable to instances in the cluster architecture proxy connection mode or read/write splitting architecture. For more information about the parameters, see https://www.alibabacloud.com/help/en/redis/user-guide/use-the-sentinel-compatible-mode-to-connect-to-an-apsaradb-for-redis-instance. The value is 0 or 1. The default value is 0.\n"},"password":{"type":"string","description":"The password that is used to connect to the instance. The password must be 8 to 32 characters in length and contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include ! @ # $ % ^ \u0026 * ( ) _ + - =\n","secret":true},"paymentType":{"type":"string","description":"Payment type: Subscription (prepaid), PayAsYouGo (postpaid). Default Subscription.\n"},"period":{"type":"integer","description":"The subscription duration. Unit: months. Valid values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24,36, and 60. This parameter is required only if you set the PaymentType parameter to Subscription.\n"},"port":{"type":"integer","description":"The Tair service port. The service port of the instance. Valid values: 1024 to 65535. Default value: 6379.\n","willReplaceOnChanges":true},"readOnlyCount":{"type":"integer","description":"Number of read-only nodes in the primary zone. Valid values: 0 to 5. This parameter is only applicable to the following conditions:\n\nIf the instance is in the cloud disk version standard architecture, you can set this parameter to a value greater than 0 to enable the read/write splitting architecture.\n\nIf the instance is a cloud disk version read/write splitting architecture instance, you can use this parameter to customize the number of read-only nodes, or set this parameter to 0 to disable the read/write splitting architecture and switch the instance to the standard architecture.\n"},"recoverConfigMode":{"type":"string","description":"Whether to restore the account, kernel parameters, and whitelist (config) information from the original backup set when creating an instance using a specified backup set. The default value is empty, indicating that the account, kernel parameters, and whitelist information are not restored from the original backup set. This parameter is only applicable to Cloud Native instances, and the account, kernel parameters, and whitelist information must have been saved in the original backup set.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the role to be authorized. After authorization, you can use the related Key Management Service (KMS) features. Format: `acs:ram::$accountID:role/$roleName`.\n\n\u003e **NOTE:**  * `$accountID`: Your Alibaba Cloud account ID. To view it, log on to the Alibaba Cloud console, move the pointer over your profile picture in the upper-right corner, and click **Security Settings**.\n\n\u003e **NOTE:**  * `$roleName`: The RAM role name. The value is fixed as `AliyunRdsInstanceEncryptionDefaultRole`.\n\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"secondaryZoneId":{"type":"string","description":"The ID of the secondary zone.This parameter is returned only if the instance is deployed in two zones.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"Security group id\n"},"securityIpGroupName":{"type":"string","description":"The name of the IP address whitelist. You cannot modify the whitelist that is generated by the system. If you do not specify this parameter, the default whitelist is modified by default.\n"},"securityIps":{"type":"string","description":"The IP addresses in the whitelist. Up to 1,000 IP addresses can be specified in a whitelist. Separate multiple IP addresses with a comma (,). Specify an IP address in the 0.0.0.0/0, 10.23.12.24, or 10.23.12.24/24 format. In CIDR block 10.23.12.24/24, /24 specifies the length of the prefix of an IP address. The prefix length ranges from 1 to 32.\n"},"shardCount":{"type":"integer","description":"The number of data nodes in the instance. When 1 is passed, it means that the instance created is a standard architecture with only one data node. You can create an instance in the standard architecture that contains only a single data node. 2 to 32: You can create an instance in the cluster architecture that contains the specified number of data nodes. Only persistent memory-optimized instances can use the cluster architecture. Therefore, you can set this parameter to an integer from 2 to 32 only if you set the InstanceType parameter to tair_scm. It is not allowed to modify the number of shards by modifying this parameter after creating a master-slave architecture instance with or without passing 1.\n"},"slaveReadOnlyCount":{"type":"integer","description":"Specifies the number of read-only nodes in the secondary zone when creating a multi-zone read/write splitting instance.\n\nNote: To create a multi-zone read/write splitting instance, slaveadonlycount and SecondaryZoneId must be specified at the same time.\n"},"srcDbInstanceId":{"type":"string","description":"If you want to create an instance based on the backup set of an existing instance, set this parameter to the ID of the source instance. preceding three parameters. After you specify the SrcDBInstanceId parameter, use the BackupId, ClusterBackupId (recommended for cloud-native cluster instances), or RestoreTime parameter to specify the backup set or the specific point in time that you want to use to create an instance. The SrcDBInstanceId parameter must be used in combination with one of the preceding three parameters.\n"},"sslEnabled":{"type":"string","description":"Modifies SSL encryption configurations. Valid values: 1. Disable (The SSL encryption is disabled) 2. Enable (The SSL encryption is enabled)  3. Update (The SSL certificate is updated)\n"},"storagePerformanceLevel":{"type":"string","description":"The storage type. Valid values: PL1, PL2, and PL3. This parameter is available only when the value of InstanceType is tair_essd, that is, when an ESSD disk instance is selected.\n\nIf the ESSD instance type is 4C, 8C, or 16C, you can specify the storage type as PL1.\n\nIf the type of ESSD instance you select is 8C, 16C, 32C, or 52C, you can specify the storage type as PL2.\n\nIf the ESSD instance type is 16C, 32C, or 52C, you can specify the storage type as PL3.\n","willReplaceOnChanges":true},"storageSizeGb":{"type":"integer","description":"Different specifications have different value ranges. When the\u003cspan pulumi-lang-nodejs=\" instanceType \" pulumi-lang-dotnet=\" InstanceType \" pulumi-lang-go=\" instanceType \" pulumi-lang-python=\" instance_type \" pulumi-lang-yaml=\" instanceType \" pulumi-lang-java=\" instanceType \"\u003e instance_type \u003c/span\u003evalue is\u003cspan pulumi-lang-nodejs=\" tairEssd \" pulumi-lang-dotnet=\" TairEssd \" pulumi-lang-go=\" tairEssd \" pulumi-lang-python=\" tair_essd \" pulumi-lang-yaml=\" tairEssd \" pulumi-lang-java=\" tairEssd \"\u003e tair_essd \u003c/span\u003eand the disk type is ESSD, this attribute takes effect and is required. When a Tair disk is an SSD, see-https://help.aliyun.com/zh/redis/product-overview/capacity-storage-type. The capacity field is defined as different fixed values according to different specifications, and does not need to be specified.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"tairInstanceName":{"type":"string","description":"The name of the resource.\n"},"tdeStatus":{"type":"string","description":"Specifies whether to enable Transparent Data Encryption (TDE). Valid value: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n\n\u003e **NOTE:**  After TDE is enabled, it cannot be disabled. Evaluate the potential impact on your business before enabling this feature. For more information, see [Enable Transparent Data Encryption (TDE)](https://help.aliyun.com/document_detail/265913.html).\n"},"vpcAuthMode":{"type":"string","description":"The VPC authentication mode. Valid values: Open (enables password authentication), Close (disables password authentication and enables [password-free access](https://www.alibabacloud.com/help/en/apsaradb-for-redis/latest/enable-password-free-access)).\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC).\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which the instance is connected.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"Zone ID\n","willReplaceOnChanges":true}},"requiredInputs":["instanceClass","instanceType","vpcId","vswitchId","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering TairInstance resources.\n","properties":{"architectureType":{"type":"string","description":"The architecture of the instance.  cluster, standard, rwsplit.\n"},"autoRenew":{"type":"string","description":"Specifies whether to enable auto-renewal for the instance. Default value: false. Valid values: true(enables auto-renewal), false(disables auto-renewal).\n"},"autoRenewPeriod":{"type":"string","description":"The subscription duration that is supported by auto-renewal. Unit: months. Valid values: 1, 2, 3, 6, and 12. This parameter is required only if the AutoRenew parameter is set to true.\n"},"backupId":{"type":"string","description":"You can set the BackupId parameter to the backup set ID of the source instance. The system uses the data stored in the backup set to create an instance. You can call the DescribeBackups operation to query backup set IDs. If the source instance is a cluster instance, set the BackupId parameter to the backup set IDs of all shards of the source instance, separated by commas (,).\n\nIf your instance is a cloud-native cluster instance, we recommend that you use DescribeClusterBackupList to query the backup set ID of the cluster instance. Then, set the ClusterBackupId request parameter to the backup set ID to clone the cluster instance. This eliminates the need to specify the backup set ID of each shard.\n"},"clusterBackupId":{"type":"string","description":"This parameter is supported for specific new cluster instances. You can query the backup set ID by calling the DescribeClusterBackupList operation. If this parameter is supported, you can specify the backup set ID. In this case, you do not need to specify the BackupId parameter. If this parameter is not supported, set the BackupId parameter to the IDs of backup sets in all shards of the source instance, separated by commas (,).\n"},"connectionDomain":{"type":"string","description":"The internal endpoint of the instance.\n"},"connectionStringPrefix":{"type":"string","description":"The prefix of the endpoint the instance, which must consist of lowercase letters and numbers and start with a lowercase letter.\n"},"createTime":{"type":"string","description":"The time when the instance was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"effectiveTime":{"type":"string","description":"The time when to change the configurations. Default value: Immediately. Valid values: Immediately (The configurations are immediately changed), MaintainTime (The configurations are changed within the maintenance window).\n"},"encryptionKey":{"type":"string","description":"The custom key ID. You can call [DescribeEncryptionKeyList](https://help.aliyun.com/document_detail/473860.html) to obtain it.\n\n\u003e **NOTE:**  * If this parameter is not specified, a key is automatically generated by [Key Management Service](https://help.aliyun.com/document_detail/28935.html).\n\n\u003e **NOTE:**  * To create a custom key, you can call the [CreateKey](https://help.aliyun.com/document_detail/28947.html) operation of Key Management Service.\n\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"encryptionName":{"type":"string","description":"The encryption algorithm. The default value is AES-CTR-256.\n\n\u003e **NOTE:**  This parameter is available only when the `TDEStatus` parameter is set to `Enabled`.\n\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"engineVersion":{"type":"string","description":"Database version. Default value: 1.0.\n\nRules for transferring parameters of different tair product types:\n\ntair_rdb:  Compatible with the Redis5.0 and Redis6.0 protocols, and is transmitted to 5.0 or 6.0.\n\ntair_scm: The Tair persistent memory is compatible with the Redis6.0 protocol and is passed 1.0.\n\ntair_essd: The disk (ESSD/SSD) is compatible with the Redis4.0 and Redis6.0 protocols, and is transmitted to 1.0 and 2.0 respectively.\n"},"forceUpgrade":{"type":"boolean","description":"Specifies whether to forcefully change the configurations of the instance. Default value: true. Valid values: false (The system does not forcefully change the configurations), true (The system forcefully changes the configurations).\n"},"globalInstanceId":{"type":"string","description":"The ID of a distributed (Global Distributed Cache) instance, which indicates whether to use the newly created instance as a sub-instance of a distributed instance. You can use this method to create a distributed instance.\n\n1. Enter true if you want the new instance to be the first child instance.\n\n2. If you want the new instance to be used as the second and third sub-instances, enter the distributed instance ID.\n\n3. Not as a distributed instance, you do not need to enter any values.\n"},"instanceClass":{"type":"string","description":"The instance type of the instance. For more information, see [Instance types](https://www.alibabacloud.com/help/en/apsaradb-for-redis/latest/instance-types).\n"},"instanceType":{"type":"string","description":"The storage medium of the instance. Valid values: tair_rdb, tair_scm, tair_essd.\n","willReplaceOnChanges":true},"intranetBandwidth":{"type":"integer","description":"Instance intranet bandwidth\n"},"maxConnections":{"type":"integer","description":"The maximum number of connections supported by the instance.\n"},"modifyMode":{"type":"string","description":"The modification method when modifying the IP whitelist. The value includes Cover (default): overwrite the original whitelist; Append: Append the whitelist; Delete: Delete the whitelist.\n"},"networkType":{"type":"string","description":"The network type of the instance.  CLASSIC(classic network), VPC.\n"},"nodeType":{"type":"string","description":"The node type. For cloud-native instances, input MASTER_SLAVE (master-replica) or STAND_ALONE (standalone). For classic instances, input double (master-replica) or single (standalone).\n"},"paramNoLooseSentinelEnabled":{"type":"string","description":"sentinel compatibility mode, applicable to non-cluster instances. For more information about parameters, see yes or no in the https://www.alibabacloud.com/help/en/redis/user-guide/use-the-sentinel-compatible-mode-to-connect-to-an-apsaradb-for-redis-instance, valid values: yes, no. The default value is no.\n"},"paramNoLooseSentinelPasswordFreeAccess":{"type":"string","description":"Whether to allow Sentinel commands to be executed without secrets when Sentinel mode is enabled. Value: yes: enabled. After the command is enabled, you can directly run the Sentinel command in the VPC without enabling the password-free feature. no: the default value, disabled. For parameters, see https://help.aliyun.com/zh/redis/user-guide/use-the-sentinel-compatible-mode-to-connect-to-an-apsaradb-for-redis-instance\n"},"paramNoLooseSentinelPasswordFreeCommands":{"type":"string","description":"After sentinel mode and the# no_loose_sentinel-password-free-access parameter are enabled, you can use this parameter to add additional secret-free command lists (empty by default). After setting, you can execute the corresponding command on any connection without secret, please operate carefully. Commands are written in lowercase letters, and multiple commands are separated by commas (,). See https://help.aliyun.com/zh/redis/user-guide/parameter-support for details\n"},"paramReplMode":{"type":"string","description":"The value is semisync or async. The default value is async.\n\nThe default data synchronization mode is asynchronous replication. To modify the data synchronization mode, refer to https://www.alibabacloud.com/help/en/redis/user-guide/modify-the-synchronization-mode-of-a-persistent-memory-optimized-instance.\n"},"paramSemisyncReplTimeout":{"type":"string","description":"The degradation threshold time of the semi-synchronous replication mode. This parameter value is required only when semi-synchronous replication is enabled. The unit is milliseconds, and the range is 10ms to 60000ms. The default value is 500ms. Please refer to: https://www.alibabacloud.com/help/en/redis/user-guide/modify-the-synchronization-mode-of-a-persistent-memory-optimized-instance.\n"},"paramSentinelCompatEnable":{"type":"string","description":"sentinel compatibility mode, applicable to instances in the cluster architecture proxy connection mode or read/write splitting architecture. For more information about the parameters, see https://www.alibabacloud.com/help/en/redis/user-guide/use-the-sentinel-compatible-mode-to-connect-to-an-apsaradb-for-redis-instance. The value is 0 or 1. The default value is 0.\n"},"password":{"type":"string","description":"The password that is used to connect to the instance. The password must be 8 to 32 characters in length and contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include ! @ # $ % ^ \u0026 * ( ) _ + - =\n","secret":true},"paymentType":{"type":"string","description":"Payment type: Subscription (prepaid), PayAsYouGo (postpaid). Default Subscription.\n"},"period":{"type":"integer","description":"The subscription duration. Unit: months. Valid values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24,36, and 60. This parameter is required only if you set the PaymentType parameter to Subscription.\n"},"port":{"type":"integer","description":"The Tair service port. The service port of the instance. Valid values: 1024 to 65535. Default value: 6379.\n","willReplaceOnChanges":true},"readOnlyCount":{"type":"integer","description":"Number of read-only nodes in the primary zone. Valid values: 0 to 5. This parameter is only applicable to the following conditions:\n\nIf the instance is in the cloud disk version standard architecture, you can set this parameter to a value greater than 0 to enable the read/write splitting architecture.\n\nIf the instance is a cloud disk version read/write splitting architecture instance, you can use this parameter to customize the number of read-only nodes, or set this parameter to 0 to disable the read/write splitting architecture and switch the instance to the standard architecture.\n"},"recoverConfigMode":{"type":"string","description":"Whether to restore the account, kernel parameters, and whitelist (config) information from the original backup set when creating an instance using a specified backup set. The default value is empty, indicating that the account, kernel parameters, and whitelist information are not restored from the original backup set. This parameter is only applicable to Cloud Native instances, and the account, kernel parameters, and whitelist information must have been saved in the original backup set.\n"},"regionId":{"type":"string","description":"Region Id\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"roleArn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the role to be authorized. After authorization, you can use the related Key Management Service (KMS) features. Format: `acs:ram::$accountID:role/$roleName`.\n\n\u003e **NOTE:**  * `$accountID`: Your Alibaba Cloud account ID. To view it, log on to the Alibaba Cloud console, move the pointer over your profile picture in the upper-right corner, and click **Security Settings**.\n\n\u003e **NOTE:**  * `$roleName`: The RAM role name. The value is fixed as `AliyunRdsInstanceEncryptionDefaultRole`.\n\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"secondaryZoneId":{"type":"string","description":"The ID of the secondary zone.This parameter is returned only if the instance is deployed in two zones.\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"Security group id\n"},"securityIpGroupName":{"type":"string","description":"The name of the IP address whitelist. You cannot modify the whitelist that is generated by the system. If you do not specify this parameter, the default whitelist is modified by default.\n"},"securityIps":{"type":"string","description":"The IP addresses in the whitelist. Up to 1,000 IP addresses can be specified in a whitelist. Separate multiple IP addresses with a comma (,). Specify an IP address in the 0.0.0.0/0, 10.23.12.24, or 10.23.12.24/24 format. In CIDR block 10.23.12.24/24, /24 specifies the length of the prefix of an IP address. The prefix length ranges from 1 to 32.\n"},"shardCount":{"type":"integer","description":"The number of data nodes in the instance. When 1 is passed, it means that the instance created is a standard architecture with only one data node. You can create an instance in the standard architecture that contains only a single data node. 2 to 32: You can create an instance in the cluster architecture that contains the specified number of data nodes. Only persistent memory-optimized instances can use the cluster architecture. Therefore, you can set this parameter to an integer from 2 to 32 only if you set the InstanceType parameter to tair_scm. It is not allowed to modify the number of shards by modifying this parameter after creating a master-slave architecture instance with or without passing 1.\n"},"slaveReadOnlyCount":{"type":"integer","description":"Specifies the number of read-only nodes in the secondary zone when creating a multi-zone read/write splitting instance.\n\nNote: To create a multi-zone read/write splitting instance, slaveadonlycount and SecondaryZoneId must be specified at the same time.\n"},"srcDbInstanceId":{"type":"string","description":"If you want to create an instance based on the backup set of an existing instance, set this parameter to the ID of the source instance. preceding three parameters. After you specify the SrcDBInstanceId parameter, use the BackupId, ClusterBackupId (recommended for cloud-native cluster instances), or RestoreTime parameter to specify the backup set or the specific point in time that you want to use to create an instance. The SrcDBInstanceId parameter must be used in combination with one of the preceding three parameters.\n"},"sslEnabled":{"type":"string","description":"Modifies SSL encryption configurations. Valid values: 1. Disable (The SSL encryption is disabled) 2. Enable (The SSL encryption is enabled)  3. Update (The SSL certificate is updated)\n"},"status":{"type":"string","description":"The status of the resource\n"},"storagePerformanceLevel":{"type":"string","description":"The storage type. Valid values: PL1, PL2, and PL3. This parameter is available only when the value of InstanceType is tair_essd, that is, when an ESSD disk instance is selected.\n\nIf the ESSD instance type is 4C, 8C, or 16C, you can specify the storage type as PL1.\n\nIf the type of ESSD instance you select is 8C, 16C, 32C, or 52C, you can specify the storage type as PL2.\n\nIf the ESSD instance type is 16C, 32C, or 52C, you can specify the storage type as PL3.\n","willReplaceOnChanges":true},"storageSizeGb":{"type":"integer","description":"Different specifications have different value ranges. When the\u003cspan pulumi-lang-nodejs=\" instanceType \" pulumi-lang-dotnet=\" InstanceType \" pulumi-lang-go=\" instanceType \" pulumi-lang-python=\" instance_type \" pulumi-lang-yaml=\" instanceType \" pulumi-lang-java=\" instanceType \"\u003e instance_type \u003c/span\u003evalue is\u003cspan pulumi-lang-nodejs=\" tairEssd \" pulumi-lang-dotnet=\" TairEssd \" pulumi-lang-go=\" tairEssd \" pulumi-lang-python=\" tair_essd \" pulumi-lang-yaml=\" tairEssd \" pulumi-lang-java=\" tairEssd \"\u003e tair_essd \u003c/span\u003eand the disk type is ESSD, this attribute takes effect and is required. When a Tair disk is an SSD, see-https://help.aliyun.com/zh/redis/product-overview/capacity-storage-type. The capacity field is defined as different fixed values according to different specifications, and does not need to be specified.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"tairInstanceId":{"type":"string","description":"The ID of the resource.\n"},"tairInstanceName":{"type":"string","description":"The name of the resource.\n"},"tdeStatus":{"type":"string","description":"Specifies whether to enable Transparent Data Encryption (TDE). Valid value: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n\n\u003e **NOTE:**  After TDE is enabled, it cannot be disabled. Evaluate the potential impact on your business before enabling this feature. For more information, see [Enable Transparent Data Encryption (TDE)](https://help.aliyun.com/document_detail/265913.html).\n"},"vpcAuthMode":{"type":"string","description":"The VPC authentication mode. Valid values: Open (enables password authentication), Close (disables password authentication and enables [password-free access](https://www.alibabacloud.com/help/en/apsaradb-for-redis/latest/enable-password-free-access)).\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC).\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which the instance is connected.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"Zone ID\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:resourcemanager/account:Account":{"description":"Provides a Resource Manager Account resource.\n\n\n\nFor information about Resource Manager Account and how to use it, see [What is Account](https://www.alibabacloud.com/help/en/doc-detail/111231.htm).\n\n\u003e **NOTE:** Available since v1.83.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst displayName = config.get(\"displayName\") || \"EAccount\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst example = alicloud.resourcemanager.getFolders({});\nconst exampleAccount = new alicloud.resourcemanager.Account(\"example\", {\n    displayName: `${displayName}-${_default.result}`,\n    folderId: example.then(example =\u003e example.ids?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndisplay_name = config.get(\"displayName\")\nif display_name is None:\n    display_name = \"EAccount\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample = alicloud.resourcemanager.get_folders()\nexample_account = alicloud.resourcemanager.Account(\"example\",\n    display_name=f\"{display_name}-{default['result']}\",\n    folder_id=example.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var displayName = config.Get(\"displayName\") ?? \"EAccount\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var example = AliCloud.ResourceManager.GetFolders.Invoke();\n\n    var exampleAccount = new AliCloud.ResourceManager.Account(\"example\", new()\n    {\n        DisplayName = $\"{displayName}-{@default.Result}\",\n        FolderId = example.Apply(getFoldersResult =\u003e getFoldersResult.Ids[0]),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdisplayName := \"EAccount\"\n\t\tif param := cfg.Get(\"displayName\"); param != \"\" {\n\t\t\tdisplayName = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := resourcemanager.GetFolders(ctx, \u0026resourcemanager.GetFoldersArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.NewAccount(ctx, \"example\", \u0026resourcemanager.AccountArgs{\n\t\t\tDisplayName: pulumi.Sprintf(\"%v-%v\", displayName, _default.Result),\n\t\t\tFolderId:    pulumi.String(example.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetFoldersArgs;\nimport com.pulumi.alicloud.resourcemanager.Account;\nimport com.pulumi.alicloud.resourcemanager.AccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var displayName = config.get(\"displayName\").orElse(\"EAccount\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var example = ResourcemanagerFunctions.getFolders(GetFoldersArgs.builder()\n            .build());\n\n        var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder()\n            .displayName(String.format(\"%s-%s\", displayName,default_.result()))\n            .folderId(example.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\n  displayName:\n    type: string\n    default: EAccount\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  exampleAccount:\n    type: alicloud:resourcemanager:Account\n    name: example\n    properties:\n      displayName: ${displayName}-${default.result}\n      folderId: ${example.ids[0]}\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:resourcemanager:getFolders\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/account:Account example \u003cid\u003e\n```\n\n","properties":{"abandonAbleCheckIds":{"type":"array","items":{"type":"string"},"description":". Field 'abandon_able_check_id' has been deprecated from provider version 1.249.0. New field 'abandonable_check_id' instead.\n","deprecationMessage":"Field 'abandon_able_check_id' has been deprecated since provider version 1.248.0. New field 'abandonable_check_id' instead."},"abandonableCheckIds":{"type":"array","items":{"type":"string"},"description":"The ID of the check item that can choose to abandon and continue to perform member deletion.\nThe ID is obtained from the return parameter AbandonableChecks of GetAccountDeletionCheckResult.\n"},"accountNamePrefix":{"type":"string","description":"Account name prefix. Empty the system randomly generated.\nFormat: English letters, numbers, and special characters_.-can be entered. It must start and end with an English letter or number, and continuous special characters_.-cannot be entered '_.-'.\nThe format of the full account name is @\u003c ResourceDirectoryId\u003e.aliyunid.com, for example: 'alice @ rd-3G ****.aliyunid.com'\nThe account name must be unique in the resource directory.\n"},"displayName":{"type":"string","description":"Member name\n"},"folderId":{"type":"string","description":"The ID of the parent folder\n"},"forceDelete":{"type":"boolean","description":"Whether to force delete the account.\n"},"joinMethod":{"type":"string","description":"Ways for members to join the resource directory.  invited, created\n"},"joinTime":{"type":"string","description":"The time when the member joined the resource directory\n"},"modifyTime":{"type":"string","description":"The modification time of the invitation\n"},"payerAccountId":{"type":"string","description":"The settlement account ID. If it is left blank, the newly created member will be used for self-settlement.\n"},"resellAccountType":{"type":"string","description":"The identity type of the member. Valid values:\n- resell: The member is an account for a reseller. This is the default value. A relationship is automatically established between the member and the reseller. The management account of the resource directory must be used as the billing account of the member.\n- non_resell: The member is not an account for a reseller. The member is an account that is not associated with a reseller. You can directly use the account to purchase Alibaba Cloud resources. The member is used as its own billing account.\n\n\u003e **NOTE:**  This parameter is available only for resellers at the international site (alibabacloud.com).\n"},"resourceDirectoryId":{"type":"string","description":"Resource directory ID\n"},"status":{"type":"string","description":"Member joining status.  CreateSuccess,CreateVerifying,CreateFailed,CreateExpired,CreateCancelled,PromoteVerifying,PromoteFailed,PromoteExpired,PromoteCancelled,PromoteSuccess,InviteSuccess,Removed\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"type":{"type":"string","description":"Member type. The value of ResourceAccount indicates the resource account\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["displayName","folderId","joinMethod","joinTime","modifyTime","resourceDirectoryId","status","type"],"inputProperties":{"abandonAbleCheckIds":{"type":"array","items":{"type":"string"},"description":". Field 'abandon_able_check_id' has been deprecated from provider version 1.249.0. New field 'abandonable_check_id' instead.\n","deprecationMessage":"Field 'abandon_able_check_id' has been deprecated since provider version 1.248.0. New field 'abandonable_check_id' instead."},"abandonableCheckIds":{"type":"array","items":{"type":"string"},"description":"The ID of the check item that can choose to abandon and continue to perform member deletion.\nThe ID is obtained from the return parameter AbandonableChecks of GetAccountDeletionCheckResult.\n"},"accountNamePrefix":{"type":"string","description":"Account name prefix. Empty the system randomly generated.\nFormat: English letters, numbers, and special characters_.-can be entered. It must start and end with an English letter or number, and continuous special characters_.-cannot be entered '_.-'.\nThe format of the full account name is @\u003c ResourceDirectoryId\u003e.aliyunid.com, for example: 'alice @ rd-3G ****.aliyunid.com'\nThe account name must be unique in the resource directory.\n"},"displayName":{"type":"string","description":"Member name\n"},"folderId":{"type":"string","description":"The ID of the parent folder\n"},"forceDelete":{"type":"boolean","description":"Whether to force delete the account.\n"},"payerAccountId":{"type":"string","description":"The settlement account ID. If it is left blank, the newly created member will be used for self-settlement.\n"},"resellAccountType":{"type":"string","description":"The identity type of the member. Valid values:\n- resell: The member is an account for a reseller. This is the default value. A relationship is automatically established between the member and the reseller. The management account of the resource directory must be used as the billing account of the member.\n- non_resell: The member is not an account for a reseller. The member is an account that is not associated with a reseller. You can directly use the account to purchase Alibaba Cloud resources. The member is used as its own billing account.\n\n\u003e **NOTE:**  This parameter is available only for resellers at the international site (alibabacloud.com).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"type":{"type":"string","description":"Member type. The value of ResourceAccount indicates the resource account\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"requiredInputs":["displayName"],"stateInputs":{"description":"Input properties used for looking up and filtering Account resources.\n","properties":{"abandonAbleCheckIds":{"type":"array","items":{"type":"string"},"description":". Field 'abandon_able_check_id' has been deprecated from provider version 1.249.0. New field 'abandonable_check_id' instead.\n","deprecationMessage":"Field 'abandon_able_check_id' has been deprecated since provider version 1.248.0. New field 'abandonable_check_id' instead."},"abandonableCheckIds":{"type":"array","items":{"type":"string"},"description":"The ID of the check item that can choose to abandon and continue to perform member deletion.\nThe ID is obtained from the return parameter AbandonableChecks of GetAccountDeletionCheckResult.\n"},"accountNamePrefix":{"type":"string","description":"Account name prefix. Empty the system randomly generated.\nFormat: English letters, numbers, and special characters_.-can be entered. It must start and end with an English letter or number, and continuous special characters_.-cannot be entered '_.-'.\nThe format of the full account name is @\u003c ResourceDirectoryId\u003e.aliyunid.com, for example: 'alice @ rd-3G ****.aliyunid.com'\nThe account name must be unique in the resource directory.\n"},"displayName":{"type":"string","description":"Member name\n"},"folderId":{"type":"string","description":"The ID of the parent folder\n"},"forceDelete":{"type":"boolean","description":"Whether to force delete the account.\n"},"joinMethod":{"type":"string","description":"Ways for members to join the resource directory.  invited, created\n"},"joinTime":{"type":"string","description":"The time when the member joined the resource directory\n"},"modifyTime":{"type":"string","description":"The modification time of the invitation\n"},"payerAccountId":{"type":"string","description":"The settlement account ID. If it is left blank, the newly created member will be used for self-settlement.\n"},"resellAccountType":{"type":"string","description":"The identity type of the member. Valid values:\n- resell: The member is an account for a reseller. This is the default value. A relationship is automatically established between the member and the reseller. The management account of the resource directory must be used as the billing account of the member.\n- non_resell: The member is not an account for a reseller. The member is an account that is not associated with a reseller. You can directly use the account to purchase Alibaba Cloud resources. The member is used as its own billing account.\n\n\u003e **NOTE:**  This parameter is available only for resellers at the international site (alibabacloud.com).\n"},"resourceDirectoryId":{"type":"string","description":"Resource directory ID\n"},"status":{"type":"string","description":"Member joining status.  CreateSuccess,CreateVerifying,CreateFailed,CreateExpired,CreateCancelled,PromoteVerifying,PromoteFailed,PromoteExpired,PromoteCancelled,PromoteSuccess,InviteSuccess,Removed\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"type":{"type":"string","description":"Member type. The value of ResourceAccount indicates the resource account\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"type":"object"}},"alicloud:resourcemanager/autoGroupingRule:AutoGroupingRule":{"description":"Provides a Resource Manager Auto Grouping Rule resource.\n\nAuto grouping rules of resource group.\n\nFor information about Resource Manager Auto Grouping Rule and how to use it, see [What is Auto Grouping Rule](https://www.alibabacloud.com/help/en/resource-management/resource-group/developer-reference/api-resourcemanager-2020-03-31-createautogroupingrule-rg).\n\n\u003e **NOTE:** Available since v1.246.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.resourcemanager.AutoGroupingRule(\"default\", {\n    ruleContents: [{\n        targetResourceGroupCondition: `    {\n        \\\\\"children\\\\\": [\n      {\n        \\\\\"desired\\\\\": \\\\\"rg-aek*****sbvy\\\\\",\n        \\\\\"featurePath\\\\\": \\\\\".resourceGroupId\\\\\",\n        \\\\\"featureSource\\\\\": \\\\\"RESOURCE\\\\\",\n        \\\\\"operator\\\\\": \\\\\"StringEquals\\\\\"\n      }\n        ],\n        \\\\\"operator\\\\\": \\\\\"and\\\\\"\n    }\n`,\n        autoGroupingScopeCondition: `    {\n        \\\\\"children\\\\\": [\n      {\n        \\\\\"desired\\\\\": \\\\\"name_a\\\\\",\n        \\\\\"featurePath\\\\\": \\\\\".resourceName\\\\\",\n        \\\\\"featureSource\\\\\": \\\\\"RESOURCE\\\\\",\n        \\\\\"operator\\\\\": \\\\\"StringEqualsAny\\\\\"\n      }\n        ],\n        \\\\\"operator\\\\\": \\\\\"and\\\\\"\n    }\n`,\n    }],\n    ruleDesc: name,\n    ruleType: \"custom_condition\",\n    regionIdsScope: \"cn-hangzhou,cn-shanghai\",\n    resourceIdsScope: \"imock-xxxxxx\",\n    resourceGroupIdsScope: \"rg-aek22*****3sbvz\",\n    resourceTypesScope: \"ecs.instance,vpc.vpc\",\n    ruleName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.AutoGroupingRule(\"default\",\n    rule_contents=[{\n        \"target_resource_group_condition\": \"\"\"    {\n        \\\"children\\\": [\n      {\n        \\\"desired\\\": \\\"rg-aek*****sbvy\\\",\n        \\\"featurePath\\\": \\\"$.resourceGroupId\\\",\n        \\\"featureSource\\\": \\\"RESOURCE\\\",\n        \\\"operator\\\": \\\"StringEquals\\\"\n      }\n        ],\n        \\\"operator\\\": \\\"and\\\"\n    }\n\"\"\",\n        \"auto_grouping_scope_condition\": \"\"\"    {\n        \\\"children\\\": [\n      {\n        \\\"desired\\\": \\\"name_a\\\",\n        \\\"featurePath\\\": \\\"$.resourceName\\\",\n        \\\"featureSource\\\": \\\"RESOURCE\\\",\n        \\\"operator\\\": \\\"StringEqualsAny\\\"\n      }\n        ],\n        \\\"operator\\\": \\\"and\\\"\n    }\n\"\"\",\n    }],\n    rule_desc=name,\n    rule_type=\"custom_condition\",\n    region_ids_scope=\"cn-hangzhou,cn-shanghai\",\n    resource_ids_scope=\"imock-xxxxxx\",\n    resource_group_ids_scope=\"rg-aek22*****3sbvz\",\n    resource_types_scope=\"ecs.instance,vpc.vpc\",\n    rule_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ResourceManager.AutoGroupingRule(\"default\", new()\n    {\n        RuleContents = new[]\n        {\n            new AliCloud.ResourceManager.Inputs.AutoGroupingRuleRuleContentArgs\n            {\n                TargetResourceGroupCondition = @\"    {\n        \\\"\"children\\\"\": [\n      {\n        \\\"\"desired\\\"\": \\\"\"rg-aek*****sbvy\\\"\",\n        \\\"\"featurePath\\\"\": \\\"\"$.resourceGroupId\\\"\",\n        \\\"\"featureSource\\\"\": \\\"\"RESOURCE\\\"\",\n        \\\"\"operator\\\"\": \\\"\"StringEquals\\\"\"\n      }\n        ],\n        \\\"\"operator\\\"\": \\\"\"and\\\"\"\n    }\n\",\n                AutoGroupingScopeCondition = @\"    {\n        \\\"\"children\\\"\": [\n      {\n        \\\"\"desired\\\"\": \\\"\"name_a\\\"\",\n        \\\"\"featurePath\\\"\": \\\"\"$.resourceName\\\"\",\n        \\\"\"featureSource\\\"\": \\\"\"RESOURCE\\\"\",\n        \\\"\"operator\\\"\": \\\"\"StringEqualsAny\\\"\"\n      }\n        ],\n        \\\"\"operator\\\"\": \\\"\"and\\\"\"\n    }\n\",\n            },\n        },\n        RuleDesc = name,\n        RuleType = \"custom_condition\",\n        RegionIdsScope = \"cn-hangzhou,cn-shanghai\",\n        ResourceIdsScope = \"imock-xxxxxx\",\n        ResourceGroupIdsScope = \"rg-aek22*****3sbvz\",\n        ResourceTypesScope = \"ecs.instance,vpc.vpc\",\n        RuleName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.NewAutoGroupingRule(ctx, \"default\", \u0026resourcemanager.AutoGroupingRuleArgs{\n\t\t\tRuleContents: resourcemanager.AutoGroupingRuleRuleContentArray{\n\t\t\t\t\u0026resourcemanager.AutoGroupingRuleRuleContentArgs{\n\t\t\t\t\tTargetResourceGroupCondition: pulumi.String(`    {\n        \\\"children\\\": [\n      {\n        \\\"desired\\\": \\\"rg-aek*****sbvy\\\",\n        \\\"featurePath\\\": \\\"$.resourceGroupId\\\",\n        \\\"featureSource\\\": \\\"RESOURCE\\\",\n        \\\"operator\\\": \\\"StringEquals\\\"\n      }\n        ],\n        \\\"operator\\\": \\\"and\\\"\n    }\n`),\n\t\t\t\t\tAutoGroupingScopeCondition: pulumi.String(`    {\n        \\\"children\\\": [\n      {\n        \\\"desired\\\": \\\"name_a\\\",\n        \\\"featurePath\\\": \\\"$.resourceName\\\",\n        \\\"featureSource\\\": \\\"RESOURCE\\\",\n        \\\"operator\\\": \\\"StringEqualsAny\\\"\n      }\n        ],\n        \\\"operator\\\": \\\"and\\\"\n    }\n`),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRuleDesc:              pulumi.String(name),\n\t\t\tRuleType:              pulumi.String(\"custom_condition\"),\n\t\t\tRegionIdsScope:        pulumi.String(\"cn-hangzhou,cn-shanghai\"),\n\t\t\tResourceIdsScope:      pulumi.String(\"imock-xxxxxx\"),\n\t\t\tResourceGroupIdsScope: pulumi.String(\"rg-aek22*****3sbvz\"),\n\t\t\tResourceTypesScope:    pulumi.String(\"ecs.instance,vpc.vpc\"),\n\t\t\tRuleName:              pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.AutoGroupingRule;\nimport com.pulumi.alicloud.resourcemanager.AutoGroupingRuleArgs;\nimport com.pulumi.alicloud.resourcemanager.inputs.AutoGroupingRuleRuleContentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new AutoGroupingRule(\"default\", AutoGroupingRuleArgs.builder()\n            .ruleContents(AutoGroupingRuleRuleContentArgs.builder()\n                .targetResourceGroupCondition(\"\"\"\n    {\n        \\\"children\\\": [\n      {\n        \\\"desired\\\": \\\"rg-aek*****sbvy\\\",\n        \\\"featurePath\\\": \\\"$.resourceGroupId\\\",\n        \\\"featureSource\\\": \\\"RESOURCE\\\",\n        \\\"operator\\\": \\\"StringEquals\\\"\n      }\n        ],\n        \\\"operator\\\": \\\"and\\\"\n    }\n                \"\"\")\n                .autoGroupingScopeCondition(\"\"\"\n    {\n        \\\"children\\\": [\n      {\n        \\\"desired\\\": \\\"name_a\\\",\n        \\\"featurePath\\\": \\\"$.resourceName\\\",\n        \\\"featureSource\\\": \\\"RESOURCE\\\",\n        \\\"operator\\\": \\\"StringEqualsAny\\\"\n      }\n        ],\n        \\\"operator\\\": \\\"and\\\"\n    }\n                \"\"\")\n                .build())\n            .ruleDesc(name)\n            .ruleType(\"custom_condition\")\n            .regionIdsScope(\"cn-hangzhou,cn-shanghai\")\n            .resourceIdsScope(\"imock-xxxxxx\")\n            .resourceGroupIdsScope(\"rg-aek22*****3sbvz\")\n            .resourceTypesScope(\"ecs.instance,vpc.vpc\")\n            .ruleName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:resourcemanager:AutoGroupingRule\n    properties:\n      ruleContents:\n        - targetResourceGroupCondition: |2\n                {\n                    \\\"children\\\": [\n                  {\n                    \\\"desired\\\": \\\"rg-aek*****sbvy\\\",\n                    \\\"featurePath\\\": \\\"$.resourceGroupId\\\",\n                    \\\"featureSource\\\": \\\"RESOURCE\\\",\n                    \\\"operator\\\": \\\"StringEquals\\\"\n                  }\n                    ],\n                    \\\"operator\\\": \\\"and\\\"\n                }\n          autoGroupingScopeCondition: |2\n                {\n                    \\\"children\\\": [\n                  {\n                    \\\"desired\\\": \\\"name_a\\\",\n                    \\\"featurePath\\\": \\\"$.resourceName\\\",\n                    \\\"featureSource\\\": \\\"RESOURCE\\\",\n                    \\\"operator\\\": \\\"StringEqualsAny\\\"\n                  }\n                    ],\n                    \\\"operator\\\": \\\"and\\\"\n                }\n      ruleDesc: ${name}\n      ruleType: custom_condition\n      regionIdsScope: cn-hangzhou,cn-shanghai\n      resourceIdsScope: imock-xxxxxx\n      resourceGroupIdsScope: rg-aek22*****3sbvz\n      resourceTypesScope: ecs.instance,vpc.vpc\n      ruleName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Auto Grouping Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/autoGroupingRule:AutoGroupingRule example \u003cid\u003e\n```\n\n","properties":{"excludeRegionIdsScope":{"type":"string","description":"The IDs of regions to be excluded. Separate multiple IDs with commas (,).\n"},"excludeResourceGroupIdsScope":{"type":"string","description":"The IDs of resource groups to be excluded. Separate multiple IDs with commas (,).\n"},"excludeResourceIdsScope":{"type":"string","description":"The IDs of resources to be excluded. Separate multiple IDs with commas (,).\n"},"excludeResourceTypesScope":{"type":"string","description":"The resource types to be excluded. Separate multiple resource types with commas (,).\n"},"regionIdsScope":{"type":"string","description":"The IDs of regions. Separate multiple IDs with commas (,).\n"},"resourceGroupIdsScope":{"type":"string","description":"The IDs of resource groups. Separate multiple IDs with commas (,).\n"},"resourceIdsScope":{"type":"string","description":"The IDs of resources. Separate multiple IDs with commas (,).\n"},"resourceTypesScope":{"type":"string","description":"The resource types. Separate multiple resource types with commas (,).\n"},"ruleContents":{"type":"array","items":{"$ref":"#/types/alicloud:resourcemanager/AutoGroupingRuleRuleContent:AutoGroupingRuleRuleContent"},"description":"The content records of the rule. See \u003cspan pulumi-lang-nodejs=\"`ruleContents`\" pulumi-lang-dotnet=\"`RuleContents`\" pulumi-lang-go=\"`ruleContents`\" pulumi-lang-python=\"`rule_contents`\" pulumi-lang-yaml=\"`ruleContents`\" pulumi-lang-java=\"`ruleContents`\"\u003e`rule_contents`\u003c/span\u003e below.\n"},"ruleDesc":{"type":"string","description":"The description of the rule.\n"},"ruleName":{"type":"string","description":"The name of the rule.\n"},"ruleType":{"type":"string","description":"The type of the rule. Valid values:\n"}},"required":["ruleContents","ruleName","ruleType"],"inputProperties":{"excludeRegionIdsScope":{"type":"string","description":"The IDs of regions to be excluded. Separate multiple IDs with commas (,).\n"},"excludeResourceGroupIdsScope":{"type":"string","description":"The IDs of resource groups to be excluded. Separate multiple IDs with commas (,).\n"},"excludeResourceIdsScope":{"type":"string","description":"The IDs of resources to be excluded. Separate multiple IDs with commas (,).\n"},"excludeResourceTypesScope":{"type":"string","description":"The resource types to be excluded. Separate multiple resource types with commas (,).\n"},"regionIdsScope":{"type":"string","description":"The IDs of regions. Separate multiple IDs with commas (,).\n"},"resourceGroupIdsScope":{"type":"string","description":"The IDs of resource groups. Separate multiple IDs with commas (,).\n"},"resourceIdsScope":{"type":"string","description":"The IDs of resources. Separate multiple IDs with commas (,).\n"},"resourceTypesScope":{"type":"string","description":"The resource types. Separate multiple resource types with commas (,).\n"},"ruleContents":{"type":"array","items":{"$ref":"#/types/alicloud:resourcemanager/AutoGroupingRuleRuleContent:AutoGroupingRuleRuleContent"},"description":"The content records of the rule. See \u003cspan pulumi-lang-nodejs=\"`ruleContents`\" pulumi-lang-dotnet=\"`RuleContents`\" pulumi-lang-go=\"`ruleContents`\" pulumi-lang-python=\"`rule_contents`\" pulumi-lang-yaml=\"`ruleContents`\" pulumi-lang-java=\"`ruleContents`\"\u003e`rule_contents`\u003c/span\u003e below.\n"},"ruleDesc":{"type":"string","description":"The description of the rule.\n"},"ruleName":{"type":"string","description":"The name of the rule.\n"},"ruleType":{"type":"string","description":"The type of the rule. Valid values:\n","willReplaceOnChanges":true}},"requiredInputs":["ruleContents","ruleName","ruleType"],"stateInputs":{"description":"Input properties used for looking up and filtering AutoGroupingRule resources.\n","properties":{"excludeRegionIdsScope":{"type":"string","description":"The IDs of regions to be excluded. Separate multiple IDs with commas (,).\n"},"excludeResourceGroupIdsScope":{"type":"string","description":"The IDs of resource groups to be excluded. Separate multiple IDs with commas (,).\n"},"excludeResourceIdsScope":{"type":"string","description":"The IDs of resources to be excluded. Separate multiple IDs with commas (,).\n"},"excludeResourceTypesScope":{"type":"string","description":"The resource types to be excluded. Separate multiple resource types with commas (,).\n"},"regionIdsScope":{"type":"string","description":"The IDs of regions. Separate multiple IDs with commas (,).\n"},"resourceGroupIdsScope":{"type":"string","description":"The IDs of resource groups. Separate multiple IDs with commas (,).\n"},"resourceIdsScope":{"type":"string","description":"The IDs of resources. Separate multiple IDs with commas (,).\n"},"resourceTypesScope":{"type":"string","description":"The resource types. Separate multiple resource types with commas (,).\n"},"ruleContents":{"type":"array","items":{"$ref":"#/types/alicloud:resourcemanager/AutoGroupingRuleRuleContent:AutoGroupingRuleRuleContent"},"description":"The content records of the rule. See \u003cspan pulumi-lang-nodejs=\"`ruleContents`\" pulumi-lang-dotnet=\"`RuleContents`\" pulumi-lang-go=\"`ruleContents`\" pulumi-lang-python=\"`rule_contents`\" pulumi-lang-yaml=\"`ruleContents`\" pulumi-lang-java=\"`ruleContents`\"\u003e`rule_contents`\u003c/span\u003e below.\n"},"ruleDesc":{"type":"string","description":"The description of the rule.\n"},"ruleName":{"type":"string","description":"The name of the rule.\n"},"ruleType":{"type":"string","description":"The type of the rule. Valid values:\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:resourcemanager/controlPolicy:ControlPolicy":{"description":"Provides a Resource Manager Control Policy resource.\n\n\n\nFor information about Resource Manager Control Policy and how to use it, see [What is Control Policy](https://www.alibabacloud.com/help/en/resource-management/latest/api-resourcedirectorymaster-2022-04-19-createcontrolpolicy).\n\n\u003e **NOTE:** Available since v1.120.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst example = new alicloud.resourcemanager.ControlPolicy(\"example\", {\n    controlPolicyName: name,\n    description: name,\n    effectScope: \"RAM\",\n    policyDocument: `  {\n    \\\\\"Version\\\\\": \\\\\"1\\\\\",\n    \\\\\"Statement\\\\\": [\n      {\n        \\\\\"Effect\\\\\": \\\\\"Deny\\\\\",\n        \\\\\"Action\\\\\": [\n          \\\\\"ram:UpdateRole\\\\\",\n          \\\\\"ram:DeleteRole\\\\\",\n          \\\\\"ram:AttachPolicyToRole\\\\\",\n          \\\\\"ram:DetachPolicyFromRole\\\\\"\n        ],\n        \\\\\"Resource\\\\\": \\\\\"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole\\\\\"\n      }\n    ]\n  }\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nexample = alicloud.resourcemanager.ControlPolicy(\"example\",\n    control_policy_name=name,\n    description=name,\n    effect_scope=\"RAM\",\n    policy_document=\"\"\"  {\n    \\\"Version\\\": \\\"1\\\",\n    \\\"Statement\\\": [\n      {\n        \\\"Effect\\\": \\\"Deny\\\",\n        \\\"Action\\\": [\n          \\\"ram:UpdateRole\\\",\n          \\\"ram:DeleteRole\\\",\n          \\\"ram:AttachPolicyToRole\\\",\n          \\\"ram:DetachPolicyFromRole\\\"\n        ],\n        \\\"Resource\\\": \\\"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole\\\"\n      }\n    ]\n  }\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var example = new AliCloud.ResourceManager.ControlPolicy(\"example\", new()\n    {\n        ControlPolicyName = name,\n        Description = name,\n        EffectScope = \"RAM\",\n        PolicyDocument = @\"  {\n    \\\"\"Version\\\"\": \\\"\"1\\\"\",\n    \\\"\"Statement\\\"\": [\n      {\n        \\\"\"Effect\\\"\": \\\"\"Deny\\\"\",\n        \\\"\"Action\\\"\": [\n          \\\"\"ram:UpdateRole\\\"\",\n          \\\"\"ram:DeleteRole\\\"\",\n          \\\"\"ram:AttachPolicyToRole\\\"\",\n          \\\"\"ram:DetachPolicyFromRole\\\"\"\n        ],\n        \\\"\"Resource\\\"\": \\\"\"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole\\\"\"\n      }\n    ]\n  }\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.NewControlPolicy(ctx, \"example\", \u0026resourcemanager.ControlPolicyArgs{\n\t\t\tControlPolicyName: pulumi.String(name),\n\t\t\tDescription:       pulumi.String(name),\n\t\t\tEffectScope:       pulumi.String(\"RAM\"),\n\t\t\tPolicyDocument: pulumi.String(`  {\n    \\\"Version\\\": \\\"1\\\",\n    \\\"Statement\\\": [\n      {\n        \\\"Effect\\\": \\\"Deny\\\",\n        \\\"Action\\\": [\n          \\\"ram:UpdateRole\\\",\n          \\\"ram:DeleteRole\\\",\n          \\\"ram:AttachPolicyToRole\\\",\n          \\\"ram:DetachPolicyFromRole\\\"\n        ],\n        \\\"Resource\\\": \\\"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole\\\"\n      }\n    ]\n  }\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ControlPolicy;\nimport com.pulumi.alicloud.resourcemanager.ControlPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var example = new ControlPolicy(\"example\", ControlPolicyArgs.builder()\n            .controlPolicyName(name)\n            .description(name)\n            .effectScope(\"RAM\")\n            .policyDocument(\"\"\"\n  {\n    \\\"Version\\\": \\\"1\\\",\n    \\\"Statement\\\": [\n      {\n        \\\"Effect\\\": \\\"Deny\\\",\n        \\\"Action\\\": [\n          \\\"ram:UpdateRole\\\",\n          \\\"ram:DeleteRole\\\",\n          \\\"ram:AttachPolicyToRole\\\",\n          \\\"ram:DetachPolicyFromRole\\\"\n        ],\n        \\\"Resource\\\": \\\"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole\\\"\n      }\n    ]\n  }\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  example:\n    type: alicloud:resourcemanager:ControlPolicy\n    properties:\n      controlPolicyName: ${name}\n      description: ${name}\n      effectScope: RAM\n      policyDocument: |2\n          {\n            \\\"Version\\\": \\\"1\\\",\n            \\\"Statement\\\": [\n              {\n                \\\"Effect\\\": \\\"Deny\\\",\n                \\\"Action\\\": [\n                  \\\"ram:UpdateRole\\\",\n                  \\\"ram:DeleteRole\\\",\n                  \\\"ram:AttachPolicyToRole\\\",\n                  \\\"ram:DetachPolicyFromRole\\\"\n                ],\n                \\\"Resource\\\": \\\"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole\\\"\n              }\n            ]\n          }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Control Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/controlPolicy:ControlPolicy example \u003cid\u003e\n```\n\n","properties":{"controlPolicyName":{"type":"string","description":"The new name of the access control policy.\nThe name must be 1 to 128 characters in length. The name can contain letters, digits, and hyphens (-) and must start with a letter.\n"},"createTime":{"type":"string","description":"The time when the access control policy was created.\n"},"description":{"type":"string","description":"The new description of the access control policy.\nThe description must be 1 to 1,024 characters in length. The description can contain letters, digits, underscores (\\_), and hyphens (-) and must start with a letter.\n"},"effectScope":{"type":"string","description":"The effective scope of the access control policy. Valid values:\n\n- All: The access control policy is in effect for Alibaba Cloud accounts, RAM users, and RAM roles.\n- RAM: The access control policy is in effect only for RAM users and RAM roles.\n"},"policyDocument":{"type":"string","description":"The new document of the access control policy.\nThe document can be a maximum of 4,096 characters in length.\nFor more information about the languages of access control policies, see [Languages of access control policies](https://www.alibabacloud.com/help/en/doc-detail/179096.html).\nFor more information about the examples of access control policies, see [Examples of custom access control policies](https://www.alibabacloud.com/help/en/doc-detail/181474.html).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags.\nYou can specify a maximum of 20 tags.\n"}},"required":["controlPolicyName","createTime","effectScope","policyDocument"],"inputProperties":{"controlPolicyName":{"type":"string","description":"The new name of the access control policy.\nThe name must be 1 to 128 characters in length. The name can contain letters, digits, and hyphens (-) and must start with a letter.\n"},"description":{"type":"string","description":"The new description of the access control policy.\nThe description must be 1 to 1,024 characters in length. The description can contain letters, digits, underscores (\\_), and hyphens (-) and must start with a letter.\n"},"effectScope":{"type":"string","description":"The effective scope of the access control policy. Valid values:\n\n- All: The access control policy is in effect for Alibaba Cloud accounts, RAM users, and RAM roles.\n- RAM: The access control policy is in effect only for RAM users and RAM roles.\n","willReplaceOnChanges":true},"policyDocument":{"type":"string","description":"The new document of the access control policy.\nThe document can be a maximum of 4,096 characters in length.\nFor more information about the languages of access control policies, see [Languages of access control policies](https://www.alibabacloud.com/help/en/doc-detail/179096.html).\nFor more information about the examples of access control policies, see [Examples of custom access control policies](https://www.alibabacloud.com/help/en/doc-detail/181474.html).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags.\nYou can specify a maximum of 20 tags.\n"}},"requiredInputs":["controlPolicyName","effectScope","policyDocument"],"stateInputs":{"description":"Input properties used for looking up and filtering ControlPolicy resources.\n","properties":{"controlPolicyName":{"type":"string","description":"The new name of the access control policy.\nThe name must be 1 to 128 characters in length. The name can contain letters, digits, and hyphens (-) and must start with a letter.\n"},"createTime":{"type":"string","description":"The time when the access control policy was created.\n"},"description":{"type":"string","description":"The new description of the access control policy.\nThe description must be 1 to 1,024 characters in length. The description can contain letters, digits, underscores (\\_), and hyphens (-) and must start with a letter.\n"},"effectScope":{"type":"string","description":"The effective scope of the access control policy. Valid values:\n\n- All: The access control policy is in effect for Alibaba Cloud accounts, RAM users, and RAM roles.\n- RAM: The access control policy is in effect only for RAM users and RAM roles.\n","willReplaceOnChanges":true},"policyDocument":{"type":"string","description":"The new document of the access control policy.\nThe document can be a maximum of 4,096 characters in length.\nFor more information about the languages of access control policies, see [Languages of access control policies](https://www.alibabacloud.com/help/en/doc-detail/179096.html).\nFor more information about the examples of access control policies, see [Examples of custom access control policies](https://www.alibabacloud.com/help/en/doc-detail/181474.html).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags.\nYou can specify a maximum of 20 tags.\n"}},"type":"object"}},"alicloud:resourcemanager/controlPolicyAttachment:ControlPolicyAttachment":{"description":"Provides a Resource Manager Control Policy Attachment resource.\n\nControl Policy Attachment.\n\nFor information about Resource Manager Control Policy Attachment and how to use it, see [What is Control Policy Attachment](https://www.alibabacloud.com/help/en/resource-management/resource-directory/developer-reference/api-resourcemanager-2020-03-31-attachcontrolpolicy).\n\n\u003e **NOTE:** Available since v1.120.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultControlPolicy = new alicloud.resourcemanager.ControlPolicy(\"default\", {\n    controlPolicyName: name,\n    description: name,\n    effectScope: \"RAM\",\n    policyDocument: `  {\n    \\\\\"Version\\\\\": \\\\\"1\\\\\",\n    \\\\\"Statement\\\\\": [\n      {\n        \\\\\"Effect\\\\\": \\\\\"Deny\\\\\",\n        \\\\\"Action\\\\\": [\n          \\\\\"ram:UpdateRole\\\\\",\n          \\\\\"ram:DeleteRole\\\\\",\n          \\\\\"ram:AttachPolicyToRole\\\\\",\n          \\\\\"ram:DetachPolicyFromRole\\\\\"\n        ],\n        \\\\\"Resource\\\\\": \\\\\"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole\\\\\"\n      }\n    ]\n  }\n`,\n});\nconst defaultFolder = new alicloud.resourcemanager.Folder(\"default\", {folderName: `${name}-${_default.result}`});\nconst defaultControlPolicyAttachment = new alicloud.resourcemanager.ControlPolicyAttachment(\"default\", {\n    policyId: defaultControlPolicy.id,\n    targetId: defaultFolder.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_control_policy = alicloud.resourcemanager.ControlPolicy(\"default\",\n    control_policy_name=name,\n    description=name,\n    effect_scope=\"RAM\",\n    policy_document=\"\"\"  {\n    \\\"Version\\\": \\\"1\\\",\n    \\\"Statement\\\": [\n      {\n        \\\"Effect\\\": \\\"Deny\\\",\n        \\\"Action\\\": [\n          \\\"ram:UpdateRole\\\",\n          \\\"ram:DeleteRole\\\",\n          \\\"ram:AttachPolicyToRole\\\",\n          \\\"ram:DetachPolicyFromRole\\\"\n        ],\n        \\\"Resource\\\": \\\"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole\\\"\n      }\n    ]\n  }\n\"\"\")\ndefault_folder = alicloud.resourcemanager.Folder(\"default\", folder_name=f\"{name}-{default['result']}\")\ndefault_control_policy_attachment = alicloud.resourcemanager.ControlPolicyAttachment(\"default\",\n    policy_id=default_control_policy.id,\n    target_id=default_folder.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultControlPolicy = new AliCloud.ResourceManager.ControlPolicy(\"default\", new()\n    {\n        ControlPolicyName = name,\n        Description = name,\n        EffectScope = \"RAM\",\n        PolicyDocument = @\"  {\n    \\\"\"Version\\\"\": \\\"\"1\\\"\",\n    \\\"\"Statement\\\"\": [\n      {\n        \\\"\"Effect\\\"\": \\\"\"Deny\\\"\",\n        \\\"\"Action\\\"\": [\n          \\\"\"ram:UpdateRole\\\"\",\n          \\\"\"ram:DeleteRole\\\"\",\n          \\\"\"ram:AttachPolicyToRole\\\"\",\n          \\\"\"ram:DetachPolicyFromRole\\\"\"\n        ],\n        \\\"\"Resource\\\"\": \\\"\"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole\\\"\"\n      }\n    ]\n  }\n\",\n    });\n\n    var defaultFolder = new AliCloud.ResourceManager.Folder(\"default\", new()\n    {\n        FolderName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultControlPolicyAttachment = new AliCloud.ResourceManager.ControlPolicyAttachment(\"default\", new()\n    {\n        PolicyId = defaultControlPolicy.Id,\n        TargetId = defaultFolder.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultControlPolicy, err := resourcemanager.NewControlPolicy(ctx, \"default\", \u0026resourcemanager.ControlPolicyArgs{\n\t\t\tControlPolicyName: pulumi.String(name),\n\t\t\tDescription:       pulumi.String(name),\n\t\t\tEffectScope:       pulumi.String(\"RAM\"),\n\t\t\tPolicyDocument: pulumi.String(`  {\n    \\\"Version\\\": \\\"1\\\",\n    \\\"Statement\\\": [\n      {\n        \\\"Effect\\\": \\\"Deny\\\",\n        \\\"Action\\\": [\n          \\\"ram:UpdateRole\\\",\n          \\\"ram:DeleteRole\\\",\n          \\\"ram:AttachPolicyToRole\\\",\n          \\\"ram:DetachPolicyFromRole\\\"\n        ],\n        \\\"Resource\\\": \\\"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole\\\"\n      }\n    ]\n  }\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultFolder, err := resourcemanager.NewFolder(ctx, \"default\", \u0026resourcemanager.FolderArgs{\n\t\t\tFolderName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.NewControlPolicyAttachment(ctx, \"default\", \u0026resourcemanager.ControlPolicyAttachmentArgs{\n\t\t\tPolicyId: defaultControlPolicy.ID(),\n\t\t\tTargetId: defaultFolder.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.resourcemanager.ControlPolicy;\nimport com.pulumi.alicloud.resourcemanager.ControlPolicyArgs;\nimport com.pulumi.alicloud.resourcemanager.Folder;\nimport com.pulumi.alicloud.resourcemanager.FolderArgs;\nimport com.pulumi.alicloud.resourcemanager.ControlPolicyAttachment;\nimport com.pulumi.alicloud.resourcemanager.ControlPolicyAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultControlPolicy = new ControlPolicy(\"defaultControlPolicy\", ControlPolicyArgs.builder()\n            .controlPolicyName(name)\n            .description(name)\n            .effectScope(\"RAM\")\n            .policyDocument(\"\"\"\n  {\n    \\\"Version\\\": \\\"1\\\",\n    \\\"Statement\\\": [\n      {\n        \\\"Effect\\\": \\\"Deny\\\",\n        \\\"Action\\\": [\n          \\\"ram:UpdateRole\\\",\n          \\\"ram:DeleteRole\\\",\n          \\\"ram:AttachPolicyToRole\\\",\n          \\\"ram:DetachPolicyFromRole\\\"\n        ],\n        \\\"Resource\\\": \\\"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole\\\"\n      }\n    ]\n  }\n            \"\"\")\n            .build());\n\n        var defaultFolder = new Folder(\"defaultFolder\", FolderArgs.builder()\n            .folderName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultControlPolicyAttachment = new ControlPolicyAttachment(\"defaultControlPolicyAttachment\", ControlPolicyAttachmentArgs.builder()\n            .policyId(defaultControlPolicy.id())\n            .targetId(defaultFolder.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultControlPolicy:\n    type: alicloud:resourcemanager:ControlPolicy\n    name: default\n    properties:\n      controlPolicyName: ${name}\n      description: ${name}\n      effectScope: RAM\n      policyDocument: |2\n          {\n            \\\"Version\\\": \\\"1\\\",\n            \\\"Statement\\\": [\n              {\n                \\\"Effect\\\": \\\"Deny\\\",\n                \\\"Action\\\": [\n                  \\\"ram:UpdateRole\\\",\n                  \\\"ram:DeleteRole\\\",\n                  \\\"ram:AttachPolicyToRole\\\",\n                  \\\"ram:DetachPolicyFromRole\\\"\n                ],\n                \\\"Resource\\\": \\\"acs:ram:*:*:role/ResourceDirectoryAccountAccessRole\\\"\n              }\n            ]\n          }\n  defaultFolder:\n    type: alicloud:resourcemanager:Folder\n    name: default\n    properties:\n      folderName: ${name}-${default.result}\n  defaultControlPolicyAttachment:\n    type: alicloud:resourcemanager:ControlPolicyAttachment\n    name: default\n    properties:\n      policyId: ${defaultControlPolicy.id}\n      targetId: ${defaultFolder.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Control Policy Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/controlPolicyAttachment:ControlPolicyAttachment example \u003cpolicy_id\u003e:\u003ctarget_id\u003e\n```\n\n","properties":{"policyId":{"type":"string","description":"The ID of the access control policy.\n"},"targetId":{"type":"string","description":"The ID of the object from which you want to detach the access control policy. Access control policies can be attached to the following objects:\n\n- Root folder\n- Subfolders of the Root folder\n- Members\n"}},"required":["policyId","targetId"],"inputProperties":{"policyId":{"type":"string","description":"The ID of the access control policy.\n","willReplaceOnChanges":true},"targetId":{"type":"string","description":"The ID of the object from which you want to detach the access control policy. Access control policies can be attached to the following objects:\n\n- Root folder\n- Subfolders of the Root folder\n- Members\n","willReplaceOnChanges":true}},"requiredInputs":["policyId","targetId"],"stateInputs":{"description":"Input properties used for looking up and filtering ControlPolicyAttachment resources.\n","properties":{"policyId":{"type":"string","description":"The ID of the access control policy.\n","willReplaceOnChanges":true},"targetId":{"type":"string","description":"The ID of the object from which you want to detach the access control policy. Access control policies can be attached to the following objects:\n\n- Root folder\n- Subfolders of the Root folder\n- Members\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:resourcemanager/delegatedAdministrator:DelegatedAdministrator":{"description":"Provides a Resource Manager Delegated Administrator resource.\n\n\n\nFor information about Resource Manager Delegated Administrator and how to use it, see [What is Delegated Administrator](https://www.alibabacloud.com/help/en/resource-management/latest/registerdelegatedadministrator#doc-api-ResourceManager-RegisterDelegatedAdministrator).\n\n\u003e **NOTE:** Available since v1.181.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.resourcemanager.getAccounts({\n    status: \"CreateSuccess\",\n});\nconst defaultDelegatedAdministrator = new alicloud.resourcemanager.DelegatedAdministrator(\"default\", {\n    accountId: _default.then(_default =\u003e _default.accounts?.[0]?.accountId),\n    servicePrincipal: \"cloudfw.aliyuncs.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.get_accounts(status=\"CreateSuccess\")\ndefault_delegated_administrator = alicloud.resourcemanager.DelegatedAdministrator(\"default\",\n    account_id=default.accounts[0].account_id,\n    service_principal=\"cloudfw.aliyuncs.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ResourceManager.GetAccounts.Invoke(new()\n    {\n        Status = \"CreateSuccess\",\n    });\n\n    var defaultDelegatedAdministrator = new AliCloud.ResourceManager.DelegatedAdministrator(\"default\", new()\n    {\n        AccountId = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Accounts[0]?.AccountId)),\n        ServicePrincipal = \"cloudfw.aliyuncs.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := resourcemanager.GetAccounts(ctx, \u0026resourcemanager.GetAccountsArgs{\n\t\t\tStatus: pulumi.StringRef(\"CreateSuccess\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.NewDelegatedAdministrator(ctx, \"default\", \u0026resourcemanager.DelegatedAdministratorArgs{\n\t\t\tAccountId:        pulumi.String(_default.Accounts[0].AccountId),\n\t\t\tServicePrincipal: pulumi.String(\"cloudfw.aliyuncs.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetAccountsArgs;\nimport com.pulumi.alicloud.resourcemanager.DelegatedAdministrator;\nimport com.pulumi.alicloud.resourcemanager.DelegatedAdministratorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ResourcemanagerFunctions.getAccounts(GetAccountsArgs.builder()\n            .status(\"CreateSuccess\")\n            .build());\n\n        var defaultDelegatedAdministrator = new DelegatedAdministrator(\"defaultDelegatedAdministrator\", DelegatedAdministratorArgs.builder()\n            .accountId(default_.accounts()[0].accountId())\n            .servicePrincipal(\"cloudfw.aliyuncs.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultDelegatedAdministrator:\n    type: alicloud:resourcemanager:DelegatedAdministrator\n    name: default\n    properties:\n      accountId: ${default.accounts[0].accountId}\n      servicePrincipal: cloudfw.aliyuncs.com\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getAccounts\n      arguments:\n        status: CreateSuccess\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Delegated Administrator can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/delegatedAdministrator:DelegatedAdministrator example \u003caccount_id\u003e:\u003cservice_principal\u003e\n```\n\n","properties":{"accountId":{"type":"string","description":"The Alibaba Cloud account ID of the member in the resource directory.\n"},"servicePrincipal":{"type":"string","description":"The identifier of the trusted service.\n"}},"required":["accountId","servicePrincipal"],"inputProperties":{"accountId":{"type":"string","description":"The Alibaba Cloud account ID of the member in the resource directory.\n","willReplaceOnChanges":true},"servicePrincipal":{"type":"string","description":"The identifier of the trusted service.\n","willReplaceOnChanges":true}},"requiredInputs":["accountId","servicePrincipal"],"stateInputs":{"description":"Input properties used for looking up and filtering DelegatedAdministrator resources.\n","properties":{"accountId":{"type":"string","description":"The Alibaba Cloud account ID of the member in the resource directory.\n","willReplaceOnChanges":true},"servicePrincipal":{"type":"string","description":"The identifier of the trusted service.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:resourcemanager/deliveryChannel:DeliveryChannel":{"description":"Provides a Resource Manager Delivery Channel resource.\n\nDelivery channel resources of current account.\n\nFor information about Resource Manager Delivery Channel and how to use it, see [What is Delivery Channel](https://next.api.alibabacloud.com/document/ResourceCenter/2022-12-01/CreateDeliveryChannel).\n\n\u003e **NOTE:** Available since v1.262.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.resourcemanager.DeliveryChannel(\"default\", {\n    resourceChangeDelivery: {\n        slsProperties: {\n            oversizedDataOssTargetArn: \"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\",\n        },\n        targetArn: \"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\",\n    },\n    deliveryChannelName: \"delivery_channel_resource_spec_example\",\n    deliveryChannelDescription: \"delivery_channel_resource_spec_example\",\n    deliveryChannelFilter: {\n        resourceTypes: [\n            \"ACS::ECS::Instance\",\n            \"ACS::ECS::Disk\",\n            \"ACS::VPC::VPC\",\n        ],\n    },\n    resourceSnapshotDelivery: {\n        deliveryTime: \"16:00Z\",\n        targetArn: \"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\",\n        targetType: \"SLS\",\n        customExpression: \"select * from resources limit 10;\",\n        slsProperties: {\n            oversizedDataOssTargetArn: \"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.DeliveryChannel(\"default\",\n    resource_change_delivery={\n        \"sls_properties\": {\n            \"oversized_data_oss_target_arn\": \"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\",\n        },\n        \"target_arn\": \"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\",\n    },\n    delivery_channel_name=\"delivery_channel_resource_spec_example\",\n    delivery_channel_description=\"delivery_channel_resource_spec_example\",\n    delivery_channel_filter={\n        \"resource_types\": [\n            \"ACS::ECS::Instance\",\n            \"ACS::ECS::Disk\",\n            \"ACS::VPC::VPC\",\n        ],\n    },\n    resource_snapshot_delivery={\n        \"delivery_time\": \"16:00Z\",\n        \"target_arn\": \"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\",\n        \"target_type\": \"SLS\",\n        \"custom_expression\": \"select * from resources limit 10;\",\n        \"sls_properties\": {\n            \"oversized_data_oss_target_arn\": \"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ResourceManager.DeliveryChannel(\"default\", new()\n    {\n        ResourceChangeDelivery = new AliCloud.ResourceManager.Inputs.DeliveryChannelResourceChangeDeliveryArgs\n        {\n            SlsProperties = new AliCloud.ResourceManager.Inputs.DeliveryChannelResourceChangeDeliverySlsPropertiesArgs\n            {\n                OversizedDataOssTargetArn = \"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\",\n            },\n            TargetArn = \"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\",\n        },\n        DeliveryChannelName = \"delivery_channel_resource_spec_example\",\n        DeliveryChannelDescription = \"delivery_channel_resource_spec_example\",\n        DeliveryChannelFilter = new AliCloud.ResourceManager.Inputs.DeliveryChannelDeliveryChannelFilterArgs\n        {\n            ResourceTypes = new[]\n            {\n                \"ACS::ECS::Instance\",\n                \"ACS::ECS::Disk\",\n                \"ACS::VPC::VPC\",\n            },\n        },\n        ResourceSnapshotDelivery = new AliCloud.ResourceManager.Inputs.DeliveryChannelResourceSnapshotDeliveryArgs\n        {\n            DeliveryTime = \"16:00Z\",\n            TargetArn = \"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\",\n            TargetType = \"SLS\",\n            CustomExpression = \"select * from resources limit 10;\",\n            SlsProperties = new AliCloud.ResourceManager.Inputs.DeliveryChannelResourceSnapshotDeliverySlsPropertiesArgs\n            {\n                OversizedDataOssTargetArn = \"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.NewDeliveryChannel(ctx, \"default\", \u0026resourcemanager.DeliveryChannelArgs{\n\t\t\tResourceChangeDelivery: \u0026resourcemanager.DeliveryChannelResourceChangeDeliveryArgs{\n\t\t\t\tSlsProperties: \u0026resourcemanager.DeliveryChannelResourceChangeDeliverySlsPropertiesArgs{\n\t\t\t\t\tOversizedDataOssTargetArn: pulumi.String(\"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\"),\n\t\t\t\t},\n\t\t\t\tTargetArn: pulumi.String(\"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\"),\n\t\t\t},\n\t\t\tDeliveryChannelName:        pulumi.String(\"delivery_channel_resource_spec_example\"),\n\t\t\tDeliveryChannelDescription: pulumi.String(\"delivery_channel_resource_spec_example\"),\n\t\t\tDeliveryChannelFilter: \u0026resourcemanager.DeliveryChannelDeliveryChannelFilterArgs{\n\t\t\t\tResourceTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"ACS::ECS::Instance\"),\n\t\t\t\t\tpulumi.String(\"ACS::ECS::Disk\"),\n\t\t\t\t\tpulumi.String(\"ACS::VPC::VPC\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceSnapshotDelivery: \u0026resourcemanager.DeliveryChannelResourceSnapshotDeliveryArgs{\n\t\t\t\tDeliveryTime:     pulumi.String(\"16:00Z\"),\n\t\t\t\tTargetArn:        pulumi.String(\"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\"),\n\t\t\t\tTargetType:       pulumi.String(\"SLS\"),\n\t\t\t\tCustomExpression: pulumi.String(\"select * from resources limit 10;\"),\n\t\t\t\tSlsProperties: \u0026resourcemanager.DeliveryChannelResourceSnapshotDeliverySlsPropertiesArgs{\n\t\t\t\t\tOversizedDataOssTargetArn: pulumi.String(\"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.DeliveryChannel;\nimport com.pulumi.alicloud.resourcemanager.DeliveryChannelArgs;\nimport com.pulumi.alicloud.resourcemanager.inputs.DeliveryChannelResourceChangeDeliveryArgs;\nimport com.pulumi.alicloud.resourcemanager.inputs.DeliveryChannelResourceChangeDeliverySlsPropertiesArgs;\nimport com.pulumi.alicloud.resourcemanager.inputs.DeliveryChannelDeliveryChannelFilterArgs;\nimport com.pulumi.alicloud.resourcemanager.inputs.DeliveryChannelResourceSnapshotDeliveryArgs;\nimport com.pulumi.alicloud.resourcemanager.inputs.DeliveryChannelResourceSnapshotDeliverySlsPropertiesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new DeliveryChannel(\"default\", DeliveryChannelArgs.builder()\n            .resourceChangeDelivery(DeliveryChannelResourceChangeDeliveryArgs.builder()\n                .slsProperties(DeliveryChannelResourceChangeDeliverySlsPropertiesArgs.builder()\n                    .oversizedDataOssTargetArn(\"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\")\n                    .build())\n                .targetArn(\"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\")\n                .build())\n            .deliveryChannelName(\"delivery_channel_resource_spec_example\")\n            .deliveryChannelDescription(\"delivery_channel_resource_spec_example\")\n            .deliveryChannelFilter(DeliveryChannelDeliveryChannelFilterArgs.builder()\n                .resourceTypes(                \n                    \"ACS::ECS::Instance\",\n                    \"ACS::ECS::Disk\",\n                    \"ACS::VPC::VPC\")\n                .build())\n            .resourceSnapshotDelivery(DeliveryChannelResourceSnapshotDeliveryArgs.builder()\n                .deliveryTime(\"16:00Z\")\n                .targetArn(\"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\")\n                .targetType(\"SLS\")\n                .customExpression(\"select * from resources limit 10;\")\n                .slsProperties(DeliveryChannelResourceSnapshotDeliverySlsPropertiesArgs.builder()\n                    .oversizedDataOssTargetArn(\"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:resourcemanager:DeliveryChannel\n    properties:\n      resourceChangeDelivery:\n        slsProperties:\n          oversizedDataOssTargetArn: acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\n        targetArn: acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\n      deliveryChannelName: delivery_channel_resource_spec_example\n      deliveryChannelDescription: delivery_channel_resource_spec_example\n      deliveryChannelFilter:\n        resourceTypes:\n          - ACS::ECS::Instance\n          - ACS::ECS::Disk\n          - ACS::VPC::VPC\n      resourceSnapshotDelivery:\n        deliveryTime: 16:00Z\n        targetArn: acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\n        targetType: SLS\n        customExpression: select * from resources limit 10;\n        slsProperties:\n          oversizedDataOssTargetArn: acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Delivery Channel can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/deliveryChannel:DeliveryChannel example \u003cid\u003e\n```\n\n","properties":{"deliveryChannelDescription":{"type":"string","description":"The description of the delivery channel.\n"},"deliveryChannelFilter":{"$ref":"#/types/alicloud:resourcemanager/DeliveryChannelDeliveryChannelFilter:DeliveryChannelDeliveryChannelFilter","description":"The effective scope of the delivery channel. See \u003cspan pulumi-lang-nodejs=\"`deliveryChannelFilter`\" pulumi-lang-dotnet=\"`DeliveryChannelFilter`\" pulumi-lang-go=\"`deliveryChannelFilter`\" pulumi-lang-python=\"`delivery_channel_filter`\" pulumi-lang-yaml=\"`deliveryChannelFilter`\" pulumi-lang-java=\"`deliveryChannelFilter`\"\u003e`delivery_channel_filter`\u003c/span\u003e below.\n"},"deliveryChannelName":{"type":"string","description":"The name of the delivery channel.\n"},"resourceChangeDelivery":{"$ref":"#/types/alicloud:resourcemanager/DeliveryChannelResourceChangeDelivery:DeliveryChannelResourceChangeDelivery","description":"The configurations for delivery of resource configuration change events. See \u003cspan pulumi-lang-nodejs=\"`resourceChangeDelivery`\" pulumi-lang-dotnet=\"`ResourceChangeDelivery`\" pulumi-lang-go=\"`resourceChangeDelivery`\" pulumi-lang-python=\"`resource_change_delivery`\" pulumi-lang-yaml=\"`resourceChangeDelivery`\" pulumi-lang-java=\"`resourceChangeDelivery`\"\u003e`resource_change_delivery`\u003c/span\u003e below.\n"},"resourceSnapshotDelivery":{"$ref":"#/types/alicloud:resourcemanager/DeliveryChannelResourceSnapshotDelivery:DeliveryChannelResourceSnapshotDelivery","description":"The configurations for delivery of scheduled resource snapshots. See \u003cspan pulumi-lang-nodejs=\"`resourceSnapshotDelivery`\" pulumi-lang-dotnet=\"`ResourceSnapshotDelivery`\" pulumi-lang-go=\"`resourceSnapshotDelivery`\" pulumi-lang-python=\"`resource_snapshot_delivery`\" pulumi-lang-yaml=\"`resourceSnapshotDelivery`\" pulumi-lang-java=\"`resourceSnapshotDelivery`\"\u003e`resource_snapshot_delivery`\u003c/span\u003e below.\n"}},"required":["deliveryChannelFilter","deliveryChannelName"],"inputProperties":{"deliveryChannelDescription":{"type":"string","description":"The description of the delivery channel.\n"},"deliveryChannelFilter":{"$ref":"#/types/alicloud:resourcemanager/DeliveryChannelDeliveryChannelFilter:DeliveryChannelDeliveryChannelFilter","description":"The effective scope of the delivery channel. See \u003cspan pulumi-lang-nodejs=\"`deliveryChannelFilter`\" pulumi-lang-dotnet=\"`DeliveryChannelFilter`\" pulumi-lang-go=\"`deliveryChannelFilter`\" pulumi-lang-python=\"`delivery_channel_filter`\" pulumi-lang-yaml=\"`deliveryChannelFilter`\" pulumi-lang-java=\"`deliveryChannelFilter`\"\u003e`delivery_channel_filter`\u003c/span\u003e below.\n"},"deliveryChannelName":{"type":"string","description":"The name of the delivery channel.\n"},"resourceChangeDelivery":{"$ref":"#/types/alicloud:resourcemanager/DeliveryChannelResourceChangeDelivery:DeliveryChannelResourceChangeDelivery","description":"The configurations for delivery of resource configuration change events. See \u003cspan pulumi-lang-nodejs=\"`resourceChangeDelivery`\" pulumi-lang-dotnet=\"`ResourceChangeDelivery`\" pulumi-lang-go=\"`resourceChangeDelivery`\" pulumi-lang-python=\"`resource_change_delivery`\" pulumi-lang-yaml=\"`resourceChangeDelivery`\" pulumi-lang-java=\"`resourceChangeDelivery`\"\u003e`resource_change_delivery`\u003c/span\u003e below.\n"},"resourceSnapshotDelivery":{"$ref":"#/types/alicloud:resourcemanager/DeliveryChannelResourceSnapshotDelivery:DeliveryChannelResourceSnapshotDelivery","description":"The configurations for delivery of scheduled resource snapshots. See \u003cspan pulumi-lang-nodejs=\"`resourceSnapshotDelivery`\" pulumi-lang-dotnet=\"`ResourceSnapshotDelivery`\" pulumi-lang-go=\"`resourceSnapshotDelivery`\" pulumi-lang-python=\"`resource_snapshot_delivery`\" pulumi-lang-yaml=\"`resourceSnapshotDelivery`\" pulumi-lang-java=\"`resourceSnapshotDelivery`\"\u003e`resource_snapshot_delivery`\u003c/span\u003e below.\n"}},"requiredInputs":["deliveryChannelFilter","deliveryChannelName"],"stateInputs":{"description":"Input properties used for looking up and filtering DeliveryChannel resources.\n","properties":{"deliveryChannelDescription":{"type":"string","description":"The description of the delivery channel.\n"},"deliveryChannelFilter":{"$ref":"#/types/alicloud:resourcemanager/DeliveryChannelDeliveryChannelFilter:DeliveryChannelDeliveryChannelFilter","description":"The effective scope of the delivery channel. See \u003cspan pulumi-lang-nodejs=\"`deliveryChannelFilter`\" pulumi-lang-dotnet=\"`DeliveryChannelFilter`\" pulumi-lang-go=\"`deliveryChannelFilter`\" pulumi-lang-python=\"`delivery_channel_filter`\" pulumi-lang-yaml=\"`deliveryChannelFilter`\" pulumi-lang-java=\"`deliveryChannelFilter`\"\u003e`delivery_channel_filter`\u003c/span\u003e below.\n"},"deliveryChannelName":{"type":"string","description":"The name of the delivery channel.\n"},"resourceChangeDelivery":{"$ref":"#/types/alicloud:resourcemanager/DeliveryChannelResourceChangeDelivery:DeliveryChannelResourceChangeDelivery","description":"The configurations for delivery of resource configuration change events. See \u003cspan pulumi-lang-nodejs=\"`resourceChangeDelivery`\" pulumi-lang-dotnet=\"`ResourceChangeDelivery`\" pulumi-lang-go=\"`resourceChangeDelivery`\" pulumi-lang-python=\"`resource_change_delivery`\" pulumi-lang-yaml=\"`resourceChangeDelivery`\" pulumi-lang-java=\"`resourceChangeDelivery`\"\u003e`resource_change_delivery`\u003c/span\u003e below.\n"},"resourceSnapshotDelivery":{"$ref":"#/types/alicloud:resourcemanager/DeliveryChannelResourceSnapshotDelivery:DeliveryChannelResourceSnapshotDelivery","description":"The configurations for delivery of scheduled resource snapshots. See \u003cspan pulumi-lang-nodejs=\"`resourceSnapshotDelivery`\" pulumi-lang-dotnet=\"`ResourceSnapshotDelivery`\" pulumi-lang-go=\"`resourceSnapshotDelivery`\" pulumi-lang-python=\"`resource_snapshot_delivery`\" pulumi-lang-yaml=\"`resourceSnapshotDelivery`\" pulumi-lang-java=\"`resourceSnapshotDelivery`\"\u003e`resource_snapshot_delivery`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:resourcemanager/folder:Folder":{"description":"Provides a Resource Manager Folder resource.\n\nThe management unit of the organization account in the resource directory.\n\nFor information about Resource Manager Folder and how to use it, see [What is Folder](https://www.alibabacloud.com/help/en/resource-management/resource-directory/developer-reference/api-resourcedirectorymaster-2022-04-19-createfolder).\n\n\u003e **NOTE:** Available since v1.82.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst example = new alicloud.resourcemanager.Folder(\"example\", {folderName: `${name}-${_default.result}`});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample = alicloud.resourcemanager.Folder(\"example\", folder_name=f\"{name}-{default['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var example = new AliCloud.ResourceManager.Folder(\"example\", new()\n    {\n        FolderName = $\"{name}-{@default.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.NewFolder(ctx, \"example\", \u0026resourcemanager.FolderArgs{\n\t\t\tFolderName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.resourcemanager.Folder;\nimport com.pulumi.alicloud.resourcemanager.FolderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var example = new Folder(\"example\", FolderArgs.builder()\n            .folderName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  example:\n    type: alicloud:resourcemanager:Folder\n    properties:\n      folderName: ${name}-${default.result}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Folder can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/folder:Folder example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"(Available since v1.259.0) The time when the folder was created.\n"},"folderName":{"type":"string","description":"The name of the folder.\n"},"parentFolderId":{"type":"string","description":"The ID of the parent folder.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"required":["createTime","folderName","parentFolderId"],"inputProperties":{"folderName":{"type":"string","description":"The name of the folder.\n"},"parentFolderId":{"type":"string","description":"The ID of the parent folder.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"requiredInputs":["folderName"],"stateInputs":{"description":"Input properties used for looking up and filtering Folder resources.\n","properties":{"createTime":{"type":"string","description":"(Available since v1.259.0) The time when the folder was created.\n"},"folderName":{"type":"string","description":"The name of the folder.\n"},"parentFolderId":{"type":"string","description":"The ID of the parent folder.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object"}},"alicloud:resourcemanager/handshake:Handshake":{"description":"Provides a Resource Manager Handshake resource.\n\n\n\nFor information about Resource Manager Handshake and how to use it, see [What is Handshake](https://www.alibabacloud.com/help/en/doc-detail/135287.htm).\n\n\u003e **NOTE:** Available since v1.82.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Add a Resource Manager handshake.\nconst example = new alicloud.resourcemanager.Handshake(\"example\", {\n    targetEntity: \"1182775234******\",\n    targetType: \"Account\",\n    note: \"test resource manager handshake\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Add a Resource Manager handshake.\nexample = alicloud.resourcemanager.Handshake(\"example\",\n    target_entity=\"1182775234******\",\n    target_type=\"Account\",\n    note=\"test resource manager handshake\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Add a Resource Manager handshake.\n    var example = new AliCloud.ResourceManager.Handshake(\"example\", new()\n    {\n        TargetEntity = \"1182775234******\",\n        TargetType = \"Account\",\n        Note = \"test resource manager handshake\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Add a Resource Manager handshake.\n\t\t_, err := resourcemanager.NewHandshake(ctx, \"example\", \u0026resourcemanager.HandshakeArgs{\n\t\t\tTargetEntity: pulumi.String(\"1182775234******\"),\n\t\t\tTargetType:   pulumi.String(\"Account\"),\n\t\t\tNote:         pulumi.String(\"test resource manager handshake\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.Handshake;\nimport com.pulumi.alicloud.resourcemanager.HandshakeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Add a Resource Manager handshake.\n        var example = new Handshake(\"example\", HandshakeArgs.builder()\n            .targetEntity(\"1182775234******\")\n            .targetType(\"Account\")\n            .note(\"test resource manager handshake\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Add a Resource Manager handshake.\n  example:\n    type: alicloud:resourcemanager:Handshake\n    properties:\n      targetEntity: 1182775234******\n      targetType: Account\n      note: test resource manager handshake\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Handshake can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/handshake:Handshake example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The time when the invitation was created. The time is displayed in UTC.\n"},"expireTime":{"type":"string","description":"The time when the invitation expires. The time is displayed in UTC.\n"},"masterAccountId":{"type":"string","description":"The ID of the management account of the resource directory.\n"},"masterAccountName":{"type":"string","description":"The name of the management account of the resource directory.\n"},"modifyTime":{"type":"string","description":"The time when the invitation was modified. The time is displayed in UTC.\n"},"note":{"type":"string","description":"The description of the invitation.\nThe description can be up to 1,024 characters in length.\n"},"resourceDirectoryId":{"type":"string","description":"The ID of the resource directory.\n"},"status":{"type":"string","description":"The status of the invitation.\n"},"targetEntity":{"type":"string","description":"The ID or logon email address of the account that you want to invite.\n"},"targetType":{"type":"string","description":"The type of the invited account. Valid values:\n\n- Account: indicates the ID of the account.\n- Email: indicates the logon email address of the account.\n"}},"required":["createTime","expireTime","masterAccountId","masterAccountName","modifyTime","resourceDirectoryId","status","targetEntity","targetType"],"inputProperties":{"note":{"type":"string","description":"The description of the invitation.\nThe description can be up to 1,024 characters in length.\n","willReplaceOnChanges":true},"targetEntity":{"type":"string","description":"The ID or logon email address of the account that you want to invite.\n","willReplaceOnChanges":true},"targetType":{"type":"string","description":"The type of the invited account. Valid values:\n\n- Account: indicates the ID of the account.\n- Email: indicates the logon email address of the account.\n","willReplaceOnChanges":true}},"requiredInputs":["targetEntity","targetType"],"stateInputs":{"description":"Input properties used for looking up and filtering Handshake resources.\n","properties":{"createTime":{"type":"string","description":"The time when the invitation was created. The time is displayed in UTC.\n"},"expireTime":{"type":"string","description":"The time when the invitation expires. The time is displayed in UTC.\n"},"masterAccountId":{"type":"string","description":"The ID of the management account of the resource directory.\n"},"masterAccountName":{"type":"string","description":"The name of the management account of the resource directory.\n"},"modifyTime":{"type":"string","description":"The time when the invitation was modified. The time is displayed in UTC.\n"},"note":{"type":"string","description":"The description of the invitation.\nThe description can be up to 1,024 characters in length.\n","willReplaceOnChanges":true},"resourceDirectoryId":{"type":"string","description":"The ID of the resource directory.\n"},"status":{"type":"string","description":"The status of the invitation.\n"},"targetEntity":{"type":"string","description":"The ID or logon email address of the account that you want to invite.\n","willReplaceOnChanges":true},"targetType":{"type":"string","description":"The type of the invited account. Valid values:\n\n- Account: indicates the ID of the account.\n- Email: indicates the logon email address of the account.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:resourcemanager/messageContact:MessageContact":{"description":"Provides a Resource Manager Message Contact resource.\n\nMessage contact for Resource Directory account.\n\nFor information about Resource Manager Message Contact and how to use it, see [What is Message Contact](https://next.api.alibabacloud.com/document/ResourceDirectoryMaster/2022-04-19/AddMessageContact).\n\n\u003e **NOTE:** Available since v1.259.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.resourcemanager.MessageContact(\"default\", {\n    messageTypes: [\"AccountExpenses\"],\n    phoneNumber: \"86-18626811111\",\n    title: \"TechnicalDirector\",\n    emailAddress: \"resourceexample@126.com\",\n    messageContactName: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.MessageContact(\"default\",\n    message_types=[\"AccountExpenses\"],\n    phone_number=\"86-18626811111\",\n    title=\"TechnicalDirector\",\n    email_address=\"resourceexample@126.com\",\n    message_contact_name=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ResourceManager.MessageContact(\"default\", new()\n    {\n        MessageTypes = new[]\n        {\n            \"AccountExpenses\",\n        },\n        PhoneNumber = \"86-18626811111\",\n        Title = \"TechnicalDirector\",\n        EmailAddress = \"resourceexample@126.com\",\n        MessageContactName = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.NewMessageContact(ctx, \"default\", \u0026resourcemanager.MessageContactArgs{\n\t\t\tMessageTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"AccountExpenses\"),\n\t\t\t},\n\t\t\tPhoneNumber:        pulumi.String(\"86-18626811111\"),\n\t\t\tTitle:              pulumi.String(\"TechnicalDirector\"),\n\t\t\tEmailAddress:       pulumi.String(\"resourceexample@126.com\"),\n\t\t\tMessageContactName: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.MessageContact;\nimport com.pulumi.alicloud.resourcemanager.MessageContactArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new MessageContact(\"default\", MessageContactArgs.builder()\n            .messageTypes(\"AccountExpenses\")\n            .phoneNumber(\"86-18626811111\")\n            .title(\"TechnicalDirector\")\n            .emailAddress(\"resourceexample@126.com\")\n            .messageContactName(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:resourcemanager:MessageContact\n    properties:\n      messageTypes:\n        - AccountExpenses\n      phoneNumber: 86-18626811111\n      title: TechnicalDirector\n      emailAddress: resourceexample@126.com\n      messageContactName: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Message Contact can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/messageContact:MessageContact example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The time when the contact was created.\n"},"emailAddress":{"type":"string","description":"The email address of the contact.\nAfter you specify an email address, you need to call SendEmailVerificationForMessageContact to send verification information to the email address. After the verification is passed, the email address takes effect.\n"},"messageContactName":{"type":"string","description":"The name of the contact.\nThe name must be unique in your resource directory.\nThe name must be 2 to 12 characters in length and can contain only letters.\n"},"messageTypes":{"type":"array","items":{"type":"string"},"description":"The types of messages received by the contact.\n"},"phoneNumber":{"type":"string","description":"The mobile phone number of the contact.\n\nSpecify the mobile phone number in the `-` format.\n\n\u003e **NOTE:**  Only mobile phone numbers in the `86-` format in the Chinese mainland are supported.\n\nAfter you specify a mobile phone number, you need to call SendPhoneVerificationForMessageContact to send verification information to the mobile phone number. After the verification is passed, the mobile phone number takes effect.\n"},"status":{"type":"string","description":"The status of the contact.\n"},"title":{"type":"string","description":"The job title of the contact.Valid values:\n- FinanceDirector\n- TechnicalDirector\n- MaintenanceDirector\n- CEO\n- ProjectDirector\n- Other\n"}},"required":["createTime","emailAddress","messageContactName","messageTypes","status","title"],"inputProperties":{"emailAddress":{"type":"string","description":"The email address of the contact.\nAfter you specify an email address, you need to call SendEmailVerificationForMessageContact to send verification information to the email address. After the verification is passed, the email address takes effect.\n"},"messageContactName":{"type":"string","description":"The name of the contact.\nThe name must be unique in your resource directory.\nThe name must be 2 to 12 characters in length and can contain only letters.\n"},"messageTypes":{"type":"array","items":{"type":"string"},"description":"The types of messages received by the contact.\n"},"phoneNumber":{"type":"string","description":"The mobile phone number of the contact.\n\nSpecify the mobile phone number in the `-` format.\n\n\u003e **NOTE:**  Only mobile phone numbers in the `86-` format in the Chinese mainland are supported.\n\nAfter you specify a mobile phone number, you need to call SendPhoneVerificationForMessageContact to send verification information to the mobile phone number. After the verification is passed, the mobile phone number takes effect.\n"},"title":{"type":"string","description":"The job title of the contact.Valid values:\n- FinanceDirector\n- TechnicalDirector\n- MaintenanceDirector\n- CEO\n- ProjectDirector\n- Other\n"}},"requiredInputs":["emailAddress","messageContactName","messageTypes","title"],"stateInputs":{"description":"Input properties used for looking up and filtering MessageContact resources.\n","properties":{"createTime":{"type":"string","description":"The time when the contact was created.\n"},"emailAddress":{"type":"string","description":"The email address of the contact.\nAfter you specify an email address, you need to call SendEmailVerificationForMessageContact to send verification information to the email address. After the verification is passed, the email address takes effect.\n"},"messageContactName":{"type":"string","description":"The name of the contact.\nThe name must be unique in your resource directory.\nThe name must be 2 to 12 characters in length and can contain only letters.\n"},"messageTypes":{"type":"array","items":{"type":"string"},"description":"The types of messages received by the contact.\n"},"phoneNumber":{"type":"string","description":"The mobile phone number of the contact.\n\nSpecify the mobile phone number in the `-` format.\n\n\u003e **NOTE:**  Only mobile phone numbers in the `86-` format in the Chinese mainland are supported.\n\nAfter you specify a mobile phone number, you need to call SendPhoneVerificationForMessageContact to send verification information to the mobile phone number. After the verification is passed, the mobile phone number takes effect.\n"},"status":{"type":"string","description":"The status of the contact.\n"},"title":{"type":"string","description":"The job title of the contact.Valid values:\n- FinanceDirector\n- TechnicalDirector\n- MaintenanceDirector\n- CEO\n- ProjectDirector\n- Other\n"}},"type":"object"}},"alicloud:resourcemanager/multiAccountDeliveryChannel:MultiAccountDeliveryChannel":{"description":"Provides a Resource Manager Multi Account Delivery Channel resource.\n\nMulti-account Resource Delivery Channel.\n\nFor information about Resource Manager Multi Account Delivery Channel and how to use it, see [What is Multi Account Delivery Channel](https://next.api.alibabacloud.com/document/ResourceCenter/2022-12-01/CreateMultiAccountDeliveryChannel).\n\n\u003e **NOTE:** Available since v1.262.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultuHQ8Cu = new alicloud.resourcemanager.Folder(\"defaultuHQ8Cu\", {folderName: \"folder-aone-example-1\"});\nconst defaultioI16p = new alicloud.resourcemanager.Folder(\"defaultioI16p\", {folderName: \"folder-aone-example-2\"});\nconst default55Uum4 = new alicloud.resourcemanager.Folder(\"default55Uum4\", {folderName: \"folder-aone-example-3\"});\nconst defaultiEjEbe = new alicloud.resourcemanager.Folder(\"defaultiEjEbe\", {folderName: \"folder-aone-example-4\"});\nconst defaultdNL2TN = new alicloud.resourcemanager.Folder(\"defaultdNL2TN\", {folderName: \"folder-aone-example-5\"});\nconst _default = new alicloud.resourcemanager.MultiAccountDeliveryChannel(\"default\", {\n    resourceChangeDelivery: {\n        slsProperties: {\n            oversizedDataOssTargetArn: \"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\",\n        },\n        targetArn: \"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\",\n    },\n    deliveryChannelDescription: \"multi_delivery_channel_resource_spec_mq_example\",\n    multiAccountDeliveryChannelName: \"multi_delivery_channel_resource_spec_mq_example\",\n    deliveryChannelFilter: {\n        accountScopes: [\n            defaultuHQ8Cu.id,\n            defaultioI16p.id,\n            default55Uum4.id,\n        ],\n        resourceTypes: [\n            \"ACS::ACK::Cluster\",\n            \"ACS::ActionTrail::Trail\",\n            \"ACS::BPStudio::Application\",\n        ],\n    },\n    resourceSnapshotDelivery: {\n        deliveryTime: \"16:00Z\",\n        targetArn: \"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\",\n        targetType: \"SLS\",\n        customExpression: \"select * from resources limit 10;\",\n        slsProperties: {\n            oversizedDataOssTargetArn: \"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaultu_hq8_cu = alicloud.resourcemanager.Folder(\"defaultuHQ8Cu\", folder_name=\"folder-aone-example-1\")\ndefaultio_i16p = alicloud.resourcemanager.Folder(\"defaultioI16p\", folder_name=\"folder-aone-example-2\")\ndefault55_uum4 = alicloud.resourcemanager.Folder(\"default55Uum4\", folder_name=\"folder-aone-example-3\")\ndefaulti_ej_ebe = alicloud.resourcemanager.Folder(\"defaultiEjEbe\", folder_name=\"folder-aone-example-4\")\ndefaultd_nl2_tn = alicloud.resourcemanager.Folder(\"defaultdNL2TN\", folder_name=\"folder-aone-example-5\")\ndefault = alicloud.resourcemanager.MultiAccountDeliveryChannel(\"default\",\n    resource_change_delivery={\n        \"sls_properties\": {\n            \"oversized_data_oss_target_arn\": \"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\",\n        },\n        \"target_arn\": \"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\",\n    },\n    delivery_channel_description=\"multi_delivery_channel_resource_spec_mq_example\",\n    multi_account_delivery_channel_name=\"multi_delivery_channel_resource_spec_mq_example\",\n    delivery_channel_filter={\n        \"account_scopes\": [\n            defaultu_hq8_cu.id,\n            defaultio_i16p.id,\n            default55_uum4.id,\n        ],\n        \"resource_types\": [\n            \"ACS::ACK::Cluster\",\n            \"ACS::ActionTrail::Trail\",\n            \"ACS::BPStudio::Application\",\n        ],\n    },\n    resource_snapshot_delivery={\n        \"delivery_time\": \"16:00Z\",\n        \"target_arn\": \"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\",\n        \"target_type\": \"SLS\",\n        \"custom_expression\": \"select * from resources limit 10;\",\n        \"sls_properties\": {\n            \"oversized_data_oss_target_arn\": \"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultuHQ8Cu = new AliCloud.ResourceManager.Folder(\"defaultuHQ8Cu\", new()\n    {\n        FolderName = \"folder-aone-example-1\",\n    });\n\n    var defaultioI16p = new AliCloud.ResourceManager.Folder(\"defaultioI16p\", new()\n    {\n        FolderName = \"folder-aone-example-2\",\n    });\n\n    var default55Uum4 = new AliCloud.ResourceManager.Folder(\"default55Uum4\", new()\n    {\n        FolderName = \"folder-aone-example-3\",\n    });\n\n    var defaultiEjEbe = new AliCloud.ResourceManager.Folder(\"defaultiEjEbe\", new()\n    {\n        FolderName = \"folder-aone-example-4\",\n    });\n\n    var defaultdNL2TN = new AliCloud.ResourceManager.Folder(\"defaultdNL2TN\", new()\n    {\n        FolderName = \"folder-aone-example-5\",\n    });\n\n    var @default = new AliCloud.ResourceManager.MultiAccountDeliveryChannel(\"default\", new()\n    {\n        ResourceChangeDelivery = new AliCloud.ResourceManager.Inputs.MultiAccountDeliveryChannelResourceChangeDeliveryArgs\n        {\n            SlsProperties = new AliCloud.ResourceManager.Inputs.MultiAccountDeliveryChannelResourceChangeDeliverySlsPropertiesArgs\n            {\n                OversizedDataOssTargetArn = \"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\",\n            },\n            TargetArn = \"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\",\n        },\n        DeliveryChannelDescription = \"multi_delivery_channel_resource_spec_mq_example\",\n        MultiAccountDeliveryChannelName = \"multi_delivery_channel_resource_spec_mq_example\",\n        DeliveryChannelFilter = new AliCloud.ResourceManager.Inputs.MultiAccountDeliveryChannelDeliveryChannelFilterArgs\n        {\n            AccountScopes = new[]\n            {\n                defaultuHQ8Cu.Id,\n                defaultioI16p.Id,\n                default55Uum4.Id,\n            },\n            ResourceTypes = new[]\n            {\n                \"ACS::ACK::Cluster\",\n                \"ACS::ActionTrail::Trail\",\n                \"ACS::BPStudio::Application\",\n            },\n        },\n        ResourceSnapshotDelivery = new AliCloud.ResourceManager.Inputs.MultiAccountDeliveryChannelResourceSnapshotDeliveryArgs\n        {\n            DeliveryTime = \"16:00Z\",\n            TargetArn = \"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\",\n            TargetType = \"SLS\",\n            CustomExpression = \"select * from resources limit 10;\",\n            SlsProperties = new AliCloud.ResourceManager.Inputs.MultiAccountDeliveryChannelResourceSnapshotDeliverySlsPropertiesArgs\n            {\n                OversizedDataOssTargetArn = \"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultuHQ8Cu, err := resourcemanager.NewFolder(ctx, \"defaultuHQ8Cu\", \u0026resourcemanager.FolderArgs{\n\t\t\tFolderName: pulumi.String(\"folder-aone-example-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultioI16p, err := resourcemanager.NewFolder(ctx, \"defaultioI16p\", \u0026resourcemanager.FolderArgs{\n\t\t\tFolderName: pulumi.String(\"folder-aone-example-2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault55Uum4, err := resourcemanager.NewFolder(ctx, \"default55Uum4\", \u0026resourcemanager.FolderArgs{\n\t\t\tFolderName: pulumi.String(\"folder-aone-example-3\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.NewFolder(ctx, \"defaultiEjEbe\", \u0026resourcemanager.FolderArgs{\n\t\t\tFolderName: pulumi.String(\"folder-aone-example-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.NewFolder(ctx, \"defaultdNL2TN\", \u0026resourcemanager.FolderArgs{\n\t\t\tFolderName: pulumi.String(\"folder-aone-example-5\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.NewMultiAccountDeliveryChannel(ctx, \"default\", \u0026resourcemanager.MultiAccountDeliveryChannelArgs{\n\t\t\tResourceChangeDelivery: \u0026resourcemanager.MultiAccountDeliveryChannelResourceChangeDeliveryArgs{\n\t\t\t\tSlsProperties: \u0026resourcemanager.MultiAccountDeliveryChannelResourceChangeDeliverySlsPropertiesArgs{\n\t\t\t\t\tOversizedDataOssTargetArn: pulumi.String(\"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\"),\n\t\t\t\t},\n\t\t\t\tTargetArn: pulumi.String(\"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\"),\n\t\t\t},\n\t\t\tDeliveryChannelDescription:      pulumi.String(\"multi_delivery_channel_resource_spec_mq_example\"),\n\t\t\tMultiAccountDeliveryChannelName: pulumi.String(\"multi_delivery_channel_resource_spec_mq_example\"),\n\t\t\tDeliveryChannelFilter: \u0026resourcemanager.MultiAccountDeliveryChannelDeliveryChannelFilterArgs{\n\t\t\t\tAccountScopes: pulumi.StringArray{\n\t\t\t\t\tdefaultuHQ8Cu.ID(),\n\t\t\t\t\tdefaultioI16p.ID(),\n\t\t\t\t\tdefault55Uum4.ID(),\n\t\t\t\t},\n\t\t\t\tResourceTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"ACS::ACK::Cluster\"),\n\t\t\t\t\tpulumi.String(\"ACS::ActionTrail::Trail\"),\n\t\t\t\t\tpulumi.String(\"ACS::BPStudio::Application\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceSnapshotDelivery: \u0026resourcemanager.MultiAccountDeliveryChannelResourceSnapshotDeliveryArgs{\n\t\t\t\tDeliveryTime:     pulumi.String(\"16:00Z\"),\n\t\t\t\tTargetArn:        pulumi.String(\"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\"),\n\t\t\t\tTargetType:       pulumi.String(\"SLS\"),\n\t\t\t\tCustomExpression: pulumi.String(\"select * from resources limit 10;\"),\n\t\t\t\tSlsProperties: \u0026resourcemanager.MultiAccountDeliveryChannelResourceSnapshotDeliverySlsPropertiesArgs{\n\t\t\t\t\tOversizedDataOssTargetArn: pulumi.String(\"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.Folder;\nimport com.pulumi.alicloud.resourcemanager.FolderArgs;\nimport com.pulumi.alicloud.resourcemanager.MultiAccountDeliveryChannel;\nimport com.pulumi.alicloud.resourcemanager.MultiAccountDeliveryChannelArgs;\nimport com.pulumi.alicloud.resourcemanager.inputs.MultiAccountDeliveryChannelResourceChangeDeliveryArgs;\nimport com.pulumi.alicloud.resourcemanager.inputs.MultiAccountDeliveryChannelResourceChangeDeliverySlsPropertiesArgs;\nimport com.pulumi.alicloud.resourcemanager.inputs.MultiAccountDeliveryChannelDeliveryChannelFilterArgs;\nimport com.pulumi.alicloud.resourcemanager.inputs.MultiAccountDeliveryChannelResourceSnapshotDeliveryArgs;\nimport com.pulumi.alicloud.resourcemanager.inputs.MultiAccountDeliveryChannelResourceSnapshotDeliverySlsPropertiesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultuHQ8Cu = new Folder(\"defaultuHQ8Cu\", FolderArgs.builder()\n            .folderName(\"folder-aone-example-1\")\n            .build());\n\n        var defaultioI16p = new Folder(\"defaultioI16p\", FolderArgs.builder()\n            .folderName(\"folder-aone-example-2\")\n            .build());\n\n        var default55Uum4 = new Folder(\"default55Uum4\", FolderArgs.builder()\n            .folderName(\"folder-aone-example-3\")\n            .build());\n\n        var defaultiEjEbe = new Folder(\"defaultiEjEbe\", FolderArgs.builder()\n            .folderName(\"folder-aone-example-4\")\n            .build());\n\n        var defaultdNL2TN = new Folder(\"defaultdNL2TN\", FolderArgs.builder()\n            .folderName(\"folder-aone-example-5\")\n            .build());\n\n        var default_ = new MultiAccountDeliveryChannel(\"default\", MultiAccountDeliveryChannelArgs.builder()\n            .resourceChangeDelivery(MultiAccountDeliveryChannelResourceChangeDeliveryArgs.builder()\n                .slsProperties(MultiAccountDeliveryChannelResourceChangeDeliverySlsPropertiesArgs.builder()\n                    .oversizedDataOssTargetArn(\"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\")\n                    .build())\n                .targetArn(\"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\")\n                .build())\n            .deliveryChannelDescription(\"multi_delivery_channel_resource_spec_mq_example\")\n            .multiAccountDeliveryChannelName(\"multi_delivery_channel_resource_spec_mq_example\")\n            .deliveryChannelFilter(MultiAccountDeliveryChannelDeliveryChannelFilterArgs.builder()\n                .accountScopes(                \n                    defaultuHQ8Cu.id(),\n                    defaultioI16p.id(),\n                    default55Uum4.id())\n                .resourceTypes(                \n                    \"ACS::ACK::Cluster\",\n                    \"ACS::ActionTrail::Trail\",\n                    \"ACS::BPStudio::Application\")\n                .build())\n            .resourceSnapshotDelivery(MultiAccountDeliveryChannelResourceSnapshotDeliveryArgs.builder()\n                .deliveryTime(\"16:00Z\")\n                .targetArn(\"acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\")\n                .targetType(\"SLS\")\n                .customExpression(\"select * from resources limit 10;\")\n                .slsProperties(MultiAccountDeliveryChannelResourceSnapshotDeliverySlsPropertiesArgs.builder()\n                    .oversizedDataOssTargetArn(\"acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultuHQ8Cu:\n    type: alicloud:resourcemanager:Folder\n    properties:\n      folderName: folder-aone-example-1\n  defaultioI16p:\n    type: alicloud:resourcemanager:Folder\n    properties:\n      folderName: folder-aone-example-2\n  default55Uum4:\n    type: alicloud:resourcemanager:Folder\n    properties:\n      folderName: folder-aone-example-3\n  defaultiEjEbe:\n    type: alicloud:resourcemanager:Folder\n    properties:\n      folderName: folder-aone-example-4\n  defaultdNL2TN:\n    type: alicloud:resourcemanager:Folder\n    properties:\n      folderName: folder-aone-example-5\n  default:\n    type: alicloud:resourcemanager:MultiAccountDeliveryChannel\n    properties:\n      resourceChangeDelivery:\n        slsProperties:\n          oversizedDataOssTargetArn: acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\n        targetArn: acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\n      deliveryChannelDescription: multi_delivery_channel_resource_spec_mq_example\n      multiAccountDeliveryChannelName: multi_delivery_channel_resource_spec_mq_example\n      deliveryChannelFilter:\n        accountScopes:\n          - ${defaultuHQ8Cu.id}\n          - ${defaultioI16p.id}\n          - ${default55Uum4.id}\n        resourceTypes:\n          - ACS::ACK::Cluster\n          - ACS::ActionTrail::Trail\n          - ACS::BPStudio::Application\n      resourceSnapshotDelivery:\n        deliveryTime: 16:00Z\n        targetArn: acs:log:cn-hangzhou:1511928242963727:project/delivery-aone-example/logstore/resourcecenter-delivery-aone-example-sls\n        targetType: SLS\n        customExpression: select * from resources limit 10;\n        slsProperties:\n          oversizedDataOssTargetArn: acs:oss:cn-hangzhou:1511928242963727:resourcecenter-aone-example-delivery-oss\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Multi Account Delivery Channel can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/multiAccountDeliveryChannel:MultiAccountDeliveryChannel example \u003cid\u003e\n```\n\n","properties":{"deliveryChannelDescription":{"type":"string","description":"The description of the delivery channel.\n"},"deliveryChannelFilter":{"$ref":"#/types/alicloud:resourcemanager/MultiAccountDeliveryChannelDeliveryChannelFilter:MultiAccountDeliveryChannelDeliveryChannelFilter","description":"The effective scope of the delivery channel. See \u003cspan pulumi-lang-nodejs=\"`deliveryChannelFilter`\" pulumi-lang-dotnet=\"`DeliveryChannelFilter`\" pulumi-lang-go=\"`deliveryChannelFilter`\" pulumi-lang-python=\"`delivery_channel_filter`\" pulumi-lang-yaml=\"`deliveryChannelFilter`\" pulumi-lang-java=\"`deliveryChannelFilter`\"\u003e`delivery_channel_filter`\u003c/span\u003e below.\n"},"multiAccountDeliveryChannelName":{"type":"string","description":"The name of the delivery channel.\n"},"resourceChangeDelivery":{"$ref":"#/types/alicloud:resourcemanager/MultiAccountDeliveryChannelResourceChangeDelivery:MultiAccountDeliveryChannelResourceChangeDelivery","description":"The configurations for delivery of resource configuration change events. See \u003cspan pulumi-lang-nodejs=\"`resourceChangeDelivery`\" pulumi-lang-dotnet=\"`ResourceChangeDelivery`\" pulumi-lang-go=\"`resourceChangeDelivery`\" pulumi-lang-python=\"`resource_change_delivery`\" pulumi-lang-yaml=\"`resourceChangeDelivery`\" pulumi-lang-java=\"`resourceChangeDelivery`\"\u003e`resource_change_delivery`\u003c/span\u003e below.\n"},"resourceSnapshotDelivery":{"$ref":"#/types/alicloud:resourcemanager/MultiAccountDeliveryChannelResourceSnapshotDelivery:MultiAccountDeliveryChannelResourceSnapshotDelivery","description":"The configurations for delivery of scheduled resource snapshots. See \u003cspan pulumi-lang-nodejs=\"`resourceSnapshotDelivery`\" pulumi-lang-dotnet=\"`ResourceSnapshotDelivery`\" pulumi-lang-go=\"`resourceSnapshotDelivery`\" pulumi-lang-python=\"`resource_snapshot_delivery`\" pulumi-lang-yaml=\"`resourceSnapshotDelivery`\" pulumi-lang-java=\"`resourceSnapshotDelivery`\"\u003e`resource_snapshot_delivery`\u003c/span\u003e below.\n"}},"required":["deliveryChannelDescription","deliveryChannelFilter","multiAccountDeliveryChannelName"],"inputProperties":{"deliveryChannelDescription":{"type":"string","description":"The description of the delivery channel.\n"},"deliveryChannelFilter":{"$ref":"#/types/alicloud:resourcemanager/MultiAccountDeliveryChannelDeliveryChannelFilter:MultiAccountDeliveryChannelDeliveryChannelFilter","description":"The effective scope of the delivery channel. See \u003cspan pulumi-lang-nodejs=\"`deliveryChannelFilter`\" pulumi-lang-dotnet=\"`DeliveryChannelFilter`\" pulumi-lang-go=\"`deliveryChannelFilter`\" pulumi-lang-python=\"`delivery_channel_filter`\" pulumi-lang-yaml=\"`deliveryChannelFilter`\" pulumi-lang-java=\"`deliveryChannelFilter`\"\u003e`delivery_channel_filter`\u003c/span\u003e below.\n"},"multiAccountDeliveryChannelName":{"type":"string","description":"The name of the delivery channel.\n"},"resourceChangeDelivery":{"$ref":"#/types/alicloud:resourcemanager/MultiAccountDeliveryChannelResourceChangeDelivery:MultiAccountDeliveryChannelResourceChangeDelivery","description":"The configurations for delivery of resource configuration change events. See \u003cspan pulumi-lang-nodejs=\"`resourceChangeDelivery`\" pulumi-lang-dotnet=\"`ResourceChangeDelivery`\" pulumi-lang-go=\"`resourceChangeDelivery`\" pulumi-lang-python=\"`resource_change_delivery`\" pulumi-lang-yaml=\"`resourceChangeDelivery`\" pulumi-lang-java=\"`resourceChangeDelivery`\"\u003e`resource_change_delivery`\u003c/span\u003e below.\n"},"resourceSnapshotDelivery":{"$ref":"#/types/alicloud:resourcemanager/MultiAccountDeliveryChannelResourceSnapshotDelivery:MultiAccountDeliveryChannelResourceSnapshotDelivery","description":"The configurations for delivery of scheduled resource snapshots. See \u003cspan pulumi-lang-nodejs=\"`resourceSnapshotDelivery`\" pulumi-lang-dotnet=\"`ResourceSnapshotDelivery`\" pulumi-lang-go=\"`resourceSnapshotDelivery`\" pulumi-lang-python=\"`resource_snapshot_delivery`\" pulumi-lang-yaml=\"`resourceSnapshotDelivery`\" pulumi-lang-java=\"`resourceSnapshotDelivery`\"\u003e`resource_snapshot_delivery`\u003c/span\u003e below.\n"}},"requiredInputs":["deliveryChannelDescription","deliveryChannelFilter","multiAccountDeliveryChannelName"],"stateInputs":{"description":"Input properties used for looking up and filtering MultiAccountDeliveryChannel resources.\n","properties":{"deliveryChannelDescription":{"type":"string","description":"The description of the delivery channel.\n"},"deliveryChannelFilter":{"$ref":"#/types/alicloud:resourcemanager/MultiAccountDeliveryChannelDeliveryChannelFilter:MultiAccountDeliveryChannelDeliveryChannelFilter","description":"The effective scope of the delivery channel. See \u003cspan pulumi-lang-nodejs=\"`deliveryChannelFilter`\" pulumi-lang-dotnet=\"`DeliveryChannelFilter`\" pulumi-lang-go=\"`deliveryChannelFilter`\" pulumi-lang-python=\"`delivery_channel_filter`\" pulumi-lang-yaml=\"`deliveryChannelFilter`\" pulumi-lang-java=\"`deliveryChannelFilter`\"\u003e`delivery_channel_filter`\u003c/span\u003e below.\n"},"multiAccountDeliveryChannelName":{"type":"string","description":"The name of the delivery channel.\n"},"resourceChangeDelivery":{"$ref":"#/types/alicloud:resourcemanager/MultiAccountDeliveryChannelResourceChangeDelivery:MultiAccountDeliveryChannelResourceChangeDelivery","description":"The configurations for delivery of resource configuration change events. See \u003cspan pulumi-lang-nodejs=\"`resourceChangeDelivery`\" pulumi-lang-dotnet=\"`ResourceChangeDelivery`\" pulumi-lang-go=\"`resourceChangeDelivery`\" pulumi-lang-python=\"`resource_change_delivery`\" pulumi-lang-yaml=\"`resourceChangeDelivery`\" pulumi-lang-java=\"`resourceChangeDelivery`\"\u003e`resource_change_delivery`\u003c/span\u003e below.\n"},"resourceSnapshotDelivery":{"$ref":"#/types/alicloud:resourcemanager/MultiAccountDeliveryChannelResourceSnapshotDelivery:MultiAccountDeliveryChannelResourceSnapshotDelivery","description":"The configurations for delivery of scheduled resource snapshots. See \u003cspan pulumi-lang-nodejs=\"`resourceSnapshotDelivery`\" pulumi-lang-dotnet=\"`ResourceSnapshotDelivery`\" pulumi-lang-go=\"`resourceSnapshotDelivery`\" pulumi-lang-python=\"`resource_snapshot_delivery`\" pulumi-lang-yaml=\"`resourceSnapshotDelivery`\" pulumi-lang-java=\"`resourceSnapshotDelivery`\"\u003e`resource_snapshot_delivery`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:resourcemanager/policy:Policy":{"description":"Provides a Resource Manager Policy resource.  \nFor information about Resource Manager Policy and how to use it, see [What is Resource Manager Policy](https://www.alibabacloud.com/help/en/doc-detail/93732.htm).\n\n\u003e **NOTE:** Available since v1.83.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst example = new alicloud.resourcemanager.Policy(\"example\", {\n    policyName: name,\n    policyDocument: `\\\\t\\\\t{\n\\\\t\\\\t\\\\t\\\\\"Statement\\\\\": [{\n\\\\t\\\\t\\\\t\\\\t\\\\\"Action\\\\\": [\\\\\"oss:*\\\\\"],\n\\\\t\\\\t\\\\t\\\\t\\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n\\\\t\\\\t\\\\t\\\\t\\\\\"Resource\\\\\": [\\\\\"acs:oss:*:*:*\\\\\"]\n\\\\t\\\\t\\\\t}],\n\\\\t\\\\t\\\\t\\\\\"Version\\\\\": \\\\\"1\\\\\"\n\\\\t\\\\t}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\nexample = alicloud.resourcemanager.Policy(\"example\",\n    policy_name=name,\n    policy_document=\"\"\"\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [{\n\\t\\t\\t\\t\\\"Action\\\": [\\\"oss:*\\\"],\n\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\\"Resource\\\": [\\\"acs:oss:*:*:*\\\"]\n\\t\\t\\t}],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var example = new AliCloud.ResourceManager.Policy(\"example\", new()\n    {\n        PolicyName = name,\n        PolicyDocument = @\"\\t\\t{\n\\t\\t\\t\\\"\"Statement\\\"\": [{\n\\t\\t\\t\\t\\\"\"Action\\\"\": [\\\"\"oss:*\\\"\"],\n\\t\\t\\t\\t\\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n\\t\\t\\t\\t\\\"\"Resource\\\"\": [\\\"\"acs:oss:*:*:*\\\"\"]\n\\t\\t\\t}],\n\\t\\t\\t\\\"\"Version\\\"\": \\\"\"1\\\"\"\n\\t\\t}\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.NewPolicy(ctx, \"example\", \u0026resourcemanager.PolicyArgs{\n\t\t\tPolicyName: pulumi.String(name),\n\t\t\tPolicyDocument: pulumi.String(`\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [{\n\\t\\t\\t\\t\\\"Action\\\": [\\\"oss:*\\\"],\n\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\\"Resource\\\": [\\\"acs:oss:*:*:*\\\"]\n\\t\\t\\t}],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.Policy;\nimport com.pulumi.alicloud.resourcemanager.PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        var example = new Policy(\"example\", PolicyArgs.builder()\n            .policyName(name)\n            .policyDocument(\"\"\"\n\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [{\n\\t\\t\\t\\t\\\"Action\\\": [\\\"oss:*\\\"],\n\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\\"Resource\\\": [\\\"acs:oss:*:*:*\\\"]\n\\t\\t\\t}],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  example:\n    type: alicloud:resourcemanager:Policy\n    properties:\n      policyName: ${name}\n      policyDocument: |\n        \\t\\t{\n        \\t\\t\\t\\\"Statement\\\": [{\n        \\t\\t\\t\\t\\\"Action\\\": [\\\"oss:*\\\"],\n        \\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n        \\t\\t\\t\\t\\\"Resource\\\": [\\\"acs:oss:*:*:*\\\"]\n        \\t\\t\\t}],\n        \\t\\t\\t\\\"Version\\\": \\\"1\\\"\n        \\t\\t}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/policy:Policy example abc12345\n```\n\n","properties":{"defaultVersion":{"type":"string","description":"The version of the policy. Default to v1.\n","deprecationMessage":"Field 'default_version' has been deprecated from provider version 1.90.0"},"description":{"type":"string","description":"The description of the policy. The description must be 1 to 1,024 characters in length.\n"},"policyDocument":{"type":"string","description":"The content of the policy. The content must be 1 to 2,048 characters in length.\n"},"policyName":{"type":"string","description":"The name of the policy. name must be 1 to 128 characters in length and can contain letters, digits, and hyphens (-).\n"},"policyType":{"type":"string","description":"The type of the policy. Valid values: `Custom`, `System`.\n"}},"required":["defaultVersion","policyDocument","policyName","policyType"],"inputProperties":{"defaultVersion":{"type":"string","description":"The version of the policy. Default to v1.\n","deprecationMessage":"Field 'default_version' has been deprecated from provider version 1.90.0"},"description":{"type":"string","description":"The description of the policy. The description must be 1 to 1,024 characters in length.\n","willReplaceOnChanges":true},"policyDocument":{"type":"string","description":"The content of the policy. The content must be 1 to 2,048 characters in length.\n","willReplaceOnChanges":true},"policyName":{"type":"string","description":"The name of the policy. name must be 1 to 128 characters in length and can contain letters, digits, and hyphens (-).\n","willReplaceOnChanges":true}},"requiredInputs":["policyDocument","policyName"],"stateInputs":{"description":"Input properties used for looking up and filtering Policy resources.\n","properties":{"defaultVersion":{"type":"string","description":"The version of the policy. Default to v1.\n","deprecationMessage":"Field 'default_version' has been deprecated from provider version 1.90.0"},"description":{"type":"string","description":"The description of the policy. The description must be 1 to 1,024 characters in length.\n","willReplaceOnChanges":true},"policyDocument":{"type":"string","description":"The content of the policy. The content must be 1 to 2,048 characters in length.\n","willReplaceOnChanges":true},"policyName":{"type":"string","description":"The name of the policy. name must be 1 to 128 characters in length and can contain letters, digits, and hyphens (-).\n","willReplaceOnChanges":true},"policyType":{"type":"string","description":"The type of the policy. Valid values: `Custom`, `System`.\n"}},"type":"object"}},"alicloud:resourcemanager/policyAttachment:PolicyAttachment":{"description":"Provides a Resource Manager Policy Attachment resource to attaches a policy to an object. After you attach a policy to an object, the object has the operation permissions on the current resource group or the resources under the current account. \nFor information about Resource Manager Policy Attachment and how to use it, see [How to authorize and manage resource groups](https://www.alibabacloud.com/help/en/doc-detail/94490.htm).\n\n\u003e **NOTE:** Available since v1.93.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexamplename\";\nconst exampleUser = new alicloud.ram.User(\"example\", {name: name});\nconst examplePolicy = new alicloud.resourcemanager.Policy(\"example\", {\n    policyName: name,\n    policyDocument: `\\\\t\\\\t{\n\\\\t\\\\t\\\\t\\\\\"Statement\\\\\": [{\n\\\\t\\\\t\\\\t\\\\t\\\\\"Action\\\\\": [\\\\\"oss:*\\\\\"],\n\\\\t\\\\t\\\\t\\\\t\\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n\\\\t\\\\t\\\\t\\\\t\\\\\"Resource\\\\\": [\\\\\"acs:oss:*:*:*\\\\\"]\n\\\\t\\\\t\\\\t}],\n\\\\t\\\\t\\\\t\\\\\"Version\\\\\": \\\\\"1\\\\\"\n\\\\t\\\\t}\n`,\n});\nconst example = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\n// Get Alicloud Account Id\nconst exampleGetAccount = alicloud.getAccount({});\n// Attach the custom policy to resource group\nconst examplePolicyAttachment = new alicloud.resourcemanager.PolicyAttachment(\"example\", {\n    policyName: examplePolicy.policyName,\n    policyType: \"Custom\",\n    principalName: std.format({\n        input: \"%s@%s.onaliyun.com\",\n        args: [\n            exampleUser.name,\n            exampleGetAccount.then(exampleGetAccount =\u003e exampleGetAccount.id),\n        ],\n    }).then(invoke =\u003e invoke.result),\n    principalType: \"IMSUser\",\n    resourceGroupId: example.then(example =\u003e example.ids?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexamplename\"\nexample_user = alicloud.ram.User(\"example\", name=name)\nexample_policy = alicloud.resourcemanager.Policy(\"example\",\n    policy_name=name,\n    policy_document=\"\"\"\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [{\n\\t\\t\\t\\t\\\"Action\\\": [\\\"oss:*\\\"],\n\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\\"Resource\\\": [\\\"acs:oss:*:*:*\\\"]\n\\t\\t\\t}],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n\"\"\")\nexample = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\n# Get Alicloud Account Id\nexample_get_account = alicloud.get_account()\n# Attach the custom policy to resource group\nexample_policy_attachment = alicloud.resourcemanager.PolicyAttachment(\"example\",\n    policy_name=example_policy.policy_name,\n    policy_type=\"Custom\",\n    principal_name=std.format(input=\"%s@%s.onaliyun.com\",\n        args=[\n            example_user.name,\n            example_get_account.id,\n        ]).result,\n    principal_type=\"IMSUser\",\n    resource_group_id=example.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexamplename\";\n    var exampleUser = new AliCloud.Ram.User(\"example\", new()\n    {\n        Name = name,\n    });\n\n    var examplePolicy = new AliCloud.ResourceManager.Policy(\"example\", new()\n    {\n        PolicyName = name,\n        PolicyDocument = @\"\\t\\t{\n\\t\\t\\t\\\"\"Statement\\\"\": [{\n\\t\\t\\t\\t\\\"\"Action\\\"\": [\\\"\"oss:*\\\"\"],\n\\t\\t\\t\\t\\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n\\t\\t\\t\\t\\\"\"Resource\\\"\": [\\\"\"acs:oss:*:*:*\\\"\"]\n\\t\\t\\t}],\n\\t\\t\\t\\\"\"Version\\\"\": \\\"\"1\\\"\"\n\\t\\t}\n\",\n    });\n\n    var example = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    // Get Alicloud Account Id\n    var exampleGetAccount = AliCloud.GetAccount.Invoke();\n\n    // Attach the custom policy to resource group\n    var examplePolicyAttachment = new AliCloud.ResourceManager.PolicyAttachment(\"example\", new()\n    {\n        PolicyName = examplePolicy.PolicyName,\n        PolicyType = \"Custom\",\n        PrincipalName = Std.Format.Invoke(new()\n        {\n            Input = \"%s@%s.onaliyun.com\",\n            Args = new[]\n            {\n                exampleUser.Name,\n                exampleGetAccount.Apply(getAccountResult =\u003e getAccountResult.Id),\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        PrincipalType = \"IMSUser\",\n        ResourceGroupId = example.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0]),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexamplename\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texampleUser, err := ram.NewUser(ctx, \"example\", \u0026ram.UserArgs{\n\t\t\tName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePolicy, err := resourcemanager.NewPolicy(ctx, \"example\", \u0026resourcemanager.PolicyArgs{\n\t\t\tPolicyName: pulumi.String(name),\n\t\t\tPolicyDocument: pulumi.String(`\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [{\n\\t\\t\\t\\t\\\"Action\\\": [\\\"oss:*\\\"],\n\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\\"Resource\\\": [\\\"acs:oss:*:*:*\\\"]\n\\t\\t\\t}],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get Alicloud Account Id\n\t\texampleGetAccount, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s@%s.onaliyun.com\",\n\t\t\tArgs: []interface{}{\n\t\t\t\texampleUser.Name,\n\t\t\t\texampleGetAccount.Id,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Attach the custom policy to resource group\n\t\t_, err = resourcemanager.NewPolicyAttachment(ctx, \"example\", \u0026resourcemanager.PolicyAttachmentArgs{\n\t\t\tPolicyName:      examplePolicy.PolicyName,\n\t\t\tPolicyType:      pulumi.String(\"Custom\"),\n\t\t\tPrincipalName:   pulumi.String(invokeFormat.Result),\n\t\t\tPrincipalType:   pulumi.String(\"IMSUser\"),\n\t\t\tResourceGroupId: pulumi.String(example.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.User;\nimport com.pulumi.alicloud.ram.UserArgs;\nimport com.pulumi.alicloud.resourcemanager.Policy;\nimport com.pulumi.alicloud.resourcemanager.PolicyArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.resourcemanager.PolicyAttachment;\nimport com.pulumi.alicloud.resourcemanager.PolicyAttachmentArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexamplename\");\n        var exampleUser = new User(\"exampleUser\", UserArgs.builder()\n            .name(name)\n            .build());\n\n        var examplePolicy = new Policy(\"examplePolicy\", PolicyArgs.builder()\n            .policyName(name)\n            .policyDocument(\"\"\"\n\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [{\n\\t\\t\\t\\t\\\"Action\\\": [\\\"oss:*\\\"],\n\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\\"Resource\\\": [\\\"acs:oss:*:*:*\\\"]\n\\t\\t\\t}],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n            \"\"\")\n            .build());\n\n        final var example = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        // Get Alicloud Account Id\n        final var exampleGetAccount = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        // Attach the custom policy to resource group\n        var examplePolicyAttachment = new PolicyAttachment(\"examplePolicyAttachment\", PolicyAttachmentArgs.builder()\n            .policyName(examplePolicy.policyName())\n            .policyType(\"Custom\")\n            .principalName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s@%s.onaliyun.com\")\n                .args(                \n                    exampleUser.name(),\n                    exampleGetAccount.id())\n                .build()).result())\n            .principalType(\"IMSUser\")\n            .resourceGroupId(example.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexamplename\nresources:\n  exampleUser:\n    type: alicloud:ram:User\n    name: example\n    properties:\n      name: ${name}\n  examplePolicy:\n    type: alicloud:resourcemanager:Policy\n    name: example\n    properties:\n      policyName: ${name}\n      policyDocument: |\n        \\t\\t{\n        \\t\\t\\t\\\"Statement\\\": [{\n        \\t\\t\\t\\t\\\"Action\\\": [\\\"oss:*\\\"],\n        \\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n        \\t\\t\\t\\t\\\"Resource\\\": [\\\"acs:oss:*:*:*\\\"]\n        \\t\\t\\t}],\n        \\t\\t\\t\\\"Version\\\": \\\"1\\\"\n        \\t\\t}\n  # Attach the custom policy to resource group\n  examplePolicyAttachment:\n    type: alicloud:resourcemanager:PolicyAttachment\n    name: example\n    properties:\n      policyName: ${examplePolicy.policyName}\n      policyType: Custom\n      principalName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s@%s.onaliyun.com'\n            args:\n              - ${exampleUser.name}\n              - ${exampleGetAccount.id}\n          return: result\n      principalType: IMSUser\n      resourceGroupId: ${example.ids[0]}\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n  # Get Alicloud Account Id\n  exampleGetAccount:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Policy Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/policyAttachment:PolicyAttachment example tf-testaccrdpolicy:Custom:tf-testaccrdpolicy@11827252********.onaliyun.com:IMSUser:rg******\n```\n\n","properties":{"policyName":{"type":"string","description":"The name of the policy. name must be 1 to 128 characters in length and can contain letters, digits, and hyphens (-).\n"},"policyType":{"type":"string","description":"The type of the policy. Valid values: `Custom`, `System`.\n"},"principalName":{"type":"string","description":"The name of the object to which you want to attach the policy.\n"},"principalType":{"type":"string","description":"The type of the object to which you want to attach the policy. Valid values: `IMSUser`: RAM user, `IMSGroup`: RAM user group, `ServiceRole`: RAM role.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group or the ID of the Alibaba Cloud account to which the resource group belongs.\n"}},"required":["policyName","policyType","principalName","principalType","resourceGroupId"],"inputProperties":{"policyName":{"type":"string","description":"The name of the policy. name must be 1 to 128 characters in length and can contain letters, digits, and hyphens (-).\n","willReplaceOnChanges":true},"policyType":{"type":"string","description":"The type of the policy. Valid values: `Custom`, `System`.\n","willReplaceOnChanges":true},"principalName":{"type":"string","description":"The name of the object to which you want to attach the policy.\n","willReplaceOnChanges":true},"principalType":{"type":"string","description":"The type of the object to which you want to attach the policy. Valid values: `IMSUser`: RAM user, `IMSGroup`: RAM user group, `ServiceRole`: RAM role.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group or the ID of the Alibaba Cloud account to which the resource group belongs.\n","willReplaceOnChanges":true}},"requiredInputs":["policyName","policyType","principalName","principalType","resourceGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering PolicyAttachment resources.\n","properties":{"policyName":{"type":"string","description":"The name of the policy. name must be 1 to 128 characters in length and can contain letters, digits, and hyphens (-).\n","willReplaceOnChanges":true},"policyType":{"type":"string","description":"The type of the policy. Valid values: `Custom`, `System`.\n","willReplaceOnChanges":true},"principalName":{"type":"string","description":"The name of the object to which you want to attach the policy.\n","willReplaceOnChanges":true},"principalType":{"type":"string","description":"The type of the object to which you want to attach the policy. Valid values: `IMSUser`: RAM user, `IMSGroup`: RAM user group, `ServiceRole`: RAM role.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group or the ID of the Alibaba Cloud account to which the resource group belongs.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:resourcemanager/policyVersion:PolicyVersion":{"description":"Provides a Resource Manager Policy Version resource. \nFor information about Resource Manager Policy Version and how to use it, see [What is Resource Manager Policy Version](https://www.alibabacloud.com/help/en/doc-detail/116817.htm).\n\n\u003e **NOTE:** Available since v1.84.0.\n\n\u003e **NOTE:** It is not recommended to use this resource management policy version, it is recommended to directly use the policy resource to manage your policy. Please refer to the link for usage resource_manager_policy.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst example = new alicloud.resourcemanager.Policy(\"example\", {\n    policyName: name,\n    policyDocument: `\\\\t\\\\t{\n\\\\t\\\\t\\\\t\\\\\"Statement\\\\\": [{\n\\\\t\\\\t\\\\t\\\\t\\\\\"Action\\\\\": [\\\\\"oss:*\\\\\"],\n\\\\t\\\\t\\\\t\\\\t\\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n\\\\t\\\\t\\\\t\\\\t\\\\\"Resource\\\\\": [\\\\\"acs:oss:*:*:*\\\\\"]\n\\\\t\\\\t\\\\t}],\n\\\\t\\\\t\\\\t\\\\\"Version\\\\\": \\\\\"1\\\\\"\n\\\\t\\\\t}\n`,\n});\nconst examplePolicyVersion = new alicloud.resourcemanager.PolicyVersion(\"example\", {\n    policyName: example.policyName,\n    policyDocument: `\\\\t\\\\t{\n\\\\t\\\\t\\\\t\\\\\"Statement\\\\\": [{\n\\\\t\\\\t\\\\t\\\\t\\\\\"Action\\\\\": [\\\\\"oss:*\\\\\"],\n\\\\t\\\\t\\\\t\\\\t\\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n\\\\t\\\\t\\\\t\\\\t\\\\\"Resource\\\\\": [\\\\\"acs:oss:*:*:myphotos\\\\\"]\n\\\\t\\\\t\\\\t}],\n\\\\t\\\\t\\\\t\\\\\"Version\\\\\": \\\\\"1\\\\\"\n\\\\t\\\\t}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\nexample = alicloud.resourcemanager.Policy(\"example\",\n    policy_name=name,\n    policy_document=\"\"\"\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [{\n\\t\\t\\t\\t\\\"Action\\\": [\\\"oss:*\\\"],\n\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\\"Resource\\\": [\\\"acs:oss:*:*:*\\\"]\n\\t\\t\\t}],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n\"\"\")\nexample_policy_version = alicloud.resourcemanager.PolicyVersion(\"example\",\n    policy_name=example.policy_name,\n    policy_document=\"\"\"\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [{\n\\t\\t\\t\\t\\\"Action\\\": [\\\"oss:*\\\"],\n\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\\"Resource\\\": [\\\"acs:oss:*:*:myphotos\\\"]\n\\t\\t\\t}],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var example = new AliCloud.ResourceManager.Policy(\"example\", new()\n    {\n        PolicyName = name,\n        PolicyDocument = @\"\\t\\t{\n\\t\\t\\t\\\"\"Statement\\\"\": [{\n\\t\\t\\t\\t\\\"\"Action\\\"\": [\\\"\"oss:*\\\"\"],\n\\t\\t\\t\\t\\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n\\t\\t\\t\\t\\\"\"Resource\\\"\": [\\\"\"acs:oss:*:*:*\\\"\"]\n\\t\\t\\t}],\n\\t\\t\\t\\\"\"Version\\\"\": \\\"\"1\\\"\"\n\\t\\t}\n\",\n    });\n\n    var examplePolicyVersion = new AliCloud.ResourceManager.PolicyVersion(\"example\", new()\n    {\n        PolicyName = example.PolicyName,\n        PolicyDocument = @\"\\t\\t{\n\\t\\t\\t\\\"\"Statement\\\"\": [{\n\\t\\t\\t\\t\\\"\"Action\\\"\": [\\\"\"oss:*\\\"\"],\n\\t\\t\\t\\t\\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n\\t\\t\\t\\t\\\"\"Resource\\\"\": [\\\"\"acs:oss:*:*:myphotos\\\"\"]\n\\t\\t\\t}],\n\\t\\t\\t\\\"\"Version\\\"\": \\\"\"1\\\"\"\n\\t\\t}\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := resourcemanager.NewPolicy(ctx, \"example\", \u0026resourcemanager.PolicyArgs{\n\t\t\tPolicyName: pulumi.String(name),\n\t\t\tPolicyDocument: pulumi.String(`\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [{\n\\t\\t\\t\\t\\\"Action\\\": [\\\"oss:*\\\"],\n\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\\"Resource\\\": [\\\"acs:oss:*:*:*\\\"]\n\\t\\t\\t}],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.NewPolicyVersion(ctx, \"example\", \u0026resourcemanager.PolicyVersionArgs{\n\t\t\tPolicyName: example.PolicyName,\n\t\t\tPolicyDocument: pulumi.String(`\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [{\n\\t\\t\\t\\t\\\"Action\\\": [\\\"oss:*\\\"],\n\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\\"Resource\\\": [\\\"acs:oss:*:*:myphotos\\\"]\n\\t\\t\\t}],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.Policy;\nimport com.pulumi.alicloud.resourcemanager.PolicyArgs;\nimport com.pulumi.alicloud.resourcemanager.PolicyVersion;\nimport com.pulumi.alicloud.resourcemanager.PolicyVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        var example = new Policy(\"example\", PolicyArgs.builder()\n            .policyName(name)\n            .policyDocument(\"\"\"\n\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [{\n\\t\\t\\t\\t\\\"Action\\\": [\\\"oss:*\\\"],\n\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\\"Resource\\\": [\\\"acs:oss:*:*:*\\\"]\n\\t\\t\\t}],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n            \"\"\")\n            .build());\n\n        var examplePolicyVersion = new PolicyVersion(\"examplePolicyVersion\", PolicyVersionArgs.builder()\n            .policyName(example.policyName())\n            .policyDocument(\"\"\"\n\\t\\t{\n\\t\\t\\t\\\"Statement\\\": [{\n\\t\\t\\t\\t\\\"Action\\\": [\\\"oss:*\\\"],\n\\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n\\t\\t\\t\\t\\\"Resource\\\": [\\\"acs:oss:*:*:myphotos\\\"]\n\\t\\t\\t}],\n\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t}\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  example:\n    type: alicloud:resourcemanager:Policy\n    properties:\n      policyName: ${name}\n      policyDocument: |\n        \\t\\t{\n        \\t\\t\\t\\\"Statement\\\": [{\n        \\t\\t\\t\\t\\\"Action\\\": [\\\"oss:*\\\"],\n        \\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n        \\t\\t\\t\\t\\\"Resource\\\": [\\\"acs:oss:*:*:*\\\"]\n        \\t\\t\\t}],\n        \\t\\t\\t\\\"Version\\\": \\\"1\\\"\n        \\t\\t}\n  examplePolicyVersion:\n    type: alicloud:resourcemanager:PolicyVersion\n    name: example\n    properties:\n      policyName: ${example.policyName}\n      policyDocument: |\n        \\t\\t{\n        \\t\\t\\t\\\"Statement\\\": [{\n        \\t\\t\\t\\t\\\"Action\\\": [\\\"oss:*\\\"],\n        \\t\\t\\t\\t\\\"Effect\\\": \\\"Allow\\\",\n        \\t\\t\\t\\t\\\"Resource\\\": [\\\"acs:oss:*:*:myphotos\\\"]\n        \\t\\t\\t}],\n        \\t\\t\\t\\\"Version\\\": \\\"1\\\"\n        \\t\\t}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Policy Version can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/policyVersion:PolicyVersion example tftest:v2\n```\n\n","properties":{"isDefaultVersion":{"type":"boolean","description":"Specifies whether to set the policy version as the default version. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","deprecationMessage":"Field 'is_default_version' has been deprecated from provider version 1.90.0"},"policyDocument":{"type":"string","description":"The content of the policy. The content must be 1 to 2,048 characters in length.\n"},"policyName":{"type":"string","description":"The name of the policy. Name must be 1 to 128 characters in length and can contain letters, digits, and hyphens (-).\n"}},"required":["policyDocument","policyName"],"inputProperties":{"isDefaultVersion":{"type":"boolean","description":"Specifies whether to set the policy version as the default version. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","deprecationMessage":"Field 'is_default_version' has been deprecated from provider version 1.90.0"},"policyDocument":{"type":"string","description":"The content of the policy. The content must be 1 to 2,048 characters in length.\n","willReplaceOnChanges":true},"policyName":{"type":"string","description":"The name of the policy. Name must be 1 to 128 characters in length and can contain letters, digits, and hyphens (-).\n","willReplaceOnChanges":true}},"requiredInputs":["policyDocument","policyName"],"stateInputs":{"description":"Input properties used for looking up and filtering PolicyVersion resources.\n","properties":{"isDefaultVersion":{"type":"boolean","description":"Specifies whether to set the policy version as the default version. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","deprecationMessage":"Field 'is_default_version' has been deprecated from provider version 1.90.0"},"policyDocument":{"type":"string","description":"The content of the policy. The content must be 1 to 2,048 characters in length.\n","willReplaceOnChanges":true},"policyName":{"type":"string","description":"The name of the policy. Name must be 1 to 128 characters in length and can contain letters, digits, and hyphens (-).\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:resourcemanager/resourceDirectory:ResourceDirectory":{"description":"Provides a Resource Manager Resource Directory resource.\n\n\n\nFor information about Resource Manager Resource Directory and how to use it, see [What is Resource Directory](https://www.alibabacloud.com/help/en/doc-detail/94475.htm).\n\n\u003e **NOTE:** Available since v1.84.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.resourcemanager.getResourceDirectories({});\nconst defaultResourceDirectory: alicloud.resourcemanager.ResourceDirectory[] = [];\n_default.then(_default =\u003e _default.directories).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultResourceDirectory.push(new alicloud.resourcemanager.ResourceDirectory(`default-${range.value}`, {status: \"Enabled\"}));\n    }\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.get_resource_directories()\ndefault_resource_directory = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_resource_directory.append(alicloud.resourcemanager.ResourceDirectory(f\"default-{range['value']}\", status=\"Enabled\"))\n\nlen(default.directories).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ResourceManager.GetResourceDirectories.Invoke();\n\n    var defaultResourceDirectory = new List\u003cAliCloud.ResourceManager.ResourceDirectory\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c @default.Apply(@default =\u003e @default.Apply(getResourceDirectoriesResult =\u003e getResourceDirectoriesResult.Directories)).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultResourceDirectory.Add(new AliCloud.ResourceManager.ResourceDirectory($\"default-{range.Value}\", new()\n        {\n            Status = \"Enabled\",\n        }));\n    }\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := resourcemanager.GetResourceDirectories(ctx, \u0026resourcemanager.GetResourceDirectoriesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp0 float64\n\t\tif length \u003e 0 {\n\t\t\ttmp0 = 0\n\t\t} else {\n\t\t\ttmp0 = 1\n\t\t}\n\t\tvar defaultResourceDirectory []*resourcemanager.ResourceDirectory\n\t\tfor index := 0; index \u003c float64(len(_default.Directories).ApplyT(func(length int) (float64, error) {\n\t\t\treturn tmp0, nil\n\t\t}).(pulumi.Float64Output)); index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := resourcemanager.NewResourceDirectory(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026resourcemanager.ResourceDirectoryArgs{\n\t\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultResourceDirectory = append(defaultResourceDirectory, __res)\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceDirectoriesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourceDirectory;\nimport com.pulumi.alicloud.resourcemanager.ResourceDirectoryArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ResourcemanagerFunctions.getResourceDirectories(GetResourceDirectoriesArgs.builder()\n            .build());\n\n        for (var i = 0; i \u003c default_.directories().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new ResourceDirectory(\"defaultResourceDirectory-\" + i, ResourceDirectoryArgs.builder()\n                .status(\"Enabled\")\n                .build());\n\n        \n}\n    }\n}\n```\n```yaml\nresources:\n  defaultResourceDirectory:\n    type: alicloud:resourcemanager:ResourceDirectory\n    name: default\n    properties:\n      status: Enabled\n    options: {}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceDirectories\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Resource Directory can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/resourceDirectory:ResourceDirectory example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The time when the resource directory was created\n"},"masterAccountId":{"type":"string","description":"The ID of the master account\n"},"masterAccountName":{"type":"string","description":"The name of the master account\n"},"memberAccountDisplayNameSyncStatus":{"type":"string","description":"The status of the Member Display Name Synchronization feature. Valid values:\n- Enabled\n- Disabled\n"},"memberDeletionStatus":{"type":"string","description":"The status of the member deletion feature. Valid values:\n- Enabled: The feature is enabled. You can call the DeleteAccount operation to delete members of the resource account type.\n- Disabled: The feature is disabled. You cannot delete members of the resource account type.\n"},"rootFolderId":{"type":"string","description":"The ID of the root folder\n"},"status":{"type":"string","description":"ScpStatus\n"}},"required":["createTime","masterAccountId","masterAccountName","memberAccountDisplayNameSyncStatus","memberDeletionStatus","rootFolderId","status"],"inputProperties":{"memberAccountDisplayNameSyncStatus":{"type":"string","description":"The status of the Member Display Name Synchronization feature. Valid values:\n- Enabled\n- Disabled\n"},"memberDeletionStatus":{"type":"string","description":"The status of the member deletion feature. Valid values:\n- Enabled: The feature is enabled. You can call the DeleteAccount operation to delete members of the resource account type.\n- Disabled: The feature is disabled. You cannot delete members of the resource account type.\n"},"status":{"type":"string","description":"ScpStatus\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ResourceDirectory resources.\n","properties":{"createTime":{"type":"string","description":"The time when the resource directory was created\n"},"masterAccountId":{"type":"string","description":"The ID of the master account\n"},"masterAccountName":{"type":"string","description":"The name of the master account\n"},"memberAccountDisplayNameSyncStatus":{"type":"string","description":"The status of the Member Display Name Synchronization feature. Valid values:\n- Enabled\n- Disabled\n"},"memberDeletionStatus":{"type":"string","description":"The status of the member deletion feature. Valid values:\n- Enabled: The feature is enabled. You can call the DeleteAccount operation to delete members of the resource account type.\n- Disabled: The feature is disabled. You cannot delete members of the resource account type.\n"},"rootFolderId":{"type":"string","description":"The ID of the root folder\n"},"status":{"type":"string","description":"ScpStatus\n"}},"type":"object"}},"alicloud:resourcemanager/resourceGroup:ResourceGroup":{"description":"Provides a Resource Manager Resource Group resource. If you need to group cloud resources according to business departments, projects, and other dimensions, you can create resource groups.\n\nFor information about Resource Manager Resource Group and how to use it, see [What is Resource Group](https://www.alibabacloud.com/help/en/resource-management/developer-reference/api-createresourcegroup).\n\n\u003e **NOTE:** Available since v1.82.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst example = new alicloud.resourcemanager.ResourceGroup(\"example\", {\n    resourceGroupName: name,\n    displayName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\nexample = alicloud.resourcemanager.ResourceGroup(\"example\",\n    resource_group_name=name,\n    display_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var example = new AliCloud.ResourceManager.ResourceGroup(\"example\", new()\n    {\n        ResourceGroupName = name,\n        DisplayName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.NewResourceGroup(ctx, \"example\", \u0026resourcemanager.ResourceGroupArgs{\n\t\t\tResourceGroupName: pulumi.String(name),\n\t\t\tDisplayName:       pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourceGroup;\nimport com.pulumi.alicloud.resourcemanager.ResourceGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n            .resourceGroupName(name)\n            .displayName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  example:\n    type: alicloud:resourcemanager:ResourceGroup\n    properties:\n      resourceGroupName: ${name}\n      displayName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Resource Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/resourceGroup:ResourceGroup example \u003cid\u003e\n```\n\n","properties":{"accountId":{"type":"string","description":"The ID of the Alibaba Cloud account to which the resource group belongs.\n"},"displayName":{"type":"string","description":"The display name of the resource group. The name must be 1 to 50 characters in length.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.114.0. New field \u003cspan pulumi-lang-nodejs=\"`resourceGroupName`\" pulumi-lang-dotnet=\"`ResourceGroupName`\" pulumi-lang-go=\"`resourceGroupName`\" pulumi-lang-python=\"`resource_group_name`\" pulumi-lang-yaml=\"`resourceGroupName`\" pulumi-lang-java=\"`resourceGroupName`\"\u003e`resource_group_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.114.0. New field \u003cspan pulumi-lang-nodejs=\"`resourceGroupName`\" pulumi-lang-dotnet=\"`ResourceGroupName`\" pulumi-lang-go=\"`resourceGroupName`\" pulumi-lang-python=\"`resource_group_name`\" pulumi-lang-yaml=\"`resourceGroupName`\" pulumi-lang-java=\"`resourceGroupName`\"\u003e`resource_group_name`\u003c/span\u003e instead."},"regionStatuses":{"type":"array","items":{"$ref":"#/types/alicloud:resourcemanager/ResourceGroupRegionStatus:ResourceGroupRegionStatus"},"description":"The status of the resource group in all regions.\n"},"resourceGroupName":{"type":"string","description":"The unique identifier of the resource group. The identifier must be 3 to 50 characters in length and can contain letters, digits, and hyphens (-). The identifier must start with a letter.\n"},"status":{"type":"string","description":"The status of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["accountId","displayName","name","regionStatuses","resourceGroupName","status"],"inputProperties":{"displayName":{"type":"string","description":"The display name of the resource group. The name must be 1 to 50 characters in length.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.114.0. New field \u003cspan pulumi-lang-nodejs=\"`resourceGroupName`\" pulumi-lang-dotnet=\"`ResourceGroupName`\" pulumi-lang-go=\"`resourceGroupName`\" pulumi-lang-python=\"`resource_group_name`\" pulumi-lang-yaml=\"`resourceGroupName`\" pulumi-lang-java=\"`resourceGroupName`\"\u003e`resource_group_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.114.0. New field \u003cspan pulumi-lang-nodejs=\"`resourceGroupName`\" pulumi-lang-dotnet=\"`ResourceGroupName`\" pulumi-lang-go=\"`resourceGroupName`\" pulumi-lang-python=\"`resource_group_name`\" pulumi-lang-yaml=\"`resourceGroupName`\" pulumi-lang-java=\"`resourceGroupName`\"\u003e`resource_group_name`\u003c/span\u003e instead.","willReplaceOnChanges":true},"resourceGroupName":{"type":"string","description":"The unique identifier of the resource group. The identifier must be 3 to 50 characters in length and can contain letters, digits, and hyphens (-). The identifier must start with a letter.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"requiredInputs":["displayName"],"stateInputs":{"description":"Input properties used for looking up and filtering ResourceGroup resources.\n","properties":{"accountId":{"type":"string","description":"The ID of the Alibaba Cloud account to which the resource group belongs.\n"},"displayName":{"type":"string","description":"The display name of the resource group. The name must be 1 to 50 characters in length.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.114.0. New field \u003cspan pulumi-lang-nodejs=\"`resourceGroupName`\" pulumi-lang-dotnet=\"`ResourceGroupName`\" pulumi-lang-go=\"`resourceGroupName`\" pulumi-lang-python=\"`resource_group_name`\" pulumi-lang-yaml=\"`resourceGroupName`\" pulumi-lang-java=\"`resourceGroupName`\"\u003e`resource_group_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.114.0. New field \u003cspan pulumi-lang-nodejs=\"`resourceGroupName`\" pulumi-lang-dotnet=\"`ResourceGroupName`\" pulumi-lang-go=\"`resourceGroupName`\" pulumi-lang-python=\"`resource_group_name`\" pulumi-lang-yaml=\"`resourceGroupName`\" pulumi-lang-java=\"`resourceGroupName`\"\u003e`resource_group_name`\u003c/span\u003e instead.","willReplaceOnChanges":true},"regionStatuses":{"type":"array","items":{"$ref":"#/types/alicloud:resourcemanager/ResourceGroupRegionStatus:ResourceGroupRegionStatus"},"description":"The status of the resource group in all regions.\n"},"resourceGroupName":{"type":"string","description":"The unique identifier of the resource group. The identifier must be 3 to 50 characters in length and can contain letters, digits, and hyphens (-). The identifier must start with a letter.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:resourcemanager/resourceShare:ResourceShare":{"description":"Provides a Resource Manager Resource Share resource.\n\nRS resource sharing.\n\nFor information about Resource Manager Resource Share and how to use it, see [What is Resource Share](https://www.alibabacloud.com/help/en/doc-detail/94475.htm).\n\n\u003e **NOTE:** Available since v1.111.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst example = new alicloud.resourcemanager.ResourceShare(\"example\", {resourceShareName: name});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nexample = alicloud.resourcemanager.ResourceShare(\"example\", resource_share_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var example = new AliCloud.ResourceManager.ResourceShare(\"example\", new()\n    {\n        ResourceShareName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.NewResourceShare(ctx, \"example\", \u0026resourcemanager.ResourceShareArgs{\n\t\t\tResourceShareName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourceShare;\nimport com.pulumi.alicloud.resourcemanager.ResourceShareArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var example = new ResourceShare(\"example\", ResourceShareArgs.builder()\n            .resourceShareName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  example:\n    type: alicloud:resourcemanager:ResourceShare\n    properties:\n      resourceShareName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Resource Share can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/resourceShare:ResourceShare example \u003cid\u003e\n```\n\n","properties":{"allowExternalTargets":{"type":"boolean","description":"Whether to allow sharing to accounts outside the resource directory. Value:\n- false (default): Only sharing within the resource directory is allowed.\n- true: Allow sharing to any account.\n"},"createTime":{"type":"string","description":"The create time of resource share.\n"},"permissionNames":{"type":"array","items":{"type":"string"},"description":"Share permission name. When it is empty, the system automatically binds the default permissions associated with the resource type. For more information, see [Permission Library](https://www.alibabacloud.com/help/en/resource-management/resource-sharing/user-guide/permissions-for-resource-sharing).\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"resourceArns":{"type":"array","items":{"type":"string"},"description":"ResourceArns\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"resourceShareName":{"type":"string","description":"The name of resource share.\n"},"resourceShareOwner":{"type":"string","description":"The owner of resource share,  `Self` and `OtherAccounts`.\n"},"resources":{"type":"array","items":{"$ref":"#/types/alicloud:resourcemanager/ResourceShareResource:ResourceShareResource"},"description":"List of shared resources. See \u003cspan pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\"\u003e`resources`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"status":{"type":"string","description":"The status of resource share.  `Active`,`Deleted` and `Deleting`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"targets":{"type":"array","items":{"type":"string"},"description":"Resource user.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"}},"required":["createTime","resourceGroupId","resourceShareName","resourceShareOwner","status"],"inputProperties":{"allowExternalTargets":{"type":"boolean","description":"Whether to allow sharing to accounts outside the resource directory. Value:\n- false (default): Only sharing within the resource directory is allowed.\n- true: Allow sharing to any account.\n"},"permissionNames":{"type":"array","items":{"type":"string"},"description":"Share permission name. When it is empty, the system automatically binds the default permissions associated with the resource type. For more information, see [Permission Library](https://www.alibabacloud.com/help/en/resource-management/resource-sharing/user-guide/permissions-for-resource-sharing).\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"resourceArns":{"type":"array","items":{"type":"string"},"description":"ResourceArns\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"resourceShareName":{"type":"string","description":"The name of resource share.\n"},"resources":{"type":"array","items":{"$ref":"#/types/alicloud:resourcemanager/ResourceShareResource:ResourceShareResource"},"description":"List of shared resources. See \u003cspan pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\"\u003e`resources`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"targets":{"type":"array","items":{"type":"string"},"description":"Resource user.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"}},"requiredInputs":["resourceShareName"],"stateInputs":{"description":"Input properties used for looking up and filtering ResourceShare resources.\n","properties":{"allowExternalTargets":{"type":"boolean","description":"Whether to allow sharing to accounts outside the resource directory. Value:\n- false (default): Only sharing within the resource directory is allowed.\n- true: Allow sharing to any account.\n"},"createTime":{"type":"string","description":"The create time of resource share.\n"},"permissionNames":{"type":"array","items":{"type":"string"},"description":"Share permission name. When it is empty, the system automatically binds the default permissions associated with the resource type. For more information, see [Permission Library](https://www.alibabacloud.com/help/en/resource-management/resource-sharing/user-guide/permissions-for-resource-sharing).\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"resourceArns":{"type":"array","items":{"type":"string"},"description":"ResourceArns\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"resourceShareName":{"type":"string","description":"The name of resource share.\n"},"resourceShareOwner":{"type":"string","description":"The owner of resource share,  `Self` and `OtherAccounts`.\n"},"resources":{"type":"array","items":{"$ref":"#/types/alicloud:resourcemanager/ResourceShareResource:ResourceShareResource"},"description":"List of shared resources. See \u003cspan pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\"\u003e`resources`\u003c/span\u003e below.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"status":{"type":"string","description":"The status of resource share.  `Active`,`Deleted` and `Deleting`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"targets":{"type":"array","items":{"type":"string"},"description":"Resource user.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"}},"type":"object"}},"alicloud:resourcemanager/role:Role":{"description":"Provides a Resource Manager role resource. Members are resource containers in the resource directory, which can physically isolate resources to form an independent resource grouping unit. You can create members in the resource folder to manage them in a unified manner.\nFor information about Resource Manager role and how to use it, see [What is Resource Manager role](https://www.alibabacloud.com/help/en/doc-detail/111231.htm).\n\n\u003e **NOTE:** Available since v1.82.0.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst _default = alicloud.getAccount({});\nconst example = new alicloud.resourcemanager.Role(\"example\", {\n    roleName: name,\n    assumeRolePolicyDocument: _default.then(_default =\u003e `     {\n          \\\"Statement\\\": [\n               {\n                    \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                    \\\"Effect\\\": \\\"Allow\\\",\n                    \\\"Principal\\\": {\n                        \\\"RAM\\\":[\n                                \\\"acs:ram::${_default.id}:root\\\"\n                        ]\n                    }\n                }\n          ],\n          \\\"Version\\\": \\\"1\\\"\n     }\n`),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\ndefault = alicloud.get_account()\nexample = alicloud.resourcemanager.Role(\"example\",\n    role_name=name,\n    assume_role_policy_document=f\"\"\"     {{\n          \\\"Statement\\\": [\n               {{\n                    \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                    \\\"Effect\\\": \\\"Allow\\\",\n                    \\\"Principal\\\": {{\n                        \\\"RAM\\\":[\n                                \\\"acs:ram::{default.id}:root\\\"\n                        ]\n                    }}\n                }}\n          ],\n          \\\"Version\\\": \\\"1\\\"\n     }}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var example = new AliCloud.ResourceManager.Role(\"example\", new()\n    {\n        RoleName = name,\n        AssumeRolePolicyDocument = @default.Apply(@default =\u003e @$\"     {{\n          \\\"\"Statement\\\"\": [\n               {{\n                    \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n                    \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n                    \\\"\"Principal\\\"\": {{\n                        \\\"\"RAM\\\"\":[\n                                \\\"\"acs:ram::{@default.Apply(getAccountResult =\u003e getAccountResult.Id)}:root\\\"\"\n                        ]\n                    }}\n                }}\n          ],\n          \\\"\"Version\\\"\": \\\"\"1\\\"\"\n     }}\n\"),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.NewRole(ctx, \"example\", \u0026resourcemanager.RoleArgs{\n\t\t\tRoleName: pulumi.String(name),\n\t\t\tAssumeRolePolicyDocument: pulumi.Sprintf(`     {\n          \\\"Statement\\\": [\n               {\n                    \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                    \\\"Effect\\\": \\\"Allow\\\",\n                    \\\"Principal\\\": {\n                        \\\"RAM\\\":[\n                                \\\"acs:ram::%v:root\\\"\n                        ]\n                    }\n                }\n          ],\n          \\\"Version\\\": \\\"1\\\"\n     }\n`, _default.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.resourcemanager.Role;\nimport com.pulumi.alicloud.resourcemanager.RoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var example = new Role(\"example\", RoleArgs.builder()\n            .roleName(name)\n            .assumeRolePolicyDocument(\"\"\"\n     {\n          \\\"Statement\\\": [\n               {\n                    \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                    \\\"Effect\\\": \\\"Allow\\\",\n                    \\\"Principal\\\": {\n                        \\\"RAM\\\":[\n                                \\\"acs:ram::%s:root\\\"\n                        ]\n                    }\n                }\n          ],\n          \\\"Version\\\": \\\"1\\\"\n     }\n\", default_.id()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  example:\n    type: alicloud:resourcemanager:Role\n    properties:\n      roleName: ${name}\n      assumeRolePolicyDocument: |2\n             {\n                  \\\"Statement\\\": [\n                       {\n                            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                            \\\"Effect\\\": \\\"Allow\\\",\n                            \\\"Principal\\\": {\n                                \\\"RAM\\\":[\n                                        \\\"acs:ram::${default.id}:root\\\"\n                                ]\n                            }\n                        }\n                  ],\n                  \\\"Version\\\": \\\"1\\\"\n             }\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager can be imported using the id or role_name, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/role:Role example testrd\n```\n\n","properties":{"arn":{"type":"string","description":"The resource descriptor of the role.\n"},"assumeRolePolicyDocument":{"type":"string","description":"The content of the permissions strategy that plays a role.\n"},"description":{"type":"string","description":"The description of the Resource Manager role.\n"},"maxSessionDuration":{"type":"integer","description":"Role maximum session time. Valid values: [3600-43200]. Default to \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e.\n"},"roleId":{"type":"string","description":"This ID of Resource Manager role. The value is set to \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e.\n"},"roleName":{"type":"string","description":"Role Name. The length is 1 ~ 64 characters, which can include English letters, numbers, dots \".\" and dashes \"-\".\n"},"updateDate":{"type":"string","description":"Role update time.\n"}},"required":["arn","assumeRolePolicyDocument","roleId","roleName","updateDate"],"inputProperties":{"assumeRolePolicyDocument":{"type":"string","description":"The content of the permissions strategy that plays a role.\n"},"description":{"type":"string","description":"The description of the Resource Manager role.\n","willReplaceOnChanges":true},"maxSessionDuration":{"type":"integer","description":"Role maximum session time. Valid values: [3600-43200]. Default to \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e.\n"},"roleName":{"type":"string","description":"Role Name. The length is 1 ~ 64 characters, which can include English letters, numbers, dots \".\" and dashes \"-\".\n","willReplaceOnChanges":true}},"requiredInputs":["assumeRolePolicyDocument","roleName"],"stateInputs":{"description":"Input properties used for looking up and filtering Role resources.\n","properties":{"arn":{"type":"string","description":"The resource descriptor of the role.\n"},"assumeRolePolicyDocument":{"type":"string","description":"The content of the permissions strategy that plays a role.\n"},"description":{"type":"string","description":"The description of the Resource Manager role.\n","willReplaceOnChanges":true},"maxSessionDuration":{"type":"integer","description":"Role maximum session time. Valid values: [3600-43200]. Default to \u003cspan pulumi-lang-nodejs=\"`3600`\" pulumi-lang-dotnet=\"`3600`\" pulumi-lang-go=\"`3600`\" pulumi-lang-python=\"`3600`\" pulumi-lang-yaml=\"`3600`\" pulumi-lang-java=\"`3600`\"\u003e`3600`\u003c/span\u003e.\n"},"roleId":{"type":"string","description":"This ID of Resource Manager role. The value is set to \u003cspan pulumi-lang-nodejs=\"`roleName`\" pulumi-lang-dotnet=\"`RoleName`\" pulumi-lang-go=\"`roleName`\" pulumi-lang-python=\"`role_name`\" pulumi-lang-yaml=\"`roleName`\" pulumi-lang-java=\"`roleName`\"\u003e`role_name`\u003c/span\u003e.\n"},"roleName":{"type":"string","description":"Role Name. The length is 1 ~ 64 characters, which can include English letters, numbers, dots \".\" and dashes \"-\".\n","willReplaceOnChanges":true},"updateDate":{"type":"string","description":"Role update time.\n"}},"type":"object"}},"alicloud:resourcemanager/savedQuery:SavedQuery":{"description":"Provides a Resource Manager Saved Query resource. ResourceCenter Saved Query.\n\nFor information about Resource Manager Saved Query and how to use it, see [What is Saved Query](https://www.alibabacloud.com/help/zh/resource-management/developer-reference/api-resourcecenter-2022-12-01-createsavedquery).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.resourcemanager.SavedQuery(\"default\", {\n    description: name,\n    expression: \"select * from resources limit 1;\",\n    savedQueryName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.SavedQuery(\"default\",\n    description=name,\n    expression=\"select * from resources limit 1;\",\n    saved_query_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ResourceManager.SavedQuery(\"default\", new()\n    {\n        Description = name,\n        Expression = \"select * from resources limit 1;\",\n        SavedQueryName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.NewSavedQuery(ctx, \"default\", \u0026resourcemanager.SavedQueryArgs{\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tExpression:     pulumi.String(\"select * from resources limit 1;\"),\n\t\t\tSavedQueryName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.SavedQuery;\nimport com.pulumi.alicloud.resourcemanager.SavedQueryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new SavedQuery(\"default\", SavedQueryArgs.builder()\n            .description(name)\n            .expression(\"select * from resources limit 1;\")\n            .savedQueryName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:resourcemanager:SavedQuery\n    properties:\n      description: ${name}\n      expression: select * from resources limit 1;\n      savedQueryName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Saved Query can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/savedQuery:SavedQuery example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"description":{"type":"string","description":"Query Description.\n"},"expression":{"type":"string","description":"Query Expression.\n"},"savedQueryName":{"type":"string","description":"The name of the resource.\n"}},"required":["createTime","expression","savedQueryName"],"inputProperties":{"description":{"type":"string","description":"Query Description.\n"},"expression":{"type":"string","description":"Query Expression.\n"},"savedQueryName":{"type":"string","description":"The name of the resource.\n"}},"requiredInputs":["expression","savedQueryName"],"stateInputs":{"description":"Input properties used for looking up and filtering SavedQuery resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"description":{"type":"string","description":"Query Description.\n"},"expression":{"type":"string","description":"Query Expression.\n"},"savedQueryName":{"type":"string","description":"The name of the resource.\n"}},"type":"object"}},"alicloud:resourcemanager/serviceLinkedRole:ServiceLinkedRole":{"description":"Provides a Resource Manager Service Linked Role.\n\nFor information about Resource Manager Service Linked Role and how to use it, see [What is Service Linked Role.](https://www.alibabacloud.com/help/en/doc-detail/171226.htm).\n\n\u003e **NOTE:** Available since v1.157.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.resourcemanager.ServiceLinkedRole(\"default\", {serviceName: \"ops.elasticsearch.aliyuncs.com\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.ServiceLinkedRole(\"default\", service_name=\"ops.elasticsearch.aliyuncs.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.ResourceManager.ServiceLinkedRole(\"default\", new()\n    {\n        ServiceName = \"ops.elasticsearch.aliyuncs.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := resourcemanager.NewServiceLinkedRole(ctx, \"default\", \u0026resourcemanager.ServiceLinkedRoleArgs{\n\t\t\tServiceName: pulumi.String(\"ops.elasticsearch.aliyuncs.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ServiceLinkedRole;\nimport com.pulumi.alicloud.resourcemanager.ServiceLinkedRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new ServiceLinkedRole(\"default\", ServiceLinkedRoleArgs.builder()\n            .serviceName(\"ops.elasticsearch.aliyuncs.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:resourcemanager:ServiceLinkedRole\n    properties:\n      serviceName: ops.elasticsearch.aliyuncs.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Service Linked Role can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/serviceLinkedRole:ServiceLinkedRole default \u003cservice_name\u003e:\u003crole_name\u003e\n```\n\n","properties":{"arn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the role.\n"},"customSuffix":{"type":"string","description":"The suffix of the role name. Only a few service linked roles support custom suffixes. The role name (including its suffix) must be 1 to 64 characters in length and can contain letters, digits, periods (.), and hyphens (-). For example, if the suffix is Example, the role name is ServiceLinkedRoleName_Example.\n"},"description":{"type":"string","description":"The description of the service linked role.  This parameter must be specified for only the service linked roles that support custom suffixes. Otherwise, the preset value is used and cannot be modified. The description must be 1 to 1,024 characters in length.\n"},"roleId":{"type":"string","description":"The ID of the role.\n"},"roleName":{"type":"string","description":"The name of the role.\n"},"serviceName":{"type":"string","description":"The service name. For more information about the service name, see [Cloud services that support service linked roles](https://www.alibabacloud.com/help/en/doc-detail/160674.htm)\n"}},"required":["arn","roleId","roleName","serviceName"],"inputProperties":{"customSuffix":{"type":"string","description":"The suffix of the role name. Only a few service linked roles support custom suffixes. The role name (including its suffix) must be 1 to 64 characters in length and can contain letters, digits, periods (.), and hyphens (-). For example, if the suffix is Example, the role name is ServiceLinkedRoleName_Example.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the service linked role.  This parameter must be specified for only the service linked roles that support custom suffixes. Otherwise, the preset value is used and cannot be modified. The description must be 1 to 1,024 characters in length.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The service name. For more information about the service name, see [Cloud services that support service linked roles](https://www.alibabacloud.com/help/en/doc-detail/160674.htm)\n","willReplaceOnChanges":true}},"requiredInputs":["serviceName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceLinkedRole resources.\n","properties":{"arn":{"type":"string","description":"The Alibaba Cloud Resource Name (ARN) of the role.\n"},"customSuffix":{"type":"string","description":"The suffix of the role name. Only a few service linked roles support custom suffixes. The role name (including its suffix) must be 1 to 64 characters in length and can contain letters, digits, periods (.), and hyphens (-). For example, if the suffix is Example, the role name is ServiceLinkedRoleName_Example.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the service linked role.  This parameter must be specified for only the service linked roles that support custom suffixes. Otherwise, the preset value is used and cannot be modified. The description must be 1 to 1,024 characters in length.\n","willReplaceOnChanges":true},"roleId":{"type":"string","description":"The ID of the role.\n"},"roleName":{"type":"string","description":"The name of the role.\n"},"serviceName":{"type":"string","description":"The service name. For more information about the service name, see [Cloud services that support service linked roles](https://www.alibabacloud.com/help/en/doc-detail/160674.htm)\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:resourcemanager/sharedResource:SharedResource":{"description":"Provides a Resource Manager Shared Resource resource.\n\n\n\nFor information about Resource Manager Shared Resource and how to use it, see [What is Shared Resource](https://www.alibabacloud.com/help/en/resource-management/latest/api-resourcesharing-2020-01-10-associateresourceshare).\n\n\u003e **NOTE:** Available since v1.111.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: `${name}-${defaultInteger.result}`,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    cidrBlock: \"192.168.0.0/16\",\n    vpcId: defaultNetwork.id,\n    vswitchName: `${name}-${defaultInteger.result}`,\n});\nconst defaultResourceShare = new alicloud.resourcemanager.ResourceShare(\"default\", {resourceShareName: `${name}-${defaultInteger.result}`});\nconst defaultSharedResource = new alicloud.resourcemanager.SharedResource(\"default\", {\n    resourceShareId: defaultResourceShare.id,\n    resourceId: defaultSwitch.id,\n    resourceType: \"VSwitch\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=f\"{name}-{default_integer['result']}\",\n    cidr_block=\"192.168.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    zone_id=default.zones[0].id,\n    cidr_block=\"192.168.0.0/16\",\n    vpc_id=default_network.id,\n    vswitch_name=f\"{name}-{default_integer['result']}\")\ndefault_resource_share = alicloud.resourcemanager.ResourceShare(\"default\", resource_share_name=f\"{name}-{default_integer['result']}\")\ndefault_shared_resource = alicloud.resourcemanager.SharedResource(\"default\",\n    resource_share_id=default_resource_share.id,\n    resource_id=default_switch.id,\n    resource_type=\"VSwitch\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = $\"{name}-{defaultInteger.Result}\",\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        CidrBlock = \"192.168.0.0/16\",\n        VpcId = defaultNetwork.Id,\n        VswitchName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultResourceShare = new AliCloud.ResourceManager.ResourceShare(\"default\", new()\n    {\n        ResourceShareName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultSharedResource = new AliCloud.ResourceManager.SharedResource(\"default\", new()\n    {\n        ResourceShareId = defaultResourceShare.Id,\n        ResourceId = defaultSwitch.Id,\n        ResourceType = \"VSwitch\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.0.0/16\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tVswitchName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultResourceShare, err := resourcemanager.NewResourceShare(ctx, \"default\", \u0026resourcemanager.ResourceShareArgs{\n\t\t\tResourceShareName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.NewSharedResource(ctx, \"default\", \u0026resourcemanager.SharedResourceArgs{\n\t\t\tResourceShareId: defaultResourceShare.ID(),\n\t\t\tResourceId:      defaultSwitch.ID(),\n\t\t\tResourceType:    pulumi.String(\"VSwitch\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourceShare;\nimport com.pulumi.alicloud.resourcemanager.ResourceShareArgs;\nimport com.pulumi.alicloud.resourcemanager.SharedResource;\nimport com.pulumi.alicloud.resourcemanager.SharedResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .zoneId(default_.zones()[0].id())\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcId(defaultNetwork.id())\n            .vswitchName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultResourceShare = new ResourceShare(\"defaultResourceShare\", ResourceShareArgs.builder()\n            .resourceShareName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultSharedResource = new SharedResource(\"defaultSharedResource\", SharedResourceArgs.builder()\n            .resourceShareId(defaultResourceShare.id())\n            .resourceId(defaultSwitch.id())\n            .resourceType(\"VSwitch\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}-${defaultInteger.result}\n      cidrBlock: 192.168.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      zoneId: ${default.zones[0].id}\n      cidrBlock: 192.168.0.0/16\n      vpcId: ${defaultNetwork.id}\n      vswitchName: ${name}-${defaultInteger.result}\n  defaultResourceShare:\n    type: alicloud:resourcemanager:ResourceShare\n    name: default\n    properties:\n      resourceShareName: ${name}-${defaultInteger.result}\n  defaultSharedResource:\n    type: alicloud:resourcemanager:SharedResource\n    name: default\n    properties:\n      resourceShareId: ${defaultResourceShare.id}\n      resourceId: ${defaultSwitch.id}\n      resourceType: VSwitch\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Shared Resource can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/sharedResource:SharedResource example \u003cresource_share_id\u003e:\u003cresource_id\u003e:\u003cresource_type\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The time when the shared resource was associated with the resource share.\n"},"permissionName":{"type":"string","description":"The name of a permission. If you do not configure this parameter, the system automatically associates the default permission for the specified resource type with the resource share.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"resourceArn":{"type":"string","description":"Associated resource ARN.\n\n\u003e **NOTE:**  This parameter is not available when the association type 'AssociationType' is the resource consumer 'Target'.\n"},"resourceId":{"type":"string","description":"The ID of the shared resource.\n"},"resourceShareId":{"type":"string","description":"The ID of the resource share.\n"},"resourceType":{"type":"string","description":"The type of the shared resource.\n"},"status":{"type":"string","description":"The association status.\n"}},"required":["createTime","resourceArn","resourceId","resourceShareId","resourceType","status"],"inputProperties":{"permissionName":{"type":"string","description":"The name of a permission. If you do not configure this parameter, the system automatically associates the default permission for the specified resource type with the resource share.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"resourceArn":{"type":"string","description":"Associated resource ARN.\n\n\u003e **NOTE:**  This parameter is not available when the association type 'AssociationType' is the resource consumer 'Target'.\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"The ID of the shared resource.\n","willReplaceOnChanges":true},"resourceShareId":{"type":"string","description":"The ID of the resource share.\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"The type of the shared resource.\n","willReplaceOnChanges":true}},"requiredInputs":["resourceShareId"],"stateInputs":{"description":"Input properties used for looking up and filtering SharedResource resources.\n","properties":{"createTime":{"type":"string","description":"The time when the shared resource was associated with the resource share.\n"},"permissionName":{"type":"string","description":"The name of a permission. If you do not configure this parameter, the system automatically associates the default permission for the specified resource type with the resource share.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"resourceArn":{"type":"string","description":"Associated resource ARN.\n\n\u003e **NOTE:**  This parameter is not available when the association type 'AssociationType' is the resource consumer 'Target'.\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"The ID of the shared resource.\n","willReplaceOnChanges":true},"resourceShareId":{"type":"string","description":"The ID of the resource share.\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"The type of the shared resource.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The association status.\n"}},"type":"object"}},"alicloud:resourcemanager/sharedTarget:SharedTarget":{"description":"Provides a Resource Manager Shared Target resource.\n\n\n\nFor information about Resource Manager Shared Target and how to use it, see [What is Shared Target](https://www.alibabacloud.com/help/en/resource-management/resource-sharing/developer-reference/api-resourcesharing-2020-01-10-associateresourceshare).\n\n\u003e **NOTE:** Available since v1.111.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getAccounts({});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultResourceShare = new alicloud.resourcemanager.ResourceShare(\"default\", {resourceShareName: `${name}-${defaultInteger.result}`});\nconst defaultSharedTarget = new alicloud.resourcemanager.SharedTarget(\"default\", {\n    resourceShareId: defaultResourceShare.id,\n    targetId: _default.then(_default =\u003e _default.ids?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_accounts()\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_resource_share = alicloud.resourcemanager.ResourceShare(\"default\", resource_share_name=f\"{name}-{default_integer['result']}\")\ndefault_shared_target = alicloud.resourcemanager.SharedTarget(\"default\",\n    resource_share_id=default_resource_share.id,\n    target_id=default.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetAccounts.Invoke();\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultResourceShare = new AliCloud.ResourceManager.ResourceShare(\"default\", new()\n    {\n        ResourceShareName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultSharedTarget = new AliCloud.ResourceManager.SharedTarget(\"default\", new()\n    {\n        ResourceShareId = defaultResourceShare.Id,\n        TargetId = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Ids[0])),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetAccounts(ctx, \u0026resourcemanager.GetAccountsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultResourceShare, err := resourcemanager.NewResourceShare(ctx, \"default\", \u0026resourcemanager.ResourceShareArgs{\n\t\t\tResourceShareName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.NewSharedTarget(ctx, \"default\", \u0026resourcemanager.SharedTargetArgs{\n\t\t\tResourceShareId: defaultResourceShare.ID(),\n\t\t\tTargetId:        pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetAccountsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourceShare;\nimport com.pulumi.alicloud.resourcemanager.ResourceShareArgs;\nimport com.pulumi.alicloud.resourcemanager.SharedTarget;\nimport com.pulumi.alicloud.resourcemanager.SharedTargetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getAccounts(GetAccountsArgs.builder()\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultResourceShare = new ResourceShare(\"defaultResourceShare\", ResourceShareArgs.builder()\n            .resourceShareName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultSharedTarget = new SharedTarget(\"defaultSharedTarget\", SharedTargetArgs.builder()\n            .resourceShareId(defaultResourceShare.id())\n            .targetId(default_.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultResourceShare:\n    type: alicloud:resourcemanager:ResourceShare\n    name: default\n    properties:\n      resourceShareName: ${name}-${defaultInteger.result}\n  defaultSharedTarget:\n    type: alicloud:resourcemanager:SharedTarget\n    name: default\n    properties:\n      resourceShareId: ${defaultResourceShare.id}\n      targetId: ${default.ids[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getAccounts\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nResource Manager Shared Target can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:resourcemanager/sharedTarget:SharedTarget example \u003cresource_share_id\u003e:\u003ctarget_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"(Available since v1.259.0) The time when the association of the entity was created.\n"},"resourceShareId":{"type":"string","description":"The ID of the resource share.\n"},"status":{"type":"string","description":"The status of shared target.\n"},"targetId":{"type":"string","description":"The ID of the principal.\n"}},"required":["createTime","resourceShareId","status","targetId"],"inputProperties":{"resourceShareId":{"type":"string","description":"The ID of the resource share.\n","willReplaceOnChanges":true},"targetId":{"type":"string","description":"The ID of the principal.\n","willReplaceOnChanges":true}},"requiredInputs":["resourceShareId","targetId"],"stateInputs":{"description":"Input properties used for looking up and filtering SharedTarget resources.\n","properties":{"createTime":{"type":"string","description":"(Available since v1.259.0) The time when the association of the entity was created.\n"},"resourceShareId":{"type":"string","description":"The ID of the resource share.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of shared target.\n"},"targetId":{"type":"string","description":"The ID of the principal.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rocketmq/account:Account":{"description":"Provides a RocketMQ Account resource.\n\n\n\nFor information about RocketMQ Account and how to use it, see [What is Account](https://www.alibabacloud.com/help/en/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/developer-reference/api-rocketmq-2022-08-01-createinstanceaccount).\n\n\u003e **NOTE:** Available since v1.245.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultg6ZXs2 = new alicloud.vpc.Network(\"defaultg6ZXs2\", {\n    description: \"111\",\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: \"pop-example-vpc\",\n});\nconst defaultvMQbCy = new alicloud.vpc.Switch(\"defaultvMQbCy\", {\n    vpcId: defaultg6ZXs2.id,\n    zoneId: \"cn-hangzhou-j\",\n    cidrBlock: \"192.168.0.0/24\",\n    vswitchName: \"pop-example-vswitch\",\n});\nconst default9hAb83 = new alicloud.rocketmq.RocketMQInstance(\"default9hAb83\", {\n    productInfo: {\n        msgProcessSpec: \"rmq.p2.4xlarge\",\n        sendReceiveRatio: 0.3,\n        messageRetentionTime: 70,\n    },\n    serviceCode: \"rmq\",\n    seriesCode: \"professional\",\n    paymentType: \"PayAsYouGo\",\n    instanceName: name,\n    subSeriesCode: \"cluster_ha\",\n    remark: \"example\",\n    software: {\n        maintainTime: \"02:00-06:00\",\n    },\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    networkInfo: {\n        vpcInfo: {\n            vpcId: defaultg6ZXs2.id,\n            vswitches: [{\n                vswitchId: defaultvMQbCy.id,\n            }],\n        },\n        internetInfo: {\n            internetSpec: \"enable\",\n            flowOutType: \"payByBandwidth\",\n            flowOutBandwidth: 30,\n        },\n    },\n    aclInfo: {\n        defaultVpcAuthFree: false,\n        aclTypes: [\n            \"default\",\n            \"apache_acl\",\n        ],\n    },\n});\nconst _default = new alicloud.rocketmq.Account(\"default\", {\n    accountStatus: \"ENABLE\",\n    instanceId: default9hAb83.id,\n    username: \"tfexample\",\n    password: \"1741835136\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaultg6_zxs2 = alicloud.vpc.Network(\"defaultg6ZXs2\",\n    description=\"111\",\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=\"pop-example-vpc\")\ndefaultv_m_qb_cy = alicloud.vpc.Switch(\"defaultvMQbCy\",\n    vpc_id=defaultg6_zxs2.id,\n    zone_id=\"cn-hangzhou-j\",\n    cidr_block=\"192.168.0.0/24\",\n    vswitch_name=\"pop-example-vswitch\")\ndefault9h_ab83 = alicloud.rocketmq.RocketMQInstance(\"default9hAb83\",\n    product_info={\n        \"msg_process_spec\": \"rmq.p2.4xlarge\",\n        \"send_receive_ratio\": 0.3,\n        \"message_retention_time\": 70,\n    },\n    service_code=\"rmq\",\n    series_code=\"professional\",\n    payment_type=\"PayAsYouGo\",\n    instance_name=name,\n    sub_series_code=\"cluster_ha\",\n    remark=\"example\",\n    software={\n        \"maintain_time\": \"02:00-06:00\",\n    },\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    network_info={\n        \"vpc_info\": {\n            \"vpc_id\": defaultg6_zxs2.id,\n            \"vswitches\": [{\n                \"vswitch_id\": defaultv_m_qb_cy.id,\n            }],\n        },\n        \"internet_info\": {\n            \"internet_spec\": \"enable\",\n            \"flow_out_type\": \"payByBandwidth\",\n            \"flow_out_bandwidth\": 30,\n        },\n    },\n    acl_info={\n        \"default_vpc_auth_free\": False,\n        \"acl_types\": [\n            \"default\",\n            \"apache_acl\",\n        ],\n    })\ndefault = alicloud.rocketmq.Account(\"default\",\n    account_status=\"ENABLE\",\n    instance_id=default9h_ab83.id,\n    username=\"tfexample\",\n    password=\"1741835136\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultg6ZXs2 = new AliCloud.Vpc.Network(\"defaultg6ZXs2\", new()\n    {\n        Description = \"111\",\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = \"pop-example-vpc\",\n    });\n\n    var defaultvMQbCy = new AliCloud.Vpc.Switch(\"defaultvMQbCy\", new()\n    {\n        VpcId = defaultg6ZXs2.Id,\n        ZoneId = \"cn-hangzhou-j\",\n        CidrBlock = \"192.168.0.0/24\",\n        VswitchName = \"pop-example-vswitch\",\n    });\n\n    var default9hAb83 = new AliCloud.RocketMQ.RocketMQInstance(\"default9hAb83\", new()\n    {\n        ProductInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceProductInfoArgs\n        {\n            MsgProcessSpec = \"rmq.p2.4xlarge\",\n            SendReceiveRatio = 0.3,\n            MessageRetentionTime = 70,\n        },\n        ServiceCode = \"rmq\",\n        SeriesCode = \"professional\",\n        PaymentType = \"PayAsYouGo\",\n        InstanceName = name,\n        SubSeriesCode = \"cluster_ha\",\n        Remark = \"example\",\n        Software = new AliCloud.RocketMQ.Inputs.RocketMQInstanceSoftwareArgs\n        {\n            MaintainTime = \"02:00-06:00\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        NetworkInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoArgs\n        {\n            VpcInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoVpcInfoArgs\n            {\n                VpcId = defaultg6ZXs2.Id,\n                Vswitches = new[]\n                {\n                    new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoVpcInfoVswitchArgs\n                    {\n                        VswitchId = defaultvMQbCy.Id,\n                    },\n                },\n            },\n            InternetInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoInternetInfoArgs\n            {\n                InternetSpec = \"enable\",\n                FlowOutType = \"payByBandwidth\",\n                FlowOutBandwidth = 30,\n            },\n        },\n        AclInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceAclInfoArgs\n        {\n            DefaultVpcAuthFree = false,\n            AclTypes = new[]\n            {\n                \"default\",\n                \"apache_acl\",\n            },\n        },\n    });\n\n    var @default = new AliCloud.RocketMQ.Account(\"default\", new()\n    {\n        AccountStatus = \"ENABLE\",\n        InstanceId = default9hAb83.Id,\n        Username = \"tfexample\",\n        Password = \"1741835136\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rocketmq\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultg6ZXs2, err := vpc.NewNetwork(ctx, \"defaultg6ZXs2\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(\"111\"),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.0.0/16\"),\n\t\t\tVpcName:     pulumi.String(\"pop-example-vpc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultvMQbCy, err := vpc.NewSwitch(ctx, \"defaultvMQbCy\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultg6ZXs2.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-j\"),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"pop-example-vswitch\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault9hAb83, err := rocketmq.NewRocketMQInstance(ctx, \"default9hAb83\", \u0026rocketmq.RocketMQInstanceArgs{\n\t\t\tProductInfo: \u0026rocketmq.RocketMQInstanceProductInfoArgs{\n\t\t\t\tMsgProcessSpec:       pulumi.String(\"rmq.p2.4xlarge\"),\n\t\t\t\tSendReceiveRatio:     pulumi.Float64(0.3),\n\t\t\t\tMessageRetentionTime: pulumi.Int(70),\n\t\t\t},\n\t\t\tServiceCode:   pulumi.String(\"rmq\"),\n\t\t\tSeriesCode:    pulumi.String(\"professional\"),\n\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\tInstanceName:  pulumi.String(name),\n\t\t\tSubSeriesCode: pulumi.String(\"cluster_ha\"),\n\t\t\tRemark:        pulumi.String(\"example\"),\n\t\t\tSoftware: \u0026rocketmq.RocketMQInstanceSoftwareArgs{\n\t\t\t\tMaintainTime: pulumi.String(\"02:00-06:00\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tNetworkInfo: \u0026rocketmq.RocketMQInstanceNetworkInfoArgs{\n\t\t\t\tVpcInfo: \u0026rocketmq.RocketMQInstanceNetworkInfoVpcInfoArgs{\n\t\t\t\t\tVpcId: defaultg6ZXs2.ID(),\n\t\t\t\t\tVswitches: rocketmq.RocketMQInstanceNetworkInfoVpcInfoVswitchArray{\n\t\t\t\t\t\t\u0026rocketmq.RocketMQInstanceNetworkInfoVpcInfoVswitchArgs{\n\t\t\t\t\t\t\tVswitchId: defaultvMQbCy.ID(),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tInternetInfo: \u0026rocketmq.RocketMQInstanceNetworkInfoInternetInfoArgs{\n\t\t\t\t\tInternetSpec:     pulumi.String(\"enable\"),\n\t\t\t\t\tFlowOutType:      pulumi.String(\"payByBandwidth\"),\n\t\t\t\t\tFlowOutBandwidth: pulumi.Int(30),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAclInfo: \u0026rocketmq.RocketMQInstanceAclInfoArgs{\n\t\t\t\tDefaultVpcAuthFree: pulumi.Bool(false),\n\t\t\t\tAclTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"default\"),\n\t\t\t\t\tpulumi.String(\"apache_acl\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rocketmq.NewAccount(ctx, \"default\", \u0026rocketmq.AccountArgs{\n\t\t\tAccountStatus: pulumi.String(\"ENABLE\"),\n\t\t\tInstanceId:    default9hAb83.ID(),\n\t\t\tUsername:      pulumi.String(\"tfexample\"),\n\t\t\tPassword:      pulumi.String(\"1741835136\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.rocketmq.RocketMQInstance;\nimport com.pulumi.alicloud.rocketmq.RocketMQInstanceArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceProductInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceSoftwareArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceNetworkInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceNetworkInfoVpcInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceNetworkInfoInternetInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceAclInfoArgs;\nimport com.pulumi.alicloud.rocketmq.Account;\nimport com.pulumi.alicloud.rocketmq.AccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultg6ZXs2 = new Network(\"defaultg6ZXs2\", NetworkArgs.builder()\n            .description(\"111\")\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(\"pop-example-vpc\")\n            .build());\n\n        var defaultvMQbCy = new Switch(\"defaultvMQbCy\", SwitchArgs.builder()\n            .vpcId(defaultg6ZXs2.id())\n            .zoneId(\"cn-hangzhou-j\")\n            .cidrBlock(\"192.168.0.0/24\")\n            .vswitchName(\"pop-example-vswitch\")\n            .build());\n\n        var default9hAb83 = new RocketMQInstance(\"default9hAb83\", RocketMQInstanceArgs.builder()\n            .productInfo(RocketMQInstanceProductInfoArgs.builder()\n                .msgProcessSpec(\"rmq.p2.4xlarge\")\n                .sendReceiveRatio(0.3)\n                .messageRetentionTime(70)\n                .build())\n            .serviceCode(\"rmq\")\n            .seriesCode(\"professional\")\n            .paymentType(\"PayAsYouGo\")\n            .instanceName(name)\n            .subSeriesCode(\"cluster_ha\")\n            .remark(\"example\")\n            .software(RocketMQInstanceSoftwareArgs.builder()\n                .maintainTime(\"02:00-06:00\")\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .networkInfo(RocketMQInstanceNetworkInfoArgs.builder()\n                .vpcInfo(RocketMQInstanceNetworkInfoVpcInfoArgs.builder()\n                    .vpcId(defaultg6ZXs2.id())\n                    .vswitches(RocketMQInstanceNetworkInfoVpcInfoVswitchArgs.builder()\n                        .vswitchId(defaultvMQbCy.id())\n                        .build())\n                    .build())\n                .internetInfo(RocketMQInstanceNetworkInfoInternetInfoArgs.builder()\n                    .internetSpec(\"enable\")\n                    .flowOutType(\"payByBandwidth\")\n                    .flowOutBandwidth(30)\n                    .build())\n                .build())\n            .aclInfo(RocketMQInstanceAclInfoArgs.builder()\n                .defaultVpcAuthFree(false)\n                .aclTypes(                \n                    \"default\",\n                    \"apache_acl\")\n                .build())\n            .build());\n\n        var default_ = new Account(\"default\", AccountArgs.builder()\n            .accountStatus(\"ENABLE\")\n            .instanceId(default9hAb83.id())\n            .username(\"tfexample\")\n            .password(\"1741835136\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultg6ZXs2:\n    type: alicloud:vpc:Network\n    properties:\n      description: '111'\n      cidrBlock: 192.168.0.0/16\n      vpcName: pop-example-vpc\n  defaultvMQbCy:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultg6ZXs2.id}\n      zoneId: cn-hangzhou-j\n      cidrBlock: 192.168.0.0/24\n      vswitchName: pop-example-vswitch\n  default9hAb83:\n    type: alicloud:rocketmq:RocketMQInstance\n    properties:\n      productInfo:\n        msgProcessSpec: rmq.p2.4xlarge\n        sendReceiveRatio: '0.3'\n        messageRetentionTime: '70'\n      serviceCode: rmq\n      seriesCode: professional\n      paymentType: PayAsYouGo\n      instanceName: ${name}\n      subSeriesCode: cluster_ha\n      remark: example\n      software:\n        maintainTime: 02:00-06:00\n      tags:\n        Created: TF\n        For: example\n      networkInfo:\n        vpcInfo:\n          vpcId: ${defaultg6ZXs2.id}\n          vswitches:\n            - vswitchId: ${defaultvMQbCy.id}\n        internetInfo:\n          internetSpec: enable\n          flowOutType: payByBandwidth\n          flowOutBandwidth: '30'\n      aclInfo:\n        defaultVpcAuthFree: false\n        aclTypes:\n          - default\n          - apache_acl\n  default:\n    type: alicloud:rocketmq:Account\n    properties:\n      accountStatus: ENABLE\n      instanceId: ${default9hAb83.id}\n      username: tfexample\n      password: '1741835136'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRocketMQ Account can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rocketmq/account:Account example \u003cinstance_id\u003e:\u003cusername\u003e\n```\n\n","properties":{"accountStatus":{"type":"string","description":"The status of the account. Valid values: `DISABLE`, `ENABLE`.\n"},"instanceId":{"type":"string","description":"The instance ID.\n"},"password":{"type":"string","description":"The password of the account.\n"},"username":{"type":"string","description":"The username of the account.\n"}},"required":["accountStatus","instanceId","password","username"],"inputProperties":{"accountStatus":{"type":"string","description":"The status of the account. Valid values: `DISABLE`, `ENABLE`.\n"},"instanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of the account.\n"},"username":{"type":"string","description":"The username of the account.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId","password","username"],"stateInputs":{"description":"Input properties used for looking up and filtering Account resources.\n","properties":{"accountStatus":{"type":"string","description":"The status of the account. Valid values: `DISABLE`, `ENABLE`.\n"},"instanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of the account.\n"},"username":{"type":"string","description":"The username of the account.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rocketmq/acl:Acl":{"description":"Provides a RocketMQ Acl resource.\n\n\n\nFor information about RocketMQ Acl and how to use it, see [What is Acl](https://www.alibabacloud.com/help/en/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/developer-reference/api-rocketmq-2022-08-01-createinstanceacl).\n\n\u003e **NOTE:** Available since v1.245.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultrqDtGm = new alicloud.vpc.Network(\"defaultrqDtGm\", {\n    description: \"1111\",\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: \"pop-example-vpc\",\n});\nconst defaultjUrTYm = new alicloud.vpc.Switch(\"defaultjUrTYm\", {\n    vpcId: defaultrqDtGm.id,\n    zoneId: \"cn-hangzhou-j\",\n    cidrBlock: \"192.168.0.0/24\",\n    vswitchName: \"pop-example-vswitch\",\n});\nconst defaultKJZNVM = new alicloud.rocketmq.RocketMQInstance(\"defaultKJZNVM\", {\n    productInfo: {\n        msgProcessSpec: \"rmq.p2.4xlarge\",\n        sendReceiveRatio: 0.3,\n        messageRetentionTime: 70,\n    },\n    serviceCode: \"rmq\",\n    seriesCode: \"professional\",\n    paymentType: \"PayAsYouGo\",\n    instanceName: name,\n    subSeriesCode: \"cluster_ha\",\n    remark: \"example\",\n    networkInfo: {\n        vpcInfo: {\n            vpcId: defaultrqDtGm.id,\n            vswitches: [{\n                vswitchId: defaultjUrTYm.id,\n            }],\n        },\n        internetInfo: {\n            internetSpec: \"enable\",\n            flowOutType: \"payByBandwidth\",\n            flowOutBandwidth: 5,\n        },\n    },\n    aclInfo: {\n        defaultVpcAuthFree: false,\n        aclTypes: [\n            \"default\",\n            \"apache_acl\",\n        ],\n    },\n});\nconst defaultMeNlxe = new alicloud.rocketmq.Account(\"defaultMeNlxe\", {\n    accountStatus: \"ENABLE\",\n    instanceId: defaultKJZNVM.id,\n    username: \"tfexample\",\n    password: \"123456\",\n});\nconst defaultVA0zog = new alicloud.rocketmq.RocketMQTopic(\"defaultVA0zog\", {\n    instanceId: defaultKJZNVM.id,\n    messageType: \"NORMAL\",\n    topicName: \"tfexample\",\n});\nconst _default = new alicloud.rocketmq.Acl(\"default\", {\n    actions: [\n        \"Pub\",\n        \"Sub\",\n    ],\n    instanceId: defaultKJZNVM.id,\n    username: defaultMeNlxe.username,\n    resourceName: defaultVA0zog.topicName,\n    resourceType: \"Topic\",\n    decision: \"Deny\",\n    ipWhitelists: [\"192.168.5.5\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaultrq_dt_gm = alicloud.vpc.Network(\"defaultrqDtGm\",\n    description=\"1111\",\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=\"pop-example-vpc\")\ndefaultj_ur_t_ym = alicloud.vpc.Switch(\"defaultjUrTYm\",\n    vpc_id=defaultrq_dt_gm.id,\n    zone_id=\"cn-hangzhou-j\",\n    cidr_block=\"192.168.0.0/24\",\n    vswitch_name=\"pop-example-vswitch\")\ndefault_kjznvm = alicloud.rocketmq.RocketMQInstance(\"defaultKJZNVM\",\n    product_info={\n        \"msg_process_spec\": \"rmq.p2.4xlarge\",\n        \"send_receive_ratio\": 0.3,\n        \"message_retention_time\": 70,\n    },\n    service_code=\"rmq\",\n    series_code=\"professional\",\n    payment_type=\"PayAsYouGo\",\n    instance_name=name,\n    sub_series_code=\"cluster_ha\",\n    remark=\"example\",\n    network_info={\n        \"vpc_info\": {\n            \"vpc_id\": defaultrq_dt_gm.id,\n            \"vswitches\": [{\n                \"vswitch_id\": defaultj_ur_t_ym.id,\n            }],\n        },\n        \"internet_info\": {\n            \"internet_spec\": \"enable\",\n            \"flow_out_type\": \"payByBandwidth\",\n            \"flow_out_bandwidth\": 5,\n        },\n    },\n    acl_info={\n        \"default_vpc_auth_free\": False,\n        \"acl_types\": [\n            \"default\",\n            \"apache_acl\",\n        ],\n    })\ndefault_me_nlxe = alicloud.rocketmq.Account(\"defaultMeNlxe\",\n    account_status=\"ENABLE\",\n    instance_id=default_kjznvm.id,\n    username=\"tfexample\",\n    password=\"123456\")\ndefault_va0zog = alicloud.rocketmq.RocketMQTopic(\"defaultVA0zog\",\n    instance_id=default_kjznvm.id,\n    message_type=\"NORMAL\",\n    topic_name=\"tfexample\")\ndefault = alicloud.rocketmq.Acl(\"default\",\n    actions=[\n        \"Pub\",\n        \"Sub\",\n    ],\n    instance_id=default_kjznvm.id,\n    username=default_me_nlxe.username,\n    resource_name_=default_va0zog.topic_name,\n    resource_type=\"Topic\",\n    decision=\"Deny\",\n    ip_whitelists=[\"192.168.5.5\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultrqDtGm = new AliCloud.Vpc.Network(\"defaultrqDtGm\", new()\n    {\n        Description = \"1111\",\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = \"pop-example-vpc\",\n    });\n\n    var defaultjUrTYm = new AliCloud.Vpc.Switch(\"defaultjUrTYm\", new()\n    {\n        VpcId = defaultrqDtGm.Id,\n        ZoneId = \"cn-hangzhou-j\",\n        CidrBlock = \"192.168.0.0/24\",\n        VswitchName = \"pop-example-vswitch\",\n    });\n\n    var defaultKJZNVM = new AliCloud.RocketMQ.RocketMQInstance(\"defaultKJZNVM\", new()\n    {\n        ProductInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceProductInfoArgs\n        {\n            MsgProcessSpec = \"rmq.p2.4xlarge\",\n            SendReceiveRatio = 0.3,\n            MessageRetentionTime = 70,\n        },\n        ServiceCode = \"rmq\",\n        SeriesCode = \"professional\",\n        PaymentType = \"PayAsYouGo\",\n        InstanceName = name,\n        SubSeriesCode = \"cluster_ha\",\n        Remark = \"example\",\n        NetworkInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoArgs\n        {\n            VpcInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoVpcInfoArgs\n            {\n                VpcId = defaultrqDtGm.Id,\n                Vswitches = new[]\n                {\n                    new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoVpcInfoVswitchArgs\n                    {\n                        VswitchId = defaultjUrTYm.Id,\n                    },\n                },\n            },\n            InternetInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoInternetInfoArgs\n            {\n                InternetSpec = \"enable\",\n                FlowOutType = \"payByBandwidth\",\n                FlowOutBandwidth = 5,\n            },\n        },\n        AclInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceAclInfoArgs\n        {\n            DefaultVpcAuthFree = false,\n            AclTypes = new[]\n            {\n                \"default\",\n                \"apache_acl\",\n            },\n        },\n    });\n\n    var defaultMeNlxe = new AliCloud.RocketMQ.Account(\"defaultMeNlxe\", new()\n    {\n        AccountStatus = \"ENABLE\",\n        InstanceId = defaultKJZNVM.Id,\n        Username = \"tfexample\",\n        Password = \"123456\",\n    });\n\n    var defaultVA0zog = new AliCloud.RocketMQ.RocketMQTopic(\"defaultVA0zog\", new()\n    {\n        InstanceId = defaultKJZNVM.Id,\n        MessageType = \"NORMAL\",\n        TopicName = \"tfexample\",\n    });\n\n    var @default = new AliCloud.RocketMQ.Acl(\"default\", new()\n    {\n        Actions = new[]\n        {\n            \"Pub\",\n            \"Sub\",\n        },\n        InstanceId = defaultKJZNVM.Id,\n        Username = defaultMeNlxe.Username,\n        ResourceName = defaultVA0zog.TopicName,\n        ResourceType = \"Topic\",\n        Decision = \"Deny\",\n        IpWhitelists = new[]\n        {\n            \"192.168.5.5\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rocketmq\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultrqDtGm, err := vpc.NewNetwork(ctx, \"defaultrqDtGm\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(\"1111\"),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.0.0/16\"),\n\t\t\tVpcName:     pulumi.String(\"pop-example-vpc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultjUrTYm, err := vpc.NewSwitch(ctx, \"defaultjUrTYm\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultrqDtGm.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-j\"),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"pop-example-vswitch\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultKJZNVM, err := rocketmq.NewRocketMQInstance(ctx, \"defaultKJZNVM\", \u0026rocketmq.RocketMQInstanceArgs{\n\t\t\tProductInfo: \u0026rocketmq.RocketMQInstanceProductInfoArgs{\n\t\t\t\tMsgProcessSpec:       pulumi.String(\"rmq.p2.4xlarge\"),\n\t\t\t\tSendReceiveRatio:     pulumi.Float64(0.3),\n\t\t\t\tMessageRetentionTime: pulumi.Int(70),\n\t\t\t},\n\t\t\tServiceCode:   pulumi.String(\"rmq\"),\n\t\t\tSeriesCode:    pulumi.String(\"professional\"),\n\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\tInstanceName:  pulumi.String(name),\n\t\t\tSubSeriesCode: pulumi.String(\"cluster_ha\"),\n\t\t\tRemark:        pulumi.String(\"example\"),\n\t\t\tNetworkInfo: \u0026rocketmq.RocketMQInstanceNetworkInfoArgs{\n\t\t\t\tVpcInfo: \u0026rocketmq.RocketMQInstanceNetworkInfoVpcInfoArgs{\n\t\t\t\t\tVpcId: defaultrqDtGm.ID(),\n\t\t\t\t\tVswitches: rocketmq.RocketMQInstanceNetworkInfoVpcInfoVswitchArray{\n\t\t\t\t\t\t\u0026rocketmq.RocketMQInstanceNetworkInfoVpcInfoVswitchArgs{\n\t\t\t\t\t\t\tVswitchId: defaultjUrTYm.ID(),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tInternetInfo: \u0026rocketmq.RocketMQInstanceNetworkInfoInternetInfoArgs{\n\t\t\t\t\tInternetSpec:     pulumi.String(\"enable\"),\n\t\t\t\t\tFlowOutType:      pulumi.String(\"payByBandwidth\"),\n\t\t\t\t\tFlowOutBandwidth: pulumi.Int(5),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAclInfo: \u0026rocketmq.RocketMQInstanceAclInfoArgs{\n\t\t\t\tDefaultVpcAuthFree: pulumi.Bool(false),\n\t\t\t\tAclTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"default\"),\n\t\t\t\t\tpulumi.String(\"apache_acl\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultMeNlxe, err := rocketmq.NewAccount(ctx, \"defaultMeNlxe\", \u0026rocketmq.AccountArgs{\n\t\t\tAccountStatus: pulumi.String(\"ENABLE\"),\n\t\t\tInstanceId:    defaultKJZNVM.ID(),\n\t\t\tUsername:      pulumi.String(\"tfexample\"),\n\t\t\tPassword:      pulumi.String(\"123456\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVA0zog, err := rocketmq.NewRocketMQTopic(ctx, \"defaultVA0zog\", \u0026rocketmq.RocketMQTopicArgs{\n\t\t\tInstanceId:  defaultKJZNVM.ID(),\n\t\t\tMessageType: pulumi.String(\"NORMAL\"),\n\t\t\tTopicName:   pulumi.String(\"tfexample\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rocketmq.NewAcl(ctx, \"default\", \u0026rocketmq.AclArgs{\n\t\t\tActions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Pub\"),\n\t\t\t\tpulumi.String(\"Sub\"),\n\t\t\t},\n\t\t\tInstanceId:   defaultKJZNVM.ID(),\n\t\t\tUsername:     defaultMeNlxe.Username,\n\t\t\tResourceName: defaultVA0zog.TopicName,\n\t\t\tResourceType: pulumi.String(\"Topic\"),\n\t\t\tDecision:     pulumi.String(\"Deny\"),\n\t\t\tIpWhitelists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.5.5\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.rocketmq.RocketMQInstance;\nimport com.pulumi.alicloud.rocketmq.RocketMQInstanceArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceProductInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceNetworkInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceNetworkInfoVpcInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceNetworkInfoInternetInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceAclInfoArgs;\nimport com.pulumi.alicloud.rocketmq.Account;\nimport com.pulumi.alicloud.rocketmq.AccountArgs;\nimport com.pulumi.alicloud.rocketmq.RocketMQTopic;\nimport com.pulumi.alicloud.rocketmq.RocketMQTopicArgs;\nimport com.pulumi.alicloud.rocketmq.Acl;\nimport com.pulumi.alicloud.rocketmq.AclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultrqDtGm = new Network(\"defaultrqDtGm\", NetworkArgs.builder()\n            .description(\"1111\")\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(\"pop-example-vpc\")\n            .build());\n\n        var defaultjUrTYm = new Switch(\"defaultjUrTYm\", SwitchArgs.builder()\n            .vpcId(defaultrqDtGm.id())\n            .zoneId(\"cn-hangzhou-j\")\n            .cidrBlock(\"192.168.0.0/24\")\n            .vswitchName(\"pop-example-vswitch\")\n            .build());\n\n        var defaultKJZNVM = new RocketMQInstance(\"defaultKJZNVM\", RocketMQInstanceArgs.builder()\n            .productInfo(RocketMQInstanceProductInfoArgs.builder()\n                .msgProcessSpec(\"rmq.p2.4xlarge\")\n                .sendReceiveRatio(0.3)\n                .messageRetentionTime(70)\n                .build())\n            .serviceCode(\"rmq\")\n            .seriesCode(\"professional\")\n            .paymentType(\"PayAsYouGo\")\n            .instanceName(name)\n            .subSeriesCode(\"cluster_ha\")\n            .remark(\"example\")\n            .networkInfo(RocketMQInstanceNetworkInfoArgs.builder()\n                .vpcInfo(RocketMQInstanceNetworkInfoVpcInfoArgs.builder()\n                    .vpcId(defaultrqDtGm.id())\n                    .vswitches(RocketMQInstanceNetworkInfoVpcInfoVswitchArgs.builder()\n                        .vswitchId(defaultjUrTYm.id())\n                        .build())\n                    .build())\n                .internetInfo(RocketMQInstanceNetworkInfoInternetInfoArgs.builder()\n                    .internetSpec(\"enable\")\n                    .flowOutType(\"payByBandwidth\")\n                    .flowOutBandwidth(5)\n                    .build())\n                .build())\n            .aclInfo(RocketMQInstanceAclInfoArgs.builder()\n                .defaultVpcAuthFree(false)\n                .aclTypes(                \n                    \"default\",\n                    \"apache_acl\")\n                .build())\n            .build());\n\n        var defaultMeNlxe = new Account(\"defaultMeNlxe\", AccountArgs.builder()\n            .accountStatus(\"ENABLE\")\n            .instanceId(defaultKJZNVM.id())\n            .username(\"tfexample\")\n            .password(\"123456\")\n            .build());\n\n        var defaultVA0zog = new RocketMQTopic(\"defaultVA0zog\", RocketMQTopicArgs.builder()\n            .instanceId(defaultKJZNVM.id())\n            .messageType(\"NORMAL\")\n            .topicName(\"tfexample\")\n            .build());\n\n        var default_ = new Acl(\"default\", AclArgs.builder()\n            .actions(            \n                \"Pub\",\n                \"Sub\")\n            .instanceId(defaultKJZNVM.id())\n            .username(defaultMeNlxe.username())\n            .resourceName(defaultVA0zog.topicName())\n            .resourceType(\"Topic\")\n            .decision(\"Deny\")\n            .ipWhitelists(\"192.168.5.5\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultrqDtGm:\n    type: alicloud:vpc:Network\n    properties:\n      description: '1111'\n      cidrBlock: 192.168.0.0/16\n      vpcName: pop-example-vpc\n  defaultjUrTYm:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultrqDtGm.id}\n      zoneId: cn-hangzhou-j\n      cidrBlock: 192.168.0.0/24\n      vswitchName: pop-example-vswitch\n  defaultKJZNVM:\n    type: alicloud:rocketmq:RocketMQInstance\n    properties:\n      productInfo:\n        msgProcessSpec: rmq.p2.4xlarge\n        sendReceiveRatio: '0.3'\n        messageRetentionTime: '70'\n      serviceCode: rmq\n      seriesCode: professional\n      paymentType: PayAsYouGo\n      instanceName: ${name}\n      subSeriesCode: cluster_ha\n      remark: example\n      networkInfo:\n        vpcInfo:\n          vpcId: ${defaultrqDtGm.id}\n          vswitches:\n            - vswitchId: ${defaultjUrTYm.id}\n        internetInfo:\n          internetSpec: enable\n          flowOutType: payByBandwidth\n          flowOutBandwidth: '5'\n      aclInfo:\n        defaultVpcAuthFree: false\n        aclTypes:\n          - default\n          - apache_acl\n  defaultMeNlxe:\n    type: alicloud:rocketmq:Account\n    properties:\n      accountStatus: ENABLE\n      instanceId: ${defaultKJZNVM.id}\n      username: tfexample\n      password: '123456'\n  defaultVA0zog:\n    type: alicloud:rocketmq:RocketMQTopic\n    properties:\n      instanceId: ${defaultKJZNVM.id}\n      messageType: NORMAL\n      topicName: tfexample\n  default:\n    type: alicloud:rocketmq:Acl\n    properties:\n      actions:\n        - Pub\n        - Sub\n      instanceId: ${defaultKJZNVM.id}\n      username: ${defaultMeNlxe.username}\n      resourceName: ${defaultVA0zog.topicName}\n      resourceType: Topic\n      decision: Deny\n      ipWhitelists:\n        - 192.168.5.5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRocketMQ Acl can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rocketmq/acl:Acl example \u003cinstance_id\u003e:\u003cusername\u003e:\u003cresource_type\u003e:\u003cresource_name\u003e\n```\n\n","properties":{"actions":{"type":"array","items":{"type":"string"},"description":"The type of operations that can be performed on the resource. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`resourceType`\" pulumi-lang-dotnet=\"`ResourceType`\" pulumi-lang-go=\"`resourceType`\" pulumi-lang-python=\"`resource_type`\" pulumi-lang-yaml=\"`resourceType`\" pulumi-lang-java=\"`resourceType`\"\u003e`resource_type`\u003c/span\u003e is set to `Topic`. Valid values: `Pub`, `Sub`.\n- If \u003cspan pulumi-lang-nodejs=\"`resourceType`\" pulumi-lang-dotnet=\"`ResourceType`\" pulumi-lang-go=\"`resourceType`\" pulumi-lang-python=\"`resource_type`\" pulumi-lang-yaml=\"`resourceType`\" pulumi-lang-java=\"`resourceType`\"\u003e`resource_type`\u003c/span\u003e is set to `Group`. Valid values: `Sub`.\n"},"decision":{"type":"string","description":"The decision result of the authorization. Valid values: `Deny`, `Allow`.\n"},"instanceId":{"type":"string","description":"The instance ID.\n"},"ipWhitelists":{"type":"array","items":{"type":"string"},"description":"The IP address whitelists.\n"},"resourceName":{"type":"string","description":"The name of the resource on which you want to grant permissions.\n"},"resourceType":{"type":"string","description":"The type of the resource on which you want to grant permissions. Valid values: `Group`, `Topic`.\n"},"username":{"type":"string","description":"The username of the account.\n"}},"required":["actions","decision","instanceId","ipWhitelists","resourceName","resourceType","username"],"inputProperties":{"actions":{"type":"array","items":{"type":"string"},"description":"The type of operations that can be performed on the resource. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`resourceType`\" pulumi-lang-dotnet=\"`ResourceType`\" pulumi-lang-go=\"`resourceType`\" pulumi-lang-python=\"`resource_type`\" pulumi-lang-yaml=\"`resourceType`\" pulumi-lang-java=\"`resourceType`\"\u003e`resource_type`\u003c/span\u003e is set to `Topic`. Valid values: `Pub`, `Sub`.\n- If \u003cspan pulumi-lang-nodejs=\"`resourceType`\" pulumi-lang-dotnet=\"`ResourceType`\" pulumi-lang-go=\"`resourceType`\" pulumi-lang-python=\"`resource_type`\" pulumi-lang-yaml=\"`resourceType`\" pulumi-lang-java=\"`resourceType`\"\u003e`resource_type`\u003c/span\u003e is set to `Group`. Valid values: `Sub`.\n"},"decision":{"type":"string","description":"The decision result of the authorization. Valid values: `Deny`, `Allow`.\n"},"instanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"ipWhitelists":{"type":"array","items":{"type":"string"},"description":"The IP address whitelists.\n"},"resourceName":{"type":"string","description":"The name of the resource on which you want to grant permissions.\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"The type of the resource on which you want to grant permissions. Valid values: `Group`, `Topic`.\n","willReplaceOnChanges":true},"username":{"type":"string","description":"The username of the account.\n","willReplaceOnChanges":true}},"requiredInputs":["actions","decision","instanceId","resourceName","resourceType","username"],"stateInputs":{"description":"Input properties used for looking up and filtering Acl resources.\n","properties":{"actions":{"type":"array","items":{"type":"string"},"description":"The type of operations that can be performed on the resource. Valid values:\n- If \u003cspan pulumi-lang-nodejs=\"`resourceType`\" pulumi-lang-dotnet=\"`ResourceType`\" pulumi-lang-go=\"`resourceType`\" pulumi-lang-python=\"`resource_type`\" pulumi-lang-yaml=\"`resourceType`\" pulumi-lang-java=\"`resourceType`\"\u003e`resource_type`\u003c/span\u003e is set to `Topic`. Valid values: `Pub`, `Sub`.\n- If \u003cspan pulumi-lang-nodejs=\"`resourceType`\" pulumi-lang-dotnet=\"`ResourceType`\" pulumi-lang-go=\"`resourceType`\" pulumi-lang-python=\"`resource_type`\" pulumi-lang-yaml=\"`resourceType`\" pulumi-lang-java=\"`resourceType`\"\u003e`resource_type`\u003c/span\u003e is set to `Group`. Valid values: `Sub`.\n"},"decision":{"type":"string","description":"The decision result of the authorization. Valid values: `Deny`, `Allow`.\n"},"instanceId":{"type":"string","description":"The instance ID.\n","willReplaceOnChanges":true},"ipWhitelists":{"type":"array","items":{"type":"string"},"description":"The IP address whitelists.\n"},"resourceName":{"type":"string","description":"The name of the resource on which you want to grant permissions.\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"The type of the resource on which you want to grant permissions. Valid values: `Group`, `Topic`.\n","willReplaceOnChanges":true},"username":{"type":"string","description":"The username of the account.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rocketmq/clientUser:ClientUser":{"description":"Provides a Sag ClientUser resource. This topic describes how to manage accounts as an administrator. After you configure the network, you can create multiple accounts and distribute them to end users so that clients can access Alibaba Cloud.\n\nFor information about Sag ClientUser and how to use it, see [What is Sag ClientUser](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/createsmartaccessgatewayclientuser).\n\n\u003e **NOTE:** Available since v1.65.0.\n\n\u003e **NOTE:** Only the following regions support. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst sagId = config.get(\"sagId\") || \"sag-9bifkfaz4fg***\";\nconst _default = new alicloud.sag.ClientUser(\"default\", {\n    sagId: sagId,\n    bandwidth: 20,\n    userMail: \"tf-example@abc.com\",\n    userName: name,\n    password: \"example1234\",\n    clientIp: \"192.1.10.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nsag_id = config.get(\"sagId\")\nif sag_id is None:\n    sag_id = \"sag-9bifkfaz4fg***\"\ndefault = alicloud.sag.ClientUser(\"default\",\n    sag_id=sag_id,\n    bandwidth=20,\n    user_mail=\"tf-example@abc.com\",\n    user_name=name,\n    password=\"example1234\",\n    client_ip=\"192.1.10.0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var sagId = config.Get(\"sagId\") ?? \"sag-9bifkfaz4fg***\";\n    var @default = new AliCloud.Sag.ClientUser(\"default\", new()\n    {\n        SagId = sagId,\n        Bandwidth = 20,\n        UserMail = \"tf-example@abc.com\",\n        UserName = name,\n        Password = \"example1234\",\n        ClientIp = \"192.1.10.0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tsagId := \"sag-9bifkfaz4fg***\"\n\t\tif param := cfg.Get(\"sagId\"); param != \"\" {\n\t\t\tsagId = param\n\t\t}\n\t\t_, err := sag.NewClientUser(ctx, \"default\", \u0026sag.ClientUserArgs{\n\t\t\tSagId:     pulumi.String(sagId),\n\t\t\tBandwidth: pulumi.Int(20),\n\t\t\tUserMail:  pulumi.String(\"tf-example@abc.com\"),\n\t\t\tUserName:  pulumi.String(name),\n\t\t\tPassword:  pulumi.String(\"example1234\"),\n\t\t\tClientIp:  pulumi.String(\"192.1.10.0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.ClientUser;\nimport com.pulumi.alicloud.sag.ClientUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var sagId = config.get(\"sagId\").orElse(\"sag-9bifkfaz4fg***\");\n        var default_ = new ClientUser(\"default\", ClientUserArgs.builder()\n            .sagId(sagId)\n            .bandwidth(20)\n            .userMail(\"tf-example@abc.com\")\n            .userName(name)\n            .password(\"example1234\")\n            .clientIp(\"192.1.10.0\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\n  sagId:\n    type: string\n    default: sag-9bifkfaz4fg***\nresources:\n  default:\n    type: alicloud:sag:ClientUser\n    properties:\n      sagId: ${sagId}\n      bandwidth: '20'\n      userMail: tf-example@abc.com\n      userName: ${name}\n      password: example1234\n      clientIp: 192.1.10.0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe Sag ClientUser can be imported using the name, e.g.\n\n```sh\n$ pulumi import alicloud:rocketmq/clientUser:ClientUser example sag-abc123456:tf-username-abc123456\n```\n\n","properties":{"bandwidth":{"type":"integer","description":"The SAG APP bandwidth that the user can use. Unit: Kbit/s. Maximum value: 2000 Kbit/s.\n"},"clientIp":{"type":"string","description":"The IP address of the SAG APP. If you specify this parameter, the current account always uses the specified IP address.Note The IP address must be in the private CIDR block of the SAG client.If you do not specify this parameter, the system automatically allocates an IP address from the private CIDR block of the SAG client. In this case, each re-connection uses a different IP address.\n"},"kmsEncryptedPassword":{"type":"string","description":"The password of the KMS Encryption.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"The context of the KMS Encryption.\n"},"password":{"type":"string","description":"The password used to log on to the SAG APP.Both the user name and the password must be specified. If you specify the user name, the password must be specified, too.\n"},"sagId":{"type":"string","description":"The ID of the SAG instance created for the SAG APP.\n"},"userMail":{"type":"string","description":"The email address of the user. The administrator uses this address to send the account information for logging on to the APP to the user.\n"},"userName":{"type":"string","description":"The user name. User names in the same SAG APP must be unique.Both the user name and the password must be specified. If you specify the user name, the password must be specified, too.\n"}},"required":["bandwidth","password","sagId","userMail","userName"],"inputProperties":{"bandwidth":{"type":"integer","description":"The SAG APP bandwidth that the user can use. Unit: Kbit/s. Maximum value: 2000 Kbit/s.\n"},"clientIp":{"type":"string","description":"The IP address of the SAG APP. If you specify this parameter, the current account always uses the specified IP address.Note The IP address must be in the private CIDR block of the SAG client.If you do not specify this parameter, the system automatically allocates an IP address from the private CIDR block of the SAG client. In this case, each re-connection uses a different IP address.\n","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"The password of the KMS Encryption.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"The context of the KMS Encryption.\n"},"password":{"type":"string","description":"The password used to log on to the SAG APP.Both the user name and the password must be specified. If you specify the user name, the password must be specified, too.\n","willReplaceOnChanges":true},"sagId":{"type":"string","description":"The ID of the SAG instance created for the SAG APP.\n","willReplaceOnChanges":true},"userMail":{"type":"string","description":"The email address of the user. The administrator uses this address to send the account information for logging on to the APP to the user.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"The user name. User names in the same SAG APP must be unique.Both the user name and the password must be specified. If you specify the user name, the password must be specified, too.\n","willReplaceOnChanges":true}},"requiredInputs":["bandwidth","sagId","userMail"],"stateInputs":{"description":"Input properties used for looking up and filtering ClientUser resources.\n","properties":{"bandwidth":{"type":"integer","description":"The SAG APP bandwidth that the user can use. Unit: Kbit/s. Maximum value: 2000 Kbit/s.\n"},"clientIp":{"type":"string","description":"The IP address of the SAG APP. If you specify this parameter, the current account always uses the specified IP address.Note The IP address must be in the private CIDR block of the SAG client.If you do not specify this parameter, the system automatically allocates an IP address from the private CIDR block of the SAG client. In this case, each re-connection uses a different IP address.\n","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"The password of the KMS Encryption.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"The context of the KMS Encryption.\n"},"password":{"type":"string","description":"The password used to log on to the SAG APP.Both the user name and the password must be specified. If you specify the user name, the password must be specified, too.\n","willReplaceOnChanges":true},"sagId":{"type":"string","description":"The ID of the SAG instance created for the SAG APP.\n","willReplaceOnChanges":true},"userMail":{"type":"string","description":"The email address of the user. The administrator uses this address to send the account information for logging on to the APP to the user.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"The user name. User names in the same SAG APP must be unique.Both the user name and the password must be specified. If you specify the user name, the password must be specified, too.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"alicloud.rocketmq/clientuser.ClientUser has been deprecated in favor of alicloud.sag/clientuser.ClientUser"},"alicloud:rocketmq/consumerGroup:ConsumerGroup":{"description":"Provides a RocketMQ Consumer Group resource. \n\nFor information about RocketMQ Consumer Group and how to use it, see [What is Consumer Group](https://www.alibabacloud.com/help/en/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/developer-reference/api-rocketmq-2022-08-01-createconsumergroup).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst createVpc = new alicloud.vpc.Network(\"createVpc\", {\n    description: \"example\",\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: name,\n});\nconst createVswitch = new alicloud.vpc.Switch(\"createVswitch\", {\n    description: \"example\",\n    vpcId: createVpc.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    cidrBlock: \"172.16.0.0/24\",\n    vswitchName: name,\n});\nconst createInstance = new alicloud.rocketmq.RocketMQInstance(\"createInstance\", {\n    productInfo: {\n        msgProcessSpec: \"rmq.u2.10xlarge\",\n        sendReceiveRatio: 0.3,\n        messageRetentionTime: 70,\n    },\n    serviceCode: \"rmq\",\n    paymentType: \"PayAsYouGo\",\n    instanceName: name,\n    subSeriesCode: \"cluster_ha\",\n    remark: \"example\",\n    ipWhitelists: [\n        \"192.168.0.0/16\",\n        \"10.10.0.0/16\",\n        \"172.168.0.0/16\",\n    ],\n    software: {\n        maintainTime: \"02:00-06:00\",\n    },\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    seriesCode: \"ultimate\",\n    networkInfo: {\n        vpcInfo: {\n            vpcId: createVpc.id,\n            vswitches: [{\n                vswitchId: createVswitch.id,\n            }],\n        },\n        internetInfo: {\n            internetSpec: \"enable\",\n            flowOutType: \"payByBandwidth\",\n            flowOutBandwidth: 30,\n        },\n    },\n});\nconst defaultConsumerGroup = new alicloud.rocketmq.ConsumerGroup(\"default\", {\n    consumerGroupId: name,\n    instanceId: createInstance.id,\n    consumeRetryPolicy: {\n        retryPolicy: \"DefaultRetryPolicy\",\n        maxRetryTimes: 10,\n    },\n    deliveryOrderType: \"Concurrently\",\n    remark: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ncreate_vpc = alicloud.vpc.Network(\"createVpc\",\n    description=\"example\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=name)\ncreate_vswitch = alicloud.vpc.Switch(\"createVswitch\",\n    description=\"example\",\n    vpc_id=create_vpc.id,\n    zone_id=default.zones[0].id,\n    cidr_block=\"172.16.0.0/24\",\n    vswitch_name=name)\ncreate_instance = alicloud.rocketmq.RocketMQInstance(\"createInstance\",\n    product_info={\n        \"msg_process_spec\": \"rmq.u2.10xlarge\",\n        \"send_receive_ratio\": 0.3,\n        \"message_retention_time\": 70,\n    },\n    service_code=\"rmq\",\n    payment_type=\"PayAsYouGo\",\n    instance_name=name,\n    sub_series_code=\"cluster_ha\",\n    remark=\"example\",\n    ip_whitelists=[\n        \"192.168.0.0/16\",\n        \"10.10.0.0/16\",\n        \"172.168.0.0/16\",\n    ],\n    software={\n        \"maintain_time\": \"02:00-06:00\",\n    },\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    series_code=\"ultimate\",\n    network_info={\n        \"vpc_info\": {\n            \"vpc_id\": create_vpc.id,\n            \"vswitches\": [{\n                \"vswitch_id\": create_vswitch.id,\n            }],\n        },\n        \"internet_info\": {\n            \"internet_spec\": \"enable\",\n            \"flow_out_type\": \"payByBandwidth\",\n            \"flow_out_bandwidth\": 30,\n        },\n    })\ndefault_consumer_group = alicloud.rocketmq.ConsumerGroup(\"default\",\n    consumer_group_id=name,\n    instance_id=create_instance.id,\n    consume_retry_policy={\n        \"retry_policy\": \"DefaultRetryPolicy\",\n        \"max_retry_times\": 10,\n    },\n    delivery_order_type=\"Concurrently\",\n    remark=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var createVpc = new AliCloud.Vpc.Network(\"createVpc\", new()\n    {\n        Description = \"example\",\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = name,\n    });\n\n    var createVswitch = new AliCloud.Vpc.Switch(\"createVswitch\", new()\n    {\n        Description = \"example\",\n        VpcId = createVpc.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        CidrBlock = \"172.16.0.0/24\",\n        VswitchName = name,\n    });\n\n    var createInstance = new AliCloud.RocketMQ.RocketMQInstance(\"createInstance\", new()\n    {\n        ProductInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceProductInfoArgs\n        {\n            MsgProcessSpec = \"rmq.u2.10xlarge\",\n            SendReceiveRatio = 0.3,\n            MessageRetentionTime = 70,\n        },\n        ServiceCode = \"rmq\",\n        PaymentType = \"PayAsYouGo\",\n        InstanceName = name,\n        SubSeriesCode = \"cluster_ha\",\n        Remark = \"example\",\n        IpWhitelists = new[]\n        {\n            \"192.168.0.0/16\",\n            \"10.10.0.0/16\",\n            \"172.168.0.0/16\",\n        },\n        Software = new AliCloud.RocketMQ.Inputs.RocketMQInstanceSoftwareArgs\n        {\n            MaintainTime = \"02:00-06:00\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        SeriesCode = \"ultimate\",\n        NetworkInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoArgs\n        {\n            VpcInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoVpcInfoArgs\n            {\n                VpcId = createVpc.Id,\n                Vswitches = new[]\n                {\n                    new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoVpcInfoVswitchArgs\n                    {\n                        VswitchId = createVswitch.Id,\n                    },\n                },\n            },\n            InternetInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoInternetInfoArgs\n            {\n                InternetSpec = \"enable\",\n                FlowOutType = \"payByBandwidth\",\n                FlowOutBandwidth = 30,\n            },\n        },\n    });\n\n    var defaultConsumerGroup = new AliCloud.RocketMQ.ConsumerGroup(\"default\", new()\n    {\n        ConsumerGroupId = name,\n        InstanceId = createInstance.Id,\n        ConsumeRetryPolicy = new AliCloud.RocketMQ.Inputs.ConsumerGroupConsumeRetryPolicyArgs\n        {\n            RetryPolicy = \"DefaultRetryPolicy\",\n            MaxRetryTimes = 10,\n        },\n        DeliveryOrderType = \"Concurrently\",\n        Remark = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rocketmq\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateVpc, err := vpc.NewNetwork(ctx, \"createVpc\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:     pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateVswitch, err := vpc.NewSwitch(ctx, \"createVswitch\", \u0026vpc.SwitchArgs{\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tVpcId:       createVpc.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateInstance, err := rocketmq.NewRocketMQInstance(ctx, \"createInstance\", \u0026rocketmq.RocketMQInstanceArgs{\n\t\t\tProductInfo: \u0026rocketmq.RocketMQInstanceProductInfoArgs{\n\t\t\t\tMsgProcessSpec:       pulumi.String(\"rmq.u2.10xlarge\"),\n\t\t\t\tSendReceiveRatio:     pulumi.Float64(0.3),\n\t\t\t\tMessageRetentionTime: pulumi.Int(70),\n\t\t\t},\n\t\t\tServiceCode:   pulumi.String(\"rmq\"),\n\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\tInstanceName:  pulumi.String(name),\n\t\t\tSubSeriesCode: pulumi.String(\"cluster_ha\"),\n\t\t\tRemark:        pulumi.String(\"example\"),\n\t\t\tIpWhitelists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.0.0/16\"),\n\t\t\t\tpulumi.String(\"10.10.0.0/16\"),\n\t\t\t\tpulumi.String(\"172.168.0.0/16\"),\n\t\t\t},\n\t\t\tSoftware: \u0026rocketmq.RocketMQInstanceSoftwareArgs{\n\t\t\t\tMaintainTime: pulumi.String(\"02:00-06:00\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tSeriesCode: pulumi.String(\"ultimate\"),\n\t\t\tNetworkInfo: \u0026rocketmq.RocketMQInstanceNetworkInfoArgs{\n\t\t\t\tVpcInfo: \u0026rocketmq.RocketMQInstanceNetworkInfoVpcInfoArgs{\n\t\t\t\t\tVpcId: createVpc.ID(),\n\t\t\t\t\tVswitches: rocketmq.RocketMQInstanceNetworkInfoVpcInfoVswitchArray{\n\t\t\t\t\t\t\u0026rocketmq.RocketMQInstanceNetworkInfoVpcInfoVswitchArgs{\n\t\t\t\t\t\t\tVswitchId: createVswitch.ID(),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tInternetInfo: \u0026rocketmq.RocketMQInstanceNetworkInfoInternetInfoArgs{\n\t\t\t\t\tInternetSpec:     pulumi.String(\"enable\"),\n\t\t\t\t\tFlowOutType:      pulumi.String(\"payByBandwidth\"),\n\t\t\t\t\tFlowOutBandwidth: pulumi.Int(30),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rocketmq.NewConsumerGroup(ctx, \"default\", \u0026rocketmq.ConsumerGroupArgs{\n\t\t\tConsumerGroupId: pulumi.String(name),\n\t\t\tInstanceId:      createInstance.ID(),\n\t\t\tConsumeRetryPolicy: \u0026rocketmq.ConsumerGroupConsumeRetryPolicyArgs{\n\t\t\t\tRetryPolicy:   pulumi.String(\"DefaultRetryPolicy\"),\n\t\t\t\tMaxRetryTimes: pulumi.Int(10),\n\t\t\t},\n\t\t\tDeliveryOrderType: pulumi.String(\"Concurrently\"),\n\t\t\tRemark:            pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.rocketmq.RocketMQInstance;\nimport com.pulumi.alicloud.rocketmq.RocketMQInstanceArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceProductInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceSoftwareArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceNetworkInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceNetworkInfoVpcInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceNetworkInfoInternetInfoArgs;\nimport com.pulumi.alicloud.rocketmq.ConsumerGroup;\nimport com.pulumi.alicloud.rocketmq.ConsumerGroupArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.ConsumerGroupConsumeRetryPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var createVpc = new Network(\"createVpc\", NetworkArgs.builder()\n            .description(\"example\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(name)\n            .build());\n\n        var createVswitch = new Switch(\"createVswitch\", SwitchArgs.builder()\n            .description(\"example\")\n            .vpcId(createVpc.id())\n            .zoneId(default_.zones()[0].id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .vswitchName(name)\n            .build());\n\n        var createInstance = new RocketMQInstance(\"createInstance\", RocketMQInstanceArgs.builder()\n            .productInfo(RocketMQInstanceProductInfoArgs.builder()\n                .msgProcessSpec(\"rmq.u2.10xlarge\")\n                .sendReceiveRatio(0.3)\n                .messageRetentionTime(70)\n                .build())\n            .serviceCode(\"rmq\")\n            .paymentType(\"PayAsYouGo\")\n            .instanceName(name)\n            .subSeriesCode(\"cluster_ha\")\n            .remark(\"example\")\n            .ipWhitelists(            \n                \"192.168.0.0/16\",\n                \"10.10.0.0/16\",\n                \"172.168.0.0/16\")\n            .software(RocketMQInstanceSoftwareArgs.builder()\n                .maintainTime(\"02:00-06:00\")\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .seriesCode(\"ultimate\")\n            .networkInfo(RocketMQInstanceNetworkInfoArgs.builder()\n                .vpcInfo(RocketMQInstanceNetworkInfoVpcInfoArgs.builder()\n                    .vpcId(createVpc.id())\n                    .vswitches(RocketMQInstanceNetworkInfoVpcInfoVswitchArgs.builder()\n                        .vswitchId(createVswitch.id())\n                        .build())\n                    .build())\n                .internetInfo(RocketMQInstanceNetworkInfoInternetInfoArgs.builder()\n                    .internetSpec(\"enable\")\n                    .flowOutType(\"payByBandwidth\")\n                    .flowOutBandwidth(30)\n                    .build())\n                .build())\n            .build());\n\n        var defaultConsumerGroup = new ConsumerGroup(\"defaultConsumerGroup\", ConsumerGroupArgs.builder()\n            .consumerGroupId(name)\n            .instanceId(createInstance.id())\n            .consumeRetryPolicy(ConsumerGroupConsumeRetryPolicyArgs.builder()\n                .retryPolicy(\"DefaultRetryPolicy\")\n                .maxRetryTimes(10)\n                .build())\n            .deliveryOrderType(\"Concurrently\")\n            .remark(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createVpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: example\n      cidrBlock: 172.16.0.0/12\n      vpcName: ${name}\n  createVswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      description: example\n      vpcId: ${createVpc.id}\n      zoneId: ${default.zones[0].id}\n      cidrBlock: 172.16.0.0/24\n      vswitchName: ${name}\n  createInstance:\n    type: alicloud:rocketmq:RocketMQInstance\n    properties:\n      productInfo:\n        msgProcessSpec: rmq.u2.10xlarge\n        sendReceiveRatio: '0.3'\n        messageRetentionTime: '70'\n      serviceCode: rmq\n      paymentType: PayAsYouGo\n      instanceName: ${name}\n      subSeriesCode: cluster_ha\n      remark: example\n      ipWhitelists:\n        - 192.168.0.0/16\n        - 10.10.0.0/16\n        - 172.168.0.0/16\n      software:\n        maintainTime: 02:00-06:00\n      tags:\n        Created: TF\n        For: example\n      seriesCode: ultimate\n      networkInfo:\n        vpcInfo:\n          vpcId: ${createVpc.id}\n          vswitches:\n            - vswitchId: ${createVswitch.id}\n        internetInfo:\n          internetSpec: enable\n          flowOutType: payByBandwidth\n          flowOutBandwidth: '30'\n  defaultConsumerGroup:\n    type: alicloud:rocketmq:ConsumerGroup\n    name: default\n    properties:\n      consumerGroupId: ${name}\n      instanceId: ${createInstance.id}\n      consumeRetryPolicy:\n        retryPolicy: DefaultRetryPolicy\n        maxRetryTimes: '10'\n      deliveryOrderType: Concurrently\n      remark: example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRocketMQ Consumer Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rocketmq/consumerGroup:ConsumerGroup example \u003cinstance_id\u003e:\u003cconsumer_group_id\u003e\n```\n\n","properties":{"consumeRetryPolicy":{"$ref":"#/types/alicloud:rocketmq/ConsumerGroupConsumeRetryPolicy:ConsumerGroupConsumeRetryPolicy","description":"Consumption retry strategy. See \u003cspan pulumi-lang-nodejs=\"`consumeRetryPolicy`\" pulumi-lang-dotnet=\"`ConsumeRetryPolicy`\" pulumi-lang-go=\"`consumeRetryPolicy`\" pulumi-lang-python=\"`consume_retry_policy`\" pulumi-lang-yaml=\"`consumeRetryPolicy`\" pulumi-lang-java=\"`consumeRetryPolicy`\"\u003e`consume_retry_policy`\u003c/span\u003e below.\n"},"consumerGroupId":{"type":"string","description":"The first ID of the resource.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"deliveryOrderType":{"type":"string","description":"Delivery order.\n"},"instanceId":{"type":"string","description":"Instance ID.\n"},"maxReceiveTps":{"type":"integer","description":"Maximum received message tps.\n"},"regionId":{"type":"string","description":"(Available since v1.247.0) The ID of the region in which the instance resides.\n"},"remark":{"type":"string","description":"Custom remarks.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"required":["consumeRetryPolicy","consumerGroupId","createTime","instanceId","regionId","status"],"inputProperties":{"consumeRetryPolicy":{"$ref":"#/types/alicloud:rocketmq/ConsumerGroupConsumeRetryPolicy:ConsumerGroupConsumeRetryPolicy","description":"Consumption retry strategy. See \u003cspan pulumi-lang-nodejs=\"`consumeRetryPolicy`\" pulumi-lang-dotnet=\"`ConsumeRetryPolicy`\" pulumi-lang-go=\"`consumeRetryPolicy`\" pulumi-lang-python=\"`consume_retry_policy`\" pulumi-lang-yaml=\"`consumeRetryPolicy`\" pulumi-lang-java=\"`consumeRetryPolicy`\"\u003e`consume_retry_policy`\u003c/span\u003e below.\n"},"consumerGroupId":{"type":"string","description":"The first ID of the resource.\n","willReplaceOnChanges":true},"deliveryOrderType":{"type":"string","description":"Delivery order.\n"},"instanceId":{"type":"string","description":"Instance ID.\n","willReplaceOnChanges":true},"maxReceiveTps":{"type":"integer","description":"Maximum received message tps.\n"},"remark":{"type":"string","description":"Custom remarks.\n"}},"requiredInputs":["consumeRetryPolicy","consumerGroupId","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering ConsumerGroup resources.\n","properties":{"consumeRetryPolicy":{"$ref":"#/types/alicloud:rocketmq/ConsumerGroupConsumeRetryPolicy:ConsumerGroupConsumeRetryPolicy","description":"Consumption retry strategy. See \u003cspan pulumi-lang-nodejs=\"`consumeRetryPolicy`\" pulumi-lang-dotnet=\"`ConsumeRetryPolicy`\" pulumi-lang-go=\"`consumeRetryPolicy`\" pulumi-lang-python=\"`consume_retry_policy`\" pulumi-lang-yaml=\"`consumeRetryPolicy`\" pulumi-lang-java=\"`consumeRetryPolicy`\"\u003e`consume_retry_policy`\u003c/span\u003e below.\n"},"consumerGroupId":{"type":"string","description":"The first ID of the resource.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"deliveryOrderType":{"type":"string","description":"Delivery order.\n"},"instanceId":{"type":"string","description":"Instance ID.\n","willReplaceOnChanges":true},"maxReceiveTps":{"type":"integer","description":"Maximum received message tps.\n"},"regionId":{"type":"string","description":"(Available since v1.247.0) The ID of the region in which the instance resides.\n"},"remark":{"type":"string","description":"Custom remarks.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object"}},"alicloud:rocketmq/dnatEntry:DnatEntry":{"description":"Provides a Sag DnatEntry resource. This topic describes how to add a DNAT entry to a Smart Access Gateway (SAG) instance to enable the DNAT function. By using the DNAT function, you can forward requests received by public IP addresses to Alibaba Cloud instances according to custom mapping rules.\n\nFor information about Sag DnatEntry and how to use it, see [What is Sag DnatEntry](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/adddnatentry).\n\n\u003e **NOTE:** Available since v1.63.0.\n\n\u003e **NOTE:** Only the following regions suppor. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst sagId = config.get(\"sagId\") || \"sag-9bifkfaz***\";\nconst _default = new alicloud.sag.DnatEntry(\"default\", {\n    sagId: sagId,\n    type: \"Intranet\",\n    ipProtocol: \"any\",\n    externalIp: \"172.32.0.2\",\n    externalPort: \"any\",\n    internalIp: \"172.16.0.4\",\n    internalPort: \"any\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nsag_id = config.get(\"sagId\")\nif sag_id is None:\n    sag_id = \"sag-9bifkfaz***\"\ndefault = alicloud.sag.DnatEntry(\"default\",\n    sag_id=sag_id,\n    type=\"Intranet\",\n    ip_protocol=\"any\",\n    external_ip=\"172.32.0.2\",\n    external_port=\"any\",\n    internal_ip=\"172.16.0.4\",\n    internal_port=\"any\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var sagId = config.Get(\"sagId\") ?? \"sag-9bifkfaz***\";\n    var @default = new AliCloud.Sag.DnatEntry(\"default\", new()\n    {\n        SagId = sagId,\n        Type = \"Intranet\",\n        IpProtocol = \"any\",\n        ExternalIp = \"172.32.0.2\",\n        ExternalPort = \"any\",\n        InternalIp = \"172.16.0.4\",\n        InternalPort = \"any\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsagId := \"sag-9bifkfaz***\"\n\t\tif param := cfg.Get(\"sagId\"); param != \"\" {\n\t\t\tsagId = param\n\t\t}\n\t\t_, err := sag.NewDnatEntry(ctx, \"default\", \u0026sag.DnatEntryArgs{\n\t\t\tSagId:        pulumi.String(sagId),\n\t\t\tType:         pulumi.String(\"Intranet\"),\n\t\t\tIpProtocol:   pulumi.String(\"any\"),\n\t\t\tExternalIp:   pulumi.String(\"172.32.0.2\"),\n\t\t\tExternalPort: pulumi.String(\"any\"),\n\t\t\tInternalIp:   pulumi.String(\"172.16.0.4\"),\n\t\t\tInternalPort: pulumi.String(\"any\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.DnatEntry;\nimport com.pulumi.alicloud.sag.DnatEntryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var sagId = config.get(\"sagId\").orElse(\"sag-9bifkfaz***\");\n        var default_ = new DnatEntry(\"default\", DnatEntryArgs.builder()\n            .sagId(sagId)\n            .type(\"Intranet\")\n            .ipProtocol(\"any\")\n            .externalIp(\"172.32.0.2\")\n            .externalPort(\"any\")\n            .internalIp(\"172.16.0.4\")\n            .internalPort(\"any\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  sagId:\n    type: string\n    default: sag-9bifkfaz***\nresources:\n  default:\n    type: alicloud:sag:DnatEntry\n    properties:\n      sagId: ${sagId}\n      type: Intranet\n      ipProtocol: any\n      externalIp: 172.32.0.2\n      externalPort: any\n      internalIp: 172.16.0.4\n      internalPort: any\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe Sag DnatEntry can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rocketmq/dnatEntry:DnatEntry example sag-abc123456:dnat-abc123456\n```\n\n","properties":{"externalIp":{"type":"string","description":"The external public IP address.when \"type\" is \"Internet\",automatically identify the external ip.\n"},"externalPort":{"type":"string","description":"The public port.Value range: 1 to 65535 or \"any\".\n"},"internalIp":{"type":"string","description":"The destination private IP address.\n"},"internalPort":{"type":"string","description":"The destination private port.Value range: 1 to 65535 or \"any\".\n"},"ipProtocol":{"type":"string","description":"The protocol type. Valid values: TCP: Forwards packets of the TCP protocol. UDP: Forwards packets of the UDP protocol. Any: Forwards packets of all protocols.\n"},"sagId":{"type":"string","description":"The ID of the SAG instance.\n"},"type":{"type":"string","description":"The DNAT type. Valid values: Intranet: DNAT of private IP addresses. Internet: DNAT of public IP addresses\n"}},"required":["externalPort","internalIp","internalPort","ipProtocol","sagId","type"],"inputProperties":{"externalIp":{"type":"string","description":"The external public IP address.when \"type\" is \"Internet\",automatically identify the external ip.\n","willReplaceOnChanges":true},"externalPort":{"type":"string","description":"The public port.Value range: 1 to 65535 or \"any\".\n","willReplaceOnChanges":true},"internalIp":{"type":"string","description":"The destination private IP address.\n","willReplaceOnChanges":true},"internalPort":{"type":"string","description":"The destination private port.Value range: 1 to 65535 or \"any\".\n","willReplaceOnChanges":true},"ipProtocol":{"type":"string","description":"The protocol type. Valid values: TCP: Forwards packets of the TCP protocol. UDP: Forwards packets of the UDP protocol. Any: Forwards packets of all protocols.\n","willReplaceOnChanges":true},"sagId":{"type":"string","description":"The ID of the SAG instance.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The DNAT type. Valid values: Intranet: DNAT of private IP addresses. Internet: DNAT of public IP addresses\n","willReplaceOnChanges":true}},"requiredInputs":["externalPort","internalIp","internalPort","ipProtocol","sagId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering DnatEntry resources.\n","properties":{"externalIp":{"type":"string","description":"The external public IP address.when \"type\" is \"Internet\",automatically identify the external ip.\n","willReplaceOnChanges":true},"externalPort":{"type":"string","description":"The public port.Value range: 1 to 65535 or \"any\".\n","willReplaceOnChanges":true},"internalIp":{"type":"string","description":"The destination private IP address.\n","willReplaceOnChanges":true},"internalPort":{"type":"string","description":"The destination private port.Value range: 1 to 65535 or \"any\".\n","willReplaceOnChanges":true},"ipProtocol":{"type":"string","description":"The protocol type. Valid values: TCP: Forwards packets of the TCP protocol. UDP: Forwards packets of the UDP protocol. Any: Forwards packets of all protocols.\n","willReplaceOnChanges":true},"sagId":{"type":"string","description":"The ID of the SAG instance.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The DNAT type. Valid values: Intranet: DNAT of private IP addresses. Internet: DNAT of public IP addresses\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"alicloud.rocketmq/dnatentry.DnatEntry has been deprecated in favor of alicloud.sag/dnatentry.DnatEntry"},"alicloud:rocketmq/group:Group":{"description":"Provides an ONS group resource.\n\nFor more information about how to use it, see [RocketMQ Group Management API](https://www.alibabacloud.com/help/doc-detail/29616.html). \n\n\u003e **NOTE:** Available since v1.53.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"GID-tf-example\";\nconst groupName = config.get(\"groupName\") || \"GID-tf-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultInstance = new alicloud.rocketmq.Instance(\"default\", {instanceName: `${name}-${_default.result}`});\nconst defaultGroup = new alicloud.rocketmq.Group(\"default\", {\n    groupName: groupName,\n    instanceId: defaultInstance.id,\n    remark: \"dafault_ons_group_remark\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"GID-tf-example\"\ngroup_name = config.get(\"groupName\")\nif group_name is None:\n    group_name = \"GID-tf-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_instance = alicloud.rocketmq.Instance(\"default\", instance_name=f\"{name}-{default['result']}\")\ndefault_group = alicloud.rocketmq.Group(\"default\",\n    group_name=group_name,\n    instance_id=default_instance.id,\n    remark=\"dafault_ons_group_remark\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"GID-tf-example\";\n    var groupName = config.Get(\"groupName\") ?? \"GID-tf-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultInstance = new AliCloud.RocketMQ.Instance(\"default\", new()\n    {\n        InstanceName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultGroup = new AliCloud.RocketMQ.Group(\"default\", new()\n    {\n        GroupName = groupName,\n        InstanceId = defaultInstance.Id,\n        Remark = \"dafault_ons_group_remark\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rocketmq\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"GID-tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tgroupName := \"GID-tf-example\"\n\t\tif param := cfg.Get(\"groupName\"); param != \"\" {\n\t\t\tgroupName = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rocketmq.NewInstance(ctx, \"default\", \u0026rocketmq.InstanceArgs{\n\t\t\tInstanceName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rocketmq.NewGroup(ctx, \"default\", \u0026rocketmq.GroupArgs{\n\t\t\tGroupName:  pulumi.String(groupName),\n\t\t\tInstanceId: defaultInstance.ID(),\n\t\t\tRemark:     pulumi.String(\"dafault_ons_group_remark\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.rocketmq.Instance;\nimport com.pulumi.alicloud.rocketmq.InstanceArgs;\nimport com.pulumi.alicloud.rocketmq.Group;\nimport com.pulumi.alicloud.rocketmq.GroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"GID-tf-example\");\n        final var groupName = config.get(\"groupName\").orElse(\"GID-tf-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .instanceName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultGroup = new Group(\"defaultGroup\", GroupArgs.builder()\n            .groupName(groupName)\n            .instanceId(defaultInstance.id())\n            .remark(\"dafault_ons_group_remark\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: GID-tf-example\n  groupName:\n    type: string\n    default: GID-tf-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultInstance:\n    type: alicloud:rocketmq:Instance\n    name: default\n    properties:\n      instanceName: ${name}-${default.result}\n  defaultGroup:\n    type: alicloud:rocketmq:Group\n    name: default\n    properties:\n      groupName: ${groupName}\n      instanceId: ${defaultInstance.id}\n      remark: dafault_ons_group_remark\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nONS GROUP can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rocketmq/group:Group group MQ_INST_1234567890_Baso1234567:GID-onsGroupDemo\n```\n\n","properties":{"groupId":{"type":"string","description":"Replaced by \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e after version 1.98.0.\n","deprecationMessage":"Field 'group_id' has been deprecated from version 1.98.0. Use 'group_name' instead."},"groupName":{"type":"string","description":"Name of the group. Two groups on a single instance cannot have the same name. A \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e starts with \"GID_\" or \"GID-\", and contains letters, numbers, hyphens (-), and underscores (_).\n"},"groupType":{"type":"string","description":"Specify the protocol applicable to the created Group ID. Valid values: \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e.\n"},"instanceId":{"type":"string","description":"ID of the ONS Instance that owns the groups.\n"},"readEnable":{"type":"boolean","description":"This attribute is used to set the message reading enabled or disabled. It can only be set after the group is used by the client.\n"},"remark":{"type":"string","description":"This attribute is a concise description of group. The length cannot exceed 256.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"}},"required":["groupId","groupName","instanceId"],"inputProperties":{"groupId":{"type":"string","description":"Replaced by \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e after version 1.98.0.\n","deprecationMessage":"Field 'group_id' has been deprecated from version 1.98.0. Use 'group_name' instead.","willReplaceOnChanges":true},"groupName":{"type":"string","description":"Name of the group. Two groups on a single instance cannot have the same name. A \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e starts with \"GID_\" or \"GID-\", and contains letters, numbers, hyphens (-), and underscores (_).\n","willReplaceOnChanges":true},"groupType":{"type":"string","description":"Specify the protocol applicable to the created Group ID. Valid values: \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"ID of the ONS Instance that owns the groups.\n","willReplaceOnChanges":true},"readEnable":{"type":"boolean","description":"This attribute is used to set the message reading enabled or disabled. It can only be set after the group is used by the client.\n"},"remark":{"type":"string","description":"This attribute is a concise description of group. The length cannot exceed 256.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Group resources.\n","properties":{"groupId":{"type":"string","description":"Replaced by \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e after version 1.98.0.\n","deprecationMessage":"Field 'group_id' has been deprecated from version 1.98.0. Use 'group_name' instead.","willReplaceOnChanges":true},"groupName":{"type":"string","description":"Name of the group. Two groups on a single instance cannot have the same name. A \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e starts with \"GID_\" or \"GID-\", and contains letters, numbers, hyphens (-), and underscores (_).\n","willReplaceOnChanges":true},"groupType":{"type":"string","description":"Specify the protocol applicable to the created Group ID. Valid values: \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"ID of the ONS Instance that owns the groups.\n","willReplaceOnChanges":true},"readEnable":{"type":"boolean","description":"This attribute is used to set the message reading enabled or disabled. It can only be set after the group is used by the client.\n"},"remark":{"type":"string","description":"This attribute is a concise description of group. The length cannot exceed 256.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"}},"type":"object"}},"alicloud:rocketmq/instance:Instance":{"description":"Provides an ONS instance resource.\n\nFor more information about how to use it, see [RocketMQ Instance Management API](https://www.alibabacloud.com/help/doc-detail/106354.html). \n\n\u003e **NOTE:** The number of instances in the same region cannot exceed 8. At present, the resource does not support region \"mq-internet-access\" and \"ap-southeast-5\". \n\n\u003e **NOTE:** Available in 1.51.0+\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst example = new alicloud.rocketmq.Instance(\"example\", {\n    instanceName: `${name}-${_default.result}`,\n    remark: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample = alicloud.rocketmq.Instance(\"example\",\n    instance_name=f\"{name}-{default['result']}\",\n    remark=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var example = new AliCloud.RocketMQ.Instance(\"example\", new()\n    {\n        InstanceName = $\"{name}-{@default.Result}\",\n        Remark = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rocketmq\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rocketmq.NewInstance(ctx, \"example\", \u0026rocketmq.InstanceArgs{\n\t\t\tInstanceName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tRemark:       pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.rocketmq.Instance;\nimport com.pulumi.alicloud.rocketmq.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var example = new Instance(\"example\", InstanceArgs.builder()\n            .instanceName(String.format(\"%s-%s\", name,default_.result()))\n            .remark(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  example:\n    type: alicloud:rocketmq:Instance\n    properties:\n      instanceName: ${name}-${default.result}\n      remark: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nONS INSTANCE can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rocketmq/instance:Instance instance MQ_INST_1234567890_Baso1234567\n```\n\n","properties":{"instanceName":{"type":"string","description":"Two instances on a single account in the same region cannot have the same name. The length must be 3 to 64 characters. Chinese characters, English letters digits and hyphen are allowed.\n"},"instanceStatus":{"type":"integer","description":"The status of instance. 1 represents the platinum edition instance is in deployment. 2 represents the postpaid edition instance are overdue. 5 represents the postpaid or platinum edition instance is in service. 7 represents the platinum version instance is in upgrade and the service is available.\n"},"instanceType":{"type":"integer","description":"The edition of instance. 1 represents the postPaid edition, and 2 represents the platinum edition.\n"},"name":{"type":"string","description":"Replaced by \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e after version 1.97.0.\n","deprecationMessage":"Field 'name' has been deprecated from version 1.97.0. Use 'instance_name' instead."},"releaseTime":{"type":"string","description":"Platinum edition instance expiration time.\n"},"remark":{"type":"string","description":"This attribute is a concise description of instance. The length cannot exceed 128.\n"},"status":{"type":"integer","description":"The status of instance. 1 represents the platinum edition instance is in deployment. 2 represents the postpaid edition instance are overdue. 5 represents the postpaid or platinum edition instance is in service. 7 represents the platinum version instance is in upgrade and the service is available.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"}},"required":["instanceName","instanceStatus","instanceType","name","releaseTime","status"],"inputProperties":{"instanceName":{"type":"string","description":"Two instances on a single account in the same region cannot have the same name. The length must be 3 to 64 characters. Chinese characters, English letters digits and hyphen are allowed.\n"},"name":{"type":"string","description":"Replaced by \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e after version 1.97.0.\n","deprecationMessage":"Field 'name' has been deprecated from version 1.97.0. Use 'instance_name' instead."},"remark":{"type":"string","description":"This attribute is a concise description of instance. The length cannot exceed 128.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"instanceName":{"type":"string","description":"Two instances on a single account in the same region cannot have the same name. The length must be 3 to 64 characters. Chinese characters, English letters digits and hyphen are allowed.\n"},"instanceStatus":{"type":"integer","description":"The status of instance. 1 represents the platinum edition instance is in deployment. 2 represents the postpaid edition instance are overdue. 5 represents the postpaid or platinum edition instance is in service. 7 represents the platinum version instance is in upgrade and the service is available.\n"},"instanceType":{"type":"integer","description":"The edition of instance. 1 represents the postPaid edition, and 2 represents the platinum edition.\n"},"name":{"type":"string","description":"Replaced by \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e after version 1.97.0.\n","deprecationMessage":"Field 'name' has been deprecated from version 1.97.0. Use 'instance_name' instead."},"releaseTime":{"type":"string","description":"Platinum edition instance expiration time.\n"},"remark":{"type":"string","description":"This attribute is a concise description of instance. The length cannot exceed 128.\n"},"status":{"type":"integer","description":"The status of instance. 1 represents the platinum edition instance is in deployment. 2 represents the postpaid edition instance are overdue. 5 represents the postpaid or platinum edition instance is in service. 7 represents the platinum version instance is in upgrade and the service is available.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"}},"type":"object"}},"alicloud:rocketmq/qos:Qos":{"description":"Provides a Sag Qos resource. Smart Access Gateway (SAG) supports quintuple-based QoS functions to differentiate traffic of different services and ensure high-priority traffic bandwidth.\n\nFor information about Sag Qos and how to use it, see [What is Qos](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/createqos).\n\n\u003e **NOTE:** Available since v1.60.0.\n\n\u003e **NOTE:** Only the following regions support. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.sag.Qos(\"default\", {name: \"terraform-example\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.sag.Qos(\"default\", name=\"terraform-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Sag.Qos(\"default\", new()\n    {\n        Name = \"terraform-example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sag.NewQos(ctx, \"default\", \u0026sag.QosArgs{\n\t\t\tName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.Qos;\nimport com.pulumi.alicloud.sag.QosArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Qos(\"default\", QosArgs.builder()\n            .name(\"terraform-example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:sag:Qos\n    properties:\n      name: terraform-example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe Sag Qos can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rocketmq/qos:Qos example qos-abc123456\n```\n\n","properties":{"name":{"type":"string","description":"The name of the QoS policy to be created. The name can contain 2 to 128 characters including a-z, A-Z, 0-9, periods, underlines, and hyphens. The name must start with an English letter, but cannot start with http:// or https://.\n"}},"required":["name"],"inputProperties":{"name":{"type":"string","description":"The name of the QoS policy to be created. The name can contain 2 to 128 characters including a-z, A-Z, 0-9, periods, underlines, and hyphens. The name must start with an English letter, but cannot start with http:// or https://.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Qos resources.\n","properties":{"name":{"type":"string","description":"The name of the QoS policy to be created. The name can contain 2 to 128 characters including a-z, A-Z, 0-9, periods, underlines, and hyphens. The name must start with an English letter, but cannot start with http:// or https://.\n"}},"type":"object"},"deprecationMessage":"alicloud.rocketmq/qos.Qos has been deprecated in favor of alicloud.sag/qos.Qos"},"alicloud:rocketmq/qosCar:QosCar":{"description":"Provides a Sag Qos Car resource.\n\nFor information about Sag Qos Car and how to use it, see [What is Qos Car](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/createqoscar).\n\n\u003e **NOTE:** Available since v1.60.0.\n\n\u003e **NOTE:** Only the following regions support. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = new alicloud.sag.Qos(\"default\", {name: name});\nconst defaultQosCar = new alicloud.sag.QosCar(\"default\", {\n    qosId: _default.id,\n    name: name,\n    description: name,\n    priority: 1,\n    limitType: \"Absolute\",\n    minBandwidthAbs: 10,\n    maxBandwidthAbs: 20,\n    percentSourceType: \"InternetUpBandwidth\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.sag.Qos(\"default\", name=name)\ndefault_qos_car = alicloud.sag.QosCar(\"default\",\n    qos_id=default.id,\n    name=name,\n    description=name,\n    priority=1,\n    limit_type=\"Absolute\",\n    min_bandwidth_abs=10,\n    max_bandwidth_abs=20,\n    percent_source_type=\"InternetUpBandwidth\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = new AliCloud.Sag.Qos(\"default\", new()\n    {\n        Name = name,\n    });\n\n    var defaultQosCar = new AliCloud.Sag.QosCar(\"default\", new()\n    {\n        QosId = @default.Id,\n        Name = name,\n        Description = name,\n        Priority = 1,\n        LimitType = \"Absolute\",\n        MinBandwidthAbs = 10,\n        MaxBandwidthAbs = 20,\n        PercentSourceType = \"InternetUpBandwidth\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := sag.NewQos(ctx, \"default\", \u0026sag.QosArgs{\n\t\t\tName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sag.NewQosCar(ctx, \"default\", \u0026sag.QosCarArgs{\n\t\t\tQosId:             _default.ID(),\n\t\t\tName:              pulumi.String(name),\n\t\t\tDescription:       pulumi.String(name),\n\t\t\tPriority:          pulumi.Int(1),\n\t\t\tLimitType:         pulumi.String(\"Absolute\"),\n\t\t\tMinBandwidthAbs:   pulumi.Int(10),\n\t\t\tMaxBandwidthAbs:   pulumi.Int(20),\n\t\t\tPercentSourceType: pulumi.String(\"InternetUpBandwidth\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.Qos;\nimport com.pulumi.alicloud.sag.QosArgs;\nimport com.pulumi.alicloud.sag.QosCar;\nimport com.pulumi.alicloud.sag.QosCarArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var default_ = new Qos(\"default\", QosArgs.builder()\n            .name(name)\n            .build());\n\n        var defaultQosCar = new QosCar(\"defaultQosCar\", QosCarArgs.builder()\n            .qosId(default_.id())\n            .name(name)\n            .description(name)\n            .priority(1)\n            .limitType(\"Absolute\")\n            .minBandwidthAbs(10)\n            .maxBandwidthAbs(20)\n            .percentSourceType(\"InternetUpBandwidth\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  default:\n    type: alicloud:sag:Qos\n    properties:\n      name: ${name}\n  defaultQosCar:\n    type: alicloud:sag:QosCar\n    name: default\n    properties:\n      qosId: ${default.id}\n      name: ${name}\n      description: ${name}\n      priority: '1'\n      limitType: Absolute\n      minBandwidthAbs: '10'\n      maxBandwidthAbs: '20'\n      percentSourceType: InternetUpBandwidth\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe Sag Qos Car can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rocketmq/qosCar:QosCar example \u003cqos_id\u003e:\u003cqos_car_id\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the QoS speed limiting rule.\n"},"limitType":{"type":"string","description":"The speed limiting method. Valid values: `Absolute`, `Percent`.\n"},"maxBandwidthAbs":{"type":"integer","description":"The maximum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType is Absolute.\n"},"maxBandwidthPercent":{"type":"integer","description":"The maximum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated Smart Access Gateway (SAG) instance.This parameter is required when the value of the LimitType parameter is Percent.\n"},"minBandwidthAbs":{"type":"integer","description":"The minimum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType parameter is Absolute.\n"},"minBandwidthPercent":{"type":"integer","description":"The minimum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated SAG instance.This parameter is required when the value of the LimitType parameter is Percent.\n"},"name":{"type":"string","description":"The name of the QoS speed limiting rule..\n"},"percentSourceType":{"type":"string","description":"The bandwidth type when the speed is limited based on percentage. Valid values: CcnBandwidth, InternetUpBandwidth.The default value is InternetUpBandwidth.\n"},"priority":{"type":"integer","description":"The priority of the specified stream.\n"},"qosId":{"type":"string","description":"The instance ID of the QoS.\n"}},"required":["limitType","name","priority","qosId"],"inputProperties":{"description":{"type":"string","description":"The description of the QoS speed limiting rule.\n"},"limitType":{"type":"string","description":"The speed limiting method. Valid values: `Absolute`, `Percent`.\n"},"maxBandwidthAbs":{"type":"integer","description":"The maximum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType is Absolute.\n"},"maxBandwidthPercent":{"type":"integer","description":"The maximum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated Smart Access Gateway (SAG) instance.This parameter is required when the value of the LimitType parameter is Percent.\n"},"minBandwidthAbs":{"type":"integer","description":"The minimum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType parameter is Absolute.\n"},"minBandwidthPercent":{"type":"integer","description":"The minimum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated SAG instance.This parameter is required when the value of the LimitType parameter is Percent.\n"},"name":{"type":"string","description":"The name of the QoS speed limiting rule..\n"},"percentSourceType":{"type":"string","description":"The bandwidth type when the speed is limited based on percentage. Valid values: CcnBandwidth, InternetUpBandwidth.The default value is InternetUpBandwidth.\n"},"priority":{"type":"integer","description":"The priority of the specified stream.\n"},"qosId":{"type":"string","description":"The instance ID of the QoS.\n"}},"requiredInputs":["limitType","priority","qosId"],"stateInputs":{"description":"Input properties used for looking up and filtering QosCar resources.\n","properties":{"description":{"type":"string","description":"The description of the QoS speed limiting rule.\n"},"limitType":{"type":"string","description":"The speed limiting method. Valid values: `Absolute`, `Percent`.\n"},"maxBandwidthAbs":{"type":"integer","description":"The maximum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType is Absolute.\n"},"maxBandwidthPercent":{"type":"integer","description":"The maximum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated Smart Access Gateway (SAG) instance.This parameter is required when the value of the LimitType parameter is Percent.\n"},"minBandwidthAbs":{"type":"integer","description":"The minimum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType parameter is Absolute.\n"},"minBandwidthPercent":{"type":"integer","description":"The minimum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated SAG instance.This parameter is required when the value of the LimitType parameter is Percent.\n"},"name":{"type":"string","description":"The name of the QoS speed limiting rule..\n"},"percentSourceType":{"type":"string","description":"The bandwidth type when the speed is limited based on percentage. Valid values: CcnBandwidth, InternetUpBandwidth.The default value is InternetUpBandwidth.\n"},"priority":{"type":"integer","description":"The priority of the specified stream.\n"},"qosId":{"type":"string","description":"The instance ID of the QoS.\n"}},"type":"object"},"deprecationMessage":"alicloud.rocketmq/qoscar.QosCar has been deprecated in favor of alicloud.sag/qoscar.QosCar"},"alicloud:rocketmq/qosPolicy:QosPolicy":{"description":"Provides a Sag qos policy resource. \nYou need to create a QoS policy to set priorities, rate limits, and quintuple rules for different messages.\n\nFor information about Sag Qos Policy and how to use it, see [What is Qos Policy](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/createqospolicy).\n\n\u003e **NOTE:** Available since v1.60.0.\n\n\u003e **NOTE:** Only the following regions support. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\nimport * as time from \"@pulumi/time\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new alicloud.sag.Qos(\"default\", {name: name});\nconst example = new time.index.Static(\"example\", {});\nconst defaultQosPolicy = new alicloud.sag.QosPolicy(\"default\", {\n    qosId: _default.id,\n    name: name,\n    description: name,\n    priority: 1,\n    ipProtocol: \"ALL\",\n    sourceCidr: \"192.168.0.0/24\",\n    sourcePortRange: \"-1/-1\",\n    destCidr: \"10.10.0.0/24\",\n    destPortRange: \"-1/-1\",\n    startTime: std.replace({\n        text: example.rfc3339,\n        search: \"Z\",\n        replace: \"+0800\",\n    }).then(invoke =\u003e invoke.result),\n    endTime: std.timeadd({\n        duration: example.rfc3339,\n        timestamp: \"24h\",\n    }).then(invoke =\u003e std.replace({\n        text: invoke.result,\n        search: \"Z\",\n        replace: \"+0800\",\n    })).then(invoke =\u003e invoke.result),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\nimport pulumi_time as time\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.sag.Qos(\"default\", name=name)\nexample = time.index.Static(\"example\")\ndefault_qos_policy = alicloud.sag.QosPolicy(\"default\",\n    qos_id=default.id,\n    name=name,\n    description=name,\n    priority=1,\n    ip_protocol=\"ALL\",\n    source_cidr=\"192.168.0.0/24\",\n    source_port_range=\"-1/-1\",\n    dest_cidr=\"10.10.0.0/24\",\n    dest_port_range=\"-1/-1\",\n    start_time=std.replace(text=example[\"rfc3339\"],\n        search=\"Z\",\n        replace=\"+0800\").result,\n    end_time=std.replace(text=std.timeadd(duration=example[\"rfc3339\"],\n            timestamp=\"24h\").result,\n        search=\"Z\",\n        replace=\"+0800\").result)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new AliCloud.Sag.Qos(\"default\", new()\n    {\n        Name = name,\n    });\n\n    var example = new Time.Index.Static(\"example\");\n\n    var defaultQosPolicy = new AliCloud.Sag.QosPolicy(\"default\", new()\n    {\n        QosId = @default.Id,\n        Name = name,\n        Description = name,\n        Priority = 1,\n        IpProtocol = \"ALL\",\n        SourceCidr = \"192.168.0.0/24\",\n        SourcePortRange = \"-1/-1\",\n        DestCidr = \"10.10.0.0/24\",\n        DestPortRange = \"-1/-1\",\n        StartTime = Std.Replace.Invoke(new()\n        {\n            Text = example.Rfc3339,\n            Search = \"Z\",\n            Replace = \"+0800\",\n        }).Apply(invoke =\u003e invoke.Result),\n        EndTime = Std.Timeadd.Invoke(new()\n        {\n            Duration = example.Rfc3339,\n            Timestamp = \"24h\",\n        }).Apply(invoke =\u003e Std.Replace.Invoke(new()\n        {\n            Text = invoke.Result,\n            Search = \"Z\",\n            Replace = \"+0800\",\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := sag.NewQos(ctx, \"default\", \u0026sag.QosArgs{\n\t\t\tName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := time.NewStatic(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeReplace, err := std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\tText:    example.Rfc3339,\n\t\t\tSearch:  \"Z\",\n\t\t\tReplace: \"+0800\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeReplace1, err := std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\tText: std.Timeadd(ctx, \u0026std.TimeaddArgs{\n\t\t\t\tDuration:  example.Rfc3339,\n\t\t\t\tTimestamp: \"24h\",\n\t\t\t}, nil).Result,\n\t\t\tSearch:  \"Z\",\n\t\t\tReplace: \"+0800\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sag.NewQosPolicy(ctx, \"default\", \u0026sag.QosPolicyArgs{\n\t\t\tQosId:           _default.ID(),\n\t\t\tName:            pulumi.String(name),\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tPriority:        pulumi.Int(1),\n\t\t\tIpProtocol:      pulumi.String(\"ALL\"),\n\t\t\tSourceCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tSourcePortRange: pulumi.String(\"-1/-1\"),\n\t\t\tDestCidr:        pulumi.String(\"10.10.0.0/24\"),\n\t\t\tDestPortRange:   pulumi.String(\"-1/-1\"),\n\t\t\tStartTime:       pulumi.String(invokeReplace.Result),\n\t\t\tEndTime:         pulumi.String(invokeReplace1.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.Qos;\nimport com.pulumi.alicloud.sag.QosArgs;\nimport com.pulumi.time.Static;\nimport com.pulumi.alicloud.sag.QosPolicy;\nimport com.pulumi.alicloud.sag.QosPolicyArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ReplaceArgs;\nimport com.pulumi.std.inputs.TimeaddArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new Qos(\"default\", QosArgs.builder()\n            .name(name)\n            .build());\n\n        var example = new Static(\"example\");\n\n        var defaultQosPolicy = new QosPolicy(\"defaultQosPolicy\", QosPolicyArgs.builder()\n            .qosId(default_.id())\n            .name(name)\n            .description(name)\n            .priority(1)\n            .ipProtocol(\"ALL\")\n            .sourceCidr(\"192.168.0.0/24\")\n            .sourcePortRange(\"-1/-1\")\n            .destCidr(\"10.10.0.0/24\")\n            .destPortRange(\"-1/-1\")\n            .startTime(StdFunctions.replace(ReplaceArgs.builder()\n                .text(example.rfc3339())\n                .search(\"Z\")\n                .replace(\"+0800\")\n                .build()).result())\n            .endTime(StdFunctions.replace(ReplaceArgs.builder()\n                .text(StdFunctions.timeadd(TimeaddArgs.builder()\n                    .duration(example.rfc3339())\n                    .timestamp(\"24h\")\n                    .build()).result())\n                .search(\"Z\")\n                .replace(\"+0800\")\n                .build()).result())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:sag:Qos\n    properties:\n      name: ${name}\n  example:\n    type: time:Static\n  defaultQosPolicy:\n    type: alicloud:sag:QosPolicy\n    name: default\n    properties:\n      qosId: ${default.id}\n      name: ${name}\n      description: ${name}\n      priority: '1'\n      ipProtocol: ALL\n      sourceCidr: 192.168.0.0/24\n      sourcePortRange: -1/-1\n      destCidr: 10.10.0.0/24\n      destPortRange: -1/-1\n      startTime:\n        fn::invoke:\n          function: std:replace\n          arguments:\n            text: ${example.rfc3339}\n            search: Z\n            replace: '+0800'\n          return: result\n      endTime:\n        fn::invoke:\n          function: std:replace\n          arguments:\n            text:\n              fn::invoke:\n                function: std:timeadd\n                arguments:\n                  duration: ${example.rfc3339}\n                  timestamp: 24h\n                return: result\n            search: Z\n            replace: '+0800'\n          return: result\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe Sag Qos Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rocketmq/qosPolicy:QosPolicy example qos-abc123456:qospy-abc123456\n```\n\n","properties":{"description":{"type":"string","description":"The description of the QoS policy.\n"},"destCidr":{"type":"string","description":"The destination CIDR block.\n"},"destPortRange":{"type":"string","description":"The destination port range.\n"},"endTime":{"type":"string","description":"The expiration time of the quintuple rule.\n"},"ipProtocol":{"type":"string","description":"The transport layer protocol.\n"},"name":{"type":"string","description":"The name of the QoS policy.\n"},"priority":{"type":"integer","description":"The priority of the quintuple rule. A smaller value indicates a higher priority. If the priorities of two quintuple rules are the same, the rule created earlier is applied first.Value range: 1 to 7.\n"},"qosId":{"type":"string","description":"The instance ID of the QoS policy to which the quintuple rule is created.\n"},"sourceCidr":{"type":"string","description":"The source CIDR block.\n"},"sourcePortRange":{"type":"string","description":"The source port range of the transport layer.\n"},"startTime":{"type":"string","description":"The time when the quintuple rule takes effect.\n"}},"required":["destCidr","destPortRange","ipProtocol","name","priority","qosId","sourceCidr","sourcePortRange"],"inputProperties":{"description":{"type":"string","description":"The description of the QoS policy.\n"},"destCidr":{"type":"string","description":"The destination CIDR block.\n"},"destPortRange":{"type":"string","description":"The destination port range.\n"},"endTime":{"type":"string","description":"The expiration time of the quintuple rule.\n"},"ipProtocol":{"type":"string","description":"The transport layer protocol.\n"},"name":{"type":"string","description":"The name of the QoS policy.\n"},"priority":{"type":"integer","description":"The priority of the quintuple rule. A smaller value indicates a higher priority. If the priorities of two quintuple rules are the same, the rule created earlier is applied first.Value range: 1 to 7.\n"},"qosId":{"type":"string","description":"The instance ID of the QoS policy to which the quintuple rule is created.\n"},"sourceCidr":{"type":"string","description":"The source CIDR block.\n"},"sourcePortRange":{"type":"string","description":"The source port range of the transport layer.\n"},"startTime":{"type":"string","description":"The time when the quintuple rule takes effect.\n"}},"requiredInputs":["destCidr","destPortRange","ipProtocol","priority","qosId","sourceCidr","sourcePortRange"],"stateInputs":{"description":"Input properties used for looking up and filtering QosPolicy resources.\n","properties":{"description":{"type":"string","description":"The description of the QoS policy.\n"},"destCidr":{"type":"string","description":"The destination CIDR block.\n"},"destPortRange":{"type":"string","description":"The destination port range.\n"},"endTime":{"type":"string","description":"The expiration time of the quintuple rule.\n"},"ipProtocol":{"type":"string","description":"The transport layer protocol.\n"},"name":{"type":"string","description":"The name of the QoS policy.\n"},"priority":{"type":"integer","description":"The priority of the quintuple rule. A smaller value indicates a higher priority. If the priorities of two quintuple rules are the same, the rule created earlier is applied first.Value range: 1 to 7.\n"},"qosId":{"type":"string","description":"The instance ID of the QoS policy to which the quintuple rule is created.\n"},"sourceCidr":{"type":"string","description":"The source CIDR block.\n"},"sourcePortRange":{"type":"string","description":"The source port range of the transport layer.\n"},"startTime":{"type":"string","description":"The time when the quintuple rule takes effect.\n"}},"type":"object"},"deprecationMessage":"alicloud.rocketmq/qospolicy.QosPolicy has been deprecated in favor of alicloud.sag/qospolicy.QosPolicy"},"alicloud:rocketmq/rocketMQInstance:RocketMQInstance":{"description":"Provides a RocketMQ Instance resource.\n\n\nFor information about RocketMQ Instance and how to use it, see [What is Instance](https://www.alibabacloud.com/help/en/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/developer-reference/api-rocketmq-2022-08-01-createinstance).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultGetZones = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst createVPC = new alicloud.vpc.Network(\"createVPC\", {\n    description: \"example\",\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: name,\n});\nconst createVSwitch = new alicloud.vpc.Switch(\"createVSwitch\", {\n    description: \"example\",\n    vpcId: createVPC.id,\n    cidrBlock: \"172.16.0.0/24\",\n    vswitchName: name,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultRocketMQInstance = new alicloud.rocketmq.RocketMQInstance(\"default\", {\n    productInfo: {\n        msgProcessSpec: \"rmq.u2.10xlarge\",\n        sendReceiveRatio: 0.3,\n        messageRetentionTime: 70,\n    },\n    serviceCode: \"rmq\",\n    paymentType: \"PayAsYouGo\",\n    instanceName: name,\n    subSeriesCode: \"cluster_ha\",\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    remark: \"example\",\n    ipWhitelists: [\n        \"192.168.0.0/16\",\n        \"10.10.0.0/16\",\n        \"172.168.0.0/16\",\n    ],\n    software: {\n        maintainTime: \"02:00-06:00\",\n    },\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    seriesCode: \"ultimate\",\n    networkInfo: {\n        vpcInfo: {\n            vpcId: createVPC.id,\n            vswitches: [{\n                vswitchId: createVSwitch.id,\n            }],\n        },\n        internetInfo: {\n            internetSpec: \"enable\",\n            flowOutType: \"payByBandwidth\",\n            flowOutBandwidth: 30,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ncreate_vpc = alicloud.vpc.Network(\"createVPC\",\n    description=\"example\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=name)\ncreate_v_switch = alicloud.vpc.Switch(\"createVSwitch\",\n    description=\"example\",\n    vpc_id=create_vpc.id,\n    cidr_block=\"172.16.0.0/24\",\n    vswitch_name=name,\n    zone_id=default_get_zones.zones[0].id)\ndefault_rocket_mq_instance = alicloud.rocketmq.RocketMQInstance(\"default\",\n    product_info={\n        \"msg_process_spec\": \"rmq.u2.10xlarge\",\n        \"send_receive_ratio\": 0.3,\n        \"message_retention_time\": 70,\n    },\n    service_code=\"rmq\",\n    payment_type=\"PayAsYouGo\",\n    instance_name=name,\n    sub_series_code=\"cluster_ha\",\n    resource_group_id=default.ids[0],\n    remark=\"example\",\n    ip_whitelists=[\n        \"192.168.0.0/16\",\n        \"10.10.0.0/16\",\n        \"172.168.0.0/16\",\n    ],\n    software={\n        \"maintain_time\": \"02:00-06:00\",\n    },\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    series_code=\"ultimate\",\n    network_info={\n        \"vpc_info\": {\n            \"vpc_id\": create_vpc.id,\n            \"vswitches\": [{\n                \"vswitch_id\": create_v_switch.id,\n            }],\n        },\n        \"internet_info\": {\n            \"internet_spec\": \"enable\",\n            \"flow_out_type\": \"payByBandwidth\",\n            \"flow_out_bandwidth\": 30,\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var createVPC = new AliCloud.Vpc.Network(\"createVPC\", new()\n    {\n        Description = \"example\",\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = name,\n    });\n\n    var createVSwitch = new AliCloud.Vpc.Switch(\"createVSwitch\", new()\n    {\n        Description = \"example\",\n        VpcId = createVPC.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        VswitchName = name,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultRocketMQInstance = new AliCloud.RocketMQ.RocketMQInstance(\"default\", new()\n    {\n        ProductInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceProductInfoArgs\n        {\n            MsgProcessSpec = \"rmq.u2.10xlarge\",\n            SendReceiveRatio = 0.3,\n            MessageRetentionTime = 70,\n        },\n        ServiceCode = \"rmq\",\n        PaymentType = \"PayAsYouGo\",\n        InstanceName = name,\n        SubSeriesCode = \"cluster_ha\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        Remark = \"example\",\n        IpWhitelists = new[]\n        {\n            \"192.168.0.0/16\",\n            \"10.10.0.0/16\",\n            \"172.168.0.0/16\",\n        },\n        Software = new AliCloud.RocketMQ.Inputs.RocketMQInstanceSoftwareArgs\n        {\n            MaintainTime = \"02:00-06:00\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        SeriesCode = \"ultimate\",\n        NetworkInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoArgs\n        {\n            VpcInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoVpcInfoArgs\n            {\n                VpcId = createVPC.Id,\n                Vswitches = new[]\n                {\n                    new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoVpcInfoVswitchArgs\n                    {\n                        VswitchId = createVSwitch.Id,\n                    },\n                },\n            },\n            InternetInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoInternetInfoArgs\n            {\n                InternetSpec = \"enable\",\n                FlowOutType = \"payByBandwidth\",\n                FlowOutBandwidth = 30,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rocketmq\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateVPC, err := vpc.NewNetwork(ctx, \"createVPC\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:     pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateVSwitch, err := vpc.NewSwitch(ctx, \"createVSwitch\", \u0026vpc.SwitchArgs{\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tVpcId:       createVPC.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rocketmq.NewRocketMQInstance(ctx, \"default\", \u0026rocketmq.RocketMQInstanceArgs{\n\t\t\tProductInfo: \u0026rocketmq.RocketMQInstanceProductInfoArgs{\n\t\t\t\tMsgProcessSpec:       pulumi.String(\"rmq.u2.10xlarge\"),\n\t\t\t\tSendReceiveRatio:     pulumi.Float64(0.3),\n\t\t\t\tMessageRetentionTime: pulumi.Int(70),\n\t\t\t},\n\t\t\tServiceCode:     pulumi.String(\"rmq\"),\n\t\t\tPaymentType:     pulumi.String(\"PayAsYouGo\"),\n\t\t\tInstanceName:    pulumi.String(name),\n\t\t\tSubSeriesCode:   pulumi.String(\"cluster_ha\"),\n\t\t\tResourceGroupId: pulumi.String(_default.Ids[0]),\n\t\t\tRemark:          pulumi.String(\"example\"),\n\t\t\tIpWhitelists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.0.0/16\"),\n\t\t\t\tpulumi.String(\"10.10.0.0/16\"),\n\t\t\t\tpulumi.String(\"172.168.0.0/16\"),\n\t\t\t},\n\t\t\tSoftware: \u0026rocketmq.RocketMQInstanceSoftwareArgs{\n\t\t\t\tMaintainTime: pulumi.String(\"02:00-06:00\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tSeriesCode: pulumi.String(\"ultimate\"),\n\t\t\tNetworkInfo: \u0026rocketmq.RocketMQInstanceNetworkInfoArgs{\n\t\t\t\tVpcInfo: \u0026rocketmq.RocketMQInstanceNetworkInfoVpcInfoArgs{\n\t\t\t\t\tVpcId: createVPC.ID(),\n\t\t\t\t\tVswitches: rocketmq.RocketMQInstanceNetworkInfoVpcInfoVswitchArray{\n\t\t\t\t\t\t\u0026rocketmq.RocketMQInstanceNetworkInfoVpcInfoVswitchArgs{\n\t\t\t\t\t\t\tVswitchId: createVSwitch.ID(),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tInternetInfo: \u0026rocketmq.RocketMQInstanceNetworkInfoInternetInfoArgs{\n\t\t\t\t\tInternetSpec:     pulumi.String(\"enable\"),\n\t\t\t\t\tFlowOutType:      pulumi.String(\"payByBandwidth\"),\n\t\t\t\t\tFlowOutBandwidth: pulumi.Int(30),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.rocketmq.RocketMQInstance;\nimport com.pulumi.alicloud.rocketmq.RocketMQInstanceArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceProductInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceSoftwareArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceNetworkInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceNetworkInfoVpcInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceNetworkInfoInternetInfoArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var createVPC = new Network(\"createVPC\", NetworkArgs.builder()\n            .description(\"example\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(name)\n            .build());\n\n        var createVSwitch = new Switch(\"createVSwitch\", SwitchArgs.builder()\n            .description(\"example\")\n            .vpcId(createVPC.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .vswitchName(name)\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultRocketMQInstance = new RocketMQInstance(\"defaultRocketMQInstance\", RocketMQInstanceArgs.builder()\n            .productInfo(RocketMQInstanceProductInfoArgs.builder()\n                .msgProcessSpec(\"rmq.u2.10xlarge\")\n                .sendReceiveRatio(0.3)\n                .messageRetentionTime(70)\n                .build())\n            .serviceCode(\"rmq\")\n            .paymentType(\"PayAsYouGo\")\n            .instanceName(name)\n            .subSeriesCode(\"cluster_ha\")\n            .resourceGroupId(default_.ids()[0])\n            .remark(\"example\")\n            .ipWhitelists(            \n                \"192.168.0.0/16\",\n                \"10.10.0.0/16\",\n                \"172.168.0.0/16\")\n            .software(RocketMQInstanceSoftwareArgs.builder()\n                .maintainTime(\"02:00-06:00\")\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .seriesCode(\"ultimate\")\n            .networkInfo(RocketMQInstanceNetworkInfoArgs.builder()\n                .vpcInfo(RocketMQInstanceNetworkInfoVpcInfoArgs.builder()\n                    .vpcId(createVPC.id())\n                    .vswitches(RocketMQInstanceNetworkInfoVpcInfoVswitchArgs.builder()\n                        .vswitchId(createVSwitch.id())\n                        .build())\n                    .build())\n                .internetInfo(RocketMQInstanceNetworkInfoInternetInfoArgs.builder()\n                    .internetSpec(\"enable\")\n                    .flowOutType(\"payByBandwidth\")\n                    .flowOutBandwidth(30)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createVPC:\n    type: alicloud:vpc:Network\n    properties:\n      description: example\n      cidrBlock: 172.16.0.0/12\n      vpcName: ${name}\n  createVSwitch:\n    type: alicloud:vpc:Switch\n    properties:\n      description: example\n      vpcId: ${createVPC.id}\n      cidrBlock: 172.16.0.0/24\n      vswitchName: ${name}\n      zoneId: ${defaultGetZones.zones[0].id}\n  defaultRocketMQInstance:\n    type: alicloud:rocketmq:RocketMQInstance\n    name: default\n    properties:\n      productInfo:\n        msgProcessSpec: rmq.u2.10xlarge\n        sendReceiveRatio: '0.3'\n        messageRetentionTime: '70'\n      serviceCode: rmq\n      paymentType: PayAsYouGo\n      instanceName: ${name}\n      subSeriesCode: cluster_ha\n      resourceGroupId: ${default.ids[0]}\n      remark: example\n      ipWhitelists:\n        - 192.168.0.0/16\n        - 10.10.0.0/16\n        - 172.168.0.0/16\n      software:\n        maintainTime: 02:00-06:00\n      tags:\n        Created: TF\n        For: example\n      seriesCode: ultimate\n      networkInfo:\n        vpcInfo:\n          vpcId: ${createVPC.id}\n          vswitches:\n            - vswitchId: ${createVSwitch.id}\n        internetInfo:\n          internetSpec: enable\n          flowOutType: payByBandwidth\n          flowOutBandwidth: '30'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.rocketmq.RocketMQInstance`\" pulumi-lang-dotnet=\"`alicloud.rocketmq.RocketMQInstance`\" pulumi-lang-go=\"`rocketmq.RocketMQInstance`\" pulumi-lang-python=\"`rocketmq.RocketMQInstance`\" pulumi-lang-yaml=\"`alicloud.rocketmq.RocketMQInstance`\" pulumi-lang-java=\"`alicloud.rocketmq.RocketMQInstance`\"\u003e`alicloud.rocketmq.RocketMQInstance`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.rocketmq.RocketMQInstance`\" pulumi-lang-dotnet=\"`alicloud.rocketmq.RocketMQInstance`\" pulumi-lang-go=\"`rocketmq.RocketMQInstance`\" pulumi-lang-python=\"`rocketmq.RocketMQInstance`\" pulumi-lang-yaml=\"`alicloud.rocketmq.RocketMQInstance`\" pulumi-lang-java=\"`alicloud.rocketmq.RocketMQInstance`\"\u003e`alicloud.rocketmq.RocketMQInstance`\u003c/span\u003e resource allows you to manage  \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"Subscription\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRocketMQ Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rocketmq/rocketMQInstance:RocketMQInstance example \u003cid\u003e\n```\n\n","properties":{"aclInfo":{"$ref":"#/types/alicloud:rocketmq/RocketMQInstanceAclInfo:RocketMQInstanceAclInfo","description":"The access control list for the instance. See \u003cspan pulumi-lang-nodejs=\"`aclInfo`\" pulumi-lang-dotnet=\"`AclInfo`\" pulumi-lang-go=\"`aclInfo`\" pulumi-lang-python=\"`acl_info`\" pulumi-lang-yaml=\"`aclInfo`\" pulumi-lang-java=\"`aclInfo`\"\u003e`acl_info`\u003c/span\u003e below.\n"},"autoRenew":{"type":"boolean","description":"Whether to enable auto-renewal. This parameter is only applicable when the payment type for the instance is Subscription (prepaid).\n- true: Enable auto-renewal\n- false: Disable auto-renewal\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period. This parameter is only valid when auto-renewal is enabled. Unit: months.\n\nThe values can be as follows:\n- Monthly renewal: 1, 2, 3, 6, 12\n"},"autoRenewPeriodUnit":{"type":"string","description":"The minimum periodic unit for the duration of auto-renewal. This parameter is only valid when auto-renewal is enabled. Valid values: `Month`, `Year`.\n"},"commodityCode":{"type":"string","description":"Commodity code\n\nons_rmqsub_public_cn: Package year and month instance\n\nons_rmqpost_public_cn: Pay-As-You-Go instance\n\nNext: Serverless instances\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"instanceName":{"type":"string","description":"The name of instance\n"},"ipWhitelists":{"type":"array","items":{"type":"string"},"description":"The ip whitelist.\n"},"networkInfo":{"$ref":"#/types/alicloud:rocketmq/RocketMQInstanceNetworkInfo:RocketMQInstanceNetworkInfo","description":"Instance network configuration information See \u003cspan pulumi-lang-nodejs=\"`networkInfo`\" pulumi-lang-dotnet=\"`NetworkInfo`\" pulumi-lang-go=\"`networkInfo`\" pulumi-lang-python=\"`network_info`\" pulumi-lang-yaml=\"`networkInfo`\" pulumi-lang-java=\"`networkInfo`\"\u003e`network_info`\u003c/span\u003e below.\n"},"paymentType":{"type":"string","description":"The payment type for the instance. Alibaba Cloud Message Queue RocketMQ version supports two types of payment:\n\nThe parameter values are as follows:\n- PayAsYouGo: Pay-as-you-go, a post-payment model where you pay after usage.\n- Subscription: Subscription-based, a pre-payment model where you pay before usage.\n\nFor more information, please refer to [Billing Methods](https://help.aliyun.com/zh/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/product-overview/overview-2).\n"},"period":{"type":"integer","description":"Duration of purchase. This parameter is only valid when the payment type for the instance is Subscription (prepaid).\n\nThe values can be as follows:\n- Monthly purchase: 1, 2, 3, 4, 5, 6\n- Annual purchase: 1, 2, 3\n"},"periodUnit":{"type":"string","description":"The minimum periodic unit for the duration of purchase.\n\nThe parameter values are as follows:\n- Month: Purchase on a monthly basis\n- Year: Purchase on an annual basis\n"},"productInfo":{"$ref":"#/types/alicloud:rocketmq/RocketMQInstanceProductInfo:RocketMQInstanceProductInfo","description":"product info See \u003cspan pulumi-lang-nodejs=\"`productInfo`\" pulumi-lang-dotnet=\"`ProductInfo`\" pulumi-lang-go=\"`productInfo`\" pulumi-lang-python=\"`product_info`\" pulumi-lang-yaml=\"`productInfo`\" pulumi-lang-java=\"`productInfo`\"\u003e`product_info`\u003c/span\u003e below.\n"},"regionId":{"type":"string","description":"(Available since v1.245.0) The ID of the region in which the instance resides.\n"},"remark":{"type":"string","description":"Custom description\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"seriesCode":{"type":"string","description":"The primary series encoding for the instance. For specific differences between the primary series, please refer to [Product Selection](https://help.aliyun.com/zh/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/product-overview/instance-selection).\n\nThe parameter values are as follows:\n- standard: Standard Edition\n- ultimate: Platinum Edition\n- professional: Professional Edition\n"},"serviceCode":{"type":"string","description":"The code of the service code instance. The code of the RocketMQ is rmq.\n"},"software":{"$ref":"#/types/alicloud:rocketmq/RocketMQInstanceSoftware:RocketMQInstanceSoftware","description":"Instance software information. See \u003cspan pulumi-lang-nodejs=\"`software`\" pulumi-lang-dotnet=\"`Software`\" pulumi-lang-go=\"`software`\" pulumi-lang-python=\"`software`\" pulumi-lang-yaml=\"`software`\" pulumi-lang-java=\"`software`\"\u003e`software`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the instance\n"},"subSeriesCode":{"type":"string","description":"The sub-series encoding for the instance. For specific differences between the sub-series, please refer to [Product Selection](https://help.aliyun.com/zh/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/product-overview/instance-selection).\n\nThe parameter values are as follows:\n- cluster_ha: Cluster High Availability Edition\n- single_node: Single Node Testing Edition\n- serverless：Serverless instance\n**NOTE:** From version 1.245.0, \u003cspan pulumi-lang-nodejs=\"`subSeriesCode`\" pulumi-lang-dotnet=\"`SubSeriesCode`\" pulumi-lang-go=\"`subSeriesCode`\" pulumi-lang-python=\"`sub_series_code`\" pulumi-lang-yaml=\"`subSeriesCode`\" pulumi-lang-java=\"`subSeriesCode`\"\u003e`sub_series_code`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`serverless`\" pulumi-lang-dotnet=\"`Serverless`\" pulumi-lang-go=\"`serverless`\" pulumi-lang-python=\"`serverless`\" pulumi-lang-yaml=\"`serverless`\" pulumi-lang-java=\"`serverless`\"\u003e`serverless`\u003c/span\u003e.\nWhen selecting the primary series as ultimate (Platinum Edition), the sub-series can only be chosen as\u003cspan pulumi-lang-nodejs=\" clusterHa \" pulumi-lang-dotnet=\" ClusterHa \" pulumi-lang-go=\" clusterHa \" pulumi-lang-python=\" cluster_ha \" pulumi-lang-yaml=\" clusterHa \" pulumi-lang-java=\" clusterHa \"\u003e cluster_ha \u003c/span\u003e(Cluster High Availability Edition).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The resource label.\n"}},"required":["aclInfo","autoRenewPeriodUnit","commodityCode","createTime","ipWhitelists","networkInfo","paymentType","periodUnit","regionId","resourceGroupId","seriesCode","serviceCode","software","status","subSeriesCode"],"inputProperties":{"aclInfo":{"$ref":"#/types/alicloud:rocketmq/RocketMQInstanceAclInfo:RocketMQInstanceAclInfo","description":"The access control list for the instance. See \u003cspan pulumi-lang-nodejs=\"`aclInfo`\" pulumi-lang-dotnet=\"`AclInfo`\" pulumi-lang-go=\"`aclInfo`\" pulumi-lang-python=\"`acl_info`\" pulumi-lang-yaml=\"`aclInfo`\" pulumi-lang-java=\"`aclInfo`\"\u003e`acl_info`\u003c/span\u003e below.\n"},"autoRenew":{"type":"boolean","description":"Whether to enable auto-renewal. This parameter is only applicable when the payment type for the instance is Subscription (prepaid).\n- true: Enable auto-renewal\n- false: Disable auto-renewal\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period. This parameter is only valid when auto-renewal is enabled. Unit: months.\n\nThe values can be as follows:\n- Monthly renewal: 1, 2, 3, 6, 12\n"},"autoRenewPeriodUnit":{"type":"string","description":"The minimum periodic unit for the duration of auto-renewal. This parameter is only valid when auto-renewal is enabled. Valid values: `Month`, `Year`.\n"},"commodityCode":{"type":"string","description":"Commodity code\n\nons_rmqsub_public_cn: Package year and month instance\n\nons_rmqpost_public_cn: Pay-As-You-Go instance\n\nNext: Serverless instances\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of instance\n"},"ipWhitelists":{"type":"array","items":{"type":"string"},"description":"The ip whitelist.\n"},"networkInfo":{"$ref":"#/types/alicloud:rocketmq/RocketMQInstanceNetworkInfo:RocketMQInstanceNetworkInfo","description":"Instance network configuration information See \u003cspan pulumi-lang-nodejs=\"`networkInfo`\" pulumi-lang-dotnet=\"`NetworkInfo`\" pulumi-lang-go=\"`networkInfo`\" pulumi-lang-python=\"`network_info`\" pulumi-lang-yaml=\"`networkInfo`\" pulumi-lang-java=\"`networkInfo`\"\u003e`network_info`\u003c/span\u003e below.\n"},"paymentType":{"type":"string","description":"The payment type for the instance. Alibaba Cloud Message Queue RocketMQ version supports two types of payment:\n\nThe parameter values are as follows:\n- PayAsYouGo: Pay-as-you-go, a post-payment model where you pay after usage.\n- Subscription: Subscription-based, a pre-payment model where you pay before usage.\n\nFor more information, please refer to [Billing Methods](https://help.aliyun.com/zh/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/product-overview/overview-2).\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Duration of purchase. This parameter is only valid when the payment type for the instance is Subscription (prepaid).\n\nThe values can be as follows:\n- Monthly purchase: 1, 2, 3, 4, 5, 6\n- Annual purchase: 1, 2, 3\n"},"periodUnit":{"type":"string","description":"The minimum periodic unit for the duration of purchase.\n\nThe parameter values are as follows:\n- Month: Purchase on a monthly basis\n- Year: Purchase on an annual basis\n"},"productInfo":{"$ref":"#/types/alicloud:rocketmq/RocketMQInstanceProductInfo:RocketMQInstanceProductInfo","description":"product info See \u003cspan pulumi-lang-nodejs=\"`productInfo`\" pulumi-lang-dotnet=\"`ProductInfo`\" pulumi-lang-go=\"`productInfo`\" pulumi-lang-python=\"`product_info`\" pulumi-lang-yaml=\"`productInfo`\" pulumi-lang-java=\"`productInfo`\"\u003e`product_info`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"remark":{"type":"string","description":"Custom description\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"seriesCode":{"type":"string","description":"The primary series encoding for the instance. For specific differences between the primary series, please refer to [Product Selection](https://help.aliyun.com/zh/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/product-overview/instance-selection).\n\nThe parameter values are as follows:\n- standard: Standard Edition\n- ultimate: Platinum Edition\n- professional: Professional Edition\n","willReplaceOnChanges":true},"serviceCode":{"type":"string","description":"The code of the service code instance. The code of the RocketMQ is rmq.\n","willReplaceOnChanges":true},"software":{"$ref":"#/types/alicloud:rocketmq/RocketMQInstanceSoftware:RocketMQInstanceSoftware","description":"Instance software information. See \u003cspan pulumi-lang-nodejs=\"`software`\" pulumi-lang-dotnet=\"`Software`\" pulumi-lang-go=\"`software`\" pulumi-lang-python=\"`software`\" pulumi-lang-yaml=\"`software`\" pulumi-lang-java=\"`software`\"\u003e`software`\u003c/span\u003e below.\n"},"subSeriesCode":{"type":"string","description":"The sub-series encoding for the instance. For specific differences between the sub-series, please refer to [Product Selection](https://help.aliyun.com/zh/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/product-overview/instance-selection).\n\nThe parameter values are as follows:\n- cluster_ha: Cluster High Availability Edition\n- single_node: Single Node Testing Edition\n- serverless：Serverless instance\n**NOTE:** From version 1.245.0, \u003cspan pulumi-lang-nodejs=\"`subSeriesCode`\" pulumi-lang-dotnet=\"`SubSeriesCode`\" pulumi-lang-go=\"`subSeriesCode`\" pulumi-lang-python=\"`sub_series_code`\" pulumi-lang-yaml=\"`subSeriesCode`\" pulumi-lang-java=\"`subSeriesCode`\"\u003e`sub_series_code`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`serverless`\" pulumi-lang-dotnet=\"`Serverless`\" pulumi-lang-go=\"`serverless`\" pulumi-lang-python=\"`serverless`\" pulumi-lang-yaml=\"`serverless`\" pulumi-lang-java=\"`serverless`\"\u003e`serverless`\u003c/span\u003e.\nWhen selecting the primary series as ultimate (Platinum Edition), the sub-series can only be chosen as\u003cspan pulumi-lang-nodejs=\" clusterHa \" pulumi-lang-dotnet=\" ClusterHa \" pulumi-lang-go=\" clusterHa \" pulumi-lang-python=\" cluster_ha \" pulumi-lang-yaml=\" clusterHa \" pulumi-lang-java=\" clusterHa \"\u003e cluster_ha \u003c/span\u003e(Cluster High Availability Edition).\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The resource label.\n"}},"requiredInputs":["networkInfo","paymentType","seriesCode","serviceCode","subSeriesCode"],"stateInputs":{"description":"Input properties used for looking up and filtering RocketMQInstance resources.\n","properties":{"aclInfo":{"$ref":"#/types/alicloud:rocketmq/RocketMQInstanceAclInfo:RocketMQInstanceAclInfo","description":"The access control list for the instance. See \u003cspan pulumi-lang-nodejs=\"`aclInfo`\" pulumi-lang-dotnet=\"`AclInfo`\" pulumi-lang-go=\"`aclInfo`\" pulumi-lang-python=\"`acl_info`\" pulumi-lang-yaml=\"`aclInfo`\" pulumi-lang-java=\"`aclInfo`\"\u003e`acl_info`\u003c/span\u003e below.\n"},"autoRenew":{"type":"boolean","description":"Whether to enable auto-renewal. This parameter is only applicable when the payment type for the instance is Subscription (prepaid).\n- true: Enable auto-renewal\n- false: Disable auto-renewal\n"},"autoRenewPeriod":{"type":"integer","description":"Auto-renewal period. This parameter is only valid when auto-renewal is enabled. Unit: months.\n\nThe values can be as follows:\n- Monthly renewal: 1, 2, 3, 6, 12\n"},"autoRenewPeriodUnit":{"type":"string","description":"The minimum periodic unit for the duration of auto-renewal. This parameter is only valid when auto-renewal is enabled. Valid values: `Month`, `Year`.\n"},"commodityCode":{"type":"string","description":"Commodity code\n\nons_rmqsub_public_cn: Package year and month instance\n\nons_rmqpost_public_cn: Pay-As-You-Go instance\n\nNext: Serverless instances\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource\n"},"instanceName":{"type":"string","description":"The name of instance\n"},"ipWhitelists":{"type":"array","items":{"type":"string"},"description":"The ip whitelist.\n"},"networkInfo":{"$ref":"#/types/alicloud:rocketmq/RocketMQInstanceNetworkInfo:RocketMQInstanceNetworkInfo","description":"Instance network configuration information See \u003cspan pulumi-lang-nodejs=\"`networkInfo`\" pulumi-lang-dotnet=\"`NetworkInfo`\" pulumi-lang-go=\"`networkInfo`\" pulumi-lang-python=\"`network_info`\" pulumi-lang-yaml=\"`networkInfo`\" pulumi-lang-java=\"`networkInfo`\"\u003e`network_info`\u003c/span\u003e below.\n"},"paymentType":{"type":"string","description":"The payment type for the instance. Alibaba Cloud Message Queue RocketMQ version supports two types of payment:\n\nThe parameter values are as follows:\n- PayAsYouGo: Pay-as-you-go, a post-payment model where you pay after usage.\n- Subscription: Subscription-based, a pre-payment model where you pay before usage.\n\nFor more information, please refer to [Billing Methods](https://help.aliyun.com/zh/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/product-overview/overview-2).\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Duration of purchase. This parameter is only valid when the payment type for the instance is Subscription (prepaid).\n\nThe values can be as follows:\n- Monthly purchase: 1, 2, 3, 4, 5, 6\n- Annual purchase: 1, 2, 3\n"},"periodUnit":{"type":"string","description":"The minimum periodic unit for the duration of purchase.\n\nThe parameter values are as follows:\n- Month: Purchase on a monthly basis\n- Year: Purchase on an annual basis\n"},"productInfo":{"$ref":"#/types/alicloud:rocketmq/RocketMQInstanceProductInfo:RocketMQInstanceProductInfo","description":"product info See \u003cspan pulumi-lang-nodejs=\"`productInfo`\" pulumi-lang-dotnet=\"`ProductInfo`\" pulumi-lang-go=\"`productInfo`\" pulumi-lang-python=\"`product_info`\" pulumi-lang-yaml=\"`productInfo`\" pulumi-lang-java=\"`productInfo`\"\u003e`product_info`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"(Available since v1.245.0) The ID of the region in which the instance resides.\n"},"remark":{"type":"string","description":"Custom description\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"seriesCode":{"type":"string","description":"The primary series encoding for the instance. For specific differences between the primary series, please refer to [Product Selection](https://help.aliyun.com/zh/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/product-overview/instance-selection).\n\nThe parameter values are as follows:\n- standard: Standard Edition\n- ultimate: Platinum Edition\n- professional: Professional Edition\n","willReplaceOnChanges":true},"serviceCode":{"type":"string","description":"The code of the service code instance. The code of the RocketMQ is rmq.\n","willReplaceOnChanges":true},"software":{"$ref":"#/types/alicloud:rocketmq/RocketMQInstanceSoftware:RocketMQInstanceSoftware","description":"Instance software information. See \u003cspan pulumi-lang-nodejs=\"`software`\" pulumi-lang-dotnet=\"`Software`\" pulumi-lang-go=\"`software`\" pulumi-lang-python=\"`software`\" pulumi-lang-yaml=\"`software`\" pulumi-lang-java=\"`software`\"\u003e`software`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"The status of the instance\n"},"subSeriesCode":{"type":"string","description":"The sub-series encoding for the instance. For specific differences between the sub-series, please refer to [Product Selection](https://help.aliyun.com/zh/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/product-overview/instance-selection).\n\nThe parameter values are as follows:\n- cluster_ha: Cluster High Availability Edition\n- single_node: Single Node Testing Edition\n- serverless：Serverless instance\n**NOTE:** From version 1.245.0, \u003cspan pulumi-lang-nodejs=\"`subSeriesCode`\" pulumi-lang-dotnet=\"`SubSeriesCode`\" pulumi-lang-go=\"`subSeriesCode`\" pulumi-lang-python=\"`sub_series_code`\" pulumi-lang-yaml=\"`subSeriesCode`\" pulumi-lang-java=\"`subSeriesCode`\"\u003e`sub_series_code`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`serverless`\" pulumi-lang-dotnet=\"`Serverless`\" pulumi-lang-go=\"`serverless`\" pulumi-lang-python=\"`serverless`\" pulumi-lang-yaml=\"`serverless`\" pulumi-lang-java=\"`serverless`\"\u003e`serverless`\u003c/span\u003e.\nWhen selecting the primary series as ultimate (Platinum Edition), the sub-series can only be chosen as\u003cspan pulumi-lang-nodejs=\" clusterHa \" pulumi-lang-dotnet=\" ClusterHa \" pulumi-lang-go=\" clusterHa \" pulumi-lang-python=\" cluster_ha \" pulumi-lang-yaml=\" clusterHa \" pulumi-lang-java=\" clusterHa \"\u003e cluster_ha \u003c/span\u003e(Cluster High Availability Edition).\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The resource label.\n"}},"type":"object"}},"alicloud:rocketmq/rocketMQTopic:RocketMQTopic":{"description":"Provides a RocketMQ Topic resource. \n\nFor information about RocketMQ Topic and how to use it, see [What is Topic](https://www.alibabacloud.com/help/en/apsaramq-for-rocketmq/cloud-message-queue-rocketmq-5-x-series/developer-reference/api-rocketmq-2022-08-01-createtopic).\n\n\u003e **NOTE:** Available since v1.211.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst createVpc = new alicloud.vpc.Network(\"createVpc\", {\n    description: \"example\",\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: name,\n});\nconst createVswitch = new alicloud.vpc.Switch(\"createVswitch\", {\n    description: \"example\",\n    vpcId: createVpc.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    cidrBlock: \"172.16.0.0/24\",\n    vswitchName: name,\n});\nconst createInstance = new alicloud.rocketmq.RocketMQInstance(\"createInstance\", {\n    productInfo: {\n        msgProcessSpec: \"rmq.u2.10xlarge\",\n        sendReceiveRatio: 0.3,\n        messageRetentionTime: 70,\n    },\n    serviceCode: \"rmq\",\n    paymentType: \"PayAsYouGo\",\n    instanceName: name,\n    subSeriesCode: \"cluster_ha\",\n    remark: \"example\",\n    ipWhitelists: [\n        \"192.168.0.0/16\",\n        \"10.10.0.0/16\",\n        \"172.168.0.0/16\",\n    ],\n    software: {\n        maintainTime: \"02:00-06:00\",\n    },\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    seriesCode: \"ultimate\",\n    networkInfo: {\n        vpcInfo: {\n            vpcId: createVpc.id,\n            vswitches: [{\n                vswitchId: createVswitch.id,\n            }],\n        },\n        internetInfo: {\n            internetSpec: \"enable\",\n            flowOutType: \"payByBandwidth\",\n            flowOutBandwidth: 30,\n        },\n    },\n});\nconst defaultRocketMQTopic = new alicloud.rocketmq.RocketMQTopic(\"default\", {\n    remark: \"example\",\n    instanceId: createInstance.id,\n    messageType: \"NORMAL\",\n    topicName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ncreate_vpc = alicloud.vpc.Network(\"createVpc\",\n    description=\"example\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=name)\ncreate_vswitch = alicloud.vpc.Switch(\"createVswitch\",\n    description=\"example\",\n    vpc_id=create_vpc.id,\n    zone_id=default.zones[0].id,\n    cidr_block=\"172.16.0.0/24\",\n    vswitch_name=name)\ncreate_instance = alicloud.rocketmq.RocketMQInstance(\"createInstance\",\n    product_info={\n        \"msg_process_spec\": \"rmq.u2.10xlarge\",\n        \"send_receive_ratio\": 0.3,\n        \"message_retention_time\": 70,\n    },\n    service_code=\"rmq\",\n    payment_type=\"PayAsYouGo\",\n    instance_name=name,\n    sub_series_code=\"cluster_ha\",\n    remark=\"example\",\n    ip_whitelists=[\n        \"192.168.0.0/16\",\n        \"10.10.0.0/16\",\n        \"172.168.0.0/16\",\n    ],\n    software={\n        \"maintain_time\": \"02:00-06:00\",\n    },\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    series_code=\"ultimate\",\n    network_info={\n        \"vpc_info\": {\n            \"vpc_id\": create_vpc.id,\n            \"vswitches\": [{\n                \"vswitch_id\": create_vswitch.id,\n            }],\n        },\n        \"internet_info\": {\n            \"internet_spec\": \"enable\",\n            \"flow_out_type\": \"payByBandwidth\",\n            \"flow_out_bandwidth\": 30,\n        },\n    })\ndefault_rocket_mq_topic = alicloud.rocketmq.RocketMQTopic(\"default\",\n    remark=\"example\",\n    instance_id=create_instance.id,\n    message_type=\"NORMAL\",\n    topic_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var createVpc = new AliCloud.Vpc.Network(\"createVpc\", new()\n    {\n        Description = \"example\",\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = name,\n    });\n\n    var createVswitch = new AliCloud.Vpc.Switch(\"createVswitch\", new()\n    {\n        Description = \"example\",\n        VpcId = createVpc.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        CidrBlock = \"172.16.0.0/24\",\n        VswitchName = name,\n    });\n\n    var createInstance = new AliCloud.RocketMQ.RocketMQInstance(\"createInstance\", new()\n    {\n        ProductInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceProductInfoArgs\n        {\n            MsgProcessSpec = \"rmq.u2.10xlarge\",\n            SendReceiveRatio = 0.3,\n            MessageRetentionTime = 70,\n        },\n        ServiceCode = \"rmq\",\n        PaymentType = \"PayAsYouGo\",\n        InstanceName = name,\n        SubSeriesCode = \"cluster_ha\",\n        Remark = \"example\",\n        IpWhitelists = new[]\n        {\n            \"192.168.0.0/16\",\n            \"10.10.0.0/16\",\n            \"172.168.0.0/16\",\n        },\n        Software = new AliCloud.RocketMQ.Inputs.RocketMQInstanceSoftwareArgs\n        {\n            MaintainTime = \"02:00-06:00\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        SeriesCode = \"ultimate\",\n        NetworkInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoArgs\n        {\n            VpcInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoVpcInfoArgs\n            {\n                VpcId = createVpc.Id,\n                Vswitches = new[]\n                {\n                    new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoVpcInfoVswitchArgs\n                    {\n                        VswitchId = createVswitch.Id,\n                    },\n                },\n            },\n            InternetInfo = new AliCloud.RocketMQ.Inputs.RocketMQInstanceNetworkInfoInternetInfoArgs\n            {\n                InternetSpec = \"enable\",\n                FlowOutType = \"payByBandwidth\",\n                FlowOutBandwidth = 30,\n            },\n        },\n    });\n\n    var defaultRocketMQTopic = new AliCloud.RocketMQ.RocketMQTopic(\"default\", new()\n    {\n        Remark = \"example\",\n        InstanceId = createInstance.Id,\n        MessageType = \"NORMAL\",\n        TopicName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rocketmq\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateVpc, err := vpc.NewNetwork(ctx, \"createVpc\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:     pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateVswitch, err := vpc.NewSwitch(ctx, \"createVswitch\", \u0026vpc.SwitchArgs{\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tVpcId:       createVpc.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcreateInstance, err := rocketmq.NewRocketMQInstance(ctx, \"createInstance\", \u0026rocketmq.RocketMQInstanceArgs{\n\t\t\tProductInfo: \u0026rocketmq.RocketMQInstanceProductInfoArgs{\n\t\t\t\tMsgProcessSpec:       pulumi.String(\"rmq.u2.10xlarge\"),\n\t\t\t\tSendReceiveRatio:     pulumi.Float64(0.3),\n\t\t\t\tMessageRetentionTime: pulumi.Int(70),\n\t\t\t},\n\t\t\tServiceCode:   pulumi.String(\"rmq\"),\n\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\tInstanceName:  pulumi.String(name),\n\t\t\tSubSeriesCode: pulumi.String(\"cluster_ha\"),\n\t\t\tRemark:        pulumi.String(\"example\"),\n\t\t\tIpWhitelists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.0.0/16\"),\n\t\t\t\tpulumi.String(\"10.10.0.0/16\"),\n\t\t\t\tpulumi.String(\"172.168.0.0/16\"),\n\t\t\t},\n\t\t\tSoftware: \u0026rocketmq.RocketMQInstanceSoftwareArgs{\n\t\t\t\tMaintainTime: pulumi.String(\"02:00-06:00\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tSeriesCode: pulumi.String(\"ultimate\"),\n\t\t\tNetworkInfo: \u0026rocketmq.RocketMQInstanceNetworkInfoArgs{\n\t\t\t\tVpcInfo: \u0026rocketmq.RocketMQInstanceNetworkInfoVpcInfoArgs{\n\t\t\t\t\tVpcId: createVpc.ID(),\n\t\t\t\t\tVswitches: rocketmq.RocketMQInstanceNetworkInfoVpcInfoVswitchArray{\n\t\t\t\t\t\t\u0026rocketmq.RocketMQInstanceNetworkInfoVpcInfoVswitchArgs{\n\t\t\t\t\t\t\tVswitchId: createVswitch.ID(),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tInternetInfo: \u0026rocketmq.RocketMQInstanceNetworkInfoInternetInfoArgs{\n\t\t\t\t\tInternetSpec:     pulumi.String(\"enable\"),\n\t\t\t\t\tFlowOutType:      pulumi.String(\"payByBandwidth\"),\n\t\t\t\t\tFlowOutBandwidth: pulumi.Int(30),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rocketmq.NewRocketMQTopic(ctx, \"default\", \u0026rocketmq.RocketMQTopicArgs{\n\t\t\tRemark:      pulumi.String(\"example\"),\n\t\t\tInstanceId:  createInstance.ID(),\n\t\t\tMessageType: pulumi.String(\"NORMAL\"),\n\t\t\tTopicName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.rocketmq.RocketMQInstance;\nimport com.pulumi.alicloud.rocketmq.RocketMQInstanceArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceProductInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceSoftwareArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceNetworkInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceNetworkInfoVpcInfoArgs;\nimport com.pulumi.alicloud.rocketmq.inputs.RocketMQInstanceNetworkInfoInternetInfoArgs;\nimport com.pulumi.alicloud.rocketmq.RocketMQTopic;\nimport com.pulumi.alicloud.rocketmq.RocketMQTopicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var createVpc = new Network(\"createVpc\", NetworkArgs.builder()\n            .description(\"example\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(name)\n            .build());\n\n        var createVswitch = new Switch(\"createVswitch\", SwitchArgs.builder()\n            .description(\"example\")\n            .vpcId(createVpc.id())\n            .zoneId(default_.zones()[0].id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .vswitchName(name)\n            .build());\n\n        var createInstance = new RocketMQInstance(\"createInstance\", RocketMQInstanceArgs.builder()\n            .productInfo(RocketMQInstanceProductInfoArgs.builder()\n                .msgProcessSpec(\"rmq.u2.10xlarge\")\n                .sendReceiveRatio(0.3)\n                .messageRetentionTime(70)\n                .build())\n            .serviceCode(\"rmq\")\n            .paymentType(\"PayAsYouGo\")\n            .instanceName(name)\n            .subSeriesCode(\"cluster_ha\")\n            .remark(\"example\")\n            .ipWhitelists(            \n                \"192.168.0.0/16\",\n                \"10.10.0.0/16\",\n                \"172.168.0.0/16\")\n            .software(RocketMQInstanceSoftwareArgs.builder()\n                .maintainTime(\"02:00-06:00\")\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .seriesCode(\"ultimate\")\n            .networkInfo(RocketMQInstanceNetworkInfoArgs.builder()\n                .vpcInfo(RocketMQInstanceNetworkInfoVpcInfoArgs.builder()\n                    .vpcId(createVpc.id())\n                    .vswitches(RocketMQInstanceNetworkInfoVpcInfoVswitchArgs.builder()\n                        .vswitchId(createVswitch.id())\n                        .build())\n                    .build())\n                .internetInfo(RocketMQInstanceNetworkInfoInternetInfoArgs.builder()\n                    .internetSpec(\"enable\")\n                    .flowOutType(\"payByBandwidth\")\n                    .flowOutBandwidth(30)\n                    .build())\n                .build())\n            .build());\n\n        var defaultRocketMQTopic = new RocketMQTopic(\"defaultRocketMQTopic\", RocketMQTopicArgs.builder()\n            .remark(\"example\")\n            .instanceId(createInstance.id())\n            .messageType(\"NORMAL\")\n            .topicName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createVpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: example\n      cidrBlock: 172.16.0.0/12\n      vpcName: ${name}\n  createVswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      description: example\n      vpcId: ${createVpc.id}\n      zoneId: ${default.zones[0].id}\n      cidrBlock: 172.16.0.0/24\n      vswitchName: ${name}\n  createInstance:\n    type: alicloud:rocketmq:RocketMQInstance\n    properties:\n      productInfo:\n        msgProcessSpec: rmq.u2.10xlarge\n        sendReceiveRatio: '0.3'\n        messageRetentionTime: '70'\n      serviceCode: rmq\n      paymentType: PayAsYouGo\n      instanceName: ${name}\n      subSeriesCode: cluster_ha\n      remark: example\n      ipWhitelists:\n        - 192.168.0.0/16\n        - 10.10.0.0/16\n        - 172.168.0.0/16\n      software:\n        maintainTime: 02:00-06:00\n      tags:\n        Created: TF\n        For: example\n      seriesCode: ultimate\n      networkInfo:\n        vpcInfo:\n          vpcId: ${createVpc.id}\n          vswitches:\n            - vswitchId: ${createVswitch.id}\n        internetInfo:\n          internetSpec: enable\n          flowOutType: payByBandwidth\n          flowOutBandwidth: '30'\n  defaultRocketMQTopic:\n    type: alicloud:rocketmq:RocketMQTopic\n    name: default\n    properties:\n      remark: example\n      instanceId: ${createInstance.id}\n      messageType: NORMAL\n      topicName: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nRocketMQ Topic can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rocketmq/rocketMQTopic:RocketMQTopic example \u003cinstance_id\u003e:\u003ctopic_name\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"instanceId":{"type":"string","description":"Instance ID.\n"},"maxSendTps":{"type":"integer","description":"The maximum TPS for message sending.\n"},"messageType":{"type":"string","description":"Message type.\n"},"regionId":{"type":"string","description":"(Available since v1.247.0) The region ID to which the instance belongs.\n"},"remark":{"type":"string","description":"Custom remarks.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"topicName":{"type":"string","description":"Topic name and identification.\n"}},"required":["createTime","instanceId","regionId","status","topicName"],"inputProperties":{"instanceId":{"type":"string","description":"Instance ID.\n","willReplaceOnChanges":true},"maxSendTps":{"type":"integer","description":"The maximum TPS for message sending.\n"},"messageType":{"type":"string","description":"Message type.\n","willReplaceOnChanges":true},"remark":{"type":"string","description":"Custom remarks.\n"},"topicName":{"type":"string","description":"Topic name and identification.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId","topicName"],"stateInputs":{"description":"Input properties used for looking up and filtering RocketMQTopic resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"instanceId":{"type":"string","description":"Instance ID.\n","willReplaceOnChanges":true},"maxSendTps":{"type":"integer","description":"The maximum TPS for message sending.\n"},"messageType":{"type":"string","description":"Message type.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"(Available since v1.247.0) The region ID to which the instance belongs.\n"},"remark":{"type":"string","description":"Custom remarks.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"topicName":{"type":"string","description":"Topic name and identification.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:rocketmq/snatEntry:SnatEntry":{"description":"Provides a Sag SnatEntry resource. This topic describes how to add a SNAT entry to enable the SNAT function. The SNAT function can hide internal IP addresses and resolve private IP address conflicts. With this function, on-premises sites can access internal IP addresses, but cannot be accessed by internal IP addresses. If you do not add a SNAT entry, on-premises sites can access each other only when all related IP addresses do not conflict.\n\nFor information about Sag SnatEntry and how to use it, see [What is Sag SnatEntry](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/addsnatentry).\n\n\u003e **NOTE:** Available since v1.61.0.\n\n\u003e **NOTE:** Only the following regions support. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst sagId = config.get(\"sagId\") || \"sag-9bifk***\";\nconst _default = new alicloud.sag.SnatEntry(\"default\", {\n    sagId: sagId,\n    cidrBlock: \"192.168.7.0/24\",\n    snatIp: \"192.0.0.2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nsag_id = config.get(\"sagId\")\nif sag_id is None:\n    sag_id = \"sag-9bifk***\"\ndefault = alicloud.sag.SnatEntry(\"default\",\n    sag_id=sag_id,\n    cidr_block=\"192.168.7.0/24\",\n    snat_ip=\"192.0.0.2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var sagId = config.Get(\"sagId\") ?? \"sag-9bifk***\";\n    var @default = new AliCloud.Sag.SnatEntry(\"default\", new()\n    {\n        SagId = sagId,\n        CidrBlock = \"192.168.7.0/24\",\n        SnatIp = \"192.0.0.2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsagId := \"sag-9bifk***\"\n\t\tif param := cfg.Get(\"sagId\"); param != \"\" {\n\t\t\tsagId = param\n\t\t}\n\t\t_, err := sag.NewSnatEntry(ctx, \"default\", \u0026sag.SnatEntryArgs{\n\t\t\tSagId:     pulumi.String(sagId),\n\t\t\tCidrBlock: pulumi.String(\"192.168.7.0/24\"),\n\t\t\tSnatIp:    pulumi.String(\"192.0.0.2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.SnatEntry;\nimport com.pulumi.alicloud.sag.SnatEntryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var sagId = config.get(\"sagId\").orElse(\"sag-9bifk***\");\n        var default_ = new SnatEntry(\"default\", SnatEntryArgs.builder()\n            .sagId(sagId)\n            .cidrBlock(\"192.168.7.0/24\")\n            .snatIp(\"192.0.0.2\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  sagId:\n    type: string\n    default: sag-9bifk***\nresources:\n  default:\n    type: alicloud:sag:SnatEntry\n    properties:\n      sagId: ${sagId}\n      cidrBlock: 192.168.7.0/24\n      snatIp: 192.0.0.2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe Sag SnatEntry can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rocketmq/snatEntry:SnatEntry example sag-abc123456:snat-abc123456\n```\n\n","properties":{"cidrBlock":{"type":"string","description":"The destination CIDR block.\n"},"sagId":{"type":"string","description":"The ID of the SAG instance.\n"},"snatIp":{"type":"string","description":"The public IP address.\n"}},"required":["cidrBlock","sagId","snatIp"],"inputProperties":{"cidrBlock":{"type":"string","description":"The destination CIDR block.\n","willReplaceOnChanges":true},"sagId":{"type":"string","description":"The ID of the SAG instance.\n","willReplaceOnChanges":true},"snatIp":{"type":"string","description":"The public IP address.\n","willReplaceOnChanges":true}},"requiredInputs":["cidrBlock","sagId","snatIp"],"stateInputs":{"description":"Input properties used for looking up and filtering SnatEntry resources.\n","properties":{"cidrBlock":{"type":"string","description":"The destination CIDR block.\n","willReplaceOnChanges":true},"sagId":{"type":"string","description":"The ID of the SAG instance.\n","willReplaceOnChanges":true},"snatIp":{"type":"string","description":"The public IP address.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"alicloud.rocketmq/snatentry.SnatEntry has been deprecated in favor of alicloud.sag/snatentry.SnatEntry"},"alicloud:rocketmq/topic:Topic":{"description":"Provides an ONS topic resource.\n\nFor more information about how to use it, see [RocketMQ Topic Management API](https://www.alibabacloud.com/help/doc-detail/29591.html). \n\n\u003e **NOTE:** Available in 1.53.0+\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"onsInstanceName\";\nconst topic = config.get(\"topic\") || \"onsTopicName\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultInstance = new alicloud.rocketmq.Instance(\"default\", {\n    instanceName: `${name}-${_default.result}`,\n    remark: \"default_ons_instance_remark\",\n});\nconst defaultTopic = new alicloud.rocketmq.Topic(\"default\", {\n    topicName: topic,\n    instanceId: defaultInstance.id,\n    messageType: 0,\n    remark: \"dafault_ons_topic_remark\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"onsInstanceName\"\ntopic = config.get(\"topic\")\nif topic is None:\n    topic = \"onsTopicName\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_instance = alicloud.rocketmq.Instance(\"default\",\n    instance_name=f\"{name}-{default['result']}\",\n    remark=\"default_ons_instance_remark\")\ndefault_topic = alicloud.rocketmq.Topic(\"default\",\n    topic_name=topic,\n    instance_id=default_instance.id,\n    message_type=0,\n    remark=\"dafault_ons_topic_remark\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"onsInstanceName\";\n    var topic = config.Get(\"topic\") ?? \"onsTopicName\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultInstance = new AliCloud.RocketMQ.Instance(\"default\", new()\n    {\n        InstanceName = $\"{name}-{@default.Result}\",\n        Remark = \"default_ons_instance_remark\",\n    });\n\n    var defaultTopic = new AliCloud.RocketMQ.Topic(\"default\", new()\n    {\n        TopicName = topic,\n        InstanceId = defaultInstance.Id,\n        MessageType = 0,\n        Remark = \"dafault_ons_topic_remark\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rocketmq\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"onsInstanceName\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\ttopic := \"onsTopicName\"\n\t\tif param := cfg.Get(\"topic\"); param != \"\" {\n\t\t\ttopic = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rocketmq.NewInstance(ctx, \"default\", \u0026rocketmq.InstanceArgs{\n\t\t\tInstanceName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tRemark:       pulumi.String(\"default_ons_instance_remark\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rocketmq.NewTopic(ctx, \"default\", \u0026rocketmq.TopicArgs{\n\t\t\tTopicName:   pulumi.String(topic),\n\t\t\tInstanceId:  defaultInstance.ID(),\n\t\t\tMessageType: pulumi.Int(0),\n\t\t\tRemark:      pulumi.String(\"dafault_ons_topic_remark\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.rocketmq.Instance;\nimport com.pulumi.alicloud.rocketmq.InstanceArgs;\nimport com.pulumi.alicloud.rocketmq.Topic;\nimport com.pulumi.alicloud.rocketmq.TopicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"onsInstanceName\");\n        final var topic = config.get(\"topic\").orElse(\"onsTopicName\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .instanceName(String.format(\"%s-%s\", name,default_.result()))\n            .remark(\"default_ons_instance_remark\")\n            .build());\n\n        var defaultTopic = new Topic(\"defaultTopic\", TopicArgs.builder()\n            .topicName(topic)\n            .instanceId(defaultInstance.id())\n            .messageType(0)\n            .remark(\"dafault_ons_topic_remark\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: onsInstanceName\n  topic:\n    type: string\n    default: onsTopicName\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultInstance:\n    type: alicloud:rocketmq:Instance\n    name: default\n    properties:\n      instanceName: ${name}-${default.result}\n      remark: default_ons_instance_remark\n  defaultTopic:\n    type: alicloud:rocketmq:Topic\n    name: default\n    properties:\n      topicName: ${topic}\n      instanceId: ${defaultInstance.id}\n      messageType: 0\n      remark: dafault_ons_topic_remark\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nONS TOPIC can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:rocketmq/topic:Topic topic MQ_INST_1234567890_Baso1234567:onsTopicDemo\n```\n\n","properties":{"instanceId":{"type":"string","description":"ID of the ONS Instance that owns the topics.\n"},"messageType":{"type":"integer","description":"The type of the message. Read [Ons Topic Create](https://www.alibabacloud.com/help/doc-detail/29591.html) for further details.\n"},"perm":{"type":"integer","description":"This attribute has been deprecated.\n","deprecationMessage":"Attribute perm has been deprecated and suggest removing it from your template."},"remark":{"type":"string","description":"This attribute is a concise description of topic. The length cannot exceed 128.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n\n\u003e **NOTE:** At least one of \u003cspan pulumi-lang-nodejs=\"`topicName`\" pulumi-lang-dotnet=\"`TopicName`\" pulumi-lang-go=\"`topicName`\" pulumi-lang-python=\"`topic_name`\" pulumi-lang-yaml=\"`topicName`\" pulumi-lang-java=\"`topicName`\"\u003e`topic_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`topic`\" pulumi-lang-dotnet=\"`Topic`\" pulumi-lang-go=\"`topic`\" pulumi-lang-python=\"`topic`\" pulumi-lang-yaml=\"`topic`\" pulumi-lang-java=\"`topic`\"\u003e`topic`\u003c/span\u003e should be set.\n"},"topic":{"type":"string","description":"Replaced by \u003cspan pulumi-lang-nodejs=\"`topicName`\" pulumi-lang-dotnet=\"`TopicName`\" pulumi-lang-go=\"`topicName`\" pulumi-lang-python=\"`topic_name`\" pulumi-lang-yaml=\"`topicName`\" pulumi-lang-java=\"`topicName`\"\u003e`topic_name`\u003c/span\u003e after version 1.97.0.\n","deprecationMessage":"Field 'topic' has been deprecated from version 1.97.0. Use 'topic_name' instead.","language":{"csharp":{"name":"TopicDeprecated"}}},"topicName":{"type":"string","description":"Name of the topic. Two topics on a single instance cannot have the same name and the name cannot start with 'GID' or 'CID'. The length cannot exceed 64 characters.\n"}},"required":["instanceId","messageType","perm","topic","topicName"],"inputProperties":{"instanceId":{"type":"string","description":"ID of the ONS Instance that owns the topics.\n","willReplaceOnChanges":true},"messageType":{"type":"integer","description":"The type of the message. Read [Ons Topic Create](https://www.alibabacloud.com/help/doc-detail/29591.html) for further details.\n","willReplaceOnChanges":true},"perm":{"type":"integer","description":"This attribute has been deprecated.\n","deprecationMessage":"Attribute perm has been deprecated and suggest removing it from your template."},"remark":{"type":"string","description":"This attribute is a concise description of topic. The length cannot exceed 128.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n\n\u003e **NOTE:** At least one of \u003cspan pulumi-lang-nodejs=\"`topicName`\" pulumi-lang-dotnet=\"`TopicName`\" pulumi-lang-go=\"`topicName`\" pulumi-lang-python=\"`topic_name`\" pulumi-lang-yaml=\"`topicName`\" pulumi-lang-java=\"`topicName`\"\u003e`topic_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`topic`\" pulumi-lang-dotnet=\"`Topic`\" pulumi-lang-go=\"`topic`\" pulumi-lang-python=\"`topic`\" pulumi-lang-yaml=\"`topic`\" pulumi-lang-java=\"`topic`\"\u003e`topic`\u003c/span\u003e should be set.\n"},"topic":{"type":"string","description":"Replaced by \u003cspan pulumi-lang-nodejs=\"`topicName`\" pulumi-lang-dotnet=\"`TopicName`\" pulumi-lang-go=\"`topicName`\" pulumi-lang-python=\"`topic_name`\" pulumi-lang-yaml=\"`topicName`\" pulumi-lang-java=\"`topicName`\"\u003e`topic_name`\u003c/span\u003e after version 1.97.0.\n","deprecationMessage":"Field 'topic' has been deprecated from version 1.97.0. Use 'topic_name' instead.","language":{"csharp":{"name":"TopicDeprecated"}},"willReplaceOnChanges":true},"topicName":{"type":"string","description":"Name of the topic. Two topics on a single instance cannot have the same name and the name cannot start with 'GID' or 'CID'. The length cannot exceed 64 characters.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId","messageType"],"stateInputs":{"description":"Input properties used for looking up and filtering Topic resources.\n","properties":{"instanceId":{"type":"string","description":"ID of the ONS Instance that owns the topics.\n","willReplaceOnChanges":true},"messageType":{"type":"integer","description":"The type of the message. Read [Ons Topic Create](https://www.alibabacloud.com/help/doc-detail/29591.html) for further details.\n","willReplaceOnChanges":true},"perm":{"type":"integer","description":"This attribute has been deprecated.\n","deprecationMessage":"Attribute perm has been deprecated and suggest removing it from your template."},"remark":{"type":"string","description":"This attribute is a concise description of topic. The length cannot exceed 128.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n\n\u003e **NOTE:** At least one of \u003cspan pulumi-lang-nodejs=\"`topicName`\" pulumi-lang-dotnet=\"`TopicName`\" pulumi-lang-go=\"`topicName`\" pulumi-lang-python=\"`topic_name`\" pulumi-lang-yaml=\"`topicName`\" pulumi-lang-java=\"`topicName`\"\u003e`topic_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`topic`\" pulumi-lang-dotnet=\"`Topic`\" pulumi-lang-go=\"`topic`\" pulumi-lang-python=\"`topic`\" pulumi-lang-yaml=\"`topic`\" pulumi-lang-java=\"`topic`\"\u003e`topic`\u003c/span\u003e should be set.\n"},"topic":{"type":"string","description":"Replaced by \u003cspan pulumi-lang-nodejs=\"`topicName`\" pulumi-lang-dotnet=\"`TopicName`\" pulumi-lang-go=\"`topicName`\" pulumi-lang-python=\"`topic_name`\" pulumi-lang-yaml=\"`topicName`\" pulumi-lang-java=\"`topicName`\"\u003e`topic_name`\u003c/span\u003e after version 1.97.0.\n","deprecationMessage":"Field 'topic' has been deprecated from version 1.97.0. Use 'topic_name' instead.","language":{"csharp":{"name":"TopicDeprecated"}},"willReplaceOnChanges":true},"topicName":{"type":"string","description":"Name of the topic. Two topics on a single instance cannot have the same name and the name cannot start with 'GID' or 'CID'. The length cannot exceed 64 characters.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ros/changeSet:ChangeSet":{"description":"Provides a ROS Change Set resource.\n\nFor information about ROS Change Set and how to use it, see [What is Change Set](https://www.alibabacloud.com/help/doc-detail/131051.htm).\n\n\u003e **NOTE:** Available since v1.105.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst example = new alicloud.ros.ChangeSet(\"example\", {\n    changeSetName: \"example_value\",\n    stackName: `tf-example-${_default.result}`,\n    changeSetType: \"CREATE\",\n    description: \"Test From Terraform\",\n    templateBody: \"{\\\"ROSTemplateFormatVersion\\\":\\\"2015-09-01\\\"}\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nexample = alicloud.ros.ChangeSet(\"example\",\n    change_set_name=\"example_value\",\n    stack_name=f\"tf-example-{default['result']}\",\n    change_set_type=\"CREATE\",\n    description=\"Test From Terraform\",\n    template_body=\"{\\\"ROSTemplateFormatVersion\\\":\\\"2015-09-01\\\"}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var example = new AliCloud.Ros.ChangeSet(\"example\", new()\n    {\n        ChangeSetName = \"example_value\",\n        StackName = $\"tf-example-{@default.Result}\",\n        ChangeSetType = \"CREATE\",\n        Description = \"Test From Terraform\",\n        TemplateBody = \"{\\\"ROSTemplateFormatVersion\\\":\\\"2015-09-01\\\"}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ros\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ros.NewChangeSet(ctx, \"example\", \u0026ros.ChangeSetArgs{\n\t\t\tChangeSetName: pulumi.String(\"example_value\"),\n\t\t\tStackName:     pulumi.Sprintf(\"tf-example-%v\", _default.Result),\n\t\t\tChangeSetType: pulumi.String(\"CREATE\"),\n\t\t\tDescription:   pulumi.String(\"Test From Terraform\"),\n\t\t\tTemplateBody:  pulumi.String(\"{\\\"ROSTemplateFormatVersion\\\":\\\"2015-09-01\\\"}\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ros.ChangeSet;\nimport com.pulumi.alicloud.ros.ChangeSetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var example = new ChangeSet(\"example\", ChangeSetArgs.builder()\n            .changeSetName(\"example_value\")\n            .stackName(String.format(\"tf-example-%s\", default_.result()))\n            .changeSetType(\"CREATE\")\n            .description(\"Test From Terraform\")\n            .templateBody(\"{\\\"ROSTemplateFormatVersion\\\":\\\"2015-09-01\\\"}\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  example:\n    type: alicloud:ros:ChangeSet\n    properties:\n      changeSetName: example_value\n      stackName: tf-example-${default.result}\n      changeSetType: CREATE\n      description: Test From Terraform\n      templateBody: '{\"ROSTemplateFormatVersion\":\"2015-09-01\"}'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nROS Change Set can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ros/changeSet:ChangeSet example \u003cchange_set_id\u003e\n```\n\n","properties":{"changeSetName":{"type":"string","description":"The name of the change set.  The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.\n"},"changeSetType":{"type":"string","description":"The type of the change set. Valid values:  CREATE: creates a change set for a new stack. UPDATE: creates a change set for an existing stack. IMPORT: creates a change set for a new stack or an existing stack to import non-ROS-managed resources. If you create a change set for a new stack, ROS creates a stack that has a unique stack ID. The stack is in the REVIEW_IN_PROGRESS state until you execute the change set.  You cannot use the UPDATE type to create a change set for a new stack or the CREATE type to create a change set for an existing stack.\n"},"description":{"type":"string","description":"The description of the change set. The description can be up to 1,024 bytes in length.\n"},"disableRollback":{"type":"boolean","description":"Specifies whether to disable rollback on stack creation failure. Default value: false.  Valid values:  true: disables rollback on stack creation failure. false: enables rollback on stack creation failure. Note This parameter takes effect only when ChangeSetType is set to CREATE or IMPORT.\n"},"notificationUrls":{"type":"array","items":{"type":"string"},"description":"The notification urls.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:ros/ChangeSetParameter:ChangeSetParameter"},"description":"Parameters.\n"},"ramRoleName":{"type":"string","description":"The ram role name.\n"},"replacementOption":{"type":"string","description":"The replacement option.\n"},"stackId":{"type":"string","description":"The ID of the stack for which you want to create the change set. ROS generates the change set by comparing the stack information with the information that you submit, such as a modified template or different inputs.\n"},"stackName":{"type":"string","description":"The name of the stack for which you want to create the change set.  The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.  Note This parameter takes effect only when ChangeSetType is set to CREATE or IMPORT.\n"},"stackPolicyBody":{"type":"string","description":"The stack policy body.\n"},"stackPolicyDuringUpdateBody":{"type":"string","description":"The stack policy during update body.\n"},"stackPolicyDuringUpdateUrl":{"type":"string","description":"The stack policy during update url.\n"},"stackPolicyUrl":{"type":"string","description":"The stack policy url.\n"},"status":{"type":"string","description":"The status of the change set.\n"},"templateBody":{"type":"string","description":"The structure that contains the template body. The template body must be 1 to 524,288 bytes in length.  If the length of the template body is longer than required, we recommend that you add parameters to the HTTP POST request body to avoid request failures due to excessive length of URLs.  You can specify one of TemplateBody or TemplateURL parameters, but you cannot specify both of them.\n"},"templateUrl":{"type":"string","description":"The template url.\n"},"timeoutInMinutes":{"type":"integer","description":"Timeout In Minutes.\n"},"usePreviousParameters":{"type":"boolean","description":"The use previous parameters.\n"}},"required":["changeSetName","parameters","stackId","status","timeoutInMinutes"],"inputProperties":{"changeSetName":{"type":"string","description":"The name of the change set.  The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.\n","willReplaceOnChanges":true},"changeSetType":{"type":"string","description":"The type of the change set. Valid values:  CREATE: creates a change set for a new stack. UPDATE: creates a change set for an existing stack. IMPORT: creates a change set for a new stack or an existing stack to import non-ROS-managed resources. If you create a change set for a new stack, ROS creates a stack that has a unique stack ID. The stack is in the REVIEW_IN_PROGRESS state until you execute the change set.  You cannot use the UPDATE type to create a change set for a new stack or the CREATE type to create a change set for an existing stack.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the change set. The description can be up to 1,024 bytes in length.\n","willReplaceOnChanges":true},"disableRollback":{"type":"boolean","description":"Specifies whether to disable rollback on stack creation failure. Default value: false.  Valid values:  true: disables rollback on stack creation failure. false: enables rollback on stack creation failure. Note This parameter takes effect only when ChangeSetType is set to CREATE or IMPORT.\n","willReplaceOnChanges":true},"notificationUrls":{"type":"array","items":{"type":"string"},"description":"The notification urls.\n","willReplaceOnChanges":true},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:ros/ChangeSetParameter:ChangeSetParameter"},"description":"Parameters.\n","willReplaceOnChanges":true},"ramRoleName":{"type":"string","description":"The ram role name.\n","willReplaceOnChanges":true},"replacementOption":{"type":"string","description":"The replacement option.\n","willReplaceOnChanges":true},"stackId":{"type":"string","description":"The ID of the stack for which you want to create the change set. ROS generates the change set by comparing the stack information with the information that you submit, such as a modified template or different inputs.\n","willReplaceOnChanges":true},"stackName":{"type":"string","description":"The name of the stack for which you want to create the change set.  The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.  Note This parameter takes effect only when ChangeSetType is set to CREATE or IMPORT.\n","willReplaceOnChanges":true},"stackPolicyBody":{"type":"string","description":"The stack policy body.\n","willReplaceOnChanges":true},"stackPolicyDuringUpdateBody":{"type":"string","description":"The stack policy during update body.\n","willReplaceOnChanges":true},"stackPolicyDuringUpdateUrl":{"type":"string","description":"The stack policy during update url.\n","willReplaceOnChanges":true},"stackPolicyUrl":{"type":"string","description":"The stack policy url.\n","willReplaceOnChanges":true},"templateBody":{"type":"string","description":"The structure that contains the template body. The template body must be 1 to 524,288 bytes in length.  If the length of the template body is longer than required, we recommend that you add parameters to the HTTP POST request body to avoid request failures due to excessive length of URLs.  You can specify one of TemplateBody or TemplateURL parameters, but you cannot specify both of them.\n","willReplaceOnChanges":true},"templateUrl":{"type":"string","description":"The template url.\n","willReplaceOnChanges":true},"timeoutInMinutes":{"type":"integer","description":"Timeout In Minutes.\n","willReplaceOnChanges":true},"usePreviousParameters":{"type":"boolean","description":"The use previous parameters.\n","willReplaceOnChanges":true}},"requiredInputs":["changeSetName"],"stateInputs":{"description":"Input properties used for looking up and filtering ChangeSet resources.\n","properties":{"changeSetName":{"type":"string","description":"The name of the change set.  The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.\n","willReplaceOnChanges":true},"changeSetType":{"type":"string","description":"The type of the change set. Valid values:  CREATE: creates a change set for a new stack. UPDATE: creates a change set for an existing stack. IMPORT: creates a change set for a new stack or an existing stack to import non-ROS-managed resources. If you create a change set for a new stack, ROS creates a stack that has a unique stack ID. The stack is in the REVIEW_IN_PROGRESS state until you execute the change set.  You cannot use the UPDATE type to create a change set for a new stack or the CREATE type to create a change set for an existing stack.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the change set. The description can be up to 1,024 bytes in length.\n","willReplaceOnChanges":true},"disableRollback":{"type":"boolean","description":"Specifies whether to disable rollback on stack creation failure. Default value: false.  Valid values:  true: disables rollback on stack creation failure. false: enables rollback on stack creation failure. Note This parameter takes effect only when ChangeSetType is set to CREATE or IMPORT.\n","willReplaceOnChanges":true},"notificationUrls":{"type":"array","items":{"type":"string"},"description":"The notification urls.\n","willReplaceOnChanges":true},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:ros/ChangeSetParameter:ChangeSetParameter"},"description":"Parameters.\n","willReplaceOnChanges":true},"ramRoleName":{"type":"string","description":"The ram role name.\n","willReplaceOnChanges":true},"replacementOption":{"type":"string","description":"The replacement option.\n","willReplaceOnChanges":true},"stackId":{"type":"string","description":"The ID of the stack for which you want to create the change set. ROS generates the change set by comparing the stack information with the information that you submit, such as a modified template or different inputs.\n","willReplaceOnChanges":true},"stackName":{"type":"string","description":"The name of the stack for which you want to create the change set.  The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.  Note This parameter takes effect only when ChangeSetType is set to CREATE or IMPORT.\n","willReplaceOnChanges":true},"stackPolicyBody":{"type":"string","description":"The stack policy body.\n","willReplaceOnChanges":true},"stackPolicyDuringUpdateBody":{"type":"string","description":"The stack policy during update body.\n","willReplaceOnChanges":true},"stackPolicyDuringUpdateUrl":{"type":"string","description":"The stack policy during update url.\n","willReplaceOnChanges":true},"stackPolicyUrl":{"type":"string","description":"The stack policy url.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the change set.\n"},"templateBody":{"type":"string","description":"The structure that contains the template body. The template body must be 1 to 524,288 bytes in length.  If the length of the template body is longer than required, we recommend that you add parameters to the HTTP POST request body to avoid request failures due to excessive length of URLs.  You can specify one of TemplateBody or TemplateURL parameters, but you cannot specify both of them.\n","willReplaceOnChanges":true},"templateUrl":{"type":"string","description":"The template url.\n","willReplaceOnChanges":true},"timeoutInMinutes":{"type":"integer","description":"Timeout In Minutes.\n","willReplaceOnChanges":true},"usePreviousParameters":{"type":"boolean","description":"The use previous parameters.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:ros/stack:Stack":{"description":"Provides a ROS Stack resource.\n\nFor information about ROS Stack and how to use it, see [What is Stack](https://www.alibabacloud.com/help/en/doc-detail/132086.htm).\n\n\u003e **NOTE:** Available since v1.106.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.ros.Stack(\"example\", {\n    stackName: \"tf-testaccstack\",\n    templateBody: `    {\n    \\\\t\\\\\"ROSTemplateFormatVersion\\\\\": \\\\\"2015-09-01\\\\\"\n    }\n`,\n    stackPolicyBody: `    {\n    \\\\t\\\\\"Statement\\\\\": [{\n    \\\\t\\\\t\\\\\"Action\\\\\": \\\\\"Update:Delete\\\\\",\n    \\\\t\\\\t\\\\\"Resource\\\\\": \\\\\"*\\\\\",\n    \\\\t\\\\t\\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n    \\\\t\\\\t\\\\\"Principal\\\\\": \\\\\"*\\\\\"\n    \\\\t}]\n    }\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ros.Stack(\"example\",\n    stack_name=\"tf-testaccstack\",\n    template_body=\"\"\"    {\n    \\t\\\"ROSTemplateFormatVersion\\\": \\\"2015-09-01\\\"\n    }\n\"\"\",\n    stack_policy_body=\"\"\"    {\n    \\t\\\"Statement\\\": [{\n    \\t\\t\\\"Action\\\": \\\"Update:Delete\\\",\n    \\t\\t\\\"Resource\\\": \\\"*\\\",\n    \\t\\t\\\"Effect\\\": \\\"Allow\\\",\n    \\t\\t\\\"Principal\\\": \\\"*\\\"\n    \\t}]\n    }\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Ros.Stack(\"example\", new()\n    {\n        StackName = \"tf-testaccstack\",\n        TemplateBody = @\"    {\n    \\t\\\"\"ROSTemplateFormatVersion\\\"\": \\\"\"2015-09-01\\\"\"\n    }\n\",\n        StackPolicyBody = @\"    {\n    \\t\\\"\"Statement\\\"\": [{\n    \\t\\t\\\"\"Action\\\"\": \\\"\"Update:Delete\\\"\",\n    \\t\\t\\\"\"Resource\\\"\": \\\"\"*\\\"\",\n    \\t\\t\\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n    \\t\\t\\\"\"Principal\\\"\": \\\"\"*\\\"\"\n    \\t}]\n    }\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ros.NewStack(ctx, \"example\", \u0026ros.StackArgs{\n\t\t\tStackName:    pulumi.String(\"tf-testaccstack\"),\n\t\t\tTemplateBody: pulumi.String(\"    {\\n    \\\\t\\\\\\\"ROSTemplateFormatVersion\\\\\\\": \\\\\\\"2015-09-01\\\\\\\"\\n    }\\n\"),\n\t\t\tStackPolicyBody: pulumi.String(`    {\n    \\t\\\"Statement\\\": [{\n    \\t\\t\\\"Action\\\": \\\"Update:Delete\\\",\n    \\t\\t\\\"Resource\\\": \\\"*\\\",\n    \\t\\t\\\"Effect\\\": \\\"Allow\\\",\n    \\t\\t\\\"Principal\\\": \\\"*\\\"\n    \\t}]\n    }\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ros.Stack;\nimport com.pulumi.alicloud.ros.StackArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Stack(\"example\", StackArgs.builder()\n            .stackName(\"tf-testaccstack\")\n            .templateBody(\"\"\"\n    {\n    \\t\\\"ROSTemplateFormatVersion\\\": \\\"2015-09-01\\\"\n    }\n            \"\"\")\n            .stackPolicyBody(\"\"\"\n    {\n    \\t\\\"Statement\\\": [{\n    \\t\\t\\\"Action\\\": \\\"Update:Delete\\\",\n    \\t\\t\\\"Resource\\\": \\\"*\\\",\n    \\t\\t\\\"Effect\\\": \\\"Allow\\\",\n    \\t\\t\\\"Principal\\\": \\\"*\\\"\n    \\t}]\n    }\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:ros:Stack\n    properties:\n      stackName: tf-testaccstack\n      templateBody: |2\n            {\n            \\t\\\"ROSTemplateFormatVersion\\\": \\\"2015-09-01\\\"\n            }\n      stackPolicyBody: |2\n            {\n            \\t\\\"Statement\\\": [{\n            \\t\\t\\\"Action\\\": \\\"Update:Delete\\\",\n            \\t\\t\\\"Resource\\\": \\\"*\\\",\n            \\t\\t\\\"Effect\\\": \\\"Allow\\\",\n            \\t\\t\\\"Principal\\\": \\\"*\\\"\n            \\t}]\n            }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nROS Stack can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ros/stack:Stack example \u003cstack_id\u003e\n```\n\n","properties":{"createOption":{"type":"string","description":"Specifies whether to delete the stack after it is created.\n"},"deletionProtection":{"type":"string","description":"Specifies whether to enable deletion protection on the stack. Valid values: `Disabled`, `Enabled`. Default to: `Disabled`\n"},"disableRollback":{"type":"boolean","description":"Specifies whether to disable rollback on stack creation failure. Default to: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"notificationUrls":{"type":"array","items":{"type":"string"},"description":"The callback URL for receiving stack event N. Only HTTP POST is supported. Maximum value of N: 5.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:ros/StackParameter:StackParameter"},"description":"The parameters. If the parameter name and value are not specified, ROS will use the default value specified in the template.\n"},"ramRoleName":{"type":"string","description":"The name of the RAM role. ROS assumes the specified RAM role to create the stack and call API operations by using the credentials of the role.\n"},"replacementOption":{"type":"string","description":"Specifies whether to enable replacement update after a resource attribute that does not support modification update is changed. Modification update keeps the physical ID of the resource unchanged. However, the resource is deleted and then recreated, and its physical ID is changed if replacement update is enabled.\n"},"retainAllResources":{"type":"boolean","description":"The retain all resources.\n"},"retainResources":{"type":"array","items":{"type":"string"},"description":"Specifies whether to retain the resources in the stack.\n"},"stackName":{"type":"string","description":"The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.\n"},"stackPolicyBody":{"type":"string","description":"The structure that contains the stack policy body. The stack policy body must be 1 to 16,384 bytes in length.\n"},"stackPolicyDuringUpdateBody":{"type":"string","description":"The structure that contains the body of the temporary overriding stack policy. The stack policy body must be 1 to 16,384 bytes in length.\n"},"stackPolicyDuringUpdateUrl":{"type":"string","description":"The URL of the file that contains the temporary overriding stack policy. The URL must point to a policy located in an HTTP or HTTPS web server or an Alibaba Cloud OSS bucket. Examples: oss://ros/stack-policy/demo and oss://ros/stack-policy/demo?RegionId=cn-hangzhou. The policy can be up to 16,384 bytes in length and the URL can be up to 1,350 bytes in length. If the region of the OSS bucket is not specified, the RegionId value is used by default.\n"},"stackPolicyUrl":{"type":"string","description":"The URL of the file that contains the stack policy. The URL must point to a policy located in an HTTP or HTTPS web server or an Alibaba Cloud OSS bucket. Examples: oss://ros/stack-policy/demo and oss://ros/stack-policy/demo?RegionId=cn-hangzhou. The policy can be up to 16,384 bytes in length and the URL can be up to 1,350 bytes in length. If the region of the OSS bucket is not specified, the RegionId value is used by default.\n"},"status":{"type":"string","description":"The status of Stack.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"templateBody":{"type":"string","description":"The structure that contains the template body. The template body must be 1 to 524,288 bytes in length. If the length of the template body is longer than required, we recommend that you add parameters to the HTTP POST request body to avoid request failures due to excessive length of URLs.\n"},"templateUrl":{"type":"string","description":"The URL of the file that contains the template body. The URL must point to a template located in an HTTP or HTTPS web server or an Alibaba Cloud OSS bucket. Examples: oss://ros/template/demo and oss://ros/template/demo?RegionId=cn-hangzhou. The template must be 1 to 524,288 bytes in length. If the region of the OSS bucket is not specified, the RegionId value is used by default.\n"},"templateVersion":{"type":"string","description":"The version of the template.\n"},"timeoutInMinutes":{"type":"integer","description":"The timeout period that is specified for the stack creation request. Default to: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"usePreviousParameters":{"type":"boolean","description":"Specifies whether to use the values that were passed last time for the parameters that you do not specify in the current request.\n"}},"required":["stackName","status"],"inputProperties":{"createOption":{"type":"string","description":"Specifies whether to delete the stack after it is created.\n","willReplaceOnChanges":true},"deletionProtection":{"type":"string","description":"Specifies whether to enable deletion protection on the stack. Valid values: `Disabled`, `Enabled`. Default to: `Disabled`\n","willReplaceOnChanges":true},"disableRollback":{"type":"boolean","description":"Specifies whether to disable rollback on stack creation failure. Default to: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"notificationUrls":{"type":"array","items":{"type":"string"},"description":"The callback URL for receiving stack event N. Only HTTP POST is supported. Maximum value of N: 5.\n","willReplaceOnChanges":true},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:ros/StackParameter:StackParameter"},"description":"The parameters. If the parameter name and value are not specified, ROS will use the default value specified in the template.\n"},"ramRoleName":{"type":"string","description":"The name of the RAM role. ROS assumes the specified RAM role to create the stack and call API operations by using the credentials of the role.\n"},"replacementOption":{"type":"string","description":"Specifies whether to enable replacement update after a resource attribute that does not support modification update is changed. Modification update keeps the physical ID of the resource unchanged. However, the resource is deleted and then recreated, and its physical ID is changed if replacement update is enabled.\n"},"retainAllResources":{"type":"boolean","description":"The retain all resources.\n"},"retainResources":{"type":"array","items":{"type":"string"},"description":"Specifies whether to retain the resources in the stack.\n"},"stackName":{"type":"string","description":"The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.\n","willReplaceOnChanges":true},"stackPolicyBody":{"type":"string","description":"The structure that contains the stack policy body. The stack policy body must be 1 to 16,384 bytes in length.\n"},"stackPolicyDuringUpdateBody":{"type":"string","description":"The structure that contains the body of the temporary overriding stack policy. The stack policy body must be 1 to 16,384 bytes in length.\n"},"stackPolicyDuringUpdateUrl":{"type":"string","description":"The URL of the file that contains the temporary overriding stack policy. The URL must point to a policy located in an HTTP or HTTPS web server or an Alibaba Cloud OSS bucket. Examples: oss://ros/stack-policy/demo and oss://ros/stack-policy/demo?RegionId=cn-hangzhou. The policy can be up to 16,384 bytes in length and the URL can be up to 1,350 bytes in length. If the region of the OSS bucket is not specified, the RegionId value is used by default.\n"},"stackPolicyUrl":{"type":"string","description":"The URL of the file that contains the stack policy. The URL must point to a policy located in an HTTP or HTTPS web server or an Alibaba Cloud OSS bucket. Examples: oss://ros/stack-policy/demo and oss://ros/stack-policy/demo?RegionId=cn-hangzhou. The policy can be up to 16,384 bytes in length and the URL can be up to 1,350 bytes in length. If the region of the OSS bucket is not specified, the RegionId value is used by default.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"templateBody":{"type":"string","description":"The structure that contains the template body. The template body must be 1 to 524,288 bytes in length. If the length of the template body is longer than required, we recommend that you add parameters to the HTTP POST request body to avoid request failures due to excessive length of URLs.\n"},"templateUrl":{"type":"string","description":"The URL of the file that contains the template body. The URL must point to a template located in an HTTP or HTTPS web server or an Alibaba Cloud OSS bucket. Examples: oss://ros/template/demo and oss://ros/template/demo?RegionId=cn-hangzhou. The template must be 1 to 524,288 bytes in length. If the region of the OSS bucket is not specified, the RegionId value is used by default.\n"},"templateVersion":{"type":"string","description":"The version of the template.\n"},"timeoutInMinutes":{"type":"integer","description":"The timeout period that is specified for the stack creation request. Default to: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"usePreviousParameters":{"type":"boolean","description":"Specifies whether to use the values that were passed last time for the parameters that you do not specify in the current request.\n"}},"requiredInputs":["stackName"],"stateInputs":{"description":"Input properties used for looking up and filtering Stack resources.\n","properties":{"createOption":{"type":"string","description":"Specifies whether to delete the stack after it is created.\n","willReplaceOnChanges":true},"deletionProtection":{"type":"string","description":"Specifies whether to enable deletion protection on the stack. Valid values: `Disabled`, `Enabled`. Default to: `Disabled`\n","willReplaceOnChanges":true},"disableRollback":{"type":"boolean","description":"Specifies whether to disable rollback on stack creation failure. Default to: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"notificationUrls":{"type":"array","items":{"type":"string"},"description":"The callback URL for receiving stack event N. Only HTTP POST is supported. Maximum value of N: 5.\n","willReplaceOnChanges":true},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:ros/StackParameter:StackParameter"},"description":"The parameters. If the parameter name and value are not specified, ROS will use the default value specified in the template.\n"},"ramRoleName":{"type":"string","description":"The name of the RAM role. ROS assumes the specified RAM role to create the stack and call API operations by using the credentials of the role.\n"},"replacementOption":{"type":"string","description":"Specifies whether to enable replacement update after a resource attribute that does not support modification update is changed. Modification update keeps the physical ID of the resource unchanged. However, the resource is deleted and then recreated, and its physical ID is changed if replacement update is enabled.\n"},"retainAllResources":{"type":"boolean","description":"The retain all resources.\n"},"retainResources":{"type":"array","items":{"type":"string"},"description":"Specifies whether to retain the resources in the stack.\n"},"stackName":{"type":"string","description":"The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.\n","willReplaceOnChanges":true},"stackPolicyBody":{"type":"string","description":"The structure that contains the stack policy body. The stack policy body must be 1 to 16,384 bytes in length.\n"},"stackPolicyDuringUpdateBody":{"type":"string","description":"The structure that contains the body of the temporary overriding stack policy. The stack policy body must be 1 to 16,384 bytes in length.\n"},"stackPolicyDuringUpdateUrl":{"type":"string","description":"The URL of the file that contains the temporary overriding stack policy. The URL must point to a policy located in an HTTP or HTTPS web server or an Alibaba Cloud OSS bucket. Examples: oss://ros/stack-policy/demo and oss://ros/stack-policy/demo?RegionId=cn-hangzhou. The policy can be up to 16,384 bytes in length and the URL can be up to 1,350 bytes in length. If the region of the OSS bucket is not specified, the RegionId value is used by default.\n"},"stackPolicyUrl":{"type":"string","description":"The URL of the file that contains the stack policy. The URL must point to a policy located in an HTTP or HTTPS web server or an Alibaba Cloud OSS bucket. Examples: oss://ros/stack-policy/demo and oss://ros/stack-policy/demo?RegionId=cn-hangzhou. The policy can be up to 16,384 bytes in length and the URL can be up to 1,350 bytes in length. If the region of the OSS bucket is not specified, the RegionId value is used by default.\n"},"status":{"type":"string","description":"The status of Stack.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"templateBody":{"type":"string","description":"The structure that contains the template body. The template body must be 1 to 524,288 bytes in length. If the length of the template body is longer than required, we recommend that you add parameters to the HTTP POST request body to avoid request failures due to excessive length of URLs.\n"},"templateUrl":{"type":"string","description":"The URL of the file that contains the template body. The URL must point to a template located in an HTTP or HTTPS web server or an Alibaba Cloud OSS bucket. Examples: oss://ros/template/demo and oss://ros/template/demo?RegionId=cn-hangzhou. The template must be 1 to 524,288 bytes in length. If the region of the OSS bucket is not specified, the RegionId value is used by default.\n"},"templateVersion":{"type":"string","description":"The version of the template.\n"},"timeoutInMinutes":{"type":"integer","description":"The timeout period that is specified for the stack creation request. Default to: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e.\n"},"usePreviousParameters":{"type":"boolean","description":"Specifies whether to use the values that were passed last time for the parameters that you do not specify in the current request.\n"}},"type":"object"}},"alicloud:ros/stackGroup:StackGroup":{"description":"Provides a ROS Stack Group resource.\n\nResource stack Group.\n\nFor information about ROS Stack Group and how to use it, see [What is Stack Group](https://www.alibabacloud.com/help/en/doc-detail/151333.htm).\n\n\u003e **NOTE:** Available since v1.107.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.ros.StackGroup(\"example\", {\n    stackGroupName: \"example_value\",\n    templateBody: `    {\n    \\\\t\\\\\"ROSTemplateFormatVersion\\\\\": \\\\\"2015-09-01\\\\\"\n    }\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ros.StackGroup(\"example\",\n    stack_group_name=\"example_value\",\n    template_body=\"\"\"    {\n    \\t\\\"ROSTemplateFormatVersion\\\": \\\"2015-09-01\\\"\n    }\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Ros.StackGroup(\"example\", new()\n    {\n        StackGroupName = \"example_value\",\n        TemplateBody = @\"    {\n    \\t\\\"\"ROSTemplateFormatVersion\\\"\": \\\"\"2015-09-01\\\"\"\n    }\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ros.NewStackGroup(ctx, \"example\", \u0026ros.StackGroupArgs{\n\t\t\tStackGroupName: pulumi.String(\"example_value\"),\n\t\t\tTemplateBody:   pulumi.String(\"    {\\n    \\\\t\\\\\\\"ROSTemplateFormatVersion\\\\\\\": \\\\\\\"2015-09-01\\\\\\\"\\n    }\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ros.StackGroup;\nimport com.pulumi.alicloud.ros.StackGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new StackGroup(\"example\", StackGroupArgs.builder()\n            .stackGroupName(\"example_value\")\n            .templateBody(\"\"\"\n    {\n    \\t\\\"ROSTemplateFormatVersion\\\": \\\"2015-09-01\\\"\n    }\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:ros:StackGroup\n    properties:\n      stackGroupName: example_value\n      templateBody: |2\n            {\n            \\t\\\"ROSTemplateFormatVersion\\\": \\\"2015-09-01\\\"\n            }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nROS Stack Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ros/stackGroup:StackGroup example \u003cid\u003e\n```\n\n","properties":{"administrationRoleName":{"type":"string","description":"The name of the RAM role that you specify for the administrator account in ROS when you create the self-managed stack group. If you do not specify this parameter, the default value AliyunROSStackGroupAdministrationRole is used. You can use the administrator role in ROS to assume the execution role AliyunROSStackGroupExecutionRole to perform operations on the stacks that correspond to stack instances in the stack group.\n"},"autoDeployment":{"$ref":"#/types/alicloud:ros/StackGroupAutoDeployment:StackGroupAutoDeployment","description":"Automatic deployment setting information. Description\nThis parameter is required only if the PermissionModel is SERVICE_MANAGED. See \u003cspan pulumi-lang-nodejs=\"`autoDeployment`\" pulumi-lang-dotnet=\"`AutoDeployment`\" pulumi-lang-go=\"`autoDeployment`\" pulumi-lang-python=\"`auto_deployment`\" pulumi-lang-yaml=\"`autoDeployment`\" pulumi-lang-java=\"`autoDeployment`\"\u003e`auto_deployment`\u003c/span\u003e below.\n"},"capabilities":{"type":"array","items":{"type":"string"},"description":"The list of resource stack group options. The maximum length is 1.\n"},"description":{"type":"string","description":"The description of the stack group.\n"},"executionRoleName":{"type":"string","description":"The name of the RAM role that you specify for the execution account when you create the self-managed stack group. You can use the administrator role AliyunROSStackGroupAdministrationRole to assume the execution role. If you do not specify this parameter, the default value AliyunROSStackGroupExecutionRole is used. You can use this role in ROS to perform operations on the stacks that correspond to stack instances in the stack group.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:ros/StackGroupParameter:StackGroupParameter"},"description":"Parameters See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"permissionModel":{"type":"string","description":"The permission model.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"stackGroupId":{"type":"string","description":"The ID of stack group.\n"},"stackGroupName":{"type":"string","description":"StackGroupName\n"},"status":{"type":"string","description":"The status of the stack group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The label of the resource stack group.\n"},"templateBody":{"type":"string","description":"The template body.\n"},"templateId":{"type":"string","description":"The ID of the template.\n"},"templateUrl":{"type":"string","description":"The location of the file that contains the template body. The URL must point to the template (1 to 524,288 bytes) located in the HTTP Web server (HTTP or HTTPS) or Alibaba Cloud OSS bucket. The URL of the OSS bucket, such as oss:// ros/template/demo or oss:// ros/template/demo? RegionId = cn-hangzhou. If the OSS region is not specified, the RegionId of the interface is the same by default.\n\n\u003e **NOTE:** You must and can specify only one of the parameters of TemplateBody, TemplateURL, or TemplateId.\n"},"templateVersion":{"type":"string","description":"The version of the template.\n"}},"required":["administrationRoleName","executionRoleName","permissionModel","resourceGroupId","stackGroupId","stackGroupName","status","templateBody"],"inputProperties":{"administrationRoleName":{"type":"string","description":"The name of the RAM role that you specify for the administrator account in ROS when you create the self-managed stack group. If you do not specify this parameter, the default value AliyunROSStackGroupAdministrationRole is used. You can use the administrator role in ROS to assume the execution role AliyunROSStackGroupExecutionRole to perform operations on the stacks that correspond to stack instances in the stack group.\n"},"autoDeployment":{"$ref":"#/types/alicloud:ros/StackGroupAutoDeployment:StackGroupAutoDeployment","description":"Automatic deployment setting information. Description\nThis parameter is required only if the PermissionModel is SERVICE_MANAGED. See \u003cspan pulumi-lang-nodejs=\"`autoDeployment`\" pulumi-lang-dotnet=\"`AutoDeployment`\" pulumi-lang-go=\"`autoDeployment`\" pulumi-lang-python=\"`auto_deployment`\" pulumi-lang-yaml=\"`autoDeployment`\" pulumi-lang-java=\"`autoDeployment`\"\u003e`auto_deployment`\u003c/span\u003e below.\n"},"capabilities":{"type":"array","items":{"type":"string"},"description":"The list of resource stack group options. The maximum length is 1.\n"},"description":{"type":"string","description":"The description of the stack group.\n"},"executionRoleName":{"type":"string","description":"The name of the RAM role that you specify for the execution account when you create the self-managed stack group. You can use the administrator role AliyunROSStackGroupAdministrationRole to assume the execution role. If you do not specify this parameter, the default value AliyunROSStackGroupExecutionRole is used. You can use this role in ROS to perform operations on the stacks that correspond to stack instances in the stack group.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:ros/StackGroupParameter:StackGroupParameter"},"description":"Parameters See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"permissionModel":{"type":"string","description":"The permission model.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"stackGroupName":{"type":"string","description":"StackGroupName\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The label of the resource stack group.\n"},"templateBody":{"type":"string","description":"The template body.\n"},"templateId":{"type":"string","description":"The ID of the template.\n"},"templateUrl":{"type":"string","description":"The location of the file that contains the template body. The URL must point to the template (1 to 524,288 bytes) located in the HTTP Web server (HTTP or HTTPS) or Alibaba Cloud OSS bucket. The URL of the OSS bucket, such as oss:// ros/template/demo or oss:// ros/template/demo? RegionId = cn-hangzhou. If the OSS region is not specified, the RegionId of the interface is the same by default.\n\n\u003e **NOTE:** You must and can specify only one of the parameters of TemplateBody, TemplateURL, or TemplateId.\n"},"templateVersion":{"type":"string","description":"The version of the template.\n"}},"requiredInputs":["stackGroupName"],"stateInputs":{"description":"Input properties used for looking up and filtering StackGroup resources.\n","properties":{"administrationRoleName":{"type":"string","description":"The name of the RAM role that you specify for the administrator account in ROS when you create the self-managed stack group. If you do not specify this parameter, the default value AliyunROSStackGroupAdministrationRole is used. You can use the administrator role in ROS to assume the execution role AliyunROSStackGroupExecutionRole to perform operations on the stacks that correspond to stack instances in the stack group.\n"},"autoDeployment":{"$ref":"#/types/alicloud:ros/StackGroupAutoDeployment:StackGroupAutoDeployment","description":"Automatic deployment setting information. Description\nThis parameter is required only if the PermissionModel is SERVICE_MANAGED. See \u003cspan pulumi-lang-nodejs=\"`autoDeployment`\" pulumi-lang-dotnet=\"`AutoDeployment`\" pulumi-lang-go=\"`autoDeployment`\" pulumi-lang-python=\"`auto_deployment`\" pulumi-lang-yaml=\"`autoDeployment`\" pulumi-lang-java=\"`autoDeployment`\"\u003e`auto_deployment`\u003c/span\u003e below.\n"},"capabilities":{"type":"array","items":{"type":"string"},"description":"The list of resource stack group options. The maximum length is 1.\n"},"description":{"type":"string","description":"The description of the stack group.\n"},"executionRoleName":{"type":"string","description":"The name of the RAM role that you specify for the execution account when you create the self-managed stack group. You can use the administrator role AliyunROSStackGroupAdministrationRole to assume the execution role. If you do not specify this parameter, the default value AliyunROSStackGroupExecutionRole is used. You can use this role in ROS to perform operations on the stacks that correspond to stack instances in the stack group.\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:ros/StackGroupParameter:StackGroupParameter"},"description":"Parameters See \u003cspan pulumi-lang-nodejs=\"`parameters`\" pulumi-lang-dotnet=\"`Parameters`\" pulumi-lang-go=\"`parameters`\" pulumi-lang-python=\"`parameters`\" pulumi-lang-yaml=\"`parameters`\" pulumi-lang-java=\"`parameters`\"\u003e`parameters`\u003c/span\u003e below.\n"},"permissionModel":{"type":"string","description":"The permission model.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"stackGroupId":{"type":"string","description":"The ID of stack group.\n"},"stackGroupName":{"type":"string","description":"StackGroupName\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the stack group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The label of the resource stack group.\n"},"templateBody":{"type":"string","description":"The template body.\n"},"templateId":{"type":"string","description":"The ID of the template.\n"},"templateUrl":{"type":"string","description":"The location of the file that contains the template body. The URL must point to the template (1 to 524,288 bytes) located in the HTTP Web server (HTTP or HTTPS) or Alibaba Cloud OSS bucket. The URL of the OSS bucket, such as oss:// ros/template/demo or oss:// ros/template/demo? RegionId = cn-hangzhou. If the OSS region is not specified, the RegionId of the interface is the same by default.\n\n\u003e **NOTE:** You must and can specify only one of the parameters of TemplateBody, TemplateURL, or TemplateId.\n"},"templateVersion":{"type":"string","description":"The version of the template.\n"}},"type":"object"}},"alicloud:ros/stackInstance:StackInstance":{"description":"Provides a ROS Stack Instance resource.\n\nFor information about ROS Stack Instance and how to use it, see [What is Stack Instance](https://www.alibabacloud.com/help/en/doc-detail/151338.html).\n\n\u003e **NOTE:** Available since v1.145.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _this = alicloud.getAccount({});\nconst _default = alicloud.ros.getRegions({});\nconst defaultStackGroup = new alicloud.ros.StackGroup(\"default\", {\n    stackGroupName: name,\n    templateBody: \"{\\\"ROSTemplateFormatVersion\\\":\\\"2015-09-01\\\", \\\"Parameters\\\": {\\\"VpcName\\\": {\\\"Type\\\": \\\"String\\\"},\\\"InstanceType\\\": {\\\"Type\\\": \\\"String\\\"}}}\",\n    description: \"test for stack groups\",\n    parameters: [\n        {\n            parameterKey: \"VpcName\",\n            parameterValue: \"VpcName\",\n        },\n        {\n            parameterKey: \"InstanceType\",\n            parameterValue: \"InstanceType\",\n        },\n    ],\n});\nconst example = new alicloud.ros.StackInstance(\"example\", {\n    stackGroupName: defaultStackGroup.stackGroupName,\n    stackInstanceAccountId: _this.then(_this =\u003e _this.id),\n    stackInstanceRegionId: _default.then(_default =\u003e _default.regions?.[0]?.regionId),\n    operationPreferences: \"{\\\"FailureToleranceCount\\\": 1, \\\"MaxConcurrentCount\\\": 2}\",\n    timeoutInMinutes: \"60\",\n    operationDescription: \"tf-example\",\n    retainStacks: true,\n    parameterOverrides: [{\n        parameterValue: \"VpcName\",\n        parameterKey: \"VpcName\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nthis = alicloud.get_account()\ndefault = alicloud.ros.get_regions()\ndefault_stack_group = alicloud.ros.StackGroup(\"default\",\n    stack_group_name=name,\n    template_body=\"{\\\"ROSTemplateFormatVersion\\\":\\\"2015-09-01\\\", \\\"Parameters\\\": {\\\"VpcName\\\": {\\\"Type\\\": \\\"String\\\"},\\\"InstanceType\\\": {\\\"Type\\\": \\\"String\\\"}}}\",\n    description=\"test for stack groups\",\n    parameters=[\n        {\n            \"parameter_key\": \"VpcName\",\n            \"parameter_value\": \"VpcName\",\n        },\n        {\n            \"parameter_key\": \"InstanceType\",\n            \"parameter_value\": \"InstanceType\",\n        },\n    ])\nexample = alicloud.ros.StackInstance(\"example\",\n    stack_group_name=default_stack_group.stack_group_name,\n    stack_instance_account_id=this.id,\n    stack_instance_region_id=default.regions[0].region_id,\n    operation_preferences=\"{\\\"FailureToleranceCount\\\": 1, \\\"MaxConcurrentCount\\\": 2}\",\n    timeout_in_minutes=\"60\",\n    operation_description=\"tf-example\",\n    retain_stacks=True,\n    parameter_overrides=[{\n        \"parameter_value\": \"VpcName\",\n        \"parameter_key\": \"VpcName\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @this = AliCloud.GetAccount.Invoke();\n\n    var @default = AliCloud.Ros.GetRegions.Invoke();\n\n    var defaultStackGroup = new AliCloud.Ros.StackGroup(\"default\", new()\n    {\n        StackGroupName = name,\n        TemplateBody = \"{\\\"ROSTemplateFormatVersion\\\":\\\"2015-09-01\\\", \\\"Parameters\\\": {\\\"VpcName\\\": {\\\"Type\\\": \\\"String\\\"},\\\"InstanceType\\\": {\\\"Type\\\": \\\"String\\\"}}}\",\n        Description = \"test for stack groups\",\n        Parameters = new[]\n        {\n            new AliCloud.Ros.Inputs.StackGroupParameterArgs\n            {\n                ParameterKey = \"VpcName\",\n                ParameterValue = \"VpcName\",\n            },\n            new AliCloud.Ros.Inputs.StackGroupParameterArgs\n            {\n                ParameterKey = \"InstanceType\",\n                ParameterValue = \"InstanceType\",\n            },\n        },\n    });\n\n    var example = new AliCloud.Ros.StackInstance(\"example\", new()\n    {\n        StackGroupName = defaultStackGroup.StackGroupName,\n        StackInstanceAccountId = @this.Apply(@this =\u003e @this.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        StackInstanceRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.RegionId)),\n        OperationPreferences = \"{\\\"FailureToleranceCount\\\": 1, \\\"MaxConcurrentCount\\\": 2}\",\n        TimeoutInMinutes = \"60\",\n        OperationDescription = \"tf-example\",\n        RetainStacks = true,\n        ParameterOverrides = new[]\n        {\n            new AliCloud.Ros.Inputs.StackInstanceParameterOverrideArgs\n            {\n                ParameterValue = \"VpcName\",\n                ParameterKey = \"VpcName\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tthis, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := ros.GetRegions(ctx, \u0026ros.GetRegionsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStackGroup, err := ros.NewStackGroup(ctx, \"default\", \u0026ros.StackGroupArgs{\n\t\t\tStackGroupName: pulumi.String(name),\n\t\t\tTemplateBody:   pulumi.String(\"{\\\"ROSTemplateFormatVersion\\\":\\\"2015-09-01\\\", \\\"Parameters\\\": {\\\"VpcName\\\": {\\\"Type\\\": \\\"String\\\"},\\\"InstanceType\\\": {\\\"Type\\\": \\\"String\\\"}}}\"),\n\t\t\tDescription:    pulumi.String(\"test for stack groups\"),\n\t\t\tParameters: ros.StackGroupParameterArray{\n\t\t\t\t\u0026ros.StackGroupParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"VpcName\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"VpcName\"),\n\t\t\t\t},\n\t\t\t\t\u0026ros.StackGroupParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"InstanceType\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"InstanceType\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ros.NewStackInstance(ctx, \"example\", \u0026ros.StackInstanceArgs{\n\t\t\tStackGroupName:         defaultStackGroup.StackGroupName,\n\t\t\tStackInstanceAccountId: pulumi.String(this.Id),\n\t\t\tStackInstanceRegionId:  pulumi.String(_default.Regions[0].RegionId),\n\t\t\tOperationPreferences:   pulumi.String(\"{\\\"FailureToleranceCount\\\": 1, \\\"MaxConcurrentCount\\\": 2}\"),\n\t\t\tTimeoutInMinutes:       pulumi.String(\"60\"),\n\t\t\tOperationDescription:   pulumi.String(\"tf-example\"),\n\t\t\tRetainStacks:           pulumi.Bool(true),\n\t\t\tParameterOverrides: ros.StackInstanceParameterOverrideArray{\n\t\t\t\t\u0026ros.StackInstanceParameterOverrideArgs{\n\t\t\t\t\tParameterValue: pulumi.String(\"VpcName\"),\n\t\t\t\t\tParameterKey:   pulumi.String(\"VpcName\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.ros.RosFunctions;\nimport com.pulumi.alicloud.ros.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.ros.StackGroup;\nimport com.pulumi.alicloud.ros.StackGroupArgs;\nimport com.pulumi.alicloud.ros.inputs.StackGroupParameterArgs;\nimport com.pulumi.alicloud.ros.StackInstance;\nimport com.pulumi.alicloud.ros.StackInstanceArgs;\nimport com.pulumi.alicloud.ros.inputs.StackInstanceParameterOverrideArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var this = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var default = RosFunctions.getRegions(GetRegionsArgs.builder()\n            .build());\n\n        var defaultStackGroup = new StackGroup(\"defaultStackGroup\", StackGroupArgs.builder()\n            .stackGroupName(name)\n            .templateBody(\"{\\\"ROSTemplateFormatVersion\\\":\\\"2015-09-01\\\", \\\"Parameters\\\": {\\\"VpcName\\\": {\\\"Type\\\": \\\"String\\\"},\\\"InstanceType\\\": {\\\"Type\\\": \\\"String\\\"}}}\")\n            .description(\"test for stack groups\")\n            .parameters(            \n                StackGroupParameterArgs.builder()\n                    .parameterKey(\"VpcName\")\n                    .parameterValue(\"VpcName\")\n                    .build(),\n                StackGroupParameterArgs.builder()\n                    .parameterKey(\"InstanceType\")\n                    .parameterValue(\"InstanceType\")\n                    .build())\n            .build());\n\n        var example = new StackInstance(\"example\", StackInstanceArgs.builder()\n            .stackGroupName(defaultStackGroup.stackGroupName())\n            .stackInstanceAccountId(this_.id())\n            .stackInstanceRegionId(default_.regions()[0].regionId())\n            .operationPreferences(\"{\\\"FailureToleranceCount\\\": 1, \\\"MaxConcurrentCount\\\": 2}\")\n            .timeoutInMinutes(\"60\")\n            .operationDescription(\"tf-example\")\n            .retainStacks(true)\n            .parameterOverrides(StackInstanceParameterOverrideArgs.builder()\n                .parameterValue(\"VpcName\")\n                .parameterKey(\"VpcName\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultStackGroup:\n    type: alicloud:ros:StackGroup\n    name: default\n    properties:\n      stackGroupName: ${name}\n      templateBody: '{\"ROSTemplateFormatVersion\":\"2015-09-01\", \"Parameters\": {\"VpcName\": {\"Type\": \"String\"},\"InstanceType\": {\"Type\": \"String\"}}}'\n      description: test for stack groups\n      parameters:\n        - parameterKey: VpcName\n          parameterValue: VpcName\n        - parameterKey: InstanceType\n          parameterValue: InstanceType\n  example:\n    type: alicloud:ros:StackInstance\n    properties:\n      stackGroupName: ${defaultStackGroup.stackGroupName}\n      stackInstanceAccountId: ${this.id}\n      stackInstanceRegionId: ${default.regions[0].regionId}\n      operationPreferences: '{\"FailureToleranceCount\": 1, \"MaxConcurrentCount\": 2}'\n      timeoutInMinutes: '60'\n      operationDescription: tf-example\n      retainStacks: 'true'\n      parameterOverrides:\n        - parameterValue: VpcName\n          parameterKey: VpcName\nvariables:\n  this:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  default:\n    fn::invoke:\n      function: alicloud:ros:getRegions\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nROS Stack Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ros/stackInstance:StackInstance example \u003cstack_group_name\u003e:\u003cstack_instance_account_id\u003e:\u003cstack_instance_region_id\u003e\n```\n\n","properties":{"operationDescription":{"type":"string","description":"The operation description.\n"},"operationPreferences":{"type":"string","description":"The operation preferences. The operation settings. The following fields are supported:\n* `FailureToleranceCount` The maximum number of stack group operation failures that can occur. In a stack group operation, if the total number of failures does not exceed the FailureToleranceCount value, the operation succeeds. Otherwise, the operation fails. If the FailureToleranceCount parameter is not specified, the default value 0 is used. You cannot specify both FailureToleranceCount and FailureTolerancePercentage. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n* `FailureTolerancePercentage`: The percentage of stack group operation failures that can occur. In a stack group operation, if the percentage of failures does not exceed the FailureTolerancePercentage value, the operation succeeds. Otherwise, the operation fails. You cannot specify both FailureToleranceCount and FailureTolerancePercentage. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n* `MaxConcurrentCount`: The maximum number of accounts within which to perform this operation at one time. You cannot specify both MaxConcurrentCount and MaxConcurrentPercentage. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n* `MaxConcurrentPercentage`: The maximum percentage of accounts within which to perform this operation at one time. You cannot specify both MaxConcurrentCount and MaxConcurrentPercentage. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e\n"},"parameterOverrides":{"type":"array","items":{"$ref":"#/types/alicloud:ros/StackInstanceParameterOverride:StackInstanceParameterOverride"},"description":"ParameterOverrides. See the following `Block\u003cspan pulumi-lang-nodejs=\" parameterOverrides`\" pulumi-lang-dotnet=\" ParameterOverrides`\" pulumi-lang-go=\" parameterOverrides`\" pulumi-lang-python=\" parameter_overrides`\" pulumi-lang-yaml=\" parameterOverrides`\" pulumi-lang-java=\" parameterOverrides`\"\u003e parameter_overrides`\u003c/span\u003e.\n","secret":true},"retainStacks":{"type":"boolean","description":"Specifies whether to retain the stack corresponding to the stack instance.Default value \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`retainStacks`\" pulumi-lang-dotnet=\"`RetainStacks`\" pulumi-lang-go=\"`retainStacks`\" pulumi-lang-python=\"`retain_stacks`\" pulumi-lang-yaml=\"`retainStacks`\" pulumi-lang-java=\"`retainStacks`\"\u003e`retain_stacks`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the stack is retained. If the stack is retained, the corresponding stack is not deleted when the stack instance is deleted from the stack group.\n"},"stackGroupName":{"type":"string","description":"The name of the stack group.\n"},"stackInstanceAccountId":{"type":"string","description":"The account to which the stack instance belongs.\n"},"stackInstanceRegionId":{"type":"string","description":"The region of the stack instance.\n"},"status":{"type":"string","description":"The status of the stack instance. Valid values: `CURRENT` or `OUTDATED`. \n* `CURRENT`: The stack corresponding to the stack instance is up to date with the stack group.\n* `OUTDATED`: The stack corresponding to the stack instance is not up to date with the stack group. The `OUTDATED` state has the following possible causes:\n* When the CreateStackInstances operation is called to create stack instances, the corresponding stacks fail to be created.\n* When the UpdateStackInstances or UpdateStackGroup operation is called to update stack instances, the corresponding stacks fail to be updated, or only some of the stack instances are updated.\n* The create or update operation is not complete.\n"},"timeoutInMinutes":{"type":"string","description":"The timeout period that is specified for the stack creation request. Default value: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e. Unit: \u003cspan pulumi-lang-nodejs=\"`minutes`\" pulumi-lang-dotnet=\"`Minutes`\" pulumi-lang-go=\"`minutes`\" pulumi-lang-python=\"`minutes`\" pulumi-lang-yaml=\"`minutes`\" pulumi-lang-java=\"`minutes`\"\u003e`minutes`\u003c/span\u003e.\n"}},"required":["stackGroupName","stackInstanceAccountId","stackInstanceRegionId","status"],"inputProperties":{"operationDescription":{"type":"string","description":"The operation description.\n"},"operationPreferences":{"type":"string","description":"The operation preferences. The operation settings. The following fields are supported:\n* `FailureToleranceCount` The maximum number of stack group operation failures that can occur. In a stack group operation, if the total number of failures does not exceed the FailureToleranceCount value, the operation succeeds. Otherwise, the operation fails. If the FailureToleranceCount parameter is not specified, the default value 0 is used. You cannot specify both FailureToleranceCount and FailureTolerancePercentage. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n* `FailureTolerancePercentage`: The percentage of stack group operation failures that can occur. In a stack group operation, if the percentage of failures does not exceed the FailureTolerancePercentage value, the operation succeeds. Otherwise, the operation fails. You cannot specify both FailureToleranceCount and FailureTolerancePercentage. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n* `MaxConcurrentCount`: The maximum number of accounts within which to perform this operation at one time. You cannot specify both MaxConcurrentCount and MaxConcurrentPercentage. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n* `MaxConcurrentPercentage`: The maximum percentage of accounts within which to perform this operation at one time. You cannot specify both MaxConcurrentCount and MaxConcurrentPercentage. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e\n"},"parameterOverrides":{"type":"array","items":{"$ref":"#/types/alicloud:ros/StackInstanceParameterOverride:StackInstanceParameterOverride"},"description":"ParameterOverrides. See the following `Block\u003cspan pulumi-lang-nodejs=\" parameterOverrides`\" pulumi-lang-dotnet=\" ParameterOverrides`\" pulumi-lang-go=\" parameterOverrides`\" pulumi-lang-python=\" parameter_overrides`\" pulumi-lang-yaml=\" parameterOverrides`\" pulumi-lang-java=\" parameterOverrides`\"\u003e parameter_overrides`\u003c/span\u003e.\n","secret":true},"retainStacks":{"type":"boolean","description":"Specifies whether to retain the stack corresponding to the stack instance.Default value \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`retainStacks`\" pulumi-lang-dotnet=\"`RetainStacks`\" pulumi-lang-go=\"`retainStacks`\" pulumi-lang-python=\"`retain_stacks`\" pulumi-lang-yaml=\"`retainStacks`\" pulumi-lang-java=\"`retainStacks`\"\u003e`retain_stacks`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the stack is retained. If the stack is retained, the corresponding stack is not deleted when the stack instance is deleted from the stack group.\n"},"stackGroupName":{"type":"string","description":"The name of the stack group.\n","willReplaceOnChanges":true},"stackInstanceAccountId":{"type":"string","description":"The account to which the stack instance belongs.\n","willReplaceOnChanges":true},"stackInstanceRegionId":{"type":"string","description":"The region of the stack instance.\n","willReplaceOnChanges":true},"timeoutInMinutes":{"type":"string","description":"The timeout period that is specified for the stack creation request. Default value: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e. Unit: \u003cspan pulumi-lang-nodejs=\"`minutes`\" pulumi-lang-dotnet=\"`Minutes`\" pulumi-lang-go=\"`minutes`\" pulumi-lang-python=\"`minutes`\" pulumi-lang-yaml=\"`minutes`\" pulumi-lang-java=\"`minutes`\"\u003e`minutes`\u003c/span\u003e.\n"}},"requiredInputs":["stackGroupName","stackInstanceAccountId","stackInstanceRegionId"],"stateInputs":{"description":"Input properties used for looking up and filtering StackInstance resources.\n","properties":{"operationDescription":{"type":"string","description":"The operation description.\n"},"operationPreferences":{"type":"string","description":"The operation preferences. The operation settings. The following fields are supported:\n* `FailureToleranceCount` The maximum number of stack group operation failures that can occur. In a stack group operation, if the total number of failures does not exceed the FailureToleranceCount value, the operation succeeds. Otherwise, the operation fails. If the FailureToleranceCount parameter is not specified, the default value 0 is used. You cannot specify both FailureToleranceCount and FailureTolerancePercentage. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n* `FailureTolerancePercentage`: The percentage of stack group operation failures that can occur. In a stack group operation, if the percentage of failures does not exceed the FailureTolerancePercentage value, the operation succeeds. Otherwise, the operation fails. You cannot specify both FailureToleranceCount and FailureTolerancePercentage. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n* `MaxConcurrentCount`: The maximum number of accounts within which to perform this operation at one time. You cannot specify both MaxConcurrentCount and MaxConcurrentPercentage. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n* `MaxConcurrentPercentage`: The maximum percentage of accounts within which to perform this operation at one time. You cannot specify both MaxConcurrentCount and MaxConcurrentPercentage. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e\n"},"parameterOverrides":{"type":"array","items":{"$ref":"#/types/alicloud:ros/StackInstanceParameterOverride:StackInstanceParameterOverride"},"description":"ParameterOverrides. See the following `Block\u003cspan pulumi-lang-nodejs=\" parameterOverrides`\" pulumi-lang-dotnet=\" ParameterOverrides`\" pulumi-lang-go=\" parameterOverrides`\" pulumi-lang-python=\" parameter_overrides`\" pulumi-lang-yaml=\" parameterOverrides`\" pulumi-lang-java=\" parameterOverrides`\"\u003e parameter_overrides`\u003c/span\u003e.\n","secret":true},"retainStacks":{"type":"boolean","description":"Specifies whether to retain the stack corresponding to the stack instance.Default value \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`retainStacks`\" pulumi-lang-dotnet=\"`RetainStacks`\" pulumi-lang-go=\"`retainStacks`\" pulumi-lang-python=\"`retain_stacks`\" pulumi-lang-yaml=\"`retainStacks`\" pulumi-lang-java=\"`retainStacks`\"\u003e`retain_stacks`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the stack is retained. If the stack is retained, the corresponding stack is not deleted when the stack instance is deleted from the stack group.\n"},"stackGroupName":{"type":"string","description":"The name of the stack group.\n","willReplaceOnChanges":true},"stackInstanceAccountId":{"type":"string","description":"The account to which the stack instance belongs.\n","willReplaceOnChanges":true},"stackInstanceRegionId":{"type":"string","description":"The region of the stack instance.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the stack instance. Valid values: `CURRENT` or `OUTDATED`. \n* `CURRENT`: The stack corresponding to the stack instance is up to date with the stack group.\n* `OUTDATED`: The stack corresponding to the stack instance is not up to date with the stack group. The `OUTDATED` state has the following possible causes:\n* When the CreateStackInstances operation is called to create stack instances, the corresponding stacks fail to be created.\n* When the UpdateStackInstances or UpdateStackGroup operation is called to update stack instances, the corresponding stacks fail to be updated, or only some of the stack instances are updated.\n* The create or update operation is not complete.\n"},"timeoutInMinutes":{"type":"string","description":"The timeout period that is specified for the stack creation request. Default value: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e. Unit: \u003cspan pulumi-lang-nodejs=\"`minutes`\" pulumi-lang-dotnet=\"`Minutes`\" pulumi-lang-go=\"`minutes`\" pulumi-lang-python=\"`minutes`\" pulumi-lang-yaml=\"`minutes`\" pulumi-lang-java=\"`minutes`\"\u003e`minutes`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:ros/template:Template":{"description":"Provides a ROS Template resource.\n\nFor information about ROS Template and how to use it, see [What is Template](https://www.alibabacloud.com/help/en/doc-detail/141851.htm).\n\n\u003e **NOTE:** Available in v1.108.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.ros.Template(\"example\", {\n    templateName: \"example_value\",\n    templateBody: `    {\n    \\\\t\\\\\"ROSTemplateFormatVersion\\\\\": \\\\\"2015-09-01\\\\\"\n    }\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ros.Template(\"example\",\n    template_name=\"example_value\",\n    template_body=\"\"\"    {\n    \\t\\\"ROSTemplateFormatVersion\\\": \\\"2015-09-01\\\"\n    }\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Ros.Template(\"example\", new()\n    {\n        TemplateName = \"example_value\",\n        TemplateBody = @\"    {\n    \\t\\\"\"ROSTemplateFormatVersion\\\"\": \\\"\"2015-09-01\\\"\"\n    }\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ros.NewTemplate(ctx, \"example\", \u0026ros.TemplateArgs{\n\t\t\tTemplateName: pulumi.String(\"example_value\"),\n\t\t\tTemplateBody: pulumi.String(\"    {\\n    \\\\t\\\\\\\"ROSTemplateFormatVersion\\\\\\\": \\\\\\\"2015-09-01\\\\\\\"\\n    }\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ros.Template;\nimport com.pulumi.alicloud.ros.TemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Template(\"example\", TemplateArgs.builder()\n            .templateName(\"example_value\")\n            .templateBody(\"\"\"\n    {\n    \\t\\\"ROSTemplateFormatVersion\\\": \\\"2015-09-01\\\"\n    }\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:ros:Template\n    properties:\n      templateName: example_value\n      templateBody: |2\n            {\n            \\t\\\"ROSTemplateFormatVersion\\\": \\\"2015-09-01\\\"\n            }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nROS Template can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ros/template:Template example \u003ctemplate_id\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the template. The description can be up to 256 characters in length.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"templateBody":{"type":"string","description":"The structure that contains the template body. The template body must be 1 to 524,288 bytes in length.  If the length of the template body is longer than required, we recommend that you add parameters to the HTTP POST request body to avoid request failures due to excessive length of URLs.  You must specify one of the TemplateBody and TemplateURL parameters, but you cannot specify both of them.\n"},"templateName":{"type":"string","description":"The name of the template. The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.\n"},"templateUrl":{"type":"string","description":"The template url.\n"}},"required":["templateName"],"inputProperties":{"description":{"type":"string","description":"The description of the template. The description can be up to 256 characters in length.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"templateBody":{"type":"string","description":"The structure that contains the template body. The template body must be 1 to 524,288 bytes in length.  If the length of the template body is longer than required, we recommend that you add parameters to the HTTP POST request body to avoid request failures due to excessive length of URLs.  You must specify one of the TemplateBody and TemplateURL parameters, but you cannot specify both of them.\n"},"templateName":{"type":"string","description":"The name of the template. The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.\n"},"templateUrl":{"type":"string","description":"The template url.\n"}},"requiredInputs":["templateName"],"stateInputs":{"description":"Input properties used for looking up and filtering Template resources.\n","properties":{"description":{"type":"string","description":"The description of the template. The description can be up to 256 characters in length.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"templateBody":{"type":"string","description":"The structure that contains the template body. The template body must be 1 to 524,288 bytes in length.  If the length of the template body is longer than required, we recommend that you add parameters to the HTTP POST request body to avoid request failures due to excessive length of URLs.  You must specify one of the TemplateBody and TemplateURL parameters, but you cannot specify both of them.\n"},"templateName":{"type":"string","description":"The name of the template. The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.\n"},"templateUrl":{"type":"string","description":"The template url.\n"}},"type":"object"}},"alicloud:ros/templateScratch:TemplateScratch":{"description":"Provides a ROS Template Scratch resource.\n\nFor information about ROS Template Scratch and how to use it, see [What is Template Scratch](https://www.alibabacloud.com/help/zh/doc-detail/352074.html).\n\n\u003e **NOTE:** Available since v1.151.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst example = new alicloud.ros.TemplateScratch(\"example\", {\n    description: \"tf_testacc\",\n    templateScratchType: \"ResourceImport\",\n    preferenceParameters: [{\n        parameterKey: \"DeletionPolicy\",\n        parameterValue: \"Retain\",\n    }],\n    sourceResourceGroup: {\n        resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n        resourceTypeFilters: [\"ALIYUN::ECS::VPC\"],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.get_resource_groups()\nexample = alicloud.ros.TemplateScratch(\"example\",\n    description=\"tf_testacc\",\n    template_scratch_type=\"ResourceImport\",\n    preference_parameters=[{\n        \"parameter_key\": \"DeletionPolicy\",\n        \"parameter_value\": \"Retain\",\n    }],\n    source_resource_group={\n        \"resource_group_id\": default.ids[0],\n        \"resource_type_filters\": [\"ALIYUN::ECS::VPC\"],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var example = new AliCloud.Ros.TemplateScratch(\"example\", new()\n    {\n        Description = \"tf_testacc\",\n        TemplateScratchType = \"ResourceImport\",\n        PreferenceParameters = new[]\n        {\n            new AliCloud.Ros.Inputs.TemplateScratchPreferenceParameterArgs\n            {\n                ParameterKey = \"DeletionPolicy\",\n                ParameterValue = \"Retain\",\n            },\n        },\n        SourceResourceGroup = new AliCloud.Ros.Inputs.TemplateScratchSourceResourceGroupArgs\n        {\n            ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n            ResourceTypeFilters = new[]\n            {\n                \"ALIYUN::ECS::VPC\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ros.NewTemplateScratch(ctx, \"example\", \u0026ros.TemplateScratchArgs{\n\t\t\tDescription:         pulumi.String(\"tf_testacc\"),\n\t\t\tTemplateScratchType: pulumi.String(\"ResourceImport\"),\n\t\t\tPreferenceParameters: ros.TemplateScratchPreferenceParameterArray{\n\t\t\t\t\u0026ros.TemplateScratchPreferenceParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"DeletionPolicy\"),\n\t\t\t\t\tParameterValue: pulumi.String(\"Retain\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tSourceResourceGroup: \u0026ros.TemplateScratchSourceResourceGroupArgs{\n\t\t\t\tResourceGroupId: pulumi.String(_default.Ids[0]),\n\t\t\t\tResourceTypeFilters: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"ALIYUN::ECS::VPC\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.ros.TemplateScratch;\nimport com.pulumi.alicloud.ros.TemplateScratchArgs;\nimport com.pulumi.alicloud.ros.inputs.TemplateScratchPreferenceParameterArgs;\nimport com.pulumi.alicloud.ros.inputs.TemplateScratchSourceResourceGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var example = new TemplateScratch(\"example\", TemplateScratchArgs.builder()\n            .description(\"tf_testacc\")\n            .templateScratchType(\"ResourceImport\")\n            .preferenceParameters(TemplateScratchPreferenceParameterArgs.builder()\n                .parameterKey(\"DeletionPolicy\")\n                .parameterValue(\"Retain\")\n                .build())\n            .sourceResourceGroup(TemplateScratchSourceResourceGroupArgs.builder()\n                .resourceGroupId(default_.ids()[0])\n                .resourceTypeFilters(\"ALIYUN::ECS::VPC\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:ros:TemplateScratch\n    properties:\n      description: tf_testacc\n      templateScratchType: ResourceImport\n      preferenceParameters:\n        - parameterKey: DeletionPolicy\n          parameterValue: Retain\n      sourceResourceGroup:\n        resourceGroupId: ${default.ids[0]}\n        resourceTypeFilters:\n          - ALIYUN::ECS::VPC\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nROS Template Scratch can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:ros/templateScratch:TemplateScratch example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The Description of the Template Scratch.\n"},"executionMode":{"type":"string","description":"The execution mode. Valid Values: `Async` or `Sync`.\n"},"logicalIdStrategy":{"type":"string","description":"Logical ID generation strategy. Valid Values: `LongTypePrefixAndIndexSuffix`, `LongTypePrefixAndHashSuffix` and `ShortTypePrefixAndHashSuffix`.\n"},"preferenceParameters":{"type":"array","items":{"$ref":"#/types/alicloud:ros/TemplateScratchPreferenceParameter:TemplateScratchPreferenceParameter"},"description":"Priority parameter. See the following `Block\u003cspan pulumi-lang-nodejs=\" preferenceParameters`\" pulumi-lang-dotnet=\" PreferenceParameters`\" pulumi-lang-go=\" preferenceParameters`\" pulumi-lang-python=\" preference_parameters`\" pulumi-lang-yaml=\" preferenceParameters`\" pulumi-lang-java=\" preferenceParameters`\"\u003e preference_parameters`\u003c/span\u003e.\n"},"sourceResourceGroup":{"$ref":"#/types/alicloud:ros/TemplateScratchSourceResourceGroup:TemplateScratchSourceResourceGroup","description":"Source resource grouping. See the following `Block\u003cspan pulumi-lang-nodejs=\" sourceResourceGroup`\" pulumi-lang-dotnet=\" SourceResourceGroup`\" pulumi-lang-go=\" sourceResourceGroup`\" pulumi-lang-python=\" source_resource_group`\" pulumi-lang-yaml=\" sourceResourceGroup`\" pulumi-lang-java=\" sourceResourceGroup`\"\u003e source_resource_group`\u003c/span\u003e.\n"},"sourceResources":{"type":"array","items":{"$ref":"#/types/alicloud:ros/TemplateScratchSourceResource:TemplateScratchSourceResource"},"description":"Source resource. See the following `Block\u003cspan pulumi-lang-nodejs=\" sourceResources`\" pulumi-lang-dotnet=\" SourceResources`\" pulumi-lang-go=\" sourceResources`\" pulumi-lang-python=\" source_resources`\" pulumi-lang-yaml=\" sourceResources`\" pulumi-lang-java=\" sourceResources`\"\u003e source_resources`\u003c/span\u003e.\n"},"sourceTag":{"$ref":"#/types/alicloud:ros/TemplateScratchSourceTag:TemplateScratchSourceTag","description":"Source tag. See the following `Block\u003cspan pulumi-lang-nodejs=\" sourceTag`\" pulumi-lang-dotnet=\" SourceTag`\" pulumi-lang-go=\" sourceTag`\" pulumi-lang-python=\" source_tag`\" pulumi-lang-yaml=\" sourceTag`\" pulumi-lang-java=\" sourceTag`\"\u003e source_tag`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"templateScratchType":{"type":"string","description":"The type of the Template scan. Valid Values: `ResourceImport` or `ArchitectureReplication`.\n"}},"required":["logicalIdStrategy","preferenceParameters","status","templateScratchType"],"inputProperties":{"description":{"type":"string","description":"The Description of the Template Scratch.\n"},"executionMode":{"type":"string","description":"The execution mode. Valid Values: `Async` or `Sync`.\n"},"logicalIdStrategy":{"type":"string","description":"Logical ID generation strategy. Valid Values: `LongTypePrefixAndIndexSuffix`, `LongTypePrefixAndHashSuffix` and `ShortTypePrefixAndHashSuffix`.\n"},"preferenceParameters":{"type":"array","items":{"$ref":"#/types/alicloud:ros/TemplateScratchPreferenceParameter:TemplateScratchPreferenceParameter"},"description":"Priority parameter. See the following `Block\u003cspan pulumi-lang-nodejs=\" preferenceParameters`\" pulumi-lang-dotnet=\" PreferenceParameters`\" pulumi-lang-go=\" preferenceParameters`\" pulumi-lang-python=\" preference_parameters`\" pulumi-lang-yaml=\" preferenceParameters`\" pulumi-lang-java=\" preferenceParameters`\"\u003e preference_parameters`\u003c/span\u003e.\n"},"sourceResourceGroup":{"$ref":"#/types/alicloud:ros/TemplateScratchSourceResourceGroup:TemplateScratchSourceResourceGroup","description":"Source resource grouping. See the following `Block\u003cspan pulumi-lang-nodejs=\" sourceResourceGroup`\" pulumi-lang-dotnet=\" SourceResourceGroup`\" pulumi-lang-go=\" sourceResourceGroup`\" pulumi-lang-python=\" source_resource_group`\" pulumi-lang-yaml=\" sourceResourceGroup`\" pulumi-lang-java=\" sourceResourceGroup`\"\u003e source_resource_group`\u003c/span\u003e.\n"},"sourceResources":{"type":"array","items":{"$ref":"#/types/alicloud:ros/TemplateScratchSourceResource:TemplateScratchSourceResource"},"description":"Source resource. See the following `Block\u003cspan pulumi-lang-nodejs=\" sourceResources`\" pulumi-lang-dotnet=\" SourceResources`\" pulumi-lang-go=\" sourceResources`\" pulumi-lang-python=\" source_resources`\" pulumi-lang-yaml=\" sourceResources`\" pulumi-lang-java=\" sourceResources`\"\u003e source_resources`\u003c/span\u003e.\n"},"sourceTag":{"$ref":"#/types/alicloud:ros/TemplateScratchSourceTag:TemplateScratchSourceTag","description":"Source tag. See the following `Block\u003cspan pulumi-lang-nodejs=\" sourceTag`\" pulumi-lang-dotnet=\" SourceTag`\" pulumi-lang-go=\" sourceTag`\" pulumi-lang-python=\" source_tag`\" pulumi-lang-yaml=\" sourceTag`\" pulumi-lang-java=\" sourceTag`\"\u003e source_tag`\u003c/span\u003e.\n"},"templateScratchType":{"type":"string","description":"The type of the Template scan. Valid Values: `ResourceImport` or `ArchitectureReplication`.\n","willReplaceOnChanges":true}},"requiredInputs":["templateScratchType"],"stateInputs":{"description":"Input properties used for looking up and filtering TemplateScratch resources.\n","properties":{"description":{"type":"string","description":"The Description of the Template Scratch.\n"},"executionMode":{"type":"string","description":"The execution mode. Valid Values: `Async` or `Sync`.\n"},"logicalIdStrategy":{"type":"string","description":"Logical ID generation strategy. Valid Values: `LongTypePrefixAndIndexSuffix`, `LongTypePrefixAndHashSuffix` and `ShortTypePrefixAndHashSuffix`.\n"},"preferenceParameters":{"type":"array","items":{"$ref":"#/types/alicloud:ros/TemplateScratchPreferenceParameter:TemplateScratchPreferenceParameter"},"description":"Priority parameter. See the following `Block\u003cspan pulumi-lang-nodejs=\" preferenceParameters`\" pulumi-lang-dotnet=\" PreferenceParameters`\" pulumi-lang-go=\" preferenceParameters`\" pulumi-lang-python=\" preference_parameters`\" pulumi-lang-yaml=\" preferenceParameters`\" pulumi-lang-java=\" preferenceParameters`\"\u003e preference_parameters`\u003c/span\u003e.\n"},"sourceResourceGroup":{"$ref":"#/types/alicloud:ros/TemplateScratchSourceResourceGroup:TemplateScratchSourceResourceGroup","description":"Source resource grouping. See the following `Block\u003cspan pulumi-lang-nodejs=\" sourceResourceGroup`\" pulumi-lang-dotnet=\" SourceResourceGroup`\" pulumi-lang-go=\" sourceResourceGroup`\" pulumi-lang-python=\" source_resource_group`\" pulumi-lang-yaml=\" sourceResourceGroup`\" pulumi-lang-java=\" sourceResourceGroup`\"\u003e source_resource_group`\u003c/span\u003e.\n"},"sourceResources":{"type":"array","items":{"$ref":"#/types/alicloud:ros/TemplateScratchSourceResource:TemplateScratchSourceResource"},"description":"Source resource. See the following `Block\u003cspan pulumi-lang-nodejs=\" sourceResources`\" pulumi-lang-dotnet=\" SourceResources`\" pulumi-lang-go=\" sourceResources`\" pulumi-lang-python=\" source_resources`\" pulumi-lang-yaml=\" sourceResources`\" pulumi-lang-java=\" sourceResources`\"\u003e source_resources`\u003c/span\u003e.\n"},"sourceTag":{"$ref":"#/types/alicloud:ros/TemplateScratchSourceTag:TemplateScratchSourceTag","description":"Source tag. See the following `Block\u003cspan pulumi-lang-nodejs=\" sourceTag`\" pulumi-lang-dotnet=\" SourceTag`\" pulumi-lang-go=\" sourceTag`\" pulumi-lang-python=\" source_tag`\" pulumi-lang-yaml=\" sourceTag`\" pulumi-lang-java=\" sourceTag`\"\u003e source_tag`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"templateScratchType":{"type":"string","description":"The type of the Template scan. Valid Values: `ResourceImport` or `ArchitectureReplication`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:sae/application:Application":{"description":"Provides a Serverless App Engine (SAE) Application resource.\n\nFor information about Serverless App Engine (SAE) Application and how to use it, see [What is Application](https://www.alibabacloud.com/help/en/sae/latest/createapplication).\n\n\u003e **NOTE:** Available since v1.161.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultGetZones = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultNamespace = new alicloud.sae.Namespace(\"default\", {\n    namespaceId: _default.then(_default =\u003e `${_default.regions?.[0]?.id}:example${defaultInteger.result}`),\n    namespaceName: name,\n    namespaceDescription: name,\n    enableMicroRegistration: false,\n});\nconst defaultApplication = new alicloud.sae.Application(\"default\", {\n    appDescription: name,\n    appName: `${name}-${defaultInteger.result}`,\n    namespaceId: defaultNamespace.id,\n    imageUrl: _default.then(_default =\u003e `registry-vpc.${_default.regions?.[0]?.id}.aliyuncs.com/sae-demo-image/consumer:1.0`),\n    packageType: \"Image\",\n    securityGroupId: defaultSecurityGroup.id,\n    vpcId: defaultNetwork.id,\n    vswitchId: defaultSwitch.id,\n    timezone: \"Asia/Beijing\",\n    replicas: 5,\n    cpu: 500,\n    memory: 2048,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault = alicloud.get_regions(current=True)\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_namespace = alicloud.sae.Namespace(\"default\",\n    namespace_id=f\"{default.regions[0].id}:example{default_integer['result']}\",\n    namespace_name=name,\n    namespace_description=name,\n    enable_micro_registration=False)\ndefault_application = alicloud.sae.Application(\"default\",\n    app_description=name,\n    app_name=f\"{name}-{default_integer['result']}\",\n    namespace_id=default_namespace.id,\n    image_url=f\"registry-vpc.{default.regions[0].id}.aliyuncs.com/sae-demo-image/consumer:1.0\",\n    package_type=\"Image\",\n    security_group_id=default_security_group.id,\n    vpc_id=default_network.id,\n    vswitch_id=default_switch.id,\n    timezone=\"Asia/Beijing\",\n    replicas=5,\n    cpu=500,\n    memory=2048)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultNamespace = new AliCloud.Sae.Namespace(\"default\", new()\n    {\n        NamespaceId = @default.Apply(@default =\u003e $\"{@default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}:example{defaultInteger.Result}\"),\n        NamespaceName = name,\n        NamespaceDescription = name,\n        EnableMicroRegistration = false,\n    });\n\n    var defaultApplication = new AliCloud.Sae.Application(\"default\", new()\n    {\n        AppDescription = name,\n        AppName = $\"{name}-{defaultInteger.Result}\",\n        NamespaceId = defaultNamespace.Id,\n        ImageUrl = @default.Apply(@default =\u003e $\"registry-vpc.{@default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}.aliyuncs.com/sae-demo-image/consumer:1.0\"),\n        PackageType = \"Image\",\n        SecurityGroupId = defaultSecurityGroup.Id,\n        VpcId = defaultNetwork.Id,\n        VswitchId = defaultSwitch.Id,\n        Timezone = \"Asia/Beijing\",\n        Replicas = 5,\n        Cpu = 500,\n        Memory = 2048,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sae\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNamespace, err := sae.NewNamespace(ctx, \"default\", \u0026sae.NamespaceArgs{\n\t\t\tNamespaceId:             pulumi.Sprintf(\"%v:example%v\", _default.Regions[0].Id, defaultInteger.Result),\n\t\t\tNamespaceName:           pulumi.String(name),\n\t\t\tNamespaceDescription:    pulumi.String(name),\n\t\t\tEnableMicroRegistration: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sae.NewApplication(ctx, \"default\", \u0026sae.ApplicationArgs{\n\t\t\tAppDescription:  pulumi.String(name),\n\t\t\tAppName:         pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tNamespaceId:     defaultNamespace.ID(),\n\t\t\tImageUrl:        pulumi.Sprintf(\"registry-vpc.%v.aliyuncs.com/sae-demo-image/consumer:1.0\", _default.Regions[0].Id),\n\t\t\tPackageType:     pulumi.String(\"Image\"),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\tTimezone:        pulumi.String(\"Asia/Beijing\"),\n\t\t\tReplicas:        pulumi.Int(5),\n\t\t\tCpu:             pulumi.Int(500),\n\t\t\tMemory:          pulumi.Int(2048),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.sae.Namespace;\nimport com.pulumi.alicloud.sae.NamespaceArgs;\nimport com.pulumi.alicloud.sae.Application;\nimport com.pulumi.alicloud.sae.ApplicationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultNamespace = new Namespace(\"defaultNamespace\", NamespaceArgs.builder()\n            .namespaceId(String.format(\"%s:example%s\", default_.regions()[0].id(),defaultInteger.result()))\n            .namespaceName(name)\n            .namespaceDescription(name)\n            .enableMicroRegistration(false)\n            .build());\n\n        var defaultApplication = new Application(\"defaultApplication\", ApplicationArgs.builder()\n            .appDescription(name)\n            .appName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .namespaceId(defaultNamespace.id())\n            .imageUrl(String.format(\"registry-vpc.%s.aliyuncs.com/sae-demo-image/consumer:1.0\", default_.regions()[0].id()))\n            .packageType(\"Image\")\n            .securityGroupId(defaultSecurityGroup.id())\n            .vpcId(defaultNetwork.id())\n            .vswitchId(defaultSwitch.id())\n            .timezone(\"Asia/Beijing\")\n            .replicas(5)\n            .cpu(500)\n            .memory(2048)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n  defaultNamespace:\n    type: alicloud:sae:Namespace\n    name: default\n    properties:\n      namespaceId: ${default.regions[0].id}:example${defaultInteger.result}\n      namespaceName: ${name}\n      namespaceDescription: ${name}\n      enableMicroRegistration: false\n  defaultApplication:\n    type: alicloud:sae:Application\n    name: default\n    properties:\n      appDescription: ${name}\n      appName: ${name}-${defaultInteger.result}\n      namespaceId: ${defaultNamespace.id}\n      imageUrl: registry-vpc.${default.regions[0].id}.aliyuncs.com/sae-demo-image/consumer:1.0\n      packageType: Image\n      securityGroupId: ${defaultSecurityGroup.id}\n      vpcId: ${defaultNetwork.id}\n      vswitchId: ${defaultSwitch.id}\n      timezone: Asia/Beijing\n      replicas: '5'\n      cpu: '500'\n      memory: '2048'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nServerless App Engine (SAE) Application can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sae/application:Application example \u003cid\u003e\n```\n\n","properties":{"acrAssumeRoleArn":{"type":"string","description":"The ARN of the RAM role required when pulling images across accounts. Only necessary if the\u003cspan pulumi-lang-nodejs=\" imageUrl \" pulumi-lang-dotnet=\" ImageUrl \" pulumi-lang-go=\" imageUrl \" pulumi-lang-python=\" image_url \" pulumi-lang-yaml=\" imageUrl \" pulumi-lang-java=\" imageUrl \"\u003e image_url \u003c/span\u003eis pointing to an ACR EE instance.\n"},"acrInstanceId":{"type":"string","description":"The ID of the ACR EE instance. Only necessary if the\u003cspan pulumi-lang-nodejs=\" imageUrl \" pulumi-lang-dotnet=\" ImageUrl \" pulumi-lang-go=\" imageUrl \" pulumi-lang-python=\" image_url \" pulumi-lang-yaml=\" imageUrl \" pulumi-lang-java=\" imageUrl \"\u003e image_url \u003c/span\u003eis pointing to an ACR EE instance.\n"},"appDescription":{"type":"string","description":"Application description information. No more than 1024 characters. **NOTE:** From version 1.211.0, \u003cspan pulumi-lang-nodejs=\"`appDescription`\" pulumi-lang-dotnet=\"`AppDescription`\" pulumi-lang-go=\"`appDescription`\" pulumi-lang-python=\"`app_description`\" pulumi-lang-yaml=\"`appDescription`\" pulumi-lang-java=\"`appDescription`\"\u003e`app_description`\u003c/span\u003e can be modified.\n"},"appName":{"type":"string","description":"Application Name. Combinations of numbers, letters, and dashes (-) are allowed. It must start with a letter and the maximum length is 36 characters.\n"},"autoConfig":{"type":"boolean","description":"The auto config. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoEnableApplicationScalingRule":{"type":"boolean","description":"The auto enable application scaling rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"batchWaitTime":{"type":"integer","description":"The batch wait time.\n"},"changeOrderDesc":{"type":"string","description":"The change order desc.\n"},"command":{"type":"string","description":"Mirror start command. The command must be an executable object in the container. For example: sleep. Setting this command will cause the original startup command of the mirror to become invalid.\n"},"commandArgs":{"type":"string","description":"Mirror startup command parameters. The parameters required for the above start command. For example: 1d. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`commandArgs`\" pulumi-lang-dotnet=\"`CommandArgs`\" pulumi-lang-go=\"`commandArgs`\" pulumi-lang-python=\"`command_args`\" pulumi-lang-yaml=\"`commandArgs`\" pulumi-lang-java=\"`commandArgs`\"\u003e`command_args`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`commandArgsV2`\" pulumi-lang-dotnet=\"`CommandArgsV2`\" pulumi-lang-go=\"`commandArgsV2`\" pulumi-lang-python=\"`command_args_v2`\" pulumi-lang-yaml=\"`commandArgsV2`\" pulumi-lang-java=\"`commandArgsV2`\"\u003e`command_args_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`commandArgs`\" pulumi-lang-dotnet=\"`CommandArgs`\" pulumi-lang-go=\"`commandArgs`\" pulumi-lang-python=\"`command_args`\" pulumi-lang-yaml=\"`commandArgs`\" pulumi-lang-java=\"`commandArgs`\"\u003e`command_args`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`commandArgsV2`\" pulumi-lang-dotnet=\"`CommandArgsV2`\" pulumi-lang-go=\"`commandArgsV2`\" pulumi-lang-python=\"`command_args_v2`\" pulumi-lang-yaml=\"`commandArgsV2`\" pulumi-lang-java=\"`commandArgsV2`\"\u003e`command_args_v2`\u003c/span\u003e instead."},"commandArgsV2s":{"type":"array","items":{"type":"string"},"description":"The parameters of the image startup command.\n"},"configMapMountDesc":{"type":"string","description":"ConfigMap mount description. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`configMapMountDesc`\" pulumi-lang-dotnet=\"`ConfigMapMountDesc`\" pulumi-lang-go=\"`configMapMountDesc`\" pulumi-lang-python=\"`config_map_mount_desc`\" pulumi-lang-yaml=\"`configMapMountDesc`\" pulumi-lang-java=\"`configMapMountDesc`\"\u003e`config_map_mount_desc`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`configMapMountDescV2`\" pulumi-lang-dotnet=\"`ConfigMapMountDescV2`\" pulumi-lang-go=\"`configMapMountDescV2`\" pulumi-lang-python=\"`config_map_mount_desc_v2`\" pulumi-lang-yaml=\"`configMapMountDescV2`\" pulumi-lang-java=\"`configMapMountDescV2`\"\u003e`config_map_mount_desc_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`configMapMountDesc`\" pulumi-lang-dotnet=\"`ConfigMapMountDesc`\" pulumi-lang-go=\"`configMapMountDesc`\" pulumi-lang-python=\"`config_map_mount_desc`\" pulumi-lang-yaml=\"`configMapMountDesc`\" pulumi-lang-java=\"`configMapMountDesc`\"\u003e`config_map_mount_desc`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`configMapMountDescV2`\" pulumi-lang-dotnet=\"`ConfigMapMountDescV2`\" pulumi-lang-go=\"`configMapMountDescV2`\" pulumi-lang-python=\"`config_map_mount_desc_v2`\" pulumi-lang-yaml=\"`configMapMountDescV2`\" pulumi-lang-java=\"`configMapMountDescV2`\"\u003e`config_map_mount_desc_v2`\u003c/span\u003e instead."},"configMapMountDescV2s":{"type":"array","items":{"$ref":"#/types/alicloud:sae/ApplicationConfigMapMountDescV2:ApplicationConfigMapMountDescV2"},"description":"The description of the ConfigMap that is mounted to the application. A ConfigMap that is created on the ConfigMaps page of a namespace is used to inject configurations into containers. See \u003cspan pulumi-lang-nodejs=\"`configMapMountDescV2`\" pulumi-lang-dotnet=\"`ConfigMapMountDescV2`\" pulumi-lang-go=\"`configMapMountDescV2`\" pulumi-lang-python=\"`config_map_mount_desc_v2`\" pulumi-lang-yaml=\"`configMapMountDescV2`\" pulumi-lang-java=\"`configMapMountDescV2`\"\u003e`config_map_mount_desc_v2`\u003c/span\u003e below.\n"},"cpu":{"type":"integer","description":"The CPU required for each instance, in millicores, cannot be 0. Valid values: \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\"\u003e`4000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8000`\" pulumi-lang-dotnet=\"`8000`\" pulumi-lang-go=\"`8000`\" pulumi-lang-python=\"`8000`\" pulumi-lang-yaml=\"`8000`\" pulumi-lang-java=\"`8000`\"\u003e`8000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16000`\" pulumi-lang-dotnet=\"`16000`\" pulumi-lang-go=\"`16000`\" pulumi-lang-python=\"`16000`\" pulumi-lang-yaml=\"`16000`\" pulumi-lang-java=\"`16000`\"\u003e`16000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32000`\" pulumi-lang-dotnet=\"`32000`\" pulumi-lang-go=\"`32000`\" pulumi-lang-python=\"`32000`\" pulumi-lang-yaml=\"`32000`\" pulumi-lang-java=\"`32000`\"\u003e`32000`\u003c/span\u003e.\n"},"customHostAlias":{"type":"string","description":"Custom host mapping in the container. For example: [{`hostName`:\u003cspan pulumi-lang-nodejs=\"`samplehost`\" pulumi-lang-dotnet=\"`Samplehost`\" pulumi-lang-go=\"`samplehost`\" pulumi-lang-python=\"`samplehost`\" pulumi-lang-yaml=\"`samplehost`\" pulumi-lang-java=\"`samplehost`\"\u003e`samplehost`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e:`127.0.0.1`}]. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`customHostAlias`\" pulumi-lang-dotnet=\"`CustomHostAlias`\" pulumi-lang-go=\"`customHostAlias`\" pulumi-lang-python=\"`custom_host_alias`\" pulumi-lang-yaml=\"`customHostAlias`\" pulumi-lang-java=\"`customHostAlias`\"\u003e`custom_host_alias`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`customHostAliasV2`\" pulumi-lang-dotnet=\"`CustomHostAliasV2`\" pulumi-lang-go=\"`customHostAliasV2`\" pulumi-lang-python=\"`custom_host_alias_v2`\" pulumi-lang-yaml=\"`customHostAliasV2`\" pulumi-lang-java=\"`customHostAliasV2`\"\u003e`custom_host_alias_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`customHostAlias`\" pulumi-lang-dotnet=\"`CustomHostAlias`\" pulumi-lang-go=\"`customHostAlias`\" pulumi-lang-python=\"`custom_host_alias`\" pulumi-lang-yaml=\"`customHostAlias`\" pulumi-lang-java=\"`customHostAlias`\"\u003e`custom_host_alias`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`customHostAliasV2`\" pulumi-lang-dotnet=\"`CustomHostAliasV2`\" pulumi-lang-go=\"`customHostAliasV2`\" pulumi-lang-python=\"`custom_host_alias_v2`\" pulumi-lang-yaml=\"`customHostAliasV2`\" pulumi-lang-java=\"`customHostAliasV2`\"\u003e`custom_host_alias_v2`\u003c/span\u003e instead."},"customHostAliasV2s":{"type":"array","items":{"$ref":"#/types/alicloud:sae/ApplicationCustomHostAliasV2:ApplicationCustomHostAliasV2"},"description":"The custom mapping between the hostname and IP address in the container. See \u003cspan pulumi-lang-nodejs=\"`customHostAliasV2`\" pulumi-lang-dotnet=\"`CustomHostAliasV2`\" pulumi-lang-go=\"`customHostAliasV2`\" pulumi-lang-python=\"`custom_host_alias_v2`\" pulumi-lang-yaml=\"`customHostAliasV2`\" pulumi-lang-java=\"`customHostAliasV2`\"\u003e`custom_host_alias_v2`\u003c/span\u003e below.\n"},"deploy":{"type":"boolean","description":"The deploy. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"edasContainerVersion":{"type":"string","description":"The operating environment used by the Pandora application.\n"},"enableAhas":{"type":"string","description":"The enable ahas. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enableGreyTagRoute":{"type":"boolean","description":"The enable grey tag route. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"envs":{"type":"string","description":"Container environment variable parameters. For example,`\t[{\"name\":\"envtmp\",\"value\":\"0\"}]`. The value description is as follows:\n"},"imagePullSecrets":{"type":"string","description":"The ID of the corresponding Secret.\n"},"imageUrl":{"type":"string","description":"Mirror address. Only Image type applications can configure the mirror address.\n"},"jarStartArgs":{"type":"string","description":"The JAR package starts application parameters. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS \"$package_path\" $JarStartArgs.\n"},"jarStartOptions":{"type":"string","description":"The JAR package starts the application option. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS \"$package_path\" $JarStartArgs.\n"},"jdk":{"type":"string","description":"The JDK version that the deployment package depends on. Image type applications are not supported.\n"},"kafkaConfigs":{"$ref":"#/types/alicloud:sae/ApplicationKafkaConfigs:ApplicationKafkaConfigs","description":"The logging configurations of ApsaraMQ for Kafka. See \u003cspan pulumi-lang-nodejs=\"`kafkaConfigs`\" pulumi-lang-dotnet=\"`KafkaConfigs`\" pulumi-lang-go=\"`kafkaConfigs`\" pulumi-lang-python=\"`kafka_configs`\" pulumi-lang-yaml=\"`kafkaConfigs`\" pulumi-lang-java=\"`kafkaConfigs`\"\u003e`kafka_configs`\u003c/span\u003e below.\n"},"liveness":{"type":"string","description":"Container health check. Containers that fail the health check will be shut down and restored. Currently, only the method of issuing commands in the container is supported.\n**NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`liveness`\" pulumi-lang-dotnet=\"`Liveness`\" pulumi-lang-go=\"`liveness`\" pulumi-lang-python=\"`liveness`\" pulumi-lang-yaml=\"`liveness`\" pulumi-lang-java=\"`liveness`\"\u003e`liveness`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`livenessV2`\" pulumi-lang-dotnet=\"`LivenessV2`\" pulumi-lang-go=\"`livenessV2`\" pulumi-lang-python=\"`liveness_v2`\" pulumi-lang-yaml=\"`livenessV2`\" pulumi-lang-java=\"`livenessV2`\"\u003e`liveness_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`liveness`\" pulumi-lang-dotnet=\"`Liveness`\" pulumi-lang-go=\"`liveness`\" pulumi-lang-python=\"`liveness`\" pulumi-lang-yaml=\"`liveness`\" pulumi-lang-java=\"`liveness`\"\u003e`liveness`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`livenessV2`\" pulumi-lang-dotnet=\"`LivenessV2`\" pulumi-lang-go=\"`livenessV2`\" pulumi-lang-python=\"`liveness_v2`\" pulumi-lang-yaml=\"`livenessV2`\" pulumi-lang-java=\"`livenessV2`\"\u003e`liveness_v2`\u003c/span\u003e instead."},"livenessV2":{"$ref":"#/types/alicloud:sae/ApplicationLivenessV2:ApplicationLivenessV2","description":"The liveness check settings of the container. See \u003cspan pulumi-lang-nodejs=\"`livenessV2`\" pulumi-lang-dotnet=\"`LivenessV2`\" pulumi-lang-go=\"`livenessV2`\" pulumi-lang-python=\"`liveness_v2`\" pulumi-lang-yaml=\"`livenessV2`\" pulumi-lang-java=\"`livenessV2`\"\u003e`liveness_v2`\u003c/span\u003e below.\n"},"memory":{"type":"integer","description":"The memory required for each instance, in MB, cannot be 0. One-to-one correspondence with CPU. Valid values: \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2048`\" pulumi-lang-dotnet=\"`2048`\" pulumi-lang-go=\"`2048`\" pulumi-lang-python=\"`2048`\" pulumi-lang-yaml=\"`2048`\" pulumi-lang-java=\"`2048`\"\u003e`2048`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4096`\" pulumi-lang-dotnet=\"`4096`\" pulumi-lang-go=\"`4096`\" pulumi-lang-python=\"`4096`\" pulumi-lang-yaml=\"`4096`\" pulumi-lang-java=\"`4096`\"\u003e`4096`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8192`\" pulumi-lang-dotnet=\"`8192`\" pulumi-lang-go=\"`8192`\" pulumi-lang-python=\"`8192`\" pulumi-lang-yaml=\"`8192`\" pulumi-lang-java=\"`8192`\"\u003e`8192`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12288`\" pulumi-lang-dotnet=\"`12288`\" pulumi-lang-go=\"`12288`\" pulumi-lang-python=\"`12288`\" pulumi-lang-yaml=\"`12288`\" pulumi-lang-java=\"`12288`\"\u003e`12288`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16384`\" pulumi-lang-dotnet=\"`16384`\" pulumi-lang-go=\"`16384`\" pulumi-lang-python=\"`16384`\" pulumi-lang-yaml=\"`16384`\" pulumi-lang-java=\"`16384`\"\u003e`16384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24576`\" pulumi-lang-dotnet=\"`24576`\" pulumi-lang-go=\"`24576`\" pulumi-lang-python=\"`24576`\" pulumi-lang-yaml=\"`24576`\" pulumi-lang-java=\"`24576`\"\u003e`24576`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`131072`\" pulumi-lang-dotnet=\"`131072`\" pulumi-lang-go=\"`131072`\" pulumi-lang-python=\"`131072`\" pulumi-lang-yaml=\"`131072`\" pulumi-lang-java=\"`131072`\"\u003e`131072`\u003c/span\u003e.\n"},"microRegistration":{"type":"string","description":"Select the Nacos registry. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"},"minReadyInstanceRatio":{"type":"integer","description":"Minimum Survival Instance Percentage. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`minReadyInstances`\" pulumi-lang-dotnet=\"`MinReadyInstances`\" pulumi-lang-go=\"`minReadyInstances`\" pulumi-lang-python=\"`min_ready_instances`\" pulumi-lang-yaml=\"`minReadyInstances`\" pulumi-lang-java=\"`minReadyInstances`\"\u003e`min_ready_instances`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`minReadyInstanceRatio`\" pulumi-lang-dotnet=\"`MinReadyInstanceRatio`\" pulumi-lang-go=\"`minReadyInstanceRatio`\" pulumi-lang-python=\"`min_ready_instance_ratio`\" pulumi-lang-yaml=\"`minReadyInstanceRatio`\" pulumi-lang-java=\"`minReadyInstanceRatio`\"\u003e`min_ready_instance_ratio`\u003c/span\u003e are passed at the same time, and the value of \u003cspan pulumi-lang-nodejs=\"`minReadyInstanceRatio`\" pulumi-lang-dotnet=\"`MinReadyInstanceRatio`\" pulumi-lang-go=\"`minReadyInstanceRatio`\" pulumi-lang-python=\"`min_ready_instance_ratio`\" pulumi-lang-yaml=\"`minReadyInstanceRatio`\" pulumi-lang-java=\"`minReadyInstanceRatio`\"\u003e`min_ready_instance_ratio`\u003c/span\u003e is not -1, the \u003cspan pulumi-lang-nodejs=\"`minReadyInstanceRatio`\" pulumi-lang-dotnet=\"`MinReadyInstanceRatio`\" pulumi-lang-go=\"`minReadyInstanceRatio`\" pulumi-lang-python=\"`min_ready_instance_ratio`\" pulumi-lang-yaml=\"`minReadyInstanceRatio`\" pulumi-lang-java=\"`minReadyInstanceRatio`\"\u003e`min_ready_instance_ratio`\u003c/span\u003e parameter shall prevail. Assuming that \u003cspan pulumi-lang-nodejs=\"`minReadyInstances`\" pulumi-lang-dotnet=\"`MinReadyInstances`\" pulumi-lang-go=\"`minReadyInstances`\" pulumi-lang-python=\"`min_ready_instances`\" pulumi-lang-yaml=\"`minReadyInstances`\" pulumi-lang-java=\"`minReadyInstances`\"\u003e`min_ready_instances`\u003c/span\u003e is 5 and \u003cspan pulumi-lang-nodejs=\"`minReadyInstanceRatio`\" pulumi-lang-dotnet=\"`MinReadyInstanceRatio`\" pulumi-lang-go=\"`minReadyInstanceRatio`\" pulumi-lang-python=\"`min_ready_instance_ratio`\" pulumi-lang-yaml=\"`minReadyInstanceRatio`\" pulumi-lang-java=\"`minReadyInstanceRatio`\"\u003e`min_ready_instance_ratio`\u003c/span\u003e is 50, 50 is used to calculate the minimum number of surviving instances.The value description is as follows:\n* `-1`: Initialization value, indicating that percentages are not used.\n* `0~100`: The unit is percentage, rounded up. For example, if it is set to 50%, if there are currently 5 instances, the minimum number of surviving instances is 3.\n"},"minReadyInstances":{"type":"integer","description":"The Minimum Available Instance. On the Change Had Promised during the Available Number of Instances to Be.\n"},"namespaceId":{"type":"string","description":"SAE namespace ID. Only namespaces whose names are lowercase letters and dashes (-) are supported, and must start with a letter. The namespace can be obtained by calling the DescribeNamespaceList interface.\n"},"nasConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:sae/ApplicationNasConfig:ApplicationNasConfig"},"description":"The configurations for mounting the NAS file system. See \u003cspan pulumi-lang-nodejs=\"`nasConfigs`\" pulumi-lang-dotnet=\"`NasConfigs`\" pulumi-lang-go=\"`nasConfigs`\" pulumi-lang-python=\"`nas_configs`\" pulumi-lang-yaml=\"`nasConfigs`\" pulumi-lang-java=\"`nasConfigs`\"\u003e`nas_configs`\u003c/span\u003e below.\n"},"ossAkId":{"type":"string","description":"OSS AccessKey ID.\n","secret":true},"ossAkSecret":{"type":"string","description":"OSS  AccessKey Secret.\n","secret":true},"ossMountDescs":{"type":"string","description":"OSS mount description information. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`ossMountDescs`\" pulumi-lang-dotnet=\"`OssMountDescs`\" pulumi-lang-go=\"`ossMountDescs`\" pulumi-lang-python=\"`oss_mount_descs`\" pulumi-lang-yaml=\"`ossMountDescs`\" pulumi-lang-java=\"`ossMountDescs`\"\u003e`oss_mount_descs`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`ossMountDescsV2`\" pulumi-lang-dotnet=\"`OssMountDescsV2`\" pulumi-lang-go=\"`ossMountDescsV2`\" pulumi-lang-python=\"`oss_mount_descs_v2`\" pulumi-lang-yaml=\"`ossMountDescsV2`\" pulumi-lang-java=\"`ossMountDescsV2`\"\u003e`oss_mount_descs_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`ossMountDescs`\" pulumi-lang-dotnet=\"`OssMountDescs`\" pulumi-lang-go=\"`ossMountDescs`\" pulumi-lang-python=\"`oss_mount_descs`\" pulumi-lang-yaml=\"`ossMountDescs`\" pulumi-lang-java=\"`ossMountDescs`\"\u003e`oss_mount_descs`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`ossMountDescsV2`\" pulumi-lang-dotnet=\"`OssMountDescsV2`\" pulumi-lang-go=\"`ossMountDescsV2`\" pulumi-lang-python=\"`oss_mount_descs_v2`\" pulumi-lang-yaml=\"`ossMountDescsV2`\" pulumi-lang-java=\"`ossMountDescsV2`\"\u003e`oss_mount_descs_v2`\u003c/span\u003e instead."},"ossMountDescsV2s":{"type":"array","items":{"$ref":"#/types/alicloud:sae/ApplicationOssMountDescsV2:ApplicationOssMountDescsV2"},"description":"The description of the mounted Object Storage Service (OSS) bucket. See \u003cspan pulumi-lang-nodejs=\"`ossMountDescsV2`\" pulumi-lang-dotnet=\"`OssMountDescsV2`\" pulumi-lang-go=\"`ossMountDescsV2`\" pulumi-lang-python=\"`oss_mount_descs_v2`\" pulumi-lang-yaml=\"`ossMountDescsV2`\" pulumi-lang-java=\"`ossMountDescsV2`\"\u003e`oss_mount_descs_v2`\u003c/span\u003e below.\n"},"packageType":{"type":"string","description":"Application package type. Valid values: `FatJar`, `War`, `Image`, `PhpZip`, `IMAGE_PHP_5_4`, `IMAGE_PHP_5_4_ALPINE`, `IMAGE_PHP_5_5`, `IMAGE_PHP_5_5_ALPINE`, `IMAGE_PHP_5_6`, `IMAGE_PHP_5_6_ALPINE`, `IMAGE_PHP_7_0`, `IMAGE_PHP_7_0_ALPINE`, `IMAGE_PHP_7_1`, `IMAGE_PHP_7_1_ALPINE`, `IMAGE_PHP_7_2`, `IMAGE_PHP_7_2_ALPINE`, `IMAGE_PHP_7_3`, `IMAGE_PHP_7_3_ALPINE`, `PythonZip`.\n"},"packageUrl":{"type":"string","description":"Deployment package address. Only FatJar or War type applications can configure the deployment package address.\n"},"packageVersion":{"type":"string","description":"The version number of the deployment package. Required when the Package Type is War and FatJar.\n"},"php":{"type":"string","description":"The Php environment.\n"},"phpArmsConfigLocation":{"type":"string","description":"The PHP application monitors the mount path, and you need to ensure that the PHP server will load the configuration file of this path. You don't need to pay attention to the configuration content, SAE will automatically render the correct configuration file.\n"},"phpConfig":{"type":"string","description":"PHP configuration file content.\n"},"phpConfigLocation":{"type":"string","description":"PHP application startup configuration mount path, you need to ensure that the PHP server will start using this configuration file.\n"},"postStart":{"type":"string","description":"Execute the script after startup, the format is like: {\u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e:{\u003cspan pulumi-lang-nodejs=\"`command`\" pulumi-lang-dotnet=\"`Command`\" pulumi-lang-go=\"`command`\" pulumi-lang-python=\"`command`\" pulumi-lang-yaml=\"`command`\" pulumi-lang-java=\"`command`\"\u003e`command`\u003c/span\u003e:[\u003cspan pulumi-lang-nodejs=\"`cat`\" pulumi-lang-dotnet=\"`Cat`\" pulumi-lang-go=\"`cat`\" pulumi-lang-python=\"`cat`\" pulumi-lang-yaml=\"`cat`\" pulumi-lang-java=\"`cat`\"\u003e`cat`\u003c/span\u003e,\"/etc/group\"]}}. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`postStart`\" pulumi-lang-dotnet=\"`PostStart`\" pulumi-lang-go=\"`postStart`\" pulumi-lang-python=\"`post_start`\" pulumi-lang-yaml=\"`postStart`\" pulumi-lang-java=\"`postStart`\"\u003e`post_start`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`postStartV2`\" pulumi-lang-dotnet=\"`PostStartV2`\" pulumi-lang-go=\"`postStartV2`\" pulumi-lang-python=\"`post_start_v2`\" pulumi-lang-yaml=\"`postStartV2`\" pulumi-lang-java=\"`postStartV2`\"\u003e`post_start_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`postStart`\" pulumi-lang-dotnet=\"`PostStart`\" pulumi-lang-go=\"`postStart`\" pulumi-lang-python=\"`post_start`\" pulumi-lang-yaml=\"`postStart`\" pulumi-lang-java=\"`postStart`\"\u003e`post_start`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`postStartV2`\" pulumi-lang-dotnet=\"`PostStartV2`\" pulumi-lang-go=\"`postStartV2`\" pulumi-lang-python=\"`post_start_v2`\" pulumi-lang-yaml=\"`postStartV2`\" pulumi-lang-java=\"`postStartV2`\"\u003e`post_start_v2`\u003c/span\u003e instead."},"postStartV2":{"$ref":"#/types/alicloud:sae/ApplicationPostStartV2:ApplicationPostStartV2","description":"The script that is run immediately after the container is started. See \u003cspan pulumi-lang-nodejs=\"`postStartV2`\" pulumi-lang-dotnet=\"`PostStartV2`\" pulumi-lang-go=\"`postStartV2`\" pulumi-lang-python=\"`post_start_v2`\" pulumi-lang-yaml=\"`postStartV2`\" pulumi-lang-java=\"`postStartV2`\"\u003e`post_start_v2`\u003c/span\u003e below.\n"},"preStop":{"type":"string","description":"Execute the script before stopping, the format is like: {\u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e:{\u003cspan pulumi-lang-nodejs=\"`command`\" pulumi-lang-dotnet=\"`Command`\" pulumi-lang-go=\"`command`\" pulumi-lang-python=\"`command`\" pulumi-lang-yaml=\"`command`\" pulumi-lang-java=\"`command`\"\u003e`command`\u003c/span\u003e:[\u003cspan pulumi-lang-nodejs=\"`cat`\" pulumi-lang-dotnet=\"`Cat`\" pulumi-lang-go=\"`cat`\" pulumi-lang-python=\"`cat`\" pulumi-lang-yaml=\"`cat`\" pulumi-lang-java=\"`cat`\"\u003e`cat`\u003c/span\u003e,\"/etc/group\"]}}. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`preStop`\" pulumi-lang-dotnet=\"`PreStop`\" pulumi-lang-go=\"`preStop`\" pulumi-lang-python=\"`pre_stop`\" pulumi-lang-yaml=\"`preStop`\" pulumi-lang-java=\"`preStop`\"\u003e`pre_stop`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`preStopV2`\" pulumi-lang-dotnet=\"`PreStopV2`\" pulumi-lang-go=\"`preStopV2`\" pulumi-lang-python=\"`pre_stop_v2`\" pulumi-lang-yaml=\"`preStopV2`\" pulumi-lang-java=\"`preStopV2`\"\u003e`pre_stop_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`preStop`\" pulumi-lang-dotnet=\"`PreStop`\" pulumi-lang-go=\"`preStop`\" pulumi-lang-python=\"`pre_stop`\" pulumi-lang-yaml=\"`preStop`\" pulumi-lang-java=\"`preStop`\"\u003e`pre_stop`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`preStopV2`\" pulumi-lang-dotnet=\"`PreStopV2`\" pulumi-lang-go=\"`preStopV2`\" pulumi-lang-python=\"`pre_stop_v2`\" pulumi-lang-yaml=\"`preStopV2`\" pulumi-lang-java=\"`preStopV2`\"\u003e`pre_stop_v2`\u003c/span\u003e instead."},"preStopV2":{"$ref":"#/types/alicloud:sae/ApplicationPreStopV2:ApplicationPreStopV2","description":"The script that is run before the container is stopped. See \u003cspan pulumi-lang-nodejs=\"`preStopV2`\" pulumi-lang-dotnet=\"`PreStopV2`\" pulumi-lang-go=\"`preStopV2`\" pulumi-lang-python=\"`pre_stop_v2`\" pulumi-lang-yaml=\"`preStopV2`\" pulumi-lang-java=\"`preStopV2`\"\u003e`pre_stop_v2`\u003c/span\u003e below.\n"},"programmingLanguage":{"type":"string","description":"The programming language that is used to create the application. Valid values: \u003cspan pulumi-lang-nodejs=\"`java`\" pulumi-lang-dotnet=\"`Java`\" pulumi-lang-go=\"`java`\" pulumi-lang-python=\"`java`\" pulumi-lang-yaml=\"`java`\" pulumi-lang-java=\"`java`\"\u003e`java`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`php`\" pulumi-lang-dotnet=\"`Php`\" pulumi-lang-go=\"`php`\" pulumi-lang-python=\"`php`\" pulumi-lang-yaml=\"`php`\" pulumi-lang-java=\"`php`\"\u003e`php`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`other`\" pulumi-lang-dotnet=\"`Other`\" pulumi-lang-go=\"`other`\" pulumi-lang-python=\"`other`\" pulumi-lang-yaml=\"`other`\" pulumi-lang-java=\"`other`\"\u003e`other`\u003c/span\u003e.\n"},"pvtzDiscoverySvc":{"$ref":"#/types/alicloud:sae/ApplicationPvtzDiscoverySvc:ApplicationPvtzDiscoverySvc","description":"The configurations of Kubernetes Service-based service registration and discovery. See \u003cspan pulumi-lang-nodejs=\"`pvtzDiscoverySvc`\" pulumi-lang-dotnet=\"`PvtzDiscoverySvc`\" pulumi-lang-go=\"`pvtzDiscoverySvc`\" pulumi-lang-python=\"`pvtz_discovery_svc`\" pulumi-lang-yaml=\"`pvtzDiscoverySvc`\" pulumi-lang-java=\"`pvtzDiscoverySvc`\"\u003e`pvtz_discovery_svc`\u003c/span\u003e below.\n"},"readiness":{"type":"string","description":"Application startup status checks, containers that fail multiple health checks will be shut down and restarted. Containers that do not pass the health check will not receive SLB traffic. For example: {\u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e:{\u003cspan pulumi-lang-nodejs=\"`command`\" pulumi-lang-dotnet=\"`Command`\" pulumi-lang-go=\"`command`\" pulumi-lang-python=\"`command`\" pulumi-lang-yaml=\"`command`\" pulumi-lang-java=\"`command`\"\u003e`command`\u003c/span\u003e:[\u003cspan pulumi-lang-nodejs=\"`sh`\" pulumi-lang-dotnet=\"`Sh`\" pulumi-lang-go=\"`sh`\" pulumi-lang-python=\"`sh`\" pulumi-lang-yaml=\"`sh`\" pulumi-lang-java=\"`sh`\"\u003e`sh`\u003c/span\u003e,\"-c\",\"cat /home/admin/start.sh\"]},`initialDelaySeconds`:30,`periodSeconds`:30,\"timeoutSeconds \":2}. Valid values: \u003cspan pulumi-lang-nodejs=\"`command`\" pulumi-lang-dotnet=\"`Command`\" pulumi-lang-go=\"`command`\" pulumi-lang-python=\"`command`\" pulumi-lang-yaml=\"`command`\" pulumi-lang-java=\"`command`\"\u003e`command`\u003c/span\u003e, `initialDelaySeconds`, `periodSeconds`, `timeoutSeconds`.\n**NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`readiness`\" pulumi-lang-dotnet=\"`Readiness`\" pulumi-lang-go=\"`readiness`\" pulumi-lang-python=\"`readiness`\" pulumi-lang-yaml=\"`readiness`\" pulumi-lang-java=\"`readiness`\"\u003e`readiness`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`readinessV2`\" pulumi-lang-dotnet=\"`ReadinessV2`\" pulumi-lang-go=\"`readinessV2`\" pulumi-lang-python=\"`readiness_v2`\" pulumi-lang-yaml=\"`readinessV2`\" pulumi-lang-java=\"`readinessV2`\"\u003e`readiness_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`readiness`\" pulumi-lang-dotnet=\"`Readiness`\" pulumi-lang-go=\"`readiness`\" pulumi-lang-python=\"`readiness`\" pulumi-lang-yaml=\"`readiness`\" pulumi-lang-java=\"`readiness`\"\u003e`readiness`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`readinessV2`\" pulumi-lang-dotnet=\"`ReadinessV2`\" pulumi-lang-go=\"`readinessV2`\" pulumi-lang-python=\"`readiness_v2`\" pulumi-lang-yaml=\"`readinessV2`\" pulumi-lang-java=\"`readinessV2`\"\u003e`readiness_v2`\u003c/span\u003e instead."},"readinessV2":{"$ref":"#/types/alicloud:sae/ApplicationReadinessV2:ApplicationReadinessV2","description":"The readiness check settings of the container. If a container fails this health check multiple times, the container is stopped and then restarted. See \u003cspan pulumi-lang-nodejs=\"`readinessV2`\" pulumi-lang-dotnet=\"`ReadinessV2`\" pulumi-lang-go=\"`readinessV2`\" pulumi-lang-python=\"`readiness_v2`\" pulumi-lang-yaml=\"`readinessV2`\" pulumi-lang-java=\"`readinessV2`\"\u003e`readiness_v2`\u003c/span\u003e below.\n"},"replicas":{"type":"integer","description":"Initial number of instances.\n"},"securityGroupId":{"type":"string","description":"Security group ID.\n"},"slsConfigs":{"type":"string","description":"Configuration for log collection to SLS. Valid parameter descriptions are as follows:\n* `projectName`: Configures the project name on SLS.\n* `logDir`: Path to the logs.\n* `logType`: Type of logs. stdout indicates container standard output logs, and only one can be set; if not set, it means collecting file logs.\n* `logstoreName`: Configures the log store name on SLS.\n* `logtailName`: Configures the log tail name on SLS; if not specified, it means creating a new log tail.\n\nIf you no longer need to use the SLS collection feature, you should set the value of this field to an empty string. There are two examples:\n- Using SAE automatically created SLS resources: [{\"logDir\":\"\",\"logType\":\"stdout\"},{\"logDir\":\"/tmp/a.log\"}].\n- Using custom SLS resources: [{\"projectName\":\"test-sls\",\"logType\":\"stdout\",\"logDir\":\"\",\"logstoreName\":\"sae\",\"logtailName\":\"\"},{\"projectName\":\"test\",\"logDir\":\"/tmp/a.log\",\"logstoreName\":\"sae\",\"logtailName\":\"\"}].\n\n**NOTE:** Projects that are automatically created with applications will be deleted along with the application deletion. Therefore, when selecting existing projects, you cannot choose projects automatically created by SAE.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `RUNNING`, `STOPPED`, `UNKNOWN`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"terminationGracePeriodSeconds":{"type":"integer","description":"Graceful offline timeout, the default is 30, the unit is seconds. The value range is 1~60. Valid values: [1,60].\n"},"timezone":{"type":"string","description":"Time zone. Default value: `Asia/Shanghai`.\n"},"tomcatConfig":{"type":"string","description":"Tomcat file configuration, set to \"{}\" means to delete the configuration:  useDefaultConfig: Whether to use a custom configuration, if it is true, it means that the custom configuration is not used; if it is false, it means that the custom configuration is used. If you do not use custom configuration, the following parameter configuration will not take effect.  contextInputType: Select the access path of the application.  war: No need to fill in the custom path, the access path of the application is the WAR package name. root: No need to fill in the custom path, the access path of the application is /. custom: You need to fill in the custom path in the custom path below. contextPath: custom path, this parameter only needs to be configured when the contextInputType type is custom.  httpPort: The port range is 1024~65535. Ports less than 1024 need Root permission to operate. Because the container is configured with Admin permissions, please fill in a port greater than 1024. If not configured, the default is 8080. maxThreads: Configure the number of connections in the connection pool, the default size is 400. uriEncoding: Tomcat encoding format, including UTF-8, ISO-8859-1, GBK and GB2312. If not set, the default is ISO-8859-1. useBodyEncoding: Whether to use BodyEncoding for URL. Valid values: `contextInputType`, `contextPath`, `httpPort`, `maxThreads`, `uriEncoding`, `useBodyEncoding`, `useDefaultConfig`.\n**NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`tomcatConfig`\" pulumi-lang-dotnet=\"`TomcatConfig`\" pulumi-lang-go=\"`tomcatConfig`\" pulumi-lang-python=\"`tomcat_config`\" pulumi-lang-yaml=\"`tomcatConfig`\" pulumi-lang-java=\"`tomcatConfig`\"\u003e`tomcat_config`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`tomcatConfigV2`\" pulumi-lang-dotnet=\"`TomcatConfigV2`\" pulumi-lang-go=\"`tomcatConfigV2`\" pulumi-lang-python=\"`tomcat_config_v2`\" pulumi-lang-yaml=\"`tomcatConfigV2`\" pulumi-lang-java=\"`tomcatConfigV2`\"\u003e`tomcat_config_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`tomcatConfig`\" pulumi-lang-dotnet=\"`TomcatConfig`\" pulumi-lang-go=\"`tomcatConfig`\" pulumi-lang-python=\"`tomcat_config`\" pulumi-lang-yaml=\"`tomcatConfig`\" pulumi-lang-java=\"`tomcatConfig`\"\u003e`tomcat_config`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`tomcatConfigV2`\" pulumi-lang-dotnet=\"`TomcatConfigV2`\" pulumi-lang-go=\"`tomcatConfigV2`\" pulumi-lang-python=\"`tomcat_config_v2`\" pulumi-lang-yaml=\"`tomcatConfigV2`\" pulumi-lang-java=\"`tomcatConfigV2`\"\u003e`tomcat_config_v2`\u003c/span\u003e instead."},"tomcatConfigV2":{"$ref":"#/types/alicloud:sae/ApplicationTomcatConfigV2:ApplicationTomcatConfigV2","description":"The Tomcat configuration. See \u003cspan pulumi-lang-nodejs=\"`tomcatConfigV2`\" pulumi-lang-dotnet=\"`TomcatConfigV2`\" pulumi-lang-go=\"`tomcatConfigV2`\" pulumi-lang-python=\"`tomcat_config_v2`\" pulumi-lang-yaml=\"`tomcatConfigV2`\" pulumi-lang-java=\"`tomcatConfigV2`\"\u003e`tomcat_config_v2`\u003c/span\u003e below.\n"},"updateStrategy":{"type":"string","description":"The update strategy. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`updateStrategy`\" pulumi-lang-dotnet=\"`UpdateStrategy`\" pulumi-lang-go=\"`updateStrategy`\" pulumi-lang-python=\"`update_strategy`\" pulumi-lang-yaml=\"`updateStrategy`\" pulumi-lang-java=\"`updateStrategy`\"\u003e`update_strategy`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`updateStrategyV2`\" pulumi-lang-dotnet=\"`UpdateStrategyV2`\" pulumi-lang-go=\"`updateStrategyV2`\" pulumi-lang-python=\"`update_strategy_v2`\" pulumi-lang-yaml=\"`updateStrategyV2`\" pulumi-lang-java=\"`updateStrategyV2`\"\u003e`update_strategy_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`updateStrategy`\" pulumi-lang-dotnet=\"`UpdateStrategy`\" pulumi-lang-go=\"`updateStrategy`\" pulumi-lang-python=\"`update_strategy`\" pulumi-lang-yaml=\"`updateStrategy`\" pulumi-lang-java=\"`updateStrategy`\"\u003e`update_strategy`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`updateStrategyV2`\" pulumi-lang-dotnet=\"`UpdateStrategyV2`\" pulumi-lang-go=\"`updateStrategyV2`\" pulumi-lang-python=\"`update_strategy_v2`\" pulumi-lang-yaml=\"`updateStrategyV2`\" pulumi-lang-java=\"`updateStrategyV2`\"\u003e`update_strategy_v2`\u003c/span\u003e instead."},"updateStrategyV2":{"$ref":"#/types/alicloud:sae/ApplicationUpdateStrategyV2:ApplicationUpdateStrategyV2","description":"The release policy. See \u003cspan pulumi-lang-nodejs=\"`updateStrategyV2`\" pulumi-lang-dotnet=\"`UpdateStrategyV2`\" pulumi-lang-go=\"`updateStrategyV2`\" pulumi-lang-python=\"`update_strategy_v2`\" pulumi-lang-yaml=\"`updateStrategyV2`\" pulumi-lang-java=\"`updateStrategyV2`\"\u003e`update_strategy_v2`\u003c/span\u003e below.\n"},"vpcId":{"type":"string","description":"The vpc id.\n"},"vswitchId":{"type":"string","description":"The vswitch id. **NOTE:** From version 1.211.0, \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e can be modified.\n"},"warStartOptions":{"type":"string","description":"WAR package launch application option. Application default startup command: java $JAVA_OPTS $CATALINA_OPTS [-Options] org.apache.catalina.startup.Bootstrap \"$@\" start.\n"},"webContainer":{"type":"string","description":"The version of tomcat that the deployment package depends on. Image type applications are not supported.\n"}},"required":["acrAssumeRoleArn","appName","batchWaitTime","commandArgs","commandArgsV2s","configMapMountDesc","configMapMountDescV2s","customHostAlias","customHostAliasV2s","enableAhas","enableGreyTagRoute","envs","liveness","livenessV2","microRegistration","minReadyInstanceRatio","minReadyInstances","ossMountDescs","ossMountDescsV2s","packageType","packageVersion","phpArmsConfigLocation","postStart","postStartV2","preStop","preStopV2","programmingLanguage","readiness","readinessV2","replicas","securityGroupId","status","terminationGracePeriodSeconds","timezone","tomcatConfig","tomcatConfigV2","updateStrategy","updateStrategyV2"],"inputProperties":{"acrAssumeRoleArn":{"type":"string","description":"The ARN of the RAM role required when pulling images across accounts. Only necessary if the\u003cspan pulumi-lang-nodejs=\" imageUrl \" pulumi-lang-dotnet=\" ImageUrl \" pulumi-lang-go=\" imageUrl \" pulumi-lang-python=\" image_url \" pulumi-lang-yaml=\" imageUrl \" pulumi-lang-java=\" imageUrl \"\u003e image_url \u003c/span\u003eis pointing to an ACR EE instance.\n"},"acrInstanceId":{"type":"string","description":"The ID of the ACR EE instance. Only necessary if the\u003cspan pulumi-lang-nodejs=\" imageUrl \" pulumi-lang-dotnet=\" ImageUrl \" pulumi-lang-go=\" imageUrl \" pulumi-lang-python=\" image_url \" pulumi-lang-yaml=\" imageUrl \" pulumi-lang-java=\" imageUrl \"\u003e image_url \u003c/span\u003eis pointing to an ACR EE instance.\n"},"appDescription":{"type":"string","description":"Application description information. No more than 1024 characters. **NOTE:** From version 1.211.0, \u003cspan pulumi-lang-nodejs=\"`appDescription`\" pulumi-lang-dotnet=\"`AppDescription`\" pulumi-lang-go=\"`appDescription`\" pulumi-lang-python=\"`app_description`\" pulumi-lang-yaml=\"`appDescription`\" pulumi-lang-java=\"`appDescription`\"\u003e`app_description`\u003c/span\u003e can be modified.\n"},"appName":{"type":"string","description":"Application Name. Combinations of numbers, letters, and dashes (-) are allowed. It must start with a letter and the maximum length is 36 characters.\n","willReplaceOnChanges":true},"autoConfig":{"type":"boolean","description":"The auto config. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoEnableApplicationScalingRule":{"type":"boolean","description":"The auto enable application scaling rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"batchWaitTime":{"type":"integer","description":"The batch wait time.\n"},"changeOrderDesc":{"type":"string","description":"The change order desc.\n"},"command":{"type":"string","description":"Mirror start command. The command must be an executable object in the container. For example: sleep. Setting this command will cause the original startup command of the mirror to become invalid.\n"},"commandArgs":{"type":"string","description":"Mirror startup command parameters. The parameters required for the above start command. For example: 1d. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`commandArgs`\" pulumi-lang-dotnet=\"`CommandArgs`\" pulumi-lang-go=\"`commandArgs`\" pulumi-lang-python=\"`command_args`\" pulumi-lang-yaml=\"`commandArgs`\" pulumi-lang-java=\"`commandArgs`\"\u003e`command_args`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`commandArgsV2`\" pulumi-lang-dotnet=\"`CommandArgsV2`\" pulumi-lang-go=\"`commandArgsV2`\" pulumi-lang-python=\"`command_args_v2`\" pulumi-lang-yaml=\"`commandArgsV2`\" pulumi-lang-java=\"`commandArgsV2`\"\u003e`command_args_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`commandArgs`\" pulumi-lang-dotnet=\"`CommandArgs`\" pulumi-lang-go=\"`commandArgs`\" pulumi-lang-python=\"`command_args`\" pulumi-lang-yaml=\"`commandArgs`\" pulumi-lang-java=\"`commandArgs`\"\u003e`command_args`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`commandArgsV2`\" pulumi-lang-dotnet=\"`CommandArgsV2`\" pulumi-lang-go=\"`commandArgsV2`\" pulumi-lang-python=\"`command_args_v2`\" pulumi-lang-yaml=\"`commandArgsV2`\" pulumi-lang-java=\"`commandArgsV2`\"\u003e`command_args_v2`\u003c/span\u003e instead."},"commandArgsV2s":{"type":"array","items":{"type":"string"},"description":"The parameters of the image startup command.\n"},"configMapMountDesc":{"type":"string","description":"ConfigMap mount description. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`configMapMountDesc`\" pulumi-lang-dotnet=\"`ConfigMapMountDesc`\" pulumi-lang-go=\"`configMapMountDesc`\" pulumi-lang-python=\"`config_map_mount_desc`\" pulumi-lang-yaml=\"`configMapMountDesc`\" pulumi-lang-java=\"`configMapMountDesc`\"\u003e`config_map_mount_desc`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`configMapMountDescV2`\" pulumi-lang-dotnet=\"`ConfigMapMountDescV2`\" pulumi-lang-go=\"`configMapMountDescV2`\" pulumi-lang-python=\"`config_map_mount_desc_v2`\" pulumi-lang-yaml=\"`configMapMountDescV2`\" pulumi-lang-java=\"`configMapMountDescV2`\"\u003e`config_map_mount_desc_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`configMapMountDesc`\" pulumi-lang-dotnet=\"`ConfigMapMountDesc`\" pulumi-lang-go=\"`configMapMountDesc`\" pulumi-lang-python=\"`config_map_mount_desc`\" pulumi-lang-yaml=\"`configMapMountDesc`\" pulumi-lang-java=\"`configMapMountDesc`\"\u003e`config_map_mount_desc`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`configMapMountDescV2`\" pulumi-lang-dotnet=\"`ConfigMapMountDescV2`\" pulumi-lang-go=\"`configMapMountDescV2`\" pulumi-lang-python=\"`config_map_mount_desc_v2`\" pulumi-lang-yaml=\"`configMapMountDescV2`\" pulumi-lang-java=\"`configMapMountDescV2`\"\u003e`config_map_mount_desc_v2`\u003c/span\u003e instead."},"configMapMountDescV2s":{"type":"array","items":{"$ref":"#/types/alicloud:sae/ApplicationConfigMapMountDescV2:ApplicationConfigMapMountDescV2"},"description":"The description of the ConfigMap that is mounted to the application. A ConfigMap that is created on the ConfigMaps page of a namespace is used to inject configurations into containers. See \u003cspan pulumi-lang-nodejs=\"`configMapMountDescV2`\" pulumi-lang-dotnet=\"`ConfigMapMountDescV2`\" pulumi-lang-go=\"`configMapMountDescV2`\" pulumi-lang-python=\"`config_map_mount_desc_v2`\" pulumi-lang-yaml=\"`configMapMountDescV2`\" pulumi-lang-java=\"`configMapMountDescV2`\"\u003e`config_map_mount_desc_v2`\u003c/span\u003e below.\n"},"cpu":{"type":"integer","description":"The CPU required for each instance, in millicores, cannot be 0. Valid values: \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\"\u003e`4000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8000`\" pulumi-lang-dotnet=\"`8000`\" pulumi-lang-go=\"`8000`\" pulumi-lang-python=\"`8000`\" pulumi-lang-yaml=\"`8000`\" pulumi-lang-java=\"`8000`\"\u003e`8000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16000`\" pulumi-lang-dotnet=\"`16000`\" pulumi-lang-go=\"`16000`\" pulumi-lang-python=\"`16000`\" pulumi-lang-yaml=\"`16000`\" pulumi-lang-java=\"`16000`\"\u003e`16000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32000`\" pulumi-lang-dotnet=\"`32000`\" pulumi-lang-go=\"`32000`\" pulumi-lang-python=\"`32000`\" pulumi-lang-yaml=\"`32000`\" pulumi-lang-java=\"`32000`\"\u003e`32000`\u003c/span\u003e.\n"},"customHostAlias":{"type":"string","description":"Custom host mapping in the container. For example: [{`hostName`:\u003cspan pulumi-lang-nodejs=\"`samplehost`\" pulumi-lang-dotnet=\"`Samplehost`\" pulumi-lang-go=\"`samplehost`\" pulumi-lang-python=\"`samplehost`\" pulumi-lang-yaml=\"`samplehost`\" pulumi-lang-java=\"`samplehost`\"\u003e`samplehost`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e:`127.0.0.1`}]. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`customHostAlias`\" pulumi-lang-dotnet=\"`CustomHostAlias`\" pulumi-lang-go=\"`customHostAlias`\" pulumi-lang-python=\"`custom_host_alias`\" pulumi-lang-yaml=\"`customHostAlias`\" pulumi-lang-java=\"`customHostAlias`\"\u003e`custom_host_alias`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`customHostAliasV2`\" pulumi-lang-dotnet=\"`CustomHostAliasV2`\" pulumi-lang-go=\"`customHostAliasV2`\" pulumi-lang-python=\"`custom_host_alias_v2`\" pulumi-lang-yaml=\"`customHostAliasV2`\" pulumi-lang-java=\"`customHostAliasV2`\"\u003e`custom_host_alias_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`customHostAlias`\" pulumi-lang-dotnet=\"`CustomHostAlias`\" pulumi-lang-go=\"`customHostAlias`\" pulumi-lang-python=\"`custom_host_alias`\" pulumi-lang-yaml=\"`customHostAlias`\" pulumi-lang-java=\"`customHostAlias`\"\u003e`custom_host_alias`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`customHostAliasV2`\" pulumi-lang-dotnet=\"`CustomHostAliasV2`\" pulumi-lang-go=\"`customHostAliasV2`\" pulumi-lang-python=\"`custom_host_alias_v2`\" pulumi-lang-yaml=\"`customHostAliasV2`\" pulumi-lang-java=\"`customHostAliasV2`\"\u003e`custom_host_alias_v2`\u003c/span\u003e instead."},"customHostAliasV2s":{"type":"array","items":{"$ref":"#/types/alicloud:sae/ApplicationCustomHostAliasV2:ApplicationCustomHostAliasV2"},"description":"The custom mapping between the hostname and IP address in the container. See \u003cspan pulumi-lang-nodejs=\"`customHostAliasV2`\" pulumi-lang-dotnet=\"`CustomHostAliasV2`\" pulumi-lang-go=\"`customHostAliasV2`\" pulumi-lang-python=\"`custom_host_alias_v2`\" pulumi-lang-yaml=\"`customHostAliasV2`\" pulumi-lang-java=\"`customHostAliasV2`\"\u003e`custom_host_alias_v2`\u003c/span\u003e below.\n"},"deploy":{"type":"boolean","description":"The deploy. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"edasContainerVersion":{"type":"string","description":"The operating environment used by the Pandora application.\n"},"enableAhas":{"type":"string","description":"The enable ahas. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enableGreyTagRoute":{"type":"boolean","description":"The enable grey tag route. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"envs":{"type":"string","description":"Container environment variable parameters. For example,`\t[{\"name\":\"envtmp\",\"value\":\"0\"}]`. The value description is as follows:\n"},"imagePullSecrets":{"type":"string","description":"The ID of the corresponding Secret.\n"},"imageUrl":{"type":"string","description":"Mirror address. Only Image type applications can configure the mirror address.\n"},"jarStartArgs":{"type":"string","description":"The JAR package starts application parameters. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS \"$package_path\" $JarStartArgs.\n"},"jarStartOptions":{"type":"string","description":"The JAR package starts the application option. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS \"$package_path\" $JarStartArgs.\n"},"jdk":{"type":"string","description":"The JDK version that the deployment package depends on. Image type applications are not supported.\n"},"kafkaConfigs":{"$ref":"#/types/alicloud:sae/ApplicationKafkaConfigs:ApplicationKafkaConfigs","description":"The logging configurations of ApsaraMQ for Kafka. See \u003cspan pulumi-lang-nodejs=\"`kafkaConfigs`\" pulumi-lang-dotnet=\"`KafkaConfigs`\" pulumi-lang-go=\"`kafkaConfigs`\" pulumi-lang-python=\"`kafka_configs`\" pulumi-lang-yaml=\"`kafkaConfigs`\" pulumi-lang-java=\"`kafkaConfigs`\"\u003e`kafka_configs`\u003c/span\u003e below.\n"},"liveness":{"type":"string","description":"Container health check. Containers that fail the health check will be shut down and restored. Currently, only the method of issuing commands in the container is supported.\n**NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`liveness`\" pulumi-lang-dotnet=\"`Liveness`\" pulumi-lang-go=\"`liveness`\" pulumi-lang-python=\"`liveness`\" pulumi-lang-yaml=\"`liveness`\" pulumi-lang-java=\"`liveness`\"\u003e`liveness`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`livenessV2`\" pulumi-lang-dotnet=\"`LivenessV2`\" pulumi-lang-go=\"`livenessV2`\" pulumi-lang-python=\"`liveness_v2`\" pulumi-lang-yaml=\"`livenessV2`\" pulumi-lang-java=\"`livenessV2`\"\u003e`liveness_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`liveness`\" pulumi-lang-dotnet=\"`Liveness`\" pulumi-lang-go=\"`liveness`\" pulumi-lang-python=\"`liveness`\" pulumi-lang-yaml=\"`liveness`\" pulumi-lang-java=\"`liveness`\"\u003e`liveness`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`livenessV2`\" pulumi-lang-dotnet=\"`LivenessV2`\" pulumi-lang-go=\"`livenessV2`\" pulumi-lang-python=\"`liveness_v2`\" pulumi-lang-yaml=\"`livenessV2`\" pulumi-lang-java=\"`livenessV2`\"\u003e`liveness_v2`\u003c/span\u003e instead."},"livenessV2":{"$ref":"#/types/alicloud:sae/ApplicationLivenessV2:ApplicationLivenessV2","description":"The liveness check settings of the container. See \u003cspan pulumi-lang-nodejs=\"`livenessV2`\" pulumi-lang-dotnet=\"`LivenessV2`\" pulumi-lang-go=\"`livenessV2`\" pulumi-lang-python=\"`liveness_v2`\" pulumi-lang-yaml=\"`livenessV2`\" pulumi-lang-java=\"`livenessV2`\"\u003e`liveness_v2`\u003c/span\u003e below.\n"},"memory":{"type":"integer","description":"The memory required for each instance, in MB, cannot be 0. One-to-one correspondence with CPU. Valid values: \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2048`\" pulumi-lang-dotnet=\"`2048`\" pulumi-lang-go=\"`2048`\" pulumi-lang-python=\"`2048`\" pulumi-lang-yaml=\"`2048`\" pulumi-lang-java=\"`2048`\"\u003e`2048`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4096`\" pulumi-lang-dotnet=\"`4096`\" pulumi-lang-go=\"`4096`\" pulumi-lang-python=\"`4096`\" pulumi-lang-yaml=\"`4096`\" pulumi-lang-java=\"`4096`\"\u003e`4096`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8192`\" pulumi-lang-dotnet=\"`8192`\" pulumi-lang-go=\"`8192`\" pulumi-lang-python=\"`8192`\" pulumi-lang-yaml=\"`8192`\" pulumi-lang-java=\"`8192`\"\u003e`8192`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12288`\" pulumi-lang-dotnet=\"`12288`\" pulumi-lang-go=\"`12288`\" pulumi-lang-python=\"`12288`\" pulumi-lang-yaml=\"`12288`\" pulumi-lang-java=\"`12288`\"\u003e`12288`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16384`\" pulumi-lang-dotnet=\"`16384`\" pulumi-lang-go=\"`16384`\" pulumi-lang-python=\"`16384`\" pulumi-lang-yaml=\"`16384`\" pulumi-lang-java=\"`16384`\"\u003e`16384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24576`\" pulumi-lang-dotnet=\"`24576`\" pulumi-lang-go=\"`24576`\" pulumi-lang-python=\"`24576`\" pulumi-lang-yaml=\"`24576`\" pulumi-lang-java=\"`24576`\"\u003e`24576`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`131072`\" pulumi-lang-dotnet=\"`131072`\" pulumi-lang-go=\"`131072`\" pulumi-lang-python=\"`131072`\" pulumi-lang-yaml=\"`131072`\" pulumi-lang-java=\"`131072`\"\u003e`131072`\u003c/span\u003e.\n"},"microRegistration":{"type":"string","description":"Select the Nacos registry. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"},"minReadyInstanceRatio":{"type":"integer","description":"Minimum Survival Instance Percentage. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`minReadyInstances`\" pulumi-lang-dotnet=\"`MinReadyInstances`\" pulumi-lang-go=\"`minReadyInstances`\" pulumi-lang-python=\"`min_ready_instances`\" pulumi-lang-yaml=\"`minReadyInstances`\" pulumi-lang-java=\"`minReadyInstances`\"\u003e`min_ready_instances`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`minReadyInstanceRatio`\" pulumi-lang-dotnet=\"`MinReadyInstanceRatio`\" pulumi-lang-go=\"`minReadyInstanceRatio`\" pulumi-lang-python=\"`min_ready_instance_ratio`\" pulumi-lang-yaml=\"`minReadyInstanceRatio`\" pulumi-lang-java=\"`minReadyInstanceRatio`\"\u003e`min_ready_instance_ratio`\u003c/span\u003e are passed at the same time, and the value of \u003cspan pulumi-lang-nodejs=\"`minReadyInstanceRatio`\" pulumi-lang-dotnet=\"`MinReadyInstanceRatio`\" pulumi-lang-go=\"`minReadyInstanceRatio`\" pulumi-lang-python=\"`min_ready_instance_ratio`\" pulumi-lang-yaml=\"`minReadyInstanceRatio`\" pulumi-lang-java=\"`minReadyInstanceRatio`\"\u003e`min_ready_instance_ratio`\u003c/span\u003e is not -1, the \u003cspan pulumi-lang-nodejs=\"`minReadyInstanceRatio`\" pulumi-lang-dotnet=\"`MinReadyInstanceRatio`\" pulumi-lang-go=\"`minReadyInstanceRatio`\" pulumi-lang-python=\"`min_ready_instance_ratio`\" pulumi-lang-yaml=\"`minReadyInstanceRatio`\" pulumi-lang-java=\"`minReadyInstanceRatio`\"\u003e`min_ready_instance_ratio`\u003c/span\u003e parameter shall prevail. Assuming that \u003cspan pulumi-lang-nodejs=\"`minReadyInstances`\" pulumi-lang-dotnet=\"`MinReadyInstances`\" pulumi-lang-go=\"`minReadyInstances`\" pulumi-lang-python=\"`min_ready_instances`\" pulumi-lang-yaml=\"`minReadyInstances`\" pulumi-lang-java=\"`minReadyInstances`\"\u003e`min_ready_instances`\u003c/span\u003e is 5 and \u003cspan pulumi-lang-nodejs=\"`minReadyInstanceRatio`\" pulumi-lang-dotnet=\"`MinReadyInstanceRatio`\" pulumi-lang-go=\"`minReadyInstanceRatio`\" pulumi-lang-python=\"`min_ready_instance_ratio`\" pulumi-lang-yaml=\"`minReadyInstanceRatio`\" pulumi-lang-java=\"`minReadyInstanceRatio`\"\u003e`min_ready_instance_ratio`\u003c/span\u003e is 50, 50 is used to calculate the minimum number of surviving instances.The value description is as follows:\n* `-1`: Initialization value, indicating that percentages are not used.\n* `0~100`: The unit is percentage, rounded up. For example, if it is set to 50%, if there are currently 5 instances, the minimum number of surviving instances is 3.\n"},"minReadyInstances":{"type":"integer","description":"The Minimum Available Instance. On the Change Had Promised during the Available Number of Instances to Be.\n"},"namespaceId":{"type":"string","description":"SAE namespace ID. Only namespaces whose names are lowercase letters and dashes (-) are supported, and must start with a letter. The namespace can be obtained by calling the DescribeNamespaceList interface.\n","willReplaceOnChanges":true},"nasConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:sae/ApplicationNasConfig:ApplicationNasConfig"},"description":"The configurations for mounting the NAS file system. See \u003cspan pulumi-lang-nodejs=\"`nasConfigs`\" pulumi-lang-dotnet=\"`NasConfigs`\" pulumi-lang-go=\"`nasConfigs`\" pulumi-lang-python=\"`nas_configs`\" pulumi-lang-yaml=\"`nasConfigs`\" pulumi-lang-java=\"`nasConfigs`\"\u003e`nas_configs`\u003c/span\u003e below.\n"},"ossAkId":{"type":"string","description":"OSS AccessKey ID.\n","secret":true},"ossAkSecret":{"type":"string","description":"OSS  AccessKey Secret.\n","secret":true},"ossMountDescs":{"type":"string","description":"OSS mount description information. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`ossMountDescs`\" pulumi-lang-dotnet=\"`OssMountDescs`\" pulumi-lang-go=\"`ossMountDescs`\" pulumi-lang-python=\"`oss_mount_descs`\" pulumi-lang-yaml=\"`ossMountDescs`\" pulumi-lang-java=\"`ossMountDescs`\"\u003e`oss_mount_descs`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`ossMountDescsV2`\" pulumi-lang-dotnet=\"`OssMountDescsV2`\" pulumi-lang-go=\"`ossMountDescsV2`\" pulumi-lang-python=\"`oss_mount_descs_v2`\" pulumi-lang-yaml=\"`ossMountDescsV2`\" pulumi-lang-java=\"`ossMountDescsV2`\"\u003e`oss_mount_descs_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`ossMountDescs`\" pulumi-lang-dotnet=\"`OssMountDescs`\" pulumi-lang-go=\"`ossMountDescs`\" pulumi-lang-python=\"`oss_mount_descs`\" pulumi-lang-yaml=\"`ossMountDescs`\" pulumi-lang-java=\"`ossMountDescs`\"\u003e`oss_mount_descs`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`ossMountDescsV2`\" pulumi-lang-dotnet=\"`OssMountDescsV2`\" pulumi-lang-go=\"`ossMountDescsV2`\" pulumi-lang-python=\"`oss_mount_descs_v2`\" pulumi-lang-yaml=\"`ossMountDescsV2`\" pulumi-lang-java=\"`ossMountDescsV2`\"\u003e`oss_mount_descs_v2`\u003c/span\u003e instead."},"ossMountDescsV2s":{"type":"array","items":{"$ref":"#/types/alicloud:sae/ApplicationOssMountDescsV2:ApplicationOssMountDescsV2"},"description":"The description of the mounted Object Storage Service (OSS) bucket. See \u003cspan pulumi-lang-nodejs=\"`ossMountDescsV2`\" pulumi-lang-dotnet=\"`OssMountDescsV2`\" pulumi-lang-go=\"`ossMountDescsV2`\" pulumi-lang-python=\"`oss_mount_descs_v2`\" pulumi-lang-yaml=\"`ossMountDescsV2`\" pulumi-lang-java=\"`ossMountDescsV2`\"\u003e`oss_mount_descs_v2`\u003c/span\u003e below.\n"},"packageType":{"type":"string","description":"Application package type. Valid values: `FatJar`, `War`, `Image`, `PhpZip`, `IMAGE_PHP_5_4`, `IMAGE_PHP_5_4_ALPINE`, `IMAGE_PHP_5_5`, `IMAGE_PHP_5_5_ALPINE`, `IMAGE_PHP_5_6`, `IMAGE_PHP_5_6_ALPINE`, `IMAGE_PHP_7_0`, `IMAGE_PHP_7_0_ALPINE`, `IMAGE_PHP_7_1`, `IMAGE_PHP_7_1_ALPINE`, `IMAGE_PHP_7_2`, `IMAGE_PHP_7_2_ALPINE`, `IMAGE_PHP_7_3`, `IMAGE_PHP_7_3_ALPINE`, `PythonZip`.\n","willReplaceOnChanges":true},"packageUrl":{"type":"string","description":"Deployment package address. Only FatJar or War type applications can configure the deployment package address.\n"},"packageVersion":{"type":"string","description":"The version number of the deployment package. Required when the Package Type is War and FatJar.\n"},"php":{"type":"string","description":"The Php environment.\n"},"phpArmsConfigLocation":{"type":"string","description":"The PHP application monitors the mount path, and you need to ensure that the PHP server will load the configuration file of this path. You don't need to pay attention to the configuration content, SAE will automatically render the correct configuration file.\n"},"phpConfig":{"type":"string","description":"PHP configuration file content.\n"},"phpConfigLocation":{"type":"string","description":"PHP application startup configuration mount path, you need to ensure that the PHP server will start using this configuration file.\n"},"postStart":{"type":"string","description":"Execute the script after startup, the format is like: {\u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e:{\u003cspan pulumi-lang-nodejs=\"`command`\" pulumi-lang-dotnet=\"`Command`\" pulumi-lang-go=\"`command`\" pulumi-lang-python=\"`command`\" pulumi-lang-yaml=\"`command`\" pulumi-lang-java=\"`command`\"\u003e`command`\u003c/span\u003e:[\u003cspan pulumi-lang-nodejs=\"`cat`\" pulumi-lang-dotnet=\"`Cat`\" pulumi-lang-go=\"`cat`\" pulumi-lang-python=\"`cat`\" pulumi-lang-yaml=\"`cat`\" pulumi-lang-java=\"`cat`\"\u003e`cat`\u003c/span\u003e,\"/etc/group\"]}}. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`postStart`\" pulumi-lang-dotnet=\"`PostStart`\" pulumi-lang-go=\"`postStart`\" pulumi-lang-python=\"`post_start`\" pulumi-lang-yaml=\"`postStart`\" pulumi-lang-java=\"`postStart`\"\u003e`post_start`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`postStartV2`\" pulumi-lang-dotnet=\"`PostStartV2`\" pulumi-lang-go=\"`postStartV2`\" pulumi-lang-python=\"`post_start_v2`\" pulumi-lang-yaml=\"`postStartV2`\" pulumi-lang-java=\"`postStartV2`\"\u003e`post_start_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`postStart`\" pulumi-lang-dotnet=\"`PostStart`\" pulumi-lang-go=\"`postStart`\" pulumi-lang-python=\"`post_start`\" pulumi-lang-yaml=\"`postStart`\" pulumi-lang-java=\"`postStart`\"\u003e`post_start`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`postStartV2`\" pulumi-lang-dotnet=\"`PostStartV2`\" pulumi-lang-go=\"`postStartV2`\" pulumi-lang-python=\"`post_start_v2`\" pulumi-lang-yaml=\"`postStartV2`\" pulumi-lang-java=\"`postStartV2`\"\u003e`post_start_v2`\u003c/span\u003e instead."},"postStartV2":{"$ref":"#/types/alicloud:sae/ApplicationPostStartV2:ApplicationPostStartV2","description":"The script that is run immediately after the container is started. See \u003cspan pulumi-lang-nodejs=\"`postStartV2`\" pulumi-lang-dotnet=\"`PostStartV2`\" pulumi-lang-go=\"`postStartV2`\" pulumi-lang-python=\"`post_start_v2`\" pulumi-lang-yaml=\"`postStartV2`\" pulumi-lang-java=\"`postStartV2`\"\u003e`post_start_v2`\u003c/span\u003e below.\n"},"preStop":{"type":"string","description":"Execute the script before stopping, the format is like: {\u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e:{\u003cspan pulumi-lang-nodejs=\"`command`\" pulumi-lang-dotnet=\"`Command`\" pulumi-lang-go=\"`command`\" pulumi-lang-python=\"`command`\" pulumi-lang-yaml=\"`command`\" pulumi-lang-java=\"`command`\"\u003e`command`\u003c/span\u003e:[\u003cspan pulumi-lang-nodejs=\"`cat`\" pulumi-lang-dotnet=\"`Cat`\" pulumi-lang-go=\"`cat`\" pulumi-lang-python=\"`cat`\" pulumi-lang-yaml=\"`cat`\" pulumi-lang-java=\"`cat`\"\u003e`cat`\u003c/span\u003e,\"/etc/group\"]}}. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`preStop`\" pulumi-lang-dotnet=\"`PreStop`\" pulumi-lang-go=\"`preStop`\" pulumi-lang-python=\"`pre_stop`\" pulumi-lang-yaml=\"`preStop`\" pulumi-lang-java=\"`preStop`\"\u003e`pre_stop`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`preStopV2`\" pulumi-lang-dotnet=\"`PreStopV2`\" pulumi-lang-go=\"`preStopV2`\" pulumi-lang-python=\"`pre_stop_v2`\" pulumi-lang-yaml=\"`preStopV2`\" pulumi-lang-java=\"`preStopV2`\"\u003e`pre_stop_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`preStop`\" pulumi-lang-dotnet=\"`PreStop`\" pulumi-lang-go=\"`preStop`\" pulumi-lang-python=\"`pre_stop`\" pulumi-lang-yaml=\"`preStop`\" pulumi-lang-java=\"`preStop`\"\u003e`pre_stop`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`preStopV2`\" pulumi-lang-dotnet=\"`PreStopV2`\" pulumi-lang-go=\"`preStopV2`\" pulumi-lang-python=\"`pre_stop_v2`\" pulumi-lang-yaml=\"`preStopV2`\" pulumi-lang-java=\"`preStopV2`\"\u003e`pre_stop_v2`\u003c/span\u003e instead."},"preStopV2":{"$ref":"#/types/alicloud:sae/ApplicationPreStopV2:ApplicationPreStopV2","description":"The script that is run before the container is stopped. See \u003cspan pulumi-lang-nodejs=\"`preStopV2`\" pulumi-lang-dotnet=\"`PreStopV2`\" pulumi-lang-go=\"`preStopV2`\" pulumi-lang-python=\"`pre_stop_v2`\" pulumi-lang-yaml=\"`preStopV2`\" pulumi-lang-java=\"`preStopV2`\"\u003e`pre_stop_v2`\u003c/span\u003e below.\n"},"programmingLanguage":{"type":"string","description":"The programming language that is used to create the application. Valid values: \u003cspan pulumi-lang-nodejs=\"`java`\" pulumi-lang-dotnet=\"`Java`\" pulumi-lang-go=\"`java`\" pulumi-lang-python=\"`java`\" pulumi-lang-yaml=\"`java`\" pulumi-lang-java=\"`java`\"\u003e`java`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`php`\" pulumi-lang-dotnet=\"`Php`\" pulumi-lang-go=\"`php`\" pulumi-lang-python=\"`php`\" pulumi-lang-yaml=\"`php`\" pulumi-lang-java=\"`php`\"\u003e`php`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`other`\" pulumi-lang-dotnet=\"`Other`\" pulumi-lang-go=\"`other`\" pulumi-lang-python=\"`other`\" pulumi-lang-yaml=\"`other`\" pulumi-lang-java=\"`other`\"\u003e`other`\u003c/span\u003e.\n","willReplaceOnChanges":true},"pvtzDiscoverySvc":{"$ref":"#/types/alicloud:sae/ApplicationPvtzDiscoverySvc:ApplicationPvtzDiscoverySvc","description":"The configurations of Kubernetes Service-based service registration and discovery. See \u003cspan pulumi-lang-nodejs=\"`pvtzDiscoverySvc`\" pulumi-lang-dotnet=\"`PvtzDiscoverySvc`\" pulumi-lang-go=\"`pvtzDiscoverySvc`\" pulumi-lang-python=\"`pvtz_discovery_svc`\" pulumi-lang-yaml=\"`pvtzDiscoverySvc`\" pulumi-lang-java=\"`pvtzDiscoverySvc`\"\u003e`pvtz_discovery_svc`\u003c/span\u003e below.\n"},"readiness":{"type":"string","description":"Application startup status checks, containers that fail multiple health checks will be shut down and restarted. Containers that do not pass the health check will not receive SLB traffic. For example: {\u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e:{\u003cspan pulumi-lang-nodejs=\"`command`\" pulumi-lang-dotnet=\"`Command`\" pulumi-lang-go=\"`command`\" pulumi-lang-python=\"`command`\" pulumi-lang-yaml=\"`command`\" pulumi-lang-java=\"`command`\"\u003e`command`\u003c/span\u003e:[\u003cspan pulumi-lang-nodejs=\"`sh`\" pulumi-lang-dotnet=\"`Sh`\" pulumi-lang-go=\"`sh`\" pulumi-lang-python=\"`sh`\" pulumi-lang-yaml=\"`sh`\" pulumi-lang-java=\"`sh`\"\u003e`sh`\u003c/span\u003e,\"-c\",\"cat /home/admin/start.sh\"]},`initialDelaySeconds`:30,`periodSeconds`:30,\"timeoutSeconds \":2}. Valid values: \u003cspan pulumi-lang-nodejs=\"`command`\" pulumi-lang-dotnet=\"`Command`\" pulumi-lang-go=\"`command`\" pulumi-lang-python=\"`command`\" pulumi-lang-yaml=\"`command`\" pulumi-lang-java=\"`command`\"\u003e`command`\u003c/span\u003e, `initialDelaySeconds`, `periodSeconds`, `timeoutSeconds`.\n**NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`readiness`\" pulumi-lang-dotnet=\"`Readiness`\" pulumi-lang-go=\"`readiness`\" pulumi-lang-python=\"`readiness`\" pulumi-lang-yaml=\"`readiness`\" pulumi-lang-java=\"`readiness`\"\u003e`readiness`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`readinessV2`\" pulumi-lang-dotnet=\"`ReadinessV2`\" pulumi-lang-go=\"`readinessV2`\" pulumi-lang-python=\"`readiness_v2`\" pulumi-lang-yaml=\"`readinessV2`\" pulumi-lang-java=\"`readinessV2`\"\u003e`readiness_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`readiness`\" pulumi-lang-dotnet=\"`Readiness`\" pulumi-lang-go=\"`readiness`\" pulumi-lang-python=\"`readiness`\" pulumi-lang-yaml=\"`readiness`\" pulumi-lang-java=\"`readiness`\"\u003e`readiness`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`readinessV2`\" pulumi-lang-dotnet=\"`ReadinessV2`\" pulumi-lang-go=\"`readinessV2`\" pulumi-lang-python=\"`readiness_v2`\" pulumi-lang-yaml=\"`readinessV2`\" pulumi-lang-java=\"`readinessV2`\"\u003e`readiness_v2`\u003c/span\u003e instead."},"readinessV2":{"$ref":"#/types/alicloud:sae/ApplicationReadinessV2:ApplicationReadinessV2","description":"The readiness check settings of the container. If a container fails this health check multiple times, the container is stopped and then restarted. See \u003cspan pulumi-lang-nodejs=\"`readinessV2`\" pulumi-lang-dotnet=\"`ReadinessV2`\" pulumi-lang-go=\"`readinessV2`\" pulumi-lang-python=\"`readiness_v2`\" pulumi-lang-yaml=\"`readinessV2`\" pulumi-lang-java=\"`readinessV2`\"\u003e`readiness_v2`\u003c/span\u003e below.\n"},"replicas":{"type":"integer","description":"Initial number of instances.\n"},"securityGroupId":{"type":"string","description":"Security group ID.\n"},"slsConfigs":{"type":"string","description":"Configuration for log collection to SLS. Valid parameter descriptions are as follows:\n* `projectName`: Configures the project name on SLS.\n* `logDir`: Path to the logs.\n* `logType`: Type of logs. stdout indicates container standard output logs, and only one can be set; if not set, it means collecting file logs.\n* `logstoreName`: Configures the log store name on SLS.\n* `logtailName`: Configures the log tail name on SLS; if not specified, it means creating a new log tail.\n\nIf you no longer need to use the SLS collection feature, you should set the value of this field to an empty string. There are two examples:\n- Using SAE automatically created SLS resources: [{\"logDir\":\"\",\"logType\":\"stdout\"},{\"logDir\":\"/tmp/a.log\"}].\n- Using custom SLS resources: [{\"projectName\":\"test-sls\",\"logType\":\"stdout\",\"logDir\":\"\",\"logstoreName\":\"sae\",\"logtailName\":\"\"},{\"projectName\":\"test\",\"logDir\":\"/tmp/a.log\",\"logstoreName\":\"sae\",\"logtailName\":\"\"}].\n\n**NOTE:** Projects that are automatically created with applications will be deleted along with the application deletion. Therefore, when selecting existing projects, you cannot choose projects automatically created by SAE.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `RUNNING`, `STOPPED`, `UNKNOWN`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"terminationGracePeriodSeconds":{"type":"integer","description":"Graceful offline timeout, the default is 30, the unit is seconds. The value range is 1~60. Valid values: [1,60].\n"},"timezone":{"type":"string","description":"Time zone. Default value: `Asia/Shanghai`.\n"},"tomcatConfig":{"type":"string","description":"Tomcat file configuration, set to \"{}\" means to delete the configuration:  useDefaultConfig: Whether to use a custom configuration, if it is true, it means that the custom configuration is not used; if it is false, it means that the custom configuration is used. If you do not use custom configuration, the following parameter configuration will not take effect.  contextInputType: Select the access path of the application.  war: No need to fill in the custom path, the access path of the application is the WAR package name. root: No need to fill in the custom path, the access path of the application is /. custom: You need to fill in the custom path in the custom path below. contextPath: custom path, this parameter only needs to be configured when the contextInputType type is custom.  httpPort: The port range is 1024~65535. Ports less than 1024 need Root permission to operate. Because the container is configured with Admin permissions, please fill in a port greater than 1024. If not configured, the default is 8080. maxThreads: Configure the number of connections in the connection pool, the default size is 400. uriEncoding: Tomcat encoding format, including UTF-8, ISO-8859-1, GBK and GB2312. If not set, the default is ISO-8859-1. useBodyEncoding: Whether to use BodyEncoding for URL. Valid values: `contextInputType`, `contextPath`, `httpPort`, `maxThreads`, `uriEncoding`, `useBodyEncoding`, `useDefaultConfig`.\n**NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`tomcatConfig`\" pulumi-lang-dotnet=\"`TomcatConfig`\" pulumi-lang-go=\"`tomcatConfig`\" pulumi-lang-python=\"`tomcat_config`\" pulumi-lang-yaml=\"`tomcatConfig`\" pulumi-lang-java=\"`tomcatConfig`\"\u003e`tomcat_config`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`tomcatConfigV2`\" pulumi-lang-dotnet=\"`TomcatConfigV2`\" pulumi-lang-go=\"`tomcatConfigV2`\" pulumi-lang-python=\"`tomcat_config_v2`\" pulumi-lang-yaml=\"`tomcatConfigV2`\" pulumi-lang-java=\"`tomcatConfigV2`\"\u003e`tomcat_config_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`tomcatConfig`\" pulumi-lang-dotnet=\"`TomcatConfig`\" pulumi-lang-go=\"`tomcatConfig`\" pulumi-lang-python=\"`tomcat_config`\" pulumi-lang-yaml=\"`tomcatConfig`\" pulumi-lang-java=\"`tomcatConfig`\"\u003e`tomcat_config`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`tomcatConfigV2`\" pulumi-lang-dotnet=\"`TomcatConfigV2`\" pulumi-lang-go=\"`tomcatConfigV2`\" pulumi-lang-python=\"`tomcat_config_v2`\" pulumi-lang-yaml=\"`tomcatConfigV2`\" pulumi-lang-java=\"`tomcatConfigV2`\"\u003e`tomcat_config_v2`\u003c/span\u003e instead."},"tomcatConfigV2":{"$ref":"#/types/alicloud:sae/ApplicationTomcatConfigV2:ApplicationTomcatConfigV2","description":"The Tomcat configuration. See \u003cspan pulumi-lang-nodejs=\"`tomcatConfigV2`\" pulumi-lang-dotnet=\"`TomcatConfigV2`\" pulumi-lang-go=\"`tomcatConfigV2`\" pulumi-lang-python=\"`tomcat_config_v2`\" pulumi-lang-yaml=\"`tomcatConfigV2`\" pulumi-lang-java=\"`tomcatConfigV2`\"\u003e`tomcat_config_v2`\u003c/span\u003e below.\n"},"updateStrategy":{"type":"string","description":"The update strategy. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`updateStrategy`\" pulumi-lang-dotnet=\"`UpdateStrategy`\" pulumi-lang-go=\"`updateStrategy`\" pulumi-lang-python=\"`update_strategy`\" pulumi-lang-yaml=\"`updateStrategy`\" pulumi-lang-java=\"`updateStrategy`\"\u003e`update_strategy`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`updateStrategyV2`\" pulumi-lang-dotnet=\"`UpdateStrategyV2`\" pulumi-lang-go=\"`updateStrategyV2`\" pulumi-lang-python=\"`update_strategy_v2`\" pulumi-lang-yaml=\"`updateStrategyV2`\" pulumi-lang-java=\"`updateStrategyV2`\"\u003e`update_strategy_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`updateStrategy`\" pulumi-lang-dotnet=\"`UpdateStrategy`\" pulumi-lang-go=\"`updateStrategy`\" pulumi-lang-python=\"`update_strategy`\" pulumi-lang-yaml=\"`updateStrategy`\" pulumi-lang-java=\"`updateStrategy`\"\u003e`update_strategy`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`updateStrategyV2`\" pulumi-lang-dotnet=\"`UpdateStrategyV2`\" pulumi-lang-go=\"`updateStrategyV2`\" pulumi-lang-python=\"`update_strategy_v2`\" pulumi-lang-yaml=\"`updateStrategyV2`\" pulumi-lang-java=\"`updateStrategyV2`\"\u003e`update_strategy_v2`\u003c/span\u003e instead."},"updateStrategyV2":{"$ref":"#/types/alicloud:sae/ApplicationUpdateStrategyV2:ApplicationUpdateStrategyV2","description":"The release policy. See \u003cspan pulumi-lang-nodejs=\"`updateStrategyV2`\" pulumi-lang-dotnet=\"`UpdateStrategyV2`\" pulumi-lang-go=\"`updateStrategyV2`\" pulumi-lang-python=\"`update_strategy_v2`\" pulumi-lang-yaml=\"`updateStrategyV2`\" pulumi-lang-java=\"`updateStrategyV2`\"\u003e`update_strategy_v2`\u003c/span\u003e below.\n"},"vpcId":{"type":"string","description":"The vpc id.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vswitch id. **NOTE:** From version 1.211.0, \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e can be modified.\n"},"warStartOptions":{"type":"string","description":"WAR package launch application option. Application default startup command: java $JAVA_OPTS $CATALINA_OPTS [-Options] org.apache.catalina.startup.Bootstrap \"$@\" start.\n"},"webContainer":{"type":"string","description":"The version of tomcat that the deployment package depends on. Image type applications are not supported.\n"}},"requiredInputs":["appName","packageType","replicas"],"stateInputs":{"description":"Input properties used for looking up and filtering Application resources.\n","properties":{"acrAssumeRoleArn":{"type":"string","description":"The ARN of the RAM role required when pulling images across accounts. Only necessary if the\u003cspan pulumi-lang-nodejs=\" imageUrl \" pulumi-lang-dotnet=\" ImageUrl \" pulumi-lang-go=\" imageUrl \" pulumi-lang-python=\" image_url \" pulumi-lang-yaml=\" imageUrl \" pulumi-lang-java=\" imageUrl \"\u003e image_url \u003c/span\u003eis pointing to an ACR EE instance.\n"},"acrInstanceId":{"type":"string","description":"The ID of the ACR EE instance. Only necessary if the\u003cspan pulumi-lang-nodejs=\" imageUrl \" pulumi-lang-dotnet=\" ImageUrl \" pulumi-lang-go=\" imageUrl \" pulumi-lang-python=\" image_url \" pulumi-lang-yaml=\" imageUrl \" pulumi-lang-java=\" imageUrl \"\u003e image_url \u003c/span\u003eis pointing to an ACR EE instance.\n"},"appDescription":{"type":"string","description":"Application description information. No more than 1024 characters. **NOTE:** From version 1.211.0, \u003cspan pulumi-lang-nodejs=\"`appDescription`\" pulumi-lang-dotnet=\"`AppDescription`\" pulumi-lang-go=\"`appDescription`\" pulumi-lang-python=\"`app_description`\" pulumi-lang-yaml=\"`appDescription`\" pulumi-lang-java=\"`appDescription`\"\u003e`app_description`\u003c/span\u003e can be modified.\n"},"appName":{"type":"string","description":"Application Name. Combinations of numbers, letters, and dashes (-) are allowed. It must start with a letter and the maximum length is 36 characters.\n","willReplaceOnChanges":true},"autoConfig":{"type":"boolean","description":"The auto config. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoEnableApplicationScalingRule":{"type":"boolean","description":"The auto enable application scaling rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"batchWaitTime":{"type":"integer","description":"The batch wait time.\n"},"changeOrderDesc":{"type":"string","description":"The change order desc.\n"},"command":{"type":"string","description":"Mirror start command. The command must be an executable object in the container. For example: sleep. Setting this command will cause the original startup command of the mirror to become invalid.\n"},"commandArgs":{"type":"string","description":"Mirror startup command parameters. The parameters required for the above start command. For example: 1d. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`commandArgs`\" pulumi-lang-dotnet=\"`CommandArgs`\" pulumi-lang-go=\"`commandArgs`\" pulumi-lang-python=\"`command_args`\" pulumi-lang-yaml=\"`commandArgs`\" pulumi-lang-java=\"`commandArgs`\"\u003e`command_args`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`commandArgsV2`\" pulumi-lang-dotnet=\"`CommandArgsV2`\" pulumi-lang-go=\"`commandArgsV2`\" pulumi-lang-python=\"`command_args_v2`\" pulumi-lang-yaml=\"`commandArgsV2`\" pulumi-lang-java=\"`commandArgsV2`\"\u003e`command_args_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`commandArgs`\" pulumi-lang-dotnet=\"`CommandArgs`\" pulumi-lang-go=\"`commandArgs`\" pulumi-lang-python=\"`command_args`\" pulumi-lang-yaml=\"`commandArgs`\" pulumi-lang-java=\"`commandArgs`\"\u003e`command_args`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`commandArgsV2`\" pulumi-lang-dotnet=\"`CommandArgsV2`\" pulumi-lang-go=\"`commandArgsV2`\" pulumi-lang-python=\"`command_args_v2`\" pulumi-lang-yaml=\"`commandArgsV2`\" pulumi-lang-java=\"`commandArgsV2`\"\u003e`command_args_v2`\u003c/span\u003e instead."},"commandArgsV2s":{"type":"array","items":{"type":"string"},"description":"The parameters of the image startup command.\n"},"configMapMountDesc":{"type":"string","description":"ConfigMap mount description. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`configMapMountDesc`\" pulumi-lang-dotnet=\"`ConfigMapMountDesc`\" pulumi-lang-go=\"`configMapMountDesc`\" pulumi-lang-python=\"`config_map_mount_desc`\" pulumi-lang-yaml=\"`configMapMountDesc`\" pulumi-lang-java=\"`configMapMountDesc`\"\u003e`config_map_mount_desc`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`configMapMountDescV2`\" pulumi-lang-dotnet=\"`ConfigMapMountDescV2`\" pulumi-lang-go=\"`configMapMountDescV2`\" pulumi-lang-python=\"`config_map_mount_desc_v2`\" pulumi-lang-yaml=\"`configMapMountDescV2`\" pulumi-lang-java=\"`configMapMountDescV2`\"\u003e`config_map_mount_desc_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`configMapMountDesc`\" pulumi-lang-dotnet=\"`ConfigMapMountDesc`\" pulumi-lang-go=\"`configMapMountDesc`\" pulumi-lang-python=\"`config_map_mount_desc`\" pulumi-lang-yaml=\"`configMapMountDesc`\" pulumi-lang-java=\"`configMapMountDesc`\"\u003e`config_map_mount_desc`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`configMapMountDescV2`\" pulumi-lang-dotnet=\"`ConfigMapMountDescV2`\" pulumi-lang-go=\"`configMapMountDescV2`\" pulumi-lang-python=\"`config_map_mount_desc_v2`\" pulumi-lang-yaml=\"`configMapMountDescV2`\" pulumi-lang-java=\"`configMapMountDescV2`\"\u003e`config_map_mount_desc_v2`\u003c/span\u003e instead."},"configMapMountDescV2s":{"type":"array","items":{"$ref":"#/types/alicloud:sae/ApplicationConfigMapMountDescV2:ApplicationConfigMapMountDescV2"},"description":"The description of the ConfigMap that is mounted to the application. A ConfigMap that is created on the ConfigMaps page of a namespace is used to inject configurations into containers. See \u003cspan pulumi-lang-nodejs=\"`configMapMountDescV2`\" pulumi-lang-dotnet=\"`ConfigMapMountDescV2`\" pulumi-lang-go=\"`configMapMountDescV2`\" pulumi-lang-python=\"`config_map_mount_desc_v2`\" pulumi-lang-yaml=\"`configMapMountDescV2`\" pulumi-lang-java=\"`configMapMountDescV2`\"\u003e`config_map_mount_desc_v2`\u003c/span\u003e below.\n"},"cpu":{"type":"integer","description":"The CPU required for each instance, in millicores, cannot be 0. Valid values: \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\"\u003e`4000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8000`\" pulumi-lang-dotnet=\"`8000`\" pulumi-lang-go=\"`8000`\" pulumi-lang-python=\"`8000`\" pulumi-lang-yaml=\"`8000`\" pulumi-lang-java=\"`8000`\"\u003e`8000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16000`\" pulumi-lang-dotnet=\"`16000`\" pulumi-lang-go=\"`16000`\" pulumi-lang-python=\"`16000`\" pulumi-lang-yaml=\"`16000`\" pulumi-lang-java=\"`16000`\"\u003e`16000`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32000`\" pulumi-lang-dotnet=\"`32000`\" pulumi-lang-go=\"`32000`\" pulumi-lang-python=\"`32000`\" pulumi-lang-yaml=\"`32000`\" pulumi-lang-java=\"`32000`\"\u003e`32000`\u003c/span\u003e.\n"},"customHostAlias":{"type":"string","description":"Custom host mapping in the container. For example: [{`hostName`:\u003cspan pulumi-lang-nodejs=\"`samplehost`\" pulumi-lang-dotnet=\"`Samplehost`\" pulumi-lang-go=\"`samplehost`\" pulumi-lang-python=\"`samplehost`\" pulumi-lang-yaml=\"`samplehost`\" pulumi-lang-java=\"`samplehost`\"\u003e`samplehost`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e:`127.0.0.1`}]. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`customHostAlias`\" pulumi-lang-dotnet=\"`CustomHostAlias`\" pulumi-lang-go=\"`customHostAlias`\" pulumi-lang-python=\"`custom_host_alias`\" pulumi-lang-yaml=\"`customHostAlias`\" pulumi-lang-java=\"`customHostAlias`\"\u003e`custom_host_alias`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`customHostAliasV2`\" pulumi-lang-dotnet=\"`CustomHostAliasV2`\" pulumi-lang-go=\"`customHostAliasV2`\" pulumi-lang-python=\"`custom_host_alias_v2`\" pulumi-lang-yaml=\"`customHostAliasV2`\" pulumi-lang-java=\"`customHostAliasV2`\"\u003e`custom_host_alias_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`customHostAlias`\" pulumi-lang-dotnet=\"`CustomHostAlias`\" pulumi-lang-go=\"`customHostAlias`\" pulumi-lang-python=\"`custom_host_alias`\" pulumi-lang-yaml=\"`customHostAlias`\" pulumi-lang-java=\"`customHostAlias`\"\u003e`custom_host_alias`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`customHostAliasV2`\" pulumi-lang-dotnet=\"`CustomHostAliasV2`\" pulumi-lang-go=\"`customHostAliasV2`\" pulumi-lang-python=\"`custom_host_alias_v2`\" pulumi-lang-yaml=\"`customHostAliasV2`\" pulumi-lang-java=\"`customHostAliasV2`\"\u003e`custom_host_alias_v2`\u003c/span\u003e instead."},"customHostAliasV2s":{"type":"array","items":{"$ref":"#/types/alicloud:sae/ApplicationCustomHostAliasV2:ApplicationCustomHostAliasV2"},"description":"The custom mapping between the hostname and IP address in the container. See \u003cspan pulumi-lang-nodejs=\"`customHostAliasV2`\" pulumi-lang-dotnet=\"`CustomHostAliasV2`\" pulumi-lang-go=\"`customHostAliasV2`\" pulumi-lang-python=\"`custom_host_alias_v2`\" pulumi-lang-yaml=\"`customHostAliasV2`\" pulumi-lang-java=\"`customHostAliasV2`\"\u003e`custom_host_alias_v2`\u003c/span\u003e below.\n"},"deploy":{"type":"boolean","description":"The deploy. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"edasContainerVersion":{"type":"string","description":"The operating environment used by the Pandora application.\n"},"enableAhas":{"type":"string","description":"The enable ahas. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enableGreyTagRoute":{"type":"boolean","description":"The enable grey tag route. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"envs":{"type":"string","description":"Container environment variable parameters. For example,`\t[{\"name\":\"envtmp\",\"value\":\"0\"}]`. The value description is as follows:\n"},"imagePullSecrets":{"type":"string","description":"The ID of the corresponding Secret.\n"},"imageUrl":{"type":"string","description":"Mirror address. Only Image type applications can configure the mirror address.\n"},"jarStartArgs":{"type":"string","description":"The JAR package starts application parameters. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS \"$package_path\" $JarStartArgs.\n"},"jarStartOptions":{"type":"string","description":"The JAR package starts the application option. Application default startup command: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS \"$package_path\" $JarStartArgs.\n"},"jdk":{"type":"string","description":"The JDK version that the deployment package depends on. Image type applications are not supported.\n"},"kafkaConfigs":{"$ref":"#/types/alicloud:sae/ApplicationKafkaConfigs:ApplicationKafkaConfigs","description":"The logging configurations of ApsaraMQ for Kafka. See \u003cspan pulumi-lang-nodejs=\"`kafkaConfigs`\" pulumi-lang-dotnet=\"`KafkaConfigs`\" pulumi-lang-go=\"`kafkaConfigs`\" pulumi-lang-python=\"`kafka_configs`\" pulumi-lang-yaml=\"`kafkaConfigs`\" pulumi-lang-java=\"`kafkaConfigs`\"\u003e`kafka_configs`\u003c/span\u003e below.\n"},"liveness":{"type":"string","description":"Container health check. Containers that fail the health check will be shut down and restored. Currently, only the method of issuing commands in the container is supported.\n**NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`liveness`\" pulumi-lang-dotnet=\"`Liveness`\" pulumi-lang-go=\"`liveness`\" pulumi-lang-python=\"`liveness`\" pulumi-lang-yaml=\"`liveness`\" pulumi-lang-java=\"`liveness`\"\u003e`liveness`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`livenessV2`\" pulumi-lang-dotnet=\"`LivenessV2`\" pulumi-lang-go=\"`livenessV2`\" pulumi-lang-python=\"`liveness_v2`\" pulumi-lang-yaml=\"`livenessV2`\" pulumi-lang-java=\"`livenessV2`\"\u003e`liveness_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`liveness`\" pulumi-lang-dotnet=\"`Liveness`\" pulumi-lang-go=\"`liveness`\" pulumi-lang-python=\"`liveness`\" pulumi-lang-yaml=\"`liveness`\" pulumi-lang-java=\"`liveness`\"\u003e`liveness`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`livenessV2`\" pulumi-lang-dotnet=\"`LivenessV2`\" pulumi-lang-go=\"`livenessV2`\" pulumi-lang-python=\"`liveness_v2`\" pulumi-lang-yaml=\"`livenessV2`\" pulumi-lang-java=\"`livenessV2`\"\u003e`liveness_v2`\u003c/span\u003e instead."},"livenessV2":{"$ref":"#/types/alicloud:sae/ApplicationLivenessV2:ApplicationLivenessV2","description":"The liveness check settings of the container. See \u003cspan pulumi-lang-nodejs=\"`livenessV2`\" pulumi-lang-dotnet=\"`LivenessV2`\" pulumi-lang-go=\"`livenessV2`\" pulumi-lang-python=\"`liveness_v2`\" pulumi-lang-yaml=\"`livenessV2`\" pulumi-lang-java=\"`livenessV2`\"\u003e`liveness_v2`\u003c/span\u003e below.\n"},"memory":{"type":"integer","description":"The memory required for each instance, in MB, cannot be 0. One-to-one correspondence with CPU. Valid values: \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2048`\" pulumi-lang-dotnet=\"`2048`\" pulumi-lang-go=\"`2048`\" pulumi-lang-python=\"`2048`\" pulumi-lang-yaml=\"`2048`\" pulumi-lang-java=\"`2048`\"\u003e`2048`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4096`\" pulumi-lang-dotnet=\"`4096`\" pulumi-lang-go=\"`4096`\" pulumi-lang-python=\"`4096`\" pulumi-lang-yaml=\"`4096`\" pulumi-lang-java=\"`4096`\"\u003e`4096`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8192`\" pulumi-lang-dotnet=\"`8192`\" pulumi-lang-go=\"`8192`\" pulumi-lang-python=\"`8192`\" pulumi-lang-yaml=\"`8192`\" pulumi-lang-java=\"`8192`\"\u003e`8192`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12288`\" pulumi-lang-dotnet=\"`12288`\" pulumi-lang-go=\"`12288`\" pulumi-lang-python=\"`12288`\" pulumi-lang-yaml=\"`12288`\" pulumi-lang-java=\"`12288`\"\u003e`12288`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16384`\" pulumi-lang-dotnet=\"`16384`\" pulumi-lang-go=\"`16384`\" pulumi-lang-python=\"`16384`\" pulumi-lang-yaml=\"`16384`\" pulumi-lang-java=\"`16384`\"\u003e`16384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24576`\" pulumi-lang-dotnet=\"`24576`\" pulumi-lang-go=\"`24576`\" pulumi-lang-python=\"`24576`\" pulumi-lang-yaml=\"`24576`\" pulumi-lang-java=\"`24576`\"\u003e`24576`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32768`\" pulumi-lang-dotnet=\"`32768`\" pulumi-lang-go=\"`32768`\" pulumi-lang-python=\"`32768`\" pulumi-lang-yaml=\"`32768`\" pulumi-lang-java=\"`32768`\"\u003e`32768`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`65536`\" pulumi-lang-dotnet=\"`65536`\" pulumi-lang-go=\"`65536`\" pulumi-lang-python=\"`65536`\" pulumi-lang-yaml=\"`65536`\" pulumi-lang-java=\"`65536`\"\u003e`65536`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`131072`\" pulumi-lang-dotnet=\"`131072`\" pulumi-lang-go=\"`131072`\" pulumi-lang-python=\"`131072`\" pulumi-lang-yaml=\"`131072`\" pulumi-lang-java=\"`131072`\"\u003e`131072`\u003c/span\u003e.\n"},"microRegistration":{"type":"string","description":"Select the Nacos registry. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"},"minReadyInstanceRatio":{"type":"integer","description":"Minimum Survival Instance Percentage. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`minReadyInstances`\" pulumi-lang-dotnet=\"`MinReadyInstances`\" pulumi-lang-go=\"`minReadyInstances`\" pulumi-lang-python=\"`min_ready_instances`\" pulumi-lang-yaml=\"`minReadyInstances`\" pulumi-lang-java=\"`minReadyInstances`\"\u003e`min_ready_instances`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`minReadyInstanceRatio`\" pulumi-lang-dotnet=\"`MinReadyInstanceRatio`\" pulumi-lang-go=\"`minReadyInstanceRatio`\" pulumi-lang-python=\"`min_ready_instance_ratio`\" pulumi-lang-yaml=\"`minReadyInstanceRatio`\" pulumi-lang-java=\"`minReadyInstanceRatio`\"\u003e`min_ready_instance_ratio`\u003c/span\u003e are passed at the same time, and the value of \u003cspan pulumi-lang-nodejs=\"`minReadyInstanceRatio`\" pulumi-lang-dotnet=\"`MinReadyInstanceRatio`\" pulumi-lang-go=\"`minReadyInstanceRatio`\" pulumi-lang-python=\"`min_ready_instance_ratio`\" pulumi-lang-yaml=\"`minReadyInstanceRatio`\" pulumi-lang-java=\"`minReadyInstanceRatio`\"\u003e`min_ready_instance_ratio`\u003c/span\u003e is not -1, the \u003cspan pulumi-lang-nodejs=\"`minReadyInstanceRatio`\" pulumi-lang-dotnet=\"`MinReadyInstanceRatio`\" pulumi-lang-go=\"`minReadyInstanceRatio`\" pulumi-lang-python=\"`min_ready_instance_ratio`\" pulumi-lang-yaml=\"`minReadyInstanceRatio`\" pulumi-lang-java=\"`minReadyInstanceRatio`\"\u003e`min_ready_instance_ratio`\u003c/span\u003e parameter shall prevail. Assuming that \u003cspan pulumi-lang-nodejs=\"`minReadyInstances`\" pulumi-lang-dotnet=\"`MinReadyInstances`\" pulumi-lang-go=\"`minReadyInstances`\" pulumi-lang-python=\"`min_ready_instances`\" pulumi-lang-yaml=\"`minReadyInstances`\" pulumi-lang-java=\"`minReadyInstances`\"\u003e`min_ready_instances`\u003c/span\u003e is 5 and \u003cspan pulumi-lang-nodejs=\"`minReadyInstanceRatio`\" pulumi-lang-dotnet=\"`MinReadyInstanceRatio`\" pulumi-lang-go=\"`minReadyInstanceRatio`\" pulumi-lang-python=\"`min_ready_instance_ratio`\" pulumi-lang-yaml=\"`minReadyInstanceRatio`\" pulumi-lang-java=\"`minReadyInstanceRatio`\"\u003e`min_ready_instance_ratio`\u003c/span\u003e is 50, 50 is used to calculate the minimum number of surviving instances.The value description is as follows:\n* `-1`: Initialization value, indicating that percentages are not used.\n* `0~100`: The unit is percentage, rounded up. For example, if it is set to 50%, if there are currently 5 instances, the minimum number of surviving instances is 3.\n"},"minReadyInstances":{"type":"integer","description":"The Minimum Available Instance. On the Change Had Promised during the Available Number of Instances to Be.\n"},"namespaceId":{"type":"string","description":"SAE namespace ID. Only namespaces whose names are lowercase letters and dashes (-) are supported, and must start with a letter. The namespace can be obtained by calling the DescribeNamespaceList interface.\n","willReplaceOnChanges":true},"nasConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:sae/ApplicationNasConfig:ApplicationNasConfig"},"description":"The configurations for mounting the NAS file system. See \u003cspan pulumi-lang-nodejs=\"`nasConfigs`\" pulumi-lang-dotnet=\"`NasConfigs`\" pulumi-lang-go=\"`nasConfigs`\" pulumi-lang-python=\"`nas_configs`\" pulumi-lang-yaml=\"`nasConfigs`\" pulumi-lang-java=\"`nasConfigs`\"\u003e`nas_configs`\u003c/span\u003e below.\n"},"ossAkId":{"type":"string","description":"OSS AccessKey ID.\n","secret":true},"ossAkSecret":{"type":"string","description":"OSS  AccessKey Secret.\n","secret":true},"ossMountDescs":{"type":"string","description":"OSS mount description information. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`ossMountDescs`\" pulumi-lang-dotnet=\"`OssMountDescs`\" pulumi-lang-go=\"`ossMountDescs`\" pulumi-lang-python=\"`oss_mount_descs`\" pulumi-lang-yaml=\"`ossMountDescs`\" pulumi-lang-java=\"`ossMountDescs`\"\u003e`oss_mount_descs`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`ossMountDescsV2`\" pulumi-lang-dotnet=\"`OssMountDescsV2`\" pulumi-lang-go=\"`ossMountDescsV2`\" pulumi-lang-python=\"`oss_mount_descs_v2`\" pulumi-lang-yaml=\"`ossMountDescsV2`\" pulumi-lang-java=\"`ossMountDescsV2`\"\u003e`oss_mount_descs_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`ossMountDescs`\" pulumi-lang-dotnet=\"`OssMountDescs`\" pulumi-lang-go=\"`ossMountDescs`\" pulumi-lang-python=\"`oss_mount_descs`\" pulumi-lang-yaml=\"`ossMountDescs`\" pulumi-lang-java=\"`ossMountDescs`\"\u003e`oss_mount_descs`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`ossMountDescsV2`\" pulumi-lang-dotnet=\"`OssMountDescsV2`\" pulumi-lang-go=\"`ossMountDescsV2`\" pulumi-lang-python=\"`oss_mount_descs_v2`\" pulumi-lang-yaml=\"`ossMountDescsV2`\" pulumi-lang-java=\"`ossMountDescsV2`\"\u003e`oss_mount_descs_v2`\u003c/span\u003e instead."},"ossMountDescsV2s":{"type":"array","items":{"$ref":"#/types/alicloud:sae/ApplicationOssMountDescsV2:ApplicationOssMountDescsV2"},"description":"The description of the mounted Object Storage Service (OSS) bucket. See \u003cspan pulumi-lang-nodejs=\"`ossMountDescsV2`\" pulumi-lang-dotnet=\"`OssMountDescsV2`\" pulumi-lang-go=\"`ossMountDescsV2`\" pulumi-lang-python=\"`oss_mount_descs_v2`\" pulumi-lang-yaml=\"`ossMountDescsV2`\" pulumi-lang-java=\"`ossMountDescsV2`\"\u003e`oss_mount_descs_v2`\u003c/span\u003e below.\n"},"packageType":{"type":"string","description":"Application package type. Valid values: `FatJar`, `War`, `Image`, `PhpZip`, `IMAGE_PHP_5_4`, `IMAGE_PHP_5_4_ALPINE`, `IMAGE_PHP_5_5`, `IMAGE_PHP_5_5_ALPINE`, `IMAGE_PHP_5_6`, `IMAGE_PHP_5_6_ALPINE`, `IMAGE_PHP_7_0`, `IMAGE_PHP_7_0_ALPINE`, `IMAGE_PHP_7_1`, `IMAGE_PHP_7_1_ALPINE`, `IMAGE_PHP_7_2`, `IMAGE_PHP_7_2_ALPINE`, `IMAGE_PHP_7_3`, `IMAGE_PHP_7_3_ALPINE`, `PythonZip`.\n","willReplaceOnChanges":true},"packageUrl":{"type":"string","description":"Deployment package address. Only FatJar or War type applications can configure the deployment package address.\n"},"packageVersion":{"type":"string","description":"The version number of the deployment package. Required when the Package Type is War and FatJar.\n"},"php":{"type":"string","description":"The Php environment.\n"},"phpArmsConfigLocation":{"type":"string","description":"The PHP application monitors the mount path, and you need to ensure that the PHP server will load the configuration file of this path. You don't need to pay attention to the configuration content, SAE will automatically render the correct configuration file.\n"},"phpConfig":{"type":"string","description":"PHP configuration file content.\n"},"phpConfigLocation":{"type":"string","description":"PHP application startup configuration mount path, you need to ensure that the PHP server will start using this configuration file.\n"},"postStart":{"type":"string","description":"Execute the script after startup, the format is like: {\u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e:{\u003cspan pulumi-lang-nodejs=\"`command`\" pulumi-lang-dotnet=\"`Command`\" pulumi-lang-go=\"`command`\" pulumi-lang-python=\"`command`\" pulumi-lang-yaml=\"`command`\" pulumi-lang-java=\"`command`\"\u003e`command`\u003c/span\u003e:[\u003cspan pulumi-lang-nodejs=\"`cat`\" pulumi-lang-dotnet=\"`Cat`\" pulumi-lang-go=\"`cat`\" pulumi-lang-python=\"`cat`\" pulumi-lang-yaml=\"`cat`\" pulumi-lang-java=\"`cat`\"\u003e`cat`\u003c/span\u003e,\"/etc/group\"]}}. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`postStart`\" pulumi-lang-dotnet=\"`PostStart`\" pulumi-lang-go=\"`postStart`\" pulumi-lang-python=\"`post_start`\" pulumi-lang-yaml=\"`postStart`\" pulumi-lang-java=\"`postStart`\"\u003e`post_start`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`postStartV2`\" pulumi-lang-dotnet=\"`PostStartV2`\" pulumi-lang-go=\"`postStartV2`\" pulumi-lang-python=\"`post_start_v2`\" pulumi-lang-yaml=\"`postStartV2`\" pulumi-lang-java=\"`postStartV2`\"\u003e`post_start_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`postStart`\" pulumi-lang-dotnet=\"`PostStart`\" pulumi-lang-go=\"`postStart`\" pulumi-lang-python=\"`post_start`\" pulumi-lang-yaml=\"`postStart`\" pulumi-lang-java=\"`postStart`\"\u003e`post_start`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`postStartV2`\" pulumi-lang-dotnet=\"`PostStartV2`\" pulumi-lang-go=\"`postStartV2`\" pulumi-lang-python=\"`post_start_v2`\" pulumi-lang-yaml=\"`postStartV2`\" pulumi-lang-java=\"`postStartV2`\"\u003e`post_start_v2`\u003c/span\u003e instead."},"postStartV2":{"$ref":"#/types/alicloud:sae/ApplicationPostStartV2:ApplicationPostStartV2","description":"The script that is run immediately after the container is started. See \u003cspan pulumi-lang-nodejs=\"`postStartV2`\" pulumi-lang-dotnet=\"`PostStartV2`\" pulumi-lang-go=\"`postStartV2`\" pulumi-lang-python=\"`post_start_v2`\" pulumi-lang-yaml=\"`postStartV2`\" pulumi-lang-java=\"`postStartV2`\"\u003e`post_start_v2`\u003c/span\u003e below.\n"},"preStop":{"type":"string","description":"Execute the script before stopping, the format is like: {\u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e:{\u003cspan pulumi-lang-nodejs=\"`command`\" pulumi-lang-dotnet=\"`Command`\" pulumi-lang-go=\"`command`\" pulumi-lang-python=\"`command`\" pulumi-lang-yaml=\"`command`\" pulumi-lang-java=\"`command`\"\u003e`command`\u003c/span\u003e:[\u003cspan pulumi-lang-nodejs=\"`cat`\" pulumi-lang-dotnet=\"`Cat`\" pulumi-lang-go=\"`cat`\" pulumi-lang-python=\"`cat`\" pulumi-lang-yaml=\"`cat`\" pulumi-lang-java=\"`cat`\"\u003e`cat`\u003c/span\u003e,\"/etc/group\"]}}. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`preStop`\" pulumi-lang-dotnet=\"`PreStop`\" pulumi-lang-go=\"`preStop`\" pulumi-lang-python=\"`pre_stop`\" pulumi-lang-yaml=\"`preStop`\" pulumi-lang-java=\"`preStop`\"\u003e`pre_stop`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`preStopV2`\" pulumi-lang-dotnet=\"`PreStopV2`\" pulumi-lang-go=\"`preStopV2`\" pulumi-lang-python=\"`pre_stop_v2`\" pulumi-lang-yaml=\"`preStopV2`\" pulumi-lang-java=\"`preStopV2`\"\u003e`pre_stop_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`preStop`\" pulumi-lang-dotnet=\"`PreStop`\" pulumi-lang-go=\"`preStop`\" pulumi-lang-python=\"`pre_stop`\" pulumi-lang-yaml=\"`preStop`\" pulumi-lang-java=\"`preStop`\"\u003e`pre_stop`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`preStopV2`\" pulumi-lang-dotnet=\"`PreStopV2`\" pulumi-lang-go=\"`preStopV2`\" pulumi-lang-python=\"`pre_stop_v2`\" pulumi-lang-yaml=\"`preStopV2`\" pulumi-lang-java=\"`preStopV2`\"\u003e`pre_stop_v2`\u003c/span\u003e instead."},"preStopV2":{"$ref":"#/types/alicloud:sae/ApplicationPreStopV2:ApplicationPreStopV2","description":"The script that is run before the container is stopped. See \u003cspan pulumi-lang-nodejs=\"`preStopV2`\" pulumi-lang-dotnet=\"`PreStopV2`\" pulumi-lang-go=\"`preStopV2`\" pulumi-lang-python=\"`pre_stop_v2`\" pulumi-lang-yaml=\"`preStopV2`\" pulumi-lang-java=\"`preStopV2`\"\u003e`pre_stop_v2`\u003c/span\u003e below.\n"},"programmingLanguage":{"type":"string","description":"The programming language that is used to create the application. Valid values: \u003cspan pulumi-lang-nodejs=\"`java`\" pulumi-lang-dotnet=\"`Java`\" pulumi-lang-go=\"`java`\" pulumi-lang-python=\"`java`\" pulumi-lang-yaml=\"`java`\" pulumi-lang-java=\"`java`\"\u003e`java`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`php`\" pulumi-lang-dotnet=\"`Php`\" pulumi-lang-go=\"`php`\" pulumi-lang-python=\"`php`\" pulumi-lang-yaml=\"`php`\" pulumi-lang-java=\"`php`\"\u003e`php`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`other`\" pulumi-lang-dotnet=\"`Other`\" pulumi-lang-go=\"`other`\" pulumi-lang-python=\"`other`\" pulumi-lang-yaml=\"`other`\" pulumi-lang-java=\"`other`\"\u003e`other`\u003c/span\u003e.\n","willReplaceOnChanges":true},"pvtzDiscoverySvc":{"$ref":"#/types/alicloud:sae/ApplicationPvtzDiscoverySvc:ApplicationPvtzDiscoverySvc","description":"The configurations of Kubernetes Service-based service registration and discovery. See \u003cspan pulumi-lang-nodejs=\"`pvtzDiscoverySvc`\" pulumi-lang-dotnet=\"`PvtzDiscoverySvc`\" pulumi-lang-go=\"`pvtzDiscoverySvc`\" pulumi-lang-python=\"`pvtz_discovery_svc`\" pulumi-lang-yaml=\"`pvtzDiscoverySvc`\" pulumi-lang-java=\"`pvtzDiscoverySvc`\"\u003e`pvtz_discovery_svc`\u003c/span\u003e below.\n"},"readiness":{"type":"string","description":"Application startup status checks, containers that fail multiple health checks will be shut down and restarted. Containers that do not pass the health check will not receive SLB traffic. For example: {\u003cspan pulumi-lang-nodejs=\"`exec`\" pulumi-lang-dotnet=\"`Exec`\" pulumi-lang-go=\"`exec`\" pulumi-lang-python=\"`exec`\" pulumi-lang-yaml=\"`exec`\" pulumi-lang-java=\"`exec`\"\u003e`exec`\u003c/span\u003e:{\u003cspan pulumi-lang-nodejs=\"`command`\" pulumi-lang-dotnet=\"`Command`\" pulumi-lang-go=\"`command`\" pulumi-lang-python=\"`command`\" pulumi-lang-yaml=\"`command`\" pulumi-lang-java=\"`command`\"\u003e`command`\u003c/span\u003e:[\u003cspan pulumi-lang-nodejs=\"`sh`\" pulumi-lang-dotnet=\"`Sh`\" pulumi-lang-go=\"`sh`\" pulumi-lang-python=\"`sh`\" pulumi-lang-yaml=\"`sh`\" pulumi-lang-java=\"`sh`\"\u003e`sh`\u003c/span\u003e,\"-c\",\"cat /home/admin/start.sh\"]},`initialDelaySeconds`:30,`periodSeconds`:30,\"timeoutSeconds \":2}. Valid values: \u003cspan pulumi-lang-nodejs=\"`command`\" pulumi-lang-dotnet=\"`Command`\" pulumi-lang-go=\"`command`\" pulumi-lang-python=\"`command`\" pulumi-lang-yaml=\"`command`\" pulumi-lang-java=\"`command`\"\u003e`command`\u003c/span\u003e, `initialDelaySeconds`, `periodSeconds`, `timeoutSeconds`.\n**NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`readiness`\" pulumi-lang-dotnet=\"`Readiness`\" pulumi-lang-go=\"`readiness`\" pulumi-lang-python=\"`readiness`\" pulumi-lang-yaml=\"`readiness`\" pulumi-lang-java=\"`readiness`\"\u003e`readiness`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`readinessV2`\" pulumi-lang-dotnet=\"`ReadinessV2`\" pulumi-lang-go=\"`readinessV2`\" pulumi-lang-python=\"`readiness_v2`\" pulumi-lang-yaml=\"`readinessV2`\" pulumi-lang-java=\"`readinessV2`\"\u003e`readiness_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`readiness`\" pulumi-lang-dotnet=\"`Readiness`\" pulumi-lang-go=\"`readiness`\" pulumi-lang-python=\"`readiness`\" pulumi-lang-yaml=\"`readiness`\" pulumi-lang-java=\"`readiness`\"\u003e`readiness`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`readinessV2`\" pulumi-lang-dotnet=\"`ReadinessV2`\" pulumi-lang-go=\"`readinessV2`\" pulumi-lang-python=\"`readiness_v2`\" pulumi-lang-yaml=\"`readinessV2`\" pulumi-lang-java=\"`readinessV2`\"\u003e`readiness_v2`\u003c/span\u003e instead."},"readinessV2":{"$ref":"#/types/alicloud:sae/ApplicationReadinessV2:ApplicationReadinessV2","description":"The readiness check settings of the container. If a container fails this health check multiple times, the container is stopped and then restarted. See \u003cspan pulumi-lang-nodejs=\"`readinessV2`\" pulumi-lang-dotnet=\"`ReadinessV2`\" pulumi-lang-go=\"`readinessV2`\" pulumi-lang-python=\"`readiness_v2`\" pulumi-lang-yaml=\"`readinessV2`\" pulumi-lang-java=\"`readinessV2`\"\u003e`readiness_v2`\u003c/span\u003e below.\n"},"replicas":{"type":"integer","description":"Initial number of instances.\n"},"securityGroupId":{"type":"string","description":"Security group ID.\n"},"slsConfigs":{"type":"string","description":"Configuration for log collection to SLS. Valid parameter descriptions are as follows:\n* `projectName`: Configures the project name on SLS.\n* `logDir`: Path to the logs.\n* `logType`: Type of logs. stdout indicates container standard output logs, and only one can be set; if not set, it means collecting file logs.\n* `logstoreName`: Configures the log store name on SLS.\n* `logtailName`: Configures the log tail name on SLS; if not specified, it means creating a new log tail.\n\nIf you no longer need to use the SLS collection feature, you should set the value of this field to an empty string. There are two examples:\n- Using SAE automatically created SLS resources: [{\"logDir\":\"\",\"logType\":\"stdout\"},{\"logDir\":\"/tmp/a.log\"}].\n- Using custom SLS resources: [{\"projectName\":\"test-sls\",\"logType\":\"stdout\",\"logDir\":\"\",\"logstoreName\":\"sae\",\"logtailName\":\"\"},{\"projectName\":\"test\",\"logDir\":\"/tmp/a.log\",\"logstoreName\":\"sae\",\"logtailName\":\"\"}].\n\n**NOTE:** Projects that are automatically created with applications will be deleted along with the application deletion. Therefore, when selecting existing projects, you cannot choose projects automatically created by SAE.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `RUNNING`, `STOPPED`, `UNKNOWN`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"terminationGracePeriodSeconds":{"type":"integer","description":"Graceful offline timeout, the default is 30, the unit is seconds. The value range is 1~60. Valid values: [1,60].\n"},"timezone":{"type":"string","description":"Time zone. Default value: `Asia/Shanghai`.\n"},"tomcatConfig":{"type":"string","description":"Tomcat file configuration, set to \"{}\" means to delete the configuration:  useDefaultConfig: Whether to use a custom configuration, if it is true, it means that the custom configuration is not used; if it is false, it means that the custom configuration is used. If you do not use custom configuration, the following parameter configuration will not take effect.  contextInputType: Select the access path of the application.  war: No need to fill in the custom path, the access path of the application is the WAR package name. root: No need to fill in the custom path, the access path of the application is /. custom: You need to fill in the custom path in the custom path below. contextPath: custom path, this parameter only needs to be configured when the contextInputType type is custom.  httpPort: The port range is 1024~65535. Ports less than 1024 need Root permission to operate. Because the container is configured with Admin permissions, please fill in a port greater than 1024. If not configured, the default is 8080. maxThreads: Configure the number of connections in the connection pool, the default size is 400. uriEncoding: Tomcat encoding format, including UTF-8, ISO-8859-1, GBK and GB2312. If not set, the default is ISO-8859-1. useBodyEncoding: Whether to use BodyEncoding for URL. Valid values: `contextInputType`, `contextPath`, `httpPort`, `maxThreads`, `uriEncoding`, `useBodyEncoding`, `useDefaultConfig`.\n**NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`tomcatConfig`\" pulumi-lang-dotnet=\"`TomcatConfig`\" pulumi-lang-go=\"`tomcatConfig`\" pulumi-lang-python=\"`tomcat_config`\" pulumi-lang-yaml=\"`tomcatConfig`\" pulumi-lang-java=\"`tomcatConfig`\"\u003e`tomcat_config`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`tomcatConfigV2`\" pulumi-lang-dotnet=\"`TomcatConfigV2`\" pulumi-lang-go=\"`tomcatConfigV2`\" pulumi-lang-python=\"`tomcat_config_v2`\" pulumi-lang-yaml=\"`tomcatConfigV2`\" pulumi-lang-java=\"`tomcatConfigV2`\"\u003e`tomcat_config_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`tomcatConfig`\" pulumi-lang-dotnet=\"`TomcatConfig`\" pulumi-lang-go=\"`tomcatConfig`\" pulumi-lang-python=\"`tomcat_config`\" pulumi-lang-yaml=\"`tomcatConfig`\" pulumi-lang-java=\"`tomcatConfig`\"\u003e`tomcat_config`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`tomcatConfigV2`\" pulumi-lang-dotnet=\"`TomcatConfigV2`\" pulumi-lang-go=\"`tomcatConfigV2`\" pulumi-lang-python=\"`tomcat_config_v2`\" pulumi-lang-yaml=\"`tomcatConfigV2`\" pulumi-lang-java=\"`tomcatConfigV2`\"\u003e`tomcat_config_v2`\u003c/span\u003e instead."},"tomcatConfigV2":{"$ref":"#/types/alicloud:sae/ApplicationTomcatConfigV2:ApplicationTomcatConfigV2","description":"The Tomcat configuration. See \u003cspan pulumi-lang-nodejs=\"`tomcatConfigV2`\" pulumi-lang-dotnet=\"`TomcatConfigV2`\" pulumi-lang-go=\"`tomcatConfigV2`\" pulumi-lang-python=\"`tomcat_config_v2`\" pulumi-lang-yaml=\"`tomcatConfigV2`\" pulumi-lang-java=\"`tomcatConfigV2`\"\u003e`tomcat_config_v2`\u003c/span\u003e below.\n"},"updateStrategy":{"type":"string","description":"The update strategy. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`updateStrategy`\" pulumi-lang-dotnet=\"`UpdateStrategy`\" pulumi-lang-go=\"`updateStrategy`\" pulumi-lang-python=\"`update_strategy`\" pulumi-lang-yaml=\"`updateStrategy`\" pulumi-lang-java=\"`updateStrategy`\"\u003e`update_strategy`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`updateStrategyV2`\" pulumi-lang-dotnet=\"`UpdateStrategyV2`\" pulumi-lang-go=\"`updateStrategyV2`\" pulumi-lang-python=\"`update_strategy_v2`\" pulumi-lang-yaml=\"`updateStrategyV2`\" pulumi-lang-java=\"`updateStrategyV2`\"\u003e`update_strategy_v2`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`updateStrategy`\" pulumi-lang-dotnet=\"`UpdateStrategy`\" pulumi-lang-go=\"`updateStrategy`\" pulumi-lang-python=\"`update_strategy`\" pulumi-lang-yaml=\"`updateStrategy`\" pulumi-lang-java=\"`updateStrategy`\"\u003e`update_strategy`\u003c/span\u003e has been deprecated from provider version 1.211.0. New field \u003cspan pulumi-lang-nodejs=\"`updateStrategyV2`\" pulumi-lang-dotnet=\"`UpdateStrategyV2`\" pulumi-lang-go=\"`updateStrategyV2`\" pulumi-lang-python=\"`update_strategy_v2`\" pulumi-lang-yaml=\"`updateStrategyV2`\" pulumi-lang-java=\"`updateStrategyV2`\"\u003e`update_strategy_v2`\u003c/span\u003e instead."},"updateStrategyV2":{"$ref":"#/types/alicloud:sae/ApplicationUpdateStrategyV2:ApplicationUpdateStrategyV2","description":"The release policy. See \u003cspan pulumi-lang-nodejs=\"`updateStrategyV2`\" pulumi-lang-dotnet=\"`UpdateStrategyV2`\" pulumi-lang-go=\"`updateStrategyV2`\" pulumi-lang-python=\"`update_strategy_v2`\" pulumi-lang-yaml=\"`updateStrategyV2`\" pulumi-lang-java=\"`updateStrategyV2`\"\u003e`update_strategy_v2`\u003c/span\u003e below.\n"},"vpcId":{"type":"string","description":"The vpc id.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vswitch id. **NOTE:** From version 1.211.0, \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e can be modified.\n"},"warStartOptions":{"type":"string","description":"WAR package launch application option. Application default startup command: java $JAVA_OPTS $CATALINA_OPTS [-Options] org.apache.catalina.startup.Bootstrap \"$@\" start.\n"},"webContainer":{"type":"string","description":"The version of tomcat that the deployment package depends on. Image type applications are not supported.\n"}},"type":"object"}},"alicloud:sae/applicationScalingRule:ApplicationScalingRule":{"description":"Provides a Serverless App Engine (SAE) Application Scaling Rule resource.\n\nFor information about Serverless App Engine (SAE) Application Scaling Rule and how to use it, see [What is Application Scaling Rule](https://next.api.aliyun.com/api/sae/2019-05-06/CreateApplicationScalingRule).\n\n\u003e **NOTE:** Available since v1.159.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultGetZones = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultNamespace = new alicloud.sae.Namespace(\"default\", {\n    namespaceId: _default.then(_default =\u003e `${_default.regions?.[0]?.id}:example${defaultInteger.result}`),\n    namespaceName: name,\n    namespaceDescription: name,\n    enableMicroRegistration: false,\n});\nconst defaultApplication = new alicloud.sae.Application(\"default\", {\n    appDescription: name,\n    appName: `${name}-${defaultInteger.result}`,\n    namespaceId: defaultNamespace.id,\n    imageUrl: _default.then(_default =\u003e `registry-vpc.${_default.regions?.[0]?.id}.aliyuncs.com/sae-demo-image/consumer:1.0`),\n    packageType: \"Image\",\n    securityGroupId: defaultSecurityGroup.id,\n    vpcId: defaultNetwork.id,\n    vswitchId: defaultSwitch.id,\n    timezone: \"Asia/Beijing\",\n    replicas: 5,\n    cpu: 500,\n    memory: 2048,\n});\nconst defaultApplicationScalingRule = new alicloud.sae.ApplicationScalingRule(\"default\", {\n    appId: defaultApplication.id,\n    scalingRuleName: name,\n    scalingRuleEnable: true,\n    scalingRuleType: \"mix\",\n    minReadyInstances: 3,\n    minReadyInstanceRatio: -1,\n    scalingRuleTimer: {\n        period: \"* * *\",\n        schedules: [\n            {\n                atTime: \"08:00\",\n                maxReplicas: 10,\n                minReplicas: 3,\n            },\n            {\n                atTime: \"20:00\",\n                maxReplicas: 50,\n                minReplicas: 3,\n            },\n        ],\n    },\n    scalingRuleMetric: {\n        maxReplicas: 50,\n        minReplicas: 3,\n        metrics: [\n            {\n                metricType: \"CPU\",\n                metricTargetAverageUtilization: 20,\n            },\n            {\n                metricType: \"MEMORY\",\n                metricTargetAverageUtilization: 30,\n            },\n            {\n                metricType: \"tcpActiveConn\",\n                metricTargetAverageUtilization: 20,\n            },\n        ],\n        scaleUpRules: {\n            step: 10,\n            disabled: false,\n            stabilizationWindowSeconds: 0,\n        },\n        scaleDownRules: {\n            step: 10,\n            disabled: false,\n            stabilizationWindowSeconds: 10,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_namespace = alicloud.sae.Namespace(\"default\",\n    namespace_id=f\"{default.regions[0].id}:example{default_integer['result']}\",\n    namespace_name=name,\n    namespace_description=name,\n    enable_micro_registration=False)\ndefault_application = alicloud.sae.Application(\"default\",\n    app_description=name,\n    app_name=f\"{name}-{default_integer['result']}\",\n    namespace_id=default_namespace.id,\n    image_url=f\"registry-vpc.{default.regions[0].id}.aliyuncs.com/sae-demo-image/consumer:1.0\",\n    package_type=\"Image\",\n    security_group_id=default_security_group.id,\n    vpc_id=default_network.id,\n    vswitch_id=default_switch.id,\n    timezone=\"Asia/Beijing\",\n    replicas=5,\n    cpu=500,\n    memory=2048)\ndefault_application_scaling_rule = alicloud.sae.ApplicationScalingRule(\"default\",\n    app_id=default_application.id,\n    scaling_rule_name=name,\n    scaling_rule_enable=True,\n    scaling_rule_type=\"mix\",\n    min_ready_instances=3,\n    min_ready_instance_ratio=-1,\n    scaling_rule_timer={\n        \"period\": \"* * *\",\n        \"schedules\": [\n            {\n                \"at_time\": \"08:00\",\n                \"max_replicas\": 10,\n                \"min_replicas\": 3,\n            },\n            {\n                \"at_time\": \"20:00\",\n                \"max_replicas\": 50,\n                \"min_replicas\": 3,\n            },\n        ],\n    },\n    scaling_rule_metric={\n        \"max_replicas\": 50,\n        \"min_replicas\": 3,\n        \"metrics\": [\n            {\n                \"metric_type\": \"CPU\",\n                \"metric_target_average_utilization\": 20,\n            },\n            {\n                \"metric_type\": \"MEMORY\",\n                \"metric_target_average_utilization\": 30,\n            },\n            {\n                \"metric_type\": \"tcpActiveConn\",\n                \"metric_target_average_utilization\": 20,\n            },\n        ],\n        \"scale_up_rules\": {\n            \"step\": 10,\n            \"disabled\": False,\n            \"stabilization_window_seconds\": 0,\n        },\n        \"scale_down_rules\": {\n            \"step\": 10,\n            \"disabled\": False,\n            \"stabilization_window_seconds\": 10,\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultNamespace = new AliCloud.Sae.Namespace(\"default\", new()\n    {\n        NamespaceId = @default.Apply(@default =\u003e $\"{@default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}:example{defaultInteger.Result}\"),\n        NamespaceName = name,\n        NamespaceDescription = name,\n        EnableMicroRegistration = false,\n    });\n\n    var defaultApplication = new AliCloud.Sae.Application(\"default\", new()\n    {\n        AppDescription = name,\n        AppName = $\"{name}-{defaultInteger.Result}\",\n        NamespaceId = defaultNamespace.Id,\n        ImageUrl = @default.Apply(@default =\u003e $\"registry-vpc.{@default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}.aliyuncs.com/sae-demo-image/consumer:1.0\"),\n        PackageType = \"Image\",\n        SecurityGroupId = defaultSecurityGroup.Id,\n        VpcId = defaultNetwork.Id,\n        VswitchId = defaultSwitch.Id,\n        Timezone = \"Asia/Beijing\",\n        Replicas = 5,\n        Cpu = 500,\n        Memory = 2048,\n    });\n\n    var defaultApplicationScalingRule = new AliCloud.Sae.ApplicationScalingRule(\"default\", new()\n    {\n        AppId = defaultApplication.Id,\n        ScalingRuleName = name,\n        ScalingRuleEnable = true,\n        ScalingRuleType = \"mix\",\n        MinReadyInstances = 3,\n        MinReadyInstanceRatio = -1,\n        ScalingRuleTimer = new AliCloud.Sae.Inputs.ApplicationScalingRuleScalingRuleTimerArgs\n        {\n            Period = \"* * *\",\n            Schedules = new[]\n            {\n                new AliCloud.Sae.Inputs.ApplicationScalingRuleScalingRuleTimerScheduleArgs\n                {\n                    AtTime = \"08:00\",\n                    MaxReplicas = 10,\n                    MinReplicas = 3,\n                },\n                new AliCloud.Sae.Inputs.ApplicationScalingRuleScalingRuleTimerScheduleArgs\n                {\n                    AtTime = \"20:00\",\n                    MaxReplicas = 50,\n                    MinReplicas = 3,\n                },\n            },\n        },\n        ScalingRuleMetric = new AliCloud.Sae.Inputs.ApplicationScalingRuleScalingRuleMetricArgs\n        {\n            MaxReplicas = 50,\n            MinReplicas = 3,\n            Metrics = new[]\n            {\n                new AliCloud.Sae.Inputs.ApplicationScalingRuleScalingRuleMetricMetricArgs\n                {\n                    MetricType = \"CPU\",\n                    MetricTargetAverageUtilization = 20,\n                },\n                new AliCloud.Sae.Inputs.ApplicationScalingRuleScalingRuleMetricMetricArgs\n                {\n                    MetricType = \"MEMORY\",\n                    MetricTargetAverageUtilization = 30,\n                },\n                new AliCloud.Sae.Inputs.ApplicationScalingRuleScalingRuleMetricMetricArgs\n                {\n                    MetricType = \"tcpActiveConn\",\n                    MetricTargetAverageUtilization = 20,\n                },\n            },\n            ScaleUpRules = new AliCloud.Sae.Inputs.ApplicationScalingRuleScalingRuleMetricScaleUpRulesArgs\n            {\n                Step = 10,\n                Disabled = false,\n                StabilizationWindowSeconds = 0,\n            },\n            ScaleDownRules = new AliCloud.Sae.Inputs.ApplicationScalingRuleScalingRuleMetricScaleDownRulesArgs\n            {\n                Step = 10,\n                Disabled = false,\n                StabilizationWindowSeconds = 10,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sae\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNamespace, err := sae.NewNamespace(ctx, \"default\", \u0026sae.NamespaceArgs{\n\t\t\tNamespaceId:             pulumi.Sprintf(\"%v:example%v\", _default.Regions[0].Id, defaultInteger.Result),\n\t\t\tNamespaceName:           pulumi.String(name),\n\t\t\tNamespaceDescription:    pulumi.String(name),\n\t\t\tEnableMicroRegistration: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplication, err := sae.NewApplication(ctx, \"default\", \u0026sae.ApplicationArgs{\n\t\t\tAppDescription:  pulumi.String(name),\n\t\t\tAppName:         pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tNamespaceId:     defaultNamespace.ID(),\n\t\t\tImageUrl:        pulumi.Sprintf(\"registry-vpc.%v.aliyuncs.com/sae-demo-image/consumer:1.0\", _default.Regions[0].Id),\n\t\t\tPackageType:     pulumi.String(\"Image\"),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\tTimezone:        pulumi.String(\"Asia/Beijing\"),\n\t\t\tReplicas:        pulumi.Int(5),\n\t\t\tCpu:             pulumi.Int(500),\n\t\t\tMemory:          pulumi.Int(2048),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sae.NewApplicationScalingRule(ctx, \"default\", \u0026sae.ApplicationScalingRuleArgs{\n\t\t\tAppId:                 defaultApplication.ID(),\n\t\t\tScalingRuleName:       pulumi.String(name),\n\t\t\tScalingRuleEnable:     pulumi.Bool(true),\n\t\t\tScalingRuleType:       pulumi.String(\"mix\"),\n\t\t\tMinReadyInstances:     pulumi.Int(3),\n\t\t\tMinReadyInstanceRatio: pulumi.Int(-1),\n\t\t\tScalingRuleTimer: \u0026sae.ApplicationScalingRuleScalingRuleTimerArgs{\n\t\t\t\tPeriod: pulumi.String(\"* * *\"),\n\t\t\t\tSchedules: sae.ApplicationScalingRuleScalingRuleTimerScheduleArray{\n\t\t\t\t\t\u0026sae.ApplicationScalingRuleScalingRuleTimerScheduleArgs{\n\t\t\t\t\t\tAtTime:      pulumi.String(\"08:00\"),\n\t\t\t\t\t\tMaxReplicas: pulumi.Int(10),\n\t\t\t\t\t\tMinReplicas: pulumi.Int(3),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026sae.ApplicationScalingRuleScalingRuleTimerScheduleArgs{\n\t\t\t\t\t\tAtTime:      pulumi.String(\"20:00\"),\n\t\t\t\t\t\tMaxReplicas: pulumi.Int(50),\n\t\t\t\t\t\tMinReplicas: pulumi.Int(3),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tScalingRuleMetric: \u0026sae.ApplicationScalingRuleScalingRuleMetricArgs{\n\t\t\t\tMaxReplicas: pulumi.Int(50),\n\t\t\t\tMinReplicas: pulumi.Int(3),\n\t\t\t\tMetrics: sae.ApplicationScalingRuleScalingRuleMetricMetricArray{\n\t\t\t\t\t\u0026sae.ApplicationScalingRuleScalingRuleMetricMetricArgs{\n\t\t\t\t\t\tMetricType:                     pulumi.String(\"CPU\"),\n\t\t\t\t\t\tMetricTargetAverageUtilization: pulumi.Int(20),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026sae.ApplicationScalingRuleScalingRuleMetricMetricArgs{\n\t\t\t\t\t\tMetricType:                     pulumi.String(\"MEMORY\"),\n\t\t\t\t\t\tMetricTargetAverageUtilization: pulumi.Int(30),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026sae.ApplicationScalingRuleScalingRuleMetricMetricArgs{\n\t\t\t\t\t\tMetricType:                     pulumi.String(\"tcpActiveConn\"),\n\t\t\t\t\t\tMetricTargetAverageUtilization: pulumi.Int(20),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tScaleUpRules: \u0026sae.ApplicationScalingRuleScalingRuleMetricScaleUpRulesArgs{\n\t\t\t\t\tStep:                       pulumi.Int(10),\n\t\t\t\t\tDisabled:                   pulumi.Bool(false),\n\t\t\t\t\tStabilizationWindowSeconds: pulumi.Int(0),\n\t\t\t\t},\n\t\t\t\tScaleDownRules: \u0026sae.ApplicationScalingRuleScalingRuleMetricScaleDownRulesArgs{\n\t\t\t\t\tStep:                       pulumi.Int(10),\n\t\t\t\t\tDisabled:                   pulumi.Bool(false),\n\t\t\t\t\tStabilizationWindowSeconds: pulumi.Int(10),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.sae.Namespace;\nimport com.pulumi.alicloud.sae.NamespaceArgs;\nimport com.pulumi.alicloud.sae.Application;\nimport com.pulumi.alicloud.sae.ApplicationArgs;\nimport com.pulumi.alicloud.sae.ApplicationScalingRule;\nimport com.pulumi.alicloud.sae.ApplicationScalingRuleArgs;\nimport com.pulumi.alicloud.sae.inputs.ApplicationScalingRuleScalingRuleTimerArgs;\nimport com.pulumi.alicloud.sae.inputs.ApplicationScalingRuleScalingRuleMetricArgs;\nimport com.pulumi.alicloud.sae.inputs.ApplicationScalingRuleScalingRuleMetricScaleUpRulesArgs;\nimport com.pulumi.alicloud.sae.inputs.ApplicationScalingRuleScalingRuleMetricScaleDownRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultNamespace = new Namespace(\"defaultNamespace\", NamespaceArgs.builder()\n            .namespaceId(String.format(\"%s:example%s\", default_.regions()[0].id(),defaultInteger.result()))\n            .namespaceName(name)\n            .namespaceDescription(name)\n            .enableMicroRegistration(false)\n            .build());\n\n        var defaultApplication = new Application(\"defaultApplication\", ApplicationArgs.builder()\n            .appDescription(name)\n            .appName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .namespaceId(defaultNamespace.id())\n            .imageUrl(String.format(\"registry-vpc.%s.aliyuncs.com/sae-demo-image/consumer:1.0\", default_.regions()[0].id()))\n            .packageType(\"Image\")\n            .securityGroupId(defaultSecurityGroup.id())\n            .vpcId(defaultNetwork.id())\n            .vswitchId(defaultSwitch.id())\n            .timezone(\"Asia/Beijing\")\n            .replicas(5)\n            .cpu(500)\n            .memory(2048)\n            .build());\n\n        var defaultApplicationScalingRule = new ApplicationScalingRule(\"defaultApplicationScalingRule\", ApplicationScalingRuleArgs.builder()\n            .appId(defaultApplication.id())\n            .scalingRuleName(name)\n            .scalingRuleEnable(true)\n            .scalingRuleType(\"mix\")\n            .minReadyInstances(3)\n            .minReadyInstanceRatio(-1)\n            .scalingRuleTimer(ApplicationScalingRuleScalingRuleTimerArgs.builder()\n                .period(\"* * *\")\n                .schedules(                \n                    ApplicationScalingRuleScalingRuleTimerScheduleArgs.builder()\n                        .atTime(\"08:00\")\n                        .maxReplicas(10)\n                        .minReplicas(3)\n                        .build(),\n                    ApplicationScalingRuleScalingRuleTimerScheduleArgs.builder()\n                        .atTime(\"20:00\")\n                        .maxReplicas(50)\n                        .minReplicas(3)\n                        .build())\n                .build())\n            .scalingRuleMetric(ApplicationScalingRuleScalingRuleMetricArgs.builder()\n                .maxReplicas(50)\n                .minReplicas(3)\n                .metrics(                \n                    ApplicationScalingRuleScalingRuleMetricMetricArgs.builder()\n                        .metricType(\"CPU\")\n                        .metricTargetAverageUtilization(20)\n                        .build(),\n                    ApplicationScalingRuleScalingRuleMetricMetricArgs.builder()\n                        .metricType(\"MEMORY\")\n                        .metricTargetAverageUtilization(30)\n                        .build(),\n                    ApplicationScalingRuleScalingRuleMetricMetricArgs.builder()\n                        .metricType(\"tcpActiveConn\")\n                        .metricTargetAverageUtilization(20)\n                        .build())\n                .scaleUpRules(ApplicationScalingRuleScalingRuleMetricScaleUpRulesArgs.builder()\n                    .step(10)\n                    .disabled(false)\n                    .stabilizationWindowSeconds(0)\n                    .build())\n                .scaleDownRules(ApplicationScalingRuleScalingRuleMetricScaleDownRulesArgs.builder()\n                    .step(10)\n                    .disabled(false)\n                    .stabilizationWindowSeconds(10)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n  defaultNamespace:\n    type: alicloud:sae:Namespace\n    name: default\n    properties:\n      namespaceId: ${default.regions[0].id}:example${defaultInteger.result}\n      namespaceName: ${name}\n      namespaceDescription: ${name}\n      enableMicroRegistration: false\n  defaultApplication:\n    type: alicloud:sae:Application\n    name: default\n    properties:\n      appDescription: ${name}\n      appName: ${name}-${defaultInteger.result}\n      namespaceId: ${defaultNamespace.id}\n      imageUrl: registry-vpc.${default.regions[0].id}.aliyuncs.com/sae-demo-image/consumer:1.0\n      packageType: Image\n      securityGroupId: ${defaultSecurityGroup.id}\n      vpcId: ${defaultNetwork.id}\n      vswitchId: ${defaultSwitch.id}\n      timezone: Asia/Beijing\n      replicas: '5'\n      cpu: '500'\n      memory: '2048'\n  defaultApplicationScalingRule:\n    type: alicloud:sae:ApplicationScalingRule\n    name: default\n    properties:\n      appId: ${defaultApplication.id}\n      scalingRuleName: ${name}\n      scalingRuleEnable: true\n      scalingRuleType: mix\n      minReadyInstances: '3'\n      minReadyInstanceRatio: '-1'\n      scalingRuleTimer:\n        period: '* * *'\n        schedules:\n          - atTime: 08:00\n            maxReplicas: 10\n            minReplicas: 3\n          - atTime: 20:00\n            maxReplicas: 50\n            minReplicas: 3\n      scalingRuleMetric:\n        maxReplicas: 50\n        minReplicas: 3\n        metrics:\n          - metricType: CPU\n            metricTargetAverageUtilization: 20\n          - metricType: MEMORY\n            metricTargetAverageUtilization: 30\n          - metricType: tcpActiveConn\n            metricTargetAverageUtilization: 20\n        scaleUpRules:\n          step: 10\n          disabled: false\n          stabilizationWindowSeconds: 0\n        scaleDownRules:\n          step: 10\n          disabled: false\n          stabilizationWindowSeconds: 10\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nServerless App Engine (SAE) Application Scaling Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sae/applicationScalingRule:ApplicationScalingRule example \u003capp_id\u003e:\u003cscaling_rule_name\u003e\n```\n\n","properties":{"appId":{"type":"string","description":"Application ID.\n"},"minReadyInstanceRatio":{"type":"integer","description":"The min ready instance ratio.\n"},"minReadyInstances":{"type":"integer","description":"The min ready instances.\n"},"scalingRuleEnable":{"type":"boolean","description":"True whether the auto scaling policy is enabled. The value description is as follows: true: enabled state. false: disabled status. Valid values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"scalingRuleMetric":{"$ref":"#/types/alicloud:sae/ApplicationScalingRuleScalingRuleMetric:ApplicationScalingRuleScalingRuleMetric","description":"Monitor the configuration of the indicator elasticity strategy. See \u003cspan pulumi-lang-nodejs=\"`scalingRuleMetric`\" pulumi-lang-dotnet=\"`ScalingRuleMetric`\" pulumi-lang-go=\"`scalingRuleMetric`\" pulumi-lang-python=\"`scaling_rule_metric`\" pulumi-lang-yaml=\"`scalingRuleMetric`\" pulumi-lang-java=\"`scalingRuleMetric`\"\u003e`scaling_rule_metric`\u003c/span\u003e below.\n"},"scalingRuleName":{"type":"string","description":"The name of a custom elastic scaling policy. In the application, the policy name cannot be repeated. It must start with a lowercase letter, and can only contain lowercase letters, numbers, and dashes (-), and no more than 32 characters. After the scaling policy is successfully created, the policy name cannot be modified.\n"},"scalingRuleTimer":{"$ref":"#/types/alicloud:sae/ApplicationScalingRuleScalingRuleTimer:ApplicationScalingRuleScalingRuleTimer","description":"Configuration of Timing Resilient Policies. See \u003cspan pulumi-lang-nodejs=\"`scalingRuleTimer`\" pulumi-lang-dotnet=\"`ScalingRuleTimer`\" pulumi-lang-go=\"`scalingRuleTimer`\" pulumi-lang-python=\"`scaling_rule_timer`\" pulumi-lang-yaml=\"`scalingRuleTimer`\" pulumi-lang-java=\"`scalingRuleTimer`\"\u003e`scaling_rule_timer`\u003c/span\u003e below.\n"},"scalingRuleType":{"type":"string","description":"Flexible strategy type. Valid values: \u003cspan pulumi-lang-nodejs=\"`mix`\" pulumi-lang-dotnet=\"`Mix`\" pulumi-lang-go=\"`mix`\" pulumi-lang-python=\"`mix`\" pulumi-lang-yaml=\"`mix`\" pulumi-lang-java=\"`mix`\"\u003e`mix`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`timing`\" pulumi-lang-dotnet=\"`Timing`\" pulumi-lang-go=\"`timing`\" pulumi-lang-python=\"`timing`\" pulumi-lang-yaml=\"`timing`\" pulumi-lang-java=\"`timing`\"\u003e`timing`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`metric`\" pulumi-lang-dotnet=\"`Metric`\" pulumi-lang-go=\"`metric`\" pulumi-lang-python=\"`metric`\" pulumi-lang-yaml=\"`metric`\" pulumi-lang-java=\"`metric`\"\u003e`metric`\u003c/span\u003e.\n"}},"required":["appId","scalingRuleEnable","scalingRuleName","scalingRuleType"],"inputProperties":{"appId":{"type":"string","description":"Application ID.\n","willReplaceOnChanges":true},"minReadyInstanceRatio":{"type":"integer","description":"The min ready instance ratio.\n"},"minReadyInstances":{"type":"integer","description":"The min ready instances.\n"},"scalingRuleEnable":{"type":"boolean","description":"True whether the auto scaling policy is enabled. The value description is as follows: true: enabled state. false: disabled status. Valid values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"scalingRuleMetric":{"$ref":"#/types/alicloud:sae/ApplicationScalingRuleScalingRuleMetric:ApplicationScalingRuleScalingRuleMetric","description":"Monitor the configuration of the indicator elasticity strategy. See \u003cspan pulumi-lang-nodejs=\"`scalingRuleMetric`\" pulumi-lang-dotnet=\"`ScalingRuleMetric`\" pulumi-lang-go=\"`scalingRuleMetric`\" pulumi-lang-python=\"`scaling_rule_metric`\" pulumi-lang-yaml=\"`scalingRuleMetric`\" pulumi-lang-java=\"`scalingRuleMetric`\"\u003e`scaling_rule_metric`\u003c/span\u003e below.\n"},"scalingRuleName":{"type":"string","description":"The name of a custom elastic scaling policy. In the application, the policy name cannot be repeated. It must start with a lowercase letter, and can only contain lowercase letters, numbers, and dashes (-), and no more than 32 characters. After the scaling policy is successfully created, the policy name cannot be modified.\n","willReplaceOnChanges":true},"scalingRuleTimer":{"$ref":"#/types/alicloud:sae/ApplicationScalingRuleScalingRuleTimer:ApplicationScalingRuleScalingRuleTimer","description":"Configuration of Timing Resilient Policies. See \u003cspan pulumi-lang-nodejs=\"`scalingRuleTimer`\" pulumi-lang-dotnet=\"`ScalingRuleTimer`\" pulumi-lang-go=\"`scalingRuleTimer`\" pulumi-lang-python=\"`scaling_rule_timer`\" pulumi-lang-yaml=\"`scalingRuleTimer`\" pulumi-lang-java=\"`scalingRuleTimer`\"\u003e`scaling_rule_timer`\u003c/span\u003e below.\n"},"scalingRuleType":{"type":"string","description":"Flexible strategy type. Valid values: \u003cspan pulumi-lang-nodejs=\"`mix`\" pulumi-lang-dotnet=\"`Mix`\" pulumi-lang-go=\"`mix`\" pulumi-lang-python=\"`mix`\" pulumi-lang-yaml=\"`mix`\" pulumi-lang-java=\"`mix`\"\u003e`mix`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`timing`\" pulumi-lang-dotnet=\"`Timing`\" pulumi-lang-go=\"`timing`\" pulumi-lang-python=\"`timing`\" pulumi-lang-yaml=\"`timing`\" pulumi-lang-java=\"`timing`\"\u003e`timing`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`metric`\" pulumi-lang-dotnet=\"`Metric`\" pulumi-lang-go=\"`metric`\" pulumi-lang-python=\"`metric`\" pulumi-lang-yaml=\"`metric`\" pulumi-lang-java=\"`metric`\"\u003e`metric`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["appId","scalingRuleName","scalingRuleType"],"stateInputs":{"description":"Input properties used for looking up and filtering ApplicationScalingRule resources.\n","properties":{"appId":{"type":"string","description":"Application ID.\n","willReplaceOnChanges":true},"minReadyInstanceRatio":{"type":"integer","description":"The min ready instance ratio.\n"},"minReadyInstances":{"type":"integer","description":"The min ready instances.\n"},"scalingRuleEnable":{"type":"boolean","description":"True whether the auto scaling policy is enabled. The value description is as follows: true: enabled state. false: disabled status. Valid values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"scalingRuleMetric":{"$ref":"#/types/alicloud:sae/ApplicationScalingRuleScalingRuleMetric:ApplicationScalingRuleScalingRuleMetric","description":"Monitor the configuration of the indicator elasticity strategy. See \u003cspan pulumi-lang-nodejs=\"`scalingRuleMetric`\" pulumi-lang-dotnet=\"`ScalingRuleMetric`\" pulumi-lang-go=\"`scalingRuleMetric`\" pulumi-lang-python=\"`scaling_rule_metric`\" pulumi-lang-yaml=\"`scalingRuleMetric`\" pulumi-lang-java=\"`scalingRuleMetric`\"\u003e`scaling_rule_metric`\u003c/span\u003e below.\n"},"scalingRuleName":{"type":"string","description":"The name of a custom elastic scaling policy. In the application, the policy name cannot be repeated. It must start with a lowercase letter, and can only contain lowercase letters, numbers, and dashes (-), and no more than 32 characters. After the scaling policy is successfully created, the policy name cannot be modified.\n","willReplaceOnChanges":true},"scalingRuleTimer":{"$ref":"#/types/alicloud:sae/ApplicationScalingRuleScalingRuleTimer:ApplicationScalingRuleScalingRuleTimer","description":"Configuration of Timing Resilient Policies. See \u003cspan pulumi-lang-nodejs=\"`scalingRuleTimer`\" pulumi-lang-dotnet=\"`ScalingRuleTimer`\" pulumi-lang-go=\"`scalingRuleTimer`\" pulumi-lang-python=\"`scaling_rule_timer`\" pulumi-lang-yaml=\"`scalingRuleTimer`\" pulumi-lang-java=\"`scalingRuleTimer`\"\u003e`scaling_rule_timer`\u003c/span\u003e below.\n"},"scalingRuleType":{"type":"string","description":"Flexible strategy type. Valid values: \u003cspan pulumi-lang-nodejs=\"`mix`\" pulumi-lang-dotnet=\"`Mix`\" pulumi-lang-go=\"`mix`\" pulumi-lang-python=\"`mix`\" pulumi-lang-yaml=\"`mix`\" pulumi-lang-java=\"`mix`\"\u003e`mix`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`timing`\" pulumi-lang-dotnet=\"`Timing`\" pulumi-lang-go=\"`timing`\" pulumi-lang-python=\"`timing`\" pulumi-lang-yaml=\"`timing`\" pulumi-lang-java=\"`timing`\"\u003e`timing`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`metric`\" pulumi-lang-dotnet=\"`Metric`\" pulumi-lang-go=\"`metric`\" pulumi-lang-python=\"`metric`\" pulumi-lang-yaml=\"`metric`\" pulumi-lang-java=\"`metric`\"\u003e`metric`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:sae/configMap:ConfigMap":{"description":"Provides a Serverless App Engine (SAE) Config Map resource.\n\nFor information about Serverless App Engine (SAE) Config Map and how to use it, see [What is Config Map](https://www.alibabacloud.com/help/en/sae/latest/create-configmap).\n\n\u003e **NOTE:** Available since v1.130.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultNamespace = new alicloud.sae.Namespace(\"default\", {\n    namespaceId: _default.then(_default =\u003e `${_default.regions?.[0]?.id}:example${defaultInteger.result}`),\n    namespaceName: name,\n    namespaceDescription: name,\n    enableMicroRegistration: false,\n});\nconst defaultConfigMap = new alicloud.sae.ConfigMap(\"default\", {\n    data: JSON.stringify({\n        \"env.home\": \"/root\",\n        \"env.shell\": \"/bin/sh\",\n    }),\n    name: name,\n    namespaceId: defaultNamespace.namespaceId,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_namespace = alicloud.sae.Namespace(\"default\",\n    namespace_id=f\"{default.regions[0].id}:example{default_integer['result']}\",\n    namespace_name=name,\n    namespace_description=name,\n    enable_micro_registration=False)\ndefault_config_map = alicloud.sae.ConfigMap(\"default\",\n    data=json.dumps({\n        \"env.home\": \"/root\",\n        \"env.shell\": \"/bin/sh\",\n    }),\n    name=name,\n    namespace_id=default_namespace.namespace_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultNamespace = new AliCloud.Sae.Namespace(\"default\", new()\n    {\n        NamespaceId = @default.Apply(@default =\u003e $\"{@default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}:example{defaultInteger.Result}\"),\n        NamespaceName = name,\n        NamespaceDescription = name,\n        EnableMicroRegistration = false,\n    });\n\n    var defaultConfigMap = new AliCloud.Sae.ConfigMap(\"default\", new()\n    {\n        Data = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"env.home\"] = \"/root\",\n            [\"env.shell\"] = \"/bin/sh\",\n        }),\n        Name = name,\n        NamespaceId = defaultNamespace.NamespaceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sae\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNamespace, err := sae.NewNamespace(ctx, \"default\", \u0026sae.NamespaceArgs{\n\t\t\tNamespaceId:             pulumi.Sprintf(\"%v:example%v\", _default.Regions[0].Id, defaultInteger.Result),\n\t\t\tNamespaceName:           pulumi.String(name),\n\t\t\tNamespaceDescription:    pulumi.String(name),\n\t\t\tEnableMicroRegistration: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"env.home\":  \"/root\",\n\t\t\t\"env.shell\": \"/bin/sh\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = sae.NewConfigMap(ctx, \"default\", \u0026sae.ConfigMapArgs{\n\t\t\tData:        pulumi.String(json0),\n\t\t\tName:        pulumi.String(name),\n\t\t\tNamespaceId: defaultNamespace.NamespaceId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.sae.Namespace;\nimport com.pulumi.alicloud.sae.NamespaceArgs;\nimport com.pulumi.alicloud.sae.ConfigMap;\nimport com.pulumi.alicloud.sae.ConfigMapArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var defaultNamespace = new Namespace(\"defaultNamespace\", NamespaceArgs.builder()\n            .namespaceId(String.format(\"%s:example%s\", default_.regions()[0].id(),defaultInteger.result()))\n            .namespaceName(name)\n            .namespaceDescription(name)\n            .enableMicroRegistration(false)\n            .build());\n\n        var defaultConfigMap = new ConfigMap(\"defaultConfigMap\", ConfigMapArgs.builder()\n            .data(serializeJson(\n                jsonObject(\n                    jsonProperty(\"env.home\", \"/root\"),\n                    jsonProperty(\"env.shell\", \"/bin/sh\")\n                )))\n            .name(name)\n            .namespaceId(defaultNamespace.namespaceId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultNamespace:\n    type: alicloud:sae:Namespace\n    name: default\n    properties:\n      namespaceId: ${default.regions[0].id}:example${defaultInteger.result}\n      namespaceName: ${name}\n      namespaceDescription: ${name}\n      enableMicroRegistration: false\n  defaultConfigMap:\n    type: alicloud:sae:ConfigMap\n    name: default\n    properties:\n      data:\n        fn::toJSON:\n          env.home: /root\n          env.shell: /bin/sh\n      name: ${name}\n      namespaceId: ${defaultNamespace.namespaceId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nServerless App Engine (SAE) Config Map can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sae/configMap:ConfigMap example \u003cid\u003e\n```\n\n","properties":{"data":{"type":"string","description":"ConfigMap instance data.\n"},"description":{"type":"string","description":"The Description of ConfigMap.\n"},"name":{"type":"string","description":"ConfigMap instance name.\n"},"namespaceId":{"type":"string","description":"The NamespaceId of ConfigMap.It can contain 2 to 32 lowercase characters.The value is in format `{RegionId}:{namespace}`\n"}},"required":["data","name","namespaceId"],"inputProperties":{"data":{"type":"string","description":"ConfigMap instance data.\n"},"description":{"type":"string","description":"The Description of ConfigMap.\n"},"name":{"type":"string","description":"ConfigMap instance name.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The NamespaceId of ConfigMap.It can contain 2 to 32 lowercase characters.The value is in format `{RegionId}:{namespace}`\n","willReplaceOnChanges":true}},"requiredInputs":["data","namespaceId"],"stateInputs":{"description":"Input properties used for looking up and filtering ConfigMap resources.\n","properties":{"data":{"type":"string","description":"ConfigMap instance data.\n"},"description":{"type":"string","description":"The Description of ConfigMap.\n"},"name":{"type":"string","description":"ConfigMap instance name.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The NamespaceId of ConfigMap.It can contain 2 to 32 lowercase characters.The value is in format `{RegionId}:{namespace}`\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:sae/greyTagRoute:GreyTagRoute":{"description":"Provides a Serverless App Engine (SAE) GreyTagRoute resource.\n\nFor information about Serverless App Engine (SAE) GreyTagRoute and how to use it, see [What is GreyTagRoute](https://www.alibabacloud.com/help/en/sae/latest/create-grey-tag-route).\n\n\u003e **NOTE:** Available since v1.160.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultGetZones = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultNamespace = new alicloud.sae.Namespace(\"default\", {\n    namespaceId: _default.then(_default =\u003e `${_default.regions?.[0]?.id}:example${defaultInteger.result}`),\n    namespaceName: name,\n    namespaceDescription: name,\n    enableMicroRegistration: false,\n});\nconst defaultApplication = new alicloud.sae.Application(\"default\", {\n    appDescription: name,\n    appName: `${name}-${defaultInteger.result}`,\n    namespaceId: defaultNamespace.id,\n    imageUrl: _default.then(_default =\u003e `registry-vpc.${_default.regions?.[0]?.id}.aliyuncs.com/sae-demo-image/consumer:1.0`),\n    packageType: \"Image\",\n    securityGroupId: defaultSecurityGroup.id,\n    vpcId: defaultNetwork.id,\n    vswitchId: defaultSwitch.id,\n    timezone: \"Asia/Beijing\",\n    replicas: 5,\n    cpu: 500,\n    memory: 2048,\n});\nconst defaultGreyTagRoute = new alicloud.sae.GreyTagRoute(\"default\", {\n    greyTagRouteName: name,\n    description: name,\n    appId: defaultApplication.id,\n    scRules: [{\n        items: [{\n            type: \"param\",\n            name: \"tfexample\",\n            operator: \"rawvalue\",\n            value: \"example\",\n            cond: \"==\",\n        }],\n        path: \"/tf/example\",\n        condition: \"AND\",\n    }],\n    dubboRules: [{\n        items: [{\n            cond: \"==\",\n            expr: \".key1\",\n            index: 1,\n            operator: \"rawvalue\",\n            value: \"value1\",\n        }],\n        condition: \"OR\",\n        group: \"DUBBO\",\n        methodName: \"example\",\n        serviceName: \"com.example.service\",\n        version: \"1.0.0\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault = alicloud.get_regions(current=True)\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_namespace = alicloud.sae.Namespace(\"default\",\n    namespace_id=f\"{default.regions[0].id}:example{default_integer['result']}\",\n    namespace_name=name,\n    namespace_description=name,\n    enable_micro_registration=False)\ndefault_application = alicloud.sae.Application(\"default\",\n    app_description=name,\n    app_name=f\"{name}-{default_integer['result']}\",\n    namespace_id=default_namespace.id,\n    image_url=f\"registry-vpc.{default.regions[0].id}.aliyuncs.com/sae-demo-image/consumer:1.0\",\n    package_type=\"Image\",\n    security_group_id=default_security_group.id,\n    vpc_id=default_network.id,\n    vswitch_id=default_switch.id,\n    timezone=\"Asia/Beijing\",\n    replicas=5,\n    cpu=500,\n    memory=2048)\ndefault_grey_tag_route = alicloud.sae.GreyTagRoute(\"default\",\n    grey_tag_route_name=name,\n    description=name,\n    app_id=default_application.id,\n    sc_rules=[{\n        \"items\": [{\n            \"type\": \"param\",\n            \"name\": \"tfexample\",\n            \"operator\": \"rawvalue\",\n            \"value\": \"example\",\n            \"cond\": \"==\",\n        }],\n        \"path\": \"/tf/example\",\n        \"condition\": \"AND\",\n    }],\n    dubbo_rules=[{\n        \"items\": [{\n            \"cond\": \"==\",\n            \"expr\": \".key1\",\n            \"index\": 1,\n            \"operator\": \"rawvalue\",\n            \"value\": \"value1\",\n        }],\n        \"condition\": \"OR\",\n        \"group\": \"DUBBO\",\n        \"method_name\": \"example\",\n        \"service_name\": \"com.example.service\",\n        \"version\": \"1.0.0\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultNamespace = new AliCloud.Sae.Namespace(\"default\", new()\n    {\n        NamespaceId = @default.Apply(@default =\u003e $\"{@default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}:example{defaultInteger.Result}\"),\n        NamespaceName = name,\n        NamespaceDescription = name,\n        EnableMicroRegistration = false,\n    });\n\n    var defaultApplication = new AliCloud.Sae.Application(\"default\", new()\n    {\n        AppDescription = name,\n        AppName = $\"{name}-{defaultInteger.Result}\",\n        NamespaceId = defaultNamespace.Id,\n        ImageUrl = @default.Apply(@default =\u003e $\"registry-vpc.{@default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}.aliyuncs.com/sae-demo-image/consumer:1.0\"),\n        PackageType = \"Image\",\n        SecurityGroupId = defaultSecurityGroup.Id,\n        VpcId = defaultNetwork.Id,\n        VswitchId = defaultSwitch.Id,\n        Timezone = \"Asia/Beijing\",\n        Replicas = 5,\n        Cpu = 500,\n        Memory = 2048,\n    });\n\n    var defaultGreyTagRoute = new AliCloud.Sae.GreyTagRoute(\"default\", new()\n    {\n        GreyTagRouteName = name,\n        Description = name,\n        AppId = defaultApplication.Id,\n        ScRules = new[]\n        {\n            new AliCloud.Sae.Inputs.GreyTagRouteScRuleArgs\n            {\n                Items = new[]\n                {\n                    new AliCloud.Sae.Inputs.GreyTagRouteScRuleItemArgs\n                    {\n                        Type = \"param\",\n                        Name = \"tfexample\",\n                        Operator = \"rawvalue\",\n                        Value = \"example\",\n                        Cond = \"==\",\n                    },\n                },\n                Path = \"/tf/example\",\n                Condition = \"AND\",\n            },\n        },\n        DubboRules = new[]\n        {\n            new AliCloud.Sae.Inputs.GreyTagRouteDubboRuleArgs\n            {\n                Items = new[]\n                {\n                    new AliCloud.Sae.Inputs.GreyTagRouteDubboRuleItemArgs\n                    {\n                        Cond = \"==\",\n                        Expr = \".key1\",\n                        Index = 1,\n                        Operator = \"rawvalue\",\n                        Value = \"value1\",\n                    },\n                },\n                Condition = \"OR\",\n                Group = \"DUBBO\",\n                MethodName = \"example\",\n                ServiceName = \"com.example.service\",\n                Version = \"1.0.0\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sae\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNamespace, err := sae.NewNamespace(ctx, \"default\", \u0026sae.NamespaceArgs{\n\t\t\tNamespaceId:             pulumi.Sprintf(\"%v:example%v\", _default.Regions[0].Id, defaultInteger.Result),\n\t\t\tNamespaceName:           pulumi.String(name),\n\t\t\tNamespaceDescription:    pulumi.String(name),\n\t\t\tEnableMicroRegistration: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplication, err := sae.NewApplication(ctx, \"default\", \u0026sae.ApplicationArgs{\n\t\t\tAppDescription:  pulumi.String(name),\n\t\t\tAppName:         pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tNamespaceId:     defaultNamespace.ID(),\n\t\t\tImageUrl:        pulumi.Sprintf(\"registry-vpc.%v.aliyuncs.com/sae-demo-image/consumer:1.0\", _default.Regions[0].Id),\n\t\t\tPackageType:     pulumi.String(\"Image\"),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\tTimezone:        pulumi.String(\"Asia/Beijing\"),\n\t\t\tReplicas:        pulumi.Int(5),\n\t\t\tCpu:             pulumi.Int(500),\n\t\t\tMemory:          pulumi.Int(2048),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sae.NewGreyTagRoute(ctx, \"default\", \u0026sae.GreyTagRouteArgs{\n\t\t\tGreyTagRouteName: pulumi.String(name),\n\t\t\tDescription:      pulumi.String(name),\n\t\t\tAppId:            defaultApplication.ID(),\n\t\t\tScRules: sae.GreyTagRouteScRuleArray{\n\t\t\t\t\u0026sae.GreyTagRouteScRuleArgs{\n\t\t\t\t\tItems: sae.GreyTagRouteScRuleItemArray{\n\t\t\t\t\t\t\u0026sae.GreyTagRouteScRuleItemArgs{\n\t\t\t\t\t\t\tType:     pulumi.String(\"param\"),\n\t\t\t\t\t\t\tName:     pulumi.String(\"tfexample\"),\n\t\t\t\t\t\t\tOperator: pulumi.String(\"rawvalue\"),\n\t\t\t\t\t\t\tValue:    pulumi.String(\"example\"),\n\t\t\t\t\t\t\tCond:     pulumi.String(\"==\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tPath:      pulumi.String(\"/tf/example\"),\n\t\t\t\t\tCondition: pulumi.String(\"AND\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDubboRules: sae.GreyTagRouteDubboRuleArray{\n\t\t\t\t\u0026sae.GreyTagRouteDubboRuleArgs{\n\t\t\t\t\tItems: sae.GreyTagRouteDubboRuleItemArray{\n\t\t\t\t\t\t\u0026sae.GreyTagRouteDubboRuleItemArgs{\n\t\t\t\t\t\t\tCond:     pulumi.String(\"==\"),\n\t\t\t\t\t\t\tExpr:     pulumi.String(\".key1\"),\n\t\t\t\t\t\t\tIndex:    pulumi.Int(1),\n\t\t\t\t\t\t\tOperator: pulumi.String(\"rawvalue\"),\n\t\t\t\t\t\t\tValue:    pulumi.String(\"value1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tCondition:   pulumi.String(\"OR\"),\n\t\t\t\t\tGroup:       pulumi.String(\"DUBBO\"),\n\t\t\t\t\tMethodName:  pulumi.String(\"example\"),\n\t\t\t\t\tServiceName: pulumi.String(\"com.example.service\"),\n\t\t\t\t\tVersion:     pulumi.String(\"1.0.0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.sae.Namespace;\nimport com.pulumi.alicloud.sae.NamespaceArgs;\nimport com.pulumi.alicloud.sae.Application;\nimport com.pulumi.alicloud.sae.ApplicationArgs;\nimport com.pulumi.alicloud.sae.GreyTagRoute;\nimport com.pulumi.alicloud.sae.GreyTagRouteArgs;\nimport com.pulumi.alicloud.sae.inputs.GreyTagRouteScRuleArgs;\nimport com.pulumi.alicloud.sae.inputs.GreyTagRouteDubboRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultNamespace = new Namespace(\"defaultNamespace\", NamespaceArgs.builder()\n            .namespaceId(String.format(\"%s:example%s\", default_.regions()[0].id(),defaultInteger.result()))\n            .namespaceName(name)\n            .namespaceDescription(name)\n            .enableMicroRegistration(false)\n            .build());\n\n        var defaultApplication = new Application(\"defaultApplication\", ApplicationArgs.builder()\n            .appDescription(name)\n            .appName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .namespaceId(defaultNamespace.id())\n            .imageUrl(String.format(\"registry-vpc.%s.aliyuncs.com/sae-demo-image/consumer:1.0\", default_.regions()[0].id()))\n            .packageType(\"Image\")\n            .securityGroupId(defaultSecurityGroup.id())\n            .vpcId(defaultNetwork.id())\n            .vswitchId(defaultSwitch.id())\n            .timezone(\"Asia/Beijing\")\n            .replicas(5)\n            .cpu(500)\n            .memory(2048)\n            .build());\n\n        var defaultGreyTagRoute = new GreyTagRoute(\"defaultGreyTagRoute\", GreyTagRouteArgs.builder()\n            .greyTagRouteName(name)\n            .description(name)\n            .appId(defaultApplication.id())\n            .scRules(GreyTagRouteScRuleArgs.builder()\n                .items(GreyTagRouteScRuleItemArgs.builder()\n                    .type(\"param\")\n                    .name(\"tfexample\")\n                    .operator(\"rawvalue\")\n                    .value(\"example\")\n                    .cond(\"==\")\n                    .build())\n                .path(\"/tf/example\")\n                .condition(\"AND\")\n                .build())\n            .dubboRules(GreyTagRouteDubboRuleArgs.builder()\n                .items(GreyTagRouteDubboRuleItemArgs.builder()\n                    .cond(\"==\")\n                    .expr(\".key1\")\n                    .index(1)\n                    .operator(\"rawvalue\")\n                    .value(\"value1\")\n                    .build())\n                .condition(\"OR\")\n                .group(\"DUBBO\")\n                .methodName(\"example\")\n                .serviceName(\"com.example.service\")\n                .version(\"1.0.0\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n  defaultNamespace:\n    type: alicloud:sae:Namespace\n    name: default\n    properties:\n      namespaceId: ${default.regions[0].id}:example${defaultInteger.result}\n      namespaceName: ${name}\n      namespaceDescription: ${name}\n      enableMicroRegistration: false\n  defaultApplication:\n    type: alicloud:sae:Application\n    name: default\n    properties:\n      appDescription: ${name}\n      appName: ${name}-${defaultInteger.result}\n      namespaceId: ${defaultNamespace.id}\n      imageUrl: registry-vpc.${default.regions[0].id}.aliyuncs.com/sae-demo-image/consumer:1.0\n      packageType: Image\n      securityGroupId: ${defaultSecurityGroup.id}\n      vpcId: ${defaultNetwork.id}\n      vswitchId: ${defaultSwitch.id}\n      timezone: Asia/Beijing\n      replicas: '5'\n      cpu: '500'\n      memory: '2048'\n  defaultGreyTagRoute:\n    type: alicloud:sae:GreyTagRoute\n    name: default\n    properties:\n      greyTagRouteName: ${name}\n      description: ${name}\n      appId: ${defaultApplication.id}\n      scRules:\n        - items:\n            - type: param\n              name: tfexample\n              operator: rawvalue\n              value: example\n              cond: ==\n          path: /tf/example\n          condition: AND\n      dubboRules:\n        - items:\n            - cond: ==\n              expr: .key1\n              index: '1'\n              operator: rawvalue\n              value: value1\n          condition: OR\n          group: DUBBO\n          methodName: example\n          serviceName: com.example.service\n          version: 1.0.0\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nServerless App Engine (SAE) GreyTagRoute can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sae/greyTagRoute:GreyTagRoute example \u003cid\u003e\n```\n\n","properties":{"appId":{"type":"string","description":"The ID  of the SAE Application.\n"},"description":{"type":"string","description":"The description of GreyTagRoute.\n"},"dubboRules":{"type":"array","items":{"$ref":"#/types/alicloud:sae/GreyTagRouteDubboRule:GreyTagRouteDubboRule"},"description":"The grayscale rule created for Dubbo Application. See \u003cspan pulumi-lang-nodejs=\"`dubboRules`\" pulumi-lang-dotnet=\"`DubboRules`\" pulumi-lang-go=\"`dubboRules`\" pulumi-lang-python=\"`dubbo_rules`\" pulumi-lang-yaml=\"`dubboRules`\" pulumi-lang-java=\"`dubboRules`\"\u003e`dubbo_rules`\u003c/span\u003e below.\n"},"greyTagRouteName":{"type":"string","description":"The name of GreyTagRoute.\n"},"scRules":{"type":"array","items":{"$ref":"#/types/alicloud:sae/GreyTagRouteScRule:GreyTagRouteScRule"},"description":"The grayscale rule created for SpringCloud Application. See \u003cspan pulumi-lang-nodejs=\"`scRules`\" pulumi-lang-dotnet=\"`ScRules`\" pulumi-lang-go=\"`scRules`\" pulumi-lang-python=\"`sc_rules`\" pulumi-lang-yaml=\"`scRules`\" pulumi-lang-java=\"`scRules`\"\u003e`sc_rules`\u003c/span\u003e below.\n"}},"required":["appId","greyTagRouteName"],"inputProperties":{"appId":{"type":"string","description":"The ID  of the SAE Application.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of GreyTagRoute.\n"},"dubboRules":{"type":"array","items":{"$ref":"#/types/alicloud:sae/GreyTagRouteDubboRule:GreyTagRouteDubboRule"},"description":"The grayscale rule created for Dubbo Application. See \u003cspan pulumi-lang-nodejs=\"`dubboRules`\" pulumi-lang-dotnet=\"`DubboRules`\" pulumi-lang-go=\"`dubboRules`\" pulumi-lang-python=\"`dubbo_rules`\" pulumi-lang-yaml=\"`dubboRules`\" pulumi-lang-java=\"`dubboRules`\"\u003e`dubbo_rules`\u003c/span\u003e below.\n"},"greyTagRouteName":{"type":"string","description":"The name of GreyTagRoute.\n","willReplaceOnChanges":true},"scRules":{"type":"array","items":{"$ref":"#/types/alicloud:sae/GreyTagRouteScRule:GreyTagRouteScRule"},"description":"The grayscale rule created for SpringCloud Application. See \u003cspan pulumi-lang-nodejs=\"`scRules`\" pulumi-lang-dotnet=\"`ScRules`\" pulumi-lang-go=\"`scRules`\" pulumi-lang-python=\"`sc_rules`\" pulumi-lang-yaml=\"`scRules`\" pulumi-lang-java=\"`scRules`\"\u003e`sc_rules`\u003c/span\u003e below.\n"}},"requiredInputs":["appId","greyTagRouteName"],"stateInputs":{"description":"Input properties used for looking up and filtering GreyTagRoute resources.\n","properties":{"appId":{"type":"string","description":"The ID  of the SAE Application.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of GreyTagRoute.\n"},"dubboRules":{"type":"array","items":{"$ref":"#/types/alicloud:sae/GreyTagRouteDubboRule:GreyTagRouteDubboRule"},"description":"The grayscale rule created for Dubbo Application. See \u003cspan pulumi-lang-nodejs=\"`dubboRules`\" pulumi-lang-dotnet=\"`DubboRules`\" pulumi-lang-go=\"`dubboRules`\" pulumi-lang-python=\"`dubbo_rules`\" pulumi-lang-yaml=\"`dubboRules`\" pulumi-lang-java=\"`dubboRules`\"\u003e`dubbo_rules`\u003c/span\u003e below.\n"},"greyTagRouteName":{"type":"string","description":"The name of GreyTagRoute.\n","willReplaceOnChanges":true},"scRules":{"type":"array","items":{"$ref":"#/types/alicloud:sae/GreyTagRouteScRule:GreyTagRouteScRule"},"description":"The grayscale rule created for SpringCloud Application. See \u003cspan pulumi-lang-nodejs=\"`scRules`\" pulumi-lang-dotnet=\"`ScRules`\" pulumi-lang-go=\"`scRules`\" pulumi-lang-python=\"`sc_rules`\" pulumi-lang-yaml=\"`scRules`\" pulumi-lang-java=\"`scRules`\"\u003e`sc_rules`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:sae/ingress:Ingress":{"description":"Provides a Serverless App Engine (SAE) Ingress resource.\n\nFor information about Serverless App Engine (SAE) Ingress and how to use it, see [What is Ingress](https://next.api.aliyun.com/api/sae/2019-05-06/CreateIngress).\n\n\u003e **NOTE:** Available since v1.137.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultGetZones = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultNamespace = new alicloud.sae.Namespace(\"default\", {\n    namespaceId: _default.then(_default =\u003e `${_default.regions?.[0]?.id}:example${defaultInteger.result}`),\n    namespaceName: name,\n    namespaceDescription: name,\n    enableMicroRegistration: false,\n});\nconst defaultApplication = new alicloud.sae.Application(\"default\", {\n    appDescription: name,\n    appName: `${name}-${defaultInteger.result}`,\n    namespaceId: defaultNamespace.id,\n    imageUrl: _default.then(_default =\u003e `registry-vpc.${_default.regions?.[0]?.id}.aliyuncs.com/sae-demo-image/consumer:1.0`),\n    packageType: \"Image\",\n    securityGroupId: defaultSecurityGroup.id,\n    vpcId: defaultNetwork.id,\n    vswitchId: defaultSwitch.id,\n    timezone: \"Asia/Beijing\",\n    replicas: 5,\n    cpu: 500,\n    memory: 2048,\n});\nconst defaultApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"default\", {\n    loadBalancerName: name,\n    vswitchId: defaultSwitch.id,\n    loadBalancerSpec: \"slb.s2.small\",\n    addressType: \"intranet\",\n});\nconst defaultIngress = new alicloud.sae.Ingress(\"default\", {\n    slbId: defaultApplicationLoadBalancer.id,\n    namespaceId: defaultNamespace.id,\n    listenerPort: 80,\n    rules: [{\n        appId: defaultApplication.id,\n        containerPort: 443,\n        domain: \"www.alicloud.com\",\n        appName: defaultApplication.appName,\n        path: \"/\",\n    }],\n    defaultRule: {\n        appId: defaultApplication.id,\n        containerPort: 443,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_namespace = alicloud.sae.Namespace(\"default\",\n    namespace_id=f\"{default.regions[0].id}:example{default_integer['result']}\",\n    namespace_name=name,\n    namespace_description=name,\n    enable_micro_registration=False)\ndefault_application = alicloud.sae.Application(\"default\",\n    app_description=name,\n    app_name=f\"{name}-{default_integer['result']}\",\n    namespace_id=default_namespace.id,\n    image_url=f\"registry-vpc.{default.regions[0].id}.aliyuncs.com/sae-demo-image/consumer:1.0\",\n    package_type=\"Image\",\n    security_group_id=default_security_group.id,\n    vpc_id=default_network.id,\n    vswitch_id=default_switch.id,\n    timezone=\"Asia/Beijing\",\n    replicas=5,\n    cpu=500,\n    memory=2048)\ndefault_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"default\",\n    load_balancer_name=name,\n    vswitch_id=default_switch.id,\n    load_balancer_spec=\"slb.s2.small\",\n    address_type=\"intranet\")\ndefault_ingress = alicloud.sae.Ingress(\"default\",\n    slb_id=default_application_load_balancer.id,\n    namespace_id=default_namespace.id,\n    listener_port=80,\n    rules=[{\n        \"app_id\": default_application.id,\n        \"container_port\": 443,\n        \"domain\": \"www.alicloud.com\",\n        \"app_name\": default_application.app_name,\n        \"path\": \"/\",\n    }],\n    default_rule={\n        \"app_id\": default_application.id,\n        \"container_port\": 443,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultNamespace = new AliCloud.Sae.Namespace(\"default\", new()\n    {\n        NamespaceId = @default.Apply(@default =\u003e $\"{@default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}:example{defaultInteger.Result}\"),\n        NamespaceName = name,\n        NamespaceDescription = name,\n        EnableMicroRegistration = false,\n    });\n\n    var defaultApplication = new AliCloud.Sae.Application(\"default\", new()\n    {\n        AppDescription = name,\n        AppName = $\"{name}-{defaultInteger.Result}\",\n        NamespaceId = defaultNamespace.Id,\n        ImageUrl = @default.Apply(@default =\u003e $\"registry-vpc.{@default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}.aliyuncs.com/sae-demo-image/consumer:1.0\"),\n        PackageType = \"Image\",\n        SecurityGroupId = defaultSecurityGroup.Id,\n        VpcId = defaultNetwork.Id,\n        VswitchId = defaultSwitch.Id,\n        Timezone = \"Asia/Beijing\",\n        Replicas = 5,\n        Cpu = 500,\n        Memory = 2048,\n    });\n\n    var defaultApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = name,\n        VswitchId = defaultSwitch.Id,\n        LoadBalancerSpec = \"slb.s2.small\",\n        AddressType = \"intranet\",\n    });\n\n    var defaultIngress = new AliCloud.Sae.Ingress(\"default\", new()\n    {\n        SlbId = defaultApplicationLoadBalancer.Id,\n        NamespaceId = defaultNamespace.Id,\n        ListenerPort = 80,\n        Rules = new[]\n        {\n            new AliCloud.Sae.Inputs.IngressRuleArgs\n            {\n                AppId = defaultApplication.Id,\n                ContainerPort = 443,\n                Domain = \"www.alicloud.com\",\n                AppName = defaultApplication.AppName,\n                Path = \"/\",\n            },\n        },\n        DefaultRule = new AliCloud.Sae.Inputs.IngressDefaultRuleArgs\n        {\n            AppId = defaultApplication.Id,\n            ContainerPort = 443,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sae\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNamespace, err := sae.NewNamespace(ctx, \"default\", \u0026sae.NamespaceArgs{\n\t\t\tNamespaceId:             pulumi.Sprintf(\"%v:example%v\", _default.Regions[0].Id, defaultInteger.Result),\n\t\t\tNamespaceName:           pulumi.String(name),\n\t\t\tNamespaceDescription:    pulumi.String(name),\n\t\t\tEnableMicroRegistration: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplication, err := sae.NewApplication(ctx, \"default\", \u0026sae.ApplicationArgs{\n\t\t\tAppDescription:  pulumi.String(name),\n\t\t\tAppName:         pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tNamespaceId:     defaultNamespace.ID(),\n\t\t\tImageUrl:        pulumi.Sprintf(\"registry-vpc.%v.aliyuncs.com/sae-demo-image/consumer:1.0\", _default.Regions[0].Id),\n\t\t\tPackageType:     pulumi.String(\"Image\"),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\tTimezone:        pulumi.String(\"Asia/Beijing\"),\n\t\t\tReplicas:        pulumi.Int(5),\n\t\t\tCpu:             pulumi.Int(500),\n\t\t\tMemory:          pulumi.Int(2048),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplicationLoadBalancer, err := slb.NewApplicationLoadBalancer(ctx, \"default\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tVswitchId:        defaultSwitch.ID(),\n\t\t\tLoadBalancerSpec: pulumi.String(\"slb.s2.small\"),\n\t\t\tAddressType:      pulumi.String(\"intranet\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sae.NewIngress(ctx, \"default\", \u0026sae.IngressArgs{\n\t\t\tSlbId:        defaultApplicationLoadBalancer.ID(),\n\t\t\tNamespaceId:  defaultNamespace.ID(),\n\t\t\tListenerPort: pulumi.Int(80),\n\t\t\tRules: sae.IngressRuleArray{\n\t\t\t\t\u0026sae.IngressRuleArgs{\n\t\t\t\t\tAppId:         defaultApplication.ID(),\n\t\t\t\t\tContainerPort: pulumi.Int(443),\n\t\t\t\t\tDomain:        pulumi.String(\"www.alicloud.com\"),\n\t\t\t\t\tAppName:       defaultApplication.AppName,\n\t\t\t\t\tPath:          pulumi.String(\"/\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDefaultRule: \u0026sae.IngressDefaultRuleArgs{\n\t\t\t\tAppId:         defaultApplication.ID(),\n\t\t\t\tContainerPort: pulumi.Int(443),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.sae.Namespace;\nimport com.pulumi.alicloud.sae.NamespaceArgs;\nimport com.pulumi.alicloud.sae.Application;\nimport com.pulumi.alicloud.sae.ApplicationArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.sae.Ingress;\nimport com.pulumi.alicloud.sae.IngressArgs;\nimport com.pulumi.alicloud.sae.inputs.IngressRuleArgs;\nimport com.pulumi.alicloud.sae.inputs.IngressDefaultRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultNamespace = new Namespace(\"defaultNamespace\", NamespaceArgs.builder()\n            .namespaceId(String.format(\"%s:example%s\", default_.regions()[0].id(),defaultInteger.result()))\n            .namespaceName(name)\n            .namespaceDescription(name)\n            .enableMicroRegistration(false)\n            .build());\n\n        var defaultApplication = new Application(\"defaultApplication\", ApplicationArgs.builder()\n            .appDescription(name)\n            .appName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .namespaceId(defaultNamespace.id())\n            .imageUrl(String.format(\"registry-vpc.%s.aliyuncs.com/sae-demo-image/consumer:1.0\", default_.regions()[0].id()))\n            .packageType(\"Image\")\n            .securityGroupId(defaultSecurityGroup.id())\n            .vpcId(defaultNetwork.id())\n            .vswitchId(defaultSwitch.id())\n            .timezone(\"Asia/Beijing\")\n            .replicas(5)\n            .cpu(500)\n            .memory(2048)\n            .build());\n\n        var defaultApplicationLoadBalancer = new ApplicationLoadBalancer(\"defaultApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .vswitchId(defaultSwitch.id())\n            .loadBalancerSpec(\"slb.s2.small\")\n            .addressType(\"intranet\")\n            .build());\n\n        var defaultIngress = new Ingress(\"defaultIngress\", IngressArgs.builder()\n            .slbId(defaultApplicationLoadBalancer.id())\n            .namespaceId(defaultNamespace.id())\n            .listenerPort(80)\n            .rules(IngressRuleArgs.builder()\n                .appId(defaultApplication.id())\n                .containerPort(443)\n                .domain(\"www.alicloud.com\")\n                .appName(defaultApplication.appName())\n                .path(\"/\")\n                .build())\n            .defaultRule(IngressDefaultRuleArgs.builder()\n                .appId(defaultApplication.id())\n                .containerPort(443)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n  defaultNamespace:\n    type: alicloud:sae:Namespace\n    name: default\n    properties:\n      namespaceId: ${default.regions[0].id}:example${defaultInteger.result}\n      namespaceName: ${name}\n      namespaceDescription: ${name}\n      enableMicroRegistration: false\n  defaultApplication:\n    type: alicloud:sae:Application\n    name: default\n    properties:\n      appDescription: ${name}\n      appName: ${name}-${defaultInteger.result}\n      namespaceId: ${defaultNamespace.id}\n      imageUrl: registry-vpc.${default.regions[0].id}.aliyuncs.com/sae-demo-image/consumer:1.0\n      packageType: Image\n      securityGroupId: ${defaultSecurityGroup.id}\n      vpcId: ${defaultNetwork.id}\n      vswitchId: ${defaultSwitch.id}\n      timezone: Asia/Beijing\n      replicas: '5'\n      cpu: '500'\n      memory: '2048'\n  defaultApplicationLoadBalancer:\n    type: alicloud:slb:ApplicationLoadBalancer\n    name: default\n    properties:\n      loadBalancerName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      loadBalancerSpec: slb.s2.small\n      addressType: intranet\n  defaultIngress:\n    type: alicloud:sae:Ingress\n    name: default\n    properties:\n      slbId: ${defaultApplicationLoadBalancer.id}\n      namespaceId: ${defaultNamespace.id}\n      listenerPort: '80'\n      rules:\n        - appId: ${defaultApplication.id}\n          containerPort: '443'\n          domain: www.alicloud.com\n          appName: ${defaultApplication.appName}\n          path: /\n      defaultRule:\n        appId: ${defaultApplication.id}\n        containerPort: '443'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nServerless App Engine (SAE) Ingress can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sae/ingress:Ingress example \u003cid\u003e\n```\n\n","properties":{"certId":{"type":"string","description":"The certificate ID of the HTTPS listener. The \u003cspan pulumi-lang-nodejs=\"`certId`\" pulumi-lang-dotnet=\"`CertId`\" pulumi-lang-go=\"`certId`\" pulumi-lang-python=\"`cert_id`\" pulumi-lang-yaml=\"`certId`\" pulumi-lang-java=\"`certId`\"\u003e`cert_id`\u003c/span\u003e takes effect only when \u003cspan pulumi-lang-nodejs=\"`loadBalanceType`\" pulumi-lang-dotnet=\"`LoadBalanceType`\" pulumi-lang-go=\"`loadBalanceType`\" pulumi-lang-python=\"`load_balance_type`\" pulumi-lang-yaml=\"`loadBalanceType`\" pulumi-lang-java=\"`loadBalanceType`\"\u003e`load_balance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`clb`\" pulumi-lang-dotnet=\"`Clb`\" pulumi-lang-go=\"`clb`\" pulumi-lang-python=\"`clb`\" pulumi-lang-yaml=\"`clb`\" pulumi-lang-java=\"`clb`\"\u003e`clb`\u003c/span\u003e.\n"},"certIds":{"type":"string","description":"The certificate IDs of the HTTPS listener, and multiple certificate IDs are separated by commas. The \u003cspan pulumi-lang-nodejs=\"`certIds`\" pulumi-lang-dotnet=\"`CertIds`\" pulumi-lang-go=\"`certIds`\" pulumi-lang-python=\"`cert_ids`\" pulumi-lang-yaml=\"`certIds`\" pulumi-lang-java=\"`certIds`\"\u003e`cert_ids`\u003c/span\u003e takes effect only when \u003cspan pulumi-lang-nodejs=\"`loadBalanceType`\" pulumi-lang-dotnet=\"`LoadBalanceType`\" pulumi-lang-go=\"`loadBalanceType`\" pulumi-lang-python=\"`load_balance_type`\" pulumi-lang-yaml=\"`loadBalanceType`\" pulumi-lang-java=\"`loadBalanceType`\"\u003e`load_balance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alb`\" pulumi-lang-dotnet=\"`Alb`\" pulumi-lang-go=\"`alb`\" pulumi-lang-python=\"`alb`\" pulumi-lang-yaml=\"`alb`\" pulumi-lang-java=\"`alb`\"\u003e`alb`\u003c/span\u003e.\n"},"defaultRule":{"$ref":"#/types/alicloud:sae/IngressDefaultRule:IngressDefaultRule","description":"Default Rule. See \u003cspan pulumi-lang-nodejs=\"`defaultRule`\" pulumi-lang-dotnet=\"`DefaultRule`\" pulumi-lang-go=\"`defaultRule`\" pulumi-lang-python=\"`default_rule`\" pulumi-lang-yaml=\"`defaultRule`\" pulumi-lang-java=\"`defaultRule`\"\u003e`default_rule`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"Description.\n"},"listenerPort":{"type":"integer","description":"SLB listening port.\n"},"listenerProtocol":{"type":"string","description":"The protocol that is used to forward requests. Default value: `HTTP`. Valid values: `HTTP`, `HTTPS`.\n"},"loadBalanceType":{"type":"string","description":"The type of the SLB instance. Default value: \u003cspan pulumi-lang-nodejs=\"`clb`\" pulumi-lang-dotnet=\"`Clb`\" pulumi-lang-go=\"`clb`\" pulumi-lang-python=\"`clb`\" pulumi-lang-yaml=\"`clb`\" pulumi-lang-java=\"`clb`\"\u003e`clb`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`clb`\" pulumi-lang-dotnet=\"`Clb`\" pulumi-lang-go=\"`clb`\" pulumi-lang-python=\"`clb`\" pulumi-lang-yaml=\"`clb`\" pulumi-lang-java=\"`clb`\"\u003e`clb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alb`\" pulumi-lang-dotnet=\"`Alb`\" pulumi-lang-go=\"`alb`\" pulumi-lang-python=\"`alb`\" pulumi-lang-yaml=\"`alb`\" pulumi-lang-java=\"`alb`\"\u003e`alb`\u003c/span\u003e.\n"},"namespaceId":{"type":"string","description":"The ID of Namespace. It can contain 2 to 32 lowercase characters.The value is in format `{RegionId}:{namespace}`.\n"},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:sae/IngressRule:IngressRule"},"description":"Forwarding rules. Forward traffic to the specified application according to the domain name and path. See \u003cspan pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\"\u003e`rules`\u003c/span\u003e below.\n"},"slbId":{"type":"string","description":"SLB ID.\n"}},"required":["listenerPort","listenerProtocol","loadBalanceType","namespaceId","rules","slbId"],"inputProperties":{"certId":{"type":"string","description":"The certificate ID of the HTTPS listener. The \u003cspan pulumi-lang-nodejs=\"`certId`\" pulumi-lang-dotnet=\"`CertId`\" pulumi-lang-go=\"`certId`\" pulumi-lang-python=\"`cert_id`\" pulumi-lang-yaml=\"`certId`\" pulumi-lang-java=\"`certId`\"\u003e`cert_id`\u003c/span\u003e takes effect only when \u003cspan pulumi-lang-nodejs=\"`loadBalanceType`\" pulumi-lang-dotnet=\"`LoadBalanceType`\" pulumi-lang-go=\"`loadBalanceType`\" pulumi-lang-python=\"`load_balance_type`\" pulumi-lang-yaml=\"`loadBalanceType`\" pulumi-lang-java=\"`loadBalanceType`\"\u003e`load_balance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`clb`\" pulumi-lang-dotnet=\"`Clb`\" pulumi-lang-go=\"`clb`\" pulumi-lang-python=\"`clb`\" pulumi-lang-yaml=\"`clb`\" pulumi-lang-java=\"`clb`\"\u003e`clb`\u003c/span\u003e.\n"},"certIds":{"type":"string","description":"The certificate IDs of the HTTPS listener, and multiple certificate IDs are separated by commas. The \u003cspan pulumi-lang-nodejs=\"`certIds`\" pulumi-lang-dotnet=\"`CertIds`\" pulumi-lang-go=\"`certIds`\" pulumi-lang-python=\"`cert_ids`\" pulumi-lang-yaml=\"`certIds`\" pulumi-lang-java=\"`certIds`\"\u003e`cert_ids`\u003c/span\u003e takes effect only when \u003cspan pulumi-lang-nodejs=\"`loadBalanceType`\" pulumi-lang-dotnet=\"`LoadBalanceType`\" pulumi-lang-go=\"`loadBalanceType`\" pulumi-lang-python=\"`load_balance_type`\" pulumi-lang-yaml=\"`loadBalanceType`\" pulumi-lang-java=\"`loadBalanceType`\"\u003e`load_balance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alb`\" pulumi-lang-dotnet=\"`Alb`\" pulumi-lang-go=\"`alb`\" pulumi-lang-python=\"`alb`\" pulumi-lang-yaml=\"`alb`\" pulumi-lang-java=\"`alb`\"\u003e`alb`\u003c/span\u003e.\n"},"defaultRule":{"$ref":"#/types/alicloud:sae/IngressDefaultRule:IngressDefaultRule","description":"Default Rule. See \u003cspan pulumi-lang-nodejs=\"`defaultRule`\" pulumi-lang-dotnet=\"`DefaultRule`\" pulumi-lang-go=\"`defaultRule`\" pulumi-lang-python=\"`default_rule`\" pulumi-lang-yaml=\"`defaultRule`\" pulumi-lang-java=\"`defaultRule`\"\u003e`default_rule`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"Description.\n"},"listenerPort":{"type":"integer","description":"SLB listening port.\n"},"listenerProtocol":{"type":"string","description":"The protocol that is used to forward requests. Default value: `HTTP`. Valid values: `HTTP`, `HTTPS`.\n"},"loadBalanceType":{"type":"string","description":"The type of the SLB instance. Default value: \u003cspan pulumi-lang-nodejs=\"`clb`\" pulumi-lang-dotnet=\"`Clb`\" pulumi-lang-go=\"`clb`\" pulumi-lang-python=\"`clb`\" pulumi-lang-yaml=\"`clb`\" pulumi-lang-java=\"`clb`\"\u003e`clb`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`clb`\" pulumi-lang-dotnet=\"`Clb`\" pulumi-lang-go=\"`clb`\" pulumi-lang-python=\"`clb`\" pulumi-lang-yaml=\"`clb`\" pulumi-lang-java=\"`clb`\"\u003e`clb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alb`\" pulumi-lang-dotnet=\"`Alb`\" pulumi-lang-go=\"`alb`\" pulumi-lang-python=\"`alb`\" pulumi-lang-yaml=\"`alb`\" pulumi-lang-java=\"`alb`\"\u003e`alb`\u003c/span\u003e.\n"},"namespaceId":{"type":"string","description":"The ID of Namespace. It can contain 2 to 32 lowercase characters.The value is in format `{RegionId}:{namespace}`.\n","willReplaceOnChanges":true},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:sae/IngressRule:IngressRule"},"description":"Forwarding rules. Forward traffic to the specified application according to the domain name and path. See \u003cspan pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\"\u003e`rules`\u003c/span\u003e below.\n"},"slbId":{"type":"string","description":"SLB ID.\n","willReplaceOnChanges":true}},"requiredInputs":["listenerPort","namespaceId","rules","slbId"],"stateInputs":{"description":"Input properties used for looking up and filtering Ingress resources.\n","properties":{"certId":{"type":"string","description":"The certificate ID of the HTTPS listener. The \u003cspan pulumi-lang-nodejs=\"`certId`\" pulumi-lang-dotnet=\"`CertId`\" pulumi-lang-go=\"`certId`\" pulumi-lang-python=\"`cert_id`\" pulumi-lang-yaml=\"`certId`\" pulumi-lang-java=\"`certId`\"\u003e`cert_id`\u003c/span\u003e takes effect only when \u003cspan pulumi-lang-nodejs=\"`loadBalanceType`\" pulumi-lang-dotnet=\"`LoadBalanceType`\" pulumi-lang-go=\"`loadBalanceType`\" pulumi-lang-python=\"`load_balance_type`\" pulumi-lang-yaml=\"`loadBalanceType`\" pulumi-lang-java=\"`loadBalanceType`\"\u003e`load_balance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`clb`\" pulumi-lang-dotnet=\"`Clb`\" pulumi-lang-go=\"`clb`\" pulumi-lang-python=\"`clb`\" pulumi-lang-yaml=\"`clb`\" pulumi-lang-java=\"`clb`\"\u003e`clb`\u003c/span\u003e.\n"},"certIds":{"type":"string","description":"The certificate IDs of the HTTPS listener, and multiple certificate IDs are separated by commas. The \u003cspan pulumi-lang-nodejs=\"`certIds`\" pulumi-lang-dotnet=\"`CertIds`\" pulumi-lang-go=\"`certIds`\" pulumi-lang-python=\"`cert_ids`\" pulumi-lang-yaml=\"`certIds`\" pulumi-lang-java=\"`certIds`\"\u003e`cert_ids`\u003c/span\u003e takes effect only when \u003cspan pulumi-lang-nodejs=\"`loadBalanceType`\" pulumi-lang-dotnet=\"`LoadBalanceType`\" pulumi-lang-go=\"`loadBalanceType`\" pulumi-lang-python=\"`load_balance_type`\" pulumi-lang-yaml=\"`loadBalanceType`\" pulumi-lang-java=\"`loadBalanceType`\"\u003e`load_balance_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`alb`\" pulumi-lang-dotnet=\"`Alb`\" pulumi-lang-go=\"`alb`\" pulumi-lang-python=\"`alb`\" pulumi-lang-yaml=\"`alb`\" pulumi-lang-java=\"`alb`\"\u003e`alb`\u003c/span\u003e.\n"},"defaultRule":{"$ref":"#/types/alicloud:sae/IngressDefaultRule:IngressDefaultRule","description":"Default Rule. See \u003cspan pulumi-lang-nodejs=\"`defaultRule`\" pulumi-lang-dotnet=\"`DefaultRule`\" pulumi-lang-go=\"`defaultRule`\" pulumi-lang-python=\"`default_rule`\" pulumi-lang-yaml=\"`defaultRule`\" pulumi-lang-java=\"`defaultRule`\"\u003e`default_rule`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"Description.\n"},"listenerPort":{"type":"integer","description":"SLB listening port.\n"},"listenerProtocol":{"type":"string","description":"The protocol that is used to forward requests. Default value: `HTTP`. Valid values: `HTTP`, `HTTPS`.\n"},"loadBalanceType":{"type":"string","description":"The type of the SLB instance. Default value: \u003cspan pulumi-lang-nodejs=\"`clb`\" pulumi-lang-dotnet=\"`Clb`\" pulumi-lang-go=\"`clb`\" pulumi-lang-python=\"`clb`\" pulumi-lang-yaml=\"`clb`\" pulumi-lang-java=\"`clb`\"\u003e`clb`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`clb`\" pulumi-lang-dotnet=\"`Clb`\" pulumi-lang-go=\"`clb`\" pulumi-lang-python=\"`clb`\" pulumi-lang-yaml=\"`clb`\" pulumi-lang-java=\"`clb`\"\u003e`clb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`alb`\" pulumi-lang-dotnet=\"`Alb`\" pulumi-lang-go=\"`alb`\" pulumi-lang-python=\"`alb`\" pulumi-lang-yaml=\"`alb`\" pulumi-lang-java=\"`alb`\"\u003e`alb`\u003c/span\u003e.\n"},"namespaceId":{"type":"string","description":"The ID of Namespace. It can contain 2 to 32 lowercase characters.The value is in format `{RegionId}:{namespace}`.\n","willReplaceOnChanges":true},"rules":{"type":"array","items":{"$ref":"#/types/alicloud:sae/IngressRule:IngressRule"},"description":"Forwarding rules. Forward traffic to the specified application according to the domain name and path. See \u003cspan pulumi-lang-nodejs=\"`rules`\" pulumi-lang-dotnet=\"`Rules`\" pulumi-lang-go=\"`rules`\" pulumi-lang-python=\"`rules`\" pulumi-lang-yaml=\"`rules`\" pulumi-lang-java=\"`rules`\"\u003e`rules`\u003c/span\u003e below.\n"},"slbId":{"type":"string","description":"SLB ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:sae/loadBalancerInternet:LoadBalancerInternet":{"description":"Provides an Alicloud Serverless App Engine (SAE) Application Load Balancer Attachment resource.\n\nFor information about Serverless App Engine (SAE) Load Balancer Internet Attachment and how to use it, see \u003cspan pulumi-lang-nodejs=\"[alicloud.sae.LoadBalancerInternet]\" pulumi-lang-dotnet=\"[alicloud.sae.LoadBalancerInternet]\" pulumi-lang-go=\"[sae.LoadBalancerInternet]\" pulumi-lang-python=\"[sae.LoadBalancerInternet]\" pulumi-lang-yaml=\"[alicloud.sae.LoadBalancerInternet]\" pulumi-lang-java=\"[alicloud.sae.LoadBalancerInternet]\"\u003e[alicloud.sae.LoadBalancerInternet]\u003c/span\u003e(https://www.alibabacloud.com/help/en/sae/latest/bindslb).\n\n\u003e **NOTE:** Available since v1.164.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultGetZones = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultNamespace = new alicloud.sae.Namespace(\"default\", {\n    namespaceId: _default.then(_default =\u003e `${_default.regions?.[0]?.id}:example${defaultInteger.result}`),\n    namespaceName: name,\n    namespaceDescription: name,\n    enableMicroRegistration: false,\n});\nconst defaultApplication = new alicloud.sae.Application(\"default\", {\n    appDescription: name,\n    appName: `${name}-${defaultInteger.result}`,\n    namespaceId: defaultNamespace.id,\n    imageUrl: \"registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\",\n    packageType: \"Image\",\n    jdk: \"Open JDK 8\",\n    securityGroupId: defaultSecurityGroup.id,\n    vpcId: defaultNetwork.id,\n    vswitchId: defaultSwitch.id,\n    timezone: \"Asia/Beijing\",\n    replicas: 5,\n    cpu: 500,\n    memory: 2048,\n    microRegistration: \"0\",\n});\nconst defaultApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"default\", {\n    loadBalancerName: name,\n    vswitchId: defaultSwitch.id,\n    loadBalancerSpec: \"slb.s2.small\",\n    addressType: \"internet\",\n});\nconst defaultLoadBalancerInternet = new alicloud.sae.LoadBalancerInternet(\"default\", {\n    appId: defaultApplication.id,\n    internetSlbId: defaultApplicationLoadBalancer.id,\n    internets: [{\n        protocol: \"TCP\",\n        port: 80,\n        targetPort: 8080,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_namespace = alicloud.sae.Namespace(\"default\",\n    namespace_id=f\"{default.regions[0].id}:example{default_integer['result']}\",\n    namespace_name=name,\n    namespace_description=name,\n    enable_micro_registration=False)\ndefault_application = alicloud.sae.Application(\"default\",\n    app_description=name,\n    app_name=f\"{name}-{default_integer['result']}\",\n    namespace_id=default_namespace.id,\n    image_url=\"registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\",\n    package_type=\"Image\",\n    jdk=\"Open JDK 8\",\n    security_group_id=default_security_group.id,\n    vpc_id=default_network.id,\n    vswitch_id=default_switch.id,\n    timezone=\"Asia/Beijing\",\n    replicas=5,\n    cpu=500,\n    memory=2048,\n    micro_registration=\"0\")\ndefault_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"default\",\n    load_balancer_name=name,\n    vswitch_id=default_switch.id,\n    load_balancer_spec=\"slb.s2.small\",\n    address_type=\"internet\")\ndefault_load_balancer_internet = alicloud.sae.LoadBalancerInternet(\"default\",\n    app_id=default_application.id,\n    internet_slb_id=default_application_load_balancer.id,\n    internets=[{\n        \"protocol\": \"TCP\",\n        \"port\": 80,\n        \"target_port\": 8080,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultNamespace = new AliCloud.Sae.Namespace(\"default\", new()\n    {\n        NamespaceId = @default.Apply(@default =\u003e $\"{@default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}:example{defaultInteger.Result}\"),\n        NamespaceName = name,\n        NamespaceDescription = name,\n        EnableMicroRegistration = false,\n    });\n\n    var defaultApplication = new AliCloud.Sae.Application(\"default\", new()\n    {\n        AppDescription = name,\n        AppName = $\"{name}-{defaultInteger.Result}\",\n        NamespaceId = defaultNamespace.Id,\n        ImageUrl = \"registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\",\n        PackageType = \"Image\",\n        Jdk = \"Open JDK 8\",\n        SecurityGroupId = defaultSecurityGroup.Id,\n        VpcId = defaultNetwork.Id,\n        VswitchId = defaultSwitch.Id,\n        Timezone = \"Asia/Beijing\",\n        Replicas = 5,\n        Cpu = 500,\n        Memory = 2048,\n        MicroRegistration = \"0\",\n    });\n\n    var defaultApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = name,\n        VswitchId = defaultSwitch.Id,\n        LoadBalancerSpec = \"slb.s2.small\",\n        AddressType = \"internet\",\n    });\n\n    var defaultLoadBalancerInternet = new AliCloud.Sae.LoadBalancerInternet(\"default\", new()\n    {\n        AppId = defaultApplication.Id,\n        InternetSlbId = defaultApplicationLoadBalancer.Id,\n        Internets = new[]\n        {\n            new AliCloud.Sae.Inputs.LoadBalancerInternetInternetArgs\n            {\n                Protocol = \"TCP\",\n                Port = 80,\n                TargetPort = 8080,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sae\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNamespace, err := sae.NewNamespace(ctx, \"default\", \u0026sae.NamespaceArgs{\n\t\t\tNamespaceId:             pulumi.Sprintf(\"%v:example%v\", _default.Regions[0].Id, defaultInteger.Result),\n\t\t\tNamespaceName:           pulumi.String(name),\n\t\t\tNamespaceDescription:    pulumi.String(name),\n\t\t\tEnableMicroRegistration: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplication, err := sae.NewApplication(ctx, \"default\", \u0026sae.ApplicationArgs{\n\t\t\tAppDescription:    pulumi.String(name),\n\t\t\tAppName:           pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tNamespaceId:       defaultNamespace.ID(),\n\t\t\tImageUrl:          pulumi.String(\"registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\"),\n\t\t\tPackageType:       pulumi.String(\"Image\"),\n\t\t\tJdk:               pulumi.String(\"Open JDK 8\"),\n\t\t\tSecurityGroupId:   defaultSecurityGroup.ID(),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t\tVswitchId:         defaultSwitch.ID(),\n\t\t\tTimezone:          pulumi.String(\"Asia/Beijing\"),\n\t\t\tReplicas:          pulumi.Int(5),\n\t\t\tCpu:               pulumi.Int(500),\n\t\t\tMemory:            pulumi.Int(2048),\n\t\t\tMicroRegistration: pulumi.String(\"0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplicationLoadBalancer, err := slb.NewApplicationLoadBalancer(ctx, \"default\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tVswitchId:        defaultSwitch.ID(),\n\t\t\tLoadBalancerSpec: pulumi.String(\"slb.s2.small\"),\n\t\t\tAddressType:      pulumi.String(\"internet\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sae.NewLoadBalancerInternet(ctx, \"default\", \u0026sae.LoadBalancerInternetArgs{\n\t\t\tAppId:         defaultApplication.ID(),\n\t\t\tInternetSlbId: defaultApplicationLoadBalancer.ID(),\n\t\t\tInternets: sae.LoadBalancerInternetInternetArray{\n\t\t\t\t\u0026sae.LoadBalancerInternetInternetArgs{\n\t\t\t\t\tProtocol:   pulumi.String(\"TCP\"),\n\t\t\t\t\tPort:       pulumi.Int(80),\n\t\t\t\t\tTargetPort: pulumi.Int(8080),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.sae.Namespace;\nimport com.pulumi.alicloud.sae.NamespaceArgs;\nimport com.pulumi.alicloud.sae.Application;\nimport com.pulumi.alicloud.sae.ApplicationArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.sae.LoadBalancerInternet;\nimport com.pulumi.alicloud.sae.LoadBalancerInternetArgs;\nimport com.pulumi.alicloud.sae.inputs.LoadBalancerInternetInternetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultNamespace = new Namespace(\"defaultNamespace\", NamespaceArgs.builder()\n            .namespaceId(String.format(\"%s:example%s\", default_.regions()[0].id(),defaultInteger.result()))\n            .namespaceName(name)\n            .namespaceDescription(name)\n            .enableMicroRegistration(false)\n            .build());\n\n        var defaultApplication = new Application(\"defaultApplication\", ApplicationArgs.builder()\n            .appDescription(name)\n            .appName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .namespaceId(defaultNamespace.id())\n            .imageUrl(\"registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\")\n            .packageType(\"Image\")\n            .jdk(\"Open JDK 8\")\n            .securityGroupId(defaultSecurityGroup.id())\n            .vpcId(defaultNetwork.id())\n            .vswitchId(defaultSwitch.id())\n            .timezone(\"Asia/Beijing\")\n            .replicas(5)\n            .cpu(500)\n            .memory(2048)\n            .microRegistration(\"0\")\n            .build());\n\n        var defaultApplicationLoadBalancer = new ApplicationLoadBalancer(\"defaultApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .vswitchId(defaultSwitch.id())\n            .loadBalancerSpec(\"slb.s2.small\")\n            .addressType(\"internet\")\n            .build());\n\n        var defaultLoadBalancerInternet = new LoadBalancerInternet(\"defaultLoadBalancerInternet\", LoadBalancerInternetArgs.builder()\n            .appId(defaultApplication.id())\n            .internetSlbId(defaultApplicationLoadBalancer.id())\n            .internets(LoadBalancerInternetInternetArgs.builder()\n                .protocol(\"TCP\")\n                .port(80)\n                .targetPort(8080)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n  defaultNamespace:\n    type: alicloud:sae:Namespace\n    name: default\n    properties:\n      namespaceId: ${default.regions[0].id}:example${defaultInteger.result}\n      namespaceName: ${name}\n      namespaceDescription: ${name}\n      enableMicroRegistration: false\n  defaultApplication:\n    type: alicloud:sae:Application\n    name: default\n    properties:\n      appDescription: ${name}\n      appName: ${name}-${defaultInteger.result}\n      namespaceId: ${defaultNamespace.id}\n      imageUrl: registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\n      packageType: Image\n      jdk: Open JDK 8\n      securityGroupId: ${defaultSecurityGroup.id}\n      vpcId: ${defaultNetwork.id}\n      vswitchId: ${defaultSwitch.id}\n      timezone: Asia/Beijing\n      replicas: '5'\n      cpu: '500'\n      memory: '2048'\n      microRegistration: '0'\n  defaultApplicationLoadBalancer:\n    type: alicloud:slb:ApplicationLoadBalancer\n    name: default\n    properties:\n      loadBalancerName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      loadBalancerSpec: slb.s2.small\n      addressType: internet\n  defaultLoadBalancerInternet:\n    type: alicloud:sae:LoadBalancerInternet\n    name: default\n    properties:\n      appId: ${defaultApplication.id}\n      internetSlbId: ${defaultApplicationLoadBalancer.id}\n      internets:\n        - protocol: TCP\n          port: 80\n          targetPort: 8080\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe resource can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sae/loadBalancerInternet:LoadBalancerInternet example \u003cid\u003e\n```\n\n","properties":{"appId":{"type":"string","description":"The target application ID that needs to be bound to the SLB.\n"},"internetIp":{"type":"string","description":"Use designated public network SLBs that have been purchased to support non-shared instances.\n"},"internetSlbId":{"type":"string","description":"The internet SLB ID.\n"},"internets":{"type":"array","items":{"$ref":"#/types/alicloud:sae/LoadBalancerInternetInternet:LoadBalancerInternetInternet"},"description":"The bound private network SLB. See \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e below.\n"}},"required":["appId","internets","internetIp"],"inputProperties":{"appId":{"type":"string","description":"The target application ID that needs to be bound to the SLB.\n"},"internetSlbId":{"type":"string","description":"The internet SLB ID.\n"},"internets":{"type":"array","items":{"$ref":"#/types/alicloud:sae/LoadBalancerInternetInternet:LoadBalancerInternetInternet"},"description":"The bound private network SLB. See \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e below.\n"}},"requiredInputs":["appId","internets"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancerInternet resources.\n","properties":{"appId":{"type":"string","description":"The target application ID that needs to be bound to the SLB.\n"},"internetIp":{"type":"string","description":"Use designated public network SLBs that have been purchased to support non-shared instances.\n"},"internetSlbId":{"type":"string","description":"The internet SLB ID.\n"},"internets":{"type":"array","items":{"$ref":"#/types/alicloud:sae/LoadBalancerInternetInternet:LoadBalancerInternetInternet"},"description":"The bound private network SLB. See \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:sae/loadBalancerIntranet:LoadBalancerIntranet":{"description":"Provides an Alicloud Serverless App Engine (SAE) Application Load Balancer Attachment resource.\n\nFor information about Serverless App Engine (SAE) Load Balancer Intranet Attachment and how to use it, see \u003cspan pulumi-lang-nodejs=\"[alicloud.sae.LoadBalancerIntranet]\" pulumi-lang-dotnet=\"[alicloud.sae.LoadBalancerIntranet]\" pulumi-lang-go=\"[sae.LoadBalancerIntranet]\" pulumi-lang-python=\"[sae.LoadBalancerIntranet]\" pulumi-lang-yaml=\"[alicloud.sae.LoadBalancerIntranet]\" pulumi-lang-java=\"[alicloud.sae.LoadBalancerIntranet]\"\u003e[alicloud.sae.LoadBalancerIntranet]\u003c/span\u003e(https://www.alibabacloud.com/help/en/sae/latest/bindslb).\n\n\u003e **NOTE:** Available since v1.165.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst defaultGetZones = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultNamespace = new alicloud.sae.Namespace(\"default\", {\n    namespaceId: _default.then(_default =\u003e `${_default.regions?.[0]?.id}:example${defaultInteger.result}`),\n    namespaceName: name,\n    namespaceDescription: name,\n    enableMicroRegistration: false,\n});\nconst defaultApplication = new alicloud.sae.Application(\"default\", {\n    appDescription: name,\n    appName: `${name}-${defaultInteger.result}`,\n    namespaceId: defaultNamespace.id,\n    imageUrl: \"registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\",\n    packageType: \"Image\",\n    jdk: \"Open JDK 8\",\n    securityGroupId: defaultSecurityGroup.id,\n    vpcId: defaultNetwork.id,\n    vswitchId: defaultSwitch.id,\n    timezone: \"Asia/Beijing\",\n    replicas: 5,\n    cpu: 500,\n    memory: 2048,\n    microRegistration: \"0\",\n});\nconst defaultApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"default\", {\n    loadBalancerName: name,\n    vswitchId: defaultSwitch.id,\n    loadBalancerSpec: \"slb.s2.small\",\n    addressType: \"intranet\",\n});\nconst defaultLoadBalancerIntranet = new alicloud.sae.LoadBalancerIntranet(\"default\", {\n    appId: defaultApplication.id,\n    intranetSlbId: defaultApplicationLoadBalancer.id,\n    intranets: [{\n        protocol: \"TCP\",\n        port: 80,\n        targetPort: 8080,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_namespace = alicloud.sae.Namespace(\"default\",\n    namespace_id=f\"{default.regions[0].id}:example{default_integer['result']}\",\n    namespace_name=name,\n    namespace_description=name,\n    enable_micro_registration=False)\ndefault_application = alicloud.sae.Application(\"default\",\n    app_description=name,\n    app_name=f\"{name}-{default_integer['result']}\",\n    namespace_id=default_namespace.id,\n    image_url=\"registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\",\n    package_type=\"Image\",\n    jdk=\"Open JDK 8\",\n    security_group_id=default_security_group.id,\n    vpc_id=default_network.id,\n    vswitch_id=default_switch.id,\n    timezone=\"Asia/Beijing\",\n    replicas=5,\n    cpu=500,\n    memory=2048,\n    micro_registration=\"0\")\ndefault_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"default\",\n    load_balancer_name=name,\n    vswitch_id=default_switch.id,\n    load_balancer_spec=\"slb.s2.small\",\n    address_type=\"intranet\")\ndefault_load_balancer_intranet = alicloud.sae.LoadBalancerIntranet(\"default\",\n    app_id=default_application.id,\n    intranet_slb_id=default_application_load_balancer.id,\n    intranets=[{\n        \"protocol\": \"TCP\",\n        \"port\": 80,\n        \"target_port\": 8080,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultNamespace = new AliCloud.Sae.Namespace(\"default\", new()\n    {\n        NamespaceId = @default.Apply(@default =\u003e $\"{@default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}:example{defaultInteger.Result}\"),\n        NamespaceName = name,\n        NamespaceDescription = name,\n        EnableMicroRegistration = false,\n    });\n\n    var defaultApplication = new AliCloud.Sae.Application(\"default\", new()\n    {\n        AppDescription = name,\n        AppName = $\"{name}-{defaultInteger.Result}\",\n        NamespaceId = defaultNamespace.Id,\n        ImageUrl = \"registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\",\n        PackageType = \"Image\",\n        Jdk = \"Open JDK 8\",\n        SecurityGroupId = defaultSecurityGroup.Id,\n        VpcId = defaultNetwork.Id,\n        VswitchId = defaultSwitch.Id,\n        Timezone = \"Asia/Beijing\",\n        Replicas = 5,\n        Cpu = 500,\n        Memory = 2048,\n        MicroRegistration = \"0\",\n    });\n\n    var defaultApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = name,\n        VswitchId = defaultSwitch.Id,\n        LoadBalancerSpec = \"slb.s2.small\",\n        AddressType = \"intranet\",\n    });\n\n    var defaultLoadBalancerIntranet = new AliCloud.Sae.LoadBalancerIntranet(\"default\", new()\n    {\n        AppId = defaultApplication.Id,\n        IntranetSlbId = defaultApplicationLoadBalancer.Id,\n        Intranets = new[]\n        {\n            new AliCloud.Sae.Inputs.LoadBalancerIntranetIntranetArgs\n            {\n                Protocol = \"TCP\",\n                Port = 80,\n                TargetPort = 8080,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sae\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNamespace, err := sae.NewNamespace(ctx, \"default\", \u0026sae.NamespaceArgs{\n\t\t\tNamespaceId:             pulumi.Sprintf(\"%v:example%v\", _default.Regions[0].Id, defaultInteger.Result),\n\t\t\tNamespaceName:           pulumi.String(name),\n\t\t\tNamespaceDescription:    pulumi.String(name),\n\t\t\tEnableMicroRegistration: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplication, err := sae.NewApplication(ctx, \"default\", \u0026sae.ApplicationArgs{\n\t\t\tAppDescription:    pulumi.String(name),\n\t\t\tAppName:           pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tNamespaceId:       defaultNamespace.ID(),\n\t\t\tImageUrl:          pulumi.String(\"registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\"),\n\t\t\tPackageType:       pulumi.String(\"Image\"),\n\t\t\tJdk:               pulumi.String(\"Open JDK 8\"),\n\t\t\tSecurityGroupId:   defaultSecurityGroup.ID(),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t\tVswitchId:         defaultSwitch.ID(),\n\t\t\tTimezone:          pulumi.String(\"Asia/Beijing\"),\n\t\t\tReplicas:          pulumi.Int(5),\n\t\t\tCpu:               pulumi.Int(500),\n\t\t\tMemory:            pulumi.Int(2048),\n\t\t\tMicroRegistration: pulumi.String(\"0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplicationLoadBalancer, err := slb.NewApplicationLoadBalancer(ctx, \"default\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tVswitchId:        defaultSwitch.ID(),\n\t\t\tLoadBalancerSpec: pulumi.String(\"slb.s2.small\"),\n\t\t\tAddressType:      pulumi.String(\"intranet\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sae.NewLoadBalancerIntranet(ctx, \"default\", \u0026sae.LoadBalancerIntranetArgs{\n\t\t\tAppId:         defaultApplication.ID(),\n\t\t\tIntranetSlbId: defaultApplicationLoadBalancer.ID(),\n\t\t\tIntranets: sae.LoadBalancerIntranetIntranetArray{\n\t\t\t\t\u0026sae.LoadBalancerIntranetIntranetArgs{\n\t\t\t\t\tProtocol:   pulumi.String(\"TCP\"),\n\t\t\t\t\tPort:       pulumi.Int(80),\n\t\t\t\t\tTargetPort: pulumi.Int(8080),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.sae.Namespace;\nimport com.pulumi.alicloud.sae.NamespaceArgs;\nimport com.pulumi.alicloud.sae.Application;\nimport com.pulumi.alicloud.sae.ApplicationArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.sae.LoadBalancerIntranet;\nimport com.pulumi.alicloud.sae.LoadBalancerIntranetArgs;\nimport com.pulumi.alicloud.sae.inputs.LoadBalancerIntranetIntranetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultNamespace = new Namespace(\"defaultNamespace\", NamespaceArgs.builder()\n            .namespaceId(String.format(\"%s:example%s\", default_.regions()[0].id(),defaultInteger.result()))\n            .namespaceName(name)\n            .namespaceDescription(name)\n            .enableMicroRegistration(false)\n            .build());\n\n        var defaultApplication = new Application(\"defaultApplication\", ApplicationArgs.builder()\n            .appDescription(name)\n            .appName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .namespaceId(defaultNamespace.id())\n            .imageUrl(\"registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\")\n            .packageType(\"Image\")\n            .jdk(\"Open JDK 8\")\n            .securityGroupId(defaultSecurityGroup.id())\n            .vpcId(defaultNetwork.id())\n            .vswitchId(defaultSwitch.id())\n            .timezone(\"Asia/Beijing\")\n            .replicas(5)\n            .cpu(500)\n            .memory(2048)\n            .microRegistration(\"0\")\n            .build());\n\n        var defaultApplicationLoadBalancer = new ApplicationLoadBalancer(\"defaultApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .vswitchId(defaultSwitch.id())\n            .loadBalancerSpec(\"slb.s2.small\")\n            .addressType(\"intranet\")\n            .build());\n\n        var defaultLoadBalancerIntranet = new LoadBalancerIntranet(\"defaultLoadBalancerIntranet\", LoadBalancerIntranetArgs.builder()\n            .appId(defaultApplication.id())\n            .intranetSlbId(defaultApplicationLoadBalancer.id())\n            .intranets(LoadBalancerIntranetIntranetArgs.builder()\n                .protocol(\"TCP\")\n                .port(80)\n                .targetPort(8080)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n  defaultNamespace:\n    type: alicloud:sae:Namespace\n    name: default\n    properties:\n      namespaceId: ${default.regions[0].id}:example${defaultInteger.result}\n      namespaceName: ${name}\n      namespaceDescription: ${name}\n      enableMicroRegistration: false\n  defaultApplication:\n    type: alicloud:sae:Application\n    name: default\n    properties:\n      appDescription: ${name}\n      appName: ${name}-${defaultInteger.result}\n      namespaceId: ${defaultNamespace.id}\n      imageUrl: registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\n      packageType: Image\n      jdk: Open JDK 8\n      securityGroupId: ${defaultSecurityGroup.id}\n      vpcId: ${defaultNetwork.id}\n      vswitchId: ${defaultSwitch.id}\n      timezone: Asia/Beijing\n      replicas: '5'\n      cpu: '500'\n      memory: '2048'\n      microRegistration: '0'\n  defaultApplicationLoadBalancer:\n    type: alicloud:slb:ApplicationLoadBalancer\n    name: default\n    properties:\n      loadBalancerName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      loadBalancerSpec: slb.s2.small\n      addressType: intranet\n  defaultLoadBalancerIntranet:\n    type: alicloud:sae:LoadBalancerIntranet\n    name: default\n    properties:\n      appId: ${defaultApplication.id}\n      intranetSlbId: ${defaultApplicationLoadBalancer.id}\n      intranets:\n        - protocol: TCP\n          port: 80\n          targetPort: 8080\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe resource can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sae/loadBalancerIntranet:LoadBalancerIntranet example \u003cid\u003e\n```\n\n","properties":{"appId":{"type":"string","description":"The target application ID that needs to be bound to the SLB.\n"},"intranetIp":{"type":"string","description":"Use designated private network SLBs that have been purchased to support non-shared instances.\n"},"intranetSlbId":{"type":"string","description":"The intranet SLB ID.\n"},"intranets":{"type":"array","items":{"$ref":"#/types/alicloud:sae/LoadBalancerIntranetIntranet:LoadBalancerIntranetIntranet"},"description":"The bound private network SLB. See \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e below.\n"}},"required":["appId","intranets","intranetIp"],"inputProperties":{"appId":{"type":"string","description":"The target application ID that needs to be bound to the SLB.\n"},"intranetSlbId":{"type":"string","description":"The intranet SLB ID.\n"},"intranets":{"type":"array","items":{"$ref":"#/types/alicloud:sae/LoadBalancerIntranetIntranet:LoadBalancerIntranetIntranet"},"description":"The bound private network SLB. See \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e below.\n"}},"requiredInputs":["appId","intranets"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancerIntranet resources.\n","properties":{"appId":{"type":"string","description":"The target application ID that needs to be bound to the SLB.\n"},"intranetIp":{"type":"string","description":"Use designated private network SLBs that have been purchased to support non-shared instances.\n"},"intranetSlbId":{"type":"string","description":"The intranet SLB ID.\n"},"intranets":{"type":"array","items":{"$ref":"#/types/alicloud:sae/LoadBalancerIntranetIntranet:LoadBalancerIntranetIntranet"},"description":"The bound private network SLB. See \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:sae/namespace:Namespace":{"description":"Provides a Serverless App Engine (SAE) Namespace resource.\n\nFor information about SAE Namespace and how to use it, see [What is Namespace](https://www.alibabacloud.com/help/en/sae/latest/createnamespace).\n\n\u003e **NOTE:** Available since v1.129.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst example = new alicloud.sae.Namespace(\"example\", {\n    namespaceId: _default.then(_default =\u003e `${_default.regions?.[0]?.id}:example${defaultInteger.result}`),\n    namespaceName: name,\n    namespaceDescription: name,\n    enableMicroRegistration: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_regions(current=True)\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nexample = alicloud.sae.Namespace(\"example\",\n    namespace_id=f\"{default.regions[0].id}:example{default_integer['result']}\",\n    namespace_name=name,\n    namespace_description=name,\n    enable_micro_registration=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var example = new AliCloud.Sae.Namespace(\"example\", new()\n    {\n        NamespaceId = @default.Apply(@default =\u003e $\"{@default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)}:example{defaultInteger.Result}\"),\n        NamespaceName = name,\n        NamespaceDescription = name,\n        EnableMicroRegistration = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sae\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sae.NewNamespace(ctx, \"example\", \u0026sae.NamespaceArgs{\n\t\t\tNamespaceId:             pulumi.Sprintf(\"%v:example%v\", _default.Regions[0].Id, defaultInteger.Result),\n\t\t\tNamespaceName:           pulumi.String(name),\n\t\t\tNamespaceDescription:    pulumi.String(name),\n\t\t\tEnableMicroRegistration: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.sae.Namespace;\nimport com.pulumi.alicloud.sae.NamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var example = new Namespace(\"example\", NamespaceArgs.builder()\n            .namespaceId(String.format(\"%s:example%s\", default_.regions()[0].id(),defaultInteger.result()))\n            .namespaceName(name)\n            .namespaceDescription(name)\n            .enableMicroRegistration(false)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:sae:Namespace\n    properties:\n      namespaceId: ${default.regions[0].id}:example${defaultInteger.result}\n      namespaceName: ${name}\n      namespaceDescription: ${name}\n      enableMicroRegistration: false\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nServerless App Engine (SAE) Namespace can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sae/namespace:Namespace example \u003cnamespace_id\u003e\n```\n\n","properties":{"enableMicroRegistration":{"type":"boolean","description":"Specifies whether to enable the SAE built-in registry. If you do not use the built-in registry, you can set \u003cspan pulumi-lang-nodejs=\"`enableMicroRegistration`\" pulumi-lang-dotnet=\"`EnableMicroRegistration`\" pulumi-lang-go=\"`enableMicroRegistration`\" pulumi-lang-python=\"`enable_micro_registration`\" pulumi-lang-yaml=\"`enableMicroRegistration`\" pulumi-lang-java=\"`enableMicroRegistration`\"\u003e`enable_micro_registration`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to accelerate the creation of the namespace. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values:\n"},"namespaceDescription":{"type":"string","description":"The Description of Namespace.\n"},"namespaceId":{"type":"string","description":"The ID of the Namespace. It can contain 2 to 32 lowercase characters. The value is in format `{RegionId}:{namespace}`.\n"},"namespaceName":{"type":"string","description":"The Name of Namespace.\n"},"namespaceShortId":{"type":"string","description":"The short ID of the Namespace. You do not need to specify a region ID. The value of \u003cspan pulumi-lang-nodejs=\"`namespaceShortId`\" pulumi-lang-dotnet=\"`NamespaceShortId`\" pulumi-lang-go=\"`namespaceShortId`\" pulumi-lang-python=\"`namespace_short_id`\" pulumi-lang-yaml=\"`namespaceShortId`\" pulumi-lang-java=\"`namespaceShortId`\"\u003e`namespace_short_id`\u003c/span\u003e can be up to 20 characters in length and can contain only lowercase letters and digits.\n"}},"required":["enableMicroRegistration","namespaceId","namespaceName","namespaceShortId"],"inputProperties":{"enableMicroRegistration":{"type":"boolean","description":"Specifies whether to enable the SAE built-in registry. If you do not use the built-in registry, you can set \u003cspan pulumi-lang-nodejs=\"`enableMicroRegistration`\" pulumi-lang-dotnet=\"`EnableMicroRegistration`\" pulumi-lang-go=\"`enableMicroRegistration`\" pulumi-lang-python=\"`enable_micro_registration`\" pulumi-lang-yaml=\"`enableMicroRegistration`\" pulumi-lang-java=\"`enableMicroRegistration`\"\u003e`enable_micro_registration`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to accelerate the creation of the namespace. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values:\n"},"namespaceDescription":{"type":"string","description":"The Description of Namespace.\n"},"namespaceId":{"type":"string","description":"The ID of the Namespace. It can contain 2 to 32 lowercase characters. The value is in format `{RegionId}:{namespace}`.\n","willReplaceOnChanges":true},"namespaceName":{"type":"string","description":"The Name of Namespace.\n"},"namespaceShortId":{"type":"string","description":"The short ID of the Namespace. You do not need to specify a region ID. The value of \u003cspan pulumi-lang-nodejs=\"`namespaceShortId`\" pulumi-lang-dotnet=\"`NamespaceShortId`\" pulumi-lang-go=\"`namespaceShortId`\" pulumi-lang-python=\"`namespace_short_id`\" pulumi-lang-yaml=\"`namespaceShortId`\" pulumi-lang-java=\"`namespaceShortId`\"\u003e`namespace_short_id`\u003c/span\u003e can be up to 20 characters in length and can contain only lowercase letters and digits.\n","willReplaceOnChanges":true}},"requiredInputs":["namespaceName"],"stateInputs":{"description":"Input properties used for looking up and filtering Namespace resources.\n","properties":{"enableMicroRegistration":{"type":"boolean","description":"Specifies whether to enable the SAE built-in registry. If you do not use the built-in registry, you can set \u003cspan pulumi-lang-nodejs=\"`enableMicroRegistration`\" pulumi-lang-dotnet=\"`EnableMicroRegistration`\" pulumi-lang-go=\"`enableMicroRegistration`\" pulumi-lang-python=\"`enable_micro_registration`\" pulumi-lang-yaml=\"`enableMicroRegistration`\" pulumi-lang-java=\"`enableMicroRegistration`\"\u003e`enable_micro_registration`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to accelerate the creation of the namespace. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values:\n"},"namespaceDescription":{"type":"string","description":"The Description of Namespace.\n"},"namespaceId":{"type":"string","description":"The ID of the Namespace. It can contain 2 to 32 lowercase characters. The value is in format `{RegionId}:{namespace}`.\n","willReplaceOnChanges":true},"namespaceName":{"type":"string","description":"The Name of Namespace.\n"},"namespaceShortId":{"type":"string","description":"The short ID of the Namespace. You do not need to specify a region ID. The value of \u003cspan pulumi-lang-nodejs=\"`namespaceShortId`\" pulumi-lang-dotnet=\"`NamespaceShortId`\" pulumi-lang-go=\"`namespaceShortId`\" pulumi-lang-python=\"`namespace_short_id`\" pulumi-lang-yaml=\"`namespaceShortId`\" pulumi-lang-java=\"`namespaceShortId`\"\u003e`namespace_short_id`\u003c/span\u003e can be up to 20 characters in length and can contain only lowercase letters and digits.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:sag/acl:Acl":{"description":"Provides a Sag Acl resource. Smart Access Gateway (SAG) provides the access control list (ACL) function in the form of whitelists and blacklists for different SAG instances.\n\nFor information about Sag Acl and how to use it, see [What is access control list (ACL)](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/createacl).\n\n\u003e **NOTE:** Available since v1.60.0.\n\n\u003e **NOTE:** Only the following regions support create Cloud Connect Network. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.sag.Acl(\"default\", {name: \"terraform-example\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.sag.Acl(\"default\", name=\"terraform-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Sag.Acl(\"default\", new()\n    {\n        Name = \"terraform-example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sag.NewAcl(ctx, \"default\", \u0026sag.AclArgs{\n\t\t\tName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.Acl;\nimport com.pulumi.alicloud.sag.AclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Acl(\"default\", AclArgs.builder()\n            .name(\"terraform-example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:sag:Acl\n    properties:\n      name: terraform-example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe Sag Acl can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sag/acl:Acl example acl-abc123456\n```\n\n","properties":{"name":{"type":"string","description":"The name of the ACL instance. The name can contain 2 to 128 characters including a-z, A-Z, 0-9, periods, underlines, and hyphens. The name must start with an English letter, but cannot start with http:// or https://.\n"}},"required":["name"],"inputProperties":{"name":{"type":"string","description":"The name of the ACL instance. The name can contain 2 to 128 characters including a-z, A-Z, 0-9, periods, underlines, and hyphens. The name must start with an English letter, but cannot start with http:// or https://.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Acl resources.\n","properties":{"name":{"type":"string","description":"The name of the ACL instance. The name can contain 2 to 128 characters including a-z, A-Z, 0-9, periods, underlines, and hyphens. The name must start with an English letter, but cannot start with http:// or https://.\n"}},"type":"object"}},"alicloud:sag/aclRule:AclRule":{"description":"Provides a Sag Acl Rule resource. This topic describes how to configure an access control list (ACL) rule for a target Smart Access Gateway instance to permit or deny access to or from specified IP addresses in the ACL rule.\n\nFor information about Sag Acl Rule and how to use it, see [What is access control list (ACL) rule](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/addaclrule).\n\n\u003e **NOTE:** Available since v1.60.0.\n\n\u003e **NOTE:** Only the following regions support create Cloud Connect Network. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = new alicloud.sag.Acl(\"default\", {name: name});\nconst defaultAclRule = new alicloud.sag.AclRule(\"default\", {\n    aclId: _default.id,\n    description: name,\n    policy: \"accept\",\n    ipProtocol: \"ALL\",\n    direction: \"in\",\n    sourceCidr: \"10.10.1.0/24\",\n    sourcePortRange: \"-1/-1\",\n    destCidr: \"192.168.1.0/24\",\n    destPortRange: \"-1/-1\",\n    priority: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.sag.Acl(\"default\", name=name)\ndefault_acl_rule = alicloud.sag.AclRule(\"default\",\n    acl_id=default.id,\n    description=name,\n    policy=\"accept\",\n    ip_protocol=\"ALL\",\n    direction=\"in\",\n    source_cidr=\"10.10.1.0/24\",\n    source_port_range=\"-1/-1\",\n    dest_cidr=\"192.168.1.0/24\",\n    dest_port_range=\"-1/-1\",\n    priority=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = new AliCloud.Sag.Acl(\"default\", new()\n    {\n        Name = name,\n    });\n\n    var defaultAclRule = new AliCloud.Sag.AclRule(\"default\", new()\n    {\n        AclId = @default.Id,\n        Description = name,\n        Policy = \"accept\",\n        IpProtocol = \"ALL\",\n        Direction = \"in\",\n        SourceCidr = \"10.10.1.0/24\",\n        SourcePortRange = \"-1/-1\",\n        DestCidr = \"192.168.1.0/24\",\n        DestPortRange = \"-1/-1\",\n        Priority = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := sag.NewAcl(ctx, \"default\", \u0026sag.AclArgs{\n\t\t\tName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sag.NewAclRule(ctx, \"default\", \u0026sag.AclRuleArgs{\n\t\t\tAclId:           _default.ID(),\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tPolicy:          pulumi.String(\"accept\"),\n\t\t\tIpProtocol:      pulumi.String(\"ALL\"),\n\t\t\tDirection:       pulumi.String(\"in\"),\n\t\t\tSourceCidr:      pulumi.String(\"10.10.1.0/24\"),\n\t\t\tSourcePortRange: pulumi.String(\"-1/-1\"),\n\t\t\tDestCidr:        pulumi.String(\"192.168.1.0/24\"),\n\t\t\tDestPortRange:   pulumi.String(\"-1/-1\"),\n\t\t\tPriority:        pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.Acl;\nimport com.pulumi.alicloud.sag.AclArgs;\nimport com.pulumi.alicloud.sag.AclRule;\nimport com.pulumi.alicloud.sag.AclRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var default_ = new Acl(\"default\", AclArgs.builder()\n            .name(name)\n            .build());\n\n        var defaultAclRule = new AclRule(\"defaultAclRule\", AclRuleArgs.builder()\n            .aclId(default_.id())\n            .description(name)\n            .policy(\"accept\")\n            .ipProtocol(\"ALL\")\n            .direction(\"in\")\n            .sourceCidr(\"10.10.1.0/24\")\n            .sourcePortRange(\"-1/-1\")\n            .destCidr(\"192.168.1.0/24\")\n            .destPortRange(\"-1/-1\")\n            .priority(1)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  default:\n    type: alicloud:sag:Acl\n    properties:\n      name: ${name}\n  defaultAclRule:\n    type: alicloud:sag:AclRule\n    name: default\n    properties:\n      aclId: ${default.id}\n      description: ${name}\n      policy: accept\n      ipProtocol: ALL\n      direction: in\n      sourceCidr: 10.10.1.0/24\n      sourcePortRange: -1/-1\n      destCidr: 192.168.1.0/24\n      destPortRange: -1/-1\n      priority: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe Sag Acl Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sag/aclRule:AclRule example acr-abc123456\n```\n\n","properties":{"aclId":{"type":"string","description":"The ID of the ACL.\n"},"description":{"type":"string","description":"The description of the ACL rule. It must be 1 to 512 characters in length.\n"},"destCidr":{"type":"string","description":"The destination address. It is an IPv4 address range in CIDR format. Default value: 0.0.0.0/0.\n"},"destPortRange":{"type":"string","description":"The range of the destination port. Valid value: 80/80.\n"},"direction":{"type":"string","description":"The direction of the ACL rule. Valid values: in|out.\n"},"ipProtocol":{"type":"string","description":"The protocol used by the ACL rule. The value is not case sensitive.\n"},"policy":{"type":"string","description":"The policy used by the ACL rule. Valid values: accept|drop.\n"},"priority":{"type":"integer","description":"The priority of the ACL rule. Value range: 1 to 100.\n"},"sourceCidr":{"type":"string","description":"The source address. It is an IPv4 address range in the CIDR format. Default value: 0.0.0.0/0.\n"},"sourcePortRange":{"type":"string","description":"The range of the source port. Valid value: 80/80.\n"}},"required":["aclId","destCidr","destPortRange","direction","ipProtocol","policy","sourceCidr","sourcePortRange"],"inputProperties":{"aclId":{"type":"string","description":"The ID of the ACL.\n"},"description":{"type":"string","description":"The description of the ACL rule. It must be 1 to 512 characters in length.\n"},"destCidr":{"type":"string","description":"The destination address. It is an IPv4 address range in CIDR format. Default value: 0.0.0.0/0.\n"},"destPortRange":{"type":"string","description":"The range of the destination port. Valid value: 80/80.\n"},"direction":{"type":"string","description":"The direction of the ACL rule. Valid values: in|out.\n"},"ipProtocol":{"type":"string","description":"The protocol used by the ACL rule. The value is not case sensitive.\n"},"policy":{"type":"string","description":"The policy used by the ACL rule. Valid values: accept|drop.\n"},"priority":{"type":"integer","description":"The priority of the ACL rule. Value range: 1 to 100.\n"},"sourceCidr":{"type":"string","description":"The source address. It is an IPv4 address range in the CIDR format. Default value: 0.0.0.0/0.\n"},"sourcePortRange":{"type":"string","description":"The range of the source port. Valid value: 80/80.\n"}},"requiredInputs":["aclId","destCidr","destPortRange","direction","ipProtocol","policy","sourceCidr","sourcePortRange"],"stateInputs":{"description":"Input properties used for looking up and filtering AclRule resources.\n","properties":{"aclId":{"type":"string","description":"The ID of the ACL.\n"},"description":{"type":"string","description":"The description of the ACL rule. It must be 1 to 512 characters in length.\n"},"destCidr":{"type":"string","description":"The destination address. It is an IPv4 address range in CIDR format. Default value: 0.0.0.0/0.\n"},"destPortRange":{"type":"string","description":"The range of the destination port. Valid value: 80/80.\n"},"direction":{"type":"string","description":"The direction of the ACL rule. Valid values: in|out.\n"},"ipProtocol":{"type":"string","description":"The protocol used by the ACL rule. The value is not case sensitive.\n"},"policy":{"type":"string","description":"The policy used by the ACL rule. Valid values: accept|drop.\n"},"priority":{"type":"integer","description":"The priority of the ACL rule. Value range: 1 to 100.\n"},"sourceCidr":{"type":"string","description":"The source address. It is an IPv4 address range in the CIDR format. Default value: 0.0.0.0/0.\n"},"sourcePortRange":{"type":"string","description":"The range of the source port. Valid value: 80/80.\n"}},"type":"object"}},"alicloud:sag/clientUser:ClientUser":{"description":"Provides a Sag ClientUser resource. This topic describes how to manage accounts as an administrator. After you configure the network, you can create multiple accounts and distribute them to end users so that clients can access Alibaba Cloud.\n\nFor information about Sag ClientUser and how to use it, see [What is Sag ClientUser](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/createsmartaccessgatewayclientuser).\n\n\u003e **NOTE:** Available since v1.65.0.\n\n\u003e **NOTE:** Only the following regions support. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst sagId = config.get(\"sagId\") || \"sag-9bifkfaz4fg***\";\nconst _default = new alicloud.sag.ClientUser(\"default\", {\n    sagId: sagId,\n    bandwidth: 20,\n    userMail: \"tf-example@abc.com\",\n    userName: name,\n    password: \"example1234\",\n    clientIp: \"192.1.10.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nsag_id = config.get(\"sagId\")\nif sag_id is None:\n    sag_id = \"sag-9bifkfaz4fg***\"\ndefault = alicloud.sag.ClientUser(\"default\",\n    sag_id=sag_id,\n    bandwidth=20,\n    user_mail=\"tf-example@abc.com\",\n    user_name=name,\n    password=\"example1234\",\n    client_ip=\"192.1.10.0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var sagId = config.Get(\"sagId\") ?? \"sag-9bifkfaz4fg***\";\n    var @default = new AliCloud.Sag.ClientUser(\"default\", new()\n    {\n        SagId = sagId,\n        Bandwidth = 20,\n        UserMail = \"tf-example@abc.com\",\n        UserName = name,\n        Password = \"example1234\",\n        ClientIp = \"192.1.10.0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tsagId := \"sag-9bifkfaz4fg***\"\n\t\tif param := cfg.Get(\"sagId\"); param != \"\" {\n\t\t\tsagId = param\n\t\t}\n\t\t_, err := sag.NewClientUser(ctx, \"default\", \u0026sag.ClientUserArgs{\n\t\t\tSagId:     pulumi.String(sagId),\n\t\t\tBandwidth: pulumi.Int(20),\n\t\t\tUserMail:  pulumi.String(\"tf-example@abc.com\"),\n\t\t\tUserName:  pulumi.String(name),\n\t\t\tPassword:  pulumi.String(\"example1234\"),\n\t\t\tClientIp:  pulumi.String(\"192.1.10.0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.ClientUser;\nimport com.pulumi.alicloud.sag.ClientUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var sagId = config.get(\"sagId\").orElse(\"sag-9bifkfaz4fg***\");\n        var default_ = new ClientUser(\"default\", ClientUserArgs.builder()\n            .sagId(sagId)\n            .bandwidth(20)\n            .userMail(\"tf-example@abc.com\")\n            .userName(name)\n            .password(\"example1234\")\n            .clientIp(\"192.1.10.0\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\n  sagId:\n    type: string\n    default: sag-9bifkfaz4fg***\nresources:\n  default:\n    type: alicloud:sag:ClientUser\n    properties:\n      sagId: ${sagId}\n      bandwidth: '20'\n      userMail: tf-example@abc.com\n      userName: ${name}\n      password: example1234\n      clientIp: 192.1.10.0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe Sag ClientUser can be imported using the name, e.g.\n\n```sh\n$ pulumi import alicloud:sag/clientUser:ClientUser example sag-abc123456:tf-username-abc123456\n```\n\n","properties":{"bandwidth":{"type":"integer","description":"The SAG APP bandwidth that the user can use. Unit: Kbit/s. Maximum value: 2000 Kbit/s.\n"},"clientIp":{"type":"string","description":"The IP address of the SAG APP. If you specify this parameter, the current account always uses the specified IP address.Note The IP address must be in the private CIDR block of the SAG client.If you do not specify this parameter, the system automatically allocates an IP address from the private CIDR block of the SAG client. In this case, each re-connection uses a different IP address.\n"},"kmsEncryptedPassword":{"type":"string","description":"The password of the KMS Encryption.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"The context of the KMS Encryption.\n"},"password":{"type":"string","description":"The password used to log on to the SAG APP.Both the user name and the password must be specified. If you specify the user name, the password must be specified, too.\n"},"sagId":{"type":"string","description":"The ID of the SAG instance created for the SAG APP.\n"},"userMail":{"type":"string","description":"The email address of the user. The administrator uses this address to send the account information for logging on to the APP to the user.\n"},"userName":{"type":"string","description":"The user name. User names in the same SAG APP must be unique.Both the user name and the password must be specified. If you specify the user name, the password must be specified, too.\n"}},"required":["bandwidth","password","sagId","userMail","userName"],"inputProperties":{"bandwidth":{"type":"integer","description":"The SAG APP bandwidth that the user can use. Unit: Kbit/s. Maximum value: 2000 Kbit/s.\n"},"clientIp":{"type":"string","description":"The IP address of the SAG APP. If you specify this parameter, the current account always uses the specified IP address.Note The IP address must be in the private CIDR block of the SAG client.If you do not specify this parameter, the system automatically allocates an IP address from the private CIDR block of the SAG client. In this case, each re-connection uses a different IP address.\n","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"The password of the KMS Encryption.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"The context of the KMS Encryption.\n"},"password":{"type":"string","description":"The password used to log on to the SAG APP.Both the user name and the password must be specified. If you specify the user name, the password must be specified, too.\n","willReplaceOnChanges":true},"sagId":{"type":"string","description":"The ID of the SAG instance created for the SAG APP.\n","willReplaceOnChanges":true},"userMail":{"type":"string","description":"The email address of the user. The administrator uses this address to send the account information for logging on to the APP to the user.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"The user name. User names in the same SAG APP must be unique.Both the user name and the password must be specified. If you specify the user name, the password must be specified, too.\n","willReplaceOnChanges":true}},"requiredInputs":["bandwidth","sagId","userMail"],"stateInputs":{"description":"Input properties used for looking up and filtering ClientUser resources.\n","properties":{"bandwidth":{"type":"integer","description":"The SAG APP bandwidth that the user can use. Unit: Kbit/s. Maximum value: 2000 Kbit/s.\n"},"clientIp":{"type":"string","description":"The IP address of the SAG APP. If you specify this parameter, the current account always uses the specified IP address.Note The IP address must be in the private CIDR block of the SAG client.If you do not specify this parameter, the system automatically allocates an IP address from the private CIDR block of the SAG client. In this case, each re-connection uses a different IP address.\n","willReplaceOnChanges":true},"kmsEncryptedPassword":{"type":"string","description":"The password of the KMS Encryption.\n"},"kmsEncryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"The context of the KMS Encryption.\n"},"password":{"type":"string","description":"The password used to log on to the SAG APP.Both the user name and the password must be specified. If you specify the user name, the password must be specified, too.\n","willReplaceOnChanges":true},"sagId":{"type":"string","description":"The ID of the SAG instance created for the SAG APP.\n","willReplaceOnChanges":true},"userMail":{"type":"string","description":"The email address of the user. The administrator uses this address to send the account information for logging on to the APP to the user.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"The user name. User names in the same SAG APP must be unique.Both the user name and the password must be specified. If you specify the user name, the password must be specified, too.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"alicloud:rocketmq/clientUser:ClientUser"}]},"alicloud:sag/dnatEntry:DnatEntry":{"description":"Provides a Sag DnatEntry resource. This topic describes how to add a DNAT entry to a Smart Access Gateway (SAG) instance to enable the DNAT function. By using the DNAT function, you can forward requests received by public IP addresses to Alibaba Cloud instances according to custom mapping rules.\n\nFor information about Sag DnatEntry and how to use it, see [What is Sag DnatEntry](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/adddnatentry).\n\n\u003e **NOTE:** Available since v1.63.0.\n\n\u003e **NOTE:** Only the following regions suppor. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst sagId = config.get(\"sagId\") || \"sag-9bifkfaz***\";\nconst _default = new alicloud.sag.DnatEntry(\"default\", {\n    sagId: sagId,\n    type: \"Intranet\",\n    ipProtocol: \"any\",\n    externalIp: \"172.32.0.2\",\n    externalPort: \"any\",\n    internalIp: \"172.16.0.4\",\n    internalPort: \"any\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nsag_id = config.get(\"sagId\")\nif sag_id is None:\n    sag_id = \"sag-9bifkfaz***\"\ndefault = alicloud.sag.DnatEntry(\"default\",\n    sag_id=sag_id,\n    type=\"Intranet\",\n    ip_protocol=\"any\",\n    external_ip=\"172.32.0.2\",\n    external_port=\"any\",\n    internal_ip=\"172.16.0.4\",\n    internal_port=\"any\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var sagId = config.Get(\"sagId\") ?? \"sag-9bifkfaz***\";\n    var @default = new AliCloud.Sag.DnatEntry(\"default\", new()\n    {\n        SagId = sagId,\n        Type = \"Intranet\",\n        IpProtocol = \"any\",\n        ExternalIp = \"172.32.0.2\",\n        ExternalPort = \"any\",\n        InternalIp = \"172.16.0.4\",\n        InternalPort = \"any\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsagId := \"sag-9bifkfaz***\"\n\t\tif param := cfg.Get(\"sagId\"); param != \"\" {\n\t\t\tsagId = param\n\t\t}\n\t\t_, err := sag.NewDnatEntry(ctx, \"default\", \u0026sag.DnatEntryArgs{\n\t\t\tSagId:        pulumi.String(sagId),\n\t\t\tType:         pulumi.String(\"Intranet\"),\n\t\t\tIpProtocol:   pulumi.String(\"any\"),\n\t\t\tExternalIp:   pulumi.String(\"172.32.0.2\"),\n\t\t\tExternalPort: pulumi.String(\"any\"),\n\t\t\tInternalIp:   pulumi.String(\"172.16.0.4\"),\n\t\t\tInternalPort: pulumi.String(\"any\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.DnatEntry;\nimport com.pulumi.alicloud.sag.DnatEntryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var sagId = config.get(\"sagId\").orElse(\"sag-9bifkfaz***\");\n        var default_ = new DnatEntry(\"default\", DnatEntryArgs.builder()\n            .sagId(sagId)\n            .type(\"Intranet\")\n            .ipProtocol(\"any\")\n            .externalIp(\"172.32.0.2\")\n            .externalPort(\"any\")\n            .internalIp(\"172.16.0.4\")\n            .internalPort(\"any\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  sagId:\n    type: string\n    default: sag-9bifkfaz***\nresources:\n  default:\n    type: alicloud:sag:DnatEntry\n    properties:\n      sagId: ${sagId}\n      type: Intranet\n      ipProtocol: any\n      externalIp: 172.32.0.2\n      externalPort: any\n      internalIp: 172.16.0.4\n      internalPort: any\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe Sag DnatEntry can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sag/dnatEntry:DnatEntry example sag-abc123456:dnat-abc123456\n```\n\n","properties":{"externalIp":{"type":"string","description":"The external public IP address.when \"type\" is \"Internet\",automatically identify the external ip.\n"},"externalPort":{"type":"string","description":"The public port.Value range: 1 to 65535 or \"any\".\n"},"internalIp":{"type":"string","description":"The destination private IP address.\n"},"internalPort":{"type":"string","description":"The destination private port.Value range: 1 to 65535 or \"any\".\n"},"ipProtocol":{"type":"string","description":"The protocol type. Valid values: TCP: Forwards packets of the TCP protocol. UDP: Forwards packets of the UDP protocol. Any: Forwards packets of all protocols.\n"},"sagId":{"type":"string","description":"The ID of the SAG instance.\n"},"type":{"type":"string","description":"The DNAT type. Valid values: Intranet: DNAT of private IP addresses. Internet: DNAT of public IP addresses\n"}},"required":["externalPort","internalIp","internalPort","ipProtocol","sagId","type"],"inputProperties":{"externalIp":{"type":"string","description":"The external public IP address.when \"type\" is \"Internet\",automatically identify the external ip.\n","willReplaceOnChanges":true},"externalPort":{"type":"string","description":"The public port.Value range: 1 to 65535 or \"any\".\n","willReplaceOnChanges":true},"internalIp":{"type":"string","description":"The destination private IP address.\n","willReplaceOnChanges":true},"internalPort":{"type":"string","description":"The destination private port.Value range: 1 to 65535 or \"any\".\n","willReplaceOnChanges":true},"ipProtocol":{"type":"string","description":"The protocol type. Valid values: TCP: Forwards packets of the TCP protocol. UDP: Forwards packets of the UDP protocol. Any: Forwards packets of all protocols.\n","willReplaceOnChanges":true},"sagId":{"type":"string","description":"The ID of the SAG instance.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The DNAT type. Valid values: Intranet: DNAT of private IP addresses. Internet: DNAT of public IP addresses\n","willReplaceOnChanges":true}},"requiredInputs":["externalPort","internalIp","internalPort","ipProtocol","sagId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering DnatEntry resources.\n","properties":{"externalIp":{"type":"string","description":"The external public IP address.when \"type\" is \"Internet\",automatically identify the external ip.\n","willReplaceOnChanges":true},"externalPort":{"type":"string","description":"The public port.Value range: 1 to 65535 or \"any\".\n","willReplaceOnChanges":true},"internalIp":{"type":"string","description":"The destination private IP address.\n","willReplaceOnChanges":true},"internalPort":{"type":"string","description":"The destination private port.Value range: 1 to 65535 or \"any\".\n","willReplaceOnChanges":true},"ipProtocol":{"type":"string","description":"The protocol type. Valid values: TCP: Forwards packets of the TCP protocol. UDP: Forwards packets of the UDP protocol. Any: Forwards packets of all protocols.\n","willReplaceOnChanges":true},"sagId":{"type":"string","description":"The ID of the SAG instance.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The DNAT type. Valid values: Intranet: DNAT of private IP addresses. Internet: DNAT of public IP addresses\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"alicloud:rocketmq/dnatEntry:DnatEntry"}]},"alicloud:sag/qos:Qos":{"description":"Provides a Sag Qos resource. Smart Access Gateway (SAG) supports quintuple-based QoS functions to differentiate traffic of different services and ensure high-priority traffic bandwidth.\n\nFor information about Sag Qos and how to use it, see [What is Qos](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/createqos).\n\n\u003e **NOTE:** Available since v1.60.0.\n\n\u003e **NOTE:** Only the following regions support. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.sag.Qos(\"default\", {name: \"terraform-example\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.sag.Qos(\"default\", name=\"terraform-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Sag.Qos(\"default\", new()\n    {\n        Name = \"terraform-example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sag.NewQos(ctx, \"default\", \u0026sag.QosArgs{\n\t\t\tName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.Qos;\nimport com.pulumi.alicloud.sag.QosArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Qos(\"default\", QosArgs.builder()\n            .name(\"terraform-example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:sag:Qos\n    properties:\n      name: terraform-example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe Sag Qos can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sag/qos:Qos example qos-abc123456\n```\n\n","properties":{"name":{"type":"string","description":"The name of the QoS policy to be created. The name can contain 2 to 128 characters including a-z, A-Z, 0-9, periods, underlines, and hyphens. The name must start with an English letter, but cannot start with http:// or https://.\n"}},"required":["name"],"inputProperties":{"name":{"type":"string","description":"The name of the QoS policy to be created. The name can contain 2 to 128 characters including a-z, A-Z, 0-9, periods, underlines, and hyphens. The name must start with an English letter, but cannot start with http:// or https://.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Qos resources.\n","properties":{"name":{"type":"string","description":"The name of the QoS policy to be created. The name can contain 2 to 128 characters including a-z, A-Z, 0-9, periods, underlines, and hyphens. The name must start with an English letter, but cannot start with http:// or https://.\n"}},"type":"object"},"aliases":[{"type":"alicloud:rocketmq/qos:Qos"}]},"alicloud:sag/qosCar:QosCar":{"description":"Provides a Sag Qos Car resource.\n\nFor information about Sag Qos Car and how to use it, see [What is Qos Car](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/createqoscar).\n\n\u003e **NOTE:** Available since v1.60.0.\n\n\u003e **NOTE:** Only the following regions support. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = new alicloud.sag.Qos(\"default\", {name: name});\nconst defaultQosCar = new alicloud.sag.QosCar(\"default\", {\n    qosId: _default.id,\n    name: name,\n    description: name,\n    priority: 1,\n    limitType: \"Absolute\",\n    minBandwidthAbs: 10,\n    maxBandwidthAbs: 20,\n    percentSourceType: \"InternetUpBandwidth\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.sag.Qos(\"default\", name=name)\ndefault_qos_car = alicloud.sag.QosCar(\"default\",\n    qos_id=default.id,\n    name=name,\n    description=name,\n    priority=1,\n    limit_type=\"Absolute\",\n    min_bandwidth_abs=10,\n    max_bandwidth_abs=20,\n    percent_source_type=\"InternetUpBandwidth\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = new AliCloud.Sag.Qos(\"default\", new()\n    {\n        Name = name,\n    });\n\n    var defaultQosCar = new AliCloud.Sag.QosCar(\"default\", new()\n    {\n        QosId = @default.Id,\n        Name = name,\n        Description = name,\n        Priority = 1,\n        LimitType = \"Absolute\",\n        MinBandwidthAbs = 10,\n        MaxBandwidthAbs = 20,\n        PercentSourceType = \"InternetUpBandwidth\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := sag.NewQos(ctx, \"default\", \u0026sag.QosArgs{\n\t\t\tName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sag.NewQosCar(ctx, \"default\", \u0026sag.QosCarArgs{\n\t\t\tQosId:             _default.ID(),\n\t\t\tName:              pulumi.String(name),\n\t\t\tDescription:       pulumi.String(name),\n\t\t\tPriority:          pulumi.Int(1),\n\t\t\tLimitType:         pulumi.String(\"Absolute\"),\n\t\t\tMinBandwidthAbs:   pulumi.Int(10),\n\t\t\tMaxBandwidthAbs:   pulumi.Int(20),\n\t\t\tPercentSourceType: pulumi.String(\"InternetUpBandwidth\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.Qos;\nimport com.pulumi.alicloud.sag.QosArgs;\nimport com.pulumi.alicloud.sag.QosCar;\nimport com.pulumi.alicloud.sag.QosCarArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var default_ = new Qos(\"default\", QosArgs.builder()\n            .name(name)\n            .build());\n\n        var defaultQosCar = new QosCar(\"defaultQosCar\", QosCarArgs.builder()\n            .qosId(default_.id())\n            .name(name)\n            .description(name)\n            .priority(1)\n            .limitType(\"Absolute\")\n            .minBandwidthAbs(10)\n            .maxBandwidthAbs(20)\n            .percentSourceType(\"InternetUpBandwidth\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  default:\n    type: alicloud:sag:Qos\n    properties:\n      name: ${name}\n  defaultQosCar:\n    type: alicloud:sag:QosCar\n    name: default\n    properties:\n      qosId: ${default.id}\n      name: ${name}\n      description: ${name}\n      priority: '1'\n      limitType: Absolute\n      minBandwidthAbs: '10'\n      maxBandwidthAbs: '20'\n      percentSourceType: InternetUpBandwidth\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe Sag Qos Car can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sag/qosCar:QosCar example \u003cqos_id\u003e:\u003cqos_car_id\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the QoS speed limiting rule.\n"},"limitType":{"type":"string","description":"The speed limiting method. Valid values: `Absolute`, `Percent`.\n"},"maxBandwidthAbs":{"type":"integer","description":"The maximum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType is Absolute.\n"},"maxBandwidthPercent":{"type":"integer","description":"The maximum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated Smart Access Gateway (SAG) instance.This parameter is required when the value of the LimitType parameter is Percent.\n"},"minBandwidthAbs":{"type":"integer","description":"The minimum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType parameter is Absolute.\n"},"minBandwidthPercent":{"type":"integer","description":"The minimum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated SAG instance.This parameter is required when the value of the LimitType parameter is Percent.\n"},"name":{"type":"string","description":"The name of the QoS speed limiting rule..\n"},"percentSourceType":{"type":"string","description":"The bandwidth type when the speed is limited based on percentage. Valid values: CcnBandwidth, InternetUpBandwidth.The default value is InternetUpBandwidth.\n"},"priority":{"type":"integer","description":"The priority of the specified stream.\n"},"qosId":{"type":"string","description":"The instance ID of the QoS.\n"}},"required":["limitType","name","priority","qosId"],"inputProperties":{"description":{"type":"string","description":"The description of the QoS speed limiting rule.\n"},"limitType":{"type":"string","description":"The speed limiting method. Valid values: `Absolute`, `Percent`.\n"},"maxBandwidthAbs":{"type":"integer","description":"The maximum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType is Absolute.\n"},"maxBandwidthPercent":{"type":"integer","description":"The maximum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated Smart Access Gateway (SAG) instance.This parameter is required when the value of the LimitType parameter is Percent.\n"},"minBandwidthAbs":{"type":"integer","description":"The minimum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType parameter is Absolute.\n"},"minBandwidthPercent":{"type":"integer","description":"The minimum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated SAG instance.This parameter is required when the value of the LimitType parameter is Percent.\n"},"name":{"type":"string","description":"The name of the QoS speed limiting rule..\n"},"percentSourceType":{"type":"string","description":"The bandwidth type when the speed is limited based on percentage. Valid values: CcnBandwidth, InternetUpBandwidth.The default value is InternetUpBandwidth.\n"},"priority":{"type":"integer","description":"The priority of the specified stream.\n"},"qosId":{"type":"string","description":"The instance ID of the QoS.\n"}},"requiredInputs":["limitType","priority","qosId"],"stateInputs":{"description":"Input properties used for looking up and filtering QosCar resources.\n","properties":{"description":{"type":"string","description":"The description of the QoS speed limiting rule.\n"},"limitType":{"type":"string","description":"The speed limiting method. Valid values: `Absolute`, `Percent`.\n"},"maxBandwidthAbs":{"type":"integer","description":"The maximum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType is Absolute.\n"},"maxBandwidthPercent":{"type":"integer","description":"The maximum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated Smart Access Gateway (SAG) instance.This parameter is required when the value of the LimitType parameter is Percent.\n"},"minBandwidthAbs":{"type":"integer","description":"The minimum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType parameter is Absolute.\n"},"minBandwidthPercent":{"type":"integer","description":"The minimum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated SAG instance.This parameter is required when the value of the LimitType parameter is Percent.\n"},"name":{"type":"string","description":"The name of the QoS speed limiting rule..\n"},"percentSourceType":{"type":"string","description":"The bandwidth type when the speed is limited based on percentage. Valid values: CcnBandwidth, InternetUpBandwidth.The default value is InternetUpBandwidth.\n"},"priority":{"type":"integer","description":"The priority of the specified stream.\n"},"qosId":{"type":"string","description":"The instance ID of the QoS.\n"}},"type":"object"},"aliases":[{"type":"alicloud:rocketmq/qosCar:QosCar"}]},"alicloud:sag/qosPolicy:QosPolicy":{"description":"Provides a Sag qos policy resource. \nYou need to create a QoS policy to set priorities, rate limits, and quintuple rules for different messages.\n\nFor information about Sag Qos Policy and how to use it, see [What is Qos Policy](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/createqospolicy).\n\n\u003e **NOTE:** Available since v1.60.0.\n\n\u003e **NOTE:** Only the following regions support. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\nimport * as time from \"@pulumi/time\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new alicloud.sag.Qos(\"default\", {name: name});\nconst example = new time.index.Static(\"example\", {});\nconst defaultQosPolicy = new alicloud.sag.QosPolicy(\"default\", {\n    qosId: _default.id,\n    name: name,\n    description: name,\n    priority: 1,\n    ipProtocol: \"ALL\",\n    sourceCidr: \"192.168.0.0/24\",\n    sourcePortRange: \"-1/-1\",\n    destCidr: \"10.10.0.0/24\",\n    destPortRange: \"-1/-1\",\n    startTime: std.replace({\n        text: example.rfc3339,\n        search: \"Z\",\n        replace: \"+0800\",\n    }).then(invoke =\u003e invoke.result),\n    endTime: std.timeadd({\n        duration: example.rfc3339,\n        timestamp: \"24h\",\n    }).then(invoke =\u003e std.replace({\n        text: invoke.result,\n        search: \"Z\",\n        replace: \"+0800\",\n    })).then(invoke =\u003e invoke.result),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\nimport pulumi_time as time\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.sag.Qos(\"default\", name=name)\nexample = time.index.Static(\"example\")\ndefault_qos_policy = alicloud.sag.QosPolicy(\"default\",\n    qos_id=default.id,\n    name=name,\n    description=name,\n    priority=1,\n    ip_protocol=\"ALL\",\n    source_cidr=\"192.168.0.0/24\",\n    source_port_range=\"-1/-1\",\n    dest_cidr=\"10.10.0.0/24\",\n    dest_port_range=\"-1/-1\",\n    start_time=std.replace(text=example[\"rfc3339\"],\n        search=\"Z\",\n        replace=\"+0800\").result,\n    end_time=std.replace(text=std.timeadd(duration=example[\"rfc3339\"],\n            timestamp=\"24h\").result,\n        search=\"Z\",\n        replace=\"+0800\").result)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new AliCloud.Sag.Qos(\"default\", new()\n    {\n        Name = name,\n    });\n\n    var example = new Time.Index.Static(\"example\");\n\n    var defaultQosPolicy = new AliCloud.Sag.QosPolicy(\"default\", new()\n    {\n        QosId = @default.Id,\n        Name = name,\n        Description = name,\n        Priority = 1,\n        IpProtocol = \"ALL\",\n        SourceCidr = \"192.168.0.0/24\",\n        SourcePortRange = \"-1/-1\",\n        DestCidr = \"10.10.0.0/24\",\n        DestPortRange = \"-1/-1\",\n        StartTime = Std.Replace.Invoke(new()\n        {\n            Text = example.Rfc3339,\n            Search = \"Z\",\n            Replace = \"+0800\",\n        }).Apply(invoke =\u003e invoke.Result),\n        EndTime = Std.Timeadd.Invoke(new()\n        {\n            Duration = example.Rfc3339,\n            Timestamp = \"24h\",\n        }).Apply(invoke =\u003e Std.Replace.Invoke(new()\n        {\n            Text = invoke.Result,\n            Search = \"Z\",\n            Replace = \"+0800\",\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := sag.NewQos(ctx, \"default\", \u0026sag.QosArgs{\n\t\t\tName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := time.NewStatic(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeReplace, err := std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\tText:    example.Rfc3339,\n\t\t\tSearch:  \"Z\",\n\t\t\tReplace: \"+0800\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeReplace1, err := std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\tText: std.Timeadd(ctx, \u0026std.TimeaddArgs{\n\t\t\t\tDuration:  example.Rfc3339,\n\t\t\t\tTimestamp: \"24h\",\n\t\t\t}, nil).Result,\n\t\t\tSearch:  \"Z\",\n\t\t\tReplace: \"+0800\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sag.NewQosPolicy(ctx, \"default\", \u0026sag.QosPolicyArgs{\n\t\t\tQosId:           _default.ID(),\n\t\t\tName:            pulumi.String(name),\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tPriority:        pulumi.Int(1),\n\t\t\tIpProtocol:      pulumi.String(\"ALL\"),\n\t\t\tSourceCidr:      pulumi.String(\"192.168.0.0/24\"),\n\t\t\tSourcePortRange: pulumi.String(\"-1/-1\"),\n\t\t\tDestCidr:        pulumi.String(\"10.10.0.0/24\"),\n\t\t\tDestPortRange:   pulumi.String(\"-1/-1\"),\n\t\t\tStartTime:       pulumi.String(invokeReplace.Result),\n\t\t\tEndTime:         pulumi.String(invokeReplace1.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.Qos;\nimport com.pulumi.alicloud.sag.QosArgs;\nimport com.pulumi.time.Static;\nimport com.pulumi.alicloud.sag.QosPolicy;\nimport com.pulumi.alicloud.sag.QosPolicyArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ReplaceArgs;\nimport com.pulumi.std.inputs.TimeaddArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new Qos(\"default\", QosArgs.builder()\n            .name(name)\n            .build());\n\n        var example = new Static(\"example\");\n\n        var defaultQosPolicy = new QosPolicy(\"defaultQosPolicy\", QosPolicyArgs.builder()\n            .qosId(default_.id())\n            .name(name)\n            .description(name)\n            .priority(1)\n            .ipProtocol(\"ALL\")\n            .sourceCidr(\"192.168.0.0/24\")\n            .sourcePortRange(\"-1/-1\")\n            .destCidr(\"10.10.0.0/24\")\n            .destPortRange(\"-1/-1\")\n            .startTime(StdFunctions.replace(ReplaceArgs.builder()\n                .text(example.rfc3339())\n                .search(\"Z\")\n                .replace(\"+0800\")\n                .build()).result())\n            .endTime(StdFunctions.replace(ReplaceArgs.builder()\n                .text(StdFunctions.timeadd(TimeaddArgs.builder()\n                    .duration(example.rfc3339())\n                    .timestamp(\"24h\")\n                    .build()).result())\n                .search(\"Z\")\n                .replace(\"+0800\")\n                .build()).result())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:sag:Qos\n    properties:\n      name: ${name}\n  example:\n    type: time:Static\n  defaultQosPolicy:\n    type: alicloud:sag:QosPolicy\n    name: default\n    properties:\n      qosId: ${default.id}\n      name: ${name}\n      description: ${name}\n      priority: '1'\n      ipProtocol: ALL\n      sourceCidr: 192.168.0.0/24\n      sourcePortRange: -1/-1\n      destCidr: 10.10.0.0/24\n      destPortRange: -1/-1\n      startTime:\n        fn::invoke:\n          function: std:replace\n          arguments:\n            text: ${example.rfc3339}\n            search: Z\n            replace: '+0800'\n          return: result\n      endTime:\n        fn::invoke:\n          function: std:replace\n          arguments:\n            text:\n              fn::invoke:\n                function: std:timeadd\n                arguments:\n                  duration: ${example.rfc3339}\n                  timestamp: 24h\n                return: result\n            search: Z\n            replace: '+0800'\n          return: result\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe Sag Qos Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sag/qosPolicy:QosPolicy example qos-abc123456:qospy-abc123456\n```\n\n","properties":{"description":{"type":"string","description":"The description of the QoS policy.\n"},"destCidr":{"type":"string","description":"The destination CIDR block.\n"},"destPortRange":{"type":"string","description":"The destination port range.\n"},"endTime":{"type":"string","description":"The expiration time of the quintuple rule.\n"},"ipProtocol":{"type":"string","description":"The transport layer protocol.\n"},"name":{"type":"string","description":"The name of the QoS policy.\n"},"priority":{"type":"integer","description":"The priority of the quintuple rule. A smaller value indicates a higher priority. If the priorities of two quintuple rules are the same, the rule created earlier is applied first.Value range: 1 to 7.\n"},"qosId":{"type":"string","description":"The instance ID of the QoS policy to which the quintuple rule is created.\n"},"sourceCidr":{"type":"string","description":"The source CIDR block.\n"},"sourcePortRange":{"type":"string","description":"The source port range of the transport layer.\n"},"startTime":{"type":"string","description":"The time when the quintuple rule takes effect.\n"}},"required":["destCidr","destPortRange","ipProtocol","name","priority","qosId","sourceCidr","sourcePortRange"],"inputProperties":{"description":{"type":"string","description":"The description of the QoS policy.\n"},"destCidr":{"type":"string","description":"The destination CIDR block.\n"},"destPortRange":{"type":"string","description":"The destination port range.\n"},"endTime":{"type":"string","description":"The expiration time of the quintuple rule.\n"},"ipProtocol":{"type":"string","description":"The transport layer protocol.\n"},"name":{"type":"string","description":"The name of the QoS policy.\n"},"priority":{"type":"integer","description":"The priority of the quintuple rule. A smaller value indicates a higher priority. If the priorities of two quintuple rules are the same, the rule created earlier is applied first.Value range: 1 to 7.\n"},"qosId":{"type":"string","description":"The instance ID of the QoS policy to which the quintuple rule is created.\n"},"sourceCidr":{"type":"string","description":"The source CIDR block.\n"},"sourcePortRange":{"type":"string","description":"The source port range of the transport layer.\n"},"startTime":{"type":"string","description":"The time when the quintuple rule takes effect.\n"}},"requiredInputs":["destCidr","destPortRange","ipProtocol","priority","qosId","sourceCidr","sourcePortRange"],"stateInputs":{"description":"Input properties used for looking up and filtering QosPolicy resources.\n","properties":{"description":{"type":"string","description":"The description of the QoS policy.\n"},"destCidr":{"type":"string","description":"The destination CIDR block.\n"},"destPortRange":{"type":"string","description":"The destination port range.\n"},"endTime":{"type":"string","description":"The expiration time of the quintuple rule.\n"},"ipProtocol":{"type":"string","description":"The transport layer protocol.\n"},"name":{"type":"string","description":"The name of the QoS policy.\n"},"priority":{"type":"integer","description":"The priority of the quintuple rule. A smaller value indicates a higher priority. If the priorities of two quintuple rules are the same, the rule created earlier is applied first.Value range: 1 to 7.\n"},"qosId":{"type":"string","description":"The instance ID of the QoS policy to which the quintuple rule is created.\n"},"sourceCidr":{"type":"string","description":"The source CIDR block.\n"},"sourcePortRange":{"type":"string","description":"The source port range of the transport layer.\n"},"startTime":{"type":"string","description":"The time when the quintuple rule takes effect.\n"}},"type":"object"},"aliases":[{"type":"alicloud:rocketmq/qosPolicy:QosPolicy"}]},"alicloud:sag/smartagFlowLog:SmartagFlowLog":{"description":"Provides a Smartag Flow Log resource.\n\nFor information about Smartag Flow Log and how to use it, see [What is Flow Log](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/createflowlog).\n\n\u003e **NOTE:** Available since v1.168.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.sag.SmartagFlowLog(\"example\", {\n    netflowServerIp: \"192.168.0.2\",\n    netflowServerPort: 9995,\n    netflowVersion: \"V9\",\n    outputType: \"netflow\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.sag.SmartagFlowLog(\"example\",\n    netflow_server_ip=\"192.168.0.2\",\n    netflow_server_port=9995,\n    netflow_version=\"V9\",\n    output_type=\"netflow\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Sag.SmartagFlowLog(\"example\", new()\n    {\n        NetflowServerIp = \"192.168.0.2\",\n        NetflowServerPort = 9995,\n        NetflowVersion = \"V9\",\n        OutputType = \"netflow\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sag.NewSmartagFlowLog(ctx, \"example\", \u0026sag.SmartagFlowLogArgs{\n\t\t\tNetflowServerIp:   pulumi.String(\"192.168.0.2\"),\n\t\t\tNetflowServerPort: pulumi.Int(9995),\n\t\t\tNetflowVersion:    pulumi.String(\"V9\"),\n\t\t\tOutputType:        pulumi.String(\"netflow\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.SmartagFlowLog;\nimport com.pulumi.alicloud.sag.SmartagFlowLogArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new SmartagFlowLog(\"example\", SmartagFlowLogArgs.builder()\n            .netflowServerIp(\"192.168.0.2\")\n            .netflowServerPort(9995)\n            .netflowVersion(\"V9\")\n            .outputType(\"netflow\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:sag:SmartagFlowLog\n    properties:\n      netflowServerIp: 192.168.0.2\n      netflowServerPort: 9995\n      netflowVersion: V9\n      outputType: netflow\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSmartag Flow Log can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sag/smartagFlowLog:SmartagFlowLog example \u003cid\u003e\n```\n\n","properties":{"activeAging":{"type":"integer","description":"The time interval at which log data of active connections is collected. Valid values: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`6000`\" pulumi-lang-dotnet=\"`6000`\" pulumi-lang-go=\"`6000`\" pulumi-lang-python=\"`6000`\" pulumi-lang-yaml=\"`6000`\" pulumi-lang-java=\"`6000`\"\u003e`6000`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e. Unit: second.\n"},"description":{"type":"string","description":"The description of the flow log.\n"},"flowLogName":{"type":"string","description":"The name of the flow log.\n"},"inactiveAging":{"type":"integer","description":"The time interval at which log data of inactive connections is connected. Valid values: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e. Unit: second.\n"},"logstoreName":{"type":"string","description":"The Logstore in Log Service. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`sls`\" pulumi-lang-dotnet=\"`Sls`\" pulumi-lang-go=\"`sls`\" pulumi-lang-python=\"`sls`\" pulumi-lang-yaml=\"`sls`\" pulumi-lang-java=\"`sls`\"\u003e`sls`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"netflowServerIp":{"type":"string","description":"The IP address of the NetFlow collector where the flow log is stored. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`netflow`\" pulumi-lang-dotnet=\"`Netflow`\" pulumi-lang-go=\"`netflow`\" pulumi-lang-python=\"`netflow`\" pulumi-lang-yaml=\"`netflow`\" pulumi-lang-java=\"`netflow`\"\u003e`netflow`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"netflowServerPort":{"type":"integer","description":"The port of the NetFlow collector. Default value: \u003cspan pulumi-lang-nodejs=\"`9995`\" pulumi-lang-dotnet=\"`9995`\" pulumi-lang-go=\"`9995`\" pulumi-lang-python=\"`9995`\" pulumi-lang-yaml=\"`9995`\" pulumi-lang-java=\"`9995`\"\u003e`9995`\u003c/span\u003e. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`netflow`\" pulumi-lang-dotnet=\"`Netflow`\" pulumi-lang-go=\"`netflow`\" pulumi-lang-python=\"`netflow`\" pulumi-lang-yaml=\"`netflow`\" pulumi-lang-java=\"`netflow`\"\u003e`netflow`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"netflowVersion":{"type":"string","description":"The NetFlow version. Default value: `V9`. Valid values: `V10`, `V5`, `V9`. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`netflow`\" pulumi-lang-dotnet=\"`Netflow`\" pulumi-lang-go=\"`netflow`\" pulumi-lang-python=\"`netflow`\" pulumi-lang-yaml=\"`netflow`\" pulumi-lang-java=\"`netflow`\"\u003e`netflow`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"outputType":{"type":"string","description":"The location where the flow log is stored. Valid values:\n"},"projectName":{"type":"string","description":"The project in Log Service. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`sls`\" pulumi-lang-dotnet=\"`Sls`\" pulumi-lang-go=\"`sls`\" pulumi-lang-python=\"`sls`\" pulumi-lang-yaml=\"`sls`\" pulumi-lang-java=\"`sls`\"\u003e`sls`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"slsRegionId":{"type":"string","description":"The ID of the region where Log Service is deployed. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`sls`\" pulumi-lang-dotnet=\"`Sls`\" pulumi-lang-go=\"`sls`\" pulumi-lang-python=\"`sls`\" pulumi-lang-yaml=\"`sls`\" pulumi-lang-java=\"`sls`\"\u003e`sls`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"status":{"type":"string","description":"The status of the flow log. Valid values:  `Active`: The flow log is enabled. `Inactive`: The flow log is disabled.\n"}},"required":["activeAging","inactiveAging","netflowServerPort","netflowVersion","outputType","status"],"inputProperties":{"activeAging":{"type":"integer","description":"The time interval at which log data of active connections is collected. Valid values: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`6000`\" pulumi-lang-dotnet=\"`6000`\" pulumi-lang-go=\"`6000`\" pulumi-lang-python=\"`6000`\" pulumi-lang-yaml=\"`6000`\" pulumi-lang-java=\"`6000`\"\u003e`6000`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e. Unit: second.\n"},"description":{"type":"string","description":"The description of the flow log.\n"},"flowLogName":{"type":"string","description":"The name of the flow log.\n"},"inactiveAging":{"type":"integer","description":"The time interval at which log data of inactive connections is connected. Valid values: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e. Unit: second.\n"},"logstoreName":{"type":"string","description":"The Logstore in Log Service. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`sls`\" pulumi-lang-dotnet=\"`Sls`\" pulumi-lang-go=\"`sls`\" pulumi-lang-python=\"`sls`\" pulumi-lang-yaml=\"`sls`\" pulumi-lang-java=\"`sls`\"\u003e`sls`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"netflowServerIp":{"type":"string","description":"The IP address of the NetFlow collector where the flow log is stored. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`netflow`\" pulumi-lang-dotnet=\"`Netflow`\" pulumi-lang-go=\"`netflow`\" pulumi-lang-python=\"`netflow`\" pulumi-lang-yaml=\"`netflow`\" pulumi-lang-java=\"`netflow`\"\u003e`netflow`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"netflowServerPort":{"type":"integer","description":"The port of the NetFlow collector. Default value: \u003cspan pulumi-lang-nodejs=\"`9995`\" pulumi-lang-dotnet=\"`9995`\" pulumi-lang-go=\"`9995`\" pulumi-lang-python=\"`9995`\" pulumi-lang-yaml=\"`9995`\" pulumi-lang-java=\"`9995`\"\u003e`9995`\u003c/span\u003e. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`netflow`\" pulumi-lang-dotnet=\"`Netflow`\" pulumi-lang-go=\"`netflow`\" pulumi-lang-python=\"`netflow`\" pulumi-lang-yaml=\"`netflow`\" pulumi-lang-java=\"`netflow`\"\u003e`netflow`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"netflowVersion":{"type":"string","description":"The NetFlow version. Default value: `V9`. Valid values: `V10`, `V5`, `V9`. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`netflow`\" pulumi-lang-dotnet=\"`Netflow`\" pulumi-lang-go=\"`netflow`\" pulumi-lang-python=\"`netflow`\" pulumi-lang-yaml=\"`netflow`\" pulumi-lang-java=\"`netflow`\"\u003e`netflow`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"outputType":{"type":"string","description":"The location where the flow log is stored. Valid values:\n"},"projectName":{"type":"string","description":"The project in Log Service. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`sls`\" pulumi-lang-dotnet=\"`Sls`\" pulumi-lang-go=\"`sls`\" pulumi-lang-python=\"`sls`\" pulumi-lang-yaml=\"`sls`\" pulumi-lang-java=\"`sls`\"\u003e`sls`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"slsRegionId":{"type":"string","description":"The ID of the region where Log Service is deployed. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`sls`\" pulumi-lang-dotnet=\"`Sls`\" pulumi-lang-go=\"`sls`\" pulumi-lang-python=\"`sls`\" pulumi-lang-yaml=\"`sls`\" pulumi-lang-java=\"`sls`\"\u003e`sls`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"status":{"type":"string","description":"The status of the flow log. Valid values:  `Active`: The flow log is enabled. `Inactive`: The flow log is disabled.\n"}},"requiredInputs":["outputType"],"stateInputs":{"description":"Input properties used for looking up and filtering SmartagFlowLog resources.\n","properties":{"activeAging":{"type":"integer","description":"The time interval at which log data of active connections is collected. Valid values: \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`6000`\" pulumi-lang-dotnet=\"`6000`\" pulumi-lang-go=\"`6000`\" pulumi-lang-python=\"`6000`\" pulumi-lang-yaml=\"`6000`\" pulumi-lang-java=\"`6000`\"\u003e`6000`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e. Unit: second.\n"},"description":{"type":"string","description":"The description of the flow log.\n"},"flowLogName":{"type":"string","description":"The name of the flow log.\n"},"inactiveAging":{"type":"integer","description":"The time interval at which log data of inactive connections is connected. Valid values: \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`600`\" pulumi-lang-dotnet=\"`600`\" pulumi-lang-go=\"`600`\" pulumi-lang-python=\"`600`\" pulumi-lang-yaml=\"`600`\" pulumi-lang-java=\"`600`\"\u003e`600`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e. Unit: second.\n"},"logstoreName":{"type":"string","description":"The Logstore in Log Service. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`sls`\" pulumi-lang-dotnet=\"`Sls`\" pulumi-lang-go=\"`sls`\" pulumi-lang-python=\"`sls`\" pulumi-lang-yaml=\"`sls`\" pulumi-lang-java=\"`sls`\"\u003e`sls`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"netflowServerIp":{"type":"string","description":"The IP address of the NetFlow collector where the flow log is stored. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`netflow`\" pulumi-lang-dotnet=\"`Netflow`\" pulumi-lang-go=\"`netflow`\" pulumi-lang-python=\"`netflow`\" pulumi-lang-yaml=\"`netflow`\" pulumi-lang-java=\"`netflow`\"\u003e`netflow`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"netflowServerPort":{"type":"integer","description":"The port of the NetFlow collector. Default value: \u003cspan pulumi-lang-nodejs=\"`9995`\" pulumi-lang-dotnet=\"`9995`\" pulumi-lang-go=\"`9995`\" pulumi-lang-python=\"`9995`\" pulumi-lang-yaml=\"`9995`\" pulumi-lang-java=\"`9995`\"\u003e`9995`\u003c/span\u003e. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`netflow`\" pulumi-lang-dotnet=\"`Netflow`\" pulumi-lang-go=\"`netflow`\" pulumi-lang-python=\"`netflow`\" pulumi-lang-yaml=\"`netflow`\" pulumi-lang-java=\"`netflow`\"\u003e`netflow`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"netflowVersion":{"type":"string","description":"The NetFlow version. Default value: `V9`. Valid values: `V10`, `V5`, `V9`. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`netflow`\" pulumi-lang-dotnet=\"`Netflow`\" pulumi-lang-go=\"`netflow`\" pulumi-lang-python=\"`netflow`\" pulumi-lang-yaml=\"`netflow`\" pulumi-lang-java=\"`netflow`\"\u003e`netflow`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"outputType":{"type":"string","description":"The location where the flow log is stored. Valid values:\n"},"projectName":{"type":"string","description":"The project in Log Service. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`sls`\" pulumi-lang-dotnet=\"`Sls`\" pulumi-lang-go=\"`sls`\" pulumi-lang-python=\"`sls`\" pulumi-lang-yaml=\"`sls`\" pulumi-lang-java=\"`sls`\"\u003e`sls`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"slsRegionId":{"type":"string","description":"The ID of the region where Log Service is deployed. If \u003cspan pulumi-lang-nodejs=\"`outputType`\" pulumi-lang-dotnet=\"`OutputType`\" pulumi-lang-go=\"`outputType`\" pulumi-lang-python=\"`output_type`\" pulumi-lang-yaml=\"`outputType`\" pulumi-lang-java=\"`outputType`\"\u003e`output_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`sls`\" pulumi-lang-dotnet=\"`Sls`\" pulumi-lang-go=\"`sls`\" pulumi-lang-python=\"`sls`\" pulumi-lang-yaml=\"`sls`\" pulumi-lang-java=\"`sls`\"\u003e`sls`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, this parameter is required.\n"},"status":{"type":"string","description":"The status of the flow log. Valid values:  `Active`: The flow log is enabled. `Inactive`: The flow log is disabled.\n"}},"type":"object"}},"alicloud:sag/snatEntry:SnatEntry":{"description":"Provides a Sag SnatEntry resource. This topic describes how to add a SNAT entry to enable the SNAT function. The SNAT function can hide internal IP addresses and resolve private IP address conflicts. With this function, on-premises sites can access internal IP addresses, but cannot be accessed by internal IP addresses. If you do not add a SNAT entry, on-premises sites can access each other only when all related IP addresses do not conflict.\n\nFor information about Sag SnatEntry and how to use it, see [What is Sag SnatEntry](https://www.alibabacloud.com/help/en/smart-access-gateway/latest/addsnatentry).\n\n\u003e **NOTE:** Available since v1.61.0.\n\n\u003e **NOTE:** Only the following regions support. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst sagId = config.get(\"sagId\") || \"sag-9bifk***\";\nconst _default = new alicloud.sag.SnatEntry(\"default\", {\n    sagId: sagId,\n    cidrBlock: \"192.168.7.0/24\",\n    snatIp: \"192.0.0.2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nsag_id = config.get(\"sagId\")\nif sag_id is None:\n    sag_id = \"sag-9bifk***\"\ndefault = alicloud.sag.SnatEntry(\"default\",\n    sag_id=sag_id,\n    cidr_block=\"192.168.7.0/24\",\n    snat_ip=\"192.0.0.2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var sagId = config.Get(\"sagId\") ?? \"sag-9bifk***\";\n    var @default = new AliCloud.Sag.SnatEntry(\"default\", new()\n    {\n        SagId = sagId,\n        CidrBlock = \"192.168.7.0/24\",\n        SnatIp = \"192.0.0.2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsagId := \"sag-9bifk***\"\n\t\tif param := cfg.Get(\"sagId\"); param != \"\" {\n\t\t\tsagId = param\n\t\t}\n\t\t_, err := sag.NewSnatEntry(ctx, \"default\", \u0026sag.SnatEntryArgs{\n\t\t\tSagId:     pulumi.String(sagId),\n\t\t\tCidrBlock: pulumi.String(\"192.168.7.0/24\"),\n\t\t\tSnatIp:    pulumi.String(\"192.0.0.2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.SnatEntry;\nimport com.pulumi.alicloud.sag.SnatEntryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var sagId = config.get(\"sagId\").orElse(\"sag-9bifk***\");\n        var default_ = new SnatEntry(\"default\", SnatEntryArgs.builder()\n            .sagId(sagId)\n            .cidrBlock(\"192.168.7.0/24\")\n            .snatIp(\"192.0.0.2\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  sagId:\n    type: string\n    default: sag-9bifk***\nresources:\n  default:\n    type: alicloud:sag:SnatEntry\n    properties:\n      sagId: ${sagId}\n      cidrBlock: 192.168.7.0/24\n      snatIp: 192.0.0.2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe Sag SnatEntry can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sag/snatEntry:SnatEntry example sag-abc123456:snat-abc123456\n```\n\n","properties":{"cidrBlock":{"type":"string","description":"The destination CIDR block.\n"},"sagId":{"type":"string","description":"The ID of the SAG instance.\n"},"snatIp":{"type":"string","description":"The public IP address.\n"}},"required":["cidrBlock","sagId","snatIp"],"inputProperties":{"cidrBlock":{"type":"string","description":"The destination CIDR block.\n","willReplaceOnChanges":true},"sagId":{"type":"string","description":"The ID of the SAG instance.\n","willReplaceOnChanges":true},"snatIp":{"type":"string","description":"The public IP address.\n","willReplaceOnChanges":true}},"requiredInputs":["cidrBlock","sagId","snatIp"],"stateInputs":{"description":"Input properties used for looking up and filtering SnatEntry resources.\n","properties":{"cidrBlock":{"type":"string","description":"The destination CIDR block.\n","willReplaceOnChanges":true},"sagId":{"type":"string","description":"The ID of the SAG instance.\n","willReplaceOnChanges":true},"snatIp":{"type":"string","description":"The public IP address.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"alicloud:rocketmq/snatEntry:SnatEntry"}]},"alicloud:scdn/domain:Domain":{"description":"Provides a SCDN Domain resource.\n\nFor information about SCDN Domain and how to use it, see [What is Domain](https://help.aliyun.com/document_detail/63672.html).\n\n\u003e **NOTE:** Available since v1.131.0.\n\n\u003e **NOTE:** Alibaba Cloud SCDN has stopped new customer purchases from January 26, 2023, and you can choose to buy Alibaba Cloud DCDN products with more comprehensive acceleration and protection capabilities. If you are already a SCDN customer, you can submit a work order at any time to apply for a smooth migration to Alibaba Cloud DCDN products. In the future, we will provide better acceleration and security protection services in Alibaba Cloud DCDN, thank you for your understanding and cooperation.\n\n\u003e **DEPRECATED:**  This resource has been [deprecated](https://www.aliyun.com/product/scdn) from version `1.219.0`.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.scdn.Domain(\"example\", {\n    domainName: \"my-Domain\",\n    sources: [{\n        content: \"xxx.aliyuncs.com\",\n        enabled: \"online\",\n        port: 80,\n        priority: \"20\",\n        type: \"oss\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.scdn.Domain(\"example\",\n    domain_name=\"my-Domain\",\n    sources=[{\n        \"content\": \"xxx.aliyuncs.com\",\n        \"enabled\": \"online\",\n        \"port\": 80,\n        \"priority\": \"20\",\n        \"type\": \"oss\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Scdn.Domain(\"example\", new()\n    {\n        DomainName = \"my-Domain\",\n        Sources = new[]\n        {\n            new AliCloud.Scdn.Inputs.DomainSourceArgs\n            {\n                Content = \"xxx.aliyuncs.com\",\n                Enabled = \"online\",\n                Port = 80,\n                Priority = \"20\",\n                Type = \"oss\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/scdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := scdn.NewDomain(ctx, \"example\", \u0026scdn.DomainArgs{\n\t\t\tDomainName: pulumi.String(\"my-Domain\"),\n\t\t\tSources: scdn.DomainSourceArray{\n\t\t\t\t\u0026scdn.DomainSourceArgs{\n\t\t\t\t\tContent:  pulumi.String(\"xxx.aliyuncs.com\"),\n\t\t\t\t\tEnabled:  pulumi.String(\"online\"),\n\t\t\t\t\tPort:     pulumi.Int(80),\n\t\t\t\t\tPriority: pulumi.String(\"20\"),\n\t\t\t\t\tType:     pulumi.String(\"oss\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.scdn.Domain;\nimport com.pulumi.alicloud.scdn.DomainArgs;\nimport com.pulumi.alicloud.scdn.inputs.DomainSourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Domain(\"example\", DomainArgs.builder()\n            .domainName(\"my-Domain\")\n            .sources(DomainSourceArgs.builder()\n                .content(\"xxx.aliyuncs.com\")\n                .enabled(\"online\")\n                .port(80)\n                .priority(\"20\")\n                .type(\"oss\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:scdn:Domain\n    properties:\n      domainName: my-Domain\n      sources:\n        - content: xxx.aliyuncs.com\n          enabled: online\n          port: 80\n          priority: '20'\n          type: oss\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSCDN Domain can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:scdn/domain:Domain example \u003cdomain_name\u003e\n```\n\n","properties":{"bizName":{"type":"string","description":"Attribute perm has been deprecated and suggest removing it from your template.\n","deprecationMessage":"Attribute\u003cspan pulumi-lang-nodejs=\" bizName \" pulumi-lang-dotnet=\" BizName \" pulumi-lang-go=\" bizName \" pulumi-lang-python=\" biz_name \" pulumi-lang-yaml=\" bizName \" pulumi-lang-java=\" bizName \"\u003e biz_name \u003c/span\u003ehas been deprecated and suggest removing it from your template."},"certInfos":{"type":"array","items":{"$ref":"#/types/alicloud:scdn/DomainCertInfo:DomainCertInfo"},"description":"Certificate Information. See the following `Block\u003cspan pulumi-lang-nodejs=\" certInfos`\" pulumi-lang-dotnet=\" CertInfos`\" pulumi-lang-go=\" certInfos`\" pulumi-lang-python=\" cert_infos`\" pulumi-lang-yaml=\" certInfos`\" pulumi-lang-java=\" certInfos`\"\u003e cert_infos`\u003c/span\u003e.\n"},"checkUrl":{"type":"string","description":"The health check url.\n"},"domainName":{"type":"string","description":"The name of domain.\n"},"forceSet":{"type":"string","description":"Whether to set certificate forcibly.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:scdn/DomainSource:DomainSource"},"description":"the Origin Server Information. See the following `Block sources`.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e.\n"}},"required":["domainName","resourceGroupId","sources","status"],"inputProperties":{"bizName":{"type":"string","description":"Attribute perm has been deprecated and suggest removing it from your template.\n","deprecationMessage":"Attribute\u003cspan pulumi-lang-nodejs=\" bizName \" pulumi-lang-dotnet=\" BizName \" pulumi-lang-go=\" bizName \" pulumi-lang-python=\" biz_name \" pulumi-lang-yaml=\" bizName \" pulumi-lang-java=\" bizName \"\u003e biz_name \u003c/span\u003ehas been deprecated and suggest removing it from your template."},"certInfos":{"type":"array","items":{"$ref":"#/types/alicloud:scdn/DomainCertInfo:DomainCertInfo"},"description":"Certificate Information. See the following `Block\u003cspan pulumi-lang-nodejs=\" certInfos`\" pulumi-lang-dotnet=\" CertInfos`\" pulumi-lang-go=\" certInfos`\" pulumi-lang-python=\" cert_infos`\" pulumi-lang-yaml=\" certInfos`\" pulumi-lang-java=\" certInfos`\"\u003e cert_infos`\u003c/span\u003e.\n"},"checkUrl":{"type":"string","description":"The health check url.\n"},"domainName":{"type":"string","description":"The name of domain.\n","willReplaceOnChanges":true},"forceSet":{"type":"string","description":"Whether to set certificate forcibly.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:scdn/DomainSource:DomainSource"},"description":"the Origin Server Information. See the following `Block sources`.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e.\n"}},"requiredInputs":["domainName","sources"],"stateInputs":{"description":"Input properties used for looking up and filtering Domain resources.\n","properties":{"bizName":{"type":"string","description":"Attribute perm has been deprecated and suggest removing it from your template.\n","deprecationMessage":"Attribute\u003cspan pulumi-lang-nodejs=\" bizName \" pulumi-lang-dotnet=\" BizName \" pulumi-lang-go=\" bizName \" pulumi-lang-python=\" biz_name \" pulumi-lang-yaml=\" bizName \" pulumi-lang-java=\" bizName \"\u003e biz_name \u003c/span\u003ehas been deprecated and suggest removing it from your template."},"certInfos":{"type":"array","items":{"$ref":"#/types/alicloud:scdn/DomainCertInfo:DomainCertInfo"},"description":"Certificate Information. See the following `Block\u003cspan pulumi-lang-nodejs=\" certInfos`\" pulumi-lang-dotnet=\" CertInfos`\" pulumi-lang-go=\" certInfos`\" pulumi-lang-python=\" cert_infos`\" pulumi-lang-yaml=\" certInfos`\" pulumi-lang-java=\" certInfos`\"\u003e cert_infos`\u003c/span\u003e.\n"},"checkUrl":{"type":"string","description":"The health check url.\n"},"domainName":{"type":"string","description":"The name of domain.\n","willReplaceOnChanges":true},"forceSet":{"type":"string","description":"Whether to set certificate forcibly.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:scdn/DomainSource:DomainSource"},"description":"the Origin Server Information. See the following `Block sources`.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:scdn/domainConfig:DomainConfig":{"description":"Provides a SCDN Accelerated Domain resource.\n\nFor information about domain config and how to use it, see [Batch set config](https://help.aliyun.com/document_detail/92912.html)\n\n\u003e **NOTE:** Available in v1.131.0+.\n\n\u003e **NOTE:** Alibaba Cloud SCDN has stopped new customer purchases from January 26, 2023, and you can choose to buy Alibaba Cloud DCDN products with more comprehensive acceleration and protection capabilities. If you are already a SCDN customer, you can submit a work order at any time to apply for a smooth migration to Alibaba Cloud DCDN products. In the future, we will provide better acceleration and security protection services in Alibaba Cloud DCDN, thank you for your understanding and cooperation.\n\n\u003e **DEPRECATED:**  This resource has been [deprecated](https://www.aliyun.com/product/scdn) from version `1.219.0`.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Create a new Domain config.\nconst domain = new alicloud.scdn.Domain(\"domain\", {\n    domainName: \"mydomain.alicloud-provider.cn\",\n    cdnType: \"web\",\n    scope: \"overseas\",\n    sources: [{\n        content: \"1.1.1.1\",\n        type: \"ipaddr\",\n        priority: \"20\",\n        port: 80,\n    }],\n});\nconst config = new alicloud.scdn.DomainConfig(\"config\", {\n    domainName: domain.domainName,\n    functionName: \"ip_allow_list_set\",\n    functionArgs: [{\n        argName: \"ip_list\",\n        argValue: \"110.110.110.110\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Create a new Domain config.\ndomain = alicloud.scdn.Domain(\"domain\",\n    domain_name=\"mydomain.alicloud-provider.cn\",\n    cdn_type=\"web\",\n    scope=\"overseas\",\n    sources=[{\n        \"content\": \"1.1.1.1\",\n        \"type\": \"ipaddr\",\n        \"priority\": \"20\",\n        \"port\": 80,\n    }])\nconfig = alicloud.scdn.DomainConfig(\"config\",\n    domain_name=domain.domain_name,\n    function_name=\"ip_allow_list_set\",\n    function_args=[{\n        \"arg_name\": \"ip_list\",\n        \"arg_value\": \"110.110.110.110\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new Domain config.\n    var domain = new AliCloud.Scdn.Domain(\"domain\", new()\n    {\n        DomainName = \"mydomain.alicloud-provider.cn\",\n        CdnType = \"web\",\n        Scope = \"overseas\",\n        Sources = new[]\n        {\n            new AliCloud.Scdn.Inputs.DomainSourceArgs\n            {\n                Content = \"1.1.1.1\",\n                Type = \"ipaddr\",\n                Priority = \"20\",\n                Port = 80,\n            },\n        },\n    });\n\n    var config = new AliCloud.Scdn.DomainConfig(\"config\", new()\n    {\n        DomainName = domain.DomainName,\n        FunctionName = \"ip_allow_list_set\",\n        FunctionArgs = new[]\n        {\n            new AliCloud.Scdn.Inputs.DomainConfigFunctionArgArgs\n            {\n                ArgName = \"ip_list\",\n                ArgValue = \"110.110.110.110\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/scdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new Domain config.\n\t\tdomain, err := scdn.NewDomain(ctx, \"domain\", \u0026scdn.DomainArgs{\n\t\t\tDomainName: pulumi.String(\"mydomain.alicloud-provider.cn\"),\n\t\t\tCdnType:    \"web\",\n\t\t\tScope:      \"overseas\",\n\t\t\tSources: scdn.DomainSourceArray{\n\t\t\t\t\u0026scdn.DomainSourceArgs{\n\t\t\t\t\tContent:  pulumi.String(\"1.1.1.1\"),\n\t\t\t\t\tType:     pulumi.String(\"ipaddr\"),\n\t\t\t\t\tPriority: pulumi.String(\"20\"),\n\t\t\t\t\tPort:     pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scdn.NewDomainConfig(ctx, \"config\", \u0026scdn.DomainConfigArgs{\n\t\t\tDomainName:   domain.DomainName,\n\t\t\tFunctionName: pulumi.String(\"ip_allow_list_set\"),\n\t\t\tFunctionArgs: scdn.DomainConfigFunctionArgArray{\n\t\t\t\t\u0026scdn.DomainConfigFunctionArgArgs{\n\t\t\t\t\tArgName:  pulumi.String(\"ip_list\"),\n\t\t\t\t\tArgValue: pulumi.String(\"110.110.110.110\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.scdn.Domain;\nimport com.pulumi.alicloud.scdn.DomainArgs;\nimport com.pulumi.alicloud.scdn.inputs.DomainSourceArgs;\nimport com.pulumi.alicloud.scdn.DomainConfig;\nimport com.pulumi.alicloud.scdn.DomainConfigArgs;\nimport com.pulumi.alicloud.scdn.inputs.DomainConfigFunctionArgArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new Domain config.\n        var domain = new Domain(\"domain\", DomainArgs.builder()\n            .domainName(\"mydomain.alicloud-provider.cn\")\n            .cdnType(\"web\")\n            .scope(\"overseas\")\n            .sources(DomainSourceArgs.builder()\n                .content(\"1.1.1.1\")\n                .type(\"ipaddr\")\n                .priority(\"20\")\n                .port(80)\n                .build())\n            .build());\n\n        var config = new DomainConfig(\"config\", DomainConfigArgs.builder()\n            .domainName(domain.domainName())\n            .functionName(\"ip_allow_list_set\")\n            .functionArgs(DomainConfigFunctionArgArgs.builder()\n                .argName(\"ip_list\")\n                .argValue(\"110.110.110.110\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new Domain config.\n  domain:\n    type: alicloud:scdn:Domain\n    properties:\n      domainName: mydomain.alicloud-provider.cn\n      cdnType: web\n      scope: overseas\n      sources:\n        - content: 1.1.1.1\n          type: ipaddr\n          priority: '20'\n          port: 80\n  config:\n    type: alicloud:scdn:DomainConfig\n    properties:\n      domainName: ${domain.domainName}\n      functionName: ip_allow_list_set\n      functionArgs:\n        - argName: ip_list\n          argValue: 110.110.110.110\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSCDN domain config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:scdn/domainConfig:DomainConfig example \u003cdomain_name\u003e:\u003cfunction_name\u003e:\u003cconfig_id\u003e\n```\n\n","properties":{"configId":{"type":"string","description":"The SCDN domain config id.\n"},"domainName":{"type":"string","description":"Name of the accelerated domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n"},"functionArgs":{"type":"array","items":{"$ref":"#/types/alicloud:scdn/DomainConfigFunctionArg:DomainConfigFunctionArg"},"description":"The args of the domain config.\n"},"functionName":{"type":"string","description":"The name of the domain config.\n"},"status":{"type":"string","description":"The status of this resource.\n"}},"required":["configId","domainName","functionArgs","functionName","status"],"inputProperties":{"domainName":{"type":"string","description":"Name of the accelerated domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","willReplaceOnChanges":true},"functionArgs":{"type":"array","items":{"$ref":"#/types/alicloud:scdn/DomainConfigFunctionArg:DomainConfigFunctionArg"},"description":"The args of the domain config.\n"},"functionName":{"type":"string","description":"The name of the domain config.\n","willReplaceOnChanges":true}},"requiredInputs":["domainName","functionArgs","functionName"],"stateInputs":{"description":"Input properties used for looking up and filtering DomainConfig resources.\n","properties":{"configId":{"type":"string","description":"The SCDN domain config id.\n"},"domainName":{"type":"string","description":"Name of the accelerated domain. This name without suffix can have a string of 1 to 63 characters, must contain only alphanumeric characters or \"-\", and must not begin or end with \"-\", and \"-\" must not in the 3th and 4th character positions at the same time. Suffix `.sh` and `.tel` are not supported.\n","willReplaceOnChanges":true},"functionArgs":{"type":"array","items":{"$ref":"#/types/alicloud:scdn/DomainConfigFunctionArg:DomainConfigFunctionArg"},"description":"The args of the domain config.\n"},"functionName":{"type":"string","description":"The name of the domain config.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of this resource.\n"}},"type":"object"}},"alicloud:schedulerx/appGroup:AppGroup":{"description":"Provides a Schedulerx App Group resource.\n\n\n\nFor information about Schedulerx App Group and how to use it, see [What is App Group](https://www.alibabacloud.com/help/en/schedulerx/schedulerx-serverless/developer-reference/api-schedulerx2-2019-04-30-createappgroup).\n\n\u003e **NOTE:** Available since v1.240.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst createNameSpace = new alicloud.schedulerx.Namespace(\"CreateNameSpace\", {\n    namespaceName: name,\n    description: name,\n});\nconst _default = new alicloud.schedulerx.AppGroup(\"default\", {\n    maxJobs: 100,\n    monitorContactsJson: JSON.stringify([\n        {\n            userName: \"name1\",\n            userPhone: \"89756******\",\n        },\n        {\n            userName: \"name2\",\n            ding: \"http://www.example.com\",\n        },\n    ]),\n    deleteJobs: false,\n    appType: 1,\n    namespaceSource: \"schedulerx\",\n    groupId: \"example-appgroup-pop-autoexample\",\n    namespaceName: \"default\",\n    description: name,\n    monitorConfigJson: JSON.stringify({\n        sendChannel: \"sms,ding\",\n    }),\n    appVersion: \"1\",\n    appName: \"example-appgroup-pop-autoexample\",\n    namespace: createNameSpace.namespaceUid,\n    enableLog: false,\n    scheduleBusyWorkers: false,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncreate_name_space = alicloud.schedulerx.Namespace(\"CreateNameSpace\",\n    namespace_name=name,\n    description=name)\ndefault = alicloud.schedulerx.AppGroup(\"default\",\n    max_jobs=100,\n    monitor_contacts_json=json.dumps([\n        {\n            \"userName\": \"name1\",\n            \"userPhone\": \"89756******\",\n        },\n        {\n            \"userName\": \"name2\",\n            \"ding\": \"http://www.example.com\",\n        },\n    ]),\n    delete_jobs=False,\n    app_type=1,\n    namespace_source=\"schedulerx\",\n    group_id=\"example-appgroup-pop-autoexample\",\n    namespace_name=\"default\",\n    description=name,\n    monitor_config_json=json.dumps({\n        \"sendChannel\": \"sms,ding\",\n    }),\n    app_version=\"1\",\n    app_name=\"example-appgroup-pop-autoexample\",\n    namespace=create_name_space.namespace_uid,\n    enable_log=False,\n    schedule_busy_workers=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var createNameSpace = new AliCloud.SchedulerX.Namespace(\"CreateNameSpace\", new()\n    {\n        NamespaceName = name,\n        Description = name,\n    });\n\n    var @default = new AliCloud.SchedulerX.AppGroup(\"default\", new()\n    {\n        MaxJobs = 100,\n        MonitorContactsJson = JsonSerializer.Serialize(new[]\n        {\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"userName\"] = \"name1\",\n                [\"userPhone\"] = \"89756******\",\n            },\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"userName\"] = \"name2\",\n                [\"ding\"] = \"http://www.example.com\",\n            },\n        }),\n        DeleteJobs = false,\n        AppType = 1,\n        NamespaceSource = \"schedulerx\",\n        GroupId = \"example-appgroup-pop-autoexample\",\n        NamespaceName = \"default\",\n        Description = name,\n        MonitorConfigJson = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"sendChannel\"] = \"sms,ding\",\n        }),\n        AppVersion = \"1\",\n        AppName = \"example-appgroup-pop-autoexample\",\n        Namespace = createNameSpace.NamespaceUid,\n        EnableLog = false,\n        ScheduleBusyWorkers = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/schedulerx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcreateNameSpace, err := schedulerx.NewNamespace(ctx, \"CreateNameSpace\", \u0026schedulerx.NamespaceArgs{\n\t\t\tNamespaceName: pulumi.String(name),\n\t\t\tDescription:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal([]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"userName\":  \"name1\",\n\t\t\t\t\"userPhone\": \"89756******\",\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"userName\": \"name2\",\n\t\t\t\t\"ding\":     \"http://www.example.com\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"sendChannel\": \"sms,ding\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_, err = schedulerx.NewAppGroup(ctx, \"default\", \u0026schedulerx.AppGroupArgs{\n\t\t\tMaxJobs:             pulumi.Int(100),\n\t\t\tMonitorContactsJson: pulumi.String(json0),\n\t\t\tDeleteJobs:          pulumi.Bool(false),\n\t\t\tAppType:             pulumi.Int(1),\n\t\t\tNamespaceSource:     pulumi.String(\"schedulerx\"),\n\t\t\tGroupId:             pulumi.String(\"example-appgroup-pop-autoexample\"),\n\t\t\tNamespaceName:       pulumi.String(\"default\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tMonitorConfigJson:   pulumi.String(json1),\n\t\t\tAppVersion:          pulumi.String(\"1\"),\n\t\t\tAppName:             pulumi.String(\"example-appgroup-pop-autoexample\"),\n\t\t\tNamespace:           createNameSpace.NamespaceUid,\n\t\t\tEnableLog:           pulumi.Bool(false),\n\t\t\tScheduleBusyWorkers: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.schedulerx.Namespace;\nimport com.pulumi.alicloud.schedulerx.NamespaceArgs;\nimport com.pulumi.alicloud.schedulerx.AppGroup;\nimport com.pulumi.alicloud.schedulerx.AppGroupArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var createNameSpace = new Namespace(\"createNameSpace\", NamespaceArgs.builder()\n            .namespaceName(name)\n            .description(name)\n            .build());\n\n        var default_ = new AppGroup(\"default\", AppGroupArgs.builder()\n            .maxJobs(100)\n            .monitorContactsJson(serializeJson(\n                jsonArray(\n                    jsonObject(\n                        jsonProperty(\"userName\", \"name1\"),\n                        jsonProperty(\"userPhone\", \"89756******\")\n                    ), \n                    jsonObject(\n                        jsonProperty(\"userName\", \"name2\"),\n                        jsonProperty(\"ding\", \"http://www.example.com\")\n                    )\n                )))\n            .deleteJobs(false)\n            .appType(1)\n            .namespaceSource(\"schedulerx\")\n            .groupId(\"example-appgroup-pop-autoexample\")\n            .namespaceName(\"default\")\n            .description(name)\n            .monitorConfigJson(serializeJson(\n                jsonObject(\n                    jsonProperty(\"sendChannel\", \"sms,ding\")\n                )))\n            .appVersion(\"1\")\n            .appName(\"example-appgroup-pop-autoexample\")\n            .namespace(createNameSpace.namespaceUid())\n            .enableLog(false)\n            .scheduleBusyWorkers(false)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createNameSpace:\n    type: alicloud:schedulerx:Namespace\n    name: CreateNameSpace\n    properties:\n      namespaceName: ${name}\n      description: ${name}\n  default:\n    type: alicloud:schedulerx:AppGroup\n    properties:\n      maxJobs: '100'\n      monitorContactsJson:\n        fn::toJSON:\n          - userName: name1\n            userPhone: 89756******\n          - userName: name2\n            ding: http://www.example.com\n      deleteJobs: 'false'\n      appType: '1'\n      namespaceSource: schedulerx\n      groupId: example-appgroup-pop-autoexample\n      namespaceName: default\n      description: ${name}\n      monitorConfigJson:\n        fn::toJSON:\n          sendChannel: sms,ding\n      appVersion: '1'\n      appName: example-appgroup-pop-autoexample\n      namespace: ${createNameSpace.namespaceUid}\n      enableLog: 'false'\n      scheduleBusyWorkers: 'false'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSchedulerx App Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:schedulerx/appGroup:AppGroup example \u003cnamespace\u003e:\u003cgroup_id\u003e\n```\n\n","properties":{"appName":{"type":"string","description":"Application Name\n"},"appType":{"type":"integer","description":"Application type.\n- 1, general application.\n- 2, k8s application.\n"},"appVersion":{"type":"string","description":"Application Version, 1: Basic Edition, 2: Professional Edition\n"},"deleteJobs":{"type":"boolean","description":"Whether to delete the task in the application Group. The values are as follows:\n"},"description":{"type":"string","description":"Application Description\n"},"enableLog":{"type":"boolean","description":"Whether to enable the log.\n- true: On\n- false: Close\n"},"groupId":{"type":"string","description":"Application ID\n"},"maxConcurrency":{"type":"integer","description":"The maximum number of instances running at the same time. The default value is 1, that is, the last trigger is not completed, and the next trigger will not be performed even at the running time.\n"},"maxJobs":{"type":"integer","description":"Application Grouping Configurable Maximum Number of Tasks\n"},"monitorConfigJson":{"type":"string","description":"Alarm configuration JSON field. For more information about this field, see **Request Parameters * *.\n"},"monitorContactsJson":{"type":"string","description":"Alarm contact JSON format.\n"},"namespace":{"type":"string","description":"The namespace ID, which is obtained on the namespace page of the console.\n"},"namespaceName":{"type":"string","description":"The namespace name.\n"},"namespaceSource":{"type":"string","description":"Not supported for the time being, no need to fill in.\n"},"scheduleBusyWorkers":{"type":"boolean","description":"Whether to schedule a busy machine.\n"}},"required":["appName","appVersion","groupId","maxJobs","namespace","namespaceName"],"inputProperties":{"appName":{"type":"string","description":"Application Name\n","willReplaceOnChanges":true},"appType":{"type":"integer","description":"Application type.\n- 1, general application.\n- 2, k8s application.\n"},"appVersion":{"type":"string","description":"Application Version, 1: Basic Edition, 2: Professional Edition\n"},"deleteJobs":{"type":"boolean","description":"Whether to delete the task in the application Group. The values are as follows:\n"},"description":{"type":"string","description":"Application Description\n"},"enableLog":{"type":"boolean","description":"Whether to enable the log.\n- true: On\n- false: Close\n"},"groupId":{"type":"string","description":"Application ID\n","willReplaceOnChanges":true},"maxConcurrency":{"type":"integer","description":"The maximum number of instances running at the same time. The default value is 1, that is, the last trigger is not completed, and the next trigger will not be performed even at the running time.\n"},"maxJobs":{"type":"integer","description":"Application Grouping Configurable Maximum Number of Tasks\n","willReplaceOnChanges":true},"monitorConfigJson":{"type":"string","description":"Alarm configuration JSON field. For more information about this field, see **Request Parameters * *.\n"},"monitorContactsJson":{"type":"string","description":"Alarm contact JSON format.\n"},"namespace":{"type":"string","description":"The namespace ID, which is obtained on the namespace page of the console.\n","willReplaceOnChanges":true},"namespaceName":{"type":"string","description":"The namespace name.\n"},"namespaceSource":{"type":"string","description":"Not supported for the time being, no need to fill in.\n"},"scheduleBusyWorkers":{"type":"boolean","description":"Whether to schedule a busy machine.\n"}},"requiredInputs":["appName","groupId","namespace","namespaceName"],"stateInputs":{"description":"Input properties used for looking up and filtering AppGroup resources.\n","properties":{"appName":{"type":"string","description":"Application Name\n","willReplaceOnChanges":true},"appType":{"type":"integer","description":"Application type.\n- 1, general application.\n- 2, k8s application.\n"},"appVersion":{"type":"string","description":"Application Version, 1: Basic Edition, 2: Professional Edition\n"},"deleteJobs":{"type":"boolean","description":"Whether to delete the task in the application Group. The values are as follows:\n"},"description":{"type":"string","description":"Application Description\n"},"enableLog":{"type":"boolean","description":"Whether to enable the log.\n- true: On\n- false: Close\n"},"groupId":{"type":"string","description":"Application ID\n","willReplaceOnChanges":true},"maxConcurrency":{"type":"integer","description":"The maximum number of instances running at the same time. The default value is 1, that is, the last trigger is not completed, and the next trigger will not be performed even at the running time.\n"},"maxJobs":{"type":"integer","description":"Application Grouping Configurable Maximum Number of Tasks\n","willReplaceOnChanges":true},"monitorConfigJson":{"type":"string","description":"Alarm configuration JSON field. For more information about this field, see **Request Parameters * *.\n"},"monitorContactsJson":{"type":"string","description":"Alarm contact JSON format.\n"},"namespace":{"type":"string","description":"The namespace ID, which is obtained on the namespace page of the console.\n","willReplaceOnChanges":true},"namespaceName":{"type":"string","description":"The namespace name.\n"},"namespaceSource":{"type":"string","description":"Not supported for the time being, no need to fill in.\n"},"scheduleBusyWorkers":{"type":"boolean","description":"Whether to schedule a busy machine.\n"}},"type":"object"}},"alicloud:schedulerx/job:Job":{"description":"Provides a Schedulerx Job resource.\n\n\n\nFor information about Schedulerx Job and how to use it, see [What is Job](https://www.alibabacloud.com/help/en/schedulerx/schedulerx-serverless/developer-reference/api-schedulerx2-2019-04-30-createjob).\n\n\u003e **NOTE:** Available since v1.240.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst createNameSpace = new alicloud.schedulerx.Namespace(\"CreateNameSpace\", {\n    namespaceName: name,\n    description: name,\n});\nconst _default = new alicloud.schedulerx.AppGroup(\"default\", {\n    maxJobs: 100,\n    monitorContactsJson: JSON.stringify([\n        {\n            userName: \"name1\",\n            userPhone: \"89756******\",\n        },\n        {\n            userName: \"name2\",\n            ding: \"http://www.example.com\",\n        },\n    ]),\n    deleteJobs: false,\n    appType: 1,\n    namespaceSource: \"schedulerx\",\n    groupId: \"example-appgroup-pop-autoexample\",\n    namespaceName: \"default\",\n    description: name,\n    monitorConfigJson: JSON.stringify({\n        sendChannel: \"sms,ding\",\n    }),\n    appVersion: \"1\",\n    appName: \"example-appgroup-pop-autoexample\",\n    namespace: createNameSpace.namespaceUid,\n    enableLog: false,\n    scheduleBusyWorkers: false,\n});\nconst defaultJob = new alicloud.schedulerx.Job(\"default\", {\n    timezone: \"GTM+7\",\n    status: \"Enable\",\n    maxAttempt: 0,\n    description: name,\n    parameters: \"hello word\",\n    jobName: name,\n    maxConcurrency: \"1\",\n    timeConfig: {\n        dataOffset: 1,\n        timeExpression: \"100000\",\n        timeType: 3,\n        calendar: \"workday\",\n    },\n    mapTaskXattrs: {\n        taskMaxAttempt: 1,\n        taskAttemptInterval: 1,\n        consumerSize: 5,\n        queueSize: 10000,\n        dispatcherSize: 5,\n        pageSize: 100,\n    },\n    namespace: createNameSpace.namespaceUid,\n    groupId: _default.groupId,\n    jobType: \"java\",\n    jobMonitorInfo: {\n        contactInfos: [\n            {\n                userPhone: \"12345678910\",\n                userName: \"tangtao-1\",\n                ding: \"https://alidocs.dingtalk.com\",\n                userMail: \"12345678@xx.com\",\n            },\n            {\n                userPhone: \"12345678910\",\n                userName: \"tangtao-2\",\n                ding: \"https://alidocs.dingtalk.com1\",\n                userMail: \"123456789@xx.com\",\n            },\n        ],\n        monitorConfig: {\n            timeout: 7200,\n            sendChannel: \"sms\",\n            timeoutKillEnable: true,\n            timeoutEnable: true,\n            failEnable: true,\n            missWorkerEnable: true,\n        },\n    },\n    className: \"com.aliyun.schedulerx.example.processor.SimpleJob\",\n    namespaceSource: \"schedulerx\",\n    attemptInterval: 30,\n    failTimes: 1,\n    executeMode: \"batch\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncreate_name_space = alicloud.schedulerx.Namespace(\"CreateNameSpace\",\n    namespace_name=name,\n    description=name)\ndefault = alicloud.schedulerx.AppGroup(\"default\",\n    max_jobs=100,\n    monitor_contacts_json=json.dumps([\n        {\n            \"userName\": \"name1\",\n            \"userPhone\": \"89756******\",\n        },\n        {\n            \"userName\": \"name2\",\n            \"ding\": \"http://www.example.com\",\n        },\n    ]),\n    delete_jobs=False,\n    app_type=1,\n    namespace_source=\"schedulerx\",\n    group_id=\"example-appgroup-pop-autoexample\",\n    namespace_name=\"default\",\n    description=name,\n    monitor_config_json=json.dumps({\n        \"sendChannel\": \"sms,ding\",\n    }),\n    app_version=\"1\",\n    app_name=\"example-appgroup-pop-autoexample\",\n    namespace=create_name_space.namespace_uid,\n    enable_log=False,\n    schedule_busy_workers=False)\ndefault_job = alicloud.schedulerx.Job(\"default\",\n    timezone=\"GTM+7\",\n    status=\"Enable\",\n    max_attempt=0,\n    description=name,\n    parameters=\"hello word\",\n    job_name=name,\n    max_concurrency=\"1\",\n    time_config={\n        \"data_offset\": 1,\n        \"time_expression\": \"100000\",\n        \"time_type\": 3,\n        \"calendar\": \"workday\",\n    },\n    map_task_xattrs={\n        \"task_max_attempt\": 1,\n        \"task_attempt_interval\": 1,\n        \"consumer_size\": 5,\n        \"queue_size\": 10000,\n        \"dispatcher_size\": 5,\n        \"page_size\": 100,\n    },\n    namespace=create_name_space.namespace_uid,\n    group_id=default.group_id,\n    job_type=\"java\",\n    job_monitor_info={\n        \"contact_infos\": [\n            {\n                \"user_phone\": \"12345678910\",\n                \"user_name\": \"tangtao-1\",\n                \"ding\": \"https://alidocs.dingtalk.com\",\n                \"user_mail\": \"12345678@xx.com\",\n            },\n            {\n                \"user_phone\": \"12345678910\",\n                \"user_name\": \"tangtao-2\",\n                \"ding\": \"https://alidocs.dingtalk.com1\",\n                \"user_mail\": \"123456789@xx.com\",\n            },\n        ],\n        \"monitor_config\": {\n            \"timeout\": 7200,\n            \"send_channel\": \"sms\",\n            \"timeout_kill_enable\": True,\n            \"timeout_enable\": True,\n            \"fail_enable\": True,\n            \"miss_worker_enable\": True,\n        },\n    },\n    class_name=\"com.aliyun.schedulerx.example.processor.SimpleJob\",\n    namespace_source=\"schedulerx\",\n    attempt_interval=30,\n    fail_times=1,\n    execute_mode=\"batch\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var createNameSpace = new AliCloud.SchedulerX.Namespace(\"CreateNameSpace\", new()\n    {\n        NamespaceName = name,\n        Description = name,\n    });\n\n    var @default = new AliCloud.SchedulerX.AppGroup(\"default\", new()\n    {\n        MaxJobs = 100,\n        MonitorContactsJson = JsonSerializer.Serialize(new[]\n        {\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"userName\"] = \"name1\",\n                [\"userPhone\"] = \"89756******\",\n            },\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"userName\"] = \"name2\",\n                [\"ding\"] = \"http://www.example.com\",\n            },\n        }),\n        DeleteJobs = false,\n        AppType = 1,\n        NamespaceSource = \"schedulerx\",\n        GroupId = \"example-appgroup-pop-autoexample\",\n        NamespaceName = \"default\",\n        Description = name,\n        MonitorConfigJson = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"sendChannel\"] = \"sms,ding\",\n        }),\n        AppVersion = \"1\",\n        AppName = \"example-appgroup-pop-autoexample\",\n        Namespace = createNameSpace.NamespaceUid,\n        EnableLog = false,\n        ScheduleBusyWorkers = false,\n    });\n\n    var defaultJob = new AliCloud.SchedulerX.Job(\"default\", new()\n    {\n        Timezone = \"GTM+7\",\n        Status = \"Enable\",\n        MaxAttempt = 0,\n        Description = name,\n        Parameters = \"hello word\",\n        JobName = name,\n        MaxConcurrency = \"1\",\n        TimeConfig = new AliCloud.SchedulerX.Inputs.JobTimeConfigArgs\n        {\n            DataOffset = 1,\n            TimeExpression = \"100000\",\n            TimeType = 3,\n            Calendar = \"workday\",\n        },\n        MapTaskXattrs = new AliCloud.SchedulerX.Inputs.JobMapTaskXattrsArgs\n        {\n            TaskMaxAttempt = 1,\n            TaskAttemptInterval = 1,\n            ConsumerSize = 5,\n            QueueSize = 10000,\n            DispatcherSize = 5,\n            PageSize = 100,\n        },\n        Namespace = createNameSpace.NamespaceUid,\n        GroupId = @default.GroupId,\n        JobType = \"java\",\n        JobMonitorInfo = new AliCloud.SchedulerX.Inputs.JobJobMonitorInfoArgs\n        {\n            ContactInfos = new[]\n            {\n                new AliCloud.SchedulerX.Inputs.JobJobMonitorInfoContactInfoArgs\n                {\n                    UserPhone = \"12345678910\",\n                    UserName = \"tangtao-1\",\n                    Ding = \"https://alidocs.dingtalk.com\",\n                    UserMail = \"12345678@xx.com\",\n                },\n                new AliCloud.SchedulerX.Inputs.JobJobMonitorInfoContactInfoArgs\n                {\n                    UserPhone = \"12345678910\",\n                    UserName = \"tangtao-2\",\n                    Ding = \"https://alidocs.dingtalk.com1\",\n                    UserMail = \"123456789@xx.com\",\n                },\n            },\n            MonitorConfig = new AliCloud.SchedulerX.Inputs.JobJobMonitorInfoMonitorConfigArgs\n            {\n                Timeout = 7200,\n                SendChannel = \"sms\",\n                TimeoutKillEnable = true,\n                TimeoutEnable = true,\n                FailEnable = true,\n                MissWorkerEnable = true,\n            },\n        },\n        ClassName = \"com.aliyun.schedulerx.example.processor.SimpleJob\",\n        NamespaceSource = \"schedulerx\",\n        AttemptInterval = 30,\n        FailTimes = 1,\n        ExecuteMode = \"batch\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/schedulerx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tcreateNameSpace, err := schedulerx.NewNamespace(ctx, \"CreateNameSpace\", \u0026schedulerx.NamespaceArgs{\n\t\t\tNamespaceName: pulumi.String(name),\n\t\t\tDescription:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal([]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"userName\":  \"name1\",\n\t\t\t\t\"userPhone\": \"89756******\",\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"userName\": \"name2\",\n\t\t\t\t\"ding\":     \"http://www.example.com\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"sendChannel\": \"sms,ding\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_default, err := schedulerx.NewAppGroup(ctx, \"default\", \u0026schedulerx.AppGroupArgs{\n\t\t\tMaxJobs:             pulumi.Int(100),\n\t\t\tMonitorContactsJson: pulumi.String(json0),\n\t\t\tDeleteJobs:          pulumi.Bool(false),\n\t\t\tAppType:             pulumi.Int(1),\n\t\t\tNamespaceSource:     pulumi.String(\"schedulerx\"),\n\t\t\tGroupId:             pulumi.String(\"example-appgroup-pop-autoexample\"),\n\t\t\tNamespaceName:       pulumi.String(\"default\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tMonitorConfigJson:   pulumi.String(json1),\n\t\t\tAppVersion:          pulumi.String(\"1\"),\n\t\t\tAppName:             pulumi.String(\"example-appgroup-pop-autoexample\"),\n\t\t\tNamespace:           createNameSpace.NamespaceUid,\n\t\t\tEnableLog:           pulumi.Bool(false),\n\t\t\tScheduleBusyWorkers: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = schedulerx.NewJob(ctx, \"default\", \u0026schedulerx.JobArgs{\n\t\t\tTimezone:       pulumi.String(\"GTM+7\"),\n\t\t\tStatus:         pulumi.String(\"Enable\"),\n\t\t\tMaxAttempt:     pulumi.Int(0),\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tParameters:     pulumi.String(\"hello word\"),\n\t\t\tJobName:        pulumi.String(name),\n\t\t\tMaxConcurrency: pulumi.String(\"1\"),\n\t\t\tTimeConfig: \u0026schedulerx.JobTimeConfigArgs{\n\t\t\t\tDataOffset:     pulumi.Int(1),\n\t\t\t\tTimeExpression: pulumi.String(\"100000\"),\n\t\t\t\tTimeType:       pulumi.Int(3),\n\t\t\t\tCalendar:       pulumi.String(\"workday\"),\n\t\t\t},\n\t\t\tMapTaskXattrs: \u0026schedulerx.JobMapTaskXattrsArgs{\n\t\t\t\tTaskMaxAttempt:      pulumi.Int(1),\n\t\t\t\tTaskAttemptInterval: pulumi.Int(1),\n\t\t\t\tConsumerSize:        pulumi.Int(5),\n\t\t\t\tQueueSize:           pulumi.Int(10000),\n\t\t\t\tDispatcherSize:      pulumi.Int(5),\n\t\t\t\tPageSize:            pulumi.Int(100),\n\t\t\t},\n\t\t\tNamespace: createNameSpace.NamespaceUid,\n\t\t\tGroupId:   _default.GroupId,\n\t\t\tJobType:   pulumi.String(\"java\"),\n\t\t\tJobMonitorInfo: \u0026schedulerx.JobJobMonitorInfoArgs{\n\t\t\t\tContactInfos: schedulerx.JobJobMonitorInfoContactInfoArray{\n\t\t\t\t\t\u0026schedulerx.JobJobMonitorInfoContactInfoArgs{\n\t\t\t\t\t\tUserPhone: pulumi.String(\"12345678910\"),\n\t\t\t\t\t\tUserName:  pulumi.String(\"tangtao-1\"),\n\t\t\t\t\t\tDing:      pulumi.String(\"https://alidocs.dingtalk.com\"),\n\t\t\t\t\t\tUserMail:  pulumi.String(\"12345678@xx.com\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026schedulerx.JobJobMonitorInfoContactInfoArgs{\n\t\t\t\t\t\tUserPhone: pulumi.String(\"12345678910\"),\n\t\t\t\t\t\tUserName:  pulumi.String(\"tangtao-2\"),\n\t\t\t\t\t\tDing:      pulumi.String(\"https://alidocs.dingtalk.com1\"),\n\t\t\t\t\t\tUserMail:  pulumi.String(\"123456789@xx.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tMonitorConfig: \u0026schedulerx.JobJobMonitorInfoMonitorConfigArgs{\n\t\t\t\t\tTimeout:           pulumi.Int(7200),\n\t\t\t\t\tSendChannel:       pulumi.String(\"sms\"),\n\t\t\t\t\tTimeoutKillEnable: pulumi.Bool(true),\n\t\t\t\t\tTimeoutEnable:     pulumi.Bool(true),\n\t\t\t\t\tFailEnable:        pulumi.Bool(true),\n\t\t\t\t\tMissWorkerEnable:  pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tClassName:       pulumi.String(\"com.aliyun.schedulerx.example.processor.SimpleJob\"),\n\t\t\tNamespaceSource: pulumi.String(\"schedulerx\"),\n\t\t\tAttemptInterval: pulumi.Int(30),\n\t\t\tFailTimes:       pulumi.Int(1),\n\t\t\tExecuteMode:     pulumi.String(\"batch\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.schedulerx.Namespace;\nimport com.pulumi.alicloud.schedulerx.NamespaceArgs;\nimport com.pulumi.alicloud.schedulerx.AppGroup;\nimport com.pulumi.alicloud.schedulerx.AppGroupArgs;\nimport com.pulumi.alicloud.schedulerx.Job;\nimport com.pulumi.alicloud.schedulerx.JobArgs;\nimport com.pulumi.alicloud.schedulerx.inputs.JobTimeConfigArgs;\nimport com.pulumi.alicloud.schedulerx.inputs.JobMapTaskXattrsArgs;\nimport com.pulumi.alicloud.schedulerx.inputs.JobJobMonitorInfoArgs;\nimport com.pulumi.alicloud.schedulerx.inputs.JobJobMonitorInfoMonitorConfigArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var createNameSpace = new Namespace(\"createNameSpace\", NamespaceArgs.builder()\n            .namespaceName(name)\n            .description(name)\n            .build());\n\n        var default_ = new AppGroup(\"default\", AppGroupArgs.builder()\n            .maxJobs(100)\n            .monitorContactsJson(serializeJson(\n                jsonArray(\n                    jsonObject(\n                        jsonProperty(\"userName\", \"name1\"),\n                        jsonProperty(\"userPhone\", \"89756******\")\n                    ), \n                    jsonObject(\n                        jsonProperty(\"userName\", \"name2\"),\n                        jsonProperty(\"ding\", \"http://www.example.com\")\n                    )\n                )))\n            .deleteJobs(false)\n            .appType(1)\n            .namespaceSource(\"schedulerx\")\n            .groupId(\"example-appgroup-pop-autoexample\")\n            .namespaceName(\"default\")\n            .description(name)\n            .monitorConfigJson(serializeJson(\n                jsonObject(\n                    jsonProperty(\"sendChannel\", \"sms,ding\")\n                )))\n            .appVersion(\"1\")\n            .appName(\"example-appgroup-pop-autoexample\")\n            .namespace(createNameSpace.namespaceUid())\n            .enableLog(false)\n            .scheduleBusyWorkers(false)\n            .build());\n\n        var defaultJob = new Job(\"defaultJob\", JobArgs.builder()\n            .timezone(\"GTM+7\")\n            .status(\"Enable\")\n            .maxAttempt(0)\n            .description(name)\n            .parameters(\"hello word\")\n            .jobName(name)\n            .maxConcurrency(\"1\")\n            .timeConfig(JobTimeConfigArgs.builder()\n                .dataOffset(1)\n                .timeExpression(\"100000\")\n                .timeType(3)\n                .calendar(\"workday\")\n                .build())\n            .mapTaskXattrs(JobMapTaskXattrsArgs.builder()\n                .taskMaxAttempt(1)\n                .taskAttemptInterval(1)\n                .consumerSize(5)\n                .queueSize(10000)\n                .dispatcherSize(5)\n                .pageSize(100)\n                .build())\n            .namespace(createNameSpace.namespaceUid())\n            .groupId(default_.groupId())\n            .jobType(\"java\")\n            .jobMonitorInfo(JobJobMonitorInfoArgs.builder()\n                .contactInfos(                \n                    JobJobMonitorInfoContactInfoArgs.builder()\n                        .userPhone(\"12345678910\")\n                        .userName(\"tangtao-1\")\n                        .ding(\"https://alidocs.dingtalk.com\")\n                        .userMail(\"12345678@xx.com\")\n                        .build(),\n                    JobJobMonitorInfoContactInfoArgs.builder()\n                        .userPhone(\"12345678910\")\n                        .userName(\"tangtao-2\")\n                        .ding(\"https://alidocs.dingtalk.com1\")\n                        .userMail(\"123456789@xx.com\")\n                        .build())\n                .monitorConfig(JobJobMonitorInfoMonitorConfigArgs.builder()\n                    .timeout(7200)\n                    .sendChannel(\"sms\")\n                    .timeoutKillEnable(true)\n                    .timeoutEnable(true)\n                    .failEnable(true)\n                    .missWorkerEnable(true)\n                    .build())\n                .build())\n            .className(\"com.aliyun.schedulerx.example.processor.SimpleJob\")\n            .namespaceSource(\"schedulerx\")\n            .attemptInterval(30)\n            .failTimes(1)\n            .executeMode(\"batch\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  createNameSpace:\n    type: alicloud:schedulerx:Namespace\n    name: CreateNameSpace\n    properties:\n      namespaceName: ${name}\n      description: ${name}\n  default:\n    type: alicloud:schedulerx:AppGroup\n    properties:\n      maxJobs: '100'\n      monitorContactsJson:\n        fn::toJSON:\n          - userName: name1\n            userPhone: 89756******\n          - userName: name2\n            ding: http://www.example.com\n      deleteJobs: 'false'\n      appType: '1'\n      namespaceSource: schedulerx\n      groupId: example-appgroup-pop-autoexample\n      namespaceName: default\n      description: ${name}\n      monitorConfigJson:\n        fn::toJSON:\n          sendChannel: sms,ding\n      appVersion: '1'\n      appName: example-appgroup-pop-autoexample\n      namespace: ${createNameSpace.namespaceUid}\n      enableLog: 'false'\n      scheduleBusyWorkers: 'false'\n  defaultJob:\n    type: alicloud:schedulerx:Job\n    name: default\n    properties:\n      timezone: GTM+7\n      status: Enable\n      maxAttempt: '0'\n      description: ${name}\n      parameters: hello word\n      jobName: ${name}\n      maxConcurrency: '1'\n      timeConfig:\n        dataOffset: '1'\n        timeExpression: '100000'\n        timeType: '3'\n        calendar: workday\n      mapTaskXattrs:\n        taskMaxAttempt: '1'\n        taskAttemptInterval: '1'\n        consumerSize: '5'\n        queueSize: '10000'\n        dispatcherSize: '5'\n        pageSize: '100'\n      namespace: ${createNameSpace.namespaceUid}\n      groupId: ${default.groupId}\n      jobType: java\n      jobMonitorInfo:\n        contactInfos:\n          - userPhone: '12345678910'\n            userName: tangtao-1\n            ding: https://alidocs.dingtalk.com\n            userMail: 12345678@xx.com\n          - userPhone: '12345678910'\n            userName: tangtao-2\n            ding: https://alidocs.dingtalk.com1\n            userMail: 123456789@xx.com\n        monitorConfig:\n          timeout: '7200'\n          sendChannel: sms\n          timeoutKillEnable: true\n          timeoutEnable: true\n          failEnable: true\n          missWorkerEnable: true\n      className: com.aliyun.schedulerx.example.processor.SimpleJob\n      namespaceSource: schedulerx\n      attemptInterval: '30'\n      failTimes: '1'\n      executeMode: batch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSchedulerx Job can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:schedulerx/job:Job example \u003cnamespace\u003e:\u003cgroup_id\u003e:\u003cjob_id\u003e\n```\n\n","properties":{"attemptInterval":{"type":"integer","description":"Error retry interval, unit s, default value 30.\n"},"className":{"type":"string","description":"Full path of the task interface class.\n\nThis field is available only when your task is of the Java task type.\n"},"content":{"type":"string","description":"The script code of the python, shell, and go task types.\n"},"description":{"type":"string","description":"Task description.\n"},"executeMode":{"type":"string","description":"Task execution mode, the possible results are as follows:\n"},"failTimes":{"type":"integer","description":"Number of consecutive failed alarms\n"},"groupId":{"type":"string","description":"The application ID, which is obtained from the **application management** page of the console.\n"},"jobId":{"type":"integer","description":"JobId\n"},"jobMonitorInfo":{"$ref":"#/types/alicloud:schedulerx/JobJobMonitorInfo:JobJobMonitorInfo","description":"Task monitoring information See \u003cspan pulumi-lang-nodejs=\"`jobMonitorInfo`\" pulumi-lang-dotnet=\"`JobMonitorInfo`\" pulumi-lang-go=\"`jobMonitorInfo`\" pulumi-lang-python=\"`job_monitor_info`\" pulumi-lang-yaml=\"`jobMonitorInfo`\" pulumi-lang-java=\"`jobMonitorInfo`\"\u003e`job_monitor_info`\u003c/span\u003e below.\n"},"jobName":{"type":"string","description":"JobName\n"},"jobType":{"type":"string","description":"Job Type\n"},"mapTaskXattrs":{"$ref":"#/types/alicloud:schedulerx/JobMapTaskXattrs:JobMapTaskXattrs","description":"Advanced configuration, limited to parallel computing, memory grid, and grid computing. See \u003cspan pulumi-lang-nodejs=\"`mapTaskXattrs`\" pulumi-lang-dotnet=\"`MapTaskXattrs`\" pulumi-lang-go=\"`mapTaskXattrs`\" pulumi-lang-python=\"`map_task_xattrs`\" pulumi-lang-yaml=\"`mapTaskXattrs`\" pulumi-lang-java=\"`mapTaskXattrs`\"\u003e`map_task_xattrs`\u003c/span\u003e below.\n"},"maxAttempt":{"type":"integer","description":"The maximum number of error retries, which is set based on business requirements. The default value is 0.\n"},"maxConcurrency":{"type":"string","description":"The maximum number of instances running at the same time. The default value is 1, that is, the last trigger is not completed, and the next trigger will not be performed even at the running time.\n"},"namespace":{"type":"string","description":"Namespace, which is obtained on the `Namespace` page of the console.\n"},"namespaceSource":{"type":"string","description":"Special third parties are required.\n"},"parameters":{"type":"string","description":"User-defined parameters, which can be obtained at runtime.\n"},"status":{"type":"string","description":"Task status. The values are as follows:\n"},"successNoticeEnable":{"type":"boolean","description":"Success Notification Switch\n"},"taskDispatchMode":{"type":"string","description":"Advanced configuration of parallel grid tasks, push model or pull model\n"},"template":{"type":"string","description":"K8s task type custom task template\n"},"timeConfig":{"$ref":"#/types/alicloud:schedulerx/JobTimeConfig:JobTimeConfig","description":"Time configuration information See \u003cspan pulumi-lang-nodejs=\"`timeConfig`\" pulumi-lang-dotnet=\"`TimeConfig`\" pulumi-lang-go=\"`timeConfig`\" pulumi-lang-python=\"`time_config`\" pulumi-lang-yaml=\"`timeConfig`\" pulumi-lang-java=\"`timeConfig`\"\u003e`time_config`\u003c/span\u003e below.\n"},"timezone":{"type":"string","description":"Time Zone\n"},"xAttrs":{"type":"string","description":"Task Extension Field\n"}},"required":["executeMode","groupId","jobId","jobName","jobType","namespace","status","timeConfig","xAttrs"],"inputProperties":{"attemptInterval":{"type":"integer","description":"Error retry interval, unit s, default value 30.\n"},"className":{"type":"string","description":"Full path of the task interface class.\n\nThis field is available only when your task is of the Java task type.\n"},"content":{"type":"string","description":"The script code of the python, shell, and go task types.\n"},"description":{"type":"string","description":"Task description.\n"},"executeMode":{"type":"string","description":"Task execution mode, the possible results are as follows:\n"},"failTimes":{"type":"integer","description":"Number of consecutive failed alarms\n"},"groupId":{"type":"string","description":"The application ID, which is obtained from the **application management** page of the console.\n","willReplaceOnChanges":true},"jobMonitorInfo":{"$ref":"#/types/alicloud:schedulerx/JobJobMonitorInfo:JobJobMonitorInfo","description":"Task monitoring information See \u003cspan pulumi-lang-nodejs=\"`jobMonitorInfo`\" pulumi-lang-dotnet=\"`JobMonitorInfo`\" pulumi-lang-go=\"`jobMonitorInfo`\" pulumi-lang-python=\"`job_monitor_info`\" pulumi-lang-yaml=\"`jobMonitorInfo`\" pulumi-lang-java=\"`jobMonitorInfo`\"\u003e`job_monitor_info`\u003c/span\u003e below.\n"},"jobName":{"type":"string","description":"JobName\n"},"jobType":{"type":"string","description":"Job Type\n","willReplaceOnChanges":true},"mapTaskXattrs":{"$ref":"#/types/alicloud:schedulerx/JobMapTaskXattrs:JobMapTaskXattrs","description":"Advanced configuration, limited to parallel computing, memory grid, and grid computing. See \u003cspan pulumi-lang-nodejs=\"`mapTaskXattrs`\" pulumi-lang-dotnet=\"`MapTaskXattrs`\" pulumi-lang-go=\"`mapTaskXattrs`\" pulumi-lang-python=\"`map_task_xattrs`\" pulumi-lang-yaml=\"`mapTaskXattrs`\" pulumi-lang-java=\"`mapTaskXattrs`\"\u003e`map_task_xattrs`\u003c/span\u003e below.\n"},"maxAttempt":{"type":"integer","description":"The maximum number of error retries, which is set based on business requirements. The default value is 0.\n"},"maxConcurrency":{"type":"string","description":"The maximum number of instances running at the same time. The default value is 1, that is, the last trigger is not completed, and the next trigger will not be performed even at the running time.\n"},"namespace":{"type":"string","description":"Namespace, which is obtained on the `Namespace` page of the console.\n","willReplaceOnChanges":true},"namespaceSource":{"type":"string","description":"Special third parties are required.\n"},"parameters":{"type":"string","description":"User-defined parameters, which can be obtained at runtime.\n"},"status":{"type":"string","description":"Task status. The values are as follows:\n"},"successNoticeEnable":{"type":"boolean","description":"Success Notification Switch\n"},"taskDispatchMode":{"type":"string","description":"Advanced configuration of parallel grid tasks, push model or pull model\n"},"template":{"type":"string","description":"K8s task type custom task template\n"},"timeConfig":{"$ref":"#/types/alicloud:schedulerx/JobTimeConfig:JobTimeConfig","description":"Time configuration information See \u003cspan pulumi-lang-nodejs=\"`timeConfig`\" pulumi-lang-dotnet=\"`TimeConfig`\" pulumi-lang-go=\"`timeConfig`\" pulumi-lang-python=\"`time_config`\" pulumi-lang-yaml=\"`timeConfig`\" pulumi-lang-java=\"`timeConfig`\"\u003e`time_config`\u003c/span\u003e below.\n"},"timezone":{"type":"string","description":"Time Zone\n"},"xAttrs":{"type":"string","description":"Task Extension Field\n"}},"requiredInputs":["executeMode","groupId","jobName","jobType","namespace","timeConfig"],"stateInputs":{"description":"Input properties used for looking up and filtering Job resources.\n","properties":{"attemptInterval":{"type":"integer","description":"Error retry interval, unit s, default value 30.\n"},"className":{"type":"string","description":"Full path of the task interface class.\n\nThis field is available only when your task is of the Java task type.\n"},"content":{"type":"string","description":"The script code of the python, shell, and go task types.\n"},"description":{"type":"string","description":"Task description.\n"},"executeMode":{"type":"string","description":"Task execution mode, the possible results are as follows:\n"},"failTimes":{"type":"integer","description":"Number of consecutive failed alarms\n"},"groupId":{"type":"string","description":"The application ID, which is obtained from the **application management** page of the console.\n","willReplaceOnChanges":true},"jobId":{"type":"integer","description":"JobId\n"},"jobMonitorInfo":{"$ref":"#/types/alicloud:schedulerx/JobJobMonitorInfo:JobJobMonitorInfo","description":"Task monitoring information See \u003cspan pulumi-lang-nodejs=\"`jobMonitorInfo`\" pulumi-lang-dotnet=\"`JobMonitorInfo`\" pulumi-lang-go=\"`jobMonitorInfo`\" pulumi-lang-python=\"`job_monitor_info`\" pulumi-lang-yaml=\"`jobMonitorInfo`\" pulumi-lang-java=\"`jobMonitorInfo`\"\u003e`job_monitor_info`\u003c/span\u003e below.\n"},"jobName":{"type":"string","description":"JobName\n"},"jobType":{"type":"string","description":"Job Type\n","willReplaceOnChanges":true},"mapTaskXattrs":{"$ref":"#/types/alicloud:schedulerx/JobMapTaskXattrs:JobMapTaskXattrs","description":"Advanced configuration, limited to parallel computing, memory grid, and grid computing. See \u003cspan pulumi-lang-nodejs=\"`mapTaskXattrs`\" pulumi-lang-dotnet=\"`MapTaskXattrs`\" pulumi-lang-go=\"`mapTaskXattrs`\" pulumi-lang-python=\"`map_task_xattrs`\" pulumi-lang-yaml=\"`mapTaskXattrs`\" pulumi-lang-java=\"`mapTaskXattrs`\"\u003e`map_task_xattrs`\u003c/span\u003e below.\n"},"maxAttempt":{"type":"integer","description":"The maximum number of error retries, which is set based on business requirements. The default value is 0.\n"},"maxConcurrency":{"type":"string","description":"The maximum number of instances running at the same time. The default value is 1, that is, the last trigger is not completed, and the next trigger will not be performed even at the running time.\n"},"namespace":{"type":"string","description":"Namespace, which is obtained on the `Namespace` page of the console.\n","willReplaceOnChanges":true},"namespaceSource":{"type":"string","description":"Special third parties are required.\n"},"parameters":{"type":"string","description":"User-defined parameters, which can be obtained at runtime.\n"},"status":{"type":"string","description":"Task status. The values are as follows:\n"},"successNoticeEnable":{"type":"boolean","description":"Success Notification Switch\n"},"taskDispatchMode":{"type":"string","description":"Advanced configuration of parallel grid tasks, push model or pull model\n"},"template":{"type":"string","description":"K8s task type custom task template\n"},"timeConfig":{"$ref":"#/types/alicloud:schedulerx/JobTimeConfig:JobTimeConfig","description":"Time configuration information See \u003cspan pulumi-lang-nodejs=\"`timeConfig`\" pulumi-lang-dotnet=\"`TimeConfig`\" pulumi-lang-go=\"`timeConfig`\" pulumi-lang-python=\"`time_config`\" pulumi-lang-yaml=\"`timeConfig`\" pulumi-lang-java=\"`timeConfig`\"\u003e`time_config`\u003c/span\u003e below.\n"},"timezone":{"type":"string","description":"Time Zone\n"},"xAttrs":{"type":"string","description":"Task Extension Field\n"}},"type":"object"}},"alicloud:schedulerx/namespace:Namespace":{"description":"Provides a Schedulerx Namespace resource.\n\n\n\nFor information about Schedulerx Namespace and how to use it, see [What is Namespace](https://www.alibabacloud.com/help/en/schedulerx/schedulerx-serverless/developer-reference/api-schedulerx2-2019-04-30-listnamespaces).\n\n\u003e **NOTE:** Available since v1.173.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.schedulerx.Namespace(\"default\", {\n    namespaceName: name,\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.schedulerx.Namespace(\"default\",\n    namespace_name=name,\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.SchedulerX.Namespace(\"default\", new()\n    {\n        NamespaceName = name,\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/schedulerx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := schedulerx.NewNamespace(ctx, \"default\", \u0026schedulerx.NamespaceArgs{\n\t\t\tNamespaceName: pulumi.String(name),\n\t\t\tDescription:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.schedulerx.Namespace;\nimport com.pulumi.alicloud.schedulerx.NamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Namespace(\"default\", NamespaceArgs.builder()\n            .namespaceName(name)\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:schedulerx:Namespace\n    properties:\n      namespaceName: ${name}\n      description: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSchedulerx Namespace can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:schedulerx/namespace:Namespace example \u003cid\u003e\n```\n\n","properties":{"description":{"type":"string","description":"Namespace description.\n"},"namespaceName":{"type":"string","description":"Namespace name.\n"},"namespaceUid":{"type":"string","description":"namespace uid\n"}},"required":["namespaceName","namespaceUid"],"inputProperties":{"description":{"type":"string","description":"Namespace description.\n"},"namespaceName":{"type":"string","description":"Namespace name.\n"},"namespaceUid":{"type":"string","description":"namespace uid\n","willReplaceOnChanges":true}},"requiredInputs":["namespaceName"],"stateInputs":{"description":"Input properties used for looking up and filtering Namespace resources.\n","properties":{"description":{"type":"string","description":"Namespace description.\n"},"namespaceName":{"type":"string","description":"Namespace name.\n"},"namespaceUid":{"type":"string","description":"namespace uid\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:sddp/config:Config":{"description":"Provides a Data Security Center Config resource.\n\nFor information about Data Security Center Config and how to use it, see [What is Config](https://www.alibabacloud.com/help/en/data-security-center/latest/api-sddp-2019-01-03-createconfig).\n\n\u003e **NOTE:** Available since v1.133.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.sddp.Config(\"default\", {\n    code: \"access_failed_cnt\",\n    value: \"10\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.sddp.Config(\"default\",\n    code=\"access_failed_cnt\",\n    value=\"10\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Sddp.Config(\"default\", new()\n    {\n        Code = \"access_failed_cnt\",\n        Value = \"10\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sddp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sddp.NewConfig(ctx, \"default\", \u0026sddp.ConfigArgs{\n\t\t\tCode:  pulumi.String(\"access_failed_cnt\"),\n\t\t\tValue: pulumi.String(\"10\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sddp.Config;\nimport com.pulumi.alicloud.sddp.ConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Config(\"default\", ConfigArgs.builder()\n            .code(\"access_failed_cnt\")\n            .value(\"10\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:sddp:Config\n    properties:\n      code: access_failed_cnt\n      value: 10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nData Security Center Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sddp/config:Config example \u003ccode\u003e\n```\n\n","properties":{"code":{"type":"string","description":"Abnormal Alarm General Configuration Module by Using the Encoding. Valid values: \u003cspan pulumi-lang-nodejs=\"`accessFailedCnt`\" pulumi-lang-dotnet=\"`AccessFailedCnt`\" pulumi-lang-go=\"`accessFailedCnt`\" pulumi-lang-python=\"`access_failed_cnt`\" pulumi-lang-yaml=\"`accessFailedCnt`\" pulumi-lang-java=\"`accessFailedCnt`\"\u003e`access_failed_cnt`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`accessPermissionExprieMaxDays`\" pulumi-lang-dotnet=\"`AccessPermissionExprieMaxDays`\" pulumi-lang-go=\"`accessPermissionExprieMaxDays`\" pulumi-lang-python=\"`access_permission_exprie_max_days`\" pulumi-lang-yaml=\"`accessPermissionExprieMaxDays`\" pulumi-lang-java=\"`accessPermissionExprieMaxDays`\"\u003e`access_permission_exprie_max_days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logDatasizeAvgDays`\" pulumi-lang-dotnet=\"`LogDatasizeAvgDays`\" pulumi-lang-go=\"`logDatasizeAvgDays`\" pulumi-lang-python=\"`log_datasize_avg_days`\" pulumi-lang-yaml=\"`logDatasizeAvgDays`\" pulumi-lang-java=\"`logDatasizeAvgDays`\"\u003e`log_datasize_avg_days`\u003c/span\u003e.\n"},"description":{"type":"string","description":"Abnormal Alarm General Description of the Configuration Item.\n"},"lang":{"type":"string","description":"The language of the request and response. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"value":{"type":"string","description":"The Specified Exception Alarm Generic by Using the Value. Code Different Values for This Parameter the Specific Meaning of Different:\n"}},"required":["description"],"inputProperties":{"code":{"type":"string","description":"Abnormal Alarm General Configuration Module by Using the Encoding. Valid values: \u003cspan pulumi-lang-nodejs=\"`accessFailedCnt`\" pulumi-lang-dotnet=\"`AccessFailedCnt`\" pulumi-lang-go=\"`accessFailedCnt`\" pulumi-lang-python=\"`access_failed_cnt`\" pulumi-lang-yaml=\"`accessFailedCnt`\" pulumi-lang-java=\"`accessFailedCnt`\"\u003e`access_failed_cnt`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`accessPermissionExprieMaxDays`\" pulumi-lang-dotnet=\"`AccessPermissionExprieMaxDays`\" pulumi-lang-go=\"`accessPermissionExprieMaxDays`\" pulumi-lang-python=\"`access_permission_exprie_max_days`\" pulumi-lang-yaml=\"`accessPermissionExprieMaxDays`\" pulumi-lang-java=\"`accessPermissionExprieMaxDays`\"\u003e`access_permission_exprie_max_days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logDatasizeAvgDays`\" pulumi-lang-dotnet=\"`LogDatasizeAvgDays`\" pulumi-lang-go=\"`logDatasizeAvgDays`\" pulumi-lang-python=\"`log_datasize_avg_days`\" pulumi-lang-yaml=\"`logDatasizeAvgDays`\" pulumi-lang-java=\"`logDatasizeAvgDays`\"\u003e`log_datasize_avg_days`\u003c/span\u003e.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Abnormal Alarm General Description of the Configuration Item.\n"},"lang":{"type":"string","description":"The language of the request and response. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"value":{"type":"string","description":"The Specified Exception Alarm Generic by Using the Value. Code Different Values for This Parameter the Specific Meaning of Different:\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Config resources.\n","properties":{"code":{"type":"string","description":"Abnormal Alarm General Configuration Module by Using the Encoding. Valid values: \u003cspan pulumi-lang-nodejs=\"`accessFailedCnt`\" pulumi-lang-dotnet=\"`AccessFailedCnt`\" pulumi-lang-go=\"`accessFailedCnt`\" pulumi-lang-python=\"`access_failed_cnt`\" pulumi-lang-yaml=\"`accessFailedCnt`\" pulumi-lang-java=\"`accessFailedCnt`\"\u003e`access_failed_cnt`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`accessPermissionExprieMaxDays`\" pulumi-lang-dotnet=\"`AccessPermissionExprieMaxDays`\" pulumi-lang-go=\"`accessPermissionExprieMaxDays`\" pulumi-lang-python=\"`access_permission_exprie_max_days`\" pulumi-lang-yaml=\"`accessPermissionExprieMaxDays`\" pulumi-lang-java=\"`accessPermissionExprieMaxDays`\"\u003e`access_permission_exprie_max_days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logDatasizeAvgDays`\" pulumi-lang-dotnet=\"`LogDatasizeAvgDays`\" pulumi-lang-go=\"`logDatasizeAvgDays`\" pulumi-lang-python=\"`log_datasize_avg_days`\" pulumi-lang-yaml=\"`logDatasizeAvgDays`\" pulumi-lang-java=\"`logDatasizeAvgDays`\"\u003e`log_datasize_avg_days`\u003c/span\u003e.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Abnormal Alarm General Description of the Configuration Item.\n"},"lang":{"type":"string","description":"The language of the request and response. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"value":{"type":"string","description":"The Specified Exception Alarm Generic by Using the Value. Code Different Values for This Parameter the Specific Meaning of Different:\n"}},"type":"object"}},"alicloud:sddp/dataLimit:DataLimit":{"description":"Provides a Data Security Center Data Limit resource.\n\nFor information about Data Security Center Data Limit and how to use it, see [What is Data Limit](https://www.alibabacloud.com/help/en/doc-detail/158987.html).\n\n\u003e **NOTE:** Available since v1.159.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst defaultGetZones = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\nconst defaultGetInstanceClasses = defaultGetZones.then(defaultGetZones =\u003e alicloud.rds.getInstanceClasses({\n    zoneId: defaultGetZones.zones?.[0]?.id,\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n    instanceChargeType: \"PostPaid\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.rds.Instance(\"default\", {\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceType: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.instanceClass),\n    instanceStorage: defaultGetInstanceClasses.then(defaultGetInstanceClasses =\u003e defaultGetInstanceClasses.instanceClasses?.[0]?.storageRange?.min),\n    instanceChargeType: \"Postpaid\",\n    instanceName: name,\n    vswitchId: defaultSwitch.id,\n    monitoringPeriod: 60,\n    dbInstanceStorageType: \"cloud_essd\",\n    securityGroupIds: [defaultSecurityGroup.id],\n});\nconst defaultRdsAccount = new alicloud.rds.RdsAccount(\"default\", {\n    dbInstanceId: defaultInstance.id,\n    accountName: name,\n    accountPassword: \"Example1234\",\n});\nconst defaultDatabase = new alicloud.rds.Database(\"default\", {\n    instanceId: defaultInstance.id,\n    name: name,\n});\nconst defaultAccountPrivilege = new alicloud.rds.AccountPrivilege(\"default\", {\n    instanceId: defaultInstance.id,\n    accountName: defaultRdsAccount.accountName,\n    privilege: \"ReadWrite\",\n    dbNames: [defaultDatabase.name],\n});\nconst defaultDataLimit = new alicloud.sddp.DataLimit(\"default\", {\n    auditStatus: 0,\n    engineType: \"MySQL\",\n    parentId: std.joinOutput({\n        separator: \".\",\n        input: [\n            defaultAccountPrivilege.instanceId,\n            defaultDatabase.name,\n        ],\n    }).apply(invoke =\u003e invoke.result),\n    resourceType: \"RDS\",\n    userName: defaultDatabase.name,\n    password: defaultRdsAccount.accountPassword,\n    port: 3306,\n    serviceRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_regions(current=True)\ndefault_get_zones = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\")\ndefault_get_instance_classes = alicloud.rds.get_instance_classes(zone_id=default_get_zones.zones[0].id,\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\",\n    instance_charge_type=\"PostPaid\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.rds.Instance(\"default\",\n    engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_type=default_get_instance_classes.instance_classes[0].instance_class,\n    instance_storage=default_get_instance_classes.instance_classes[0].storage_range.min,\n    instance_charge_type=\"Postpaid\",\n    instance_name=name,\n    vswitch_id=default_switch.id,\n    monitoring_period=60,\n    db_instance_storage_type=\"cloud_essd\",\n    security_group_ids=[default_security_group.id])\ndefault_rds_account = alicloud.rds.RdsAccount(\"default\",\n    db_instance_id=default_instance.id,\n    account_name=name,\n    account_password=\"Example1234\")\ndefault_database = alicloud.rds.Database(\"default\",\n    instance_id=default_instance.id,\n    name=name)\ndefault_account_privilege = alicloud.rds.AccountPrivilege(\"default\",\n    instance_id=default_instance.id,\n    account_name=default_rds_account.account_name,\n    privilege=\"ReadWrite\",\n    db_names=[default_database.name])\ndefault_data_limit = alicloud.sddp.DataLimit(\"default\",\n    audit_status=0,\n    engine_type=\"MySQL\",\n    parent_id=std.join_output(separator=\".\",\n        input=[\n            default_account_privilege.instance_id,\n            default_database.name,\n        ]).apply(lambda invoke: invoke.result),\n    resource_type=\"RDS\",\n    user_name=default_database.name,\n    password=default_rds_account.account_password,\n    port=3306,\n    service_region_id=default.regions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultGetZones = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n    var defaultGetInstanceClasses = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Rds.Instance(\"default\", new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceType = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n        InstanceStorage = defaultGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.StorageRange?.Min),\n        InstanceChargeType = \"Postpaid\",\n        InstanceName = name,\n        VswitchId = defaultSwitch.Id,\n        MonitoringPeriod = 60,\n        DbInstanceStorageType = \"cloud_essd\",\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var defaultRdsAccount = new AliCloud.Rds.RdsAccount(\"default\", new()\n    {\n        DbInstanceId = defaultInstance.Id,\n        AccountName = name,\n        AccountPassword = \"Example1234\",\n    });\n\n    var defaultDatabase = new AliCloud.Rds.Database(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        Name = name,\n    });\n\n    var defaultAccountPrivilege = new AliCloud.Rds.AccountPrivilege(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        AccountName = defaultRdsAccount.AccountName,\n        Privilege = \"ReadWrite\",\n        DbNames = new[]\n        {\n            defaultDatabase.Name,\n        },\n    });\n\n    var defaultDataLimit = new AliCloud.Sddp.DataLimit(\"default\", new()\n    {\n        AuditStatus = 0,\n        EngineType = \"MySQL\",\n        ParentId = Std.Join.Invoke(new()\n        {\n            Separator = \".\",\n            Input = new[]\n            {\n                defaultAccountPrivilege.InstanceId,\n                defaultDatabase.Name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        ResourceType = \"RDS\",\n        UserName = defaultDatabase.Name,\n        Password = defaultRdsAccount.AccountPassword,\n        Port = 3306,\n        ServiceRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sddp\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceClasses, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tZoneId:                pulumi.StringRef(defaultGetZones.Zones[0].Id),\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := rds.NewInstance(ctx, \"default\", \u0026rds.InstanceArgs{\n\t\t\tEngine:                pulumi.String(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.String(\"8.0\"),\n\t\t\tInstanceType:          pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].InstanceClass),\n\t\t\tInstanceStorage:       pulumi.String(defaultGetInstanceClasses.InstanceClasses[0].StorageRange.Min),\n\t\t\tInstanceChargeType:    pulumi.String(\"Postpaid\"),\n\t\t\tInstanceName:          pulumi.String(name),\n\t\t\tVswitchId:             defaultSwitch.ID(),\n\t\t\tMonitoringPeriod:      pulumi.Int(60),\n\t\t\tDbInstanceStorageType: pulumi.String(\"cloud_essd\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRdsAccount, err := rds.NewRdsAccount(ctx, \"default\", \u0026rds.RdsAccountArgs{\n\t\t\tDbInstanceId:    defaultInstance.ID(),\n\t\t\tAccountName:     pulumi.String(name),\n\t\t\tAccountPassword: pulumi.String(\"Example1234\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDatabase, err := rds.NewDatabase(ctx, \"default\", \u0026rds.DatabaseArgs{\n\t\t\tInstanceId: defaultInstance.ID(),\n\t\t\tName:       pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAccountPrivilege, err := rds.NewAccountPrivilege(ctx, \"default\", \u0026rds.AccountPrivilegeArgs{\n\t\t\tInstanceId:  defaultInstance.ID(),\n\t\t\tAccountName: defaultRdsAccount.AccountName,\n\t\t\tPrivilege:   pulumi.String(\"ReadWrite\"),\n\t\t\tDbNames: pulumi.StringArray{\n\t\t\t\tdefaultDatabase.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sddp.NewDataLimit(ctx, \"default\", \u0026sddp.DataLimitArgs{\n\t\t\tAuditStatus: pulumi.Int(0),\n\t\t\tEngineType:  pulumi.String(\"MySQL\"),\n\t\t\tParentId: pulumi.String(std.JoinOutput(ctx, std.JoinOutputArgs{\n\t\t\t\tSeparator: pulumi.String(\".\"),\n\t\t\t\tInput: pulumi.StringArray{\n\t\t\t\t\tdefaultAccountPrivilege.InstanceId,\n\t\t\t\t\tdefaultDatabase.Name,\n\t\t\t\t},\n\t\t\t}, nil).ApplyT(func(invoke std.JoinResult) (*string, error) {\n\t\t\t\treturn invoke.Result, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tResourceType:    pulumi.String(\"RDS\"),\n\t\t\tUserName:        defaultDatabase.Name,\n\t\t\tPassword:        defaultRdsAccount.AccountPassword,\n\t\t\tPort:            pulumi.Int(3306),\n\t\t\tServiceRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.rds.Instance;\nimport com.pulumi.alicloud.rds.InstanceArgs;\nimport com.pulumi.alicloud.rds.RdsAccount;\nimport com.pulumi.alicloud.rds.RdsAccountArgs;\nimport com.pulumi.alicloud.rds.Database;\nimport com.pulumi.alicloud.rds.DatabaseArgs;\nimport com.pulumi.alicloud.rds.AccountPrivilege;\nimport com.pulumi.alicloud.rds.AccountPrivilegeArgs;\nimport com.pulumi.alicloud.sddp.DataLimit;\nimport com.pulumi.alicloud.sddp.DataLimitArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.JoinArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var defaultGetZones = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n        final var defaultGetInstanceClasses = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(defaultGetZones.zones()[0].id())\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceType(defaultGetInstanceClasses.instanceClasses()[0].instanceClass())\n            .instanceStorage(defaultGetInstanceClasses.instanceClasses()[0].storageRange().min())\n            .instanceChargeType(\"Postpaid\")\n            .instanceName(name)\n            .vswitchId(defaultSwitch.id())\n            .monitoringPeriod(60)\n            .dbInstanceStorageType(\"cloud_essd\")\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n        var defaultRdsAccount = new RdsAccount(\"defaultRdsAccount\", RdsAccountArgs.builder()\n            .dbInstanceId(defaultInstance.id())\n            .accountName(name)\n            .accountPassword(\"Example1234\")\n            .build());\n\n        var defaultDatabase = new Database(\"defaultDatabase\", DatabaseArgs.builder()\n            .instanceId(defaultInstance.id())\n            .name(name)\n            .build());\n\n        var defaultAccountPrivilege = new AccountPrivilege(\"defaultAccountPrivilege\", AccountPrivilegeArgs.builder()\n            .instanceId(defaultInstance.id())\n            .accountName(defaultRdsAccount.accountName())\n            .privilege(\"ReadWrite\")\n            .dbNames(defaultDatabase.name())\n            .build());\n\n        var defaultDataLimit = new DataLimit(\"defaultDataLimit\", DataLimitArgs.builder()\n            .auditStatus(0)\n            .engineType(\"MySQL\")\n            .parentId(StdFunctions.join(JoinArgs.builder()\n                .separator(\".\")\n                .input(                \n                    defaultAccountPrivilege.instanceId(),\n                    defaultDatabase.name())\n                .build()).applyValue(_invoke -\u003e _invoke.result()))\n            .resourceType(\"RDS\")\n            .userName(defaultDatabase.name())\n            .password(defaultRdsAccount.accountPassword())\n            .port(3306)\n            .serviceRegionId(default_.regions()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${defaultGetZones.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:rds:Instance\n    name: default\n    properties:\n      engine: MySQL\n      engineVersion: '8.0'\n      instanceType: ${defaultGetInstanceClasses.instanceClasses[0].instanceClass}\n      instanceStorage: ${defaultGetInstanceClasses.instanceClasses[0].storageRange.min}\n      instanceChargeType: Postpaid\n      instanceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      monitoringPeriod: '60'\n      dbInstanceStorageType: cloud_essd\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n  defaultRdsAccount:\n    type: alicloud:rds:RdsAccount\n    name: default\n    properties:\n      dbInstanceId: ${defaultInstance.id}\n      accountName: ${name}\n      accountPassword: Example1234\n  defaultDatabase:\n    type: alicloud:rds:Database\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      name: ${name}\n  defaultAccountPrivilege:\n    type: alicloud:rds:AccountPrivilege\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      accountName: ${defaultRdsAccount.accountName}\n      privilege: ReadWrite\n      dbNames:\n        - ${defaultDatabase.name}\n  defaultDataLimit:\n    type: alicloud:sddp:DataLimit\n    name: default\n    properties:\n      auditStatus: 0\n      engineType: MySQL\n      parentId:\n        fn::invoke:\n          function: std:join\n          arguments:\n            separator: .\n            input:\n              - ${defaultAccountPrivilege.instanceId}\n              - ${defaultDatabase.name}\n          return: result\n      resourceType: RDS\n      userName: ${defaultDatabase.name}\n      password: ${defaultRdsAccount.accountPassword}\n      port: 3306\n      serviceRegionId: ${default.regions[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: PostPaid\n        category: Basic\n        dbInstanceStorageType: cloud_essd\n  defaultGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        zoneId: ${defaultGetZones.zones[0].id}\n        engine: MySQL\n        engineVersion: '8.0'\n        category: Basic\n        dbInstanceStorageType: cloud_essd\n        instanceChargeType: PostPaid\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nData Security Center Data Limit can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sddp/dataLimit:DataLimit example \u003cid\u003e\n```\n\n","properties":{"auditStatus":{"type":"integer","description":"Whether to enable the log auditing feature. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"engineType":{"type":"string","description":"The type of the database. Valid values: `MySQL`, `SQLServer`.\n"},"lang":{"type":"string","description":"The lang.\n"},"logStoreDay":{"type":"integer","description":"The retention period of raw logs after you enable the log auditing feature. Unit: day. Valid values: \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`90`\" pulumi-lang-dotnet=\"`90`\" pulumi-lang-go=\"`90`\" pulumi-lang-python=\"`90`\" pulumi-lang-yaml=\"`90`\" pulumi-lang-java=\"`90`\"\u003e`90`\u003c/span\u003e. **NOTE:** The\u003cspan pulumi-lang-nodejs=\"`logStoreDay`\" pulumi-lang-dotnet=\"`LogStoreDay`\" pulumi-lang-go=\"`logStoreDay`\" pulumi-lang-python=\"`log_store_day`\" pulumi-lang-yaml=\"`logStoreDay`\" pulumi-lang-java=\"`logStoreDay`\"\u003e`log_store_day`\u003c/span\u003e is valid when the \u003cspan pulumi-lang-nodejs=\"`auditStatus`\" pulumi-lang-dotnet=\"`AuditStatus`\" pulumi-lang-go=\"`auditStatus`\" pulumi-lang-python=\"`audit_status`\" pulumi-lang-yaml=\"`auditStatus`\" pulumi-lang-java=\"`auditStatus`\"\u003e`audit_status`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"parentId":{"type":"string","description":"The ID of the data asset.\n"},"password":{"type":"string","description":"The password that is used to connect to the database.\n"},"port":{"type":"integer","description":"The port that is used to connect to the database.\n"},"resourceType":{"type":"string","description":"The type of the service to which the data asset belongs. Valid values: `MaxCompute`, `OSS`, `RDS`.\n"},"serviceRegionId":{"type":"string","description":"The region ID of the data asset.\n"},"userName":{"type":"string","description":"The name of the service to which the data asset belongs.\n"}},"required":["auditStatus","resourceType"],"inputProperties":{"auditStatus":{"type":"integer","description":"Whether to enable the log auditing feature. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"engineType":{"type":"string","description":"The type of the database. Valid values: `MySQL`, `SQLServer`.\n","willReplaceOnChanges":true},"lang":{"type":"string","description":"The lang.\n"},"logStoreDay":{"type":"integer","description":"The retention period of raw logs after you enable the log auditing feature. Unit: day. Valid values: \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`90`\" pulumi-lang-dotnet=\"`90`\" pulumi-lang-go=\"`90`\" pulumi-lang-python=\"`90`\" pulumi-lang-yaml=\"`90`\" pulumi-lang-java=\"`90`\"\u003e`90`\u003c/span\u003e. **NOTE:** The\u003cspan pulumi-lang-nodejs=\"`logStoreDay`\" pulumi-lang-dotnet=\"`LogStoreDay`\" pulumi-lang-go=\"`logStoreDay`\" pulumi-lang-python=\"`log_store_day`\" pulumi-lang-yaml=\"`logStoreDay`\" pulumi-lang-java=\"`logStoreDay`\"\u003e`log_store_day`\u003c/span\u003e is valid when the \u003cspan pulumi-lang-nodejs=\"`auditStatus`\" pulumi-lang-dotnet=\"`AuditStatus`\" pulumi-lang-go=\"`auditStatus`\" pulumi-lang-python=\"`audit_status`\" pulumi-lang-yaml=\"`auditStatus`\" pulumi-lang-java=\"`auditStatus`\"\u003e`audit_status`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n","willReplaceOnChanges":true},"parentId":{"type":"string","description":"The ID of the data asset.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password that is used to connect to the database.\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"The port that is used to connect to the database.\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"The type of the service to which the data asset belongs. Valid values: `MaxCompute`, `OSS`, `RDS`.\n","willReplaceOnChanges":true},"serviceRegionId":{"type":"string","description":"The region ID of the data asset.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"The name of the service to which the data asset belongs.\n","willReplaceOnChanges":true}},"requiredInputs":["resourceType"],"stateInputs":{"description":"Input properties used for looking up and filtering DataLimit resources.\n","properties":{"auditStatus":{"type":"integer","description":"Whether to enable the log auditing feature. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"engineType":{"type":"string","description":"The type of the database. Valid values: `MySQL`, `SQLServer`.\n","willReplaceOnChanges":true},"lang":{"type":"string","description":"The lang.\n"},"logStoreDay":{"type":"integer","description":"The retention period of raw logs after you enable the log auditing feature. Unit: day. Valid values: \u003cspan pulumi-lang-nodejs=\"`180`\" pulumi-lang-dotnet=\"`180`\" pulumi-lang-go=\"`180`\" pulumi-lang-python=\"`180`\" pulumi-lang-yaml=\"`180`\" pulumi-lang-java=\"`180`\"\u003e`180`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`90`\" pulumi-lang-dotnet=\"`90`\" pulumi-lang-go=\"`90`\" pulumi-lang-python=\"`90`\" pulumi-lang-yaml=\"`90`\" pulumi-lang-java=\"`90`\"\u003e`90`\u003c/span\u003e. **NOTE:** The\u003cspan pulumi-lang-nodejs=\"`logStoreDay`\" pulumi-lang-dotnet=\"`LogStoreDay`\" pulumi-lang-go=\"`logStoreDay`\" pulumi-lang-python=\"`log_store_day`\" pulumi-lang-yaml=\"`logStoreDay`\" pulumi-lang-java=\"`logStoreDay`\"\u003e`log_store_day`\u003c/span\u003e is valid when the \u003cspan pulumi-lang-nodejs=\"`auditStatus`\" pulumi-lang-dotnet=\"`AuditStatus`\" pulumi-lang-go=\"`auditStatus`\" pulumi-lang-python=\"`audit_status`\" pulumi-lang-yaml=\"`auditStatus`\" pulumi-lang-java=\"`auditStatus`\"\u003e`audit_status`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n","willReplaceOnChanges":true},"parentId":{"type":"string","description":"The ID of the data asset.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password that is used to connect to the database.\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"The port that is used to connect to the database.\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"The type of the service to which the data asset belongs. Valid values: `MaxCompute`, `OSS`, `RDS`.\n","willReplaceOnChanges":true},"serviceRegionId":{"type":"string","description":"The region ID of the data asset.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"The name of the service to which the data asset belongs.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:sddp/instance:Instance":{"description":"Provides a Data Security Center Instance resource.\n\nFor information about Data Security Center Instance and how to use it, see [What is Instance](https://help.aliyun.com/product/88674.html).\n\n\u003e **NOTE:** Available in v1.136.0+.\n\n\u003e **NOTE:** The Data Security Center Instance is not support in the international site.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.sddp.Instance(\"default\", {\n    paymentType: \"Subscription\",\n    sddpVersion: \"version_company\",\n    sdCbool: \"yes\",\n    period: 1,\n    sdc: \"3\",\n    udCbool: \"yes\",\n    udc: \"2000\",\n    dataphin: \"yes\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.sddp.Instance(\"default\",\n    payment_type=\"Subscription\",\n    sddp_version=\"version_company\",\n    sd_cbool=\"yes\",\n    period=1,\n    sdc=\"3\",\n    ud_cbool=\"yes\",\n    udc=\"2000\",\n    dataphin=\"yes\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Sddp.Instance(\"default\", new()\n    {\n        PaymentType = \"Subscription\",\n        SddpVersion = \"version_company\",\n        SdCbool = \"yes\",\n        Period = 1,\n        Sdc = \"3\",\n        UdCbool = \"yes\",\n        Udc = \"2000\",\n        Dataphin = \"yes\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sddp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sddp.NewInstance(ctx, \"default\", \u0026sddp.InstanceArgs{\n\t\t\tPaymentType: pulumi.String(\"Subscription\"),\n\t\t\tSddpVersion: pulumi.String(\"version_company\"),\n\t\t\tSdCbool:     pulumi.String(\"yes\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tSdc:         pulumi.String(\"3\"),\n\t\t\tUdCbool:     pulumi.String(\"yes\"),\n\t\t\tUdc:         pulumi.String(\"2000\"),\n\t\t\tDataphin:    pulumi.String(\"yes\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sddp.Instance;\nimport com.pulumi.alicloud.sddp.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .sddpVersion(\"version_company\")\n            .sdCbool(\"yes\")\n            .period(1)\n            .sdc(\"3\")\n            .udCbool(\"yes\")\n            .udc(\"2000\")\n            .dataphin(\"yes\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:sddp:Instance\n    properties:\n      paymentType: Subscription\n      sddpVersion: version_company\n      sdCbool: yes\n      period: '1'\n      sdc: '3'\n      udCbool: yes\n      udc: '2000'\n      dataphin: yes\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nData Security Center Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sddp/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"authed":{"type":"boolean","description":"Whether the required RAM authorization is configured.\n"},"dataphin":{"type":"string","description":"The dataphin. Valid values: \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e.\n"},"dataphinCount":{"type":"string","description":"The dataphin count. Valid values: 1 to 20.\n"},"instanceNum":{"type":"string","description":"The number of instances.\n"},"logistics":{"type":"string","description":"The logistics.\n"},"modifyType":{"type":"string","description":"The modify type. Valid values: `Upgrade`, `Downgrade`.  **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`modifyType`\" pulumi-lang-dotnet=\"`ModifyType`\" pulumi-lang-go=\"`modifyType`\" pulumi-lang-python=\"`modify_type`\" pulumi-lang-yaml=\"`modifyType`\" pulumi-lang-java=\"`modifyType`\"\u003e`modify_type`\u003c/span\u003e is required when you execute a update operation.\n"},"odpsSet":{"type":"boolean","description":"Whether the authorized MaxCompute (ODPS) assets.\n"},"ossBucketSet":{"type":"boolean","description":"Whether the authorized oss assets.\n"},"ossSize":{"type":"string","description":"The OSS storage capacity.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`.\n"},"period":{"type":"integer","description":"The Prepaid period. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e.\n"},"rdsSet":{"type":"boolean","description":"Whether the authorized rds assets.\n"},"remainDays":{"type":"string","description":"The remaining days of the protection period of the assets in the current login account.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`renewPeriod`\" pulumi-lang-dotnet=\"`RenewPeriod`\" pulumi-lang-go=\"`renewPeriod`\" pulumi-lang-python=\"`renew_period`\" pulumi-lang-yaml=\"`renewPeriod`\" pulumi-lang-java=\"`renewPeriod`\"\u003e`renew_period`\u003c/span\u003e is required under the condition that\u003cspan pulumi-lang-nodejs=\" renewalStatus \" pulumi-lang-dotnet=\" RenewalStatus \" pulumi-lang-go=\" renewalStatus \" pulumi-lang-python=\" renewal_status \" pulumi-lang-yaml=\" renewalStatus \" pulumi-lang-java=\" renewalStatus \"\u003e renewal_status \u003c/span\u003eis `AutoRenewal`,\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`,`ManualRenewal`. Default Value: `ManualRenewal`.\n"},"sdCbool":{"type":"string","description":"Whether to use the database. Valid values:\u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e.\n"},"sdc":{"type":"string","description":"The number of instances.\n"},"sddpVersion":{"type":"string","description":"The sddp version. Valid values: \u003cspan pulumi-lang-nodejs=\"`versionAudit`\" pulumi-lang-dotnet=\"`VersionAudit`\" pulumi-lang-go=\"`versionAudit`\" pulumi-lang-python=\"`version_audit`\" pulumi-lang-yaml=\"`versionAudit`\" pulumi-lang-java=\"`versionAudit`\"\u003e`version_audit`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`versionCompany`\" pulumi-lang-dotnet=\"`VersionCompany`\" pulumi-lang-go=\"`versionCompany`\" pulumi-lang-python=\"`version_company`\" pulumi-lang-yaml=\"`versionCompany`\" pulumi-lang-java=\"`versionCompany`\"\u003e`version_company`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`versionDlp`\" pulumi-lang-dotnet=\"`VersionDlp`\" pulumi-lang-go=\"`versionDlp`\" pulumi-lang-python=\"`version_dlp`\" pulumi-lang-yaml=\"`versionDlp`\" pulumi-lang-java=\"`versionDlp`\"\u003e`version_dlp`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"udCbool":{"type":"string","description":"Whether to use OSS. Valid values: \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e.\n"},"udc":{"type":"string","description":"OSS Size.\n"}},"required":["authed","instanceNum","odpsSet","ossBucketSet","ossSize","paymentType","period","rdsSet","remainDays","renewalStatus","sdCbool","sdc","sddpVersion","status","udCbool","udc"],"inputProperties":{"dataphin":{"type":"string","description":"The dataphin. Valid values: \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e.\n"},"dataphinCount":{"type":"string","description":"The dataphin count. Valid values: 1 to 20.\n"},"logistics":{"type":"string","description":"The logistics.\n"},"modifyType":{"type":"string","description":"The modify type. Valid values: `Upgrade`, `Downgrade`.  **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`modifyType`\" pulumi-lang-dotnet=\"`ModifyType`\" pulumi-lang-go=\"`modifyType`\" pulumi-lang-python=\"`modify_type`\" pulumi-lang-yaml=\"`modifyType`\" pulumi-lang-java=\"`modifyType`\"\u003e`modify_type`\u003c/span\u003e is required when you execute a update operation.\n"},"ossSize":{"type":"string","description":"The OSS storage capacity.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The Prepaid period. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`renewPeriod`\" pulumi-lang-dotnet=\"`RenewPeriod`\" pulumi-lang-go=\"`renewPeriod`\" pulumi-lang-python=\"`renew_period`\" pulumi-lang-yaml=\"`renewPeriod`\" pulumi-lang-java=\"`renewPeriod`\"\u003e`renew_period`\u003c/span\u003e is required under the condition that\u003cspan pulumi-lang-nodejs=\" renewalStatus \" pulumi-lang-dotnet=\" RenewalStatus \" pulumi-lang-go=\" renewalStatus \" pulumi-lang-python=\" renewal_status \" pulumi-lang-yaml=\" renewalStatus \" pulumi-lang-java=\" renewalStatus \"\u003e renewal_status \u003c/span\u003eis `AutoRenewal`,\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`,`ManualRenewal`. Default Value: `ManualRenewal`.\n"},"sdCbool":{"type":"string","description":"Whether to use the database. Valid values:\u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e.\n"},"sdc":{"type":"string","description":"The number of instances.\n"},"sddpVersion":{"type":"string","description":"The sddp version. Valid values: \u003cspan pulumi-lang-nodejs=\"`versionAudit`\" pulumi-lang-dotnet=\"`VersionAudit`\" pulumi-lang-go=\"`versionAudit`\" pulumi-lang-python=\"`version_audit`\" pulumi-lang-yaml=\"`versionAudit`\" pulumi-lang-java=\"`versionAudit`\"\u003e`version_audit`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`versionCompany`\" pulumi-lang-dotnet=\"`VersionCompany`\" pulumi-lang-go=\"`versionCompany`\" pulumi-lang-python=\"`version_company`\" pulumi-lang-yaml=\"`versionCompany`\" pulumi-lang-java=\"`versionCompany`\"\u003e`version_company`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`versionDlp`\" pulumi-lang-dotnet=\"`VersionDlp`\" pulumi-lang-go=\"`versionDlp`\" pulumi-lang-python=\"`version_dlp`\" pulumi-lang-yaml=\"`versionDlp`\" pulumi-lang-java=\"`versionDlp`\"\u003e`version_dlp`\u003c/span\u003e.\n"},"udCbool":{"type":"string","description":"Whether to use OSS. Valid values: \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e.\n"},"udc":{"type":"string","description":"OSS Size.\n"}},"requiredInputs":["paymentType","period","sdCbool","sdc","sddpVersion","udCbool","udc"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"authed":{"type":"boolean","description":"Whether the required RAM authorization is configured.\n"},"dataphin":{"type":"string","description":"The dataphin. Valid values: \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e.\n"},"dataphinCount":{"type":"string","description":"The dataphin count. Valid values: 1 to 20.\n"},"instanceNum":{"type":"string","description":"The number of instances.\n"},"logistics":{"type":"string","description":"The logistics.\n"},"modifyType":{"type":"string","description":"The modify type. Valid values: `Upgrade`, `Downgrade`.  **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`modifyType`\" pulumi-lang-dotnet=\"`ModifyType`\" pulumi-lang-go=\"`modifyType`\" pulumi-lang-python=\"`modify_type`\" pulumi-lang-yaml=\"`modifyType`\" pulumi-lang-java=\"`modifyType`\"\u003e`modify_type`\u003c/span\u003e is required when you execute a update operation.\n"},"odpsSet":{"type":"boolean","description":"Whether the authorized MaxCompute (ODPS) assets.\n"},"ossBucketSet":{"type":"boolean","description":"Whether the authorized oss assets.\n"},"ossSize":{"type":"string","description":"The OSS storage capacity.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `Subscription`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The Prepaid period. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e.\n"},"rdsSet":{"type":"boolean","description":"Whether the authorized rds assets.\n"},"remainDays":{"type":"string","description":"The remaining days of the protection period of the assets in the current login account.\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal period. **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`renewPeriod`\" pulumi-lang-dotnet=\"`RenewPeriod`\" pulumi-lang-go=\"`renewPeriod`\" pulumi-lang-python=\"`renew_period`\" pulumi-lang-yaml=\"`renewPeriod`\" pulumi-lang-java=\"`renewPeriod`\"\u003e`renew_period`\u003c/span\u003e is required under the condition that\u003cspan pulumi-lang-nodejs=\" renewalStatus \" pulumi-lang-dotnet=\" RenewalStatus \" pulumi-lang-go=\" renewalStatus \" pulumi-lang-python=\" renewal_status \" pulumi-lang-yaml=\" renewalStatus \" pulumi-lang-java=\" renewalStatus \"\u003e renewal_status \u003c/span\u003eis `AutoRenewal`,\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status. Valid values: `AutoRenewal`,`ManualRenewal`. Default Value: `ManualRenewal`.\n"},"sdCbool":{"type":"string","description":"Whether to use the database. Valid values:\u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e.\n"},"sdc":{"type":"string","description":"The number of instances.\n"},"sddpVersion":{"type":"string","description":"The sddp version. Valid values: \u003cspan pulumi-lang-nodejs=\"`versionAudit`\" pulumi-lang-dotnet=\"`VersionAudit`\" pulumi-lang-go=\"`versionAudit`\" pulumi-lang-python=\"`version_audit`\" pulumi-lang-yaml=\"`versionAudit`\" pulumi-lang-java=\"`versionAudit`\"\u003e`version_audit`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`versionCompany`\" pulumi-lang-dotnet=\"`VersionCompany`\" pulumi-lang-go=\"`versionCompany`\" pulumi-lang-python=\"`version_company`\" pulumi-lang-yaml=\"`versionCompany`\" pulumi-lang-java=\"`versionCompany`\"\u003e`version_company`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`versionDlp`\" pulumi-lang-dotnet=\"`VersionDlp`\" pulumi-lang-go=\"`versionDlp`\" pulumi-lang-python=\"`version_dlp`\" pulumi-lang-yaml=\"`versionDlp`\" pulumi-lang-java=\"`versionDlp`\"\u003e`version_dlp`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"udCbool":{"type":"string","description":"Whether to use OSS. Valid values: \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e.\n"},"udc":{"type":"string","description":"OSS Size.\n"}},"type":"object"}},"alicloud:sddp/rule:Rule":{"description":"Provides a Data Security Center Rule resource.\n\nFor information about Data Security Center Rule and how to use it, see [What is Rule](https://www.alibabacloud.com/help/en/data-security-center/latest/api-sddp-2019-01-03-createrule).\n\n\u003e **NOTE:** Available since v1.132.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example-name\";\nconst _default = new alicloud.sddp.Rule(\"default\", {\n    ruleName: name,\n    category: 2,\n    content: `  [\n    {\n      \\\\\"rule\\\\\": [\n        {\n          \\\\\"operator\\\\\": \\\\\"contains\\\\\",\n          \\\\\"target\\\\\": \\\\\"content\\\\\",\n          \\\\\"value\\\\\": \\\\\"tf-testACCContent\\\\\"\n        }\n      ],\n      \\\\\"ruleRelation\\\\\": \\\\\"AND\\\\\"\n    }\n  ]\n`,\n    riskLevelId: \"4\",\n    productCode: \"OSS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example-name\"\ndefault = alicloud.sddp.Rule(\"default\",\n    rule_name=name,\n    category=2,\n    content=\"\"\"  [\n    {\n      \\\"rule\\\": [\n        {\n          \\\"operator\\\": \\\"contains\\\",\n          \\\"target\\\": \\\"content\\\",\n          \\\"value\\\": \\\"tf-testACCContent\\\"\n        }\n      ],\n      \\\"ruleRelation\\\": \\\"AND\\\"\n    }\n  ]\n\"\"\",\n    risk_level_id=\"4\",\n    product_code=\"OSS\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example-name\";\n    var @default = new AliCloud.Sddp.Rule(\"default\", new()\n    {\n        RuleName = name,\n        Category = 2,\n        Content = @\"  [\n    {\n      \\\"\"rule\\\"\": [\n        {\n          \\\"\"operator\\\"\": \\\"\"contains\\\"\",\n          \\\"\"target\\\"\": \\\"\"content\\\"\",\n          \\\"\"value\\\"\": \\\"\"tf-testACCContent\\\"\"\n        }\n      ],\n      \\\"\"ruleRelation\\\"\": \\\"\"AND\\\"\"\n    }\n  ]\n\",\n        RiskLevelId = \"4\",\n        ProductCode = \"OSS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sddp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example-name\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := sddp.NewRule(ctx, \"default\", \u0026sddp.RuleArgs{\n\t\t\tRuleName: pulumi.String(name),\n\t\t\tCategory: pulumi.Int(2),\n\t\t\tContent: pulumi.String(`  [\n    {\n      \\\"rule\\\": [\n        {\n          \\\"operator\\\": \\\"contains\\\",\n          \\\"target\\\": \\\"content\\\",\n          \\\"value\\\": \\\"tf-testACCContent\\\"\n        }\n      ],\n      \\\"ruleRelation\\\": \\\"AND\\\"\n    }\n  ]\n`),\n\t\t\tRiskLevelId: pulumi.String(\"4\"),\n\t\t\tProductCode: pulumi.String(\"OSS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sddp.Rule;\nimport com.pulumi.alicloud.sddp.RuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example-name\");\n        var default_ = new Rule(\"default\", RuleArgs.builder()\n            .ruleName(name)\n            .category(2)\n            .content(\"\"\"\n  [\n    {\n      \\\"rule\\\": [\n        {\n          \\\"operator\\\": \\\"contains\\\",\n          \\\"target\\\": \\\"content\\\",\n          \\\"value\\\": \\\"tf-testACCContent\\\"\n        }\n      ],\n      \\\"ruleRelation\\\": \\\"AND\\\"\n    }\n  ]\n            \"\"\")\n            .riskLevelId(\"4\")\n            .productCode(\"OSS\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example-name\nresources:\n  default:\n    type: alicloud:sddp:Rule\n    properties:\n      ruleName: ${name}\n      category: '2'\n      content: |2\n          [\n            {\n              \\\"rule\\\": [\n                {\n                  \\\"operator\\\": \\\"contains\\\",\n                  \\\"target\\\": \\\"content\\\",\n                  \\\"value\\\": \\\"tf-testACCContent\\\"\n                }\n              ],\n              \\\"ruleRelation\\\": \\\"AND\\\"\n            }\n          ]\n      riskLevelId: '4'\n      productCode: OSS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nData Security Center Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sddp/rule:Rule example \u003cid\u003e\n```\n\n","properties":{"category":{"type":"integer","description":"The content type of the sensitive data detection rule. Valid values:\n"},"content":{"type":"string","description":"The content of the sensitive data detection rule. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e can be modified.\n"},"contentCategory":{"type":"string","description":"The type of the content in the sensitive data detection rule. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`contentCategory`\" pulumi-lang-dotnet=\"`ContentCategory`\" pulumi-lang-go=\"`contentCategory`\" pulumi-lang-python=\"`content_category`\" pulumi-lang-yaml=\"`contentCategory`\" pulumi-lang-java=\"`contentCategory`\"\u003e`content_category`\u003c/span\u003e cannot be modified.\n"},"customType":{"type":"integer","description":"The type of the sensitive data detection rule. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`customType`\" pulumi-lang-dotnet=\"`CustomType`\" pulumi-lang-go=\"`customType`\" pulumi-lang-python=\"`custom_type`\" pulumi-lang-yaml=\"`customType`\" pulumi-lang-java=\"`customType`\"\u003e`custom_type`\u003c/span\u003e cannot be specified when create Rule.\n"},"description":{"type":"string","description":"The description of the rule. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e cannot be modified.\n"},"lang":{"type":"string","description":"The language of the content within the request and response. Default value: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e. Valid values:\n"},"productCode":{"type":"string","description":"The name of the service to which data in the column of the table belongs. Valid values: `OSS`, `RDS`, `ODPS`(MaxCompute).\n"},"productId":{"type":"string","description":"The ID of the service to which the data asset belongs. Valid values:\n"},"riskLevelId":{"type":"string","description":"The sensitivity level of the sensitive data that hits the sensitive data detection rule. Valid values:\n"},"ruleName":{"type":"string","description":"The name of the sensitive data detection rule. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`ruleName`\" pulumi-lang-dotnet=\"`RuleName`\" pulumi-lang-go=\"`ruleName`\" pulumi-lang-python=\"`rule_name`\" pulumi-lang-yaml=\"`ruleName`\" pulumi-lang-java=\"`ruleName`\"\u003e`rule_name`\u003c/span\u003e can be modified.\n"},"ruleType":{"type":"integer","description":"The type of the sensitive data detection rule. Valid values:\n"},"statExpress":{"type":"string","description":"The statistical expression. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`statExpress`\" pulumi-lang-dotnet=\"`StatExpress`\" pulumi-lang-go=\"`statExpress`\" pulumi-lang-python=\"`stat_express`\" pulumi-lang-yaml=\"`statExpress`\" pulumi-lang-java=\"`statExpress`\"\u003e`stat_express`\u003c/span\u003e cannot be modified.\n"},"status":{"type":"integer","description":"Sensitive Specifies whether to enable the sensitive data detection rule. Valid values:\n"},"target":{"type":"string","description":"The code of the service to which the sensitive data detection rule is applied. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`target`\" pulumi-lang-dotnet=\"`Target`\" pulumi-lang-go=\"`target`\" pulumi-lang-python=\"`target`\" pulumi-lang-yaml=\"`target`\" pulumi-lang-java=\"`target`\"\u003e`target`\u003c/span\u003e cannot be modified.\n"},"warnLevel":{"type":"integer","description":"The risk level of the alert that is triggered. Valid values:\n"}},"required":["category","content","contentCategory","customType","ruleName","status"],"inputProperties":{"category":{"type":"integer","description":"The content type of the sensitive data detection rule. Valid values:\n"},"content":{"type":"string","description":"The content of the sensitive data detection rule. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e can be modified.\n"},"contentCategory":{"type":"string","description":"The type of the content in the sensitive data detection rule. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`contentCategory`\" pulumi-lang-dotnet=\"`ContentCategory`\" pulumi-lang-go=\"`contentCategory`\" pulumi-lang-python=\"`content_category`\" pulumi-lang-yaml=\"`contentCategory`\" pulumi-lang-java=\"`contentCategory`\"\u003e`content_category`\u003c/span\u003e cannot be modified.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the rule. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e cannot be modified.\n","willReplaceOnChanges":true},"lang":{"type":"string","description":"The language of the content within the request and response. Default value: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e. Valid values:\n"},"productCode":{"type":"string","description":"The name of the service to which data in the column of the table belongs. Valid values: `OSS`, `RDS`, `ODPS`(MaxCompute).\n"},"productId":{"type":"string","description":"The ID of the service to which the data asset belongs. Valid values:\n"},"riskLevelId":{"type":"string","description":"The sensitivity level of the sensitive data that hits the sensitive data detection rule. Valid values:\n"},"ruleName":{"type":"string","description":"The name of the sensitive data detection rule. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`ruleName`\" pulumi-lang-dotnet=\"`RuleName`\" pulumi-lang-go=\"`ruleName`\" pulumi-lang-python=\"`rule_name`\" pulumi-lang-yaml=\"`ruleName`\" pulumi-lang-java=\"`ruleName`\"\u003e`rule_name`\u003c/span\u003e can be modified.\n"},"ruleType":{"type":"integer","description":"The type of the sensitive data detection rule. Valid values:\n"},"statExpress":{"type":"string","description":"The statistical expression. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`statExpress`\" pulumi-lang-dotnet=\"`StatExpress`\" pulumi-lang-go=\"`statExpress`\" pulumi-lang-python=\"`stat_express`\" pulumi-lang-yaml=\"`statExpress`\" pulumi-lang-java=\"`statExpress`\"\u003e`stat_express`\u003c/span\u003e cannot be modified.\n","willReplaceOnChanges":true},"status":{"type":"integer","description":"Sensitive Specifies whether to enable the sensitive data detection rule. Valid values:\n"},"target":{"type":"string","description":"The code of the service to which the sensitive data detection rule is applied. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`target`\" pulumi-lang-dotnet=\"`Target`\" pulumi-lang-go=\"`target`\" pulumi-lang-python=\"`target`\" pulumi-lang-yaml=\"`target`\" pulumi-lang-java=\"`target`\"\u003e`target`\u003c/span\u003e cannot be modified.\n","willReplaceOnChanges":true},"warnLevel":{"type":"integer","description":"The risk level of the alert that is triggered. Valid values:\n"}},"requiredInputs":["category","content","ruleName"],"stateInputs":{"description":"Input properties used for looking up and filtering Rule resources.\n","properties":{"category":{"type":"integer","description":"The content type of the sensitive data detection rule. Valid values:\n"},"content":{"type":"string","description":"The content of the sensitive data detection rule. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e can be modified.\n"},"contentCategory":{"type":"string","description":"The type of the content in the sensitive data detection rule. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`contentCategory`\" pulumi-lang-dotnet=\"`ContentCategory`\" pulumi-lang-go=\"`contentCategory`\" pulumi-lang-python=\"`content_category`\" pulumi-lang-yaml=\"`contentCategory`\" pulumi-lang-java=\"`contentCategory`\"\u003e`content_category`\u003c/span\u003e cannot be modified.\n","willReplaceOnChanges":true},"customType":{"type":"integer","description":"The type of the sensitive data detection rule. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`customType`\" pulumi-lang-dotnet=\"`CustomType`\" pulumi-lang-go=\"`customType`\" pulumi-lang-python=\"`custom_type`\" pulumi-lang-yaml=\"`customType`\" pulumi-lang-java=\"`customType`\"\u003e`custom_type`\u003c/span\u003e cannot be specified when create Rule.\n"},"description":{"type":"string","description":"The description of the rule. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e cannot be modified.\n","willReplaceOnChanges":true},"lang":{"type":"string","description":"The language of the content within the request and response. Default value: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e. Valid values:\n"},"productCode":{"type":"string","description":"The name of the service to which data in the column of the table belongs. Valid values: `OSS`, `RDS`, `ODPS`(MaxCompute).\n"},"productId":{"type":"string","description":"The ID of the service to which the data asset belongs. Valid values:\n"},"riskLevelId":{"type":"string","description":"The sensitivity level of the sensitive data that hits the sensitive data detection rule. Valid values:\n"},"ruleName":{"type":"string","description":"The name of the sensitive data detection rule. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`ruleName`\" pulumi-lang-dotnet=\"`RuleName`\" pulumi-lang-go=\"`ruleName`\" pulumi-lang-python=\"`rule_name`\" pulumi-lang-yaml=\"`ruleName`\" pulumi-lang-java=\"`ruleName`\"\u003e`rule_name`\u003c/span\u003e can be modified.\n"},"ruleType":{"type":"integer","description":"The type of the sensitive data detection rule. Valid values:\n"},"statExpress":{"type":"string","description":"The statistical expression. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`statExpress`\" pulumi-lang-dotnet=\"`StatExpress`\" pulumi-lang-go=\"`statExpress`\" pulumi-lang-python=\"`stat_express`\" pulumi-lang-yaml=\"`statExpress`\" pulumi-lang-java=\"`statExpress`\"\u003e`stat_express`\u003c/span\u003e cannot be modified.\n","willReplaceOnChanges":true},"status":{"type":"integer","description":"Sensitive Specifies whether to enable the sensitive data detection rule. Valid values:\n"},"target":{"type":"string","description":"The code of the service to which the sensitive data detection rule is applied. **NOTE:** From version 1.222.0, \u003cspan pulumi-lang-nodejs=\"`target`\" pulumi-lang-dotnet=\"`Target`\" pulumi-lang-go=\"`target`\" pulumi-lang-python=\"`target`\" pulumi-lang-yaml=\"`target`\" pulumi-lang-java=\"`target`\"\u003e`target`\u003c/span\u003e cannot be modified.\n","willReplaceOnChanges":true},"warnLevel":{"type":"integer","description":"The risk level of the alert that is triggered. Valid values:\n"}},"type":"object"}},"alicloud:securitycenter/group:Group":{"description":"Provides a Security Center Group resource.\n\nFor information about Security Center Group and how to use it, see [What is Group](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-createorupdateassetgroup).\n\n\u003e **NOTE:** Available since v1.133.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst example = new alicloud.securitycenter.Group(\"example\", {groupName: name});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\nexample = alicloud.securitycenter.Group(\"example\", group_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var example = new AliCloud.SecurityCenter.Group(\"example\", new()\n    {\n        GroupName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/securitycenter\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := securitycenter.NewGroup(ctx, \"example\", \u0026securitycenter.GroupArgs{\n\t\t\tGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.securitycenter.Group;\nimport com.pulumi.alicloud.securitycenter.GroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var example = new Group(\"example\", GroupArgs.builder()\n            .groupName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  example:\n    type: alicloud:securitycenter:Group\n    properties:\n      groupName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSecurity Center Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:securitycenter/group:Group example \u003cgroup_id\u003e\n```\n\n","properties":{"groupId":{"type":"string","description":"GroupId.\n"},"groupName":{"type":"string","description":"GroupName.\n"}},"required":["groupId"],"inputProperties":{"groupId":{"type":"string","description":"GroupId.\n","willReplaceOnChanges":true},"groupName":{"type":"string","description":"GroupName.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Group resources.\n","properties":{"groupId":{"type":"string","description":"GroupId.\n","willReplaceOnChanges":true},"groupName":{"type":"string","description":"GroupName.\n"}},"type":"object"}},"alicloud:securitycenter/serviceLinkedRole:ServiceLinkedRole":{"description":"Using this resource can create SecurityCenter service-linked role : `AliyunServiceRolePolicyForSas`.  This Role is a Resource Access Management (RAM) role, which to obtain permissions to access another Alibaba Cloud service.\n\n\nFor information about Security Center Service Role and how to use it, see [What is Security Center](https://www.alibabacloud.com/help/en/doc-detail/42302.htm).\n\n\u003e **NOTE:** Available since v1.142.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst serviceLinkedRole = new alicloud.securitycenter.ServiceLinkedRole(\"service_linked_role\", {});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nservice_linked_role = alicloud.securitycenter.ServiceLinkedRole(\"service_linked_role\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var serviceLinkedRole = new AliCloud.SecurityCenter.ServiceLinkedRole(\"service_linked_role\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/securitycenter\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := securitycenter.NewServiceLinkedRole(ctx, \"service_linked_role\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.securitycenter.ServiceLinkedRole;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var serviceLinkedRole = new ServiceLinkedRole(\"serviceLinkedRole\");\n\n    }\n}\n```\n```yaml\nresources:\n  serviceLinkedRole:\n    type: alicloud:securitycenter:ServiceLinkedRole\n    name: service_linked_role\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSecurityCenter service-linked roles(SLR) can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:securitycenter/serviceLinkedRole:ServiceLinkedRole example \u003cproduct_name\u003e\n```\n\n","properties":{"status":{"type":"boolean","description":"The status of the service Associated role. Valid Values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: Created. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: not created.\n"}},"required":["status"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceLinkedRole resources.\n","properties":{"status":{"type":"boolean","description":"The status of the service Associated role. Valid Values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: Created. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: not created.\n"}},"type":"object"}},"alicloud:selectdb/dbCluster:DbCluster":{"description":"Provides a SelectDB DBCluster resource.\n\nFor information about SelectDB DBCluster and how to use it, see [What is DBCluster](https://www.alibabacloud.com/help/zh/selectdb/latest/api-selectdb-2023-05-22-createdbcluster).\n\n\u003e **NOTE:** Available since v1.229.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultDbInstance = new alicloud.selectdb.DbInstance(\"default\", {\n    dbInstanceClass: \"selectdb.xlarge\",\n    dbInstanceDescription: name,\n    cacheSize: 200,\n    paymentType: \"PayAsYouGo\",\n    engineMinorVersion: \"3.0.12\",\n    vpcId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.vpcId),\n    zoneId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.zoneId),\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.id),\n});\nconst defaultDbCluster = new alicloud.selectdb.DbCluster(\"default\", {\n    dbInstanceId: defaultDbInstance.id,\n    dbClusterDescription: name,\n    dbClusterClass: \"selectdb.2xlarge\",\n    cacheSize: 400,\n    paymentType: \"PayAsYouGo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_db_instance = alicloud.selectdb.DbInstance(\"default\",\n    db_instance_class=\"selectdb.xlarge\",\n    db_instance_description=name,\n    cache_size=200,\n    payment_type=\"PayAsYouGo\",\n    engine_minor_version=\"3.0.12\",\n    vpc_id=default_get_switches.vswitches[0].vpc_id,\n    zone_id=default_get_switches.vswitches[0].zone_id,\n    vswitch_id=default_get_switches.vswitches[0].id)\ndefault_db_cluster = alicloud.selectdb.DbCluster(\"default\",\n    db_instance_id=default_db_instance.id,\n    db_cluster_description=name,\n    db_cluster_class=\"selectdb.2xlarge\",\n    cache_size=400,\n    payment_type=\"PayAsYouGo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultDbInstance = new AliCloud.SelectDB.DbInstance(\"default\", new()\n    {\n        DbInstanceClass = \"selectdb.xlarge\",\n        DbInstanceDescription = name,\n        CacheSize = 200,\n        PaymentType = \"PayAsYouGo\",\n        EngineMinorVersion = \"3.0.12\",\n        VpcId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.VpcId),\n        ZoneId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.ZoneId),\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.Id),\n    });\n\n    var defaultDbCluster = new AliCloud.SelectDB.DbCluster(\"default\", new()\n    {\n        DbInstanceId = defaultDbInstance.Id,\n        DbClusterDescription = name,\n        DbClusterClass = \"selectdb.2xlarge\",\n        CacheSize = 400,\n        PaymentType = \"PayAsYouGo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/selectdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDbInstance, err := selectdb.NewDbInstance(ctx, \"default\", \u0026selectdb.DbInstanceArgs{\n\t\t\tDbInstanceClass:       pulumi.String(\"selectdb.xlarge\"),\n\t\t\tDbInstanceDescription: pulumi.String(name),\n\t\t\tCacheSize:             pulumi.Int(200),\n\t\t\tPaymentType:           pulumi.String(\"PayAsYouGo\"),\n\t\t\tEngineMinorVersion:    pulumi.String(\"3.0.12\"),\n\t\t\tVpcId:                 pulumi.String(defaultGetSwitches.Vswitches[0].VpcId),\n\t\t\tZoneId:                pulumi.String(defaultGetSwitches.Vswitches[0].ZoneId),\n\t\t\tVswitchId:             pulumi.String(defaultGetSwitches.Vswitches[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = selectdb.NewDbCluster(ctx, \"default\", \u0026selectdb.DbClusterArgs{\n\t\t\tDbInstanceId:         defaultDbInstance.ID(),\n\t\t\tDbClusterDescription: pulumi.String(name),\n\t\t\tDbClusterClass:       pulumi.String(\"selectdb.2xlarge\"),\n\t\t\tCacheSize:            pulumi.Int(400),\n\t\t\tPaymentType:          pulumi.String(\"PayAsYouGo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.selectdb.DbInstance;\nimport com.pulumi.alicloud.selectdb.DbInstanceArgs;\nimport com.pulumi.alicloud.selectdb.DbCluster;\nimport com.pulumi.alicloud.selectdb.DbClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultDbInstance = new DbInstance(\"defaultDbInstance\", DbInstanceArgs.builder()\n            .dbInstanceClass(\"selectdb.xlarge\")\n            .dbInstanceDescription(name)\n            .cacheSize(200)\n            .paymentType(\"PayAsYouGo\")\n            .engineMinorVersion(\"3.0.12\")\n            .vpcId(defaultGetSwitches.vswitches()[0].vpcId())\n            .zoneId(defaultGetSwitches.vswitches()[0].zoneId())\n            .vswitchId(defaultGetSwitches.vswitches()[0].id())\n            .build());\n\n        var defaultDbCluster = new DbCluster(\"defaultDbCluster\", DbClusterArgs.builder()\n            .dbInstanceId(defaultDbInstance.id())\n            .dbClusterDescription(name)\n            .dbClusterClass(\"selectdb.2xlarge\")\n            .cacheSize(400)\n            .paymentType(\"PayAsYouGo\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  defaultDbInstance:\n    type: alicloud:selectdb:DbInstance\n    name: default\n    properties:\n      dbInstanceClass: selectdb.xlarge\n      dbInstanceDescription: ${name}\n      cacheSize: 200\n      paymentType: PayAsYouGo\n      engineMinorVersion: 3.0.12\n      vpcId: ${defaultGetSwitches.vswitches[0].vpcId}\n      zoneId: ${defaultGetSwitches.vswitches[0].zoneId}\n      vswitchId: ${defaultGetSwitches.vswitches[0].id}\n  defaultDbCluster:\n    type: alicloud:selectdb:DbCluster\n    name: default\n    properties:\n      dbInstanceId: ${defaultDbInstance.id}\n      dbClusterDescription: ${name}\n      dbClusterClass: selectdb.2xlarge\n      cacheSize: 400\n      paymentType: PayAsYouGo\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSelectDB DBCluster can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:selectdb/dbCluster:DbCluster example \u003cdb_instance_id\u003e:\u003cdb_cluster_id\u003e\n```\n\n","properties":{"cacheSize":{"type":"integer","description":"The desired cache size on creating cluster. The number should be divided by 100.\n"},"cpu":{"type":"integer","description":"The cpu resource amount of DBCluster. Depends on \u003cspan pulumi-lang-nodejs=\"`dbClusterClass`\" pulumi-lang-dotnet=\"`DbClusterClass`\" pulumi-lang-go=\"`dbClusterClass`\" pulumi-lang-python=\"`db_cluster_class`\" pulumi-lang-yaml=\"`dbClusterClass`\" pulumi-lang-java=\"`dbClusterClass`\"\u003e`db_cluster_class`\u003c/span\u003e.\n"},"createTime":{"type":"string","description":"The time when DBCluster is created.\n"},"dbClusterClass":{"type":"string","description":"The DBCluster class.\u003cspan pulumi-lang-nodejs=\" dbClusterClass \" pulumi-lang-dotnet=\" DbClusterClass \" pulumi-lang-go=\" dbClusterClass \" pulumi-lang-python=\" db_cluster_class \" pulumi-lang-yaml=\" dbClusterClass \" pulumi-lang-java=\" dbClusterClass \"\u003e db_cluster_class \u003c/span\u003ehas a range of class from `selectdb.xlarge` to `selectdb.256xlarge`.\n"},"dbClusterDescription":{"type":"string","description":"The DBCluster description.\n"},"dbClusterId":{"type":"string","description":"The id of the cluster.\n"},"dbInstanceId":{"type":"string","description":"The InstanceId of DBInstance for DBCluster. Every DBCluster requires one DBInstance to rely on.\n"},"desiredParams":{"type":"array","items":{"$ref":"#/types/alicloud:selectdb/DbClusterDesiredParam:DbClusterDesiredParam"},"description":"The modified parameter in DBCluster. See \u003cspan pulumi-lang-nodejs=\"`desiredParams`\" pulumi-lang-dotnet=\"`DesiredParams`\" pulumi-lang-go=\"`desiredParams`\" pulumi-lang-python=\"`desired_params`\" pulumi-lang-yaml=\"`desiredParams`\" pulumi-lang-java=\"`desiredParams`\"\u003e`desired_params`\u003c/span\u003e below.\n"},"desiredStatus":{"type":"string","description":"The desired status for the resource. Valid values: `ACTIVATION`,`STOPPED`,`STARTING`,`RESTART`.\n"},"engine":{"type":"string","description":"The engine of DBCluster. Always \u003cspan pulumi-lang-nodejs=\"`selectdb`\" pulumi-lang-dotnet=\"`Selectdb`\" pulumi-lang-go=\"`selectdb`\" pulumi-lang-python=\"`selectdb`\" pulumi-lang-yaml=\"`selectdb`\" pulumi-lang-java=\"`selectdb`\"\u003e`selectdb`\u003c/span\u003e.\n"},"engineVersion":{"type":"string","description":"The version of DBCluster.\n"},"memory":{"type":"integer","description":"The memory resource amount of DBCluster. Depends on \u003cspan pulumi-lang-nodejs=\"`dbClusterClass`\" pulumi-lang-dotnet=\"`DbClusterClass`\" pulumi-lang-go=\"`dbClusterClass`\" pulumi-lang-python=\"`db_cluster_class`\" pulumi-lang-yaml=\"`dbClusterClass`\" pulumi-lang-java=\"`dbClusterClass`\"\u003e`db_cluster_class`\u003c/span\u003e.\n"},"paramChangeLogs":{"type":"array","items":{"$ref":"#/types/alicloud:selectdb/DbClusterParamChangeLog:DbClusterParamChangeLog"},"description":"The details about parameter changelogs in DBCluster returned.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`,`Subscription`.\n"},"regionId":{"type":"string","description":"The ID of region for the cluster.\n"},"status":{"type":"string","description":"The current status of the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC for the cluster.\n"},"zoneId":{"type":"string","description":"The ID of zone for the cluster.\n"}},"required":["cacheSize","cpu","createTime","dbClusterClass","dbClusterDescription","dbClusterId","dbInstanceId","engine","engineVersion","memory","paramChangeLogs","paymentType","regionId","status","vpcId","zoneId"],"inputProperties":{"cacheSize":{"type":"integer","description":"The desired cache size on creating cluster. The number should be divided by 100.\n"},"dbClusterClass":{"type":"string","description":"The DBCluster class.\u003cspan pulumi-lang-nodejs=\" dbClusterClass \" pulumi-lang-dotnet=\" DbClusterClass \" pulumi-lang-go=\" dbClusterClass \" pulumi-lang-python=\" db_cluster_class \" pulumi-lang-yaml=\" dbClusterClass \" pulumi-lang-java=\" dbClusterClass \"\u003e db_cluster_class \u003c/span\u003ehas a range of class from `selectdb.xlarge` to `selectdb.256xlarge`.\n"},"dbClusterDescription":{"type":"string","description":"The DBCluster description.\n"},"dbInstanceId":{"type":"string","description":"The InstanceId of DBInstance for DBCluster. Every DBCluster requires one DBInstance to rely on.\n","willReplaceOnChanges":true},"desiredParams":{"type":"array","items":{"$ref":"#/types/alicloud:selectdb/DbClusterDesiredParam:DbClusterDesiredParam"},"description":"The modified parameter in DBCluster. See \u003cspan pulumi-lang-nodejs=\"`desiredParams`\" pulumi-lang-dotnet=\"`DesiredParams`\" pulumi-lang-go=\"`desiredParams`\" pulumi-lang-python=\"`desired_params`\" pulumi-lang-yaml=\"`desiredParams`\" pulumi-lang-java=\"`desiredParams`\"\u003e`desired_params`\u003c/span\u003e below.\n"},"desiredStatus":{"type":"string","description":"The desired status for the resource. Valid values: `ACTIVATION`,`STOPPED`,`STARTING`,`RESTART`.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`,`Subscription`.\n","willReplaceOnChanges":true}},"requiredInputs":["cacheSize","dbClusterClass","dbClusterDescription","dbInstanceId","paymentType"],"stateInputs":{"description":"Input properties used for looking up and filtering DbCluster resources.\n","properties":{"cacheSize":{"type":"integer","description":"The desired cache size on creating cluster. The number should be divided by 100.\n"},"cpu":{"type":"integer","description":"The cpu resource amount of DBCluster. Depends on \u003cspan pulumi-lang-nodejs=\"`dbClusterClass`\" pulumi-lang-dotnet=\"`DbClusterClass`\" pulumi-lang-go=\"`dbClusterClass`\" pulumi-lang-python=\"`db_cluster_class`\" pulumi-lang-yaml=\"`dbClusterClass`\" pulumi-lang-java=\"`dbClusterClass`\"\u003e`db_cluster_class`\u003c/span\u003e.\n"},"createTime":{"type":"string","description":"The time when DBCluster is created.\n"},"dbClusterClass":{"type":"string","description":"The DBCluster class.\u003cspan pulumi-lang-nodejs=\" dbClusterClass \" pulumi-lang-dotnet=\" DbClusterClass \" pulumi-lang-go=\" dbClusterClass \" pulumi-lang-python=\" db_cluster_class \" pulumi-lang-yaml=\" dbClusterClass \" pulumi-lang-java=\" dbClusterClass \"\u003e db_cluster_class \u003c/span\u003ehas a range of class from `selectdb.xlarge` to `selectdb.256xlarge`.\n"},"dbClusterDescription":{"type":"string","description":"The DBCluster description.\n"},"dbClusterId":{"type":"string","description":"The id of the cluster.\n"},"dbInstanceId":{"type":"string","description":"The InstanceId of DBInstance for DBCluster. Every DBCluster requires one DBInstance to rely on.\n","willReplaceOnChanges":true},"desiredParams":{"type":"array","items":{"$ref":"#/types/alicloud:selectdb/DbClusterDesiredParam:DbClusterDesiredParam"},"description":"The modified parameter in DBCluster. See \u003cspan pulumi-lang-nodejs=\"`desiredParams`\" pulumi-lang-dotnet=\"`DesiredParams`\" pulumi-lang-go=\"`desiredParams`\" pulumi-lang-python=\"`desired_params`\" pulumi-lang-yaml=\"`desiredParams`\" pulumi-lang-java=\"`desiredParams`\"\u003e`desired_params`\u003c/span\u003e below.\n"},"desiredStatus":{"type":"string","description":"The desired status for the resource. Valid values: `ACTIVATION`,`STOPPED`,`STARTING`,`RESTART`.\n"},"engine":{"type":"string","description":"The engine of DBCluster. Always \u003cspan pulumi-lang-nodejs=\"`selectdb`\" pulumi-lang-dotnet=\"`Selectdb`\" pulumi-lang-go=\"`selectdb`\" pulumi-lang-python=\"`selectdb`\" pulumi-lang-yaml=\"`selectdb`\" pulumi-lang-java=\"`selectdb`\"\u003e`selectdb`\u003c/span\u003e.\n"},"engineVersion":{"type":"string","description":"The version of DBCluster.\n"},"memory":{"type":"integer","description":"The memory resource amount of DBCluster. Depends on \u003cspan pulumi-lang-nodejs=\"`dbClusterClass`\" pulumi-lang-dotnet=\"`DbClusterClass`\" pulumi-lang-go=\"`dbClusterClass`\" pulumi-lang-python=\"`db_cluster_class`\" pulumi-lang-yaml=\"`dbClusterClass`\" pulumi-lang-java=\"`dbClusterClass`\"\u003e`db_cluster_class`\u003c/span\u003e.\n"},"paramChangeLogs":{"type":"array","items":{"$ref":"#/types/alicloud:selectdb/DbClusterParamChangeLog:DbClusterParamChangeLog"},"description":"The details about parameter changelogs in DBCluster returned.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`,`Subscription`.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The ID of region for the cluster.\n"},"status":{"type":"string","description":"The current status of the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC for the cluster.\n"},"zoneId":{"type":"string","description":"The ID of zone for the cluster.\n"}},"type":"object"}},"alicloud:selectdb/dbInstance:DbInstance":{"description":"Provides a SelectDB DBInstance resource.\n\nFor information about SelectDB DBInstance and how to use it, see [What is DBInstance](https://www.alibabacloud.com/help/zh/selectdb/latest/api-selectdb-2023-05-22-createdbinstance).\n\n\u003e **NOTE:** Available since v1.229.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultDbInstance = new alicloud.selectdb.DbInstance(\"default\", {\n    dbInstanceClass: \"selectdb.xlarge\",\n    dbInstanceDescription: name,\n    cacheSize: 200,\n    paymentType: \"PayAsYouGo\",\n    engineMinorVersion: \"3.0.12\",\n    vpcId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.vpcId),\n    zoneId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.zoneId),\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_db_instance = alicloud.selectdb.DbInstance(\"default\",\n    db_instance_class=\"selectdb.xlarge\",\n    db_instance_description=name,\n    cache_size=200,\n    payment_type=\"PayAsYouGo\",\n    engine_minor_version=\"3.0.12\",\n    vpc_id=default_get_switches.vswitches[0].vpc_id,\n    zone_id=default_get_switches.vswitches[0].zone_id,\n    vswitch_id=default_get_switches.vswitches[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultDbInstance = new AliCloud.SelectDB.DbInstance(\"default\", new()\n    {\n        DbInstanceClass = \"selectdb.xlarge\",\n        DbInstanceDescription = name,\n        CacheSize = 200,\n        PaymentType = \"PayAsYouGo\",\n        EngineMinorVersion = \"3.0.12\",\n        VpcId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.VpcId),\n        ZoneId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.ZoneId),\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/selectdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = selectdb.NewDbInstance(ctx, \"default\", \u0026selectdb.DbInstanceArgs{\n\t\t\tDbInstanceClass:       pulumi.String(\"selectdb.xlarge\"),\n\t\t\tDbInstanceDescription: pulumi.String(name),\n\t\t\tCacheSize:             pulumi.Int(200),\n\t\t\tPaymentType:           pulumi.String(\"PayAsYouGo\"),\n\t\t\tEngineMinorVersion:    pulumi.String(\"3.0.12\"),\n\t\t\tVpcId:                 pulumi.String(defaultGetSwitches.Vswitches[0].VpcId),\n\t\t\tZoneId:                pulumi.String(defaultGetSwitches.Vswitches[0].ZoneId),\n\t\t\tVswitchId:             pulumi.String(defaultGetSwitches.Vswitches[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.selectdb.DbInstance;\nimport com.pulumi.alicloud.selectdb.DbInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultDbInstance = new DbInstance(\"defaultDbInstance\", DbInstanceArgs.builder()\n            .dbInstanceClass(\"selectdb.xlarge\")\n            .dbInstanceDescription(name)\n            .cacheSize(200)\n            .paymentType(\"PayAsYouGo\")\n            .engineMinorVersion(\"3.0.12\")\n            .vpcId(defaultGetSwitches.vswitches()[0].vpcId())\n            .zoneId(defaultGetSwitches.vswitches()[0].zoneId())\n            .vswitchId(defaultGetSwitches.vswitches()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  defaultDbInstance:\n    type: alicloud:selectdb:DbInstance\n    name: default\n    properties:\n      dbInstanceClass: selectdb.xlarge\n      dbInstanceDescription: ${name}\n      cacheSize: 200\n      paymentType: PayAsYouGo\n      engineMinorVersion: 3.0.12\n      vpcId: ${defaultGetSwitches.vswitches[0].vpcId}\n      zoneId: ${defaultGetSwitches.vswitches[0].zoneId}\n      vswitchId: ${defaultGetSwitches.vswitches[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSelectDB DBInstance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:selectdb/dbInstance:DbInstance example \u003cid\u003e\n```\n\n","properties":{"adminPass":{"type":"string","description":"The password for DBInstance using admin account.\n","secret":true},"cacheSize":{"type":"integer","description":"The cache size in DBInstance on creating default cluster. The number should be divided by 100.\n"},"cacheSizePostpaid":{"type":"integer","description":"The sum of cache size for every `PayAsYouGo` clusters in DBInstance.\n"},"cacheSizePrepaid":{"type":"integer","description":"The sum of cache size for every `Subscription` clusters in DBInstance.\n"},"clusterCountPostpaid":{"type":"integer","description":"The sum of cluster counts for `PayAsYouGo` clusters in DBInstance.\n"},"clusterCountPrepaid":{"type":"integer","description":"The sum of cluster counts for `Subscription` clusters in DBInstance.\n"},"cpuPostpaid":{"type":"integer","description":"The sum of cpu resource amount for every `PayAsYouGo` clusters in DBInstance.\n"},"cpuPrepaid":{"type":"integer","description":"The sum of cpu resource amount for every `Subscription` clusters in DBInstance.\n"},"dbInstanceClass":{"type":"string","description":"The class for default cluster in DBInstance.\u003cspan pulumi-lang-nodejs=\" dbClusterClass \" pulumi-lang-dotnet=\" DbClusterClass \" pulumi-lang-go=\" dbClusterClass \" pulumi-lang-python=\" db_cluster_class \" pulumi-lang-yaml=\" dbClusterClass \" pulumi-lang-java=\" dbClusterClass \"\u003e db_cluster_class \u003c/span\u003ehas a range of class from `selectdb.xlarge` to `selectdb.256xlarge`.\n"},"dbInstanceDescription":{"type":"string","description":"The DBInstance description.\n"},"desiredSecurityIpLists":{"type":"array","items":{"$ref":"#/types/alicloud:selectdb/DbInstanceDesiredSecurityIpList:DbInstanceDesiredSecurityIpList"},"description":"The modified IP address whitelists. See \u003cspan pulumi-lang-nodejs=\"`desiredSecurityIpLists`\" pulumi-lang-dotnet=\"`DesiredSecurityIpLists`\" pulumi-lang-go=\"`desiredSecurityIpLists`\" pulumi-lang-python=\"`desired_security_ip_lists`\" pulumi-lang-yaml=\"`desiredSecurityIpLists`\" pulumi-lang-java=\"`desiredSecurityIpLists`\"\u003e`desired_security_ip_lists`\u003c/span\u003e below.\n"},"enablePublicNetwork":{"type":"boolean","description":"If DBInstance need to open public network, set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"engine":{"type":"string","description":"The engine of DBInstance. Always \u003cspan pulumi-lang-nodejs=\"`selectdb`\" pulumi-lang-dotnet=\"`Selectdb`\" pulumi-lang-go=\"`selectdb`\" pulumi-lang-python=\"`selectdb`\" pulumi-lang-yaml=\"`selectdb`\" pulumi-lang-java=\"`selectdb`\"\u003e`selectdb`\u003c/span\u003e.\n"},"engineMinorVersion":{"type":"string","description":"The DBInstance minor version. Valid values: `3.0.12`,`4.0.4`.\n"},"gmtCreated":{"type":"string","description":"The time when DBInstance is created.\n"},"gmtExpired":{"type":"string","description":"The time when DBInstance will be expired. Available on `Subscription` DBInstance.\n"},"gmtModified":{"type":"string","description":"The time when DBInstance is modified.\n"},"instanceNetInfos":{"type":"array","items":{"$ref":"#/types/alicloud:selectdb/DbInstanceInstanceNetInfo:DbInstanceInstanceNetInfo"},"description":"The net infos for instances.\n"},"lockMode":{"type":"string","description":"The lock mode of the instance. Set the value to lock, which specifies that the instance is locked when it automatically expires or has an overdue payment.\n"},"lockReason":{"type":"string","description":"The reason why the instance is locked.\n"},"memoryPostpaid":{"type":"integer","description":"The sum of memory resource amount offor every `PayAsYouGo` clusters in DBInstance.\n"},"memoryPrepaid":{"type":"integer","description":"The sum of memory resource amount offor every `Subscription` clusters in DBInstance.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`,`Subscription`.\n"},"period":{"type":"string","description":"It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Valid values are `Year`, `Month`.\n"},"periodTime":{"type":"integer","description":"The duration that you will buy DBInstance. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Valid values: [1~9], 12, 24, 36.\n"},"regionId":{"type":"string","description":"The region ID of the instance.\n"},"securityIpLists":{"type":"array","items":{"$ref":"#/types/alicloud:selectdb/DbInstanceSecurityIpList:DbInstanceSecurityIpList"},"description":"The details about each IP address whitelist returned.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `ACTIVATION`,`STOPPED`,`STARTING`,`RESTART`.\n"},"subDomain":{"type":"string","description":"The sub domain of DBInstance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"upgradedEngineMinorVersion":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`upgradedEngineMinorVersion`\" pulumi-lang-dotnet=\"`UpgradedEngineMinorVersion`\" pulumi-lang-go=\"`upgradedEngineMinorVersion`\" pulumi-lang-python=\"`upgraded_engine_minor_version`\" pulumi-lang-yaml=\"`upgradedEngineMinorVersion`\" pulumi-lang-java=\"`upgradedEngineMinorVersion`\"\u003e`upgraded_engine_minor_version`\u003c/span\u003e has been deprecated from provider version 1.248.0. New field \u003cspan pulumi-lang-nodejs=\"`engineMinorVersion`\" pulumi-lang-dotnet=\"`EngineMinorVersion`\" pulumi-lang-go=\"`engineMinorVersion`\" pulumi-lang-python=\"`engine_minor_version`\" pulumi-lang-yaml=\"`engineMinorVersion`\" pulumi-lang-java=\"`engineMinorVersion`\"\u003e`engine_minor_version`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`upgradedEngineMinorVersion`\" pulumi-lang-dotnet=\"`UpgradedEngineMinorVersion`\" pulumi-lang-go=\"`upgradedEngineMinorVersion`\" pulumi-lang-python=\"`upgraded_engine_minor_version`\" pulumi-lang-yaml=\"`upgradedEngineMinorVersion`\" pulumi-lang-java=\"`upgradedEngineMinorVersion`\"\u003e`upgraded_engine_minor_version`\u003c/span\u003e has been deprecated from provider version 1.248.0. New field \u003cspan pulumi-lang-nodejs=\"`engineMinorVersion`\" pulumi-lang-dotnet=\"`EngineMinorVersion`\" pulumi-lang-go=\"`engineMinorVersion`\" pulumi-lang-python=\"`engine_minor_version`\" pulumi-lang-yaml=\"`engineMinorVersion`\" pulumi-lang-java=\"`engineMinorVersion`\"\u003e`engine_minor_version`\u003c/span\u003e instead."},"vpcId":{"type":"string","description":"The ID of the VPC for DBInstance.\n"},"vswitchId":{"type":"string","description":"The ID of vswitch for DBInstance.\n"},"zoneId":{"type":"string","description":"The ID of zone for DBInstance.\n"}},"required":["cacheSize","cacheSizePostpaid","cacheSizePrepaid","clusterCountPostpaid","clusterCountPrepaid","cpuPostpaid","cpuPrepaid","dbInstanceClass","dbInstanceDescription","engine","engineMinorVersion","gmtCreated","gmtExpired","gmtModified","instanceNetInfos","lockMode","lockReason","memoryPostpaid","memoryPrepaid","paymentType","regionId","securityIpLists","status","subDomain","upgradedEngineMinorVersion","vpcId","vswitchId","zoneId"],"inputProperties":{"adminPass":{"type":"string","description":"The password for DBInstance using admin account.\n","secret":true},"cacheSize":{"type":"integer","description":"The cache size in DBInstance on creating default cluster. The number should be divided by 100.\n"},"dbInstanceClass":{"type":"string","description":"The class for default cluster in DBInstance.\u003cspan pulumi-lang-nodejs=\" dbClusterClass \" pulumi-lang-dotnet=\" DbClusterClass \" pulumi-lang-go=\" dbClusterClass \" pulumi-lang-python=\" db_cluster_class \" pulumi-lang-yaml=\" dbClusterClass \" pulumi-lang-java=\" dbClusterClass \"\u003e db_cluster_class \u003c/span\u003ehas a range of class from `selectdb.xlarge` to `selectdb.256xlarge`.\n"},"dbInstanceDescription":{"type":"string","description":"The DBInstance description.\n"},"desiredSecurityIpLists":{"type":"array","items":{"$ref":"#/types/alicloud:selectdb/DbInstanceDesiredSecurityIpList:DbInstanceDesiredSecurityIpList"},"description":"The modified IP address whitelists. See \u003cspan pulumi-lang-nodejs=\"`desiredSecurityIpLists`\" pulumi-lang-dotnet=\"`DesiredSecurityIpLists`\" pulumi-lang-go=\"`desiredSecurityIpLists`\" pulumi-lang-python=\"`desired_security_ip_lists`\" pulumi-lang-yaml=\"`desiredSecurityIpLists`\" pulumi-lang-java=\"`desiredSecurityIpLists`\"\u003e`desired_security_ip_lists`\u003c/span\u003e below.\n"},"enablePublicNetwork":{"type":"boolean","description":"If DBInstance need to open public network, set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"engineMinorVersion":{"type":"string","description":"The DBInstance minor version. Valid values: `3.0.12`,`4.0.4`.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`,`Subscription`.\n"},"period":{"type":"string","description":"It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Valid values are `Year`, `Month`.\n"},"periodTime":{"type":"integer","description":"The duration that you will buy DBInstance. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Valid values: [1~9], 12, 24, 36.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"upgradedEngineMinorVersion":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`upgradedEngineMinorVersion`\" pulumi-lang-dotnet=\"`UpgradedEngineMinorVersion`\" pulumi-lang-go=\"`upgradedEngineMinorVersion`\" pulumi-lang-python=\"`upgraded_engine_minor_version`\" pulumi-lang-yaml=\"`upgradedEngineMinorVersion`\" pulumi-lang-java=\"`upgradedEngineMinorVersion`\"\u003e`upgraded_engine_minor_version`\u003c/span\u003e has been deprecated from provider version 1.248.0. New field \u003cspan pulumi-lang-nodejs=\"`engineMinorVersion`\" pulumi-lang-dotnet=\"`EngineMinorVersion`\" pulumi-lang-go=\"`engineMinorVersion`\" pulumi-lang-python=\"`engine_minor_version`\" pulumi-lang-yaml=\"`engineMinorVersion`\" pulumi-lang-java=\"`engineMinorVersion`\"\u003e`engine_minor_version`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`upgradedEngineMinorVersion`\" pulumi-lang-dotnet=\"`UpgradedEngineMinorVersion`\" pulumi-lang-go=\"`upgradedEngineMinorVersion`\" pulumi-lang-python=\"`upgraded_engine_minor_version`\" pulumi-lang-yaml=\"`upgradedEngineMinorVersion`\" pulumi-lang-java=\"`upgradedEngineMinorVersion`\"\u003e`upgraded_engine_minor_version`\u003c/span\u003e has been deprecated from provider version 1.248.0. New field \u003cspan pulumi-lang-nodejs=\"`engineMinorVersion`\" pulumi-lang-dotnet=\"`EngineMinorVersion`\" pulumi-lang-go=\"`engineMinorVersion`\" pulumi-lang-python=\"`engine_minor_version`\" pulumi-lang-yaml=\"`engineMinorVersion`\" pulumi-lang-java=\"`engineMinorVersion`\"\u003e`engine_minor_version`\u003c/span\u003e instead."},"vpcId":{"type":"string","description":"The ID of the VPC for DBInstance.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of vswitch for DBInstance.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The ID of zone for DBInstance.\n","willReplaceOnChanges":true}},"requiredInputs":["cacheSize","dbInstanceClass","dbInstanceDescription","paymentType","vpcId","vswitchId","zoneId"],"stateInputs":{"description":"Input properties used for looking up and filtering DbInstance resources.\n","properties":{"adminPass":{"type":"string","description":"The password for DBInstance using admin account.\n","secret":true},"cacheSize":{"type":"integer","description":"The cache size in DBInstance on creating default cluster. The number should be divided by 100.\n"},"cacheSizePostpaid":{"type":"integer","description":"The sum of cache size for every `PayAsYouGo` clusters in DBInstance.\n"},"cacheSizePrepaid":{"type":"integer","description":"The sum of cache size for every `Subscription` clusters in DBInstance.\n"},"clusterCountPostpaid":{"type":"integer","description":"The sum of cluster counts for `PayAsYouGo` clusters in DBInstance.\n"},"clusterCountPrepaid":{"type":"integer","description":"The sum of cluster counts for `Subscription` clusters in DBInstance.\n"},"cpuPostpaid":{"type":"integer","description":"The sum of cpu resource amount for every `PayAsYouGo` clusters in DBInstance.\n"},"cpuPrepaid":{"type":"integer","description":"The sum of cpu resource amount for every `Subscription` clusters in DBInstance.\n"},"dbInstanceClass":{"type":"string","description":"The class for default cluster in DBInstance.\u003cspan pulumi-lang-nodejs=\" dbClusterClass \" pulumi-lang-dotnet=\" DbClusterClass \" pulumi-lang-go=\" dbClusterClass \" pulumi-lang-python=\" db_cluster_class \" pulumi-lang-yaml=\" dbClusterClass \" pulumi-lang-java=\" dbClusterClass \"\u003e db_cluster_class \u003c/span\u003ehas a range of class from `selectdb.xlarge` to `selectdb.256xlarge`.\n"},"dbInstanceDescription":{"type":"string","description":"The DBInstance description.\n"},"desiredSecurityIpLists":{"type":"array","items":{"$ref":"#/types/alicloud:selectdb/DbInstanceDesiredSecurityIpList:DbInstanceDesiredSecurityIpList"},"description":"The modified IP address whitelists. See \u003cspan pulumi-lang-nodejs=\"`desiredSecurityIpLists`\" pulumi-lang-dotnet=\"`DesiredSecurityIpLists`\" pulumi-lang-go=\"`desiredSecurityIpLists`\" pulumi-lang-python=\"`desired_security_ip_lists`\" pulumi-lang-yaml=\"`desiredSecurityIpLists`\" pulumi-lang-java=\"`desiredSecurityIpLists`\"\u003e`desired_security_ip_lists`\u003c/span\u003e below.\n"},"enablePublicNetwork":{"type":"boolean","description":"If DBInstance need to open public network, set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"engine":{"type":"string","description":"The engine of DBInstance. Always \u003cspan pulumi-lang-nodejs=\"`selectdb`\" pulumi-lang-dotnet=\"`Selectdb`\" pulumi-lang-go=\"`selectdb`\" pulumi-lang-python=\"`selectdb`\" pulumi-lang-yaml=\"`selectdb`\" pulumi-lang-java=\"`selectdb`\"\u003e`selectdb`\u003c/span\u003e.\n"},"engineMinorVersion":{"type":"string","description":"The DBInstance minor version. Valid values: `3.0.12`,`4.0.4`.\n"},"gmtCreated":{"type":"string","description":"The time when DBInstance is created.\n"},"gmtExpired":{"type":"string","description":"The time when DBInstance will be expired. Available on `Subscription` DBInstance.\n"},"gmtModified":{"type":"string","description":"The time when DBInstance is modified.\n"},"instanceNetInfos":{"type":"array","items":{"$ref":"#/types/alicloud:selectdb/DbInstanceInstanceNetInfo:DbInstanceInstanceNetInfo"},"description":"The net infos for instances.\n"},"lockMode":{"type":"string","description":"The lock mode of the instance. Set the value to lock, which specifies that the instance is locked when it automatically expires or has an overdue payment.\n"},"lockReason":{"type":"string","description":"The reason why the instance is locked.\n"},"memoryPostpaid":{"type":"integer","description":"The sum of memory resource amount offor every `PayAsYouGo` clusters in DBInstance.\n"},"memoryPrepaid":{"type":"integer","description":"The sum of memory resource amount offor every `Subscription` clusters in DBInstance.\n"},"paymentType":{"type":"string","description":"The payment type of the resource. Valid values: `PayAsYouGo`,`Subscription`.\n"},"period":{"type":"string","description":"It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Valid values are `Year`, `Month`.\n"},"periodTime":{"type":"integer","description":"The duration that you will buy DBInstance. It is valid when\u003cspan pulumi-lang-nodejs=\" paymentType \" pulumi-lang-dotnet=\" PaymentType \" pulumi-lang-go=\" paymentType \" pulumi-lang-python=\" payment_type \" pulumi-lang-yaml=\" paymentType \" pulumi-lang-java=\" paymentType \"\u003e payment_type \u003c/span\u003eis `Subscription`. Valid values: [1~9], 12, 24, 36.\n"},"regionId":{"type":"string","description":"The region ID of the instance.\n"},"securityIpLists":{"type":"array","items":{"$ref":"#/types/alicloud:selectdb/DbInstanceSecurityIpList:DbInstanceSecurityIpList"},"description":"The details about each IP address whitelist returned.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `ACTIVATION`,`STOPPED`,`STARTING`,`RESTART`.\n"},"subDomain":{"type":"string","description":"The sub domain of DBInstance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"},"upgradedEngineMinorVersion":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`upgradedEngineMinorVersion`\" pulumi-lang-dotnet=\"`UpgradedEngineMinorVersion`\" pulumi-lang-go=\"`upgradedEngineMinorVersion`\" pulumi-lang-python=\"`upgraded_engine_minor_version`\" pulumi-lang-yaml=\"`upgradedEngineMinorVersion`\" pulumi-lang-java=\"`upgradedEngineMinorVersion`\"\u003e`upgraded_engine_minor_version`\u003c/span\u003e has been deprecated from provider version 1.248.0. New field \u003cspan pulumi-lang-nodejs=\"`engineMinorVersion`\" pulumi-lang-dotnet=\"`EngineMinorVersion`\" pulumi-lang-go=\"`engineMinorVersion`\" pulumi-lang-python=\"`engine_minor_version`\" pulumi-lang-yaml=\"`engineMinorVersion`\" pulumi-lang-java=\"`engineMinorVersion`\"\u003e`engine_minor_version`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`upgradedEngineMinorVersion`\" pulumi-lang-dotnet=\"`UpgradedEngineMinorVersion`\" pulumi-lang-go=\"`upgradedEngineMinorVersion`\" pulumi-lang-python=\"`upgraded_engine_minor_version`\" pulumi-lang-yaml=\"`upgradedEngineMinorVersion`\" pulumi-lang-java=\"`upgradedEngineMinorVersion`\"\u003e`upgraded_engine_minor_version`\u003c/span\u003e has been deprecated from provider version 1.248.0. New field \u003cspan pulumi-lang-nodejs=\"`engineMinorVersion`\" pulumi-lang-dotnet=\"`EngineMinorVersion`\" pulumi-lang-go=\"`engineMinorVersion`\" pulumi-lang-python=\"`engine_minor_version`\" pulumi-lang-yaml=\"`engineMinorVersion`\" pulumi-lang-java=\"`engineMinorVersion`\"\u003e`engine_minor_version`\u003c/span\u003e instead."},"vpcId":{"type":"string","description":"The ID of the VPC for DBInstance.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of vswitch for DBInstance.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The ID of zone for DBInstance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:servicecatalog/portfolio:Portfolio":{"description":"Provides a Service Catalog Portfolio resource.\n\nFor information about Service Catalog Portfolio and how to use it, see [What is Portfolio](https://www.alibabacloud.com/help/en/service-catalog/developer-reference/api-servicecatalog-2021-09-01-createportfolio).\n\n\u003e **NOTE:** Available since v1.204.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = new alicloud.servicecatalog.Portfolio(\"default\", {\n    portfolioName: name,\n    providerName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.servicecatalog.Portfolio(\"default\",\n    portfolio_name=name,\n    provider_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = new AliCloud.ServiceCatalog.Portfolio(\"default\", new()\n    {\n        PortfolioName = name,\n        ProviderName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/servicecatalog\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := servicecatalog.NewPortfolio(ctx, \"default\", \u0026servicecatalog.PortfolioArgs{\n\t\t\tPortfolioName: pulumi.String(name),\n\t\t\tProviderName:  pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.servicecatalog.Portfolio;\nimport com.pulumi.alicloud.servicecatalog.PortfolioArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var default_ = new Portfolio(\"default\", PortfolioArgs.builder()\n            .portfolioName(name)\n            .providerName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  default:\n    type: alicloud:servicecatalog:Portfolio\n    properties:\n      portfolioName: ${name}\n      providerName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nService Catalog Portfolio can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:servicecatalog/portfolio:Portfolio example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the portfolio\n"},"description":{"type":"string","description":"The description of the portfolio\n"},"portfolioArn":{"type":"string","description":"The ARN of the portfolio\n"},"portfolioName":{"type":"string","description":"The name of the portfolio\n"},"providerName":{"type":"string","description":"The provider name of the portfolio\n"}},"required":["createTime","portfolioArn","portfolioName","providerName"],"inputProperties":{"description":{"type":"string","description":"The description of the portfolio\n"},"portfolioName":{"type":"string","description":"The name of the portfolio\n"},"providerName":{"type":"string","description":"The provider name of the portfolio\n"}},"requiredInputs":["portfolioName","providerName"],"stateInputs":{"description":"Input properties used for looking up and filtering Portfolio resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the portfolio\n"},"description":{"type":"string","description":"The description of the portfolio\n"},"portfolioArn":{"type":"string","description":"The ARN of the portfolio\n"},"portfolioName":{"type":"string","description":"The name of the portfolio\n"},"providerName":{"type":"string","description":"The provider name of the portfolio\n"}},"type":"object"}},"alicloud:servicecatalog/principalPortfolioAssociation:PrincipalPortfolioAssociation":{"description":"Provides a Service Catalog Principal Portfolio Association resource.\n\nPrincipal portfolio association.\n\nFor information about Service Catalog Principal Portfolio Association and how to use it, see [What is Principal Portfolio Association](https://www.alibabacloud.com/help/en/service-catalog/developer-reference/api-servicecatalog-2021-09-01-associateprincipalwithportfolio).\n\n\u003e **NOTE:** Available since v1.230.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultDaXVxI = new alicloud.servicecatalog.Portfolio(\"defaultDaXVxI\", {\n    providerName: name,\n    description: \"desc\",\n    portfolioName: name,\n});\nconst default48JHf4 = new alicloud.ram.Role(\"default48JHf4\", {\n    name: name,\n    document: `    {\n        \\\\\"Statement\\\\\": [\n        {\n            \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n            \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n            \\\\\"Principal\\\\\": {\n            \\\\\"Service\\\\\": [\n                \\\\\"emr.aliyuncs.com\\\\\",\n                \\\\\"ecs.aliyuncs.com\\\\\"\n            ]\n            }\n        }\n        ],\n        \\\\\"Version\\\\\": \\\\\"1\\\\\"\n    }\n`,\n    description: \"this is a role test.\",\n    force: true,\n});\nconst _default = new alicloud.servicecatalog.PrincipalPortfolioAssociation(\"default\", {\n    principalId: default48JHf4.id,\n    portfolioId: defaultDaXVxI.id,\n    principalType: \"RamRole\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_da_x_vx_i = alicloud.servicecatalog.Portfolio(\"defaultDaXVxI\",\n    provider_name=name,\n    description=\"desc\",\n    portfolio_name=name)\ndefault48_j_hf4 = alicloud.ram.Role(\"default48JHf4\",\n    name=name,\n    document=\"\"\"    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n\"\"\",\n    description=\"this is a role test.\",\n    force=True)\ndefault = alicloud.servicecatalog.PrincipalPortfolioAssociation(\"default\",\n    principal_id=default48_j_hf4.id,\n    portfolio_id=default_da_x_vx_i.id,\n    principal_type=\"RamRole\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultDaXVxI = new AliCloud.ServiceCatalog.Portfolio(\"defaultDaXVxI\", new()\n    {\n        ProviderName = name,\n        Description = \"desc\",\n        PortfolioName = name,\n    });\n\n    var default48JHf4 = new AliCloud.Ram.Role(\"default48JHf4\", new()\n    {\n        Name = name,\n        Document = @\"    {\n        \\\"\"Statement\\\"\": [\n        {\n            \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n            \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n            \\\"\"Principal\\\"\": {\n            \\\"\"Service\\\"\": [\n                \\\"\"emr.aliyuncs.com\\\"\",\n                \\\"\"ecs.aliyuncs.com\\\"\"\n            ]\n            }\n        }\n        ],\n        \\\"\"Version\\\"\": \\\"\"1\\\"\"\n    }\n\",\n        Description = \"this is a role test.\",\n        Force = true,\n    });\n\n    var @default = new AliCloud.ServiceCatalog.PrincipalPortfolioAssociation(\"default\", new()\n    {\n        PrincipalId = default48JHf4.Id,\n        PortfolioId = defaultDaXVxI.Id,\n        PrincipalType = \"RamRole\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/servicecatalog\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultDaXVxI, err := servicecatalog.NewPortfolio(ctx, \"defaultDaXVxI\", \u0026servicecatalog.PortfolioArgs{\n\t\t\tProviderName:  pulumi.String(name),\n\t\t\tDescription:   pulumi.String(\"desc\"),\n\t\t\tPortfolioName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault48JHf4, err := ram.NewRole(ctx, \"default48JHf4\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.String(name),\n\t\t\tDocument: pulumi.String(`    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n`),\n\t\t\tDescription: pulumi.String(\"this is a role test.\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicecatalog.NewPrincipalPortfolioAssociation(ctx, \"default\", \u0026servicecatalog.PrincipalPortfolioAssociationArgs{\n\t\t\tPrincipalId:   default48JHf4.ID(),\n\t\t\tPortfolioId:   defaultDaXVxI.ID(),\n\t\t\tPrincipalType: pulumi.String(\"RamRole\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.servicecatalog.Portfolio;\nimport com.pulumi.alicloud.servicecatalog.PortfolioArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.servicecatalog.PrincipalPortfolioAssociation;\nimport com.pulumi.alicloud.servicecatalog.PrincipalPortfolioAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultDaXVxI = new Portfolio(\"defaultDaXVxI\", PortfolioArgs.builder()\n            .providerName(name)\n            .description(\"desc\")\n            .portfolioName(name)\n            .build());\n\n        var default48JHf4 = new Role(\"default48JHf4\", RoleArgs.builder()\n            .name(name)\n            .document(\"\"\"\n    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n            \"\"\")\n            .description(\"this is a role test.\")\n            .force(true)\n            .build());\n\n        var default_ = new PrincipalPortfolioAssociation(\"default\", PrincipalPortfolioAssociationArgs.builder()\n            .principalId(default48JHf4.id())\n            .portfolioId(defaultDaXVxI.id())\n            .principalType(\"RamRole\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultDaXVxI:\n    type: alicloud:servicecatalog:Portfolio\n    properties:\n      providerName: ${name}\n      description: desc\n      portfolioName: ${name}\n  default48JHf4:\n    type: alicloud:ram:Role\n    properties:\n      name: ${name}\n      document: |2\n            {\n                \\\"Statement\\\": [\n                {\n                    \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                    \\\"Effect\\\": \\\"Allow\\\",\n                    \\\"Principal\\\": {\n                    \\\"Service\\\": [\n                        \\\"emr.aliyuncs.com\\\",\n                        \\\"ecs.aliyuncs.com\\\"\n                    ]\n                    }\n                }\n                ],\n                \\\"Version\\\": \\\"1\\\"\n            }\n      description: this is a role test.\n      force: true\n  default:\n    type: alicloud:servicecatalog:PrincipalPortfolioAssociation\n    properties:\n      principalId: ${default48JHf4.id}\n      portfolioId: ${defaultDaXVxI.id}\n      principalType: RamRole\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nService Catalog Principal Portfolio Association can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:servicecatalog/principalPortfolioAssociation:PrincipalPortfolioAssociation example \u003cprincipal_id\u003e:\u003cprincipal_type\u003e:\u003cportfolio_id\u003e\n```\n\n","properties":{"portfolioId":{"type":"string","description":"Product Portfolio ID\n"},"principalId":{"type":"string","description":"RAM entity ID\n"},"principalType":{"type":"string","description":"RAM entity type\n"}},"required":["portfolioId","principalId","principalType"],"inputProperties":{"portfolioId":{"type":"string","description":"Product Portfolio ID\n","willReplaceOnChanges":true},"principalId":{"type":"string","description":"RAM entity ID\n","willReplaceOnChanges":true},"principalType":{"type":"string","description":"RAM entity type\n","willReplaceOnChanges":true}},"requiredInputs":["portfolioId","principalId","principalType"],"stateInputs":{"description":"Input properties used for looking up and filtering PrincipalPortfolioAssociation resources.\n","properties":{"portfolioId":{"type":"string","description":"Product Portfolio ID\n","willReplaceOnChanges":true},"principalId":{"type":"string","description":"RAM entity ID\n","willReplaceOnChanges":true},"principalType":{"type":"string","description":"RAM entity type\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:servicecatalog/product:Product":{"description":"Provides a Service Catalog Product resource.\n\nService catalog product, IaC template encapsulation concept.\n\nFor information about Service Catalog Product and how to use it, see [What is Product](https://www.alibabacloud.com/help/en/service-catalog/developer-reference/api-servicecatalog-2021-09-01-createproduct).\n\n\u003e **NOTE:** Available since v1.230.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.servicecatalog.Product(\"default\", {\n    providerName: name,\n    description: \"desc\",\n    productName: name,\n    productType: \"Ros\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.servicecatalog.Product(\"default\",\n    provider_name=name,\n    description=\"desc\",\n    product_name=name,\n    product_type=\"Ros\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ServiceCatalog.Product(\"default\", new()\n    {\n        ProviderName = name,\n        Description = \"desc\",\n        ProductName = name,\n        ProductType = \"Ros\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/servicecatalog\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := servicecatalog.NewProduct(ctx, \"default\", \u0026servicecatalog.ProductArgs{\n\t\t\tProviderName: pulumi.String(name),\n\t\t\tDescription:  pulumi.String(\"desc\"),\n\t\t\tProductName:  pulumi.String(name),\n\t\t\tProductType:  pulumi.String(\"Ros\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.servicecatalog.Product;\nimport com.pulumi.alicloud.servicecatalog.ProductArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Product(\"default\", ProductArgs.builder()\n            .providerName(name)\n            .description(\"desc\")\n            .productName(name)\n            .productType(\"Ros\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:servicecatalog:Product\n    properties:\n      providerName: ${name}\n      description: desc\n      productName: ${name}\n      productType: Ros\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nService Catalog Product can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:servicecatalog/product:Product example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the product\n"},"description":{"type":"string","description":"The description of the product\n"},"productName":{"type":"string","description":"The name of the product\n"},"productType":{"type":"string","description":"The type of the product\n"},"providerName":{"type":"string","description":"The provider name of the product\n"}},"required":["createTime","productName","productType","providerName"],"inputProperties":{"description":{"type":"string","description":"The description of the product\n"},"productName":{"type":"string","description":"The name of the product\n"},"productType":{"type":"string","description":"The type of the product\n","willReplaceOnChanges":true},"providerName":{"type":"string","description":"The provider name of the product\n"}},"requiredInputs":["productName","productType","providerName"],"stateInputs":{"description":"Input properties used for looking up and filtering Product resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the product\n"},"description":{"type":"string","description":"The description of the product\n"},"productName":{"type":"string","description":"The name of the product\n"},"productType":{"type":"string","description":"The type of the product\n","willReplaceOnChanges":true},"providerName":{"type":"string","description":"The provider name of the product\n"}},"type":"object"}},"alicloud:servicecatalog/productPortfolioAssociation:ProductPortfolioAssociation":{"description":"Provides a Service Catalog Product Portfolio Association resource.\n\nProduct portfolio association.\n\nFor information about Service Catalog Product Portfolio Association and how to use it, see [What is Product Portfolio Association](https://www.alibabacloud.com/help/en/service-catalog/developer-reference/api-servicecatalog-2021-09-01-associateproductwithportfolio).\n\n\u003e **NOTE:** Available since v1.230.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst default0yAgJ8 = new alicloud.servicecatalog.Portfolio(\"default0yAgJ8\", {\n    providerName: name,\n    description: \"desc\",\n    portfolioName: name,\n});\nconst defaultRetBJw = new alicloud.servicecatalog.Product(\"defaultRetBJw\", {\n    providerName: name,\n    productName: std.format({\n        input: \"%s1\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    productType: \"Ros\",\n});\nconst _default = new alicloud.servicecatalog.ProductPortfolioAssociation(\"default\", {\n    portfolioId: default0yAgJ8.id,\n    productId: defaultRetBJw.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault0y_ag_j8 = alicloud.servicecatalog.Portfolio(\"default0yAgJ8\",\n    provider_name=name,\n    description=\"desc\",\n    portfolio_name=name)\ndefault_ret_b_jw = alicloud.servicecatalog.Product(\"defaultRetBJw\",\n    provider_name=name,\n    product_name=std.format(input=\"%s1\",\n        args=[name]).result,\n    product_type=\"Ros\")\ndefault = alicloud.servicecatalog.ProductPortfolioAssociation(\"default\",\n    portfolio_id=default0y_ag_j8.id,\n    product_id=default_ret_b_jw.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var default0yAgJ8 = new AliCloud.ServiceCatalog.Portfolio(\"default0yAgJ8\", new()\n    {\n        ProviderName = name,\n        Description = \"desc\",\n        PortfolioName = name,\n    });\n\n    var defaultRetBJw = new AliCloud.ServiceCatalog.Product(\"defaultRetBJw\", new()\n    {\n        ProviderName = name,\n        ProductName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        ProductType = \"Ros\",\n    });\n\n    var @default = new AliCloud.ServiceCatalog.ProductPortfolioAssociation(\"default\", new()\n    {\n        PortfolioId = default0yAgJ8.Id,\n        ProductId = defaultRetBJw.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/servicecatalog\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefault0yAgJ8, err := servicecatalog.NewPortfolio(ctx, \"default0yAgJ8\", \u0026servicecatalog.PortfolioArgs{\n\t\t\tProviderName:  pulumi.String(name),\n\t\t\tDescription:   pulumi.String(\"desc\"),\n\t\t\tPortfolioName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRetBJw, err := servicecatalog.NewProduct(ctx, \"defaultRetBJw\", \u0026servicecatalog.ProductArgs{\n\t\t\tProviderName: pulumi.String(name),\n\t\t\tProductName:  pulumi.String(invokeFormat.Result),\n\t\t\tProductType:  pulumi.String(\"Ros\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicecatalog.NewProductPortfolioAssociation(ctx, \"default\", \u0026servicecatalog.ProductPortfolioAssociationArgs{\n\t\t\tPortfolioId: default0yAgJ8.ID(),\n\t\t\tProductId:   defaultRetBJw.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.servicecatalog.Portfolio;\nimport com.pulumi.alicloud.servicecatalog.PortfolioArgs;\nimport com.pulumi.alicloud.servicecatalog.Product;\nimport com.pulumi.alicloud.servicecatalog.ProductArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.servicecatalog.ProductPortfolioAssociation;\nimport com.pulumi.alicloud.servicecatalog.ProductPortfolioAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default0yAgJ8 = new Portfolio(\"default0yAgJ8\", PortfolioArgs.builder()\n            .providerName(name)\n            .description(\"desc\")\n            .portfolioName(name)\n            .build());\n\n        var defaultRetBJw = new Product(\"defaultRetBJw\", ProductArgs.builder()\n            .providerName(name)\n            .productName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1\")\n                .args(name)\n                .build()).result())\n            .productType(\"Ros\")\n            .build());\n\n        var default_ = new ProductPortfolioAssociation(\"default\", ProductPortfolioAssociationArgs.builder()\n            .portfolioId(default0yAgJ8.id())\n            .productId(defaultRetBJw.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default0yAgJ8:\n    type: alicloud:servicecatalog:Portfolio\n    properties:\n      providerName: ${name}\n      description: desc\n      portfolioName: ${name}\n  defaultRetBJw:\n    type: alicloud:servicecatalog:Product\n    properties:\n      providerName: ${name}\n      productName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1'\n            args:\n              - ${name}\n          return: result\n      productType: Ros\n  default:\n    type: alicloud:servicecatalog:ProductPortfolioAssociation\n    properties:\n      portfolioId: ${default0yAgJ8.id}\n      productId: ${defaultRetBJw.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nService Catalog Product Portfolio Association can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:servicecatalog/productPortfolioAssociation:ProductPortfolioAssociation example \u003cproduct_id\u003e:\u003cportfolio_id\u003e\n```\n\n","properties":{"portfolioId":{"type":"string","description":"Product Portfolio ID\n"},"productId":{"type":"string","description":"Product ID\n"}},"required":["portfolioId","productId"],"inputProperties":{"portfolioId":{"type":"string","description":"Product Portfolio ID\n","willReplaceOnChanges":true},"productId":{"type":"string","description":"Product ID\n","willReplaceOnChanges":true}},"requiredInputs":["portfolioId","productId"],"stateInputs":{"description":"Input properties used for looking up and filtering ProductPortfolioAssociation resources.\n","properties":{"portfolioId":{"type":"string","description":"Product Portfolio ID\n","willReplaceOnChanges":true},"productId":{"type":"string","description":"Product ID\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:servicecatalog/productVersion:ProductVersion":{"description":"Provides a Service Catalog Product Version resource.\n\nThere can be one or more versions of the product.\n\nFor information about Service Catalog Product Version and how to use it, see [What is Product Version](https://www.alibabacloud.com/help/en/service-catalog/developer-reference/api-servicecatalog-2021-09-01-createproductversion).\n\n\u003e **NOTE:** Available since v1.230.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultmaeTcE = new alicloud.servicecatalog.Product(\"defaultmaeTcE\", {\n    providerName: name,\n    productName: name,\n    productType: \"Ros\",\n});\nconst _default = new alicloud.servicecatalog.ProductVersion(\"default\", {\n    guidance: \"Default\",\n    templateUrl: \"oss://servicecatalog-cn-hangzhou/1466115886172051/terraform/template/tpl-bp1x4v3r44u7u7/template.json\",\n    active: true,\n    description: \"产品版本测试\",\n    productVersionName: name,\n    productId: defaultmaeTcE.id,\n    templateType: \"RosTerraformTemplate\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaultmae_tc_e = alicloud.servicecatalog.Product(\"defaultmaeTcE\",\n    provider_name=name,\n    product_name=name,\n    product_type=\"Ros\")\ndefault = alicloud.servicecatalog.ProductVersion(\"default\",\n    guidance=\"Default\",\n    template_url=\"oss://servicecatalog-cn-hangzhou/1466115886172051/terraform/template/tpl-bp1x4v3r44u7u7/template.json\",\n    active=True,\n    description=\"产品版本测试\",\n    product_version_name=name,\n    product_id=defaultmae_tc_e.id,\n    template_type=\"RosTerraformTemplate\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultmaeTcE = new AliCloud.ServiceCatalog.Product(\"defaultmaeTcE\", new()\n    {\n        ProviderName = name,\n        ProductName = name,\n        ProductType = \"Ros\",\n    });\n\n    var @default = new AliCloud.ServiceCatalog.ProductVersion(\"default\", new()\n    {\n        Guidance = \"Default\",\n        TemplateUrl = \"oss://servicecatalog-cn-hangzhou/1466115886172051/terraform/template/tpl-bp1x4v3r44u7u7/template.json\",\n        Active = true,\n        Description = \"产品版本测试\",\n        ProductVersionName = name,\n        ProductId = defaultmaeTcE.Id,\n        TemplateType = \"RosTerraformTemplate\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/servicecatalog\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultmaeTcE, err := servicecatalog.NewProduct(ctx, \"defaultmaeTcE\", \u0026servicecatalog.ProductArgs{\n\t\t\tProviderName: pulumi.String(name),\n\t\t\tProductName:  pulumi.String(name),\n\t\t\tProductType:  pulumi.String(\"Ros\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicecatalog.NewProductVersion(ctx, \"default\", \u0026servicecatalog.ProductVersionArgs{\n\t\t\tGuidance:           pulumi.String(\"Default\"),\n\t\t\tTemplateUrl:        pulumi.String(\"oss://servicecatalog-cn-hangzhou/1466115886172051/terraform/template/tpl-bp1x4v3r44u7u7/template.json\"),\n\t\t\tActive:             pulumi.Bool(true),\n\t\t\tDescription:        pulumi.String(\"产品版本测试\"),\n\t\t\tProductVersionName: pulumi.String(name),\n\t\t\tProductId:          defaultmaeTcE.ID(),\n\t\t\tTemplateType:       pulumi.String(\"RosTerraformTemplate\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.servicecatalog.Product;\nimport com.pulumi.alicloud.servicecatalog.ProductArgs;\nimport com.pulumi.alicloud.servicecatalog.ProductVersion;\nimport com.pulumi.alicloud.servicecatalog.ProductVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultmaeTcE = new Product(\"defaultmaeTcE\", ProductArgs.builder()\n            .providerName(name)\n            .productName(name)\n            .productType(\"Ros\")\n            .build());\n\n        var default_ = new ProductVersion(\"default\", ProductVersionArgs.builder()\n            .guidance(\"Default\")\n            .templateUrl(\"oss://servicecatalog-cn-hangzhou/1466115886172051/terraform/template/tpl-bp1x4v3r44u7u7/template.json\")\n            .active(true)\n            .description(\"产品版本测试\")\n            .productVersionName(name)\n            .productId(defaultmaeTcE.id())\n            .templateType(\"RosTerraformTemplate\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultmaeTcE:\n    type: alicloud:servicecatalog:Product\n    properties:\n      providerName: ${name}\n      productName: ${name}\n      productType: Ros\n  default:\n    type: alicloud:servicecatalog:ProductVersion\n    properties:\n      guidance: Default\n      templateUrl: oss://servicecatalog-cn-hangzhou/1466115886172051/terraform/template/tpl-bp1x4v3r44u7u7/template.json\n      active: true\n      description: 产品版本测试\n      productVersionName: ${name}\n      productId: ${defaultmaeTcE.id}\n      templateType: RosTerraformTemplate\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nService Catalog Product Version can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:servicecatalog/productVersion:ProductVersion example \u003cid\u003e\n```\n\n","properties":{"active":{"type":"boolean","description":"Whether the version is activated\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Version description\n"},"guidance":{"type":"string","description":"Administrator guidance\n"},"productId":{"type":"string","description":"Product ID\n"},"productVersionName":{"type":"string","description":"The name of the resource\n"},"templateType":{"type":"string","description":"Template Type\n"},"templateUrl":{"type":"string","description":"Template URL\n"}},"required":["createTime","productId","productVersionName","templateType","templateUrl"],"inputProperties":{"active":{"type":"boolean","description":"Whether the version is activated\n"},"description":{"type":"string","description":"Version description\n"},"guidance":{"type":"string","description":"Administrator guidance\n"},"productId":{"type":"string","description":"Product ID\n","willReplaceOnChanges":true},"productVersionName":{"type":"string","description":"The name of the resource\n"},"templateType":{"type":"string","description":"Template Type\n","willReplaceOnChanges":true},"templateUrl":{"type":"string","description":"Template URL\n","willReplaceOnChanges":true}},"requiredInputs":["productId","productVersionName","templateType","templateUrl"],"stateInputs":{"description":"Input properties used for looking up and filtering ProductVersion resources.\n","properties":{"active":{"type":"boolean","description":"Whether the version is activated\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Version description\n"},"guidance":{"type":"string","description":"Administrator guidance\n"},"productId":{"type":"string","description":"Product ID\n","willReplaceOnChanges":true},"productVersionName":{"type":"string","description":"The name of the resource\n"},"templateType":{"type":"string","description":"Template Type\n","willReplaceOnChanges":true},"templateUrl":{"type":"string","description":"Template URL\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:servicecatalog/provisionedProduct:ProvisionedProduct":{"description":"Provides a Service Catalog Provisioned Product resource.\n\nFor information about Service Catalog Provisioned Product and how to use it, see [What is Provisioned Product](https://www.alibabacloud.com/help/en/service-catalog/developer-reference/api-servicecatalog-2021-09-01-launchproduct).\n\n\u003e **NOTE:** Available since v1.196.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-testAccServiceCatalogProvisionedProduct\";\nconst _default = new alicloud.servicecatalog.ProvisionedProduct(\"default\", {\n    provisionedProductName: name,\n    stackRegionId: \"cn-hangzhou\",\n    productVersionId: \"pv-bp1d7dxy2pcc1g\",\n    productId: \"prod-bp1u3dkc282cwd\",\n    portfolioId: \"port-bp119dvn27jccw\",\n    tags: {\n        v1: \"tf-test\",\n    },\n    parameters: [{\n        parameterKey: \"role_name\",\n        parameterValue: name,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-testAccServiceCatalogProvisionedProduct\"\ndefault = alicloud.servicecatalog.ProvisionedProduct(\"default\",\n    provisioned_product_name=name,\n    stack_region_id=\"cn-hangzhou\",\n    product_version_id=\"pv-bp1d7dxy2pcc1g\",\n    product_id=\"prod-bp1u3dkc282cwd\",\n    portfolio_id=\"port-bp119dvn27jccw\",\n    tags={\n        \"v1\": \"tf-test\",\n    },\n    parameters=[{\n        \"parameter_key\": \"role_name\",\n        \"parameter_value\": name,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-testAccServiceCatalogProvisionedProduct\";\n    var @default = new AliCloud.ServiceCatalog.ProvisionedProduct(\"default\", new()\n    {\n        ProvisionedProductName = name,\n        StackRegionId = \"cn-hangzhou\",\n        ProductVersionId = \"pv-bp1d7dxy2pcc1g\",\n        ProductId = \"prod-bp1u3dkc282cwd\",\n        PortfolioId = \"port-bp119dvn27jccw\",\n        Tags = \n        {\n            { \"v1\", \"tf-test\" },\n        },\n        Parameters = new[]\n        {\n            new AliCloud.ServiceCatalog.Inputs.ProvisionedProductParameterArgs\n            {\n                ParameterKey = \"role_name\",\n                ParameterValue = name,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/servicecatalog\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-testAccServiceCatalogProvisionedProduct\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := servicecatalog.NewProvisionedProduct(ctx, \"default\", \u0026servicecatalog.ProvisionedProductArgs{\n\t\t\tProvisionedProductName: pulumi.String(name),\n\t\t\tStackRegionId:          pulumi.String(\"cn-hangzhou\"),\n\t\t\tProductVersionId:       pulumi.String(\"pv-bp1d7dxy2pcc1g\"),\n\t\t\tProductId:              pulumi.String(\"prod-bp1u3dkc282cwd\"),\n\t\t\tPortfolioId:            pulumi.String(\"port-bp119dvn27jccw\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"v1\": pulumi.String(\"tf-test\"),\n\t\t\t},\n\t\t\tParameters: servicecatalog.ProvisionedProductParameterArray{\n\t\t\t\t\u0026servicecatalog.ProvisionedProductParameterArgs{\n\t\t\t\t\tParameterKey:   pulumi.String(\"role_name\"),\n\t\t\t\t\tParameterValue: pulumi.String(name),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.servicecatalog.ProvisionedProduct;\nimport com.pulumi.alicloud.servicecatalog.ProvisionedProductArgs;\nimport com.pulumi.alicloud.servicecatalog.inputs.ProvisionedProductParameterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-testAccServiceCatalogProvisionedProduct\");\n        var default_ = new ProvisionedProduct(\"default\", ProvisionedProductArgs.builder()\n            .provisionedProductName(name)\n            .stackRegionId(\"cn-hangzhou\")\n            .productVersionId(\"pv-bp1d7dxy2pcc1g\")\n            .productId(\"prod-bp1u3dkc282cwd\")\n            .portfolioId(\"port-bp119dvn27jccw\")\n            .tags(Map.of(\"v1\", \"tf-test\"))\n            .parameters(ProvisionedProductParameterArgs.builder()\n                .parameterKey(\"role_name\")\n                .parameterValue(name)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-testAccServiceCatalogProvisionedProduct\nresources:\n  default:\n    type: alicloud:servicecatalog:ProvisionedProduct\n    properties:\n      provisionedProductName: ${name}\n      stackRegionId: cn-hangzhou\n      productVersionId: pv-bp1d7dxy2pcc1g\n      productId: prod-bp1u3dkc282cwd\n      portfolioId: port-bp119dvn27jccw\n      tags:\n        v1: tf-test\n      parameters:\n        - parameterKey: role_name\n          parameterValue: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nService Catalog Provisioned Product can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_service_catalog_provisioned_product.example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the product instance\n"},"lastProvisioningTaskId":{"type":"string","description":"The ID of the last instance operation task\n"},"lastSuccessfulProvisioningTaskId":{"type":"string","description":"The ID of the last successful instance operation task\n"},"lastTaskId":{"type":"string","description":"The ID of the last task\n"},"outputs":{"type":"array","items":{"$ref":"#/types/alicloud:servicecatalog/ProvisionedProductOutput:ProvisionedProductOutput"},"description":"The output value of the template.\n"},"ownerPrincipalId":{"type":"string","description":"The RAM entity ID of the owner\n"},"ownerPrincipalType":{"type":"string","description":"The RAM entity type of the owner\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:servicecatalog/ProvisionedProductParameter:ProvisionedProductParameter"},"description":"Template parameters entered by the user.The maximum value of N is 200.See the following `Block Parameters`.\n"},"portfolioId":{"type":"string","description":"Product mix ID.\u003e When there is a default Startup option, there is no need to fill in the portfolio. When there is no default Startup option, you must fill in the portfolio.\n"},"productId":{"type":"string","description":"Product ID.\n"},"productName":{"type":"string","description":"The name of the product\n"},"productVersionId":{"type":"string","description":"Product version ID.\n"},"productVersionName":{"type":"string","description":"The name of the product version\n"},"provisionedProductArn":{"type":"string","description":"The ARN of the product instance\n"},"provisionedProductId":{"type":"string","description":"The ID of the instance.\n"},"provisionedProductName":{"type":"string","description":"The name of the instance.The length is 1~128 characters.\n"},"provisionedProductType":{"type":"string","description":"Instance type.The value is RosStack, which indicates the stack of Alibaba Cloud resource orchestration service (ROS).\n"},"stackId":{"type":"string","description":"The ID of the ROS stack\n"},"stackRegionId":{"type":"string","description":"The ID of the region to which the resource stack of the Alibaba Cloud resource orchestration service (ROS) belongs.\n"},"status":{"type":"string","description":"Instance status\n"},"statusMessage":{"type":"string","description":"The status message of the product instance\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["createTime","lastProvisioningTaskId","lastSuccessfulProvisioningTaskId","lastTaskId","outputs","ownerPrincipalId","ownerPrincipalType","productId","productName","productVersionId","productVersionName","provisionedProductArn","provisionedProductId","provisionedProductName","provisionedProductType","stackId","stackRegionId","status","statusMessage"],"inputProperties":{"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:servicecatalog/ProvisionedProductParameter:ProvisionedProductParameter"},"description":"Template parameters entered by the user.The maximum value of N is 200.See the following `Block Parameters`.\n"},"portfolioId":{"type":"string","description":"Product mix ID.\u003e When there is a default Startup option, there is no need to fill in the portfolio. When there is no default Startup option, you must fill in the portfolio.\n"},"productId":{"type":"string","description":"Product ID.\n"},"productVersionId":{"type":"string","description":"Product version ID.\n"},"provisionedProductId":{"type":"string","description":"The ID of the instance.\n"},"provisionedProductName":{"type":"string","description":"The name of the instance.The length is 1~128 characters.\n","willReplaceOnChanges":true},"stackRegionId":{"type":"string","description":"The ID of the region to which the resource stack of the Alibaba Cloud resource orchestration service (ROS) belongs.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"requiredInputs":["productId","productVersionId","provisionedProductName","stackRegionId"],"stateInputs":{"description":"Input properties used for looking up and filtering ProvisionedProduct resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the product instance\n"},"lastProvisioningTaskId":{"type":"string","description":"The ID of the last instance operation task\n"},"lastSuccessfulProvisioningTaskId":{"type":"string","description":"The ID of the last successful instance operation task\n"},"lastTaskId":{"type":"string","description":"The ID of the last task\n"},"outputs":{"type":"array","items":{"$ref":"#/types/alicloud:servicecatalog/ProvisionedProductOutput:ProvisionedProductOutput"},"description":"The output value of the template.\n"},"ownerPrincipalId":{"type":"string","description":"The RAM entity ID of the owner\n"},"ownerPrincipalType":{"type":"string","description":"The RAM entity type of the owner\n"},"parameters":{"type":"array","items":{"$ref":"#/types/alicloud:servicecatalog/ProvisionedProductParameter:ProvisionedProductParameter"},"description":"Template parameters entered by the user.The maximum value of N is 200.See the following `Block Parameters`.\n"},"portfolioId":{"type":"string","description":"Product mix ID.\u003e When there is a default Startup option, there is no need to fill in the portfolio. When there is no default Startup option, you must fill in the portfolio.\n"},"productId":{"type":"string","description":"Product ID.\n"},"productName":{"type":"string","description":"The name of the product\n"},"productVersionId":{"type":"string","description":"Product version ID.\n"},"productVersionName":{"type":"string","description":"The name of the product version\n"},"provisionedProductArn":{"type":"string","description":"The ARN of the product instance\n"},"provisionedProductId":{"type":"string","description":"The ID of the instance.\n"},"provisionedProductName":{"type":"string","description":"The name of the instance.The length is 1~128 characters.\n","willReplaceOnChanges":true},"provisionedProductType":{"type":"string","description":"Instance type.The value is RosStack, which indicates the stack of Alibaba Cloud resource orchestration service (ROS).\n"},"stackId":{"type":"string","description":"The ID of the ROS stack\n"},"stackRegionId":{"type":"string","description":"The ID of the region to which the resource stack of the Alibaba Cloud resource orchestration service (ROS) belongs.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Instance status\n"},"statusMessage":{"type":"string","description":"The status message of the product instance\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:servicemesh/extensionProvider:ExtensionProvider":{"description":"Provides a Service Mesh Extension Provider resource.\n\nFor information about Service Mesh Extension Provider and how to use it, see [What is Extension Provider](https://help.aliyun.com/document_detail/461549.html).\n\n\u003e **NOTE:** Available since v1.191.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"default-NODELETING\",\n});\nconst defaultNetwork: alicloud.vpc.Network[] = [];\ndefaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultNetwork.push(new alicloud.vpc.Network(`default-${range.value}`, {}));\n    }\n});\nconst defaultGetSwitches = pulumi.all([defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids).length, defaultGetNetworks, defaultNetwork[0].id]).apply(([length, defaultGetNetworks, id]) =\u003e length \u003e 0 ? defaultGetNetworks.ids?.[0] : id).apply(value =\u003e alicloud.vpc.getSwitchesOutput({\n    vpcId: value,\n}));\nconst defaultSwitch: alicloud.vpc.Switch[] = [];\ndefaultGetSwitches.apply(defaultGetSwitches =\u003e defaultGetSwitches.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultSwitch.push(new alicloud.vpc.Switch(`default-${range.value}`, {\n            vpcId: pulumi.all([defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids).length, defaultGetNetworks, defaultNetwork[0].id]).apply(([length, defaultGetNetworks, id]) =\u003e length \u003e 0 ? defaultGetNetworks.ids?.[0] : id),\n            cidrBlock: defaultGetNetworks.then(defaultGetNetworks =\u003e std.cidrsubnet({\n                input: defaultGetNetworks.vpcs?.[0]?.cidrBlock,\n                newbits: 8,\n                netnum: 2,\n            })).then(invoke =\u003e invoke.result),\n            zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n        }));\n    }\n});\nconst defaultServiceMesh = new alicloud.servicemesh.ServiceMesh(\"default\", {\n    serviceMeshName: \"mesh-c50f3fef117ad45b6b26047cdafef65ad\",\n    version: \"v1.21.6.103-g5ddeaef7-aliyun\",\n    edition: \"Default\",\n    network: {\n        vpcId: pulumi.all([defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids).length, defaultGetNetworks, defaultNetwork[0].id]).apply(([length, defaultGetNetworks, id]) =\u003e length \u003e 0 ? defaultGetNetworks.ids?.[0] : id),\n        vswitcheLists: [pulumi.all([defaultGetSwitches.apply(defaultGetSwitches =\u003e defaultGetSwitches.ids).length, defaultGetSwitches, defaultSwitch[0].id]).apply(([length, defaultGetSwitches, id]) =\u003e length \u003e 0 ? defaultGetSwitches.ids?.[0] : id)],\n    },\n});\nconst defaultExtensionProvider = new alicloud.servicemesh.ExtensionProvider(\"default\", {\n    serviceMeshId: defaultServiceMesh.id,\n    extensionProviderName: \"httpextauth-tf-example\",\n    type: \"httpextauth\",\n    config: \"{\\\"headersToDownstreamOnDeny\\\":[\\\"content-type\\\",\\\"set-cookie\\\"],\\\"headersToUpstreamOnAllow\\\":[\\\"authorization\\\",\\\"cookie\\\",\\\"path\\\",\\\"x-auth-request-access-token\\\",\\\"x-forwarded-access-token\\\"],\\\"includeRequestHeadersInCheck\\\":[\\\"cookie\\\",\\\"x-forward-access-token\\\"],\\\"oidc\\\":{\\\"clientID\\\":\\\"qweqweqwewqeqwe\\\",\\\"clientSecret\\\":\\\"asdasdasdasdsadas\\\",\\\"cookieExpire\\\":\\\"1000\\\",\\\"cookieRefresh\\\":\\\"500\\\",\\\"cookieSecret\\\":\\\"scxzcxzcxzcxzcxz\\\",\\\"issuerURI\\\":\\\"qweqwewqeqweqweqwe\\\",\\\"redirectDomain\\\":\\\"www.alicloud-provider.cn\\\",\\\"redirectProtocol\\\":\\\"http\\\",\\\"scopes\\\":[\\\"profile\\\"]},\\\"port\\\":4180,\\\"service\\\":\\\"oauth2proxy-httpextauth-tf-example.istio-system.svc.cluster.local\\\",\\\"timeout\\\":\\\"10s\\\"}\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"default-NODELETING\")\ndefault_network = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_network.append(alicloud.vpc.Network(f\"default-{range['value']}\"))\n\nlen(default_get_networks.ids).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\ndefault_get_switches = pulumi.Output.all(\n    length=len(default_get_networks.ids),\n    id=default_network[0].id\n).apply(lambda resolved_outputs: default_get_networks.ids[0] if resolved_outputs['length'] \u003e 0 else resolved_outputs['id'])\n.apply(lambda value: alicloud.vpc.get_switches_output(vpc_id=value))\ndefault_switch = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_switch.append(alicloud.vpc.Switch(f\"default-{range['value']}\",\n            vpc_id=pulumi.Output.all(\n                length=len(default_get_networks.ids),\n                id=default_network[0].id\n).apply(lambda resolved_outputs: default_get_networks.ids[0] if resolved_outputs['length'].apply(lambda __convert: __convert \u003e 0) else resolved_outputs['id'])\n,\n            cidr_block=std.cidrsubnet(input=default_get_networks.vpcs[0].cidr_block,\n                newbits=8,\n                netnum=2).result,\n            zone_id=default.zones[0].id))\n\nlen(default_get_switches.ids).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\ndefault_service_mesh = alicloud.servicemesh.ServiceMesh(\"default\",\n    service_mesh_name=\"mesh-c50f3fef117ad45b6b26047cdafef65ad\",\n    version=\"v1.21.6.103-g5ddeaef7-aliyun\",\n    edition=\"Default\",\n    network={\n        \"vpc_id\": pulumi.Output.all(\n            length=len(default_get_networks.ids),\n            id=default_network[0].id\n).apply(lambda resolved_outputs: default_get_networks.ids[0] if resolved_outputs['length'] \u003e 0 else resolved_outputs['id'])\n,\n        \"vswitche_lists\": [pulumi.Output.all(\n            length=len(default_get_switches.ids),\n            default_get_switches=default_get_switches,\n            id=default_switch[0].id\n).apply(lambda resolved_outputs: default_get_switches.ids[0] if resolved_outputs['length'] \u003e 0 else resolved_outputs['id'])\n],\n    })\ndefault_extension_provider = alicloud.servicemesh.ExtensionProvider(\"default\",\n    service_mesh_id=default_service_mesh.id,\n    extension_provider_name=\"httpextauth-tf-example\",\n    type=\"httpextauth\",\n    config=\"{\\\"headersToDownstreamOnDeny\\\":[\\\"content-type\\\",\\\"set-cookie\\\"],\\\"headersToUpstreamOnAllow\\\":[\\\"authorization\\\",\\\"cookie\\\",\\\"path\\\",\\\"x-auth-request-access-token\\\",\\\"x-forwarded-access-token\\\"],\\\"includeRequestHeadersInCheck\\\":[\\\"cookie\\\",\\\"x-forward-access-token\\\"],\\\"oidc\\\":{\\\"clientID\\\":\\\"qweqweqwewqeqwe\\\",\\\"clientSecret\\\":\\\"asdasdasdasdsadas\\\",\\\"cookieExpire\\\":\\\"1000\\\",\\\"cookieRefresh\\\":\\\"500\\\",\\\"cookieSecret\\\":\\\"scxzcxzcxzcxzcxz\\\",\\\"issuerURI\\\":\\\"qweqwewqeqweqweqwe\\\",\\\"redirectDomain\\\":\\\"www.alicloud-provider.cn\\\",\\\"redirectProtocol\\\":\\\"http\\\",\\\"scopes\\\":[\\\"profile\\\"]},\\\"port\\\":4180,\\\"service\\\":\\\"oauth2proxy-httpextauth-tf-example.istio-system.svc.cluster.local\\\",\\\"timeout\\\":\\\"10s\\\"}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"default-NODELETING\",\n    });\n\n    var defaultNetwork = new List\u003cAliCloud.Vpc.Network\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultNetwork.Add(new AliCloud.Vpc.Network($\"default-{range.Value}\", new()\n        {\n        }));\n    }\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids).Length \u003e 0 ? defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]) : defaultNetwork[0].Id,\n    });\n\n    var defaultSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSwitch.Add(new AliCloud.Vpc.Switch($\"default-{range.Value}\", new()\n        {\n            VpcId = Output.Tuple(defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids).Length, defaultGetNetworks, defaultNetwork[0].Id).Apply(values =\u003e\n            {\n                var length = values.Item1;\n                var defaultGetNetworks = values.Item2;\n                var id = values.Item3;\n                return length \u003e 0 ? defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]) : id;\n            }),\n            CidrBlock = Std.Cidrsubnet.Invoke(new()\n            {\n                Input = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Vpcs[0]?.CidrBlock),\n                Newbits = 8,\n                Netnum = 2,\n            }).Apply(invoke =\u003e invoke.Result),\n            ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        }));\n    }\n    var defaultServiceMesh = new AliCloud.ServiceMesh.ServiceMesh(\"default\", new()\n    {\n        ServiceMeshName = \"mesh-c50f3fef117ad45b6b26047cdafef65ad\",\n        Version = \"v1.21.6.103-g5ddeaef7-aliyun\",\n        Edition = \"Default\",\n        Network = new AliCloud.ServiceMesh.Inputs.ServiceMeshNetworkArgs\n        {\n            VpcId = Output.Tuple(defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids).Length, defaultGetNetworks, defaultNetwork[0].Id).Apply(values =\u003e\n            {\n                var length = values.Item1;\n                var defaultGetNetworks = values.Item2;\n                var id = values.Item3;\n                return length \u003e 0 ? defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]) : id;\n            }),\n            VswitcheLists = new[]\n            {\n                Output.Tuple(defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids).Length, defaultGetSwitches, defaultSwitch[0].Id).Apply(values =\u003e\n                {\n                    var length = values.Item1;\n                    var defaultGetSwitches = values.Item2;\n                    var id = values.Item3;\n                    return length \u003e 0 ? defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]) : id;\n                }),\n            },\n        },\n    });\n\n    var defaultExtensionProvider = new AliCloud.ServiceMesh.ExtensionProvider(\"default\", new()\n    {\n        ServiceMeshId = defaultServiceMesh.Id,\n        ExtensionProviderName = \"httpextauth-tf-example\",\n        Type = \"httpextauth\",\n        Config = \"{\\\"headersToDownstreamOnDeny\\\":[\\\"content-type\\\",\\\"set-cookie\\\"],\\\"headersToUpstreamOnAllow\\\":[\\\"authorization\\\",\\\"cookie\\\",\\\"path\\\",\\\"x-auth-request-access-token\\\",\\\"x-forwarded-access-token\\\"],\\\"includeRequestHeadersInCheck\\\":[\\\"cookie\\\",\\\"x-forward-access-token\\\"],\\\"oidc\\\":{\\\"clientID\\\":\\\"qweqweqwewqeqwe\\\",\\\"clientSecret\\\":\\\"asdasdasdasdsadas\\\",\\\"cookieExpire\\\":\\\"1000\\\",\\\"cookieRefresh\\\":\\\"500\\\",\\\"cookieSecret\\\":\\\"scxzcxzcxzcxzcxz\\\",\\\"issuerURI\\\":\\\"qweqwewqeqweqweqwe\\\",\\\"redirectDomain\\\":\\\"www.alicloud-provider.cn\\\",\\\"redirectProtocol\\\":\\\"http\\\",\\\"scopes\\\":[\\\"profile\\\"]},\\\"port\\\":4180,\\\"service\\\":\\\"oauth2proxy-httpextauth-tf-example.istio-system.svc.cluster.local\\\",\\\"timeout\\\":\\\"10s\\\"}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/servicemesh\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"tf_example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\nNameRegex: pulumi.StringRef(\"default-NODELETING\"),\n}, nil);\nif err != nil {\nreturn err\n}\nvar tmp0 float64\nif length \u003e 0 {\ntmp0 = 0\n} else {\ntmp0 = 1\n}\nvar defaultNetwork []*vpc.Network\nfor index := 0; index \u003c float64(len(defaultGetNetworks.Ids).ApplyT(func(length int) (float64, error) {\nreturn tmp0, nil\n}).(pulumi.Float64Output)); index++ {\n    key0 := index\n    _ := index\n__res, err := vpc.NewNetwork(ctx, fmt.Sprintf(\"default-%v\", key0), nil)\nif err != nil {\nreturn err\n}\ndefaultNetwork = append(defaultNetwork, __res)\n}\nvar tmp1 *string\nif length \u003e 0 {\ntmp1 = defaultGetNetworks.Ids[0]\n} else {\ntmp1 = id\n}\ndefaultGetSwitches := pulumi.All(len(defaultGetNetworks.Ids),defaultNetwork[0].ID()).ApplyT(func(_args []interface{}) (*string, error) {\nlength := _args[0].(int)\nid := _args[1].(string)\nreturn \u0026tmp1, nil\n}).(pulumi.StringPtrOutput).ApplyT(func(value *string) (vpc.GetSwitchesResult, error) {\nreturn vpc.GetSwitchesResult(interface{}(vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\nVpcId: pulumi.StringRef(pulumi.StringRef(value)),\n}, nil))), nil\n}).(vpc.GetSwitchesResultOutput)\nvar tmp2 *string\nif length \u003e 0 {\ntmp2 = defaultGetNetworks.Ids[0]\n} else {\ntmp2 = id\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: defaultGetNetworks.Vpcs[0].CidrBlock,\nNewbits: 8,\nNetnum: 2,\n}, nil)\nif err != nil {\nreturn err\n}\nvar tmp3 float64\nif length \u003e 0 {\ntmp3 = 0\n} else {\ntmp3 = 1\n}\nvar defaultSwitch []*vpc.Switch\nfor index := 0; index \u003c float64(len(defaultGetSwitches.ApplyT(func(defaultGetSwitches vpc.GetSwitchesResult) (interface{}, error) {\nreturn defaultGetSwitches.Ids, nil\n}).(pulumi.Interface{}Output)).ApplyT(func(length int) (float64, error) {\nreturn tmp3, nil\n}).(pulumi.Float64Output)); index++ {\n    key0 := index\n    _ := index\n__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026vpc.SwitchArgs{\nVpcId: pulumi.String(pulumi.All(len(defaultGetNetworks.Ids),defaultNetwork[0].ID()).ApplyT(func(_args []interface{}) (*string, error) {\nlength := _args[0].(int)\nid := _args[1].(string)\nreturn \u0026tmp2, nil\n}).(pulumi.StringPtrOutput)),\nCidrBlock: pulumi.String(invokeCidrsubnet.Result),\nZoneId: pulumi.String(_default.Zones[0].Id),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch = append(defaultSwitch, __res)\n}\nvar tmp4 *string\nif length \u003e 0 {\ntmp4 = defaultGetNetworks.Ids[0]\n} else {\ntmp4 = id\n}\nvar tmp5 *string\nif length \u003e 0 {\ntmp5 = defaultGetSwitches.Ids[0]\n} else {\ntmp5 = id\n}\ndefaultServiceMesh, err := servicemesh.NewServiceMesh(ctx, \"default\", \u0026servicemesh.ServiceMeshArgs{\nServiceMeshName: pulumi.String(\"mesh-c50f3fef117ad45b6b26047cdafef65ad\"),\nVersion: pulumi.String(\"v1.21.6.103-g5ddeaef7-aliyun\"),\nEdition: pulumi.String(\"Default\"),\nNetwork: \u0026servicemesh.ServiceMeshNetworkArgs{\nVpcId: pulumi.All(len(defaultGetNetworks.Ids),defaultNetwork[0].ID()).ApplyT(func(_args []interface{}) (*string, error) {\nlength := _args[0].(int)\nid := _args[1].(string)\nreturn \u0026tmp4, nil\n}).(pulumi.StringPtrOutput),\nVswitcheLists: pulumi.StringArray{\npulumi.All(len(defaultGetSwitches.ApplyT(func(defaultGetSwitches vpc.GetSwitchesResult) (interface{}, error) {\nreturn defaultGetSwitches.Ids, nil\n}).(pulumi.Interface{}Output)),defaultGetSwitches,defaultSwitch[0].ID()).ApplyT(func(_args []interface{}) (*string, error) {\nlength := _args[0].(int)\ndefaultGetSwitches := _args[1].(vpc.GetSwitchesResult)\nid := _args[2].(string)\nreturn \u0026tmp5, nil\n}).(pulumi.StringPtrOutput),\n},\n},\n})\nif err != nil {\nreturn err\n}\n_, err = servicemesh.NewExtensionProvider(ctx, \"default\", \u0026servicemesh.ExtensionProviderArgs{\nServiceMeshId: defaultServiceMesh.ID(),\nExtensionProviderName: pulumi.String(\"httpextauth-tf-example\"),\nType: pulumi.String(\"httpextauth\"),\nConfig: pulumi.String(\"{\\\"headersToDownstreamOnDeny\\\":[\\\"content-type\\\",\\\"set-cookie\\\"],\\\"headersToUpstreamOnAllow\\\":[\\\"authorization\\\",\\\"cookie\\\",\\\"path\\\",\\\"x-auth-request-access-token\\\",\\\"x-forwarded-access-token\\\"],\\\"includeRequestHeadersInCheck\\\":[\\\"cookie\\\",\\\"x-forward-access-token\\\"],\\\"oidc\\\":{\\\"clientID\\\":\\\"qweqweqwewqeqwe\\\",\\\"clientSecret\\\":\\\"asdasdasdasdsadas\\\",\\\"cookieExpire\\\":\\\"1000\\\",\\\"cookieRefresh\\\":\\\"500\\\",\\\"cookieSecret\\\":\\\"scxzcxzcxzcxzcxz\\\",\\\"issuerURI\\\":\\\"qweqwewqeqweqweqwe\\\",\\\"redirectDomain\\\":\\\"www.alicloud-provider.cn\\\",\\\"redirectProtocol\\\":\\\"http\\\",\\\"scopes\\\":[\\\"profile\\\"]},\\\"port\\\":4180,\\\"service\\\":\\\"oauth2proxy-httpextauth-tf-example.istio-system.svc.cluster.local\\\",\\\"timeout\\\":\\\"10s\\\"}\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.servicemesh.ServiceMesh;\nimport com.pulumi.alicloud.servicemesh.ServiceMeshArgs;\nimport com.pulumi.alicloud.servicemesh.inputs.ServiceMeshNetworkArgs;\nimport com.pulumi.alicloud.servicemesh.ExtensionProvider;\nimport com.pulumi.alicloud.servicemesh.ExtensionProviderArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"default-NODELETING\")\n            .build());\n\n        for (var i = 0; i \u003c defaultGetNetworks.ids().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new Network(\"defaultNetwork-\" + i);\n\n        \n}\n        final var defaultGetSwitches = Output.tuple(defaultGetNetworks.ids().length(), defaultNetwork[0].id()).applyValue(values -\u003e {\n            var length = values.t1;\n            var id = values.t2;\n            return length \u003e 0 ? defaultGetNetworks.ids()[0] : id;\n        }).applyValue(_value -\u003e VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(_value)\n            .build()));\n\n        for (var i = 0; i \u003c defaultGetSwitches.applyValue(_defaultGetSwitches -\u003e _defaultGetSwitches.ids()).length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new Switch(\"defaultSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(Output.tuple(defaultGetNetworks.ids().length(), defaultNetwork[0].id()).applyValue(values -\u003e {\n                    var length = values.t1;\n                    var id = values.t2;\n                    return length \u003e 0 ? defaultGetNetworks.ids()[0] : id;\n                }))\n                .cidrBlock(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                    .input(defaultGetNetworks.vpcs()[0].cidrBlock())\n                    .newbits(8)\n                    .netnum(2)\n                    .build()).result())\n                .zoneId(default_.zones()[0].id())\n                .build());\n\n        \n}\n        var defaultServiceMesh = new ServiceMesh(\"defaultServiceMesh\", ServiceMeshArgs.builder()\n            .serviceMeshName(\"mesh-c50f3fef117ad45b6b26047cdafef65ad\")\n            .version(\"v1.21.6.103-g5ddeaef7-aliyun\")\n            .edition(\"Default\")\n            .network(ServiceMeshNetworkArgs.builder()\n                .vpcId(Output.tuple(defaultGetNetworks.ids().length(), defaultNetwork[0].id()).applyValue(values -\u003e {\n                    var length = values.t1;\n                    var id = values.t2;\n                    return length.applyValue(___convert -\u003e ___convert \u003e 0) ? defaultGetNetworks.ids()[0] : id;\n                }))\n                .vswitcheLists(List.of(Output.tuple(defaultGetSwitches.applyValue(_defaultGetSwitches -\u003e _defaultGetSwitches.ids()).length(), defaultGetSwitches, defaultSwitch[0].id()).applyValue(values -\u003e {\n                    var length = values.t1;\n                    var defaultGetSwitches = values.t2;\n                    var id = values.t3;\n                    return length.applyValue(___convert -\u003e ___convert \u003e 0) ? defaultGetSwitches.ids()[0] : id;\n                })))\n                .build())\n            .build());\n\n        var defaultExtensionProvider = new ExtensionProvider(\"defaultExtensionProvider\", ExtensionProviderArgs.builder()\n            .serviceMeshId(defaultServiceMesh.id())\n            .extensionProviderName(\"httpextauth-tf-example\")\n            .type(\"httpextauth\")\n            .config(\"{\\\"headersToDownstreamOnDeny\\\":[\\\"content-type\\\",\\\"set-cookie\\\"],\\\"headersToUpstreamOnAllow\\\":[\\\"authorization\\\",\\\"cookie\\\",\\\"path\\\",\\\"x-auth-request-access-token\\\",\\\"x-forwarded-access-token\\\"],\\\"includeRequestHeadersInCheck\\\":[\\\"cookie\\\",\\\"x-forward-access-token\\\"],\\\"oidc\\\":{\\\"clientID\\\":\\\"qweqweqwewqeqwe\\\",\\\"clientSecret\\\":\\\"asdasdasdasdsadas\\\",\\\"cookieExpire\\\":\\\"1000\\\",\\\"cookieRefresh\\\":\\\"500\\\",\\\"cookieSecret\\\":\\\"scxzcxzcxzcxzcxz\\\",\\\"issuerURI\\\":\\\"qweqwewqeqweqweqwe\\\",\\\"redirectDomain\\\":\\\"www.alicloud-provider.cn\\\",\\\"redirectProtocol\\\":\\\"http\\\",\\\"scopes\\\":[\\\"profile\\\"]},\\\"port\\\":4180,\\\"service\\\":\\\"oauth2proxy-httpextauth-tf-example.istio-system.svc.cluster.local\\\",\\\"timeout\\\":\\\"10s\\\"}\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nService Mesh Extension Provider can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:servicemesh/extensionProvider:ExtensionProvider example \u003cservice_mesh_id\u003e:\u003ctype\u003e:\u003cextension_provider_name\u003e\n```\n\n","properties":{"config":{"type":"string","description":"The config of the Service Mesh Extension Provider. The \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e format is json.\n"},"extensionProviderName":{"type":"string","description":"The name of the Service Mesh Extension Provider. It must be prefixed with `$type-`, for example `httpextauth-xxx`, `grpcextauth-xxx`.\n"},"serviceMeshId":{"type":"string","description":"The ID of the Service Mesh.\n"},"type":{"type":"string","description":"The type of the Service Mesh Extension Provider. Valid values: \u003cspan pulumi-lang-nodejs=\"`httpextauth`\" pulumi-lang-dotnet=\"`Httpextauth`\" pulumi-lang-go=\"`httpextauth`\" pulumi-lang-python=\"`httpextauth`\" pulumi-lang-yaml=\"`httpextauth`\" pulumi-lang-java=\"`httpextauth`\"\u003e`httpextauth`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`grpcextauth`\" pulumi-lang-dotnet=\"`Grpcextauth`\" pulumi-lang-go=\"`grpcextauth`\" pulumi-lang-python=\"`grpcextauth`\" pulumi-lang-yaml=\"`grpcextauth`\" pulumi-lang-java=\"`grpcextauth`\"\u003e`grpcextauth`\u003c/span\u003e.\n"}},"required":["config","extensionProviderName","serviceMeshId","type"],"inputProperties":{"config":{"type":"string","description":"The config of the Service Mesh Extension Provider. The \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e format is json.\n"},"extensionProviderName":{"type":"string","description":"The name of the Service Mesh Extension Provider. It must be prefixed with `$type-`, for example `httpextauth-xxx`, `grpcextauth-xxx`.\n","willReplaceOnChanges":true},"serviceMeshId":{"type":"string","description":"The ID of the Service Mesh.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the Service Mesh Extension Provider. Valid values: \u003cspan pulumi-lang-nodejs=\"`httpextauth`\" pulumi-lang-dotnet=\"`Httpextauth`\" pulumi-lang-go=\"`httpextauth`\" pulumi-lang-python=\"`httpextauth`\" pulumi-lang-yaml=\"`httpextauth`\" pulumi-lang-java=\"`httpextauth`\"\u003e`httpextauth`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`grpcextauth`\" pulumi-lang-dotnet=\"`Grpcextauth`\" pulumi-lang-go=\"`grpcextauth`\" pulumi-lang-python=\"`grpcextauth`\" pulumi-lang-yaml=\"`grpcextauth`\" pulumi-lang-java=\"`grpcextauth`\"\u003e`grpcextauth`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["config","extensionProviderName","serviceMeshId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering ExtensionProvider resources.\n","properties":{"config":{"type":"string","description":"The config of the Service Mesh Extension Provider. The \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e format is json.\n"},"extensionProviderName":{"type":"string","description":"The name of the Service Mesh Extension Provider. It must be prefixed with `$type-`, for example `httpextauth-xxx`, `grpcextauth-xxx`.\n","willReplaceOnChanges":true},"serviceMeshId":{"type":"string","description":"The ID of the Service Mesh.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the Service Mesh Extension Provider. Valid values: \u003cspan pulumi-lang-nodejs=\"`httpextauth`\" pulumi-lang-dotnet=\"`Httpextauth`\" pulumi-lang-go=\"`httpextauth`\" pulumi-lang-python=\"`httpextauth`\" pulumi-lang-yaml=\"`httpextauth`\" pulumi-lang-java=\"`httpextauth`\"\u003e`httpextauth`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`grpcextauth`\" pulumi-lang-dotnet=\"`Grpcextauth`\" pulumi-lang-go=\"`grpcextauth`\" pulumi-lang-python=\"`grpcextauth`\" pulumi-lang-yaml=\"`grpcextauth`\" pulumi-lang-java=\"`grpcextauth`\"\u003e`grpcextauth`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:servicemesh/serviceMesh:ServiceMesh":{"description":"Provides a Service Mesh Service Mesh resource.\n\n\n\nFor information about Service Mesh Service Mesh and how to use it, see [What is Service Mesh](https://www.alibabacloud.com/help/en/asm/developer-reference/api-servicemesh-2020-01-11-createservicemesh).\n\n\u003e **NOTE:** Available since v1.138.0.\n\n## Import\n\nService Mesh Service Mesh can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:servicemesh/serviceMesh:ServiceMesh example \u003cid\u003e\n```\n\n","properties":{"clusterIds":{"type":"array","items":{"type":"string"},"description":"List of clusters.\n"},"clusterSpec":{"type":"string","description":"Cluster specification\n"},"createTime":{"type":"string","description":"Service grid creation time\n"},"customizedPrometheus":{"type":"boolean","description":"Whether to customize Prometheus. Value:\n-'true': custom Prometheus.\n-'false': Do not customize Prometheus.\n\nDefault value: 'false '.\n"},"edition":{"type":"string","description":"Grid instance version type (for example: the standard, the Pro version, etc.)\n"},"extraConfiguration":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshExtraConfiguration:ServiceMeshExtraConfiguration","description":"Data plane KubeAPI access capability See \u003cspan pulumi-lang-nodejs=\"`extraConfiguration`\" pulumi-lang-dotnet=\"`ExtraConfiguration`\" pulumi-lang-go=\"`extraConfiguration`\" pulumi-lang-python=\"`extra_configuration`\" pulumi-lang-yaml=\"`extraConfiguration`\" pulumi-lang-java=\"`extraConfiguration`\"\u003e`extra_configuration`\u003c/span\u003e below.\n"},"force":{"type":"boolean","description":"Whether to forcibly delete the ASM instance. Value:\n-'true': force deletion of ASM instance\n-'false': no forced deletion of ASM instance\n\nDefault value: false\n"},"kubeconfig":{"type":"string","description":"Kubeconfig configuration content\n"},"loadBalancer":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshLoadBalancer:ServiceMeshLoadBalancer","description":"Load balancing information See \u003cspan pulumi-lang-nodejs=\"`loadBalancer`\" pulumi-lang-dotnet=\"`LoadBalancer`\" pulumi-lang-go=\"`loadBalancer`\" pulumi-lang-python=\"`load_balancer`\" pulumi-lang-yaml=\"`loadBalancer`\" pulumi-lang-java=\"`loadBalancer`\"\u003e`load_balancer`\u003c/span\u003e below.\n"},"meshConfig":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshMeshConfig:ServiceMeshMeshConfig","description":"Service grid configuration information See \u003cspan pulumi-lang-nodejs=\"`meshConfig`\" pulumi-lang-dotnet=\"`MeshConfig`\" pulumi-lang-go=\"`meshConfig`\" pulumi-lang-python=\"`mesh_config`\" pulumi-lang-yaml=\"`meshConfig`\" pulumi-lang-java=\"`meshConfig`\"\u003e`mesh_config`\u003c/span\u003e below.\n"},"network":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshNetwork:ServiceMeshNetwork","description":"Service grid network configuration information See \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e below.\n"},"prometheusUrl":{"type":"string","description":"The Prometheus service address (in non-custom cases, use the ARMS address format).\n"},"serviceMeshName":{"type":"string","description":"ServiceMeshName\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"version":{"type":"string","description":"Service grid version number\n"}},"required":["clusterSpec","createTime","extraConfiguration","kubeconfig","loadBalancer","meshConfig","network","status"],"inputProperties":{"clusterIds":{"type":"array","items":{"type":"string"},"description":"List of clusters.\n"},"clusterSpec":{"type":"string","description":"Cluster specification\n"},"customizedPrometheus":{"type":"boolean","description":"Whether to customize Prometheus. Value:\n-'true': custom Prometheus.\n-'false': Do not customize Prometheus.\n\nDefault value: 'false '.\n"},"edition":{"type":"string","description":"Grid instance version type (for example: the standard, the Pro version, etc.)\n","willReplaceOnChanges":true},"extraConfiguration":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshExtraConfiguration:ServiceMeshExtraConfiguration","description":"Data plane KubeAPI access capability See \u003cspan pulumi-lang-nodejs=\"`extraConfiguration`\" pulumi-lang-dotnet=\"`ExtraConfiguration`\" pulumi-lang-go=\"`extraConfiguration`\" pulumi-lang-python=\"`extra_configuration`\" pulumi-lang-yaml=\"`extraConfiguration`\" pulumi-lang-java=\"`extraConfiguration`\"\u003e`extra_configuration`\u003c/span\u003e below.\n"},"force":{"type":"boolean","description":"Whether to forcibly delete the ASM instance. Value:\n-'true': force deletion of ASM instance\n-'false': no forced deletion of ASM instance\n\nDefault value: false\n"},"loadBalancer":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshLoadBalancer:ServiceMeshLoadBalancer","description":"Load balancing information See \u003cspan pulumi-lang-nodejs=\"`loadBalancer`\" pulumi-lang-dotnet=\"`LoadBalancer`\" pulumi-lang-go=\"`loadBalancer`\" pulumi-lang-python=\"`load_balancer`\" pulumi-lang-yaml=\"`loadBalancer`\" pulumi-lang-java=\"`loadBalancer`\"\u003e`load_balancer`\u003c/span\u003e below.\n"},"meshConfig":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshMeshConfig:ServiceMeshMeshConfig","description":"Service grid configuration information See \u003cspan pulumi-lang-nodejs=\"`meshConfig`\" pulumi-lang-dotnet=\"`MeshConfig`\" pulumi-lang-go=\"`meshConfig`\" pulumi-lang-python=\"`mesh_config`\" pulumi-lang-yaml=\"`meshConfig`\" pulumi-lang-java=\"`meshConfig`\"\u003e`mesh_config`\u003c/span\u003e below.\n"},"network":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshNetwork:ServiceMeshNetwork","description":"Service grid network configuration information See \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"prometheusUrl":{"type":"string","description":"The Prometheus service address (in non-custom cases, use the ARMS address format).\n"},"serviceMeshName":{"type":"string","description":"ServiceMeshName\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"version":{"type":"string","description":"Service grid version number\n"}},"requiredInputs":["network"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceMesh resources.\n","properties":{"clusterIds":{"type":"array","items":{"type":"string"},"description":"List of clusters.\n"},"clusterSpec":{"type":"string","description":"Cluster specification\n"},"createTime":{"type":"string","description":"Service grid creation time\n"},"customizedPrometheus":{"type":"boolean","description":"Whether to customize Prometheus. Value:\n-'true': custom Prometheus.\n-'false': Do not customize Prometheus.\n\nDefault value: 'false '.\n"},"edition":{"type":"string","description":"Grid instance version type (for example: the standard, the Pro version, etc.)\n","willReplaceOnChanges":true},"extraConfiguration":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshExtraConfiguration:ServiceMeshExtraConfiguration","description":"Data plane KubeAPI access capability See \u003cspan pulumi-lang-nodejs=\"`extraConfiguration`\" pulumi-lang-dotnet=\"`ExtraConfiguration`\" pulumi-lang-go=\"`extraConfiguration`\" pulumi-lang-python=\"`extra_configuration`\" pulumi-lang-yaml=\"`extraConfiguration`\" pulumi-lang-java=\"`extraConfiguration`\"\u003e`extra_configuration`\u003c/span\u003e below.\n"},"force":{"type":"boolean","description":"Whether to forcibly delete the ASM instance. Value:\n-'true': force deletion of ASM instance\n-'false': no forced deletion of ASM instance\n\nDefault value: false\n"},"kubeconfig":{"type":"string","description":"Kubeconfig configuration content\n"},"loadBalancer":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshLoadBalancer:ServiceMeshLoadBalancer","description":"Load balancing information See \u003cspan pulumi-lang-nodejs=\"`loadBalancer`\" pulumi-lang-dotnet=\"`LoadBalancer`\" pulumi-lang-go=\"`loadBalancer`\" pulumi-lang-python=\"`load_balancer`\" pulumi-lang-yaml=\"`loadBalancer`\" pulumi-lang-java=\"`loadBalancer`\"\u003e`load_balancer`\u003c/span\u003e below.\n"},"meshConfig":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshMeshConfig:ServiceMeshMeshConfig","description":"Service grid configuration information See \u003cspan pulumi-lang-nodejs=\"`meshConfig`\" pulumi-lang-dotnet=\"`MeshConfig`\" pulumi-lang-go=\"`meshConfig`\" pulumi-lang-python=\"`mesh_config`\" pulumi-lang-yaml=\"`meshConfig`\" pulumi-lang-java=\"`meshConfig`\"\u003e`mesh_config`\u003c/span\u003e below.\n"},"network":{"$ref":"#/types/alicloud:servicemesh/ServiceMeshNetwork:ServiceMeshNetwork","description":"Service grid network configuration information See \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"prometheusUrl":{"type":"string","description":"The Prometheus service address (in non-custom cases, use the ARMS address format).\n"},"serviceMeshName":{"type":"string","description":"ServiceMeshName\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"version":{"type":"string","description":"Service grid version number\n"}},"type":"object"}},"alicloud:servicemesh/userPermission:UserPermission":{"description":"Provides a Service Mesh UserPermission resource.\n\nFor information about Service Mesh User Permission and how to use it, see [What is User Permission](https://www.alibabacloud.com/help/en/alibaba-cloud-service-mesh/latest/api-servicemesh-2020-01-11-grantuserpermissions).\n\n\u003e **NOTE:** Available since v1.174.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.servicemesh.getVersions({\n    edition: \"Default\",\n});\nconst defaultGetZones = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, defaultGetZones]).then(([defaultGetNetworks, defaultGetZones]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: defaultGetZones.zones?.[0]?.id,\n}));\nconst defaultUser = new alicloud.ram.User(\"default\", {name: name});\nconst default1 = new alicloud.servicemesh.ServiceMesh(\"default1\", {\n    serviceMeshName: `${name}-${defaultInteger.result}`,\n    edition: \"Default\",\n    clusterSpec: \"standard\",\n    version: _default.then(_default =\u003e _default.versions?.[0]?.version),\n    network: {\n        vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n        vswitcheLists: [defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0])],\n    },\n    loadBalancer: {\n        pilotPublicEip: false,\n        apiServerPublicEip: false,\n    },\n});\nconst defaultUserPermission = new alicloud.servicemesh.UserPermission(\"default\", {\n    subAccountUserId: defaultUser.id,\n    permissions: [{\n        roleName: \"istio-ops\",\n        serviceMeshId: default1.id,\n        roleType: \"custom\",\n        isCustom: true,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.servicemesh.get_versions(edition=\"Default\")\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default_get_zones.zones[0].id)\ndefault_user = alicloud.ram.User(\"default\", name=name)\ndefault1 = alicloud.servicemesh.ServiceMesh(\"default1\",\n    service_mesh_name=f\"{name}-{default_integer['result']}\",\n    edition=\"Default\",\n    cluster_spec=\"standard\",\n    version=default.versions[0].version,\n    network={\n        \"vpc_id\": default_get_networks.ids[0],\n        \"vswitche_lists\": [default_get_switches.ids[0]],\n    },\n    load_balancer={\n        \"pilot_public_eip\": False,\n        \"api_server_public_eip\": False,\n    })\ndefault_user_permission = alicloud.servicemesh.UserPermission(\"default\",\n    sub_account_user_id=default_user.id,\n    permissions=[{\n        \"role_name\": \"istio-ops\",\n        \"service_mesh_id\": default1.id,\n        \"role_type\": \"custom\",\n        \"is_custom\": True,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.ServiceMesh.GetVersions.Invoke(new()\n    {\n        Edition = \"Default\",\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultUser = new AliCloud.Ram.User(\"default\", new()\n    {\n        Name = name,\n    });\n\n    var default1 = new AliCloud.ServiceMesh.ServiceMesh(\"default1\", new()\n    {\n        ServiceMeshName = $\"{name}-{defaultInteger.Result}\",\n        Edition = \"Default\",\n        ClusterSpec = \"standard\",\n        Version = @default.Apply(@default =\u003e @default.Apply(getVersionsResult =\u003e getVersionsResult.Versions[0]?.Version)),\n        Network = new AliCloud.ServiceMesh.Inputs.ServiceMeshNetworkArgs\n        {\n            VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n            VswitcheLists = new[]\n            {\n                defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n            },\n        },\n        LoadBalancer = new AliCloud.ServiceMesh.Inputs.ServiceMeshLoadBalancerArgs\n        {\n            PilotPublicEip = false,\n            ApiServerPublicEip = false,\n        },\n    });\n\n    var defaultUserPermission = new AliCloud.ServiceMesh.UserPermission(\"default\", new()\n    {\n        SubAccountUserId = defaultUser.Id,\n        Permissions = new[]\n        {\n            new AliCloud.ServiceMesh.Inputs.UserPermissionPermissionArgs\n            {\n                RoleName = \"istio-ops\",\n                ServiceMeshId = default1.Id,\n                RoleType = \"custom\",\n                IsCustom = true,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/servicemesh\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := servicemesh.GetVersions(ctx, \u0026servicemesh.GetVersionsArgs{\n\t\t\tEdition: pulumi.StringRef(\"Default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(defaultGetZones.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultUser, err := ram.NewUser(ctx, \"default\", \u0026ram.UserArgs{\n\t\t\tName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1, err := servicemesh.NewServiceMesh(ctx, \"default1\", \u0026servicemesh.ServiceMeshArgs{\n\t\t\tServiceMeshName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tEdition:         pulumi.String(\"Default\"),\n\t\t\tClusterSpec:     pulumi.String(\"standard\"),\n\t\t\tVersion:         pulumi.String(_default.Versions[0].Version),\n\t\t\tNetwork: \u0026servicemesh.ServiceMeshNetworkArgs{\n\t\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\t\tVswitcheLists: []*string{\n\t\t\t\t\tdefaultGetSwitches.Ids[0],\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancer: \u0026servicemesh.ServiceMeshLoadBalancerArgs{\n\t\t\t\tPilotPublicEip:     pulumi.Bool(false),\n\t\t\t\tApiServerPublicEip: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = servicemesh.NewUserPermission(ctx, \"default\", \u0026servicemesh.UserPermissionArgs{\n\t\t\tSubAccountUserId: defaultUser.ID(),\n\t\t\tPermissions: servicemesh.UserPermissionPermissionArray{\n\t\t\t\t\u0026servicemesh.UserPermissionPermissionArgs{\n\t\t\t\t\tRoleName:      pulumi.String(\"istio-ops\"),\n\t\t\t\t\tServiceMeshId: default1.ID(),\n\t\t\t\t\tRoleType:      pulumi.String(\"custom\"),\n\t\t\t\t\tIsCustom:      pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.servicemesh.ServicemeshFunctions;\nimport com.pulumi.alicloud.servicemesh.inputs.GetVersionsArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ram.User;\nimport com.pulumi.alicloud.ram.UserArgs;\nimport com.pulumi.alicloud.servicemesh.ServiceMesh;\nimport com.pulumi.alicloud.servicemesh.ServiceMeshArgs;\nimport com.pulumi.alicloud.servicemesh.inputs.ServiceMeshNetworkArgs;\nimport com.pulumi.alicloud.servicemesh.inputs.ServiceMeshLoadBalancerArgs;\nimport com.pulumi.alicloud.servicemesh.UserPermission;\nimport com.pulumi.alicloud.servicemesh.UserPermissionArgs;\nimport com.pulumi.alicloud.servicemesh.inputs.UserPermissionPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = ServicemeshFunctions.getVersions(GetVersionsArgs.builder()\n            .edition(\"Default\")\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultUser = new User(\"defaultUser\", UserArgs.builder()\n            .name(name)\n            .build());\n\n        var default1 = new ServiceMesh(\"default1\", ServiceMeshArgs.builder()\n            .serviceMeshName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .edition(\"Default\")\n            .clusterSpec(\"standard\")\n            .version(default_.versions()[0].version())\n            .network(ServiceMeshNetworkArgs.builder()\n                .vpcId(defaultGetNetworks.ids()[0])\n                .vswitcheLists(List.of(defaultGetSwitches.ids()[0]))\n                .build())\n            .loadBalancer(ServiceMeshLoadBalancerArgs.builder()\n                .pilotPublicEip(false)\n                .apiServerPublicEip(false)\n                .build())\n            .build());\n\n        var defaultUserPermission = new UserPermission(\"defaultUserPermission\", UserPermissionArgs.builder()\n            .subAccountUserId(defaultUser.id())\n            .permissions(UserPermissionPermissionArgs.builder()\n                .roleName(\"istio-ops\")\n                .serviceMeshId(default1.id())\n                .roleType(\"custom\")\n                .isCustom(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultUser:\n    type: alicloud:ram:User\n    name: default\n    properties:\n      name: ${name}\n  default1:\n    type: alicloud:servicemesh:ServiceMesh\n    properties:\n      serviceMeshName: ${name}-${defaultInteger.result}\n      edition: Default\n      clusterSpec: standard\n      version: ${default.versions[0].version}\n      network:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        vswitcheLists:\n          - ${defaultGetSwitches.ids[0]}\n      loadBalancer:\n        pilotPublicEip: false\n        apiServerPublicEip: false\n  defaultUserPermission:\n    type: alicloud:servicemesh:UserPermission\n    name: default\n    properties:\n      subAccountUserId: ${defaultUser.id}\n      permissions:\n        - roleName: istio-ops\n          serviceMeshId: ${default1.id}\n          roleType: custom\n          isCustom: true\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:servicemesh:getVersions\n      arguments:\n        edition: Default\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${defaultGetZones.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nService Mesh User Permission can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:servicemesh/userPermission:UserPermission example \u003cid\u003e\n```\n\n","properties":{"permissions":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/UserPermissionPermission:UserPermissionPermission"},"description":"List of permissions. **Warning:** The list requires the full amount of permission information to be passed. Adding permissions means adding items to the list, and deleting them or inputting nothing means removing items. See \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e below.\n"},"subAccountUserId":{"type":"string","description":"The configuration of the Load Balancer. See the following `Block\u003cspan pulumi-lang-nodejs=\" loadBalancer`\" pulumi-lang-dotnet=\" LoadBalancer`\" pulumi-lang-go=\" loadBalancer`\" pulumi-lang-python=\" load_balancer`\" pulumi-lang-yaml=\" loadBalancer`\" pulumi-lang-java=\" loadBalancer`\"\u003e load_balancer`\u003c/span\u003e.\n"}},"required":["permissions","subAccountUserId"],"inputProperties":{"permissions":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/UserPermissionPermission:UserPermissionPermission"},"description":"List of permissions. **Warning:** The list requires the full amount of permission information to be passed. Adding permissions means adding items to the list, and deleting them or inputting nothing means removing items. See \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e below.\n"},"subAccountUserId":{"type":"string","description":"The configuration of the Load Balancer. See the following `Block\u003cspan pulumi-lang-nodejs=\" loadBalancer`\" pulumi-lang-dotnet=\" LoadBalancer`\" pulumi-lang-go=\" loadBalancer`\" pulumi-lang-python=\" load_balancer`\" pulumi-lang-yaml=\" loadBalancer`\" pulumi-lang-java=\" loadBalancer`\"\u003e load_balancer`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["subAccountUserId"],"stateInputs":{"description":"Input properties used for looking up and filtering UserPermission resources.\n","properties":{"permissions":{"type":"array","items":{"$ref":"#/types/alicloud:servicemesh/UserPermissionPermission:UserPermissionPermission"},"description":"List of permissions. **Warning:** The list requires the full amount of permission information to be passed. Adding permissions means adding items to the list, and deleting them or inputting nothing means removing items. See \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e below.\n"},"subAccountUserId":{"type":"string","description":"The configuration of the Load Balancer. See the following `Block\u003cspan pulumi-lang-nodejs=\" loadBalancer`\" pulumi-lang-dotnet=\" LoadBalancer`\" pulumi-lang-go=\" loadBalancer`\" pulumi-lang-python=\" load_balancer`\" pulumi-lang-yaml=\" loadBalancer`\" pulumi-lang-java=\" loadBalancer`\"\u003e load_balancer`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:simpleapplicationserver/customImage:CustomImage":{"description":"Provides a Simple Application Server Custom Image resource.\n\nFor information about Simple Application Server Custom Image and how to use it, see [What is Custom Image](https://www.alibabacloud.com/help/en/doc-detail/333535.htm).\n\n\u003e **NOTE:** Available since v1.143.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.simpleapplicationserver.getImages({});\nconst defaultGetServerPlans = alicloud.simpleapplicationserver.getServerPlans({});\nconst defaultInstance = new alicloud.simpleapplicationserver.Instance(\"default\", {\n    paymentType: \"Subscription\",\n    planId: defaultGetServerPlans.then(defaultGetServerPlans =\u003e defaultGetServerPlans.plans?.[0]?.id),\n    instanceName: name,\n    imageId: _default.then(_default =\u003e _default.images?.[0]?.id),\n    period: 1,\n    dataDiskSize: 100,\n});\nconst defaultGetServerDisks = alicloud.simpleapplicationserver.getServerDisksOutput({\n    instanceId: defaultInstance.id,\n});\nconst defaultSnapshot = new alicloud.simpleapplicationserver.Snapshot(\"default\", {\n    diskId: defaultGetServerDisks.apply(defaultGetServerDisks =\u003e defaultGetServerDisks.ids?.[0]),\n    snapshotName: name,\n});\nconst defaultCustomImage = new alicloud.simpleapplicationserver.CustomImage(\"default\", {\n    customImageName: name,\n    instanceId: defaultInstance.id,\n    systemSnapshotId: defaultSnapshot.id,\n    status: \"Share\",\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.simpleapplicationserver.get_images()\ndefault_get_server_plans = alicloud.simpleapplicationserver.get_server_plans()\ndefault_instance = alicloud.simpleapplicationserver.Instance(\"default\",\n    payment_type=\"Subscription\",\n    plan_id=default_get_server_plans.plans[0].id,\n    instance_name=name,\n    image_id=default.images[0].id,\n    period=1,\n    data_disk_size=100)\ndefault_get_server_disks = alicloud.simpleapplicationserver.get_server_disks_output(instance_id=default_instance.id)\ndefault_snapshot = alicloud.simpleapplicationserver.Snapshot(\"default\",\n    disk_id=default_get_server_disks.ids[0],\n    snapshot_name=name)\ndefault_custom_image = alicloud.simpleapplicationserver.CustomImage(\"default\",\n    custom_image_name=name,\n    instance_id=default_instance.id,\n    system_snapshot_id=default_snapshot.id,\n    status=\"Share\",\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.SimpleApplicationServer.GetImages.Invoke();\n\n    var defaultGetServerPlans = AliCloud.SimpleApplicationServer.GetServerPlans.Invoke();\n\n    var defaultInstance = new AliCloud.SimpleApplicationServer.Instance(\"default\", new()\n    {\n        PaymentType = \"Subscription\",\n        PlanId = defaultGetServerPlans.Apply(getServerPlansResult =\u003e getServerPlansResult.Plans[0]?.Id),\n        InstanceName = name,\n        ImageId = @default.Apply(@default =\u003e @default.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id)),\n        Period = 1,\n        DataDiskSize = 100,\n    });\n\n    var defaultGetServerDisks = AliCloud.SimpleApplicationServer.GetServerDisks.Invoke(new()\n    {\n        InstanceId = defaultInstance.Id,\n    });\n\n    var defaultSnapshot = new AliCloud.SimpleApplicationServer.Snapshot(\"default\", new()\n    {\n        DiskId = defaultGetServerDisks.Apply(getServerDisksResult =\u003e getServerDisksResult.Ids[0]),\n        SnapshotName = name,\n    });\n\n    var defaultCustomImage = new AliCloud.SimpleApplicationServer.CustomImage(\"default\", new()\n    {\n        CustomImageName = name,\n        InstanceId = defaultInstance.Id,\n        SystemSnapshotId = defaultSnapshot.Id,\n        Status = \"Share\",\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/simpleapplicationserver\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := simpleapplicationserver.GetImages(ctx, \u0026simpleapplicationserver.GetImagesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetServerPlans, err := simpleapplicationserver.GetServerPlans(ctx, \u0026simpleapplicationserver.GetServerPlansArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := simpleapplicationserver.NewInstance(ctx, \"default\", \u0026simpleapplicationserver.InstanceArgs{\n\t\t\tPaymentType:  pulumi.String(\"Subscription\"),\n\t\t\tPlanId:       pulumi.String(defaultGetServerPlans.Plans[0].Id),\n\t\t\tInstanceName: pulumi.String(name),\n\t\t\tImageId:      pulumi.String(_default.Images[0].Id),\n\t\t\tPeriod:       pulumi.Int(1),\n\t\t\tDataDiskSize: pulumi.Int(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetServerDisks := simpleapplicationserver.GetServerDisksOutput(ctx, simpleapplicationserver.GetServerDisksOutputArgs{\n\t\t\tInstanceId: defaultInstance.ID(),\n\t\t}, nil)\n\t\tdefaultSnapshot, err := simpleapplicationserver.NewSnapshot(ctx, \"default\", \u0026simpleapplicationserver.SnapshotArgs{\n\t\t\tDiskId: pulumi.String(defaultGetServerDisks.ApplyT(func(defaultGetServerDisks simpleapplicationserver.GetServerDisksResult) (*string, error) {\n\t\t\t\treturn \u0026defaultGetServerDisks.Ids[0], nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tSnapshotName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = simpleapplicationserver.NewCustomImage(ctx, \"default\", \u0026simpleapplicationserver.CustomImageArgs{\n\t\t\tCustomImageName:  pulumi.String(name),\n\t\t\tInstanceId:       defaultInstance.ID(),\n\t\t\tSystemSnapshotId: defaultSnapshot.ID(),\n\t\t\tStatus:           pulumi.String(\"Share\"),\n\t\t\tDescription:      pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.simpleapplicationserver.SimpleapplicationserverFunctions;\nimport com.pulumi.alicloud.simpleapplicationserver.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.simpleapplicationserver.inputs.GetServerPlansArgs;\nimport com.pulumi.alicloud.simpleapplicationserver.Instance;\nimport com.pulumi.alicloud.simpleapplicationserver.InstanceArgs;\nimport com.pulumi.alicloud.simpleapplicationserver.inputs.GetServerDisksArgs;\nimport com.pulumi.alicloud.simpleapplicationserver.Snapshot;\nimport com.pulumi.alicloud.simpleapplicationserver.SnapshotArgs;\nimport com.pulumi.alicloud.simpleapplicationserver.CustomImage;\nimport com.pulumi.alicloud.simpleapplicationserver.CustomImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = SimpleapplicationserverFunctions.getImages(GetImagesArgs.builder()\n            .build());\n\n        final var defaultGetServerPlans = SimpleapplicationserverFunctions.getServerPlans(GetServerPlansArgs.builder()\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .planId(defaultGetServerPlans.plans()[0].id())\n            .instanceName(name)\n            .imageId(default_.images()[0].id())\n            .period(1)\n            .dataDiskSize(100)\n            .build());\n\n        final var defaultGetServerDisks = SimpleapplicationserverFunctions.getServerDisks(GetServerDisksArgs.builder()\n            .instanceId(defaultInstance.id())\n            .build());\n\n        var defaultSnapshot = new Snapshot(\"defaultSnapshot\", SnapshotArgs.builder()\n            .diskId(defaultGetServerDisks.applyValue(_defaultGetServerDisks -\u003e _defaultGetServerDisks.ids()[0]))\n            .snapshotName(name)\n            .build());\n\n        var defaultCustomImage = new CustomImage(\"defaultCustomImage\", CustomImageArgs.builder()\n            .customImageName(name)\n            .instanceId(defaultInstance.id())\n            .systemSnapshotId(defaultSnapshot.id())\n            .status(\"Share\")\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultInstance:\n    type: alicloud:simpleapplicationserver:Instance\n    name: default\n    properties:\n      paymentType: Subscription\n      planId: ${defaultGetServerPlans.plans[0].id}\n      instanceName: ${name}\n      imageId: ${default.images[0].id}\n      period: 1\n      dataDiskSize: 100\n  defaultSnapshot:\n    type: alicloud:simpleapplicationserver:Snapshot\n    name: default\n    properties:\n      diskId: ${defaultGetServerDisks.ids[0]}\n      snapshotName: ${name}\n  defaultCustomImage:\n    type: alicloud:simpleapplicationserver:CustomImage\n    name: default\n    properties:\n      customImageName: ${name}\n      instanceId: ${defaultInstance.id}\n      systemSnapshotId: ${defaultSnapshot.id}\n      status: Share\n      description: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getImages\n      arguments: {}\n  defaultGetServerPlans:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerPlans\n      arguments: {}\n  defaultGetServerDisks:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerDisks\n      arguments:\n        instanceId: ${defaultInstance.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSimple Application Server Custom Image can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:simpleapplicationserver/customImage:CustomImage example \u003cid\u003e\n```\n\n","properties":{"customImageName":{"type":"string","description":"The name of the resource. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a letter or a number. It can contain letters, digits, colons (:), underscores (_) and hyphens (-).\n"},"description":{"type":"string","description":"The description of the Custom Image.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"status":{"type":"string","description":"The Shared status of the Custom Image. Valid values: `Share`, `UnShare`.\n\n**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e will be automatically change to `UnShare` when the resource is deleted, please operate with caution.\n"},"systemSnapshotId":{"type":"string","description":"The ID of the system snapshot.\n"}},"required":["customImageName","instanceId","systemSnapshotId"],"inputProperties":{"customImageName":{"type":"string","description":"The name of the resource. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a letter or a number. It can contain letters, digits, colons (:), underscores (_) and hyphens (-).\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the Custom Image.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"status":{"type":"string","description":"The Shared status of the Custom Image. Valid values: `Share`, `UnShare`.\n\n**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e will be automatically change to `UnShare` when the resource is deleted, please operate with caution.\n"},"systemSnapshotId":{"type":"string","description":"The ID of the system snapshot.\n"}},"requiredInputs":["customImageName","instanceId","systemSnapshotId"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomImage resources.\n","properties":{"customImageName":{"type":"string","description":"The name of the resource. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a letter or a number. It can contain letters, digits, colons (:), underscores (_) and hyphens (-).\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the Custom Image.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"status":{"type":"string","description":"The Shared status of the Custom Image. Valid values: `Share`, `UnShare`.\n\n**NOTE:** The \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e will be automatically change to `UnShare` when the resource is deleted, please operate with caution.\n"},"systemSnapshotId":{"type":"string","description":"The ID of the system snapshot.\n"}},"type":"object"}},"alicloud:simpleapplicationserver/disk:Disk":{"description":"Provides a Simple Application Server Disk resource.\n\n\n\nFor information about Simple Application Server Disk and how to use it, see [What is Disk](https://next.api.alibabacloud.com/document/SWAS-OPEN/2020-06-01/CreateDisk).\n\n\u003e **NOTE:** Available since v1.273.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultV70JQf = new alicloud.simpleapplicationserver.Instance(\"defaultV70JQf\", {\n    instanceName: \"examplewujie\",\n    status: \"Running\",\n    planId: \"swas.s1.c2m2s50b3\",\n    imageId: \"21e9617bd4754f77a090d2fbc94916a4\",\n    period: 1,\n    dataDiskSize: 0,\n    password: \"@3612568Wj\",\n    paymentType: \"Subscription\",\n    autoRenew: true,\n    autoRenewPeriod: 1,\n});\nconst _default = new alicloud.simpleapplicationserver.Disk(\"default\", {\n    diskSize: 20,\n    instanceId: defaultV70JQf.id,\n    remark: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_v70_j_qf = alicloud.simpleapplicationserver.Instance(\"defaultV70JQf\",\n    instance_name=\"examplewujie\",\n    status=\"Running\",\n    plan_id=\"swas.s1.c2m2s50b3\",\n    image_id=\"21e9617bd4754f77a090d2fbc94916a4\",\n    period=1,\n    data_disk_size=0,\n    password=\"@3612568Wj\",\n    payment_type=\"Subscription\",\n    auto_renew=True,\n    auto_renew_period=1)\ndefault = alicloud.simpleapplicationserver.Disk(\"default\",\n    disk_size=20,\n    instance_id=default_v70_j_qf.id,\n    remark=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultV70JQf = new AliCloud.SimpleApplicationServer.Instance(\"defaultV70JQf\", new()\n    {\n        InstanceName = \"examplewujie\",\n        Status = \"Running\",\n        PlanId = \"swas.s1.c2m2s50b3\",\n        ImageId = \"21e9617bd4754f77a090d2fbc94916a4\",\n        Period = 1,\n        DataDiskSize = 0,\n        Password = \"@3612568Wj\",\n        PaymentType = \"Subscription\",\n        AutoRenew = true,\n        AutoRenewPeriod = 1,\n    });\n\n    var @default = new AliCloud.SimpleApplicationServer.Disk(\"default\", new()\n    {\n        DiskSize = 20,\n        InstanceId = defaultV70JQf.Id,\n        Remark = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/simpleapplicationserver\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultV70JQf, err := simpleapplicationserver.NewInstance(ctx, \"defaultV70JQf\", \u0026simpleapplicationserver.InstanceArgs{\n\t\t\tInstanceName:    pulumi.String(\"examplewujie\"),\n\t\t\tStatus:          pulumi.String(\"Running\"),\n\t\t\tPlanId:          pulumi.String(\"swas.s1.c2m2s50b3\"),\n\t\t\tImageId:         pulumi.String(\"21e9617bd4754f77a090d2fbc94916a4\"),\n\t\t\tPeriod:          pulumi.Int(1),\n\t\t\tDataDiskSize:    pulumi.Int(0),\n\t\t\tPassword:        pulumi.String(\"@3612568Wj\"),\n\t\t\tPaymentType:     pulumi.String(\"Subscription\"),\n\t\t\tAutoRenew:       pulumi.Bool(true),\n\t\t\tAutoRenewPeriod: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = simpleapplicationserver.NewDisk(ctx, \"default\", \u0026simpleapplicationserver.DiskArgs{\n\t\t\tDiskSize:   pulumi.Int(20),\n\t\t\tInstanceId: defaultV70JQf.ID(),\n\t\t\tRemark:     pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.simpleapplicationserver.Instance;\nimport com.pulumi.alicloud.simpleapplicationserver.InstanceArgs;\nimport com.pulumi.alicloud.simpleapplicationserver.Disk;\nimport com.pulumi.alicloud.simpleapplicationserver.DiskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultV70JQf = new Instance(\"defaultV70JQf\", InstanceArgs.builder()\n            .instanceName(\"examplewujie\")\n            .status(\"Running\")\n            .planId(\"swas.s1.c2m2s50b3\")\n            .imageId(\"21e9617bd4754f77a090d2fbc94916a4\")\n            .period(1)\n            .dataDiskSize(0)\n            .password(\"@3612568Wj\")\n            .paymentType(\"Subscription\")\n            .autoRenew(true)\n            .autoRenewPeriod(1)\n            .build());\n\n        var default_ = new Disk(\"default\", DiskArgs.builder()\n            .diskSize(20)\n            .instanceId(defaultV70JQf.id())\n            .remark(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultV70JQf:\n    type: alicloud:simpleapplicationserver:Instance\n    properties:\n      instanceName: examplewujie\n      status: Running\n      planId: swas.s1.c2m2s50b3\n      imageId: 21e9617bd4754f77a090d2fbc94916a4\n      period: '1'\n      dataDiskSize: '0'\n      password: '@3612568Wj'\n      paymentType: Subscription\n      autoRenew: true\n      autoRenewPeriod: '1'\n  default:\n    type: alicloud:simpleapplicationserver:Disk\n    properties:\n      diskSize: '20'\n      instanceId: ${defaultV70JQf.id}\n      remark: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.simpleapplicationserver.Disk`\" pulumi-lang-dotnet=\"`alicloud.simpleapplicationserver.Disk`\" pulumi-lang-go=\"`simpleapplicationserver.Disk`\" pulumi-lang-python=\"`simpleapplicationserver.Disk`\" pulumi-lang-yaml=\"`alicloud.simpleapplicationserver.Disk`\" pulumi-lang-java=\"`alicloud.simpleapplicationserver.Disk`\"\u003e`alicloud.simpleapplicationserver.Disk`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.simpleapplicationserver.Disk`\" pulumi-lang-dotnet=\"`alicloud.simpleapplicationserver.Disk`\" pulumi-lang-go=\"`simpleapplicationserver.Disk`\" pulumi-lang-python=\"`simpleapplicationserver.Disk`\" pulumi-lang-yaml=\"`alicloud.simpleapplicationserver.Disk`\" pulumi-lang-java=\"`alicloud.simpleapplicationserver.Disk`\"\u003e`alicloud.simpleapplicationserver.Disk`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSimple Application Server Disk can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:simpleapplicationserver/disk:Disk example \u003cdisk_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"diskName":{"type":"string","description":"The name of the resource.\n"},"diskSize":{"type":"integer","description":"disk size\n"},"instanceId":{"type":"string","description":"instance id\n"},"regionId":{"type":"string","description":"The region ID of the resource.\n"},"remark":{"type":"string","description":"Note information.\n"}},"required":["createTime","diskName","diskSize","instanceId","regionId"],"inputProperties":{"diskSize":{"type":"integer","description":"disk size\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"instance id\n","willReplaceOnChanges":true},"remark":{"type":"string","description":"Note information.\n"}},"requiredInputs":["diskSize","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Disk resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"diskName":{"type":"string","description":"The name of the resource.\n"},"diskSize":{"type":"integer","description":"disk size\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"instance id\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The region ID of the resource.\n"},"remark":{"type":"string","description":"Note information.\n"}},"type":"object"}},"alicloud:simpleapplicationserver/firewallRule:FirewallRule":{"description":"Provides a Simple Application Server Firewall Rule resource.\n\nFor information about Simple Application Server Firewall Rule and how to use it, see [What is Firewall Rule](https://www.alibabacloud.com/help/doc-detail/190449.htm).\n\n\u003e **NOTE:** Available since v1.143.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.simpleapplicationserver.getImages({});\nconst defaultGetServerPlans = alicloud.simpleapplicationserver.getServerPlans({});\nconst defaultInstance = new alicloud.simpleapplicationserver.Instance(\"default\", {\n    paymentType: \"Subscription\",\n    planId: defaultGetServerPlans.then(defaultGetServerPlans =\u003e defaultGetServerPlans.plans?.[0]?.id),\n    instanceName: name,\n    imageId: _default.then(_default =\u003e _default.images?.[0]?.id),\n    period: 1,\n    dataDiskSize: 100,\n});\nconst defaultFirewallRule = new alicloud.simpleapplicationserver.FirewallRule(\"default\", {\n    instanceId: defaultInstance.id,\n    ruleProtocol: \"Tcp\",\n    port: \"9999\",\n    remark: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.simpleapplicationserver.get_images()\ndefault_get_server_plans = alicloud.simpleapplicationserver.get_server_plans()\ndefault_instance = alicloud.simpleapplicationserver.Instance(\"default\",\n    payment_type=\"Subscription\",\n    plan_id=default_get_server_plans.plans[0].id,\n    instance_name=name,\n    image_id=default.images[0].id,\n    period=1,\n    data_disk_size=100)\ndefault_firewall_rule = alicloud.simpleapplicationserver.FirewallRule(\"default\",\n    instance_id=default_instance.id,\n    rule_protocol=\"Tcp\",\n    port=\"9999\",\n    remark=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.SimpleApplicationServer.GetImages.Invoke();\n\n    var defaultGetServerPlans = AliCloud.SimpleApplicationServer.GetServerPlans.Invoke();\n\n    var defaultInstance = new AliCloud.SimpleApplicationServer.Instance(\"default\", new()\n    {\n        PaymentType = \"Subscription\",\n        PlanId = defaultGetServerPlans.Apply(getServerPlansResult =\u003e getServerPlansResult.Plans[0]?.Id),\n        InstanceName = name,\n        ImageId = @default.Apply(@default =\u003e @default.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id)),\n        Period = 1,\n        DataDiskSize = 100,\n    });\n\n    var defaultFirewallRule = new AliCloud.SimpleApplicationServer.FirewallRule(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        RuleProtocol = \"Tcp\",\n        Port = \"9999\",\n        Remark = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/simpleapplicationserver\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := simpleapplicationserver.GetImages(ctx, \u0026simpleapplicationserver.GetImagesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetServerPlans, err := simpleapplicationserver.GetServerPlans(ctx, \u0026simpleapplicationserver.GetServerPlansArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := simpleapplicationserver.NewInstance(ctx, \"default\", \u0026simpleapplicationserver.InstanceArgs{\n\t\t\tPaymentType:  pulumi.String(\"Subscription\"),\n\t\t\tPlanId:       pulumi.String(defaultGetServerPlans.Plans[0].Id),\n\t\t\tInstanceName: pulumi.String(name),\n\t\t\tImageId:      pulumi.String(_default.Images[0].Id),\n\t\t\tPeriod:       pulumi.Int(1),\n\t\t\tDataDiskSize: pulumi.Int(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = simpleapplicationserver.NewFirewallRule(ctx, \"default\", \u0026simpleapplicationserver.FirewallRuleArgs{\n\t\t\tInstanceId:   defaultInstance.ID(),\n\t\t\tRuleProtocol: pulumi.String(\"Tcp\"),\n\t\t\tPort:         pulumi.String(\"9999\"),\n\t\t\tRemark:       pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.simpleapplicationserver.SimpleapplicationserverFunctions;\nimport com.pulumi.alicloud.simpleapplicationserver.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.simpleapplicationserver.inputs.GetServerPlansArgs;\nimport com.pulumi.alicloud.simpleapplicationserver.Instance;\nimport com.pulumi.alicloud.simpleapplicationserver.InstanceArgs;\nimport com.pulumi.alicloud.simpleapplicationserver.FirewallRule;\nimport com.pulumi.alicloud.simpleapplicationserver.FirewallRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = SimpleapplicationserverFunctions.getImages(GetImagesArgs.builder()\n            .build());\n\n        final var defaultGetServerPlans = SimpleapplicationserverFunctions.getServerPlans(GetServerPlansArgs.builder()\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .planId(defaultGetServerPlans.plans()[0].id())\n            .instanceName(name)\n            .imageId(default_.images()[0].id())\n            .period(1)\n            .dataDiskSize(100)\n            .build());\n\n        var defaultFirewallRule = new FirewallRule(\"defaultFirewallRule\", FirewallRuleArgs.builder()\n            .instanceId(defaultInstance.id())\n            .ruleProtocol(\"Tcp\")\n            .port(\"9999\")\n            .remark(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultInstance:\n    type: alicloud:simpleapplicationserver:Instance\n    name: default\n    properties:\n      paymentType: Subscription\n      planId: ${defaultGetServerPlans.plans[0].id}\n      instanceName: ${name}\n      imageId: ${default.images[0].id}\n      period: 1\n      dataDiskSize: 100\n  defaultFirewallRule:\n    type: alicloud:simpleapplicationserver:FirewallRule\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      ruleProtocol: Tcp\n      port: '9999'\n      remark: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getImages\n      arguments: {}\n  defaultGetServerPlans:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerPlans\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSimple Application Server Firewall Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:simpleapplicationserver/firewallRule:FirewallRule example \u003cinstance_id\u003e:\u003cfirewall_rule_id\u003e\n```\n\n","properties":{"firewallRuleId":{"type":"string","description":"The ID of the firewall rule.\n"},"instanceId":{"type":"string","description":"Alibaba Cloud simple application server instance ID.\n"},"port":{"type":"string","description":"The port range. Valid values of port numbers: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. Specify a port range in the format of `\u003cstart port number\u003e/\u003cend port number\u003e`. Example: `1024/1055`, which indicates the port range of \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e through \u003cspan pulumi-lang-nodejs=\"`1055`\" pulumi-lang-dotnet=\"`1055`\" pulumi-lang-go=\"`1055`\" pulumi-lang-python=\"`1055`\" pulumi-lang-yaml=\"`1055`\" pulumi-lang-java=\"`1055`\"\u003e`1055`\u003c/span\u003e.\n"},"remark":{"type":"string","description":"The remarks of the firewall rule.\n"},"ruleProtocol":{"type":"string","description":"The transport layer protocol. Valid values: `Tcp`, `Udp`, `TcpAndUdp`.\n"}},"required":["firewallRuleId","instanceId","port","ruleProtocol"],"inputProperties":{"instanceId":{"type":"string","description":"Alibaba Cloud simple application server instance ID.\n","willReplaceOnChanges":true},"port":{"type":"string","description":"The port range. Valid values of port numbers: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. Specify a port range in the format of `\u003cstart port number\u003e/\u003cend port number\u003e`. Example: `1024/1055`, which indicates the port range of \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e through \u003cspan pulumi-lang-nodejs=\"`1055`\" pulumi-lang-dotnet=\"`1055`\" pulumi-lang-go=\"`1055`\" pulumi-lang-python=\"`1055`\" pulumi-lang-yaml=\"`1055`\" pulumi-lang-java=\"`1055`\"\u003e`1055`\u003c/span\u003e.\n","willReplaceOnChanges":true},"remark":{"type":"string","description":"The remarks of the firewall rule.\n","willReplaceOnChanges":true},"ruleProtocol":{"type":"string","description":"The transport layer protocol. Valid values: `Tcp`, `Udp`, `TcpAndUdp`.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId","port","ruleProtocol"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallRule resources.\n","properties":{"firewallRuleId":{"type":"string","description":"The ID of the firewall rule.\n"},"instanceId":{"type":"string","description":"Alibaba Cloud simple application server instance ID.\n","willReplaceOnChanges":true},"port":{"type":"string","description":"The port range. Valid values of port numbers: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. Specify a port range in the format of `\u003cstart port number\u003e/\u003cend port number\u003e`. Example: `1024/1055`, which indicates the port range of \u003cspan pulumi-lang-nodejs=\"`1024`\" pulumi-lang-dotnet=\"`1024`\" pulumi-lang-go=\"`1024`\" pulumi-lang-python=\"`1024`\" pulumi-lang-yaml=\"`1024`\" pulumi-lang-java=\"`1024`\"\u003e`1024`\u003c/span\u003e through \u003cspan pulumi-lang-nodejs=\"`1055`\" pulumi-lang-dotnet=\"`1055`\" pulumi-lang-go=\"`1055`\" pulumi-lang-python=\"`1055`\" pulumi-lang-yaml=\"`1055`\" pulumi-lang-java=\"`1055`\"\u003e`1055`\u003c/span\u003e.\n","willReplaceOnChanges":true},"remark":{"type":"string","description":"The remarks of the firewall rule.\n","willReplaceOnChanges":true},"ruleProtocol":{"type":"string","description":"The transport layer protocol. Valid values: `Tcp`, `Udp`, `TcpAndUdp`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:simpleapplicationserver/instance:Instance":{"description":"Provides a Simple Application Server Instance resource.\n\nFor information about Simple Application Server Instance and how to use it, see [What is Instance](https://www.alibabacloud.com/help/doc-detail/190440.htm).\n\n\u003e **NOTE:** Available since v1.135.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.simpleapplicationserver.getImages({\n    platform: \"Linux\",\n});\nconst defaultGetServerPlans = alicloud.simpleapplicationserver.getServerPlans({\n    platform: \"Linux\",\n});\nconst defaultInstance = new alicloud.simpleapplicationserver.Instance(\"default\", {\n    paymentType: \"Subscription\",\n    planId: defaultGetServerPlans.then(defaultGetServerPlans =\u003e defaultGetServerPlans.plans?.[0]?.id),\n    instanceName: name,\n    imageId: _default.then(_default =\u003e _default.images?.[0]?.id),\n    period: 1,\n    dataDiskSize: 100,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.simpleapplicationserver.get_images(platform=\"Linux\")\ndefault_get_server_plans = alicloud.simpleapplicationserver.get_server_plans(platform=\"Linux\")\ndefault_instance = alicloud.simpleapplicationserver.Instance(\"default\",\n    payment_type=\"Subscription\",\n    plan_id=default_get_server_plans.plans[0].id,\n    instance_name=name,\n    image_id=default.images[0].id,\n    period=1,\n    data_disk_size=100)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.SimpleApplicationServer.GetImages.Invoke(new()\n    {\n        Platform = \"Linux\",\n    });\n\n    var defaultGetServerPlans = AliCloud.SimpleApplicationServer.GetServerPlans.Invoke(new()\n    {\n        Platform = \"Linux\",\n    });\n\n    var defaultInstance = new AliCloud.SimpleApplicationServer.Instance(\"default\", new()\n    {\n        PaymentType = \"Subscription\",\n        PlanId = defaultGetServerPlans.Apply(getServerPlansResult =\u003e getServerPlansResult.Plans[0]?.Id),\n        InstanceName = name,\n        ImageId = @default.Apply(@default =\u003e @default.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id)),\n        Period = 1,\n        DataDiskSize = 100,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/simpleapplicationserver\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := simpleapplicationserver.GetImages(ctx, \u0026simpleapplicationserver.GetImagesArgs{\n\t\t\tPlatform: pulumi.StringRef(\"Linux\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetServerPlans, err := simpleapplicationserver.GetServerPlans(ctx, \u0026simpleapplicationserver.GetServerPlansArgs{\n\t\t\tPlatform: pulumi.StringRef(\"Linux\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = simpleapplicationserver.NewInstance(ctx, \"default\", \u0026simpleapplicationserver.InstanceArgs{\n\t\t\tPaymentType:  pulumi.String(\"Subscription\"),\n\t\t\tPlanId:       pulumi.String(defaultGetServerPlans.Plans[0].Id),\n\t\t\tInstanceName: pulumi.String(name),\n\t\t\tImageId:      pulumi.String(_default.Images[0].Id),\n\t\t\tPeriod:       pulumi.Int(1),\n\t\t\tDataDiskSize: pulumi.Int(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.simpleapplicationserver.SimpleapplicationserverFunctions;\nimport com.pulumi.alicloud.simpleapplicationserver.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.simpleapplicationserver.inputs.GetServerPlansArgs;\nimport com.pulumi.alicloud.simpleapplicationserver.Instance;\nimport com.pulumi.alicloud.simpleapplicationserver.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = SimpleapplicationserverFunctions.getImages(GetImagesArgs.builder()\n            .platform(\"Linux\")\n            .build());\n\n        final var defaultGetServerPlans = SimpleapplicationserverFunctions.getServerPlans(GetServerPlansArgs.builder()\n            .platform(\"Linux\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .planId(defaultGetServerPlans.plans()[0].id())\n            .instanceName(name)\n            .imageId(default_.images()[0].id())\n            .period(1)\n            .dataDiskSize(100)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultInstance:\n    type: alicloud:simpleapplicationserver:Instance\n    name: default\n    properties:\n      paymentType: Subscription\n      planId: ${defaultGetServerPlans.plans[0].id}\n      instanceName: ${name}\n      imageId: ${default.images[0].id}\n      period: 1\n      dataDiskSize: 100\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getImages\n      arguments:\n        platform: Linux\n  defaultGetServerPlans:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerPlans\n      arguments:\n        platform: Linux\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.simpleapplicationserver.Instance`\" pulumi-lang-dotnet=\"`alicloud.simpleapplicationserver.Instance`\" pulumi-lang-go=\"`simpleapplicationserver.Instance`\" pulumi-lang-python=\"`simpleapplicationserver.Instance`\" pulumi-lang-yaml=\"`alicloud.simpleapplicationserver.Instance`\" pulumi-lang-java=\"`alicloud.simpleapplicationserver.Instance`\"\u003e`alicloud.simpleapplicationserver.Instance`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.simpleapplicationserver.Instance`\" pulumi-lang-dotnet=\"`alicloud.simpleapplicationserver.Instance`\" pulumi-lang-go=\"`simpleapplicationserver.Instance`\" pulumi-lang-python=\"`simpleapplicationserver.Instance`\" pulumi-lang-yaml=\"`alicloud.simpleapplicationserver.Instance`\" pulumi-lang-java=\"`alicloud.simpleapplicationserver.Instance`\"\u003e`alicloud.simpleapplicationserver.Instance`\u003c/span\u003e resource allows you to manage \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"Subscription\"` instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the resource Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSimple Application Server Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:simpleapplicationserver/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"autoRenew":{"type":"boolean","description":"Specifies whether to enable auto-renewal. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"The auto renew period. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e is valid when the attribute is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"dataDiskSize":{"type":"integer","description":"The size of the data disk. Unit: GB. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`16380`\" pulumi-lang-dotnet=\"`16380`\" pulumi-lang-go=\"`16380`\" pulumi-lang-python=\"`16380`\" pulumi-lang-yaml=\"`16380`\" pulumi-lang-java=\"`16380`\"\u003e`16380`\u003c/span\u003e.\n"},"imageId":{"type":"string","description":"The ID of the image.  You can use the \u003cspan pulumi-lang-nodejs=\"`alicloud.simpleapplicationserver.getImages`\" pulumi-lang-dotnet=\"`alicloud.simpleapplicationserver.getImages`\" pulumi-lang-go=\"`simpleapplicationserver.getImages`\" pulumi-lang-python=\"`simpleapplicationserver_get_images`\" pulumi-lang-yaml=\"`alicloud.simpleapplicationserver.getImages`\" pulumi-lang-java=\"`alicloud.simpleapplicationserver.getImages`\"\u003e`alicloud.simpleapplicationserver.getImages`\u003c/span\u003e to query the available images in the specified region. The value must be an integral multiple of 20.\n"},"instanceName":{"type":"string","description":"The name of the simple application server.\n"},"password":{"type":"string","description":"The password of the simple application server. The password must be 8 to 30 characters in length. It must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include: `( ) ~ ! @ # $ % ^ \u0026 * - + = | { } [ ] : ; \u003c \u003e , . ? /`.\n"},"paymentType":{"type":"string","description":"The paymen type of the resource. Valid values: `Subscription`.\n"},"period":{"type":"integer","description":"The period. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e.\n"},"planId":{"type":"string","description":"The ID of the plan. You can use the \u003cspan pulumi-lang-nodejs=\"`alicloud.simpleapplicationserver.getServerPlans`\" pulumi-lang-dotnet=\"`alicloud.simpleapplicationserver.getServerPlans`\" pulumi-lang-go=\"`simpleapplicationserver.getServerPlans`\" pulumi-lang-python=\"`simpleapplicationserver_get_server_plans`\" pulumi-lang-yaml=\"`alicloud.simpleapplicationserver.getServerPlans`\" pulumi-lang-java=\"`alicloud.simpleapplicationserver.getServerPlans`\"\u003e`alicloud.simpleapplicationserver.getServerPlans`\u003c/span\u003e  to query all the plans provided by Simple Application Server in the specified region.\n"},"status":{"type":"string","description":"The status of the simple application server. Valid values: `Resetting`, `Running`, `Stopped`.\n"}},"required":["imageId","paymentType","period","planId","status"],"inputProperties":{"autoRenew":{"type":"boolean","description":"Specifies whether to enable auto-renewal. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"The auto renew period. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e is valid when the attribute is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"dataDiskSize":{"type":"integer","description":"The size of the data disk. Unit: GB. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`16380`\" pulumi-lang-dotnet=\"`16380`\" pulumi-lang-go=\"`16380`\" pulumi-lang-python=\"`16380`\" pulumi-lang-yaml=\"`16380`\" pulumi-lang-java=\"`16380`\"\u003e`16380`\u003c/span\u003e.\n"},"imageId":{"type":"string","description":"The ID of the image.  You can use the \u003cspan pulumi-lang-nodejs=\"`alicloud.simpleapplicationserver.getImages`\" pulumi-lang-dotnet=\"`alicloud.simpleapplicationserver.getImages`\" pulumi-lang-go=\"`simpleapplicationserver.getImages`\" pulumi-lang-python=\"`simpleapplicationserver_get_images`\" pulumi-lang-yaml=\"`alicloud.simpleapplicationserver.getImages`\" pulumi-lang-java=\"`alicloud.simpleapplicationserver.getImages`\"\u003e`alicloud.simpleapplicationserver.getImages`\u003c/span\u003e to query the available images in the specified region. The value must be an integral multiple of 20.\n"},"instanceName":{"type":"string","description":"The name of the simple application server.\n"},"password":{"type":"string","description":"The password of the simple application server. The password must be 8 to 30 characters in length. It must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include: `( ) ~ ! @ # $ % ^ \u0026 * - + = | { } [ ] : ; \u003c \u003e , . ? /`.\n"},"paymentType":{"type":"string","description":"The paymen type of the resource. Valid values: `Subscription`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The period. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e.\n"},"planId":{"type":"string","description":"The ID of the plan. You can use the \u003cspan pulumi-lang-nodejs=\"`alicloud.simpleapplicationserver.getServerPlans`\" pulumi-lang-dotnet=\"`alicloud.simpleapplicationserver.getServerPlans`\" pulumi-lang-go=\"`simpleapplicationserver.getServerPlans`\" pulumi-lang-python=\"`simpleapplicationserver_get_server_plans`\" pulumi-lang-yaml=\"`alicloud.simpleapplicationserver.getServerPlans`\" pulumi-lang-java=\"`alicloud.simpleapplicationserver.getServerPlans`\"\u003e`alicloud.simpleapplicationserver.getServerPlans`\u003c/span\u003e  to query all the plans provided by Simple Application Server in the specified region.\n"},"status":{"type":"string","description":"The status of the simple application server. Valid values: `Resetting`, `Running`, `Stopped`.\n"}},"requiredInputs":["imageId","period","planId"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"autoRenew":{"type":"boolean","description":"Specifies whether to enable auto-renewal. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoRenewPeriod":{"type":"integer","description":"The auto renew period. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e. **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`autoRenew`\" pulumi-lang-dotnet=\"`AutoRenew`\" pulumi-lang-go=\"`autoRenew`\" pulumi-lang-python=\"`auto_renew`\" pulumi-lang-yaml=\"`autoRenew`\" pulumi-lang-java=\"`autoRenew`\"\u003e`auto_renew`\u003c/span\u003e is valid when the attribute is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"dataDiskSize":{"type":"integer","description":"The size of the data disk. Unit: GB. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`16380`\" pulumi-lang-dotnet=\"`16380`\" pulumi-lang-go=\"`16380`\" pulumi-lang-python=\"`16380`\" pulumi-lang-yaml=\"`16380`\" pulumi-lang-java=\"`16380`\"\u003e`16380`\u003c/span\u003e.\n"},"imageId":{"type":"string","description":"The ID of the image.  You can use the \u003cspan pulumi-lang-nodejs=\"`alicloud.simpleapplicationserver.getImages`\" pulumi-lang-dotnet=\"`alicloud.simpleapplicationserver.getImages`\" pulumi-lang-go=\"`simpleapplicationserver.getImages`\" pulumi-lang-python=\"`simpleapplicationserver_get_images`\" pulumi-lang-yaml=\"`alicloud.simpleapplicationserver.getImages`\" pulumi-lang-java=\"`alicloud.simpleapplicationserver.getImages`\"\u003e`alicloud.simpleapplicationserver.getImages`\u003c/span\u003e to query the available images in the specified region. The value must be an integral multiple of 20.\n"},"instanceName":{"type":"string","description":"The name of the simple application server.\n"},"password":{"type":"string","description":"The password of the simple application server. The password must be 8 to 30 characters in length. It must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include: `( ) ~ ! @ # $ % ^ \u0026 * - + = | { } [ ] : ; \u003c \u003e , . ? /`.\n"},"paymentType":{"type":"string","description":"The paymen type of the resource. Valid values: `Subscription`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The period. Unit: months. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`36`\" pulumi-lang-dotnet=\"`36`\" pulumi-lang-go=\"`36`\" pulumi-lang-python=\"`36`\" pulumi-lang-yaml=\"`36`\" pulumi-lang-java=\"`36`\"\u003e`36`\u003c/span\u003e.\n"},"planId":{"type":"string","description":"The ID of the plan. You can use the \u003cspan pulumi-lang-nodejs=\"`alicloud.simpleapplicationserver.getServerPlans`\" pulumi-lang-dotnet=\"`alicloud.simpleapplicationserver.getServerPlans`\" pulumi-lang-go=\"`simpleapplicationserver.getServerPlans`\" pulumi-lang-python=\"`simpleapplicationserver_get_server_plans`\" pulumi-lang-yaml=\"`alicloud.simpleapplicationserver.getServerPlans`\" pulumi-lang-java=\"`alicloud.simpleapplicationserver.getServerPlans`\"\u003e`alicloud.simpleapplicationserver.getServerPlans`\u003c/span\u003e  to query all the plans provided by Simple Application Server in the specified region.\n"},"status":{"type":"string","description":"The status of the simple application server. Valid values: `Resetting`, `Running`, `Stopped`.\n"}},"type":"object"}},"alicloud:simpleapplicationserver/snapshot:Snapshot":{"description":"Provides a Simple Application Server Snapshot resource.\n\nFor information about Simple Application Server Snapshot and how to use it, see [What is Snapshot](https://www.alibabacloud.com/help/doc-detail/190452.htm).\n\n\u003e **NOTE:** Available since v1.143.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.simpleapplicationserver.getImages({\n    platform: \"Linux\",\n});\nconst defaultGetServerPlans = alicloud.simpleapplicationserver.getServerPlans({\n    platform: \"Linux\",\n});\nconst defaultInstance = new alicloud.simpleapplicationserver.Instance(\"default\", {\n    paymentType: \"Subscription\",\n    planId: defaultGetServerPlans.then(defaultGetServerPlans =\u003e defaultGetServerPlans.plans?.[0]?.id),\n    instanceName: name,\n    imageId: _default.then(_default =\u003e _default.images?.[0]?.id),\n    period: 1,\n    dataDiskSize: 100,\n});\nconst defaultGetServerDisks = alicloud.simpleapplicationserver.getServerDisksOutput({\n    instanceId: defaultInstance.id,\n});\nconst defaultSnapshot = new alicloud.simpleapplicationserver.Snapshot(\"default\", {\n    diskId: defaultGetServerDisks.apply(defaultGetServerDisks =\u003e defaultGetServerDisks.ids?.[0]),\n    snapshotName: `${name}-${defaultInteger.result}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.simpleapplicationserver.get_images(platform=\"Linux\")\ndefault_get_server_plans = alicloud.simpleapplicationserver.get_server_plans(platform=\"Linux\")\ndefault_instance = alicloud.simpleapplicationserver.Instance(\"default\",\n    payment_type=\"Subscription\",\n    plan_id=default_get_server_plans.plans[0].id,\n    instance_name=name,\n    image_id=default.images[0].id,\n    period=1,\n    data_disk_size=100)\ndefault_get_server_disks = alicloud.simpleapplicationserver.get_server_disks_output(instance_id=default_instance.id)\ndefault_snapshot = alicloud.simpleapplicationserver.Snapshot(\"default\",\n    disk_id=default_get_server_disks.ids[0],\n    snapshot_name=f\"{name}-{default_integer['result']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.SimpleApplicationServer.GetImages.Invoke(new()\n    {\n        Platform = \"Linux\",\n    });\n\n    var defaultGetServerPlans = AliCloud.SimpleApplicationServer.GetServerPlans.Invoke(new()\n    {\n        Platform = \"Linux\",\n    });\n\n    var defaultInstance = new AliCloud.SimpleApplicationServer.Instance(\"default\", new()\n    {\n        PaymentType = \"Subscription\",\n        PlanId = defaultGetServerPlans.Apply(getServerPlansResult =\u003e getServerPlansResult.Plans[0]?.Id),\n        InstanceName = name,\n        ImageId = @default.Apply(@default =\u003e @default.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id)),\n        Period = 1,\n        DataDiskSize = 100,\n    });\n\n    var defaultGetServerDisks = AliCloud.SimpleApplicationServer.GetServerDisks.Invoke(new()\n    {\n        InstanceId = defaultInstance.Id,\n    });\n\n    var defaultSnapshot = new AliCloud.SimpleApplicationServer.Snapshot(\"default\", new()\n    {\n        DiskId = defaultGetServerDisks.Apply(getServerDisksResult =\u003e getServerDisksResult.Ids[0]),\n        SnapshotName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/simpleapplicationserver\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := simpleapplicationserver.GetImages(ctx, \u0026simpleapplicationserver.GetImagesArgs{\n\t\t\tPlatform: pulumi.StringRef(\"Linux\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetServerPlans, err := simpleapplicationserver.GetServerPlans(ctx, \u0026simpleapplicationserver.GetServerPlansArgs{\n\t\t\tPlatform: pulumi.StringRef(\"Linux\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := simpleapplicationserver.NewInstance(ctx, \"default\", \u0026simpleapplicationserver.InstanceArgs{\n\t\t\tPaymentType:  pulumi.String(\"Subscription\"),\n\t\t\tPlanId:       pulumi.String(defaultGetServerPlans.Plans[0].Id),\n\t\t\tInstanceName: pulumi.String(name),\n\t\t\tImageId:      pulumi.String(_default.Images[0].Id),\n\t\t\tPeriod:       pulumi.Int(1),\n\t\t\tDataDiskSize: pulumi.Int(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetServerDisks := simpleapplicationserver.GetServerDisksOutput(ctx, simpleapplicationserver.GetServerDisksOutputArgs{\n\t\t\tInstanceId: defaultInstance.ID(),\n\t\t}, nil)\n\t\t_, err = simpleapplicationserver.NewSnapshot(ctx, \"default\", \u0026simpleapplicationserver.SnapshotArgs{\n\t\t\tDiskId: pulumi.String(defaultGetServerDisks.ApplyT(func(defaultGetServerDisks simpleapplicationserver.GetServerDisksResult) (*string, error) {\n\t\t\t\treturn \u0026defaultGetServerDisks.Ids[0], nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tSnapshotName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.simpleapplicationserver.SimpleapplicationserverFunctions;\nimport com.pulumi.alicloud.simpleapplicationserver.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.simpleapplicationserver.inputs.GetServerPlansArgs;\nimport com.pulumi.alicloud.simpleapplicationserver.Instance;\nimport com.pulumi.alicloud.simpleapplicationserver.InstanceArgs;\nimport com.pulumi.alicloud.simpleapplicationserver.inputs.GetServerDisksArgs;\nimport com.pulumi.alicloud.simpleapplicationserver.Snapshot;\nimport com.pulumi.alicloud.simpleapplicationserver.SnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = SimpleapplicationserverFunctions.getImages(GetImagesArgs.builder()\n            .platform(\"Linux\")\n            .build());\n\n        final var defaultGetServerPlans = SimpleapplicationserverFunctions.getServerPlans(GetServerPlansArgs.builder()\n            .platform(\"Linux\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .paymentType(\"Subscription\")\n            .planId(defaultGetServerPlans.plans()[0].id())\n            .instanceName(name)\n            .imageId(default_.images()[0].id())\n            .period(1)\n            .dataDiskSize(100)\n            .build());\n\n        final var defaultGetServerDisks = SimpleapplicationserverFunctions.getServerDisks(GetServerDisksArgs.builder()\n            .instanceId(defaultInstance.id())\n            .build());\n\n        var defaultSnapshot = new Snapshot(\"defaultSnapshot\", SnapshotArgs.builder()\n            .diskId(defaultGetServerDisks.applyValue(_defaultGetServerDisks -\u003e _defaultGetServerDisks.ids()[0]))\n            .snapshotName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultInstance:\n    type: alicloud:simpleapplicationserver:Instance\n    name: default\n    properties:\n      paymentType: Subscription\n      planId: ${defaultGetServerPlans.plans[0].id}\n      instanceName: ${name}\n      imageId: ${default.images[0].id}\n      period: 1\n      dataDiskSize: 100\n  defaultSnapshot:\n    type: alicloud:simpleapplicationserver:Snapshot\n    name: default\n    properties:\n      diskId: ${defaultGetServerDisks.ids[0]}\n      snapshotName: ${name}-${defaultInteger.result}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getImages\n      arguments:\n        platform: Linux\n  defaultGetServerPlans:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerPlans\n      arguments:\n        platform: Linux\n  defaultGetServerDisks:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerDisks\n      arguments:\n        instanceId: ${defaultInstance.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSimple Application Server Snapshot can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:simpleapplicationserver/snapshot:Snapshot example \u003cid\u003e\n```\n\n","properties":{"diskId":{"type":"string","description":"The ID of the disk.\n"},"snapshotName":{"type":"string","description":"The name of the snapshot. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), periods (.),and hyphens (-).\n"},"status":{"type":"string","description":"The status of the snapshot. Valid values: `Progressing`, `Accomplished` and `Failed`.\n"}},"required":["diskId","snapshotName","status"],"inputProperties":{"diskId":{"type":"string","description":"The ID of the disk.\n","willReplaceOnChanges":true},"snapshotName":{"type":"string","description":"The name of the snapshot. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), periods (.),and hyphens (-).\n","willReplaceOnChanges":true}},"requiredInputs":["diskId","snapshotName"],"stateInputs":{"description":"Input properties used for looking up and filtering Snapshot resources.\n","properties":{"diskId":{"type":"string","description":"The ID of the disk.\n","willReplaceOnChanges":true},"snapshotName":{"type":"string","description":"The name of the snapshot. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`50`\" pulumi-lang-dotnet=\"`50`\" pulumi-lang-go=\"`50`\" pulumi-lang-python=\"`50`\" pulumi-lang-yaml=\"`50`\" pulumi-lang-java=\"`50`\"\u003e`50`\u003c/span\u003e characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (_), periods (.),and hyphens (-).\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the snapshot. Valid values: `Progressing`, `Accomplished` and `Failed`.\n"}},"type":"object"}},"alicloud:slb/acl:Acl":{"description":"An access control list contains multiple IP addresses or CIDR blocks.\nThe access control list can help you to define multiple instance listening dimension,\nand to meet the multiple usage for single access control list.\n\nServer Load Balancer allows you to configure access control for listeners.\nYou can configure different whitelists or blacklists for different listeners.\n\nYou can configure access control\nwhen you create a listener or change access control configuration after a listener is created.\n\n\u003e **NOTE:** One access control list can be attached to many Listeners in different load balancer as whitelists or blacklists.\n\n\u003e **NOTE:** The maximum number of access control lists per region  is 50.\n\n\u003e **NOTE:** The maximum number of IP addresses added each time is 50.\n\n\u003e **NOTE:** The maximum number of entries per access control list is 300.\n\n\u003e **NOTE:** The maximum number of listeners that an access control list can be added to is 50.\n\nFor information about slb and how to use it, see [What is Server Load Balancer](https://www.alibabacloud.com/help/doc-detail/27539.htm).\n\nFor information about acl and how to use it, see [Configure an access control list](https://www.alibabacloud.com/help/doc-detail/70015.htm).\n\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst acl = new alicloud.slb.Acl(\"acl\", {\n    name: \"terraformslbaclconfig\",\n    ipVersion: \"ipv4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nacl = alicloud.slb.Acl(\"acl\",\n    name=\"terraformslbaclconfig\",\n    ip_version=\"ipv4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var acl = new AliCloud.Slb.Acl(\"acl\", new()\n    {\n        Name = \"terraformslbaclconfig\",\n        IpVersion = \"ipv4\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := slb.NewAcl(ctx, \"acl\", \u0026slb.AclArgs{\n\t\t\tName:      pulumi.String(\"terraformslbaclconfig\"),\n\t\t\tIpVersion: pulumi.String(\"ipv4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.Acl;\nimport com.pulumi.alicloud.slb.AclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var acl = new Acl(\"acl\", AclArgs.builder()\n            .name(\"terraformslbaclconfig\")\n            .ipVersion(\"ipv4\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  acl:\n    type: alicloud:slb:Acl\n    properties:\n      name: terraformslbaclconfig\n      ipVersion: ipv4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Entry Block\n\nThe entry mapping supports the following:\n\n* \u003cspan pulumi-lang-nodejs=\"`entry`\" pulumi-lang-dotnet=\"`Entry`\" pulumi-lang-go=\"`entry`\" pulumi-lang-python=\"`entry`\" pulumi-lang-yaml=\"`entry`\" pulumi-lang-java=\"`entry`\"\u003e`entry`\u003c/span\u003e - (Optional, Computed) The CIDR blocks.\n* \u003cspan pulumi-lang-nodejs=\"`comment`\" pulumi-lang-dotnet=\"`Comment`\" pulumi-lang-go=\"`comment`\" pulumi-lang-python=\"`comment`\" pulumi-lang-yaml=\"`comment`\" pulumi-lang-java=\"`comment`\"\u003e`comment`\u003c/span\u003e - (Optional, Computed) The comment of the entry.\n\n## Import\n\nServer Load balancer access control list can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:slb/acl:Acl example acl-abc123456\n```\n\n","properties":{"entryLists":{"type":"array","items":{"$ref":"#/types/alicloud:slb/AclEntryList:AclEntryList"},"description":"A list of entry (CIDR blocks) to be added. It contains two sub-fields as `Entry Block` follows. **NOTE:** \"Field 'entry_list' has been deprecated from provider version 1.162.0 and it will be removed in the future version. Please use the new resource 'alicloud_slb_acl_entry_attachment'.\",\n","deprecationMessage":"Field 'entry_list' has been deprecated from provider version 1.162.0 and it will be removed in the future version. Please use the new resource 'alicloud_slb_acl_entry_attachment'."},"ipVersion":{"type":"string","description":"The IP Version of access control list is the type of its entry (IP addresses or CIDR blocks). It values ipv4/ipv6. Our plugin provides a default ip_version: \"ipv4\".\n"},"name":{"type":"string","description":"Name of the access control list.\n"},"resourceGroupId":{"type":"string","description":"Resource group ID.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["entryLists","name","resourceGroupId"],"inputProperties":{"entryLists":{"type":"array","items":{"$ref":"#/types/alicloud:slb/AclEntryList:AclEntryList"},"description":"A list of entry (CIDR blocks) to be added. It contains two sub-fields as `Entry Block` follows. **NOTE:** \"Field 'entry_list' has been deprecated from provider version 1.162.0 and it will be removed in the future version. Please use the new resource 'alicloud_slb_acl_entry_attachment'.\",\n","deprecationMessage":"Field 'entry_list' has been deprecated from provider version 1.162.0 and it will be removed in the future version. Please use the new resource 'alicloud_slb_acl_entry_attachment'."},"ipVersion":{"type":"string","description":"The IP Version of access control list is the type of its entry (IP addresses or CIDR blocks). It values ipv4/ipv6. Our plugin provides a default ip_version: \"ipv4\".\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the access control list.\n"},"resourceGroupId":{"type":"string","description":"Resource group ID.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Acl resources.\n","properties":{"entryLists":{"type":"array","items":{"$ref":"#/types/alicloud:slb/AclEntryList:AclEntryList"},"description":"A list of entry (CIDR blocks) to be added. It contains two sub-fields as `Entry Block` follows. **NOTE:** \"Field 'entry_list' has been deprecated from provider version 1.162.0 and it will be removed in the future version. Please use the new resource 'alicloud_slb_acl_entry_attachment'.\",\n","deprecationMessage":"Field 'entry_list' has been deprecated from provider version 1.162.0 and it will be removed in the future version. Please use the new resource 'alicloud_slb_acl_entry_attachment'."},"ipVersion":{"type":"string","description":"The IP Version of access control list is the type of its entry (IP addresses or CIDR blocks). It values ipv4/ipv6. Our plugin provides a default ip_version: \"ipv4\".\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the access control list.\n"},"resourceGroupId":{"type":"string","description":"Resource group ID.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:slb/aclEntryAttachment:AclEntryAttachment":{"description":"\u003e **NOTE:** Available since v1.162.0.\n\n\u003e **NOTE:** The maximum number of entries per acl is 300.\n\nFor information about acl entry attachment and how to use it, see [Configure an acl entry](https://www.alibabacloud.com/help/en/doc-detail/70023.html).\n\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst attachment = new alicloud.slb.Acl(\"attachment\", {\n    name: \"forSlbAclEntryAttachment\",\n    ipVersion: \"ipv4\",\n});\nconst attachmentAclEntryAttachment = new alicloud.slb.AclEntryAttachment(\"attachment\", {\n    aclId: attachment.id,\n    entry: \"168.10.10.0/24\",\n    comment: \"second\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nattachment = alicloud.slb.Acl(\"attachment\",\n    name=\"forSlbAclEntryAttachment\",\n    ip_version=\"ipv4\")\nattachment_acl_entry_attachment = alicloud.slb.AclEntryAttachment(\"attachment\",\n    acl_id=attachment.id,\n    entry=\"168.10.10.0/24\",\n    comment=\"second\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var attachment = new AliCloud.Slb.Acl(\"attachment\", new()\n    {\n        Name = \"forSlbAclEntryAttachment\",\n        IpVersion = \"ipv4\",\n    });\n\n    var attachmentAclEntryAttachment = new AliCloud.Slb.AclEntryAttachment(\"attachment\", new()\n    {\n        AclId = attachment.Id,\n        Entry = \"168.10.10.0/24\",\n        Comment = \"second\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tattachment, err := slb.NewAcl(ctx, \"attachment\", \u0026slb.AclArgs{\n\t\t\tName:      pulumi.String(\"forSlbAclEntryAttachment\"),\n\t\t\tIpVersion: pulumi.String(\"ipv4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = slb.NewAclEntryAttachment(ctx, \"attachment\", \u0026slb.AclEntryAttachmentArgs{\n\t\t\tAclId:   attachment.ID(),\n\t\t\tEntry:   pulumi.String(\"168.10.10.0/24\"),\n\t\t\tComment: pulumi.String(\"second\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.Acl;\nimport com.pulumi.alicloud.slb.AclArgs;\nimport com.pulumi.alicloud.slb.AclEntryAttachment;\nimport com.pulumi.alicloud.slb.AclEntryAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var attachment = new Acl(\"attachment\", AclArgs.builder()\n            .name(\"forSlbAclEntryAttachment\")\n            .ipVersion(\"ipv4\")\n            .build());\n\n        var attachmentAclEntryAttachment = new AclEntryAttachment(\"attachmentAclEntryAttachment\", AclEntryAttachmentArgs.builder()\n            .aclId(attachment.id())\n            .entry(\"168.10.10.0/24\")\n            .comment(\"second\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  attachment:\n    type: alicloud:slb:Acl\n    properties:\n      name: forSlbAclEntryAttachment\n      ipVersion: ipv4\n  attachmentAclEntryAttachment:\n    type: alicloud:slb:AclEntryAttachment\n    name: attachment\n    properties:\n      aclId: ${attachment.id}\n      entry: 168.10.10.0/24\n      comment: second\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nAcl entry attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:slb/aclEntryAttachment:AclEntryAttachment example \u003cacl_id\u003e:\u003centry\u003e\n```\n\n","properties":{"aclId":{"type":"string","description":"The ID of the Acl.\n"},"comment":{"type":"string","description":"The comment of the entry.\n"},"entry":{"type":"string","description":"The CIDR blocks.\n"}},"required":["aclId","entry"],"inputProperties":{"aclId":{"type":"string","description":"The ID of the Acl.\n","willReplaceOnChanges":true},"comment":{"type":"string","description":"The comment of the entry.\n","willReplaceOnChanges":true},"entry":{"type":"string","description":"The CIDR blocks.\n","willReplaceOnChanges":true}},"requiredInputs":["aclId","entry"],"stateInputs":{"description":"Input properties used for looking up and filtering AclEntryAttachment resources.\n","properties":{"aclId":{"type":"string","description":"The ID of the Acl.\n","willReplaceOnChanges":true},"comment":{"type":"string","description":"The comment of the entry.\n","willReplaceOnChanges":true},"entry":{"type":"string","description":"The CIDR blocks.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:slb/applicationLoadBalancer:ApplicationLoadBalancer":{"description":"Provides an Application Load Balancer resource.\n\n\u003e **NOTE:** Available since v1.123.1.\n\n\u003e **NOTE:** At present, to avoid some unnecessary regulation confusion, SLB can not support alicloud international account to create `PayByBandwidth` instance.\n\n\u003e **NOTE:** The supported specifications vary by region. Currently, not all regions support guaranteed-performance instances.\nFor more details about guaranteed-performance instance, see [Guaranteed-performance instances](https://www.alibabacloud.com/help/en/server-load-balancer/latest/createloadbalancer-2#t4182.html).\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst slbLoadBalancerName = config.get(\"slbLoadBalancerName\") || \"forSlbLoadBalancer\";\nconst loadBalancer = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst loadBalancerNetwork = new alicloud.vpc.Network(\"load_balancer\", {vpcName: slbLoadBalancerName});\nconst loadBalancerSwitch = new alicloud.vpc.Switch(\"load_balancer\", {\n    vpcId: loadBalancerNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: loadBalancer.then(loadBalancer =\u003e loadBalancer.zones?.[0]?.id),\n    vswitchName: slbLoadBalancerName,\n});\nconst loadBalancerApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"load_balancer\", {\n    loadBalancerName: slbLoadBalancerName,\n    addressType: \"intranet\",\n    loadBalancerSpec: \"slb.s2.small\",\n    vswitchId: loadBalancerSwitch.id,\n    tags: {\n        info: \"create for internet\",\n    },\n    instanceChargeType: \"PayBySpec\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nslb_load_balancer_name = config.get(\"slbLoadBalancerName\")\nif slb_load_balancer_name is None:\n    slb_load_balancer_name = \"forSlbLoadBalancer\"\nload_balancer = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nload_balancer_network = alicloud.vpc.Network(\"load_balancer\", vpc_name=slb_load_balancer_name)\nload_balancer_switch = alicloud.vpc.Switch(\"load_balancer\",\n    vpc_id=load_balancer_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=load_balancer.zones[0].id,\n    vswitch_name=slb_load_balancer_name)\nload_balancer_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"load_balancer\",\n    load_balancer_name=slb_load_balancer_name,\n    address_type=\"intranet\",\n    load_balancer_spec=\"slb.s2.small\",\n    vswitch_id=load_balancer_switch.id,\n    tags={\n        \"info\": \"create for internet\",\n    },\n    instance_charge_type=\"PayBySpec\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var slbLoadBalancerName = config.Get(\"slbLoadBalancerName\") ?? \"forSlbLoadBalancer\";\n    var loadBalancer = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var loadBalancerNetwork = new AliCloud.Vpc.Network(\"load_balancer\", new()\n    {\n        VpcName = slbLoadBalancerName,\n    });\n\n    var loadBalancerSwitch = new AliCloud.Vpc.Switch(\"load_balancer\", new()\n    {\n        VpcId = loadBalancerNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = loadBalancer.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = slbLoadBalancerName,\n    });\n\n    var loadBalancerApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"load_balancer\", new()\n    {\n        LoadBalancerName = slbLoadBalancerName,\n        AddressType = \"intranet\",\n        LoadBalancerSpec = \"slb.s2.small\",\n        VswitchId = loadBalancerSwitch.Id,\n        Tags = \n        {\n            { \"info\", \"create for internet\" },\n        },\n        InstanceChargeType = \"PayBySpec\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tslbLoadBalancerName := \"forSlbLoadBalancer\"\n\t\tif param := cfg.Get(\"slbLoadBalancerName\"); param != \"\" {\n\t\t\tslbLoadBalancerName = param\n\t\t}\n\t\tloadBalancer, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tloadBalancerNetwork, err := vpc.NewNetwork(ctx, \"load_balancer\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName: pulumi.String(slbLoadBalancerName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tloadBalancerSwitch, err := vpc.NewSwitch(ctx, \"load_balancer\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       loadBalancerNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(loadBalancer.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(slbLoadBalancerName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = slb.NewApplicationLoadBalancer(ctx, \"load_balancer\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(slbLoadBalancerName),\n\t\t\tAddressType:      pulumi.String(\"intranet\"),\n\t\t\tLoadBalancerSpec: pulumi.String(\"slb.s2.small\"),\n\t\t\tVswitchId:        loadBalancerSwitch.ID(),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"info\": pulumi.String(\"create for internet\"),\n\t\t\t},\n\t\t\tInstanceChargeType: pulumi.String(\"PayBySpec\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var slbLoadBalancerName = config.get(\"slbLoadBalancerName\").orElse(\"forSlbLoadBalancer\");\n        final var loadBalancer = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var loadBalancerNetwork = new Network(\"loadBalancerNetwork\", NetworkArgs.builder()\n            .vpcName(slbLoadBalancerName)\n            .build());\n\n        var loadBalancerSwitch = new Switch(\"loadBalancerSwitch\", SwitchArgs.builder()\n            .vpcId(loadBalancerNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(loadBalancer.zones()[0].id())\n            .vswitchName(slbLoadBalancerName)\n            .build());\n\n        var loadBalancerApplicationLoadBalancer = new ApplicationLoadBalancer(\"loadBalancerApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(slbLoadBalancerName)\n            .addressType(\"intranet\")\n            .loadBalancerSpec(\"slb.s2.small\")\n            .vswitchId(loadBalancerSwitch.id())\n            .tags(Map.of(\"info\", \"create for internet\"))\n            .instanceChargeType(\"PayBySpec\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  # Create a intranet SLB instance\n  slbLoadBalancerName:\n    type: string\n    default: forSlbLoadBalancer\nresources:\n  loadBalancerNetwork:\n    type: alicloud:vpc:Network\n    name: load_balancer\n    properties:\n      vpcName: ${slbLoadBalancerName}\n  loadBalancerSwitch:\n    type: alicloud:vpc:Switch\n    name: load_balancer\n    properties:\n      vpcId: ${loadBalancerNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${loadBalancer.zones[0].id}\n      vswitchName: ${slbLoadBalancerName}\n  loadBalancerApplicationLoadBalancer:\n    type: alicloud:slb:ApplicationLoadBalancer\n    name: load_balancer\n    properties:\n      loadBalancerName: ${slbLoadBalancerName}\n      addressType: intranet\n      loadBalancerSpec: slb.s2.small\n      vswitchId: ${loadBalancerSwitch.id}\n      tags:\n        info: create for internet\n      instanceChargeType: PayBySpec\nvariables:\n  loadBalancer:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.slb.ApplicationLoadBalancer`\" pulumi-lang-dotnet=\"`alicloud.slb.ApplicationLoadBalancer`\" pulumi-lang-go=\"`slb.ApplicationLoadBalancer`\" pulumi-lang-python=\"`slb.ApplicationLoadBalancer`\" pulumi-lang-yaml=\"`alicloud.slb.ApplicationLoadBalancer`\" pulumi-lang-java=\"`alicloud.slb.ApplicationLoadBalancer`\"\u003e`alicloud.slb.ApplicationLoadBalancer`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.slb.ApplicationLoadBalancer`\" pulumi-lang-dotnet=\"`alicloud.slb.ApplicationLoadBalancer`\" pulumi-lang-go=\"`slb.ApplicationLoadBalancer`\" pulumi-lang-python=\"`slb.ApplicationLoadBalancer`\" pulumi-lang-yaml=\"`alicloud.slb.ApplicationLoadBalancer`\" pulumi-lang-java=\"`alicloud.slb.ApplicationLoadBalancer`\"\u003e`alicloud.slb.ApplicationLoadBalancer`\u003c/span\u003e resource allows you to manage \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"Subscription\"` load balancer, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Load Balancer.\nYou can resume managing the subscription load balancer via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLoad balancer can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:slb/applicationLoadBalancer:ApplicationLoadBalancer example lb-abc123456\n```\n\n","properties":{"address":{"type":"string","description":"Specify the IP address of the private network for the SLB instance, which must be in the destination CIDR block of the corresponding switch.\n"},"addressIpVersion":{"type":"string","description":"The IP version of the SLB instance to be created, which can be set to \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e . Default to \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e. Now, only internet instance support \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e address.\n"},"addressType":{"type":"string","description":"The network type of the SLB instance. Valid values: [\"internet\", \"intranet\"]. If load balancer launched in VPC, this value must be \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e.\n- internet: After an Internet SLB instance is created, the system allocates a public IP address so that the instance can forward requests from the Internet.\n- intranet: After an intranet SLB instance is created, the system allocates an intranet IP address so that the instance can only forward intranet requests.\n"},"bandwidth":{"type":"integer","description":"Valid value is between 1 and 5120, If argument \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is `PayByTraffic`, then this value will be ignored.\n"},"deleteProtection":{"type":"string","description":"Whether enable the deletion protection or not. on: Enable deletion protection. off: Disable deletion protection. Default to off. Only postpaid instance support this function.\n"},"instanceChargeType":{"type":"string","description":"Support `PayBySpec` (default) and `PayByCLCU`, This parameter takes effect when the value of **payment_type** (instance payment mode) is **PayAsYouGo** (pay-as-you-go).\n"},"internetChargeType":{"type":"string","description":"Valid values are `PayByBandwidth`, `PayByTraffic`. If this value is `PayByBandwidth`, then argument \u003cspan pulumi-lang-nodejs=\"`addressType`\" pulumi-lang-dotnet=\"`AddressType`\" pulumi-lang-go=\"`addressType`\" pulumi-lang-python=\"`address_type`\" pulumi-lang-yaml=\"`addressType`\" pulumi-lang-java=\"`addressType`\"\u003e`address_type`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e. Default is `PayByTraffic`. If load balancer launched in VPC, this value must be `PayByTraffic`. Before version 1.10.1, the valid values are \u003cspan pulumi-lang-nodejs=\"`paybybandwidth`\" pulumi-lang-dotnet=\"`Paybybandwidth`\" pulumi-lang-go=\"`paybybandwidth`\" pulumi-lang-python=\"`paybybandwidth`\" pulumi-lang-yaml=\"`paybybandwidth`\" pulumi-lang-java=\"`paybybandwidth`\"\u003e`paybybandwidth`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`paybytraffic`\" pulumi-lang-dotnet=\"`Paybytraffic`\" pulumi-lang-go=\"`paybytraffic`\" pulumi-lang-python=\"`paybytraffic`\" pulumi-lang-yaml=\"`paybytraffic`\" pulumi-lang-java=\"`paybytraffic`\"\u003e`paybytraffic`\u003c/span\u003e.\n"},"loadBalancerName":{"type":"string","description":"The name of the SLB. This name must be unique within your AliCloud account, can have a maximum of 80 characters,\nmust contain only alphanumeric characters or hyphens, such as \"-\",\"/\",\".\",\"_\", and must not begin or end with a hyphen. If not specified,\nTerraform will autogenerate a name beginning with `tf-lb`.\n"},"loadBalancerSpec":{"type":"string","description":"The specification of the Server Load Balancer instance. Default to empty string indicating it is \"Shared-Performance\" instance.\nLaunching \"Performance-guaranteed\" instance, it must be specified. Valid values: `slb.s1.small`, `slb.s2.small`, `slb.s2.medium`,\n`slb.s3.small`, `slb.s3.medium`, `slb.s3.large` and `slb.s4.large`. It will be ignored when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType \" pulumi-lang-dotnet=\"`InstanceChargeType \" pulumi-lang-go=\"`instanceChargeType \" pulumi-lang-python=\"`instance_charge_type \" pulumi-lang-yaml=\"`instanceChargeType \" pulumi-lang-java=\"`instanceChargeType \"\u003e`instance_charge_type \u003c/span\u003e= \"PayByCLCU\"`.\n"},"masterZoneId":{"type":"string","description":"The primary zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the [DescribeZone](https://help.aliyun.com/document_detail/27585.htm) API.\n"},"modificationProtectionReason":{"type":"string","description":"The reason of modification protection. It's effective when \u003cspan pulumi-lang-nodejs=\"`modificationProtectionStatus`\" pulumi-lang-dotnet=\"`ModificationProtectionStatus`\" pulumi-lang-go=\"`modificationProtectionStatus`\" pulumi-lang-python=\"`modification_protection_status`\" pulumi-lang-yaml=\"`modificationProtectionStatus`\" pulumi-lang-java=\"`modificationProtectionStatus`\"\u003e`modification_protection_status`\u003c/span\u003e is `ConsoleProtection`.\n"},"modificationProtectionStatus":{"type":"string","description":"The status of modification protection. Valid values: `ConsoleProtection` and `NonProtection`. Default value is `NonProtection`.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.123.1 New field \u003cspan pulumi-lang-nodejs=\"`loadBalancerName`\" pulumi-lang-dotnet=\"`LoadBalancerName`\" pulumi-lang-go=\"`loadBalancerName`\" pulumi-lang-python=\"`load_balancer_name`\" pulumi-lang-yaml=\"`loadBalancerName`\" pulumi-lang-java=\"`loadBalancerName`\"\u003e`load_balancer_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'load_balancer_name' instead"},"paymentType":{"type":"string","description":"The billing method of the load balancer. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.\n"},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid when `PaymentType` is `Subscription`. Default to 1. Valid values: [1-9, 12, 24, 36]. This attribute 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 affect the resource.\n"},"resourceGroupId":{"type":"string","description":"The id of resource group which the SLB belongs.\n"},"slaveZoneId":{"type":"string","description":"The standby zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.\n"},"specification":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\"\u003e`specification`\u003c/span\u003e has been deprecated from provider version 1.123.1 New field \u003cspan pulumi-lang-nodejs=\"`loadBalancerSpec`\" pulumi-lang-dotnet=\"`LoadBalancerSpec`\" pulumi-lang-go=\"`loadBalancerSpec`\" pulumi-lang-python=\"`load_balancer_spec`\" pulumi-lang-yaml=\"`loadBalancerSpec`\" pulumi-lang-java=\"`loadBalancerSpec`\"\u003e`load_balancer_spec`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'specification' has been deprecated from provider version 1.123.1. New field 'load_balancer_spec' instead"},"status":{"type":"string","description":"The status of slb load balancer. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`inactice`\" pulumi-lang-dotnet=\"`Inactice`\" pulumi-lang-go=\"`inactice`\" pulumi-lang-python=\"`inactice`\" pulumi-lang-yaml=\"`inactice`\" pulumi-lang-java=\"`inactice`\"\u003e`inactice`\u003c/span\u003e. The system default value is \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource. The \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e can have a maximum of 10 tag for every load balancer instance. This filed mark as `Computed` since v1.217.1.\n"},"vswitchId":{"type":"string","description":"The VSwitch ID to launch in. **Note:** Required for a VPC SLB. If \u003cspan pulumi-lang-nodejs=\"`addressType`\" pulumi-lang-dotnet=\"`AddressType`\" pulumi-lang-go=\"`addressType`\" pulumi-lang-python=\"`address_type`\" pulumi-lang-yaml=\"`addressType`\" pulumi-lang-java=\"`addressType`\"\u003e`address_type`\u003c/span\u003e is internet, it will be ignored.\n"}},"required":["address","addressType","instanceChargeType","loadBalancerName","loadBalancerSpec","masterZoneId","modificationProtectionStatus","name","paymentType","resourceGroupId","slaveZoneId","specification","status","tags"],"inputProperties":{"address":{"type":"string","description":"Specify the IP address of the private network for the SLB instance, which must be in the destination CIDR block of the corresponding switch.\n","willReplaceOnChanges":true},"addressIpVersion":{"type":"string","description":"The IP version of the SLB instance to be created, which can be set to \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e . Default to \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e. Now, only internet instance support \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e address.\n","willReplaceOnChanges":true},"addressType":{"type":"string","description":"The network type of the SLB instance. Valid values: [\"internet\", \"intranet\"]. If load balancer launched in VPC, this value must be \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e.\n- internet: After an Internet SLB instance is created, the system allocates a public IP address so that the instance can forward requests from the Internet.\n- intranet: After an intranet SLB instance is created, the system allocates an intranet IP address so that the instance can only forward intranet requests.\n","willReplaceOnChanges":true},"bandwidth":{"type":"integer","description":"Valid value is between 1 and 5120, If argument \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is `PayByTraffic`, then this value will be ignored.\n"},"deleteProtection":{"type":"string","description":"Whether enable the deletion protection or not. on: Enable deletion protection. off: Disable deletion protection. Default to off. Only postpaid instance support this function.\n"},"instanceChargeType":{"type":"string","description":"Support `PayBySpec` (default) and `PayByCLCU`, This parameter takes effect when the value of **payment_type** (instance payment mode) is **PayAsYouGo** (pay-as-you-go).\n"},"internetChargeType":{"type":"string","description":"Valid values are `PayByBandwidth`, `PayByTraffic`. If this value is `PayByBandwidth`, then argument \u003cspan pulumi-lang-nodejs=\"`addressType`\" pulumi-lang-dotnet=\"`AddressType`\" pulumi-lang-go=\"`addressType`\" pulumi-lang-python=\"`address_type`\" pulumi-lang-yaml=\"`addressType`\" pulumi-lang-java=\"`addressType`\"\u003e`address_type`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e. Default is `PayByTraffic`. If load balancer launched in VPC, this value must be `PayByTraffic`. Before version 1.10.1, the valid values are \u003cspan pulumi-lang-nodejs=\"`paybybandwidth`\" pulumi-lang-dotnet=\"`Paybybandwidth`\" pulumi-lang-go=\"`paybybandwidth`\" pulumi-lang-python=\"`paybybandwidth`\" pulumi-lang-yaml=\"`paybybandwidth`\" pulumi-lang-java=\"`paybybandwidth`\"\u003e`paybybandwidth`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`paybytraffic`\" pulumi-lang-dotnet=\"`Paybytraffic`\" pulumi-lang-go=\"`paybytraffic`\" pulumi-lang-python=\"`paybytraffic`\" pulumi-lang-yaml=\"`paybytraffic`\" pulumi-lang-java=\"`paybytraffic`\"\u003e`paybytraffic`\u003c/span\u003e.\n"},"loadBalancerName":{"type":"string","description":"The name of the SLB. This name must be unique within your AliCloud account, can have a maximum of 80 characters,\nmust contain only alphanumeric characters or hyphens, such as \"-\",\"/\",\".\",\"_\", and must not begin or end with a hyphen. If not specified,\nTerraform will autogenerate a name beginning with `tf-lb`.\n"},"loadBalancerSpec":{"type":"string","description":"The specification of the Server Load Balancer instance. Default to empty string indicating it is \"Shared-Performance\" instance.\nLaunching \"Performance-guaranteed\" instance, it must be specified. Valid values: `slb.s1.small`, `slb.s2.small`, `slb.s2.medium`,\n`slb.s3.small`, `slb.s3.medium`, `slb.s3.large` and `slb.s4.large`. It will be ignored when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType \" pulumi-lang-dotnet=\"`InstanceChargeType \" pulumi-lang-go=\"`instanceChargeType \" pulumi-lang-python=\"`instance_charge_type \" pulumi-lang-yaml=\"`instanceChargeType \" pulumi-lang-java=\"`instanceChargeType \"\u003e`instance_charge_type \u003c/span\u003e= \"PayByCLCU\"`.\n"},"masterZoneId":{"type":"string","description":"The primary zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the [DescribeZone](https://help.aliyun.com/document_detail/27585.htm) API.\n","willReplaceOnChanges":true},"modificationProtectionReason":{"type":"string","description":"The reason of modification protection. It's effective when \u003cspan pulumi-lang-nodejs=\"`modificationProtectionStatus`\" pulumi-lang-dotnet=\"`ModificationProtectionStatus`\" pulumi-lang-go=\"`modificationProtectionStatus`\" pulumi-lang-python=\"`modification_protection_status`\" pulumi-lang-yaml=\"`modificationProtectionStatus`\" pulumi-lang-java=\"`modificationProtectionStatus`\"\u003e`modification_protection_status`\u003c/span\u003e is `ConsoleProtection`.\n"},"modificationProtectionStatus":{"type":"string","description":"The status of modification protection. Valid values: `ConsoleProtection` and `NonProtection`. Default value is `NonProtection`.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.123.1 New field \u003cspan pulumi-lang-nodejs=\"`loadBalancerName`\" pulumi-lang-dotnet=\"`LoadBalancerName`\" pulumi-lang-go=\"`loadBalancerName`\" pulumi-lang-python=\"`load_balancer_name`\" pulumi-lang-yaml=\"`loadBalancerName`\" pulumi-lang-java=\"`loadBalancerName`\"\u003e`load_balancer_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'load_balancer_name' instead"},"paymentType":{"type":"string","description":"The billing method of the load balancer. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.\n"},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid when `PaymentType` is `Subscription`. Default to 1. Valid values: [1-9, 12, 24, 36]. This attribute 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 affect the resource.\n"},"resourceGroupId":{"type":"string","description":"The id of resource group which the SLB belongs.\n","willReplaceOnChanges":true},"slaveZoneId":{"type":"string","description":"The standby zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.\n","willReplaceOnChanges":true},"specification":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\"\u003e`specification`\u003c/span\u003e has been deprecated from provider version 1.123.1 New field \u003cspan pulumi-lang-nodejs=\"`loadBalancerSpec`\" pulumi-lang-dotnet=\"`LoadBalancerSpec`\" pulumi-lang-go=\"`loadBalancerSpec`\" pulumi-lang-python=\"`load_balancer_spec`\" pulumi-lang-yaml=\"`loadBalancerSpec`\" pulumi-lang-java=\"`loadBalancerSpec`\"\u003e`load_balancer_spec`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'specification' has been deprecated from provider version 1.123.1. New field 'load_balancer_spec' instead"},"status":{"type":"string","description":"The status of slb load balancer. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`inactice`\" pulumi-lang-dotnet=\"`Inactice`\" pulumi-lang-go=\"`inactice`\" pulumi-lang-python=\"`inactice`\" pulumi-lang-yaml=\"`inactice`\" pulumi-lang-java=\"`inactice`\"\u003e`inactice`\u003c/span\u003e. The system default value is \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource. The \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e can have a maximum of 10 tag for every load balancer instance. This filed mark as `Computed` since v1.217.1.\n"},"vswitchId":{"type":"string","description":"The VSwitch ID to launch in. **Note:** Required for a VPC SLB. If \u003cspan pulumi-lang-nodejs=\"`addressType`\" pulumi-lang-dotnet=\"`AddressType`\" pulumi-lang-go=\"`addressType`\" pulumi-lang-python=\"`address_type`\" pulumi-lang-yaml=\"`addressType`\" pulumi-lang-java=\"`addressType`\"\u003e`address_type`\u003c/span\u003e is internet, it will be ignored.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering ApplicationLoadBalancer resources.\n","properties":{"address":{"type":"string","description":"Specify the IP address of the private network for the SLB instance, which must be in the destination CIDR block of the corresponding switch.\n","willReplaceOnChanges":true},"addressIpVersion":{"type":"string","description":"The IP version of the SLB instance to be created, which can be set to \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e . Default to \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e. Now, only internet instance support \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e address.\n","willReplaceOnChanges":true},"addressType":{"type":"string","description":"The network type of the SLB instance. Valid values: [\"internet\", \"intranet\"]. If load balancer launched in VPC, this value must be \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e.\n- internet: After an Internet SLB instance is created, the system allocates a public IP address so that the instance can forward requests from the Internet.\n- intranet: After an intranet SLB instance is created, the system allocates an intranet IP address so that the instance can only forward intranet requests.\n","willReplaceOnChanges":true},"bandwidth":{"type":"integer","description":"Valid value is between 1 and 5120, If argument \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is `PayByTraffic`, then this value will be ignored.\n"},"deleteProtection":{"type":"string","description":"Whether enable the deletion protection or not. on: Enable deletion protection. off: Disable deletion protection. Default to off. Only postpaid instance support this function.\n"},"instanceChargeType":{"type":"string","description":"Support `PayBySpec` (default) and `PayByCLCU`, This parameter takes effect when the value of **payment_type** (instance payment mode) is **PayAsYouGo** (pay-as-you-go).\n"},"internetChargeType":{"type":"string","description":"Valid values are `PayByBandwidth`, `PayByTraffic`. If this value is `PayByBandwidth`, then argument \u003cspan pulumi-lang-nodejs=\"`addressType`\" pulumi-lang-dotnet=\"`AddressType`\" pulumi-lang-go=\"`addressType`\" pulumi-lang-python=\"`address_type`\" pulumi-lang-yaml=\"`addressType`\" pulumi-lang-java=\"`addressType`\"\u003e`address_type`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e. Default is `PayByTraffic`. If load balancer launched in VPC, this value must be `PayByTraffic`. Before version 1.10.1, the valid values are \u003cspan pulumi-lang-nodejs=\"`paybybandwidth`\" pulumi-lang-dotnet=\"`Paybybandwidth`\" pulumi-lang-go=\"`paybybandwidth`\" pulumi-lang-python=\"`paybybandwidth`\" pulumi-lang-yaml=\"`paybybandwidth`\" pulumi-lang-java=\"`paybybandwidth`\"\u003e`paybybandwidth`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`paybytraffic`\" pulumi-lang-dotnet=\"`Paybytraffic`\" pulumi-lang-go=\"`paybytraffic`\" pulumi-lang-python=\"`paybytraffic`\" pulumi-lang-yaml=\"`paybytraffic`\" pulumi-lang-java=\"`paybytraffic`\"\u003e`paybytraffic`\u003c/span\u003e.\n"},"loadBalancerName":{"type":"string","description":"The name of the SLB. This name must be unique within your AliCloud account, can have a maximum of 80 characters,\nmust contain only alphanumeric characters or hyphens, such as \"-\",\"/\",\".\",\"_\", and must not begin or end with a hyphen. If not specified,\nTerraform will autogenerate a name beginning with `tf-lb`.\n"},"loadBalancerSpec":{"type":"string","description":"The specification of the Server Load Balancer instance. Default to empty string indicating it is \"Shared-Performance\" instance.\nLaunching \"Performance-guaranteed\" instance, it must be specified. Valid values: `slb.s1.small`, `slb.s2.small`, `slb.s2.medium`,\n`slb.s3.small`, `slb.s3.medium`, `slb.s3.large` and `slb.s4.large`. It will be ignored when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType \" pulumi-lang-dotnet=\"`InstanceChargeType \" pulumi-lang-go=\"`instanceChargeType \" pulumi-lang-python=\"`instance_charge_type \" pulumi-lang-yaml=\"`instanceChargeType \" pulumi-lang-java=\"`instanceChargeType \"\u003e`instance_charge_type \u003c/span\u003e= \"PayByCLCU\"`.\n"},"masterZoneId":{"type":"string","description":"The primary zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the [DescribeZone](https://help.aliyun.com/document_detail/27585.htm) API.\n","willReplaceOnChanges":true},"modificationProtectionReason":{"type":"string","description":"The reason of modification protection. It's effective when \u003cspan pulumi-lang-nodejs=\"`modificationProtectionStatus`\" pulumi-lang-dotnet=\"`ModificationProtectionStatus`\" pulumi-lang-go=\"`modificationProtectionStatus`\" pulumi-lang-python=\"`modification_protection_status`\" pulumi-lang-yaml=\"`modificationProtectionStatus`\" pulumi-lang-java=\"`modificationProtectionStatus`\"\u003e`modification_protection_status`\u003c/span\u003e is `ConsoleProtection`.\n"},"modificationProtectionStatus":{"type":"string","description":"The status of modification protection. Valid values: `ConsoleProtection` and `NonProtection`. Default value is `NonProtection`.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.123.1 New field \u003cspan pulumi-lang-nodejs=\"`loadBalancerName`\" pulumi-lang-dotnet=\"`LoadBalancerName`\" pulumi-lang-go=\"`loadBalancerName`\" pulumi-lang-python=\"`load_balancer_name`\" pulumi-lang-yaml=\"`loadBalancerName`\" pulumi-lang-java=\"`loadBalancerName`\"\u003e`load_balancer_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'load_balancer_name' instead"},"paymentType":{"type":"string","description":"The billing method of the load balancer. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.\n"},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid when `PaymentType` is `Subscription`. Default to 1. Valid values: [1-9, 12, 24, 36]. This attribute 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 affect the resource.\n"},"resourceGroupId":{"type":"string","description":"The id of resource group which the SLB belongs.\n","willReplaceOnChanges":true},"slaveZoneId":{"type":"string","description":"The standby zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.\n","willReplaceOnChanges":true},"specification":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\"\u003e`specification`\u003c/span\u003e has been deprecated from provider version 1.123.1 New field \u003cspan pulumi-lang-nodejs=\"`loadBalancerSpec`\" pulumi-lang-dotnet=\"`LoadBalancerSpec`\" pulumi-lang-go=\"`loadBalancerSpec`\" pulumi-lang-python=\"`load_balancer_spec`\" pulumi-lang-yaml=\"`loadBalancerSpec`\" pulumi-lang-java=\"`loadBalancerSpec`\"\u003e`load_balancer_spec`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'specification' has been deprecated from provider version 1.123.1. New field 'load_balancer_spec' instead"},"status":{"type":"string","description":"The status of slb load balancer. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`inactice`\" pulumi-lang-dotnet=\"`Inactice`\" pulumi-lang-go=\"`inactice`\" pulumi-lang-python=\"`inactice`\" pulumi-lang-yaml=\"`inactice`\" pulumi-lang-java=\"`inactice`\"\u003e`inactice`\u003c/span\u003e. The system default value is \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource. The \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e can have a maximum of 10 tag for every load balancer instance. This filed mark as `Computed` since v1.217.1.\n"},"vswitchId":{"type":"string","description":"The VSwitch ID to launch in. **Note:** Required for a VPC SLB. If \u003cspan pulumi-lang-nodejs=\"`addressType`\" pulumi-lang-dotnet=\"`AddressType`\" pulumi-lang-go=\"`addressType`\" pulumi-lang-python=\"`address_type`\" pulumi-lang-yaml=\"`addressType`\" pulumi-lang-java=\"`addressType`\"\u003e`address_type`\u003c/span\u003e is internet, it will be ignored.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:slb/attachment:Attachment":{"description":"\u003e **DEPRECATED:** This resource has been deprecated from v1.153.0 and using\u003cspan pulumi-lang-nodejs=\" alicloud.slb.BackendServer \" pulumi-lang-dotnet=\" alicloud.slb.BackendServer \" pulumi-lang-go=\" slb.BackendServer \" pulumi-lang-python=\" slb.BackendServer \" pulumi-lang-yaml=\" alicloud.slb.BackendServer \" pulumi-lang-java=\" alicloud.slb.BackendServer \"\u003e alicloud.slb.BackendServer \u003c/span\u003einstead.\n\nAdd a group of backend servers (ECS instance) to the Server Load Balancer or remove them from it.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"slb-attachment-example\";\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    name: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/16\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 5,\n    systemDiskCategory: \"cloud_efficiency\",\n    securityGroups: [defaultSecurityGroup.id],\n    instanceName: name,\n    vswitchId: defaultSwitch.id,\n});\nconst defaultApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"default\", {\n    loadBalancerName: name,\n    vswitchId: defaultSwitch.id,\n    loadBalancerSpec: \"slb.s1.small\",\n});\nconst defaultAttachment = new alicloud.slb.Attachment(\"default\", {\n    loadBalancerId: defaultApplicationLoadBalancer.id,\n    instanceIds: [defaultInstance.id],\n    weight: 90,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"slb-attachment-example\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/16\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=5,\n    system_disk_category=\"cloud_efficiency\",\n    security_groups=[default_security_group.id],\n    instance_name=name,\n    vswitch_id=default_switch.id)\ndefault_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"default\",\n    load_balancer_name=name,\n    vswitch_id=default_switch.id,\n    load_balancer_spec=\"slb.s1.small\")\ndefault_attachment = alicloud.slb.Attachment(\"default\",\n    load_balancer_id=default_application_load_balancer.id,\n    instance_ids=[default_instance.id],\n    weight=90)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"slb-attachment-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        Name = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/16\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 5,\n        SystemDiskCategory = \"cloud_efficiency\",\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        InstanceName = name,\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var defaultApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = name,\n        VswitchId = defaultSwitch.Id,\n        LoadBalancerSpec = \"slb.s1.small\",\n    });\n\n    var defaultAttachment = new AliCloud.Slb.Attachment(\"default\", new()\n    {\n        LoadBalancerId = defaultApplicationLoadBalancer.Id,\n        InstanceIds = new[]\n        {\n            defaultInstance.Id,\n        },\n        Weight = 90,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"slb-attachment-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tName:      pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/16\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tImageId:                 pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:            pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tInternetChargeType:      pulumi.String(\"PayByTraffic\"),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(5),\n\t\t\tSystemDiskCategory:      pulumi.String(\"cloud_efficiency\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tInstanceName: pulumi.String(name),\n\t\t\tVswitchId:    defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplicationLoadBalancer, err := slb.NewApplicationLoadBalancer(ctx, \"default\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tVswitchId:        defaultSwitch.ID(),\n\t\t\tLoadBalancerSpec: pulumi.String(\"slb.s1.small\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = slb.NewAttachment(ctx, \"default\", \u0026slb.AttachmentArgs{\n\t\t\tLoadBalancerId: defaultApplicationLoadBalancer.ID(),\n\t\t\tInstanceIds: pulumi.StringArray{\n\t\t\t\tdefaultInstance.ID(),\n\t\t\t},\n\t\t\tWeight: pulumi.Int(90),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.slb.Attachment;\nimport com.pulumi.alicloud.slb.AttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"slb-attachment-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .name(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/16\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(5)\n            .systemDiskCategory(\"cloud_efficiency\")\n            .securityGroups(defaultSecurityGroup.id())\n            .instanceName(name)\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var defaultApplicationLoadBalancer = new ApplicationLoadBalancer(\"defaultApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .vswitchId(defaultSwitch.id())\n            .loadBalancerSpec(\"slb.s1.small\")\n            .build());\n\n        var defaultAttachment = new Attachment(\"defaultAttachment\", AttachmentArgs.builder()\n            .loadBalancerId(defaultApplicationLoadBalancer.id())\n            .instanceIds(defaultInstance.id())\n            .weight(90)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: slb-attachment-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      name: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/16\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:ecs:Instance\n    name: default\n    properties:\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      internetChargeType: PayByTraffic\n      internetMaxBandwidthOut: '5'\n      systemDiskCategory: cloud_efficiency\n      securityGroups:\n        - ${defaultSecurityGroup.id}\n      instanceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n  defaultApplicationLoadBalancer:\n    type: alicloud:slb:ApplicationLoadBalancer\n    name: default\n    properties:\n      loadBalancerName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      loadBalancerSpec: slb.s1.small\n  defaultAttachment:\n    type: alicloud:slb:Attachment\n    name: default\n    properties:\n      loadBalancerId: ${defaultApplicationLoadBalancer.id}\n      instanceIds:\n        - ${defaultInstance.id}\n      weight: 90\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 1\n        memorySize: 2\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLoad balancer attachment can be imported using the id or load balancer id, e.g.\n\n```sh\n$ pulumi import alicloud:slb/attachment:Attachment example lb-abc123456\n```\n\n","properties":{"backendServers":{"type":"string","description":"The backend servers of the load balancer.\n"},"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. If true, this resource will not be deleted when its SLB instance enabled DeleteProtection. Default to false.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"A list of instance ids to added backend server in the SLB.\n"},"loadBalancerId":{"type":"string","description":"ID of the load balancer.\n"},"serverType":{"type":"string","description":"Type of the instances. Valid value ecs, eni. Default to ecs.\n"},"weight":{"type":"integer","description":"Weight of the instances. Valid value range: [0-100]. Default to 100.\n"}},"required":["backendServers","instanceIds","loadBalancerId"],"inputProperties":{"backendServers":{"type":"string","description":"The backend servers of the load balancer.\n"},"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. If true, this resource will not be deleted when its SLB instance enabled DeleteProtection. Default to false.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"A list of instance ids to added backend server in the SLB.\n"},"loadBalancerId":{"type":"string","description":"ID of the load balancer.\n"},"serverType":{"type":"string","description":"Type of the instances. Valid value ecs, eni. Default to ecs.\n"},"weight":{"type":"integer","description":"Weight of the instances. Valid value range: [0-100]. Default to 100.\n"}},"requiredInputs":["instanceIds","loadBalancerId"],"stateInputs":{"description":"Input properties used for looking up and filtering Attachment resources.\n","properties":{"backendServers":{"type":"string","description":"The backend servers of the load balancer.\n"},"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. If true, this resource will not be deleted when its SLB instance enabled DeleteProtection. Default to false.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"A list of instance ids to added backend server in the SLB.\n"},"loadBalancerId":{"type":"string","description":"ID of the load balancer.\n"},"serverType":{"type":"string","description":"Type of the instances. Valid value ecs, eni. Default to ecs.\n"},"weight":{"type":"integer","description":"Weight of the instances. Valid value range: [0-100]. Default to 100.\n"}},"type":"object"}},"alicloud:slb/backendServer:BackendServer":{"description":"Add a group of backend servers (ECS or ENI instance) to the Server Load Balancer or remove them from it.\n\n\u003e **NOTE:** Available in 1.53.0+\n\n## Import\n\nLoad balancer backend server can be imported using the load balancer id.\n\n```sh\n$ pulumi import alicloud:slb/backendServer:BackendServer example \u003cload_balancer_id\u003e\n```\n\n","properties":{"backendServers":{"type":"array","items":{"$ref":"#/types/alicloud:slb/BackendServerBackendServer:BackendServerBackendServer"},"description":"A list of instances to added backend server in the SLB. It contains three sub-fields as `Block server` follows.\n"},"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. If true, this resource will not be deleted when its SLB instance enabled DeleteProtection. Default to false.\n"},"loadBalancerId":{"type":"string","description":"ID of the load balancer.\n"}},"required":["loadBalancerId"],"inputProperties":{"backendServers":{"type":"array","items":{"$ref":"#/types/alicloud:slb/BackendServerBackendServer:BackendServerBackendServer"},"description":"A list of instances to added backend server in the SLB. It contains three sub-fields as `Block server` follows.\n"},"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. If true, this resource will not be deleted when its SLB instance enabled DeleteProtection. Default to false.\n"},"loadBalancerId":{"type":"string","description":"ID of the load balancer.\n","willReplaceOnChanges":true}},"requiredInputs":["loadBalancerId"],"stateInputs":{"description":"Input properties used for looking up and filtering BackendServer resources.\n","properties":{"backendServers":{"type":"array","items":{"$ref":"#/types/alicloud:slb/BackendServerBackendServer:BackendServerBackendServer"},"description":"A list of instances to added backend server in the SLB. It contains three sub-fields as `Block server` follows.\n"},"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. If true, this resource will not be deleted when its SLB instance enabled DeleteProtection. Default to false.\n"},"loadBalancerId":{"type":"string","description":"ID of the load balancer.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:slb/caCertificate:CaCertificate":{"description":"\u003e **NOTE:** Available since v1.21.0.\n\nA Load Balancer CA Certificate is used by the listener of the protocol https.\n\nFor information about slb and how to use it, see [What is Server Load Balancer](https://www.alibabacloud.com/help/doc-detail/27539.htm).\n\nFor information about CA Certificate and how to use it, see [Configure CA Certificate](https://www.alibabacloud.com/help/doc-detail/85968.htm).\n\n\n## Example Usage\n\n* using CA certificate content\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst foo = new alicloud.slb.CaCertificate(\"foo\", {\n    caCertificateName: \"tf-testAccSlbCACertificate\",\n    caCertificate: `-----BEGIN CERTIFICATE-----\nMIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\nBAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\nMA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\nZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\ndjELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\nChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\nAoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\ncoG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\nKOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\nHQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n+OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\nQkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\nMAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\nAJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\ncQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\nOfi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\nDUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n-----END CERTIFICATE-----`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfoo = alicloud.slb.CaCertificate(\"foo\",\n    ca_certificate_name=\"tf-testAccSlbCACertificate\",\n    ca_certificate=\"\"\"-----BEGIN CERTIFICATE-----\nMIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\nBAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\nMA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\nZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\ndjELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\nChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\nAoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\ncoG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\nKOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\nHQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n+OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\nQkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\nMAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\nAJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\ncQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\nOfi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\nDUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n-----END CERTIFICATE-----\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = new AliCloud.Slb.CaCertificate(\"foo\", new()\n    {\n        CaCertificateName = \"tf-testAccSlbCACertificate\",\n        Certificate = @\"-----BEGIN CERTIFICATE-----\nMIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\nBAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\nMA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\nZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\ndjELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\nChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\nAoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\ncoG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\nKOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\nHQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n+OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\nQkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\nMAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\nAJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\ncQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\nOfi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\nDUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n-----END CERTIFICATE-----\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := slb.NewCaCertificate(ctx, \"foo\", \u0026slb.CaCertificateArgs{\n\t\t\tCaCertificateName: pulumi.String(\"tf-testAccSlbCACertificate\"),\n\t\t\tCaCertificate: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\nBAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\nMA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\nZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\ndjELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\nChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\nAoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\ncoG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\nKOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\nHQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n+OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\nQkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\nMAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\nAJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\ncQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\nOfi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\nDUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n-----END CERTIFICATE-----`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.CaCertificate;\nimport com.pulumi.alicloud.slb.CaCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var foo = new CaCertificate(\"foo\", CaCertificateArgs.builder()\n            .caCertificateName(\"tf-testAccSlbCACertificate\")\n            .caCertificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\nBAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\nMA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\nZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\ndjELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\nChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\nAoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\ncoG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\nKOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\nHQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n+OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\nQkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\nMAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\nAJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\ncQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\nOfi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\nDUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n-----END CERTIFICATE-----            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  foo:\n    type: alicloud:slb:CaCertificate\n    properties:\n      caCertificateName: tf-testAccSlbCACertificate\n      caCertificate: |-\n        -----BEGIN CERTIFICATE-----\n        MIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV\n        BAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP\n        MA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0\n        ZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow\n        djELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE\n        ChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG\n        9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\n        AoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB\n        coG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook\n        KOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw\n        HQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy\n        +OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC\n        QkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN\n        MAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ\n        AJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT\n        cQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1\n        Ofi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd\n        DUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=\n        -----END CERTIFICATE-----\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n* using CA certificate file\n\n\n## Import\n\nServer Load balancer CA Certificate can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:slb/caCertificate:CaCertificate example abc123456\n```\n\n","properties":{"caCertificate":{"type":"string","description":"the content of the CA certificate.\n","language":{"csharp":{"name":"Certificate"}}},"caCertificateName":{"type":"string","description":"Name of the CA Certificate.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`caCertificateName`\" pulumi-lang-dotnet=\"`CaCertificateName`\" pulumi-lang-go=\"`caCertificateName`\" pulumi-lang-python=\"`ca_certificate_name`\" pulumi-lang-yaml=\"`caCertificateName`\" pulumi-lang-java=\"`caCertificateName`\"\u003e`ca_certificate_name`\u003c/span\u003e instead\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'ca_certificate_name' instead"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the\u003cspan pulumi-lang-nodejs=\" slbCa \" pulumi-lang-dotnet=\" SlbCa \" pulumi-lang-go=\" slbCa \" pulumi-lang-python=\" slb_ca \" pulumi-lang-yaml=\" slbCa \" pulumi-lang-java=\" slbCa \"\u003e slb_ca \u003c/span\u003ecertificate belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["caCertificate","caCertificateName","name","resourceGroupId"],"inputProperties":{"caCertificate":{"type":"string","description":"the content of the CA certificate.\n","language":{"csharp":{"name":"Certificate"}},"willReplaceOnChanges":true},"caCertificateName":{"type":"string","description":"Name of the CA Certificate.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`caCertificateName`\" pulumi-lang-dotnet=\"`CaCertificateName`\" pulumi-lang-go=\"`caCertificateName`\" pulumi-lang-python=\"`ca_certificate_name`\" pulumi-lang-yaml=\"`caCertificateName`\" pulumi-lang-java=\"`caCertificateName`\"\u003e`ca_certificate_name`\u003c/span\u003e instead\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'ca_certificate_name' instead"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the\u003cspan pulumi-lang-nodejs=\" slbCa \" pulumi-lang-dotnet=\" SlbCa \" pulumi-lang-go=\" slbCa \" pulumi-lang-python=\" slb_ca \" pulumi-lang-yaml=\" slbCa \" pulumi-lang-java=\" slbCa \"\u003e slb_ca \u003c/span\u003ecertificate belongs.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"requiredInputs":["caCertificate"],"stateInputs":{"description":"Input properties used for looking up and filtering CaCertificate resources.\n","properties":{"caCertificate":{"type":"string","description":"the content of the CA certificate.\n","language":{"csharp":{"name":"Certificate"}},"willReplaceOnChanges":true},"caCertificateName":{"type":"string","description":"Name of the CA Certificate.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`caCertificateName`\" pulumi-lang-dotnet=\"`CaCertificateName`\" pulumi-lang-go=\"`caCertificateName`\" pulumi-lang-python=\"`ca_certificate_name`\" pulumi-lang-yaml=\"`caCertificateName`\" pulumi-lang-java=\"`caCertificateName`\"\u003e`ca_certificate_name`\u003c/span\u003e instead\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'ca_certificate_name' instead"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the\u003cspan pulumi-lang-nodejs=\" slbCa \" pulumi-lang-dotnet=\" SlbCa \" pulumi-lang-go=\" slbCa \" pulumi-lang-python=\" slb_ca \" pulumi-lang-yaml=\" slbCa \" pulumi-lang-java=\" slbCa \"\u003e slb_ca \u003c/span\u003ecertificate belongs.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:slb/domainExtension:DomainExtension":{"description":"HTTPS listeners of guaranteed-performance SLB support configuring multiple certificates, allowing you to forward requests with different domain names to different backend servers.\nPlease refer to the [documentation](https://www.alibabacloud.com/help/doc-detail/85956.htm?spm=a2c63.p38356.b99.40.1c881563Co8p6w) for details.\n\n\u003e **NOTE:** Available in 1.60.0+\n\n\u003e **NOTE:** The instance with shared loadBalancerSpec doesn't support domainExtension.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst slbDomainExtensionName = config.get(\"slbDomainExtensionName\") || \"forDomainExtension\";\nconst domainExtension = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst domainExtensionNetwork = new alicloud.vpc.Network(\"domain_extension\", {vpcName: slbDomainExtensionName});\nconst domainExtensionSwitch = new alicloud.vpc.Switch(\"domain_extension\", {\n    vpcId: domainExtensionNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: domainExtension.then(domainExtension =\u003e domainExtension.zones?.[0]?.id),\n    vswitchName: slbDomainExtensionName,\n});\nconst instance = new alicloud.slb.ApplicationLoadBalancer(\"instance\", {\n    loadBalancerName: slbDomainExtensionName,\n    addressType: \"intranet\",\n    loadBalancerSpec: \"slb.s2.small\",\n    vswitchId: domainExtensionSwitch.id,\n});\nconst domainExtensionServerCertificate = new alicloud.slb.ServerCertificate(\"domain_extension\", {\n    name: \"tf-testAccSlbServerCertificate\",\n    serverCertificate: `-----BEGIN CERTIFICATE-----\nMIIDdjCCAl4CCQCcm+erkcKN7DANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJj\nbjELMAkGA1UECAwCYmoxEDAOBgNVBAcMB2JlaWppbmcxDzANBgNVBAoMBmFsaXl1\nbjELMAkGA1UECwwCc2MxFTATBgNVBAMMDHd3dy50ZXN0LmNvbTEaMBgGCSqGSIb3\nDQEJARYLMTIzQDEyMy5jb20wHhcNMTkwNDI2MDM0ODAxWhcNMjQwNDI1MDM0ODAx\nWjB9MQswCQYDVQQGEwJjbjELMAkGA1UECAwCYmoxEDAOBgNVBAcMB2JlaWppbmcx\nDzANBgNVBAoMBmFsaXl1bjELMAkGA1UECwwCc2MxFTATBgNVBAMMDHd3dy50ZXN0\nLmNvbTEaMBgGCSqGSIb3DQEJARYLMTIzQDEyMy5jb20wggEiMA0GCSqGSIb3DQEB\nAQUAA4IBDwAwggEKAoIBAQDKMKF5qmN/uoMjdH3D8aPRcUOA0s8rZpYhG8zbkF1j\n8gHYoB/FDvM7G7dfVsyjbMwLOxKvAhWvHHSpEz/t7gB+QdwrAMiMJwGmtCnXrh2E\nWiXgalMe1y4a/T5R7q+m4T1zFATf+kbnHWfkSGF4W7b6UBoaH+9StQ95CnqzNf/2\np/Of7+S0XzCxFXw8GIVzZk0xFe6lHJzaq06f3mvzrD+4rpO56tTUvrgTY/n61gsF\nZP7f0CJ2JQh6eNRFOEUSfxKu/Dy/+IsQxorCJY2Q59ZAf3rXrqDN104jw9PlwnLl\nqfZz3RMODN6BWjxE8rvRtT0qMfuAfv1gjBdWZN0hUYBRAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAABzo82TxGp5poVkd5pLWj5ACgcBv8Cs6oH9D+4Jz9BmyuBUsQXh\n2aG0hQAe1mU61C9konsl/GTW8umJQ4M4lYEztXXwMf5PlBMGwebM0ZbSGg6jKtZg\nWCgJ3eP/FMmyXGL5Jji5+e09eObhUDVle4tdi0On97zBoz85W02rgWFAqZJwiEAP\nt+c7jX7uOSBq2/38iGStlrX5yB1at/gJXXiA5CL5OtlR3Okvb0/QH37efO1Nu39m\nlFi0ODPAVyXjVypAiLguDxPn6AtDTdk9Iw9B19OD4NrzNRWgSSX5vuxo/VcRcgWk\n3gEe9Ca0ZKN20q9XgthAiFFjl1S9ZgdA6Zc=\n-----END CERTIFICATE-----`,\n    privateKey: `-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAyjCheapjf7qDI3R9w/Gj0XFDgNLPK2aWIRvM25BdY/IB2KAf\nxQ7zOxu3X1bMo2zMCzsSrwIVrxx0qRM/7e4AfkHcKwDIjCcBprQp164dhFol4GpT\nHtcuGv0+Ue6vpuE9cxQE3/pG5x1n5EhheFu2+lAaGh/vUrUPeQp6szX/9qfzn+/k\ntF8wsRV8PBiFc2ZNMRXupRyc2qtOn95r86w/uK6TuerU1L64E2P5+tYLBWT+39Ai\ndiUIenjURThFEn8Srvw8v/iLEMaKwiWNkOfWQH96166gzddOI8PT5cJy5an2c90T\nDgzegVo8RPK70bU9KjH7gH79YIwXVmTdIVGAUQIDAQABAoIBAE1J4a/8biR5S3/W\nG+03BYQeY8tuyjqw8FqfoeOcf9agwAvqybouSNQjeCk9qOQfxq/UWQQFK/zQR9gJ\nv7pX7GBXFK5rkj3g+0SaQhRsPmRFgY0Tl8qGPt2aSKRRNVv5ZeADmwlzRn86QmiF\nMp0rkfqFfDTYWEepZszCML0ouzuxsW/9tq7rvtSjsgATNt31B3vFa3D3JBi31jUh\n5nfR9A3bATze7mQw3byEDiVl5ASRDgYyur403P1fDnMy9DBHZ8NaPOsFF6OBpJal\nBJsG5z00hll5PFN2jfmBQKlvAeU7wfwqdaSnGHOfqf2DeTTaFjIQ4gUhRn/m6pLo\n6kXttLECgYEA9sng0Qz/TcPFfM4tQ1gyvB1cKnnGIwg1FP8sfUjbbEgjaHhA224S\nk3BxtX2Kq6fhTXuwusAFc6OVMAZ76FgrQ5K4Ci7+DTsrF28z4b8td+p+lO/DxgP9\nlTgN+ddsiTOV4fUef9Z3yY0Zr0CnBUMbQYRaV2UIbCdiB0G4V/bt9TsCgYEA0bya\nOo9wGI0RJV0bYP7qwO74Ra1/i1viWbRlS7jU37Q+AZstrlKcQ5CTPzOjKFKMiUzl\n4miWacZ0/q2n+Mvd7NbXGXTLijahnyOYKaHJYyh4oBymfkgAifRstE0Ki9gdvArb\n/I+emC0GvLSyfGN8UUeDJs4NmqdEXGqjo2JOV+MCgYALFv1MR5o9Y1u/hQBRs2fs\nPiGDIx+9OUQxYloccyaxEfjNXAIGGkcpavchIbgWiJ++PJ2vdquIC8TLeK8evL+M\n9M3iX0Q5UfxYvD2HmnCvn9D6Xl/cyRcfGnq+TGjrLW9BzSMGuZt+aiHKV0xqFx7l\nbc4leTvMqGRmURS4lzcQOwKBgQCDzA/i4sYfN25h21tcHXSpnsG3D2rJyQi5NCo/\nZjunA92/JqOTGuiFcLGHEszhhtY3ZXJET1LNz18vtzKJnpqrvOnYXlOVW/U+SqDQ\n8JDb1c/PVZGuY1KrXkR9HLiW3kz5IJ3S3PFdUVYdeTN8BQxXCyg4V12nJJtJs912\ny0zN3wKBgGDS6YttCN6aI4EOABYE8fI1EYQ7vhfiYsaWGWSR1l6bQey7KR6M1ACz\nZzMASNyytVt12yXE4/Emv6/pYqigbDLfL1zQJSLJ3EHJYTh2RxjR+AaGDudYFG/T\nliQ9YXhV5Iu2x1pNwrtFnssDdaaGpfA7l3xC00BL7Z+SAJyI4QKA\n-----END RSA PRIVATE KEY-----`,\n});\nconst https = new alicloud.slb.Listener(\"https\", {\n    loadBalancerId: instance.id,\n    backendPort: 80,\n    frontendPort: 443,\n    protocol: \"https\",\n    stickySession: \"on\",\n    stickySessionType: \"insert\",\n    cookie: \"testslblistenercookie\",\n    cookieTimeout: 86400,\n    healthCheck: \"on\",\n    healthCheckUri: \"/cons\",\n    healthCheckConnectPort: 20,\n    healthyThreshold: 8,\n    unhealthyThreshold: 8,\n    healthCheckTimeout: 8,\n    healthCheckInterval: 5,\n    healthCheckHttpCode: \"http_2xx,http_3xx\",\n    bandwidth: 10,\n    serverCertificateId: domainExtensionServerCertificate.id,\n});\nconst example1 = new alicloud.slb.DomainExtension(\"example1\", {\n    loadBalancerId: instance.id,\n    frontendPort: https.frontendPort,\n    domain: \"www.test.com\",\n    serverCertificateId: domainExtensionServerCertificate.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nslb_domain_extension_name = config.get(\"slbDomainExtensionName\")\nif slb_domain_extension_name is None:\n    slb_domain_extension_name = \"forDomainExtension\"\ndomain_extension = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndomain_extension_network = alicloud.vpc.Network(\"domain_extension\", vpc_name=slb_domain_extension_name)\ndomain_extension_switch = alicloud.vpc.Switch(\"domain_extension\",\n    vpc_id=domain_extension_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=domain_extension.zones[0].id,\n    vswitch_name=slb_domain_extension_name)\ninstance = alicloud.slb.ApplicationLoadBalancer(\"instance\",\n    load_balancer_name=slb_domain_extension_name,\n    address_type=\"intranet\",\n    load_balancer_spec=\"slb.s2.small\",\n    vswitch_id=domain_extension_switch.id)\ndomain_extension_server_certificate = alicloud.slb.ServerCertificate(\"domain_extension\",\n    name=\"tf-testAccSlbServerCertificate\",\n    server_certificate=\"\"\"-----BEGIN CERTIFICATE-----\nMIIDdjCCAl4CCQCcm+erkcKN7DANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJj\nbjELMAkGA1UECAwCYmoxEDAOBgNVBAcMB2JlaWppbmcxDzANBgNVBAoMBmFsaXl1\nbjELMAkGA1UECwwCc2MxFTATBgNVBAMMDHd3dy50ZXN0LmNvbTEaMBgGCSqGSIb3\nDQEJARYLMTIzQDEyMy5jb20wHhcNMTkwNDI2MDM0ODAxWhcNMjQwNDI1MDM0ODAx\nWjB9MQswCQYDVQQGEwJjbjELMAkGA1UECAwCYmoxEDAOBgNVBAcMB2JlaWppbmcx\nDzANBgNVBAoMBmFsaXl1bjELMAkGA1UECwwCc2MxFTATBgNVBAMMDHd3dy50ZXN0\nLmNvbTEaMBgGCSqGSIb3DQEJARYLMTIzQDEyMy5jb20wggEiMA0GCSqGSIb3DQEB\nAQUAA4IBDwAwggEKAoIBAQDKMKF5qmN/uoMjdH3D8aPRcUOA0s8rZpYhG8zbkF1j\n8gHYoB/FDvM7G7dfVsyjbMwLOxKvAhWvHHSpEz/t7gB+QdwrAMiMJwGmtCnXrh2E\nWiXgalMe1y4a/T5R7q+m4T1zFATf+kbnHWfkSGF4W7b6UBoaH+9StQ95CnqzNf/2\np/Of7+S0XzCxFXw8GIVzZk0xFe6lHJzaq06f3mvzrD+4rpO56tTUvrgTY/n61gsF\nZP7f0CJ2JQh6eNRFOEUSfxKu/Dy/+IsQxorCJY2Q59ZAf3rXrqDN104jw9PlwnLl\nqfZz3RMODN6BWjxE8rvRtT0qMfuAfv1gjBdWZN0hUYBRAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAABzo82TxGp5poVkd5pLWj5ACgcBv8Cs6oH9D+4Jz9BmyuBUsQXh\n2aG0hQAe1mU61C9konsl/GTW8umJQ4M4lYEztXXwMf5PlBMGwebM0ZbSGg6jKtZg\nWCgJ3eP/FMmyXGL5Jji5+e09eObhUDVle4tdi0On97zBoz85W02rgWFAqZJwiEAP\nt+c7jX7uOSBq2/38iGStlrX5yB1at/gJXXiA5CL5OtlR3Okvb0/QH37efO1Nu39m\nlFi0ODPAVyXjVypAiLguDxPn6AtDTdk9Iw9B19OD4NrzNRWgSSX5vuxo/VcRcgWk\n3gEe9Ca0ZKN20q9XgthAiFFjl1S9ZgdA6Zc=\n-----END CERTIFICATE-----\"\"\",\n    private_key=\"\"\"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAyjCheapjf7qDI3R9w/Gj0XFDgNLPK2aWIRvM25BdY/IB2KAf\nxQ7zOxu3X1bMo2zMCzsSrwIVrxx0qRM/7e4AfkHcKwDIjCcBprQp164dhFol4GpT\nHtcuGv0+Ue6vpuE9cxQE3/pG5x1n5EhheFu2+lAaGh/vUrUPeQp6szX/9qfzn+/k\ntF8wsRV8PBiFc2ZNMRXupRyc2qtOn95r86w/uK6TuerU1L64E2P5+tYLBWT+39Ai\ndiUIenjURThFEn8Srvw8v/iLEMaKwiWNkOfWQH96166gzddOI8PT5cJy5an2c90T\nDgzegVo8RPK70bU9KjH7gH79YIwXVmTdIVGAUQIDAQABAoIBAE1J4a/8biR5S3/W\nG+03BYQeY8tuyjqw8FqfoeOcf9agwAvqybouSNQjeCk9qOQfxq/UWQQFK/zQR9gJ\nv7pX7GBXFK5rkj3g+0SaQhRsPmRFgY0Tl8qGPt2aSKRRNVv5ZeADmwlzRn86QmiF\nMp0rkfqFfDTYWEepZszCML0ouzuxsW/9tq7rvtSjsgATNt31B3vFa3D3JBi31jUh\n5nfR9A3bATze7mQw3byEDiVl5ASRDgYyur403P1fDnMy9DBHZ8NaPOsFF6OBpJal\nBJsG5z00hll5PFN2jfmBQKlvAeU7wfwqdaSnGHOfqf2DeTTaFjIQ4gUhRn/m6pLo\n6kXttLECgYEA9sng0Qz/TcPFfM4tQ1gyvB1cKnnGIwg1FP8sfUjbbEgjaHhA224S\nk3BxtX2Kq6fhTXuwusAFc6OVMAZ76FgrQ5K4Ci7+DTsrF28z4b8td+p+lO/DxgP9\nlTgN+ddsiTOV4fUef9Z3yY0Zr0CnBUMbQYRaV2UIbCdiB0G4V/bt9TsCgYEA0bya\nOo9wGI0RJV0bYP7qwO74Ra1/i1viWbRlS7jU37Q+AZstrlKcQ5CTPzOjKFKMiUzl\n4miWacZ0/q2n+Mvd7NbXGXTLijahnyOYKaHJYyh4oBymfkgAifRstE0Ki9gdvArb\n/I+emC0GvLSyfGN8UUeDJs4NmqdEXGqjo2JOV+MCgYALFv1MR5o9Y1u/hQBRs2fs\nPiGDIx+9OUQxYloccyaxEfjNXAIGGkcpavchIbgWiJ++PJ2vdquIC8TLeK8evL+M\n9M3iX0Q5UfxYvD2HmnCvn9D6Xl/cyRcfGnq+TGjrLW9BzSMGuZt+aiHKV0xqFx7l\nbc4leTvMqGRmURS4lzcQOwKBgQCDzA/i4sYfN25h21tcHXSpnsG3D2rJyQi5NCo/\nZjunA92/JqOTGuiFcLGHEszhhtY3ZXJET1LNz18vtzKJnpqrvOnYXlOVW/U+SqDQ\n8JDb1c/PVZGuY1KrXkR9HLiW3kz5IJ3S3PFdUVYdeTN8BQxXCyg4V12nJJtJs912\ny0zN3wKBgGDS6YttCN6aI4EOABYE8fI1EYQ7vhfiYsaWGWSR1l6bQey7KR6M1ACz\nZzMASNyytVt12yXE4/Emv6/pYqigbDLfL1zQJSLJ3EHJYTh2RxjR+AaGDudYFG/T\nliQ9YXhV5Iu2x1pNwrtFnssDdaaGpfA7l3xC00BL7Z+SAJyI4QKA\n-----END RSA PRIVATE KEY-----\"\"\")\nhttps = alicloud.slb.Listener(\"https\",\n    load_balancer_id=instance.id,\n    backend_port=80,\n    frontend_port=443,\n    protocol=\"https\",\n    sticky_session=\"on\",\n    sticky_session_type=\"insert\",\n    cookie=\"testslblistenercookie\",\n    cookie_timeout=86400,\n    health_check=\"on\",\n    health_check_uri=\"/cons\",\n    health_check_connect_port=20,\n    healthy_threshold=8,\n    unhealthy_threshold=8,\n    health_check_timeout=8,\n    health_check_interval=5,\n    health_check_http_code=\"http_2xx,http_3xx\",\n    bandwidth=10,\n    server_certificate_id=domain_extension_server_certificate.id)\nexample1 = alicloud.slb.DomainExtension(\"example1\",\n    load_balancer_id=instance.id,\n    frontend_port=https.frontend_port,\n    domain=\"www.test.com\",\n    server_certificate_id=domain_extension_server_certificate.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var slbDomainExtensionName = config.Get(\"slbDomainExtensionName\") ?? \"forDomainExtension\";\n    var domainExtension = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var domainExtensionNetwork = new AliCloud.Vpc.Network(\"domain_extension\", new()\n    {\n        VpcName = slbDomainExtensionName,\n    });\n\n    var domainExtensionSwitch = new AliCloud.Vpc.Switch(\"domain_extension\", new()\n    {\n        VpcId = domainExtensionNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = domainExtension.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = slbDomainExtensionName,\n    });\n\n    var instance = new AliCloud.Slb.ApplicationLoadBalancer(\"instance\", new()\n    {\n        LoadBalancerName = slbDomainExtensionName,\n        AddressType = \"intranet\",\n        LoadBalancerSpec = \"slb.s2.small\",\n        VswitchId = domainExtensionSwitch.Id,\n    });\n\n    var domainExtensionServerCertificate = new AliCloud.Slb.ServerCertificate(\"domain_extension\", new()\n    {\n        Name = \"tf-testAccSlbServerCertificate\",\n        Certificate = @\"-----BEGIN CERTIFICATE-----\nMIIDdjCCAl4CCQCcm+erkcKN7DANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJj\nbjELMAkGA1UECAwCYmoxEDAOBgNVBAcMB2JlaWppbmcxDzANBgNVBAoMBmFsaXl1\nbjELMAkGA1UECwwCc2MxFTATBgNVBAMMDHd3dy50ZXN0LmNvbTEaMBgGCSqGSIb3\nDQEJARYLMTIzQDEyMy5jb20wHhcNMTkwNDI2MDM0ODAxWhcNMjQwNDI1MDM0ODAx\nWjB9MQswCQYDVQQGEwJjbjELMAkGA1UECAwCYmoxEDAOBgNVBAcMB2JlaWppbmcx\nDzANBgNVBAoMBmFsaXl1bjELMAkGA1UECwwCc2MxFTATBgNVBAMMDHd3dy50ZXN0\nLmNvbTEaMBgGCSqGSIb3DQEJARYLMTIzQDEyMy5jb20wggEiMA0GCSqGSIb3DQEB\nAQUAA4IBDwAwggEKAoIBAQDKMKF5qmN/uoMjdH3D8aPRcUOA0s8rZpYhG8zbkF1j\n8gHYoB/FDvM7G7dfVsyjbMwLOxKvAhWvHHSpEz/t7gB+QdwrAMiMJwGmtCnXrh2E\nWiXgalMe1y4a/T5R7q+m4T1zFATf+kbnHWfkSGF4W7b6UBoaH+9StQ95CnqzNf/2\np/Of7+S0XzCxFXw8GIVzZk0xFe6lHJzaq06f3mvzrD+4rpO56tTUvrgTY/n61gsF\nZP7f0CJ2JQh6eNRFOEUSfxKu/Dy/+IsQxorCJY2Q59ZAf3rXrqDN104jw9PlwnLl\nqfZz3RMODN6BWjxE8rvRtT0qMfuAfv1gjBdWZN0hUYBRAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAABzo82TxGp5poVkd5pLWj5ACgcBv8Cs6oH9D+4Jz9BmyuBUsQXh\n2aG0hQAe1mU61C9konsl/GTW8umJQ4M4lYEztXXwMf5PlBMGwebM0ZbSGg6jKtZg\nWCgJ3eP/FMmyXGL5Jji5+e09eObhUDVle4tdi0On97zBoz85W02rgWFAqZJwiEAP\nt+c7jX7uOSBq2/38iGStlrX5yB1at/gJXXiA5CL5OtlR3Okvb0/QH37efO1Nu39m\nlFi0ODPAVyXjVypAiLguDxPn6AtDTdk9Iw9B19OD4NrzNRWgSSX5vuxo/VcRcgWk\n3gEe9Ca0ZKN20q9XgthAiFFjl1S9ZgdA6Zc=\n-----END CERTIFICATE-----\",\n        PrivateKey = @\"-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAyjCheapjf7qDI3R9w/Gj0XFDgNLPK2aWIRvM25BdY/IB2KAf\nxQ7zOxu3X1bMo2zMCzsSrwIVrxx0qRM/7e4AfkHcKwDIjCcBprQp164dhFol4GpT\nHtcuGv0+Ue6vpuE9cxQE3/pG5x1n5EhheFu2+lAaGh/vUrUPeQp6szX/9qfzn+/k\ntF8wsRV8PBiFc2ZNMRXupRyc2qtOn95r86w/uK6TuerU1L64E2P5+tYLBWT+39Ai\ndiUIenjURThFEn8Srvw8v/iLEMaKwiWNkOfWQH96166gzddOI8PT5cJy5an2c90T\nDgzegVo8RPK70bU9KjH7gH79YIwXVmTdIVGAUQIDAQABAoIBAE1J4a/8biR5S3/W\nG+03BYQeY8tuyjqw8FqfoeOcf9agwAvqybouSNQjeCk9qOQfxq/UWQQFK/zQR9gJ\nv7pX7GBXFK5rkj3g+0SaQhRsPmRFgY0Tl8qGPt2aSKRRNVv5ZeADmwlzRn86QmiF\nMp0rkfqFfDTYWEepZszCML0ouzuxsW/9tq7rvtSjsgATNt31B3vFa3D3JBi31jUh\n5nfR9A3bATze7mQw3byEDiVl5ASRDgYyur403P1fDnMy9DBHZ8NaPOsFF6OBpJal\nBJsG5z00hll5PFN2jfmBQKlvAeU7wfwqdaSnGHOfqf2DeTTaFjIQ4gUhRn/m6pLo\n6kXttLECgYEA9sng0Qz/TcPFfM4tQ1gyvB1cKnnGIwg1FP8sfUjbbEgjaHhA224S\nk3BxtX2Kq6fhTXuwusAFc6OVMAZ76FgrQ5K4Ci7+DTsrF28z4b8td+p+lO/DxgP9\nlTgN+ddsiTOV4fUef9Z3yY0Zr0CnBUMbQYRaV2UIbCdiB0G4V/bt9TsCgYEA0bya\nOo9wGI0RJV0bYP7qwO74Ra1/i1viWbRlS7jU37Q+AZstrlKcQ5CTPzOjKFKMiUzl\n4miWacZ0/q2n+Mvd7NbXGXTLijahnyOYKaHJYyh4oBymfkgAifRstE0Ki9gdvArb\n/I+emC0GvLSyfGN8UUeDJs4NmqdEXGqjo2JOV+MCgYALFv1MR5o9Y1u/hQBRs2fs\nPiGDIx+9OUQxYloccyaxEfjNXAIGGkcpavchIbgWiJ++PJ2vdquIC8TLeK8evL+M\n9M3iX0Q5UfxYvD2HmnCvn9D6Xl/cyRcfGnq+TGjrLW9BzSMGuZt+aiHKV0xqFx7l\nbc4leTvMqGRmURS4lzcQOwKBgQCDzA/i4sYfN25h21tcHXSpnsG3D2rJyQi5NCo/\nZjunA92/JqOTGuiFcLGHEszhhtY3ZXJET1LNz18vtzKJnpqrvOnYXlOVW/U+SqDQ\n8JDb1c/PVZGuY1KrXkR9HLiW3kz5IJ3S3PFdUVYdeTN8BQxXCyg4V12nJJtJs912\ny0zN3wKBgGDS6YttCN6aI4EOABYE8fI1EYQ7vhfiYsaWGWSR1l6bQey7KR6M1ACz\nZzMASNyytVt12yXE4/Emv6/pYqigbDLfL1zQJSLJ3EHJYTh2RxjR+AaGDudYFG/T\nliQ9YXhV5Iu2x1pNwrtFnssDdaaGpfA7l3xC00BL7Z+SAJyI4QKA\n-----END RSA PRIVATE KEY-----\",\n    });\n\n    var https = new AliCloud.Slb.Listener(\"https\", new()\n    {\n        LoadBalancerId = instance.Id,\n        BackendPort = 80,\n        FrontendPort = 443,\n        Protocol = \"https\",\n        StickySession = \"on\",\n        StickySessionType = \"insert\",\n        Cookie = \"testslblistenercookie\",\n        CookieTimeout = 86400,\n        HealthCheck = \"on\",\n        HealthCheckUri = \"/cons\",\n        HealthCheckConnectPort = 20,\n        HealthyThreshold = 8,\n        UnhealthyThreshold = 8,\n        HealthCheckTimeout = 8,\n        HealthCheckInterval = 5,\n        HealthCheckHttpCode = \"http_2xx,http_3xx\",\n        Bandwidth = 10,\n        ServerCertificateId = domainExtensionServerCertificate.Id,\n    });\n\n    var example1 = new AliCloud.Slb.DomainExtension(\"example1\", new()\n    {\n        LoadBalancerId = instance.Id,\n        FrontendPort = https.FrontendPort,\n        Domain = \"www.test.com\",\n        ServerCertificateId = domainExtensionServerCertificate.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tslbDomainExtensionName := \"forDomainExtension\"\n\t\tif param := cfg.Get(\"slbDomainExtensionName\"); param != \"\" {\n\t\t\tslbDomainExtensionName = param\n\t\t}\n\t\tdomainExtension, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdomainExtensionNetwork, err := vpc.NewNetwork(ctx, \"domain_extension\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName: pulumi.String(slbDomainExtensionName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdomainExtensionSwitch, err := vpc.NewSwitch(ctx, \"domain_extension\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       domainExtensionNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(domainExtension.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(slbDomainExtensionName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := slb.NewApplicationLoadBalancer(ctx, \"instance\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(slbDomainExtensionName),\n\t\t\tAddressType:      pulumi.String(\"intranet\"),\n\t\t\tLoadBalancerSpec: pulumi.String(\"slb.s2.small\"),\n\t\t\tVswitchId:        domainExtensionSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdomainExtensionServerCertificate, err := slb.NewServerCertificate(ctx, \"domain_extension\", \u0026slb.ServerCertificateArgs{\n\t\t\tName: pulumi.String(\"tf-testAccSlbServerCertificate\"),\n\t\t\tServerCertificate: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIDdjCCAl4CCQCcm+erkcKN7DANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJj\nbjELMAkGA1UECAwCYmoxEDAOBgNVBAcMB2JlaWppbmcxDzANBgNVBAoMBmFsaXl1\nbjELMAkGA1UECwwCc2MxFTATBgNVBAMMDHd3dy50ZXN0LmNvbTEaMBgGCSqGSIb3\nDQEJARYLMTIzQDEyMy5jb20wHhcNMTkwNDI2MDM0ODAxWhcNMjQwNDI1MDM0ODAx\nWjB9MQswCQYDVQQGEwJjbjELMAkGA1UECAwCYmoxEDAOBgNVBAcMB2JlaWppbmcx\nDzANBgNVBAoMBmFsaXl1bjELMAkGA1UECwwCc2MxFTATBgNVBAMMDHd3dy50ZXN0\nLmNvbTEaMBgGCSqGSIb3DQEJARYLMTIzQDEyMy5jb20wggEiMA0GCSqGSIb3DQEB\nAQUAA4IBDwAwggEKAoIBAQDKMKF5qmN/uoMjdH3D8aPRcUOA0s8rZpYhG8zbkF1j\n8gHYoB/FDvM7G7dfVsyjbMwLOxKvAhWvHHSpEz/t7gB+QdwrAMiMJwGmtCnXrh2E\nWiXgalMe1y4a/T5R7q+m4T1zFATf+kbnHWfkSGF4W7b6UBoaH+9StQ95CnqzNf/2\np/Of7+S0XzCxFXw8GIVzZk0xFe6lHJzaq06f3mvzrD+4rpO56tTUvrgTY/n61gsF\nZP7f0CJ2JQh6eNRFOEUSfxKu/Dy/+IsQxorCJY2Q59ZAf3rXrqDN104jw9PlwnLl\nqfZz3RMODN6BWjxE8rvRtT0qMfuAfv1gjBdWZN0hUYBRAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAABzo82TxGp5poVkd5pLWj5ACgcBv8Cs6oH9D+4Jz9BmyuBUsQXh\n2aG0hQAe1mU61C9konsl/GTW8umJQ4M4lYEztXXwMf5PlBMGwebM0ZbSGg6jKtZg\nWCgJ3eP/FMmyXGL5Jji5+e09eObhUDVle4tdi0On97zBoz85W02rgWFAqZJwiEAP\nt+c7jX7uOSBq2/38iGStlrX5yB1at/gJXXiA5CL5OtlR3Okvb0/QH37efO1Nu39m\nlFi0ODPAVyXjVypAiLguDxPn6AtDTdk9Iw9B19OD4NrzNRWgSSX5vuxo/VcRcgWk\n3gEe9Ca0ZKN20q9XgthAiFFjl1S9ZgdA6Zc=\n-----END CERTIFICATE-----`),\n\t\t\tPrivateKey: pulumi.String(`-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAyjCheapjf7qDI3R9w/Gj0XFDgNLPK2aWIRvM25BdY/IB2KAf\nxQ7zOxu3X1bMo2zMCzsSrwIVrxx0qRM/7e4AfkHcKwDIjCcBprQp164dhFol4GpT\nHtcuGv0+Ue6vpuE9cxQE3/pG5x1n5EhheFu2+lAaGh/vUrUPeQp6szX/9qfzn+/k\ntF8wsRV8PBiFc2ZNMRXupRyc2qtOn95r86w/uK6TuerU1L64E2P5+tYLBWT+39Ai\ndiUIenjURThFEn8Srvw8v/iLEMaKwiWNkOfWQH96166gzddOI8PT5cJy5an2c90T\nDgzegVo8RPK70bU9KjH7gH79YIwXVmTdIVGAUQIDAQABAoIBAE1J4a/8biR5S3/W\nG+03BYQeY8tuyjqw8FqfoeOcf9agwAvqybouSNQjeCk9qOQfxq/UWQQFK/zQR9gJ\nv7pX7GBXFK5rkj3g+0SaQhRsPmRFgY0Tl8qGPt2aSKRRNVv5ZeADmwlzRn86QmiF\nMp0rkfqFfDTYWEepZszCML0ouzuxsW/9tq7rvtSjsgATNt31B3vFa3D3JBi31jUh\n5nfR9A3bATze7mQw3byEDiVl5ASRDgYyur403P1fDnMy9DBHZ8NaPOsFF6OBpJal\nBJsG5z00hll5PFN2jfmBQKlvAeU7wfwqdaSnGHOfqf2DeTTaFjIQ4gUhRn/m6pLo\n6kXttLECgYEA9sng0Qz/TcPFfM4tQ1gyvB1cKnnGIwg1FP8sfUjbbEgjaHhA224S\nk3BxtX2Kq6fhTXuwusAFc6OVMAZ76FgrQ5K4Ci7+DTsrF28z4b8td+p+lO/DxgP9\nlTgN+ddsiTOV4fUef9Z3yY0Zr0CnBUMbQYRaV2UIbCdiB0G4V/bt9TsCgYEA0bya\nOo9wGI0RJV0bYP7qwO74Ra1/i1viWbRlS7jU37Q+AZstrlKcQ5CTPzOjKFKMiUzl\n4miWacZ0/q2n+Mvd7NbXGXTLijahnyOYKaHJYyh4oBymfkgAifRstE0Ki9gdvArb\n/I+emC0GvLSyfGN8UUeDJs4NmqdEXGqjo2JOV+MCgYALFv1MR5o9Y1u/hQBRs2fs\nPiGDIx+9OUQxYloccyaxEfjNXAIGGkcpavchIbgWiJ++PJ2vdquIC8TLeK8evL+M\n9M3iX0Q5UfxYvD2HmnCvn9D6Xl/cyRcfGnq+TGjrLW9BzSMGuZt+aiHKV0xqFx7l\nbc4leTvMqGRmURS4lzcQOwKBgQCDzA/i4sYfN25h21tcHXSpnsG3D2rJyQi5NCo/\nZjunA92/JqOTGuiFcLGHEszhhtY3ZXJET1LNz18vtzKJnpqrvOnYXlOVW/U+SqDQ\n8JDb1c/PVZGuY1KrXkR9HLiW3kz5IJ3S3PFdUVYdeTN8BQxXCyg4V12nJJtJs912\ny0zN3wKBgGDS6YttCN6aI4EOABYE8fI1EYQ7vhfiYsaWGWSR1l6bQey7KR6M1ACz\nZzMASNyytVt12yXE4/Emv6/pYqigbDLfL1zQJSLJ3EHJYTh2RxjR+AaGDudYFG/T\nliQ9YXhV5Iu2x1pNwrtFnssDdaaGpfA7l3xC00BL7Z+SAJyI4QKA\n-----END RSA PRIVATE KEY-----`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thttps, err := slb.NewListener(ctx, \"https\", \u0026slb.ListenerArgs{\n\t\t\tLoadBalancerId:         instance.ID(),\n\t\t\tBackendPort:            pulumi.Int(80),\n\t\t\tFrontendPort:           pulumi.Int(443),\n\t\t\tProtocol:               pulumi.String(\"https\"),\n\t\t\tStickySession:          pulumi.String(\"on\"),\n\t\t\tStickySessionType:      pulumi.String(\"insert\"),\n\t\t\tCookie:                 pulumi.String(\"testslblistenercookie\"),\n\t\t\tCookieTimeout:          pulumi.Int(86400),\n\t\t\tHealthCheck:            pulumi.String(\"on\"),\n\t\t\tHealthCheckUri:         pulumi.String(\"/cons\"),\n\t\t\tHealthCheckConnectPort: pulumi.Int(20),\n\t\t\tHealthyThreshold:       pulumi.Int(8),\n\t\t\tUnhealthyThreshold:     pulumi.Int(8),\n\t\t\tHealthCheckTimeout:     pulumi.Int(8),\n\t\t\tHealthCheckInterval:    pulumi.Int(5),\n\t\t\tHealthCheckHttpCode:    pulumi.String(\"http_2xx,http_3xx\"),\n\t\t\tBandwidth:              pulumi.Int(10),\n\t\t\tServerCertificateId:    domainExtensionServerCertificate.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = slb.NewDomainExtension(ctx, \"example1\", \u0026slb.DomainExtensionArgs{\n\t\t\tLoadBalancerId:      instance.ID(),\n\t\t\tFrontendPort:        https.FrontendPort,\n\t\t\tDomain:              pulumi.String(\"www.test.com\"),\n\t\t\tServerCertificateId: domainExtensionServerCertificate.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.slb.ServerCertificate;\nimport com.pulumi.alicloud.slb.ServerCertificateArgs;\nimport com.pulumi.alicloud.slb.Listener;\nimport com.pulumi.alicloud.slb.ListenerArgs;\nimport com.pulumi.alicloud.slb.DomainExtension;\nimport com.pulumi.alicloud.slb.DomainExtensionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var slbDomainExtensionName = config.get(\"slbDomainExtensionName\").orElse(\"forDomainExtension\");\n        final var domainExtension = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var domainExtensionNetwork = new Network(\"domainExtensionNetwork\", NetworkArgs.builder()\n            .vpcName(slbDomainExtensionName)\n            .build());\n\n        var domainExtensionSwitch = new Switch(\"domainExtensionSwitch\", SwitchArgs.builder()\n            .vpcId(domainExtensionNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(domainExtension.zones()[0].id())\n            .vswitchName(slbDomainExtensionName)\n            .build());\n\n        var instance = new ApplicationLoadBalancer(\"instance\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(slbDomainExtensionName)\n            .addressType(\"intranet\")\n            .loadBalancerSpec(\"slb.s2.small\")\n            .vswitchId(domainExtensionSwitch.id())\n            .build());\n\n        var domainExtensionServerCertificate = new ServerCertificate(\"domainExtensionServerCertificate\", ServerCertificateArgs.builder()\n            .name(\"tf-testAccSlbServerCertificate\")\n            .serverCertificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIDdjCCAl4CCQCcm+erkcKN7DANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJj\nbjELMAkGA1UECAwCYmoxEDAOBgNVBAcMB2JlaWppbmcxDzANBgNVBAoMBmFsaXl1\nbjELMAkGA1UECwwCc2MxFTATBgNVBAMMDHd3dy50ZXN0LmNvbTEaMBgGCSqGSIb3\nDQEJARYLMTIzQDEyMy5jb20wHhcNMTkwNDI2MDM0ODAxWhcNMjQwNDI1MDM0ODAx\nWjB9MQswCQYDVQQGEwJjbjELMAkGA1UECAwCYmoxEDAOBgNVBAcMB2JlaWppbmcx\nDzANBgNVBAoMBmFsaXl1bjELMAkGA1UECwwCc2MxFTATBgNVBAMMDHd3dy50ZXN0\nLmNvbTEaMBgGCSqGSIb3DQEJARYLMTIzQDEyMy5jb20wggEiMA0GCSqGSIb3DQEB\nAQUAA4IBDwAwggEKAoIBAQDKMKF5qmN/uoMjdH3D8aPRcUOA0s8rZpYhG8zbkF1j\n8gHYoB/FDvM7G7dfVsyjbMwLOxKvAhWvHHSpEz/t7gB+QdwrAMiMJwGmtCnXrh2E\nWiXgalMe1y4a/T5R7q+m4T1zFATf+kbnHWfkSGF4W7b6UBoaH+9StQ95CnqzNf/2\np/Of7+S0XzCxFXw8GIVzZk0xFe6lHJzaq06f3mvzrD+4rpO56tTUvrgTY/n61gsF\nZP7f0CJ2JQh6eNRFOEUSfxKu/Dy/+IsQxorCJY2Q59ZAf3rXrqDN104jw9PlwnLl\nqfZz3RMODN6BWjxE8rvRtT0qMfuAfv1gjBdWZN0hUYBRAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAABzo82TxGp5poVkd5pLWj5ACgcBv8Cs6oH9D+4Jz9BmyuBUsQXh\n2aG0hQAe1mU61C9konsl/GTW8umJQ4M4lYEztXXwMf5PlBMGwebM0ZbSGg6jKtZg\nWCgJ3eP/FMmyXGL5Jji5+e09eObhUDVle4tdi0On97zBoz85W02rgWFAqZJwiEAP\nt+c7jX7uOSBq2/38iGStlrX5yB1at/gJXXiA5CL5OtlR3Okvb0/QH37efO1Nu39m\nlFi0ODPAVyXjVypAiLguDxPn6AtDTdk9Iw9B19OD4NrzNRWgSSX5vuxo/VcRcgWk\n3gEe9Ca0ZKN20q9XgthAiFFjl1S9ZgdA6Zc=\n-----END CERTIFICATE-----            \"\"\")\n            .privateKey(\"\"\"\n-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAyjCheapjf7qDI3R9w/Gj0XFDgNLPK2aWIRvM25BdY/IB2KAf\nxQ7zOxu3X1bMo2zMCzsSrwIVrxx0qRM/7e4AfkHcKwDIjCcBprQp164dhFol4GpT\nHtcuGv0+Ue6vpuE9cxQE3/pG5x1n5EhheFu2+lAaGh/vUrUPeQp6szX/9qfzn+/k\ntF8wsRV8PBiFc2ZNMRXupRyc2qtOn95r86w/uK6TuerU1L64E2P5+tYLBWT+39Ai\ndiUIenjURThFEn8Srvw8v/iLEMaKwiWNkOfWQH96166gzddOI8PT5cJy5an2c90T\nDgzegVo8RPK70bU9KjH7gH79YIwXVmTdIVGAUQIDAQABAoIBAE1J4a/8biR5S3/W\nG+03BYQeY8tuyjqw8FqfoeOcf9agwAvqybouSNQjeCk9qOQfxq/UWQQFK/zQR9gJ\nv7pX7GBXFK5rkj3g+0SaQhRsPmRFgY0Tl8qGPt2aSKRRNVv5ZeADmwlzRn86QmiF\nMp0rkfqFfDTYWEepZszCML0ouzuxsW/9tq7rvtSjsgATNt31B3vFa3D3JBi31jUh\n5nfR9A3bATze7mQw3byEDiVl5ASRDgYyur403P1fDnMy9DBHZ8NaPOsFF6OBpJal\nBJsG5z00hll5PFN2jfmBQKlvAeU7wfwqdaSnGHOfqf2DeTTaFjIQ4gUhRn/m6pLo\n6kXttLECgYEA9sng0Qz/TcPFfM4tQ1gyvB1cKnnGIwg1FP8sfUjbbEgjaHhA224S\nk3BxtX2Kq6fhTXuwusAFc6OVMAZ76FgrQ5K4Ci7+DTsrF28z4b8td+p+lO/DxgP9\nlTgN+ddsiTOV4fUef9Z3yY0Zr0CnBUMbQYRaV2UIbCdiB0G4V/bt9TsCgYEA0bya\nOo9wGI0RJV0bYP7qwO74Ra1/i1viWbRlS7jU37Q+AZstrlKcQ5CTPzOjKFKMiUzl\n4miWacZ0/q2n+Mvd7NbXGXTLijahnyOYKaHJYyh4oBymfkgAifRstE0Ki9gdvArb\n/I+emC0GvLSyfGN8UUeDJs4NmqdEXGqjo2JOV+MCgYALFv1MR5o9Y1u/hQBRs2fs\nPiGDIx+9OUQxYloccyaxEfjNXAIGGkcpavchIbgWiJ++PJ2vdquIC8TLeK8evL+M\n9M3iX0Q5UfxYvD2HmnCvn9D6Xl/cyRcfGnq+TGjrLW9BzSMGuZt+aiHKV0xqFx7l\nbc4leTvMqGRmURS4lzcQOwKBgQCDzA/i4sYfN25h21tcHXSpnsG3D2rJyQi5NCo/\nZjunA92/JqOTGuiFcLGHEszhhtY3ZXJET1LNz18vtzKJnpqrvOnYXlOVW/U+SqDQ\n8JDb1c/PVZGuY1KrXkR9HLiW3kz5IJ3S3PFdUVYdeTN8BQxXCyg4V12nJJtJs912\ny0zN3wKBgGDS6YttCN6aI4EOABYE8fI1EYQ7vhfiYsaWGWSR1l6bQey7KR6M1ACz\nZzMASNyytVt12yXE4/Emv6/pYqigbDLfL1zQJSLJ3EHJYTh2RxjR+AaGDudYFG/T\nliQ9YXhV5Iu2x1pNwrtFnssDdaaGpfA7l3xC00BL7Z+SAJyI4QKA\n-----END RSA PRIVATE KEY-----            \"\"\")\n            .build());\n\n        var https = new Listener(\"https\", ListenerArgs.builder()\n            .loadBalancerId(instance.id())\n            .backendPort(80)\n            .frontendPort(443)\n            .protocol(\"https\")\n            .stickySession(\"on\")\n            .stickySessionType(\"insert\")\n            .cookie(\"testslblistenercookie\")\n            .cookieTimeout(86400)\n            .healthCheck(\"on\")\n            .healthCheckUri(\"/cons\")\n            .healthCheckConnectPort(20)\n            .healthyThreshold(8)\n            .unhealthyThreshold(8)\n            .healthCheckTimeout(8)\n            .healthCheckInterval(5)\n            .healthCheckHttpCode(\"http_2xx,http_3xx\")\n            .bandwidth(10)\n            .serverCertificateId(domainExtensionServerCertificate.id())\n            .build());\n\n        var example1 = new DomainExtension(\"example1\", DomainExtensionArgs.builder()\n            .loadBalancerId(instance.id())\n            .frontendPort(https.frontendPort())\n            .domain(\"www.test.com\")\n            .serverCertificateId(domainExtensionServerCertificate.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  # Create a new load balancer and domain extension\n  slbDomainExtensionName:\n    type: string\n    default: forDomainExtension\nresources:\n  domainExtensionNetwork:\n    type: alicloud:vpc:Network\n    name: domain_extension\n    properties:\n      vpcName: ${slbDomainExtensionName}\n  domainExtensionSwitch:\n    type: alicloud:vpc:Switch\n    name: domain_extension\n    properties:\n      vpcId: ${domainExtensionNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${domainExtension.zones[0].id}\n      vswitchName: ${slbDomainExtensionName}\n  instance:\n    type: alicloud:slb:ApplicationLoadBalancer\n    properties:\n      loadBalancerName: ${slbDomainExtensionName}\n      addressType: intranet\n      loadBalancerSpec: slb.s2.small\n      vswitchId: ${domainExtensionSwitch.id}\n  domainExtensionServerCertificate:\n    type: alicloud:slb:ServerCertificate\n    name: domain_extension\n    properties:\n      name: tf-testAccSlbServerCertificate\n      serverCertificate: |-\n        -----BEGIN CERTIFICATE-----\n        MIIDdjCCAl4CCQCcm+erkcKN7DANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJj\n        bjELMAkGA1UECAwCYmoxEDAOBgNVBAcMB2JlaWppbmcxDzANBgNVBAoMBmFsaXl1\n        bjELMAkGA1UECwwCc2MxFTATBgNVBAMMDHd3dy50ZXN0LmNvbTEaMBgGCSqGSIb3\n        DQEJARYLMTIzQDEyMy5jb20wHhcNMTkwNDI2MDM0ODAxWhcNMjQwNDI1MDM0ODAx\n        WjB9MQswCQYDVQQGEwJjbjELMAkGA1UECAwCYmoxEDAOBgNVBAcMB2JlaWppbmcx\n        DzANBgNVBAoMBmFsaXl1bjELMAkGA1UECwwCc2MxFTATBgNVBAMMDHd3dy50ZXN0\n        LmNvbTEaMBgGCSqGSIb3DQEJARYLMTIzQDEyMy5jb20wggEiMA0GCSqGSIb3DQEB\n        AQUAA4IBDwAwggEKAoIBAQDKMKF5qmN/uoMjdH3D8aPRcUOA0s8rZpYhG8zbkF1j\n        8gHYoB/FDvM7G7dfVsyjbMwLOxKvAhWvHHSpEz/t7gB+QdwrAMiMJwGmtCnXrh2E\n        WiXgalMe1y4a/T5R7q+m4T1zFATf+kbnHWfkSGF4W7b6UBoaH+9StQ95CnqzNf/2\n        p/Of7+S0XzCxFXw8GIVzZk0xFe6lHJzaq06f3mvzrD+4rpO56tTUvrgTY/n61gsF\n        ZP7f0CJ2JQh6eNRFOEUSfxKu/Dy/+IsQxorCJY2Q59ZAf3rXrqDN104jw9PlwnLl\n        qfZz3RMODN6BWjxE8rvRtT0qMfuAfv1gjBdWZN0hUYBRAgMBAAEwDQYJKoZIhvcN\n        AQELBQADggEBAABzo82TxGp5poVkd5pLWj5ACgcBv8Cs6oH9D+4Jz9BmyuBUsQXh\n        2aG0hQAe1mU61C9konsl/GTW8umJQ4M4lYEztXXwMf5PlBMGwebM0ZbSGg6jKtZg\n        WCgJ3eP/FMmyXGL5Jji5+e09eObhUDVle4tdi0On97zBoz85W02rgWFAqZJwiEAP\n        t+c7jX7uOSBq2/38iGStlrX5yB1at/gJXXiA5CL5OtlR3Okvb0/QH37efO1Nu39m\n        lFi0ODPAVyXjVypAiLguDxPn6AtDTdk9Iw9B19OD4NrzNRWgSSX5vuxo/VcRcgWk\n        3gEe9Ca0ZKN20q9XgthAiFFjl1S9ZgdA6Zc=\n        -----END CERTIFICATE-----\n      privateKey: |-\n        -----BEGIN RSA PRIVATE KEY-----\n        MIIEowIBAAKCAQEAyjCheapjf7qDI3R9w/Gj0XFDgNLPK2aWIRvM25BdY/IB2KAf\n        xQ7zOxu3X1bMo2zMCzsSrwIVrxx0qRM/7e4AfkHcKwDIjCcBprQp164dhFol4GpT\n        HtcuGv0+Ue6vpuE9cxQE3/pG5x1n5EhheFu2+lAaGh/vUrUPeQp6szX/9qfzn+/k\n        tF8wsRV8PBiFc2ZNMRXupRyc2qtOn95r86w/uK6TuerU1L64E2P5+tYLBWT+39Ai\n        diUIenjURThFEn8Srvw8v/iLEMaKwiWNkOfWQH96166gzddOI8PT5cJy5an2c90T\n        DgzegVo8RPK70bU9KjH7gH79YIwXVmTdIVGAUQIDAQABAoIBAE1J4a/8biR5S3/W\n        G+03BYQeY8tuyjqw8FqfoeOcf9agwAvqybouSNQjeCk9qOQfxq/UWQQFK/zQR9gJ\n        v7pX7GBXFK5rkj3g+0SaQhRsPmRFgY0Tl8qGPt2aSKRRNVv5ZeADmwlzRn86QmiF\n        Mp0rkfqFfDTYWEepZszCML0ouzuxsW/9tq7rvtSjsgATNt31B3vFa3D3JBi31jUh\n        5nfR9A3bATze7mQw3byEDiVl5ASRDgYyur403P1fDnMy9DBHZ8NaPOsFF6OBpJal\n        BJsG5z00hll5PFN2jfmBQKlvAeU7wfwqdaSnGHOfqf2DeTTaFjIQ4gUhRn/m6pLo\n        6kXttLECgYEA9sng0Qz/TcPFfM4tQ1gyvB1cKnnGIwg1FP8sfUjbbEgjaHhA224S\n        k3BxtX2Kq6fhTXuwusAFc6OVMAZ76FgrQ5K4Ci7+DTsrF28z4b8td+p+lO/DxgP9\n        lTgN+ddsiTOV4fUef9Z3yY0Zr0CnBUMbQYRaV2UIbCdiB0G4V/bt9TsCgYEA0bya\n        Oo9wGI0RJV0bYP7qwO74Ra1/i1viWbRlS7jU37Q+AZstrlKcQ5CTPzOjKFKMiUzl\n        4miWacZ0/q2n+Mvd7NbXGXTLijahnyOYKaHJYyh4oBymfkgAifRstE0Ki9gdvArb\n        /I+emC0GvLSyfGN8UUeDJs4NmqdEXGqjo2JOV+MCgYALFv1MR5o9Y1u/hQBRs2fs\n        PiGDIx+9OUQxYloccyaxEfjNXAIGGkcpavchIbgWiJ++PJ2vdquIC8TLeK8evL+M\n        9M3iX0Q5UfxYvD2HmnCvn9D6Xl/cyRcfGnq+TGjrLW9BzSMGuZt+aiHKV0xqFx7l\n        bc4leTvMqGRmURS4lzcQOwKBgQCDzA/i4sYfN25h21tcHXSpnsG3D2rJyQi5NCo/\n        ZjunA92/JqOTGuiFcLGHEszhhtY3ZXJET1LNz18vtzKJnpqrvOnYXlOVW/U+SqDQ\n        8JDb1c/PVZGuY1KrXkR9HLiW3kz5IJ3S3PFdUVYdeTN8BQxXCyg4V12nJJtJs912\n        y0zN3wKBgGDS6YttCN6aI4EOABYE8fI1EYQ7vhfiYsaWGWSR1l6bQey7KR6M1ACz\n        ZzMASNyytVt12yXE4/Emv6/pYqigbDLfL1zQJSLJ3EHJYTh2RxjR+AaGDudYFG/T\n        liQ9YXhV5Iu2x1pNwrtFnssDdaaGpfA7l3xC00BL7Z+SAJyI4QKA\n        -----END RSA PRIVATE KEY-----\n  https:\n    type: alicloud:slb:Listener\n    properties:\n      loadBalancerId: ${instance.id}\n      backendPort: 80\n      frontendPort: 443\n      protocol: https\n      stickySession: on\n      stickySessionType: insert\n      cookie: testslblistenercookie\n      cookieTimeout: 86400\n      healthCheck: on\n      healthCheckUri: /cons\n      healthCheckConnectPort: 20\n      healthyThreshold: 8\n      unhealthyThreshold: 8\n      healthCheckTimeout: 8\n      healthCheckInterval: 5\n      healthCheckHttpCode: http_2xx,http_3xx\n      bandwidth: 10\n      serverCertificateId: ${domainExtensionServerCertificate.id}\n  example1:\n    type: alicloud:slb:DomainExtension\n    properties:\n      loadBalancerId: ${instance.id}\n      frontendPort: ${https.frontendPort}\n      domain: www.test.com\n      serverCertificateId: ${domainExtensionServerCertificate.id}\nvariables:\n  domainExtension:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLoad balancer\u003cspan pulumi-lang-nodejs=\" domainExtension \" pulumi-lang-dotnet=\" DomainExtension \" pulumi-lang-go=\" domainExtension \" pulumi-lang-python=\" domain_extension \" pulumi-lang-yaml=\" domainExtension \" pulumi-lang-java=\" domainExtension \"\u003e domain_extension \u003c/span\u003ecan be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:slb/domainExtension:DomainExtension example de-abc123456\n```\n\n","properties":{"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. If true, this resource will not be deleted when its SLB instance enabled DeleteProtection. Default to false.\n"},"domain":{"type":"string","description":"The domain name.\n"},"frontendPort":{"type":"integer","description":"The frontend port used by the HTTPS listener of the SLB instance. Valid values: 1–65535.\n"},"loadBalancerId":{"type":"string","description":"The ID of the SLB instance.\n"},"serverCertificateId":{"type":"string","description":"The ID of the certificate used by the domain name.\n"}},"required":["domain","frontendPort","loadBalancerId","serverCertificateId"],"inputProperties":{"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. If true, this resource will not be deleted when its SLB instance enabled DeleteProtection. Default to false.\n"},"domain":{"type":"string","description":"The domain name.\n","willReplaceOnChanges":true},"frontendPort":{"type":"integer","description":"The frontend port used by the HTTPS listener of the SLB instance. Valid values: 1–65535.\n","willReplaceOnChanges":true},"loadBalancerId":{"type":"string","description":"The ID of the SLB instance.\n","willReplaceOnChanges":true},"serverCertificateId":{"type":"string","description":"The ID of the certificate used by the domain name.\n"}},"requiredInputs":["domain","frontendPort","loadBalancerId","serverCertificateId"],"stateInputs":{"description":"Input properties used for looking up and filtering DomainExtension resources.\n","properties":{"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. If true, this resource will not be deleted when its SLB instance enabled DeleteProtection. Default to false.\n"},"domain":{"type":"string","description":"The domain name.\n","willReplaceOnChanges":true},"frontendPort":{"type":"integer","description":"The frontend port used by the HTTPS listener of the SLB instance. Valid values: 1–65535.\n","willReplaceOnChanges":true},"loadBalancerId":{"type":"string","description":"The ID of the SLB instance.\n","willReplaceOnChanges":true},"serverCertificateId":{"type":"string","description":"The ID of the certificate used by the domain name.\n"}},"type":"object"}},"alicloud:slb/listener:Listener":{"description":"Provides a Classic Load Balancer (SLB) Load Balancer Listener resource.\n\nFor information about Classic Load Balancer (SLB) and how to use it, see [What is Classic Load Balancer](https://www.alibabacloud.com/help/doc-detail/27539.htm).\n\nFor information about listener and how to use it, please see the following:\n\n* [Configure a HTTP Classic Load Balancer (SLB) Listener](https://www.alibabacloud.com/help/doc-detail/27592.htm).\n* [Configure a HTTPS Classic Load Balancer (SLB) Listener](https://www.alibabacloud.com/help/doc-detail/27593.htm).\n* [Configure a TCP Classic Load Balancer (SLB) Listener](https://www.alibabacloud.com/help/doc-detail/27594.htm).\n* [Configure a UDP Classic Load Balancer (SLB) Listener](https://www.alibabacloud.com/help/doc-detail/27595.htm).\n\n\u003e **NOTE:** Available since v1.0.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst listener = new alicloud.slb.ApplicationLoadBalancer(\"listener\", {\n    loadBalancerName: `${name}-${_default.result}`,\n    internetChargeType: \"PayByTraffic\",\n    addressType: \"internet\",\n    instanceChargeType: \"PayByCLCU\",\n});\nconst listenerAcl = new alicloud.slb.Acl(\"listener\", {\n    name: `${name}-${_default.result}`,\n    ipVersion: \"ipv4\",\n});\nconst listenerListener = new alicloud.slb.Listener(\"listener\", {\n    loadBalancerId: listener.id,\n    backendPort: 80,\n    frontendPort: 80,\n    protocol: \"http\",\n    bandwidth: 10,\n    stickySession: \"on\",\n    stickySessionType: \"insert\",\n    cookieTimeout: 86400,\n    cookie: \"tfslblistenercookie\",\n    healthCheck: \"on\",\n    healthCheckDomain: \"ali.com\",\n    healthCheckUri: \"/cons\",\n    healthCheckConnectPort: 20,\n    healthyThreshold: 8,\n    unhealthyThreshold: 8,\n    healthCheckTimeout: 8,\n    healthCheckInterval: 5,\n    healthCheckHttpCode: \"http_2xx,http_3xx\",\n    xForwardedFor: {\n        retriveSlbIp: true,\n        retriveSlbId: true,\n    },\n    aclStatus: \"on\",\n    aclType: \"white\",\n    aclIds: [listenerAcl.id],\n    requestTimeout: 80,\n    idleTimeout: 30,\n});\nconst first = new alicloud.slb.AclEntryAttachment(\"first\", {\n    aclId: listenerAcl.id,\n    entry: \"10.10.10.0/24\",\n    comment: \"first\",\n});\nconst second = new alicloud.slb.AclEntryAttachment(\"second\", {\n    aclId: listenerAcl.id,\n    entry: \"168.10.10.0/24\",\n    comment: \"second\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nlistener = alicloud.slb.ApplicationLoadBalancer(\"listener\",\n    load_balancer_name=f\"{name}-{default['result']}\",\n    internet_charge_type=\"PayByTraffic\",\n    address_type=\"internet\",\n    instance_charge_type=\"PayByCLCU\")\nlistener_acl = alicloud.slb.Acl(\"listener\",\n    name=f\"{name}-{default['result']}\",\n    ip_version=\"ipv4\")\nlistener_listener = alicloud.slb.Listener(\"listener\",\n    load_balancer_id=listener.id,\n    backend_port=80,\n    frontend_port=80,\n    protocol=\"http\",\n    bandwidth=10,\n    sticky_session=\"on\",\n    sticky_session_type=\"insert\",\n    cookie_timeout=86400,\n    cookie=\"tfslblistenercookie\",\n    health_check=\"on\",\n    health_check_domain=\"ali.com\",\n    health_check_uri=\"/cons\",\n    health_check_connect_port=20,\n    healthy_threshold=8,\n    unhealthy_threshold=8,\n    health_check_timeout=8,\n    health_check_interval=5,\n    health_check_http_code=\"http_2xx,http_3xx\",\n    x_forwarded_for={\n        \"retrive_slb_ip\": True,\n        \"retrive_slb_id\": True,\n    },\n    acl_status=\"on\",\n    acl_type=\"white\",\n    acl_ids=[listener_acl.id],\n    request_timeout=80,\n    idle_timeout=30)\nfirst = alicloud.slb.AclEntryAttachment(\"first\",\n    acl_id=listener_acl.id,\n    entry=\"10.10.10.0/24\",\n    comment=\"first\")\nsecond = alicloud.slb.AclEntryAttachment(\"second\",\n    acl_id=listener_acl.id,\n    entry=\"168.10.10.0/24\",\n    comment=\"second\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var listener = new AliCloud.Slb.ApplicationLoadBalancer(\"listener\", new()\n    {\n        LoadBalancerName = $\"{name}-{@default.Result}\",\n        InternetChargeType = \"PayByTraffic\",\n        AddressType = \"internet\",\n        InstanceChargeType = \"PayByCLCU\",\n    });\n\n    var listenerAcl = new AliCloud.Slb.Acl(\"listener\", new()\n    {\n        Name = $\"{name}-{@default.Result}\",\n        IpVersion = \"ipv4\",\n    });\n\n    var listenerListener = new AliCloud.Slb.Listener(\"listener\", new()\n    {\n        LoadBalancerId = listener.Id,\n        BackendPort = 80,\n        FrontendPort = 80,\n        Protocol = \"http\",\n        Bandwidth = 10,\n        StickySession = \"on\",\n        StickySessionType = \"insert\",\n        CookieTimeout = 86400,\n        Cookie = \"tfslblistenercookie\",\n        HealthCheck = \"on\",\n        HealthCheckDomain = \"ali.com\",\n        HealthCheckUri = \"/cons\",\n        HealthCheckConnectPort = 20,\n        HealthyThreshold = 8,\n        UnhealthyThreshold = 8,\n        HealthCheckTimeout = 8,\n        HealthCheckInterval = 5,\n        HealthCheckHttpCode = \"http_2xx,http_3xx\",\n        XForwardedFor = new AliCloud.Slb.Inputs.ListenerXForwardedForArgs\n        {\n            RetriveSlbIp = true,\n            RetriveSlbId = true,\n        },\n        AclStatus = \"on\",\n        AclType = \"white\",\n        AclIds = new[]\n        {\n            listenerAcl.Id,\n        },\n        RequestTimeout = 80,\n        IdleTimeout = 30,\n    });\n\n    var first = new AliCloud.Slb.AclEntryAttachment(\"first\", new()\n    {\n        AclId = listenerAcl.Id,\n        Entry = \"10.10.10.0/24\",\n        Comment = \"first\",\n    });\n\n    var second = new AliCloud.Slb.AclEntryAttachment(\"second\", new()\n    {\n        AclId = listenerAcl.Id,\n        Entry = \"168.10.10.0/24\",\n        Comment = \"second\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlistener, err := slb.NewApplicationLoadBalancer(ctx, \"listener\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName:   pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tInternetChargeType: pulumi.String(\"PayByTraffic\"),\n\t\t\tAddressType:        pulumi.String(\"internet\"),\n\t\t\tInstanceChargeType: pulumi.String(\"PayByCLCU\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlistenerAcl, err := slb.NewAcl(ctx, \"listener\", \u0026slb.AclArgs{\n\t\t\tName:      pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tIpVersion: pulumi.String(\"ipv4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = slb.NewListener(ctx, \"listener\", \u0026slb.ListenerArgs{\n\t\t\tLoadBalancerId:         listener.ID(),\n\t\t\tBackendPort:            pulumi.Int(80),\n\t\t\tFrontendPort:           pulumi.Int(80),\n\t\t\tProtocol:               pulumi.String(\"http\"),\n\t\t\tBandwidth:              pulumi.Int(10),\n\t\t\tStickySession:          pulumi.String(\"on\"),\n\t\t\tStickySessionType:      pulumi.String(\"insert\"),\n\t\t\tCookieTimeout:          pulumi.Int(86400),\n\t\t\tCookie:                 pulumi.String(\"tfslblistenercookie\"),\n\t\t\tHealthCheck:            pulumi.String(\"on\"),\n\t\t\tHealthCheckDomain:      pulumi.String(\"ali.com\"),\n\t\t\tHealthCheckUri:         pulumi.String(\"/cons\"),\n\t\t\tHealthCheckConnectPort: pulumi.Int(20),\n\t\t\tHealthyThreshold:       pulumi.Int(8),\n\t\t\tUnhealthyThreshold:     pulumi.Int(8),\n\t\t\tHealthCheckTimeout:     pulumi.Int(8),\n\t\t\tHealthCheckInterval:    pulumi.Int(5),\n\t\t\tHealthCheckHttpCode:    pulumi.String(\"http_2xx,http_3xx\"),\n\t\t\tXForwardedFor: \u0026slb.ListenerXForwardedForArgs{\n\t\t\t\tRetriveSlbIp: pulumi.Bool(true),\n\t\t\t\tRetriveSlbId: pulumi.Bool(true),\n\t\t\t},\n\t\t\tAclStatus: pulumi.String(\"on\"),\n\t\t\tAclType:   pulumi.String(\"white\"),\n\t\t\tAclIds: pulumi.StringArray{\n\t\t\t\tlistenerAcl.ID(),\n\t\t\t},\n\t\t\tRequestTimeout: pulumi.Int(80),\n\t\t\tIdleTimeout:    pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = slb.NewAclEntryAttachment(ctx, \"first\", \u0026slb.AclEntryAttachmentArgs{\n\t\t\tAclId:   listenerAcl.ID(),\n\t\t\tEntry:   pulumi.String(\"10.10.10.0/24\"),\n\t\t\tComment: pulumi.String(\"first\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = slb.NewAclEntryAttachment(ctx, \"second\", \u0026slb.AclEntryAttachmentArgs{\n\t\t\tAclId:   listenerAcl.ID(),\n\t\t\tEntry:   pulumi.String(\"168.10.10.0/24\"),\n\t\t\tComment: pulumi.String(\"second\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.slb.Acl;\nimport com.pulumi.alicloud.slb.AclArgs;\nimport com.pulumi.alicloud.slb.Listener;\nimport com.pulumi.alicloud.slb.ListenerArgs;\nimport com.pulumi.alicloud.slb.inputs.ListenerXForwardedForArgs;\nimport com.pulumi.alicloud.slb.AclEntryAttachment;\nimport com.pulumi.alicloud.slb.AclEntryAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var listener = new ApplicationLoadBalancer(\"listener\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(String.format(\"%s-%s\", name,default_.result()))\n            .internetChargeType(\"PayByTraffic\")\n            .addressType(\"internet\")\n            .instanceChargeType(\"PayByCLCU\")\n            .build());\n\n        var listenerAcl = new Acl(\"listenerAcl\", AclArgs.builder()\n            .name(String.format(\"%s-%s\", name,default_.result()))\n            .ipVersion(\"ipv4\")\n            .build());\n\n        var listenerListener = new Listener(\"listenerListener\", ListenerArgs.builder()\n            .loadBalancerId(listener.id())\n            .backendPort(80)\n            .frontendPort(80)\n            .protocol(\"http\")\n            .bandwidth(10)\n            .stickySession(\"on\")\n            .stickySessionType(\"insert\")\n            .cookieTimeout(86400)\n            .cookie(\"tfslblistenercookie\")\n            .healthCheck(\"on\")\n            .healthCheckDomain(\"ali.com\")\n            .healthCheckUri(\"/cons\")\n            .healthCheckConnectPort(20)\n            .healthyThreshold(8)\n            .unhealthyThreshold(8)\n            .healthCheckTimeout(8)\n            .healthCheckInterval(5)\n            .healthCheckHttpCode(\"http_2xx,http_3xx\")\n            .xForwardedFor(ListenerXForwardedForArgs.builder()\n                .retriveSlbIp(true)\n                .retriveSlbId(true)\n                .build())\n            .aclStatus(\"on\")\n            .aclType(\"white\")\n            .aclIds(listenerAcl.id())\n            .requestTimeout(80)\n            .idleTimeout(30)\n            .build());\n\n        var first = new AclEntryAttachment(\"first\", AclEntryAttachmentArgs.builder()\n            .aclId(listenerAcl.id())\n            .entry(\"10.10.10.0/24\")\n            .comment(\"first\")\n            .build());\n\n        var second = new AclEntryAttachment(\"second\", AclEntryAttachmentArgs.builder()\n            .aclId(listenerAcl.id())\n            .entry(\"168.10.10.0/24\")\n            .comment(\"second\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  listener:\n    type: alicloud:slb:ApplicationLoadBalancer\n    properties:\n      loadBalancerName: ${name}-${default.result}\n      internetChargeType: PayByTraffic\n      addressType: internet\n      instanceChargeType: PayByCLCU\n  listenerListener:\n    type: alicloud:slb:Listener\n    name: listener\n    properties:\n      loadBalancerId: ${listener.id}\n      backendPort: 80\n      frontendPort: 80\n      protocol: http\n      bandwidth: 10\n      stickySession: on\n      stickySessionType: insert\n      cookieTimeout: 86400\n      cookie: tfslblistenercookie\n      healthCheck: on\n      healthCheckDomain: ali.com\n      healthCheckUri: /cons\n      healthCheckConnectPort: 20\n      healthyThreshold: 8\n      unhealthyThreshold: 8\n      healthCheckTimeout: 8\n      healthCheckInterval: 5\n      healthCheckHttpCode: http_2xx,http_3xx\n      xForwardedFor:\n        retriveSlbIp: true\n        retriveSlbId: true\n      aclStatus: on\n      aclType: white\n      aclIds:\n        - ${listenerAcl.id}\n      requestTimeout: 80\n      idleTimeout: 30\n  listenerAcl:\n    type: alicloud:slb:Acl\n    name: listener\n    properties:\n      name: ${name}-${default.result}\n      ipVersion: ipv4\n  first:\n    type: alicloud:slb:AclEntryAttachment\n    properties:\n      aclId: ${listenerAcl.id}\n      entry: 10.10.10.0/24\n      comment: first\n  second:\n    type: alicloud:slb:AclEntryAttachment\n    properties:\n      aclId: ${listenerAcl.id}\n      entry: 168.10.10.0/24\n      comment: second\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nClassic Load Balancer (SLB) Load Balancer Listener can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:slb/listener:Listener example \u003cload_balancer_id\u003e:\u003cprotocol\u003e:\u003cfrontend_port\u003e\n```\n\n**NOTE:** Before provider version 1.57.1, Classic Load Balancer (SLB) Load Balancer Listener can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:slb/listener:Listener example \u003cload_balancer_id\u003e:\u003cfrontend_port\u003e\n```\n\n","properties":{"aclId":{"type":"string","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`aclId`\" pulumi-lang-dotnet=\"`AclId`\" pulumi-lang-go=\"`aclId`\" pulumi-lang-python=\"`acl_id`\" pulumi-lang-yaml=\"`aclId`\" pulumi-lang-java=\"`aclId`\"\u003e`acl_id`\u003c/span\u003e has been deprecated from provider version 1.249.0. New field \u003cspan pulumi-lang-nodejs=\"`aclIds`\" pulumi-lang-dotnet=\"`AclIds`\" pulumi-lang-go=\"`aclIds`\" pulumi-lang-python=\"`acl_ids`\" pulumi-lang-yaml=\"`aclIds`\" pulumi-lang-java=\"`aclIds`\"\u003e`acl_ids`\u003c/span\u003e instead."},"aclIds":{"type":"array","items":{"type":"string"}},"aclStatus":{"type":"string"},"aclType":{"type":"string"},"backendPort":{"type":"integer"},"bandwidth":{"type":"integer"},"caCertificateId":{"type":"string"},"cookie":{"type":"string"},"cookieTimeout":{"type":"integer"},"deleteProtectionValidation":{"type":"boolean"},"description":{"type":"string"},"enableHttp2":{"type":"string"},"establishedTimeout":{"type":"integer"},"forwardPort":{"type":"integer"},"frontendPort":{"type":"integer"},"gzip":{"type":"boolean"},"healthCheck":{"type":"string"},"healthCheckConnectPort":{"type":"integer"},"healthCheckDomain":{"type":"string"},"healthCheckHttpCode":{"type":"string"},"healthCheckInterval":{"type":"integer"},"healthCheckMethod":{"type":"string"},"healthCheckTimeout":{"type":"integer"},"healthCheckType":{"type":"string"},"healthCheckUri":{"type":"string"},"healthyThreshold":{"type":"integer"},"idleTimeout":{"type":"integer"},"listenerForward":{"type":"string"},"loadBalancerId":{"type":"string"},"masterSlaveServerGroupId":{"type":"string"},"persistenceTimeout":{"type":"integer"},"protocol":{"type":"string"},"proxyProtocolV2Enabled":{"type":"boolean"},"requestTimeout":{"type":"integer"},"scheduler":{"type":"string"},"serverCertificateId":{"type":"string"},"serverGroupId":{"type":"string"},"sslCertificateId":{"type":"string","deprecationMessage":"Field 'ssl_certificate_id' has been deprecated from 1.59.0 and using 'server_certificate_id' instead."},"stickySession":{"type":"string"},"stickySessionType":{"type":"string"},"tlsCipherPolicy":{"type":"string"},"unhealthyThreshold":{"type":"integer"},"xForwardedFor":{"$ref":"#/types/alicloud:slb/ListenerXForwardedFor:ListenerXForwardedFor","description":"Whether to set additional HTTP Header field \"X-Forwarded-For\".\n"}},"required":["aclId","aclIds","bandwidth","frontendPort","healthCheckConnectPort","healthCheckHttpCode","healthCheckMethod","listenerForward","loadBalancerId","protocol","proxyProtocolV2Enabled","serverCertificateId","sslCertificateId","xForwardedFor"],"inputProperties":{"aclId":{"type":"string","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`aclId`\" pulumi-lang-dotnet=\"`AclId`\" pulumi-lang-go=\"`aclId`\" pulumi-lang-python=\"`acl_id`\" pulumi-lang-yaml=\"`aclId`\" pulumi-lang-java=\"`aclId`\"\u003e`acl_id`\u003c/span\u003e has been deprecated from provider version 1.249.0. New field \u003cspan pulumi-lang-nodejs=\"`aclIds`\" pulumi-lang-dotnet=\"`AclIds`\" pulumi-lang-go=\"`aclIds`\" pulumi-lang-python=\"`acl_ids`\" pulumi-lang-yaml=\"`aclIds`\" pulumi-lang-java=\"`aclIds`\"\u003e`acl_ids`\u003c/span\u003e instead."},"aclIds":{"type":"array","items":{"type":"string"}},"aclStatus":{"type":"string"},"aclType":{"type":"string"},"backendPort":{"type":"integer","willReplaceOnChanges":true},"bandwidth":{"type":"integer"},"caCertificateId":{"type":"string"},"cookie":{"type":"string"},"cookieTimeout":{"type":"integer"},"deleteProtectionValidation":{"type":"boolean"},"description":{"type":"string"},"enableHttp2":{"type":"string"},"establishedTimeout":{"type":"integer"},"forwardPort":{"type":"integer","willReplaceOnChanges":true},"frontendPort":{"type":"integer","willReplaceOnChanges":true},"gzip":{"type":"boolean"},"healthCheck":{"type":"string"},"healthCheckConnectPort":{"type":"integer"},"healthCheckDomain":{"type":"string"},"healthCheckHttpCode":{"type":"string"},"healthCheckInterval":{"type":"integer"},"healthCheckMethod":{"type":"string"},"healthCheckTimeout":{"type":"integer"},"healthCheckType":{"type":"string"},"healthCheckUri":{"type":"string"},"healthyThreshold":{"type":"integer"},"idleTimeout":{"type":"integer"},"listenerForward":{"type":"string","willReplaceOnChanges":true},"loadBalancerId":{"type":"string","willReplaceOnChanges":true},"masterSlaveServerGroupId":{"type":"string"},"persistenceTimeout":{"type":"integer"},"protocol":{"type":"string","willReplaceOnChanges":true},"proxyProtocolV2Enabled":{"type":"boolean"},"requestTimeout":{"type":"integer"},"scheduler":{"type":"string"},"serverCertificateId":{"type":"string"},"serverGroupId":{"type":"string"},"sslCertificateId":{"type":"string","deprecationMessage":"Field 'ssl_certificate_id' has been deprecated from 1.59.0 and using 'server_certificate_id' instead."},"stickySession":{"type":"string"},"stickySessionType":{"type":"string"},"tlsCipherPolicy":{"type":"string"},"unhealthyThreshold":{"type":"integer"},"xForwardedFor":{"$ref":"#/types/alicloud:slb/ListenerXForwardedFor:ListenerXForwardedFor","description":"Whether to set additional HTTP Header field \"X-Forwarded-For\".\n"}},"requiredInputs":["frontendPort","loadBalancerId","protocol"],"stateInputs":{"description":"Input properties used for looking up and filtering Listener resources.\n","properties":{"aclId":{"type":"string","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`aclId`\" pulumi-lang-dotnet=\"`AclId`\" pulumi-lang-go=\"`aclId`\" pulumi-lang-python=\"`acl_id`\" pulumi-lang-yaml=\"`aclId`\" pulumi-lang-java=\"`aclId`\"\u003e`acl_id`\u003c/span\u003e has been deprecated from provider version 1.249.0. New field \u003cspan pulumi-lang-nodejs=\"`aclIds`\" pulumi-lang-dotnet=\"`AclIds`\" pulumi-lang-go=\"`aclIds`\" pulumi-lang-python=\"`acl_ids`\" pulumi-lang-yaml=\"`aclIds`\" pulumi-lang-java=\"`aclIds`\"\u003e`acl_ids`\u003c/span\u003e instead."},"aclIds":{"type":"array","items":{"type":"string"}},"aclStatus":{"type":"string"},"aclType":{"type":"string"},"backendPort":{"type":"integer","willReplaceOnChanges":true},"bandwidth":{"type":"integer"},"caCertificateId":{"type":"string"},"cookie":{"type":"string"},"cookieTimeout":{"type":"integer"},"deleteProtectionValidation":{"type":"boolean"},"description":{"type":"string"},"enableHttp2":{"type":"string"},"establishedTimeout":{"type":"integer"},"forwardPort":{"type":"integer","willReplaceOnChanges":true},"frontendPort":{"type":"integer","willReplaceOnChanges":true},"gzip":{"type":"boolean"},"healthCheck":{"type":"string"},"healthCheckConnectPort":{"type":"integer"},"healthCheckDomain":{"type":"string"},"healthCheckHttpCode":{"type":"string"},"healthCheckInterval":{"type":"integer"},"healthCheckMethod":{"type":"string"},"healthCheckTimeout":{"type":"integer"},"healthCheckType":{"type":"string"},"healthCheckUri":{"type":"string"},"healthyThreshold":{"type":"integer"},"idleTimeout":{"type":"integer"},"listenerForward":{"type":"string","willReplaceOnChanges":true},"loadBalancerId":{"type":"string","willReplaceOnChanges":true},"masterSlaveServerGroupId":{"type":"string"},"persistenceTimeout":{"type":"integer"},"protocol":{"type":"string","willReplaceOnChanges":true},"proxyProtocolV2Enabled":{"type":"boolean"},"requestTimeout":{"type":"integer"},"scheduler":{"type":"string"},"serverCertificateId":{"type":"string"},"serverGroupId":{"type":"string"},"sslCertificateId":{"type":"string","deprecationMessage":"Field 'ssl_certificate_id' has been deprecated from 1.59.0 and using 'server_certificate_id' instead."},"stickySession":{"type":"string"},"stickySessionType":{"type":"string"},"tlsCipherPolicy":{"type":"string"},"unhealthyThreshold":{"type":"integer"},"xForwardedFor":{"$ref":"#/types/alicloud:slb/ListenerXForwardedFor:ListenerXForwardedFor","description":"Whether to set additional HTTP Header field \"X-Forwarded-For\".\n"}},"type":"object"}},"alicloud:slb/loadBalancer:LoadBalancer":{"description":"\u003e **NOTE:** Deprecated since v1.123.1.\n\n\u003e **DEPRECATED:** This resource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.slb.ApplicationLoadBalancer \" pulumi-lang-dotnet=\" alicloud.slb.ApplicationLoadBalancer \" pulumi-lang-go=\" slb.ApplicationLoadBalancer \" pulumi-lang-python=\" slb.ApplicationLoadBalancer \" pulumi-lang-yaml=\" alicloud.slb.ApplicationLoadBalancer \" pulumi-lang-java=\" alicloud.slb.ApplicationLoadBalancer \"\u003e alicloud.slb.ApplicationLoadBalancer \u003c/span\u003efrom version 1.123.1.\n\nProvides an Application Load Balancer resource.\n\n\u003e **NOTE:** At present, to avoid some unnecessary regulation confusion, SLB can not support alicloud international account to create \"paybybandwidth\" instance.\n\n\u003e **NOTE:** The supported specifications vary by region. Currently not all regions support guaranteed-performance instances.\nFor more details about guaranteed-performance instance, see [Guaranteed-performance instances](https://www.alibabacloud.com/help/en/slb/classic-load-balancer/developer-reference/api-createloadbalancer-2#t4182.html).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraformslbconfig\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultLoadBalancer = new alicloud.slb.LoadBalancer(\"default\", {\n    loadBalancerName: name,\n    loadBalancerSpec: \"slb.s2.small\",\n    vswitchId: defaultSwitch.id,\n    tags: {\n        tag_a: \"1\",\n        tag_b: \"2\",\n        tag_c: \"3\",\n        tag_d: \"4\",\n        tag_e: \"5\",\n        tag_f: \"6\",\n        tag_g: \"7\",\n        tag_h: \"8\",\n        tag_i: \"9\",\n        tag_j: \"10\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraformslbconfig\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_load_balancer = alicloud.slb.LoadBalancer(\"default\",\n    load_balancer_name=name,\n    load_balancer_spec=\"slb.s2.small\",\n    vswitch_id=default_switch.id,\n    tags={\n        \"tag_a\": \"1\",\n        \"tag_b\": \"2\",\n        \"tag_c\": \"3\",\n        \"tag_d\": \"4\",\n        \"tag_e\": \"5\",\n        \"tag_f\": \"6\",\n        \"tag_g\": \"7\",\n        \"tag_h\": \"8\",\n        \"tag_i\": \"9\",\n        \"tag_j\": \"10\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraformslbconfig\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultLoadBalancer = new AliCloud.Slb.LoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = name,\n        LoadBalancerSpec = \"slb.s2.small\",\n        VswitchId = defaultSwitch.Id,\n        Tags = \n        {\n            { \"tag_a\", \"1\" },\n            { \"tag_b\", \"2\" },\n            { \"tag_c\", \"3\" },\n            { \"tag_d\", \"4\" },\n            { \"tag_e\", \"5\" },\n            { \"tag_f\", \"6\" },\n            { \"tag_g\", \"7\" },\n            { \"tag_h\", \"8\" },\n            { \"tag_i\", \"9\" },\n            { \"tag_j\", \"10\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraformslbconfig\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = slb.NewLoadBalancer(ctx, \"default\", \u0026slb.LoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tLoadBalancerSpec: pulumi.String(\"slb.s2.small\"),\n\t\t\tVswitchId:        defaultSwitch.ID(),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"tag_a\": pulumi.String(\"1\"),\n\t\t\t\t\"tag_b\": pulumi.String(\"2\"),\n\t\t\t\t\"tag_c\": pulumi.String(\"3\"),\n\t\t\t\t\"tag_d\": pulumi.String(\"4\"),\n\t\t\t\t\"tag_e\": pulumi.String(\"5\"),\n\t\t\t\t\"tag_f\": pulumi.String(\"6\"),\n\t\t\t\t\"tag_g\": pulumi.String(\"7\"),\n\t\t\t\t\"tag_h\": pulumi.String(\"8\"),\n\t\t\t\t\"tag_i\": pulumi.String(\"9\"),\n\t\t\t\t\"tag_j\": pulumi.String(\"10\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.slb.LoadBalancer;\nimport com.pulumi.alicloud.slb.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraformslbconfig\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .loadBalancerSpec(\"slb.s2.small\")\n            .vswitchId(defaultSwitch.id())\n            .tags(Map.ofEntries(\n                Map.entry(\"tag_a\", \"1\"),\n                Map.entry(\"tag_b\", \"2\"),\n                Map.entry(\"tag_c\", \"3\"),\n                Map.entry(\"tag_d\", \"4\"),\n                Map.entry(\"tag_e\", \"5\"),\n                Map.entry(\"tag_f\", \"6\"),\n                Map.entry(\"tag_g\", \"7\"),\n                Map.entry(\"tag_h\", \"8\"),\n                Map.entry(\"tag_i\", \"9\"),\n                Map.entry(\"tag_j\", \"10\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraformslbconfig\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultLoadBalancer:\n    type: alicloud:slb:LoadBalancer\n    name: default\n    properties:\n      loadBalancerName: ${name}\n      loadBalancerSpec: slb.s2.small\n      vswitchId: ${defaultSwitch.id}\n      tags:\n        tag_a: 1\n        tag_b: 2\n        tag_c: 3\n        tag_d: 4\n        tag_e: 5\n        tag_f: 6\n        tag_g: 7\n        tag_h: 8\n        tag_i: 9\n        tag_j: 10\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLoad balancer can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:slb/loadBalancer:LoadBalancer example lb-abc123456\n```\n\n","properties":{"address":{"type":"string","description":"Specify the IP address of the private network for the SLB instance, which must be in the destination CIDR block of the correspond ing switch.\n"},"addressIpVersion":{"type":"string","description":"The IP version of the SLB instance to be created, which can be set to ipv4 or ipv6 . Default to \"ipv4\". Now, only internet instance support ipv6 address.\n"},"addressType":{"type":"string","description":"The network type of the SLB instance. Valid values: [\"internet\", \"intranet\"]. If load balancer launched in VPC, this value must be \"intranet\".\n- internet: After an Internet SLB instance is created, the system allocates a public IP address so that the instance can forward requests from the Internet.\n- intranet: After an intranet SLB instance is created, the system allocates an intranet IP address so that the instance can only forward intranet requests.\n"},"bandwidth":{"type":"integer","description":"Valid\nvalue is between 1 and 1000, If argument \u003cspan pulumi-lang-nodejs=\"\"internetChargeType\"\" pulumi-lang-dotnet=\"\"InternetChargeType\"\" pulumi-lang-go=\"\"internetChargeType\"\" pulumi-lang-python=\"\"internet_charge_type\"\" pulumi-lang-yaml=\"\"internetChargeType\"\" pulumi-lang-java=\"\"internetChargeType\"\"\u003e\"internet_charge_type\"\u003c/span\u003e is \"paybytraffic\", then this value will be ignore.\n"},"deleteProtection":{"type":"string","description":"Whether enable the deletion protection or not. on: Enable deletion protection. off: Disable deletion protection. Default to off. Only postpaid instance support this function.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the load balancer. Valid values are \"PrePaid\" and \"PostPaid\". Default to \"PostPaid\".\n"},"internetChargeType":{"type":"string","description":"Valid\nvalues are `PayByBandwidth`, `PayByTraffic`. If this value is \"PayByBandwidth\", then argument \"internet\" must be \"true\". Default is \"PayByTraffic\". If load balancer launched in VPC, this value must be \"PayByTraffic\".\nBefore version 1.10.1, the valid values are \"paybybandwidth\" and \"paybytraffic\".\n"},"loadBalancerName":{"type":"string","description":"The name of the SLB. This name must be unique within your AliCloud account, can have a maximum of 80 characters,\nmust contain only alphanumeric characters or hyphens, such as \"-\",\"/\",\".\",\"_\", and must not begin or end with a hyphen. If not specified,\nTerraform will autogenerate a name beginning with `tf-lb`.\n"},"loadBalancerSpec":{"type":"string","description":"The specification of the Server Load Balancer instance. Default to empty string indicating it is \"Shared-Performance\" instance. Launching \"Performance-guaranteed\" instance, it must be specified. Valid values: `slb.s1.small`, `slb.s2.small`, `slb.s2.medium`.\n"},"masterZoneId":{"type":"string","description":"The primary zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.\n"},"modificationProtectionReason":{"type":"string","description":"The reason of modification protection. It's effective when \u003cspan pulumi-lang-nodejs=\"`modificationProtectionStatus`\" pulumi-lang-dotnet=\"`ModificationProtectionStatus`\" pulumi-lang-go=\"`modificationProtectionStatus`\" pulumi-lang-python=\"`modification_protection_status`\" pulumi-lang-yaml=\"`modificationProtectionStatus`\" pulumi-lang-java=\"`modificationProtectionStatus`\"\u003e`modification_protection_status`\u003c/span\u003e is `ConsoleProtection`.\n"},"modificationProtectionStatus":{"type":"string","description":"The status of modification protection. Valid values: `ConsoleProtection` and `NonProtection`. Default value: `NonProtection`.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.123.1 New field \u003cspan pulumi-lang-nodejs=\"`loadBalancerName`\" pulumi-lang-dotnet=\"`LoadBalancerName`\" pulumi-lang-go=\"`loadBalancerName`\" pulumi-lang-python=\"`load_balancer_name`\" pulumi-lang-yaml=\"`loadBalancerName`\" pulumi-lang-java=\"`loadBalancerName`\"\u003e`load_balancer_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'load_balancer_name' instead"},"paymentType":{"type":"string","description":"The billing method of the load balancer. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.\n"},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Valid values: [1-9, 12, 24, 36].\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the SLB belongs.\n"},"slaveZoneId":{"type":"string","description":"The standby zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.\n"},"specification":{"type":"string","description":"The specification of the Server Load Balancer instance. Default to empty string indicating it is \"Shared-Performance\" instance.\nLaunching \"[Performance-guaranteed](https://www.alibabacloud.com/help/en/slb/product-overview/announcements-and-updates)\" instance, it is must be specified and it valid values are: \"slb.s1.small\", \"slb.s2.small\", \"slb.s2.medium\",\n\"slb.s3.small\", \"slb.s3.medium\", \"slb.s3.large\" and \"slb.s4.large\".\n","deprecationMessage":"Field 'specification' has been deprecated from provider version 1.123.1. New field 'load_balancer_spec' instead"},"status":{"type":"string","description":"The status of slb load balancer. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`inactice`\" pulumi-lang-dotnet=\"`Inactice`\" pulumi-lang-go=\"`inactice`\" pulumi-lang-python=\"`inactice`\" pulumi-lang-yaml=\"`inactice`\" pulumi-lang-java=\"`inactice`\"\u003e`inactice`\u003c/span\u003e. The system default value is \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e.\n\n\u003e **NOTE:** A \"Shared-Performance\" instance can be changed to \"Performance-guaranteed\", but the change is irreversible.\n\n\u003e **NOTE:** To change a \"Shared-Performance\" instance to a \"Performance-guaranteed\" instance, the SLB will have a short probability of business interruption (10 seconds-30 seconds). Advise to change it during the business downturn, or migrate business to other SLB Instances by using GSLB before changing.\n\n\u003e **NOTE:** Currently, the alibaba cloud international account does not support creating a PrePaid SLB instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource. The \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e can have a maximum of 10 tag for every load balancer instance.\n"},"vswitchId":{"type":"string","description":"The vSwitch ID to launch in. If \u003cspan pulumi-lang-nodejs=\"`addressType`\" pulumi-lang-dotnet=\"`AddressType`\" pulumi-lang-go=\"`addressType`\" pulumi-lang-python=\"`address_type`\" pulumi-lang-yaml=\"`addressType`\" pulumi-lang-java=\"`addressType`\"\u003e`address_type`\u003c/span\u003e is internet, it will be ignore.\n"}},"required":["address","addressType","instanceChargeType","loadBalancerName","loadBalancerSpec","masterZoneId","modificationProtectionStatus","name","paymentType","resourceGroupId","slaveZoneId","specification","status","tags"],"inputProperties":{"address":{"type":"string","description":"Specify the IP address of the private network for the SLB instance, which must be in the destination CIDR block of the correspond ing switch.\n","willReplaceOnChanges":true},"addressIpVersion":{"type":"string","description":"The IP version of the SLB instance to be created, which can be set to ipv4 or ipv6 . Default to \"ipv4\". Now, only internet instance support ipv6 address.\n","willReplaceOnChanges":true},"addressType":{"type":"string","description":"The network type of the SLB instance. Valid values: [\"internet\", \"intranet\"]. If load balancer launched in VPC, this value must be \"intranet\".\n- internet: After an Internet SLB instance is created, the system allocates a public IP address so that the instance can forward requests from the Internet.\n- intranet: After an intranet SLB instance is created, the system allocates an intranet IP address so that the instance can only forward intranet requests.\n","willReplaceOnChanges":true},"bandwidth":{"type":"integer","description":"Valid\nvalue is between 1 and 1000, If argument \u003cspan pulumi-lang-nodejs=\"\"internetChargeType\"\" pulumi-lang-dotnet=\"\"InternetChargeType\"\" pulumi-lang-go=\"\"internetChargeType\"\" pulumi-lang-python=\"\"internet_charge_type\"\" pulumi-lang-yaml=\"\"internetChargeType\"\" pulumi-lang-java=\"\"internetChargeType\"\"\u003e\"internet_charge_type\"\u003c/span\u003e is \"paybytraffic\", then this value will be ignore.\n"},"deleteProtection":{"type":"string","description":"Whether enable the deletion protection or not. on: Enable deletion protection. off: Disable deletion protection. Default to off. Only postpaid instance support this function.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the load balancer. Valid values are \"PrePaid\" and \"PostPaid\". Default to \"PostPaid\".\n"},"internetChargeType":{"type":"string","description":"Valid\nvalues are `PayByBandwidth`, `PayByTraffic`. If this value is \"PayByBandwidth\", then argument \"internet\" must be \"true\". Default is \"PayByTraffic\". If load balancer launched in VPC, this value must be \"PayByTraffic\".\nBefore version 1.10.1, the valid values are \"paybybandwidth\" and \"paybytraffic\".\n"},"loadBalancerName":{"type":"string","description":"The name of the SLB. This name must be unique within your AliCloud account, can have a maximum of 80 characters,\nmust contain only alphanumeric characters or hyphens, such as \"-\",\"/\",\".\",\"_\", and must not begin or end with a hyphen. If not specified,\nTerraform will autogenerate a name beginning with `tf-lb`.\n"},"loadBalancerSpec":{"type":"string","description":"The specification of the Server Load Balancer instance. Default to empty string indicating it is \"Shared-Performance\" instance. Launching \"Performance-guaranteed\" instance, it must be specified. Valid values: `slb.s1.small`, `slb.s2.small`, `slb.s2.medium`.\n"},"masterZoneId":{"type":"string","description":"The primary zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.\n","willReplaceOnChanges":true},"modificationProtectionReason":{"type":"string","description":"The reason of modification protection. It's effective when \u003cspan pulumi-lang-nodejs=\"`modificationProtectionStatus`\" pulumi-lang-dotnet=\"`ModificationProtectionStatus`\" pulumi-lang-go=\"`modificationProtectionStatus`\" pulumi-lang-python=\"`modification_protection_status`\" pulumi-lang-yaml=\"`modificationProtectionStatus`\" pulumi-lang-java=\"`modificationProtectionStatus`\"\u003e`modification_protection_status`\u003c/span\u003e is `ConsoleProtection`.\n"},"modificationProtectionStatus":{"type":"string","description":"The status of modification protection. Valid values: `ConsoleProtection` and `NonProtection`. Default value: `NonProtection`.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.123.1 New field \u003cspan pulumi-lang-nodejs=\"`loadBalancerName`\" pulumi-lang-dotnet=\"`LoadBalancerName`\" pulumi-lang-go=\"`loadBalancerName`\" pulumi-lang-python=\"`load_balancer_name`\" pulumi-lang-yaml=\"`loadBalancerName`\" pulumi-lang-java=\"`loadBalancerName`\"\u003e`load_balancer_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'load_balancer_name' instead"},"paymentType":{"type":"string","description":"The billing method of the load balancer. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.\n"},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Valid values: [1-9, 12, 24, 36].\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the SLB belongs.\n","willReplaceOnChanges":true},"slaveZoneId":{"type":"string","description":"The standby zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.\n","willReplaceOnChanges":true},"specification":{"type":"string","description":"The specification of the Server Load Balancer instance. Default to empty string indicating it is \"Shared-Performance\" instance.\nLaunching \"[Performance-guaranteed](https://www.alibabacloud.com/help/en/slb/product-overview/announcements-and-updates)\" instance, it is must be specified and it valid values are: \"slb.s1.small\", \"slb.s2.small\", \"slb.s2.medium\",\n\"slb.s3.small\", \"slb.s3.medium\", \"slb.s3.large\" and \"slb.s4.large\".\n","deprecationMessage":"Field 'specification' has been deprecated from provider version 1.123.1. New field 'load_balancer_spec' instead"},"status":{"type":"string","description":"The status of slb load balancer. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`inactice`\" pulumi-lang-dotnet=\"`Inactice`\" pulumi-lang-go=\"`inactice`\" pulumi-lang-python=\"`inactice`\" pulumi-lang-yaml=\"`inactice`\" pulumi-lang-java=\"`inactice`\"\u003e`inactice`\u003c/span\u003e. The system default value is \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e.\n\n\u003e **NOTE:** A \"Shared-Performance\" instance can be changed to \"Performance-guaranteed\", but the change is irreversible.\n\n\u003e **NOTE:** To change a \"Shared-Performance\" instance to a \"Performance-guaranteed\" instance, the SLB will have a short probability of business interruption (10 seconds-30 seconds). Advise to change it during the business downturn, or migrate business to other SLB Instances by using GSLB before changing.\n\n\u003e **NOTE:** Currently, the alibaba cloud international account does not support creating a PrePaid SLB instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource. The \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e can have a maximum of 10 tag for every load balancer instance.\n"},"vswitchId":{"type":"string","description":"The vSwitch ID to launch in. If \u003cspan pulumi-lang-nodejs=\"`addressType`\" pulumi-lang-dotnet=\"`AddressType`\" pulumi-lang-go=\"`addressType`\" pulumi-lang-python=\"`address_type`\" pulumi-lang-yaml=\"`addressType`\" pulumi-lang-java=\"`addressType`\"\u003e`address_type`\u003c/span\u003e is internet, it will be ignore.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancer resources.\n","properties":{"address":{"type":"string","description":"Specify the IP address of the private network for the SLB instance, which must be in the destination CIDR block of the correspond ing switch.\n","willReplaceOnChanges":true},"addressIpVersion":{"type":"string","description":"The IP version of the SLB instance to be created, which can be set to ipv4 or ipv6 . Default to \"ipv4\". Now, only internet instance support ipv6 address.\n","willReplaceOnChanges":true},"addressType":{"type":"string","description":"The network type of the SLB instance. Valid values: [\"internet\", \"intranet\"]. If load balancer launched in VPC, this value must be \"intranet\".\n- internet: After an Internet SLB instance is created, the system allocates a public IP address so that the instance can forward requests from the Internet.\n- intranet: After an intranet SLB instance is created, the system allocates an intranet IP address so that the instance can only forward intranet requests.\n","willReplaceOnChanges":true},"bandwidth":{"type":"integer","description":"Valid\nvalue is between 1 and 1000, If argument \u003cspan pulumi-lang-nodejs=\"\"internetChargeType\"\" pulumi-lang-dotnet=\"\"InternetChargeType\"\" pulumi-lang-go=\"\"internetChargeType\"\" pulumi-lang-python=\"\"internet_charge_type\"\" pulumi-lang-yaml=\"\"internetChargeType\"\" pulumi-lang-java=\"\"internetChargeType\"\"\u003e\"internet_charge_type\"\u003c/span\u003e is \"paybytraffic\", then this value will be ignore.\n"},"deleteProtection":{"type":"string","description":"Whether enable the deletion protection or not. on: Enable deletion protection. off: Disable deletion protection. Default to off. Only postpaid instance support this function.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the load balancer. Valid values are \"PrePaid\" and \"PostPaid\". Default to \"PostPaid\".\n"},"internetChargeType":{"type":"string","description":"Valid\nvalues are `PayByBandwidth`, `PayByTraffic`. If this value is \"PayByBandwidth\", then argument \"internet\" must be \"true\". Default is \"PayByTraffic\". If load balancer launched in VPC, this value must be \"PayByTraffic\".\nBefore version 1.10.1, the valid values are \"paybybandwidth\" and \"paybytraffic\".\n"},"loadBalancerName":{"type":"string","description":"The name of the SLB. This name must be unique within your AliCloud account, can have a maximum of 80 characters,\nmust contain only alphanumeric characters or hyphens, such as \"-\",\"/\",\".\",\"_\", and must not begin or end with a hyphen. If not specified,\nTerraform will autogenerate a name beginning with `tf-lb`.\n"},"loadBalancerSpec":{"type":"string","description":"The specification of the Server Load Balancer instance. Default to empty string indicating it is \"Shared-Performance\" instance. Launching \"Performance-guaranteed\" instance, it must be specified. Valid values: `slb.s1.small`, `slb.s2.small`, `slb.s2.medium`.\n"},"masterZoneId":{"type":"string","description":"The primary zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.\n","willReplaceOnChanges":true},"modificationProtectionReason":{"type":"string","description":"The reason of modification protection. It's effective when \u003cspan pulumi-lang-nodejs=\"`modificationProtectionStatus`\" pulumi-lang-dotnet=\"`ModificationProtectionStatus`\" pulumi-lang-go=\"`modificationProtectionStatus`\" pulumi-lang-python=\"`modification_protection_status`\" pulumi-lang-yaml=\"`modificationProtectionStatus`\" pulumi-lang-java=\"`modificationProtectionStatus`\"\u003e`modification_protection_status`\u003c/span\u003e is `ConsoleProtection`.\n"},"modificationProtectionStatus":{"type":"string","description":"The status of modification protection. Valid values: `ConsoleProtection` and `NonProtection`. Default value: `NonProtection`.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.123.1 New field \u003cspan pulumi-lang-nodejs=\"`loadBalancerName`\" pulumi-lang-dotnet=\"`LoadBalancerName`\" pulumi-lang-go=\"`loadBalancerName`\" pulumi-lang-python=\"`load_balancer_name`\" pulumi-lang-yaml=\"`loadBalancerName`\" pulumi-lang-java=\"`loadBalancerName`\"\u003e`load_balancer_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'load_balancer_name' instead"},"paymentType":{"type":"string","description":"The billing method of the load balancer. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.\n"},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Valid values: [1-9, 12, 24, 36].\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the SLB belongs.\n","willReplaceOnChanges":true},"slaveZoneId":{"type":"string","description":"The standby zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.\n","willReplaceOnChanges":true},"specification":{"type":"string","description":"The specification of the Server Load Balancer instance. Default to empty string indicating it is \"Shared-Performance\" instance.\nLaunching \"[Performance-guaranteed](https://www.alibabacloud.com/help/en/slb/product-overview/announcements-and-updates)\" instance, it is must be specified and it valid values are: \"slb.s1.small\", \"slb.s2.small\", \"slb.s2.medium\",\n\"slb.s3.small\", \"slb.s3.medium\", \"slb.s3.large\" and \"slb.s4.large\".\n","deprecationMessage":"Field 'specification' has been deprecated from provider version 1.123.1. New field 'load_balancer_spec' instead"},"status":{"type":"string","description":"The status of slb load balancer. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`inactice`\" pulumi-lang-dotnet=\"`Inactice`\" pulumi-lang-go=\"`inactice`\" pulumi-lang-python=\"`inactice`\" pulumi-lang-yaml=\"`inactice`\" pulumi-lang-java=\"`inactice`\"\u003e`inactice`\u003c/span\u003e. The system default value is \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e.\n\n\u003e **NOTE:** A \"Shared-Performance\" instance can be changed to \"Performance-guaranteed\", but the change is irreversible.\n\n\u003e **NOTE:** To change a \"Shared-Performance\" instance to a \"Performance-guaranteed\" instance, the SLB will have a short probability of business interruption (10 seconds-30 seconds). Advise to change it during the business downturn, or migrate business to other SLB Instances by using GSLB before changing.\n\n\u003e **NOTE:** Currently, the alibaba cloud international account does not support creating a PrePaid SLB instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource. The \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e can have a maximum of 10 tag for every load balancer instance.\n"},"vswitchId":{"type":"string","description":"The vSwitch ID to launch in. If \u003cspan pulumi-lang-nodejs=\"`addressType`\" pulumi-lang-dotnet=\"`AddressType`\" pulumi-lang-go=\"`addressType`\" pulumi-lang-python=\"`address_type`\" pulumi-lang-yaml=\"`addressType`\" pulumi-lang-java=\"`addressType`\"\u003e`address_type`\u003c/span\u003e is internet, it will be ignore.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"This resource has been deprecated in favour of the ApplicationLoadBalancer resource"},"alicloud:slb/masterSlaveServerGroup:MasterSlaveServerGroup":{"description":"A master slave server group contains two ECS instances. The master slave server group can help you to define multiple listening dimension.\n\n\u003e **NOTE:** One ECS instance can be added into multiple master slave server groups.\n\n\u003e **NOTE:** One master slave server group can only add two ECS instances, which are master server and slave server.\n\n\u003e **NOTE:** One master slave server group can be attached with tcp/udp listeners in one load balancer.\n\n\u003e **NOTE:** One Classic and Internet load balancer, its master slave server group can add Classic and VPC ECS instances.\n\n\u003e **NOTE:** One Classic and Intranet load balancer, its master slave server group can only add Classic ECS instances.\n\n\u003e **NOTE:** One VPC load balancer, its master slave server group can only add the same VPC ECS instances.\n\n\u003e **NOTE:** Available since v1.54.0+\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst msServerGroup = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst msServerGroupGetInstanceTypes = msServerGroup.then(msServerGroup =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: msServerGroup.zones?.[0]?.id,\n    cpuCoreCount: 2,\n    memorySize: 8,\n    instanceTypeFamily: \"ecs.g6\",\n}));\nconst image = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst config = new pulumi.Config();\nconst slbMasterSlaveServerGroup = config.get(\"slbMasterSlaveServerGroup\") || \"forSlbMasterSlaveServerGroup\";\nconst main = new alicloud.vpc.Network(\"main\", {\n    vpcName: slbMasterSlaveServerGroup,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst mainSwitch = new alicloud.vpc.Switch(\"main\", {\n    vpcId: main.id,\n    cidrBlock: \"172.16.0.0/16\",\n    zoneId: msServerGroup.then(msServerGroup =\u003e msServerGroup.zones?.[0]?.id),\n    vswitchName: slbMasterSlaveServerGroup,\n});\nconst group = new alicloud.ecs.SecurityGroup(\"group\", {\n    securityGroupName: slbMasterSlaveServerGroup,\n    vpcId: main.id,\n});\nconst msServerGroupInstance: alicloud.ecs.Instance[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    msServerGroupInstance.push(new alicloud.ecs.Instance(`ms_server_group-${range.value}`, {\n        imageId: image.then(image =\u003e image.images?.[0]?.id),\n        instanceType: msServerGroupGetInstanceTypes.then(msServerGroupGetInstanceTypes =\u003e msServerGroupGetInstanceTypes.instanceTypes?.[0]?.id),\n        instanceName: slbMasterSlaveServerGroup,\n        securityGroups: [group.id],\n        internetChargeType: \"PayByTraffic\",\n        internetMaxBandwidthOut: 10,\n        availabilityZone: msServerGroup.then(msServerGroup =\u003e msServerGroup.zones?.[0]?.id),\n        instanceChargeType: \"PostPaid\",\n        systemDiskCategory: \"cloud_efficiency\",\n        vswitchId: mainSwitch.id,\n    }));\n}\nconst msServerGroupApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"ms_server_group\", {\n    loadBalancerName: slbMasterSlaveServerGroup,\n    vswitchId: mainSwitch.id,\n    loadBalancerSpec: \"slb.s2.small\",\n});\nconst msServerGroupEcsNetworkInterface = new alicloud.ecs.EcsNetworkInterface(\"ms_server_group\", {\n    networkInterfaceName: slbMasterSlaveServerGroup,\n    vswitchId: mainSwitch.id,\n    securityGroupIds: [group.id],\n});\nconst msServerGroupEcsNetworkInterfaceAttachment = new alicloud.ecs.EcsNetworkInterfaceAttachment(\"ms_server_group\", {\n    instanceId: msServerGroupInstance[0].id,\n    networkInterfaceId: msServerGroupEcsNetworkInterface.id,\n});\nconst groupMasterSlaveServerGroup = new alicloud.slb.MasterSlaveServerGroup(\"group\", {\n    loadBalancerId: msServerGroupApplicationLoadBalancer.id,\n    name: slbMasterSlaveServerGroup,\n    servers: [\n        {\n            serverId: msServerGroupInstance[0].id,\n            port: 100,\n            weight: 100,\n            serverType: \"Master\",\n        },\n        {\n            serverId: msServerGroupInstance[1].id,\n            port: 100,\n            weight: 100,\n            serverType: \"Slave\",\n        },\n    ],\n});\nconst tcp = new alicloud.slb.Listener(\"tcp\", {\n    loadBalancerId: msServerGroupApplicationLoadBalancer.id,\n    masterSlaveServerGroupId: groupMasterSlaveServerGroup.id,\n    frontendPort: 22,\n    protocol: \"tcp\",\n    bandwidth: 10,\n    healthCheckType: \"tcp\",\n    persistenceTimeout: 3600,\n    healthyThreshold: 8,\n    unhealthyThreshold: 8,\n    healthCheckTimeout: 8,\n    healthCheckInterval: 5,\n    healthCheckHttpCode: \"http_2xx\",\n    healthCheckConnectPort: 20,\n    healthCheckUri: \"/console\",\n    establishedTimeout: 600,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nms_server_group = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\nms_server_group_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=ms_server_group.zones[0].id,\n    cpu_core_count=2,\n    memory_size=8,\n    instance_type_family=\"ecs.g6\")\nimage = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\nconfig = pulumi.Config()\nslb_master_slave_server_group = config.get(\"slbMasterSlaveServerGroup\")\nif slb_master_slave_server_group is None:\n    slb_master_slave_server_group = \"forSlbMasterSlaveServerGroup\"\nmain = alicloud.vpc.Network(\"main\",\n    vpc_name=slb_master_slave_server_group,\n    cidr_block=\"172.16.0.0/16\")\nmain_switch = alicloud.vpc.Switch(\"main\",\n    vpc_id=main.id,\n    cidr_block=\"172.16.0.0/16\",\n    zone_id=ms_server_group.zones[0].id,\n    vswitch_name=slb_master_slave_server_group)\ngroup = alicloud.ecs.SecurityGroup(\"group\",\n    security_group_name=slb_master_slave_server_group,\n    vpc_id=main.id)\nms_server_group_instance = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    ms_server_group_instance.append(alicloud.ecs.Instance(f\"ms_server_group-{range['value']}\",\n        image_id=image.images[0].id,\n        instance_type=ms_server_group_get_instance_types.instance_types[0].id,\n        instance_name=slb_master_slave_server_group,\n        security_groups=[group.id],\n        internet_charge_type=\"PayByTraffic\",\n        internet_max_bandwidth_out=10,\n        availability_zone=ms_server_group.zones[0].id,\n        instance_charge_type=\"PostPaid\",\n        system_disk_category=\"cloud_efficiency\",\n        vswitch_id=main_switch.id))\nms_server_group_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"ms_server_group\",\n    load_balancer_name=slb_master_slave_server_group,\n    vswitch_id=main_switch.id,\n    load_balancer_spec=\"slb.s2.small\")\nms_server_group_ecs_network_interface = alicloud.ecs.EcsNetworkInterface(\"ms_server_group\",\n    network_interface_name=slb_master_slave_server_group,\n    vswitch_id=main_switch.id,\n    security_group_ids=[group.id])\nms_server_group_ecs_network_interface_attachment = alicloud.ecs.EcsNetworkInterfaceAttachment(\"ms_server_group\",\n    instance_id=ms_server_group_instance[0].id,\n    network_interface_id=ms_server_group_ecs_network_interface.id)\ngroup_master_slave_server_group = alicloud.slb.MasterSlaveServerGroup(\"group\",\n    load_balancer_id=ms_server_group_application_load_balancer.id,\n    name=slb_master_slave_server_group,\n    servers=[\n        {\n            \"server_id\": ms_server_group_instance[0].id,\n            \"port\": 100,\n            \"weight\": 100,\n            \"server_type\": \"Master\",\n        },\n        {\n            \"server_id\": ms_server_group_instance[1].id,\n            \"port\": 100,\n            \"weight\": 100,\n            \"server_type\": \"Slave\",\n        },\n    ])\ntcp = alicloud.slb.Listener(\"tcp\",\n    load_balancer_id=ms_server_group_application_load_balancer.id,\n    master_slave_server_group_id=group_master_slave_server_group.id,\n    frontend_port=22,\n    protocol=\"tcp\",\n    bandwidth=10,\n    health_check_type=\"tcp\",\n    persistence_timeout=3600,\n    healthy_threshold=8,\n    unhealthy_threshold=8,\n    health_check_timeout=8,\n    health_check_interval=5,\n    health_check_http_code=\"http_2xx\",\n    health_check_connect_port=20,\n    health_check_uri=\"/console\",\n    established_timeout=600)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var msServerGroup = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var msServerGroupGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = msServerGroup.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 2,\n        MemorySize = 8,\n        InstanceTypeFamily = \"ecs.g6\",\n    });\n\n    var image = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var config = new Config();\n    var slbMasterSlaveServerGroup = config.Get(\"slbMasterSlaveServerGroup\") ?? \"forSlbMasterSlaveServerGroup\";\n    var main = new AliCloud.Vpc.Network(\"main\", new()\n    {\n        VpcName = slbMasterSlaveServerGroup,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var mainSwitch = new AliCloud.Vpc.Switch(\"main\", new()\n    {\n        VpcId = main.Id,\n        CidrBlock = \"172.16.0.0/16\",\n        ZoneId = msServerGroup.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = slbMasterSlaveServerGroup,\n    });\n\n    var @group = new AliCloud.Ecs.SecurityGroup(\"group\", new()\n    {\n        SecurityGroupName = slbMasterSlaveServerGroup,\n        VpcId = main.Id,\n    });\n\n    var msServerGroupInstance = new List\u003cAliCloud.Ecs.Instance\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        msServerGroupInstance.Add(new AliCloud.Ecs.Instance($\"ms_server_group-{range.Value}\", new()\n        {\n            ImageId = image.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n            InstanceType = msServerGroupGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n            InstanceName = slbMasterSlaveServerGroup,\n            SecurityGroups = new[]\n            {\n                @group.Id,\n            },\n            InternetChargeType = \"PayByTraffic\",\n            InternetMaxBandwidthOut = 10,\n            AvailabilityZone = msServerGroup.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n            InstanceChargeType = \"PostPaid\",\n            SystemDiskCategory = \"cloud_efficiency\",\n            VswitchId = mainSwitch.Id,\n        }));\n    }\n    var msServerGroupApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"ms_server_group\", new()\n    {\n        LoadBalancerName = slbMasterSlaveServerGroup,\n        VswitchId = mainSwitch.Id,\n        LoadBalancerSpec = \"slb.s2.small\",\n    });\n\n    var msServerGroupEcsNetworkInterface = new AliCloud.Ecs.EcsNetworkInterface(\"ms_server_group\", new()\n    {\n        NetworkInterfaceName = slbMasterSlaveServerGroup,\n        VswitchId = mainSwitch.Id,\n        SecurityGroupIds = new[]\n        {\n            @group.Id,\n        },\n    });\n\n    var msServerGroupEcsNetworkInterfaceAttachment = new AliCloud.Ecs.EcsNetworkInterfaceAttachment(\"ms_server_group\", new()\n    {\n        InstanceId = msServerGroupInstance[0].Id,\n        NetworkInterfaceId = msServerGroupEcsNetworkInterface.Id,\n    });\n\n    var groupMasterSlaveServerGroup = new AliCloud.Slb.MasterSlaveServerGroup(\"group\", new()\n    {\n        LoadBalancerId = msServerGroupApplicationLoadBalancer.Id,\n        Name = slbMasterSlaveServerGroup,\n        Servers = new[]\n        {\n            new AliCloud.Slb.Inputs.MasterSlaveServerGroupServerArgs\n            {\n                ServerId = msServerGroupInstance[0].Id,\n                Port = 100,\n                Weight = 100,\n                ServerType = \"Master\",\n            },\n            new AliCloud.Slb.Inputs.MasterSlaveServerGroupServerArgs\n            {\n                ServerId = msServerGroupInstance[1].Id,\n                Port = 100,\n                Weight = 100,\n                ServerType = \"Slave\",\n            },\n        },\n    });\n\n    var tcp = new AliCloud.Slb.Listener(\"tcp\", new()\n    {\n        LoadBalancerId = msServerGroupApplicationLoadBalancer.Id,\n        MasterSlaveServerGroupId = groupMasterSlaveServerGroup.Id,\n        FrontendPort = 22,\n        Protocol = \"tcp\",\n        Bandwidth = 10,\n        HealthCheckType = \"tcp\",\n        PersistenceTimeout = 3600,\n        HealthyThreshold = 8,\n        UnhealthyThreshold = 8,\n        HealthCheckTimeout = 8,\n        HealthCheckInterval = 5,\n        HealthCheckHttpCode = \"http_2xx\",\n        HealthCheckConnectPort = 20,\n        HealthCheckUri = \"/console\",\n        EstablishedTimeout = 600,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmsServerGroup, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmsServerGroupGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone:   pulumi.StringRef(msServerGroup.Zones[0].Id),\n\t\t\tCpuCoreCount:       pulumi.IntRef(2),\n\t\t\tMemorySize:         pulumi.Float64Ref(8),\n\t\t\tInstanceTypeFamily: pulumi.StringRef(\"ecs.g6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\timage, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfg := config.New(ctx, \"\")\n\t\tslbMasterSlaveServerGroup := \"forSlbMasterSlaveServerGroup\"\n\t\tif param := cfg.Get(\"slbMasterSlaveServerGroup\"); param != \"\" {\n\t\t\tslbMasterSlaveServerGroup = param\n\t\t}\n\t\tmain, err := vpc.NewNetwork(ctx, \"main\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(slbMasterSlaveServerGroup),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainSwitch, err := vpc.NewSwitch(ctx, \"main\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       main.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/16\"),\n\t\t\tZoneId:      pulumi.String(msServerGroup.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(slbMasterSlaveServerGroup),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup, err := ecs.NewSecurityGroup(ctx, \"group\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(slbMasterSlaveServerGroup),\n\t\t\tVpcId:             main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar msServerGroupInstance []*ecs.Instance\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := ecs.NewInstance(ctx, fmt.Sprintf(\"ms_server_group-%v\", key0), \u0026ecs.InstanceArgs{\n\t\t\t\tImageId:      pulumi.String(image.Images[0].Id),\n\t\t\t\tInstanceType: pulumi.String(msServerGroupGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\t\tInstanceName: pulumi.String(slbMasterSlaveServerGroup),\n\t\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\t\tgroup.ID(),\n\t\t\t\t},\n\t\t\t\tInternetChargeType:      pulumi.String(\"PayByTraffic\"),\n\t\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t\t\tAvailabilityZone:        pulumi.String(msServerGroup.Zones[0].Id),\n\t\t\t\tInstanceChargeType:      pulumi.String(\"PostPaid\"),\n\t\t\t\tSystemDiskCategory:      pulumi.String(\"cloud_efficiency\"),\n\t\t\t\tVswitchId:               mainSwitch.ID(),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tmsServerGroupInstance = append(msServerGroupInstance, __res)\n\t\t}\n\t\tmsServerGroupApplicationLoadBalancer, err := slb.NewApplicationLoadBalancer(ctx, \"ms_server_group\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(slbMasterSlaveServerGroup),\n\t\t\tVswitchId:        mainSwitch.ID(),\n\t\t\tLoadBalancerSpec: pulumi.String(\"slb.s2.small\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmsServerGroupEcsNetworkInterface, err := ecs.NewEcsNetworkInterface(ctx, \"ms_server_group\", \u0026ecs.EcsNetworkInterfaceArgs{\n\t\t\tNetworkInterfaceName: pulumi.String(slbMasterSlaveServerGroup),\n\t\t\tVswitchId:            mainSwitch.ID(),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tgroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEcsNetworkInterfaceAttachment(ctx, \"ms_server_group\", \u0026ecs.EcsNetworkInterfaceAttachmentArgs{\n\t\t\tInstanceId:         msServerGroupInstance[0].ID(),\n\t\t\tNetworkInterfaceId: msServerGroupEcsNetworkInterface.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroupMasterSlaveServerGroup, err := slb.NewMasterSlaveServerGroup(ctx, \"group\", \u0026slb.MasterSlaveServerGroupArgs{\n\t\t\tLoadBalancerId: msServerGroupApplicationLoadBalancer.ID(),\n\t\t\tName:           pulumi.String(slbMasterSlaveServerGroup),\n\t\t\tServers: slb.MasterSlaveServerGroupServerArray{\n\t\t\t\t\u0026slb.MasterSlaveServerGroupServerArgs{\n\t\t\t\t\tServerId:   msServerGroupInstance[0].ID(),\n\t\t\t\t\tPort:       pulumi.Int(100),\n\t\t\t\t\tWeight:     pulumi.Int(100),\n\t\t\t\t\tServerType: pulumi.String(\"Master\"),\n\t\t\t\t},\n\t\t\t\t\u0026slb.MasterSlaveServerGroupServerArgs{\n\t\t\t\t\tServerId:   msServerGroupInstance[1].ID(),\n\t\t\t\t\tPort:       pulumi.Int(100),\n\t\t\t\t\tWeight:     pulumi.Int(100),\n\t\t\t\t\tServerType: pulumi.String(\"Slave\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = slb.NewListener(ctx, \"tcp\", \u0026slb.ListenerArgs{\n\t\t\tLoadBalancerId:           msServerGroupApplicationLoadBalancer.ID(),\n\t\t\tMasterSlaveServerGroupId: groupMasterSlaveServerGroup.ID(),\n\t\t\tFrontendPort:             pulumi.Int(22),\n\t\t\tProtocol:                 pulumi.String(\"tcp\"),\n\t\t\tBandwidth:                pulumi.Int(10),\n\t\t\tHealthCheckType:          pulumi.String(\"tcp\"),\n\t\t\tPersistenceTimeout:       pulumi.Int(3600),\n\t\t\tHealthyThreshold:         pulumi.Int(8),\n\t\t\tUnhealthyThreshold:       pulumi.Int(8),\n\t\t\tHealthCheckTimeout:       pulumi.Int(8),\n\t\t\tHealthCheckInterval:      pulumi.Int(5),\n\t\t\tHealthCheckHttpCode:      pulumi.String(\"http_2xx\"),\n\t\t\tHealthCheckConnectPort:   pulumi.Int(20),\n\t\t\tHealthCheckUri:           pulumi.String(\"/console\"),\n\t\t\tEstablishedTimeout:       pulumi.Int(600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterface;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfaceArgs;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfaceAttachment;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfaceAttachmentArgs;\nimport com.pulumi.alicloud.slb.MasterSlaveServerGroup;\nimport com.pulumi.alicloud.slb.MasterSlaveServerGroupArgs;\nimport com.pulumi.alicloud.slb.inputs.MasterSlaveServerGroupServerArgs;\nimport com.pulumi.alicloud.slb.Listener;\nimport com.pulumi.alicloud.slb.ListenerArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var msServerGroup = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var msServerGroupGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(msServerGroup.zones()[0].id())\n            .cpuCoreCount(2)\n            .memorySize(8)\n            .instanceTypeFamily(\"ecs.g6\")\n            .build());\n\n        final var image = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var slbMasterSlaveServerGroup = config.get(\"slbMasterSlaveServerGroup\").orElse(\"forSlbMasterSlaveServerGroup\");\n        var main = new Network(\"main\", NetworkArgs.builder()\n            .vpcName(slbMasterSlaveServerGroup)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var mainSwitch = new Switch(\"mainSwitch\", SwitchArgs.builder()\n            .vpcId(main.id())\n            .cidrBlock(\"172.16.0.0/16\")\n            .zoneId(msServerGroup.zones()[0].id())\n            .vswitchName(slbMasterSlaveServerGroup)\n            .build());\n\n        var group = new SecurityGroup(\"group\", SecurityGroupArgs.builder()\n            .securityGroupName(slbMasterSlaveServerGroup)\n            .vpcId(main.id())\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Instance(\"msServerGroupInstance-\" + i, InstanceArgs.builder()\n                .imageId(image.images()[0].id())\n                .instanceType(msServerGroupGetInstanceTypes.instanceTypes()[0].id())\n                .instanceName(slbMasterSlaveServerGroup)\n                .securityGroups(group.id())\n                .internetChargeType(\"PayByTraffic\")\n                .internetMaxBandwidthOut(10)\n                .availabilityZone(msServerGroup.zones()[0].id())\n                .instanceChargeType(\"PostPaid\")\n                .systemDiskCategory(\"cloud_efficiency\")\n                .vswitchId(mainSwitch.id())\n                .build());\n\n        \n}\n        var msServerGroupApplicationLoadBalancer = new ApplicationLoadBalancer(\"msServerGroupApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(slbMasterSlaveServerGroup)\n            .vswitchId(mainSwitch.id())\n            .loadBalancerSpec(\"slb.s2.small\")\n            .build());\n\n        var msServerGroupEcsNetworkInterface = new EcsNetworkInterface(\"msServerGroupEcsNetworkInterface\", EcsNetworkInterfaceArgs.builder()\n            .networkInterfaceName(slbMasterSlaveServerGroup)\n            .vswitchId(mainSwitch.id())\n            .securityGroupIds(group.id())\n            .build());\n\n        var msServerGroupEcsNetworkInterfaceAttachment = new EcsNetworkInterfaceAttachment(\"msServerGroupEcsNetworkInterfaceAttachment\", EcsNetworkInterfaceAttachmentArgs.builder()\n            .instanceId(msServerGroupInstance[0].id())\n            .networkInterfaceId(msServerGroupEcsNetworkInterface.id())\n            .build());\n\n        var groupMasterSlaveServerGroup = new MasterSlaveServerGroup(\"groupMasterSlaveServerGroup\", MasterSlaveServerGroupArgs.builder()\n            .loadBalancerId(msServerGroupApplicationLoadBalancer.id())\n            .name(slbMasterSlaveServerGroup)\n            .servers(            \n                MasterSlaveServerGroupServerArgs.builder()\n                    .serverId(msServerGroupInstance[0].id())\n                    .port(100)\n                    .weight(100)\n                    .serverType(\"Master\")\n                    .build(),\n                MasterSlaveServerGroupServerArgs.builder()\n                    .serverId(msServerGroupInstance[1].id())\n                    .port(100)\n                    .weight(100)\n                    .serverType(\"Slave\")\n                    .build())\n            .build());\n\n        var tcp = new Listener(\"tcp\", ListenerArgs.builder()\n            .loadBalancerId(msServerGroupApplicationLoadBalancer.id())\n            .masterSlaveServerGroupId(groupMasterSlaveServerGroup.id())\n            .frontendPort(22)\n            .protocol(\"tcp\")\n            .bandwidth(10)\n            .healthCheckType(\"tcp\")\n            .persistenceTimeout(3600)\n            .healthyThreshold(8)\n            .unhealthyThreshold(8)\n            .healthCheckTimeout(8)\n            .healthCheckInterval(5)\n            .healthCheckHttpCode(\"http_2xx\")\n            .healthCheckConnectPort(20)\n            .healthCheckUri(\"/console\")\n            .establishedTimeout(600)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  slbMasterSlaveServerGroup:\n    type: string\n    default: forSlbMasterSlaveServerGroup\nresources:\n  main:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${slbMasterSlaveServerGroup}\n      cidrBlock: 172.16.0.0/16\n  mainSwitch:\n    type: alicloud:vpc:Switch\n    name: main\n    properties:\n      vpcId: ${main.id}\n      cidrBlock: 172.16.0.0/16\n      zoneId: ${msServerGroup.zones[0].id}\n      vswitchName: ${slbMasterSlaveServerGroup}\n  group:\n    type: alicloud:ecs:SecurityGroup\n    properties:\n      securityGroupName: ${slbMasterSlaveServerGroup}\n      vpcId: ${main.id}\n  msServerGroupInstance:\n    type: alicloud:ecs:Instance\n    name: ms_server_group\n    properties:\n      imageId: ${image.images[0].id}\n      instanceType: ${msServerGroupGetInstanceTypes.instanceTypes[0].id}\n      instanceName: ${slbMasterSlaveServerGroup}\n      securityGroups:\n        - ${group.id}\n      internetChargeType: PayByTraffic\n      internetMaxBandwidthOut: '10'\n      availabilityZone: ${msServerGroup.zones[0].id}\n      instanceChargeType: PostPaid\n      systemDiskCategory: cloud_efficiency\n      vswitchId: ${mainSwitch.id}\n    options: {}\n  msServerGroupApplicationLoadBalancer:\n    type: alicloud:slb:ApplicationLoadBalancer\n    name: ms_server_group\n    properties:\n      loadBalancerName: ${slbMasterSlaveServerGroup}\n      vswitchId: ${mainSwitch.id}\n      loadBalancerSpec: slb.s2.small\n  msServerGroupEcsNetworkInterface:\n    type: alicloud:ecs:EcsNetworkInterface\n    name: ms_server_group\n    properties:\n      networkInterfaceName: ${slbMasterSlaveServerGroup}\n      vswitchId: ${mainSwitch.id}\n      securityGroupIds:\n        - ${group.id}\n  msServerGroupEcsNetworkInterfaceAttachment:\n    type: alicloud:ecs:EcsNetworkInterfaceAttachment\n    name: ms_server_group\n    properties:\n      instanceId: ${msServerGroupInstance[0].id}\n      networkInterfaceId: ${msServerGroupEcsNetworkInterface.id}\n  groupMasterSlaveServerGroup:\n    type: alicloud:slb:MasterSlaveServerGroup\n    name: group\n    properties:\n      loadBalancerId: ${msServerGroupApplicationLoadBalancer.id}\n      name: ${slbMasterSlaveServerGroup}\n      servers:\n        - serverId: ${msServerGroupInstance[0].id}\n          port: 100\n          weight: 100\n          serverType: Master\n        - serverId: ${msServerGroupInstance[1].id}\n          port: 100\n          weight: 100\n          serverType: Slave\n  tcp:\n    type: alicloud:slb:Listener\n    properties:\n      loadBalancerId: ${msServerGroupApplicationLoadBalancer.id}\n      masterSlaveServerGroupId: ${groupMasterSlaveServerGroup.id}\n      frontendPort: '22'\n      protocol: tcp\n      bandwidth: '10'\n      healthCheckType: tcp\n      persistenceTimeout: 3600\n      healthyThreshold: 8\n      unhealthyThreshold: 8\n      healthCheckTimeout: 8\n      healthCheckInterval: 5\n      healthCheckHttpCode: http_2xx\n      healthCheckConnectPort: 20\n      healthCheckUri: /console\n      establishedTimeout: 600\nvariables:\n  msServerGroup:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  msServerGroupGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${msServerGroup.zones[0].id}\n        cpuCoreCount: 2\n        memorySize: 8\n        instanceTypeFamily: ecs.g6\n  image:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLoad balancer master slave server group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:slb/masterSlaveServerGroup:MasterSlaveServerGroup example abc123456\n```\n\n","properties":{"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. If true, this resource will not be deleted when its SLB instance enabled DeleteProtection. Default to false.\n"},"loadBalancerId":{"type":"string","description":"The Load Balancer ID which is used to launch a new master slave server group.\n"},"name":{"type":"string","description":"Name of the master slave server group.\n"},"servers":{"type":"array","items":{"$ref":"#/types/alicloud:slb/MasterSlaveServerGroupServer:MasterSlaveServerGroupServer"},"description":"A list of ECS instances to be added. Only two ECS instances can be supported in one resource. See \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e below.\n"}},"required":["loadBalancerId","name"],"inputProperties":{"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. If true, this resource will not be deleted when its SLB instance enabled DeleteProtection. Default to false.\n"},"loadBalancerId":{"type":"string","description":"The Load Balancer ID which is used to launch a new master slave server group.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the master slave server group.\n","willReplaceOnChanges":true},"servers":{"type":"array","items":{"$ref":"#/types/alicloud:slb/MasterSlaveServerGroupServer:MasterSlaveServerGroupServer"},"description":"A list of ECS instances to be added. Only two ECS instances can be supported in one resource. See \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"requiredInputs":["loadBalancerId"],"stateInputs":{"description":"Input properties used for looking up and filtering MasterSlaveServerGroup resources.\n","properties":{"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. If true, this resource will not be deleted when its SLB instance enabled DeleteProtection. Default to false.\n"},"loadBalancerId":{"type":"string","description":"The Load Balancer ID which is used to launch a new master slave server group.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the master slave server group.\n","willReplaceOnChanges":true},"servers":{"type":"array","items":{"$ref":"#/types/alicloud:slb/MasterSlaveServerGroupServer:MasterSlaveServerGroupServer"},"description":"A list of ECS instances to be added. Only two ECS instances can be supported in one resource. See \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:slb/rule:Rule":{"description":"Provides a Lindorm Instance resource.\n\nFor information about Load Balancer Forwarding Rule and how to use it, see [What is Rule](https://www.alibabacloud.com/help/en/slb/classic-load-balancer/developer-reference/api-slb-2014-05-15-dir-forwarding-rules).\n\n\u003e **NOTE:** Available since v1.6.0.\n\nA forwarding rule is configured in `HTTP`/`HTTPS` listener and it used to listen a list of backend servers which in one specified virtual backend server group.\nYou can add forwarding rules to a listener to forward requests based on the domain names or the URL in the request.\n\n\u003e **NOTE:** One virtual backend server group can be attached in multiple forwarding rules.\n\n\u003e **NOTE:** At least one \"Domain\" or \"Url\" must be specified when creating a new rule.\n\n\u003e **NOTE:** Having the same 'Domain' and 'Url' rule can not be created repeatedly in the one listener.\n\n\u003e **NOTE:** Rule only be created in the `HTTP` or `HTTPS` listener.\n\n\u003e **NOTE:** Only rule's virtual server group can be modified.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst slbRuleName = config.get(\"slbRuleName\") || \"terraform-example\";\nconst rule = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst ruleGetInstanceTypes = rule.then(rule =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: rule.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst ruleGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst ruleNetwork = new alicloud.vpc.Network(\"rule\", {\n    vpcName: slbRuleName,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst ruleSwitch = new alicloud.vpc.Switch(\"rule\", {\n    vpcId: ruleNetwork.id,\n    cidrBlock: \"172.16.0.0/16\",\n    zoneId: rule.then(rule =\u003e rule.zones?.[0]?.id),\n    vswitchName: slbRuleName,\n});\nconst ruleSecurityGroup = new alicloud.ecs.SecurityGroup(\"rule\", {\n    name: slbRuleName,\n    vpcId: ruleNetwork.id,\n});\nconst ruleInstance = new alicloud.ecs.Instance(\"rule\", {\n    imageId: ruleGetImages.then(ruleGetImages =\u003e ruleGetImages.images?.[0]?.id),\n    instanceType: ruleGetInstanceTypes.then(ruleGetInstanceTypes =\u003e ruleGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [ruleSecurityGroup].map(__item =\u003e __item.id),\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 10,\n    availabilityZone: rule.then(rule =\u003e rule.zones?.[0]?.id),\n    instanceChargeType: \"PostPaid\",\n    systemDiskCategory: \"cloud_efficiency\",\n    vswitchId: ruleSwitch.id,\n    instanceName: slbRuleName,\n});\nconst ruleApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"rule\", {\n    loadBalancerName: slbRuleName,\n    vswitchId: ruleSwitch.id,\n    instanceChargeType: \"PayByCLCU\",\n});\nconst ruleListener = new alicloud.slb.Listener(\"rule\", {\n    loadBalancerId: ruleApplicationLoadBalancer.id,\n    backendPort: 22,\n    frontendPort: 22,\n    protocol: \"http\",\n    bandwidth: 5,\n    healthCheckConnectPort: 20,\n});\nconst ruleServerGroup = new alicloud.slb.ServerGroup(\"rule\", {\n    loadBalancerId: ruleApplicationLoadBalancer.id,\n    name: slbRuleName,\n});\nconst ruleRule = new alicloud.slb.Rule(\"rule\", {\n    loadBalancerId: ruleApplicationLoadBalancer.id,\n    frontendPort: ruleListener.frontendPort,\n    name: slbRuleName,\n    domain: \"*.aliyun.com\",\n    url: \"/image\",\n    serverGroupId: ruleServerGroup.id,\n    cookie: \"23ffsa\",\n    cookieTimeout: 100,\n    healthCheckHttpCode: \"http_2xx\",\n    healthCheckInterval: 10,\n    healthCheckUri: \"/test\",\n    healthCheckConnectPort: 80,\n    healthCheckTimeout: 30,\n    healthyThreshold: 3,\n    unhealthyThreshold: 5,\n    stickySession: \"on\",\n    stickySessionType: \"server\",\n    listenerSync: \"off\",\n    scheduler: \"rr\",\n    healthCheckDomain: \"test\",\n    healthCheck: \"on\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nslb_rule_name = config.get(\"slbRuleName\")\nif slb_rule_name is None:\n    slb_rule_name = \"terraform-example\"\nrule = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\nrule_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=rule.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\nrule_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\nrule_network = alicloud.vpc.Network(\"rule\",\n    vpc_name=slb_rule_name,\n    cidr_block=\"172.16.0.0/16\")\nrule_switch = alicloud.vpc.Switch(\"rule\",\n    vpc_id=rule_network.id,\n    cidr_block=\"172.16.0.0/16\",\n    zone_id=rule.zones[0].id,\n    vswitch_name=slb_rule_name)\nrule_security_group = alicloud.ecs.SecurityGroup(\"rule\",\n    name=slb_rule_name,\n    vpc_id=rule_network.id)\nrule_instance = alicloud.ecs.Instance(\"rule\",\n    image_id=rule_get_images.images[0].id,\n    instance_type=rule_get_instance_types.instance_types[0].id,\n    security_groups=[__item.id for __item in [rule_security_group]],\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=10,\n    availability_zone=rule.zones[0].id,\n    instance_charge_type=\"PostPaid\",\n    system_disk_category=\"cloud_efficiency\",\n    vswitch_id=rule_switch.id,\n    instance_name=slb_rule_name)\nrule_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"rule\",\n    load_balancer_name=slb_rule_name,\n    vswitch_id=rule_switch.id,\n    instance_charge_type=\"PayByCLCU\")\nrule_listener = alicloud.slb.Listener(\"rule\",\n    load_balancer_id=rule_application_load_balancer.id,\n    backend_port=22,\n    frontend_port=22,\n    protocol=\"http\",\n    bandwidth=5,\n    health_check_connect_port=20)\nrule_server_group = alicloud.slb.ServerGroup(\"rule\",\n    load_balancer_id=rule_application_load_balancer.id,\n    name=slb_rule_name)\nrule_rule = alicloud.slb.Rule(\"rule\",\n    load_balancer_id=rule_application_load_balancer.id,\n    frontend_port=rule_listener.frontend_port,\n    name=slb_rule_name,\n    domain=\"*.aliyun.com\",\n    url=\"/image\",\n    server_group_id=rule_server_group.id,\n    cookie=\"23ffsa\",\n    cookie_timeout=100,\n    health_check_http_code=\"http_2xx\",\n    health_check_interval=10,\n    health_check_uri=\"/test\",\n    health_check_connect_port=80,\n    health_check_timeout=30,\n    healthy_threshold=3,\n    unhealthy_threshold=5,\n    sticky_session=\"on\",\n    sticky_session_type=\"server\",\n    listener_sync=\"off\",\n    scheduler=\"rr\",\n    health_check_domain=\"test\",\n    health_check=\"on\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var slbRuleName = config.Get(\"slbRuleName\") ?? \"terraform-example\";\n    var rule = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var ruleGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = rule.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var ruleGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var ruleNetwork = new AliCloud.Vpc.Network(\"rule\", new()\n    {\n        VpcName = slbRuleName,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var ruleSwitch = new AliCloud.Vpc.Switch(\"rule\", new()\n    {\n        VpcId = ruleNetwork.Id,\n        CidrBlock = \"172.16.0.0/16\",\n        ZoneId = rule.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = slbRuleName,\n    });\n\n    var ruleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"rule\", new()\n    {\n        Name = slbRuleName,\n        VpcId = ruleNetwork.Id,\n    });\n\n    var ruleInstance = new AliCloud.Ecs.Instance(\"rule\", new()\n    {\n        ImageId = ruleGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = ruleGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            ruleSecurityGroup,\n        }.Select(__item =\u003e __item.Id).ToList(),\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 10,\n        AvailabilityZone = rule.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskCategory = \"cloud_efficiency\",\n        VswitchId = ruleSwitch.Id,\n        InstanceName = slbRuleName,\n    });\n\n    var ruleApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"rule\", new()\n    {\n        LoadBalancerName = slbRuleName,\n        VswitchId = ruleSwitch.Id,\n        InstanceChargeType = \"PayByCLCU\",\n    });\n\n    var ruleListener = new AliCloud.Slb.Listener(\"rule\", new()\n    {\n        LoadBalancerId = ruleApplicationLoadBalancer.Id,\n        BackendPort = 22,\n        FrontendPort = 22,\n        Protocol = \"http\",\n        Bandwidth = 5,\n        HealthCheckConnectPort = 20,\n    });\n\n    var ruleServerGroup = new AliCloud.Slb.ServerGroup(\"rule\", new()\n    {\n        LoadBalancerId = ruleApplicationLoadBalancer.Id,\n        Name = slbRuleName,\n    });\n\n    var ruleRule = new AliCloud.Slb.Rule(\"rule\", new()\n    {\n        LoadBalancerId = ruleApplicationLoadBalancer.Id,\n        FrontendPort = ruleListener.FrontendPort,\n        Name = slbRuleName,\n        Domain = \"*.aliyun.com\",\n        Url = \"/image\",\n        ServerGroupId = ruleServerGroup.Id,\n        Cookie = \"23ffsa\",\n        CookieTimeout = 100,\n        HealthCheckHttpCode = \"http_2xx\",\n        HealthCheckInterval = 10,\n        HealthCheckUri = \"/test\",\n        HealthCheckConnectPort = 80,\n        HealthCheckTimeout = 30,\n        HealthyThreshold = 3,\n        UnhealthyThreshold = 5,\n        StickySession = \"on\",\n        StickySessionType = \"server\",\n        ListenerSync = \"off\",\n        Scheduler = \"rr\",\n        HealthCheckDomain = \"test\",\n        HealthCheck = \"on\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nslbRuleName := \"terraform-example\";\nif param := cfg.Get(\"slbRuleName\"); param != \"\"{\nslbRuleName = param\n}\nrule, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableDiskCategory: pulumi.StringRef(\"cloud_efficiency\"),\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\nruleGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(rule.Zones[0].Id),\nCpuCoreCount: pulumi.IntRef(1),\nMemorySize: pulumi.Float64Ref(2),\n}, nil);\nif err != nil {\nreturn err\n}\nruleGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\nMostRecent: pulumi.BoolRef(true),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\nruleNetwork, err := vpc.NewNetwork(ctx, \"rule\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(slbRuleName),\nCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\nruleSwitch, err := vpc.NewSwitch(ctx, \"rule\", \u0026vpc.SwitchArgs{\nVpcId: ruleNetwork.ID(),\nCidrBlock: pulumi.String(\"172.16.0.0/16\"),\nZoneId: pulumi.String(rule.Zones[0].Id),\nVswitchName: pulumi.String(slbRuleName),\n})\nif err != nil {\nreturn err\n}\nruleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"rule\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(slbRuleName),\nVpcId: ruleNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\n_, err = ecs.NewInstance(ctx, \"rule\", \u0026ecs.InstanceArgs{\nImageId: pulumi.String(ruleGetImages.Images[0].Id),\nInstanceType: pulumi.String(ruleGetInstanceTypes.InstanceTypes[0].Id),\nSecurityGroups: splat0,\nInternetChargeType: pulumi.String(\"PayByTraffic\"),\nInternetMaxBandwidthOut: pulumi.Int(10),\nAvailabilityZone: pulumi.String(rule.Zones[0].Id),\nInstanceChargeType: pulumi.String(\"PostPaid\"),\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nVswitchId: ruleSwitch.ID(),\nInstanceName: pulumi.String(slbRuleName),\n})\nif err != nil {\nreturn err\n}\nruleApplicationLoadBalancer, err := slb.NewApplicationLoadBalancer(ctx, \"rule\", \u0026slb.ApplicationLoadBalancerArgs{\nLoadBalancerName: pulumi.String(slbRuleName),\nVswitchId: ruleSwitch.ID(),\nInstanceChargeType: pulumi.String(\"PayByCLCU\"),\n})\nif err != nil {\nreturn err\n}\nruleListener, err := slb.NewListener(ctx, \"rule\", \u0026slb.ListenerArgs{\nLoadBalancerId: ruleApplicationLoadBalancer.ID(),\nBackendPort: pulumi.Int(22),\nFrontendPort: pulumi.Int(22),\nProtocol: pulumi.String(\"http\"),\nBandwidth: pulumi.Int(5),\nHealthCheckConnectPort: pulumi.Int(20),\n})\nif err != nil {\nreturn err\n}\nruleServerGroup, err := slb.NewServerGroup(ctx, \"rule\", \u0026slb.ServerGroupArgs{\nLoadBalancerId: ruleApplicationLoadBalancer.ID(),\nName: pulumi.String(slbRuleName),\n})\nif err != nil {\nreturn err\n}\n_, err = slb.NewRule(ctx, \"rule\", \u0026slb.RuleArgs{\nLoadBalancerId: ruleApplicationLoadBalancer.ID(),\nFrontendPort: ruleListener.FrontendPort,\nName: pulumi.String(slbRuleName),\nDomain: pulumi.String(\"*.aliyun.com\"),\nUrl: pulumi.String(\"/image\"),\nServerGroupId: ruleServerGroup.ID(),\nCookie: pulumi.String(\"23ffsa\"),\nCookieTimeout: pulumi.Int(100),\nHealthCheckHttpCode: pulumi.String(\"http_2xx\"),\nHealthCheckInterval: pulumi.Int(10),\nHealthCheckUri: pulumi.String(\"/test\"),\nHealthCheckConnectPort: pulumi.Int(80),\nHealthCheckTimeout: pulumi.Int(30),\nHealthyThreshold: pulumi.Int(3),\nUnhealthyThreshold: pulumi.Int(5),\nStickySession: pulumi.String(\"on\"),\nStickySessionType: pulumi.String(\"server\"),\nListenerSync: pulumi.String(\"off\"),\nScheduler: pulumi.String(\"rr\"),\nHealthCheckDomain: pulumi.String(\"test\"),\nHealthCheck: pulumi.String(\"on\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.slb.Listener;\nimport com.pulumi.alicloud.slb.ListenerArgs;\nimport com.pulumi.alicloud.slb.ServerGroup;\nimport com.pulumi.alicloud.slb.ServerGroupArgs;\nimport com.pulumi.alicloud.slb.Rule;\nimport com.pulumi.alicloud.slb.RuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var slbRuleName = config.get(\"slbRuleName\").orElse(\"terraform-example\");\n        final var rule = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var ruleGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(rule.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        final var ruleGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var ruleNetwork = new Network(\"ruleNetwork\", NetworkArgs.builder()\n            .vpcName(slbRuleName)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var ruleSwitch = new Switch(\"ruleSwitch\", SwitchArgs.builder()\n            .vpcId(ruleNetwork.id())\n            .cidrBlock(\"172.16.0.0/16\")\n            .zoneId(rule.zones()[0].id())\n            .vswitchName(slbRuleName)\n            .build());\n\n        var ruleSecurityGroup = new SecurityGroup(\"ruleSecurityGroup\", SecurityGroupArgs.builder()\n            .name(slbRuleName)\n            .vpcId(ruleNetwork.id())\n            .build());\n\n        var ruleInstance = new Instance(\"ruleInstance\", InstanceArgs.builder()\n            .imageId(ruleGetImages.images()[0].id())\n            .instanceType(ruleGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(ruleSecurityGroup.stream().map(element -\u003e element.id()).collect(toList()))\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(10)\n            .availabilityZone(rule.zones()[0].id())\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .vswitchId(ruleSwitch.id())\n            .instanceName(slbRuleName)\n            .build());\n\n        var ruleApplicationLoadBalancer = new ApplicationLoadBalancer(\"ruleApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(slbRuleName)\n            .vswitchId(ruleSwitch.id())\n            .instanceChargeType(\"PayByCLCU\")\n            .build());\n\n        var ruleListener = new Listener(\"ruleListener\", ListenerArgs.builder()\n            .loadBalancerId(ruleApplicationLoadBalancer.id())\n            .backendPort(22)\n            .frontendPort(22)\n            .protocol(\"http\")\n            .bandwidth(5)\n            .healthCheckConnectPort(20)\n            .build());\n\n        var ruleServerGroup = new ServerGroup(\"ruleServerGroup\", ServerGroupArgs.builder()\n            .loadBalancerId(ruleApplicationLoadBalancer.id())\n            .name(slbRuleName)\n            .build());\n\n        var ruleRule = new Rule(\"ruleRule\", RuleArgs.builder()\n            .loadBalancerId(ruleApplicationLoadBalancer.id())\n            .frontendPort(ruleListener.frontendPort())\n            .name(slbRuleName)\n            .domain(\"*.aliyun.com\")\n            .url(\"/image\")\n            .serverGroupId(ruleServerGroup.id())\n            .cookie(\"23ffsa\")\n            .cookieTimeout(100)\n            .healthCheckHttpCode(\"http_2xx\")\n            .healthCheckInterval(10)\n            .healthCheckUri(\"/test\")\n            .healthCheckConnectPort(80)\n            .healthCheckTimeout(30)\n            .healthyThreshold(3)\n            .unhealthyThreshold(5)\n            .stickySession(\"on\")\n            .stickySessionType(\"server\")\n            .listenerSync(\"off\")\n            .scheduler(\"rr\")\n            .healthCheckDomain(\"test\")\n            .healthCheck(\"on\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLoad balancer forwarding rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:slb/rule:Rule example \u003cid\u003e\n```\n\n","properties":{"cookie":{"type":"string","description":"The cookie configured on the server. It is mandatory when \u003cspan pulumi-lang-nodejs=\"`stickySession`\" pulumi-lang-dotnet=\"`StickySession`\" pulumi-lang-go=\"`stickySession`\" pulumi-lang-python=\"`sticky_session`\" pulumi-lang-yaml=\"`stickySession`\" pulumi-lang-java=\"`stickySession`\"\u003e`sticky_session`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`stickySessionType`\" pulumi-lang-dotnet=\"`StickySessionType`\" pulumi-lang-go=\"`stickySessionType`\" pulumi-lang-python=\"`sticky_session_type`\" pulumi-lang-yaml=\"`stickySessionType`\" pulumi-lang-java=\"`stickySessionType`\"\u003e`sticky_session_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e. Otherwise, it will be ignored. Valid value：String in line with RFC 2965, with length being \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e - \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e. It only contains characters such as ASCII codes, English letters and digits instead of the comma, semicolon or spacing, and it cannot start with $.\n"},"cookieTimeout":{"type":"integer","description":"Cookie timeout. It is mandatory when \u003cspan pulumi-lang-nodejs=\"`stickySession`\" pulumi-lang-dotnet=\"`StickySession`\" pulumi-lang-go=\"`stickySession`\" pulumi-lang-python=\"`sticky_session`\" pulumi-lang-yaml=\"`stickySession`\" pulumi-lang-java=\"`stickySession`\"\u003e`sticky_session`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`stickySessionType`\" pulumi-lang-dotnet=\"`StickySessionType`\" pulumi-lang-go=\"`stickySessionType`\" pulumi-lang-python=\"`sticky_session_type`\" pulumi-lang-yaml=\"`stickySessionType`\" pulumi-lang-java=\"`stickySessionType`\"\u003e`sticky_session_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`insert`\" pulumi-lang-dotnet=\"`Insert`\" pulumi-lang-go=\"`insert`\" pulumi-lang-python=\"`insert`\" pulumi-lang-yaml=\"`insert`\" pulumi-lang-java=\"`insert`\"\u003e`insert`\u003c/span\u003e. Otherwise, it will be ignored. Valid values: [1-86400] in seconds.\n"},"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this resource will not be deleted when its SLB instance enabled DeleteProtection. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"domain":{"type":"string","description":"Domain name of the forwarding rule. It can contain letters a-z, numbers 0-9, hyphens (-), and periods (.),\nand wildcard characters. The following two domain name formats are supported:\n- Standard domain name: www.test.com\n- Wildcard domain name: *.test.com. wildcard (*) must be the first character in the format of (*.)\n"},"frontendPort":{"type":"integer","description":"The listener frontend port which is used to launch the new forwarding rule. Valid values: [1-65535].\n"},"healthCheck":{"type":"string","description":"Whether to enable health check. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. `TCP` and `UDP` listener's \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is always \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, so it will be ignore when launching `TCP` or `UDP` listener. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is required and takes effect only when \u003cspan pulumi-lang-nodejs=\"`listenerSync`\" pulumi-lang-dotnet=\"`ListenerSync`\" pulumi-lang-go=\"`listenerSync`\" pulumi-lang-python=\"`listener_sync`\" pulumi-lang-yaml=\"`listenerSync`\" pulumi-lang-java=\"`listenerSync`\"\u003e`listener_sync`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"healthCheckConnectPort":{"type":"integer","description":"Port used for health check. Valid values: [1-65535]. Default value: `None` means the backend server port is used.\n"},"healthCheckDomain":{"type":"string","description":"Domain name used for health check. When it used to launch TCP listener, \u003cspan pulumi-lang-nodejs=\"`healthCheckType`\" pulumi-lang-dotnet=\"`HealthCheckType`\" pulumi-lang-go=\"`healthCheckType`\" pulumi-lang-python=\"`health_check_type`\" pulumi-lang-yaml=\"`healthCheckType`\" pulumi-lang-java=\"`healthCheckType`\"\u003e`health_check_type`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e. Its length is limited to 1-80 and only characters such as letters, digits, ‘-‘ and ‘.’ are allowed. When it is not set or empty, Server Load Balancer uses the private network IP address of each backend server as Domain used for health check.\n"},"healthCheckHttpCode":{"type":"string","description":"Regular health check HTTP status code. Multiple codes are segmented by “,”. It is required when \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`http2xx`\" pulumi-lang-dotnet=\"`Http2xx`\" pulumi-lang-go=\"`http2xx`\" pulumi-lang-python=\"`http_2xx`\" pulumi-lang-yaml=\"`http2xx`\" pulumi-lang-java=\"`http2xx`\"\u003e`http_2xx`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`http2xx`\" pulumi-lang-dotnet=\"`Http2xx`\" pulumi-lang-go=\"`http2xx`\" pulumi-lang-python=\"`http_2xx`\" pulumi-lang-yaml=\"`http2xx`\" pulumi-lang-java=\"`http2xx`\"\u003e`http_2xx`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http3xx`\" pulumi-lang-dotnet=\"`Http3xx`\" pulumi-lang-go=\"`http3xx`\" pulumi-lang-python=\"`http_3xx`\" pulumi-lang-yaml=\"`http3xx`\" pulumi-lang-java=\"`http3xx`\"\u003e`http_3xx`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http4xx`\" pulumi-lang-dotnet=\"`Http4xx`\" pulumi-lang-go=\"`http4xx`\" pulumi-lang-python=\"`http_4xx`\" pulumi-lang-yaml=\"`http4xx`\" pulumi-lang-java=\"`http4xx`\"\u003e`http_4xx`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`http5xx`\" pulumi-lang-dotnet=\"`Http5xx`\" pulumi-lang-go=\"`http5xx`\" pulumi-lang-python=\"`http_5xx`\" pulumi-lang-yaml=\"`http5xx`\" pulumi-lang-java=\"`http5xx`\"\u003e`http_5xx`\u003c/span\u003e.\n"},"healthCheckInterval":{"type":"integer","description":"Time interval of health checks. It is required when \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: [1-50] in seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"},"healthCheckTimeout":{"type":"integer","description":"Maximum timeout of each health check response. It is required when \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: [1-300] in seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. Note: If \u003cspan pulumi-lang-nodejs=\"`healthCheckTimeout`\" pulumi-lang-dotnet=\"`HealthCheckTimeout`\" pulumi-lang-go=\"`healthCheckTimeout`\" pulumi-lang-python=\"`health_check_timeout`\" pulumi-lang-yaml=\"`healthCheckTimeout`\" pulumi-lang-java=\"`healthCheckTimeout`\"\u003e`health_check_timeout`\u003c/span\u003e \u003c \u003cspan pulumi-lang-nodejs=\"`healthCheckInterval`\" pulumi-lang-dotnet=\"`HealthCheckInterval`\" pulumi-lang-go=\"`healthCheckInterval`\" pulumi-lang-python=\"`health_check_interval`\" pulumi-lang-yaml=\"`healthCheckInterval`\" pulumi-lang-java=\"`healthCheckInterval`\"\u003e`health_check_interval`\u003c/span\u003e, its will be replaced by \u003cspan pulumi-lang-nodejs=\"`healthCheckInterval`\" pulumi-lang-dotnet=\"`HealthCheckInterval`\" pulumi-lang-go=\"`healthCheckInterval`\" pulumi-lang-python=\"`health_check_interval`\" pulumi-lang-yaml=\"`healthCheckInterval`\" pulumi-lang-java=\"`healthCheckInterval`\"\u003e`health_check_interval`\u003c/span\u003e.\n"},"healthCheckUri":{"type":"string","description":"URI used for health check. When it used to launch TCP listener, \u003cspan pulumi-lang-nodejs=\"`healthCheckType`\" pulumi-lang-dotnet=\"`HealthCheckType`\" pulumi-lang-go=\"`healthCheckType`\" pulumi-lang-python=\"`health_check_type`\" pulumi-lang-yaml=\"`healthCheckType`\" pulumi-lang-java=\"`healthCheckType`\"\u003e`health_check_type`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e. Its length is limited to 1-80 and it must start with /. Only characters such as letters, digits, ‘-’, ‘/’, ‘.’, ‘%’, ‘?’, #’ and ‘\u0026’ are allowed.\n"},"healthyThreshold":{"type":"integer","description":"Threshold determining the result of the health check is success. It is required when \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: [1-10] in seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"listenerSync":{"type":"string","description":"Indicates whether a forwarding rule inherits the settings of a health check , session persistence, and scheduling algorithm from a listener. Default value: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"loadBalancerId":{"type":"string","description":"The Load Balancer ID which is used to launch the new forwarding rule.\n"},"name":{"type":"string","description":"Name of the forwarding rule. Our plugin provides a default name: \"tf-slb-rule\".\n"},"scheduler":{"type":"string","description":"Scheduling algorithm. Valid values: \u003cspan pulumi-lang-nodejs=\"`wrr`\" pulumi-lang-dotnet=\"`Wrr`\" pulumi-lang-go=\"`wrr`\" pulumi-lang-python=\"`wrr`\" pulumi-lang-yaml=\"`wrr`\" pulumi-lang-java=\"`wrr`\"\u003e`wrr`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rr`\" pulumi-lang-dotnet=\"`Rr`\" pulumi-lang-go=\"`rr`\" pulumi-lang-python=\"`rr`\" pulumi-lang-yaml=\"`rr`\" pulumi-lang-java=\"`rr`\"\u003e`rr`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wlc`\" pulumi-lang-dotnet=\"`Wlc`\" pulumi-lang-go=\"`wlc`\" pulumi-lang-python=\"`wlc`\" pulumi-lang-yaml=\"`wlc`\" pulumi-lang-java=\"`wlc`\"\u003e`wlc`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`wrr`\" pulumi-lang-dotnet=\"`Wrr`\" pulumi-lang-go=\"`wrr`\" pulumi-lang-python=\"`wrr`\" pulumi-lang-yaml=\"`wrr`\" pulumi-lang-java=\"`wrr`\"\u003e`wrr`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`scheduler`\" pulumi-lang-dotnet=\"`Scheduler`\" pulumi-lang-go=\"`scheduler`\" pulumi-lang-python=\"`scheduler`\" pulumi-lang-yaml=\"`scheduler`\" pulumi-lang-java=\"`scheduler`\"\u003e`scheduler`\u003c/span\u003e is required and takes effect only when \u003cspan pulumi-lang-nodejs=\"`listenerSync`\" pulumi-lang-dotnet=\"`ListenerSync`\" pulumi-lang-go=\"`listenerSync`\" pulumi-lang-python=\"`listener_sync`\" pulumi-lang-yaml=\"`listenerSync`\" pulumi-lang-java=\"`listenerSync`\"\u003e`listener_sync`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"serverGroupId":{"type":"string","description":"ID of a virtual server group that will be forwarded.\n"},"stickySession":{"type":"string","description":"Whether to enable session persistence. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`stickySession`\" pulumi-lang-dotnet=\"`StickySession`\" pulumi-lang-go=\"`stickySession`\" pulumi-lang-python=\"`sticky_session`\" pulumi-lang-yaml=\"`stickySession`\" pulumi-lang-java=\"`stickySession`\"\u003e`sticky_session`\u003c/span\u003e is required and takes effect only when \u003cspan pulumi-lang-nodejs=\"`listenerSync`\" pulumi-lang-dotnet=\"`ListenerSync`\" pulumi-lang-go=\"`listenerSync`\" pulumi-lang-python=\"`listener_sync`\" pulumi-lang-yaml=\"`listenerSync`\" pulumi-lang-java=\"`listenerSync`\"\u003e`listener_sync`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"stickySessionType":{"type":"string","description":"Mode for handling the cookie. If \u003cspan pulumi-lang-nodejs=\"`stickySession`\" pulumi-lang-dotnet=\"`StickySession`\" pulumi-lang-go=\"`stickySession`\" pulumi-lang-python=\"`sticky_session`\" pulumi-lang-yaml=\"`stickySession`\" pulumi-lang-java=\"`stickySession`\"\u003e`sticky_session`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, it is mandatory. Otherwise, it will be ignored. Valid values: \u003cspan pulumi-lang-nodejs=\"`insert`\" pulumi-lang-dotnet=\"`Insert`\" pulumi-lang-go=\"`insert`\" pulumi-lang-python=\"`insert`\" pulumi-lang-yaml=\"`insert`\" pulumi-lang-java=\"`insert`\"\u003e`insert`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`insert`\" pulumi-lang-dotnet=\"`Insert`\" pulumi-lang-go=\"`insert`\" pulumi-lang-python=\"`insert`\" pulumi-lang-yaml=\"`insert`\" pulumi-lang-java=\"`insert`\"\u003e`insert`\u003c/span\u003e means it is inserted from Server Load Balancer; \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e means the Server Load Balancer learns from the backend server.\n"},"unhealthyThreshold":{"type":"integer","description":"Threshold determining the result of the health check is fail. It is required when \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: [1-10] in seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"url":{"type":"string","description":"Domain of the forwarding rule. It must be 2-80 characters in length. Only letters a-z, numbers 0-9, and characters '-' '/' '?' '%' '#' and '\u0026' are allowed. URLs must be started with the character '/', but cannot be '/' alone.\n"}},"required":["frontendPort","healthCheckConnectPort","loadBalancerId","name","serverGroupId"],"inputProperties":{"cookie":{"type":"string","description":"The cookie configured on the server. It is mandatory when \u003cspan pulumi-lang-nodejs=\"`stickySession`\" pulumi-lang-dotnet=\"`StickySession`\" pulumi-lang-go=\"`stickySession`\" pulumi-lang-python=\"`sticky_session`\" pulumi-lang-yaml=\"`stickySession`\" pulumi-lang-java=\"`stickySession`\"\u003e`sticky_session`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`stickySessionType`\" pulumi-lang-dotnet=\"`StickySessionType`\" pulumi-lang-go=\"`stickySessionType`\" pulumi-lang-python=\"`sticky_session_type`\" pulumi-lang-yaml=\"`stickySessionType`\" pulumi-lang-java=\"`stickySessionType`\"\u003e`sticky_session_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e. Otherwise, it will be ignored. Valid value：String in line with RFC 2965, with length being \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e - \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e. It only contains characters such as ASCII codes, English letters and digits instead of the comma, semicolon or spacing, and it cannot start with $.\n"},"cookieTimeout":{"type":"integer","description":"Cookie timeout. It is mandatory when \u003cspan pulumi-lang-nodejs=\"`stickySession`\" pulumi-lang-dotnet=\"`StickySession`\" pulumi-lang-go=\"`stickySession`\" pulumi-lang-python=\"`sticky_session`\" pulumi-lang-yaml=\"`stickySession`\" pulumi-lang-java=\"`stickySession`\"\u003e`sticky_session`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`stickySessionType`\" pulumi-lang-dotnet=\"`StickySessionType`\" pulumi-lang-go=\"`stickySessionType`\" pulumi-lang-python=\"`sticky_session_type`\" pulumi-lang-yaml=\"`stickySessionType`\" pulumi-lang-java=\"`stickySessionType`\"\u003e`sticky_session_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`insert`\" pulumi-lang-dotnet=\"`Insert`\" pulumi-lang-go=\"`insert`\" pulumi-lang-python=\"`insert`\" pulumi-lang-yaml=\"`insert`\" pulumi-lang-java=\"`insert`\"\u003e`insert`\u003c/span\u003e. Otherwise, it will be ignored. Valid values: [1-86400] in seconds.\n"},"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this resource will not be deleted when its SLB instance enabled DeleteProtection. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"domain":{"type":"string","description":"Domain name of the forwarding rule. It can contain letters a-z, numbers 0-9, hyphens (-), and periods (.),\nand wildcard characters. The following two domain name formats are supported:\n- Standard domain name: www.test.com\n- Wildcard domain name: *.test.com. wildcard (*) must be the first character in the format of (*.)\n","willReplaceOnChanges":true},"frontendPort":{"type":"integer","description":"The listener frontend port which is used to launch the new forwarding rule. Valid values: [1-65535].\n","willReplaceOnChanges":true},"healthCheck":{"type":"string","description":"Whether to enable health check. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. `TCP` and `UDP` listener's \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is always \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, so it will be ignore when launching `TCP` or `UDP` listener. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is required and takes effect only when \u003cspan pulumi-lang-nodejs=\"`listenerSync`\" pulumi-lang-dotnet=\"`ListenerSync`\" pulumi-lang-go=\"`listenerSync`\" pulumi-lang-python=\"`listener_sync`\" pulumi-lang-yaml=\"`listenerSync`\" pulumi-lang-java=\"`listenerSync`\"\u003e`listener_sync`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"healthCheckConnectPort":{"type":"integer","description":"Port used for health check. Valid values: [1-65535]. Default value: `None` means the backend server port is used.\n"},"healthCheckDomain":{"type":"string","description":"Domain name used for health check. When it used to launch TCP listener, \u003cspan pulumi-lang-nodejs=\"`healthCheckType`\" pulumi-lang-dotnet=\"`HealthCheckType`\" pulumi-lang-go=\"`healthCheckType`\" pulumi-lang-python=\"`health_check_type`\" pulumi-lang-yaml=\"`healthCheckType`\" pulumi-lang-java=\"`healthCheckType`\"\u003e`health_check_type`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e. Its length is limited to 1-80 and only characters such as letters, digits, ‘-‘ and ‘.’ are allowed. When it is not set or empty, Server Load Balancer uses the private network IP address of each backend server as Domain used for health check.\n"},"healthCheckHttpCode":{"type":"string","description":"Regular health check HTTP status code. Multiple codes are segmented by “,”. It is required when \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`http2xx`\" pulumi-lang-dotnet=\"`Http2xx`\" pulumi-lang-go=\"`http2xx`\" pulumi-lang-python=\"`http_2xx`\" pulumi-lang-yaml=\"`http2xx`\" pulumi-lang-java=\"`http2xx`\"\u003e`http_2xx`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`http2xx`\" pulumi-lang-dotnet=\"`Http2xx`\" pulumi-lang-go=\"`http2xx`\" pulumi-lang-python=\"`http_2xx`\" pulumi-lang-yaml=\"`http2xx`\" pulumi-lang-java=\"`http2xx`\"\u003e`http_2xx`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http3xx`\" pulumi-lang-dotnet=\"`Http3xx`\" pulumi-lang-go=\"`http3xx`\" pulumi-lang-python=\"`http_3xx`\" pulumi-lang-yaml=\"`http3xx`\" pulumi-lang-java=\"`http3xx`\"\u003e`http_3xx`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http4xx`\" pulumi-lang-dotnet=\"`Http4xx`\" pulumi-lang-go=\"`http4xx`\" pulumi-lang-python=\"`http_4xx`\" pulumi-lang-yaml=\"`http4xx`\" pulumi-lang-java=\"`http4xx`\"\u003e`http_4xx`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`http5xx`\" pulumi-lang-dotnet=\"`Http5xx`\" pulumi-lang-go=\"`http5xx`\" pulumi-lang-python=\"`http_5xx`\" pulumi-lang-yaml=\"`http5xx`\" pulumi-lang-java=\"`http5xx`\"\u003e`http_5xx`\u003c/span\u003e.\n"},"healthCheckInterval":{"type":"integer","description":"Time interval of health checks. It is required when \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: [1-50] in seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"},"healthCheckTimeout":{"type":"integer","description":"Maximum timeout of each health check response. It is required when \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: [1-300] in seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. Note: If \u003cspan pulumi-lang-nodejs=\"`healthCheckTimeout`\" pulumi-lang-dotnet=\"`HealthCheckTimeout`\" pulumi-lang-go=\"`healthCheckTimeout`\" pulumi-lang-python=\"`health_check_timeout`\" pulumi-lang-yaml=\"`healthCheckTimeout`\" pulumi-lang-java=\"`healthCheckTimeout`\"\u003e`health_check_timeout`\u003c/span\u003e \u003c \u003cspan pulumi-lang-nodejs=\"`healthCheckInterval`\" pulumi-lang-dotnet=\"`HealthCheckInterval`\" pulumi-lang-go=\"`healthCheckInterval`\" pulumi-lang-python=\"`health_check_interval`\" pulumi-lang-yaml=\"`healthCheckInterval`\" pulumi-lang-java=\"`healthCheckInterval`\"\u003e`health_check_interval`\u003c/span\u003e, its will be replaced by \u003cspan pulumi-lang-nodejs=\"`healthCheckInterval`\" pulumi-lang-dotnet=\"`HealthCheckInterval`\" pulumi-lang-go=\"`healthCheckInterval`\" pulumi-lang-python=\"`health_check_interval`\" pulumi-lang-yaml=\"`healthCheckInterval`\" pulumi-lang-java=\"`healthCheckInterval`\"\u003e`health_check_interval`\u003c/span\u003e.\n"},"healthCheckUri":{"type":"string","description":"URI used for health check. When it used to launch TCP listener, \u003cspan pulumi-lang-nodejs=\"`healthCheckType`\" pulumi-lang-dotnet=\"`HealthCheckType`\" pulumi-lang-go=\"`healthCheckType`\" pulumi-lang-python=\"`health_check_type`\" pulumi-lang-yaml=\"`healthCheckType`\" pulumi-lang-java=\"`healthCheckType`\"\u003e`health_check_type`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e. Its length is limited to 1-80 and it must start with /. Only characters such as letters, digits, ‘-’, ‘/’, ‘.’, ‘%’, ‘?’, #’ and ‘\u0026’ are allowed.\n"},"healthyThreshold":{"type":"integer","description":"Threshold determining the result of the health check is success. It is required when \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: [1-10] in seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"listenerSync":{"type":"string","description":"Indicates whether a forwarding rule inherits the settings of a health check , session persistence, and scheduling algorithm from a listener. Default value: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"loadBalancerId":{"type":"string","description":"The Load Balancer ID which is used to launch the new forwarding rule.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the forwarding rule. Our plugin provides a default name: \"tf-slb-rule\".\n"},"scheduler":{"type":"string","description":"Scheduling algorithm. Valid values: \u003cspan pulumi-lang-nodejs=\"`wrr`\" pulumi-lang-dotnet=\"`Wrr`\" pulumi-lang-go=\"`wrr`\" pulumi-lang-python=\"`wrr`\" pulumi-lang-yaml=\"`wrr`\" pulumi-lang-java=\"`wrr`\"\u003e`wrr`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rr`\" pulumi-lang-dotnet=\"`Rr`\" pulumi-lang-go=\"`rr`\" pulumi-lang-python=\"`rr`\" pulumi-lang-yaml=\"`rr`\" pulumi-lang-java=\"`rr`\"\u003e`rr`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wlc`\" pulumi-lang-dotnet=\"`Wlc`\" pulumi-lang-go=\"`wlc`\" pulumi-lang-python=\"`wlc`\" pulumi-lang-yaml=\"`wlc`\" pulumi-lang-java=\"`wlc`\"\u003e`wlc`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`wrr`\" pulumi-lang-dotnet=\"`Wrr`\" pulumi-lang-go=\"`wrr`\" pulumi-lang-python=\"`wrr`\" pulumi-lang-yaml=\"`wrr`\" pulumi-lang-java=\"`wrr`\"\u003e`wrr`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`scheduler`\" pulumi-lang-dotnet=\"`Scheduler`\" pulumi-lang-go=\"`scheduler`\" pulumi-lang-python=\"`scheduler`\" pulumi-lang-yaml=\"`scheduler`\" pulumi-lang-java=\"`scheduler`\"\u003e`scheduler`\u003c/span\u003e is required and takes effect only when \u003cspan pulumi-lang-nodejs=\"`listenerSync`\" pulumi-lang-dotnet=\"`ListenerSync`\" pulumi-lang-go=\"`listenerSync`\" pulumi-lang-python=\"`listener_sync`\" pulumi-lang-yaml=\"`listenerSync`\" pulumi-lang-java=\"`listenerSync`\"\u003e`listener_sync`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"serverGroupId":{"type":"string","description":"ID of a virtual server group that will be forwarded.\n"},"stickySession":{"type":"string","description":"Whether to enable session persistence. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`stickySession`\" pulumi-lang-dotnet=\"`StickySession`\" pulumi-lang-go=\"`stickySession`\" pulumi-lang-python=\"`sticky_session`\" pulumi-lang-yaml=\"`stickySession`\" pulumi-lang-java=\"`stickySession`\"\u003e`sticky_session`\u003c/span\u003e is required and takes effect only when \u003cspan pulumi-lang-nodejs=\"`listenerSync`\" pulumi-lang-dotnet=\"`ListenerSync`\" pulumi-lang-go=\"`listenerSync`\" pulumi-lang-python=\"`listener_sync`\" pulumi-lang-yaml=\"`listenerSync`\" pulumi-lang-java=\"`listenerSync`\"\u003e`listener_sync`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"stickySessionType":{"type":"string","description":"Mode for handling the cookie. If \u003cspan pulumi-lang-nodejs=\"`stickySession`\" pulumi-lang-dotnet=\"`StickySession`\" pulumi-lang-go=\"`stickySession`\" pulumi-lang-python=\"`sticky_session`\" pulumi-lang-yaml=\"`stickySession`\" pulumi-lang-java=\"`stickySession`\"\u003e`sticky_session`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, it is mandatory. Otherwise, it will be ignored. Valid values: \u003cspan pulumi-lang-nodejs=\"`insert`\" pulumi-lang-dotnet=\"`Insert`\" pulumi-lang-go=\"`insert`\" pulumi-lang-python=\"`insert`\" pulumi-lang-yaml=\"`insert`\" pulumi-lang-java=\"`insert`\"\u003e`insert`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`insert`\" pulumi-lang-dotnet=\"`Insert`\" pulumi-lang-go=\"`insert`\" pulumi-lang-python=\"`insert`\" pulumi-lang-yaml=\"`insert`\" pulumi-lang-java=\"`insert`\"\u003e`insert`\u003c/span\u003e means it is inserted from Server Load Balancer; \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e means the Server Load Balancer learns from the backend server.\n"},"unhealthyThreshold":{"type":"integer","description":"Threshold determining the result of the health check is fail. It is required when \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: [1-10] in seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"url":{"type":"string","description":"Domain of the forwarding rule. It must be 2-80 characters in length. Only letters a-z, numbers 0-9, and characters '-' '/' '?' '%' '#' and '\u0026' are allowed. URLs must be started with the character '/', but cannot be '/' alone.\n","willReplaceOnChanges":true}},"requiredInputs":["frontendPort","loadBalancerId","serverGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering Rule resources.\n","properties":{"cookie":{"type":"string","description":"The cookie configured on the server. It is mandatory when \u003cspan pulumi-lang-nodejs=\"`stickySession`\" pulumi-lang-dotnet=\"`StickySession`\" pulumi-lang-go=\"`stickySession`\" pulumi-lang-python=\"`sticky_session`\" pulumi-lang-yaml=\"`stickySession`\" pulumi-lang-java=\"`stickySession`\"\u003e`sticky_session`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`stickySessionType`\" pulumi-lang-dotnet=\"`StickySessionType`\" pulumi-lang-go=\"`stickySessionType`\" pulumi-lang-python=\"`sticky_session_type`\" pulumi-lang-yaml=\"`stickySessionType`\" pulumi-lang-java=\"`stickySessionType`\"\u003e`sticky_session_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e. Otherwise, it will be ignored. Valid value：String in line with RFC 2965, with length being \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e - \u003cspan pulumi-lang-nodejs=\"`200`\" pulumi-lang-dotnet=\"`200`\" pulumi-lang-go=\"`200`\" pulumi-lang-python=\"`200`\" pulumi-lang-yaml=\"`200`\" pulumi-lang-java=\"`200`\"\u003e`200`\u003c/span\u003e. It only contains characters such as ASCII codes, English letters and digits instead of the comma, semicolon or spacing, and it cannot start with $.\n"},"cookieTimeout":{"type":"integer","description":"Cookie timeout. It is mandatory when \u003cspan pulumi-lang-nodejs=\"`stickySession`\" pulumi-lang-dotnet=\"`StickySession`\" pulumi-lang-go=\"`stickySession`\" pulumi-lang-python=\"`sticky_session`\" pulumi-lang-yaml=\"`stickySession`\" pulumi-lang-java=\"`stickySession`\"\u003e`sticky_session`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`stickySessionType`\" pulumi-lang-dotnet=\"`StickySessionType`\" pulumi-lang-go=\"`stickySessionType`\" pulumi-lang-python=\"`sticky_session_type`\" pulumi-lang-yaml=\"`stickySessionType`\" pulumi-lang-java=\"`stickySessionType`\"\u003e`sticky_session_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`insert`\" pulumi-lang-dotnet=\"`Insert`\" pulumi-lang-go=\"`insert`\" pulumi-lang-python=\"`insert`\" pulumi-lang-yaml=\"`insert`\" pulumi-lang-java=\"`insert`\"\u003e`insert`\u003c/span\u003e. Otherwise, it will be ignored. Valid values: [1-86400] in seconds.\n"},"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this resource will not be deleted when its SLB instance enabled DeleteProtection. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"domain":{"type":"string","description":"Domain name of the forwarding rule. It can contain letters a-z, numbers 0-9, hyphens (-), and periods (.),\nand wildcard characters. The following two domain name formats are supported:\n- Standard domain name: www.test.com\n- Wildcard domain name: *.test.com. wildcard (*) must be the first character in the format of (*.)\n","willReplaceOnChanges":true},"frontendPort":{"type":"integer","description":"The listener frontend port which is used to launch the new forwarding rule. Valid values: [1-65535].\n","willReplaceOnChanges":true},"healthCheck":{"type":"string","description":"Whether to enable health check. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. `TCP` and `UDP` listener's \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is always \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, so it will be ignore when launching `TCP` or `UDP` listener. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is required and takes effect only when \u003cspan pulumi-lang-nodejs=\"`listenerSync`\" pulumi-lang-dotnet=\"`ListenerSync`\" pulumi-lang-go=\"`listenerSync`\" pulumi-lang-python=\"`listener_sync`\" pulumi-lang-yaml=\"`listenerSync`\" pulumi-lang-java=\"`listenerSync`\"\u003e`listener_sync`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"healthCheckConnectPort":{"type":"integer","description":"Port used for health check. Valid values: [1-65535]. Default value: `None` means the backend server port is used.\n"},"healthCheckDomain":{"type":"string","description":"Domain name used for health check. When it used to launch TCP listener, \u003cspan pulumi-lang-nodejs=\"`healthCheckType`\" pulumi-lang-dotnet=\"`HealthCheckType`\" pulumi-lang-go=\"`healthCheckType`\" pulumi-lang-python=\"`health_check_type`\" pulumi-lang-yaml=\"`healthCheckType`\" pulumi-lang-java=\"`healthCheckType`\"\u003e`health_check_type`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e. Its length is limited to 1-80 and only characters such as letters, digits, ‘-‘ and ‘.’ are allowed. When it is not set or empty, Server Load Balancer uses the private network IP address of each backend server as Domain used for health check.\n"},"healthCheckHttpCode":{"type":"string","description":"Regular health check HTTP status code. Multiple codes are segmented by “,”. It is required when \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`http2xx`\" pulumi-lang-dotnet=\"`Http2xx`\" pulumi-lang-go=\"`http2xx`\" pulumi-lang-python=\"`http_2xx`\" pulumi-lang-yaml=\"`http2xx`\" pulumi-lang-java=\"`http2xx`\"\u003e`http_2xx`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`http2xx`\" pulumi-lang-dotnet=\"`Http2xx`\" pulumi-lang-go=\"`http2xx`\" pulumi-lang-python=\"`http_2xx`\" pulumi-lang-yaml=\"`http2xx`\" pulumi-lang-java=\"`http2xx`\"\u003e`http_2xx`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http3xx`\" pulumi-lang-dotnet=\"`Http3xx`\" pulumi-lang-go=\"`http3xx`\" pulumi-lang-python=\"`http_3xx`\" pulumi-lang-yaml=\"`http3xx`\" pulumi-lang-java=\"`http3xx`\"\u003e`http_3xx`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http4xx`\" pulumi-lang-dotnet=\"`Http4xx`\" pulumi-lang-go=\"`http4xx`\" pulumi-lang-python=\"`http_4xx`\" pulumi-lang-yaml=\"`http4xx`\" pulumi-lang-java=\"`http4xx`\"\u003e`http_4xx`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`http5xx`\" pulumi-lang-dotnet=\"`Http5xx`\" pulumi-lang-go=\"`http5xx`\" pulumi-lang-python=\"`http_5xx`\" pulumi-lang-yaml=\"`http5xx`\" pulumi-lang-java=\"`http5xx`\"\u003e`http_5xx`\u003c/span\u003e.\n"},"healthCheckInterval":{"type":"integer","description":"Time interval of health checks. It is required when \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: [1-50] in seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"},"healthCheckTimeout":{"type":"integer","description":"Maximum timeout of each health check response. It is required when \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: [1-300] in seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e. Note: If \u003cspan pulumi-lang-nodejs=\"`healthCheckTimeout`\" pulumi-lang-dotnet=\"`HealthCheckTimeout`\" pulumi-lang-go=\"`healthCheckTimeout`\" pulumi-lang-python=\"`health_check_timeout`\" pulumi-lang-yaml=\"`healthCheckTimeout`\" pulumi-lang-java=\"`healthCheckTimeout`\"\u003e`health_check_timeout`\u003c/span\u003e \u003c \u003cspan pulumi-lang-nodejs=\"`healthCheckInterval`\" pulumi-lang-dotnet=\"`HealthCheckInterval`\" pulumi-lang-go=\"`healthCheckInterval`\" pulumi-lang-python=\"`health_check_interval`\" pulumi-lang-yaml=\"`healthCheckInterval`\" pulumi-lang-java=\"`healthCheckInterval`\"\u003e`health_check_interval`\u003c/span\u003e, its will be replaced by \u003cspan pulumi-lang-nodejs=\"`healthCheckInterval`\" pulumi-lang-dotnet=\"`HealthCheckInterval`\" pulumi-lang-go=\"`healthCheckInterval`\" pulumi-lang-python=\"`health_check_interval`\" pulumi-lang-yaml=\"`healthCheckInterval`\" pulumi-lang-java=\"`healthCheckInterval`\"\u003e`health_check_interval`\u003c/span\u003e.\n"},"healthCheckUri":{"type":"string","description":"URI used for health check. When it used to launch TCP listener, \u003cspan pulumi-lang-nodejs=\"`healthCheckType`\" pulumi-lang-dotnet=\"`HealthCheckType`\" pulumi-lang-go=\"`healthCheckType`\" pulumi-lang-python=\"`health_check_type`\" pulumi-lang-yaml=\"`healthCheckType`\" pulumi-lang-java=\"`healthCheckType`\"\u003e`health_check_type`\u003c/span\u003e must be \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e. Its length is limited to 1-80 and it must start with /. Only characters such as letters, digits, ‘-’, ‘/’, ‘.’, ‘%’, ‘?’, #’ and ‘\u0026’ are allowed.\n"},"healthyThreshold":{"type":"integer","description":"Threshold determining the result of the health check is success. It is required when \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: [1-10] in seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"listenerSync":{"type":"string","description":"Indicates whether a forwarding rule inherits the settings of a health check , session persistence, and scheduling algorithm from a listener. Default value: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"loadBalancerId":{"type":"string","description":"The Load Balancer ID which is used to launch the new forwarding rule.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the forwarding rule. Our plugin provides a default name: \"tf-slb-rule\".\n"},"scheduler":{"type":"string","description":"Scheduling algorithm. Valid values: \u003cspan pulumi-lang-nodejs=\"`wrr`\" pulumi-lang-dotnet=\"`Wrr`\" pulumi-lang-go=\"`wrr`\" pulumi-lang-python=\"`wrr`\" pulumi-lang-yaml=\"`wrr`\" pulumi-lang-java=\"`wrr`\"\u003e`wrr`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rr`\" pulumi-lang-dotnet=\"`Rr`\" pulumi-lang-go=\"`rr`\" pulumi-lang-python=\"`rr`\" pulumi-lang-yaml=\"`rr`\" pulumi-lang-java=\"`rr`\"\u003e`rr`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wlc`\" pulumi-lang-dotnet=\"`Wlc`\" pulumi-lang-go=\"`wlc`\" pulumi-lang-python=\"`wlc`\" pulumi-lang-yaml=\"`wlc`\" pulumi-lang-java=\"`wlc`\"\u003e`wlc`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`wrr`\" pulumi-lang-dotnet=\"`Wrr`\" pulumi-lang-go=\"`wrr`\" pulumi-lang-python=\"`wrr`\" pulumi-lang-yaml=\"`wrr`\" pulumi-lang-java=\"`wrr`\"\u003e`wrr`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`scheduler`\" pulumi-lang-dotnet=\"`Scheduler`\" pulumi-lang-go=\"`scheduler`\" pulumi-lang-python=\"`scheduler`\" pulumi-lang-yaml=\"`scheduler`\" pulumi-lang-java=\"`scheduler`\"\u003e`scheduler`\u003c/span\u003e is required and takes effect only when \u003cspan pulumi-lang-nodejs=\"`listenerSync`\" pulumi-lang-dotnet=\"`ListenerSync`\" pulumi-lang-go=\"`listenerSync`\" pulumi-lang-python=\"`listener_sync`\" pulumi-lang-yaml=\"`listenerSync`\" pulumi-lang-java=\"`listenerSync`\"\u003e`listener_sync`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"serverGroupId":{"type":"string","description":"ID of a virtual server group that will be forwarded.\n"},"stickySession":{"type":"string","description":"Whether to enable session persistence. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e. **NOTE:** \u003cspan pulumi-lang-nodejs=\"`stickySession`\" pulumi-lang-dotnet=\"`StickySession`\" pulumi-lang-go=\"`stickySession`\" pulumi-lang-python=\"`sticky_session`\" pulumi-lang-yaml=\"`stickySession`\" pulumi-lang-java=\"`stickySession`\"\u003e`sticky_session`\u003c/span\u003e is required and takes effect only when \u003cspan pulumi-lang-nodejs=\"`listenerSync`\" pulumi-lang-dotnet=\"`ListenerSync`\" pulumi-lang-go=\"`listenerSync`\" pulumi-lang-python=\"`listener_sync`\" pulumi-lang-yaml=\"`listenerSync`\" pulumi-lang-java=\"`listenerSync`\"\u003e`listener_sync`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"stickySessionType":{"type":"string","description":"Mode for handling the cookie. If \u003cspan pulumi-lang-nodejs=\"`stickySession`\" pulumi-lang-dotnet=\"`StickySession`\" pulumi-lang-go=\"`stickySession`\" pulumi-lang-python=\"`sticky_session`\" pulumi-lang-yaml=\"`stickySession`\" pulumi-lang-java=\"`stickySession`\"\u003e`sticky_session`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, it is mandatory. Otherwise, it will be ignored. Valid values: \u003cspan pulumi-lang-nodejs=\"`insert`\" pulumi-lang-dotnet=\"`Insert`\" pulumi-lang-go=\"`insert`\" pulumi-lang-python=\"`insert`\" pulumi-lang-yaml=\"`insert`\" pulumi-lang-java=\"`insert`\"\u003e`insert`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`insert`\" pulumi-lang-dotnet=\"`Insert`\" pulumi-lang-go=\"`insert`\" pulumi-lang-python=\"`insert`\" pulumi-lang-yaml=\"`insert`\" pulumi-lang-java=\"`insert`\"\u003e`insert`\u003c/span\u003e means it is inserted from Server Load Balancer; \u003cspan pulumi-lang-nodejs=\"`server`\" pulumi-lang-dotnet=\"`Server`\" pulumi-lang-go=\"`server`\" pulumi-lang-python=\"`server`\" pulumi-lang-yaml=\"`server`\" pulumi-lang-java=\"`server`\"\u003e`server`\u003c/span\u003e means the Server Load Balancer learns from the backend server.\n"},"unhealthyThreshold":{"type":"integer","description":"Threshold determining the result of the health check is fail. It is required when \u003cspan pulumi-lang-nodejs=\"`healthCheck`\" pulumi-lang-dotnet=\"`HealthCheck`\" pulumi-lang-go=\"`healthCheck`\" pulumi-lang-python=\"`health_check`\" pulumi-lang-yaml=\"`healthCheck`\" pulumi-lang-java=\"`healthCheck`\"\u003e`health_check`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e. Valid values: [1-10] in seconds. Default value: \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e.\n"},"url":{"type":"string","description":"Domain of the forwarding rule. It must be 2-80 characters in length. Only letters a-z, numbers 0-9, and characters '-' '/' '?' '%' '#' and '\u0026' are allowed. URLs must be started with the character '/', but cannot be '/' alone.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:slb/serverCertificate:ServerCertificate":{"description":"A Load Balancer Server Certificate is an ssl Certificate used by the listener of the protocol https.\n\nFor information about slb and how to use it, see [What is Server Load Balancer](https://www.alibabacloud.com/help/doc-detail/27539.htm).\n\nFor information about Server Certificate and how to use it, see [Configure Server Certificate](https://www.alibabacloud.com/help/doc-detail/85968.htm).\n\n\n## Example Usage\n\n* using server_certificate/private content as string example\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// create a server certificate\nconst foo = new alicloud.slb.ServerCertificate(\"foo\", {\n    name: \"slbservercertificate\",\n    serverCertificate: `-----BEGIN CERTIFICATE-----\nMIICWDCCAcGgAwIBAgIJAP7vOtjPtQIjMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkNOMRMwEQYDVQQIDApjbi1iZWlqaW5nMSEwHwYDVQQKDBhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMjAxMDIwMDYxOTUxWhcNMjAxMTE5MDYxOTUxWjBF\nMQswCQYDVQQGEwJDTjETMBEGA1UECAwKY24tYmVpamluZzEhMB8GA1UECgwYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\ngQDEdoyaJ0kdtjtbLRx5X9qwI7FblhJPRcScvhQSE8P5y/b/T8J9BVuFIBoU8nrP\nY9ABz4JFklZ6SznxLbFBqtXoJTmzV6ixyjjH+AGEw6hCiA8Pqy2CNIzxr9DjCzN5\ntWruiHqO60O3Bve6cHipH0VyLAhrB85mflvOZSH4xGsJkwIDAQABo1AwTjAdBgNV\nHQ4EFgQUYDwuuqC2a2UPrfm1v31vE7+GRM4wHwYDVR0jBBgwFoAUYDwuuqC2a2UP\nrfm1v31vE7+GRM4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQAovSB0\n5JRKrg7lYR/KlTuKHmozfyL9UER0/dpTSoqsCyt8yc1BbtAKUJWh09BujBE1H22f\nlKvCAjhPmnNdfd/l9GrmAWNDWEDPLdUTkGSkKAScMpdS+mLmOBuYWgdnOtq3eQGf\nt07tlBL+dtzrrohHpfLeuNyYb40g8VQdp3RRRQ==\n-----END CERTIFICATE-----`,\n    privateKey: `-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDEdoyaJ0kdtjtbLRx5X9qwI7FblhJPRcScvhQSE8P5y/b/T8J9\nBVuFIBoU8nrPY9ABz4JFklZ6SznxLbFBqtXoJTmzV6ixyjjH+AGEw6hCiA8Pqy2C\nNIzxr9DjCzN5tWruiHqO60O3Bve6cHipH0VyLAhrB85mflvOZSH4xGsJkwIDAQAB\nAoGARe2oaCo5lTDK+c4Zx3392hoqQ94r0DmWHPBvNmwAooYd+YxLPrLMe5sMjY4t\ndmohnLNevCK1Uzw5eIX6BNSo5CORBcIDRmiAgwiYiS3WOv2+qi9g5uIdMiDr+EED\nK8wZJjB5E2WyfxL507vtW4T5L36yfr8SkmqH3GvzpI2jCqECQQDsy0AmBzyfK0tG\nNw1+iF9SReJWgb1f5iHvz+6Dt5ueVQngrl/5++Gp5bNoaQMkLEDsy0iHIj9j43ji\n0DON05uDAkEA1GXgGn8MXXKyuzYuoyYXCBH7aF579d7KEGET/jjnXx9DHcfRJZBY\nB9ghMnnonSOGboF04Zsdd3xwYF/3OHYssQJAekd/SeQEzyE5TvoQ8t2Tc9X4yrlW\nxNX/gmp6/fPr3biGUEtb7qi+4NBodCt+XsingmB7hKUP3RJTk7T2WnAC5wJAMqHi\njY5x3SkFkHl3Hq9q2CKpQxUbCd7FXqg1wum/xj5GmqfSpNjHE3+jUkwbdrJMTrWP\nrmRy3tQMWf0mixAo0QJBAN4IcZChanq8cZyNqqoNbxGm4hkxUmE0W4hxHmLC2CYZ\nV4JpNm8dpi4CiMWLasF6TYlVMgX+aPxYRUWc/qqf1/Q=\n-----END RSA PRIVATE KEY-----`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# create a server certificate\nfoo = alicloud.slb.ServerCertificate(\"foo\",\n    name=\"slbservercertificate\",\n    server_certificate=\"\"\"-----BEGIN CERTIFICATE-----\nMIICWDCCAcGgAwIBAgIJAP7vOtjPtQIjMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkNOMRMwEQYDVQQIDApjbi1iZWlqaW5nMSEwHwYDVQQKDBhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMjAxMDIwMDYxOTUxWhcNMjAxMTE5MDYxOTUxWjBF\nMQswCQYDVQQGEwJDTjETMBEGA1UECAwKY24tYmVpamluZzEhMB8GA1UECgwYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\ngQDEdoyaJ0kdtjtbLRx5X9qwI7FblhJPRcScvhQSE8P5y/b/T8J9BVuFIBoU8nrP\nY9ABz4JFklZ6SznxLbFBqtXoJTmzV6ixyjjH+AGEw6hCiA8Pqy2CNIzxr9DjCzN5\ntWruiHqO60O3Bve6cHipH0VyLAhrB85mflvOZSH4xGsJkwIDAQABo1AwTjAdBgNV\nHQ4EFgQUYDwuuqC2a2UPrfm1v31vE7+GRM4wHwYDVR0jBBgwFoAUYDwuuqC2a2UP\nrfm1v31vE7+GRM4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQAovSB0\n5JRKrg7lYR/KlTuKHmozfyL9UER0/dpTSoqsCyt8yc1BbtAKUJWh09BujBE1H22f\nlKvCAjhPmnNdfd/l9GrmAWNDWEDPLdUTkGSkKAScMpdS+mLmOBuYWgdnOtq3eQGf\nt07tlBL+dtzrrohHpfLeuNyYb40g8VQdp3RRRQ==\n-----END CERTIFICATE-----\"\"\",\n    private_key=\"\"\"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDEdoyaJ0kdtjtbLRx5X9qwI7FblhJPRcScvhQSE8P5y/b/T8J9\nBVuFIBoU8nrPY9ABz4JFklZ6SznxLbFBqtXoJTmzV6ixyjjH+AGEw6hCiA8Pqy2C\nNIzxr9DjCzN5tWruiHqO60O3Bve6cHipH0VyLAhrB85mflvOZSH4xGsJkwIDAQAB\nAoGARe2oaCo5lTDK+c4Zx3392hoqQ94r0DmWHPBvNmwAooYd+YxLPrLMe5sMjY4t\ndmohnLNevCK1Uzw5eIX6BNSo5CORBcIDRmiAgwiYiS3WOv2+qi9g5uIdMiDr+EED\nK8wZJjB5E2WyfxL507vtW4T5L36yfr8SkmqH3GvzpI2jCqECQQDsy0AmBzyfK0tG\nNw1+iF9SReJWgb1f5iHvz+6Dt5ueVQngrl/5++Gp5bNoaQMkLEDsy0iHIj9j43ji\n0DON05uDAkEA1GXgGn8MXXKyuzYuoyYXCBH7aF579d7KEGET/jjnXx9DHcfRJZBY\nB9ghMnnonSOGboF04Zsdd3xwYF/3OHYssQJAekd/SeQEzyE5TvoQ8t2Tc9X4yrlW\nxNX/gmp6/fPr3biGUEtb7qi+4NBodCt+XsingmB7hKUP3RJTk7T2WnAC5wJAMqHi\njY5x3SkFkHl3Hq9q2CKpQxUbCd7FXqg1wum/xj5GmqfSpNjHE3+jUkwbdrJMTrWP\nrmRy3tQMWf0mixAo0QJBAN4IcZChanq8cZyNqqoNbxGm4hkxUmE0W4hxHmLC2CYZ\nV4JpNm8dpi4CiMWLasF6TYlVMgX+aPxYRUWc/qqf1/Q=\n-----END RSA PRIVATE KEY-----\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // create a server certificate\n    var foo = new AliCloud.Slb.ServerCertificate(\"foo\", new()\n    {\n        Name = \"slbservercertificate\",\n        Certificate = @\"-----BEGIN CERTIFICATE-----\nMIICWDCCAcGgAwIBAgIJAP7vOtjPtQIjMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkNOMRMwEQYDVQQIDApjbi1iZWlqaW5nMSEwHwYDVQQKDBhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMjAxMDIwMDYxOTUxWhcNMjAxMTE5MDYxOTUxWjBF\nMQswCQYDVQQGEwJDTjETMBEGA1UECAwKY24tYmVpamluZzEhMB8GA1UECgwYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\ngQDEdoyaJ0kdtjtbLRx5X9qwI7FblhJPRcScvhQSE8P5y/b/T8J9BVuFIBoU8nrP\nY9ABz4JFklZ6SznxLbFBqtXoJTmzV6ixyjjH+AGEw6hCiA8Pqy2CNIzxr9DjCzN5\ntWruiHqO60O3Bve6cHipH0VyLAhrB85mflvOZSH4xGsJkwIDAQABo1AwTjAdBgNV\nHQ4EFgQUYDwuuqC2a2UPrfm1v31vE7+GRM4wHwYDVR0jBBgwFoAUYDwuuqC2a2UP\nrfm1v31vE7+GRM4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQAovSB0\n5JRKrg7lYR/KlTuKHmozfyL9UER0/dpTSoqsCyt8yc1BbtAKUJWh09BujBE1H22f\nlKvCAjhPmnNdfd/l9GrmAWNDWEDPLdUTkGSkKAScMpdS+mLmOBuYWgdnOtq3eQGf\nt07tlBL+dtzrrohHpfLeuNyYb40g8VQdp3RRRQ==\n-----END CERTIFICATE-----\",\n        PrivateKey = @\"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDEdoyaJ0kdtjtbLRx5X9qwI7FblhJPRcScvhQSE8P5y/b/T8J9\nBVuFIBoU8nrPY9ABz4JFklZ6SznxLbFBqtXoJTmzV6ixyjjH+AGEw6hCiA8Pqy2C\nNIzxr9DjCzN5tWruiHqO60O3Bve6cHipH0VyLAhrB85mflvOZSH4xGsJkwIDAQAB\nAoGARe2oaCo5lTDK+c4Zx3392hoqQ94r0DmWHPBvNmwAooYd+YxLPrLMe5sMjY4t\ndmohnLNevCK1Uzw5eIX6BNSo5CORBcIDRmiAgwiYiS3WOv2+qi9g5uIdMiDr+EED\nK8wZJjB5E2WyfxL507vtW4T5L36yfr8SkmqH3GvzpI2jCqECQQDsy0AmBzyfK0tG\nNw1+iF9SReJWgb1f5iHvz+6Dt5ueVQngrl/5++Gp5bNoaQMkLEDsy0iHIj9j43ji\n0DON05uDAkEA1GXgGn8MXXKyuzYuoyYXCBH7aF579d7KEGET/jjnXx9DHcfRJZBY\nB9ghMnnonSOGboF04Zsdd3xwYF/3OHYssQJAekd/SeQEzyE5TvoQ8t2Tc9X4yrlW\nxNX/gmp6/fPr3biGUEtb7qi+4NBodCt+XsingmB7hKUP3RJTk7T2WnAC5wJAMqHi\njY5x3SkFkHl3Hq9q2CKpQxUbCd7FXqg1wum/xj5GmqfSpNjHE3+jUkwbdrJMTrWP\nrmRy3tQMWf0mixAo0QJBAN4IcZChanq8cZyNqqoNbxGm4hkxUmE0W4hxHmLC2CYZ\nV4JpNm8dpi4CiMWLasF6TYlVMgX+aPxYRUWc/qqf1/Q=\n-----END RSA PRIVATE KEY-----\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// create a server certificate\n\t\t_, err := slb.NewServerCertificate(ctx, \"foo\", \u0026slb.ServerCertificateArgs{\n\t\t\tName: pulumi.String(\"slbservercertificate\"),\n\t\t\tServerCertificate: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIICWDCCAcGgAwIBAgIJAP7vOtjPtQIjMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkNOMRMwEQYDVQQIDApjbi1iZWlqaW5nMSEwHwYDVQQKDBhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMjAxMDIwMDYxOTUxWhcNMjAxMTE5MDYxOTUxWjBF\nMQswCQYDVQQGEwJDTjETMBEGA1UECAwKY24tYmVpamluZzEhMB8GA1UECgwYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\ngQDEdoyaJ0kdtjtbLRx5X9qwI7FblhJPRcScvhQSE8P5y/b/T8J9BVuFIBoU8nrP\nY9ABz4JFklZ6SznxLbFBqtXoJTmzV6ixyjjH+AGEw6hCiA8Pqy2CNIzxr9DjCzN5\ntWruiHqO60O3Bve6cHipH0VyLAhrB85mflvOZSH4xGsJkwIDAQABo1AwTjAdBgNV\nHQ4EFgQUYDwuuqC2a2UPrfm1v31vE7+GRM4wHwYDVR0jBBgwFoAUYDwuuqC2a2UP\nrfm1v31vE7+GRM4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQAovSB0\n5JRKrg7lYR/KlTuKHmozfyL9UER0/dpTSoqsCyt8yc1BbtAKUJWh09BujBE1H22f\nlKvCAjhPmnNdfd/l9GrmAWNDWEDPLdUTkGSkKAScMpdS+mLmOBuYWgdnOtq3eQGf\nt07tlBL+dtzrrohHpfLeuNyYb40g8VQdp3RRRQ==\n-----END CERTIFICATE-----`),\n\t\t\tPrivateKey: pulumi.String(`-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDEdoyaJ0kdtjtbLRx5X9qwI7FblhJPRcScvhQSE8P5y/b/T8J9\nBVuFIBoU8nrPY9ABz4JFklZ6SznxLbFBqtXoJTmzV6ixyjjH+AGEw6hCiA8Pqy2C\nNIzxr9DjCzN5tWruiHqO60O3Bve6cHipH0VyLAhrB85mflvOZSH4xGsJkwIDAQAB\nAoGARe2oaCo5lTDK+c4Zx3392hoqQ94r0DmWHPBvNmwAooYd+YxLPrLMe5sMjY4t\ndmohnLNevCK1Uzw5eIX6BNSo5CORBcIDRmiAgwiYiS3WOv2+qi9g5uIdMiDr+EED\nK8wZJjB5E2WyfxL507vtW4T5L36yfr8SkmqH3GvzpI2jCqECQQDsy0AmBzyfK0tG\nNw1+iF9SReJWgb1f5iHvz+6Dt5ueVQngrl/5++Gp5bNoaQMkLEDsy0iHIj9j43ji\n0DON05uDAkEA1GXgGn8MXXKyuzYuoyYXCBH7aF579d7KEGET/jjnXx9DHcfRJZBY\nB9ghMnnonSOGboF04Zsdd3xwYF/3OHYssQJAekd/SeQEzyE5TvoQ8t2Tc9X4yrlW\nxNX/gmp6/fPr3biGUEtb7qi+4NBodCt+XsingmB7hKUP3RJTk7T2WnAC5wJAMqHi\njY5x3SkFkHl3Hq9q2CKpQxUbCd7FXqg1wum/xj5GmqfSpNjHE3+jUkwbdrJMTrWP\nrmRy3tQMWf0mixAo0QJBAN4IcZChanq8cZyNqqoNbxGm4hkxUmE0W4hxHmLC2CYZ\nV4JpNm8dpi4CiMWLasF6TYlVMgX+aPxYRUWc/qqf1/Q=\n-----END RSA PRIVATE KEY-----`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.ServerCertificate;\nimport com.pulumi.alicloud.slb.ServerCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // create a server certificate\n        var foo = new ServerCertificate(\"foo\", ServerCertificateArgs.builder()\n            .name(\"slbservercertificate\")\n            .serverCertificate(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIICWDCCAcGgAwIBAgIJAP7vOtjPtQIjMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\nBAYTAkNOMRMwEQYDVQQIDApjbi1iZWlqaW5nMSEwHwYDVQQKDBhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMjAxMDIwMDYxOTUxWhcNMjAxMTE5MDYxOTUxWjBF\nMQswCQYDVQQGEwJDTjETMBEGA1UECAwKY24tYmVpamluZzEhMB8GA1UECgwYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\ngQDEdoyaJ0kdtjtbLRx5X9qwI7FblhJPRcScvhQSE8P5y/b/T8J9BVuFIBoU8nrP\nY9ABz4JFklZ6SznxLbFBqtXoJTmzV6ixyjjH+AGEw6hCiA8Pqy2CNIzxr9DjCzN5\ntWruiHqO60O3Bve6cHipH0VyLAhrB85mflvOZSH4xGsJkwIDAQABo1AwTjAdBgNV\nHQ4EFgQUYDwuuqC2a2UPrfm1v31vE7+GRM4wHwYDVR0jBBgwFoAUYDwuuqC2a2UP\nrfm1v31vE7+GRM4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQAovSB0\n5JRKrg7lYR/KlTuKHmozfyL9UER0/dpTSoqsCyt8yc1BbtAKUJWh09BujBE1H22f\nlKvCAjhPmnNdfd/l9GrmAWNDWEDPLdUTkGSkKAScMpdS+mLmOBuYWgdnOtq3eQGf\nt07tlBL+dtzrrohHpfLeuNyYb40g8VQdp3RRRQ==\n-----END CERTIFICATE-----            \"\"\")\n            .privateKey(\"\"\"\n-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDEdoyaJ0kdtjtbLRx5X9qwI7FblhJPRcScvhQSE8P5y/b/T8J9\nBVuFIBoU8nrPY9ABz4JFklZ6SznxLbFBqtXoJTmzV6ixyjjH+AGEw6hCiA8Pqy2C\nNIzxr9DjCzN5tWruiHqO60O3Bve6cHipH0VyLAhrB85mflvOZSH4xGsJkwIDAQAB\nAoGARe2oaCo5lTDK+c4Zx3392hoqQ94r0DmWHPBvNmwAooYd+YxLPrLMe5sMjY4t\ndmohnLNevCK1Uzw5eIX6BNSo5CORBcIDRmiAgwiYiS3WOv2+qi9g5uIdMiDr+EED\nK8wZJjB5E2WyfxL507vtW4T5L36yfr8SkmqH3GvzpI2jCqECQQDsy0AmBzyfK0tG\nNw1+iF9SReJWgb1f5iHvz+6Dt5ueVQngrl/5++Gp5bNoaQMkLEDsy0iHIj9j43ji\n0DON05uDAkEA1GXgGn8MXXKyuzYuoyYXCBH7aF579d7KEGET/jjnXx9DHcfRJZBY\nB9ghMnnonSOGboF04Zsdd3xwYF/3OHYssQJAekd/SeQEzyE5TvoQ8t2Tc9X4yrlW\nxNX/gmp6/fPr3biGUEtb7qi+4NBodCt+XsingmB7hKUP3RJTk7T2WnAC5wJAMqHi\njY5x3SkFkHl3Hq9q2CKpQxUbCd7FXqg1wum/xj5GmqfSpNjHE3+jUkwbdrJMTrWP\nrmRy3tQMWf0mixAo0QJBAN4IcZChanq8cZyNqqoNbxGm4hkxUmE0W4hxHmLC2CYZ\nV4JpNm8dpi4CiMWLasF6TYlVMgX+aPxYRUWc/qqf1/Q=\n-----END RSA PRIVATE KEY-----            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # create a server certificate\n  foo:\n    type: alicloud:slb:ServerCertificate\n    properties:\n      name: slbservercertificate\n      serverCertificate: |-\n        -----BEGIN CERTIFICATE-----\n        MIICWDCCAcGgAwIBAgIJAP7vOtjPtQIjMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\n        BAYTAkNOMRMwEQYDVQQIDApjbi1iZWlqaW5nMSEwHwYDVQQKDBhJbnRlcm5ldCBX\n        aWRnaXRzIFB0eSBMdGQwHhcNMjAxMDIwMDYxOTUxWhcNMjAxMTE5MDYxOTUxWjBF\n        MQswCQYDVQQGEwJDTjETMBEGA1UECAwKY24tYmVpamluZzEhMB8GA1UECgwYSW50\n        ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n        gQDEdoyaJ0kdtjtbLRx5X9qwI7FblhJPRcScvhQSE8P5y/b/T8J9BVuFIBoU8nrP\n        Y9ABz4JFklZ6SznxLbFBqtXoJTmzV6ixyjjH+AGEw6hCiA8Pqy2CNIzxr9DjCzN5\n        tWruiHqO60O3Bve6cHipH0VyLAhrB85mflvOZSH4xGsJkwIDAQABo1AwTjAdBgNV\n        HQ4EFgQUYDwuuqC2a2UPrfm1v31vE7+GRM4wHwYDVR0jBBgwFoAUYDwuuqC2a2UP\n        rfm1v31vE7+GRM4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQAovSB0\n        5JRKrg7lYR/KlTuKHmozfyL9UER0/dpTSoqsCyt8yc1BbtAKUJWh09BujBE1H22f\n        lKvCAjhPmnNdfd/l9GrmAWNDWEDPLdUTkGSkKAScMpdS+mLmOBuYWgdnOtq3eQGf\n        t07tlBL+dtzrrohHpfLeuNyYb40g8VQdp3RRRQ==\n        -----END CERTIFICATE-----\n      privateKey: |-\n        -----BEGIN RSA PRIVATE KEY-----\n        MIICXAIBAAKBgQDEdoyaJ0kdtjtbLRx5X9qwI7FblhJPRcScvhQSE8P5y/b/T8J9\n        BVuFIBoU8nrPY9ABz4JFklZ6SznxLbFBqtXoJTmzV6ixyjjH+AGEw6hCiA8Pqy2C\n        NIzxr9DjCzN5tWruiHqO60O3Bve6cHipH0VyLAhrB85mflvOZSH4xGsJkwIDAQAB\n        AoGARe2oaCo5lTDK+c4Zx3392hoqQ94r0DmWHPBvNmwAooYd+YxLPrLMe5sMjY4t\n        dmohnLNevCK1Uzw5eIX6BNSo5CORBcIDRmiAgwiYiS3WOv2+qi9g5uIdMiDr+EED\n        K8wZJjB5E2WyfxL507vtW4T5L36yfr8SkmqH3GvzpI2jCqECQQDsy0AmBzyfK0tG\n        Nw1+iF9SReJWgb1f5iHvz+6Dt5ueVQngrl/5++Gp5bNoaQMkLEDsy0iHIj9j43ji\n        0DON05uDAkEA1GXgGn8MXXKyuzYuoyYXCBH7aF579d7KEGET/jjnXx9DHcfRJZBY\n        B9ghMnnonSOGboF04Zsdd3xwYF/3OHYssQJAekd/SeQEzyE5TvoQ8t2Tc9X4yrlW\n        xNX/gmp6/fPr3biGUEtb7qi+4NBodCt+XsingmB7hKUP3RJTk7T2WnAC5wJAMqHi\n        jY5x3SkFkHl3Hq9q2CKpQxUbCd7FXqg1wum/xj5GmqfSpNjHE3+jUkwbdrJMTrWP\n        rmRy3tQMWf0mixAo0QJBAN4IcZChanq8cZyNqqoNbxGm4hkxUmE0W4hxHmLC2CYZ\n        V4JpNm8dpi4CiMWLasF6TYlVMgX+aPxYRUWc/qqf1/Q=\n        -----END RSA PRIVATE KEY-----\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n* using server_certificate/private file example\n\n## Import\n\nServer Load balancer Server Certificate can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:slb/serverCertificate:ServerCertificate example abc123456\n```\n\n","properties":{"alicloudCertifacteId":{"type":"string","deprecationMessage":"Field 'alicloud_certifacte_id' has been deprecated from provider version 1.68.0. Use 'alicloud_certificate_id' replaces it."},"alicloudCertifacteName":{"type":"string","deprecationMessage":"Field 'alicloud_certifacte_name' has been deprecated from provider version 1.68.0. Use 'alicloud_certificate_name' replaces it."},"alicloudCertificateId":{"type":"string","description":"an id of server certificate ssued/proxied by alibaba cloud. but it is not supported on the international site of alibaba cloud now.\n"},"alicloudCertificateName":{"type":"string","description":"the name of the certificate specified by \u003cspan pulumi-lang-nodejs=\"`alicloudCertificateId`\" pulumi-lang-dotnet=\"`AlicloudCertificateId`\" pulumi-lang-go=\"`alicloudCertificateId`\" pulumi-lang-python=\"`alicloud_certificate_id`\" pulumi-lang-yaml=\"`alicloudCertificateId`\" pulumi-lang-java=\"`alicloudCertificateId`\"\u003e`alicloud_certificate_id`\u003c/span\u003e.but it is not supported on the international site of alibaba cloud now.\n"},"alicloudCertificateRegionId":{"type":"string","description":"the region of the certificate specified by \u003cspan pulumi-lang-nodejs=\"`alicloudCertificateId`\" pulumi-lang-dotnet=\"`AlicloudCertificateId`\" pulumi-lang-go=\"`alicloudCertificateId`\" pulumi-lang-python=\"`alicloud_certificate_id`\" pulumi-lang-yaml=\"`alicloudCertificateId`\" pulumi-lang-java=\"`alicloudCertificateId`\"\u003e`alicloud_certificate_id`\u003c/span\u003e. but it is not supported on the international site of alibaba cloud now.\n"},"name":{"type":"string","description":"Name of the Server Certificate.\n"},"privateKey":{"type":"string","description":"the content of privat key of the ssl certificate specified by \u003cspan pulumi-lang-nodejs=\"`serverCertificate`\" pulumi-lang-dotnet=\"`ServerCertificate`\" pulumi-lang-go=\"`serverCertificate`\" pulumi-lang-python=\"`server_certificate`\" pulumi-lang-yaml=\"`serverCertificate`\" pulumi-lang-java=\"`serverCertificate`\"\u003e`server_certificate`\u003c/span\u003e. where \u003cspan pulumi-lang-nodejs=\"`alicloudCertificateId`\" pulumi-lang-dotnet=\"`AlicloudCertificateId`\" pulumi-lang-go=\"`alicloudCertificateId`\" pulumi-lang-python=\"`alicloud_certificate_id`\" pulumi-lang-yaml=\"`alicloudCertificateId`\" pulumi-lang-java=\"`alicloudCertificateId`\"\u003e`alicloud_certificate_id`\u003c/span\u003e is null, it is required, otherwise it is ignored.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the slb server certificate belongs.\n"},"serverCertificate":{"type":"string","description":"the content of the ssl certificate. where \u003cspan pulumi-lang-nodejs=\"`alicloudCertificateId`\" pulumi-lang-dotnet=\"`AlicloudCertificateId`\" pulumi-lang-go=\"`alicloudCertificateId`\" pulumi-lang-python=\"`alicloud_certificate_id`\" pulumi-lang-yaml=\"`alicloudCertificateId`\" pulumi-lang-java=\"`alicloudCertificateId`\"\u003e`alicloud_certificate_id`\u003c/span\u003e is null, it is required, otherwise it is ignored.\n","language":{"csharp":{"name":"Certificate"}}},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["name","resourceGroupId"],"inputProperties":{"alicloudCertifacteId":{"type":"string","deprecationMessage":"Field 'alicloud_certifacte_id' has been deprecated from provider version 1.68.0. Use 'alicloud_certificate_id' replaces it.","willReplaceOnChanges":true},"alicloudCertifacteName":{"type":"string","deprecationMessage":"Field 'alicloud_certifacte_name' has been deprecated from provider version 1.68.0. Use 'alicloud_certificate_name' replaces it.","willReplaceOnChanges":true},"alicloudCertificateId":{"type":"string","description":"an id of server certificate ssued/proxied by alibaba cloud. but it is not supported on the international site of alibaba cloud now.\n","willReplaceOnChanges":true},"alicloudCertificateName":{"type":"string","description":"the name of the certificate specified by \u003cspan pulumi-lang-nodejs=\"`alicloudCertificateId`\" pulumi-lang-dotnet=\"`AlicloudCertificateId`\" pulumi-lang-go=\"`alicloudCertificateId`\" pulumi-lang-python=\"`alicloud_certificate_id`\" pulumi-lang-yaml=\"`alicloudCertificateId`\" pulumi-lang-java=\"`alicloudCertificateId`\"\u003e`alicloud_certificate_id`\u003c/span\u003e.but it is not supported on the international site of alibaba cloud now.\n","willReplaceOnChanges":true},"alicloudCertificateRegionId":{"type":"string","description":"the region of the certificate specified by \u003cspan pulumi-lang-nodejs=\"`alicloudCertificateId`\" pulumi-lang-dotnet=\"`AlicloudCertificateId`\" pulumi-lang-go=\"`alicloudCertificateId`\" pulumi-lang-python=\"`alicloud_certificate_id`\" pulumi-lang-yaml=\"`alicloudCertificateId`\" pulumi-lang-java=\"`alicloudCertificateId`\"\u003e`alicloud_certificate_id`\u003c/span\u003e. but it is not supported on the international site of alibaba cloud now.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the Server Certificate.\n"},"privateKey":{"type":"string","description":"the content of privat key of the ssl certificate specified by \u003cspan pulumi-lang-nodejs=\"`serverCertificate`\" pulumi-lang-dotnet=\"`ServerCertificate`\" pulumi-lang-go=\"`serverCertificate`\" pulumi-lang-python=\"`server_certificate`\" pulumi-lang-yaml=\"`serverCertificate`\" pulumi-lang-java=\"`serverCertificate`\"\u003e`server_certificate`\u003c/span\u003e. where \u003cspan pulumi-lang-nodejs=\"`alicloudCertificateId`\" pulumi-lang-dotnet=\"`AlicloudCertificateId`\" pulumi-lang-go=\"`alicloudCertificateId`\" pulumi-lang-python=\"`alicloud_certificate_id`\" pulumi-lang-yaml=\"`alicloudCertificateId`\" pulumi-lang-java=\"`alicloudCertificateId`\"\u003e`alicloud_certificate_id`\u003c/span\u003e is null, it is required, otherwise it is ignored.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The Id of resource group which the slb server certificate belongs.\n","willReplaceOnChanges":true},"serverCertificate":{"type":"string","description":"the content of the ssl certificate. where \u003cspan pulumi-lang-nodejs=\"`alicloudCertificateId`\" pulumi-lang-dotnet=\"`AlicloudCertificateId`\" pulumi-lang-go=\"`alicloudCertificateId`\" pulumi-lang-python=\"`alicloud_certificate_id`\" pulumi-lang-yaml=\"`alicloudCertificateId`\" pulumi-lang-java=\"`alicloudCertificateId`\"\u003e`alicloud_certificate_id`\u003c/span\u003e is null, it is required, otherwise it is ignored.\n","language":{"csharp":{"name":"Certificate"}},"willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ServerCertificate resources.\n","properties":{"alicloudCertifacteId":{"type":"string","deprecationMessage":"Field 'alicloud_certifacte_id' has been deprecated from provider version 1.68.0. Use 'alicloud_certificate_id' replaces it.","willReplaceOnChanges":true},"alicloudCertifacteName":{"type":"string","deprecationMessage":"Field 'alicloud_certifacte_name' has been deprecated from provider version 1.68.0. Use 'alicloud_certificate_name' replaces it.","willReplaceOnChanges":true},"alicloudCertificateId":{"type":"string","description":"an id of server certificate ssued/proxied by alibaba cloud. but it is not supported on the international site of alibaba cloud now.\n","willReplaceOnChanges":true},"alicloudCertificateName":{"type":"string","description":"the name of the certificate specified by \u003cspan pulumi-lang-nodejs=\"`alicloudCertificateId`\" pulumi-lang-dotnet=\"`AlicloudCertificateId`\" pulumi-lang-go=\"`alicloudCertificateId`\" pulumi-lang-python=\"`alicloud_certificate_id`\" pulumi-lang-yaml=\"`alicloudCertificateId`\" pulumi-lang-java=\"`alicloudCertificateId`\"\u003e`alicloud_certificate_id`\u003c/span\u003e.but it is not supported on the international site of alibaba cloud now.\n","willReplaceOnChanges":true},"alicloudCertificateRegionId":{"type":"string","description":"the region of the certificate specified by \u003cspan pulumi-lang-nodejs=\"`alicloudCertificateId`\" pulumi-lang-dotnet=\"`AlicloudCertificateId`\" pulumi-lang-go=\"`alicloudCertificateId`\" pulumi-lang-python=\"`alicloud_certificate_id`\" pulumi-lang-yaml=\"`alicloudCertificateId`\" pulumi-lang-java=\"`alicloudCertificateId`\"\u003e`alicloud_certificate_id`\u003c/span\u003e. but it is not supported on the international site of alibaba cloud now.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the Server Certificate.\n"},"privateKey":{"type":"string","description":"the content of privat key of the ssl certificate specified by \u003cspan pulumi-lang-nodejs=\"`serverCertificate`\" pulumi-lang-dotnet=\"`ServerCertificate`\" pulumi-lang-go=\"`serverCertificate`\" pulumi-lang-python=\"`server_certificate`\" pulumi-lang-yaml=\"`serverCertificate`\" pulumi-lang-java=\"`serverCertificate`\"\u003e`server_certificate`\u003c/span\u003e. where \u003cspan pulumi-lang-nodejs=\"`alicloudCertificateId`\" pulumi-lang-dotnet=\"`AlicloudCertificateId`\" pulumi-lang-go=\"`alicloudCertificateId`\" pulumi-lang-python=\"`alicloud_certificate_id`\" pulumi-lang-yaml=\"`alicloudCertificateId`\" pulumi-lang-java=\"`alicloudCertificateId`\"\u003e`alicloud_certificate_id`\u003c/span\u003e is null, it is required, otherwise it is ignored.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The Id of resource group which the slb server certificate belongs.\n","willReplaceOnChanges":true},"serverCertificate":{"type":"string","description":"the content of the ssl certificate. where \u003cspan pulumi-lang-nodejs=\"`alicloudCertificateId`\" pulumi-lang-dotnet=\"`AlicloudCertificateId`\" pulumi-lang-go=\"`alicloudCertificateId`\" pulumi-lang-python=\"`alicloud_certificate_id`\" pulumi-lang-yaml=\"`alicloudCertificateId`\" pulumi-lang-java=\"`alicloudCertificateId`\"\u003e`alicloud_certificate_id`\u003c/span\u003e is null, it is required, otherwise it is ignored.\n","language":{"csharp":{"name":"Certificate"}},"willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:slb/serverGroup:ServerGroup":{"description":"Provides a Load Balancer Virtual Backend Server Group resource.\n\nFor information about Load Balancer Virtual Backend Server Group and how to use it, see [What is Virtual Backend Server Group](https://www.alibabacloud.com/help/en/doc-detail/35215.html).\n\n\u003e **NOTE:** Available since v1.6.0.\n\n\u003e **NOTE:** One ECS instance can be added into multiple virtual server groups.\n\n\u003e **NOTE:** One virtual server group can be attached with multiple listeners in one load balancer.\n\n\u003e **NOTE:** One Classic and Internet load balancer, its virtual server group can add Classic and VPC ECS instances.\n\n\u003e **NOTE:** One Classic and Intranet load balancer, its virtual server group can only add Classic ECS instances.\n\n\u003e **NOTE:** One VPC load balancer, its virtual server group can only add the same VPC ECS instances.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/16\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"default\", {\n    loadBalancerName: name,\n    vswitchId: defaultSwitch.id,\n    loadBalancerSpec: \"slb.s2.small\",\n});\nconst defaultServerGroup = new alicloud.slb.ServerGroup(\"default\", {\n    loadBalancerId: defaultApplicationLoadBalancer.id,\n    name: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/16\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"default\",\n    load_balancer_name=name,\n    vswitch_id=default_switch.id,\n    load_balancer_spec=\"slb.s2.small\")\ndefault_server_group = alicloud.slb.ServerGroup(\"default\",\n    load_balancer_id=default_application_load_balancer.id,\n    name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/16\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = name,\n        VswitchId = defaultSwitch.Id,\n        LoadBalancerSpec = \"slb.s2.small\",\n    });\n\n    var defaultServerGroup = new AliCloud.Slb.ServerGroup(\"default\", new()\n    {\n        LoadBalancerId = defaultApplicationLoadBalancer.Id,\n        Name = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/16\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplicationLoadBalancer, err := slb.NewApplicationLoadBalancer(ctx, \"default\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tVswitchId:        defaultSwitch.ID(),\n\t\t\tLoadBalancerSpec: pulumi.String(\"slb.s2.small\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = slb.NewServerGroup(ctx, \"default\", \u0026slb.ServerGroupArgs{\n\t\t\tLoadBalancerId: defaultApplicationLoadBalancer.ID(),\n\t\t\tName:           pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.slb.ServerGroup;\nimport com.pulumi.alicloud.slb.ServerGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/16\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultApplicationLoadBalancer = new ApplicationLoadBalancer(\"defaultApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .vswitchId(defaultSwitch.id())\n            .loadBalancerSpec(\"slb.s2.small\")\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .loadBalancerId(defaultApplicationLoadBalancer.id())\n            .name(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/16\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultApplicationLoadBalancer:\n    type: alicloud:slb:ApplicationLoadBalancer\n    name: default\n    properties:\n      loadBalancerName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      loadBalancerSpec: slb.s2.small\n  defaultServerGroup:\n    type: alicloud:slb:ServerGroup\n    name: default\n    properties:\n      loadBalancerId: ${defaultApplicationLoadBalancer.id}\n      name: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLoad Balancer Virtual Backend Server Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:slb/serverGroup:ServerGroup example \u003cid\u003e\n```\n\n","properties":{"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. If \u003cspan pulumi-lang-nodejs=\"`deleteProtectionValidation`\" pulumi-lang-dotnet=\"`DeleteProtectionValidation`\" pulumi-lang-go=\"`deleteProtectionValidation`\" pulumi-lang-python=\"`delete_protection_validation`\" pulumi-lang-yaml=\"`deleteProtectionValidation`\" pulumi-lang-java=\"`deleteProtectionValidation`\"\u003e`delete_protection_validation`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this resource will not be deleted when its SLB instance enabled DeleteProtection.\n"},"loadBalancerId":{"type":"string","description":"The ID of the Server Load Balancer (SLB) instance.\n"},"name":{"type":"string","description":"The name of the vServer group. Default value: `tf-server-group`.\n"},"servers":{"type":"array","items":{"$ref":"#/types/alicloud:slb/ServerGroupServer:ServerGroupServer"},"description":"The list of backend servers to be added. See \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e below.\n\u003e **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e has been deprecated from provider version 1.163.0, and it will be removed in the future version. Please use the new resource \u003cspan pulumi-lang-nodejs=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-dotnet=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-go=\"`slb.ServerGroupServerAttachment`\" pulumi-lang-python=\"`slb.ServerGroupServerAttachment`\" pulumi-lang-yaml=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-java=\"`alicloud.slb.ServerGroupServerAttachment`\"\u003e`alicloud.slb.ServerGroupServerAttachment`\u003c/span\u003e.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e has been deprecated from provider version 1.163.0 and it will be removed in the future version. Please use the new resource \u003cspan pulumi-lang-nodejs=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-dotnet=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-go=\"`slb.ServerGroupServerAttachment`\" pulumi-lang-python=\"`slb.ServerGroupServerAttachment`\" pulumi-lang-yaml=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-java=\"`alicloud.slb.ServerGroupServerAttachment`\"\u003e`alicloud.slb.ServerGroupServerAttachment`\u003c/span\u003e."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"required":["loadBalancerId","name","servers"],"inputProperties":{"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. If \u003cspan pulumi-lang-nodejs=\"`deleteProtectionValidation`\" pulumi-lang-dotnet=\"`DeleteProtectionValidation`\" pulumi-lang-go=\"`deleteProtectionValidation`\" pulumi-lang-python=\"`delete_protection_validation`\" pulumi-lang-yaml=\"`deleteProtectionValidation`\" pulumi-lang-java=\"`deleteProtectionValidation`\"\u003e`delete_protection_validation`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this resource will not be deleted when its SLB instance enabled DeleteProtection.\n"},"loadBalancerId":{"type":"string","description":"The ID of the Server Load Balancer (SLB) instance.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the vServer group. Default value: `tf-server-group`.\n"},"servers":{"type":"array","items":{"$ref":"#/types/alicloud:slb/ServerGroupServer:ServerGroupServer"},"description":"The list of backend servers to be added. See \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e below.\n\u003e **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e has been deprecated from provider version 1.163.0, and it will be removed in the future version. Please use the new resource \u003cspan pulumi-lang-nodejs=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-dotnet=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-go=\"`slb.ServerGroupServerAttachment`\" pulumi-lang-python=\"`slb.ServerGroupServerAttachment`\" pulumi-lang-yaml=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-java=\"`alicloud.slb.ServerGroupServerAttachment`\"\u003e`alicloud.slb.ServerGroupServerAttachment`\u003c/span\u003e.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e has been deprecated from provider version 1.163.0 and it will be removed in the future version. Please use the new resource \u003cspan pulumi-lang-nodejs=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-dotnet=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-go=\"`slb.ServerGroupServerAttachment`\" pulumi-lang-python=\"`slb.ServerGroupServerAttachment`\" pulumi-lang-yaml=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-java=\"`alicloud.slb.ServerGroupServerAttachment`\"\u003e`alicloud.slb.ServerGroupServerAttachment`\u003c/span\u003e."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"requiredInputs":["loadBalancerId"],"stateInputs":{"description":"Input properties used for looking up and filtering ServerGroup resources.\n","properties":{"deleteProtectionValidation":{"type":"boolean","description":"Checking DeleteProtection of SLB instance before deleting. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. If \u003cspan pulumi-lang-nodejs=\"`deleteProtectionValidation`\" pulumi-lang-dotnet=\"`DeleteProtectionValidation`\" pulumi-lang-go=\"`deleteProtectionValidation`\" pulumi-lang-python=\"`delete_protection_validation`\" pulumi-lang-yaml=\"`deleteProtectionValidation`\" pulumi-lang-java=\"`deleteProtectionValidation`\"\u003e`delete_protection_validation`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this resource will not be deleted when its SLB instance enabled DeleteProtection.\n"},"loadBalancerId":{"type":"string","description":"The ID of the Server Load Balancer (SLB) instance.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the vServer group. Default value: `tf-server-group`.\n"},"servers":{"type":"array","items":{"$ref":"#/types/alicloud:slb/ServerGroupServer:ServerGroupServer"},"description":"The list of backend servers to be added. See \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e below.\n\u003e **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e has been deprecated from provider version 1.163.0, and it will be removed in the future version. Please use the new resource \u003cspan pulumi-lang-nodejs=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-dotnet=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-go=\"`slb.ServerGroupServerAttachment`\" pulumi-lang-python=\"`slb.ServerGroupServerAttachment`\" pulumi-lang-yaml=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-java=\"`alicloud.slb.ServerGroupServerAttachment`\"\u003e`alicloud.slb.ServerGroupServerAttachment`\u003c/span\u003e.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e has been deprecated from provider version 1.163.0 and it will be removed in the future version. Please use the new resource \u003cspan pulumi-lang-nodejs=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-dotnet=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-go=\"`slb.ServerGroupServerAttachment`\" pulumi-lang-python=\"`slb.ServerGroupServerAttachment`\" pulumi-lang-yaml=\"`alicloud.slb.ServerGroupServerAttachment`\" pulumi-lang-java=\"`alicloud.slb.ServerGroupServerAttachment`\"\u003e`alicloud.slb.ServerGroupServerAttachment`\u003c/span\u003e."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"}},"alicloud:slb/serverGroupServerAttachment:ServerGroupServerAttachment":{"description":"Provides a Load Balancer Virtual Backend Server Group Server Attachment resource.\n\n\u003e **NOTE:** Available since v1.163.0.\n\nFor information about Load Balancer Virtual Backend Server Group Server Attachment and how to use it, see [What is Virtual Backend Server Group Server Attachment](https://www.alibabacloud.com/help/en/slb/classic-load-balancer/developer-reference/api-slb-2014-05-15-addvservergroupbackendservers).\n\n\u003e **NOTE:** Applying this resource may conflict with applying \u003cspan pulumi-lang-nodejs=\"`alicloud.slb.Listener`\" pulumi-lang-dotnet=\"`alicloud.slb.Listener`\" pulumi-lang-go=\"`slb.Listener`\" pulumi-lang-python=\"`slb.Listener`\" pulumi-lang-yaml=\"`alicloud.slb.Listener`\" pulumi-lang-java=\"`alicloud.slb.Listener`\"\u003e`alicloud.slb.Listener`\u003c/span\u003e, \nand the \u003cspan pulumi-lang-nodejs=\"`alicloud.slb.Listener`\" pulumi-lang-dotnet=\"`alicloud.slb.Listener`\" pulumi-lang-go=\"`slb.Listener`\" pulumi-lang-python=\"`slb.Listener`\" pulumi-lang-yaml=\"`alicloud.slb.Listener`\" pulumi-lang-java=\"`alicloud.slb.Listener`\"\u003e`alicloud.slb.Listener`\u003c/span\u003e block should use \u003cspan pulumi-lang-nodejs=\"`dependsOn \" pulumi-lang-dotnet=\"`DependsOn \" pulumi-lang-go=\"`dependsOn \" pulumi-lang-python=\"`depends_on \" pulumi-lang-yaml=\"`dependsOn \" pulumi-lang-java=\"`dependsOn \"\u003e`depends_on \u003c/span\u003e= [alicloud_slb_server_group_server_attachment.xxx]` to avoid it.\n\n## Example Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.slb.getZones({\n    availableSlbAddressType: \"vpc\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    instanceTypeFamily: \"ecs.sn1ne\",\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_[0-9]+_[0-9]+_x64*\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"192.168.192.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"default\", {\n    loadBalancerName: name,\n    vswitchId: defaultSwitch.id,\n    loadBalancerSpec: \"slb.s2.small\",\n    addressType: \"intranet\",\n});\nconst defaultServerGroup = new alicloud.slb.ServerGroup(\"default\", {\n    loadBalancerId: defaultApplicationLoadBalancer.id,\n    name: name,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    instanceName: name,\n    securityGroups: [defaultSecurityGroup].map(__item =\u003e __item.id),\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 10,\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    instanceChargeType: \"PostPaid\",\n    systemDiskCategory: \"cloud_efficiency\",\n    vswitchId: defaultSwitch.id,\n});\nconst serverAttachment = new alicloud.slb.ServerGroupServerAttachment(\"server_attachment\", {\n    serverGroupId: defaultServerGroup.id,\n    serverId: defaultInstance.id,\n    port: 8080,\n    type: \"ecs\",\n    weight: 0,\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.slb.get_zones(available_slb_address_type=\"vpc\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    instance_type_family=\"ecs.sn1ne\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_[0-9]+_[0-9]+_x64*\",\n    most_recent=True,\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"192.168.192.0/24\",\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"default\",\n    load_balancer_name=name,\n    vswitch_id=default_switch.id,\n    load_balancer_spec=\"slb.s2.small\",\n    address_type=\"intranet\")\ndefault_server_group = alicloud.slb.ServerGroup(\"default\",\n    load_balancer_id=default_application_load_balancer.id,\n    name=name)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    instance_name=name,\n    security_groups=[__item.id for __item in [default_security_group]],\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=10,\n    availability_zone=default.zones[0].id,\n    instance_charge_type=\"PostPaid\",\n    system_disk_category=\"cloud_efficiency\",\n    vswitch_id=default_switch.id)\nserver_attachment = alicloud.slb.ServerGroupServerAttachment(\"server_attachment\",\n    server_group_id=default_server_group.id,\n    server_id=default_instance.id,\n    port=8080,\n    type=\"ecs\",\n    weight=0,\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Slb.GetZones.Invoke(new()\n    {\n        AvailableSlbAddressType = \"vpc\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_[0-9]+_[0-9]+_x64*\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"192.168.192.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = name,\n        VswitchId = defaultSwitch.Id,\n        LoadBalancerSpec = \"slb.s2.small\",\n        AddressType = \"intranet\",\n    });\n\n    var defaultServerGroup = new AliCloud.Slb.ServerGroup(\"default\", new()\n    {\n        LoadBalancerId = defaultApplicationLoadBalancer.Id,\n        Name = name,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        InstanceName = name,\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup,\n        }.Select(__item =\u003e __item.Id).ToList(),\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 10,\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskCategory = \"cloud_efficiency\",\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var serverAttachment = new AliCloud.Slb.ServerGroupServerAttachment(\"server_attachment\", new()\n    {\n        ServerGroupId = defaultServerGroup.Id,\n        ServerId = defaultInstance.Id,\n        Port = 8080,\n        Type = \"ecs\",\n        Weight = 0,\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := slb.GetZones(ctx, \u0026slb.GetZonesArgs{\nAvailableSlbAddressType: pulumi.StringRef(\"vpc\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\nInstanceTypeFamily: pulumi.StringRef(\"ecs.sn1ne\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nNameRegex: pulumi.StringRef(\"^ubuntu_[0-9]+_[0-9]+_x64*\"),\nMostRecent: pulumi.BoolRef(true),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"192.168.192.0/24\"),\nZoneId: pulumi.String(_default.Zones[0].Id),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\ndefaultApplicationLoadBalancer, err := slb.NewApplicationLoadBalancer(ctx, \"default\", \u0026slb.ApplicationLoadBalancerArgs{\nLoadBalancerName: pulumi.String(name),\nVswitchId: defaultSwitch.ID(),\nLoadBalancerSpec: pulumi.String(\"slb.s2.small\"),\nAddressType: pulumi.String(\"intranet\"),\n})\nif err != nil {\nreturn err\n}\ndefaultServerGroup, err := slb.NewServerGroup(ctx, \"default\", \u0026slb.ServerGroupArgs{\nLoadBalancerId: defaultApplicationLoadBalancer.ID(),\nName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\ndefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\nImageId: pulumi.String(defaultGetImages.Images[0].Id),\nInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\nInstanceName: pulumi.String(name),\nSecurityGroups: splat0,\nInternetChargeType: pulumi.String(\"PayByTraffic\"),\nInternetMaxBandwidthOut: pulumi.Int(10),\nAvailabilityZone: pulumi.String(_default.Zones[0].Id),\nInstanceChargeType: pulumi.String(\"PostPaid\"),\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nVswitchId: defaultSwitch.ID(),\n})\nif err != nil {\nreturn err\n}\n_, err = slb.NewServerGroupServerAttachment(ctx, \"server_attachment\", \u0026slb.ServerGroupServerAttachmentArgs{\nServerGroupId: defaultServerGroup.ID(),\nServerId: defaultInstance.ID(),\nPort: pulumi.Int(8080),\nType: pulumi.String(\"ecs\"),\nWeight: pulumi.Int(0),\nDescription: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.slb.ServerGroup;\nimport com.pulumi.alicloud.slb.ServerGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.slb.ServerGroupServerAttachment;\nimport com.pulumi.alicloud.slb.ServerGroupServerAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = SlbFunctions.getZones(GetZonesArgs.builder()\n            .availableSlbAddressType(\"vpc\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_[0-9]+_[0-9]+_x64*\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"192.168.192.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultApplicationLoadBalancer = new ApplicationLoadBalancer(\"defaultApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .vswitchId(defaultSwitch.id())\n            .loadBalancerSpec(\"slb.s2.small\")\n            .addressType(\"intranet\")\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .loadBalancerId(defaultApplicationLoadBalancer.id())\n            .name(name)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .instanceName(name)\n            .securityGroups(defaultSecurityGroup.stream().map(element -\u003e element.id()).collect(toList()))\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(10)\n            .availabilityZone(default_.zones()[0].id())\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var serverAttachment = new ServerGroupServerAttachment(\"serverAttachment\", ServerGroupServerAttachmentArgs.builder()\n            .serverGroupId(defaultServerGroup.id())\n            .serverId(defaultInstance.id())\n            .port(8080)\n            .type(\"ecs\")\n            .weight(0)\n            .description(name)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLoad Balancer Virtual Backend Server Group Server Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:slb/serverGroupServerAttachment:ServerGroupServerAttachment example \u003cserver_group_id\u003e:\u003cserver_id\u003e:\u003cport\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the backend server.\n"},"port":{"type":"integer","description":"The port that is used by the backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n"},"serverGroupId":{"type":"string","description":"The ID of the server group.\n"},"serverId":{"type":"string","description":"The ID of the backend server. You can specify the ID of an Elastic Compute Service (ECS) instance or an elastic network interface (ENI).\n"},"type":{"type":"string","description":"The type of backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`eni`\" pulumi-lang-dotnet=\"`Eni`\" pulumi-lang-go=\"`eni`\" pulumi-lang-python=\"`eni`\" pulumi-lang-yaml=\"`eni`\" pulumi-lang-java=\"`eni`\"\u003e`eni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`eci`\" pulumi-lang-dotnet=\"`Eci`\" pulumi-lang-go=\"`eci`\" pulumi-lang-python=\"`eci`\" pulumi-lang-yaml=\"`eci`\" pulumi-lang-java=\"`eci`\"\u003e`eci`\u003c/span\u003e. **NOTE:** From version 1.246.0, \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`eci`\" pulumi-lang-dotnet=\"`Eci`\" pulumi-lang-go=\"`eci`\" pulumi-lang-python=\"`eci`\" pulumi-lang-yaml=\"`eci`\" pulumi-lang-java=\"`eci`\"\u003e`eci`\u003c/span\u003e.\n"},"weight":{"type":"integer","description":"The weight of the backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. If the value is set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, no requests are forwarded to the backend server.\n"}},"required":["description","port","serverGroupId","serverId","type","weight"],"inputProperties":{"description":{"type":"string","description":"The description of the backend server.\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"The port that is used by the backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n","willReplaceOnChanges":true},"serverGroupId":{"type":"string","description":"The ID of the server group.\n","willReplaceOnChanges":true},"serverId":{"type":"string","description":"The ID of the backend server. You can specify the ID of an Elastic Compute Service (ECS) instance or an elastic network interface (ENI).\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`eni`\" pulumi-lang-dotnet=\"`Eni`\" pulumi-lang-go=\"`eni`\" pulumi-lang-python=\"`eni`\" pulumi-lang-yaml=\"`eni`\" pulumi-lang-java=\"`eni`\"\u003e`eni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`eci`\" pulumi-lang-dotnet=\"`Eci`\" pulumi-lang-go=\"`eci`\" pulumi-lang-python=\"`eci`\" pulumi-lang-yaml=\"`eci`\" pulumi-lang-java=\"`eci`\"\u003e`eci`\u003c/span\u003e. **NOTE:** From version 1.246.0, \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`eci`\" pulumi-lang-dotnet=\"`Eci`\" pulumi-lang-go=\"`eci`\" pulumi-lang-python=\"`eci`\" pulumi-lang-yaml=\"`eci`\" pulumi-lang-java=\"`eci`\"\u003e`eci`\u003c/span\u003e.\n","willReplaceOnChanges":true},"weight":{"type":"integer","description":"The weight of the backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. If the value is set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, no requests are forwarded to the backend server.\n","willReplaceOnChanges":true}},"requiredInputs":["port","serverGroupId","serverId"],"stateInputs":{"description":"Input properties used for looking up and filtering ServerGroupServerAttachment resources.\n","properties":{"description":{"type":"string","description":"The description of the backend server.\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"The port that is used by the backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e.\n","willReplaceOnChanges":true},"serverGroupId":{"type":"string","description":"The ID of the server group.\n","willReplaceOnChanges":true},"serverId":{"type":"string","description":"The ID of the backend server. You can specify the ID of an Elastic Compute Service (ECS) instance or an elastic network interface (ENI).\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`ecs`\" pulumi-lang-dotnet=\"`Ecs`\" pulumi-lang-go=\"`ecs`\" pulumi-lang-python=\"`ecs`\" pulumi-lang-yaml=\"`ecs`\" pulumi-lang-java=\"`ecs`\"\u003e`ecs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`eni`\" pulumi-lang-dotnet=\"`Eni`\" pulumi-lang-go=\"`eni`\" pulumi-lang-python=\"`eni`\" pulumi-lang-yaml=\"`eni`\" pulumi-lang-java=\"`eni`\"\u003e`eni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`eci`\" pulumi-lang-dotnet=\"`Eci`\" pulumi-lang-go=\"`eci`\" pulumi-lang-python=\"`eci`\" pulumi-lang-yaml=\"`eci`\" pulumi-lang-java=\"`eci`\"\u003e`eci`\u003c/span\u003e. **NOTE:** From version 1.246.0, \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`eci`\" pulumi-lang-dotnet=\"`Eci`\" pulumi-lang-go=\"`eci`\" pulumi-lang-python=\"`eci`\" pulumi-lang-yaml=\"`eci`\" pulumi-lang-java=\"`eci`\"\u003e`eci`\u003c/span\u003e.\n","willReplaceOnChanges":true},"weight":{"type":"integer","description":"The weight of the backend server. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. If the value is set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, no requests are forwarded to the backend server.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:slb/tlsCipherPolicy:TlsCipherPolicy":{"description":"Provides a SLB Tls Cipher Policy resource.\n\nFor information about SLB Tls Cipher Policy and how to use it, see [What is Tls Cipher Policy](https://www.alibabacloud.com/help/doc-detail/196714.htm).\n\n\u003e **NOTE:** Available in v1.135.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.slb.TlsCipherPolicy(\"example\", {\n    tlsCipherPolicyName: \"Test-example_value\",\n    tlsVersions: [\"TLSv1.2\"],\n    ciphers: [\n        \"AES256-SHA256\",\n        \"AES128-GCM-SHA256\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.slb.TlsCipherPolicy(\"example\",\n    tls_cipher_policy_name=\"Test-example_value\",\n    tls_versions=[\"TLSv1.2\"],\n    ciphers=[\n        \"AES256-SHA256\",\n        \"AES128-GCM-SHA256\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Slb.TlsCipherPolicy(\"example\", new()\n    {\n        TlsCipherPolicyName = \"Test-example_value\",\n        TlsVersions = new[]\n        {\n            \"TLSv1.2\",\n        },\n        Ciphers = new[]\n        {\n            \"AES256-SHA256\",\n            \"AES128-GCM-SHA256\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := slb.NewTlsCipherPolicy(ctx, \"example\", \u0026slb.TlsCipherPolicyArgs{\n\t\t\tTlsCipherPolicyName: pulumi.String(\"Test-example_value\"),\n\t\t\tTlsVersions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"TLSv1.2\"),\n\t\t\t},\n\t\t\tCiphers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"AES256-SHA256\"),\n\t\t\t\tpulumi.String(\"AES128-GCM-SHA256\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.TlsCipherPolicy;\nimport com.pulumi.alicloud.slb.TlsCipherPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new TlsCipherPolicy(\"example\", TlsCipherPolicyArgs.builder()\n            .tlsCipherPolicyName(\"Test-example_value\")\n            .tlsVersions(\"TLSv1.2\")\n            .ciphers(            \n                \"AES256-SHA256\",\n                \"AES128-GCM-SHA256\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:slb:TlsCipherPolicy\n    properties:\n      tlsCipherPolicyName: Test-example_value\n      tlsVersions:\n        - TLSv1.2\n      ciphers:\n        - AES256-SHA256\n        - AES128-GCM-SHA256\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSLB Tls Cipher Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:slb/tlsCipherPolicy:TlsCipherPolicy example \u003cid\u003e\n```\n\n","properties":{"ciphers":{"type":"array","items":{"type":"string"},"description":"The encryption algorithms supported. It depends on the value of \u003cspan pulumi-lang-nodejs=\"`tlsVersions`\" pulumi-lang-dotnet=\"`TlsVersions`\" pulumi-lang-go=\"`tlsVersions`\" pulumi-lang-python=\"`tls_versions`\" pulumi-lang-yaml=\"`tlsVersions`\" pulumi-lang-java=\"`tlsVersions`\"\u003e`tls_versions`\u003c/span\u003e.\n"},"status":{"type":"string","description":"TLS policy instance state.\n"},"tlsCipherPolicyName":{"type":"string","description":"TLS policy name. Length is from 2 to 128, or in both the English and Chinese characters must be with an uppercase/lowercase letter or a Chinese character and the beginning, may contain numbers, in dot `.`, underscore `_` or dash `-`.\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"The version of TLS protocol. You can find the corresponding value description in the document center [What is Tls Cipher Policy](https://www.alibabacloud.com/help/doc-detail/196714.htm).\n"}},"required":["ciphers","status","tlsCipherPolicyName","tlsVersions"],"inputProperties":{"ciphers":{"type":"array","items":{"type":"string"},"description":"The encryption algorithms supported. It depends on the value of \u003cspan pulumi-lang-nodejs=\"`tlsVersions`\" pulumi-lang-dotnet=\"`TlsVersions`\" pulumi-lang-go=\"`tlsVersions`\" pulumi-lang-python=\"`tls_versions`\" pulumi-lang-yaml=\"`tlsVersions`\" pulumi-lang-java=\"`tlsVersions`\"\u003e`tls_versions`\u003c/span\u003e.\n"},"tlsCipherPolicyName":{"type":"string","description":"TLS policy name. Length is from 2 to 128, or in both the English and Chinese characters must be with an uppercase/lowercase letter or a Chinese character and the beginning, may contain numbers, in dot `.`, underscore `_` or dash `-`.\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"The version of TLS protocol. You can find the corresponding value description in the document center [What is Tls Cipher Policy](https://www.alibabacloud.com/help/doc-detail/196714.htm).\n"}},"requiredInputs":["ciphers","tlsCipherPolicyName","tlsVersions"],"stateInputs":{"description":"Input properties used for looking up and filtering TlsCipherPolicy resources.\n","properties":{"ciphers":{"type":"array","items":{"type":"string"},"description":"The encryption algorithms supported. It depends on the value of \u003cspan pulumi-lang-nodejs=\"`tlsVersions`\" pulumi-lang-dotnet=\"`TlsVersions`\" pulumi-lang-go=\"`tlsVersions`\" pulumi-lang-python=\"`tls_versions`\" pulumi-lang-yaml=\"`tlsVersions`\" pulumi-lang-java=\"`tlsVersions`\"\u003e`tls_versions`\u003c/span\u003e.\n"},"status":{"type":"string","description":"TLS policy instance state.\n"},"tlsCipherPolicyName":{"type":"string","description":"TLS policy name. Length is from 2 to 128, or in both the English and Chinese characters must be with an uppercase/lowercase letter or a Chinese character and the beginning, may contain numbers, in dot `.`, underscore `_` or dash `-`.\n"},"tlsVersions":{"type":"array","items":{"type":"string"},"description":"The version of TLS protocol. You can find the corresponding value description in the document center [What is Tls Cipher Policy](https://www.alibabacloud.com/help/doc-detail/196714.htm).\n"}},"type":"object"}},"alicloud:sls/alert:Alert":{"description":"Provides a SLS Alert resource. \n\nFor information about SLS Alert and how to use it, see [What is Alert](https://www.alibabacloud.com/help/en/doc-detail/209202.html).\n\n\u003e **NOTE:** Available since v1.223.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst alertName = config.get(\"alertName\") || \"openapi-terraform-alert\";\nconst projectName = config.get(\"projectName\") || \"terraform-alert-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultINsMgl = new alicloud.log.Project(\"defaultINsMgl\", {\n    description: `${projectName}-${_default.result}`,\n    projectName: `${projectName}-${_default.result}`,\n});\nconst defaultAlert = new alicloud.sls.Alert(\"default\", {\n    schedule: {\n        type: \"FixedRate\",\n        runImmdiately: true,\n        interval: \"1m\",\n        timeZone: \"+0800\",\n        delay: 10,\n    },\n    displayName: \"openapi-terraform\",\n    description: \"create alert\",\n    status: \"ENABLED\",\n    configuration: {\n        groupConfiguration: {\n            fields: [\n                \"a\",\n                \"b\",\n            ],\n            type: \"no_group\",\n        },\n        noDataFire: false,\n        version: \"2\",\n        severityConfigurations: [{\n            severity: 6,\n            evalCondition: {\n                countCondition: \"cnt \u003e 0\",\n                condition: \"__count__ \u003e 1\",\n            },\n        }],\n        labels: [{\n            key: \"a\",\n            value: \"b\",\n        }],\n        autoAnnotation: true,\n        templateConfiguration: {\n            lang: \"cn\",\n            tokens: {\n                a: \"b\",\n            },\n            annotations: {\n                x: \"y\",\n            },\n            templateId: \"sls.app.ack.autoscaler.cluster_unhealthy\",\n            type: \"sys\",\n            version: \"1.0\",\n        },\n        muteUntil: 0,\n        annotations: [{\n            key: \"x\",\n            value: \"y\",\n        }],\n        sendResolved: false,\n        threshold: 1,\n        sinkCms: {\n            enabled: false,\n        },\n        conditionConfiguration: {\n            condition: \"cnt \u003e 3\",\n            countCondition: \"__count__ \u003c 3\",\n        },\n        policyConfiguration: {\n            alertPolicyId: \"sls.builtin.dynamic\",\n            actionPolicyId: \"wkb-action\",\n            repeatInterval: \"1m\",\n        },\n        dashboard: \"internal-alert\",\n        type: \"tpl\",\n        queryLists: [\n            {\n                ui: \"{}\",\n                roleArn: \"acs:ram::1654218965343050:role/aliyunslsalertmonitorrole\",\n                query: \"* | select *\",\n                timeSpanType: \"Relative\",\n                project: defaultINsMgl.projectName,\n                powerSqlMode: \"disable\",\n                dashboardId: \"wkb-dashboard\",\n                chartTitle: \"wkb-chart\",\n                start: \"-15m\",\n                end: \"now\",\n                storeType: \"log\",\n                store: \"alert\",\n                region: \"cn-shanghai\",\n            },\n            {\n                storeType: \"meta\",\n                store: \"user.rds_ip_whitelist\",\n            },\n            {\n                storeType: \"meta\",\n                store: \"myexample1\",\n            },\n        ],\n        joinConfigurations: [\n            {\n                type: \"no_join\",\n                condition: \"aa\",\n            },\n            {\n                type: \"cross_join\",\n                condition: \"qqq\",\n            },\n            {\n                type: \"inner_join\",\n                condition: \"fefefe\",\n            },\n        ],\n        sinkEventStore: {\n            enabled: true,\n            endpoint: \"cn-shanghai-intranet.log.aliyuncs.com\",\n            project: \"wkb-wangren\",\n            eventStore: \"alert\",\n            roleArn: \"acs:ram::1654218965343050:role/aliyunlogetlrole\",\n        },\n        sinkAlerthub: {\n            enabled: false,\n        },\n        noDataSeverity: 6,\n        tags: [\n            \"wkb\",\n            \"wangren\",\n            \"sls\",\n        ],\n    },\n    alertName: alertName,\n    projectName: defaultINsMgl.projectName,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nalert_name = config.get(\"alertName\")\nif alert_name is None:\n    alert_name = \"openapi-terraform-alert\"\nproject_name = config.get(\"projectName\")\nif project_name is None:\n    project_name = \"terraform-alert-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_ins_mgl = alicloud.log.Project(\"defaultINsMgl\",\n    description=f\"{project_name}-{default['result']}\",\n    project_name=f\"{project_name}-{default['result']}\")\ndefault_alert = alicloud.sls.Alert(\"default\",\n    schedule={\n        \"type\": \"FixedRate\",\n        \"run_immdiately\": True,\n        \"interval\": \"1m\",\n        \"time_zone\": \"+0800\",\n        \"delay\": 10,\n    },\n    display_name=\"openapi-terraform\",\n    description=\"create alert\",\n    status=\"ENABLED\",\n    configuration={\n        \"group_configuration\": {\n            \"fields\": [\n                \"a\",\n                \"b\",\n            ],\n            \"type\": \"no_group\",\n        },\n        \"no_data_fire\": False,\n        \"version\": \"2\",\n        \"severity_configurations\": [{\n            \"severity\": 6,\n            \"eval_condition\": {\n                \"count_condition\": \"cnt \u003e 0\",\n                \"condition\": \"__count__ \u003e 1\",\n            },\n        }],\n        \"labels\": [{\n            \"key\": \"a\",\n            \"value\": \"b\",\n        }],\n        \"auto_annotation\": True,\n        \"template_configuration\": {\n            \"lang\": \"cn\",\n            \"tokens\": {\n                \"a\": \"b\",\n            },\n            \"annotations\": {\n                \"x\": \"y\",\n            },\n            \"template_id\": \"sls.app.ack.autoscaler.cluster_unhealthy\",\n            \"type\": \"sys\",\n            \"version\": \"1.0\",\n        },\n        \"mute_until\": 0,\n        \"annotations\": [{\n            \"key\": \"x\",\n            \"value\": \"y\",\n        }],\n        \"send_resolved\": False,\n        \"threshold\": 1,\n        \"sink_cms\": {\n            \"enabled\": False,\n        },\n        \"condition_configuration\": {\n            \"condition\": \"cnt \u003e 3\",\n            \"count_condition\": \"__count__ \u003c 3\",\n        },\n        \"policy_configuration\": {\n            \"alert_policy_id\": \"sls.builtin.dynamic\",\n            \"action_policy_id\": \"wkb-action\",\n            \"repeat_interval\": \"1m\",\n        },\n        \"dashboard\": \"internal-alert\",\n        \"type\": \"tpl\",\n        \"query_lists\": [\n            {\n                \"ui\": \"{}\",\n                \"role_arn\": \"acs:ram::1654218965343050:role/aliyunslsalertmonitorrole\",\n                \"query\": \"* | select *\",\n                \"time_span_type\": \"Relative\",\n                \"project\": default_ins_mgl.project_name,\n                \"power_sql_mode\": \"disable\",\n                \"dashboard_id\": \"wkb-dashboard\",\n                \"chart_title\": \"wkb-chart\",\n                \"start\": \"-15m\",\n                \"end\": \"now\",\n                \"store_type\": \"log\",\n                \"store\": \"alert\",\n                \"region\": \"cn-shanghai\",\n            },\n            {\n                \"store_type\": \"meta\",\n                \"store\": \"user.rds_ip_whitelist\",\n            },\n            {\n                \"store_type\": \"meta\",\n                \"store\": \"myexample1\",\n            },\n        ],\n        \"join_configurations\": [\n            {\n                \"type\": \"no_join\",\n                \"condition\": \"aa\",\n            },\n            {\n                \"type\": \"cross_join\",\n                \"condition\": \"qqq\",\n            },\n            {\n                \"type\": \"inner_join\",\n                \"condition\": \"fefefe\",\n            },\n        ],\n        \"sink_event_store\": {\n            \"enabled\": True,\n            \"endpoint\": \"cn-shanghai-intranet.log.aliyuncs.com\",\n            \"project\": \"wkb-wangren\",\n            \"event_store\": \"alert\",\n            \"role_arn\": \"acs:ram::1654218965343050:role/aliyunlogetlrole\",\n        },\n        \"sink_alerthub\": {\n            \"enabled\": False,\n        },\n        \"no_data_severity\": 6,\n        \"tags\": [\n            \"wkb\",\n            \"wangren\",\n            \"sls\",\n        ],\n    },\n    alert_name=alert_name,\n    project_name=default_ins_mgl.project_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var alertName = config.Get(\"alertName\") ?? \"openapi-terraform-alert\";\n    var projectName = config.Get(\"projectName\") ?? \"terraform-alert-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultINsMgl = new AliCloud.Log.Project(\"defaultINsMgl\", new()\n    {\n        Description = $\"{projectName}-{@default.Result}\",\n        ProjectName = $\"{projectName}-{@default.Result}\",\n    });\n\n    var defaultAlert = new AliCloud.Sls.Alert(\"default\", new()\n    {\n        Schedule = new AliCloud.Sls.Inputs.AlertScheduleArgs\n        {\n            Type = \"FixedRate\",\n            RunImmdiately = true,\n            Interval = \"1m\",\n            TimeZone = \"+0800\",\n            Delay = 10,\n        },\n        DisplayName = \"openapi-terraform\",\n        Description = \"create alert\",\n        Status = \"ENABLED\",\n        Configuration = new AliCloud.Sls.Inputs.AlertConfigurationArgs\n        {\n            GroupConfiguration = new AliCloud.Sls.Inputs.AlertConfigurationGroupConfigurationArgs\n            {\n                Fields = new[]\n                {\n                    \"a\",\n                    \"b\",\n                },\n                Type = \"no_group\",\n            },\n            NoDataFire = false,\n            Version = \"2\",\n            SeverityConfigurations = new[]\n            {\n                new AliCloud.Sls.Inputs.AlertConfigurationSeverityConfigurationArgs\n                {\n                    Severity = 6,\n                    EvalCondition = new AliCloud.Sls.Inputs.AlertConfigurationSeverityConfigurationEvalConditionArgs\n                    {\n                        CountCondition = \"cnt \u003e 0\",\n                        Condition = \"__count__ \u003e 1\",\n                    },\n                },\n            },\n            Labels = new[]\n            {\n                new AliCloud.Sls.Inputs.AlertConfigurationLabelArgs\n                {\n                    Key = \"a\",\n                    Value = \"b\",\n                },\n            },\n            AutoAnnotation = true,\n            TemplateConfiguration = new AliCloud.Sls.Inputs.AlertConfigurationTemplateConfigurationArgs\n            {\n                Lang = \"cn\",\n                Tokens = \n                {\n                    { \"a\", \"b\" },\n                },\n                Annotations = \n                {\n                    { \"x\", \"y\" },\n                },\n                TemplateId = \"sls.app.ack.autoscaler.cluster_unhealthy\",\n                Type = \"sys\",\n                Version = \"1.0\",\n            },\n            MuteUntil = 0,\n            Annotations = new[]\n            {\n                new AliCloud.Sls.Inputs.AlertConfigurationAnnotationArgs\n                {\n                    Key = \"x\",\n                    Value = \"y\",\n                },\n            },\n            SendResolved = false,\n            Threshold = 1,\n            SinkCms = new AliCloud.Sls.Inputs.AlertConfigurationSinkCmsArgs\n            {\n                Enabled = false,\n            },\n            ConditionConfiguration = new AliCloud.Sls.Inputs.AlertConfigurationConditionConfigurationArgs\n            {\n                Condition = \"cnt \u003e 3\",\n                CountCondition = \"__count__ \u003c 3\",\n            },\n            PolicyConfiguration = new AliCloud.Sls.Inputs.AlertConfigurationPolicyConfigurationArgs\n            {\n                AlertPolicyId = \"sls.builtin.dynamic\",\n                ActionPolicyId = \"wkb-action\",\n                RepeatInterval = \"1m\",\n            },\n            Dashboard = \"internal-alert\",\n            Type = \"tpl\",\n            QueryLists = new[]\n            {\n                new AliCloud.Sls.Inputs.AlertConfigurationQueryListArgs\n                {\n                    Ui = \"{}\",\n                    RoleArn = \"acs:ram::1654218965343050:role/aliyunslsalertmonitorrole\",\n                    Query = \"* | select *\",\n                    TimeSpanType = \"Relative\",\n                    Project = defaultINsMgl.ProjectName,\n                    PowerSqlMode = \"disable\",\n                    DashboardId = \"wkb-dashboard\",\n                    ChartTitle = \"wkb-chart\",\n                    Start = \"-15m\",\n                    End = \"now\",\n                    StoreType = \"log\",\n                    Store = \"alert\",\n                    Region = \"cn-shanghai\",\n                },\n                new AliCloud.Sls.Inputs.AlertConfigurationQueryListArgs\n                {\n                    StoreType = \"meta\",\n                    Store = \"user.rds_ip_whitelist\",\n                },\n                new AliCloud.Sls.Inputs.AlertConfigurationQueryListArgs\n                {\n                    StoreType = \"meta\",\n                    Store = \"myexample1\",\n                },\n            },\n            JoinConfigurations = new[]\n            {\n                new AliCloud.Sls.Inputs.AlertConfigurationJoinConfigurationArgs\n                {\n                    Type = \"no_join\",\n                    Condition = \"aa\",\n                },\n                new AliCloud.Sls.Inputs.AlertConfigurationJoinConfigurationArgs\n                {\n                    Type = \"cross_join\",\n                    Condition = \"qqq\",\n                },\n                new AliCloud.Sls.Inputs.AlertConfigurationJoinConfigurationArgs\n                {\n                    Type = \"inner_join\",\n                    Condition = \"fefefe\",\n                },\n            },\n            SinkEventStore = new AliCloud.Sls.Inputs.AlertConfigurationSinkEventStoreArgs\n            {\n                Enabled = true,\n                Endpoint = \"cn-shanghai-intranet.log.aliyuncs.com\",\n                Project = \"wkb-wangren\",\n                EventStore = \"alert\",\n                RoleArn = \"acs:ram::1654218965343050:role/aliyunlogetlrole\",\n            },\n            SinkAlerthub = new AliCloud.Sls.Inputs.AlertConfigurationSinkAlerthubArgs\n            {\n                Enabled = false,\n            },\n            NoDataSeverity = 6,\n            Tags = new[]\n            {\n                \"wkb\",\n                \"wangren\",\n                \"sls\",\n            },\n        },\n        AlertName = alertName,\n        ProjectName = defaultINsMgl.ProjectName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sls\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\talertName := \"openapi-terraform-alert\"\n\t\tif param := cfg.Get(\"alertName\"); param != \"\" {\n\t\t\talertName = param\n\t\t}\n\t\tprojectName := \"terraform-alert-example\"\n\t\tif param := cfg.Get(\"projectName\"); param != \"\" {\n\t\t\tprojectName = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultINsMgl, err := log.NewProject(ctx, \"defaultINsMgl\", \u0026log.ProjectArgs{\n\t\t\tDescription: pulumi.Sprintf(\"%v-%v\", projectName, _default.Result),\n\t\t\tProjectName: pulumi.Sprintf(\"%v-%v\", projectName, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sls.NewAlert(ctx, \"default\", \u0026sls.AlertArgs{\n\t\t\tSchedule: \u0026sls.AlertScheduleArgs{\n\t\t\t\tType:          pulumi.String(\"FixedRate\"),\n\t\t\t\tRunImmdiately: pulumi.Bool(true),\n\t\t\t\tInterval:      pulumi.String(\"1m\"),\n\t\t\t\tTimeZone:      pulumi.String(\"+0800\"),\n\t\t\t\tDelay:         pulumi.Int(10),\n\t\t\t},\n\t\t\tDisplayName: pulumi.String(\"openapi-terraform\"),\n\t\t\tDescription: pulumi.String(\"create alert\"),\n\t\t\tStatus:      pulumi.String(\"ENABLED\"),\n\t\t\tConfiguration: \u0026sls.AlertConfigurationArgs{\n\t\t\t\tGroupConfiguration: \u0026sls.AlertConfigurationGroupConfigurationArgs{\n\t\t\t\t\tFields: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"a\"),\n\t\t\t\t\t\tpulumi.String(\"b\"),\n\t\t\t\t\t},\n\t\t\t\t\tType: pulumi.String(\"no_group\"),\n\t\t\t\t},\n\t\t\t\tNoDataFire: pulumi.Bool(false),\n\t\t\t\tVersion:    pulumi.String(\"2\"),\n\t\t\t\tSeverityConfigurations: sls.AlertConfigurationSeverityConfigurationArray{\n\t\t\t\t\t\u0026sls.AlertConfigurationSeverityConfigurationArgs{\n\t\t\t\t\t\tSeverity: pulumi.Int(6),\n\t\t\t\t\t\tEvalCondition: \u0026sls.AlertConfigurationSeverityConfigurationEvalConditionArgs{\n\t\t\t\t\t\t\tCountCondition: pulumi.String(\"cnt \u003e 0\"),\n\t\t\t\t\t\t\tCondition:      pulumi.String(\"__count__ \u003e 1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tLabels: sls.AlertConfigurationLabelArray{\n\t\t\t\t\t\u0026sls.AlertConfigurationLabelArgs{\n\t\t\t\t\t\tKey:   pulumi.String(\"a\"),\n\t\t\t\t\t\tValue: pulumi.String(\"b\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tAutoAnnotation: pulumi.Bool(true),\n\t\t\t\tTemplateConfiguration: \u0026sls.AlertConfigurationTemplateConfigurationArgs{\n\t\t\t\t\tLang: pulumi.String(\"cn\"),\n\t\t\t\t\tTokens: pulumi.StringMap{\n\t\t\t\t\t\t\"a\": pulumi.String(\"b\"),\n\t\t\t\t\t},\n\t\t\t\t\tAnnotations: pulumi.StringMap{\n\t\t\t\t\t\t\"x\": pulumi.String(\"y\"),\n\t\t\t\t\t},\n\t\t\t\t\tTemplateId: pulumi.String(\"sls.app.ack.autoscaler.cluster_unhealthy\"),\n\t\t\t\t\tType:       pulumi.String(\"sys\"),\n\t\t\t\t\tVersion:    pulumi.String(\"1.0\"),\n\t\t\t\t},\n\t\t\t\tMuteUntil: pulumi.Int(0),\n\t\t\t\tAnnotations: sls.AlertConfigurationAnnotationArray{\n\t\t\t\t\t\u0026sls.AlertConfigurationAnnotationArgs{\n\t\t\t\t\t\tKey:   pulumi.String(\"x\"),\n\t\t\t\t\t\tValue: pulumi.String(\"y\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSendResolved: pulumi.Bool(false),\n\t\t\t\tThreshold:    pulumi.Int(1),\n\t\t\t\tSinkCms: \u0026sls.AlertConfigurationSinkCmsArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tConditionConfiguration: \u0026sls.AlertConfigurationConditionConfigurationArgs{\n\t\t\t\t\tCondition:      pulumi.String(\"cnt \u003e 3\"),\n\t\t\t\t\tCountCondition: pulumi.String(\"__count__ \u003c 3\"),\n\t\t\t\t},\n\t\t\t\tPolicyConfiguration: \u0026sls.AlertConfigurationPolicyConfigurationArgs{\n\t\t\t\t\tAlertPolicyId:  pulumi.String(\"sls.builtin.dynamic\"),\n\t\t\t\t\tActionPolicyId: pulumi.String(\"wkb-action\"),\n\t\t\t\t\tRepeatInterval: pulumi.String(\"1m\"),\n\t\t\t\t},\n\t\t\t\tDashboard: pulumi.String(\"internal-alert\"),\n\t\t\t\tType:      pulumi.String(\"tpl\"),\n\t\t\t\tQueryLists: sls.AlertConfigurationQueryListArray{\n\t\t\t\t\t\u0026sls.AlertConfigurationQueryListArgs{\n\t\t\t\t\t\tUi:           pulumi.String(\"{}\"),\n\t\t\t\t\t\tRoleArn:      pulumi.String(\"acs:ram::1654218965343050:role/aliyunslsalertmonitorrole\"),\n\t\t\t\t\t\tQuery:        pulumi.String(\"* | select *\"),\n\t\t\t\t\t\tTimeSpanType: pulumi.String(\"Relative\"),\n\t\t\t\t\t\tProject:      defaultINsMgl.ProjectName,\n\t\t\t\t\t\tPowerSqlMode: pulumi.String(\"disable\"),\n\t\t\t\t\t\tDashboardId:  pulumi.String(\"wkb-dashboard\"),\n\t\t\t\t\t\tChartTitle:   pulumi.String(\"wkb-chart\"),\n\t\t\t\t\t\tStart:        pulumi.String(\"-15m\"),\n\t\t\t\t\t\tEnd:          pulumi.String(\"now\"),\n\t\t\t\t\t\tStoreType:    pulumi.String(\"log\"),\n\t\t\t\t\t\tStore:        pulumi.String(\"alert\"),\n\t\t\t\t\t\tRegion:       pulumi.String(\"cn-shanghai\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026sls.AlertConfigurationQueryListArgs{\n\t\t\t\t\t\tStoreType: pulumi.String(\"meta\"),\n\t\t\t\t\t\tStore:     pulumi.String(\"user.rds_ip_whitelist\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026sls.AlertConfigurationQueryListArgs{\n\t\t\t\t\t\tStoreType: pulumi.String(\"meta\"),\n\t\t\t\t\t\tStore:     pulumi.String(\"myexample1\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tJoinConfigurations: sls.AlertConfigurationJoinConfigurationArray{\n\t\t\t\t\t\u0026sls.AlertConfigurationJoinConfigurationArgs{\n\t\t\t\t\t\tType:      pulumi.String(\"no_join\"),\n\t\t\t\t\t\tCondition: pulumi.String(\"aa\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026sls.AlertConfigurationJoinConfigurationArgs{\n\t\t\t\t\t\tType:      pulumi.String(\"cross_join\"),\n\t\t\t\t\t\tCondition: pulumi.String(\"qqq\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026sls.AlertConfigurationJoinConfigurationArgs{\n\t\t\t\t\t\tType:      pulumi.String(\"inner_join\"),\n\t\t\t\t\t\tCondition: pulumi.String(\"fefefe\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSinkEventStore: \u0026sls.AlertConfigurationSinkEventStoreArgs{\n\t\t\t\t\tEnabled:    pulumi.Bool(true),\n\t\t\t\t\tEndpoint:   pulumi.String(\"cn-shanghai-intranet.log.aliyuncs.com\"),\n\t\t\t\t\tProject:    pulumi.String(\"wkb-wangren\"),\n\t\t\t\t\tEventStore: pulumi.String(\"alert\"),\n\t\t\t\t\tRoleArn:    pulumi.String(\"acs:ram::1654218965343050:role/aliyunlogetlrole\"),\n\t\t\t\t},\n\t\t\t\tSinkAlerthub: \u0026sls.AlertConfigurationSinkAlerthubArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tNoDataSeverity: pulumi.Int(6),\n\t\t\t\tTags: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"wkb\"),\n\t\t\t\t\tpulumi.String(\"wangren\"),\n\t\t\t\t\tpulumi.String(\"sls\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAlertName:   pulumi.String(alertName),\n\t\t\tProjectName: defaultINsMgl.ProjectName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.sls.Alert;\nimport com.pulumi.alicloud.sls.AlertArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertScheduleArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertConfigurationArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertConfigurationGroupConfigurationArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertConfigurationTemplateConfigurationArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertConfigurationSinkCmsArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertConfigurationConditionConfigurationArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertConfigurationPolicyConfigurationArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertConfigurationSinkEventStoreArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertConfigurationSinkAlerthubArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var alertName = config.get(\"alertName\").orElse(\"openapi-terraform-alert\");\n        final var projectName = config.get(\"projectName\").orElse(\"terraform-alert-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultINsMgl = new Project(\"defaultINsMgl\", ProjectArgs.builder()\n            .description(String.format(\"%s-%s\", projectName,default_.result()))\n            .projectName(String.format(\"%s-%s\", projectName,default_.result()))\n            .build());\n\n        var defaultAlert = new Alert(\"defaultAlert\", AlertArgs.builder()\n            .schedule(AlertScheduleArgs.builder()\n                .type(\"FixedRate\")\n                .runImmdiately(true)\n                .interval(\"1m\")\n                .timeZone(\"+0800\")\n                .delay(10)\n                .build())\n            .displayName(\"openapi-terraform\")\n            .description(\"create alert\")\n            .status(\"ENABLED\")\n            .configuration(AlertConfigurationArgs.builder()\n                .groupConfiguration(AlertConfigurationGroupConfigurationArgs.builder()\n                    .fields(                    \n                        \"a\",\n                        \"b\")\n                    .type(\"no_group\")\n                    .build())\n                .noDataFire(false)\n                .version(\"2\")\n                .severityConfigurations(AlertConfigurationSeverityConfigurationArgs.builder()\n                    .severity(6)\n                    .evalCondition(AlertConfigurationSeverityConfigurationEvalConditionArgs.builder()\n                        .countCondition(\"cnt \u003e 0\")\n                        .condition(\"__count__ \u003e 1\")\n                        .build())\n                    .build())\n                .labels(AlertConfigurationLabelArgs.builder()\n                    .key(\"a\")\n                    .value(\"b\")\n                    .build())\n                .autoAnnotation(true)\n                .templateConfiguration(AlertConfigurationTemplateConfigurationArgs.builder()\n                    .lang(\"cn\")\n                    .tokens(Map.of(\"a\", \"b\"))\n                    .annotations(Map.of(\"x\", \"y\"))\n                    .templateId(\"sls.app.ack.autoscaler.cluster_unhealthy\")\n                    .type(\"sys\")\n                    .version(\"1.0\")\n                    .build())\n                .muteUntil(0)\n                .annotations(AlertConfigurationAnnotationArgs.builder()\n                    .key(\"x\")\n                    .value(\"y\")\n                    .build())\n                .sendResolved(false)\n                .threshold(1)\n                .sinkCms(AlertConfigurationSinkCmsArgs.builder()\n                    .enabled(false)\n                    .build())\n                .conditionConfiguration(AlertConfigurationConditionConfigurationArgs.builder()\n                    .condition(\"cnt \u003e 3\")\n                    .countCondition(\"__count__ \u003c 3\")\n                    .build())\n                .policyConfiguration(AlertConfigurationPolicyConfigurationArgs.builder()\n                    .alertPolicyId(\"sls.builtin.dynamic\")\n                    .actionPolicyId(\"wkb-action\")\n                    .repeatInterval(\"1m\")\n                    .build())\n                .dashboard(\"internal-alert\")\n                .type(\"tpl\")\n                .queryLists(                \n                    AlertConfigurationQueryListArgs.builder()\n                        .ui(\"{}\")\n                        .roleArn(\"acs:ram::1654218965343050:role/aliyunslsalertmonitorrole\")\n                        .query(\"* | select *\")\n                        .timeSpanType(\"Relative\")\n                        .project(defaultINsMgl.projectName())\n                        .powerSqlMode(\"disable\")\n                        .dashboardId(\"wkb-dashboard\")\n                        .chartTitle(\"wkb-chart\")\n                        .start(\"-15m\")\n                        .end(\"now\")\n                        .storeType(\"log\")\n                        .store(\"alert\")\n                        .region(\"cn-shanghai\")\n                        .build(),\n                    AlertConfigurationQueryListArgs.builder()\n                        .storeType(\"meta\")\n                        .store(\"user.rds_ip_whitelist\")\n                        .build(),\n                    AlertConfigurationQueryListArgs.builder()\n                        .storeType(\"meta\")\n                        .store(\"myexample1\")\n                        .build())\n                .joinConfigurations(                \n                    AlertConfigurationJoinConfigurationArgs.builder()\n                        .type(\"no_join\")\n                        .condition(\"aa\")\n                        .build(),\n                    AlertConfigurationJoinConfigurationArgs.builder()\n                        .type(\"cross_join\")\n                        .condition(\"qqq\")\n                        .build(),\n                    AlertConfigurationJoinConfigurationArgs.builder()\n                        .type(\"inner_join\")\n                        .condition(\"fefefe\")\n                        .build())\n                .sinkEventStore(AlertConfigurationSinkEventStoreArgs.builder()\n                    .enabled(true)\n                    .endpoint(\"cn-shanghai-intranet.log.aliyuncs.com\")\n                    .project(\"wkb-wangren\")\n                    .eventStore(\"alert\")\n                    .roleArn(\"acs:ram::1654218965343050:role/aliyunlogetlrole\")\n                    .build())\n                .sinkAlerthub(AlertConfigurationSinkAlerthubArgs.builder()\n                    .enabled(false)\n                    .build())\n                .noDataSeverity(6)\n                .tags(                \n                    \"wkb\",\n                    \"wangren\",\n                    \"sls\")\n                .build())\n            .alertName(alertName)\n            .projectName(defaultINsMgl.projectName())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  alertName:\n    type: string\n    default: openapi-terraform-alert\n  projectName:\n    type: string\n    default: terraform-alert-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultINsMgl:\n    type: alicloud:log:Project\n    properties:\n      description: ${projectName}-${default.result}\n      projectName: ${projectName}-${default.result}\n  defaultAlert:\n    type: alicloud:sls:Alert\n    name: default\n    properties:\n      schedule:\n        type: FixedRate\n        runImmdiately: 'true'\n        interval: 1m\n        timeZone: '+0800'\n        delay: '10'\n      displayName: openapi-terraform\n      description: create alert\n      status: ENABLED\n      configuration:\n        groupConfiguration:\n          fields:\n            - a\n            - b\n          type: no_group\n        noDataFire: 'false'\n        version: '2'\n        severityConfigurations:\n          - severity: '6'\n            evalCondition:\n              countCondition: cnt \u003e 0\n              condition: __count__ \u003e 1\n        labels:\n          - key: a\n            value: b\n        autoAnnotation: 'true'\n        templateConfiguration:\n          lang: cn\n          tokens:\n            a: b\n          annotations:\n            x: y\n          templateId: sls.app.ack.autoscaler.cluster_unhealthy\n          type: sys\n          version: '1.0'\n        muteUntil: '0'\n        annotations:\n          - key: x\n            value: y\n        sendResolved: 'false'\n        threshold: '1'\n        sinkCms:\n          enabled: 'false'\n        conditionConfiguration:\n          condition: cnt \u003e 3\n          countCondition: __count__ \u003c 3\n        policyConfiguration:\n          alertPolicyId: sls.builtin.dynamic\n          actionPolicyId: wkb-action\n          repeatInterval: 1m\n        dashboard: internal-alert\n        type: tpl\n        queryLists:\n          - ui: '{}'\n            roleArn: acs:ram::1654218965343050:role/aliyunslsalertmonitorrole\n            query: '* | select *'\n            timeSpanType: Relative\n            project: ${defaultINsMgl.projectName}\n            powerSqlMode: disable\n            dashboardId: wkb-dashboard\n            chartTitle: wkb-chart\n            start: -15m\n            end: now\n            storeType: log\n            store: alert\n            region: cn-shanghai\n          - storeType: meta\n            store: user.rds_ip_whitelist\n          - storeType: meta\n            store: myexample1\n        joinConfigurations:\n          - type: no_join\n            condition: aa\n          - type: cross_join\n            condition: qqq\n          - type: inner_join\n            condition: fefefe\n        sinkEventStore:\n          enabled: 'true'\n          endpoint: cn-shanghai-intranet.log.aliyuncs.com\n          project: wkb-wangren\n          eventStore: alert\n          roleArn: acs:ram::1654218965343050:role/aliyunlogetlrole\n        sinkAlerthub:\n          enabled: 'false'\n        noDataSeverity: '6'\n        tags:\n          - wkb\n          - wangren\n          - sls\n      alertName: ${alertName}\n      projectName: ${defaultINsMgl.projectName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSLS Alert can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sls/alert:Alert example \u003cproject_name\u003e:\u003calert_name\u003e\n```\n\n","properties":{"alertName":{"type":"string","description":"Alert rule ID, unique under Project.\n"},"configuration":{"$ref":"#/types/alicloud:sls/AlertConfiguration:AlertConfiguration","description":"Detailed configuration of alarm monitoring rules. See \u003cspan pulumi-lang-nodejs=\"`configuration`\" pulumi-lang-dotnet=\"`Configuration`\" pulumi-lang-go=\"`configuration`\" pulumi-lang-python=\"`configuration`\" pulumi-lang-yaml=\"`configuration`\" pulumi-lang-java=\"`configuration`\"\u003e`configuration`\u003c/span\u003e below.\n"},"createTime":{"type":"integer","description":"Alarm rule creation time.\n"},"description":{"type":"string","description":"Compatible fields, set to empty strings.\n"},"displayName":{"type":"string","description":"Display name of the alarm rule.\n"},"projectName":{"type":"string","description":"Project Name.\n"},"schedule":{"$ref":"#/types/alicloud:sls/AlertSchedule:AlertSchedule","description":"Check the frequency-dependent configuration. See \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"Resource attribute field representing alarm status.\n"}},"required":["alertName","configuration","createTime","displayName","projectName","schedule","status"],"inputProperties":{"alertName":{"type":"string","description":"Alert rule ID, unique under Project.\n","willReplaceOnChanges":true},"configuration":{"$ref":"#/types/alicloud:sls/AlertConfiguration:AlertConfiguration","description":"Detailed configuration of alarm monitoring rules. See \u003cspan pulumi-lang-nodejs=\"`configuration`\" pulumi-lang-dotnet=\"`Configuration`\" pulumi-lang-go=\"`configuration`\" pulumi-lang-python=\"`configuration`\" pulumi-lang-yaml=\"`configuration`\" pulumi-lang-java=\"`configuration`\"\u003e`configuration`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"Compatible fields, set to empty strings.\n"},"displayName":{"type":"string","description":"Display name of the alarm rule.\n"},"projectName":{"type":"string","description":"Project Name.\n","willReplaceOnChanges":true},"schedule":{"$ref":"#/types/alicloud:sls/AlertSchedule:AlertSchedule","description":"Check the frequency-dependent configuration. See \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"Resource attribute field representing alarm status.\n"}},"requiredInputs":["alertName","configuration","displayName","projectName","schedule"],"stateInputs":{"description":"Input properties used for looking up and filtering Alert resources.\n","properties":{"alertName":{"type":"string","description":"Alert rule ID, unique under Project.\n","willReplaceOnChanges":true},"configuration":{"$ref":"#/types/alicloud:sls/AlertConfiguration:AlertConfiguration","description":"Detailed configuration of alarm monitoring rules. See \u003cspan pulumi-lang-nodejs=\"`configuration`\" pulumi-lang-dotnet=\"`Configuration`\" pulumi-lang-go=\"`configuration`\" pulumi-lang-python=\"`configuration`\" pulumi-lang-yaml=\"`configuration`\" pulumi-lang-java=\"`configuration`\"\u003e`configuration`\u003c/span\u003e below.\n"},"createTime":{"type":"integer","description":"Alarm rule creation time.\n"},"description":{"type":"string","description":"Compatible fields, set to empty strings.\n"},"displayName":{"type":"string","description":"Display name of the alarm rule.\n"},"projectName":{"type":"string","description":"Project Name.\n","willReplaceOnChanges":true},"schedule":{"$ref":"#/types/alicloud:sls/AlertSchedule:AlertSchedule","description":"Check the frequency-dependent configuration. See \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e below.\n"},"status":{"type":"string","description":"Resource attribute field representing alarm status.\n"}},"type":"object"}},"alicloud:sls/collectionPolicy:CollectionPolicy":{"description":"Provides a Log Service (SLS) Collection Policy resource.\n\nOrchestration policies for cloud product log collection.\n\nFor information about Log Service (SLS) Collection Policy and how to use it, see [What is Collection Policy](https://www.alibabacloud.com/help/zh/sls/developer-reference/api-sls-2020-12-30-upsertcollectionpolicy).\n\n\u003e **NOTE:** Available since v1.232.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst projectCreate01 = new alicloud.log.Project(\"project_create_01\", {\n    description: name,\n    projectName: std.format({\n        input: \"%s1%s\",\n        args: [\n            name,\n            _default.result,\n        ],\n    }).then(invoke =\u003e invoke.result),\n});\nconst logstoreCreate01 = new alicloud.log.Store(\"logstore_create_01\", {\n    retentionPeriod: 30,\n    shardCount: 2,\n    projectName: projectCreate01.projectName,\n    logstoreName: std.format({\n        input: \"%s1%s\",\n        args: [\n            name,\n            _default.result,\n        ],\n    }).then(invoke =\u003e invoke.result),\n});\nconst update01 = new alicloud.log.Project(\"update_01\", {\n    description: name,\n    projectName: std.format({\n        input: \"%s2%s\",\n        args: [\n            name,\n            _default.result,\n        ],\n    }).then(invoke =\u003e invoke.result),\n});\nconst logstore002 = new alicloud.log.Store(\"logstore002\", {\n    retentionPeriod: 30,\n    shardCount: 2,\n    projectName: update01.projectName,\n    logstoreName: std.format({\n        input: \"%s2%s\",\n        args: [\n            name,\n            _default.result,\n        ],\n    }).then(invoke =\u003e invoke.result),\n});\nconst defaultCollectionPolicy = new alicloud.sls.CollectionPolicy(\"default\", {\n    policyConfig: {\n        resourceMode: \"all\",\n        regions: [\"cn-hangzhou\"],\n    },\n    dataCode: \"metering_log\",\n    centralizeEnabled: true,\n    productCode: \"oss\",\n    policyName: \"xc-example-oss-01\",\n    enabled: true,\n    dataConfig: {\n        dataRegion: \"cn-hangzhou\",\n    },\n    centralizeConfig: {\n        destTtl: 3,\n        destRegion: \"cn-shanghai\",\n        destProject: projectCreate01.projectName,\n        destLogstore: logstoreCreate01.logstoreName,\n    },\n    resourceDirectory: {\n        accountGroupType: \"custom\",\n        members: [\"1936728897040477\"],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nproject_create01 = alicloud.log.Project(\"project_create_01\",\n    description=name,\n    project_name=std.format(input=\"%s1%s\",\n        args=[\n            name,\n            default[\"result\"],\n        ]).result)\nlogstore_create01 = alicloud.log.Store(\"logstore_create_01\",\n    retention_period=30,\n    shard_count=2,\n    project_name=project_create01.project_name,\n    logstore_name=std.format(input=\"%s1%s\",\n        args=[\n            name,\n            default[\"result\"],\n        ]).result)\nupdate01 = alicloud.log.Project(\"update_01\",\n    description=name,\n    project_name=std.format(input=\"%s2%s\",\n        args=[\n            name,\n            default[\"result\"],\n        ]).result)\nlogstore002 = alicloud.log.Store(\"logstore002\",\n    retention_period=30,\n    shard_count=2,\n    project_name=update01.project_name,\n    logstore_name=std.format(input=\"%s2%s\",\n        args=[\n            name,\n            default[\"result\"],\n        ]).result)\ndefault_collection_policy = alicloud.sls.CollectionPolicy(\"default\",\n    policy_config={\n        \"resource_mode\": \"all\",\n        \"regions\": [\"cn-hangzhou\"],\n    },\n    data_code=\"metering_log\",\n    centralize_enabled=True,\n    product_code=\"oss\",\n    policy_name=\"xc-example-oss-01\",\n    enabled=True,\n    data_config={\n        \"data_region\": \"cn-hangzhou\",\n    },\n    centralize_config={\n        \"dest_ttl\": 3,\n        \"dest_region\": \"cn-shanghai\",\n        \"dest_project\": project_create01.project_name,\n        \"dest_logstore\": logstore_create01.logstore_name,\n    },\n    resource_directory={\n        \"account_group_type\": \"custom\",\n        \"members\": [\"1936728897040477\"],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var projectCreate01 = new AliCloud.Log.Project(\"project_create_01\", new()\n    {\n        Description = name,\n        ProjectName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1%s\",\n            Args = new[]\n            {\n                name,\n                @default.Result,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var logstoreCreate01 = new AliCloud.Log.Store(\"logstore_create_01\", new()\n    {\n        RetentionPeriod = 30,\n        ShardCount = 2,\n        ProjectName = projectCreate01.ProjectName,\n        LogstoreName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1%s\",\n            Args = new[]\n            {\n                name,\n                @default.Result,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var update01 = new AliCloud.Log.Project(\"update_01\", new()\n    {\n        Description = name,\n        ProjectName = Std.Format.Invoke(new()\n        {\n            Input = \"%s2%s\",\n            Args = new[]\n            {\n                name,\n                @default.Result,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var logstore002 = new AliCloud.Log.Store(\"logstore002\", new()\n    {\n        RetentionPeriod = 30,\n        ShardCount = 2,\n        ProjectName = update01.ProjectName,\n        LogstoreName = Std.Format.Invoke(new()\n        {\n            Input = \"%s2%s\",\n            Args = new[]\n            {\n                name,\n                @default.Result,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultCollectionPolicy = new AliCloud.Sls.CollectionPolicy(\"default\", new()\n    {\n        PolicyConfig = new AliCloud.Sls.Inputs.CollectionPolicyPolicyConfigArgs\n        {\n            ResourceMode = \"all\",\n            Regions = new[]\n            {\n                \"cn-hangzhou\",\n            },\n        },\n        DataCode = \"metering_log\",\n        CentralizeEnabled = true,\n        ProductCode = \"oss\",\n        PolicyName = \"xc-example-oss-01\",\n        Enabled = true,\n        DataConfig = new AliCloud.Sls.Inputs.CollectionPolicyDataConfigArgs\n        {\n            DataRegion = \"cn-hangzhou\",\n        },\n        CentralizeConfig = new AliCloud.Sls.Inputs.CollectionPolicyCentralizeConfigArgs\n        {\n            DestTtl = 3,\n            DestRegion = \"cn-shanghai\",\n            DestProject = projectCreate01.ProjectName,\n            DestLogstore = logstoreCreate01.LogstoreName,\n        },\n        ResourceDirectory = new AliCloud.Sls.Inputs.CollectionPolicyResourceDirectoryArgs\n        {\n            AccountGroupType = \"custom\",\n            Members = new[]\n            {\n                \"1936728897040477\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sls\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\tname,\n\t\t\t\t_default.Result,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprojectCreate01, err := log.NewProject(ctx, \"project_create_01\", \u0026log.ProjectArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tProjectName: pulumi.String(invokeFormat.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\tname,\n\t\t\t\t_default.Result,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlogstoreCreate01, err := log.NewStore(ctx, \"logstore_create_01\", \u0026log.StoreArgs{\n\t\t\tRetentionPeriod: pulumi.Int(30),\n\t\t\tShardCount:      pulumi.Int(2),\n\t\t\tProjectName:     projectCreate01.ProjectName,\n\t\t\tLogstoreName:    pulumi.String(invokeFormat1.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat2, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s2%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\tname,\n\t\t\t\t_default.Result,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tupdate01, err := log.NewProject(ctx, \"update_01\", \u0026log.ProjectArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tProjectName: pulumi.String(invokeFormat2.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat3, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s2%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\tname,\n\t\t\t\t_default.Result,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewStore(ctx, \"logstore002\", \u0026log.StoreArgs{\n\t\t\tRetentionPeriod: pulumi.Int(30),\n\t\t\tShardCount:      pulumi.Int(2),\n\t\t\tProjectName:     update01.ProjectName,\n\t\t\tLogstoreName:    pulumi.String(invokeFormat3.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sls.NewCollectionPolicy(ctx, \"default\", \u0026sls.CollectionPolicyArgs{\n\t\t\tPolicyConfig: \u0026sls.CollectionPolicyPolicyConfigArgs{\n\t\t\t\tResourceMode: pulumi.String(\"all\"),\n\t\t\t\tRegions: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"cn-hangzhou\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDataCode:          pulumi.String(\"metering_log\"),\n\t\t\tCentralizeEnabled: pulumi.Bool(true),\n\t\t\tProductCode:       pulumi.String(\"oss\"),\n\t\t\tPolicyName:        pulumi.String(\"xc-example-oss-01\"),\n\t\t\tEnabled:           pulumi.Bool(true),\n\t\t\tDataConfig: \u0026sls.CollectionPolicyDataConfigArgs{\n\t\t\t\tDataRegion: pulumi.String(\"cn-hangzhou\"),\n\t\t\t},\n\t\t\tCentralizeConfig: \u0026sls.CollectionPolicyCentralizeConfigArgs{\n\t\t\t\tDestTtl:      pulumi.Int(3),\n\t\t\t\tDestRegion:   pulumi.String(\"cn-shanghai\"),\n\t\t\t\tDestProject:  projectCreate01.ProjectName,\n\t\t\t\tDestLogstore: logstoreCreate01.LogstoreName,\n\t\t\t},\n\t\t\tResourceDirectory: \u0026sls.CollectionPolicyResourceDirectoryArgs{\n\t\t\t\tAccountGroupType: pulumi.String(\"custom\"),\n\t\t\t\tMembers: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"1936728897040477\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.sls.CollectionPolicy;\nimport com.pulumi.alicloud.sls.CollectionPolicyArgs;\nimport com.pulumi.alicloud.sls.inputs.CollectionPolicyPolicyConfigArgs;\nimport com.pulumi.alicloud.sls.inputs.CollectionPolicyDataConfigArgs;\nimport com.pulumi.alicloud.sls.inputs.CollectionPolicyCentralizeConfigArgs;\nimport com.pulumi.alicloud.sls.inputs.CollectionPolicyResourceDirectoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var projectCreate01 = new Project(\"projectCreate01\", ProjectArgs.builder()\n            .description(name)\n            .projectName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1%s\")\n                .args(                \n                    name,\n                    default_.result())\n                .build()).result())\n            .build());\n\n        var logstoreCreate01 = new Store(\"logstoreCreate01\", StoreArgs.builder()\n            .retentionPeriod(30)\n            .shardCount(2)\n            .projectName(projectCreate01.projectName())\n            .logstoreName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1%s\")\n                .args(                \n                    name,\n                    default_.result())\n                .build()).result())\n            .build());\n\n        var update01 = new Project(\"update01\", ProjectArgs.builder()\n            .description(name)\n            .projectName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s2%s\")\n                .args(                \n                    name,\n                    default_.result())\n                .build()).result())\n            .build());\n\n        var logstore002 = new Store(\"logstore002\", StoreArgs.builder()\n            .retentionPeriod(30)\n            .shardCount(2)\n            .projectName(update01.projectName())\n            .logstoreName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s2%s\")\n                .args(                \n                    name,\n                    default_.result())\n                .build()).result())\n            .build());\n\n        var defaultCollectionPolicy = new CollectionPolicy(\"defaultCollectionPolicy\", CollectionPolicyArgs.builder()\n            .policyConfig(CollectionPolicyPolicyConfigArgs.builder()\n                .resourceMode(\"all\")\n                .regions(\"cn-hangzhou\")\n                .build())\n            .dataCode(\"metering_log\")\n            .centralizeEnabled(true)\n            .productCode(\"oss\")\n            .policyName(\"xc-example-oss-01\")\n            .enabled(true)\n            .dataConfig(CollectionPolicyDataConfigArgs.builder()\n                .dataRegion(\"cn-hangzhou\")\n                .build())\n            .centralizeConfig(CollectionPolicyCentralizeConfigArgs.builder()\n                .destTtl(3)\n                .destRegion(\"cn-shanghai\")\n                .destProject(projectCreate01.projectName())\n                .destLogstore(logstoreCreate01.logstoreName())\n                .build())\n            .resourceDirectory(CollectionPolicyResourceDirectoryArgs.builder()\n                .accountGroupType(\"custom\")\n                .members(\"1936728897040477\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  projectCreate01:\n    type: alicloud:log:Project\n    name: project_create_01\n    properties:\n      description: ${name}\n      projectName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1%s'\n            args:\n              - ${name}\n              - ${default.result}\n          return: result\n  logstoreCreate01:\n    type: alicloud:log:Store\n    name: logstore_create_01\n    properties:\n      retentionPeriod: '30'\n      shardCount: '2'\n      projectName: ${projectCreate01.projectName}\n      logstoreName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1%s'\n            args:\n              - ${name}\n              - ${default.result}\n          return: result\n  update01:\n    type: alicloud:log:Project\n    name: update_01\n    properties:\n      description: ${name}\n      projectName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s2%s'\n            args:\n              - ${name}\n              - ${default.result}\n          return: result\n  logstore002:\n    type: alicloud:log:Store\n    properties:\n      retentionPeriod: '30'\n      shardCount: '2'\n      projectName: ${update01.projectName}\n      logstoreName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s2%s'\n            args:\n              - ${name}\n              - ${default.result}\n          return: result\n  defaultCollectionPolicy:\n    type: alicloud:sls:CollectionPolicy\n    name: default\n    properties:\n      policyConfig:\n        resourceMode: all\n        regions:\n          - cn-hangzhou\n      dataCode: metering_log\n      centralizeEnabled: true\n      productCode: oss\n      policyName: xc-example-oss-01\n      enabled: true\n      dataConfig:\n        dataRegion: cn-hangzhou\n      centralizeConfig:\n        destTtl: '3'\n        destRegion: cn-shanghai\n        destProject: ${projectCreate01.projectName}\n        destLogstore: ${logstoreCreate01.logstoreName}\n      resourceDirectory:\n        accountGroupType: custom\n        members:\n          - '1936728897040477'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nEnable real-time log query for one or more specific OSS buckets\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example-on-single-bucket\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst projectCreate01 = new alicloud.log.Project(\"project_create_01\", {\n    description: name,\n    projectName: std.format({\n        input: \"%s1%s\",\n        args: [\n            name,\n            _default.result,\n        ],\n    }).then(invoke =\u003e invoke.result),\n});\nconst logstoreCreate01 = new alicloud.log.Store(\"logstore_create_01\", {\n    retentionPeriod: 30,\n    shardCount: 2,\n    projectName: projectCreate01.projectName,\n    logstoreName: std.format({\n        input: \"%s1%s\",\n        args: [\n            name,\n            _default.result,\n        ],\n    }).then(invoke =\u003e invoke.result),\n});\nconst update01 = new alicloud.log.Project(\"update_01\", {\n    description: name,\n    projectName: std.format({\n        input: \"%s2%s\",\n        args: [\n            name,\n            _default.result,\n        ],\n    }).then(invoke =\u003e invoke.result),\n});\nconst logstore002 = new alicloud.log.Store(\"logstore002\", {\n    retentionPeriod: 30,\n    shardCount: 2,\n    projectName: update01.projectName,\n    logstoreName: std.format({\n        input: \"%s2%s\",\n        args: [\n            name,\n            _default.result,\n        ],\n    }).then(invoke =\u003e invoke.result),\n});\nconst bucket = new alicloud.oss.Bucket(\"bucket\", {bucket: std.format({\n    input: \"%s1%s\",\n    args: [\n        name,\n        _default.result,\n    ],\n}).then(invoke =\u003e invoke.result)});\nconst defaultCollectionPolicy = new alicloud.sls.CollectionPolicy(\"default\", {\n    policyConfig: {\n        resourceMode: \"instanceMode\",\n        instanceIds: [bucket.id],\n    },\n    dataCode: \"access_log\",\n    centralizeEnabled: false,\n    productCode: \"oss\",\n    policyName: \"xc-example-oss-01\",\n    enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example-on-single-bucket\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nproject_create01 = alicloud.log.Project(\"project_create_01\",\n    description=name,\n    project_name=std.format(input=\"%s1%s\",\n        args=[\n            name,\n            default[\"result\"],\n        ]).result)\nlogstore_create01 = alicloud.log.Store(\"logstore_create_01\",\n    retention_period=30,\n    shard_count=2,\n    project_name=project_create01.project_name,\n    logstore_name=std.format(input=\"%s1%s\",\n        args=[\n            name,\n            default[\"result\"],\n        ]).result)\nupdate01 = alicloud.log.Project(\"update_01\",\n    description=name,\n    project_name=std.format(input=\"%s2%s\",\n        args=[\n            name,\n            default[\"result\"],\n        ]).result)\nlogstore002 = alicloud.log.Store(\"logstore002\",\n    retention_period=30,\n    shard_count=2,\n    project_name=update01.project_name,\n    logstore_name=std.format(input=\"%s2%s\",\n        args=[\n            name,\n            default[\"result\"],\n        ]).result)\nbucket = alicloud.oss.Bucket(\"bucket\", bucket=std.format(input=\"%s1%s\",\n    args=[\n        name,\n        default[\"result\"],\n    ]).result)\ndefault_collection_policy = alicloud.sls.CollectionPolicy(\"default\",\n    policy_config={\n        \"resource_mode\": \"instanceMode\",\n        \"instance_ids\": [bucket.id],\n    },\n    data_code=\"access_log\",\n    centralize_enabled=False,\n    product_code=\"oss\",\n    policy_name=\"xc-example-oss-01\",\n    enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example-on-single-bucket\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var projectCreate01 = new AliCloud.Log.Project(\"project_create_01\", new()\n    {\n        Description = name,\n        ProjectName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1%s\",\n            Args = new[]\n            {\n                name,\n                @default.Result,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var logstoreCreate01 = new AliCloud.Log.Store(\"logstore_create_01\", new()\n    {\n        RetentionPeriod = 30,\n        ShardCount = 2,\n        ProjectName = projectCreate01.ProjectName,\n        LogstoreName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1%s\",\n            Args = new[]\n            {\n                name,\n                @default.Result,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var update01 = new AliCloud.Log.Project(\"update_01\", new()\n    {\n        Description = name,\n        ProjectName = Std.Format.Invoke(new()\n        {\n            Input = \"%s2%s\",\n            Args = new[]\n            {\n                name,\n                @default.Result,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var logstore002 = new AliCloud.Log.Store(\"logstore002\", new()\n    {\n        RetentionPeriod = 30,\n        ShardCount = 2,\n        ProjectName = update01.ProjectName,\n        LogstoreName = Std.Format.Invoke(new()\n        {\n            Input = \"%s2%s\",\n            Args = new[]\n            {\n                name,\n                @default.Result,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var bucket = new AliCloud.Oss.Bucket(\"bucket\", new()\n    {\n        BucketName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1%s\",\n            Args = new[]\n            {\n                name,\n                @default.Result,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultCollectionPolicy = new AliCloud.Sls.CollectionPolicy(\"default\", new()\n    {\n        PolicyConfig = new AliCloud.Sls.Inputs.CollectionPolicyPolicyConfigArgs\n        {\n            ResourceMode = \"instanceMode\",\n            InstanceIds = new[]\n            {\n                bucket.Id,\n            },\n        },\n        DataCode = \"access_log\",\n        CentralizeEnabled = false,\n        ProductCode = \"oss\",\n        PolicyName = \"xc-example-oss-01\",\n        Enabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sls\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example-on-single-bucket\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\tname,\n\t\t\t\t_default.Result,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprojectCreate01, err := log.NewProject(ctx, \"project_create_01\", \u0026log.ProjectArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tProjectName: pulumi.String(invokeFormat.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\tname,\n\t\t\t\t_default.Result,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewStore(ctx, \"logstore_create_01\", \u0026log.StoreArgs{\n\t\t\tRetentionPeriod: pulumi.Int(30),\n\t\t\tShardCount:      pulumi.Int(2),\n\t\t\tProjectName:     projectCreate01.ProjectName,\n\t\t\tLogstoreName:    pulumi.String(invokeFormat1.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat2, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s2%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\tname,\n\t\t\t\t_default.Result,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tupdate01, err := log.NewProject(ctx, \"update_01\", \u0026log.ProjectArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tProjectName: pulumi.String(invokeFormat2.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat3, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s2%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\tname,\n\t\t\t\t_default.Result,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = log.NewStore(ctx, \"logstore002\", \u0026log.StoreArgs{\n\t\t\tRetentionPeriod: pulumi.Int(30),\n\t\t\tShardCount:      pulumi.Int(2),\n\t\t\tProjectName:     update01.ProjectName,\n\t\t\tLogstoreName:    pulumi.String(invokeFormat3.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat4, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\tname,\n\t\t\t\t_default.Result,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := oss.NewBucket(ctx, \"bucket\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.String(invokeFormat4.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sls.NewCollectionPolicy(ctx, \"default\", \u0026sls.CollectionPolicyArgs{\n\t\t\tPolicyConfig: \u0026sls.CollectionPolicyPolicyConfigArgs{\n\t\t\t\tResourceMode: pulumi.String(\"instanceMode\"),\n\t\t\t\tInstanceIds: pulumi.StringArray{\n\t\t\t\t\tbucket.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDataCode:          pulumi.String(\"access_log\"),\n\t\t\tCentralizeEnabled: pulumi.Bool(false),\n\t\t\tProductCode:       pulumi.String(\"oss\"),\n\t\t\tPolicyName:        pulumi.String(\"xc-example-oss-01\"),\n\t\t\tEnabled:           pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.sls.CollectionPolicy;\nimport com.pulumi.alicloud.sls.CollectionPolicyArgs;\nimport com.pulumi.alicloud.sls.inputs.CollectionPolicyPolicyConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example-on-single-bucket\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var projectCreate01 = new Project(\"projectCreate01\", ProjectArgs.builder()\n            .description(name)\n            .projectName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1%s\")\n                .args(                \n                    name,\n                    default_.result())\n                .build()).result())\n            .build());\n\n        var logstoreCreate01 = new Store(\"logstoreCreate01\", StoreArgs.builder()\n            .retentionPeriod(30)\n            .shardCount(2)\n            .projectName(projectCreate01.projectName())\n            .logstoreName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1%s\")\n                .args(                \n                    name,\n                    default_.result())\n                .build()).result())\n            .build());\n\n        var update01 = new Project(\"update01\", ProjectArgs.builder()\n            .description(name)\n            .projectName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s2%s\")\n                .args(                \n                    name,\n                    default_.result())\n                .build()).result())\n            .build());\n\n        var logstore002 = new Store(\"logstore002\", StoreArgs.builder()\n            .retentionPeriod(30)\n            .shardCount(2)\n            .projectName(update01.projectName())\n            .logstoreName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s2%s\")\n                .args(                \n                    name,\n                    default_.result())\n                .build()).result())\n            .build());\n\n        var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n            .bucket(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1%s\")\n                .args(                \n                    name,\n                    default_.result())\n                .build()).result())\n            .build());\n\n        var defaultCollectionPolicy = new CollectionPolicy(\"defaultCollectionPolicy\", CollectionPolicyArgs.builder()\n            .policyConfig(CollectionPolicyPolicyConfigArgs.builder()\n                .resourceMode(\"instanceMode\")\n                .instanceIds(bucket.id())\n                .build())\n            .dataCode(\"access_log\")\n            .centralizeEnabled(false)\n            .productCode(\"oss\")\n            .policyName(\"xc-example-oss-01\")\n            .enabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example-on-single-bucket\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  projectCreate01:\n    type: alicloud:log:Project\n    name: project_create_01\n    properties:\n      description: ${name}\n      projectName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1%s'\n            args:\n              - ${name}\n              - ${default.result}\n          return: result\n  logstoreCreate01:\n    type: alicloud:log:Store\n    name: logstore_create_01\n    properties:\n      retentionPeriod: '30'\n      shardCount: '2'\n      projectName: ${projectCreate01.projectName}\n      logstoreName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1%s'\n            args:\n              - ${name}\n              - ${default.result}\n          return: result\n  update01:\n    type: alicloud:log:Project\n    name: update_01\n    properties:\n      description: ${name}\n      projectName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s2%s'\n            args:\n              - ${name}\n              - ${default.result}\n          return: result\n  logstore002:\n    type: alicloud:log:Store\n    properties:\n      retentionPeriod: '30'\n      shardCount: '2'\n      projectName: ${update01.projectName}\n      logstoreName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s2%s'\n            args:\n              - ${name}\n              - ${default.result}\n          return: result\n  bucket:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1%s'\n            args:\n              - ${name}\n              - ${default.result}\n          return: result\n  defaultCollectionPolicy:\n    type: alicloud:sls:CollectionPolicy\n    name: default\n    properties:\n      policyConfig:\n        resourceMode: instanceMode\n        instanceIds:\n          - ${bucket.id}\n      dataCode: access_log\n      centralizeEnabled: false\n      productCode: oss\n      policyName: xc-example-oss-01\n      enabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog Service (SLS) Collection Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sls/collectionPolicy:CollectionPolicy example \u003cpolicy_name\u003e\n```\n\n","properties":{"centralizeConfig":{"$ref":"#/types/alicloud:sls/CollectionPolicyCentralizeConfig:CollectionPolicyCentralizeConfig","description":"Centralized forwarding configuration. See \u003cspan pulumi-lang-nodejs=\"`centralizeConfig`\" pulumi-lang-dotnet=\"`CentralizeConfig`\" pulumi-lang-go=\"`centralizeConfig`\" pulumi-lang-python=\"`centralize_config`\" pulumi-lang-yaml=\"`centralizeConfig`\" pulumi-lang-java=\"`centralizeConfig`\"\u003e`centralize_config`\u003c/span\u003e below.\n"},"centralizeEnabled":{"type":"boolean","description":"Specifies whether to enable centralized forwarding. Default value: false.\n"},"dataCode":{"type":"string","description":"Log type code.\n"},"dataConfig":{"$ref":"#/types/alicloud:sls/CollectionPolicyDataConfig:CollectionPolicyDataConfig","description":"This parameter can be configured only when the log type is a global log type—for example, when productCode is sls. It indicates that global logs will be collected to the specified region upon initial configuration. See \u003cspan pulumi-lang-nodejs=\"`dataConfig`\" pulumi-lang-dotnet=\"`DataConfig`\" pulumi-lang-go=\"`dataConfig`\" pulumi-lang-python=\"`data_config`\" pulumi-lang-yaml=\"`dataConfig`\" pulumi-lang-java=\"`dataConfig`\"\u003e`data_config`\u003c/span\u003e below.\n"},"enabled":{"type":"boolean","description":"Whether enabled.\n"},"policyConfig":{"$ref":"#/types/alicloud:sls/CollectionPolicyPolicyConfig:CollectionPolicyPolicyConfig","description":"Collection rule configuration. See \u003cspan pulumi-lang-nodejs=\"`policyConfig`\" pulumi-lang-dotnet=\"`PolicyConfig`\" pulumi-lang-go=\"`policyConfig`\" pulumi-lang-python=\"`policy_config`\" pulumi-lang-yaml=\"`policyConfig`\" pulumi-lang-java=\"`policyConfig`\"\u003e`policy_config`\u003c/span\u003e below.\n"},"policyName":{"type":"string","description":"The naming rules are as follows:\n- It can contain only lowercase letters, digits, hyphens (-), and underscores (_).\n- It must start with a letter.\n- Its length must be between 3 and 63 characters.\n"},"productCode":{"type":"string","description":"Product code.\n"},"resourceDirectory":{"$ref":"#/types/alicloud:sls/CollectionPolicyResourceDirectory:CollectionPolicyResourceDirectory","description":"Resource Directory configuration. The account must have Resource Directory enabled and be either a management account or a delegated administrator. See \u003cspan pulumi-lang-nodejs=\"`resourceDirectory`\" pulumi-lang-dotnet=\"`ResourceDirectory`\" pulumi-lang-go=\"`resourceDirectory`\" pulumi-lang-python=\"`resource_directory`\" pulumi-lang-yaml=\"`resourceDirectory`\" pulumi-lang-java=\"`resourceDirectory`\"\u003e`resource_directory`\u003c/span\u003e below.\n"}},"required":["centralizeConfig","dataCode","dataConfig","enabled","policyConfig","policyName","productCode","resourceDirectory"],"inputProperties":{"centralizeConfig":{"$ref":"#/types/alicloud:sls/CollectionPolicyCentralizeConfig:CollectionPolicyCentralizeConfig","description":"Centralized forwarding configuration. See \u003cspan pulumi-lang-nodejs=\"`centralizeConfig`\" pulumi-lang-dotnet=\"`CentralizeConfig`\" pulumi-lang-go=\"`centralizeConfig`\" pulumi-lang-python=\"`centralize_config`\" pulumi-lang-yaml=\"`centralizeConfig`\" pulumi-lang-java=\"`centralizeConfig`\"\u003e`centralize_config`\u003c/span\u003e below.\n"},"centralizeEnabled":{"type":"boolean","description":"Specifies whether to enable centralized forwarding. Default value: false.\n"},"dataCode":{"type":"string","description":"Log type code.\n","willReplaceOnChanges":true},"dataConfig":{"$ref":"#/types/alicloud:sls/CollectionPolicyDataConfig:CollectionPolicyDataConfig","description":"This parameter can be configured only when the log type is a global log type—for example, when productCode is sls. It indicates that global logs will be collected to the specified region upon initial configuration. See \u003cspan pulumi-lang-nodejs=\"`dataConfig`\" pulumi-lang-dotnet=\"`DataConfig`\" pulumi-lang-go=\"`dataConfig`\" pulumi-lang-python=\"`data_config`\" pulumi-lang-yaml=\"`dataConfig`\" pulumi-lang-java=\"`dataConfig`\"\u003e`data_config`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"enabled":{"type":"boolean","description":"Whether enabled.\n"},"policyConfig":{"$ref":"#/types/alicloud:sls/CollectionPolicyPolicyConfig:CollectionPolicyPolicyConfig","description":"Collection rule configuration. See \u003cspan pulumi-lang-nodejs=\"`policyConfig`\" pulumi-lang-dotnet=\"`PolicyConfig`\" pulumi-lang-go=\"`policyConfig`\" pulumi-lang-python=\"`policy_config`\" pulumi-lang-yaml=\"`policyConfig`\" pulumi-lang-java=\"`policyConfig`\"\u003e`policy_config`\u003c/span\u003e below.\n"},"policyName":{"type":"string","description":"The naming rules are as follows:\n- It can contain only lowercase letters, digits, hyphens (-), and underscores (_).\n- It must start with a letter.\n- Its length must be between 3 and 63 characters.\n","willReplaceOnChanges":true},"productCode":{"type":"string","description":"Product code.\n","willReplaceOnChanges":true},"resourceDirectory":{"$ref":"#/types/alicloud:sls/CollectionPolicyResourceDirectory:CollectionPolicyResourceDirectory","description":"Resource Directory configuration. The account must have Resource Directory enabled and be either a management account or a delegated administrator. See \u003cspan pulumi-lang-nodejs=\"`resourceDirectory`\" pulumi-lang-dotnet=\"`ResourceDirectory`\" pulumi-lang-go=\"`resourceDirectory`\" pulumi-lang-python=\"`resource_directory`\" pulumi-lang-yaml=\"`resourceDirectory`\" pulumi-lang-java=\"`resourceDirectory`\"\u003e`resource_directory`\u003c/span\u003e below.\n"}},"requiredInputs":["dataCode","enabled","policyConfig","policyName","productCode"],"stateInputs":{"description":"Input properties used for looking up and filtering CollectionPolicy resources.\n","properties":{"centralizeConfig":{"$ref":"#/types/alicloud:sls/CollectionPolicyCentralizeConfig:CollectionPolicyCentralizeConfig","description":"Centralized forwarding configuration. See \u003cspan pulumi-lang-nodejs=\"`centralizeConfig`\" pulumi-lang-dotnet=\"`CentralizeConfig`\" pulumi-lang-go=\"`centralizeConfig`\" pulumi-lang-python=\"`centralize_config`\" pulumi-lang-yaml=\"`centralizeConfig`\" pulumi-lang-java=\"`centralizeConfig`\"\u003e`centralize_config`\u003c/span\u003e below.\n"},"centralizeEnabled":{"type":"boolean","description":"Specifies whether to enable centralized forwarding. Default value: false.\n"},"dataCode":{"type":"string","description":"Log type code.\n","willReplaceOnChanges":true},"dataConfig":{"$ref":"#/types/alicloud:sls/CollectionPolicyDataConfig:CollectionPolicyDataConfig","description":"This parameter can be configured only when the log type is a global log type—for example, when productCode is sls. It indicates that global logs will be collected to the specified region upon initial configuration. See \u003cspan pulumi-lang-nodejs=\"`dataConfig`\" pulumi-lang-dotnet=\"`DataConfig`\" pulumi-lang-go=\"`dataConfig`\" pulumi-lang-python=\"`data_config`\" pulumi-lang-yaml=\"`dataConfig`\" pulumi-lang-java=\"`dataConfig`\"\u003e`data_config`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"enabled":{"type":"boolean","description":"Whether enabled.\n"},"policyConfig":{"$ref":"#/types/alicloud:sls/CollectionPolicyPolicyConfig:CollectionPolicyPolicyConfig","description":"Collection rule configuration. See \u003cspan pulumi-lang-nodejs=\"`policyConfig`\" pulumi-lang-dotnet=\"`PolicyConfig`\" pulumi-lang-go=\"`policyConfig`\" pulumi-lang-python=\"`policy_config`\" pulumi-lang-yaml=\"`policyConfig`\" pulumi-lang-java=\"`policyConfig`\"\u003e`policy_config`\u003c/span\u003e below.\n"},"policyName":{"type":"string","description":"The naming rules are as follows:\n- It can contain only lowercase letters, digits, hyphens (-), and underscores (_).\n- It must start with a letter.\n- Its length must be between 3 and 63 characters.\n","willReplaceOnChanges":true},"productCode":{"type":"string","description":"Product code.\n","willReplaceOnChanges":true},"resourceDirectory":{"$ref":"#/types/alicloud:sls/CollectionPolicyResourceDirectory:CollectionPolicyResourceDirectory","description":"Resource Directory configuration. The account must have Resource Directory enabled and be either a management account or a delegated administrator. See \u003cspan pulumi-lang-nodejs=\"`resourceDirectory`\" pulumi-lang-dotnet=\"`ResourceDirectory`\" pulumi-lang-go=\"`resourceDirectory`\" pulumi-lang-python=\"`resource_directory`\" pulumi-lang-yaml=\"`resourceDirectory`\" pulumi-lang-java=\"`resourceDirectory`\"\u003e`resource_directory`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:sls/etl:Etl":{"description":"Provides a Log Service (SLS) Etl resource.\n\n\n\nFor information about Log Service (SLS) Etl and how to use it, see [What is Etl](https://next.api.alibabacloud.com/document/Sls/2020-12-30/CreateETL).\n\n\u003e **NOTE:** Available since v1.248.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaulthhAPo6 = new alicloud.log.Project(\"defaulthhAPo6\", {\n    description: \"terraform-etl-example-813\",\n    projectName: \"terraform-etl-example-330\",\n});\nconst defaultzWKLkp = new alicloud.log.Store(\"defaultzWKLkp\", {\n    hotTtl: 8,\n    retentionPeriod: 30,\n    shardCount: 2,\n    projectName: defaulthhAPo6.id,\n    logstoreName: \"example\",\n});\nconst _default = new alicloud.sls.Etl(\"default\", {\n    project: defaulthhAPo6.id,\n    description: \"etl-1740472705-185721\",\n    configuration: {\n        script: \"* | extend a=1\",\n        lang: \"SPL\",\n        roleArn: name,\n        sinks: [{\n            name: \"11111\",\n            endpoint: \"cn-hangzhou-intranet.log.aliyuncs.com\",\n            project: \"gy-hangzhou-huolang-1\",\n            logstore: \"gy-rm2\",\n            datasets: [\"__UNNAMED__\"],\n            roleArn: name,\n        }],\n        logstore: defaultzWKLkp.logstoreName,\n        fromTime: 1706771697,\n        toTime: 1738394097,\n    },\n    jobName: \"etl-1740472705-185721\",\n    displayName: \"etl-1740472705-185721\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaulthh_a_po6 = alicloud.log.Project(\"defaulthhAPo6\",\n    description=\"terraform-etl-example-813\",\n    project_name=\"terraform-etl-example-330\")\ndefaultz_wk_lkp = alicloud.log.Store(\"defaultzWKLkp\",\n    hot_ttl=8,\n    retention_period=30,\n    shard_count=2,\n    project_name=defaulthh_a_po6.id,\n    logstore_name=\"example\")\ndefault = alicloud.sls.Etl(\"default\",\n    project=defaulthh_a_po6.id,\n    description=\"etl-1740472705-185721\",\n    configuration={\n        \"script\": \"* | extend a=1\",\n        \"lang\": \"SPL\",\n        \"role_arn\": name,\n        \"sinks\": [{\n            \"name\": \"11111\",\n            \"endpoint\": \"cn-hangzhou-intranet.log.aliyuncs.com\",\n            \"project\": \"gy-hangzhou-huolang-1\",\n            \"logstore\": \"gy-rm2\",\n            \"datasets\": [\"__UNNAMED__\"],\n            \"role_arn\": name,\n        }],\n        \"logstore\": defaultz_wk_lkp.logstore_name,\n        \"from_time\": 1706771697,\n        \"to_time\": 1738394097,\n    },\n    job_name=\"etl-1740472705-185721\",\n    display_name=\"etl-1740472705-185721\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaulthhAPo6 = new AliCloud.Log.Project(\"defaulthhAPo6\", new()\n    {\n        Description = \"terraform-etl-example-813\",\n        ProjectName = \"terraform-etl-example-330\",\n    });\n\n    var defaultzWKLkp = new AliCloud.Log.Store(\"defaultzWKLkp\", new()\n    {\n        HotTtl = 8,\n        RetentionPeriod = 30,\n        ShardCount = 2,\n        ProjectName = defaulthhAPo6.Id,\n        LogstoreName = \"example\",\n    });\n\n    var @default = new AliCloud.Sls.Etl(\"default\", new()\n    {\n        Project = defaulthhAPo6.Id,\n        Description = \"etl-1740472705-185721\",\n        Configuration = new AliCloud.Sls.Inputs.EtlConfigurationArgs\n        {\n            Script = \"* | extend a=1\",\n            Lang = \"SPL\",\n            RoleArn = name,\n            Sinks = new[]\n            {\n                new AliCloud.Sls.Inputs.EtlConfigurationSinkArgs\n                {\n                    Name = \"11111\",\n                    Endpoint = \"cn-hangzhou-intranet.log.aliyuncs.com\",\n                    Project = \"gy-hangzhou-huolang-1\",\n                    Logstore = \"gy-rm2\",\n                    Datasets = new[]\n                    {\n                        \"__UNNAMED__\",\n                    },\n                    RoleArn = name,\n                },\n            },\n            Logstore = defaultzWKLkp.LogstoreName,\n            FromTime = 1706771697,\n            ToTime = 1738394097,\n        },\n        JobName = \"etl-1740472705-185721\",\n        DisplayName = \"etl-1740472705-185721\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sls\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaulthhAPo6, err := log.NewProject(ctx, \"defaulthhAPo6\", \u0026log.ProjectArgs{\n\t\t\tDescription: pulumi.String(\"terraform-etl-example-813\"),\n\t\t\tProjectName: pulumi.String(\"terraform-etl-example-330\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultzWKLkp, err := log.NewStore(ctx, \"defaultzWKLkp\", \u0026log.StoreArgs{\n\t\t\tHotTtl:          pulumi.Int(8),\n\t\t\tRetentionPeriod: pulumi.Int(30),\n\t\t\tShardCount:      pulumi.Int(2),\n\t\t\tProjectName:     defaulthhAPo6.ID(),\n\t\t\tLogstoreName:    pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sls.NewEtl(ctx, \"default\", \u0026sls.EtlArgs{\n\t\t\tProject:     defaulthhAPo6.ID(),\n\t\t\tDescription: pulumi.String(\"etl-1740472705-185721\"),\n\t\t\tConfiguration: \u0026sls.EtlConfigurationArgs{\n\t\t\t\tScript:  pulumi.String(\"* | extend a=1\"),\n\t\t\t\tLang:    pulumi.String(\"SPL\"),\n\t\t\t\tRoleArn: pulumi.String(name),\n\t\t\t\tSinks: sls.EtlConfigurationSinkArray{\n\t\t\t\t\t\u0026sls.EtlConfigurationSinkArgs{\n\t\t\t\t\t\tName:     pulumi.String(\"11111\"),\n\t\t\t\t\t\tEndpoint: pulumi.String(\"cn-hangzhou-intranet.log.aliyuncs.com\"),\n\t\t\t\t\t\tProject:  pulumi.String(\"gy-hangzhou-huolang-1\"),\n\t\t\t\t\t\tLogstore: pulumi.String(\"gy-rm2\"),\n\t\t\t\t\t\tDatasets: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"__UNNAMED__\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tRoleArn: pulumi.String(name),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tLogstore: defaultzWKLkp.LogstoreName,\n\t\t\t\tFromTime: pulumi.Int(1706771697),\n\t\t\t\tToTime:   pulumi.Int(1738394097),\n\t\t\t},\n\t\t\tJobName:     pulumi.String(\"etl-1740472705-185721\"),\n\t\t\tDisplayName: pulumi.String(\"etl-1740472705-185721\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.sls.Etl;\nimport com.pulumi.alicloud.sls.EtlArgs;\nimport com.pulumi.alicloud.sls.inputs.EtlConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaulthhAPo6 = new Project(\"defaulthhAPo6\", ProjectArgs.builder()\n            .description(\"terraform-etl-example-813\")\n            .projectName(\"terraform-etl-example-330\")\n            .build());\n\n        var defaultzWKLkp = new Store(\"defaultzWKLkp\", StoreArgs.builder()\n            .hotTtl(8)\n            .retentionPeriod(30)\n            .shardCount(2)\n            .projectName(defaulthhAPo6.id())\n            .logstoreName(\"example\")\n            .build());\n\n        var default_ = new Etl(\"default\", EtlArgs.builder()\n            .project(defaulthhAPo6.id())\n            .description(\"etl-1740472705-185721\")\n            .configuration(EtlConfigurationArgs.builder()\n                .script(\"* | extend a=1\")\n                .lang(\"SPL\")\n                .roleArn(name)\n                .sinks(EtlConfigurationSinkArgs.builder()\n                    .name(\"11111\")\n                    .endpoint(\"cn-hangzhou-intranet.log.aliyuncs.com\")\n                    .project(\"gy-hangzhou-huolang-1\")\n                    .logstore(\"gy-rm2\")\n                    .datasets(\"__UNNAMED__\")\n                    .roleArn(name)\n                    .build())\n                .logstore(defaultzWKLkp.logstoreName())\n                .fromTime(1706771697)\n                .toTime(1738394097)\n                .build())\n            .jobName(\"etl-1740472705-185721\")\n            .displayName(\"etl-1740472705-185721\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaulthhAPo6:\n    type: alicloud:log:Project\n    properties:\n      description: terraform-etl-example-813\n      projectName: terraform-etl-example-330\n  defaultzWKLkp:\n    type: alicloud:log:Store\n    properties:\n      hotTtl: '8'\n      retentionPeriod: '30'\n      shardCount: '2'\n      projectName: ${defaulthhAPo6.id}\n      logstoreName: example\n  default:\n    type: alicloud:sls:Etl\n    properties:\n      project: ${defaulthhAPo6.id}\n      description: etl-1740472705-185721\n      configuration:\n        script: '* | extend a=1'\n        lang: SPL\n        roleArn: ${name}\n        sinks:\n          - name: '11111'\n            endpoint: cn-hangzhou-intranet.log.aliyuncs.com\n            project: gy-hangzhou-huolang-1\n            logstore: gy-rm2\n            datasets:\n              - __UNNAMED__\n            roleArn: ${name}\n        logstore: ${defaultzWKLkp.logstoreName}\n        fromTime: '1706771697'\n        toTime: '1738394097'\n      jobName: etl-1740472705-185721\n      displayName: etl-1740472705-185721\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog Service (SLS) Etl can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sls/etl:Etl example \u003cproject\u003e:\u003cjob_name\u003e\n```\n\n","properties":{"configuration":{"$ref":"#/types/alicloud:sls/EtlConfiguration:EtlConfiguration","description":"Detailed configuration of the data processing task.   See \u003cspan pulumi-lang-nodejs=\"`configuration`\" pulumi-lang-dotnet=\"`Configuration`\" pulumi-lang-go=\"`configuration`\" pulumi-lang-python=\"`configuration`\" pulumi-lang-yaml=\"`configuration`\" pulumi-lang-java=\"`configuration`\"\u003e`configuration`\u003c/span\u003e below.\n"},"createTime":{"type":"integer","description":"The time when the task was created.\n"},"description":{"type":"string","description":"Description of the data processing task.\n"},"displayName":{"type":"string","description":"The display name of the data processing task.\n"},"jobName":{"type":"string","description":"The job name. Naming rules are as follows:\n- Job names must be unique within the same project.\n- Can only contain lowercase letters, digits, hyphens (-), and underscores (_).\n- Must start and end with a lowercase letter or digit.\n- Must be 2 to 64 characters in length.\n"},"project":{"type":"string","description":"Project name.\n"},"status":{"type":"string","description":"Task status.\n"}},"required":["configuration","createTime","displayName","jobName","project","status"],"inputProperties":{"configuration":{"$ref":"#/types/alicloud:sls/EtlConfiguration:EtlConfiguration","description":"Detailed configuration of the data processing task.   See \u003cspan pulumi-lang-nodejs=\"`configuration`\" pulumi-lang-dotnet=\"`Configuration`\" pulumi-lang-go=\"`configuration`\" pulumi-lang-python=\"`configuration`\" pulumi-lang-yaml=\"`configuration`\" pulumi-lang-java=\"`configuration`\"\u003e`configuration`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"Description of the data processing task.\n"},"displayName":{"type":"string","description":"The display name of the data processing task.\n"},"jobName":{"type":"string","description":"The job name. Naming rules are as follows:\n- Job names must be unique within the same project.\n- Can only contain lowercase letters, digits, hyphens (-), and underscores (_).\n- Must start and end with a lowercase letter or digit.\n- Must be 2 to 64 characters in length.\n","willReplaceOnChanges":true},"project":{"type":"string","description":"Project name.\n","willReplaceOnChanges":true}},"requiredInputs":["configuration","displayName","jobName","project"],"stateInputs":{"description":"Input properties used for looking up and filtering Etl resources.\n","properties":{"configuration":{"$ref":"#/types/alicloud:sls/EtlConfiguration:EtlConfiguration","description":"Detailed configuration of the data processing task.   See \u003cspan pulumi-lang-nodejs=\"`configuration`\" pulumi-lang-dotnet=\"`Configuration`\" pulumi-lang-go=\"`configuration`\" pulumi-lang-python=\"`configuration`\" pulumi-lang-yaml=\"`configuration`\" pulumi-lang-java=\"`configuration`\"\u003e`configuration`\u003c/span\u003e below.\n"},"createTime":{"type":"integer","description":"The time when the task was created.\n"},"description":{"type":"string","description":"Description of the data processing task.\n"},"displayName":{"type":"string","description":"The display name of the data processing task.\n"},"jobName":{"type":"string","description":"The job name. Naming rules are as follows:\n- Job names must be unique within the same project.\n- Can only contain lowercase letters, digits, hyphens (-), and underscores (_).\n- Must start and end with a lowercase letter or digit.\n- Must be 2 to 64 characters in length.\n","willReplaceOnChanges":true},"project":{"type":"string","description":"Project name.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Task status.\n"}},"type":"object"}},"alicloud:sls/index:Index":{"description":"Provides a Log Service (SLS) Index resource.\n\n\n\nFor information about Log Service (SLS) Index and how to use it, see [What is Index](https://next.api.alibabacloud.com/document/Sls/2020-12-30/CreateIndex).\n\n\u003e **NOTE:** Available since v1.260.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst logstoreName = config.get(\"logstoreName\") || \"logstore-example\";\nconst projectName = config.get(\"projectName\") || \"project-for-index-terraform-example\";\nconst _default = new alicloud.log.Project(\"default\", {\n    description: \"terraform example\",\n    projectName: projectName,\n});\nconst defaultStore = new alicloud.log.Store(\"default\", {\n    hotTtl: 7,\n    retentionPeriod: 30,\n    shardCount: 2,\n    projectName: _default.projectName,\n    logstoreName: logstoreName,\n});\nconst defaultIndex = new alicloud.sls.Index(\"default\", {\n    line: {\n        chn: true,\n        caseSensitive: true,\n        tokens: [\"a\"],\n        excludeKeys: [\"t\"],\n    },\n    keys: JSON.stringify({\n        example: {\n            caseSensitive: false,\n            token: [\n                \"\\n\",\n                \"\\x09\",\n                \",\",\n                \" \",\n                \";\",\n                \"\\\"\",\n                \"'\",\n                \"(\",\n                \")\",\n                \"{\",\n                \"}\",\n                \"[\",\n                \"]\",\n                \"\u003c\",\n                \"\u003e\",\n                \"?\",\n                \"/\",\n                \"#\",\n                \":\",\n            ],\n            type: \"text\",\n            doc_value: false,\n            alias: \"\",\n            chn: false,\n        },\n    }),\n    logstoreName: defaultStore.logstoreName,\n    projectName: projectName,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nlogstore_name = config.get(\"logstoreName\")\nif logstore_name is None:\n    logstore_name = \"logstore-example\"\nproject_name = config.get(\"projectName\")\nif project_name is None:\n    project_name = \"project-for-index-terraform-example\"\ndefault = alicloud.log.Project(\"default\",\n    description=\"terraform example\",\n    project_name=project_name)\ndefault_store = alicloud.log.Store(\"default\",\n    hot_ttl=7,\n    retention_period=30,\n    shard_count=2,\n    project_name=default.project_name,\n    logstore_name=logstore_name)\ndefault_index = alicloud.sls.Index(\"default\",\n    line={\n        \"chn\": True,\n        \"case_sensitive\": True,\n        \"tokens\": [\"a\"],\n        \"exclude_keys\": [\"t\"],\n    },\n    keys=json.dumps({\n        \"example\": {\n            \"caseSensitive\": False,\n            \"token\": [\n                \"\\n\",\n                \"\\x09\",\n                \",\",\n                \" \",\n                \";\",\n                \"\\\"\",\n                \"'\",\n                \"(\",\n                \")\",\n                \"{\",\n                \"}\",\n                \"[\",\n                \"]\",\n                \"\u003c\",\n                \"\u003e\",\n                \"?\",\n                \"/\",\n                \"#\",\n                \":\",\n            ],\n            \"type\": \"text\",\n            \"doc_value\": False,\n            \"alias\": \"\",\n            \"chn\": False,\n        },\n    }),\n    logstore_name=default_store.logstore_name,\n    project_name=project_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var logstoreName = config.Get(\"logstoreName\") ?? \"logstore-example\";\n    var projectName = config.Get(\"projectName\") ?? \"project-for-index-terraform-example\";\n    var @default = new AliCloud.Log.Project(\"default\", new()\n    {\n        Description = \"terraform example\",\n        ProjectName = projectName,\n    });\n\n    var defaultStore = new AliCloud.Log.Store(\"default\", new()\n    {\n        HotTtl = 7,\n        RetentionPeriod = 30,\n        ShardCount = 2,\n        ProjectName = @default.ProjectName,\n        LogstoreName = logstoreName,\n    });\n\n    var defaultIndex = new AliCloud.Sls.Index(\"default\", new()\n    {\n        Line = new AliCloud.Sls.Inputs.IndexLineArgs\n        {\n            Chn = true,\n            CaseSensitive = true,\n            Tokens = new[]\n            {\n                \"a\",\n            },\n            ExcludeKeys = new[]\n            {\n                \"t\",\n            },\n        },\n        Keys = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"example\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"caseSensitive\"] = false,\n                [\"token\"] = new[]\n                {\n                    @\"\n\",\n                    \"\t\",\n                    \",\",\n                    \" \",\n                    \";\",\n                    \"\\\"\",\n                    \"'\",\n                    \"(\",\n                    \")\",\n                    \"{\",\n                    \"}\",\n                    \"[\",\n                    \"]\",\n                    \"\u003c\",\n                    \"\u003e\",\n                    \"?\",\n                    \"/\",\n                    \"#\",\n                    \":\",\n                },\n                [\"type\"] = \"text\",\n                [\"doc_value\"] = false,\n                [\"alias\"] = \"\",\n                [\"chn\"] = false,\n            },\n        }),\n        LogstoreName = defaultStore.LogstoreName,\n        ProjectName = projectName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sls\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tlogstoreName := \"logstore-example\"\n\t\tif param := cfg.Get(\"logstoreName\"); param != \"\" {\n\t\t\tlogstoreName = param\n\t\t}\n\t\tprojectName := \"project-for-index-terraform-example\"\n\t\tif param := cfg.Get(\"projectName\"); param != \"\" {\n\t\t\tprojectName = param\n\t\t}\n\t\t_default, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\n\t\t\tDescription: pulumi.String(\"terraform example\"),\n\t\t\tProjectName: pulumi.String(projectName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultStore, err := log.NewStore(ctx, \"default\", \u0026log.StoreArgs{\n\t\t\tHotTtl:          pulumi.Int(7),\n\t\t\tRetentionPeriod: pulumi.Int(30),\n\t\t\tShardCount:      pulumi.Int(2),\n\t\t\tProjectName:     _default.ProjectName,\n\t\t\tLogstoreName:    pulumi.String(logstoreName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"example\": map[string]interface{}{\n\t\t\t\t\"caseSensitive\": false,\n\t\t\t\t\"token\": []string{\n\t\t\t\t\t\"\\n\",\n\t\t\t\t\t\"\t\",\n\t\t\t\t\t\",\",\n\t\t\t\t\t\" \",\n\t\t\t\t\t\";\",\n\t\t\t\t\t\"\\\"\",\n\t\t\t\t\t\"'\",\n\t\t\t\t\t\"(\",\n\t\t\t\t\t\")\",\n\t\t\t\t\t\"{\",\n\t\t\t\t\t\"}\",\n\t\t\t\t\t\"[\",\n\t\t\t\t\t\"]\",\n\t\t\t\t\t\"\u003c\",\n\t\t\t\t\t\"\u003e\",\n\t\t\t\t\t\"?\",\n\t\t\t\t\t\"/\",\n\t\t\t\t\t\"#\",\n\t\t\t\t\t\":\",\n\t\t\t\t},\n\t\t\t\t\"type\":      \"text\",\n\t\t\t\t\"doc_value\": false,\n\t\t\t\t\"alias\":     \"\",\n\t\t\t\t\"chn\":       false,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = sls.NewIndex(ctx, \"default\", \u0026sls.IndexArgs{\n\t\t\tLine: \u0026sls.IndexLineArgs{\n\t\t\t\tChn:           pulumi.Bool(true),\n\t\t\t\tCaseSensitive: pulumi.Bool(true),\n\t\t\t\tTokens: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"a\"),\n\t\t\t\t},\n\t\t\t\tExcludeKeys: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"t\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeys:         pulumi.String(json0),\n\t\t\tLogstoreName: defaultStore.LogstoreName,\n\t\t\tProjectName:  pulumi.String(projectName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.sls.Index;\nimport com.pulumi.alicloud.sls.IndexArgs;\nimport com.pulumi.alicloud.sls.inputs.IndexLineArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var logstoreName = config.get(\"logstoreName\").orElse(\"logstore-example\");\n        final var projectName = config.get(\"projectName\").orElse(\"project-for-index-terraform-example\");\n        var default_ = new Project(\"default\", ProjectArgs.builder()\n            .description(\"terraform example\")\n            .projectName(projectName)\n            .build());\n\n        var defaultStore = new Store(\"defaultStore\", StoreArgs.builder()\n            .hotTtl(7)\n            .retentionPeriod(30)\n            .shardCount(2)\n            .projectName(default_.projectName())\n            .logstoreName(logstoreName)\n            .build());\n\n        var defaultIndex = new Index(\"defaultIndex\", IndexArgs.builder()\n            .line(IndexLineArgs.builder()\n                .chn(true)\n                .caseSensitive(true)\n                .tokens(\"a\")\n                .excludeKeys(\"t\")\n                .build())\n            .keys(serializeJson(\n                jsonObject(\n                    jsonProperty(\"example\", jsonObject(\n                        jsonProperty(\"caseSensitive\", false),\n                        jsonProperty(\"token\", jsonArray(\n                            \"\"\"\n\n                            \"\"\", \n                            \"\t\", \n                            \",\", \n                            \" \", \n                            \";\", \n                            \"\\\"\", \n                            \"'\", \n                            \"(\", \n                            \")\", \n                            \"{\", \n                            \"}\", \n                            \"[\", \n                            \"]\", \n                            \"\u003c\", \n                            \"\u003e\", \n                            \"?\", \n                            \"/\", \n                            \"#\", \n                            \":\"\n                        )),\n                        jsonProperty(\"type\", \"text\"),\n                        jsonProperty(\"doc_value\", false),\n                        jsonProperty(\"alias\", \"\"),\n                        jsonProperty(\"chn\", false)\n                    ))\n                )))\n            .logstoreName(defaultStore.logstoreName())\n            .projectName(projectName)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  logstoreName:\n    type: string\n    default: logstore-example\n  projectName:\n    type: string\n    default: project-for-index-terraform-example\nresources:\n  default:\n    type: alicloud:log:Project\n    properties:\n      description: terraform example\n      projectName: ${projectName}\n  defaultStore:\n    type: alicloud:log:Store\n    name: default\n    properties:\n      hotTtl: '7'\n      retentionPeriod: '30'\n      shardCount: '2'\n      projectName: ${default.projectName}\n      logstoreName: ${logstoreName}\n  defaultIndex:\n    type: alicloud:sls:Index\n    name: default\n    properties:\n      line:\n        chn: 'true'\n        caseSensitive: 'true'\n        tokens:\n          - a\n        excludeKeys:\n          - t\n      keys:\n        fn::toJSON:\n          example:\n            caseSensitive: false\n            token:\n              - |2+\n              - \"\\t\"\n              - ','\n              - ' '\n              - ;\n              - '\"'\n              - ''''\n              - (\n              - )\n              - '{'\n              - '}'\n              - '['\n              - ']'\n              - \u003c\n              - '\u003e'\n              - '?'\n              - /\n              - '#'\n              - ':'\n            type: text\n            doc_value: false\n            alias: \"\"\n            chn: false\n      logstoreName: ${defaultStore.logstoreName}\n      projectName: ${projectName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog Service (SLS) Index can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sls/index:Index example \u003cproject_name\u003e:\u003clogstore_name\u003e\n```\n\n","properties":{"keys":{"type":"string","description":"Field index\n"},"line":{"$ref":"#/types/alicloud:sls/IndexLine:IndexLine","description":"Full-text index See \u003cspan pulumi-lang-nodejs=\"`line`\" pulumi-lang-dotnet=\"`Line`\" pulumi-lang-go=\"`line`\" pulumi-lang-python=\"`line`\" pulumi-lang-yaml=\"`line`\" pulumi-lang-java=\"`line`\"\u003e`line`\u003c/span\u003e below.\n"},"logReduce":{"type":"boolean","description":"Whether log clustering is enabled\n"},"logReduceBlackLists":{"type":"array","items":{"type":"string"},"description":"The blacklist of the cluster fields of log clustering is filtered only when log clustering is enabled.\n"},"logReduceWhiteLists":{"type":"array","items":{"type":"string"},"description":"The whitelist of the cluster fields for log clustering. This filter is valid only when log clustering is enabled.\n"},"logstoreName":{"type":"string","description":"Logstore name\n"},"maxTextLen":{"type":"integer","description":"Maximum length of statistical field\n"},"projectName":{"type":"string","description":"Project name\n"}},"required":["logstoreName","projectName"],"inputProperties":{"keys":{"type":"string","description":"Field index\n"},"line":{"$ref":"#/types/alicloud:sls/IndexLine:IndexLine","description":"Full-text index See \u003cspan pulumi-lang-nodejs=\"`line`\" pulumi-lang-dotnet=\"`Line`\" pulumi-lang-go=\"`line`\" pulumi-lang-python=\"`line`\" pulumi-lang-yaml=\"`line`\" pulumi-lang-java=\"`line`\"\u003e`line`\u003c/span\u003e below.\n"},"logReduce":{"type":"boolean","description":"Whether log clustering is enabled\n"},"logReduceBlackLists":{"type":"array","items":{"type":"string"},"description":"The blacklist of the cluster fields of log clustering is filtered only when log clustering is enabled.\n"},"logReduceWhiteLists":{"type":"array","items":{"type":"string"},"description":"The whitelist of the cluster fields for log clustering. This filter is valid only when log clustering is enabled.\n"},"logstoreName":{"type":"string","description":"Logstore name\n","willReplaceOnChanges":true},"maxTextLen":{"type":"integer","description":"Maximum length of statistical field\n"},"projectName":{"type":"string","description":"Project name\n","willReplaceOnChanges":true}},"requiredInputs":["logstoreName","projectName"],"stateInputs":{"description":"Input properties used for looking up and filtering Index resources.\n","properties":{"keys":{"type":"string","description":"Field index\n"},"line":{"$ref":"#/types/alicloud:sls/IndexLine:IndexLine","description":"Full-text index See \u003cspan pulumi-lang-nodejs=\"`line`\" pulumi-lang-dotnet=\"`Line`\" pulumi-lang-go=\"`line`\" pulumi-lang-python=\"`line`\" pulumi-lang-yaml=\"`line`\" pulumi-lang-java=\"`line`\"\u003e`line`\u003c/span\u003e below.\n"},"logReduce":{"type":"boolean","description":"Whether log clustering is enabled\n"},"logReduceBlackLists":{"type":"array","items":{"type":"string"},"description":"The blacklist of the cluster fields of log clustering is filtered only when log clustering is enabled.\n"},"logReduceWhiteLists":{"type":"array","items":{"type":"string"},"description":"The whitelist of the cluster fields for log clustering. This filter is valid only when log clustering is enabled.\n"},"logstoreName":{"type":"string","description":"Logstore name\n","willReplaceOnChanges":true},"maxTextLen":{"type":"integer","description":"Maximum length of statistical field\n"},"projectName":{"type":"string","description":"Project name\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:sls/logtailConfig:LogtailConfig":{"description":"Provides a Log Service (SLS) Logtail Config resource.\n\n\n\nFor information about Log Service (SLS) Logtail Config and how to use it, see [What is Logtail Config](https://next.api.alibabacloud.com/document/Sls/2020-12-30/CreateConfig).\n\n\u003e **NOTE:** Available since v1.259.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfaccsls62147\";\nconst projectName = config.get(\"projectName\") || \"project-for-logtail-terraform\";\nconst defaultuA28zS = new alicloud.log.Project(\"defaultuA28zS\", {projectName: projectName});\nconst defaultLogtailConfig = new alicloud.sls.LogtailConfig(\"default\", {\n    projectName: defaultuA28zS.projectName,\n    outputDetail: {\n        endpoint: \"cn-hangzhou-intranet.log.aliyuncs.com\",\n        region: \"cn-hangzhou\",\n        logstoreName: \"example\",\n    },\n    outputType: \"LogService\",\n    inputDetail: JSON.stringify({\n        adjustTimezone: false,\n        delayAlarmBytes: 0,\n        delaySkipBytes: 0,\n        discardNonUtf8: false,\n        discardUnmatch: true,\n        dockerFile: false,\n        enableRawLog: false,\n        enableTag: false,\n        fileEncoding: \"utf8\",\n        filePattern: \"access*.log\",\n        filterKey: [\"key1\"],\n        filterRegex: [\"regex1\"],\n        key: [\n            \"key1\",\n            \"key2\",\n        ],\n        localStorage: true,\n        logBeginRegex: \".*\",\n        logPath: \"/var/log/httpd\",\n        logTimezone: \"\",\n        logType: \"common_reg_log\",\n        maxDepth: 1000,\n        maxSendRate: -1,\n        mergeType: \"topic\",\n        preserve: true,\n        preserveDepth: 0,\n        priority: 0,\n        regex: \"(w+)(s+)\",\n        sendRateExpire: 0,\n        sensitive_keys: [],\n        tailExisted: false,\n        timeFormat: \"%Y/%m/%d %H:%M:%S\",\n        timeKey: \"time\",\n        topicFormat: \"none\",\n    }),\n    logtailConfigName: \"tfaccsls62147\",\n    inputType: \"file\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfaccsls62147\"\nproject_name = config.get(\"projectName\")\nif project_name is None:\n    project_name = \"project-for-logtail-terraform\"\ndefaultu_a28z_s = alicloud.log.Project(\"defaultuA28zS\", project_name=project_name)\ndefault_logtail_config = alicloud.sls.LogtailConfig(\"default\",\n    project_name=defaultu_a28z_s.project_name,\n    output_detail={\n        \"endpoint\": \"cn-hangzhou-intranet.log.aliyuncs.com\",\n        \"region\": \"cn-hangzhou\",\n        \"logstore_name\": \"example\",\n    },\n    output_type=\"LogService\",\n    input_detail=json.dumps({\n        \"adjustTimezone\": False,\n        \"delayAlarmBytes\": 0,\n        \"delaySkipBytes\": 0,\n        \"discardNonUtf8\": False,\n        \"discardUnmatch\": True,\n        \"dockerFile\": False,\n        \"enableRawLog\": False,\n        \"enableTag\": False,\n        \"fileEncoding\": \"utf8\",\n        \"filePattern\": \"access*.log\",\n        \"filterKey\": [\"key1\"],\n        \"filterRegex\": [\"regex1\"],\n        \"key\": [\n            \"key1\",\n            \"key2\",\n        ],\n        \"localStorage\": True,\n        \"logBeginRegex\": \".*\",\n        \"logPath\": \"/var/log/httpd\",\n        \"logTimezone\": \"\",\n        \"logType\": \"common_reg_log\",\n        \"maxDepth\": 1000,\n        \"maxSendRate\": -1,\n        \"mergeType\": \"topic\",\n        \"preserve\": True,\n        \"preserveDepth\": 0,\n        \"priority\": 0,\n        \"regex\": \"(w+)(s+)\",\n        \"sendRateExpire\": 0,\n        \"sensitive_keys\": [],\n        \"tailExisted\": False,\n        \"timeFormat\": \"%Y/%m/%d %H:%M:%S\",\n        \"timeKey\": \"time\",\n        \"topicFormat\": \"none\",\n    }),\n    logtail_config_name=\"tfaccsls62147\",\n    input_type=\"file\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfaccsls62147\";\n    var projectName = config.Get(\"projectName\") ?? \"project-for-logtail-terraform\";\n    var defaultuA28zS = new AliCloud.Log.Project(\"defaultuA28zS\", new()\n    {\n        ProjectName = projectName,\n    });\n\n    var defaultLogtailConfig = new AliCloud.Sls.LogtailConfig(\"default\", new()\n    {\n        ProjectName = defaultuA28zS.ProjectName,\n        OutputDetail = new AliCloud.Sls.Inputs.LogtailConfigOutputDetailArgs\n        {\n            Endpoint = \"cn-hangzhou-intranet.log.aliyuncs.com\",\n            Region = \"cn-hangzhou\",\n            LogstoreName = \"example\",\n        },\n        OutputType = \"LogService\",\n        InputDetail = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"adjustTimezone\"] = false,\n            [\"delayAlarmBytes\"] = 0,\n            [\"delaySkipBytes\"] = 0,\n            [\"discardNonUtf8\"] = false,\n            [\"discardUnmatch\"] = true,\n            [\"dockerFile\"] = false,\n            [\"enableRawLog\"] = false,\n            [\"enableTag\"] = false,\n            [\"fileEncoding\"] = \"utf8\",\n            [\"filePattern\"] = \"access*.log\",\n            [\"filterKey\"] = new[]\n            {\n                \"key1\",\n            },\n            [\"filterRegex\"] = new[]\n            {\n                \"regex1\",\n            },\n            [\"key\"] = new[]\n            {\n                \"key1\",\n                \"key2\",\n            },\n            [\"localStorage\"] = true,\n            [\"logBeginRegex\"] = \".*\",\n            [\"logPath\"] = \"/var/log/httpd\",\n            [\"logTimezone\"] = \"\",\n            [\"logType\"] = \"common_reg_log\",\n            [\"maxDepth\"] = 1000,\n            [\"maxSendRate\"] = -1,\n            [\"mergeType\"] = \"topic\",\n            [\"preserve\"] = true,\n            [\"preserveDepth\"] = 0,\n            [\"priority\"] = 0,\n            [\"regex\"] = \"(w+)(s+)\",\n            [\"sendRateExpire\"] = 0,\n            [\"sensitive_keys\"] = new[]\n            {\n            },\n            [\"tailExisted\"] = false,\n            [\"timeFormat\"] = \"%Y/%m/%d %H:%M:%S\",\n            [\"timeKey\"] = \"time\",\n            [\"topicFormat\"] = \"none\",\n        }),\n        LogtailConfigName = \"tfaccsls62147\",\n        InputType = \"file\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sls\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfaccsls62147\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tprojectName := \"project-for-logtail-terraform\"\n\t\tif param := cfg.Get(\"projectName\"); param != \"\" {\n\t\t\tprojectName = param\n\t\t}\n\t\tdefaultuA28zS, err := log.NewProject(ctx, \"defaultuA28zS\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.String(projectName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"adjustTimezone\":  false,\n\t\t\t\"delayAlarmBytes\": 0,\n\t\t\t\"delaySkipBytes\":  0,\n\t\t\t\"discardNonUtf8\":  false,\n\t\t\t\"discardUnmatch\":  true,\n\t\t\t\"dockerFile\":      false,\n\t\t\t\"enableRawLog\":    false,\n\t\t\t\"enableTag\":       false,\n\t\t\t\"fileEncoding\":    \"utf8\",\n\t\t\t\"filePattern\":     \"access*.log\",\n\t\t\t\"filterKey\": []string{\n\t\t\t\t\"key1\",\n\t\t\t},\n\t\t\t\"filterRegex\": []string{\n\t\t\t\t\"regex1\",\n\t\t\t},\n\t\t\t\"key\": []string{\n\t\t\t\t\"key1\",\n\t\t\t\t\"key2\",\n\t\t\t},\n\t\t\t\"localStorage\":   true,\n\t\t\t\"logBeginRegex\":  \".*\",\n\t\t\t\"logPath\":        \"/var/log/httpd\",\n\t\t\t\"logTimezone\":    \"\",\n\t\t\t\"logType\":        \"common_reg_log\",\n\t\t\t\"maxDepth\":       1000,\n\t\t\t\"maxSendRate\":    -1,\n\t\t\t\"mergeType\":      \"topic\",\n\t\t\t\"preserve\":       true,\n\t\t\t\"preserveDepth\":  0,\n\t\t\t\"priority\":       0,\n\t\t\t\"regex\":          \"(w+)(s+)\",\n\t\t\t\"sendRateExpire\": 0,\n\t\t\t\"sensitive_keys\": []interface{}{},\n\t\t\t\"tailExisted\":    false,\n\t\t\t\"timeFormat\":     \"%Y/%m/%d %H:%M:%S\",\n\t\t\t\"timeKey\":        \"time\",\n\t\t\t\"topicFormat\":    \"none\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = sls.NewLogtailConfig(ctx, \"default\", \u0026sls.LogtailConfigArgs{\n\t\t\tProjectName: defaultuA28zS.ProjectName,\n\t\t\tOutputDetail: \u0026sls.LogtailConfigOutputDetailArgs{\n\t\t\t\tEndpoint:     pulumi.String(\"cn-hangzhou-intranet.log.aliyuncs.com\"),\n\t\t\t\tRegion:       pulumi.String(\"cn-hangzhou\"),\n\t\t\t\tLogstoreName: pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tOutputType:        pulumi.String(\"LogService\"),\n\t\t\tInputDetail:       pulumi.String(json0),\n\t\t\tLogtailConfigName: pulumi.String(\"tfaccsls62147\"),\n\t\t\tInputType:         pulumi.String(\"file\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.sls.LogtailConfig;\nimport com.pulumi.alicloud.sls.LogtailConfigArgs;\nimport com.pulumi.alicloud.sls.inputs.LogtailConfigOutputDetailArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"tfaccsls62147\");\n        final var projectName = config.get(\"projectName\").orElse(\"project-for-logtail-terraform\");\n        var defaultuA28zS = new Project(\"defaultuA28zS\", ProjectArgs.builder()\n            .projectName(projectName)\n            .build());\n\n        var defaultLogtailConfig = new LogtailConfig(\"defaultLogtailConfig\", LogtailConfigArgs.builder()\n            .projectName(defaultuA28zS.projectName())\n            .outputDetail(LogtailConfigOutputDetailArgs.builder()\n                .endpoint(\"cn-hangzhou-intranet.log.aliyuncs.com\")\n                .region(\"cn-hangzhou\")\n                .logstoreName(\"example\")\n                .build())\n            .outputType(\"LogService\")\n            .inputDetail(serializeJson(\n                jsonObject(\n                    jsonProperty(\"adjustTimezone\", false),\n                    jsonProperty(\"delayAlarmBytes\", 0),\n                    jsonProperty(\"delaySkipBytes\", 0),\n                    jsonProperty(\"discardNonUtf8\", false),\n                    jsonProperty(\"discardUnmatch\", true),\n                    jsonProperty(\"dockerFile\", false),\n                    jsonProperty(\"enableRawLog\", false),\n                    jsonProperty(\"enableTag\", false),\n                    jsonProperty(\"fileEncoding\", \"utf8\"),\n                    jsonProperty(\"filePattern\", \"access*.log\"),\n                    jsonProperty(\"filterKey\", jsonArray(\"key1\")),\n                    jsonProperty(\"filterRegex\", jsonArray(\"regex1\")),\n                    jsonProperty(\"key\", jsonArray(\n                        \"key1\", \n                        \"key2\"\n                    )),\n                    jsonProperty(\"localStorage\", true),\n                    jsonProperty(\"logBeginRegex\", \".*\"),\n                    jsonProperty(\"logPath\", \"/var/log/httpd\"),\n                    jsonProperty(\"logTimezone\", \"\"),\n                    jsonProperty(\"logType\", \"common_reg_log\"),\n                    jsonProperty(\"maxDepth\", 1000),\n                    jsonProperty(\"maxSendRate\", -1),\n                    jsonProperty(\"mergeType\", \"topic\"),\n                    jsonProperty(\"preserve\", true),\n                    jsonProperty(\"preserveDepth\", 0),\n                    jsonProperty(\"priority\", 0),\n                    jsonProperty(\"regex\", \"(w+)(s+)\"),\n                    jsonProperty(\"sendRateExpire\", 0),\n                    jsonProperty(\"sensitive_keys\", jsonArray(\n                    )),\n                    jsonProperty(\"tailExisted\", false),\n                    jsonProperty(\"timeFormat\", \"%Y/%m/%d %H:%M:%S\"),\n                    jsonProperty(\"timeKey\", \"time\"),\n                    jsonProperty(\"topicFormat\", \"none\")\n                )))\n            .logtailConfigName(\"tfaccsls62147\")\n            .inputType(\"file\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfaccsls62147\n  projectName:\n    type: string\n    default: project-for-logtail-terraform\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  defaultuA28zS:\n    type: alicloud:log:Project\n    properties:\n      projectName: ${projectName}\n  defaultLogtailConfig:\n    type: alicloud:sls:LogtailConfig\n    name: default\n    properties:\n      projectName: ${defaultuA28zS.projectName}\n      outputDetail:\n        endpoint: cn-hangzhou-intranet.log.aliyuncs.com\n        region: cn-hangzhou\n        logstoreName: example\n      outputType: LogService\n      inputDetail:\n        fn::toJSON:\n          adjustTimezone: false\n          delayAlarmBytes: 0\n          delaySkipBytes: 0\n          discardNonUtf8: false\n          discardUnmatch: true\n          dockerFile: false\n          enableRawLog: false\n          enableTag: false\n          fileEncoding: utf8\n          filePattern: access*.log\n          filterKey:\n            - key1\n          filterRegex:\n            - regex1\n          key:\n            - key1\n            - key2\n          localStorage: true\n          logBeginRegex: .*\n          logPath: /var/log/httpd\n          logTimezone: \"\"\n          logType: common_reg_log\n          maxDepth: 1000\n          maxSendRate: -1\n          mergeType: topic\n          preserve: true\n          preserveDepth: 0\n          priority: 0\n          regex: (w+)(s+)\n          sendRateExpire: 0\n          sensitive_keys: []\n          tailExisted: false\n          timeFormat: '%Y/%m/%d %H:%M:%S'\n          timeKey: time\n          topicFormat: none\n      logtailConfigName: tfaccsls62147\n      inputType: file\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog Service (SLS) Logtail Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sls/logtailConfig:LogtailConfig example \u003cproject_name\u003e:\u003clogtail_config_name\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"inputDetail":{"type":"string","description":"The detailed configuration entered by logtail.\n"},"inputType":{"type":"string","description":"Method of log entry\n"},"lastModifyTime":{"type":"integer","description":"Last modification time, unix timestamp\n"},"logSample":{"type":"string","description":"Sample log\n"},"logtailConfigName":{"type":"string","description":"The name of the resource\n"},"outputDetail":{"$ref":"#/types/alicloud:sls/LogtailConfigOutputDetail:LogtailConfigOutputDetail","description":"Detailed configuration of logtail output See \u003cspan pulumi-lang-nodejs=\"`outputDetail`\" pulumi-lang-dotnet=\"`OutputDetail`\" pulumi-lang-go=\"`outputDetail`\" pulumi-lang-python=\"`output_detail`\" pulumi-lang-yaml=\"`outputDetail`\" pulumi-lang-java=\"`outputDetail`\"\u003e`output_detail`\u003c/span\u003e below.\n"},"outputType":{"type":"string","description":"Log output mode. You can only upload data to log service.\n"},"projectName":{"type":"string","description":"Project name\n"}},"required":["createTime","lastModifyTime","logtailConfigName","projectName"],"inputProperties":{"createTime":{"type":"string","description":"The creation time of the resource\n","willReplaceOnChanges":true},"inputDetail":{"type":"string","description":"The detailed configuration entered by logtail.\n","willReplaceOnChanges":true},"inputType":{"type":"string","description":"Method of log entry\n","willReplaceOnChanges":true},"lastModifyTime":{"type":"integer","description":"Last modification time, unix timestamp\n","willReplaceOnChanges":true},"logSample":{"type":"string","description":"Sample log\n","willReplaceOnChanges":true},"logtailConfigName":{"type":"string","description":"The name of the resource\n","willReplaceOnChanges":true},"outputDetail":{"$ref":"#/types/alicloud:sls/LogtailConfigOutputDetail:LogtailConfigOutputDetail","description":"Detailed configuration of logtail output See \u003cspan pulumi-lang-nodejs=\"`outputDetail`\" pulumi-lang-dotnet=\"`OutputDetail`\" pulumi-lang-go=\"`outputDetail`\" pulumi-lang-python=\"`output_detail`\" pulumi-lang-yaml=\"`outputDetail`\" pulumi-lang-java=\"`outputDetail`\"\u003e`output_detail`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"outputType":{"type":"string","description":"Log output mode. You can only upload data to log service.\n","willReplaceOnChanges":true},"projectName":{"type":"string","description":"Project name\n","willReplaceOnChanges":true}},"requiredInputs":["projectName"],"stateInputs":{"description":"Input properties used for looking up and filtering LogtailConfig resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n","willReplaceOnChanges":true},"inputDetail":{"type":"string","description":"The detailed configuration entered by logtail.\n","willReplaceOnChanges":true},"inputType":{"type":"string","description":"Method of log entry\n","willReplaceOnChanges":true},"lastModifyTime":{"type":"integer","description":"Last modification time, unix timestamp\n","willReplaceOnChanges":true},"logSample":{"type":"string","description":"Sample log\n","willReplaceOnChanges":true},"logtailConfigName":{"type":"string","description":"The name of the resource\n","willReplaceOnChanges":true},"outputDetail":{"$ref":"#/types/alicloud:sls/LogtailConfigOutputDetail:LogtailConfigOutputDetail","description":"Detailed configuration of logtail output See \u003cspan pulumi-lang-nodejs=\"`outputDetail`\" pulumi-lang-dotnet=\"`OutputDetail`\" pulumi-lang-go=\"`outputDetail`\" pulumi-lang-python=\"`output_detail`\" pulumi-lang-yaml=\"`outputDetail`\" pulumi-lang-java=\"`outputDetail`\"\u003e`output_detail`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"outputType":{"type":"string","description":"Log output mode. You can only upload data to log service.\n","willReplaceOnChanges":true},"projectName":{"type":"string","description":"Project name\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:sls/logtailPipelineConfig:LogtailPipelineConfig":{"description":"Provides a Log Service (SLS) Logtail Pipeline Config resource.\n\nLogtail Pipeline Collection Configuration.\n\nFor information about Log Service (SLS) Logtail Pipeline Config and how to use it, see [What is Logtail Pipeline Config](https://next.api.alibabacloud.com/document/Sls/2020-12-30/CreateLogtailPipelineConfig).\n\n\u003e **NOTE:** Available since v1.273.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = new alicloud.log.Project(\"example\", {\n    projectName: `${name}-${_default.result}`,\n    description: \"terraform logtail pipeline config example\",\n});\nconst exampleStore = new alicloud.log.Store(\"example\", {\n    projectName: example.projectName,\n    logstoreName: \"example-store\",\n    shardCount: 2,\n    autoSplit: true,\n    maxSplitShardCount: 64,\n});\nconst exampleLogtailPipelineConfig = new alicloud.sls.LogtailPipelineConfig(\"example\", {\n    project: example.projectName,\n    configName: `${name}-${_default.result}`,\n    inputs: [{\n        Type: \"input_file\",\n        FilePaths: \"[\\\\\\\"/home/*.log\\\\\\\"]\",\n        EnableContainerDiscovery: \"false\",\n        MaxDirSearchDepth: \"0\",\n        FileEncoding: \"utf8\",\n    }],\n    processors: [{\n        Type: \"processor_parse_regex_native\",\n        SourceKey: \"content\",\n        Regex: \".*\",\n        Keys: \"[\\\\\\\"key1\\\\\\\",\\\\\\\"key2\\\\\\\"]\",\n    }],\n    flushers: [{\n        Type: \"flusher_sls\",\n        Logstore: exampleStore.logstoreName,\n        TelemetryType: \"logs\",\n        Region: \"cn-shanghai\",\n        Endpoint: \"cn-shanghai-intranet.log.aliyuncs.com\",\n    }],\n    aggregators: [{\n        Type: \"aggregator_default\",\n        MaxSizeBytes: \"1048576\",\n        MaxTimeSeconds: \"3\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.log.Project(\"example\",\n    project_name=f\"{name}-{default['result']}\",\n    description=\"terraform logtail pipeline config example\")\nexample_store = alicloud.log.Store(\"example\",\n    project_name=example.project_name,\n    logstore_name=\"example-store\",\n    shard_count=2,\n    auto_split=True,\n    max_split_shard_count=64)\nexample_logtail_pipeline_config = alicloud.sls.LogtailPipelineConfig(\"example\",\n    project=example.project_name,\n    config_name=f\"{name}-{default['result']}\",\n    inputs=[{\n        \"Type\": \"input_file\",\n        \"FilePaths\": \"[\\\\\\\"/home/*.log\\\\\\\"]\",\n        \"EnableContainerDiscovery\": \"false\",\n        \"MaxDirSearchDepth\": \"0\",\n        \"FileEncoding\": \"utf8\",\n    }],\n    processors=[{\n        \"Type\": \"processor_parse_regex_native\",\n        \"SourceKey\": \"content\",\n        \"Regex\": \".*\",\n        \"Keys\": \"[\\\\\\\"key1\\\\\\\",\\\\\\\"key2\\\\\\\"]\",\n    }],\n    flushers=[{\n        \"Type\": \"flusher_sls\",\n        \"Logstore\": example_store.logstore_name,\n        \"TelemetryType\": \"logs\",\n        \"Region\": \"cn-shanghai\",\n        \"Endpoint\": \"cn-shanghai-intranet.log.aliyuncs.com\",\n    }],\n    aggregators=[{\n        \"Type\": \"aggregator_default\",\n        \"MaxSizeBytes\": \"1048576\",\n        \"MaxTimeSeconds\": \"3\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = new AliCloud.Log.Project(\"example\", new()\n    {\n        ProjectName = $\"{name}-{@default.Result}\",\n        Description = \"terraform logtail pipeline config example\",\n    });\n\n    var exampleStore = new AliCloud.Log.Store(\"example\", new()\n    {\n        ProjectName = example.ProjectName,\n        LogstoreName = \"example-store\",\n        ShardCount = 2,\n        AutoSplit = true,\n        MaxSplitShardCount = 64,\n    });\n\n    var exampleLogtailPipelineConfig = new AliCloud.Sls.LogtailPipelineConfig(\"example\", new()\n    {\n        Project = example.ProjectName,\n        ConfigName = $\"{name}-{@default.Result}\",\n        Inputs = new[]\n        {\n            \n            {\n                { \"Type\", \"input_file\" },\n                { \"FilePaths\", \"[\\\\\\\"/home/*.log\\\\\\\"]\" },\n                { \"EnableContainerDiscovery\", \"false\" },\n                { \"MaxDirSearchDepth\", \"0\" },\n                { \"FileEncoding\", \"utf8\" },\n            },\n        },\n        Processors = new[]\n        {\n            \n            {\n                { \"Type\", \"processor_parse_regex_native\" },\n                { \"SourceKey\", \"content\" },\n                { \"Regex\", \".*\" },\n                { \"Keys\", \"[\\\\\\\"key1\\\\\\\",\\\\\\\"key2\\\\\\\"]\" },\n            },\n        },\n        Flushers = new[]\n        {\n            \n            {\n                { \"Type\", \"flusher_sls\" },\n                { \"Logstore\", exampleStore.LogstoreName },\n                { \"TelemetryType\", \"logs\" },\n                { \"Region\", \"cn-shanghai\" },\n                { \"Endpoint\", \"cn-shanghai-intranet.log.aliyuncs.com\" },\n            },\n        },\n        Aggregators = new[]\n        {\n            \n            {\n                { \"Type\", \"aggregator_default\" },\n                { \"MaxSizeBytes\", \"1048576\" },\n                { \"MaxTimeSeconds\", \"3\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sls\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tDescription: pulumi.String(\"terraform logtail pipeline config example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := log.NewStore(ctx, \"example\", \u0026log.StoreArgs{\n\t\t\tProjectName:        example.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(\"example-store\"),\n\t\t\tShardCount:         pulumi.Int(2),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(64),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sls.NewLogtailPipelineConfig(ctx, \"example\", \u0026sls.LogtailPipelineConfigArgs{\n\t\t\tProject:    example.ProjectName,\n\t\t\tConfigName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tInputs: pulumi.StringMapArray{\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"Type\":                     pulumi.String(\"input_file\"),\n\t\t\t\t\t\"FilePaths\":                pulumi.String(\"[\\\\\\\"/home/*.log\\\\\\\"]\"),\n\t\t\t\t\t\"EnableContainerDiscovery\": pulumi.String(\"false\"),\n\t\t\t\t\t\"MaxDirSearchDepth\":        pulumi.String(\"0\"),\n\t\t\t\t\t\"FileEncoding\":             pulumi.String(\"utf8\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProcessors: pulumi.StringMapArray{\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"Type\":      pulumi.String(\"processor_parse_regex_native\"),\n\t\t\t\t\t\"SourceKey\": pulumi.String(\"content\"),\n\t\t\t\t\t\"Regex\":     pulumi.String(\".*\"),\n\t\t\t\t\t\"Keys\":      pulumi.String(\"[\\\\\\\"key1\\\\\\\",\\\\\\\"key2\\\\\\\"]\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlushers: pulumi.StringMapArray{\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"Type\":          pulumi.String(\"flusher_sls\"),\n\t\t\t\t\t\"Logstore\":      exampleStore.LogstoreName,\n\t\t\t\t\t\"TelemetryType\": pulumi.String(\"logs\"),\n\t\t\t\t\t\"Region\":        pulumi.String(\"cn-shanghai\"),\n\t\t\t\t\t\"Endpoint\":      pulumi.String(\"cn-shanghai-intranet.log.aliyuncs.com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAggregators: pulumi.StringMapArray{\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"Type\":           pulumi.String(\"aggregator_default\"),\n\t\t\t\t\t\"MaxSizeBytes\":   pulumi.String(\"1048576\"),\n\t\t\t\t\t\"MaxTimeSeconds\": pulumi.String(\"3\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.sls.LogtailPipelineConfig;\nimport com.pulumi.alicloud.sls.LogtailPipelineConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .projectName(String.format(\"%s-%s\", name,default_.result()))\n            .description(\"terraform logtail pipeline config example\")\n            .build());\n\n        var exampleStore = new Store(\"exampleStore\", StoreArgs.builder()\n            .projectName(example.projectName())\n            .logstoreName(\"example-store\")\n            .shardCount(2)\n            .autoSplit(true)\n            .maxSplitShardCount(64)\n            .build());\n\n        var exampleLogtailPipelineConfig = new LogtailPipelineConfig(\"exampleLogtailPipelineConfig\", LogtailPipelineConfigArgs.builder()\n            .project(example.projectName())\n            .configName(String.format(\"%s-%s\", name,default_.result()))\n            .inputs(Map.ofEntries(\n                Map.entry(\"Type\", \"input_file\"),\n                Map.entry(\"FilePaths\", \"[\\\\\\\"/home/*.log\\\\\\\"]\"),\n                Map.entry(\"EnableContainerDiscovery\", \"false\"),\n                Map.entry(\"MaxDirSearchDepth\", \"0\"),\n                Map.entry(\"FileEncoding\", \"utf8\")\n            ))\n            .processors(Map.ofEntries(\n                Map.entry(\"Type\", \"processor_parse_regex_native\"),\n                Map.entry(\"SourceKey\", \"content\"),\n                Map.entry(\"Regex\", \".*\"),\n                Map.entry(\"Keys\", \"[\\\\\\\"key1\\\\\\\",\\\\\\\"key2\\\\\\\"]\")\n            ))\n            .flushers(Map.ofEntries(\n                Map.entry(\"Type\", \"flusher_sls\"),\n                Map.entry(\"Logstore\", exampleStore.logstoreName()),\n                Map.entry(\"TelemetryType\", \"logs\"),\n                Map.entry(\"Region\", \"cn-shanghai\"),\n                Map.entry(\"Endpoint\", \"cn-shanghai-intranet.log.aliyuncs.com\")\n            ))\n            .aggregators(Map.ofEntries(\n                Map.entry(\"Type\", \"aggregator_default\"),\n                Map.entry(\"MaxSizeBytes\", \"1048576\"),\n                Map.entry(\"MaxTimeSeconds\", \"3\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  example:\n    type: alicloud:log:Project\n    properties:\n      projectName: ${name}-${default.result}\n      description: terraform logtail pipeline config example\n  exampleStore:\n    type: alicloud:log:Store\n    name: example\n    properties:\n      projectName: ${example.projectName}\n      logstoreName: example-store\n      shardCount: 2\n      autoSplit: true\n      maxSplitShardCount: 64\n  exampleLogtailPipelineConfig:\n    type: alicloud:sls:LogtailPipelineConfig\n    name: example\n    properties:\n      project: ${example.projectName}\n      configName: ${name}-${default.result}\n      inputs:\n        - Type: input_file\n          FilePaths: '[\\\"/home/*.log\\\"]'\n          EnableContainerDiscovery: false\n          MaxDirSearchDepth: 0\n          FileEncoding: utf8\n      processors:\n        - Type: processor_parse_regex_native\n          SourceKey: content\n          Regex: .*\n          Keys: '[\\\"key1\\\",\\\"key2\\\"]'\n      flushers:\n        - Type: flusher_sls\n          Logstore: ${exampleStore.logstoreName}\n          TelemetryType: logs\n          Region: cn-shanghai\n          Endpoint: cn-shanghai-intranet.log.aliyuncs.com\n      aggregators:\n        - Type: aggregator_default\n          MaxSizeBytes: 1.048576e+06\n          MaxTimeSeconds: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog Service (SLS) Logtail Pipeline Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sls/logtailPipelineConfig:LogtailPipelineConfig example \u003cproject\u003e:\u003cconfig_name\u003e\n```\n\n","properties":{"aggregators":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"This property does not have a description in the spec, please add it before generating code. See \u003cspan pulumi-lang-nodejs=\"`aggregators`\" pulumi-lang-dotnet=\"`Aggregators`\" pulumi-lang-go=\"`aggregators`\" pulumi-lang-python=\"`aggregators`\" pulumi-lang-yaml=\"`aggregators`\" pulumi-lang-java=\"`aggregators`\"\u003e`aggregators`\u003c/span\u003e below.\n"},"configName":{"type":"string","description":"The name of the resource\n"},"flushers":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"This property does not have a description in the spec, please add it before generating code. See \u003cspan pulumi-lang-nodejs=\"`flushers`\" pulumi-lang-dotnet=\"`Flushers`\" pulumi-lang-go=\"`flushers`\" pulumi-lang-python=\"`flushers`\" pulumi-lang-yaml=\"`flushers`\" pulumi-lang-java=\"`flushers`\"\u003e`flushers`\u003c/span\u003e below.\n"},"globals":{"type":"object","additionalProperties":{"type":"string"},"description":"This property does not have a description in the spec, please add it before generating code.\n"},"inputs":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"The creation time of the resource See \u003cspan pulumi-lang-nodejs=\"`inputs`\" pulumi-lang-dotnet=\"`Inputs`\" pulumi-lang-go=\"`inputs`\" pulumi-lang-python=\"`inputs`\" pulumi-lang-yaml=\"`inputs`\" pulumi-lang-java=\"`inputs`\"\u003e`inputs`\u003c/span\u003e below.\n"},"logSample":{"type":"string","description":"This property does not have a description in the spec, please add it before generating code.\n"},"processors":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"This property does not have a description in the spec, please add it before generating code. See \u003cspan pulumi-lang-nodejs=\"`processors`\" pulumi-lang-dotnet=\"`Processors`\" pulumi-lang-go=\"`processors`\" pulumi-lang-python=\"`processors`\" pulumi-lang-yaml=\"`processors`\" pulumi-lang-java=\"`processors`\"\u003e`processors`\u003c/span\u003e below.\n"},"project":{"type":"string","description":"The first ID of the resource\n"},"task":{"type":"object","additionalProperties":{"type":"string"},"description":"This property does not have a description in the spec, please add it before generating code.\n"}},"required":["configName","flushers","inputs","project"],"inputProperties":{"aggregators":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"This property does not have a description in the spec, please add it before generating code. See \u003cspan pulumi-lang-nodejs=\"`aggregators`\" pulumi-lang-dotnet=\"`Aggregators`\" pulumi-lang-go=\"`aggregators`\" pulumi-lang-python=\"`aggregators`\" pulumi-lang-yaml=\"`aggregators`\" pulumi-lang-java=\"`aggregators`\"\u003e`aggregators`\u003c/span\u003e below.\n"},"configName":{"type":"string","description":"The name of the resource\n","willReplaceOnChanges":true},"flushers":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"This property does not have a description in the spec, please add it before generating code. See \u003cspan pulumi-lang-nodejs=\"`flushers`\" pulumi-lang-dotnet=\"`Flushers`\" pulumi-lang-go=\"`flushers`\" pulumi-lang-python=\"`flushers`\" pulumi-lang-yaml=\"`flushers`\" pulumi-lang-java=\"`flushers`\"\u003e`flushers`\u003c/span\u003e below.\n"},"globals":{"type":"object","additionalProperties":{"type":"string"},"description":"This property does not have a description in the spec, please add it before generating code.\n"},"inputs":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"The creation time of the resource See \u003cspan pulumi-lang-nodejs=\"`inputs`\" pulumi-lang-dotnet=\"`Inputs`\" pulumi-lang-go=\"`inputs`\" pulumi-lang-python=\"`inputs`\" pulumi-lang-yaml=\"`inputs`\" pulumi-lang-java=\"`inputs`\"\u003e`inputs`\u003c/span\u003e below.\n"},"logSample":{"type":"string","description":"This property does not have a description in the spec, please add it before generating code.\n"},"processors":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"This property does not have a description in the spec, please add it before generating code. See \u003cspan pulumi-lang-nodejs=\"`processors`\" pulumi-lang-dotnet=\"`Processors`\" pulumi-lang-go=\"`processors`\" pulumi-lang-python=\"`processors`\" pulumi-lang-yaml=\"`processors`\" pulumi-lang-java=\"`processors`\"\u003e`processors`\u003c/span\u003e below.\n"},"project":{"type":"string","description":"The first ID of the resource\n","willReplaceOnChanges":true},"task":{"type":"object","additionalProperties":{"type":"string"},"description":"This property does not have a description in the spec, please add it before generating code.\n"}},"requiredInputs":["configName","flushers","inputs","project"],"stateInputs":{"description":"Input properties used for looking up and filtering LogtailPipelineConfig resources.\n","properties":{"aggregators":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"This property does not have a description in the spec, please add it before generating code. See \u003cspan pulumi-lang-nodejs=\"`aggregators`\" pulumi-lang-dotnet=\"`Aggregators`\" pulumi-lang-go=\"`aggregators`\" pulumi-lang-python=\"`aggregators`\" pulumi-lang-yaml=\"`aggregators`\" pulumi-lang-java=\"`aggregators`\"\u003e`aggregators`\u003c/span\u003e below.\n"},"configName":{"type":"string","description":"The name of the resource\n","willReplaceOnChanges":true},"flushers":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"This property does not have a description in the spec, please add it before generating code. See \u003cspan pulumi-lang-nodejs=\"`flushers`\" pulumi-lang-dotnet=\"`Flushers`\" pulumi-lang-go=\"`flushers`\" pulumi-lang-python=\"`flushers`\" pulumi-lang-yaml=\"`flushers`\" pulumi-lang-java=\"`flushers`\"\u003e`flushers`\u003c/span\u003e below.\n"},"globals":{"type":"object","additionalProperties":{"type":"string"},"description":"This property does not have a description in the spec, please add it before generating code.\n"},"inputs":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"The creation time of the resource See \u003cspan pulumi-lang-nodejs=\"`inputs`\" pulumi-lang-dotnet=\"`Inputs`\" pulumi-lang-go=\"`inputs`\" pulumi-lang-python=\"`inputs`\" pulumi-lang-yaml=\"`inputs`\" pulumi-lang-java=\"`inputs`\"\u003e`inputs`\u003c/span\u003e below.\n"},"logSample":{"type":"string","description":"This property does not have a description in the spec, please add it before generating code.\n"},"processors":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"This property does not have a description in the spec, please add it before generating code. See \u003cspan pulumi-lang-nodejs=\"`processors`\" pulumi-lang-dotnet=\"`Processors`\" pulumi-lang-go=\"`processors`\" pulumi-lang-python=\"`processors`\" pulumi-lang-yaml=\"`processors`\" pulumi-lang-java=\"`processors`\"\u003e`processors`\u003c/span\u003e below.\n"},"project":{"type":"string","description":"The first ID of the resource\n","willReplaceOnChanges":true},"task":{"type":"object","additionalProperties":{"type":"string"},"description":"This property does not have a description in the spec, please add it before generating code.\n"}},"type":"object"}},"alicloud:sls/machineGroup:MachineGroup":{"description":"Provides a Log Service (SLS) Machine Group resource.\n\n\n\nFor information about Log Service (SLS) Machine Group and how to use it, see [What is Machine Group](https://next.api.alibabacloud.com/document/Sls/2020-12-30/CreateMachineGroup).\n\n\u003e **NOTE:** Available since v1.259.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst projectName = config.get(\"projectName\") || \"project-for-machine-group-terraform\";\nconst defaultyJqrue = new alicloud.log.Project(\"defaultyJqrue\", {\n    description: \"for terraform example\",\n    name: projectName,\n});\nconst _default = new alicloud.sls.MachineGroup(\"default\", {\n    groupName: \"group1\",\n    projectName: projectName,\n    machineIdentifyType: \"ip\",\n    groupAttribute: {\n        groupTopic: \"example\",\n        externalName: \"example\",\n    },\n    machineLists: [\"192.168.1.1\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nproject_name = config.get(\"projectName\")\nif project_name is None:\n    project_name = \"project-for-machine-group-terraform\"\ndefaulty_jqrue = alicloud.log.Project(\"defaultyJqrue\",\n    description=\"for terraform example\",\n    name=project_name)\ndefault = alicloud.sls.MachineGroup(\"default\",\n    group_name=\"group1\",\n    project_name=project_name,\n    machine_identify_type=\"ip\",\n    group_attribute={\n        \"group_topic\": \"example\",\n        \"external_name\": \"example\",\n    },\n    machine_lists=[\"192.168.1.1\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var projectName = config.Get(\"projectName\") ?? \"project-for-machine-group-terraform\";\n    var defaultyJqrue = new AliCloud.Log.Project(\"defaultyJqrue\", new()\n    {\n        Description = \"for terraform example\",\n        Name = projectName,\n    });\n\n    var @default = new AliCloud.Sls.MachineGroup(\"default\", new()\n    {\n        GroupName = \"group1\",\n        ProjectName = projectName,\n        MachineIdentifyType = \"ip\",\n        GroupAttribute = new AliCloud.Sls.Inputs.MachineGroupGroupAttributeArgs\n        {\n            GroupTopic = \"example\",\n            ExternalName = \"example\",\n        },\n        MachineLists = new[]\n        {\n            \"192.168.1.1\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sls\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tprojectName := \"project-for-machine-group-terraform\"\n\t\tif param := cfg.Get(\"projectName\"); param != \"\" {\n\t\t\tprojectName = param\n\t\t}\n\t\t_, err := log.NewProject(ctx, \"defaultyJqrue\", \u0026log.ProjectArgs{\n\t\t\tDescription: pulumi.String(\"for terraform example\"),\n\t\t\tName:        pulumi.String(projectName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sls.NewMachineGroup(ctx, \"default\", \u0026sls.MachineGroupArgs{\n\t\t\tGroupName:           pulumi.String(\"group1\"),\n\t\t\tProjectName:         pulumi.String(projectName),\n\t\t\tMachineIdentifyType: pulumi.String(\"ip\"),\n\t\t\tGroupAttribute: \u0026sls.MachineGroupGroupAttributeArgs{\n\t\t\t\tGroupTopic:   pulumi.String(\"example\"),\n\t\t\t\tExternalName: pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tMachineLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.1.1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.sls.MachineGroup;\nimport com.pulumi.alicloud.sls.MachineGroupArgs;\nimport com.pulumi.alicloud.sls.inputs.MachineGroupGroupAttributeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var projectName = config.get(\"projectName\").orElse(\"project-for-machine-group-terraform\");\n        var defaultyJqrue = new Project(\"defaultyJqrue\", ProjectArgs.builder()\n            .description(\"for terraform example\")\n            .name(projectName)\n            .build());\n\n        var default_ = new MachineGroup(\"default\", MachineGroupArgs.builder()\n            .groupName(\"group1\")\n            .projectName(projectName)\n            .machineIdentifyType(\"ip\")\n            .groupAttribute(MachineGroupGroupAttributeArgs.builder()\n                .groupTopic(\"example\")\n                .externalName(\"example\")\n                .build())\n            .machineLists(\"192.168.1.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  projectName:\n    type: string\n    default: project-for-machine-group-terraform\nresources:\n  defaultyJqrue:\n    type: alicloud:log:Project\n    properties:\n      description: for terraform example\n      name: ${projectName}\n  default:\n    type: alicloud:sls:MachineGroup\n    properties:\n      groupName: group1\n      projectName: ${projectName}\n      machineIdentifyType: ip\n      groupAttribute:\n        groupTopic: example\n        externalName: example\n      machineLists:\n        - 192.168.1.1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog Service (SLS) Machine Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sls/machineGroup:MachineGroup example \u003cproject_name\u003e:\u003cgroup_name\u003e\n```\n\n","properties":{"groupAttribute":{"$ref":"#/types/alicloud:sls/MachineGroupGroupAttribute:MachineGroupGroupAttribute","description":"Properties of machine groups. For details, please refer to the groupAttribute parameter description in the following table. See \u003cspan pulumi-lang-nodejs=\"`groupAttribute`\" pulumi-lang-dotnet=\"`GroupAttribute`\" pulumi-lang-go=\"`groupAttribute`\" pulumi-lang-python=\"`group_attribute`\" pulumi-lang-yaml=\"`groupAttribute`\" pulumi-lang-java=\"`groupAttribute`\"\u003e`group_attribute`\u003c/span\u003e below.\n"},"groupName":{"type":"string","description":"The name of the machine group. The name must meet the following requirements:\n\n- The name of each machine group in a project must be unique.\n- It can contain only lowercase letters, digits, hyphens (-), and underscores (\\_).\n- It must start and end with a lowercase letter or a digit.\n- It must be 3 to 128 characters in length.\n"},"groupType":{"type":"string","description":"The type of the machine group. Set the value to an empty string.\n"},"machineIdentifyType":{"type":"string","description":"The identifier type of the machine group. Valid values:\n\n- ip: The machine group uses IP addresses as identifiers.\n- userdefined: The machine group uses custom identifiers.\n"},"machineLists":{"type":"array","items":{"type":"string"},"description":"The identification information of the machine group.\n- If machineidentifiytype is configured to ip, enter the ip address of the server.\n- If machineidentifiytype is configured to userdefined, enter a custom identifier here.\n"},"projectName":{"type":"string","description":"The name of the project.\n"}},"required":["groupName","machineIdentifyType","machineLists","projectName"],"inputProperties":{"groupAttribute":{"$ref":"#/types/alicloud:sls/MachineGroupGroupAttribute:MachineGroupGroupAttribute","description":"Properties of machine groups. For details, please refer to the groupAttribute parameter description in the following table. See \u003cspan pulumi-lang-nodejs=\"`groupAttribute`\" pulumi-lang-dotnet=\"`GroupAttribute`\" pulumi-lang-go=\"`groupAttribute`\" pulumi-lang-python=\"`group_attribute`\" pulumi-lang-yaml=\"`groupAttribute`\" pulumi-lang-java=\"`groupAttribute`\"\u003e`group_attribute`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"groupName":{"type":"string","description":"The name of the machine group. The name must meet the following requirements:\n\n- The name of each machine group in a project must be unique.\n- It can contain only lowercase letters, digits, hyphens (-), and underscores (\\_).\n- It must start and end with a lowercase letter or a digit.\n- It must be 3 to 128 characters in length.\n","willReplaceOnChanges":true},"groupType":{"type":"string","description":"The type of the machine group. Set the value to an empty string.\n","willReplaceOnChanges":true},"machineIdentifyType":{"type":"string","description":"The identifier type of the machine group. Valid values:\n\n- ip: The machine group uses IP addresses as identifiers.\n- userdefined: The machine group uses custom identifiers.\n","willReplaceOnChanges":true},"machineLists":{"type":"array","items":{"type":"string"},"description":"The identification information of the machine group.\n- If machineidentifiytype is configured to ip, enter the ip address of the server.\n- If machineidentifiytype is configured to userdefined, enter a custom identifier here.\n","willReplaceOnChanges":true},"projectName":{"type":"string","description":"The name of the project.\n","willReplaceOnChanges":true}},"requiredInputs":["groupName","machineIdentifyType","machineLists","projectName"],"stateInputs":{"description":"Input properties used for looking up and filtering MachineGroup resources.\n","properties":{"groupAttribute":{"$ref":"#/types/alicloud:sls/MachineGroupGroupAttribute:MachineGroupGroupAttribute","description":"Properties of machine groups. For details, please refer to the groupAttribute parameter description in the following table. See \u003cspan pulumi-lang-nodejs=\"`groupAttribute`\" pulumi-lang-dotnet=\"`GroupAttribute`\" pulumi-lang-go=\"`groupAttribute`\" pulumi-lang-python=\"`group_attribute`\" pulumi-lang-yaml=\"`groupAttribute`\" pulumi-lang-java=\"`groupAttribute`\"\u003e`group_attribute`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"groupName":{"type":"string","description":"The name of the machine group. The name must meet the following requirements:\n\n- The name of each machine group in a project must be unique.\n- It can contain only lowercase letters, digits, hyphens (-), and underscores (\\_).\n- It must start and end with a lowercase letter or a digit.\n- It must be 3 to 128 characters in length.\n","willReplaceOnChanges":true},"groupType":{"type":"string","description":"The type of the machine group. Set the value to an empty string.\n","willReplaceOnChanges":true},"machineIdentifyType":{"type":"string","description":"The identifier type of the machine group. Valid values:\n\n- ip: The machine group uses IP addresses as identifiers.\n- userdefined: The machine group uses custom identifiers.\n","willReplaceOnChanges":true},"machineLists":{"type":"array","items":{"type":"string"},"description":"The identification information of the machine group.\n- If machineidentifiytype is configured to ip, enter the ip address of the server.\n- If machineidentifiytype is configured to userdefined, enter a custom identifier here.\n","willReplaceOnChanges":true},"projectName":{"type":"string","description":"The name of the project.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:sls/ossExportSink:OssExportSink":{"description":"Provides a Log Service (SLS) Oss Export Sink resource.\n\nOSS export task.\n\nFor information about Log Service (SLS) Oss Export Sink and how to use it, see [What is Oss Export Sink](https://www.alibabacloud.com/help/en/sls/developer-reference/api-sls-2020-12-30-createossexport).\n\n\u003e **NOTE:** Available since v1.237.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaulteyHJsO = new alicloud.log.Project(\"defaulteyHJsO\", {\n    description: \"terraform-oss-example-910\",\n    projectName: std.format({\n        input: \"%s1%s\",\n        args: [\n            name,\n            _default.result,\n        ],\n    }).then(invoke =\u003e invoke.result),\n});\nconst defaultxeHfXC = new alicloud.log.Store(\"defaultxeHfXC\", {\n    hotTtl: 8,\n    retentionPeriod: 30,\n    shardCount: 2,\n    projectName: defaulteyHJsO.projectName,\n    logstoreName: std.format({\n        input: \"%s1%s\",\n        args: [\n            name,\n            _default.result,\n        ],\n    }).then(invoke =\u003e invoke.result),\n});\nconst defaultiwj0xO = new alicloud.oss.Bucket(\"defaultiwj0xO\", {\n    bucket: std.format({\n        input: \"%s1%s\",\n        args: [\n            name,\n            _default.result,\n        ],\n    }).then(invoke =\u003e invoke.result),\n    storageClass: \"Standard\",\n});\nconst defaultOssExportSink = new alicloud.sls.OssExportSink(\"default\", {\n    project: defaulteyHJsO.projectName,\n    configuration: {\n        logstore: defaultxeHfXC.logstoreName,\n        roleArn: \"acs:ram::12345678901234567:role/aliyunlogdefaultrole\",\n        sink: {\n            bucket: defaultiwj0xO.bucket,\n            roleArn: \"acs:ram::12345678901234567:role/aliyunlogdefaultrole\",\n            timeZone: \"+0700\",\n            contentType: \"json\",\n            compressionType: \"none\",\n            contentDetail: JSON.stringify({\n                enableTag: false,\n            }),\n            bufferInterval: \"300\",\n            bufferSize: \"256\",\n            endpoint: \"https://oss-cn-shanghai-internal.aliyuncs.com\",\n        },\n        fromTime: 1732165733,\n        toTime: 1732166733,\n    },\n    jobName: \"export-oss-1731404933-00001\",\n    displayName: \"exampleterraform\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefaultey_hjs_o = alicloud.log.Project(\"defaulteyHJsO\",\n    description=\"terraform-oss-example-910\",\n    project_name=std.format(input=\"%s1%s\",\n        args=[\n            name,\n            default[\"result\"],\n        ]).result)\ndefaultxe_hf_xc = alicloud.log.Store(\"defaultxeHfXC\",\n    hot_ttl=8,\n    retention_period=30,\n    shard_count=2,\n    project_name=defaultey_hjs_o.project_name,\n    logstore_name=std.format(input=\"%s1%s\",\n        args=[\n            name,\n            default[\"result\"],\n        ]).result)\ndefaultiwj0x_o = alicloud.oss.Bucket(\"defaultiwj0xO\",\n    bucket=std.format(input=\"%s1%s\",\n        args=[\n            name,\n            default[\"result\"],\n        ]).result,\n    storage_class=\"Standard\")\ndefault_oss_export_sink = alicloud.sls.OssExportSink(\"default\",\n    project=defaultey_hjs_o.project_name,\n    configuration={\n        \"logstore\": defaultxe_hf_xc.logstore_name,\n        \"role_arn\": \"acs:ram::12345678901234567:role/aliyunlogdefaultrole\",\n        \"sink\": {\n            \"bucket\": defaultiwj0x_o.bucket,\n            \"role_arn\": \"acs:ram::12345678901234567:role/aliyunlogdefaultrole\",\n            \"time_zone\": \"+0700\",\n            \"content_type\": \"json\",\n            \"compression_type\": \"none\",\n            \"content_detail\": json.dumps({\n                \"enableTag\": False,\n            }),\n            \"buffer_interval\": \"300\",\n            \"buffer_size\": \"256\",\n            \"endpoint\": \"https://oss-cn-shanghai-internal.aliyuncs.com\",\n        },\n        \"from_time\": 1732165733,\n        \"to_time\": 1732166733,\n    },\n    job_name=\"export-oss-1731404933-00001\",\n    display_name=\"exampleterraform\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaulteyHJsO = new AliCloud.Log.Project(\"defaulteyHJsO\", new()\n    {\n        Description = \"terraform-oss-example-910\",\n        ProjectName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1%s\",\n            Args = new[]\n            {\n                name,\n                @default.Result,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultxeHfXC = new AliCloud.Log.Store(\"defaultxeHfXC\", new()\n    {\n        HotTtl = 8,\n        RetentionPeriod = 30,\n        ShardCount = 2,\n        ProjectName = defaulteyHJsO.ProjectName,\n        LogstoreName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1%s\",\n            Args = new[]\n            {\n                name,\n                @default.Result,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultiwj0xO = new AliCloud.Oss.Bucket(\"defaultiwj0xO\", new()\n    {\n        BucketName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1%s\",\n            Args = new[]\n            {\n                name,\n                @default.Result,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        StorageClass = \"Standard\",\n    });\n\n    var defaultOssExportSink = new AliCloud.Sls.OssExportSink(\"default\", new()\n    {\n        Project = defaulteyHJsO.ProjectName,\n        Configuration = new AliCloud.Sls.Inputs.OssExportSinkConfigurationArgs\n        {\n            Logstore = defaultxeHfXC.LogstoreName,\n            RoleArn = \"acs:ram::12345678901234567:role/aliyunlogdefaultrole\",\n            Sink = new AliCloud.Sls.Inputs.OssExportSinkConfigurationSinkArgs\n            {\n                Bucket = defaultiwj0xO.BucketName,\n                RoleArn = \"acs:ram::12345678901234567:role/aliyunlogdefaultrole\",\n                TimeZone = \"+0700\",\n                ContentType = \"json\",\n                CompressionType = \"none\",\n                ContentDetail = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"enableTag\"] = false,\n                }),\n                BufferInterval = \"300\",\n                BufferSize = \"256\",\n                Endpoint = \"https://oss-cn-shanghai-internal.aliyuncs.com\",\n            },\n            FromTime = 1732165733,\n            ToTime = 1732166733,\n        },\n        JobName = \"export-oss-1731404933-00001\",\n        DisplayName = \"exampleterraform\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sls\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\tname,\n\t\t\t\t_default.Result,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaulteyHJsO, err := log.NewProject(ctx, \"defaulteyHJsO\", \u0026log.ProjectArgs{\n\t\t\tDescription: pulumi.String(\"terraform-oss-example-910\"),\n\t\t\tProjectName: pulumi.String(invokeFormat.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\tname,\n\t\t\t\t_default.Result,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultxeHfXC, err := log.NewStore(ctx, \"defaultxeHfXC\", \u0026log.StoreArgs{\n\t\t\tHotTtl:          pulumi.Int(8),\n\t\t\tRetentionPeriod: pulumi.Int(30),\n\t\t\tShardCount:      pulumi.Int(2),\n\t\t\tProjectName:     defaulteyHJsO.ProjectName,\n\t\t\tLogstoreName:    pulumi.String(invokeFormat1.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat2, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1%s\",\n\t\t\tArgs: []interface{}{\n\t\t\t\tname,\n\t\t\t\t_default.Result,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultiwj0xO, err := oss.NewBucket(ctx, \"defaultiwj0xO\", \u0026oss.BucketArgs{\n\t\t\tBucket:       pulumi.String(invokeFormat2.Result),\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"enableTag\": false,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = sls.NewOssExportSink(ctx, \"default\", \u0026sls.OssExportSinkArgs{\n\t\t\tProject: defaulteyHJsO.ProjectName,\n\t\t\tConfiguration: \u0026sls.OssExportSinkConfigurationArgs{\n\t\t\t\tLogstore: defaultxeHfXC.LogstoreName,\n\t\t\t\tRoleArn:  pulumi.String(\"acs:ram::12345678901234567:role/aliyunlogdefaultrole\"),\n\t\t\t\tSink: \u0026sls.OssExportSinkConfigurationSinkArgs{\n\t\t\t\t\tBucket:          defaultiwj0xO.Bucket,\n\t\t\t\t\tRoleArn:         pulumi.String(\"acs:ram::12345678901234567:role/aliyunlogdefaultrole\"),\n\t\t\t\t\tTimeZone:        pulumi.String(\"+0700\"),\n\t\t\t\t\tContentType:     pulumi.String(\"json\"),\n\t\t\t\t\tCompressionType: pulumi.String(\"none\"),\n\t\t\t\t\tContentDetail:   pulumi.String(json0),\n\t\t\t\t\tBufferInterval:  pulumi.String(\"300\"),\n\t\t\t\t\tBufferSize:      pulumi.String(\"256\"),\n\t\t\t\t\tEndpoint:        pulumi.String(\"https://oss-cn-shanghai-internal.aliyuncs.com\"),\n\t\t\t\t},\n\t\t\t\tFromTime: pulumi.Int(1732165733),\n\t\t\t\tToTime:   pulumi.Int(1732166733),\n\t\t\t},\n\t\t\tJobName:     pulumi.String(\"export-oss-1731404933-00001\"),\n\t\t\tDisplayName: pulumi.String(\"exampleterraform\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.sls.OssExportSink;\nimport com.pulumi.alicloud.sls.OssExportSinkArgs;\nimport com.pulumi.alicloud.sls.inputs.OssExportSinkConfigurationArgs;\nimport com.pulumi.alicloud.sls.inputs.OssExportSinkConfigurationSinkArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaulteyHJsO = new Project(\"defaulteyHJsO\", ProjectArgs.builder()\n            .description(\"terraform-oss-example-910\")\n            .projectName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1%s\")\n                .args(                \n                    name,\n                    default_.result())\n                .build()).result())\n            .build());\n\n        var defaultxeHfXC = new Store(\"defaultxeHfXC\", StoreArgs.builder()\n            .hotTtl(8)\n            .retentionPeriod(30)\n            .shardCount(2)\n            .projectName(defaulteyHJsO.projectName())\n            .logstoreName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1%s\")\n                .args(                \n                    name,\n                    default_.result())\n                .build()).result())\n            .build());\n\n        var defaultiwj0xO = new Bucket(\"defaultiwj0xO\", BucketArgs.builder()\n            .bucket(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1%s\")\n                .args(                \n                    name,\n                    default_.result())\n                .build()).result())\n            .storageClass(\"Standard\")\n            .build());\n\n        var defaultOssExportSink = new OssExportSink(\"defaultOssExportSink\", OssExportSinkArgs.builder()\n            .project(defaulteyHJsO.projectName())\n            .configuration(OssExportSinkConfigurationArgs.builder()\n                .logstore(defaultxeHfXC.logstoreName())\n                .roleArn(\"acs:ram::12345678901234567:role/aliyunlogdefaultrole\")\n                .sink(OssExportSinkConfigurationSinkArgs.builder()\n                    .bucket(defaultiwj0xO.bucket())\n                    .roleArn(\"acs:ram::12345678901234567:role/aliyunlogdefaultrole\")\n                    .timeZone(\"+0700\")\n                    .contentType(\"json\")\n                    .compressionType(\"none\")\n                    .contentDetail(serializeJson(\n                        jsonObject(\n                            jsonProperty(\"enableTag\", false)\n                        )))\n                    .bufferInterval(\"300\")\n                    .bufferSize(\"256\")\n                    .endpoint(\"https://oss-cn-shanghai-internal.aliyuncs.com\")\n                    .build())\n                .fromTime(1732165733)\n                .toTime(1732166733)\n                .build())\n            .jobName(\"export-oss-1731404933-00001\")\n            .displayName(\"exampleterraform\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaulteyHJsO:\n    type: alicloud:log:Project\n    properties:\n      description: terraform-oss-example-910\n      projectName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1%s'\n            args:\n              - ${name}\n              - ${default.result}\n          return: result\n  defaultxeHfXC:\n    type: alicloud:log:Store\n    properties:\n      hotTtl: '8'\n      retentionPeriod: '30'\n      shardCount: '2'\n      projectName: ${defaulteyHJsO.projectName}\n      logstoreName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1%s'\n            args:\n              - ${name}\n              - ${default.result}\n          return: result\n  defaultiwj0xO:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1%s'\n            args:\n              - ${name}\n              - ${default.result}\n          return: result\n      storageClass: Standard\n  defaultOssExportSink:\n    type: alicloud:sls:OssExportSink\n    name: default\n    properties:\n      project: ${defaulteyHJsO.projectName}\n      configuration:\n        logstore: ${defaultxeHfXC.logstoreName}\n        roleArn: acs:ram::12345678901234567:role/aliyunlogdefaultrole\n        sink:\n          bucket: ${defaultiwj0xO.bucket}\n          roleArn: acs:ram::12345678901234567:role/aliyunlogdefaultrole\n          timeZone: '+0700'\n          contentType: json\n          compressionType: none\n          contentDetail:\n            fn::toJSON:\n              enableTag: false\n          bufferInterval: '300'\n          bufferSize: '256'\n          endpoint: https://oss-cn-shanghai-internal.aliyuncs.com\n        fromTime: '1732165733'\n        toTime: '1732166733'\n      jobName: export-oss-1731404933-00001\n      displayName: exampleterraform\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog Service (SLS) Oss Export Sink can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sls/ossExportSink:OssExportSink example \u003cproject\u003e:\u003cjob_name\u003e\n```\n\n","properties":{"configuration":{"$ref":"#/types/alicloud:sls/OssExportSinkConfiguration:OssExportSinkConfiguration","description":"OSSExportConfiguration See \u003cspan pulumi-lang-nodejs=\"`configuration`\" pulumi-lang-dotnet=\"`Configuration`\" pulumi-lang-go=\"`configuration`\" pulumi-lang-python=\"`configuration`\" pulumi-lang-yaml=\"`configuration`\" pulumi-lang-java=\"`configuration`\"\u003e`configuration`\u003c/span\u003e below.\n"},"createTime":{"type":"integer","description":"Creation time. Example value: 1718787534\n"},"description":{"type":"string","description":"The description of the job.\n"},"displayName":{"type":"string","description":"The display name of the job.\n"},"jobName":{"type":"string","description":"The unique identifier of the OSS data shipping job.\n"},"project":{"type":"string","description":"The name of the project.\n"},"status":{"type":"string","description":"The status of the post task. Example value: RUNNING\n"}},"required":["configuration","createTime","displayName","jobName","project","status"],"inputProperties":{"configuration":{"$ref":"#/types/alicloud:sls/OssExportSinkConfiguration:OssExportSinkConfiguration","description":"OSSExportConfiguration See \u003cspan pulumi-lang-nodejs=\"`configuration`\" pulumi-lang-dotnet=\"`Configuration`\" pulumi-lang-go=\"`configuration`\" pulumi-lang-python=\"`configuration`\" pulumi-lang-yaml=\"`configuration`\" pulumi-lang-java=\"`configuration`\"\u003e`configuration`\u003c/span\u003e below.\n"},"description":{"type":"string","description":"The description of the job.\n"},"displayName":{"type":"string","description":"The display name of the job.\n"},"jobName":{"type":"string","description":"The unique identifier of the OSS data shipping job.\n","willReplaceOnChanges":true},"project":{"type":"string","description":"The name of the project.\n","willReplaceOnChanges":true}},"requiredInputs":["configuration","displayName","jobName","project"],"stateInputs":{"description":"Input properties used for looking up and filtering OssExportSink resources.\n","properties":{"configuration":{"$ref":"#/types/alicloud:sls/OssExportSinkConfiguration:OssExportSinkConfiguration","description":"OSSExportConfiguration See \u003cspan pulumi-lang-nodejs=\"`configuration`\" pulumi-lang-dotnet=\"`Configuration`\" pulumi-lang-go=\"`configuration`\" pulumi-lang-python=\"`configuration`\" pulumi-lang-yaml=\"`configuration`\" pulumi-lang-java=\"`configuration`\"\u003e`configuration`\u003c/span\u003e below.\n"},"createTime":{"type":"integer","description":"Creation time. Example value: 1718787534\n"},"description":{"type":"string","description":"The description of the job.\n"},"displayName":{"type":"string","description":"The display name of the job.\n"},"jobName":{"type":"string","description":"The unique identifier of the OSS data shipping job.\n","willReplaceOnChanges":true},"project":{"type":"string","description":"The name of the project.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the post task. Example value: RUNNING\n"}},"type":"object"}},"alicloud:sls/scheduledSql:ScheduledSql":{"description":"Provides a Log Service (SLS) Scheduled Sql resource.\n\nScheduled SQL task.\n\nFor information about Log Service (SLS) Scheduled Sql and how to use it, see [What is Scheduled Sql](https://www.alibabacloud.com/help/zh/sls/developer-reference/api-sls-2020-12-30-createscheduledsql).\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultKIe4KV = new alicloud.log.Project(\"defaultKIe4KV\", {\n    description: `${name}-${_default.result}`,\n    projectName: `${name}-${_default.result}`,\n});\nconst default1LI9we = new alicloud.log.Store(\"default1LI9we\", {\n    hotTtl: 8,\n    retentionPeriod: 30,\n    shardCount: 2,\n    projectName: defaultKIe4KV.projectName,\n    logstoreName: `${name}-${_default.result}`,\n});\nconst defaultScheduledSql = new alicloud.sls.ScheduledSql(\"default\", {\n    description: \"example-tf-scheduled-sql-0006\",\n    schedule: {\n        type: \"Cron\",\n        timeZone: \"+0700\",\n        delay: 20,\n        cronExpression: \"0 0/1 * * *\",\n    },\n    displayName: \"example-tf-scheduled-sql-0006\",\n    scheduledSqlConfiguration: {\n        script: \"* | select * from log\",\n        sqlType: \"searchQuery\",\n        destEndpoint: \"ap-northeast-1.log.aliyuncs.com\",\n        destProject: \"job-e2e-project-jj78kur-ap-southeast-1\",\n        sourceLogstore: default1LI9we.logstoreName,\n        destLogstore: \"example-open-api02\",\n        roleArn: \"acs:ram::1395894005868720:role/aliyunlogetlrole\",\n        destRoleArn: \"acs:ram::1395894005868720:role/aliyunlogetlrole\",\n        fromTimeExpr: \"@m-1m\",\n        toTimeExpr: \"@m\",\n        maxRunTimeInSeconds: 1800,\n        resourcePool: \"enhanced\",\n        maxRetries: 5,\n        fromTime: 1713196800,\n        toTime: 0,\n        dataFormat: \"log2log\",\n    },\n    scheduledSqlName: name,\n    project: defaultKIe4KV.projectName,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_k_ie4_kv = alicloud.log.Project(\"defaultKIe4KV\",\n    description=f\"{name}-{default['result']}\",\n    project_name=f\"{name}-{default['result']}\")\ndefault1_li9we = alicloud.log.Store(\"default1LI9we\",\n    hot_ttl=8,\n    retention_period=30,\n    shard_count=2,\n    project_name=default_k_ie4_kv.project_name,\n    logstore_name=f\"{name}-{default['result']}\")\ndefault_scheduled_sql = alicloud.sls.ScheduledSql(\"default\",\n    description=\"example-tf-scheduled-sql-0006\",\n    schedule={\n        \"type\": \"Cron\",\n        \"time_zone\": \"+0700\",\n        \"delay\": 20,\n        \"cron_expression\": \"0 0/1 * * *\",\n    },\n    display_name=\"example-tf-scheduled-sql-0006\",\n    scheduled_sql_configuration={\n        \"script\": \"* | select * from log\",\n        \"sql_type\": \"searchQuery\",\n        \"dest_endpoint\": \"ap-northeast-1.log.aliyuncs.com\",\n        \"dest_project\": \"job-e2e-project-jj78kur-ap-southeast-1\",\n        \"source_logstore\": default1_li9we.logstore_name,\n        \"dest_logstore\": \"example-open-api02\",\n        \"role_arn\": \"acs:ram::1395894005868720:role/aliyunlogetlrole\",\n        \"dest_role_arn\": \"acs:ram::1395894005868720:role/aliyunlogetlrole\",\n        \"from_time_expr\": \"@m-1m\",\n        \"to_time_expr\": \"@m\",\n        \"max_run_time_in_seconds\": 1800,\n        \"resource_pool\": \"enhanced\",\n        \"max_retries\": 5,\n        \"from_time\": 1713196800,\n        \"to_time\": 0,\n        \"data_format\": \"log2log\",\n    },\n    scheduled_sql_name=name,\n    project=default_k_ie4_kv.project_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultKIe4KV = new AliCloud.Log.Project(\"defaultKIe4KV\", new()\n    {\n        Description = $\"{name}-{@default.Result}\",\n        ProjectName = $\"{name}-{@default.Result}\",\n    });\n\n    var default1LI9we = new AliCloud.Log.Store(\"default1LI9we\", new()\n    {\n        HotTtl = 8,\n        RetentionPeriod = 30,\n        ShardCount = 2,\n        ProjectName = defaultKIe4KV.ProjectName,\n        LogstoreName = $\"{name}-{@default.Result}\",\n    });\n\n    var defaultScheduledSql = new AliCloud.Sls.ScheduledSql(\"default\", new()\n    {\n        Description = \"example-tf-scheduled-sql-0006\",\n        Schedule = new AliCloud.Sls.Inputs.ScheduledSqlScheduleArgs\n        {\n            Type = \"Cron\",\n            TimeZone = \"+0700\",\n            Delay = 20,\n            CronExpression = \"0 0/1 * * *\",\n        },\n        DisplayName = \"example-tf-scheduled-sql-0006\",\n        ScheduledSqlConfiguration = new AliCloud.Sls.Inputs.ScheduledSqlScheduledSqlConfigurationArgs\n        {\n            Script = \"* | select * from log\",\n            SqlType = \"searchQuery\",\n            DestEndpoint = \"ap-northeast-1.log.aliyuncs.com\",\n            DestProject = \"job-e2e-project-jj78kur-ap-southeast-1\",\n            SourceLogstore = default1LI9we.LogstoreName,\n            DestLogstore = \"example-open-api02\",\n            RoleArn = \"acs:ram::1395894005868720:role/aliyunlogetlrole\",\n            DestRoleArn = \"acs:ram::1395894005868720:role/aliyunlogetlrole\",\n            FromTimeExpr = \"@m-1m\",\n            ToTimeExpr = \"@m\",\n            MaxRunTimeInSeconds = 1800,\n            ResourcePool = \"enhanced\",\n            MaxRetries = 5,\n            FromTime = 1713196800,\n            ToTime = 0,\n            DataFormat = \"log2log\",\n        },\n        ScheduledSqlName = name,\n        Project = defaultKIe4KV.ProjectName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sls\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultKIe4KV, err := log.NewProject(ctx, \"defaultKIe4KV\", \u0026log.ProjectArgs{\n\t\t\tDescription: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tProjectName: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1LI9we, err := log.NewStore(ctx, \"default1LI9we\", \u0026log.StoreArgs{\n\t\t\tHotTtl:          pulumi.Int(8),\n\t\t\tRetentionPeriod: pulumi.Int(30),\n\t\t\tShardCount:      pulumi.Int(2),\n\t\t\tProjectName:     defaultKIe4KV.ProjectName,\n\t\t\tLogstoreName:    pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sls.NewScheduledSql(ctx, \"default\", \u0026sls.ScheduledSqlArgs{\n\t\t\tDescription: pulumi.String(\"example-tf-scheduled-sql-0006\"),\n\t\t\tSchedule: \u0026sls.ScheduledSqlScheduleArgs{\n\t\t\t\tType:           pulumi.String(\"Cron\"),\n\t\t\t\tTimeZone:       pulumi.String(\"+0700\"),\n\t\t\t\tDelay:          pulumi.Int(20),\n\t\t\t\tCronExpression: pulumi.String(\"0 0/1 * * *\"),\n\t\t\t},\n\t\t\tDisplayName: pulumi.String(\"example-tf-scheduled-sql-0006\"),\n\t\t\tScheduledSqlConfiguration: \u0026sls.ScheduledSqlScheduledSqlConfigurationArgs{\n\t\t\t\tScript:              pulumi.String(\"* | select * from log\"),\n\t\t\t\tSqlType:             pulumi.String(\"searchQuery\"),\n\t\t\t\tDestEndpoint:        pulumi.String(\"ap-northeast-1.log.aliyuncs.com\"),\n\t\t\t\tDestProject:         pulumi.String(\"job-e2e-project-jj78kur-ap-southeast-1\"),\n\t\t\t\tSourceLogstore:      default1LI9we.LogstoreName,\n\t\t\t\tDestLogstore:        pulumi.String(\"example-open-api02\"),\n\t\t\t\tRoleArn:             pulumi.String(\"acs:ram::1395894005868720:role/aliyunlogetlrole\"),\n\t\t\t\tDestRoleArn:         pulumi.String(\"acs:ram::1395894005868720:role/aliyunlogetlrole\"),\n\t\t\t\tFromTimeExpr:        pulumi.String(\"@m-1m\"),\n\t\t\t\tToTimeExpr:          pulumi.String(\"@m\"),\n\t\t\t\tMaxRunTimeInSeconds: pulumi.Int(1800),\n\t\t\t\tResourcePool:        pulumi.String(\"enhanced\"),\n\t\t\t\tMaxRetries:          pulumi.Int(5),\n\t\t\t\tFromTime:            pulumi.Int(1713196800),\n\t\t\t\tToTime:              pulumi.Int(0),\n\t\t\t\tDataFormat:          pulumi.String(\"log2log\"),\n\t\t\t},\n\t\t\tScheduledSqlName: pulumi.String(name),\n\t\t\tProject:          defaultKIe4KV.ProjectName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.sls.ScheduledSql;\nimport com.pulumi.alicloud.sls.ScheduledSqlArgs;\nimport com.pulumi.alicloud.sls.inputs.ScheduledSqlScheduleArgs;\nimport com.pulumi.alicloud.sls.inputs.ScheduledSqlScheduledSqlConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultKIe4KV = new Project(\"defaultKIe4KV\", ProjectArgs.builder()\n            .description(String.format(\"%s-%s\", name,default_.result()))\n            .projectName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var default1LI9we = new Store(\"default1LI9we\", StoreArgs.builder()\n            .hotTtl(8)\n            .retentionPeriod(30)\n            .shardCount(2)\n            .projectName(defaultKIe4KV.projectName())\n            .logstoreName(String.format(\"%s-%s\", name,default_.result()))\n            .build());\n\n        var defaultScheduledSql = new ScheduledSql(\"defaultScheduledSql\", ScheduledSqlArgs.builder()\n            .description(\"example-tf-scheduled-sql-0006\")\n            .schedule(ScheduledSqlScheduleArgs.builder()\n                .type(\"Cron\")\n                .timeZone(\"+0700\")\n                .delay(20)\n                .cronExpression(\"0 0/1 * * *\")\n                .build())\n            .displayName(\"example-tf-scheduled-sql-0006\")\n            .scheduledSqlConfiguration(ScheduledSqlScheduledSqlConfigurationArgs.builder()\n                .script(\"* | select * from log\")\n                .sqlType(\"searchQuery\")\n                .destEndpoint(\"ap-northeast-1.log.aliyuncs.com\")\n                .destProject(\"job-e2e-project-jj78kur-ap-southeast-1\")\n                .sourceLogstore(default1LI9we.logstoreName())\n                .destLogstore(\"example-open-api02\")\n                .roleArn(\"acs:ram::1395894005868720:role/aliyunlogetlrole\")\n                .destRoleArn(\"acs:ram::1395894005868720:role/aliyunlogetlrole\")\n                .fromTimeExpr(\"@m-1m\")\n                .toTimeExpr(\"@m\")\n                .maxRunTimeInSeconds(1800)\n                .resourcePool(\"enhanced\")\n                .maxRetries(5)\n                .fromTime(1713196800)\n                .toTime(0)\n                .dataFormat(\"log2log\")\n                .build())\n            .scheduledSqlName(name)\n            .project(defaultKIe4KV.projectName())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultKIe4KV:\n    type: alicloud:log:Project\n    properties:\n      description: ${name}-${default.result}\n      projectName: ${name}-${default.result}\n  default1LI9we:\n    type: alicloud:log:Store\n    properties:\n      hotTtl: '8'\n      retentionPeriod: '30'\n      shardCount: '2'\n      projectName: ${defaultKIe4KV.projectName}\n      logstoreName: ${name}-${default.result}\n  defaultScheduledSql:\n    type: alicloud:sls:ScheduledSql\n    name: default\n    properties:\n      description: example-tf-scheduled-sql-0006\n      schedule:\n        type: Cron\n        timeZone: '+0700'\n        delay: '20'\n        cronExpression: 0 0/1 * * *\n      displayName: example-tf-scheduled-sql-0006\n      scheduledSqlConfiguration:\n        script: '* | select * from log'\n        sqlType: searchQuery\n        destEndpoint: ap-northeast-1.log.aliyuncs.com\n        destProject: job-e2e-project-jj78kur-ap-southeast-1\n        sourceLogstore: ${default1LI9we.logstoreName}\n        destLogstore: example-open-api02\n        roleArn: acs:ram::1395894005868720:role/aliyunlogetlrole\n        destRoleArn: acs:ram::1395894005868720:role/aliyunlogetlrole\n        fromTimeExpr: '@m-1m'\n        toTimeExpr: '@m'\n        maxRunTimeInSeconds: '1800'\n        resourcePool: enhanced\n        maxRetries: '5'\n        fromTime: '1713196800'\n        toTime: '0'\n        dataFormat: log2log\n      scheduledSqlName: ${name}\n      project: ${defaultKIe4KV.projectName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nLog Service (SLS) Scheduled Sql can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sls/scheduledSql:ScheduledSql example \u003cproject\u003e:\u003cscheduled_sql_name\u003e\n```\n\n","properties":{"description":{"type":"string","description":"Job description.\n"},"displayName":{"type":"string","description":"Task display name.\n"},"project":{"type":"string","description":"A short description of struct.\n"},"schedule":{"$ref":"#/types/alicloud:sls/ScheduledSqlSchedule:ScheduledSqlSchedule","description":"Schedule type. This field generally does not need to be specified. If you have strict scheduling requirements—for example, running an import job every Monday at 8:00 AM—you can use a cron expression. See \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e below.\n"},"scheduledSqlConfiguration":{"$ref":"#/types/alicloud:sls/ScheduledSqlScheduledSqlConfiguration:ScheduledSqlScheduledSqlConfiguration","description":"Task configuration. See \u003cspan pulumi-lang-nodejs=\"`scheduledSqlConfiguration`\" pulumi-lang-dotnet=\"`ScheduledSqlConfiguration`\" pulumi-lang-go=\"`scheduledSqlConfiguration`\" pulumi-lang-python=\"`scheduled_sql_configuration`\" pulumi-lang-yaml=\"`scheduledSqlConfiguration`\" pulumi-lang-java=\"`scheduledSqlConfiguration`\"\u003e`scheduled_sql_configuration`\u003c/span\u003e below.\n"},"scheduledSqlName":{"type":"string","description":"The job name. The naming rules are as follows:\n- Job names must be unique within the same project.\n- The name can contain only lowercase letters, digits, hyphens (-), and underscores (_).\n- The name must start and end with a lowercase letter or digit.\n- The length must be between 2 and 64 characters.\n"},"status":{"type":"string","description":"The status of the scheduled SQL job.\n"}},"required":["displayName","project","schedule","scheduledSqlConfiguration","scheduledSqlName","status"],"inputProperties":{"description":{"type":"string","description":"Job description.\n"},"displayName":{"type":"string","description":"Task display name.\n"},"project":{"type":"string","description":"A short description of struct.\n","willReplaceOnChanges":true},"schedule":{"$ref":"#/types/alicloud:sls/ScheduledSqlSchedule:ScheduledSqlSchedule","description":"Schedule type. This field generally does not need to be specified. If you have strict scheduling requirements—for example, running an import job every Monday at 8:00 AM—you can use a cron expression. See \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"scheduledSqlConfiguration":{"$ref":"#/types/alicloud:sls/ScheduledSqlScheduledSqlConfiguration:ScheduledSqlScheduledSqlConfiguration","description":"Task configuration. See \u003cspan pulumi-lang-nodejs=\"`scheduledSqlConfiguration`\" pulumi-lang-dotnet=\"`ScheduledSqlConfiguration`\" pulumi-lang-go=\"`scheduledSqlConfiguration`\" pulumi-lang-python=\"`scheduled_sql_configuration`\" pulumi-lang-yaml=\"`scheduledSqlConfiguration`\" pulumi-lang-java=\"`scheduledSqlConfiguration`\"\u003e`scheduled_sql_configuration`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"scheduledSqlName":{"type":"string","description":"The job name. The naming rules are as follows:\n- Job names must be unique within the same project.\n- The name can contain only lowercase letters, digits, hyphens (-), and underscores (_).\n- The name must start and end with a lowercase letter or digit.\n- The length must be between 2 and 64 characters.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the scheduled SQL job.\n"}},"requiredInputs":["displayName","project","schedule","scheduledSqlConfiguration","scheduledSqlName"],"stateInputs":{"description":"Input properties used for looking up and filtering ScheduledSql resources.\n","properties":{"description":{"type":"string","description":"Job description.\n"},"displayName":{"type":"string","description":"Task display name.\n"},"project":{"type":"string","description":"A short description of struct.\n","willReplaceOnChanges":true},"schedule":{"$ref":"#/types/alicloud:sls/ScheduledSqlSchedule:ScheduledSqlSchedule","description":"Schedule type. This field generally does not need to be specified. If you have strict scheduling requirements—for example, running an import job every Monday at 8:00 AM—you can use a cron expression. See \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"scheduledSqlConfiguration":{"$ref":"#/types/alicloud:sls/ScheduledSqlScheduledSqlConfiguration:ScheduledSqlScheduledSqlConfiguration","description":"Task configuration. See \u003cspan pulumi-lang-nodejs=\"`scheduledSqlConfiguration`\" pulumi-lang-dotnet=\"`ScheduledSqlConfiguration`\" pulumi-lang-go=\"`scheduledSqlConfiguration`\" pulumi-lang-python=\"`scheduled_sql_configuration`\" pulumi-lang-yaml=\"`scheduledSqlConfiguration`\" pulumi-lang-java=\"`scheduledSqlConfiguration`\"\u003e`scheduled_sql_configuration`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"scheduledSqlName":{"type":"string","description":"The job name. The naming rules are as follows:\n- Job names must be unique within the same project.\n- The name can contain only lowercase letters, digits, hyphens (-), and underscores (_).\n- The name must start and end with a lowercase letter or digit.\n- The length must be between 2 and 64 characters.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the scheduled SQL job.\n"}},"type":"object"}},"alicloud:sms/shortUrl:ShortUrl":{"description":"Provides a SMS Short Url resource.\n\nFor information about SMS Short Url and how to use it, see [What is Short Url](https://next.api.alibabacloud.com/api/Dysmsapi/2017-05-25/AddShortUrl).\n\n\u003e **NOTE:** Available since v1.178.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.sms.ShortUrl(\"example\", {\n    effectiveDays: 30,\n    shortUrlName: \"example_value\",\n    sourceUrl: \"example_value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.sms.ShortUrl(\"example\",\n    effective_days=30,\n    short_url_name=\"example_value\",\n    source_url=\"example_value\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Sms.ShortUrl(\"example\", new()\n    {\n        EffectiveDays = 30,\n        ShortUrlName = \"example_value\",\n        SourceUrl = \"example_value\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sms.NewShortUrl(ctx, \"example\", \u0026sms.ShortUrlArgs{\n\t\t\tEffectiveDays: pulumi.Int(30),\n\t\t\tShortUrlName:  pulumi.String(\"example_value\"),\n\t\t\tSourceUrl:     pulumi.String(\"example_value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sms.ShortUrl;\nimport com.pulumi.alicloud.sms.ShortUrlArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ShortUrl(\"example\", ShortUrlArgs.builder()\n            .effectiveDays(30)\n            .shortUrlName(\"example_value\")\n            .sourceUrl(\"example_value\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:sms:ShortUrl\n    properties:\n      effectiveDays: 30\n      shortUrlName: example_value\n      sourceUrl: example_value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSMS Short Url can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sms/shortUrl:ShortUrl example \u003cid\u003e\n```\n\n","properties":{"effectiveDays":{"type":"integer","description":"Short chain service use validity period. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`90`\" pulumi-lang-dotnet=\"`90`\" pulumi-lang-go=\"`90`\" pulumi-lang-python=\"`90`\" pulumi-lang-yaml=\"`90`\" pulumi-lang-java=\"`90`\"\u003e`90`\u003c/span\u003e. The unit is days, and the maximum validity period is 90 days.\n"},"shortUrlName":{"type":"string","description":"The name of the resource.\n"},"sourceUrl":{"type":"string","description":"The original link address.\n"},"status":{"type":"string","description":"Short chain status.\n"}},"required":["effectiveDays","shortUrlName","sourceUrl","status"],"inputProperties":{"effectiveDays":{"type":"integer","description":"Short chain service use validity period. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`90`\" pulumi-lang-dotnet=\"`90`\" pulumi-lang-go=\"`90`\" pulumi-lang-python=\"`90`\" pulumi-lang-yaml=\"`90`\" pulumi-lang-java=\"`90`\"\u003e`90`\u003c/span\u003e. The unit is days, and the maximum validity period is 90 days.\n","willReplaceOnChanges":true},"shortUrlName":{"type":"string","description":"The name of the resource.\n","willReplaceOnChanges":true},"sourceUrl":{"type":"string","description":"The original link address.\n","willReplaceOnChanges":true}},"requiredInputs":["effectiveDays","shortUrlName","sourceUrl"],"stateInputs":{"description":"Input properties used for looking up and filtering ShortUrl resources.\n","properties":{"effectiveDays":{"type":"integer","description":"Short chain service use validity period. Valid values: \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`90`\" pulumi-lang-dotnet=\"`90`\" pulumi-lang-go=\"`90`\" pulumi-lang-python=\"`90`\" pulumi-lang-yaml=\"`90`\" pulumi-lang-java=\"`90`\"\u003e`90`\u003c/span\u003e. The unit is days, and the maximum validity period is 90 days.\n","willReplaceOnChanges":true},"shortUrlName":{"type":"string","description":"The name of the resource.\n","willReplaceOnChanges":true},"sourceUrl":{"type":"string","description":"The original link address.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Short chain status.\n"}},"type":"object"}},"alicloud:sslcertificatesservice/pcaCertificate:PcaCertificate":{"description":"Provides a SSL Certificates Pca Certificate resource.\n\n\n\nFor information about SSL Certificates Pca Certificate and how to use it, see [What is Pca Certificate](https://next.api.alibabacloud.com/document/cas/2020-06-30/CreateRootCACertificate).\n\n\u003e **NOTE:** Available since v1.257.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.sslcertificatesservicepca.Certificate(\"default\", {\n    organization: \"a\",\n    years: 1,\n    locality: \"a\",\n    organizationUnit: \"a\",\n    state: \"a\",\n    countryCode: \"cn\",\n    commonName: \"cbc.certqa.cn\",\n    algorithm: \"RSA_2048\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.sslcertificatesservicepca.Certificate(\"default\",\n    organization=\"a\",\n    years=1,\n    locality=\"a\",\n    organization_unit=\"a\",\n    state=\"a\",\n    country_code=\"cn\",\n    common_name=\"cbc.certqa.cn\",\n    algorithm=\"RSA_2048\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.SslCertificatesServicePca.Certificate(\"default\", new()\n    {\n        Organization = \"a\",\n        Years = 1,\n        Locality = \"a\",\n        OrganizationUnit = \"a\",\n        State = \"a\",\n        CountryCode = \"cn\",\n        CommonName = \"cbc.certqa.cn\",\n        Algorithm = \"RSA_2048\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sslcertificatesservicepca\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sslcertificatesservicepca.NewCertificate(ctx, \"default\", \u0026sslcertificatesservicepca.CertificateArgs{\n\t\t\tOrganization:     pulumi.String(\"a\"),\n\t\t\tYears:            pulumi.Int(1),\n\t\t\tLocality:         pulumi.String(\"a\"),\n\t\t\tOrganizationUnit: pulumi.String(\"a\"),\n\t\t\tState:            pulumi.String(\"a\"),\n\t\t\tCountryCode:      pulumi.String(\"cn\"),\n\t\t\tCommonName:       pulumi.String(\"cbc.certqa.cn\"),\n\t\t\tAlgorithm:        pulumi.String(\"RSA_2048\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sslcertificatesservicepca.Certificate;\nimport com.pulumi.alicloud.sslcertificatesservicepca.CertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Certificate(\"default\", CertificateArgs.builder()\n            .organization(\"a\")\n            .years(1)\n            .locality(\"a\")\n            .organizationUnit(\"a\")\n            .state(\"a\")\n            .countryCode(\"cn\")\n            .commonName(\"cbc.certqa.cn\")\n            .algorithm(\"RSA_2048\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:sslcertificatesservicepca:Certificate\n    properties:\n      organization: a\n      years: '1'\n      locality: a\n      organizationUnit: a\n      state: a\n      countryCode: cn\n      commonName: cbc.certqa.cn\n      algorithm: RSA_2048\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSSL Certificates Pca Certificate can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sslcertificatesservice/pcaCertificate:PcaCertificate example \u003cid\u003e\n```\n\n","properties":{"algorithm":{"type":"string","description":"The key algorithm type of the CA certificate. The key algorithm is in the \u003cencryption algorithm\u003e_\u003ckey length\u003e format. Valid values:\n- `RSA_1024`: The corresponding signature algorithm is Sha256WithRSA.\n- `RSA_2048`: The corresponding signature algorithm is Sha256WithRSA.\n- `RSA_4096`: The corresponding signature algorithm is Sha256WithRSA.\n- `ECC_256`: The signature algorithm is Sha256WithECDSA.\n- `ECC_384`: The corresponding signature algorithm is Sha256WithECDSA.\n- `ECC_512`: The signature algorithm is Sha256WithECDSA.\n- `SM2_256`: The corresponding signature algorithm is SM3WithSM2.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`, \u003cspan pulumi-lang-nodejs=\"`algorithm`\" pulumi-lang-dotnet=\"`Algorithm`\" pulumi-lang-go=\"`algorithm`\" pulumi-lang-python=\"`algorithm`\" pulumi-lang-yaml=\"`algorithm`\" pulumi-lang-java=\"`algorithm`\"\u003e`algorithm`\u003c/span\u003e is required.\n"},"aliasName":{"type":"string","description":"A custom alias for the certificate, used to define a user-friendly name.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"certificateType":{"type":"string","description":"The type of the CA certificate. Default value: `ROOT`. Valid values:\n- `ROOT`: A root CA certificate.\n- `SUB_ROOT`: A subordinate CA certificate.\n"},"commonName":{"type":"string","description":"The common name or abbreviation of the organization. Support the use of Chinese, English characters.\n"},"countryCode":{"type":"string","description":"The code of the country or region in which the organization is located, using a two-digit capital abbreviation. For example, `CN` represents China and `US` represents the United States.\n"},"crlDay":{"type":"integer","description":"The validity period for the CRL, in days. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e. **Note:** \u003cspan pulumi-lang-nodejs=\"`crlDay`\" pulumi-lang-dotnet=\"`CrlDay`\" pulumi-lang-go=\"`crlDay`\" pulumi-lang-python=\"`crl_day`\" pulumi-lang-yaml=\"`crlDay`\" pulumi-lang-java=\"`crlDay`\"\u003e`crl_day`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n"},"enableCrl":{"type":"boolean","description":"This setting turns the Certificate Revocation List (CRL) service on or off. Valid values:\n"},"extendedKeyUsages":{"type":"array","items":{"type":"string"},"description":"The extended key usages. **Note:** \u003cspan pulumi-lang-nodejs=\"`extendedKeyUsages`\" pulumi-lang-dotnet=\"`ExtendedKeyUsages`\" pulumi-lang-go=\"`extendedKeyUsages`\" pulumi-lang-python=\"`extended_key_usages`\" pulumi-lang-yaml=\"`extendedKeyUsages`\" pulumi-lang-java=\"`extendedKeyUsages`\"\u003e`extended_key_usages`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n"},"locality":{"type":"string","description":"Name of the city where the organization is located. Support the use of Chinese, English characters.\n"},"organization":{"type":"string","description":"The name of the organization (corresponding to your enterprise or company) associated with the CA certificate. Support the use of Chinese, English characters.\n"},"organizationUnit":{"type":"string","description":"The name of the department or branch under the organization. Support the use of Chinese, English characters.\n"},"parentIdentifier":{"type":"string","description":"The unique identifier of the root CA certificate.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`, \u003cspan pulumi-lang-nodejs=\"`parentIdentifier`\" pulumi-lang-dotnet=\"`ParentIdentifier`\" pulumi-lang-go=\"`parentIdentifier`\" pulumi-lang-python=\"`parent_identifier`\" pulumi-lang-yaml=\"`parentIdentifier`\" pulumi-lang-java=\"`parentIdentifier`\"\u003e`parent_identifier`\u003c/span\u003e is required.\n"},"pathLenConstraint":{"type":"integer","description":"The certificate path length. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. **Note:** \u003cspan pulumi-lang-nodejs=\"`pathLenConstraint`\" pulumi-lang-dotnet=\"`PathLenConstraint`\" pulumi-lang-go=\"`pathLenConstraint`\" pulumi-lang-python=\"`path_len_constraint`\" pulumi-lang-yaml=\"`pathLenConstraint`\" pulumi-lang-java=\"`pathLenConstraint`\"\u003e`path_len_constraint`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n"},"resourceGroupId":{"type":"string","description":"A resource property field representing the resource group.\n"},"state":{"type":"string","description":"The name of the province, municipality, or autonomous region in which the organization is located. Support the use of Chinese, English characters.\n"},"status":{"type":"string","description":"The status of the CA certificate.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"years":{"type":"integer","description":"The validity period of the CA certificate, in years.\n\u003e **NOTE:**  It is recommended to set to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e years.\n"}},"required":["algorithm","certificateType","commonName","crlDay","locality","organization","organizationUnit","resourceGroupId","state","status","years"],"inputProperties":{"algorithm":{"type":"string","description":"The key algorithm type of the CA certificate. The key algorithm is in the \u003cencryption algorithm\u003e_\u003ckey length\u003e format. Valid values:\n- `RSA_1024`: The corresponding signature algorithm is Sha256WithRSA.\n- `RSA_2048`: The corresponding signature algorithm is Sha256WithRSA.\n- `RSA_4096`: The corresponding signature algorithm is Sha256WithRSA.\n- `ECC_256`: The signature algorithm is Sha256WithECDSA.\n- `ECC_384`: The corresponding signature algorithm is Sha256WithECDSA.\n- `ECC_512`: The signature algorithm is Sha256WithECDSA.\n- `SM2_256`: The corresponding signature algorithm is SM3WithSM2.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`, \u003cspan pulumi-lang-nodejs=\"`algorithm`\" pulumi-lang-dotnet=\"`Algorithm`\" pulumi-lang-go=\"`algorithm`\" pulumi-lang-python=\"`algorithm`\" pulumi-lang-yaml=\"`algorithm`\" pulumi-lang-java=\"`algorithm`\"\u003e`algorithm`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"aliasName":{"type":"string","description":"A custom alias for the certificate, used to define a user-friendly name.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"certificateType":{"type":"string","description":"The type of the CA certificate. Default value: `ROOT`. Valid values:\n- `ROOT`: A root CA certificate.\n- `SUB_ROOT`: A subordinate CA certificate.\n","willReplaceOnChanges":true},"commonName":{"type":"string","description":"The common name or abbreviation of the organization. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"countryCode":{"type":"string","description":"The code of the country or region in which the organization is located, using a two-digit capital abbreviation. For example, `CN` represents China and `US` represents the United States.\n","willReplaceOnChanges":true},"crlDay":{"type":"integer","description":"The validity period for the CRL, in days. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e. **Note:** \u003cspan pulumi-lang-nodejs=\"`crlDay`\" pulumi-lang-dotnet=\"`CrlDay`\" pulumi-lang-go=\"`crlDay`\" pulumi-lang-python=\"`crl_day`\" pulumi-lang-yaml=\"`crlDay`\" pulumi-lang-java=\"`crlDay`\"\u003e`crl_day`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n","willReplaceOnChanges":true},"enableCrl":{"type":"boolean","description":"This setting turns the Certificate Revocation List (CRL) service on or off. Valid values:\n"},"extendedKeyUsages":{"type":"array","items":{"type":"string"},"description":"The extended key usages. **Note:** \u003cspan pulumi-lang-nodejs=\"`extendedKeyUsages`\" pulumi-lang-dotnet=\"`ExtendedKeyUsages`\" pulumi-lang-go=\"`extendedKeyUsages`\" pulumi-lang-python=\"`extended_key_usages`\" pulumi-lang-yaml=\"`extendedKeyUsages`\" pulumi-lang-java=\"`extendedKeyUsages`\"\u003e`extended_key_usages`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n"},"locality":{"type":"string","description":"Name of the city where the organization is located. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"organization":{"type":"string","description":"The name of the organization (corresponding to your enterprise or company) associated with the CA certificate. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"organizationUnit":{"type":"string","description":"The name of the department or branch under the organization. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"parentIdentifier":{"type":"string","description":"The unique identifier of the root CA certificate.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`, \u003cspan pulumi-lang-nodejs=\"`parentIdentifier`\" pulumi-lang-dotnet=\"`ParentIdentifier`\" pulumi-lang-go=\"`parentIdentifier`\" pulumi-lang-python=\"`parent_identifier`\" pulumi-lang-yaml=\"`parentIdentifier`\" pulumi-lang-java=\"`parentIdentifier`\"\u003e`parent_identifier`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"pathLenConstraint":{"type":"integer","description":"The certificate path length. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. **Note:** \u003cspan pulumi-lang-nodejs=\"`pathLenConstraint`\" pulumi-lang-dotnet=\"`PathLenConstraint`\" pulumi-lang-go=\"`pathLenConstraint`\" pulumi-lang-python=\"`path_len_constraint`\" pulumi-lang-yaml=\"`pathLenConstraint`\" pulumi-lang-java=\"`pathLenConstraint`\"\u003e`path_len_constraint`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n"},"resourceGroupId":{"type":"string","description":"A resource property field representing the resource group.\n"},"state":{"type":"string","description":"The name of the province, municipality, or autonomous region in which the organization is located. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"years":{"type":"integer","description":"The validity period of the CA certificate, in years.\n\u003e **NOTE:**  It is recommended to set to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e years.\n","willReplaceOnChanges":true}},"requiredInputs":["commonName","locality","organization","organizationUnit","state","years"],"stateInputs":{"description":"Input properties used for looking up and filtering PcaCertificate resources.\n","properties":{"algorithm":{"type":"string","description":"The key algorithm type of the CA certificate. The key algorithm is in the \u003cencryption algorithm\u003e_\u003ckey length\u003e format. Valid values:\n- `RSA_1024`: The corresponding signature algorithm is Sha256WithRSA.\n- `RSA_2048`: The corresponding signature algorithm is Sha256WithRSA.\n- `RSA_4096`: The corresponding signature algorithm is Sha256WithRSA.\n- `ECC_256`: The signature algorithm is Sha256WithECDSA.\n- `ECC_384`: The corresponding signature algorithm is Sha256WithECDSA.\n- `ECC_512`: The signature algorithm is Sha256WithECDSA.\n- `SM2_256`: The corresponding signature algorithm is SM3WithSM2.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`, \u003cspan pulumi-lang-nodejs=\"`algorithm`\" pulumi-lang-dotnet=\"`Algorithm`\" pulumi-lang-go=\"`algorithm`\" pulumi-lang-python=\"`algorithm`\" pulumi-lang-yaml=\"`algorithm`\" pulumi-lang-java=\"`algorithm`\"\u003e`algorithm`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"aliasName":{"type":"string","description":"A custom alias for the certificate, used to define a user-friendly name.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"certificateType":{"type":"string","description":"The type of the CA certificate. Default value: `ROOT`. Valid values:\n- `ROOT`: A root CA certificate.\n- `SUB_ROOT`: A subordinate CA certificate.\n","willReplaceOnChanges":true},"commonName":{"type":"string","description":"The common name or abbreviation of the organization. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"countryCode":{"type":"string","description":"The code of the country or region in which the organization is located, using a two-digit capital abbreviation. For example, `CN` represents China and `US` represents the United States.\n","willReplaceOnChanges":true},"crlDay":{"type":"integer","description":"The validity period for the CRL, in days. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e. **Note:** \u003cspan pulumi-lang-nodejs=\"`crlDay`\" pulumi-lang-dotnet=\"`CrlDay`\" pulumi-lang-go=\"`crlDay`\" pulumi-lang-python=\"`crl_day`\" pulumi-lang-yaml=\"`crlDay`\" pulumi-lang-java=\"`crlDay`\"\u003e`crl_day`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n","willReplaceOnChanges":true},"enableCrl":{"type":"boolean","description":"This setting turns the Certificate Revocation List (CRL) service on or off. Valid values:\n"},"extendedKeyUsages":{"type":"array","items":{"type":"string"},"description":"The extended key usages. **Note:** \u003cspan pulumi-lang-nodejs=\"`extendedKeyUsages`\" pulumi-lang-dotnet=\"`ExtendedKeyUsages`\" pulumi-lang-go=\"`extendedKeyUsages`\" pulumi-lang-python=\"`extended_key_usages`\" pulumi-lang-yaml=\"`extendedKeyUsages`\" pulumi-lang-java=\"`extendedKeyUsages`\"\u003e`extended_key_usages`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n"},"locality":{"type":"string","description":"Name of the city where the organization is located. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"organization":{"type":"string","description":"The name of the organization (corresponding to your enterprise or company) associated with the CA certificate. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"organizationUnit":{"type":"string","description":"The name of the department or branch under the organization. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"parentIdentifier":{"type":"string","description":"The unique identifier of the root CA certificate.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`, \u003cspan pulumi-lang-nodejs=\"`parentIdentifier`\" pulumi-lang-dotnet=\"`ParentIdentifier`\" pulumi-lang-go=\"`parentIdentifier`\" pulumi-lang-python=\"`parent_identifier`\" pulumi-lang-yaml=\"`parentIdentifier`\" pulumi-lang-java=\"`parentIdentifier`\"\u003e`parent_identifier`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"pathLenConstraint":{"type":"integer","description":"The certificate path length. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. **Note:** \u003cspan pulumi-lang-nodejs=\"`pathLenConstraint`\" pulumi-lang-dotnet=\"`PathLenConstraint`\" pulumi-lang-go=\"`pathLenConstraint`\" pulumi-lang-python=\"`path_len_constraint`\" pulumi-lang-yaml=\"`pathLenConstraint`\" pulumi-lang-java=\"`pathLenConstraint`\"\u003e`path_len_constraint`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n"},"resourceGroupId":{"type":"string","description":"A resource property field representing the resource group.\n"},"state":{"type":"string","description":"The name of the province, municipality, or autonomous region in which the organization is located. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the CA certificate.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"years":{"type":"integer","description":"The validity period of the CA certificate, in years.\n\u003e **NOTE:**  It is recommended to set to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e years.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"alicloud.sslcertificatesservice/pcacertificate.PcaCertificate has been deprecated in favor of alicloud.sslcertificatesservicepca/certificate.Certificate"},"alicloud:sslcertificatesservicepca/cert:Cert":{"description":"Provides a SSL Certificates Pca Cert resource.\n\n\n\nFor information about SSL Certificates Pca Cert and how to use it, see [What is Pca Cert](https://next.api.alibabacloud.com/document/cas/2020-06-30/CreateClientCertificate).\n\n\u003e **NOTE:** Available since v1.270.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst root = new alicloud.sslcertificatesservicepca.Certificate(\"root\", {\n    organization: \"a\",\n    years: 1,\n    locality: \"a\",\n    organizationUnit: \"a\",\n    state: \"a\",\n    commonName: \"cbc.certqa.cn\",\n});\nconst sub = new alicloud.sslcertificatesservicepca.Certificate(\"sub\", {\n    parentIdentifier: root.id,\n    organization: \"a\",\n    years: 1,\n    locality: \"a\",\n    organizationUnit: \"a\",\n    state: \"a\",\n    commonName: \"cbc.certqa.cn\",\n    algorithm: \"RSA_2048\",\n    certificateType: \"SUB_ROOT\",\n    enableCrl: true,\n});\nconst _default = new alicloud.sslcertificatesservicepca.Cert(\"default\", {\n    immediately: 0,\n    organization: \"terraform\",\n    years: 1,\n    uploadFlag: 0,\n    locality: \"terraform\",\n    months: 1,\n    customIdentifier: \"181\",\n    algorithm: \"RSA_2048\",\n    parentIdentifier: sub.id,\n    sanValue: \"somebody@example.com\",\n    enableCrl: 1,\n    organizationUnit: \"aliyun\",\n    state: \"Beijing\",\n    beforeTime: 1767948807,\n    days: 1,\n    sanType: \"1\",\n    afterTime: 1768035207,\n    countryCode: \"cn\",\n    commonName: \"exampleTerraform\",\n    aliasName: \"AliasName\",\n    status: \"ISSUE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nroot = alicloud.sslcertificatesservicepca.Certificate(\"root\",\n    organization=\"a\",\n    years=1,\n    locality=\"a\",\n    organization_unit=\"a\",\n    state=\"a\",\n    common_name=\"cbc.certqa.cn\")\nsub = alicloud.sslcertificatesservicepca.Certificate(\"sub\",\n    parent_identifier=root.id,\n    organization=\"a\",\n    years=1,\n    locality=\"a\",\n    organization_unit=\"a\",\n    state=\"a\",\n    common_name=\"cbc.certqa.cn\",\n    algorithm=\"RSA_2048\",\n    certificate_type=\"SUB_ROOT\",\n    enable_crl=True)\ndefault = alicloud.sslcertificatesservicepca.Cert(\"default\",\n    immediately=0,\n    organization=\"terraform\",\n    years=1,\n    upload_flag=0,\n    locality=\"terraform\",\n    months=1,\n    custom_identifier=\"181\",\n    algorithm=\"RSA_2048\",\n    parent_identifier=sub.id,\n    san_value=\"somebody@example.com\",\n    enable_crl=1,\n    organization_unit=\"aliyun\",\n    state=\"Beijing\",\n    before_time=1767948807,\n    days=1,\n    san_type=\"1\",\n    after_time=1768035207,\n    country_code=\"cn\",\n    common_name=\"exampleTerraform\",\n    alias_name=\"AliasName\",\n    status=\"ISSUE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var root = new AliCloud.SslCertificatesServicePca.Certificate(\"root\", new()\n    {\n        Organization = \"a\",\n        Years = 1,\n        Locality = \"a\",\n        OrganizationUnit = \"a\",\n        State = \"a\",\n        CommonName = \"cbc.certqa.cn\",\n    });\n\n    var sub = new AliCloud.SslCertificatesServicePca.Certificate(\"sub\", new()\n    {\n        ParentIdentifier = root.Id,\n        Organization = \"a\",\n        Years = 1,\n        Locality = \"a\",\n        OrganizationUnit = \"a\",\n        State = \"a\",\n        CommonName = \"cbc.certqa.cn\",\n        Algorithm = \"RSA_2048\",\n        CertificateType = \"SUB_ROOT\",\n        EnableCrl = true,\n    });\n\n    var @default = new AliCloud.SslCertificatesServicePca.Cert(\"default\", new()\n    {\n        Immediately = 0,\n        Organization = \"terraform\",\n        Years = 1,\n        UploadFlag = 0,\n        Locality = \"terraform\",\n        Months = 1,\n        CustomIdentifier = \"181\",\n        Algorithm = \"RSA_2048\",\n        ParentIdentifier = sub.Id,\n        SanValue = \"somebody@example.com\",\n        EnableCrl = 1,\n        OrganizationUnit = \"aliyun\",\n        State = \"Beijing\",\n        BeforeTime = 1767948807,\n        Days = 1,\n        SanType = \"1\",\n        AfterTime = 1768035207,\n        CountryCode = \"cn\",\n        CommonName = \"exampleTerraform\",\n        AliasName = \"AliasName\",\n        Status = \"ISSUE\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sslcertificatesservicepca\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\troot, err := sslcertificatesservicepca.NewCertificate(ctx, \"root\", \u0026sslcertificatesservicepca.CertificateArgs{\n\t\t\tOrganization:     pulumi.String(\"a\"),\n\t\t\tYears:            pulumi.Int(1),\n\t\t\tLocality:         pulumi.String(\"a\"),\n\t\t\tOrganizationUnit: pulumi.String(\"a\"),\n\t\t\tState:            pulumi.String(\"a\"),\n\t\t\tCommonName:       pulumi.String(\"cbc.certqa.cn\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsub, err := sslcertificatesservicepca.NewCertificate(ctx, \"sub\", \u0026sslcertificatesservicepca.CertificateArgs{\n\t\t\tParentIdentifier: root.ID(),\n\t\t\tOrganization:     pulumi.String(\"a\"),\n\t\t\tYears:            pulumi.Int(1),\n\t\t\tLocality:         pulumi.String(\"a\"),\n\t\t\tOrganizationUnit: pulumi.String(\"a\"),\n\t\t\tState:            pulumi.String(\"a\"),\n\t\t\tCommonName:       pulumi.String(\"cbc.certqa.cn\"),\n\t\t\tAlgorithm:        pulumi.String(\"RSA_2048\"),\n\t\t\tCertificateType:  pulumi.String(\"SUB_ROOT\"),\n\t\t\tEnableCrl:        pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sslcertificatesservicepca.NewCert(ctx, \"default\", \u0026sslcertificatesservicepca.CertArgs{\n\t\t\tImmediately:      pulumi.Int(0),\n\t\t\tOrganization:     pulumi.String(\"terraform\"),\n\t\t\tYears:            pulumi.Int(1),\n\t\t\tUploadFlag:       pulumi.Int(0),\n\t\t\tLocality:         pulumi.String(\"terraform\"),\n\t\t\tMonths:           pulumi.Int(1),\n\t\t\tCustomIdentifier: pulumi.String(\"181\"),\n\t\t\tAlgorithm:        pulumi.String(\"RSA_2048\"),\n\t\t\tParentIdentifier: sub.ID(),\n\t\t\tSanValue:         pulumi.String(\"somebody@example.com\"),\n\t\t\tEnableCrl:        pulumi.Int(1),\n\t\t\tOrganizationUnit: pulumi.String(\"aliyun\"),\n\t\t\tState:            pulumi.String(\"Beijing\"),\n\t\t\tBeforeTime:       pulumi.Int(1767948807),\n\t\t\tDays:             pulumi.Int(1),\n\t\t\tSanType:          pulumi.String(\"1\"),\n\t\t\tAfterTime:        pulumi.Int(1768035207),\n\t\t\tCountryCode:      pulumi.String(\"cn\"),\n\t\t\tCommonName:       pulumi.String(\"exampleTerraform\"),\n\t\t\tAliasName:        pulumi.String(\"AliasName\"),\n\t\t\tStatus:           pulumi.String(\"ISSUE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sslcertificatesservicepca.Certificate;\nimport com.pulumi.alicloud.sslcertificatesservicepca.CertificateArgs;\nimport com.pulumi.alicloud.sslcertificatesservicepca.Cert;\nimport com.pulumi.alicloud.sslcertificatesservicepca.CertArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var root = new Certificate(\"root\", CertificateArgs.builder()\n            .organization(\"a\")\n            .years(1)\n            .locality(\"a\")\n            .organizationUnit(\"a\")\n            .state(\"a\")\n            .commonName(\"cbc.certqa.cn\")\n            .build());\n\n        var sub = new Certificate(\"sub\", CertificateArgs.builder()\n            .parentIdentifier(root.id())\n            .organization(\"a\")\n            .years(1)\n            .locality(\"a\")\n            .organizationUnit(\"a\")\n            .state(\"a\")\n            .commonName(\"cbc.certqa.cn\")\n            .algorithm(\"RSA_2048\")\n            .certificateType(\"SUB_ROOT\")\n            .enableCrl(true)\n            .build());\n\n        var default_ = new Cert(\"default\", CertArgs.builder()\n            .immediately(0)\n            .organization(\"terraform\")\n            .years(1)\n            .uploadFlag(0)\n            .locality(\"terraform\")\n            .months(1)\n            .customIdentifier(\"181\")\n            .algorithm(\"RSA_2048\")\n            .parentIdentifier(sub.id())\n            .sanValue(\"somebody@example.com\")\n            .enableCrl(1)\n            .organizationUnit(\"aliyun\")\n            .state(\"Beijing\")\n            .beforeTime(1767948807)\n            .days(1)\n            .sanType(\"1\")\n            .afterTime(1768035207)\n            .countryCode(\"cn\")\n            .commonName(\"exampleTerraform\")\n            .aliasName(\"AliasName\")\n            .status(\"ISSUE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  root:\n    type: alicloud:sslcertificatesservicepca:Certificate\n    properties:\n      organization: a\n      years: '1'\n      locality: a\n      organizationUnit: a\n      state: a\n      commonName: cbc.certqa.cn\n  sub:\n    type: alicloud:sslcertificatesservicepca:Certificate\n    properties:\n      parentIdentifier: ${root.id}\n      organization: a\n      years: '1'\n      locality: a\n      organizationUnit: a\n      state: a\n      commonName: cbc.certqa.cn\n      algorithm: RSA_2048\n      certificateType: SUB_ROOT\n      enableCrl: true\n  default:\n    type: alicloud:sslcertificatesservicepca:Cert\n    properties:\n      immediately: '0'\n      organization: terraform\n      years: '1'\n      uploadFlag: '0'\n      locality: terraform\n      months: '1'\n      customIdentifier: '181'\n      algorithm: RSA_2048\n      parentIdentifier: ${sub.id}\n      sanValue: somebody@example.com\n      enableCrl: '1'\n      organizationUnit: aliyun\n      state: Beijing\n      beforeTime: '1767948807'\n      days: '1'\n      sanType: '1'\n      afterTime: '1768035207'\n      countryCode: cn\n      commonName: exampleTerraform\n      aliasName: AliasName\n      status: ISSUE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSSL Certificates Pca Cert can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sslcertificatesservicepca/cert:Cert example \u003cid\u003e\n```\n\n","properties":{"afterTime":{"type":"integer","description":"The service expiration time of the client certificate, specified as a Unix timestamp in seconds.  \n\n\u003e **NOTE:**  The \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e parameters must either both be empty or both be specified.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"algorithm":{"type":"string","description":"The key algorithm of the client certificate. The key algorithm is specified in the format `_`. Valid values:\n- `RSA_1024`: corresponds to the signature algorithm Sha256WithRSA.\n- `RSA_2048`: corresponds to the signature algorithm Sha256WithRSA.\n- `RSA_4096`: corresponds to the signature algorithm Sha256WithRSA.\n- `ECC_256`: corresponds to the signature algorithm Sha256WithECDSA.\n- `ECC_384`: corresponds to the signature algorithm Sha256WithECDSA.\n- `ECC_512`: corresponds to the signature algorithm Sha256WithECDSA.\n- `SM2_256`: corresponds to the signature algorithm SM3WithSM2.\n\nThe encryption algorithm of the client certificate must match that of the subordinate CA certificate, but the key length may differ. For example, if the key algorithm of the subordinate CA certificate is RSA_2048, the key algorithm of the client certificate must be one of RSA_1024, RSA_2048, or RSA_4096.\n\n\u003e **NOTE:** You can call [DescribeCACertificate](https://help.aliyun.com/document_detail/465954.html) to query the key algorithm of the subordinate CA certificate.\n"},"aliasName":{"type":"string","description":"The name assigned to the issued certificate.\n"},"beforeTime":{"type":"integer","description":"The issuance time of the client certificate, in timestamp format. By default, it is set to the time when you call this API. Unit: seconds.\n\n\u003e **NOTE:**  The \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e parameters must either both be empty or both be specified.\n"},"commonName":{"type":"string","description":"Name of the certificate subject. For a Client Authentication (ClientAuth) certificate, the subject is typically an individual, company, organization, or application. We recommend using the common name of the subject—for example, Zhang San, Alibaba, Alibaba Cloud KMS, or Tmall Genie.\n"},"countryCode":{"type":"string","description":"Country code of the organization associated with the subordinate CA certificate that issued this certificate.  \nFor the meanings of different country codes, see the **International Codes** section in [Manage Company Information](https://help.aliyun.com/document_detail/198289.html).\n"},"customIdentifier":{"type":"string","description":"A user-defined unique identifier.\n"},"days":{"type":"integer","description":"Validity period of the client certificate, in days.  \n\nThe \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e parameters cannot all be empty. Additionally, \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e must either both be set or both remain unset. The specific rules are as follows:\n- If you set the \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e parameter, you may optionally also set \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e.\n- If you do not set the \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e parameter, you must set both \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e.\n\n\u003e **NOTE:** - If you set \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e simultaneously, the validity period of the client certificate is determined by the value of \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e.\n- The validity period of the client certificate cannot exceed that of the issuing subordinate CA certificate. You can call [DescribeCACertificate](https://help.aliyun.com/document_detail/465954.html) to check the validity period of the subordinate CA certificate.\n"},"enableCrl":{"type":"integer","description":"Whether to include the CRL URL. Valid values:\n"},"immediately":{"type":"integer","description":"Specifies whether to return the digital certificate immediately. Valid values:\n"},"locality":{"type":"string","description":"The name of the city where the organization associated with the certificate is located. Chinese characters, English letters, and other characters are supported.\nBy default, this value is the same as the city name of the organization associated with the issuing subordinate CA certificate.\n"},"months":{"type":"integer","description":"The duration for which the certificate is purchased, in months.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"organization":{"type":"string","description":"Name of the organization associated with the subordinate CA certificate that issued this certificate.\n"},"organizationUnit":{"type":"string","description":"Department name. Default: Aliyun CDN.\n"},"parentIdentifier":{"type":"string","description":"The unique identifier of the subordinate CA certificate that issued this certificate.\n"},"resourceGroupId":{"type":"string","description":"The resource group ID. You can obtain this ID by calling the [ListResources](https://help.aliyun.com/document_detail/2716559.html) operation.\n"},"sanType":{"type":"string","description":"The Subject Alternative Name (SAN) type supported by the client certificate. Valid values:\n"},"sanValue":{"type":"string","description":"Specific extension information for the client certificate. You can enter multiple extensions. If you need to specify multiple extensions, separate them with commas (,).  \n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"state":{"type":"string","description":"The name of the province, municipality, or autonomous region where the certificate's organization is located. Chinese and English characters are supported. By default, this value is the same as the province, municipality, or autonomous region of the organization associated with the subordinate CA certificate that issued this certificate.\nThe name of the state or province where the certificate's organization is located. Chinese and English characters are supported. By default, this value is the same as the state or province of the organization associated with the subordinate CA certificate that issued this certificate.\n"},"status":{"type":"string","description":"The status of the certificate. Valid values:\n- `REVOKE`: indicates that the certificate has been revoked.\n\u003e **NOTE:** If you want to destroy \u003cspan pulumi-lang-nodejs=\"`alicloud.sslcertificatesservicepca.Cert`\" pulumi-lang-dotnet=\"`alicloud.sslcertificatesservicepca.Cert`\" pulumi-lang-go=\"`sslcertificatesservicepca.Cert`\" pulumi-lang-python=\"`sslcertificatesservicepca.Cert`\" pulumi-lang-yaml=\"`alicloud.sslcertificatesservicepca.Cert`\" pulumi-lang-java=\"`alicloud.sslcertificatesservicepca.Cert`\"\u003e`alicloud.sslcertificatesservicepca.Cert`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e must be set to `REVOKE`\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Information about the queried instances and their associated tags.\n"},"uploadFlag":{"type":"integer","description":"Indicates whether the certificate has been uploaded to the SSL certificate management platform.\n"},"years":{"type":"integer","description":"The duration for which the certificate is purchased, in years.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"}},"required":["algorithm","days","parentIdentifier","resourceGroupId","status"],"inputProperties":{"afterTime":{"type":"integer","description":"The service expiration time of the client certificate, specified as a Unix timestamp in seconds.  \n\n\u003e **NOTE:**  The \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e parameters must either both be empty or both be specified.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"algorithm":{"type":"string","description":"The key algorithm of the client certificate. The key algorithm is specified in the format `_`. Valid values:\n- `RSA_1024`: corresponds to the signature algorithm Sha256WithRSA.\n- `RSA_2048`: corresponds to the signature algorithm Sha256WithRSA.\n- `RSA_4096`: corresponds to the signature algorithm Sha256WithRSA.\n- `ECC_256`: corresponds to the signature algorithm Sha256WithECDSA.\n- `ECC_384`: corresponds to the signature algorithm Sha256WithECDSA.\n- `ECC_512`: corresponds to the signature algorithm Sha256WithECDSA.\n- `SM2_256`: corresponds to the signature algorithm SM3WithSM2.\n\nThe encryption algorithm of the client certificate must match that of the subordinate CA certificate, but the key length may differ. For example, if the key algorithm of the subordinate CA certificate is RSA_2048, the key algorithm of the client certificate must be one of RSA_1024, RSA_2048, or RSA_4096.\n\n\u003e **NOTE:** You can call [DescribeCACertificate](https://help.aliyun.com/document_detail/465954.html) to query the key algorithm of the subordinate CA certificate.\n","willReplaceOnChanges":true},"aliasName":{"type":"string","description":"The name assigned to the issued certificate.\n"},"beforeTime":{"type":"integer","description":"The issuance time of the client certificate, in timestamp format. By default, it is set to the time when you call this API. Unit: seconds.\n\n\u003e **NOTE:**  The \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e parameters must either both be empty or both be specified.\n"},"commonName":{"type":"string","description":"Name of the certificate subject. For a Client Authentication (ClientAuth) certificate, the subject is typically an individual, company, organization, or application. We recommend using the common name of the subject—for example, Zhang San, Alibaba, Alibaba Cloud KMS, or Tmall Genie.\n","willReplaceOnChanges":true},"countryCode":{"type":"string","description":"Country code of the organization associated with the subordinate CA certificate that issued this certificate.  \nFor the meanings of different country codes, see the **International Codes** section in [Manage Company Information](https://help.aliyun.com/document_detail/198289.html).\n","willReplaceOnChanges":true},"customIdentifier":{"type":"string","description":"A user-defined unique identifier.\n","willReplaceOnChanges":true},"days":{"type":"integer","description":"Validity period of the client certificate, in days.  \n\nThe \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e parameters cannot all be empty. Additionally, \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e must either both be set or both remain unset. The specific rules are as follows:\n- If you set the \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e parameter, you may optionally also set \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e.\n- If you do not set the \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e parameter, you must set both \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e.\n\n\u003e **NOTE:** - If you set \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e simultaneously, the validity period of the client certificate is determined by the value of \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e.\n- The validity period of the client certificate cannot exceed that of the issuing subordinate CA certificate. You can call [DescribeCACertificate](https://help.aliyun.com/document_detail/465954.html) to check the validity period of the subordinate CA certificate.\n","willReplaceOnChanges":true},"enableCrl":{"type":"integer","description":"Whether to include the CRL URL. Valid values:\n"},"immediately":{"type":"integer","description":"Specifies whether to return the digital certificate immediately. Valid values:\n"},"locality":{"type":"string","description":"The name of the city where the organization associated with the certificate is located. Chinese characters, English letters, and other characters are supported.\nBy default, this value is the same as the city name of the organization associated with the issuing subordinate CA certificate.\n","willReplaceOnChanges":true},"months":{"type":"integer","description":"The duration for which the certificate is purchased, in months.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"organization":{"type":"string","description":"Name of the organization associated with the subordinate CA certificate that issued this certificate.\n","willReplaceOnChanges":true},"organizationUnit":{"type":"string","description":"Department name. Default: Aliyun CDN.\n","willReplaceOnChanges":true},"parentIdentifier":{"type":"string","description":"The unique identifier of the subordinate CA certificate that issued this certificate.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The resource group ID. You can obtain this ID by calling the [ListResources](https://help.aliyun.com/document_detail/2716559.html) operation.\n"},"sanType":{"type":"string","description":"The Subject Alternative Name (SAN) type supported by the client certificate. Valid values:\n"},"sanValue":{"type":"string","description":"Specific extension information for the client certificate. You can enter multiple extensions. If you need to specify multiple extensions, separate them with commas (,).  \n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"state":{"type":"string","description":"The name of the province, municipality, or autonomous region where the certificate's organization is located. Chinese and English characters are supported. By default, this value is the same as the province, municipality, or autonomous region of the organization associated with the subordinate CA certificate that issued this certificate.\nThe name of the state or province where the certificate's organization is located. Chinese and English characters are supported. By default, this value is the same as the state or province of the organization associated with the subordinate CA certificate that issued this certificate.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the certificate. Valid values:\n- `REVOKE`: indicates that the certificate has been revoked.\n\u003e **NOTE:** If you want to destroy \u003cspan pulumi-lang-nodejs=\"`alicloud.sslcertificatesservicepca.Cert`\" pulumi-lang-dotnet=\"`alicloud.sslcertificatesservicepca.Cert`\" pulumi-lang-go=\"`sslcertificatesservicepca.Cert`\" pulumi-lang-python=\"`sslcertificatesservicepca.Cert`\" pulumi-lang-yaml=\"`alicloud.sslcertificatesservicepca.Cert`\" pulumi-lang-java=\"`alicloud.sslcertificatesservicepca.Cert`\"\u003e`alicloud.sslcertificatesservicepca.Cert`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e must be set to `REVOKE`\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Information about the queried instances and their associated tags.\n"},"uploadFlag":{"type":"integer","description":"Indicates whether the certificate has been uploaded to the SSL certificate management platform.\n"},"years":{"type":"integer","description":"The duration for which the certificate is purchased, in years.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"}},"requiredInputs":["parentIdentifier"],"stateInputs":{"description":"Input properties used for looking up and filtering Cert resources.\n","properties":{"afterTime":{"type":"integer","description":"The service expiration time of the client certificate, specified as a Unix timestamp in seconds.  \n\n\u003e **NOTE:**  The \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e parameters must either both be empty or both be specified.\n\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"algorithm":{"type":"string","description":"The key algorithm of the client certificate. The key algorithm is specified in the format `_`. Valid values:\n- `RSA_1024`: corresponds to the signature algorithm Sha256WithRSA.\n- `RSA_2048`: corresponds to the signature algorithm Sha256WithRSA.\n- `RSA_4096`: corresponds to the signature algorithm Sha256WithRSA.\n- `ECC_256`: corresponds to the signature algorithm Sha256WithECDSA.\n- `ECC_384`: corresponds to the signature algorithm Sha256WithECDSA.\n- `ECC_512`: corresponds to the signature algorithm Sha256WithECDSA.\n- `SM2_256`: corresponds to the signature algorithm SM3WithSM2.\n\nThe encryption algorithm of the client certificate must match that of the subordinate CA certificate, but the key length may differ. For example, if the key algorithm of the subordinate CA certificate is RSA_2048, the key algorithm of the client certificate must be one of RSA_1024, RSA_2048, or RSA_4096.\n\n\u003e **NOTE:** You can call [DescribeCACertificate](https://help.aliyun.com/document_detail/465954.html) to query the key algorithm of the subordinate CA certificate.\n","willReplaceOnChanges":true},"aliasName":{"type":"string","description":"The name assigned to the issued certificate.\n"},"beforeTime":{"type":"integer","description":"The issuance time of the client certificate, in timestamp format. By default, it is set to the time when you call this API. Unit: seconds.\n\n\u003e **NOTE:**  The \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e parameters must either both be empty or both be specified.\n"},"commonName":{"type":"string","description":"Name of the certificate subject. For a Client Authentication (ClientAuth) certificate, the subject is typically an individual, company, organization, or application. We recommend using the common name of the subject—for example, Zhang San, Alibaba, Alibaba Cloud KMS, or Tmall Genie.\n","willReplaceOnChanges":true},"countryCode":{"type":"string","description":"Country code of the organization associated with the subordinate CA certificate that issued this certificate.  \nFor the meanings of different country codes, see the **International Codes** section in [Manage Company Information](https://help.aliyun.com/document_detail/198289.html).\n","willReplaceOnChanges":true},"customIdentifier":{"type":"string","description":"A user-defined unique identifier.\n","willReplaceOnChanges":true},"days":{"type":"integer","description":"Validity period of the client certificate, in days.  \n\nThe \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e parameters cannot all be empty. Additionally, \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e must either both be set or both remain unset. The specific rules are as follows:\n- If you set the \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e parameter, you may optionally also set \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e.\n- If you do not set the \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e parameter, you must set both \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e.\n\n\u003e **NOTE:** - If you set \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`beforeTime`\" pulumi-lang-dotnet=\"`BeforeTime`\" pulumi-lang-go=\"`beforeTime`\" pulumi-lang-python=\"`before_time`\" pulumi-lang-yaml=\"`beforeTime`\" pulumi-lang-java=\"`beforeTime`\"\u003e`before_time`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`afterTime`\" pulumi-lang-dotnet=\"`AfterTime`\" pulumi-lang-go=\"`afterTime`\" pulumi-lang-python=\"`after_time`\" pulumi-lang-yaml=\"`afterTime`\" pulumi-lang-java=\"`afterTime`\"\u003e`after_time`\u003c/span\u003e simultaneously, the validity period of the client certificate is determined by the value of \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e.\n- The validity period of the client certificate cannot exceed that of the issuing subordinate CA certificate. You can call [DescribeCACertificate](https://help.aliyun.com/document_detail/465954.html) to check the validity period of the subordinate CA certificate.\n","willReplaceOnChanges":true},"enableCrl":{"type":"integer","description":"Whether to include the CRL URL. Valid values:\n"},"immediately":{"type":"integer","description":"Specifies whether to return the digital certificate immediately. Valid values:\n"},"locality":{"type":"string","description":"The name of the city where the organization associated with the certificate is located. Chinese characters, English letters, and other characters are supported.\nBy default, this value is the same as the city name of the organization associated with the issuing subordinate CA certificate.\n","willReplaceOnChanges":true},"months":{"type":"integer","description":"The duration for which the certificate is purchased, in months.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"organization":{"type":"string","description":"Name of the organization associated with the subordinate CA certificate that issued this certificate.\n","willReplaceOnChanges":true},"organizationUnit":{"type":"string","description":"Department name. Default: Aliyun CDN.\n","willReplaceOnChanges":true},"parentIdentifier":{"type":"string","description":"The unique identifier of the subordinate CA certificate that issued this certificate.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The resource group ID. You can obtain this ID by calling the [ListResources](https://help.aliyun.com/document_detail/2716559.html) operation.\n"},"sanType":{"type":"string","description":"The Subject Alternative Name (SAN) type supported by the client certificate. Valid values:\n"},"sanValue":{"type":"string","description":"Specific extension information for the client certificate. You can enter multiple extensions. If you need to specify multiple extensions, separate them with commas (,).  \n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"state":{"type":"string","description":"The name of the province, municipality, or autonomous region where the certificate's organization is located. Chinese and English characters are supported. By default, this value is the same as the province, municipality, or autonomous region of the organization associated with the subordinate CA certificate that issued this certificate.\nThe name of the state or province where the certificate's organization is located. Chinese and English characters are supported. By default, this value is the same as the state or province of the organization associated with the subordinate CA certificate that issued this certificate.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the certificate. Valid values:\n- `REVOKE`: indicates that the certificate has been revoked.\n\u003e **NOTE:** If you want to destroy \u003cspan pulumi-lang-nodejs=\"`alicloud.sslcertificatesservicepca.Cert`\" pulumi-lang-dotnet=\"`alicloud.sslcertificatesservicepca.Cert`\" pulumi-lang-go=\"`sslcertificatesservicepca.Cert`\" pulumi-lang-python=\"`sslcertificatesservicepca.Cert`\" pulumi-lang-yaml=\"`alicloud.sslcertificatesservicepca.Cert`\" pulumi-lang-java=\"`alicloud.sslcertificatesservicepca.Cert`\"\u003e`alicloud.sslcertificatesservicepca.Cert`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e must be set to `REVOKE`\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Information about the queried instances and their associated tags.\n"},"uploadFlag":{"type":"integer","description":"Indicates whether the certificate has been uploaded to the SSL certificate management platform.\n"},"years":{"type":"integer","description":"The duration for which the certificate is purchased, in years.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"}},"type":"object"}},"alicloud:sslcertificatesservicepca/certificate:Certificate":{"description":"Provides a SSL Certificates Pca Certificate resource.\n\n\n\nFor information about SSL Certificates Pca Certificate and how to use it, see [What is Pca Certificate](https://next.api.alibabacloud.com/document/cas/2020-06-30/CreateRootCACertificate).\n\n\u003e **NOTE:** Available since v1.257.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.sslcertificatesservicepca.Certificate(\"default\", {\n    organization: \"a\",\n    years: 1,\n    locality: \"a\",\n    organizationUnit: \"a\",\n    state: \"a\",\n    countryCode: \"cn\",\n    commonName: \"cbc.certqa.cn\",\n    algorithm: \"RSA_2048\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.sslcertificatesservicepca.Certificate(\"default\",\n    organization=\"a\",\n    years=1,\n    locality=\"a\",\n    organization_unit=\"a\",\n    state=\"a\",\n    country_code=\"cn\",\n    common_name=\"cbc.certqa.cn\",\n    algorithm=\"RSA_2048\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.SslCertificatesServicePca.Certificate(\"default\", new()\n    {\n        Organization = \"a\",\n        Years = 1,\n        Locality = \"a\",\n        OrganizationUnit = \"a\",\n        State = \"a\",\n        CountryCode = \"cn\",\n        CommonName = \"cbc.certqa.cn\",\n        Algorithm = \"RSA_2048\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sslcertificatesservicepca\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sslcertificatesservicepca.NewCertificate(ctx, \"default\", \u0026sslcertificatesservicepca.CertificateArgs{\n\t\t\tOrganization:     pulumi.String(\"a\"),\n\t\t\tYears:            pulumi.Int(1),\n\t\t\tLocality:         pulumi.String(\"a\"),\n\t\t\tOrganizationUnit: pulumi.String(\"a\"),\n\t\t\tState:            pulumi.String(\"a\"),\n\t\t\tCountryCode:      pulumi.String(\"cn\"),\n\t\t\tCommonName:       pulumi.String(\"cbc.certqa.cn\"),\n\t\t\tAlgorithm:        pulumi.String(\"RSA_2048\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sslcertificatesservicepca.Certificate;\nimport com.pulumi.alicloud.sslcertificatesservicepca.CertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Certificate(\"default\", CertificateArgs.builder()\n            .organization(\"a\")\n            .years(1)\n            .locality(\"a\")\n            .organizationUnit(\"a\")\n            .state(\"a\")\n            .countryCode(\"cn\")\n            .commonName(\"cbc.certqa.cn\")\n            .algorithm(\"RSA_2048\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:sslcertificatesservicepca:Certificate\n    properties:\n      organization: a\n      years: '1'\n      locality: a\n      organizationUnit: a\n      state: a\n      countryCode: cn\n      commonName: cbc.certqa.cn\n      algorithm: RSA_2048\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSSL Certificates Pca Certificate can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:sslcertificatesservicepca/certificate:Certificate example \u003cid\u003e\n```\n\n","properties":{"algorithm":{"type":"string","description":"The key algorithm type of the CA certificate. The key algorithm is in the \u003cencryption algorithm\u003e_\u003ckey length\u003e format. Valid values:\n- `RSA_1024`: The corresponding signature algorithm is Sha256WithRSA.\n- `RSA_2048`: The corresponding signature algorithm is Sha256WithRSA.\n- `RSA_4096`: The corresponding signature algorithm is Sha256WithRSA.\n- `ECC_256`: The signature algorithm is Sha256WithECDSA.\n- `ECC_384`: The corresponding signature algorithm is Sha256WithECDSA.\n- `ECC_512`: The signature algorithm is Sha256WithECDSA.\n- `SM2_256`: The corresponding signature algorithm is SM3WithSM2.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`, \u003cspan pulumi-lang-nodejs=\"`algorithm`\" pulumi-lang-dotnet=\"`Algorithm`\" pulumi-lang-go=\"`algorithm`\" pulumi-lang-python=\"`algorithm`\" pulumi-lang-yaml=\"`algorithm`\" pulumi-lang-java=\"`algorithm`\"\u003e`algorithm`\u003c/span\u003e is required.\n"},"aliasName":{"type":"string","description":"A custom alias for the certificate, used to define a user-friendly name.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"certificateType":{"type":"string","description":"The type of the CA certificate. Default value: `ROOT`. Valid values:\n- `ROOT`: A root CA certificate.\n- `SUB_ROOT`: A subordinate CA certificate.\n"},"commonName":{"type":"string","description":"The common name or abbreviation of the organization. Support the use of Chinese, English characters.\n"},"countryCode":{"type":"string","description":"The code of the country or region in which the organization is located, using a two-digit capital abbreviation. For example, `CN` represents China and `US` represents the United States.\n"},"crlDay":{"type":"integer","description":"The validity period for the CRL, in days. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e. **Note:** \u003cspan pulumi-lang-nodejs=\"`crlDay`\" pulumi-lang-dotnet=\"`CrlDay`\" pulumi-lang-go=\"`crlDay`\" pulumi-lang-python=\"`crl_day`\" pulumi-lang-yaml=\"`crlDay`\" pulumi-lang-java=\"`crlDay`\"\u003e`crl_day`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n"},"enableCrl":{"type":"boolean","description":"This setting turns the Certificate Revocation List (CRL) service on or off. Valid values:\n"},"extendedKeyUsages":{"type":"array","items":{"type":"string"},"description":"The extended key usages. **Note:** \u003cspan pulumi-lang-nodejs=\"`extendedKeyUsages`\" pulumi-lang-dotnet=\"`ExtendedKeyUsages`\" pulumi-lang-go=\"`extendedKeyUsages`\" pulumi-lang-python=\"`extended_key_usages`\" pulumi-lang-yaml=\"`extendedKeyUsages`\" pulumi-lang-java=\"`extendedKeyUsages`\"\u003e`extended_key_usages`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n"},"locality":{"type":"string","description":"Name of the city where the organization is located. Support the use of Chinese, English characters.\n"},"organization":{"type":"string","description":"The name of the organization (corresponding to your enterprise or company) associated with the CA certificate. Support the use of Chinese, English characters.\n"},"organizationUnit":{"type":"string","description":"The name of the department or branch under the organization. Support the use of Chinese, English characters.\n"},"parentIdentifier":{"type":"string","description":"The unique identifier of the root CA certificate.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`, \u003cspan pulumi-lang-nodejs=\"`parentIdentifier`\" pulumi-lang-dotnet=\"`ParentIdentifier`\" pulumi-lang-go=\"`parentIdentifier`\" pulumi-lang-python=\"`parent_identifier`\" pulumi-lang-yaml=\"`parentIdentifier`\" pulumi-lang-java=\"`parentIdentifier`\"\u003e`parent_identifier`\u003c/span\u003e is required.\n"},"pathLenConstraint":{"type":"integer","description":"The certificate path length. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. **Note:** \u003cspan pulumi-lang-nodejs=\"`pathLenConstraint`\" pulumi-lang-dotnet=\"`PathLenConstraint`\" pulumi-lang-go=\"`pathLenConstraint`\" pulumi-lang-python=\"`path_len_constraint`\" pulumi-lang-yaml=\"`pathLenConstraint`\" pulumi-lang-java=\"`pathLenConstraint`\"\u003e`path_len_constraint`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n"},"resourceGroupId":{"type":"string","description":"A resource property field representing the resource group.\n"},"state":{"type":"string","description":"The name of the province, municipality, or autonomous region in which the organization is located. Support the use of Chinese, English characters.\n"},"status":{"type":"string","description":"The status of the CA certificate.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"years":{"type":"integer","description":"The validity period of the CA certificate, in years.\n\u003e **NOTE:**  It is recommended to set to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e years.\n"}},"required":["algorithm","certificateType","commonName","crlDay","locality","organization","organizationUnit","resourceGroupId","state","status","years"],"inputProperties":{"algorithm":{"type":"string","description":"The key algorithm type of the CA certificate. The key algorithm is in the \u003cencryption algorithm\u003e_\u003ckey length\u003e format. Valid values:\n- `RSA_1024`: The corresponding signature algorithm is Sha256WithRSA.\n- `RSA_2048`: The corresponding signature algorithm is Sha256WithRSA.\n- `RSA_4096`: The corresponding signature algorithm is Sha256WithRSA.\n- `ECC_256`: The signature algorithm is Sha256WithECDSA.\n- `ECC_384`: The corresponding signature algorithm is Sha256WithECDSA.\n- `ECC_512`: The signature algorithm is Sha256WithECDSA.\n- `SM2_256`: The corresponding signature algorithm is SM3WithSM2.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`, \u003cspan pulumi-lang-nodejs=\"`algorithm`\" pulumi-lang-dotnet=\"`Algorithm`\" pulumi-lang-go=\"`algorithm`\" pulumi-lang-python=\"`algorithm`\" pulumi-lang-yaml=\"`algorithm`\" pulumi-lang-java=\"`algorithm`\"\u003e`algorithm`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"aliasName":{"type":"string","description":"A custom alias for the certificate, used to define a user-friendly name.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"certificateType":{"type":"string","description":"The type of the CA certificate. Default value: `ROOT`. Valid values:\n- `ROOT`: A root CA certificate.\n- `SUB_ROOT`: A subordinate CA certificate.\n","willReplaceOnChanges":true},"commonName":{"type":"string","description":"The common name or abbreviation of the organization. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"countryCode":{"type":"string","description":"The code of the country or region in which the organization is located, using a two-digit capital abbreviation. For example, `CN` represents China and `US` represents the United States.\n","willReplaceOnChanges":true},"crlDay":{"type":"integer","description":"The validity period for the CRL, in days. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e. **Note:** \u003cspan pulumi-lang-nodejs=\"`crlDay`\" pulumi-lang-dotnet=\"`CrlDay`\" pulumi-lang-go=\"`crlDay`\" pulumi-lang-python=\"`crl_day`\" pulumi-lang-yaml=\"`crlDay`\" pulumi-lang-java=\"`crlDay`\"\u003e`crl_day`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n","willReplaceOnChanges":true},"enableCrl":{"type":"boolean","description":"This setting turns the Certificate Revocation List (CRL) service on or off. Valid values:\n"},"extendedKeyUsages":{"type":"array","items":{"type":"string"},"description":"The extended key usages. **Note:** \u003cspan pulumi-lang-nodejs=\"`extendedKeyUsages`\" pulumi-lang-dotnet=\"`ExtendedKeyUsages`\" pulumi-lang-go=\"`extendedKeyUsages`\" pulumi-lang-python=\"`extended_key_usages`\" pulumi-lang-yaml=\"`extendedKeyUsages`\" pulumi-lang-java=\"`extendedKeyUsages`\"\u003e`extended_key_usages`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n"},"locality":{"type":"string","description":"Name of the city where the organization is located. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"organization":{"type":"string","description":"The name of the organization (corresponding to your enterprise or company) associated with the CA certificate. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"organizationUnit":{"type":"string","description":"The name of the department or branch under the organization. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"parentIdentifier":{"type":"string","description":"The unique identifier of the root CA certificate.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`, \u003cspan pulumi-lang-nodejs=\"`parentIdentifier`\" pulumi-lang-dotnet=\"`ParentIdentifier`\" pulumi-lang-go=\"`parentIdentifier`\" pulumi-lang-python=\"`parent_identifier`\" pulumi-lang-yaml=\"`parentIdentifier`\" pulumi-lang-java=\"`parentIdentifier`\"\u003e`parent_identifier`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"pathLenConstraint":{"type":"integer","description":"The certificate path length. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. **Note:** \u003cspan pulumi-lang-nodejs=\"`pathLenConstraint`\" pulumi-lang-dotnet=\"`PathLenConstraint`\" pulumi-lang-go=\"`pathLenConstraint`\" pulumi-lang-python=\"`path_len_constraint`\" pulumi-lang-yaml=\"`pathLenConstraint`\" pulumi-lang-java=\"`pathLenConstraint`\"\u003e`path_len_constraint`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n"},"resourceGroupId":{"type":"string","description":"A resource property field representing the resource group.\n"},"state":{"type":"string","description":"The name of the province, municipality, or autonomous region in which the organization is located. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"years":{"type":"integer","description":"The validity period of the CA certificate, in years.\n\u003e **NOTE:**  It is recommended to set to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e years.\n","willReplaceOnChanges":true}},"requiredInputs":["commonName","locality","organization","organizationUnit","state","years"],"stateInputs":{"description":"Input properties used for looking up and filtering Certificate resources.\n","properties":{"algorithm":{"type":"string","description":"The key algorithm type of the CA certificate. The key algorithm is in the \u003cencryption algorithm\u003e_\u003ckey length\u003e format. Valid values:\n- `RSA_1024`: The corresponding signature algorithm is Sha256WithRSA.\n- `RSA_2048`: The corresponding signature algorithm is Sha256WithRSA.\n- `RSA_4096`: The corresponding signature algorithm is Sha256WithRSA.\n- `ECC_256`: The signature algorithm is Sha256WithECDSA.\n- `ECC_384`: The corresponding signature algorithm is Sha256WithECDSA.\n- `ECC_512`: The signature algorithm is Sha256WithECDSA.\n- `SM2_256`: The corresponding signature algorithm is SM3WithSM2.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`, \u003cspan pulumi-lang-nodejs=\"`algorithm`\" pulumi-lang-dotnet=\"`Algorithm`\" pulumi-lang-go=\"`algorithm`\" pulumi-lang-python=\"`algorithm`\" pulumi-lang-yaml=\"`algorithm`\" pulumi-lang-java=\"`algorithm`\"\u003e`algorithm`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"aliasName":{"type":"string","description":"A custom alias for the certificate, used to define a user-friendly name.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"certificateType":{"type":"string","description":"The type of the CA certificate. Default value: `ROOT`. Valid values:\n- `ROOT`: A root CA certificate.\n- `SUB_ROOT`: A subordinate CA certificate.\n","willReplaceOnChanges":true},"commonName":{"type":"string","description":"The common name or abbreviation of the organization. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"countryCode":{"type":"string","description":"The code of the country or region in which the organization is located, using a two-digit capital abbreviation. For example, `CN` represents China and `US` represents the United States.\n","willReplaceOnChanges":true},"crlDay":{"type":"integer","description":"The validity period for the CRL, in days. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`365`\" pulumi-lang-dotnet=\"`365`\" pulumi-lang-go=\"`365`\" pulumi-lang-python=\"`365`\" pulumi-lang-yaml=\"`365`\" pulumi-lang-java=\"`365`\"\u003e`365`\u003c/span\u003e. **Note:** \u003cspan pulumi-lang-nodejs=\"`crlDay`\" pulumi-lang-dotnet=\"`CrlDay`\" pulumi-lang-go=\"`crlDay`\" pulumi-lang-python=\"`crl_day`\" pulumi-lang-yaml=\"`crlDay`\" pulumi-lang-java=\"`crlDay`\"\u003e`crl_day`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n","willReplaceOnChanges":true},"enableCrl":{"type":"boolean","description":"This setting turns the Certificate Revocation List (CRL) service on or off. Valid values:\n"},"extendedKeyUsages":{"type":"array","items":{"type":"string"},"description":"The extended key usages. **Note:** \u003cspan pulumi-lang-nodejs=\"`extendedKeyUsages`\" pulumi-lang-dotnet=\"`ExtendedKeyUsages`\" pulumi-lang-go=\"`extendedKeyUsages`\" pulumi-lang-python=\"`extended_key_usages`\" pulumi-lang-yaml=\"`extendedKeyUsages`\" pulumi-lang-java=\"`extendedKeyUsages`\"\u003e`extended_key_usages`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n"},"locality":{"type":"string","description":"Name of the city where the organization is located. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"organization":{"type":"string","description":"The name of the organization (corresponding to your enterprise or company) associated with the CA certificate. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"organizationUnit":{"type":"string","description":"The name of the department or branch under the organization. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"parentIdentifier":{"type":"string","description":"The unique identifier of the root CA certificate.\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`, \u003cspan pulumi-lang-nodejs=\"`parentIdentifier`\" pulumi-lang-dotnet=\"`ParentIdentifier`\" pulumi-lang-go=\"`parentIdentifier`\" pulumi-lang-python=\"`parent_identifier`\" pulumi-lang-yaml=\"`parentIdentifier`\" pulumi-lang-java=\"`parentIdentifier`\"\u003e`parent_identifier`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"pathLenConstraint":{"type":"integer","description":"The certificate path length. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. **Note:** \u003cspan pulumi-lang-nodejs=\"`pathLenConstraint`\" pulumi-lang-dotnet=\"`PathLenConstraint`\" pulumi-lang-go=\"`pathLenConstraint`\" pulumi-lang-python=\"`path_len_constraint`\" pulumi-lang-yaml=\"`pathLenConstraint`\" pulumi-lang-java=\"`pathLenConstraint`\"\u003e`path_len_constraint`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`certificateType`\" pulumi-lang-dotnet=\"`CertificateType`\" pulumi-lang-go=\"`certificateType`\" pulumi-lang-python=\"`certificate_type`\" pulumi-lang-yaml=\"`certificateType`\" pulumi-lang-java=\"`certificateType`\"\u003e`certificate_type`\u003c/span\u003e is set to `SUB_ROOT`.\n"},"resourceGroupId":{"type":"string","description":"A resource property field representing the resource group.\n"},"state":{"type":"string","description":"The name of the province, municipality, or autonomous region in which the organization is located. Support the use of Chinese, English characters.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the CA certificate.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"},"years":{"type":"integer","description":"The validity period of the CA certificate, in years.\n\u003e **NOTE:**  It is recommended to set to \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e years.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"alicloud:sslcertificatesservice/pcaCertificate:PcaCertificate"}]},"alicloud:starrocks/instance:Instance":{"description":"Provides a Star Rocks Instance resource.\n\nStarRocks resource instance.\n\nFor information about Star Rocks Instance and how to use it, see [What is Instance](https://next.api.alibabacloud.com/document/starrocks/2022-10-19/CreateInstanceV1).\n\n\u003e **NOTE:** Available since v1.256.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultB21JUD = new alicloud.vpc.Network(\"defaultB21JUD\", {cidrBlock: \"172.16.0.0/12\"});\nconst default106DkE = new alicloud.vpc.Switch(\"default106DkE\", {\n    vpcId: defaultB21JUD.id,\n    cidrBlock: \"172.16.1.0/24\",\n    vswitchName: \"sr-example\",\n    zoneId: \"cn-hangzhou-i\",\n});\nconst defaultInstance = new alicloud.starrocks.Instance(\"default\", {\n    instanceName: \"create-instance-1\",\n    autoRenew: false,\n    frontendNodeGroups: [{\n        cu: 8,\n        storageSize: 100,\n        residentNodeNumber: 3,\n        storagePerformanceLevel: \"pl1\",\n        specType: \"standard\",\n        diskNumber: 1,\n        zoneId: \"cn-hangzhou-i\",\n        localStorageInstanceType: \"null\",\n    }],\n    vswitches: [{\n        vswitchId: default106DkE.id,\n        zoneId: \"cn-hangzhou-i\",\n    }],\n    backendNodeGroups: [{\n        cu: 8,\n        storageSize: 100,\n        residentNodeNumber: 3,\n        diskNumber: 1,\n        storagePerformanceLevel: \"pl1\",\n        specType: \"standard\",\n        zoneId: \"cn-hangzhou-i\",\n        localStorageInstanceType: \"null\",\n    }],\n    clusterZoneId: \"cn-hangzhou-i\",\n    duration: 1,\n    payType: \"postPaid\",\n    vpcId: defaultB21JUD.id,\n    version: \"3.3\",\n    runMode: \"shared_data\",\n    packageType: \"official\",\n    adminPassword: \"1qaz@QAZ\",\n    ossAccessingRoleName: \"AliyunEMRStarRocksAccessingOSSRole\",\n    pricingCycle: \"Month\",\n    kmsKeyId: \"123\",\n    promotionOptionNo: \"123\",\n    encrypted: false,\n    observerNodeGroups: [{\n        cu: 8,\n        storageSize: 100,\n        storagePerformanceLevel: \"pl1\",\n        diskNumber: 1,\n        residentNodeNumber: 1,\n        specType: \"standard\",\n        localStorageInstanceType: \"null\",\n        zoneId: \"cn-hangzhou-h\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_b21_jud = alicloud.vpc.Network(\"defaultB21JUD\", cidr_block=\"172.16.0.0/12\")\ndefault106_dk_e = alicloud.vpc.Switch(\"default106DkE\",\n    vpc_id=default_b21_jud.id,\n    cidr_block=\"172.16.1.0/24\",\n    vswitch_name=\"sr-example\",\n    zone_id=\"cn-hangzhou-i\")\ndefault_instance = alicloud.starrocks.Instance(\"default\",\n    instance_name=\"create-instance-1\",\n    auto_renew=False,\n    frontend_node_groups=[{\n        \"cu\": 8,\n        \"storage_size\": 100,\n        \"resident_node_number\": 3,\n        \"storage_performance_level\": \"pl1\",\n        \"spec_type\": \"standard\",\n        \"disk_number\": 1,\n        \"zone_id\": \"cn-hangzhou-i\",\n        \"local_storage_instance_type\": \"null\",\n    }],\n    vswitches=[{\n        \"vswitch_id\": default106_dk_e.id,\n        \"zone_id\": \"cn-hangzhou-i\",\n    }],\n    backend_node_groups=[{\n        \"cu\": 8,\n        \"storage_size\": 100,\n        \"resident_node_number\": 3,\n        \"disk_number\": 1,\n        \"storage_performance_level\": \"pl1\",\n        \"spec_type\": \"standard\",\n        \"zone_id\": \"cn-hangzhou-i\",\n        \"local_storage_instance_type\": \"null\",\n    }],\n    cluster_zone_id=\"cn-hangzhou-i\",\n    duration=1,\n    pay_type=\"postPaid\",\n    vpc_id=default_b21_jud.id,\n    version=\"3.3\",\n    run_mode=\"shared_data\",\n    package_type=\"official\",\n    admin_password=\"1qaz@QAZ\",\n    oss_accessing_role_name=\"AliyunEMRStarRocksAccessingOSSRole\",\n    pricing_cycle=\"Month\",\n    kms_key_id=\"123\",\n    promotion_option_no=\"123\",\n    encrypted=False,\n    observer_node_groups=[{\n        \"cu\": 8,\n        \"storage_size\": 100,\n        \"storage_performance_level\": \"pl1\",\n        \"disk_number\": 1,\n        \"resident_node_number\": 1,\n        \"spec_type\": \"standard\",\n        \"local_storage_instance_type\": \"null\",\n        \"zone_id\": \"cn-hangzhou-h\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultB21JUD = new AliCloud.Vpc.Network(\"defaultB21JUD\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var default106DkE = new AliCloud.Vpc.Switch(\"default106DkE\", new()\n    {\n        VpcId = defaultB21JUD.Id,\n        CidrBlock = \"172.16.1.0/24\",\n        VswitchName = \"sr-example\",\n        ZoneId = \"cn-hangzhou-i\",\n    });\n\n    var defaultInstance = new AliCloud.StarRocks.Instance(\"default\", new()\n    {\n        InstanceName = \"create-instance-1\",\n        AutoRenew = false,\n        FrontendNodeGroups = new[]\n        {\n            new AliCloud.starRocks.Inputs.InstanceFrontendNodeGroupArgs\n            {\n                Cu = 8,\n                StorageSize = 100,\n                ResidentNodeNumber = 3,\n                StoragePerformanceLevel = \"pl1\",\n                SpecType = \"standard\",\n                DiskNumber = 1,\n                ZoneId = \"cn-hangzhou-i\",\n                LocalStorageInstanceType = \"null\",\n            },\n        },\n        Vswitches = new[]\n        {\n            new AliCloud.starRocks.Inputs.InstanceVswitchArgs\n            {\n                VswitchId = default106DkE.Id,\n                ZoneId = \"cn-hangzhou-i\",\n            },\n        },\n        BackendNodeGroups = new[]\n        {\n            new AliCloud.starRocks.Inputs.InstanceBackendNodeGroupArgs\n            {\n                Cu = 8,\n                StorageSize = 100,\n                ResidentNodeNumber = 3,\n                DiskNumber = 1,\n                StoragePerformanceLevel = \"pl1\",\n                SpecType = \"standard\",\n                ZoneId = \"cn-hangzhou-i\",\n                LocalStorageInstanceType = \"null\",\n            },\n        },\n        ClusterZoneId = \"cn-hangzhou-i\",\n        Duration = 1,\n        PayType = \"postPaid\",\n        VpcId = defaultB21JUD.Id,\n        Version = \"3.3\",\n        RunMode = \"shared_data\",\n        PackageType = \"official\",\n        AdminPassword = \"1qaz@QAZ\",\n        OssAccessingRoleName = \"AliyunEMRStarRocksAccessingOSSRole\",\n        PricingCycle = \"Month\",\n        KmsKeyId = \"123\",\n        PromotionOptionNo = \"123\",\n        Encrypted = false,\n        ObserverNodeGroups = new[]\n        {\n            new AliCloud.starRocks.Inputs.InstanceObserverNodeGroupArgs\n            {\n                Cu = 8,\n                StorageSize = 100,\n                StoragePerformanceLevel = \"pl1\",\n                DiskNumber = 1,\n                ResidentNodeNumber = 1,\n                SpecType = \"standard\",\n                LocalStorageInstanceType = \"null\",\n                ZoneId = \"cn-hangzhou-h\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/starrocks\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultB21JUD, err := vpc.NewNetwork(ctx, \"defaultB21JUD\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault106DkE, err := vpc.NewSwitch(ctx, \"default106DkE\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultB21JUD.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.1.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"sr-example\"),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-i\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = starrocks.NewInstance(ctx, \"default\", \u0026starrocks.InstanceArgs{\n\t\t\tInstanceName: pulumi.String(\"create-instance-1\"),\n\t\t\tAutoRenew:    pulumi.Bool(false),\n\t\t\tFrontendNodeGroups: starrocks.InstanceFrontendNodeGroupArray{\n\t\t\t\t\u0026starrocks.InstanceFrontendNodeGroupArgs{\n\t\t\t\t\tCu:                       pulumi.Int(8),\n\t\t\t\t\tStorageSize:              pulumi.Int(100),\n\t\t\t\t\tResidentNodeNumber:       pulumi.Int(3),\n\t\t\t\t\tStoragePerformanceLevel:  pulumi.String(\"pl1\"),\n\t\t\t\t\tSpecType:                 pulumi.String(\"standard\"),\n\t\t\t\t\tDiskNumber:               pulumi.Int(1),\n\t\t\t\t\tZoneId:                   pulumi.String(\"cn-hangzhou-i\"),\n\t\t\t\t\tLocalStorageInstanceType: pulumi.String(\"null\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVswitches: starrocks.InstanceVswitchArray{\n\t\t\t\t\u0026starrocks.InstanceVswitchArgs{\n\t\t\t\t\tVswitchId: default106DkE.ID(),\n\t\t\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-i\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackendNodeGroups: starrocks.InstanceBackendNodeGroupArray{\n\t\t\t\t\u0026starrocks.InstanceBackendNodeGroupArgs{\n\t\t\t\t\tCu:                       pulumi.Int(8),\n\t\t\t\t\tStorageSize:              pulumi.Int(100),\n\t\t\t\t\tResidentNodeNumber:       pulumi.Int(3),\n\t\t\t\t\tDiskNumber:               pulumi.Int(1),\n\t\t\t\t\tStoragePerformanceLevel:  pulumi.String(\"pl1\"),\n\t\t\t\t\tSpecType:                 pulumi.String(\"standard\"),\n\t\t\t\t\tZoneId:                   pulumi.String(\"cn-hangzhou-i\"),\n\t\t\t\t\tLocalStorageInstanceType: pulumi.String(\"null\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tClusterZoneId:        pulumi.String(\"cn-hangzhou-i\"),\n\t\t\tDuration:             pulumi.Int(1),\n\t\t\tPayType:              pulumi.String(\"postPaid\"),\n\t\t\tVpcId:                defaultB21JUD.ID(),\n\t\t\tVersion:              pulumi.String(\"3.3\"),\n\t\t\tRunMode:              pulumi.String(\"shared_data\"),\n\t\t\tPackageType:          pulumi.String(\"official\"),\n\t\t\tAdminPassword:        pulumi.String(\"1qaz@QAZ\"),\n\t\t\tOssAccessingRoleName: pulumi.String(\"AliyunEMRStarRocksAccessingOSSRole\"),\n\t\t\tPricingCycle:         pulumi.String(\"Month\"),\n\t\t\tKmsKeyId:             pulumi.String(\"123\"),\n\t\t\tPromotionOptionNo:    pulumi.String(\"123\"),\n\t\t\tEncrypted:            pulumi.Bool(false),\n\t\t\tObserverNodeGroups: starrocks.InstanceObserverNodeGroupArray{\n\t\t\t\t\u0026starrocks.InstanceObserverNodeGroupArgs{\n\t\t\t\t\tCu:                       pulumi.Int(8),\n\t\t\t\t\tStorageSize:              pulumi.Int(100),\n\t\t\t\t\tStoragePerformanceLevel:  pulumi.String(\"pl1\"),\n\t\t\t\t\tDiskNumber:               pulumi.Int(1),\n\t\t\t\t\tResidentNodeNumber:       pulumi.Int(1),\n\t\t\t\t\tSpecType:                 pulumi.String(\"standard\"),\n\t\t\t\t\tLocalStorageInstanceType: pulumi.String(\"null\"),\n\t\t\t\t\tZoneId:                   pulumi.String(\"cn-hangzhou-h\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.starrocks.Instance;\nimport com.pulumi.alicloud.starrocks.InstanceArgs;\nimport com.pulumi.alicloud.starrocks.inputs.InstanceFrontendNodeGroupArgs;\nimport com.pulumi.alicloud.starrocks.inputs.InstanceVswitchArgs;\nimport com.pulumi.alicloud.starrocks.inputs.InstanceBackendNodeGroupArgs;\nimport com.pulumi.alicloud.starrocks.inputs.InstanceObserverNodeGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultB21JUD = new Network(\"defaultB21JUD\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var default106DkE = new Switch(\"default106DkE\", SwitchArgs.builder()\n            .vpcId(defaultB21JUD.id())\n            .cidrBlock(\"172.16.1.0/24\")\n            .vswitchName(\"sr-example\")\n            .zoneId(\"cn-hangzhou-i\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .instanceName(\"create-instance-1\")\n            .autoRenew(false)\n            .frontendNodeGroups(InstanceFrontendNodeGroupArgs.builder()\n                .cu(8)\n                .storageSize(100)\n                .residentNodeNumber(3)\n                .storagePerformanceLevel(\"pl1\")\n                .specType(\"standard\")\n                .diskNumber(1)\n                .zoneId(\"cn-hangzhou-i\")\n                .localStorageInstanceType(\"null\")\n                .build())\n            .vswitches(InstanceVswitchArgs.builder()\n                .vswitchId(default106DkE.id())\n                .zoneId(\"cn-hangzhou-i\")\n                .build())\n            .backendNodeGroups(InstanceBackendNodeGroupArgs.builder()\n                .cu(8)\n                .storageSize(100)\n                .residentNodeNumber(3)\n                .diskNumber(1)\n                .storagePerformanceLevel(\"pl1\")\n                .specType(\"standard\")\n                .zoneId(\"cn-hangzhou-i\")\n                .localStorageInstanceType(\"null\")\n                .build())\n            .clusterZoneId(\"cn-hangzhou-i\")\n            .duration(1)\n            .payType(\"postPaid\")\n            .vpcId(defaultB21JUD.id())\n            .version(\"3.3\")\n            .runMode(\"shared_data\")\n            .packageType(\"official\")\n            .adminPassword(\"1qaz@QAZ\")\n            .ossAccessingRoleName(\"AliyunEMRStarRocksAccessingOSSRole\")\n            .pricingCycle(\"Month\")\n            .kmsKeyId(\"123\")\n            .promotionOptionNo(\"123\")\n            .encrypted(false)\n            .observerNodeGroups(InstanceObserverNodeGroupArgs.builder()\n                .cu(8)\n                .storageSize(100)\n                .storagePerformanceLevel(\"pl1\")\n                .diskNumber(1)\n                .residentNodeNumber(1)\n                .specType(\"standard\")\n                .localStorageInstanceType(\"null\")\n                .zoneId(\"cn-hangzhou-h\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultB21JUD:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n  default106DkE:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultB21JUD.id}\n      cidrBlock: 172.16.1.0/24\n      vswitchName: sr-example\n      zoneId: cn-hangzhou-i\n  defaultInstance:\n    type: alicloud:starrocks:Instance\n    name: default\n    properties:\n      instanceName: create-instance-1\n      autoRenew: false\n      frontendNodeGroups:\n        - cu: '8'\n          storageSize: '100'\n          residentNodeNumber: '3'\n          storagePerformanceLevel: pl1\n          specType: standard\n          diskNumber: '1'\n          zoneId: cn-hangzhou-i\n          localStorageInstanceType: null\n      vswitches:\n        - vswitchId: ${default106DkE.id}\n          zoneId: cn-hangzhou-i\n      backendNodeGroups:\n        - cu: '8'\n          storageSize: '100'\n          residentNodeNumber: '3'\n          diskNumber: '1'\n          storagePerformanceLevel: pl1\n          specType: standard\n          zoneId: cn-hangzhou-i\n          localStorageInstanceType: null\n      clusterZoneId: cn-hangzhou-i\n      duration: '1'\n      payType: postPaid\n      vpcId: ${defaultB21JUD.id}\n      version: '3.3'\n      runMode: shared_data\n      packageType: official\n      adminPassword: 1qaz@QAZ\n      ossAccessingRoleName: AliyunEMRStarRocksAccessingOSSRole\n      pricingCycle: Month\n      kmsKeyId: '123'\n      promotionOptionNo: '123'\n      encrypted: false\n      observerNodeGroups:\n        - cu: '8'\n          storageSize: '100'\n          storagePerformanceLevel: pl1\n          diskNumber: '1'\n          residentNodeNumber: '1'\n          specType: standard\n          localStorageInstanceType: null\n          zoneId: cn-hangzhou-h\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nStar Rocks Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:starrocks/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"adminPassword":{"type":"string","description":"Password of admin user.\n"},"autoRenew":{"type":"boolean","description":"Whether to enable automatic renewal. This is only meaningful when payType is set to PrePaid. Disabled by default.\n"},"backendNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:starrocks/InstanceBackendNodeGroup:InstanceBackendNodeGroup"},"description":"BackendNodeGroups See \u003cspan pulumi-lang-nodejs=\"`backendNodeGroups`\" pulumi-lang-dotnet=\"`BackendNodeGroups`\" pulumi-lang-go=\"`backendNodeGroups`\" pulumi-lang-python=\"`backend_node_groups`\" pulumi-lang-yaml=\"`backendNodeGroups`\" pulumi-lang-java=\"`backendNodeGroups`\"\u003e`backend_node_groups`\u003c/span\u003e below.\n"},"clusterZoneId":{"type":"string","description":"ZoneId of instance.\n"},"createTime":{"type":"string","description":"The creation time of the instance.\n"},"duration":{"type":"integer","description":"Duration of purchase. It is only meaningful when payType is set to PrePaid.\n"},"encrypted":{"type":"boolean","description":"Whether encrypted\n"},"frontendNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:starrocks/InstanceFrontendNodeGroup:InstanceFrontendNodeGroup"},"description":"FrontendNodeGroups See \u003cspan pulumi-lang-nodejs=\"`frontendNodeGroups`\" pulumi-lang-dotnet=\"`FrontendNodeGroups`\" pulumi-lang-go=\"`frontendNodeGroups`\" pulumi-lang-python=\"`frontend_node_groups`\" pulumi-lang-yaml=\"`frontendNodeGroups`\" pulumi-lang-java=\"`frontendNodeGroups`\"\u003e`frontend_node_groups`\u003c/span\u003e below.\n"},"instanceName":{"type":"string","description":"The name of the instance.\n"},"kmsKeyId":{"type":"string","description":"KmsKeyId\n"},"observerNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:starrocks/InstanceObserverNodeGroup:InstanceObserverNodeGroup"},"description":"ObserverNodeGroups See \u003cspan pulumi-lang-nodejs=\"`observerNodeGroups`\" pulumi-lang-dotnet=\"`ObserverNodeGroups`\" pulumi-lang-go=\"`observerNodeGroups`\" pulumi-lang-python=\"`observer_node_groups`\" pulumi-lang-yaml=\"`observerNodeGroups`\" pulumi-lang-java=\"`observerNodeGroups`\"\u003e`observer_node_groups`\u003c/span\u003e below.\n"},"ossAccessingRoleName":{"type":"string","description":"Role name used for password-free access to OSS.\n"},"packageType":{"type":"string","description":"The package type of the instance:\n- trial\n- official\n"},"payType":{"type":"string","description":"The pay type of the instance:\n- prePaid\n- postPaid\n"},"pricingCycle":{"type":"string","description":"The duration unit for purchasing:\n- Month\n- Year\nThis is only meaningful when PayType is set to PrePaid.\n"},"promotionOptionNo":{"type":"string","description":"Promotion\n"},"regionId":{"type":"string","description":"The region ID of the instance.\n"},"resourceGroupId":{"type":"string","description":"ResourceGroupId\n"},"runMode":{"type":"string","description":"The run mode of the instance:\n-\u003cspan pulumi-lang-nodejs=\" sharedNothing\n\" pulumi-lang-dotnet=\" SharedNothing\n\" pulumi-lang-go=\" sharedNothing\n\" pulumi-lang-python=\" shared_nothing\n\" pulumi-lang-yaml=\" sharedNothing\n\" pulumi-lang-java=\" sharedNothing\n\"\u003e shared_nothing\n\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\" sharedData\n\" pulumi-lang-dotnet=\" SharedData\n\" pulumi-lang-go=\" sharedData\n\" pulumi-lang-python=\" shared_data\n\" pulumi-lang-yaml=\" sharedData\n\" pulumi-lang-java=\" sharedData\n\"\u003e shared_data\n\u003c/span\u003e- lakehouse\n"},"status":{"type":"string","description":"The status of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tag list of the instance.\n"},"version":{"type":"string","description":"The version of the instance.\n"},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n"},"vswitches":{"type":"array","items":{"$ref":"#/types/alicloud:starrocks/InstanceVswitch:InstanceVswitch"},"description":"The VSwitches info of the instance. See \u003cspan pulumi-lang-nodejs=\"`vswitches`\" pulumi-lang-dotnet=\"`Vswitches`\" pulumi-lang-go=\"`vswitches`\" pulumi-lang-python=\"`vswitches`\" pulumi-lang-yaml=\"`vswitches`\" pulumi-lang-java=\"`vswitches`\"\u003e`vswitches`\u003c/span\u003e below.\n"}},"required":["adminPassword","clusterZoneId","createTime","instanceName","packageType","payType","regionId","resourceGroupId","runMode","status","version","vpcId"],"inputProperties":{"adminPassword":{"type":"string","description":"Password of admin user.\n"},"autoRenew":{"type":"boolean","description":"Whether to enable automatic renewal. This is only meaningful when payType is set to PrePaid. Disabled by default.\n"},"backendNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:starrocks/InstanceBackendNodeGroup:InstanceBackendNodeGroup"},"description":"BackendNodeGroups See \u003cspan pulumi-lang-nodejs=\"`backendNodeGroups`\" pulumi-lang-dotnet=\"`BackendNodeGroups`\" pulumi-lang-go=\"`backendNodeGroups`\" pulumi-lang-python=\"`backend_node_groups`\" pulumi-lang-yaml=\"`backendNodeGroups`\" pulumi-lang-java=\"`backendNodeGroups`\"\u003e`backend_node_groups`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"clusterZoneId":{"type":"string","description":"ZoneId of instance.\n"},"duration":{"type":"integer","description":"Duration of purchase. It is only meaningful when payType is set to PrePaid.\n"},"encrypted":{"type":"boolean","description":"Whether encrypted\n","willReplaceOnChanges":true},"frontendNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:starrocks/InstanceFrontendNodeGroup:InstanceFrontendNodeGroup"},"description":"FrontendNodeGroups See \u003cspan pulumi-lang-nodejs=\"`frontendNodeGroups`\" pulumi-lang-dotnet=\"`FrontendNodeGroups`\" pulumi-lang-go=\"`frontendNodeGroups`\" pulumi-lang-python=\"`frontend_node_groups`\" pulumi-lang-yaml=\"`frontendNodeGroups`\" pulumi-lang-java=\"`frontendNodeGroups`\"\u003e`frontend_node_groups`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the instance.\n"},"kmsKeyId":{"type":"string","description":"KmsKeyId\n","willReplaceOnChanges":true},"observerNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:starrocks/InstanceObserverNodeGroup:InstanceObserverNodeGroup"},"description":"ObserverNodeGroups See \u003cspan pulumi-lang-nodejs=\"`observerNodeGroups`\" pulumi-lang-dotnet=\"`ObserverNodeGroups`\" pulumi-lang-go=\"`observerNodeGroups`\" pulumi-lang-python=\"`observer_node_groups`\" pulumi-lang-yaml=\"`observerNodeGroups`\" pulumi-lang-java=\"`observerNodeGroups`\"\u003e`observer_node_groups`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"ossAccessingRoleName":{"type":"string","description":"Role name used for password-free access to OSS.\n"},"packageType":{"type":"string","description":"The package type of the instance:\n- trial\n- official\n","willReplaceOnChanges":true},"payType":{"type":"string","description":"The pay type of the instance:\n- prePaid\n- postPaid\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The duration unit for purchasing:\n- Month\n- Year\nThis is only meaningful when PayType is set to PrePaid.\n"},"promotionOptionNo":{"type":"string","description":"Promotion\n"},"resourceGroupId":{"type":"string","description":"ResourceGroupId\n"},"runMode":{"type":"string","description":"The run mode of the instance:\n-\u003cspan pulumi-lang-nodejs=\" sharedNothing\n\" pulumi-lang-dotnet=\" SharedNothing\n\" pulumi-lang-go=\" sharedNothing\n\" pulumi-lang-python=\" shared_nothing\n\" pulumi-lang-yaml=\" sharedNothing\n\" pulumi-lang-java=\" sharedNothing\n\"\u003e shared_nothing\n\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\" sharedData\n\" pulumi-lang-dotnet=\" SharedData\n\" pulumi-lang-go=\" sharedData\n\" pulumi-lang-python=\" shared_data\n\" pulumi-lang-yaml=\" sharedData\n\" pulumi-lang-java=\" sharedData\n\"\u003e shared_data\n\u003c/span\u003e- lakehouse\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tag list of the instance.\n"},"version":{"type":"string","description":"The version of the instance.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n","willReplaceOnChanges":true},"vswitches":{"type":"array","items":{"$ref":"#/types/alicloud:starrocks/InstanceVswitch:InstanceVswitch"},"description":"The VSwitches info of the instance. See \u003cspan pulumi-lang-nodejs=\"`vswitches`\" pulumi-lang-dotnet=\"`Vswitches`\" pulumi-lang-go=\"`vswitches`\" pulumi-lang-python=\"`vswitches`\" pulumi-lang-yaml=\"`vswitches`\" pulumi-lang-java=\"`vswitches`\"\u003e`vswitches`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"requiredInputs":["adminPassword","clusterZoneId","instanceName","packageType","payType","runMode","version","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"adminPassword":{"type":"string","description":"Password of admin user.\n"},"autoRenew":{"type":"boolean","description":"Whether to enable automatic renewal. This is only meaningful when payType is set to PrePaid. Disabled by default.\n"},"backendNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:starrocks/InstanceBackendNodeGroup:InstanceBackendNodeGroup"},"description":"BackendNodeGroups See \u003cspan pulumi-lang-nodejs=\"`backendNodeGroups`\" pulumi-lang-dotnet=\"`BackendNodeGroups`\" pulumi-lang-go=\"`backendNodeGroups`\" pulumi-lang-python=\"`backend_node_groups`\" pulumi-lang-yaml=\"`backendNodeGroups`\" pulumi-lang-java=\"`backendNodeGroups`\"\u003e`backend_node_groups`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"clusterZoneId":{"type":"string","description":"ZoneId of instance.\n"},"createTime":{"type":"string","description":"The creation time of the instance.\n"},"duration":{"type":"integer","description":"Duration of purchase. It is only meaningful when payType is set to PrePaid.\n"},"encrypted":{"type":"boolean","description":"Whether encrypted\n","willReplaceOnChanges":true},"frontendNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:starrocks/InstanceFrontendNodeGroup:InstanceFrontendNodeGroup"},"description":"FrontendNodeGroups See \u003cspan pulumi-lang-nodejs=\"`frontendNodeGroups`\" pulumi-lang-dotnet=\"`FrontendNodeGroups`\" pulumi-lang-go=\"`frontendNodeGroups`\" pulumi-lang-python=\"`frontend_node_groups`\" pulumi-lang-yaml=\"`frontendNodeGroups`\" pulumi-lang-java=\"`frontendNodeGroups`\"\u003e`frontend_node_groups`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"The name of the instance.\n"},"kmsKeyId":{"type":"string","description":"KmsKeyId\n","willReplaceOnChanges":true},"observerNodeGroups":{"type":"array","items":{"$ref":"#/types/alicloud:starrocks/InstanceObserverNodeGroup:InstanceObserverNodeGroup"},"description":"ObserverNodeGroups See \u003cspan pulumi-lang-nodejs=\"`observerNodeGroups`\" pulumi-lang-dotnet=\"`ObserverNodeGroups`\" pulumi-lang-go=\"`observerNodeGroups`\" pulumi-lang-python=\"`observer_node_groups`\" pulumi-lang-yaml=\"`observerNodeGroups`\" pulumi-lang-java=\"`observerNodeGroups`\"\u003e`observer_node_groups`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"ossAccessingRoleName":{"type":"string","description":"Role name used for password-free access to OSS.\n"},"packageType":{"type":"string","description":"The package type of the instance:\n- trial\n- official\n","willReplaceOnChanges":true},"payType":{"type":"string","description":"The pay type of the instance:\n- prePaid\n- postPaid\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"The duration unit for purchasing:\n- Month\n- Year\nThis is only meaningful when PayType is set to PrePaid.\n"},"promotionOptionNo":{"type":"string","description":"Promotion\n"},"regionId":{"type":"string","description":"The region ID of the instance.\n"},"resourceGroupId":{"type":"string","description":"ResourceGroupId\n"},"runMode":{"type":"string","description":"The run mode of the instance:\n-\u003cspan pulumi-lang-nodejs=\" sharedNothing\n\" pulumi-lang-dotnet=\" SharedNothing\n\" pulumi-lang-go=\" sharedNothing\n\" pulumi-lang-python=\" shared_nothing\n\" pulumi-lang-yaml=\" sharedNothing\n\" pulumi-lang-java=\" sharedNothing\n\"\u003e shared_nothing\n\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\" sharedData\n\" pulumi-lang-dotnet=\" SharedData\n\" pulumi-lang-go=\" sharedData\n\" pulumi-lang-python=\" shared_data\n\" pulumi-lang-yaml=\" sharedData\n\" pulumi-lang-java=\" sharedData\n\"\u003e shared_data\n\u003c/span\u003e- lakehouse\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tag list of the instance.\n"},"version":{"type":"string","description":"The version of the instance.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VPC ID of the instance.\n","willReplaceOnChanges":true},"vswitches":{"type":"array","items":{"$ref":"#/types/alicloud:starrocks/InstanceVswitch:InstanceVswitch"},"description":"The VSwitches info of the instance. See \u003cspan pulumi-lang-nodejs=\"`vswitches`\" pulumi-lang-dotnet=\"`Vswitches`\" pulumi-lang-go=\"`vswitches`\" pulumi-lang-python=\"`vswitches`\" pulumi-lang-yaml=\"`vswitches`\" pulumi-lang-java=\"`vswitches`\"\u003e`vswitches`\u003c/span\u003e below.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"alicloud:index/starRocksInstance:StarRocksInstance"}]},"alicloud:starrocks/nodeGroup:NodeGroup":{"description":"Provides a Star Rocks Node Group resource.\n\n\n\nFor information about Star Rocks Node Group and how to use it, see [What is Node Group](https://next.api.alibabacloud.com/document/starrocks/2022-10-19/CreateNodeGroup).\n\n\u003e **NOTE:** Available since v1.262.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultq6pcFe = new alicloud.vpc.Network(\"defaultq6pcFe\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: \"example-vpc-487\",\n});\nconst defaultujlpyG = new alicloud.vpc.Switch(\"defaultujlpyG\", {\n    vpcId: defaultq6pcFe.id,\n    zoneId: \"cn-hangzhou-i\",\n    cidrBlock: \"172.16.0.0/24\",\n    vswitchName: \"sr-example-ng\",\n});\nconst defaultvjnpM0 = new alicloud.starrocks.Instance(\"defaultvjnpM0\", {\n    clusterZoneId: \"cn-hangzhou-i\",\n    encrypted: false,\n    autoRenew: false,\n    payType: \"postPaid\",\n    frontendNodeGroups: [{\n        cu: 8,\n        storageSize: 100,\n        storagePerformanceLevel: \"pl1\",\n        diskNumber: 1,\n        zoneId: \"cn-hangzhou-i\",\n        specType: \"standard\",\n        residentNodeNumber: 1,\n    }],\n    instanceName: \"t1\",\n    vswitches: [{\n        zoneId: \"cn-hangzhou-i\",\n        vswitchId: defaultujlpyG.id,\n    }],\n    vpcId: defaultq6pcFe.id,\n    version: \"3.3\",\n    runMode: \"shared_data\",\n    packageType: \"official\",\n    ossAccessingRoleName: \"AliyunEMRStarRocksAccessingOSSRolecn\",\n    adminPassword: \"1qaz@QAZ\",\n    backendNodeGroups: [{\n        cu: 8,\n        storageSize: 200,\n        zoneId: \"cn-hangzhou-i\",\n        specType: \"standard\",\n        residentNodeNumber: 3,\n        diskNumber: 1,\n        storagePerformanceLevel: \"pl1\",\n    }],\n});\nconst _default = new alicloud.starrocks.NodeGroup(\"default\", {\n    description: \"example_desc\",\n    nodeGroupName: \"ng_676\",\n    instanceId: defaultvjnpM0.id,\n    specType: \"standard\",\n    storagePerformanceLevel: \"pl1\",\n    pricingCycle: \"1\",\n    autoRenew: false,\n    storageSize: 200,\n    duration: 1,\n    payType: \"postPaid\",\n    cu: 8,\n    diskNumber: 1,\n    residentNodeNumber: 1,\n    localStorageInstanceType: \"non_local_storage\",\n    promotionOptionNo: \"blank\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaultq6pc_fe = alicloud.vpc.Network(\"defaultq6pcFe\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=\"example-vpc-487\")\ndefaultujlpy_g = alicloud.vpc.Switch(\"defaultujlpyG\",\n    vpc_id=defaultq6pc_fe.id,\n    zone_id=\"cn-hangzhou-i\",\n    cidr_block=\"172.16.0.0/24\",\n    vswitch_name=\"sr-example-ng\")\ndefaultvjnp_m0 = alicloud.starrocks.Instance(\"defaultvjnpM0\",\n    cluster_zone_id=\"cn-hangzhou-i\",\n    encrypted=False,\n    auto_renew=False,\n    pay_type=\"postPaid\",\n    frontend_node_groups=[{\n        \"cu\": 8,\n        \"storage_size\": 100,\n        \"storage_performance_level\": \"pl1\",\n        \"disk_number\": 1,\n        \"zone_id\": \"cn-hangzhou-i\",\n        \"spec_type\": \"standard\",\n        \"resident_node_number\": 1,\n    }],\n    instance_name=\"t1\",\n    vswitches=[{\n        \"zone_id\": \"cn-hangzhou-i\",\n        \"vswitch_id\": defaultujlpy_g.id,\n    }],\n    vpc_id=defaultq6pc_fe.id,\n    version=\"3.3\",\n    run_mode=\"shared_data\",\n    package_type=\"official\",\n    oss_accessing_role_name=\"AliyunEMRStarRocksAccessingOSSRolecn\",\n    admin_password=\"1qaz@QAZ\",\n    backend_node_groups=[{\n        \"cu\": 8,\n        \"storage_size\": 200,\n        \"zone_id\": \"cn-hangzhou-i\",\n        \"spec_type\": \"standard\",\n        \"resident_node_number\": 3,\n        \"disk_number\": 1,\n        \"storage_performance_level\": \"pl1\",\n    }])\ndefault = alicloud.starrocks.NodeGroup(\"default\",\n    description=\"example_desc\",\n    node_group_name=\"ng_676\",\n    instance_id=defaultvjnp_m0.id,\n    spec_type=\"standard\",\n    storage_performance_level=\"pl1\",\n    pricing_cycle=\"1\",\n    auto_renew=False,\n    storage_size=200,\n    duration=1,\n    pay_type=\"postPaid\",\n    cu=8,\n    disk_number=1,\n    resident_node_number=1,\n    local_storage_instance_type=\"non_local_storage\",\n    promotion_option_no=\"blank\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultq6pcFe = new AliCloud.Vpc.Network(\"defaultq6pcFe\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = \"example-vpc-487\",\n    });\n\n    var defaultujlpyG = new AliCloud.Vpc.Switch(\"defaultujlpyG\", new()\n    {\n        VpcId = defaultq6pcFe.Id,\n        ZoneId = \"cn-hangzhou-i\",\n        CidrBlock = \"172.16.0.0/24\",\n        VswitchName = \"sr-example-ng\",\n    });\n\n    var defaultvjnpM0 = new AliCloud.StarRocks.Instance(\"defaultvjnpM0\", new()\n    {\n        ClusterZoneId = \"cn-hangzhou-i\",\n        Encrypted = false,\n        AutoRenew = false,\n        PayType = \"postPaid\",\n        FrontendNodeGroups = new[]\n        {\n            new AliCloud.starRocks.Inputs.InstanceFrontendNodeGroupArgs\n            {\n                Cu = 8,\n                StorageSize = 100,\n                StoragePerformanceLevel = \"pl1\",\n                DiskNumber = 1,\n                ZoneId = \"cn-hangzhou-i\",\n                SpecType = \"standard\",\n                ResidentNodeNumber = 1,\n            },\n        },\n        InstanceName = \"t1\",\n        Vswitches = new[]\n        {\n            new AliCloud.starRocks.Inputs.InstanceVswitchArgs\n            {\n                ZoneId = \"cn-hangzhou-i\",\n                VswitchId = defaultujlpyG.Id,\n            },\n        },\n        VpcId = defaultq6pcFe.Id,\n        Version = \"3.3\",\n        RunMode = \"shared_data\",\n        PackageType = \"official\",\n        OssAccessingRoleName = \"AliyunEMRStarRocksAccessingOSSRolecn\",\n        AdminPassword = \"1qaz@QAZ\",\n        BackendNodeGroups = new[]\n        {\n            new AliCloud.starRocks.Inputs.InstanceBackendNodeGroupArgs\n            {\n                Cu = 8,\n                StorageSize = 200,\n                ZoneId = \"cn-hangzhou-i\",\n                SpecType = \"standard\",\n                ResidentNodeNumber = 3,\n                DiskNumber = 1,\n                StoragePerformanceLevel = \"pl1\",\n            },\n        },\n    });\n\n    var @default = new AliCloud.StarRocks.NodeGroup(\"default\", new()\n    {\n        Description = \"example_desc\",\n        NodeGroupName = \"ng_676\",\n        InstanceId = defaultvjnpM0.Id,\n        SpecType = \"standard\",\n        StoragePerformanceLevel = \"pl1\",\n        PricingCycle = \"1\",\n        AutoRenew = false,\n        StorageSize = 200,\n        Duration = 1,\n        PayType = \"postPaid\",\n        Cu = 8,\n        DiskNumber = 1,\n        ResidentNodeNumber = 1,\n        LocalStorageInstanceType = \"non_local_storage\",\n        PromotionOptionNo = \"blank\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/starrocks\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultq6pcFe, err := vpc.NewNetwork(ctx, \"defaultq6pcFe\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(\"example-vpc-487\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultujlpyG, err := vpc.NewSwitch(ctx, \"defaultujlpyG\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultq6pcFe.ID(),\n\t\t\tZoneId:      pulumi.String(\"cn-hangzhou-i\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tVswitchName: pulumi.String(\"sr-example-ng\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultvjnpM0, err := starrocks.NewInstance(ctx, \"defaultvjnpM0\", \u0026starrocks.InstanceArgs{\n\t\t\tClusterZoneId: pulumi.String(\"cn-hangzhou-i\"),\n\t\t\tEncrypted:     pulumi.Bool(false),\n\t\t\tAutoRenew:     pulumi.Bool(false),\n\t\t\tPayType:       pulumi.String(\"postPaid\"),\n\t\t\tFrontendNodeGroups: starrocks.InstanceFrontendNodeGroupArray{\n\t\t\t\t\u0026starrocks.InstanceFrontendNodeGroupArgs{\n\t\t\t\t\tCu:                      pulumi.Int(8),\n\t\t\t\t\tStorageSize:             pulumi.Int(100),\n\t\t\t\t\tStoragePerformanceLevel: pulumi.String(\"pl1\"),\n\t\t\t\t\tDiskNumber:              pulumi.Int(1),\n\t\t\t\t\tZoneId:                  pulumi.String(\"cn-hangzhou-i\"),\n\t\t\t\t\tSpecType:                pulumi.String(\"standard\"),\n\t\t\t\t\tResidentNodeNumber:      pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInstanceName: pulumi.String(\"t1\"),\n\t\t\tVswitches: starrocks.InstanceVswitchArray{\n\t\t\t\t\u0026starrocks.InstanceVswitchArgs{\n\t\t\t\t\tZoneId:    pulumi.String(\"cn-hangzhou-i\"),\n\t\t\t\t\tVswitchId: defaultujlpyG.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVpcId:                defaultq6pcFe.ID(),\n\t\t\tVersion:              pulumi.String(\"3.3\"),\n\t\t\tRunMode:              pulumi.String(\"shared_data\"),\n\t\t\tPackageType:          pulumi.String(\"official\"),\n\t\t\tOssAccessingRoleName: pulumi.String(\"AliyunEMRStarRocksAccessingOSSRolecn\"),\n\t\t\tAdminPassword:        pulumi.String(\"1qaz@QAZ\"),\n\t\t\tBackendNodeGroups: starrocks.InstanceBackendNodeGroupArray{\n\t\t\t\t\u0026starrocks.InstanceBackendNodeGroupArgs{\n\t\t\t\t\tCu:                      pulumi.Int(8),\n\t\t\t\t\tStorageSize:             pulumi.Int(200),\n\t\t\t\t\tZoneId:                  pulumi.String(\"cn-hangzhou-i\"),\n\t\t\t\t\tSpecType:                pulumi.String(\"standard\"),\n\t\t\t\t\tResidentNodeNumber:      pulumi.Int(3),\n\t\t\t\t\tDiskNumber:              pulumi.Int(1),\n\t\t\t\t\tStoragePerformanceLevel: pulumi.String(\"pl1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = starrocks.NewNodeGroup(ctx, \"default\", \u0026starrocks.NodeGroupArgs{\n\t\t\tDescription:              pulumi.String(\"example_desc\"),\n\t\t\tNodeGroupName:            pulumi.String(\"ng_676\"),\n\t\t\tInstanceId:               defaultvjnpM0.ID(),\n\t\t\tSpecType:                 pulumi.String(\"standard\"),\n\t\t\tStoragePerformanceLevel:  pulumi.String(\"pl1\"),\n\t\t\tPricingCycle:             pulumi.String(\"1\"),\n\t\t\tAutoRenew:                pulumi.Bool(false),\n\t\t\tStorageSize:              pulumi.Int(200),\n\t\t\tDuration:                 pulumi.Int(1),\n\t\t\tPayType:                  pulumi.String(\"postPaid\"),\n\t\t\tCu:                       pulumi.Int(8),\n\t\t\tDiskNumber:               pulumi.Int(1),\n\t\t\tResidentNodeNumber:       pulumi.Int(1),\n\t\t\tLocalStorageInstanceType: pulumi.String(\"non_local_storage\"),\n\t\t\tPromotionOptionNo:        pulumi.String(\"blank\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.starrocks.Instance;\nimport com.pulumi.alicloud.starrocks.InstanceArgs;\nimport com.pulumi.alicloud.starrocks.inputs.InstanceFrontendNodeGroupArgs;\nimport com.pulumi.alicloud.starrocks.inputs.InstanceVswitchArgs;\nimport com.pulumi.alicloud.starrocks.inputs.InstanceBackendNodeGroupArgs;\nimport com.pulumi.alicloud.starrocks.NodeGroup;\nimport com.pulumi.alicloud.starrocks.NodeGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultq6pcFe = new Network(\"defaultq6pcFe\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(\"example-vpc-487\")\n            .build());\n\n        var defaultujlpyG = new Switch(\"defaultujlpyG\", SwitchArgs.builder()\n            .vpcId(defaultq6pcFe.id())\n            .zoneId(\"cn-hangzhou-i\")\n            .cidrBlock(\"172.16.0.0/24\")\n            .vswitchName(\"sr-example-ng\")\n            .build());\n\n        var defaultvjnpM0 = new Instance(\"defaultvjnpM0\", InstanceArgs.builder()\n            .clusterZoneId(\"cn-hangzhou-i\")\n            .encrypted(false)\n            .autoRenew(false)\n            .payType(\"postPaid\")\n            .frontendNodeGroups(InstanceFrontendNodeGroupArgs.builder()\n                .cu(8)\n                .storageSize(100)\n                .storagePerformanceLevel(\"pl1\")\n                .diskNumber(1)\n                .zoneId(\"cn-hangzhou-i\")\n                .specType(\"standard\")\n                .residentNodeNumber(1)\n                .build())\n            .instanceName(\"t1\")\n            .vswitches(InstanceVswitchArgs.builder()\n                .zoneId(\"cn-hangzhou-i\")\n                .vswitchId(defaultujlpyG.id())\n                .build())\n            .vpcId(defaultq6pcFe.id())\n            .version(\"3.3\")\n            .runMode(\"shared_data\")\n            .packageType(\"official\")\n            .ossAccessingRoleName(\"AliyunEMRStarRocksAccessingOSSRolecn\")\n            .adminPassword(\"1qaz@QAZ\")\n            .backendNodeGroups(InstanceBackendNodeGroupArgs.builder()\n                .cu(8)\n                .storageSize(200)\n                .zoneId(\"cn-hangzhou-i\")\n                .specType(\"standard\")\n                .residentNodeNumber(3)\n                .diskNumber(1)\n                .storagePerformanceLevel(\"pl1\")\n                .build())\n            .build());\n\n        var default_ = new NodeGroup(\"default\", NodeGroupArgs.builder()\n            .description(\"example_desc\")\n            .nodeGroupName(\"ng_676\")\n            .instanceId(defaultvjnpM0.id())\n            .specType(\"standard\")\n            .storagePerformanceLevel(\"pl1\")\n            .pricingCycle(\"1\")\n            .autoRenew(false)\n            .storageSize(200)\n            .duration(1)\n            .payType(\"postPaid\")\n            .cu(8)\n            .diskNumber(1)\n            .residentNodeNumber(1)\n            .localStorageInstanceType(\"non_local_storage\")\n            .promotionOptionNo(\"blank\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultq6pcFe:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName: example-vpc-487\n  defaultujlpyG:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultq6pcFe.id}\n      zoneId: cn-hangzhou-i\n      cidrBlock: 172.16.0.0/24\n      vswitchName: sr-example-ng\n  defaultvjnpM0:\n    type: alicloud:starrocks:Instance\n    properties:\n      clusterZoneId: cn-hangzhou-i\n      encrypted: false\n      autoRenew: false\n      payType: postPaid\n      frontendNodeGroups:\n        - cu: '8'\n          storageSize: '100'\n          storagePerformanceLevel: pl1\n          diskNumber: '1'\n          zoneId: cn-hangzhou-i\n          specType: standard\n          residentNodeNumber: '1'\n      instanceName: t1\n      vswitches:\n        - zoneId: cn-hangzhou-i\n          vswitchId: ${defaultujlpyG.id}\n      vpcId: ${defaultq6pcFe.id}\n      version: '3.3'\n      runMode: shared_data\n      packageType: official\n      ossAccessingRoleName: AliyunEMRStarRocksAccessingOSSRolecn\n      adminPassword: 1qaz@QAZ\n      backendNodeGroups:\n        - cu: '8'\n          storageSize: '200'\n          zoneId: cn-hangzhou-i\n          specType: standard\n          residentNodeNumber: '3'\n          diskNumber: '1'\n          storagePerformanceLevel: pl1\n  default:\n    type: alicloud:starrocks:NodeGroup\n    properties:\n      description: example_desc\n      nodeGroupName: ng_676\n      instanceId: ${defaultvjnpM0.id}\n      specType: standard\n      storagePerformanceLevel: pl1\n      pricingCycle: '1'\n      autoRenew: false\n      storageSize: '200'\n      duration: '1'\n      payType: postPaid\n      cu: '8'\n      diskNumber: '1'\n      residentNodeNumber: '1'\n      localStorageInstanceType: non_local_storage\n      promotionOptionNo: blank\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nStar Rocks Node Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:starrocks/nodeGroup:NodeGroup example \u003cinstance_id\u003e:\u003cnode_group_id\u003e\n```\n\n","properties":{"autoRenew":{"type":"boolean","description":"Whether auto-renewal is enabled.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"createTime":{"type":"string","description":"The creation time of the node group.\n"},"cu":{"type":"integer","description":"Number of CUs. CU (Compute Unit) is the basic unit of service measurement, where 1 CU = 1 vCPU + 4 GiB memory. When SpecType is memory-optimized, 1 CU = 1 vCPU + 8 GiB memory.\n"},"description":{"type":"string","description":"Description of node group.\n"},"diskNumber":{"type":"integer","description":"Number of disks.\n"},"duration":{"type":"integer","description":"Duration of node group.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"fastMode":{"type":"boolean","description":"Whether to restart in fast restart mode. The default is false.\n- true: Reboots the compute node in fast restart mode. Restart computing nodes in multiple batches, restart in parallel within a batch, and execute serially between batches;\n- false: Restarts the compute node in rolling restart mode.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"localStorageInstanceType":{"type":"string","description":"Node group local SSD instance specification. This value is only relevant when based on ECS instances and SpecType is set to local SSD/large-scale storage.\n"},"nodeGroupId":{"type":"string","description":"The ID of the node group.\n"},"nodeGroupName":{"type":"string","description":"The name of the node group.\n"},"payType":{"type":"string","description":"Payment type:\n- PrePaid: Subscription (prepaid).\n- PostPaid: Pay-as-you-go (postpaid).\n"},"pricingCycle":{"type":"string","description":"Unit of purchase duration:\n- Month\n- Year\n\nThis is only applicable when payType is set to PrePaid.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"promotionOptionNo":{"type":"string","description":"ID of promotion option.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"regionId":{"type":"string","description":"The region ID of the node group.\n"},"residentNodeNumber":{"type":"integer","description":"Number of nodes.\n"},"specType":{"type":"string","description":"Node group spec types include the following:\n- standard: Standard edition.\n- localSSD: Local SSD.\n- bigData: Large-scale storage.\n- ramEnhanced: Memory-enhanced type.\n- networkEnhanced: Network-enhanced type.\n"},"status":{"type":"string","description":"Node group status, including the following values:_FAILED: Creation failed._CONFIG: Modifying configuration._TIMEZONE: Modifying timezone._SCALING_OUT: Elastic scaling out._SCALING_IN: Elastic scaling in._OUT: Scaling out._IN: Scaling in._UP: Scaling up (upgrading configuration)._DOWN: Scaling down (downgrading configuration)._PUBLIC_NETWORK: Enabling public network._PUBLIC_NETWORK: Disabling public network._AZ: Switching availability zones.\n"},"storagePerformanceLevel":{"type":"string","description":"Performance levels of the cloud disk. Includes the following values:\n- pl0: Maximum random read/write IOPS of a single disk is 10,000.\n- pl1: Maximum random read/write IOPS of a single disk is 50,000.\n- pl2: Maximum random read/write IOPS of a single disk is 100,000.\n- pl3: Maximum random read/write IOPS of a single disk is 1,000,000.\n"},"storageSize":{"type":"integer","description":"Storage size, measured in GiB.\n"}},"required":["createTime","instanceId","nodeGroupId","regionId","status"],"inputProperties":{"autoRenew":{"type":"boolean","description":"Whether auto-renewal is enabled.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"cu":{"type":"integer","description":"Number of CUs. CU (Compute Unit) is the basic unit of service measurement, where 1 CU = 1 vCPU + 4 GiB memory. When SpecType is memory-optimized, 1 CU = 1 vCPU + 8 GiB memory.\n"},"description":{"type":"string","description":"Description of node group.\n","willReplaceOnChanges":true},"diskNumber":{"type":"integer","description":"Number of disks.\n"},"duration":{"type":"integer","description":"Duration of node group.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"fastMode":{"type":"boolean","description":"Whether to restart in fast restart mode. The default is false.\n- true: Reboots the compute node in fast restart mode. Restart computing nodes in multiple batches, restart in parallel within a batch, and execute serially between batches;\n- false: Restarts the compute node in rolling restart mode.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"localStorageInstanceType":{"type":"string","description":"Node group local SSD instance specification. This value is only relevant when based on ECS instances and SpecType is set to local SSD/large-scale storage.\n","willReplaceOnChanges":true},"nodeGroupName":{"type":"string","description":"The name of the node group.\n","willReplaceOnChanges":true},"payType":{"type":"string","description":"Payment type:\n- PrePaid: Subscription (prepaid).\n- PostPaid: Pay-as-you-go (postpaid).\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"Unit of purchase duration:\n- Month\n- Year\n\nThis is only applicable when payType is set to PrePaid.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"promotionOptionNo":{"type":"string","description":"ID of promotion option.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"residentNodeNumber":{"type":"integer","description":"Number of nodes.\n"},"specType":{"type":"string","description":"Node group spec types include the following:\n- standard: Standard edition.\n- localSSD: Local SSD.\n- bigData: Large-scale storage.\n- ramEnhanced: Memory-enhanced type.\n- networkEnhanced: Network-enhanced type.\n"},"storagePerformanceLevel":{"type":"string","description":"Performance levels of the cloud disk. Includes the following values:\n- pl0: Maximum random read/write IOPS of a single disk is 10,000.\n- pl1: Maximum random read/write IOPS of a single disk is 50,000.\n- pl2: Maximum random read/write IOPS of a single disk is 100,000.\n- pl3: Maximum random read/write IOPS of a single disk is 1,000,000.\n"},"storageSize":{"type":"integer","description":"Storage size, measured in GiB.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering NodeGroup resources.\n","properties":{"autoRenew":{"type":"boolean","description":"Whether auto-renewal is enabled.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"createTime":{"type":"string","description":"The creation time of the node group.\n"},"cu":{"type":"integer","description":"Number of CUs. CU (Compute Unit) is the basic unit of service measurement, where 1 CU = 1 vCPU + 4 GiB memory. When SpecType is memory-optimized, 1 CU = 1 vCPU + 8 GiB memory.\n"},"description":{"type":"string","description":"Description of node group.\n","willReplaceOnChanges":true},"diskNumber":{"type":"integer","description":"Number of disks.\n"},"duration":{"type":"integer","description":"Duration of node group.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"fastMode":{"type":"boolean","description":"Whether to restart in fast restart mode. The default is false.\n- true: Reboots the compute node in fast restart mode. Restart computing nodes in multiple batches, restart in parallel within a batch, and execute serially between batches;\n- false: Restarts the compute node in rolling restart mode.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n","willReplaceOnChanges":true},"localStorageInstanceType":{"type":"string","description":"Node group local SSD instance specification. This value is only relevant when based on ECS instances and SpecType is set to local SSD/large-scale storage.\n","willReplaceOnChanges":true},"nodeGroupId":{"type":"string","description":"The ID of the node group.\n"},"nodeGroupName":{"type":"string","description":"The name of the node group.\n","willReplaceOnChanges":true},"payType":{"type":"string","description":"Payment type:\n- PrePaid: Subscription (prepaid).\n- PostPaid: Pay-as-you-go (postpaid).\n","willReplaceOnChanges":true},"pricingCycle":{"type":"string","description":"Unit of purchase duration:\n- Month\n- Year\n\nThis is only applicable when payType is set to PrePaid.\n\n\u003e **NOTE:** The parameter is immutable after resource creation. It only applies during resource creation and has no effect when modified post-creation.\n"},"promotionOptionNo":{"type":"string","description":"ID of promotion option.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"regionId":{"type":"string","description":"The region ID of the node group.\n"},"residentNodeNumber":{"type":"integer","description":"Number of nodes.\n"},"specType":{"type":"string","description":"Node group spec types include the following:\n- standard: Standard edition.\n- localSSD: Local SSD.\n- bigData: Large-scale storage.\n- ramEnhanced: Memory-enhanced type.\n- networkEnhanced: Network-enhanced type.\n"},"status":{"type":"string","description":"Node group status, including the following values:_FAILED: Creation failed._CONFIG: Modifying configuration._TIMEZONE: Modifying timezone._SCALING_OUT: Elastic scaling out._SCALING_IN: Elastic scaling in._OUT: Scaling out._IN: Scaling in._UP: Scaling up (upgrading configuration)._DOWN: Scaling down (downgrading configuration)._PUBLIC_NETWORK: Enabling public network._PUBLIC_NETWORK: Disabling public network._AZ: Switching availability zones.\n"},"storagePerformanceLevel":{"type":"string","description":"Performance levels of the cloud disk. Includes the following values:\n- pl0: Maximum random read/write IOPS of a single disk is 10,000.\n- pl1: Maximum random read/write IOPS of a single disk is 50,000.\n- pl2: Maximum random read/write IOPS of a single disk is 100,000.\n- pl3: Maximum random read/write IOPS of a single disk is 1,000,000.\n"},"storageSize":{"type":"integer","description":"Storage size, measured in GiB.\n"}},"type":"object"}},"alicloud:tag/associatedRule:AssociatedRule":{"description":"Provides a TAG Associated Rule resource.\n\n\n\nFor information about TAG Associated Rule and how to use it, see [What is Associated Rule](https://www.alibabacloud.com/help/en/resource-management/tag/developer-reference/api-tag-2018-08-28-createassociatedresourcerules).\n\n\u003e **NOTE:** Available since v1.244.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.tag.AssociatedRule(\"default\", {\n    status: \"Enable\",\n    associatedSettingName: \"rule:AttachEni-DetachEni-TagInstance:Ecs-Instance:Ecs-Eni\",\n    tagKeys: [\"user\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.tag.AssociatedRule(\"default\",\n    status=\"Enable\",\n    associated_setting_name=\"rule:AttachEni-DetachEni-TagInstance:Ecs-Instance:Ecs-Eni\",\n    tag_keys=[\"user\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Tag.AssociatedRule(\"default\", new()\n    {\n        Status = \"Enable\",\n        AssociatedSettingName = \"rule:AttachEni-DetachEni-TagInstance:Ecs-Instance:Ecs-Eni\",\n        TagKeys = new[]\n        {\n            \"user\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/tag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := tag.NewAssociatedRule(ctx, \"default\", \u0026tag.AssociatedRuleArgs{\n\t\t\tStatus:                pulumi.String(\"Enable\"),\n\t\t\tAssociatedSettingName: pulumi.String(\"rule:AttachEni-DetachEni-TagInstance:Ecs-Instance:Ecs-Eni\"),\n\t\t\tTagKeys: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"user\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.tag.AssociatedRule;\nimport com.pulumi.alicloud.tag.AssociatedRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new AssociatedRule(\"default\", AssociatedRuleArgs.builder()\n            .status(\"Enable\")\n            .associatedSettingName(\"rule:AttachEni-DetachEni-TagInstance:Ecs-Instance:Ecs-Eni\")\n            .tagKeys(\"user\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:tag:AssociatedRule\n    properties:\n      status: Enable\n      associatedSettingName: rule:AttachEni-DetachEni-TagInstance:Ecs-Instance:Ecs-Eni\n      tagKeys:\n        - user\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nTAG Associated Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:tag/associatedRule:AssociatedRule example \u003cid\u003e\n```\n\n","properties":{"associatedSettingName":{"type":"string","description":"The setting name of the associated resource tag rule. For specific values, see the Rule Setting Name column in [Resources that Support Associated Resource Tag Settings](https://www.alibabacloud.com/help/en/resource-management/tag/user-guide/associated-resource-label-settings)\n"},"status":{"type":"string","description":"Whether to enable the associated resource tag rule. Valid values: `Enable`, `Disable`.\n"},"tagKeys":{"type":"array","items":{"type":"string"},"description":"List of tag keys for the associated resource tag rule.\n"}},"required":["associatedSettingName","status"],"inputProperties":{"associatedSettingName":{"type":"string","description":"The setting name of the associated resource tag rule. For specific values, see the Rule Setting Name column in [Resources that Support Associated Resource Tag Settings](https://www.alibabacloud.com/help/en/resource-management/tag/user-guide/associated-resource-label-settings)\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Whether to enable the associated resource tag rule. Valid values: `Enable`, `Disable`.\n"},"tagKeys":{"type":"array","items":{"type":"string"},"description":"List of tag keys for the associated resource tag rule.\n"}},"requiredInputs":["associatedSettingName","status"],"stateInputs":{"description":"Input properties used for looking up and filtering AssociatedRule resources.\n","properties":{"associatedSettingName":{"type":"string","description":"The setting name of the associated resource tag rule. For specific values, see the Rule Setting Name column in [Resources that Support Associated Resource Tag Settings](https://www.alibabacloud.com/help/en/resource-management/tag/user-guide/associated-resource-label-settings)\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Whether to enable the associated resource tag rule. Valid values: `Enable`, `Disable`.\n"},"tagKeys":{"type":"array","items":{"type":"string"},"description":"List of tag keys for the associated resource tag rule.\n"}},"type":"object"}},"alicloud:tag/metaTag:MetaTag":{"description":"Provides a Tag Meta Tag resource.\n\nFor information about Tag Meta Tag and how to use it,\nsee [What is Meta Tag](https://www.alibabacloud.com/help/en/resource-management/latest/createtags).\n\n\u003e **NOTE:** Available since v1.209.0.\n\n\u003e **NOTE:** Meta Tag Only Support `cn-hangzhou` Region\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.tag.MetaTag(\"example\", {\n    key: \"Name1\",\n    values: [\"Desc2\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.tag.MetaTag(\"example\",\n    key=\"Name1\",\n    values=[\"Desc2\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Tag.MetaTag(\"example\", new()\n    {\n        Key = \"Name1\",\n        Values = new[]\n        {\n            \"Desc2\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/tag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := tag.NewMetaTag(ctx, \"example\", \u0026tag.MetaTagArgs{\n\t\t\tKey: pulumi.String(\"Name1\"),\n\t\t\tValues: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Desc2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.tag.MetaTag;\nimport com.pulumi.alicloud.tag.MetaTagArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new MetaTag(\"example\", MetaTagArgs.builder()\n            .key(\"Name1\")\n            .values(\"Desc2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:tag:MetaTag\n    properties:\n      key: Name1\n      values:\n        - Desc2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nTag Meta Tag can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:tag/metaTag:MetaTag example \u003cregionId\u003e:\u003ckey\u003e\n```\n\n","properties":{"key":{"type":"string","description":"The key of the tag meta tag. key must be 1 to 128 characters in length.\n"},"values":{"type":"array","items":{"type":"string"},"description":"The values of the tag meta tag.\n"}},"required":["key","values"],"inputProperties":{"key":{"type":"string","description":"The key of the tag meta tag. key must be 1 to 128 characters in length.\n","willReplaceOnChanges":true},"values":{"type":"array","items":{"type":"string"},"description":"The values of the tag meta tag.\n","willReplaceOnChanges":true}},"requiredInputs":["key","values"],"stateInputs":{"description":"Input properties used for looking up and filtering MetaTag resources.\n","properties":{"key":{"type":"string","description":"The key of the tag meta tag. key must be 1 to 128 characters in length.\n","willReplaceOnChanges":true},"values":{"type":"array","items":{"type":"string"},"description":"The values of the tag meta tag.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:tag/policy:Policy":{"description":"Provides a TAG Policy resource.\n\n\n\nFor information about TAG Policy and how to use it, see [What is Policy](https://www.alibabacloud.com/help/en/resource-management/latest/create-policy).\n\n\u003e **NOTE:** Available since v1.203.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst example = new alicloud.tag.Policy(\"example\", {\n    policyName: name,\n    policyDesc: name,\n    userType: \"USER\",\n    policyContent: \"\\\\t\\\\t{\\\\\\\"tags\\\\\\\":{\\\\\\\"CostCenter\\\\\\\":{\\\\\\\"tag_value\\\\\\\":{\\\\\\\"@@assign\\\\\\\":[\\\\\\\"Beijing\\\\\\\",\\\\\\\"Shanghai\\\\\\\"]},\\\\\\\"tag_key\\\\\\\":{\\\\\\\"@@assign\\\\\\\":\\\\\\\"CostCenter\\\\\\\"}}}}\\n\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nexample = alicloud.tag.Policy(\"example\",\n    policy_name=name,\n    policy_desc=name,\n    user_type=\"USER\",\n    policy_content=\"\\\\t\\\\t{\\\\\\\"tags\\\\\\\":{\\\\\\\"CostCenter\\\\\\\":{\\\\\\\"tag_value\\\\\\\":{\\\\\\\"@@assign\\\\\\\":[\\\\\\\"Beijing\\\\\\\",\\\\\\\"Shanghai\\\\\\\"]},\\\\\\\"tag_key\\\\\\\":{\\\\\\\"@@assign\\\\\\\":\\\\\\\"CostCenter\\\\\\\"}}}}\\n\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var example = new AliCloud.Tag.Policy(\"example\", new()\n    {\n        PolicyName = name,\n        PolicyDesc = name,\n        UserType = \"USER\",\n        PolicyContent = @\"\\t\\t{\\\"\"tags\\\"\":{\\\"\"CostCenter\\\"\":{\\\"\"tag_value\\\"\":{\\\"\"@@assign\\\"\":[\\\"\"Beijing\\\"\",\\\"\"Shanghai\\\"\"]},\\\"\"tag_key\\\"\":{\\\"\"@@assign\\\"\":\\\"\"CostCenter\\\"\"}}}}\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/tag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := tag.NewPolicy(ctx, \"example\", \u0026tag.PolicyArgs{\n\t\t\tPolicyName:    pulumi.String(name),\n\t\t\tPolicyDesc:    pulumi.String(name),\n\t\t\tUserType:      pulumi.String(\"USER\"),\n\t\t\tPolicyContent: pulumi.String(\"\\\\t\\\\t{\\\\\\\"tags\\\\\\\":{\\\\\\\"CostCenter\\\\\\\":{\\\\\\\"tag_value\\\\\\\":{\\\\\\\"@@assign\\\\\\\":[\\\\\\\"Beijing\\\\\\\",\\\\\\\"Shanghai\\\\\\\"]},\\\\\\\"tag_key\\\\\\\":{\\\\\\\"@@assign\\\\\\\":\\\\\\\"CostCenter\\\\\\\"}}}}\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.tag.Policy;\nimport com.pulumi.alicloud.tag.PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var example = new Policy(\"example\", PolicyArgs.builder()\n            .policyName(name)\n            .policyDesc(name)\n            .userType(\"USER\")\n            .policyContent(\"\"\"\n\\t\\t{\\\"tags\\\":{\\\"CostCenter\\\":{\\\"tag_value\\\":{\\\"@@assign\\\":[\\\"Beijing\\\",\\\"Shanghai\\\"]},\\\"tag_key\\\":{\\\"@@assign\\\":\\\"CostCenter\\\"}}}}\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  example:\n    type: alicloud:tag:Policy\n    properties:\n      policyName: ${name}\n      policyDesc: ${name}\n      userType: USER\n      policyContent: |\n        \\t\\t{\\\"tags\\\":{\\\"CostCenter\\\":{\\\"tag_value\\\":{\\\"@@assign\\\":[\\\"Beijing\\\",\\\"Shanghai\\\"]},\\\"tag_key\\\":{\\\"@@assign\\\":\\\"CostCenter\\\"}}}}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nTAG Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:tag/policy:Policy example \u003cid\u003e\n```\n\n","properties":{"policyContent":{"type":"string","description":"The document of the tag policy.\n"},"policyDesc":{"type":"string","description":"The description of the policy. The description must be 1 to 512 characters in length.\n"},"policyName":{"type":"string","description":"The name of the tag policy. The name must be 1 to 128 characters in length and can contain letters, digits, and underscores (_).\n"},"userType":{"type":"string","description":"The mode of the Tag Policy feature. Valid values: `USER`, `RD`.\n"}},"required":["policyContent","policyName","userType"],"inputProperties":{"policyContent":{"type":"string","description":"The document of the tag policy.\n"},"policyDesc":{"type":"string","description":"The description of the policy. The description must be 1 to 512 characters in length.\n"},"policyName":{"type":"string","description":"The name of the tag policy. The name must be 1 to 128 characters in length and can contain letters, digits, and underscores (_).\n"},"userType":{"type":"string","description":"The mode of the Tag Policy feature. Valid values: `USER`, `RD`.\n","willReplaceOnChanges":true}},"requiredInputs":["policyContent","policyName"],"stateInputs":{"description":"Input properties used for looking up and filtering Policy resources.\n","properties":{"policyContent":{"type":"string","description":"The document of the tag policy.\n"},"policyDesc":{"type":"string","description":"The description of the policy. The description must be 1 to 512 characters in length.\n"},"policyName":{"type":"string","description":"The name of the tag policy. The name must be 1 to 128 characters in length and can contain letters, digits, and underscores (_).\n"},"userType":{"type":"string","description":"The mode of the Tag Policy feature. Valid values: `USER`, `RD`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:tag/policyAttachment:PolicyAttachment":{"description":"Provides a Tag Policy Attachment resource to attaches a policy to an object. After you attach a tag policy to an object.\nFor information about Tag Policy Attachment and how to use it,\nsee [What is Policy Attachment](https://www.alibabacloud.com/help/en/resource-management/latest/attach-policy).\n\n\u003e **NOTE:** Available since v1.204.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getAccount({});\nconst example = new alicloud.tag.Policy(\"example\", {\n    policyName: name,\n    policyDesc: name,\n    userType: \"USER\",\n    policyContent: \"\\\\t\\\\t{\\\\\\\"tags\\\\\\\":{\\\\\\\"CostCenter\\\\\\\":{\\\\\\\"tag_value\\\\\\\":{\\\\\\\"@@assign\\\\\\\":[\\\\\\\"Beijing\\\\\\\",\\\\\\\"Shanghai\\\\\\\"]},\\\\\\\"tag_key\\\\\\\":{\\\\\\\"@@assign\\\\\\\":\\\\\\\"CostCenter\\\\\\\"}}}}\\n\",\n});\nconst examplePolicyAttachment = new alicloud.tag.PolicyAttachment(\"example\", {\n    policyId: example.id,\n    targetId: _default.then(_default =\u003e _default.id),\n    targetType: \"USER\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_account()\nexample = alicloud.tag.Policy(\"example\",\n    policy_name=name,\n    policy_desc=name,\n    user_type=\"USER\",\n    policy_content=\"\\\\t\\\\t{\\\\\\\"tags\\\\\\\":{\\\\\\\"CostCenter\\\\\\\":{\\\\\\\"tag_value\\\\\\\":{\\\\\\\"@@assign\\\\\\\":[\\\\\\\"Beijing\\\\\\\",\\\\\\\"Shanghai\\\\\\\"]},\\\\\\\"tag_key\\\\\\\":{\\\\\\\"@@assign\\\\\\\":\\\\\\\"CostCenter\\\\\\\"}}}}\\n\")\nexample_policy_attachment = alicloud.tag.PolicyAttachment(\"example\",\n    policy_id=example.id,\n    target_id=default.id,\n    target_type=\"USER\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var example = new AliCloud.Tag.Policy(\"example\", new()\n    {\n        PolicyName = name,\n        PolicyDesc = name,\n        UserType = \"USER\",\n        PolicyContent = @\"\\t\\t{\\\"\"tags\\\"\":{\\\"\"CostCenter\\\"\":{\\\"\"tag_value\\\"\":{\\\"\"@@assign\\\"\":[\\\"\"Beijing\\\"\",\\\"\"Shanghai\\\"\"]},\\\"\"tag_key\\\"\":{\\\"\"@@assign\\\"\":\\\"\"CostCenter\\\"\"}}}}\n\",\n    });\n\n    var examplePolicyAttachment = new AliCloud.Tag.PolicyAttachment(\"example\", new()\n    {\n        PolicyId = example.Id,\n        TargetId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        TargetType = \"USER\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/tag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := tag.NewPolicy(ctx, \"example\", \u0026tag.PolicyArgs{\n\t\t\tPolicyName:    pulumi.String(name),\n\t\t\tPolicyDesc:    pulumi.String(name),\n\t\t\tUserType:      pulumi.String(\"USER\"),\n\t\t\tPolicyContent: pulumi.String(\"\\\\t\\\\t{\\\\\\\"tags\\\\\\\":{\\\\\\\"CostCenter\\\\\\\":{\\\\\\\"tag_value\\\\\\\":{\\\\\\\"@@assign\\\\\\\":[\\\\\\\"Beijing\\\\\\\",\\\\\\\"Shanghai\\\\\\\"]},\\\\\\\"tag_key\\\\\\\":{\\\\\\\"@@assign\\\\\\\":\\\\\\\"CostCenter\\\\\\\"}}}}\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = tag.NewPolicyAttachment(ctx, \"example\", \u0026tag.PolicyAttachmentArgs{\n\t\t\tPolicyId:   example.ID(),\n\t\t\tTargetId:   pulumi.String(_default.Id),\n\t\t\tTargetType: pulumi.String(\"USER\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.tag.Policy;\nimport com.pulumi.alicloud.tag.PolicyArgs;\nimport com.pulumi.alicloud.tag.PolicyAttachment;\nimport com.pulumi.alicloud.tag.PolicyAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var example = new Policy(\"example\", PolicyArgs.builder()\n            .policyName(name)\n            .policyDesc(name)\n            .userType(\"USER\")\n            .policyContent(\"\"\"\n\\t\\t{\\\"tags\\\":{\\\"CostCenter\\\":{\\\"tag_value\\\":{\\\"@@assign\\\":[\\\"Beijing\\\",\\\"Shanghai\\\"]},\\\"tag_key\\\":{\\\"@@assign\\\":\\\"CostCenter\\\"}}}}\n            \"\"\")\n            .build());\n\n        var examplePolicyAttachment = new PolicyAttachment(\"examplePolicyAttachment\", PolicyAttachmentArgs.builder()\n            .policyId(example.id())\n            .targetId(default_.id())\n            .targetType(\"USER\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  example:\n    type: alicloud:tag:Policy\n    properties:\n      policyName: ${name}\n      policyDesc: ${name}\n      userType: USER\n      policyContent: |\n        \\t\\t{\\\"tags\\\":{\\\"CostCenter\\\":{\\\"tag_value\\\":{\\\"@@assign\\\":[\\\"Beijing\\\",\\\"Shanghai\\\"]},\\\"tag_key\\\":{\\\"@@assign\\\":\\\"CostCenter\\\"}}}}\n  examplePolicyAttachment:\n    type: alicloud:tag:PolicyAttachment\n    name: example\n    properties:\n      policyId: ${example.id}\n      targetId: ${default.id}\n      targetType: USER\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nTag Policy Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:tag/policyAttachment:PolicyAttachment example \u003cpolicy_id\u003e:\u003ctarget_id\u003e:\u003ctarget_type\u003e\n```\n\n","properties":{"policyId":{"type":"string","description":"The ID of the tag policy.\n"},"targetId":{"type":"string","description":"The ID of the object.\n"},"targetType":{"type":"string","description":"The type of the object. Valid values: `USER`, `ROOT`, `FOLDER`, `ACCOUNT`.\n"}},"required":["policyId","targetId","targetType"],"inputProperties":{"policyId":{"type":"string","description":"The ID of the tag policy.\n","willReplaceOnChanges":true},"targetId":{"type":"string","description":"The ID of the object.\n","willReplaceOnChanges":true},"targetType":{"type":"string","description":"The type of the object. Valid values: `USER`, `ROOT`, `FOLDER`, `ACCOUNT`.\n","willReplaceOnChanges":true}},"requiredInputs":["policyId","targetId","targetType"],"stateInputs":{"description":"Input properties used for looking up and filtering PolicyAttachment resources.\n","properties":{"policyId":{"type":"string","description":"The ID of the tag policy.\n","willReplaceOnChanges":true},"targetId":{"type":"string","description":"The ID of the object.\n","willReplaceOnChanges":true},"targetType":{"type":"string","description":"The type of the object. Valid values: `USER`, `ROOT`, `FOLDER`, `ACCOUNT`.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:threatdetection/antiBruteForceRule:AntiBruteForceRule":{"description":"Provides a Threat Detection Anti Brute Force Rule resource.\n\nAnti-brute force cracking rules.\n\nFor information about Threat Detection Anti Brute Force Rule and how to use it, see [What is Anti Brute Force Rule](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-createantibruteforcerule).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.threatdetection.AntiBruteForceRule(\"default\", {\n    antiBruteForceRuleName: \"apispec_example\",\n    forbiddenTime: 360,\n    uuidLists: [\"032b618f-b220-4a0d-bd37-fbdc6ef58b6a\"],\n    failCount: 80,\n    span: 10,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.AntiBruteForceRule(\"default\",\n    anti_brute_force_rule_name=\"apispec_example\",\n    forbidden_time=360,\n    uuid_lists=[\"032b618f-b220-4a0d-bd37-fbdc6ef58b6a\"],\n    fail_count=80,\n    span=10)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.ThreatDetection.AntiBruteForceRule(\"default\", new()\n    {\n        AntiBruteForceRuleName = \"apispec_example\",\n        ForbiddenTime = 360,\n        UuidLists = new[]\n        {\n            \"032b618f-b220-4a0d-bd37-fbdc6ef58b6a\",\n        },\n        FailCount = 80,\n        Span = 10,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := threatdetection.NewAntiBruteForceRule(ctx, \"default\", \u0026threatdetection.AntiBruteForceRuleArgs{\n\t\t\tAntiBruteForceRuleName: pulumi.String(\"apispec_example\"),\n\t\t\tForbiddenTime:          pulumi.Int(360),\n\t\t\tUuidLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"032b618f-b220-4a0d-bd37-fbdc6ef58b6a\"),\n\t\t\t},\n\t\t\tFailCount: pulumi.Int(80),\n\t\t\tSpan:      pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.AntiBruteForceRule;\nimport com.pulumi.alicloud.threatdetection.AntiBruteForceRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new AntiBruteForceRule(\"default\", AntiBruteForceRuleArgs.builder()\n            .antiBruteForceRuleName(\"apispec_example\")\n            .forbiddenTime(360)\n            .uuidLists(\"032b618f-b220-4a0d-bd37-fbdc6ef58b6a\")\n            .failCount(80)\n            .span(10)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:threatdetection:AntiBruteForceRule\n    properties:\n      antiBruteForceRuleName: apispec_example\n      forbiddenTime: 360\n      uuidLists:\n        - 032b618f-b220-4a0d-bd37-fbdc6ef58b6a\n      failCount: 80\n      span: 10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Anti Brute Force Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:threatdetection/antiBruteForceRule:AntiBruteForceRule example \u003cid\u003e\n```\n\n","properties":{"antiBruteForceRuleName":{"type":"string","description":"The name of the defense rule.\n"},"defaultRule":{"type":"boolean","description":"Specifies whether to set the defense rule as the default rule. Valid values:\n"},"failCount":{"type":"integer","description":"FailCount\n"},"forbiddenTime":{"type":"integer","description":"The period of time during which logons from an account are not allowed. Unit: minutes. Valid values:\n"},"protocolType":{"$ref":"#/types/alicloud:threatdetection/AntiBruteForceRuleProtocolType:AntiBruteForceRuleProtocolType","description":"The types of protocols supported for interception by the brute force attack rule creation. See \u003cspan pulumi-lang-nodejs=\"`protocolType`\" pulumi-lang-dotnet=\"`ProtocolType`\" pulumi-lang-go=\"`protocolType`\" pulumi-lang-python=\"`protocol_type`\" pulumi-lang-yaml=\"`protocolType`\" pulumi-lang-java=\"`protocolType`\"\u003e`protocol_type`\u003c/span\u003e below.\n"},"span":{"type":"integer","description":"The maximum period of time during which failed logon attempts from an account can occur. Unit: minutes. Valid values:\n"},"uuidLists":{"type":"array","items":{"type":"string"},"description":"The UUIDs of the servers to which you want to apply the defense rule.\n"}},"required":["antiBruteForceRuleName","failCount","forbiddenTime","protocolType","span","uuidLists"],"inputProperties":{"antiBruteForceRuleName":{"type":"string","description":"The name of the defense rule.\n"},"defaultRule":{"type":"boolean","description":"Specifies whether to set the defense rule as the default rule. Valid values:\n"},"failCount":{"type":"integer","description":"FailCount\n"},"forbiddenTime":{"type":"integer","description":"The period of time during which logons from an account are not allowed. Unit: minutes. Valid values:\n"},"protocolType":{"$ref":"#/types/alicloud:threatdetection/AntiBruteForceRuleProtocolType:AntiBruteForceRuleProtocolType","description":"The types of protocols supported for interception by the brute force attack rule creation. See \u003cspan pulumi-lang-nodejs=\"`protocolType`\" pulumi-lang-dotnet=\"`ProtocolType`\" pulumi-lang-go=\"`protocolType`\" pulumi-lang-python=\"`protocol_type`\" pulumi-lang-yaml=\"`protocolType`\" pulumi-lang-java=\"`protocolType`\"\u003e`protocol_type`\u003c/span\u003e below.\n"},"span":{"type":"integer","description":"The maximum period of time during which failed logon attempts from an account can occur. Unit: minutes. Valid values:\n"},"uuidLists":{"type":"array","items":{"type":"string"},"description":"The UUIDs of the servers to which you want to apply the defense rule.\n"}},"requiredInputs":["antiBruteForceRuleName","failCount","forbiddenTime","span","uuidLists"],"stateInputs":{"description":"Input properties used for looking up and filtering AntiBruteForceRule resources.\n","properties":{"antiBruteForceRuleName":{"type":"string","description":"The name of the defense rule.\n"},"defaultRule":{"type":"boolean","description":"Specifies whether to set the defense rule as the default rule. Valid values:\n"},"failCount":{"type":"integer","description":"FailCount\n"},"forbiddenTime":{"type":"integer","description":"The period of time during which logons from an account are not allowed. Unit: minutes. Valid values:\n"},"protocolType":{"$ref":"#/types/alicloud:threatdetection/AntiBruteForceRuleProtocolType:AntiBruteForceRuleProtocolType","description":"The types of protocols supported for interception by the brute force attack rule creation. See \u003cspan pulumi-lang-nodejs=\"`protocolType`\" pulumi-lang-dotnet=\"`ProtocolType`\" pulumi-lang-go=\"`protocolType`\" pulumi-lang-python=\"`protocol_type`\" pulumi-lang-yaml=\"`protocolType`\" pulumi-lang-java=\"`protocolType`\"\u003e`protocol_type`\u003c/span\u003e below.\n"},"span":{"type":"integer","description":"The maximum period of time during which failed logon attempts from an account can occur. Unit: minutes. Valid values:\n"},"uuidLists":{"type":"array","items":{"type":"string"},"description":"The UUIDs of the servers to which you want to apply the defense rule.\n"}},"type":"object"}},"alicloud:threatdetection/assetBind:AssetBind":{"description":"Provides a Threat Detection Asset Bind resource.\n\nAsset Binding Information.\n\nFor information about Threat Detection Asset Bind and how to use it, see [What is Asset Bind](https://next.api.alibabacloud.com/document/Sas/2018-12-03/UpdatePostPaidBindRel).\n\n\u003e **NOTE:** Available since v1.247.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.threatdetection.getAssets({\n    machineTypes: \"ecs\",\n});\nconst defaultAssetBind = new alicloud.threatdetection.AssetBind(\"default\", {\n    uuid: _default.then(_default =\u003e _default.assets?.[0]?.uuid),\n    authVersion: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.threatdetection.get_assets(machine_types=\"ecs\")\ndefault_asset_bind = alicloud.threatdetection.AssetBind(\"default\",\n    uuid=default.assets[0].uuid,\n    auth_version=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ThreatDetection.GetAssets.Invoke(new()\n    {\n        MachineTypes = \"ecs\",\n    });\n\n    var defaultAssetBind = new AliCloud.ThreatDetection.AssetBind(\"default\", new()\n    {\n        Uuid = @default.Apply(@default =\u003e @default.Apply(getAssetsResult =\u003e getAssetsResult.Assets[0]?.Uuid)),\n        AuthVersion = 5,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := threatdetection.GetAssets(ctx, \u0026threatdetection.GetAssetsArgs{\n\t\t\tMachineTypes: pulumi.StringRef(\"ecs\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = threatdetection.NewAssetBind(ctx, \"default\", \u0026threatdetection.AssetBindArgs{\n\t\t\tUuid:        pulumi.String(_default.Assets[0].Uuid),\n\t\t\tAuthVersion: pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetAssetsArgs;\nimport com.pulumi.alicloud.threatdetection.AssetBind;\nimport com.pulumi.alicloud.threatdetection.AssetBindArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ThreatdetectionFunctions.getAssets(GetAssetsArgs.builder()\n            .machineTypes(\"ecs\")\n            .build());\n\n        var defaultAssetBind = new AssetBind(\"defaultAssetBind\", AssetBindArgs.builder()\n            .uuid(default_.assets()[0].uuid())\n            .authVersion(5)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultAssetBind:\n    type: alicloud:threatdetection:AssetBind\n    name: default\n    properties:\n      uuid: ${default.assets[0].uuid}\n      authVersion: '5'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getAssets\n      arguments:\n        machineTypes: ecs\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.threatdetection.AssetBind`\" pulumi-lang-dotnet=\"`alicloud.threatdetection.AssetBind`\" pulumi-lang-go=\"`threatdetection.AssetBind`\" pulumi-lang-python=\"`threatdetection.AssetBind`\" pulumi-lang-yaml=\"`alicloud.threatdetection.AssetBind`\" pulumi-lang-java=\"`alicloud.threatdetection.AssetBind`\"\u003e`alicloud.threatdetection.AssetBind`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.threatdetection.AssetBind`\" pulumi-lang-dotnet=\"`alicloud.threatdetection.AssetBind`\" pulumi-lang-go=\"`threatdetection.AssetBind`\" pulumi-lang-python=\"`threatdetection.AssetBind`\" pulumi-lang-yaml=\"`alicloud.threatdetection.AssetBind`\" pulumi-lang-java=\"`alicloud.threatdetection.AssetBind`\"\u003e`alicloud.threatdetection.AssetBind`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Asset Bind can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:threatdetection/assetBind:AssetBind example \u003cid\u003e\n```\n\n","properties":{"authVersion":{"type":"integer","description":"Bind version.\n"},"uuid":{"type":"string","description":"The first ID of the resource\n"}},"required":["uuid"],"inputProperties":{"authVersion":{"type":"integer","description":"Bind version.\n"},"uuid":{"type":"string","description":"The first ID of the resource\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering AssetBind resources.\n","properties":{"authVersion":{"type":"integer","description":"Bind version.\n"},"uuid":{"type":"string","description":"The first ID of the resource\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:threatdetection/assetSelectionConfig:AssetSelectionConfig":{"description":"Provides a Threat Detection Asset Selection Config resource.\n\nAsset selection configuration.\n\nFor information about Threat Detection Asset Selection Config and how to use it, see [What is Asset Selection Config](https://next.api.alibabacloud.com/document/Sas/2018-12-03/CreateAssetSelectionConfig).\n\n\u003e **NOTE:** Available since v1.245.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.threatdetection.AssetSelectionConfig(\"default\", {\n    businessType: \"agentlesss_vul_white_1\",\n    targetType: \"instance\",\n    platform: \"all\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.threatdetection.AssetSelectionConfig(\"default\",\n    business_type=\"agentlesss_vul_white_1\",\n    target_type=\"instance\",\n    platform=\"all\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ThreatDetection.AssetSelectionConfig(\"default\", new()\n    {\n        BusinessType = \"agentlesss_vul_white_1\",\n        TargetType = \"instance\",\n        Platform = \"all\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := threatdetection.NewAssetSelectionConfig(ctx, \"default\", \u0026threatdetection.AssetSelectionConfigArgs{\n\t\t\tBusinessType: pulumi.String(\"agentlesss_vul_white_1\"),\n\t\t\tTargetType:   pulumi.String(\"instance\"),\n\t\t\tPlatform:     pulumi.String(\"all\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.AssetSelectionConfig;\nimport com.pulumi.alicloud.threatdetection.AssetSelectionConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new AssetSelectionConfig(\"default\", AssetSelectionConfigArgs.builder()\n            .businessType(\"agentlesss_vul_white_1\")\n            .targetType(\"instance\")\n            .platform(\"all\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:threatdetection:AssetSelectionConfig\n    properties:\n      businessType: agentlesss_vul_white_1\n      targetType: instance\n      platform: all\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.threatdetection.AssetSelectionConfig`\" pulumi-lang-dotnet=\"`alicloud.threatdetection.AssetSelectionConfig`\" pulumi-lang-go=\"`threatdetection.AssetSelectionConfig`\" pulumi-lang-python=\"`threatdetection.AssetSelectionConfig`\" pulumi-lang-yaml=\"`alicloud.threatdetection.AssetSelectionConfig`\" pulumi-lang-java=\"`alicloud.threatdetection.AssetSelectionConfig`\"\u003e`alicloud.threatdetection.AssetSelectionConfig`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.threatdetection.AssetSelectionConfig`\" pulumi-lang-dotnet=\"`alicloud.threatdetection.AssetSelectionConfig`\" pulumi-lang-go=\"`threatdetection.AssetSelectionConfig`\" pulumi-lang-python=\"`threatdetection.AssetSelectionConfig`\" pulumi-lang-yaml=\"`alicloud.threatdetection.AssetSelectionConfig`\" pulumi-lang-java=\"`alicloud.threatdetection.AssetSelectionConfig`\"\u003e`alicloud.threatdetection.AssetSelectionConfig`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Asset Selection Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:threatdetection/assetSelectionConfig:AssetSelectionConfig example \u003cid\u003e\n```\n\n","properties":{"businessType":{"type":"string","description":"The first ID of the resource\n"},"platform":{"type":"string","description":"The operating system type.\n"},"targetType":{"type":"string","description":"Target object type.\n"}},"required":["businessType","targetType"],"inputProperties":{"businessType":{"type":"string","description":"The first ID of the resource\n","willReplaceOnChanges":true},"platform":{"type":"string","description":"The operating system type.\n","willReplaceOnChanges":true},"targetType":{"type":"string","description":"Target object type.\n","willReplaceOnChanges":true}},"requiredInputs":["businessType","targetType"],"stateInputs":{"description":"Input properties used for looking up and filtering AssetSelectionConfig resources.\n","properties":{"businessType":{"type":"string","description":"The first ID of the resource\n","willReplaceOnChanges":true},"platform":{"type":"string","description":"The operating system type.\n","willReplaceOnChanges":true},"targetType":{"type":"string","description":"Target object type.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:threatdetection/attackPathSensitiveAssetConfig:AttackPathSensitiveAssetConfig":{"description":"Provides a Threat Detection Attack Path Sensitive Asset Config resource.\n\nAttack Path Sensitive Asset Configuration.\n\nFor information about Threat Detection Attack Path Sensitive Asset Config and how to use it, see [What is Attack Path Sensitive Asset Config](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-createattackpathsensitiveassetconfig).\n\n\u003e **NOTE:** Available since v1.257.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.slb.getApplicationLoadBalancers({});\nconst defaultAttackPathSensitiveAssetConfig = new alicloud.threatdetection.AttackPathSensitiveAssetConfig(\"default\", {attackPathAssetLists: [{\n    instanceId: _default.then(_default =\u003e _default.balancers?.[0]?.id),\n    vendor: 0,\n    assetType: 1,\n    assetSubType: 0,\n    regionId: \"cn-hangzhou\",\n}]});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.slb.get_application_load_balancers()\ndefault_attack_path_sensitive_asset_config = alicloud.threatdetection.AttackPathSensitiveAssetConfig(\"default\", attack_path_asset_lists=[{\n    \"instance_id\": default.balancers[0].id,\n    \"vendor\": 0,\n    \"asset_type\": 1,\n    \"asset_sub_type\": 0,\n    \"region_id\": \"cn-hangzhou\",\n}])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Slb.GetApplicationLoadBalancers.Invoke();\n\n    var defaultAttackPathSensitiveAssetConfig = new AliCloud.ThreatDetection.AttackPathSensitiveAssetConfig(\"default\", new()\n    {\n        AttackPathAssetLists = new[]\n        {\n            new AliCloud.ThreatDetection.Inputs.AttackPathSensitiveAssetConfigAttackPathAssetListArgs\n            {\n                InstanceId = @default.Apply(@default =\u003e @default.Apply(getApplicationLoadBalancersResult =\u003e getApplicationLoadBalancersResult.Balancers[0]?.Id)),\n                Vendor = 0,\n                AssetType = 1,\n                AssetSubType = 0,\n                RegionId = \"cn-hangzhou\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := slb.GetApplicationLoadBalancers(ctx, \u0026slb.GetApplicationLoadBalancersArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = threatdetection.NewAttackPathSensitiveAssetConfig(ctx, \"default\", \u0026threatdetection.AttackPathSensitiveAssetConfigArgs{\n\t\t\tAttackPathAssetLists: threatdetection.AttackPathSensitiveAssetConfigAttackPathAssetListArray{\n\t\t\t\t\u0026threatdetection.AttackPathSensitiveAssetConfigAttackPathAssetListArgs{\n\t\t\t\t\tInstanceId:   pulumi.String(_default.Balancers[0].Id),\n\t\t\t\t\tVendor:       pulumi.Int(0),\n\t\t\t\t\tAssetType:    pulumi.Int(1),\n\t\t\t\t\tAssetSubType: pulumi.Int(0),\n\t\t\t\t\tRegionId:     pulumi.String(\"cn-hangzhou\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetApplicationLoadBalancersArgs;\nimport com.pulumi.alicloud.threatdetection.AttackPathSensitiveAssetConfig;\nimport com.pulumi.alicloud.threatdetection.AttackPathSensitiveAssetConfigArgs;\nimport com.pulumi.alicloud.threatdetection.inputs.AttackPathSensitiveAssetConfigAttackPathAssetListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = SlbFunctions.getApplicationLoadBalancers(GetApplicationLoadBalancersArgs.builder()\n            .build());\n\n        var defaultAttackPathSensitiveAssetConfig = new AttackPathSensitiveAssetConfig(\"defaultAttackPathSensitiveAssetConfig\", AttackPathSensitiveAssetConfigArgs.builder()\n            .attackPathAssetLists(AttackPathSensitiveAssetConfigAttackPathAssetListArgs.builder()\n                .instanceId(default_.balancers()[0].id())\n                .vendor(0)\n                .assetType(1)\n                .assetSubType(0)\n                .regionId(\"cn-hangzhou\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultAttackPathSensitiveAssetConfig:\n    type: alicloud:threatdetection:AttackPathSensitiveAssetConfig\n    name: default\n    properties:\n      attackPathAssetLists:\n        - instanceId: ${default.balancers[0].id}\n          vendor: '0'\n          assetType: '1'\n          assetSubType: '0'\n          regionId: cn-hangzhou\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:slb:getApplicationLoadBalancers\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Attack Path Sensitive Asset Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:threatdetection/attackPathSensitiveAssetConfig:AttackPathSensitiveAssetConfig example \u003cid\u003e\n```\n\n","properties":{"attackPathAssetLists":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/AttackPathSensitiveAssetConfigAttackPathAssetList:AttackPathSensitiveAssetConfigAttackPathAssetList"},"description":"The attack path sensitive asset configuration list. See \u003cspan pulumi-lang-nodejs=\"`attackPathAssetList`\" pulumi-lang-dotnet=\"`AttackPathAssetList`\" pulumi-lang-go=\"`attackPathAssetList`\" pulumi-lang-python=\"`attack_path_asset_list`\" pulumi-lang-yaml=\"`attackPathAssetList`\" pulumi-lang-java=\"`attackPathAssetList`\"\u003e`attack_path_asset_list`\u003c/span\u003e below.\n"}},"required":["attackPathAssetLists"],"inputProperties":{"attackPathAssetLists":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/AttackPathSensitiveAssetConfigAttackPathAssetList:AttackPathSensitiveAssetConfigAttackPathAssetList"},"description":"The attack path sensitive asset configuration list. See \u003cspan pulumi-lang-nodejs=\"`attackPathAssetList`\" pulumi-lang-dotnet=\"`AttackPathAssetList`\" pulumi-lang-go=\"`attackPathAssetList`\" pulumi-lang-python=\"`attack_path_asset_list`\" pulumi-lang-yaml=\"`attackPathAssetList`\" pulumi-lang-java=\"`attackPathAssetList`\"\u003e`attack_path_asset_list`\u003c/span\u003e below.\n"}},"requiredInputs":["attackPathAssetLists"],"stateInputs":{"description":"Input properties used for looking up and filtering AttackPathSensitiveAssetConfig resources.\n","properties":{"attackPathAssetLists":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/AttackPathSensitiveAssetConfigAttackPathAssetList:AttackPathSensitiveAssetConfigAttackPathAssetList"},"description":"The attack path sensitive asset configuration list. See \u003cspan pulumi-lang-nodejs=\"`attackPathAssetList`\" pulumi-lang-dotnet=\"`AttackPathAssetList`\" pulumi-lang-go=\"`attackPathAssetList`\" pulumi-lang-python=\"`attack_path_asset_list`\" pulumi-lang-yaml=\"`attackPathAssetList`\" pulumi-lang-java=\"`attackPathAssetList`\"\u003e`attack_path_asset_list`\u003c/span\u003e below.\n"}},"type":"object"}},"alicloud:threatdetection/backupPolicy:BackupPolicy":{"description":"Provides a Threat Detection Backup Policy resource.\n\nFor information about Threat Detection Backup Policy and how to use it, see [What is Backup Policy](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-createbackuppolicy).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.threatdetection.getAssets({\n    machineTypes: \"ecs\",\n});\nconst defaultBackupPolicy = new alicloud.threatdetection.BackupPolicy(\"default\", {\n    backupPolicyName: \"tf-example-name\",\n    policy: \"{\\\"Exclude\\\":[\\\"/bin/\\\",\\\"/usr/bin/\\\",\\\"/sbin/\\\",\\\"/boot/\\\",\\\"/proc/\\\",\\\"/sys/\\\",\\\"/srv/\\\",\\\"/lib/\\\",\\\"/selinux/\\\",\\\"/usr/sbin/\\\",\\\"/run/\\\",\\\"/lib32/\\\",\\\"/lib64/\\\",\\\"/lost+found/\\\",\\\"/var/lib/kubelet/\\\",\\\"/var/lib/ntp/proc\\\",\\\"/var/lib/container\\\"],\\\"ExcludeSystemPath\\\":true,\\\"Include\\\":[],\\\"IsDefault\\\":1,\\\"Retention\\\":7,\\\"Schedule\\\":\\\"I|1668703620|PT24H\\\",\\\"Source\\\":[],\\\"SpeedLimiter\\\":\\\"\\\",\\\"UseVss\\\":true}\",\n    policyVersion: \"2.0.0\",\n    uuidLists: [_default.then(_default =\u003e _default.ids?.[0])],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.get_assets(machine_types=\"ecs\")\ndefault_backup_policy = alicloud.threatdetection.BackupPolicy(\"default\",\n    backup_policy_name=\"tf-example-name\",\n    policy=\"{\\\"Exclude\\\":[\\\"/bin/\\\",\\\"/usr/bin/\\\",\\\"/sbin/\\\",\\\"/boot/\\\",\\\"/proc/\\\",\\\"/sys/\\\",\\\"/srv/\\\",\\\"/lib/\\\",\\\"/selinux/\\\",\\\"/usr/sbin/\\\",\\\"/run/\\\",\\\"/lib32/\\\",\\\"/lib64/\\\",\\\"/lost+found/\\\",\\\"/var/lib/kubelet/\\\",\\\"/var/lib/ntp/proc\\\",\\\"/var/lib/container\\\"],\\\"ExcludeSystemPath\\\":true,\\\"Include\\\":[],\\\"IsDefault\\\":1,\\\"Retention\\\":7,\\\"Schedule\\\":\\\"I|1668703620|PT24H\\\",\\\"Source\\\":[],\\\"SpeedLimiter\\\":\\\"\\\",\\\"UseVss\\\":true}\",\n    policy_version=\"2.0.0\",\n    uuid_lists=[default.ids[0]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ThreatDetection.GetAssets.Invoke(new()\n    {\n        MachineTypes = \"ecs\",\n    });\n\n    var defaultBackupPolicy = new AliCloud.ThreatDetection.BackupPolicy(\"default\", new()\n    {\n        BackupPolicyName = \"tf-example-name\",\n        Policy = \"{\\\"Exclude\\\":[\\\"/bin/\\\",\\\"/usr/bin/\\\",\\\"/sbin/\\\",\\\"/boot/\\\",\\\"/proc/\\\",\\\"/sys/\\\",\\\"/srv/\\\",\\\"/lib/\\\",\\\"/selinux/\\\",\\\"/usr/sbin/\\\",\\\"/run/\\\",\\\"/lib32/\\\",\\\"/lib64/\\\",\\\"/lost+found/\\\",\\\"/var/lib/kubelet/\\\",\\\"/var/lib/ntp/proc\\\",\\\"/var/lib/container\\\"],\\\"ExcludeSystemPath\\\":true,\\\"Include\\\":[],\\\"IsDefault\\\":1,\\\"Retention\\\":7,\\\"Schedule\\\":\\\"I|1668703620|PT24H\\\",\\\"Source\\\":[],\\\"SpeedLimiter\\\":\\\"\\\",\\\"UseVss\\\":true}\",\n        PolicyVersion = \"2.0.0\",\n        UuidLists = new[]\n        {\n            @default.Apply(@default =\u003e @default.Apply(getAssetsResult =\u003e getAssetsResult.Ids[0])),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := threatdetection.GetAssets(ctx, \u0026threatdetection.GetAssetsArgs{\n\t\t\tMachineTypes: pulumi.StringRef(\"ecs\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = threatdetection.NewBackupPolicy(ctx, \"default\", \u0026threatdetection.BackupPolicyArgs{\n\t\t\tBackupPolicyName: pulumi.String(\"tf-example-name\"),\n\t\t\tPolicy:           pulumi.String(\"{\\\"Exclude\\\":[\\\"/bin/\\\",\\\"/usr/bin/\\\",\\\"/sbin/\\\",\\\"/boot/\\\",\\\"/proc/\\\",\\\"/sys/\\\",\\\"/srv/\\\",\\\"/lib/\\\",\\\"/selinux/\\\",\\\"/usr/sbin/\\\",\\\"/run/\\\",\\\"/lib32/\\\",\\\"/lib64/\\\",\\\"/lost+found/\\\",\\\"/var/lib/kubelet/\\\",\\\"/var/lib/ntp/proc\\\",\\\"/var/lib/container\\\"],\\\"ExcludeSystemPath\\\":true,\\\"Include\\\":[],\\\"IsDefault\\\":1,\\\"Retention\\\":7,\\\"Schedule\\\":\\\"I|1668703620|PT24H\\\",\\\"Source\\\":[],\\\"SpeedLimiter\\\":\\\"\\\",\\\"UseVss\\\":true}\"),\n\t\t\tPolicyVersion:    pulumi.String(\"2.0.0\"),\n\t\t\tUuidLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(_default.Ids[0]),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetAssetsArgs;\nimport com.pulumi.alicloud.threatdetection.BackupPolicy;\nimport com.pulumi.alicloud.threatdetection.BackupPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ThreatdetectionFunctions.getAssets(GetAssetsArgs.builder()\n            .machineTypes(\"ecs\")\n            .build());\n\n        var defaultBackupPolicy = new BackupPolicy(\"defaultBackupPolicy\", BackupPolicyArgs.builder()\n            .backupPolicyName(\"tf-example-name\")\n            .policy(\"{\\\"Exclude\\\":[\\\"/bin/\\\",\\\"/usr/bin/\\\",\\\"/sbin/\\\",\\\"/boot/\\\",\\\"/proc/\\\",\\\"/sys/\\\",\\\"/srv/\\\",\\\"/lib/\\\",\\\"/selinux/\\\",\\\"/usr/sbin/\\\",\\\"/run/\\\",\\\"/lib32/\\\",\\\"/lib64/\\\",\\\"/lost+found/\\\",\\\"/var/lib/kubelet/\\\",\\\"/var/lib/ntp/proc\\\",\\\"/var/lib/container\\\"],\\\"ExcludeSystemPath\\\":true,\\\"Include\\\":[],\\\"IsDefault\\\":1,\\\"Retention\\\":7,\\\"Schedule\\\":\\\"I|1668703620|PT24H\\\",\\\"Source\\\":[],\\\"SpeedLimiter\\\":\\\"\\\",\\\"UseVss\\\":true}\")\n            .policyVersion(\"2.0.0\")\n            .uuidLists(default_.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultBackupPolicy:\n    type: alicloud:threatdetection:BackupPolicy\n    name: default\n    properties:\n      backupPolicyName: tf-example-name\n      policy: '{\"Exclude\":[\"/bin/\",\"/usr/bin/\",\"/sbin/\",\"/boot/\",\"/proc/\",\"/sys/\",\"/srv/\",\"/lib/\",\"/selinux/\",\"/usr/sbin/\",\"/run/\",\"/lib32/\",\"/lib64/\",\"/lost+found/\",\"/var/lib/kubelet/\",\"/var/lib/ntp/proc\",\"/var/lib/container\"],\"ExcludeSystemPath\":true,\"Include\":[],\"IsDefault\":1,\"Retention\":7,\"Schedule\":\"I|1668703620|PT24H\",\"Source\":[],\"SpeedLimiter\":\"\",\"UseVss\":true}'\n      policyVersion: 2.0.0\n      uuidLists:\n        - ${default.ids[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getAssets\n      arguments:\n        machineTypes: ecs\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Backup Policy can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:threatdetection/backupPolicy:BackupPolicy example \u003cid\u003e\n```\n\n","properties":{"backupPolicyName":{"type":"string","description":"Protection of the Name of the Policy.\n"},"policy":{"type":"string","description":"The Specified Protection Policies of the Specific Configuration. see [how to use it](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-createbackuppolicy).\n"},"policyRegionId":{"type":"string","description":"The region ID of the non-Alibaba cloud server. You can call the [DescribeSupportRegion](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-describesupportregion) interface to view the region supported by anti-ransomware, and then select the region supported by anti-ransomware according to the region where your non-Alibaba cloud server is located.\n"},"policyVersion":{"type":"string","description":"Anti-Blackmail Policy Version. Valid values: `1.0.0`, `2.0.0`.\n"},"status":{"type":"string","description":"The status of the Backup Policy instance.\n"},"uuidLists":{"type":"array","items":{"type":"string"},"description":"Specify the Protection of Server UUID List.\n"}},"required":["backupPolicyName","policy","policyVersion","status","uuidLists"],"inputProperties":{"backupPolicyName":{"type":"string","description":"Protection of the Name of the Policy.\n"},"policy":{"type":"string","description":"The Specified Protection Policies of the Specific Configuration. see [how to use it](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-createbackuppolicy).\n"},"policyRegionId":{"type":"string","description":"The region ID of the non-Alibaba cloud server. You can call the [DescribeSupportRegion](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-describesupportregion) interface to view the region supported by anti-ransomware, and then select the region supported by anti-ransomware according to the region where your non-Alibaba cloud server is located.\n"},"policyVersion":{"type":"string","description":"Anti-Blackmail Policy Version. Valid values: `1.0.0`, `2.0.0`.\n","willReplaceOnChanges":true},"uuidLists":{"type":"array","items":{"type":"string"},"description":"Specify the Protection of Server UUID List.\n"}},"requiredInputs":["backupPolicyName","policy","policyVersion","uuidLists"],"stateInputs":{"description":"Input properties used for looking up and filtering BackupPolicy resources.\n","properties":{"backupPolicyName":{"type":"string","description":"Protection of the Name of the Policy.\n"},"policy":{"type":"string","description":"The Specified Protection Policies of the Specific Configuration. see [how to use it](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-createbackuppolicy).\n"},"policyRegionId":{"type":"string","description":"The region ID of the non-Alibaba cloud server. You can call the [DescribeSupportRegion](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-describesupportregion) interface to view the region supported by anti-ransomware, and then select the region supported by anti-ransomware according to the region where your non-Alibaba cloud server is located.\n"},"policyVersion":{"type":"string","description":"Anti-Blackmail Policy Version. Valid values: `1.0.0`, `2.0.0`.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Backup Policy instance.\n"},"uuidLists":{"type":"array","items":{"type":"string"},"description":"Specify the Protection of Server UUID List.\n"}},"type":"object"}},"alicloud:threatdetection/baselineStrategy:BaselineStrategy":{"description":"Provides a Threat Detection Baseline Strategy resource.\n\nFor information about Threat Detection Baseline Strategy and how to use it, see [What is Baseline Strategy](https://www.alibabacloud.com/help/en/security-center/latest/api-sas-2018-12-03-modifystrategy).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.threatdetection.BaselineStrategy(\"default\", {\n    customType: \"custom\",\n    endTime: \"08:00:00\",\n    baselineStrategyName: \"apispec\",\n    cycleDays: 3,\n    targetType: \"groupId\",\n    startTime: \"05:00:00\",\n    riskSubTypeName: \"hc_exploit_redis\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.BaselineStrategy(\"default\",\n    custom_type=\"custom\",\n    end_time=\"08:00:00\",\n    baseline_strategy_name=\"apispec\",\n    cycle_days=3,\n    target_type=\"groupId\",\n    start_time=\"05:00:00\",\n    risk_sub_type_name=\"hc_exploit_redis\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.ThreatDetection.BaselineStrategy(\"default\", new()\n    {\n        CustomType = \"custom\",\n        EndTime = \"08:00:00\",\n        BaselineStrategyName = \"apispec\",\n        CycleDays = 3,\n        TargetType = \"groupId\",\n        StartTime = \"05:00:00\",\n        RiskSubTypeName = \"hc_exploit_redis\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := threatdetection.NewBaselineStrategy(ctx, \"default\", \u0026threatdetection.BaselineStrategyArgs{\n\t\t\tCustomType:           pulumi.String(\"custom\"),\n\t\t\tEndTime:              pulumi.String(\"08:00:00\"),\n\t\t\tBaselineStrategyName: pulumi.String(\"apispec\"),\n\t\t\tCycleDays:            pulumi.Int(3),\n\t\t\tTargetType:           pulumi.String(\"groupId\"),\n\t\t\tStartTime:            pulumi.String(\"05:00:00\"),\n\t\t\tRiskSubTypeName:      pulumi.String(\"hc_exploit_redis\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.BaselineStrategy;\nimport com.pulumi.alicloud.threatdetection.BaselineStrategyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new BaselineStrategy(\"default\", BaselineStrategyArgs.builder()\n            .customType(\"custom\")\n            .endTime(\"08:00:00\")\n            .baselineStrategyName(\"apispec\")\n            .cycleDays(3)\n            .targetType(\"groupId\")\n            .startTime(\"05:00:00\")\n            .riskSubTypeName(\"hc_exploit_redis\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:threatdetection:BaselineStrategy\n    properties:\n      customType: custom\n      endTime: 08:00:00\n      baselineStrategyName: apispec\n      cycleDays: 3\n      targetType: groupId\n      startTime: 05:00:00\n      riskSubTypeName: hc_exploit_redis\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Baseline Strategy can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_threat_detection_baseline_strategy.example \u003cid\u003e\n```\n\n","properties":{"baselineStrategyId":{"type":"string","description":"The ID of the baseline check policy.\n"},"baselineStrategyName":{"type":"string","description":"Policy name.\n"},"customType":{"type":"string","description":"The type of policy. Value:\n* **common**: standard policy\n* **custom**: custom policy\n"},"cycleDays":{"type":"integer","description":"The detection period of the policy.\n"},"cycleStartTime":{"type":"integer","description":"The detection period of the policy. Value:\n* **0**: 0:00~06:00\n* **6**: 6:00~12:00\n* **12**: 12:00~18:00\n* **18**: 18:00~24:00\n"},"endTime":{"type":"string","description":"The baseline check policy execution end time.\n"},"riskSubTypeName":{"type":"string","description":"Detection item subtype.\n"},"startTime":{"type":"string","description":"The baseline check policy start time.\n"},"targetType":{"type":"string","description":"The method of adding assets that take effect from the policy. Value:\n* **groupId**: Added by asset group.\n* **uuid**: Add by single asset.\n"}},"required":["baselineStrategyId","baselineStrategyName","customType","cycleDays","cycleStartTime","endTime","riskSubTypeName","startTime","targetType"],"inputProperties":{"baselineStrategyName":{"type":"string","description":"Policy name.\n","willReplaceOnChanges":true},"customType":{"type":"string","description":"The type of policy. Value:\n* **common**: standard policy\n* **custom**: custom policy\n"},"cycleDays":{"type":"integer","description":"The detection period of the policy.\n"},"cycleStartTime":{"type":"integer","description":"The detection period of the policy. Value:\n* **0**: 0:00~06:00\n* **6**: 6:00~12:00\n* **12**: 12:00~18:00\n* **18**: 18:00~24:00\n"},"endTime":{"type":"string","description":"The baseline check policy execution end time.\n"},"riskSubTypeName":{"type":"string","description":"Detection item subtype.\n"},"startTime":{"type":"string","description":"The baseline check policy start time.\n"},"targetType":{"type":"string","description":"The method of adding assets that take effect from the policy. Value:\n* **groupId**: Added by asset group.\n* **uuid**: Add by single asset.\n"}},"requiredInputs":["baselineStrategyName","customType","cycleDays","endTime","riskSubTypeName","startTime","targetType"],"stateInputs":{"description":"Input properties used for looking up and filtering BaselineStrategy resources.\n","properties":{"baselineStrategyId":{"type":"string","description":"The ID of the baseline check policy.\n"},"baselineStrategyName":{"type":"string","description":"Policy name.\n","willReplaceOnChanges":true},"customType":{"type":"string","description":"The type of policy. Value:\n* **common**: standard policy\n* **custom**: custom policy\n"},"cycleDays":{"type":"integer","description":"The detection period of the policy.\n"},"cycleStartTime":{"type":"integer","description":"The detection period of the policy. Value:\n* **0**: 0:00~06:00\n* **6**: 6:00~12:00\n* **12**: 12:00~18:00\n* **18**: 18:00~24:00\n"},"endTime":{"type":"string","description":"The baseline check policy execution end time.\n"},"riskSubTypeName":{"type":"string","description":"Detection item subtype.\n"},"startTime":{"type":"string","description":"The baseline check policy start time.\n"},"targetType":{"type":"string","description":"The method of adding assets that take effect from the policy. Value:\n* **groupId**: Added by asset group.\n* **uuid**: Add by single asset.\n"}},"type":"object"}},"alicloud:threatdetection/checkConfig:CheckConfig":{"description":"Provides a Threat Detection Check Config resource.\n\nCSPM Risk Overview Policy Management.\n\nFor information about Threat Detection Check Config and how to use it, see [What is Check Config](https://next.api.alibabacloud.com/document/Sas/2018-12-03/ChangeCheckConfig).\n\n\u003e **NOTE:** This is a singleton resource. By default, the configuration will be cleared when it is created.\n\n\u003e **NOTE:** Available since v1.267.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.threatdetection.CheckConfig(\"default\", {\n    endTime: 18,\n    enableAutoCheck: true,\n    vendors: [\"ALIYUN\"],\n    cycleDays: [\n        7,\n        1,\n        2,\n    ],\n    enableAddCheck: true,\n    startTime: 12,\n    configure: \"not\",\n    systemConfig: false,\n    selectedChecks: [{\n        checkId: 370,\n        sectionId: 515,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.CheckConfig(\"default\",\n    end_time=18,\n    enable_auto_check=True,\n    vendors=[\"ALIYUN\"],\n    cycle_days=[\n        7,\n        1,\n        2,\n    ],\n    enable_add_check=True,\n    start_time=12,\n    configure=\"not\",\n    system_config=False,\n    selected_checks=[{\n        \"check_id\": 370,\n        \"section_id\": 515,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.ThreatDetection.CheckConfig(\"default\", new()\n    {\n        EndTime = 18,\n        EnableAutoCheck = true,\n        Vendors = new[]\n        {\n            \"ALIYUN\",\n        },\n        CycleDays = new[]\n        {\n            7,\n            1,\n            2,\n        },\n        EnableAddCheck = true,\n        StartTime = 12,\n        Configure = \"not\",\n        SystemConfig = false,\n        SelectedChecks = new[]\n        {\n            new AliCloud.ThreatDetection.Inputs.CheckConfigSelectedCheckArgs\n            {\n                CheckId = 370,\n                SectionId = 515,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := threatdetection.NewCheckConfig(ctx, \"default\", \u0026threatdetection.CheckConfigArgs{\n\t\t\tEndTime:         pulumi.Int(18),\n\t\t\tEnableAutoCheck: pulumi.Bool(true),\n\t\t\tVendors: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ALIYUN\"),\n\t\t\t},\n\t\t\tCycleDays: pulumi.IntArray{\n\t\t\t\tpulumi.Int(7),\n\t\t\t\tpulumi.Int(1),\n\t\t\t\tpulumi.Int(2),\n\t\t\t},\n\t\t\tEnableAddCheck: pulumi.Bool(true),\n\t\t\tStartTime:      pulumi.Int(12),\n\t\t\tConfigure:      pulumi.String(\"not\"),\n\t\t\tSystemConfig:   pulumi.Bool(false),\n\t\t\tSelectedChecks: threatdetection.CheckConfigSelectedCheckArray{\n\t\t\t\t\u0026threatdetection.CheckConfigSelectedCheckArgs{\n\t\t\t\t\tCheckId:   pulumi.Int(370),\n\t\t\t\t\tSectionId: pulumi.Int(515),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.CheckConfig;\nimport com.pulumi.alicloud.threatdetection.CheckConfigArgs;\nimport com.pulumi.alicloud.threatdetection.inputs.CheckConfigSelectedCheckArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new CheckConfig(\"default\", CheckConfigArgs.builder()\n            .endTime(18)\n            .enableAutoCheck(true)\n            .vendors(\"ALIYUN\")\n            .cycleDays(            \n                7,\n                1,\n                2)\n            .enableAddCheck(true)\n            .startTime(12)\n            .configure(\"not\")\n            .systemConfig(false)\n            .selectedChecks(CheckConfigSelectedCheckArgs.builder()\n                .checkId(370)\n                .sectionId(515)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:threatdetection:CheckConfig\n    properties:\n      endTime: '18'\n      enableAutoCheck: true\n      vendors:\n        - ALIYUN\n      cycleDays:\n        - '7'\n        - '1'\n        - '2'\n      enableAddCheck: true\n      startTime: '12'\n      configure: not\n      systemConfig: false\n      selectedChecks:\n        - checkId: 370\n          sectionId: 515\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Check Config can be imported using the id, e.g.\n\n```sh\n$ terraform import alicloud_threat_detection_check_config.example \n```\n\n","properties":{"configure":{"type":"string","description":"The configuration of the check item. Valid value:\n"},"cycleDays":{"type":"array","items":{"type":"integer"},"description":"Cycle detection time.\n"},"enableAddCheck":{"type":"boolean","description":"Whether to check by default when there are new check items in the selected regulation. Values available:\n- **true:** On\n- **false:** off\n"},"enableAutoCheck":{"type":"boolean","description":"Whether automatic cycle detection is enabled. Values available:\n- **true:** On\n- **false:** off\n"},"endTime":{"type":"integer","description":"Check the end time of the time period, which indicates the time of day. The start time and end time of the query can only be selected in the following time range.\n- **0~6** When the start time is 0, the end time must be set to 6 o'clock on the current day.\n- **6~12** When the start time is 6, the end time needs to be set to 12:00 on the current day.\n- **12~18** When the start time is 12, the end time needs to be set to 18 o'clock on the current day.\n- **18~24** When the start time is 18, the end time needs to be set to 24 hours of the current day.\n"},"selectedChecks":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/CheckConfigSelectedCheck:CheckConfigSelectedCheck"},"description":"The check items selected in the policy. See \u003cspan pulumi-lang-nodejs=\"`selectedChecks`\" pulumi-lang-dotnet=\"`SelectedChecks`\" pulumi-lang-go=\"`selectedChecks`\" pulumi-lang-python=\"`selected_checks`\" pulumi-lang-yaml=\"`selectedChecks`\" pulumi-lang-java=\"`selectedChecks`\"\u003e`selected_checks`\u003c/span\u003e below.\n"},"startTime":{"type":"integer","description":"The start time of the check. The value specifies a point in time in a day.\n"},"systemConfig":{"type":"boolean","description":"Specifies whether to use the configuration automatically generated by the system. Valid values:\n"},"vendors":{"type":"array","items":{"type":"string"},"description":"The cloud service providers.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"}},"inputProperties":{"configure":{"type":"string","description":"The configuration of the check item. Valid value:\n"},"cycleDays":{"type":"array","items":{"type":"integer"},"description":"Cycle detection time.\n"},"enableAddCheck":{"type":"boolean","description":"Whether to check by default when there are new check items in the selected regulation. Values available:\n- **true:** On\n- **false:** off\n"},"enableAutoCheck":{"type":"boolean","description":"Whether automatic cycle detection is enabled. Values available:\n- **true:** On\n- **false:** off\n"},"endTime":{"type":"integer","description":"Check the end time of the time period, which indicates the time of day. The start time and end time of the query can only be selected in the following time range.\n- **0~6** When the start time is 0, the end time must be set to 6 o'clock on the current day.\n- **6~12** When the start time is 6, the end time needs to be set to 12:00 on the current day.\n- **12~18** When the start time is 12, the end time needs to be set to 18 o'clock on the current day.\n- **18~24** When the start time is 18, the end time needs to be set to 24 hours of the current day.\n"},"selectedChecks":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/CheckConfigSelectedCheck:CheckConfigSelectedCheck"},"description":"The check items selected in the policy. See \u003cspan pulumi-lang-nodejs=\"`selectedChecks`\" pulumi-lang-dotnet=\"`SelectedChecks`\" pulumi-lang-go=\"`selectedChecks`\" pulumi-lang-python=\"`selected_checks`\" pulumi-lang-yaml=\"`selectedChecks`\" pulumi-lang-java=\"`selectedChecks`\"\u003e`selected_checks`\u003c/span\u003e below.\n"},"startTime":{"type":"integer","description":"The start time of the check. The value specifies a point in time in a day.\n"},"systemConfig":{"type":"boolean","description":"Specifies whether to use the configuration automatically generated by the system. Valid values:\n"},"vendors":{"type":"array","items":{"type":"string"},"description":"The cloud service providers.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CheckConfig resources.\n","properties":{"configure":{"type":"string","description":"The configuration of the check item. Valid value:\n"},"cycleDays":{"type":"array","items":{"type":"integer"},"description":"Cycle detection time.\n"},"enableAddCheck":{"type":"boolean","description":"Whether to check by default when there are new check items in the selected regulation. Values available:\n- **true:** On\n- **false:** off\n"},"enableAutoCheck":{"type":"boolean","description":"Whether automatic cycle detection is enabled. Values available:\n- **true:** On\n- **false:** off\n"},"endTime":{"type":"integer","description":"Check the end time of the time period, which indicates the time of day. The start time and end time of the query can only be selected in the following time range.\n- **0~6** When the start time is 0, the end time must be set to 6 o'clock on the current day.\n- **6~12** When the start time is 6, the end time needs to be set to 12:00 on the current day.\n- **12~18** When the start time is 12, the end time needs to be set to 18 o'clock on the current day.\n- **18~24** When the start time is 18, the end time needs to be set to 24 hours of the current day.\n"},"selectedChecks":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/CheckConfigSelectedCheck:CheckConfigSelectedCheck"},"description":"The check items selected in the policy. See \u003cspan pulumi-lang-nodejs=\"`selectedChecks`\" pulumi-lang-dotnet=\"`SelectedChecks`\" pulumi-lang-go=\"`selectedChecks`\" pulumi-lang-python=\"`selected_checks`\" pulumi-lang-yaml=\"`selectedChecks`\" pulumi-lang-java=\"`selectedChecks`\"\u003e`selected_checks`\u003c/span\u003e below.\n"},"startTime":{"type":"integer","description":"The start time of the check. The value specifies a point in time in a day.\n"},"systemConfig":{"type":"boolean","description":"Specifies whether to use the configuration automatically generated by the system. Valid values:\n"},"vendors":{"type":"array","items":{"type":"string"},"description":"The cloud service providers.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"}},"type":"object"}},"alicloud:threatdetection/clientFileProtect:ClientFileProtect":{"description":"Provides a Threat Detection Client File Protect resource. Client core file protection event monitoring, including file reading and writing, deletion, and permission change.\n\nFor information about Threat Detection Client File Protect and how to use it, see [What is Client File Protect](https://www.alibabacloud.com/help/zh/security-center/developer-reference/api-sas-2018-12-03-createfileprotectrule).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.threatdetection.ClientFileProtect(\"default\", {\n    status: 0,\n    filePaths: [\"/usr/local\"],\n    fileOps: [\"CREATE\"],\n    ruleAction: \"pass\",\n    procPaths: [\"/usr/local\"],\n    alertLevel: 0,\n    switchId: \"FILE_PROTECT_RULE_SWITCH_TYPE_1693474122929\",\n    ruleName: \"rule_example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.threatdetection.ClientFileProtect(\"default\",\n    status=0,\n    file_paths=[\"/usr/local\"],\n    file_ops=[\"CREATE\"],\n    rule_action=\"pass\",\n    proc_paths=[\"/usr/local\"],\n    alert_level=0,\n    switch_id=\"FILE_PROTECT_RULE_SWITCH_TYPE_1693474122929\",\n    rule_name=\"rule_example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ThreatDetection.ClientFileProtect(\"default\", new()\n    {\n        Status = 0,\n        FilePaths = new[]\n        {\n            \"/usr/local\",\n        },\n        FileOps = new[]\n        {\n            \"CREATE\",\n        },\n        RuleAction = \"pass\",\n        ProcPaths = new[]\n        {\n            \"/usr/local\",\n        },\n        AlertLevel = 0,\n        SwitchId = \"FILE_PROTECT_RULE_SWITCH_TYPE_1693474122929\",\n        RuleName = \"rule_example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := threatdetection.NewClientFileProtect(ctx, \"default\", \u0026threatdetection.ClientFileProtectArgs{\n\t\t\tStatus: pulumi.Int(0),\n\t\t\tFilePaths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"/usr/local\"),\n\t\t\t},\n\t\t\tFileOps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"CREATE\"),\n\t\t\t},\n\t\t\tRuleAction: pulumi.String(\"pass\"),\n\t\t\tProcPaths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"/usr/local\"),\n\t\t\t},\n\t\t\tAlertLevel: pulumi.Int(0),\n\t\t\tSwitchId:   pulumi.String(\"FILE_PROTECT_RULE_SWITCH_TYPE_1693474122929\"),\n\t\t\tRuleName:   pulumi.String(\"rule_example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ClientFileProtect;\nimport com.pulumi.alicloud.threatdetection.ClientFileProtectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ClientFileProtect(\"default\", ClientFileProtectArgs.builder()\n            .status(0)\n            .filePaths(\"/usr/local\")\n            .fileOps(\"CREATE\")\n            .ruleAction(\"pass\")\n            .procPaths(\"/usr/local\")\n            .alertLevel(0)\n            .switchId(\"FILE_PROTECT_RULE_SWITCH_TYPE_1693474122929\")\n            .ruleName(\"rule_example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:threatdetection:ClientFileProtect\n    properties:\n      status: '0'\n      filePaths:\n        - /usr/local\n      fileOps:\n        - CREATE\n      ruleAction: pass\n      procPaths:\n        - /usr/local\n      alertLevel: '0'\n      switchId: FILE_PROTECT_RULE_SWITCH_TYPE_1693474122929\n      ruleName: rule_example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Client File Protect can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:threatdetection/clientFileProtect:ClientFileProtect example \u003cid\u003e\n```\n\n","properties":{"alertLevel":{"type":"integer","description":"0 no alert 1 info 2 suspicious 3 critical.\n"},"fileOps":{"type":"array","items":{"type":"string"},"description":"file operation.\n"},"filePaths":{"type":"array","items":{"type":"string"},"description":"file path.\n"},"procPaths":{"type":"array","items":{"type":"string"},"description":"process path.\n"},"ruleAction":{"type":"string","description":"rule action, pass or alert.\n"},"ruleName":{"type":"string","description":"ruleName.\n"},"status":{"type":"integer","description":"rule status 0 is disable 1 is enable.\n"},"switchId":{"type":"string","description":"switch id.\n"}},"required":["fileOps","filePaths","procPaths","ruleAction","ruleName","status"],"inputProperties":{"alertLevel":{"type":"integer","description":"0 no alert 1 info 2 suspicious 3 critical.\n"},"fileOps":{"type":"array","items":{"type":"string"},"description":"file operation.\n"},"filePaths":{"type":"array","items":{"type":"string"},"description":"file path.\n"},"procPaths":{"type":"array","items":{"type":"string"},"description":"process path.\n"},"ruleAction":{"type":"string","description":"rule action, pass or alert.\n"},"ruleName":{"type":"string","description":"ruleName.\n"},"status":{"type":"integer","description":"rule status 0 is disable 1 is enable.\n"},"switchId":{"type":"string","description":"switch id.\n","willReplaceOnChanges":true}},"requiredInputs":["fileOps","filePaths","procPaths","ruleAction","ruleName"],"stateInputs":{"description":"Input properties used for looking up and filtering ClientFileProtect resources.\n","properties":{"alertLevel":{"type":"integer","description":"0 no alert 1 info 2 suspicious 3 critical.\n"},"fileOps":{"type":"array","items":{"type":"string"},"description":"file operation.\n"},"filePaths":{"type":"array","items":{"type":"string"},"description":"file path.\n"},"procPaths":{"type":"array","items":{"type":"string"},"description":"process path.\n"},"ruleAction":{"type":"string","description":"rule action, pass or alert.\n"},"ruleName":{"type":"string","description":"ruleName.\n"},"status":{"type":"integer","description":"rule status 0 is disable 1 is enable.\n"},"switchId":{"type":"string","description":"switch id.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:threatdetection/clientUserDefineRule:ClientUserDefineRule":{"description":"Provides a Threat Detection Client User Define Rule resource. Malicious Behavior Defense Custom Rules.\n\nFor information about Threat Detection Client User Define Rule and how to use it, see [What is Client User Define Rule](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-addclientuserdefinerule).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.threatdetection.ClientUserDefineRule(\"default\", {\n    actionType: 0,\n    platform: \"windows\",\n    registryContent: \"123\",\n    clientUserDefineRuleName: name,\n    parentProcPath: \"/root/bash\",\n    type: 5,\n    cmdline: \"bash\",\n    procPath: \"/root/bash\",\n    parentCmdline: \"bash\",\n    registryKey: \"123\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.threatdetection.ClientUserDefineRule(\"default\",\n    action_type=0,\n    platform=\"windows\",\n    registry_content=\"123\",\n    client_user_define_rule_name=name,\n    parent_proc_path=\"/root/bash\",\n    type=5,\n    cmdline=\"bash\",\n    proc_path=\"/root/bash\",\n    parent_cmdline=\"bash\",\n    registry_key=\"123\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ThreatDetection.ClientUserDefineRule(\"default\", new()\n    {\n        ActionType = 0,\n        Platform = \"windows\",\n        RegistryContent = \"123\",\n        ClientUserDefineRuleName = name,\n        ParentProcPath = \"/root/bash\",\n        Type = 5,\n        Cmdline = \"bash\",\n        ProcPath = \"/root/bash\",\n        ParentCmdline = \"bash\",\n        RegistryKey = \"123\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := threatdetection.NewClientUserDefineRule(ctx, \"default\", \u0026threatdetection.ClientUserDefineRuleArgs{\n\t\t\tActionType:               pulumi.Int(0),\n\t\t\tPlatform:                 pulumi.String(\"windows\"),\n\t\t\tRegistryContent:          pulumi.String(\"123\"),\n\t\t\tClientUserDefineRuleName: pulumi.String(name),\n\t\t\tParentProcPath:           pulumi.String(\"/root/bash\"),\n\t\t\tType:                     pulumi.Int(5),\n\t\t\tCmdline:                  pulumi.String(\"bash\"),\n\t\t\tProcPath:                 pulumi.String(\"/root/bash\"),\n\t\t\tParentCmdline:            pulumi.String(\"bash\"),\n\t\t\tRegistryKey:              pulumi.String(\"123\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ClientUserDefineRule;\nimport com.pulumi.alicloud.threatdetection.ClientUserDefineRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ClientUserDefineRule(\"default\", ClientUserDefineRuleArgs.builder()\n            .actionType(0)\n            .platform(\"windows\")\n            .registryContent(\"123\")\n            .clientUserDefineRuleName(name)\n            .parentProcPath(\"/root/bash\")\n            .type(5)\n            .cmdline(\"bash\")\n            .procPath(\"/root/bash\")\n            .parentCmdline(\"bash\")\n            .registryKey(\"123\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:threatdetection:ClientUserDefineRule\n    properties:\n      actionType: '0'\n      platform: windows\n      registryContent: '123'\n      clientUserDefineRuleName: ${name}\n      parentProcPath: /root/bash\n      type: '5'\n      cmdline: bash\n      procPath: /root/bash\n      parentCmdline: bash\n      registryKey: '123'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Client User Define Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:threatdetection/clientUserDefineRule:ClientUserDefineRule example \u003cid\u003e\n```\n\n","properties":{"actionType":{"type":"integer","description":"The operation type. Value:\n- **0**: plus White\n- **1**: Plus Black.\n"},"clientUserDefineRuleName":{"type":"string","description":"The custom rule name.\n"},"cmdline":{"type":"string","description":"Command line. When the value of the Type attribute is 2, 3, 4, 5, 6, or 7, the command line field is required.\n"},"createTime":{"type":"integer","description":"The creation time of the resource.\n"},"filePath":{"type":"string","description":"The file path. When the value of the Type attribute is 4 or 6, 7, the FilePath field is required.\n"},"hash":{"type":"string","description":"Process hash list. When the value of the Type attribute is 1, the Hash attribute is required.\n"},"ip":{"type":"string","description":"IP address. When the value of the Type attribute is 3, the Ip attribute is required.\n"},"newFilePath":{"type":"string","description":"The new file path to rename the file. When the value of the Type attribute is 7, the NewFilePath attribute is required.\n"},"parentCmdline":{"type":"string","description":"The parent command line.\n"},"parentProcPath":{"type":"string","description":"Parent process path.\n"},"platform":{"type":"string","description":"The operating system type. Value:\n- **windows**:widows\n- **linux**:linux\n- **all**: all.\n"},"portStr":{"type":"string","description":"The port number. When the value of the Type attribute is 3, the PortStr attribute is required. Value range: **1-65535**.\n"},"procPath":{"type":"string","description":"The process path. When the Type attribute is set to 2, 3, 4, 5, 6, or 7, the ProcPath attribute is required.\n"},"registryContent":{"type":"string","description":"The registry value. When the value of the Type attribute is 5, the RegistryKey attribute is required.\n"},"registryKey":{"type":"string","description":"The registry key. When the value of the Type attribute is 5, the RegistryKey attribute is required.\n"},"type":{"type":"integer","description":"The rule type. Value:\n- **1**: Process hash\n- **2**: command line\n- **3**: Process network\n- **4**: File reading and writing\n- **5**: Operate the registry\n- **6**: Load Dynamic Link Library\n- **7**: File Rename.\n"}},"required":["actionType","clientUserDefineRuleName","createTime","platform","portStr","type"],"inputProperties":{"actionType":{"type":"integer","description":"The operation type. Value:\n- **0**: plus White\n- **1**: Plus Black.\n"},"clientUserDefineRuleName":{"type":"string","description":"The custom rule name.\n"},"cmdline":{"type":"string","description":"Command line. When the value of the Type attribute is 2, 3, 4, 5, 6, or 7, the command line field is required.\n"},"filePath":{"type":"string","description":"The file path. When the value of the Type attribute is 4 or 6, 7, the FilePath field is required.\n"},"hash":{"type":"string","description":"Process hash list. When the value of the Type attribute is 1, the Hash attribute is required.\n"},"ip":{"type":"string","description":"IP address. When the value of the Type attribute is 3, the Ip attribute is required.\n"},"newFilePath":{"type":"string","description":"The new file path to rename the file. When the value of the Type attribute is 7, the NewFilePath attribute is required.\n"},"parentCmdline":{"type":"string","description":"The parent command line.\n"},"parentProcPath":{"type":"string","description":"Parent process path.\n"},"platform":{"type":"string","description":"The operating system type. Value:\n- **windows**:widows\n- **linux**:linux\n- **all**: all.\n"},"portStr":{"type":"string","description":"The port number. When the value of the Type attribute is 3, the PortStr attribute is required. Value range: **1-65535**.\n"},"procPath":{"type":"string","description":"The process path. When the Type attribute is set to 2, 3, 4, 5, 6, or 7, the ProcPath attribute is required.\n"},"registryContent":{"type":"string","description":"The registry value. When the value of the Type attribute is 5, the RegistryKey attribute is required.\n"},"registryKey":{"type":"string","description":"The registry key. When the value of the Type attribute is 5, the RegistryKey attribute is required.\n"},"type":{"type":"integer","description":"The rule type. Value:\n- **1**: Process hash\n- **2**: command line\n- **3**: Process network\n- **4**: File reading and writing\n- **5**: Operate the registry\n- **6**: Load Dynamic Link Library\n- **7**: File Rename.\n","willReplaceOnChanges":true}},"requiredInputs":["actionType","clientUserDefineRuleName","platform","type"],"stateInputs":{"description":"Input properties used for looking up and filtering ClientUserDefineRule resources.\n","properties":{"actionType":{"type":"integer","description":"The operation type. Value:\n- **0**: plus White\n- **1**: Plus Black.\n"},"clientUserDefineRuleName":{"type":"string","description":"The custom rule name.\n"},"cmdline":{"type":"string","description":"Command line. When the value of the Type attribute is 2, 3, 4, 5, 6, or 7, the command line field is required.\n"},"createTime":{"type":"integer","description":"The creation time of the resource.\n"},"filePath":{"type":"string","description":"The file path. When the value of the Type attribute is 4 or 6, 7, the FilePath field is required.\n"},"hash":{"type":"string","description":"Process hash list. When the value of the Type attribute is 1, the Hash attribute is required.\n"},"ip":{"type":"string","description":"IP address. When the value of the Type attribute is 3, the Ip attribute is required.\n"},"newFilePath":{"type":"string","description":"The new file path to rename the file. When the value of the Type attribute is 7, the NewFilePath attribute is required.\n"},"parentCmdline":{"type":"string","description":"The parent command line.\n"},"parentProcPath":{"type":"string","description":"Parent process path.\n"},"platform":{"type":"string","description":"The operating system type. Value:\n- **windows**:widows\n- **linux**:linux\n- **all**: all.\n"},"portStr":{"type":"string","description":"The port number. When the value of the Type attribute is 3, the PortStr attribute is required. Value range: **1-65535**.\n"},"procPath":{"type":"string","description":"The process path. When the Type attribute is set to 2, 3, 4, 5, 6, or 7, the ProcPath attribute is required.\n"},"registryContent":{"type":"string","description":"The registry value. When the value of the Type attribute is 5, the RegistryKey attribute is required.\n"},"registryKey":{"type":"string","description":"The registry key. When the value of the Type attribute is 5, the RegistryKey attribute is required.\n"},"type":{"type":"integer","description":"The rule type. Value:\n- **1**: Process hash\n- **2**: command line\n- **3**: Process network\n- **4**: File reading and writing\n- **5**: Operate the registry\n- **6**: Load Dynamic Link Library\n- **7**: File Rename.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:threatdetection/cycleTask:CycleTask":{"description":"Provides a Threat Detection Cycle Task resource.\n\nConfigure periodic tasks in Security Center.\n\nFor information about Threat Detection Cycle Task and how to use it, see [What is Cycle Task](https://next.api.alibabacloud.com/document/Sas/2018-12-03/CreateCycleTask).\n\n\u003e **NOTE:** Available since v1.253.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.threatdetection.CycleTask(\"default\", {\n    targetEndTime: 6,\n    taskType: \"VIRUS_VUL_SCHEDULE_SCAN\",\n    targetStartTime: 0,\n    source: \"console_batch\",\n    taskName: \"VIRUS_VUL_SCHEDULE_SCAN\",\n    firstDateStr: 1650556800000,\n    periodUnit: \"day\",\n    intervalPeriod: 7,\n    param: JSON.stringify({\n        targetInfo: [\n            {\n                type: \"groupId\",\n                name: \"TI HOST\",\n                target: 10597,\n            },\n            {\n                type: \"groupId\",\n                name: \"expense HOST\",\n                target: 10597,\n            },\n        ],\n    }),\n    enable: 1,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.threatdetection.CycleTask(\"default\",\n    target_end_time=6,\n    task_type=\"VIRUS_VUL_SCHEDULE_SCAN\",\n    target_start_time=0,\n    source=\"console_batch\",\n    task_name=\"VIRUS_VUL_SCHEDULE_SCAN\",\n    first_date_str=1650556800000,\n    period_unit=\"day\",\n    interval_period=7,\n    param=json.dumps({\n        \"targetInfo\": [\n            {\n                \"type\": \"groupId\",\n                \"name\": \"TI HOST\",\n                \"target\": 10597,\n            },\n            {\n                \"type\": \"groupId\",\n                \"name\": \"expense HOST\",\n                \"target\": 10597,\n            },\n        ],\n    }),\n    enable=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ThreatDetection.CycleTask(\"default\", new()\n    {\n        TargetEndTime = 6,\n        TaskType = \"VIRUS_VUL_SCHEDULE_SCAN\",\n        TargetStartTime = 0,\n        Source = \"console_batch\",\n        TaskName = \"VIRUS_VUL_SCHEDULE_SCAN\",\n        FirstDateStr = 1650556800000,\n        PeriodUnit = \"day\",\n        IntervalPeriod = 7,\n        Param = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"targetInfo\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"type\"] = \"groupId\",\n                    [\"name\"] = \"TI HOST\",\n                    [\"target\"] = 10597,\n                },\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"type\"] = \"groupId\",\n                    [\"name\"] = \"expense HOST\",\n                    [\"target\"] = 10597,\n                },\n            },\n        }),\n        Enable = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"targetInfo\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"type\":   \"groupId\",\n\t\t\t\t\t\"name\":   \"TI HOST\",\n\t\t\t\t\t\"target\": 10597,\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"type\":   \"groupId\",\n\t\t\t\t\t\"name\":   \"expense HOST\",\n\t\t\t\t\t\"target\": 10597,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = threatdetection.NewCycleTask(ctx, \"default\", \u0026threatdetection.CycleTaskArgs{\n\t\t\tTargetEndTime:   pulumi.Int(6),\n\t\t\tTaskType:        pulumi.String(\"VIRUS_VUL_SCHEDULE_SCAN\"),\n\t\t\tTargetStartTime: pulumi.Int(0),\n\t\t\tSource:          pulumi.String(\"console_batch\"),\n\t\t\tTaskName:        pulumi.String(\"VIRUS_VUL_SCHEDULE_SCAN\"),\n\t\t\tFirstDateStr:    pulumi.Int(1650556800000),\n\t\t\tPeriodUnit:      pulumi.String(\"day\"),\n\t\t\tIntervalPeriod:  pulumi.Int(7),\n\t\t\tParam:           pulumi.String(json0),\n\t\t\tEnable:          pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.CycleTask;\nimport com.pulumi.alicloud.threatdetection.CycleTaskArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new CycleTask(\"default\", CycleTaskArgs.builder()\n            .targetEndTime(6)\n            .taskType(\"VIRUS_VUL_SCHEDULE_SCAN\")\n            .targetStartTime(0)\n            .source(\"console_batch\")\n            .taskName(\"VIRUS_VUL_SCHEDULE_SCAN\")\n            .firstDateStr(1650556800000)\n            .periodUnit(\"day\")\n            .intervalPeriod(7)\n            .param(serializeJson(\n                jsonObject(\n                    jsonProperty(\"targetInfo\", jsonArray(\n                        jsonObject(\n                            jsonProperty(\"type\", \"groupId\"),\n                            jsonProperty(\"name\", \"TI HOST\"),\n                            jsonProperty(\"target\", 10597)\n                        ), \n                        jsonObject(\n                            jsonProperty(\"type\", \"groupId\"),\n                            jsonProperty(\"name\", \"expense HOST\"),\n                            jsonProperty(\"target\", 10597)\n                        )\n                    ))\n                )))\n            .enable(1)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:threatdetection:CycleTask\n    properties:\n      targetEndTime: '6'\n      taskType: VIRUS_VUL_SCHEDULE_SCAN\n      targetStartTime: '0'\n      source: console_batch\n      taskName: VIRUS_VUL_SCHEDULE_SCAN\n      firstDateStr: '1650556800000'\n      periodUnit: day\n      intervalPeriod: '7'\n      param:\n        fn::toJSON:\n          targetInfo:\n            - type: groupId\n              name: TI HOST\n              target: 10597\n            - type: groupId\n              name: expense HOST\n              target: 10597\n      enable: '1'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Cycle Task can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:threatdetection/cycleTask:CycleTask example \u003cid\u003e\n```\n\n","properties":{"enable":{"type":"integer","description":"Whether to enable. Value:\n"},"firstDateStr":{"type":"integer","description":"First execution time.\n"},"intervalPeriod":{"type":"integer","description":"Interval period.\n"},"param":{"type":"string","description":"Extended information field.\n"},"periodUnit":{"type":"string","description":"Unit of scan cycle, value:\n"},"source":{"type":"string","description":"Added the source of the task.\n"},"targetEndTime":{"type":"integer","description":"Task end time (hours).\n"},"targetStartTime":{"type":"integer","description":"Task start time (hours).\n"},"taskName":{"type":"string","description":"The task name.\n- **VIRUS_VUL_SCHEDULE_SCAN**: scans for viruses.\n- **IMAGE_SCAN**: Image scan.\n- **EMG_VUL_SCHEDULE_SCAN**: Emergency vulnerability scanning.\n"},"taskType":{"type":"string","description":"The task type.\n- **VIRUS_VUL_SCHEDULE_SCAN**: scans for viruses.\n- **IMAGE_SCAN**: Image scan.\n- **EMG_VUL_SCHEDULE_SCAN**: Emergency vulnerability scanning.\n"}},"required":["enable","firstDateStr","intervalPeriod","periodUnit","targetEndTime","targetStartTime","taskName","taskType"],"inputProperties":{"enable":{"type":"integer","description":"Whether to enable. Value:\n"},"firstDateStr":{"type":"integer","description":"First execution time.\n"},"intervalPeriod":{"type":"integer","description":"Interval period.\n"},"param":{"type":"string","description":"Extended information field.\n"},"periodUnit":{"type":"string","description":"Unit of scan cycle, value:\n"},"source":{"type":"string","description":"Added the source of the task.\n"},"targetEndTime":{"type":"integer","description":"Task end time (hours).\n"},"targetStartTime":{"type":"integer","description":"Task start time (hours).\n"},"taskName":{"type":"string","description":"The task name.\n- **VIRUS_VUL_SCHEDULE_SCAN**: scans for viruses.\n- **IMAGE_SCAN**: Image scan.\n- **EMG_VUL_SCHEDULE_SCAN**: Emergency vulnerability scanning.\n","willReplaceOnChanges":true},"taskType":{"type":"string","description":"The task type.\n- **VIRUS_VUL_SCHEDULE_SCAN**: scans for viruses.\n- **IMAGE_SCAN**: Image scan.\n- **EMG_VUL_SCHEDULE_SCAN**: Emergency vulnerability scanning.\n","willReplaceOnChanges":true}},"requiredInputs":["enable","firstDateStr","intervalPeriod","periodUnit","targetEndTime","targetStartTime","taskName","taskType"],"stateInputs":{"description":"Input properties used for looking up and filtering CycleTask resources.\n","properties":{"enable":{"type":"integer","description":"Whether to enable. Value:\n"},"firstDateStr":{"type":"integer","description":"First execution time.\n"},"intervalPeriod":{"type":"integer","description":"Interval period.\n"},"param":{"type":"string","description":"Extended information field.\n"},"periodUnit":{"type":"string","description":"Unit of scan cycle, value:\n"},"source":{"type":"string","description":"Added the source of the task.\n"},"targetEndTime":{"type":"integer","description":"Task end time (hours).\n"},"targetStartTime":{"type":"integer","description":"Task start time (hours).\n"},"taskName":{"type":"string","description":"The task name.\n- **VIRUS_VUL_SCHEDULE_SCAN**: scans for viruses.\n- **IMAGE_SCAN**: Image scan.\n- **EMG_VUL_SCHEDULE_SCAN**: Emergency vulnerability scanning.\n","willReplaceOnChanges":true},"taskType":{"type":"string","description":"The task type.\n- **VIRUS_VUL_SCHEDULE_SCAN**: scans for viruses.\n- **IMAGE_SCAN**: Image scan.\n- **EMG_VUL_SCHEDULE_SCAN**: Emergency vulnerability scanning.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:threatdetection/fileUploadLimit:FileUploadLimit":{"description":"Provides a Threat Detection File Upload Limit resource. User-defined file upload limit.\n\nFor information about Threat Detection File Upload Limit and how to use it, see [What is File Upload Limit](https://next.api.alibabacloud.com/document/Sas/2018-12-03/GetFileUploadLimit).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.threatdetection.FileUploadLimit(\"default\", {limit: 100});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.threatdetection.FileUploadLimit(\"default\", limit=100)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ThreatDetection.FileUploadLimit(\"default\", new()\n    {\n        Limit = 100,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := threatdetection.NewFileUploadLimit(ctx, \"default\", \u0026threatdetection.FileUploadLimitArgs{\n\t\t\tLimit: pulumi.Int(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.FileUploadLimit;\nimport com.pulumi.alicloud.threatdetection.FileUploadLimitArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new FileUploadLimit(\"default\", FileUploadLimitArgs.builder()\n            .limit(100)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:threatdetection:FileUploadLimit\n    properties:\n      limit: '100'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.threatdetection.FileUploadLimit`\" pulumi-lang-dotnet=\"`alicloud.threatdetection.FileUploadLimit`\" pulumi-lang-go=\"`threatdetection.FileUploadLimit`\" pulumi-lang-python=\"`threatdetection.FileUploadLimit`\" pulumi-lang-yaml=\"`alicloud.threatdetection.FileUploadLimit`\" pulumi-lang-java=\"`alicloud.threatdetection.FileUploadLimit`\"\u003e`alicloud.threatdetection.FileUploadLimit`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.threatdetection.FileUploadLimit`\" pulumi-lang-dotnet=\"`alicloud.threatdetection.FileUploadLimit`\" pulumi-lang-go=\"`threatdetection.FileUploadLimit`\" pulumi-lang-python=\"`threatdetection.FileUploadLimit`\" pulumi-lang-yaml=\"`alicloud.threatdetection.FileUploadLimit`\" pulumi-lang-java=\"`alicloud.threatdetection.FileUploadLimit`\"\u003e`alicloud.threatdetection.FileUploadLimit`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection File Upload Limit can be imported using the id, e.g.\n\n```sh\n$ terraform import alicloud_threat_detection_file_upload_limit.example \n```\n\n","properties":{"limit":{"type":"integer","description":"File Upload Threshold.\n"}},"required":["limit"],"inputProperties":{"limit":{"type":"integer","description":"File Upload Threshold.\n"}},"requiredInputs":["limit"],"stateInputs":{"description":"Input properties used for looking up and filtering FileUploadLimit resources.\n","properties":{"limit":{"type":"integer","description":"File Upload Threshold.\n"}},"type":"object"}},"alicloud:threatdetection/honeyPot:HoneyPot":{"description":"Provides a Threat Detection Honey Pot resource.\n\nFor information about Threat Detection Honey Pot and how to use it, see [What is Honey Pot](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-createhoneypot).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst _default = alicloud.threatdetection.getHoneypotImages({\n    nameRegex: \"^ruoyi\",\n});\nconst defaultHoneypotNode = new alicloud.threatdetection.HoneypotNode(\"default\", {\n    nodeName: name,\n    availableProbeNum: 20,\n    securityGroupProbeIpLists: [\"0.0.0.0/0\"],\n});\nconst defaultHoneyPot = new alicloud.threatdetection.HoneyPot(\"default\", {\n    honeypotImageName: _default.then(_default =\u003e _default.images?.[0]?.honeypotImageName),\n    honeypotImageId: _default.then(_default =\u003e _default.images?.[0]?.honeypotImageId),\n    honeypotName: name,\n    nodeId: defaultHoneypotNode.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\ndefault = alicloud.threatdetection.get_honeypot_images(name_regex=\"^ruoyi\")\ndefault_honeypot_node = alicloud.threatdetection.HoneypotNode(\"default\",\n    node_name=name,\n    available_probe_num=20,\n    security_group_probe_ip_lists=[\"0.0.0.0/0\"])\ndefault_honey_pot = alicloud.threatdetection.HoneyPot(\"default\",\n    honeypot_image_name=default.images[0].honeypot_image_name,\n    honeypot_image_id=default.images[0].honeypot_image_id,\n    honeypot_name=name,\n    node_id=default_honeypot_node.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var @default = AliCloud.ThreatDetection.GetHoneypotImages.Invoke(new()\n    {\n        NameRegex = \"^ruoyi\",\n    });\n\n    var defaultHoneypotNode = new AliCloud.ThreatDetection.HoneypotNode(\"default\", new()\n    {\n        NodeName = name,\n        AvailableProbeNum = 20,\n        SecurityGroupProbeIpLists = new[]\n        {\n            \"0.0.0.0/0\",\n        },\n    });\n\n    var defaultHoneyPot = new AliCloud.ThreatDetection.HoneyPot(\"default\", new()\n    {\n        HoneypotImageName = @default.Apply(@default =\u003e @default.Apply(getHoneypotImagesResult =\u003e getHoneypotImagesResult.Images[0]?.HoneypotImageName)),\n        HoneypotImageId = @default.Apply(@default =\u003e @default.Apply(getHoneypotImagesResult =\u003e getHoneypotImagesResult.Images[0]?.HoneypotImageId)),\n        HoneypotName = name,\n        NodeId = defaultHoneypotNode.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := threatdetection.GetHoneypotImages(ctx, \u0026threatdetection.GetHoneypotImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ruoyi\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHoneypotNode, err := threatdetection.NewHoneypotNode(ctx, \"default\", \u0026threatdetection.HoneypotNodeArgs{\n\t\t\tNodeName:          pulumi.String(name),\n\t\t\tAvailableProbeNum: pulumi.Int(20),\n\t\t\tSecurityGroupProbeIpLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = threatdetection.NewHoneyPot(ctx, \"default\", \u0026threatdetection.HoneyPotArgs{\n\t\t\tHoneypotImageName: pulumi.String(_default.Images[0].HoneypotImageName),\n\t\t\tHoneypotImageId:   pulumi.String(_default.Images[0].HoneypotImageId),\n\t\t\tHoneypotName:      pulumi.String(name),\n\t\t\tNodeId:            defaultHoneypotNode.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetHoneypotImagesArgs;\nimport com.pulumi.alicloud.threatdetection.HoneypotNode;\nimport com.pulumi.alicloud.threatdetection.HoneypotNodeArgs;\nimport com.pulumi.alicloud.threatdetection.HoneyPot;\nimport com.pulumi.alicloud.threatdetection.HoneyPotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        final var default = ThreatdetectionFunctions.getHoneypotImages(GetHoneypotImagesArgs.builder()\n            .nameRegex(\"^ruoyi\")\n            .build());\n\n        var defaultHoneypotNode = new HoneypotNode(\"defaultHoneypotNode\", HoneypotNodeArgs.builder()\n            .nodeName(name)\n            .availableProbeNum(20)\n            .securityGroupProbeIpLists(\"0.0.0.0/0\")\n            .build());\n\n        var defaultHoneyPot = new HoneyPot(\"defaultHoneyPot\", HoneyPotArgs.builder()\n            .honeypotImageName(default_.images()[0].honeypotImageName())\n            .honeypotImageId(default_.images()[0].honeypotImageId())\n            .honeypotName(name)\n            .nodeId(defaultHoneypotNode.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  defaultHoneypotNode:\n    type: alicloud:threatdetection:HoneypotNode\n    name: default\n    properties:\n      nodeName: ${name}\n      availableProbeNum: 20\n      securityGroupProbeIpLists:\n        - 0.0.0.0/0\n  defaultHoneyPot:\n    type: alicloud:threatdetection:HoneyPot\n    name: default\n    properties:\n      honeypotImageName: ${default.images[0].honeypotImageName}\n      honeypotImageId: ${default.images[0].honeypotImageId}\n      honeypotName: ${name}\n      nodeId: ${defaultHoneypotNode.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getHoneypotImages\n      arguments:\n        nameRegex: ^ruoyi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Honey Pot can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_threat_detection_honey_pot.example \u003cid\u003e\n```\n\n","properties":{"honeypotId":{"type":"string","description":"Honeypot ID.\n"},"honeypotImageId":{"type":"string","description":"The image ID of the honeypot.\n"},"honeypotImageName":{"type":"string","description":"Honeypot mirror name.\n"},"honeypotName":{"type":"string","description":"Honeypot custom name.\n"},"nodeId":{"type":"string","description":"The ID of the honeypot management node.\n"},"presetId":{"type":"string","description":"The custom parameter ID of honeypot.\n"},"states":{"type":"array","items":{"type":"string"},"description":"Honeypot status.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"required":["honeypotId","honeypotImageId","honeypotImageName","honeypotName","nodeId","presetId","states","status"],"inputProperties":{"honeypotImageId":{"type":"string","description":"The image ID of the honeypot.\n","willReplaceOnChanges":true},"honeypotImageName":{"type":"string","description":"Honeypot mirror name.\n","willReplaceOnChanges":true},"honeypotName":{"type":"string","description":"Honeypot custom name.\n"},"nodeId":{"type":"string","description":"The ID of the honeypot management node.\n","willReplaceOnChanges":true}},"requiredInputs":["honeypotImageId","honeypotImageName","honeypotName","nodeId"],"stateInputs":{"description":"Input properties used for looking up and filtering HoneyPot resources.\n","properties":{"honeypotId":{"type":"string","description":"Honeypot ID.\n"},"honeypotImageId":{"type":"string","description":"The image ID of the honeypot.\n","willReplaceOnChanges":true},"honeypotImageName":{"type":"string","description":"Honeypot mirror name.\n","willReplaceOnChanges":true},"honeypotName":{"type":"string","description":"Honeypot custom name.\n"},"nodeId":{"type":"string","description":"The ID of the honeypot management node.\n","willReplaceOnChanges":true},"presetId":{"type":"string","description":"The custom parameter ID of honeypot.\n"},"states":{"type":"array","items":{"type":"string"},"description":"Honeypot status.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object"}},"alicloud:threatdetection/honeypotNode:HoneypotNode":{"description":"Provides a Threat Detection Honeypot Node resource.\n\nFor information about Threat Detection Honeypot Node and how to use it, see [What is Honeypot Node](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-createhoneypotnode).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = new alicloud.threatdetection.HoneypotNode(\"default\", {\n    nodeName: name,\n    availableProbeNum: 20,\n    securityGroupProbeIpLists: [\"0.0.0.0/0\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.threatdetection.HoneypotNode(\"default\",\n    node_name=name,\n    available_probe_num=20,\n    security_group_probe_ip_lists=[\"0.0.0.0/0\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = new AliCloud.ThreatDetection.HoneypotNode(\"default\", new()\n    {\n        NodeName = name,\n        AvailableProbeNum = 20,\n        SecurityGroupProbeIpLists = new[]\n        {\n            \"0.0.0.0/0\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := threatdetection.NewHoneypotNode(ctx, \"default\", \u0026threatdetection.HoneypotNodeArgs{\n\t\t\tNodeName:          pulumi.String(name),\n\t\t\tAvailableProbeNum: pulumi.Int(20),\n\t\t\tSecurityGroupProbeIpLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.HoneypotNode;\nimport com.pulumi.alicloud.threatdetection.HoneypotNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var default_ = new HoneypotNode(\"default\", HoneypotNodeArgs.builder()\n            .nodeName(name)\n            .availableProbeNum(20)\n            .securityGroupProbeIpLists(\"0.0.0.0/0\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  default:\n    type: alicloud:threatdetection:HoneypotNode\n    properties:\n      nodeName: ${name}\n      availableProbeNum: 20\n      securityGroupProbeIpLists:\n        - 0.0.0.0/0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Honeypot Node can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_threat_detection_honeypot_node.example \u003cid\u003e\n```\n\n","properties":{"allowHoneypotAccessInternet":{"type":"boolean","description":"Whether to allow honeypot access to the external network. Value:-**true**: Allow-**false**: Disabled\n"},"availableProbeNum":{"type":"integer","description":"Number of probes available.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"nodeName":{"type":"string","description":"Management node name.\n"},"securityGroupProbeIpLists":{"type":"array","items":{"type":"string"},"description":"Release the collection of network segments.\n"},"status":{"type":"integer","description":"The status of the resource\n"}},"required":["availableProbeNum","createTime","nodeName","status"],"inputProperties":{"allowHoneypotAccessInternet":{"type":"boolean","description":"Whether to allow honeypot access to the external network. Value:-**true**: Allow-**false**: Disabled\n","willReplaceOnChanges":true},"availableProbeNum":{"type":"integer","description":"Number of probes available.\n"},"nodeName":{"type":"string","description":"Management node name.\n"},"securityGroupProbeIpLists":{"type":"array","items":{"type":"string"},"description":"Release the collection of network segments.\n"}},"requiredInputs":["availableProbeNum","nodeName"],"stateInputs":{"description":"Input properties used for looking up and filtering HoneypotNode resources.\n","properties":{"allowHoneypotAccessInternet":{"type":"boolean","description":"Whether to allow honeypot access to the external network. Value:-**true**: Allow-**false**: Disabled\n","willReplaceOnChanges":true},"availableProbeNum":{"type":"integer","description":"Number of probes available.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"nodeName":{"type":"string","description":"Management node name.\n"},"securityGroupProbeIpLists":{"type":"array","items":{"type":"string"},"description":"Release the collection of network segments.\n"},"status":{"type":"integer","description":"The status of the resource\n"}},"type":"object"}},"alicloud:threatdetection/honeypotPreset:HoneypotPreset":{"description":"Provides a Threat Detection Honeypot Preset resource.\n\nFor information about Threat Detection Honeypot Preset and how to use it, see [What is Honeypot Preset](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-createhoneypotpreset).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst _default = alicloud.threatdetection.getHoneypotImages({\n    nameRegex: \"^ruoyi\",\n});\nconst defaultHoneypotNode = new alicloud.threatdetection.HoneypotNode(\"default\", {\n    nodeName: name,\n    availableProbeNum: 20,\n    securityGroupProbeIpLists: [\"0.0.0.0/0\"],\n});\nconst defaultHoneypotPreset = new alicloud.threatdetection.HoneypotPreset(\"default\", {\n    presetName: name,\n    nodeId: defaultHoneypotNode.id,\n    honeypotImageName: _default.then(_default =\u003e _default.images?.[0]?.honeypotImageName),\n    meta: {\n        portraitOption: true,\n        burp: \"open\",\n        trojanGit: \"open\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\ndefault = alicloud.threatdetection.get_honeypot_images(name_regex=\"^ruoyi\")\ndefault_honeypot_node = alicloud.threatdetection.HoneypotNode(\"default\",\n    node_name=name,\n    available_probe_num=20,\n    security_group_probe_ip_lists=[\"0.0.0.0/0\"])\ndefault_honeypot_preset = alicloud.threatdetection.HoneypotPreset(\"default\",\n    preset_name=name,\n    node_id=default_honeypot_node.id,\n    honeypot_image_name=default.images[0].honeypot_image_name,\n    meta={\n        \"portrait_option\": True,\n        \"burp\": \"open\",\n        \"trojan_git\": \"open\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var @default = AliCloud.ThreatDetection.GetHoneypotImages.Invoke(new()\n    {\n        NameRegex = \"^ruoyi\",\n    });\n\n    var defaultHoneypotNode = new AliCloud.ThreatDetection.HoneypotNode(\"default\", new()\n    {\n        NodeName = name,\n        AvailableProbeNum = 20,\n        SecurityGroupProbeIpLists = new[]\n        {\n            \"0.0.0.0/0\",\n        },\n    });\n\n    var defaultHoneypotPreset = new AliCloud.ThreatDetection.HoneypotPreset(\"default\", new()\n    {\n        PresetName = name,\n        NodeId = defaultHoneypotNode.Id,\n        HoneypotImageName = @default.Apply(@default =\u003e @default.Apply(getHoneypotImagesResult =\u003e getHoneypotImagesResult.Images[0]?.HoneypotImageName)),\n        Meta = new AliCloud.ThreatDetection.Inputs.HoneypotPresetMetaArgs\n        {\n            PortraitOption = true,\n            Burp = \"open\",\n            TrojanGit = \"open\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := threatdetection.GetHoneypotImages(ctx, \u0026threatdetection.GetHoneypotImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ruoyi\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHoneypotNode, err := threatdetection.NewHoneypotNode(ctx, \"default\", \u0026threatdetection.HoneypotNodeArgs{\n\t\t\tNodeName:          pulumi.String(name),\n\t\t\tAvailableProbeNum: pulumi.Int(20),\n\t\t\tSecurityGroupProbeIpLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = threatdetection.NewHoneypotPreset(ctx, \"default\", \u0026threatdetection.HoneypotPresetArgs{\n\t\t\tPresetName:        pulumi.String(name),\n\t\t\tNodeId:            defaultHoneypotNode.ID(),\n\t\t\tHoneypotImageName: pulumi.String(_default.Images[0].HoneypotImageName),\n\t\t\tMeta: \u0026threatdetection.HoneypotPresetMetaArgs{\n\t\t\t\tPortraitOption: pulumi.Bool(true),\n\t\t\t\tBurp:           pulumi.String(\"open\"),\n\t\t\t\tTrojanGit:      pulumi.String(\"open\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetHoneypotImagesArgs;\nimport com.pulumi.alicloud.threatdetection.HoneypotNode;\nimport com.pulumi.alicloud.threatdetection.HoneypotNodeArgs;\nimport com.pulumi.alicloud.threatdetection.HoneypotPreset;\nimport com.pulumi.alicloud.threatdetection.HoneypotPresetArgs;\nimport com.pulumi.alicloud.threatdetection.inputs.HoneypotPresetMetaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        final var default = ThreatdetectionFunctions.getHoneypotImages(GetHoneypotImagesArgs.builder()\n            .nameRegex(\"^ruoyi\")\n            .build());\n\n        var defaultHoneypotNode = new HoneypotNode(\"defaultHoneypotNode\", HoneypotNodeArgs.builder()\n            .nodeName(name)\n            .availableProbeNum(20)\n            .securityGroupProbeIpLists(\"0.0.0.0/0\")\n            .build());\n\n        var defaultHoneypotPreset = new HoneypotPreset(\"defaultHoneypotPreset\", HoneypotPresetArgs.builder()\n            .presetName(name)\n            .nodeId(defaultHoneypotNode.id())\n            .honeypotImageName(default_.images()[0].honeypotImageName())\n            .meta(HoneypotPresetMetaArgs.builder()\n                .portraitOption(true)\n                .burp(\"open\")\n                .trojanGit(\"open\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  defaultHoneypotNode:\n    type: alicloud:threatdetection:HoneypotNode\n    name: default\n    properties:\n      nodeName: ${name}\n      availableProbeNum: 20\n      securityGroupProbeIpLists:\n        - 0.0.0.0/0\n  defaultHoneypotPreset:\n    type: alicloud:threatdetection:HoneypotPreset\n    name: default\n    properties:\n      presetName: ${name}\n      nodeId: ${defaultHoneypotNode.id}\n      honeypotImageName: ${default.images[0].honeypotImageName}\n      meta:\n        portraitOption: true\n        burp: open\n        trojanGit: open\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getHoneypotImages\n      arguments:\n        nameRegex: ^ruoyi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Honeypot Preset can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_threat_detection_honeypot_preset.example \u003cid\u003e\n```\n\n","properties":{"honeypotImageName":{"type":"string","description":"Honeypot mirror name\n"},"honeypotPresetId":{"type":"string","description":"Unique ID of honeypot Template\n"},"meta":{"$ref":"#/types/alicloud:threatdetection/HoneypotPresetMeta:HoneypotPresetMeta","description":"Honeypot template custom parameters. See \u003cspan pulumi-lang-nodejs=\"`meta`\" pulumi-lang-dotnet=\"`Meta`\" pulumi-lang-go=\"`meta`\" pulumi-lang-python=\"`meta`\" pulumi-lang-yaml=\"`meta`\" pulumi-lang-java=\"`meta`\"\u003e`meta`\u003c/span\u003e below.\n"},"nodeId":{"type":"string","description":"Unique id of management node\n"},"presetName":{"type":"string","description":"Honeypot template custom name\n"}},"required":["honeypotImageName","honeypotPresetId","meta","nodeId","presetName"],"inputProperties":{"honeypotImageName":{"type":"string","description":"Honeypot mirror name\n","willReplaceOnChanges":true},"meta":{"$ref":"#/types/alicloud:threatdetection/HoneypotPresetMeta:HoneypotPresetMeta","description":"Honeypot template custom parameters. See \u003cspan pulumi-lang-nodejs=\"`meta`\" pulumi-lang-dotnet=\"`Meta`\" pulumi-lang-go=\"`meta`\" pulumi-lang-python=\"`meta`\" pulumi-lang-yaml=\"`meta`\" pulumi-lang-java=\"`meta`\"\u003e`meta`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"nodeId":{"type":"string","description":"Unique id of management node\n","willReplaceOnChanges":true},"presetName":{"type":"string","description":"Honeypot template custom name\n"}},"requiredInputs":["honeypotImageName","meta","nodeId","presetName"],"stateInputs":{"description":"Input properties used for looking up and filtering HoneypotPreset resources.\n","properties":{"honeypotImageName":{"type":"string","description":"Honeypot mirror name\n","willReplaceOnChanges":true},"honeypotPresetId":{"type":"string","description":"Unique ID of honeypot Template\n"},"meta":{"$ref":"#/types/alicloud:threatdetection/HoneypotPresetMeta:HoneypotPresetMeta","description":"Honeypot template custom parameters. See \u003cspan pulumi-lang-nodejs=\"`meta`\" pulumi-lang-dotnet=\"`Meta`\" pulumi-lang-go=\"`meta`\" pulumi-lang-python=\"`meta`\" pulumi-lang-yaml=\"`meta`\" pulumi-lang-java=\"`meta`\"\u003e`meta`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"nodeId":{"type":"string","description":"Unique id of management node\n","willReplaceOnChanges":true},"presetName":{"type":"string","description":"Honeypot template custom name\n"}},"type":"object"}},"alicloud:threatdetection/honeypotProbe:HoneypotProbe":{"description":"Provides a Threat Detection Honeypot Probe resource.\n\nFor information about Threat Detection Honeypot Probe and how to use it, see [What is Honeypot Probe](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-createhoneypotprobe).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.threatdetection.HoneypotProbe(\"default\", {\n    uuid: \"032b618f-b220-4a0d-bd37-fbdc6ef58b6a\",\n    probeType: \"host_probe\",\n    controlNodeId: \"a44e1ab3-6945-444c-889d-5bacee7056e8\",\n    ping: true,\n    honeypotBindLists: [{\n        bindPortLists: [{\n            startPort: 80,\n            endPort: 80,\n        }],\n        honeypotId: \"ede59ccdb1b7a2e21735d4593a6eb5ed31883af320c5ab63ab33818e94307be9\",\n    }],\n    displayName: \"apispec\",\n    arp: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.HoneypotProbe(\"default\",\n    uuid=\"032b618f-b220-4a0d-bd37-fbdc6ef58b6a\",\n    probe_type=\"host_probe\",\n    control_node_id=\"a44e1ab3-6945-444c-889d-5bacee7056e8\",\n    ping=True,\n    honeypot_bind_lists=[{\n        \"bind_port_lists\": [{\n            \"start_port\": 80,\n            \"end_port\": 80,\n        }],\n        \"honeypot_id\": \"ede59ccdb1b7a2e21735d4593a6eb5ed31883af320c5ab63ab33818e94307be9\",\n    }],\n    display_name=\"apispec\",\n    arp=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.ThreatDetection.HoneypotProbe(\"default\", new()\n    {\n        Uuid = \"032b618f-b220-4a0d-bd37-fbdc6ef58b6a\",\n        ProbeType = \"host_probe\",\n        ControlNodeId = \"a44e1ab3-6945-444c-889d-5bacee7056e8\",\n        Ping = true,\n        HoneypotBindLists = new[]\n        {\n            new AliCloud.ThreatDetection.Inputs.HoneypotProbeHoneypotBindListArgs\n            {\n                BindPortLists = new[]\n                {\n                    new AliCloud.ThreatDetection.Inputs.HoneypotProbeHoneypotBindListBindPortListArgs\n                    {\n                        StartPort = 80,\n                        EndPort = 80,\n                    },\n                },\n                HoneypotId = \"ede59ccdb1b7a2e21735d4593a6eb5ed31883af320c5ab63ab33818e94307be9\",\n            },\n        },\n        DisplayName = \"apispec\",\n        Arp = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := threatdetection.NewHoneypotProbe(ctx, \"default\", \u0026threatdetection.HoneypotProbeArgs{\n\t\t\tUuid:          pulumi.String(\"032b618f-b220-4a0d-bd37-fbdc6ef58b6a\"),\n\t\t\tProbeType:     pulumi.String(\"host_probe\"),\n\t\t\tControlNodeId: pulumi.String(\"a44e1ab3-6945-444c-889d-5bacee7056e8\"),\n\t\t\tPing:          pulumi.Bool(true),\n\t\t\tHoneypotBindLists: threatdetection.HoneypotProbeHoneypotBindListArray{\n\t\t\t\t\u0026threatdetection.HoneypotProbeHoneypotBindListArgs{\n\t\t\t\t\tBindPortLists: threatdetection.HoneypotProbeHoneypotBindListBindPortListArray{\n\t\t\t\t\t\t\u0026threatdetection.HoneypotProbeHoneypotBindListBindPortListArgs{\n\t\t\t\t\t\t\tStartPort: pulumi.Int(80),\n\t\t\t\t\t\t\tEndPort:   pulumi.Int(80),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tHoneypotId: pulumi.String(\"ede59ccdb1b7a2e21735d4593a6eb5ed31883af320c5ab63ab33818e94307be9\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDisplayName: pulumi.String(\"apispec\"),\n\t\t\tArp:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.HoneypotProbe;\nimport com.pulumi.alicloud.threatdetection.HoneypotProbeArgs;\nimport com.pulumi.alicloud.threatdetection.inputs.HoneypotProbeHoneypotBindListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new HoneypotProbe(\"default\", HoneypotProbeArgs.builder()\n            .uuid(\"032b618f-b220-4a0d-bd37-fbdc6ef58b6a\")\n            .probeType(\"host_probe\")\n            .controlNodeId(\"a44e1ab3-6945-444c-889d-5bacee7056e8\")\n            .ping(true)\n            .honeypotBindLists(HoneypotProbeHoneypotBindListArgs.builder()\n                .bindPortLists(HoneypotProbeHoneypotBindListBindPortListArgs.builder()\n                    .startPort(80)\n                    .endPort(80)\n                    .build())\n                .honeypotId(\"ede59ccdb1b7a2e21735d4593a6eb5ed31883af320c5ab63ab33818e94307be9\")\n                .build())\n            .displayName(\"apispec\")\n            .arp(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:threatdetection:HoneypotProbe\n    properties:\n      uuid: 032b618f-b220-4a0d-bd37-fbdc6ef58b6a\n      probeType: host_probe\n      controlNodeId: a44e1ab3-6945-444c-889d-5bacee7056e8\n      ping: true\n      honeypotBindLists:\n        - bindPortLists:\n            - startPort: 80\n              endPort: 80\n          honeypotId: ede59ccdb1b7a2e21735d4593a6eb5ed31883af320c5ab63ab33818e94307be9\n      displayName: apispec\n      arp: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Honeypot Probe can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_threat_detection_honeypot_probe.example \u003cid\u003e\n```\n\n","properties":{"arp":{"type":"boolean","description":"ARP spoofing detection.**true**: Enable **false**: Disabled\n"},"controlNodeId":{"type":"string","description":"The ID of the management node.\n"},"displayName":{"type":"string","description":"Probe display name.\n"},"honeypotBindLists":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/HoneypotProbeHoneypotBindList:HoneypotProbeHoneypotBindList"},"description":"Configure the service.See the following `Block HoneypotBindList`.\n"},"honeypotProbeId":{"type":"string","description":"The first ID of the resource\n"},"ping":{"type":"boolean","description":"Ping scan detection. Value: **true**: Enable **false**: Disabled\n"},"probeType":{"type":"string","description":"Probe type, support \u003cspan pulumi-lang-nodejs=\"`hostProbe`\" pulumi-lang-dotnet=\"`HostProbe`\" pulumi-lang-go=\"`hostProbe`\" pulumi-lang-python=\"`host_probe`\" pulumi-lang-yaml=\"`hostProbe`\" pulumi-lang-java=\"`hostProbe`\"\u003e`host_probe`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`vpcBlackHoleProbe`\" pulumi-lang-dotnet=\"`VpcBlackHoleProbe`\" pulumi-lang-go=\"`vpcBlackHoleProbe`\" pulumi-lang-python=\"`vpc_black_hole_probe`\" pulumi-lang-yaml=\"`vpcBlackHoleProbe`\" pulumi-lang-java=\"`vpcBlackHoleProbe`\"\u003e`vpc_black_hole_probe`\u003c/span\u003e.\n"},"probeVersion":{"type":"string","description":"The version of the probe.\n"},"proxyIp":{"type":"string","description":"The IP address of the proxy.\n"},"serviceIpLists":{"type":"array","items":{"type":"string"},"description":"Listen to the IP address list.\n"},"status":{"type":"string","description":"The status of the resource\n"},"uuid":{"type":"string","description":"Machine uuid, **probe_type** is \u003cspan pulumi-lang-nodejs=\"`hostProbe`\" pulumi-lang-dotnet=\"`HostProbe`\" pulumi-lang-go=\"`hostProbe`\" pulumi-lang-python=\"`host_probe`\" pulumi-lang-yaml=\"`hostProbe`\" pulumi-lang-java=\"`hostProbe`\"\u003e`host_probe`\u003c/span\u003e. This value cannot be empty.\n"},"vpcId":{"type":"string","description":"The ID of the VPC. **probe_type** is \u003cspan pulumi-lang-nodejs=\"`vpcBlackHoleProbe`\" pulumi-lang-dotnet=\"`VpcBlackHoleProbe`\" pulumi-lang-go=\"`vpcBlackHoleProbe`\" pulumi-lang-python=\"`vpc_black_hole_probe`\" pulumi-lang-yaml=\"`vpcBlackHoleProbe`\" pulumi-lang-java=\"`vpcBlackHoleProbe`\"\u003e`vpc_black_hole_probe`\u003c/span\u003e. This value cannot be empty.\n"}},"required":["controlNodeId","displayName","honeypotProbeId","probeType","probeVersion","serviceIpLists","status"],"inputProperties":{"arp":{"type":"boolean","description":"ARP spoofing detection.**true**: Enable **false**: Disabled\n"},"controlNodeId":{"type":"string","description":"The ID of the management node.\n","willReplaceOnChanges":true},"displayName":{"type":"string","description":"Probe display name.\n"},"honeypotBindLists":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/HoneypotProbeHoneypotBindList:HoneypotProbeHoneypotBindList"},"description":"Configure the service.See the following `Block HoneypotBindList`.\n","willReplaceOnChanges":true},"ping":{"type":"boolean","description":"Ping scan detection. Value: **true**: Enable **false**: Disabled\n"},"probeType":{"type":"string","description":"Probe type, support \u003cspan pulumi-lang-nodejs=\"`hostProbe`\" pulumi-lang-dotnet=\"`HostProbe`\" pulumi-lang-go=\"`hostProbe`\" pulumi-lang-python=\"`host_probe`\" pulumi-lang-yaml=\"`hostProbe`\" pulumi-lang-java=\"`hostProbe`\"\u003e`host_probe`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`vpcBlackHoleProbe`\" pulumi-lang-dotnet=\"`VpcBlackHoleProbe`\" pulumi-lang-go=\"`vpcBlackHoleProbe`\" pulumi-lang-python=\"`vpc_black_hole_probe`\" pulumi-lang-yaml=\"`vpcBlackHoleProbe`\" pulumi-lang-java=\"`vpcBlackHoleProbe`\"\u003e`vpc_black_hole_probe`\u003c/span\u003e.\n","willReplaceOnChanges":true},"probeVersion":{"type":"string","description":"The version of the probe.\n","willReplaceOnChanges":true},"proxyIp":{"type":"string","description":"The IP address of the proxy.\n","willReplaceOnChanges":true},"serviceIpLists":{"type":"array","items":{"type":"string"},"description":"Listen to the IP address list.\n"},"uuid":{"type":"string","description":"Machine uuid, **probe_type** is \u003cspan pulumi-lang-nodejs=\"`hostProbe`\" pulumi-lang-dotnet=\"`HostProbe`\" pulumi-lang-go=\"`hostProbe`\" pulumi-lang-python=\"`host_probe`\" pulumi-lang-yaml=\"`hostProbe`\" pulumi-lang-java=\"`hostProbe`\"\u003e`host_probe`\u003c/span\u003e. This value cannot be empty.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the VPC. **probe_type** is \u003cspan pulumi-lang-nodejs=\"`vpcBlackHoleProbe`\" pulumi-lang-dotnet=\"`VpcBlackHoleProbe`\" pulumi-lang-go=\"`vpcBlackHoleProbe`\" pulumi-lang-python=\"`vpc_black_hole_probe`\" pulumi-lang-yaml=\"`vpcBlackHoleProbe`\" pulumi-lang-java=\"`vpcBlackHoleProbe`\"\u003e`vpc_black_hole_probe`\u003c/span\u003e. This value cannot be empty.\n","willReplaceOnChanges":true}},"requiredInputs":["controlNodeId","displayName","probeType"],"stateInputs":{"description":"Input properties used for looking up and filtering HoneypotProbe resources.\n","properties":{"arp":{"type":"boolean","description":"ARP spoofing detection.**true**: Enable **false**: Disabled\n"},"controlNodeId":{"type":"string","description":"The ID of the management node.\n","willReplaceOnChanges":true},"displayName":{"type":"string","description":"Probe display name.\n"},"honeypotBindLists":{"type":"array","items":{"$ref":"#/types/alicloud:threatdetection/HoneypotProbeHoneypotBindList:HoneypotProbeHoneypotBindList"},"description":"Configure the service.See the following `Block HoneypotBindList`.\n","willReplaceOnChanges":true},"honeypotProbeId":{"type":"string","description":"The first ID of the resource\n"},"ping":{"type":"boolean","description":"Ping scan detection. Value: **true**: Enable **false**: Disabled\n"},"probeType":{"type":"string","description":"Probe type, support \u003cspan pulumi-lang-nodejs=\"`hostProbe`\" pulumi-lang-dotnet=\"`HostProbe`\" pulumi-lang-go=\"`hostProbe`\" pulumi-lang-python=\"`host_probe`\" pulumi-lang-yaml=\"`hostProbe`\" pulumi-lang-java=\"`hostProbe`\"\u003e`host_probe`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`vpcBlackHoleProbe`\" pulumi-lang-dotnet=\"`VpcBlackHoleProbe`\" pulumi-lang-go=\"`vpcBlackHoleProbe`\" pulumi-lang-python=\"`vpc_black_hole_probe`\" pulumi-lang-yaml=\"`vpcBlackHoleProbe`\" pulumi-lang-java=\"`vpcBlackHoleProbe`\"\u003e`vpc_black_hole_probe`\u003c/span\u003e.\n","willReplaceOnChanges":true},"probeVersion":{"type":"string","description":"The version of the probe.\n","willReplaceOnChanges":true},"proxyIp":{"type":"string","description":"The IP address of the proxy.\n","willReplaceOnChanges":true},"serviceIpLists":{"type":"array","items":{"type":"string"},"description":"Listen to the IP address list.\n"},"status":{"type":"string","description":"The status of the resource\n"},"uuid":{"type":"string","description":"Machine uuid, **probe_type** is \u003cspan pulumi-lang-nodejs=\"`hostProbe`\" pulumi-lang-dotnet=\"`HostProbe`\" pulumi-lang-go=\"`hostProbe`\" pulumi-lang-python=\"`host_probe`\" pulumi-lang-yaml=\"`hostProbe`\" pulumi-lang-java=\"`hostProbe`\"\u003e`host_probe`\u003c/span\u003e. This value cannot be empty.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the VPC. **probe_type** is \u003cspan pulumi-lang-nodejs=\"`vpcBlackHoleProbe`\" pulumi-lang-dotnet=\"`VpcBlackHoleProbe`\" pulumi-lang-go=\"`vpcBlackHoleProbe`\" pulumi-lang-python=\"`vpc_black_hole_probe`\" pulumi-lang-yaml=\"`vpcBlackHoleProbe`\" pulumi-lang-java=\"`vpcBlackHoleProbe`\"\u003e`vpc_black_hole_probe`\u003c/span\u003e. This value cannot be empty.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:threatdetection/imageEventOperation:ImageEventOperation":{"description":"Provides a Threat Detection Image Event Operation resource.\n\nImage Event Operation.\n\nFor information about Threat Detection Image Event Operation and how to use it, see [What is Image Event Operation](https://www.alibabacloud.com/help/zh/security-center/developer-reference/api-sas-2018-12-03-addimageeventoperation).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.threatdetection.ImageEventOperation(\"default\", {\n    eventType: \"maliciousFile\",\n    operationCode: \"whitelist\",\n    eventKey: \"alibabacloud_ak\",\n    scenarios: `{\n  \\\\\"type\\\\\":\\\\\"default\\\\\",\n  \\\\\"value\\\\\":\\\\\"\\\\\"\n}\n`,\n    eventName: \"阿里云AK\",\n    conditions: `[\n  {\n      \\\\\"condition\\\\\":\\\\\"MD5\\\\\",\n      \\\\\"type\\\\\":\\\\\"equals\\\\\",\n      \\\\\"value\\\\\":\\\\\"0083a31cc0083a31ccf7c10367a6e783e\\\\\"\n  }\n]\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.threatdetection.ImageEventOperation(\"default\",\n    event_type=\"maliciousFile\",\n    operation_code=\"whitelist\",\n    event_key=\"alibabacloud_ak\",\n    scenarios=\"\"\"{\n  \\\"type\\\":\\\"default\\\",\n  \\\"value\\\":\\\"\\\"\n}\n\"\"\",\n    event_name=\"阿里云AK\",\n    conditions=\"\"\"[\n  {\n      \\\"condition\\\":\\\"MD5\\\",\n      \\\"type\\\":\\\"equals\\\",\n      \\\"value\\\":\\\"0083a31cc0083a31ccf7c10367a6e783e\\\"\n  }\n]\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ThreatDetection.ImageEventOperation(\"default\", new()\n    {\n        EventType = \"maliciousFile\",\n        OperationCode = \"whitelist\",\n        EventKey = \"alibabacloud_ak\",\n        Scenarios = @\"{\n  \\\"\"type\\\"\":\\\"\"default\\\"\",\n  \\\"\"value\\\"\":\\\"\"\\\"\"\n}\n\",\n        EventName = \"阿里云AK\",\n        Conditions = @\"[\n  {\n      \\\"\"condition\\\"\":\\\"\"MD5\\\"\",\n      \\\"\"type\\\"\":\\\"\"equals\\\"\",\n      \\\"\"value\\\"\":\\\"\"0083a31cc0083a31ccf7c10367a6e783e\\\"\"\n  }\n]\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := threatdetection.NewImageEventOperation(ctx, \"default\", \u0026threatdetection.ImageEventOperationArgs{\n\t\t\tEventType:     pulumi.String(\"maliciousFile\"),\n\t\t\tOperationCode: pulumi.String(\"whitelist\"),\n\t\t\tEventKey:      pulumi.String(\"alibabacloud_ak\"),\n\t\t\tScenarios:     pulumi.String(\"{\\n  \\\\\\\"type\\\\\\\":\\\\\\\"default\\\\\\\",\\n  \\\\\\\"value\\\\\\\":\\\\\\\"\\\\\\\"\\n}\\n\"),\n\t\t\tEventName:     pulumi.String(\"阿里云AK\"),\n\t\t\tConditions: pulumi.String(`[\n  {\n      \\\"condition\\\":\\\"MD5\\\",\n      \\\"type\\\":\\\"equals\\\",\n      \\\"value\\\":\\\"0083a31cc0083a31ccf7c10367a6e783e\\\"\n  }\n]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ImageEventOperation;\nimport com.pulumi.alicloud.threatdetection.ImageEventOperationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ImageEventOperation(\"default\", ImageEventOperationArgs.builder()\n            .eventType(\"maliciousFile\")\n            .operationCode(\"whitelist\")\n            .eventKey(\"alibabacloud_ak\")\n            .scenarios(\"\"\"\n{\n  \\\"type\\\":\\\"default\\\",\n  \\\"value\\\":\\\"\\\"\n}\n            \"\"\")\n            .eventName(\"阿里云AK\")\n            .conditions(\"\"\"\n[\n  {\n      \\\"condition\\\":\\\"MD5\\\",\n      \\\"type\\\":\\\"equals\\\",\n      \\\"value\\\":\\\"0083a31cc0083a31ccf7c10367a6e783e\\\"\n  }\n]\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:threatdetection:ImageEventOperation\n    properties:\n      eventType: maliciousFile\n      operationCode: whitelist\n      eventKey: alibabacloud_ak\n      scenarios: |\n        {\n          \\\"type\\\":\\\"default\\\",\n          \\\"value\\\":\\\"\\\"\n        }\n      eventName: 阿里云AK\n      conditions: |\n        [\n          {\n              \\\"condition\\\":\\\"MD5\\\",\n              \\\"type\\\":\\\"equals\\\",\n              \\\"value\\\":\\\"0083a31cc0083a31ccf7c10367a6e783e\\\"\n          }\n        ]\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Image Event Operation can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:threatdetection/imageEventOperation:ImageEventOperation example \u003cid\u003e\n```\n\n","properties":{"conditions":{"type":"string","description":"The rule conditions. The value is in the JSON format. For more information, see [How to use it](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-addimageeventoperation). **NOTE:** From version 1.255.0, \u003cspan pulumi-lang-nodejs=\"`conditions`\" pulumi-lang-dotnet=\"`Conditions`\" pulumi-lang-go=\"`conditions`\" pulumi-lang-python=\"`conditions`\" pulumi-lang-yaml=\"`conditions`\" pulumi-lang-java=\"`conditions`\"\u003e`conditions`\u003c/span\u003e can be modified.\n"},"eventKey":{"type":"string","description":"The keyword of the alert item.\n"},"eventName":{"type":"string","description":"The name of the alert item.\n"},"eventType":{"type":"string","description":"The alert type.\n"},"note":{"type":"string","description":"The remarks.\n"},"operationCode":{"type":"string","description":"The operation code.\n"},"scenarios":{"type":"string","description":"The application scope of the rule.\n"},"source":{"type":"string","description":"The source of the whitelist. Valid values:\n"}},"required":["conditions","eventType","operationCode","scenarios","source"],"inputProperties":{"conditions":{"type":"string","description":"The rule conditions. The value is in the JSON format. For more information, see [How to use it](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-addimageeventoperation). **NOTE:** From version 1.255.0, \u003cspan pulumi-lang-nodejs=\"`conditions`\" pulumi-lang-dotnet=\"`Conditions`\" pulumi-lang-go=\"`conditions`\" pulumi-lang-python=\"`conditions`\" pulumi-lang-yaml=\"`conditions`\" pulumi-lang-java=\"`conditions`\"\u003e`conditions`\u003c/span\u003e can be modified.\n"},"eventKey":{"type":"string","description":"The keyword of the alert item.\n","willReplaceOnChanges":true},"eventName":{"type":"string","description":"The name of the alert item.\n","willReplaceOnChanges":true},"eventType":{"type":"string","description":"The alert type.\n","willReplaceOnChanges":true},"note":{"type":"string","description":"The remarks.\n"},"operationCode":{"type":"string","description":"The operation code.\n","willReplaceOnChanges":true},"scenarios":{"type":"string","description":"The application scope of the rule.\n"},"source":{"type":"string","description":"The source of the whitelist. Valid values:\n","willReplaceOnChanges":true}},"requiredInputs":["conditions","eventType","operationCode"],"stateInputs":{"description":"Input properties used for looking up and filtering ImageEventOperation resources.\n","properties":{"conditions":{"type":"string","description":"The rule conditions. The value is in the JSON format. For more information, see [How to use it](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-addimageeventoperation). **NOTE:** From version 1.255.0, \u003cspan pulumi-lang-nodejs=\"`conditions`\" pulumi-lang-dotnet=\"`Conditions`\" pulumi-lang-go=\"`conditions`\" pulumi-lang-python=\"`conditions`\" pulumi-lang-yaml=\"`conditions`\" pulumi-lang-java=\"`conditions`\"\u003e`conditions`\u003c/span\u003e can be modified.\n"},"eventKey":{"type":"string","description":"The keyword of the alert item.\n","willReplaceOnChanges":true},"eventName":{"type":"string","description":"The name of the alert item.\n","willReplaceOnChanges":true},"eventType":{"type":"string","description":"The alert type.\n","willReplaceOnChanges":true},"note":{"type":"string","description":"The remarks.\n"},"operationCode":{"type":"string","description":"The operation code.\n","willReplaceOnChanges":true},"scenarios":{"type":"string","description":"The application scope of the rule.\n"},"source":{"type":"string","description":"The source of the whitelist. Valid values:\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:threatdetection/instance:Instance":{"description":"Provides a Threat Detection Instance resource.\n\nCloud Security Center instance.\n\nFor information about Threat Detection Instance and how to use it, see [What is Instance](https://www.alibabacloud.com/help/en/security-center/latest/what-is-security-center).\n\n\u003e **NOTE:** Available since v1.199.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.threatdetection.Instance(\"default\", {\n    threatAnalysis: \"10\",\n    sasSlsStorage: \"10\",\n    vCore: \"10\",\n    sasSc: false,\n    buyNumber: \"10\",\n    honeypotSwitch: \"2\",\n    paymentType: \"Subscription\",\n    sasSdk: \"10\",\n    sasAntiRansomware: \"10\",\n    renewalStatus: \"ManualRenewal\",\n    period: 1,\n    vulSwitch: \"1\",\n    raspCount: \"1\",\n    vulCount: \"20\",\n    versionCode: \"level3\",\n    sasCspm: \"1000\",\n    renewalPeriodUnit: \"M\",\n    containerImageScanNew: \"100\",\n    honeypot: \"20\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.threatdetection.Instance(\"default\",\n    threat_analysis=\"10\",\n    sas_sls_storage=\"10\",\n    v_core=\"10\",\n    sas_sc=False,\n    buy_number=\"10\",\n    honeypot_switch=\"2\",\n    payment_type=\"Subscription\",\n    sas_sdk=\"10\",\n    sas_anti_ransomware=\"10\",\n    renewal_status=\"ManualRenewal\",\n    period=1,\n    vul_switch=\"1\",\n    rasp_count=\"1\",\n    vul_count=\"20\",\n    version_code=\"level3\",\n    sas_cspm=\"1000\",\n    renewal_period_unit=\"M\",\n    container_image_scan_new=\"100\",\n    honeypot=\"20\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ThreatDetection.Instance(\"default\", new()\n    {\n        ThreatAnalysis = \"10\",\n        SasSlsStorage = \"10\",\n        VCore = \"10\",\n        SasSc = false,\n        BuyNumber = \"10\",\n        HoneypotSwitch = \"2\",\n        PaymentType = \"Subscription\",\n        SasSdk = \"10\",\n        SasAntiRansomware = \"10\",\n        RenewalStatus = \"ManualRenewal\",\n        Period = 1,\n        VulSwitch = \"1\",\n        RaspCount = \"1\",\n        VulCount = \"20\",\n        VersionCode = \"level3\",\n        SasCspm = \"1000\",\n        RenewalPeriodUnit = \"M\",\n        ContainerImageScanNew = \"100\",\n        Honeypot = \"20\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := threatdetection.NewInstance(ctx, \"default\", \u0026threatdetection.InstanceArgs{\n\t\t\tThreatAnalysis:        pulumi.String(\"10\"),\n\t\t\tSasSlsStorage:         pulumi.String(\"10\"),\n\t\t\tVCore:                 pulumi.String(\"10\"),\n\t\t\tSasSc:                 pulumi.Bool(false),\n\t\t\tBuyNumber:             pulumi.String(\"10\"),\n\t\t\tHoneypotSwitch:        pulumi.String(\"2\"),\n\t\t\tPaymentType:           pulumi.String(\"Subscription\"),\n\t\t\tSasSdk:                pulumi.String(\"10\"),\n\t\t\tSasAntiRansomware:     pulumi.String(\"10\"),\n\t\t\tRenewalStatus:         pulumi.String(\"ManualRenewal\"),\n\t\t\tPeriod:                pulumi.Int(1),\n\t\t\tVulSwitch:             pulumi.String(\"1\"),\n\t\t\tRaspCount:             pulumi.String(\"1\"),\n\t\t\tVulCount:              pulumi.String(\"20\"),\n\t\t\tVersionCode:           pulumi.String(\"level3\"),\n\t\t\tSasCspm:               pulumi.String(\"1000\"),\n\t\t\tRenewalPeriodUnit:     pulumi.String(\"M\"),\n\t\t\tContainerImageScanNew: pulumi.String(\"100\"),\n\t\t\tHoneypot:              pulumi.String(\"20\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.Instance;\nimport com.pulumi.alicloud.threatdetection.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .threatAnalysis(\"10\")\n            .sasSlsStorage(\"10\")\n            .vCore(\"10\")\n            .sasSc(false)\n            .buyNumber(\"10\")\n            .honeypotSwitch(\"2\")\n            .paymentType(\"Subscription\")\n            .sasSdk(\"10\")\n            .sasAntiRansomware(\"10\")\n            .renewalStatus(\"ManualRenewal\")\n            .period(1)\n            .vulSwitch(\"1\")\n            .raspCount(\"1\")\n            .vulCount(\"20\")\n            .versionCode(\"level3\")\n            .sasCspm(\"1000\")\n            .renewalPeriodUnit(\"M\")\n            .containerImageScanNew(\"100\")\n            .honeypot(\"20\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:threatdetection:Instance\n    properties:\n      threatAnalysis: '10'\n      sasSlsStorage: '10'\n      vCore: '10'\n      sasSc: 'false'\n      buyNumber: '10'\n      honeypotSwitch: '2'\n      paymentType: Subscription\n      sasSdk: '10'\n      sasAntiRansomware: '10'\n      renewalStatus: ManualRenewal\n      period: '1'\n      vulSwitch: '1'\n      raspCount: '1'\n      vulCount: '20'\n      versionCode: level3\n      sasCspm: '1000'\n      renewalPeriodUnit: M\n      containerImageScanNew: '100'\n      honeypot: '20'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.threatdetection.Instance`\" pulumi-lang-dotnet=\"`alicloud.threatdetection.Instance`\" pulumi-lang-go=\"`threatdetection.Instance`\" pulumi-lang-python=\"`threatdetection.Instance`\" pulumi-lang-yaml=\"`alicloud.threatdetection.Instance`\" pulumi-lang-java=\"`alicloud.threatdetection.Instance`\"\u003e`alicloud.threatdetection.Instance`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.threatdetection.Instance`\" pulumi-lang-dotnet=\"`alicloud.threatdetection.Instance`\" pulumi-lang-go=\"`threatdetection.Instance`\" pulumi-lang-python=\"`threatdetection.Instance`\" pulumi-lang-yaml=\"`alicloud.threatdetection.Instance`\" pulumi-lang-java=\"`alicloud.threatdetection.Instance`\"\u003e`alicloud.threatdetection.Instance`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:threatdetection/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"buyNumber":{"type":"string","description":"Number of servers.\n"},"containerImageScan":{"type":"string","description":"Container Image security scan. Interval type, value interval:[0,200000].\n\n\u003e **NOTE:**  The step size is 20, that is, only multiples of 20 can be filled in.\n","deprecationMessage":"Field 'container_image_scan' has been deprecated from provider version 1.212.0. Container Image security scan. Interval type, value interval:[0,200000].\u003e The step size is 20, that is, only multiples of 20 can be filled in."},"containerImageScanNew":{"type":"string","description":"Container Image security scan. Interval type, value interval:[0,200000].\n\n\u003e **NOTE:**  The step size is 20, that is, only multiples of 20 can be filled in.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"honeypot":{"type":"string","description":"Number of cloud honeypot licenses. Interval type, value interval:[20,500].\n\n\u003e **NOTE:**  This module can only be purchased when\u003cspan pulumi-lang-nodejs=\" honeypotSwitch \" pulumi-lang-dotnet=\" HoneypotSwitch \" pulumi-lang-go=\" honeypotSwitch \" pulumi-lang-python=\" honeypot_switch \" pulumi-lang-yaml=\" honeypotSwitch \" pulumi-lang-java=\" honeypotSwitch \"\u003e honeypot_switch \u003c/span\u003e= 1, starting with 20.\n"},"honeypotSwitch":{"type":"string","description":"Cloud honeypot. Value:\n- 1: Yes.\n- 2: No.\n"},"modifyType":{"type":"string","description":"Change configuration type, value\n- Upgrade: Upgrade.\n- Downgrade: Downgrade.\n"},"paymentType":{"type":"string","description":"The payment type of the resource\n"},"period":{"type":"integer","description":"Prepaid cycle. The unit is Monthly, please enter an integer multiple of 12 for annual paid products.\n\n\u003e **NOTE:**  must be set when creating a prepaid instance.\n"},"postPaidFlag":{"type":"integer","description":"Post-paid signage. Value:\n"},"postPaidHostAutoBind":{"type":"integer","description":"Automatic binding switch for new assets in host and container protection. Valid values:\n"},"postPaidHostAutoBindVersion":{"type":"integer","description":"The version that is automatically bound to the host and container protection of a pay-as-you-go instance. Valid values:\n"},"postPayModuleSwitch":{"type":"string","description":"The switch status of the pay-as-you-go module. The value is a JSON string. Valid values:\n- Key:\n- `VUL`: Vulnerability Repair Module.\n- `CSPM`: Cloud Security Posture Management Module.\n- `AGENTLESS`: Agentless Detection Module.\n- `SERVERLESS`: Serverless Security Module.\n- `CTDR`: Threat Analysis and Response Module.\n- `POST_HOST`: Host and Container Security Module.\n- `SDK`: Malicious File Detection SDK Module.\n- `RASP`: Application Protection Module.\n- `CTDR_STORAGE`: Log Management Module.\n- `ANTI_RANSOMWARE`: Anti-Ransomware Management.\n- Value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means off, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means on\n\u003e **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`postPayModuleSwitch`\" pulumi-lang-dotnet=\"`PostPayModuleSwitch`\" pulumi-lang-go=\"`postPayModuleSwitch`\" pulumi-lang-python=\"`post_pay_module_switch`\" pulumi-lang-yaml=\"`postPayModuleSwitch`\" pulumi-lang-java=\"`postPayModuleSwitch`\"\u003e`post_pay_module_switch`\u003c/span\u003e has been deprecated from provider version 1.269.0. New field \u003cspan pulumi-lang-nodejs=\"`postPayModuleSwitchObj`\" pulumi-lang-dotnet=\"`PostPayModuleSwitchObj`\" pulumi-lang-go=\"`postPayModuleSwitchObj`\" pulumi-lang-python=\"`post_pay_module_switch_obj`\" pulumi-lang-yaml=\"`postPayModuleSwitchObj`\" pulumi-lang-java=\"`postPayModuleSwitchObj`\"\u003e`post_pay_module_switch_obj`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`postPayModuleSwitch`\" pulumi-lang-dotnet=\"`PostPayModuleSwitch`\" pulumi-lang-go=\"`postPayModuleSwitch`\" pulumi-lang-python=\"`post_pay_module_switch`\" pulumi-lang-yaml=\"`postPayModuleSwitch`\" pulumi-lang-java=\"`postPayModuleSwitch`\"\u003e`post_pay_module_switch`\u003c/span\u003e has been deprecated from provider version 1.269.0. New field \u003cspan pulumi-lang-nodejs=\"`postPayModuleSwitchObj`\" pulumi-lang-dotnet=\"`PostPayModuleSwitchObj`\" pulumi-lang-go=\"`postPayModuleSwitchObj`\" pulumi-lang-python=\"`post_pay_module_switch_obj`\" pulumi-lang-yaml=\"`postPayModuleSwitchObj`\" pulumi-lang-java=\"`postPayModuleSwitchObj`\"\u003e`post_pay_module_switch_obj`\u003c/span\u003e instead."},"postPayModuleSwitchObj":{"$ref":"#/types/alicloud:threatdetection/InstancePostPayModuleSwitchObj:InstancePostPayModuleSwitchObj","description":"Pay-as-you-go module switch. See \u003cspan pulumi-lang-nodejs=\"`postPayModuleSwitchObj`\" pulumi-lang-dotnet=\"`PostPayModuleSwitchObj`\" pulumi-lang-go=\"`postPayModuleSwitchObj`\" pulumi-lang-python=\"`post_pay_module_switch_obj`\" pulumi-lang-yaml=\"`postPayModuleSwitchObj`\" pulumi-lang-java=\"`postPayModuleSwitchObj`\"\u003e`post_pay_module_switch_obj`\u003c/span\u003e below.\n"},"raspCount":{"type":"string","description":"Number of application protection licenses. Interval type, value interval:[1,100000000].\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal cycle, in months.\n\n\u003e **NOTE:**  When `RenewalStatus` is set to `AutoRenewal`, it must be set.\n"},"renewalPeriodUnit":{"type":"string","description":"Automatic renewal period unit, value:\n- M: month.\n- Y: years.\n\n\u003e **NOTE:**  Must be set when RenewalStatus = AutoRenewal.\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status, value:\n- AutoRenewal: automatic renewal.\n- ManualRenewal: manual renewal.\n\nDefault ManualRenewal.\n"},"sasAntiRansomware":{"type":"string","description":"Anti-ransomware capacity. Unit: GB. Interval type, value interval:[0,9999999999].\n\n\u003e **NOTE:**  The step size is 10, that is, only multiples of 10 can be filled in.\n"},"sasCspm":{"type":"string","description":"Cloud platform configuration check scan times, interval type, value range:[15000,9999999999].\n\n\u003e **NOTE:**  You must have\u003cspan pulumi-lang-nodejs=\" sasCspmSwitch \" pulumi-lang-dotnet=\" SasCspmSwitch \" pulumi-lang-go=\" sasCspmSwitch \" pulumi-lang-python=\" sas_cspm_switch \" pulumi-lang-yaml=\" sasCspmSwitch \" pulumi-lang-java=\" sasCspmSwitch \"\u003e sas_cspm_switch \u003c/span\u003e= 1 to purchase this module. The step size is 55000, that is, only multiples of 55000 can be filled in.\n"},"sasCspmSwitch":{"type":"string","description":"Cloud platform configuration check switch. Value:\n- 0: No.\n- 1: Yes.\n"},"sasSc":{"type":"boolean","description":"Security screen. Value:\n- true: Yes.\n- false: No.\n"},"sasSdk":{"type":"string","description":"Number of malicious file detections. Unit: 10,000 times. Interval type, value interval:[10,9999999999].\n\n\u003e **NOTE:**  This module can only be purchased when\u003cspan pulumi-lang-nodejs=\" sasSdkSwitch \" pulumi-lang-dotnet=\" SasSdkSwitch \" pulumi-lang-go=\" sasSdkSwitch \" pulumi-lang-python=\" sas_sdk_switch \" pulumi-lang-yaml=\" sasSdkSwitch \" pulumi-lang-java=\" sasSdkSwitch \"\u003e sas_sdk_switch \u003c/span\u003e= 1. The step size is 10, that is, only multiples of 10 can be filled in.\n"},"sasSdkSwitch":{"type":"string","description":"Malicious file detection SDK.\n"},"sasSlsStorage":{"type":"string","description":"Log analysis storage capacity. Unit: GB. Interval type, value interval:[0,600000].\n\n\u003e **NOTE:**  The step size is 10, that is, only multiples of 10 can be filled in.\n"},"sasWebguardBoolean":{"type":"string","description":"Web tamper-proof switch. Value:\n- 0: No.\n- 1: Yes.\n"},"sasWebguardOrderNum":{"type":"string","description":"Tamper-proof authorization number. Value:\n- 0: No\n1: Yes.\n"},"status":{"type":"string","description":"The resource attribute field representing the resource status.\n"},"subscriptionType":{"type":"string","description":"The subscription type. Value:\n- Subscription: Prepaid.\n- PayAsYouGo: Post-paid.\n"},"threatAnalysis":{"type":"string","description":"Threat Analysis log storage capacity. Interval type, value interval:[0,9999999999].\n\n\u003e **NOTE:**  This module can only be purchased when Threat_analysis_switch = 1. The step size is 10, that is, only multiples of 10 can be filled in.\n"},"threatAnalysisFlow":{"type":"string","description":"Threat analysis and response log access traffic. After ThreatAnalysisSwitch1 is selected, it must be selected. Interval type, value interval:[0,9999999999].\n\n\u003e **NOTE:**  Step size is 100.\n"},"threatAnalysisSlsStorage":{"type":"string","description":"Threat analysis and response log storage capacity. Interval type, value interval:[0,9999999999].\n\n\u003e **NOTE:**  The step size is 1000, that is, only multiples of 1000 can be filled in.\n"},"threatAnalysisSwitch":{"type":"string","description":"Threat analysis. Value:\n- 0: No.\n- 1: Yes.\n"},"threatAnalysisSwitch1":{"type":"string","description":"Threat analysis and response switch (new), values:\n- 0: No\n- 1: Yes\n"},"vCore":{"type":"string","description":"Number of cores.\n"},"versionCode":{"type":"string","description":"Select the security center version. Value:\n- level7: Antivirus Edition.\n- level3: Premium version.\n- level2: Enterprise Edition.\n- level8: Ultimate.\n- level10: Purchase value-added services only.\n"},"vulCount":{"type":"string","description":"Vulnerability repair times, interval type, value range:[20,100000000].\n\n\u003e **NOTE:**  This module can only be purchased when\u003cspan pulumi-lang-nodejs=\" vulSwitch \" pulumi-lang-dotnet=\" VulSwitch \" pulumi-lang-go=\" vulSwitch \" pulumi-lang-python=\" vul_switch \" pulumi-lang-yaml=\" vulSwitch \" pulumi-lang-java=\" vulSwitch \"\u003e vul_switch \u003c/span\u003e= 1. Only when the\u003cspan pulumi-lang-nodejs=\" versionCode \" pulumi-lang-dotnet=\" VersionCode \" pulumi-lang-go=\" versionCode \" pulumi-lang-python=\" version_code \" pulumi-lang-yaml=\" versionCode \" pulumi-lang-java=\" versionCode \"\u003e version_code \u003c/span\u003evalue is level7 or level10. other versions do not need to be purchased separately.\n"},"vulSwitch":{"type":"string","description":"Vulnerability fix switch. Value:\n- 0: No.\n- 1: Yes.\n\n\u003e **NOTE:**  When the value of\u003cspan pulumi-lang-nodejs=\" versionCode \" pulumi-lang-dotnet=\" VersionCode \" pulumi-lang-go=\" versionCode \" pulumi-lang-python=\" version_code \" pulumi-lang-yaml=\" versionCode \" pulumi-lang-java=\" versionCode \"\u003e version_code \u003c/span\u003eis level7 or level10, the purchase is allowed. Other versions do not need to be purchased separately.\n"}},"required":["createTime","honeypotSwitch","paymentType","postPaidHostAutoBind","postPaidHostAutoBindVersion","postPayModuleSwitchObj","renewPeriod","renewalPeriodUnit","renewalStatus","sasCspmSwitch","sasSdkSwitch","sasWebguardBoolean","status","threatAnalysisSwitch","threatAnalysisSwitch1","vulSwitch"],"inputProperties":{"buyNumber":{"type":"string","description":"Number of servers.\n"},"containerImageScan":{"type":"string","description":"Container Image security scan. Interval type, value interval:[0,200000].\n\n\u003e **NOTE:**  The step size is 20, that is, only multiples of 20 can be filled in.\n","deprecationMessage":"Field 'container_image_scan' has been deprecated from provider version 1.212.0. Container Image security scan. Interval type, value interval:[0,200000].\u003e The step size is 20, that is, only multiples of 20 can be filled in."},"containerImageScanNew":{"type":"string","description":"Container Image security scan. Interval type, value interval:[0,200000].\n\n\u003e **NOTE:**  The step size is 20, that is, only multiples of 20 can be filled in.\n"},"honeypot":{"type":"string","description":"Number of cloud honeypot licenses. Interval type, value interval:[20,500].\n\n\u003e **NOTE:**  This module can only be purchased when\u003cspan pulumi-lang-nodejs=\" honeypotSwitch \" pulumi-lang-dotnet=\" HoneypotSwitch \" pulumi-lang-go=\" honeypotSwitch \" pulumi-lang-python=\" honeypot_switch \" pulumi-lang-yaml=\" honeypotSwitch \" pulumi-lang-java=\" honeypotSwitch \"\u003e honeypot_switch \u003c/span\u003e= 1, starting with 20.\n"},"honeypotSwitch":{"type":"string","description":"Cloud honeypot. Value:\n- 1: Yes.\n- 2: No.\n"},"modifyType":{"type":"string","description":"Change configuration type, value\n- Upgrade: Upgrade.\n- Downgrade: Downgrade.\n"},"paymentType":{"type":"string","description":"The payment type of the resource\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Prepaid cycle. The unit is Monthly, please enter an integer multiple of 12 for annual paid products.\n\n\u003e **NOTE:**  must be set when creating a prepaid instance.\n"},"postPaidFlag":{"type":"integer","description":"Post-paid signage. Value:\n"},"postPaidHostAutoBind":{"type":"integer","description":"Automatic binding switch for new assets in host and container protection. Valid values:\n"},"postPaidHostAutoBindVersion":{"type":"integer","description":"The version that is automatically bound to the host and container protection of a pay-as-you-go instance. Valid values:\n"},"postPayModuleSwitch":{"type":"string","description":"The switch status of the pay-as-you-go module. The value is a JSON string. Valid values:\n- Key:\n- `VUL`: Vulnerability Repair Module.\n- `CSPM`: Cloud Security Posture Management Module.\n- `AGENTLESS`: Agentless Detection Module.\n- `SERVERLESS`: Serverless Security Module.\n- `CTDR`: Threat Analysis and Response Module.\n- `POST_HOST`: Host and Container Security Module.\n- `SDK`: Malicious File Detection SDK Module.\n- `RASP`: Application Protection Module.\n- `CTDR_STORAGE`: Log Management Module.\n- `ANTI_RANSOMWARE`: Anti-Ransomware Management.\n- Value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means off, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means on\n\u003e **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`postPayModuleSwitch`\" pulumi-lang-dotnet=\"`PostPayModuleSwitch`\" pulumi-lang-go=\"`postPayModuleSwitch`\" pulumi-lang-python=\"`post_pay_module_switch`\" pulumi-lang-yaml=\"`postPayModuleSwitch`\" pulumi-lang-java=\"`postPayModuleSwitch`\"\u003e`post_pay_module_switch`\u003c/span\u003e has been deprecated from provider version 1.269.0. New field \u003cspan pulumi-lang-nodejs=\"`postPayModuleSwitchObj`\" pulumi-lang-dotnet=\"`PostPayModuleSwitchObj`\" pulumi-lang-go=\"`postPayModuleSwitchObj`\" pulumi-lang-python=\"`post_pay_module_switch_obj`\" pulumi-lang-yaml=\"`postPayModuleSwitchObj`\" pulumi-lang-java=\"`postPayModuleSwitchObj`\"\u003e`post_pay_module_switch_obj`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`postPayModuleSwitch`\" pulumi-lang-dotnet=\"`PostPayModuleSwitch`\" pulumi-lang-go=\"`postPayModuleSwitch`\" pulumi-lang-python=\"`post_pay_module_switch`\" pulumi-lang-yaml=\"`postPayModuleSwitch`\" pulumi-lang-java=\"`postPayModuleSwitch`\"\u003e`post_pay_module_switch`\u003c/span\u003e has been deprecated from provider version 1.269.0. New field \u003cspan pulumi-lang-nodejs=\"`postPayModuleSwitchObj`\" pulumi-lang-dotnet=\"`PostPayModuleSwitchObj`\" pulumi-lang-go=\"`postPayModuleSwitchObj`\" pulumi-lang-python=\"`post_pay_module_switch_obj`\" pulumi-lang-yaml=\"`postPayModuleSwitchObj`\" pulumi-lang-java=\"`postPayModuleSwitchObj`\"\u003e`post_pay_module_switch_obj`\u003c/span\u003e instead."},"postPayModuleSwitchObj":{"$ref":"#/types/alicloud:threatdetection/InstancePostPayModuleSwitchObj:InstancePostPayModuleSwitchObj","description":"Pay-as-you-go module switch. See \u003cspan pulumi-lang-nodejs=\"`postPayModuleSwitchObj`\" pulumi-lang-dotnet=\"`PostPayModuleSwitchObj`\" pulumi-lang-go=\"`postPayModuleSwitchObj`\" pulumi-lang-python=\"`post_pay_module_switch_obj`\" pulumi-lang-yaml=\"`postPayModuleSwitchObj`\" pulumi-lang-java=\"`postPayModuleSwitchObj`\"\u003e`post_pay_module_switch_obj`\u003c/span\u003e below.\n"},"raspCount":{"type":"string","description":"Number of application protection licenses. Interval type, value interval:[1,100000000].\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal cycle, in months.\n\n\u003e **NOTE:**  When `RenewalStatus` is set to `AutoRenewal`, it must be set.\n"},"renewalPeriodUnit":{"type":"string","description":"Automatic renewal period unit, value:\n- M: month.\n- Y: years.\n\n\u003e **NOTE:**  Must be set when RenewalStatus = AutoRenewal.\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status, value:\n- AutoRenewal: automatic renewal.\n- ManualRenewal: manual renewal.\n\nDefault ManualRenewal.\n"},"sasAntiRansomware":{"type":"string","description":"Anti-ransomware capacity. Unit: GB. Interval type, value interval:[0,9999999999].\n\n\u003e **NOTE:**  The step size is 10, that is, only multiples of 10 can be filled in.\n"},"sasCspm":{"type":"string","description":"Cloud platform configuration check scan times, interval type, value range:[15000,9999999999].\n\n\u003e **NOTE:**  You must have\u003cspan pulumi-lang-nodejs=\" sasCspmSwitch \" pulumi-lang-dotnet=\" SasCspmSwitch \" pulumi-lang-go=\" sasCspmSwitch \" pulumi-lang-python=\" sas_cspm_switch \" pulumi-lang-yaml=\" sasCspmSwitch \" pulumi-lang-java=\" sasCspmSwitch \"\u003e sas_cspm_switch \u003c/span\u003e= 1 to purchase this module. The step size is 55000, that is, only multiples of 55000 can be filled in.\n"},"sasCspmSwitch":{"type":"string","description":"Cloud platform configuration check switch. Value:\n- 0: No.\n- 1: Yes.\n"},"sasSc":{"type":"boolean","description":"Security screen. Value:\n- true: Yes.\n- false: No.\n"},"sasSdk":{"type":"string","description":"Number of malicious file detections. Unit: 10,000 times. Interval type, value interval:[10,9999999999].\n\n\u003e **NOTE:**  This module can only be purchased when\u003cspan pulumi-lang-nodejs=\" sasSdkSwitch \" pulumi-lang-dotnet=\" SasSdkSwitch \" pulumi-lang-go=\" sasSdkSwitch \" pulumi-lang-python=\" sas_sdk_switch \" pulumi-lang-yaml=\" sasSdkSwitch \" pulumi-lang-java=\" sasSdkSwitch \"\u003e sas_sdk_switch \u003c/span\u003e= 1. The step size is 10, that is, only multiples of 10 can be filled in.\n"},"sasSdkSwitch":{"type":"string","description":"Malicious file detection SDK.\n"},"sasSlsStorage":{"type":"string","description":"Log analysis storage capacity. Unit: GB. Interval type, value interval:[0,600000].\n\n\u003e **NOTE:**  The step size is 10, that is, only multiples of 10 can be filled in.\n"},"sasWebguardBoolean":{"type":"string","description":"Web tamper-proof switch. Value:\n- 0: No.\n- 1: Yes.\n"},"sasWebguardOrderNum":{"type":"string","description":"Tamper-proof authorization number. Value:\n- 0: No\n1: Yes.\n"},"subscriptionType":{"type":"string","description":"The subscription type. Value:\n- Subscription: Prepaid.\n- PayAsYouGo: Post-paid.\n"},"threatAnalysis":{"type":"string","description":"Threat Analysis log storage capacity. Interval type, value interval:[0,9999999999].\n\n\u003e **NOTE:**  This module can only be purchased when Threat_analysis_switch = 1. The step size is 10, that is, only multiples of 10 can be filled in.\n"},"threatAnalysisFlow":{"type":"string","description":"Threat analysis and response log access traffic. After ThreatAnalysisSwitch1 is selected, it must be selected. Interval type, value interval:[0,9999999999].\n\n\u003e **NOTE:**  Step size is 100.\n"},"threatAnalysisSlsStorage":{"type":"string","description":"Threat analysis and response log storage capacity. Interval type, value interval:[0,9999999999].\n\n\u003e **NOTE:**  The step size is 1000, that is, only multiples of 1000 can be filled in.\n"},"threatAnalysisSwitch":{"type":"string","description":"Threat analysis. Value:\n- 0: No.\n- 1: Yes.\n"},"threatAnalysisSwitch1":{"type":"string","description":"Threat analysis and response switch (new), values:\n- 0: No\n- 1: Yes\n"},"vCore":{"type":"string","description":"Number of cores.\n"},"versionCode":{"type":"string","description":"Select the security center version. Value:\n- level7: Antivirus Edition.\n- level3: Premium version.\n- level2: Enterprise Edition.\n- level8: Ultimate.\n- level10: Purchase value-added services only.\n"},"vulCount":{"type":"string","description":"Vulnerability repair times, interval type, value range:[20,100000000].\n\n\u003e **NOTE:**  This module can only be purchased when\u003cspan pulumi-lang-nodejs=\" vulSwitch \" pulumi-lang-dotnet=\" VulSwitch \" pulumi-lang-go=\" vulSwitch \" pulumi-lang-python=\" vul_switch \" pulumi-lang-yaml=\" vulSwitch \" pulumi-lang-java=\" vulSwitch \"\u003e vul_switch \u003c/span\u003e= 1. Only when the\u003cspan pulumi-lang-nodejs=\" versionCode \" pulumi-lang-dotnet=\" VersionCode \" pulumi-lang-go=\" versionCode \" pulumi-lang-python=\" version_code \" pulumi-lang-yaml=\" versionCode \" pulumi-lang-java=\" versionCode \"\u003e version_code \u003c/span\u003evalue is level7 or level10. other versions do not need to be purchased separately.\n"},"vulSwitch":{"type":"string","description":"Vulnerability fix switch. Value:\n- 0: No.\n- 1: Yes.\n\n\u003e **NOTE:**  When the value of\u003cspan pulumi-lang-nodejs=\" versionCode \" pulumi-lang-dotnet=\" VersionCode \" pulumi-lang-go=\" versionCode \" pulumi-lang-python=\" version_code \" pulumi-lang-yaml=\" versionCode \" pulumi-lang-java=\" versionCode \"\u003e version_code \u003c/span\u003eis level7 or level10, the purchase is allowed. Other versions do not need to be purchased separately.\n"}},"requiredInputs":["paymentType"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"buyNumber":{"type":"string","description":"Number of servers.\n"},"containerImageScan":{"type":"string","description":"Container Image security scan. Interval type, value interval:[0,200000].\n\n\u003e **NOTE:**  The step size is 20, that is, only multiples of 20 can be filled in.\n","deprecationMessage":"Field 'container_image_scan' has been deprecated from provider version 1.212.0. Container Image security scan. Interval type, value interval:[0,200000].\u003e The step size is 20, that is, only multiples of 20 can be filled in."},"containerImageScanNew":{"type":"string","description":"Container Image security scan. Interval type, value interval:[0,200000].\n\n\u003e **NOTE:**  The step size is 20, that is, only multiples of 20 can be filled in.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"honeypot":{"type":"string","description":"Number of cloud honeypot licenses. Interval type, value interval:[20,500].\n\n\u003e **NOTE:**  This module can only be purchased when\u003cspan pulumi-lang-nodejs=\" honeypotSwitch \" pulumi-lang-dotnet=\" HoneypotSwitch \" pulumi-lang-go=\" honeypotSwitch \" pulumi-lang-python=\" honeypot_switch \" pulumi-lang-yaml=\" honeypotSwitch \" pulumi-lang-java=\" honeypotSwitch \"\u003e honeypot_switch \u003c/span\u003e= 1, starting with 20.\n"},"honeypotSwitch":{"type":"string","description":"Cloud honeypot. Value:\n- 1: Yes.\n- 2: No.\n"},"modifyType":{"type":"string","description":"Change configuration type, value\n- Upgrade: Upgrade.\n- Downgrade: Downgrade.\n"},"paymentType":{"type":"string","description":"The payment type of the resource\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"Prepaid cycle. The unit is Monthly, please enter an integer multiple of 12 for annual paid products.\n\n\u003e **NOTE:**  must be set when creating a prepaid instance.\n"},"postPaidFlag":{"type":"integer","description":"Post-paid signage. Value:\n"},"postPaidHostAutoBind":{"type":"integer","description":"Automatic binding switch for new assets in host and container protection. Valid values:\n"},"postPaidHostAutoBindVersion":{"type":"integer","description":"The version that is automatically bound to the host and container protection of a pay-as-you-go instance. Valid values:\n"},"postPayModuleSwitch":{"type":"string","description":"The switch status of the pay-as-you-go module. The value is a JSON string. Valid values:\n- Key:\n- `VUL`: Vulnerability Repair Module.\n- `CSPM`: Cloud Security Posture Management Module.\n- `AGENTLESS`: Agentless Detection Module.\n- `SERVERLESS`: Serverless Security Module.\n- `CTDR`: Threat Analysis and Response Module.\n- `POST_HOST`: Host and Container Security Module.\n- `SDK`: Malicious File Detection SDK Module.\n- `RASP`: Application Protection Module.\n- `CTDR_STORAGE`: Log Management Module.\n- `ANTI_RANSOMWARE`: Anti-Ransomware Management.\n- Value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means off, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means on\n\u003e **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`postPayModuleSwitch`\" pulumi-lang-dotnet=\"`PostPayModuleSwitch`\" pulumi-lang-go=\"`postPayModuleSwitch`\" pulumi-lang-python=\"`post_pay_module_switch`\" pulumi-lang-yaml=\"`postPayModuleSwitch`\" pulumi-lang-java=\"`postPayModuleSwitch`\"\u003e`post_pay_module_switch`\u003c/span\u003e has been deprecated from provider version 1.269.0. New field \u003cspan pulumi-lang-nodejs=\"`postPayModuleSwitchObj`\" pulumi-lang-dotnet=\"`PostPayModuleSwitchObj`\" pulumi-lang-go=\"`postPayModuleSwitchObj`\" pulumi-lang-python=\"`post_pay_module_switch_obj`\" pulumi-lang-yaml=\"`postPayModuleSwitchObj`\" pulumi-lang-java=\"`postPayModuleSwitchObj`\"\u003e`post_pay_module_switch_obj`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`postPayModuleSwitch`\" pulumi-lang-dotnet=\"`PostPayModuleSwitch`\" pulumi-lang-go=\"`postPayModuleSwitch`\" pulumi-lang-python=\"`post_pay_module_switch`\" pulumi-lang-yaml=\"`postPayModuleSwitch`\" pulumi-lang-java=\"`postPayModuleSwitch`\"\u003e`post_pay_module_switch`\u003c/span\u003e has been deprecated from provider version 1.269.0. New field \u003cspan pulumi-lang-nodejs=\"`postPayModuleSwitchObj`\" pulumi-lang-dotnet=\"`PostPayModuleSwitchObj`\" pulumi-lang-go=\"`postPayModuleSwitchObj`\" pulumi-lang-python=\"`post_pay_module_switch_obj`\" pulumi-lang-yaml=\"`postPayModuleSwitchObj`\" pulumi-lang-java=\"`postPayModuleSwitchObj`\"\u003e`post_pay_module_switch_obj`\u003c/span\u003e instead."},"postPayModuleSwitchObj":{"$ref":"#/types/alicloud:threatdetection/InstancePostPayModuleSwitchObj:InstancePostPayModuleSwitchObj","description":"Pay-as-you-go module switch. See \u003cspan pulumi-lang-nodejs=\"`postPayModuleSwitchObj`\" pulumi-lang-dotnet=\"`PostPayModuleSwitchObj`\" pulumi-lang-go=\"`postPayModuleSwitchObj`\" pulumi-lang-python=\"`post_pay_module_switch_obj`\" pulumi-lang-yaml=\"`postPayModuleSwitchObj`\" pulumi-lang-java=\"`postPayModuleSwitchObj`\"\u003e`post_pay_module_switch_obj`\u003c/span\u003e below.\n"},"raspCount":{"type":"string","description":"Number of application protection licenses. Interval type, value interval:[1,100000000].\n"},"renewPeriod":{"type":"integer","description":"Automatic renewal cycle, in months.\n\n\u003e **NOTE:**  When `RenewalStatus` is set to `AutoRenewal`, it must be set.\n"},"renewalPeriodUnit":{"type":"string","description":"Automatic renewal period unit, value:\n- M: month.\n- Y: years.\n\n\u003e **NOTE:**  Must be set when RenewalStatus = AutoRenewal.\n"},"renewalStatus":{"type":"string","description":"Automatic renewal status, value:\n- AutoRenewal: automatic renewal.\n- ManualRenewal: manual renewal.\n\nDefault ManualRenewal.\n"},"sasAntiRansomware":{"type":"string","description":"Anti-ransomware capacity. Unit: GB. Interval type, value interval:[0,9999999999].\n\n\u003e **NOTE:**  The step size is 10, that is, only multiples of 10 can be filled in.\n"},"sasCspm":{"type":"string","description":"Cloud platform configuration check scan times, interval type, value range:[15000,9999999999].\n\n\u003e **NOTE:**  You must have\u003cspan pulumi-lang-nodejs=\" sasCspmSwitch \" pulumi-lang-dotnet=\" SasCspmSwitch \" pulumi-lang-go=\" sasCspmSwitch \" pulumi-lang-python=\" sas_cspm_switch \" pulumi-lang-yaml=\" sasCspmSwitch \" pulumi-lang-java=\" sasCspmSwitch \"\u003e sas_cspm_switch \u003c/span\u003e= 1 to purchase this module. The step size is 55000, that is, only multiples of 55000 can be filled in.\n"},"sasCspmSwitch":{"type":"string","description":"Cloud platform configuration check switch. Value:\n- 0: No.\n- 1: Yes.\n"},"sasSc":{"type":"boolean","description":"Security screen. Value:\n- true: Yes.\n- false: No.\n"},"sasSdk":{"type":"string","description":"Number of malicious file detections. Unit: 10,000 times. Interval type, value interval:[10,9999999999].\n\n\u003e **NOTE:**  This module can only be purchased when\u003cspan pulumi-lang-nodejs=\" sasSdkSwitch \" pulumi-lang-dotnet=\" SasSdkSwitch \" pulumi-lang-go=\" sasSdkSwitch \" pulumi-lang-python=\" sas_sdk_switch \" pulumi-lang-yaml=\" sasSdkSwitch \" pulumi-lang-java=\" sasSdkSwitch \"\u003e sas_sdk_switch \u003c/span\u003e= 1. The step size is 10, that is, only multiples of 10 can be filled in.\n"},"sasSdkSwitch":{"type":"string","description":"Malicious file detection SDK.\n"},"sasSlsStorage":{"type":"string","description":"Log analysis storage capacity. Unit: GB. Interval type, value interval:[0,600000].\n\n\u003e **NOTE:**  The step size is 10, that is, only multiples of 10 can be filled in.\n"},"sasWebguardBoolean":{"type":"string","description":"Web tamper-proof switch. Value:\n- 0: No.\n- 1: Yes.\n"},"sasWebguardOrderNum":{"type":"string","description":"Tamper-proof authorization number. Value:\n- 0: No\n1: Yes.\n"},"status":{"type":"string","description":"The resource attribute field representing the resource status.\n"},"subscriptionType":{"type":"string","description":"The subscription type. Value:\n- Subscription: Prepaid.\n- PayAsYouGo: Post-paid.\n"},"threatAnalysis":{"type":"string","description":"Threat Analysis log storage capacity. Interval type, value interval:[0,9999999999].\n\n\u003e **NOTE:**  This module can only be purchased when Threat_analysis_switch = 1. The step size is 10, that is, only multiples of 10 can be filled in.\n"},"threatAnalysisFlow":{"type":"string","description":"Threat analysis and response log access traffic. After ThreatAnalysisSwitch1 is selected, it must be selected. Interval type, value interval:[0,9999999999].\n\n\u003e **NOTE:**  Step size is 100.\n"},"threatAnalysisSlsStorage":{"type":"string","description":"Threat analysis and response log storage capacity. Interval type, value interval:[0,9999999999].\n\n\u003e **NOTE:**  The step size is 1000, that is, only multiples of 1000 can be filled in.\n"},"threatAnalysisSwitch":{"type":"string","description":"Threat analysis. Value:\n- 0: No.\n- 1: Yes.\n"},"threatAnalysisSwitch1":{"type":"string","description":"Threat analysis and response switch (new), values:\n- 0: No\n- 1: Yes\n"},"vCore":{"type":"string","description":"Number of cores.\n"},"versionCode":{"type":"string","description":"Select the security center version. Value:\n- level7: Antivirus Edition.\n- level3: Premium version.\n- level2: Enterprise Edition.\n- level8: Ultimate.\n- level10: Purchase value-added services only.\n"},"vulCount":{"type":"string","description":"Vulnerability repair times, interval type, value range:[20,100000000].\n\n\u003e **NOTE:**  This module can only be purchased when\u003cspan pulumi-lang-nodejs=\" vulSwitch \" pulumi-lang-dotnet=\" VulSwitch \" pulumi-lang-go=\" vulSwitch \" pulumi-lang-python=\" vul_switch \" pulumi-lang-yaml=\" vulSwitch \" pulumi-lang-java=\" vulSwitch \"\u003e vul_switch \u003c/span\u003e= 1. Only when the\u003cspan pulumi-lang-nodejs=\" versionCode \" pulumi-lang-dotnet=\" VersionCode \" pulumi-lang-go=\" versionCode \" pulumi-lang-python=\" version_code \" pulumi-lang-yaml=\" versionCode \" pulumi-lang-java=\" versionCode \"\u003e version_code \u003c/span\u003evalue is level7 or level10. other versions do not need to be purchased separately.\n"},"vulSwitch":{"type":"string","description":"Vulnerability fix switch. Value:\n- 0: No.\n- 1: Yes.\n\n\u003e **NOTE:**  When the value of\u003cspan pulumi-lang-nodejs=\" versionCode \" pulumi-lang-dotnet=\" VersionCode \" pulumi-lang-go=\" versionCode \" pulumi-lang-python=\" version_code \" pulumi-lang-yaml=\" versionCode \" pulumi-lang-java=\" versionCode \"\u003e version_code \u003c/span\u003eis level7 or level10, the purchase is allowed. Other versions do not need to be purchased separately.\n"}},"type":"object"}},"alicloud:threatdetection/logMeta:LogMeta":{"description":"Provides a Threat Detection Log Meta resource.\n\nLog analysis shipping status.\n\nFor information about Threat Detection Log Meta and how to use it, see [What is Log Meta](https://next.api.alibabacloud.com/document/Sas/2018-12-03/ModifyLogMetaStatus).\n\n\u003e **NOTE:** Available since v1.245.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.threatdetection.LogMeta(\"default\", {\n    status: \"disabled\",\n    logMetaName: \"aegis-log-client\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.threatdetection.LogMeta(\"default\",\n    status=\"disabled\",\n    log_meta_name=\"aegis-log-client\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ThreatDetection.LogMeta(\"default\", new()\n    {\n        Status = \"disabled\",\n        LogMetaName = \"aegis-log-client\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := threatdetection.NewLogMeta(ctx, \"default\", \u0026threatdetection.LogMetaArgs{\n\t\t\tStatus:      pulumi.String(\"disabled\"),\n\t\t\tLogMetaName: pulumi.String(\"aegis-log-client\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.LogMeta;\nimport com.pulumi.alicloud.threatdetection.LogMetaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new LogMeta(\"default\", LogMetaArgs.builder()\n            .status(\"disabled\")\n            .logMetaName(\"aegis-log-client\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:threatdetection:LogMeta\n    properties:\n      status: disabled\n      logMetaName: aegis-log-client\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.threatdetection.LogMeta`\" pulumi-lang-dotnet=\"`alicloud.threatdetection.LogMeta`\" pulumi-lang-go=\"`threatdetection.LogMeta`\" pulumi-lang-python=\"`threatdetection.LogMeta`\" pulumi-lang-yaml=\"`alicloud.threatdetection.LogMeta`\" pulumi-lang-java=\"`alicloud.threatdetection.LogMeta`\"\u003e`alicloud.threatdetection.LogMeta`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.threatdetection.LogMeta`\" pulumi-lang-dotnet=\"`alicloud.threatdetection.LogMeta`\" pulumi-lang-go=\"`threatdetection.LogMeta`\" pulumi-lang-python=\"`threatdetection.LogMeta`\" pulumi-lang-yaml=\"`alicloud.threatdetection.LogMeta`\" pulumi-lang-java=\"`alicloud.threatdetection.LogMeta`\"\u003e`alicloud.threatdetection.LogMeta`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Log Meta can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:threatdetection/logMeta:LogMeta example \u003cid\u003e\n```\n\n","properties":{"logMetaName":{"type":"string","description":"The name of the exclusive Logstore where logs are stored. Value:\n- aegis-log-client: client event log\n- aegis-log-crack: Brute Force log\n- aegis-log-dns-query:DNS request log\n- aegis-log-login: login log\n- aegis-log-network: network connection log\n- aegis-log-process: process startup log\n- aegis-snapshot-host: account snapshot log\n- aegis-snapshot-port: port snapshot log\n- aegis-snapshot-process: process snapshot log\n- local-dns: local DNS log\n- sas-log-dns:DNS resolution log\n- sas-log-http:WEB access log\n- sas-log-session: Web session log\n- sas-security-log: alarm log\n- sas-vul-log: Vulnerability log\n- sas-cspm-log: Cloud platform configuration check log\n- sas-hc-log: baseline log\n- sas-rasp-log: Application Protection Log\n- sas-filedetect-log: file detection log\n- sas-net-block: Network Defense Log\n"},"status":{"type":"string","description":"The status of the resource\n"}},"required":["logMetaName","status"],"inputProperties":{"logMetaName":{"type":"string","description":"The name of the exclusive Logstore where logs are stored. Value:\n- aegis-log-client: client event log\n- aegis-log-crack: Brute Force log\n- aegis-log-dns-query:DNS request log\n- aegis-log-login: login log\n- aegis-log-network: network connection log\n- aegis-log-process: process startup log\n- aegis-snapshot-host: account snapshot log\n- aegis-snapshot-port: port snapshot log\n- aegis-snapshot-process: process snapshot log\n- local-dns: local DNS log\n- sas-log-dns:DNS resolution log\n- sas-log-http:WEB access log\n- sas-log-session: Web session log\n- sas-security-log: alarm log\n- sas-vul-log: Vulnerability log\n- sas-cspm-log: Cloud platform configuration check log\n- sas-hc-log: baseline log\n- sas-rasp-log: Application Protection Log\n- sas-filedetect-log: file detection log\n- sas-net-block: Network Defense Log\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"}},"requiredInputs":["logMetaName","status"],"stateInputs":{"description":"Input properties used for looking up and filtering LogMeta resources.\n","properties":{"logMetaName":{"type":"string","description":"The name of the exclusive Logstore where logs are stored. Value:\n- aegis-log-client: client event log\n- aegis-log-crack: Brute Force log\n- aegis-log-dns-query:DNS request log\n- aegis-log-login: login log\n- aegis-log-network: network connection log\n- aegis-log-process: process startup log\n- aegis-snapshot-host: account snapshot log\n- aegis-snapshot-port: port snapshot log\n- aegis-snapshot-process: process snapshot log\n- local-dns: local DNS log\n- sas-log-dns:DNS resolution log\n- sas-log-http:WEB access log\n- sas-log-session: Web session log\n- sas-security-log: alarm log\n- sas-vul-log: Vulnerability log\n- sas-cspm-log: Cloud platform configuration check log\n- sas-hc-log: baseline log\n- sas-rasp-log: Application Protection Log\n- sas-filedetect-log: file detection log\n- sas-net-block: Network Defense Log\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object"}},"alicloud:threatdetection/maliciousFileWhitelistConfig:MaliciousFileWhitelistConfig":{"description":"Provides a Threat Detection Malicious File Whitelist Config resource. malicious file add whitelist config.\n\nFor information about Threat Detection Malicious File Whitelist Config and how to use it, see [What is Malicious File Whitelist Config](https://www.alibabacloud.com/help/zh/security-center/developer-reference/api-sas-2018-12-03-createmaliciousfilewhitelistconfig/).\n\n\u003e **NOTE:** Available since v1.214.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.threatdetection.MaliciousFileWhitelistConfig(\"default\", {\n    operator: \"strEquals\",\n    field: \"fileMd6\",\n    targetValue: \"123\",\n    targetType: \"SELECTION_KEY\",\n    eventName: \"123\",\n    source: \"agentless\",\n    fieldValue: \"sadfas\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.threatdetection.MaliciousFileWhitelistConfig(\"default\",\n    operator=\"strEquals\",\n    field=\"fileMd6\",\n    target_value=\"123\",\n    target_type=\"SELECTION_KEY\",\n    event_name=\"123\",\n    source=\"agentless\",\n    field_value=\"sadfas\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ThreatDetection.MaliciousFileWhitelistConfig(\"default\", new()\n    {\n        Operator = \"strEquals\",\n        Field = \"fileMd6\",\n        TargetValue = \"123\",\n        TargetType = \"SELECTION_KEY\",\n        EventName = \"123\",\n        Source = \"agentless\",\n        FieldValue = \"sadfas\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := threatdetection.NewMaliciousFileWhitelistConfig(ctx, \"default\", \u0026threatdetection.MaliciousFileWhitelistConfigArgs{\n\t\t\tOperator:    pulumi.String(\"strEquals\"),\n\t\t\tField:       pulumi.String(\"fileMd6\"),\n\t\t\tTargetValue: pulumi.String(\"123\"),\n\t\t\tTargetType:  pulumi.String(\"SELECTION_KEY\"),\n\t\t\tEventName:   pulumi.String(\"123\"),\n\t\t\tSource:      pulumi.String(\"agentless\"),\n\t\t\tFieldValue:  pulumi.String(\"sadfas\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.MaliciousFileWhitelistConfig;\nimport com.pulumi.alicloud.threatdetection.MaliciousFileWhitelistConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new MaliciousFileWhitelistConfig(\"default\", MaliciousFileWhitelistConfigArgs.builder()\n            .operator(\"strEquals\")\n            .field(\"fileMd6\")\n            .targetValue(\"123\")\n            .targetType(\"SELECTION_KEY\")\n            .eventName(\"123\")\n            .source(\"agentless\")\n            .fieldValue(\"sadfas\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:threatdetection:MaliciousFileWhitelistConfig\n    properties:\n      operator: strEquals\n      field: fileMd6\n      targetValue: '123'\n      targetType: SELECTION_KEY\n      eventName: '123'\n      source: agentless\n      fieldValue: sadfas\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Malicious File Whitelist Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:threatdetection/maliciousFileWhitelistConfig:MaliciousFileWhitelistConfig example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"eventName":{"type":"string","description":"The name of the security alert associated with the representative rule.\n"},"field":{"type":"string","description":"Represents the alarm associated with the resource and the white field.\n"},"fieldValue":{"type":"string","description":"Represents the whiteout target value in effect for the resource.\n"},"operator":{"type":"string","description":"The decision operator in effect on behalf of the resource.\n"},"source":{"type":"string","description":"Business Source:\n- agentless: agentless detection.\n"},"targetType":{"type":"string","description":"The type of target in effect on behalf of the resource.\n"},"targetValue":{"type":"string","description":"Represents the specific value of the target type in effect for the resource.\n"}},"required":["createTime"],"inputProperties":{"eventName":{"type":"string","description":"The name of the security alert associated with the representative rule.\n"},"field":{"type":"string","description":"Represents the alarm associated with the resource and the white field.\n"},"fieldValue":{"type":"string","description":"Represents the whiteout target value in effect for the resource.\n"},"operator":{"type":"string","description":"The decision operator in effect on behalf of the resource.\n"},"source":{"type":"string","description":"Business Source:\n- agentless: agentless detection.\n","willReplaceOnChanges":true},"targetType":{"type":"string","description":"The type of target in effect on behalf of the resource.\n"},"targetValue":{"type":"string","description":"Represents the specific value of the target type in effect for the resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering MaliciousFileWhitelistConfig resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"eventName":{"type":"string","description":"The name of the security alert associated with the representative rule.\n"},"field":{"type":"string","description":"Represents the alarm associated with the resource and the white field.\n"},"fieldValue":{"type":"string","description":"Represents the whiteout target value in effect for the resource.\n"},"operator":{"type":"string","description":"The decision operator in effect on behalf of the resource.\n"},"source":{"type":"string","description":"Business Source:\n- agentless: agentless detection.\n","willReplaceOnChanges":true},"targetType":{"type":"string","description":"The type of target in effect on behalf of the resource.\n"},"targetValue":{"type":"string","description":"Represents the specific value of the target type in effect for the resource.\n"}},"type":"object"}},"alicloud:threatdetection/ossScanConfig:OssScanConfig":{"description":"Provides a Threat Detection Oss Scan Config resource.\n\nOss detection configuration.\n\nFor information about Threat Detection Oss Scan Config and how to use it, see [What is Oss Scan Config](https://www.alibabacloud.com/help/zh/security-center/developer-reference/api-sas-2018-12-03-createossscanconfig/).\n\n\u003e **NOTE:** Available since v1.214.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst bucketRandom = _default.result;\nconst default8j4t1R = new alicloud.oss.Bucket(\"default8j4t1R\", {\n    bucket: `${name}-1-${bucketRandom}`,\n    storageClass: \"Standard\",\n});\nconst default9HMqfT = new alicloud.oss.Bucket(\"default9HMqfT\", {\n    bucket: `${name}-2-${bucketRandom}`,\n    storageClass: \"Standard\",\n});\nconst defaultxBXqFQ = new alicloud.oss.Bucket(\"defaultxBXqFQ\", {\n    bucket: `${name}-3-${bucketRandom}`,\n    storageClass: \"Standard\",\n});\nconst defaulthZvCmR = new alicloud.oss.Bucket(\"defaulthZvCmR\", {\n    bucket: `${name}-4-${bucketRandom}`,\n    storageClass: \"Standard\",\n});\nconst defaultOssScanConfig = new alicloud.threatdetection.OssScanConfig(\"default\", {\n    keySuffixLists: [\n        \".jsp\",\n        \".php\",\n        \".k\",\n    ],\n    scanDayLists: [\n        2,\n        5,\n        4,\n        3,\n    ],\n    ossScanConfigName: name,\n    endTime: \"00:00:02\",\n    startTime: \"00:00:01\",\n    enable: 1,\n    allKeyPrefix: false,\n    bucketNameLists: [\n        default8j4t1R.bucket,\n        default9HMqfT.bucket,\n        defaultxBXqFQ.bucket,\n    ],\n    keyPrefixLists: [\n        \"/root\",\n        \"/usr\",\n        \"/123\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nbucket_random = default[\"result\"]\ndefault8j4t1_r = alicloud.oss.Bucket(\"default8j4t1R\",\n    bucket=f\"{name}-1-{bucket_random}\",\n    storage_class=\"Standard\")\ndefault9_h_mqf_t = alicloud.oss.Bucket(\"default9HMqfT\",\n    bucket=f\"{name}-2-{bucket_random}\",\n    storage_class=\"Standard\")\ndefaultx_b_xq_fq = alicloud.oss.Bucket(\"defaultxBXqFQ\",\n    bucket=f\"{name}-3-{bucket_random}\",\n    storage_class=\"Standard\")\ndefaulth_zv_cm_r = alicloud.oss.Bucket(\"defaulthZvCmR\",\n    bucket=f\"{name}-4-{bucket_random}\",\n    storage_class=\"Standard\")\ndefault_oss_scan_config = alicloud.threatdetection.OssScanConfig(\"default\",\n    key_suffix_lists=[\n        \".jsp\",\n        \".php\",\n        \".k\",\n    ],\n    scan_day_lists=[\n        2,\n        5,\n        4,\n        3,\n    ],\n    oss_scan_config_name=name,\n    end_time=\"00:00:02\",\n    start_time=\"00:00:01\",\n    enable=1,\n    all_key_prefix=False,\n    bucket_name_lists=[\n        default8j4t1_r.bucket,\n        default9_h_mqf_t.bucket,\n        defaultx_b_xq_fq.bucket,\n    ],\n    key_prefix_lists=[\n        \"/root\",\n        \"/usr\",\n        \"/123\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var bucketRandom = @default.Result;\n\n    var default8j4t1R = new AliCloud.Oss.Bucket(\"default8j4t1R\", new()\n    {\n        BucketName = $\"{name}-1-{bucketRandom}\",\n        StorageClass = \"Standard\",\n    });\n\n    var default9HMqfT = new AliCloud.Oss.Bucket(\"default9HMqfT\", new()\n    {\n        BucketName = $\"{name}-2-{bucketRandom}\",\n        StorageClass = \"Standard\",\n    });\n\n    var defaultxBXqFQ = new AliCloud.Oss.Bucket(\"defaultxBXqFQ\", new()\n    {\n        BucketName = $\"{name}-3-{bucketRandom}\",\n        StorageClass = \"Standard\",\n    });\n\n    var defaulthZvCmR = new AliCloud.Oss.Bucket(\"defaulthZvCmR\", new()\n    {\n        BucketName = $\"{name}-4-{bucketRandom}\",\n        StorageClass = \"Standard\",\n    });\n\n    var defaultOssScanConfig = new AliCloud.ThreatDetection.OssScanConfig(\"default\", new()\n    {\n        KeySuffixLists = new[]\n        {\n            \".jsp\",\n            \".php\",\n            \".k\",\n        },\n        ScanDayLists = new[]\n        {\n            2,\n            5,\n            4,\n            3,\n        },\n        OssScanConfigName = name,\n        EndTime = \"00:00:02\",\n        StartTime = \"00:00:01\",\n        Enable = 1,\n        AllKeyPrefix = false,\n        BucketNameLists = new[]\n        {\n            default8j4t1R.BucketName,\n            default9HMqfT.BucketName,\n            defaultxBXqFQ.BucketName,\n        },\n        KeyPrefixLists = new[]\n        {\n            \"/root\",\n            \"/usr\",\n            \"/123\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucketRandom := _default.Result\n\t\tdefault8j4t1R, err := oss.NewBucket(ctx, \"default8j4t1R\", \u0026oss.BucketArgs{\n\t\t\tBucket:       pulumi.Sprintf(\"%v-1-%v\", name, bucketRandom),\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault9HMqfT, err := oss.NewBucket(ctx, \"default9HMqfT\", \u0026oss.BucketArgs{\n\t\t\tBucket:       pulumi.Sprintf(\"%v-2-%v\", name, bucketRandom),\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultxBXqFQ, err := oss.NewBucket(ctx, \"defaultxBXqFQ\", \u0026oss.BucketArgs{\n\t\t\tBucket:       pulumi.Sprintf(\"%v-3-%v\", name, bucketRandom),\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = oss.NewBucket(ctx, \"defaulthZvCmR\", \u0026oss.BucketArgs{\n\t\t\tBucket:       pulumi.Sprintf(\"%v-4-%v\", name, bucketRandom),\n\t\t\tStorageClass: pulumi.String(\"Standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = threatdetection.NewOssScanConfig(ctx, \"default\", \u0026threatdetection.OssScanConfigArgs{\n\t\t\tKeySuffixLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\".jsp\"),\n\t\t\t\tpulumi.String(\".php\"),\n\t\t\t\tpulumi.String(\".k\"),\n\t\t\t},\n\t\t\tScanDayLists: pulumi.IntArray{\n\t\t\t\tpulumi.Int(2),\n\t\t\t\tpulumi.Int(5),\n\t\t\t\tpulumi.Int(4),\n\t\t\t\tpulumi.Int(3),\n\t\t\t},\n\t\t\tOssScanConfigName: pulumi.String(name),\n\t\t\tEndTime:           pulumi.String(\"00:00:02\"),\n\t\t\tStartTime:         pulumi.String(\"00:00:01\"),\n\t\t\tEnable:            pulumi.Int(1),\n\t\t\tAllKeyPrefix:      pulumi.Bool(false),\n\t\t\tBucketNameLists: pulumi.StringArray{\n\t\t\t\tdefault8j4t1R.Bucket,\n\t\t\t\tdefault9HMqfT.Bucket,\n\t\t\t\tdefaultxBXqFQ.Bucket,\n\t\t\t},\n\t\t\tKeyPrefixLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"/root\"),\n\t\t\t\tpulumi.String(\"/usr\"),\n\t\t\t\tpulumi.String(\"/123\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.threatdetection.OssScanConfig;\nimport com.pulumi.alicloud.threatdetection.OssScanConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var bucketRandom = default_.result();\n\n        var default8j4t1R = new Bucket(\"default8j4t1R\", BucketArgs.builder()\n            .bucket(String.format(\"%s-1-%s\", name,bucketRandom))\n            .storageClass(\"Standard\")\n            .build());\n\n        var default9HMqfT = new Bucket(\"default9HMqfT\", BucketArgs.builder()\n            .bucket(String.format(\"%s-2-%s\", name,bucketRandom))\n            .storageClass(\"Standard\")\n            .build());\n\n        var defaultxBXqFQ = new Bucket(\"defaultxBXqFQ\", BucketArgs.builder()\n            .bucket(String.format(\"%s-3-%s\", name,bucketRandom))\n            .storageClass(\"Standard\")\n            .build());\n\n        var defaulthZvCmR = new Bucket(\"defaulthZvCmR\", BucketArgs.builder()\n            .bucket(String.format(\"%s-4-%s\", name,bucketRandom))\n            .storageClass(\"Standard\")\n            .build());\n\n        var defaultOssScanConfig = new OssScanConfig(\"defaultOssScanConfig\", OssScanConfigArgs.builder()\n            .keySuffixLists(            \n                \".jsp\",\n                \".php\",\n                \".k\")\n            .scanDayLists(            \n                2,\n                5,\n                4,\n                3)\n            .ossScanConfigName(name)\n            .endTime(\"00:00:02\")\n            .startTime(\"00:00:01\")\n            .enable(1)\n            .allKeyPrefix(false)\n            .bucketNameLists(            \n                default8j4t1R.bucket(),\n                default9HMqfT.bucket(),\n                defaultxBXqFQ.bucket())\n            .keyPrefixLists(            \n                \"/root\",\n                \"/usr\",\n                \"/123\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  default8j4t1R:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: ${name}-1-${bucketRandom}\n      storageClass: Standard\n  default9HMqfT:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: ${name}-2-${bucketRandom}\n      storageClass: Standard\n  defaultxBXqFQ:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: ${name}-3-${bucketRandom}\n      storageClass: Standard\n  defaulthZvCmR:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: ${name}-4-${bucketRandom}\n      storageClass: Standard\n  defaultOssScanConfig:\n    type: alicloud:threatdetection:OssScanConfig\n    name: default\n    properties:\n      keySuffixLists:\n        - .jsp\n        - .php\n        - .k\n      scanDayLists:\n        - '2'\n        - '5'\n        - '4'\n        - '3'\n      ossScanConfigName: ${name}\n      endTime: 00:00:02\n      startTime: 00:00:01\n      enable: '1'\n      allKeyPrefix: 'false'\n      bucketNameLists:\n        - ${default8j4t1R.bucket}\n        - ${default9HMqfT.bucket}\n        - ${defaultxBXqFQ.bucket}\n      keyPrefixLists:\n        - /root\n        - /usr\n        - /123\nvariables:\n  bucketRandom: ${default.result}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Oss Scan Config can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:threatdetection/ossScanConfig:OssScanConfig example \u003cid\u003e\n```\n\n","properties":{"allKeyPrefix":{"type":"boolean","description":"Specifies whether to match the prefixes of all objects.\n"},"bucketNameLists":{"type":"array","items":{"type":"string"},"description":"The names of the buckets.\n"},"decompressMaxFileCount":{"type":"integer","description":"The maximum number of objects that can be extracted during decompression. Valid values: 1 to 1000. If the maximum number of objects that can be extracted is reached, the decompression operation immediately ends and the detection of extracted objects is not affected.\n"},"decompressMaxLayer":{"type":"integer","description":"The maximum number of decompression levels when multi-level packages are decompressed. Valid values: 1 to 5. If the maximum number of decompression levels is reached, the decompression operation immediately ends and the detection of extracted objects is not affected.\n"},"decryptionLists":{"type":"array","items":{"type":"string"},"description":"The decryption methods.\n"},"enable":{"type":"integer","description":"Indicates whether the check policy is enabled. Valid values:\n"},"endTime":{"type":"string","description":"The end time of the check. The time is in the HH:mm:ss format.\n"},"keyPrefixLists":{"type":"array","items":{"type":"string"},"description":"The prefixes of the objects.\n"},"keySuffixLists":{"type":"array","items":{"type":"string"},"description":"The suffixes of the objects that are checked.\n"},"lastModifiedStartTime":{"type":"integer","description":"The timestamp when the object was last modified. The time must be later than the timestamp that you specify. Unit: milliseconds.\n"},"ossScanConfigName":{"type":"string","description":"The policy name.\n"},"scanDayLists":{"type":"array","items":{"type":"integer"},"description":"The days when the check is performed. The value indicates the days of the week.\n"},"startTime":{"type":"string","description":"The start time of the check. The time is in the HH:mm:ss format.\n"}},"required":["allKeyPrefix","bucketNameLists","enable","endTime","keySuffixLists","scanDayLists","startTime"],"inputProperties":{"allKeyPrefix":{"type":"boolean","description":"Specifies whether to match the prefixes of all objects.\n"},"bucketNameLists":{"type":"array","items":{"type":"string"},"description":"The names of the buckets.\n"},"decompressMaxFileCount":{"type":"integer","description":"The maximum number of objects that can be extracted during decompression. Valid values: 1 to 1000. If the maximum number of objects that can be extracted is reached, the decompression operation immediately ends and the detection of extracted objects is not affected.\n"},"decompressMaxLayer":{"type":"integer","description":"The maximum number of decompression levels when multi-level packages are decompressed. Valid values: 1 to 5. If the maximum number of decompression levels is reached, the decompression operation immediately ends and the detection of extracted objects is not affected.\n"},"decryptionLists":{"type":"array","items":{"type":"string"},"description":"The decryption methods.\n"},"enable":{"type":"integer","description":"Indicates whether the check policy is enabled. Valid values:\n"},"endTime":{"type":"string","description":"The end time of the check. The time is in the HH:mm:ss format.\n"},"keyPrefixLists":{"type":"array","items":{"type":"string"},"description":"The prefixes of the objects.\n"},"keySuffixLists":{"type":"array","items":{"type":"string"},"description":"The suffixes of the objects that are checked.\n"},"lastModifiedStartTime":{"type":"integer","description":"The timestamp when the object was last modified. The time must be later than the timestamp that you specify. Unit: milliseconds.\n"},"ossScanConfigName":{"type":"string","description":"The policy name.\n"},"scanDayLists":{"type":"array","items":{"type":"integer"},"description":"The days when the check is performed. The value indicates the days of the week.\n"},"startTime":{"type":"string","description":"The start time of the check. The time is in the HH:mm:ss format.\n"}},"requiredInputs":["bucketNameLists","enable","endTime","keySuffixLists","scanDayLists","startTime"],"stateInputs":{"description":"Input properties used for looking up and filtering OssScanConfig resources.\n","properties":{"allKeyPrefix":{"type":"boolean","description":"Specifies whether to match the prefixes of all objects.\n"},"bucketNameLists":{"type":"array","items":{"type":"string"},"description":"The names of the buckets.\n"},"decompressMaxFileCount":{"type":"integer","description":"The maximum number of objects that can be extracted during decompression. Valid values: 1 to 1000. If the maximum number of objects that can be extracted is reached, the decompression operation immediately ends and the detection of extracted objects is not affected.\n"},"decompressMaxLayer":{"type":"integer","description":"The maximum number of decompression levels when multi-level packages are decompressed. Valid values: 1 to 5. If the maximum number of decompression levels is reached, the decompression operation immediately ends and the detection of extracted objects is not affected.\n"},"decryptionLists":{"type":"array","items":{"type":"string"},"description":"The decryption methods.\n"},"enable":{"type":"integer","description":"Indicates whether the check policy is enabled. Valid values:\n"},"endTime":{"type":"string","description":"The end time of the check. The time is in the HH:mm:ss format.\n"},"keyPrefixLists":{"type":"array","items":{"type":"string"},"description":"The prefixes of the objects.\n"},"keySuffixLists":{"type":"array","items":{"type":"string"},"description":"The suffixes of the objects that are checked.\n"},"lastModifiedStartTime":{"type":"integer","description":"The timestamp when the object was last modified. The time must be later than the timestamp that you specify. Unit: milliseconds.\n"},"ossScanConfigName":{"type":"string","description":"The policy name.\n"},"scanDayLists":{"type":"array","items":{"type":"integer"},"description":"The days when the check is performed. The value indicates the days of the week.\n"},"startTime":{"type":"string","description":"The start time of the check. The time is in the HH:mm:ss format.\n"}},"type":"object"}},"alicloud:threatdetection/sasTrail:SasTrail":{"description":"Provides a Threat Detection Sas Trail resource. \n\nFor information about Threat Detection Sas Trail and how to use it, see [What is Sas Trail](https://www.alibabacloud.com/help/zh/security-center/developer-reference/api-sas-2018-12-03-createservicetrail).\n\n\u003e **NOTE:** Available since v1.212.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.threatdetection.SasTrail(\"default\", {});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.threatdetection.SasTrail(\"default\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ThreatDetection.SasTrail(\"default\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := threatdetection.NewSasTrail(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.SasTrail;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new SasTrail(\"default\");\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:threatdetection:SasTrail\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Sas Trail can be imported using the id, e.g.\n\n```sh\n$ terraform import alicloud_threat_detection_sas_trail.example \n```\n\n","properties":{"createTime":{"type":"integer","description":"The service trace creation timestamp, in milliseconds.\n"},"serviceTrail":{"$ref":"#/types/alicloud:threatdetection/SasTrailServiceTrail:SasTrailServiceTrail","description":"Service trace configuration information.\n"}},"required":["createTime","serviceTrail"],"stateInputs":{"description":"Input properties used for looking up and filtering SasTrail resources.\n","properties":{"createTime":{"type":"integer","description":"The service trace creation timestamp, in milliseconds.\n"},"serviceTrail":{"$ref":"#/types/alicloud:threatdetection/SasTrailServiceTrail:SasTrailServiceTrail","description":"Service trace configuration information.\n"}},"type":"object"}},"alicloud:threatdetection/vulWhitelist:VulWhitelist":{"description":"Provides a Threat Detection Vul Whitelist resource.\n\nFor information about Threat Detection Vul Whitelist and how to use it, see [What is Vul Whitelist](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-modifycreatevulwhitelist).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.threatdetection.VulWhitelist(\"default\", {\n    whitelist: \"[{\\\"aliasName\\\":\\\"RHSA-2021:2260: libwebp 安全更新\\\",\\\"name\\\":\\\"RHSA-2021:2260: libwebp 安全更新\\\",\\\"type\\\":\\\"cve\\\"}]\",\n    targetInfo: \"{\\\"type\\\":\\\"GroupId\\\",\\\"uuids\\\":[],\\\"groupIds\\\":[10782678]}\",\n    reason: \"tf-example-reason\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.VulWhitelist(\"default\",\n    whitelist=\"[{\\\"aliasName\\\":\\\"RHSA-2021:2260: libwebp 安全更新\\\",\\\"name\\\":\\\"RHSA-2021:2260: libwebp 安全更新\\\",\\\"type\\\":\\\"cve\\\"}]\",\n    target_info=\"{\\\"type\\\":\\\"GroupId\\\",\\\"uuids\\\":[],\\\"groupIds\\\":[10782678]}\",\n    reason=\"tf-example-reason\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.ThreatDetection.VulWhitelist(\"default\", new()\n    {\n        Whitelist = \"[{\\\"aliasName\\\":\\\"RHSA-2021:2260: libwebp 安全更新\\\",\\\"name\\\":\\\"RHSA-2021:2260: libwebp 安全更新\\\",\\\"type\\\":\\\"cve\\\"}]\",\n        TargetInfo = \"{\\\"type\\\":\\\"GroupId\\\",\\\"uuids\\\":[],\\\"groupIds\\\":[10782678]}\",\n        Reason = \"tf-example-reason\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := threatdetection.NewVulWhitelist(ctx, \"default\", \u0026threatdetection.VulWhitelistArgs{\n\t\t\tWhitelist:  pulumi.String(\"[{\\\"aliasName\\\":\\\"RHSA-2021:2260: libwebp 安全更新\\\",\\\"name\\\":\\\"RHSA-2021:2260: libwebp 安全更新\\\",\\\"type\\\":\\\"cve\\\"}]\"),\n\t\t\tTargetInfo: pulumi.String(\"{\\\"type\\\":\\\"GroupId\\\",\\\"uuids\\\":[],\\\"groupIds\\\":[10782678]}\"),\n\t\t\tReason:     pulumi.String(\"tf-example-reason\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.VulWhitelist;\nimport com.pulumi.alicloud.threatdetection.VulWhitelistArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new VulWhitelist(\"default\", VulWhitelistArgs.builder()\n            .whitelist(\"[{\\\"aliasName\\\":\\\"RHSA-2021:2260: libwebp 安全更新\\\",\\\"name\\\":\\\"RHSA-2021:2260: libwebp 安全更新\\\",\\\"type\\\":\\\"cve\\\"}]\")\n            .targetInfo(\"{\\\"type\\\":\\\"GroupId\\\",\\\"uuids\\\":[],\\\"groupIds\\\":[10782678]}\")\n            .reason(\"tf-example-reason\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:threatdetection:VulWhitelist\n    properties:\n      whitelist: '[{\"aliasName\":\"RHSA-2021:2260: libwebp 安全更新\",\"name\":\"RHSA-2021:2260: libwebp 安全更新\",\"type\":\"cve\"}]'\n      targetInfo: '{\"type\":\"GroupId\",\"uuids\":[],\"groupIds\":[10782678]}'\n      reason: tf-example-reason\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Vul Whitelist can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:threatdetection/vulWhitelist:VulWhitelist example \u003cid\u003e\n```\n\n","properties":{"reason":{"type":"string","description":"Reason for adding whitelist.\n"},"targetInfo":{"type":"string","description":"Set the effective range of the whitelist. see [how to use it](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-modifycreatevulwhitelist).\n"},"whitelist":{"type":"string","description":"Information about the vulnerability to be added to the whitelist. see [how to use it](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-modifycreatevulwhitelist).\n"}},"required":["whitelist"],"inputProperties":{"reason":{"type":"string","description":"Reason for adding whitelist.\n"},"targetInfo":{"type":"string","description":"Set the effective range of the whitelist. see [how to use it](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-modifycreatevulwhitelist).\n"},"whitelist":{"type":"string","description":"Information about the vulnerability to be added to the whitelist. see [how to use it](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-modifycreatevulwhitelist).\n","willReplaceOnChanges":true}},"requiredInputs":["whitelist"],"stateInputs":{"description":"Input properties used for looking up and filtering VulWhitelist resources.\n","properties":{"reason":{"type":"string","description":"Reason for adding whitelist.\n"},"targetInfo":{"type":"string","description":"Set the effective range of the whitelist. see [how to use it](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-modifycreatevulwhitelist).\n"},"whitelist":{"type":"string","description":"Information about the vulnerability to be added to the whitelist. see [how to use it](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-modifycreatevulwhitelist).\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:threatdetection/webLockConfig:WebLockConfig":{"description":"Provides a Threat Detection Web Lock Config resource.\n\nFor information about Threat Detection Web Lock Config and how to use it, see [What is Web Lock Config](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-modifyweblockstart).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.threatdetection.getAssets({\n    machineTypes: \"ecs\",\n});\nconst defaultWebLockConfig = new alicloud.threatdetection.WebLockConfig(\"default\", {\n    inclusiveFileType: \"php;jsp;asp;aspx;js;cgi;html;htm;xml;shtml;shtm;jpg\",\n    uuid: _default.then(_default =\u003e _default.ids?.[0]),\n    mode: \"whitelist\",\n    localBackupDir: \"/usr/local/aegis/bak\",\n    dir: \"/tmp/\",\n    defenceMode: \"audit\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.get_assets(machine_types=\"ecs\")\ndefault_web_lock_config = alicloud.threatdetection.WebLockConfig(\"default\",\n    inclusive_file_type=\"php;jsp;asp;aspx;js;cgi;html;htm;xml;shtml;shtm;jpg\",\n    uuid=default.ids[0],\n    mode=\"whitelist\",\n    local_backup_dir=\"/usr/local/aegis/bak\",\n    dir=\"/tmp/\",\n    defence_mode=\"audit\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ThreatDetection.GetAssets.Invoke(new()\n    {\n        MachineTypes = \"ecs\",\n    });\n\n    var defaultWebLockConfig = new AliCloud.ThreatDetection.WebLockConfig(\"default\", new()\n    {\n        InclusiveFileType = \"php;jsp;asp;aspx;js;cgi;html;htm;xml;shtml;shtm;jpg\",\n        Uuid = @default.Apply(@default =\u003e @default.Apply(getAssetsResult =\u003e getAssetsResult.Ids[0])),\n        Mode = \"whitelist\",\n        LocalBackupDir = \"/usr/local/aegis/bak\",\n        Dir = \"/tmp/\",\n        DefenceMode = \"audit\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := threatdetection.GetAssets(ctx, \u0026threatdetection.GetAssetsArgs{\n\t\t\tMachineTypes: pulumi.StringRef(\"ecs\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = threatdetection.NewWebLockConfig(ctx, \"default\", \u0026threatdetection.WebLockConfigArgs{\n\t\t\tInclusiveFileType: pulumi.String(\"php;jsp;asp;aspx;js;cgi;html;htm;xml;shtml;shtm;jpg\"),\n\t\t\tUuid:              pulumi.String(_default.Ids[0]),\n\t\t\tMode:              pulumi.String(\"whitelist\"),\n\t\t\tLocalBackupDir:    pulumi.String(\"/usr/local/aegis/bak\"),\n\t\t\tDir:               pulumi.String(\"/tmp/\"),\n\t\t\tDefenceMode:       pulumi.String(\"audit\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetAssetsArgs;\nimport com.pulumi.alicloud.threatdetection.WebLockConfig;\nimport com.pulumi.alicloud.threatdetection.WebLockConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ThreatdetectionFunctions.getAssets(GetAssetsArgs.builder()\n            .machineTypes(\"ecs\")\n            .build());\n\n        var defaultWebLockConfig = new WebLockConfig(\"defaultWebLockConfig\", WebLockConfigArgs.builder()\n            .inclusiveFileType(\"php;jsp;asp;aspx;js;cgi;html;htm;xml;shtml;shtm;jpg\")\n            .uuid(default_.ids()[0])\n            .mode(\"whitelist\")\n            .localBackupDir(\"/usr/local/aegis/bak\")\n            .dir(\"/tmp/\")\n            .defenceMode(\"audit\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultWebLockConfig:\n    type: alicloud:threatdetection:WebLockConfig\n    name: default\n    properties:\n      inclusiveFileType: php;jsp;asp;aspx;js;cgi;html;htm;xml;shtml;shtm;jpg\n      uuid: ${default.ids[0]}\n      mode: whitelist\n      localBackupDir: /usr/local/aegis/bak\n      dir: /tmp/\n      defenceMode: audit\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getAssets\n      arguments:\n        machineTypes: ecs\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThreat Detection Web Lock Config can be imported using the id, e.g.\n\n```sh\n$terraform import alicloud_threat_detection_web_lock_config.example \u003cid\u003e\n```\n\n","properties":{"defenceMode":{"type":"string","description":"Protection mode. Value:-**block**: Intercept-**audit**: Alarm\n"},"dir":{"type":"string","description":"Specify the protection directory.\n"},"exclusiveDir":{"type":"string","description":"Specify a directory address that does not require Web tamper protection (I. E. Excluded directories).\u003e The protection Mode **Mode** is set to **blacklist**, you need to configure this parameter.\n"},"exclusiveFile":{"type":"string","description":"Specify files that do not need to enable tamper protection for web pages (that is, exclude files).\u003e The protection Mode **Mode** is set to **blacklist**, you need to configure this parameter.\n"},"exclusiveFileType":{"type":"string","description":"Specify the type of file that does not require Web tamper protection (that is, the type of excluded file). When there are multiple file types, use semicolons (;) separation. Value:-php-jsp-asp-aspx-js-cgi-html-htm-xml-shtml-shtm-jpg-gif-png \u003e The protection Mode **Mode** is set to **blacklist**, you need to configure this parameter.\n"},"inclusiveFileType":{"type":"string","description":"Specify the type of file that requires tamper protection. When there are multiple file types, use semicolons (;) separation. Value:-php-jsp-asp-aspx-js-cgi-html-htm-xml-shtml-shtm-jpg-gif-png\u003e The protection Mode **Mode** is set to **whitelist**, you need to configure this parameter.\n"},"localBackupDir":{"type":"string","description":"The local backup path is used to protect the safe backup of the Directory.\n"},"mode":{"type":"string","description":"Specify the protected directory mode. Value:-**whitelist**: whitelist mode, which protects the added protected directories and file types.-**blacklist**: blacklist mode, which protects all unexcluded subdirectories, file types, and specified files under the added protection directory.\n"},"uuid":{"type":"string","description":"Specify the UUID of the server to which you want to add a protection directory.\u003e You can call the DescribeCloudCenterInstances interface to obtain the UUID of the server.\n"}},"required":["defenceMode","dir","localBackupDir","mode","uuid"],"inputProperties":{"defenceMode":{"type":"string","description":"Protection mode. Value:-**block**: Intercept-**audit**: Alarm\n","willReplaceOnChanges":true},"dir":{"type":"string","description":"Specify the protection directory.\n","willReplaceOnChanges":true},"exclusiveDir":{"type":"string","description":"Specify a directory address that does not require Web tamper protection (I. E. Excluded directories).\u003e The protection Mode **Mode** is set to **blacklist**, you need to configure this parameter.\n","willReplaceOnChanges":true},"exclusiveFile":{"type":"string","description":"Specify files that do not need to enable tamper protection for web pages (that is, exclude files).\u003e The protection Mode **Mode** is set to **blacklist**, you need to configure this parameter.\n","willReplaceOnChanges":true},"exclusiveFileType":{"type":"string","description":"Specify the type of file that does not require Web tamper protection (that is, the type of excluded file). When there are multiple file types, use semicolons (;) separation. Value:-php-jsp-asp-aspx-js-cgi-html-htm-xml-shtml-shtm-jpg-gif-png \u003e The protection Mode **Mode** is set to **blacklist**, you need to configure this parameter.\n","willReplaceOnChanges":true},"inclusiveFileType":{"type":"string","description":"Specify the type of file that requires tamper protection. When there are multiple file types, use semicolons (;) separation. Value:-php-jsp-asp-aspx-js-cgi-html-htm-xml-shtml-shtm-jpg-gif-png\u003e The protection Mode **Mode** is set to **whitelist**, you need to configure this parameter.\n","willReplaceOnChanges":true},"localBackupDir":{"type":"string","description":"The local backup path is used to protect the safe backup of the Directory.\n","willReplaceOnChanges":true},"mode":{"type":"string","description":"Specify the protected directory mode. Value:-**whitelist**: whitelist mode, which protects the added protected directories and file types.-**blacklist**: blacklist mode, which protects all unexcluded subdirectories, file types, and specified files under the added protection directory.\n","willReplaceOnChanges":true},"uuid":{"type":"string","description":"Specify the UUID of the server to which you want to add a protection directory.\u003e You can call the DescribeCloudCenterInstances interface to obtain the UUID of the server.\n","willReplaceOnChanges":true}},"requiredInputs":["defenceMode","dir","localBackupDir","mode","uuid"],"stateInputs":{"description":"Input properties used for looking up and filtering WebLockConfig resources.\n","properties":{"defenceMode":{"type":"string","description":"Protection mode. Value:-**block**: Intercept-**audit**: Alarm\n","willReplaceOnChanges":true},"dir":{"type":"string","description":"Specify the protection directory.\n","willReplaceOnChanges":true},"exclusiveDir":{"type":"string","description":"Specify a directory address that does not require Web tamper protection (I. E. Excluded directories).\u003e The protection Mode **Mode** is set to **blacklist**, you need to configure this parameter.\n","willReplaceOnChanges":true},"exclusiveFile":{"type":"string","description":"Specify files that do not need to enable tamper protection for web pages (that is, exclude files).\u003e The protection Mode **Mode** is set to **blacklist**, you need to configure this parameter.\n","willReplaceOnChanges":true},"exclusiveFileType":{"type":"string","description":"Specify the type of file that does not require Web tamper protection (that is, the type of excluded file). When there are multiple file types, use semicolons (;) separation. Value:-php-jsp-asp-aspx-js-cgi-html-htm-xml-shtml-shtm-jpg-gif-png \u003e The protection Mode **Mode** is set to **blacklist**, you need to configure this parameter.\n","willReplaceOnChanges":true},"inclusiveFileType":{"type":"string","description":"Specify the type of file that requires tamper protection. When there are multiple file types, use semicolons (;) separation. Value:-php-jsp-asp-aspx-js-cgi-html-htm-xml-shtml-shtm-jpg-gif-png\u003e The protection Mode **Mode** is set to **whitelist**, you need to configure this parameter.\n","willReplaceOnChanges":true},"localBackupDir":{"type":"string","description":"The local backup path is used to protect the safe backup of the Directory.\n","willReplaceOnChanges":true},"mode":{"type":"string","description":"Specify the protected directory mode. Value:-**whitelist**: whitelist mode, which protects the added protected directories and file types.-**blacklist**: blacklist mode, which protects all unexcluded subdirectories, file types, and specified files under the added protection directory.\n","willReplaceOnChanges":true},"uuid":{"type":"string","description":"Specify the UUID of the server to which you want to add a protection directory.\u003e You can call the DescribeCloudCenterInstances interface to obtain the UUID of the server.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:tsdb/instance:Instance":{"description":"Provides a Time Series Database (TSDB) Instance resource.\n\nFor information about Time Series Database (TSDB) Instance and how to use it, see [What is Time Series Database (TSDB)](https://www.alibabacloud.com/help/en/doc-detail/55652.htm).\n\n\u003e **NOTE:** Available since v1.112.0.\n\n\u003e **DEPRECATED:**  This resource has been [deprecated](https://www.alibabacloud.com/en/notice/0313tsdb?_p_lc=1) from version `1.223.1`.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.tsdb.getZones({});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    cidrBlock: \"192.168.0.0/16\",\n    name: \"tf-testaccTsdbInstance\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    availabilityZone: example.then(example =\u003e example.ids?.[0]),\n    cidrBlock: \"192.168.1.0/24\",\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.tsdb.Instance(\"example\", {\n    paymentType: \"PayAsYouGo\",\n    vswitchId: exampleSwitch.id,\n    instanceStorage: \"50\",\n    instanceClass: \"tsdb.1x.basic\",\n    engineType: \"tsdb_tsdb\",\n    instanceAlias: \"tf-testaccTsdbInstance\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.tsdb.get_zones()\nexample_network = alicloud.vpc.Network(\"example\",\n    cidr_block=\"192.168.0.0/16\",\n    name=\"tf-testaccTsdbInstance\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    availability_zone=example.ids[0],\n    cidr_block=\"192.168.1.0/24\",\n    vpc_id=example_network.id)\nexample_instance = alicloud.tsdb.Instance(\"example\",\n    payment_type=\"PayAsYouGo\",\n    vswitch_id=example_switch.id,\n    instance_storage=\"50\",\n    instance_class=\"tsdb.1x.basic\",\n    engine_type=\"tsdb_tsdb\",\n    instance_alias=\"tf-testaccTsdbInstance\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Tsdb.GetZones.Invoke();\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        CidrBlock = \"192.168.0.0/16\",\n        Name = \"tf-testaccTsdbInstance\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        AvailabilityZone = example.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n        CidrBlock = \"192.168.1.0/24\",\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Tsdb.Instance(\"example\", new()\n    {\n        PaymentType = \"PayAsYouGo\",\n        VswitchId = exampleSwitch.Id,\n        InstanceStorage = \"50\",\n        InstanceClass = \"tsdb.1x.basic\",\n        EngineType = \"tsdb_tsdb\",\n        InstanceAlias = \"tf-testaccTsdbInstance\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/tsdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := tsdb.GetZones(ctx, \u0026tsdb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t\tName:      pulumi.String(\"tf-testaccTsdbInstance\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tAvailabilityZone: pulumi.String(example.Ids[0]),\n\t\t\tCidrBlock:        pulumi.String(\"192.168.1.0/24\"),\n\t\t\tVpcId:            exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = tsdb.NewInstance(ctx, \"example\", \u0026tsdb.InstanceArgs{\n\t\t\tPaymentType:     pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:       exampleSwitch.ID(),\n\t\t\tInstanceStorage: pulumi.String(\"50\"),\n\t\t\tInstanceClass:   pulumi.String(\"tsdb.1x.basic\"),\n\t\t\tEngineType:      pulumi.String(\"tsdb_tsdb\"),\n\t\t\tInstanceAlias:   pulumi.String(\"tf-testaccTsdbInstance\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.tsdb.TsdbFunctions;\nimport com.pulumi.alicloud.tsdb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.tsdb.Instance;\nimport com.pulumi.alicloud.tsdb.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = TsdbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .cidrBlock(\"192.168.0.0/16\")\n            .name(\"tf-testaccTsdbInstance\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .availabilityZone(example.ids()[0])\n            .cidrBlock(\"192.168.1.0/24\")\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .paymentType(\"PayAsYouGo\")\n            .vswitchId(exampleSwitch.id())\n            .instanceStorage(\"50\")\n            .instanceClass(\"tsdb.1x.basic\")\n            .engineType(\"tsdb_tsdb\")\n            .instanceAlias(\"tf-testaccTsdbInstance\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      cidrBlock: 192.168.0.0/16\n      name: tf-testaccTsdbInstance\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      availabilityZone: ${example.ids[0]}\n      cidrBlock: 192.168.1.0/24\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:tsdb:Instance\n    name: example\n    properties:\n      paymentType: PayAsYouGo\n      vswitchId: ${exampleSwitch.id}\n      instanceStorage: '50'\n      instanceClass: tsdb.1x.basic\n      engineType: tsdb_tsdb\n      instanceAlias: tf-testaccTsdbInstance\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:tsdb:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nTSDB Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:tsdb/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"appKey":{"type":"string","description":"The app key.\n"},"diskCategory":{"type":"string","description":"The disk type of instance. Valid when the engine type is \u003cspan pulumi-lang-nodejs=\"`tsdbInfluxdb`\" pulumi-lang-dotnet=\"`TsdbInfluxdb`\" pulumi-lang-go=\"`tsdbInfluxdb`\" pulumi-lang-python=\"`tsdb_influxdb`\" pulumi-lang-yaml=\"`tsdbInfluxdb`\" pulumi-lang-java=\"`tsdbInfluxdb`\"\u003e`tsdb_influxdb`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e refers to SSD disk, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e refers to efficiency disk, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e refers to ESSD PL1 disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e.\n"},"duration":{"type":"string","description":"The duration.\n"},"engineType":{"type":"string","description":"The engine type of instance Enumerative: \u003cspan pulumi-lang-nodejs=\"`tsdbTsdb`\" pulumi-lang-dotnet=\"`TsdbTsdb`\" pulumi-lang-go=\"`tsdbTsdb`\" pulumi-lang-python=\"`tsdb_tsdb`\" pulumi-lang-yaml=\"`tsdbTsdb`\" pulumi-lang-java=\"`tsdbTsdb`\"\u003e`tsdb_tsdb`\u003c/span\u003e refers to TSDB, \u003cspan pulumi-lang-nodejs=\"`tsdbInfluxdb`\" pulumi-lang-dotnet=\"`TsdbInfluxdb`\" pulumi-lang-go=\"`tsdbInfluxdb`\" pulumi-lang-python=\"`tsdb_influxdb`\" pulumi-lang-yaml=\"`tsdbInfluxdb`\" pulumi-lang-java=\"`tsdbInfluxdb`\"\u003e`tsdb_influxdb`\u003c/span\u003e refers to TSDB for InfluxDB️.\n"},"instanceAlias":{"type":"string","description":"The alias of the instance.\n"},"instanceClass":{"type":"string","description":"The specification of the instance. \n- Following enumerative value for TSDB for InfluxDB️ standart edition:\n- `influxdata.n1.mxlarge` refers to 2 CPU 8GB memory;\n- `influxdata.n1.xlarge` refers to 4 CPU 16GB memory;\n- `influxdata.n1.2xlarge` refers to 8 CPU 32 GB memory;\n- `influxdata.n1.4xlarge` refers to 16 CPU 64 GB memory;\n- `influxdata.n1.8xlarge` refers to 32 CPU 128 GB memory;\n- `influxdata.n1.16xlarge` refers to 64 CPU 256 GB memory.\n- Following enumerative value for TSDB for InfluxDB High-availability edition:\n- `influxdata.n1.mxlarge_ha` refers to 2 CPU 8GB memory;\n- `influxdata.n1.xlarge_ha` refers to 4 CPU 16GB memory;\n- `influxdata.n1.2xlarge_ha` refers to 8 CPU 32 GB memory;\n- `influxdata.n1.4xlarge_ha` refers to 16 CPU 64 GB memory;\n- `influxdata.n1.8xlarge_ha` refers to 32 CPU 128 GB memory;\n- `influxdata.n1.16xlarge_ha` refers to 64 CPU 256 GB memory.\n- Following enumerative value for TSDB:\n- `tsdb.1x.basic` refers to basic edition I;\n- `tsdb.3x.basic` refers to basic edition II;\n- `tsdb.4x.basic` refers to basic edtion III;\n- `tsdb.12x.standard` refers to standard edition I;\n- `tsdb.24x.standard` refers to standard edition II;\n- `tsdb.48x.large` refers to ultimate edition I;\n- `tsdb.96x.large` refers to ultimate edition II.\n"},"instanceStorage":{"type":"string","description":"The storage capacity of the instance. Unit: GB. For example, the value 50 indicates 50 GB. Does not support shrink storage.\n"},"paymentType":{"type":"string","description":"The billing method. Valid values: `PayAsYouGo` and `Subscription`. The `PayAsYouGo` value indicates the pay-as-you-go method, and the `Subscription` value indicates the subscription method.\n"},"status":{"type":"string","description":"Instance status, enumerative: `ACTIVATION`, `DELETED`, `CREATING`, `CLASS_CHANGING`, `LOCKED`.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"},"zoneId":{"type":"string","description":"The zone ID of the instance.\n"}},"required":["instanceClass","instanceStorage","paymentType","status","vswitchId","zoneId"],"inputProperties":{"appKey":{"type":"string","description":"The app key.\n"},"diskCategory":{"type":"string","description":"The disk type of instance. Valid when the engine type is \u003cspan pulumi-lang-nodejs=\"`tsdbInfluxdb`\" pulumi-lang-dotnet=\"`TsdbInfluxdb`\" pulumi-lang-go=\"`tsdbInfluxdb`\" pulumi-lang-python=\"`tsdb_influxdb`\" pulumi-lang-yaml=\"`tsdbInfluxdb`\" pulumi-lang-java=\"`tsdbInfluxdb`\"\u003e`tsdb_influxdb`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e refers to SSD disk, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e refers to efficiency disk, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e refers to ESSD PL1 disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e.\n","willReplaceOnChanges":true},"duration":{"type":"string","description":"The duration.\n","willReplaceOnChanges":true},"engineType":{"type":"string","description":"The engine type of instance Enumerative: \u003cspan pulumi-lang-nodejs=\"`tsdbTsdb`\" pulumi-lang-dotnet=\"`TsdbTsdb`\" pulumi-lang-go=\"`tsdbTsdb`\" pulumi-lang-python=\"`tsdb_tsdb`\" pulumi-lang-yaml=\"`tsdbTsdb`\" pulumi-lang-java=\"`tsdbTsdb`\"\u003e`tsdb_tsdb`\u003c/span\u003e refers to TSDB, \u003cspan pulumi-lang-nodejs=\"`tsdbInfluxdb`\" pulumi-lang-dotnet=\"`TsdbInfluxdb`\" pulumi-lang-go=\"`tsdbInfluxdb`\" pulumi-lang-python=\"`tsdb_influxdb`\" pulumi-lang-yaml=\"`tsdbInfluxdb`\" pulumi-lang-java=\"`tsdbInfluxdb`\"\u003e`tsdb_influxdb`\u003c/span\u003e refers to TSDB for InfluxDB️.\n","willReplaceOnChanges":true},"instanceAlias":{"type":"string","description":"The alias of the instance.\n"},"instanceClass":{"type":"string","description":"The specification of the instance. \n- Following enumerative value for TSDB for InfluxDB️ standart edition:\n- `influxdata.n1.mxlarge` refers to 2 CPU 8GB memory;\n- `influxdata.n1.xlarge` refers to 4 CPU 16GB memory;\n- `influxdata.n1.2xlarge` refers to 8 CPU 32 GB memory;\n- `influxdata.n1.4xlarge` refers to 16 CPU 64 GB memory;\n- `influxdata.n1.8xlarge` refers to 32 CPU 128 GB memory;\n- `influxdata.n1.16xlarge` refers to 64 CPU 256 GB memory.\n- Following enumerative value for TSDB for InfluxDB High-availability edition:\n- `influxdata.n1.mxlarge_ha` refers to 2 CPU 8GB memory;\n- `influxdata.n1.xlarge_ha` refers to 4 CPU 16GB memory;\n- `influxdata.n1.2xlarge_ha` refers to 8 CPU 32 GB memory;\n- `influxdata.n1.4xlarge_ha` refers to 16 CPU 64 GB memory;\n- `influxdata.n1.8xlarge_ha` refers to 32 CPU 128 GB memory;\n- `influxdata.n1.16xlarge_ha` refers to 64 CPU 256 GB memory.\n- Following enumerative value for TSDB:\n- `tsdb.1x.basic` refers to basic edition I;\n- `tsdb.3x.basic` refers to basic edition II;\n- `tsdb.4x.basic` refers to basic edtion III;\n- `tsdb.12x.standard` refers to standard edition I;\n- `tsdb.24x.standard` refers to standard edition II;\n- `tsdb.48x.large` refers to ultimate edition I;\n- `tsdb.96x.large` refers to ultimate edition II.\n"},"instanceStorage":{"type":"string","description":"The storage capacity of the instance. Unit: GB. For example, the value 50 indicates 50 GB. Does not support shrink storage.\n"},"paymentType":{"type":"string","description":"The billing method. Valid values: `PayAsYouGo` and `Subscription`. The `PayAsYouGo` value indicates the pay-as-you-go method, and the `Subscription` value indicates the subscription method.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The vswitch id.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the instance.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceClass","instanceStorage","paymentType","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"appKey":{"type":"string","description":"The app key.\n"},"diskCategory":{"type":"string","description":"The disk type of instance. Valid when the engine type is \u003cspan pulumi-lang-nodejs=\"`tsdbInfluxdb`\" pulumi-lang-dotnet=\"`TsdbInfluxdb`\" pulumi-lang-go=\"`tsdbInfluxdb`\" pulumi-lang-python=\"`tsdb_influxdb`\" pulumi-lang-yaml=\"`tsdbInfluxdb`\" pulumi-lang-java=\"`tsdbInfluxdb`\"\u003e`tsdb_influxdb`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e refers to SSD disk, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e refers to efficiency disk, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e refers to ESSD PL1 disk. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e.\n","willReplaceOnChanges":true},"duration":{"type":"string","description":"The duration.\n","willReplaceOnChanges":true},"engineType":{"type":"string","description":"The engine type of instance Enumerative: \u003cspan pulumi-lang-nodejs=\"`tsdbTsdb`\" pulumi-lang-dotnet=\"`TsdbTsdb`\" pulumi-lang-go=\"`tsdbTsdb`\" pulumi-lang-python=\"`tsdb_tsdb`\" pulumi-lang-yaml=\"`tsdbTsdb`\" pulumi-lang-java=\"`tsdbTsdb`\"\u003e`tsdb_tsdb`\u003c/span\u003e refers to TSDB, \u003cspan pulumi-lang-nodejs=\"`tsdbInfluxdb`\" pulumi-lang-dotnet=\"`TsdbInfluxdb`\" pulumi-lang-go=\"`tsdbInfluxdb`\" pulumi-lang-python=\"`tsdb_influxdb`\" pulumi-lang-yaml=\"`tsdbInfluxdb`\" pulumi-lang-java=\"`tsdbInfluxdb`\"\u003e`tsdb_influxdb`\u003c/span\u003e refers to TSDB for InfluxDB️.\n","willReplaceOnChanges":true},"instanceAlias":{"type":"string","description":"The alias of the instance.\n"},"instanceClass":{"type":"string","description":"The specification of the instance. \n- Following enumerative value for TSDB for InfluxDB️ standart edition:\n- `influxdata.n1.mxlarge` refers to 2 CPU 8GB memory;\n- `influxdata.n1.xlarge` refers to 4 CPU 16GB memory;\n- `influxdata.n1.2xlarge` refers to 8 CPU 32 GB memory;\n- `influxdata.n1.4xlarge` refers to 16 CPU 64 GB memory;\n- `influxdata.n1.8xlarge` refers to 32 CPU 128 GB memory;\n- `influxdata.n1.16xlarge` refers to 64 CPU 256 GB memory.\n- Following enumerative value for TSDB for InfluxDB High-availability edition:\n- `influxdata.n1.mxlarge_ha` refers to 2 CPU 8GB memory;\n- `influxdata.n1.xlarge_ha` refers to 4 CPU 16GB memory;\n- `influxdata.n1.2xlarge_ha` refers to 8 CPU 32 GB memory;\n- `influxdata.n1.4xlarge_ha` refers to 16 CPU 64 GB memory;\n- `influxdata.n1.8xlarge_ha` refers to 32 CPU 128 GB memory;\n- `influxdata.n1.16xlarge_ha` refers to 64 CPU 256 GB memory.\n- Following enumerative value for TSDB:\n- `tsdb.1x.basic` refers to basic edition I;\n- `tsdb.3x.basic` refers to basic edition II;\n- `tsdb.4x.basic` refers to basic edtion III;\n- `tsdb.12x.standard` refers to standard edition I;\n- `tsdb.24x.standard` refers to standard edition II;\n- `tsdb.48x.large` refers to ultimate edition I;\n- `tsdb.96x.large` refers to ultimate edition II.\n"},"instanceStorage":{"type":"string","description":"The storage capacity of the instance. Unit: GB. For example, the value 50 indicates 50 GB. Does not support shrink storage.\n"},"paymentType":{"type":"string","description":"The billing method. Valid values: `PayAsYouGo` and `Subscription`. The `PayAsYouGo` value indicates the pay-as-you-go method, and the `Subscription` value indicates the subscription method.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Instance status, enumerative: `ACTIVATION`, `DELETED`, `CREATING`, `CLASS_CHANGING`, `LOCKED`.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:videosurveillance/systemGroup:SystemGroup":{"description":"Provides a Video Surveillance System Group resource.\n\nFor information about Video Surveillance System Group and how to use it, see [What is Group](https://help.aliyun.com/product/108765.html).\n\n\u003e **NOTE:** Available in v1.135.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.videosurveillance.SystemGroup(\"default\", {\n    groupName: \"your_group_name\",\n    inProtocol: \"rtmp\",\n    outProtocol: \"flv\",\n    playDomain: \"your_plan_domain\",\n    pushDomain: \"your_push_domain\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.videosurveillance.SystemGroup(\"default\",\n    group_name=\"your_group_name\",\n    in_protocol=\"rtmp\",\n    out_protocol=\"flv\",\n    play_domain=\"your_plan_domain\",\n    push_domain=\"your_push_domain\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.VideoSurveillance.SystemGroup(\"default\", new()\n    {\n        GroupName = \"your_group_name\",\n        InProtocol = \"rtmp\",\n        OutProtocol = \"flv\",\n        PlayDomain = \"your_plan_domain\",\n        PushDomain = \"your_push_domain\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/videosurveillance\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := videosurveillance.NewSystemGroup(ctx, \"default\", \u0026videosurveillance.SystemGroupArgs{\n\t\t\tGroupName:   pulumi.String(\"your_group_name\"),\n\t\t\tInProtocol:  pulumi.String(\"rtmp\"),\n\t\t\tOutProtocol: pulumi.String(\"flv\"),\n\t\t\tPlayDomain:  pulumi.String(\"your_plan_domain\"),\n\t\t\tPushDomain:  pulumi.String(\"your_push_domain\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.videosurveillance.SystemGroup;\nimport com.pulumi.alicloud.videosurveillance.SystemGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new SystemGroup(\"default\", SystemGroupArgs.builder()\n            .groupName(\"your_group_name\")\n            .inProtocol(\"rtmp\")\n            .outProtocol(\"flv\")\n            .playDomain(\"your_plan_domain\")\n            .pushDomain(\"your_push_domain\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:videosurveillance:SystemGroup\n    properties:\n      groupName: your_group_name\n      inProtocol: rtmp\n      outProtocol: flv\n      playDomain: your_plan_domain\n      pushDomain: your_push_domain\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVideo Surveillance System Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:videosurveillance/systemGroup:SystemGroup example \u003cid\u003e\n```\n\n","properties":{"callback":{"type":"string","description":"The space within the device status update of the callback, need to start with http:// or https:// at the beginning.\n"},"captureImage":{"type":"integer","description":"The capture image.\n"},"captureInterval":{"type":"integer","description":"The capture interval.\n"},"captureOssBucket":{"type":"string","description":"The capture oss bucket.\n"},"captureOssPath":{"type":"string","description":"The capture oss path.\n"},"captureVideo":{"type":"integer","description":"The capture video.\n"},"description":{"type":"string","description":"The description of Group.\n"},"enabled":{"type":"boolean","description":"Whether to open Group.\n"},"groupName":{"type":"string","description":"The Group Name.\n"},"inProtocol":{"type":"string","description":"The use of the access protocol support gb28181, Real Time Messaging Protocol (rtmp). Valid values: \u003cspan pulumi-lang-nodejs=\"`gb28181`\" pulumi-lang-dotnet=\"`Gb28181`\" pulumi-lang-go=\"`gb28181`\" pulumi-lang-python=\"`gb28181`\" pulumi-lang-yaml=\"`gb28181`\" pulumi-lang-java=\"`gb28181`\"\u003e`gb28181`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rtmp`\" pulumi-lang-dotnet=\"`Rtmp`\" pulumi-lang-go=\"`rtmp`\" pulumi-lang-python=\"`rtmp`\" pulumi-lang-yaml=\"`rtmp`\" pulumi-lang-java=\"`rtmp`\"\u003e`rtmp`\u003c/span\u003e.\n"},"lazyPull":{"type":"boolean","description":"Whether to enable on-demand streaming. Default value:\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"outProtocol":{"type":"string","description":"The playback protocol used by the space, multiple values are separated by commas (,). Valid values: \u003cspan pulumi-lang-nodejs=\"`flv`\" pulumi-lang-dotnet=\"`Flv`\" pulumi-lang-go=\"`flv`\" pulumi-lang-python=\"`flv`\" pulumi-lang-yaml=\"`flv`\" pulumi-lang-java=\"`flv`\"\u003e`flv`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`hls`\" pulumi-lang-dotnet=\"`Hls`\" pulumi-lang-go=\"`hls`\" pulumi-lang-python=\"`hls`\" pulumi-lang-yaml=\"`hls`\" pulumi-lang-java=\"`hls`\"\u003e`hls`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rtmp`\" pulumi-lang-dotnet=\"`Rtmp`\" pulumi-lang-go=\"`rtmp`\" pulumi-lang-python=\"`rtmp`\" pulumi-lang-yaml=\"`rtmp`\" pulumi-lang-java=\"`rtmp`\"\u003e`rtmp`\u003c/span\u003e.\n"},"playDomain":{"type":"string","description":"The domain name of plan streaming used by the group.\n"},"pushDomain":{"type":"string","description":"The domain name of push streaming used by the group.\n"},"status":{"type":"boolean","description":"Whether to open Group. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"}},"required":["captureImage","captureInterval","captureOssBucket","captureOssPath","captureVideo","enabled","groupName","inProtocol","lazyPull","outProtocol","playDomain","pushDomain","status"],"inputProperties":{"callback":{"type":"string","description":"The space within the device status update of the callback, need to start with http:// or https:// at the beginning.\n"},"description":{"type":"string","description":"The description of Group.\n"},"enabled":{"type":"boolean","description":"Whether to open Group.\n"},"groupName":{"type":"string","description":"The Group Name.\n"},"inProtocol":{"type":"string","description":"The use of the access protocol support gb28181, Real Time Messaging Protocol (rtmp). Valid values: \u003cspan pulumi-lang-nodejs=\"`gb28181`\" pulumi-lang-dotnet=\"`Gb28181`\" pulumi-lang-go=\"`gb28181`\" pulumi-lang-python=\"`gb28181`\" pulumi-lang-yaml=\"`gb28181`\" pulumi-lang-java=\"`gb28181`\"\u003e`gb28181`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rtmp`\" pulumi-lang-dotnet=\"`Rtmp`\" pulumi-lang-go=\"`rtmp`\" pulumi-lang-python=\"`rtmp`\" pulumi-lang-yaml=\"`rtmp`\" pulumi-lang-java=\"`rtmp`\"\u003e`rtmp`\u003c/span\u003e.\n"},"outProtocol":{"type":"string","description":"The playback protocol used by the space, multiple values are separated by commas (,). Valid values: \u003cspan pulumi-lang-nodejs=\"`flv`\" pulumi-lang-dotnet=\"`Flv`\" pulumi-lang-go=\"`flv`\" pulumi-lang-python=\"`flv`\" pulumi-lang-yaml=\"`flv`\" pulumi-lang-java=\"`flv`\"\u003e`flv`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`hls`\" pulumi-lang-dotnet=\"`Hls`\" pulumi-lang-go=\"`hls`\" pulumi-lang-python=\"`hls`\" pulumi-lang-yaml=\"`hls`\" pulumi-lang-java=\"`hls`\"\u003e`hls`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rtmp`\" pulumi-lang-dotnet=\"`Rtmp`\" pulumi-lang-go=\"`rtmp`\" pulumi-lang-python=\"`rtmp`\" pulumi-lang-yaml=\"`rtmp`\" pulumi-lang-java=\"`rtmp`\"\u003e`rtmp`\u003c/span\u003e.\n"},"playDomain":{"type":"string","description":"The domain name of plan streaming used by the group.\n","willReplaceOnChanges":true},"pushDomain":{"type":"string","description":"The domain name of push streaming used by the group.\n"}},"requiredInputs":["groupName","inProtocol","outProtocol","playDomain","pushDomain"],"stateInputs":{"description":"Input properties used for looking up and filtering SystemGroup resources.\n","properties":{"callback":{"type":"string","description":"The space within the device status update of the callback, need to start with http:// or https:// at the beginning.\n"},"captureImage":{"type":"integer","description":"The capture image.\n"},"captureInterval":{"type":"integer","description":"The capture interval.\n"},"captureOssBucket":{"type":"string","description":"The capture oss bucket.\n"},"captureOssPath":{"type":"string","description":"The capture oss path.\n"},"captureVideo":{"type":"integer","description":"The capture video.\n"},"description":{"type":"string","description":"The description of Group.\n"},"enabled":{"type":"boolean","description":"Whether to open Group.\n"},"groupName":{"type":"string","description":"The Group Name.\n"},"inProtocol":{"type":"string","description":"The use of the access protocol support gb28181, Real Time Messaging Protocol (rtmp). Valid values: \u003cspan pulumi-lang-nodejs=\"`gb28181`\" pulumi-lang-dotnet=\"`Gb28181`\" pulumi-lang-go=\"`gb28181`\" pulumi-lang-python=\"`gb28181`\" pulumi-lang-yaml=\"`gb28181`\" pulumi-lang-java=\"`gb28181`\"\u003e`gb28181`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rtmp`\" pulumi-lang-dotnet=\"`Rtmp`\" pulumi-lang-go=\"`rtmp`\" pulumi-lang-python=\"`rtmp`\" pulumi-lang-yaml=\"`rtmp`\" pulumi-lang-java=\"`rtmp`\"\u003e`rtmp`\u003c/span\u003e.\n"},"lazyPull":{"type":"boolean","description":"Whether to enable on-demand streaming. Default value:\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"outProtocol":{"type":"string","description":"The playback protocol used by the space, multiple values are separated by commas (,). Valid values: \u003cspan pulumi-lang-nodejs=\"`flv`\" pulumi-lang-dotnet=\"`Flv`\" pulumi-lang-go=\"`flv`\" pulumi-lang-python=\"`flv`\" pulumi-lang-yaml=\"`flv`\" pulumi-lang-java=\"`flv`\"\u003e`flv`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`hls`\" pulumi-lang-dotnet=\"`Hls`\" pulumi-lang-go=\"`hls`\" pulumi-lang-python=\"`hls`\" pulumi-lang-yaml=\"`hls`\" pulumi-lang-java=\"`hls`\"\u003e`hls`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rtmp`\" pulumi-lang-dotnet=\"`Rtmp`\" pulumi-lang-go=\"`rtmp`\" pulumi-lang-python=\"`rtmp`\" pulumi-lang-yaml=\"`rtmp`\" pulumi-lang-java=\"`rtmp`\"\u003e`rtmp`\u003c/span\u003e.\n"},"playDomain":{"type":"string","description":"The domain name of plan streaming used by the group.\n","willReplaceOnChanges":true},"pushDomain":{"type":"string","description":"The domain name of push streaming used by the group.\n"},"status":{"type":"boolean","description":"Whether to open Group. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:vod/domain:Domain":{"description":"Provides a VOD Domain resource.\n\nFor information about VOD Domain and how to use it, see [What is Domain](https://www.alibabacloud.com/help/product/29932.html).\n\n\u003e **NOTE:** Available since v1.136.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultDomain = new alicloud.vod.Domain(\"default\", {\n    domainName: `example-${_default.result}.com`,\n    scope: \"domestic\",\n    sources: [{\n        sourceType: \"domain\",\n        sourceContent: \"outin-c7405446108111ec9a7100163e0eb78b.oss-cn-beijing.aliyuncs.com\",\n        sourcePort: \"443\",\n    }],\n    tags: {\n        Created: \"terraform\",\n        For: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_domain = alicloud.vod.Domain(\"default\",\n    domain_name=f\"example-{default['result']}.com\",\n    scope=\"domestic\",\n    sources=[{\n        \"source_type\": \"domain\",\n        \"source_content\": \"outin-c7405446108111ec9a7100163e0eb78b.oss-cn-beijing.aliyuncs.com\",\n        \"source_port\": \"443\",\n    }],\n    tags={\n        \"Created\": \"terraform\",\n        \"For\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultDomain = new AliCloud.Vod.Domain(\"default\", new()\n    {\n        DomainName = $\"example-{@default.Result}.com\",\n        Scope = \"domestic\",\n        Sources = new[]\n        {\n            new AliCloud.Vod.Inputs.DomainSourceArgs\n            {\n                SourceType = \"domain\",\n                SourceContent = \"outin-c7405446108111ec9a7100163e0eb78b.oss-cn-beijing.aliyuncs.com\",\n                SourcePort = \"443\",\n            },\n        },\n        Tags = \n        {\n            { \"Created\", \"terraform\" },\n            { \"For\", \"example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vod\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vod.NewDomain(ctx, \"default\", \u0026vod.DomainArgs{\n\t\t\tDomainName: pulumi.Sprintf(\"example-%v.com\", _default.Result),\n\t\t\tScope:      pulumi.String(\"domestic\"),\n\t\t\tSources: vod.DomainSourceArray{\n\t\t\t\t\u0026vod.DomainSourceArgs{\n\t\t\t\t\tSourceType:    pulumi.String(\"domain\"),\n\t\t\t\t\tSourceContent: pulumi.String(\"outin-c7405446108111ec9a7100163e0eb78b.oss-cn-beijing.aliyuncs.com\"),\n\t\t\t\t\tSourcePort:    pulumi.String(\"443\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"terraform\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vod.Domain;\nimport com.pulumi.alicloud.vod.DomainArgs;\nimport com.pulumi.alicloud.vod.inputs.DomainSourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultDomain = new Domain(\"defaultDomain\", DomainArgs.builder()\n            .domainName(String.format(\"example-%s.com\", default_.result()))\n            .scope(\"domestic\")\n            .sources(DomainSourceArgs.builder()\n                .sourceType(\"domain\")\n                .sourceContent(\"outin-c7405446108111ec9a7100163e0eb78b.oss-cn-beijing.aliyuncs.com\")\n                .sourcePort(\"443\")\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"terraform\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultDomain:\n    type: alicloud:vod:Domain\n    name: default\n    properties:\n      domainName: example-${default.result}.com\n      scope: domestic\n      sources:\n        - sourceType: domain\n          sourceContent: outin-c7405446108111ec9a7100163e0eb78b.oss-cn-beijing.aliyuncs.com\n          sourcePort: '443'\n      tags:\n        Created: terraform\n        For: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVOD Domain can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vod/domain:Domain example \u003cdomain_name\u003e\n```\n\n","properties":{"certName":{"type":"string","description":"The name of the certificate. The value of this parameter is returned if HTTPS is enabled.\n"},"checkUrl":{"type":"string","description":"The URL that is used for health checks.\n"},"cname":{"type":"string","description":"The CNAME that is assigned to the domain name for CDN. You must add a CNAME record in the system of your Domain Name System (DNS) service provider to map the domain name for CDN to the CNAME.\n"},"description":{"type":"string","description":"The description of the domain name for CDN.\n"},"domainName":{"type":"string","description":"The domain name for CDN that you want to add to ApsaraVideo VOD. Wildcard domain names are supported. Start the domain name with a period (.). Example: `.example.com.`.\n"},"gmtCreated":{"type":"string","description":"The time when the domain name for CDN was added. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"gmtModified":{"type":"string","description":"The last time when the domain name for CDN was modified. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"scope":{"type":"string","description":"This parameter is applicable to users of level 3 or higher in mainland China and users outside mainland China. Valid values:\n"},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:vod/DomainSource:DomainSource"},"description":"The information about the address of the origin server. For more information about the Sources parameter, See the following `Block sources`.\n"},"sslProtocol":{"type":"string","description":"Indicates whether the Secure Sockets Layer (SSL) certificate is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"sslPub":{"type":"string","description":"The public key of the certificate. The value of this parameter is returned if HTTPS is enabled.\n"},"status":{"type":"string","description":"The status of the domain name for CDN. Valid values:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n* `Key`: It can be up to 64 characters in length. It cannot be a null string.\n* `Value`: It can be up to 128 characters in length. It can be a null string.\n"},"topLevelDomain":{"type":"string","description":"The top-level domain name.\n"},"weight":{"type":"string","description":"The weight of the origin server.\n"}},"required":["certName","cname","description","domainName","gmtCreated","gmtModified","sources","sslProtocol","sslPub","status","weight"],"inputProperties":{"checkUrl":{"type":"string","description":"The URL that is used for health checks.\n"},"domainName":{"type":"string","description":"The domain name for CDN that you want to add to ApsaraVideo VOD. Wildcard domain names are supported. Start the domain name with a period (.). Example: `.example.com.`.\n","willReplaceOnChanges":true},"scope":{"type":"string","description":"This parameter is applicable to users of level 3 or higher in mainland China and users outside mainland China. Valid values:\n","willReplaceOnChanges":true},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:vod/DomainSource:DomainSource"},"description":"The information about the address of the origin server. For more information about the Sources parameter, See the following `Block sources`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n* `Key`: It can be up to 64 characters in length. It cannot be a null string.\n* `Value`: It can be up to 128 characters in length. It can be a null string.\n"},"topLevelDomain":{"type":"string","description":"The top-level domain name.\n"}},"requiredInputs":["domainName","sources"],"stateInputs":{"description":"Input properties used for looking up and filtering Domain resources.\n","properties":{"certName":{"type":"string","description":"The name of the certificate. The value of this parameter is returned if HTTPS is enabled.\n"},"checkUrl":{"type":"string","description":"The URL that is used for health checks.\n"},"cname":{"type":"string","description":"The CNAME that is assigned to the domain name for CDN. You must add a CNAME record in the system of your Domain Name System (DNS) service provider to map the domain name for CDN to the CNAME.\n"},"description":{"type":"string","description":"The description of the domain name for CDN.\n"},"domainName":{"type":"string","description":"The domain name for CDN that you want to add to ApsaraVideo VOD. Wildcard domain names are supported. Start the domain name with a period (.). Example: `.example.com.`.\n","willReplaceOnChanges":true},"gmtCreated":{"type":"string","description":"The time when the domain name for CDN was added. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"gmtModified":{"type":"string","description":"The last time when the domain name for CDN was modified. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.\n"},"scope":{"type":"string","description":"This parameter is applicable to users of level 3 or higher in mainland China and users outside mainland China. Valid values:\n","willReplaceOnChanges":true},"sources":{"type":"array","items":{"$ref":"#/types/alicloud:vod/DomainSource:DomainSource"},"description":"The information about the address of the origin server. For more information about the Sources parameter, See the following `Block sources`.\n"},"sslProtocol":{"type":"string","description":"Indicates whether the Secure Sockets Layer (SSL) certificate is enabled. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"sslPub":{"type":"string","description":"The public key of the certificate. The value of this parameter is returned if HTTPS is enabled.\n"},"status":{"type":"string","description":"The status of the domain name for CDN. Valid values:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n* `Key`: It can be up to 64 characters in length. It cannot be a null string.\n* `Value`: It can be up to 128 characters in length. It can be a null string.\n"},"topLevelDomain":{"type":"string","description":"The top-level domain name.\n"},"weight":{"type":"string","description":"The weight of the origin server.\n"}},"type":"object"}},"alicloud:vod/editingProject:EditingProject":{"description":"Provides a VOD Editing Project resource.\n\nFor information about VOD Editing Project and how to use it, see [What is Editing Project](https://www.alibabacloud.com/help/en/apsaravideo-for-vod/latest/addeditingproject#doc-api-vod-AddEditingProject).\n\n\u003e **NOTE:** Available since v1.187.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst example = new alicloud.vod.EditingProject(\"example\", {\n    editingProjectName: name,\n    title: name,\n    timeline: `  {\n    \\\\\"VideoTracks\\\\\":[\n      {\n        \\\\\"VideoTrackClips\\\\\":[\n          {\n          \\\\\"MediaId\\\\\":\\\\\"0c60e6f02dae71edbfaa472190a90102\\\\\",\n          \\\\\"In\\\\\":2811\n          }\n        ]\n      }\n    ]\n  }\n`,\n    coverUrl: \"https://demo.aliyundoc.com/6AB4D0E1E1C74468883516C2349D1FC2-6-2.png\",\n    division: _default.then(_default =\u003e _default.regions?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\ndefault = alicloud.get_regions(current=True)\nexample = alicloud.vod.EditingProject(\"example\",\n    editing_project_name=name,\n    title=name,\n    timeline=\"\"\"  {\n    \\\"VideoTracks\\\":[\n      {\n        \\\"VideoTrackClips\\\":[\n          {\n          \\\"MediaId\\\":\\\"0c60e6f02dae71edbfaa472190a90102\\\",\n          \\\"In\\\":2811\n          }\n        ]\n      }\n    ]\n  }\n\"\"\",\n    cover_url=\"https://demo.aliyundoc.com/6AB4D0E1E1C74468883516C2349D1FC2-6-2.png\",\n    division=default.regions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var example = new AliCloud.Vod.EditingProject(\"example\", new()\n    {\n        EditingProjectName = name,\n        Title = name,\n        Timeline = @\"  {\n    \\\"\"VideoTracks\\\"\":[\n      {\n        \\\"\"VideoTrackClips\\\"\":[\n          {\n          \\\"\"MediaId\\\"\":\\\"\"0c60e6f02dae71edbfaa472190a90102\\\"\",\n          \\\"\"In\\\"\":2811\n          }\n        ]\n      }\n    ]\n  }\n\",\n        CoverUrl = \"https://demo.aliyundoc.com/6AB4D0E1E1C74468883516C2349D1FC2-6-2.png\",\n        Division = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vod\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vod.NewEditingProject(ctx, \"example\", \u0026vod.EditingProjectArgs{\n\t\t\tEditingProjectName: pulumi.String(name),\n\t\t\tTitle:              pulumi.String(name),\n\t\t\tTimeline: pulumi.String(`  {\n    \\\"VideoTracks\\\":[\n      {\n        \\\"VideoTrackClips\\\":[\n          {\n          \\\"MediaId\\\":\\\"0c60e6f02dae71edbfaa472190a90102\\\",\n          \\\"In\\\":2811\n          }\n        ]\n      }\n    ]\n  }\n`),\n\t\t\tCoverUrl: pulumi.String(\"https://demo.aliyundoc.com/6AB4D0E1E1C74468883516C2349D1FC2-6-2.png\"),\n\t\t\tDivision: pulumi.String(_default.Regions[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.vod.EditingProject;\nimport com.pulumi.alicloud.vod.EditingProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var example = new EditingProject(\"example\", EditingProjectArgs.builder()\n            .editingProjectName(name)\n            .title(name)\n            .timeline(\"\"\"\n  {\n    \\\"VideoTracks\\\":[\n      {\n        \\\"VideoTrackClips\\\":[\n          {\n          \\\"MediaId\\\":\\\"0c60e6f02dae71edbfaa472190a90102\\\",\n          \\\"In\\\":2811\n          }\n        ]\n      }\n    ]\n  }\n            \"\"\")\n            .coverUrl(\"https://demo.aliyundoc.com/6AB4D0E1E1C74468883516C2349D1FC2-6-2.png\")\n            .division(default_.regions()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\nresources:\n  example:\n    type: alicloud:vod:EditingProject\n    properties:\n      editingProjectName: ${name}\n      title: ${name}\n      timeline: |2\n          {\n            \\\"VideoTracks\\\":[\n              {\n                \\\"VideoTrackClips\\\":[\n                  {\n                  \\\"MediaId\\\":\\\"0c60e6f02dae71edbfaa472190a90102\\\",\n                  \\\"In\\\":2811\n                  }\n                ]\n              }\n            ]\n          }\n      coverUrl: https://demo.aliyundoc.com/6AB4D0E1E1C74468883516C2349D1FC2-6-2.png\n      division: ${default.regions[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVOD Editing Project can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vod/editingProject:EditingProject example \u003cid\u003e\n```\n\n","properties":{"coverUrl":{"type":"string","description":"The thumbnail URL of the online editing project. If you do not specify this parameter and the video track in the timeline has mezzanine files, the thumbnail of the first mezzanine file in the timeline is used.\n"},"division":{"type":"string","description":"The region where you want to create the online editing project.\n"},"editingProjectName":{"type":"string","description":"The description of the online editing project.\n"},"status":{"type":"string","description":"The Status of the resource.\n"},"timeline":{"type":"string","description":"The timeline of the online editing project, in JSON format. For more information about the structure, see [Timeline](https://www.alibabacloud.com/help/en/apsaravideo-for-vod/latest/basic-structures). If you do not specify this parameter, an empty timeline is created and the duration of the online editing project is zero.\n"},"title":{"type":"string","description":"The title of the online editing project.\n"}},"required":["editingProjectName","status","timeline","title"],"inputProperties":{"coverUrl":{"type":"string","description":"The thumbnail URL of the online editing project. If you do not specify this parameter and the video track in the timeline has mezzanine files, the thumbnail of the first mezzanine file in the timeline is used.\n"},"division":{"type":"string","description":"The region where you want to create the online editing project.\n"},"editingProjectName":{"type":"string","description":"The description of the online editing project.\n"},"timeline":{"type":"string","description":"The timeline of the online editing project, in JSON format. For more information about the structure, see [Timeline](https://www.alibabacloud.com/help/en/apsaravideo-for-vod/latest/basic-structures). If you do not specify this parameter, an empty timeline is created and the duration of the online editing project is zero.\n"},"title":{"type":"string","description":"The title of the online editing project.\n"}},"requiredInputs":["title"],"stateInputs":{"description":"Input properties used for looking up and filtering EditingProject resources.\n","properties":{"coverUrl":{"type":"string","description":"The thumbnail URL of the online editing project. If you do not specify this parameter and the video track in the timeline has mezzanine files, the thumbnail of the first mezzanine file in the timeline is used.\n"},"division":{"type":"string","description":"The region where you want to create the online editing project.\n"},"editingProjectName":{"type":"string","description":"The description of the online editing project.\n"},"status":{"type":"string","description":"The Status of the resource.\n"},"timeline":{"type":"string","description":"The timeline of the online editing project, in JSON format. For more information about the structure, see [Timeline](https://www.alibabacloud.com/help/en/apsaravideo-for-vod/latest/basic-structures). If you do not specify this parameter, an empty timeline is created and the duration of the online editing project is zero.\n"},"title":{"type":"string","description":"The title of the online editing project.\n"}},"type":"object"}},"alicloud:vpc/bgpGroup:BgpGroup":{"description":"Provides a Express Connect Bgp Group resource.\n\n\n\nFor information about Express Connect Bgp Group and how to use it, see [What is Bgp Group](https://www.alibabacloud.com/help/en/doc-detail/91267.html).\n\n\u003e **NOTE:** Available since v1.152.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst example = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"^preserved-NODELETING\",\n});\nconst vlanId = new random.index.Integer(\"vlan_id\", {\n    max: 2999,\n    min: 1,\n});\nconst exampleVirtualBorderRouter = new alicloud.expressconnect.VirtualBorderRouter(\"example\", {\n    localGatewayIp: \"10.0.0.1\",\n    peerGatewayIp: \"10.0.0.2\",\n    peeringSubnetMask: \"255.255.255.252\",\n    physicalConnectionId: example.then(example =\u003e example.connections?.[0]?.id),\n    virtualBorderRouterName: name,\n    vlanId: vlanId.id,\n    minRxInterval: 1000,\n    minTxInterval: 1000,\n    detectMultiplier: 10,\n});\nconst exampleBgpGroup = new alicloud.vpc.BgpGroup(\"example\", {\n    authKey: \"YourPassword+12345678\",\n    bgpGroupName: name,\n    description: name,\n    peerAsn: 1111,\n    routerId: exampleVirtualBorderRouter.id,\n    isFakeAsn: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nexample = alicloud.expressconnect.get_physical_connections(name_regex=\"^preserved-NODELETING\")\nvlan_id = random.index.Integer(\"vlan_id\",\n    max=2999,\n    min=1)\nexample_virtual_border_router = alicloud.expressconnect.VirtualBorderRouter(\"example\",\n    local_gateway_ip=\"10.0.0.1\",\n    peer_gateway_ip=\"10.0.0.2\",\n    peering_subnet_mask=\"255.255.255.252\",\n    physical_connection_id=example.connections[0].id,\n    virtual_border_router_name=name,\n    vlan_id=vlan_id[\"id\"],\n    min_rx_interval=1000,\n    min_tx_interval=1000,\n    detect_multiplier=10)\nexample_bgp_group = alicloud.vpc.BgpGroup(\"example\",\n    auth_key=\"YourPassword+12345678\",\n    bgp_group_name=name,\n    description=name,\n    peer_asn=1111,\n    router_id=example_virtual_border_router.id,\n    is_fake_asn=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var example = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"^preserved-NODELETING\",\n    });\n\n    var vlanId = new Random.Index.Integer(\"vlan_id\", new()\n    {\n        Max = 2999,\n        Min = 1,\n    });\n\n    var exampleVirtualBorderRouter = new AliCloud.ExpressConnect.VirtualBorderRouter(\"example\", new()\n    {\n        LocalGatewayIp = \"10.0.0.1\",\n        PeerGatewayIp = \"10.0.0.2\",\n        PeeringSubnetMask = \"255.255.255.252\",\n        PhysicalConnectionId = example.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Connections[0]?.Id),\n        VirtualBorderRouterName = name,\n        VlanId = vlanId.Id,\n        MinRxInterval = 1000,\n        MinTxInterval = 1000,\n        DetectMultiplier = 10,\n    });\n\n    var exampleBgpGroup = new AliCloud.Vpc.BgpGroup(\"example\", new()\n    {\n        AuthKey = \"YourPassword+12345678\",\n        BgpGroupName = name,\n        Description = name,\n        PeerAsn = 1111,\n        RouterId = exampleVirtualBorderRouter.Id,\n        IsFakeAsn = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvlanId, err := random.NewInteger(ctx, \"vlan_id\", \u0026random.IntegerArgs{\n\t\t\tMax: 2999,\n\t\t\tMin: 1,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualBorderRouter, err := expressconnect.NewVirtualBorderRouter(ctx, \"example\", \u0026expressconnect.VirtualBorderRouterArgs{\n\t\t\tLocalGatewayIp:          pulumi.String(\"10.0.0.1\"),\n\t\t\tPeerGatewayIp:           pulumi.String(\"10.0.0.2\"),\n\t\t\tPeeringSubnetMask:       pulumi.String(\"255.255.255.252\"),\n\t\t\tPhysicalConnectionId:    pulumi.String(example.Connections[0].Id),\n\t\t\tVirtualBorderRouterName: pulumi.String(name),\n\t\t\tVlanId:                  vlanId.Id,\n\t\t\tMinRxInterval:           pulumi.Int(1000),\n\t\t\tMinTxInterval:           pulumi.Int(1000),\n\t\t\tDetectMultiplier:        pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewBgpGroup(ctx, \"example\", \u0026vpc.BgpGroupArgs{\n\t\t\tAuthKey:      pulumi.String(\"YourPassword+12345678\"),\n\t\t\tBgpGroupName: pulumi.String(name),\n\t\t\tDescription:  pulumi.String(name),\n\t\t\tPeerAsn:      pulumi.Int(1111),\n\t\t\tRouterId:     exampleVirtualBorderRouter.ID(),\n\t\t\tIsFakeAsn:    pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouter;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouterArgs;\nimport com.pulumi.alicloud.vpc.BgpGroup;\nimport com.pulumi.alicloud.vpc.BgpGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var example = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"^preserved-NODELETING\")\n            .build());\n\n        var vlanId = new Integer(\"vlanId\", IntegerArgs.builder()\n            .max(2999)\n            .min(1)\n            .build());\n\n        var exampleVirtualBorderRouter = new VirtualBorderRouter(\"exampleVirtualBorderRouter\", VirtualBorderRouterArgs.builder()\n            .localGatewayIp(\"10.0.0.1\")\n            .peerGatewayIp(\"10.0.0.2\")\n            .peeringSubnetMask(\"255.255.255.252\")\n            .physicalConnectionId(example.connections()[0].id())\n            .virtualBorderRouterName(name)\n            .vlanId(vlanId.id())\n            .minRxInterval(1000)\n            .minTxInterval(1000)\n            .detectMultiplier(10)\n            .build());\n\n        var exampleBgpGroup = new BgpGroup(\"exampleBgpGroup\", BgpGroupArgs.builder()\n            .authKey(\"YourPassword+12345678\")\n            .bgpGroupName(name)\n            .description(name)\n            .peerAsn(1111)\n            .routerId(exampleVirtualBorderRouter.id())\n            .isFakeAsn(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  vlanId:\n    type: random:Integer\n    name: vlan_id\n    properties:\n      max: 2999\n      min: 1\n  exampleVirtualBorderRouter:\n    type: alicloud:expressconnect:VirtualBorderRouter\n    name: example\n    properties:\n      localGatewayIp: 10.0.0.1\n      peerGatewayIp: 10.0.0.2\n      peeringSubnetMask: 255.255.255.252\n      physicalConnectionId: ${example.connections[0].id}\n      virtualBorderRouterName: ${name}\n      vlanId: ${vlanId.id}\n      minRxInterval: 1000\n      minTxInterval: 1000\n      detectMultiplier: 10\n  exampleBgpGroup:\n    type: alicloud:vpc:BgpGroup\n    name: example\n    properties:\n      authKey: YourPassword+12345678\n      bgpGroupName: ${name}\n      description: ${name}\n      peerAsn: 1111\n      routerId: ${exampleVirtualBorderRouter.id}\n      isFakeAsn: true\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: ^preserved-NODELETING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Bgp Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/bgpGroup:BgpGroup example \u003cid\u003e\n```\n\n","properties":{"authKey":{"type":"string","description":"The authentication key of the BGP group.\n"},"bgpGroupName":{"type":"string","description":"The name of the BGP group. The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.\n"},"clearAuthKey":{"type":"boolean","description":"Specifies whether to clear the secret key. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The description of the BGP group. The description must be 2 to 256 characters in length. It must start with a letter and cannot start with `http://` or `https://`.\n"},"ipVersion":{"type":"string","description":"The IP version. Valid values:\n- `IPv4`: This is the default value.\n- `IPv6`: IPv6 is supported only if the VBR for which you want to create the BGP group has IPv6 enabled.\n"},"isFakeAsn":{"type":"boolean","description":"Specifies whether to use a fake AS number. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n\u003e **NOTE:** Note A router that runs BGP typically belongs to only one AS. If you need to replace an AS with a new one, but you cannot immediately modify BGP configurations due to business requirements, you can specify a fake AS number to establish a connection with the local end. This ensures service continuity in scenarios such as AS migration or AS merging.\n"},"localAsn":{"type":"integer","description":"The custom ASN on the Alibaba Cloud side. Valid values:\n"},"peerAsn":{"type":"integer","description":"The ASN of the gateway device in the data center.\n"},"regionId":{"type":"string","description":"The Region ID of the BGP group.\n"},"routeLimit":{"type":"integer","description":"The maximum number of routes supported by a BGP peer. Default value: 110.\n"},"routerId":{"type":"string","description":"The ID of the virtual border router (VBR) that is associated with the BGP group.\n"},"status":{"type":"string","description":"The status of the resource\n"}},"required":["ipVersion","isFakeAsn","localAsn","peerAsn","regionId","routeLimit","routerId","status"],"inputProperties":{"authKey":{"type":"string","description":"The authentication key of the BGP group.\n"},"bgpGroupName":{"type":"string","description":"The name of the BGP group. The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.\n"},"clearAuthKey":{"type":"boolean","description":"Specifies whether to clear the secret key. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The description of the BGP group. The description must be 2 to 256 characters in length. It must start with a letter and cannot start with `http://` or `https://`.\n"},"ipVersion":{"type":"string","description":"The IP version. Valid values:\n- `IPv4`: This is the default value.\n- `IPv6`: IPv6 is supported only if the VBR for which you want to create the BGP group has IPv6 enabled.\n","willReplaceOnChanges":true},"isFakeAsn":{"type":"boolean","description":"Specifies whether to use a fake AS number. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n\u003e **NOTE:** Note A router that runs BGP typically belongs to only one AS. If you need to replace an AS with a new one, but you cannot immediately modify BGP configurations due to business requirements, you can specify a fake AS number to establish a connection with the local end. This ensures service continuity in scenarios such as AS migration or AS merging.\n"},"localAsn":{"type":"integer","description":"The custom ASN on the Alibaba Cloud side. Valid values:\n"},"peerAsn":{"type":"integer","description":"The ASN of the gateway device in the data center.\n"},"routeLimit":{"type":"integer","description":"The maximum number of routes supported by a BGP peer. Default value: 110.\n"},"routerId":{"type":"string","description":"The ID of the virtual border router (VBR) that is associated with the BGP group.\n","willReplaceOnChanges":true}},"requiredInputs":["peerAsn","routerId"],"stateInputs":{"description":"Input properties used for looking up and filtering BgpGroup resources.\n","properties":{"authKey":{"type":"string","description":"The authentication key of the BGP group.\n"},"bgpGroupName":{"type":"string","description":"The name of the BGP group. The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.\n"},"clearAuthKey":{"type":"boolean","description":"Specifies whether to clear the secret key. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"description":{"type":"string","description":"The description of the BGP group. The description must be 2 to 256 characters in length. It must start with a letter and cannot start with `http://` or `https://`.\n"},"ipVersion":{"type":"string","description":"The IP version. Valid values:\n- `IPv4`: This is the default value.\n- `IPv6`: IPv6 is supported only if the VBR for which you want to create the BGP group has IPv6 enabled.\n","willReplaceOnChanges":true},"isFakeAsn":{"type":"boolean","description":"Specifies whether to use a fake AS number. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n\u003e **NOTE:** Note A router that runs BGP typically belongs to only one AS. If you need to replace an AS with a new one, but you cannot immediately modify BGP configurations due to business requirements, you can specify a fake AS number to establish a connection with the local end. This ensures service continuity in scenarios such as AS migration or AS merging.\n"},"localAsn":{"type":"integer","description":"The custom ASN on the Alibaba Cloud side. Valid values:\n"},"peerAsn":{"type":"integer","description":"The ASN of the gateway device in the data center.\n"},"regionId":{"type":"string","description":"The Region ID of the BGP group.\n"},"routeLimit":{"type":"integer","description":"The maximum number of routes supported by a BGP peer. Default value: 110.\n"},"routerId":{"type":"string","description":"The ID of the virtual border router (VBR) that is associated with the BGP group.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object"}},"alicloud:vpc/bgpNetwork:BgpNetwork":{"description":"Provides a Express Connect Bgp Network resource.\n\n\n\nFor information about Express Connect Bgp Network and how to use it, see [What is Bgp Network](https://www.alibabacloud.com/help/en/express-connect/developer-reference/api-vpc-2016-04-28-addbgpnetwork-express-connect).\n\n\u003e **NOTE:** Available since v1.153.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"^preserved-NODELETING\",\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 1,\n    max: 2999,\n});\nconst defaultVirtualBorderRouter = new alicloud.expressconnect.VirtualBorderRouter(\"default\", {\n    localGatewayIp: \"10.0.0.1\",\n    peerGatewayIp: \"10.0.0.2\",\n    peeringSubnetMask: \"255.255.255.252\",\n    physicalConnectionId: _default.then(_default =\u003e _default.connections?.[0]?.id),\n    virtualBorderRouterName: name,\n    vlanId: defaultInteger.id,\n    minRxInterval: 1000,\n    minTxInterval: 1000,\n    detectMultiplier: 10,\n});\nconst defaultBgpNetwork = new alicloud.vpc.BgpNetwork(\"default\", {\n    dstCidrBlock: \"192.168.0.0/24\",\n    routerId: defaultVirtualBorderRouter.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.expressconnect.get_physical_connections(name_regex=\"^preserved-NODELETING\")\ndefault_integer = random.index.Integer(\"default\",\n    min=1,\n    max=2999)\ndefault_virtual_border_router = alicloud.expressconnect.VirtualBorderRouter(\"default\",\n    local_gateway_ip=\"10.0.0.1\",\n    peer_gateway_ip=\"10.0.0.2\",\n    peering_subnet_mask=\"255.255.255.252\",\n    physical_connection_id=default.connections[0].id,\n    virtual_border_router_name=name,\n    vlan_id=default_integer[\"id\"],\n    min_rx_interval=1000,\n    min_tx_interval=1000,\n    detect_multiplier=10)\ndefault_bgp_network = alicloud.vpc.BgpNetwork(\"default\",\n    dst_cidr_block=\"192.168.0.0/24\",\n    router_id=default_virtual_border_router.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"^preserved-NODELETING\",\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 1,\n        Max = 2999,\n    });\n\n    var defaultVirtualBorderRouter = new AliCloud.ExpressConnect.VirtualBorderRouter(\"default\", new()\n    {\n        LocalGatewayIp = \"10.0.0.1\",\n        PeerGatewayIp = \"10.0.0.2\",\n        PeeringSubnetMask = \"255.255.255.252\",\n        PhysicalConnectionId = @default.Apply(@default =\u003e @default.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Connections[0]?.Id)),\n        VirtualBorderRouterName = name,\n        VlanId = defaultInteger.Id,\n        MinRxInterval = 1000,\n        MinTxInterval = 1000,\n        DetectMultiplier = 10,\n    });\n\n    var defaultBgpNetwork = new AliCloud.Vpc.BgpNetwork(\"default\", new()\n    {\n        DstCidrBlock = \"192.168.0.0/24\",\n        RouterId = defaultVirtualBorderRouter.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 1,\n\t\t\tMax: 2999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVirtualBorderRouter, err := expressconnect.NewVirtualBorderRouter(ctx, \"default\", \u0026expressconnect.VirtualBorderRouterArgs{\n\t\t\tLocalGatewayIp:          pulumi.String(\"10.0.0.1\"),\n\t\t\tPeerGatewayIp:           pulumi.String(\"10.0.0.2\"),\n\t\t\tPeeringSubnetMask:       pulumi.String(\"255.255.255.252\"),\n\t\t\tPhysicalConnectionId:    pulumi.String(_default.Connections[0].Id),\n\t\t\tVirtualBorderRouterName: pulumi.String(name),\n\t\t\tVlanId:                  defaultInteger.Id,\n\t\t\tMinRxInterval:           pulumi.Int(1000),\n\t\t\tMinTxInterval:           pulumi.Int(1000),\n\t\t\tDetectMultiplier:        pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewBgpNetwork(ctx, \"default\", \u0026vpc.BgpNetworkArgs{\n\t\t\tDstCidrBlock: pulumi.String(\"192.168.0.0/24\"),\n\t\t\tRouterId:     defaultVirtualBorderRouter.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouter;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouterArgs;\nimport com.pulumi.alicloud.vpc.BgpNetwork;\nimport com.pulumi.alicloud.vpc.BgpNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"^preserved-NODELETING\")\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(1)\n            .max(2999)\n            .build());\n\n        var defaultVirtualBorderRouter = new VirtualBorderRouter(\"defaultVirtualBorderRouter\", VirtualBorderRouterArgs.builder()\n            .localGatewayIp(\"10.0.0.1\")\n            .peerGatewayIp(\"10.0.0.2\")\n            .peeringSubnetMask(\"255.255.255.252\")\n            .physicalConnectionId(default_.connections()[0].id())\n            .virtualBorderRouterName(name)\n            .vlanId(defaultInteger.id())\n            .minRxInterval(1000)\n            .minTxInterval(1000)\n            .detectMultiplier(10)\n            .build());\n\n        var defaultBgpNetwork = new BgpNetwork(\"defaultBgpNetwork\", BgpNetworkArgs.builder()\n            .dstCidrBlock(\"192.168.0.0/24\")\n            .routerId(defaultVirtualBorderRouter.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 1\n      max: 2999\n  defaultVirtualBorderRouter:\n    type: alicloud:expressconnect:VirtualBorderRouter\n    name: default\n    properties:\n      localGatewayIp: 10.0.0.1\n      peerGatewayIp: 10.0.0.2\n      peeringSubnetMask: 255.255.255.252\n      physicalConnectionId: ${default.connections[0].id}\n      virtualBorderRouterName: ${name}\n      vlanId: ${defaultInteger.id}\n      minRxInterval: 1000\n      minTxInterval: 1000\n      detectMultiplier: 10\n  defaultBgpNetwork:\n    type: alicloud:vpc:BgpNetwork\n    name: default\n    properties:\n      dstCidrBlock: 192.168.0.0/24\n      routerId: ${defaultVirtualBorderRouter.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: ^preserved-NODELETING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Bgp Network can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/bgpNetwork:BgpNetwork example \u003crouter_id\u003e:\u003cdst_cidr_block\u003e\n```\n\n","properties":{"dstCidrBlock":{"type":"string","description":"The CIDR block of the virtual private cloud (VPC) or vSwitch that you want to connect to a data center.\n"},"routerId":{"type":"string","description":"The region ID of the virtual border router (VBR) group.\n"},"status":{"type":"string","description":"The state of the advertised BGP network.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"}},"required":["dstCidrBlock","routerId","status"],"inputProperties":{"dstCidrBlock":{"type":"string","description":"The CIDR block of the virtual private cloud (VPC) or vSwitch that you want to connect to a data center.\n","willReplaceOnChanges":true},"routerId":{"type":"string","description":"The region ID of the virtual border router (VBR) group.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the VPC.\n","willReplaceOnChanges":true}},"requiredInputs":["dstCidrBlock","routerId"],"stateInputs":{"description":"Input properties used for looking up and filtering BgpNetwork resources.\n","properties":{"dstCidrBlock":{"type":"string","description":"The CIDR block of the virtual private cloud (VPC) or vSwitch that you want to connect to a data center.\n","willReplaceOnChanges":true},"routerId":{"type":"string","description":"The region ID of the virtual border router (VBR) group.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The state of the advertised BGP network.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/bgpPeer:BgpPeer":{"description":"Provides a Express Connect Bgp Peer resource. \n\nFor information about VPC Bgp Peer and how to use it, see [What is Bgp Peer](https://www.alibabacloud.com/help/en/doc-detail/91267.html).\n\n\u003e **NOTE:** Available since v1.153.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst example = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"^preserved-NODELETING\",\n});\nconst vlanId = new random.index.Integer(\"vlan_id\", {\n    max: 2999,\n    min: 1,\n});\nconst exampleVirtualBorderRouter = new alicloud.expressconnect.VirtualBorderRouter(\"example\", {\n    localGatewayIp: \"10.0.0.1\",\n    peerGatewayIp: \"10.0.0.2\",\n    peeringSubnetMask: \"255.255.255.252\",\n    physicalConnectionId: example.then(example =\u003e example.connections?.[0]?.id),\n    virtualBorderRouterName: name,\n    vlanId: vlanId.id,\n    minRxInterval: 1000,\n    minTxInterval: 1000,\n    detectMultiplier: 10,\n});\nconst exampleBgpGroup = new alicloud.vpc.BgpGroup(\"example\", {\n    authKey: \"YourPassword+12345678\",\n    bgpGroupName: name,\n    description: name,\n    peerAsn: 1111,\n    routerId: exampleVirtualBorderRouter.id,\n    isFakeAsn: true,\n});\nconst exampleBgpPeer = new alicloud.vpc.BgpPeer(\"example\", {\n    bfdMultiHop: 10,\n    bgpGroupId: exampleBgpGroup.id,\n    enableBfd: true,\n    ipVersion: \"IPV4\",\n    peerIpAddress: \"1.1.1.1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nexample = alicloud.expressconnect.get_physical_connections(name_regex=\"^preserved-NODELETING\")\nvlan_id = random.index.Integer(\"vlan_id\",\n    max=2999,\n    min=1)\nexample_virtual_border_router = alicloud.expressconnect.VirtualBorderRouter(\"example\",\n    local_gateway_ip=\"10.0.0.1\",\n    peer_gateway_ip=\"10.0.0.2\",\n    peering_subnet_mask=\"255.255.255.252\",\n    physical_connection_id=example.connections[0].id,\n    virtual_border_router_name=name,\n    vlan_id=vlan_id[\"id\"],\n    min_rx_interval=1000,\n    min_tx_interval=1000,\n    detect_multiplier=10)\nexample_bgp_group = alicloud.vpc.BgpGroup(\"example\",\n    auth_key=\"YourPassword+12345678\",\n    bgp_group_name=name,\n    description=name,\n    peer_asn=1111,\n    router_id=example_virtual_border_router.id,\n    is_fake_asn=True)\nexample_bgp_peer = alicloud.vpc.BgpPeer(\"example\",\n    bfd_multi_hop=10,\n    bgp_group_id=example_bgp_group.id,\n    enable_bfd=True,\n    ip_version=\"IPV4\",\n    peer_ip_address=\"1.1.1.1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var example = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"^preserved-NODELETING\",\n    });\n\n    var vlanId = new Random.Index.Integer(\"vlan_id\", new()\n    {\n        Max = 2999,\n        Min = 1,\n    });\n\n    var exampleVirtualBorderRouter = new AliCloud.ExpressConnect.VirtualBorderRouter(\"example\", new()\n    {\n        LocalGatewayIp = \"10.0.0.1\",\n        PeerGatewayIp = \"10.0.0.2\",\n        PeeringSubnetMask = \"255.255.255.252\",\n        PhysicalConnectionId = example.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Connections[0]?.Id),\n        VirtualBorderRouterName = name,\n        VlanId = vlanId.Id,\n        MinRxInterval = 1000,\n        MinTxInterval = 1000,\n        DetectMultiplier = 10,\n    });\n\n    var exampleBgpGroup = new AliCloud.Vpc.BgpGroup(\"example\", new()\n    {\n        AuthKey = \"YourPassword+12345678\",\n        BgpGroupName = name,\n        Description = name,\n        PeerAsn = 1111,\n        RouterId = exampleVirtualBorderRouter.Id,\n        IsFakeAsn = true,\n    });\n\n    var exampleBgpPeer = new AliCloud.Vpc.BgpPeer(\"example\", new()\n    {\n        BfdMultiHop = 10,\n        BgpGroupId = exampleBgpGroup.Id,\n        EnableBfd = true,\n        IpVersion = \"IPV4\",\n        PeerIpAddress = \"1.1.1.1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvlanId, err := random.NewInteger(ctx, \"vlan_id\", \u0026random.IntegerArgs{\n\t\t\tMax: 2999,\n\t\t\tMin: 1,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualBorderRouter, err := expressconnect.NewVirtualBorderRouter(ctx, \"example\", \u0026expressconnect.VirtualBorderRouterArgs{\n\t\t\tLocalGatewayIp:          pulumi.String(\"10.0.0.1\"),\n\t\t\tPeerGatewayIp:           pulumi.String(\"10.0.0.2\"),\n\t\t\tPeeringSubnetMask:       pulumi.String(\"255.255.255.252\"),\n\t\t\tPhysicalConnectionId:    pulumi.String(example.Connections[0].Id),\n\t\t\tVirtualBorderRouterName: pulumi.String(name),\n\t\t\tVlanId:                  vlanId.Id,\n\t\t\tMinRxInterval:           pulumi.Int(1000),\n\t\t\tMinTxInterval:           pulumi.Int(1000),\n\t\t\tDetectMultiplier:        pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBgpGroup, err := vpc.NewBgpGroup(ctx, \"example\", \u0026vpc.BgpGroupArgs{\n\t\t\tAuthKey:      pulumi.String(\"YourPassword+12345678\"),\n\t\t\tBgpGroupName: pulumi.String(name),\n\t\t\tDescription:  pulumi.String(name),\n\t\t\tPeerAsn:      pulumi.Int(1111),\n\t\t\tRouterId:     exampleVirtualBorderRouter.ID(),\n\t\t\tIsFakeAsn:    pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewBgpPeer(ctx, \"example\", \u0026vpc.BgpPeerArgs{\n\t\t\tBfdMultiHop:   pulumi.Int(10),\n\t\t\tBgpGroupId:    exampleBgpGroup.ID(),\n\t\t\tEnableBfd:     pulumi.Bool(true),\n\t\t\tIpVersion:     pulumi.String(\"IPV4\"),\n\t\t\tPeerIpAddress: pulumi.String(\"1.1.1.1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouter;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouterArgs;\nimport com.pulumi.alicloud.vpc.BgpGroup;\nimport com.pulumi.alicloud.vpc.BgpGroupArgs;\nimport com.pulumi.alicloud.vpc.BgpPeer;\nimport com.pulumi.alicloud.vpc.BgpPeerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var example = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"^preserved-NODELETING\")\n            .build());\n\n        var vlanId = new Integer(\"vlanId\", IntegerArgs.builder()\n            .max(2999)\n            .min(1)\n            .build());\n\n        var exampleVirtualBorderRouter = new VirtualBorderRouter(\"exampleVirtualBorderRouter\", VirtualBorderRouterArgs.builder()\n            .localGatewayIp(\"10.0.0.1\")\n            .peerGatewayIp(\"10.0.0.2\")\n            .peeringSubnetMask(\"255.255.255.252\")\n            .physicalConnectionId(example.connections()[0].id())\n            .virtualBorderRouterName(name)\n            .vlanId(vlanId.id())\n            .minRxInterval(1000)\n            .minTxInterval(1000)\n            .detectMultiplier(10)\n            .build());\n\n        var exampleBgpGroup = new BgpGroup(\"exampleBgpGroup\", BgpGroupArgs.builder()\n            .authKey(\"YourPassword+12345678\")\n            .bgpGroupName(name)\n            .description(name)\n            .peerAsn(1111)\n            .routerId(exampleVirtualBorderRouter.id())\n            .isFakeAsn(true)\n            .build());\n\n        var exampleBgpPeer = new BgpPeer(\"exampleBgpPeer\", BgpPeerArgs.builder()\n            .bfdMultiHop(10)\n            .bgpGroupId(exampleBgpGroup.id())\n            .enableBfd(true)\n            .ipVersion(\"IPV4\")\n            .peerIpAddress(\"1.1.1.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  vlanId:\n    type: random:Integer\n    name: vlan_id\n    properties:\n      max: 2999\n      min: 1\n  exampleVirtualBorderRouter:\n    type: alicloud:expressconnect:VirtualBorderRouter\n    name: example\n    properties:\n      localGatewayIp: 10.0.0.1\n      peerGatewayIp: 10.0.0.2\n      peeringSubnetMask: 255.255.255.252\n      physicalConnectionId: ${example.connections[0].id}\n      virtualBorderRouterName: ${name}\n      vlanId: ${vlanId.id}\n      minRxInterval: 1000\n      minTxInterval: 1000\n      detectMultiplier: 10\n  exampleBgpGroup:\n    type: alicloud:vpc:BgpGroup\n    name: example\n    properties:\n      authKey: YourPassword+12345678\n      bgpGroupName: ${name}\n      description: ${name}\n      peerAsn: 1111\n      routerId: ${exampleVirtualBorderRouter.id}\n      isFakeAsn: true\n  exampleBgpPeer:\n    type: alicloud:vpc:BgpPeer\n    name: example\n    properties:\n      bfdMultiHop: '10'\n      bgpGroupId: ${exampleBgpGroup.id}\n      enableBfd: true\n      ipVersion: IPV4\n      peerIpAddress: 1.1.1.1\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: ^preserved-NODELETING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Bgp Peer can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/bgpPeer:BgpPeer example \u003cid\u003e\n```\n\n","properties":{"bfdMultiHop":{"type":"integer","description":"The BFD hop count. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e. **NOTE:** The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`enableBfd`\" pulumi-lang-dotnet=\"`EnableBfd`\" pulumi-lang-go=\"`enableBfd`\" pulumi-lang-python=\"`enable_bfd`\" pulumi-lang-yaml=\"`enableBfd`\" pulumi-lang-java=\"`enableBfd`\"\u003e`enable_bfd`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. The parameter specifies the maximum number of network devices that a packet can traverse from the source to the destination. You can set a proper value based on the factors that affect the physical connection.\n"},"bgpGroupId":{"type":"string","description":"The ID of the BGP group.\n"},"bgpPeerName":{"type":"string","description":"The name of the BGP neighbor.\n"},"enableBfd":{"type":"boolean","description":"Specifies whether to enable the Bidirectional Forwarding Detection (BFD) feature.\n"},"ipVersion":{"type":"string","description":"The IP version.\n"},"peerIpAddress":{"type":"string","description":"The IP address of the BGP peer.\n"},"status":{"type":"string","description":"Status of BGP neighbors.\n"}},"required":["bgpGroupId","bgpPeerName","ipVersion","peerIpAddress","status"],"inputProperties":{"bfdMultiHop":{"type":"integer","description":"The BFD hop count. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e. **NOTE:** The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`enableBfd`\" pulumi-lang-dotnet=\"`EnableBfd`\" pulumi-lang-go=\"`enableBfd`\" pulumi-lang-python=\"`enable_bfd`\" pulumi-lang-yaml=\"`enableBfd`\" pulumi-lang-java=\"`enableBfd`\"\u003e`enable_bfd`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. The parameter specifies the maximum number of network devices that a packet can traverse from the source to the destination. You can set a proper value based on the factors that affect the physical connection.\n"},"bgpGroupId":{"type":"string","description":"The ID of the BGP group.\n","willReplaceOnChanges":true},"enableBfd":{"type":"boolean","description":"Specifies whether to enable the Bidirectional Forwarding Detection (BFD) feature.\n"},"ipVersion":{"type":"string","description":"The IP version.\n","willReplaceOnChanges":true},"peerIpAddress":{"type":"string","description":"The IP address of the BGP peer.\n"}},"requiredInputs":["bgpGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering BgpPeer resources.\n","properties":{"bfdMultiHop":{"type":"integer","description":"The BFD hop count. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e. **NOTE:** The attribute is valid when the attribute \u003cspan pulumi-lang-nodejs=\"`enableBfd`\" pulumi-lang-dotnet=\"`EnableBfd`\" pulumi-lang-go=\"`enableBfd`\" pulumi-lang-python=\"`enable_bfd`\" pulumi-lang-yaml=\"`enableBfd`\" pulumi-lang-java=\"`enableBfd`\"\u003e`enable_bfd`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. The parameter specifies the maximum number of network devices that a packet can traverse from the source to the destination. You can set a proper value based on the factors that affect the physical connection.\n"},"bgpGroupId":{"type":"string","description":"The ID of the BGP group.\n","willReplaceOnChanges":true},"bgpPeerName":{"type":"string","description":"The name of the BGP neighbor.\n"},"enableBfd":{"type":"boolean","description":"Specifies whether to enable the Bidirectional Forwarding Detection (BFD) feature.\n"},"ipVersion":{"type":"string","description":"The IP version.\n","willReplaceOnChanges":true},"peerIpAddress":{"type":"string","description":"The IP address of the BGP peer.\n"},"status":{"type":"string","description":"Status of BGP neighbors.\n"}},"type":"object"}},"alicloud:vpc/commonBandwithPackage:CommonBandwithPackage":{"description":"Provides a EIP Bandwidth Plan (CBWP) Common Bandwidth Package resource.\n\n\u003e **NOTE:** Terraform will auto build common bandwidth package instance while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.CommonBandwithPackage`\" pulumi-lang-dotnet=\"`alicloud.vpc.CommonBandwithPackage`\" pulumi-lang-go=\"`vpc.CommonBandwithPackage`\" pulumi-lang-python=\"`vpc.CommonBandwithPackage`\" pulumi-lang-yaml=\"`alicloud.vpc.CommonBandwithPackage`\" pulumi-lang-java=\"`alicloud.vpc.CommonBandwithPackage`\"\u003e`alicloud.vpc.CommonBandwithPackage`\u003c/span\u003e to build a common bandwidth package resource.\n\nFor additional details, see the documentation[https://help.aliyun.com/zh/internet-shared-bandwidth/user-guide/internet-shared-bandwidth-overview?spm=a2c4g.11186623.help-menu-55092.d_1_0.492c69ffKLbVqS].\n\nFor information about EIP Bandwidth Plan (CBWP) Common Bandwidth Package and how to use it, see [What is Common Bandwidth Package](https://www.alibabacloud.com/help/en/eip-bandwidth-plan).\n\n\u003e **NOTE:** Available since v1.23.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultCommonBandwithPackage = new alicloud.vpc.CommonBandwithPackage(\"default\", {\n    bandwidthPackageName: name,\n    description: name,\n    isp: \"BGP\",\n    bandwidth: \"1000\",\n    ratio: 100,\n    internetChargeType: \"PayByBandwidth\",\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    securityProtectionTypes: [\"AntiDDoS_Enhanced\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_common_bandwith_package = alicloud.vpc.CommonBandwithPackage(\"default\",\n    bandwidth_package_name=name,\n    description=name,\n    isp=\"BGP\",\n    bandwidth=\"1000\",\n    ratio=100,\n    internet_charge_type=\"PayByBandwidth\",\n    resource_group_id=default.ids[0],\n    security_protection_types=[\"AntiDDoS_Enhanced\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultCommonBandwithPackage = new AliCloud.Vpc.CommonBandwithPackage(\"default\", new()\n    {\n        BandwidthPackageName = name,\n        Description = name,\n        Isp = \"BGP\",\n        Bandwidth = \"1000\",\n        Ratio = 100,\n        InternetChargeType = \"PayByBandwidth\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        SecurityProtectionTypes = new[]\n        {\n            \"AntiDDoS_Enhanced\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewCommonBandwithPackage(ctx, \"default\", \u0026vpc.CommonBandwithPackageArgs{\n\t\t\tBandwidthPackageName: pulumi.String(name),\n\t\t\tDescription:          pulumi.String(name),\n\t\t\tIsp:                  pulumi.String(\"BGP\"),\n\t\t\tBandwidth:            pulumi.String(\"1000\"),\n\t\t\tRatio:                pulumi.Int(100),\n\t\t\tInternetChargeType:   pulumi.String(\"PayByBandwidth\"),\n\t\t\tResourceGroupId:      pulumi.String(_default.Ids[0]),\n\t\t\tSecurityProtectionTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"AntiDDoS_Enhanced\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.CommonBandwithPackage;\nimport com.pulumi.alicloud.vpc.CommonBandwithPackageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var defaultCommonBandwithPackage = new CommonBandwithPackage(\"defaultCommonBandwithPackage\", CommonBandwithPackageArgs.builder()\n            .bandwidthPackageName(name)\n            .description(name)\n            .isp(\"BGP\")\n            .bandwidth(\"1000\")\n            .ratio(100)\n            .internetChargeType(\"PayByBandwidth\")\n            .resourceGroupId(default_.ids()[0])\n            .securityProtectionTypes(\"AntiDDoS_Enhanced\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultCommonBandwithPackage:\n    type: alicloud:vpc:CommonBandwithPackage\n    name: default\n    properties:\n      bandwidthPackageName: ${name}\n      description: ${name}\n      isp: BGP\n      bandwidth: '1000'\n      ratio: 100\n      internetChargeType: PayByBandwidth\n      resourceGroupId: ${default.ids[0]}\n      securityProtectionTypes:\n        - AntiDDoS_Enhanced\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.CommonBandwithPackage`\" pulumi-lang-dotnet=\"`alicloud.vpc.CommonBandwithPackage`\" pulumi-lang-go=\"`vpc.CommonBandwithPackage`\" pulumi-lang-python=\"`vpc.CommonBandwithPackage`\" pulumi-lang-yaml=\"`alicloud.vpc.CommonBandwithPackage`\" pulumi-lang-java=\"`alicloud.vpc.CommonBandwithPackage`\"\u003e`alicloud.vpc.CommonBandwithPackage`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.CommonBandwithPackage`\" pulumi-lang-dotnet=\"`alicloud.vpc.CommonBandwithPackage`\" pulumi-lang-go=\"`vpc.CommonBandwithPackage`\" pulumi-lang-python=\"`vpc.CommonBandwithPackage`\" pulumi-lang-yaml=\"`alicloud.vpc.CommonBandwithPackage`\" pulumi-lang-java=\"`alicloud.vpc.CommonBandwithPackage`\"\u003e`alicloud.vpc.CommonBandwithPackage`\u003c/span\u003e resource allows you to manage  \u003cspan pulumi-lang-nodejs=\"`internetChargeType \" pulumi-lang-dotnet=\"`InternetChargeType \" pulumi-lang-go=\"`internetChargeType \" pulumi-lang-python=\"`internet_charge_type \" pulumi-lang-yaml=\"`internetChargeType \" pulumi-lang-java=\"`internetChargeType \"\u003e`internet_charge_type \u003c/span\u003e= \"PayBy95\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEIP Bandwidth Plan (CBWP) Common Bandwidth Package can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/commonBandwithPackage:CommonBandwithPackage example \u003cid\u003e\n```\n\n","properties":{"bandwidth":{"type":"string","description":"The maximum bandwidth of the Internet Shared Bandwidth instance. Unit: Mbit/s.\nValid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"bandwidthPackageName":{"type":"string","description":"The description of the EIP bandwidth plan. The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.\n"},"createTime":{"type":"string","description":"The creation time.\n"},"deletionProtection":{"type":"boolean","description":"Specifies whether to enable deletion protection. Valid values:\n"},"description":{"type":"string","description":"The description of the Internet Shared Bandwidth instance.\nThe description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.\n"},"force":{"type":"string","description":"Specifies whether to forcefully delete the Internet Shared Bandwidth instance. Valid values:\n"},"internetChargeType":{"type":"string","description":"Billing method of Internet Shared Bandwidth. Valid values:\n`PayByTraffic`: billed by primary traffic.\n\n- `PayByBandwidth` (default): Billing by bandwidth.\n- `PayBy95`: Billed as Enhanced 95.\n- `PayByDominantTraffic`: billed by primary traffic.\n"},"isp":{"type":"string","description":"The line type. Valid values:\n\n- `BGP` (default) All regions support BGP (Multi-ISP).\n- `BGP_PRO` BGP (Multi-ISP) Pro lines are available in the China (Hong Kong), Singapore, Japan (Tokyo), Philippines (Manila), Malaysia (Kuala Lumpur), Indonesia (Jakarta), and Thailand (Bangkok) regions.\n\nIf you are allowed to use single-ISP bandwidth, you can also use one of the following values:\n\n- `ChinaTelecom`\n- `ChinaUnicom`\n- `ChinaMobile`\n- `ChinaTelecom_L2`\n- `ChinaUnicom_L2`\n- `ChinaMobile_L2`\n\nIf your services are deployed in China East 1 Finance, this parameter is required and you must set the value to `BGP_FinanceCloud`.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.120.0. New field 'bandwidth_package_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.120.0. New field 'bandwidth_package_name' instead."},"paymentType":{"type":"string","description":"The billing type of the Internet Shared Bandwidth instance. Valid values: `PayAsYouGo`, `Subscription`.\n"},"ratio":{"type":"integer","description":"The percentage of the minimum bandwidth commitment. The value is only \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n\nThis parameter is required when the value of `InternetChargeType` is `PayBy95`.\n\n\u003e **NOTE:** This parameter is available only on the Alibaba Cloud China site.\n"},"regionId":{"type":"string","description":"The pagination token that is used in the next request to retrieve a new page of results.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which you want to move the resource.\n\n\u003e **NOTE:**   You can use resource groups to facilitate resource grouping and permission management for an Alibaba Cloud. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"securityProtectionTypes":{"type":"array","items":{"type":"string"},"description":"The edition of Anti-DDoS. If you do not set this parameter, Anti-DDoS Origin Basic is used. If you set the value to AntiDDoS_Enhanced, Anti-DDoS Pro(Premium) is used. It is valid when \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is `PayBy95`.\n"},"status":{"type":"string","description":"The status of the Internet Shared Bandwidth instance. Default value: `Available`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"zone":{"type":"string","description":"The zone of the Internet Shared Bandwidth instance. This parameter is required if you create an Internet Shared Bandwidth instance for a cloud box.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["bandwidth","bandwidthPackageName","createTime","isp","name","paymentType","ratio","regionId","resourceGroupId","status"],"inputProperties":{"bandwidth":{"type":"string","description":"The maximum bandwidth of the Internet Shared Bandwidth instance. Unit: Mbit/s.\nValid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"bandwidthPackageName":{"type":"string","description":"The description of the EIP bandwidth plan. The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.\n"},"deletionProtection":{"type":"boolean","description":"Specifies whether to enable deletion protection. Valid values:\n"},"description":{"type":"string","description":"The description of the Internet Shared Bandwidth instance.\nThe description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.\n"},"force":{"type":"string","description":"Specifies whether to forcefully delete the Internet Shared Bandwidth instance. Valid values:\n"},"internetChargeType":{"type":"string","description":"Billing method of Internet Shared Bandwidth. Valid values:\n`PayByTraffic`: billed by primary traffic.\n\n- `PayByBandwidth` (default): Billing by bandwidth.\n- `PayBy95`: Billed as Enhanced 95.\n- `PayByDominantTraffic`: billed by primary traffic.\n","willReplaceOnChanges":true},"isp":{"type":"string","description":"The line type. Valid values:\n\n- `BGP` (default) All regions support BGP (Multi-ISP).\n- `BGP_PRO` BGP (Multi-ISP) Pro lines are available in the China (Hong Kong), Singapore, Japan (Tokyo), Philippines (Manila), Malaysia (Kuala Lumpur), Indonesia (Jakarta), and Thailand (Bangkok) regions.\n\nIf you are allowed to use single-ISP bandwidth, you can also use one of the following values:\n\n- `ChinaTelecom`\n- `ChinaUnicom`\n- `ChinaMobile`\n- `ChinaTelecom_L2`\n- `ChinaUnicom_L2`\n- `ChinaMobile_L2`\n\nIf your services are deployed in China East 1 Finance, this parameter is required and you must set the value to `BGP_FinanceCloud`.\n","willReplaceOnChanges":true},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.120.0. New field 'bandwidth_package_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.120.0. New field 'bandwidth_package_name' instead."},"ratio":{"type":"integer","description":"The percentage of the minimum bandwidth commitment. The value is only \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n\nThis parameter is required when the value of `InternetChargeType` is `PayBy95`.\n\n\u003e **NOTE:** This parameter is available only on the Alibaba Cloud China site.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which you want to move the resource.\n\n\u003e **NOTE:**   You can use resource groups to facilitate resource grouping and permission management for an Alibaba Cloud. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"securityProtectionTypes":{"type":"array","items":{"type":"string"},"description":"The edition of Anti-DDoS. If you do not set this parameter, Anti-DDoS Origin Basic is used. If you set the value to AntiDDoS_Enhanced, Anti-DDoS Pro(Premium) is used. It is valid when \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is `PayBy95`.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"zone":{"type":"string","description":"The zone of the Internet Shared Bandwidth instance. This parameter is required if you create an Internet Shared Bandwidth instance for a cloud box.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"requiredInputs":["bandwidth"],"stateInputs":{"description":"Input properties used for looking up and filtering CommonBandwithPackage resources.\n","properties":{"bandwidth":{"type":"string","description":"The maximum bandwidth of the Internet Shared Bandwidth instance. Unit: Mbit/s.\nValid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"bandwidthPackageName":{"type":"string","description":"The description of the EIP bandwidth plan. The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.\n"},"createTime":{"type":"string","description":"The creation time.\n"},"deletionProtection":{"type":"boolean","description":"Specifies whether to enable deletion protection. Valid values:\n"},"description":{"type":"string","description":"The description of the Internet Shared Bandwidth instance.\nThe description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.\n"},"force":{"type":"string","description":"Specifies whether to forcefully delete the Internet Shared Bandwidth instance. Valid values:\n"},"internetChargeType":{"type":"string","description":"Billing method of Internet Shared Bandwidth. Valid values:\n`PayByTraffic`: billed by primary traffic.\n\n- `PayByBandwidth` (default): Billing by bandwidth.\n- `PayBy95`: Billed as Enhanced 95.\n- `PayByDominantTraffic`: billed by primary traffic.\n","willReplaceOnChanges":true},"isp":{"type":"string","description":"The line type. Valid values:\n\n- `BGP` (default) All regions support BGP (Multi-ISP).\n- `BGP_PRO` BGP (Multi-ISP) Pro lines are available in the China (Hong Kong), Singapore, Japan (Tokyo), Philippines (Manila), Malaysia (Kuala Lumpur), Indonesia (Jakarta), and Thailand (Bangkok) regions.\n\nIf you are allowed to use single-ISP bandwidth, you can also use one of the following values:\n\n- `ChinaTelecom`\n- `ChinaUnicom`\n- `ChinaMobile`\n- `ChinaTelecom_L2`\n- `ChinaUnicom_L2`\n- `ChinaMobile_L2`\n\nIf your services are deployed in China East 1 Finance, this parameter is required and you must set the value to `BGP_FinanceCloud`.\n","willReplaceOnChanges":true},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.120.0. New field 'bandwidth_package_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.120.0. New field 'bandwidth_package_name' instead."},"paymentType":{"type":"string","description":"The billing type of the Internet Shared Bandwidth instance. Valid values: `PayAsYouGo`, `Subscription`.\n"},"ratio":{"type":"integer","description":"The percentage of the minimum bandwidth commitment. The value is only \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n\nThis parameter is required when the value of `InternetChargeType` is `PayBy95`.\n\n\u003e **NOTE:** This parameter is available only on the Alibaba Cloud China site.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The pagination token that is used in the next request to retrieve a new page of results.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which you want to move the resource.\n\n\u003e **NOTE:**   You can use resource groups to facilitate resource grouping and permission management for an Alibaba Cloud. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"securityProtectionTypes":{"type":"array","items":{"type":"string"},"description":"The edition of Anti-DDoS. If you do not set this parameter, Anti-DDoS Origin Basic is used. If you set the value to AntiDDoS_Enhanced, Anti-DDoS Pro(Premium) is used. It is valid when \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is `PayBy95`.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Internet Shared Bandwidth instance. Default value: `Available`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource\n"},"zone":{"type":"string","description":"The zone of the Internet Shared Bandwidth instance. This parameter is required if you create an Internet Shared Bandwidth instance for a cloud box.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"type":"object"}},"alicloud:vpc/commonBandwithPackageAttachment:CommonBandwithPackageAttachment":{"description":"Provides a CBWP Common Bandwidth Package Attachment resource. \n\n\u003e **NOTE:** Terraform will auto build common bandwidth package attachment while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.CommonBandwithPackageAttachment`\" pulumi-lang-dotnet=\"`alicloud.vpc.CommonBandwithPackageAttachment`\" pulumi-lang-go=\"`vpc.CommonBandwithPackageAttachment`\" pulumi-lang-python=\"`vpc.CommonBandwithPackageAttachment`\" pulumi-lang-yaml=\"`alicloud.vpc.CommonBandwithPackageAttachment`\" pulumi-lang-java=\"`alicloud.vpc.CommonBandwithPackageAttachment`\"\u003e`alicloud.vpc.CommonBandwithPackageAttachment`\u003c/span\u003e to build a common bandwidth package attachment resource.\n\nFor information about common bandwidth package and how to use it, see [What is Common Bandwidth Package](https://www.alibabacloud.com/help/product/55092.htm).\n\n\u003e **NOTE:** From version 1.194.0, the resource can set the maximum bandwidth of an EIP that is associated with an EIP bandwidth plan by \u003cspan pulumi-lang-nodejs=\"`bandwidthPackageBandwidth`\" pulumi-lang-dotnet=\"`BandwidthPackageBandwidth`\" pulumi-lang-go=\"`bandwidthPackageBandwidth`\" pulumi-lang-python=\"`bandwidth_package_bandwidth`\" pulumi-lang-yaml=\"`bandwidthPackageBandwidth`\" pulumi-lang-java=\"`bandwidthPackageBandwidth`\"\u003e`bandwidth_package_bandwidth`\u003c/span\u003e. see [how to use it](https://www.alibabacloud.com/help/en/eip-bandwidth-plan/latest/120327).\n\nFor information about CBWP Common Bandwidth Package Attachment and how to use it, see [What is Common Bandwidth Package Attachment](https://www.alibabacloud.com/help/product/55092.htm).\n\n\u003e **NOTE:** Available since v1.94.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.vpc.CommonBandwithPackage(\"default\", {\n    bandwidth: \"3\",\n    internetChargeType: \"PayByTraffic\",\n});\nconst defaultEipAddress = new alicloud.ecs.EipAddress(\"default\", {\n    bandwidth: \"3\",\n    internetChargeType: \"PayByTraffic\",\n});\nconst defaultCommonBandwithPackageAttachment = new alicloud.vpc.CommonBandwithPackageAttachment(\"default\", {\n    bandwidthPackageId: _default.id,\n    instanceId: defaultEipAddress.id,\n    bandwidthPackageBandwidth: \"2\",\n    ipType: \"EIP\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.vpc.CommonBandwithPackage(\"default\",\n    bandwidth=\"3\",\n    internet_charge_type=\"PayByTraffic\")\ndefault_eip_address = alicloud.ecs.EipAddress(\"default\",\n    bandwidth=\"3\",\n    internet_charge_type=\"PayByTraffic\")\ndefault_common_bandwith_package_attachment = alicloud.vpc.CommonBandwithPackageAttachment(\"default\",\n    bandwidth_package_id=default.id,\n    instance_id=default_eip_address.id,\n    bandwidth_package_bandwidth=\"2\",\n    ip_type=\"EIP\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Vpc.CommonBandwithPackage(\"default\", new()\n    {\n        Bandwidth = \"3\",\n        InternetChargeType = \"PayByTraffic\",\n    });\n\n    var defaultEipAddress = new AliCloud.Ecs.EipAddress(\"default\", new()\n    {\n        Bandwidth = \"3\",\n        InternetChargeType = \"PayByTraffic\",\n    });\n\n    var defaultCommonBandwithPackageAttachment = new AliCloud.Vpc.CommonBandwithPackageAttachment(\"default\", new()\n    {\n        BandwidthPackageId = @default.Id,\n        InstanceId = defaultEipAddress.Id,\n        BandwidthPackageBandwidth = \"2\",\n        IpType = \"EIP\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := vpc.NewCommonBandwithPackage(ctx, \"default\", \u0026vpc.CommonBandwithPackageArgs{\n\t\t\tBandwidth:          pulumi.String(\"3\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByTraffic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEipAddress, err := ecs.NewEipAddress(ctx, \"default\", \u0026ecs.EipAddressArgs{\n\t\t\tBandwidth:          pulumi.String(\"3\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByTraffic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewCommonBandwithPackageAttachment(ctx, \"default\", \u0026vpc.CommonBandwithPackageAttachmentArgs{\n\t\t\tBandwidthPackageId:        _default.ID(),\n\t\t\tInstanceId:                defaultEipAddress.ID(),\n\t\t\tBandwidthPackageBandwidth: pulumi.String(\"2\"),\n\t\t\tIpType:                    pulumi.String(\"EIP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.CommonBandwithPackage;\nimport com.pulumi.alicloud.vpc.CommonBandwithPackageArgs;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAddressArgs;\nimport com.pulumi.alicloud.vpc.CommonBandwithPackageAttachment;\nimport com.pulumi.alicloud.vpc.CommonBandwithPackageAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new CommonBandwithPackage(\"default\", CommonBandwithPackageArgs.builder()\n            .bandwidth(\"3\")\n            .internetChargeType(\"PayByTraffic\")\n            .build());\n\n        var defaultEipAddress = new EipAddress(\"defaultEipAddress\", EipAddressArgs.builder()\n            .bandwidth(\"3\")\n            .internetChargeType(\"PayByTraffic\")\n            .build());\n\n        var defaultCommonBandwithPackageAttachment = new CommonBandwithPackageAttachment(\"defaultCommonBandwithPackageAttachment\", CommonBandwithPackageAttachmentArgs.builder()\n            .bandwidthPackageId(default_.id())\n            .instanceId(defaultEipAddress.id())\n            .bandwidthPackageBandwidth(\"2\")\n            .ipType(\"EIP\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:vpc:CommonBandwithPackage\n    properties:\n      bandwidth: 3\n      internetChargeType: PayByTraffic\n  defaultEipAddress:\n    type: alicloud:ecs:EipAddress\n    name: default\n    properties:\n      bandwidth: '3'\n      internetChargeType: PayByTraffic\n  defaultCommonBandwithPackageAttachment:\n    type: alicloud:vpc:CommonBandwithPackageAttachment\n    name: default\n    properties:\n      bandwidthPackageId: ${default.id}\n      instanceId: ${defaultEipAddress.id}\n      bandwidthPackageBandwidth: '2'\n      ipType: EIP\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nEIP Bandwidth Plan (CBWP) Common Bandwidth Package Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/commonBandwithPackageAttachment:CommonBandwithPackageAttachment example \u003cbandwidth_package_id\u003e:\u003cinstance_id\u003e\n```\n\n","properties":{"bandwidthPackageBandwidth":{"type":"string","description":"The maximum bandwidth for the EIP. This value cannot be larger than the maximum bandwidth of the Internet Shared Bandwidth instance. Unit: Mbit/s.\n\u003e **NOTE:**  From version 1.261.0, If you want to cancel the maximum bandwidth configuration for the EIP, you can set \u003cspan pulumi-lang-nodejs=\"`bandwidthPackageBandwidth`\" pulumi-lang-dotnet=\"`BandwidthPackageBandwidth`\" pulumi-lang-go=\"`bandwidthPackageBandwidth`\" pulumi-lang-python=\"`bandwidth_package_bandwidth`\" pulumi-lang-yaml=\"`bandwidthPackageBandwidth`\" pulumi-lang-java=\"`bandwidthPackageBandwidth`\"\u003e`bandwidth_package_bandwidth`\u003c/span\u003e to `Cancelled`.\n"},"bandwidthPackageId":{"type":"string","description":"The ID of the Internet Shared Bandwidth instance.\n"},"cancelCommonBandwidthPackageIpBandwidth":{"type":"boolean","description":". Field \u003cspan pulumi-lang-nodejs=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-dotnet=\"`CancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-go=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-python=\"`cancel_common_bandwidth_package_ip_bandwidth`\" pulumi-lang-yaml=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-java=\"`cancelCommonBandwidthPackageIpBandwidth`\"\u003e`cancel_common_bandwidth_package_ip_bandwidth`\u003c/span\u003e has been deprecated from provider version 1.261.0. Replace with \u003cspan pulumi-lang-nodejs=\"`bandwidthPackageBandwidth`\" pulumi-lang-dotnet=\"`BandwidthPackageBandwidth`\" pulumi-lang-go=\"`bandwidthPackageBandwidth`\" pulumi-lang-python=\"`bandwidth_package_bandwidth`\" pulumi-lang-yaml=\"`bandwidthPackageBandwidth`\" pulumi-lang-java=\"`bandwidthPackageBandwidth`\"\u003e`bandwidth_package_bandwidth`\u003c/span\u003e = `\"Cancelled\"`.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-dotnet=\"`CancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-go=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-python=\"`cancel_common_bandwidth_package_ip_bandwidth`\" pulumi-lang-yaml=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-java=\"`cancelCommonBandwidthPackageIpBandwidth`\"\u003e`cancel_common_bandwidth_package_ip_bandwidth`\u003c/span\u003e has been deprecated from version 1.261.0. Replace with\u003cspan pulumi-lang-nodejs=\" bandwidthPackageBandwidth \" pulumi-lang-dotnet=\" BandwidthPackageBandwidth \" pulumi-lang-go=\" bandwidthPackageBandwidth \" pulumi-lang-python=\" bandwidth_package_bandwidth \" pulumi-lang-yaml=\" bandwidthPackageBandwidth \" pulumi-lang-java=\" bandwidthPackageBandwidth \"\u003e bandwidth_package_bandwidth \u003c/span\u003e= \"Cancelled\""},"instanceId":{"type":"string","description":"The ID of the EIP that you want to query.\n\nYou can specify up to 50 EIP IDs. Separate multiple IDs with commas (,).\n\n\u003e **NOTE:** If both `EipAddress` and `AllocationId` are specified, you can specify up to 50 EIP IDs for `AllocationId`, and specify up to 50 EIPs for `EipAddress`.\n"},"ipType":{"type":"string","description":"The type of IP address. Set the value to `EIP` to associate EIPs with the Internet Shared Bandwidth instance.\n"},"status":{"type":"string","description":"The status of the Internet Shared Bandwidth instance.\n"}},"required":["bandwidthPackageBandwidth","bandwidthPackageId","instanceId","status"],"inputProperties":{"bandwidthPackageBandwidth":{"type":"string","description":"The maximum bandwidth for the EIP. This value cannot be larger than the maximum bandwidth of the Internet Shared Bandwidth instance. Unit: Mbit/s.\n\u003e **NOTE:**  From version 1.261.0, If you want to cancel the maximum bandwidth configuration for the EIP, you can set \u003cspan pulumi-lang-nodejs=\"`bandwidthPackageBandwidth`\" pulumi-lang-dotnet=\"`BandwidthPackageBandwidth`\" pulumi-lang-go=\"`bandwidthPackageBandwidth`\" pulumi-lang-python=\"`bandwidth_package_bandwidth`\" pulumi-lang-yaml=\"`bandwidthPackageBandwidth`\" pulumi-lang-java=\"`bandwidthPackageBandwidth`\"\u003e`bandwidth_package_bandwidth`\u003c/span\u003e to `Cancelled`.\n"},"bandwidthPackageId":{"type":"string","description":"The ID of the Internet Shared Bandwidth instance.\n","willReplaceOnChanges":true},"cancelCommonBandwidthPackageIpBandwidth":{"type":"boolean","description":". Field \u003cspan pulumi-lang-nodejs=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-dotnet=\"`CancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-go=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-python=\"`cancel_common_bandwidth_package_ip_bandwidth`\" pulumi-lang-yaml=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-java=\"`cancelCommonBandwidthPackageIpBandwidth`\"\u003e`cancel_common_bandwidth_package_ip_bandwidth`\u003c/span\u003e has been deprecated from provider version 1.261.0. Replace with \u003cspan pulumi-lang-nodejs=\"`bandwidthPackageBandwidth`\" pulumi-lang-dotnet=\"`BandwidthPackageBandwidth`\" pulumi-lang-go=\"`bandwidthPackageBandwidth`\" pulumi-lang-python=\"`bandwidth_package_bandwidth`\" pulumi-lang-yaml=\"`bandwidthPackageBandwidth`\" pulumi-lang-java=\"`bandwidthPackageBandwidth`\"\u003e`bandwidth_package_bandwidth`\u003c/span\u003e = `\"Cancelled\"`.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-dotnet=\"`CancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-go=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-python=\"`cancel_common_bandwidth_package_ip_bandwidth`\" pulumi-lang-yaml=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-java=\"`cancelCommonBandwidthPackageIpBandwidth`\"\u003e`cancel_common_bandwidth_package_ip_bandwidth`\u003c/span\u003e has been deprecated from version 1.261.0. Replace with\u003cspan pulumi-lang-nodejs=\" bandwidthPackageBandwidth \" pulumi-lang-dotnet=\" BandwidthPackageBandwidth \" pulumi-lang-go=\" bandwidthPackageBandwidth \" pulumi-lang-python=\" bandwidth_package_bandwidth \" pulumi-lang-yaml=\" bandwidthPackageBandwidth \" pulumi-lang-java=\" bandwidthPackageBandwidth \"\u003e bandwidth_package_bandwidth \u003c/span\u003e= \"Cancelled\""},"instanceId":{"type":"string","description":"The ID of the EIP that you want to query.\n\nYou can specify up to 50 EIP IDs. Separate multiple IDs with commas (,).\n\n\u003e **NOTE:** If both `EipAddress` and `AllocationId` are specified, you can specify up to 50 EIP IDs for `AllocationId`, and specify up to 50 EIPs for `EipAddress`.\n","willReplaceOnChanges":true},"ipType":{"type":"string","description":"The type of IP address. Set the value to `EIP` to associate EIPs with the Internet Shared Bandwidth instance.\n"}},"requiredInputs":["bandwidthPackageId","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering CommonBandwithPackageAttachment resources.\n","properties":{"bandwidthPackageBandwidth":{"type":"string","description":"The maximum bandwidth for the EIP. This value cannot be larger than the maximum bandwidth of the Internet Shared Bandwidth instance. Unit: Mbit/s.\n\u003e **NOTE:**  From version 1.261.0, If you want to cancel the maximum bandwidth configuration for the EIP, you can set \u003cspan pulumi-lang-nodejs=\"`bandwidthPackageBandwidth`\" pulumi-lang-dotnet=\"`BandwidthPackageBandwidth`\" pulumi-lang-go=\"`bandwidthPackageBandwidth`\" pulumi-lang-python=\"`bandwidth_package_bandwidth`\" pulumi-lang-yaml=\"`bandwidthPackageBandwidth`\" pulumi-lang-java=\"`bandwidthPackageBandwidth`\"\u003e`bandwidth_package_bandwidth`\u003c/span\u003e to `Cancelled`.\n"},"bandwidthPackageId":{"type":"string","description":"The ID of the Internet Shared Bandwidth instance.\n","willReplaceOnChanges":true},"cancelCommonBandwidthPackageIpBandwidth":{"type":"boolean","description":". Field \u003cspan pulumi-lang-nodejs=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-dotnet=\"`CancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-go=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-python=\"`cancel_common_bandwidth_package_ip_bandwidth`\" pulumi-lang-yaml=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-java=\"`cancelCommonBandwidthPackageIpBandwidth`\"\u003e`cancel_common_bandwidth_package_ip_bandwidth`\u003c/span\u003e has been deprecated from provider version 1.261.0. Replace with \u003cspan pulumi-lang-nodejs=\"`bandwidthPackageBandwidth`\" pulumi-lang-dotnet=\"`BandwidthPackageBandwidth`\" pulumi-lang-go=\"`bandwidthPackageBandwidth`\" pulumi-lang-python=\"`bandwidth_package_bandwidth`\" pulumi-lang-yaml=\"`bandwidthPackageBandwidth`\" pulumi-lang-java=\"`bandwidthPackageBandwidth`\"\u003e`bandwidth_package_bandwidth`\u003c/span\u003e = `\"Cancelled\"`.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-dotnet=\"`CancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-go=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-python=\"`cancel_common_bandwidth_package_ip_bandwidth`\" pulumi-lang-yaml=\"`cancelCommonBandwidthPackageIpBandwidth`\" pulumi-lang-java=\"`cancelCommonBandwidthPackageIpBandwidth`\"\u003e`cancel_common_bandwidth_package_ip_bandwidth`\u003c/span\u003e has been deprecated from version 1.261.0. Replace with\u003cspan pulumi-lang-nodejs=\" bandwidthPackageBandwidth \" pulumi-lang-dotnet=\" BandwidthPackageBandwidth \" pulumi-lang-go=\" bandwidthPackageBandwidth \" pulumi-lang-python=\" bandwidth_package_bandwidth \" pulumi-lang-yaml=\" bandwidthPackageBandwidth \" pulumi-lang-java=\" bandwidthPackageBandwidth \"\u003e bandwidth_package_bandwidth \u003c/span\u003e= \"Cancelled\""},"instanceId":{"type":"string","description":"The ID of the EIP that you want to query.\n\nYou can specify up to 50 EIP IDs. Separate multiple IDs with commas (,).\n\n\u003e **NOTE:** If both `EipAddress` and `AllocationId` are specified, you can specify up to 50 EIP IDs for `AllocationId`, and specify up to 50 EIPs for `EipAddress`.\n","willReplaceOnChanges":true},"ipType":{"type":"string","description":"The type of IP address. Set the value to `EIP` to associate EIPs with the Internet Shared Bandwidth instance.\n"},"status":{"type":"string","description":"The status of the Internet Shared Bandwidth instance.\n"}},"type":"object"}},"alicloud:vpc/dhcpOptionsSet:DhcpOptionsSet":{"description":"Provides a VPC Dhcp Options Set resource.\n\nDHCP option set.\n\nFor information about VPC Dhcp Options Set and how to use it, see [What is Dhcp Options Set](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/dhcp-options-sets-overview).\n\n\u003e **NOTE:** Available since v1.134.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst domain = config.get(\"domain\") || \"terraform-example.com\";\nconst example = new alicloud.vpc.DhcpOptionsSet(\"example\", {\n    dhcpOptionsSetName: name,\n    dhcpOptionsSetDescription: name,\n    domainName: domain,\n    domainNameServers: \"100.100.2.136\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndomain = config.get(\"domain\")\nif domain is None:\n    domain = \"terraform-example.com\"\nexample = alicloud.vpc.DhcpOptionsSet(\"example\",\n    dhcp_options_set_name=name,\n    dhcp_options_set_description=name,\n    domain_name=domain,\n    domain_name_servers=\"100.100.2.136\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var domain = config.Get(\"domain\") ?? \"terraform-example.com\";\n    var example = new AliCloud.Vpc.DhcpOptionsSet(\"example\", new()\n    {\n        DhcpOptionsSetName = name,\n        DhcpOptionsSetDescription = name,\n        DomainName = domain,\n        DomainNameServers = \"100.100.2.136\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdomain := \"terraform-example.com\"\n\t\tif param := cfg.Get(\"domain\"); param != \"\" {\n\t\t\tdomain = param\n\t\t}\n\t\t_, err := vpc.NewDhcpOptionsSet(ctx, \"example\", \u0026vpc.DhcpOptionsSetArgs{\n\t\t\tDhcpOptionsSetName:        pulumi.String(name),\n\t\t\tDhcpOptionsSetDescription: pulumi.String(name),\n\t\t\tDomainName:                pulumi.String(domain),\n\t\t\tDomainNameServers:         pulumi.String(\"100.100.2.136\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.DhcpOptionsSet;\nimport com.pulumi.alicloud.vpc.DhcpOptionsSetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var domain = config.get(\"domain\").orElse(\"terraform-example.com\");\n        var example = new DhcpOptionsSet(\"example\", DhcpOptionsSetArgs.builder()\n            .dhcpOptionsSetName(name)\n            .dhcpOptionsSetDescription(name)\n            .domainName(domain)\n            .domainNameServers(\"100.100.2.136\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  domain:\n    type: string\n    default: terraform-example.com\nresources:\n  example:\n    type: alicloud:vpc:DhcpOptionsSet\n    properties:\n      dhcpOptionsSetName: ${name}\n      dhcpOptionsSetDescription: ${name}\n      domainName: ${domain}\n      domainNameServers: 100.100.2.136\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Dhcp Options Set can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/dhcpOptionsSet:DhcpOptionsSet example \u003cid\u003e\n```\n\n","properties":{"associateVpcs":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/DhcpOptionsSetAssociateVpc:DhcpOptionsSetAssociateVpc"},"description":"Field 'associate_vpcs' has been deprecated from provider version 1.153.0 and it will be removed in the future version. Please use the new resource 'alicloud_vpc_dhcp_options_set_attachment' to attach DhcpOptionsSet and Vpc. See \u003cspan pulumi-lang-nodejs=\"`associateVpcs`\" pulumi-lang-dotnet=\"`AssociateVpcs`\" pulumi-lang-go=\"`associateVpcs`\" pulumi-lang-python=\"`associate_vpcs`\" pulumi-lang-yaml=\"`associateVpcs`\" pulumi-lang-java=\"`associateVpcs`\"\u003e`associate_vpcs`\u003c/span\u003e below.\n","deprecationMessage":"Field 'associate_vpcs' has been deprecated from provider version 1.153.0. Field 'associate_vpcs' has been deprecated from provider version 1.153.0 and it will be removed in the future version. Please use the new resource 'alicloud_vpc_dhcp_options_set_attachment' to attach DhcpOptionsSet and Vpc."},"dhcpOptionsSetDescription":{"type":"string","description":"The description can be blank or contain 1 to 256 characters. It must start with a letter or Chinese character but cannot start with http:// or https://.\n"},"dhcpOptionsSetName":{"type":"string","description":"The name of the DHCP options set.\nThe name must be 1 to 128 characters in length and can contain letters, digits, underscores (_), and hyphens (-). It must start with a letter.\n"},"domainName":{"type":"string","description":"The root domain. For example, you can set the value to example.com.\nAfter a DHCP options set is associated with a virtual private cloud (VPC), the root domain in the DHCP options set is automatically synchronized with the ECS instances in the VPC.\n"},"domainNameServers":{"type":"string","description":"The IP address of the DNS server. You can enter at most four DNS server IP addresses. Separate IP addresses with commas (,).\nIf no IP address is specified, the Elastic Compute Service (ECS) instance uses the IP addresses 100.100.2.136 and 100.100.2.138, which are provided by Alibaba Cloud by default.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request, value:\n"},"ipv6LeaseTime":{"type":"string","description":"The lease time of the IPv6 DHCP option set.\nWhen the lease time is set to hours: Unit: h. Value range: 24h ~ 1176h,87600h ~ 175200h. Default value: 87600h.\nWhen the lease time is set to day: Unit: d. Value range: 1d ~ 49d,3650d ~ 7300d. Default value: 1d.\n"},"leaseTime":{"type":"string","description":"The lease time of the IPv4 addresses for the DHCP options set.\nIf you use hours as the unit, valid values are 24h to 1176h and 87600h to 175200h. Default value: 87600h.\nIf you use days as the unit, valid values are 1d to 49d and 3650d to 7300d. Default value: 3650d.\n"},"ownerId":{"type":"integer","description":"The ID of the account to which the DHCP options set belongs.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the DHCP options set belongs.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags of the current resource.\n"}},"required":["associateVpcs","ipv6LeaseTime","leaseTime","ownerId","resourceGroupId","status"],"inputProperties":{"associateVpcs":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/DhcpOptionsSetAssociateVpc:DhcpOptionsSetAssociateVpc"},"description":"Field 'associate_vpcs' has been deprecated from provider version 1.153.0 and it will be removed in the future version. Please use the new resource 'alicloud_vpc_dhcp_options_set_attachment' to attach DhcpOptionsSet and Vpc. See \u003cspan pulumi-lang-nodejs=\"`associateVpcs`\" pulumi-lang-dotnet=\"`AssociateVpcs`\" pulumi-lang-go=\"`associateVpcs`\" pulumi-lang-python=\"`associate_vpcs`\" pulumi-lang-yaml=\"`associateVpcs`\" pulumi-lang-java=\"`associateVpcs`\"\u003e`associate_vpcs`\u003c/span\u003e below.\n","deprecationMessage":"Field 'associate_vpcs' has been deprecated from provider version 1.153.0. Field 'associate_vpcs' has been deprecated from provider version 1.153.0 and it will be removed in the future version. Please use the new resource 'alicloud_vpc_dhcp_options_set_attachment' to attach DhcpOptionsSet and Vpc."},"dhcpOptionsSetDescription":{"type":"string","description":"The description can be blank or contain 1 to 256 characters. It must start with a letter or Chinese character but cannot start with http:// or https://.\n"},"dhcpOptionsSetName":{"type":"string","description":"The name of the DHCP options set.\nThe name must be 1 to 128 characters in length and can contain letters, digits, underscores (_), and hyphens (-). It must start with a letter.\n"},"domainName":{"type":"string","description":"The root domain. For example, you can set the value to example.com.\nAfter a DHCP options set is associated with a virtual private cloud (VPC), the root domain in the DHCP options set is automatically synchronized with the ECS instances in the VPC.\n"},"domainNameServers":{"type":"string","description":"The IP address of the DNS server. You can enter at most four DNS server IP addresses. Separate IP addresses with commas (,).\nIf no IP address is specified, the Elastic Compute Service (ECS) instance uses the IP addresses 100.100.2.136 and 100.100.2.138, which are provided by Alibaba Cloud by default.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request, value:\n"},"ipv6LeaseTime":{"type":"string","description":"The lease time of the IPv6 DHCP option set.\nWhen the lease time is set to hours: Unit: h. Value range: 24h ~ 1176h,87600h ~ 175200h. Default value: 87600h.\nWhen the lease time is set to day: Unit: d. Value range: 1d ~ 49d,3650d ~ 7300d. Default value: 1d.\n"},"leaseTime":{"type":"string","description":"The lease time of the IPv4 addresses for the DHCP options set.\nIf you use hours as the unit, valid values are 24h to 1176h and 87600h to 175200h. Default value: 87600h.\nIf you use days as the unit, valid values are 1d to 49d and 3650d to 7300d. Default value: 3650d.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the DHCP options set belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags of the current resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering DhcpOptionsSet resources.\n","properties":{"associateVpcs":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/DhcpOptionsSetAssociateVpc:DhcpOptionsSetAssociateVpc"},"description":"Field 'associate_vpcs' has been deprecated from provider version 1.153.0 and it will be removed in the future version. Please use the new resource 'alicloud_vpc_dhcp_options_set_attachment' to attach DhcpOptionsSet and Vpc. See \u003cspan pulumi-lang-nodejs=\"`associateVpcs`\" pulumi-lang-dotnet=\"`AssociateVpcs`\" pulumi-lang-go=\"`associateVpcs`\" pulumi-lang-python=\"`associate_vpcs`\" pulumi-lang-yaml=\"`associateVpcs`\" pulumi-lang-java=\"`associateVpcs`\"\u003e`associate_vpcs`\u003c/span\u003e below.\n","deprecationMessage":"Field 'associate_vpcs' has been deprecated from provider version 1.153.0. Field 'associate_vpcs' has been deprecated from provider version 1.153.0 and it will be removed in the future version. Please use the new resource 'alicloud_vpc_dhcp_options_set_attachment' to attach DhcpOptionsSet and Vpc."},"dhcpOptionsSetDescription":{"type":"string","description":"The description can be blank or contain 1 to 256 characters. It must start with a letter or Chinese character but cannot start with http:// or https://.\n"},"dhcpOptionsSetName":{"type":"string","description":"The name of the DHCP options set.\nThe name must be 1 to 128 characters in length and can contain letters, digits, underscores (_), and hyphens (-). It must start with a letter.\n"},"domainName":{"type":"string","description":"The root domain. For example, you can set the value to example.com.\nAfter a DHCP options set is associated with a virtual private cloud (VPC), the root domain in the DHCP options set is automatically synchronized with the ECS instances in the VPC.\n"},"domainNameServers":{"type":"string","description":"The IP address of the DNS server. You can enter at most four DNS server IP addresses. Separate IP addresses with commas (,).\nIf no IP address is specified, the Elastic Compute Service (ECS) instance uses the IP addresses 100.100.2.136 and 100.100.2.138, which are provided by Alibaba Cloud by default.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request, value:\n"},"ipv6LeaseTime":{"type":"string","description":"The lease time of the IPv6 DHCP option set.\nWhen the lease time is set to hours: Unit: h. Value range: 24h ~ 1176h,87600h ~ 175200h. Default value: 87600h.\nWhen the lease time is set to day: Unit: d. Value range: 1d ~ 49d,3650d ~ 7300d. Default value: 1d.\n"},"leaseTime":{"type":"string","description":"The lease time of the IPv4 addresses for the DHCP options set.\nIf you use hours as the unit, valid values are 24h to 1176h and 87600h to 175200h. Default value: 87600h.\nIf you use days as the unit, valid values are 1d to 49d and 3650d to 7300d. Default value: 3650d.\n"},"ownerId":{"type":"integer","description":"The ID of the account to which the DHCP options set belongs.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the DHCP options set belongs.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags of the current resource.\n"}},"type":"object"}},"alicloud:vpc/dhcpOptionsSetAttachment:DhcpOptionsSetAttachment":{"description":"Provides a VPC Dhcp Options Set Attachment resource.\n\nFor information about VPC Dhcp Options Set and how to use it, see [What is Dhcp Options Set](https://www.alibabacloud.com/help/doc-detail/174112.htm).\n\n\u003e **NOTE:** Available since v1.153.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst example = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst exampleDhcpOptionsSet = new alicloud.vpc.DhcpOptionsSet(\"example\", {\n    dhcpOptionsSetName: name,\n    dhcpOptionsSetDescription: name,\n    domainName: \"example.com\",\n    domainNameServers: \"100.100.2.136\",\n});\nconst exampleDhcpOptionsSetAttachment = new alicloud.vpc.DhcpOptionsSetAttachment(\"example\", {\n    vpcId: example.id,\n    dhcpOptionsSetId: exampleDhcpOptionsSet.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\nexample = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\nexample_dhcp_options_set = alicloud.vpc.DhcpOptionsSet(\"example\",\n    dhcp_options_set_name=name,\n    dhcp_options_set_description=name,\n    domain_name=\"example.com\",\n    domain_name_servers=\"100.100.2.136\")\nexample_dhcp_options_set_attachment = alicloud.vpc.DhcpOptionsSetAttachment(\"example\",\n    vpc_id=example.id,\n    dhcp_options_set_id=example_dhcp_options_set.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var exampleDhcpOptionsSet = new AliCloud.Vpc.DhcpOptionsSet(\"example\", new()\n    {\n        DhcpOptionsSetName = name,\n        DhcpOptionsSetDescription = name,\n        DomainName = \"example.com\",\n        DomainNameServers = \"100.100.2.136\",\n    });\n\n    var exampleDhcpOptionsSetAttachment = new AliCloud.Vpc.DhcpOptionsSetAttachment(\"example\", new()\n    {\n        VpcId = example.Id,\n        DhcpOptionsSetId = exampleDhcpOptionsSet.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDhcpOptionsSet, err := vpc.NewDhcpOptionsSet(ctx, \"example\", \u0026vpc.DhcpOptionsSetArgs{\n\t\t\tDhcpOptionsSetName:        pulumi.String(name),\n\t\t\tDhcpOptionsSetDescription: pulumi.String(name),\n\t\t\tDomainName:                pulumi.String(\"example.com\"),\n\t\t\tDomainNameServers:         pulumi.String(\"100.100.2.136\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewDhcpOptionsSetAttachment(ctx, \"example\", \u0026vpc.DhcpOptionsSetAttachmentArgs{\n\t\t\tVpcId:            example.ID(),\n\t\t\tDhcpOptionsSetId: exampleDhcpOptionsSet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.DhcpOptionsSet;\nimport com.pulumi.alicloud.vpc.DhcpOptionsSetArgs;\nimport com.pulumi.alicloud.vpc.DhcpOptionsSetAttachment;\nimport com.pulumi.alicloud.vpc.DhcpOptionsSetAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var exampleDhcpOptionsSet = new DhcpOptionsSet(\"exampleDhcpOptionsSet\", DhcpOptionsSetArgs.builder()\n            .dhcpOptionsSetName(name)\n            .dhcpOptionsSetDescription(name)\n            .domainName(\"example.com\")\n            .domainNameServers(\"100.100.2.136\")\n            .build());\n\n        var exampleDhcpOptionsSetAttachment = new DhcpOptionsSetAttachment(\"exampleDhcpOptionsSetAttachment\", DhcpOptionsSetAttachmentArgs.builder()\n            .vpcId(example.id())\n            .dhcpOptionsSetId(exampleDhcpOptionsSet.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  exampleDhcpOptionsSet:\n    type: alicloud:vpc:DhcpOptionsSet\n    name: example\n    properties:\n      dhcpOptionsSetName: ${name}\n      dhcpOptionsSetDescription: ${name}\n      domainName: example.com\n      domainNameServers: 100.100.2.136\n  exampleDhcpOptionsSetAttachment:\n    type: alicloud:vpc:DhcpOptionsSetAttachment\n    name: example\n    properties:\n      vpcId: ${example.id}\n      dhcpOptionsSetId: ${exampleDhcpOptionsSet.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Dhcp Options Set Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/dhcpOptionsSetAttachment:DhcpOptionsSetAttachment example \u003cid\u003e\n```\n\n","properties":{"dhcpOptionsSetId":{"type":"string","description":"The ID of the DHCP options set.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to precheck this request only. Default values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"status":{"type":"string","description":"The status of the VPC network that is associated with the DHCP options set.  Valid values: `InUse` or `Pending`.\n"},"vpcId":{"type":"string","description":"The ID of the VPC network that is to be associated with the DHCP options set..\n"}},"required":["dhcpOptionsSetId","status","vpcId"],"inputProperties":{"dhcpOptionsSetId":{"type":"string","description":"The ID of the DHCP options set.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Specifies whether to precheck this request only. Default values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"vpcId":{"type":"string","description":"The ID of the VPC network that is to be associated with the DHCP options set..\n","willReplaceOnChanges":true}},"requiredInputs":["dhcpOptionsSetId","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering DhcpOptionsSetAttachment resources.\n","properties":{"dhcpOptionsSetId":{"type":"string","description":"The ID of the DHCP options set.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Specifies whether to precheck this request only. Default values: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"status":{"type":"string","description":"The status of the VPC network that is associated with the DHCP options set.  Valid values: `InUse` or `Pending`.\n"},"vpcId":{"type":"string","description":"The ID of the VPC network that is to be associated with the DHCP options set..\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/flowLog:FlowLog":{"description":"Provides a VPC Flow Log resource.\n\nWhile it uses\u003cspan pulumi-lang-nodejs=\" alicloud.vpc.FlowLog \" pulumi-lang-dotnet=\" alicloud.vpc.FlowLog \" pulumi-lang-go=\" vpc.FlowLog \" pulumi-lang-python=\" vpc.FlowLog \" pulumi-lang-yaml=\" alicloud.vpc.FlowLog \" pulumi-lang-java=\" alicloud.vpc.FlowLog \"\u003e alicloud.vpc.FlowLog \u003c/span\u003eto build a vpc flow log resource, it will be active by default.\n\nFor information about VPC Flow Log and how to use it, see [What is Flow Log](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/flow-logs-overview).\n\n\u003e **NOTE:** Available since v1.117.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst example = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst exampleUuid = new random.index.Uuid(\"example\", {});\nconst exampleProject = new alicloud.log.Project(\"example\", {\n    projectName: std.replace({\n        text: exampleUuid.result,\n        search: \"-\",\n        replace: \"\",\n    }).then(invoke =\u003e std.substr({\n        input: `tf-example-${invoke.result}`,\n        offset: 0,\n        length: 16,\n    })).then(invoke =\u003e invoke.result),\n    description: name,\n});\nconst exampleStore = new alicloud.log.Store(\"example\", {\n    projectName: exampleProject.projectName,\n    logstoreName: name,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst exampleFlowLog = new alicloud.vpc.FlowLog(\"example\", {\n    flowLogName: name,\n    logStoreName: exampleStore.logstoreName,\n    description: name,\n    trafficPaths: [\"all\"],\n    projectName: exampleProject.projectName,\n    resourceType: \"VPC\",\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    resourceId: example.id,\n    aggregationInterval: \"1\",\n    trafficType: \"All\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\nexample = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\nexample_uuid = random.index.Uuid(\"example\")\nexample_project = alicloud.log.Project(\"example\",\n    project_name=std.substr(input=f\"tf-example-{std.replace(text=example_uuid['result'],\n            search='-',\n            replace='').result}\",\n        offset=0,\n        length=16).result,\n    description=name)\nexample_store = alicloud.log.Store(\"example\",\n    project_name=example_project.project_name,\n    logstore_name=name,\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\nexample_flow_log = alicloud.vpc.FlowLog(\"example\",\n    flow_log_name=name,\n    log_store_name=example_store.logstore_name,\n    description=name,\n    traffic_paths=[\"all\"],\n    project_name=example_project.project_name,\n    resource_type=\"VPC\",\n    resource_group_id=default.ids[0],\n    resource_id=example.id,\n    aggregation_interval=\"1\",\n    traffic_type=\"All\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var exampleUuid = new Random.Index.Uuid(\"example\");\n\n    var exampleProject = new AliCloud.Log.Project(\"example\", new()\n    {\n        ProjectName = Std.Replace.Invoke(new()\n        {\n            Text = exampleUuid.Result,\n            Search = \"-\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e Std.Substr.Invoke(new()\n        {\n            Input = $\"tf-example-{invoke.Result}\",\n            Offset = 0,\n            Length = 16,\n        })).Apply(invoke =\u003e invoke.Result),\n        Description = name,\n    });\n\n    var exampleStore = new AliCloud.Log.Store(\"example\", new()\n    {\n        ProjectName = exampleProject.ProjectName,\n        LogstoreName = name,\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var exampleFlowLog = new AliCloud.Vpc.FlowLog(\"example\", new()\n    {\n        FlowLogName = name,\n        LogStoreName = exampleStore.LogstoreName,\n        Description = name,\n        TrafficPaths = new[]\n        {\n            \"all\",\n        },\n        ProjectName = exampleProject.ProjectName,\n        ResourceType = \"VPC\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        ResourceId = example.Id,\n        AggregationInterval = \"1\",\n        TrafficType = \"All\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUuid, err := random.NewUuid(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeSubstr, err := std.Substr(ctx, \u0026std.SubstrArgs{\n\t\t\tInput: fmt.Sprintf(\"tf-example-%v\", std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\t\tText:    exampleUuid.Result,\n\t\t\t\tSearch:  \"-\",\n\t\t\t\tReplace: \"\",\n\t\t\t}, nil).Result),\n\t\t\tOffset: 0,\n\t\t\tLength: 16,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleProject, err := log.NewProject(ctx, \"example\", \u0026log.ProjectArgs{\n\t\t\tProjectName: pulumi.String(invokeSubstr.Result),\n\t\t\tDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStore, err := log.NewStore(ctx, \"example\", \u0026log.StoreArgs{\n\t\t\tProjectName:        exampleProject.ProjectName,\n\t\t\tLogstoreName:       pulumi.String(name),\n\t\t\tShardCount:         pulumi.Int(3),\n\t\t\tAutoSplit:          pulumi.Bool(true),\n\t\t\tMaxSplitShardCount: pulumi.Int(60),\n\t\t\tAppendMeta:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewFlowLog(ctx, \"example\", \u0026vpc.FlowLogArgs{\n\t\t\tFlowLogName:  pulumi.String(name),\n\t\t\tLogStoreName: exampleStore.LogstoreName,\n\t\t\tDescription:  pulumi.String(name),\n\t\t\tTrafficPaths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"all\"),\n\t\t\t},\n\t\t\tProjectName:         exampleProject.ProjectName,\n\t\t\tResourceType:        pulumi.String(\"VPC\"),\n\t\t\tResourceGroupId:     pulumi.String(_default.Ids[0]),\n\t\t\tResourceId:          example.ID(),\n\t\t\tAggregationInterval: pulumi.String(\"1\"),\n\t\t\tTrafficType:         pulumi.String(\"All\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.random.Uuid;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ReplaceArgs;\nimport com.pulumi.std.inputs.SubstrArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.vpc.FlowLog;\nimport com.pulumi.alicloud.vpc.FlowLogArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var exampleUuid = new Uuid(\"exampleUuid\");\n\n        var exampleProject = new Project(\"exampleProject\", ProjectArgs.builder()\n            .projectName(StdFunctions.substr(SubstrArgs.builder()\n                .input(String.format(\"tf-example-%s\", StdFunctions.replace(ReplaceArgs.builder()\n                    .text(exampleUuid.result())\n                    .search(\"-\")\n                    .replace(\"\")\n                    .build()).result()))\n                .offset(0)\n                .length(16)\n                .build()).result())\n            .description(name)\n            .build());\n\n        var exampleStore = new Store(\"exampleStore\", StoreArgs.builder()\n            .projectName(exampleProject.projectName())\n            .logstoreName(name)\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var exampleFlowLog = new FlowLog(\"exampleFlowLog\", FlowLogArgs.builder()\n            .flowLogName(name)\n            .logStoreName(exampleStore.logstoreName())\n            .description(name)\n            .trafficPaths(\"all\")\n            .projectName(exampleProject.projectName())\n            .resourceType(\"VPC\")\n            .resourceGroupId(default_.ids()[0])\n            .resourceId(example.id())\n            .aggregationInterval(\"1\")\n            .trafficType(\"All\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  exampleUuid:\n    type: random:Uuid\n    name: example\n  exampleProject:\n    type: alicloud:log:Project\n    name: example\n    properties:\n      projectName:\n        fn::invoke:\n          function: std:substr\n          arguments:\n            input:\n              fn::join:\n                - \"\"\n                - - tf-example-\n                  - fn::invoke:\n                      function: std:replace\n                      arguments:\n                        text: ${exampleUuid.result}\n                        search: '-'\n                        replace: \"\"\n                      return: result\n            offset: 0\n            length: 16\n          return: result\n      description: ${name}\n  exampleStore:\n    type: alicloud:log:Store\n    name: example\n    properties:\n      projectName: ${exampleProject.projectName}\n      logstoreName: ${name}\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  exampleFlowLog:\n    type: alicloud:vpc:FlowLog\n    name: example\n    properties:\n      flowLogName: ${name}\n      logStoreName: ${exampleStore.logstoreName}\n      description: ${name}\n      trafficPaths:\n        - all\n      projectName: ${exampleProject.projectName}\n      resourceType: VPC\n      resourceGroupId: ${default.ids[0]}\n      resourceId: ${example.id}\n      aggregationInterval: '1'\n      trafficType: All\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Flow Log can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/flowLog:FlowLog example \u003cid\u003e\n```\n\n","properties":{"aggregationInterval":{"type":"string","description":"The sampling interval of the flow log. Unit: seconds. Valid values: 1, 5, and 10 (default).\n"},"businessStatus":{"type":"string","description":"Business status\n"},"createTime":{"type":"string","description":"Creation time\n"},"description":{"type":"string","description":"The Description of the VPC Flow Log.\n"},"flowLogId":{"type":"string","description":"The flow log ID.\n"},"flowLogName":{"type":"string","description":"The Name of the VPC Flow Log.\n"},"ipVersion":{"type":"string","description":"The IP address type of the collected traffic.\n"},"logStoreName":{"type":"string","description":"The Logstore that stores the captured traffic data.\n"},"projectName":{"type":"string","description":"The project that manages the captured traffic data.\n"},"regionId":{"type":"string","description":"The region ID.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"resourceId":{"type":"string","description":"The ID of the resource.\n"},"resourceType":{"type":"string","description":"The resource type of the traffic captured by the flow log:\n- `NetworkInterface`: ENI.\n- `VSwitch`: All ENIs in the VSwitch.\n- `VPC`: All ENIs in the VPC.\n"},"status":{"type":"string","description":"The status of the VPC Flow Log. Valid values: `Active` and `Inactive`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the current instance resource.\n"},"trafficPaths":{"type":"array","items":{"type":"string"},"description":"The collected flow path. Value:\n- *all**: indicates full acquisition.\n- *internetGateway**: indicates public network traffic collection.\n"},"trafficType":{"type":"string","description":"The type of traffic collected. Valid values:\n- *All**: All traffic.\n- *Allow**: Access control allowedtraffic.\n- *Drop**: Access control denied traffic.\n"}},"required":["aggregationInterval","businessStatus","createTime","flowLogId","ipVersion","logStoreName","projectName","regionId","resourceGroupId","resourceId","resourceType","status","trafficPaths","trafficType"],"inputProperties":{"aggregationInterval":{"type":"string","description":"The sampling interval of the flow log. Unit: seconds. Valid values: 1, 5, and 10 (default).\n"},"description":{"type":"string","description":"The Description of the VPC Flow Log.\n"},"flowLogName":{"type":"string","description":"The Name of the VPC Flow Log.\n"},"ipVersion":{"type":"string","description":"The IP address type of the collected traffic.\n"},"logStoreName":{"type":"string","description":"The Logstore that stores the captured traffic data.\n","willReplaceOnChanges":true},"projectName":{"type":"string","description":"The project that manages the captured traffic data.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"resourceId":{"type":"string","description":"The ID of the resource.\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"The resource type of the traffic captured by the flow log:\n- `NetworkInterface`: ENI.\n- `VSwitch`: All ENIs in the VSwitch.\n- `VPC`: All ENIs in the VPC.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the VPC Flow Log. Valid values: `Active` and `Inactive`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the current instance resource.\n"},"trafficPaths":{"type":"array","items":{"type":"string"},"description":"The collected flow path. Value:\n- *all**: indicates full acquisition.\n- *internetGateway**: indicates public network traffic collection.\n","willReplaceOnChanges":true},"trafficType":{"type":"string","description":"The type of traffic collected. Valid values:\n- *All**: All traffic.\n- *Allow**: Access control allowedtraffic.\n- *Drop**: Access control denied traffic.\n","willReplaceOnChanges":true}},"requiredInputs":["logStoreName","projectName","resourceId","resourceType","trafficType"],"stateInputs":{"description":"Input properties used for looking up and filtering FlowLog resources.\n","properties":{"aggregationInterval":{"type":"string","description":"The sampling interval of the flow log. Unit: seconds. Valid values: 1, 5, and 10 (default).\n"},"businessStatus":{"type":"string","description":"Business status\n"},"createTime":{"type":"string","description":"Creation time\n"},"description":{"type":"string","description":"The Description of the VPC Flow Log.\n"},"flowLogId":{"type":"string","description":"The flow log ID.\n"},"flowLogName":{"type":"string","description":"The Name of the VPC Flow Log.\n"},"ipVersion":{"type":"string","description":"The IP address type of the collected traffic.\n"},"logStoreName":{"type":"string","description":"The Logstore that stores the captured traffic data.\n","willReplaceOnChanges":true},"projectName":{"type":"string","description":"The project that manages the captured traffic data.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The region ID.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"resourceId":{"type":"string","description":"The ID of the resource.\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"The resource type of the traffic captured by the flow log:\n- `NetworkInterface`: ENI.\n- `VSwitch`: All ENIs in the VSwitch.\n- `VPC`: All ENIs in the VPC.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the VPC Flow Log. Valid values: `Active` and `Inactive`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the current instance resource.\n"},"trafficPaths":{"type":"array","items":{"type":"string"},"description":"The collected flow path. Value:\n- *all**: indicates full acquisition.\n- *internetGateway**: indicates public network traffic collection.\n","willReplaceOnChanges":true},"trafficType":{"type":"string","description":"The type of traffic collected. Valid values:\n- *All**: All traffic.\n- *Allow**: Access control allowedtraffic.\n- *Drop**: Access control denied traffic.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/forwardEntry:ForwardEntry":{"description":"Provides a forward resource.\n\n\u003e **NOTE:** Available since v1.40.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"forward-entry-example-name\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultNatGateway = new alicloud.vpc.NatGateway(\"default\", {\n    vpcId: defaultNetwork.id,\n    internetChargeType: \"PayByLcu\",\n    natGatewayName: name,\n    natType: \"Enhanced\",\n    vswitchId: defaultSwitch.id,\n});\nconst defaultEipAddress = new alicloud.ecs.EipAddress(\"default\", {addressName: name});\nconst defaultEipAssociation = new alicloud.ecs.EipAssociation(\"default\", {\n    allocationId: defaultEipAddress.id,\n    instanceId: defaultNatGateway.id,\n});\nconst defaultForwardEntry = new alicloud.vpc.ForwardEntry(\"default\", {\n    forwardTableId: defaultNatGateway.forwardTableIds,\n    externalIp: defaultEipAddress.ipAddress,\n    externalPort: \"80\",\n    ipProtocol: \"tcp\",\n    internalIp: \"172.16.0.3\",\n    internalPort: \"8080\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"forward-entry-example-name\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_nat_gateway = alicloud.vpc.NatGateway(\"default\",\n    vpc_id=default_network.id,\n    internet_charge_type=\"PayByLcu\",\n    nat_gateway_name=name,\n    nat_type=\"Enhanced\",\n    vswitch_id=default_switch.id)\ndefault_eip_address = alicloud.ecs.EipAddress(\"default\", address_name=name)\ndefault_eip_association = alicloud.ecs.EipAssociation(\"default\",\n    allocation_id=default_eip_address.id,\n    instance_id=default_nat_gateway.id)\ndefault_forward_entry = alicloud.vpc.ForwardEntry(\"default\",\n    forward_table_id=default_nat_gateway.forward_table_ids,\n    external_ip=default_eip_address.ip_address,\n    external_port=\"80\",\n    ip_protocol=\"tcp\",\n    internal_ip=\"172.16.0.3\",\n    internal_port=\"8080\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"forward-entry-example-name\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultNatGateway = new AliCloud.Vpc.NatGateway(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        InternetChargeType = \"PayByLcu\",\n        NatGatewayName = name,\n        NatType = \"Enhanced\",\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var defaultEipAddress = new AliCloud.Ecs.EipAddress(\"default\", new()\n    {\n        AddressName = name,\n    });\n\n    var defaultEipAssociation = new AliCloud.Ecs.EipAssociation(\"default\", new()\n    {\n        AllocationId = defaultEipAddress.Id,\n        InstanceId = defaultNatGateway.Id,\n    });\n\n    var defaultForwardEntry = new AliCloud.Vpc.ForwardEntry(\"default\", new()\n    {\n        ForwardTableId = defaultNatGateway.ForwardTableIds,\n        ExternalIp = defaultEipAddress.IpAddress,\n        ExternalPort = \"80\",\n        IpProtocol = \"tcp\",\n        InternalIp = \"172.16.0.3\",\n        InternalPort = \"8080\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"forward-entry-example-name\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNatGateway, err := vpc.NewNatGateway(ctx, \"default\", \u0026vpc.NatGatewayArgs{\n\t\t\tVpcId:              defaultNetwork.ID(),\n\t\t\tInternetChargeType: pulumi.String(\"PayByLcu\"),\n\t\t\tNatGatewayName:     pulumi.String(name),\n\t\t\tNatType:            pulumi.String(\"Enhanced\"),\n\t\t\tVswitchId:          defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEipAddress, err := ecs.NewEipAddress(ctx, \"default\", \u0026ecs.EipAddressArgs{\n\t\t\tAddressName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEipAssociation(ctx, \"default\", \u0026ecs.EipAssociationArgs{\n\t\t\tAllocationId: defaultEipAddress.ID(),\n\t\t\tInstanceId:   defaultNatGateway.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewForwardEntry(ctx, \"default\", \u0026vpc.ForwardEntryArgs{\n\t\t\tForwardTableId: defaultNatGateway.ForwardTableIds,\n\t\t\tExternalIp:     defaultEipAddress.IpAddress,\n\t\t\tExternalPort:   pulumi.String(\"80\"),\n\t\t\tIpProtocol:     pulumi.String(\"tcp\"),\n\t\t\tInternalIp:     pulumi.String(\"172.16.0.3\"),\n\t\t\tInternalPort:   pulumi.String(\"8080\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.NatGateway;\nimport com.pulumi.alicloud.vpc.NatGatewayArgs;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAddressArgs;\nimport com.pulumi.alicloud.ecs.EipAssociation;\nimport com.pulumi.alicloud.ecs.EipAssociationArgs;\nimport com.pulumi.alicloud.vpc.ForwardEntry;\nimport com.pulumi.alicloud.vpc.ForwardEntryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"forward-entry-example-name\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultNatGateway = new NatGateway(\"defaultNatGateway\", NatGatewayArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .internetChargeType(\"PayByLcu\")\n            .natGatewayName(name)\n            .natType(\"Enhanced\")\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var defaultEipAddress = new EipAddress(\"defaultEipAddress\", EipAddressArgs.builder()\n            .addressName(name)\n            .build());\n\n        var defaultEipAssociation = new EipAssociation(\"defaultEipAssociation\", EipAssociationArgs.builder()\n            .allocationId(defaultEipAddress.id())\n            .instanceId(defaultNatGateway.id())\n            .build());\n\n        var defaultForwardEntry = new ForwardEntry(\"defaultForwardEntry\", ForwardEntryArgs.builder()\n            .forwardTableId(defaultNatGateway.forwardTableIds())\n            .externalIp(defaultEipAddress.ipAddress())\n            .externalPort(\"80\")\n            .ipProtocol(\"tcp\")\n            .internalIp(\"172.16.0.3\")\n            .internalPort(\"8080\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: forward-entry-example-name\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultNatGateway:\n    type: alicloud:vpc:NatGateway\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      internetChargeType: PayByLcu\n      natGatewayName: ${name}\n      natType: Enhanced\n      vswitchId: ${defaultSwitch.id}\n  defaultEipAddress:\n    type: alicloud:ecs:EipAddress\n    name: default\n    properties:\n      addressName: ${name}\n  defaultEipAssociation:\n    type: alicloud:ecs:EipAssociation\n    name: default\n    properties:\n      allocationId: ${defaultEipAddress.id}\n      instanceId: ${defaultNatGateway.id}\n  defaultForwardEntry:\n    type: alicloud:vpc:ForwardEntry\n    name: default\n    properties:\n      forwardTableId: ${defaultNatGateway.forwardTableIds}\n      externalIp: ${defaultEipAddress.ipAddress}\n      externalPort: '80'\n      ipProtocol: tcp\n      internalIp: 172.16.0.3\n      internalPort: '8080'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nForward Entry can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/forwardEntry:ForwardEntry foo ftb-1aece3:fwd-232ce2\n```\n\n","properties":{"externalIp":{"type":"string","description":"The external ip address, the ip must along bandwidth package public ip which \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.NatGateway`\" pulumi-lang-dotnet=\"`alicloud.vpc.NatGateway`\" pulumi-lang-go=\"`vpc.NatGateway`\" pulumi-lang-python=\"`vpc.NatGateway`\" pulumi-lang-yaml=\"`alicloud.vpc.NatGateway`\" pulumi-lang-java=\"`alicloud.vpc.NatGateway`\"\u003e`alicloud.vpc.NatGateway`\u003c/span\u003e argument \u003cspan pulumi-lang-nodejs=\"`bandwidthPackages`\" pulumi-lang-dotnet=\"`BandwidthPackages`\" pulumi-lang-go=\"`bandwidthPackages`\" pulumi-lang-python=\"`bandwidth_packages`\" pulumi-lang-yaml=\"`bandwidthPackages`\" pulumi-lang-java=\"`bandwidthPackages`\"\u003e`bandwidth_packages`\u003c/span\u003e.\n"},"externalPort":{"type":"string","description":"The external port, valid value is 1~65535|any.\n"},"forwardEntryId":{"type":"string","description":"The id of the forward entry on the server.\n"},"forwardEntryName":{"type":"string","description":"The name of forward entry.\n"},"forwardTableId":{"type":"string","description":"The value can get from \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.NatGateway`\" pulumi-lang-dotnet=\"`alicloud.vpc.NatGateway`\" pulumi-lang-go=\"`vpc.NatGateway`\" pulumi-lang-python=\"`vpc.NatGateway`\" pulumi-lang-yaml=\"`alicloud.vpc.NatGateway`\" pulumi-lang-java=\"`alicloud.vpc.NatGateway`\"\u003e`alicloud.vpc.NatGateway`\u003c/span\u003e Attributes \u003cspan pulumi-lang-nodejs=\"\"forwardTableIds\"\" pulumi-lang-dotnet=\"\"ForwardTableIds\"\" pulumi-lang-go=\"\"forwardTableIds\"\" pulumi-lang-python=\"\"forward_table_ids\"\" pulumi-lang-yaml=\"\"forwardTableIds\"\" pulumi-lang-java=\"\"forwardTableIds\"\"\u003e\"forward_table_ids\"\u003c/span\u003e.\n"},"internalIp":{"type":"string","description":"The internal ip, must a private ip.\n"},"internalPort":{"type":"string","description":"The internal port, valid value is 1~65535|any.\n"},"ipProtocol":{"type":"string","description":"The ip protocol, valid value is tcp|udp|any.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.119.1. New field \u003cspan pulumi-lang-nodejs=\"`forwardEntryName`\" pulumi-lang-dotnet=\"`ForwardEntryName`\" pulumi-lang-go=\"`forwardEntryName`\" pulumi-lang-python=\"`forward_entry_name`\" pulumi-lang-yaml=\"`forwardEntryName`\" pulumi-lang-java=\"`forwardEntryName`\"\u003e`forward_entry_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.119.1. New field 'forward_entry_name' instead."},"portBreak":{"type":"boolean","description":"Specifies whether to remove limits on the port range. Default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n\u003e **NOTE:** A SNAT entry and a DNAT entry may use the same public IP address. If you want to specify a port number greater than 1024 in this case, set \u003cspan pulumi-lang-nodejs=\"`portBreak`\" pulumi-lang-dotnet=\"`PortBreak`\" pulumi-lang-go=\"`portBreak`\" pulumi-lang-python=\"`port_break`\" pulumi-lang-yaml=\"`portBreak`\" pulumi-lang-java=\"`portBreak`\"\u003e`port_break`\u003c/span\u003e to true.\n"},"status":{"type":"string","description":"(Available since v1.119.1) The status of forward entry.\n"}},"required":["externalIp","externalPort","forwardEntryId","forwardEntryName","forwardTableId","internalIp","internalPort","ipProtocol","name","status"],"inputProperties":{"externalIp":{"type":"string","description":"The external ip address, the ip must along bandwidth package public ip which \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.NatGateway`\" pulumi-lang-dotnet=\"`alicloud.vpc.NatGateway`\" pulumi-lang-go=\"`vpc.NatGateway`\" pulumi-lang-python=\"`vpc.NatGateway`\" pulumi-lang-yaml=\"`alicloud.vpc.NatGateway`\" pulumi-lang-java=\"`alicloud.vpc.NatGateway`\"\u003e`alicloud.vpc.NatGateway`\u003c/span\u003e argument \u003cspan pulumi-lang-nodejs=\"`bandwidthPackages`\" pulumi-lang-dotnet=\"`BandwidthPackages`\" pulumi-lang-go=\"`bandwidthPackages`\" pulumi-lang-python=\"`bandwidth_packages`\" pulumi-lang-yaml=\"`bandwidthPackages`\" pulumi-lang-java=\"`bandwidthPackages`\"\u003e`bandwidth_packages`\u003c/span\u003e.\n"},"externalPort":{"type":"string","description":"The external port, valid value is 1~65535|any.\n"},"forwardEntryName":{"type":"string","description":"The name of forward entry.\n"},"forwardTableId":{"type":"string","description":"The value can get from \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.NatGateway`\" pulumi-lang-dotnet=\"`alicloud.vpc.NatGateway`\" pulumi-lang-go=\"`vpc.NatGateway`\" pulumi-lang-python=\"`vpc.NatGateway`\" pulumi-lang-yaml=\"`alicloud.vpc.NatGateway`\" pulumi-lang-java=\"`alicloud.vpc.NatGateway`\"\u003e`alicloud.vpc.NatGateway`\u003c/span\u003e Attributes \u003cspan pulumi-lang-nodejs=\"\"forwardTableIds\"\" pulumi-lang-dotnet=\"\"ForwardTableIds\"\" pulumi-lang-go=\"\"forwardTableIds\"\" pulumi-lang-python=\"\"forward_table_ids\"\" pulumi-lang-yaml=\"\"forwardTableIds\"\" pulumi-lang-java=\"\"forwardTableIds\"\"\u003e\"forward_table_ids\"\u003c/span\u003e.\n","willReplaceOnChanges":true},"internalIp":{"type":"string","description":"The internal ip, must a private ip.\n"},"internalPort":{"type":"string","description":"The internal port, valid value is 1~65535|any.\n"},"ipProtocol":{"type":"string","description":"The ip protocol, valid value is tcp|udp|any.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.119.1. New field \u003cspan pulumi-lang-nodejs=\"`forwardEntryName`\" pulumi-lang-dotnet=\"`ForwardEntryName`\" pulumi-lang-go=\"`forwardEntryName`\" pulumi-lang-python=\"`forward_entry_name`\" pulumi-lang-yaml=\"`forwardEntryName`\" pulumi-lang-java=\"`forwardEntryName`\"\u003e`forward_entry_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.119.1. New field 'forward_entry_name' instead."},"portBreak":{"type":"boolean","description":"Specifies whether to remove limits on the port range. Default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n\u003e **NOTE:** A SNAT entry and a DNAT entry may use the same public IP address. If you want to specify a port number greater than 1024 in this case, set \u003cspan pulumi-lang-nodejs=\"`portBreak`\" pulumi-lang-dotnet=\"`PortBreak`\" pulumi-lang-go=\"`portBreak`\" pulumi-lang-python=\"`port_break`\" pulumi-lang-yaml=\"`portBreak`\" pulumi-lang-java=\"`portBreak`\"\u003e`port_break`\u003c/span\u003e to true.\n"}},"requiredInputs":["externalIp","externalPort","forwardTableId","internalIp","internalPort","ipProtocol"],"stateInputs":{"description":"Input properties used for looking up and filtering ForwardEntry resources.\n","properties":{"externalIp":{"type":"string","description":"The external ip address, the ip must along bandwidth package public ip which \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.NatGateway`\" pulumi-lang-dotnet=\"`alicloud.vpc.NatGateway`\" pulumi-lang-go=\"`vpc.NatGateway`\" pulumi-lang-python=\"`vpc.NatGateway`\" pulumi-lang-yaml=\"`alicloud.vpc.NatGateway`\" pulumi-lang-java=\"`alicloud.vpc.NatGateway`\"\u003e`alicloud.vpc.NatGateway`\u003c/span\u003e argument \u003cspan pulumi-lang-nodejs=\"`bandwidthPackages`\" pulumi-lang-dotnet=\"`BandwidthPackages`\" pulumi-lang-go=\"`bandwidthPackages`\" pulumi-lang-python=\"`bandwidth_packages`\" pulumi-lang-yaml=\"`bandwidthPackages`\" pulumi-lang-java=\"`bandwidthPackages`\"\u003e`bandwidth_packages`\u003c/span\u003e.\n"},"externalPort":{"type":"string","description":"The external port, valid value is 1~65535|any.\n"},"forwardEntryId":{"type":"string","description":"The id of the forward entry on the server.\n"},"forwardEntryName":{"type":"string","description":"The name of forward entry.\n"},"forwardTableId":{"type":"string","description":"The value can get from \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.NatGateway`\" pulumi-lang-dotnet=\"`alicloud.vpc.NatGateway`\" pulumi-lang-go=\"`vpc.NatGateway`\" pulumi-lang-python=\"`vpc.NatGateway`\" pulumi-lang-yaml=\"`alicloud.vpc.NatGateway`\" pulumi-lang-java=\"`alicloud.vpc.NatGateway`\"\u003e`alicloud.vpc.NatGateway`\u003c/span\u003e Attributes \u003cspan pulumi-lang-nodejs=\"\"forwardTableIds\"\" pulumi-lang-dotnet=\"\"ForwardTableIds\"\" pulumi-lang-go=\"\"forwardTableIds\"\" pulumi-lang-python=\"\"forward_table_ids\"\" pulumi-lang-yaml=\"\"forwardTableIds\"\" pulumi-lang-java=\"\"forwardTableIds\"\"\u003e\"forward_table_ids\"\u003c/span\u003e.\n","willReplaceOnChanges":true},"internalIp":{"type":"string","description":"The internal ip, must a private ip.\n"},"internalPort":{"type":"string","description":"The internal port, valid value is 1~65535|any.\n"},"ipProtocol":{"type":"string","description":"The ip protocol, valid value is tcp|udp|any.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.119.1. New field \u003cspan pulumi-lang-nodejs=\"`forwardEntryName`\" pulumi-lang-dotnet=\"`ForwardEntryName`\" pulumi-lang-go=\"`forwardEntryName`\" pulumi-lang-python=\"`forward_entry_name`\" pulumi-lang-yaml=\"`forwardEntryName`\" pulumi-lang-java=\"`forwardEntryName`\"\u003e`forward_entry_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.119.1. New field 'forward_entry_name' instead."},"portBreak":{"type":"boolean","description":"Specifies whether to remove limits on the port range. Default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n\u003e **NOTE:** A SNAT entry and a DNAT entry may use the same public IP address. If you want to specify a port number greater than 1024 in this case, set \u003cspan pulumi-lang-nodejs=\"`portBreak`\" pulumi-lang-dotnet=\"`PortBreak`\" pulumi-lang-go=\"`portBreak`\" pulumi-lang-python=\"`port_break`\" pulumi-lang-yaml=\"`portBreak`\" pulumi-lang-java=\"`portBreak`\"\u003e`port_break`\u003c/span\u003e to true.\n"},"status":{"type":"string","description":"(Available since v1.119.1) The status of forward entry.\n"}},"type":"object"}},"alicloud:vpc/gatewayEndpoint:GatewayEndpoint":{"description":"Provides a VPC Gateway Endpoint resource.\n\nVPC gateway endpoint.\n\nFor information about VPC Gateway Endpoint and how to use it, see [What is Gateway Endpoint](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/gateway-endpoint).\n\n\u003e **NOTE:** Available since v1.208.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst domain = config.get(\"domain\") || \"com.aliyun.cn-hangzhou.oss\";\nconst defaultVpc = new alicloud.vpc.Network(\"defaultVpc\", {description: \"tf-example\"});\nconst defaultRg = new alicloud.resourcemanager.ResourceGroup(\"defaultRg\", {\n    displayName: \"tf-example-497\",\n    resourceGroupName: name,\n});\nconst _default = new alicloud.vpc.GatewayEndpoint(\"default\", {\n    gatewayEndpointDescrption: \"test-gateway-endpoint\",\n    gatewayEndpointName: name,\n    vpcId: defaultVpc.id,\n    resourceGroupId: defaultRg.id,\n    serviceName: domain,\n    policyDocument: `      {\n        \\\\\"Version\\\\\": \\\\\"1\\\\\",\n        \\\\\"Statement\\\\\": [{\n          \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n          \\\\\"Resource\\\\\": [\\\\\"*\\\\\"],\n          \\\\\"Action\\\\\": [\\\\\"*\\\\\"],\n          \\\\\"Principal\\\\\": [\\\\\"*\\\\\"]\n        }]\n      }\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndomain = config.get(\"domain\")\nif domain is None:\n    domain = \"com.aliyun.cn-hangzhou.oss\"\ndefault_vpc = alicloud.vpc.Network(\"defaultVpc\", description=\"tf-example\")\ndefault_rg = alicloud.resourcemanager.ResourceGroup(\"defaultRg\",\n    display_name=\"tf-example-497\",\n    resource_group_name=name)\ndefault = alicloud.vpc.GatewayEndpoint(\"default\",\n    gateway_endpoint_descrption=\"test-gateway-endpoint\",\n    gateway_endpoint_name=name,\n    vpc_id=default_vpc.id,\n    resource_group_id=default_rg.id,\n    service_name=domain,\n    policy_document=\"\"\"      {\n        \\\"Version\\\": \\\"1\\\",\n        \\\"Statement\\\": [{\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Resource\\\": [\\\"*\\\"],\n          \\\"Action\\\": [\\\"*\\\"],\n          \\\"Principal\\\": [\\\"*\\\"]\n        }]\n      }\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var domain = config.Get(\"domain\") ?? \"com.aliyun.cn-hangzhou.oss\";\n    var defaultVpc = new AliCloud.Vpc.Network(\"defaultVpc\", new()\n    {\n        Description = \"tf-example\",\n    });\n\n    var defaultRg = new AliCloud.ResourceManager.ResourceGroup(\"defaultRg\", new()\n    {\n        DisplayName = \"tf-example-497\",\n        ResourceGroupName = name,\n    });\n\n    var @default = new AliCloud.Vpc.GatewayEndpoint(\"default\", new()\n    {\n        GatewayEndpointDescrption = \"test-gateway-endpoint\",\n        GatewayEndpointName = name,\n        VpcId = defaultVpc.Id,\n        ResourceGroupId = defaultRg.Id,\n        ServiceName = domain,\n        PolicyDocument = @\"      {\n        \\\"\"Version\\\"\": \\\"\"1\\\"\",\n        \\\"\"Statement\\\"\": [{\n          \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n          \\\"\"Resource\\\"\": [\\\"\"*\\\"\"],\n          \\\"\"Action\\\"\": [\\\"\"*\\\"\"],\n          \\\"\"Principal\\\"\": [\\\"\"*\\\"\"]\n        }]\n      }\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdomain := \"com.aliyun.cn-hangzhou.oss\"\n\t\tif param := cfg.Get(\"domain\"); param != \"\" {\n\t\t\tdomain = param\n\t\t}\n\t\tdefaultVpc, err := vpc.NewNetwork(ctx, \"defaultVpc\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(\"tf-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRg, err := resourcemanager.NewResourceGroup(ctx, \"defaultRg\", \u0026resourcemanager.ResourceGroupArgs{\n\t\t\tDisplayName:       pulumi.String(\"tf-example-497\"),\n\t\t\tResourceGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewGatewayEndpoint(ctx, \"default\", \u0026vpc.GatewayEndpointArgs{\n\t\t\tGatewayEndpointDescrption: pulumi.String(\"test-gateway-endpoint\"),\n\t\t\tGatewayEndpointName:       pulumi.String(name),\n\t\t\tVpcId:                     defaultVpc.ID(),\n\t\t\tResourceGroupId:           defaultRg.ID(),\n\t\t\tServiceName:               pulumi.String(domain),\n\t\t\tPolicyDocument: pulumi.String(`      {\n        \\\"Version\\\": \\\"1\\\",\n        \\\"Statement\\\": [{\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Resource\\\": [\\\"*\\\"],\n          \\\"Action\\\": [\\\"*\\\"],\n          \\\"Principal\\\": [\\\"*\\\"]\n        }]\n      }\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourceGroup;\nimport com.pulumi.alicloud.resourcemanager.ResourceGroupArgs;\nimport com.pulumi.alicloud.vpc.GatewayEndpoint;\nimport com.pulumi.alicloud.vpc.GatewayEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var domain = config.get(\"domain\").orElse(\"com.aliyun.cn-hangzhou.oss\");\n        var defaultVpc = new Network(\"defaultVpc\", NetworkArgs.builder()\n            .description(\"tf-example\")\n            .build());\n\n        var defaultRg = new ResourceGroup(\"defaultRg\", ResourceGroupArgs.builder()\n            .displayName(\"tf-example-497\")\n            .resourceGroupName(name)\n            .build());\n\n        var default_ = new GatewayEndpoint(\"default\", GatewayEndpointArgs.builder()\n            .gatewayEndpointDescrption(\"test-gateway-endpoint\")\n            .gatewayEndpointName(name)\n            .vpcId(defaultVpc.id())\n            .resourceGroupId(defaultRg.id())\n            .serviceName(domain)\n            .policyDocument(\"\"\"\n      {\n        \\\"Version\\\": \\\"1\\\",\n        \\\"Statement\\\": [{\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Resource\\\": [\\\"*\\\"],\n          \\\"Action\\\": [\\\"*\\\"],\n          \\\"Principal\\\": [\\\"*\\\"]\n        }]\n      }\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  domain:\n    type: string\n    default: com.aliyun.cn-hangzhou.oss\nresources:\n  defaultVpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: tf-example\n  defaultRg:\n    type: alicloud:resourcemanager:ResourceGroup\n    properties:\n      displayName: tf-example-497\n      resourceGroupName: ${name}\n  default:\n    type: alicloud:vpc:GatewayEndpoint\n    properties:\n      gatewayEndpointDescrption: test-gateway-endpoint\n      gatewayEndpointName: ${name}\n      vpcId: ${defaultVpc.id}\n      resourceGroupId: ${defaultRg.id}\n      serviceName: ${domain}\n      policyDocument: |2\n              {\n                \\\"Version\\\": \\\"1\\\",\n                \\\"Statement\\\": [{\n                  \\\"Effect\\\": \\\"Allow\\\",\n                  \\\"Resource\\\": [\\\"*\\\"],\n                  \\\"Action\\\": [\\\"*\\\"],\n                  \\\"Principal\\\": [\\\"*\\\"]\n                }]\n              }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Gateway Endpoint can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/gatewayEndpoint:GatewayEndpoint example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the VPC gateway endpoint.\n"},"gatewayEndpointDescrption":{"type":"string","description":"The description of the VPC gateway endpoint.\nThe length of the description information is between 1 and 255 characters.\n"},"gatewayEndpointName":{"type":"string","description":"The name of the VPC gateway endpoint.\n"},"policyDocument":{"type":"string","description":"Access control policies for cloud services. This parameter is required when the cloud service is oss. For details about the syntax and structure of access policies, see [syntax and structure of permission Policies](https://help.aliyun.com/document_detail/93739.html).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"routeTables":{"type":"array","items":{"type":"string"},"description":"The ID list of the route table associated with the VPC gateway endpoint. **NOTE:** this argument cannot be set at the same time as \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.GatewayEndpointRouteTableAttachment`\" pulumi-lang-dotnet=\"`alicloud.vpc.GatewayEndpointRouteTableAttachment`\" pulumi-lang-go=\"`vpc.GatewayEndpointRouteTableAttachment`\" pulumi-lang-python=\"`vpc.GatewayEndpointRouteTableAttachment`\" pulumi-lang-yaml=\"`alicloud.vpc.GatewayEndpointRouteTableAttachment`\" pulumi-lang-java=\"`alicloud.vpc.GatewayEndpointRouteTableAttachment`\"\u003e`alicloud.vpc.GatewayEndpointRouteTableAttachment`\u003c/span\u003e.\n"},"serviceName":{"type":"string","description":"The endpoint service name.\n"},"status":{"type":"string","description":"The status of VPC gateway endpoint.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"}},"required":["createTime","resourceGroupId","routeTables","serviceName","status","vpcId"],"inputProperties":{"gatewayEndpointDescrption":{"type":"string","description":"The description of the VPC gateway endpoint.\nThe length of the description information is between 1 and 255 characters.\n"},"gatewayEndpointName":{"type":"string","description":"The name of the VPC gateway endpoint.\n"},"policyDocument":{"type":"string","description":"Access control policies for cloud services. This parameter is required when the cloud service is oss. For details about the syntax and structure of access policies, see [syntax and structure of permission Policies](https://help.aliyun.com/document_detail/93739.html).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"routeTables":{"type":"array","items":{"type":"string"},"description":"The ID list of the route table associated with the VPC gateway endpoint. **NOTE:** this argument cannot be set at the same time as \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.GatewayEndpointRouteTableAttachment`\" pulumi-lang-dotnet=\"`alicloud.vpc.GatewayEndpointRouteTableAttachment`\" pulumi-lang-go=\"`vpc.GatewayEndpointRouteTableAttachment`\" pulumi-lang-python=\"`vpc.GatewayEndpointRouteTableAttachment`\" pulumi-lang-yaml=\"`alicloud.vpc.GatewayEndpointRouteTableAttachment`\" pulumi-lang-java=\"`alicloud.vpc.GatewayEndpointRouteTableAttachment`\"\u003e`alicloud.vpc.GatewayEndpointRouteTableAttachment`\u003c/span\u003e.\n"},"serviceName":{"type":"string","description":"The endpoint service name.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n","willReplaceOnChanges":true}},"requiredInputs":["serviceName","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering GatewayEndpoint resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the VPC gateway endpoint.\n"},"gatewayEndpointDescrption":{"type":"string","description":"The description of the VPC gateway endpoint.\nThe length of the description information is between 1 and 255 characters.\n"},"gatewayEndpointName":{"type":"string","description":"The name of the VPC gateway endpoint.\n"},"policyDocument":{"type":"string","description":"Access control policies for cloud services. This parameter is required when the cloud service is oss. For details about the syntax and structure of access policies, see [syntax and structure of permission Policies](https://help.aliyun.com/document_detail/93739.html).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"routeTables":{"type":"array","items":{"type":"string"},"description":"The ID list of the route table associated with the VPC gateway endpoint. **NOTE:** this argument cannot be set at the same time as \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.GatewayEndpointRouteTableAttachment`\" pulumi-lang-dotnet=\"`alicloud.vpc.GatewayEndpointRouteTableAttachment`\" pulumi-lang-go=\"`vpc.GatewayEndpointRouteTableAttachment`\" pulumi-lang-python=\"`vpc.GatewayEndpointRouteTableAttachment`\" pulumi-lang-yaml=\"`alicloud.vpc.GatewayEndpointRouteTableAttachment`\" pulumi-lang-java=\"`alicloud.vpc.GatewayEndpointRouteTableAttachment`\"\u003e`alicloud.vpc.GatewayEndpointRouteTableAttachment`\u003c/span\u003e.\n"},"serviceName":{"type":"string","description":"The endpoint service name.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of VPC gateway endpoint.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/gatewayEndpointRouteTableAttachment:GatewayEndpointRouteTableAttachment":{"description":"Provides a VPC Gateway Endpoint Route Table Attachment resource. VPC gateway node association route.\n\nFor information about VPC Gateway Endpoint Route Table Attachment and how to use it, see [What is Gateway Endpoint Route Table Attachment](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/311148).\n\n\u003e **NOTE:** Available since v1.208.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaulteVpc = new alicloud.vpc.Network(\"defaulteVpc\", {description: \"test\"});\nconst defaultGE = new alicloud.vpc.GatewayEndpoint(\"defaultGE\", {\n    serviceName: \"com.aliyun.cn-hangzhou.oss\",\n    policyDocument: `        {\n          \\\\\"Version\\\\\": \\\\\"1\\\\\",\n          \\\\\"Statement\\\\\": [{\n            \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n            \\\\\"Resource\\\\\": [\\\\\"*\\\\\"],\n            \\\\\"Action\\\\\": [\\\\\"*\\\\\"],\n            \\\\\"Principal\\\\\": [\\\\\"*\\\\\"]\n          }]\n        }\n`,\n    vpcId: defaulteVpc.id,\n    gatewayEndpointDescrption: \"test-gateway-endpoint\",\n    gatewayEndpointName: `${name}1`,\n});\nconst defaultRT = new alicloud.vpc.RouteTable(\"defaultRT\", {\n    vpcId: defaulteVpc.id,\n    routeTableName: `${name}2`,\n});\nconst _default = new alicloud.vpc.GatewayEndpointRouteTableAttachment(\"default\", {\n    gatewayEndpointId: defaultGE.id,\n    routeTableId: defaultRT.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaulte_vpc = alicloud.vpc.Network(\"defaulteVpc\", description=\"test\")\ndefault_ge = alicloud.vpc.GatewayEndpoint(\"defaultGE\",\n    service_name=\"com.aliyun.cn-hangzhou.oss\",\n    policy_document=\"\"\"        {\n          \\\"Version\\\": \\\"1\\\",\n          \\\"Statement\\\": [{\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Resource\\\": [\\\"*\\\"],\n            \\\"Action\\\": [\\\"*\\\"],\n            \\\"Principal\\\": [\\\"*\\\"]\n          }]\n        }\n\"\"\",\n    vpc_id=defaulte_vpc.id,\n    gateway_endpoint_descrption=\"test-gateway-endpoint\",\n    gateway_endpoint_name=f\"{name}1\")\ndefault_rt = alicloud.vpc.RouteTable(\"defaultRT\",\n    vpc_id=defaulte_vpc.id,\n    route_table_name=f\"{name}2\")\ndefault = alicloud.vpc.GatewayEndpointRouteTableAttachment(\"default\",\n    gateway_endpoint_id=default_ge.id,\n    route_table_id=default_rt.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaulteVpc = new AliCloud.Vpc.Network(\"defaulteVpc\", new()\n    {\n        Description = \"test\",\n    });\n\n    var defaultGE = new AliCloud.Vpc.GatewayEndpoint(\"defaultGE\", new()\n    {\n        ServiceName = \"com.aliyun.cn-hangzhou.oss\",\n        PolicyDocument = @\"        {\n          \\\"\"Version\\\"\": \\\"\"1\\\"\",\n          \\\"\"Statement\\\"\": [{\n            \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n            \\\"\"Resource\\\"\": [\\\"\"*\\\"\"],\n            \\\"\"Action\\\"\": [\\\"\"*\\\"\"],\n            \\\"\"Principal\\\"\": [\\\"\"*\\\"\"]\n          }]\n        }\n\",\n        VpcId = defaulteVpc.Id,\n        GatewayEndpointDescrption = \"test-gateway-endpoint\",\n        GatewayEndpointName = $\"{name}1\",\n    });\n\n    var defaultRT = new AliCloud.Vpc.RouteTable(\"defaultRT\", new()\n    {\n        VpcId = defaulteVpc.Id,\n        RouteTableName = $\"{name}2\",\n    });\n\n    var @default = new AliCloud.Vpc.GatewayEndpointRouteTableAttachment(\"default\", new()\n    {\n        GatewayEndpointId = defaultGE.Id,\n        RouteTableId = defaultRT.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaulteVpc, err := vpc.NewNetwork(ctx, \"defaulteVpc\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGE, err := vpc.NewGatewayEndpoint(ctx, \"defaultGE\", \u0026vpc.GatewayEndpointArgs{\n\t\t\tServiceName: pulumi.String(\"com.aliyun.cn-hangzhou.oss\"),\n\t\t\tPolicyDocument: pulumi.String(`        {\n          \\\"Version\\\": \\\"1\\\",\n          \\\"Statement\\\": [{\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Resource\\\": [\\\"*\\\"],\n            \\\"Action\\\": [\\\"*\\\"],\n            \\\"Principal\\\": [\\\"*\\\"]\n          }]\n        }\n`),\n\t\t\tVpcId:                     defaulteVpc.ID(),\n\t\t\tGatewayEndpointDescrption: pulumi.String(\"test-gateway-endpoint\"),\n\t\t\tGatewayEndpointName:       pulumi.Sprintf(\"%v1\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRT, err := vpc.NewRouteTable(ctx, \"defaultRT\", \u0026vpc.RouteTableArgs{\n\t\t\tVpcId:          defaulteVpc.ID(),\n\t\t\tRouteTableName: pulumi.Sprintf(\"%v2\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewGatewayEndpointRouteTableAttachment(ctx, \"default\", \u0026vpc.GatewayEndpointRouteTableAttachmentArgs{\n\t\t\tGatewayEndpointId: defaultGE.ID(),\n\t\t\tRouteTableId:      defaultRT.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.GatewayEndpoint;\nimport com.pulumi.alicloud.vpc.GatewayEndpointArgs;\nimport com.pulumi.alicloud.vpc.RouteTable;\nimport com.pulumi.alicloud.vpc.RouteTableArgs;\nimport com.pulumi.alicloud.vpc.GatewayEndpointRouteTableAttachment;\nimport com.pulumi.alicloud.vpc.GatewayEndpointRouteTableAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaulteVpc = new Network(\"defaulteVpc\", NetworkArgs.builder()\n            .description(\"test\")\n            .build());\n\n        var defaultGE = new GatewayEndpoint(\"defaultGE\", GatewayEndpointArgs.builder()\n            .serviceName(\"com.aliyun.cn-hangzhou.oss\")\n            .policyDocument(\"\"\"\n        {\n          \\\"Version\\\": \\\"1\\\",\n          \\\"Statement\\\": [{\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Resource\\\": [\\\"*\\\"],\n            \\\"Action\\\": [\\\"*\\\"],\n            \\\"Principal\\\": [\\\"*\\\"]\n          }]\n        }\n            \"\"\")\n            .vpcId(defaulteVpc.id())\n            .gatewayEndpointDescrption(\"test-gateway-endpoint\")\n            .gatewayEndpointName(String.format(\"%s1\", name))\n            .build());\n\n        var defaultRT = new RouteTable(\"defaultRT\", RouteTableArgs.builder()\n            .vpcId(defaulteVpc.id())\n            .routeTableName(String.format(\"%s2\", name))\n            .build());\n\n        var default_ = new GatewayEndpointRouteTableAttachment(\"default\", GatewayEndpointRouteTableAttachmentArgs.builder()\n            .gatewayEndpointId(defaultGE.id())\n            .routeTableId(defaultRT.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaulteVpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: test\n  defaultGE:\n    type: alicloud:vpc:GatewayEndpoint\n    properties:\n      serviceName: com.aliyun.cn-hangzhou.oss\n      policyDocument: |2\n                {\n                  \\\"Version\\\": \\\"1\\\",\n                  \\\"Statement\\\": [{\n                    \\\"Effect\\\": \\\"Allow\\\",\n                    \\\"Resource\\\": [\\\"*\\\"],\n                    \\\"Action\\\": [\\\"*\\\"],\n                    \\\"Principal\\\": [\\\"*\\\"]\n                  }]\n                }\n      vpcId: ${defaulteVpc.id}\n      gatewayEndpointDescrption: test-gateway-endpoint\n      gatewayEndpointName: ${name}1\n  defaultRT:\n    type: alicloud:vpc:RouteTable\n    properties:\n      vpcId: ${defaulteVpc.id}\n      routeTableName: ${name}2\n  default:\n    type: alicloud:vpc:GatewayEndpointRouteTableAttachment\n    properties:\n      gatewayEndpointId: ${defaultGE.id}\n      routeTableId: ${defaultRT.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Gateway Endpoint Route Table Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/gatewayEndpointRouteTableAttachment:GatewayEndpointRouteTableAttachment example \u003cgateway_endpoint_id\u003e:\u003croute_table_id\u003e\n```\n\n","properties":{"gatewayEndpointId":{"type":"string","description":"The ID of the gateway endpoint instance to which you want to associate the route table.\n"},"routeTableId":{"type":"string","description":"Routing table ID.\n"},"status":{"type":"string","description":"Status of the gateway endpoint.\n"}},"required":["gatewayEndpointId","routeTableId","status"],"inputProperties":{"gatewayEndpointId":{"type":"string","description":"The ID of the gateway endpoint instance to which you want to associate the route table.\n","willReplaceOnChanges":true},"routeTableId":{"type":"string","description":"Routing table ID.\n","willReplaceOnChanges":true}},"requiredInputs":["gatewayEndpointId","routeTableId"],"stateInputs":{"description":"Input properties used for looking up and filtering GatewayEndpointRouteTableAttachment resources.\n","properties":{"gatewayEndpointId":{"type":"string","description":"The ID of the gateway endpoint instance to which you want to associate the route table.\n","willReplaceOnChanges":true},"routeTableId":{"type":"string","description":"Routing table ID.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"Status of the gateway endpoint.\n"}},"type":"object"}},"alicloud:vpc/gatewayRouteTableAttachment:GatewayRouteTableAttachment":{"description":"Provides a VPC Gateway Route Table Attachment resource. \n\nFor information about VPC Gateway Route Table Attachment and how to use it, see [What is Gateway Route Table Attachment](https://www.alibabacloud.com/help/doc-detail/174112.htm).\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.vpc.Network(\"example\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: \"terraform-example\",\n});\nconst exampleRouteTable = new alicloud.vpc.RouteTable(\"example\", {\n    vpcId: example.id,\n    routeTableName: \"terraform-example\",\n    description: \"terraform-example\",\n    associateType: \"Gateway\",\n});\nconst exampleIpv4Gateway = new alicloud.vpc.Ipv4Gateway(\"example\", {\n    ipv4GatewayName: \"terraform-example\",\n    vpcId: example.id,\n    enabled: true,\n});\nconst exampleGatewayRouteTableAttachment = new alicloud.vpc.GatewayRouteTableAttachment(\"example\", {\n    ipv4GatewayId: exampleIpv4Gateway.id,\n    routeTableId: exampleRouteTable.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.vpc.Network(\"example\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=\"terraform-example\")\nexample_route_table = alicloud.vpc.RouteTable(\"example\",\n    vpc_id=example.id,\n    route_table_name=\"terraform-example\",\n    description=\"terraform-example\",\n    associate_type=\"Gateway\")\nexample_ipv4_gateway = alicloud.vpc.Ipv4Gateway(\"example\",\n    ipv4_gateway_name=\"terraform-example\",\n    vpc_id=example.id,\n    enabled=True)\nexample_gateway_route_table_attachment = alicloud.vpc.GatewayRouteTableAttachment(\"example\",\n    ipv4_gateway_id=example_ipv4_gateway.id,\n    route_table_id=example_route_table.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = \"terraform-example\",\n    });\n\n    var exampleRouteTable = new AliCloud.Vpc.RouteTable(\"example\", new()\n    {\n        VpcId = example.Id,\n        RouteTableName = \"terraform-example\",\n        Description = \"terraform-example\",\n        AssociateType = \"Gateway\",\n    });\n\n    var exampleIpv4Gateway = new AliCloud.Vpc.Ipv4Gateway(\"example\", new()\n    {\n        Ipv4GatewayName = \"terraform-example\",\n        VpcId = example.Id,\n        Enabled = true,\n    });\n\n    var exampleGatewayRouteTableAttachment = new AliCloud.Vpc.GatewayRouteTableAttachment(\"example\", new()\n    {\n        Ipv4GatewayId = exampleIpv4Gateway.Id,\n        RouteTableId = exampleRouteTable.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRouteTable, err := vpc.NewRouteTable(ctx, \"example\", \u0026vpc.RouteTableArgs{\n\t\t\tVpcId:          example.ID(),\n\t\t\tRouteTableName: pulumi.String(\"terraform-example\"),\n\t\t\tDescription:    pulumi.String(\"terraform-example\"),\n\t\t\tAssociateType:  pulumi.String(\"Gateway\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleIpv4Gateway, err := vpc.NewIpv4Gateway(ctx, \"example\", \u0026vpc.Ipv4GatewayArgs{\n\t\t\tIpv4GatewayName: pulumi.String(\"terraform-example\"),\n\t\t\tVpcId:           example.ID(),\n\t\t\tEnabled:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewGatewayRouteTableAttachment(ctx, \"example\", \u0026vpc.GatewayRouteTableAttachmentArgs{\n\t\t\tIpv4GatewayId: exampleIpv4Gateway.ID(),\n\t\t\tRouteTableId:  exampleRouteTable.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.RouteTable;\nimport com.pulumi.alicloud.vpc.RouteTableArgs;\nimport com.pulumi.alicloud.vpc.Ipv4Gateway;\nimport com.pulumi.alicloud.vpc.Ipv4GatewayArgs;\nimport com.pulumi.alicloud.vpc.GatewayRouteTableAttachment;\nimport com.pulumi.alicloud.vpc.GatewayRouteTableAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(\"terraform-example\")\n            .build());\n\n        var exampleRouteTable = new RouteTable(\"exampleRouteTable\", RouteTableArgs.builder()\n            .vpcId(example.id())\n            .routeTableName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .associateType(\"Gateway\")\n            .build());\n\n        var exampleIpv4Gateway = new Ipv4Gateway(\"exampleIpv4Gateway\", Ipv4GatewayArgs.builder()\n            .ipv4GatewayName(\"terraform-example\")\n            .vpcId(example.id())\n            .enabled(true)\n            .build());\n\n        var exampleGatewayRouteTableAttachment = new GatewayRouteTableAttachment(\"exampleGatewayRouteTableAttachment\", GatewayRouteTableAttachmentArgs.builder()\n            .ipv4GatewayId(exampleIpv4Gateway.id())\n            .routeTableId(exampleRouteTable.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName: terraform-example\n  exampleRouteTable:\n    type: alicloud:vpc:RouteTable\n    name: example\n    properties:\n      vpcId: ${example.id}\n      routeTableName: terraform-example\n      description: terraform-example\n      associateType: Gateway\n  exampleIpv4Gateway:\n    type: alicloud:vpc:Ipv4Gateway\n    name: example\n    properties:\n      ipv4GatewayName: terraform-example\n      vpcId: ${example.id}\n      enabled: 'true'\n  exampleGatewayRouteTableAttachment:\n    type: alicloud:vpc:GatewayRouteTableAttachment\n    name: example\n    properties:\n      ipv4GatewayId: ${exampleIpv4Gateway.id}\n      routeTableId: ${exampleRouteTable.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Gateway Route Table Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/gatewayRouteTableAttachment:GatewayRouteTableAttachment example \u003croute_table_id\u003e:\u003cipv4_gateway_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to only precheck this request. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ipv4GatewayId":{"type":"string","description":"The ID of the IPv4 Gateway instance.\n"},"routeTableId":{"type":"string","description":"The ID of the Gateway route table to be bound.\n"},"status":{"type":"string","description":"The status of the IPv4 Gateway instance. Value:\n- **Creating**: The function is being created.\n- **Created**: Created and available.\n- **Modifying**: is being modified.\n- **Deleting**: Deleting.\n- **Deleted**: Deleted.\n- **Activating**: enabled.\n"}},"required":["createTime","ipv4GatewayId","routeTableId","status"],"inputProperties":{"dryRun":{"type":"boolean","description":"Specifies whether to only precheck this request. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ipv4GatewayId":{"type":"string","description":"The ID of the IPv4 Gateway instance.\n","willReplaceOnChanges":true},"routeTableId":{"type":"string","description":"The ID of the Gateway route table to be bound.\n","willReplaceOnChanges":true}},"requiredInputs":["ipv4GatewayId","routeTableId"],"stateInputs":{"description":"Input properties used for looking up and filtering GatewayRouteTableAttachment resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to only precheck this request. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ipv4GatewayId":{"type":"string","description":"The ID of the IPv4 Gateway instance.\n","willReplaceOnChanges":true},"routeTableId":{"type":"string","description":"The ID of the Gateway route table to be bound.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the IPv4 Gateway instance. Value:\n- **Creating**: The function is being created.\n- **Created**: Created and available.\n- **Modifying**: is being modified.\n- **Deleting**: Deleting.\n- **Deleted**: Deleted.\n- **Activating**: enabled.\n"}},"type":"object"}},"alicloud:vpc/hAVip:HAVip":{"description":"Provides a HaVip resource, see [What is HAVIP](https://www.alibabacloud.com/help/zh/vpc/developer-reference/api-createhavip).\n\n\u003e **NOTE:** Terraform will auto build havip instance  while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.HAVip`\" pulumi-lang-dotnet=\"`alicloud.vpc.HAVip`\" pulumi-lang-go=\"`vpc.HAVip`\" pulumi-lang-python=\"`vpc.HAVip`\" pulumi-lang-yaml=\"`alicloud.vpc.HAVip`\" pulumi-lang-java=\"`alicloud.vpc.HAVip`\"\u003e`alicloud.vpc.HAVip`\u003c/span\u003e to build a havip resource.\n\n\u003e **NOTE:** Available since v1.18.0.\n\n\u003e **DEPRECATED:**  This resource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.vpc.HaVipv2 \" pulumi-lang-dotnet=\" alicloud.vpc.HaVipv2 \" pulumi-lang-go=\" vpc.HaVipv2 \" pulumi-lang-python=\" vpc.HaVipv2 \" pulumi-lang-yaml=\" alicloud.vpc.HaVipv2 \" pulumi-lang-java=\" alicloud.vpc.HaVipv2 \"\u003e alicloud.vpc.HaVipv2 \u003c/span\u003efrom version 1.205.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst example = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: example.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst exampleHAVip = new alicloud.vpc.HAVip(\"example\", {\n    vswitchId: exampleSwitch.id,\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=example.id,\n    zone_id=default.zones[0].id)\nexample_ha_vip = alicloud.vpc.HAVip(\"example\",\n    vswitch_id=example_switch.id,\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = example.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var exampleHAVip = new AliCloud.Vpc.HAVip(\"example\", new()\n    {\n        VswitchId = exampleSwitch.Id,\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       example.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewHAVip(ctx, \"example\", \u0026vpc.HAVipArgs{\n\t\t\tVswitchId:   exampleSwitch.ID(),\n\t\t\tDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.HAVip;\nimport com.pulumi.alicloud.vpc.HAVipArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(example.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var exampleHAVip = new HAVip(\"exampleHAVip\", HAVipArgs.builder()\n            .vswitchId(exampleSwitch.id())\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${example.id}\n      zoneId: ${default.zones[0].id}\n  exampleHAVip:\n    type: alicloud:vpc:HAVip\n    name: example\n    properties:\n      vswitchId: ${exampleSwitch.id}\n      description: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe havip can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/hAVip:HAVip foo havip-abc123456\n```\n\n","properties":{"associatedEipAddresses":{"type":"array","items":{"type":"string"},"description":"The elastic IP address (EIP) associated with the HAVIP.\n"},"associatedInstanceType":{"type":"string","description":"The type of the instance with which the HAVIP is associated. Valid values:\n- `EcsInstance`: an ECS instance.\n- `NetworkInterface`: an ENI.\n"},"associatedInstances":{"type":"array","items":{"type":"string"},"description":"The ID of the instance with which the HAVIP is associated.\n"},"createTime":{"type":"string","description":"The time when the HAVIP was created.\n"},"description":{"type":"string","description":"The description of the HaVip instance.\n"},"haVipId":{"type":"string","description":"The ID of the HAVIP.\n"},"haVipName":{"type":"string","description":"The name of the HAVIP.\n"},"havipName":{"type":"string","description":"The name of the HaVip instance.\n","deprecationMessage":"Field 'havip_name' has been deprecated from provider version 1.205.0. New field 'ha_vip_name' instead."},"ipAddress":{"type":"string","description":"The ip address of the HaVip. If not filled, the default will be assigned one from the vswitch.\n"},"masterInstanceId":{"type":"string","description":"The ID of the active instance that is associated with the HAVIP.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the HAVIP belongs.\n"},"status":{"type":"string","description":"(Available since v1.120.0) The status of the HaVip instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the HAVIP belongs.\n"},"vswitchId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eof the HaVip, the field can't be changed.\n"}},"required":["associatedEipAddresses","associatedInstanceType","associatedInstances","createTime","haVipId","haVipName","havipName","ipAddress","masterInstanceId","resourceGroupId","status","vpcId","vswitchId"],"inputProperties":{"description":{"type":"string","description":"The description of the HaVip instance.\n"},"haVipName":{"type":"string","description":"The name of the HAVIP.\n"},"havipName":{"type":"string","description":"The name of the HaVip instance.\n","deprecationMessage":"Field 'havip_name' has been deprecated from provider version 1.205.0. New field 'ha_vip_name' instead."},"ipAddress":{"type":"string","description":"The ip address of the HaVip. If not filled, the default will be assigned one from the vswitch.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the HAVIP belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags.\n"},"vswitchId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eof the HaVip, the field can't be changed.\n","willReplaceOnChanges":true}},"requiredInputs":["vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering HAVip resources.\n","properties":{"associatedEipAddresses":{"type":"array","items":{"type":"string"},"description":"The elastic IP address (EIP) associated with the HAVIP.\n"},"associatedInstanceType":{"type":"string","description":"The type of the instance with which the HAVIP is associated. Valid values:\n- `EcsInstance`: an ECS instance.\n- `NetworkInterface`: an ENI.\n"},"associatedInstances":{"type":"array","items":{"type":"string"},"description":"The ID of the instance with which the HAVIP is associated.\n"},"createTime":{"type":"string","description":"The time when the HAVIP was created.\n"},"description":{"type":"string","description":"The description of the HaVip instance.\n"},"haVipId":{"type":"string","description":"The ID of the HAVIP.\n"},"haVipName":{"type":"string","description":"The name of the HAVIP.\n"},"havipName":{"type":"string","description":"The name of the HaVip instance.\n","deprecationMessage":"Field 'havip_name' has been deprecated from provider version 1.205.0. New field 'ha_vip_name' instead."},"ipAddress":{"type":"string","description":"The ip address of the HaVip. If not filled, the default will be assigned one from the vswitch.\n","willReplaceOnChanges":true},"masterInstanceId":{"type":"string","description":"The ID of the active instance that is associated with the HAVIP.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the HAVIP belongs.\n"},"status":{"type":"string","description":"(Available since v1.120.0) The status of the HaVip instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The list of tags.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the HAVIP belongs.\n"},"vswitchId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" vswitchId \" pulumi-lang-dotnet=\" VswitchId \" pulumi-lang-go=\" vswitchId \" pulumi-lang-python=\" vswitch_id \" pulumi-lang-yaml=\" vswitchId \" pulumi-lang-java=\" vswitchId \"\u003e vswitch_id \u003c/span\u003eof the HaVip, the field can't be changed.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/hAVipAttachment:HAVipAttachment":{"description":"Provides a VPC Ha Vip Attachment resource.\n\nAttaching ECS instance to Havip.\n\nFor information about VPC Ha Vip Attachment and how to use it, see [What is Ha Vip Attachment](https://next.api.alibabacloud.com/document/Vpc/2016-04-28/AssociateHaVip).\n\n\u003e **NOTE:** Available since v1.18.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst example = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst exampleGetInstanceTypes = Promise.all([_default, example]).then(([_default, example]) =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    imageId: example.images?.[0]?.id,\n}));\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst exampleHaVipv2 = new alicloud.vpc.HaVipv2(\"example\", {\n    vswitchId: exampleSwitch.id,\n    description: name,\n});\nconst exampleSecurityGroup = new alicloud.ecs.SecurityGroup(\"example\", {\n    securityGroupName: name,\n    description: name,\n    vpcId: exampleNetwork.id,\n});\nconst exampleInstance = new alicloud.ecs.Instance(\"example\", {\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchId: exampleSwitch.id,\n    imageId: example.then(example =\u003e example.images?.[0]?.id),\n    instanceType: exampleGetInstanceTypes.then(exampleGetInstanceTypes =\u003e exampleGetInstanceTypes.instanceTypes?.[0]?.id),\n    instanceChargeType: \"PostPaid\",\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 5,\n    securityGroups: [exampleSecurityGroup.id],\n    instanceName: name,\n    userData: \"echo 'net.ipv4.ip_forward=1'\u003e\u003e /etc/sysctl.conf\",\n    systemDiskCategory: \"cloud_essd\",\n});\nconst exampleHAVipAttachment = new alicloud.vpc.HAVipAttachment(\"example\", {\n    haVipId: exampleHaVipv2.id,\n    instanceId: exampleInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\nexample_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    image_id=example.images[0].id)\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=example_network.id,\n    zone_id=default.zones[0].id)\nexample_ha_vipv2 = alicloud.vpc.HaVipv2(\"example\",\n    vswitch_id=example_switch.id,\n    description=name)\nexample_security_group = alicloud.ecs.SecurityGroup(\"example\",\n    security_group_name=name,\n    description=name,\n    vpc_id=example_network.id)\nexample_instance = alicloud.ecs.Instance(\"example\",\n    availability_zone=default.zones[0].id,\n    vswitch_id=example_switch.id,\n    image_id=example.images[0].id,\n    instance_type=example_get_instance_types.instance_types[0].id,\n    instance_charge_type=\"PostPaid\",\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=5,\n    security_groups=[example_security_group.id],\n    instance_name=name,\n    user_data=\"echo 'net.ipv4.ip_forward=1'\u003e\u003e /etc/sysctl.conf\",\n    system_disk_category=\"cloud_essd\")\nexample_ha_vip_attachment = alicloud.vpc.HAVipAttachment(\"example\",\n    ha_vip_id=example_ha_vipv2.id,\n    instance_id=example_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var example = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var exampleGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        ImageId = example.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var exampleHaVipv2 = new AliCloud.Vpc.HaVipv2(\"example\", new()\n    {\n        VswitchId = exampleSwitch.Id,\n        Description = name,\n    });\n\n    var exampleSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"example\", new()\n    {\n        SecurityGroupName = name,\n        Description = name,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleInstance = new AliCloud.Ecs.Instance(\"example\", new()\n    {\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchId = exampleSwitch.Id,\n        ImageId = example.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = exampleGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        InstanceChargeType = \"PostPaid\",\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 5,\n        SecurityGroups = new[]\n        {\n            exampleSecurityGroup.Id,\n        },\n        InstanceName = name,\n        UserData = \"echo 'net.ipv4.ip_forward=1'\u003e\u003e /etc/sysctl.conf\",\n        SystemDiskCategory = \"cloud_essd\",\n    });\n\n    var exampleHAVipAttachment = new AliCloud.Vpc.HAVipAttachment(\"example\", new()\n    {\n        HaVipId = exampleHaVipv2.Id,\n        InstanceId = exampleInstance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tImageId:          pulumi.StringRef(example.Images[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleHaVipv2, err := vpc.NewHaVipv2(ctx, \"example\", \u0026vpc.HaVipv2Args{\n\t\t\tVswitchId:   exampleSwitch.ID(),\n\t\t\tDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"example\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(name),\n\t\t\tDescription:       pulumi.String(name),\n\t\t\tVpcId:             exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInstance, err := ecs.NewInstance(ctx, \"example\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone:        pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchId:               exampleSwitch.ID(),\n\t\t\tImageId:                 pulumi.String(example.Images[0].Id),\n\t\t\tInstanceType:            pulumi.String(exampleGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tInstanceChargeType:      pulumi.String(\"PostPaid\"),\n\t\t\tInternetChargeType:      pulumi.String(\"PayByTraffic\"),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(5),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\texampleSecurityGroup.ID(),\n\t\t\t},\n\t\t\tInstanceName:       pulumi.String(name),\n\t\t\tUserData:           pulumi.String(\"echo 'net.ipv4.ip_forward=1'\u003e\u003e /etc/sysctl.conf\"),\n\t\t\tSystemDiskCategory: pulumi.String(\"cloud_essd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewHAVipAttachment(ctx, \"example\", \u0026vpc.HAVipAttachmentArgs{\n\t\t\tHaVipId:    exampleHaVipv2.ID(),\n\t\t\tInstanceId: exampleInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.HaVipv2;\nimport com.pulumi.alicloud.vpc.HaVipv2Args;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.vpc.HAVipAttachment;\nimport com.pulumi.alicloud.vpc.HAVipAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var example = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        final var exampleGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .imageId(example.images()[0].id())\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var exampleHaVipv2 = new HaVipv2(\"exampleHaVipv2\", HaVipv2Args.builder()\n            .vswitchId(exampleSwitch.id())\n            .description(name)\n            .build());\n\n        var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(name)\n            .description(name)\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .vswitchId(exampleSwitch.id())\n            .imageId(example.images()[0].id())\n            .instanceType(exampleGetInstanceTypes.instanceTypes()[0].id())\n            .instanceChargeType(\"PostPaid\")\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(5)\n            .securityGroups(exampleSecurityGroup.id())\n            .instanceName(name)\n            .userData(\"echo 'net.ipv4.ip_forward=1'\u003e\u003e /etc/sysctl.conf\")\n            .systemDiskCategory(\"cloud_essd\")\n            .build());\n\n        var exampleHAVipAttachment = new HAVipAttachment(\"exampleHAVipAttachment\", HAVipAttachmentArgs.builder()\n            .haVipId(exampleHaVipv2.id())\n            .instanceId(exampleInstance.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${default.zones[0].id}\n  exampleHaVipv2:\n    type: alicloud:vpc:HaVipv2\n    name: example\n    properties:\n      vswitchId: ${exampleSwitch.id}\n      description: ${name}\n  exampleSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: example\n    properties:\n      securityGroupName: ${name}\n      description: ${name}\n      vpcId: ${exampleNetwork.id}\n  exampleInstance:\n    type: alicloud:ecs:Instance\n    name: example\n    properties:\n      availabilityZone: ${default.zones[0].id}\n      vswitchId: ${exampleSwitch.id}\n      imageId: ${example.images[0].id}\n      instanceType: ${exampleGetInstanceTypes.instanceTypes[0].id}\n      instanceChargeType: PostPaid\n      internetChargeType: PayByTraffic\n      internetMaxBandwidthOut: 5\n      securityGroups:\n        - ${exampleSecurityGroup.id}\n      instanceName: ${name}\n      userData: echo 'net.ipv4.ip_forward=1'\u003e\u003e /etc/sysctl.conf\n      systemDiskCategory: cloud_essd\n  exampleHAVipAttachment:\n    type: alicloud:vpc:HAVipAttachment\n    name: example\n    properties:\n      haVipId: ${exampleHaVipv2.id}\n      instanceId: ${exampleInstance.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  example:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n  exampleGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        imageId: ${example.images[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Ha Vip Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/hAVipAttachment:HAVipAttachment example \u003cha_vip_id\u003e:\u003cinstance_id\u003e\n```\n\n","properties":{"force":{"type":"boolean","description":"Specifies whether to force delete the snapshot.\n"},"haVipId":{"type":"string","description":"The ID of the HaVip instance.\n"},"havipId":{"type":"string","description":". Field 'havip_id' has been deprecated from provider version 1.259.0. New field 'ha_vip_id' instead.\n","deprecationMessage":"Field 'havip_id' has been deprecated since provider version 1.211.0. New field 'ha_vip_id' instead."},"instanceId":{"type":"string","description":"The ID of the ECS instance bound to the HaVip instance.\n"},"instanceType":{"type":"string","description":"The type of the instance to be associated with the HAVIP. Valid values: * `EcsInstance`: an ECS instance * `NetworkInterface`: an ENI. If you want to associate the HAVIP with an ENI, this parameter is required.\n"},"status":{"type":"string","description":"The status of the resource\n"}},"required":["haVipId","havipId","instanceId","instanceType","status"],"inputProperties":{"force":{"type":"boolean","description":"Specifies whether to force delete the snapshot.\n"},"haVipId":{"type":"string","description":"The ID of the HaVip instance.\n","willReplaceOnChanges":true},"havipId":{"type":"string","description":". Field 'havip_id' has been deprecated from provider version 1.259.0. New field 'ha_vip_id' instead.\n","deprecationMessage":"Field 'havip_id' has been deprecated since provider version 1.211.0. New field 'ha_vip_id' instead.","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the ECS instance bound to the HaVip instance.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of the instance to be associated with the HAVIP. Valid values: * `EcsInstance`: an ECS instance * `NetworkInterface`: an ENI. If you want to associate the HAVIP with an ENI, this parameter is required.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering HAVipAttachment resources.\n","properties":{"force":{"type":"boolean","description":"Specifies whether to force delete the snapshot.\n"},"haVipId":{"type":"string","description":"The ID of the HaVip instance.\n","willReplaceOnChanges":true},"havipId":{"type":"string","description":". Field 'havip_id' has been deprecated from provider version 1.259.0. New field 'ha_vip_id' instead.\n","deprecationMessage":"Field 'havip_id' has been deprecated since provider version 1.211.0. New field 'ha_vip_id' instead.","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the ECS instance bound to the HaVip instance.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of the instance to be associated with the HAVIP. Valid values: * `EcsInstance`: an ECS instance * `NetworkInterface`: an ENI. If you want to associate the HAVIP with an ENI, this parameter is required.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object"}},"alicloud:vpc/haVipv2:HaVipv2":{"description":"Provides a VPC Ha Vip resource.\n\nHighly available virtual IP.\n\nFor information about VPC Ha Vip and how to use it, see [What is Ha Vip](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/createhavip).\n\n\u003e **NOTE:** Available since v1.205.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultVpc = new alicloud.vpc.Network(\"defaultVpc\", {\n    description: name,\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultVswitch = new alicloud.vpc.Switch(\"defaultVswitch\", {\n    vpcId: defaultVpc.id,\n    cidrBlock: \"192.168.0.0/21\",\n    vswitchName: `${name}1`,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    description: name,\n});\nconst defaultRg = new alicloud.resourcemanager.ResourceGroup(\"defaultRg\", {\n    displayName: \"tf-example-defaultRg\",\n    resourceGroupName: `${name}2`,\n});\nconst changeRg = new alicloud.resourcemanager.ResourceGroup(\"changeRg\", {\n    displayName: \"tf-example-changeRg\",\n    resourceGroupName: `${name}3`,\n});\nconst defaultHaVipv2 = new alicloud.vpc.HaVipv2(\"default\", {\n    description: name,\n    vswitchId: defaultVswitch.id,\n    haVipName: name,\n    ipAddress: \"192.168.1.101\",\n    resourceGroupId: defaultRg.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_vpc = alicloud.vpc.Network(\"defaultVpc\",\n    description=name,\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ndefault_vswitch = alicloud.vpc.Switch(\"defaultVswitch\",\n    vpc_id=default_vpc.id,\n    cidr_block=\"192.168.0.0/21\",\n    vswitch_name=f\"{name}1\",\n    zone_id=default.zones[0].id,\n    description=name)\ndefault_rg = alicloud.resourcemanager.ResourceGroup(\"defaultRg\",\n    display_name=\"tf-example-defaultRg\",\n    resource_group_name=f\"{name}2\")\nchange_rg = alicloud.resourcemanager.ResourceGroup(\"changeRg\",\n    display_name=\"tf-example-changeRg\",\n    resource_group_name=f\"{name}3\")\ndefault_ha_vipv2 = alicloud.vpc.HaVipv2(\"default\",\n    description=name,\n    vswitch_id=default_vswitch.id,\n    ha_vip_name=name,\n    ip_address=\"192.168.1.101\",\n    resource_group_id=default_rg.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultVpc = new AliCloud.Vpc.Network(\"defaultVpc\", new()\n    {\n        Description = name,\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultVswitch = new AliCloud.Vpc.Switch(\"defaultVswitch\", new()\n    {\n        VpcId = defaultVpc.Id,\n        CidrBlock = \"192.168.0.0/21\",\n        VswitchName = $\"{name}1\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        Description = name,\n    });\n\n    var defaultRg = new AliCloud.ResourceManager.ResourceGroup(\"defaultRg\", new()\n    {\n        DisplayName = \"tf-example-defaultRg\",\n        ResourceGroupName = $\"{name}2\",\n    });\n\n    var changeRg = new AliCloud.ResourceManager.ResourceGroup(\"changeRg\", new()\n    {\n        DisplayName = \"tf-example-changeRg\",\n        ResourceGroupName = $\"{name}3\",\n    });\n\n    var defaultHaVipv2 = new AliCloud.Vpc.HaVipv2(\"default\", new()\n    {\n        Description = name,\n        VswitchId = defaultVswitch.Id,\n        HaVipName = name,\n        IpAddress = \"192.168.1.101\",\n        ResourceGroupId = defaultRg.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVpc, err := vpc.NewNetwork(ctx, \"defaultVpc\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t\tVpcName:     pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVswitch, err := vpc.NewSwitch(ctx, \"defaultVswitch\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultVpc.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"192.168.0.0/21\"),\n\t\t\tVswitchName: pulumi.Sprintf(\"%v1\", name),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRg, err := resourcemanager.NewResourceGroup(ctx, \"defaultRg\", \u0026resourcemanager.ResourceGroupArgs{\n\t\t\tDisplayName:       pulumi.String(\"tf-example-defaultRg\"),\n\t\t\tResourceGroupName: pulumi.Sprintf(\"%v2\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.NewResourceGroup(ctx, \"changeRg\", \u0026resourcemanager.ResourceGroupArgs{\n\t\t\tDisplayName:       pulumi.String(\"tf-example-changeRg\"),\n\t\t\tResourceGroupName: pulumi.Sprintf(\"%v3\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewHaVipv2(ctx, \"default\", \u0026vpc.HaVipv2Args{\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tVswitchId:       defaultVswitch.ID(),\n\t\t\tHaVipName:       pulumi.String(name),\n\t\t\tIpAddress:       pulumi.String(\"192.168.1.101\"),\n\t\t\tResourceGroupId: defaultRg.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourceGroup;\nimport com.pulumi.alicloud.resourcemanager.ResourceGroupArgs;\nimport com.pulumi.alicloud.vpc.HaVipv2;\nimport com.pulumi.alicloud.vpc.HaVipv2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultVpc = new Network(\"defaultVpc\", NetworkArgs.builder()\n            .description(name)\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultVswitch = new Switch(\"defaultVswitch\", SwitchArgs.builder()\n            .vpcId(defaultVpc.id())\n            .cidrBlock(\"192.168.0.0/21\")\n            .vswitchName(String.format(\"%s1\", name))\n            .zoneId(default_.zones()[0].id())\n            .description(name)\n            .build());\n\n        var defaultRg = new ResourceGroup(\"defaultRg\", ResourceGroupArgs.builder()\n            .displayName(\"tf-example-defaultRg\")\n            .resourceGroupName(String.format(\"%s2\", name))\n            .build());\n\n        var changeRg = new ResourceGroup(\"changeRg\", ResourceGroupArgs.builder()\n            .displayName(\"tf-example-changeRg\")\n            .resourceGroupName(String.format(\"%s3\", name))\n            .build());\n\n        var defaultHaVipv2 = new HaVipv2(\"defaultHaVipv2\", HaVipv2Args.builder()\n            .description(name)\n            .vswitchId(defaultVswitch.id())\n            .haVipName(name)\n            .ipAddress(\"192.168.1.101\")\n            .resourceGroupId(defaultRg.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultVpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: ${name}\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  defaultVswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultVpc.id}\n      cidrBlock: 192.168.0.0/21\n      vswitchName: ${name}1\n      zoneId: ${default.zones[0].id}\n      description: ${name}\n  defaultRg:\n    type: alicloud:resourcemanager:ResourceGroup\n    properties:\n      displayName: tf-example-defaultRg\n      resourceGroupName: ${name}2\n  changeRg:\n    type: alicloud:resourcemanager:ResourceGroup\n    properties:\n      displayName: tf-example-changeRg\n      resourceGroupName: ${name}3\n  defaultHaVipv2:\n    type: alicloud:vpc:HaVipv2\n    name: default\n    properties:\n      description: ${name}\n      vswitchId: ${defaultVswitch.id}\n      haVipName: ${name}\n      ipAddress: 192.168.1.101\n      resourceGroupId: ${defaultRg.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Ha Vip can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/haVipv2:HaVipv2 example \u003cid\u003e\n```\n\n","properties":{"associatedEipAddresses":{"type":"array","items":{"type":"string"},"description":"EIP bound to HaVip\n"},"associatedInstanceType":{"type":"string","description":"The type of the instance that is bound to the HaVip. Value:\n- `EcsInstance`: ECS instance.\n- `NetworkInterface`: ENI instance.\n"},"associatedInstances":{"type":"array","items":{"type":"string"},"description":"The ID of the ECS instance to be associated with the HAVIP.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"The description of the HAVIP. The description must be 1 to 255 characters in length and cannot start with `http://` or `https://`.\n"},"haVipId":{"type":"string","description":"The ID of the HaVip instance.\n"},"haVipName":{"type":"string","description":"The name of the HAVIP. The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.\n"},"havipName":{"type":"string","description":". Field 'havip_name' has been deprecated from provider version 1.259.0. New field 'ha_vip_name' instead.\n","deprecationMessage":"Field 'havip_name' has been deprecated from provider version 1.205.0. New field 'ha_vip_name' instead."},"ipAddress":{"type":"string","description":"The IP address of the HAVIP. The specified IP address must be an idle IP address that falls within the CIDR block of the vSwitch. If this parameter is not set, an idle IP address from the CIDR block of the vSwitch is randomly assigned to the HAVIP.\n"},"masterInstanceId":{"type":"string","description":"The primary instance ID bound to HaVip\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the HAVIP belongs.\n"},"status":{"type":"string","description":"The status of this resource instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of HaVip.\n"},"vpcId":{"type":"string","description":"The VPC ID to which the HaVip instance belongs\n"},"vswitchId":{"type":"string","description":"The switch ID to which the HaVip instance belongs\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["associatedEipAddresses","associatedInstanceType","associatedInstances","createTime","haVipId","haVipName","havipName","ipAddress","masterInstanceId","resourceGroupId","status","vpcId","vswitchId"],"inputProperties":{"description":{"type":"string","description":"The description of the HAVIP. The description must be 1 to 255 characters in length and cannot start with `http://` or `https://`.\n"},"haVipName":{"type":"string","description":"The name of the HAVIP. The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.\n"},"havipName":{"type":"string","description":". Field 'havip_name' has been deprecated from provider version 1.259.0. New field 'ha_vip_name' instead.\n","deprecationMessage":"Field 'havip_name' has been deprecated from provider version 1.205.0. New field 'ha_vip_name' instead."},"ipAddress":{"type":"string","description":"The IP address of the HAVIP. The specified IP address must be an idle IP address that falls within the CIDR block of the vSwitch. If this parameter is not set, an idle IP address from the CIDR block of the vSwitch is randomly assigned to the HAVIP.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the HAVIP belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of HaVip.\n"},"vswitchId":{"type":"string","description":"The switch ID to which the HaVip instance belongs\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"requiredInputs":["vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering HaVipv2 resources.\n","properties":{"associatedEipAddresses":{"type":"array","items":{"type":"string"},"description":"EIP bound to HaVip\n"},"associatedInstanceType":{"type":"string","description":"The type of the instance that is bound to the HaVip. Value:\n- `EcsInstance`: ECS instance.\n- `NetworkInterface`: ENI instance.\n"},"associatedInstances":{"type":"array","items":{"type":"string"},"description":"The ID of the ECS instance to be associated with the HAVIP.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"The description of the HAVIP. The description must be 1 to 255 characters in length and cannot start with `http://` or `https://`.\n"},"haVipId":{"type":"string","description":"The ID of the HaVip instance.\n"},"haVipName":{"type":"string","description":"The name of the HAVIP. The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.\n"},"havipName":{"type":"string","description":". Field 'havip_name' has been deprecated from provider version 1.259.0. New field 'ha_vip_name' instead.\n","deprecationMessage":"Field 'havip_name' has been deprecated from provider version 1.205.0. New field 'ha_vip_name' instead."},"ipAddress":{"type":"string","description":"The IP address of the HAVIP. The specified IP address must be an idle IP address that falls within the CIDR block of the vSwitch. If this parameter is not set, an idle IP address from the CIDR block of the vSwitch is randomly assigned to the HAVIP.\n","willReplaceOnChanges":true},"masterInstanceId":{"type":"string","description":"The primary instance ID bound to HaVip\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the HAVIP belongs.\n"},"status":{"type":"string","description":"The status of this resource instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of HaVip.\n"},"vpcId":{"type":"string","description":"The VPC ID to which the HaVip instance belongs\n"},"vswitchId":{"type":"string","description":"The switch ID to which the HaVip instance belongs\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/ipamIpam:IpamIpam":{"description":"Provides a Vpc Ipam Ipam resource.\n\nIP Address Management.\n\nFor information about Vpc Ipam Ipam and how to use it, see [What is Ipam](https://next.api.alibabacloud.com/document/VpcIpam/2023-02-28/CreateIpam).\n\n\u003e **NOTE:** Available since v1.234.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultIpamIpam = new alicloud.vpc.IpamIpam(\"default\", {\n    ipamDescription: \"This is my first Ipam.\",\n    ipamName: name,\n    operatingRegionLists: [\"cn-hangzhou\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_ipam_ipam = alicloud.vpc.IpamIpam(\"default\",\n    ipam_description=\"This is my first Ipam.\",\n    ipam_name=name,\n    operating_region_lists=[\"cn-hangzhou\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultIpamIpam = new AliCloud.Vpc.IpamIpam(\"default\", new()\n    {\n        IpamDescription = \"This is my first Ipam.\",\n        IpamName = name,\n        OperatingRegionLists = new[]\n        {\n            \"cn-hangzhou\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewIpamIpam(ctx, \"default\", \u0026vpc.IpamIpamArgs{\n\t\t\tIpamDescription: pulumi.String(\"This is my first Ipam.\"),\n\t\t\tIpamName:        pulumi.String(name),\n\t\t\tOperatingRegionLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"cn-hangzhou\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.IpamIpam;\nimport com.pulumi.alicloud.vpc.IpamIpamArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultIpamIpam = new IpamIpam(\"defaultIpamIpam\", IpamIpamArgs.builder()\n            .ipamDescription(\"This is my first Ipam.\")\n            .ipamName(name)\n            .operatingRegionLists(\"cn-hangzhou\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultIpamIpam:\n    type: alicloud:vpc:IpamIpam\n    name: default\n    properties:\n      ipamDescription: This is my first Ipam.\n      ipamName: ${name}\n      operatingRegionLists:\n        - cn-hangzhou\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVpc Ipam Ipam can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/ipamIpam:IpamIpam example \u003cipam_id\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"ipamDescription":{"type":"string","description":"The description of IPAM.\nIt must be 2 to 256 characters in length and must start with an uppercase letter or a Chinese character, but cannot start with 'http: // 'or 'https. If the description is not filled in, it is blank. The default value is blank.\n"},"ipamName":{"type":"string","description":"The name of the resource.\n"},"operatingRegionLists":{"type":"array","items":{"type":"string"},"description":"List of IPAM effective regions.\n"},"privateDefaultScopeId":{"type":"string","description":"After an IPAM is created, the scope of the private network IPAM created by the system by default.\n"},"publicDefaultScopeId":{"type":"string","description":"After an IPAM is created, the public network IPAM is created by default.\n"},"regionId":{"type":"string","description":"The region ID of the resource.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"required":["createTime","operatingRegionLists","privateDefaultScopeId","publicDefaultScopeId","regionId","resourceGroupId","status"],"inputProperties":{"ipamDescription":{"type":"string","description":"The description of IPAM.\nIt must be 2 to 256 characters in length and must start with an uppercase letter or a Chinese character, but cannot start with 'http: // 'or 'https. If the description is not filled in, it is blank. The default value is blank.\n"},"ipamName":{"type":"string","description":"The name of the resource.\n"},"operatingRegionLists":{"type":"array","items":{"type":"string"},"description":"List of IPAM effective regions.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"requiredInputs":["operatingRegionLists"],"stateInputs":{"description":"Input properties used for looking up and filtering IpamIpam resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"ipamDescription":{"type":"string","description":"The description of IPAM.\nIt must be 2 to 256 characters in length and must start with an uppercase letter or a Chinese character, but cannot start with 'http: // 'or 'https. If the description is not filled in, it is blank. The default value is blank.\n"},"ipamName":{"type":"string","description":"The name of the resource.\n"},"operatingRegionLists":{"type":"array","items":{"type":"string"},"description":"List of IPAM effective regions.\n"},"privateDefaultScopeId":{"type":"string","description":"After an IPAM is created, the scope of the private network IPAM created by the system by default.\n"},"publicDefaultScopeId":{"type":"string","description":"After an IPAM is created, the public network IPAM is created by default.\n"},"regionId":{"type":"string","description":"The region ID of the resource.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object"}},"alicloud:vpc/ipamIpamPool:IpamIpamPool":{"description":"Provides a Vpc Ipam Ipam Pool resource.\n\nIP Address Management Pool.\n\nFor information about Vpc Ipam Ipam Pool and how to use it, see [What is Ipam Pool](https://next.api.alibabacloud.com/document/VpcIpam/2023-02-28/CreateIpamPool).\n\n\u003e **NOTE:** Available since v1.234.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultIpam = new alicloud.vpc.IpamIpam(\"defaultIpam\", {operatingRegionLists: [\"cn-hangzhou\"]});\nconst parentIpamPool = new alicloud.vpc.IpamIpamPool(\"parentIpamPool\", {\n    ipamScopeId: defaultIpam.privateDefaultScopeId,\n    ipamPoolName: std.format({\n        input: \"%s1\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n    poolRegionId: defaultIpam.regionId,\n});\nconst _default = new alicloud.vpc.IpamIpamPool(\"default\", {\n    ipamScopeId: defaultIpam.privateDefaultScopeId,\n    poolRegionId: parentIpamPool.poolRegionId,\n    ipamPoolName: name,\n    sourceIpamPoolId: parentIpamPool.id,\n    ipVersion: \"IPv4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_ipam = alicloud.vpc.IpamIpam(\"defaultIpam\", operating_region_lists=[\"cn-hangzhou\"])\nparent_ipam_pool = alicloud.vpc.IpamIpamPool(\"parentIpamPool\",\n    ipam_scope_id=default_ipam.private_default_scope_id,\n    ipam_pool_name=std.format(input=\"%s1\",\n        args=[name]).result,\n    pool_region_id=default_ipam.region_id)\ndefault = alicloud.vpc.IpamIpamPool(\"default\",\n    ipam_scope_id=default_ipam.private_default_scope_id,\n    pool_region_id=parent_ipam_pool.pool_region_id,\n    ipam_pool_name=name,\n    source_ipam_pool_id=parent_ipam_pool.id,\n    ip_version=\"IPv4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultIpam = new AliCloud.Vpc.IpamIpam(\"defaultIpam\", new()\n    {\n        OperatingRegionLists = new[]\n        {\n            \"cn-hangzhou\",\n        },\n    });\n\n    var parentIpamPool = new AliCloud.Vpc.IpamIpamPool(\"parentIpamPool\", new()\n    {\n        IpamScopeId = defaultIpam.PrivateDefaultScopeId,\n        IpamPoolName = Std.Format.Invoke(new()\n        {\n            Input = \"%s1\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n        PoolRegionId = defaultIpam.RegionId,\n    });\n\n    var @default = new AliCloud.Vpc.IpamIpamPool(\"default\", new()\n    {\n        IpamScopeId = defaultIpam.PrivateDefaultScopeId,\n        PoolRegionId = parentIpamPool.PoolRegionId,\n        IpamPoolName = name,\n        SourceIpamPoolId = parentIpamPool.Id,\n        IpVersion = \"IPv4\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultIpam, err := vpc.NewIpamIpam(ctx, \"defaultIpam\", \u0026vpc.IpamIpamArgs{\n\t\t\tOperatingRegionLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"cn-hangzhou\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"%s1\",\n\t\t\tArgs: []string{\n\t\t\t\tname,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tparentIpamPool, err := vpc.NewIpamIpamPool(ctx, \"parentIpamPool\", \u0026vpc.IpamIpamPoolArgs{\n\t\t\tIpamScopeId:  defaultIpam.PrivateDefaultScopeId,\n\t\t\tIpamPoolName: pulumi.String(invokeFormat.Result),\n\t\t\tPoolRegionId: defaultIpam.RegionId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewIpamIpamPool(ctx, \"default\", \u0026vpc.IpamIpamPoolArgs{\n\t\t\tIpamScopeId:      defaultIpam.PrivateDefaultScopeId,\n\t\t\tPoolRegionId:     parentIpamPool.PoolRegionId,\n\t\t\tIpamPoolName:     pulumi.String(name),\n\t\t\tSourceIpamPoolId: parentIpamPool.ID(),\n\t\t\tIpVersion:        pulumi.String(\"IPv4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.IpamIpam;\nimport com.pulumi.alicloud.vpc.IpamIpamArgs;\nimport com.pulumi.alicloud.vpc.IpamIpamPool;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultIpam = new IpamIpam(\"defaultIpam\", IpamIpamArgs.builder()\n            .operatingRegionLists(\"cn-hangzhou\")\n            .build());\n\n        var parentIpamPool = new IpamIpamPool(\"parentIpamPool\", IpamIpamPoolArgs.builder()\n            .ipamScopeId(defaultIpam.privateDefaultScopeId())\n            .ipamPoolName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s1\")\n                .args(name)\n                .build()).result())\n            .poolRegionId(defaultIpam.regionId())\n            .build());\n\n        var default_ = new IpamIpamPool(\"default\", IpamIpamPoolArgs.builder()\n            .ipamScopeId(defaultIpam.privateDefaultScopeId())\n            .poolRegionId(parentIpamPool.poolRegionId())\n            .ipamPoolName(name)\n            .sourceIpamPoolId(parentIpamPool.id())\n            .ipVersion(\"IPv4\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultIpam:\n    type: alicloud:vpc:IpamIpam\n    properties:\n      operatingRegionLists:\n        - cn-hangzhou\n  parentIpamPool:\n    type: alicloud:vpc:IpamIpamPool\n    properties:\n      ipamScopeId: ${defaultIpam.privateDefaultScopeId}\n      ipamPoolName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s1'\n            args:\n              - ${name}\n          return: result\n      poolRegionId: ${defaultIpam.regionId}\n  default:\n    type: alicloud:vpc:IpamIpamPool\n    properties:\n      ipamScopeId: ${defaultIpam.privateDefaultScopeId}\n      poolRegionId: ${parentIpamPool.poolRegionId}\n      ipamPoolName: ${name}\n      sourceIpamPoolId: ${parentIpamPool.id}\n      ipVersion: IPv4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVpc Ipam Ipam Pool can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/ipamIpamPool:IpamIpamPool example \u003cipam_pool_id\u003e\n```\n\n","properties":{"allocationDefaultCidrMask":{"type":"integer","description":"The default network mask assigned by the IPAM address pool.\nIPv4 network mask value range: 0 to 32 bits, and the IPv6 network mask value range is 0 to 128 bits.\n"},"allocationMaxCidrMask":{"type":"integer","description":"The maximum network mask assigned by the IPAM address pool.\nIPv4 network mask value range: 0 to 32 bits, and the IPv6 network mask value range is 0 to 128 bits.\n"},"allocationMinCidrMask":{"type":"integer","description":"The minimum Network mask assigned by the IPAM address pool.\nIPv4 network mask value range: 0 to 32 bits, and the IPv6 network mask value range is 0 to 128 bits.\n"},"autoImport":{"type":"boolean","description":"Whether the automatic import function is enabled for the address pool.\n"},"clearAllocationDefaultCidrMask":{"type":"boolean","description":"Whether to clear the default network mask of the IPAM address pool. Value:\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"ipVersion":{"type":"string","description":"The IP protocol version. Values: IPv4、IPv6.\n"},"ipamPoolDescription":{"type":"string","description":"The description of the IPAM address pool.\nIt must be 2 to 256 characters in length and must start with an English letter or a Chinese character, but cannot start with 'http:// 'or 'https. If it is not filled in, it is empty. The default value is empty.\n"},"ipamPoolName":{"type":"string","description":"The name of the resource.\n"},"ipamScopeId":{"type":"string","description":"The ID of the IPAM scope.\n"},"ipv6Isp":{"type":"string","description":"The type of the IPv6 CIDR block of the VPC.\n"},"poolRegionId":{"type":"string","description":"The effective region of the IPAM address pool.\n"},"regionId":{"type":"string","description":"The ID of the IPAM hosting region.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sourceIpamPoolId":{"type":"string","description":"The instance ID of the source IPAM address pool.\n\n\u003e **NOTE:**  If this parameter is not entered, the created address pool is the parent address pool.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"required":["allocationMaxCidrMask","createTime","ipVersion","ipamPoolName","ipamScopeId","ipv6Isp","regionId","resourceGroupId","sourceIpamPoolId","status"],"inputProperties":{"allocationDefaultCidrMask":{"type":"integer","description":"The default network mask assigned by the IPAM address pool.\nIPv4 network mask value range: 0 to 32 bits, and the IPv6 network mask value range is 0 to 128 bits.\n"},"allocationMaxCidrMask":{"type":"integer","description":"The maximum network mask assigned by the IPAM address pool.\nIPv4 network mask value range: 0 to 32 bits, and the IPv6 network mask value range is 0 to 128 bits.\n"},"allocationMinCidrMask":{"type":"integer","description":"The minimum Network mask assigned by the IPAM address pool.\nIPv4 network mask value range: 0 to 32 bits, and the IPv6 network mask value range is 0 to 128 bits.\n"},"autoImport":{"type":"boolean","description":"Whether the automatic import function is enabled for the address pool.\n"},"clearAllocationDefaultCidrMask":{"type":"boolean","description":"Whether to clear the default network mask of the IPAM address pool. Value:\n"},"ipVersion":{"type":"string","description":"The IP protocol version. Values: IPv4、IPv6.\n","willReplaceOnChanges":true},"ipamPoolDescription":{"type":"string","description":"The description of the IPAM address pool.\nIt must be 2 to 256 characters in length and must start with an English letter or a Chinese character, but cannot start with 'http:// 'or 'https. If it is not filled in, it is empty. The default value is empty.\n"},"ipamPoolName":{"type":"string","description":"The name of the resource.\n"},"ipamScopeId":{"type":"string","description":"The ID of the IPAM scope.\n","willReplaceOnChanges":true},"ipv6Isp":{"type":"string","description":"The type of the IPv6 CIDR block of the VPC.\n","willReplaceOnChanges":true},"poolRegionId":{"type":"string","description":"The effective region of the IPAM address pool.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sourceIpamPoolId":{"type":"string","description":"The instance ID of the source IPAM address pool.\n\n\u003e **NOTE:**  If this parameter is not entered, the created address pool is the parent address pool.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"requiredInputs":["ipamScopeId"],"stateInputs":{"description":"Input properties used for looking up and filtering IpamIpamPool resources.\n","properties":{"allocationDefaultCidrMask":{"type":"integer","description":"The default network mask assigned by the IPAM address pool.\nIPv4 network mask value range: 0 to 32 bits, and the IPv6 network mask value range is 0 to 128 bits.\n"},"allocationMaxCidrMask":{"type":"integer","description":"The maximum network mask assigned by the IPAM address pool.\nIPv4 network mask value range: 0 to 32 bits, and the IPv6 network mask value range is 0 to 128 bits.\n"},"allocationMinCidrMask":{"type":"integer","description":"The minimum Network mask assigned by the IPAM address pool.\nIPv4 network mask value range: 0 to 32 bits, and the IPv6 network mask value range is 0 to 128 bits.\n"},"autoImport":{"type":"boolean","description":"Whether the automatic import function is enabled for the address pool.\n"},"clearAllocationDefaultCidrMask":{"type":"boolean","description":"Whether to clear the default network mask of the IPAM address pool. Value:\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"ipVersion":{"type":"string","description":"The IP protocol version. Values: IPv4、IPv6.\n","willReplaceOnChanges":true},"ipamPoolDescription":{"type":"string","description":"The description of the IPAM address pool.\nIt must be 2 to 256 characters in length and must start with an English letter or a Chinese character, but cannot start with 'http:// 'or 'https. If it is not filled in, it is empty. The default value is empty.\n"},"ipamPoolName":{"type":"string","description":"The name of the resource.\n"},"ipamScopeId":{"type":"string","description":"The ID of the IPAM scope.\n","willReplaceOnChanges":true},"ipv6Isp":{"type":"string","description":"The type of the IPv6 CIDR block of the VPC.\n","willReplaceOnChanges":true},"poolRegionId":{"type":"string","description":"The effective region of the IPAM address pool.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The ID of the IPAM hosting region.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sourceIpamPoolId":{"type":"string","description":"The instance ID of the source IPAM address pool.\n\n\u003e **NOTE:**  If this parameter is not entered, the created address pool is the parent address pool.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object"}},"alicloud:vpc/ipamIpamPoolAllocation:IpamIpamPoolAllocation":{"description":"Provides a Vpc Ipam Ipam Pool Allocation resource.\n\nAllocates or reserves a CIDR from an IPAM address pool.\n\nFor information about Vpc Ipam Ipam Pool Allocation and how to use it, see [What is Ipam Pool Allocation](https://next.api.alibabacloud.com/document/VpcIpam/2023-02-28/CreateIpamPoolAllocation).\n\n\u003e **NOTE:** Available since v1.238.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultIpam = new alicloud.vpc.IpamIpam(\"defaultIpam\", {operatingRegionLists: [\"cn-hangzhou\"]});\nconst defaultIpamPool = new alicloud.vpc.IpamIpamPool(\"defaultIpamPool\", {\n    ipamScopeId: defaultIpam.privateDefaultScopeId,\n    poolRegionId: \"cn-hangzhou\",\n});\nconst defaultIpamPoolCidr = new alicloud.vpc.IpamIpamPoolCidr(\"defaultIpamPoolCidr\", {\n    cidr: \"10.0.0.0/8\",\n    ipamPoolId: defaultIpamPool.id,\n});\nconst _default = new alicloud.vpc.IpamIpamPoolAllocation(\"default\", {\n    ipamPoolAllocationDescription: \"init alloc desc\",\n    ipamPoolAllocationName: name,\n    cidr: \"10.0.0.0/20\",\n    ipamPoolId: defaultIpamPoolCidr.ipamPoolId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_ipam = alicloud.vpc.IpamIpam(\"defaultIpam\", operating_region_lists=[\"cn-hangzhou\"])\ndefault_ipam_pool = alicloud.vpc.IpamIpamPool(\"defaultIpamPool\",\n    ipam_scope_id=default_ipam.private_default_scope_id,\n    pool_region_id=\"cn-hangzhou\")\ndefault_ipam_pool_cidr = alicloud.vpc.IpamIpamPoolCidr(\"defaultIpamPoolCidr\",\n    cidr=\"10.0.0.0/8\",\n    ipam_pool_id=default_ipam_pool.id)\ndefault = alicloud.vpc.IpamIpamPoolAllocation(\"default\",\n    ipam_pool_allocation_description=\"init alloc desc\",\n    ipam_pool_allocation_name=name,\n    cidr=\"10.0.0.0/20\",\n    ipam_pool_id=default_ipam_pool_cidr.ipam_pool_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultIpam = new AliCloud.Vpc.IpamIpam(\"defaultIpam\", new()\n    {\n        OperatingRegionLists = new[]\n        {\n            \"cn-hangzhou\",\n        },\n    });\n\n    var defaultIpamPool = new AliCloud.Vpc.IpamIpamPool(\"defaultIpamPool\", new()\n    {\n        IpamScopeId = defaultIpam.PrivateDefaultScopeId,\n        PoolRegionId = \"cn-hangzhou\",\n    });\n\n    var defaultIpamPoolCidr = new AliCloud.Vpc.IpamIpamPoolCidr(\"defaultIpamPoolCidr\", new()\n    {\n        Cidr = \"10.0.0.0/8\",\n        IpamPoolId = defaultIpamPool.Id,\n    });\n\n    var @default = new AliCloud.Vpc.IpamIpamPoolAllocation(\"default\", new()\n    {\n        IpamPoolAllocationDescription = \"init alloc desc\",\n        IpamPoolAllocationName = name,\n        Cidr = \"10.0.0.0/20\",\n        IpamPoolId = defaultIpamPoolCidr.IpamPoolId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultIpam, err := vpc.NewIpamIpam(ctx, \"defaultIpam\", \u0026vpc.IpamIpamArgs{\n\t\t\tOperatingRegionLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"cn-hangzhou\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultIpamPool, err := vpc.NewIpamIpamPool(ctx, \"defaultIpamPool\", \u0026vpc.IpamIpamPoolArgs{\n\t\t\tIpamScopeId:  defaultIpam.PrivateDefaultScopeId,\n\t\t\tPoolRegionId: pulumi.String(\"cn-hangzhou\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultIpamPoolCidr, err := vpc.NewIpamIpamPoolCidr(ctx, \"defaultIpamPoolCidr\", \u0026vpc.IpamIpamPoolCidrArgs{\n\t\t\tCidr:       pulumi.String(\"10.0.0.0/8\"),\n\t\t\tIpamPoolId: defaultIpamPool.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewIpamIpamPoolAllocation(ctx, \"default\", \u0026vpc.IpamIpamPoolAllocationArgs{\n\t\t\tIpamPoolAllocationDescription: pulumi.String(\"init alloc desc\"),\n\t\t\tIpamPoolAllocationName:        pulumi.String(name),\n\t\t\tCidr:                          pulumi.String(\"10.0.0.0/20\"),\n\t\t\tIpamPoolId:                    defaultIpamPoolCidr.IpamPoolId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.IpamIpam;\nimport com.pulumi.alicloud.vpc.IpamIpamArgs;\nimport com.pulumi.alicloud.vpc.IpamIpamPool;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolArgs;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolCidr;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolCidrArgs;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolAllocation;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolAllocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultIpam = new IpamIpam(\"defaultIpam\", IpamIpamArgs.builder()\n            .operatingRegionLists(\"cn-hangzhou\")\n            .build());\n\n        var defaultIpamPool = new IpamIpamPool(\"defaultIpamPool\", IpamIpamPoolArgs.builder()\n            .ipamScopeId(defaultIpam.privateDefaultScopeId())\n            .poolRegionId(\"cn-hangzhou\")\n            .build());\n\n        var defaultIpamPoolCidr = new IpamIpamPoolCidr(\"defaultIpamPoolCidr\", IpamIpamPoolCidrArgs.builder()\n            .cidr(\"10.0.0.0/8\")\n            .ipamPoolId(defaultIpamPool.id())\n            .build());\n\n        var default_ = new IpamIpamPoolAllocation(\"default\", IpamIpamPoolAllocationArgs.builder()\n            .ipamPoolAllocationDescription(\"init alloc desc\")\n            .ipamPoolAllocationName(name)\n            .cidr(\"10.0.0.0/20\")\n            .ipamPoolId(defaultIpamPoolCidr.ipamPoolId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultIpam:\n    type: alicloud:vpc:IpamIpam\n    properties:\n      operatingRegionLists:\n        - cn-hangzhou\n  defaultIpamPool:\n    type: alicloud:vpc:IpamIpamPool\n    properties:\n      ipamScopeId: ${defaultIpam.privateDefaultScopeId}\n      poolRegionId: cn-hangzhou\n  defaultIpamPoolCidr:\n    type: alicloud:vpc:IpamIpamPoolCidr\n    properties:\n      cidr: 10.0.0.0/8\n      ipamPoolId: ${defaultIpamPool.id}\n  default:\n    type: alicloud:vpc:IpamIpamPoolAllocation\n    properties:\n      ipamPoolAllocationDescription: init alloc desc\n      ipamPoolAllocationName: ${name}\n      cidr: 10.0.0.0/20\n      ipamPoolId: ${defaultIpamPoolCidr.ipamPoolId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVpc Ipam Ipam Pool Allocation can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/ipamIpamPoolAllocation:IpamIpamPoolAllocation example \u003cid\u003e\n```\n\n","properties":{"cidr":{"type":"string","description":"The allocated address segment.\n"},"cidrMask":{"type":"integer","description":"Create a custom reserved network segment from The IPAM address pool by entering a mask.\n\n\u003e **NOTE:**  Enter at least one of `Cidr` or **CidrMask.\n"},"createTime":{"type":"string","description":"Instance creation time.\n"},"ipamPoolAllocationDescription":{"type":"string","description":"The description of the ipam pool alloctaion.\nIt must be 1 to 256 characters in length and must start with an English letter or Chinese character, but cannot start with 'http:// 'or 'https. If it is not filled in, it is empty. The default value is empty.\n"},"ipamPoolAllocationName":{"type":"string","description":"The name of the ipam pool allocation.\nIt must be 1 to 128 characters in length and cannot start with 'http:// 'or 'https.\n"},"ipamPoolId":{"type":"string","description":"The ID of the IPAM Pool.\n"},"regionId":{"type":"string","description":"When the IPAM Pool to which CIDR is allocated has the region attribute, this attribute is the IPAM Pool region.\nWhen the IPAM Pool to which CIDR is allocated does not have the region attribute, this attribute is the IPAM region.\n"},"status":{"type":"string","description":"The status of the instance. Value:\n"}},"required":["cidr","createTime","ipamPoolId","regionId","status"],"inputProperties":{"cidr":{"type":"string","description":"The allocated address segment.\n","willReplaceOnChanges":true},"cidrMask":{"type":"integer","description":"Create a custom reserved network segment from The IPAM address pool by entering a mask.\n\n\u003e **NOTE:**  Enter at least one of `Cidr` or **CidrMask.\n"},"ipamPoolAllocationDescription":{"type":"string","description":"The description of the ipam pool alloctaion.\nIt must be 1 to 256 characters in length and must start with an English letter or Chinese character, but cannot start with 'http:// 'or 'https. If it is not filled in, it is empty. The default value is empty.\n"},"ipamPoolAllocationName":{"type":"string","description":"The name of the ipam pool allocation.\nIt must be 1 to 128 characters in length and cannot start with 'http:// 'or 'https.\n"},"ipamPoolId":{"type":"string","description":"The ID of the IPAM Pool.\n","willReplaceOnChanges":true}},"requiredInputs":["ipamPoolId"],"stateInputs":{"description":"Input properties used for looking up and filtering IpamIpamPoolAllocation resources.\n","properties":{"cidr":{"type":"string","description":"The allocated address segment.\n","willReplaceOnChanges":true},"cidrMask":{"type":"integer","description":"Create a custom reserved network segment from The IPAM address pool by entering a mask.\n\n\u003e **NOTE:**  Enter at least one of `Cidr` or **CidrMask.\n"},"createTime":{"type":"string","description":"Instance creation time.\n"},"ipamPoolAllocationDescription":{"type":"string","description":"The description of the ipam pool alloctaion.\nIt must be 1 to 256 characters in length and must start with an English letter or Chinese character, but cannot start with 'http:// 'or 'https. If it is not filled in, it is empty. The default value is empty.\n"},"ipamPoolAllocationName":{"type":"string","description":"The name of the ipam pool allocation.\nIt must be 1 to 128 characters in length and cannot start with 'http:// 'or 'https.\n"},"ipamPoolId":{"type":"string","description":"The ID of the IPAM Pool.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"When the IPAM Pool to which CIDR is allocated has the region attribute, this attribute is the IPAM Pool region.\nWhen the IPAM Pool to which CIDR is allocated does not have the region attribute, this attribute is the IPAM region.\n"},"status":{"type":"string","description":"The status of the instance. Value:\n"}},"type":"object"}},"alicloud:vpc/ipamIpamPoolCidr:IpamIpamPoolCidr":{"description":"Provides a Vpc Ipam Ipam Pool Cidr resource.\n\nIpam address pool preset CIDR.\n\nFor information about Vpc Ipam Ipam Pool Cidr and how to use it, see [What is Ipam Pool Cidr](https://next.api.alibabacloud.com/document/VpcIpam/2023-02-28/AddIpamPoolCidr).\n\n\u003e **NOTE:** Available since v1.234.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultIpam = new alicloud.vpc.IpamIpam(\"defaultIpam\", {operatingRegionLists: [\"cn-hangzhou\"]});\nconst defaultIpamPool = new alicloud.vpc.IpamIpamPool(\"defaultIpamPool\", {\n    ipamScopeId: defaultIpam.privateDefaultScopeId,\n    poolRegionId: defaultIpam.regionId,\n    ipVersion: \"IPv4\",\n});\nconst _default = new alicloud.vpc.IpamIpamPoolCidr(\"default\", {\n    cidr: \"10.0.0.0/8\",\n    ipamPoolId: defaultIpamPool.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_ipam = alicloud.vpc.IpamIpam(\"defaultIpam\", operating_region_lists=[\"cn-hangzhou\"])\ndefault_ipam_pool = alicloud.vpc.IpamIpamPool(\"defaultIpamPool\",\n    ipam_scope_id=default_ipam.private_default_scope_id,\n    pool_region_id=default_ipam.region_id,\n    ip_version=\"IPv4\")\ndefault = alicloud.vpc.IpamIpamPoolCidr(\"default\",\n    cidr=\"10.0.0.0/8\",\n    ipam_pool_id=default_ipam_pool.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultIpam = new AliCloud.Vpc.IpamIpam(\"defaultIpam\", new()\n    {\n        OperatingRegionLists = new[]\n        {\n            \"cn-hangzhou\",\n        },\n    });\n\n    var defaultIpamPool = new AliCloud.Vpc.IpamIpamPool(\"defaultIpamPool\", new()\n    {\n        IpamScopeId = defaultIpam.PrivateDefaultScopeId,\n        PoolRegionId = defaultIpam.RegionId,\n        IpVersion = \"IPv4\",\n    });\n\n    var @default = new AliCloud.Vpc.IpamIpamPoolCidr(\"default\", new()\n    {\n        Cidr = \"10.0.0.0/8\",\n        IpamPoolId = defaultIpamPool.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultIpam, err := vpc.NewIpamIpam(ctx, \"defaultIpam\", \u0026vpc.IpamIpamArgs{\n\t\t\tOperatingRegionLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"cn-hangzhou\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultIpamPool, err := vpc.NewIpamIpamPool(ctx, \"defaultIpamPool\", \u0026vpc.IpamIpamPoolArgs{\n\t\t\tIpamScopeId:  defaultIpam.PrivateDefaultScopeId,\n\t\t\tPoolRegionId: defaultIpam.RegionId,\n\t\t\tIpVersion:    pulumi.String(\"IPv4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewIpamIpamPoolCidr(ctx, \"default\", \u0026vpc.IpamIpamPoolCidrArgs{\n\t\t\tCidr:       pulumi.String(\"10.0.0.0/8\"),\n\t\t\tIpamPoolId: defaultIpamPool.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.IpamIpam;\nimport com.pulumi.alicloud.vpc.IpamIpamArgs;\nimport com.pulumi.alicloud.vpc.IpamIpamPool;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolArgs;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolCidr;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolCidrArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultIpam = new IpamIpam(\"defaultIpam\", IpamIpamArgs.builder()\n            .operatingRegionLists(\"cn-hangzhou\")\n            .build());\n\n        var defaultIpamPool = new IpamIpamPool(\"defaultIpamPool\", IpamIpamPoolArgs.builder()\n            .ipamScopeId(defaultIpam.privateDefaultScopeId())\n            .poolRegionId(defaultIpam.regionId())\n            .ipVersion(\"IPv4\")\n            .build());\n\n        var default_ = new IpamIpamPoolCidr(\"default\", IpamIpamPoolCidrArgs.builder()\n            .cidr(\"10.0.0.0/8\")\n            .ipamPoolId(defaultIpamPool.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultIpam:\n    type: alicloud:vpc:IpamIpam\n    properties:\n      operatingRegionLists:\n        - cn-hangzhou\n  defaultIpamPool:\n    type: alicloud:vpc:IpamIpamPool\n    properties:\n      ipamScopeId: ${defaultIpam.privateDefaultScopeId}\n      poolRegionId: ${defaultIpam.regionId}\n      ipVersion: IPv4\n  default:\n    type: alicloud:vpc:IpamIpamPoolCidr\n    properties:\n      cidr: 10.0.0.0/8\n      ipamPoolId: ${defaultIpamPool.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVpc Ipam Ipam Pool Cidr can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/ipamIpamPoolCidr:IpamIpamPoolCidr example \u003cipam_pool_id\u003e#\u003ccidr\u003e\n```\n\n","properties":{"cidr":{"type":"string","description":"The CIDR address segment to be preset.\n"},"ipamPoolId":{"type":"string","description":"The ID of the IPAM pool instance.\n"},"netmaskLength":{"type":"integer","description":"Preset Cidr for an address pool by using a mask, supporting sub-pools and public top pools\n\n\u003e **NOTE:** This parameter is immutable. Changing it after creation has no effect.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"required":["cidr","ipamPoolId","status"],"inputProperties":{"cidr":{"type":"string","description":"The CIDR address segment to be preset.\n","willReplaceOnChanges":true},"ipamPoolId":{"type":"string","description":"The ID of the IPAM pool instance.\n","willReplaceOnChanges":true},"netmaskLength":{"type":"integer","description":"Preset Cidr for an address pool by using a mask, supporting sub-pools and public top pools\n\n\u003e **NOTE:** This parameter is immutable. Changing it after creation has no effect.\n"}},"requiredInputs":["ipamPoolId"],"stateInputs":{"description":"Input properties used for looking up and filtering IpamIpamPoolCidr resources.\n","properties":{"cidr":{"type":"string","description":"The CIDR address segment to be preset.\n","willReplaceOnChanges":true},"ipamPoolId":{"type":"string","description":"The ID of the IPAM pool instance.\n","willReplaceOnChanges":true},"netmaskLength":{"type":"integer","description":"Preset Cidr for an address pool by using a mask, supporting sub-pools and public top pools\n\n\u003e **NOTE:** This parameter is immutable. Changing it after creation has no effect.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object"}},"alicloud:vpc/ipamIpamResourceDiscovery:IpamIpamResourceDiscovery":{"description":"Provides a Vpc Ipam Ipam Resource Discovery resource.\n\nIP Address Management Resource Discovery.\n\nFor information about Vpc Ipam Ipam Resource Discovery and how to use it, see [What is Ipam Resource Discovery](https://next.api.alibabacloud.com/document/VpcIpam/2023-02-28/CreateIpamResourceDiscovery).\n\n\u003e **NOTE:** Available since v1.243.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultIpamIpamResourceDiscovery = new alicloud.vpc.IpamIpamResourceDiscovery(\"default\", {\n    operatingRegionLists: [\"cn-hangzhou\"],\n    ipamResourceDiscoveryDescription: \"This is a custom IPAM resource discovery.\",\n    ipamResourceDiscoveryName: \"example_resource_discovery\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_ipam_ipam_resource_discovery = alicloud.vpc.IpamIpamResourceDiscovery(\"default\",\n    operating_region_lists=[\"cn-hangzhou\"],\n    ipam_resource_discovery_description=\"This is a custom IPAM resource discovery.\",\n    ipam_resource_discovery_name=\"example_resource_discovery\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultIpamIpamResourceDiscovery = new AliCloud.Vpc.IpamIpamResourceDiscovery(\"default\", new()\n    {\n        OperatingRegionLists = new[]\n        {\n            \"cn-hangzhou\",\n        },\n        IpamResourceDiscoveryDescription = \"This is a custom IPAM resource discovery.\",\n        IpamResourceDiscoveryName = \"example_resource_discovery\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewIpamIpamResourceDiscovery(ctx, \"default\", \u0026vpc.IpamIpamResourceDiscoveryArgs{\n\t\t\tOperatingRegionLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"cn-hangzhou\"),\n\t\t\t},\n\t\t\tIpamResourceDiscoveryDescription: pulumi.String(\"This is a custom IPAM resource discovery.\"),\n\t\t\tIpamResourceDiscoveryName:        pulumi.String(\"example_resource_discovery\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.IpamIpamResourceDiscovery;\nimport com.pulumi.alicloud.vpc.IpamIpamResourceDiscoveryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultIpamIpamResourceDiscovery = new IpamIpamResourceDiscovery(\"defaultIpamIpamResourceDiscovery\", IpamIpamResourceDiscoveryArgs.builder()\n            .operatingRegionLists(\"cn-hangzhou\")\n            .ipamResourceDiscoveryDescription(\"This is a custom IPAM resource discovery.\")\n            .ipamResourceDiscoveryName(\"example_resource_discovery\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultIpamIpamResourceDiscovery:\n    type: alicloud:vpc:IpamIpamResourceDiscovery\n    name: default\n    properties:\n      operatingRegionLists:\n        - cn-hangzhou\n      ipamResourceDiscoveryDescription: This is a custom IPAM resource discovery.\n      ipamResourceDiscoveryName: example_resource_discovery\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVpc Ipam Ipam Resource Discovery can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/ipamIpamResourceDiscovery:IpamIpamResourceDiscovery example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The time when the resource discovery was created.\n"},"ipamResourceDiscoveryDescription":{"type":"string","description":"The description of resource discovery.\n"},"ipamResourceDiscoveryName":{"type":"string","description":"The name of the resource\n"},"operatingRegionLists":{"type":"array","items":{"type":"string"},"description":"The list of operating regions for resource discovery.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"The status of the resource discovery instance. Value:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Label list information.\n"}},"required":["createTime","operatingRegionLists","regionId","resourceGroupId","status"],"inputProperties":{"ipamResourceDiscoveryDescription":{"type":"string","description":"The description of resource discovery.\n"},"ipamResourceDiscoveryName":{"type":"string","description":"The name of the resource\n"},"operatingRegionLists":{"type":"array","items":{"type":"string"},"description":"The list of operating regions for resource discovery.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Label list information.\n"}},"requiredInputs":["operatingRegionLists"],"stateInputs":{"description":"Input properties used for looking up and filtering IpamIpamResourceDiscovery resources.\n","properties":{"createTime":{"type":"string","description":"The time when the resource discovery was created.\n"},"ipamResourceDiscoveryDescription":{"type":"string","description":"The description of resource discovery.\n"},"ipamResourceDiscoveryName":{"type":"string","description":"The name of the resource\n"},"operatingRegionLists":{"type":"array","items":{"type":"string"},"description":"The list of operating regions for resource discovery.\n"},"regionId":{"type":"string","description":"The region ID of the resource\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"The status of the resource discovery instance. Value:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Label list information.\n"}},"type":"object"}},"alicloud:vpc/ipamIpamScope:IpamIpamScope":{"description":"Provides a Vpc Ipam Ipam Scope resource.\n\nIP Address Management Scope.\n\nFor information about Vpc Ipam Ipam Scope and how to use it, see [What is Ipam Scope](https://next.api.alibabacloud.com/document/VpcIpam/2023-02-28/CreateIpamScope).\n\n\u003e **NOTE:** Available since v1.234.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultIpam = new alicloud.vpc.IpamIpam(\"defaultIpam\", {\n    operatingRegionLists: [\"cn-hangzhou\"],\n    ipamName: name,\n});\nconst _default = new alicloud.vpc.IpamIpamScope(\"default\", {\n    ipamScopeName: name,\n    ipamId: defaultIpam.id,\n    ipamScopeDescription: \"This is a ipam scope.\",\n    ipamScopeType: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_ipam = alicloud.vpc.IpamIpam(\"defaultIpam\",\n    operating_region_lists=[\"cn-hangzhou\"],\n    ipam_name=name)\ndefault = alicloud.vpc.IpamIpamScope(\"default\",\n    ipam_scope_name=name,\n    ipam_id=default_ipam.id,\n    ipam_scope_description=\"This is a ipam scope.\",\n    ipam_scope_type=\"private\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultIpam = new AliCloud.Vpc.IpamIpam(\"defaultIpam\", new()\n    {\n        OperatingRegionLists = new[]\n        {\n            \"cn-hangzhou\",\n        },\n        IpamName = name,\n    });\n\n    var @default = new AliCloud.Vpc.IpamIpamScope(\"default\", new()\n    {\n        IpamScopeName = name,\n        IpamId = defaultIpam.Id,\n        IpamScopeDescription = \"This is a ipam scope.\",\n        IpamScopeType = \"private\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultIpam, err := vpc.NewIpamIpam(ctx, \"defaultIpam\", \u0026vpc.IpamIpamArgs{\n\t\t\tOperatingRegionLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"cn-hangzhou\"),\n\t\t\t},\n\t\t\tIpamName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewIpamIpamScope(ctx, \"default\", \u0026vpc.IpamIpamScopeArgs{\n\t\t\tIpamScopeName:        pulumi.String(name),\n\t\t\tIpamId:               defaultIpam.ID(),\n\t\t\tIpamScopeDescription: pulumi.String(\"This is a ipam scope.\"),\n\t\t\tIpamScopeType:        pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.IpamIpam;\nimport com.pulumi.alicloud.vpc.IpamIpamArgs;\nimport com.pulumi.alicloud.vpc.IpamIpamScope;\nimport com.pulumi.alicloud.vpc.IpamIpamScopeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultIpam = new IpamIpam(\"defaultIpam\", IpamIpamArgs.builder()\n            .operatingRegionLists(\"cn-hangzhou\")\n            .ipamName(name)\n            .build());\n\n        var default_ = new IpamIpamScope(\"default\", IpamIpamScopeArgs.builder()\n            .ipamScopeName(name)\n            .ipamId(defaultIpam.id())\n            .ipamScopeDescription(\"This is a ipam scope.\")\n            .ipamScopeType(\"private\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultIpam:\n    type: alicloud:vpc:IpamIpam\n    properties:\n      operatingRegionLists:\n        - cn-hangzhou\n      ipamName: ${name}\n  default:\n    type: alicloud:vpc:IpamIpamScope\n    properties:\n      ipamScopeName: ${name}\n      ipamId: ${defaultIpam.id}\n      ipamScopeDescription: This is a ipam scope.\n      ipamScopeType: private\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVpc Ipam Ipam Scope can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/ipamIpamScope:IpamIpamScope example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"ipamId":{"type":"string","description":"The id of the Ipam instance.\n"},"ipamScopeDescription":{"type":"string","description":"The description of the IPAM's scope of action.\nIt must be 2 to 256 characters in length and must start with a lowercase letter, but cannot start with 'http:// 'or 'https. If it is not filled in, it is empty. The default value is empty.\n"},"ipamScopeName":{"type":"string","description":"The name of the resource.\n"},"ipamScopeType":{"type":"string","description":"IPAM scope of action type:\n\u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e.\n\n\n\u003e **NOTE:**  Currently, only the role scope of the private network is supported.\n"},"regionId":{"type":"string","description":"The region ID of the resource.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"required":["createTime","ipamId","regionId","resourceGroupId","status"],"inputProperties":{"ipamId":{"type":"string","description":"The id of the Ipam instance.\n","willReplaceOnChanges":true},"ipamScopeDescription":{"type":"string","description":"The description of the IPAM's scope of action.\nIt must be 2 to 256 characters in length and must start with a lowercase letter, but cannot start with 'http:// 'or 'https. If it is not filled in, it is empty. The default value is empty.\n"},"ipamScopeName":{"type":"string","description":"The name of the resource.\n"},"ipamScopeType":{"type":"string","description":"IPAM scope of action type:\n\u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e.\n\n\n\u003e **NOTE:**  Currently, only the role scope of the private network is supported.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"requiredInputs":["ipamId"],"stateInputs":{"description":"Input properties used for looking up and filtering IpamIpamScope resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"ipamId":{"type":"string","description":"The id of the Ipam instance.\n","willReplaceOnChanges":true},"ipamScopeDescription":{"type":"string","description":"The description of the IPAM's scope of action.\nIt must be 2 to 256 characters in length and must start with a lowercase letter, but cannot start with 'http:// 'or 'https. If it is not filled in, it is empty. The default value is empty.\n"},"ipamScopeName":{"type":"string","description":"The name of the resource.\n"},"ipamScopeType":{"type":"string","description":"IPAM scope of action type:\n\u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e.\n\n\n\u003e **NOTE:**  Currently, only the role scope of the private network is supported.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The region ID of the resource.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object"}},"alicloud:vpc/ipamService:IpamService":{"description":"Provides a Vpc Ipam Service resource.\n\nIpam service, used to support automatic provisioning of Terraform.\n\nFor information about Vpc Ipam Service and how to use it, see [What is Service](https://next.api.alibabacloud.com/document/VpcIpam/2023-02-28/OpenVpcIpamService).\n\n\u003e **NOTE:** Available since v1.242.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.vpc.IpamService(\"default\", {});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.vpc.IpamService(\"default\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Vpc.IpamService(\"default\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := vpc.NewIpamService(ctx, \"default\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.IpamService;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new IpamService(\"default\");\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:vpc:IpamService\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.IpamService`\" pulumi-lang-dotnet=\"`alicloud.vpc.IpamService`\" pulumi-lang-go=\"`vpc.IpamService`\" pulumi-lang-python=\"`vpc.IpamService`\" pulumi-lang-yaml=\"`alicloud.vpc.IpamService`\" pulumi-lang-java=\"`alicloud.vpc.IpamService`\"\u003e`alicloud.vpc.IpamService`\u003c/span\u003e or removing it from your configuration\n\nTerraform cannot destroy resource \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.IpamService`\" pulumi-lang-dotnet=\"`alicloud.vpc.IpamService`\" pulumi-lang-go=\"`vpc.IpamService`\" pulumi-lang-python=\"`vpc.IpamService`\" pulumi-lang-yaml=\"`alicloud.vpc.IpamService`\" pulumi-lang-java=\"`alicloud.vpc.IpamService`\"\u003e`alicloud.vpc.IpamService`\u003c/span\u003e. Terraform will remove this resource from the state file, however resources may remain.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVpc Ipam Service can be imported using the id, e.g.\n\n```sh\n$ terraform import alicloud_vpc_ipam_service.example \n```\n\n","properties":{"enabled":{"type":"boolean","description":"Whether the IPAM service has been activated.\n"}},"required":["enabled"],"stateInputs":{"description":"Input properties used for looking up and filtering IpamService resources.\n","properties":{"enabled":{"type":"boolean","description":"Whether the IPAM service has been activated.\n"}},"type":"object"}},"alicloud:vpc/ipv4CidrBlock:Ipv4CidrBlock":{"description":"Provides a VPC Ipv4 Cidr Block resource.\n\nVPC IPv4 additional network segment.\n\nFor information about VPC Ipv4 Cidr Block and how to use it, see [What is Ipv4 Cidr Block](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/associatevpccidrblock).\n\n\u003e **NOTE:** Available since v1.185.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultvpc = new alicloud.vpc.Network(\"defaultvpc\", {description: name});\nconst _default = new alicloud.vpc.Ipv4CidrBlock(\"default\", {\n    secondaryCidrBlock: \"192.168.0.0/16\",\n    vpcId: defaultvpc.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaultvpc = alicloud.vpc.Network(\"defaultvpc\", description=name)\ndefault = alicloud.vpc.Ipv4CidrBlock(\"default\",\n    secondary_cidr_block=\"192.168.0.0/16\",\n    vpc_id=defaultvpc.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultvpc = new AliCloud.Vpc.Network(\"defaultvpc\", new()\n    {\n        Description = name,\n    });\n\n    var @default = new AliCloud.Vpc.Ipv4CidrBlock(\"default\", new()\n    {\n        SecondaryCidrBlock = \"192.168.0.0/16\",\n        VpcId = defaultvpc.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultvpc, err := vpc.NewNetwork(ctx, \"defaultvpc\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewIpv4CidrBlock(ctx, \"default\", \u0026vpc.Ipv4CidrBlockArgs{\n\t\t\tSecondaryCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t\tVpcId:              defaultvpc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Ipv4CidrBlock;\nimport com.pulumi.alicloud.vpc.Ipv4CidrBlockArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultvpc = new Network(\"defaultvpc\", NetworkArgs.builder()\n            .description(name)\n            .build());\n\n        var default_ = new Ipv4CidrBlock(\"default\", Ipv4CidrBlockArgs.builder()\n            .secondaryCidrBlock(\"192.168.0.0/16\")\n            .vpcId(defaultvpc.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultvpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: ${name}\n  default:\n    type: alicloud:vpc:Ipv4CidrBlock\n    properties:\n      secondaryCidrBlock: 192.168.0.0/16\n      vpcId: ${defaultvpc.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Ipv4 Cidr Block can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/ipv4CidrBlock:Ipv4CidrBlock example \u003cvpc_id\u003e:\u003csecondary_cidr_block\u003e\n```\n\n","properties":{"ipv4IpamPoolId":{"type":"string","description":"The ID of the IP Address Manager (IPAM) pool that contains IPv4 addresses.\n"},"regionId":{"type":"string","description":"The ID of the region where the VPC resides.\n"},"secondaryCidrBlock":{"type":"string","description":"Additional network segment information.\n"},"secondaryCidrMask":{"type":"integer","description":"Add an additional CIDR block from the IPAM address pool to the VPC by entering a mask.\n\n\u003e **NOTE:**  Specify the IPAM address pool to add an additional CIDR block to the VPC. Enter at least one of the SecondaryCidrBlock or SecondaryCidrMask parameters.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"}},"required":["regionId","secondaryCidrBlock","vpcId"],"inputProperties":{"ipv4IpamPoolId":{"type":"string","description":"The ID of the IP Address Manager (IPAM) pool that contains IPv4 addresses.\n"},"secondaryCidrBlock":{"type":"string","description":"Additional network segment information.\n","willReplaceOnChanges":true},"secondaryCidrMask":{"type":"integer","description":"Add an additional CIDR block from the IPAM address pool to the VPC by entering a mask.\n\n\u003e **NOTE:**  Specify the IPAM address pool to add an additional CIDR block to the VPC. Enter at least one of the SecondaryCidrBlock or SecondaryCidrMask parameters.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n","willReplaceOnChanges":true}},"requiredInputs":["vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv4CidrBlock resources.\n","properties":{"ipv4IpamPoolId":{"type":"string","description":"The ID of the IP Address Manager (IPAM) pool that contains IPv4 addresses.\n"},"regionId":{"type":"string","description":"The ID of the region where the VPC resides.\n"},"secondaryCidrBlock":{"type":"string","description":"Additional network segment information.\n","willReplaceOnChanges":true},"secondaryCidrMask":{"type":"integer","description":"Add an additional CIDR block from the IPAM address pool to the VPC by entering a mask.\n\n\u003e **NOTE:**  Specify the IPAM address pool to add an additional CIDR block to the VPC. Enter at least one of the SecondaryCidrBlock or SecondaryCidrMask parameters.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/ipv4Gateway:Ipv4Gateway":{"description":"Provides a Vpc Ipv4 Gateway resource.\n\nFor information about VPC Ipv4 Gateway and how to use it, see [What is Ipv4 Gateway](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/createipv4gateway).\n\n\u003e **NOTE:** Available since v1.181.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new alicloud.resourcemanager.ResourceGroup(\"default\", {\n    displayName: name,\n    resourceGroupName: name,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: `${name}2`,\n    cidrBlock: \"10.0.0.0/8\",\n});\nconst defaultIpv4Gateway = new alicloud.vpc.Ipv4Gateway(\"default\", {\n    ipv4GatewayName: name,\n    ipv4GatewayDescription: name,\n    resourceGroupId: _default.id,\n    vpcId: defaultNetwork.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.ResourceGroup(\"default\",\n    display_name=name,\n    resource_group_name=name)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=f\"{name}2\",\n    cidr_block=\"10.0.0.0/8\")\ndefault_ipv4_gateway = alicloud.vpc.Ipv4Gateway(\"default\",\n    ipv4_gateway_name=name,\n    ipv4_gateway_description=name,\n    resource_group_id=default.id,\n    vpc_id=default_network.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new AliCloud.ResourceManager.ResourceGroup(\"default\", new()\n    {\n        DisplayName = name,\n        ResourceGroupName = name,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = $\"{name}2\",\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var defaultIpv4Gateway = new AliCloud.Vpc.Ipv4Gateway(\"default\", new()\n    {\n        Ipv4GatewayName = name,\n        Ipv4GatewayDescription = name,\n        ResourceGroupId = @default.Id,\n        VpcId = defaultNetwork.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.NewResourceGroup(ctx, \"default\", \u0026resourcemanager.ResourceGroupArgs{\n\t\t\tDisplayName:       pulumi.String(name),\n\t\t\tResourceGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.Sprintf(\"%v2\", name),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewIpv4Gateway(ctx, \"default\", \u0026vpc.Ipv4GatewayArgs{\n\t\t\tIpv4GatewayName:        pulumi.String(name),\n\t\t\tIpv4GatewayDescription: pulumi.String(name),\n\t\t\tResourceGroupId:        _default.ID(),\n\t\t\tVpcId:                  defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourceGroup;\nimport com.pulumi.alicloud.resourcemanager.ResourceGroupArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Ipv4Gateway;\nimport com.pulumi.alicloud.vpc.Ipv4GatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new ResourceGroup(\"default\", ResourceGroupArgs.builder()\n            .displayName(name)\n            .resourceGroupName(name)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(String.format(\"%s2\", name))\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var defaultIpv4Gateway = new Ipv4Gateway(\"defaultIpv4Gateway\", Ipv4GatewayArgs.builder()\n            .ipv4GatewayName(name)\n            .ipv4GatewayDescription(name)\n            .resourceGroupId(default_.id())\n            .vpcId(defaultNetwork.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:resourcemanager:ResourceGroup\n    properties:\n      displayName: ${name}\n      resourceGroupName: ${name}\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}2\n      cidrBlock: 10.0.0.0/8\n  defaultIpv4Gateway:\n    type: alicloud:vpc:Ipv4Gateway\n    name: default\n    properties:\n      ipv4GatewayName: ${name}\n      ipv4GatewayDescription: ${name}\n      resourceGroupId: ${default.id}\n      vpcId: ${defaultNetwork.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Ipv4 Gateway can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/ipv4Gateway:Ipv4Gateway example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:-**true**: The check request is sent without creating an IPv4 Gateway. Check items include whether required parameters, request format, and business restrictions are filled in. If the check does not pass, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.-**false** (default): Sends a normal request, returns an HTTP 2xx status code and directly creates an IPv4 Gateway.\n"},"enabled":{"type":"boolean","description":"Whether the IPv4 gateway is active or not. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"internetMode":{"type":"string","description":"The public network traffic mode of the VPC after the IPv4 Gateway is deleted:\n"},"ipv4GatewayDescription":{"type":"string","description":"The description of the IPv4 gateway. The description must be 2 to 256 characters in length. It must start with a letter but cannot start with http:// or https://.\n"},"ipv4GatewayId":{"type":"string","description":"Resource primary key field.\n"},"ipv4GatewayName":{"type":"string","description":"The name of the IPv4 gateway. The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (_), and hyphens (-). It must start with a letter.\n"},"ipv4GatewayRouteTableId":{"type":"string","description":"ID of the route table associated with IPv4 Gateway\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the current resource.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) where you want to create the IPv4 gateway. You can create only one IPv4 gateway in a VPC.\n"}},"required":["createTime","enabled","ipv4GatewayId","ipv4GatewayRouteTableId","resourceGroupId","status","vpcId"],"inputProperties":{"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:-**true**: The check request is sent without creating an IPv4 Gateway. Check items include whether required parameters, request format, and business restrictions are filled in. If the check does not pass, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.-**false** (default): Sends a normal request, returns an HTTP 2xx status code and directly creates an IPv4 Gateway.\n"},"enabled":{"type":"boolean","description":"Whether the IPv4 gateway is active or not. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"internetMode":{"type":"string","description":"The public network traffic mode of the VPC after the IPv4 Gateway is deleted:\n"},"ipv4GatewayDescription":{"type":"string","description":"The description of the IPv4 gateway. The description must be 2 to 256 characters in length. It must start with a letter but cannot start with http:// or https://.\n"},"ipv4GatewayName":{"type":"string","description":"The name of the IPv4 gateway. The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (_), and hyphens (-). It must start with a letter.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the current resource.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) where you want to create the IPv4 gateway. You can create only one IPv4 gateway in a VPC.\n","willReplaceOnChanges":true}},"requiredInputs":["vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv4Gateway resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:-**true**: The check request is sent without creating an IPv4 Gateway. Check items include whether required parameters, request format, and business restrictions are filled in. If the check does not pass, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.-**false** (default): Sends a normal request, returns an HTTP 2xx status code and directly creates an IPv4 Gateway.\n"},"enabled":{"type":"boolean","description":"Whether the IPv4 gateway is active or not. Valid values are \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"internetMode":{"type":"string","description":"The public network traffic mode of the VPC after the IPv4 Gateway is deleted:\n"},"ipv4GatewayDescription":{"type":"string","description":"The description of the IPv4 gateway. The description must be 2 to 256 characters in length. It must start with a letter but cannot start with http:// or https://.\n"},"ipv4GatewayId":{"type":"string","description":"Resource primary key field.\n"},"ipv4GatewayName":{"type":"string","description":"The name of the IPv4 gateway. The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (_), and hyphens (-). It must start with a letter.\n"},"ipv4GatewayRouteTableId":{"type":"string","description":"ID of the route table associated with IPv4 Gateway\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the current resource.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) where you want to create the IPv4 gateway. You can create only one IPv4 gateway in a VPC.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/ipv6Address:Ipv6Address":{"description":"Provides a VPC Ipv6 Address resource.\n\n\n\nFor information about VPC Ipv6 Address and how to use it, see [What is Ipv6 Address](https://next.api.alibabacloud.com/document/Vpc/2016-04-28/AllocateIpv6Address).\n\n\u003e **NOTE:** Available since v1.216.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultGetZones = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    ipv6Isp: \"BGP\",\n    cidrBlock: \"172.168.0.0/16\",\n    enableIpv6: true,\n    vpcName: name,\n});\nconst vswich = new alicloud.vpc.Switch(\"vswich\", {\n    vpcId: vpc.id,\n    cidrBlock: \"172.168.0.0/24\",\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n    vswitchName: name,\n    ipv6CidrBlockMask: 1,\n});\nconst defaultIpv6Address = new alicloud.vpc.Ipv6Address(\"default\", {\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n    vswitchId: vswich.id,\n    ipv6AddressDescription: \"create_description\",\n    ipv6AddressName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nvpc = alicloud.vpc.Network(\"vpc\",\n    ipv6_isp=\"BGP\",\n    cidr_block=\"172.168.0.0/16\",\n    enable_ipv6=True,\n    vpc_name=name)\nvswich = alicloud.vpc.Switch(\"vswich\",\n    vpc_id=vpc.id,\n    cidr_block=\"172.168.0.0/24\",\n    zone_id=default_get_zones.zones[0].id,\n    vswitch_name=name,\n    ipv6_cidr_block_mask=1)\ndefault_ipv6_address = alicloud.vpc.Ipv6Address(\"default\",\n    resource_group_id=default.ids[0],\n    vswitch_id=vswich.id,\n    ipv6_address_description=\"create_description\",\n    ipv6_address_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        Ipv6Isp = \"BGP\",\n        CidrBlock = \"172.168.0.0/16\",\n        EnableIpv6 = true,\n        VpcName = name,\n    });\n\n    var vswich = new AliCloud.Vpc.Switch(\"vswich\", new()\n    {\n        VpcId = vpc.Id,\n        CidrBlock = \"172.168.0.0/24\",\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = name,\n        Ipv6CidrBlockMask = 1,\n    });\n\n    var defaultIpv6Address = new AliCloud.Vpc.Ipv6Address(\"default\", new()\n    {\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n        VswitchId = vswich.Id,\n        Ipv6AddressDescription = \"create_description\",\n        Ipv6AddressName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\n\t\t\tIpv6Isp:    pulumi.String(\"BGP\"),\n\t\t\tCidrBlock:  pulumi.String(\"172.168.0.0/16\"),\n\t\t\tEnableIpv6: pulumi.Bool(true),\n\t\t\tVpcName:    pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvswich, err := vpc.NewSwitch(ctx, \"vswich\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:             vpc.ID(),\n\t\t\tCidrBlock:         pulumi.String(\"172.168.0.0/24\"),\n\t\t\tZoneId:            pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\tVswitchName:       pulumi.String(name),\n\t\t\tIpv6CidrBlockMask: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewIpv6Address(ctx, \"default\", \u0026vpc.Ipv6AddressArgs{\n\t\t\tResourceGroupId:        pulumi.String(_default.Ids[0]),\n\t\t\tVswitchId:              vswich.ID(),\n\t\t\tIpv6AddressDescription: pulumi.String(\"create_description\"),\n\t\t\tIpv6AddressName:        pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.Ipv6Address;\nimport com.pulumi.alicloud.vpc.Ipv6AddressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .ipv6Isp(\"BGP\")\n            .cidrBlock(\"172.168.0.0/16\")\n            .enableIpv6(true)\n            .vpcName(name)\n            .build());\n\n        var vswich = new Switch(\"vswich\", SwitchArgs.builder()\n            .vpcId(vpc.id())\n            .cidrBlock(\"172.168.0.0/24\")\n            .zoneId(defaultGetZones.zones()[0].id())\n            .vswitchName(name)\n            .ipv6CidrBlockMask(1)\n            .build());\n\n        var defaultIpv6Address = new Ipv6Address(\"defaultIpv6Address\", Ipv6AddressArgs.builder()\n            .resourceGroupId(default_.ids()[0])\n            .vswitchId(vswich.id())\n            .ipv6AddressDescription(\"create_description\")\n            .ipv6AddressName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      ipv6Isp: BGP\n      cidrBlock: 172.168.0.0/16\n      enableIpv6: true\n      vpcName: ${name}\n  vswich:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${vpc.id}\n      cidrBlock: 172.168.0.0/24\n      zoneId: ${defaultGetZones.zones[0].id}\n      vswitchName: ${name}\n      ipv6CidrBlockMask: '1'\n  defaultIpv6Address:\n    type: alicloud:vpc:Ipv6Address\n    name: default\n    properties:\n      resourceGroupId: ${default.ids[0]}\n      vswitchId: ${vswich.id}\n      ipv6AddressDescription: create_description\n      ipv6AddressName: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Ipv6 Address can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/ipv6Address:Ipv6Address example \u003cid\u003e\n```\n\n","properties":{"addressType":{"type":"string","description":"The type of the IPv6 address. Value:\n- `IPv6Address` (default): indicates that the current instance is a single IPv6 address.\n- `IPv6Prefix`: indicates that the current instance is a contiguous block of IPv6 addresses.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"ipv6Address":{"type":"string","description":"IPv6 address\n","language":{"csharp":{"name":"Address"}}},"ipv6AddressDescription":{"type":"string","description":"The description of the IPv6 Address. The description must be 2 to 256 characters in length. It cannot start with http:// or https://.\n"},"ipv6AddressName":{"type":"string","description":"The name of the IPv6 Address. The name must be 2 to 128 characters in length, and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter but cannot start with http:// or https://.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"status":{"type":"string","description":"The status of the resource.  Available, Pending and Deleting.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags for the resource.\n"},"vswitchId":{"type":"string","description":"The VSwitchId of the IPv6 address.\n"}},"required":["addressType","createTime","ipv6Address","ipv6AddressDescription","resourceGroupId","status","vswitchId"],"inputProperties":{"addressType":{"type":"string","description":"The type of the IPv6 address. Value:\n- `IPv6Address` (default): indicates that the current instance is a single IPv6 address.\n- `IPv6Prefix`: indicates that the current instance is a contiguous block of IPv6 addresses.\n","willReplaceOnChanges":true},"ipv6Address":{"type":"string","description":"IPv6 address\n","language":{"csharp":{"name":"Address"}},"willReplaceOnChanges":true},"ipv6AddressDescription":{"type":"string","description":"The description of the IPv6 Address. The description must be 2 to 256 characters in length. It cannot start with http:// or https://.\n"},"ipv6AddressName":{"type":"string","description":"The name of the IPv6 Address. The name must be 2 to 128 characters in length, and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter but cannot start with http:// or https://.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags for the resource.\n"},"vswitchId":{"type":"string","description":"The VSwitchId of the IPv6 address.\n","willReplaceOnChanges":true}},"requiredInputs":["vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6Address resources.\n","properties":{"addressType":{"type":"string","description":"The type of the IPv6 address. Value:\n- `IPv6Address` (default): indicates that the current instance is a single IPv6 address.\n- `IPv6Prefix`: indicates that the current instance is a contiguous block of IPv6 addresses.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"ipv6Address":{"type":"string","description":"IPv6 address\n","language":{"csharp":{"name":"Address"}},"willReplaceOnChanges":true},"ipv6AddressDescription":{"type":"string","description":"The description of the IPv6 Address. The description must be 2 to 256 characters in length. It cannot start with http:// or https://.\n"},"ipv6AddressName":{"type":"string","description":"The name of the IPv6 Address. The name must be 2 to 128 characters in length, and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter but cannot start with http:// or https://.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"status":{"type":"string","description":"The status of the resource.  Available, Pending and Deleting.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags for the resource.\n"},"vswitchId":{"type":"string","description":"The VSwitchId of the IPv6 address.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/ipv6EgressRule:Ipv6EgressRule":{"description":"Provides a VPC Ipv6 Egress Rule resource. IPv6 address addition only active exit rule.\n\nFor information about VPC Ipv6 Egress Rule and how to use it, see [What is Ipv6 Egress Rule](https://www.alibabacloud.com/help/doc-detail/102200.htm).\n\n\u003e **NOTE:** Available since v1.142.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    systemDiskCategory: \"cloud_efficiency\",\n    cpuCoreCount: 4,\n    minimumEniIpv6AddressQuantity: 1,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    enableIpv6: true,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n    ipv6CidrBlockMask: 64,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    description: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    ipv6AddressCount: 1,\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    systemDiskCategory: \"cloud_efficiency\",\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceName: name,\n    vswitchId: defaultSwitch.id,\n    internetMaxBandwidthOut: 10,\n    securityGroups: [defaultSecurityGroup.id],\n});\nconst defaultIpv6Gateway = new alicloud.vpc.Ipv6Gateway(\"default\", {\n    ipv6GatewayName: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultGetIpv6Addresses = alicloud.vpc.getIpv6AddressesOutput({\n    associatedInstanceId: defaultInstance.id,\n    status: \"Available\",\n});\nconst defaultIpv6InternetBandwidth = new alicloud.vpc.Ipv6InternetBandwidth(\"default\", {\n    ipv6AddressId: defaultGetIpv6Addresses.apply(defaultGetIpv6Addresses =\u003e defaultGetIpv6Addresses.addresses?.[0]?.id),\n    ipv6GatewayId: defaultIpv6Gateway.ipv6GatewayId,\n    internetChargeType: \"PayByBandwidth\",\n    bandwidth: 20,\n});\nconst defaultIpv6EgressRule = new alicloud.vpc.Ipv6EgressRule(\"default\", {\n    instanceId: defaultIpv6InternetBandwidth.ipv6AddressId,\n    ipv6EgressRuleName: name,\n    description: name,\n    ipv6GatewayId: defaultIpv6InternetBandwidth.ipv6GatewayId,\n    instanceType: \"Ipv6Address\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    system_disk_category=\"cloud_efficiency\",\n    cpu_core_count=4,\n    minimum_eni_ipv6_address_quantity=1)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    enable_ipv6=True,\n    cidr_block=\"172.16.0.0/12\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name,\n    ipv6_cidr_block_mask=64)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    description=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    availability_zone=default.zones[0].id,\n    ipv6_address_count=1,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    system_disk_category=\"cloud_efficiency\",\n    image_id=default_get_images.images[0].id,\n    instance_name=name,\n    vswitch_id=default_switch.id,\n    internet_max_bandwidth_out=10,\n    security_groups=[default_security_group.id])\ndefault_ipv6_gateway = alicloud.vpc.Ipv6Gateway(\"default\",\n    ipv6_gateway_name=name,\n    vpc_id=default_network.id)\ndefault_get_ipv6_addresses = alicloud.vpc.get_ipv6_addresses_output(associated_instance_id=default_instance.id,\n    status=\"Available\")\ndefault_ipv6_internet_bandwidth = alicloud.vpc.Ipv6InternetBandwidth(\"default\",\n    ipv6_address_id=default_get_ipv6_addresses.addresses[0].id,\n    ipv6_gateway_id=default_ipv6_gateway.ipv6_gateway_id,\n    internet_charge_type=\"PayByBandwidth\",\n    bandwidth=20)\ndefault_ipv6_egress_rule = alicloud.vpc.Ipv6EgressRule(\"default\",\n    instance_id=default_ipv6_internet_bandwidth.ipv6_address_id,\n    ipv6_egress_rule_name=name,\n    description=name,\n    ipv6_gateway_id=default_ipv6_internet_bandwidth.ipv6_gateway_id,\n    instance_type=\"Ipv6Address\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        SystemDiskCategory = \"cloud_efficiency\",\n        CpuCoreCount = 4,\n        MinimumEniIpv6AddressQuantity = 1,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        EnableIpv6 = true,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n        Ipv6CidrBlockMask = 64,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        Description = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        Ipv6AddressCount = 1,\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SystemDiskCategory = \"cloud_efficiency\",\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceName = name,\n        VswitchId = defaultSwitch.Id,\n        InternetMaxBandwidthOut = 10,\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var defaultIpv6Gateway = new AliCloud.Vpc.Ipv6Gateway(\"default\", new()\n    {\n        Ipv6GatewayName = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultGetIpv6Addresses = AliCloud.Vpc.GetIpv6Addresses.Invoke(new()\n    {\n        AssociatedInstanceId = defaultInstance.Id,\n        Status = \"Available\",\n    });\n\n    var defaultIpv6InternetBandwidth = new AliCloud.Vpc.Ipv6InternetBandwidth(\"default\", new()\n    {\n        Ipv6AddressId = defaultGetIpv6Addresses.Apply(getIpv6AddressesResult =\u003e getIpv6AddressesResult.Addresses[0]?.Id),\n        Ipv6GatewayId = defaultIpv6Gateway.Ipv6GatewayId,\n        InternetChargeType = \"PayByBandwidth\",\n        Bandwidth = 20,\n    });\n\n    var defaultIpv6EgressRule = new AliCloud.Vpc.Ipv6EgressRule(\"default\", new()\n    {\n        InstanceId = defaultIpv6InternetBandwidth.Ipv6AddressId,\n        Ipv6EgressRuleName = name,\n        Description = name,\n        Ipv6GatewayId = defaultIpv6InternetBandwidth.Ipv6GatewayId,\n        InstanceType = \"Ipv6Address\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone:              pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tSystemDiskCategory:            pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tCpuCoreCount:                  pulumi.IntRef(4),\n\t\t\tMinimumEniIpv6AddressQuantity: pulumi.IntRef(1),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:    pulumi.String(name),\n\t\t\tEnableIpv6: pulumi.Bool(true),\n\t\t\tCidrBlock:  pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t\tCidrBlock:         pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:            pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName:       pulumi.String(name),\n\t\t\tIpv6CidrBlockMask: pulumi.Int(64),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\n\t\t\tAvailabilityZone:        pulumi.String(_default.Zones[0].Id),\n\t\t\tIpv6AddressCount:        pulumi.Int(1),\n\t\t\tInstanceType:            pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSystemDiskCategory:      pulumi.String(\"cloud_efficiency\"),\n\t\t\tImageId:                 pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceName:            pulumi.String(name),\n\t\t\tVswitchId:               defaultSwitch.ID(),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultIpv6Gateway, err := vpc.NewIpv6Gateway(ctx, \"default\", \u0026vpc.Ipv6GatewayArgs{\n\t\t\tIpv6GatewayName: pulumi.String(name),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetIpv6Addresses := vpc.GetIpv6AddressesOutput(ctx, vpc.GetIpv6AddressesOutputArgs{\n\t\t\tAssociatedInstanceId: defaultInstance.ID(),\n\t\t\tStatus:               pulumi.String(\"Available\"),\n\t\t}, nil)\n\t\tdefaultIpv6InternetBandwidth, err := vpc.NewIpv6InternetBandwidth(ctx, \"default\", \u0026vpc.Ipv6InternetBandwidthArgs{\n\t\t\tIpv6AddressId: pulumi.String(defaultGetIpv6Addresses.ApplyT(func(defaultGetIpv6Addresses vpc.GetIpv6AddressesResult) (*string, error) {\n\t\t\t\treturn \u0026defaultGetIpv6Addresses.Addresses[0].Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tIpv6GatewayId:      defaultIpv6Gateway.Ipv6GatewayId,\n\t\t\tInternetChargeType: pulumi.String(\"PayByBandwidth\"),\n\t\t\tBandwidth:          pulumi.Int(20),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewIpv6EgressRule(ctx, \"default\", \u0026vpc.Ipv6EgressRuleArgs{\n\t\t\tInstanceId:         defaultIpv6InternetBandwidth.Ipv6AddressId,\n\t\t\tIpv6EgressRuleName: pulumi.String(name),\n\t\t\tDescription:        pulumi.String(name),\n\t\t\tIpv6GatewayId:      defaultIpv6InternetBandwidth.Ipv6GatewayId,\n\t\t\tInstanceType:       pulumi.String(\"Ipv6Address\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.vpc.Ipv6Gateway;\nimport com.pulumi.alicloud.vpc.Ipv6GatewayArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetIpv6AddressesArgs;\nimport com.pulumi.alicloud.vpc.Ipv6InternetBandwidth;\nimport com.pulumi.alicloud.vpc.Ipv6InternetBandwidthArgs;\nimport com.pulumi.alicloud.vpc.Ipv6EgressRule;\nimport com.pulumi.alicloud.vpc.Ipv6EgressRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .cpuCoreCount(4)\n            .minimumEniIpv6AddressQuantity(1)\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .enableIpv6(true)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .ipv6CidrBlockMask(64)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .description(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .ipv6AddressCount(1)\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceName(name)\n            .vswitchId(defaultSwitch.id())\n            .internetMaxBandwidthOut(10)\n            .securityGroups(defaultSecurityGroup.id())\n            .build());\n\n        var defaultIpv6Gateway = new Ipv6Gateway(\"defaultIpv6Gateway\", Ipv6GatewayArgs.builder()\n            .ipv6GatewayName(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        final var defaultGetIpv6Addresses = VpcFunctions.getIpv6Addresses(GetIpv6AddressesArgs.builder()\n            .associatedInstanceId(defaultInstance.id())\n            .status(\"Available\")\n            .build());\n\n        var defaultIpv6InternetBandwidth = new Ipv6InternetBandwidth(\"defaultIpv6InternetBandwidth\", Ipv6InternetBandwidthArgs.builder()\n            .ipv6AddressId(defaultGetIpv6Addresses.applyValue(_defaultGetIpv6Addresses -\u003e _defaultGetIpv6Addresses.addresses()[0].id()))\n            .ipv6GatewayId(defaultIpv6Gateway.ipv6GatewayId())\n            .internetChargeType(\"PayByBandwidth\")\n            .bandwidth(20)\n            .build());\n\n        var defaultIpv6EgressRule = new Ipv6EgressRule(\"defaultIpv6EgressRule\", Ipv6EgressRuleArgs.builder()\n            .instanceId(defaultIpv6InternetBandwidth.ipv6AddressId())\n            .ipv6EgressRuleName(name)\n            .description(name)\n            .ipv6GatewayId(defaultIpv6InternetBandwidth.ipv6GatewayId())\n            .instanceType(\"Ipv6Address\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      enableIpv6: 'true'\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n      ipv6CidrBlockMask: '64'\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: ${name}\n      description: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:ecs:Instance\n    name: default\n    properties:\n      availabilityZone: ${default.zones[0].id}\n      ipv6AddressCount: 1\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      imageId: ${defaultGetImages.images[0].id}\n      instanceName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      internetMaxBandwidthOut: 10\n      securityGroups:\n        - ${defaultSecurityGroup.id}\n  defaultIpv6Gateway:\n    type: alicloud:vpc:Ipv6Gateway\n    name: default\n    properties:\n      ipv6GatewayName: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultIpv6InternetBandwidth:\n    type: alicloud:vpc:Ipv6InternetBandwidth\n    name: default\n    properties:\n      ipv6AddressId: ${defaultGetIpv6Addresses.addresses[0].id}\n      ipv6GatewayId: ${defaultIpv6Gateway.ipv6GatewayId}\n      internetChargeType: PayByBandwidth\n      bandwidth: '20'\n  defaultIpv6EgressRule:\n    type: alicloud:vpc:Ipv6EgressRule\n    name: default\n    properties:\n      instanceId: ${defaultIpv6InternetBandwidth.ipv6AddressId}\n      ipv6EgressRuleName: ${name}\n      description: ${name}\n      ipv6GatewayId: ${defaultIpv6InternetBandwidth.ipv6GatewayId}\n      instanceType: Ipv6Address\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        systemDiskCategory: cloud_efficiency\n        cpuCoreCount: 4\n        minimumEniIpv6AddressQuantity: 1\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n  defaultGetIpv6Addresses:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6Addresses\n      arguments:\n        associatedInstanceId: ${defaultInstance.id}\n        status: Available\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Ipv6 Egress Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/ipv6EgressRule:Ipv6EgressRule example \u003cipv6_gateway_id\u003e:\u003cipv6_egress_rule_id\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the egress-only rule. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length. It cannot start with `http://` or `https://`.\n"},"instanceId":{"type":"string","description":"The ID of the IPv6 address to which you want to apply the egress-only rule.\n"},"instanceType":{"type":"string","description":"The type of instance to which you want to apply the egress-only rule. Valid values: `Ipv6Address`. `Ipv6Address` (default): an IPv6 address.\n"},"ipv6EgressRuleId":{"type":"string","description":"The ID of the IPv6 EgressRule.\n"},"ipv6EgressRuleName":{"type":"string","description":"The name of the egress-only rule. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter but cannot start with `http://` or `https://`.\n"},"ipv6GatewayId":{"type":"string","description":"The ID of the IPv6 gateway.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"required":["instanceId","instanceType","ipv6EgressRuleId","ipv6GatewayId","status"],"inputProperties":{"description":{"type":"string","description":"The description of the egress-only rule. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length. It cannot start with `http://` or `https://`.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the IPv6 address to which you want to apply the egress-only rule.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of instance to which you want to apply the egress-only rule. Valid values: `Ipv6Address`. `Ipv6Address` (default): an IPv6 address.\n","willReplaceOnChanges":true},"ipv6EgressRuleName":{"type":"string","description":"The name of the egress-only rule. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter but cannot start with `http://` or `https://`.\n","willReplaceOnChanges":true},"ipv6GatewayId":{"type":"string","description":"The ID of the IPv6 gateway.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId","ipv6GatewayId"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6EgressRule resources.\n","properties":{"description":{"type":"string","description":"The description of the egress-only rule. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length. It cannot start with `http://` or `https://`.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the IPv6 address to which you want to apply the egress-only rule.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"The type of instance to which you want to apply the egress-only rule. Valid values: `Ipv6Address`. `Ipv6Address` (default): an IPv6 address.\n","willReplaceOnChanges":true},"ipv6EgressRuleId":{"type":"string","description":"The ID of the IPv6 EgressRule.\n"},"ipv6EgressRuleName":{"type":"string","description":"The name of the egress-only rule. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter but cannot start with `http://` or `https://`.\n","willReplaceOnChanges":true},"ipv6GatewayId":{"type":"string","description":"The ID of the IPv6 gateway.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object"}},"alicloud:vpc/ipv6Gateway:Ipv6Gateway":{"description":"Provides a Vpc Ipv6 Gateway resource. Gateway Based on Internet Protocol Version 6.\n\nFor information about Vpc Ipv6 Gateway and how to use it, see [What is Ipv6 Gateway](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/createipv6gateway).\n\n\u003e **NOTE:** Available since v1.142.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-testacc-example\";\nconst defaultVpc = new alicloud.vpc.Network(\"defaultVpc\", {\n    description: \"tf-testacc\",\n    enableIpv6: true,\n});\nconst defaultRg = new alicloud.resourcemanager.ResourceGroup(\"defaultRg\", {\n    displayName: \"tf-testacc-ipv6gateway503\",\n    resourceGroupName: `${name}1`,\n});\nconst changeRg = new alicloud.resourcemanager.ResourceGroup(\"changeRg\", {\n    displayName: \"tf-testacc-ipv6gateway311\",\n    resourceGroupName: `${name}2`,\n});\nconst _default = new alicloud.vpc.Ipv6Gateway(\"default\", {\n    description: \"test\",\n    ipv6GatewayName: name,\n    vpcId: defaultVpc.id,\n    resourceGroupId: defaultRg.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-testacc-example\"\ndefault_vpc = alicloud.vpc.Network(\"defaultVpc\",\n    description=\"tf-testacc\",\n    enable_ipv6=True)\ndefault_rg = alicloud.resourcemanager.ResourceGroup(\"defaultRg\",\n    display_name=\"tf-testacc-ipv6gateway503\",\n    resource_group_name=f\"{name}1\")\nchange_rg = alicloud.resourcemanager.ResourceGroup(\"changeRg\",\n    display_name=\"tf-testacc-ipv6gateway311\",\n    resource_group_name=f\"{name}2\")\ndefault = alicloud.vpc.Ipv6Gateway(\"default\",\n    description=\"test\",\n    ipv6_gateway_name=name,\n    vpc_id=default_vpc.id,\n    resource_group_id=default_rg.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-testacc-example\";\n    var defaultVpc = new AliCloud.Vpc.Network(\"defaultVpc\", new()\n    {\n        Description = \"tf-testacc\",\n        EnableIpv6 = true,\n    });\n\n    var defaultRg = new AliCloud.ResourceManager.ResourceGroup(\"defaultRg\", new()\n    {\n        DisplayName = \"tf-testacc-ipv6gateway503\",\n        ResourceGroupName = $\"{name}1\",\n    });\n\n    var changeRg = new AliCloud.ResourceManager.ResourceGroup(\"changeRg\", new()\n    {\n        DisplayName = \"tf-testacc-ipv6gateway311\",\n        ResourceGroupName = $\"{name}2\",\n    });\n\n    var @default = new AliCloud.Vpc.Ipv6Gateway(\"default\", new()\n    {\n        Description = \"test\",\n        Ipv6GatewayName = name,\n        VpcId = defaultVpc.Id,\n        ResourceGroupId = defaultRg.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-testacc-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultVpc, err := vpc.NewNetwork(ctx, \"defaultVpc\", \u0026vpc.NetworkArgs{\n\t\t\tDescription: pulumi.String(\"tf-testacc\"),\n\t\t\tEnableIpv6:  pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRg, err := resourcemanager.NewResourceGroup(ctx, \"defaultRg\", \u0026resourcemanager.ResourceGroupArgs{\n\t\t\tDisplayName:       pulumi.String(\"tf-testacc-ipv6gateway503\"),\n\t\t\tResourceGroupName: pulumi.Sprintf(\"%v1\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.NewResourceGroup(ctx, \"changeRg\", \u0026resourcemanager.ResourceGroupArgs{\n\t\t\tDisplayName:       pulumi.String(\"tf-testacc-ipv6gateway311\"),\n\t\t\tResourceGroupName: pulumi.Sprintf(\"%v2\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewIpv6Gateway(ctx, \"default\", \u0026vpc.Ipv6GatewayArgs{\n\t\t\tDescription:     pulumi.String(\"test\"),\n\t\t\tIpv6GatewayName: pulumi.String(name),\n\t\t\tVpcId:           defaultVpc.ID(),\n\t\t\tResourceGroupId: defaultRg.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourceGroup;\nimport com.pulumi.alicloud.resourcemanager.ResourceGroupArgs;\nimport com.pulumi.alicloud.vpc.Ipv6Gateway;\nimport com.pulumi.alicloud.vpc.Ipv6GatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-testacc-example\");\n        var defaultVpc = new Network(\"defaultVpc\", NetworkArgs.builder()\n            .description(\"tf-testacc\")\n            .enableIpv6(true)\n            .build());\n\n        var defaultRg = new ResourceGroup(\"defaultRg\", ResourceGroupArgs.builder()\n            .displayName(\"tf-testacc-ipv6gateway503\")\n            .resourceGroupName(String.format(\"%s1\", name))\n            .build());\n\n        var changeRg = new ResourceGroup(\"changeRg\", ResourceGroupArgs.builder()\n            .displayName(\"tf-testacc-ipv6gateway311\")\n            .resourceGroupName(String.format(\"%s2\", name))\n            .build());\n\n        var default_ = new Ipv6Gateway(\"default\", Ipv6GatewayArgs.builder()\n            .description(\"test\")\n            .ipv6GatewayName(name)\n            .vpcId(defaultVpc.id())\n            .resourceGroupId(defaultRg.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-testacc-example\nresources:\n  defaultVpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: tf-testacc\n      enableIpv6: true\n  defaultRg:\n    type: alicloud:resourcemanager:ResourceGroup\n    properties:\n      displayName: tf-testacc-ipv6gateway503\n      resourceGroupName: ${name}1\n  changeRg:\n    type: alicloud:resourcemanager:ResourceGroup\n    properties:\n      displayName: tf-testacc-ipv6gateway311\n      resourceGroupName: ${name}2\n  default:\n    type: alicloud:vpc:Ipv6Gateway\n    properties:\n      description: test\n      ipv6GatewayName: ${name}\n      vpcId: ${defaultVpc.id}\n      resourceGroupId: ${defaultRg.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVpc Ipv6 Gateway can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/ipv6Gateway:Ipv6Gateway example \u003cid\u003e\n```\n\n","properties":{"businessStatus":{"type":"string","description":"The status of the IPv6 gateway.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"description":{"type":"string","description":"The description of the IPv6 gateway. The description must be 2 to 256 characters in length. It cannot start with http:// or https://.\n"},"expiredTime":{"type":"string","description":"The expiration time of IPv6 gateway.\n"},"instanceChargeType":{"type":"string","description":"The charge type of IPv6 gateway.\n"},"ipv6GatewayId":{"type":"string","description":"Resource primary key attribute field.\n"},"ipv6GatewayName":{"type":"string","description":"The name of the IPv6 gateway. The name must be 2 to 128 characters in length, and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter but cannot start with http:// or https://.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"spec":{"type":"string","description":"IPv6 gateways do not distinguish between specifications. This parameter is no longer used.\n","deprecationMessage":"Field 'Spec' has been deprecated from provider version 1.205.0. IPv6 gateways do not distinguish between specifications. This parameter is no longer used."},"status":{"type":"string","description":"The status of the resource. Valid values: Available, Pending and Deleting.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags for the resource.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) for which you want to create the IPv6 gateway.\n"}},"required":["businessStatus","createTime","expiredTime","instanceChargeType","ipv6GatewayId","resourceGroupId","spec","status","vpcId"],"inputProperties":{"description":{"type":"string","description":"The description of the IPv6 gateway. The description must be 2 to 256 characters in length. It cannot start with http:// or https://.\n"},"ipv6GatewayName":{"type":"string","description":"The name of the IPv6 gateway. The name must be 2 to 128 characters in length, and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter but cannot start with http:// or https://.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"spec":{"type":"string","description":"IPv6 gateways do not distinguish between specifications. This parameter is no longer used.\n","deprecationMessage":"Field 'Spec' has been deprecated from provider version 1.205.0. IPv6 gateways do not distinguish between specifications. This parameter is no longer used."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags for the resource.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) for which you want to create the IPv6 gateway.\n","willReplaceOnChanges":true}},"requiredInputs":["vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6Gateway resources.\n","properties":{"businessStatus":{"type":"string","description":"The status of the IPv6 gateway.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"description":{"type":"string","description":"The description of the IPv6 gateway. The description must be 2 to 256 characters in length. It cannot start with http:// or https://.\n"},"expiredTime":{"type":"string","description":"The expiration time of IPv6 gateway.\n"},"instanceChargeType":{"type":"string","description":"The charge type of IPv6 gateway.\n"},"ipv6GatewayId":{"type":"string","description":"Resource primary key attribute field.\n"},"ipv6GatewayName":{"type":"string","description":"The name of the IPv6 gateway. The name must be 2 to 128 characters in length, and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter but cannot start with http:// or https://.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the instance belongs.\n"},"spec":{"type":"string","description":"IPv6 gateways do not distinguish between specifications. This parameter is no longer used.\n","deprecationMessage":"Field 'Spec' has been deprecated from provider version 1.205.0. IPv6 gateways do not distinguish between specifications. This parameter is no longer used."},"status":{"type":"string","description":"The status of the resource. Valid values: Available, Pending and Deleting.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags for the resource.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) for which you want to create the IPv6 gateway.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/ipv6InternetBandwidth:Ipv6InternetBandwidth":{"description":"Provides a VPC Ipv6 Internet Bandwidth resource. Public network bandwidth of IPv6 address.\n\nFor information about VPC Ipv6 Internet Bandwidth and how to use it, see [What is Ipv6 Internet Bandwidth](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/allocateipv6internetbandwidth).\n\n\u003e **NOTE:** Available since v1.143.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    enableIpv6: true,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst vsw = new alicloud.vpc.Switch(\"vsw\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n    ipv6CidrBlockMask: 22,\n});\nconst group = new alicloud.ecs.SecurityGroup(\"group\", {\n    name: name,\n    description: \"foo\",\n    vpcId: defaultNetwork.id,\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    systemDiskCategory: \"cloud_efficiency\",\n    cpuCoreCount: 4,\n    minimumEniIpv6AddressQuantity: 1,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst vpcInstance = new alicloud.ecs.Instance(\"vpc_instance\", {\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    ipv6AddressCount: 1,\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    systemDiskCategory: \"cloud_efficiency\",\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceName: name,\n    vswitchId: vsw.id,\n    internetMaxBandwidthOut: 10,\n    securityGroups: [group].map(__item =\u003e __item.id),\n});\nconst example = new alicloud.vpc.Ipv6Gateway(\"example\", {\n    ipv6GatewayName: \"example_value\",\n    vpcId: defaultNetwork.id,\n});\nconst defaultGetIpv6Addresses = alicloud.vpc.getIpv6AddressesOutput({\n    associatedInstanceId: vpcInstance.id,\n    status: \"Available\",\n});\nconst exampleIpv6InternetBandwidth = new alicloud.vpc.Ipv6InternetBandwidth(\"example\", {\n    ipv6AddressId: defaultGetIpv6Addresses.apply(defaultGetIpv6Addresses =\u003e defaultGetIpv6Addresses.addresses?.[0]?.id),\n    ipv6GatewayId: example.ipv6GatewayId,\n    internetChargeType: \"PayByBandwidth\",\n    bandwidth: 20,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    enable_ipv6=True,\n    cidr_block=\"172.16.0.0/12\")\nvsw = alicloud.vpc.Switch(\"vsw\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name,\n    ipv6_cidr_block_mask=22)\ngroup = alicloud.ecs.SecurityGroup(\"group\",\n    name=name,\n    description=\"foo\",\n    vpc_id=default_network.id)\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    system_disk_category=\"cloud_efficiency\",\n    cpu_core_count=4,\n    minimum_eni_ipv6_address_quantity=1)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\nvpc_instance = alicloud.ecs.Instance(\"vpc_instance\",\n    availability_zone=default.zones[0].id,\n    ipv6_address_count=1,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    system_disk_category=\"cloud_efficiency\",\n    image_id=default_get_images.images[0].id,\n    instance_name=name,\n    vswitch_id=vsw.id,\n    internet_max_bandwidth_out=10,\n    security_groups=[__item.id for __item in [group]])\nexample = alicloud.vpc.Ipv6Gateway(\"example\",\n    ipv6_gateway_name=\"example_value\",\n    vpc_id=default_network.id)\ndefault_get_ipv6_addresses = alicloud.vpc.get_ipv6_addresses_output(associated_instance_id=vpc_instance.id,\n    status=\"Available\")\nexample_ipv6_internet_bandwidth = alicloud.vpc.Ipv6InternetBandwidth(\"example\",\n    ipv6_address_id=default_get_ipv6_addresses.addresses[0].id,\n    ipv6_gateway_id=example.ipv6_gateway_id,\n    internet_charge_type=\"PayByBandwidth\",\n    bandwidth=20)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        EnableIpv6 = true,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var vsw = new AliCloud.Vpc.Switch(\"vsw\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n        Ipv6CidrBlockMask = 22,\n    });\n\n    var @group = new AliCloud.Ecs.SecurityGroup(\"group\", new()\n    {\n        Name = name,\n        Description = \"foo\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        SystemDiskCategory = \"cloud_efficiency\",\n        CpuCoreCount = 4,\n        MinimumEniIpv6AddressQuantity = 1,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var vpcInstance = new AliCloud.Ecs.Instance(\"vpc_instance\", new()\n    {\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        Ipv6AddressCount = 1,\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SystemDiskCategory = \"cloud_efficiency\",\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceName = name,\n        VswitchId = vsw.Id,\n        InternetMaxBandwidthOut = 10,\n        SecurityGroups = new[]\n        {\n            @group,\n        }.Select(__item =\u003e __item.Id).ToList(),\n    });\n\n    var example = new AliCloud.Vpc.Ipv6Gateway(\"example\", new()\n    {\n        Ipv6GatewayName = \"example_value\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultGetIpv6Addresses = AliCloud.Vpc.GetIpv6Addresses.Invoke(new()\n    {\n        AssociatedInstanceId = vpcInstance.Id,\n        Status = \"Available\",\n    });\n\n    var exampleIpv6InternetBandwidth = new AliCloud.Vpc.Ipv6InternetBandwidth(\"example\", new()\n    {\n        Ipv6AddressId = defaultGetIpv6Addresses.Apply(getIpv6AddressesResult =\u003e getIpv6AddressesResult.Addresses[0]?.Id),\n        Ipv6GatewayId = example.Ipv6GatewayId,\n        InternetChargeType = \"PayByBandwidth\",\n        Bandwidth = 20,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nEnableIpv6: pulumi.Bool(true),\nCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n})\nif err != nil {\nreturn err\n}\nvsw, err := vpc.NewSwitch(ctx, \"vsw\", \u0026vpc.SwitchArgs{\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"172.16.0.0/21\"),\nZoneId: pulumi.String(_default.Zones[0].Id),\nVswitchName: pulumi.String(name),\nIpv6CidrBlockMask: pulumi.Int(22),\n})\nif err != nil {\nreturn err\n}\ngroup, err := ecs.NewSecurityGroup(ctx, \"group\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(name),\nDescription: pulumi.String(\"foo\"),\nVpcId: defaultNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\ndefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\nSystemDiskCategory: pulumi.StringRef(\"cloud_efficiency\"),\nCpuCoreCount: pulumi.IntRef(4),\nMinimumEniIpv6AddressQuantity: pulumi.IntRef(1),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\nMostRecent: pulumi.BoolRef(true),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\nvpcInstance, err := ecs.NewInstance(ctx, \"vpc_instance\", \u0026ecs.InstanceArgs{\nAvailabilityZone: pulumi.String(_default.Zones[0].Id),\nIpv6AddressCount: pulumi.Int(1),\nInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nImageId: pulumi.String(defaultGetImages.Images[0].Id),\nInstanceName: pulumi.String(name),\nVswitchId: vsw.ID(),\nInternetMaxBandwidthOut: pulumi.Int(10),\nSecurityGroups: splat0,\n})\nif err != nil {\nreturn err\n}\nexample, err := vpc.NewIpv6Gateway(ctx, \"example\", \u0026vpc.Ipv6GatewayArgs{\nIpv6GatewayName: pulumi.String(\"example_value\"),\nVpcId: defaultNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\ndefaultGetIpv6Addresses := vpc.GetIpv6AddressesOutput(ctx, vpc.GetIpv6AddressesOutputArgs{\nAssociatedInstanceId: vpcInstance.ID(),\nStatus: pulumi.String(\"Available\"),\n}, nil);\n_, err = vpc.NewIpv6InternetBandwidth(ctx, \"example\", \u0026vpc.Ipv6InternetBandwidthArgs{\nIpv6AddressId: pulumi.String(defaultGetIpv6Addresses.ApplyT(func(defaultGetIpv6Addresses vpc.GetIpv6AddressesResult) (*string, error) {\nreturn \u0026defaultGetIpv6Addresses.Addresses[0].Id, nil\n}).(pulumi.StringPtrOutput)),\nIpv6GatewayId: example.Ipv6GatewayId,\nInternetChargeType: pulumi.String(\"PayByBandwidth\"),\nBandwidth: pulumi.Int(20),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.vpc.Ipv6Gateway;\nimport com.pulumi.alicloud.vpc.Ipv6GatewayArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetIpv6AddressesArgs;\nimport com.pulumi.alicloud.vpc.Ipv6InternetBandwidth;\nimport com.pulumi.alicloud.vpc.Ipv6InternetBandwidthArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .enableIpv6(true)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var vsw = new Switch(\"vsw\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .ipv6CidrBlockMask(22)\n            .build());\n\n        var group = new SecurityGroup(\"group\", SecurityGroupArgs.builder()\n            .name(name)\n            .description(\"foo\")\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .cpuCoreCount(4)\n            .minimumEniIpv6AddressQuantity(1)\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var vpcInstance = new Instance(\"vpcInstance\", InstanceArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .ipv6AddressCount(1)\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceName(name)\n            .vswitchId(vsw.id())\n            .internetMaxBandwidthOut(10)\n            .securityGroups(group.stream().map(element -\u003e element.id()).collect(toList()))\n            .build());\n\n        var example = new Ipv6Gateway(\"example\", Ipv6GatewayArgs.builder()\n            .ipv6GatewayName(\"example_value\")\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        final var defaultGetIpv6Addresses = VpcFunctions.getIpv6Addresses(GetIpv6AddressesArgs.builder()\n            .associatedInstanceId(vpcInstance.id())\n            .status(\"Available\")\n            .build());\n\n        var exampleIpv6InternetBandwidth = new Ipv6InternetBandwidth(\"exampleIpv6InternetBandwidth\", Ipv6InternetBandwidthArgs.builder()\n            .ipv6AddressId(defaultGetIpv6Addresses.applyValue(_defaultGetIpv6Addresses -\u003e _defaultGetIpv6Addresses.addresses()[0].id()))\n            .ipv6GatewayId(example.ipv6GatewayId())\n            .internetChargeType(\"PayByBandwidth\")\n            .bandwidth(20)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Ipv6 Internet Bandwidth can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/ipv6InternetBandwidth:Ipv6InternetBandwidth example \u003cid\u003e\n```\n\n","properties":{"bandwidth":{"type":"integer","description":"The amount of Internet bandwidth resources of the IPv6 address, Unit: `Mbit/s`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5000`\" pulumi-lang-dotnet=\"`5000`\" pulumi-lang-go=\"`5000`\" pulumi-lang-python=\"`5000`\" pulumi-lang-yaml=\"`5000`\" pulumi-lang-java=\"`5000`\"\u003e`5000`\u003c/span\u003e. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is set to `PayByTraffic`, the amount of Internet bandwidth resources of the IPv6 address is limited by the specification of the IPv6 gateway. `Small` (default): specifies the Free edition and the Internet bandwidth is from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e Mbit/s. `Medium`: specifies the Medium edition and the Internet bandwidth is from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e Mbit/s. `Large`: specifies the Large edition and the Internet bandwidth is from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e Mbit/s.\n"},"internetChargeType":{"type":"string","description":"The metering method of the Internet bandwidth resources of the IPv6 gateway. Valid values: `PayByBandwidth`, `PayByTraffic`.\n"},"ipv6AddressId":{"type":"string","description":"The ID of the IPv6 address instance.\n"},"ipv6GatewayId":{"type":"string","description":"The ID of the IPv6 gateway to which the IPv6 address belongs.\n"},"status":{"type":"string","description":"The status of the resource.\n"}},"required":["bandwidth","internetChargeType","ipv6AddressId","ipv6GatewayId","status"],"inputProperties":{"bandwidth":{"type":"integer","description":"The amount of Internet bandwidth resources of the IPv6 address, Unit: `Mbit/s`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5000`\" pulumi-lang-dotnet=\"`5000`\" pulumi-lang-go=\"`5000`\" pulumi-lang-python=\"`5000`\" pulumi-lang-yaml=\"`5000`\" pulumi-lang-java=\"`5000`\"\u003e`5000`\u003c/span\u003e. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is set to `PayByTraffic`, the amount of Internet bandwidth resources of the IPv6 address is limited by the specification of the IPv6 gateway. `Small` (default): specifies the Free edition and the Internet bandwidth is from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e Mbit/s. `Medium`: specifies the Medium edition and the Internet bandwidth is from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e Mbit/s. `Large`: specifies the Large edition and the Internet bandwidth is from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e Mbit/s.\n"},"internetChargeType":{"type":"string","description":"The metering method of the Internet bandwidth resources of the IPv6 gateway. Valid values: `PayByBandwidth`, `PayByTraffic`.\n","willReplaceOnChanges":true},"ipv6AddressId":{"type":"string","description":"The ID of the IPv6 address instance.\n"},"ipv6GatewayId":{"type":"string","description":"The ID of the IPv6 gateway to which the IPv6 address belongs.\n","willReplaceOnChanges":true}},"requiredInputs":["bandwidth","ipv6AddressId","ipv6GatewayId"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6InternetBandwidth resources.\n","properties":{"bandwidth":{"type":"integer","description":"The amount of Internet bandwidth resources of the IPv6 address, Unit: `Mbit/s`. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`5000`\" pulumi-lang-dotnet=\"`5000`\" pulumi-lang-go=\"`5000`\" pulumi-lang-python=\"`5000`\" pulumi-lang-yaml=\"`5000`\" pulumi-lang-java=\"`5000`\"\u003e`5000`\u003c/span\u003e. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is set to `PayByTraffic`, the amount of Internet bandwidth resources of the IPv6 address is limited by the specification of the IPv6 gateway. `Small` (default): specifies the Free edition and the Internet bandwidth is from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e Mbit/s. `Medium`: specifies the Medium edition and the Internet bandwidth is from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e Mbit/s. `Large`: specifies the Large edition and the Internet bandwidth is from \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`2000`\" pulumi-lang-dotnet=\"`2000`\" pulumi-lang-go=\"`2000`\" pulumi-lang-python=\"`2000`\" pulumi-lang-yaml=\"`2000`\" pulumi-lang-java=\"`2000`\"\u003e`2000`\u003c/span\u003e Mbit/s.\n"},"internetChargeType":{"type":"string","description":"The metering method of the Internet bandwidth resources of the IPv6 gateway. Valid values: `PayByBandwidth`, `PayByTraffic`.\n","willReplaceOnChanges":true},"ipv6AddressId":{"type":"string","description":"The ID of the IPv6 address instance.\n"},"ipv6GatewayId":{"type":"string","description":"The ID of the IPv6 gateway to which the IPv6 address belongs.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"}},"type":"object"}},"alicloud:vpc/natGateway:NatGateway":{"description":"Provides a resource to create a VPC NAT Gateway.\n\n\u003e **NOTE:** Resource bandwidth packages will not be supported since 00:00 on November 4, 2017, and public IP can be replaced be elastic IPs.\nIf 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.\nIf you want to add public IP, you can use resource 'alicloud_eip_association' to bind several elastic IPs for one Nat Gateway.\n\n\u003e **NOTE:** From version 1.7.1, this resource has deprecated bandwidth packages.\nBut, in order to manage stock bandwidth packages, version 1.13.0 re-support configuring 'bandwidth_packages'.\n\n\u003e **NOTE:** When you create an enhanced NAT gateway for the first time, the system automatically creates the service-linked role AliyunServiceRoleForNatgw. Then, the system attaches the permission policy AliyunServiceRolePolicyForNatgw to the role. This allows the NAT gateway to access other resources on Alibaba Cloud. For more information, see Service-linked roles.\n\n\u003e **NOTE:** After you create an enhanced Internet NAT gateway, a route entry is automatically added to the route table of the VPC. The destination CIDR block of the route entry is 0.0.0.0/0 and the next hop is the NAT gateway. This ensures that traffic is routed to the NAT gateway.\n\n\u003e **NOTE:** Available since v1.37.0.\n\n## Example Usage\n\nBasic usage\n\n- create enhanced nat gateway\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.0.0.0/8\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.zoneId),\n    cidrBlock: \"10.10.0.0/20\",\n    vpcId: defaultNetwork.id,\n});\nconst defaultNatGateway = new alicloud.vpc.NatGateway(\"default\", {\n    vpcId: defaultNetwork.id,\n    natGatewayName: name,\n    paymentType: \"PayAsYouGo\",\n    vswitchId: defaultSwitch.id,\n    natType: \"Enhanced\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.vpc.get_enhanced_nat_available_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.0.0.0/8\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    zone_id=default.zones[0].zone_id,\n    cidr_block=\"10.10.0.0/20\",\n    vpc_id=default_network.id)\ndefault_nat_gateway = alicloud.vpc.NatGateway(\"default\",\n    vpc_id=default_network.id,\n    nat_gateway_name=name,\n    payment_type=\"PayAsYouGo\",\n    vswitch_id=default_switch.id,\n    nat_type=\"Enhanced\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId)),\n        CidrBlock = \"10.10.0.0/20\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultNatGateway = new AliCloud.Vpc.NatGateway(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        NatGatewayName = name,\n        PaymentType = \"PayAsYouGo\",\n        VswitchId = defaultSwitch.Id,\n        NatType = \"Enhanced\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := vpc.GetEnhancedNatAvailableZones(ctx, \u0026vpc.GetEnhancedNatAvailableZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].ZoneId),\n\t\t\tCidrBlock:   pulumi.String(\"10.10.0.0/20\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewNatGateway(ctx, \"default\", \u0026vpc.NatGatewayArgs{\n\t\t\tVpcId:          defaultNetwork.ID(),\n\t\t\tNatGatewayName: pulumi.String(name),\n\t\t\tPaymentType:    pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:      defaultSwitch.ID(),\n\t\t\tNatType:        pulumi.String(\"Enhanced\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.NatGateway;\nimport com.pulumi.alicloud.vpc.NatGatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .zoneId(default_.zones()[0].zoneId())\n            .cidrBlock(\"10.10.0.0/20\")\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultNatGateway = new NatGateway(\"defaultNatGateway\", NatGatewayArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .natGatewayName(name)\n            .paymentType(\"PayAsYouGo\")\n            .vswitchId(defaultSwitch.id())\n            .natType(\"Enhanced\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.0.0.0/8\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      zoneId: ${default.zones[0].zoneId}\n      cidrBlock: 10.10.0.0/20\n      vpcId: ${defaultNetwork.id}\n  defaultNatGateway:\n    type: alicloud:vpc:NatGateway\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      natGatewayName: ${name}\n      paymentType: PayAsYouGo\n      vswitchId: ${defaultSwitch.id}\n      natType: Enhanced\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vpc:getEnhancedNatAvailableZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n- transform nat from Normal to Enhanced\n\u003e **NOTE:** You must set \u003cspan pulumi-lang-nodejs=\"`natType`\" pulumi-lang-dotnet=\"`NatType`\" pulumi-lang-go=\"`natType`\" pulumi-lang-python=\"`nat_type`\" pulumi-lang-yaml=\"`natType`\" pulumi-lang-java=\"`natType`\"\u003e`nat_type`\u003c/span\u003e to `Enhanced` and set \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e.\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.0.0.0/8\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.zoneId),\n    cidrBlock: \"10.10.0.0/20\",\n    vpcId: defaultNetwork.id,\n});\nconst defaultNatGateway = new alicloud.vpc.NatGateway(\"default\", {\n    vpcId: defaultNetwork.id,\n    natGatewayName: name,\n    vswitchId: defaultSwitch.id,\n    natType: \"Enhanced\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.vpc.get_enhanced_nat_available_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.0.0.0/8\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    zone_id=default.zones[0].zone_id,\n    cidr_block=\"10.10.0.0/20\",\n    vpc_id=default_network.id)\ndefault_nat_gateway = alicloud.vpc.NatGateway(\"default\",\n    vpc_id=default_network.id,\n    nat_gateway_name=name,\n    vswitch_id=default_switch.id,\n    nat_type=\"Enhanced\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId)),\n        CidrBlock = \"10.10.0.0/20\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultNatGateway = new AliCloud.Vpc.NatGateway(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        NatGatewayName = name,\n        VswitchId = defaultSwitch.Id,\n        NatType = \"Enhanced\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := vpc.GetEnhancedNatAvailableZones(ctx, \u0026vpc.GetEnhancedNatAvailableZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].ZoneId),\n\t\t\tCidrBlock:   pulumi.String(\"10.10.0.0/20\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewNatGateway(ctx, \"default\", \u0026vpc.NatGatewayArgs{\n\t\t\tVpcId:          defaultNetwork.ID(),\n\t\t\tNatGatewayName: pulumi.String(name),\n\t\t\tVswitchId:      defaultSwitch.ID(),\n\t\t\tNatType:        pulumi.String(\"Enhanced\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.NatGateway;\nimport com.pulumi.alicloud.vpc.NatGatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .zoneId(default_.zones()[0].zoneId())\n            .cidrBlock(\"10.10.0.0/20\")\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultNatGateway = new NatGateway(\"defaultNatGateway\", NatGatewayArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .natGatewayName(name)\n            .vswitchId(defaultSwitch.id())\n            .natType(\"Enhanced\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.0.0.0/8\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      zoneId: ${default.zones[0].zoneId}\n      cidrBlock: 10.10.0.0/20\n      vpcId: ${defaultNetwork.id}\n  defaultNatGateway:\n    type: alicloud:vpc:NatGateway\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      natGatewayName: ${name}\n      vswitchId: ${defaultSwitch.id}\n      natType: Enhanced\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vpc:getEnhancedNatAvailableZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nNat gateway can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/natGateway:NatGateway example \u003cid\u003e\n```\n\n","properties":{"accessMode":{"$ref":"#/types/alicloud:vpc/NatGatewayAccessMode:NatGatewayAccessMode","description":"The access mode for reverse access to the VPC NAT gateway. See \u003cspan pulumi-lang-nodejs=\"`accessMode`\" pulumi-lang-dotnet=\"`AccessMode`\" pulumi-lang-go=\"`accessMode`\" pulumi-lang-python=\"`access_mode`\" pulumi-lang-yaml=\"`accessMode`\" pulumi-lang-java=\"`accessMode`\"\u003e`access_mode`\u003c/span\u003e below.\n"},"deletionProtection":{"type":"boolean","description":"Whether enable the deletion protection or not. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n- true: Enable deletion protection.\n- false: Disable deletion protection.\n"},"description":{"type":"string","description":"Description of the nat gateway, This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Defaults to null.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to only precheck this request. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"eipBindMode":{"type":"string","description":"The EIP binding mode of the NAT gateway. Default value: `MULTI_BINDED`. Valid values:\n- `MULTI_BINDED`: Multi EIP network card visible mode.\n- `NAT`: EIP normal mode, compatible with IPv4 gateway.\n"},"force":{"type":"boolean","description":"Specifies whether to forcefully delete the NAT gateway.\n"},"forwardTableIds":{"type":"string","description":"The nat gateway will auto create a forward item.\n"},"icmpReplyEnabled":{"type":"boolean","description":"Specifies whether to enable ICMP retrieval. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values:\n"},"instanceChargeType":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead."},"internetChargeType":{"type":"string","description":"The internet charge type. Valid values `PayByLcu`. The `PayByLcu` is only support enhanced NAT. **NOTE:** From version 1.137.0, \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e cannot be set to `PayBySpec`.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`natGatewayName`\" pulumi-lang-dotnet=\"`NatGatewayName`\" pulumi-lang-go=\"`natGatewayName`\" pulumi-lang-python=\"`nat_gateway_name`\" pulumi-lang-yaml=\"`natGatewayName`\" pulumi-lang-java=\"`natGatewayName`\"\u003e`nat_gateway_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`natGatewayName`\" pulumi-lang-dotnet=\"`NatGatewayName`\" pulumi-lang-go=\"`natGatewayName`\" pulumi-lang-python=\"`nat_gateway_name`\" pulumi-lang-yaml=\"`natGatewayName`\" pulumi-lang-java=\"`natGatewayName`\"\u003e`nat_gateway_name`\u003c/span\u003e instead."},"natGatewayName":{"type":"string","description":"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.\n"},"natType":{"type":"string","description":"The type of NAT gateway. Valid values: `Enhanced`. **NOTE:** From version 1.137.0, \u003cspan pulumi-lang-nodejs=\"`natType`\" pulumi-lang-dotnet=\"`NatType`\" pulumi-lang-go=\"`natType`\" pulumi-lang-python=\"`nat_type`\" pulumi-lang-yaml=\"`natType`\" pulumi-lang-java=\"`natType`\"\u003e`nat_type`\u003c/span\u003e cannot be set to `Normal`.\n"},"networkType":{"type":"string","description":"Indicates the type of the created NAT gateway. Valid values \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e: Internet NAT Gateway. \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e: VPC NAT Gateway.\n"},"paymentType":{"type":"string","description":"The billing method of the NAT gateway. Valid values are `PayAsYouGo`. Default to `PayAsYouGo`.\n"},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e 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`.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"privateLinkEnabled":{"type":"boolean","description":"Specifies whether to enable PrivateLink. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"snatTableIds":{"type":"string","description":"The nat gateway will auto create a snat item.\n"},"specification":{"type":"string","description":"The specification of the nat gateway. Valid values are `Small`, `Middle` and `Large`. Effective when \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is `PayBySpec` and \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e. Details refer to [Nat Gateway Specification](https://help.aliyun.com/document_detail/203500.html).\n"},"status":{"type":"string","description":"(Available since v1.121.0) The status of NAT gateway.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of NAT gateway.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n"},"vswitchId":{"type":"string","description":"The id of VSwitch.\n"}},"required":["accessMode","deletionProtection","eipBindMode","forwardTableIds","icmpReplyEnabled","instanceChargeType","internetChargeType","name","natGatewayName","natType","networkType","paymentType","snatTableIds","specification","status","vpcId"],"inputProperties":{"accessMode":{"$ref":"#/types/alicloud:vpc/NatGatewayAccessMode:NatGatewayAccessMode","description":"The access mode for reverse access to the VPC NAT gateway. See \u003cspan pulumi-lang-nodejs=\"`accessMode`\" pulumi-lang-dotnet=\"`AccessMode`\" pulumi-lang-go=\"`accessMode`\" pulumi-lang-python=\"`access_mode`\" pulumi-lang-yaml=\"`accessMode`\" pulumi-lang-java=\"`accessMode`\"\u003e`access_mode`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"deletionProtection":{"type":"boolean","description":"Whether enable the deletion protection or not. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n- true: Enable deletion protection.\n- false: Disable deletion protection.\n"},"description":{"type":"string","description":"Description of the nat gateway, This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Defaults to null.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to only precheck this request. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"eipBindMode":{"type":"string","description":"The EIP binding mode of the NAT gateway. Default value: `MULTI_BINDED`. Valid values:\n- `MULTI_BINDED`: Multi EIP network card visible mode.\n- `NAT`: EIP normal mode, compatible with IPv4 gateway.\n"},"force":{"type":"boolean","description":"Specifies whether to forcefully delete the NAT gateway.\n"},"icmpReplyEnabled":{"type":"boolean","description":"Specifies whether to enable ICMP retrieval. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values:\n"},"instanceChargeType":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.","willReplaceOnChanges":true},"internetChargeType":{"type":"string","description":"The internet charge type. Valid values `PayByLcu`. The `PayByLcu` is only support enhanced NAT. **NOTE:** From version 1.137.0, \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e cannot be set to `PayBySpec`.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`natGatewayName`\" pulumi-lang-dotnet=\"`NatGatewayName`\" pulumi-lang-go=\"`natGatewayName`\" pulumi-lang-python=\"`nat_gateway_name`\" pulumi-lang-yaml=\"`natGatewayName`\" pulumi-lang-java=\"`natGatewayName`\"\u003e`nat_gateway_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`natGatewayName`\" pulumi-lang-dotnet=\"`NatGatewayName`\" pulumi-lang-go=\"`natGatewayName`\" pulumi-lang-python=\"`nat_gateway_name`\" pulumi-lang-yaml=\"`natGatewayName`\" pulumi-lang-java=\"`natGatewayName`\"\u003e`nat_gateway_name`\u003c/span\u003e instead."},"natGatewayName":{"type":"string","description":"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.\n"},"natType":{"type":"string","description":"The type of NAT gateway. Valid values: `Enhanced`. **NOTE:** From version 1.137.0, \u003cspan pulumi-lang-nodejs=\"`natType`\" pulumi-lang-dotnet=\"`NatType`\" pulumi-lang-go=\"`natType`\" pulumi-lang-python=\"`nat_type`\" pulumi-lang-yaml=\"`natType`\" pulumi-lang-java=\"`natType`\"\u003e`nat_type`\u003c/span\u003e cannot be set to `Normal`.\n"},"networkType":{"type":"string","description":"Indicates the type of the created NAT gateway. Valid values \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e: Internet NAT Gateway. \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e: VPC NAT Gateway.\n"},"paymentType":{"type":"string","description":"The billing method of the NAT gateway. Valid values are `PayAsYouGo`. Default to `PayAsYouGo`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e 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`.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"privateLinkEnabled":{"type":"boolean","description":"Specifies whether to enable PrivateLink. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"specification":{"type":"string","description":"The specification of the nat gateway. Valid values are `Small`, `Middle` and `Large`. Effective when \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is `PayBySpec` and \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e. Details refer to [Nat Gateway Specification](https://help.aliyun.com/document_detail/203500.html).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of NAT gateway.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The id of VSwitch.\n"}},"requiredInputs":["vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering NatGateway resources.\n","properties":{"accessMode":{"$ref":"#/types/alicloud:vpc/NatGatewayAccessMode:NatGatewayAccessMode","description":"The access mode for reverse access to the VPC NAT gateway. See \u003cspan pulumi-lang-nodejs=\"`accessMode`\" pulumi-lang-dotnet=\"`AccessMode`\" pulumi-lang-go=\"`accessMode`\" pulumi-lang-python=\"`access_mode`\" pulumi-lang-yaml=\"`accessMode`\" pulumi-lang-java=\"`accessMode`\"\u003e`access_mode`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"deletionProtection":{"type":"boolean","description":"Whether enable the deletion protection or not. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n- true: Enable deletion protection.\n- false: Disable deletion protection.\n"},"description":{"type":"string","description":"Description of the nat gateway, This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Defaults to null.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to only precheck this request. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"eipBindMode":{"type":"string","description":"The EIP binding mode of the NAT gateway. Default value: `MULTI_BINDED`. Valid values:\n- `MULTI_BINDED`: Multi EIP network card visible mode.\n- `NAT`: EIP normal mode, compatible with IPv4 gateway.\n"},"force":{"type":"boolean","description":"Specifies whether to forcefully delete the NAT gateway.\n"},"forwardTableIds":{"type":"string","description":"The nat gateway will auto create a forward item.\n"},"icmpReplyEnabled":{"type":"boolean","description":"Specifies whether to enable ICMP retrieval. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values:\n"},"instanceChargeType":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e instead.","willReplaceOnChanges":true},"internetChargeType":{"type":"string","description":"The internet charge type. Valid values `PayByLcu`. The `PayByLcu` is only support enhanced NAT. **NOTE:** From version 1.137.0, \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e cannot be set to `PayBySpec`.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`natGatewayName`\" pulumi-lang-dotnet=\"`NatGatewayName`\" pulumi-lang-go=\"`natGatewayName`\" pulumi-lang-python=\"`nat_gateway_name`\" pulumi-lang-yaml=\"`natGatewayName`\" pulumi-lang-java=\"`natGatewayName`\"\u003e`nat_gateway_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`natGatewayName`\" pulumi-lang-dotnet=\"`NatGatewayName`\" pulumi-lang-go=\"`natGatewayName`\" pulumi-lang-python=\"`nat_gateway_name`\" pulumi-lang-yaml=\"`natGatewayName`\" pulumi-lang-java=\"`natGatewayName`\"\u003e`nat_gateway_name`\u003c/span\u003e instead."},"natGatewayName":{"type":"string","description":"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.\n"},"natType":{"type":"string","description":"The type of NAT gateway. Valid values: `Enhanced`. **NOTE:** From version 1.137.0, \u003cspan pulumi-lang-nodejs=\"`natType`\" pulumi-lang-dotnet=\"`NatType`\" pulumi-lang-go=\"`natType`\" pulumi-lang-python=\"`nat_type`\" pulumi-lang-yaml=\"`natType`\" pulumi-lang-java=\"`natType`\"\u003e`nat_type`\u003c/span\u003e cannot be set to `Normal`.\n"},"networkType":{"type":"string","description":"Indicates the type of the created NAT gateway. Valid values \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e: Internet NAT Gateway. \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e: VPC NAT Gateway.\n"},"paymentType":{"type":"string","description":"The billing method of the NAT gateway. Valid values are `PayAsYouGo`. Default to `PayAsYouGo`.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid when \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e 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`.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"privateLinkEnabled":{"type":"boolean","description":"Specifies whether to enable PrivateLink. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n","willReplaceOnChanges":true},"snatTableIds":{"type":"string","description":"The nat gateway will auto create a snat item.\n"},"specification":{"type":"string","description":"The specification of the nat gateway. Valid values are `Small`, `Middle` and `Large`. Effective when \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e is `PayBySpec` and \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e. Details refer to [Nat Gateway Specification](https://help.aliyun.com/document_detail/203500.html).\n"},"status":{"type":"string","description":"(Available since v1.121.0) The status of NAT gateway.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of NAT gateway.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The id of VSwitch.\n"}},"type":"object"}},"alicloud:vpc/natIp:NatIp":{"description":"Provides a VPC Nat Ip resource.\n\nFor information about VPC Nat Ip and how to use it, see [What is Nat Ip](https://www.alibabacloud.com/help/doc-detail/281976.htm).\n\n\u003e **NOTE:** Available since v1.136.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vpcId: exampleNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n    vswitchName: \"terraform-example\",\n});\nconst exampleNatGateway = new alicloud.vpc.NatGateway(\"example\", {\n    vpcId: exampleNetwork.id,\n    internetChargeType: \"PayByLcu\",\n    natGatewayName: \"terraform-example\",\n    description: \"terraform-example\",\n    natType: \"Enhanced\",\n    vswitchId: exampleSwitch.id,\n    networkType: \"intranet\",\n});\nconst exampleNatIpCidr = new alicloud.vpc.NatIpCidr(\"example\", {\n    natIpCidr: \"192.168.0.0/16\",\n    natGatewayId: exampleNatGateway.id,\n    natIpCidrDescription: \"terraform-example\",\n    natIpCidrName: \"terraform-example\",\n});\nconst exampleNatIp = new alicloud.vpc.NatIp(\"example\", {\n    natIp: \"192.168.0.37\",\n    natGatewayId: exampleNatGateway.id,\n    natIpDescription: \"example_value\",\n    natIpName: \"example_value\",\n    natIpCidr: exampleNatIpCidr.natIpCidr,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/12\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vpc_id=example_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=example.zones[0].id,\n    vswitch_name=\"terraform-example\")\nexample_nat_gateway = alicloud.vpc.NatGateway(\"example\",\n    vpc_id=example_network.id,\n    internet_charge_type=\"PayByLcu\",\n    nat_gateway_name=\"terraform-example\",\n    description=\"terraform-example\",\n    nat_type=\"Enhanced\",\n    vswitch_id=example_switch.id,\n    network_type=\"intranet\")\nexample_nat_ip_cidr = alicloud.vpc.NatIpCidr(\"example\",\n    nat_ip_cidr=\"192.168.0.0/16\",\n    nat_gateway_id=example_nat_gateway.id,\n    nat_ip_cidr_description=\"terraform-example\",\n    nat_ip_cidr_name=\"terraform-example\")\nexample_nat_ip = alicloud.vpc.NatIp(\"example\",\n    nat_ip=\"192.168.0.37\",\n    nat_gateway_id=example_nat_gateway.id,\n    nat_ip_description=\"example_value\",\n    nat_ip_name=\"example_value\",\n    nat_ip_cidr=example_nat_ip_cidr.nat_ip_cidr)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VpcId = exampleNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = \"terraform-example\",\n    });\n\n    var exampleNatGateway = new AliCloud.Vpc.NatGateway(\"example\", new()\n    {\n        VpcId = exampleNetwork.Id,\n        InternetChargeType = \"PayByLcu\",\n        NatGatewayName = \"terraform-example\",\n        Description = \"terraform-example\",\n        NatType = \"Enhanced\",\n        VswitchId = exampleSwitch.Id,\n        NetworkType = \"intranet\",\n    });\n\n    var exampleNatIpCidr = new AliCloud.Vpc.NatIpCidr(\"example\", new()\n    {\n        NatIpCidrBlock = \"192.168.0.0/16\",\n        NatGatewayId = exampleNatGateway.Id,\n        NatIpCidrDescription = \"terraform-example\",\n        NatIpCidrName = \"terraform-example\",\n    });\n\n    var exampleNatIp = new AliCloud.Vpc.NatIp(\"example\", new()\n    {\n        NatIpAddress = \"192.168.0.37\",\n        NatGatewayId = exampleNatGateway.Id,\n        NatIpDescription = \"example_value\",\n        NatIpName = \"example_value\",\n        NatIpCidr = exampleNatIpCidr.NatIpCidrBlock,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNatGateway, err := vpc.NewNatGateway(ctx, \"example\", \u0026vpc.NatGatewayArgs{\n\t\t\tVpcId:              exampleNetwork.ID(),\n\t\t\tInternetChargeType: pulumi.String(\"PayByLcu\"),\n\t\t\tNatGatewayName:     pulumi.String(\"terraform-example\"),\n\t\t\tDescription:        pulumi.String(\"terraform-example\"),\n\t\t\tNatType:            pulumi.String(\"Enhanced\"),\n\t\t\tVswitchId:          exampleSwitch.ID(),\n\t\t\tNetworkType:        pulumi.String(\"intranet\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNatIpCidr, err := vpc.NewNatIpCidr(ctx, \"example\", \u0026vpc.NatIpCidrArgs{\n\t\t\tNatIpCidr:            pulumi.String(\"192.168.0.0/16\"),\n\t\t\tNatGatewayId:         exampleNatGateway.ID(),\n\t\t\tNatIpCidrDescription: pulumi.String(\"terraform-example\"),\n\t\t\tNatIpCidrName:        pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewNatIp(ctx, \"example\", \u0026vpc.NatIpArgs{\n\t\t\tNatIp:            pulumi.String(\"192.168.0.37\"),\n\t\t\tNatGatewayId:     exampleNatGateway.ID(),\n\t\t\tNatIpDescription: pulumi.String(\"example_value\"),\n\t\t\tNatIpName:        pulumi.String(\"example_value\"),\n\t\t\tNatIpCidr:        exampleNatIpCidr.NatIpCidr,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.NatGateway;\nimport com.pulumi.alicloud.vpc.NatGatewayArgs;\nimport com.pulumi.alicloud.vpc.NatIpCidr;\nimport com.pulumi.alicloud.vpc.NatIpCidrArgs;\nimport com.pulumi.alicloud.vpc.NatIp;\nimport com.pulumi.alicloud.vpc.NatIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vpcId(exampleNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(example.zones()[0].id())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var exampleNatGateway = new NatGateway(\"exampleNatGateway\", NatGatewayArgs.builder()\n            .vpcId(exampleNetwork.id())\n            .internetChargeType(\"PayByLcu\")\n            .natGatewayName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .natType(\"Enhanced\")\n            .vswitchId(exampleSwitch.id())\n            .networkType(\"intranet\")\n            .build());\n\n        var exampleNatIpCidr = new NatIpCidr(\"exampleNatIpCidr\", NatIpCidrArgs.builder()\n            .natIpCidr(\"192.168.0.0/16\")\n            .natGatewayId(exampleNatGateway.id())\n            .natIpCidrDescription(\"terraform-example\")\n            .natIpCidrName(\"terraform-example\")\n            .build());\n\n        var exampleNatIp = new NatIp(\"exampleNatIp\", NatIpArgs.builder()\n            .natIp(\"192.168.0.37\")\n            .natGatewayId(exampleNatGateway.id())\n            .natIpDescription(\"example_value\")\n            .natIpName(\"example_value\")\n            .natIpCidr(exampleNatIpCidr.natIpCidr())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/12\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vpcId: ${exampleNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${example.zones[0].id}\n      vswitchName: terraform-example\n  exampleNatGateway:\n    type: alicloud:vpc:NatGateway\n    name: example\n    properties:\n      vpcId: ${exampleNetwork.id}\n      internetChargeType: PayByLcu\n      natGatewayName: terraform-example\n      description: terraform-example\n      natType: Enhanced\n      vswitchId: ${exampleSwitch.id}\n      networkType: intranet\n  exampleNatIpCidr:\n    type: alicloud:vpc:NatIpCidr\n    name: example\n    properties:\n      natIpCidr: 192.168.0.0/16\n      natGatewayId: ${exampleNatGateway.id}\n      natIpCidrDescription: terraform-example\n      natIpCidrName: terraform-example\n  exampleNatIp:\n    type: alicloud:vpc:NatIp\n    name: example\n    properties:\n      natIp: 192.168.0.37\n      natGatewayId: ${exampleNatGateway.id}\n      natIpDescription: example_value\n      natIpName: example_value\n      natIpCidr: ${exampleNatIpCidr.natIpCidr}\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Nat Ip can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/natIp:NatIp example \u003cnat_gateway_id\u003e:\u003cnat_ip_id\u003e\n```\n\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether to check the validity of the request without actually making the request.\n"},"natGatewayId":{"type":"string","description":"The ID of the Virtual Private Cloud (VPC) NAT gateway for which you want to create the NAT IP address.\n"},"natIp":{"type":"string","description":"The NAT IP address that you want to create. If you do not specify an IP address, the system selects a random IP address from the specified CIDR block.\n","language":{"csharp":{"name":"NatIpAddress"}}},"natIpCidr":{"type":"string","description":"NAT IP ADDRESS of the address segment.\n"},"natIpCidrId":{"type":"string","description":"The ID of the CIDR block to which the NAT IP address belongs.\n"},"natIpDescription":{"type":"string","description":"NAT IP ADDRESS description of information. Length is from \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters, must start with a letter or the Chinese at the beginning, but not at the` http://` Or `https://` at the beginning.\n"},"natIpId":{"type":"string","description":"Ihe ID of the Nat Ip.\n"},"natIpName":{"type":"string","description":"NAT IP ADDRESS the name of the root directory. Length is from \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters, must start with a letter or the Chinese at the beginning can contain numbers, half a period (.), underscore (_) and dash (-). But do not start with `http://` or `https://` at the beginning.\n"},"status":{"type":"string","description":"The status of the NAT IP address. Valid values: `Available`, `Deleting`, `Creating` and `Deleted`.\n"}},"required":["dryRun","natGatewayId","natIp","natIpId","status"],"inputProperties":{"dryRun":{"type":"boolean","description":"Specifies whether to check the validity of the request without actually making the request.\n"},"natGatewayId":{"type":"string","description":"The ID of the Virtual Private Cloud (VPC) NAT gateway for which you want to create the NAT IP address.\n","willReplaceOnChanges":true},"natIp":{"type":"string","description":"The NAT IP address that you want to create. If you do not specify an IP address, the system selects a random IP address from the specified CIDR block.\n","language":{"csharp":{"name":"NatIpAddress"}},"willReplaceOnChanges":true},"natIpCidr":{"type":"string","description":"NAT IP ADDRESS of the address segment.\n","willReplaceOnChanges":true},"natIpCidrId":{"type":"string","description":"The ID of the CIDR block to which the NAT IP address belongs.\n"},"natIpDescription":{"type":"string","description":"NAT IP ADDRESS description of information. Length is from \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters, must start with a letter or the Chinese at the beginning, but not at the` http://` Or `https://` at the beginning.\n"},"natIpName":{"type":"string","description":"NAT IP ADDRESS the name of the root directory. Length is from \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters, must start with a letter or the Chinese at the beginning can contain numbers, half a period (.), underscore (_) and dash (-). But do not start with `http://` or `https://` at the beginning.\n"}},"requiredInputs":["natGatewayId"],"stateInputs":{"description":"Input properties used for looking up and filtering NatIp resources.\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether to check the validity of the request without actually making the request.\n"},"natGatewayId":{"type":"string","description":"The ID of the Virtual Private Cloud (VPC) NAT gateway for which you want to create the NAT IP address.\n","willReplaceOnChanges":true},"natIp":{"type":"string","description":"The NAT IP address that you want to create. If you do not specify an IP address, the system selects a random IP address from the specified CIDR block.\n","language":{"csharp":{"name":"NatIpAddress"}},"willReplaceOnChanges":true},"natIpCidr":{"type":"string","description":"NAT IP ADDRESS of the address segment.\n","willReplaceOnChanges":true},"natIpCidrId":{"type":"string","description":"The ID of the CIDR block to which the NAT IP address belongs.\n"},"natIpDescription":{"type":"string","description":"NAT IP ADDRESS description of information. Length is from \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters, must start with a letter or the Chinese at the beginning, but not at the` http://` Or `https://` at the beginning.\n"},"natIpId":{"type":"string","description":"Ihe ID of the Nat Ip.\n"},"natIpName":{"type":"string","description":"NAT IP ADDRESS the name of the root directory. Length is from \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters, must start with a letter or the Chinese at the beginning can contain numbers, half a period (.), underscore (_) and dash (-). But do not start with `http://` or `https://` at the beginning.\n"},"status":{"type":"string","description":"The status of the NAT IP address. Valid values: `Available`, `Deleting`, `Creating` and `Deleted`.\n"}},"type":"object"}},"alicloud:vpc/natIpCidr:NatIpCidr":{"description":"Provides a Nat Gateway Nat Ip Cidr resource.\n\nNAT IP address segment.\n\nFor information about Nat Gateway Nat Ip Cidr and how to use it, see [What is Nat Ip Cidr](https://www.alibabacloud.com/help/doc-detail/281972.htm).\n\n\u003e **NOTE:** Available since v1.136.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: \"terraform-example\",\n});\nconst defaultNatGateway = new alicloud.vpc.NatGateway(\"default\", {\n    vpcId: defaultNetwork.id,\n    internetChargeType: \"PayByLcu\",\n    natGatewayName: \"terraform-example\",\n    description: \"terraform-example\",\n    natType: \"Enhanced\",\n    vswitchId: defaultSwitch.id,\n    networkType: \"intranet\",\n});\nconst defaultNatIpCidr = new alicloud.vpc.NatIpCidr(\"default\", {\n    natGatewayId: defaultNatGateway.id,\n    natIpCidrName: \"terraform-example\",\n    natIpCidr: \"192.168.0.0/16\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/12\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default.zones[0].id,\n    vswitch_name=\"terraform-example\")\ndefault_nat_gateway = alicloud.vpc.NatGateway(\"default\",\n    vpc_id=default_network.id,\n    internet_charge_type=\"PayByLcu\",\n    nat_gateway_name=\"terraform-example\",\n    description=\"terraform-example\",\n    nat_type=\"Enhanced\",\n    vswitch_id=default_switch.id,\n    network_type=\"intranet\")\ndefault_nat_ip_cidr = alicloud.vpc.NatIpCidr(\"default\",\n    nat_gateway_id=default_nat_gateway.id,\n    nat_ip_cidr_name=\"terraform-example\",\n    nat_ip_cidr=\"192.168.0.0/16\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var defaultNatGateway = new AliCloud.Vpc.NatGateway(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        InternetChargeType = \"PayByLcu\",\n        NatGatewayName = \"terraform-example\",\n        Description = \"terraform-example\",\n        NatType = \"Enhanced\",\n        VswitchId = defaultSwitch.Id,\n        NetworkType = \"intranet\",\n    });\n\n    var defaultNatIpCidr = new AliCloud.Vpc.NatIpCidr(\"default\", new()\n    {\n        NatGatewayId = defaultNatGateway.Id,\n        NatIpCidrName = \"terraform-example\",\n        NatIpCidrBlock = \"192.168.0.0/16\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNatGateway, err := vpc.NewNatGateway(ctx, \"default\", \u0026vpc.NatGatewayArgs{\n\t\t\tVpcId:              defaultNetwork.ID(),\n\t\t\tInternetChargeType: pulumi.String(\"PayByLcu\"),\n\t\t\tNatGatewayName:     pulumi.String(\"terraform-example\"),\n\t\t\tDescription:        pulumi.String(\"terraform-example\"),\n\t\t\tNatType:            pulumi.String(\"Enhanced\"),\n\t\t\tVswitchId:          defaultSwitch.ID(),\n\t\t\tNetworkType:        pulumi.String(\"intranet\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewNatIpCidr(ctx, \"default\", \u0026vpc.NatIpCidrArgs{\n\t\t\tNatGatewayId:  defaultNatGateway.ID(),\n\t\t\tNatIpCidrName: pulumi.String(\"terraform-example\"),\n\t\t\tNatIpCidr:     pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.NatGateway;\nimport com.pulumi.alicloud.vpc.NatGatewayArgs;\nimport com.pulumi.alicloud.vpc.NatIpCidr;\nimport com.pulumi.alicloud.vpc.NatIpCidrArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var defaultNatGateway = new NatGateway(\"defaultNatGateway\", NatGatewayArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .internetChargeType(\"PayByLcu\")\n            .natGatewayName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .natType(\"Enhanced\")\n            .vswitchId(defaultSwitch.id())\n            .networkType(\"intranet\")\n            .build());\n\n        var defaultNatIpCidr = new NatIpCidr(\"defaultNatIpCidr\", NatIpCidrArgs.builder()\n            .natGatewayId(defaultNatGateway.id())\n            .natIpCidrName(\"terraform-example\")\n            .natIpCidr(\"192.168.0.0/16\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${default.zones[0].id}\n      vswitchName: terraform-example\n  defaultNatGateway:\n    type: alicloud:vpc:NatGateway\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      internetChargeType: PayByLcu\n      natGatewayName: terraform-example\n      description: terraform-example\n      natType: Enhanced\n      vswitchId: ${defaultSwitch.id}\n      networkType: intranet\n  defaultNatIpCidr:\n    type: alicloud:vpc:NatIpCidr\n    name: default\n    properties:\n      natGatewayId: ${defaultNatGateway.id}\n      natIpCidrName: terraform-example\n      natIpCidr: 192.168.0.0/16\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nNat Gateway Nat Ip Cidr can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/natIpCidr:NatIpCidr example \u003cnat_gateway_id\u003e:\u003cnat_ip_cidr\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"(Available since v1.273.0) The time when the NAT IP CIDR block was created.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to only precheck this request. Valid values:\n"},"natGatewayId":{"type":"string","description":"The ID of the VPC NAT gateway instance to which the NAT IP address block belongs.\n"},"natIpCidr":{"type":"string","description":"The NAT IP CIDR block to create.\n\nThe newly created CIDR block must meet the following requirements:\n- It must belong to the 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16 CIDR blocks or their subnets.\n- The subnet mask length must be between 16 and 32 bits.\n- It must not overlap with the private CIDR block of the VPC to which the VPC NAT gateway belongs. If you need to translate a private IP address to another address within the VPC's private CIDR block, create a vSwitch in the corresponding VPC private CIDR block and then create a new VPC NAT gateway in that vSwitch to provide private address translation.\n- If you want to use a public CIDR block as the NAT IP CIDR block, the CIDR block must belong to the customer CIDR block of the VPC to which the VPC NAT gateway belongs. For more information about customer CIDR blocks, see [What is a customer CIDR block?](https://help.aliyun.com/document_detail/185311.html).\n","language":{"csharp":{"name":"NatIpCidrBlock"}}},"natIpCidrDescription":{"type":"string","description":"The description of the NAT IP CIDR block to modify.\nThe description must be 2 to 256 characters in length, start with a letter or Chinese character, and cannot start with `http://` or `https://`.\n"},"natIpCidrName":{"type":"string","description":"The name of the NAT IP address block.\nThe name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (_), and hyphens (-). It must start with a letter or a Chinese character, and cannot start with `http://` or `https://`.\n"},"status":{"type":"string","description":"The status of the NAT IP CIDR block to query.\n"}},"required":["createTime","natGatewayId","natIpCidr","natIpCidrName","status"],"inputProperties":{"dryRun":{"type":"boolean","description":"Specifies whether to only precheck this request. Valid values:\n"},"natGatewayId":{"type":"string","description":"The ID of the VPC NAT gateway instance to which the NAT IP address block belongs.\n","willReplaceOnChanges":true},"natIpCidr":{"type":"string","description":"The NAT IP CIDR block to create.\n\nThe newly created CIDR block must meet the following requirements:\n- It must belong to the 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16 CIDR blocks or their subnets.\n- The subnet mask length must be between 16 and 32 bits.\n- It must not overlap with the private CIDR block of the VPC to which the VPC NAT gateway belongs. If you need to translate a private IP address to another address within the VPC's private CIDR block, create a vSwitch in the corresponding VPC private CIDR block and then create a new VPC NAT gateway in that vSwitch to provide private address translation.\n- If you want to use a public CIDR block as the NAT IP CIDR block, the CIDR block must belong to the customer CIDR block of the VPC to which the VPC NAT gateway belongs. For more information about customer CIDR blocks, see [What is a customer CIDR block?](https://help.aliyun.com/document_detail/185311.html).\n","language":{"csharp":{"name":"NatIpCidrBlock"}},"willReplaceOnChanges":true},"natIpCidrDescription":{"type":"string","description":"The description of the NAT IP CIDR block to modify.\nThe description must be 2 to 256 characters in length, start with a letter or Chinese character, and cannot start with `http://` or `https://`.\n"},"natIpCidrName":{"type":"string","description":"The name of the NAT IP address block.\nThe name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (_), and hyphens (-). It must start with a letter or a Chinese character, and cannot start with `http://` or `https://`.\n"}},"requiredInputs":["natGatewayId","natIpCidr","natIpCidrName"],"stateInputs":{"description":"Input properties used for looking up and filtering NatIpCidr resources.\n","properties":{"createTime":{"type":"string","description":"(Available since v1.273.0) The time when the NAT IP CIDR block was created.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to only precheck this request. Valid values:\n"},"natGatewayId":{"type":"string","description":"The ID of the VPC NAT gateway instance to which the NAT IP address block belongs.\n","willReplaceOnChanges":true},"natIpCidr":{"type":"string","description":"The NAT IP CIDR block to create.\n\nThe newly created CIDR block must meet the following requirements:\n- It must belong to the 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16 CIDR blocks or their subnets.\n- The subnet mask length must be between 16 and 32 bits.\n- It must not overlap with the private CIDR block of the VPC to which the VPC NAT gateway belongs. If you need to translate a private IP address to another address within the VPC's private CIDR block, create a vSwitch in the corresponding VPC private CIDR block and then create a new VPC NAT gateway in that vSwitch to provide private address translation.\n- If you want to use a public CIDR block as the NAT IP CIDR block, the CIDR block must belong to the customer CIDR block of the VPC to which the VPC NAT gateway belongs. For more information about customer CIDR blocks, see [What is a customer CIDR block?](https://help.aliyun.com/document_detail/185311.html).\n","language":{"csharp":{"name":"NatIpCidrBlock"}},"willReplaceOnChanges":true},"natIpCidrDescription":{"type":"string","description":"The description of the NAT IP CIDR block to modify.\nThe description must be 2 to 256 characters in length, start with a letter or Chinese character, and cannot start with `http://` or `https://`.\n"},"natIpCidrName":{"type":"string","description":"The name of the NAT IP address block.\nThe name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (_), and hyphens (-). It must start with a letter or a Chinese character, and cannot start with `http://` or `https://`.\n"},"status":{"type":"string","description":"The status of the NAT IP CIDR block to query.\n"}},"type":"object"}},"alicloud:vpc/network:Network":{"description":"Provides a VPC VPC resource.\n\nA VPC instance creates a VPC. You can fully control your own VPC, such as selecting IP address ranges, configuring routing tables, and gateways. You can use Alibaba cloud resources such as cloud servers, apsaradb for RDS, and load balancer in your own VPC. \n\n\u003e **NOTE:** This resource will auto build a router and a route table while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.Network`\" pulumi-lang-dotnet=\"`alicloud.vpc.Network`\" pulumi-lang-go=\"`vpc.Network`\" pulumi-lang-python=\"`vpc.Network`\" pulumi-lang-yaml=\"`alicloud.vpc.Network`\" pulumi-lang-java=\"`alicloud.vpc.Network`\"\u003e`alicloud.vpc.Network`\u003c/span\u003e to build a vpc resource. \n\n\u003e **NOTE:** Available since v1.0.0.\n\n## Module Support\n\nYou can use the existing vpc module \nto create a VPC and several VSwitches one-click.\n\nFor information about VPC VPC and how to use it, see [What is VPC](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/what-is-a-vpc).\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.vpc.Network(\"default\", {\n    ipv6Isp: \"BGP\",\n    description: \"test\",\n    cidrBlock: \"10.0.0.0/8\",\n    vpcName: name,\n    enableIpv6: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.vpc.Network(\"default\",\n    ipv6_isp=\"BGP\",\n    description=\"test\",\n    cidr_block=\"10.0.0.0/8\",\n    vpc_name=name,\n    enable_ipv6=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        Ipv6Isp = \"BGP\",\n        Description = \"test\",\n        CidrBlock = \"10.0.0.0/8\",\n        VpcName = name,\n        EnableIpv6 = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tIpv6Isp:     pulumi.String(\"BGP\"),\n\t\t\tDescription: pulumi.String(\"test\"),\n\t\t\tCidrBlock:   pulumi.String(\"10.0.0.0/8\"),\n\t\t\tVpcName:     pulumi.String(name),\n\t\t\tEnableIpv6:  pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .ipv6Isp(\"BGP\")\n            .description(\"test\")\n            .cidrBlock(\"10.0.0.0/8\")\n            .vpcName(name)\n            .enableIpv6(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:vpc:Network\n    properties:\n      ipv6Isp: BGP\n      description: test\n      cidrBlock: 10.0.0.0/8\n      vpcName: ${name}\n      enableIpv6: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC VPC can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/network:Network example \u003cid\u003e\n```\n\n","properties":{"cidrBlock":{"type":"string","description":"The CIDR block of the VPC.\n\n- You can specify one of the following CIDR blocks or their subsets as the primary IPv4 CIDR block of the VPC: 192.168.0.0/16, 172.16.0.0/12, and 10.0.0.0/8. These CIDR blocks are standard private CIDR blocks as defined by Request for Comments (RFC) documents. The subnet mask must be 8 to 28 bits in length.\n- You can also use a custom CIDR block other than 100.64.0.0/10, 224.0.0.0/4, 127.0.0.0/8, 169.254.0.0/16, and their subnets as the primary IPv4 CIDR block of the VPC.\n"},"classicLinkEnabled":{"type":"boolean","description":"The status of ClassicLink function.\n"},"createTime":{"type":"string","description":"The creation time of the VPC.\n"},"description":{"type":"string","description":"The new description of the VPC.\nThe description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.\n"},"dnsHostnameStatus":{"type":"string","description":"The status of VPC DNS Hostname\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\n"},"enableIpv6":{"type":"boolean","description":"Whether to enable the IPv6 network segment. Value:\n"},"forceDelete":{"type":"boolean","description":"Force delete vpc or not.\n"},"ipv4CidrMask":{"type":"integer","description":"Allocate VPC from The IPAM address pool by entering a mask.\n\n\u003e **NOTE:**  when you specify the IPAM address pool to create a VPC, enter at least one of the CidrBlock or Ipv4CidrMask parameters.\n"},"ipv4IpamPoolId":{"type":"string","description":"The ID of the IP Address Manager (IPAM) pool that contains IPv4 addresses.\n"},"ipv6CidrBlock":{"type":"string","description":"The IPv6 CIDR block of the default VPC.\n\n\u003e **NOTE:**  When `EnableIpv6` is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this parameter is required.\n"},"ipv6CidrBlocks":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkIpv6CidrBlock:NetworkIpv6CidrBlock"},"description":"The IPv6 CIDR block information of the VPC.\n"},"ipv6Isp":{"type":"string","description":"The IPv6 address segment type of the VPC. Value:\n- `BGP` (default): Alibaba Cloud BGP IPv6.\n- `ChinaMobile`: China Mobile (single line).\n- `ChinaUnicom`: China Unicom (single line).\n- `ChinaTelecom`: China Telecom (single line).\n\n\u003e **NOTE:**  If a single-line bandwidth whitelist is enabled, this field can be set to `ChinaTelecom` (China Telecom), `ChinaUnicom` (China Unicom), or `ChinaMobile` (China Mobile).\n"},"isDefault":{"type":"boolean","description":"Specifies whether to create the default VPC in the specified region. Valid values:\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.119.0. New field 'vpc_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.119.0. New field 'vpc_name' instead."},"regionId":{"type":"string","description":"The ID of the region where the VPC is located.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which you want to move the resource.\n\n\u003e **NOTE:**   You can use resource groups to facilitate resource grouping and permission management for an Alibaba Cloud. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"routeTableId":{"type":"string","description":"The ID of the system route table.\n"},"routerId":{"type":"string","description":"The region ID of the VPC to which the route table belongs.\n"},"routerTableId":{"type":"string","description":". Field 'router_table_id' has been deprecated from provider version 1.227.1. New field 'route_table_id' instead.\n","deprecationMessage":"Field 'router_table_id' has been deprecated since provider version 1.221.0. New field 'route_table_id' instead."},"secondaryCidrBlocks":{"type":"array","items":{"type":"string"},"description":"Field 'secondary_cidr_blocks' has been deprecated from provider version 1.185.0 and it will be removed in the future version. Please use the new resource 'alicloud_vpc_ipv4_cidr_block'. \u003cspan pulumi-lang-nodejs=\"`secondaryCidrBlocks`\" pulumi-lang-dotnet=\"`SecondaryCidrBlocks`\" pulumi-lang-go=\"`secondaryCidrBlocks`\" pulumi-lang-python=\"`secondary_cidr_blocks`\" pulumi-lang-yaml=\"`secondaryCidrBlocks`\" pulumi-lang-java=\"`secondaryCidrBlocks`\"\u003e`secondary_cidr_blocks`\u003c/span\u003e attributes and \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-dotnet=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-go=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-python=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-yaml=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-java=\"`alicloud.vpc.Ipv4CidrBlock`\"\u003e`alicloud.vpc.Ipv4CidrBlock`\u003c/span\u003e resource cannot be used at the same time.\n","deprecationMessage":"Field 'secondary_cidr_blocks' has been deprecated from provider version 1.185.0. Field 'secondary_cidr_blocks' has been deprecated from provider version 1.185.0 and it will be removed in the future version. Please use the new resource 'alicloud_vpc_ipv4_cidr_block'. \u003cspan pulumi-lang-nodejs=\"`secondaryCidrBlocks`\" pulumi-lang-dotnet=\"`SecondaryCidrBlocks`\" pulumi-lang-go=\"`secondaryCidrBlocks`\" pulumi-lang-python=\"`secondary_cidr_blocks`\" pulumi-lang-yaml=\"`secondaryCidrBlocks`\" pulumi-lang-java=\"`secondaryCidrBlocks`\"\u003e`secondary_cidr_blocks`\u003c/span\u003e attributes and \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-dotnet=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-go=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-python=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-yaml=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-java=\"`alicloud.vpc.Ipv4CidrBlock`\"\u003e`alicloud.vpc.Ipv4CidrBlock`\u003c/span\u003e resource cannot be used at the same time."},"secondaryCidrMask":{"type":"integer","description":"Field 'secondary_cidr_mask' has been deprecated from provider version 1.248.0. New resource 'alicloud_vpc_ipv4_cidr_block' instead.\n","deprecationMessage":"Field 'secondary_cidr_mask' has been deprecated from provider version 1.248.0. Field 'secondary_cidr_blocks' has been deprecated from provider version 1.248.0 and it will be removed in the future version. Please use the new resource 'alicloud_vpc_ipv4_cidr_block'. \u003cspan pulumi-lang-nodejs=\"`secondaryCidrMask`\" pulumi-lang-dotnet=\"`SecondaryCidrMask`\" pulumi-lang-go=\"`secondaryCidrMask`\" pulumi-lang-python=\"`secondary_cidr_mask`\" pulumi-lang-yaml=\"`secondaryCidrMask`\" pulumi-lang-java=\"`secondaryCidrMask`\"\u003e`secondary_cidr_mask`\u003c/span\u003e attributes and \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-dotnet=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-go=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-python=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-yaml=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-java=\"`alicloud.vpc.Ipv4CidrBlock`\"\u003e`alicloud.vpc.Ipv4CidrBlock`\u003c/span\u003e resource cannot be used at the same time."},"status":{"type":"string","description":"The status of the VPC.   `Pending`: The VPC is being configured. `Available`: The VPC is available.\n"},"systemRouteTableDescription":{"type":"string","description":"The description of the route table.\nThe description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.\n"},"systemRouteTableName":{"type":"string","description":"The name of the route table.\nThe name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.\n"},"systemRouteTableRoutePropagationEnable":{"type":"boolean","description":"Whether the system route table receives propagation routes.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of Vpc.\n"},"userCidrs":{"type":"array","items":{"type":"string"},"description":"A list of user CIDRs.\n"},"vpcName":{"type":"string","description":"The new name of the VPC.\nThe name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["cidrBlock","createTime","dnsHostnameStatus","ipv6CidrBlock","ipv6CidrBlocks","name","regionId","resourceGroupId","routeTableId","routerId","routerTableId","secondaryCidrBlocks","status","systemRouteTableRoutePropagationEnable","userCidrs","vpcName"],"inputProperties":{"cidrBlock":{"type":"string","description":"The CIDR block of the VPC.\n\n- You can specify one of the following CIDR blocks or their subsets as the primary IPv4 CIDR block of the VPC: 192.168.0.0/16, 172.16.0.0/12, and 10.0.0.0/8. These CIDR blocks are standard private CIDR blocks as defined by Request for Comments (RFC) documents. The subnet mask must be 8 to 28 bits in length.\n- You can also use a custom CIDR block other than 100.64.0.0/10, 224.0.0.0/4, 127.0.0.0/8, 169.254.0.0/16, and their subnets as the primary IPv4 CIDR block of the VPC.\n"},"classicLinkEnabled":{"type":"boolean","description":"The status of ClassicLink function.\n"},"description":{"type":"string","description":"The new description of the VPC.\nThe description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.\n"},"dnsHostnameStatus":{"type":"string","description":"The status of VPC DNS Hostname\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\n"},"enableIpv6":{"type":"boolean","description":"Whether to enable the IPv6 network segment. Value:\n"},"forceDelete":{"type":"boolean","description":"Force delete vpc or not.\n"},"ipv4CidrMask":{"type":"integer","description":"Allocate VPC from The IPAM address pool by entering a mask.\n\n\u003e **NOTE:**  when you specify the IPAM address pool to create a VPC, enter at least one of the CidrBlock or Ipv4CidrMask parameters.\n"},"ipv4IpamPoolId":{"type":"string","description":"The ID of the IP Address Manager (IPAM) pool that contains IPv4 addresses.\n"},"ipv6CidrBlock":{"type":"string","description":"The IPv6 CIDR block of the default VPC.\n\n\u003e **NOTE:**  When `EnableIpv6` is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this parameter is required.\n","willReplaceOnChanges":true},"ipv6Isp":{"type":"string","description":"The IPv6 address segment type of the VPC. Value:\n- `BGP` (default): Alibaba Cloud BGP IPv6.\n- `ChinaMobile`: China Mobile (single line).\n- `ChinaUnicom`: China Unicom (single line).\n- `ChinaTelecom`: China Telecom (single line).\n\n\u003e **NOTE:**  If a single-line bandwidth whitelist is enabled, this field can be set to `ChinaTelecom` (China Telecom), `ChinaUnicom` (China Unicom), or `ChinaMobile` (China Mobile).\n"},"isDefault":{"type":"boolean","description":"Specifies whether to create the default VPC in the specified region. Valid values:\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.119.0. New field 'vpc_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.119.0. New field 'vpc_name' instead."},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which you want to move the resource.\n\n\u003e **NOTE:**   You can use resource groups to facilitate resource grouping and permission management for an Alibaba Cloud. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"secondaryCidrBlocks":{"type":"array","items":{"type":"string"},"description":"Field 'secondary_cidr_blocks' has been deprecated from provider version 1.185.0 and it will be removed in the future version. Please use the new resource 'alicloud_vpc_ipv4_cidr_block'. \u003cspan pulumi-lang-nodejs=\"`secondaryCidrBlocks`\" pulumi-lang-dotnet=\"`SecondaryCidrBlocks`\" pulumi-lang-go=\"`secondaryCidrBlocks`\" pulumi-lang-python=\"`secondary_cidr_blocks`\" pulumi-lang-yaml=\"`secondaryCidrBlocks`\" pulumi-lang-java=\"`secondaryCidrBlocks`\"\u003e`secondary_cidr_blocks`\u003c/span\u003e attributes and \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-dotnet=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-go=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-python=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-yaml=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-java=\"`alicloud.vpc.Ipv4CidrBlock`\"\u003e`alicloud.vpc.Ipv4CidrBlock`\u003c/span\u003e resource cannot be used at the same time.\n","deprecationMessage":"Field 'secondary_cidr_blocks' has been deprecated from provider version 1.185.0. Field 'secondary_cidr_blocks' has been deprecated from provider version 1.185.0 and it will be removed in the future version. Please use the new resource 'alicloud_vpc_ipv4_cidr_block'. \u003cspan pulumi-lang-nodejs=\"`secondaryCidrBlocks`\" pulumi-lang-dotnet=\"`SecondaryCidrBlocks`\" pulumi-lang-go=\"`secondaryCidrBlocks`\" pulumi-lang-python=\"`secondary_cidr_blocks`\" pulumi-lang-yaml=\"`secondaryCidrBlocks`\" pulumi-lang-java=\"`secondaryCidrBlocks`\"\u003e`secondary_cidr_blocks`\u003c/span\u003e attributes and \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-dotnet=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-go=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-python=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-yaml=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-java=\"`alicloud.vpc.Ipv4CidrBlock`\"\u003e`alicloud.vpc.Ipv4CidrBlock`\u003c/span\u003e resource cannot be used at the same time."},"secondaryCidrMask":{"type":"integer","description":"Field 'secondary_cidr_mask' has been deprecated from provider version 1.248.0. New resource 'alicloud_vpc_ipv4_cidr_block' instead.\n","deprecationMessage":"Field 'secondary_cidr_mask' has been deprecated from provider version 1.248.0. Field 'secondary_cidr_blocks' has been deprecated from provider version 1.248.0 and it will be removed in the future version. Please use the new resource 'alicloud_vpc_ipv4_cidr_block'. \u003cspan pulumi-lang-nodejs=\"`secondaryCidrMask`\" pulumi-lang-dotnet=\"`SecondaryCidrMask`\" pulumi-lang-go=\"`secondaryCidrMask`\" pulumi-lang-python=\"`secondary_cidr_mask`\" pulumi-lang-yaml=\"`secondaryCidrMask`\" pulumi-lang-java=\"`secondaryCidrMask`\"\u003e`secondary_cidr_mask`\u003c/span\u003e attributes and \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-dotnet=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-go=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-python=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-yaml=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-java=\"`alicloud.vpc.Ipv4CidrBlock`\"\u003e`alicloud.vpc.Ipv4CidrBlock`\u003c/span\u003e resource cannot be used at the same time."},"systemRouteTableDescription":{"type":"string","description":"The description of the route table.\nThe description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.\n"},"systemRouteTableName":{"type":"string","description":"The name of the route table.\nThe name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.\n"},"systemRouteTableRoutePropagationEnable":{"type":"boolean","description":"Whether the system route table receives propagation routes.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of Vpc.\n"},"userCidrs":{"type":"array","items":{"type":"string"},"description":"A list of user CIDRs.\n","willReplaceOnChanges":true},"vpcName":{"type":"string","description":"The new name of the VPC.\nThe name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Network resources.\n","properties":{"cidrBlock":{"type":"string","description":"The CIDR block of the VPC.\n\n- You can specify one of the following CIDR blocks or their subsets as the primary IPv4 CIDR block of the VPC: 192.168.0.0/16, 172.16.0.0/12, and 10.0.0.0/8. These CIDR blocks are standard private CIDR blocks as defined by Request for Comments (RFC) documents. The subnet mask must be 8 to 28 bits in length.\n- You can also use a custom CIDR block other than 100.64.0.0/10, 224.0.0.0/4, 127.0.0.0/8, 169.254.0.0/16, and their subnets as the primary IPv4 CIDR block of the VPC.\n"},"classicLinkEnabled":{"type":"boolean","description":"The status of ClassicLink function.\n"},"createTime":{"type":"string","description":"The creation time of the VPC.\n"},"description":{"type":"string","description":"The new description of the VPC.\nThe description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.\n"},"dnsHostnameStatus":{"type":"string","description":"The status of VPC DNS Hostname\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\n"},"enableIpv6":{"type":"boolean","description":"Whether to enable the IPv6 network segment. Value:\n"},"forceDelete":{"type":"boolean","description":"Force delete vpc or not.\n"},"ipv4CidrMask":{"type":"integer","description":"Allocate VPC from The IPAM address pool by entering a mask.\n\n\u003e **NOTE:**  when you specify the IPAM address pool to create a VPC, enter at least one of the CidrBlock or Ipv4CidrMask parameters.\n"},"ipv4IpamPoolId":{"type":"string","description":"The ID of the IP Address Manager (IPAM) pool that contains IPv4 addresses.\n"},"ipv6CidrBlock":{"type":"string","description":"The IPv6 CIDR block of the default VPC.\n\n\u003e **NOTE:**  When `EnableIpv6` is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, this parameter is required.\n","willReplaceOnChanges":true},"ipv6CidrBlocks":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkIpv6CidrBlock:NetworkIpv6CidrBlock"},"description":"The IPv6 CIDR block information of the VPC.\n"},"ipv6Isp":{"type":"string","description":"The IPv6 address segment type of the VPC. Value:\n- `BGP` (default): Alibaba Cloud BGP IPv6.\n- `ChinaMobile`: China Mobile (single line).\n- `ChinaUnicom`: China Unicom (single line).\n- `ChinaTelecom`: China Telecom (single line).\n\n\u003e **NOTE:**  If a single-line bandwidth whitelist is enabled, this field can be set to `ChinaTelecom` (China Telecom), `ChinaUnicom` (China Unicom), or `ChinaMobile` (China Mobile).\n"},"isDefault":{"type":"boolean","description":"Specifies whether to create the default VPC in the specified region. Valid values:\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.119.0. New field 'vpc_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.119.0. New field 'vpc_name' instead."},"regionId":{"type":"string","description":"The ID of the region where the VPC is located.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which you want to move the resource.\n\n\u003e **NOTE:**   You can use resource groups to facilitate resource grouping and permission management for an Alibaba Cloud. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"routeTableId":{"type":"string","description":"The ID of the system route table.\n"},"routerId":{"type":"string","description":"The region ID of the VPC to which the route table belongs.\n"},"routerTableId":{"type":"string","description":". Field 'router_table_id' has been deprecated from provider version 1.227.1. New field 'route_table_id' instead.\n","deprecationMessage":"Field 'router_table_id' has been deprecated since provider version 1.221.0. New field 'route_table_id' instead."},"secondaryCidrBlocks":{"type":"array","items":{"type":"string"},"description":"Field 'secondary_cidr_blocks' has been deprecated from provider version 1.185.0 and it will be removed in the future version. Please use the new resource 'alicloud_vpc_ipv4_cidr_block'. \u003cspan pulumi-lang-nodejs=\"`secondaryCidrBlocks`\" pulumi-lang-dotnet=\"`SecondaryCidrBlocks`\" pulumi-lang-go=\"`secondaryCidrBlocks`\" pulumi-lang-python=\"`secondary_cidr_blocks`\" pulumi-lang-yaml=\"`secondaryCidrBlocks`\" pulumi-lang-java=\"`secondaryCidrBlocks`\"\u003e`secondary_cidr_blocks`\u003c/span\u003e attributes and \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-dotnet=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-go=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-python=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-yaml=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-java=\"`alicloud.vpc.Ipv4CidrBlock`\"\u003e`alicloud.vpc.Ipv4CidrBlock`\u003c/span\u003e resource cannot be used at the same time.\n","deprecationMessage":"Field 'secondary_cidr_blocks' has been deprecated from provider version 1.185.0. Field 'secondary_cidr_blocks' has been deprecated from provider version 1.185.0 and it will be removed in the future version. Please use the new resource 'alicloud_vpc_ipv4_cidr_block'. \u003cspan pulumi-lang-nodejs=\"`secondaryCidrBlocks`\" pulumi-lang-dotnet=\"`SecondaryCidrBlocks`\" pulumi-lang-go=\"`secondaryCidrBlocks`\" pulumi-lang-python=\"`secondary_cidr_blocks`\" pulumi-lang-yaml=\"`secondaryCidrBlocks`\" pulumi-lang-java=\"`secondaryCidrBlocks`\"\u003e`secondary_cidr_blocks`\u003c/span\u003e attributes and \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-dotnet=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-go=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-python=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-yaml=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-java=\"`alicloud.vpc.Ipv4CidrBlock`\"\u003e`alicloud.vpc.Ipv4CidrBlock`\u003c/span\u003e resource cannot be used at the same time."},"secondaryCidrMask":{"type":"integer","description":"Field 'secondary_cidr_mask' has been deprecated from provider version 1.248.0. New resource 'alicloud_vpc_ipv4_cidr_block' instead.\n","deprecationMessage":"Field 'secondary_cidr_mask' has been deprecated from provider version 1.248.0. Field 'secondary_cidr_blocks' has been deprecated from provider version 1.248.0 and it will be removed in the future version. Please use the new resource 'alicloud_vpc_ipv4_cidr_block'. \u003cspan pulumi-lang-nodejs=\"`secondaryCidrMask`\" pulumi-lang-dotnet=\"`SecondaryCidrMask`\" pulumi-lang-go=\"`secondaryCidrMask`\" pulumi-lang-python=\"`secondary_cidr_mask`\" pulumi-lang-yaml=\"`secondaryCidrMask`\" pulumi-lang-java=\"`secondaryCidrMask`\"\u003e`secondary_cidr_mask`\u003c/span\u003e attributes and \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-dotnet=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-go=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-python=\"`vpc.Ipv4CidrBlock`\" pulumi-lang-yaml=\"`alicloud.vpc.Ipv4CidrBlock`\" pulumi-lang-java=\"`alicloud.vpc.Ipv4CidrBlock`\"\u003e`alicloud.vpc.Ipv4CidrBlock`\u003c/span\u003e resource cannot be used at the same time."},"status":{"type":"string","description":"The status of the VPC.   `Pending`: The VPC is being configured. `Available`: The VPC is available.\n"},"systemRouteTableDescription":{"type":"string","description":"The description of the route table.\nThe description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.\n"},"systemRouteTableName":{"type":"string","description":"The name of the route table.\nThe name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.\n"},"systemRouteTableRoutePropagationEnable":{"type":"boolean","description":"Whether the system route table receives propagation routes.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of Vpc.\n"},"userCidrs":{"type":"array","items":{"type":"string"},"description":"A list of user CIDRs.\n","willReplaceOnChanges":true},"vpcName":{"type":"string","description":"The new name of the VPC.\nThe name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"type":"object"}},"alicloud:vpc/networkAcl:NetworkAcl":{"description":"Provides a VPC Network Acl resource.\n\nNetwork Access Control List (ACL) is a Network Access Control function in VPC. You can customize the network ACL rules and bind the network ACL to the switch to control the traffic of ECS instances in the switch.\n\nFor information about VPC Network Acl and how to use it, see [What is Network Acl](https://www.alibabacloud.com/help/en/ens/latest/createnetworkacl).\n\n\u003e **NOTE:** Available since v1.43.0.\n\n\u003e **WARNING:** Do not mix the use of the \u003cspan pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\"\u003e`resources`\u003c/span\u003e field in this resource with the separate \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.VpcNetworkAclAttachment`\" pulumi-lang-dotnet=\"`alicloud.vpc.VpcNetworkAclAttachment`\" pulumi-lang-go=\"`vpc.VpcNetworkAclAttachment`\" pulumi-lang-python=\"`vpc.VpcNetworkAclAttachment`\" pulumi-lang-yaml=\"`alicloud.vpc.VpcNetworkAclAttachment`\" pulumi-lang-java=\"`alicloud.vpc.VpcNetworkAclAttachment`\"\u003e`alicloud.vpc.VpcNetworkAclAttachment`\u003c/span\u003e resource to bind VSW (Virtual Switch) to the same ACL. Using both methods simultaneously can cause conflicts and result in repeated apply operations that toggle between binding and unbinding VSWs. Choose one method and stick with it to avoid these issues.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst example = new alicloud.vpc.Network(\"example\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: example.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst exampleNetworkAcl = new alicloud.vpc.NetworkAcl(\"example\", {\n    vpcId: example.id,\n    networkAclName: name,\n    description: name,\n    ingressAclEntries: [{\n        description: `${name}-ingress`,\n        networkAclEntryName: `${name}-ingress`,\n        sourceCidrIp: \"10.0.0.0/24\",\n        policy: \"accept\",\n        port: \"20/80\",\n        protocol: \"tcp\",\n    }],\n    egressAclEntries: [{\n        description: `${name}-egress`,\n        networkAclEntryName: `${name}-egress`,\n        destinationCidrIp: \"10.0.0.0/24\",\n        policy: \"accept\",\n        port: \"20/80\",\n        protocol: \"tcp\",\n    }],\n    resources: [{\n        resourceId: exampleSwitch.id,\n        resourceType: \"VSwitch\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample = alicloud.vpc.Network(\"example\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=example.id,\n    zone_id=default.zones[0].id)\nexample_network_acl = alicloud.vpc.NetworkAcl(\"example\",\n    vpc_id=example.id,\n    network_acl_name=name,\n    description=name,\n    ingress_acl_entries=[{\n        \"description\": f\"{name}-ingress\",\n        \"network_acl_entry_name\": f\"{name}-ingress\",\n        \"source_cidr_ip\": \"10.0.0.0/24\",\n        \"policy\": \"accept\",\n        \"port\": \"20/80\",\n        \"protocol\": \"tcp\",\n    }],\n    egress_acl_entries=[{\n        \"description\": f\"{name}-egress\",\n        \"network_acl_entry_name\": f\"{name}-egress\",\n        \"destination_cidr_ip\": \"10.0.0.0/24\",\n        \"policy\": \"accept\",\n        \"port\": \"20/80\",\n        \"protocol\": \"tcp\",\n    }],\n    resources=[{\n        \"resource_id\": example_switch.id,\n        \"resource_type\": \"VSwitch\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var example = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = example.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var exampleNetworkAcl = new AliCloud.Vpc.NetworkAcl(\"example\", new()\n    {\n        VpcId = example.Id,\n        NetworkAclName = name,\n        Description = name,\n        IngressAclEntries = new[]\n        {\n            new AliCloud.Vpc.Inputs.NetworkAclIngressAclEntryArgs\n            {\n                Description = $\"{name}-ingress\",\n                NetworkAclEntryName = $\"{name}-ingress\",\n                SourceCidrIp = \"10.0.0.0/24\",\n                Policy = \"accept\",\n                Port = \"20/80\",\n                Protocol = \"tcp\",\n            },\n        },\n        EgressAclEntries = new[]\n        {\n            new AliCloud.Vpc.Inputs.NetworkAclEgressAclEntryArgs\n            {\n                Description = $\"{name}-egress\",\n                NetworkAclEntryName = $\"{name}-egress\",\n                DestinationCidrIp = \"10.0.0.0/24\",\n                Policy = \"accept\",\n                Port = \"20/80\",\n                Protocol = \"tcp\",\n            },\n        },\n        Resources = new[]\n        {\n            new AliCloud.Vpc.Inputs.NetworkAclResourceArgs\n            {\n                ResourceId = exampleSwitch.Id,\n                ResourceType = \"VSwitch\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       example.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewNetworkAcl(ctx, \"example\", \u0026vpc.NetworkAclArgs{\n\t\t\tVpcId:          example.ID(),\n\t\t\tNetworkAclName: pulumi.String(name),\n\t\t\tDescription:    pulumi.String(name),\n\t\t\tIngressAclEntries: vpc.NetworkAclIngressAclEntryArray{\n\t\t\t\t\u0026vpc.NetworkAclIngressAclEntryArgs{\n\t\t\t\t\tDescription:         pulumi.Sprintf(\"%v-ingress\", name),\n\t\t\t\t\tNetworkAclEntryName: pulumi.Sprintf(\"%v-ingress\", name),\n\t\t\t\t\tSourceCidrIp:        pulumi.String(\"10.0.0.0/24\"),\n\t\t\t\t\tPolicy:              pulumi.String(\"accept\"),\n\t\t\t\t\tPort:                pulumi.String(\"20/80\"),\n\t\t\t\t\tProtocol:            pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEgressAclEntries: vpc.NetworkAclEgressAclEntryArray{\n\t\t\t\t\u0026vpc.NetworkAclEgressAclEntryArgs{\n\t\t\t\t\tDescription:         pulumi.Sprintf(\"%v-egress\", name),\n\t\t\t\t\tNetworkAclEntryName: pulumi.Sprintf(\"%v-egress\", name),\n\t\t\t\t\tDestinationCidrIp:   pulumi.String(\"10.0.0.0/24\"),\n\t\t\t\t\tPolicy:              pulumi.String(\"accept\"),\n\t\t\t\t\tPort:                pulumi.String(\"20/80\"),\n\t\t\t\t\tProtocol:            pulumi.String(\"tcp\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tResources: vpc.NetworkAclResourceArray{\n\t\t\t\t\u0026vpc.NetworkAclResourceArgs{\n\t\t\t\t\tResourceId:   exampleSwitch.ID(),\n\t\t\t\t\tResourceType: pulumi.String(\"VSwitch\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.NetworkAcl;\nimport com.pulumi.alicloud.vpc.NetworkAclArgs;\nimport com.pulumi.alicloud.vpc.inputs.NetworkAclIngressAclEntryArgs;\nimport com.pulumi.alicloud.vpc.inputs.NetworkAclEgressAclEntryArgs;\nimport com.pulumi.alicloud.vpc.inputs.NetworkAclResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var example = new Network(\"example\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(example.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var exampleNetworkAcl = new NetworkAcl(\"exampleNetworkAcl\", NetworkAclArgs.builder()\n            .vpcId(example.id())\n            .networkAclName(name)\n            .description(name)\n            .ingressAclEntries(NetworkAclIngressAclEntryArgs.builder()\n                .description(String.format(\"%s-ingress\", name))\n                .networkAclEntryName(String.format(\"%s-ingress\", name))\n                .sourceCidrIp(\"10.0.0.0/24\")\n                .policy(\"accept\")\n                .port(\"20/80\")\n                .protocol(\"tcp\")\n                .build())\n            .egressAclEntries(NetworkAclEgressAclEntryArgs.builder()\n                .description(String.format(\"%s-egress\", name))\n                .networkAclEntryName(String.format(\"%s-egress\", name))\n                .destinationCidrIp(\"10.0.0.0/24\")\n                .policy(\"accept\")\n                .port(\"20/80\")\n                .protocol(\"tcp\")\n                .build())\n            .resources(NetworkAclResourceArgs.builder()\n                .resourceId(exampleSwitch.id())\n                .resourceType(\"VSwitch\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  example:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${example.id}\n      zoneId: ${default.zones[0].id}\n  exampleNetworkAcl:\n    type: alicloud:vpc:NetworkAcl\n    name: example\n    properties:\n      vpcId: ${example.id}\n      networkAclName: ${name}\n      description: ${name}\n      ingressAclEntries:\n        - description: ${name}-ingress\n          networkAclEntryName: ${name}-ingress\n          sourceCidrIp: 10.0.0.0/24\n          policy: accept\n          port: 20/80\n          protocol: tcp\n      egressAclEntries:\n        - description: ${name}-egress\n          networkAclEntryName: ${name}-egress\n          destinationCidrIp: 10.0.0.0/24\n          policy: accept\n          port: 20/80\n          protocol: tcp\n      resources:\n        - resourceId: ${exampleSwitch.id}\n          resourceType: VSwitch\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Network Acl can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/networkAcl:NetworkAcl example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"description":{"type":"string","description":"The description of the network ACL. The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.\n"},"egressAclEntries":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclEgressAclEntry:NetworkAclEgressAclEntry"},"description":"Out direction rule information. See \u003cspan pulumi-lang-nodejs=\"`egressAclEntries`\" pulumi-lang-dotnet=\"`EgressAclEntries`\" pulumi-lang-go=\"`egressAclEntries`\" pulumi-lang-python=\"`egress_acl_entries`\" pulumi-lang-yaml=\"`egressAclEntries`\" pulumi-lang-java=\"`egressAclEntries`\"\u003e`egress_acl_entries`\u003c/span\u003e below.\n"},"ingressAclEntries":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclIngressAclEntry:NetworkAclIngressAclEntry"},"description":"Inward direction rule information. See \u003cspan pulumi-lang-nodejs=\"`ingressAclEntries`\" pulumi-lang-dotnet=\"`IngressAclEntries`\" pulumi-lang-go=\"`ingressAclEntries`\" pulumi-lang-python=\"`ingress_acl_entries`\" pulumi-lang-yaml=\"`ingressAclEntries`\" pulumi-lang-java=\"`ingressAclEntries`\"\u003e`ingress_acl_entries`\u003c/span\u003e below.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.122.0. New field 'network_acl_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.122.0. New field 'network_acl_name' instead."},"networkAclName":{"type":"string","description":"The name of the network ACL.\nThe name must be 1 to 128 characters in length and cannot start with http:// or https.\n"},"resources":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclResource:NetworkAclResource"},"description":"The associated resource. See \u003cspan pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\"\u003e`resources`\u003c/span\u003e below.\n"},"sourceNetworkAclId":{"type":"string","description":"SOURCE NetworkAcl specified by CopyNetworkAclEntries\n"},"status":{"type":"string","description":"The state of the network ACL.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of this resource.\n"},"vpcId":{"type":"string","description":"The ID of the associated VPC.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["createTime","egressAclEntries","ingressAclEntries","name","networkAclName","resources","status","vpcId"],"inputProperties":{"description":{"type":"string","description":"The description of the network ACL. The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.\n"},"egressAclEntries":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclEgressAclEntry:NetworkAclEgressAclEntry"},"description":"Out direction rule information. See \u003cspan pulumi-lang-nodejs=\"`egressAclEntries`\" pulumi-lang-dotnet=\"`EgressAclEntries`\" pulumi-lang-go=\"`egressAclEntries`\" pulumi-lang-python=\"`egress_acl_entries`\" pulumi-lang-yaml=\"`egressAclEntries`\" pulumi-lang-java=\"`egressAclEntries`\"\u003e`egress_acl_entries`\u003c/span\u003e below.\n"},"ingressAclEntries":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclIngressAclEntry:NetworkAclIngressAclEntry"},"description":"Inward direction rule information. See \u003cspan pulumi-lang-nodejs=\"`ingressAclEntries`\" pulumi-lang-dotnet=\"`IngressAclEntries`\" pulumi-lang-go=\"`ingressAclEntries`\" pulumi-lang-python=\"`ingress_acl_entries`\" pulumi-lang-yaml=\"`ingressAclEntries`\" pulumi-lang-java=\"`ingressAclEntries`\"\u003e`ingress_acl_entries`\u003c/span\u003e below.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.122.0. New field 'network_acl_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.122.0. New field 'network_acl_name' instead."},"networkAclName":{"type":"string","description":"The name of the network ACL.\nThe name must be 1 to 128 characters in length and cannot start with http:// or https.\n"},"resources":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclResource:NetworkAclResource"},"description":"The associated resource. See \u003cspan pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\"\u003e`resources`\u003c/span\u003e below.\n"},"sourceNetworkAclId":{"type":"string","description":"SOURCE NetworkAcl specified by CopyNetworkAclEntries\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of this resource.\n"},"vpcId":{"type":"string","description":"The ID of the associated VPC.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"requiredInputs":["vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkAcl resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource.\n"},"description":{"type":"string","description":"The description of the network ACL. The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.\n"},"egressAclEntries":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclEgressAclEntry:NetworkAclEgressAclEntry"},"description":"Out direction rule information. See \u003cspan pulumi-lang-nodejs=\"`egressAclEntries`\" pulumi-lang-dotnet=\"`EgressAclEntries`\" pulumi-lang-go=\"`egressAclEntries`\" pulumi-lang-python=\"`egress_acl_entries`\" pulumi-lang-yaml=\"`egressAclEntries`\" pulumi-lang-java=\"`egressAclEntries`\"\u003e`egress_acl_entries`\u003c/span\u003e below.\n"},"ingressAclEntries":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclIngressAclEntry:NetworkAclIngressAclEntry"},"description":"Inward direction rule information. See \u003cspan pulumi-lang-nodejs=\"`ingressAclEntries`\" pulumi-lang-dotnet=\"`IngressAclEntries`\" pulumi-lang-go=\"`ingressAclEntries`\" pulumi-lang-python=\"`ingress_acl_entries`\" pulumi-lang-yaml=\"`ingressAclEntries`\" pulumi-lang-java=\"`ingressAclEntries`\"\u003e`ingress_acl_entries`\u003c/span\u003e below.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.122.0. New field 'network_acl_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.122.0. New field 'network_acl_name' instead."},"networkAclName":{"type":"string","description":"The name of the network ACL.\nThe name must be 1 to 128 characters in length and cannot start with http:// or https.\n"},"resources":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclResource:NetworkAclResource"},"description":"The associated resource. See \u003cspan pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\"\u003e`resources`\u003c/span\u003e below.\n"},"sourceNetworkAclId":{"type":"string","description":"SOURCE NetworkAcl specified by CopyNetworkAclEntries\n"},"status":{"type":"string","description":"The state of the network ACL.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of this resource.\n"},"vpcId":{"type":"string","description":"The ID of the associated VPC.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/networkAclAttachment:NetworkAclAttachment":{"description":"Provides a network acl attachment resource to associate network acls to vswitches.\n\n\u003e **DEPRECATED:**  This resource  has been deprecated from version `1.124.0`. Replace by \u003cspan pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\"\u003e`resources`\u003c/span\u003e with the resource alicloud_network_acl. \nNote that because this resource conflicts with the \u003cspan pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\"\u003e`resources`\u003c/span\u003e attribute of \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.NetworkAcl`\" pulumi-lang-dotnet=\"`alicloud.vpc.NetworkAcl`\" pulumi-lang-go=\"`vpc.NetworkAcl`\" pulumi-lang-python=\"`vpc.NetworkAcl`\" pulumi-lang-yaml=\"`alicloud.vpc.NetworkAcl`\" pulumi-lang-java=\"`alicloud.vpc.NetworkAcl`\"\u003e`alicloud.vpc.NetworkAcl`\u003c/span\u003e, this resource can no be used.\n\n\u003e **WARNING:** Do not mix the use of this deprecated resource with the \u003cspan pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\"\u003e`resources`\u003c/span\u003e field in the \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.NetworkAcl`\" pulumi-lang-dotnet=\"`alicloud.vpc.NetworkAcl`\" pulumi-lang-go=\"`vpc.NetworkAcl`\" pulumi-lang-python=\"`vpc.NetworkAcl`\" pulumi-lang-yaml=\"`alicloud.vpc.NetworkAcl`\" pulumi-lang-java=\"`alicloud.vpc.NetworkAcl`\"\u003e`alicloud.vpc.NetworkAcl`\u003c/span\u003e resource to bind VSW (Virtual Switch) to the same ACL. Using both methods simultaneously can cause conflicts and result in repeated apply operations that toggle between binding and unbinding VSWs. This resource is deprecated and should be replaced with the \u003cspan pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\"\u003e`resources`\u003c/span\u003e field in \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.NetworkAcl`\" pulumi-lang-dotnet=\"`alicloud.vpc.NetworkAcl`\" pulumi-lang-go=\"`vpc.NetworkAcl`\" pulumi-lang-python=\"`vpc.NetworkAcl`\" pulumi-lang-yaml=\"`alicloud.vpc.NetworkAcl`\" pulumi-lang-java=\"`alicloud.vpc.NetworkAcl`\"\u003e`alicloud.vpc.NetworkAcl`\u003c/span\u003e.\n\n\u003e **NOTE:** Available since v1.44.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"NatGatewayConfigSpec\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultNetworkAcl = new alicloud.vpc.NetworkAcl(\"default\", {\n    vpcId: defaultNetwork.id,\n    networkAclName: name,\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultNetworkAclAttachment = new alicloud.vpc.NetworkAclAttachment(\"default\", {\n    networkAclId: defaultNetworkAcl.id,\n    resources: [{\n        resourceId: defaultSwitch.id,\n        resourceType: \"VSwitch\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"NatGatewayConfigSpec\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault_network_acl = alicloud.vpc.NetworkAcl(\"default\",\n    vpc_id=default_network.id,\n    network_acl_name=name)\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_network_acl_attachment = alicloud.vpc.NetworkAclAttachment(\"default\",\n    network_acl_id=default_network_acl.id,\n    resources=[{\n        \"resource_id\": default_switch.id,\n        \"resource_type\": \"VSwitch\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"NatGatewayConfigSpec\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultNetworkAcl = new AliCloud.Vpc.NetworkAcl(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        NetworkAclName = name,\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultNetworkAclAttachment = new AliCloud.Vpc.NetworkAclAttachment(\"default\", new()\n    {\n        NetworkAclId = defaultNetworkAcl.Id,\n        Resources = new[]\n        {\n            new AliCloud.Vpc.Inputs.NetworkAclAttachmentResourceArgs\n            {\n                ResourceId = defaultSwitch.Id,\n                ResourceType = \"VSwitch\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"NatGatewayConfigSpec\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetworkAcl, err := vpc.NewNetworkAcl(ctx, \"default\", \u0026vpc.NetworkAclArgs{\n\t\t\tVpcId:          defaultNetwork.ID(),\n\t\t\tNetworkAclName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewNetworkAclAttachment(ctx, \"default\", \u0026vpc.NetworkAclAttachmentArgs{\n\t\t\tNetworkAclId: defaultNetworkAcl.ID(),\n\t\t\tResources: vpc.NetworkAclAttachmentResourceArray{\n\t\t\t\t\u0026vpc.NetworkAclAttachmentResourceArgs{\n\t\t\t\t\tResourceId:   defaultSwitch.ID(),\n\t\t\t\t\tResourceType: pulumi.String(\"VSwitch\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.NetworkAcl;\nimport com.pulumi.alicloud.vpc.NetworkAclArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.NetworkAclAttachment;\nimport com.pulumi.alicloud.vpc.NetworkAclAttachmentArgs;\nimport com.pulumi.alicloud.vpc.inputs.NetworkAclAttachmentResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"NatGatewayConfigSpec\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var defaultNetworkAcl = new NetworkAcl(\"defaultNetworkAcl\", NetworkAclArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .networkAclName(name)\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultNetworkAclAttachment = new NetworkAclAttachment(\"defaultNetworkAclAttachment\", NetworkAclAttachmentArgs.builder()\n            .networkAclId(defaultNetworkAcl.id())\n            .resources(NetworkAclAttachmentResourceArgs.builder()\n                .resourceId(defaultSwitch.id())\n                .resourceType(\"VSwitch\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: NatGatewayConfigSpec\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  defaultNetworkAcl:\n    type: alicloud:vpc:NetworkAcl\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      networkAclName: ${name}\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultNetworkAclAttachment:\n    type: alicloud:vpc:NetworkAclAttachment\n    name: default\n    properties:\n      networkAclId: ${defaultNetworkAcl.id}\n      resources:\n        - resourceId: ${defaultSwitch.id}\n          resourceType: VSwitch\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"networkAclId":{"type":"string","description":"The id of the network acl, the field can't be changed.\n"},"resources":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclAttachmentResource:NetworkAclAttachmentResource"},"description":"List of the resources associated with the network acl. The details see Block Resources.\n"}},"required":["networkAclId","resources"],"inputProperties":{"networkAclId":{"type":"string","description":"The id of the network acl, the field can't be changed.\n","willReplaceOnChanges":true},"resources":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclAttachmentResource:NetworkAclAttachmentResource"},"description":"List of the resources associated with the network acl. The details see Block Resources.\n"}},"requiredInputs":["networkAclId","resources"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkAclAttachment resources.\n","properties":{"networkAclId":{"type":"string","description":"The id of the network acl, the field can't be changed.\n","willReplaceOnChanges":true},"resources":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclAttachmentResource:NetworkAclAttachmentResource"},"description":"List of the resources associated with the network acl. The details see Block Resources.\n"}},"type":"object"}},"alicloud:vpc/networkAclEntries:NetworkAclEntries":{"description":"Provides a network acl entries resource to create ingress and egress entries.\n\n\u003e **NOTE:** Available in 1.45.0+.\n\n\u003e **NOTE:** It doesn't support concurrency and the order of the ingress and egress entries determines the priority.\n\n\u003e **DEPRECATED:**  This resource  has been deprecated from version `1.122.0`. Replace by \u003cspan pulumi-lang-nodejs=\"`ingressAclEntries`\" pulumi-lang-dotnet=\"`IngressAclEntries`\" pulumi-lang-go=\"`ingressAclEntries`\" pulumi-lang-python=\"`ingress_acl_entries`\" pulumi-lang-yaml=\"`ingressAclEntries`\" pulumi-lang-java=\"`ingressAclEntries`\"\u003e`ingress_acl_entries`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`egressAclEntries`\" pulumi-lang-dotnet=\"`EgressAclEntries`\" pulumi-lang-go=\"`egressAclEntries`\" pulumi-lang-python=\"`egress_acl_entries`\" pulumi-lang-yaml=\"`egressAclEntries`\" pulumi-lang-java=\"`egressAclEntries`\"\u003e`egress_acl_entries`\u003c/span\u003e with the resource alicloud_network_acl.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"NetworkAclEntries\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    name: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultNetworkAcl = new alicloud.vpc.NetworkAcl(\"default\", {\n    vpcId: defaultNetwork.id,\n    name: name,\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    name: name,\n});\nconst defaultNetworkAclAttachment = new alicloud.vpc.NetworkAclAttachment(\"default\", {\n    networkAclId: defaultNetworkAcl.id,\n    resources: [{\n        resourceId: defaultSwitch.id,\n        resourceType: \"VSwitch\",\n    }],\n});\nconst defaultNetworkAclEntries = new alicloud.vpc.NetworkAclEntries(\"default\", {\n    networkAclId: defaultNetworkAcl.id,\n    ingresses: [{\n        protocol: \"all\",\n        port: \"-1/-1\",\n        sourceCidrIp: \"0.0.0.0/32\",\n        name: name,\n        entryType: \"custom\",\n        policy: \"accept\",\n        description: name,\n    }],\n    egresses: [{\n        protocol: \"all\",\n        port: \"-1/-1\",\n        destinationCidrIp: \"0.0.0.0/32\",\n        name: name,\n        entryType: \"custom\",\n        policy: \"accept\",\n        description: name,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"NetworkAclEntries\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault_network_acl = alicloud.vpc.NetworkAcl(\"default\",\n    vpc_id=default_network.id,\n    name=name)\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default.zones[0].id,\n    name=name)\ndefault_network_acl_attachment = alicloud.vpc.NetworkAclAttachment(\"default\",\n    network_acl_id=default_network_acl.id,\n    resources=[{\n        \"resource_id\": default_switch.id,\n        \"resource_type\": \"VSwitch\",\n    }])\ndefault_network_acl_entries = alicloud.vpc.NetworkAclEntries(\"default\",\n    network_acl_id=default_network_acl.id,\n    ingresses=[{\n        \"protocol\": \"all\",\n        \"port\": \"-1/-1\",\n        \"source_cidr_ip\": \"0.0.0.0/32\",\n        \"name\": name,\n        \"entry_type\": \"custom\",\n        \"policy\": \"accept\",\n        \"description\": name,\n    }],\n    egresses=[{\n        \"protocol\": \"all\",\n        \"port\": \"-1/-1\",\n        \"destination_cidr_ip\": \"0.0.0.0/32\",\n        \"name\": name,\n        \"entry_type\": \"custom\",\n        \"policy\": \"accept\",\n        \"description\": name,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"NetworkAclEntries\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        Name = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultNetworkAcl = new AliCloud.Vpc.NetworkAcl(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        Name = name,\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        Name = name,\n    });\n\n    var defaultNetworkAclAttachment = new AliCloud.Vpc.NetworkAclAttachment(\"default\", new()\n    {\n        NetworkAclId = defaultNetworkAcl.Id,\n        Resources = new[]\n        {\n            new AliCloud.Vpc.Inputs.NetworkAclAttachmentResourceArgs\n            {\n                ResourceId = defaultSwitch.Id,\n                ResourceType = \"VSwitch\",\n            },\n        },\n    });\n\n    var defaultNetworkAclEntries = new AliCloud.Vpc.NetworkAclEntries(\"default\", new()\n    {\n        NetworkAclId = defaultNetworkAcl.Id,\n        Ingresses = new[]\n        {\n            new AliCloud.Vpc.Inputs.NetworkAclEntriesIngressArgs\n            {\n                Protocol = \"all\",\n                Port = \"-1/-1\",\n                SourceCidrIp = \"0.0.0.0/32\",\n                Name = name,\n                EntryType = \"custom\",\n                Policy = \"accept\",\n                Description = name,\n            },\n        },\n        Egresses = new[]\n        {\n            new AliCloud.Vpc.Inputs.NetworkAclEntriesEgressArgs\n            {\n                Protocol = \"all\",\n                Port = \"-1/-1\",\n                DestinationCidrIp = \"0.0.0.0/32\",\n                Name = name,\n                EntryType = \"custom\",\n                Policy = \"accept\",\n                Description = name,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"NetworkAclEntries\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tName:      pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetworkAcl, err := vpc.NewNetworkAcl(ctx, \"default\", \u0026vpc.NetworkAclArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t\tName:  pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultNetwork.ID(),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t\tName:      pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewNetworkAclAttachment(ctx, \"default\", \u0026vpc.NetworkAclAttachmentArgs{\n\t\t\tNetworkAclId: defaultNetworkAcl.ID(),\n\t\t\tResources: vpc.NetworkAclAttachmentResourceArray{\n\t\t\t\t\u0026vpc.NetworkAclAttachmentResourceArgs{\n\t\t\t\t\tResourceId:   defaultSwitch.ID(),\n\t\t\t\t\tResourceType: pulumi.String(\"VSwitch\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewNetworkAclEntries(ctx, \"default\", \u0026vpc.NetworkAclEntriesArgs{\n\t\t\tNetworkAclId: defaultNetworkAcl.ID(),\n\t\t\tIngresses: vpc.NetworkAclEntriesIngressArray{\n\t\t\t\t\u0026vpc.NetworkAclEntriesIngressArgs{\n\t\t\t\t\tProtocol:     pulumi.String(\"all\"),\n\t\t\t\t\tPort:         pulumi.String(\"-1/-1\"),\n\t\t\t\t\tSourceCidrIp: pulumi.String(\"0.0.0.0/32\"),\n\t\t\t\t\tName:         pulumi.String(name),\n\t\t\t\t\tEntryType:    pulumi.String(\"custom\"),\n\t\t\t\t\tPolicy:       pulumi.String(\"accept\"),\n\t\t\t\t\tDescription:  pulumi.String(name),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEgresses: vpc.NetworkAclEntriesEgressArray{\n\t\t\t\t\u0026vpc.NetworkAclEntriesEgressArgs{\n\t\t\t\t\tProtocol:          pulumi.String(\"all\"),\n\t\t\t\t\tPort:              pulumi.String(\"-1/-1\"),\n\t\t\t\t\tDestinationCidrIp: pulumi.String(\"0.0.0.0/32\"),\n\t\t\t\t\tName:              pulumi.String(name),\n\t\t\t\t\tEntryType:         pulumi.String(\"custom\"),\n\t\t\t\t\tPolicy:            pulumi.String(\"accept\"),\n\t\t\t\t\tDescription:       pulumi.String(name),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.NetworkAcl;\nimport com.pulumi.alicloud.vpc.NetworkAclArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.NetworkAclAttachment;\nimport com.pulumi.alicloud.vpc.NetworkAclAttachmentArgs;\nimport com.pulumi.alicloud.vpc.inputs.NetworkAclAttachmentResourceArgs;\nimport com.pulumi.alicloud.vpc.NetworkAclEntries;\nimport com.pulumi.alicloud.vpc.NetworkAclEntriesArgs;\nimport com.pulumi.alicloud.vpc.inputs.NetworkAclEntriesIngressArgs;\nimport com.pulumi.alicloud.vpc.inputs.NetworkAclEntriesEgressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"NetworkAclEntries\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .name(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var defaultNetworkAcl = new NetworkAcl(\"defaultNetworkAcl\", NetworkAclArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .name(name)\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(default_.zones()[0].id())\n            .name(name)\n            .build());\n\n        var defaultNetworkAclAttachment = new NetworkAclAttachment(\"defaultNetworkAclAttachment\", NetworkAclAttachmentArgs.builder()\n            .networkAclId(defaultNetworkAcl.id())\n            .resources(NetworkAclAttachmentResourceArgs.builder()\n                .resourceId(defaultSwitch.id())\n                .resourceType(\"VSwitch\")\n                .build())\n            .build());\n\n        var defaultNetworkAclEntries = new NetworkAclEntries(\"defaultNetworkAclEntries\", NetworkAclEntriesArgs.builder()\n            .networkAclId(defaultNetworkAcl.id())\n            .ingresses(NetworkAclEntriesIngressArgs.builder()\n                .protocol(\"all\")\n                .port(\"-1/-1\")\n                .sourceCidrIp(\"0.0.0.0/32\")\n                .name(name)\n                .entryType(\"custom\")\n                .policy(\"accept\")\n                .description(name)\n                .build())\n            .egresses(NetworkAclEntriesEgressArgs.builder()\n                .protocol(\"all\")\n                .port(\"-1/-1\")\n                .destinationCidrIp(\"0.0.0.0/32\")\n                .name(name)\n                .entryType(\"custom\")\n                .policy(\"accept\")\n                .description(name)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: NetworkAclEntries\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      name: ${name}\n      cidrBlock: 172.16.0.0/12\n  defaultNetworkAcl:\n    type: alicloud:vpc:NetworkAcl\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      name: ${name}\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${default.zones[0].id}\n      name: ${name}\n  defaultNetworkAclAttachment:\n    type: alicloud:vpc:NetworkAclAttachment\n    name: default\n    properties:\n      networkAclId: ${defaultNetworkAcl.id}\n      resources:\n        - resourceId: ${defaultSwitch.id}\n          resourceType: VSwitch\n  defaultNetworkAclEntries:\n    type: alicloud:vpc:NetworkAclEntries\n    name: default\n    properties:\n      networkAclId: ${defaultNetworkAcl.id}\n      ingresses:\n        - protocol: all\n          port: -1/-1\n          sourceCidrIp: 0.0.0.0/32\n          name: ${name}\n          entryType: custom\n          policy: accept\n          description: ${name}\n      egresses:\n        - protocol: all\n          port: -1/-1\n          destinationCidrIp: 0.0.0.0/32\n          name: ${name}\n          entryType: custom\n          policy: accept\n          description: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n","properties":{"egresses":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclEntriesEgress:NetworkAclEntriesEgress"},"description":"List of the egress entries of the network acl. The order of the egress entries determines the priority. See \u003cspan pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\"\u003e`egress`\u003c/span\u003e below.\n"},"ingresses":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclEntriesIngress:NetworkAclEntriesIngress"},"description":"List of the ingress entries of the network acl. The order of the ingress entries determines the priority. See \u003cspan pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\"\u003e`ingress`\u003c/span\u003e below.\n"},"networkAclId":{"type":"string","description":"The id of the network acl, the field can't be changed.\n"}},"required":["networkAclId"],"inputProperties":{"egresses":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclEntriesEgress:NetworkAclEntriesEgress"},"description":"List of the egress entries of the network acl. The order of the egress entries determines the priority. See \u003cspan pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\"\u003e`egress`\u003c/span\u003e below.\n"},"ingresses":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclEntriesIngress:NetworkAclEntriesIngress"},"description":"List of the ingress entries of the network acl. The order of the ingress entries determines the priority. See \u003cspan pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\"\u003e`ingress`\u003c/span\u003e below.\n"},"networkAclId":{"type":"string","description":"The id of the network acl, the field can't be changed.\n","willReplaceOnChanges":true}},"requiredInputs":["networkAclId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkAclEntries resources.\n","properties":{"egresses":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclEntriesEgress:NetworkAclEntriesEgress"},"description":"List of the egress entries of the network acl. The order of the egress entries determines the priority. See \u003cspan pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\"\u003e`egress`\u003c/span\u003e below.\n"},"ingresses":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/NetworkAclEntriesIngress:NetworkAclEntriesIngress"},"description":"List of the ingress entries of the network acl. The order of the ingress entries determines the priority. See \u003cspan pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\"\u003e`ingress`\u003c/span\u003e below.\n"},"networkAclId":{"type":"string","description":"The id of the network acl, the field can't be changed.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/networkInterface:NetworkInterface":{"description":"\u003e **DEPRECATED:** This resource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.ecs.EcsNetworkInterface \" pulumi-lang-dotnet=\" alicloud.ecs.EcsNetworkInterface \" pulumi-lang-go=\" ecs.EcsNetworkInterface \" pulumi-lang-python=\" ecs.EcsNetworkInterface \" pulumi-lang-yaml=\" alicloud.ecs.EcsNetworkInterface \" pulumi-lang-java=\" alicloud.ecs.EcsNetworkInterface \"\u003e alicloud.ecs.EcsNetworkInterface \u003c/span\u003efrom version 1.123.1.\n\nProvides an ECS Elastic Network Interface resource.\n\nFor information about Elastic Network Interface and how to use it, see [Elastic Network Interface](https://www.alibabacloud.com/help/doc-detail/58496.html).\n\n\u003e **NOTE** Only one of\u003cspan pulumi-lang-nodejs=\" privateIps \" pulumi-lang-dotnet=\" PrivateIps \" pulumi-lang-go=\" privateIps \" pulumi-lang-python=\" private_ips \" pulumi-lang-yaml=\" privateIps \" pulumi-lang-java=\" privateIps \"\u003e private_ips \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" privateIpsCount \" pulumi-lang-dotnet=\" PrivateIpsCount \" pulumi-lang-go=\" privateIpsCount \" pulumi-lang-python=\" private_ips_count \" pulumi-lang-yaml=\" privateIpsCount \" pulumi-lang-java=\" privateIpsCount \"\u003e private_ips_count \u003c/span\u003ecan be specified when assign private IPs. \n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"networkInterfaceName\";\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/24\",\n});\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    name: name,\n    cidrBlock: \"192.168.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vpcId: vpc.id,\n});\nconst group = new alicloud.ecs.SecurityGroup(\"group\", {\n    name: name,\n    vpcId: vpc.id,\n});\nconst defaultNetworkInterface = new alicloud.vpc.NetworkInterface(\"default\", {\n    networkInterfaceName: name,\n    vswitchId: vswitch.id,\n    securityGroupIds: [group.id],\n    privateIp: \"192.168.0.2\",\n    privateIpsCount: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"networkInterfaceName\"\nvpc = alicloud.vpc.Network(\"vpc\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/24\")\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    name=name,\n    cidr_block=\"192.168.0.0/24\",\n    zone_id=default.zones[0].id,\n    vpc_id=vpc.id)\ngroup = alicloud.ecs.SecurityGroup(\"group\",\n    name=name,\n    vpc_id=vpc.id)\ndefault_network_interface = alicloud.vpc.NetworkInterface(\"default\",\n    network_interface_name=name,\n    vswitch_id=vswitch.id,\n    security_group_ids=[group.id],\n    private_ip=\"192.168.0.2\",\n    private_ips_count=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"networkInterfaceName\";\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/24\",\n    });\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        Name = name,\n        CidrBlock = \"192.168.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VpcId = vpc.Id,\n    });\n\n    var @group = new AliCloud.Ecs.SecurityGroup(\"group\", new()\n    {\n        Name = name,\n        VpcId = vpc.Id,\n    });\n\n    var defaultNetworkInterface = new AliCloud.Vpc.NetworkInterface(\"default\", new()\n    {\n        NetworkInterfaceName = name,\n        VswitchId = vswitch.Id,\n        SecurityGroupIds = new[]\n        {\n            @group.Id,\n        },\n        PrivateIp = \"192.168.0.2\",\n        PrivateIpsCount = 3,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"networkInterfaceName\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\n\t\t\tName:      pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/24\"),\n\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t\tVpcId:     vpc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup, err := ecs.NewSecurityGroup(ctx, \"group\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: vpc.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewNetworkInterface(ctx, \"default\", \u0026vpc.NetworkInterfaceArgs{\n\t\t\tNetworkInterfaceName: pulumi.String(name),\n\t\t\tVswitchId:            vswitch.ID(),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tgroup.ID(),\n\t\t\t},\n\t\t\tPrivateIp:       pulumi.String(\"192.168.0.2\"),\n\t\t\tPrivateIpsCount: pulumi.Int(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.vpc.NetworkInterface;\nimport com.pulumi.alicloud.vpc.NetworkInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"networkInterfaceName\");\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/24\")\n            .build());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .name(name)\n            .cidrBlock(\"192.168.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vpcId(vpc.id())\n            .build());\n\n        var group = new SecurityGroup(\"group\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(vpc.id())\n            .build());\n\n        var defaultNetworkInterface = new NetworkInterface(\"defaultNetworkInterface\", NetworkInterfaceArgs.builder()\n            .networkInterfaceName(name)\n            .vswitchId(vswitch.id())\n            .securityGroupIds(group.id())\n            .privateIp(\"192.168.0.2\")\n            .privateIpsCount(3)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: networkInterfaceName\nresources:\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/24\n  vswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      name: ${name}\n      cidrBlock: 192.168.0.0/24\n      zoneId: ${default.zones[0].id}\n      vpcId: ${vpc.id}\n  group:\n    type: alicloud:ecs:SecurityGroup\n    properties:\n      name: ${name}\n      vpcId: ${vpc.id}\n  defaultNetworkInterface:\n    type: alicloud:vpc:NetworkInterface\n    name: default\n    properties:\n      networkInterfaceName: ${name}\n      vswitchId: ${vswitch.id}\n      securityGroupIds:\n        - ${group.id}\n      privateIp: 192.168.0.2\n      privateIpsCount: 3\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nENI can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/networkInterface:NetworkInterface eni eni-abc1234567890000\n```\n\n","properties":{"deleteOnRelease":{"type":"boolean"},"description":{"type":"string","description":"Description of the ENI. This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.\n"},"instanceType":{"type":"string"},"ipv4PrefixCount":{"type":"integer"},"ipv4Prefixes":{"type":"array","items":{"type":"string"}},"ipv6AddressCount":{"type":"integer"},"ipv6Addresses":{"type":"array","items":{"type":"string"}},"mac":{"type":"string","description":"(Available in 1.54.0+) The MAC address of an ENI.\n"},"name":{"type":"string","description":"Name of the ENI. This name 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://. Default value is null.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'network_interface_name' instead"},"networkInterfaceName":{"type":"string"},"networkInterfaceTrafficMode":{"type":"string"},"primaryIpAddress":{"type":"string"},"privateIp":{"type":"string","description":"The primary private IP of the ENI.\n","deprecationMessage":"Field 'private_ip' has been deprecated from provider version 1.123.1. New field 'primary_ip_address' instead"},"privateIpAddresses":{"type":"array","items":{"type":"string"}},"privateIps":{"type":"array","items":{"type":"string"},"description":"List of secondary private IPs to assign to the ENI. Don't use both\u003cspan pulumi-lang-nodejs=\" privateIps \" pulumi-lang-dotnet=\" PrivateIps \" pulumi-lang-go=\" privateIps \" pulumi-lang-python=\" private_ips \" pulumi-lang-yaml=\" privateIps \" pulumi-lang-java=\" privateIps \"\u003e private_ips \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" privateIpsCount \" pulumi-lang-dotnet=\" PrivateIpsCount \" pulumi-lang-go=\" privateIpsCount \" pulumi-lang-python=\" private_ips_count \" pulumi-lang-yaml=\" privateIpsCount \" pulumi-lang-java=\" privateIpsCount \"\u003e private_ips_count \u003c/span\u003ein the same ENI resource block.\n","deprecationMessage":"Field 'private_ips' has been deprecated from provider version 1.123.1. New field 'private_ip_addresses' instead"},"privateIpsCount":{"type":"integer","description":"Number of secondary private IPs to assign to the ENI. Don't use both\u003cspan pulumi-lang-nodejs=\" privateIps \" pulumi-lang-dotnet=\" PrivateIps \" pulumi-lang-go=\" privateIps \" pulumi-lang-python=\" private_ips \" pulumi-lang-yaml=\" privateIps \" pulumi-lang-java=\" privateIps \"\u003e private_ips \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" privateIpsCount \" pulumi-lang-dotnet=\" PrivateIpsCount \" pulumi-lang-go=\" privateIpsCount \" pulumi-lang-python=\" private_ips_count \" pulumi-lang-yaml=\" privateIpsCount \" pulumi-lang-java=\" privateIpsCount \"\u003e private_ips_count \u003c/span\u003ein the same ENI resource block.\n","deprecationMessage":"Field 'private_ips_count' has been deprecated from provider version 1.123.1. New field 'secondary_private_ip_address_count' instead"},"queueNumber":{"type":"integer"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the network interface belongs.\n"},"secondaryPrivateIpAddressCount":{"type":"integer"},"securityGroupIds":{"type":"array","items":{"type":"string"}},"securityGroups":{"type":"array","items":{"type":"string"},"description":"A list of security group ids to associate with.\n","deprecationMessage":"Field 'security_groups' has been deprecated from provider version 1.123.1. New field 'security_group_ids' instead"},"sourceDestCheck":{"type":"boolean"},"status":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"The VSwitch to create the ENI in.\n"}},"required":["deleteOnRelease","instanceType","ipv4PrefixCount","ipv4Prefixes","ipv6AddressCount","ipv6Addresses","mac","name","networkInterfaceName","networkInterfaceTrafficMode","primaryIpAddress","privateIp","privateIpAddresses","privateIps","privateIpsCount","queueNumber","secondaryPrivateIpAddressCount","securityGroupIds","securityGroups","status","vswitchId"],"inputProperties":{"deleteOnRelease":{"type":"boolean"},"description":{"type":"string","description":"Description of the ENI. This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.\n"},"instanceType":{"type":"string","willReplaceOnChanges":true},"ipv4PrefixCount":{"type":"integer"},"ipv4Prefixes":{"type":"array","items":{"type":"string"}},"ipv6AddressCount":{"type":"integer"},"ipv6Addresses":{"type":"array","items":{"type":"string"}},"name":{"type":"string","description":"Name of the ENI. This name 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://. Default value is null.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'network_interface_name' instead"},"networkInterfaceName":{"type":"string"},"networkInterfaceTrafficMode":{"type":"string","willReplaceOnChanges":true},"primaryIpAddress":{"type":"string","willReplaceOnChanges":true},"privateIp":{"type":"string","description":"The primary private IP of the ENI.\n","deprecationMessage":"Field 'private_ip' has been deprecated from provider version 1.123.1. New field 'primary_ip_address' instead","willReplaceOnChanges":true},"privateIpAddresses":{"type":"array","items":{"type":"string"}},"privateIps":{"type":"array","items":{"type":"string"},"description":"List of secondary private IPs to assign to the ENI. Don't use both\u003cspan pulumi-lang-nodejs=\" privateIps \" pulumi-lang-dotnet=\" PrivateIps \" pulumi-lang-go=\" privateIps \" pulumi-lang-python=\" private_ips \" pulumi-lang-yaml=\" privateIps \" pulumi-lang-java=\" privateIps \"\u003e private_ips \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" privateIpsCount \" pulumi-lang-dotnet=\" PrivateIpsCount \" pulumi-lang-go=\" privateIpsCount \" pulumi-lang-python=\" private_ips_count \" pulumi-lang-yaml=\" privateIpsCount \" pulumi-lang-java=\" privateIpsCount \"\u003e private_ips_count \u003c/span\u003ein the same ENI resource block.\n","deprecationMessage":"Field 'private_ips' has been deprecated from provider version 1.123.1. New field 'private_ip_addresses' instead"},"privateIpsCount":{"type":"integer","description":"Number of secondary private IPs to assign to the ENI. Don't use both\u003cspan pulumi-lang-nodejs=\" privateIps \" pulumi-lang-dotnet=\" PrivateIps \" pulumi-lang-go=\" privateIps \" pulumi-lang-python=\" private_ips \" pulumi-lang-yaml=\" privateIps \" pulumi-lang-java=\" privateIps \"\u003e private_ips \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" privateIpsCount \" pulumi-lang-dotnet=\" PrivateIpsCount \" pulumi-lang-go=\" privateIpsCount \" pulumi-lang-python=\" private_ips_count \" pulumi-lang-yaml=\" privateIpsCount \" pulumi-lang-java=\" privateIpsCount \"\u003e private_ips_count \u003c/span\u003ein the same ENI resource block.\n","deprecationMessage":"Field 'private_ips_count' has been deprecated from provider version 1.123.1. New field 'secondary_private_ip_address_count' instead"},"queueNumber":{"type":"integer"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the network interface belongs.\n","willReplaceOnChanges":true},"secondaryPrivateIpAddressCount":{"type":"integer"},"securityGroupIds":{"type":"array","items":{"type":"string"}},"securityGroups":{"type":"array","items":{"type":"string"},"description":"A list of security group ids to associate with.\n","deprecationMessage":"Field 'security_groups' has been deprecated from provider version 1.123.1. New field 'security_group_ids' instead"},"sourceDestCheck":{"type":"boolean"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"The VSwitch to create the ENI in.\n","willReplaceOnChanges":true}},"requiredInputs":["vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkInterface resources.\n","properties":{"deleteOnRelease":{"type":"boolean"},"description":{"type":"string","description":"Description of the ENI. This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.\n"},"instanceType":{"type":"string","willReplaceOnChanges":true},"ipv4PrefixCount":{"type":"integer"},"ipv4Prefixes":{"type":"array","items":{"type":"string"}},"ipv6AddressCount":{"type":"integer"},"ipv6Addresses":{"type":"array","items":{"type":"string"}},"mac":{"type":"string","description":"(Available in 1.54.0+) The MAC address of an ENI.\n"},"name":{"type":"string","description":"Name of the ENI. This name 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://. Default value is null.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'network_interface_name' instead"},"networkInterfaceName":{"type":"string"},"networkInterfaceTrafficMode":{"type":"string","willReplaceOnChanges":true},"primaryIpAddress":{"type":"string","willReplaceOnChanges":true},"privateIp":{"type":"string","description":"The primary private IP of the ENI.\n","deprecationMessage":"Field 'private_ip' has been deprecated from provider version 1.123.1. New field 'primary_ip_address' instead","willReplaceOnChanges":true},"privateIpAddresses":{"type":"array","items":{"type":"string"}},"privateIps":{"type":"array","items":{"type":"string"},"description":"List of secondary private IPs to assign to the ENI. Don't use both\u003cspan pulumi-lang-nodejs=\" privateIps \" pulumi-lang-dotnet=\" PrivateIps \" pulumi-lang-go=\" privateIps \" pulumi-lang-python=\" private_ips \" pulumi-lang-yaml=\" privateIps \" pulumi-lang-java=\" privateIps \"\u003e private_ips \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" privateIpsCount \" pulumi-lang-dotnet=\" PrivateIpsCount \" pulumi-lang-go=\" privateIpsCount \" pulumi-lang-python=\" private_ips_count \" pulumi-lang-yaml=\" privateIpsCount \" pulumi-lang-java=\" privateIpsCount \"\u003e private_ips_count \u003c/span\u003ein the same ENI resource block.\n","deprecationMessage":"Field 'private_ips' has been deprecated from provider version 1.123.1. New field 'private_ip_addresses' instead"},"privateIpsCount":{"type":"integer","description":"Number of secondary private IPs to assign to the ENI. Don't use both\u003cspan pulumi-lang-nodejs=\" privateIps \" pulumi-lang-dotnet=\" PrivateIps \" pulumi-lang-go=\" privateIps \" pulumi-lang-python=\" private_ips \" pulumi-lang-yaml=\" privateIps \" pulumi-lang-java=\" privateIps \"\u003e private_ips \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" privateIpsCount \" pulumi-lang-dotnet=\" PrivateIpsCount \" pulumi-lang-go=\" privateIpsCount \" pulumi-lang-python=\" private_ips_count \" pulumi-lang-yaml=\" privateIpsCount \" pulumi-lang-java=\" privateIpsCount \"\u003e private_ips_count \u003c/span\u003ein the same ENI resource block.\n","deprecationMessage":"Field 'private_ips_count' has been deprecated from provider version 1.123.1. New field 'secondary_private_ip_address_count' instead"},"queueNumber":{"type":"integer"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the network interface belongs.\n","willReplaceOnChanges":true},"secondaryPrivateIpAddressCount":{"type":"integer"},"securityGroupIds":{"type":"array","items":{"type":"string"}},"securityGroups":{"type":"array","items":{"type":"string"},"description":"A list of security group ids to associate with.\n","deprecationMessage":"Field 'security_groups' has been deprecated from provider version 1.123.1. New field 'security_group_ids' instead"},"sourceDestCheck":{"type":"boolean"},"status":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"The VSwitch to create the ENI in.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/networkInterfaceAttachment:NetworkInterfaceAttachment":{"description":"\u003e **DEPRECATED:** This resource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.ecs.EcsNetworkInterfaceAttachment \" pulumi-lang-dotnet=\" alicloud.ecs.EcsNetworkInterfaceAttachment \" pulumi-lang-go=\" ecs.EcsNetworkInterfaceAttachment \" pulumi-lang-python=\" ecs.EcsNetworkInterfaceAttachment \" pulumi-lang-yaml=\" alicloud.ecs.EcsNetworkInterfaceAttachment \" pulumi-lang-java=\" alicloud.ecs.EcsNetworkInterfaceAttachment \"\u003e alicloud.ecs.EcsNetworkInterfaceAttachment \u003c/span\u003efrom version 1.123.1.\n\nProvides an Alicloud ECS Elastic Network Interface Attachment as a resource to attach ENI to or detach ENI from ECS Instances.\n\nFor information about Elastic Network Interface and how to use it, see [Elastic Network Interface](https://www.alibabacloud.com/help/doc-detail/58496.html).\n\n## Import\n\nNetwork Interfaces Attachment resource can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/networkInterfaceAttachment:NetworkInterfaceAttachment eni eni-abc123456789000:i-abc123456789000\n```\n\n","properties":{"instanceId":{"type":"string","description":"The instance ID to attach.\n"},"networkCardIndex":{"type":"integer"},"networkInterfaceId":{"type":"string","description":"The ENI ID to attach.\n"},"trunkNetworkInstanceId":{"type":"string"},"waitForNetworkConfigurationReady":{"type":"boolean"}},"required":["instanceId","networkInterfaceId"],"inputProperties":{"instanceId":{"type":"string","description":"The instance ID to attach.\n","willReplaceOnChanges":true},"networkCardIndex":{"type":"integer","willReplaceOnChanges":true},"networkInterfaceId":{"type":"string","description":"The ENI ID to attach.\n","willReplaceOnChanges":true},"trunkNetworkInstanceId":{"type":"string","willReplaceOnChanges":true},"waitForNetworkConfigurationReady":{"type":"boolean"}},"requiredInputs":["instanceId","networkInterfaceId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkInterfaceAttachment resources.\n","properties":{"instanceId":{"type":"string","description":"The instance ID to attach.\n","willReplaceOnChanges":true},"networkCardIndex":{"type":"integer","willReplaceOnChanges":true},"networkInterfaceId":{"type":"string","description":"The ENI ID to attach.\n","willReplaceOnChanges":true},"trunkNetworkInstanceId":{"type":"string","willReplaceOnChanges":true},"waitForNetworkConfigurationReady":{"type":"boolean"}},"type":"object"}},"alicloud:vpc/peerConnection:PeerConnection":{"description":"Provides a Vpc Peer Peer Connection resource.\n\nVpc peer connection.\n\nFor information about Vpc Peer Peer Connection and how to use it, see [What is Peer Connection](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/createvpcpeer).\n\n\u003e **NOTE:** Available since v1.186.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getAccount({});\nconst config = new pulumi.Config();\nconst acceptingRegion = config.get(\"acceptingRegion\") || \"cn-beijing\";\nconst localVpc = new alicloud.vpc.Network(\"local_vpc\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst acceptingVpc = new alicloud.vpc.Network(\"accepting_vpc\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultPeerConnection = new alicloud.vpc.PeerConnection(\"default\", {\n    peerConnectionName: \"terraform-example\",\n    vpcId: localVpc.id,\n    acceptingAliUid: _default.then(_default =\u003e _default.id),\n    acceptingRegionId: acceptingRegion,\n    acceptingVpcId: acceptingVpc.id,\n    description: \"terraform-example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_account()\nconfig = pulumi.Config()\naccepting_region = config.get(\"acceptingRegion\")\nif accepting_region is None:\n    accepting_region = \"cn-beijing\"\nlocal_vpc = alicloud.vpc.Network(\"local_vpc\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\naccepting_vpc = alicloud.vpc.Network(\"accepting_vpc\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\ndefault_peer_connection = alicloud.vpc.PeerConnection(\"default\",\n    peer_connection_name=\"terraform-example\",\n    vpc_id=local_vpc.id,\n    accepting_ali_uid=default.id,\n    accepting_region_id=accepting_region,\n    accepting_vpc_id=accepting_vpc.id,\n    description=\"terraform-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var config = new Config();\n    var acceptingRegion = config.Get(\"acceptingRegion\") ?? \"cn-beijing\";\n    var localVpc = new AliCloud.Vpc.Network(\"local_vpc\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var acceptingVpc = new AliCloud.Vpc.Network(\"accepting_vpc\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultPeerConnection = new AliCloud.Vpc.PeerConnection(\"default\", new()\n    {\n        PeerConnectionName = \"terraform-example\",\n        VpcId = localVpc.Id,\n        AcceptingAliUid = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        AcceptingRegionId = acceptingRegion,\n        AcceptingVpcId = acceptingVpc.Id,\n        Description = \"terraform-example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfg := config.New(ctx, \"\")\n\t\tacceptingRegion := \"cn-beijing\"\n\t\tif param := cfg.Get(\"acceptingRegion\"); param != \"\" {\n\t\t\tacceptingRegion = param\n\t\t}\n\t\tlocalVpc, err := vpc.NewNetwork(ctx, \"local_vpc\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tacceptingVpc, err := vpc.NewNetwork(ctx, \"accepting_vpc\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewPeerConnection(ctx, \"default\", \u0026vpc.PeerConnectionArgs{\n\t\t\tPeerConnectionName: pulumi.String(\"terraform-example\"),\n\t\t\tVpcId:              localVpc.ID(),\n\t\t\tAcceptingAliUid:    pulumi.String(_default.Id),\n\t\t\tAcceptingRegionId:  pulumi.String(acceptingRegion),\n\t\t\tAcceptingVpcId:     acceptingVpc.ID(),\n\t\t\tDescription:        pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.PeerConnection;\nimport com.pulumi.alicloud.vpc.PeerConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        final var acceptingRegion = config.get(\"acceptingRegion\").orElse(\"cn-beijing\");\n        var localVpc = new Network(\"localVpc\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var acceptingVpc = new Network(\"acceptingVpc\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultPeerConnection = new PeerConnection(\"defaultPeerConnection\", PeerConnectionArgs.builder()\n            .peerConnectionName(\"terraform-example\")\n            .vpcId(localVpc.id())\n            .acceptingAliUid(default_.id())\n            .acceptingRegionId(acceptingRegion)\n            .acceptingVpcId(acceptingVpc.id())\n            .description(\"terraform-example\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  acceptingRegion:\n    type: string\n    default: cn-beijing\nresources:\n  localVpc:\n    type: alicloud:vpc:Network\n    name: local_vpc\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  acceptingVpc:\n    type: alicloud:vpc:Network\n    name: accepting_vpc\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  defaultPeerConnection:\n    type: alicloud:vpc:PeerConnection\n    name: default\n    properties:\n      peerConnectionName: terraform-example\n      vpcId: ${localVpc.id}\n      acceptingAliUid: ${default.id}\n      acceptingRegionId: ${acceptingRegion}\n      acceptingVpcId: ${acceptingVpc.id}\n      description: terraform-example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVpc Peer Peer Connection can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/peerConnection:PeerConnection example \u003cid\u003e\n```\n\n","properties":{"acceptingAliUid":{"type":"integer","description":"The ID of the Alibaba Cloud account to which the accepter VPC belongs.\n\n*   To create a VPC peering connection within your Alibaba Cloud account, enter the ID of your Alibaba Cloud account.\n*   To create a VPC peering connection between your Alibaba Cloud account and another Alibaba Cloud account, enter the ID of the peer Alibaba Cloud account.\n\n\u003e **NOTE:**   If the accepter is a RAM user, set `AcceptingAliUid` to the ID of the Alibaba Cloud account that created the RAM user.\n"},"acceptingRegionId":{"type":"string","description":"The region ID of the accepter VPC of the VPC peering connection that you want to create.\n\n- To create an intra-region VPC peering connection, enter a region ID that is the same as that of the requester VPC.\n- To create an inter-region VPC peering connection, enter a region ID that is different from that of the requester VPC.\n"},"acceptingVpcId":{"type":"string","description":"The ID of the accepter VPC.\n"},"bandwidth":{"type":"integer","description":"The bandwidth of the VPC peering connection. Unit: Mbit/s. The value must be an integer greater than 0. Before you specify this parameter, make sure that you create an inter-region VPC peering connection.\n"},"createTime":{"type":"string","description":"The creation time of the VPC peer connection. Use UTC time in the format' YYYY-MM-DDThh:mm:ssZ '.\n"},"description":{"type":"string","description":"The description of the VPC peering connection.\nThe description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"forceDelete":{"type":"boolean","description":"Specifies whether to forcefully delete the VPC peering connection. Valid values:\n"},"linkType":{"type":"string","description":"The link type of the VPC peering connection that you want to create. Valid values:\n- Platinum.\n- Gold: default value.\n\n\u003e **NOTE:**\n\n\u003e **NOTE:**  - If you need to specify this parameter, ensure that the VPC peering connection is an inter-region connection.\n"},"peerConnectionName":{"type":"string","description":"The name of the VPC peering connection.\nThe name must be 2 to 128 characters in length, and can contain digits, underscores (\\_), and hyphens (-). It must start with a letter.\n"},"regionId":{"type":"string","description":"The region ID of the resource to which you want to create and add tags.\n"},"resourceGroupId":{"type":"string","description":"The ID of the new resource group.\n\n\u003e **NOTE:**   You can use resource groups to manage resources within your Alibaba Cloud account by group. This helps you resolve issues such as resource grouping and permission management for your Alibaba Cloud account. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of VpcPeer.\n"},"vpcId":{"type":"string","description":"The ID of the requester VPC or accepter VPC of the VPC peering connection that you want to query.\n"}},"required":["acceptingRegionId","acceptingVpcId","bandwidth","createTime","description","linkType","peerConnectionName","regionId","resourceGroupId","status","vpcId"],"inputProperties":{"acceptingAliUid":{"type":"integer","description":"The ID of the Alibaba Cloud account to which the accepter VPC belongs.\n\n*   To create a VPC peering connection within your Alibaba Cloud account, enter the ID of your Alibaba Cloud account.\n*   To create a VPC peering connection between your Alibaba Cloud account and another Alibaba Cloud account, enter the ID of the peer Alibaba Cloud account.\n\n\u003e **NOTE:**   If the accepter is a RAM user, set `AcceptingAliUid` to the ID of the Alibaba Cloud account that created the RAM user.\n","willReplaceOnChanges":true},"acceptingRegionId":{"type":"string","description":"The region ID of the accepter VPC of the VPC peering connection that you want to create.\n\n- To create an intra-region VPC peering connection, enter a region ID that is the same as that of the requester VPC.\n- To create an inter-region VPC peering connection, enter a region ID that is different from that of the requester VPC.\n","willReplaceOnChanges":true},"acceptingVpcId":{"type":"string","description":"The ID of the accepter VPC.\n","willReplaceOnChanges":true},"bandwidth":{"type":"integer","description":"The bandwidth of the VPC peering connection. Unit: Mbit/s. The value must be an integer greater than 0. Before you specify this parameter, make sure that you create an inter-region VPC peering connection.\n"},"description":{"type":"string","description":"The description of the VPC peering connection.\nThe description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"forceDelete":{"type":"boolean","description":"Specifies whether to forcefully delete the VPC peering connection. Valid values:\n"},"linkType":{"type":"string","description":"The link type of the VPC peering connection that you want to create. Valid values:\n- Platinum.\n- Gold: default value.\n\n\u003e **NOTE:**\n\n\u003e **NOTE:**  - If you need to specify this parameter, ensure that the VPC peering connection is an inter-region connection.\n"},"peerConnectionName":{"type":"string","description":"The name of the VPC peering connection.\nThe name must be 2 to 128 characters in length, and can contain digits, underscores (\\_), and hyphens (-). It must start with a letter.\n"},"resourceGroupId":{"type":"string","description":"The ID of the new resource group.\n\n\u003e **NOTE:**   You can use resource groups to manage resources within your Alibaba Cloud account by group. This helps you resolve issues such as resource grouping and permission management for your Alibaba Cloud account. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of VpcPeer.\n"},"vpcId":{"type":"string","description":"The ID of the requester VPC or accepter VPC of the VPC peering connection that you want to query.\n","willReplaceOnChanges":true}},"requiredInputs":["acceptingRegionId","acceptingVpcId","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering PeerConnection resources.\n","properties":{"acceptingAliUid":{"type":"integer","description":"The ID of the Alibaba Cloud account to which the accepter VPC belongs.\n\n*   To create a VPC peering connection within your Alibaba Cloud account, enter the ID of your Alibaba Cloud account.\n*   To create a VPC peering connection between your Alibaba Cloud account and another Alibaba Cloud account, enter the ID of the peer Alibaba Cloud account.\n\n\u003e **NOTE:**   If the accepter is a RAM user, set `AcceptingAliUid` to the ID of the Alibaba Cloud account that created the RAM user.\n","willReplaceOnChanges":true},"acceptingRegionId":{"type":"string","description":"The region ID of the accepter VPC of the VPC peering connection that you want to create.\n\n- To create an intra-region VPC peering connection, enter a region ID that is the same as that of the requester VPC.\n- To create an inter-region VPC peering connection, enter a region ID that is different from that of the requester VPC.\n","willReplaceOnChanges":true},"acceptingVpcId":{"type":"string","description":"The ID of the accepter VPC.\n","willReplaceOnChanges":true},"bandwidth":{"type":"integer","description":"The bandwidth of the VPC peering connection. Unit: Mbit/s. The value must be an integer greater than 0. Before you specify this parameter, make sure that you create an inter-region VPC peering connection.\n"},"createTime":{"type":"string","description":"The creation time of the VPC peer connection. Use UTC time in the format' YYYY-MM-DDThh:mm:ssZ '.\n"},"description":{"type":"string","description":"The description of the VPC peering connection.\nThe description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"forceDelete":{"type":"boolean","description":"Specifies whether to forcefully delete the VPC peering connection. Valid values:\n"},"linkType":{"type":"string","description":"The link type of the VPC peering connection that you want to create. Valid values:\n- Platinum.\n- Gold: default value.\n\n\u003e **NOTE:**\n\n\u003e **NOTE:**  - If you need to specify this parameter, ensure that the VPC peering connection is an inter-region connection.\n"},"peerConnectionName":{"type":"string","description":"The name of the VPC peering connection.\nThe name must be 2 to 128 characters in length, and can contain digits, underscores (\\_), and hyphens (-). It must start with a letter.\n"},"regionId":{"type":"string","description":"The region ID of the resource to which you want to create and add tags.\n"},"resourceGroupId":{"type":"string","description":"The ID of the new resource group.\n\n\u003e **NOTE:**   You can use resource groups to manage resources within your Alibaba Cloud account by group. This helps you resolve issues such as resource grouping and permission management for your Alibaba Cloud account. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of VpcPeer.\n"},"vpcId":{"type":"string","description":"The ID of the requester VPC or accepter VPC of the VPC peering connection that you want to query.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/peerConnectionAccepter:PeerConnectionAccepter":{"description":"Provides a Vpc Peer Peer Connection Accepter resource.\n\nVpc peer connection receiver.\n\nFor information about Vpc Peer Peer Connection Accepter and how to use it, see [What is Peer Connection Accepter](https://www.alibabacloud.com/help/en/vpc/developer-reference/api-vpcpeer-2022-01-01-acceptvpcpeerconnection).\n\n\u003e **NOTE:** Available since v1.196.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst acceptingRegion = config.get(\"acceptingRegion\") || \"cn-beijing\";\nconst anotherUid = config.get(\"anotherUid\") || \"xxxx\";\nconst local = new alicloud.vpc.Network(\"local\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst acceptingNetwork = new alicloud.vpc.Network(\"accepting\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst accepting = alicloud.getAccount({});\nconst _default = new alicloud.vpc.PeerConnection(\"default\", {\n    peerConnectionName: name,\n    vpcId: local.id,\n    acceptingAliUid: accepting.then(accepting =\u003e accepting.id),\n    acceptingRegionId: acceptingRegion,\n    acceptingVpcId: acceptingNetwork.id,\n    description: name,\n});\nconst defaultPeerConnectionAccepter = new alicloud.vpc.PeerConnectionAccepter(\"default\", {instanceId: _default.id});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\naccepting_region = config.get(\"acceptingRegion\")\nif accepting_region is None:\n    accepting_region = \"cn-beijing\"\nanother_uid = config.get(\"anotherUid\")\nif another_uid is None:\n    another_uid = \"xxxx\"\nlocal = alicloud.vpc.Network(\"local\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\naccepting_network = alicloud.vpc.Network(\"accepting\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\naccepting = alicloud.get_account()\ndefault = alicloud.vpc.PeerConnection(\"default\",\n    peer_connection_name=name,\n    vpc_id=local.id,\n    accepting_ali_uid=accepting.id,\n    accepting_region_id=accepting_region,\n    accepting_vpc_id=accepting_network.id,\n    description=name)\ndefault_peer_connection_accepter = alicloud.vpc.PeerConnectionAccepter(\"default\", instance_id=default.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var acceptingRegion = config.Get(\"acceptingRegion\") ?? \"cn-beijing\";\n    var anotherUid = config.Get(\"anotherUid\") ?? \"xxxx\";\n    var local = new AliCloud.Vpc.Network(\"local\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var acceptingNetwork = new AliCloud.Vpc.Network(\"accepting\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var accepting = AliCloud.GetAccount.Invoke();\n\n    var @default = new AliCloud.Vpc.PeerConnection(\"default\", new()\n    {\n        PeerConnectionName = name,\n        VpcId = local.Id,\n        AcceptingAliUid = accepting.Apply(getAccountResult =\u003e getAccountResult.Id),\n        AcceptingRegionId = acceptingRegion,\n        AcceptingVpcId = acceptingNetwork.Id,\n        Description = name,\n    });\n\n    var defaultPeerConnectionAccepter = new AliCloud.Vpc.PeerConnectionAccepter(\"default\", new()\n    {\n        InstanceId = @default.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tacceptingRegion := \"cn-beijing\"\n\t\tif param := cfg.Get(\"acceptingRegion\"); param != \"\" {\n\t\t\tacceptingRegion = param\n\t\t}\n\t\tanotherUid := \"xxxx\"\n\t\tif param := cfg.Get(\"anotherUid\"); param != \"\" {\n\t\t\tanotherUid = param\n\t\t}\n\t\tlocal, err := vpc.NewNetwork(ctx, \"local\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tacceptingNetwork, err := vpc.NewNetwork(ctx, \"accepting\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taccepting, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := vpc.NewPeerConnection(ctx, \"default\", \u0026vpc.PeerConnectionArgs{\n\t\t\tPeerConnectionName: pulumi.String(name),\n\t\t\tVpcId:              local.ID(),\n\t\t\tAcceptingAliUid:    pulumi.String(accepting.Id),\n\t\t\tAcceptingRegionId:  pulumi.String(acceptingRegion),\n\t\t\tAcceptingVpcId:     acceptingNetwork.ID(),\n\t\t\tDescription:        pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewPeerConnectionAccepter(ctx, \"default\", \u0026vpc.PeerConnectionAccepterArgs{\n\t\t\tInstanceId: _default.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.vpc.PeerConnection;\nimport com.pulumi.alicloud.vpc.PeerConnectionArgs;\nimport com.pulumi.alicloud.vpc.PeerConnectionAccepter;\nimport com.pulumi.alicloud.vpc.PeerConnectionAccepterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var acceptingRegion = config.get(\"acceptingRegion\").orElse(\"cn-beijing\");\n        final var anotherUid = config.get(\"anotherUid\").orElse(\"xxxx\");\n        var local = new Network(\"local\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var acceptingNetwork = new Network(\"acceptingNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        final var accepting = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var default_ = new PeerConnection(\"default\", PeerConnectionArgs.builder()\n            .peerConnectionName(name)\n            .vpcId(local.id())\n            .acceptingAliUid(accepting.id())\n            .acceptingRegionId(acceptingRegion)\n            .acceptingVpcId(acceptingNetwork.id())\n            .description(name)\n            .build());\n\n        var defaultPeerConnectionAccepter = new PeerConnectionAccepter(\"defaultPeerConnectionAccepter\", PeerConnectionAccepterArgs.builder()\n            .instanceId(default_.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\n  acceptingRegion:\n    type: string\n    default: cn-beijing\n  anotherUid:\n    type: string\n    default: xxxx\nresources:\n  local:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  acceptingNetwork:\n    type: alicloud:vpc:Network\n    name: accepting\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  default:\n    type: alicloud:vpc:PeerConnection\n    properties:\n      peerConnectionName: ${name}\n      vpcId: ${local.id}\n      acceptingAliUid: ${accepting.id}\n      acceptingRegionId: ${acceptingRegion}\n      acceptingVpcId: ${acceptingNetwork.id}\n      description: ${name}\n  defaultPeerConnectionAccepter:\n    type: alicloud:vpc:PeerConnectionAccepter\n    name: default\n    properties:\n      instanceId: ${default.id}\nvariables:\n  accepting:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVpc Peer Peer Connection Accepter can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/peerConnectionAccepter:PeerConnectionAccepter example \u003cid\u003e\n```\n\n","properties":{"acceptingOwnerUid":{"type":"integer","description":"The ID of the Alibaba Cloud account (primary account) of the receiving end of the VPC peering connection to be created.-to-peer connection to the VPC account.-account VPC peer-to-peer connection.\n"},"acceptingRegionId":{"type":"string","description":"The region ID of the recipient of the VPC peering connection to be created.-to-peer connection in the same region, enter the same region ID as the region ID of the initiator.-region VPC peer-to-peer connection, enter a region ID that is different from the region ID of the initiator.\n"},"acceptingVpcId":{"type":"string","description":"The VPC ID of the receiving end of the VPC peer connection.\n"},"bandwidth":{"type":"integer","description":"The new bandwidth of the VPC peering connection. Unit: Mbit/s. The value must be an integer greater than 0.\n"},"createTime":{"type":"string","description":"The creation time of the VPC peer connection. Use UTC time in the format' YYYY-MM-DDThh:mm:ssZ '.\n"},"description":{"type":"string","description":"The new description of the VPC peering connection.\nThe description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"forceDelete":{"type":"boolean","description":"Specifies whether to forcefully delete the VPC peering connection. Valid values:\n"},"instanceId":{"type":"string","description":"The ID of the VPC peering connection whose name or description you want to modify.\n"},"linkType":{"type":"string","description":"Link Type\n"},"peerConnectionAccepterName":{"type":"string","description":"The new name of the VPC peering connection.\nThe name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.\n"},"regionId":{"type":"string","description":"The ID of the region where you want to query VPC peering connections.\n"},"resourceGroupId":{"type":"string","description":"The ID of the new resource group.\n\n\u003e **NOTE:**   You can use resource groups to manage resources within your Alibaba Cloud account by group. This helps you resolve issues such as resource grouping and permission management for your Alibaba Cloud account. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"status":{"type":"string","description":"The status of the resource\n"},"vpcId":{"type":"string","description":"The VPC ID of the initiator of the VPC peering connection.\n"}},"required":["acceptingOwnerUid","acceptingRegionId","acceptingVpcId","bandwidth","createTime","description","instanceId","linkType","peerConnectionAccepterName","regionId","resourceGroupId","status","vpcId"],"inputProperties":{"bandwidth":{"type":"integer","description":"The new bandwidth of the VPC peering connection. Unit: Mbit/s. The value must be an integer greater than 0.\n"},"description":{"type":"string","description":"The new description of the VPC peering connection.\nThe description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"forceDelete":{"type":"boolean","description":"Specifies whether to forcefully delete the VPC peering connection. Valid values:\n"},"instanceId":{"type":"string","description":"The ID of the VPC peering connection whose name or description you want to modify.\n","willReplaceOnChanges":true},"linkType":{"type":"string","description":"Link Type\n"},"peerConnectionAccepterName":{"type":"string","description":"The new name of the VPC peering connection.\nThe name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the new resource group.\n\n\u003e **NOTE:**   You can use resource groups to manage resources within your Alibaba Cloud account by group. This helps you resolve issues such as resource grouping and permission management for your Alibaba Cloud account. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering PeerConnectionAccepter resources.\n","properties":{"acceptingOwnerUid":{"type":"integer","description":"The ID of the Alibaba Cloud account (primary account) of the receiving end of the VPC peering connection to be created.-to-peer connection to the VPC account.-account VPC peer-to-peer connection.\n"},"acceptingRegionId":{"type":"string","description":"The region ID of the recipient of the VPC peering connection to be created.-to-peer connection in the same region, enter the same region ID as the region ID of the initiator.-region VPC peer-to-peer connection, enter a region ID that is different from the region ID of the initiator.\n"},"acceptingVpcId":{"type":"string","description":"The VPC ID of the receiving end of the VPC peer connection.\n"},"bandwidth":{"type":"integer","description":"The new bandwidth of the VPC peering connection. Unit: Mbit/s. The value must be an integer greater than 0.\n"},"createTime":{"type":"string","description":"The creation time of the VPC peer connection. Use UTC time in the format' YYYY-MM-DDThh:mm:ssZ '.\n"},"description":{"type":"string","description":"The new description of the VPC peering connection.\nThe description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to perform only a dry run, without performing the actual request. Valid values:\n"},"forceDelete":{"type":"boolean","description":"Specifies whether to forcefully delete the VPC peering connection. Valid values:\n"},"instanceId":{"type":"string","description":"The ID of the VPC peering connection whose name or description you want to modify.\n","willReplaceOnChanges":true},"linkType":{"type":"string","description":"Link Type\n"},"peerConnectionAccepterName":{"type":"string","description":"The new name of the VPC peering connection.\nThe name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.\n"},"regionId":{"type":"string","description":"The ID of the region where you want to query VPC peering connections.\n"},"resourceGroupId":{"type":"string","description":"The ID of the new resource group.\n\n\u003e **NOTE:**   You can use resource groups to manage resources within your Alibaba Cloud account by group. This helps you resolve issues such as resource grouping and permission management for your Alibaba Cloud account. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)\n"},"status":{"type":"string","description":"The status of the resource\n"},"vpcId":{"type":"string","description":"The VPC ID of the initiator of the VPC peering connection.\n"}},"type":"object"}},"alicloud:vpc/prefixList:PrefixList":{"description":"Provides a Vpc Prefix List resource. This resource is used to create a prefix list.\n\nFor information about Vpc Prefix List and how to use it, see [What is Prefix List](https://www.alibabacloud.com/help/zh/virtual-private-cloud/latest/creatvpcprefixlist).\n\n\u003e **NOTE:** Available since v1.182.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-testacc-example\";\nconst defaultRg = new alicloud.resourcemanager.ResourceGroup(\"defaultRg\", {\n    displayName: \"tf-testacc-chenyi\",\n    resourceGroupName: name,\n});\nconst changeRg = new alicloud.resourcemanager.ResourceGroup(\"changeRg\", {\n    displayName: \"tf-testacc-chenyi-change\",\n    resourceGroupName: `${name}1`,\n});\nconst _default = new alicloud.vpc.PrefixList(\"default\", {\n    maxEntries: 50,\n    resourceGroupId: defaultRg.id,\n    prefixListDescription: \"test\",\n    ipVersion: \"IPV4\",\n    prefixListName: name,\n    entrys: [{\n        cidr: \"192.168.0.0/16\",\n        description: \"test\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-testacc-example\"\ndefault_rg = alicloud.resourcemanager.ResourceGroup(\"defaultRg\",\n    display_name=\"tf-testacc-chenyi\",\n    resource_group_name=name)\nchange_rg = alicloud.resourcemanager.ResourceGroup(\"changeRg\",\n    display_name=\"tf-testacc-chenyi-change\",\n    resource_group_name=f\"{name}1\")\ndefault = alicloud.vpc.PrefixList(\"default\",\n    max_entries=50,\n    resource_group_id=default_rg.id,\n    prefix_list_description=\"test\",\n    ip_version=\"IPV4\",\n    prefix_list_name=name,\n    entrys=[{\n        \"cidr\": \"192.168.0.0/16\",\n        \"description\": \"test\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-testacc-example\";\n    var defaultRg = new AliCloud.ResourceManager.ResourceGroup(\"defaultRg\", new()\n    {\n        DisplayName = \"tf-testacc-chenyi\",\n        ResourceGroupName = name,\n    });\n\n    var changeRg = new AliCloud.ResourceManager.ResourceGroup(\"changeRg\", new()\n    {\n        DisplayName = \"tf-testacc-chenyi-change\",\n        ResourceGroupName = $\"{name}1\",\n    });\n\n    var @default = new AliCloud.Vpc.PrefixList(\"default\", new()\n    {\n        MaxEntries = 50,\n        ResourceGroupId = defaultRg.Id,\n        PrefixListDescription = \"test\",\n        IpVersion = \"IPV4\",\n        PrefixListName = name,\n        Entrys = new[]\n        {\n            new AliCloud.Vpc.Inputs.PrefixListEntryArgs\n            {\n                Cidr = \"192.168.0.0/16\",\n                Description = \"test\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-testacc-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultRg, err := resourcemanager.NewResourceGroup(ctx, \"defaultRg\", \u0026resourcemanager.ResourceGroupArgs{\n\t\t\tDisplayName:       pulumi.String(\"tf-testacc-chenyi\"),\n\t\t\tResourceGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.NewResourceGroup(ctx, \"changeRg\", \u0026resourcemanager.ResourceGroupArgs{\n\t\t\tDisplayName:       pulumi.String(\"tf-testacc-chenyi-change\"),\n\t\t\tResourceGroupName: pulumi.Sprintf(\"%v1\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewPrefixList(ctx, \"default\", \u0026vpc.PrefixListArgs{\n\t\t\tMaxEntries:            pulumi.Int(50),\n\t\t\tResourceGroupId:       defaultRg.ID(),\n\t\t\tPrefixListDescription: pulumi.String(\"test\"),\n\t\t\tIpVersion:             pulumi.String(\"IPV4\"),\n\t\t\tPrefixListName:        pulumi.String(name),\n\t\t\tEntrys: vpc.PrefixListEntryArray{\n\t\t\t\t\u0026vpc.PrefixListEntryArgs{\n\t\t\t\t\tCidr:        pulumi.String(\"192.168.0.0/16\"),\n\t\t\t\t\tDescription: pulumi.String(\"test\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourceGroup;\nimport com.pulumi.alicloud.resourcemanager.ResourceGroupArgs;\nimport com.pulumi.alicloud.vpc.PrefixList;\nimport com.pulumi.alicloud.vpc.PrefixListArgs;\nimport com.pulumi.alicloud.vpc.inputs.PrefixListEntryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-testacc-example\");\n        var defaultRg = new ResourceGroup(\"defaultRg\", ResourceGroupArgs.builder()\n            .displayName(\"tf-testacc-chenyi\")\n            .resourceGroupName(name)\n            .build());\n\n        var changeRg = new ResourceGroup(\"changeRg\", ResourceGroupArgs.builder()\n            .displayName(\"tf-testacc-chenyi-change\")\n            .resourceGroupName(String.format(\"%s1\", name))\n            .build());\n\n        var default_ = new PrefixList(\"default\", PrefixListArgs.builder()\n            .maxEntries(50)\n            .resourceGroupId(defaultRg.id())\n            .prefixListDescription(\"test\")\n            .ipVersion(\"IPV4\")\n            .prefixListName(name)\n            .entrys(PrefixListEntryArgs.builder()\n                .cidr(\"192.168.0.0/16\")\n                .description(\"test\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-testacc-example\nresources:\n  defaultRg:\n    type: alicloud:resourcemanager:ResourceGroup\n    properties:\n      displayName: tf-testacc-chenyi\n      resourceGroupName: ${name}\n  changeRg:\n    type: alicloud:resourcemanager:ResourceGroup\n    properties:\n      displayName: tf-testacc-chenyi-change\n      resourceGroupName: ${name}1\n  default:\n    type: alicloud:vpc:PrefixList\n    properties:\n      maxEntries: 50\n      resourceGroupId: ${defaultRg.id}\n      prefixListDescription: test\n      ipVersion: IPV4\n      prefixListName: ${name}\n      entrys:\n        - cidr: 192.168.0.0/16\n          description: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVpc Prefix List can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/prefixList:PrefixList example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The time when the prefix list was created.\n"},"entrys":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/PrefixListEntry:PrefixListEntry"},"description":"The CIDR address block list of the prefix list.See the following `Block Entrys`.\n"},"ipVersion":{"type":"string","description":"The IP version of the prefix list. Value:-**IPV4**:IPv4 version.-**IPV6**:IPv6 version.\n"},"maxEntries":{"type":"integer","description":"The maximum number of entries for CIDR address blocks in the prefix list.\n"},"prefixListAssociations":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/PrefixListPrefixListAssociation:PrefixListPrefixListAssociation"},"description":"The association list information of the prefix list.\n"},"prefixListDescription":{"type":"string","description":"The description of the prefix list.It must be 2 to 256 characters in length and must start with a letter or Chinese, but cannot start with `http://` or `https://`.\n"},"prefixListId":{"type":"string","description":"The ID of the query Prefix List.\n"},"prefixListName":{"type":"string","description":"The name of the prefix list. The name must be 2 to 128 characters in length, and must start with a letter. It can contain digits, periods (.), underscores (_), and hyphens (-).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the PrefixList belongs.\n"},"shareType":{"type":"string","description":"The share type of the prefix list. Value:-**Shared**: indicates that the prefix list is a Shared prefix list.-Null: indicates that the prefix list is not a shared prefix list.\n"},"status":{"type":"string","description":"Resource attribute fields that represent the status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of PrefixList.\n"}},"required":["createTime","ipVersion","maxEntries","prefixListAssociations","prefixListId","resourceGroupId","shareType","status"],"inputProperties":{"entrys":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/PrefixListEntry:PrefixListEntry"},"description":"The CIDR address block list of the prefix list.See the following `Block Entrys`.\n"},"ipVersion":{"type":"string","description":"The IP version of the prefix list. Value:-**IPV4**:IPv4 version.-**IPV6**:IPv6 version.\n","willReplaceOnChanges":true},"maxEntries":{"type":"integer","description":"The maximum number of entries for CIDR address blocks in the prefix list.\n"},"prefixListDescription":{"type":"string","description":"The description of the prefix list.It must be 2 to 256 characters in length and must start with a letter or Chinese, but cannot start with `http://` or `https://`.\n"},"prefixListName":{"type":"string","description":"The name of the prefix list. The name must be 2 to 128 characters in length, and must start with a letter. It can contain digits, periods (.), underscores (_), and hyphens (-).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the PrefixList belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of PrefixList.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering PrefixList resources.\n","properties":{"createTime":{"type":"string","description":"The time when the prefix list was created.\n"},"entrys":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/PrefixListEntry:PrefixListEntry"},"description":"The CIDR address block list of the prefix list.See the following `Block Entrys`.\n"},"ipVersion":{"type":"string","description":"The IP version of the prefix list. Value:-**IPV4**:IPv4 version.-**IPV6**:IPv6 version.\n","willReplaceOnChanges":true},"maxEntries":{"type":"integer","description":"The maximum number of entries for CIDR address blocks in the prefix list.\n"},"prefixListAssociations":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/PrefixListPrefixListAssociation:PrefixListPrefixListAssociation"},"description":"The association list information of the prefix list.\n"},"prefixListDescription":{"type":"string","description":"The description of the prefix list.It must be 2 to 256 characters in length and must start with a letter or Chinese, but cannot start with `http://` or `https://`.\n"},"prefixListId":{"type":"string","description":"The ID of the query Prefix List.\n"},"prefixListName":{"type":"string","description":"The name of the prefix list. The name must be 2 to 128 characters in length, and must start with a letter. It can contain digits, periods (.), underscores (_), and hyphens (-).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the PrefixList belongs.\n"},"shareType":{"type":"string","description":"The share type of the prefix list. Value:-**Shared**: indicates that the prefix list is a Shared prefix list.-Null: indicates that the prefix list is not a shared prefix list.\n"},"status":{"type":"string","description":"Resource attribute fields that represent the status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of PrefixList.\n"}},"type":"object"}},"alicloud:vpc/publicIpAddressPool:PublicIpAddressPool":{"description":"Provides a VPC Public Ip Address Pool resource.\n\n\n\nFor information about VPC Public Ip Address Pool and how to use it, see [What is Public Ip Address Pool](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/createpublicipaddresspool).\n\n\u003e **NOTE:** Available since v1.186.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultPublicIpAddressPool = new alicloud.vpc.PublicIpAddressPool(\"default\", {\n    description: name,\n    publicIpAddressPoolName: name,\n    isp: \"BGP\",\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_public_ip_address_pool = alicloud.vpc.PublicIpAddressPool(\"default\",\n    description=name,\n    public_ip_address_pool_name=name,\n    isp=\"BGP\",\n    resource_group_id=default.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultPublicIpAddressPool = new AliCloud.Vpc.PublicIpAddressPool(\"default\", new()\n    {\n        Description = name,\n        PublicIpAddressPoolName = name,\n        Isp = \"BGP\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewPublicIpAddressPool(ctx, \"default\", \u0026vpc.PublicIpAddressPoolArgs{\n\t\t\tDescription:             pulumi.String(name),\n\t\t\tPublicIpAddressPoolName: pulumi.String(name),\n\t\t\tIsp:                     pulumi.String(\"BGP\"),\n\t\t\tResourceGroupId:         pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.PublicIpAddressPool;\nimport com.pulumi.alicloud.vpc.PublicIpAddressPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var defaultPublicIpAddressPool = new PublicIpAddressPool(\"defaultPublicIpAddressPool\", PublicIpAddressPoolArgs.builder()\n            .description(name)\n            .publicIpAddressPoolName(name)\n            .isp(\"BGP\")\n            .resourceGroupId(default_.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultPublicIpAddressPool:\n    type: alicloud:vpc:PublicIpAddressPool\n    name: default\n    properties:\n      description: ${name}\n      publicIpAddressPoolName: ${name}\n      isp: BGP\n      resourceGroupId: ${default.ids[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Public Ip Address Pool can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/publicIpAddressPool:PublicIpAddressPool example \u003cid\u003e\n```\n\n","properties":{"bizType":{"type":"string","description":"The name of the VPC Public IP address pool.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Description.\n"},"ipAddressRemaining":{"type":"boolean","description":"Whether there is a free IP address.\n"},"isp":{"type":"string","description":"The Internet service provider. Valid values: `BGP`, `BGP_PRO`, `ChinaTelecom`, `ChinaUnicom`, `ChinaMobile`, `ChinaTelecom_L2`, `ChinaUnicom_L2`, `ChinaMobile_L2`, `BGP_FinanceCloud`. Default Value: `BGP`.\n"},"publicIpAddressPoolId":{"type":"string","description":"The resource ID in terraform of VPC Public Ip Address Pool.\n"},"publicIpAddressPoolName":{"type":"string","description":"The name of the VPC Public IP address pool.\n"},"resourceGroupId":{"type":"string","description":"The resource group ID of the VPC Public IP address pool.\n"},"securityProtectionTypes":{"type":"array","items":{"type":"string"},"description":"Security protection level.\n- If the configuration is empty, the default value is DDoS protection (Basic edition).\n- `AntiDDoS_Enhanced` indicates DDoS protection (enhanced version).\n"},"status":{"type":"string","description":"The status of the VPC Public IP address pool.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of PrefixList.\n"},"totalIpNum":{"type":"integer","description":"The total number of public IP address pools.\n"},"usedIpNum":{"type":"integer","description":"The number of used IP addresses in the public IP address pool.\n"}},"required":["bizType","createTime","ipAddressRemaining","isp","publicIpAddressPoolId","resourceGroupId","status","totalIpNum","usedIpNum"],"inputProperties":{"bizType":{"type":"string","description":"The name of the VPC Public IP address pool.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description.\n"},"isp":{"type":"string","description":"The Internet service provider. Valid values: `BGP`, `BGP_PRO`, `ChinaTelecom`, `ChinaUnicom`, `ChinaMobile`, `ChinaTelecom_L2`, `ChinaUnicom_L2`, `ChinaMobile_L2`, `BGP_FinanceCloud`. Default Value: `BGP`.\n","willReplaceOnChanges":true},"publicIpAddressPoolName":{"type":"string","description":"The name of the VPC Public IP address pool.\n"},"resourceGroupId":{"type":"string","description":"The resource group ID of the VPC Public IP address pool.\n"},"securityProtectionTypes":{"type":"array","items":{"type":"string"},"description":"Security protection level.\n- If the configuration is empty, the default value is DDoS protection (Basic edition).\n- `AntiDDoS_Enhanced` indicates DDoS protection (enhanced version).\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of PrefixList.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering PublicIpAddressPool resources.\n","properties":{"bizType":{"type":"string","description":"The name of the VPC Public IP address pool.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource\n"},"description":{"type":"string","description":"Description.\n"},"ipAddressRemaining":{"type":"boolean","description":"Whether there is a free IP address.\n"},"isp":{"type":"string","description":"The Internet service provider. Valid values: `BGP`, `BGP_PRO`, `ChinaTelecom`, `ChinaUnicom`, `ChinaMobile`, `ChinaTelecom_L2`, `ChinaUnicom_L2`, `ChinaMobile_L2`, `BGP_FinanceCloud`. Default Value: `BGP`.\n","willReplaceOnChanges":true},"publicIpAddressPoolId":{"type":"string","description":"The resource ID in terraform of VPC Public Ip Address Pool.\n"},"publicIpAddressPoolName":{"type":"string","description":"The name of the VPC Public IP address pool.\n"},"resourceGroupId":{"type":"string","description":"The resource group ID of the VPC Public IP address pool.\n"},"securityProtectionTypes":{"type":"array","items":{"type":"string"},"description":"Security protection level.\n- If the configuration is empty, the default value is DDoS protection (Basic edition).\n- `AntiDDoS_Enhanced` indicates DDoS protection (enhanced version).\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the VPC Public IP address pool.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of PrefixList.\n"},"totalIpNum":{"type":"integer","description":"The total number of public IP address pools.\n"},"usedIpNum":{"type":"integer","description":"The number of used IP addresses in the public IP address pool.\n"}},"type":"object"}},"alicloud:vpc/publicIpAddressPoolCidrBlock:PublicIpAddressPoolCidrBlock":{"description":"Provides a VPC Public Ip Address Pool Cidr Block resource. \n\u003e **NOTE:** Only users who have the required permissions can use the IP address pool feature of Elastic IP Address (EIP). To apply for the required permissions, [submit a ticket](https://smartservice.console.aliyun.com/service/create-ticket).\n\nFor information about VPC Public Ip Address Pool Cidr Block and how to use it, see [What is Public Ip Address Pool Cidr Block](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/429100).\n\n\u003e **NOTE:** Available since v1.189.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultPublicIpAddressPool = new alicloud.vpc.PublicIpAddressPool(\"default\", {\n    description: name,\n    publicIpAddressPoolName: name,\n    isp: \"BGP\",\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n});\nconst defaultPublicIpAddressPoolCidrBlock = new alicloud.vpc.PublicIpAddressPoolCidrBlock(\"default\", {\n    publicIpAddressPoolId: defaultPublicIpAddressPool.id,\n    cidrBlock: \"47.118.126.0/25\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_public_ip_address_pool = alicloud.vpc.PublicIpAddressPool(\"default\",\n    description=name,\n    public_ip_address_pool_name=name,\n    isp=\"BGP\",\n    resource_group_id=default.ids[0])\ndefault_public_ip_address_pool_cidr_block = alicloud.vpc.PublicIpAddressPoolCidrBlock(\"default\",\n    public_ip_address_pool_id=default_public_ip_address_pool.id,\n    cidr_block=\"47.118.126.0/25\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultPublicIpAddressPool = new AliCloud.Vpc.PublicIpAddressPool(\"default\", new()\n    {\n        Description = name,\n        PublicIpAddressPoolName = name,\n        Isp = \"BGP\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n    });\n\n    var defaultPublicIpAddressPoolCidrBlock = new AliCloud.Vpc.PublicIpAddressPoolCidrBlock(\"default\", new()\n    {\n        PublicIpAddressPoolId = defaultPublicIpAddressPool.Id,\n        CidrBlock = \"47.118.126.0/25\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultPublicIpAddressPool, err := vpc.NewPublicIpAddressPool(ctx, \"default\", \u0026vpc.PublicIpAddressPoolArgs{\n\t\t\tDescription:             pulumi.String(name),\n\t\t\tPublicIpAddressPoolName: pulumi.String(name),\n\t\t\tIsp:                     pulumi.String(\"BGP\"),\n\t\t\tResourceGroupId:         pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewPublicIpAddressPoolCidrBlock(ctx, \"default\", \u0026vpc.PublicIpAddressPoolCidrBlockArgs{\n\t\t\tPublicIpAddressPoolId: defaultPublicIpAddressPool.ID(),\n\t\t\tCidrBlock:             pulumi.String(\"47.118.126.0/25\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.PublicIpAddressPool;\nimport com.pulumi.alicloud.vpc.PublicIpAddressPoolArgs;\nimport com.pulumi.alicloud.vpc.PublicIpAddressPoolCidrBlock;\nimport com.pulumi.alicloud.vpc.PublicIpAddressPoolCidrBlockArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        var defaultPublicIpAddressPool = new PublicIpAddressPool(\"defaultPublicIpAddressPool\", PublicIpAddressPoolArgs.builder()\n            .description(name)\n            .publicIpAddressPoolName(name)\n            .isp(\"BGP\")\n            .resourceGroupId(default_.ids()[0])\n            .build());\n\n        var defaultPublicIpAddressPoolCidrBlock = new PublicIpAddressPoolCidrBlock(\"defaultPublicIpAddressPoolCidrBlock\", PublicIpAddressPoolCidrBlockArgs.builder()\n            .publicIpAddressPoolId(defaultPublicIpAddressPool.id())\n            .cidrBlock(\"47.118.126.0/25\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultPublicIpAddressPool:\n    type: alicloud:vpc:PublicIpAddressPool\n    name: default\n    properties:\n      description: ${name}\n      publicIpAddressPoolName: ${name}\n      isp: BGP\n      resourceGroupId: ${default.ids[0]}\n  defaultPublicIpAddressPoolCidrBlock:\n    type: alicloud:vpc:PublicIpAddressPoolCidrBlock\n    name: default\n    properties:\n      publicIpAddressPoolId: ${defaultPublicIpAddressPool.id}\n      cidrBlock: 47.118.126.0/25\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Public Ip Address Pool Cidr Block can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/publicIpAddressPoolCidrBlock:PublicIpAddressPoolCidrBlock example \u003cpublic_ip_address_pool_id\u003e:\u003ccidr_block\u003e\n```\n\n","properties":{"cidrBlock":{"type":"string","description":"The CIDR block.\n"},"cidrMask":{"type":"integer","description":"IP address and network segment mask. After you enter the mask, the system automatically allocates the IP address network segment. Value range: **24** to **28**.\n\u003e **NOTE:**  **CidrBlock** and **CidrMask** cannot be configured at the same time. Select one of them to configure.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"publicIpAddressPoolId":{"type":"string","description":"The ID of the VPC Public IP address pool.\n"},"status":{"type":"string","description":"The status of the VPC Public Ip Address Pool Cidr Block.\n"}},"required":["cidrBlock","createTime","publicIpAddressPoolId","status"],"inputProperties":{"cidrBlock":{"type":"string","description":"The CIDR block.\n","willReplaceOnChanges":true},"cidrMask":{"type":"integer","description":"IP address and network segment mask. After you enter the mask, the system automatically allocates the IP address network segment. Value range: **24** to **28**.\n\u003e **NOTE:**  **CidrBlock** and **CidrMask** cannot be configured at the same time. Select one of them to configure.\n"},"publicIpAddressPoolId":{"type":"string","description":"The ID of the VPC Public IP address pool.\n","willReplaceOnChanges":true}},"requiredInputs":["publicIpAddressPoolId"],"stateInputs":{"description":"Input properties used for looking up and filtering PublicIpAddressPoolCidrBlock resources.\n","properties":{"cidrBlock":{"type":"string","description":"The CIDR block.\n","willReplaceOnChanges":true},"cidrMask":{"type":"integer","description":"IP address and network segment mask. After you enter the mask, the system automatically allocates the IP address network segment. Value range: **24** to **28**.\n\u003e **NOTE:**  **CidrBlock** and **CidrMask** cannot be configured at the same time. Select one of them to configure.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"publicIpAddressPoolId":{"type":"string","description":"The ID of the VPC Public IP address pool.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the VPC Public Ip Address Pool Cidr Block.\n"}},"type":"object"}},"alicloud:vpc/routeEntry:RouteEntry":{"description":"Provides a Route Entry resource. A Route Entry represents a route item of one VPC Route Table.\n\nFor information about Route Entry and how to use it, see [What is Route Entry](https://www.alibabacloud.com/help/en/vpc/developer-reference/api-vpc-2016-04-28-createrouteentry).\n\n\u003e **NOTE:** Available since v0.1.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 2,\n    memorySize: 8,\n    instanceTypeFamily: \"ecs.g6\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"192.168.192.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup].map(__item =\u003e __item.id),\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 10,\n    availabilityZone: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.availabilityZones?.[0]),\n    instanceChargeType: \"PostPaid\",\n    systemDiskCategory: \"cloud_efficiency\",\n    vswitchId: defaultSwitch.id,\n    instanceName: name,\n});\nconst defaultRouteEntry = new alicloud.vpc.RouteEntry(\"default\", {\n    routeTableId: defaultNetwork.routeTableId,\n    destinationCidrblock: \"172.11.1.1/32\",\n    nexthopType: \"Instance\",\n    nexthopId: defaultInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(most_recent=True,\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=2,\n    memory_size=8,\n    instance_type_family=\"ecs.g6\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"192.168.192.0/24\",\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[__item.id for __item in [default_security_group]],\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=10,\n    availability_zone=default_get_instance_types.instance_types[0].availability_zones[0],\n    instance_charge_type=\"PostPaid\",\n    system_disk_category=\"cloud_efficiency\",\n    vswitch_id=default_switch.id,\n    instance_name=name)\ndefault_route_entry = alicloud.vpc.RouteEntry(\"default\",\n    route_table_id=default_network.route_table_id,\n    destination_cidrblock=\"172.11.1.1/32\",\n    nexthop_type=\"Instance\",\n    nexthop_id=default_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 2,\n        MemorySize = 8,\n        InstanceTypeFamily = \"ecs.g6\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"192.168.192.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup,\n        }.Select(__item =\u003e __item.Id).ToList(),\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 10,\n        AvailabilityZone = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.AvailabilityZones[0]),\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskCategory = \"cloud_efficiency\",\n        VswitchId = defaultSwitch.Id,\n        InstanceName = name,\n    });\n\n    var defaultRouteEntry = new AliCloud.Vpc.RouteEntry(\"default\", new()\n    {\n        RouteTableId = defaultNetwork.RouteTableId,\n        DestinationCidrblock = \"172.11.1.1/32\",\n        NexthopType = \"Instance\",\n        NexthopId = defaultInstance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableDiskCategory: pulumi.StringRef(\"cloud_efficiency\"),\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nMostRecent: pulumi.BoolRef(true),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\nCpuCoreCount: pulumi.IntRef(2),\nMemorySize: pulumi.Float64Ref(8),\nInstanceTypeFamily: pulumi.StringRef(\"ecs.g6\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"192.168.192.0/24\"),\nZoneId: pulumi.String(_default.Zones[0].Id),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\ndefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\nImageId: pulumi.String(defaultGetImages.Images[0].Id),\nInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\nSecurityGroups: splat0,\nInternetChargeType: pulumi.String(\"PayByTraffic\"),\nInternetMaxBandwidthOut: pulumi.Int(10),\nAvailabilityZone: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].AvailabilityZones[0]),\nInstanceChargeType: pulumi.String(\"PostPaid\"),\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nVswitchId: defaultSwitch.ID(),\nInstanceName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\n_, err = vpc.NewRouteEntry(ctx, \"default\", \u0026vpc.RouteEntryArgs{\nRouteTableId: defaultNetwork.RouteTableId,\nDestinationCidrblock: pulumi.String(\"172.11.1.1/32\"),\nNexthopType: pulumi.String(\"Instance\"),\nNexthopId: defaultInstance.ID(),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.vpc.RouteEntry;\nimport com.pulumi.alicloud.vpc.RouteEntryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(2)\n            .memorySize(8)\n            .instanceTypeFamily(\"ecs.g6\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"192.168.192.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.stream().map(element -\u003e element.id()).collect(toList()))\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(10)\n            .availabilityZone(defaultGetInstanceTypes.instanceTypes()[0].availabilityZones()[0])\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .vswitchId(defaultSwitch.id())\n            .instanceName(name)\n            .build());\n\n        var defaultRouteEntry = new RouteEntry(\"defaultRouteEntry\", RouteEntryArgs.builder()\n            .routeTableId(defaultNetwork.routeTableId())\n            .destinationCidrblock(\"172.11.1.1/32\")\n            .nexthopType(\"Instance\")\n            .nexthopId(defaultInstance.id())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Module Support\n\nYou can use to the existing vpc module \nto create a VPC, several VSwitches and add several route entries one-click.\n\n## Import\n\nRoute Entry can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/routeEntry:RouteEntry example \u003croute_table_id\u003e:\u003crouter_id\u003e:\u003cdestination_cidrblock\u003e:\u003cnexthop_type\u003e:\u003cnexthop_id\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the Route Entry. The description must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length, and cannot start with `http://` or `https://`.\n"},"destinationCidrblock":{"type":"string","description":"The destination CIDR block of the custom route entry.\n"},"name":{"type":"string","description":"The name of the Route Entry. The name must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and cannot start with `http://` or `https://`.\n"},"nexthopId":{"type":"string","description":"The ID of Next Hop.\n"},"nexthopType":{"type":"string","description":"The type of Next Hop. Valid values:\n- `Instance`: An Elastic Compute Service (ECS) instance.\n- `HaVip`: A high-availability virtual IP address (HAVIP).\n- `RouterInterface`: A router interface.\n- `NetworkInterface`: An elastic network interface (ENI).\n- `VpnGateway`: A VPN Gateway.\n- `IPv6Gateway`: An IPv6 gateway.\n- `NatGateway`: A Nat Gateway.\n- `Attachment`: A transit router.\n- `VpcPeer`: A VPC Peering Connection.\n- `Ipv4Gateway`: An IPv4 gateway.\n- `GatewayEndpoint`: A gateway endpoint.\n- `Ecr`: A Express Connect Router (ECR).\n"},"routeTableId":{"type":"string","description":"The ID of the Route Table.\n"},"routerId":{"type":"string","description":"This argument has been deprecated. Please use other arguments to launch a custom route entry.\n","deprecationMessage":"Attribute\u003cspan pulumi-lang-nodejs=\" routerId \" pulumi-lang-dotnet=\" RouterId \" pulumi-lang-go=\" routerId \" pulumi-lang-python=\" router_id \" pulumi-lang-yaml=\" routerId \" pulumi-lang-java=\" routerId \"\u003e router_id \u003c/span\u003ehas been deprecated and suggest removing it from your template."}},"required":["name","routeTableId","routerId"],"inputProperties":{"description":{"type":"string","description":"The description of the Route Entry. The description must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length, and cannot start with `http://` or `https://`.\n","willReplaceOnChanges":true},"destinationCidrblock":{"type":"string","description":"The destination CIDR block of the custom route entry.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the Route Entry. The name must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and cannot start with `http://` or `https://`.\n","willReplaceOnChanges":true},"nexthopId":{"type":"string","description":"The ID of Next Hop.\n","willReplaceOnChanges":true},"nexthopType":{"type":"string","description":"The type of Next Hop. Valid values:\n- `Instance`: An Elastic Compute Service (ECS) instance.\n- `HaVip`: A high-availability virtual IP address (HAVIP).\n- `RouterInterface`: A router interface.\n- `NetworkInterface`: An elastic network interface (ENI).\n- `VpnGateway`: A VPN Gateway.\n- `IPv6Gateway`: An IPv6 gateway.\n- `NatGateway`: A Nat Gateway.\n- `Attachment`: A transit router.\n- `VpcPeer`: A VPC Peering Connection.\n- `Ipv4Gateway`: An IPv4 gateway.\n- `GatewayEndpoint`: A gateway endpoint.\n- `Ecr`: A Express Connect Router (ECR).\n","willReplaceOnChanges":true},"routeTableId":{"type":"string","description":"The ID of the Route Table.\n","willReplaceOnChanges":true}},"requiredInputs":["routeTableId"],"stateInputs":{"description":"Input properties used for looking up and filtering RouteEntry resources.\n","properties":{"description":{"type":"string","description":"The description of the Route Entry. The description must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length, and cannot start with `http://` or `https://`.\n","willReplaceOnChanges":true},"destinationCidrblock":{"type":"string","description":"The destination CIDR block of the custom route entry.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the Route Entry. The name must be \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and cannot start with `http://` or `https://`.\n","willReplaceOnChanges":true},"nexthopId":{"type":"string","description":"The ID of Next Hop.\n","willReplaceOnChanges":true},"nexthopType":{"type":"string","description":"The type of Next Hop. Valid values:\n- `Instance`: An Elastic Compute Service (ECS) instance.\n- `HaVip`: A high-availability virtual IP address (HAVIP).\n- `RouterInterface`: A router interface.\n- `NetworkInterface`: An elastic network interface (ENI).\n- `VpnGateway`: A VPN Gateway.\n- `IPv6Gateway`: An IPv6 gateway.\n- `NatGateway`: A Nat Gateway.\n- `Attachment`: A transit router.\n- `VpcPeer`: A VPC Peering Connection.\n- `Ipv4Gateway`: An IPv4 gateway.\n- `GatewayEndpoint`: A gateway endpoint.\n- `Ecr`: A Express Connect Router (ECR).\n","willReplaceOnChanges":true},"routeTableId":{"type":"string","description":"The ID of the Route Table.\n","willReplaceOnChanges":true},"routerId":{"type":"string","description":"This argument has been deprecated. Please use other arguments to launch a custom route entry.\n","deprecationMessage":"Attribute\u003cspan pulumi-lang-nodejs=\" routerId \" pulumi-lang-dotnet=\" RouterId \" pulumi-lang-go=\" routerId \" pulumi-lang-python=\" router_id \" pulumi-lang-yaml=\" routerId \" pulumi-lang-java=\" routerId \"\u003e router_id \u003c/span\u003ehas been deprecated and suggest removing it from your template."}},"type":"object"}},"alicloud:vpc/routeTable:RouteTable":{"description":"Provides a VPC Route Table resource.\n\nCurrently, customized route tables are available in most regions apart from China (Beijing), China (Hangzhou), and China (Shenzhen) regions.\n\nFor information about VPC Route Table and how to use it, see [What is Route Table](https://www.alibabacloud.com/help/doc-detail/87057.htm).\n\n\u003e **NOTE:** Available since v1.0.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultVpc = new alicloud.vpc.Network(\"defaultVpc\", {vpcName: name});\nconst _default = new alicloud.vpc.RouteTable(\"default\", {\n    description: \"test-description\",\n    vpcId: defaultVpc.id,\n    routeTableName: name,\n    associateType: \"VSwitch\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_vpc = alicloud.vpc.Network(\"defaultVpc\", vpc_name=name)\ndefault = alicloud.vpc.RouteTable(\"default\",\n    description=\"test-description\",\n    vpc_id=default_vpc.id,\n    route_table_name=name,\n    associate_type=\"VSwitch\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultVpc = new AliCloud.Vpc.Network(\"defaultVpc\", new()\n    {\n        VpcName = name,\n    });\n\n    var @default = new AliCloud.Vpc.RouteTable(\"default\", new()\n    {\n        Description = \"test-description\",\n        VpcId = defaultVpc.Id,\n        RouteTableName = name,\n        AssociateType = \"VSwitch\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultVpc, err := vpc.NewNetwork(ctx, \"defaultVpc\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewRouteTable(ctx, \"default\", \u0026vpc.RouteTableArgs{\n\t\t\tDescription:    pulumi.String(\"test-description\"),\n\t\t\tVpcId:          defaultVpc.ID(),\n\t\t\tRouteTableName: pulumi.String(name),\n\t\t\tAssociateType:  pulumi.String(\"VSwitch\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.RouteTable;\nimport com.pulumi.alicloud.vpc.RouteTableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultVpc = new Network(\"defaultVpc\", NetworkArgs.builder()\n            .vpcName(name)\n            .build());\n\n        var default_ = new RouteTable(\"default\", RouteTableArgs.builder()\n            .description(\"test-description\")\n            .vpcId(defaultVpc.id())\n            .routeTableName(name)\n            .associateType(\"VSwitch\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultVpc:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n  default:\n    type: alicloud:vpc:RouteTable\n    properties:\n      description: test-description\n      vpcId: ${defaultVpc.id}\n      routeTableName: ${name}\n      associateType: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Route Table can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/routeTable:RouteTable example \u003cid\u003e\n```\n\n","properties":{"associateType":{"type":"string","description":"The type of cloud resource that is bound to the routing table. Value:\n- `VSwitch`: switch.\n- `Gateway`:IPv4 Gateway.\n"},"createTime":{"type":"string","description":"The creation time of the routing table\n"},"description":{"type":"string","description":"Description of the routing table.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.119.1. New field 'route_table_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.119.1. New field 'route_table_name' instead."},"resourceGroupId":{"type":"string","description":"Resource group ID.\n"},"routePropagationEnable":{"type":"boolean","description":"Route Table Receive Propagate Route State\n"},"routeTableName":{"type":"string","description":"The name of the routing table.\n"},"status":{"type":"string","description":"Routing table state\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag\n"},"vpcId":{"type":"string","description":"The ID of VPC.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["associateType","createTime","name","resourceGroupId","routePropagationEnable","routeTableName","status","vpcId"],"inputProperties":{"associateType":{"type":"string","description":"The type of cloud resource that is bound to the routing table. Value:\n- `VSwitch`: switch.\n- `Gateway`:IPv4 Gateway.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of the routing table.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.119.1. New field 'route_table_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.119.1. New field 'route_table_name' instead."},"routePropagationEnable":{"type":"boolean","description":"Route Table Receive Propagate Route State\n"},"routeTableName":{"type":"string","description":"The name of the routing table.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag\n"},"vpcId":{"type":"string","description":"The ID of VPC.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"requiredInputs":["vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering RouteTable resources.\n","properties":{"associateType":{"type":"string","description":"The type of cloud resource that is bound to the routing table. Value:\n- `VSwitch`: switch.\n- `Gateway`:IPv4 Gateway.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the routing table\n"},"description":{"type":"string","description":"Description of the routing table.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.119.1. New field 'route_table_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.119.1. New field 'route_table_name' instead."},"resourceGroupId":{"type":"string","description":"Resource group ID.\n"},"routePropagationEnable":{"type":"boolean","description":"Route Table Receive Propagate Route State\n"},"routeTableName":{"type":"string","description":"The name of the routing table.\n"},"status":{"type":"string","description":"Routing table state\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag\n"},"vpcId":{"type":"string","description":"The ID of VPC.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/routeTableAttachment:RouteTableAttachment":{"description":"Provides a VPC Route Table Attachment resource. Routing table associated resource type.\n\nFor information about VPC Route Table Attachment and how to use it, see [What is Route Table Attachment](https://www.alibabacloud.com/help/doc-detail/174112.htm).\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst foo = new alicloud.vpc.Network(\"foo\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: name,\n});\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst fooSwitch = new alicloud.vpc.Switch(\"foo\", {\n    vpcId: foo.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst fooRouteTable = new alicloud.vpc.RouteTable(\"foo\", {\n    vpcId: foo.id,\n    routeTableName: name,\n    description: \"route_table_attachment\",\n});\nconst fooRouteTableAttachment = new alicloud.vpc.RouteTableAttachment(\"foo\", {\n    vswitchId: fooSwitch.id,\n    routeTableId: fooRouteTable.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nfoo = alicloud.vpc.Network(\"foo\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=name)\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nfoo_switch = alicloud.vpc.Switch(\"foo\",\n    vpc_id=foo.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\nfoo_route_table = alicloud.vpc.RouteTable(\"foo\",\n    vpc_id=foo.id,\n    route_table_name=name,\n    description=\"route_table_attachment\")\nfoo_route_table_attachment = alicloud.vpc.RouteTableAttachment(\"foo\",\n    vswitch_id=foo_switch.id,\n    route_table_id=foo_route_table.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var foo = new AliCloud.Vpc.Network(\"foo\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = name,\n    });\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var fooSwitch = new AliCloud.Vpc.Switch(\"foo\", new()\n    {\n        VpcId = foo.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var fooRouteTable = new AliCloud.Vpc.RouteTable(\"foo\", new()\n    {\n        VpcId = foo.Id,\n        RouteTableName = name,\n        Description = \"route_table_attachment\",\n    });\n\n    var fooRouteTableAttachment = new AliCloud.Vpc.RouteTableAttachment(\"foo\", new()\n    {\n        VswitchId = fooSwitch.Id,\n        RouteTableId = fooRouteTable.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tfoo, err := vpc.NewNetwork(ctx, \"foo\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooSwitch, err := vpc.NewSwitch(ctx, \"foo\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       foo.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooRouteTable, err := vpc.NewRouteTable(ctx, \"foo\", \u0026vpc.RouteTableArgs{\n\t\t\tVpcId:          foo.ID(),\n\t\t\tRouteTableName: pulumi.String(name),\n\t\t\tDescription:    pulumi.String(\"route_table_attachment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewRouteTableAttachment(ctx, \"foo\", \u0026vpc.RouteTableAttachmentArgs{\n\t\t\tVswitchId:    fooSwitch.ID(),\n\t\t\tRouteTableId: fooRouteTable.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.RouteTable;\nimport com.pulumi.alicloud.vpc.RouteTableArgs;\nimport com.pulumi.alicloud.vpc.RouteTableAttachment;\nimport com.pulumi.alicloud.vpc.RouteTableAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var foo = new Network(\"foo\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(name)\n            .build());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var fooSwitch = new Switch(\"fooSwitch\", SwitchArgs.builder()\n            .vpcId(foo.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var fooRouteTable = new RouteTable(\"fooRouteTable\", RouteTableArgs.builder()\n            .vpcId(foo.id())\n            .routeTableName(name)\n            .description(\"route_table_attachment\")\n            .build());\n\n        var fooRouteTableAttachment = new RouteTableAttachment(\"fooRouteTableAttachment\", RouteTableAttachmentArgs.builder()\n            .vswitchId(fooSwitch.id())\n            .routeTableId(fooRouteTable.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  foo:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName: ${name}\n  fooSwitch:\n    type: alicloud:vpc:Switch\n    name: foo\n    properties:\n      vpcId: ${foo.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  fooRouteTable:\n    type: alicloud:vpc:RouteTable\n    name: foo\n    properties:\n      vpcId: ${foo.id}\n      routeTableName: ${name}\n      description: route_table_attachment\n  fooRouteTableAttachment:\n    type: alicloud:vpc:RouteTableAttachment\n    name: foo\n    properties:\n      vswitchId: ${fooSwitch.id}\n      routeTableId: ${fooRouteTable.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Route Table Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/routeTableAttachment:RouteTableAttachment example \u003croute_table_id\u003e:\u003cvswitch_id\u003e\n```\n\n","properties":{"routeTableId":{"type":"string","description":"The ID of the route table to be bound to the switch.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"vswitchId":{"type":"string","description":"The ID of the switch to bind the route table.\n"}},"required":["routeTableId","status","vswitchId"],"inputProperties":{"routeTableId":{"type":"string","description":"The ID of the route table to be bound to the switch.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the switch to bind the route table.\n","willReplaceOnChanges":true}},"requiredInputs":["routeTableId","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering RouteTableAttachment resources.\n","properties":{"routeTableId":{"type":"string","description":"The ID of the route table to be bound to the switch.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"},"vswitchId":{"type":"string","description":"The ID of the switch to bind the route table.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/routerInterface:RouterInterface":{"description":"Provides a VPC router interface resource aim to build a connection between two VPCs.\n\n\u003e **DEPRECATED:**  This resource  has been deprecated from version `1.199.0`. Please use new resource alicloud_express_connect_router_interface.\n\n\u003e **NOTE:** Only one pair of connected router interfaces can exist between two routers. Up to 5 router interfaces can be created for each router and each account.\n\n\u003e **NOTE:** The router interface is not connected when it is created. It can be connected by means of resource alicloud_router_interface_connection.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst foo = new alicloud.vpc.Network(\"foo\", {\n    vpcName: \"tf_test_foo12345\",\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst _interface = new alicloud.vpc.RouterInterface(\"interface\", {\n    oppositeRegion: \"cn-beijing\",\n    routerType: \"VRouter\",\n    routerId: foo.routerId,\n    role: \"InitiatingSide\",\n    specification: \"Large.2\",\n    name: \"test1\",\n    description: \"test1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfoo = alicloud.vpc.Network(\"foo\",\n    vpc_name=\"tf_test_foo12345\",\n    cidr_block=\"172.16.0.0/12\")\ninterface = alicloud.vpc.RouterInterface(\"interface\",\n    opposite_region=\"cn-beijing\",\n    router_type=\"VRouter\",\n    router_id=foo.router_id,\n    role=\"InitiatingSide\",\n    specification=\"Large.2\",\n    name=\"test1\",\n    description=\"test1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = new AliCloud.Vpc.Network(\"foo\", new()\n    {\n        VpcName = \"tf_test_foo12345\",\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var @interface = new AliCloud.Vpc.RouterInterface(\"interface\", new()\n    {\n        OppositeRegion = \"cn-beijing\",\n        RouterType = \"VRouter\",\n        RouterId = foo.RouterId,\n        Role = \"InitiatingSide\",\n        Specification = \"Large.2\",\n        Name = \"test1\",\n        Description = \"test1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfoo, err := vpc.NewNetwork(ctx, \"foo\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"tf_test_foo12345\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewRouterInterface(ctx, \"interface\", \u0026vpc.RouterInterfaceArgs{\n\t\t\tOppositeRegion: pulumi.String(\"cn-beijing\"),\n\t\t\tRouterType:     pulumi.String(\"VRouter\"),\n\t\t\tRouterId:       foo.RouterId,\n\t\t\tRole:           pulumi.String(\"InitiatingSide\"),\n\t\t\tSpecification:  pulumi.String(\"Large.2\"),\n\t\t\tName:           pulumi.String(\"test1\"),\n\t\t\tDescription:    pulumi.String(\"test1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.RouterInterface;\nimport com.pulumi.alicloud.vpc.RouterInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var foo = new Network(\"foo\", NetworkArgs.builder()\n            .vpcName(\"tf_test_foo12345\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var interface_ = new RouterInterface(\"interface\", RouterInterfaceArgs.builder()\n            .oppositeRegion(\"cn-beijing\")\n            .routerType(\"VRouter\")\n            .routerId(foo.routerId())\n            .role(\"InitiatingSide\")\n            .specification(\"Large.2\")\n            .name(\"test1\")\n            .description(\"test1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  foo:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: tf_test_foo12345\n      cidrBlock: 172.16.0.0/12\n  interface:\n    type: alicloud:vpc:RouterInterface\n    properties:\n      oppositeRegion: cn-beijing\n      routerType: VRouter\n      routerId: ${foo.routerId}\n      role: InitiatingSide\n      specification: Large.2\n      name: test1\n      description: test1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe router interface can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/routerInterface:RouterInterface interface ri-abc123456\n```\n\n","properties":{"accessPointId":{"type":"string","description":"It has been deprecated from version 1.11.0.\n","deprecationMessage":"Attribute 'opposite_access_point_id' has been deprecated from version 1.11.0."},"description":{"type":"string","description":"Description of the router interface. It can be 2-256 characters long or left blank. It cannot start with http:// and https://.\n"},"healthCheckSourceIp":{"type":"string","description":"Used as the Packet Source IP of health check for disaster recovery or ECMP. It is only valid when \u003cspan pulumi-lang-nodejs=\"`routerType`\" pulumi-lang-dotnet=\"`RouterType`\" pulumi-lang-go=\"`routerType`\" pulumi-lang-python=\"`router_type`\" pulumi-lang-yaml=\"`routerType`\" pulumi-lang-java=\"`routerType`\"\u003e`router_type`\u003c/span\u003e is `VBR`. The IP must be an unused IP in the local VPC. It and \u003cspan pulumi-lang-nodejs=\"`healthCheckTargetIp`\" pulumi-lang-dotnet=\"`HealthCheckTargetIp`\" pulumi-lang-go=\"`healthCheckTargetIp`\" pulumi-lang-python=\"`health_check_target_ip`\" pulumi-lang-yaml=\"`healthCheckTargetIp`\" pulumi-lang-java=\"`healthCheckTargetIp`\"\u003e`health_check_target_ip`\u003c/span\u003e must be specified at the same time.\n"},"healthCheckTargetIp":{"type":"string","description":"Used as the Packet Target IP of health check for disaster recovery or ECMP. It is only valid when \u003cspan pulumi-lang-nodejs=\"`routerType`\" pulumi-lang-dotnet=\"`RouterType`\" pulumi-lang-go=\"`routerType`\" pulumi-lang-python=\"`router_type`\" pulumi-lang-yaml=\"`routerType`\" pulumi-lang-java=\"`routerType`\"\u003e`router_type`\u003c/span\u003e is `VBR`. The IP must be an unused IP in the local VPC. It and \u003cspan pulumi-lang-nodejs=\"`healthCheckSourceIp`\" pulumi-lang-dotnet=\"`HealthCheckSourceIp`\" pulumi-lang-go=\"`healthCheckSourceIp`\" pulumi-lang-python=\"`health_check_source_ip`\" pulumi-lang-yaml=\"`healthCheckSourceIp`\" pulumi-lang-java=\"`healthCheckSourceIp`\"\u003e`health_check_source_ip`\u003c/span\u003e must be specified at the same time.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the router interface. Valid values are \"PrePaid\" and \"PostPaid\". Default to \"PostPaid\". Router Interface doesn't support \"PrePaid\" when region and\u003cspan pulumi-lang-nodejs=\" oppositeRegion \" pulumi-lang-dotnet=\" OppositeRegion \" pulumi-lang-go=\" oppositeRegion \" pulumi-lang-python=\" opposite_region \" pulumi-lang-yaml=\" oppositeRegion \" pulumi-lang-java=\" oppositeRegion \"\u003e opposite_region \u003c/span\u003eare the same.\n"},"name":{"type":"string","description":"Name of the router interface. Length must be 2-80 characters long. Only Chinese characters, English letters, numbers, period (.), underline (_), or dash (-) are permitted.\nIf it is not specified, the default value is interface ID. The name cannot start with http:// and https://.\n"},"oppositeAccessPointId":{"type":"string","description":"It has been deprecated from version 1.11.0.\n","deprecationMessage":"Attribute 'opposite_access_point_id' has been deprecated from version 1.11.0."},"oppositeInterfaceId":{"type":"string","description":"It has been deprecated from version 1.11.0. Use resource alicloud_router_interface_connection's 'opposite_router_id' instead.\n","deprecationMessage":"Attribute 'opposite_interface_id' has been deprecated from version 1.11.0. Use resource alicloud_router_interface_connection's 'opposite_interface_id' instead."},"oppositeInterfaceOwnerId":{"type":"string","description":"It has been deprecated from version 1.11.0. Use resource alicloud_router_interface_connection's 'opposite_interface_id' instead.\n","deprecationMessage":"Attribute 'opposite_interface_owner_id' has been deprecated from version 1.11.0. Use resource alicloud_router_interface_connection's 'opposite_interface_owner_id' instead."},"oppositeRegion":{"type":"string","description":"The Region of peer side.\n"},"oppositeRouterId":{"type":"string","description":"It has been deprecated from version 1.11.0. Use resource alicloud_router_interface_connection's 'opposite_router_id' instead.\n","deprecationMessage":"Attribute 'opposite_router_id' has been deprecated from version 1.11.0. Use resource alicloud_router_interface_connection's 'opposite_router_id' instead."},"oppositeRouterType":{"type":"string","description":"It has been deprecated from version 1.11.0. resource alicloud_router_interface_connection's 'opposite_router_type' instead.\n","deprecationMessage":"Attribute 'opposite_router_type' has been deprecated from version 1.11.0. Use resource alicloud_router_interface_connection's 'opposite_router_type' instead."},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify \"period\" and you can do that via web console.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"role":{"type":"string","description":"The role the router interface plays. Optional value: `InitiatingSide`, `AcceptingSide`.\n"},"routerId":{"type":"string","description":"The Router ID.\n"},"routerType":{"type":"string","description":"Router Type. Optional value: VRouter, VBR. Accepting side router interface type only be VRouter.\n"},"specification":{"type":"string","description":"Specification of router interfaces. It is valid when \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e is `InitiatingSide`. Accepting side's role is default to set as 'Negative'. For more about the specification, refer to [Router interface specification](https://www.alibabacloud.com/help/doc-detail/36037.htm).\n"}},"required":["accessPointId","name","oppositeInterfaceId","oppositeInterfaceOwnerId","oppositeRegion","oppositeRouterId","oppositeRouterType","role","routerId","routerType"],"inputProperties":{"description":{"type":"string","description":"Description of the router interface. It can be 2-256 characters long or left blank. It cannot start with http:// and https://.\n"},"healthCheckSourceIp":{"type":"string","description":"Used as the Packet Source IP of health check for disaster recovery or ECMP. It is only valid when \u003cspan pulumi-lang-nodejs=\"`routerType`\" pulumi-lang-dotnet=\"`RouterType`\" pulumi-lang-go=\"`routerType`\" pulumi-lang-python=\"`router_type`\" pulumi-lang-yaml=\"`routerType`\" pulumi-lang-java=\"`routerType`\"\u003e`router_type`\u003c/span\u003e is `VBR`. The IP must be an unused IP in the local VPC. It and \u003cspan pulumi-lang-nodejs=\"`healthCheckTargetIp`\" pulumi-lang-dotnet=\"`HealthCheckTargetIp`\" pulumi-lang-go=\"`healthCheckTargetIp`\" pulumi-lang-python=\"`health_check_target_ip`\" pulumi-lang-yaml=\"`healthCheckTargetIp`\" pulumi-lang-java=\"`healthCheckTargetIp`\"\u003e`health_check_target_ip`\u003c/span\u003e must be specified at the same time.\n"},"healthCheckTargetIp":{"type":"string","description":"Used as the Packet Target IP of health check for disaster recovery or ECMP. It is only valid when \u003cspan pulumi-lang-nodejs=\"`routerType`\" pulumi-lang-dotnet=\"`RouterType`\" pulumi-lang-go=\"`routerType`\" pulumi-lang-python=\"`router_type`\" pulumi-lang-yaml=\"`routerType`\" pulumi-lang-java=\"`routerType`\"\u003e`router_type`\u003c/span\u003e is `VBR`. The IP must be an unused IP in the local VPC. It and \u003cspan pulumi-lang-nodejs=\"`healthCheckSourceIp`\" pulumi-lang-dotnet=\"`HealthCheckSourceIp`\" pulumi-lang-go=\"`healthCheckSourceIp`\" pulumi-lang-python=\"`health_check_source_ip`\" pulumi-lang-yaml=\"`healthCheckSourceIp`\" pulumi-lang-java=\"`healthCheckSourceIp`\"\u003e`health_check_source_ip`\u003c/span\u003e must be specified at the same time.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the router interface. Valid values are \"PrePaid\" and \"PostPaid\". Default to \"PostPaid\". Router Interface doesn't support \"PrePaid\" when region and\u003cspan pulumi-lang-nodejs=\" oppositeRegion \" pulumi-lang-dotnet=\" OppositeRegion \" pulumi-lang-go=\" oppositeRegion \" pulumi-lang-python=\" opposite_region \" pulumi-lang-yaml=\" oppositeRegion \" pulumi-lang-java=\" oppositeRegion \"\u003e opposite_region \u003c/span\u003eare the same.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the router interface. Length must be 2-80 characters long. Only Chinese characters, English letters, numbers, period (.), underline (_), or dash (-) are permitted.\nIf it is not specified, the default value is interface ID. The name cannot start with http:// and https://.\n"},"oppositeAccessPointId":{"type":"string","description":"It has been deprecated from version 1.11.0.\n","deprecationMessage":"Attribute 'opposite_access_point_id' has been deprecated from version 1.11.0."},"oppositeRegion":{"type":"string","description":"The Region of peer side.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify \"period\" and you can do that via web console.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"role":{"type":"string","description":"The role the router interface plays. Optional value: `InitiatingSide`, `AcceptingSide`.\n","willReplaceOnChanges":true},"routerId":{"type":"string","description":"The Router ID.\n","willReplaceOnChanges":true},"routerType":{"type":"string","description":"Router Type. Optional value: VRouter, VBR. Accepting side router interface type only be VRouter.\n","willReplaceOnChanges":true},"specification":{"type":"string","description":"Specification of router interfaces. It is valid when \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e is `InitiatingSide`. Accepting side's role is default to set as 'Negative'. For more about the specification, refer to [Router interface specification](https://www.alibabacloud.com/help/doc-detail/36037.htm).\n"}},"requiredInputs":["oppositeRegion","role","routerId","routerType"],"stateInputs":{"description":"Input properties used for looking up and filtering RouterInterface resources.\n","properties":{"accessPointId":{"type":"string","description":"It has been deprecated from version 1.11.0.\n","deprecationMessage":"Attribute 'opposite_access_point_id' has been deprecated from version 1.11.0."},"description":{"type":"string","description":"Description of the router interface. It can be 2-256 characters long or left blank. It cannot start with http:// and https://.\n"},"healthCheckSourceIp":{"type":"string","description":"Used as the Packet Source IP of health check for disaster recovery or ECMP. It is only valid when \u003cspan pulumi-lang-nodejs=\"`routerType`\" pulumi-lang-dotnet=\"`RouterType`\" pulumi-lang-go=\"`routerType`\" pulumi-lang-python=\"`router_type`\" pulumi-lang-yaml=\"`routerType`\" pulumi-lang-java=\"`routerType`\"\u003e`router_type`\u003c/span\u003e is `VBR`. The IP must be an unused IP in the local VPC. It and \u003cspan pulumi-lang-nodejs=\"`healthCheckTargetIp`\" pulumi-lang-dotnet=\"`HealthCheckTargetIp`\" pulumi-lang-go=\"`healthCheckTargetIp`\" pulumi-lang-python=\"`health_check_target_ip`\" pulumi-lang-yaml=\"`healthCheckTargetIp`\" pulumi-lang-java=\"`healthCheckTargetIp`\"\u003e`health_check_target_ip`\u003c/span\u003e must be specified at the same time.\n"},"healthCheckTargetIp":{"type":"string","description":"Used as the Packet Target IP of health check for disaster recovery or ECMP. It is only valid when \u003cspan pulumi-lang-nodejs=\"`routerType`\" pulumi-lang-dotnet=\"`RouterType`\" pulumi-lang-go=\"`routerType`\" pulumi-lang-python=\"`router_type`\" pulumi-lang-yaml=\"`routerType`\" pulumi-lang-java=\"`routerType`\"\u003e`router_type`\u003c/span\u003e is `VBR`. The IP must be an unused IP in the local VPC. It and \u003cspan pulumi-lang-nodejs=\"`healthCheckSourceIp`\" pulumi-lang-dotnet=\"`HealthCheckSourceIp`\" pulumi-lang-go=\"`healthCheckSourceIp`\" pulumi-lang-python=\"`health_check_source_ip`\" pulumi-lang-yaml=\"`healthCheckSourceIp`\" pulumi-lang-java=\"`healthCheckSourceIp`\"\u003e`health_check_source_ip`\u003c/span\u003e must be specified at the same time.\n"},"instanceChargeType":{"type":"string","description":"The billing method of the router interface. Valid values are \"PrePaid\" and \"PostPaid\". Default to \"PostPaid\". Router Interface doesn't support \"PrePaid\" when region and\u003cspan pulumi-lang-nodejs=\" oppositeRegion \" pulumi-lang-dotnet=\" OppositeRegion \" pulumi-lang-go=\" oppositeRegion \" pulumi-lang-python=\" opposite_region \" pulumi-lang-yaml=\" oppositeRegion \" pulumi-lang-java=\" oppositeRegion \"\u003e opposite_region \u003c/span\u003eare the same.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the router interface. Length must be 2-80 characters long. Only Chinese characters, English letters, numbers, period (.), underline (_), or dash (-) are permitted.\nIf it is not specified, the default value is interface ID. The name cannot start with http:// and https://.\n"},"oppositeAccessPointId":{"type":"string","description":"It has been deprecated from version 1.11.0.\n","deprecationMessage":"Attribute 'opposite_access_point_id' has been deprecated from version 1.11.0."},"oppositeInterfaceId":{"type":"string","description":"It has been deprecated from version 1.11.0. Use resource alicloud_router_interface_connection's 'opposite_router_id' instead.\n","deprecationMessage":"Attribute 'opposite_interface_id' has been deprecated from version 1.11.0. Use resource alicloud_router_interface_connection's 'opposite_interface_id' instead."},"oppositeInterfaceOwnerId":{"type":"string","description":"It has been deprecated from version 1.11.0. Use resource alicloud_router_interface_connection's 'opposite_interface_id' instead.\n","deprecationMessage":"Attribute 'opposite_interface_owner_id' has been deprecated from version 1.11.0. Use resource alicloud_router_interface_connection's 'opposite_interface_owner_id' instead."},"oppositeRegion":{"type":"string","description":"The Region of peer side.\n","willReplaceOnChanges":true},"oppositeRouterId":{"type":"string","description":"It has been deprecated from version 1.11.0. Use resource alicloud_router_interface_connection's 'opposite_router_id' instead.\n","deprecationMessage":"Attribute 'opposite_router_id' has been deprecated from version 1.11.0. Use resource alicloud_router_interface_connection's 'opposite_router_id' instead."},"oppositeRouterType":{"type":"string","description":"It has been deprecated from version 1.11.0. resource alicloud_router_interface_connection's 'opposite_router_type' instead.\n","deprecationMessage":"Attribute 'opposite_router_type' has been deprecated from version 1.11.0. Use resource alicloud_router_interface_connection's 'opposite_router_type' instead."},"period":{"type":"integer","description":"The duration that you will buy the resource, in month. It is valid when \u003cspan pulumi-lang-nodejs=\"`instanceChargeType`\" pulumi-lang-dotnet=\"`InstanceChargeType`\" pulumi-lang-go=\"`instanceChargeType`\" pulumi-lang-python=\"`instance_charge_type`\" pulumi-lang-yaml=\"`instanceChargeType`\" pulumi-lang-java=\"`instanceChargeType`\"\u003e`instance_charge_type`\u003c/span\u003e is `PrePaid`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify \"period\" and you can do that via web console.\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"role":{"type":"string","description":"The role the router interface plays. Optional value: `InitiatingSide`, `AcceptingSide`.\n","willReplaceOnChanges":true},"routerId":{"type":"string","description":"The Router ID.\n","willReplaceOnChanges":true},"routerType":{"type":"string","description":"Router Type. Optional value: VRouter, VBR. Accepting side router interface type only be VRouter.\n","willReplaceOnChanges":true},"specification":{"type":"string","description":"Specification of router interfaces. It is valid when \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e is `InitiatingSide`. Accepting side's role is default to set as 'Negative'. For more about the specification, refer to [Router interface specification](https://www.alibabacloud.com/help/doc-detail/36037.htm).\n"}},"type":"object"}},"alicloud:vpc/routerInterfaceConnection:RouterInterfaceConnection":{"description":"\u003e **DEPRECATED:**  This resource has been deprecated from version `1.199.0`. Please use new resource alicloud_express_connect_router_interface.\n\nProvides a VPC router interface connection resource to connect two router interfaces which are in two different VPCs.\nAfter that, all of the two router interfaces will be active.\n\n\u003e **NOTE:** At present, Router interface does not support changing opposite router interface, the connection delete action is only deactivating it to inactive, not modifying the connection to empty.\n\n\u003e **NOTE:** If you want to changing opposite router interface, you can delete router interface and re-build them.\n\n\u003e **NOTE:** A integrated router interface connection tunnel requires both InitiatingSide and AcceptingSide configuring opposite router interface.\n\n\u003e **NOTE:** Please remember to add a \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e clause in the router interface connection from the InitiatingSide to the AcceptingSide, because the connection from the AcceptingSide to the InitiatingSide must be done first.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst name = config.get(\"name\") || \"alicloudRouterInterfaceConnectionBasic\";\nconst foo = new alicloud.vpc.Network(\"foo\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst bar = new alicloud.vpc.Network(\"bar\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst initiate = new alicloud.vpc.RouterInterface(\"initiate\", {\n    oppositeRegion: region,\n    routerType: \"VRouter\",\n    routerId: foo.routerId,\n    role: \"InitiatingSide\",\n    specification: \"Large.2\",\n    name: name,\n    description: name,\n    instanceChargeType: \"PostPaid\",\n});\nconst opposite = new alicloud.vpc.RouterInterface(\"opposite\", {\n    oppositeRegion: region,\n    routerType: \"VRouter\",\n    routerId: bar.routerId,\n    role: \"AcceptingSide\",\n    specification: \"Large.1\",\n    name: `${name}-opposite`,\n    description: `${name}-opposite`,\n});\nconst barRouterInterfaceConnection = new alicloud.vpc.RouterInterfaceConnection(\"bar\", {\n    interfaceId: opposite.id,\n    oppositeInterfaceId: initiate.id,\n});\n// A integrated router interface connection tunnel requires both InitiatingSide and AcceptingSide configuring opposite router interface.\nconst fooRouterInterfaceConnection = new alicloud.vpc.RouterInterfaceConnection(\"foo\", {\n    interfaceId: initiate.id,\n    oppositeInterfaceId: opposite.id,\n}, {\n    dependsOn: [barRouterInterfaceConnection],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\nname = config.get(\"name\")\nif name is None:\n    name = \"alicloudRouterInterfaceConnectionBasic\"\nfoo = alicloud.vpc.Network(\"foo\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\nbar = alicloud.vpc.Network(\"bar\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ninitiate = alicloud.vpc.RouterInterface(\"initiate\",\n    opposite_region=region,\n    router_type=\"VRouter\",\n    router_id=foo.router_id,\n    role=\"InitiatingSide\",\n    specification=\"Large.2\",\n    name=name,\n    description=name,\n    instance_charge_type=\"PostPaid\")\nopposite = alicloud.vpc.RouterInterface(\"opposite\",\n    opposite_region=region,\n    router_type=\"VRouter\",\n    router_id=bar.router_id,\n    role=\"AcceptingSide\",\n    specification=\"Large.1\",\n    name=f\"{name}-opposite\",\n    description=f\"{name}-opposite\")\nbar_router_interface_connection = alicloud.vpc.RouterInterfaceConnection(\"bar\",\n    interface_id=opposite.id,\n    opposite_interface_id=initiate.id)\n# A integrated router interface connection tunnel requires both InitiatingSide and AcceptingSide configuring opposite router interface.\nfoo_router_interface_connection = alicloud.vpc.RouterInterfaceConnection(\"foo\",\n    interface_id=initiate.id,\n    opposite_interface_id=opposite.id,\n    opts = pulumi.ResourceOptions(depends_on=[bar_router_interface_connection]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var name = config.Get(\"name\") ?? \"alicloudRouterInterfaceConnectionBasic\";\n    var foo = new AliCloud.Vpc.Network(\"foo\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var bar = new AliCloud.Vpc.Network(\"bar\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var initiate = new AliCloud.Vpc.RouterInterface(\"initiate\", new()\n    {\n        OppositeRegion = region,\n        RouterType = \"VRouter\",\n        RouterId = foo.RouterId,\n        Role = \"InitiatingSide\",\n        Specification = \"Large.2\",\n        Name = name,\n        Description = name,\n        InstanceChargeType = \"PostPaid\",\n    });\n\n    var opposite = new AliCloud.Vpc.RouterInterface(\"opposite\", new()\n    {\n        OppositeRegion = region,\n        RouterType = \"VRouter\",\n        RouterId = bar.RouterId,\n        Role = \"AcceptingSide\",\n        Specification = \"Large.1\",\n        Name = $\"{name}-opposite\",\n        Description = $\"{name}-opposite\",\n    });\n\n    var barRouterInterfaceConnection = new AliCloud.Vpc.RouterInterfaceConnection(\"bar\", new()\n    {\n        InterfaceId = opposite.Id,\n        OppositeInterfaceId = initiate.Id,\n    });\n\n    // A integrated router interface connection tunnel requires both InitiatingSide and AcceptingSide configuring opposite router interface.\n    var fooRouterInterfaceConnection = new AliCloud.Vpc.RouterInterfaceConnection(\"foo\", new()\n    {\n        InterfaceId = initiate.Id,\n        OppositeInterfaceId = opposite.Id,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            barRouterInterfaceConnection,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tname := \"alicloudRouterInterfaceConnectionBasic\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tfoo, err := vpc.NewNetwork(ctx, \"foo\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbar, err := vpc.NewNetwork(ctx, \"bar\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinitiate, err := vpc.NewRouterInterface(ctx, \"initiate\", \u0026vpc.RouterInterfaceArgs{\n\t\t\tOppositeRegion:     pulumi.String(region),\n\t\t\tRouterType:         pulumi.String(\"VRouter\"),\n\t\t\tRouterId:           foo.RouterId,\n\t\t\tRole:               pulumi.String(\"InitiatingSide\"),\n\t\t\tSpecification:      pulumi.String(\"Large.2\"),\n\t\t\tName:               pulumi.String(name),\n\t\t\tDescription:        pulumi.String(name),\n\t\t\tInstanceChargeType: pulumi.String(\"PostPaid\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\topposite, err := vpc.NewRouterInterface(ctx, \"opposite\", \u0026vpc.RouterInterfaceArgs{\n\t\t\tOppositeRegion: pulumi.String(region),\n\t\t\tRouterType:     pulumi.String(\"VRouter\"),\n\t\t\tRouterId:       bar.RouterId,\n\t\t\tRole:           pulumi.String(\"AcceptingSide\"),\n\t\t\tSpecification:  pulumi.String(\"Large.1\"),\n\t\t\tName:           pulumi.Sprintf(\"%v-opposite\", name),\n\t\t\tDescription:    pulumi.Sprintf(\"%v-opposite\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbarRouterInterfaceConnection, err := vpc.NewRouterInterfaceConnection(ctx, \"bar\", \u0026vpc.RouterInterfaceConnectionArgs{\n\t\t\tInterfaceId:         opposite.ID(),\n\t\t\tOppositeInterfaceId: initiate.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// A integrated router interface connection tunnel requires both InitiatingSide and AcceptingSide configuring opposite router interface.\n\t\t_, err = vpc.NewRouterInterfaceConnection(ctx, \"foo\", \u0026vpc.RouterInterfaceConnectionArgs{\n\t\t\tInterfaceId:         initiate.ID(),\n\t\t\tOppositeInterfaceId: opposite.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tbarRouterInterfaceConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.RouterInterface;\nimport com.pulumi.alicloud.vpc.RouterInterfaceArgs;\nimport com.pulumi.alicloud.vpc.RouterInterfaceConnection;\nimport com.pulumi.alicloud.vpc.RouterInterfaceConnectionArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var name = config.get(\"name\").orElse(\"alicloudRouterInterfaceConnectionBasic\");\n        var foo = new Network(\"foo\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var bar = new Network(\"bar\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var initiate = new RouterInterface(\"initiate\", RouterInterfaceArgs.builder()\n            .oppositeRegion(region)\n            .routerType(\"VRouter\")\n            .routerId(foo.routerId())\n            .role(\"InitiatingSide\")\n            .specification(\"Large.2\")\n            .name(name)\n            .description(name)\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n        var opposite = new RouterInterface(\"opposite\", RouterInterfaceArgs.builder()\n            .oppositeRegion(region)\n            .routerType(\"VRouter\")\n            .routerId(bar.routerId())\n            .role(\"AcceptingSide\")\n            .specification(\"Large.1\")\n            .name(String.format(\"%s-opposite\", name))\n            .description(String.format(\"%s-opposite\", name))\n            .build());\n\n        var barRouterInterfaceConnection = new RouterInterfaceConnection(\"barRouterInterfaceConnection\", RouterInterfaceConnectionArgs.builder()\n            .interfaceId(opposite.id())\n            .oppositeInterfaceId(initiate.id())\n            .build());\n\n        // A integrated router interface connection tunnel requires both InitiatingSide and AcceptingSide configuring opposite router interface.\n        var fooRouterInterfaceConnection = new RouterInterfaceConnection(\"fooRouterInterfaceConnection\", RouterInterfaceConnectionArgs.builder()\n            .interfaceId(initiate.id())\n            .oppositeInterfaceId(opposite.id())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(barRouterInterfaceConnection)\n                .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\n  name:\n    type: string\n    default: alicloudRouterInterfaceConnectionBasic\nresources:\n  foo:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  bar:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  initiate:\n    type: alicloud:vpc:RouterInterface\n    properties:\n      oppositeRegion: ${region}\n      routerType: VRouter\n      routerId: ${foo.routerId}\n      role: InitiatingSide\n      specification: Large.2\n      name: ${name}\n      description: ${name}\n      instanceChargeType: PostPaid\n  opposite:\n    type: alicloud:vpc:RouterInterface\n    properties:\n      oppositeRegion: ${region}\n      routerType: VRouter\n      routerId: ${bar.routerId}\n      role: AcceptingSide\n      specification: Large.1\n      name: ${name}-opposite\n      description: ${name}-opposite\n  # A integrated router interface connection tunnel requires both InitiatingSide and AcceptingSide configuring opposite router interface.\n  fooRouterInterfaceConnection:\n    type: alicloud:vpc:RouterInterfaceConnection\n    name: foo\n    properties:\n      interfaceId: ${initiate.id}\n      oppositeInterfaceId: ${opposite.id}\n    options:\n      dependsOn:\n        - ${barRouterInterfaceConnection}\n  barRouterInterfaceConnection:\n    type: alicloud:vpc:RouterInterfaceConnection\n    name: bar\n    properties:\n      interfaceId: ${opposite.id}\n      oppositeInterfaceId: ${initiate.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nThe router interface connection can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/routerInterfaceConnection:RouterInterfaceConnection foo ri-abc123456\n```\n\n","properties":{"interfaceId":{"type":"string","description":"One side router interface ID.\n"},"oppositeInterfaceId":{"type":"string","description":"Another side router interface ID. It must belong the specified \u003cspan pulumi-lang-nodejs=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-dotnet=\"\"OppositeInterfaceOwnerId\"\" pulumi-lang-go=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-python=\"\"opposite_interface_owner_id\"\" pulumi-lang-yaml=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-java=\"\"oppositeInterfaceOwnerId\"\"\u003e\"opposite_interface_owner_id\"\u003c/span\u003e account.\n"},"oppositeInterfaceOwnerId":{"type":"string","description":"Another side router interface account ID. Log on to the Alibaba Cloud console, select User Info \u003e Account Management to check the account ID. Default to Provider account_id.\n"},"oppositeRouterId":{"type":"string","description":"Another side router ID. It must belong the specified \u003cspan pulumi-lang-nodejs=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-dotnet=\"\"OppositeInterfaceOwnerId\"\" pulumi-lang-go=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-python=\"\"opposite_interface_owner_id\"\" pulumi-lang-yaml=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-java=\"\"oppositeInterfaceOwnerId\"\"\u003e\"opposite_interface_owner_id\"\u003c/span\u003e account. It is valid when field \u003cspan pulumi-lang-nodejs=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-dotnet=\"\"OppositeInterfaceOwnerId\"\" pulumi-lang-go=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-python=\"\"opposite_interface_owner_id\"\" pulumi-lang-yaml=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-java=\"\"oppositeInterfaceOwnerId\"\"\u003e\"opposite_interface_owner_id\"\u003c/span\u003e is specified.\n"},"oppositeRouterType":{"type":"string","description":"Another side router Type. Optional value: VRouter, VBR. It is valid when field \u003cspan pulumi-lang-nodejs=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-dotnet=\"\"OppositeInterfaceOwnerId\"\" pulumi-lang-go=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-python=\"\"opposite_interface_owner_id\"\" pulumi-lang-yaml=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-java=\"\"oppositeInterfaceOwnerId\"\"\u003e\"opposite_interface_owner_id\"\u003c/span\u003e is specified.\n\n\u003e **NOTE:** The value of \u003cspan pulumi-lang-nodejs=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-dotnet=\"\"OppositeInterfaceOwnerId\"\" pulumi-lang-go=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-python=\"\"opposite_interface_owner_id\"\" pulumi-lang-yaml=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-java=\"\"oppositeInterfaceOwnerId\"\"\u003e\"opposite_interface_owner_id\"\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"\"accountId\"\" pulumi-lang-dotnet=\"\"AccountId\"\" pulumi-lang-go=\"\"accountId\"\" pulumi-lang-python=\"\"account_id\"\" pulumi-lang-yaml=\"\"accountId\"\" pulumi-lang-java=\"\"accountId\"\"\u003e\"account_id\"\u003c/span\u003e must be main account and not be sub account.\n"}},"required":["interfaceId","oppositeInterfaceId","oppositeInterfaceOwnerId","oppositeRouterId"],"inputProperties":{"interfaceId":{"type":"string","description":"One side router interface ID.\n","willReplaceOnChanges":true},"oppositeInterfaceId":{"type":"string","description":"Another side router interface ID. It must belong the specified \u003cspan pulumi-lang-nodejs=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-dotnet=\"\"OppositeInterfaceOwnerId\"\" pulumi-lang-go=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-python=\"\"opposite_interface_owner_id\"\" pulumi-lang-yaml=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-java=\"\"oppositeInterfaceOwnerId\"\"\u003e\"opposite_interface_owner_id\"\u003c/span\u003e account.\n","willReplaceOnChanges":true},"oppositeInterfaceOwnerId":{"type":"string","description":"Another side router interface account ID. Log on to the Alibaba Cloud console, select User Info \u003e Account Management to check the account ID. Default to Provider account_id.\n","willReplaceOnChanges":true},"oppositeRouterId":{"type":"string","description":"Another side router ID. It must belong the specified \u003cspan pulumi-lang-nodejs=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-dotnet=\"\"OppositeInterfaceOwnerId\"\" pulumi-lang-go=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-python=\"\"opposite_interface_owner_id\"\" pulumi-lang-yaml=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-java=\"\"oppositeInterfaceOwnerId\"\"\u003e\"opposite_interface_owner_id\"\u003c/span\u003e account. It is valid when field \u003cspan pulumi-lang-nodejs=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-dotnet=\"\"OppositeInterfaceOwnerId\"\" pulumi-lang-go=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-python=\"\"opposite_interface_owner_id\"\" pulumi-lang-yaml=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-java=\"\"oppositeInterfaceOwnerId\"\"\u003e\"opposite_interface_owner_id\"\u003c/span\u003e is specified.\n","willReplaceOnChanges":true},"oppositeRouterType":{"type":"string","description":"Another side router Type. Optional value: VRouter, VBR. It is valid when field \u003cspan pulumi-lang-nodejs=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-dotnet=\"\"OppositeInterfaceOwnerId\"\" pulumi-lang-go=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-python=\"\"opposite_interface_owner_id\"\" pulumi-lang-yaml=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-java=\"\"oppositeInterfaceOwnerId\"\"\u003e\"opposite_interface_owner_id\"\u003c/span\u003e is specified.\n\n\u003e **NOTE:** The value of \u003cspan pulumi-lang-nodejs=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-dotnet=\"\"OppositeInterfaceOwnerId\"\" pulumi-lang-go=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-python=\"\"opposite_interface_owner_id\"\" pulumi-lang-yaml=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-java=\"\"oppositeInterfaceOwnerId\"\"\u003e\"opposite_interface_owner_id\"\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"\"accountId\"\" pulumi-lang-dotnet=\"\"AccountId\"\" pulumi-lang-go=\"\"accountId\"\" pulumi-lang-python=\"\"account_id\"\" pulumi-lang-yaml=\"\"accountId\"\" pulumi-lang-java=\"\"accountId\"\"\u003e\"account_id\"\u003c/span\u003e must be main account and not be sub account.\n","willReplaceOnChanges":true}},"requiredInputs":["interfaceId","oppositeInterfaceId"],"stateInputs":{"description":"Input properties used for looking up and filtering RouterInterfaceConnection resources.\n","properties":{"interfaceId":{"type":"string","description":"One side router interface ID.\n","willReplaceOnChanges":true},"oppositeInterfaceId":{"type":"string","description":"Another side router interface ID. It must belong the specified \u003cspan pulumi-lang-nodejs=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-dotnet=\"\"OppositeInterfaceOwnerId\"\" pulumi-lang-go=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-python=\"\"opposite_interface_owner_id\"\" pulumi-lang-yaml=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-java=\"\"oppositeInterfaceOwnerId\"\"\u003e\"opposite_interface_owner_id\"\u003c/span\u003e account.\n","willReplaceOnChanges":true},"oppositeInterfaceOwnerId":{"type":"string","description":"Another side router interface account ID. Log on to the Alibaba Cloud console, select User Info \u003e Account Management to check the account ID. Default to Provider account_id.\n","willReplaceOnChanges":true},"oppositeRouterId":{"type":"string","description":"Another side router ID. It must belong the specified \u003cspan pulumi-lang-nodejs=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-dotnet=\"\"OppositeInterfaceOwnerId\"\" pulumi-lang-go=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-python=\"\"opposite_interface_owner_id\"\" pulumi-lang-yaml=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-java=\"\"oppositeInterfaceOwnerId\"\"\u003e\"opposite_interface_owner_id\"\u003c/span\u003e account. It is valid when field \u003cspan pulumi-lang-nodejs=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-dotnet=\"\"OppositeInterfaceOwnerId\"\" pulumi-lang-go=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-python=\"\"opposite_interface_owner_id\"\" pulumi-lang-yaml=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-java=\"\"oppositeInterfaceOwnerId\"\"\u003e\"opposite_interface_owner_id\"\u003c/span\u003e is specified.\n","willReplaceOnChanges":true},"oppositeRouterType":{"type":"string","description":"Another side router Type. Optional value: VRouter, VBR. It is valid when field \u003cspan pulumi-lang-nodejs=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-dotnet=\"\"OppositeInterfaceOwnerId\"\" pulumi-lang-go=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-python=\"\"opposite_interface_owner_id\"\" pulumi-lang-yaml=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-java=\"\"oppositeInterfaceOwnerId\"\"\u003e\"opposite_interface_owner_id\"\u003c/span\u003e is specified.\n\n\u003e **NOTE:** The value of \u003cspan pulumi-lang-nodejs=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-dotnet=\"\"OppositeInterfaceOwnerId\"\" pulumi-lang-go=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-python=\"\"opposite_interface_owner_id\"\" pulumi-lang-yaml=\"\"oppositeInterfaceOwnerId\"\" pulumi-lang-java=\"\"oppositeInterfaceOwnerId\"\"\u003e\"opposite_interface_owner_id\"\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"\"accountId\"\" pulumi-lang-dotnet=\"\"AccountId\"\" pulumi-lang-go=\"\"accountId\"\" pulumi-lang-python=\"\"account_id\"\" pulumi-lang-yaml=\"\"accountId\"\" pulumi-lang-java=\"\"accountId\"\"\u003e\"account_id\"\u003c/span\u003e must be main account and not be sub account.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/snatEntry:SnatEntry":{"description":"Provides a NAT Gateway Snat Entry resource.\n\n\n\nFor information about NAT Gateway Snat Entry and how to use it, see [What is Snat Entry](https://www.alibabacloud.com/help/en/nat-gateway/developer-reference/api-vpc-2016-04-28-createsnatentry-natgws).\n\n\u003e **NOTE:** Available since v1.119.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultNatGateway = new alicloud.vpc.NatGateway(\"default\", {\n    vpcId: defaultNetwork.id,\n    natGatewayName: name,\n    paymentType: \"PayAsYouGo\",\n    vswitchId: defaultSwitch.id,\n    natType: \"Enhanced\",\n});\nconst defaultEipAddress = new alicloud.ecs.EipAddress(\"default\", {addressName: name});\nconst defaultEipAssociation = new alicloud.ecs.EipAssociation(\"default\", {\n    allocationId: defaultEipAddress.id,\n    instanceId: defaultNatGateway.id,\n});\nconst defaultSnatEntry = new alicloud.vpc.SnatEntry(\"default\", {\n    snatTableId: defaultNatGateway.snatTableIds,\n    sourceVswitchId: defaultSwitch.id,\n    snatIp: defaultEipAddress.ipAddress,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_nat_gateway = alicloud.vpc.NatGateway(\"default\",\n    vpc_id=default_network.id,\n    nat_gateway_name=name,\n    payment_type=\"PayAsYouGo\",\n    vswitch_id=default_switch.id,\n    nat_type=\"Enhanced\")\ndefault_eip_address = alicloud.ecs.EipAddress(\"default\", address_name=name)\ndefault_eip_association = alicloud.ecs.EipAssociation(\"default\",\n    allocation_id=default_eip_address.id,\n    instance_id=default_nat_gateway.id)\ndefault_snat_entry = alicloud.vpc.SnatEntry(\"default\",\n    snat_table_id=default_nat_gateway.snat_table_ids,\n    source_vswitch_id=default_switch.id,\n    snat_ip=default_eip_address.ip_address)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultNatGateway = new AliCloud.Vpc.NatGateway(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        NatGatewayName = name,\n        PaymentType = \"PayAsYouGo\",\n        VswitchId = defaultSwitch.Id,\n        NatType = \"Enhanced\",\n    });\n\n    var defaultEipAddress = new AliCloud.Ecs.EipAddress(\"default\", new()\n    {\n        AddressName = name,\n    });\n\n    var defaultEipAssociation = new AliCloud.Ecs.EipAssociation(\"default\", new()\n    {\n        AllocationId = defaultEipAddress.Id,\n        InstanceId = defaultNatGateway.Id,\n    });\n\n    var defaultSnatEntry = new AliCloud.Vpc.SnatEntry(\"default\", new()\n    {\n        SnatTableId = defaultNatGateway.SnatTableIds,\n        SourceVswitchId = defaultSwitch.Id,\n        SnatIp = defaultEipAddress.IpAddress,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNatGateway, err := vpc.NewNatGateway(ctx, \"default\", \u0026vpc.NatGatewayArgs{\n\t\t\tVpcId:          defaultNetwork.ID(),\n\t\t\tNatGatewayName: pulumi.String(name),\n\t\t\tPaymentType:    pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:      defaultSwitch.ID(),\n\t\t\tNatType:        pulumi.String(\"Enhanced\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEipAddress, err := ecs.NewEipAddress(ctx, \"default\", \u0026ecs.EipAddressArgs{\n\t\t\tAddressName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEipAssociation(ctx, \"default\", \u0026ecs.EipAssociationArgs{\n\t\t\tAllocationId: defaultEipAddress.ID(),\n\t\t\tInstanceId:   defaultNatGateway.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewSnatEntry(ctx, \"default\", \u0026vpc.SnatEntryArgs{\n\t\t\tSnatTableId:     defaultNatGateway.SnatTableIds,\n\t\t\tSourceVswitchId: defaultSwitch.ID(),\n\t\t\tSnatIp:          defaultEipAddress.IpAddress,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.NatGateway;\nimport com.pulumi.alicloud.vpc.NatGatewayArgs;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAddressArgs;\nimport com.pulumi.alicloud.ecs.EipAssociation;\nimport com.pulumi.alicloud.ecs.EipAssociationArgs;\nimport com.pulumi.alicloud.vpc.SnatEntry;\nimport com.pulumi.alicloud.vpc.SnatEntryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultNatGateway = new NatGateway(\"defaultNatGateway\", NatGatewayArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .natGatewayName(name)\n            .paymentType(\"PayAsYouGo\")\n            .vswitchId(defaultSwitch.id())\n            .natType(\"Enhanced\")\n            .build());\n\n        var defaultEipAddress = new EipAddress(\"defaultEipAddress\", EipAddressArgs.builder()\n            .addressName(name)\n            .build());\n\n        var defaultEipAssociation = new EipAssociation(\"defaultEipAssociation\", EipAssociationArgs.builder()\n            .allocationId(defaultEipAddress.id())\n            .instanceId(defaultNatGateway.id())\n            .build());\n\n        var defaultSnatEntry = new SnatEntry(\"defaultSnatEntry\", SnatEntryArgs.builder()\n            .snatTableId(defaultNatGateway.snatTableIds())\n            .sourceVswitchId(defaultSwitch.id())\n            .snatIp(defaultEipAddress.ipAddress())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultNatGateway:\n    type: alicloud:vpc:NatGateway\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      natGatewayName: ${name}\n      paymentType: PayAsYouGo\n      vswitchId: ${defaultSwitch.id}\n      natType: Enhanced\n  defaultEipAddress:\n    type: alicloud:ecs:EipAddress\n    name: default\n    properties:\n      addressName: ${name}\n  defaultEipAssociation:\n    type: alicloud:ecs:EipAssociation\n    name: default\n    properties:\n      allocationId: ${defaultEipAddress.id}\n      instanceId: ${defaultNatGateway.id}\n  defaultSnatEntry:\n    type: alicloud:vpc:SnatEntry\n    name: default\n    properties:\n      snatTableId: ${defaultNatGateway.snatTableIds}\n      sourceVswitchId: ${defaultSwitch.id}\n      snatIp: ${defaultEipAddress.ipAddress}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nNAT Gateway Snat Entry can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/snatEntry:SnatEntry example \u003csnat_table_id\u003e:\u003csnat_entry_id\u003e\n```\n\n**NOTE:** Before provider version 1.37.0, NAT Gateway Snat Entry can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/snatEntry:SnatEntry example \u003csnat_entry_id\u003e\n```\n\n","properties":{"eipAffinity":{"type":"integer","description":"Specifies whether to enable EIP affinity. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. Valid values:\n"},"snatEntryId":{"type":"string","description":"The id of the snat entry on the server.\n"},"snatEntryName":{"type":"string","description":"The name of the SNAT entry. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a letter but cannot start with `http://` or `https://`.\n"},"snatIp":{"type":"string","description":"The IP of a SNAT entry. Separate multiple EIP or NAT IP addresses with commas (,). **NOTE:** From version 1.241.0, \u003cspan pulumi-lang-nodejs=\"`snatIp`\" pulumi-lang-dotnet=\"`SnatIp`\" pulumi-lang-go=\"`snatIp`\" pulumi-lang-python=\"`snat_ip`\" pulumi-lang-yaml=\"`snatIp`\" pulumi-lang-java=\"`snatIp`\"\u003e`snat_ip`\u003c/span\u003e can be modified.\n"},"snatTableId":{"type":"string","description":"The ID of the SNAT table.\n"},"sourceCidr":{"type":"string","description":"The source CIDR block specified in the SNAT entry.\n"},"sourceVswitchId":{"type":"string","description":"The ID of the vSwitch.\n"},"status":{"type":"string","description":"(Available since v1.119.1) The ID of the SNAT entry.\n"}},"required":["snatEntryId","snatIp","snatTableId","sourceCidr","sourceVswitchId","status"],"inputProperties":{"eipAffinity":{"type":"integer","description":"Specifies whether to enable EIP affinity. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. Valid values:\n"},"snatEntryName":{"type":"string","description":"The name of the SNAT entry. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a letter but cannot start with `http://` or `https://`.\n"},"snatIp":{"type":"string","description":"The IP of a SNAT entry. Separate multiple EIP or NAT IP addresses with commas (,). **NOTE:** From version 1.241.0, \u003cspan pulumi-lang-nodejs=\"`snatIp`\" pulumi-lang-dotnet=\"`SnatIp`\" pulumi-lang-go=\"`snatIp`\" pulumi-lang-python=\"`snat_ip`\" pulumi-lang-yaml=\"`snatIp`\" pulumi-lang-java=\"`snatIp`\"\u003e`snat_ip`\u003c/span\u003e can be modified.\n"},"snatTableId":{"type":"string","description":"The ID of the SNAT table.\n","willReplaceOnChanges":true},"sourceCidr":{"type":"string","description":"The source CIDR block specified in the SNAT entry.\n","willReplaceOnChanges":true},"sourceVswitchId":{"type":"string","description":"The ID of the vSwitch.\n","willReplaceOnChanges":true}},"requiredInputs":["snatIp","snatTableId"],"stateInputs":{"description":"Input properties used for looking up and filtering SnatEntry resources.\n","properties":{"eipAffinity":{"type":"integer","description":"Specifies whether to enable EIP affinity. Default value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. Valid values:\n"},"snatEntryId":{"type":"string","description":"The id of the snat entry on the server.\n"},"snatEntryName":{"type":"string","description":"The name of the SNAT entry. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length. It must start with a letter but cannot start with `http://` or `https://`.\n"},"snatIp":{"type":"string","description":"The IP of a SNAT entry. Separate multiple EIP or NAT IP addresses with commas (,). **NOTE:** From version 1.241.0, \u003cspan pulumi-lang-nodejs=\"`snatIp`\" pulumi-lang-dotnet=\"`SnatIp`\" pulumi-lang-go=\"`snatIp`\" pulumi-lang-python=\"`snat_ip`\" pulumi-lang-yaml=\"`snatIp`\" pulumi-lang-java=\"`snatIp`\"\u003e`snat_ip`\u003c/span\u003e can be modified.\n"},"snatTableId":{"type":"string","description":"The ID of the SNAT table.\n","willReplaceOnChanges":true},"sourceCidr":{"type":"string","description":"The source CIDR block specified in the SNAT entry.\n","willReplaceOnChanges":true},"sourceVswitchId":{"type":"string","description":"The ID of the vSwitch.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"(Available since v1.119.1) The ID of the SNAT entry.\n"}},"type":"object"}},"alicloud:vpc/subnet:Subnet":{"properties":{"availabilityZone":{"type":"string","deprecationMessage":"Field 'availability_zone' has been deprecated from provider version 1.119.0. New field 'zone_id' instead."},"cidrBlock":{"type":"string"},"createTime":{"type":"string"},"description":{"type":"string"},"enableIpv6":{"type":"boolean"},"ipv6CidrBlock":{"type":"string"},"ipv6CidrBlockMask":{"type":"integer"},"isDefault":{"type":"boolean"},"name":{"type":"string","deprecationMessage":"Field 'name' has been deprecated from provider version 1.119.0. New field 'vswitch_name' instead."},"status":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"}},"vpcId":{"type":"string"},"vswitchName":{"type":"string"},"zoneId":{"type":"string"}},"required":["availabilityZone","cidrBlock","createTime","ipv6CidrBlock","ipv6CidrBlockMask","name","status","vpcId","vswitchName","zoneId"],"inputProperties":{"availabilityZone":{"type":"string","deprecationMessage":"Field 'availability_zone' has been deprecated from provider version 1.119.0. New field 'zone_id' instead.","willReplaceOnChanges":true},"cidrBlock":{"type":"string","willReplaceOnChanges":true},"description":{"type":"string"},"enableIpv6":{"type":"boolean"},"ipv6CidrBlockMask":{"type":"integer"},"isDefault":{"type":"boolean"},"name":{"type":"string","deprecationMessage":"Field 'name' has been deprecated from provider version 1.119.0. New field 'vswitch_name' instead."},"tags":{"type":"object","additionalProperties":{"type":"string"}},"vpcId":{"type":"string","willReplaceOnChanges":true},"vswitchName":{"type":"string"},"zoneId":{"type":"string","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Subnet resources.\n","properties":{"availabilityZone":{"type":"string","deprecationMessage":"Field 'availability_zone' has been deprecated from provider version 1.119.0. New field 'zone_id' instead.","willReplaceOnChanges":true},"cidrBlock":{"type":"string","willReplaceOnChanges":true},"createTime":{"type":"string"},"description":{"type":"string"},"enableIpv6":{"type":"boolean"},"ipv6CidrBlock":{"type":"string"},"ipv6CidrBlockMask":{"type":"integer"},"isDefault":{"type":"boolean"},"name":{"type":"string","deprecationMessage":"Field 'name' has been deprecated from provider version 1.119.0. New field 'vswitch_name' instead."},"status":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"}},"vpcId":{"type":"string","willReplaceOnChanges":true},"vswitchName":{"type":"string"},"zoneId":{"type":"string","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"This resource has been deprecated and replaced by the Switch resource."},"alicloud:vpc/switch:Switch":{"description":"Provides a VPC Vswitch resource. ## Module Support\n\nYou can use to the existing vpc module  to create a VPC and several VSwitches one-click.\n\nFor information about VPC Vswitch and how to use it, see [What is Vswitch](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/work-with-vswitches).\n\n\u003e **NOTE:** Available since v1.0.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst foo = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst fooNetwork = new alicloud.vpc.Network(\"foo\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst fooSwitch = new alicloud.vpc.Switch(\"foo\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/21\",\n    vpcId: fooNetwork.id,\n    zoneId: foo.then(foo =\u003e foo.zones?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfoo = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nfoo_network = alicloud.vpc.Network(\"foo\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/12\")\nfoo_switch = alicloud.vpc.Switch(\"foo\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/21\",\n    vpc_id=foo_network.id,\n    zone_id=foo.zones[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var fooNetwork = new AliCloud.Vpc.Network(\"foo\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var fooSwitch = new AliCloud.Vpc.Switch(\"foo\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/21\",\n        VpcId = fooNetwork.Id,\n        ZoneId = foo.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfoo, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooNetwork, err := vpc.NewNetwork(ctx, \"foo\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewSwitch(ctx, \"foo\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tVpcId:       fooNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(foo.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var foo = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var fooNetwork = new Network(\"fooNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var fooSwitch = new Switch(\"fooSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/21\")\n            .vpcId(fooNetwork.id())\n            .zoneId(foo.zones()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  fooNetwork:\n    type: alicloud:vpc:Network\n    name: foo\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/12\n  fooSwitch:\n    type: alicloud:vpc:Switch\n    name: foo\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.16.0.0/21\n      vpcId: ${fooNetwork.id}\n      zoneId: ${foo.zones[0].id}\nvariables:\n  foo:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst foo = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst cidrBlocks = new alicloud.vpc.Ipv4CidrBlock(\"cidr_blocks\", {\n    vpcId: vpc.id,\n    secondaryCidrBlock: \"192.163.0.0/16\",\n});\nconst island_nat = new alicloud.vpc.Switch(\"island-nat\", {\n    vpcId: cidrBlocks.vpcId,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: foo.then(foo =\u003e foo.zones?.[0]?.id),\n    vswitchName: \"terraform-example\",\n    tags: {\n        BuiltBy: \"example_value\",\n        cnm_version: \"example_value\",\n        Environment: \"example_value\",\n        ManagedBy: \"example_value\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfoo = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nvpc = alicloud.vpc.Network(\"vpc\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/12\")\ncidr_blocks = alicloud.vpc.Ipv4CidrBlock(\"cidr_blocks\",\n    vpc_id=vpc.id,\n    secondary_cidr_block=\"192.163.0.0/16\")\nisland_nat = alicloud.vpc.Switch(\"island-nat\",\n    vpc_id=cidr_blocks.vpc_id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=foo.zones[0].id,\n    vswitch_name=\"terraform-example\",\n    tags={\n        \"BuiltBy\": \"example_value\",\n        \"cnm_version\": \"example_value\",\n        \"Environment\": \"example_value\",\n        \"ManagedBy\": \"example_value\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var cidrBlocks = new AliCloud.Vpc.Ipv4CidrBlock(\"cidr_blocks\", new()\n    {\n        VpcId = vpc.Id,\n        SecondaryCidrBlock = \"192.163.0.0/16\",\n    });\n\n    var island_nat = new AliCloud.Vpc.Switch(\"island-nat\", new()\n    {\n        VpcId = cidrBlocks.VpcId,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = foo.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = \"terraform-example\",\n        Tags = \n        {\n            { \"BuiltBy\", \"example_value\" },\n            { \"cnm_version\", \"example_value\" },\n            { \"Environment\", \"example_value\" },\n            { \"ManagedBy\", \"example_value\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfoo, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcidrBlocks, err := vpc.NewIpv4CidrBlock(ctx, \"cidr_blocks\", \u0026vpc.Ipv4CidrBlockArgs{\n\t\t\tVpcId:              vpc.ID(),\n\t\t\tSecondaryCidrBlock: pulumi.String(\"192.163.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewSwitch(ctx, \"island-nat\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       cidrBlocks.VpcId,\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(foo.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"BuiltBy\":     pulumi.String(\"example_value\"),\n\t\t\t\t\"cnm_version\": pulumi.String(\"example_value\"),\n\t\t\t\t\"Environment\": pulumi.String(\"example_value\"),\n\t\t\t\t\"ManagedBy\":   pulumi.String(\"example_value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Ipv4CidrBlock;\nimport com.pulumi.alicloud.vpc.Ipv4CidrBlockArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var foo = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var cidrBlocks = new Ipv4CidrBlock(\"cidrBlocks\", Ipv4CidrBlockArgs.builder()\n            .vpcId(vpc.id())\n            .secondaryCidrBlock(\"192.163.0.0/16\")\n            .build());\n\n        var island_nat = new Switch(\"island-nat\", SwitchArgs.builder()\n            .vpcId(cidrBlocks.vpcId())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(foo.zones()[0].id())\n            .vswitchName(\"terraform-example\")\n            .tags(Map.ofEntries(\n                Map.entry(\"BuiltBy\", \"example_value\"),\n                Map.entry(\"cnm_version\", \"example_value\"),\n                Map.entry(\"Environment\", \"example_value\"),\n                Map.entry(\"ManagedBy\", \"example_value\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/12\n  cidrBlocks:\n    type: alicloud:vpc:Ipv4CidrBlock\n    name: cidr_blocks\n    properties:\n      vpcId: ${vpc.id}\n      secondaryCidrBlock: 192.163.0.0/16\n  island-nat:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${cidrBlocks.vpcId}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${foo.zones[0].id}\n      vswitchName: terraform-example\n      tags:\n        BuiltBy: example_value\n        cnm_version: example_value\n        Environment: example_value\n        ManagedBy: example_value\nvariables:\n  foo:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nCreate a switch associated with the additional network segment\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst foo = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst fooNetwork = new alicloud.vpc.Network(\"foo\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst fooIpv4CidrBlock = new alicloud.vpc.Ipv4CidrBlock(\"foo\", {\n    vpcId: fooNetwork.id,\n    secondaryCidrBlock: \"192.163.0.0/16\",\n});\nconst fooSwitch = new alicloud.vpc.Switch(\"foo\", {\n    vpcId: fooIpv4CidrBlock.vpcId,\n    cidrBlock: \"192.163.0.0/24\",\n    zoneId: foo.then(foo =\u003e foo.zones?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfoo = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nfoo_network = alicloud.vpc.Network(\"foo\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/12\")\nfoo_ipv4_cidr_block = alicloud.vpc.Ipv4CidrBlock(\"foo\",\n    vpc_id=foo_network.id,\n    secondary_cidr_block=\"192.163.0.0/16\")\nfoo_switch = alicloud.vpc.Switch(\"foo\",\n    vpc_id=foo_ipv4_cidr_block.vpc_id,\n    cidr_block=\"192.163.0.0/24\",\n    zone_id=foo.zones[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var fooNetwork = new AliCloud.Vpc.Network(\"foo\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var fooIpv4CidrBlock = new AliCloud.Vpc.Ipv4CidrBlock(\"foo\", new()\n    {\n        VpcId = fooNetwork.Id,\n        SecondaryCidrBlock = \"192.163.0.0/16\",\n    });\n\n    var fooSwitch = new AliCloud.Vpc.Switch(\"foo\", new()\n    {\n        VpcId = fooIpv4CidrBlock.VpcId,\n        CidrBlock = \"192.163.0.0/24\",\n        ZoneId = foo.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfoo, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooNetwork, err := vpc.NewNetwork(ctx, \"foo\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooIpv4CidrBlock, err := vpc.NewIpv4CidrBlock(ctx, \"foo\", \u0026vpc.Ipv4CidrBlockArgs{\n\t\t\tVpcId:              fooNetwork.ID(),\n\t\t\tSecondaryCidrBlock: pulumi.String(\"192.163.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewSwitch(ctx, \"foo\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     fooIpv4CidrBlock.VpcId,\n\t\t\tCidrBlock: pulumi.String(\"192.163.0.0/24\"),\n\t\t\tZoneId:    pulumi.String(foo.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Ipv4CidrBlock;\nimport com.pulumi.alicloud.vpc.Ipv4CidrBlockArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var foo = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var fooNetwork = new Network(\"fooNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var fooIpv4CidrBlock = new Ipv4CidrBlock(\"fooIpv4CidrBlock\", Ipv4CidrBlockArgs.builder()\n            .vpcId(fooNetwork.id())\n            .secondaryCidrBlock(\"192.163.0.0/16\")\n            .build());\n\n        var fooSwitch = new Switch(\"fooSwitch\", SwitchArgs.builder()\n            .vpcId(fooIpv4CidrBlock.vpcId())\n            .cidrBlock(\"192.163.0.0/24\")\n            .zoneId(foo.zones()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  fooNetwork:\n    type: alicloud:vpc:Network\n    name: foo\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/12\n  fooIpv4CidrBlock:\n    type: alicloud:vpc:Ipv4CidrBlock\n    name: foo\n    properties:\n      vpcId: ${fooNetwork.id}\n      secondaryCidrBlock: 192.163.0.0/16\n  fooSwitch:\n    type: alicloud:vpc:Switch\n    name: foo\n    properties:\n      vpcId: ${fooIpv4CidrBlock.vpcId}\n      cidrBlock: 192.163.0.0/24\n      zoneId: ${foo.zones[0].id}\nvariables:\n  foo:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Vswitch can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/switch:Switch example \u003cid\u003e\n```\n\n","properties":{"availabilityZone":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.119.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'availability_zone' has been deprecated from provider version 1.119.0. New field 'zone_id' instead."},"cidrBlock":{"type":"string","description":"The IPv4 CIDR block of the VSwitch. **NOTE:** From version 1.233.0, if you do not set \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e, or set \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e is required.\n"},"createTime":{"type":"string","description":"The creation time of the VSwitch.\n"},"description":{"type":"string","description":"The description of VSwitch.\n"},"enableIpv6":{"type":"boolean","description":"Whether the IPv6 function is enabled in the switch. Value:\n"},"ipv6CidrBlock":{"type":"string","description":"The IPv6 CIDR block of the VSwitch.\n"},"ipv6CidrBlockMask":{"type":"integer","description":"The IPv6 CIDR block of the VSwitch.\n"},"isDefault":{"type":"boolean","description":"Specifies whether to create the default VSwitch. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.119.0. New field \u003cspan pulumi-lang-nodejs=\"`vswitchName`\" pulumi-lang-dotnet=\"`VswitchName`\" pulumi-lang-go=\"`vswitchName`\" pulumi-lang-python=\"`vswitch_name`\" pulumi-lang-yaml=\"`vswitchName`\" pulumi-lang-java=\"`vswitchName`\"\u003e`vswitch_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.119.0. New field 'vswitch_name' instead."},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of VSwitch.\n"},"vpcId":{"type":"string","description":"The VPC ID. **NOTE:** From version 1.233.0, if you do not set \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e, or set \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e is required.\n"},"vswitchName":{"type":"string","description":"The name of the VSwitch.\n"},"zoneId":{"type":"string","description":"The AZ for the VSwitch. **Note:** Required for a VPC VSwitch.\n"}},"required":["availabilityZone","cidrBlock","createTime","ipv6CidrBlock","ipv6CidrBlockMask","name","status","vpcId","vswitchName","zoneId"],"inputProperties":{"availabilityZone":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.119.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'availability_zone' has been deprecated from provider version 1.119.0. New field 'zone_id' instead.","willReplaceOnChanges":true},"cidrBlock":{"type":"string","description":"The IPv4 CIDR block of the VSwitch. **NOTE:** From version 1.233.0, if you do not set \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e, or set \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of VSwitch.\n"},"enableIpv6":{"type":"boolean","description":"Whether the IPv6 function is enabled in the switch. Value:\n"},"ipv6CidrBlockMask":{"type":"integer","description":"The IPv6 CIDR block of the VSwitch.\n"},"isDefault":{"type":"boolean","description":"Specifies whether to create the default VSwitch. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.119.0. New field \u003cspan pulumi-lang-nodejs=\"`vswitchName`\" pulumi-lang-dotnet=\"`VswitchName`\" pulumi-lang-go=\"`vswitchName`\" pulumi-lang-python=\"`vswitch_name`\" pulumi-lang-yaml=\"`vswitchName`\" pulumi-lang-java=\"`vswitchName`\"\u003e`vswitch_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.119.0. New field 'vswitch_name' instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of VSwitch.\n"},"vpcId":{"type":"string","description":"The VPC ID. **NOTE:** From version 1.233.0, if you do not set \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e, or set \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"vswitchName":{"type":"string","description":"The name of the VSwitch.\n"},"zoneId":{"type":"string","description":"The AZ for the VSwitch. **Note:** Required for a VPC VSwitch.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Switch resources.\n","properties":{"availabilityZone":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.119.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'availability_zone' has been deprecated from provider version 1.119.0. New field 'zone_id' instead.","willReplaceOnChanges":true},"cidrBlock":{"type":"string","description":"The IPv4 CIDR block of the VSwitch. **NOTE:** From version 1.233.0, if you do not set \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e, or set \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the VSwitch.\n"},"description":{"type":"string","description":"The description of VSwitch.\n"},"enableIpv6":{"type":"boolean","description":"Whether the IPv6 function is enabled in the switch. Value:\n"},"ipv6CidrBlock":{"type":"string","description":"The IPv6 CIDR block of the VSwitch.\n"},"ipv6CidrBlockMask":{"type":"integer","description":"The IPv6 CIDR block of the VSwitch.\n"},"isDefault":{"type":"boolean","description":"Specifies whether to create the default VSwitch. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.119.0. New field \u003cspan pulumi-lang-nodejs=\"`vswitchName`\" pulumi-lang-dotnet=\"`VswitchName`\" pulumi-lang-go=\"`vswitchName`\" pulumi-lang-python=\"`vswitch_name`\" pulumi-lang-yaml=\"`vswitchName`\" pulumi-lang-java=\"`vswitchName`\"\u003e`vswitch_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.119.0. New field 'vswitch_name' instead."},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of VSwitch.\n"},"vpcId":{"type":"string","description":"The VPC ID. **NOTE:** From version 1.233.0, if you do not set \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e, or set \u003cspan pulumi-lang-nodejs=\"`isDefault`\" pulumi-lang-dotnet=\"`IsDefault`\" pulumi-lang-go=\"`isDefault`\" pulumi-lang-python=\"`is_default`\" pulumi-lang-yaml=\"`isDefault`\" pulumi-lang-java=\"`isDefault`\"\u003e`is_default`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"vswitchName":{"type":"string","description":"The name of the VSwitch.\n"},"zoneId":{"type":"string","description":"The AZ for the VSwitch. **Note:** Required for a VPC VSwitch.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/trafficMirrorFilter:TrafficMirrorFilter":{"description":"Provides a VPC Traffic Mirror Filter resource. Traffic mirror filter criteria.\n\nFor information about VPC Traffic Mirror Filter and how to use it, see [What is Traffic Mirror Filter](https://www.alibabacloud.com/help/doc-detail/207513.htm).\n\n\u003e **NOTE:** Available since v1.140.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst default3iXhoa = new alicloud.resourcemanager.ResourceGroup(\"default3iXhoa\", {\n    displayName: \"testname03\",\n    resourceGroupName: name,\n});\nconst defaultdNz2qk = new alicloud.resourcemanager.ResourceGroup(\"defaultdNz2qk\", {\n    displayName: \"testname04\",\n    resourceGroupName: `${name}1`,\n});\nconst _default = new alicloud.vpc.TrafficMirrorFilter(\"default\", {\n    trafficMirrorFilterDescription: \"test\",\n    trafficMirrorFilterName: name,\n    resourceGroupId: default3iXhoa.id,\n    egressRules: [{\n        priority: 1,\n        protocol: \"TCP\",\n        action: \"accept\",\n        destinationCidrBlock: \"32.0.0.0/4\",\n        destinationPortRange: \"80/80\",\n        sourceCidrBlock: \"16.0.0.0/4\",\n        sourcePortRange: \"80/80\",\n    }],\n    ingressRules: [{\n        priority: 1,\n        protocol: \"TCP\",\n        action: \"accept\",\n        destinationCidrBlock: \"10.64.0.0/10\",\n        destinationPortRange: \"80/80\",\n        sourceCidrBlock: \"10.0.0.0/8\",\n        sourcePortRange: \"80/80\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault3i_xhoa = alicloud.resourcemanager.ResourceGroup(\"default3iXhoa\",\n    display_name=\"testname03\",\n    resource_group_name=name)\ndefaultd_nz2qk = alicloud.resourcemanager.ResourceGroup(\"defaultdNz2qk\",\n    display_name=\"testname04\",\n    resource_group_name=f\"{name}1\")\ndefault = alicloud.vpc.TrafficMirrorFilter(\"default\",\n    traffic_mirror_filter_description=\"test\",\n    traffic_mirror_filter_name=name,\n    resource_group_id=default3i_xhoa.id,\n    egress_rules=[{\n        \"priority\": 1,\n        \"protocol\": \"TCP\",\n        \"action\": \"accept\",\n        \"destination_cidr_block\": \"32.0.0.0/4\",\n        \"destination_port_range\": \"80/80\",\n        \"source_cidr_block\": \"16.0.0.0/4\",\n        \"source_port_range\": \"80/80\",\n    }],\n    ingress_rules=[{\n        \"priority\": 1,\n        \"protocol\": \"TCP\",\n        \"action\": \"accept\",\n        \"destination_cidr_block\": \"10.64.0.0/10\",\n        \"destination_port_range\": \"80/80\",\n        \"source_cidr_block\": \"10.0.0.0/8\",\n        \"source_port_range\": \"80/80\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var default3iXhoa = new AliCloud.ResourceManager.ResourceGroup(\"default3iXhoa\", new()\n    {\n        DisplayName = \"testname03\",\n        ResourceGroupName = name,\n    });\n\n    var defaultdNz2qk = new AliCloud.ResourceManager.ResourceGroup(\"defaultdNz2qk\", new()\n    {\n        DisplayName = \"testname04\",\n        ResourceGroupName = $\"{name}1\",\n    });\n\n    var @default = new AliCloud.Vpc.TrafficMirrorFilter(\"default\", new()\n    {\n        TrafficMirrorFilterDescription = \"test\",\n        TrafficMirrorFilterName = name,\n        ResourceGroupId = default3iXhoa.Id,\n        EgressRules = new[]\n        {\n            new AliCloud.Vpc.Inputs.TrafficMirrorFilterEgressRuleArgs\n            {\n                Priority = 1,\n                Protocol = \"TCP\",\n                Action = \"accept\",\n                DestinationCidrBlock = \"32.0.0.0/4\",\n                DestinationPortRange = \"80/80\",\n                SourceCidrBlock = \"16.0.0.0/4\",\n                SourcePortRange = \"80/80\",\n            },\n        },\n        IngressRules = new[]\n        {\n            new AliCloud.Vpc.Inputs.TrafficMirrorFilterIngressRuleArgs\n            {\n                Priority = 1,\n                Protocol = \"TCP\",\n                Action = \"accept\",\n                DestinationCidrBlock = \"10.64.0.0/10\",\n                DestinationPortRange = \"80/80\",\n                SourceCidrBlock = \"10.0.0.0/8\",\n                SourcePortRange = \"80/80\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefault3iXhoa, err := resourcemanager.NewResourceGroup(ctx, \"default3iXhoa\", \u0026resourcemanager.ResourceGroupArgs{\n\t\t\tDisplayName:       pulumi.String(\"testname03\"),\n\t\t\tResourceGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resourcemanager.NewResourceGroup(ctx, \"defaultdNz2qk\", \u0026resourcemanager.ResourceGroupArgs{\n\t\t\tDisplayName:       pulumi.String(\"testname04\"),\n\t\t\tResourceGroupName: pulumi.Sprintf(\"%v1\", name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewTrafficMirrorFilter(ctx, \"default\", \u0026vpc.TrafficMirrorFilterArgs{\n\t\t\tTrafficMirrorFilterDescription: pulumi.String(\"test\"),\n\t\t\tTrafficMirrorFilterName:        pulumi.String(name),\n\t\t\tResourceGroupId:                default3iXhoa.ID(),\n\t\t\tEgressRules: vpc.TrafficMirrorFilterEgressRuleTypeArray{\n\t\t\t\t\u0026vpc.TrafficMirrorFilterEgressRuleTypeArgs{\n\t\t\t\t\tPriority:             pulumi.Int(1),\n\t\t\t\t\tProtocol:             pulumi.String(\"TCP\"),\n\t\t\t\t\tAction:               pulumi.String(\"accept\"),\n\t\t\t\t\tDestinationCidrBlock: pulumi.String(\"32.0.0.0/4\"),\n\t\t\t\t\tDestinationPortRange: pulumi.String(\"80/80\"),\n\t\t\t\t\tSourceCidrBlock:      pulumi.String(\"16.0.0.0/4\"),\n\t\t\t\t\tSourcePortRange:      pulumi.String(\"80/80\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tIngressRules: vpc.TrafficMirrorFilterIngressRuleTypeArray{\n\t\t\t\t\u0026vpc.TrafficMirrorFilterIngressRuleTypeArgs{\n\t\t\t\t\tPriority:             pulumi.Int(1),\n\t\t\t\t\tProtocol:             pulumi.String(\"TCP\"),\n\t\t\t\t\tAction:               pulumi.String(\"accept\"),\n\t\t\t\t\tDestinationCidrBlock: pulumi.String(\"10.64.0.0/10\"),\n\t\t\t\t\tDestinationPortRange: pulumi.String(\"80/80\"),\n\t\t\t\t\tSourceCidrBlock:      pulumi.String(\"10.0.0.0/8\"),\n\t\t\t\t\tSourcePortRange:      pulumi.String(\"80/80\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourceGroup;\nimport com.pulumi.alicloud.resourcemanager.ResourceGroupArgs;\nimport com.pulumi.alicloud.vpc.TrafficMirrorFilter;\nimport com.pulumi.alicloud.vpc.TrafficMirrorFilterArgs;\nimport com.pulumi.alicloud.vpc.inputs.TrafficMirrorFilterEgressRuleArgs;\nimport com.pulumi.alicloud.vpc.inputs.TrafficMirrorFilterIngressRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default3iXhoa = new ResourceGroup(\"default3iXhoa\", ResourceGroupArgs.builder()\n            .displayName(\"testname03\")\n            .resourceGroupName(name)\n            .build());\n\n        var defaultdNz2qk = new ResourceGroup(\"defaultdNz2qk\", ResourceGroupArgs.builder()\n            .displayName(\"testname04\")\n            .resourceGroupName(String.format(\"%s1\", name))\n            .build());\n\n        var default_ = new TrafficMirrorFilter(\"default\", TrafficMirrorFilterArgs.builder()\n            .trafficMirrorFilterDescription(\"test\")\n            .trafficMirrorFilterName(name)\n            .resourceGroupId(default3iXhoa.id())\n            .egressRules(TrafficMirrorFilterEgressRuleArgs.builder()\n                .priority(1)\n                .protocol(\"TCP\")\n                .action(\"accept\")\n                .destinationCidrBlock(\"32.0.0.0/4\")\n                .destinationPortRange(\"80/80\")\n                .sourceCidrBlock(\"16.0.0.0/4\")\n                .sourcePortRange(\"80/80\")\n                .build())\n            .ingressRules(TrafficMirrorFilterIngressRuleArgs.builder()\n                .priority(1)\n                .protocol(\"TCP\")\n                .action(\"accept\")\n                .destinationCidrBlock(\"10.64.0.0/10\")\n                .destinationPortRange(\"80/80\")\n                .sourceCidrBlock(\"10.0.0.0/8\")\n                .sourcePortRange(\"80/80\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default3iXhoa:\n    type: alicloud:resourcemanager:ResourceGroup\n    properties:\n      displayName: testname03\n      resourceGroupName: ${name}\n  defaultdNz2qk:\n    type: alicloud:resourcemanager:ResourceGroup\n    properties:\n      displayName: testname04\n      resourceGroupName: ${name}1\n  default:\n    type: alicloud:vpc:TrafficMirrorFilter\n    properties:\n      trafficMirrorFilterDescription: test\n      trafficMirrorFilterName: ${name}\n      resourceGroupId: ${default3iXhoa.id}\n      egressRules:\n        - priority: 1\n          protocol: TCP\n          action: accept\n          destinationCidrBlock: 32.0.0.0/4\n          destinationPortRange: 80/80\n          sourceCidrBlock: 16.0.0.0/4\n          sourcePortRange: 80/80\n      ingressRules:\n        - priority: 1\n          protocol: TCP\n          action: accept\n          destinationCidrBlock: 10.64.0.0/10\n          destinationPortRange: 80/80\n          sourceCidrBlock: 10.0.0.0/8\n          sourcePortRange: 80/80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Traffic Mirror Filter can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/trafficMirrorFilter:TrafficMirrorFilter example \u003cid\u003e\n```\n\n","properties":{"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\n- **true**: The check request is sent without creating traffic Image filter conditions. Check items include whether required parameters, request format, and business restrictions are filled in. If the check does not pass, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.\n- **false** (default): Sends a normal request, returns a 2xx HTTP status code after passing the check, and directly creates a filter condition.\n"},"egressRules":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/TrafficMirrorFilterEgressRule:TrafficMirrorFilterEgressRule"},"description":"Information about the outbound rule. See the following `Block EgressRules`.\n"},"ingressRules":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/TrafficMirrorFilterIngressRule:TrafficMirrorFilterIngressRule"},"description":"Inward direction rule information. See the following `Block IngressRules`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the VPC belongs.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of this resource.\n"},"trafficMirrorFilterDescription":{"type":"string","description":"The description of the TrafficMirrorFilter.\n"},"trafficMirrorFilterName":{"type":"string","description":"The name of the TrafficMirrorFilter.\n"}},"required":["egressRules","ingressRules","resourceGroupId","status"],"inputProperties":{"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\n- **true**: The check request is sent without creating traffic Image filter conditions. Check items include whether required parameters, request format, and business restrictions are filled in. If the check does not pass, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.\n- **false** (default): Sends a normal request, returns a 2xx HTTP status code after passing the check, and directly creates a filter condition.\n"},"egressRules":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/TrafficMirrorFilterEgressRule:TrafficMirrorFilterEgressRule"},"description":"Information about the outbound rule. See the following `Block EgressRules`.\n","willReplaceOnChanges":true},"ingressRules":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/TrafficMirrorFilterIngressRule:TrafficMirrorFilterIngressRule"},"description":"Inward direction rule information. See the following `Block IngressRules`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the VPC belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of this resource.\n"},"trafficMirrorFilterDescription":{"type":"string","description":"The description of the TrafficMirrorFilter.\n"},"trafficMirrorFilterName":{"type":"string","description":"The name of the TrafficMirrorFilter.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering TrafficMirrorFilter resources.\n","properties":{"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value:\n- **true**: The check request is sent without creating traffic Image filter conditions. Check items include whether required parameters, request format, and business restrictions are filled in. If the check does not pass, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.\n- **false** (default): Sends a normal request, returns a 2xx HTTP status code after passing the check, and directly creates a filter condition.\n"},"egressRules":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/TrafficMirrorFilterEgressRule:TrafficMirrorFilterEgressRule"},"description":"Information about the outbound rule. See the following `Block EgressRules`.\n","willReplaceOnChanges":true},"ingressRules":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/TrafficMirrorFilterIngressRule:TrafficMirrorFilterIngressRule"},"description":"Inward direction rule information. See the following `Block IngressRules`.\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the VPC belongs.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of this resource.\n"},"trafficMirrorFilterDescription":{"type":"string","description":"The description of the TrafficMirrorFilter.\n"},"trafficMirrorFilterName":{"type":"string","description":"The name of the TrafficMirrorFilter.\n"}},"type":"object"}},"alicloud:vpc/trafficMirrorFilterEgressRule:TrafficMirrorFilterEgressRule":{"description":"Provides a VPC Traffic Mirror Filter Egress Rule resource. \n\nFor information about VPC Traffic Mirror Filter Egress Rule and how to use it, see [What is Traffic Mirror Filter Egress Rule](https://www.alibabacloud.com/help/doc-detail/261357.htm).\n\n\u003e **NOTE:** Available since v1.140.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.vpc.TrafficMirrorFilter(\"example\", {trafficMirrorFilterName: \"example_value\"});\nconst _default = new alicloud.vpc.TrafficMirrorFilterEgressRule(\"default\", {\n    action: \"drop\",\n    priority: 2,\n    sourceCidrBlock: \"10.0.0.0/11\",\n    destinationCidrBlock: \"10.0.0.0/12\",\n    trafficMirrorFilterId: example.id,\n    protocol: \"ALL\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.vpc.TrafficMirrorFilter(\"example\", traffic_mirror_filter_name=\"example_value\")\ndefault = alicloud.vpc.TrafficMirrorFilterEgressRule(\"default\",\n    action=\"drop\",\n    priority=2,\n    source_cidr_block=\"10.0.0.0/11\",\n    destination_cidr_block=\"10.0.0.0/12\",\n    traffic_mirror_filter_id=example.id,\n    protocol=\"ALL\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Vpc.TrafficMirrorFilter(\"example\", new()\n    {\n        TrafficMirrorFilterName = \"example_value\",\n    });\n\n    var @default = new AliCloud.Vpc.TrafficMirrorFilterEgressRule(\"default\", new()\n    {\n        Action = \"drop\",\n        Priority = 2,\n        SourceCidrBlock = \"10.0.0.0/11\",\n        DestinationCidrBlock = \"10.0.0.0/12\",\n        TrafficMirrorFilterId = example.Id,\n        Protocol = \"ALL\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := vpc.NewTrafficMirrorFilter(ctx, \"example\", \u0026vpc.TrafficMirrorFilterArgs{\n\t\t\tTrafficMirrorFilterName: pulumi.String(\"example_value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewTrafficMirrorFilterEgressRule(ctx, \"default\", \u0026vpc.TrafficMirrorFilterEgressRuleArgs{\n\t\t\tAction:                pulumi.String(\"drop\"),\n\t\t\tPriority:              pulumi.Int(2),\n\t\t\tSourceCidrBlock:       pulumi.String(\"10.0.0.0/11\"),\n\t\t\tDestinationCidrBlock:  pulumi.String(\"10.0.0.0/12\"),\n\t\t\tTrafficMirrorFilterId: example.ID(),\n\t\t\tProtocol:              pulumi.String(\"ALL\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.TrafficMirrorFilter;\nimport com.pulumi.alicloud.vpc.TrafficMirrorFilterArgs;\nimport com.pulumi.alicloud.vpc.TrafficMirrorFilterEgressRule;\nimport com.pulumi.alicloud.vpc.TrafficMirrorFilterEgressRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new TrafficMirrorFilter(\"example\", TrafficMirrorFilterArgs.builder()\n            .trafficMirrorFilterName(\"example_value\")\n            .build());\n\n        var default_ = new TrafficMirrorFilterEgressRule(\"default\", TrafficMirrorFilterEgressRuleArgs.builder()\n            .action(\"drop\")\n            .priority(2)\n            .sourceCidrBlock(\"10.0.0.0/11\")\n            .destinationCidrBlock(\"10.0.0.0/12\")\n            .trafficMirrorFilterId(example.id())\n            .protocol(\"ALL\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:vpc:TrafficMirrorFilter\n    properties:\n      trafficMirrorFilterName: example_value\n  default:\n    type: alicloud:vpc:TrafficMirrorFilterEgressRule\n    properties:\n      action: drop\n      priority: '2'\n      sourceCidrBlock: 10.0.0.0/11\n      destinationCidrBlock: 10.0.0.0/12\n      trafficMirrorFilterId: ${example.id}\n      protocol: ALL\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Traffic Mirror Filter Egress Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/trafficMirrorFilterEgressRule:TrafficMirrorFilterEgressRule example \u003ctraffic_mirror_filter_id\u003e:\u003ctraffic_mirror_filter_egress_rule_id\u003e\n```\n\n","properties":{"action":{"type":"string","description":"The collection policy of the inbound rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e: collects network traffic. \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e: does not collect network traffic.\n"},"destinationCidrBlock":{"type":"string","description":"The destination CIDR block of the outbound traffic.\n"},"destinationPortRange":{"type":"string","description":"The destination CIDR block of the outbound traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. Separate the first port and last port with a forward slash (/), for example, `1/200` or `80/80`. A value of `-1/-1` indicates that all ports are available. Therefore, do not set the value to `-1/-1`. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `ICMP`, this parameter is invalid.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck this request only. Value:\n- **true**: sends a check request and does not create inbound or outbound rules. Check items include whether required parameters are filled in, request format, and restrictions. If the check fails, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.\n- **false** (default): Sends a normal request and directly creates an inbound or outbound direction rule after checking.\n"},"priority":{"type":"integer","description":"The priority of the inbound rule. A smaller value indicates a higher priority. The maximum value is \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e, which indicates that you can configure at most 10 inbound rules for a filter.\n"},"protocol":{"type":"string","description":"The transport protocol used by outbound traffic that needs to be mirrored. Valid values: `ALL`, `ICMP`, `TCP`, `UDP`.\n"},"ruleAction":{"type":"string","description":". Field 'rule_action' has been deprecated from provider version 1.211.0. New field 'action' instead.\n","deprecationMessage":"Field 'rule_action' has been deprecated since provider version 1.211.0. New field 'action' instead."},"sourceCidrBlock":{"type":"string","description":"The source CIDR block of the outbound traffic.\n"},"sourcePortRange":{"type":"string","description":"The source port range of the outbound traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. Separate the first port and last port with a forward slash (/), for example, `1/200` or `80/80`. A value of `-1/-1` indicates that all ports are available. Therefore, do not set the value to `-1/-1`. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `ICMP`, this parameter is invalid.\n"},"status":{"type":"string","description":"The state of the inbound rule. `Creating`, `Created`, `Modifying` and `Deleting`.\n"},"trafficMirrorFilterEgressRuleId":{"type":"string","description":"The ID of the outbound rule.\n"},"trafficMirrorFilterId":{"type":"string","description":"The ID of the filter.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["action","destinationCidrBlock","destinationPortRange","priority","protocol","ruleAction","sourceCidrBlock","sourcePortRange","status","trafficMirrorFilterEgressRuleId","trafficMirrorFilterId"],"inputProperties":{"action":{"type":"string","description":"The collection policy of the inbound rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e: collects network traffic. \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e: does not collect network traffic.\n"},"destinationCidrBlock":{"type":"string","description":"The destination CIDR block of the outbound traffic.\n"},"destinationPortRange":{"type":"string","description":"The destination CIDR block of the outbound traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. Separate the first port and last port with a forward slash (/), for example, `1/200` or `80/80`. A value of `-1/-1` indicates that all ports are available. Therefore, do not set the value to `-1/-1`. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `ICMP`, this parameter is invalid.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck this request only. Value:\n- **true**: sends a check request and does not create inbound or outbound rules. Check items include whether required parameters are filled in, request format, and restrictions. If the check fails, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.\n- **false** (default): Sends a normal request and directly creates an inbound or outbound direction rule after checking.\n"},"priority":{"type":"integer","description":"The priority of the inbound rule. A smaller value indicates a higher priority. The maximum value is \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e, which indicates that you can configure at most 10 inbound rules for a filter.\n"},"protocol":{"type":"string","description":"The transport protocol used by outbound traffic that needs to be mirrored. Valid values: `ALL`, `ICMP`, `TCP`, `UDP`.\n"},"ruleAction":{"type":"string","description":". Field 'rule_action' has been deprecated from provider version 1.211.0. New field 'action' instead.\n","deprecationMessage":"Field 'rule_action' has been deprecated since provider version 1.211.0. New field 'action' instead."},"sourceCidrBlock":{"type":"string","description":"The source CIDR block of the outbound traffic.\n"},"sourcePortRange":{"type":"string","description":"The source port range of the outbound traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. Separate the first port and last port with a forward slash (/), for example, `1/200` or `80/80`. A value of `-1/-1` indicates that all ports are available. Therefore, do not set the value to `-1/-1`. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `ICMP`, this parameter is invalid.\n"},"trafficMirrorFilterId":{"type":"string","description":"The ID of the filter.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"requiredInputs":["destinationCidrBlock","priority","protocol","sourceCidrBlock","trafficMirrorFilterId"],"stateInputs":{"description":"Input properties used for looking up and filtering TrafficMirrorFilterEgressRule resources.\n","properties":{"action":{"type":"string","description":"The collection policy of the inbound rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e: collects network traffic. \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e: does not collect network traffic.\n"},"destinationCidrBlock":{"type":"string","description":"The destination CIDR block of the outbound traffic.\n"},"destinationPortRange":{"type":"string","description":"The destination CIDR block of the outbound traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. Separate the first port and last port with a forward slash (/), for example, `1/200` or `80/80`. A value of `-1/-1` indicates that all ports are available. Therefore, do not set the value to `-1/-1`. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `ICMP`, this parameter is invalid.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck this request only. Value:\n- **true**: sends a check request and does not create inbound or outbound rules. Check items include whether required parameters are filled in, request format, and restrictions. If the check fails, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.\n- **false** (default): Sends a normal request and directly creates an inbound or outbound direction rule after checking.\n"},"priority":{"type":"integer","description":"The priority of the inbound rule. A smaller value indicates a higher priority. The maximum value is \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e, which indicates that you can configure at most 10 inbound rules for a filter.\n"},"protocol":{"type":"string","description":"The transport protocol used by outbound traffic that needs to be mirrored. Valid values: `ALL`, `ICMP`, `TCP`, `UDP`.\n"},"ruleAction":{"type":"string","description":". Field 'rule_action' has been deprecated from provider version 1.211.0. New field 'action' instead.\n","deprecationMessage":"Field 'rule_action' has been deprecated since provider version 1.211.0. New field 'action' instead."},"sourceCidrBlock":{"type":"string","description":"The source CIDR block of the outbound traffic.\n"},"sourcePortRange":{"type":"string","description":"The source port range of the outbound traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. Separate the first port and last port with a forward slash (/), for example, `1/200` or `80/80`. A value of `-1/-1` indicates that all ports are available. Therefore, do not set the value to `-1/-1`. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `ICMP`, this parameter is invalid.\n"},"status":{"type":"string","description":"The state of the inbound rule. `Creating`, `Created`, `Modifying` and `Deleting`.\n"},"trafficMirrorFilterEgressRuleId":{"type":"string","description":"The ID of the outbound rule.\n"},"trafficMirrorFilterId":{"type":"string","description":"The ID of the filter.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/trafficMirrorFilterIngressRule:TrafficMirrorFilterIngressRule":{"description":"Provides a VPC Traffic Mirror Filter Ingress Rule resource. Traffic mirror entry rule.\n\nFor information about VPC Traffic Mirror Filter Ingress Rule and how to use it, see [What is Traffic Mirror Filter Ingress Rule](https://www.alibabacloud.com/help/doc-detail/261357.htm).\n\n\u003e **NOTE:** Available since v1.141.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.vpc.TrafficMirrorFilter(\"example\", {trafficMirrorFilterName: \"example_value\"});\nconst exampleTrafficMirrorFilterIngressRule = new alicloud.vpc.TrafficMirrorFilterIngressRule(\"example\", {\n    trafficMirrorFilterId: example.id,\n    priority: 1,\n    action: \"accept\",\n    protocol: \"UDP\",\n    destinationCidrBlock: \"10.0.0.0/24\",\n    sourceCidrBlock: \"10.0.0.0/24\",\n    destinationPortRange: \"1/120\",\n    sourcePortRange: \"1/120\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.vpc.TrafficMirrorFilter(\"example\", traffic_mirror_filter_name=\"example_value\")\nexample_traffic_mirror_filter_ingress_rule = alicloud.vpc.TrafficMirrorFilterIngressRule(\"example\",\n    traffic_mirror_filter_id=example.id,\n    priority=1,\n    action=\"accept\",\n    protocol=\"UDP\",\n    destination_cidr_block=\"10.0.0.0/24\",\n    source_cidr_block=\"10.0.0.0/24\",\n    destination_port_range=\"1/120\",\n    source_port_range=\"1/120\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Vpc.TrafficMirrorFilter(\"example\", new()\n    {\n        TrafficMirrorFilterName = \"example_value\",\n    });\n\n    var exampleTrafficMirrorFilterIngressRule = new AliCloud.Vpc.TrafficMirrorFilterIngressRule(\"example\", new()\n    {\n        TrafficMirrorFilterId = example.Id,\n        Priority = 1,\n        Action = \"accept\",\n        Protocol = \"UDP\",\n        DestinationCidrBlock = \"10.0.0.0/24\",\n        SourceCidrBlock = \"10.0.0.0/24\",\n        DestinationPortRange = \"1/120\",\n        SourcePortRange = \"1/120\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := vpc.NewTrafficMirrorFilter(ctx, \"example\", \u0026vpc.TrafficMirrorFilterArgs{\n\t\t\tTrafficMirrorFilterName: pulumi.String(\"example_value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewTrafficMirrorFilterIngressRule(ctx, \"example\", \u0026vpc.TrafficMirrorFilterIngressRuleArgs{\n\t\t\tTrafficMirrorFilterId: example.ID(),\n\t\t\tPriority:              pulumi.Int(1),\n\t\t\tAction:                pulumi.String(\"accept\"),\n\t\t\tProtocol:              pulumi.String(\"UDP\"),\n\t\t\tDestinationCidrBlock:  pulumi.String(\"10.0.0.0/24\"),\n\t\t\tSourceCidrBlock:       pulumi.String(\"10.0.0.0/24\"),\n\t\t\tDestinationPortRange:  pulumi.String(\"1/120\"),\n\t\t\tSourcePortRange:       pulumi.String(\"1/120\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.TrafficMirrorFilter;\nimport com.pulumi.alicloud.vpc.TrafficMirrorFilterArgs;\nimport com.pulumi.alicloud.vpc.TrafficMirrorFilterIngressRule;\nimport com.pulumi.alicloud.vpc.TrafficMirrorFilterIngressRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new TrafficMirrorFilter(\"example\", TrafficMirrorFilterArgs.builder()\n            .trafficMirrorFilterName(\"example_value\")\n            .build());\n\n        var exampleTrafficMirrorFilterIngressRule = new TrafficMirrorFilterIngressRule(\"exampleTrafficMirrorFilterIngressRule\", TrafficMirrorFilterIngressRuleArgs.builder()\n            .trafficMirrorFilterId(example.id())\n            .priority(1)\n            .action(\"accept\")\n            .protocol(\"UDP\")\n            .destinationCidrBlock(\"10.0.0.0/24\")\n            .sourceCidrBlock(\"10.0.0.0/24\")\n            .destinationPortRange(\"1/120\")\n            .sourcePortRange(\"1/120\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:vpc:TrafficMirrorFilter\n    properties:\n      trafficMirrorFilterName: example_value\n  exampleTrafficMirrorFilterIngressRule:\n    type: alicloud:vpc:TrafficMirrorFilterIngressRule\n    name: example\n    properties:\n      trafficMirrorFilterId: ${example.id}\n      priority: '1'\n      action: accept\n      protocol: UDP\n      destinationCidrBlock: 10.0.0.0/24\n      sourceCidrBlock: 10.0.0.0/24\n      destinationPortRange: 1/120\n      sourcePortRange: 1/120\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Traffic Mirror Filter Ingress Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/trafficMirrorFilterIngressRule:TrafficMirrorFilterIngressRule example \u003ctraffic_mirror_filter_id\u003e:\u003ctraffic_mirror_filter_ingress_rule_id\u003e\n```\n\n","properties":{"action":{"type":"string","description":"The collection policy of the inbound rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e: collects network traffic. \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e: does not collect network traffic.\n"},"destinationCidrBlock":{"type":"string","description":"The destination CIDR block of the inbound traffic.\n"},"destinationPortRange":{"type":"string","description":"The destination CIDR block of the inbound traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. Separate the first port and last port with a forward slash (/), for example, `1/200` or `80/80`. A value of `-1/-1` indicates that all ports are available. Therefore, do not set the value to `-1/-1`. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `ICMP`, this parameter is invalid.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck this request only. Value:\n- **true**: sends a check request and does not create inbound or outbound rules. Check items include whether required parameters are filled in, request format, and restrictions. If the check fails, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.\n- **false** (default): Sends a normal request and directly creates an inbound or outbound direction rule after checking.\n"},"priority":{"type":"integer","description":"The priority of the inbound rule. A smaller value indicates a higher priority. The maximum value is \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e, which indicates that you can configure at most 10 inbound rules for a filter.\n"},"protocol":{"type":"string","description":"The transport protocol used by inbound traffic that needs to be mirrored. Valid values: `ALL`, `ICMP`, `TCP`, `UDP`.\n"},"ruleAction":{"type":"string","description":". Field 'rule_action' has been deprecated from provider version 1.211.0. New field 'action' instead.\n","deprecationMessage":"Field 'rule_action' has been deprecated since provider version 1.211.0. New field 'action' instead."},"sourceCidrBlock":{"type":"string","description":"The source CIDR block of the inbound traffic.\n"},"sourcePortRange":{"type":"string","description":"The source port range of the inbound traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. Separate the first port and last port with a forward slash (/), for example, `1/200` or `80/80`. A value of `-1/-1` indicates that all ports are available. Therefore, do not set the value to `-1/-1`. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `ICMP`, this parameter is invalid.\n"},"status":{"type":"string","description":"The state of the inbound rule. `Creating`, `Created`, `Modifying` and `Deleting`.\n"},"trafficMirrorFilterId":{"type":"string","description":"The ID of the filter.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"},"trafficMirrorFilterIngressRuleId":{"type":"string","description":"The ID of the outbound rule.\n"}},"required":["action","destinationCidrBlock","destinationPortRange","priority","protocol","ruleAction","sourceCidrBlock","sourcePortRange","status","trafficMirrorFilterId","trafficMirrorFilterIngressRuleId"],"inputProperties":{"action":{"type":"string","description":"The collection policy of the inbound rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e: collects network traffic. \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e: does not collect network traffic.\n"},"destinationCidrBlock":{"type":"string","description":"The destination CIDR block of the inbound traffic.\n"},"destinationPortRange":{"type":"string","description":"The destination CIDR block of the inbound traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. Separate the first port and last port with a forward slash (/), for example, `1/200` or `80/80`. A value of `-1/-1` indicates that all ports are available. Therefore, do not set the value to `-1/-1`. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `ICMP`, this parameter is invalid.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck this request only. Value:\n- **true**: sends a check request and does not create inbound or outbound rules. Check items include whether required parameters are filled in, request format, and restrictions. If the check fails, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.\n- **false** (default): Sends a normal request and directly creates an inbound or outbound direction rule after checking.\n"},"priority":{"type":"integer","description":"The priority of the inbound rule. A smaller value indicates a higher priority. The maximum value is \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e, which indicates that you can configure at most 10 inbound rules for a filter.\n"},"protocol":{"type":"string","description":"The transport protocol used by inbound traffic that needs to be mirrored. Valid values: `ALL`, `ICMP`, `TCP`, `UDP`.\n"},"ruleAction":{"type":"string","description":". Field 'rule_action' has been deprecated from provider version 1.211.0. New field 'action' instead.\n","deprecationMessage":"Field 'rule_action' has been deprecated since provider version 1.211.0. New field 'action' instead."},"sourceCidrBlock":{"type":"string","description":"The source CIDR block of the inbound traffic.\n"},"sourcePortRange":{"type":"string","description":"The source port range of the inbound traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. Separate the first port and last port with a forward slash (/), for example, `1/200` or `80/80`. A value of `-1/-1` indicates that all ports are available. Therefore, do not set the value to `-1/-1`. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `ICMP`, this parameter is invalid.\n"},"trafficMirrorFilterId":{"type":"string","description":"The ID of the filter.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true}},"requiredInputs":["destinationCidrBlock","priority","protocol","sourceCidrBlock","trafficMirrorFilterId"],"stateInputs":{"description":"Input properties used for looking up and filtering TrafficMirrorFilterIngressRule resources.\n","properties":{"action":{"type":"string","description":"The collection policy of the inbound rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e: collects network traffic. \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e: does not collect network traffic.\n"},"destinationCidrBlock":{"type":"string","description":"The destination CIDR block of the inbound traffic.\n"},"destinationPortRange":{"type":"string","description":"The destination CIDR block of the inbound traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. Separate the first port and last port with a forward slash (/), for example, `1/200` or `80/80`. A value of `-1/-1` indicates that all ports are available. Therefore, do not set the value to `-1/-1`. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `ICMP`, this parameter is invalid.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck this request only. Value:\n- **true**: sends a check request and does not create inbound or outbound rules. Check items include whether required parameters are filled in, request format, and restrictions. If the check fails, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.\n- **false** (default): Sends a normal request and directly creates an inbound or outbound direction rule after checking.\n"},"priority":{"type":"integer","description":"The priority of the inbound rule. A smaller value indicates a higher priority. The maximum value is \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e, which indicates that you can configure at most 10 inbound rules for a filter.\n"},"protocol":{"type":"string","description":"The transport protocol used by inbound traffic that needs to be mirrored. Valid values: `ALL`, `ICMP`, `TCP`, `UDP`.\n"},"ruleAction":{"type":"string","description":". Field 'rule_action' has been deprecated from provider version 1.211.0. New field 'action' instead.\n","deprecationMessage":"Field 'rule_action' has been deprecated since provider version 1.211.0. New field 'action' instead."},"sourceCidrBlock":{"type":"string","description":"The source CIDR block of the inbound traffic.\n"},"sourcePortRange":{"type":"string","description":"The source port range of the inbound traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65535`\" pulumi-lang-dotnet=\"`65535`\" pulumi-lang-go=\"`65535`\" pulumi-lang-python=\"`65535`\" pulumi-lang-yaml=\"`65535`\" pulumi-lang-java=\"`65535`\"\u003e`65535`\u003c/span\u003e. Separate the first port and last port with a forward slash (/), for example, `1/200` or `80/80`. A value of `-1/-1` indicates that all ports are available. Therefore, do not set the value to `-1/-1`. **NOTE:** When \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e is `ICMP`, this parameter is invalid.\n"},"status":{"type":"string","description":"The state of the inbound rule. `Creating`, `Created`, `Modifying` and `Deleting`.\n"},"trafficMirrorFilterId":{"type":"string","description":"The ID of the filter.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n","willReplaceOnChanges":true},"trafficMirrorFilterIngressRuleId":{"type":"string","description":"The ID of the outbound rule.\n"}},"type":"object"}},"alicloud:vpc/trafficMirrorSession:TrafficMirrorSession":{"description":"Provides a VPC Traffic Mirror Session resource. Traffic mirroring session.\n\nFor information about VPC Traffic Mirror Session and how to use it, see [What is Traffic Mirror Session](https://www.alibabacloud.com/help/en/doc-detail/261364.htm).\n\n\u003e **NOTE:** Available since v1.142.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.ecs.getInstanceTypes({\n    instanceTypeFamily: \"ecs.g7\",\n});\nconst defaultGetZones = _default.then(_default =\u003e alicloud.getZones({\n    availableResourceCreation: \"Instance\",\n    availableInstanceType: _default.instanceTypes?.[0]?.id,\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    description: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultInstance: alicloud.ecs.Instance[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultInstance.push(new alicloud.ecs.Instance(`default-${range.value}`, {\n        availabilityZone: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n        instanceName: name,\n        hostName: name,\n        imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n        instanceType: _default.then(_default =\u003e _default.instanceTypes?.[0]?.id),\n        securityGroups: [defaultSecurityGroup.id],\n        vswitchId: defaultSwitch.id,\n        systemDiskCategory: \"cloud_essd\",\n    }));\n}\nconst defaultEcsNetworkInterface: alicloud.ecs.EcsNetworkInterface[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultEcsNetworkInterface.push(new alicloud.ecs.EcsNetworkInterface(`default-${range.value}`, {\n        networkInterfaceName: name,\n        vswitchId: defaultSwitch.id,\n        securityGroupIds: [defaultSecurityGroup.id],\n    }));\n}\nconst defaultEcsNetworkInterfaceAttachment: alicloud.ecs.EcsNetworkInterfaceAttachment[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultEcsNetworkInterfaceAttachment.push(new alicloud.ecs.EcsNetworkInterfaceAttachment(`default-${range.value}`, {\n        instanceId: defaultInstance[range.value].id,\n        networkInterfaceId: defaultEcsNetworkInterface[range.value].id,\n    }));\n}\nconst defaultTrafficMirrorFilter = new alicloud.vpc.TrafficMirrorFilter(\"default\", {\n    trafficMirrorFilterName: name,\n    trafficMirrorFilterDescription: name,\n});\nconst defaultTrafficMirrorSession = new alicloud.vpc.TrafficMirrorSession(\"default\", {\n    priority: 1,\n    virtualNetworkId: 10,\n    trafficMirrorSessionDescription: name,\n    trafficMirrorSessionName: name,\n    trafficMirrorTargetId: defaultEcsNetworkInterfaceAttachment[0].networkInterfaceId,\n    trafficMirrorSourceIds: [defaultEcsNetworkInterfaceAttachment[1].networkInterfaceId],\n    trafficMirrorFilterId: defaultTrafficMirrorFilter.id,\n    trafficMirrorTargetType: \"NetworkInterface\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.ecs.get_instance_types(instance_type_family=\"ecs.g7\")\ndefault_get_zones = alicloud.get_zones(available_resource_creation=\"Instance\",\n    available_instance_type=default.instance_types[0].id)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default_get_zones.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    description=name,\n    vpc_id=default_network.id)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_instance = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_instance.append(alicloud.ecs.Instance(f\"default-{range['value']}\",\n        availability_zone=default_get_zones.zones[0].id,\n        instance_name=name,\n        host_name=name,\n        image_id=default_get_images.images[0].id,\n        instance_type=default.instance_types[0].id,\n        security_groups=[default_security_group.id],\n        vswitch_id=default_switch.id,\n        system_disk_category=\"cloud_essd\"))\ndefault_ecs_network_interface = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_ecs_network_interface.append(alicloud.ecs.EcsNetworkInterface(f\"default-{range['value']}\",\n        network_interface_name=name,\n        vswitch_id=default_switch.id,\n        security_group_ids=[default_security_group.id]))\ndefault_ecs_network_interface_attachment = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_ecs_network_interface_attachment.append(alicloud.ecs.EcsNetworkInterfaceAttachment(f\"default-{range['value']}\",\n        instance_id=default_instance[range[\"value\"]].id,\n        network_interface_id=default_ecs_network_interface[range[\"value\"]].id))\ndefault_traffic_mirror_filter = alicloud.vpc.TrafficMirrorFilter(\"default\",\n    traffic_mirror_filter_name=name,\n    traffic_mirror_filter_description=name)\ndefault_traffic_mirror_session = alicloud.vpc.TrafficMirrorSession(\"default\",\n    priority=1,\n    virtual_network_id=10,\n    traffic_mirror_session_description=name,\n    traffic_mirror_session_name=name,\n    traffic_mirror_target_id=default_ecs_network_interface_attachment[0].network_interface_id,\n    traffic_mirror_source_ids=[default_ecs_network_interface_attachment[1].network_interface_id],\n    traffic_mirror_filter_id=default_traffic_mirror_filter.id,\n    traffic_mirror_target_type=\"NetworkInterface\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        InstanceTypeFamily = \"ecs.g7\",\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"Instance\",\n        AvailableInstanceType = @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        Description = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultInstance = new List\u003cAliCloud.Ecs.Instance\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultInstance.Add(new AliCloud.Ecs.Instance($\"default-{range.Value}\", new()\n        {\n            AvailabilityZone = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n            InstanceName = name,\n            HostName = name,\n            ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n            InstanceType = @default.Apply(@default =\u003e @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id)),\n            SecurityGroups = new[]\n            {\n                defaultSecurityGroup.Id,\n            },\n            VswitchId = defaultSwitch.Id,\n            SystemDiskCategory = \"cloud_essd\",\n        }));\n    }\n    var defaultEcsNetworkInterface = new List\u003cAliCloud.Ecs.EcsNetworkInterface\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultEcsNetworkInterface.Add(new AliCloud.Ecs.EcsNetworkInterface($\"default-{range.Value}\", new()\n        {\n            NetworkInterfaceName = name,\n            VswitchId = defaultSwitch.Id,\n            SecurityGroupIds = new[]\n            {\n                defaultSecurityGroup.Id,\n            },\n        }));\n    }\n    var defaultEcsNetworkInterfaceAttachment = new List\u003cAliCloud.Ecs.EcsNetworkInterfaceAttachment\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultEcsNetworkInterfaceAttachment.Add(new AliCloud.Ecs.EcsNetworkInterfaceAttachment($\"default-{range.Value}\", new()\n        {\n            InstanceId = defaultInstance[range.Value].Id,\n            NetworkInterfaceId = defaultEcsNetworkInterface[range.Value].Id,\n        }));\n    }\n    var defaultTrafficMirrorFilter = new AliCloud.Vpc.TrafficMirrorFilter(\"default\", new()\n    {\n        TrafficMirrorFilterName = name,\n        TrafficMirrorFilterDescription = name,\n    });\n\n    var defaultTrafficMirrorSession = new AliCloud.Vpc.TrafficMirrorSession(\"default\", new()\n    {\n        Priority = 1,\n        VirtualNetworkId = 10,\n        TrafficMirrorSessionDescription = name,\n        TrafficMirrorSessionName = name,\n        TrafficMirrorTargetId = defaultEcsNetworkInterfaceAttachment[0].NetworkInterfaceId,\n        TrafficMirrorSourceIds = new[]\n        {\n            defaultEcsNetworkInterfaceAttachment[1].NetworkInterfaceId,\n        },\n        TrafficMirrorFilterId = defaultTrafficMirrorFilter.Id,\n        TrafficMirrorTargetType = \"NetworkInterface\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tInstanceTypeFamily: pulumi.StringRef(\"ecs.g7\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"Instance\"),\n\t\t\tAvailableInstanceType:     pulumi.StringRef(_default.InstanceTypes[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar defaultInstance []*ecs.Instance\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := ecs.NewInstance(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026ecs.InstanceArgs{\n\t\t\t\tAvailabilityZone: pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\t\tInstanceName:     pulumi.String(name),\n\t\t\t\tHostName:         pulumi.String(name),\n\t\t\t\tImageId:          pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\t\tInstanceType:     pulumi.String(_default.InstanceTypes[0].Id),\n\t\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t\t},\n\t\t\t\tVswitchId:          defaultSwitch.ID(),\n\t\t\t\tSystemDiskCategory: pulumi.String(\"cloud_essd\"),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultInstance = append(defaultInstance, __res)\n\t\t}\n\t\tvar defaultEcsNetworkInterface []*ecs.EcsNetworkInterface\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := ecs.NewEcsNetworkInterface(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026ecs.EcsNetworkInterfaceArgs{\n\t\t\t\tNetworkInterfaceName: pulumi.String(name),\n\t\t\t\tVswitchId:            defaultSwitch.ID(),\n\t\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultEcsNetworkInterface = append(defaultEcsNetworkInterface, __res)\n\t\t}\n\t\tvar defaultEcsNetworkInterfaceAttachment []*ecs.EcsNetworkInterfaceAttachment\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := ecs.NewEcsNetworkInterfaceAttachment(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026ecs.EcsNetworkInterfaceAttachmentArgs{\n\t\t\t\tInstanceId:         defaultInstance[val0].ID(),\n\t\t\t\tNetworkInterfaceId: defaultEcsNetworkInterface[val0].ID(),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultEcsNetworkInterfaceAttachment = append(defaultEcsNetworkInterfaceAttachment, __res)\n\t\t}\n\t\tdefaultTrafficMirrorFilter, err := vpc.NewTrafficMirrorFilter(ctx, \"default\", \u0026vpc.TrafficMirrorFilterArgs{\n\t\t\tTrafficMirrorFilterName:        pulumi.String(name),\n\t\t\tTrafficMirrorFilterDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewTrafficMirrorSession(ctx, \"default\", \u0026vpc.TrafficMirrorSessionArgs{\n\t\t\tPriority:                        pulumi.Int(1),\n\t\t\tVirtualNetworkId:                pulumi.Int(10),\n\t\t\tTrafficMirrorSessionDescription: pulumi.String(name),\n\t\t\tTrafficMirrorSessionName:        pulumi.String(name),\n\t\t\tTrafficMirrorTargetId:           defaultEcsNetworkInterfaceAttachment[0].NetworkInterfaceId,\n\t\t\tTrafficMirrorSourceIds: pulumi.StringArray{\n\t\t\t\tdefaultEcsNetworkInterfaceAttachment[1].NetworkInterfaceId,\n\t\t\t},\n\t\t\tTrafficMirrorFilterId:   defaultTrafficMirrorFilter.ID(),\n\t\t\tTrafficMirrorTargetType: pulumi.String(\"NetworkInterface\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterface;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfaceArgs;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfaceAttachment;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfaceAttachmentArgs;\nimport com.pulumi.alicloud.vpc.TrafficMirrorFilter;\nimport com.pulumi.alicloud.vpc.TrafficMirrorFilterArgs;\nimport com.pulumi.alicloud.vpc.TrafficMirrorSession;\nimport com.pulumi.alicloud.vpc.TrafficMirrorSessionArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .instanceTypeFamily(\"ecs.g7\")\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"Instance\")\n            .availableInstanceType(default_.instanceTypes()[0].id())\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .description(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Instance(\"defaultInstance-\" + i, InstanceArgs.builder()\n                .availabilityZone(defaultGetZones.zones()[0].id())\n                .instanceName(name)\n                .hostName(name)\n                .imageId(defaultGetImages.images()[0].id())\n                .instanceType(default_.instanceTypes()[0].id())\n                .securityGroups(defaultSecurityGroup.id())\n                .vswitchId(defaultSwitch.id())\n                .systemDiskCategory(\"cloud_essd\")\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c 2; i++) {\n            new EcsNetworkInterface(\"defaultEcsNetworkInterface-\" + i, EcsNetworkInterfaceArgs.builder()\n                .networkInterfaceName(name)\n                .vswitchId(defaultSwitch.id())\n                .securityGroupIds(defaultSecurityGroup.id())\n                .build());\n\n        \n}\n        for (var i = 0; i \u003c 2; i++) {\n            new EcsNetworkInterfaceAttachment(\"defaultEcsNetworkInterfaceAttachment-\" + i, EcsNetworkInterfaceAttachmentArgs.builder()\n                .instanceId(defaultInstance[range.value()].id())\n                .networkInterfaceId(defaultEcsNetworkInterface[range.value()].id())\n                .build());\n\n        \n}\n        var defaultTrafficMirrorFilter = new TrafficMirrorFilter(\"defaultTrafficMirrorFilter\", TrafficMirrorFilterArgs.builder()\n            .trafficMirrorFilterName(name)\n            .trafficMirrorFilterDescription(name)\n            .build());\n\n        var defaultTrafficMirrorSession = new TrafficMirrorSession(\"defaultTrafficMirrorSession\", TrafficMirrorSessionArgs.builder()\n            .priority(1)\n            .virtualNetworkId(10)\n            .trafficMirrorSessionDescription(name)\n            .trafficMirrorSessionName(name)\n            .trafficMirrorTargetId(defaultEcsNetworkInterfaceAttachment[0].networkInterfaceId())\n            .trafficMirrorSourceIds(defaultEcsNetworkInterfaceAttachment[1].networkInterfaceId())\n            .trafficMirrorFilterId(defaultTrafficMirrorFilter.id())\n            .trafficMirrorTargetType(\"NetworkInterface\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Traffic Mirror Session can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/trafficMirrorSession:TrafficMirrorSession example \u003cid\u003e\n```\n\n","properties":{"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request, value:\n- **true**: sends a check request and does not create a mirror session. Check items include whether required parameters are filled in, request format, and restrictions. If the check fails, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.\n- **false** (default): Sends a normal request and directly creates a mirror session after checking.\n"},"enabled":{"type":"boolean","description":"Specifies whether to enable traffic mirror sessions. default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"packetLength":{"type":"integer","description":"Maximum Transmission Unit (MTU).\n"},"priority":{"type":"integer","description":"The priority of the traffic mirror session. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32766`\" pulumi-lang-dotnet=\"`32766`\" pulumi-lang-go=\"`32766`\" pulumi-lang-python=\"`32766`\" pulumi-lang-yaml=\"`32766`\" pulumi-lang-java=\"`32766`\"\u003e`32766`\u003c/span\u003e. A smaller value indicates a higher priority. You cannot specify the same priority for traffic mirror sessions that are created in the same region with the same Alibaba Cloud account.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of this resource.\n"},"trafficMirrorFilterId":{"type":"string","description":"The ID of the filter.\n"},"trafficMirrorSessionDescription":{"type":"string","description":"The description of the traffic mirror session. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length and cannot start with `http://` or `https://`.\n"},"trafficMirrorSessionName":{"type":"string","description":"The name of the traffic mirror session. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length and can contain digits, underscores (_), and hyphens (-). It must start with a letter.\n"},"trafficMirrorSourceIds":{"type":"array","items":{"type":"string"},"description":"The ID of the image source instance. Currently, the Eni is supported as the image source. The default value of N is 1, that is, only one mirror source can be added to a mirror session.\n"},"trafficMirrorTargetId":{"type":"string","description":"The ID of the mirror destination. You can specify only an ENI or a Server Load Balancer (SLB) instance as a mirror destination.\n"},"trafficMirrorTargetType":{"type":"string","description":"The type of the mirror destination. Valid values: `NetworkInterface` or `SLB`. `NetworkInterface`: an ENI. `SLB`: an internal-facing SLB instance.\n"},"virtualNetworkId":{"type":"integer","description":"The VXLAN network identifier (VNI) that is used to distinguish different mirrored traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`16777215`\" pulumi-lang-dotnet=\"`16777215`\" pulumi-lang-go=\"`16777215`\" pulumi-lang-python=\"`16777215`\" pulumi-lang-yaml=\"`16777215`\" pulumi-lang-java=\"`16777215`\"\u003e`16777215`\u003c/span\u003e. You can specify VNIs for the traffic mirror destination to identify mirrored traffic from different sessions. If you do not specify a VNI, the system randomly allocates a VNI. If you want the system to randomly allocate a VNI, ignore this parameter.\n"}},"required":["packetLength","priority","resourceGroupId","status","trafficMirrorFilterId","trafficMirrorSourceIds","trafficMirrorTargetId","trafficMirrorTargetType","virtualNetworkId"],"inputProperties":{"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request, value:\n- **true**: sends a check request and does not create a mirror session. Check items include whether required parameters are filled in, request format, and restrictions. If the check fails, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.\n- **false** (default): Sends a normal request and directly creates a mirror session after checking.\n"},"enabled":{"type":"boolean","description":"Specifies whether to enable traffic mirror sessions. default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"packetLength":{"type":"integer","description":"Maximum Transmission Unit (MTU).\n","willReplaceOnChanges":true},"priority":{"type":"integer","description":"The priority of the traffic mirror session. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32766`\" pulumi-lang-dotnet=\"`32766`\" pulumi-lang-go=\"`32766`\" pulumi-lang-python=\"`32766`\" pulumi-lang-yaml=\"`32766`\" pulumi-lang-java=\"`32766`\"\u003e`32766`\u003c/span\u003e. A smaller value indicates a higher priority. You cannot specify the same priority for traffic mirror sessions that are created in the same region with the same Alibaba Cloud account.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of this resource.\n"},"trafficMirrorFilterId":{"type":"string","description":"The ID of the filter.\n"},"trafficMirrorSessionDescription":{"type":"string","description":"The description of the traffic mirror session. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length and cannot start with `http://` or `https://`.\n"},"trafficMirrorSessionName":{"type":"string","description":"The name of the traffic mirror session. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length and can contain digits, underscores (_), and hyphens (-). It must start with a letter.\n"},"trafficMirrorSourceIds":{"type":"array","items":{"type":"string"},"description":"The ID of the image source instance. Currently, the Eni is supported as the image source. The default value of N is 1, that is, only one mirror source can be added to a mirror session.\n"},"trafficMirrorTargetId":{"type":"string","description":"The ID of the mirror destination. You can specify only an ENI or a Server Load Balancer (SLB) instance as a mirror destination.\n"},"trafficMirrorTargetType":{"type":"string","description":"The type of the mirror destination. Valid values: `NetworkInterface` or `SLB`. `NetworkInterface`: an ENI. `SLB`: an internal-facing SLB instance.\n"},"virtualNetworkId":{"type":"integer","description":"The VXLAN network identifier (VNI) that is used to distinguish different mirrored traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`16777215`\" pulumi-lang-dotnet=\"`16777215`\" pulumi-lang-go=\"`16777215`\" pulumi-lang-python=\"`16777215`\" pulumi-lang-yaml=\"`16777215`\" pulumi-lang-java=\"`16777215`\"\u003e`16777215`\u003c/span\u003e. You can specify VNIs for the traffic mirror destination to identify mirrored traffic from different sessions. If you do not specify a VNI, the system randomly allocates a VNI. If you want the system to randomly allocate a VNI, ignore this parameter.\n"}},"requiredInputs":["priority","trafficMirrorFilterId","trafficMirrorSourceIds","trafficMirrorTargetId","trafficMirrorTargetType"],"stateInputs":{"description":"Input properties used for looking up and filtering TrafficMirrorSession resources.\n","properties":{"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request, value:\n- **true**: sends a check request and does not create a mirror session. Check items include whether required parameters are filled in, request format, and restrictions. If the check fails, the corresponding error is returned. If the check passes, the error code 'DryRunOperation' is returned '.\n- **false** (default): Sends a normal request and directly creates a mirror session after checking.\n"},"enabled":{"type":"boolean","description":"Specifies whether to enable traffic mirror sessions. default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"packetLength":{"type":"integer","description":"Maximum Transmission Unit (MTU).\n","willReplaceOnChanges":true},"priority":{"type":"integer","description":"The priority of the traffic mirror session. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32766`\" pulumi-lang-dotnet=\"`32766`\" pulumi-lang-go=\"`32766`\" pulumi-lang-python=\"`32766`\" pulumi-lang-yaml=\"`32766`\" pulumi-lang-java=\"`32766`\"\u003e`32766`\u003c/span\u003e. A smaller value indicates a higher priority. You cannot specify the same priority for traffic mirror sessions that are created in the same region with the same Alibaba Cloud account.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of this resource.\n"},"trafficMirrorFilterId":{"type":"string","description":"The ID of the filter.\n"},"trafficMirrorSessionDescription":{"type":"string","description":"The description of the traffic mirror session. The description must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e characters in length and cannot start with `http://` or `https://`.\n"},"trafficMirrorSessionName":{"type":"string","description":"The name of the traffic mirror session. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length and can contain digits, underscores (_), and hyphens (-). It must start with a letter.\n"},"trafficMirrorSourceIds":{"type":"array","items":{"type":"string"},"description":"The ID of the image source instance. Currently, the Eni is supported as the image source. The default value of N is 1, that is, only one mirror source can be added to a mirror session.\n"},"trafficMirrorTargetId":{"type":"string","description":"The ID of the mirror destination. You can specify only an ENI or a Server Load Balancer (SLB) instance as a mirror destination.\n"},"trafficMirrorTargetType":{"type":"string","description":"The type of the mirror destination. Valid values: `NetworkInterface` or `SLB`. `NetworkInterface`: an ENI. `SLB`: an internal-facing SLB instance.\n"},"virtualNetworkId":{"type":"integer","description":"The VXLAN network identifier (VNI) that is used to distinguish different mirrored traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`16777215`\" pulumi-lang-dotnet=\"`16777215`\" pulumi-lang-go=\"`16777215`\" pulumi-lang-python=\"`16777215`\" pulumi-lang-yaml=\"`16777215`\" pulumi-lang-java=\"`16777215`\"\u003e`16777215`\u003c/span\u003e. You can specify VNIs for the traffic mirror destination to identify mirrored traffic from different sessions. If you do not specify a VNI, the system randomly allocates a VNI. If you want the system to randomly allocate a VNI, ignore this parameter.\n"}},"type":"object"}},"alicloud:vpc/vPCRouteEntry:VPCRouteEntry":{"description":"Provides a VPC Route Entry resource.\n\nThere are route entries in the routing table, and the next hop is judged based on the route entries.\n\nFor information about VPC Route Entry and how to use it, see [What is Route Entry](https://www.alibabacloud.com/help/en/vpc/developer-reference/api-vpc-2016-04-28-createrouteentry).\n\n\u003e **NOTE:** Available since v1.245.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = Promise.all([_default, defaultGetImages]).then(([_default, defaultGetImages]) =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    imageId: defaultGetImages.images?.[0]?.id,\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"192.168.192.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup].map(__item =\u003e __item.id),\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 10,\n    availabilityZone: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.availabilityZones?.[0]),\n    instanceChargeType: \"PostPaid\",\n    systemDiskCategory: \"cloud_efficiency\",\n    vswitchId: defaultSwitch.id,\n    instanceName: name,\n});\nconst foo = new alicloud.vpc.RouteEntry(\"foo\", {\n    routeTableId: defaultNetwork.routeTableId,\n    destinationCidrblock: \"172.11.1.1/32\",\n    nexthopType: \"Instance\",\n    nexthopId: defaultInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(most_recent=True,\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    image_id=default_get_images.images[0].id)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"192.168.192.0/24\",\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[__item.id for __item in [default_security_group]],\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=10,\n    availability_zone=default_get_instance_types.instance_types[0].availability_zones[0],\n    instance_charge_type=\"PostPaid\",\n    system_disk_category=\"cloud_efficiency\",\n    vswitch_id=default_switch.id,\n    instance_name=name)\nfoo = alicloud.vpc.RouteEntry(\"foo\",\n    route_table_id=default_network.route_table_id,\n    destination_cidrblock=\"172.11.1.1/32\",\n    nexthop_type=\"Instance\",\n    nexthop_id=default_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"192.168.192.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup,\n        }.Select(__item =\u003e __item.Id).ToList(),\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 10,\n        AvailabilityZone = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.AvailabilityZones[0]),\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskCategory = \"cloud_efficiency\",\n        VswitchId = defaultSwitch.Id,\n        InstanceName = name,\n    });\n\n    var foo = new AliCloud.Vpc.RouteEntry(\"foo\", new()\n    {\n        RouteTableId = defaultNetwork.RouteTableId,\n        DestinationCidrblock = \"172.11.1.1/32\",\n        NexthopType = \"Instance\",\n        NexthopId = defaultInstance.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableDiskCategory: pulumi.StringRef(\"cloud_efficiency\"),\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nMostRecent: pulumi.BoolRef(true),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\nImageId: pulumi.StringRef(defaultGetImages.Images[0].Id),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"192.168.192.0/24\"),\nZoneId: pulumi.String(_default.Zones[0].Id),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\ndefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\nImageId: pulumi.String(defaultGetImages.Images[0].Id),\nInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\nSecurityGroups: splat0,\nInternetChargeType: pulumi.String(\"PayByTraffic\"),\nInternetMaxBandwidthOut: pulumi.Int(10),\nAvailabilityZone: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].AvailabilityZones[0]),\nInstanceChargeType: pulumi.String(\"PostPaid\"),\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nVswitchId: defaultSwitch.ID(),\nInstanceName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\n_, err = vpc.NewRouteEntry(ctx, \"foo\", \u0026vpc.RouteEntryArgs{\nRouteTableId: defaultNetwork.RouteTableId,\nDestinationCidrblock: pulumi.String(\"172.11.1.1/32\"),\nNexthopType: pulumi.String(\"Instance\"),\nNexthopId: defaultInstance.ID(),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.vpc.RouteEntry;\nimport com.pulumi.alicloud.vpc.RouteEntryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .imageId(defaultGetImages.images()[0].id())\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"192.168.192.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.stream().map(element -\u003e element.id()).collect(toList()))\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(10)\n            .availabilityZone(defaultGetInstanceTypes.instanceTypes()[0].availabilityZones()[0])\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .vswitchId(defaultSwitch.id())\n            .instanceName(name)\n            .build());\n\n        var foo = new RouteEntry(\"foo\", RouteEntryArgs.builder()\n            .routeTableId(defaultNetwork.routeTableId())\n            .destinationCidrblock(\"172.11.1.1/32\")\n            .nexthopType(\"Instance\")\n            .nexthopId(defaultInstance.id())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Route Entry can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/vPCRouteEntry:VPCRouteEntry example \u003croute_table_id\u003e:\u003cdestination_cidr_block\u003e\n```\n\n","properties":{"description":{"type":"string","description":"Description of the route entry.\n"},"destinationCidrBlock":{"type":"string","description":"The destination network segment of the routing entry.\n"},"nextHops":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/VPCRouteEntryNextHop:VPCRouteEntryNextHop"},"description":"Next jump See \u003cspan pulumi-lang-nodejs=\"`nextHops`\" pulumi-lang-dotnet=\"`NextHops`\" pulumi-lang-go=\"`nextHops`\" pulumi-lang-python=\"`next_hops`\" pulumi-lang-yaml=\"`nextHops`\" pulumi-lang-java=\"`nextHops`\"\u003e`next_hops`\u003c/span\u003e below.\n"},"nexthopId":{"type":"string","description":"The ID of the next hop instance of the custom route entry.\n"},"nexthopType":{"type":"string","description":"The type of the next hop of the custom route entry. Valid values:\n- `Instance` (default): The ECS Instance.\n- `HaVip`: a highly available virtual IP address.\n- `RouterInterface`: indicates the router interface.\n- **Network interface**: ENI.\n- `VpnGateway`: the VPN gateway.\n- `IPv6Gateway`:IPv6 gateway.\n- `NatGateway`:NAT gateway.\n- `Attachment`: The forwarding router.\n- `VpcPeer`:VPC peer connection.\n- `Ipv4Gateway`:IPv4 Gateway.\n- `GatewayEndpoint`: the gateway endpoint.\n- `Ecr`: Leased line gateway.\n- `GatewayLoadBalancerEndpoint`: The Gateway-based load balancing endpoint.\n"},"routeEntryName":{"type":"string","description":"The name of the route entry.\n"},"routePublishTargets":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/VPCRouteEntryRoutePublishTarget:VPCRouteEntryRoutePublishTarget"},"description":"Route publish status and publish target type See \u003cspan pulumi-lang-nodejs=\"`routePublishTargets`\" pulumi-lang-dotnet=\"`RoutePublishTargets`\" pulumi-lang-go=\"`routePublishTargets`\" pulumi-lang-python=\"`route_publish_targets`\" pulumi-lang-yaml=\"`routePublishTargets`\" pulumi-lang-java=\"`routePublishTargets`\"\u003e`route_publish_targets`\u003c/span\u003e below.\n"},"routeTableId":{"type":"string","description":"Routing table ID\n"},"status":{"type":"string","description":"The status of the route entry.\n"}},"required":["destinationCidrBlock","nextHops","nexthopId","nexthopType","routeEntryName","routeTableId","status"],"inputProperties":{"description":{"type":"string","description":"Description of the route entry.\n"},"destinationCidrBlock":{"type":"string","description":"The destination network segment of the routing entry.\n","willReplaceOnChanges":true},"nextHops":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/VPCRouteEntryNextHop:VPCRouteEntryNextHop"},"description":"Next jump See \u003cspan pulumi-lang-nodejs=\"`nextHops`\" pulumi-lang-dotnet=\"`NextHops`\" pulumi-lang-go=\"`nextHops`\" pulumi-lang-python=\"`next_hops`\" pulumi-lang-yaml=\"`nextHops`\" pulumi-lang-java=\"`nextHops`\"\u003e`next_hops`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"nexthopId":{"type":"string","description":"The ID of the next hop instance of the custom route entry.\n"},"nexthopType":{"type":"string","description":"The type of the next hop of the custom route entry. Valid values:\n- `Instance` (default): The ECS Instance.\n- `HaVip`: a highly available virtual IP address.\n- `RouterInterface`: indicates the router interface.\n- **Network interface**: ENI.\n- `VpnGateway`: the VPN gateway.\n- `IPv6Gateway`:IPv6 gateway.\n- `NatGateway`:NAT gateway.\n- `Attachment`: The forwarding router.\n- `VpcPeer`:VPC peer connection.\n- `Ipv4Gateway`:IPv4 Gateway.\n- `GatewayEndpoint`: the gateway endpoint.\n- `Ecr`: Leased line gateway.\n- `GatewayLoadBalancerEndpoint`: The Gateway-based load balancing endpoint.\n"},"routeEntryName":{"type":"string","description":"The name of the route entry.\n"},"routePublishTargets":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/VPCRouteEntryRoutePublishTarget:VPCRouteEntryRoutePublishTarget"},"description":"Route publish status and publish target type See \u003cspan pulumi-lang-nodejs=\"`routePublishTargets`\" pulumi-lang-dotnet=\"`RoutePublishTargets`\" pulumi-lang-go=\"`routePublishTargets`\" pulumi-lang-python=\"`route_publish_targets`\" pulumi-lang-yaml=\"`routePublishTargets`\" pulumi-lang-java=\"`routePublishTargets`\"\u003e`route_publish_targets`\u003c/span\u003e below.\n"},"routeTableId":{"type":"string","description":"Routing table ID\n","willReplaceOnChanges":true}},"requiredInputs":["destinationCidrBlock","routeTableId"],"stateInputs":{"description":"Input properties used for looking up and filtering VPCRouteEntry resources.\n","properties":{"description":{"type":"string","description":"Description of the route entry.\n"},"destinationCidrBlock":{"type":"string","description":"The destination network segment of the routing entry.\n","willReplaceOnChanges":true},"nextHops":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/VPCRouteEntryNextHop:VPCRouteEntryNextHop"},"description":"Next jump See \u003cspan pulumi-lang-nodejs=\"`nextHops`\" pulumi-lang-dotnet=\"`NextHops`\" pulumi-lang-go=\"`nextHops`\" pulumi-lang-python=\"`next_hops`\" pulumi-lang-yaml=\"`nextHops`\" pulumi-lang-java=\"`nextHops`\"\u003e`next_hops`\u003c/span\u003e below.\n","willReplaceOnChanges":true},"nexthopId":{"type":"string","description":"The ID of the next hop instance of the custom route entry.\n"},"nexthopType":{"type":"string","description":"The type of the next hop of the custom route entry. Valid values:\n- `Instance` (default): The ECS Instance.\n- `HaVip`: a highly available virtual IP address.\n- `RouterInterface`: indicates the router interface.\n- **Network interface**: ENI.\n- `VpnGateway`: the VPN gateway.\n- `IPv6Gateway`:IPv6 gateway.\n- `NatGateway`:NAT gateway.\n- `Attachment`: The forwarding router.\n- `VpcPeer`:VPC peer connection.\n- `Ipv4Gateway`:IPv4 Gateway.\n- `GatewayEndpoint`: the gateway endpoint.\n- `Ecr`: Leased line gateway.\n- `GatewayLoadBalancerEndpoint`: The Gateway-based load balancing endpoint.\n"},"routeEntryName":{"type":"string","description":"The name of the route entry.\n"},"routePublishTargets":{"type":"array","items":{"$ref":"#/types/alicloud:vpc/VPCRouteEntryRoutePublishTarget:VPCRouteEntryRoutePublishTarget"},"description":"Route publish status and publish target type See \u003cspan pulumi-lang-nodejs=\"`routePublishTargets`\" pulumi-lang-dotnet=\"`RoutePublishTargets`\" pulumi-lang-go=\"`routePublishTargets`\" pulumi-lang-python=\"`route_publish_targets`\" pulumi-lang-yaml=\"`routePublishTargets`\" pulumi-lang-java=\"`routePublishTargets`\"\u003e`route_publish_targets`\u003c/span\u003e below.\n"},"routeTableId":{"type":"string","description":"Routing table ID\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the route entry.\n"}},"type":"object"}},"alicloud:vpc/vbrHa:VbrHa":{"description":"Provides a Express Connect Vbr Ha resource.\n\nVBR switching Group.\n\nFor information about Express Connect Vbr Ha and how to use it, see [What is Vbr Ha](https://www.alibabacloud.com/help/doc-detail/212629.html).\n\n\u003e **NOTE:** Available since v1.151.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getRegions({\n    current: true,\n});\nconst example = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"^preserved-NODELETING\",\n});\nconst vlanId = new random.index.Integer(\"vlan_id\", {\n    max: 2999,\n    min: 1,\n});\nconst exampleVirtualBorderRouter: alicloud.expressconnect.VirtualBorderRouter[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleVirtualBorderRouter.push(new alicloud.expressconnect.VirtualBorderRouter(`example-${range.value}`, {\n        localGatewayIp: \"10.0.0.1\",\n        peerGatewayIp: \"10.0.0.2\",\n        peeringSubnetMask: \"255.255.255.252\",\n        physicalConnectionId: example.then(example =\u003e example.connections[range.value].id),\n        virtualBorderRouterName: std.format({\n            input: `${name}-%d`,\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        vlanId: vlanId.id + range.value,\n        minRxInterval: 1000,\n        minTxInterval: 1000,\n        detectMultiplier: 10,\n    }));\n}\nconst exampleInstance = new alicloud.cen.Instance(\"example\", {\n    cenInstanceName: name,\n    description: name,\n    protectionLevel: \"REDUCED\",\n});\nconst exampleInstanceAttachment: alicloud.cen.InstanceAttachment[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    exampleInstanceAttachment.push(new alicloud.cen.InstanceAttachment(`example-${range.value}`, {\n        instanceId: exampleInstance.id,\n        childInstanceId: exampleVirtualBorderRouter[range.value].id,\n        childInstanceType: \"VBR\",\n        childInstanceRegionId: _default.then(_default =\u003e _default.regions?.[0]?.id),\n    }));\n}\nconst exampleVbrHa = new alicloud.vpc.VbrHa(\"example\", {\n    vbrId: exampleInstanceAttachment[0].childInstanceId,\n    peerVbrId: exampleInstanceAttachment[1].childInstanceId,\n    vbrHaName: name,\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_regions(current=True)\nexample = alicloud.expressconnect.get_physical_connections(name_regex=\"^preserved-NODELETING\")\nvlan_id = random.index.Integer(\"vlan_id\",\n    max=2999,\n    min=1)\nexample_virtual_border_router = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_virtual_border_router.append(alicloud.expressconnect.VirtualBorderRouter(f\"example-{range['value']}\",\n        local_gateway_ip=\"10.0.0.1\",\n        peer_gateway_ip=\"10.0.0.2\",\n        peering_subnet_mask=\"255.255.255.252\",\n        physical_connection_id=example.connections[range[\"value\"]].id,\n        virtual_border_router_name=std.format(input=f\"{name}-%d\",\n            args=[range[\"value\"] + 1]).result,\n        vlan_id=vlan_id[\"id\"] + range[\"value\"],\n        min_rx_interval=1000,\n        min_tx_interval=1000,\n        detect_multiplier=10))\nexample_instance = alicloud.cen.Instance(\"example\",\n    cen_instance_name=name,\n    description=name,\n    protection_level=\"REDUCED\")\nexample_instance_attachment = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example_instance_attachment.append(alicloud.cen.InstanceAttachment(f\"example-{range['value']}\",\n        instance_id=example_instance.id,\n        child_instance_id=example_virtual_border_router[range[\"value\"]].id,\n        child_instance_type=\"VBR\",\n        child_instance_region_id=default.regions[0].id))\nexample_vbr_ha = alicloud.vpc.VbrHa(\"example\",\n    vbr_id=example_instance_attachment[0].child_instance_id,\n    peer_vbr_id=example_instance_attachment[1].child_instance_id,\n    vbr_ha_name=name,\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var example = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"^preserved-NODELETING\",\n    });\n\n    var vlanId = new Random.Index.Integer(\"vlan_id\", new()\n    {\n        Max = 2999,\n        Min = 1,\n    });\n\n    var exampleVirtualBorderRouter = new List\u003cAliCloud.ExpressConnect.VirtualBorderRouter\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleVirtualBorderRouter.Add(new AliCloud.ExpressConnect.VirtualBorderRouter($\"example-{range.Value}\", new()\n        {\n            LocalGatewayIp = \"10.0.0.1\",\n            PeerGatewayIp = \"10.0.0.2\",\n            PeeringSubnetMask = \"255.255.255.252\",\n            PhysicalConnectionId = example.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Connections)[range.Value].Id,\n            VirtualBorderRouterName = Std.Format.Invoke(new()\n            {\n                Input = $\"{name}-%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            VlanId = vlanId.Id + range.Value,\n            MinRxInterval = 1000,\n            MinTxInterval = 1000,\n            DetectMultiplier = 10,\n        }));\n    }\n    var exampleInstance = new AliCloud.Cen.Instance(\"example\", new()\n    {\n        CenInstanceName = name,\n        Description = name,\n        ProtectionLevel = \"REDUCED\",\n    });\n\n    var exampleInstanceAttachment = new List\u003cAliCloud.Cen.InstanceAttachment\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        exampleInstanceAttachment.Add(new AliCloud.Cen.InstanceAttachment($\"example-{range.Value}\", new()\n        {\n            InstanceId = exampleInstance.Id,\n            ChildInstanceId = exampleVirtualBorderRouter[range.Value].Id,\n            ChildInstanceType = \"VBR\",\n            ChildInstanceRegionId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id)),\n        }));\n    }\n    var exampleVbrHa = new AliCloud.Vpc.VbrHa(\"example\", new()\n    {\n        VbrId = exampleInstanceAttachment[0].ChildInstanceId,\n        PeerVbrId = exampleInstanceAttachment[1].ChildInstanceId,\n        VbrHaName = name,\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvlanId, err := random.NewInteger(ctx, \"vlan_id\", \u0026random.IntegerArgs{\n\t\t\tMax: 2999,\n\t\t\tMin: 1,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: fmt.Sprintf(\"%v%v\", name, \"-%d\"),\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar exampleVirtualBorderRouter []*expressconnect.VirtualBorderRouter\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := expressconnect.NewVirtualBorderRouter(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026expressconnect.VirtualBorderRouterArgs{\n\t\t\t\tLocalGatewayIp:          pulumi.String(\"10.0.0.1\"),\n\t\t\t\tPeerGatewayIp:           pulumi.String(\"10.0.0.2\"),\n\t\t\t\tPeeringSubnetMask:       pulumi.String(\"255.255.255.252\"),\n\t\t\t\tPhysicalConnectionId:    example.Connections[val0].Id,\n\t\t\t\tVirtualBorderRouterName: pulumi.String(invokeFormat.Result),\n\t\t\t\tVlanId:                  int(vlanId.Id + val0),\n\t\t\t\tMinRxInterval:           pulumi.Int(1000),\n\t\t\t\tMinTxInterval:           pulumi.Int(1000),\n\t\t\t\tDetectMultiplier:        pulumi.Int(10),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texampleVirtualBorderRouter = append(exampleVirtualBorderRouter, __res)\n\t\t}\n\t\texampleInstance, err := cen.NewInstance(ctx, \"example\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tDescription:     pulumi.String(name),\n\t\t\tProtectionLevel: pulumi.String(\"REDUCED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar exampleInstanceAttachment []*cen.InstanceAttachment\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := cen.NewInstanceAttachment(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026cen.InstanceAttachmentArgs{\n\t\t\t\tInstanceId:            exampleInstance.ID(),\n\t\t\t\tChildInstanceId:       exampleVirtualBorderRouter[val0].ID(),\n\t\t\t\tChildInstanceType:     pulumi.String(\"VBR\"),\n\t\t\t\tChildInstanceRegionId: pulumi.String(_default.Regions[0].Id),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texampleInstanceAttachment = append(exampleInstanceAttachment, __res)\n\t\t}\n\t\t_, err = vpc.NewVbrHa(ctx, \"example\", \u0026vpc.VbrHaArgs{\n\t\t\tVbrId:       exampleInstanceAttachment[0].ChildInstanceId,\n\t\t\tPeerVbrId:   exampleInstanceAttachment[1].ChildInstanceId,\n\t\t\tVbrHaName:   pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouter;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouterArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.InstanceAttachment;\nimport com.pulumi.alicloud.cen.InstanceAttachmentArgs;\nimport com.pulumi.alicloud.vpc.VbrHa;\nimport com.pulumi.alicloud.vpc.VbrHaArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var example = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"^preserved-NODELETING\")\n            .build());\n\n        var vlanId = new Integer(\"vlanId\", IntegerArgs.builder()\n            .max(2999)\n            .min(1)\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new VirtualBorderRouter(\"exampleVirtualBorderRouter-\" + i, VirtualBorderRouterArgs.builder()\n                .localGatewayIp(\"10.0.0.1\")\n                .peerGatewayIp(\"10.0.0.2\")\n                .peeringSubnetMask(\"255.255.255.252\")\n                .physicalConnectionId(example.connections()[range.value()].id())\n                .virtualBorderRouterName(StdFunctions.format(FormatArgs.builder()\n                    .input(String.format(\"%s-%d\", name))\n                    .args(range.value() + 1)\n                    .build()).result())\n                .vlanId(vlanId.id() + range.value())\n                .minRxInterval(1000)\n                .minTxInterval(1000)\n                .detectMultiplier(10)\n                .build());\n\n        \n}\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .description(name)\n            .protectionLevel(\"REDUCED\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new InstanceAttachment(\"exampleInstanceAttachment-\" + i, InstanceAttachmentArgs.builder()\n                .instanceId(exampleInstance.id())\n                .childInstanceId(exampleVirtualBorderRouter[range.value()].id())\n                .childInstanceType(\"VBR\")\n                .childInstanceRegionId(default_.regions()[0].id())\n                .build());\n\n        \n}\n        var exampleVbrHa = new VbrHa(\"exampleVbrHa\", VbrHaArgs.builder()\n            .vbrId(exampleInstanceAttachment[0].childInstanceId())\n            .peerVbrId(exampleInstanceAttachment[1].childInstanceId())\n            .vbrHaName(name)\n            .description(name)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nExpress Connect Vbr Ha can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/vbrHa:VbrHa example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the VBR.\n"},"description":{"type":"string","description":"The description of the VBR switching group.\nIt must be 2 to 256 characters in length and must start with a letter or Chinese, but cannot start with 'http:// 'or 'https.\n"},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value range:\n- *true**: The check request is sent and the instance is not started. Check whether the required parameters, request format, and instance status are filled in. If the check does not pass, the corresponding error is returned. If the check passes, DRYRUN.SUCCESS is returned.\n- *false** (default): Send a normal request and start the instance directly after passing the check.\n"},"peerVbrId":{"type":"string","description":"The instance ID of another VBR in The VBR switching group.\n"},"regionId":{"type":"string","description":"The ID of the region to which the VBR belongs.\n"},"status":{"type":"string","description":"Status of VBR switching Group\n"},"vbrHaName":{"type":"string","description":"VBR switch group name.\n"},"vbrId":{"type":"string","description":"The VBR instance ID.\n"}},"required":["createTime","peerVbrId","regionId","status","vbrId"],"inputProperties":{"description":{"type":"string","description":"The description of the VBR switching group.\nIt must be 2 to 256 characters in length and must start with a letter or Chinese, but cannot start with 'http:// 'or 'https.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value range:\n- *true**: The check request is sent and the instance is not started. Check whether the required parameters, request format, and instance status are filled in. If the check does not pass, the corresponding error is returned. If the check passes, DRYRUN.SUCCESS is returned.\n- *false** (default): Send a normal request and start the instance directly after passing the check.\n"},"peerVbrId":{"type":"string","description":"The instance ID of another VBR in The VBR switching group.\n","willReplaceOnChanges":true},"vbrHaName":{"type":"string","description":"VBR switch group name.\n","willReplaceOnChanges":true},"vbrId":{"type":"string","description":"The VBR instance ID.\n","willReplaceOnChanges":true}},"requiredInputs":["peerVbrId","vbrId"],"stateInputs":{"description":"Input properties used for looking up and filtering VbrHa resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the VBR.\n"},"description":{"type":"string","description":"The description of the VBR switching group.\nIt must be 2 to 256 characters in length and must start with a letter or Chinese, but cannot start with 'http:// 'or 'https.\n","willReplaceOnChanges":true},"dryRun":{"type":"boolean","description":"Whether to PreCheck only this request. Value range:\n- *true**: The check request is sent and the instance is not started. Check whether the required parameters, request format, and instance status are filled in. If the check does not pass, the corresponding error is returned. If the check passes, DRYRUN.SUCCESS is returned.\n- *false** (default): Send a normal request and start the instance directly after passing the check.\n"},"peerVbrId":{"type":"string","description":"The instance ID of another VBR in The VBR switching group.\n","willReplaceOnChanges":true},"regionId":{"type":"string","description":"The ID of the region to which the VBR belongs.\n"},"status":{"type":"string","description":"Status of VBR switching Group\n"},"vbrHaName":{"type":"string","description":"VBR switch group name.\n","willReplaceOnChanges":true},"vbrId":{"type":"string","description":"The VBR instance ID.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpc/vpcNetworkAclAttachment:VpcNetworkAclAttachment":{"description":"Provides a VPC Network Acl Attachment resource.\n\nResources associated with network Acl.\n\nFor information about VPC Network Acl Attachment and how to use it, see [What is Network Acl Attachment](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/associatenetworkacl).\n\n\u003e **NOTE:** Available since v1.193.0.\n\n\u003e **WARNING:** Do not mix the use of this resource with the \u003cspan pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\"\u003e`resources`\u003c/span\u003e field in the \u003cspan pulumi-lang-nodejs=\"`alicloud.vpc.NetworkAcl`\" pulumi-lang-dotnet=\"`alicloud.vpc.NetworkAcl`\" pulumi-lang-go=\"`vpc.NetworkAcl`\" pulumi-lang-python=\"`vpc.NetworkAcl`\" pulumi-lang-yaml=\"`alicloud.vpc.NetworkAcl`\" pulumi-lang-java=\"`alicloud.vpc.NetworkAcl`\"\u003e`alicloud.vpc.NetworkAcl`\u003c/span\u003e resource to bind VSW (Virtual Switch) to the same ACL. Using both methods simultaneously can cause conflicts and result in repeated apply operations that toggle between binding and unbinding VSWs. Choose one method and stick with it to avoid these issues.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {cidrBlock: \"192.168.0.0/16\"});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: defaultNetwork.cidrBlock.apply(cidrBlock =\u003e std.cidrsubnetOutput({\n        input: cidrBlock,\n        newbits: 8,\n        netnum: 2,\n    })).apply(invoke =\u003e invoke.result),\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultNetworkAcl = new alicloud.vpc.NetworkAcl(\"default\", {vpcId: defaultSwitch.vpcId});\nconst defaultVpcNetworkAclAttachment = new alicloud.vpc.VpcNetworkAclAttachment(\"default\", {\n    networkAclId: defaultNetworkAcl.id,\n    resourceId: defaultSwitch.id,\n    resourceType: \"VSwitch\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\", cidr_block=\"192.168.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=default_network.cidr_block.apply(lambda cidr_block: std.cidrsubnet_output(input=cidr_block,\n        newbits=8,\n        netnum=2)).apply(lambda invoke: invoke.result),\n    zone_id=default.zones[0].id)\ndefault_network_acl = alicloud.vpc.NetworkAcl(\"default\", vpc_id=default_switch.vpc_id)\ndefault_vpc_network_acl_attachment = alicloud.vpc.VpcNetworkAclAttachment(\"default\",\n    network_acl_id=default_network_acl.id,\n    resource_id=default_switch.id,\n    resource_type=\"VSwitch\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = defaultNetwork.CidrBlock.Apply(cidrBlock =\u003e Std.Cidrsubnet.Invoke(new()\n        {\n            Input = cidrBlock,\n            Newbits = 8,\n            Netnum = 2,\n        })).Apply(invoke =\u003e invoke.Result),\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultNetworkAcl = new AliCloud.Vpc.NetworkAcl(\"default\", new()\n    {\n        VpcId = defaultSwitch.VpcId,\n    });\n\n    var defaultVpcNetworkAclAttachment = new AliCloud.Vpc.VpcNetworkAclAttachment(\"default\", new()\n    {\n        NetworkAclId = defaultNetworkAcl.Id,\n        ResourceId = defaultSwitch.Id,\n        ResourceType = \"VSwitch\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: cidrBlock,\nNewbits: 8,\nNetnum: 2,\n}, nil)\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(defaultNetwork.CidrBlock.ApplyT(func(cidrBlock string) (std.CidrsubnetResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrsubnetResultOutput).ApplyT(func(invoke std.CidrsubnetResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\nZoneId: pulumi.String(_default.Zones[0].Id),\n})\nif err != nil {\nreturn err\n}\ndefaultNetworkAcl, err := vpc.NewNetworkAcl(ctx, \"default\", \u0026vpc.NetworkAclArgs{\nVpcId: defaultSwitch.VpcId,\n})\nif err != nil {\nreturn err\n}\n_, err = vpc.NewVpcNetworkAclAttachment(ctx, \"default\", \u0026vpc.VpcNetworkAclAttachmentArgs{\nNetworkAclId: defaultNetworkAcl.ID(),\nResourceId: defaultSwitch.ID(),\nResourceType: pulumi.String(\"VSwitch\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.vpc.NetworkAcl;\nimport com.pulumi.alicloud.vpc.NetworkAclArgs;\nimport com.pulumi.alicloud.vpc.VpcNetworkAclAttachment;\nimport com.pulumi.alicloud.vpc.VpcNetworkAclAttachmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(defaultNetwork.cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(_cidrBlock)\n                .newbits(8)\n                .netnum(2)\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultNetworkAcl = new NetworkAcl(\"defaultNetworkAcl\", NetworkAclArgs.builder()\n            .vpcId(defaultSwitch.vpcId())\n            .build());\n\n        var defaultVpcNetworkAclAttachment = new VpcNetworkAclAttachment(\"defaultVpcNetworkAclAttachment\", VpcNetworkAclAttachmentArgs.builder()\n            .networkAclId(defaultNetworkAcl.id())\n            .resourceId(defaultSwitch.id())\n            .resourceType(\"VSwitch\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      cidrBlock: 192.168.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: ${defaultNetwork.cidrBlock}\n            newbits: 8\n            netnum: 2\n          return: result\n      zoneId: ${default.zones[0].id}\n  defaultNetworkAcl:\n    type: alicloud:vpc:NetworkAcl\n    name: default\n    properties:\n      vpcId: ${defaultSwitch.vpcId}\n  defaultVpcNetworkAclAttachment:\n    type: alicloud:vpc:VpcNetworkAclAttachment\n    name: default\n    properties:\n      networkAclId: ${defaultNetworkAcl.id}\n      resourceId: ${defaultSwitch.id}\n      resourceType: VSwitch\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPC Network Acl Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/vpcNetworkAclAttachment:VpcNetworkAclAttachment example \u003cnetwork_acl_id\u003e:\u003cresource_id\u003e\n```\n\n","properties":{"networkAclId":{"type":"string","description":"The ID of the network ACL instance.\n"},"resourceId":{"type":"string","description":"The ID of the associated  vswitch instance.\n"},"resourceType":{"type":"string","description":"The type of the associated resource. Valid values: `VSwitch`.\n"},"status":{"type":"string","description":"The status of the Network Acl Attachment.\n"}},"required":["networkAclId","resourceId","resourceType","status"],"inputProperties":{"networkAclId":{"type":"string","description":"The ID of the network ACL instance.\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"The ID of the associated  vswitch instance.\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"The type of the associated resource. Valid values: `VSwitch`.\n","willReplaceOnChanges":true}},"requiredInputs":["networkAclId","resourceId","resourceType"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcNetworkAclAttachment resources.\n","properties":{"networkAclId":{"type":"string","description":"The ID of the network ACL instance.\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"The ID of the associated  vswitch instance.\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"The type of the associated resource. Valid values: `VSwitch`.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Network Acl Attachment.\n"}},"type":"object"}},"alicloud:vpc/vswitchCidrReservation:VswitchCidrReservation":{"description":"Provides a Vpc Vswitch Cidr Reservation resource. The reserved network segment of the vswitch. This resource type can be used only in ap-southeast region.\n\nFor information about Vpc Vswitch Cidr Reservation and how to use it, see [What is Vswitch Cidr Reservation](https://www.alibabacloud.com/help/en/virtual-private-cloud/latest/610154).\n\n\u003e **NOTE:** Available since v1.205.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultVpc = new alicloud.vpc.Network(\"defaultVpc\", {\n    vpcName: name,\n    cidrBlock: \"10.0.0.0/8\",\n});\nconst defaultVSwitch = new alicloud.vpc.Switch(\"defaultVSwitch\", {\n    vpcId: defaultVpc.id,\n    cidrBlock: \"10.0.0.0/20\",\n    vswitchName: `${name}1`,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultVswitchCidrReservation = new alicloud.vpc.VswitchCidrReservation(\"default\", {\n    ipVersion: \"IPv4\",\n    vswitchId: defaultVSwitch.id,\n    cidrReservationDescription: name,\n    cidrReservationCidr: \"10.0.10.0/24\",\n    vswitchCidrReservationName: name,\n    cidrReservationType: \"Prefix\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_vpc = alicloud.vpc.Network(\"defaultVpc\",\n    vpc_name=name,\n    cidr_block=\"10.0.0.0/8\")\ndefault_v_switch = alicloud.vpc.Switch(\"defaultVSwitch\",\n    vpc_id=default_vpc.id,\n    cidr_block=\"10.0.0.0/20\",\n    vswitch_name=f\"{name}1\",\n    zone_id=default.zones[0].id)\ndefault_vswitch_cidr_reservation = alicloud.vpc.VswitchCidrReservation(\"default\",\n    ip_version=\"IPv4\",\n    vswitch_id=default_v_switch.id,\n    cidr_reservation_description=name,\n    cidr_reservation_cidr=\"10.0.10.0/24\",\n    vswitch_cidr_reservation_name=name,\n    cidr_reservation_type=\"Prefix\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultVpc = new AliCloud.Vpc.Network(\"defaultVpc\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var defaultVSwitch = new AliCloud.Vpc.Switch(\"defaultVSwitch\", new()\n    {\n        VpcId = defaultVpc.Id,\n        CidrBlock = \"10.0.0.0/20\",\n        VswitchName = $\"{name}1\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultVswitchCidrReservation = new AliCloud.Vpc.VswitchCidrReservation(\"default\", new()\n    {\n        IpVersion = \"IPv4\",\n        VswitchId = defaultVSwitch.Id,\n        CidrReservationDescription = name,\n        CidrReservationCidr = \"10.0.10.0/24\",\n        VswitchCidrReservationName = name,\n        CidrReservationType = \"Prefix\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVpc, err := vpc.NewNetwork(ctx, \"defaultVpc\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVSwitch, err := vpc.NewSwitch(ctx, \"defaultVSwitch\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultVpc.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"10.0.0.0/20\"),\n\t\t\tVswitchName: pulumi.Sprintf(\"%v1\", name),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpc.NewVswitchCidrReservation(ctx, \"default\", \u0026vpc.VswitchCidrReservationArgs{\n\t\t\tIpVersion:                  pulumi.String(\"IPv4\"),\n\t\t\tVswitchId:                  defaultVSwitch.ID(),\n\t\t\tCidrReservationDescription: pulumi.String(name),\n\t\t\tCidrReservationCidr:        pulumi.String(\"10.0.10.0/24\"),\n\t\t\tVswitchCidrReservationName: pulumi.String(name),\n\t\t\tCidrReservationType:        pulumi.String(\"Prefix\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.VswitchCidrReservation;\nimport com.pulumi.alicloud.vpc.VswitchCidrReservationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultVpc = new Network(\"defaultVpc\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var defaultVSwitch = new Switch(\"defaultVSwitch\", SwitchArgs.builder()\n            .vpcId(defaultVpc.id())\n            .cidrBlock(\"10.0.0.0/20\")\n            .vswitchName(String.format(\"%s1\", name))\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultVswitchCidrReservation = new VswitchCidrReservation(\"defaultVswitchCidrReservation\", VswitchCidrReservationArgs.builder()\n            .ipVersion(\"IPv4\")\n            .vswitchId(defaultVSwitch.id())\n            .cidrReservationDescription(name)\n            .cidrReservationCidr(\"10.0.10.0/24\")\n            .vswitchCidrReservationName(name)\n            .cidrReservationType(\"Prefix\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultVpc:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.0.0.0/8\n  defaultVSwitch:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultVpc.id}\n      cidrBlock: 10.0.0.0/20\n      vswitchName: ${name}1\n      zoneId: ${default.zones[0].id}\n  defaultVswitchCidrReservation:\n    type: alicloud:vpc:VswitchCidrReservation\n    name: default\n    properties:\n      ipVersion: IPv4\n      vswitchId: ${defaultVSwitch.id}\n      cidrReservationDescription: ${name}\n      cidrReservationCidr: 10.0.10.0/24\n      vswitchCidrReservationName: ${name}\n      cidrReservationType: Prefix\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVpc Vswitch Cidr Reservation can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpc/vswitchCidrReservation:VswitchCidrReservation example \u003cvswitch_id\u003e:\u003cvswitch_cidr_reservation_id\u003e\n```\n\n","properties":{"cidrReservationCidr":{"type":"string","description":"Reserved network segment CIdrBlock.\n"},"cidrReservationDescription":{"type":"string","description":"The description of the reserved CIDR block.\n"},"cidrReservationMask":{"type":"string","description":"Reserved segment mask.\n"},"cidrReservationType":{"type":"string","description":"Reserved CIDR Block Type.Valid values: `Prefix`. Default value: Prefix.\n"},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"ipVersion":{"type":"string","description":"Reserved ip version of network segment, valid values: `IPv4`, `IPv6`, default IPv4.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"vpcId":{"type":"string","description":"The id of the vpc instance to which the reserved CIDR block belongs.\n"},"vswitchCidrReservationId":{"type":"string","description":"The resource attribute field of the resource ID.\n"},"vswitchCidrReservationName":{"type":"string","description":"The name of the resource.\n"},"vswitchId":{"type":"string","description":"The Id of the switch instance.\n"}},"required":["cidrReservationCidr","cidrReservationType","createTime","ipVersion","status","vpcId","vswitchCidrReservationId","vswitchId"],"inputProperties":{"cidrReservationCidr":{"type":"string","description":"Reserved network segment CIdrBlock.\n","willReplaceOnChanges":true},"cidrReservationDescription":{"type":"string","description":"The description of the reserved CIDR block.\n"},"cidrReservationMask":{"type":"string","description":"Reserved segment mask.\n","willReplaceOnChanges":true},"cidrReservationType":{"type":"string","description":"Reserved CIDR Block Type.Valid values: `Prefix`. Default value: Prefix.\n","willReplaceOnChanges":true},"ipVersion":{"type":"string","description":"Reserved ip version of network segment, valid values: `IPv4`, `IPv6`, default IPv4.\n","willReplaceOnChanges":true},"vswitchCidrReservationName":{"type":"string","description":"The name of the resource.\n"},"vswitchId":{"type":"string","description":"The Id of the switch instance.\n","willReplaceOnChanges":true}},"requiredInputs":["vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering VswitchCidrReservation resources.\n","properties":{"cidrReservationCidr":{"type":"string","description":"Reserved network segment CIdrBlock.\n","willReplaceOnChanges":true},"cidrReservationDescription":{"type":"string","description":"The description of the reserved CIDR block.\n"},"cidrReservationMask":{"type":"string","description":"Reserved segment mask.\n","willReplaceOnChanges":true},"cidrReservationType":{"type":"string","description":"Reserved CIDR Block Type.Valid values: `Prefix`. Default value: Prefix.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The creation time of the resource.\n"},"ipVersion":{"type":"string","description":"Reserved ip version of network segment, valid values: `IPv4`, `IPv6`, default IPv4.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the resource.\n"},"vpcId":{"type":"string","description":"The id of the vpc instance to which the reserved CIDR block belongs.\n"},"vswitchCidrReservationId":{"type":"string","description":"The resource attribute field of the resource ID.\n"},"vswitchCidrReservationName":{"type":"string","description":"The name of the resource.\n"},"vswitchId":{"type":"string","description":"The Id of the switch instance.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpn/connection:Connection":{"description":"Provides a VPN connection resource.\n\n\u003e **NOTE:** Terraform will auto build vpn connection while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.vpn.Connection`\" pulumi-lang-dotnet=\"`alicloud.vpn.Connection`\" pulumi-lang-go=\"`vpn.Connection`\" pulumi-lang-python=\"`vpn.Connection`\" pulumi-lang-yaml=\"`alicloud.vpn.Connection`\" pulumi-lang-java=\"`alicloud.vpn.Connection`\"\u003e`alicloud.vpn.Connection`\u003c/span\u003e to build a vpn connection resource.\n             The vpn connection depends on VPN and VPN customer gateway.\n\nFor information about VPN connection and how to use it, see [What is vpn connection](https://www.alibabacloud.com/help/en/doc-detail/120390.html).\n\n\u003e **NOTE:** Available since v1.14.0.\n\n## Example Usage\n\nBasic Usage\n\n[IPsec-VPN connections support the dual-tunnel mode](https://www.alibabacloud.com/help/en/vpn/product-overview/ipsec-vpn-connections-support-the-dual-tunnel-mode)\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst spec = config.get(\"spec\") || \"5\";\nconst _default = alicloud.vpn.getGatewayZones({\n    spec: \"5M\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    cidrBlock: \"172.16.0.0/16\",\n    vpcName: name,\n});\nconst default0 = new alicloud.vpc.Switch(\"default0\", {\n    cidrBlock: \"172.16.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n});\nconst default1 = new alicloud.vpc.Switch(\"default1\", {\n    cidrBlock: \"172.16.1.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.ids?.[1]),\n});\nconst HA_VPN = new alicloud.vpn.Gateway(\"HA-VPN\", {\n    vpnType: \"Normal\",\n    disasterRecoveryVswitchId: default1.id,\n    vpnGatewayName: name,\n    vswitchId: default0.id,\n    autoPay: true,\n    vpcId: defaultNetwork.id,\n    networkType: \"public\",\n    paymentType: \"Subscription\",\n    enableIpsec: true,\n    bandwidth: spec,\n});\nconst defaultCustomerGateway = new alicloud.vpn.CustomerGateway(\"defaultCustomerGateway\", {\n    description: \"defaultCustomerGateway\",\n    ipAddress: \"2.2.2.5\",\n    asn: \"2224\",\n    customerGatewayName: name,\n});\nconst changeCustomerGateway = new alicloud.vpn.CustomerGateway(\"changeCustomerGateway\", {\n    description: \"changeCustomerGateway\",\n    ipAddress: \"2.2.2.6\",\n    asn: \"2225\",\n    customerGatewayName: name,\n});\nconst defaultConnection = new alicloud.vpn.Connection(\"default\", {\n    vpnGatewayId: HA_VPN.id,\n    vpnConnectionName: name,\n    localSubnets: [\"3.0.0.0/24\"],\n    remoteSubnets: [\n        \"10.0.0.0/24\",\n        \"10.0.1.0/24\",\n    ],\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    enableTunnelsBgp: true,\n    tunnelOptionsSpecifications: [\n        {\n            tunnelIpsecConfig: {\n                ipsecAuthAlg: \"md5\",\n                ipsecEncAlg: \"aes256\",\n                ipsecLifetime: 16400,\n                ipsecPfs: \"group5\",\n            },\n            customerGatewayId: defaultCustomerGateway.id,\n            role: \"master\",\n            tunnelBgpConfig: {\n                localAsn: \"1219002\",\n                tunnelCidr: \"169.254.30.0/30\",\n                localBgpIp: \"169.254.30.1\",\n            },\n            tunnelIkeConfig: {\n                ikeMode: \"aggressive\",\n                ikeVersion: \"ikev2\",\n                localId: \"localid_tunnel2\",\n                psk: \"12345678\",\n                remoteId: \"remote2\",\n                ikeAuthAlg: \"md5\",\n                ikeEncAlg: \"aes256\",\n                ikeLifetime: 3600,\n                ikePfs: \"group14\",\n            },\n        },\n        {\n            tunnelIkeConfig: {\n                remoteId: \"remote24\",\n                ikeEncAlg: \"aes256\",\n                ikeLifetime: 27000,\n                ikeMode: \"aggressive\",\n                ikePfs: \"group5\",\n                ikeAuthAlg: \"md5\",\n                ikeVersion: \"ikev2\",\n                localId: \"localid_tunnel2\",\n                psk: \"12345678\",\n            },\n            tunnelIpsecConfig: {\n                ipsecLifetime: 2700,\n                ipsecPfs: \"group14\",\n                ipsecAuthAlg: \"md5\",\n                ipsecEncAlg: \"aes256\",\n            },\n            customerGatewayId: defaultCustomerGateway.id,\n            role: \"slave\",\n            tunnelBgpConfig: {\n                localAsn: \"1219002\",\n                localBgpIp: \"169.254.40.1\",\n                tunnelCidr: \"169.254.40.0/30\",\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nspec = config.get(\"spec\")\nif spec is None:\n    spec = \"5\"\ndefault = alicloud.vpn.get_gateway_zones(spec=\"5M\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    cidr_block=\"172.16.0.0/16\",\n    vpc_name=name)\ndefault0 = alicloud.vpc.Switch(\"default0\",\n    cidr_block=\"172.16.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.ids[0])\ndefault1 = alicloud.vpc.Switch(\"default1\",\n    cidr_block=\"172.16.1.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.ids[1])\nh_a__vpn = alicloud.vpn.Gateway(\"HA-VPN\",\n    vpn_type=\"Normal\",\n    disaster_recovery_vswitch_id=default1.id,\n    vpn_gateway_name=name,\n    vswitch_id=default0.id,\n    auto_pay=True,\n    vpc_id=default_network.id,\n    network_type=\"public\",\n    payment_type=\"Subscription\",\n    enable_ipsec=True,\n    bandwidth=spec)\ndefault_customer_gateway = alicloud.vpn.CustomerGateway(\"defaultCustomerGateway\",\n    description=\"defaultCustomerGateway\",\n    ip_address=\"2.2.2.5\",\n    asn=\"2224\",\n    customer_gateway_name=name)\nchange_customer_gateway = alicloud.vpn.CustomerGateway(\"changeCustomerGateway\",\n    description=\"changeCustomerGateway\",\n    ip_address=\"2.2.2.6\",\n    asn=\"2225\",\n    customer_gateway_name=name)\ndefault_connection = alicloud.vpn.Connection(\"default\",\n    vpn_gateway_id=h_a__vpn.id,\n    vpn_connection_name=name,\n    local_subnets=[\"3.0.0.0/24\"],\n    remote_subnets=[\n        \"10.0.0.0/24\",\n        \"10.0.1.0/24\",\n    ],\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    enable_tunnels_bgp=True,\n    tunnel_options_specifications=[\n        {\n            \"tunnel_ipsec_config\": {\n                \"ipsec_auth_alg\": \"md5\",\n                \"ipsec_enc_alg\": \"aes256\",\n                \"ipsec_lifetime\": 16400,\n                \"ipsec_pfs\": \"group5\",\n            },\n            \"customer_gateway_id\": default_customer_gateway.id,\n            \"role\": \"master\",\n            \"tunnel_bgp_config\": {\n                \"local_asn\": \"1219002\",\n                \"tunnel_cidr\": \"169.254.30.0/30\",\n                \"local_bgp_ip\": \"169.254.30.1\",\n            },\n            \"tunnel_ike_config\": {\n                \"ike_mode\": \"aggressive\",\n                \"ike_version\": \"ikev2\",\n                \"local_id\": \"localid_tunnel2\",\n                \"psk\": \"12345678\",\n                \"remote_id\": \"remote2\",\n                \"ike_auth_alg\": \"md5\",\n                \"ike_enc_alg\": \"aes256\",\n                \"ike_lifetime\": 3600,\n                \"ike_pfs\": \"group14\",\n            },\n        },\n        {\n            \"tunnel_ike_config\": {\n                \"remote_id\": \"remote24\",\n                \"ike_enc_alg\": \"aes256\",\n                \"ike_lifetime\": 27000,\n                \"ike_mode\": \"aggressive\",\n                \"ike_pfs\": \"group5\",\n                \"ike_auth_alg\": \"md5\",\n                \"ike_version\": \"ikev2\",\n                \"local_id\": \"localid_tunnel2\",\n                \"psk\": \"12345678\",\n            },\n            \"tunnel_ipsec_config\": {\n                \"ipsec_lifetime\": 2700,\n                \"ipsec_pfs\": \"group14\",\n                \"ipsec_auth_alg\": \"md5\",\n                \"ipsec_enc_alg\": \"aes256\",\n            },\n            \"customer_gateway_id\": default_customer_gateway.id,\n            \"role\": \"slave\",\n            \"tunnel_bgp_config\": {\n                \"local_asn\": \"1219002\",\n                \"local_bgp_ip\": \"169.254.40.1\",\n                \"tunnel_cidr\": \"169.254.40.0/30\",\n            },\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var spec = config.Get(\"spec\") ?? \"5\";\n    var @default = AliCloud.Vpn.GetGatewayZones.Invoke(new()\n    {\n        Spec = \"5M\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        CidrBlock = \"172.16.0.0/16\",\n        VpcName = name,\n    });\n\n    var default0 = new AliCloud.Vpc.Switch(\"default0\", new()\n    {\n        CidrBlock = \"172.16.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getGatewayZonesResult =\u003e getGatewayZonesResult.Ids[0])),\n    });\n\n    var default1 = new AliCloud.Vpc.Switch(\"default1\", new()\n    {\n        CidrBlock = \"172.16.1.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getGatewayZonesResult =\u003e getGatewayZonesResult.Ids[1])),\n    });\n\n    var HA_VPN = new AliCloud.Vpn.Gateway(\"HA-VPN\", new()\n    {\n        VpnType = \"Normal\",\n        DisasterRecoveryVswitchId = default1.Id,\n        VpnGatewayName = name,\n        VswitchId = default0.Id,\n        AutoPay = true,\n        VpcId = defaultNetwork.Id,\n        NetworkType = \"public\",\n        PaymentType = \"Subscription\",\n        EnableIpsec = true,\n        Bandwidth = spec,\n    });\n\n    var defaultCustomerGateway = new AliCloud.Vpn.CustomerGateway(\"defaultCustomerGateway\", new()\n    {\n        Description = \"defaultCustomerGateway\",\n        IpAddress = \"2.2.2.5\",\n        Asn = \"2224\",\n        CustomerGatewayName = name,\n    });\n\n    var changeCustomerGateway = new AliCloud.Vpn.CustomerGateway(\"changeCustomerGateway\", new()\n    {\n        Description = \"changeCustomerGateway\",\n        IpAddress = \"2.2.2.6\",\n        Asn = \"2225\",\n        CustomerGatewayName = name,\n    });\n\n    var defaultConnection = new AliCloud.Vpn.Connection(\"default\", new()\n    {\n        VpnGatewayId = HA_VPN.Id,\n        VpnConnectionName = name,\n        LocalSubnets = new[]\n        {\n            \"3.0.0.0/24\",\n        },\n        RemoteSubnets = new[]\n        {\n            \"10.0.0.0/24\",\n            \"10.0.1.0/24\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        EnableTunnelsBgp = true,\n        TunnelOptionsSpecifications = new[]\n        {\n            new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationArgs\n            {\n                TunnelIpsecConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs\n                {\n                    IpsecAuthAlg = \"md5\",\n                    IpsecEncAlg = \"aes256\",\n                    IpsecLifetime = 16400,\n                    IpsecPfs = \"group5\",\n                },\n                CustomerGatewayId = defaultCustomerGateway.Id,\n                Role = \"master\",\n                TunnelBgpConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs\n                {\n                    LocalAsn = \"1219002\",\n                    TunnelCidr = \"169.254.30.0/30\",\n                    LocalBgpIp = \"169.254.30.1\",\n                },\n                TunnelIkeConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs\n                {\n                    IkeMode = \"aggressive\",\n                    IkeVersion = \"ikev2\",\n                    LocalId = \"localid_tunnel2\",\n                    Psk = \"12345678\",\n                    RemoteId = \"remote2\",\n                    IkeAuthAlg = \"md5\",\n                    IkeEncAlg = \"aes256\",\n                    IkeLifetime = 3600,\n                    IkePfs = \"group14\",\n                },\n            },\n            new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationArgs\n            {\n                TunnelIkeConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs\n                {\n                    RemoteId = \"remote24\",\n                    IkeEncAlg = \"aes256\",\n                    IkeLifetime = 27000,\n                    IkeMode = \"aggressive\",\n                    IkePfs = \"group5\",\n                    IkeAuthAlg = \"md5\",\n                    IkeVersion = \"ikev2\",\n                    LocalId = \"localid_tunnel2\",\n                    Psk = \"12345678\",\n                },\n                TunnelIpsecConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs\n                {\n                    IpsecLifetime = 2700,\n                    IpsecPfs = \"group14\",\n                    IpsecAuthAlg = \"md5\",\n                    IpsecEncAlg = \"aes256\",\n                },\n                CustomerGatewayId = defaultCustomerGateway.Id,\n                Role = \"slave\",\n                TunnelBgpConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs\n                {\n                    LocalAsn = \"1219002\",\n                    LocalBgpIp = \"169.254.40.1\",\n                    TunnelCidr = \"169.254.40.0/30\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tspec := \"5\"\n\t\tif param := cfg.Get(\"spec\"); param != \"\" {\n\t\t\tspec = param\n\t\t}\n\t\t_default, err := vpn.GetGatewayZones(ctx, \u0026vpn.GetGatewayZonesArgs{\n\t\t\tSpec: \"5M\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault0, err := vpc.NewSwitch(ctx, \"default0\", \u0026vpc.SwitchArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/24\"),\n\t\t\tVpcId:     defaultNetwork.ID(),\n\t\t\tZoneId:    pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1, err := vpc.NewSwitch(ctx, \"default1\", \u0026vpc.SwitchArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.1.0/24\"),\n\t\t\tVpcId:     defaultNetwork.ID(),\n\t\t\tZoneId:    pulumi.String(_default.Ids[1]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tHA_VPN, err := vpn.NewGateway(ctx, \"HA-VPN\", \u0026vpn.GatewayArgs{\n\t\t\tVpnType:                   pulumi.String(\"Normal\"),\n\t\t\tDisasterRecoveryVswitchId: default1.ID(),\n\t\t\tVpnGatewayName:            pulumi.String(name),\n\t\t\tVswitchId:                 default0.ID(),\n\t\t\tAutoPay:                   pulumi.Bool(true),\n\t\t\tVpcId:                     defaultNetwork.ID(),\n\t\t\tNetworkType:               pulumi.String(\"public\"),\n\t\t\tPaymentType:               pulumi.String(\"Subscription\"),\n\t\t\tEnableIpsec:               pulumi.Bool(true),\n\t\t\tBandwidth:                 pulumi.String(spec),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCustomerGateway, err := vpn.NewCustomerGateway(ctx, \"defaultCustomerGateway\", \u0026vpn.CustomerGatewayArgs{\n\t\t\tDescription:         pulumi.String(\"defaultCustomerGateway\"),\n\t\t\tIpAddress:           pulumi.String(\"2.2.2.5\"),\n\t\t\tAsn:                 pulumi.String(\"2224\"),\n\t\t\tCustomerGatewayName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpn.NewCustomerGateway(ctx, \"changeCustomerGateway\", \u0026vpn.CustomerGatewayArgs{\n\t\t\tDescription:         pulumi.String(\"changeCustomerGateway\"),\n\t\t\tIpAddress:           pulumi.String(\"2.2.2.6\"),\n\t\t\tAsn:                 pulumi.String(\"2225\"),\n\t\t\tCustomerGatewayName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpn.NewConnection(ctx, \"default\", \u0026vpn.ConnectionArgs{\n\t\t\tVpnGatewayId:      HA_VPN.ID(),\n\t\t\tVpnConnectionName: pulumi.String(name),\n\t\t\tLocalSubnets: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"3.0.0.0/24\"),\n\t\t\t},\n\t\t\tRemoteSubnets: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/24\"),\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tEnableTunnelsBgp: pulumi.Bool(true),\n\t\t\tTunnelOptionsSpecifications: vpn.ConnectionTunnelOptionsSpecificationArray{\n\t\t\t\t\u0026vpn.ConnectionTunnelOptionsSpecificationArgs{\n\t\t\t\t\tTunnelIpsecConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs{\n\t\t\t\t\t\tIpsecAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIpsecEncAlg:   pulumi.String(\"aes256\"),\n\t\t\t\t\t\tIpsecLifetime: pulumi.Int(16400),\n\t\t\t\t\t\tIpsecPfs:      pulumi.String(\"group5\"),\n\t\t\t\t\t},\n\t\t\t\t\tCustomerGatewayId: defaultCustomerGateway.ID(),\n\t\t\t\t\tRole:              pulumi.String(\"master\"),\n\t\t\t\t\tTunnelBgpConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs{\n\t\t\t\t\t\tLocalAsn:   pulumi.String(\"1219002\"),\n\t\t\t\t\t\tTunnelCidr: pulumi.String(\"169.254.30.0/30\"),\n\t\t\t\t\t\tLocalBgpIp: pulumi.String(\"169.254.30.1\"),\n\t\t\t\t\t},\n\t\t\t\t\tTunnelIkeConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs{\n\t\t\t\t\t\tIkeMode:     pulumi.String(\"aggressive\"),\n\t\t\t\t\t\tIkeVersion:  pulumi.String(\"ikev2\"),\n\t\t\t\t\t\tLocalId:     pulumi.String(\"localid_tunnel2\"),\n\t\t\t\t\t\tPsk:         pulumi.String(\"12345678\"),\n\t\t\t\t\t\tRemoteId:    pulumi.String(\"remote2\"),\n\t\t\t\t\t\tIkeAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIkeEncAlg:   pulumi.String(\"aes256\"),\n\t\t\t\t\t\tIkeLifetime: pulumi.Int(3600),\n\t\t\t\t\t\tIkePfs:      pulumi.String(\"group14\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026vpn.ConnectionTunnelOptionsSpecificationArgs{\n\t\t\t\t\tTunnelIkeConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs{\n\t\t\t\t\t\tRemoteId:    pulumi.String(\"remote24\"),\n\t\t\t\t\t\tIkeEncAlg:   pulumi.String(\"aes256\"),\n\t\t\t\t\t\tIkeLifetime: pulumi.Int(27000),\n\t\t\t\t\t\tIkeMode:     pulumi.String(\"aggressive\"),\n\t\t\t\t\t\tIkePfs:      pulumi.String(\"group5\"),\n\t\t\t\t\t\tIkeAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIkeVersion:  pulumi.String(\"ikev2\"),\n\t\t\t\t\t\tLocalId:     pulumi.String(\"localid_tunnel2\"),\n\t\t\t\t\t\tPsk:         pulumi.String(\"12345678\"),\n\t\t\t\t\t},\n\t\t\t\t\tTunnelIpsecConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs{\n\t\t\t\t\t\tIpsecLifetime: pulumi.Int(2700),\n\t\t\t\t\t\tIpsecPfs:      pulumi.String(\"group14\"),\n\t\t\t\t\t\tIpsecAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIpsecEncAlg:   pulumi.String(\"aes256\"),\n\t\t\t\t\t},\n\t\t\t\t\tCustomerGatewayId: defaultCustomerGateway.ID(),\n\t\t\t\t\tRole:              pulumi.String(\"slave\"),\n\t\t\t\t\tTunnelBgpConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs{\n\t\t\t\t\t\tLocalAsn:   pulumi.String(\"1219002\"),\n\t\t\t\t\t\tLocalBgpIp: pulumi.String(\"169.254.40.1\"),\n\t\t\t\t\t\tTunnelCidr: pulumi.String(\"169.254.40.0/30\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpn.VpnFunctions;\nimport com.pulumi.alicloud.vpn.inputs.GetGatewayZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpn.Gateway;\nimport com.pulumi.alicloud.vpn.GatewayArgs;\nimport com.pulumi.alicloud.vpn.CustomerGateway;\nimport com.pulumi.alicloud.vpn.CustomerGatewayArgs;\nimport com.pulumi.alicloud.vpn.Connection;\nimport com.pulumi.alicloud.vpn.ConnectionArgs;\nimport com.pulumi.alicloud.vpn.inputs.ConnectionTunnelOptionsSpecificationArgs;\nimport com.pulumi.alicloud.vpn.inputs.ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var spec = config.get(\"spec\").orElse(\"5\");\n        final var default = VpnFunctions.getGatewayZones(GetGatewayZonesArgs.builder()\n            .spec(\"5M\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/16\")\n            .vpcName(name)\n            .build());\n\n        var default0 = new Switch(\"default0\", SwitchArgs.builder()\n            .cidrBlock(\"172.16.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.ids()[0])\n            .build());\n\n        var default1 = new Switch(\"default1\", SwitchArgs.builder()\n            .cidrBlock(\"172.16.1.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.ids()[1])\n            .build());\n\n        var hA_VPN = new Gateway(\"HA-VPN\", GatewayArgs.builder()\n            .vpnType(\"Normal\")\n            .disasterRecoveryVswitchId(default1.id())\n            .vpnGatewayName(name)\n            .vswitchId(default0.id())\n            .autoPay(true)\n            .vpcId(defaultNetwork.id())\n            .networkType(\"public\")\n            .paymentType(\"Subscription\")\n            .enableIpsec(true)\n            .bandwidth(spec)\n            .build());\n\n        var defaultCustomerGateway = new CustomerGateway(\"defaultCustomerGateway\", CustomerGatewayArgs.builder()\n            .description(\"defaultCustomerGateway\")\n            .ipAddress(\"2.2.2.5\")\n            .asn(\"2224\")\n            .customerGatewayName(name)\n            .build());\n\n        var changeCustomerGateway = new CustomerGateway(\"changeCustomerGateway\", CustomerGatewayArgs.builder()\n            .description(\"changeCustomerGateway\")\n            .ipAddress(\"2.2.2.6\")\n            .asn(\"2225\")\n            .customerGatewayName(name)\n            .build());\n\n        var defaultConnection = new Connection(\"defaultConnection\", ConnectionArgs.builder()\n            .vpnGatewayId(HA_VPN.id())\n            .vpnConnectionName(name)\n            .localSubnets(\"3.0.0.0/24\")\n            .remoteSubnets(            \n                \"10.0.0.0/24\",\n                \"10.0.1.0/24\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .enableTunnelsBgp(true)\n            .tunnelOptionsSpecifications(            \n                ConnectionTunnelOptionsSpecificationArgs.builder()\n                    .tunnelIpsecConfig(ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs.builder()\n                        .ipsecAuthAlg(\"md5\")\n                        .ipsecEncAlg(\"aes256\")\n                        .ipsecLifetime(16400)\n                        .ipsecPfs(\"group5\")\n                        .build())\n                    .customerGatewayId(defaultCustomerGateway.id())\n                    .role(\"master\")\n                    .tunnelBgpConfig(ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs.builder()\n                        .localAsn(\"1219002\")\n                        .tunnelCidr(\"169.254.30.0/30\")\n                        .localBgpIp(\"169.254.30.1\")\n                        .build())\n                    .tunnelIkeConfig(ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs.builder()\n                        .ikeMode(\"aggressive\")\n                        .ikeVersion(\"ikev2\")\n                        .localId(\"localid_tunnel2\")\n                        .psk(\"12345678\")\n                        .remoteId(\"remote2\")\n                        .ikeAuthAlg(\"md5\")\n                        .ikeEncAlg(\"aes256\")\n                        .ikeLifetime(3600)\n                        .ikePfs(\"group14\")\n                        .build())\n                    .build(),\n                ConnectionTunnelOptionsSpecificationArgs.builder()\n                    .tunnelIkeConfig(ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs.builder()\n                        .remoteId(\"remote24\")\n                        .ikeEncAlg(\"aes256\")\n                        .ikeLifetime(27000)\n                        .ikeMode(\"aggressive\")\n                        .ikePfs(\"group5\")\n                        .ikeAuthAlg(\"md5\")\n                        .ikeVersion(\"ikev2\")\n                        .localId(\"localid_tunnel2\")\n                        .psk(\"12345678\")\n                        .build())\n                    .tunnelIpsecConfig(ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs.builder()\n                        .ipsecLifetime(2700)\n                        .ipsecPfs(\"group14\")\n                        .ipsecAuthAlg(\"md5\")\n                        .ipsecEncAlg(\"aes256\")\n                        .build())\n                    .customerGatewayId(defaultCustomerGateway.id())\n                    .role(\"slave\")\n                    .tunnelBgpConfig(ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs.builder()\n                        .localAsn(\"1219002\")\n                        .localBgpIp(\"169.254.40.1\")\n                        .tunnelCidr(\"169.254.40.0/30\")\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  spec:\n    type: string\n    default: '5'\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      cidrBlock: 172.16.0.0/16\n      vpcName: ${name}\n  default0:\n    type: alicloud:vpc:Switch\n    properties:\n      cidrBlock: 172.16.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.ids[0]}\n  default1:\n    type: alicloud:vpc:Switch\n    properties:\n      cidrBlock: 172.16.1.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.ids[1]}\n  HA-VPN:\n    type: alicloud:vpn:Gateway\n    properties:\n      vpnType: Normal\n      disasterRecoveryVswitchId: ${default1.id}\n      vpnGatewayName: ${name}\n      vswitchId: ${default0.id}\n      autoPay: true\n      vpcId: ${defaultNetwork.id}\n      networkType: public\n      paymentType: Subscription\n      enableIpsec: true\n      bandwidth: ${spec}\n  defaultCustomerGateway:\n    type: alicloud:vpn:CustomerGateway\n    properties:\n      description: defaultCustomerGateway\n      ipAddress: 2.2.2.5\n      asn: '2224'\n      customerGatewayName: ${name}\n  changeCustomerGateway:\n    type: alicloud:vpn:CustomerGateway\n    properties:\n      description: changeCustomerGateway\n      ipAddress: 2.2.2.6\n      asn: '2225'\n      customerGatewayName: ${name}\n  defaultConnection:\n    type: alicloud:vpn:Connection\n    name: default\n    properties:\n      vpnGatewayId: ${[\"HA-VPN\"].id}\n      vpnConnectionName: ${name}\n      localSubnets:\n        - 3.0.0.0/24\n      remoteSubnets:\n        - 10.0.0.0/24\n        - 10.0.1.0/24\n      tags:\n        Created: TF\n        For: example\n      enableTunnelsBgp: 'true'\n      tunnelOptionsSpecifications:\n        - tunnelIpsecConfig:\n            ipsecAuthAlg: md5\n            ipsecEncAlg: aes256\n            ipsecLifetime: '16400'\n            ipsecPfs: group5\n          customerGatewayId: ${defaultCustomerGateway.id}\n          role: master\n          tunnelBgpConfig:\n            localAsn: '1219002'\n            tunnelCidr: 169.254.30.0/30\n            localBgpIp: 169.254.30.1\n          tunnelIkeConfig:\n            ikeMode: aggressive\n            ikeVersion: ikev2\n            localId: localid_tunnel2\n            psk: '12345678'\n            remoteId: remote2\n            ikeAuthAlg: md5\n            ikeEncAlg: aes256\n            ikeLifetime: '3600'\n            ikePfs: group14\n        - tunnelIkeConfig:\n            remoteId: remote24\n            ikeEncAlg: aes256\n            ikeLifetime: '27000'\n            ikeMode: aggressive\n            ikePfs: group5\n            ikeAuthAlg: md5\n            ikeVersion: ikev2\n            localId: localid_tunnel2\n            psk: '12345678'\n          tunnelIpsecConfig:\n            ipsecLifetime: '2700'\n            ipsecPfs: group14\n            ipsecAuthAlg: md5\n            ipsecEncAlg: aes256\n          customerGatewayId: ${defaultCustomerGateway.id}\n          role: slave\n          tunnelBgpConfig:\n            localAsn: '1219002'\n            localBgpIp: 169.254.40.1\n            tunnelCidr: 169.254.40.0/30\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vpn:getGatewayZones\n      arguments:\n        spec: 5M\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPN connection can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpn/connection:Connection example \u003cid\u003e\n```\n\n","properties":{"autoConfigRoute":{"type":"boolean","description":"Whether to configure routing automatically. Value:\n- **true**: Automatically configure routes.\n- **false**: does not automatically configure routes.\n"},"bgpConfig":{"$ref":"#/types/alicloud:vpn/ConnectionBgpConfig:ConnectionBgpConfig","description":"vpnBgp configuration. See \u003cspan pulumi-lang-nodejs=\"`bgpConfig`\" pulumi-lang-dotnet=\"`BgpConfig`\" pulumi-lang-go=\"`bgpConfig`\" pulumi-lang-python=\"`bgp_config`\" pulumi-lang-yaml=\"`bgpConfig`\" pulumi-lang-java=\"`bgpConfig`\"\u003e`bgp_config`\u003c/span\u003e below.\n"},"createTime":{"type":"integer","description":"The time when the IPsec-VPN connection was created.\n"},"customerGatewayId":{"type":"string","description":"The ID of the customer gateway.\n"},"effectImmediately":{"type":"boolean","description":"Indicates whether IPsec-VPN negotiations are initiated immediately. Valid values.\n"},"enableDpd":{"type":"boolean","description":"Wether enable Dpd detection.\n"},"enableNatTraversal":{"type":"boolean","description":"enable nat traversal.\n"},"enableTunnelsBgp":{"type":"boolean","description":"Enable tunnel bgp.\n"},"healthCheckConfig":{"$ref":"#/types/alicloud:vpn/ConnectionHealthCheckConfig:ConnectionHealthCheckConfig","description":"Health Check information. See \u003cspan pulumi-lang-nodejs=\"`healthCheckConfig`\" pulumi-lang-dotnet=\"`HealthCheckConfig`\" pulumi-lang-go=\"`healthCheckConfig`\" pulumi-lang-python=\"`health_check_config`\" pulumi-lang-yaml=\"`healthCheckConfig`\" pulumi-lang-java=\"`healthCheckConfig`\"\u003e`health_check_config`\u003c/span\u003e below.\n"},"ikeConfig":{"$ref":"#/types/alicloud:vpn/ConnectionIkeConfig:ConnectionIkeConfig","description":"The configuration of Phase 1 negotiations. See \u003cspan pulumi-lang-nodejs=\"`ikeConfig`\" pulumi-lang-dotnet=\"`IkeConfig`\" pulumi-lang-go=\"`ikeConfig`\" pulumi-lang-python=\"`ike_config`\" pulumi-lang-yaml=\"`ikeConfig`\" pulumi-lang-java=\"`ikeConfig`\"\u003e`ike_config`\u003c/span\u003e below.\n"},"ipsecConfig":{"$ref":"#/types/alicloud:vpn/ConnectionIpsecConfig:ConnectionIpsecConfig","description":"IPsec configuration. See \u003cspan pulumi-lang-nodejs=\"`ipsecConfig`\" pulumi-lang-dotnet=\"`IpsecConfig`\" pulumi-lang-go=\"`ipsecConfig`\" pulumi-lang-python=\"`ipsec_config`\" pulumi-lang-yaml=\"`ipsecConfig`\" pulumi-lang-java=\"`ipsecConfig`\"\u003e`ipsec_config`\u003c/span\u003e below.\n"},"localSubnets":{"type":"array","items":{"type":"string"},"description":"The CIDR block of the VPC to be connected with the local data center. This parameter is used for phase-two negotiation.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.216.0. New field 'vpn_connection_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.216.0. New field 'vpn_connection_name' instead."},"networkType":{"type":"string","description":"The network type of the IPsec connection. Value:\n- **public**: public network, indicating that the IPsec connection establishes an encrypted communication channel through the public network.\n- **private**: private network, indicating that the IPsec connection establishes an encrypted communication channel through the private network.\n"},"remoteSubnets":{"type":"array","items":{"type":"string"},"description":"The CIDR block of the local data center. This parameter is used for phase-two negotiation.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The negotiation status of Tunnel.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags.\n"},"tunnelOptionsSpecifications":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/ConnectionTunnelOptionsSpecification:ConnectionTunnelOptionsSpecification"},"description":"The tunnel options of IPsec. See \u003cspan pulumi-lang-nodejs=\"`tunnelOptionsSpecification`\" pulumi-lang-dotnet=\"`TunnelOptionsSpecification`\" pulumi-lang-go=\"`tunnelOptionsSpecification`\" pulumi-lang-python=\"`tunnel_options_specification`\" pulumi-lang-yaml=\"`tunnelOptionsSpecification`\" pulumi-lang-java=\"`tunnelOptionsSpecification`\"\u003e`tunnel_options_specification`\u003c/span\u003e below.\n"},"vpnConnectionName":{"type":"string","description":"The name of the IPsec-VPN connection.\n"},"vpnGatewayId":{"type":"string","description":"The ID of the VPN gateway.\n"}},"required":["bgpConfig","createTime","enableDpd","enableNatTraversal","enableTunnelsBgp","healthCheckConfig","ikeConfig","ipsecConfig","localSubnets","name","remoteSubnets","resourceGroupId","status","vpnConnectionName","vpnGatewayId"],"inputProperties":{"autoConfigRoute":{"type":"boolean","description":"Whether to configure routing automatically. Value:\n- **true**: Automatically configure routes.\n- **false**: does not automatically configure routes.\n"},"bgpConfig":{"$ref":"#/types/alicloud:vpn/ConnectionBgpConfig:ConnectionBgpConfig","description":"vpnBgp configuration. See \u003cspan pulumi-lang-nodejs=\"`bgpConfig`\" pulumi-lang-dotnet=\"`BgpConfig`\" pulumi-lang-go=\"`bgpConfig`\" pulumi-lang-python=\"`bgp_config`\" pulumi-lang-yaml=\"`bgpConfig`\" pulumi-lang-java=\"`bgpConfig`\"\u003e`bgp_config`\u003c/span\u003e below.\n"},"customerGatewayId":{"type":"string","description":"The ID of the customer gateway.\n","willReplaceOnChanges":true},"effectImmediately":{"type":"boolean","description":"Indicates whether IPsec-VPN negotiations are initiated immediately. Valid values.\n"},"enableDpd":{"type":"boolean","description":"Wether enable Dpd detection.\n"},"enableNatTraversal":{"type":"boolean","description":"enable nat traversal.\n"},"enableTunnelsBgp":{"type":"boolean","description":"Enable tunnel bgp.\n"},"healthCheckConfig":{"$ref":"#/types/alicloud:vpn/ConnectionHealthCheckConfig:ConnectionHealthCheckConfig","description":"Health Check information. See \u003cspan pulumi-lang-nodejs=\"`healthCheckConfig`\" pulumi-lang-dotnet=\"`HealthCheckConfig`\" pulumi-lang-go=\"`healthCheckConfig`\" pulumi-lang-python=\"`health_check_config`\" pulumi-lang-yaml=\"`healthCheckConfig`\" pulumi-lang-java=\"`healthCheckConfig`\"\u003e`health_check_config`\u003c/span\u003e below.\n"},"ikeConfig":{"$ref":"#/types/alicloud:vpn/ConnectionIkeConfig:ConnectionIkeConfig","description":"The configuration of Phase 1 negotiations. See \u003cspan pulumi-lang-nodejs=\"`ikeConfig`\" pulumi-lang-dotnet=\"`IkeConfig`\" pulumi-lang-go=\"`ikeConfig`\" pulumi-lang-python=\"`ike_config`\" pulumi-lang-yaml=\"`ikeConfig`\" pulumi-lang-java=\"`ikeConfig`\"\u003e`ike_config`\u003c/span\u003e below.\n"},"ipsecConfig":{"$ref":"#/types/alicloud:vpn/ConnectionIpsecConfig:ConnectionIpsecConfig","description":"IPsec configuration. See \u003cspan pulumi-lang-nodejs=\"`ipsecConfig`\" pulumi-lang-dotnet=\"`IpsecConfig`\" pulumi-lang-go=\"`ipsecConfig`\" pulumi-lang-python=\"`ipsec_config`\" pulumi-lang-yaml=\"`ipsecConfig`\" pulumi-lang-java=\"`ipsecConfig`\"\u003e`ipsec_config`\u003c/span\u003e below.\n"},"localSubnets":{"type":"array","items":{"type":"string"},"description":"The CIDR block of the VPC to be connected with the local data center. This parameter is used for phase-two negotiation.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.216.0. New field 'vpn_connection_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.216.0. New field 'vpn_connection_name' instead."},"networkType":{"type":"string","description":"The network type of the IPsec connection. Value:\n- **public**: public network, indicating that the IPsec connection establishes an encrypted communication channel through the public network.\n- **private**: private network, indicating that the IPsec connection establishes an encrypted communication channel through the private network.\n"},"remoteSubnets":{"type":"array","items":{"type":"string"},"description":"The CIDR block of the local data center. This parameter is used for phase-two negotiation.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags.\n"},"tunnelOptionsSpecifications":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/ConnectionTunnelOptionsSpecification:ConnectionTunnelOptionsSpecification"},"description":"The tunnel options of IPsec. See \u003cspan pulumi-lang-nodejs=\"`tunnelOptionsSpecification`\" pulumi-lang-dotnet=\"`TunnelOptionsSpecification`\" pulumi-lang-go=\"`tunnelOptionsSpecification`\" pulumi-lang-python=\"`tunnel_options_specification`\" pulumi-lang-yaml=\"`tunnelOptionsSpecification`\" pulumi-lang-java=\"`tunnelOptionsSpecification`\"\u003e`tunnel_options_specification`\u003c/span\u003e below.\n"},"vpnConnectionName":{"type":"string","description":"The name of the IPsec-VPN connection.\n"},"vpnGatewayId":{"type":"string","description":"The ID of the VPN gateway.\n","willReplaceOnChanges":true}},"requiredInputs":["localSubnets","remoteSubnets","vpnGatewayId"],"stateInputs":{"description":"Input properties used for looking up and filtering Connection resources.\n","properties":{"autoConfigRoute":{"type":"boolean","description":"Whether to configure routing automatically. Value:\n- **true**: Automatically configure routes.\n- **false**: does not automatically configure routes.\n"},"bgpConfig":{"$ref":"#/types/alicloud:vpn/ConnectionBgpConfig:ConnectionBgpConfig","description":"vpnBgp configuration. See \u003cspan pulumi-lang-nodejs=\"`bgpConfig`\" pulumi-lang-dotnet=\"`BgpConfig`\" pulumi-lang-go=\"`bgpConfig`\" pulumi-lang-python=\"`bgp_config`\" pulumi-lang-yaml=\"`bgpConfig`\" pulumi-lang-java=\"`bgpConfig`\"\u003e`bgp_config`\u003c/span\u003e below.\n"},"createTime":{"type":"integer","description":"The time when the IPsec-VPN connection was created.\n"},"customerGatewayId":{"type":"string","description":"The ID of the customer gateway.\n","willReplaceOnChanges":true},"effectImmediately":{"type":"boolean","description":"Indicates whether IPsec-VPN negotiations are initiated immediately. Valid values.\n"},"enableDpd":{"type":"boolean","description":"Wether enable Dpd detection.\n"},"enableNatTraversal":{"type":"boolean","description":"enable nat traversal.\n"},"enableTunnelsBgp":{"type":"boolean","description":"Enable tunnel bgp.\n"},"healthCheckConfig":{"$ref":"#/types/alicloud:vpn/ConnectionHealthCheckConfig:ConnectionHealthCheckConfig","description":"Health Check information. See \u003cspan pulumi-lang-nodejs=\"`healthCheckConfig`\" pulumi-lang-dotnet=\"`HealthCheckConfig`\" pulumi-lang-go=\"`healthCheckConfig`\" pulumi-lang-python=\"`health_check_config`\" pulumi-lang-yaml=\"`healthCheckConfig`\" pulumi-lang-java=\"`healthCheckConfig`\"\u003e`health_check_config`\u003c/span\u003e below.\n"},"ikeConfig":{"$ref":"#/types/alicloud:vpn/ConnectionIkeConfig:ConnectionIkeConfig","description":"The configuration of Phase 1 negotiations. See \u003cspan pulumi-lang-nodejs=\"`ikeConfig`\" pulumi-lang-dotnet=\"`IkeConfig`\" pulumi-lang-go=\"`ikeConfig`\" pulumi-lang-python=\"`ike_config`\" pulumi-lang-yaml=\"`ikeConfig`\" pulumi-lang-java=\"`ikeConfig`\"\u003e`ike_config`\u003c/span\u003e below.\n"},"ipsecConfig":{"$ref":"#/types/alicloud:vpn/ConnectionIpsecConfig:ConnectionIpsecConfig","description":"IPsec configuration. See \u003cspan pulumi-lang-nodejs=\"`ipsecConfig`\" pulumi-lang-dotnet=\"`IpsecConfig`\" pulumi-lang-go=\"`ipsecConfig`\" pulumi-lang-python=\"`ipsec_config`\" pulumi-lang-yaml=\"`ipsecConfig`\" pulumi-lang-java=\"`ipsecConfig`\"\u003e`ipsec_config`\u003c/span\u003e below.\n"},"localSubnets":{"type":"array","items":{"type":"string"},"description":"The CIDR block of the VPC to be connected with the local data center. This parameter is used for phase-two negotiation.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.216.0. New field 'vpn_connection_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.216.0. New field 'vpn_connection_name' instead."},"networkType":{"type":"string","description":"The network type of the IPsec connection. Value:\n- **public**: public network, indicating that the IPsec connection establishes an encrypted communication channel through the public network.\n- **private**: private network, indicating that the IPsec connection establishes an encrypted communication channel through the private network.\n"},"remoteSubnets":{"type":"array","items":{"type":"string"},"description":"The CIDR block of the local data center. This parameter is used for phase-two negotiation.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The negotiation status of Tunnel.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags.\n"},"tunnelOptionsSpecifications":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/ConnectionTunnelOptionsSpecification:ConnectionTunnelOptionsSpecification"},"description":"The tunnel options of IPsec. See \u003cspan pulumi-lang-nodejs=\"`tunnelOptionsSpecification`\" pulumi-lang-dotnet=\"`TunnelOptionsSpecification`\" pulumi-lang-go=\"`tunnelOptionsSpecification`\" pulumi-lang-python=\"`tunnel_options_specification`\" pulumi-lang-yaml=\"`tunnelOptionsSpecification`\" pulumi-lang-java=\"`tunnelOptionsSpecification`\"\u003e`tunnel_options_specification`\u003c/span\u003e below.\n"},"vpnConnectionName":{"type":"string","description":"The name of the IPsec-VPN connection.\n"},"vpnGatewayId":{"type":"string","description":"The ID of the VPN gateway.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpn/customerGateway:CustomerGateway":{"description":"Provides a VPN customer gateway resource.\n\n\u003e **NOTE:** Terraform will auto build vpn customer gateway instance  while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.vpn.CustomerGateway`\" pulumi-lang-dotnet=\"`alicloud.vpn.CustomerGateway`\" pulumi-lang-go=\"`vpn.CustomerGateway`\" pulumi-lang-python=\"`vpn.CustomerGateway`\" pulumi-lang-yaml=\"`alicloud.vpn.CustomerGateway`\" pulumi-lang-java=\"`alicloud.vpn.CustomerGateway`\"\u003e`alicloud.vpn.CustomerGateway`\u003c/span\u003e to build a vpn customer gateway resource.\n\nFor information about VPN customer gateway and how to use it, see [What is VPN customer gateway](https://www.alibabacloud.com/help/en/doc-detail/120368.html).\n\n\u003e **NOTE:** Available since v1.210.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.vpn.CustomerGateway(\"default\", {\n    description: name,\n    ipAddress: \"4.3.2.10\",\n    asn: \"1219002\",\n    customerGatewayName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.vpn.CustomerGateway(\"default\",\n    description=name,\n    ip_address=\"4.3.2.10\",\n    asn=\"1219002\",\n    customer_gateway_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Vpn.CustomerGateway(\"default\", new()\n    {\n        Description = name,\n        IpAddress = \"4.3.2.10\",\n        Asn = \"1219002\",\n        CustomerGatewayName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := vpn.NewCustomerGateway(ctx, \"default\", \u0026vpn.CustomerGatewayArgs{\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tIpAddress:           pulumi.String(\"4.3.2.10\"),\n\t\t\tAsn:                 pulumi.String(\"1219002\"),\n\t\t\tCustomerGatewayName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpn.CustomerGateway;\nimport com.pulumi.alicloud.vpn.CustomerGatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new CustomerGateway(\"default\", CustomerGatewayArgs.builder()\n            .description(name)\n            .ipAddress(\"4.3.2.10\")\n            .asn(\"1219002\")\n            .customerGatewayName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:vpn:CustomerGateway\n    properties:\n      description: ${name}\n      ipAddress: 4.3.2.10\n      asn: '1219002'\n      customerGatewayName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPN customer gateway can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpn/customerGateway:CustomerGateway example \u003cid\u003e\n```\n\n","properties":{"asn":{"type":"string","description":"Asn.\n"},"createTime":{"type":"integer","description":"The time when the customer gateway was created.\n"},"customerGatewayName":{"type":"string","description":"The name of the customer gateway.\n"},"description":{"type":"string","description":"The description of the customer gateway.\n"},"ipAddress":{"type":"string","description":"The IP address of the customer gateway.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.216.0. New field 'customer_gateway_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.210.0. New field 'customer_gateway_name' instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"tag.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"required":["createTime","customerGatewayName","ipAddress","name"],"inputProperties":{"asn":{"type":"string","description":"Asn.\n","willReplaceOnChanges":true},"customerGatewayName":{"type":"string","description":"The name of the customer gateway.\n"},"description":{"type":"string","description":"The description of the customer gateway.\n"},"ipAddress":{"type":"string","description":"The IP address of the customer gateway.\n","willReplaceOnChanges":true},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.216.0. New field 'customer_gateway_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.210.0. New field 'customer_gateway_name' instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"tag.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"requiredInputs":["ipAddress"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomerGateway resources.\n","properties":{"asn":{"type":"string","description":"Asn.\n","willReplaceOnChanges":true},"createTime":{"type":"integer","description":"The time when the customer gateway was created.\n"},"customerGatewayName":{"type":"string","description":"The name of the customer gateway.\n"},"description":{"type":"string","description":"The description of the customer gateway.\n"},"ipAddress":{"type":"string","description":"The IP address of the customer gateway.\n","willReplaceOnChanges":true},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.216.0. New field 'customer_gateway_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.210.0. New field 'customer_gateway_name' instead."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"tag.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"}},"type":"object"}},"alicloud:vpn/gateway:Gateway":{"description":"Provides a VPN gateway resource.\n\n\u003e **NOTE:** Terraform will auto build vpn instance  while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.vpn.Gateway`\" pulumi-lang-dotnet=\"`alicloud.vpn.Gateway`\" pulumi-lang-go=\"`vpn.Gateway`\" pulumi-lang-python=\"`vpn.Gateway`\" pulumi-lang-yaml=\"`alicloud.vpn.Gateway`\" pulumi-lang-java=\"`alicloud.vpn.Gateway`\"\u003e`alicloud.vpn.Gateway`\u003c/span\u003e to build a vpn resource.\n\n\u003e Currently International-Site account can open `PostPaid` VPN gateway and China-Site account can open `PrePaid` VPN gateway.\n\nFor information about VPN gateway and how to use it, see [What is VPN gateway](https://www.alibabacloud.com/help/en/doc-detail/120365.html).\n\n\u003e **NOTE:** Available since v1.13.0.\n\n## Example Usage\n\nBasic Usage\n\n[IPsec-VPN connections support the dual-tunnel mode](https://www.alibabacloud.com/help/en/vpn/product-overview/ipsec-vpn-connections-support-the-dual-tunnel-mode)\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst spec = config.get(\"spec\") || \"20\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst default0 = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[0],\n}));\nconst default1 = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[1],\n}));\nconst defaultGateway = new alicloud.vpn.Gateway(\"default\", {\n    vpnType: \"Normal\",\n    vpnGatewayName: name,\n    vswitchId: default0.then(default0 =\u003e default0.ids?.[0]),\n    disasterRecoveryVswitchId: default1.then(default1 =\u003e default1.ids?.[0]),\n    autoPay: true,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    networkType: \"public\",\n    paymentType: \"Subscription\",\n    enableIpsec: true,\n    bandwidth: spec,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nspec = config.get(\"spec\")\nif spec is None:\n    spec = \"20\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"172.16.0.0/16\")\ndefault0 = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[0])\ndefault1 = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[1])\ndefault_gateway = alicloud.vpn.Gateway(\"default\",\n    vpn_type=\"Normal\",\n    vpn_gateway_name=name,\n    vswitch_id=default0.ids[0],\n    disaster_recovery_vswitch_id=default1.ids[0],\n    auto_pay=True,\n    vpc_id=default_get_networks.ids[0],\n    network_type=\"public\",\n    payment_type=\"Subscription\",\n    enable_ipsec=True,\n    bandwidth=spec)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var spec = config.Get(\"spec\") ?? \"20\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var default0 = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n    });\n\n    var default1 = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[1]),\n    });\n\n    var defaultGateway = new AliCloud.Vpn.Gateway(\"default\", new()\n    {\n        VpnType = \"Normal\",\n        VpnGatewayName = name,\n        VswitchId = default0.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        DisasterRecoveryVswitchId = default1.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        AutoPay = true,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        NetworkType = \"public\",\n        PaymentType = \"Subscription\",\n        EnableIpsec = true,\n        Bandwidth = spec,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tspec := \"20\"\n\t\tif param := cfg.Get(\"spec\"); param != \"\" {\n\t\t\tspec = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"172.16.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault0, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[1]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpn.NewGateway(ctx, \"default\", \u0026vpn.GatewayArgs{\n\t\t\tVpnType:                   pulumi.String(\"Normal\"),\n\t\t\tVpnGatewayName:            pulumi.String(name),\n\t\t\tVswitchId:                 pulumi.String(default0.Ids[0]),\n\t\t\tDisasterRecoveryVswitchId: pulumi.String(default1.Ids[0]),\n\t\t\tAutoPay:                   pulumi.Bool(true),\n\t\t\tVpcId:                     pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tNetworkType:               pulumi.String(\"public\"),\n\t\t\tPaymentType:               pulumi.String(\"Subscription\"),\n\t\t\tEnableIpsec:               pulumi.Bool(true),\n\t\t\tBandwidth:                 pulumi.String(spec),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.vpn.Gateway;\nimport com.pulumi.alicloud.vpn.GatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var spec = config.get(\"spec\").orElse(\"20\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        final var default0 = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[0])\n            .build());\n\n        final var default1 = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[1])\n            .build());\n\n        var defaultGateway = new Gateway(\"defaultGateway\", GatewayArgs.builder()\n            .vpnType(\"Normal\")\n            .vpnGatewayName(name)\n            .vswitchId(default0.ids()[0])\n            .disasterRecoveryVswitchId(default1.ids()[0])\n            .autoPay(true)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .networkType(\"public\")\n            .paymentType(\"Subscription\")\n            .enableIpsec(true)\n            .bandwidth(spec)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  spec:\n    type: string\n    default: '20'\nresources:\n  defaultGateway:\n    type: alicloud:vpn:Gateway\n    name: default\n    properties:\n      vpnType: Normal\n      vpnGatewayName: ${name}\n      vswitchId: ${default0.ids[0]}\n      disasterRecoveryVswitchId: ${default1.ids[0]}\n      autoPay: true\n      vpcId: ${defaultGetNetworks.ids[0]}\n      networkType: public\n      paymentType: Subscription\n      enableIpsec: true\n      bandwidth: ${spec}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 172.16.0.0/16\n  default0:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[0]}\n  default1:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[1]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.vpn.Gateway`\" pulumi-lang-dotnet=\"`alicloud.vpn.Gateway`\" pulumi-lang-go=\"`vpn.Gateway`\" pulumi-lang-python=\"`vpn.Gateway`\" pulumi-lang-yaml=\"`alicloud.vpn.Gateway`\" pulumi-lang-java=\"`alicloud.vpn.Gateway`\"\u003e`alicloud.vpn.Gateway`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.vpn.Gateway`\" pulumi-lang-dotnet=\"`alicloud.vpn.Gateway`\" pulumi-lang-go=\"`vpn.Gateway`\" pulumi-lang-python=\"`vpn.Gateway`\" pulumi-lang-yaml=\"`alicloud.vpn.Gateway`\" pulumi-lang-java=\"`alicloud.vpn.Gateway`\"\u003e`alicloud.vpn.Gateway`\u003c/span\u003e resource allows you to manage  \u003cspan pulumi-lang-nodejs=\"`paymentType \" pulumi-lang-dotnet=\"`PaymentType \" pulumi-lang-go=\"`paymentType \" pulumi-lang-python=\"`payment_type \" pulumi-lang-yaml=\"`paymentType \" pulumi-lang-java=\"`paymentType \"\u003e`payment_type \u003c/span\u003e= \"Subscription\"`  instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the Instance.\nYou can resume managing the subscription instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPN gateway can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpn/gateway:Gateway example \u003cid\u003e\n```\n\n","properties":{"autoPay":{"type":"boolean","description":"Whether to pay automatically. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values:\n"},"autoPropagate":{"type":"boolean","description":"Whether to automatically propagate the BGP route to the VPC. Value:  true: Propagate automatically.  false: does not propagate automatically.\n"},"bandwidth":{"type":"integer","description":"The Bandwidth specification of the VPN gateway. Unit: Mbps.  If you want to create a public VPN gateway, the value is 5, 10, 20, 50, 100, 200, 500, or 1000. If you want to create a private VPN gateway, the value is 200 or 1000.\n"},"businessStatus":{"type":"string","description":"The business status of the VPN gateway.\n"},"createTime":{"type":"integer","description":"The time when the VPN gateway was created.\n"},"description":{"type":"string","description":"The description of the VPN gateway.\n"},"disasterRecoveryInternetIp":{"type":"string","description":"The backup public IP address of the VPN gateway. The second IP address assigned by the system to create an IPsec-VPN connection. This parameter is returned only when the VPN gateway supports the dual-tunnel mode.\n"},"disasterRecoveryVswitchId":{"type":"string","description":"The ID of the backup VSwitch to which the VPN gateway is attached.\n"},"enableIpsec":{"type":"boolean","description":"Enable or Disable IPSec VPN. At least one type of VPN should be enabled.\n"},"enableSsl":{"type":"boolean","description":"Enable or Disable SSL VPN.  At least one type of VPN should be enabled.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"},"instanceChargeType":{"type":"string","description":". Field 'instance_charge_type' has been deprecated from provider version 1.216.0. New field 'payment_type' instead.\n","deprecationMessage":"Field 'instance_charge_type' has been deprecated since provider version 1.215.0. New field 'payment_type' instead."},"internetIp":{"type":"string","description":"The internet ip of the VPN.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.216.0. New field 'vpn_gateway_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.215.0. New field 'vpn_gateway_name' instead."},"networkType":{"type":"string","description":"The network type of the VPN gateway. Value:  public (default): public VPN gateway. private: private network VPN gateway.\n"},"paymentType":{"type":"string","description":"Type of payment. Value: Subscription: prepaid PayAsYouGo: Post-paid.\n"},"period":{"type":"integer","description":"The filed is only required while the InstanceChargeType is PrePaid. Valid values: [1-9, 12, 24, 36]. Default to 1.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sslConnections":{"type":"integer","description":"Maximum number of clients.\n"},"sslVpnInternetIp":{"type":"string","description":"The IP address of the SSL-VPN connection. This parameter is returned only when the VPN gateway is a public VPN gateway and supports only the single-tunnel mode. In addition, the VPN gateway must have the SSL-VPN feature enabled.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The Tag of.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the VPN gateway belongs.\n"},"vpnGatewayName":{"type":"string","description":"The name of the VPN gateway.\n"},"vpnType":{"type":"string","description":"The VPN gateway type. Value:  Normal (default): Normal type. NationalStandard: National Secret type.\n"},"vswitchId":{"type":"string","description":"The ID of the VSwitch to which the VPN gateway is attached.\n"}},"required":["bandwidth","businessStatus","createTime","disasterRecoveryInternetIp","disasterRecoveryVswitchId","instanceChargeType","internetIp","name","networkType","paymentType","resourceGroupId","sslConnections","sslVpnInternetIp","status","vpcId","vpnGatewayName","vpnType","vswitchId"],"inputProperties":{"autoPay":{"type":"boolean","description":"Whether to pay automatically. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values:\n"},"autoPropagate":{"type":"boolean","description":"Whether to automatically propagate the BGP route to the VPC. Value:  true: Propagate automatically.  false: does not propagate automatically.\n"},"bandwidth":{"type":"integer","description":"The Bandwidth specification of the VPN gateway. Unit: Mbps.  If you want to create a public VPN gateway, the value is 5, 10, 20, 50, 100, 200, 500, or 1000. If you want to create a private VPN gateway, the value is 200 or 1000.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the VPN gateway.\n"},"disasterRecoveryVswitchId":{"type":"string","description":"The ID of the backup VSwitch to which the VPN gateway is attached.\n"},"enableIpsec":{"type":"boolean","description":"Enable or Disable IPSec VPN. At least one type of VPN should be enabled.\n"},"enableSsl":{"type":"boolean","description":"Enable or Disable SSL VPN.  At least one type of VPN should be enabled.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"},"instanceChargeType":{"type":"string","description":". Field 'instance_charge_type' has been deprecated from provider version 1.216.0. New field 'payment_type' instead.\n","deprecationMessage":"Field 'instance_charge_type' has been deprecated since provider version 1.215.0. New field 'payment_type' instead.","willReplaceOnChanges":true},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.216.0. New field 'vpn_gateway_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.215.0. New field 'vpn_gateway_name' instead."},"networkType":{"type":"string","description":"The network type of the VPN gateway. Value:  public (default): public VPN gateway. private: private network VPN gateway.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"Type of payment. Value: Subscription: prepaid PayAsYouGo: Post-paid.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The filed is only required while the InstanceChargeType is PrePaid. Valid values: [1-9, 12, 24, 36]. Default to 1.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sslConnections":{"type":"integer","description":"Maximum number of clients.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The Tag of.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the VPN gateway belongs.\n","willReplaceOnChanges":true},"vpnGatewayName":{"type":"string","description":"The name of the VPN gateway.\n"},"vpnType":{"type":"string","description":"The VPN gateway type. Value:  Normal (default): Normal type. NationalStandard: National Secret type.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the VSwitch to which the VPN gateway is attached.\n","willReplaceOnChanges":true}},"requiredInputs":["bandwidth","vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering Gateway resources.\n","properties":{"autoPay":{"type":"boolean","description":"Whether to pay automatically. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Valid values:\n"},"autoPropagate":{"type":"boolean","description":"Whether to automatically propagate the BGP route to the VPC. Value:  true: Propagate automatically.  false: does not propagate automatically.\n"},"bandwidth":{"type":"integer","description":"The Bandwidth specification of the VPN gateway. Unit: Mbps.  If you want to create a public VPN gateway, the value is 5, 10, 20, 50, 100, 200, 500, or 1000. If you want to create a private VPN gateway, the value is 200 or 1000.\n","willReplaceOnChanges":true},"businessStatus":{"type":"string","description":"The business status of the VPN gateway.\n"},"createTime":{"type":"integer","description":"The time when the VPN gateway was created.\n"},"description":{"type":"string","description":"The description of the VPN gateway.\n"},"disasterRecoveryInternetIp":{"type":"string","description":"The backup public IP address of the VPN gateway. The second IP address assigned by the system to create an IPsec-VPN connection. This parameter is returned only when the VPN gateway supports the dual-tunnel mode.\n"},"disasterRecoveryVswitchId":{"type":"string","description":"The ID of the backup VSwitch to which the VPN gateway is attached.\n"},"enableIpsec":{"type":"boolean","description":"Enable or Disable IPSec VPN. At least one type of VPN should be enabled.\n"},"enableSsl":{"type":"boolean","description":"Enable or Disable SSL VPN.  At least one type of VPN should be enabled.\n\nThe following arguments will be discarded. Please use new fields as soon as possible:\n"},"instanceChargeType":{"type":"string","description":". Field 'instance_charge_type' has been deprecated from provider version 1.216.0. New field 'payment_type' instead.\n","deprecationMessage":"Field 'instance_charge_type' has been deprecated since provider version 1.215.0. New field 'payment_type' instead.","willReplaceOnChanges":true},"internetIp":{"type":"string","description":"The internet ip of the VPN.\n"},"name":{"type":"string","description":". Field 'name' has been deprecated from provider version 1.216.0. New field 'vpn_gateway_name' instead.\n","deprecationMessage":"Field 'name' has been deprecated since provider version 1.215.0. New field 'vpn_gateway_name' instead."},"networkType":{"type":"string","description":"The network type of the VPN gateway. Value:  public (default): public VPN gateway. private: private network VPN gateway.\n","willReplaceOnChanges":true},"paymentType":{"type":"string","description":"Type of payment. Value: Subscription: prepaid PayAsYouGo: Post-paid.\n","willReplaceOnChanges":true},"period":{"type":"integer","description":"The filed is only required while the InstanceChargeType is PrePaid. Valid values: [1-9, 12, 24, 36]. Default to 1.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sslConnections":{"type":"integer","description":"Maximum number of clients.\n","willReplaceOnChanges":true},"sslVpnInternetIp":{"type":"string","description":"The IP address of the SSL-VPN connection. This parameter is returned only when the VPN gateway is a public VPN gateway and supports only the single-tunnel mode. In addition, the VPN gateway must have the SSL-VPN feature enabled.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The Tag of.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the VPN gateway belongs.\n","willReplaceOnChanges":true},"vpnGatewayName":{"type":"string","description":"The name of the VPN gateway.\n"},"vpnType":{"type":"string","description":"The VPN gateway type. Value:  Normal (default): Normal type. NationalStandard: National Secret type.\n","willReplaceOnChanges":true},"vswitchId":{"type":"string","description":"The ID of the VSwitch to which the VPN gateway is attached.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpn/gatewayVcoRoute:GatewayVcoRoute":{"description":"Provides a VPN Gateway Vco Route resource.\n\nFor information about VPN Gateway Vco Route and how to use it, see [What is Vco Route](https://www.alibabacloud.com/help/zh/virtual-private-cloud/latest/createvcorouteentry).\n\n\u003e **NOTE:** Available since v1.183.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultInstance = new alicloud.cen.Instance(\"default\", {cenInstanceName: name});\nconst defaultTransitRouter = new alicloud.cen.TransitRouter(\"default\", {\n    cenId: defaultInstance.id,\n    transitRouterDescription: name,\n    transitRouterName: name,\n});\nconst defaultTransitRouterCidr = new alicloud.cen.TransitRouterCidr(\"default\", {\n    transitRouterId: defaultTransitRouter.transitRouterId,\n    cidr: \"192.168.0.0/16\",\n    transitRouterCidrName: name,\n    description: name,\n    publishCidrRoute: true,\n});\nconst _default = alicloud.cen.getTransitRouterAvailableResources({});\nconst defaultCustomerGateway = new alicloud.vpn.CustomerGateway(\"default\", {\n    customerGatewayName: name,\n    ipAddress: \"42.104.22.210\",\n    asn: \"45014\",\n    description: name,\n});\nconst defaultGatewayVpnAttachment = new alicloud.vpn.GatewayVpnAttachment(\"default\", {\n    customerGatewayId: defaultCustomerGateway.id,\n    networkType: \"public\",\n    localSubnet: \"0.0.0.0/0\",\n    remoteSubnet: \"0.0.0.0/0\",\n    effectImmediately: false,\n    ikeConfig: {\n        ikeAuthAlg: \"md5\",\n        ikeEncAlg: \"des\",\n        ikeVersion: \"ikev2\",\n        ikeMode: \"main\",\n        ikeLifetime: 86400,\n        psk: \"tf-examplevpn2\",\n        ikePfs: \"group1\",\n        remoteId: \"testbob2\",\n        localId: \"testalice2\",\n    },\n    ipsecConfig: {\n        ipsecPfs: \"group5\",\n        ipsecEncAlg: \"des\",\n        ipsecAuthAlg: \"md5\",\n        ipsecLifetime: 86400,\n    },\n    bgpConfig: {\n        enable: true,\n        localAsn: 45014,\n        tunnelCidr: \"169.254.11.0/30\",\n        localBgpIp: \"169.254.11.1\",\n    },\n    healthCheckConfig: {\n        enable: true,\n        sip: \"192.168.1.1\",\n        dip: \"10.0.0.1\",\n        interval: 10,\n        retry: 10,\n        policy: \"revoke_route\",\n    },\n    enableDpd: true,\n    enableNatTraversal: true,\n    vpnAttachmentName: name,\n});\nconst defaultTransitRouterVpnAttachment = new alicloud.cen.TransitRouterVpnAttachment(\"default\", {\n    autoPublishRouteEnabled: false,\n    transitRouterAttachmentDescription: name,\n    transitRouterAttachmentName: name,\n    cenId: defaultTransitRouter.cenId,\n    transitRouterId: defaultTransitRouterCidr.transitRouterId,\n    vpnId: defaultGatewayVpnAttachment.id,\n    zones: [{\n        zoneId: _default.then(_default =\u003e _default.resources?.[0]?.masterZones?.[0]),\n    }],\n});\nconst defaultGatewayVcoRoute = new alicloud.vpn.GatewayVcoRoute(\"default\", {\n    nextHop: defaultTransitRouterVpnAttachment.vpnId,\n    vpnConnectionId: defaultTransitRouterVpnAttachment.vpnId,\n    weight: 100,\n    routeDest: \"192.168.10.0/24\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_instance = alicloud.cen.Instance(\"default\", cen_instance_name=name)\ndefault_transit_router = alicloud.cen.TransitRouter(\"default\",\n    cen_id=default_instance.id,\n    transit_router_description=name,\n    transit_router_name=name)\ndefault_transit_router_cidr = alicloud.cen.TransitRouterCidr(\"default\",\n    transit_router_id=default_transit_router.transit_router_id,\n    cidr=\"192.168.0.0/16\",\n    transit_router_cidr_name=name,\n    description=name,\n    publish_cidr_route=True)\ndefault = alicloud.cen.get_transit_router_available_resources()\ndefault_customer_gateway = alicloud.vpn.CustomerGateway(\"default\",\n    customer_gateway_name=name,\n    ip_address=\"42.104.22.210\",\n    asn=\"45014\",\n    description=name)\ndefault_gateway_vpn_attachment = alicloud.vpn.GatewayVpnAttachment(\"default\",\n    customer_gateway_id=default_customer_gateway.id,\n    network_type=\"public\",\n    local_subnet=\"0.0.0.0/0\",\n    remote_subnet=\"0.0.0.0/0\",\n    effect_immediately=False,\n    ike_config={\n        \"ike_auth_alg\": \"md5\",\n        \"ike_enc_alg\": \"des\",\n        \"ike_version\": \"ikev2\",\n        \"ike_mode\": \"main\",\n        \"ike_lifetime\": 86400,\n        \"psk\": \"tf-examplevpn2\",\n        \"ike_pfs\": \"group1\",\n        \"remote_id\": \"testbob2\",\n        \"local_id\": \"testalice2\",\n    },\n    ipsec_config={\n        \"ipsec_pfs\": \"group5\",\n        \"ipsec_enc_alg\": \"des\",\n        \"ipsec_auth_alg\": \"md5\",\n        \"ipsec_lifetime\": 86400,\n    },\n    bgp_config={\n        \"enable\": True,\n        \"local_asn\": 45014,\n        \"tunnel_cidr\": \"169.254.11.0/30\",\n        \"local_bgp_ip\": \"169.254.11.1\",\n    },\n    health_check_config={\n        \"enable\": True,\n        \"sip\": \"192.168.1.1\",\n        \"dip\": \"10.0.0.1\",\n        \"interval\": 10,\n        \"retry\": 10,\n        \"policy\": \"revoke_route\",\n    },\n    enable_dpd=True,\n    enable_nat_traversal=True,\n    vpn_attachment_name=name)\ndefault_transit_router_vpn_attachment = alicloud.cen.TransitRouterVpnAttachment(\"default\",\n    auto_publish_route_enabled=False,\n    transit_router_attachment_description=name,\n    transit_router_attachment_name=name,\n    cen_id=default_transit_router.cen_id,\n    transit_router_id=default_transit_router_cidr.transit_router_id,\n    vpn_id=default_gateway_vpn_attachment.id,\n    zones=[{\n        \"zone_id\": default.resources[0].master_zones[0],\n    }])\ndefault_gateway_vco_route = alicloud.vpn.GatewayVcoRoute(\"default\",\n    next_hop=default_transit_router_vpn_attachment.vpn_id,\n    vpn_connection_id=default_transit_router_vpn_attachment.vpn_id,\n    weight=100,\n    route_dest=\"192.168.10.0/24\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultInstance = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        CenInstanceName = name,\n    });\n\n    var defaultTransitRouter = new AliCloud.Cen.TransitRouter(\"default\", new()\n    {\n        CenId = defaultInstance.Id,\n        TransitRouterDescription = name,\n        TransitRouterName = name,\n    });\n\n    var defaultTransitRouterCidr = new AliCloud.Cen.TransitRouterCidr(\"default\", new()\n    {\n        TransitRouterId = defaultTransitRouter.TransitRouterId,\n        Cidr = \"192.168.0.0/16\",\n        TransitRouterCidrName = name,\n        Description = name,\n        PublishCidrRoute = true,\n    });\n\n    var @default = AliCloud.Cen.GetTransitRouterAvailableResources.Invoke();\n\n    var defaultCustomerGateway = new AliCloud.Vpn.CustomerGateway(\"default\", new()\n    {\n        CustomerGatewayName = name,\n        IpAddress = \"42.104.22.210\",\n        Asn = \"45014\",\n        Description = name,\n    });\n\n    var defaultGatewayVpnAttachment = new AliCloud.Vpn.GatewayVpnAttachment(\"default\", new()\n    {\n        CustomerGatewayId = defaultCustomerGateway.Id,\n        NetworkType = \"public\",\n        LocalSubnet = \"0.0.0.0/0\",\n        RemoteSubnet = \"0.0.0.0/0\",\n        EffectImmediately = false,\n        IkeConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentIkeConfigArgs\n        {\n            IkeAuthAlg = \"md5\",\n            IkeEncAlg = \"des\",\n            IkeVersion = \"ikev2\",\n            IkeMode = \"main\",\n            IkeLifetime = 86400,\n            Psk = \"tf-examplevpn2\",\n            IkePfs = \"group1\",\n            RemoteId = \"testbob2\",\n            LocalId = \"testalice2\",\n        },\n        IpsecConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentIpsecConfigArgs\n        {\n            IpsecPfs = \"group5\",\n            IpsecEncAlg = \"des\",\n            IpsecAuthAlg = \"md5\",\n            IpsecLifetime = 86400,\n        },\n        BgpConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentBgpConfigArgs\n        {\n            Enable = true,\n            LocalAsn = 45014,\n            TunnelCidr = \"169.254.11.0/30\",\n            LocalBgpIp = \"169.254.11.1\",\n        },\n        HealthCheckConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentHealthCheckConfigArgs\n        {\n            Enable = true,\n            Sip = \"192.168.1.1\",\n            Dip = \"10.0.0.1\",\n            Interval = 10,\n            Retry = 10,\n            Policy = \"revoke_route\",\n        },\n        EnableDpd = true,\n        EnableNatTraversal = true,\n        VpnAttachmentName = name,\n    });\n\n    var defaultTransitRouterVpnAttachment = new AliCloud.Cen.TransitRouterVpnAttachment(\"default\", new()\n    {\n        AutoPublishRouteEnabled = false,\n        TransitRouterAttachmentDescription = name,\n        TransitRouterAttachmentName = name,\n        CenId = defaultTransitRouter.CenId,\n        TransitRouterId = defaultTransitRouterCidr.TransitRouterId,\n        VpnId = defaultGatewayVpnAttachment.Id,\n        Zones = new[]\n        {\n            new AliCloud.Cen.Inputs.TransitRouterVpnAttachmentZoneArgs\n            {\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.MasterZones[0])),\n            },\n        },\n    });\n\n    var defaultGatewayVcoRoute = new AliCloud.Vpn.GatewayVcoRoute(\"default\", new()\n    {\n        NextHop = defaultTransitRouterVpnAttachment.VpnId,\n        VpnConnectionId = defaultTransitRouterVpnAttachment.VpnId,\n        Weight = 100,\n        RouteDest = \"192.168.10.0/24\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInstance, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouter, err := cen.NewTransitRouter(ctx, \"default\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId:                    defaultInstance.ID(),\n\t\t\tTransitRouterDescription: pulumi.String(name),\n\t\t\tTransitRouterName:        pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouterCidr, err := cen.NewTransitRouterCidr(ctx, \"default\", \u0026cen.TransitRouterCidrArgs{\n\t\t\tTransitRouterId:       defaultTransitRouter.TransitRouterId,\n\t\t\tCidr:                  pulumi.String(\"192.168.0.0/16\"),\n\t\t\tTransitRouterCidrName: pulumi.String(name),\n\t\t\tDescription:           pulumi.String(name),\n\t\t\tPublishCidrRoute:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := cen.GetTransitRouterAvailableResources(ctx, \u0026cen.GetTransitRouterAvailableResourcesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCustomerGateway, err := vpn.NewCustomerGateway(ctx, \"default\", \u0026vpn.CustomerGatewayArgs{\n\t\t\tCustomerGatewayName: pulumi.String(name),\n\t\t\tIpAddress:           pulumi.String(\"42.104.22.210\"),\n\t\t\tAsn:                 pulumi.String(\"45014\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGatewayVpnAttachment, err := vpn.NewGatewayVpnAttachment(ctx, \"default\", \u0026vpn.GatewayVpnAttachmentArgs{\n\t\t\tCustomerGatewayId: defaultCustomerGateway.ID(),\n\t\t\tNetworkType:       pulumi.String(\"public\"),\n\t\t\tLocalSubnet:       pulumi.String(\"0.0.0.0/0\"),\n\t\t\tRemoteSubnet:      pulumi.String(\"0.0.0.0/0\"),\n\t\t\tEffectImmediately: pulumi.Bool(false),\n\t\t\tIkeConfig: \u0026vpn.GatewayVpnAttachmentIkeConfigArgs{\n\t\t\t\tIkeAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\tIkeEncAlg:   pulumi.String(\"des\"),\n\t\t\t\tIkeVersion:  pulumi.String(\"ikev2\"),\n\t\t\t\tIkeMode:     pulumi.String(\"main\"),\n\t\t\t\tIkeLifetime: pulumi.Int(86400),\n\t\t\t\tPsk:         pulumi.String(\"tf-examplevpn2\"),\n\t\t\t\tIkePfs:      pulumi.String(\"group1\"),\n\t\t\t\tRemoteId:    pulumi.String(\"testbob2\"),\n\t\t\t\tLocalId:     pulumi.String(\"testalice2\"),\n\t\t\t},\n\t\t\tIpsecConfig: \u0026vpn.GatewayVpnAttachmentIpsecConfigArgs{\n\t\t\t\tIpsecPfs:      pulumi.String(\"group5\"),\n\t\t\t\tIpsecEncAlg:   pulumi.String(\"des\"),\n\t\t\t\tIpsecAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\tIpsecLifetime: pulumi.Int(86400),\n\t\t\t},\n\t\t\tBgpConfig: \u0026vpn.GatewayVpnAttachmentBgpConfigArgs{\n\t\t\t\tEnable:     pulumi.Bool(true),\n\t\t\t\tLocalAsn:   pulumi.Int(45014),\n\t\t\t\tTunnelCidr: pulumi.String(\"169.254.11.0/30\"),\n\t\t\t\tLocalBgpIp: pulumi.String(\"169.254.11.1\"),\n\t\t\t},\n\t\t\tHealthCheckConfig: \u0026vpn.GatewayVpnAttachmentHealthCheckConfigArgs{\n\t\t\t\tEnable:   pulumi.Bool(true),\n\t\t\t\tSip:      pulumi.String(\"192.168.1.1\"),\n\t\t\t\tDip:      pulumi.String(\"10.0.0.1\"),\n\t\t\t\tInterval: pulumi.Int(10),\n\t\t\t\tRetry:    pulumi.Int(10),\n\t\t\t\tPolicy:   pulumi.String(\"revoke_route\"),\n\t\t\t},\n\t\t\tEnableDpd:          pulumi.Bool(true),\n\t\t\tEnableNatTraversal: pulumi.Bool(true),\n\t\t\tVpnAttachmentName:  pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouterVpnAttachment, err := cen.NewTransitRouterVpnAttachment(ctx, \"default\", \u0026cen.TransitRouterVpnAttachmentArgs{\n\t\t\tAutoPublishRouteEnabled:            pulumi.Bool(false),\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(name),\n\t\t\tTransitRouterAttachmentName:        pulumi.String(name),\n\t\t\tCenId:                              defaultTransitRouter.CenId,\n\t\t\tTransitRouterId:                    defaultTransitRouterCidr.TransitRouterId,\n\t\t\tVpnId:                              defaultGatewayVpnAttachment.ID(),\n\t\t\tZones: cen.TransitRouterVpnAttachmentZoneArray{\n\t\t\t\t\u0026cen.TransitRouterVpnAttachmentZoneArgs{\n\t\t\t\t\tZoneId: pulumi.String(_default.Resources[0].MasterZones[0]),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpn.NewGatewayVcoRoute(ctx, \"default\", \u0026vpn.GatewayVcoRouteArgs{\n\t\t\tNextHop:         defaultTransitRouterVpnAttachment.VpnId,\n\t\t\tVpnConnectionId: defaultTransitRouterVpnAttachment.VpnId,\n\t\t\tWeight:          pulumi.Int(100),\n\t\t\tRouteDest:       pulumi.String(\"192.168.10.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterCidr;\nimport com.pulumi.alicloud.cen.TransitRouterCidrArgs;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterAvailableResourcesArgs;\nimport com.pulumi.alicloud.vpn.CustomerGateway;\nimport com.pulumi.alicloud.vpn.CustomerGatewayArgs;\nimport com.pulumi.alicloud.vpn.GatewayVpnAttachment;\nimport com.pulumi.alicloud.vpn.GatewayVpnAttachmentArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentIkeConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentIpsecConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentBgpConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentHealthCheckConfigArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVpnAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVpnAttachmentArgs;\nimport com.pulumi.alicloud.cen.inputs.TransitRouterVpnAttachmentZoneArgs;\nimport com.pulumi.alicloud.vpn.GatewayVcoRoute;\nimport com.pulumi.alicloud.vpn.GatewayVcoRouteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .build());\n\n        var defaultTransitRouter = new TransitRouter(\"defaultTransitRouter\", TransitRouterArgs.builder()\n            .cenId(defaultInstance.id())\n            .transitRouterDescription(name)\n            .transitRouterName(name)\n            .build());\n\n        var defaultTransitRouterCidr = new TransitRouterCidr(\"defaultTransitRouterCidr\", TransitRouterCidrArgs.builder()\n            .transitRouterId(defaultTransitRouter.transitRouterId())\n            .cidr(\"192.168.0.0/16\")\n            .transitRouterCidrName(name)\n            .description(name)\n            .publishCidrRoute(true)\n            .build());\n\n        final var default = CenFunctions.getTransitRouterAvailableResources(GetTransitRouterAvailableResourcesArgs.builder()\n            .build());\n\n        var defaultCustomerGateway = new CustomerGateway(\"defaultCustomerGateway\", CustomerGatewayArgs.builder()\n            .customerGatewayName(name)\n            .ipAddress(\"42.104.22.210\")\n            .asn(\"45014\")\n            .description(name)\n            .build());\n\n        var defaultGatewayVpnAttachment = new GatewayVpnAttachment(\"defaultGatewayVpnAttachment\", GatewayVpnAttachmentArgs.builder()\n            .customerGatewayId(defaultCustomerGateway.id())\n            .networkType(\"public\")\n            .localSubnet(\"0.0.0.0/0\")\n            .remoteSubnet(\"0.0.0.0/0\")\n            .effectImmediately(false)\n            .ikeConfig(GatewayVpnAttachmentIkeConfigArgs.builder()\n                .ikeAuthAlg(\"md5\")\n                .ikeEncAlg(\"des\")\n                .ikeVersion(\"ikev2\")\n                .ikeMode(\"main\")\n                .ikeLifetime(86400)\n                .psk(\"tf-examplevpn2\")\n                .ikePfs(\"group1\")\n                .remoteId(\"testbob2\")\n                .localId(\"testalice2\")\n                .build())\n            .ipsecConfig(GatewayVpnAttachmentIpsecConfigArgs.builder()\n                .ipsecPfs(\"group5\")\n                .ipsecEncAlg(\"des\")\n                .ipsecAuthAlg(\"md5\")\n                .ipsecLifetime(86400)\n                .build())\n            .bgpConfig(GatewayVpnAttachmentBgpConfigArgs.builder()\n                .enable(true)\n                .localAsn(45014)\n                .tunnelCidr(\"169.254.11.0/30\")\n                .localBgpIp(\"169.254.11.1\")\n                .build())\n            .healthCheckConfig(GatewayVpnAttachmentHealthCheckConfigArgs.builder()\n                .enable(true)\n                .sip(\"192.168.1.1\")\n                .dip(\"10.0.0.1\")\n                .interval(10)\n                .retry(10)\n                .policy(\"revoke_route\")\n                .build())\n            .enableDpd(true)\n            .enableNatTraversal(true)\n            .vpnAttachmentName(name)\n            .build());\n\n        var defaultTransitRouterVpnAttachment = new TransitRouterVpnAttachment(\"defaultTransitRouterVpnAttachment\", TransitRouterVpnAttachmentArgs.builder()\n            .autoPublishRouteEnabled(false)\n            .transitRouterAttachmentDescription(name)\n            .transitRouterAttachmentName(name)\n            .cenId(defaultTransitRouter.cenId())\n            .transitRouterId(defaultTransitRouterCidr.transitRouterId())\n            .vpnId(defaultGatewayVpnAttachment.id())\n            .zones(TransitRouterVpnAttachmentZoneArgs.builder()\n                .zoneId(default_.resources()[0].masterZones()[0])\n                .build())\n            .build());\n\n        var defaultGatewayVcoRoute = new GatewayVcoRoute(\"defaultGatewayVcoRoute\", GatewayVcoRouteArgs.builder()\n            .nextHop(defaultTransitRouterVpnAttachment.vpnId())\n            .vpnConnectionId(defaultTransitRouterVpnAttachment.vpnId())\n            .weight(100)\n            .routeDest(\"192.168.10.0/24\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInstance:\n    type: alicloud:cen:Instance\n    name: default\n    properties:\n      cenInstanceName: ${name}\n  defaultTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: default\n    properties:\n      cenId: ${defaultInstance.id}\n      transitRouterDescription: ${name}\n      transitRouterName: ${name}\n  defaultTransitRouterCidr:\n    type: alicloud:cen:TransitRouterCidr\n    name: default\n    properties:\n      transitRouterId: ${defaultTransitRouter.transitRouterId}\n      cidr: 192.168.0.0/16\n      transitRouterCidrName: ${name}\n      description: ${name}\n      publishCidrRoute: true\n  defaultCustomerGateway:\n    type: alicloud:vpn:CustomerGateway\n    name: default\n    properties:\n      customerGatewayName: ${name}\n      ipAddress: 42.104.22.210\n      asn: '45014'\n      description: ${name}\n  defaultGatewayVpnAttachment:\n    type: alicloud:vpn:GatewayVpnAttachment\n    name: default\n    properties:\n      customerGatewayId: ${defaultCustomerGateway.id}\n      networkType: public\n      localSubnet: 0.0.0.0/0\n      remoteSubnet: 0.0.0.0/0\n      effectImmediately: false\n      ikeConfig:\n        ikeAuthAlg: md5\n        ikeEncAlg: des\n        ikeVersion: ikev2\n        ikeMode: main\n        ikeLifetime: 86400\n        psk: tf-examplevpn2\n        ikePfs: group1\n        remoteId: testbob2\n        localId: testalice2\n      ipsecConfig:\n        ipsecPfs: group5\n        ipsecEncAlg: des\n        ipsecAuthAlg: md5\n        ipsecLifetime: 86400\n      bgpConfig:\n        enable: true\n        localAsn: 45014\n        tunnelCidr: 169.254.11.0/30\n        localBgpIp: 169.254.11.1\n      healthCheckConfig:\n        enable: true\n        sip: 192.168.1.1\n        dip: 10.0.0.1\n        interval: 10\n        retry: 10\n        policy: revoke_route\n      enableDpd: true\n      enableNatTraversal: true\n      vpnAttachmentName: ${name}\n  defaultTransitRouterVpnAttachment:\n    type: alicloud:cen:TransitRouterVpnAttachment\n    name: default\n    properties:\n      autoPublishRouteEnabled: false\n      transitRouterAttachmentDescription: ${name}\n      transitRouterAttachmentName: ${name}\n      cenId: ${defaultTransitRouter.cenId}\n      transitRouterId: ${defaultTransitRouterCidr.transitRouterId}\n      vpnId: ${defaultGatewayVpnAttachment.id}\n      zones:\n        - zoneId: ${default.resources[0].masterZones[0]}\n  defaultGatewayVcoRoute:\n    type: alicloud:vpn:GatewayVcoRoute\n    name: default\n    properties:\n      nextHop: ${defaultTransitRouterVpnAttachment.vpnId}\n      vpnConnectionId: ${defaultTransitRouterVpnAttachment.vpnId}\n      weight: '100'\n      routeDest: 192.168.10.0/24\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterAvailableResources\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPN Gateway Vco Route can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpn/gatewayVcoRoute:GatewayVcoRoute example \u003cvpn_connection_id\u003e:\u003croute_dest\u003e:\u003cnext_hop\u003e:\u003cweight\u003e\n```\n\n","properties":{"nextHop":{"type":"string","description":"The next hop of the destination route.\n"},"overlayMode":{"type":"string","description":"The tunneling protocol. Set the value to Ipsec, which specifies the IPsec tunneling protocol.\n"},"routeDest":{"type":"string","description":"The destination network segment of the destination route.\n"},"status":{"type":"string","description":"The status of the vpn route entry.\n"},"vpnConnectionId":{"type":"string","description":"The id of the vpn attachment.\n"},"weight":{"type":"integer","description":"The weight value of the destination route. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"}},"required":["nextHop","routeDest","status","vpnConnectionId","weight"],"inputProperties":{"nextHop":{"type":"string","description":"The next hop of the destination route.\n","willReplaceOnChanges":true},"overlayMode":{"type":"string","description":"The tunneling protocol. Set the value to Ipsec, which specifies the IPsec tunneling protocol.\n","willReplaceOnChanges":true},"routeDest":{"type":"string","description":"The destination network segment of the destination route.\n","willReplaceOnChanges":true},"vpnConnectionId":{"type":"string","description":"The id of the vpn attachment.\n","willReplaceOnChanges":true},"weight":{"type":"integer","description":"The weight value of the destination route. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["nextHop","routeDest","vpnConnectionId","weight"],"stateInputs":{"description":"Input properties used for looking up and filtering GatewayVcoRoute resources.\n","properties":{"nextHop":{"type":"string","description":"The next hop of the destination route.\n","willReplaceOnChanges":true},"overlayMode":{"type":"string","description":"The tunneling protocol. Set the value to Ipsec, which specifies the IPsec tunneling protocol.\n","willReplaceOnChanges":true},"routeDest":{"type":"string","description":"The destination network segment of the destination route.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the vpn route entry.\n"},"vpnConnectionId":{"type":"string","description":"The id of the vpn attachment.\n","willReplaceOnChanges":true},"weight":{"type":"integer","description":"The weight value of the destination route. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpn/gatewayVpnAttachment:GatewayVpnAttachment":{"description":"Provides a VPN Gateway Vpn Attachment resource.\n\nVpnAttachment has been upgraded to dual-tunnel mode. When you create a VpnAttachment in dual tunnel mode, you can configure the following request parameters in addition to the required parameters: vpn_attachment_name, network_type, effectImmediately, tags array, resource_group_id,\u003cspan pulumi-lang-nodejs=\" tunnelOptionsSpecification \" pulumi-lang-dotnet=\" TunnelOptionsSpecification \" pulumi-lang-go=\" tunnelOptionsSpecification \" pulumi-lang-python=\" tunnel_options_specification \" pulumi-lang-yaml=\" tunnelOptionsSpecification \" pulumi-lang-java=\" tunnelOptionsSpecification \"\u003e tunnel_options_specification \u003c/span\u003earray, and enable_tunnels_bgp.\n\nFor information about VPN Gateway Vpn Attachment and how to use it, see [What is Vpn Attachment](https://www.alibabacloud.com/help/zh/virtual-private-cloud/latest/createvpnattachment).\n\n\u003e **NOTE:** Available since v1.181.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new alicloud.vpn.CustomerGateway(\"default\", {\n    customerGatewayName: name,\n    ipAddress: \"42.104.22.210\",\n    asn: \"45014\",\n    description: name,\n});\nconst defaultGatewayVpnAttachment = new alicloud.vpn.GatewayVpnAttachment(\"default\", {\n    customerGatewayId: _default.id,\n    networkType: \"public\",\n    localSubnet: \"0.0.0.0/0\",\n    remoteSubnet: \"0.0.0.0/0\",\n    effectImmediately: false,\n    ikeConfig: {\n        ikeAuthAlg: \"md5\",\n        ikeEncAlg: \"des\",\n        ikeVersion: \"ikev2\",\n        ikeMode: \"main\",\n        ikeLifetime: 86400,\n        psk: \"tf-testvpn2\",\n        ikePfs: \"group1\",\n        remoteId: \"testbob2\",\n        localId: \"testalice2\",\n    },\n    ipsecConfig: {\n        ipsecPfs: \"group5\",\n        ipsecEncAlg: \"des\",\n        ipsecAuthAlg: \"md5\",\n        ipsecLifetime: 86400,\n    },\n    bgpConfig: {\n        enable: true,\n        localAsn: 45014,\n        tunnelCidr: \"169.254.11.0/30\",\n        localBgpIp: \"169.254.11.1\",\n    },\n    healthCheckConfig: {\n        enable: true,\n        sip: \"192.168.1.1\",\n        dip: \"10.0.0.1\",\n        interval: 10,\n        retry: 10,\n        policy: \"revoke_route\",\n    },\n    enableDpd: true,\n    enableNatTraversal: true,\n    vpnAttachmentName: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.vpn.CustomerGateway(\"default\",\n    customer_gateway_name=name,\n    ip_address=\"42.104.22.210\",\n    asn=\"45014\",\n    description=name)\ndefault_gateway_vpn_attachment = alicloud.vpn.GatewayVpnAttachment(\"default\",\n    customer_gateway_id=default.id,\n    network_type=\"public\",\n    local_subnet=\"0.0.0.0/0\",\n    remote_subnet=\"0.0.0.0/0\",\n    effect_immediately=False,\n    ike_config={\n        \"ike_auth_alg\": \"md5\",\n        \"ike_enc_alg\": \"des\",\n        \"ike_version\": \"ikev2\",\n        \"ike_mode\": \"main\",\n        \"ike_lifetime\": 86400,\n        \"psk\": \"tf-testvpn2\",\n        \"ike_pfs\": \"group1\",\n        \"remote_id\": \"testbob2\",\n        \"local_id\": \"testalice2\",\n    },\n    ipsec_config={\n        \"ipsec_pfs\": \"group5\",\n        \"ipsec_enc_alg\": \"des\",\n        \"ipsec_auth_alg\": \"md5\",\n        \"ipsec_lifetime\": 86400,\n    },\n    bgp_config={\n        \"enable\": True,\n        \"local_asn\": 45014,\n        \"tunnel_cidr\": \"169.254.11.0/30\",\n        \"local_bgp_ip\": \"169.254.11.1\",\n    },\n    health_check_config={\n        \"enable\": True,\n        \"sip\": \"192.168.1.1\",\n        \"dip\": \"10.0.0.1\",\n        \"interval\": 10,\n        \"retry\": 10,\n        \"policy\": \"revoke_route\",\n    },\n    enable_dpd=True,\n    enable_nat_traversal=True,\n    vpn_attachment_name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new AliCloud.Vpn.CustomerGateway(\"default\", new()\n    {\n        CustomerGatewayName = name,\n        IpAddress = \"42.104.22.210\",\n        Asn = \"45014\",\n        Description = name,\n    });\n\n    var defaultGatewayVpnAttachment = new AliCloud.Vpn.GatewayVpnAttachment(\"default\", new()\n    {\n        CustomerGatewayId = @default.Id,\n        NetworkType = \"public\",\n        LocalSubnet = \"0.0.0.0/0\",\n        RemoteSubnet = \"0.0.0.0/0\",\n        EffectImmediately = false,\n        IkeConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentIkeConfigArgs\n        {\n            IkeAuthAlg = \"md5\",\n            IkeEncAlg = \"des\",\n            IkeVersion = \"ikev2\",\n            IkeMode = \"main\",\n            IkeLifetime = 86400,\n            Psk = \"tf-testvpn2\",\n            IkePfs = \"group1\",\n            RemoteId = \"testbob2\",\n            LocalId = \"testalice2\",\n        },\n        IpsecConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentIpsecConfigArgs\n        {\n            IpsecPfs = \"group5\",\n            IpsecEncAlg = \"des\",\n            IpsecAuthAlg = \"md5\",\n            IpsecLifetime = 86400,\n        },\n        BgpConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentBgpConfigArgs\n        {\n            Enable = true,\n            LocalAsn = 45014,\n            TunnelCidr = \"169.254.11.0/30\",\n            LocalBgpIp = \"169.254.11.1\",\n        },\n        HealthCheckConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentHealthCheckConfigArgs\n        {\n            Enable = true,\n            Sip = \"192.168.1.1\",\n            Dip = \"10.0.0.1\",\n            Interval = 10,\n            Retry = 10,\n            Policy = \"revoke_route\",\n        },\n        EnableDpd = true,\n        EnableNatTraversal = true,\n        VpnAttachmentName = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := vpn.NewCustomerGateway(ctx, \"default\", \u0026vpn.CustomerGatewayArgs{\n\t\t\tCustomerGatewayName: pulumi.String(name),\n\t\t\tIpAddress:           pulumi.String(\"42.104.22.210\"),\n\t\t\tAsn:                 pulumi.String(\"45014\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpn.NewGatewayVpnAttachment(ctx, \"default\", \u0026vpn.GatewayVpnAttachmentArgs{\n\t\t\tCustomerGatewayId: _default.ID(),\n\t\t\tNetworkType:       pulumi.String(\"public\"),\n\t\t\tLocalSubnet:       pulumi.String(\"0.0.0.0/0\"),\n\t\t\tRemoteSubnet:      pulumi.String(\"0.0.0.0/0\"),\n\t\t\tEffectImmediately: pulumi.Bool(false),\n\t\t\tIkeConfig: \u0026vpn.GatewayVpnAttachmentIkeConfigArgs{\n\t\t\t\tIkeAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\tIkeEncAlg:   pulumi.String(\"des\"),\n\t\t\t\tIkeVersion:  pulumi.String(\"ikev2\"),\n\t\t\t\tIkeMode:     pulumi.String(\"main\"),\n\t\t\t\tIkeLifetime: pulumi.Int(86400),\n\t\t\t\tPsk:         pulumi.String(\"tf-testvpn2\"),\n\t\t\t\tIkePfs:      pulumi.String(\"group1\"),\n\t\t\t\tRemoteId:    pulumi.String(\"testbob2\"),\n\t\t\t\tLocalId:     pulumi.String(\"testalice2\"),\n\t\t\t},\n\t\t\tIpsecConfig: \u0026vpn.GatewayVpnAttachmentIpsecConfigArgs{\n\t\t\t\tIpsecPfs:      pulumi.String(\"group5\"),\n\t\t\t\tIpsecEncAlg:   pulumi.String(\"des\"),\n\t\t\t\tIpsecAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\tIpsecLifetime: pulumi.Int(86400),\n\t\t\t},\n\t\t\tBgpConfig: \u0026vpn.GatewayVpnAttachmentBgpConfigArgs{\n\t\t\t\tEnable:     pulumi.Bool(true),\n\t\t\t\tLocalAsn:   pulumi.Int(45014),\n\t\t\t\tTunnelCidr: pulumi.String(\"169.254.11.0/30\"),\n\t\t\t\tLocalBgpIp: pulumi.String(\"169.254.11.1\"),\n\t\t\t},\n\t\t\tHealthCheckConfig: \u0026vpn.GatewayVpnAttachmentHealthCheckConfigArgs{\n\t\t\t\tEnable:   pulumi.Bool(true),\n\t\t\t\tSip:      pulumi.String(\"192.168.1.1\"),\n\t\t\t\tDip:      pulumi.String(\"10.0.0.1\"),\n\t\t\t\tInterval: pulumi.Int(10),\n\t\t\t\tRetry:    pulumi.Int(10),\n\t\t\t\tPolicy:   pulumi.String(\"revoke_route\"),\n\t\t\t},\n\t\t\tEnableDpd:          pulumi.Bool(true),\n\t\t\tEnableNatTraversal: pulumi.Bool(true),\n\t\t\tVpnAttachmentName:  pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpn.CustomerGateway;\nimport com.pulumi.alicloud.vpn.CustomerGatewayArgs;\nimport com.pulumi.alicloud.vpn.GatewayVpnAttachment;\nimport com.pulumi.alicloud.vpn.GatewayVpnAttachmentArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentIkeConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentIpsecConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentBgpConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentHealthCheckConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new CustomerGateway(\"default\", CustomerGatewayArgs.builder()\n            .customerGatewayName(name)\n            .ipAddress(\"42.104.22.210\")\n            .asn(\"45014\")\n            .description(name)\n            .build());\n\n        var defaultGatewayVpnAttachment = new GatewayVpnAttachment(\"defaultGatewayVpnAttachment\", GatewayVpnAttachmentArgs.builder()\n            .customerGatewayId(default_.id())\n            .networkType(\"public\")\n            .localSubnet(\"0.0.0.0/0\")\n            .remoteSubnet(\"0.0.0.0/0\")\n            .effectImmediately(false)\n            .ikeConfig(GatewayVpnAttachmentIkeConfigArgs.builder()\n                .ikeAuthAlg(\"md5\")\n                .ikeEncAlg(\"des\")\n                .ikeVersion(\"ikev2\")\n                .ikeMode(\"main\")\n                .ikeLifetime(86400)\n                .psk(\"tf-testvpn2\")\n                .ikePfs(\"group1\")\n                .remoteId(\"testbob2\")\n                .localId(\"testalice2\")\n                .build())\n            .ipsecConfig(GatewayVpnAttachmentIpsecConfigArgs.builder()\n                .ipsecPfs(\"group5\")\n                .ipsecEncAlg(\"des\")\n                .ipsecAuthAlg(\"md5\")\n                .ipsecLifetime(86400)\n                .build())\n            .bgpConfig(GatewayVpnAttachmentBgpConfigArgs.builder()\n                .enable(true)\n                .localAsn(45014)\n                .tunnelCidr(\"169.254.11.0/30\")\n                .localBgpIp(\"169.254.11.1\")\n                .build())\n            .healthCheckConfig(GatewayVpnAttachmentHealthCheckConfigArgs.builder()\n                .enable(true)\n                .sip(\"192.168.1.1\")\n                .dip(\"10.0.0.1\")\n                .interval(10)\n                .retry(10)\n                .policy(\"revoke_route\")\n                .build())\n            .enableDpd(true)\n            .enableNatTraversal(true)\n            .vpnAttachmentName(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:vpn:CustomerGateway\n    properties:\n      customerGatewayName: ${name}\n      ipAddress: 42.104.22.210\n      asn: '45014'\n      description: ${name}\n  defaultGatewayVpnAttachment:\n    type: alicloud:vpn:GatewayVpnAttachment\n    name: default\n    properties:\n      customerGatewayId: ${default.id}\n      networkType: public\n      localSubnet: 0.0.0.0/0\n      remoteSubnet: 0.0.0.0/0\n      effectImmediately: false\n      ikeConfig:\n        ikeAuthAlg: md5\n        ikeEncAlg: des\n        ikeVersion: ikev2\n        ikeMode: main\n        ikeLifetime: 86400\n        psk: tf-testvpn2\n        ikePfs: group1\n        remoteId: testbob2\n        localId: testalice2\n      ipsecConfig:\n        ipsecPfs: group5\n        ipsecEncAlg: des\n        ipsecAuthAlg: md5\n        ipsecLifetime: 86400\n      bgpConfig:\n        enable: true\n        localAsn: 45014\n        tunnelCidr: 169.254.11.0/30\n        localBgpIp: 169.254.11.1\n      healthCheckConfig:\n        enable: true\n        sip: 192.168.1.1\n        dip: 10.0.0.1\n        interval: 10\n        retry: 10\n        policy: revoke_route\n      enableDpd: true\n      enableNatTraversal: true\n      vpnAttachmentName: ${name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nDual Tunnel Mode Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst cgw1 = new alicloud.vpn.CustomerGateway(\"cgw1\", {\n    ipAddress: \"2.2.2.2\",\n    asn: \"1219001\",\n});\nconst cgw2 = new alicloud.vpn.CustomerGateway(\"cgw2\", {\n    ipAddress: \"43.43.3.22\",\n    asn: \"44331\",\n    customerGatewayName: \"example_amp\",\n});\nconst defaultGatewayVpnAttachment = new alicloud.vpn.GatewayVpnAttachment(\"default\", {\n    localSubnet: \"0.0.0.0/0\",\n    enableTunnelsBgp: true,\n    vpnAttachmentName: \"tfaccvpngateway25800\",\n    tunnelOptionsSpecifications: [\n        {\n            tunnelIpsecConfig: {\n                ipsecLifetime: 86200,\n                ipsecPfs: \"group5\",\n                ipsecAuthAlg: \"md5\",\n                ipsecEncAlg: \"aes\",\n            },\n            customerGatewayId: cgw1.id,\n            enableDpd: true,\n            enableNatTraversal: true,\n            tunnelIndex: 1,\n            tunnelBgpConfig: {\n                localAsn: 1219001,\n                localBgpIp: \"169.254.10.1\",\n                tunnelCidr: \"169.254.10.0/30\",\n            },\n            tunnelIkeConfig: {\n                ikeMode: \"main\",\n                ikeVersion: \"ikev1\",\n                psk: \"12345678\",\n                remoteId: \"2.2.2.2\",\n                ikeAuthAlg: \"md5\",\n                ikeEncAlg: \"aes\",\n                ikeLifetime: 86100,\n                ikePfs: \"group2\",\n                localId: \"1.1.1.1\",\n            },\n        },\n        {\n            tunnelIpsecConfig: {\n                ipsecEncAlg: \"aes\",\n                ipsecLifetime: 86400,\n                ipsecPfs: \"group5\",\n                ipsecAuthAlg: \"sha256\",\n            },\n            customerGatewayId: cgw1.id,\n            enableDpd: true,\n            enableNatTraversal: true,\n            tunnelIndex: 2,\n            tunnelBgpConfig: {\n                localAsn: 1219001,\n                localBgpIp: \"169.254.20.1\",\n                tunnelCidr: \"169.254.20.0/30\",\n            },\n            tunnelIkeConfig: {\n                localId: \"4.4.4.4\",\n                remoteId: \"5.5.5.5\",\n                ikeLifetime: 86400,\n                ikeMode: \"main\",\n                ikePfs: \"group5\",\n                ikeVersion: \"ikev2\",\n                ikeAuthAlg: \"md5\",\n                ikeEncAlg: \"aes\",\n                psk: \"32333442\",\n            },\n        },\n    ],\n    remoteSubnet: \"0.0.0.0/0\",\n    networkType: \"public\",\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ncgw1 = alicloud.vpn.CustomerGateway(\"cgw1\",\n    ip_address=\"2.2.2.2\",\n    asn=\"1219001\")\ncgw2 = alicloud.vpn.CustomerGateway(\"cgw2\",\n    ip_address=\"43.43.3.22\",\n    asn=\"44331\",\n    customer_gateway_name=\"example_amp\")\ndefault_gateway_vpn_attachment = alicloud.vpn.GatewayVpnAttachment(\"default\",\n    local_subnet=\"0.0.0.0/0\",\n    enable_tunnels_bgp=True,\n    vpn_attachment_name=\"tfaccvpngateway25800\",\n    tunnel_options_specifications=[\n        {\n            \"tunnel_ipsec_config\": {\n                \"ipsec_lifetime\": 86200,\n                \"ipsec_pfs\": \"group5\",\n                \"ipsec_auth_alg\": \"md5\",\n                \"ipsec_enc_alg\": \"aes\",\n            },\n            \"customer_gateway_id\": cgw1.id,\n            \"enable_dpd\": True,\n            \"enable_nat_traversal\": True,\n            \"tunnel_index\": 1,\n            \"tunnel_bgp_config\": {\n                \"local_asn\": 1219001,\n                \"local_bgp_ip\": \"169.254.10.1\",\n                \"tunnel_cidr\": \"169.254.10.0/30\",\n            },\n            \"tunnel_ike_config\": {\n                \"ike_mode\": \"main\",\n                \"ike_version\": \"ikev1\",\n                \"psk\": \"12345678\",\n                \"remote_id\": \"2.2.2.2\",\n                \"ike_auth_alg\": \"md5\",\n                \"ike_enc_alg\": \"aes\",\n                \"ike_lifetime\": 86100,\n                \"ike_pfs\": \"group2\",\n                \"local_id\": \"1.1.1.1\",\n            },\n        },\n        {\n            \"tunnel_ipsec_config\": {\n                \"ipsec_enc_alg\": \"aes\",\n                \"ipsec_lifetime\": 86400,\n                \"ipsec_pfs\": \"group5\",\n                \"ipsec_auth_alg\": \"sha256\",\n            },\n            \"customer_gateway_id\": cgw1.id,\n            \"enable_dpd\": True,\n            \"enable_nat_traversal\": True,\n            \"tunnel_index\": 2,\n            \"tunnel_bgp_config\": {\n                \"local_asn\": 1219001,\n                \"local_bgp_ip\": \"169.254.20.1\",\n                \"tunnel_cidr\": \"169.254.20.0/30\",\n            },\n            \"tunnel_ike_config\": {\n                \"local_id\": \"4.4.4.4\",\n                \"remote_id\": \"5.5.5.5\",\n                \"ike_lifetime\": 86400,\n                \"ike_mode\": \"main\",\n                \"ike_pfs\": \"group5\",\n                \"ike_version\": \"ikev2\",\n                \"ike_auth_alg\": \"md5\",\n                \"ike_enc_alg\": \"aes\",\n                \"psk\": \"32333442\",\n            },\n        },\n    ],\n    remote_subnet=\"0.0.0.0/0\",\n    network_type=\"public\",\n    resource_group_id=default.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var cgw1 = new AliCloud.Vpn.CustomerGateway(\"cgw1\", new()\n    {\n        IpAddress = \"2.2.2.2\",\n        Asn = \"1219001\",\n    });\n\n    var cgw2 = new AliCloud.Vpn.CustomerGateway(\"cgw2\", new()\n    {\n        IpAddress = \"43.43.3.22\",\n        Asn = \"44331\",\n        CustomerGatewayName = \"example_amp\",\n    });\n\n    var defaultGatewayVpnAttachment = new AliCloud.Vpn.GatewayVpnAttachment(\"default\", new()\n    {\n        LocalSubnet = \"0.0.0.0/0\",\n        EnableTunnelsBgp = true,\n        VpnAttachmentName = \"tfaccvpngateway25800\",\n        TunnelOptionsSpecifications = new[]\n        {\n            new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationArgs\n            {\n                TunnelIpsecConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs\n                {\n                    IpsecLifetime = 86200,\n                    IpsecPfs = \"group5\",\n                    IpsecAuthAlg = \"md5\",\n                    IpsecEncAlg = \"aes\",\n                },\n                CustomerGatewayId = cgw1.Id,\n                EnableDpd = true,\n                EnableNatTraversal = true,\n                TunnelIndex = 1,\n                TunnelBgpConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelBgpConfigArgs\n                {\n                    LocalAsn = 1219001,\n                    LocalBgpIp = \"169.254.10.1\",\n                    TunnelCidr = \"169.254.10.0/30\",\n                },\n                TunnelIkeConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs\n                {\n                    IkeMode = \"main\",\n                    IkeVersion = \"ikev1\",\n                    Psk = \"12345678\",\n                    RemoteId = \"2.2.2.2\",\n                    IkeAuthAlg = \"md5\",\n                    IkeEncAlg = \"aes\",\n                    IkeLifetime = 86100,\n                    IkePfs = \"group2\",\n                    LocalId = \"1.1.1.1\",\n                },\n            },\n            new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationArgs\n            {\n                TunnelIpsecConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs\n                {\n                    IpsecEncAlg = \"aes\",\n                    IpsecLifetime = 86400,\n                    IpsecPfs = \"group5\",\n                    IpsecAuthAlg = \"sha256\",\n                },\n                CustomerGatewayId = cgw1.Id,\n                EnableDpd = true,\n                EnableNatTraversal = true,\n                TunnelIndex = 2,\n                TunnelBgpConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelBgpConfigArgs\n                {\n                    LocalAsn = 1219001,\n                    LocalBgpIp = \"169.254.20.1\",\n                    TunnelCidr = \"169.254.20.0/30\",\n                },\n                TunnelIkeConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs\n                {\n                    LocalId = \"4.4.4.4\",\n                    RemoteId = \"5.5.5.5\",\n                    IkeLifetime = 86400,\n                    IkeMode = \"main\",\n                    IkePfs = \"group5\",\n                    IkeVersion = \"ikev2\",\n                    IkeAuthAlg = \"md5\",\n                    IkeEncAlg = \"aes\",\n                    Psk = \"32333442\",\n                },\n            },\n        },\n        RemoteSubnet = \"0.0.0.0/0\",\n        NetworkType = \"public\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcgw1, err := vpn.NewCustomerGateway(ctx, \"cgw1\", \u0026vpn.CustomerGatewayArgs{\n\t\t\tIpAddress: pulumi.String(\"2.2.2.2\"),\n\t\t\tAsn:       pulumi.String(\"1219001\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpn.NewCustomerGateway(ctx, \"cgw2\", \u0026vpn.CustomerGatewayArgs{\n\t\t\tIpAddress:           pulumi.String(\"43.43.3.22\"),\n\t\t\tAsn:                 pulumi.String(\"44331\"),\n\t\t\tCustomerGatewayName: pulumi.String(\"example_amp\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpn.NewGatewayVpnAttachment(ctx, \"default\", \u0026vpn.GatewayVpnAttachmentArgs{\n\t\t\tLocalSubnet:       pulumi.String(\"0.0.0.0/0\"),\n\t\t\tEnableTunnelsBgp:  pulumi.Bool(true),\n\t\t\tVpnAttachmentName: pulumi.String(\"tfaccvpngateway25800\"),\n\t\t\tTunnelOptionsSpecifications: vpn.GatewayVpnAttachmentTunnelOptionsSpecificationArray{\n\t\t\t\t\u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationArgs{\n\t\t\t\t\tTunnelIpsecConfig: \u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs{\n\t\t\t\t\t\tIpsecLifetime: pulumi.Int(86200),\n\t\t\t\t\t\tIpsecPfs:      pulumi.String(\"group5\"),\n\t\t\t\t\t\tIpsecAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIpsecEncAlg:   pulumi.String(\"aes\"),\n\t\t\t\t\t},\n\t\t\t\t\tCustomerGatewayId:  cgw1.ID(),\n\t\t\t\t\tEnableDpd:          pulumi.Bool(true),\n\t\t\t\t\tEnableNatTraversal: pulumi.Bool(true),\n\t\t\t\t\tTunnelIndex:        pulumi.Int(1),\n\t\t\t\t\tTunnelBgpConfig: \u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelBgpConfigArgs{\n\t\t\t\t\t\tLocalAsn:   pulumi.Int(1219001),\n\t\t\t\t\t\tLocalBgpIp: pulumi.String(\"169.254.10.1\"),\n\t\t\t\t\t\tTunnelCidr: pulumi.String(\"169.254.10.0/30\"),\n\t\t\t\t\t},\n\t\t\t\t\tTunnelIkeConfig: \u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs{\n\t\t\t\t\t\tIkeMode:     pulumi.String(\"main\"),\n\t\t\t\t\t\tIkeVersion:  pulumi.String(\"ikev1\"),\n\t\t\t\t\t\tPsk:         pulumi.String(\"12345678\"),\n\t\t\t\t\t\tRemoteId:    pulumi.String(\"2.2.2.2\"),\n\t\t\t\t\t\tIkeAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIkeEncAlg:   pulumi.String(\"aes\"),\n\t\t\t\t\t\tIkeLifetime: pulumi.Int(86100),\n\t\t\t\t\t\tIkePfs:      pulumi.String(\"group2\"),\n\t\t\t\t\t\tLocalId:     pulumi.String(\"1.1.1.1\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationArgs{\n\t\t\t\t\tTunnelIpsecConfig: \u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs{\n\t\t\t\t\t\tIpsecEncAlg:   pulumi.String(\"aes\"),\n\t\t\t\t\t\tIpsecLifetime: pulumi.Int(86400),\n\t\t\t\t\t\tIpsecPfs:      pulumi.String(\"group5\"),\n\t\t\t\t\t\tIpsecAuthAlg:  pulumi.String(\"sha256\"),\n\t\t\t\t\t},\n\t\t\t\t\tCustomerGatewayId:  cgw1.ID(),\n\t\t\t\t\tEnableDpd:          pulumi.Bool(true),\n\t\t\t\t\tEnableNatTraversal: pulumi.Bool(true),\n\t\t\t\t\tTunnelIndex:        pulumi.Int(2),\n\t\t\t\t\tTunnelBgpConfig: \u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelBgpConfigArgs{\n\t\t\t\t\t\tLocalAsn:   pulumi.Int(1219001),\n\t\t\t\t\t\tLocalBgpIp: pulumi.String(\"169.254.20.1\"),\n\t\t\t\t\t\tTunnelCidr: pulumi.String(\"169.254.20.0/30\"),\n\t\t\t\t\t},\n\t\t\t\t\tTunnelIkeConfig: \u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs{\n\t\t\t\t\t\tLocalId:     pulumi.String(\"4.4.4.4\"),\n\t\t\t\t\t\tRemoteId:    pulumi.String(\"5.5.5.5\"),\n\t\t\t\t\t\tIkeLifetime: pulumi.Int(86400),\n\t\t\t\t\t\tIkeMode:     pulumi.String(\"main\"),\n\t\t\t\t\t\tIkePfs:      pulumi.String(\"group5\"),\n\t\t\t\t\t\tIkeVersion:  pulumi.String(\"ikev2\"),\n\t\t\t\t\t\tIkeAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIkeEncAlg:   pulumi.String(\"aes\"),\n\t\t\t\t\t\tPsk:         pulumi.String(\"32333442\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tRemoteSubnet:    pulumi.String(\"0.0.0.0/0\"),\n\t\t\tNetworkType:     pulumi.String(\"public\"),\n\t\t\tResourceGroupId: pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpn.CustomerGateway;\nimport com.pulumi.alicloud.vpn.CustomerGatewayArgs;\nimport com.pulumi.alicloud.vpn.GatewayVpnAttachment;\nimport com.pulumi.alicloud.vpn.GatewayVpnAttachmentArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentTunnelOptionsSpecificationArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelBgpConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var cgw1 = new CustomerGateway(\"cgw1\", CustomerGatewayArgs.builder()\n            .ipAddress(\"2.2.2.2\")\n            .asn(\"1219001\")\n            .build());\n\n        var cgw2 = new CustomerGateway(\"cgw2\", CustomerGatewayArgs.builder()\n            .ipAddress(\"43.43.3.22\")\n            .asn(\"44331\")\n            .customerGatewayName(\"example_amp\")\n            .build());\n\n        var defaultGatewayVpnAttachment = new GatewayVpnAttachment(\"defaultGatewayVpnAttachment\", GatewayVpnAttachmentArgs.builder()\n            .localSubnet(\"0.0.0.0/0\")\n            .enableTunnelsBgp(true)\n            .vpnAttachmentName(\"tfaccvpngateway25800\")\n            .tunnelOptionsSpecifications(            \n                GatewayVpnAttachmentTunnelOptionsSpecificationArgs.builder()\n                    .tunnelIpsecConfig(GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs.builder()\n                        .ipsecLifetime(86200)\n                        .ipsecPfs(\"group5\")\n                        .ipsecAuthAlg(\"md5\")\n                        .ipsecEncAlg(\"aes\")\n                        .build())\n                    .customerGatewayId(cgw1.id())\n                    .enableDpd(true)\n                    .enableNatTraversal(true)\n                    .tunnelIndex(1)\n                    .tunnelBgpConfig(GatewayVpnAttachmentTunnelOptionsSpecificationTunnelBgpConfigArgs.builder()\n                        .localAsn(1219001)\n                        .localBgpIp(\"169.254.10.1\")\n                        .tunnelCidr(\"169.254.10.0/30\")\n                        .build())\n                    .tunnelIkeConfig(GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs.builder()\n                        .ikeMode(\"main\")\n                        .ikeVersion(\"ikev1\")\n                        .psk(\"12345678\")\n                        .remoteId(\"2.2.2.2\")\n                        .ikeAuthAlg(\"md5\")\n                        .ikeEncAlg(\"aes\")\n                        .ikeLifetime(86100)\n                        .ikePfs(\"group2\")\n                        .localId(\"1.1.1.1\")\n                        .build())\n                    .build(),\n                GatewayVpnAttachmentTunnelOptionsSpecificationArgs.builder()\n                    .tunnelIpsecConfig(GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs.builder()\n                        .ipsecEncAlg(\"aes\")\n                        .ipsecLifetime(86400)\n                        .ipsecPfs(\"group5\")\n                        .ipsecAuthAlg(\"sha256\")\n                        .build())\n                    .customerGatewayId(cgw1.id())\n                    .enableDpd(true)\n                    .enableNatTraversal(true)\n                    .tunnelIndex(2)\n                    .tunnelBgpConfig(GatewayVpnAttachmentTunnelOptionsSpecificationTunnelBgpConfigArgs.builder()\n                        .localAsn(1219001)\n                        .localBgpIp(\"169.254.20.1\")\n                        .tunnelCidr(\"169.254.20.0/30\")\n                        .build())\n                    .tunnelIkeConfig(GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs.builder()\n                        .localId(\"4.4.4.4\")\n                        .remoteId(\"5.5.5.5\")\n                        .ikeLifetime(86400)\n                        .ikeMode(\"main\")\n                        .ikePfs(\"group5\")\n                        .ikeVersion(\"ikev2\")\n                        .ikeAuthAlg(\"md5\")\n                        .ikeEncAlg(\"aes\")\n                        .psk(\"32333442\")\n                        .build())\n                    .build())\n            .remoteSubnet(\"0.0.0.0/0\")\n            .networkType(\"public\")\n            .resourceGroupId(default_.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  cgw1:\n    type: alicloud:vpn:CustomerGateway\n    properties:\n      ipAddress: 2.2.2.2\n      asn: '1219001'\n  cgw2:\n    type: alicloud:vpn:CustomerGateway\n    properties:\n      ipAddress: 43.43.3.22\n      asn: '44331'\n      customerGatewayName: example_amp\n  defaultGatewayVpnAttachment:\n    type: alicloud:vpn:GatewayVpnAttachment\n    name: default\n    properties:\n      localSubnet: 0.0.0.0/0\n      enableTunnelsBgp: 'true'\n      vpnAttachmentName: tfaccvpngateway25800\n      tunnelOptionsSpecifications:\n        - tunnelIpsecConfig:\n            ipsecLifetime: '86200'\n            ipsecPfs: group5\n            ipsecAuthAlg: md5\n            ipsecEncAlg: aes\n          customerGatewayId: ${cgw1.id}\n          enableDpd: 'true'\n          enableNatTraversal: 'true'\n          tunnelIndex: '1'\n          tunnelBgpConfig:\n            localAsn: '1219001'\n            localBgpIp: 169.254.10.1\n            tunnelCidr: 169.254.10.0/30\n          tunnelIkeConfig:\n            ikeMode: main\n            ikeVersion: ikev1\n            psk: '12345678'\n            remoteId: 2.2.2.2\n            ikeAuthAlg: md5\n            ikeEncAlg: aes\n            ikeLifetime: '86100'\n            ikePfs: group2\n            localId: 1.1.1.1\n        - tunnelIpsecConfig:\n            ipsecEncAlg: aes\n            ipsecLifetime: '86400'\n            ipsecPfs: group5\n            ipsecAuthAlg: sha256\n          customerGatewayId: ${cgw1.id}\n          enableDpd: 'true'\n          enableNatTraversal: 'true'\n          tunnelIndex: '2'\n          tunnelBgpConfig:\n            localAsn: '1219001'\n            localBgpIp: 169.254.20.1\n            tunnelCidr: 169.254.20.0/30\n          tunnelIkeConfig:\n            localId: 4.4.4.4\n            remoteId: 5.5.5.5\n            ikeLifetime: '86400'\n            ikeMode: main\n            ikePfs: group5\n            ikeVersion: ikev2\n            ikeAuthAlg: md5\n            ikeEncAlg: aes\n            psk: '32333442'\n      remoteSubnet: 0.0.0.0/0\n      networkType: public\n      resourceGroupId: ${default.ids[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPN Gateway Vpn Attachment can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpn/gatewayVpnAttachment:GatewayVpnAttachment example \u003cid\u003e\n```\n\n","properties":{"bgpConfig":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentBgpConfig:GatewayVpnAttachmentBgpConfig","description":"Bgp configuration information.\n- This parameter is supported when you create an vpn attachment in single-tunnel mode. See \u003cspan pulumi-lang-nodejs=\"`bgpConfig`\" pulumi-lang-dotnet=\"`BgpConfig`\" pulumi-lang-go=\"`bgpConfig`\" pulumi-lang-python=\"`bgp_config`\" pulumi-lang-yaml=\"`bgpConfig`\" pulumi-lang-java=\"`bgpConfig`\"\u003e`bgp_config`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"customerGatewayId":{"type":"string","description":"Customer gateway ID.\n- This parameter is required when creating a single-tunnel mode vpn attachment.\n"},"effectImmediately":{"type":"boolean","description":"Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:\n"},"enableDpd":{"type":"boolean","description":"This parameter is supported if you create an vpn attachment in single-tunnel mode.\nWhether to enable the DPD (peer survival detection) function.\n- true (default): enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted along with the security tunnel.\n- false: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.\n"},"enableNatTraversal":{"type":"boolean","description":"This parameter is supported if you create an vpn attachment in single-tunnel mode.\nSpecifies whether to enable NAT traversal. Valid values:\n- true (default): enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the vpn attachment tunnel.\n- false: disables NAT traversal.\n"},"enableTunnelsBgp":{"type":"boolean","description":"You can configure this parameter when you create a vpn attachment in dual-tunnel mode.Whether to enable the BGP function for the tunnel. Value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (default).\n\n\u003e **NOTE:**  before adding BGP configuration, we recommend that you understand the working mechanism and usage restrictions of the BGP dynamic routing function.\n"},"healthCheckConfig":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentHealthCheckConfig:GatewayVpnAttachmentHealthCheckConfig","description":"This parameter is supported if you create an vpn attachment in single-tunnel mode.\nHealth check configuration information. See \u003cspan pulumi-lang-nodejs=\"`healthCheckConfig`\" pulumi-lang-dotnet=\"`HealthCheckConfig`\" pulumi-lang-go=\"`healthCheckConfig`\" pulumi-lang-python=\"`health_check_config`\" pulumi-lang-yaml=\"`healthCheckConfig`\" pulumi-lang-java=\"`healthCheckConfig`\"\u003e`health_check_config`\u003c/span\u003e below.\n"},"ikeConfig":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentIkeConfig:GatewayVpnAttachmentIkeConfig","description":"The configurations of Phase 1 negotiations. \n- This parameter is supported if you create an vpn attachment in single-tunnel mode. See \u003cspan pulumi-lang-nodejs=\"`ikeConfig`\" pulumi-lang-dotnet=\"`IkeConfig`\" pulumi-lang-go=\"`ikeConfig`\" pulumi-lang-python=\"`ike_config`\" pulumi-lang-yaml=\"`ikeConfig`\" pulumi-lang-java=\"`ikeConfig`\"\u003e`ike_config`\u003c/span\u003e below.\n"},"ipsecConfig":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentIpsecConfig:GatewayVpnAttachmentIpsecConfig","description":"Configuration negotiated in the second stage. \n- This parameter is supported if you create an vpn attachment in single-tunnel mode. See \u003cspan pulumi-lang-nodejs=\"`ipsecConfig`\" pulumi-lang-dotnet=\"`IpsecConfig`\" pulumi-lang-go=\"`ipsecConfig`\" pulumi-lang-python=\"`ipsec_config`\" pulumi-lang-yaml=\"`ipsecConfig`\" pulumi-lang-java=\"`ipsecConfig`\"\u003e`ipsec_config`\u003c/span\u003e below.\n"},"localSubnet":{"type":"string","description":"The CIDR block on the VPC side. The CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.The following routing modes are supported:\n- If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.\n- If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.\n"},"networkType":{"type":"string","description":"network type\n"},"remoteSubnet":{"type":"string","description":"The CIDR block on the data center side. This CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.The following routing modes are supported:\n- If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.\n- If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"The negotiation status of Tunnel.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags\n"},"tunnelOptionsSpecifications":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentTunnelOptionsSpecification:GatewayVpnAttachmentTunnelOptionsSpecification"},"description":"Configure the tunnel.\n- You can configure parameters in the \u003cspan pulumi-lang-nodejs=\"`tunnelOptionsSpecification`\" pulumi-lang-dotnet=\"`TunnelOptionsSpecification`\" pulumi-lang-go=\"`tunnelOptionsSpecification`\" pulumi-lang-python=\"`tunnel_options_specification`\" pulumi-lang-yaml=\"`tunnelOptionsSpecification`\" pulumi-lang-java=\"`tunnelOptionsSpecification`\"\u003e`tunnel_options_specification`\u003c/span\u003e array when you create a vpn attachment in dual-tunnel mode.\n- When creating a vpn attachment in dual-tunnel mode, you must add both tunnels for the vpn attachment to ensure that the vpn attachment has link redundancy. Only two tunnels can be added to a vpn attachment. See \u003cspan pulumi-lang-nodejs=\"`tunnelOptionsSpecification`\" pulumi-lang-dotnet=\"`TunnelOptionsSpecification`\" pulumi-lang-go=\"`tunnelOptionsSpecification`\" pulumi-lang-python=\"`tunnel_options_specification`\" pulumi-lang-yaml=\"`tunnelOptionsSpecification`\" pulumi-lang-java=\"`tunnelOptionsSpecification`\"\u003e`tunnel_options_specification`\u003c/span\u003e below.\n"},"vpnAttachmentName":{"type":"string","description":"vpn attachment name\n"}},"required":["bgpConfig","createTime","effectImmediately","enableDpd","enableNatTraversal","enableTunnelsBgp","healthCheckConfig","ikeConfig","ipsecConfig","localSubnet","networkType","remoteSubnet","resourceGroupId","status","tunnelOptionsSpecifications"],"inputProperties":{"bgpConfig":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentBgpConfig:GatewayVpnAttachmentBgpConfig","description":"Bgp configuration information.\n- This parameter is supported when you create an vpn attachment in single-tunnel mode. See \u003cspan pulumi-lang-nodejs=\"`bgpConfig`\" pulumi-lang-dotnet=\"`BgpConfig`\" pulumi-lang-go=\"`bgpConfig`\" pulumi-lang-python=\"`bgp_config`\" pulumi-lang-yaml=\"`bgpConfig`\" pulumi-lang-java=\"`bgpConfig`\"\u003e`bgp_config`\u003c/span\u003e below.\n"},"customerGatewayId":{"type":"string","description":"Customer gateway ID.\n- This parameter is required when creating a single-tunnel mode vpn attachment.\n"},"effectImmediately":{"type":"boolean","description":"Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:\n"},"enableDpd":{"type":"boolean","description":"This parameter is supported if you create an vpn attachment in single-tunnel mode.\nWhether to enable the DPD (peer survival detection) function.\n- true (default): enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted along with the security tunnel.\n- false: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.\n"},"enableNatTraversal":{"type":"boolean","description":"This parameter is supported if you create an vpn attachment in single-tunnel mode.\nSpecifies whether to enable NAT traversal. Valid values:\n- true (default): enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the vpn attachment tunnel.\n- false: disables NAT traversal.\n"},"enableTunnelsBgp":{"type":"boolean","description":"You can configure this parameter when you create a vpn attachment in dual-tunnel mode.Whether to enable the BGP function for the tunnel. Value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (default).\n\n\u003e **NOTE:**  before adding BGP configuration, we recommend that you understand the working mechanism and usage restrictions of the BGP dynamic routing function.\n"},"healthCheckConfig":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentHealthCheckConfig:GatewayVpnAttachmentHealthCheckConfig","description":"This parameter is supported if you create an vpn attachment in single-tunnel mode.\nHealth check configuration information. See \u003cspan pulumi-lang-nodejs=\"`healthCheckConfig`\" pulumi-lang-dotnet=\"`HealthCheckConfig`\" pulumi-lang-go=\"`healthCheckConfig`\" pulumi-lang-python=\"`health_check_config`\" pulumi-lang-yaml=\"`healthCheckConfig`\" pulumi-lang-java=\"`healthCheckConfig`\"\u003e`health_check_config`\u003c/span\u003e below.\n"},"ikeConfig":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentIkeConfig:GatewayVpnAttachmentIkeConfig","description":"The configurations of Phase 1 negotiations. \n- This parameter is supported if you create an vpn attachment in single-tunnel mode. See \u003cspan pulumi-lang-nodejs=\"`ikeConfig`\" pulumi-lang-dotnet=\"`IkeConfig`\" pulumi-lang-go=\"`ikeConfig`\" pulumi-lang-python=\"`ike_config`\" pulumi-lang-yaml=\"`ikeConfig`\" pulumi-lang-java=\"`ikeConfig`\"\u003e`ike_config`\u003c/span\u003e below.\n"},"ipsecConfig":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentIpsecConfig:GatewayVpnAttachmentIpsecConfig","description":"Configuration negotiated in the second stage. \n- This parameter is supported if you create an vpn attachment in single-tunnel mode. See \u003cspan pulumi-lang-nodejs=\"`ipsecConfig`\" pulumi-lang-dotnet=\"`IpsecConfig`\" pulumi-lang-go=\"`ipsecConfig`\" pulumi-lang-python=\"`ipsec_config`\" pulumi-lang-yaml=\"`ipsecConfig`\" pulumi-lang-java=\"`ipsecConfig`\"\u003e`ipsec_config`\u003c/span\u003e below.\n"},"localSubnet":{"type":"string","description":"The CIDR block on the VPC side. The CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.The following routing modes are supported:\n- If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.\n- If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.\n"},"networkType":{"type":"string","description":"network type\n","willReplaceOnChanges":true},"remoteSubnet":{"type":"string","description":"The CIDR block on the data center side. This CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.The following routing modes are supported:\n- If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.\n- If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags\n"},"tunnelOptionsSpecifications":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentTunnelOptionsSpecification:GatewayVpnAttachmentTunnelOptionsSpecification"},"description":"Configure the tunnel.\n- You can configure parameters in the \u003cspan pulumi-lang-nodejs=\"`tunnelOptionsSpecification`\" pulumi-lang-dotnet=\"`TunnelOptionsSpecification`\" pulumi-lang-go=\"`tunnelOptionsSpecification`\" pulumi-lang-python=\"`tunnel_options_specification`\" pulumi-lang-yaml=\"`tunnelOptionsSpecification`\" pulumi-lang-java=\"`tunnelOptionsSpecification`\"\u003e`tunnel_options_specification`\u003c/span\u003e array when you create a vpn attachment in dual-tunnel mode.\n- When creating a vpn attachment in dual-tunnel mode, you must add both tunnels for the vpn attachment to ensure that the vpn attachment has link redundancy. Only two tunnels can be added to a vpn attachment. See \u003cspan pulumi-lang-nodejs=\"`tunnelOptionsSpecification`\" pulumi-lang-dotnet=\"`TunnelOptionsSpecification`\" pulumi-lang-go=\"`tunnelOptionsSpecification`\" pulumi-lang-python=\"`tunnel_options_specification`\" pulumi-lang-yaml=\"`tunnelOptionsSpecification`\" pulumi-lang-java=\"`tunnelOptionsSpecification`\"\u003e`tunnel_options_specification`\u003c/span\u003e below.\n"},"vpnAttachmentName":{"type":"string","description":"vpn attachment name\n"}},"requiredInputs":["localSubnet","remoteSubnet"],"stateInputs":{"description":"Input properties used for looking up and filtering GatewayVpnAttachment resources.\n","properties":{"bgpConfig":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentBgpConfig:GatewayVpnAttachmentBgpConfig","description":"Bgp configuration information.\n- This parameter is supported when you create an vpn attachment in single-tunnel mode. See \u003cspan pulumi-lang-nodejs=\"`bgpConfig`\" pulumi-lang-dotnet=\"`BgpConfig`\" pulumi-lang-go=\"`bgpConfig`\" pulumi-lang-python=\"`bgp_config`\" pulumi-lang-yaml=\"`bgpConfig`\" pulumi-lang-java=\"`bgpConfig`\"\u003e`bgp_config`\u003c/span\u003e below.\n"},"createTime":{"type":"string","description":"The creation time of the resource\n"},"customerGatewayId":{"type":"string","description":"Customer gateway ID.\n- This parameter is required when creating a single-tunnel mode vpn attachment.\n"},"effectImmediately":{"type":"boolean","description":"Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:\n"},"enableDpd":{"type":"boolean","description":"This parameter is supported if you create an vpn attachment in single-tunnel mode.\nWhether to enable the DPD (peer survival detection) function.\n- true (default): enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted along with the security tunnel.\n- false: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.\n"},"enableNatTraversal":{"type":"boolean","description":"This parameter is supported if you create an vpn attachment in single-tunnel mode.\nSpecifies whether to enable NAT traversal. Valid values:\n- true (default): enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the vpn attachment tunnel.\n- false: disables NAT traversal.\n"},"enableTunnelsBgp":{"type":"boolean","description":"You can configure this parameter when you create a vpn attachment in dual-tunnel mode.Whether to enable the BGP function for the tunnel. Value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (default).\n\n\u003e **NOTE:**  before adding BGP configuration, we recommend that you understand the working mechanism and usage restrictions of the BGP dynamic routing function.\n"},"healthCheckConfig":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentHealthCheckConfig:GatewayVpnAttachmentHealthCheckConfig","description":"This parameter is supported if you create an vpn attachment in single-tunnel mode.\nHealth check configuration information. See \u003cspan pulumi-lang-nodejs=\"`healthCheckConfig`\" pulumi-lang-dotnet=\"`HealthCheckConfig`\" pulumi-lang-go=\"`healthCheckConfig`\" pulumi-lang-python=\"`health_check_config`\" pulumi-lang-yaml=\"`healthCheckConfig`\" pulumi-lang-java=\"`healthCheckConfig`\"\u003e`health_check_config`\u003c/span\u003e below.\n"},"ikeConfig":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentIkeConfig:GatewayVpnAttachmentIkeConfig","description":"The configurations of Phase 1 negotiations. \n- This parameter is supported if you create an vpn attachment in single-tunnel mode. See \u003cspan pulumi-lang-nodejs=\"`ikeConfig`\" pulumi-lang-dotnet=\"`IkeConfig`\" pulumi-lang-go=\"`ikeConfig`\" pulumi-lang-python=\"`ike_config`\" pulumi-lang-yaml=\"`ikeConfig`\" pulumi-lang-java=\"`ikeConfig`\"\u003e`ike_config`\u003c/span\u003e below.\n"},"ipsecConfig":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentIpsecConfig:GatewayVpnAttachmentIpsecConfig","description":"Configuration negotiated in the second stage. \n- This parameter is supported if you create an vpn attachment in single-tunnel mode. See \u003cspan pulumi-lang-nodejs=\"`ipsecConfig`\" pulumi-lang-dotnet=\"`IpsecConfig`\" pulumi-lang-go=\"`ipsecConfig`\" pulumi-lang-python=\"`ipsec_config`\" pulumi-lang-yaml=\"`ipsecConfig`\" pulumi-lang-java=\"`ipsecConfig`\"\u003e`ipsec_config`\u003c/span\u003e below.\n"},"localSubnet":{"type":"string","description":"The CIDR block on the VPC side. The CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.The following routing modes are supported:\n- If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.\n- If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.\n"},"networkType":{"type":"string","description":"network type\n","willReplaceOnChanges":true},"remoteSubnet":{"type":"string","description":"The CIDR block on the data center side. This CIDR block is used in Phase 2 negotiations.Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.The following routing modes are supported:\n- If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.\n- If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"status":{"type":"string","description":"The negotiation status of Tunnel.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags\n"},"tunnelOptionsSpecifications":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/GatewayVpnAttachmentTunnelOptionsSpecification:GatewayVpnAttachmentTunnelOptionsSpecification"},"description":"Configure the tunnel.\n- You can configure parameters in the \u003cspan pulumi-lang-nodejs=\"`tunnelOptionsSpecification`\" pulumi-lang-dotnet=\"`TunnelOptionsSpecification`\" pulumi-lang-go=\"`tunnelOptionsSpecification`\" pulumi-lang-python=\"`tunnel_options_specification`\" pulumi-lang-yaml=\"`tunnelOptionsSpecification`\" pulumi-lang-java=\"`tunnelOptionsSpecification`\"\u003e`tunnel_options_specification`\u003c/span\u003e array when you create a vpn attachment in dual-tunnel mode.\n- When creating a vpn attachment in dual-tunnel mode, you must add both tunnels for the vpn attachment to ensure that the vpn attachment has link redundancy. Only two tunnels can be added to a vpn attachment. See \u003cspan pulumi-lang-nodejs=\"`tunnelOptionsSpecification`\" pulumi-lang-dotnet=\"`TunnelOptionsSpecification`\" pulumi-lang-go=\"`tunnelOptionsSpecification`\" pulumi-lang-python=\"`tunnel_options_specification`\" pulumi-lang-yaml=\"`tunnelOptionsSpecification`\" pulumi-lang-java=\"`tunnelOptionsSpecification`\"\u003e`tunnel_options_specification`\u003c/span\u003e below.\n"},"vpnAttachmentName":{"type":"string","description":"vpn attachment name\n"}},"type":"object"}},"alicloud:vpn/ipsecServer:IpsecServer":{"description":"Provides a VPN Ipsec Server resource.\n\nFor information about VPN Ipsec Server and how to use it, see [What is Ipsec Server](https://www.alibabacloud.com/help/en/vpn/sub-product-ssl-vpn/developer-reference/api-vpc-2016-04-28-createipsecserver-ssl-vpn).\n\n\u003e **NOTE:** Available since v1.161.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst default0 = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[0],\n}));\nconst default1 = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[1],\n}));\nconst defaultGateway = new alicloud.vpn.Gateway(\"default\", {\n    vpnGatewayName: name,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    bandwidth: 10,\n    enableSsl: true,\n    description: name,\n    paymentType: \"Subscription\",\n    vswitchId: default0.then(default0 =\u003e default0.ids?.[0]),\n    disasterRecoveryVswitchId: default1.then(default1 =\u003e default1.ids?.[0]),\n});\nconst foo = new alicloud.vpn.IpsecServer(\"foo\", {\n    clientIpPool: \"10.0.0.0/24\",\n    ipsecServerName: name,\n    localSubnet: \"192.168.0.0/24\",\n    vpnGatewayId: defaultGateway.id,\n    pskEnabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"172.16.0.0/16\")\ndefault0 = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[0])\ndefault1 = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[1])\ndefault_gateway = alicloud.vpn.Gateway(\"default\",\n    vpn_gateway_name=name,\n    vpc_id=default_get_networks.ids[0],\n    bandwidth=10,\n    enable_ssl=True,\n    description=name,\n    payment_type=\"Subscription\",\n    vswitch_id=default0.ids[0],\n    disaster_recovery_vswitch_id=default1.ids[0])\nfoo = alicloud.vpn.IpsecServer(\"foo\",\n    client_ip_pool=\"10.0.0.0/24\",\n    ipsec_server_name=name,\n    local_subnet=\"192.168.0.0/24\",\n    vpn_gateway_id=default_gateway.id,\n    psk_enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var default0 = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n    });\n\n    var default1 = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[1]),\n    });\n\n    var defaultGateway = new AliCloud.Vpn.Gateway(\"default\", new()\n    {\n        VpnGatewayName = name,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        Bandwidth = 10,\n        EnableSsl = true,\n        Description = name,\n        PaymentType = \"Subscription\",\n        VswitchId = default0.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        DisasterRecoveryVswitchId = default1.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n    });\n\n    var foo = new AliCloud.Vpn.IpsecServer(\"foo\", new()\n    {\n        ClientIpPool = \"10.0.0.0/24\",\n        IpsecServerName = name,\n        LocalSubnet = \"192.168.0.0/24\",\n        VpnGatewayId = defaultGateway.Id,\n        PskEnabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"172.16.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault0, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[1]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGateway, err := vpn.NewGateway(ctx, \"default\", \u0026vpn.GatewayArgs{\n\t\t\tVpnGatewayName:            pulumi.String(name),\n\t\t\tVpcId:                     pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tBandwidth:                 pulumi.Int(10),\n\t\t\tEnableSsl:                 pulumi.Bool(true),\n\t\t\tDescription:               pulumi.String(name),\n\t\t\tPaymentType:               pulumi.String(\"Subscription\"),\n\t\t\tVswitchId:                 pulumi.String(default0.Ids[0]),\n\t\t\tDisasterRecoveryVswitchId: pulumi.String(default1.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpn.NewIpsecServer(ctx, \"foo\", \u0026vpn.IpsecServerArgs{\n\t\t\tClientIpPool:    pulumi.String(\"10.0.0.0/24\"),\n\t\t\tIpsecServerName: pulumi.String(name),\n\t\t\tLocalSubnet:     pulumi.String(\"192.168.0.0/24\"),\n\t\t\tVpnGatewayId:    defaultGateway.ID(),\n\t\t\tPskEnabled:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.vpn.Gateway;\nimport com.pulumi.alicloud.vpn.GatewayArgs;\nimport com.pulumi.alicloud.vpn.IpsecServer;\nimport com.pulumi.alicloud.vpn.IpsecServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        final var default0 = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[0])\n            .build());\n\n        final var default1 = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[1])\n            .build());\n\n        var defaultGateway = new Gateway(\"defaultGateway\", GatewayArgs.builder()\n            .vpnGatewayName(name)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .bandwidth(10)\n            .enableSsl(true)\n            .description(name)\n            .paymentType(\"Subscription\")\n            .vswitchId(default0.ids()[0])\n            .disasterRecoveryVswitchId(default1.ids()[0])\n            .build());\n\n        var foo = new IpsecServer(\"foo\", IpsecServerArgs.builder()\n            .clientIpPool(\"10.0.0.0/24\")\n            .ipsecServerName(name)\n            .localSubnet(\"192.168.0.0/24\")\n            .vpnGatewayId(defaultGateway.id())\n            .pskEnabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultGateway:\n    type: alicloud:vpn:Gateway\n    name: default\n    properties:\n      vpnGatewayName: ${name}\n      vpcId: ${defaultGetNetworks.ids[0]}\n      bandwidth: '10'\n      enableSsl: true\n      description: ${name}\n      paymentType: Subscription\n      vswitchId: ${default0.ids[0]}\n      disasterRecoveryVswitchId: ${default1.ids[0]}\n  foo:\n    type: alicloud:vpn:IpsecServer\n    properties:\n      clientIpPool: 10.0.0.0/24\n      ipsecServerName: ${name}\n      localSubnet: 192.168.0.0/24\n      vpnGatewayId: ${defaultGateway.id}\n      pskEnabled: true\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 172.16.0.0/16\n  default0:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[0]}\n  default1:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[1]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPN Ipsec Server can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpn/ipsecServer:IpsecServer example \u003cid\u003e\n```\n\n","properties":{"clientIpPool":{"type":"string","description":"The client CIDR block. It refers to the CIDR block that is allocated to the virtual interface of the client.\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"effectImmediately":{"type":"boolean","description":"Specifies whether you want the configuration to immediately take effect.\n"},"ikeConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/IpsecServerIkeConfig:IpsecServerIkeConfig"},"description":"The configuration of Phase 1 negotiations. See \u003cspan pulumi-lang-nodejs=\"`ikeConfig`\" pulumi-lang-dotnet=\"`IkeConfig`\" pulumi-lang-go=\"`ikeConfig`\" pulumi-lang-python=\"`ike_config`\" pulumi-lang-yaml=\"`ikeConfig`\" pulumi-lang-java=\"`ikeConfig`\"\u003e`ike_config`\u003c/span\u003e below.\n"},"ipsecConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/IpsecServerIpsecConfig:IpsecServerIpsecConfig"},"description":"The configuration of Phase 2 negotiations. See \u003cspan pulumi-lang-nodejs=\"`ipsecConfig`\" pulumi-lang-dotnet=\"`IpsecConfig`\" pulumi-lang-go=\"`ipsecConfig`\" pulumi-lang-python=\"`ipsec_config`\" pulumi-lang-yaml=\"`ipsecConfig`\" pulumi-lang-java=\"`ipsecConfig`\"\u003e`ipsec_config`\u003c/span\u003e below.\n"},"ipsecServerName":{"type":"string","description":"The name of the IPsec server. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain digits, hyphens (-), and underscores (_). It must start with a letter.\n"},"localSubnet":{"type":"string","description":"The local CIDR block. It refers to the CIDR block of the virtual private cloud (VPC) that is used to connect with the client. Separate multiple CIDR blocks with commas (,). Example: `192.168.1.0/24,192.168.2.0/24`.\n"},"psk":{"type":"string","description":"The pre-shared key. The pre-shared key is used to authenticate the VPN gateway and the client. By default, the system generates a random string that is 16 bits in length. You can also specify the pre-shared key. It can contain at most 100 characters.\n"},"pskEnabled":{"type":"boolean","description":"Whether to enable the pre-shared key authentication method. The value is only \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, which indicates that the pre-shared key authentication method is enabled.\n"},"vpnGatewayId":{"type":"string","description":"The ID of the VPN gateway.\n"}},"required":["clientIpPool","ikeConfigs","ipsecConfigs","localSubnet","psk","vpnGatewayId"],"inputProperties":{"clientIpPool":{"type":"string","description":"The client CIDR block. It refers to the CIDR block that is allocated to the virtual interface of the client.\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"effectImmediately":{"type":"boolean","description":"Specifies whether you want the configuration to immediately take effect.\n"},"ikeConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/IpsecServerIkeConfig:IpsecServerIkeConfig"},"description":"The configuration of Phase 1 negotiations. See \u003cspan pulumi-lang-nodejs=\"`ikeConfig`\" pulumi-lang-dotnet=\"`IkeConfig`\" pulumi-lang-go=\"`ikeConfig`\" pulumi-lang-python=\"`ike_config`\" pulumi-lang-yaml=\"`ikeConfig`\" pulumi-lang-java=\"`ikeConfig`\"\u003e`ike_config`\u003c/span\u003e below.\n"},"ipsecConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/IpsecServerIpsecConfig:IpsecServerIpsecConfig"},"description":"The configuration of Phase 2 negotiations. See \u003cspan pulumi-lang-nodejs=\"`ipsecConfig`\" pulumi-lang-dotnet=\"`IpsecConfig`\" pulumi-lang-go=\"`ipsecConfig`\" pulumi-lang-python=\"`ipsec_config`\" pulumi-lang-yaml=\"`ipsecConfig`\" pulumi-lang-java=\"`ipsecConfig`\"\u003e`ipsec_config`\u003c/span\u003e below.\n"},"ipsecServerName":{"type":"string","description":"The name of the IPsec server. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain digits, hyphens (-), and underscores (_). It must start with a letter.\n"},"localSubnet":{"type":"string","description":"The local CIDR block. It refers to the CIDR block of the virtual private cloud (VPC) that is used to connect with the client. Separate multiple CIDR blocks with commas (,). Example: `192.168.1.0/24,192.168.2.0/24`.\n"},"psk":{"type":"string","description":"The pre-shared key. The pre-shared key is used to authenticate the VPN gateway and the client. By default, the system generates a random string that is 16 bits in length. You can also specify the pre-shared key. It can contain at most 100 characters.\n"},"pskEnabled":{"type":"boolean","description":"Whether to enable the pre-shared key authentication method. The value is only \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, which indicates that the pre-shared key authentication method is enabled.\n"},"vpnGatewayId":{"type":"string","description":"The ID of the VPN gateway.\n","willReplaceOnChanges":true}},"requiredInputs":["clientIpPool","localSubnet","vpnGatewayId"],"stateInputs":{"description":"Input properties used for looking up and filtering IpsecServer resources.\n","properties":{"clientIpPool":{"type":"string","description":"The client CIDR block. It refers to the CIDR block that is allocated to the virtual interface of the client.\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"effectImmediately":{"type":"boolean","description":"Specifies whether you want the configuration to immediately take effect.\n"},"ikeConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/IpsecServerIkeConfig:IpsecServerIkeConfig"},"description":"The configuration of Phase 1 negotiations. See \u003cspan pulumi-lang-nodejs=\"`ikeConfig`\" pulumi-lang-dotnet=\"`IkeConfig`\" pulumi-lang-go=\"`ikeConfig`\" pulumi-lang-python=\"`ike_config`\" pulumi-lang-yaml=\"`ikeConfig`\" pulumi-lang-java=\"`ikeConfig`\"\u003e`ike_config`\u003c/span\u003e below.\n"},"ipsecConfigs":{"type":"array","items":{"$ref":"#/types/alicloud:vpn/IpsecServerIpsecConfig:IpsecServerIpsecConfig"},"description":"The configuration of Phase 2 negotiations. See \u003cspan pulumi-lang-nodejs=\"`ipsecConfig`\" pulumi-lang-dotnet=\"`IpsecConfig`\" pulumi-lang-go=\"`ipsecConfig`\" pulumi-lang-python=\"`ipsec_config`\" pulumi-lang-yaml=\"`ipsecConfig`\" pulumi-lang-java=\"`ipsecConfig`\"\u003e`ipsec_config`\u003c/span\u003e below.\n"},"ipsecServerName":{"type":"string","description":"The name of the IPsec server. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain digits, hyphens (-), and underscores (_). It must start with a letter.\n"},"localSubnet":{"type":"string","description":"The local CIDR block. It refers to the CIDR block of the virtual private cloud (VPC) that is used to connect with the client. Separate multiple CIDR blocks with commas (,). Example: `192.168.1.0/24,192.168.2.0/24`.\n"},"psk":{"type":"string","description":"The pre-shared key. The pre-shared key is used to authenticate the VPN gateway and the client. By default, the system generates a random string that is 16 bits in length. You can also specify the pre-shared key. It can contain at most 100 characters.\n"},"pskEnabled":{"type":"boolean","description":"Whether to enable the pre-shared key authentication method. The value is only \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, which indicates that the pre-shared key authentication method is enabled.\n"},"vpnGatewayId":{"type":"string","description":"The ID of the VPN gateway.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:vpn/pbrRouteEntry:PbrRouteEntry":{"description":"Provides a VPN Pbr Route Entry resource.\n\n\u003e **NOTE:** Available since v1.162.0.\n\nFor information about VPN Pbr Route Entry and how to use it, see [What is VPN Pbr Route Entry](https://www.alibabacloud.com/help/en/doc-detail/127248.html).\n\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.vpn.getGateways({});\nconst defaultCustomerGateway = new alicloud.vpn.CustomerGateway(\"defaultCustomerGateway\", {\n    description: \"defaultCustomerGateway\",\n    ipAddress: \"2.2.2.5\",\n    asn: \"2224\",\n    customerGatewayName: name,\n});\nconst changeCustomerGateway = new alicloud.vpn.CustomerGateway(\"changeCustomerGateway\", {\n    description: \"changeCustomerGateway\",\n    ipAddress: \"2.2.2.6\",\n    asn: \"2225\",\n    customerGatewayName: name,\n});\nconst defaultConnection = new alicloud.vpn.Connection(\"default\", {\n    vpnGatewayId: _default.then(_default =\u003e _default.ids?.[0]),\n    vpnConnectionName: name,\n    localSubnets: [\"3.0.0.0/24\"],\n    remoteSubnets: [\n        \"10.0.0.0/24\",\n        \"10.0.1.0/24\",\n    ],\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    enableTunnelsBgp: true,\n    tunnelOptionsSpecifications: [\n        {\n            tunnelIpsecConfig: {\n                ipsecAuthAlg: \"md5\",\n                ipsecEncAlg: \"aes256\",\n                ipsecLifetime: 16400,\n                ipsecPfs: \"group5\",\n            },\n            customerGatewayId: defaultCustomerGateway.id,\n            role: \"master\",\n            tunnelBgpConfig: {\n                localAsn: \"1219002\",\n                tunnelCidr: \"169.254.30.0/30\",\n                localBgpIp: \"169.254.30.1\",\n            },\n            tunnelIkeConfig: {\n                ikeMode: \"aggressive\",\n                ikeVersion: \"ikev2\",\n                localId: \"localid_tunnel2\",\n                psk: \"12345678\",\n                remoteId: \"remote2\",\n                ikeAuthAlg: \"md5\",\n                ikeEncAlg: \"aes256\",\n                ikeLifetime: 3600,\n                ikePfs: \"group14\",\n            },\n        },\n        {\n            tunnelIkeConfig: {\n                remoteId: \"remote24\",\n                ikeEncAlg: \"aes256\",\n                ikeLifetime: 27000,\n                ikeMode: \"aggressive\",\n                ikePfs: \"group5\",\n                ikeAuthAlg: \"md5\",\n                ikeVersion: \"ikev2\",\n                localId: \"localid_tunnel2\",\n                psk: \"12345678\",\n            },\n            tunnelIpsecConfig: {\n                ipsecLifetime: 2700,\n                ipsecPfs: \"group14\",\n                ipsecAuthAlg: \"md5\",\n                ipsecEncAlg: \"aes256\",\n            },\n            customerGatewayId: defaultCustomerGateway.id,\n            role: \"slave\",\n            tunnelBgpConfig: {\n                localAsn: \"1219002\",\n                localBgpIp: \"169.254.40.1\",\n                tunnelCidr: \"169.254.40.0/30\",\n            },\n        },\n    ],\n});\nconst defaultPbrRouteEntry = new alicloud.vpn.PbrRouteEntry(\"default\", {\n    vpnGatewayId: _default.then(_default =\u003e _default.ids?.[0]),\n    routeSource: \"192.168.1.0/24\",\n    routeDest: \"10.0.0.0/24\",\n    nextHop: defaultConnection.id,\n    weight: 0,\n    publishVpc: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.vpn.get_gateways()\ndefault_customer_gateway = alicloud.vpn.CustomerGateway(\"defaultCustomerGateway\",\n    description=\"defaultCustomerGateway\",\n    ip_address=\"2.2.2.5\",\n    asn=\"2224\",\n    customer_gateway_name=name)\nchange_customer_gateway = alicloud.vpn.CustomerGateway(\"changeCustomerGateway\",\n    description=\"changeCustomerGateway\",\n    ip_address=\"2.2.2.6\",\n    asn=\"2225\",\n    customer_gateway_name=name)\ndefault_connection = alicloud.vpn.Connection(\"default\",\n    vpn_gateway_id=default.ids[0],\n    vpn_connection_name=name,\n    local_subnets=[\"3.0.0.0/24\"],\n    remote_subnets=[\n        \"10.0.0.0/24\",\n        \"10.0.1.0/24\",\n    ],\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    enable_tunnels_bgp=True,\n    tunnel_options_specifications=[\n        {\n            \"tunnel_ipsec_config\": {\n                \"ipsec_auth_alg\": \"md5\",\n                \"ipsec_enc_alg\": \"aes256\",\n                \"ipsec_lifetime\": 16400,\n                \"ipsec_pfs\": \"group5\",\n            },\n            \"customer_gateway_id\": default_customer_gateway.id,\n            \"role\": \"master\",\n            \"tunnel_bgp_config\": {\n                \"local_asn\": \"1219002\",\n                \"tunnel_cidr\": \"169.254.30.0/30\",\n                \"local_bgp_ip\": \"169.254.30.1\",\n            },\n            \"tunnel_ike_config\": {\n                \"ike_mode\": \"aggressive\",\n                \"ike_version\": \"ikev2\",\n                \"local_id\": \"localid_tunnel2\",\n                \"psk\": \"12345678\",\n                \"remote_id\": \"remote2\",\n                \"ike_auth_alg\": \"md5\",\n                \"ike_enc_alg\": \"aes256\",\n                \"ike_lifetime\": 3600,\n                \"ike_pfs\": \"group14\",\n            },\n        },\n        {\n            \"tunnel_ike_config\": {\n                \"remote_id\": \"remote24\",\n                \"ike_enc_alg\": \"aes256\",\n                \"ike_lifetime\": 27000,\n                \"ike_mode\": \"aggressive\",\n                \"ike_pfs\": \"group5\",\n                \"ike_auth_alg\": \"md5\",\n                \"ike_version\": \"ikev2\",\n                \"local_id\": \"localid_tunnel2\",\n                \"psk\": \"12345678\",\n            },\n            \"tunnel_ipsec_config\": {\n                \"ipsec_lifetime\": 2700,\n                \"ipsec_pfs\": \"group14\",\n                \"ipsec_auth_alg\": \"md5\",\n                \"ipsec_enc_alg\": \"aes256\",\n            },\n            \"customer_gateway_id\": default_customer_gateway.id,\n            \"role\": \"slave\",\n            \"tunnel_bgp_config\": {\n                \"local_asn\": \"1219002\",\n                \"local_bgp_ip\": \"169.254.40.1\",\n                \"tunnel_cidr\": \"169.254.40.0/30\",\n            },\n        },\n    ])\ndefault_pbr_route_entry = alicloud.vpn.PbrRouteEntry(\"default\",\n    vpn_gateway_id=default.ids[0],\n    route_source=\"192.168.1.0/24\",\n    route_dest=\"10.0.0.0/24\",\n    next_hop=default_connection.id,\n    weight=0,\n    publish_vpc=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Vpn.GetGateways.Invoke();\n\n    var defaultCustomerGateway = new AliCloud.Vpn.CustomerGateway(\"defaultCustomerGateway\", new()\n    {\n        Description = \"defaultCustomerGateway\",\n        IpAddress = \"2.2.2.5\",\n        Asn = \"2224\",\n        CustomerGatewayName = name,\n    });\n\n    var changeCustomerGateway = new AliCloud.Vpn.CustomerGateway(\"changeCustomerGateway\", new()\n    {\n        Description = \"changeCustomerGateway\",\n        IpAddress = \"2.2.2.6\",\n        Asn = \"2225\",\n        CustomerGatewayName = name,\n    });\n\n    var defaultConnection = new AliCloud.Vpn.Connection(\"default\", new()\n    {\n        VpnGatewayId = @default.Apply(@default =\u003e @default.Apply(getGatewaysResult =\u003e getGatewaysResult.Ids[0])),\n        VpnConnectionName = name,\n        LocalSubnets = new[]\n        {\n            \"3.0.0.0/24\",\n        },\n        RemoteSubnets = new[]\n        {\n            \"10.0.0.0/24\",\n            \"10.0.1.0/24\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        EnableTunnelsBgp = true,\n        TunnelOptionsSpecifications = new[]\n        {\n            new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationArgs\n            {\n                TunnelIpsecConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs\n                {\n                    IpsecAuthAlg = \"md5\",\n                    IpsecEncAlg = \"aes256\",\n                    IpsecLifetime = 16400,\n                    IpsecPfs = \"group5\",\n                },\n                CustomerGatewayId = defaultCustomerGateway.Id,\n                Role = \"master\",\n                TunnelBgpConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs\n                {\n                    LocalAsn = \"1219002\",\n                    TunnelCidr = \"169.254.30.0/30\",\n                    LocalBgpIp = \"169.254.30.1\",\n                },\n                TunnelIkeConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs\n                {\n                    IkeMode = \"aggressive\",\n                    IkeVersion = \"ikev2\",\n                    LocalId = \"localid_tunnel2\",\n                    Psk = \"12345678\",\n                    RemoteId = \"remote2\",\n                    IkeAuthAlg = \"md5\",\n                    IkeEncAlg = \"aes256\",\n                    IkeLifetime = 3600,\n                    IkePfs = \"group14\",\n                },\n            },\n            new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationArgs\n            {\n                TunnelIkeConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs\n                {\n                    RemoteId = \"remote24\",\n                    IkeEncAlg = \"aes256\",\n                    IkeLifetime = 27000,\n                    IkeMode = \"aggressive\",\n                    IkePfs = \"group5\",\n                    IkeAuthAlg = \"md5\",\n                    IkeVersion = \"ikev2\",\n                    LocalId = \"localid_tunnel2\",\n                    Psk = \"12345678\",\n                },\n                TunnelIpsecConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs\n                {\n                    IpsecLifetime = 2700,\n                    IpsecPfs = \"group14\",\n                    IpsecAuthAlg = \"md5\",\n                    IpsecEncAlg = \"aes256\",\n                },\n                CustomerGatewayId = defaultCustomerGateway.Id,\n                Role = \"slave\",\n                TunnelBgpConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs\n                {\n                    LocalAsn = \"1219002\",\n                    LocalBgpIp = \"169.254.40.1\",\n                    TunnelCidr = \"169.254.40.0/30\",\n                },\n            },\n        },\n    });\n\n    var defaultPbrRouteEntry = new AliCloud.Vpn.PbrRouteEntry(\"default\", new()\n    {\n        VpnGatewayId = @default.Apply(@default =\u003e @default.Apply(getGatewaysResult =\u003e getGatewaysResult.Ids[0])),\n        RouteSource = \"192.168.1.0/24\",\n        RouteDest = \"10.0.0.0/24\",\n        NextHop = defaultConnection.Id,\n        Weight = 0,\n        PublishVpc = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := vpn.GetGateways(ctx, \u0026vpn.GetGatewaysArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCustomerGateway, err := vpn.NewCustomerGateway(ctx, \"defaultCustomerGateway\", \u0026vpn.CustomerGatewayArgs{\n\t\t\tDescription:         pulumi.String(\"defaultCustomerGateway\"),\n\t\t\tIpAddress:           pulumi.String(\"2.2.2.5\"),\n\t\t\tAsn:                 pulumi.String(\"2224\"),\n\t\t\tCustomerGatewayName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpn.NewCustomerGateway(ctx, \"changeCustomerGateway\", \u0026vpn.CustomerGatewayArgs{\n\t\t\tDescription:         pulumi.String(\"changeCustomerGateway\"),\n\t\t\tIpAddress:           pulumi.String(\"2.2.2.6\"),\n\t\t\tAsn:                 pulumi.String(\"2225\"),\n\t\t\tCustomerGatewayName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultConnection, err := vpn.NewConnection(ctx, \"default\", \u0026vpn.ConnectionArgs{\n\t\t\tVpnGatewayId:      pulumi.String(_default.Ids[0]),\n\t\t\tVpnConnectionName: pulumi.String(name),\n\t\t\tLocalSubnets: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"3.0.0.0/24\"),\n\t\t\t},\n\t\t\tRemoteSubnets: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/24\"),\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tEnableTunnelsBgp: pulumi.Bool(true),\n\t\t\tTunnelOptionsSpecifications: vpn.ConnectionTunnelOptionsSpecificationArray{\n\t\t\t\t\u0026vpn.ConnectionTunnelOptionsSpecificationArgs{\n\t\t\t\t\tTunnelIpsecConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs{\n\t\t\t\t\t\tIpsecAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIpsecEncAlg:   pulumi.String(\"aes256\"),\n\t\t\t\t\t\tIpsecLifetime: pulumi.Int(16400),\n\t\t\t\t\t\tIpsecPfs:      pulumi.String(\"group5\"),\n\t\t\t\t\t},\n\t\t\t\t\tCustomerGatewayId: defaultCustomerGateway.ID(),\n\t\t\t\t\tRole:              pulumi.String(\"master\"),\n\t\t\t\t\tTunnelBgpConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs{\n\t\t\t\t\t\tLocalAsn:   pulumi.String(\"1219002\"),\n\t\t\t\t\t\tTunnelCidr: pulumi.String(\"169.254.30.0/30\"),\n\t\t\t\t\t\tLocalBgpIp: pulumi.String(\"169.254.30.1\"),\n\t\t\t\t\t},\n\t\t\t\t\tTunnelIkeConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs{\n\t\t\t\t\t\tIkeMode:     pulumi.String(\"aggressive\"),\n\t\t\t\t\t\tIkeVersion:  pulumi.String(\"ikev2\"),\n\t\t\t\t\t\tLocalId:     pulumi.String(\"localid_tunnel2\"),\n\t\t\t\t\t\tPsk:         pulumi.String(\"12345678\"),\n\t\t\t\t\t\tRemoteId:    pulumi.String(\"remote2\"),\n\t\t\t\t\t\tIkeAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIkeEncAlg:   pulumi.String(\"aes256\"),\n\t\t\t\t\t\tIkeLifetime: pulumi.Int(3600),\n\t\t\t\t\t\tIkePfs:      pulumi.String(\"group14\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026vpn.ConnectionTunnelOptionsSpecificationArgs{\n\t\t\t\t\tTunnelIkeConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs{\n\t\t\t\t\t\tRemoteId:    pulumi.String(\"remote24\"),\n\t\t\t\t\t\tIkeEncAlg:   pulumi.String(\"aes256\"),\n\t\t\t\t\t\tIkeLifetime: pulumi.Int(27000),\n\t\t\t\t\t\tIkeMode:     pulumi.String(\"aggressive\"),\n\t\t\t\t\t\tIkePfs:      pulumi.String(\"group5\"),\n\t\t\t\t\t\tIkeAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIkeVersion:  pulumi.String(\"ikev2\"),\n\t\t\t\t\t\tLocalId:     pulumi.String(\"localid_tunnel2\"),\n\t\t\t\t\t\tPsk:         pulumi.String(\"12345678\"),\n\t\t\t\t\t},\n\t\t\t\t\tTunnelIpsecConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs{\n\t\t\t\t\t\tIpsecLifetime: pulumi.Int(2700),\n\t\t\t\t\t\tIpsecPfs:      pulumi.String(\"group14\"),\n\t\t\t\t\t\tIpsecAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIpsecEncAlg:   pulumi.String(\"aes256\"),\n\t\t\t\t\t},\n\t\t\t\t\tCustomerGatewayId: defaultCustomerGateway.ID(),\n\t\t\t\t\tRole:              pulumi.String(\"slave\"),\n\t\t\t\t\tTunnelBgpConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs{\n\t\t\t\t\t\tLocalAsn:   pulumi.String(\"1219002\"),\n\t\t\t\t\t\tLocalBgpIp: pulumi.String(\"169.254.40.1\"),\n\t\t\t\t\t\tTunnelCidr: pulumi.String(\"169.254.40.0/30\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpn.NewPbrRouteEntry(ctx, \"default\", \u0026vpn.PbrRouteEntryArgs{\n\t\t\tVpnGatewayId: pulumi.String(_default.Ids[0]),\n\t\t\tRouteSource:  pulumi.String(\"192.168.1.0/24\"),\n\t\t\tRouteDest:    pulumi.String(\"10.0.0.0/24\"),\n\t\t\tNextHop:      defaultConnection.ID(),\n\t\t\tWeight:       pulumi.Int(0),\n\t\t\tPublishVpc:   pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpn.VpnFunctions;\nimport com.pulumi.alicloud.vpn.inputs.GetGatewaysArgs;\nimport com.pulumi.alicloud.vpn.CustomerGateway;\nimport com.pulumi.alicloud.vpn.CustomerGatewayArgs;\nimport com.pulumi.alicloud.vpn.Connection;\nimport com.pulumi.alicloud.vpn.ConnectionArgs;\nimport com.pulumi.alicloud.vpn.inputs.ConnectionTunnelOptionsSpecificationArgs;\nimport com.pulumi.alicloud.vpn.inputs.ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs;\nimport com.pulumi.alicloud.vpn.PbrRouteEntry;\nimport com.pulumi.alicloud.vpn.PbrRouteEntryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = VpnFunctions.getGateways(GetGatewaysArgs.builder()\n            .build());\n\n        var defaultCustomerGateway = new CustomerGateway(\"defaultCustomerGateway\", CustomerGatewayArgs.builder()\n            .description(\"defaultCustomerGateway\")\n            .ipAddress(\"2.2.2.5\")\n            .asn(\"2224\")\n            .customerGatewayName(name)\n            .build());\n\n        var changeCustomerGateway = new CustomerGateway(\"changeCustomerGateway\", CustomerGatewayArgs.builder()\n            .description(\"changeCustomerGateway\")\n            .ipAddress(\"2.2.2.6\")\n            .asn(\"2225\")\n            .customerGatewayName(name)\n            .build());\n\n        var defaultConnection = new Connection(\"defaultConnection\", ConnectionArgs.builder()\n            .vpnGatewayId(default_.ids()[0])\n            .vpnConnectionName(name)\n            .localSubnets(\"3.0.0.0/24\")\n            .remoteSubnets(            \n                \"10.0.0.0/24\",\n                \"10.0.1.0/24\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .enableTunnelsBgp(true)\n            .tunnelOptionsSpecifications(            \n                ConnectionTunnelOptionsSpecificationArgs.builder()\n                    .tunnelIpsecConfig(ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs.builder()\n                        .ipsecAuthAlg(\"md5\")\n                        .ipsecEncAlg(\"aes256\")\n                        .ipsecLifetime(16400)\n                        .ipsecPfs(\"group5\")\n                        .build())\n                    .customerGatewayId(defaultCustomerGateway.id())\n                    .role(\"master\")\n                    .tunnelBgpConfig(ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs.builder()\n                        .localAsn(\"1219002\")\n                        .tunnelCidr(\"169.254.30.0/30\")\n                        .localBgpIp(\"169.254.30.1\")\n                        .build())\n                    .tunnelIkeConfig(ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs.builder()\n                        .ikeMode(\"aggressive\")\n                        .ikeVersion(\"ikev2\")\n                        .localId(\"localid_tunnel2\")\n                        .psk(\"12345678\")\n                        .remoteId(\"remote2\")\n                        .ikeAuthAlg(\"md5\")\n                        .ikeEncAlg(\"aes256\")\n                        .ikeLifetime(3600)\n                        .ikePfs(\"group14\")\n                        .build())\n                    .build(),\n                ConnectionTunnelOptionsSpecificationArgs.builder()\n                    .tunnelIkeConfig(ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs.builder()\n                        .remoteId(\"remote24\")\n                        .ikeEncAlg(\"aes256\")\n                        .ikeLifetime(27000)\n                        .ikeMode(\"aggressive\")\n                        .ikePfs(\"group5\")\n                        .ikeAuthAlg(\"md5\")\n                        .ikeVersion(\"ikev2\")\n                        .localId(\"localid_tunnel2\")\n                        .psk(\"12345678\")\n                        .build())\n                    .tunnelIpsecConfig(ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs.builder()\n                        .ipsecLifetime(2700)\n                        .ipsecPfs(\"group14\")\n                        .ipsecAuthAlg(\"md5\")\n                        .ipsecEncAlg(\"aes256\")\n                        .build())\n                    .customerGatewayId(defaultCustomerGateway.id())\n                    .role(\"slave\")\n                    .tunnelBgpConfig(ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs.builder()\n                        .localAsn(\"1219002\")\n                        .localBgpIp(\"169.254.40.1\")\n                        .tunnelCidr(\"169.254.40.0/30\")\n                        .build())\n                    .build())\n            .build());\n\n        var defaultPbrRouteEntry = new PbrRouteEntry(\"defaultPbrRouteEntry\", PbrRouteEntryArgs.builder()\n            .vpnGatewayId(default_.ids()[0])\n            .routeSource(\"192.168.1.0/24\")\n            .routeDest(\"10.0.0.0/24\")\n            .nextHop(defaultConnection.id())\n            .weight(0)\n            .publishVpc(false)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultCustomerGateway:\n    type: alicloud:vpn:CustomerGateway\n    properties:\n      description: defaultCustomerGateway\n      ipAddress: 2.2.2.5\n      asn: '2224'\n      customerGatewayName: ${name}\n  changeCustomerGateway:\n    type: alicloud:vpn:CustomerGateway\n    properties:\n      description: changeCustomerGateway\n      ipAddress: 2.2.2.6\n      asn: '2225'\n      customerGatewayName: ${name}\n  defaultConnection:\n    type: alicloud:vpn:Connection\n    name: default\n    properties:\n      vpnGatewayId: ${default.ids[0]}\n      vpnConnectionName: ${name}\n      localSubnets:\n        - 3.0.0.0/24\n      remoteSubnets:\n        - 10.0.0.0/24\n        - 10.0.1.0/24\n      tags:\n        Created: TF\n        For: example\n      enableTunnelsBgp: 'true'\n      tunnelOptionsSpecifications:\n        - tunnelIpsecConfig:\n            ipsecAuthAlg: md5\n            ipsecEncAlg: aes256\n            ipsecLifetime: '16400'\n            ipsecPfs: group5\n          customerGatewayId: ${defaultCustomerGateway.id}\n          role: master\n          tunnelBgpConfig:\n            localAsn: '1219002'\n            tunnelCidr: 169.254.30.0/30\n            localBgpIp: 169.254.30.1\n          tunnelIkeConfig:\n            ikeMode: aggressive\n            ikeVersion: ikev2\n            localId: localid_tunnel2\n            psk: '12345678'\n            remoteId: remote2\n            ikeAuthAlg: md5\n            ikeEncAlg: aes256\n            ikeLifetime: '3600'\n            ikePfs: group14\n        - tunnelIkeConfig:\n            remoteId: remote24\n            ikeEncAlg: aes256\n            ikeLifetime: '27000'\n            ikeMode: aggressive\n            ikePfs: group5\n            ikeAuthAlg: md5\n            ikeVersion: ikev2\n            localId: localid_tunnel2\n            psk: '12345678'\n          tunnelIpsecConfig:\n            ipsecLifetime: '2700'\n            ipsecPfs: group14\n            ipsecAuthAlg: md5\n            ipsecEncAlg: aes256\n          customerGatewayId: ${defaultCustomerGateway.id}\n          role: slave\n          tunnelBgpConfig:\n            localAsn: '1219002'\n            localBgpIp: 169.254.40.1\n            tunnelCidr: 169.254.40.0/30\n  defaultPbrRouteEntry:\n    type: alicloud:vpn:PbrRouteEntry\n    name: default\n    properties:\n      vpnGatewayId: ${default.ids[0]}\n      routeSource: 192.168.1.0/24\n      routeDest: 10.0.0.0/24\n      nextHop: ${defaultConnection.id}\n      weight: 0\n      publishVpc: false\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vpn:getGateways\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPN Pbr route entry can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpn/pbrRouteEntry:PbrRouteEntry example \u003cvpn_gateway_id\u003e:\u003cnext_hop\u003e:\u003croute_source\u003e:\u003croute_dest\u003e\n```\n\n","properties":{"nextHop":{"type":"string","description":"The next hop of the policy-based route.\n"},"publishVpc":{"type":"boolean","description":"Whether to issue the destination route to the VPC.\n"},"routeDest":{"type":"string","description":"The destination CIDR block of the policy-based route.\n"},"routeSource":{"type":"string","description":"The source CIDR block of the policy-based route.\n"},"status":{"type":"string","description":"The status of the vpn pbr route entry.\n"},"vpnGatewayId":{"type":"string","description":"The ID of the vpn gateway.\n"},"weight":{"type":"integer","description":"The weight of the policy-based route. Valid values: 0 and 100.\n"}},"required":["nextHop","publishVpc","routeDest","routeSource","status","vpnGatewayId","weight"],"inputProperties":{"nextHop":{"type":"string","description":"The next hop of the policy-based route.\n","willReplaceOnChanges":true},"publishVpc":{"type":"boolean","description":"Whether to issue the destination route to the VPC.\n"},"routeDest":{"type":"string","description":"The destination CIDR block of the policy-based route.\n","willReplaceOnChanges":true},"routeSource":{"type":"string","description":"The source CIDR block of the policy-based route.\n","willReplaceOnChanges":true},"vpnGatewayId":{"type":"string","description":"The ID of the vpn gateway.\n","willReplaceOnChanges":true},"weight":{"type":"integer","description":"The weight of the policy-based route. Valid values: 0 and 100.\n"}},"requiredInputs":["nextHop","publishVpc","routeDest","routeSource","vpnGatewayId","weight"],"stateInputs":{"description":"Input properties used for looking up and filtering PbrRouteEntry resources.\n","properties":{"nextHop":{"type":"string","description":"The next hop of the policy-based route.\n","willReplaceOnChanges":true},"publishVpc":{"type":"boolean","description":"Whether to issue the destination route to the VPC.\n"},"routeDest":{"type":"string","description":"The destination CIDR block of the policy-based route.\n","willReplaceOnChanges":true},"routeSource":{"type":"string","description":"The source CIDR block of the policy-based route.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the vpn pbr route entry.\n"},"vpnGatewayId":{"type":"string","description":"The ID of the vpn gateway.\n","willReplaceOnChanges":true},"weight":{"type":"integer","description":"The weight of the policy-based route. Valid values: 0 and 100.\n"}},"type":"object"}},"alicloud:vpn/routeEntry:RouteEntry":{"description":"Provides a VPN Route Entry resource.\n\n\u003e **NOTE:** Terraform will build vpn route entry instance while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.vpn.RouteEntry`\" pulumi-lang-dotnet=\"`alicloud.vpn.RouteEntry`\" pulumi-lang-go=\"`vpn.RouteEntry`\" pulumi-lang-python=\"`vpn.RouteEntry`\" pulumi-lang-yaml=\"`alicloud.vpn.RouteEntry`\" pulumi-lang-java=\"`alicloud.vpn.RouteEntry`\"\u003e`alicloud.vpn.RouteEntry`\u003c/span\u003e to build a VPN Route Entry resource.\n\n\u003e **NOTE:** Available since v1.57.0.\n\nFor information about VPN Route Entry and how to use it, see [What is VPN Route Entry](https://www.alibabacloud.com/help/en/doc-detail/127250.html).\n\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.vpn.getGateways({});\nconst defaultCustomerGateway = new alicloud.vpn.CustomerGateway(\"defaultCustomerGateway\", {\n    description: \"defaultCustomerGateway\",\n    ipAddress: \"2.2.2.5\",\n    asn: \"2224\",\n    customerGatewayName: name,\n});\nconst changeCustomerGateway = new alicloud.vpn.CustomerGateway(\"changeCustomerGateway\", {\n    description: \"changeCustomerGateway\",\n    ipAddress: \"2.2.2.6\",\n    asn: \"2225\",\n    customerGatewayName: name,\n});\nconst defaultConnection = new alicloud.vpn.Connection(\"default\", {\n    vpnGatewayId: _default.then(_default =\u003e _default.ids?.[0]),\n    vpnConnectionName: name,\n    localSubnets: [\"3.0.0.0/24\"],\n    remoteSubnets: [\n        \"10.0.0.0/24\",\n        \"10.0.1.0/24\",\n    ],\n    tags: {\n        Created: \"TF\",\n        For: \"example\",\n    },\n    enableTunnelsBgp: true,\n    tunnelOptionsSpecifications: [\n        {\n            tunnelIpsecConfig: {\n                ipsecAuthAlg: \"md5\",\n                ipsecEncAlg: \"aes256\",\n                ipsecLifetime: 16400,\n                ipsecPfs: \"group5\",\n            },\n            customerGatewayId: defaultCustomerGateway.id,\n            role: \"master\",\n            tunnelBgpConfig: {\n                localAsn: \"1219002\",\n                tunnelCidr: \"169.254.30.0/30\",\n                localBgpIp: \"169.254.30.1\",\n            },\n            tunnelIkeConfig: {\n                ikeMode: \"aggressive\",\n                ikeVersion: \"ikev2\",\n                localId: \"localid_tunnel2\",\n                psk: \"12345678\",\n                remoteId: \"remote2\",\n                ikeAuthAlg: \"md5\",\n                ikeEncAlg: \"aes256\",\n                ikeLifetime: 3600,\n                ikePfs: \"group14\",\n            },\n        },\n        {\n            tunnelIkeConfig: {\n                remoteId: \"remote24\",\n                ikeEncAlg: \"aes256\",\n                ikeLifetime: 27000,\n                ikeMode: \"aggressive\",\n                ikePfs: \"group5\",\n                ikeAuthAlg: \"md5\",\n                ikeVersion: \"ikev2\",\n                localId: \"localid_tunnel2\",\n                psk: \"12345678\",\n            },\n            tunnelIpsecConfig: {\n                ipsecLifetime: 2700,\n                ipsecPfs: \"group14\",\n                ipsecAuthAlg: \"md5\",\n                ipsecEncAlg: \"aes256\",\n            },\n            customerGatewayId: defaultCustomerGateway.id,\n            role: \"slave\",\n            tunnelBgpConfig: {\n                localAsn: \"1219002\",\n                localBgpIp: \"169.254.40.1\",\n                tunnelCidr: \"169.254.40.0/30\",\n            },\n        },\n    ],\n});\nconst defaultRouteEntry = new alicloud.vpn.RouteEntry(\"default\", {\n    vpnGatewayId: _default.then(_default =\u003e _default.ids?.[0]),\n    routeDest: \"10.0.0.0/24\",\n    nextHop: defaultConnection.id,\n    weight: 0,\n    publishVpc: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.vpn.get_gateways()\ndefault_customer_gateway = alicloud.vpn.CustomerGateway(\"defaultCustomerGateway\",\n    description=\"defaultCustomerGateway\",\n    ip_address=\"2.2.2.5\",\n    asn=\"2224\",\n    customer_gateway_name=name)\nchange_customer_gateway = alicloud.vpn.CustomerGateway(\"changeCustomerGateway\",\n    description=\"changeCustomerGateway\",\n    ip_address=\"2.2.2.6\",\n    asn=\"2225\",\n    customer_gateway_name=name)\ndefault_connection = alicloud.vpn.Connection(\"default\",\n    vpn_gateway_id=default.ids[0],\n    vpn_connection_name=name,\n    local_subnets=[\"3.0.0.0/24\"],\n    remote_subnets=[\n        \"10.0.0.0/24\",\n        \"10.0.1.0/24\",\n    ],\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"example\",\n    },\n    enable_tunnels_bgp=True,\n    tunnel_options_specifications=[\n        {\n            \"tunnel_ipsec_config\": {\n                \"ipsec_auth_alg\": \"md5\",\n                \"ipsec_enc_alg\": \"aes256\",\n                \"ipsec_lifetime\": 16400,\n                \"ipsec_pfs\": \"group5\",\n            },\n            \"customer_gateway_id\": default_customer_gateway.id,\n            \"role\": \"master\",\n            \"tunnel_bgp_config\": {\n                \"local_asn\": \"1219002\",\n                \"tunnel_cidr\": \"169.254.30.0/30\",\n                \"local_bgp_ip\": \"169.254.30.1\",\n            },\n            \"tunnel_ike_config\": {\n                \"ike_mode\": \"aggressive\",\n                \"ike_version\": \"ikev2\",\n                \"local_id\": \"localid_tunnel2\",\n                \"psk\": \"12345678\",\n                \"remote_id\": \"remote2\",\n                \"ike_auth_alg\": \"md5\",\n                \"ike_enc_alg\": \"aes256\",\n                \"ike_lifetime\": 3600,\n                \"ike_pfs\": \"group14\",\n            },\n        },\n        {\n            \"tunnel_ike_config\": {\n                \"remote_id\": \"remote24\",\n                \"ike_enc_alg\": \"aes256\",\n                \"ike_lifetime\": 27000,\n                \"ike_mode\": \"aggressive\",\n                \"ike_pfs\": \"group5\",\n                \"ike_auth_alg\": \"md5\",\n                \"ike_version\": \"ikev2\",\n                \"local_id\": \"localid_tunnel2\",\n                \"psk\": \"12345678\",\n            },\n            \"tunnel_ipsec_config\": {\n                \"ipsec_lifetime\": 2700,\n                \"ipsec_pfs\": \"group14\",\n                \"ipsec_auth_alg\": \"md5\",\n                \"ipsec_enc_alg\": \"aes256\",\n            },\n            \"customer_gateway_id\": default_customer_gateway.id,\n            \"role\": \"slave\",\n            \"tunnel_bgp_config\": {\n                \"local_asn\": \"1219002\",\n                \"local_bgp_ip\": \"169.254.40.1\",\n                \"tunnel_cidr\": \"169.254.40.0/30\",\n            },\n        },\n    ])\ndefault_route_entry = alicloud.vpn.RouteEntry(\"default\",\n    vpn_gateway_id=default.ids[0],\n    route_dest=\"10.0.0.0/24\",\n    next_hop=default_connection.id,\n    weight=0,\n    publish_vpc=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Vpn.GetGateways.Invoke();\n\n    var defaultCustomerGateway = new AliCloud.Vpn.CustomerGateway(\"defaultCustomerGateway\", new()\n    {\n        Description = \"defaultCustomerGateway\",\n        IpAddress = \"2.2.2.5\",\n        Asn = \"2224\",\n        CustomerGatewayName = name,\n    });\n\n    var changeCustomerGateway = new AliCloud.Vpn.CustomerGateway(\"changeCustomerGateway\", new()\n    {\n        Description = \"changeCustomerGateway\",\n        IpAddress = \"2.2.2.6\",\n        Asn = \"2225\",\n        CustomerGatewayName = name,\n    });\n\n    var defaultConnection = new AliCloud.Vpn.Connection(\"default\", new()\n    {\n        VpnGatewayId = @default.Apply(@default =\u003e @default.Apply(getGatewaysResult =\u003e getGatewaysResult.Ids[0])),\n        VpnConnectionName = name,\n        LocalSubnets = new[]\n        {\n            \"3.0.0.0/24\",\n        },\n        RemoteSubnets = new[]\n        {\n            \"10.0.0.0/24\",\n            \"10.0.1.0/24\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"example\" },\n        },\n        EnableTunnelsBgp = true,\n        TunnelOptionsSpecifications = new[]\n        {\n            new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationArgs\n            {\n                TunnelIpsecConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs\n                {\n                    IpsecAuthAlg = \"md5\",\n                    IpsecEncAlg = \"aes256\",\n                    IpsecLifetime = 16400,\n                    IpsecPfs = \"group5\",\n                },\n                CustomerGatewayId = defaultCustomerGateway.Id,\n                Role = \"master\",\n                TunnelBgpConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs\n                {\n                    LocalAsn = \"1219002\",\n                    TunnelCidr = \"169.254.30.0/30\",\n                    LocalBgpIp = \"169.254.30.1\",\n                },\n                TunnelIkeConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs\n                {\n                    IkeMode = \"aggressive\",\n                    IkeVersion = \"ikev2\",\n                    LocalId = \"localid_tunnel2\",\n                    Psk = \"12345678\",\n                    RemoteId = \"remote2\",\n                    IkeAuthAlg = \"md5\",\n                    IkeEncAlg = \"aes256\",\n                    IkeLifetime = 3600,\n                    IkePfs = \"group14\",\n                },\n            },\n            new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationArgs\n            {\n                TunnelIkeConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs\n                {\n                    RemoteId = \"remote24\",\n                    IkeEncAlg = \"aes256\",\n                    IkeLifetime = 27000,\n                    IkeMode = \"aggressive\",\n                    IkePfs = \"group5\",\n                    IkeAuthAlg = \"md5\",\n                    IkeVersion = \"ikev2\",\n                    LocalId = \"localid_tunnel2\",\n                    Psk = \"12345678\",\n                },\n                TunnelIpsecConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs\n                {\n                    IpsecLifetime = 2700,\n                    IpsecPfs = \"group14\",\n                    IpsecAuthAlg = \"md5\",\n                    IpsecEncAlg = \"aes256\",\n                },\n                CustomerGatewayId = defaultCustomerGateway.Id,\n                Role = \"slave\",\n                TunnelBgpConfig = new AliCloud.Vpn.Inputs.ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs\n                {\n                    LocalAsn = \"1219002\",\n                    LocalBgpIp = \"169.254.40.1\",\n                    TunnelCidr = \"169.254.40.0/30\",\n                },\n            },\n        },\n    });\n\n    var defaultRouteEntry = new AliCloud.Vpn.RouteEntry(\"default\", new()\n    {\n        VpnGatewayId = @default.Apply(@default =\u003e @default.Apply(getGatewaysResult =\u003e getGatewaysResult.Ids[0])),\n        RouteDest = \"10.0.0.0/24\",\n        NextHop = defaultConnection.Id,\n        Weight = 0,\n        PublishVpc = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := vpn.GetGateways(ctx, \u0026vpn.GetGatewaysArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCustomerGateway, err := vpn.NewCustomerGateway(ctx, \"defaultCustomerGateway\", \u0026vpn.CustomerGatewayArgs{\n\t\t\tDescription:         pulumi.String(\"defaultCustomerGateway\"),\n\t\t\tIpAddress:           pulumi.String(\"2.2.2.5\"),\n\t\t\tAsn:                 pulumi.String(\"2224\"),\n\t\t\tCustomerGatewayName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpn.NewCustomerGateway(ctx, \"changeCustomerGateway\", \u0026vpn.CustomerGatewayArgs{\n\t\t\tDescription:         pulumi.String(\"changeCustomerGateway\"),\n\t\t\tIpAddress:           pulumi.String(\"2.2.2.6\"),\n\t\t\tAsn:                 pulumi.String(\"2225\"),\n\t\t\tCustomerGatewayName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultConnection, err := vpn.NewConnection(ctx, \"default\", \u0026vpn.ConnectionArgs{\n\t\t\tVpnGatewayId:      pulumi.String(_default.Ids[0]),\n\t\t\tVpnConnectionName: pulumi.String(name),\n\t\t\tLocalSubnets: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"3.0.0.0/24\"),\n\t\t\t},\n\t\t\tRemoteSubnets: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/24\"),\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tEnableTunnelsBgp: pulumi.Bool(true),\n\t\t\tTunnelOptionsSpecifications: vpn.ConnectionTunnelOptionsSpecificationArray{\n\t\t\t\t\u0026vpn.ConnectionTunnelOptionsSpecificationArgs{\n\t\t\t\t\tTunnelIpsecConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs{\n\t\t\t\t\t\tIpsecAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIpsecEncAlg:   pulumi.String(\"aes256\"),\n\t\t\t\t\t\tIpsecLifetime: pulumi.Int(16400),\n\t\t\t\t\t\tIpsecPfs:      pulumi.String(\"group5\"),\n\t\t\t\t\t},\n\t\t\t\t\tCustomerGatewayId: defaultCustomerGateway.ID(),\n\t\t\t\t\tRole:              pulumi.String(\"master\"),\n\t\t\t\t\tTunnelBgpConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs{\n\t\t\t\t\t\tLocalAsn:   pulumi.String(\"1219002\"),\n\t\t\t\t\t\tTunnelCidr: pulumi.String(\"169.254.30.0/30\"),\n\t\t\t\t\t\tLocalBgpIp: pulumi.String(\"169.254.30.1\"),\n\t\t\t\t\t},\n\t\t\t\t\tTunnelIkeConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs{\n\t\t\t\t\t\tIkeMode:     pulumi.String(\"aggressive\"),\n\t\t\t\t\t\tIkeVersion:  pulumi.String(\"ikev2\"),\n\t\t\t\t\t\tLocalId:     pulumi.String(\"localid_tunnel2\"),\n\t\t\t\t\t\tPsk:         pulumi.String(\"12345678\"),\n\t\t\t\t\t\tRemoteId:    pulumi.String(\"remote2\"),\n\t\t\t\t\t\tIkeAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIkeEncAlg:   pulumi.String(\"aes256\"),\n\t\t\t\t\t\tIkeLifetime: pulumi.Int(3600),\n\t\t\t\t\t\tIkePfs:      pulumi.String(\"group14\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026vpn.ConnectionTunnelOptionsSpecificationArgs{\n\t\t\t\t\tTunnelIkeConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs{\n\t\t\t\t\t\tRemoteId:    pulumi.String(\"remote24\"),\n\t\t\t\t\t\tIkeEncAlg:   pulumi.String(\"aes256\"),\n\t\t\t\t\t\tIkeLifetime: pulumi.Int(27000),\n\t\t\t\t\t\tIkeMode:     pulumi.String(\"aggressive\"),\n\t\t\t\t\t\tIkePfs:      pulumi.String(\"group5\"),\n\t\t\t\t\t\tIkeAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIkeVersion:  pulumi.String(\"ikev2\"),\n\t\t\t\t\t\tLocalId:     pulumi.String(\"localid_tunnel2\"),\n\t\t\t\t\t\tPsk:         pulumi.String(\"12345678\"),\n\t\t\t\t\t},\n\t\t\t\t\tTunnelIpsecConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs{\n\t\t\t\t\t\tIpsecLifetime: pulumi.Int(2700),\n\t\t\t\t\t\tIpsecPfs:      pulumi.String(\"group14\"),\n\t\t\t\t\t\tIpsecAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIpsecEncAlg:   pulumi.String(\"aes256\"),\n\t\t\t\t\t},\n\t\t\t\t\tCustomerGatewayId: defaultCustomerGateway.ID(),\n\t\t\t\t\tRole:              pulumi.String(\"slave\"),\n\t\t\t\t\tTunnelBgpConfig: \u0026vpn.ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs{\n\t\t\t\t\t\tLocalAsn:   pulumi.String(\"1219002\"),\n\t\t\t\t\t\tLocalBgpIp: pulumi.String(\"169.254.40.1\"),\n\t\t\t\t\t\tTunnelCidr: pulumi.String(\"169.254.40.0/30\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpn.NewRouteEntry(ctx, \"default\", \u0026vpn.RouteEntryArgs{\n\t\t\tVpnGatewayId: pulumi.String(_default.Ids[0]),\n\t\t\tRouteDest:    pulumi.String(\"10.0.0.0/24\"),\n\t\t\tNextHop:      defaultConnection.ID(),\n\t\t\tWeight:       pulumi.Int(0),\n\t\t\tPublishVpc:   pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpn.VpnFunctions;\nimport com.pulumi.alicloud.vpn.inputs.GetGatewaysArgs;\nimport com.pulumi.alicloud.vpn.CustomerGateway;\nimport com.pulumi.alicloud.vpn.CustomerGatewayArgs;\nimport com.pulumi.alicloud.vpn.Connection;\nimport com.pulumi.alicloud.vpn.ConnectionArgs;\nimport com.pulumi.alicloud.vpn.inputs.ConnectionTunnelOptionsSpecificationArgs;\nimport com.pulumi.alicloud.vpn.inputs.ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs;\nimport com.pulumi.alicloud.vpn.RouteEntry;\nimport com.pulumi.alicloud.vpn.RouteEntryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = VpnFunctions.getGateways(GetGatewaysArgs.builder()\n            .build());\n\n        var defaultCustomerGateway = new CustomerGateway(\"defaultCustomerGateway\", CustomerGatewayArgs.builder()\n            .description(\"defaultCustomerGateway\")\n            .ipAddress(\"2.2.2.5\")\n            .asn(\"2224\")\n            .customerGatewayName(name)\n            .build());\n\n        var changeCustomerGateway = new CustomerGateway(\"changeCustomerGateway\", CustomerGatewayArgs.builder()\n            .description(\"changeCustomerGateway\")\n            .ipAddress(\"2.2.2.6\")\n            .asn(\"2225\")\n            .customerGatewayName(name)\n            .build());\n\n        var defaultConnection = new Connection(\"defaultConnection\", ConnectionArgs.builder()\n            .vpnGatewayId(default_.ids()[0])\n            .vpnConnectionName(name)\n            .localSubnets(\"3.0.0.0/24\")\n            .remoteSubnets(            \n                \"10.0.0.0/24\",\n                \"10.0.1.0/24\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .enableTunnelsBgp(true)\n            .tunnelOptionsSpecifications(            \n                ConnectionTunnelOptionsSpecificationArgs.builder()\n                    .tunnelIpsecConfig(ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs.builder()\n                        .ipsecAuthAlg(\"md5\")\n                        .ipsecEncAlg(\"aes256\")\n                        .ipsecLifetime(16400)\n                        .ipsecPfs(\"group5\")\n                        .build())\n                    .customerGatewayId(defaultCustomerGateway.id())\n                    .role(\"master\")\n                    .tunnelBgpConfig(ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs.builder()\n                        .localAsn(\"1219002\")\n                        .tunnelCidr(\"169.254.30.0/30\")\n                        .localBgpIp(\"169.254.30.1\")\n                        .build())\n                    .tunnelIkeConfig(ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs.builder()\n                        .ikeMode(\"aggressive\")\n                        .ikeVersion(\"ikev2\")\n                        .localId(\"localid_tunnel2\")\n                        .psk(\"12345678\")\n                        .remoteId(\"remote2\")\n                        .ikeAuthAlg(\"md5\")\n                        .ikeEncAlg(\"aes256\")\n                        .ikeLifetime(3600)\n                        .ikePfs(\"group14\")\n                        .build())\n                    .build(),\n                ConnectionTunnelOptionsSpecificationArgs.builder()\n                    .tunnelIkeConfig(ConnectionTunnelOptionsSpecificationTunnelIkeConfigArgs.builder()\n                        .remoteId(\"remote24\")\n                        .ikeEncAlg(\"aes256\")\n                        .ikeLifetime(27000)\n                        .ikeMode(\"aggressive\")\n                        .ikePfs(\"group5\")\n                        .ikeAuthAlg(\"md5\")\n                        .ikeVersion(\"ikev2\")\n                        .localId(\"localid_tunnel2\")\n                        .psk(\"12345678\")\n                        .build())\n                    .tunnelIpsecConfig(ConnectionTunnelOptionsSpecificationTunnelIpsecConfigArgs.builder()\n                        .ipsecLifetime(2700)\n                        .ipsecPfs(\"group14\")\n                        .ipsecAuthAlg(\"md5\")\n                        .ipsecEncAlg(\"aes256\")\n                        .build())\n                    .customerGatewayId(defaultCustomerGateway.id())\n                    .role(\"slave\")\n                    .tunnelBgpConfig(ConnectionTunnelOptionsSpecificationTunnelBgpConfigArgs.builder()\n                        .localAsn(\"1219002\")\n                        .localBgpIp(\"169.254.40.1\")\n                        .tunnelCidr(\"169.254.40.0/30\")\n                        .build())\n                    .build())\n            .build());\n\n        var defaultRouteEntry = new RouteEntry(\"defaultRouteEntry\", RouteEntryArgs.builder()\n            .vpnGatewayId(default_.ids()[0])\n            .routeDest(\"10.0.0.0/24\")\n            .nextHop(defaultConnection.id())\n            .weight(0)\n            .publishVpc(false)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultCustomerGateway:\n    type: alicloud:vpn:CustomerGateway\n    properties:\n      description: defaultCustomerGateway\n      ipAddress: 2.2.2.5\n      asn: '2224'\n      customerGatewayName: ${name}\n  changeCustomerGateway:\n    type: alicloud:vpn:CustomerGateway\n    properties:\n      description: changeCustomerGateway\n      ipAddress: 2.2.2.6\n      asn: '2225'\n      customerGatewayName: ${name}\n  defaultConnection:\n    type: alicloud:vpn:Connection\n    name: default\n    properties:\n      vpnGatewayId: ${default.ids[0]}\n      vpnConnectionName: ${name}\n      localSubnets:\n        - 3.0.0.0/24\n      remoteSubnets:\n        - 10.0.0.0/24\n        - 10.0.1.0/24\n      tags:\n        Created: TF\n        For: example\n      enableTunnelsBgp: 'true'\n      tunnelOptionsSpecifications:\n        - tunnelIpsecConfig:\n            ipsecAuthAlg: md5\n            ipsecEncAlg: aes256\n            ipsecLifetime: '16400'\n            ipsecPfs: group5\n          customerGatewayId: ${defaultCustomerGateway.id}\n          role: master\n          tunnelBgpConfig:\n            localAsn: '1219002'\n            tunnelCidr: 169.254.30.0/30\n            localBgpIp: 169.254.30.1\n          tunnelIkeConfig:\n            ikeMode: aggressive\n            ikeVersion: ikev2\n            localId: localid_tunnel2\n            psk: '12345678'\n            remoteId: remote2\n            ikeAuthAlg: md5\n            ikeEncAlg: aes256\n            ikeLifetime: '3600'\n            ikePfs: group14\n        - tunnelIkeConfig:\n            remoteId: remote24\n            ikeEncAlg: aes256\n            ikeLifetime: '27000'\n            ikeMode: aggressive\n            ikePfs: group5\n            ikeAuthAlg: md5\n            ikeVersion: ikev2\n            localId: localid_tunnel2\n            psk: '12345678'\n          tunnelIpsecConfig:\n            ipsecLifetime: '2700'\n            ipsecPfs: group14\n            ipsecAuthAlg: md5\n            ipsecEncAlg: aes256\n          customerGatewayId: ${defaultCustomerGateway.id}\n          role: slave\n          tunnelBgpConfig:\n            localAsn: '1219002'\n            localBgpIp: 169.254.40.1\n            tunnelCidr: 169.254.40.0/30\n  defaultRouteEntry:\n    type: alicloud:vpn:RouteEntry\n    name: default\n    properties:\n      vpnGatewayId: ${default.ids[0]}\n      routeDest: 10.0.0.0/24\n      nextHop: ${defaultConnection.id}\n      weight: 0\n      publishVpc: false\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vpn:getGateways\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nVPN route entry can be imported using the id(VpnGatewayId +\":\"+ NextHop +\":\"+ RouteDest), e.g.\n\n```sh\n$ pulumi import alicloud:vpn/routeEntry:RouteEntry example vpn-abc123456:vco-abc123456:10.0.0.10/24\n```\n\n","properties":{"nextHop":{"type":"string","description":"The next hop of the destination route.\n"},"publishVpc":{"type":"boolean","description":"Whether to issue the destination route to the VPC.\n"},"routeDest":{"type":"string","description":"The destination network segment of the destination route.\n"},"routeEntryType":{"type":"string","description":"(Available since v1.161.0) The type of the vpn route entry.\n"},"status":{"type":"string","description":"(Available since v1.161.0) The status of the vpn route entry.\n"},"vpnGatewayId":{"type":"string","description":"The id of the vpn gateway.\n"},"weight":{"type":"integer","description":"The value should be 0 or 100.\n"}},"required":["nextHop","publishVpc","routeDest","routeEntryType","status","vpnGatewayId","weight"],"inputProperties":{"nextHop":{"type":"string","description":"The next hop of the destination route.\n","willReplaceOnChanges":true},"publishVpc":{"type":"boolean","description":"Whether to issue the destination route to the VPC.\n"},"routeDest":{"type":"string","description":"The destination network segment of the destination route.\n","willReplaceOnChanges":true},"vpnGatewayId":{"type":"string","description":"The id of the vpn gateway.\n","willReplaceOnChanges":true},"weight":{"type":"integer","description":"The value should be 0 or 100.\n"}},"requiredInputs":["nextHop","publishVpc","routeDest","vpnGatewayId","weight"],"stateInputs":{"description":"Input properties used for looking up and filtering RouteEntry resources.\n","properties":{"nextHop":{"type":"string","description":"The next hop of the destination route.\n","willReplaceOnChanges":true},"publishVpc":{"type":"boolean","description":"Whether to issue the destination route to the VPC.\n"},"routeDest":{"type":"string","description":"The destination network segment of the destination route.\n","willReplaceOnChanges":true},"routeEntryType":{"type":"string","description":"(Available since v1.161.0) The type of the vpn route entry.\n"},"status":{"type":"string","description":"(Available since v1.161.0) The status of the vpn route entry.\n"},"vpnGatewayId":{"type":"string","description":"The id of the vpn gateway.\n","willReplaceOnChanges":true},"weight":{"type":"integer","description":"The value should be 0 or 100.\n"}},"type":"object"}},"alicloud:vpn/sslVpnClientCert:SslVpnClientCert":{"description":"Provides a SSL VPN client cert resource.\n\n\u003e **NOTE:** Terraform will auto build SSL VPN client certs while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.vpn.SslVpnClientCert`\" pulumi-lang-dotnet=\"`alicloud.vpn.SslVpnClientCert`\" pulumi-lang-go=\"`vpn.SslVpnClientCert`\" pulumi-lang-python=\"`vpn.SslVpnClientCert`\" pulumi-lang-yaml=\"`alicloud.vpn.SslVpnClientCert`\" pulumi-lang-java=\"`alicloud.vpn.SslVpnClientCert`\"\u003e`alicloud.vpn.SslVpnClientCert`\u003c/span\u003e to build a ssl vpn client certs resource.\nIt depends on VPN instance and SSL VPN Server.\n\n\u003e **NOTE:** Available since v1.15.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst default0 = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[0],\n}));\nconst default1 = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[1],\n}));\nconst defaultGateway = new alicloud.vpn.Gateway(\"default\", {\n    vpnGatewayName: name,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    bandwidth: 10,\n    enableSsl: true,\n    description: name,\n    paymentType: \"Subscription\",\n    vswitchId: default0.then(default0 =\u003e default0.ids?.[0]),\n    disasterRecoveryVswitchId: default1.then(default1 =\u003e default1.ids?.[0]),\n});\nconst defaultSslVpnServer = new alicloud.vpn.SslVpnServer(\"default\", {\n    name: name,\n    vpnGatewayId: defaultGateway.id,\n    clientIpPool: \"192.168.0.0/16\",\n    localSubnet: defaultGetNetworks.then(defaultGetNetworks =\u003e std.cidrsubnet({\n        input: defaultGetNetworks.vpcs?.[0]?.cidrBlock,\n        newbits: 8,\n        netnum: 8,\n    })).then(invoke =\u003e invoke.result),\n    protocol: \"UDP\",\n    cipher: \"AES-128-CBC\",\n    port: 1194,\n    compress: false,\n});\nconst defaultSslVpnClientCert = new alicloud.vpn.SslVpnClientCert(\"default\", {\n    sslVpnServerId: defaultSslVpnServer.id,\n    name: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"172.16.0.0/16\")\ndefault0 = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[0])\ndefault1 = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[1])\ndefault_gateway = alicloud.vpn.Gateway(\"default\",\n    vpn_gateway_name=name,\n    vpc_id=default_get_networks.ids[0],\n    bandwidth=10,\n    enable_ssl=True,\n    description=name,\n    payment_type=\"Subscription\",\n    vswitch_id=default0.ids[0],\n    disaster_recovery_vswitch_id=default1.ids[0])\ndefault_ssl_vpn_server = alicloud.vpn.SslVpnServer(\"default\",\n    name=name,\n    vpn_gateway_id=default_gateway.id,\n    client_ip_pool=\"192.168.0.0/16\",\n    local_subnet=std.cidrsubnet(input=default_get_networks.vpcs[0].cidr_block,\n        newbits=8,\n        netnum=8).result,\n    protocol=\"UDP\",\n    cipher=\"AES-128-CBC\",\n    port=1194,\n    compress=False)\ndefault_ssl_vpn_client_cert = alicloud.vpn.SslVpnClientCert(\"default\",\n    ssl_vpn_server_id=default_ssl_vpn_server.id,\n    name=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var default0 = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n    });\n\n    var default1 = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[1]),\n    });\n\n    var defaultGateway = new AliCloud.Vpn.Gateway(\"default\", new()\n    {\n        VpnGatewayName = name,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        Bandwidth = 10,\n        EnableSsl = true,\n        Description = name,\n        PaymentType = \"Subscription\",\n        VswitchId = default0.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        DisasterRecoveryVswitchId = default1.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n    });\n\n    var defaultSslVpnServer = new AliCloud.Vpn.SslVpnServer(\"default\", new()\n    {\n        Name = name,\n        VpnGatewayId = defaultGateway.Id,\n        ClientIpPool = \"192.168.0.0/16\",\n        LocalSubnet = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Vpcs[0]?.CidrBlock),\n            Newbits = 8,\n            Netnum = 8,\n        }).Apply(invoke =\u003e invoke.Result),\n        Protocol = \"UDP\",\n        Cipher = \"AES-128-CBC\",\n        Port = 1194,\n        Compress = false,\n    });\n\n    var defaultSslVpnClientCert = new AliCloud.Vpn.SslVpnClientCert(\"default\", new()\n    {\n        SslVpnServerId = defaultSslVpnServer.Id,\n        Name = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"172.16.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault0, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[1]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGateway, err := vpn.NewGateway(ctx, \"default\", \u0026vpn.GatewayArgs{\n\t\t\tVpnGatewayName:            pulumi.String(name),\n\t\t\tVpcId:                     pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tBandwidth:                 pulumi.Int(10),\n\t\t\tEnableSsl:                 pulumi.Bool(true),\n\t\t\tDescription:               pulumi.String(name),\n\t\t\tPaymentType:               pulumi.String(\"Subscription\"),\n\t\t\tVswitchId:                 pulumi.String(default0.Ids[0]),\n\t\t\tDisasterRecoveryVswitchId: pulumi.String(default1.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   defaultGetNetworks.Vpcs[0].CidrBlock,\n\t\t\tNewbits: 8,\n\t\t\tNetnum:  8,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSslVpnServer, err := vpn.NewSslVpnServer(ctx, \"default\", \u0026vpn.SslVpnServerArgs{\n\t\t\tName:         pulumi.String(name),\n\t\t\tVpnGatewayId: defaultGateway.ID(),\n\t\t\tClientIpPool: pulumi.String(\"192.168.0.0/16\"),\n\t\t\tLocalSubnet:  pulumi.String(invokeCidrsubnet.Result),\n\t\t\tProtocol:     pulumi.String(\"UDP\"),\n\t\t\tCipher:       pulumi.String(\"AES-128-CBC\"),\n\t\t\tPort:         pulumi.Int(1194),\n\t\t\tCompress:     pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpn.NewSslVpnClientCert(ctx, \"default\", \u0026vpn.SslVpnClientCertArgs{\n\t\t\tSslVpnServerId: defaultSslVpnServer.ID(),\n\t\t\tName:           pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.vpn.Gateway;\nimport com.pulumi.alicloud.vpn.GatewayArgs;\nimport com.pulumi.alicloud.vpn.SslVpnServer;\nimport com.pulumi.alicloud.vpn.SslVpnServerArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.vpn.SslVpnClientCert;\nimport com.pulumi.alicloud.vpn.SslVpnClientCertArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        final var default0 = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[0])\n            .build());\n\n        final var default1 = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[1])\n            .build());\n\n        var defaultGateway = new Gateway(\"defaultGateway\", GatewayArgs.builder()\n            .vpnGatewayName(name)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .bandwidth(10)\n            .enableSsl(true)\n            .description(name)\n            .paymentType(\"Subscription\")\n            .vswitchId(default0.ids()[0])\n            .disasterRecoveryVswitchId(default1.ids()[0])\n            .build());\n\n        var defaultSslVpnServer = new SslVpnServer(\"defaultSslVpnServer\", SslVpnServerArgs.builder()\n            .name(name)\n            .vpnGatewayId(defaultGateway.id())\n            .clientIpPool(\"192.168.0.0/16\")\n            .localSubnet(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(defaultGetNetworks.vpcs()[0].cidrBlock())\n                .newbits(8)\n                .netnum(8)\n                .build()).result())\n            .protocol(\"UDP\")\n            .cipher(\"AES-128-CBC\")\n            .port(1194)\n            .compress(false)\n            .build());\n\n        var defaultSslVpnClientCert = new SslVpnClientCert(\"defaultSslVpnClientCert\", SslVpnClientCertArgs.builder()\n            .sslVpnServerId(defaultSslVpnServer.id())\n            .name(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultGateway:\n    type: alicloud:vpn:Gateway\n    name: default\n    properties:\n      vpnGatewayName: ${name}\n      vpcId: ${defaultGetNetworks.ids[0]}\n      bandwidth: '10'\n      enableSsl: true\n      description: ${name}\n      paymentType: Subscription\n      vswitchId: ${default0.ids[0]}\n      disasterRecoveryVswitchId: ${default1.ids[0]}\n  defaultSslVpnServer:\n    type: alicloud:vpn:SslVpnServer\n    name: default\n    properties:\n      name: ${name}\n      vpnGatewayId: ${defaultGateway.id}\n      clientIpPool: 192.168.0.0/16\n      localSubnet:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: ${defaultGetNetworks.vpcs[0].cidrBlock}\n            newbits: 8\n            netnum: 8\n          return: result\n      protocol: UDP\n      cipher: AES-128-CBC\n      port: '1194'\n      compress: 'false'\n  defaultSslVpnClientCert:\n    type: alicloud:vpn:SslVpnClientCert\n    name: default\n    properties:\n      sslVpnServerId: ${defaultSslVpnServer.id}\n      name: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 172.16.0.0/16\n  default0:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[0]}\n  default1:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[1]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSSL-VPN client certificates can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpn/sslVpnClientCert:SslVpnClientCert example vsc-abc123456\n```\n\n","properties":{"caCert":{"type":"string","description":"The client ca cert.\n","secret":true},"clientCert":{"type":"string","description":"The client cert.\n","secret":true},"clientConfig":{"type":"string","description":"The vpn client config.\n","secret":true},"clientKey":{"type":"string","description":"The client key.\n","secret":true},"name":{"type":"string","description":"The name of the client certificate.\n"},"sslVpnServerId":{"type":"string","description":"The ID of the SSL-VPN server.\n"},"status":{"type":"string","description":"The status of the client certificate.\n"}},"required":["caCert","clientCert","clientConfig","clientKey","name","sslVpnServerId","status"],"inputProperties":{"name":{"type":"string","description":"The name of the client certificate.\n"},"sslVpnServerId":{"type":"string","description":"The ID of the SSL-VPN server.\n","willReplaceOnChanges":true}},"requiredInputs":["sslVpnServerId"],"stateInputs":{"description":"Input properties used for looking up and filtering SslVpnClientCert resources.\n","properties":{"caCert":{"type":"string","description":"The client ca cert.\n","secret":true},"clientCert":{"type":"string","description":"The client cert.\n","secret":true},"clientConfig":{"type":"string","description":"The vpn client config.\n","secret":true},"clientKey":{"type":"string","description":"The client key.\n","secret":true},"name":{"type":"string","description":"The name of the client certificate.\n"},"sslVpnServerId":{"type":"string","description":"The ID of the SSL-VPN server.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the client certificate.\n"}},"type":"object"}},"alicloud:vpn/sslVpnServer:SslVpnServer":{"description":"Provides a SSL VPN server resource. [Refer to details](https://www.alibabacloud.com/help/doc-detail/64960.htm)\n\n\u003e **NOTE:** Terraform will auto build ssl vpn server while it uses \u003cspan pulumi-lang-nodejs=\"`alicloud.vpn.SslVpnServer`\" pulumi-lang-dotnet=\"`alicloud.vpn.SslVpnServer`\" pulumi-lang-go=\"`vpn.SslVpnServer`\" pulumi-lang-python=\"`vpn.SslVpnServer`\" pulumi-lang-yaml=\"`alicloud.vpn.SslVpnServer`\" pulumi-lang-java=\"`alicloud.vpn.SslVpnServer`\"\u003e`alicloud.vpn.SslVpnServer`\u003c/span\u003e to build a ssl vpn server resource.\n\n\u003e **NOTE:** Available since v1.15.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst default0 = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[0],\n}));\nconst default1 = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[1],\n}));\nconst defaultGateway = new alicloud.vpn.Gateway(\"default\", {\n    vpnGatewayName: name,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    bandwidth: 10,\n    enableSsl: true,\n    description: name,\n    paymentType: \"Subscription\",\n    vswitchId: default0.then(default0 =\u003e default0.ids?.[0]),\n    disasterRecoveryVswitchId: default1.then(default1 =\u003e default1.ids?.[0]),\n});\nconst defaultSslVpnServer = new alicloud.vpn.SslVpnServer(\"default\", {\n    name: name,\n    vpnGatewayId: defaultGateway.id,\n    clientIpPool: \"192.168.0.0/16\",\n    localSubnet: defaultGetNetworks.then(defaultGetNetworks =\u003e std.cidrsubnet({\n        input: defaultGetNetworks.vpcs?.[0]?.cidrBlock,\n        newbits: 8,\n        netnum: 8,\n    })).then(invoke =\u003e invoke.result),\n    protocol: \"UDP\",\n    cipher: \"AES-128-CBC\",\n    port: 1194,\n    compress: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\",\n    cidr_block=\"172.16.0.0/16\")\ndefault0 = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[0])\ndefault1 = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[1])\ndefault_gateway = alicloud.vpn.Gateway(\"default\",\n    vpn_gateway_name=name,\n    vpc_id=default_get_networks.ids[0],\n    bandwidth=10,\n    enable_ssl=True,\n    description=name,\n    payment_type=\"Subscription\",\n    vswitch_id=default0.ids[0],\n    disaster_recovery_vswitch_id=default1.ids[0])\ndefault_ssl_vpn_server = alicloud.vpn.SslVpnServer(\"default\",\n    name=name,\n    vpn_gateway_id=default_gateway.id,\n    client_ip_pool=\"192.168.0.0/16\",\n    local_subnet=std.cidrsubnet(input=default_get_networks.vpcs[0].cidr_block,\n        newbits=8,\n        netnum=8).result,\n    protocol=\"UDP\",\n    cipher=\"AES-128-CBC\",\n    port=1194,\n    compress=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var default0 = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n    });\n\n    var default1 = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[1]),\n    });\n\n    var defaultGateway = new AliCloud.Vpn.Gateway(\"default\", new()\n    {\n        VpnGatewayName = name,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        Bandwidth = 10,\n        EnableSsl = true,\n        Description = name,\n        PaymentType = \"Subscription\",\n        VswitchId = default0.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        DisasterRecoveryVswitchId = default1.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n    });\n\n    var defaultSslVpnServer = new AliCloud.Vpn.SslVpnServer(\"default\", new()\n    {\n        Name = name,\n        VpnGatewayId = defaultGateway.Id,\n        ClientIpPool = \"192.168.0.0/16\",\n        LocalSubnet = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Vpcs[0]?.CidrBlock),\n            Newbits = 8,\n            Netnum = 8,\n        }).Apply(invoke =\u003e invoke.Result),\n        Protocol = \"UDP\",\n        Cipher = \"AES-128-CBC\",\n        Port = 1194,\n        Compress = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t\tCidrBlock: pulumi.StringRef(\"172.16.0.0/16\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault0, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefault1, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[1]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGateway, err := vpn.NewGateway(ctx, \"default\", \u0026vpn.GatewayArgs{\n\t\t\tVpnGatewayName:            pulumi.String(name),\n\t\t\tVpcId:                     pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tBandwidth:                 pulumi.Int(10),\n\t\t\tEnableSsl:                 pulumi.Bool(true),\n\t\t\tDescription:               pulumi.String(name),\n\t\t\tPaymentType:               pulumi.String(\"Subscription\"),\n\t\t\tVswitchId:                 pulumi.String(default0.Ids[0]),\n\t\t\tDisasterRecoveryVswitchId: pulumi.String(default1.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   defaultGetNetworks.Vpcs[0].CidrBlock,\n\t\t\tNewbits: 8,\n\t\t\tNetnum:  8,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpn.NewSslVpnServer(ctx, \"default\", \u0026vpn.SslVpnServerArgs{\n\t\t\tName:         pulumi.String(name),\n\t\t\tVpnGatewayId: defaultGateway.ID(),\n\t\t\tClientIpPool: pulumi.String(\"192.168.0.0/16\"),\n\t\t\tLocalSubnet:  pulumi.String(invokeCidrsubnet.Result),\n\t\t\tProtocol:     pulumi.String(\"UDP\"),\n\t\t\tCipher:       pulumi.String(\"AES-128-CBC\"),\n\t\t\tPort:         pulumi.Int(1194),\n\t\t\tCompress:     pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.vpn.Gateway;\nimport com.pulumi.alicloud.vpn.GatewayArgs;\nimport com.pulumi.alicloud.vpn.SslVpnServer;\nimport com.pulumi.alicloud.vpn.SslVpnServerArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        final var default0 = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[0])\n            .build());\n\n        final var default1 = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[1])\n            .build());\n\n        var defaultGateway = new Gateway(\"defaultGateway\", GatewayArgs.builder()\n            .vpnGatewayName(name)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .bandwidth(10)\n            .enableSsl(true)\n            .description(name)\n            .paymentType(\"Subscription\")\n            .vswitchId(default0.ids()[0])\n            .disasterRecoveryVswitchId(default1.ids()[0])\n            .build());\n\n        var defaultSslVpnServer = new SslVpnServer(\"defaultSslVpnServer\", SslVpnServerArgs.builder()\n            .name(name)\n            .vpnGatewayId(defaultGateway.id())\n            .clientIpPool(\"192.168.0.0/16\")\n            .localSubnet(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(defaultGetNetworks.vpcs()[0].cidrBlock())\n                .newbits(8)\n                .netnum(8)\n                .build()).result())\n            .protocol(\"UDP\")\n            .cipher(\"AES-128-CBC\")\n            .port(1194)\n            .compress(false)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultGateway:\n    type: alicloud:vpn:Gateway\n    name: default\n    properties:\n      vpnGatewayName: ${name}\n      vpcId: ${defaultGetNetworks.ids[0]}\n      bandwidth: '10'\n      enableSsl: true\n      description: ${name}\n      paymentType: Subscription\n      vswitchId: ${default0.ids[0]}\n      disasterRecoveryVswitchId: ${default1.ids[0]}\n  defaultSslVpnServer:\n    type: alicloud:vpn:SslVpnServer\n    name: default\n    properties:\n      name: ${name}\n      vpnGatewayId: ${defaultGateway.id}\n      clientIpPool: 192.168.0.0/16\n      localSubnet:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: ${defaultGetNetworks.vpcs[0].cidrBlock}\n            newbits: 8\n            netnum: 8\n          return: result\n      protocol: UDP\n      cipher: AES-128-CBC\n      port: '1194'\n      compress: 'false'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n        cidrBlock: 172.16.0.0/16\n  default0:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[0]}\n  default1:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[1]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nSSL-VPN server can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:vpn/sslVpnServer:SslVpnServer example vss-abc123456\n```\n\n","properties":{"cipher":{"type":"string","description":"The encryption algorithm that is used in the SSL-VPN connection. Valid values: `AES-128-CBC`,`AES-192-CBC`,`AES-256-CBC`,\u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. Default value: `AES-128-CBC`.\n* `AES-128-CBC` - the AES-128-CBC algorithm.\n* `AES-192-CBC` - the AES-192-CBC algorithm.\n* `AES-256-CBC` - the AES-256-CBC algorithm.\n"},"clientIpPool":{"type":"string","description":"The CIDR block from which access addresses are allocated to the virtual network interface card of the client.\n"},"compress":{"type":"boolean","description":"Specifies whether to enable data compression. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"connections":{"type":"integer","description":"The number of current connections.\n"},"internetIp":{"type":"string","description":"The internet IP of the SSL-VPN server.\n"},"localSubnet":{"type":"string","description":"The CIDR block to be accessed by the client through the SSL-VPN connection. It supports to set multi CIDRs by comma join ways, like `10.0.1.0/24,10.0.2.0/24,10.0.3.0/24`.\n"},"maxConnections":{"type":"integer","description":"The maximum number of connections.\n"},"name":{"type":"string","description":"The name of the SSL-VPN server.\n"},"port":{"type":"integer","description":"The port used by the SSL-VPN server. The default value is \u003cspan pulumi-lang-nodejs=\"`1194`\" pulumi-lang-dotnet=\"`1194`\" pulumi-lang-go=\"`1194`\" pulumi-lang-python=\"`1194`\" pulumi-lang-yaml=\"`1194`\" pulumi-lang-java=\"`1194`\"\u003e`1194`\u003c/span\u003e.The following ports cannot be used: [22, 2222, 22222, 9000, 9001, 9002, 7505, 80, 443, 53, 68, 123, 4510, 4560, 500, 4500].\n"},"protocol":{"type":"string","description":"The protocol used by the SSL-VPN server. Valid value: UDP(default) |TCP\n"},"vpnGatewayId":{"type":"string","description":"The ID of the VPN gateway.\n"}},"required":["clientIpPool","connections","internetIp","localSubnet","maxConnections","name","vpnGatewayId"],"inputProperties":{"cipher":{"type":"string","description":"The encryption algorithm that is used in the SSL-VPN connection. Valid values: `AES-128-CBC`,`AES-192-CBC`,`AES-256-CBC`,\u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. Default value: `AES-128-CBC`.\n* `AES-128-CBC` - the AES-128-CBC algorithm.\n* `AES-192-CBC` - the AES-192-CBC algorithm.\n* `AES-256-CBC` - the AES-256-CBC algorithm.\n"},"clientIpPool":{"type":"string","description":"The CIDR block from which access addresses are allocated to the virtual network interface card of the client.\n"},"compress":{"type":"boolean","description":"Specifies whether to enable data compression. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"localSubnet":{"type":"string","description":"The CIDR block to be accessed by the client through the SSL-VPN connection. It supports to set multi CIDRs by comma join ways, like `10.0.1.0/24,10.0.2.0/24,10.0.3.0/24`.\n"},"name":{"type":"string","description":"The name of the SSL-VPN server.\n"},"port":{"type":"integer","description":"The port used by the SSL-VPN server. The default value is \u003cspan pulumi-lang-nodejs=\"`1194`\" pulumi-lang-dotnet=\"`1194`\" pulumi-lang-go=\"`1194`\" pulumi-lang-python=\"`1194`\" pulumi-lang-yaml=\"`1194`\" pulumi-lang-java=\"`1194`\"\u003e`1194`\u003c/span\u003e.The following ports cannot be used: [22, 2222, 22222, 9000, 9001, 9002, 7505, 80, 443, 53, 68, 123, 4510, 4560, 500, 4500].\n"},"protocol":{"type":"string","description":"The protocol used by the SSL-VPN server. Valid value: UDP(default) |TCP\n"},"vpnGatewayId":{"type":"string","description":"The ID of the VPN gateway.\n","willReplaceOnChanges":true}},"requiredInputs":["clientIpPool","localSubnet","vpnGatewayId"],"stateInputs":{"description":"Input properties used for looking up and filtering SslVpnServer resources.\n","properties":{"cipher":{"type":"string","description":"The encryption algorithm that is used in the SSL-VPN connection. Valid values: `AES-128-CBC`,`AES-192-CBC`,`AES-256-CBC`,\u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. Default value: `AES-128-CBC`.\n* `AES-128-CBC` - the AES-128-CBC algorithm.\n* `AES-192-CBC` - the AES-192-CBC algorithm.\n* `AES-256-CBC` - the AES-256-CBC algorithm.\n"},"clientIpPool":{"type":"string","description":"The CIDR block from which access addresses are allocated to the virtual network interface card of the client.\n"},"compress":{"type":"boolean","description":"Specifies whether to enable data compression. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"connections":{"type":"integer","description":"The number of current connections.\n"},"internetIp":{"type":"string","description":"The internet IP of the SSL-VPN server.\n"},"localSubnet":{"type":"string","description":"The CIDR block to be accessed by the client through the SSL-VPN connection. It supports to set multi CIDRs by comma join ways, like `10.0.1.0/24,10.0.2.0/24,10.0.3.0/24`.\n"},"maxConnections":{"type":"integer","description":"The maximum number of connections.\n"},"name":{"type":"string","description":"The name of the SSL-VPN server.\n"},"port":{"type":"integer","description":"The port used by the SSL-VPN server. The default value is \u003cspan pulumi-lang-nodejs=\"`1194`\" pulumi-lang-dotnet=\"`1194`\" pulumi-lang-go=\"`1194`\" pulumi-lang-python=\"`1194`\" pulumi-lang-yaml=\"`1194`\" pulumi-lang-java=\"`1194`\"\u003e`1194`\u003c/span\u003e.The following ports cannot be used: [22, 2222, 22222, 9000, 9001, 9002, 7505, 80, 443, 53, 68, 123, 4510, 4560, 500, 4500].\n"},"protocol":{"type":"string","description":"The protocol used by the SSL-VPN server. Valid value: UDP(default) |TCP\n"},"vpnGatewayId":{"type":"string","description":"The ID of the VPN gateway.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:waf/certificate:Certificate":{"description":"Provides a WAF Certificate resource.\n\nFor information about WAF Certificate and how to use it, see [What is Certificate](https://www.alibabacloud.com/help/doc-detail/28517.htm).\n\n\u003e **NOTE:** Available in v1.135.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.waf.Certificate(\"default\", {\n    certificateName: \"your_certificate_name\",\n    instanceId: \"your_instance_id\",\n    domain: \"your_domain_name\",\n    privateKey: \"your_private_key\",\n    certificate: \"your_certificate\",\n});\nconst default2 = new alicloud.waf.Certificate(\"default2\", {\n    instanceId: \"your_instance_id\",\n    domain: \"your_domain_name\",\n    certificateId: \"your_certificate_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.waf.Certificate(\"default\",\n    certificate_name=\"your_certificate_name\",\n    instance_id=\"your_instance_id\",\n    domain=\"your_domain_name\",\n    private_key=\"your_private_key\",\n    certificate=\"your_certificate\")\ndefault2 = alicloud.waf.Certificate(\"default2\",\n    instance_id=\"your_instance_id\",\n    domain=\"your_domain_name\",\n    certificate_id=\"your_certificate_id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Waf.Certificate(\"default\", new()\n    {\n        CertificateName = \"your_certificate_name\",\n        InstanceId = \"your_instance_id\",\n        Domain = \"your_domain_name\",\n        PrivateKey = \"your_private_key\",\n        CertificateContents = \"your_certificate\",\n    });\n\n    var default2 = new AliCloud.Waf.Certificate(\"default2\", new()\n    {\n        InstanceId = \"your_instance_id\",\n        Domain = \"your_domain_name\",\n        CertificateId = \"your_certificate_id\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/waf\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := waf.NewCertificate(ctx, \"default\", \u0026waf.CertificateArgs{\n\t\t\tCertificateName: pulumi.String(\"your_certificate_name\"),\n\t\t\tInstanceId:      pulumi.String(\"your_instance_id\"),\n\t\t\tDomain:          pulumi.String(\"your_domain_name\"),\n\t\t\tPrivateKey:      pulumi.String(\"your_private_key\"),\n\t\t\tCertificate:     pulumi.String(\"your_certificate\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = waf.NewCertificate(ctx, \"default2\", \u0026waf.CertificateArgs{\n\t\t\tInstanceId:    pulumi.String(\"your_instance_id\"),\n\t\t\tDomain:        pulumi.String(\"your_domain_name\"),\n\t\t\tCertificateId: pulumi.String(\"your_certificate_id\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.waf.Certificate;\nimport com.pulumi.alicloud.waf.CertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Certificate(\"default\", CertificateArgs.builder()\n            .certificateName(\"your_certificate_name\")\n            .instanceId(\"your_instance_id\")\n            .domain(\"your_domain_name\")\n            .privateKey(\"your_private_key\")\n            .certificate(\"your_certificate\")\n            .build());\n\n        var default2 = new Certificate(\"default2\", CertificateArgs.builder()\n            .instanceId(\"your_instance_id\")\n            .domain(\"your_domain_name\")\n            .certificateId(\"your_certificate_id\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:waf:Certificate\n    properties:\n      certificateName: your_certificate_name\n      instanceId: your_instance_id\n      domain: your_domain_name\n      privateKey: your_private_key\n      certificate: your_certificate\n  default2:\n    type: alicloud:waf:Certificate\n    properties:\n      instanceId: your_instance_id\n      domain: your_domain_name\n      certificateId: your_certificate_id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nWAF Certificate can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:waf/certificate:Certificate example \u003cinstance_id\u003e:\u003cdomain\u003e:\u003ccertificate_id\u003e\n```\n\n","properties":{"certificate":{"type":"string","description":"Certificate file content.\n","language":{"csharp":{"name":"CertificateContents"}}},"certificateId":{"type":"string","description":"The certificate id is automatically generated when you upload your certificate content.**NOTE:** you can also use Certificate ID saved in SSL.\n"},"certificateName":{"type":"string","description":"Certificate file name.\n"},"domain":{"type":"string","description":"The domain that you want to add to WAF.\n"},"instanceId":{"type":"string","description":"The ID of the WAF instance.\n"},"privateKey":{"type":"string","description":"The private key.\n"}},"required":["certificateId","certificateName","domain","instanceId"],"inputProperties":{"certificate":{"type":"string","description":"Certificate file content.\n","language":{"csharp":{"name":"CertificateContents"}},"willReplaceOnChanges":true},"certificateId":{"type":"string","description":"The certificate id is automatically generated when you upload your certificate content.**NOTE:** you can also use Certificate ID saved in SSL.\n","willReplaceOnChanges":true},"certificateName":{"type":"string","description":"Certificate file name.\n","willReplaceOnChanges":true},"domain":{"type":"string","description":"The domain that you want to add to WAF.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the WAF instance.\n","willReplaceOnChanges":true},"privateKey":{"type":"string","description":"The private key.\n","willReplaceOnChanges":true}},"requiredInputs":["domain","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Certificate resources.\n","properties":{"certificate":{"type":"string","description":"Certificate file content.\n","language":{"csharp":{"name":"CertificateContents"}},"willReplaceOnChanges":true},"certificateId":{"type":"string","description":"The certificate id is automatically generated when you upload your certificate content.**NOTE:** you can also use Certificate ID saved in SSL.\n","willReplaceOnChanges":true},"certificateName":{"type":"string","description":"Certificate file name.\n","willReplaceOnChanges":true},"domain":{"type":"string","description":"The domain that you want to add to WAF.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the WAF instance.\n","willReplaceOnChanges":true},"privateKey":{"type":"string","description":"The private key.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:waf/domain:Domain":{"description":"\u003e **DEPRECATED:**  This resource has been deprecated and using\u003cspan pulumi-lang-nodejs=\" alicloud.wafv3.Domain \" pulumi-lang-dotnet=\" alicloud.wafv3.Domain \" pulumi-lang-go=\" wafv3.Domain \" pulumi-lang-python=\" wafv3.Domain \" pulumi-lang-yaml=\" alicloud.wafv3.Domain \" pulumi-lang-java=\" alicloud.wafv3.Domain \"\u003e alicloud.wafv3.Domain \u003c/span\u003einstead.\n\nProvides a WAF Domain resource to create domain in the Web Application Firewall.\n\nFor information about WAF and how to use it, see [What is Alibaba Cloud WAF](https://www.alibabacloud.com/help/doc-detail/28517.htm).\n\n\u003e **NOTE:** Available since v1.82.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst domain = new alicloud.waf.Domain(\"domain\", {\n    domainName: \"alicloud-provider.cn\",\n    instanceId: \"waf-123455\",\n    isAccessProduct: \"On\",\n    sourceIps: [\"1.1.1.1\"],\n    clusterType: \"PhysicalCluster\",\n    http2Ports: [\"443\"],\n    httpPorts: [\"80\"],\n    httpsPorts: [\"443\"],\n    httpToUserIp: \"Off\",\n    httpsRedirect: \"Off\",\n    loadBalancing: \"IpHash\",\n    logHeaders: [{\n        key: \"foo\",\n        value: \"http\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndomain = alicloud.waf.Domain(\"domain\",\n    domain_name=\"alicloud-provider.cn\",\n    instance_id=\"waf-123455\",\n    is_access_product=\"On\",\n    source_ips=[\"1.1.1.1\"],\n    cluster_type=\"PhysicalCluster\",\n    http2_ports=[\"443\"],\n    http_ports=[\"80\"],\n    https_ports=[\"443\"],\n    http_to_user_ip=\"Off\",\n    https_redirect=\"Off\",\n    load_balancing=\"IpHash\",\n    log_headers=[{\n        \"key\": \"foo\",\n        \"value\": \"http\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var domain = new AliCloud.Waf.Domain(\"domain\", new()\n    {\n        DomainName = \"alicloud-provider.cn\",\n        InstanceId = \"waf-123455\",\n        IsAccessProduct = \"On\",\n        SourceIps = new[]\n        {\n            \"1.1.1.1\",\n        },\n        ClusterType = \"PhysicalCluster\",\n        Http2Ports = new[]\n        {\n            \"443\",\n        },\n        HttpPorts = new[]\n        {\n            \"80\",\n        },\n        HttpsPorts = new[]\n        {\n            \"443\",\n        },\n        HttpToUserIp = \"Off\",\n        HttpsRedirect = \"Off\",\n        LoadBalancing = \"IpHash\",\n        LogHeaders = new[]\n        {\n            new AliCloud.Waf.Inputs.DomainLogHeaderArgs\n            {\n                Key = \"foo\",\n                Value = \"http\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/waf\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := waf.NewDomain(ctx, \"domain\", \u0026waf.DomainArgs{\n\t\t\tDomainName:      pulumi.String(\"alicloud-provider.cn\"),\n\t\t\tInstanceId:      pulumi.String(\"waf-123455\"),\n\t\t\tIsAccessProduct: pulumi.String(\"On\"),\n\t\t\tSourceIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1.1.1.1\"),\n\t\t\t},\n\t\t\tClusterType: pulumi.String(\"PhysicalCluster\"),\n\t\t\tHttp2Ports: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"443\"),\n\t\t\t},\n\t\t\tHttpPorts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"80\"),\n\t\t\t},\n\t\t\tHttpsPorts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"443\"),\n\t\t\t},\n\t\t\tHttpToUserIp:  pulumi.String(\"Off\"),\n\t\t\tHttpsRedirect: pulumi.String(\"Off\"),\n\t\t\tLoadBalancing: pulumi.String(\"IpHash\"),\n\t\t\tLogHeaders: waf.DomainLogHeaderArray{\n\t\t\t\t\u0026waf.DomainLogHeaderArgs{\n\t\t\t\t\tKey:   pulumi.String(\"foo\"),\n\t\t\t\t\tValue: pulumi.String(\"http\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.waf.Domain;\nimport com.pulumi.alicloud.waf.DomainArgs;\nimport com.pulumi.alicloud.waf.inputs.DomainLogHeaderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var domain = new Domain(\"domain\", DomainArgs.builder()\n            .domainName(\"alicloud-provider.cn\")\n            .instanceId(\"waf-123455\")\n            .isAccessProduct(\"On\")\n            .sourceIps(\"1.1.1.1\")\n            .clusterType(\"PhysicalCluster\")\n            .http2Ports(\"443\")\n            .httpPorts(\"80\")\n            .httpsPorts(\"443\")\n            .httpToUserIp(\"Off\")\n            .httpsRedirect(\"Off\")\n            .loadBalancing(\"IpHash\")\n            .logHeaders(DomainLogHeaderArgs.builder()\n                .key(\"foo\")\n                .value(\"http\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  domain:\n    type: alicloud:waf:Domain\n    properties:\n      domainName: alicloud-provider.cn\n      instanceId: waf-123455\n      isAccessProduct: On\n      sourceIps:\n        - 1.1.1.1\n      clusterType: PhysicalCluster\n      http2Ports:\n        - 443\n      httpPorts:\n        - 80\n      httpsPorts:\n        - 443\n      httpToUserIp: Off\n      httpsRedirect: Off\n      loadBalancing: IpHash\n      logHeaders:\n        - key: foo\n          value: http\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nWAF domain can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:waf/domain:Domain domain waf-132435:www.domain.com\n```\n\n","properties":{"clusterType":{"type":"string","description":"The type of the WAF cluster. Valid values: `PhysicalCluster` and `VirtualCluster`. Default to `PhysicalCluster`.\n"},"cname":{"type":"string","description":"The CNAME record assigned by the WAF instance to the specified domain.\n"},"connectionTime":{"type":"integer","description":"The connection timeout for WAF exclusive clusters. Unit: seconds.\n"},"domain":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e has been deprecated from version 1.94.0. Use \u003cspan pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\"\u003e`domain_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'domain' has been deprecated from version 1.94.0. Use 'domain_name' instead.","language":{"csharp":{"name":"DomainDeprecated"}}},"domainName":{"type":"string","description":"The domain that you want to add to WAF. The \u003cspan pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\"\u003e`domain_name`\u003c/span\u003e is required when the value of the \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e  is Empty.\n"},"http2Ports":{"type":"array","items":{"type":"string"},"description":"List of the HTTP 2.0 ports.\n"},"httpPorts":{"type":"array","items":{"type":"string"},"description":"List of the HTTP ports.\n"},"httpToUserIp":{"type":"string","description":"Specifies whether to enable the HTTP back-to-origin feature. After this feature is enabled, the WAF instance can use HTTP to forward HTTPS requests to the origin server. \nBy default, port 80 is used to forward the requests to the origin server. Valid values: `On` and `Off`. Default to `Off`.\n"},"httpsPorts":{"type":"array","items":{"type":"string"},"description":"List of the HTTPS ports.\n"},"httpsRedirect":{"type":"string","description":"Specifies whether to redirect HTTP requests as HTTPS requests. Valid values: \"On\" and `Off`. Default to `Off`.\n"},"instanceId":{"type":"string","description":"The ID of the WAF instance.\n"},"isAccessProduct":{"type":"string","description":"Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: `On` and `Off`. Default to `Off`.\n"},"loadBalancing":{"type":"string","description":"The load balancing algorithm that is used to forward requests to the origin. Valid values: `IpHash` and `RoundRobin`. Default to `IpHash`.\n"},"logHeaders":{"type":"array","items":{"$ref":"#/types/alicloud:waf/DomainLogHeader:DomainLogHeader"},"description":"The key-value pair that is used to mark the traffic that flows through WAF to the domain. Each item contains two field:\n* key: The key of label\n* value: The value of label\n"},"readTime":{"type":"integer","description":"The read timeout of a WAF exclusive cluster. Unit: seconds.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the queried domain belongs in Resource Management. By default, no value is specified, indicating that the domain belongs to the default resource group.\n"},"sourceIps":{"type":"array","items":{"type":"string"},"description":"List of the IP address or domain of the origin server to which the specified domain points.\n"},"writeTime":{"type":"integer","description":"The timeout period for a WAF exclusive cluster write connection. Unit: seconds.\n"}},"required":["cname","domain","domainName","instanceId","isAccessProduct","resourceGroupId"],"inputProperties":{"clusterType":{"type":"string","description":"The type of the WAF cluster. Valid values: `PhysicalCluster` and `VirtualCluster`. Default to `PhysicalCluster`.\n"},"connectionTime":{"type":"integer","description":"The connection timeout for WAF exclusive clusters. Unit: seconds.\n"},"domain":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e has been deprecated from version 1.94.0. Use \u003cspan pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\"\u003e`domain_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'domain' has been deprecated from version 1.94.0. Use 'domain_name' instead.","language":{"csharp":{"name":"DomainDeprecated"}},"willReplaceOnChanges":true},"domainName":{"type":"string","description":"The domain that you want to add to WAF. The \u003cspan pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\"\u003e`domain_name`\u003c/span\u003e is required when the value of the \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e  is Empty.\n","willReplaceOnChanges":true},"http2Ports":{"type":"array","items":{"type":"string"},"description":"List of the HTTP 2.0 ports.\n"},"httpPorts":{"type":"array","items":{"type":"string"},"description":"List of the HTTP ports.\n"},"httpToUserIp":{"type":"string","description":"Specifies whether to enable the HTTP back-to-origin feature. After this feature is enabled, the WAF instance can use HTTP to forward HTTPS requests to the origin server. \nBy default, port 80 is used to forward the requests to the origin server. Valid values: `On` and `Off`. Default to `Off`.\n"},"httpsPorts":{"type":"array","items":{"type":"string"},"description":"List of the HTTPS ports.\n"},"httpsRedirect":{"type":"string","description":"Specifies whether to redirect HTTP requests as HTTPS requests. Valid values: \"On\" and `Off`. Default to `Off`.\n"},"instanceId":{"type":"string","description":"The ID of the WAF instance.\n","willReplaceOnChanges":true},"isAccessProduct":{"type":"string","description":"Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: `On` and `Off`. Default to `Off`.\n"},"loadBalancing":{"type":"string","description":"The load balancing algorithm that is used to forward requests to the origin. Valid values: `IpHash` and `RoundRobin`. Default to `IpHash`.\n"},"logHeaders":{"type":"array","items":{"$ref":"#/types/alicloud:waf/DomainLogHeader:DomainLogHeader"},"description":"The key-value pair that is used to mark the traffic that flows through WAF to the domain. Each item contains two field:\n* key: The key of label\n* value: The value of label\n"},"readTime":{"type":"integer","description":"The read timeout of a WAF exclusive cluster. Unit: seconds.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the queried domain belongs in Resource Management. By default, no value is specified, indicating that the domain belongs to the default resource group.\n","willReplaceOnChanges":true},"sourceIps":{"type":"array","items":{"type":"string"},"description":"List of the IP address or domain of the origin server to which the specified domain points.\n"},"writeTime":{"type":"integer","description":"The timeout period for a WAF exclusive cluster write connection. Unit: seconds.\n"}},"requiredInputs":["instanceId","isAccessProduct"],"stateInputs":{"description":"Input properties used for looking up and filtering Domain resources.\n","properties":{"clusterType":{"type":"string","description":"The type of the WAF cluster. Valid values: `PhysicalCluster` and `VirtualCluster`. Default to `PhysicalCluster`.\n"},"cname":{"type":"string","description":"The CNAME record assigned by the WAF instance to the specified domain.\n"},"connectionTime":{"type":"integer","description":"The connection timeout for WAF exclusive clusters. Unit: seconds.\n"},"domain":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e has been deprecated from version 1.94.0. Use \u003cspan pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\"\u003e`domain_name`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'domain' has been deprecated from version 1.94.0. Use 'domain_name' instead.","language":{"csharp":{"name":"DomainDeprecated"}},"willReplaceOnChanges":true},"domainName":{"type":"string","description":"The domain that you want to add to WAF. The \u003cspan pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\"\u003e`domain_name`\u003c/span\u003e is required when the value of the \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e  is Empty.\n","willReplaceOnChanges":true},"http2Ports":{"type":"array","items":{"type":"string"},"description":"List of the HTTP 2.0 ports.\n"},"httpPorts":{"type":"array","items":{"type":"string"},"description":"List of the HTTP ports.\n"},"httpToUserIp":{"type":"string","description":"Specifies whether to enable the HTTP back-to-origin feature. After this feature is enabled, the WAF instance can use HTTP to forward HTTPS requests to the origin server. \nBy default, port 80 is used to forward the requests to the origin server. Valid values: `On` and `Off`. Default to `Off`.\n"},"httpsPorts":{"type":"array","items":{"type":"string"},"description":"List of the HTTPS ports.\n"},"httpsRedirect":{"type":"string","description":"Specifies whether to redirect HTTP requests as HTTPS requests. Valid values: \"On\" and `Off`. Default to `Off`.\n"},"instanceId":{"type":"string","description":"The ID of the WAF instance.\n","willReplaceOnChanges":true},"isAccessProduct":{"type":"string","description":"Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: `On` and `Off`. Default to `Off`.\n"},"loadBalancing":{"type":"string","description":"The load balancing algorithm that is used to forward requests to the origin. Valid values: `IpHash` and `RoundRobin`. Default to `IpHash`.\n"},"logHeaders":{"type":"array","items":{"$ref":"#/types/alicloud:waf/DomainLogHeader:DomainLogHeader"},"description":"The key-value pair that is used to mark the traffic that flows through WAF to the domain. Each item contains two field:\n* key: The key of label\n* value: The value of label\n"},"readTime":{"type":"integer","description":"The read timeout of a WAF exclusive cluster. Unit: seconds.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the queried domain belongs in Resource Management. By default, no value is specified, indicating that the domain belongs to the default resource group.\n","willReplaceOnChanges":true},"sourceIps":{"type":"array","items":{"type":"string"},"description":"List of the IP address or domain of the origin server to which the specified domain points.\n"},"writeTime":{"type":"integer","description":"The timeout period for a WAF exclusive cluster write connection. Unit: seconds.\n"}},"type":"object"}},"alicloud:waf/instance:Instance":{"description":"\u003e **DEPRECATED:**  This resource has been deprecated and using\u003cspan pulumi-lang-nodejs=\" alicloud.wafv3.Instance \" pulumi-lang-dotnet=\" alicloud.wafv3.Instance \" pulumi-lang-go=\" wafv3.Instance \" pulumi-lang-python=\" wafv3.Instance \" pulumi-lang-yaml=\" alicloud.wafv3.Instance \" pulumi-lang-java=\" alicloud.wafv3.Instance \"\u003e alicloud.wafv3.Instance \u003c/span\u003einstead.\n\nProvides a WAF Instance resource to create instance in the Web Application Firewall.\n\nFor information about WAF and how to use it, see [What is Alibaba Cloud WAF](https://www.alibabacloud.com/help/doc-detail/28517.htm).\n\n\u003e **NOTE:** Available since v1.83.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.waf.getInstances({});\nconst defaultInstance: alicloud.waf.Instance[] = [];\n_default.then(_default =\u003e _default.instances).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultInstance.push(new alicloud.waf.Instance(`default-${range.value}`, {\n            bigScreen: \"0\",\n            exclusiveIpPackage: \"1\",\n            extBandwidth: \"50\",\n            extDomainPackage: \"1\",\n            packageCode: \"version_3\",\n            prefessionalService: \"false\",\n            subscriptionType: \"Subscription\",\n            period: 1,\n            wafLog: \"false\",\n            logStorage: \"3\",\n            logTime: \"180\",\n            resourceGroupId: \"rs-abc12345\",\n        }));\n    }\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.waf.get_instances()\ndefault_instance = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_instance.append(alicloud.waf.Instance(f\"default-{range['value']}\",\n            big_screen=\"0\",\n            exclusive_ip_package=\"1\",\n            ext_bandwidth=\"50\",\n            ext_domain_package=\"1\",\n            package_code=\"version_3\",\n            prefessional_service=\"false\",\n            subscription_type=\"Subscription\",\n            period=1,\n            waf_log=\"false\",\n            log_storage=\"3\",\n            log_time=\"180\",\n            resource_group_id=\"rs-abc12345\"))\n\nlen(default.instances).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Waf.GetInstances.Invoke();\n\n    var defaultInstance = new List\u003cAliCloud.Waf.Instance\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Instances)).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultInstance.Add(new AliCloud.Waf.Instance($\"default-{range.Value}\", new()\n        {\n            BigScreen = \"0\",\n            ExclusiveIpPackage = \"1\",\n            ExtBandwidth = \"50\",\n            ExtDomainPackage = \"1\",\n            PackageCode = \"version_3\",\n            PrefessionalService = \"false\",\n            SubscriptionType = \"Subscription\",\n            Period = 1,\n            WafLog = \"false\",\n            LogStorage = \"3\",\n            LogTime = \"180\",\n            ResourceGroupId = \"rs-abc12345\",\n        }));\n    }\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/waf\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := waf.GetInstances(ctx, \u0026waf.GetInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp0 float64\n\t\tif length \u003e 0 {\n\t\t\ttmp0 = 0\n\t\t} else {\n\t\t\ttmp0 = 1\n\t\t}\n\t\tvar defaultInstance []*waf.Instance\n\t\tfor index := 0; index \u003c float64(len(_default.Instances).ApplyT(func(length int) (float64, error) {\n\t\t\treturn tmp0, nil\n\t\t}).(pulumi.Float64Output)); index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := waf.NewInstance(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026waf.InstanceArgs{\n\t\t\t\tBigScreen:           pulumi.String(\"0\"),\n\t\t\t\tExclusiveIpPackage:  pulumi.String(\"1\"),\n\t\t\t\tExtBandwidth:        pulumi.String(\"50\"),\n\t\t\t\tExtDomainPackage:    pulumi.String(\"1\"),\n\t\t\t\tPackageCode:         pulumi.String(\"version_3\"),\n\t\t\t\tPrefessionalService: pulumi.String(\"false\"),\n\t\t\t\tSubscriptionType:    pulumi.String(\"Subscription\"),\n\t\t\t\tPeriod:              pulumi.Int(1),\n\t\t\t\tWafLog:              pulumi.String(\"false\"),\n\t\t\t\tLogStorage:          pulumi.String(\"3\"),\n\t\t\t\tLogTime:             pulumi.String(\"180\"),\n\t\t\t\tResourceGroupId:     pulumi.String(\"rs-abc12345\"),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultInstance = append(defaultInstance, __res)\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.waf.WafFunctions;\nimport com.pulumi.alicloud.waf.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.waf.Instance;\nimport com.pulumi.alicloud.waf.InstanceArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = WafFunctions.getInstances(GetInstancesArgs.builder()\n            .build());\n\n        for (var i = 0; i \u003c default_.instances().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new Instance(\"defaultInstance-\" + i, InstanceArgs.builder()\n                .bigScreen(\"0\")\n                .exclusiveIpPackage(\"1\")\n                .extBandwidth(\"50\")\n                .extDomainPackage(\"1\")\n                .packageCode(\"version_3\")\n                .prefessionalService(\"false\")\n                .subscriptionType(\"Subscription\")\n                .period(1)\n                .wafLog(\"false\")\n                .logStorage(\"3\")\n                .logTime(\"180\")\n                .resourceGroupId(\"rs-abc12345\")\n                .build());\n\n        \n}\n    }\n}\n```\n```yaml\nresources:\n  defaultInstance:\n    type: alicloud:waf:Instance\n    name: default\n    properties:\n      bigScreen: '0'\n      exclusiveIpPackage: '1'\n      extBandwidth: '50'\n      extDomainPackage: '1'\n      packageCode: version_3\n      prefessionalService: 'false'\n      subscriptionType: Subscription\n      period: 1\n      wafLog: 'false'\n      logStorage: '3'\n      logTime: '180'\n      resourceGroupId: rs-abc12345\n    options: {}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:waf:getInstances\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.waf.Instance`\" pulumi-lang-dotnet=\"`alicloud.waf.Instance`\" pulumi-lang-go=\"`waf.Instance`\" pulumi-lang-python=\"`waf.Instance`\" pulumi-lang-yaml=\"`alicloud.waf.Instance`\" pulumi-lang-java=\"`alicloud.waf.Instance`\"\u003e`alicloud.waf.Instance`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.waf.Instance`\" pulumi-lang-dotnet=\"`alicloud.waf.Instance`\" pulumi-lang-go=\"`waf.Instance`\" pulumi-lang-python=\"`waf.Instance`\" pulumi-lang-yaml=\"`alicloud.waf.Instance`\" pulumi-lang-java=\"`alicloud.waf.Instance`\"\u003e`alicloud.waf.Instance`\u003c/span\u003e resource allows you to manage \u003cspan pulumi-lang-nodejs=\"`subscriptionType \" pulumi-lang-dotnet=\"`SubscriptionType \" pulumi-lang-go=\"`subscriptionType \" pulumi-lang-python=\"`subscription_type \" pulumi-lang-yaml=\"`subscriptionType \" pulumi-lang-java=\"`subscriptionType \"\u003e`subscription_type \u003c/span\u003e= \"Subscription\"` WAF instance, but Terraform cannot destroy it before it is expired.\nDeleting the subscription resource or removing it from your configuration will remove it from your state file and management, but will not destroy the WAF Instance.\nYou can resume managing the subscription WAF instance via the AlibabaCloud Console.\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nWAF instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:waf/instance:Instance default waf-cn-132435\n```\n\n","properties":{"bigScreen":{"type":"string","description":"Specify whether big screen is supported. Valid values: [\"0\", \"1\"]. \"0\" for false and \"1\" for true.\n"},"exclusiveIpPackage":{"type":"string","description":"Specify the number of exclusive WAF IP addresses.\n"},"extBandwidth":{"type":"string","description":"The extra bandwidth. Unit: Mbit/s.\n"},"extDomainPackage":{"type":"string","description":"The number of extra domains.\n"},"logStorage":{"type":"string","description":"Log storage size. Unit: T. Valid values: [3, 5, 10, 20, 50].\n"},"logTime":{"type":"string","description":"Log storage period. Unit: day. Valid values: [180, 360].\n"},"modifyType":{"type":"string","description":"Type of configuration change. Valid value: Upgrade.\n"},"packageCode":{"type":"string","description":"Subscription plan:\n* China site customers can purchase the following versions of China Mainland region, valid values: [\u003cspan pulumi-lang-nodejs=\"\"version3\"\" pulumi-lang-dotnet=\"\"Version3\"\" pulumi-lang-go=\"\"version3\"\" pulumi-lang-python=\"\"version_3\"\" pulumi-lang-yaml=\"\"version3\"\" pulumi-lang-java=\"\"version3\"\"\u003e\"version_3\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"version4\"\" pulumi-lang-dotnet=\"\"Version4\"\" pulumi-lang-go=\"\"version4\"\" pulumi-lang-python=\"\"version_4\"\" pulumi-lang-yaml=\"\"version4\"\" pulumi-lang-java=\"\"version4\"\"\u003e\"version_4\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"version5\"\" pulumi-lang-dotnet=\"\"Version5\"\" pulumi-lang-go=\"\"version5\"\" pulumi-lang-python=\"\"version_5\"\" pulumi-lang-yaml=\"\"version5\"\" pulumi-lang-java=\"\"version5\"\"\u003e\"version_5\"\u003c/span\u003e].\n* China site customers can purchase the following versions of International region, valid values: [\u003cspan pulumi-lang-nodejs=\"\"versionProAsia\"\" pulumi-lang-dotnet=\"\"VersionProAsia\"\" pulumi-lang-go=\"\"versionProAsia\"\" pulumi-lang-python=\"\"version_pro_asia\"\" pulumi-lang-yaml=\"\"versionProAsia\"\" pulumi-lang-java=\"\"versionProAsia\"\"\u003e\"version_pro_asia\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionBusinessAsia\"\" pulumi-lang-dotnet=\"\"VersionBusinessAsia\"\" pulumi-lang-go=\"\"versionBusinessAsia\"\" pulumi-lang-python=\"\"version_business_asia\"\" pulumi-lang-yaml=\"\"versionBusinessAsia\"\" pulumi-lang-java=\"\"versionBusinessAsia\"\"\u003e\"version_business_asia\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionEnterpriseAsia\"\" pulumi-lang-dotnet=\"\"VersionEnterpriseAsia\"\" pulumi-lang-go=\"\"versionEnterpriseAsia\"\" pulumi-lang-python=\"\"version_enterprise_asia\"\" pulumi-lang-yaml=\"\"versionEnterpriseAsia\"\" pulumi-lang-java=\"\"versionEnterpriseAsia\"\"\u003e\"version_enterprise_asia\"\u003c/span\u003e]\n* International site customers can purchase the following versions of China Mainland region: [\u003cspan pulumi-lang-nodejs=\"\"versionProChina\"\" pulumi-lang-dotnet=\"\"VersionProChina\"\" pulumi-lang-go=\"\"versionProChina\"\" pulumi-lang-python=\"\"version_pro_china\"\" pulumi-lang-yaml=\"\"versionProChina\"\" pulumi-lang-java=\"\"versionProChina\"\"\u003e\"version_pro_china\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionBusinessChina\"\" pulumi-lang-dotnet=\"\"VersionBusinessChina\"\" pulumi-lang-go=\"\"versionBusinessChina\"\" pulumi-lang-python=\"\"version_business_china\"\" pulumi-lang-yaml=\"\"versionBusinessChina\"\" pulumi-lang-java=\"\"versionBusinessChina\"\"\u003e\"version_business_china\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionEnterpriseChina\"\" pulumi-lang-dotnet=\"\"VersionEnterpriseChina\"\" pulumi-lang-go=\"\"versionEnterpriseChina\"\" pulumi-lang-python=\"\"version_enterprise_china\"\" pulumi-lang-yaml=\"\"versionEnterpriseChina\"\" pulumi-lang-java=\"\"versionEnterpriseChina\"\"\u003e\"version_enterprise_china\"\u003c/span\u003e]\n* International site customers can purchase the following versions of International region: [\u003cspan pulumi-lang-nodejs=\"\"versionPro\"\" pulumi-lang-dotnet=\"\"VersionPro\"\" pulumi-lang-go=\"\"versionPro\"\" pulumi-lang-python=\"\"version_pro\"\" pulumi-lang-yaml=\"\"versionPro\"\" pulumi-lang-java=\"\"versionPro\"\"\u003e\"version_pro\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionBusiness\"\" pulumi-lang-dotnet=\"\"VersionBusiness\"\" pulumi-lang-go=\"\"versionBusiness\"\" pulumi-lang-python=\"\"version_business\"\" pulumi-lang-yaml=\"\"versionBusiness\"\" pulumi-lang-java=\"\"versionBusiness\"\"\u003e\"version_business\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionEnterprise\"\" pulumi-lang-dotnet=\"\"VersionEnterprise\"\" pulumi-lang-go=\"\"versionEnterprise\"\" pulumi-lang-python=\"\"version_enterprise\"\" pulumi-lang-yaml=\"\"versionEnterprise\"\" pulumi-lang-java=\"\"versionEnterprise\"\"\u003e\"version_enterprise\"\u003c/span\u003e].\n"},"period":{"type":"integer","description":"Service time of Web Application Firewall.\n"},"prefessionalService":{"type":"string","description":"Specify whether professional service is supported. Valid values: [\"true\", \"false\"]\n"},"region":{"type":"string","description":"The instance region ID.\n"},"renewPeriod":{"type":"integer","description":"Renewal period of WAF service. Unit: month\n"},"renewalStatus":{"type":"string","description":"Renewal status of WAF service. Valid values: \n* AutoRenewal: The service time of WAF is renewed automatically.\n* ManualRenewal (default): The service time of WAF is renewed manually.Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: \"On\" and \"Off\". Default to \"Off\".\n"},"resourceGroupId":{"type":"string","description":"The resource group ID.\n"},"status":{"type":"integer","description":"The status of the instance.\n"},"subscriptionType":{"type":"string","description":"Subscription of WAF service. Valid values: [\"Subscription\", \"PayAsYouGo\"].\n"},"wafLog":{"type":"string","description":"Specify whether Log service is supported. Valid values: [\"true\", \"false\"]\n"}},"required":["bigScreen","exclusiveIpPackage","extBandwidth","extDomainPackage","logStorage","logTime","packageCode","prefessionalService","status","subscriptionType","wafLog"],"inputProperties":{"bigScreen":{"type":"string","description":"Specify whether big screen is supported. Valid values: [\"0\", \"1\"]. \"0\" for false and \"1\" for true.\n"},"exclusiveIpPackage":{"type":"string","description":"Specify the number of exclusive WAF IP addresses.\n"},"extBandwidth":{"type":"string","description":"The extra bandwidth. Unit: Mbit/s.\n"},"extDomainPackage":{"type":"string","description":"The number of extra domains.\n"},"logStorage":{"type":"string","description":"Log storage size. Unit: T. Valid values: [3, 5, 10, 20, 50].\n"},"logTime":{"type":"string","description":"Log storage period. Unit: day. Valid values: [180, 360].\n"},"modifyType":{"type":"string","description":"Type of configuration change. Valid value: Upgrade.\n"},"packageCode":{"type":"string","description":"Subscription plan:\n* China site customers can purchase the following versions of China Mainland region, valid values: [\u003cspan pulumi-lang-nodejs=\"\"version3\"\" pulumi-lang-dotnet=\"\"Version3\"\" pulumi-lang-go=\"\"version3\"\" pulumi-lang-python=\"\"version_3\"\" pulumi-lang-yaml=\"\"version3\"\" pulumi-lang-java=\"\"version3\"\"\u003e\"version_3\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"version4\"\" pulumi-lang-dotnet=\"\"Version4\"\" pulumi-lang-go=\"\"version4\"\" pulumi-lang-python=\"\"version_4\"\" pulumi-lang-yaml=\"\"version4\"\" pulumi-lang-java=\"\"version4\"\"\u003e\"version_4\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"version5\"\" pulumi-lang-dotnet=\"\"Version5\"\" pulumi-lang-go=\"\"version5\"\" pulumi-lang-python=\"\"version_5\"\" pulumi-lang-yaml=\"\"version5\"\" pulumi-lang-java=\"\"version5\"\"\u003e\"version_5\"\u003c/span\u003e].\n* China site customers can purchase the following versions of International region, valid values: [\u003cspan pulumi-lang-nodejs=\"\"versionProAsia\"\" pulumi-lang-dotnet=\"\"VersionProAsia\"\" pulumi-lang-go=\"\"versionProAsia\"\" pulumi-lang-python=\"\"version_pro_asia\"\" pulumi-lang-yaml=\"\"versionProAsia\"\" pulumi-lang-java=\"\"versionProAsia\"\"\u003e\"version_pro_asia\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionBusinessAsia\"\" pulumi-lang-dotnet=\"\"VersionBusinessAsia\"\" pulumi-lang-go=\"\"versionBusinessAsia\"\" pulumi-lang-python=\"\"version_business_asia\"\" pulumi-lang-yaml=\"\"versionBusinessAsia\"\" pulumi-lang-java=\"\"versionBusinessAsia\"\"\u003e\"version_business_asia\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionEnterpriseAsia\"\" pulumi-lang-dotnet=\"\"VersionEnterpriseAsia\"\" pulumi-lang-go=\"\"versionEnterpriseAsia\"\" pulumi-lang-python=\"\"version_enterprise_asia\"\" pulumi-lang-yaml=\"\"versionEnterpriseAsia\"\" pulumi-lang-java=\"\"versionEnterpriseAsia\"\"\u003e\"version_enterprise_asia\"\u003c/span\u003e]\n* International site customers can purchase the following versions of China Mainland region: [\u003cspan pulumi-lang-nodejs=\"\"versionProChina\"\" pulumi-lang-dotnet=\"\"VersionProChina\"\" pulumi-lang-go=\"\"versionProChina\"\" pulumi-lang-python=\"\"version_pro_china\"\" pulumi-lang-yaml=\"\"versionProChina\"\" pulumi-lang-java=\"\"versionProChina\"\"\u003e\"version_pro_china\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionBusinessChina\"\" pulumi-lang-dotnet=\"\"VersionBusinessChina\"\" pulumi-lang-go=\"\"versionBusinessChina\"\" pulumi-lang-python=\"\"version_business_china\"\" pulumi-lang-yaml=\"\"versionBusinessChina\"\" pulumi-lang-java=\"\"versionBusinessChina\"\"\u003e\"version_business_china\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionEnterpriseChina\"\" pulumi-lang-dotnet=\"\"VersionEnterpriseChina\"\" pulumi-lang-go=\"\"versionEnterpriseChina\"\" pulumi-lang-python=\"\"version_enterprise_china\"\" pulumi-lang-yaml=\"\"versionEnterpriseChina\"\" pulumi-lang-java=\"\"versionEnterpriseChina\"\"\u003e\"version_enterprise_china\"\u003c/span\u003e]\n* International site customers can purchase the following versions of International region: [\u003cspan pulumi-lang-nodejs=\"\"versionPro\"\" pulumi-lang-dotnet=\"\"VersionPro\"\" pulumi-lang-go=\"\"versionPro\"\" pulumi-lang-python=\"\"version_pro\"\" pulumi-lang-yaml=\"\"versionPro\"\" pulumi-lang-java=\"\"versionPro\"\"\u003e\"version_pro\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionBusiness\"\" pulumi-lang-dotnet=\"\"VersionBusiness\"\" pulumi-lang-go=\"\"versionBusiness\"\" pulumi-lang-python=\"\"version_business\"\" pulumi-lang-yaml=\"\"versionBusiness\"\" pulumi-lang-java=\"\"versionBusiness\"\"\u003e\"version_business\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionEnterprise\"\" pulumi-lang-dotnet=\"\"VersionEnterprise\"\" pulumi-lang-go=\"\"versionEnterprise\"\" pulumi-lang-python=\"\"version_enterprise\"\" pulumi-lang-yaml=\"\"versionEnterprise\"\" pulumi-lang-java=\"\"versionEnterprise\"\"\u003e\"version_enterprise\"\u003c/span\u003e].\n"},"period":{"type":"integer","description":"Service time of Web Application Firewall.\n","willReplaceOnChanges":true},"prefessionalService":{"type":"string","description":"Specify whether professional service is supported. Valid values: [\"true\", \"false\"]\n"},"region":{"type":"string","description":"The instance region ID.\n"},"renewPeriod":{"type":"integer","description":"Renewal period of WAF service. Unit: month\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Renewal status of WAF service. Valid values: \n* AutoRenewal: The service time of WAF is renewed automatically.\n* ManualRenewal (default): The service time of WAF is renewed manually.Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: \"On\" and \"Off\". Default to \"Off\".\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The resource group ID.\n"},"subscriptionType":{"type":"string","description":"Subscription of WAF service. Valid values: [\"Subscription\", \"PayAsYouGo\"].\n"},"wafLog":{"type":"string","description":"Specify whether Log service is supported. Valid values: [\"true\", \"false\"]\n"}},"requiredInputs":["bigScreen","exclusiveIpPackage","extBandwidth","extDomainPackage","logStorage","logTime","packageCode","prefessionalService","subscriptionType","wafLog"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"bigScreen":{"type":"string","description":"Specify whether big screen is supported. Valid values: [\"0\", \"1\"]. \"0\" for false and \"1\" for true.\n"},"exclusiveIpPackage":{"type":"string","description":"Specify the number of exclusive WAF IP addresses.\n"},"extBandwidth":{"type":"string","description":"The extra bandwidth. Unit: Mbit/s.\n"},"extDomainPackage":{"type":"string","description":"The number of extra domains.\n"},"logStorage":{"type":"string","description":"Log storage size. Unit: T. Valid values: [3, 5, 10, 20, 50].\n"},"logTime":{"type":"string","description":"Log storage period. Unit: day. Valid values: [180, 360].\n"},"modifyType":{"type":"string","description":"Type of configuration change. Valid value: Upgrade.\n"},"packageCode":{"type":"string","description":"Subscription plan:\n* China site customers can purchase the following versions of China Mainland region, valid values: [\u003cspan pulumi-lang-nodejs=\"\"version3\"\" pulumi-lang-dotnet=\"\"Version3\"\" pulumi-lang-go=\"\"version3\"\" pulumi-lang-python=\"\"version_3\"\" pulumi-lang-yaml=\"\"version3\"\" pulumi-lang-java=\"\"version3\"\"\u003e\"version_3\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"version4\"\" pulumi-lang-dotnet=\"\"Version4\"\" pulumi-lang-go=\"\"version4\"\" pulumi-lang-python=\"\"version_4\"\" pulumi-lang-yaml=\"\"version4\"\" pulumi-lang-java=\"\"version4\"\"\u003e\"version_4\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"version5\"\" pulumi-lang-dotnet=\"\"Version5\"\" pulumi-lang-go=\"\"version5\"\" pulumi-lang-python=\"\"version_5\"\" pulumi-lang-yaml=\"\"version5\"\" pulumi-lang-java=\"\"version5\"\"\u003e\"version_5\"\u003c/span\u003e].\n* China site customers can purchase the following versions of International region, valid values: [\u003cspan pulumi-lang-nodejs=\"\"versionProAsia\"\" pulumi-lang-dotnet=\"\"VersionProAsia\"\" pulumi-lang-go=\"\"versionProAsia\"\" pulumi-lang-python=\"\"version_pro_asia\"\" pulumi-lang-yaml=\"\"versionProAsia\"\" pulumi-lang-java=\"\"versionProAsia\"\"\u003e\"version_pro_asia\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionBusinessAsia\"\" pulumi-lang-dotnet=\"\"VersionBusinessAsia\"\" pulumi-lang-go=\"\"versionBusinessAsia\"\" pulumi-lang-python=\"\"version_business_asia\"\" pulumi-lang-yaml=\"\"versionBusinessAsia\"\" pulumi-lang-java=\"\"versionBusinessAsia\"\"\u003e\"version_business_asia\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionEnterpriseAsia\"\" pulumi-lang-dotnet=\"\"VersionEnterpriseAsia\"\" pulumi-lang-go=\"\"versionEnterpriseAsia\"\" pulumi-lang-python=\"\"version_enterprise_asia\"\" pulumi-lang-yaml=\"\"versionEnterpriseAsia\"\" pulumi-lang-java=\"\"versionEnterpriseAsia\"\"\u003e\"version_enterprise_asia\"\u003c/span\u003e]\n* International site customers can purchase the following versions of China Mainland region: [\u003cspan pulumi-lang-nodejs=\"\"versionProChina\"\" pulumi-lang-dotnet=\"\"VersionProChina\"\" pulumi-lang-go=\"\"versionProChina\"\" pulumi-lang-python=\"\"version_pro_china\"\" pulumi-lang-yaml=\"\"versionProChina\"\" pulumi-lang-java=\"\"versionProChina\"\"\u003e\"version_pro_china\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionBusinessChina\"\" pulumi-lang-dotnet=\"\"VersionBusinessChina\"\" pulumi-lang-go=\"\"versionBusinessChina\"\" pulumi-lang-python=\"\"version_business_china\"\" pulumi-lang-yaml=\"\"versionBusinessChina\"\" pulumi-lang-java=\"\"versionBusinessChina\"\"\u003e\"version_business_china\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionEnterpriseChina\"\" pulumi-lang-dotnet=\"\"VersionEnterpriseChina\"\" pulumi-lang-go=\"\"versionEnterpriseChina\"\" pulumi-lang-python=\"\"version_enterprise_china\"\" pulumi-lang-yaml=\"\"versionEnterpriseChina\"\" pulumi-lang-java=\"\"versionEnterpriseChina\"\"\u003e\"version_enterprise_china\"\u003c/span\u003e]\n* International site customers can purchase the following versions of International region: [\u003cspan pulumi-lang-nodejs=\"\"versionPro\"\" pulumi-lang-dotnet=\"\"VersionPro\"\" pulumi-lang-go=\"\"versionPro\"\" pulumi-lang-python=\"\"version_pro\"\" pulumi-lang-yaml=\"\"versionPro\"\" pulumi-lang-java=\"\"versionPro\"\"\u003e\"version_pro\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionBusiness\"\" pulumi-lang-dotnet=\"\"VersionBusiness\"\" pulumi-lang-go=\"\"versionBusiness\"\" pulumi-lang-python=\"\"version_business\"\" pulumi-lang-yaml=\"\"versionBusiness\"\" pulumi-lang-java=\"\"versionBusiness\"\"\u003e\"version_business\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"versionEnterprise\"\" pulumi-lang-dotnet=\"\"VersionEnterprise\"\" pulumi-lang-go=\"\"versionEnterprise\"\" pulumi-lang-python=\"\"version_enterprise\"\" pulumi-lang-yaml=\"\"versionEnterprise\"\" pulumi-lang-java=\"\"versionEnterprise\"\"\u003e\"version_enterprise\"\u003c/span\u003e].\n"},"period":{"type":"integer","description":"Service time of Web Application Firewall.\n","willReplaceOnChanges":true},"prefessionalService":{"type":"string","description":"Specify whether professional service is supported. Valid values: [\"true\", \"false\"]\n"},"region":{"type":"string","description":"The instance region ID.\n"},"renewPeriod":{"type":"integer","description":"Renewal period of WAF service. Unit: month\n","willReplaceOnChanges":true},"renewalStatus":{"type":"string","description":"Renewal status of WAF service. Valid values: \n* AutoRenewal: The service time of WAF is renewed automatically.\n* ManualRenewal (default): The service time of WAF is renewed manually.Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: \"On\" and \"Off\". Default to \"Off\".\n","willReplaceOnChanges":true},"resourceGroupId":{"type":"string","description":"The resource group ID.\n"},"status":{"type":"integer","description":"The status of the instance.\n"},"subscriptionType":{"type":"string","description":"Subscription of WAF service. Valid values: [\"Subscription\", \"PayAsYouGo\"].\n"},"wafLog":{"type":"string","description":"Specify whether Log service is supported. Valid values: [\"true\", \"false\"]\n"}},"type":"object"}},"alicloud:waf/protectionModule:ProtectionModule":{"description":"Provides a Web Application Firewall(WAF) Protection Module resource.\n\nFor information about Web Application Firewall(WAF) Protection Module and how to use it, see [What is Protection Module](https://www.alibabacloud.com/help/en/doc-detail/160775.htm).\n\n\u003e **NOTE:** Available in v1.141.0+.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.waf.getInstances({});\nconst defaultDomain = new alicloud.waf.Domain(\"default\", {\n    domainName: \"you domain\",\n    instanceId: _default.then(_default =\u003e _default.ids?.[0]),\n    isAccessProduct: \"On\",\n    sourceIps: [\"1.1.1.1\"],\n    clusterType: \"PhysicalCluster\",\n    http2Ports: [\"443\"],\n    httpPorts: [\"80\"],\n    httpsPorts: [\"443\"],\n    httpToUserIp: \"Off\",\n    httpsRedirect: \"Off\",\n    loadBalancing: \"IpHash\",\n    logHeaders: [{\n        key: \"foo\",\n        value: \"http\",\n    }],\n});\nconst defaultProtectionModule = new alicloud.waf.ProtectionModule(\"default\", {\n    instanceId: _default.then(_default =\u003e _default.ids?.[0]),\n    domain: defaultDomain.domainName,\n    defenseType: \"ac_cc\",\n    mode: 0,\n    status: 0,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.waf.get_instances()\ndefault_domain = alicloud.waf.Domain(\"default\",\n    domain_name=\"you domain\",\n    instance_id=default.ids[0],\n    is_access_product=\"On\",\n    source_ips=[\"1.1.1.1\"],\n    cluster_type=\"PhysicalCluster\",\n    http2_ports=[\"443\"],\n    http_ports=[\"80\"],\n    https_ports=[\"443\"],\n    http_to_user_ip=\"Off\",\n    https_redirect=\"Off\",\n    load_balancing=\"IpHash\",\n    log_headers=[{\n        \"key\": \"foo\",\n        \"value\": \"http\",\n    }])\ndefault_protection_module = alicloud.waf.ProtectionModule(\"default\",\n    instance_id=default.ids[0],\n    domain=default_domain.domain_name,\n    defense_type=\"ac_cc\",\n    mode=0,\n    status=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Waf.GetInstances.Invoke();\n\n    var defaultDomain = new AliCloud.Waf.Domain(\"default\", new()\n    {\n        DomainName = \"you domain\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Ids[0])),\n        IsAccessProduct = \"On\",\n        SourceIps = new[]\n        {\n            \"1.1.1.1\",\n        },\n        ClusterType = \"PhysicalCluster\",\n        Http2Ports = new[]\n        {\n            \"443\",\n        },\n        HttpPorts = new[]\n        {\n            \"80\",\n        },\n        HttpsPorts = new[]\n        {\n            \"443\",\n        },\n        HttpToUserIp = \"Off\",\n        HttpsRedirect = \"Off\",\n        LoadBalancing = \"IpHash\",\n        LogHeaders = new[]\n        {\n            new AliCloud.Waf.Inputs.DomainLogHeaderArgs\n            {\n                Key = \"foo\",\n                Value = \"http\",\n            },\n        },\n    });\n\n    var defaultProtectionModule = new AliCloud.Waf.ProtectionModule(\"default\", new()\n    {\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Ids[0])),\n        Domain = defaultDomain.DomainName,\n        DefenseType = \"ac_cc\",\n        Mode = 0,\n        Status = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/waf\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := waf.GetInstances(ctx, \u0026waf.GetInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDomain, err := waf.NewDomain(ctx, \"default\", \u0026waf.DomainArgs{\n\t\t\tDomainName:      pulumi.String(\"you domain\"),\n\t\t\tInstanceId:      pulumi.String(_default.Ids[0]),\n\t\t\tIsAccessProduct: pulumi.String(\"On\"),\n\t\t\tSourceIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1.1.1.1\"),\n\t\t\t},\n\t\t\tClusterType: pulumi.String(\"PhysicalCluster\"),\n\t\t\tHttp2Ports: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"443\"),\n\t\t\t},\n\t\t\tHttpPorts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"80\"),\n\t\t\t},\n\t\t\tHttpsPorts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"443\"),\n\t\t\t},\n\t\t\tHttpToUserIp:  pulumi.String(\"Off\"),\n\t\t\tHttpsRedirect: pulumi.String(\"Off\"),\n\t\t\tLoadBalancing: pulumi.String(\"IpHash\"),\n\t\t\tLogHeaders: waf.DomainLogHeaderArray{\n\t\t\t\t\u0026waf.DomainLogHeaderArgs{\n\t\t\t\t\tKey:   pulumi.String(\"foo\"),\n\t\t\t\t\tValue: pulumi.String(\"http\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = waf.NewProtectionModule(ctx, \"default\", \u0026waf.ProtectionModuleArgs{\n\t\t\tInstanceId:  pulumi.String(_default.Ids[0]),\n\t\t\tDomain:      defaultDomain.DomainName,\n\t\t\tDefenseType: pulumi.String(\"ac_cc\"),\n\t\t\tMode:        pulumi.Int(0),\n\t\t\tStatus:      pulumi.Int(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.waf.WafFunctions;\nimport com.pulumi.alicloud.waf.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.waf.Domain;\nimport com.pulumi.alicloud.waf.DomainArgs;\nimport com.pulumi.alicloud.waf.inputs.DomainLogHeaderArgs;\nimport com.pulumi.alicloud.waf.ProtectionModule;\nimport com.pulumi.alicloud.waf.ProtectionModuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = WafFunctions.getInstances(GetInstancesArgs.builder()\n            .build());\n\n        var defaultDomain = new Domain(\"defaultDomain\", DomainArgs.builder()\n            .domainName(\"you domain\")\n            .instanceId(default_.ids()[0])\n            .isAccessProduct(\"On\")\n            .sourceIps(\"1.1.1.1\")\n            .clusterType(\"PhysicalCluster\")\n            .http2Ports(\"443\")\n            .httpPorts(\"80\")\n            .httpsPorts(\"443\")\n            .httpToUserIp(\"Off\")\n            .httpsRedirect(\"Off\")\n            .loadBalancing(\"IpHash\")\n            .logHeaders(DomainLogHeaderArgs.builder()\n                .key(\"foo\")\n                .value(\"http\")\n                .build())\n            .build());\n\n        var defaultProtectionModule = new ProtectionModule(\"defaultProtectionModule\", ProtectionModuleArgs.builder()\n            .instanceId(default_.ids()[0])\n            .domain(defaultDomain.domainName())\n            .defenseType(\"ac_cc\")\n            .mode(0)\n            .status(0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultDomain:\n    type: alicloud:waf:Domain\n    name: default\n    properties:\n      domainName: you domain\n      instanceId: ${default.ids[0]}\n      isAccessProduct: On\n      sourceIps:\n        - 1.1.1.1\n      clusterType: PhysicalCluster\n      http2Ports:\n        - 443\n      httpPorts:\n        - 80\n      httpsPorts:\n        - 443\n      httpToUserIp: Off\n      httpsRedirect: Off\n      loadBalancing: IpHash\n      logHeaders:\n        - key: foo\n          value: http\n  defaultProtectionModule:\n    type: alicloud:waf:ProtectionModule\n    name: default\n    properties:\n      instanceId: ${default.ids[0]}\n      domain: ${defaultDomain.domainName}\n      defenseType: ac_cc\n      mode: 0\n      status: 0\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:waf:getInstances\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nWeb Application Firewall(WAF) Protection Module can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:waf/protectionModule:ProtectionModule example \u003cinstance_id\u003e:\u003cdomain\u003e:\u003cdefense_type\u003e\n```\n\n","properties":{"defenseType":{"type":"string","description":"The Protection Module. Valid values: \u003cspan pulumi-lang-nodejs=\"`acCc`\" pulumi-lang-dotnet=\"`AcCc`\" pulumi-lang-go=\"`acCc`\" pulumi-lang-python=\"`ac_cc`\" pulumi-lang-yaml=\"`acCc`\" pulumi-lang-java=\"`acCc`\"\u003e`ac_cc`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`antifraud`\" pulumi-lang-dotnet=\"`Antifraud`\" pulumi-lang-go=\"`antifraud`\" pulumi-lang-python=\"`antifraud`\" pulumi-lang-yaml=\"`antifraud`\" pulumi-lang-java=\"`antifraud`\"\u003e`antifraud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dld`\" pulumi-lang-dotnet=\"`Dld`\" pulumi-lang-go=\"`dld`\" pulumi-lang-python=\"`dld`\" pulumi-lang-yaml=\"`dld`\" pulumi-lang-java=\"`dld`\"\u003e`dld`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`normalized`\" pulumi-lang-dotnet=\"`Normalized`\" pulumi-lang-go=\"`normalized`\" pulumi-lang-python=\"`normalized`\" pulumi-lang-yaml=\"`normalized`\" pulumi-lang-java=\"`normalized`\"\u003e`normalized`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`waf`\" pulumi-lang-dotnet=\"`Waf`\" pulumi-lang-go=\"`waf`\" pulumi-lang-python=\"`waf`\" pulumi-lang-yaml=\"`waf`\" pulumi-lang-java=\"`waf`\"\u003e`waf`\u003c/span\u003e.\n"},"domain":{"type":"string","description":"The domain name that is added to WAF.\n"},"instanceId":{"type":"string","description":"The ID of the WAF instance.\n"},"mode":{"type":"integer","description":"The protection mode of the specified protection module. **NOTE:** The value of the Mode parameter varies based on the value of the \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e parameter.\n* The \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`waf`\" pulumi-lang-dotnet=\"`Waf`\" pulumi-lang-go=\"`waf`\" pulumi-lang-python=\"`waf`\" pulumi-lang-yaml=\"`waf`\" pulumi-lang-java=\"`waf`\"\u003e`waf`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: block mode. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: warn mode.\n* The \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`dld`\" pulumi-lang-dotnet=\"`Dld`\" pulumi-lang-go=\"`dld`\" pulumi-lang-python=\"`dld`\" pulumi-lang-yaml=\"`dld`\" pulumi-lang-java=\"`dld`\"\u003e`dld`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: warn mode. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: block mode.\n* The \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`acCc`\" pulumi-lang-dotnet=\"`AcCc`\" pulumi-lang-go=\"`acCc`\" pulumi-lang-python=\"`ac_cc`\" pulumi-lang-yaml=\"`acCc`\" pulumi-lang-java=\"`acCc`\"\u003e`ac_cc`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: prevention mode. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: protection-emergency mode.\n* The \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`antifraud`\" pulumi-lang-dotnet=\"`Antifraud`\" pulumi-lang-go=\"`antifraud`\" pulumi-lang-python=\"`antifraud`\" pulumi-lang-yaml=\"`antifraud`\" pulumi-lang-java=\"`antifraud`\"\u003e`antifraud`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: warn mode. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: block mode. \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: strict interception mode.\n* The \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`normalized`\" pulumi-lang-dotnet=\"`Normalized`\" pulumi-lang-go=\"`normalized`\" pulumi-lang-python=\"`normalized`\" pulumi-lang-yaml=\"`normalized`\" pulumi-lang-java=\"`normalized`\"\u003e`normalized`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: warn mode. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: block mode.\n"},"status":{"type":"integer","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"}},"required":["defenseType","domain","instanceId","mode"],"inputProperties":{"defenseType":{"type":"string","description":"The Protection Module. Valid values: \u003cspan pulumi-lang-nodejs=\"`acCc`\" pulumi-lang-dotnet=\"`AcCc`\" pulumi-lang-go=\"`acCc`\" pulumi-lang-python=\"`ac_cc`\" pulumi-lang-yaml=\"`acCc`\" pulumi-lang-java=\"`acCc`\"\u003e`ac_cc`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`antifraud`\" pulumi-lang-dotnet=\"`Antifraud`\" pulumi-lang-go=\"`antifraud`\" pulumi-lang-python=\"`antifraud`\" pulumi-lang-yaml=\"`antifraud`\" pulumi-lang-java=\"`antifraud`\"\u003e`antifraud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dld`\" pulumi-lang-dotnet=\"`Dld`\" pulumi-lang-go=\"`dld`\" pulumi-lang-python=\"`dld`\" pulumi-lang-yaml=\"`dld`\" pulumi-lang-java=\"`dld`\"\u003e`dld`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`normalized`\" pulumi-lang-dotnet=\"`Normalized`\" pulumi-lang-go=\"`normalized`\" pulumi-lang-python=\"`normalized`\" pulumi-lang-yaml=\"`normalized`\" pulumi-lang-java=\"`normalized`\"\u003e`normalized`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`waf`\" pulumi-lang-dotnet=\"`Waf`\" pulumi-lang-go=\"`waf`\" pulumi-lang-python=\"`waf`\" pulumi-lang-yaml=\"`waf`\" pulumi-lang-java=\"`waf`\"\u003e`waf`\u003c/span\u003e.\n","willReplaceOnChanges":true},"domain":{"type":"string","description":"The domain name that is added to WAF.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the WAF instance.\n","willReplaceOnChanges":true},"mode":{"type":"integer","description":"The protection mode of the specified protection module. **NOTE:** The value of the Mode parameter varies based on the value of the \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e parameter.\n* The \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`waf`\" pulumi-lang-dotnet=\"`Waf`\" pulumi-lang-go=\"`waf`\" pulumi-lang-python=\"`waf`\" pulumi-lang-yaml=\"`waf`\" pulumi-lang-java=\"`waf`\"\u003e`waf`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: block mode. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: warn mode.\n* The \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`dld`\" pulumi-lang-dotnet=\"`Dld`\" pulumi-lang-go=\"`dld`\" pulumi-lang-python=\"`dld`\" pulumi-lang-yaml=\"`dld`\" pulumi-lang-java=\"`dld`\"\u003e`dld`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: warn mode. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: block mode.\n* The \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`acCc`\" pulumi-lang-dotnet=\"`AcCc`\" pulumi-lang-go=\"`acCc`\" pulumi-lang-python=\"`ac_cc`\" pulumi-lang-yaml=\"`acCc`\" pulumi-lang-java=\"`acCc`\"\u003e`ac_cc`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: prevention mode. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: protection-emergency mode.\n* The \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`antifraud`\" pulumi-lang-dotnet=\"`Antifraud`\" pulumi-lang-go=\"`antifraud`\" pulumi-lang-python=\"`antifraud`\" pulumi-lang-yaml=\"`antifraud`\" pulumi-lang-java=\"`antifraud`\"\u003e`antifraud`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: warn mode. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: block mode. \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: strict interception mode.\n* The \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`normalized`\" pulumi-lang-dotnet=\"`Normalized`\" pulumi-lang-go=\"`normalized`\" pulumi-lang-python=\"`normalized`\" pulumi-lang-yaml=\"`normalized`\" pulumi-lang-java=\"`normalized`\"\u003e`normalized`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: warn mode. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: block mode.\n"},"status":{"type":"integer","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"}},"requiredInputs":["defenseType","domain","instanceId","mode"],"stateInputs":{"description":"Input properties used for looking up and filtering ProtectionModule resources.\n","properties":{"defenseType":{"type":"string","description":"The Protection Module. Valid values: \u003cspan pulumi-lang-nodejs=\"`acCc`\" pulumi-lang-dotnet=\"`AcCc`\" pulumi-lang-go=\"`acCc`\" pulumi-lang-python=\"`ac_cc`\" pulumi-lang-yaml=\"`acCc`\" pulumi-lang-java=\"`acCc`\"\u003e`ac_cc`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`antifraud`\" pulumi-lang-dotnet=\"`Antifraud`\" pulumi-lang-go=\"`antifraud`\" pulumi-lang-python=\"`antifraud`\" pulumi-lang-yaml=\"`antifraud`\" pulumi-lang-java=\"`antifraud`\"\u003e`antifraud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dld`\" pulumi-lang-dotnet=\"`Dld`\" pulumi-lang-go=\"`dld`\" pulumi-lang-python=\"`dld`\" pulumi-lang-yaml=\"`dld`\" pulumi-lang-java=\"`dld`\"\u003e`dld`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`normalized`\" pulumi-lang-dotnet=\"`Normalized`\" pulumi-lang-go=\"`normalized`\" pulumi-lang-python=\"`normalized`\" pulumi-lang-yaml=\"`normalized`\" pulumi-lang-java=\"`normalized`\"\u003e`normalized`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`waf`\" pulumi-lang-dotnet=\"`Waf`\" pulumi-lang-go=\"`waf`\" pulumi-lang-python=\"`waf`\" pulumi-lang-yaml=\"`waf`\" pulumi-lang-java=\"`waf`\"\u003e`waf`\u003c/span\u003e.\n","willReplaceOnChanges":true},"domain":{"type":"string","description":"The domain name that is added to WAF.\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the WAF instance.\n","willReplaceOnChanges":true},"mode":{"type":"integer","description":"The protection mode of the specified protection module. **NOTE:** The value of the Mode parameter varies based on the value of the \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e parameter.\n* The \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`waf`\" pulumi-lang-dotnet=\"`Waf`\" pulumi-lang-go=\"`waf`\" pulumi-lang-python=\"`waf`\" pulumi-lang-yaml=\"`waf`\" pulumi-lang-java=\"`waf`\"\u003e`waf`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: block mode. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: warn mode.\n* The \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`dld`\" pulumi-lang-dotnet=\"`Dld`\" pulumi-lang-go=\"`dld`\" pulumi-lang-python=\"`dld`\" pulumi-lang-yaml=\"`dld`\" pulumi-lang-java=\"`dld`\"\u003e`dld`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: warn mode. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: block mode.\n* The \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`acCc`\" pulumi-lang-dotnet=\"`AcCc`\" pulumi-lang-go=\"`acCc`\" pulumi-lang-python=\"`ac_cc`\" pulumi-lang-yaml=\"`acCc`\" pulumi-lang-java=\"`acCc`\"\u003e`ac_cc`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: prevention mode. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: protection-emergency mode.\n* The \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`antifraud`\" pulumi-lang-dotnet=\"`Antifraud`\" pulumi-lang-go=\"`antifraud`\" pulumi-lang-python=\"`antifraud`\" pulumi-lang-yaml=\"`antifraud`\" pulumi-lang-java=\"`antifraud`\"\u003e`antifraud`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: warn mode. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: block mode. \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: strict interception mode.\n* The \u003cspan pulumi-lang-nodejs=\"`defenseType`\" pulumi-lang-dotnet=\"`DefenseType`\" pulumi-lang-go=\"`defenseType`\" pulumi-lang-python=\"`defense_type`\" pulumi-lang-yaml=\"`defenseType`\" pulumi-lang-java=\"`defenseType`\"\u003e`defense_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`normalized`\" pulumi-lang-dotnet=\"`Normalized`\" pulumi-lang-go=\"`normalized`\" pulumi-lang-python=\"`normalized`\" pulumi-lang-yaml=\"`normalized`\" pulumi-lang-java=\"`normalized`\"\u003e`normalized`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: warn mode. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: block mode.\n"},"status":{"type":"integer","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"}},"type":"object"}},"alicloud:wafv3/defenseResourceGroup:DefenseResourceGroup":{"description":"Provides a WAFV3 Defense Resource Group resource.\n\n\n\nFor information about WAFV3 Defense Resource Group and how to use it, see [What is Defense Resource Group](https://next.api.alibabacloud.com/document/waf-openapi/2021-10-01/CreateDefenseResourceGroup).\n\n\u003e **NOTE:** Available since v1.263.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst regionId = config.get(\"regionId\") || \"cn-hangzhou\";\nconst defaultHaF1fD = new alicloud.wafv3.Instance(\"defaultHaF1fD\", {});\nconst defaultHVcskT = new alicloud.wafv3.Domain(\"defaultHVcskT\", {\n    instanceId: defaultHaF1fD.id,\n    listen: {\n        httpPorts: [80],\n    },\n    redirect: {\n        backends: [\"6.36.36.36\"],\n        loadbalance: \"iphash\",\n    },\n    domain: \"1511928242963727_1.wafqax.top\",\n    accessType: \"share\",\n});\nconst defaultEH4CwO = new alicloud.wafv3.Domain(\"defaultEH4CwO\", {\n    instanceId: defaultHaF1fD.id,\n    listen: {\n        httpPorts: [80],\n    },\n    redirect: {\n        backends: [\"6.36.36.36\"],\n        loadbalance: \"iphash\",\n    },\n    domain: \"1511928242963727_2.wafqax.top\",\n    accessType: \"share\",\n});\nconst defaultY0ge1N = new alicloud.wafv3.Domain(\"defaultY0ge1N\", {\n    instanceId: defaultHaF1fD.id,\n    listen: {\n        httpPorts: [80],\n    },\n    redirect: {\n        backends: [\"6.36.36.36\"],\n        loadbalance: \"iphash\",\n    },\n    domain: \"1511928242963727_3.wafqax.top\",\n    accessType: \"share\",\n});\nconst _default = new alicloud.wafv3.DefenseResourceGroup(\"default\", {\n    groupName: \"examplefromTF\",\n    resourceLists: [defaultHVcskT.domainId],\n    description: \"example\",\n    instanceId: defaultHaF1fD.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-hangzhou\"\ndefault_ha_f1f_d = alicloud.wafv3.Instance(\"defaultHaF1fD\")\ndefault_h_vcsk_t = alicloud.wafv3.Domain(\"defaultHVcskT\",\n    instance_id=default_ha_f1f_d.id,\n    listen={\n        \"http_ports\": [80],\n    },\n    redirect={\n        \"backends\": [\"6.36.36.36\"],\n        \"loadbalance\": \"iphash\",\n    },\n    domain=\"1511928242963727_1.wafqax.top\",\n    access_type=\"share\")\ndefault_eh4_cw_o = alicloud.wafv3.Domain(\"defaultEH4CwO\",\n    instance_id=default_ha_f1f_d.id,\n    listen={\n        \"http_ports\": [80],\n    },\n    redirect={\n        \"backends\": [\"6.36.36.36\"],\n        \"loadbalance\": \"iphash\",\n    },\n    domain=\"1511928242963727_2.wafqax.top\",\n    access_type=\"share\")\ndefault_y0ge1_n = alicloud.wafv3.Domain(\"defaultY0ge1N\",\n    instance_id=default_ha_f1f_d.id,\n    listen={\n        \"http_ports\": [80],\n    },\n    redirect={\n        \"backends\": [\"6.36.36.36\"],\n        \"loadbalance\": \"iphash\",\n    },\n    domain=\"1511928242963727_3.wafqax.top\",\n    access_type=\"share\")\ndefault = alicloud.wafv3.DefenseResourceGroup(\"default\",\n    group_name=\"examplefromTF\",\n    resource_lists=[default_h_vcsk_t.domain_id],\n    description=\"example\",\n    instance_id=default_ha_f1f_d.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-hangzhou\";\n    var defaultHaF1fD = new AliCloud.Wafv3.Instance(\"defaultHaF1fD\");\n\n    var defaultHVcskT = new AliCloud.Wafv3.Domain(\"defaultHVcskT\", new()\n    {\n        InstanceId = defaultHaF1fD.Id,\n        Listen = new AliCloud.Wafv3.Inputs.DomainListenArgs\n        {\n            HttpPorts = new[]\n            {\n                80,\n            },\n        },\n        Redirect = new AliCloud.Wafv3.Inputs.DomainRedirectArgs\n        {\n            Backends = new[]\n            {\n                \"6.36.36.36\",\n            },\n            Loadbalance = \"iphash\",\n        },\n        DomainName = \"1511928242963727_1.wafqax.top\",\n        AccessType = \"share\",\n    });\n\n    var defaultEH4CwO = new AliCloud.Wafv3.Domain(\"defaultEH4CwO\", new()\n    {\n        InstanceId = defaultHaF1fD.Id,\n        Listen = new AliCloud.Wafv3.Inputs.DomainListenArgs\n        {\n            HttpPorts = new[]\n            {\n                80,\n            },\n        },\n        Redirect = new AliCloud.Wafv3.Inputs.DomainRedirectArgs\n        {\n            Backends = new[]\n            {\n                \"6.36.36.36\",\n            },\n            Loadbalance = \"iphash\",\n        },\n        DomainName = \"1511928242963727_2.wafqax.top\",\n        AccessType = \"share\",\n    });\n\n    var defaultY0ge1N = new AliCloud.Wafv3.Domain(\"defaultY0ge1N\", new()\n    {\n        InstanceId = defaultHaF1fD.Id,\n        Listen = new AliCloud.Wafv3.Inputs.DomainListenArgs\n        {\n            HttpPorts = new[]\n            {\n                80,\n            },\n        },\n        Redirect = new AliCloud.Wafv3.Inputs.DomainRedirectArgs\n        {\n            Backends = new[]\n            {\n                \"6.36.36.36\",\n            },\n            Loadbalance = \"iphash\",\n        },\n        DomainName = \"1511928242963727_3.wafqax.top\",\n        AccessType = \"share\",\n    });\n\n    var @default = new AliCloud.Wafv3.DefenseResourceGroup(\"default\", new()\n    {\n        GroupName = \"examplefromTF\",\n        ResourceLists = new[]\n        {\n            defaultHVcskT.DomainId,\n        },\n        Description = \"example\",\n        InstanceId = defaultHaF1fD.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/wafv3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tregionId := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\tdefaultHaF1fD, err := wafv3.NewInstance(ctx, \"defaultHaF1fD\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultHVcskT, err := wafv3.NewDomain(ctx, \"defaultHVcskT\", \u0026wafv3.DomainArgs{\n\t\t\tInstanceId: defaultHaF1fD.ID(),\n\t\t\tListen: \u0026wafv3.DomainListenArgs{\n\t\t\t\tHttpPorts: pulumi.IntArray{\n\t\t\t\t\tpulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRedirect: \u0026wafv3.DomainRedirectArgs{\n\t\t\t\tBackends: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"6.36.36.36\"),\n\t\t\t\t},\n\t\t\t\tLoadbalance: pulumi.String(\"iphash\"),\n\t\t\t},\n\t\t\tDomain:     pulumi.String(\"1511928242963727_1.wafqax.top\"),\n\t\t\tAccessType: pulumi.String(\"share\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = wafv3.NewDomain(ctx, \"defaultEH4CwO\", \u0026wafv3.DomainArgs{\n\t\t\tInstanceId: defaultHaF1fD.ID(),\n\t\t\tListen: \u0026wafv3.DomainListenArgs{\n\t\t\t\tHttpPorts: pulumi.IntArray{\n\t\t\t\t\tpulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRedirect: \u0026wafv3.DomainRedirectArgs{\n\t\t\t\tBackends: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"6.36.36.36\"),\n\t\t\t\t},\n\t\t\t\tLoadbalance: pulumi.String(\"iphash\"),\n\t\t\t},\n\t\t\tDomain:     pulumi.String(\"1511928242963727_2.wafqax.top\"),\n\t\t\tAccessType: pulumi.String(\"share\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = wafv3.NewDomain(ctx, \"defaultY0ge1N\", \u0026wafv3.DomainArgs{\n\t\t\tInstanceId: defaultHaF1fD.ID(),\n\t\t\tListen: \u0026wafv3.DomainListenArgs{\n\t\t\t\tHttpPorts: pulumi.IntArray{\n\t\t\t\t\tpulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRedirect: \u0026wafv3.DomainRedirectArgs{\n\t\t\t\tBackends: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"6.36.36.36\"),\n\t\t\t\t},\n\t\t\t\tLoadbalance: pulumi.String(\"iphash\"),\n\t\t\t},\n\t\t\tDomain:     pulumi.String(\"1511928242963727_3.wafqax.top\"),\n\t\t\tAccessType: pulumi.String(\"share\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = wafv3.NewDefenseResourceGroup(ctx, \"default\", \u0026wafv3.DefenseResourceGroupArgs{\n\t\t\tGroupName: pulumi.String(\"examplefromTF\"),\n\t\t\tResourceLists: pulumi.StringArray{\n\t\t\t\tdefaultHVcskT.DomainId,\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tInstanceId:  defaultHaF1fD.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.wafv3.Instance;\nimport com.pulumi.alicloud.wafv3.Domain;\nimport com.pulumi.alicloud.wafv3.DomainArgs;\nimport com.pulumi.alicloud.wafv3.inputs.DomainListenArgs;\nimport com.pulumi.alicloud.wafv3.inputs.DomainRedirectArgs;\nimport com.pulumi.alicloud.wafv3.DefenseResourceGroup;\nimport com.pulumi.alicloud.wafv3.DefenseResourceGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-hangzhou\");\n        var defaultHaF1fD = new Instance(\"defaultHaF1fD\");\n\n        var defaultHVcskT = new Domain(\"defaultHVcskT\", DomainArgs.builder()\n            .instanceId(defaultHaF1fD.id())\n            .listen(DomainListenArgs.builder()\n                .httpPorts(80)\n                .build())\n            .redirect(DomainRedirectArgs.builder()\n                .backends(\"6.36.36.36\")\n                .loadbalance(\"iphash\")\n                .build())\n            .domain(\"1511928242963727_1.wafqax.top\")\n            .accessType(\"share\")\n            .build());\n\n        var defaultEH4CwO = new Domain(\"defaultEH4CwO\", DomainArgs.builder()\n            .instanceId(defaultHaF1fD.id())\n            .listen(DomainListenArgs.builder()\n                .httpPorts(80)\n                .build())\n            .redirect(DomainRedirectArgs.builder()\n                .backends(\"6.36.36.36\")\n                .loadbalance(\"iphash\")\n                .build())\n            .domain(\"1511928242963727_2.wafqax.top\")\n            .accessType(\"share\")\n            .build());\n\n        var defaultY0ge1N = new Domain(\"defaultY0ge1N\", DomainArgs.builder()\n            .instanceId(defaultHaF1fD.id())\n            .listen(DomainListenArgs.builder()\n                .httpPorts(80)\n                .build())\n            .redirect(DomainRedirectArgs.builder()\n                .backends(\"6.36.36.36\")\n                .loadbalance(\"iphash\")\n                .build())\n            .domain(\"1511928242963727_3.wafqax.top\")\n            .accessType(\"share\")\n            .build());\n\n        var default_ = new DefenseResourceGroup(\"default\", DefenseResourceGroupArgs.builder()\n            .groupName(\"examplefromTF\")\n            .resourceLists(defaultHVcskT.domainId())\n            .description(\"example\")\n            .instanceId(defaultHaF1fD.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  regionId:\n    type: string\n    default: cn-hangzhou\nresources:\n  defaultHaF1fD:\n    type: alicloud:wafv3:Instance\n  defaultHVcskT:\n    type: alicloud:wafv3:Domain\n    properties:\n      instanceId: ${defaultHaF1fD.id}\n      listen:\n        httpPorts:\n          - '80'\n      redirect:\n        backends:\n          - 6.36.36.36\n        loadbalance: iphash\n      domain: 1511928242963727_1.wafqax.top\n      accessType: share\n  defaultEH4CwO:\n    type: alicloud:wafv3:Domain\n    properties:\n      instanceId: ${defaultHaF1fD.id}\n      listen:\n        httpPorts:\n          - '80'\n      redirect:\n        backends:\n          - 6.36.36.36\n        loadbalance: iphash\n      domain: 1511928242963727_2.wafqax.top\n      accessType: share\n  defaultY0ge1N:\n    type: alicloud:wafv3:Domain\n    properties:\n      instanceId: ${defaultHaF1fD.id}\n      listen:\n        httpPorts:\n          - '80'\n      redirect:\n        backends:\n          - 6.36.36.36\n        loadbalance: iphash\n      domain: 1511928242963727_3.wafqax.top\n      accessType: share\n  default:\n    type: alicloud:wafv3:DefenseResourceGroup\n    properties:\n      groupName: examplefromTF\n      resourceLists:\n        - ${defaultHVcskT.domainId}\n      description: example\n      instanceId: ${defaultHaF1fD.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nWAFV3 Defense Resource Group can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:wafv3/defenseResourceGroup:DefenseResourceGroup example \u003cinstance_id\u003e:\u003cgroup_name\u003e\n```\n\n","properties":{"description":{"type":"string","description":"The description of the protected object group.\n"},"groupName":{"type":"string","description":"The name of the protected object group. The name must be 1 to 255 characters long and can contain Chinese characters, letters, digits, underscores (_), periods (.), and hyphens (-)\n"},"instanceId":{"type":"string","description":"The ID of the WAF instance.\n"},"resourceLists":{"type":"array","items":{"type":"string"},"description":"The names of the protected objects that are added to the protected object group.\n"}},"required":["groupName","instanceId"],"inputProperties":{"description":{"type":"string","description":"The description of the protected object group.\n"},"groupName":{"type":"string","description":"The name of the protected object group. The name must be 1 to 255 characters long and can contain Chinese characters, letters, digits, underscores (_), periods (.), and hyphens (-)\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the WAF instance.\n","willReplaceOnChanges":true},"resourceLists":{"type":"array","items":{"type":"string"},"description":"The names of the protected objects that are added to the protected object group.\n"}},"requiredInputs":["groupName","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DefenseResourceGroup resources.\n","properties":{"description":{"type":"string","description":"The description of the protected object group.\n"},"groupName":{"type":"string","description":"The name of the protected object group. The name must be 1 to 255 characters long and can contain Chinese characters, letters, digits, underscores (_), periods (.), and hyphens (-)\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the WAF instance.\n","willReplaceOnChanges":true},"resourceLists":{"type":"array","items":{"type":"string"},"description":"The names of the protected objects that are added to the protected object group.\n"}},"type":"object"}},"alicloud:wafv3/defenseRule:DefenseRule":{"description":"Provides a WAFV3 Defense Rule resource.\n\n\n\nFor information about WAFV3 Defense Rule and how to use it, see [What is Defense Rule](https://next.api.alibabacloud.com/document/waf-openapi/2021-10-01/CreateDefenseRule).\n\n\u003e **NOTE:** Available since v1.257.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfexample\";\nconst regionId = config.get(\"regionId\") || \"cn-hangzhou\";\nconst domain = config.get(\"domain\") || \"example.wafqax.top\";\nconst _default = alicloud.wafv3.getInstances({});\nconst defaultICMRhk = new alicloud.wafv3.Domain(\"defaultICMRhk\", {\n    redirect: {\n        loadbalance: \"iphash\",\n        backends: [\"39.98.217.197\"],\n        connectTimeout: 5,\n        readTimeout: 120,\n        writeTimeout: 120,\n    },\n    domain: \"example.wafqax.top\",\n    accessType: \"share\",\n    instanceId: _default.then(_default =\u003e _default.ids?.[0]),\n    listen: {\n        httpPorts: [80],\n    },\n});\nconst defaultDefenseRule = new alicloud.wafv3.DefenseRule(\"default\", {\n    defenseType: \"resource\",\n    defenseScene: \"account_identifier\",\n    ruleStatus: 1,\n    resource: defaultICMRhk.domainId,\n    defenseOrigin: \"custom\",\n    config: {\n        accountIdentifiers: [{\n            position: \"jwt\",\n            priority: 2,\n            decodeType: \"jwt\",\n            key: \"Query-Arg\",\n            subKey: \"adb\",\n        }],\n    },\n    instanceId: _default.then(_default =\u003e _default.ids?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfexample\"\nregion_id = config.get(\"regionId\")\nif region_id is None:\n    region_id = \"cn-hangzhou\"\ndomain = config.get(\"domain\")\nif domain is None:\n    domain = \"example.wafqax.top\"\ndefault = alicloud.wafv3.get_instances()\ndefault_icm_rhk = alicloud.wafv3.Domain(\"defaultICMRhk\",\n    redirect={\n        \"loadbalance\": \"iphash\",\n        \"backends\": [\"39.98.217.197\"],\n        \"connect_timeout\": 5,\n        \"read_timeout\": 120,\n        \"write_timeout\": 120,\n    },\n    domain=\"example.wafqax.top\",\n    access_type=\"share\",\n    instance_id=default.ids[0],\n    listen={\n        \"http_ports\": [80],\n    })\ndefault_defense_rule = alicloud.wafv3.DefenseRule(\"default\",\n    defense_type=\"resource\",\n    defense_scene=\"account_identifier\",\n    rule_status=1,\n    resource=default_icm_rhk.domain_id,\n    defense_origin=\"custom\",\n    config={\n        \"account_identifiers\": [{\n            \"position\": \"jwt\",\n            \"priority\": 2,\n            \"decode_type\": \"jwt\",\n            \"key\": \"Query-Arg\",\n            \"sub_key\": \"adb\",\n        }],\n    },\n    instance_id=default.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfexample\";\n    var regionId = config.Get(\"regionId\") ?? \"cn-hangzhou\";\n    var domain = config.Get(\"domain\") ?? \"example.wafqax.top\";\n    var @default = AliCloud.Wafv3.GetInstances.Invoke();\n\n    var defaultICMRhk = new AliCloud.Wafv3.Domain(\"defaultICMRhk\", new()\n    {\n        Redirect = new AliCloud.Wafv3.Inputs.DomainRedirectArgs\n        {\n            Loadbalance = \"iphash\",\n            Backends = new[]\n            {\n                \"39.98.217.197\",\n            },\n            ConnectTimeout = 5,\n            ReadTimeout = 120,\n            WriteTimeout = 120,\n        },\n        DomainName = \"example.wafqax.top\",\n        AccessType = \"share\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Ids[0])),\n        Listen = new AliCloud.Wafv3.Inputs.DomainListenArgs\n        {\n            HttpPorts = new[]\n            {\n                80,\n            },\n        },\n    });\n\n    var defaultDefenseRule = new AliCloud.Wafv3.DefenseRule(\"default\", new()\n    {\n        DefenseType = \"resource\",\n        DefenseScene = \"account_identifier\",\n        RuleStatus = 1,\n        Resource = defaultICMRhk.DomainId,\n        DefenseOrigin = \"custom\",\n        Config = new AliCloud.Wafv3.Inputs.DefenseRuleConfigArgs\n        {\n            AccountIdentifiers = new[]\n            {\n                new AliCloud.Wafv3.Inputs.DefenseRuleConfigAccountIdentifierArgs\n                {\n                    Position = \"jwt\",\n                    Priority = 2,\n                    DecodeType = \"jwt\",\n                    Key = \"Query-Arg\",\n                    SubKey = \"adb\",\n                },\n            },\n        },\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Ids[0])),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/wafv3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tfexample\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tregionId := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"regionId\"); param != \"\" {\n\t\t\tregionId = param\n\t\t}\n\t\tdomain := \"example.wafqax.top\"\n\t\tif param := cfg.Get(\"domain\"); param != \"\" {\n\t\t\tdomain = param\n\t\t}\n\t\t_default, err := wafv3.GetInstances(ctx, \u0026wafv3.GetInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultICMRhk, err := wafv3.NewDomain(ctx, \"defaultICMRhk\", \u0026wafv3.DomainArgs{\n\t\t\tRedirect: \u0026wafv3.DomainRedirectArgs{\n\t\t\t\tLoadbalance: pulumi.String(\"iphash\"),\n\t\t\t\tBackends: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"39.98.217.197\"),\n\t\t\t\t},\n\t\t\t\tConnectTimeout: pulumi.Int(5),\n\t\t\t\tReadTimeout:    pulumi.Int(120),\n\t\t\t\tWriteTimeout:   pulumi.Int(120),\n\t\t\t},\n\t\t\tDomain:     pulumi.String(\"example.wafqax.top\"),\n\t\t\tAccessType: pulumi.String(\"share\"),\n\t\t\tInstanceId: pulumi.String(_default.Ids[0]),\n\t\t\tListen: \u0026wafv3.DomainListenArgs{\n\t\t\t\tHttpPorts: pulumi.IntArray{\n\t\t\t\t\tpulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = wafv3.NewDefenseRule(ctx, \"default\", \u0026wafv3.DefenseRuleArgs{\n\t\t\tDefenseType:   pulumi.String(\"resource\"),\n\t\t\tDefenseScene:  pulumi.String(\"account_identifier\"),\n\t\t\tRuleStatus:    pulumi.Int(1),\n\t\t\tResource:      defaultICMRhk.DomainId,\n\t\t\tDefenseOrigin: pulumi.String(\"custom\"),\n\t\t\tConfig: \u0026wafv3.DefenseRuleConfigArgs{\n\t\t\t\tAccountIdentifiers: wafv3.DefenseRuleConfigAccountIdentifierArray{\n\t\t\t\t\t\u0026wafv3.DefenseRuleConfigAccountIdentifierArgs{\n\t\t\t\t\t\tPosition:   pulumi.String(\"jwt\"),\n\t\t\t\t\t\tPriority:   pulumi.Int(2),\n\t\t\t\t\t\tDecodeType: pulumi.String(\"jwt\"),\n\t\t\t\t\t\tKey:        pulumi.String(\"Query-Arg\"),\n\t\t\t\t\t\tSubKey:     pulumi.String(\"adb\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInstanceId: pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.wafv3.Wafv3Functions;\nimport com.pulumi.alicloud.wafv3.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.wafv3.Domain;\nimport com.pulumi.alicloud.wafv3.DomainArgs;\nimport com.pulumi.alicloud.wafv3.inputs.DomainRedirectArgs;\nimport com.pulumi.alicloud.wafv3.inputs.DomainListenArgs;\nimport com.pulumi.alicloud.wafv3.DefenseRule;\nimport com.pulumi.alicloud.wafv3.DefenseRuleArgs;\nimport com.pulumi.alicloud.wafv3.inputs.DefenseRuleConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tfexample\");\n        final var regionId = config.get(\"regionId\").orElse(\"cn-hangzhou\");\n        final var domain = config.get(\"domain\").orElse(\"example.wafqax.top\");\n        final var default = Wafv3Functions.getInstances(GetInstancesArgs.builder()\n            .build());\n\n        var defaultICMRhk = new Domain(\"defaultICMRhk\", DomainArgs.builder()\n            .redirect(DomainRedirectArgs.builder()\n                .loadbalance(\"iphash\")\n                .backends(\"39.98.217.197\")\n                .connectTimeout(5)\n                .readTimeout(120)\n                .writeTimeout(120)\n                .build())\n            .domain(\"example.wafqax.top\")\n            .accessType(\"share\")\n            .instanceId(default_.ids()[0])\n            .listen(DomainListenArgs.builder()\n                .httpPorts(80)\n                .build())\n            .build());\n\n        var defaultDefenseRule = new DefenseRule(\"defaultDefenseRule\", DefenseRuleArgs.builder()\n            .defenseType(\"resource\")\n            .defenseScene(\"account_identifier\")\n            .ruleStatus(1)\n            .resource(defaultICMRhk.domainId())\n            .defenseOrigin(\"custom\")\n            .config(DefenseRuleConfigArgs.builder()\n                .accountIdentifiers(DefenseRuleConfigAccountIdentifierArgs.builder()\n                    .position(\"jwt\")\n                    .priority(2)\n                    .decodeType(\"jwt\")\n                    .key(\"Query-Arg\")\n                    .subKey(\"adb\")\n                    .build())\n                .build())\n            .instanceId(default_.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfexample\n  regionId:\n    type: string\n    default: cn-hangzhou\n  domain:\n    type: string\n    default: example.wafqax.top\nresources:\n  defaultICMRhk:\n    type: alicloud:wafv3:Domain\n    properties:\n      redirect:\n        loadbalance: iphash\n        backends:\n          - 39.98.217.197\n        connectTimeout: 5\n        readTimeout: 120\n        writeTimeout: 120\n      domain: example.wafqax.top\n      accessType: share\n      instanceId: ${default.ids[0]}\n      listen:\n        httpPorts:\n          - '80'\n  defaultDefenseRule:\n    type: alicloud:wafv3:DefenseRule\n    name: default\n    properties:\n      defenseType: resource\n      defenseScene: account_identifier\n      ruleStatus: '1'\n      resource: ${defaultICMRhk.domainId}\n      defenseOrigin: custom\n      config:\n        accountIdentifiers:\n          - position: jwt\n            priority: '2'\n            decodeType: jwt\n            key: Query-Arg\n            subKey: adb\n      instanceId: ${default.ids[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:wafv3:getInstances\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nWAFV3 Defense Rule can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:wafv3/defenseRule:DefenseRule example \u003cinstance_id\u003e:\u003cdefense_type\u003e:\u003crule_id\u003e\n```\n\n","properties":{"config":{"$ref":"#/types/alicloud:wafv3/DefenseRuleConfig:DefenseRuleConfig","description":"Rule configuration content, in JSON format, constructed with a series of parameters.\n\n\u003e **NOTE:**  Depending on the specified **protection rule type**(`DefenseScene`), the specific parameters vary. For more information, see **Protection Rule Parameter Description**.\nSee \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e below.\n"},"defenseOrigin":{"type":"string","description":"Sources of protection. Value:\n"},"defenseScene":{"type":"string","description":"The WAF protection scenario to be created.\n\nWhen the protection rule type `DefenseType` is set to \u003cspan pulumi-lang-nodejs=\"`template`\" pulumi-lang-dotnet=\"`Template`\" pulumi-lang-go=\"`template`\" pulumi-lang-python=\"`template`\" pulumi-lang-yaml=\"`template`\" pulumi-lang-java=\"`template`\"\u003e`template`\u003c/span\u003e, the value is as follows:\n"},"defenseType":{"type":"string","description":"The protection rule type. Value:\n"},"instanceId":{"type":"string","description":"The ID of the Web Application Firewall (WAF) instance.\n"},"resource":{"type":"string","description":"The protection object corresponding to the rule to be queried.\n\n\u003e **NOTE:**  This parameter is required only when `DefenseType` is set to \u003cspan pulumi-lang-nodejs=\"`resource`\" pulumi-lang-dotnet=\"`Resource`\" pulumi-lang-go=\"`resource`\" pulumi-lang-python=\"`resource`\" pulumi-lang-yaml=\"`resource`\" pulumi-lang-java=\"`resource`\"\u003e`resource`\u003c/span\u003e.\n"},"ruleId":{"type":"integer","description":"The protection rule ID.\n"},"ruleName":{"type":"string","description":"The rule name.\n"},"ruleStatus":{"type":"integer","description":"Protection rule status.\n"},"templateId":{"type":"integer","description":"The protection template ID of the protection rule to be created.\n"}},"required":["config","defenseScene","defenseType","instanceId","resource","ruleId","ruleName"],"inputProperties":{"config":{"$ref":"#/types/alicloud:wafv3/DefenseRuleConfig:DefenseRuleConfig","description":"Rule configuration content, in JSON format, constructed with a series of parameters.\n\n\u003e **NOTE:**  Depending on the specified **protection rule type**(`DefenseScene`), the specific parameters vary. For more information, see **Protection Rule Parameter Description**.\nSee \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e below.\n"},"defenseOrigin":{"type":"string","description":"Sources of protection. Value:\n","willReplaceOnChanges":true},"defenseScene":{"type":"string","description":"The WAF protection scenario to be created.\n\nWhen the protection rule type `DefenseType` is set to \u003cspan pulumi-lang-nodejs=\"`template`\" pulumi-lang-dotnet=\"`Template`\" pulumi-lang-go=\"`template`\" pulumi-lang-python=\"`template`\" pulumi-lang-yaml=\"`template`\" pulumi-lang-java=\"`template`\"\u003e`template`\u003c/span\u003e, the value is as follows:\n","willReplaceOnChanges":true},"defenseType":{"type":"string","description":"The protection rule type. Value:\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Web Application Firewall (WAF) instance.\n","willReplaceOnChanges":true},"resource":{"type":"string","description":"The protection object corresponding to the rule to be queried.\n\n\u003e **NOTE:**  This parameter is required only when `DefenseType` is set to \u003cspan pulumi-lang-nodejs=\"`resource`\" pulumi-lang-dotnet=\"`Resource`\" pulumi-lang-go=\"`resource`\" pulumi-lang-python=\"`resource`\" pulumi-lang-yaml=\"`resource`\" pulumi-lang-java=\"`resource`\"\u003e`resource`\u003c/span\u003e.\n","willReplaceOnChanges":true},"ruleName":{"type":"string","description":"The rule name.\n"},"ruleStatus":{"type":"integer","description":"Protection rule status.\n"},"templateId":{"type":"integer","description":"The protection template ID of the protection rule to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["config","defenseScene","defenseType","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DefenseRule resources.\n","properties":{"config":{"$ref":"#/types/alicloud:wafv3/DefenseRuleConfig:DefenseRuleConfig","description":"Rule configuration content, in JSON format, constructed with a series of parameters.\n\n\u003e **NOTE:**  Depending on the specified **protection rule type**(`DefenseScene`), the specific parameters vary. For more information, see **Protection Rule Parameter Description**.\nSee \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e below.\n"},"defenseOrigin":{"type":"string","description":"Sources of protection. Value:\n","willReplaceOnChanges":true},"defenseScene":{"type":"string","description":"The WAF protection scenario to be created.\n\nWhen the protection rule type `DefenseType` is set to \u003cspan pulumi-lang-nodejs=\"`template`\" pulumi-lang-dotnet=\"`Template`\" pulumi-lang-go=\"`template`\" pulumi-lang-python=\"`template`\" pulumi-lang-yaml=\"`template`\" pulumi-lang-java=\"`template`\"\u003e`template`\u003c/span\u003e, the value is as follows:\n","willReplaceOnChanges":true},"defenseType":{"type":"string","description":"The protection rule type. Value:\n","willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Web Application Firewall (WAF) instance.\n","willReplaceOnChanges":true},"resource":{"type":"string","description":"The protection object corresponding to the rule to be queried.\n\n\u003e **NOTE:**  This parameter is required only when `DefenseType` is set to \u003cspan pulumi-lang-nodejs=\"`resource`\" pulumi-lang-dotnet=\"`Resource`\" pulumi-lang-go=\"`resource`\" pulumi-lang-python=\"`resource`\" pulumi-lang-yaml=\"`resource`\" pulumi-lang-java=\"`resource`\"\u003e`resource`\u003c/span\u003e.\n","willReplaceOnChanges":true},"ruleId":{"type":"integer","description":"The protection rule ID.\n"},"ruleName":{"type":"string","description":"The rule name.\n"},"ruleStatus":{"type":"integer","description":"Protection rule status.\n"},"templateId":{"type":"integer","description":"The protection template ID of the protection rule to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:wafv3/defenseTemplate:DefenseTemplate":{"description":"Provides a WAFV3 Defense Template resource.\n\n\n\nFor information about WAFV3 Defense Template and how to use it, see [What is Defense Template](https://www.alibabacloud.com/help/en/web-application-firewall/latest/api-waf-openapi-2021-10-01-createdefensetemplate).\n\n\u003e **NOTE:** Available since v1.218.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.wafv3.getInstances({});\nconst defaultDefenseTemplate = new alicloud.wafv3.DefenseTemplate(\"default\", {\n    status: \"1\",\n    instanceId: _default.then(_default =\u003e _default.ids?.[0]),\n    defenseTemplateName: name,\n    templateType: \"user_custom\",\n    templateOrigin: \"custom\",\n    defenseScene: \"antiscan\",\n    resourceManagerResourceGroupId: \"example\",\n    description: name,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.wafv3.get_instances()\ndefault_defense_template = alicloud.wafv3.DefenseTemplate(\"default\",\n    status=\"1\",\n    instance_id=default.ids[0],\n    defense_template_name=name,\n    template_type=\"user_custom\",\n    template_origin=\"custom\",\n    defense_scene=\"antiscan\",\n    resource_manager_resource_group_id=\"example\",\n    description=name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Wafv3.GetInstances.Invoke();\n\n    var defaultDefenseTemplate = new AliCloud.Wafv3.DefenseTemplate(\"default\", new()\n    {\n        Status = \"1\",\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Ids[0])),\n        DefenseTemplateName = name,\n        TemplateType = \"user_custom\",\n        TemplateOrigin = \"custom\",\n        DefenseScene = \"antiscan\",\n        ResourceManagerResourceGroupId = \"example\",\n        Description = name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/wafv3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := wafv3.GetInstances(ctx, \u0026wafv3.GetInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = wafv3.NewDefenseTemplate(ctx, \"default\", \u0026wafv3.DefenseTemplateArgs{\n\t\t\tStatus:                         pulumi.String(\"1\"),\n\t\t\tInstanceId:                     pulumi.String(_default.Ids[0]),\n\t\t\tDefenseTemplateName:            pulumi.String(name),\n\t\t\tTemplateType:                   pulumi.String(\"user_custom\"),\n\t\t\tTemplateOrigin:                 pulumi.String(\"custom\"),\n\t\t\tDefenseScene:                   pulumi.String(\"antiscan\"),\n\t\t\tResourceManagerResourceGroupId: pulumi.String(\"example\"),\n\t\t\tDescription:                    pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.wafv3.Wafv3Functions;\nimport com.pulumi.alicloud.wafv3.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.wafv3.DefenseTemplate;\nimport com.pulumi.alicloud.wafv3.DefenseTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = Wafv3Functions.getInstances(GetInstancesArgs.builder()\n            .build());\n\n        var defaultDefenseTemplate = new DefenseTemplate(\"defaultDefenseTemplate\", DefenseTemplateArgs.builder()\n            .status(\"1\")\n            .instanceId(default_.ids()[0])\n            .defenseTemplateName(name)\n            .templateType(\"user_custom\")\n            .templateOrigin(\"custom\")\n            .defenseScene(\"antiscan\")\n            .resourceManagerResourceGroupId(\"example\")\n            .description(name)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultDefenseTemplate:\n    type: alicloud:wafv3:DefenseTemplate\n    name: default\n    properties:\n      status: '1'\n      instanceId: ${default.ids[0]}\n      defenseTemplateName: ${name}\n      templateType: user_custom\n      templateOrigin: custom\n      defenseScene: antiscan\n      resourceManagerResourceGroupId: example\n      description: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:wafv3:getInstances\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nWAFV3 Defense Template can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:wafv3/defenseTemplate:DefenseTemplate example \u003cinstance_id\u003e:\u003cdefense_template_id\u003e\n```\n\n","properties":{"defenseScene":{"type":"string","description":"The WAF protection scenario to be created. Valid values:\n"},"defenseTemplateId":{"type":"integer","description":"Template ID\n"},"defenseTemplateName":{"type":"string","description":"The name of the protection rule template.\n"},"description":{"type":"string","description":"The description of the protection rule template.\n"},"instanceId":{"type":"string","description":"The ID of the Web Application Firewall (WAF) instance.\n"},"resourceGroups":{"type":"array","items":{"type":"string"},"description":"The name of the protected object group. After a protection template resource is created, you can modify the bound protection object group.\n"},"resourceManagerResourceGroupId":{"type":"string","description":"The ID of the Alibaba Cloud resource group.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"The list of protected objects to be bound. After a protection template resource is created, you can modify the bound protected objects.\n"},"status":{"type":"string","description":"The status of the protection rule template. Valid values:\n"},"templateOrigin":{"type":"string","description":"The origin of the protection rule template that you want to create. Set the value to \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e. The value specifies that the protection rule template is a custom template.\n"},"templateType":{"type":"string","description":"The type of the protection rule template. Valid values:\n- **user_default:** default template.\n- **user_custom:** custom template.\n"}},"required":["defenseScene","defenseTemplateId","defenseTemplateName","instanceId","status","templateOrigin","templateType"],"inputProperties":{"defenseScene":{"type":"string","description":"The WAF protection scenario to be created. Valid values:\n","willReplaceOnChanges":true},"defenseTemplateName":{"type":"string","description":"The name of the protection rule template.\n"},"description":{"type":"string","description":"The description of the protection rule template.\n"},"instanceId":{"type":"string","description":"The ID of the Web Application Firewall (WAF) instance.\n","willReplaceOnChanges":true},"resourceGroups":{"type":"array","items":{"type":"string"},"description":"The name of the protected object group. After a protection template resource is created, you can modify the bound protection object group.\n"},"resourceManagerResourceGroupId":{"type":"string","description":"The ID of the Alibaba Cloud resource group.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"The list of protected objects to be bound. After a protection template resource is created, you can modify the bound protected objects.\n"},"status":{"type":"string","description":"The status of the protection rule template. Valid values:\n"},"templateOrigin":{"type":"string","description":"The origin of the protection rule template that you want to create. Set the value to \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e. The value specifies that the protection rule template is a custom template.\n","willReplaceOnChanges":true},"templateType":{"type":"string","description":"The type of the protection rule template. Valid values:\n- **user_default:** default template.\n- **user_custom:** custom template.\n","willReplaceOnChanges":true}},"requiredInputs":["defenseScene","defenseTemplateName","instanceId","status","templateOrigin","templateType"],"stateInputs":{"description":"Input properties used for looking up and filtering DefenseTemplate resources.\n","properties":{"defenseScene":{"type":"string","description":"The WAF protection scenario to be created. Valid values:\n","willReplaceOnChanges":true},"defenseTemplateId":{"type":"integer","description":"Template ID\n"},"defenseTemplateName":{"type":"string","description":"The name of the protection rule template.\n"},"description":{"type":"string","description":"The description of the protection rule template.\n"},"instanceId":{"type":"string","description":"The ID of the Web Application Firewall (WAF) instance.\n","willReplaceOnChanges":true},"resourceGroups":{"type":"array","items":{"type":"string"},"description":"The name of the protected object group. After a protection template resource is created, you can modify the bound protection object group.\n"},"resourceManagerResourceGroupId":{"type":"string","description":"The ID of the Alibaba Cloud resource group.\n\n\u003e **NOTE:** This parameter only applies during resource update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"The list of protected objects to be bound. After a protection template resource is created, you can modify the bound protected objects.\n"},"status":{"type":"string","description":"The status of the protection rule template. Valid values:\n"},"templateOrigin":{"type":"string","description":"The origin of the protection rule template that you want to create. Set the value to \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e. The value specifies that the protection rule template is a custom template.\n","willReplaceOnChanges":true},"templateType":{"type":"string","description":"The type of the protection rule template. Valid values:\n- **user_default:** default template.\n- **user_custom:** custom template.\n","willReplaceOnChanges":true}},"type":"object"}},"alicloud:wafv3/domain:Domain":{"description":"Provides a WAFV3 Domain resource.\n\n\n\nFor information about WAFV3 Domain and how to use it, see [What is Domain](https://www.alibabacloud.com/help/en/web-application-firewall/latest/api-waf-openapi-2021-10-01-createdomain).\n\n\u003e **NOTE:** Available since v1.200.0.\n\n## Import\n\nWAFV3 Domain can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:wafv3/domain:Domain example \u003cinstance_id\u003e:\u003cdomain\u003e\n```\n\n","properties":{"accessType":{"type":"string","description":"The mode in which the domain name is added to WAF. Valid values:\nshare: CNAME record mode. This is the default value.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"cname":{"type":"string","description":"The CNAME assigned by WAF to the domain name.\n"},"domain":{"type":"string","description":"The name of the domain name to query.\n","language":{"csharp":{"name":"DomainName"}}},"domainId":{"type":"string","description":"The domain ID.\n"},"instanceId":{"type":"string","description":"The ID of the Web Application Firewall (WAF) instance.\n"},"listen":{"$ref":"#/types/alicloud:wafv3/DomainListen:DomainListen","description":"Configure listening information. See \u003cspan pulumi-lang-nodejs=\"`listen`\" pulumi-lang-dotnet=\"`Listen`\" pulumi-lang-go=\"`listen`\" pulumi-lang-python=\"`listen`\" pulumi-lang-yaml=\"`listen`\" pulumi-lang-java=\"`listen`\"\u003e`listen`\u003c/span\u003e below.\n"},"redirect":{"$ref":"#/types/alicloud:wafv3/DomainRedirect:DomainRedirect","description":"Configure forwarding information. See \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e below.\n"},"resourceManagerResourceGroupId":{"type":"string","description":"The ID of the Alibaba Cloud resource group.\n"},"status":{"type":"integer","description":"The status of the domain name.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags. You can specify up to 20 tags.\n"}},"required":["cname","domain","domainId","instanceId","listen","redirect","resourceManagerResourceGroupId","status"],"inputProperties":{"accessType":{"type":"string","description":"The mode in which the domain name is added to WAF. Valid values:\nshare: CNAME record mode. This is the default value.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"domain":{"type":"string","description":"The name of the domain name to query.\n","language":{"csharp":{"name":"DomainName"}},"willReplaceOnChanges":true},"instanceId":{"type":"string","description":"The ID of the Web Application Firewall (WAF) instance.\n","willReplaceOnChanges":true},"listen":{"$ref":"#/types/alicloud:wafv3/DomainListen:DomainListen","description":"Configure listening information. See \u003cspan pulumi-lang-nodejs=\"`listen`\" pulumi-lang-dotnet=\"`Listen`\" pulumi-lang-go=\"`listen`\" pulumi-lang-python=\"`listen`\" pulumi-lang-yaml=\"`listen`\" pulumi-lang-java=\"`listen`\"\u003e`listen`\u003c/span\u003e below.\n"},"redirect":{"$ref":"#/types/alicloud:wafv3/DomainRedirect:DomainRedirect","description":"Configure forwarding information. See \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e below.\n"},"resourceManagerResourceGroupId":{"type":"string","description":"The ID of the Alibaba Cloud resource group.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags. You can specify up to 20 tags.\n"}},"requiredInputs":["domain","instanceId","listen","redirect"],"stateInputs":{"description":"Input properties used for looking up and filtering Domain resources.\n","properties":{"accessType":{"type":"string","description":"The mode in which the domain name is added to WAF. Valid values:\nshare: CNAME record mode. This is the default value.\n\n\u003e **NOTE:** This parameter only applies during resource creation, update. If modified in isolation without other property changes, Terraform will not trigger any action.\n"},"cname":{"type":"string","description":"The CNAME assigned by WAF to the domain name.\n"},"domain":{"type":"string","description":"The name of the domain name to query.\n","language":{"csharp":{"name":"DomainName"}},"willReplaceOnChanges":true},"domainId":{"type":"string","description":"The domain ID.\n"},"instanceId":{"type":"string","description":"The ID of the Web Application Firewall (WAF) instance.\n","willReplaceOnChanges":true},"listen":{"$ref":"#/types/alicloud:wafv3/DomainListen:DomainListen","description":"Configure listening information. See \u003cspan pulumi-lang-nodejs=\"`listen`\" pulumi-lang-dotnet=\"`Listen`\" pulumi-lang-go=\"`listen`\" pulumi-lang-python=\"`listen`\" pulumi-lang-yaml=\"`listen`\" pulumi-lang-java=\"`listen`\"\u003e`listen`\u003c/span\u003e below.\n"},"redirect":{"$ref":"#/types/alicloud:wafv3/DomainRedirect:DomainRedirect","description":"Configure forwarding information. See \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e below.\n"},"resourceManagerResourceGroupId":{"type":"string","description":"The ID of the Alibaba Cloud resource group.\n","willReplaceOnChanges":true},"status":{"type":"integer","description":"The status of the domain name.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags. You can specify up to 20 tags.\n"}},"type":"object"}},"alicloud:wafv3/instance:Instance":{"description":"Provides a Wafv3 Instance resource.\n\nFor information about Wafv3 Instance and how to use it, see [What is Instance](https://www.alibabacloud.com/help/en/web-application-firewall/latest/what-is-waf).\n\n\u003e **NOTE:** Available since v1.200.0.\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.wafv3.Instance(\"example\", {});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.wafv3.Instance(\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.Wafv3.Instance(\"example\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/wafv3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := wafv3.NewInstance(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.wafv3.Instance;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Instance(\"example\");\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:wafv3:Instance\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nWafv3 Instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:wafv3/instance:Instance example \u003cid\u003e\n```\n\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"instanceId":{"type":"string","description":"The first ID of the resource\n"},"status":{"type":"string","description":"The status of the resource\n"}},"required":["createTime","instanceId","status"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"createTime":{"type":"string","description":"The creation time of the resource\n"},"instanceId":{"type":"string","description":"The first ID of the resource\n"},"status":{"type":"string","description":"The status of the resource\n"}},"type":"object"}},"alicloud:yundun/bastionHostInstance:BastionHostInstance":{"properties":{"adAuthServers":{"type":"array","items":{"$ref":"#/types/alicloud:yundun/BastionHostInstanceAdAuthServer:BastionHostInstanceAdAuthServer"}},"bandwidth":{"type":"string"},"description":{"type":"string"},"enablePublicAccess":{"type":"boolean"},"ldapAuthServers":{"type":"array","items":{"$ref":"#/types/alicloud:yundun/BastionHostInstanceLdapAuthServer:BastionHostInstanceLdapAuthServer"}},"licenseCode":{"type":"string"},"period":{"type":"integer"},"planCode":{"type":"string"},"publicWhiteLists":{"type":"array","items":{"type":"string"}},"renewPeriod":{"type":"integer"},"renewalPeriodUnit":{"type":"string"},"renewalStatus":{"type":"string"},"resourceGroupId":{"type":"string"},"securityGroupIds":{"type":"array","items":{"type":"string"}},"slaveVswitchId":{"type":"string"},"storage":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"}},"vswitchId":{"type":"string"}},"required":["adAuthServers","bandwidth","description","enablePublicAccess","ldapAuthServers","licenseCode","planCode","renewalPeriodUnit","renewalStatus","resourceGroupId","securityGroupIds","storage","vswitchId"],"inputProperties":{"adAuthServers":{"type":"array","items":{"$ref":"#/types/alicloud:yundun/BastionHostInstanceAdAuthServer:BastionHostInstanceAdAuthServer"}},"bandwidth":{"type":"string"},"description":{"type":"string"},"enablePublicAccess":{"type":"boolean"},"ldapAuthServers":{"type":"array","items":{"$ref":"#/types/alicloud:yundun/BastionHostInstanceLdapAuthServer:BastionHostInstanceLdapAuthServer"}},"licenseCode":{"type":"string"},"period":{"type":"integer"},"planCode":{"type":"string","willReplaceOnChanges":true},"publicWhiteLists":{"type":"array","items":{"type":"string"}},"renewPeriod":{"type":"integer"},"renewalPeriodUnit":{"type":"string"},"renewalStatus":{"type":"string"},"resourceGroupId":{"type":"string"},"securityGroupIds":{"type":"array","items":{"type":"string"}},"slaveVswitchId":{"type":"string","willReplaceOnChanges":true},"storage":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"}},"vswitchId":{"type":"string","willReplaceOnChanges":true}},"requiredInputs":["bandwidth","description","licenseCode","planCode","securityGroupIds","storage","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering BastionHostInstance resources.\n","properties":{"adAuthServers":{"type":"array","items":{"$ref":"#/types/alicloud:yundun/BastionHostInstanceAdAuthServer:BastionHostInstanceAdAuthServer"}},"bandwidth":{"type":"string"},"description":{"type":"string"},"enablePublicAccess":{"type":"boolean"},"ldapAuthServers":{"type":"array","items":{"$ref":"#/types/alicloud:yundun/BastionHostInstanceLdapAuthServer:BastionHostInstanceLdapAuthServer"}},"licenseCode":{"type":"string"},"period":{"type":"integer"},"planCode":{"type":"string","willReplaceOnChanges":true},"publicWhiteLists":{"type":"array","items":{"type":"string"}},"renewPeriod":{"type":"integer"},"renewalPeriodUnit":{"type":"string"},"renewalStatus":{"type":"string"},"resourceGroupId":{"type":"string"},"securityGroupIds":{"type":"array","items":{"type":"string"}},"slaveVswitchId":{"type":"string","willReplaceOnChanges":true},"storage":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"}},"vswitchId":{"type":"string","willReplaceOnChanges":true}},"type":"object"}},"alicloud:yundun/dBAuditInstance:DBAuditInstance":{"description":"Cloud DBaudit instance resource (\"Yundun_dbaudit\" is the short term of this product).\n\n\u003e **NOTE:** The endpoint of bssopenapi used only support \"business.aliyuncs.com\" at present.\n\n\u003e **NOTE:** Available since v1.62.0+.\n\n\u003e **NOTE:** In order to destroy Cloud DBaudit instance , users are required to apply for white list first\n\n## Example Usage\n\nBasic Usage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultDBAuditInstance = new alicloud.yundun.DBAuditInstance(\"default\", {\n    description: \"tf-example\",\n    planCode: \"alpha.professional\",\n    period: 1,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_db_audit_instance = alicloud.yundun.DBAuditInstance(\"default\",\n    description=\"tf-example\",\n    plan_code=\"alpha.professional\",\n    period=1,\n    vswitch_id=default_get_switches.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultDBAuditInstance = new AliCloud.Yundun.DBAuditInstance(\"default\", new()\n    {\n        Description = \"tf-example\",\n        PlanCode = \"alpha.professional\",\n        Period = 1,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/yundun\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = yundun.NewDBAuditInstance(ctx, \"default\", \u0026yundun.DBAuditInstanceArgs{\n\t\t\tDescription: pulumi.String(\"tf-example\"),\n\t\t\tPlanCode:    pulumi.String(\"alpha.professional\"),\n\t\t\tPeriod:      pulumi.Int(1),\n\t\t\tVswitchId:   pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.yundun.DBAuditInstance;\nimport com.pulumi.alicloud.yundun.DBAuditInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultDBAuditInstance = new DBAuditInstance(\"defaultDBAuditInstance\", DBAuditInstanceArgs.builder()\n            .description(\"tf-example\")\n            .planCode(\"alpha.professional\")\n            .period(1)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultDBAuditInstance:\n    type: alicloud:yundun:DBAuditInstance\n    name: default\n    properties:\n      description: tf-example\n      planCode: alpha.professional\n      period: '1'\n      vswitchId: ${defaultGetSwitches.ids[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Deleting \u003cspan pulumi-lang-nodejs=\"`alicloud.yundun.DBAuditInstance`\" pulumi-lang-dotnet=\"`alicloud.yundun.DBAuditInstance`\" pulumi-lang-go=\"`yundun.DBAuditInstance`\" pulumi-lang-python=\"`yundun.DBAuditInstance`\" pulumi-lang-yaml=\"`alicloud.yundun.DBAuditInstance`\" pulumi-lang-java=\"`alicloud.yundun.DBAuditInstance`\"\u003e`alicloud.yundun.DBAuditInstance`\u003c/span\u003e or removing it from your configuration\n\nThe \u003cspan pulumi-lang-nodejs=\"`alicloud.yundun.DBAuditInstance`\" pulumi-lang-dotnet=\"`alicloud.yundun.DBAuditInstance`\" pulumi-lang-go=\"`yundun.DBAuditInstance`\" pulumi-lang-python=\"`yundun.DBAuditInstance`\" pulumi-lang-yaml=\"`alicloud.yundun.DBAuditInstance`\" pulumi-lang-java=\"`alicloud.yundun.DBAuditInstance`\"\u003e`alicloud.yundun.DBAuditInstance`\u003c/span\u003e resource allows you to manage yundun dbaudit instance, but Terraform cannot destroy it.\nDeleting the subscription resource or removing it from your configuration\nwill remove it from your state file and management, but will not destroy the \u003cspan pulumi-lang-nodejs=\"`yundunDbauditInstance`\" pulumi-lang-dotnet=\"`YundunDbauditInstance`\" pulumi-lang-go=\"`yundunDbauditInstance`\" pulumi-lang-python=\"`yundun_dbaudit_instance`\" pulumi-lang-yaml=\"`yundunDbauditInstance`\" pulumi-lang-java=\"`yundunDbauditInstance`\"\u003e`yundun_dbaudit_instance`\u003c/span\u003e.\nYou can resume managing the subscription\u003cspan pulumi-lang-nodejs=\" yundunDbauditInstance \" pulumi-lang-dotnet=\" YundunDbauditInstance \" pulumi-lang-go=\" yundunDbauditInstance \" pulumi-lang-python=\" yundun_dbaudit_instance \" pulumi-lang-yaml=\" yundunDbauditInstance \" pulumi-lang-java=\" yundunDbauditInstance \"\u003e yundun_dbaudit_instance \u003c/span\u003evia the AlibabaCloud Console.\n\n\n📚 Need more examples? VIEW MORE EXAMPLES\n\n## Import\n\nYundun_dbaudit instance can be imported using the id, e.g.\n\n```sh\n$ pulumi import alicloud:yundun/dBAuditInstance:DBAuditInstance example dbaudit-exampe123456\n```\n\n","properties":{"description":{"type":"string","description":"Description of the instance. This name can have a string of 1 to 63 characters.\n"},"period":{"type":"integer","description":"Duration for initially producing the instance. Valid values: [1~9], 12, 24, 36. At present, the provider does not support modify \"period\".\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"planCode":{"type":"string","description":"Plan code of the Cloud DBAudit to produce. (alpha.professional, alpha.basic, alpha.premium)\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the DBaudit Instance belongs. If not set, the resource is created in the default resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"vSwtich ID configured to audit\n"}},"required":["description","period","planCode","vswitchId"],"inputProperties":{"description":{"type":"string","description":"Description of the instance. This name can have a string of 1 to 63 characters.\n"},"period":{"type":"integer","description":"Duration for initially producing the instance. Valid values: [1~9], 12, 24, 36. At present, the provider does not support modify \"period\".\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"planCode":{"type":"string","description":"Plan code of the Cloud DBAudit to produce. (alpha.professional, alpha.basic, alpha.premium)\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the DBaudit Instance belongs. If not set, the resource is created in the default resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"vSwtich ID configured to audit\n","willReplaceOnChanges":true}},"requiredInputs":["description","period","planCode","vswitchId"],"stateInputs":{"description":"Input properties used for looking up and filtering DBAuditInstance resources.\n","properties":{"description":{"type":"string","description":"Description of the instance. This name can have a string of 1 to 63 characters.\n"},"period":{"type":"integer","description":"Duration for initially producing the instance. Valid values: [1~9], 12, 24, 36. At present, the provider does not support modify \"period\".\n\u003e **NOTE:** The attribute \u003cspan pulumi-lang-nodejs=\"`period`\" pulumi-lang-dotnet=\"`Period`\" pulumi-lang-go=\"`period`\" pulumi-lang-python=\"`period`\" pulumi-lang-yaml=\"`period`\" pulumi-lang-java=\"`period`\"\u003e`period`\u003c/span\u003e 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.\n"},"planCode":{"type":"string","description":"Plan code of the Cloud DBAudit to produce. (alpha.professional, alpha.basic, alpha.premium)\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the DBaudit Instance belongs. If not set, the resource is created in the default resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vswitchId":{"type":"string","description":"vSwtich ID configured to audit\n","willReplaceOnChanges":true}},"type":"object"}}},"functions":{"alicloud:actiontrail/getConsumerGroups:getConsumerGroups":{"description":"This data source provides a list of ALIKAFKA Consumer Groups in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available in 1.56.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst consumerGroupsDs = alicloud.actiontrail.getConsumerGroups({\n    instanceId: \"xxx\",\n    consumerIdRegex: \"CID-alikafkaGroupDatasourceName\",\n    outputFile: \"consumerGroups.txt\",\n});\nexport const firstGroupName = consumerGroupsDs.then(consumerGroupsDs =\u003e consumerGroupsDs.consumerIds?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconsumer_groups_ds = alicloud.actiontrail.get_consumer_groups(instance_id=\"xxx\",\n    consumer_id_regex=\"CID-alikafkaGroupDatasourceName\",\n    output_file=\"consumerGroups.txt\")\npulumi.export(\"firstGroupName\", consumer_groups_ds.consumer_ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var consumerGroupsDs = AliCloud.ActionTrail.GetConsumerGroups.Invoke(new()\n    {\n        InstanceId = \"xxx\",\n        ConsumerIdRegex = \"CID-alikafkaGroupDatasourceName\",\n        OutputFile = \"consumerGroups.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstGroupName\"] = consumerGroupsDs.Apply(getConsumerGroupsResult =\u003e getConsumerGroupsResult.ConsumerIds[0]),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/actiontrail\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tconsumerGroupsDs, err := actiontrail.GetConsumerGroups(ctx, \u0026actiontrail.GetConsumerGroupsArgs{\n\t\t\tInstanceId:      \"xxx\",\n\t\t\tConsumerIdRegex: pulumi.StringRef(\"CID-alikafkaGroupDatasourceName\"),\n\t\t\tOutputFile:      pulumi.StringRef(\"consumerGroups.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstGroupName\", consumerGroupsDs.ConsumerIds[0])\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.actiontrail.ActiontrailFunctions;\nimport com.pulumi.alicloud.actiontrail.inputs.GetConsumerGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var consumerGroupsDs = ActiontrailFunctions.getConsumerGroups(GetConsumerGroupsArgs.builder()\n            .instanceId(\"xxx\")\n            .consumerIdRegex(\"CID-alikafkaGroupDatasourceName\")\n            .outputFile(\"consumerGroups.txt\")\n            .build());\n\n        ctx.export(\"firstGroupName\", consumerGroupsDs.consumerIds()[0]);\n    }\n}\n```\n```yaml\nvariables:\n  consumerGroupsDs:\n    fn::invoke:\n      function: alicloud:actiontrail:getConsumerGroups\n      arguments:\n        instanceId: xxx\n        consumerIdRegex: CID-alikafkaGroupDatasourceName\n        outputFile: consumerGroups.txt\noutputs:\n  firstGroupName: ${consumerGroupsDs.consumerIds[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getConsumerGroups.\n","properties":{"consumerIdRegex":{"type":"string","description":"A regex string to filter results by the consumer group id.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of ALIKAFKA Consumer Groups IDs, It is formatted to `\u003cinstance_id\u003e:\u003cconsumer_id\u003e`.\n"},"instanceId":{"type":"string","description":"ID of the ALIKAFKA Instance that owns the consumer groups.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getConsumerGroups.\n","properties":{"consumerIdRegex":{"type":"string"},"consumerIds":{"items":{"type":"string"},"type":"array"},"groups":{"description":"A list of consumer group. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:actiontrail/getConsumerGroupsGroup:getConsumerGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"description":"The\u003cspan pulumi-lang-nodejs=\" instanceId \" pulumi-lang-dotnet=\" InstanceId \" pulumi-lang-go=\" instanceId \" pulumi-lang-python=\" instance_id \" pulumi-lang-yaml=\" instanceId \" pulumi-lang-java=\" instanceId \"\u003e instance_id \u003c/span\u003eof the instance.\n","type":"string"},"names":{"description":"A list of consumer group names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["consumerIds","groups","ids","instanceId","names","id"],"type":"object"}},"alicloud:actiontrail/getGlobalEventsStorageRegion:getGlobalEventsStorageRegion":{"description":"This data source provides the Actiontrail Global Events Storage Region of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.201.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.actiontrail.getGlobalEventsStorageRegion({});\nexport const alicloudActiontrailGlobalEventsStorageRegion1 = _default.then(_default =\u003e _default.storageRegion);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.actiontrail.get_global_events_storage_region()\npulumi.export(\"alicloudActiontrailGlobalEventsStorageRegion1\", default.storage_region)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ActionTrail.GetGlobalEventsStorageRegion.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudActiontrailGlobalEventsStorageRegion1\"] = @default.Apply(@default =\u003e @default.Apply(getGlobalEventsStorageRegionResult =\u003e getGlobalEventsStorageRegionResult.StorageRegion)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/actiontrail\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := actiontrail.LookupGlobalEventsStorageRegion(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudActiontrailGlobalEventsStorageRegion1\", _default.StorageRegion)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.actiontrail.ActiontrailFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ActiontrailFunctions.getGlobalEventsStorageRegion(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        ctx.export(\"alicloudActiontrailGlobalEventsStorageRegion1\", default_.storageRegion());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:actiontrail:getGlobalEventsStorageRegion\n      arguments: {}\noutputs:\n  alicloudActiontrailGlobalEventsStorageRegion1: ${default.storageRegion}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getGlobalEventsStorageRegion.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"storageRegion":{"type":"string"}},"required":["storageRegion","id"],"type":"object"}},"alicloud:actiontrail/getHistoryDeliveryJobs:getHistoryDeliveryJobs":{"description":"This data source provides the Actiontrail History Delivery Jobs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.139.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.actiontrail.getHistoryDeliveryJobs({\n    ids: [\"example_id\"],\n});\nexport const actiontrailHistoryDeliveryJobId1 = ids.then(ids =\u003e ids.jobs?.[0]?.id);\nconst status = alicloud.actiontrail.getHistoryDeliveryJobs({\n    ids: [\"example_id\"],\n    status: 2,\n});\nexport const actiontrailHistoryDeliveryJobId2 = status.then(status =\u003e status.jobs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.actiontrail.get_history_delivery_jobs(ids=[\"example_id\"])\npulumi.export(\"actiontrailHistoryDeliveryJobId1\", ids.jobs[0].id)\nstatus = alicloud.actiontrail.get_history_delivery_jobs(ids=[\"example_id\"],\n    status=2)\npulumi.export(\"actiontrailHistoryDeliveryJobId2\", status.jobs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.ActionTrail.GetHistoryDeliveryJobs.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var status = AliCloud.ActionTrail.GetHistoryDeliveryJobs.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        Status = 2,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"actiontrailHistoryDeliveryJobId1\"] = ids.Apply(getHistoryDeliveryJobsResult =\u003e getHistoryDeliveryJobsResult.Jobs[0]?.Id),\n        [\"actiontrailHistoryDeliveryJobId2\"] = status.Apply(getHistoryDeliveryJobsResult =\u003e getHistoryDeliveryJobsResult.Jobs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/actiontrail\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := actiontrail.GetHistoryDeliveryJobs(ctx, \u0026actiontrail.GetHistoryDeliveryJobsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"actiontrailHistoryDeliveryJobId1\", ids.Jobs[0].Id)\n\t\tstatus, err := actiontrail.GetHistoryDeliveryJobs(ctx, \u0026actiontrail.GetHistoryDeliveryJobsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tStatus: pulumi.IntRef(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"actiontrailHistoryDeliveryJobId2\", status.Jobs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.actiontrail.ActiontrailFunctions;\nimport com.pulumi.alicloud.actiontrail.inputs.GetHistoryDeliveryJobsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ActiontrailFunctions.getHistoryDeliveryJobs(GetHistoryDeliveryJobsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"actiontrailHistoryDeliveryJobId1\", ids.jobs()[0].id());\n        final var status = ActiontrailFunctions.getHistoryDeliveryJobs(GetHistoryDeliveryJobsArgs.builder()\n            .ids(\"example_id\")\n            .status(2)\n            .build());\n\n        ctx.export(\"actiontrailHistoryDeliveryJobId2\", status.jobs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:actiontrail:getHistoryDeliveryJobs\n      arguments:\n        ids:\n          - example_id\n  status:\n    fn::invoke:\n      function: alicloud:actiontrail:getHistoryDeliveryJobs\n      arguments:\n        ids:\n          - example_id\n        status: '2'\noutputs:\n  actiontrailHistoryDeliveryJobId1: ${ids.jobs[0].id}\n  actiontrailHistoryDeliveryJobId2: ${status.jobs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHistoryDeliveryJobs.\n","properties":{"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of History Delivery Job IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"integer","description":"The status of the task. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: The task is initializing. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: The task is delivering historical events. \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: The delivery of historical events is complete. \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: The task fails.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHistoryDeliveryJobs.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"jobs":{"items":{"$ref":"#/types/alicloud:actiontrail/getHistoryDeliveryJobsJob:getHistoryDeliveryJobsJob"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"integer"}},"required":["ids","jobs","id"],"type":"object"}},"alicloud:actiontrail/getInstances:getInstances":{"description":"This data source provides a list of ALIKAFKA Instances in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available in 1.59.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst instanceName = config.get(\"instanceName\") || \"alikafkaInstanceName\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {cidrBlock: \"172.16.0.0/12\"});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultInstance = new alicloud.alikafka.Instance(\"default\", {\n    name: instanceName,\n    partitionNum: 50,\n    diskType: 1,\n    diskSize: 500,\n    deployType: 4,\n    ioMax: 20,\n    vswitchId: defaultSwitch.id,\n});\nconst instancesDs = alicloud.actiontrail.getInstances({\n    nameRegex: \"alikafkaInstanceName\",\n    outputFile: \"instances.txt\",\n});\nexport const firstInstanceName = instancesDs.then(instancesDs =\u003e instancesDs.instances?.[0]?.name);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\ninstance_name = config.get(\"instanceName\")\nif instance_name is None:\n    instance_name = \"alikafkaInstanceName\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\", cidr_block=\"172.16.0.0/12\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id)\ndefault_instance = alicloud.alikafka.Instance(\"default\",\n    name=instance_name,\n    partition_num=50,\n    disk_type=1,\n    disk_size=500,\n    deploy_type=4,\n    io_max=20,\n    vswitch_id=default_switch.id)\ninstances_ds = alicloud.actiontrail.get_instances(name_regex=\"alikafkaInstanceName\",\n    output_file=\"instances.txt\")\npulumi.export(\"firstInstanceName\", instances_ds.instances[0].name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var instanceName = config.Get(\"instanceName\") ?? \"alikafkaInstanceName\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultInstance = new AliCloud.Alikafka.Instance(\"default\", new()\n    {\n        Name = instanceName,\n        PartitionNum = 50,\n        DiskType = 1,\n        DiskSize = 500,\n        DeployType = 4,\n        IoMax = 20,\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var instancesDs = AliCloud.ActionTrail.GetInstances.Invoke(new()\n    {\n        NameRegex = \"alikafkaInstanceName\",\n        OutputFile = \"instances.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstInstanceName\"] = instancesDs.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Name),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/actiontrail\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alikafka\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tinstanceName := \"alikafkaInstanceName\"\n\t\tif param := cfg.Get(\"instanceName\"); param != \"\" {\n\t\t\tinstanceName = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:     defaultNetwork.ID(),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alikafka.NewInstance(ctx, \"default\", \u0026alikafka.InstanceArgs{\n\t\t\tName:         pulumi.String(instanceName),\n\t\t\tPartitionNum: pulumi.Int(50),\n\t\t\tDiskType:     pulumi.Int(1),\n\t\t\tDiskSize:     pulumi.Int(500),\n\t\t\tDeployType:   pulumi.Int(4),\n\t\t\tIoMax:        pulumi.Int(20),\n\t\t\tVswitchId:    defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstancesDs, err := actiontrail.GetInstances(ctx, \u0026actiontrail.GetInstancesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"alikafkaInstanceName\"),\n\t\t\tOutputFile: pulumi.StringRef(\"instances.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstInstanceName\", instancesDs.Instances[0].Name)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.alikafka.Instance;\nimport com.pulumi.alicloud.alikafka.InstanceArgs;\nimport com.pulumi.alicloud.actiontrail.ActiontrailFunctions;\nimport com.pulumi.alicloud.actiontrail.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var instanceName = config.get(\"instanceName\").orElse(\"alikafkaInstanceName\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .name(instanceName)\n            .partitionNum(50)\n            .diskType(1)\n            .diskSize(500)\n            .deployType(4)\n            .ioMax(20)\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        final var instancesDs = ActiontrailFunctions.getInstances(GetInstancesArgs.builder()\n            .nameRegex(\"alikafkaInstanceName\")\n            .outputFile(\"instances.txt\")\n            .build());\n\n        ctx.export(\"firstInstanceName\", instancesDs.instances()[0].name());\n    }\n}\n```\n```yaml\nconfiguration:\n  instanceName:\n    type: string\n    default: alikafkaInstanceName\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n  defaultInstance:\n    type: alicloud:alikafka:Instance\n    name: default\n    properties:\n      name: ${instanceName}\n      partitionNum: '50'\n      diskType: '1'\n      diskSize: '500'\n      deployType: '4'\n      ioMax: '20'\n      vswitchId: ${defaultSwitch.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  instancesDs:\n    fn::invoke:\n      function: alicloud:actiontrail:getInstances\n      arguments:\n        nameRegex: alikafkaInstanceName\n        outputFile: instances.txt\noutputs:\n  firstInstanceName: ${instancesDs.instances[0].name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of instance IDs to filter results.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by the instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of instance IDs.\n","items":{"type":"string"},"type":"array"},"instances":{"description":"A list of instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:actiontrail/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of instance names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:actiontrail/getSaslAcls:getSaslAcls":{"description":"This data source provides a list of ALIKAFKA Sasl acls in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available in 1.66.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst saslAclsDs = alicloud.actiontrail.getSaslAcls({\n    instanceId: \"xxx\",\n    username: \"username\",\n    aclResourceType: \"Topic\",\n    aclResourceName: \"testTopic\",\n    outputFile: \"saslAcls.txt\",\n});\nexport const firstSaslAclUsername = saslAclsDs.then(saslAclsDs =\u003e saslAclsDs.acls?.[0]?.username);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nsasl_acls_ds = alicloud.actiontrail.get_sasl_acls(instance_id=\"xxx\",\n    username=\"username\",\n    acl_resource_type=\"Topic\",\n    acl_resource_name=\"testTopic\",\n    output_file=\"saslAcls.txt\")\npulumi.export(\"firstSaslAclUsername\", sasl_acls_ds.acls[0].username)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var saslAclsDs = AliCloud.ActionTrail.GetSaslAcls.Invoke(new()\n    {\n        InstanceId = \"xxx\",\n        Username = \"username\",\n        AclResourceType = \"Topic\",\n        AclResourceName = \"testTopic\",\n        OutputFile = \"saslAcls.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstSaslAclUsername\"] = saslAclsDs.Apply(getSaslAclsResult =\u003e getSaslAclsResult.Acls[0]?.Username),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/actiontrail\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsaslAclsDs, err := actiontrail.GetSaslAcls(ctx, \u0026actiontrail.GetSaslAclsArgs{\n\t\t\tInstanceId:      \"xxx\",\n\t\t\tUsername:        \"username\",\n\t\t\tAclResourceType: \"Topic\",\n\t\t\tAclResourceName: \"testTopic\",\n\t\t\tOutputFile:      pulumi.StringRef(\"saslAcls.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstSaslAclUsername\", saslAclsDs.Acls[0].Username)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.actiontrail.ActiontrailFunctions;\nimport com.pulumi.alicloud.actiontrail.inputs.GetSaslAclsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var saslAclsDs = ActiontrailFunctions.getSaslAcls(GetSaslAclsArgs.builder()\n            .instanceId(\"xxx\")\n            .username(\"username\")\n            .aclResourceType(\"Topic\")\n            .aclResourceName(\"testTopic\")\n            .outputFile(\"saslAcls.txt\")\n            .build());\n\n        ctx.export(\"firstSaslAclUsername\", saslAclsDs.acls()[0].username());\n    }\n}\n```\n```yaml\nvariables:\n  saslAclsDs:\n    fn::invoke:\n      function: alicloud:actiontrail:getSaslAcls\n      arguments:\n        instanceId: xxx\n        username: username\n        aclResourceType: Topic\n        aclResourceName: testTopic\n        outputFile: saslAcls.txt\noutputs:\n  firstSaslAclUsername: ${saslAclsDs.acls[0].username}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSaslAcls.\n","properties":{"aclResourceName":{"type":"string","description":"Get results for the specified resource name.\n"},"aclResourceType":{"type":"string","description":"Get results for the specified resource type.\n"},"instanceId":{"type":"string","description":"ID of the ALIKAFKA Instance that owns the sasl acls.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"username":{"type":"string","description":"Get results for the specified username.\n"}},"type":"object","required":["aclResourceName","aclResourceType","instanceId","username"]},"outputs":{"description":"A collection of values returned by getSaslAcls.\n","properties":{"aclResourceName":{"description":"The resource name of the sasl acl.\n","type":"string"},"aclResourceType":{"description":"The resource type of the sasl acl.\n","type":"string"},"acls":{"description":"A list of sasl acls. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:actiontrail/getSaslAclsAcl:getSaslAclsAcl"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceId":{"type":"string"},"outputFile":{"type":"string"},"username":{"description":"The username of the sasl acl.\n","type":"string"}},"required":["aclResourceName","aclResourceType","acls","instanceId","username","id"],"type":"object"}},"alicloud:actiontrail/getSaslUsers:getSaslUsers":{"description":"This data source provides the Alikafka Sasl Users of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.66.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"10.4.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: defaultNetwork.id});\nconst defaultInstance = new alicloud.alikafka.Instance(\"default\", {\n    name: name,\n    partitionNum: 50,\n    diskType: 1,\n    diskSize: 500,\n    deployType: 5,\n    ioMax: 20,\n    specType: \"professional\",\n    serviceVersion: \"2.2.0\",\n    vswitchId: defaultSwitch.id,\n    securityGroup: defaultSecurityGroup.id,\n    config: `  {\n    \\\\\"enable.acl\\\\\": \\\\\"true\\\\\"\n  }\n`,\n});\nconst defaultSaslUser = new alicloud.alikafka.SaslUser(\"default\", {\n    instanceId: defaultInstance.id,\n    username: name,\n    password: \"YourPassword1234!\",\n});\nconst ids = alicloud.actiontrail.getSaslUsersOutput({\n    ids: [defaultSaslUser.id],\n    instanceId: defaultSaslUser.instanceId,\n});\nexport const alikafkaSaslUsersId0 = ids.apply(ids =\u003e ids.users?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"10.4.0.0/24\",\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default_network.id)\ndefault_instance = alicloud.alikafka.Instance(\"default\",\n    name=name,\n    partition_num=50,\n    disk_type=1,\n    disk_size=500,\n    deploy_type=5,\n    io_max=20,\n    spec_type=\"professional\",\n    service_version=\"2.2.0\",\n    vswitch_id=default_switch.id,\n    security_group=default_security_group.id,\n    config=\"\"\"  {\n    \\\"enable.acl\\\": \\\"true\\\"\n  }\n\"\"\")\ndefault_sasl_user = alicloud.alikafka.SaslUser(\"default\",\n    instance_id=default_instance.id,\n    username=name,\n    password=\"YourPassword1234!\")\nids = alicloud.actiontrail.get_sasl_users_output(ids=[default_sasl_user.id],\n    instance_id=default_sasl_user.instance_id)\npulumi.export(\"alikafkaSaslUsersId0\", ids.users[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"10.4.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Alikafka.Instance(\"default\", new()\n    {\n        Name = name,\n        PartitionNum = 50,\n        DiskType = 1,\n        DiskSize = 500,\n        DeployType = 5,\n        IoMax = 20,\n        SpecType = \"professional\",\n        ServiceVersion = \"2.2.0\",\n        VswitchId = defaultSwitch.Id,\n        SecurityGroup = defaultSecurityGroup.Id,\n        Config = @\"  {\n    \\\"\"enable.acl\\\"\": \\\"\"true\\\"\"\n  }\n\",\n    });\n\n    var defaultSaslUser = new AliCloud.Alikafka.SaslUser(\"default\", new()\n    {\n        InstanceId = defaultInstance.Id,\n        Username = name,\n        Password = \"YourPassword1234!\",\n    });\n\n    var ids = AliCloud.ActionTrail.GetSaslUsers.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultSaslUser.Id,\n        },\n        InstanceId = defaultSaslUser.InstanceId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alikafkaSaslUsersId0\"] = ids.Apply(getSaslUsersResult =\u003e getSaslUsersResult.Users[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/actiontrail\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alikafka\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := alikafka.NewInstance(ctx, \"default\", \u0026alikafka.InstanceArgs{\n\t\t\tName:           pulumi.String(name),\n\t\t\tPartitionNum:   pulumi.Int(50),\n\t\t\tDiskType:       pulumi.Int(1),\n\t\t\tDiskSize:       pulumi.Int(500),\n\t\t\tDeployType:     pulumi.Int(5),\n\t\t\tIoMax:          pulumi.Int(20),\n\t\t\tSpecType:       pulumi.String(\"professional\"),\n\t\t\tServiceVersion: pulumi.String(\"2.2.0\"),\n\t\t\tVswitchId:      defaultSwitch.ID(),\n\t\t\tSecurityGroup:  defaultSecurityGroup.ID(),\n\t\t\tConfig:         pulumi.String(\"  {\\n    \\\\\\\"enable.acl\\\\\\\": \\\\\\\"true\\\\\\\"\\n  }\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSaslUser, err := alikafka.NewSaslUser(ctx, \"default\", \u0026alikafka.SaslUserArgs{\n\t\t\tInstanceId: defaultInstance.ID(),\n\t\t\tUsername:   pulumi.String(name),\n\t\t\tPassword:   pulumi.String(\"YourPassword1234!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := actiontrail.GetSaslUsersOutput(ctx, actiontrail.GetSaslUsersOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultSaslUser.ID(),\n\t\t\t},\n\t\t\tInstanceId: defaultSaslUser.InstanceId,\n\t\t}, nil)\n\t\tctx.Export(\"alikafkaSaslUsersId0\", ids.ApplyT(func(ids actiontrail.GetSaslUsersResult) (*string, error) {\n\t\t\treturn \u0026ids.Users[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.alikafka.Instance;\nimport com.pulumi.alicloud.alikafka.InstanceArgs;\nimport com.pulumi.alicloud.alikafka.SaslUser;\nimport com.pulumi.alicloud.alikafka.SaslUserArgs;\nimport com.pulumi.alicloud.actiontrail.ActiontrailFunctions;\nimport com.pulumi.alicloud.actiontrail.inputs.GetSaslUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"10.4.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .name(name)\n            .partitionNum(50)\n            .diskType(1)\n            .diskSize(500)\n            .deployType(5)\n            .ioMax(20)\n            .specType(\"professional\")\n            .serviceVersion(\"2.2.0\")\n            .vswitchId(defaultSwitch.id())\n            .securityGroup(defaultSecurityGroup.id())\n            .config(\"\"\"\n  {\n    \\\"enable.acl\\\": \\\"true\\\"\n  }\n            \"\"\")\n            .build());\n\n        var defaultSaslUser = new SaslUser(\"defaultSaslUser\", SaslUserArgs.builder()\n            .instanceId(defaultInstance.id())\n            .username(name)\n            .password(\"YourPassword1234!\")\n            .build());\n\n        final var ids = ActiontrailFunctions.getSaslUsers(GetSaslUsersArgs.builder()\n            .ids(defaultSaslUser.id())\n            .instanceId(defaultSaslUser.instanceId())\n            .build());\n\n        ctx.export(\"alikafkaSaslUsersId0\", ids.applyValue(_ids -\u003e _ids.users()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 10.4.0.0/24\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n  defaultInstance:\n    type: alicloud:alikafka:Instance\n    name: default\n    properties:\n      name: ${name}\n      partitionNum: 50\n      diskType: '1'\n      diskSize: '500'\n      deployType: '5'\n      ioMax: '20'\n      specType: professional\n      serviceVersion: 2.2.0\n      vswitchId: ${defaultSwitch.id}\n      securityGroup: ${defaultSecurityGroup.id}\n      config: |2\n          {\n            \\\"enable.acl\\\": \\\"true\\\"\n          }\n  defaultSaslUser:\n    type: alicloud:alikafka:SaslUser\n    name: default\n    properties:\n      instanceId: ${defaultInstance.id}\n      username: ${name}\n      password: YourPassword1234!\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  ids:\n    fn::invoke:\n      function: alicloud:actiontrail:getSaslUsers\n      arguments:\n        ids:\n          - ${defaultSaslUser.id}\n        instanceId: ${defaultSaslUser.instanceId}\noutputs:\n  alikafkaSaslUsersId0: ${ids.users[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSaslUsers.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Sasl User IDs.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Sasl User name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getSaslUsers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Sasl User names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"users":{"description":"A list of Sasl Users. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:actiontrail/getSaslUsersUser:getSaslUsersUser"},"type":"array"}},"required":["ids","instanceId","names","users","id"],"type":"object"}},"alicloud:actiontrail/getTopics:getTopics":{"description":"This data source provides a list of ALIKAFKA Topics in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available in 1.56.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst topicsDs = alicloud.actiontrail.getTopics({\n    instanceId: \"xxx\",\n    nameRegex: \"alikafkaTopicName\",\n    outputFile: \"topics.txt\",\n});\nexport const firstTopicName = topicsDs.then(topicsDs =\u003e topicsDs.topics?.[0]?.topic);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ntopics_ds = alicloud.actiontrail.get_topics(instance_id=\"xxx\",\n    name_regex=\"alikafkaTopicName\",\n    output_file=\"topics.txt\")\npulumi.export(\"firstTopicName\", topics_ds.topics[0].topic)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var topicsDs = AliCloud.ActionTrail.GetTopics.Invoke(new()\n    {\n        InstanceId = \"xxx\",\n        NameRegex = \"alikafkaTopicName\",\n        OutputFile = \"topics.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstTopicName\"] = topicsDs.Apply(getTopicsResult =\u003e getTopicsResult.Topics[0]?.Topic),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/actiontrail\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttopicsDs, err := actiontrail.GetTopics(ctx, \u0026actiontrail.GetTopicsArgs{\n\t\t\tInstanceId: \"xxx\",\n\t\t\tNameRegex:  pulumi.StringRef(\"alikafkaTopicName\"),\n\t\t\tOutputFile: pulumi.StringRef(\"topics.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstTopicName\", topicsDs.Topics[0].Topic)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.actiontrail.ActiontrailFunctions;\nimport com.pulumi.alicloud.actiontrail.inputs.GetTopicsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var topicsDs = ActiontrailFunctions.getTopics(GetTopicsArgs.builder()\n            .instanceId(\"xxx\")\n            .nameRegex(\"alikafkaTopicName\")\n            .outputFile(\"topics.txt\")\n            .build());\n\n        ctx.export(\"firstTopicName\", topicsDs.topics()[0].topic());\n    }\n}\n```\n```yaml\nvariables:\n  topicsDs:\n    fn::invoke:\n      function: alicloud:actiontrail:getTopics\n      arguments:\n        instanceId: xxx\n        nameRegex: alikafkaTopicName\n        outputFile: topics.txt\noutputs:\n  firstTopicName: ${topicsDs.topics[0].topic}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTopics.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of ALIKAFKA Topics IDs, It is formatted to `\u003cinstance_id\u003e:\u003ctopic\u003e`.\n"},"instanceId":{"type":"string","description":"ID of the instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by the topic name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"topic":{"type":"string","description":"A topic to filter results by the topic name.\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getTopics.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"description":"The\u003cspan pulumi-lang-nodejs=\" instanceId \" pulumi-lang-dotnet=\" InstanceId \" pulumi-lang-go=\" instanceId \" pulumi-lang-python=\" instance_id \" pulumi-lang-yaml=\" instanceId \" pulumi-lang-java=\" instanceId \"\u003e instance_id \u003c/span\u003eof the instance.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of topic names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"topic":{"description":"The name of the topic.\n","type":"string"},"topics":{"description":"A list of topics. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:actiontrail/getTopicsTopic:getTopicsTopic"},"type":"array"},"totalCount":{"type":"integer"}},"required":["ids","instanceId","names","topics","totalCount","id"],"type":"object"}},"alicloud:actiontrail/getTrails:getTrails":{"description":"This data source provides a list of ActionTrail Trails in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available in 1.95.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.actiontrail.getTrails({\n    nameRegex: \"tf-testacc-actiontrail\",\n});\nexport const trailName = _default.then(_default =\u003e _default.trails?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.actiontrail.get_trails(name_regex=\"tf-testacc-actiontrail\")\npulumi.export(\"trailName\", default.trails[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ActionTrail.GetTrails.Invoke(new()\n    {\n        NameRegex = \"tf-testacc-actiontrail\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"trailName\"] = @default.Apply(@default =\u003e @default.Apply(getTrailsResult =\u003e getTrailsResult.Trails[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/actiontrail\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := actiontrail.GetTrails(ctx, \u0026actiontrail.GetTrailsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"tf-testacc-actiontrail\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"trailName\", _default.Trails[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.actiontrail.ActiontrailFunctions;\nimport com.pulumi.alicloud.actiontrail.inputs.GetTrailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ActiontrailFunctions.getTrails(GetTrailsArgs.builder()\n            .nameRegex(\"tf-testacc-actiontrail\")\n            .build());\n\n        ctx.export(\"trailName\", default_.trails()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:actiontrail:getTrails\n      arguments:\n        nameRegex: tf-testacc-actiontrail\noutputs:\n  trailName: ${default.trails[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTrails.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of ActionTrail Trail IDs. It is the same as trail name.\n"},"includeOrganizationTrail":{"type":"boolean","description":"Whether to show organization tracking. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"includeShadowTrails":{"type":"boolean","description":"Whether to show shadow tracking. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by trail name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"Filter the results by status of the ActionTrail Trail. Valid values: `Disable`, `Enable`, `Fresh`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTrails.\n","properties":{"actiontrails":{"deprecationMessage":"Field 'actiontrails' has been deprecated from version 1.95.0. Use 'trails' instead.","description":"Field \u003cspan pulumi-lang-nodejs=\"`actiontrails`\" pulumi-lang-dotnet=\"`Actiontrails`\" pulumi-lang-go=\"`actiontrails`\" pulumi-lang-python=\"`actiontrails`\" pulumi-lang-yaml=\"`actiontrails`\" pulumi-lang-java=\"`actiontrails`\"\u003e`actiontrails`\u003c/span\u003e has been deprecated from version 1.95.0. Use \u003cspan pulumi-lang-nodejs=\"`trails`\" pulumi-lang-dotnet=\"`Trails`\" pulumi-lang-go=\"`trails`\" pulumi-lang-python=\"`trails`\" pulumi-lang-yaml=\"`trails`\" pulumi-lang-java=\"`trails`\"\u003e`trails`\u003c/span\u003e instead.\"\n","items":{"$ref":"#/types/alicloud:actiontrail/getTrailsActiontrail:getTrailsActiontrail"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of ActionTrail Trail ids. It is the same as trail name.\n","items":{"type":"string"},"type":"array"},"includeOrganizationTrail":{"type":"boolean"},"includeShadowTrails":{"type":"boolean"},"nameRegex":{"type":"string"},"names":{"description":"A list of trail names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the ActionTrail Trail.\n","type":"string"},"trails":{"description":"A list of ActionTrail Trails. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:actiontrail/getTrailsTrail:getTrailsTrail"},"type":"array"}},"required":["actiontrails","ids","names","trails","id"],"type":"object"}},"alicloud:actiontrail/getTrailsDeprecated:getTrailsDeprecated":{"deprecationMessage":"DataSource has been renamed to `getTrails`","description":"\u003e **DEPRECATED:**  This datasource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.actiontrail.getTrails \" pulumi-lang-dotnet=\" alicloud.actiontrail.getTrails \" pulumi-lang-go=\" actiontrail.getTrails \" pulumi-lang-python=\" actiontrail_get_trails \" pulumi-lang-yaml=\" alicloud.actiontrail.getTrails \" pulumi-lang-java=\" alicloud.actiontrail.getTrails \"\u003e alicloud.actiontrail.getTrails \u003c/span\u003efrom version 1.95.0.\n\nThis data source provides a list of action trail of the current Alibaba Cloud user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst trails = alicloud.actiontrail.getTrailsDeprecated({\n    nameRegex: \"tf-testacc-actiontrail\",\n});\nexport const firstTrailName = trails.then(trails =\u003e trails.actiontrails?.[0]?.name);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ntrails = alicloud.actiontrail.get_trails_deprecated(name_regex=\"tf-testacc-actiontrail\")\npulumi.export(\"firstTrailName\", trails.actiontrails[0].name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var trails = AliCloud.ActionTrail.GetTrailsDeprecated.Invoke(new()\n    {\n        NameRegex = \"tf-testacc-actiontrail\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstTrailName\"] = trails.Apply(getTrailsDeprecatedResult =\u003e getTrailsDeprecatedResult.Actiontrails[0]?.Name),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/actiontrail\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttrails, err := actiontrail.GetTrailsDeprecated(ctx, \u0026actiontrail.GetTrailsDeprecatedArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"tf-testacc-actiontrail\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstTrailName\", trails.Actiontrails[0].Name)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.actiontrail.ActiontrailFunctions;\nimport com.pulumi.alicloud.actiontrail.inputs.GetTrailsDeprecatedArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var trails = ActiontrailFunctions.getTrailsDeprecated(GetTrailsDeprecatedArgs.builder()\n            .nameRegex(\"tf-testacc-actiontrail\")\n            .build());\n\n        ctx.export(\"firstTrailName\", trails.actiontrails()[0].name());\n    }\n}\n```\n```yaml\nvariables:\n  trails:\n    fn::invoke:\n      function: alicloud:actiontrail:getTrailsDeprecated\n      arguments:\n        nameRegex: tf-testacc-actiontrail\noutputs:\n  firstTrailName: ${trails.actiontrails[0].name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTrailsDeprecated.\n","properties":{"ids":{"type":"array","items":{"type":"string"}},"includeOrganizationTrail":{"type":"boolean"},"includeShadowTrails":{"type":"boolean"},"nameRegex":{"type":"string","description":"A regex string to filter results action trail name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTrailsDeprecated.\n","properties":{"actiontrails":{"deprecationMessage":"Field 'actiontrails' has been deprecated from version 1.95.0. Use 'trails' instead.","description":"A list of actiontrails. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:actiontrail/getTrailsDeprecatedActiontrail:getTrailsDeprecatedActiontrail"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"includeOrganizationTrail":{"type":"boolean"},"includeShadowTrails":{"type":"boolean"},"nameRegex":{"type":"string"},"names":{"description":"A list of trail names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"},"trails":{"items":{"$ref":"#/types/alicloud:actiontrail/getTrailsDeprecatedTrail:getTrailsDeprecatedTrail"},"type":"array"}},"required":["actiontrails","ids","names","trails","id"],"type":"object"}},"alicloud:adb/getClusters:getClusters":{"description":"The \u003cspan pulumi-lang-nodejs=\"`alicloud.adb.getClusters`\" pulumi-lang-dotnet=\"`alicloud.adb.getClusters`\" pulumi-lang-go=\"`adb.getClusters`\" pulumi-lang-python=\"`adb_get_clusters`\" pulumi-lang-yaml=\"`alicloud.adb.getClusters`\" pulumi-lang-java=\"`alicloud.adb.getClusters`\"\u003e`alicloud.adb.getClusters`\u003c/span\u003e data source provides a collection of ADB clusters available in Alibaba Cloud account.\nFilters support regular expression for the cluster description, searches by tags, and other filters which are listed below.\n\n\u003e **DEPRECATED:**  This resource  has been deprecated from version `1.121.0`. Please use new datasource alicloud_adb_db_clusters.\n\n\u003e **NOTE:** Available in v1.71.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst adbClustersDs = alicloud.adb.getClusters({\n    descriptionRegex: \"am-\\\\w+\",\n    status: \"Running\",\n});\nexport const firstAdbClusterId = adbClustersDs.then(adbClustersDs =\u003e adbClustersDs.clusters?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nadb_clusters_ds = alicloud.adb.get_clusters(description_regex=\"am-\\\\w+\",\n    status=\"Running\")\npulumi.export(\"firstAdbClusterId\", adb_clusters_ds.clusters[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var adbClustersDs = AliCloud.Adb.GetClusters.Invoke(new()\n    {\n        DescriptionRegex = \"am-\\\\w+\",\n        Status = \"Running\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstAdbClusterId\"] = adbClustersDs.Apply(getClustersResult =\u003e getClustersResult.Clusters[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/adb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tadbClustersDs, err := adb.GetClusters(ctx, \u0026adb.GetClustersArgs{\n\t\t\tDescriptionRegex: pulumi.StringRef(\"am-\\\\w+\"),\n\t\t\tStatus:           pulumi.StringRef(\"Running\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstAdbClusterId\", adbClustersDs.Clusters[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.adb.AdbFunctions;\nimport com.pulumi.alicloud.adb.inputs.GetClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var adbClustersDs = AdbFunctions.getClusters(GetClustersArgs.builder()\n            .descriptionRegex(\"am-\\\\w+\")\n            .status(\"Running\")\n            .build());\n\n        ctx.export(\"firstAdbClusterId\", adbClustersDs.clusters()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  adbClustersDs:\n    fn::invoke:\n      function: alicloud:adb:getClusters\n      arguments:\n        descriptionRegex: am-\\w+\n        status: Running\noutputs:\n  firstAdbClusterId: ${adbClustersDs.clusters[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getClusters.\n","properties":{"description":{"type":"string","description":"The description of the ADB cluster.\n"},"descriptionRegex":{"type":"string","description":"A regex string to filter results by cluster description.\n"},"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of ADB cluster IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"type":"string"},"status":{"type":"string","description":"The status of the cluster. Valid values: `Preparing`, `Creating`, `Restoring`, `Running`, `Deleting`, `ClassChanging`, `NetAddressCreating`, `NetAddressDeleting`. For more information, see [Cluster status](https://www.alibabacloud.com/help/doc-detail/143075.htm).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getClusters.\n","properties":{"clusters":{"description":"A list of ADB clusters. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:adb/getClustersCluster:getClustersCluster"},"type":"array"},"description":{"description":"The description of the ADB cluster.\n","type":"string"},"descriptionRegex":{"type":"string"},"descriptions":{"description":"A list of ADB cluster descriptions.\n","items":{"type":"string"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of ADB cluster IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"type":"string"},"status":{"description":"Status of the cluster.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"totalCount":{"type":"integer"}},"required":["clusters","descriptions","ids","totalCount","id"],"type":"object"}},"alicloud:adb/getDBClusterLakeVersions:getDBClusterLakeVersions":{"description":"This data source provides the Adb DBCluster Lake Versions of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.190.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.adb.getZones({});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[0],\n}));\nconst defaultDBClusterLakeVersion = new alicloud.adb.DBClusterLakeVersion(\"default\", {\n    dbClusterVersion: \"5.0\",\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    zoneId: _default.then(_default =\u003e _default.ids?.[0]),\n    computeResource: \"16ACU\",\n    storageResource: \"0ACU\",\n    paymentType: \"PayAsYouGo\",\n    enableDefaultResourceGroup: false,\n});\nconst ids = alicloud.adb.getDBClusterLakeVersionsOutput({\n    ids: [defaultDBClusterLakeVersion.id],\n});\nexport const adbDbClusterLakeVersionId1 = ids.apply(ids =\u003e ids.versions?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.adb.get_zones()\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[0])\ndefault_db_cluster_lake_version = alicloud.adb.DBClusterLakeVersion(\"default\",\n    db_cluster_version=\"5.0\",\n    vpc_id=default_get_networks.ids[0],\n    vswitch_id=default_get_switches.ids[0],\n    zone_id=default.ids[0],\n    compute_resource=\"16ACU\",\n    storage_resource=\"0ACU\",\n    payment_type=\"PayAsYouGo\",\n    enable_default_resource_group=False)\nids = alicloud.adb.get_db_cluster_lake_versions_output(ids=[default_db_cluster_lake_version.id])\npulumi.export(\"adbDbClusterLakeVersionId1\", ids.versions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Adb.GetZones.Invoke();\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n    });\n\n    var defaultDBClusterLakeVersion = new AliCloud.Adb.DBClusterLakeVersion(\"default\", new()\n    {\n        DbClusterVersion = \"5.0\",\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0])),\n        ComputeResource = \"16ACU\",\n        StorageResource = \"0ACU\",\n        PaymentType = \"PayAsYouGo\",\n        EnableDefaultResourceGroup = false,\n    });\n\n    var ids = AliCloud.Adb.GetDBClusterLakeVersions.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultDBClusterLakeVersion.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"adbDbClusterLakeVersionId1\"] = ids.Apply(getDBClusterLakeVersionsResult =\u003e getDBClusterLakeVersionsResult.Versions[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/adb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := adb.GetZones(ctx, \u0026adb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDBClusterLakeVersion, err := adb.NewDBClusterLakeVersion(ctx, \"default\", \u0026adb.DBClusterLakeVersionArgs{\n\t\t\tDbClusterVersion:           pulumi.String(\"5.0\"),\n\t\t\tVpcId:                      pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tVswitchId:                  pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tZoneId:                     pulumi.String(_default.Ids[0]),\n\t\t\tComputeResource:            pulumi.String(\"16ACU\"),\n\t\t\tStorageResource:            pulumi.String(\"0ACU\"),\n\t\t\tPaymentType:                pulumi.String(\"PayAsYouGo\"),\n\t\t\tEnableDefaultResourceGroup: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := adb.GetDBClusterLakeVersionsOutput(ctx, adb.GetDBClusterLakeVersionsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultDBClusterLakeVersion.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"adbDbClusterLakeVersionId1\", ids.ApplyT(func(ids adb.GetDBClusterLakeVersionsResult) (*string, error) {\n\t\t\treturn \u0026ids.Versions[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.adb.AdbFunctions;\nimport com.pulumi.alicloud.adb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.adb.DBClusterLakeVersion;\nimport com.pulumi.alicloud.adb.DBClusterLakeVersionArgs;\nimport com.pulumi.alicloud.adb.inputs.GetDBClusterLakeVersionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AdbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[0])\n            .build());\n\n        var defaultDBClusterLakeVersion = new DBClusterLakeVersion(\"defaultDBClusterLakeVersion\", DBClusterLakeVersionArgs.builder()\n            .dbClusterVersion(\"5.0\")\n            .vpcId(defaultGetNetworks.ids()[0])\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .zoneId(default_.ids()[0])\n            .computeResource(\"16ACU\")\n            .storageResource(\"0ACU\")\n            .paymentType(\"PayAsYouGo\")\n            .enableDefaultResourceGroup(false)\n            .build());\n\n        final var ids = AdbFunctions.getDBClusterLakeVersions(GetDBClusterLakeVersionsArgs.builder()\n            .ids(defaultDBClusterLakeVersion.id())\n            .build());\n\n        ctx.export(\"adbDbClusterLakeVersionId1\", ids.applyValue(_ids -\u003e _ids.versions()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  defaultDBClusterLakeVersion:\n    type: alicloud:adb:DBClusterLakeVersion\n    name: default\n    properties:\n      dbClusterVersion: '5.0'\n      vpcId: ${defaultGetNetworks.ids[0]}\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      zoneId: ${default.ids[0]}\n      computeResource: 16ACU\n      storageResource: 0ACU\n      paymentType: PayAsYouGo\n      enableDefaultResourceGroup: false\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:adb:getZones\n      arguments: {}\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[0]}\n  ids:\n    fn::invoke:\n      function: alicloud:adb:getDBClusterLakeVersions\n      arguments:\n        ids:\n          - ${defaultDBClusterLakeVersion.id}\noutputs:\n  adbDbClusterLakeVersionId1: ${ids.versions[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDBClusterLakeVersions.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of DBCluster IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Preparing`, `Creating`, `Restoring`, `Running`, `Deleting`, `ClassChanging`, `NetAddressCreating`, `NetAddressDeleting`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDBClusterLakeVersions.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"description":"The ID of the resource group.\n","type":"string"},"status":{"description":"The status of the resource.\n","type":"string"},"versions":{"description":"A list of Adb Db Clusters. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:adb/getDBClusterLakeVersionsVersion:getDBClusterLakeVersionsVersion"},"type":"array"}},"required":["ids","versions","id"],"type":"object"}},"alicloud:adb/getDBClusters:getDBClusters":{"description":"This data source provides the Adb DBClusters of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.121.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.adb.getDBClusters({\n    descriptionRegex: \"example\",\n});\nexport const firstAdbDbClusterId = example.then(example =\u003e example.clusters?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.adb.get_db_clusters(description_regex=\"example\")\npulumi.export(\"firstAdbDbClusterId\", example.clusters[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Adb.GetDBClusters.Invoke(new()\n    {\n        DescriptionRegex = \"example\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstAdbDbClusterId\"] = example.Apply(getDBClustersResult =\u003e getDBClustersResult.Clusters[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/adb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := adb.GetDBClusters(ctx, \u0026adb.GetDBClustersArgs{\n\t\t\tDescriptionRegex: pulumi.StringRef(\"example\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstAdbDbClusterId\", example.Clusters[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.adb.AdbFunctions;\nimport com.pulumi.alicloud.adb.inputs.GetDBClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AdbFunctions.getDBClusters(GetDBClustersArgs.builder()\n            .descriptionRegex(\"example\")\n            .build());\n\n        ctx.export(\"firstAdbDbClusterId\", example.clusters()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:adb:getDBClusters\n      arguments:\n        descriptionRegex: example\noutputs:\n  firstAdbDbClusterId: ${example.clusters[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDBClusters.\n","properties":{"description":{"type":"string","description":"The description of DBCluster.\n"},"descriptionRegex":{"type":"string","description":"A regex string to filter results by DBCluster description.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of DBCluster IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the cluster.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDBClusters.\n","properties":{"clusters":{"description":"A list of Adb Db Clusters. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:adb/getDBClustersCluster:getDBClustersCluster"},"type":"array"},"description":{"description":"The description of DBCluster.\n","type":"string"},"descriptionRegex":{"type":"string"},"descriptions":{"description":"A list of DBCluster descriptions.\n","items":{"type":"string"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"description":"The ID of the resource group.\n","type":"string"},"status":{"description":"The status of the resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of the resource.\n","type":"object"},"totalCount":{"type":"integer"}},"required":["clusters","descriptions","ids","totalCount","id"],"type":"object"}},"alicloud:adb/getResourceGroups:getResourceGroups":{"description":"This data source provides Adb Resource Group available to the user.[What is Resource Group](https://www.alibabacloud.com/help/en/analyticdb-for-mysql/developer-reference/api-adb-2019-03-15-describedbresourcegroup)\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.adb.getResourceGroups({\n    dbClusterId: \"am-bp1a16357gty69185\",\n    groupName: \"TESTOPENAPI\",\n});\nexport const alicloudAdbResourceGroupExampleId = _default.then(_default =\u003e _default.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.adb.get_resource_groups(db_cluster_id=\"am-bp1a16357gty69185\",\n    group_name=\"TESTOPENAPI\")\npulumi.export(\"alicloudAdbResourceGroupExampleId\", default.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Adb.GetResourceGroups.Invoke(new()\n    {\n        DbClusterId = \"am-bp1a16357gty69185\",\n        GroupName = \"TESTOPENAPI\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudAdbResourceGroupExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/adb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := adb.GetResourceGroups(ctx, \u0026adb.GetResourceGroupsArgs{\n\t\t\tDbClusterId: \"am-bp1a16357gty69185\",\n\t\t\tGroupName:   pulumi.StringRef(\"TESTOPENAPI\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudAdbResourceGroupExampleId\", _default.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.adb.AdbFunctions;\nimport com.pulumi.alicloud.adb.inputs.GetResourceGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AdbFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .dbClusterId(\"am-bp1a16357gty69185\")\n            .groupName(\"TESTOPENAPI\")\n            .build());\n\n        ctx.export(\"alicloudAdbResourceGroupExampleId\", default_.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:adb:getResourceGroups\n      arguments:\n        dbClusterId: am-bp1a16357gty69185\n        groupName: TESTOPENAPI\noutputs:\n  alicloudAdbResourceGroupExampleId: ${default.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getResourceGroups.\n","properties":{"dbClusterId":{"type":"string","description":"DBClusterId\n"},"groupName":{"type":"string","description":"The name of the resource pool, which cannot exceed 64 bytes in length.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of AnalyticDB for MySQL (ADB) Resource Group IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["dbClusterId"]},"outputs":{"description":"A collection of values returned by getResourceGroups.\n","properties":{"dbClusterId":{"description":"DB cluster id.\n","type":"string"},"groupName":{"description":"The name of the resource pool.\n","type":"string"},"groups":{"description":"A list of Resource Group Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:adb/getResourceGroupsGroup:getResourceGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["dbClusterId","groups","ids","id"],"type":"object"}},"alicloud:adb/getZones:getZones":{"description":"This data source provides availability zones for ADB that can be accessed by an Alibaba Cloud account within the region configured in the provider.\n\n\u003e **NOTE:** Available in v1.73.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst zonesIds = alicloud.adb.getZones({});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nzones_ids = alicloud.adb.get_zones()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var zonesIds = AliCloud.Adb.GetZones.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/adb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\t_, err := adb.GetZones(ctx, \u0026adb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.adb.AdbFunctions;\nimport com.pulumi.alicloud.adb.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var zonesIds = AdbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  zonesIds:\n    fn::invoke:\n      function: alicloud:adb:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"multi":{"type":"boolean","description":"Indicate whether the zones can be used in a multi AZ configuration. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Multi AZ is usually used to launch ADB instances.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of zone IDs.\n","items":{"type":"string"},"type":"array"},"multi":{"type":"boolean"},"outputFile":{"type":"string"},"zones":{"description":"A list of availability zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:adb/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:alb/getAcls:getAcls":{"description":"This data source provides the Application Load Balancer (ALB) Acls of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.133.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.alb.getAcls({});\nexport const albAclId1 = ids.then(ids =\u003e ids.acls?.[0]?.id);\nconst nameRegex = alicloud.alb.getAcls({\n    nameRegex: \"^my-Acl\",\n});\nexport const albAclId2 = nameRegex.then(nameRegex =\u003e nameRegex.acls?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.alb.get_acls()\npulumi.export(\"albAclId1\", ids.acls[0].id)\nname_regex = alicloud.alb.get_acls(name_regex=\"^my-Acl\")\npulumi.export(\"albAclId2\", name_regex.acls[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Alb.GetAcls.Invoke();\n\n    var nameRegex = AliCloud.Alb.GetAcls.Invoke(new()\n    {\n        NameRegex = \"^my-Acl\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"albAclId1\"] = ids.Apply(getAclsResult =\u003e getAclsResult.Acls[0]?.Id),\n        [\"albAclId2\"] = nameRegex.Apply(getAclsResult =\u003e getAclsResult.Acls[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := alb.GetAcls(ctx, \u0026alb.GetAclsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"albAclId1\", ids.Acls[0].Id)\n\t\tnameRegex, err := alb.GetAcls(ctx, \u0026alb.GetAclsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Acl\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"albAclId2\", nameRegex.Acls[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetAclsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = AlbFunctions.getAcls(GetAclsArgs.builder()\n            .build());\n\n        ctx.export(\"albAclId1\", ids.acls()[0].id());\n        final var nameRegex = AlbFunctions.getAcls(GetAclsArgs.builder()\n            .nameRegex(\"^my-Acl\")\n            .build());\n\n        ctx.export(\"albAclId2\", nameRegex.acls()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:alb:getAcls\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:alb:getAcls\n      arguments:\n        nameRegex: ^my-Acl\noutputs:\n  albAclId1: ${ids.acls[0].id}\n  albAclId2: ${nameRegex.acls[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAcls.\n","properties":{"aclIds":{"type":"array","items":{"type":"string"},"description":"The acl ids.\n"},"aclName":{"type":"string","description":"The ACL Name.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Acl IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Acl name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"Resource Group to Which the Number.\n"},"status":{"type":"string","description":"The state of the ACL. Valid values:`Provisioning`,`Available\u003cspan pulumi-lang-nodejs=\"`and`\" pulumi-lang-dotnet=\"`And`\" pulumi-lang-go=\"`and`\" pulumi-lang-python=\"`and`\" pulumi-lang-yaml=\"`and`\" pulumi-lang-java=\"`and`\"\u003e`and`\u003c/span\u003eConfiguring`.  `Provisioning`: The ACL is being created. `Available`: The ACL is available. `Configuring`: The ACL is being configured.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAcls.\n","properties":{"aclIds":{"items":{"type":"string"},"type":"array"},"aclName":{"type":"string"},"acls":{"items":{"$ref":"#/types/alicloud:alb/getAclsAcl:getAclsAcl"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"},"status":{"type":"string"}},"required":["acls","ids","names","id"],"type":"object"}},"alicloud:alb/getAscripts:getAscripts":{"description":"This data source provides Alb Ascript available to the user.\n\n\u003e **NOTE:** Available in 1.195.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.alb.getAscripts({\n    ids: [defaultAlicloudAlbAscript.id],\n    nameRegex: defaultAlicloudAlbAscript.name,\n    ascriptName: \"test\",\n    listenerId: listenerId,\n});\nexport const alicloudAlbAscriptExampleId = _default.then(_default =\u003e _default.ascripts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.alb.get_ascripts(ids=[default_alicloud_alb_ascript[\"id\"]],\n    name_regex=default_alicloud_alb_ascript[\"name\"],\n    ascript_name=\"test\",\n    listener_id=listener_id)\npulumi.export(\"alicloudAlbAscriptExampleId\", default.ascripts[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Alb.GetAscripts.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudAlbAscript.Id,\n        },\n        NameRegex = defaultAlicloudAlbAscript.Name,\n        AscriptName = \"test\",\n        ListenerId = listenerId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudAlbAscriptExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getAscriptsResult =\u003e getAscriptsResult.Ascripts[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := alb.GetAscripts(ctx, \u0026alb.GetAscriptsArgs{\nIds: interface{}{\ndefaultAlicloudAlbAscript.Id,\n},\nNameRegex: pulumi.StringRef(defaultAlicloudAlbAscript.Name),\nAscriptName: pulumi.StringRef(\"test\"),\nListenerId: pulumi.StringRef(listenerId),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudAlbAscriptExampleId\", _default.Ascripts[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetAscriptsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlbFunctions.getAscripts(GetAscriptsArgs.builder()\n            .ids(defaultAlicloudAlbAscript.id())\n            .nameRegex(defaultAlicloudAlbAscript.name())\n            .ascriptName(\"test\")\n            .listenerId(listenerId)\n            .build());\n\n        ctx.export(\"alicloudAlbAscriptExampleId\", default_.ascripts()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:alb:getAscripts\n      arguments:\n        ids:\n          - ${defaultAlicloudAlbAscript.id}\n        nameRegex: ${defaultAlicloudAlbAscript.name}\n        ascriptName: test\n        listenerId: ${listenerId}\noutputs:\n  alicloudAlbAscriptExampleId: ${default.ascripts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAscripts.\n","properties":{"ascriptName":{"type":"string","description":"Script name.\n"},"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of AScript IDs.\n"},"listenerId":{"type":"string","description":"Listener ID of script attribution\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAscripts.\n","properties":{"ascriptName":{"description":"Script name.\n","type":"string"},"ascripts":{"description":"A list of AScript Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:alb/getAscriptsAscript:getAscriptsAscript"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of AScript IDs.\n","items":{"type":"string"},"type":"array"},"listenerId":{"description":"Listener ID of script attribution.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of AScripts.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["ascripts","ids","names","id"],"type":"object"}},"alicloud:alb/getHealthCheckTemplates:getHealthCheckTemplates":{"description":"This data source provides the Alb Health Check Templates of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.134.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.alb.getHealthCheckTemplates({\n    ids: [\"example_id\"],\n});\nexport const albHealthCheckTemplateId1 = ids.then(ids =\u003e ids.templates?.[0]?.id);\nconst nameRegex = alicloud.alb.getHealthCheckTemplates({\n    nameRegex: \"^my-HealthCheckTemplate\",\n});\nexport const albHealthCheckTemplateId2 = nameRegex.then(nameRegex =\u003e nameRegex.templates?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.alb.get_health_check_templates(ids=[\"example_id\"])\npulumi.export(\"albHealthCheckTemplateId1\", ids.templates[0].id)\nname_regex = alicloud.alb.get_health_check_templates(name_regex=\"^my-HealthCheckTemplate\")\npulumi.export(\"albHealthCheckTemplateId2\", name_regex.templates[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Alb.GetHealthCheckTemplates.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Alb.GetHealthCheckTemplates.Invoke(new()\n    {\n        NameRegex = \"^my-HealthCheckTemplate\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"albHealthCheckTemplateId1\"] = ids.Apply(getHealthCheckTemplatesResult =\u003e getHealthCheckTemplatesResult.Templates[0]?.Id),\n        [\"albHealthCheckTemplateId2\"] = nameRegex.Apply(getHealthCheckTemplatesResult =\u003e getHealthCheckTemplatesResult.Templates[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := alb.GetHealthCheckTemplates(ctx, \u0026alb.GetHealthCheckTemplatesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"albHealthCheckTemplateId1\", ids.Templates[0].Id)\n\t\tnameRegex, err := alb.GetHealthCheckTemplates(ctx, \u0026alb.GetHealthCheckTemplatesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-HealthCheckTemplate\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"albHealthCheckTemplateId2\", nameRegex.Templates[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetHealthCheckTemplatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = AlbFunctions.getHealthCheckTemplates(GetHealthCheckTemplatesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"albHealthCheckTemplateId1\", ids.templates()[0].id());\n        final var nameRegex = AlbFunctions.getHealthCheckTemplates(GetHealthCheckTemplatesArgs.builder()\n            .nameRegex(\"^my-HealthCheckTemplate\")\n            .build());\n\n        ctx.export(\"albHealthCheckTemplateId2\", nameRegex.templates()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:alb:getHealthCheckTemplates\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:alb:getHealthCheckTemplates\n      arguments:\n        nameRegex: ^my-HealthCheckTemplate\noutputs:\n  albHealthCheckTemplateId1: ${ids.templates[0].id}\n  albHealthCheckTemplateId2: ${nameRegex.templates[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHealthCheckTemplates.\n","properties":{"healthCheckTemplateIds":{"type":"array","items":{"type":"string"},"description":"The health check template ids.\n"},"healthCheckTemplateName":{"type":"string","description":"The name of the health check template.  The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (_), and hyphens (-). The name must start with a letter.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Health Check Template IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Health Check Template name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHealthCheckTemplates.\n","properties":{"healthCheckTemplateIds":{"items":{"type":"string"},"type":"array"},"healthCheckTemplateName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"templates":{"items":{"$ref":"#/types/alicloud:alb/getHealthCheckTemplatesTemplate:getHealthCheckTemplatesTemplate"},"type":"array"}},"required":["ids","names","templates","id"],"type":"object"}},"alicloud:alb/getListeners:getListeners":{"description":"This data source provides the Application Load Balancer (ALB) Listeners of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.133.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.alb.getListeners({\n    ids: [\"example_id\"],\n});\nexport const albListenerId1 = ids.then(ids =\u003e ids.listeners?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.alb.get_listeners(ids=[\"example_id\"])\npulumi.export(\"albListenerId1\", ids.listeners[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Alb.GetListeners.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"albListenerId1\"] = ids.Apply(getListenersResult =\u003e getListenersResult.Listeners[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := alb.GetListeners(ctx, \u0026alb.GetListenersArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"albListenerId1\", ids.Listeners[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetListenersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = AlbFunctions.getListeners(GetListenersArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"albListenerId1\", ids.listeners()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:alb:getListeners\n      arguments:\n        ids:\n          - example_id\noutputs:\n  albListenerId1: ${ids.listeners[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getListeners.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Listener IDs.\n"},"listenerIds":{"type":"array","items":{"type":"string"},"description":"The listener ids.\n"},"listenerProtocol":{"type":"string","description":"Snooping Protocols. Valid Values: `HTTP`, `HTTPS` Or `QUIC`.\n"},"loadBalancerIds":{"type":"array","items":{"type":"string"},"description":"The load balancer ids.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The state of the listener. Valid Values: `Running` Or `Stopped`. `Running`: The listener is running. `Stopped`: The listener is stopped.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getListeners.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"listenerIds":{"items":{"type":"string"},"type":"array"},"listenerProtocol":{"type":"string"},"listeners":{"items":{"$ref":"#/types/alicloud:alb/getListenersListener:getListenersListener"},"type":"array"},"loadBalancerIds":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["ids","listeners","id"],"type":"object"}},"alicloud:alb/getLoadBalancers:getLoadBalancers":{"description":"This data source provides the Alb Load Balancers of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.132.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultGetZones = alicloud.alb.getZones({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n    enableIpv6: true,\n});\nconst zoneA = new alicloud.ecs.Eip(\"zone_a\", {\n    bandwidth: \"10\",\n    internetChargeType: \"PayByTraffic\",\n});\nconst zoneASwitch = new alicloud.vpc.Switch(\"zone_a\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"192.168.0.0/18\",\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n    ipv6CidrBlockMask: 6,\n});\nconst zoneB = new alicloud.vpc.Switch(\"zone_b\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"192.168.128.0/18\",\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[1]?.id),\n    ipv6CidrBlockMask: 8,\n});\nconst defaultIpv6Gateway = new alicloud.vpc.Ipv6Gateway(\"default\", {\n    ipv6GatewayName: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultCommonBandwithPackage = new alicloud.vpc.CommonBandwithPackage(\"default\", {\n    bandwidth: \"1000\",\n    internetChargeType: \"PayByBandwidth\",\n});\nconst defaultLoadBalancer = new alicloud.alb.LoadBalancer(\"default\", {\n    loadBalancerEdition: \"Basic\",\n    addressType: \"Internet\",\n    vpcId: defaultIpv6Gateway.vpcId,\n    addressAllocatedMode: \"Fixed\",\n    addressIpVersion: \"DualStack\",\n    ipv6AddressType: \"Internet\",\n    bandwidthPackageId: defaultCommonBandwithPackage.id,\n    resourceGroupId: _default.then(_default =\u003e _default.groups?.[1]?.id),\n    loadBalancerName: name,\n    deletionProtectionEnabled: false,\n    loadBalancerBillingConfig: {\n        payType: \"PayAsYouGo\",\n    },\n    zoneMappings: [\n        {\n            vswitchId: zoneASwitch.id,\n            zoneId: zoneASwitch.zoneId,\n            eipType: \"Common\",\n            allocationId: zoneA.id,\n            intranetAddress: \"192.168.10.1\",\n        },\n        {\n            vswitchId: zoneB.id,\n            zoneId: zoneB.zoneId,\n        },\n    ],\n    tags: {\n        Created: \"TF\",\n    },\n});\nconst ids = alicloud.alb.getLoadBalancersOutput({\n    ids: [defaultLoadBalancer.id],\n});\nexport const albLoadBalancersId0 = ids.apply(ids =\u003e ids.balancers?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_get_zones = alicloud.alb.get_zones()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\",\n    enable_ipv6=True)\nzone_a = alicloud.ecs.Eip(\"zone_a\",\n    bandwidth=\"10\",\n    internet_charge_type=\"PayByTraffic\")\nzone_a_switch = alicloud.vpc.Switch(\"zone_a\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"192.168.0.0/18\",\n    zone_id=default_get_zones.zones[0].id,\n    ipv6_cidr_block_mask=6)\nzone_b = alicloud.vpc.Switch(\"zone_b\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"192.168.128.0/18\",\n    zone_id=default_get_zones.zones[1].id,\n    ipv6_cidr_block_mask=8)\ndefault_ipv6_gateway = alicloud.vpc.Ipv6Gateway(\"default\",\n    ipv6_gateway_name=name,\n    vpc_id=default_network.id)\ndefault_common_bandwith_package = alicloud.vpc.CommonBandwithPackage(\"default\",\n    bandwidth=\"1000\",\n    internet_charge_type=\"PayByBandwidth\")\ndefault_load_balancer = alicloud.alb.LoadBalancer(\"default\",\n    load_balancer_edition=\"Basic\",\n    address_type=\"Internet\",\n    vpc_id=default_ipv6_gateway.vpc_id,\n    address_allocated_mode=\"Fixed\",\n    address_ip_version=\"DualStack\",\n    ipv6_address_type=\"Internet\",\n    bandwidth_package_id=default_common_bandwith_package.id,\n    resource_group_id=default.groups[1].id,\n    load_balancer_name=name,\n    deletion_protection_enabled=False,\n    load_balancer_billing_config={\n        \"pay_type\": \"PayAsYouGo\",\n    },\n    zone_mappings=[\n        {\n            \"vswitch_id\": zone_a_switch.id,\n            \"zone_id\": zone_a_switch.zone_id,\n            \"eip_type\": \"Common\",\n            \"allocation_id\": zone_a.id,\n            \"intranet_address\": \"192.168.10.1\",\n        },\n        {\n            \"vswitch_id\": zone_b.id,\n            \"zone_id\": zone_b.zone_id,\n        },\n    ],\n    tags={\n        \"Created\": \"TF\",\n    })\nids = alicloud.alb.get_load_balancers_output(ids=[default_load_balancer.id])\npulumi.export(\"albLoadBalancersId0\", ids.balancers[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultGetZones = AliCloud.Alb.GetZones.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n        EnableIpv6 = true,\n    });\n\n    var zoneA = new AliCloud.Ecs.Eip(\"zone_a\", new()\n    {\n        Bandwidth = \"10\",\n        InternetChargeType = \"PayByTraffic\",\n    });\n\n    var zoneASwitch = new AliCloud.Vpc.Switch(\"zone_a\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"192.168.0.0/18\",\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        Ipv6CidrBlockMask = 6,\n    });\n\n    var zoneB = new AliCloud.Vpc.Switch(\"zone_b\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"192.168.128.0/18\",\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id),\n        Ipv6CidrBlockMask = 8,\n    });\n\n    var defaultIpv6Gateway = new AliCloud.Vpc.Ipv6Gateway(\"default\", new()\n    {\n        Ipv6GatewayName = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultCommonBandwithPackage = new AliCloud.Vpc.CommonBandwithPackage(\"default\", new()\n    {\n        Bandwidth = \"1000\",\n        InternetChargeType = \"PayByBandwidth\",\n    });\n\n    var defaultLoadBalancer = new AliCloud.Alb.LoadBalancer(\"default\", new()\n    {\n        LoadBalancerEdition = \"Basic\",\n        AddressType = \"Internet\",\n        VpcId = defaultIpv6Gateway.VpcId,\n        AddressAllocatedMode = \"Fixed\",\n        AddressIpVersion = \"DualStack\",\n        Ipv6AddressType = \"Internet\",\n        BandwidthPackageId = defaultCommonBandwithPackage.Id,\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[1]?.Id)),\n        LoadBalancerName = name,\n        DeletionProtectionEnabled = false,\n        LoadBalancerBillingConfig = new AliCloud.Alb.Inputs.LoadBalancerLoadBalancerBillingConfigArgs\n        {\n            PayType = \"PayAsYouGo\",\n        },\n        ZoneMappings = new[]\n        {\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = zoneASwitch.Id,\n                ZoneId = zoneASwitch.ZoneId,\n                EipType = \"Common\",\n                AllocationId = zoneA.Id,\n                IntranetAddress = \"192.168.10.1\",\n            },\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = zoneB.Id,\n                ZoneId = zoneB.ZoneId,\n            },\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n    });\n\n    var ids = AliCloud.Alb.GetLoadBalancers.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultLoadBalancer.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"albLoadBalancersId0\"] = ids.Apply(getLoadBalancersResult =\u003e getLoadBalancersResult.Balancers[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alb.GetZones(ctx, \u0026alb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:    pulumi.String(name),\n\t\t\tCidrBlock:  pulumi.String(\"192.168.0.0/16\"),\n\t\t\tEnableIpv6: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tzoneA, err := ecs.NewEip(ctx, \"zone_a\", \u0026ecs.EipArgs{\n\t\t\tBandwidth:          pulumi.String(\"10\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByTraffic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tzoneASwitch, err := vpc.NewSwitch(ctx, \"zone_a\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName:       pulumi.String(name),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t\tCidrBlock:         pulumi.String(\"192.168.0.0/18\"),\n\t\t\tZoneId:            pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\tIpv6CidrBlockMask: pulumi.Int(6),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tzoneB, err := vpc.NewSwitch(ctx, \"zone_b\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName:       pulumi.String(name),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t\tCidrBlock:         pulumi.String(\"192.168.128.0/18\"),\n\t\t\tZoneId:            pulumi.String(defaultGetZones.Zones[1].Id),\n\t\t\tIpv6CidrBlockMask: pulumi.Int(8),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultIpv6Gateway, err := vpc.NewIpv6Gateway(ctx, \"default\", \u0026vpc.Ipv6GatewayArgs{\n\t\t\tIpv6GatewayName: pulumi.String(name),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCommonBandwithPackage, err := vpc.NewCommonBandwithPackage(ctx, \"default\", \u0026vpc.CommonBandwithPackageArgs{\n\t\t\tBandwidth:          pulumi.String(\"1000\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByBandwidth\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultLoadBalancer, err := alb.NewLoadBalancer(ctx, \"default\", \u0026alb.LoadBalancerArgs{\n\t\t\tLoadBalancerEdition:       pulumi.String(\"Basic\"),\n\t\t\tAddressType:               pulumi.String(\"Internet\"),\n\t\t\tVpcId:                     defaultIpv6Gateway.VpcId,\n\t\t\tAddressAllocatedMode:      pulumi.String(\"Fixed\"),\n\t\t\tAddressIpVersion:          pulumi.String(\"DualStack\"),\n\t\t\tIpv6AddressType:           pulumi.String(\"Internet\"),\n\t\t\tBandwidthPackageId:        defaultCommonBandwithPackage.ID(),\n\t\t\tResourceGroupId:           pulumi.String(_default.Groups[1].Id),\n\t\t\tLoadBalancerName:          pulumi.String(name),\n\t\t\tDeletionProtectionEnabled: pulumi.Bool(false),\n\t\t\tLoadBalancerBillingConfig: \u0026alb.LoadBalancerLoadBalancerBillingConfigArgs{\n\t\t\t\tPayType: pulumi.String(\"PayAsYouGo\"),\n\t\t\t},\n\t\t\tZoneMappings: alb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId:       zoneASwitch.ID(),\n\t\t\t\t\tZoneId:          zoneASwitch.ZoneId,\n\t\t\t\t\tEipType:         pulumi.String(\"Common\"),\n\t\t\t\t\tAllocationId:    zoneA.ID(),\n\t\t\t\t\tIntranetAddress: pulumi.String(\"192.168.10.1\"),\n\t\t\t\t},\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: zoneB.ID(),\n\t\t\t\t\tZoneId:    zoneB.ZoneId,\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := alb.GetLoadBalancersOutput(ctx, alb.GetLoadBalancersOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultLoadBalancer.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"albLoadBalancersId0\", ids.ApplyT(func(ids alb.GetLoadBalancersResult) (*string, error) {\n\t\t\treturn \u0026ids.Balancers[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.ecs.Eip;\nimport com.pulumi.alicloud.ecs.EipArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.Ipv6Gateway;\nimport com.pulumi.alicloud.vpc.Ipv6GatewayArgs;\nimport com.pulumi.alicloud.vpc.CommonBandwithPackage;\nimport com.pulumi.alicloud.vpc.CommonBandwithPackageArgs;\nimport com.pulumi.alicloud.alb.LoadBalancer;\nimport com.pulumi.alicloud.alb.LoadBalancerArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerLoadBalancerBillingConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.alb.inputs.GetLoadBalancersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        final var defaultGetZones = AlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .enableIpv6(true)\n            .build());\n\n        var zoneA = new Eip(\"zoneA\", EipArgs.builder()\n            .bandwidth(\"10\")\n            .internetChargeType(\"PayByTraffic\")\n            .build());\n\n        var zoneASwitch = new Switch(\"zoneASwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"192.168.0.0/18\")\n            .zoneId(defaultGetZones.zones()[0].id())\n            .ipv6CidrBlockMask(6)\n            .build());\n\n        var zoneB = new Switch(\"zoneB\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"192.168.128.0/18\")\n            .zoneId(defaultGetZones.zones()[1].id())\n            .ipv6CidrBlockMask(8)\n            .build());\n\n        var defaultIpv6Gateway = new Ipv6Gateway(\"defaultIpv6Gateway\", Ipv6GatewayArgs.builder()\n            .ipv6GatewayName(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultCommonBandwithPackage = new CommonBandwithPackage(\"defaultCommonBandwithPackage\", CommonBandwithPackageArgs.builder()\n            .bandwidth(\"1000\")\n            .internetChargeType(\"PayByBandwidth\")\n            .build());\n\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .loadBalancerEdition(\"Basic\")\n            .addressType(\"Internet\")\n            .vpcId(defaultIpv6Gateway.vpcId())\n            .addressAllocatedMode(\"Fixed\")\n            .addressIpVersion(\"DualStack\")\n            .ipv6AddressType(\"Internet\")\n            .bandwidthPackageId(defaultCommonBandwithPackage.id())\n            .resourceGroupId(default_.groups()[1].id())\n            .loadBalancerName(name)\n            .deletionProtectionEnabled(false)\n            .loadBalancerBillingConfig(LoadBalancerLoadBalancerBillingConfigArgs.builder()\n                .payType(\"PayAsYouGo\")\n                .build())\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(zoneASwitch.id())\n                    .zoneId(zoneASwitch.zoneId())\n                    .eipType(\"Common\")\n                    .allocationId(zoneA.id())\n                    .intranetAddress(\"192.168.10.1\")\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(zoneB.id())\n                    .zoneId(zoneB.zoneId())\n                    .build())\n            .tags(Map.of(\"Created\", \"TF\"))\n            .build());\n\n        final var ids = AlbFunctions.getLoadBalancers(GetLoadBalancersArgs.builder()\n            .ids(defaultLoadBalancer.id())\n            .build());\n\n        ctx.export(\"albLoadBalancersId0\", ids.applyValue(_ids -\u003e _ids.balancers()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n      enableIpv6: 'true'\n  zoneA:\n    type: alicloud:ecs:Eip\n    name: zone_a\n    properties:\n      bandwidth: '10'\n      internetChargeType: PayByTraffic\n  zoneASwitch:\n    type: alicloud:vpc:Switch\n    name: zone_a\n    properties:\n      vswitchName: ${name}\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 192.168.0.0/18\n      zoneId: ${defaultGetZones.zones[0].id}\n      ipv6CidrBlockMask: '6'\n  zoneB:\n    type: alicloud:vpc:Switch\n    name: zone_b\n    properties:\n      vswitchName: ${name}\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 192.168.128.0/18\n      zoneId: ${defaultGetZones.zones[1].id}\n      ipv6CidrBlockMask: '8'\n  defaultIpv6Gateway:\n    type: alicloud:vpc:Ipv6Gateway\n    name: default\n    properties:\n      ipv6GatewayName: ${name}\n      vpcId: ${defaultNetwork.id}\n  defaultCommonBandwithPackage:\n    type: alicloud:vpc:CommonBandwithPackage\n    name: default\n    properties:\n      bandwidth: 1000\n      internetChargeType: PayByBandwidth\n  defaultLoadBalancer:\n    type: alicloud:alb:LoadBalancer\n    name: default\n    properties:\n      loadBalancerEdition: Basic\n      addressType: Internet\n      vpcId: ${defaultIpv6Gateway.vpcId}\n      addressAllocatedMode: Fixed\n      addressIpVersion: DualStack\n      ipv6AddressType: Internet\n      bandwidthPackageId: ${defaultCommonBandwithPackage.id}\n      resourceGroupId: ${default.groups[1].id}\n      loadBalancerName: ${name}\n      deletionProtectionEnabled: false\n      loadBalancerBillingConfig:\n        payType: PayAsYouGo\n      zoneMappings:\n        - vswitchId: ${zoneASwitch.id}\n          zoneId: ${zoneASwitch.zoneId}\n          eipType: Common\n          allocationId: ${zoneA.id}\n          intranetAddress: 192.168.10.1\n        - vswitchId: ${zoneB.id}\n          zoneId: ${zoneB.zoneId}\n      tags:\n        Created: TF\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:alb:getZones\n      arguments: {}\n  ids:\n    fn::invoke:\n      function: alicloud:alb:getLoadBalancers\n      arguments:\n        ids:\n          - ${defaultLoadBalancer.id}\noutputs:\n  albLoadBalancersId0: ${ids.balancers[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLoadBalancers.\n","properties":{"addressType":{"type":"string","description":"The type of IP address that the ALB instance uses to provide services. Valid values: `Intranet`, `Internet`.\n"},"enableDetails":{"type":"boolean","description":"Whether to query the detailed list of resource attributes. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Load Balancer IDs.\n"},"loadBalancerBusinessStatus":{"type":"string","description":"Load Balancing of the Service Status. Valid Values: `Abnormal`and `Normal`.\n"},"loadBalancerBussinessStatus":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`loadBalancerBussinessStatus`\" pulumi-lang-dotnet=\"`LoadBalancerBussinessStatus`\" pulumi-lang-go=\"`loadBalancerBussinessStatus`\" pulumi-lang-python=\"`load_balancer_bussiness_status`\" pulumi-lang-yaml=\"`loadBalancerBussinessStatus`\" pulumi-lang-java=\"`loadBalancerBussinessStatus`\"\u003e`load_balancer_bussiness_status`\u003c/span\u003e has been deprecated from provider version 1.142.0. New field \u003cspan pulumi-lang-nodejs=\"`loadBalancerBusinessStatus`\" pulumi-lang-dotnet=\"`LoadBalancerBusinessStatus`\" pulumi-lang-go=\"`loadBalancerBusinessStatus`\" pulumi-lang-python=\"`load_balancer_business_status`\" pulumi-lang-yaml=\"`loadBalancerBusinessStatus`\" pulumi-lang-java=\"`loadBalancerBusinessStatus`\"\u003e`load_balancer_business_status`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'load_balancer_bussiness_status' has been deprecated from provider version 1.142.0 and it will be removed in the future version. Please use the new attribute 'load_balancer_business_status' instead."},"loadBalancerIds":{"type":"array","items":{"type":"string"},"description":"The load balancer ids.\n"},"loadBalancerName":{"type":"string","description":"The name of the resource.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Load Balancer name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The load balancer status. Valid values: `Active`, `Configuring`, `CreateFailed`, `Inactive` and `Provisioning`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) where the ALB instance is deployed.\n"},"vpcIds":{"type":"array","items":{"type":"string"},"description":"The vpc ids.\n"},"zoneId":{"type":"string","description":"The zone ID of the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLoadBalancers.\n","properties":{"addressType":{"description":"The type of IP address that the ALB instance uses to provide services.\n","type":"string"},"balancers":{"description":"A list of Alb Load Balancers. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:alb/getLoadBalancersBalancer:getLoadBalancersBalancer"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"loadBalancerBusinessStatus":{"description":"(Available since v1.142.0) Load Balancing of the Service Status.\n","type":"string"},"loadBalancerBussinessStatus":{"deprecationMessage":"Field 'load_balancer_bussiness_status' has been deprecated from provider version 1.142.0 and it will be removed in the future version. Please use the new attribute 'load_balancer_business_status' instead.","description":"(Deprecated since v1.142.0) Load Balancing of the Service Status. **NOTE:** Field \u003cspan pulumi-lang-nodejs=\"`loadBalancerBussinessStatus`\" pulumi-lang-dotnet=\"`LoadBalancerBussinessStatus`\" pulumi-lang-go=\"`loadBalancerBussinessStatus`\" pulumi-lang-python=\"`load_balancer_bussiness_status`\" pulumi-lang-yaml=\"`loadBalancerBussinessStatus`\" pulumi-lang-java=\"`loadBalancerBussinessStatus`\"\u003e`load_balancer_bussiness_status`\u003c/span\u003e has been deprecated from provider version 1.142.0. New field \u003cspan pulumi-lang-nodejs=\"`loadBalancerBusinessStatus`\" pulumi-lang-dotnet=\"`LoadBalancerBusinessStatus`\" pulumi-lang-go=\"`loadBalancerBusinessStatus`\" pulumi-lang-python=\"`load_balancer_business_status`\" pulumi-lang-yaml=\"`loadBalancerBusinessStatus`\" pulumi-lang-java=\"`loadBalancerBusinessStatus`\"\u003e`load_balancer_business_status`\u003c/span\u003e instead.\n","type":"string"},"loadBalancerIds":{"items":{"type":"string"},"type":"array"},"loadBalancerName":{"description":"The name of the resource.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Load Balancer names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"description":"The ID of the resource group.\n","type":"string"},"status":{"description":"(Available since v1.250.0) The zone status.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tag of the resource.\n","type":"object"},"vpcId":{"description":"The ID of the virtual private cloud (VPC) where the ALB instance is deployed.\n","type":"string"},"vpcIds":{"items":{"type":"string"},"type":"array"},"zoneId":{"description":"The ID of the zone to which the ALB instance belongs.\n","type":"string"}},"required":["balancers","ids","names","id"],"type":"object"}},"alicloud:alb/getRules:getRules":{"description":"This data source provides the Alb Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.133.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.alb.getZones({});\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch: alicloud.vpc.Switch[] = [];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n    defaultSwitch.push(new alicloud.vpc.Switch(`default-${range.value}`, {\n        vpcId: defaultNetwork.id,\n        cidrBlock: std.format({\n            input: \"10.4.%d.0/24\",\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n        zoneId: _default.then(_default =\u003e _default.zones[range.value].id),\n        vswitchName: std.format({\n            input: `${name}_%d`,\n            args: [range.value + 1],\n        }).then(invoke =\u003e invoke.result),\n    }));\n}\nconst defaultLoadBalancer = new alicloud.alb.LoadBalancer(\"default\", {\n    vpcId: defaultNetwork.id,\n    addressType: \"Internet\",\n    addressAllocatedMode: \"Fixed\",\n    loadBalancerName: name,\n    loadBalancerEdition: \"Standard\",\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    loadBalancerBillingConfig: {\n        payType: \"PayAsYouGo\",\n    },\n    tags: {\n        Created: \"TF\",\n    },\n    zoneMappings: [\n        {\n            vswitchId: defaultSwitch[0].id,\n            zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n        },\n        {\n            vswitchId: defaultSwitch[1].id,\n            zoneId: _default.then(_default =\u003e _default.zones?.[1]?.id),\n        },\n    ],\n});\nconst defaultServerGroup = new alicloud.alb.ServerGroup(\"default\", {\n    protocol: \"HTTP\",\n    vpcId: defaultNetwork.id,\n    serverGroupName: name,\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[0]?.id),\n    healthCheckConfig: {\n        healthCheckEnabled: false,\n    },\n    stickySessionConfig: {\n        stickySessionEnabled: false,\n    },\n    tags: {\n        Created: \"TF\",\n    },\n});\nconst defaultListener = new alicloud.alb.Listener(\"default\", {\n    loadBalancerId: defaultLoadBalancer.id,\n    listenerProtocol: \"HTTP\",\n    listenerPort: 80,\n    listenerDescription: name,\n    defaultActions: [{\n        type: \"ForwardGroup\",\n        forwardGroupConfig: {\n            serverGroupTuples: [{\n                serverGroupId: defaultServerGroup.id,\n            }],\n        },\n    }],\n});\nconst defaultRule = new alicloud.alb.Rule(\"default\", {\n    ruleName: name,\n    listenerId: defaultListener.id,\n    priority: 555,\n    ruleConditions: [{\n        cookieConfig: {\n            values: [{\n                key: \"created\",\n                value: \"tf\",\n            }],\n        },\n        type: \"Cookie\",\n    }],\n    ruleActions: [{\n        forwardGroupConfig: {\n            serverGroupTuples: [{\n                serverGroupId: defaultServerGroup.id,\n            }],\n        },\n        order: 9,\n        type: \"ForwardGroup\",\n    }],\n});\nconst ids = alicloud.alb.getRulesOutput({\n    ids: [defaultRule.id],\n});\nexport const albRuleId = ids.apply(ids =\u003e ids.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.alb.get_zones()\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    default_switch.append(alicloud.vpc.Switch(f\"default-{range['value']}\",\n        vpc_id=default_network.id,\n        cidr_block=std.format(input=\"10.4.%d.0/24\",\n            args=[range[\"value\"] + 1]).result,\n        zone_id=default.zones[range[\"value\"]].id,\n        vswitch_name=std.format(input=f\"{name}_%d\",\n            args=[range[\"value\"] + 1]).result))\ndefault_load_balancer = alicloud.alb.LoadBalancer(\"default\",\n    vpc_id=default_network.id,\n    address_type=\"Internet\",\n    address_allocated_mode=\"Fixed\",\n    load_balancer_name=name,\n    load_balancer_edition=\"Standard\",\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    load_balancer_billing_config={\n        \"pay_type\": \"PayAsYouGo\",\n    },\n    tags={\n        \"Created\": \"TF\",\n    },\n    zone_mappings=[\n        {\n            \"vswitch_id\": default_switch[0].id,\n            \"zone_id\": default.zones[0].id,\n        },\n        {\n            \"vswitch_id\": default_switch[1].id,\n            \"zone_id\": default.zones[1].id,\n        },\n    ])\ndefault_server_group = alicloud.alb.ServerGroup(\"default\",\n    protocol=\"HTTP\",\n    vpc_id=default_network.id,\n    server_group_name=name,\n    resource_group_id=default_get_resource_groups.groups[0].id,\n    health_check_config={\n        \"health_check_enabled\": False,\n    },\n    sticky_session_config={\n        \"sticky_session_enabled\": False,\n    },\n    tags={\n        \"Created\": \"TF\",\n    })\ndefault_listener = alicloud.alb.Listener(\"default\",\n    load_balancer_id=default_load_balancer.id,\n    listener_protocol=\"HTTP\",\n    listener_port=80,\n    listener_description=name,\n    default_actions=[{\n        \"type\": \"ForwardGroup\",\n        \"forward_group_config\": {\n            \"server_group_tuples\": [{\n                \"server_group_id\": default_server_group.id,\n            }],\n        },\n    }])\ndefault_rule = alicloud.alb.Rule(\"default\",\n    rule_name=name,\n    listener_id=default_listener.id,\n    priority=555,\n    rule_conditions=[{\n        \"cookie_config\": {\n            \"values\": [{\n                \"key\": \"created\",\n                \"value\": \"tf\",\n            }],\n        },\n        \"type\": \"Cookie\",\n    }],\n    rule_actions=[{\n        \"forward_group_config\": {\n            \"server_group_tuples\": [{\n                \"server_group_id\": default_server_group.id,\n            }],\n        },\n        \"order\": 9,\n        \"type\": \"ForwardGroup\",\n    }])\nids = alicloud.alb.get_rules_output(ids=[default_rule.id])\npulumi.export(\"albRuleId\", ids.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Alb.GetZones.Invoke();\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultSwitch.Add(new AliCloud.Vpc.Switch($\"default-{range.Value}\", new()\n        {\n            VpcId = defaultNetwork.Id,\n            CidrBlock = Std.Format.Invoke(new()\n            {\n                Input = \"10.4.%d.0/24\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n            ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[range.Value].Id),\n            VswitchName = Std.Format.Invoke(new()\n            {\n                Input = $\"{name}_%d\",\n                Args = new[]\n                {\n                    range.Value + 1,\n                },\n            }).Apply(invoke =\u003e invoke.Result),\n        }));\n    }\n    var defaultLoadBalancer = new AliCloud.Alb.LoadBalancer(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        AddressType = \"Internet\",\n        AddressAllocatedMode = \"Fixed\",\n        LoadBalancerName = name,\n        LoadBalancerEdition = \"Standard\",\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        LoadBalancerBillingConfig = new AliCloud.Alb.Inputs.LoadBalancerLoadBalancerBillingConfigArgs\n        {\n            PayType = \"PayAsYouGo\",\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n        ZoneMappings = new[]\n        {\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch[0].Id,\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n            },\n            new AliCloud.Alb.Inputs.LoadBalancerZoneMappingArgs\n            {\n                VswitchId = defaultSwitch[1].Id,\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[1]?.Id)),\n            },\n        },\n    });\n\n    var defaultServerGroup = new AliCloud.Alb.ServerGroup(\"default\", new()\n    {\n        Protocol = \"HTTP\",\n        VpcId = defaultNetwork.Id,\n        ServerGroupName = name,\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n        HealthCheckConfig = new AliCloud.Alb.Inputs.ServerGroupHealthCheckConfigArgs\n        {\n            HealthCheckEnabled = false,\n        },\n        StickySessionConfig = new AliCloud.Alb.Inputs.ServerGroupStickySessionConfigArgs\n        {\n            StickySessionEnabled = false,\n        },\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n        },\n    });\n\n    var defaultListener = new AliCloud.Alb.Listener(\"default\", new()\n    {\n        LoadBalancerId = defaultLoadBalancer.Id,\n        ListenerProtocol = \"HTTP\",\n        ListenerPort = 80,\n        ListenerDescription = name,\n        DefaultActions = new[]\n        {\n            new AliCloud.Alb.Inputs.ListenerDefaultActionArgs\n            {\n                Type = \"ForwardGroup\",\n                ForwardGroupConfig = new AliCloud.Alb.Inputs.ListenerDefaultActionForwardGroupConfigArgs\n                {\n                    ServerGroupTuples = new[]\n                    {\n                        new AliCloud.Alb.Inputs.ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs\n                        {\n                            ServerGroupId = defaultServerGroup.Id,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var defaultRule = new AliCloud.Alb.Rule(\"default\", new()\n    {\n        RuleName = name,\n        ListenerId = defaultListener.Id,\n        Priority = 555,\n        RuleConditions = new[]\n        {\n            new AliCloud.Alb.Inputs.RuleRuleConditionArgs\n            {\n                CookieConfig = new AliCloud.Alb.Inputs.RuleRuleConditionCookieConfigArgs\n                {\n                    Values = new[]\n                    {\n                        new AliCloud.Alb.Inputs.RuleRuleConditionCookieConfigValueArgs\n                        {\n                            Key = \"created\",\n                            Value = \"tf\",\n                        },\n                    },\n                },\n                Type = \"Cookie\",\n            },\n        },\n        RuleActions = new[]\n        {\n            new AliCloud.Alb.Inputs.RuleRuleActionArgs\n            {\n                ForwardGroupConfig = new AliCloud.Alb.Inputs.RuleRuleActionForwardGroupConfigArgs\n                {\n                    ServerGroupTuples = new[]\n                    {\n                        new AliCloud.Alb.Inputs.RuleRuleActionForwardGroupConfigServerGroupTupleArgs\n                        {\n                            ServerGroupId = defaultServerGroup.Id,\n                        },\n                    },\n                },\n                Order = 9,\n                Type = \"ForwardGroup\",\n            },\n        },\n    });\n\n    var ids = AliCloud.Alb.GetRules.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultRule.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"albRuleId\"] = ids.Apply(getRulesResult =\u003e getRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alb.GetZones(ctx, \u0026alb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: \"10.4.%d.0/24\",\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\n\t\t\tInput: fmt.Sprintf(\"%v%v\", name, \"_%d\"),\n\t\t\tArgs: []float64{\n\t\t\t\tval0 + 1,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar defaultSwitch []*vpc.Switch\n\t\tfor index := 0; index \u003c 2; index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026vpc.SwitchArgs{\n\t\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\t\tCidrBlock:   pulumi.String(invokeFormat.Result),\n\t\t\t\tZoneId:      _default.Zones[val0].Id,\n\t\t\t\tVswitchName: pulumi.String(invokeFormat1.Result),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultSwitch = append(defaultSwitch, __res)\n\t\t}\n\t\tdefaultLoadBalancer, err := alb.NewLoadBalancer(ctx, \"default\", \u0026alb.LoadBalancerArgs{\n\t\t\tVpcId:                defaultNetwork.ID(),\n\t\t\tAddressType:          pulumi.String(\"Internet\"),\n\t\t\tAddressAllocatedMode: pulumi.String(\"Fixed\"),\n\t\t\tLoadBalancerName:     pulumi.String(name),\n\t\t\tLoadBalancerEdition:  pulumi.String(\"Standard\"),\n\t\t\tResourceGroupId:      pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tLoadBalancerBillingConfig: \u0026alb.LoadBalancerLoadBalancerBillingConfigArgs{\n\t\t\t\tPayType: pulumi.String(\"PayAsYouGo\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t\tZoneMappings: alb.LoadBalancerZoneMappingArray{\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch[0].ID(),\n\t\t\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t\t\t},\n\t\t\t\t\u0026alb.LoadBalancerZoneMappingArgs{\n\t\t\t\t\tVswitchId: defaultSwitch[1].ID(),\n\t\t\t\t\tZoneId:    pulumi.String(_default.Zones[1].Id),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultServerGroup, err := alb.NewServerGroup(ctx, \"default\", \u0026alb.ServerGroupArgs{\n\t\t\tProtocol:        pulumi.String(\"HTTP\"),\n\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t\tServerGroupName: pulumi.String(name),\n\t\t\tResourceGroupId: pulumi.String(defaultGetResourceGroups.Groups[0].Id),\n\t\t\tHealthCheckConfig: \u0026alb.ServerGroupHealthCheckConfigArgs{\n\t\t\t\tHealthCheckEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tStickySessionConfig: \u0026alb.ServerGroupStickySessionConfigArgs{\n\t\t\t\tStickySessionEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultListener, err := alb.NewListener(ctx, \"default\", \u0026alb.ListenerArgs{\n\t\t\tLoadBalancerId:      defaultLoadBalancer.ID(),\n\t\t\tListenerProtocol:    pulumi.String(\"HTTP\"),\n\t\t\tListenerPort:        pulumi.Int(80),\n\t\t\tListenerDescription: pulumi.String(name),\n\t\t\tDefaultActions: alb.ListenerDefaultActionArray{\n\t\t\t\t\u0026alb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"ForwardGroup\"),\n\t\t\t\t\tForwardGroupConfig: \u0026alb.ListenerDefaultActionForwardGroupConfigArgs{\n\t\t\t\t\t\tServerGroupTuples: alb.ListenerDefaultActionForwardGroupConfigServerGroupTupleArray{\n\t\t\t\t\t\t\t\u0026alb.ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs{\n\t\t\t\t\t\t\t\tServerGroupId: defaultServerGroup.ID(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRule, err := alb.NewRule(ctx, \"default\", \u0026alb.RuleArgs{\n\t\t\tRuleName:   pulumi.String(name),\n\t\t\tListenerId: defaultListener.ID(),\n\t\t\tPriority:   pulumi.Int(555),\n\t\t\tRuleConditions: alb.RuleRuleConditionArray{\n\t\t\t\t\u0026alb.RuleRuleConditionArgs{\n\t\t\t\t\tCookieConfig: \u0026alb.RuleRuleConditionCookieConfigArgs{\n\t\t\t\t\t\tValues: alb.RuleRuleConditionCookieConfigValueArray{\n\t\t\t\t\t\t\t\u0026alb.RuleRuleConditionCookieConfigValueArgs{\n\t\t\t\t\t\t\t\tKey:   pulumi.String(\"created\"),\n\t\t\t\t\t\t\t\tValue: pulumi.String(\"tf\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tType: pulumi.String(\"Cookie\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRuleActions: alb.RuleRuleActionArray{\n\t\t\t\t\u0026alb.RuleRuleActionArgs{\n\t\t\t\t\tForwardGroupConfig: \u0026alb.RuleRuleActionForwardGroupConfigArgs{\n\t\t\t\t\t\tServerGroupTuples: alb.RuleRuleActionForwardGroupConfigServerGroupTupleArray{\n\t\t\t\t\t\t\t\u0026alb.RuleRuleActionForwardGroupConfigServerGroupTupleArgs{\n\t\t\t\t\t\t\t\tServerGroupId: defaultServerGroup.ID(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tOrder: pulumi.Int(9),\n\t\t\t\t\tType:  pulumi.String(\"ForwardGroup\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := alb.GetRulesOutput(ctx, alb.GetRulesOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultRule.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"albRuleId\", ids.ApplyT(func(ids alb.GetRulesResult) (*string, error) {\n\t\t\treturn \u0026ids.Rules[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.alb.LoadBalancer;\nimport com.pulumi.alicloud.alb.LoadBalancerArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerLoadBalancerBillingConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.LoadBalancerZoneMappingArgs;\nimport com.pulumi.alicloud.alb.ServerGroup;\nimport com.pulumi.alicloud.alb.ServerGroupArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupHealthCheckConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupStickySessionConfigArgs;\nimport com.pulumi.alicloud.alb.Listener;\nimport com.pulumi.alicloud.alb.ListenerArgs;\nimport com.pulumi.alicloud.alb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.alicloud.alb.inputs.ListenerDefaultActionForwardGroupConfigArgs;\nimport com.pulumi.alicloud.alb.Rule;\nimport com.pulumi.alicloud.alb.RuleArgs;\nimport com.pulumi.alicloud.alb.inputs.RuleRuleConditionArgs;\nimport com.pulumi.alicloud.alb.inputs.RuleRuleConditionCookieConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.RuleRuleActionArgs;\nimport com.pulumi.alicloud.alb.inputs.RuleRuleActionForwardGroupConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.GetRulesArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        for (var i = 0; i \u003c 2; i++) {\n            new Switch(\"defaultSwitch-\" + i, SwitchArgs.builder()\n                .vpcId(defaultNetwork.id())\n                .cidrBlock(StdFunctions.format(FormatArgs.builder()\n                    .input(\"10.4.%d.0/24\")\n                    .args(range.value() + 1)\n                    .build()).result())\n                .zoneId(default_.zones()[range.value()].id())\n                .vswitchName(StdFunctions.format(FormatArgs.builder()\n                    .input(String.format(\"%s_%d\", name))\n                    .args(range.value() + 1)\n                    .build()).result())\n                .build());\n\n        \n}\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .addressType(\"Internet\")\n            .addressAllocatedMode(\"Fixed\")\n            .loadBalancerName(name)\n            .loadBalancerEdition(\"Standard\")\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .loadBalancerBillingConfig(LoadBalancerLoadBalancerBillingConfigArgs.builder()\n                .payType(\"PayAsYouGo\")\n                .build())\n            .tags(Map.of(\"Created\", \"TF\"))\n            .zoneMappings(            \n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch[0].id())\n                    .zoneId(default_.zones()[0].id())\n                    .build(),\n                LoadBalancerZoneMappingArgs.builder()\n                    .vswitchId(defaultSwitch[1].id())\n                    .zoneId(default_.zones()[1].id())\n                    .build())\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .protocol(\"HTTP\")\n            .vpcId(defaultNetwork.id())\n            .serverGroupName(name)\n            .resourceGroupId(defaultGetResourceGroups.groups()[0].id())\n            .healthCheckConfig(ServerGroupHealthCheckConfigArgs.builder()\n                .healthCheckEnabled(false)\n                .build())\n            .stickySessionConfig(ServerGroupStickySessionConfigArgs.builder()\n                .stickySessionEnabled(false)\n                .build())\n            .tags(Map.of(\"Created\", \"TF\"))\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .loadBalancerId(defaultLoadBalancer.id())\n            .listenerProtocol(\"HTTP\")\n            .listenerPort(80)\n            .listenerDescription(name)\n            .defaultActions(ListenerDefaultActionArgs.builder()\n                .type(\"ForwardGroup\")\n                .forwardGroupConfig(ListenerDefaultActionForwardGroupConfigArgs.builder()\n                    .serverGroupTuples(ListenerDefaultActionForwardGroupConfigServerGroupTupleArgs.builder()\n                        .serverGroupId(defaultServerGroup.id())\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var defaultRule = new Rule(\"defaultRule\", RuleArgs.builder()\n            .ruleName(name)\n            .listenerId(defaultListener.id())\n            .priority(555)\n            .ruleConditions(RuleRuleConditionArgs.builder()\n                .cookieConfig(RuleRuleConditionCookieConfigArgs.builder()\n                    .values(RuleRuleConditionCookieConfigValueArgs.builder()\n                        .key(\"created\")\n                        .value(\"tf\")\n                        .build())\n                    .build())\n                .type(\"Cookie\")\n                .build())\n            .ruleActions(RuleRuleActionArgs.builder()\n                .forwardGroupConfig(RuleRuleActionForwardGroupConfigArgs.builder()\n                    .serverGroupTuples(RuleRuleActionForwardGroupConfigServerGroupTupleArgs.builder()\n                        .serverGroupId(defaultServerGroup.id())\n                        .build())\n                    .build())\n                .order(9)\n                .type(\"ForwardGroup\")\n                .build())\n            .build());\n\n        final var ids = AlbFunctions.getRules(GetRulesArgs.builder()\n            .ids(defaultRule.id())\n            .build());\n\n        ctx.export(\"albRuleId\", ids.applyValue(_ids -\u003e _ids.rules()[0].id()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRules.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Rule IDs.\n"},"listenerIds":{"type":"array","items":{"type":"string"},"description":"The listener ids.\n"},"loadBalancerIds":{"type":"array","items":{"type":"string"},"description":"The load balancer ids.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"ruleIds":{"type":"array","items":{"type":"string"},"description":"The rule ids.\n"},"status":{"type":"string","description":"The status of the forwarding rule. Valid values: `Provisioning`, `Configuring`, `Available`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRules.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"listenerIds":{"items":{"type":"string"},"type":"array"},"loadBalancerIds":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Rule names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"ruleIds":{"items":{"type":"string"},"type":"array"},"rules":{"description":"A list of Alb Rules. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:alb/getRulesRule:getRulesRule"},"type":"array"},"status":{"description":"The status of the forwarding rule.\n","type":"string"}},"required":["ids","names","rules","id"],"type":"object"}},"alicloud:alb/getSecurityPolicies:getSecurityPolicies":{"description":"This data source provides the Alb Security Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.130.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.alb.getSecurityPolicies({});\nexport const albSecurityPolicyId1 = ids.then(ids =\u003e ids.policies?.[0]?.id);\nconst nameRegex = alicloud.alb.getSecurityPolicies({\n    nameRegex: \"^my-SecurityPolicy\",\n});\nexport const albSecurityPolicyId2 = nameRegex.then(nameRegex =\u003e nameRegex.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.alb.get_security_policies()\npulumi.export(\"albSecurityPolicyId1\", ids.policies[0].id)\nname_regex = alicloud.alb.get_security_policies(name_regex=\"^my-SecurityPolicy\")\npulumi.export(\"albSecurityPolicyId2\", name_regex.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Alb.GetSecurityPolicies.Invoke();\n\n    var nameRegex = AliCloud.Alb.GetSecurityPolicies.Invoke(new()\n    {\n        NameRegex = \"^my-SecurityPolicy\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"albSecurityPolicyId1\"] = ids.Apply(getSecurityPoliciesResult =\u003e getSecurityPoliciesResult.Policies[0]?.Id),\n        [\"albSecurityPolicyId2\"] = nameRegex.Apply(getSecurityPoliciesResult =\u003e getSecurityPoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := alb.GetSecurityPolicies(ctx, \u0026alb.GetSecurityPoliciesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"albSecurityPolicyId1\", ids.Policies[0].Id)\n\t\tnameRegex, err := alb.GetSecurityPolicies(ctx, \u0026alb.GetSecurityPoliciesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-SecurityPolicy\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"albSecurityPolicyId2\", nameRegex.Policies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetSecurityPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = AlbFunctions.getSecurityPolicies(GetSecurityPoliciesArgs.builder()\n            .build());\n\n        ctx.export(\"albSecurityPolicyId1\", ids.policies()[0].id());\n        final var nameRegex = AlbFunctions.getSecurityPolicies(GetSecurityPoliciesArgs.builder()\n            .nameRegex(\"^my-SecurityPolicy\")\n            .build());\n\n        ctx.export(\"albSecurityPolicyId2\", nameRegex.policies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:alb:getSecurityPolicies\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:alb:getSecurityPolicies\n      arguments:\n        nameRegex: ^my-SecurityPolicy\noutputs:\n  albSecurityPolicyId1: ${ids.policies[0].id}\n  albSecurityPolicyId2: ${nameRegex.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSecurityPolicies.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Security Policy IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Security Policy name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityPolicyIds":{"type":"array","items":{"type":"string"},"description":"The security policy ids.\n"},"securityPolicyName":{"type":"string","description":"The name of the resource.\n"},"status":{"type":"string","description":"The status of the resource. Valid values : `Available`, `Configuring`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"type":"object"},"outputs":{"description":"A collection of values returned by getSecurityPolicies.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policies":{"items":{"$ref":"#/types/alicloud:alb/getSecurityPoliciesPolicy:getSecurityPoliciesPolicy"},"type":"array"},"resourceGroupId":{"type":"string"},"securityPolicyIds":{"items":{"type":"string"},"type":"array"},"securityPolicyName":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["ids","names","policies","id"],"type":"object"}},"alicloud:alb/getServerGroups:getServerGroups":{"description":"This data source provides the Alb Server Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.131.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultServerGroup = new alicloud.alb.ServerGroup(\"default\", {\n    protocol: \"HTTP\",\n    vpcId: _default.id,\n    serverGroupName: name,\n    healthCheckConfig: {\n        healthCheckEnabled: false,\n    },\n    stickySessionConfig: {\n        stickySessionEnabled: false,\n    },\n});\nconst ids = alicloud.alb.getServerGroupsOutput({\n    ids: [defaultServerGroup.id],\n});\nexport const albServerGroupId0 = ids.apply(ids =\u003e ids.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ndefault_server_group = alicloud.alb.ServerGroup(\"default\",\n    protocol=\"HTTP\",\n    vpc_id=default.id,\n    server_group_name=name,\n    health_check_config={\n        \"health_check_enabled\": False,\n    },\n    sticky_session_config={\n        \"sticky_session_enabled\": False,\n    })\nids = alicloud.alb.get_server_groups_output(ids=[default_server_group.id])\npulumi.export(\"albServerGroupId0\", ids.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultServerGroup = new AliCloud.Alb.ServerGroup(\"default\", new()\n    {\n        Protocol = \"HTTP\",\n        VpcId = @default.Id,\n        ServerGroupName = name,\n        HealthCheckConfig = new AliCloud.Alb.Inputs.ServerGroupHealthCheckConfigArgs\n        {\n            HealthCheckEnabled = false,\n        },\n        StickySessionConfig = new AliCloud.Alb.Inputs.ServerGroupStickySessionConfigArgs\n        {\n            StickySessionEnabled = false,\n        },\n    });\n\n    var ids = AliCloud.Alb.GetServerGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultServerGroup.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"albServerGroupId0\"] = ids.Apply(getServerGroupsResult =\u003e getServerGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultServerGroup, err := alb.NewServerGroup(ctx, \"default\", \u0026alb.ServerGroupArgs{\n\t\t\tProtocol:        pulumi.String(\"HTTP\"),\n\t\t\tVpcId:           _default.ID(),\n\t\t\tServerGroupName: pulumi.String(name),\n\t\t\tHealthCheckConfig: \u0026alb.ServerGroupHealthCheckConfigArgs{\n\t\t\t\tHealthCheckEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tStickySessionConfig: \u0026alb.ServerGroupStickySessionConfigArgs{\n\t\t\t\tStickySessionEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := alb.GetServerGroupsOutput(ctx, alb.GetServerGroupsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultServerGroup.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"albServerGroupId0\", ids.ApplyT(func(ids alb.GetServerGroupsResult) (*string, error) {\n\t\t\treturn \u0026ids.Groups[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.alb.ServerGroup;\nimport com.pulumi.alicloud.alb.ServerGroupArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupHealthCheckConfigArgs;\nimport com.pulumi.alicloud.alb.inputs.ServerGroupStickySessionConfigArgs;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetServerGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .protocol(\"HTTP\")\n            .vpcId(default_.id())\n            .serverGroupName(name)\n            .healthCheckConfig(ServerGroupHealthCheckConfigArgs.builder()\n                .healthCheckEnabled(false)\n                .build())\n            .stickySessionConfig(ServerGroupStickySessionConfigArgs.builder()\n                .stickySessionEnabled(false)\n                .build())\n            .build());\n\n        final var ids = AlbFunctions.getServerGroups(GetServerGroupsArgs.builder()\n            .ids(defaultServerGroup.id())\n            .build());\n\n        ctx.export(\"albServerGroupId0\", ids.applyValue(_ids -\u003e _ids.groups()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/16\n  defaultServerGroup:\n    type: alicloud:alb:ServerGroup\n    name: default\n    properties:\n      protocol: HTTP\n      vpcId: ${default.id}\n      serverGroupName: ${name}\n      healthCheckConfig:\n        healthCheckEnabled: 'false'\n      stickySessionConfig:\n        stickySessionEnabled: 'false'\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:alb:getServerGroups\n      arguments:\n        ids:\n          - ${defaultServerGroup.id}\noutputs:\n  albServerGroupId0: ${ids.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerGroups.\n","properties":{"enableDetails":{"type":"boolean","description":"Whether to query the detailed list of resource attributes. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Server Group IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Server Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"serverGroupIds":{"type":"array","items":{"type":"string"},"description":"The server group IDs.\n"},"serverGroupName":{"type":"string","description":"The names of the Server Group.\n"},"status":{"type":"string","description":"The status of the Server Group. Valid values: `Available`, `Configuring`, `Provisioning`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServerGroups.\n","properties":{"enableDetails":{"type":"boolean"},"groups":{"description":"A list of Server Groups. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:alb/getServerGroupsGroup:getServerGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Server Group names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"},"serverGroupIds":{"items":{"type":"string"},"type":"array"},"serverGroupName":{"description":"The name of the Server Group.\n","type":"string"},"status":{"description":"The status of the server.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of the resource. **Note:** \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","type":"object"},"vpcId":{"description":"The ID of the VPC.\n","type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:alb/getSystemSecurityPolicies:getSystemSecurityPolicies":{"description":"This data source provides the ALB System Security Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.183.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst defaults = alicloud.alb.getSystemSecurityPolicies({\n    ids: [\"tls_cipher_policy_1_0\"],\n});\nexport const albSystemSecurityPolicyId1 = defaults.then(defaults =\u003e defaults.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefaults = alicloud.alb.get_system_security_policies(ids=[\"tls_cipher_policy_1_0\"])\npulumi.export(\"albSystemSecurityPolicyId1\", defaults.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaults = AliCloud.Alb.GetSystemSecurityPolicies.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"tls_cipher_policy_1_0\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"albSystemSecurityPolicyId1\"] = defaults.Apply(getSystemSecurityPoliciesResult =\u003e getSystemSecurityPoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaults, err := alb.GetSystemSecurityPolicies(ctx, \u0026alb.GetSystemSecurityPoliciesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"tls_cipher_policy_1_0\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"albSystemSecurityPolicyId1\", defaults.Policies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetSystemSecurityPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var defaults = AlbFunctions.getSystemSecurityPolicies(GetSystemSecurityPoliciesArgs.builder()\n            .ids(\"tls_cipher_policy_1_0\")\n            .build());\n\n        ctx.export(\"albSystemSecurityPolicyId1\", defaults.policies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  defaults:\n    fn::invoke:\n      function: alicloud:alb:getSystemSecurityPolicies\n      arguments:\n        ids:\n          - tls_cipher_policy_1_0\noutputs:\n  albSystemSecurityPolicyId1: ${defaults.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSystemSecurityPolicies.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of System Security Policy IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"type":"object"},"outputs":{"description":"A collection of values returned by getSystemSecurityPolicies.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of System Security Policy IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policies":{"description":"A list of ALB Security Policies. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:alb/getSystemSecurityPoliciesPolicy:getSystemSecurityPoliciesPolicy"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["ids","policies","id"],"type":"object"}},"alicloud:alb/getZones:getZones":{"description":"This data source provides the available zones with the Application Load Balancer (ALB) Instance of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.132.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.alb.getZones({});\nexport const firstAlbZonesId = example.then(example =\u003e example.zones?.[0]?.zoneId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.alb.get_zones()\npulumi.export(\"firstAlbZonesId\", example.zones[0].zone_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Alb.GetZones.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstAlbZonesId\"] = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.ZoneId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := alb.GetZones(ctx, \u0026alb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstAlbZonesId\", example.Zones[0].ZoneId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.alb.AlbFunctions;\nimport com.pulumi.alicloud.alb.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        ctx.export(\"firstAlbZonesId\", example.zones()[0].zoneId());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:alb:getZones\n      arguments: {}\noutputs:\n  firstAlbZonesId: ${example.zones[0].zoneId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"zones":{"items":{"$ref":"#/types/alicloud:alb/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:amqp/getBindings:getBindings":{"description":"This data source provides the Amqp Bindings of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.135.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst examples = alicloud.amqp.getBindings({\n    instanceId: \"amqp-cn-xxxxx\",\n    virtualHostName: \"my-vh\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexamples = alicloud.amqp.get_bindings(instance_id=\"amqp-cn-xxxxx\",\n    virtual_host_name=\"my-vh\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var examples = AliCloud.Amqp.GetBindings.Invoke(new()\n    {\n        InstanceId = \"amqp-cn-xxxxx\",\n        VirtualHostName = \"my-vh\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/amqp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := amqp.GetBindings(ctx, \u0026amqp.GetBindingsArgs{\n\t\t\tInstanceId:      \"amqp-cn-xxxxx\",\n\t\t\tVirtualHostName: \"my-vh\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.amqp.AmqpFunctions;\nimport com.pulumi.alicloud.amqp.inputs.GetBindingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var examples = AmqpFunctions.getBindings(GetBindingsArgs.builder()\n            .instanceId(\"amqp-cn-xxxxx\")\n            .virtualHostName(\"my-vh\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  examples:\n    fn::invoke:\n      function: alicloud:amqp:getBindings\n      arguments:\n        instanceId: amqp-cn-xxxxx\n        virtualHostName: my-vh\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBindings.\n","properties":{"instanceId":{"type":"string","description":"Instance Id.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"virtualHostName":{"type":"string","description":"Virtualhost Name.\n"}},"type":"object","required":["instanceId","virtualHostName"]},"outputs":{"description":"A collection of values returned by getBindings.\n","properties":{"bindings":{"items":{"$ref":"#/types/alicloud:amqp/getBindingsBinding:getBindingsBinding"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"outputFile":{"type":"string"},"virtualHostName":{"type":"string"}},"required":["bindings","ids","instanceId","virtualHostName","id"],"type":"object"}},"alicloud:amqp/getExchanges:getExchanges":{"description":"This data source provides the Amqp Exchanges of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.128.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.amqp.getExchanges({\n    instanceId: \"amqp-abc12345\",\n    virtualHostName: \"my-VirtualHost\",\n    ids: [\n        \"my-Exchange-1\",\n        \"my-Exchange-2\",\n    ],\n});\nexport const amqpExchangeId1 = ids.then(ids =\u003e ids.exchanges?.[0]?.id);\nconst nameRegex = alicloud.amqp.getExchanges({\n    instanceId: \"amqp-abc12345\",\n    virtualHostName: \"my-VirtualHost\",\n    nameRegex: \"^my-Exchange\",\n});\nexport const amqpExchangeId2 = nameRegex.then(nameRegex =\u003e nameRegex.exchanges?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.amqp.get_exchanges(instance_id=\"amqp-abc12345\",\n    virtual_host_name=\"my-VirtualHost\",\n    ids=[\n        \"my-Exchange-1\",\n        \"my-Exchange-2\",\n    ])\npulumi.export(\"amqpExchangeId1\", ids.exchanges[0].id)\nname_regex = alicloud.amqp.get_exchanges(instance_id=\"amqp-abc12345\",\n    virtual_host_name=\"my-VirtualHost\",\n    name_regex=\"^my-Exchange\")\npulumi.export(\"amqpExchangeId2\", name_regex.exchanges[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Amqp.GetExchanges.Invoke(new()\n    {\n        InstanceId = \"amqp-abc12345\",\n        VirtualHostName = \"my-VirtualHost\",\n        Ids = new[]\n        {\n            \"my-Exchange-1\",\n            \"my-Exchange-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.Amqp.GetExchanges.Invoke(new()\n    {\n        InstanceId = \"amqp-abc12345\",\n        VirtualHostName = \"my-VirtualHost\",\n        NameRegex = \"^my-Exchange\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"amqpExchangeId1\"] = ids.Apply(getExchangesResult =\u003e getExchangesResult.Exchanges[0]?.Id),\n        [\"amqpExchangeId2\"] = nameRegex.Apply(getExchangesResult =\u003e getExchangesResult.Exchanges[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/amqp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := amqp.GetExchanges(ctx, \u0026amqp.GetExchangesArgs{\n\t\t\tInstanceId:      \"amqp-abc12345\",\n\t\t\tVirtualHostName: \"my-VirtualHost\",\n\t\t\tIds: []string{\n\t\t\t\t\"my-Exchange-1\",\n\t\t\t\t\"my-Exchange-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"amqpExchangeId1\", ids.Exchanges[0].Id)\n\t\tnameRegex, err := amqp.GetExchanges(ctx, \u0026amqp.GetExchangesArgs{\n\t\t\tInstanceId:      \"amqp-abc12345\",\n\t\t\tVirtualHostName: \"my-VirtualHost\",\n\t\t\tNameRegex:       pulumi.StringRef(\"^my-Exchange\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"amqpExchangeId2\", nameRegex.Exchanges[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.amqp.AmqpFunctions;\nimport com.pulumi.alicloud.amqp.inputs.GetExchangesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = AmqpFunctions.getExchanges(GetExchangesArgs.builder()\n            .instanceId(\"amqp-abc12345\")\n            .virtualHostName(\"my-VirtualHost\")\n            .ids(            \n                \"my-Exchange-1\",\n                \"my-Exchange-2\")\n            .build());\n\n        ctx.export(\"amqpExchangeId1\", ids.exchanges()[0].id());\n        final var nameRegex = AmqpFunctions.getExchanges(GetExchangesArgs.builder()\n            .instanceId(\"amqp-abc12345\")\n            .virtualHostName(\"my-VirtualHost\")\n            .nameRegex(\"^my-Exchange\")\n            .build());\n\n        ctx.export(\"amqpExchangeId2\", nameRegex.exchanges()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:amqp:getExchanges\n      arguments:\n        instanceId: amqp-abc12345\n        virtualHostName: my-VirtualHost\n        ids:\n          - my-Exchange-1\n          - my-Exchange-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:amqp:getExchanges\n      arguments:\n        instanceId: amqp-abc12345\n        virtualHostName: my-VirtualHost\n        nameRegex: ^my-Exchange\noutputs:\n  amqpExchangeId1: ${ids.exchanges[0].id}\n  amqpExchangeId2: ${nameRegex.exchanges[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getExchanges.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Exchange IDs. Its element value is same as Exchange Name.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Exchange name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"virtualHostName":{"type":"string","description":"The name of virtual host where an exchange resides.\n"}},"type":"object","required":["instanceId","virtualHostName"]},"outputs":{"description":"A collection of values returned by getExchanges.\n","properties":{"exchanges":{"items":{"$ref":"#/types/alicloud:amqp/getExchangesExchange:getExchangesExchange"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"virtualHostName":{"type":"string"}},"required":["exchanges","ids","instanceId","names","virtualHostName","id"],"type":"object"}},"alicloud:amqp/getInstances:getInstances":{"description":"This data source provides the Amqp Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.128.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.amqp.Instance(\"default\", {\n    instanceName: name,\n    instanceType: \"enterprise\",\n    maxTps: \"3000\",\n    maxConnections: 2000,\n    queueCapacity: \"200\",\n    paymentType: \"Subscription\",\n    renewalStatus: \"AutoRenewal\",\n    renewalDuration: 1,\n    renewalDurationUnit: \"Year\",\n    supportEip: true,\n});\nconst ids = alicloud.amqp.getInstancesOutput({\n    ids: [_default.id],\n});\nexport const amqpInstanceId0 = ids.apply(ids =\u003e ids.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.amqp.Instance(\"default\",\n    instance_name=name,\n    instance_type=\"enterprise\",\n    max_tps=\"3000\",\n    max_connections=2000,\n    queue_capacity=\"200\",\n    payment_type=\"Subscription\",\n    renewal_status=\"AutoRenewal\",\n    renewal_duration=1,\n    renewal_duration_unit=\"Year\",\n    support_eip=True)\nids = alicloud.amqp.get_instances_output(ids=[default.id])\npulumi.export(\"amqpInstanceId0\", ids.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Amqp.Instance(\"default\", new()\n    {\n        InstanceName = name,\n        InstanceType = \"enterprise\",\n        MaxTps = \"3000\",\n        MaxConnections = 2000,\n        QueueCapacity = \"200\",\n        PaymentType = \"Subscription\",\n        RenewalStatus = \"AutoRenewal\",\n        RenewalDuration = 1,\n        RenewalDurationUnit = \"Year\",\n        SupportEip = true,\n    });\n\n    var ids = AliCloud.Amqp.GetInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            @default.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"amqpInstanceId0\"] = ids.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/amqp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := amqp.NewInstance(ctx, \"default\", \u0026amqp.InstanceArgs{\n\t\t\tInstanceName:        pulumi.String(name),\n\t\t\tInstanceType:        pulumi.String(\"enterprise\"),\n\t\t\tMaxTps:              pulumi.String(\"3000\"),\n\t\t\tMaxConnections:      pulumi.Int(2000),\n\t\t\tQueueCapacity:       pulumi.String(\"200\"),\n\t\t\tPaymentType:         pulumi.String(\"Subscription\"),\n\t\t\tRenewalStatus:       pulumi.String(\"AutoRenewal\"),\n\t\t\tRenewalDuration:     pulumi.Int(1),\n\t\t\tRenewalDurationUnit: pulumi.String(\"Year\"),\n\t\t\tSupportEip:          pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := amqp.GetInstancesOutput(ctx, amqp.GetInstancesOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"amqpInstanceId0\", ids.ApplyT(func(ids amqp.GetInstancesResult) (*string, error) {\n\t\t\treturn \u0026ids.Instances[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.amqp.Instance;\nimport com.pulumi.alicloud.amqp.InstanceArgs;\nimport com.pulumi.alicloud.amqp.AmqpFunctions;\nimport com.pulumi.alicloud.amqp.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .instanceName(name)\n            .instanceType(\"enterprise\")\n            .maxTps(\"3000\")\n            .maxConnections(2000)\n            .queueCapacity(\"200\")\n            .paymentType(\"Subscription\")\n            .renewalStatus(\"AutoRenewal\")\n            .renewalDuration(1)\n            .renewalDurationUnit(\"Year\")\n            .supportEip(true)\n            .build());\n\n        final var ids = AmqpFunctions.getInstances(GetInstancesArgs.builder()\n            .ids(default_.id())\n            .build());\n\n        ctx.export(\"amqpInstanceId0\", ids.applyValue(_ids -\u003e _ids.instances()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:amqp:Instance\n    properties:\n      instanceName: ${name}\n      instanceType: enterprise\n      maxTps: 3000\n      maxConnections: 2000\n      queueCapacity: 200\n      paymentType: Subscription\n      renewalStatus: AutoRenewal\n      renewalDuration: 1\n      renewalDurationUnit: Year\n      supportEip: true\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:amqp:getInstances\n      arguments:\n        ids:\n          - ${default.id}\noutputs:\n  amqpInstanceId0: ${ids.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"enableDetails":{"type":"boolean","description":"Whether to query the detailed list of resource attributes. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Instance IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `DEPLOYING`, `SERVING`, `EXPIRED`, `RELEASED`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instances":{"description":"A list of Amqp Instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:amqp/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Instance names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the instance.\n","type":"string"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:amqp/getQueues:getQueues":{"description":"This data source provides the Amqp Queues of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.127.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.amqp.getQueues({\n    instanceId: \"amqp-abc12345\",\n    virtualHostName: \"my-VirtualHost\",\n    ids: [\n        \"my-Queue-1\",\n        \"my-Queue-2\",\n    ],\n});\nexport const amqpQueueId1 = ids.then(ids =\u003e ids.queues?.[0]?.id);\nconst nameRegex = alicloud.amqp.getQueues({\n    instanceId: \"amqp-abc12345\",\n    virtualHostName: \"my-VirtualHost\",\n    nameRegex: \"^my-Queue\",\n});\nexport const amqpQueueId2 = nameRegex.then(nameRegex =\u003e nameRegex.queues?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.amqp.get_queues(instance_id=\"amqp-abc12345\",\n    virtual_host_name=\"my-VirtualHost\",\n    ids=[\n        \"my-Queue-1\",\n        \"my-Queue-2\",\n    ])\npulumi.export(\"amqpQueueId1\", ids.queues[0].id)\nname_regex = alicloud.amqp.get_queues(instance_id=\"amqp-abc12345\",\n    virtual_host_name=\"my-VirtualHost\",\n    name_regex=\"^my-Queue\")\npulumi.export(\"amqpQueueId2\", name_regex.queues[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Amqp.GetQueues.Invoke(new()\n    {\n        InstanceId = \"amqp-abc12345\",\n        VirtualHostName = \"my-VirtualHost\",\n        Ids = new[]\n        {\n            \"my-Queue-1\",\n            \"my-Queue-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.Amqp.GetQueues.Invoke(new()\n    {\n        InstanceId = \"amqp-abc12345\",\n        VirtualHostName = \"my-VirtualHost\",\n        NameRegex = \"^my-Queue\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"amqpQueueId1\"] = ids.Apply(getQueuesResult =\u003e getQueuesResult.Queues[0]?.Id),\n        [\"amqpQueueId2\"] = nameRegex.Apply(getQueuesResult =\u003e getQueuesResult.Queues[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/amqp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := amqp.GetQueues(ctx, \u0026amqp.GetQueuesArgs{\n\t\t\tInstanceId:      \"amqp-abc12345\",\n\t\t\tVirtualHostName: \"my-VirtualHost\",\n\t\t\tIds: []string{\n\t\t\t\t\"my-Queue-1\",\n\t\t\t\t\"my-Queue-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"amqpQueueId1\", ids.Queues[0].Id)\n\t\tnameRegex, err := amqp.GetQueues(ctx, \u0026amqp.GetQueuesArgs{\n\t\t\tInstanceId:      \"amqp-abc12345\",\n\t\t\tVirtualHostName: \"my-VirtualHost\",\n\t\t\tNameRegex:       pulumi.StringRef(\"^my-Queue\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"amqpQueueId2\", nameRegex.Queues[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.amqp.AmqpFunctions;\nimport com.pulumi.alicloud.amqp.inputs.GetQueuesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = AmqpFunctions.getQueues(GetQueuesArgs.builder()\n            .instanceId(\"amqp-abc12345\")\n            .virtualHostName(\"my-VirtualHost\")\n            .ids(            \n                \"my-Queue-1\",\n                \"my-Queue-2\")\n            .build());\n\n        ctx.export(\"amqpQueueId1\", ids.queues()[0].id());\n        final var nameRegex = AmqpFunctions.getQueues(GetQueuesArgs.builder()\n            .instanceId(\"amqp-abc12345\")\n            .virtualHostName(\"my-VirtualHost\")\n            .nameRegex(\"^my-Queue\")\n            .build());\n\n        ctx.export(\"amqpQueueId2\", nameRegex.queues()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:amqp:getQueues\n      arguments:\n        instanceId: amqp-abc12345\n        virtualHostName: my-VirtualHost\n        ids:\n          - my-Queue-1\n          - my-Queue-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:amqp:getQueues\n      arguments:\n        instanceId: amqp-abc12345\n        virtualHostName: my-VirtualHost\n        nameRegex: ^my-Queue\noutputs:\n  amqpQueueId1: ${ids.queues[0].id}\n  amqpQueueId2: ${nameRegex.queues[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getQueues.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Queue IDs. Its element value is same as Queue Name.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Queue name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"virtualHostName":{"type":"string","description":"The name of the virtual host.\n"}},"type":"object","required":["instanceId","virtualHostName"]},"outputs":{"description":"A collection of values returned by getQueues.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"queues":{"items":{"$ref":"#/types/alicloud:amqp/getQueuesQueue:getQueuesQueue"},"type":"array"},"virtualHostName":{"type":"string"}},"required":["ids","instanceId","names","queues","virtualHostName","id"],"type":"object"}},"alicloud:amqp/getStaticAccounts:getStaticAccounts":{"description":"This data source provides Amqp Static Account available to the user.[What is Static Account](https://help.aliyun.com/document_detail/184399.html)\n\n\u003e **NOTE:** Available in 1.195.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.amqp.getStaticAccounts({\n    instanceId: \"amqp-cn-0ju2y01zs001\",\n});\nexport const alicloudAmqpStaticAccountExampleId = _default.then(_default =\u003e _default.accounts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.amqp.get_static_accounts(instance_id=\"amqp-cn-0ju2y01zs001\")\npulumi.export(\"alicloudAmqpStaticAccountExampleId\", default.accounts[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Amqp.GetStaticAccounts.Invoke(new()\n    {\n        InstanceId = \"amqp-cn-0ju2y01zs001\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudAmqpStaticAccountExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getStaticAccountsResult =\u003e getStaticAccountsResult.Accounts[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/amqp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := amqp.GetStaticAccounts(ctx, \u0026amqp.GetStaticAccountsArgs{\n\t\t\tInstanceId: pulumi.StringRef(\"amqp-cn-0ju2y01zs001\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudAmqpStaticAccountExampleId\", _default.Accounts[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.amqp.AmqpFunctions;\nimport com.pulumi.alicloud.amqp.inputs.GetStaticAccountsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AmqpFunctions.getStaticAccounts(GetStaticAccountsArgs.builder()\n            .instanceId(\"amqp-cn-0ju2y01zs001\")\n            .build());\n\n        ctx.export(\"alicloudAmqpStaticAccountExampleId\", default_.accounts()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:amqp:getStaticAccounts\n      arguments:\n        instanceId: amqp-cn-0ju2y01zs001\noutputs:\n  alicloudAmqpStaticAccountExampleId: ${default.accounts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStaticAccounts.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"The \u003cspan pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\"\u003e`key`\u003c/span\u003e of the resource supplied above.The value is formulated as `\u003cinstance_id\u003e:\u003caccess_key\u003e`.\n"},"instanceId":{"type":"string","description":"InstanceId\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getStaticAccounts.\n","properties":{"accounts":{"description":"A list of Static Account Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:amqp/getStaticAccountsAccount:getStaticAccountsAccount"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"description":"Amqp instance ID.\n","type":"string"},"outputFile":{"type":"string"}},"required":["accounts","ids","id"],"type":"object"}},"alicloud:amqp/getVirtualHosts:getVirtualHosts":{"description":"This data source provides the Amqp Virtual Hosts of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.126.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.amqp.getVirtualHosts({\n    instanceId: \"amqp-abc12345\",\n    ids: [\n        \"my-VirtualHost-1\",\n        \"my-VirtualHost-2\",\n    ],\n});\nexport const amqpVirtualHostId1 = ids.then(ids =\u003e ids.hosts?.[0]?.id);\nconst nameRegex = alicloud.amqp.getVirtualHosts({\n    instanceId: \"amqp-abc12345\",\n    nameRegex: \"^my-VirtualHost\",\n});\nexport const amqpVirtualHostId2 = nameRegex.then(nameRegex =\u003e nameRegex.hosts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.amqp.get_virtual_hosts(instance_id=\"amqp-abc12345\",\n    ids=[\n        \"my-VirtualHost-1\",\n        \"my-VirtualHost-2\",\n    ])\npulumi.export(\"amqpVirtualHostId1\", ids.hosts[0].id)\nname_regex = alicloud.amqp.get_virtual_hosts(instance_id=\"amqp-abc12345\",\n    name_regex=\"^my-VirtualHost\")\npulumi.export(\"amqpVirtualHostId2\", name_regex.hosts[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Amqp.GetVirtualHosts.Invoke(new()\n    {\n        InstanceId = \"amqp-abc12345\",\n        Ids = new[]\n        {\n            \"my-VirtualHost-1\",\n            \"my-VirtualHost-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.Amqp.GetVirtualHosts.Invoke(new()\n    {\n        InstanceId = \"amqp-abc12345\",\n        NameRegex = \"^my-VirtualHost\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"amqpVirtualHostId1\"] = ids.Apply(getVirtualHostsResult =\u003e getVirtualHostsResult.Hosts[0]?.Id),\n        [\"amqpVirtualHostId2\"] = nameRegex.Apply(getVirtualHostsResult =\u003e getVirtualHostsResult.Hosts[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/amqp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := amqp.GetVirtualHosts(ctx, \u0026amqp.GetVirtualHostsArgs{\n\t\t\tInstanceId: \"amqp-abc12345\",\n\t\t\tIds: []string{\n\t\t\t\t\"my-VirtualHost-1\",\n\t\t\t\t\"my-VirtualHost-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"amqpVirtualHostId1\", ids.Hosts[0].Id)\n\t\tnameRegex, err := amqp.GetVirtualHosts(ctx, \u0026amqp.GetVirtualHostsArgs{\n\t\t\tInstanceId: \"amqp-abc12345\",\n\t\t\tNameRegex:  pulumi.StringRef(\"^my-VirtualHost\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"amqpVirtualHostId2\", nameRegex.Hosts[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.amqp.AmqpFunctions;\nimport com.pulumi.alicloud.amqp.inputs.GetVirtualHostsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = AmqpFunctions.getVirtualHosts(GetVirtualHostsArgs.builder()\n            .instanceId(\"amqp-abc12345\")\n            .ids(            \n                \"my-VirtualHost-1\",\n                \"my-VirtualHost-2\")\n            .build());\n\n        ctx.export(\"amqpVirtualHostId1\", ids.hosts()[0].id());\n        final var nameRegex = AmqpFunctions.getVirtualHosts(GetVirtualHostsArgs.builder()\n            .instanceId(\"amqp-abc12345\")\n            .nameRegex(\"^my-VirtualHost\")\n            .build());\n\n        ctx.export(\"amqpVirtualHostId2\", nameRegex.hosts()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:amqp:getVirtualHosts\n      arguments:\n        instanceId: amqp-abc12345\n        ids:\n          - my-VirtualHost-1\n          - my-VirtualHost-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:amqp:getVirtualHosts\n      arguments:\n        instanceId: amqp-abc12345\n        nameRegex: ^my-VirtualHost\noutputs:\n  amqpVirtualHostId1: ${ids.hosts[0].id}\n  amqpVirtualHostId2: ${nameRegex.hosts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVirtualHosts.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Virtual Host IDs. Its element value is same as Virtual Host Name.\n"},"instanceId":{"type":"string","description":"InstanceId.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Virtual Host name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getVirtualHosts.\n","properties":{"hosts":{"items":{"$ref":"#/types/alicloud:amqp/getVirtualHostsHost:getVirtualHostsHost"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["hosts","ids","instanceId","names","id"],"type":"object"}},"alicloud:apigateway/getApis:getApis":{"description":"This data source provides the Api Gateway APIs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.22.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.apigateway.Group(\"default\", {\n    name: name,\n    description: name,\n});\nconst defaultApi = new alicloud.apigateway.Api(\"default\", {\n    groupId: _default.id,\n    name: name,\n    description: name,\n    authType: \"APP\",\n    serviceType: \"HTTP\",\n    requestConfig: {\n        protocol: \"HTTP\",\n        method: \"GET\",\n        path: \"/test/path\",\n        mode: \"MAPPING\",\n    },\n    httpServiceConfig: {\n        address: \"http://apigateway-backend.alicloudapi.com:8080\",\n        method: \"GET\",\n        path: \"/web/cloudapi\",\n        timeout: 20,\n        aoneName: \"cloudapi-openapi\",\n    },\n    requestParameters: [{\n        name: name,\n        type: \"STRING\",\n        required: \"OPTIONAL\",\n        \"in\": \"QUERY\",\n        inService: \"QUERY\",\n        nameService: name,\n    }],\n});\nconst ids = alicloud.apigateway.getApisOutput({\n    ids: [defaultApi.id],\n});\nexport const apiGatewayApisId0 = ids.apply(ids =\u003e ids.apis?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.apigateway.Group(\"default\",\n    name=name,\n    description=name)\ndefault_api = alicloud.apigateway.Api(\"default\",\n    group_id=default.id,\n    name=name,\n    description=name,\n    auth_type=\"APP\",\n    service_type=\"HTTP\",\n    request_config={\n        \"protocol\": \"HTTP\",\n        \"method\": \"GET\",\n        \"path\": \"/test/path\",\n        \"mode\": \"MAPPING\",\n    },\n    http_service_config={\n        \"address\": \"http://apigateway-backend.alicloudapi.com:8080\",\n        \"method\": \"GET\",\n        \"path\": \"/web/cloudapi\",\n        \"timeout\": 20,\n        \"aone_name\": \"cloudapi-openapi\",\n    },\n    request_parameters=[{\n        \"name\": name,\n        \"type\": \"STRING\",\n        \"required\": \"OPTIONAL\",\n        \"in_\": \"QUERY\",\n        \"in_service\": \"QUERY\",\n        \"name_service\": name,\n    }])\nids = alicloud.apigateway.get_apis_output(ids=[default_api.id])\npulumi.export(\"apiGatewayApisId0\", ids.apis[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ApiGateway.Group(\"default\", new()\n    {\n        Name = name,\n        Description = name,\n    });\n\n    var defaultApi = new AliCloud.ApiGateway.Api(\"default\", new()\n    {\n        GroupId = @default.Id,\n        Name = name,\n        Description = name,\n        AuthType = \"APP\",\n        ServiceType = \"HTTP\",\n        RequestConfig = new AliCloud.ApiGateway.Inputs.ApiRequestConfigArgs\n        {\n            Protocol = \"HTTP\",\n            Method = \"GET\",\n            Path = \"/test/path\",\n            Mode = \"MAPPING\",\n        },\n        HttpServiceConfig = new AliCloud.ApiGateway.Inputs.ApiHttpServiceConfigArgs\n        {\n            Address = \"http://apigateway-backend.alicloudapi.com:8080\",\n            Method = \"GET\",\n            Path = \"/web/cloudapi\",\n            Timeout = 20,\n            AoneName = \"cloudapi-openapi\",\n        },\n        RequestParameters = new[]\n        {\n            new AliCloud.ApiGateway.Inputs.ApiRequestParameterArgs\n            {\n                Name = name,\n                Type = \"STRING\",\n                Required = \"OPTIONAL\",\n                In = \"QUERY\",\n                InService = \"QUERY\",\n                NameService = name,\n            },\n        },\n    });\n\n    var ids = AliCloud.ApiGateway.GetApis.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultApi.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"apiGatewayApisId0\"] = ids.Apply(getApisResult =\u003e getApisResult.Apis[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := apigateway.NewGroup(ctx, \"default\", \u0026apigateway.GroupArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApi, err := apigateway.NewApi(ctx, \"default\", \u0026apigateway.ApiArgs{\n\t\t\tGroupId:     _default.ID(),\n\t\t\tName:        pulumi.String(name),\n\t\t\tDescription: pulumi.String(name),\n\t\t\tAuthType:    pulumi.String(\"APP\"),\n\t\t\tServiceType: pulumi.String(\"HTTP\"),\n\t\t\tRequestConfig: \u0026apigateway.ApiRequestConfigArgs{\n\t\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\t\tMethod:   pulumi.String(\"GET\"),\n\t\t\t\tPath:     pulumi.String(\"/test/path\"),\n\t\t\t\tMode:     pulumi.String(\"MAPPING\"),\n\t\t\t},\n\t\t\tHttpServiceConfig: \u0026apigateway.ApiHttpServiceConfigArgs{\n\t\t\t\tAddress:  pulumi.String(\"http://apigateway-backend.alicloudapi.com:8080\"),\n\t\t\t\tMethod:   pulumi.String(\"GET\"),\n\t\t\t\tPath:     pulumi.String(\"/web/cloudapi\"),\n\t\t\t\tTimeout:  pulumi.Int(20),\n\t\t\t\tAoneName: pulumi.String(\"cloudapi-openapi\"),\n\t\t\t},\n\t\t\tRequestParameters: apigateway.ApiRequestParameterArray{\n\t\t\t\t\u0026apigateway.ApiRequestParameterArgs{\n\t\t\t\t\tName:        pulumi.String(name),\n\t\t\t\t\tType:        pulumi.String(\"STRING\"),\n\t\t\t\t\tRequired:    pulumi.String(\"OPTIONAL\"),\n\t\t\t\t\tIn:          pulumi.String(\"QUERY\"),\n\t\t\t\t\tInService:   pulumi.String(\"QUERY\"),\n\t\t\t\t\tNameService: pulumi.String(name),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := apigateway.GetApisOutput(ctx, apigateway.GetApisOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultApi.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"apiGatewayApisId0\", ids.ApplyT(func(ids apigateway.GetApisResult) (*string, error) {\n\t\t\treturn \u0026ids.Apis[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.Group;\nimport com.pulumi.alicloud.apigateway.GroupArgs;\nimport com.pulumi.alicloud.apigateway.Api;\nimport com.pulumi.alicloud.apigateway.ApiArgs;\nimport com.pulumi.alicloud.apigateway.inputs.ApiRequestConfigArgs;\nimport com.pulumi.alicloud.apigateway.inputs.ApiHttpServiceConfigArgs;\nimport com.pulumi.alicloud.apigateway.inputs.ApiRequestParameterArgs;\nimport com.pulumi.alicloud.apigateway.ApigatewayFunctions;\nimport com.pulumi.alicloud.apigateway.inputs.GetApisArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Group(\"default\", GroupArgs.builder()\n            .name(name)\n            .description(name)\n            .build());\n\n        var defaultApi = new Api(\"defaultApi\", ApiArgs.builder()\n            .groupId(default_.id())\n            .name(name)\n            .description(name)\n            .authType(\"APP\")\n            .serviceType(\"HTTP\")\n            .requestConfig(ApiRequestConfigArgs.builder()\n                .protocol(\"HTTP\")\n                .method(\"GET\")\n                .path(\"/test/path\")\n                .mode(\"MAPPING\")\n                .build())\n            .httpServiceConfig(ApiHttpServiceConfigArgs.builder()\n                .address(\"http://apigateway-backend.alicloudapi.com:8080\")\n                .method(\"GET\")\n                .path(\"/web/cloudapi\")\n                .timeout(20)\n                .aoneName(\"cloudapi-openapi\")\n                .build())\n            .requestParameters(ApiRequestParameterArgs.builder()\n                .name(name)\n                .type(\"STRING\")\n                .required(\"OPTIONAL\")\n                .in(\"QUERY\")\n                .inService(\"QUERY\")\n                .nameService(name)\n                .build())\n            .build());\n\n        final var ids = ApigatewayFunctions.getApis(GetApisArgs.builder()\n            .ids(defaultApi.id())\n            .build());\n\n        ctx.export(\"apiGatewayApisId0\", ids.applyValue(_ids -\u003e _ids.apis()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:apigateway:Group\n    properties:\n      name: ${name}\n      description: ${name}\n  defaultApi:\n    type: alicloud:apigateway:Api\n    name: default\n    properties:\n      groupId: ${default.id}\n      name: ${name}\n      description: ${name}\n      authType: APP\n      serviceType: HTTP\n      requestConfig:\n        protocol: HTTP\n        method: GET\n        path: /test/path\n        mode: MAPPING\n      httpServiceConfig:\n        address: http://apigateway-backend.alicloudapi.com:8080\n        method: GET\n        path: /web/cloudapi\n        timeout: 20\n        aoneName: cloudapi-openapi\n      requestParameters:\n        - name: ${name}\n          type: STRING\n          required: OPTIONAL\n          in: QUERY\n          inService: QUERY\n          nameService: ${name}\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:apigateway:getApis\n      arguments:\n        ids:\n          - ${defaultApi.id}\noutputs:\n  apiGatewayApisId0: ${ids.apis[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getApis.\n","properties":{"apiId":{"type":"string","description":"The ID of the API.\n"},"groupId":{"type":"string","description":"The ID of the API group.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of API IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by API name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getApis.\n","properties":{"apiId":{"description":"(Available since v1.224.0) The ID of the API.\n","type":"string"},"apis":{"description":"A list of APIs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:apigateway/getApisApi:getApisApi"},"type":"array"},"groupId":{"description":"The ID of the API group.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of API names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["apis","ids","names","id"],"type":"object"}},"alicloud:apigateway/getApps:getApps":{"description":"This data source provides the apps of the current Alibaba Cloud user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst dataApigatway = alicloud.apigateway.getApps({\n    outputFile: \"outapps\",\n});\nexport const firstAppId = dataApigatway.then(dataApigatway =\u003e dataApigatway.apps?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndata_apigatway = alicloud.apigateway.get_apps(output_file=\"outapps\")\npulumi.export(\"firstAppId\", data_apigatway.apps[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dataApigatway = AliCloud.ApiGateway.GetApps.Invoke(new()\n    {\n        OutputFile = \"outapps\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstAppId\"] = dataApigatway.Apply(getAppsResult =\u003e getAppsResult.Apps[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdataApigatway, err := apigateway.GetApps(ctx, \u0026apigateway.GetAppsArgs{\n\t\t\tOutputFile: pulumi.StringRef(\"outapps\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstAppId\", dataApigatway.Apps[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.ApigatewayFunctions;\nimport com.pulumi.alicloud.apigateway.inputs.GetAppsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var dataApigatway = ApigatewayFunctions.getApps(GetAppsArgs.builder()\n            .outputFile(\"outapps\")\n            .build());\n\n        ctx.export(\"firstAppId\", dataApigatway.apps()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  dataApigatway:\n    fn::invoke:\n      function: alicloud:apigateway:getApps\n      arguments:\n        outputFile: outapps\noutputs:\n  firstAppId: ${dataApigatway.apps[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getApps.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of app IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter apps by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getApps.\n","properties":{"apps":{"description":"A list of apps. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:apigateway/getAppsApp:getAppsApp"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of app IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of app names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["apps","ids","names","id"],"type":"object"}},"alicloud:apigateway/getBackends:getBackends":{"description":"This data source provides the Api Gateway Backends of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.181.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.apigateway.getBackends({});\nexport const apiGatewayBackendId1 = ids.then(ids =\u003e ids.backends?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.apigateway.get_backends()\npulumi.export(\"apiGatewayBackendId1\", ids.backends[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.ApiGateway.GetBackends.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"apiGatewayBackendId1\"] = ids.Apply(getBackendsResult =\u003e getBackendsResult.Backends[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := apigateway.GetBackends(ctx, \u0026apigateway.GetBackendsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"apiGatewayBackendId1\", ids.Backends[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.ApigatewayFunctions;\nimport com.pulumi.alicloud.apigateway.inputs.GetBackendsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ApigatewayFunctions.getBackends(GetBackendsArgs.builder()\n            .build());\n\n        ctx.export(\"apiGatewayBackendId1\", ids.backends()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:apigateway:getBackends\n      arguments: {}\noutputs:\n  apiGatewayBackendId1: ${ids.backends[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBackends.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Backends IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter Api Gateway Backends by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBackends.\n","properties":{"backends":{"items":{"$ref":"#/types/alicloud:apigateway/getBackendsBackend:getBackendsBackend"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["backends","ids","names","id"],"type":"object"}},"alicloud:apigateway/getGroups:getGroups":{"description":"This data source provides the api groups of the current Alibaba Cloud user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst dataApigatway = alicloud.apigateway.getGroups({\n    outputFile: \"outgroups\",\n});\nexport const firstGroupId = dataApigatway.then(dataApigatway =\u003e dataApigatway.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndata_apigatway = alicloud.apigateway.get_groups(output_file=\"outgroups\")\npulumi.export(\"firstGroupId\", data_apigatway.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dataApigatway = AliCloud.ApiGateway.GetGroups.Invoke(new()\n    {\n        OutputFile = \"outgroups\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstGroupId\"] = dataApigatway.Apply(getGroupsResult =\u003e getGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdataApigatway, err := apigateway.GetGroups(ctx, \u0026apigateway.GetGroupsArgs{\n\t\t\tOutputFile: pulumi.StringRef(\"outgroups\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstGroupId\", dataApigatway.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.ApigatewayFunctions;\nimport com.pulumi.alicloud.apigateway.inputs.GetGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var dataApigatway = ApigatewayFunctions.getGroups(GetGroupsArgs.builder()\n            .outputFile(\"outgroups\")\n            .build());\n\n        ctx.export(\"firstGroupId\", dataApigatway.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  dataApigatway:\n    fn::invoke:\n      function: alicloud:apigateway:getGroups\n      arguments:\n        outputFile: outgroups\noutputs:\n  firstGroupId: ${dataApigatway.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of api group IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter api gateway groups by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGroups.\n","properties":{"groups":{"description":"A list of api groups. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:apigateway/getGroupsGroup:getGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of api group IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of api group names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:apigateway/getLogConfigs:getLogConfigs":{"description":"This data source provides the Api Gateway Log Configs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.185.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.apigateway.getLogConfigs({\n    ids: [\"example_id\"],\n});\nexport const apiGatewayLogConfigId1 = ids.then(ids =\u003e ids.configs?.[0]?.id);\nconst logType = alicloud.apigateway.getLogConfigs({\n    logType: \"PROVIDER\",\n});\nexport const apiGatewayLogConfigId2 = logType.then(logType =\u003e logType.configs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.apigateway.get_log_configs(ids=[\"example_id\"])\npulumi.export(\"apiGatewayLogConfigId1\", ids.configs[0].id)\nlog_type = alicloud.apigateway.get_log_configs(log_type=\"PROVIDER\")\npulumi.export(\"apiGatewayLogConfigId2\", log_type.configs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.ApiGateway.GetLogConfigs.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var logType = AliCloud.ApiGateway.GetLogConfigs.Invoke(new()\n    {\n        LogType = \"PROVIDER\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"apiGatewayLogConfigId1\"] = ids.Apply(getLogConfigsResult =\u003e getLogConfigsResult.Configs[0]?.Id),\n        [\"apiGatewayLogConfigId2\"] = logType.Apply(getLogConfigsResult =\u003e getLogConfigsResult.Configs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := apigateway.GetLogConfigs(ctx, \u0026apigateway.GetLogConfigsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"apiGatewayLogConfigId1\", ids.Configs[0].Id)\n\t\tlogType, err := apigateway.GetLogConfigs(ctx, \u0026apigateway.GetLogConfigsArgs{\n\t\t\tLogType: pulumi.StringRef(\"PROVIDER\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"apiGatewayLogConfigId2\", logType.Configs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.ApigatewayFunctions;\nimport com.pulumi.alicloud.apigateway.inputs.GetLogConfigsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ApigatewayFunctions.getLogConfigs(GetLogConfigsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"apiGatewayLogConfigId1\", ids.configs()[0].id());\n        final var logType = ApigatewayFunctions.getLogConfigs(GetLogConfigsArgs.builder()\n            .logType(\"PROVIDER\")\n            .build());\n\n        ctx.export(\"apiGatewayLogConfigId2\", logType.configs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:apigateway:getLogConfigs\n      arguments:\n        ids:\n          - example_id\n  logType:\n    fn::invoke:\n      function: alicloud:apigateway:getLogConfigs\n      arguments:\n        logType: PROVIDER\noutputs:\n  apiGatewayLogConfigId1: ${ids.configs[0].id}\n  apiGatewayLogConfigId2: ${logType.configs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLogConfigs.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Log Config IDs.\n"},"logType":{"type":"string","description":"The type the of log. Valid values: `PROVIDER`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLogConfigs.\n","properties":{"configs":{"items":{"$ref":"#/types/alicloud:apigateway/getLogConfigsConfig:getLogConfigsConfig"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"logType":{"type":"string"},"outputFile":{"type":"string"}},"required":["configs","ids","id"],"type":"object"}},"alicloud:apigateway/getModels:getModels":{"description":"This data source provides the Api Gateway Models of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.187.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.apigateway.getModels({\n    ids: [\"example_id\"],\n    groupId: \"example_group_id\",\n});\nexport const apiGatewayModelId1 = ids.then(ids =\u003e ids.models?.[0]?.id);\nconst groupId = alicloud.apigateway.getModels({\n    groupId: \"example_group_id\",\n});\nexport const apiGatewayModelId2 = groupId.then(groupId =\u003e groupId.models?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.apigateway.get_models(ids=[\"example_id\"],\n    group_id=\"example_group_id\")\npulumi.export(\"apiGatewayModelId1\", ids.models[0].id)\ngroup_id = alicloud.apigateway.get_models(group_id=\"example_group_id\")\npulumi.export(\"apiGatewayModelId2\", group_id.models[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.ApiGateway.GetModels.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        GroupId = \"example_group_id\",\n    });\n\n    var groupId = AliCloud.ApiGateway.GetModels.Invoke(new()\n    {\n        GroupId = \"example_group_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"apiGatewayModelId1\"] = ids.Apply(getModelsResult =\u003e getModelsResult.Models[0]?.Id),\n        [\"apiGatewayModelId2\"] = groupId.Apply(getModelsResult =\u003e getModelsResult.Models[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := apigateway.GetModels(ctx, \u0026apigateway.GetModelsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tGroupId: \"example_group_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"apiGatewayModelId1\", ids.Models[0].Id)\n\t\tgroupId, err := apigateway.GetModels(ctx, \u0026apigateway.GetModelsArgs{\n\t\t\tGroupId: \"example_group_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"apiGatewayModelId2\", groupId.Models[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.ApigatewayFunctions;\nimport com.pulumi.alicloud.apigateway.inputs.GetModelsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ApigatewayFunctions.getModels(GetModelsArgs.builder()\n            .ids(\"example_id\")\n            .groupId(\"example_group_id\")\n            .build());\n\n        ctx.export(\"apiGatewayModelId1\", ids.models()[0].id());\n        final var groupId = ApigatewayFunctions.getModels(GetModelsArgs.builder()\n            .groupId(\"example_group_id\")\n            .build());\n\n        ctx.export(\"apiGatewayModelId2\", groupId.models()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:apigateway:getModels\n      arguments:\n        ids:\n          - example_id\n        groupId: example_group_id\n  groupId:\n    fn::invoke:\n      function: alicloud:apigateway:getModels\n      arguments:\n        groupId: example_group_id\noutputs:\n  apiGatewayModelId1: ${ids.models[0].id}\n  apiGatewayModelId2: ${groupId.models[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getModels.\n","properties":{"groupId":{"type":"string","description":"The ID of the api group.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Model IDs.\n"},"modelName":{"type":"string","description":"The name of the Model.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Model name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object","required":["groupId"]},"outputs":{"description":"A collection of values returned by getModels.\n","properties":{"groupId":{"description":"The group of the model belongs to.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"modelName":{"description":"The name of the Model.\n","type":"string"},"models":{"description":"A list of Api Gateway Models. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:apigateway/getModelsModel:getModelsModel"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Model names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["groupId","ids","models","names","id"],"type":"object"}},"alicloud:apigateway/getPlugins:getPlugins":{"description":"This data source provides the Api Gateway Plugins of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.187.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.apigateway.getPlugins({});\nexport const apiGatewayPluginId1 = ids.then(ids =\u003e ids.plugins?.[0]?.id);\nconst nameRegex = alicloud.apigateway.getPlugins({\n    nameRegex: \"^my-Plugin\",\n});\nexport const apiGatewayPluginId2 = nameRegex.then(nameRegex =\u003e nameRegex.plugins?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.apigateway.get_plugins()\npulumi.export(\"apiGatewayPluginId1\", ids.plugins[0].id)\nname_regex = alicloud.apigateway.get_plugins(name_regex=\"^my-Plugin\")\npulumi.export(\"apiGatewayPluginId2\", name_regex.plugins[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.ApiGateway.GetPlugins.Invoke();\n\n    var nameRegex = AliCloud.ApiGateway.GetPlugins.Invoke(new()\n    {\n        NameRegex = \"^my-Plugin\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"apiGatewayPluginId1\"] = ids.Apply(getPluginsResult =\u003e getPluginsResult.Plugins[0]?.Id),\n        [\"apiGatewayPluginId2\"] = nameRegex.Apply(getPluginsResult =\u003e getPluginsResult.Plugins[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := apigateway.GetPlugins(ctx, \u0026apigateway.GetPluginsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"apiGatewayPluginId1\", ids.Plugins[0].Id)\n\t\tnameRegex, err := apigateway.GetPlugins(ctx, \u0026apigateway.GetPluginsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Plugin\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"apiGatewayPluginId2\", nameRegex.Plugins[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.ApigatewayFunctions;\nimport com.pulumi.alicloud.apigateway.inputs.GetPluginsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ApigatewayFunctions.getPlugins(GetPluginsArgs.builder()\n            .build());\n\n        ctx.export(\"apiGatewayPluginId1\", ids.plugins()[0].id());\n        final var nameRegex = ApigatewayFunctions.getPlugins(GetPluginsArgs.builder()\n            .nameRegex(\"^my-Plugin\")\n            .build());\n\n        ctx.export(\"apiGatewayPluginId2\", nameRegex.plugins()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:apigateway:getPlugins\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:apigateway:getPlugins\n      arguments:\n        nameRegex: ^my-Plugin\noutputs:\n  apiGatewayPluginId1: ${ids.plugins[0].id}\n  apiGatewayPluginId2: ${nameRegex.plugins[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPlugins.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Plugin IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Plugin name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"pluginName":{"type":"string","description":"The name of the plug-in that you want to create. It can contain uppercase English letters, lowercase English letters, Chinese characters, numbers, and underscores (_). It must be 4 to 50 characters in length and cannot start with an underscore (_).\n"},"pluginType":{"type":"string","description":"The type of the plug-in. Valid values: `backendSignature`, \u003cspan pulumi-lang-nodejs=\"`caching`\" pulumi-lang-dotnet=\"`Caching`\" pulumi-lang-go=\"`caching`\" pulumi-lang-python=\"`caching`\" pulumi-lang-yaml=\"`caching`\" pulumi-lang-java=\"`caching`\"\u003e`caching`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cors`\" pulumi-lang-dotnet=\"`Cors`\" pulumi-lang-go=\"`cors`\" pulumi-lang-python=\"`cors`\" pulumi-lang-yaml=\"`cors`\" pulumi-lang-java=\"`cors`\"\u003e`cors`\u003c/span\u003e, `ipControl`, `jwtAuth`, `trafficControl`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPlugins.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"pluginName":{"type":"string"},"pluginType":{"type":"string"},"plugins":{"items":{"$ref":"#/types/alicloud:apigateway/getPluginsPlugin:getPluginsPlugin"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["ids","names","plugins","id"],"type":"object"}},"alicloud:apigateway/getService:getService":{"description":"Using this data source can enable API gateway service automatically. If the service has been enabled, it will return `Opened`.\n\nFor information about API Gateway and how to use it, see [What is API Gateway](https://www.alibabacloud.com/help/product/29462.htm).\n\n\u003e **NOTE:** Available in v1.96.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.apigateway.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.apigateway.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.ApiGateway.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := apigateway.GetService(ctx, \u0026apigateway.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.apigateway.ApigatewayFunctions;\nimport com.pulumi.alicloud.apigateway.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = ApigatewayFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:apigateway:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: \"On\" or \"Off\". Default to \"Off\".\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the API gateway service that means you have read and agreed the [API Gateway Terms of Service](https://help.aliyun.com/document_detail/35391.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:arms/getAddonReleases:getAddonReleases":{"description":"This data source provides the ARMS Addon Releases of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.258.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    description: \"api-resource-test1-hz\",\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: `${name}-${defaultInteger.result}`,\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    description: \"api-resource-test1-hz\",\n    vpcId: vpc.id,\n    vswitchName: `${name}-${defaultInteger.result}`,\n    zoneId: enhanced.then(enhanced =\u003e enhanced.zones?.[0]?.zoneId),\n    cidrBlock: vpc.cidrBlock.apply(cidrBlock =\u003e std.cidrsubnetOutput({\n        input: cidrBlock,\n        newbits: 8,\n        netnum: 8,\n    })).apply(invoke =\u003e invoke.result),\n});\nconst defaultSnapshotPolicy = new alicloud.ecs.SnapshotPolicy(\"default\", {\n    name: `${name}-${defaultInteger.result}`,\n    repeatWeekdays: [\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retentionDays: -1,\n    timePoints: [\n        \"1\",\n        \"22\",\n        \"23\",\n    ],\n});\nconst _default = vswitch.zoneId.apply(zoneId =\u003e alicloud.ecs.getInstanceTypesOutput({\n    availabilityZone: zoneId,\n    cpuCoreCount: 2,\n    memorySize: 4,\n    kubernetesNodeRole: \"Worker\",\n    instanceTypeFamily: \"ecs.sn1ne\",\n}));\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    name: `${name}-${defaultInteger.result}`,\n    clusterSpec: \"ack.pro.small\",\n    version: \"1.24.6-aliyun.1\",\n    newNatGateway: true,\n    nodeCidrMask: 26,\n    proxyMode: \"ipvs\",\n    serviceCidr: \"172.23.0.0/16\",\n    podCidr: \"10.95.0.0/16\",\n    workerVswitchIds: [vswitch.id],\n});\nconst defaultKeyPair = new alicloud.ecs.KeyPair(\"default\", {keyPairName: `${name}-${defaultInteger.result}`});\nconst defaultNodePool = new alicloud.cs.NodePool(\"default\", {\n    name: \"desired_size\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [vswitch.id],\n    instanceTypes: [_default.apply(_default =\u003e _default.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyPairName,\n    desiredSize: \"2\",\n});\nconst defaultEnvironment = new alicloud.arms.Environment(\"default\", {\n    environmentType: \"CS\",\n    environmentName: `${name}-${defaultInteger.result}`,\n    bindResourceId: defaultNodePool.clusterId,\n    environmentSubType: \"ManagedKubernetes\",\n});\nconst defaultAddonRelease = new alicloud.arms.AddonRelease(\"default\", {\n    aliyunLang: \"zh\",\n    addonName: \"mysql\",\n    environmentId: defaultEnvironment.id,\n    addonVersion: \"0.0.2\",\n    values: JSON.stringify({\n        host: \"mysql-service.default\",\n        password: \"roots\",\n        port: 3306,\n        username: \"root\",\n    }),\n});\nconst ids = alicloud.arms.getAddonReleasesOutput({\n    environmentId: defaultAddonRelease.environmentId,\n    ids: [defaultAddonRelease.id],\n});\nexport const armsEnvServiceMonitorsId0 = ids.apply(ids =\u003e ids.releases?.[0]?.id);\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\nvpc = alicloud.vpc.Network(\"vpc\",\n    description=\"api-resource-test1-hz\",\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=f\"{name}-{default_integer['result']}\")\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    description=\"api-resource-test1-hz\",\n    vpc_id=vpc.id,\n    vswitch_name=f\"{name}-{default_integer['result']}\",\n    zone_id=enhanced.zones[0].zone_id,\n    cidr_block=vpc.cidr_block.apply(lambda cidr_block: std.cidrsubnet_output(input=cidr_block,\n        newbits=8,\n        netnum=8)).apply(lambda invoke: invoke.result))\ndefault_snapshot_policy = alicloud.ecs.SnapshotPolicy(\"default\",\n    name=f\"{name}-{default_integer['result']}\",\n    repeat_weekdays=[\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retention_days=-1,\n    time_points=[\n        \"1\",\n        \"22\",\n        \"23\",\n    ])\ndefault = vswitch.zone_id.apply(lambda zone_id: alicloud.ecs.get_instance_types_output(availability_zone=zone_id,\n    cpu_core_count=2,\n    memory_size=4,\n    kubernetes_node_role=\"Worker\",\n    instance_type_family=\"ecs.sn1ne\"))\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name=f\"{name}-{default_integer['result']}\",\n    cluster_spec=\"ack.pro.small\",\n    version=\"1.24.6-aliyun.1\",\n    new_nat_gateway=True,\n    node_cidr_mask=26,\n    proxy_mode=\"ipvs\",\n    service_cidr=\"172.23.0.0/16\",\n    pod_cidr=\"10.95.0.0/16\",\n    worker_vswitch_ids=[vswitch.id])\ndefault_key_pair = alicloud.ecs.KeyPair(\"default\", key_pair_name=f\"{name}-{default_integer['result']}\")\ndefault_node_pool = alicloud.cs.NodePool(\"default\",\n    name=\"desired_size\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[vswitch.id],\n    instance_types=[default.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_pair_name,\n    desired_size=\"2\")\ndefault_environment = alicloud.arms.Environment(\"default\",\n    environment_type=\"CS\",\n    environment_name=f\"{name}-{default_integer['result']}\",\n    bind_resource_id=default_node_pool.cluster_id,\n    environment_sub_type=\"ManagedKubernetes\")\ndefault_addon_release = alicloud.arms.AddonRelease(\"default\",\n    aliyun_lang=\"zh\",\n    addon_name=\"mysql\",\n    environment_id=default_environment.id,\n    addon_version=\"0.0.2\",\n    values=json.dumps({\n        \"host\": \"mysql-service.default\",\n        \"password\": \"roots\",\n        \"port\": 3306,\n        \"username\": \"root\",\n    }))\nids = alicloud.arms.get_addon_releases_output(environment_id=default_addon_release.environment_id,\n    ids=[default_addon_release.id])\npulumi.export(\"armsEnvServiceMonitorsId0\", ids.releases[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var enhanced = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        Description = \"api-resource-test1-hz\",\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        Description = \"api-resource-test1-hz\",\n        VpcId = vpc.Id,\n        VswitchName = $\"{name}-{defaultInteger.Result}\",\n        ZoneId = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId),\n        CidrBlock = vpc.CidrBlock.Apply(cidrBlock =\u003e Std.Cidrsubnet.Invoke(new()\n        {\n            Input = cidrBlock,\n            Newbits = 8,\n            Netnum = 8,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultSnapshotPolicy = new AliCloud.Ecs.SnapshotPolicy(\"default\", new()\n    {\n        Name = $\"{name}-{defaultInteger.Result}\",\n        RepeatWeekdays = new[]\n        {\n            \"1\",\n            \"2\",\n            \"3\",\n        },\n        RetentionDays = -1,\n        TimePoints = new[]\n        {\n            \"1\",\n            \"22\",\n            \"23\",\n        },\n    });\n\n    var @default = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = vswitch.ZoneId,\n        CpuCoreCount = 2,\n        MemorySize = 4,\n        KubernetesNodeRole = \"Worker\",\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        Name = $\"{name}-{defaultInteger.Result}\",\n        ClusterSpec = \"ack.pro.small\",\n        Version = \"1.24.6-aliyun.1\",\n        NewNatGateway = true,\n        NodeCidrMask = 26,\n        ProxyMode = \"ipvs\",\n        ServiceCidr = \"172.23.0.0/16\",\n        PodCidr = \"10.95.0.0/16\",\n        WorkerVswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n    });\n\n    var defaultKeyPair = new AliCloud.Ecs.KeyPair(\"default\", new()\n    {\n        KeyPairName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultNodePool = new AliCloud.CS.NodePool(\"default\", new()\n    {\n        Name = \"desired_size\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            @default.Apply(@default =\u003e @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id)),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyPairName,\n        DesiredSize = \"2\",\n    });\n\n    var defaultEnvironment = new AliCloud.Arms.Environment(\"default\", new()\n    {\n        EnvironmentType = \"CS\",\n        EnvironmentName = $\"{name}-{defaultInteger.Result}\",\n        BindResourceId = defaultNodePool.ClusterId,\n        EnvironmentSubType = \"ManagedKubernetes\",\n    });\n\n    var defaultAddonRelease = new AliCloud.Arms.AddonRelease(\"default\", new()\n    {\n        AliyunLang = \"zh\",\n        AddonName = \"mysql\",\n        EnvironmentId = defaultEnvironment.Id,\n        AddonVersion = \"0.0.2\",\n        Values = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"host\"] = \"mysql-service.default\",\n            [\"password\"] = \"roots\",\n            [\"port\"] = 3306,\n            [\"username\"] = \"root\",\n        }),\n    });\n\n    var ids = AliCloud.Arms.GetAddonReleases.Invoke(new()\n    {\n        EnvironmentId = defaultAddonRelease.EnvironmentId,\n        Ids = new[]\n        {\n            defaultAddonRelease.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsEnvServiceMonitorsId0\"] = ids.Apply(getAddonReleasesResult =\u003e getAddonReleasesResult.Releases[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMin: 10000,\nMax: 99999,\n})\nif err != nil {\nreturn err\n}\nenhanced, err := vpc.GetEnhancedNatAvailableZones(ctx, \u0026vpc.GetEnhancedNatAvailableZonesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\nvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\nDescription: pulumi.String(\"api-resource-test1-hz\"),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\nVpcName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: cidrBlock,\nNewbits: 8,\nNetnum: 8,\n}, nil)\nif err != nil {\nreturn err\n}\nvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\nDescription: pulumi.String(\"api-resource-test1-hz\"),\nVpcId: vpc.ID(),\nVswitchName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nZoneId: pulumi.String(enhanced.Zones[0].ZoneId),\nCidrBlock: pulumi.String(vpc.CidrBlock.ApplyT(func(cidrBlock string) (std.CidrsubnetResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrsubnetResultOutput).ApplyT(func(invoke std.CidrsubnetResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\n})\nif err != nil {\nreturn err\n}\n_, err = ecs.NewSnapshotPolicy(ctx, \"default\", \u0026ecs.SnapshotPolicyArgs{\nName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nRepeatWeekdays: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"2\"),\npulumi.String(\"3\"),\n},\nRetentionDays: pulumi.Int(-1),\nTimePoints: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"22\"),\npulumi.String(\"23\"),\n},\n})\nif err != nil {\nreturn err\n}\n_default := vswitch.ZoneId.ApplyT(func(zoneId string) (ecs.GetInstanceTypesResult, error) {\nreturn ecs.GetInstanceTypesResult(interface{}(ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(pulumi.StringRef(zoneId)),\nCpuCoreCount: pulumi.IntRef(pulumi.IntRef(int(2))),\nMemorySize: pulumi.Float64Ref(pulumi.Float64Ref(4)),\nKubernetesNodeRole: pulumi.StringRef(pulumi.StringRef(\"Worker\")),\nInstanceTypeFamily: pulumi.StringRef(pulumi.StringRef(\"ecs.sn1ne\")),\n}, nil))), nil\n}).(ecs.GetInstanceTypesResultOutput)\ndefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\nName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nClusterSpec: pulumi.String(\"ack.pro.small\"),\nVersion: pulumi.String(\"1.24.6-aliyun.1\"),\nNewNatGateway: pulumi.Bool(true),\nNodeCidrMask: pulumi.Int(26),\nProxyMode: pulumi.String(\"ipvs\"),\nServiceCidr: pulumi.String(\"172.23.0.0/16\"),\nPodCidr: pulumi.String(\"10.95.0.0/16\"),\nWorkerVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\n})\nif err != nil {\nreturn err\n}\ndefaultKeyPair, err := ecs.NewKeyPair(ctx, \"default\", \u0026ecs.KeyPairArgs{\nKeyPairName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ndefaultNodePool, err := cs.NewNodePool(ctx, \"default\", \u0026cs.NodePoolArgs{\nName: pulumi.String(\"desired_size\"),\nClusterId: defaultManagedKubernetes.ID(),\nVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\nInstanceTypes: pulumi.StringArray{\npulumi.String(_default.ApplyT(func(_default ecs.GetInstanceTypesResult) (*string, error) {\nreturn \u0026default.InstanceTypes[0].Id, nil\n}).(pulumi.StringPtrOutput)),\n},\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nSystemDiskSize: pulumi.Int(40),\nKeyName: defaultKeyPair.KeyPairName,\nDesiredSize: pulumi.String(\"2\"),\n})\nif err != nil {\nreturn err\n}\ndefaultEnvironment, err := arms.NewEnvironment(ctx, \"default\", \u0026arms.EnvironmentArgs{\nEnvironmentType: pulumi.String(\"CS\"),\nEnvironmentName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nBindResourceId: defaultNodePool.ClusterId,\nEnvironmentSubType: pulumi.String(\"ManagedKubernetes\"),\n})\nif err != nil {\nreturn err\n}\ntmpJSON0, err := json.Marshal(map[string]interface{}{\n\"host\": \"mysql-service.default\",\n\"password\": \"roots\",\n\"port\": 3306,\n\"username\": \"root\",\n})\nif err != nil {\nreturn err\n}\njson0 := string(tmpJSON0)\ndefaultAddonRelease, err := arms.NewAddonRelease(ctx, \"default\", \u0026arms.AddonReleaseArgs{\nAliyunLang: pulumi.String(\"zh\"),\nAddonName: pulumi.String(\"mysql\"),\nEnvironmentId: defaultEnvironment.ID(),\nAddonVersion: pulumi.String(\"0.0.2\"),\nValues: pulumi.String(json0),\n})\nif err != nil {\nreturn err\n}\nids := arms.GetAddonReleasesOutput(ctx, arms.GetAddonReleasesOutputArgs{\nEnvironmentId: defaultAddonRelease.EnvironmentId,\nIds: pulumi.StringArray{\ndefaultAddonRelease.ID(),\n},\n}, nil);\nctx.Export(\"armsEnvServiceMonitorsId0\", ids.ApplyT(func(ids arms.GetAddonReleasesResult) (*string, error) {\nreturn \u0026ids.Releases[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.SnapshotPolicy;\nimport com.pulumi.alicloud.ecs.SnapshotPolicyArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.alicloud.ecs.KeyPair;\nimport com.pulumi.alicloud.ecs.KeyPairArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.arms.Environment;\nimport com.pulumi.alicloud.arms.EnvironmentArgs;\nimport com.pulumi.alicloud.arms.AddonRelease;\nimport com.pulumi.alicloud.arms.AddonReleaseArgs;\nimport com.pulumi.alicloud.arms.ArmsFunctions;\nimport com.pulumi.alicloud.arms.inputs.GetAddonReleasesArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var enhanced = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .description(\"api-resource-test1-hz\")\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .description(\"api-resource-test1-hz\")\n            .vpcId(vpc.id())\n            .vswitchName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .zoneId(enhanced.zones()[0].zoneId())\n            .cidrBlock(vpc.cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(_cidrBlock)\n                .newbits(8)\n                .netnum(8)\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .build());\n\n        var defaultSnapshotPolicy = new SnapshotPolicy(\"defaultSnapshotPolicy\", SnapshotPolicyArgs.builder()\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .repeatWeekdays(            \n                \"1\",\n                \"2\",\n                \"3\")\n            .retentionDays(-1)\n            .timePoints(            \n                \"1\",\n                \"22\",\n                \"23\")\n            .build());\n\n        final var default = vswitch.zoneId().applyValue(_zoneId -\u003e EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(_zoneId)\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .kubernetesNodeRole(\"Worker\")\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build()));\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .clusterSpec(\"ack.pro.small\")\n            .version(\"1.24.6-aliyun.1\")\n            .newNatGateway(true)\n            .nodeCidrMask(26)\n            .proxyMode(\"ipvs\")\n            .serviceCidr(\"172.23.0.0/16\")\n            .podCidr(\"10.95.0.0/16\")\n            .workerVswitchIds(vswitch.id())\n            .build());\n\n        var defaultKeyPair = new KeyPair(\"defaultKeyPair\", KeyPairArgs.builder()\n            .keyPairName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultNodePool = new NodePool(\"defaultNodePool\", NodePoolArgs.builder()\n            .name(\"desired_size\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(vswitch.id())\n            .instanceTypes(default_.applyValue(_default_ -\u003e _default_.instanceTypes()[0].id()))\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyPairName())\n            .desiredSize(\"2\")\n            .build());\n\n        var defaultEnvironment = new Environment(\"defaultEnvironment\", EnvironmentArgs.builder()\n            .environmentType(\"CS\")\n            .environmentName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .bindResourceId(defaultNodePool.clusterId())\n            .environmentSubType(\"ManagedKubernetes\")\n            .build());\n\n        var defaultAddonRelease = new AddonRelease(\"defaultAddonRelease\", AddonReleaseArgs.builder()\n            .aliyunLang(\"zh\")\n            .addonName(\"mysql\")\n            .environmentId(defaultEnvironment.id())\n            .addonVersion(\"0.0.2\")\n            .values(serializeJson(\n                jsonObject(\n                    jsonProperty(\"host\", \"mysql-service.default\"),\n                    jsonProperty(\"password\", \"roots\"),\n                    jsonProperty(\"port\", 3306),\n                    jsonProperty(\"username\", \"root\")\n                )))\n            .build());\n\n        final var ids = ArmsFunctions.getAddonReleases(GetAddonReleasesArgs.builder()\n            .environmentId(defaultAddonRelease.environmentId())\n            .ids(defaultAddonRelease.id())\n            .build());\n\n        ctx.export(\"armsEnvServiceMonitorsId0\", ids.applyValue(_ids -\u003e _ids.releases()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: api-resource-test1-hz\n      cidrBlock: 192.168.0.0/16\n      vpcName: ${name}-${defaultInteger.result}\n  vswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      description: api-resource-test1-hz\n      vpcId: ${vpc.id}\n      vswitchName: ${name}-${defaultInteger.result}\n      zoneId: ${enhanced.zones[0].zoneId}\n      cidrBlock:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: ${vpc.cidrBlock}\n            newbits: 8\n            netnum: 8\n          return: result\n  defaultSnapshotPolicy:\n    type: alicloud:ecs:SnapshotPolicy\n    name: default\n    properties:\n      name: ${name}-${defaultInteger.result}\n      repeatWeekdays:\n        - '1'\n        - '2'\n        - '3'\n      retentionDays: -1\n      timePoints:\n        - '1'\n        - '22'\n        - '23'\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      name: ${name}-${defaultInteger.result}\n      clusterSpec: ack.pro.small\n      version: 1.24.6-aliyun.1\n      newNatGateway: true\n      nodeCidrMask: 26\n      proxyMode: ipvs\n      serviceCidr: 172.23.0.0/16\n      podCidr: 10.95.0.0/16\n      workerVswitchIds:\n        - ${vswitch.id}\n  defaultKeyPair:\n    type: alicloud:ecs:KeyPair\n    name: default\n    properties:\n      keyPairName: ${name}-${defaultInteger.result}\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      name: desired_size\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${vswitch.id}\n      instanceTypes:\n        - ${default.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyPairName}\n      desiredSize: 2\n  defaultEnvironment:\n    type: alicloud:arms:Environment\n    name: default\n    properties:\n      environmentType: CS\n      environmentName: ${name}-${defaultInteger.result}\n      bindResourceId: ${defaultNodePool.clusterId}\n      environmentSubType: ManagedKubernetes\n  defaultAddonRelease:\n    type: alicloud:arms:AddonRelease\n    name: default\n    properties:\n      aliyunLang: zh\n      addonName: mysql\n      environmentId: ${defaultEnvironment.id}\n      addonVersion: 0.0.2\n      values:\n        fn::toJSON:\n          host: mysql-service.default\n          password: roots\n          port: 3306\n          username: root\nvariables:\n  enhanced:\n    fn::invoke:\n      function: alicloud:vpc:getEnhancedNatAvailableZones\n      arguments: {}\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${vswitch.zoneId}\n        cpuCoreCount: 2\n        memorySize: 4\n        kubernetesNodeRole: Worker\n        instanceTypeFamily: ecs.sn1ne\n  ids:\n    fn::invoke:\n      function: alicloud:arms:getAddonReleases\n      arguments:\n        environmentId: ${defaultAddonRelease.environmentId}\n        ids:\n          - ${defaultAddonRelease.id}\noutputs:\n  armsEnvServiceMonitorsId0: ${ids.releases[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAddonReleases.\n","properties":{"environmentId":{"type":"string","description":"The environment ID.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of ARMS Addon Release IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by ARMS Addon Release name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["environmentId"]},"outputs":{"description":"A collection of values returned by getAddonReleases.\n","properties":{"environmentId":{"description":"The environment ID.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of ARMS Addon Release names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"releases":{"description":"A list of ARMS Addon Releases. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:arms/getAddonReleasesRelease:getAddonReleasesRelease"},"type":"array"}},"required":["environmentId","ids","names","releases","id"],"type":"object"}},"alicloud:arms/getAlertContactGroups:getAlertContactGroups":{"description":"This data source provides the Arms Alert Contact Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.131.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst nameRegex = alicloud.arms.getAlertContactGroups({\n    nameRegex: \"^my-AlertContactGroup\",\n});\nexport const armsAlertContactGroupId = nameRegex.then(nameRegex =\u003e nameRegex.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nname_regex = alicloud.arms.get_alert_contact_groups(name_regex=\"^my-AlertContactGroup\")\npulumi.export(\"armsAlertContactGroupId\", name_regex.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var nameRegex = AliCloud.Arms.GetAlertContactGroups.Invoke(new()\n    {\n        NameRegex = \"^my-AlertContactGroup\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsAlertContactGroupId\"] = nameRegex.Apply(getAlertContactGroupsResult =\u003e getAlertContactGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnameRegex, err := arms.GetAlertContactGroups(ctx, \u0026arms.GetAlertContactGroupsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-AlertContactGroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"armsAlertContactGroupId\", nameRegex.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.arms.ArmsFunctions;\nimport com.pulumi.alicloud.arms.inputs.GetAlertContactGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var nameRegex = ArmsFunctions.getAlertContactGroups(GetAlertContactGroupsArgs.builder()\n            .nameRegex(\"^my-AlertContactGroup\")\n            .build());\n\n        ctx.export(\"armsAlertContactGroupId\", nameRegex.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  nameRegex:\n    fn::invoke:\n      function: alicloud:arms:getAlertContactGroups\n      arguments:\n        nameRegex: ^my-AlertContactGroup\noutputs:\n  armsAlertContactGroupId: ${nameRegex.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAlertContactGroups.\n","properties":{"alertContactGroupName":{"type":"string","description":"The name of the resource.\n"},"contactId":{"type":"string","description":"The contact id.\n"},"contactName":{"type":"string","description":"The contact name.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Alert Contact Group IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Alert Contact Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAlertContactGroups.\n","properties":{"alertContactGroupName":{"type":"string"},"contactId":{"type":"string"},"contactName":{"type":"string"},"groups":{"items":{"$ref":"#/types/alicloud:arms/getAlertContactGroupsGroup:getAlertContactGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:arms/getAlertContacts:getAlertContacts":{"description":"This data source provides the Arms Alert Contacts of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.129.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.arms.getAlertContacts({});\nexport const armsAlertContactId1 = ids.then(ids =\u003e ids.contacts?.[0]?.id);\nconst nameRegex = alicloud.arms.getAlertContacts({\n    nameRegex: \"^my-AlertContact\",\n});\nexport const armsAlertContactId2 = nameRegex.then(nameRegex =\u003e nameRegex.contacts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.arms.get_alert_contacts()\npulumi.export(\"armsAlertContactId1\", ids.contacts[0].id)\nname_regex = alicloud.arms.get_alert_contacts(name_regex=\"^my-AlertContact\")\npulumi.export(\"armsAlertContactId2\", name_regex.contacts[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Arms.GetAlertContacts.Invoke();\n\n    var nameRegex = AliCloud.Arms.GetAlertContacts.Invoke(new()\n    {\n        NameRegex = \"^my-AlertContact\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsAlertContactId1\"] = ids.Apply(getAlertContactsResult =\u003e getAlertContactsResult.Contacts[0]?.Id),\n        [\"armsAlertContactId2\"] = nameRegex.Apply(getAlertContactsResult =\u003e getAlertContactsResult.Contacts[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := arms.GetAlertContacts(ctx, \u0026arms.GetAlertContactsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"armsAlertContactId1\", ids.Contacts[0].Id)\n\t\tnameRegex, err := arms.GetAlertContacts(ctx, \u0026arms.GetAlertContactsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-AlertContact\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"armsAlertContactId2\", nameRegex.Contacts[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.arms.ArmsFunctions;\nimport com.pulumi.alicloud.arms.inputs.GetAlertContactsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ArmsFunctions.getAlertContacts(GetAlertContactsArgs.builder()\n            .build());\n\n        ctx.export(\"armsAlertContactId1\", ids.contacts()[0].id());\n        final var nameRegex = ArmsFunctions.getAlertContacts(GetAlertContactsArgs.builder()\n            .nameRegex(\"^my-AlertContact\")\n            .build());\n\n        ctx.export(\"armsAlertContactId2\", nameRegex.contacts()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:arms:getAlertContacts\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:arms:getAlertContacts\n      arguments:\n        nameRegex: ^my-AlertContact\noutputs:\n  armsAlertContactId1: ${ids.contacts[0].id}\n  armsAlertContactId2: ${nameRegex.contacts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAlertContacts.\n","properties":{"alertContactName":{"type":"string","description":"The name of the alert contact.\n"},"email":{"type":"string","description":"The email address of the alert contact.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Alert Contact IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Alert Contact name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"phoneNum":{"type":"string","description":"The mobile number of the alert contact.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAlertContacts.\n","properties":{"alertContactName":{"type":"string"},"contacts":{"items":{"$ref":"#/types/alicloud:arms/getAlertContactsContact:getAlertContactsContact"},"type":"array"},"email":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"phoneNum":{"type":"string"}},"required":["contacts","ids","names","id"],"type":"object"}},"alicloud:arms/getAlertRobots:getAlertRobots":{"description":"This data source provides the Arms Alert Robots of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.237.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.arms.AlertRobot(\"default\", {\n    alertRobotName: \"my-AlertRobot\",\n    robotType: \"wechat\",\n    robotAddr: \"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1c704e23\",\n});\nconst nameRegex = alicloud.arms.getAlertRobotsOutput({\n    alertRobotName: _default.alertRobotName,\n});\nexport const armsAlertRobotId = nameRegex.apply(nameRegex =\u003e nameRegex.robots?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.arms.AlertRobot(\"default\",\n    alert_robot_name=\"my-AlertRobot\",\n    robot_type=\"wechat\",\n    robot_addr=\"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1c704e23\")\nname_regex = alicloud.arms.get_alert_robots_output(alert_robot_name=default.alert_robot_name)\npulumi.export(\"armsAlertRobotId\", name_regex.robots[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Arms.AlertRobot(\"default\", new()\n    {\n        AlertRobotName = \"my-AlertRobot\",\n        RobotType = \"wechat\",\n        RobotAddr = \"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1c704e23\",\n    });\n\n    var nameRegex = AliCloud.Arms.GetAlertRobots.Invoke(new()\n    {\n        AlertRobotName = @default.AlertRobotName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsAlertRobotId\"] = nameRegex.Apply(getAlertRobotsResult =\u003e getAlertRobotsResult.Robots[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := arms.NewAlertRobot(ctx, \"default\", \u0026arms.AlertRobotArgs{\n\t\t\tAlertRobotName: pulumi.String(\"my-AlertRobot\"),\n\t\t\tRobotType:      pulumi.String(\"wechat\"),\n\t\t\tRobotAddr:      pulumi.String(\"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1c704e23\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnameRegex := arms.GetAlertRobotsOutput(ctx, arms.GetAlertRobotsOutputArgs{\n\t\t\tAlertRobotName: _default.AlertRobotName,\n\t\t}, nil)\n\t\tctx.Export(\"armsAlertRobotId\", nameRegex.ApplyT(func(nameRegex arms.GetAlertRobotsResult) (*string, error) {\n\t\t\treturn \u0026nameRegex.Robots[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.arms.AlertRobot;\nimport com.pulumi.alicloud.arms.AlertRobotArgs;\nimport com.pulumi.alicloud.arms.ArmsFunctions;\nimport com.pulumi.alicloud.arms.inputs.GetAlertRobotsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new AlertRobot(\"default\", AlertRobotArgs.builder()\n            .alertRobotName(\"my-AlertRobot\")\n            .robotType(\"wechat\")\n            .robotAddr(\"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1c704e23\")\n            .build());\n\n        final var nameRegex = ArmsFunctions.getAlertRobots(GetAlertRobotsArgs.builder()\n            .alertRobotName(default_.alertRobotName())\n            .build());\n\n        ctx.export(\"armsAlertRobotId\", nameRegex.applyValue(_nameRegex -\u003e _nameRegex.robots()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:arms:AlertRobot\n    properties:\n      alertRobotName: my-AlertRobot\n      robotType: wechat\n      robotAddr: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=1c704e23\nvariables:\n  nameRegex:\n    fn::invoke:\n      function: alicloud:arms:getAlertRobots\n      arguments:\n        alertRobotName: ${default.alertRobotName}\noutputs:\n  armsAlertRobotId: ${nameRegex.robots[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAlertRobots.\n","properties":{"alertRobotName":{"type":"string","description":"The robot name.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Alert Robot IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Alert Robot name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"robotType":{"type":"string","description":"The robot type.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAlertRobots.\n","properties":{"alertRobotName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Alert Robot IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Alert Robot names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"robotType":{"description":"The type of the robot.\n","type":"string"},"robots":{"description":"A list of Arms Alert Robots. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:arms/getAlertRobotsRobot:getAlertRobotsRobot"},"type":"array"}},"required":["ids","names","robots","id"],"type":"object"}},"alicloud:arms/getDispatchRules:getDispatchRules":{"description":"This data source provides the Arms Dispatch Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.136.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.arms.AlertContact(\"default\", {\n    alertContactName: \"example_value\",\n    email: \"example_value@aaa.com\",\n});\nconst defaultAlertContactGroup = new alicloud.arms.AlertContactGroup(\"default\", {\n    alertContactGroupName: \"example_value\",\n    contactIds: [_default.id],\n});\nconst defaultDispatchRule = new alicloud.arms.DispatchRule(\"default\", {\n    dispatchRuleName: \"example_value\",\n    dispatchType: \"CREATE_ALERT\",\n    groupRules: [{\n        groupWaitTime: 5,\n        groupInterval: 15,\n        repeatInterval: 100,\n        groupingFields: [\"alertname\"],\n    }],\n    labelMatchExpressionGrids: [{\n        labelMatchExpressionGroups: [{\n            labelMatchExpressions: [{\n                key: \"_aliyun_arms_involvedObject_kind\",\n                value: \"app\",\n                operator: \"eq\",\n            }],\n        }],\n    }],\n    notifyRules: [{\n        notifyObjects: [\n            {\n                notifyObjectId: _default.id,\n                notifyType: \"ARMS_CONTACT\",\n                name: \"example_value\",\n            },\n            {\n                notifyObjectId: defaultAlertContactGroup.id,\n                notifyType: \"ARMS_CONTACT_GROUP\",\n                name: \"example_value\",\n            },\n        ],\n        notifyChannels: [\n            \"dingTalk\",\n            \"wechat\",\n        ],\n        notifyStartTime: \"10:00\",\n        notifyEndTime: \"23:00\",\n    }],\n});\nconst ids = alicloud.arms.getDispatchRulesOutput({\n    ids: [defaultDispatchRule.id],\n});\nexport const armsDispatchRuleId1 = ids.apply(ids =\u003e ids.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.arms.AlertContact(\"default\",\n    alert_contact_name=\"example_value\",\n    email=\"example_value@aaa.com\")\ndefault_alert_contact_group = alicloud.arms.AlertContactGroup(\"default\",\n    alert_contact_group_name=\"example_value\",\n    contact_ids=[default.id])\ndefault_dispatch_rule = alicloud.arms.DispatchRule(\"default\",\n    dispatch_rule_name=\"example_value\",\n    dispatch_type=\"CREATE_ALERT\",\n    group_rules=[{\n        \"group_wait_time\": 5,\n        \"group_interval\": 15,\n        \"repeat_interval\": 100,\n        \"grouping_fields\": [\"alertname\"],\n    }],\n    label_match_expression_grids=[{\n        \"label_match_expression_groups\": [{\n            \"label_match_expressions\": [{\n                \"key\": \"_aliyun_arms_involvedObject_kind\",\n                \"value\": \"app\",\n                \"operator\": \"eq\",\n            }],\n        }],\n    }],\n    notify_rules=[{\n        \"notify_objects\": [\n            {\n                \"notify_object_id\": default.id,\n                \"notify_type\": \"ARMS_CONTACT\",\n                \"name\": \"example_value\",\n            },\n            {\n                \"notify_object_id\": default_alert_contact_group.id,\n                \"notify_type\": \"ARMS_CONTACT_GROUP\",\n                \"name\": \"example_value\",\n            },\n        ],\n        \"notify_channels\": [\n            \"dingTalk\",\n            \"wechat\",\n        ],\n        \"notify_start_time\": \"10:00\",\n        \"notify_end_time\": \"23:00\",\n    }])\nids = alicloud.arms.get_dispatch_rules_output(ids=[default_dispatch_rule.id])\npulumi.export(\"armsDispatchRuleId1\", ids.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Arms.AlertContact(\"default\", new()\n    {\n        AlertContactName = \"example_value\",\n        Email = \"example_value@aaa.com\",\n    });\n\n    var defaultAlertContactGroup = new AliCloud.Arms.AlertContactGroup(\"default\", new()\n    {\n        AlertContactGroupName = \"example_value\",\n        ContactIds = new[]\n        {\n            @default.Id,\n        },\n    });\n\n    var defaultDispatchRule = new AliCloud.Arms.DispatchRule(\"default\", new()\n    {\n        DispatchRuleName = \"example_value\",\n        DispatchType = \"CREATE_ALERT\",\n        GroupRules = new[]\n        {\n            new AliCloud.Arms.Inputs.DispatchRuleGroupRuleArgs\n            {\n                GroupWaitTime = 5,\n                GroupInterval = 15,\n                RepeatInterval = 100,\n                GroupingFields = new[]\n                {\n                    \"alertname\",\n                },\n            },\n        },\n        LabelMatchExpressionGrids = new[]\n        {\n            new AliCloud.Arms.Inputs.DispatchRuleLabelMatchExpressionGridArgs\n            {\n                LabelMatchExpressionGroups = new[]\n                {\n                    new AliCloud.Arms.Inputs.DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupArgs\n                    {\n                        LabelMatchExpressions = new[]\n                        {\n                            new AliCloud.Arms.Inputs.DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupLabelMatchExpressionArgs\n                            {\n                                Key = \"_aliyun_arms_involvedObject_kind\",\n                                Value = \"app\",\n                                Operator = \"eq\",\n                            },\n                        },\n                    },\n                },\n            },\n        },\n        NotifyRules = new[]\n        {\n            new AliCloud.Arms.Inputs.DispatchRuleNotifyRuleArgs\n            {\n                NotifyObjects = new[]\n                {\n                    new AliCloud.Arms.Inputs.DispatchRuleNotifyRuleNotifyObjectArgs\n                    {\n                        NotifyObjectId = @default.Id,\n                        NotifyType = \"ARMS_CONTACT\",\n                        Name = \"example_value\",\n                    },\n                    new AliCloud.Arms.Inputs.DispatchRuleNotifyRuleNotifyObjectArgs\n                    {\n                        NotifyObjectId = defaultAlertContactGroup.Id,\n                        NotifyType = \"ARMS_CONTACT_GROUP\",\n                        Name = \"example_value\",\n                    },\n                },\n                NotifyChannels = new[]\n                {\n                    \"dingTalk\",\n                    \"wechat\",\n                },\n                NotifyStartTime = \"10:00\",\n                NotifyEndTime = \"23:00\",\n            },\n        },\n    });\n\n    var ids = AliCloud.Arms.GetDispatchRules.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultDispatchRule.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsDispatchRuleId1\"] = ids.Apply(getDispatchRulesResult =\u003e getDispatchRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := arms.NewAlertContact(ctx, \"default\", \u0026arms.AlertContactArgs{\n\t\t\tAlertContactName: pulumi.String(\"example_value\"),\n\t\t\tEmail:            pulumi.String(\"example_value@aaa.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAlertContactGroup, err := arms.NewAlertContactGroup(ctx, \"default\", \u0026arms.AlertContactGroupArgs{\n\t\t\tAlertContactGroupName: pulumi.String(\"example_value\"),\n\t\t\tContactIds: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDispatchRule, err := arms.NewDispatchRule(ctx, \"default\", \u0026arms.DispatchRuleArgs{\n\t\t\tDispatchRuleName: pulumi.String(\"example_value\"),\n\t\t\tDispatchType:     pulumi.String(\"CREATE_ALERT\"),\n\t\t\tGroupRules: arms.DispatchRuleGroupRuleArray{\n\t\t\t\t\u0026arms.DispatchRuleGroupRuleArgs{\n\t\t\t\t\tGroupWaitTime:  pulumi.Int(5),\n\t\t\t\t\tGroupInterval:  pulumi.Int(15),\n\t\t\t\t\tRepeatInterval: pulumi.Int(100),\n\t\t\t\t\tGroupingFields: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"alertname\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabelMatchExpressionGrids: arms.DispatchRuleLabelMatchExpressionGridArray{\n\t\t\t\t\u0026arms.DispatchRuleLabelMatchExpressionGridArgs{\n\t\t\t\t\tLabelMatchExpressionGroups: arms.DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupArray{\n\t\t\t\t\t\t\u0026arms.DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupArgs{\n\t\t\t\t\t\t\tLabelMatchExpressions: arms.DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupLabelMatchExpressionArray{\n\t\t\t\t\t\t\t\t\u0026arms.DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupLabelMatchExpressionArgs{\n\t\t\t\t\t\t\t\t\tKey:      pulumi.String(\"_aliyun_arms_involvedObject_kind\"),\n\t\t\t\t\t\t\t\t\tValue:    pulumi.String(\"app\"),\n\t\t\t\t\t\t\t\t\tOperator: pulumi.String(\"eq\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tNotifyRules: arms.DispatchRuleNotifyRuleArray{\n\t\t\t\t\u0026arms.DispatchRuleNotifyRuleArgs{\n\t\t\t\t\tNotifyObjects: arms.DispatchRuleNotifyRuleNotifyObjectArray{\n\t\t\t\t\t\t\u0026arms.DispatchRuleNotifyRuleNotifyObjectArgs{\n\t\t\t\t\t\t\tNotifyObjectId: _default.ID(),\n\t\t\t\t\t\t\tNotifyType:     pulumi.String(\"ARMS_CONTACT\"),\n\t\t\t\t\t\t\tName:           pulumi.String(\"example_value\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026arms.DispatchRuleNotifyRuleNotifyObjectArgs{\n\t\t\t\t\t\t\tNotifyObjectId: defaultAlertContactGroup.ID(),\n\t\t\t\t\t\t\tNotifyType:     pulumi.String(\"ARMS_CONTACT_GROUP\"),\n\t\t\t\t\t\t\tName:           pulumi.String(\"example_value\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tNotifyChannels: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"dingTalk\"),\n\t\t\t\t\t\tpulumi.String(\"wechat\"),\n\t\t\t\t\t},\n\t\t\t\t\tNotifyStartTime: pulumi.String(\"10:00\"),\n\t\t\t\t\tNotifyEndTime:   pulumi.String(\"23:00\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := arms.GetDispatchRulesOutput(ctx, arms.GetDispatchRulesOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultDispatchRule.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"armsDispatchRuleId1\", ids.ApplyT(func(ids arms.GetDispatchRulesResult) (*string, error) {\n\t\t\treturn \u0026ids.Rules[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.arms.AlertContact;\nimport com.pulumi.alicloud.arms.AlertContactArgs;\nimport com.pulumi.alicloud.arms.AlertContactGroup;\nimport com.pulumi.alicloud.arms.AlertContactGroupArgs;\nimport com.pulumi.alicloud.arms.DispatchRule;\nimport com.pulumi.alicloud.arms.DispatchRuleArgs;\nimport com.pulumi.alicloud.arms.inputs.DispatchRuleGroupRuleArgs;\nimport com.pulumi.alicloud.arms.inputs.DispatchRuleLabelMatchExpressionGridArgs;\nimport com.pulumi.alicloud.arms.inputs.DispatchRuleNotifyRuleArgs;\nimport com.pulumi.alicloud.arms.ArmsFunctions;\nimport com.pulumi.alicloud.arms.inputs.GetDispatchRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new AlertContact(\"default\", AlertContactArgs.builder()\n            .alertContactName(\"example_value\")\n            .email(\"example_value@aaa.com\")\n            .build());\n\n        var defaultAlertContactGroup = new AlertContactGroup(\"defaultAlertContactGroup\", AlertContactGroupArgs.builder()\n            .alertContactGroupName(\"example_value\")\n            .contactIds(default_.id())\n            .build());\n\n        var defaultDispatchRule = new DispatchRule(\"defaultDispatchRule\", DispatchRuleArgs.builder()\n            .dispatchRuleName(\"example_value\")\n            .dispatchType(\"CREATE_ALERT\")\n            .groupRules(DispatchRuleGroupRuleArgs.builder()\n                .groupWaitTime(5)\n                .groupInterval(15)\n                .repeatInterval(100)\n                .groupingFields(\"alertname\")\n                .build())\n            .labelMatchExpressionGrids(DispatchRuleLabelMatchExpressionGridArgs.builder()\n                .labelMatchExpressionGroups(DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupArgs.builder()\n                    .labelMatchExpressions(DispatchRuleLabelMatchExpressionGridLabelMatchExpressionGroupLabelMatchExpressionArgs.builder()\n                        .key(\"_aliyun_arms_involvedObject_kind\")\n                        .value(\"app\")\n                        .operator(\"eq\")\n                        .build())\n                    .build())\n                .build())\n            .notifyRules(DispatchRuleNotifyRuleArgs.builder()\n                .notifyObjects(                \n                    DispatchRuleNotifyRuleNotifyObjectArgs.builder()\n                        .notifyObjectId(default_.id())\n                        .notifyType(\"ARMS_CONTACT\")\n                        .name(\"example_value\")\n                        .build(),\n                    DispatchRuleNotifyRuleNotifyObjectArgs.builder()\n                        .notifyObjectId(defaultAlertContactGroup.id())\n                        .notifyType(\"ARMS_CONTACT_GROUP\")\n                        .name(\"example_value\")\n                        .build())\n                .notifyChannels(                \n                    \"dingTalk\",\n                    \"wechat\")\n                .notifyStartTime(\"10:00\")\n                .notifyEndTime(\"23:00\")\n                .build())\n            .build());\n\n        final var ids = ArmsFunctions.getDispatchRules(GetDispatchRulesArgs.builder()\n            .ids(defaultDispatchRule.id())\n            .build());\n\n        ctx.export(\"armsDispatchRuleId1\", ids.applyValue(_ids -\u003e _ids.rules()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:arms:AlertContact\n    properties:\n      alertContactName: example_value\n      email: example_value@aaa.com\n  defaultAlertContactGroup:\n    type: alicloud:arms:AlertContactGroup\n    name: default\n    properties:\n      alertContactGroupName: example_value\n      contactIds:\n        - ${default.id}\n  defaultDispatchRule:\n    type: alicloud:arms:DispatchRule\n    name: default\n    properties:\n      dispatchRuleName: example_value\n      dispatchType: CREATE_ALERT\n      groupRules:\n        - groupWaitTime: 5\n          groupInterval: 15\n          repeatInterval: 100\n          groupingFields:\n            - alertname\n      labelMatchExpressionGrids:\n        - labelMatchExpressionGroups:\n            - labelMatchExpressions:\n                - key: _aliyun_arms_involvedObject_kind\n                  value: app\n                  operator: eq\n      notifyRules:\n        - notifyObjects:\n            - notifyObjectId: ${default.id}\n              notifyType: ARMS_CONTACT\n              name: example_value\n            - notifyObjectId: ${defaultAlertContactGroup.id}\n              notifyType: ARMS_CONTACT_GROUP\n              name: example_value\n          notifyChannels:\n            - dingTalk\n            - wechat\n          notifyStartTime: 10:00\n          notifyEndTime: 23:00\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:arms:getDispatchRules\n      arguments:\n        ids:\n          - ${defaultDispatchRule.id}\noutputs:\n  armsDispatchRuleId1: ${ids.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDispatchRules.\n","properties":{"dispatchRuleName":{"type":"string","description":"The name of the dispatch rule.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of dispatch rule id.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Dispatch Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDispatchRules.\n","properties":{"dispatchRuleName":{"description":"The name of the dispatch rule.\n","type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Dispatch Rule names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"rules":{"description":"A list of Arms Dispatch Rules. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:arms/getDispatchRulesRule:getDispatchRulesRule"},"type":"array"}},"required":["ids","names","rules","id"],"type":"object"}},"alicloud:arms/getEnvCustomJobs:getEnvCustomJobs":{"description":"This data source provides the ARMS Env Custom Jobs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.258.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst _default = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultEnvironment = new alicloud.arms.Environment(\"default\", {\n    bindResourceId: _default.then(_default =\u003e _default.ids?.[0]),\n    environmentSubType: \"ECS\",\n    environmentType: \"ECS\",\n    environmentName: `${name}-${defaultInteger.result}`,\n    tags: {\n        Created: \"TF\",\n        For: \"Environment\",\n    },\n});\nconst defaultEnvCustomJob = new alicloud.arms.EnvCustomJob(\"default\", {\n    status: \"run\",\n    environmentId: defaultEnvironment.id,\n    envCustomJobName: `${name}-${defaultInteger.result}`,\n    configYaml: `scrape_configs:\n- job_name: job-demo1\n  honor_timestamps: false\n  honor_labels: false\n  scrape_interval: 30s\n  scheme: http\n  metrics_path: /metric\n  static_configs:\n  - targets:\n    - 127.0.0.1:9090\n`,\n    aliyunLang: \"en\",\n});\nconst ids = alicloud.arms.getEnvCustomJobsOutput({\n    environmentId: defaultEnvCustomJob.environmentId,\n    ids: [defaultEnvCustomJob.id],\n});\nexport const armsEnvCustomJobsId0 = ids.apply(ids =\u003e ids.jobs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_environment = alicloud.arms.Environment(\"default\",\n    bind_resource_id=default.ids[0],\n    environment_sub_type=\"ECS\",\n    environment_type=\"ECS\",\n    environment_name=f\"{name}-{default_integer['result']}\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Environment\",\n    })\ndefault_env_custom_job = alicloud.arms.EnvCustomJob(\"default\",\n    status=\"run\",\n    environment_id=default_environment.id,\n    env_custom_job_name=f\"{name}-{default_integer['result']}\",\n    config_yaml=\"\"\"scrape_configs:\n- job_name: job-demo1\n  honor_timestamps: false\n  honor_labels: false\n  scrape_interval: 30s\n  scheme: http\n  metrics_path: /metric\n  static_configs:\n  - targets:\n    - 127.0.0.1:9090\n\"\"\",\n    aliyun_lang=\"en\")\nids = alicloud.arms.get_env_custom_jobs_output(environment_id=default_env_custom_job.environment_id,\n    ids=[default_env_custom_job.id])\npulumi.export(\"armsEnvCustomJobsId0\", ids.jobs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var @default = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultEnvironment = new AliCloud.Arms.Environment(\"default\", new()\n    {\n        BindResourceId = @default.Apply(@default =\u003e @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0])),\n        EnvironmentSubType = \"ECS\",\n        EnvironmentType = \"ECS\",\n        EnvironmentName = $\"{name}-{defaultInteger.Result}\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Environment\" },\n        },\n    });\n\n    var defaultEnvCustomJob = new AliCloud.Arms.EnvCustomJob(\"default\", new()\n    {\n        Status = \"run\",\n        EnvironmentId = defaultEnvironment.Id,\n        EnvCustomJobName = $\"{name}-{defaultInteger.Result}\",\n        ConfigYaml = @\"scrape_configs:\n- job_name: job-demo1\n  honor_timestamps: false\n  honor_labels: false\n  scrape_interval: 30s\n  scheme: http\n  metrics_path: /metric\n  static_configs:\n  - targets:\n    - 127.0.0.1:9090\n\",\n        AliyunLang = \"en\",\n    });\n\n    var ids = AliCloud.Arms.GetEnvCustomJobs.Invoke(new()\n    {\n        EnvironmentId = defaultEnvCustomJob.EnvironmentId,\n        Ids = new[]\n        {\n            defaultEnvCustomJob.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsEnvCustomJobsId0\"] = ids.Apply(getEnvCustomJobsResult =\u003e getEnvCustomJobsResult.Jobs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEnvironment, err := arms.NewEnvironment(ctx, \"default\", \u0026arms.EnvironmentArgs{\n\t\t\tBindResourceId:     pulumi.String(_default.Ids[0]),\n\t\t\tEnvironmentSubType: pulumi.String(\"ECS\"),\n\t\t\tEnvironmentType:    pulumi.String(\"ECS\"),\n\t\t\tEnvironmentName:    pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"Environment\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEnvCustomJob, err := arms.NewEnvCustomJob(ctx, \"default\", \u0026arms.EnvCustomJobArgs{\n\t\t\tStatus:           pulumi.String(\"run\"),\n\t\t\tEnvironmentId:    defaultEnvironment.ID(),\n\t\t\tEnvCustomJobName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tConfigYaml: pulumi.String(`scrape_configs:\n- job_name: job-demo1\n  honor_timestamps: false\n  honor_labels: false\n  scrape_interval: 30s\n  scheme: http\n  metrics_path: /metric\n  static_configs:\n  - targets:\n    - 127.0.0.1:9090\n`),\n\t\t\tAliyunLang: pulumi.String(\"en\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := arms.GetEnvCustomJobsOutput(ctx, arms.GetEnvCustomJobsOutputArgs{\n\t\t\tEnvironmentId: defaultEnvCustomJob.EnvironmentId,\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultEnvCustomJob.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"armsEnvCustomJobsId0\", ids.ApplyT(func(ids arms.GetEnvCustomJobsResult) (*string, error) {\n\t\t\treturn \u0026ids.Jobs[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.arms.Environment;\nimport com.pulumi.alicloud.arms.EnvironmentArgs;\nimport com.pulumi.alicloud.arms.EnvCustomJob;\nimport com.pulumi.alicloud.arms.EnvCustomJobArgs;\nimport com.pulumi.alicloud.arms.ArmsFunctions;\nimport com.pulumi.alicloud.arms.inputs.GetEnvCustomJobsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var default = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        var defaultEnvironment = new Environment(\"defaultEnvironment\", EnvironmentArgs.builder()\n            .bindResourceId(default_.ids()[0])\n            .environmentSubType(\"ECS\")\n            .environmentType(\"ECS\")\n            .environmentName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Environment\")\n            ))\n            .build());\n\n        var defaultEnvCustomJob = new EnvCustomJob(\"defaultEnvCustomJob\", EnvCustomJobArgs.builder()\n            .status(\"run\")\n            .environmentId(defaultEnvironment.id())\n            .envCustomJobName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .configYaml(\"\"\"\nscrape_configs:\n- job_name: job-demo1\n  honor_timestamps: false\n  honor_labels: false\n  scrape_interval: 30s\n  scheme: http\n  metrics_path: /metric\n  static_configs:\n  - targets:\n    - 127.0.0.1:9090\n            \"\"\")\n            .aliyunLang(\"en\")\n            .build());\n\n        final var ids = ArmsFunctions.getEnvCustomJobs(GetEnvCustomJobsArgs.builder()\n            .environmentId(defaultEnvCustomJob.environmentId())\n            .ids(defaultEnvCustomJob.id())\n            .build());\n\n        ctx.export(\"armsEnvCustomJobsId0\", ids.applyValue(_ids -\u003e _ids.jobs()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultEnvironment:\n    type: alicloud:arms:Environment\n    name: default\n    properties:\n      bindResourceId: ${default.ids[0]}\n      environmentSubType: ECS\n      environmentType: ECS\n      environmentName: ${name}-${defaultInteger.result}\n      tags:\n        Created: TF\n        For: Environment\n  defaultEnvCustomJob:\n    type: alicloud:arms:EnvCustomJob\n    name: default\n    properties:\n      status: run\n      environmentId: ${defaultEnvironment.id}\n      envCustomJobName: ${name}-${defaultInteger.result}\n      configYaml: |\n        scrape_configs:\n        - job_name: job-demo1\n          honor_timestamps: false\n          honor_labels: false\n          scrape_interval: 30s\n          scheme: http\n          metrics_path: /metric\n          static_configs:\n          - targets:\n            - 127.0.0.1:9090\n      aliyunLang: en\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  ids:\n    fn::invoke:\n      function: alicloud:arms:getEnvCustomJobs\n      arguments:\n        environmentId: ${defaultEnvCustomJob.environmentId}\n        ids:\n          - ${defaultEnvCustomJob.id}\noutputs:\n  armsEnvCustomJobsId0: ${ids.jobs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEnvCustomJobs.\n","properties":{"environmentId":{"type":"string","description":"The ID of the environment instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of ARMS Env Custom Job IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by ARMS Env Custom Job name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["environmentId"]},"outputs":{"description":"A collection of values returned by getEnvCustomJobs.\n","properties":{"environmentId":{"description":"The ID of the environment instance.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"jobs":{"description":"A list of ARMS Env Custom Jobs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:arms/getEnvCustomJobsJob:getEnvCustomJobsJob"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of ARMS Env Custom Job names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["environmentId","ids","jobs","names","id"],"type":"object"}},"alicloud:arms/getEnvFeatures:getEnvFeatures":{"description":"This data source provides the ARMS Env Features of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.258.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    description: \"api-resource-test1-hz\",\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: `${name}-${defaultInteger.result}`,\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    description: \"api-resource-test1-hz\",\n    vpcId: vpc.id,\n    vswitchName: `${name}-${defaultInteger.result}`,\n    zoneId: enhanced.then(enhanced =\u003e enhanced.zones?.[0]?.zoneId),\n    cidrBlock: vpc.cidrBlock.apply(cidrBlock =\u003e std.cidrsubnetOutput({\n        input: cidrBlock,\n        newbits: 8,\n        netnum: 8,\n    })).apply(invoke =\u003e invoke.result),\n});\nconst defaultSnapshotPolicy = new alicloud.ecs.SnapshotPolicy(\"default\", {\n    name: `${name}-${defaultInteger.result}`,\n    repeatWeekdays: [\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retentionDays: -1,\n    timePoints: [\n        \"1\",\n        \"22\",\n        \"23\",\n    ],\n});\nconst _default = vswitch.zoneId.apply(zoneId =\u003e alicloud.ecs.getInstanceTypesOutput({\n    availabilityZone: zoneId,\n    cpuCoreCount: 2,\n    memorySize: 4,\n    kubernetesNodeRole: \"Worker\",\n    instanceTypeFamily: \"ecs.sn1ne\",\n}));\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    name: `${name}-${defaultInteger.result}`,\n    clusterSpec: \"ack.pro.small\",\n    version: \"1.24.6-aliyun.1\",\n    newNatGateway: true,\n    nodeCidrMask: 26,\n    proxyMode: \"ipvs\",\n    serviceCidr: \"172.23.0.0/16\",\n    podCidr: \"10.95.0.0/16\",\n    workerVswitchIds: [vswitch.id],\n});\nconst defaultKeyPair = new alicloud.ecs.KeyPair(\"default\", {keyPairName: `${name}-${defaultInteger.result}`});\nconst defaultNodePool = new alicloud.cs.NodePool(\"default\", {\n    name: \"desired_size\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [vswitch.id],\n    instanceTypes: [_default.apply(_default =\u003e _default.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyPairName,\n    desiredSize: \"2\",\n});\nconst defaultEnvironment = new alicloud.arms.Environment(\"default\", {\n    environmentType: \"CS\",\n    environmentName: `${name}-${defaultInteger.result}`,\n    bindResourceId: defaultNodePool.clusterId,\n    environmentSubType: \"ManagedKubernetes\",\n});\nconst defaultEnvFeature = new alicloud.arms.EnvFeature(\"default\", {\n    envFeatureName: \"metric-agent\",\n    environmentId: defaultEnvironment.id,\n    featureVersion: \"1.1.17\",\n});\nconst ids = alicloud.arms.getEnvFeaturesOutput({\n    environmentId: defaultEnvFeature.environmentId,\n    ids: [defaultEnvFeature.id],\n});\nexport const armsEnvFeaturesId0 = ids.apply(ids =\u003e ids.features?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\nvpc = alicloud.vpc.Network(\"vpc\",\n    description=\"api-resource-test1-hz\",\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=f\"{name}-{default_integer['result']}\")\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    description=\"api-resource-test1-hz\",\n    vpc_id=vpc.id,\n    vswitch_name=f\"{name}-{default_integer['result']}\",\n    zone_id=enhanced.zones[0].zone_id,\n    cidr_block=vpc.cidr_block.apply(lambda cidr_block: std.cidrsubnet_output(input=cidr_block,\n        newbits=8,\n        netnum=8)).apply(lambda invoke: invoke.result))\ndefault_snapshot_policy = alicloud.ecs.SnapshotPolicy(\"default\",\n    name=f\"{name}-{default_integer['result']}\",\n    repeat_weekdays=[\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retention_days=-1,\n    time_points=[\n        \"1\",\n        \"22\",\n        \"23\",\n    ])\ndefault = vswitch.zone_id.apply(lambda zone_id: alicloud.ecs.get_instance_types_output(availability_zone=zone_id,\n    cpu_core_count=2,\n    memory_size=4,\n    kubernetes_node_role=\"Worker\",\n    instance_type_family=\"ecs.sn1ne\"))\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name=f\"{name}-{default_integer['result']}\",\n    cluster_spec=\"ack.pro.small\",\n    version=\"1.24.6-aliyun.1\",\n    new_nat_gateway=True,\n    node_cidr_mask=26,\n    proxy_mode=\"ipvs\",\n    service_cidr=\"172.23.0.0/16\",\n    pod_cidr=\"10.95.0.0/16\",\n    worker_vswitch_ids=[vswitch.id])\ndefault_key_pair = alicloud.ecs.KeyPair(\"default\", key_pair_name=f\"{name}-{default_integer['result']}\")\ndefault_node_pool = alicloud.cs.NodePool(\"default\",\n    name=\"desired_size\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[vswitch.id],\n    instance_types=[default.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_pair_name,\n    desired_size=\"2\")\ndefault_environment = alicloud.arms.Environment(\"default\",\n    environment_type=\"CS\",\n    environment_name=f\"{name}-{default_integer['result']}\",\n    bind_resource_id=default_node_pool.cluster_id,\n    environment_sub_type=\"ManagedKubernetes\")\ndefault_env_feature = alicloud.arms.EnvFeature(\"default\",\n    env_feature_name=\"metric-agent\",\n    environment_id=default_environment.id,\n    feature_version=\"1.1.17\")\nids = alicloud.arms.get_env_features_output(environment_id=default_env_feature.environment_id,\n    ids=[default_env_feature.id])\npulumi.export(\"armsEnvFeaturesId0\", ids.features[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var enhanced = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        Description = \"api-resource-test1-hz\",\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        Description = \"api-resource-test1-hz\",\n        VpcId = vpc.Id,\n        VswitchName = $\"{name}-{defaultInteger.Result}\",\n        ZoneId = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId),\n        CidrBlock = vpc.CidrBlock.Apply(cidrBlock =\u003e Std.Cidrsubnet.Invoke(new()\n        {\n            Input = cidrBlock,\n            Newbits = 8,\n            Netnum = 8,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultSnapshotPolicy = new AliCloud.Ecs.SnapshotPolicy(\"default\", new()\n    {\n        Name = $\"{name}-{defaultInteger.Result}\",\n        RepeatWeekdays = new[]\n        {\n            \"1\",\n            \"2\",\n            \"3\",\n        },\n        RetentionDays = -1,\n        TimePoints = new[]\n        {\n            \"1\",\n            \"22\",\n            \"23\",\n        },\n    });\n\n    var @default = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = vswitch.ZoneId,\n        CpuCoreCount = 2,\n        MemorySize = 4,\n        KubernetesNodeRole = \"Worker\",\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        Name = $\"{name}-{defaultInteger.Result}\",\n        ClusterSpec = \"ack.pro.small\",\n        Version = \"1.24.6-aliyun.1\",\n        NewNatGateway = true,\n        NodeCidrMask = 26,\n        ProxyMode = \"ipvs\",\n        ServiceCidr = \"172.23.0.0/16\",\n        PodCidr = \"10.95.0.0/16\",\n        WorkerVswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n    });\n\n    var defaultKeyPair = new AliCloud.Ecs.KeyPair(\"default\", new()\n    {\n        KeyPairName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultNodePool = new AliCloud.CS.NodePool(\"default\", new()\n    {\n        Name = \"desired_size\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            @default.Apply(@default =\u003e @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id)),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyPairName,\n        DesiredSize = \"2\",\n    });\n\n    var defaultEnvironment = new AliCloud.Arms.Environment(\"default\", new()\n    {\n        EnvironmentType = \"CS\",\n        EnvironmentName = $\"{name}-{defaultInteger.Result}\",\n        BindResourceId = defaultNodePool.ClusterId,\n        EnvironmentSubType = \"ManagedKubernetes\",\n    });\n\n    var defaultEnvFeature = new AliCloud.Arms.EnvFeature(\"default\", new()\n    {\n        EnvFeatureName = \"metric-agent\",\n        EnvironmentId = defaultEnvironment.Id,\n        FeatureVersion = \"1.1.17\",\n    });\n\n    var ids = AliCloud.Arms.GetEnvFeatures.Invoke(new()\n    {\n        EnvironmentId = defaultEnvFeature.EnvironmentId,\n        Ids = new[]\n        {\n            defaultEnvFeature.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsEnvFeaturesId0\"] = ids.Apply(getEnvFeaturesResult =\u003e getEnvFeaturesResult.Features[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMin: 10000,\nMax: 99999,\n})\nif err != nil {\nreturn err\n}\nenhanced, err := vpc.GetEnhancedNatAvailableZones(ctx, \u0026vpc.GetEnhancedNatAvailableZonesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\nvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\nDescription: pulumi.String(\"api-resource-test1-hz\"),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\nVpcName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: cidrBlock,\nNewbits: 8,\nNetnum: 8,\n}, nil)\nif err != nil {\nreturn err\n}\nvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\nDescription: pulumi.String(\"api-resource-test1-hz\"),\nVpcId: vpc.ID(),\nVswitchName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nZoneId: pulumi.String(enhanced.Zones[0].ZoneId),\nCidrBlock: pulumi.String(vpc.CidrBlock.ApplyT(func(cidrBlock string) (std.CidrsubnetResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrsubnetResultOutput).ApplyT(func(invoke std.CidrsubnetResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\n})\nif err != nil {\nreturn err\n}\n_, err = ecs.NewSnapshotPolicy(ctx, \"default\", \u0026ecs.SnapshotPolicyArgs{\nName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nRepeatWeekdays: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"2\"),\npulumi.String(\"3\"),\n},\nRetentionDays: pulumi.Int(-1),\nTimePoints: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"22\"),\npulumi.String(\"23\"),\n},\n})\nif err != nil {\nreturn err\n}\n_default := vswitch.ZoneId.ApplyT(func(zoneId string) (ecs.GetInstanceTypesResult, error) {\nreturn ecs.GetInstanceTypesResult(interface{}(ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(pulumi.StringRef(zoneId)),\nCpuCoreCount: pulumi.IntRef(pulumi.IntRef(int(2))),\nMemorySize: pulumi.Float64Ref(pulumi.Float64Ref(4)),\nKubernetesNodeRole: pulumi.StringRef(pulumi.StringRef(\"Worker\")),\nInstanceTypeFamily: pulumi.StringRef(pulumi.StringRef(\"ecs.sn1ne\")),\n}, nil))), nil\n}).(ecs.GetInstanceTypesResultOutput)\ndefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\nName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nClusterSpec: pulumi.String(\"ack.pro.small\"),\nVersion: pulumi.String(\"1.24.6-aliyun.1\"),\nNewNatGateway: pulumi.Bool(true),\nNodeCidrMask: pulumi.Int(26),\nProxyMode: pulumi.String(\"ipvs\"),\nServiceCidr: pulumi.String(\"172.23.0.0/16\"),\nPodCidr: pulumi.String(\"10.95.0.0/16\"),\nWorkerVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\n})\nif err != nil {\nreturn err\n}\ndefaultKeyPair, err := ecs.NewKeyPair(ctx, \"default\", \u0026ecs.KeyPairArgs{\nKeyPairName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ndefaultNodePool, err := cs.NewNodePool(ctx, \"default\", \u0026cs.NodePoolArgs{\nName: pulumi.String(\"desired_size\"),\nClusterId: defaultManagedKubernetes.ID(),\nVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\nInstanceTypes: pulumi.StringArray{\npulumi.String(_default.ApplyT(func(_default ecs.GetInstanceTypesResult) (*string, error) {\nreturn \u0026default.InstanceTypes[0].Id, nil\n}).(pulumi.StringPtrOutput)),\n},\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nSystemDiskSize: pulumi.Int(40),\nKeyName: defaultKeyPair.KeyPairName,\nDesiredSize: pulumi.String(\"2\"),\n})\nif err != nil {\nreturn err\n}\ndefaultEnvironment, err := arms.NewEnvironment(ctx, \"default\", \u0026arms.EnvironmentArgs{\nEnvironmentType: pulumi.String(\"CS\"),\nEnvironmentName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nBindResourceId: defaultNodePool.ClusterId,\nEnvironmentSubType: pulumi.String(\"ManagedKubernetes\"),\n})\nif err != nil {\nreturn err\n}\ndefaultEnvFeature, err := arms.NewEnvFeature(ctx, \"default\", \u0026arms.EnvFeatureArgs{\nEnvFeatureName: pulumi.String(\"metric-agent\"),\nEnvironmentId: defaultEnvironment.ID(),\nFeatureVersion: pulumi.String(\"1.1.17\"),\n})\nif err != nil {\nreturn err\n}\nids := arms.GetEnvFeaturesOutput(ctx, arms.GetEnvFeaturesOutputArgs{\nEnvironmentId: defaultEnvFeature.EnvironmentId,\nIds: pulumi.StringArray{\ndefaultEnvFeature.ID(),\n},\n}, nil);\nctx.Export(\"armsEnvFeaturesId0\", ids.ApplyT(func(ids arms.GetEnvFeaturesResult) (*string, error) {\nreturn \u0026ids.Features[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.SnapshotPolicy;\nimport com.pulumi.alicloud.ecs.SnapshotPolicyArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.alicloud.ecs.KeyPair;\nimport com.pulumi.alicloud.ecs.KeyPairArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.arms.Environment;\nimport com.pulumi.alicloud.arms.EnvironmentArgs;\nimport com.pulumi.alicloud.arms.EnvFeature;\nimport com.pulumi.alicloud.arms.EnvFeatureArgs;\nimport com.pulumi.alicloud.arms.ArmsFunctions;\nimport com.pulumi.alicloud.arms.inputs.GetEnvFeaturesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var enhanced = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .description(\"api-resource-test1-hz\")\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .description(\"api-resource-test1-hz\")\n            .vpcId(vpc.id())\n            .vswitchName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .zoneId(enhanced.zones()[0].zoneId())\n            .cidrBlock(vpc.cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(_cidrBlock)\n                .newbits(8)\n                .netnum(8)\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .build());\n\n        var defaultSnapshotPolicy = new SnapshotPolicy(\"defaultSnapshotPolicy\", SnapshotPolicyArgs.builder()\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .repeatWeekdays(            \n                \"1\",\n                \"2\",\n                \"3\")\n            .retentionDays(-1)\n            .timePoints(            \n                \"1\",\n                \"22\",\n                \"23\")\n            .build());\n\n        final var default = vswitch.zoneId().applyValue(_zoneId -\u003e EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(_zoneId)\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .kubernetesNodeRole(\"Worker\")\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build()));\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .clusterSpec(\"ack.pro.small\")\n            .version(\"1.24.6-aliyun.1\")\n            .newNatGateway(true)\n            .nodeCidrMask(26)\n            .proxyMode(\"ipvs\")\n            .serviceCidr(\"172.23.0.0/16\")\n            .podCidr(\"10.95.0.0/16\")\n            .workerVswitchIds(vswitch.id())\n            .build());\n\n        var defaultKeyPair = new KeyPair(\"defaultKeyPair\", KeyPairArgs.builder()\n            .keyPairName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultNodePool = new NodePool(\"defaultNodePool\", NodePoolArgs.builder()\n            .name(\"desired_size\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(vswitch.id())\n            .instanceTypes(default_.applyValue(_default_ -\u003e _default_.instanceTypes()[0].id()))\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyPairName())\n            .desiredSize(\"2\")\n            .build());\n\n        var defaultEnvironment = new Environment(\"defaultEnvironment\", EnvironmentArgs.builder()\n            .environmentType(\"CS\")\n            .environmentName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .bindResourceId(defaultNodePool.clusterId())\n            .environmentSubType(\"ManagedKubernetes\")\n            .build());\n\n        var defaultEnvFeature = new EnvFeature(\"defaultEnvFeature\", EnvFeatureArgs.builder()\n            .envFeatureName(\"metric-agent\")\n            .environmentId(defaultEnvironment.id())\n            .featureVersion(\"1.1.17\")\n            .build());\n\n        final var ids = ArmsFunctions.getEnvFeatures(GetEnvFeaturesArgs.builder()\n            .environmentId(defaultEnvFeature.environmentId())\n            .ids(defaultEnvFeature.id())\n            .build());\n\n        ctx.export(\"armsEnvFeaturesId0\", ids.applyValue(_ids -\u003e _ids.features()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: api-resource-test1-hz\n      cidrBlock: 192.168.0.0/16\n      vpcName: ${name}-${defaultInteger.result}\n  vswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      description: api-resource-test1-hz\n      vpcId: ${vpc.id}\n      vswitchName: ${name}-${defaultInteger.result}\n      zoneId: ${enhanced.zones[0].zoneId}\n      cidrBlock:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: ${vpc.cidrBlock}\n            newbits: 8\n            netnum: 8\n          return: result\n  defaultSnapshotPolicy:\n    type: alicloud:ecs:SnapshotPolicy\n    name: default\n    properties:\n      name: ${name}-${defaultInteger.result}\n      repeatWeekdays:\n        - '1'\n        - '2'\n        - '3'\n      retentionDays: -1\n      timePoints:\n        - '1'\n        - '22'\n        - '23'\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      name: ${name}-${defaultInteger.result}\n      clusterSpec: ack.pro.small\n      version: 1.24.6-aliyun.1\n      newNatGateway: true\n      nodeCidrMask: 26\n      proxyMode: ipvs\n      serviceCidr: 172.23.0.0/16\n      podCidr: 10.95.0.0/16\n      workerVswitchIds:\n        - ${vswitch.id}\n  defaultKeyPair:\n    type: alicloud:ecs:KeyPair\n    name: default\n    properties:\n      keyPairName: ${name}-${defaultInteger.result}\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      name: desired_size\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${vswitch.id}\n      instanceTypes:\n        - ${default.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyPairName}\n      desiredSize: 2\n  defaultEnvironment:\n    type: alicloud:arms:Environment\n    name: default\n    properties:\n      environmentType: CS\n      environmentName: ${name}-${defaultInteger.result}\n      bindResourceId: ${defaultNodePool.clusterId}\n      environmentSubType: ManagedKubernetes\n  defaultEnvFeature:\n    type: alicloud:arms:EnvFeature\n    name: default\n    properties:\n      envFeatureName: metric-agent\n      environmentId: ${defaultEnvironment.id}\n      featureVersion: 1.1.17\nvariables:\n  enhanced:\n    fn::invoke:\n      function: alicloud:vpc:getEnhancedNatAvailableZones\n      arguments: {}\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${vswitch.zoneId}\n        cpuCoreCount: 2\n        memorySize: 4\n        kubernetesNodeRole: Worker\n        instanceTypeFamily: ecs.sn1ne\n  ids:\n    fn::invoke:\n      function: alicloud:arms:getEnvFeatures\n      arguments:\n        environmentId: ${defaultEnvFeature.environmentId}\n        ids:\n          - ${defaultEnvFeature.id}\noutputs:\n  armsEnvFeaturesId0: ${ids.features[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEnvFeatures.\n","properties":{"environmentId":{"type":"string","description":"The ID of the environment instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of ARMS Env Feature IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by ARMS Env Feature name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["environmentId"]},"outputs":{"description":"A collection of values returned by getEnvFeatures.\n","properties":{"environmentId":{"description":"The ID of the environment instance.\n","type":"string"},"features":{"description":"A list of ARMS Env Features. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:arms/getEnvFeaturesFeature:getEnvFeaturesFeature"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of ARMS Env Feature names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["environmentId","features","ids","names","id"],"type":"object"}},"alicloud:arms/getEnvPodMonitors:getEnvPodMonitors":{"description":"This data source provides the ARMS Env Pod Monitors of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.258.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    description: `${name}-${defaultInteger.result}`,\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: `${name}-${defaultInteger.result}`,\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    description: `${name}-${defaultInteger.result}`,\n    vpcId: vpc.id,\n    vswitchName: `${name}-${defaultInteger.result}`,\n    zoneId: enhanced.then(enhanced =\u003e enhanced.zones?.[0]?.zoneId),\n    cidrBlock: vpc.cidrBlock.apply(cidrBlock =\u003e std.cidrsubnetOutput({\n        input: cidrBlock,\n        newbits: 8,\n        netnum: 8,\n    })).apply(invoke =\u003e invoke.result),\n});\nconst defaultSnapshotPolicy = new alicloud.ecs.SnapshotPolicy(\"default\", {\n    name: `${name}-${defaultInteger.result}`,\n    repeatWeekdays: [\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retentionDays: -1,\n    timePoints: [\n        \"1\",\n        \"22\",\n        \"23\",\n    ],\n});\nconst _default = vswitch.zoneId.apply(zoneId =\u003e alicloud.ecs.getInstanceTypesOutput({\n    availabilityZone: zoneId,\n    cpuCoreCount: 2,\n    memorySize: 4,\n    kubernetesNodeRole: \"Worker\",\n    instanceTypeFamily: \"ecs.sn1ne\",\n}));\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    name: `terraform-example-${defaultInteger.result}`,\n    clusterSpec: \"ack.pro.small\",\n    version: \"1.24.6-aliyun.1\",\n    newNatGateway: true,\n    nodeCidrMask: 26,\n    proxyMode: \"ipvs\",\n    serviceCidr: \"172.23.0.0/16\",\n    podCidr: \"10.95.0.0/16\",\n    workerVswitchIds: [vswitch.id],\n});\nconst defaultKeyPair = new alicloud.ecs.KeyPair(\"default\", {keyPairName: `terraform-example-${defaultInteger.result}`});\nconst defaultNodePool = new alicloud.cs.NodePool(\"default\", {\n    name: \"desired_size\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [vswitch.id],\n    instanceTypes: [_default.apply(_default =\u003e _default.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyName,\n    desiredSize: \"2\",\n});\nconst environment_cs = new alicloud.arms.Environment(\"environment-cs\", {\n    environmentType: \"CS\",\n    environmentName: `${name}-${defaultInteger.result}`,\n    bindResourceId: defaultNodePool.clusterId,\n    environmentSubType: \"ManagedKubernetes\",\n});\nconst defaultEnvPodMonitor = new alicloud.arms.EnvPodMonitor(\"default\", {\n    aliyunLang: \"en\",\n    environmentId: environment_cs.id,\n    configYaml: `apiVersion: monitoring.coreos.com/v1\nkind: PodMonitor\nmetadata:\n  name: arms-admin-pm1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.2\n    o11y.aliyun.com/release-name: mysql2\nspec:\n  selector:\n    matchLabels:\n      app: arms-prometheus-ack-arms-prometheus\n      release: arms-prometheus\n  namespaceSelector:\n    any: true\n  podMetricsEndpoints:\n  - interval: 30s\n    targetPort: 9335\n    path: /metrics\n  - interval: 11s\n    targetPort: 9335\n    path: /metric\n`,\n});\nconst ids = alicloud.arms.getEnvPodMonitorsOutput({\n    environmentId: defaultEnvPodMonitor.environmentId,\n    ids: [defaultEnvPodMonitor.id],\n});\nexport const armsEnvPodMonitorsId0 = ids.apply(ids =\u003e ids.monitors?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nvpc = alicloud.vpc.Network(\"vpc\",\n    description=f\"{name}-{default_integer['result']}\",\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=f\"{name}-{default_integer['result']}\")\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    description=f\"{name}-{default_integer['result']}\",\n    vpc_id=vpc.id,\n    vswitch_name=f\"{name}-{default_integer['result']}\",\n    zone_id=enhanced.zones[0].zone_id,\n    cidr_block=vpc.cidr_block.apply(lambda cidr_block: std.cidrsubnet_output(input=cidr_block,\n        newbits=8,\n        netnum=8)).apply(lambda invoke: invoke.result))\ndefault_snapshot_policy = alicloud.ecs.SnapshotPolicy(\"default\",\n    name=f\"{name}-{default_integer['result']}\",\n    repeat_weekdays=[\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retention_days=-1,\n    time_points=[\n        \"1\",\n        \"22\",\n        \"23\",\n    ])\ndefault = vswitch.zone_id.apply(lambda zone_id: alicloud.ecs.get_instance_types_output(availability_zone=zone_id,\n    cpu_core_count=2,\n    memory_size=4,\n    kubernetes_node_role=\"Worker\",\n    instance_type_family=\"ecs.sn1ne\"))\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name=f\"terraform-example-{default_integer['result']}\",\n    cluster_spec=\"ack.pro.small\",\n    version=\"1.24.6-aliyun.1\",\n    new_nat_gateway=True,\n    node_cidr_mask=26,\n    proxy_mode=\"ipvs\",\n    service_cidr=\"172.23.0.0/16\",\n    pod_cidr=\"10.95.0.0/16\",\n    worker_vswitch_ids=[vswitch.id])\ndefault_key_pair = alicloud.ecs.KeyPair(\"default\", key_pair_name=f\"terraform-example-{default_integer['result']}\")\ndefault_node_pool = alicloud.cs.NodePool(\"default\",\n    name=\"desired_size\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[vswitch.id],\n    instance_types=[default.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_name,\n    desired_size=\"2\")\nenvironment_cs = alicloud.arms.Environment(\"environment-cs\",\n    environment_type=\"CS\",\n    environment_name=f\"{name}-{default_integer['result']}\",\n    bind_resource_id=default_node_pool.cluster_id,\n    environment_sub_type=\"ManagedKubernetes\")\ndefault_env_pod_monitor = alicloud.arms.EnvPodMonitor(\"default\",\n    aliyun_lang=\"en\",\n    environment_id=environment_cs.id,\n    config_yaml=\"\"\"apiVersion: monitoring.coreos.com/v1\nkind: PodMonitor\nmetadata:\n  name: arms-admin-pm1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.2\n    o11y.aliyun.com/release-name: mysql2\nspec:\n  selector:\n    matchLabels:\n      app: arms-prometheus-ack-arms-prometheus\n      release: arms-prometheus\n  namespaceSelector:\n    any: true\n  podMetricsEndpoints:\n  - interval: 30s\n    targetPort: 9335\n    path: /metrics\n  - interval: 11s\n    targetPort: 9335\n    path: /metric\n\"\"\")\nids = alicloud.arms.get_env_pod_monitors_output(environment_id=default_env_pod_monitor.environment_id,\n    ids=[default_env_pod_monitor.id])\npulumi.export(\"armsEnvPodMonitorsId0\", ids.monitors[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var enhanced = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        Description = $\"{name}-{defaultInteger.Result}\",\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        Description = $\"{name}-{defaultInteger.Result}\",\n        VpcId = vpc.Id,\n        VswitchName = $\"{name}-{defaultInteger.Result}\",\n        ZoneId = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId),\n        CidrBlock = vpc.CidrBlock.Apply(cidrBlock =\u003e Std.Cidrsubnet.Invoke(new()\n        {\n            Input = cidrBlock,\n            Newbits = 8,\n            Netnum = 8,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultSnapshotPolicy = new AliCloud.Ecs.SnapshotPolicy(\"default\", new()\n    {\n        Name = $\"{name}-{defaultInteger.Result}\",\n        RepeatWeekdays = new[]\n        {\n            \"1\",\n            \"2\",\n            \"3\",\n        },\n        RetentionDays = -1,\n        TimePoints = new[]\n        {\n            \"1\",\n            \"22\",\n            \"23\",\n        },\n    });\n\n    var @default = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = vswitch.ZoneId,\n        CpuCoreCount = 2,\n        MemorySize = 4,\n        KubernetesNodeRole = \"Worker\",\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        Name = $\"terraform-example-{defaultInteger.Result}\",\n        ClusterSpec = \"ack.pro.small\",\n        Version = \"1.24.6-aliyun.1\",\n        NewNatGateway = true,\n        NodeCidrMask = 26,\n        ProxyMode = \"ipvs\",\n        ServiceCidr = \"172.23.0.0/16\",\n        PodCidr = \"10.95.0.0/16\",\n        WorkerVswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n    });\n\n    var defaultKeyPair = new AliCloud.Ecs.KeyPair(\"default\", new()\n    {\n        KeyPairName = $\"terraform-example-{defaultInteger.Result}\",\n    });\n\n    var defaultNodePool = new AliCloud.CS.NodePool(\"default\", new()\n    {\n        Name = \"desired_size\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            @default.Apply(@default =\u003e @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id)),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyName,\n        DesiredSize = \"2\",\n    });\n\n    var environment_cs = new AliCloud.Arms.Environment(\"environment-cs\", new()\n    {\n        EnvironmentType = \"CS\",\n        EnvironmentName = $\"{name}-{defaultInteger.Result}\",\n        BindResourceId = defaultNodePool.ClusterId,\n        EnvironmentSubType = \"ManagedKubernetes\",\n    });\n\n    var defaultEnvPodMonitor = new AliCloud.Arms.EnvPodMonitor(\"default\", new()\n    {\n        AliyunLang = \"en\",\n        EnvironmentId = environment_cs.Id,\n        ConfigYaml = @\"apiVersion: monitoring.coreos.com/v1\nkind: PodMonitor\nmetadata:\n  name: arms-admin-pm1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.2\n    o11y.aliyun.com/release-name: mysql2\nspec:\n  selector:\n    matchLabels:\n      app: arms-prometheus-ack-arms-prometheus\n      release: arms-prometheus\n  namespaceSelector:\n    any: true\n  podMetricsEndpoints:\n  - interval: 30s\n    targetPort: 9335\n    path: /metrics\n  - interval: 11s\n    targetPort: 9335\n    path: /metric\n\",\n    });\n\n    var ids = AliCloud.Arms.GetEnvPodMonitors.Invoke(new()\n    {\n        EnvironmentId = defaultEnvPodMonitor.EnvironmentId,\n        Ids = new[]\n        {\n            defaultEnvPodMonitor.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsEnvPodMonitorsId0\"] = ids.Apply(getEnvPodMonitorsResult =\u003e getEnvPodMonitorsResult.Monitors[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nenhanced, err := vpc.GetEnhancedNatAvailableZones(ctx, \u0026vpc.GetEnhancedNatAvailableZonesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMax: 99999,\nMin: 10000,\n})\nif err != nil {\nreturn err\n}\nvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\nDescription: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\nVpcName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: cidrBlock,\nNewbits: 8,\nNetnum: 8,\n}, nil)\nif err != nil {\nreturn err\n}\nvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\nDescription: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nVpcId: vpc.ID(),\nVswitchName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nZoneId: pulumi.String(enhanced.Zones[0].ZoneId),\nCidrBlock: pulumi.String(vpc.CidrBlock.ApplyT(func(cidrBlock string) (std.CidrsubnetResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrsubnetResultOutput).ApplyT(func(invoke std.CidrsubnetResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\n})\nif err != nil {\nreturn err\n}\n_, err = ecs.NewSnapshotPolicy(ctx, \"default\", \u0026ecs.SnapshotPolicyArgs{\nName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nRepeatWeekdays: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"2\"),\npulumi.String(\"3\"),\n},\nRetentionDays: pulumi.Int(-1),\nTimePoints: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"22\"),\npulumi.String(\"23\"),\n},\n})\nif err != nil {\nreturn err\n}\n_default := vswitch.ZoneId.ApplyT(func(zoneId string) (ecs.GetInstanceTypesResult, error) {\nreturn ecs.GetInstanceTypesResult(interface{}(ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(pulumi.StringRef(zoneId)),\nCpuCoreCount: pulumi.IntRef(pulumi.IntRef(int(2))),\nMemorySize: pulumi.Float64Ref(pulumi.Float64Ref(4)),\nKubernetesNodeRole: pulumi.StringRef(pulumi.StringRef(\"Worker\")),\nInstanceTypeFamily: pulumi.StringRef(pulumi.StringRef(\"ecs.sn1ne\")),\n}, nil))), nil\n}).(ecs.GetInstanceTypesResultOutput)\ndefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\nName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\nClusterSpec: pulumi.String(\"ack.pro.small\"),\nVersion: pulumi.String(\"1.24.6-aliyun.1\"),\nNewNatGateway: pulumi.Bool(true),\nNodeCidrMask: pulumi.Int(26),\nProxyMode: pulumi.String(\"ipvs\"),\nServiceCidr: pulumi.String(\"172.23.0.0/16\"),\nPodCidr: pulumi.String(\"10.95.0.0/16\"),\nWorkerVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\n})\nif err != nil {\nreturn err\n}\ndefaultKeyPair, err := ecs.NewKeyPair(ctx, \"default\", \u0026ecs.KeyPairArgs{\nKeyPairName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ndefaultNodePool, err := cs.NewNodePool(ctx, \"default\", \u0026cs.NodePoolArgs{\nName: pulumi.String(\"desired_size\"),\nClusterId: defaultManagedKubernetes.ID(),\nVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\nInstanceTypes: pulumi.StringArray{\npulumi.String(_default.ApplyT(func(_default ecs.GetInstanceTypesResult) (*string, error) {\nreturn \u0026default.InstanceTypes[0].Id, nil\n}).(pulumi.StringPtrOutput)),\n},\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nSystemDiskSize: pulumi.Int(40),\nKeyName: defaultKeyPair.KeyName,\nDesiredSize: pulumi.String(\"2\"),\n})\nif err != nil {\nreturn err\n}\nenvironment_cs, err := arms.NewEnvironment(ctx, \"environment-cs\", \u0026arms.EnvironmentArgs{\nEnvironmentType: pulumi.String(\"CS\"),\nEnvironmentName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nBindResourceId: defaultNodePool.ClusterId,\nEnvironmentSubType: pulumi.String(\"ManagedKubernetes\"),\n})\nif err != nil {\nreturn err\n}\ndefaultEnvPodMonitor, err := arms.NewEnvPodMonitor(ctx, \"default\", \u0026arms.EnvPodMonitorArgs{\nAliyunLang: pulumi.String(\"en\"),\nEnvironmentId: environment_cs.ID(),\nConfigYaml: pulumi.String(`apiVersion: monitoring.coreos.com/v1\nkind: PodMonitor\nmetadata:\n  name: arms-admin-pm1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.2\n    o11y.aliyun.com/release-name: mysql2\nspec:\n  selector:\n    matchLabels:\n      app: arms-prometheus-ack-arms-prometheus\n      release: arms-prometheus\n  namespaceSelector:\n    any: true\n  podMetricsEndpoints:\n  - interval: 30s\n    targetPort: 9335\n    path: /metrics\n  - interval: 11s\n    targetPort: 9335\n    path: /metric\n`),\n})\nif err != nil {\nreturn err\n}\nids := arms.GetEnvPodMonitorsOutput(ctx, arms.GetEnvPodMonitorsOutputArgs{\nEnvironmentId: defaultEnvPodMonitor.EnvironmentId,\nIds: pulumi.StringArray{\ndefaultEnvPodMonitor.ID(),\n},\n}, nil);\nctx.Export(\"armsEnvPodMonitorsId0\", ids.ApplyT(func(ids arms.GetEnvPodMonitorsResult) (*string, error) {\nreturn \u0026ids.Monitors[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.SnapshotPolicy;\nimport com.pulumi.alicloud.ecs.SnapshotPolicyArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.alicloud.ecs.KeyPair;\nimport com.pulumi.alicloud.ecs.KeyPairArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.arms.Environment;\nimport com.pulumi.alicloud.arms.EnvironmentArgs;\nimport com.pulumi.alicloud.arms.EnvPodMonitor;\nimport com.pulumi.alicloud.arms.EnvPodMonitorArgs;\nimport com.pulumi.alicloud.arms.ArmsFunctions;\nimport com.pulumi.alicloud.arms.inputs.GetEnvPodMonitorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var enhanced = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .description(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .description(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .vpcId(vpc.id())\n            .vswitchName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .zoneId(enhanced.zones()[0].zoneId())\n            .cidrBlock(vpc.cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(_cidrBlock)\n                .newbits(8)\n                .netnum(8)\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .build());\n\n        var defaultSnapshotPolicy = new SnapshotPolicy(\"defaultSnapshotPolicy\", SnapshotPolicyArgs.builder()\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .repeatWeekdays(            \n                \"1\",\n                \"2\",\n                \"3\")\n            .retentionDays(-1)\n            .timePoints(            \n                \"1\",\n                \"22\",\n                \"23\")\n            .build());\n\n        final var default = vswitch.zoneId().applyValue(_zoneId -\u003e EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(_zoneId)\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .kubernetesNodeRole(\"Worker\")\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build()));\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .name(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .clusterSpec(\"ack.pro.small\")\n            .version(\"1.24.6-aliyun.1\")\n            .newNatGateway(true)\n            .nodeCidrMask(26)\n            .proxyMode(\"ipvs\")\n            .serviceCidr(\"172.23.0.0/16\")\n            .podCidr(\"10.95.0.0/16\")\n            .workerVswitchIds(vswitch.id())\n            .build());\n\n        var defaultKeyPair = new KeyPair(\"defaultKeyPair\", KeyPairArgs.builder()\n            .keyPairName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .build());\n\n        var defaultNodePool = new NodePool(\"defaultNodePool\", NodePoolArgs.builder()\n            .name(\"desired_size\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(vswitch.id())\n            .instanceTypes(default_.applyValue(_default_ -\u003e _default_.instanceTypes()[0].id()))\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyName())\n            .desiredSize(\"2\")\n            .build());\n\n        var environment_cs = new Environment(\"environment-cs\", EnvironmentArgs.builder()\n            .environmentType(\"CS\")\n            .environmentName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .bindResourceId(defaultNodePool.clusterId())\n            .environmentSubType(\"ManagedKubernetes\")\n            .build());\n\n        var defaultEnvPodMonitor = new EnvPodMonitor(\"defaultEnvPodMonitor\", EnvPodMonitorArgs.builder()\n            .aliyunLang(\"en\")\n            .environmentId(environment_cs.id())\n            .configYaml(\"\"\"\napiVersion: monitoring.coreos.com/v1\nkind: PodMonitor\nmetadata:\n  name: arms-admin-pm1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.2\n    o11y.aliyun.com/release-name: mysql2\nspec:\n  selector:\n    matchLabels:\n      app: arms-prometheus-ack-arms-prometheus\n      release: arms-prometheus\n  namespaceSelector:\n    any: true\n  podMetricsEndpoints:\n  - interval: 30s\n    targetPort: 9335\n    path: /metrics\n  - interval: 11s\n    targetPort: 9335\n    path: /metric\n            \"\"\")\n            .build());\n\n        final var ids = ArmsFunctions.getEnvPodMonitors(GetEnvPodMonitorsArgs.builder()\n            .environmentId(defaultEnvPodMonitor.environmentId())\n            .ids(defaultEnvPodMonitor.id())\n            .build());\n\n        ctx.export(\"armsEnvPodMonitorsId0\", ids.applyValue(_ids -\u003e _ids.monitors()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: ${name}-${defaultInteger.result}\n      cidrBlock: 192.168.0.0/16\n      vpcName: ${name}-${defaultInteger.result}\n  vswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      description: ${name}-${defaultInteger.result}\n      vpcId: ${vpc.id}\n      vswitchName: ${name}-${defaultInteger.result}\n      zoneId: ${enhanced.zones[0].zoneId}\n      cidrBlock:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: ${vpc.cidrBlock}\n            newbits: 8\n            netnum: 8\n          return: result\n  defaultSnapshotPolicy:\n    type: alicloud:ecs:SnapshotPolicy\n    name: default\n    properties:\n      name: ${name}-${defaultInteger.result}\n      repeatWeekdays:\n        - '1'\n        - '2'\n        - '3'\n      retentionDays: -1\n      timePoints:\n        - '1'\n        - '22'\n        - '23'\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      name: terraform-example-${defaultInteger.result}\n      clusterSpec: ack.pro.small\n      version: 1.24.6-aliyun.1\n      newNatGateway: true\n      nodeCidrMask: 26\n      proxyMode: ipvs\n      serviceCidr: 172.23.0.0/16\n      podCidr: 10.95.0.0/16\n      workerVswitchIds:\n        - ${vswitch.id}\n  defaultKeyPair:\n    type: alicloud:ecs:KeyPair\n    name: default\n    properties:\n      keyPairName: terraform-example-${defaultInteger.result}\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      name: desired_size\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${vswitch.id}\n      instanceTypes:\n        - ${default.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyName}\n      desiredSize: 2\n  environment-cs:\n    type: alicloud:arms:Environment\n    properties:\n      environmentType: CS\n      environmentName: ${name}-${defaultInteger.result}\n      bindResourceId: ${defaultNodePool.clusterId}\n      environmentSubType: ManagedKubernetes\n  defaultEnvPodMonitor:\n    type: alicloud:arms:EnvPodMonitor\n    name: default\n    properties:\n      aliyunLang: en\n      environmentId: ${[\"environment-cs\"].id}\n      configYaml: |\n        apiVersion: monitoring.coreos.com/v1\n        kind: PodMonitor\n        metadata:\n          name: arms-admin-pm1\n          namespace: arms-prom\n          annotations:\n            arms.prometheus.io/discovery: 'true'\n            o11y.aliyun.com/addon-name: mysql\n            o11y.aliyun.com/addon-version: 1.0.2\n            o11y.aliyun.com/release-name: mysql2\n        spec:\n          selector:\n            matchLabels:\n              app: arms-prometheus-ack-arms-prometheus\n              release: arms-prometheus\n          namespaceSelector:\n            any: true\n          podMetricsEndpoints:\n          - interval: 30s\n            targetPort: 9335\n            path: /metrics\n          - interval: 11s\n            targetPort: 9335\n            path: /metric\nvariables:\n  enhanced:\n    fn::invoke:\n      function: alicloud:vpc:getEnhancedNatAvailableZones\n      arguments: {}\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${vswitch.zoneId}\n        cpuCoreCount: 2\n        memorySize: 4\n        kubernetesNodeRole: Worker\n        instanceTypeFamily: ecs.sn1ne\n  ids:\n    fn::invoke:\n      function: alicloud:arms:getEnvPodMonitors\n      arguments:\n        environmentId: ${defaultEnvPodMonitor.environmentId}\n        ids:\n          - ${defaultEnvPodMonitor.id}\noutputs:\n  armsEnvPodMonitorsId0: ${ids.monitors[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEnvPodMonitors.\n","properties":{"environmentId":{"type":"string","description":"The environment ID.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of ARMS Env Pod Monitor IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by ARMS Env Pod Monitor name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["environmentId"]},"outputs":{"description":"A collection of values returned by getEnvPodMonitors.\n","properties":{"environmentId":{"description":"The environment ID.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"monitors":{"description":"A list of ARMS Env Pod Monitors. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:arms/getEnvPodMonitorsMonitor:getEnvPodMonitorsMonitor"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of ARMS Env Pod Monitor names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["environmentId","ids","monitors","names","id"],"type":"object"}},"alicloud:arms/getEnvServiceMonitors:getEnvServiceMonitors":{"description":"This data source provides the ARMS Env Service Monitors of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.258.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    description: \"api-resource-test1-hz\",\n    cidrBlock: \"192.168.0.0/16\",\n    vpcName: `${name}-${defaultInteger.result}`,\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    description: \"api-resource-test1-hz\",\n    vpcId: vpc.id,\n    vswitchName: `${name}-${defaultInteger.result}`,\n    zoneId: enhanced.then(enhanced =\u003e enhanced.zones?.[0]?.zoneId),\n    cidrBlock: vpc.cidrBlock.apply(cidrBlock =\u003e std.cidrsubnetOutput({\n        input: cidrBlock,\n        newbits: 8,\n        netnum: 8,\n    })).apply(invoke =\u003e invoke.result),\n});\nconst defaultSnapshotPolicy = new alicloud.ecs.SnapshotPolicy(\"default\", {\n    name: `${name}-${defaultInteger.result}`,\n    repeatWeekdays: [\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retentionDays: -1,\n    timePoints: [\n        \"1\",\n        \"22\",\n        \"23\",\n    ],\n});\nconst _default = vswitch.zoneId.apply(zoneId =\u003e alicloud.ecs.getInstanceTypesOutput({\n    availabilityZone: zoneId,\n    cpuCoreCount: 2,\n    memorySize: 4,\n    kubernetesNodeRole: \"Worker\",\n    instanceTypeFamily: \"ecs.sn1ne\",\n}));\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    name: `${name}-${defaultInteger.result}`,\n    clusterSpec: \"ack.pro.small\",\n    version: \"1.24.6-aliyun.1\",\n    newNatGateway: true,\n    nodeCidrMask: 26,\n    proxyMode: \"ipvs\",\n    serviceCidr: \"172.23.0.0/16\",\n    podCidr: \"10.95.0.0/16\",\n    workerVswitchIds: [vswitch.id],\n});\nconst defaultKeyPair = new alicloud.ecs.KeyPair(\"default\", {keyPairName: `${name}-${defaultInteger.result}`});\nconst defaultNodePool = new alicloud.cs.NodePool(\"default\", {\n    name: \"desired_size\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [vswitch.id],\n    instanceTypes: [_default.apply(_default =\u003e _default.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyPairName,\n    desiredSize: \"2\",\n});\nconst defaultEnvironment = new alicloud.arms.Environment(\"default\", {\n    environmentType: \"CS\",\n    environmentName: `${name}-${defaultInteger.result}`,\n    bindResourceId: defaultNodePool.clusterId,\n    environmentSubType: \"ManagedKubernetes\",\n});\nconst defaultEnvServiceMonitor = new alicloud.arms.EnvServiceMonitor(\"default\", {\n    aliyunLang: \"en\",\n    environmentId: defaultEnvironment.id,\n    configYaml: `apiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name: arms-admin1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.1\n    o11y.aliyun.com/release-name: mysql1\nspec:\n  endpoints:\n  - interval: 30s\n    port: operator\n    path: /metrics\n  - interval: 10s\n    port: operator1\n    path: /metrics\n  namespaceSelector:\n    any: true\n  selector:\n    matchLabels:\n     app: arms-prometheus-ack-arms-prometheus\n`,\n});\nconst ids = alicloud.arms.getEnvServiceMonitorsOutput({\n    environmentId: defaultEnvServiceMonitor.environmentId,\n    ids: [defaultEnvServiceMonitor.id],\n});\nexport const armsEnvServiceMonitorsId0 = ids.apply(ids =\u003e ids.monitors?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\nvpc = alicloud.vpc.Network(\"vpc\",\n    description=\"api-resource-test1-hz\",\n    cidr_block=\"192.168.0.0/16\",\n    vpc_name=f\"{name}-{default_integer['result']}\")\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    description=\"api-resource-test1-hz\",\n    vpc_id=vpc.id,\n    vswitch_name=f\"{name}-{default_integer['result']}\",\n    zone_id=enhanced.zones[0].zone_id,\n    cidr_block=vpc.cidr_block.apply(lambda cidr_block: std.cidrsubnet_output(input=cidr_block,\n        newbits=8,\n        netnum=8)).apply(lambda invoke: invoke.result))\ndefault_snapshot_policy = alicloud.ecs.SnapshotPolicy(\"default\",\n    name=f\"{name}-{default_integer['result']}\",\n    repeat_weekdays=[\n        \"1\",\n        \"2\",\n        \"3\",\n    ],\n    retention_days=-1,\n    time_points=[\n        \"1\",\n        \"22\",\n        \"23\",\n    ])\ndefault = vswitch.zone_id.apply(lambda zone_id: alicloud.ecs.get_instance_types_output(availability_zone=zone_id,\n    cpu_core_count=2,\n    memory_size=4,\n    kubernetes_node_role=\"Worker\",\n    instance_type_family=\"ecs.sn1ne\"))\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name=f\"{name}-{default_integer['result']}\",\n    cluster_spec=\"ack.pro.small\",\n    version=\"1.24.6-aliyun.1\",\n    new_nat_gateway=True,\n    node_cidr_mask=26,\n    proxy_mode=\"ipvs\",\n    service_cidr=\"172.23.0.0/16\",\n    pod_cidr=\"10.95.0.0/16\",\n    worker_vswitch_ids=[vswitch.id])\ndefault_key_pair = alicloud.ecs.KeyPair(\"default\", key_pair_name=f\"{name}-{default_integer['result']}\")\ndefault_node_pool = alicloud.cs.NodePool(\"default\",\n    name=\"desired_size\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[vswitch.id],\n    instance_types=[default.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_pair_name,\n    desired_size=\"2\")\ndefault_environment = alicloud.arms.Environment(\"default\",\n    environment_type=\"CS\",\n    environment_name=f\"{name}-{default_integer['result']}\",\n    bind_resource_id=default_node_pool.cluster_id,\n    environment_sub_type=\"ManagedKubernetes\")\ndefault_env_service_monitor = alicloud.arms.EnvServiceMonitor(\"default\",\n    aliyun_lang=\"en\",\n    environment_id=default_environment.id,\n    config_yaml=\"\"\"apiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name: arms-admin1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.1\n    o11y.aliyun.com/release-name: mysql1\nspec:\n  endpoints:\n  - interval: 30s\n    port: operator\n    path: /metrics\n  - interval: 10s\n    port: operator1\n    path: /metrics\n  namespaceSelector:\n    any: true\n  selector:\n    matchLabels:\n     app: arms-prometheus-ack-arms-prometheus\n\"\"\")\nids = alicloud.arms.get_env_service_monitors_output(environment_id=default_env_service_monitor.environment_id,\n    ids=[default_env_service_monitor.id])\npulumi.export(\"armsEnvServiceMonitorsId0\", ids.monitors[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var enhanced = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        Description = \"api-resource-test1-hz\",\n        CidrBlock = \"192.168.0.0/16\",\n        VpcName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        Description = \"api-resource-test1-hz\",\n        VpcId = vpc.Id,\n        VswitchName = $\"{name}-{defaultInteger.Result}\",\n        ZoneId = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId),\n        CidrBlock = vpc.CidrBlock.Apply(cidrBlock =\u003e Std.Cidrsubnet.Invoke(new()\n        {\n            Input = cidrBlock,\n            Newbits = 8,\n            Netnum = 8,\n        })).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var defaultSnapshotPolicy = new AliCloud.Ecs.SnapshotPolicy(\"default\", new()\n    {\n        Name = $\"{name}-{defaultInteger.Result}\",\n        RepeatWeekdays = new[]\n        {\n            \"1\",\n            \"2\",\n            \"3\",\n        },\n        RetentionDays = -1,\n        TimePoints = new[]\n        {\n            \"1\",\n            \"22\",\n            \"23\",\n        },\n    });\n\n    var @default = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = vswitch.ZoneId,\n        CpuCoreCount = 2,\n        MemorySize = 4,\n        KubernetesNodeRole = \"Worker\",\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        Name = $\"{name}-{defaultInteger.Result}\",\n        ClusterSpec = \"ack.pro.small\",\n        Version = \"1.24.6-aliyun.1\",\n        NewNatGateway = true,\n        NodeCidrMask = 26,\n        ProxyMode = \"ipvs\",\n        ServiceCidr = \"172.23.0.0/16\",\n        PodCidr = \"10.95.0.0/16\",\n        WorkerVswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n    });\n\n    var defaultKeyPair = new AliCloud.Ecs.KeyPair(\"default\", new()\n    {\n        KeyPairName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var defaultNodePool = new AliCloud.CS.NodePool(\"default\", new()\n    {\n        Name = \"desired_size\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            @default.Apply(@default =\u003e @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id)),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyPairName,\n        DesiredSize = \"2\",\n    });\n\n    var defaultEnvironment = new AliCloud.Arms.Environment(\"default\", new()\n    {\n        EnvironmentType = \"CS\",\n        EnvironmentName = $\"{name}-{defaultInteger.Result}\",\n        BindResourceId = defaultNodePool.ClusterId,\n        EnvironmentSubType = \"ManagedKubernetes\",\n    });\n\n    var defaultEnvServiceMonitor = new AliCloud.Arms.EnvServiceMonitor(\"default\", new()\n    {\n        AliyunLang = \"en\",\n        EnvironmentId = defaultEnvironment.Id,\n        ConfigYaml = @\"apiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name: arms-admin1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.1\n    o11y.aliyun.com/release-name: mysql1\nspec:\n  endpoints:\n  - interval: 30s\n    port: operator\n    path: /metrics\n  - interval: 10s\n    port: operator1\n    path: /metrics\n  namespaceSelector:\n    any: true\n  selector:\n    matchLabels:\n     app: arms-prometheus-ack-arms-prometheus\n\",\n    });\n\n    var ids = AliCloud.Arms.GetEnvServiceMonitors.Invoke(new()\n    {\n        EnvironmentId = defaultEnvServiceMonitor.EnvironmentId,\n        Ids = new[]\n        {\n            defaultEnvServiceMonitor.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsEnvServiceMonitorsId0\"] = ids.Apply(getEnvServiceMonitorsResult =\u003e getEnvServiceMonitorsResult.Monitors[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMin: 10000,\nMax: 99999,\n})\nif err != nil {\nreturn err\n}\nenhanced, err := vpc.GetEnhancedNatAvailableZones(ctx, \u0026vpc.GetEnhancedNatAvailableZonesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\nvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\nDescription: pulumi.String(\"api-resource-test1-hz\"),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\nVpcName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: cidrBlock,\nNewbits: 8,\nNetnum: 8,\n}, nil)\nif err != nil {\nreturn err\n}\nvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\nDescription: pulumi.String(\"api-resource-test1-hz\"),\nVpcId: vpc.ID(),\nVswitchName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nZoneId: pulumi.String(enhanced.Zones[0].ZoneId),\nCidrBlock: pulumi.String(vpc.CidrBlock.ApplyT(func(cidrBlock string) (std.CidrsubnetResult, error) {\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)).(std.CidrsubnetResultOutput).ApplyT(func(invoke std.CidrsubnetResult) (*string, error) {\nreturn invoke.Result, nil\n}).(pulumi.StringPtrOutput)),\n})\nif err != nil {\nreturn err\n}\n_, err = ecs.NewSnapshotPolicy(ctx, \"default\", \u0026ecs.SnapshotPolicyArgs{\nName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nRepeatWeekdays: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"2\"),\npulumi.String(\"3\"),\n},\nRetentionDays: pulumi.Int(-1),\nTimePoints: pulumi.StringArray{\npulumi.String(\"1\"),\npulumi.String(\"22\"),\npulumi.String(\"23\"),\n},\n})\nif err != nil {\nreturn err\n}\n_default := vswitch.ZoneId.ApplyT(func(zoneId string) (ecs.GetInstanceTypesResult, error) {\nreturn ecs.GetInstanceTypesResult(interface{}(ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(pulumi.StringRef(zoneId)),\nCpuCoreCount: pulumi.IntRef(pulumi.IntRef(int(2))),\nMemorySize: pulumi.Float64Ref(pulumi.Float64Ref(4)),\nKubernetesNodeRole: pulumi.StringRef(pulumi.StringRef(\"Worker\")),\nInstanceTypeFamily: pulumi.StringRef(pulumi.StringRef(\"ecs.sn1ne\")),\n}, nil))), nil\n}).(ecs.GetInstanceTypesResultOutput)\ndefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\nName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nClusterSpec: pulumi.String(\"ack.pro.small\"),\nVersion: pulumi.String(\"1.24.6-aliyun.1\"),\nNewNatGateway: pulumi.Bool(true),\nNodeCidrMask: pulumi.Int(26),\nProxyMode: pulumi.String(\"ipvs\"),\nServiceCidr: pulumi.String(\"172.23.0.0/16\"),\nPodCidr: pulumi.String(\"10.95.0.0/16\"),\nWorkerVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\n})\nif err != nil {\nreturn err\n}\ndefaultKeyPair, err := ecs.NewKeyPair(ctx, \"default\", \u0026ecs.KeyPairArgs{\nKeyPairName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\ndefaultNodePool, err := cs.NewNodePool(ctx, \"default\", \u0026cs.NodePoolArgs{\nName: pulumi.String(\"desired_size\"),\nClusterId: defaultManagedKubernetes.ID(),\nVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\nInstanceTypes: pulumi.StringArray{\npulumi.String(_default.ApplyT(func(_default ecs.GetInstanceTypesResult) (*string, error) {\nreturn \u0026default.InstanceTypes[0].Id, nil\n}).(pulumi.StringPtrOutput)),\n},\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nSystemDiskSize: pulumi.Int(40),\nKeyName: defaultKeyPair.KeyPairName,\nDesiredSize: pulumi.String(\"2\"),\n})\nif err != nil {\nreturn err\n}\ndefaultEnvironment, err := arms.NewEnvironment(ctx, \"default\", \u0026arms.EnvironmentArgs{\nEnvironmentType: pulumi.String(\"CS\"),\nEnvironmentName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nBindResourceId: defaultNodePool.ClusterId,\nEnvironmentSubType: pulumi.String(\"ManagedKubernetes\"),\n})\nif err != nil {\nreturn err\n}\ndefaultEnvServiceMonitor, err := arms.NewEnvServiceMonitor(ctx, \"default\", \u0026arms.EnvServiceMonitorArgs{\nAliyunLang: pulumi.String(\"en\"),\nEnvironmentId: defaultEnvironment.ID(),\nConfigYaml: pulumi.String(`apiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name: arms-admin1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.1\n    o11y.aliyun.com/release-name: mysql1\nspec:\n  endpoints:\n  - interval: 30s\n    port: operator\n    path: /metrics\n  - interval: 10s\n    port: operator1\n    path: /metrics\n  namespaceSelector:\n    any: true\n  selector:\n    matchLabels:\n     app: arms-prometheus-ack-arms-prometheus\n`),\n})\nif err != nil {\nreturn err\n}\nids := arms.GetEnvServiceMonitorsOutput(ctx, arms.GetEnvServiceMonitorsOutputArgs{\nEnvironmentId: defaultEnvServiceMonitor.EnvironmentId,\nIds: pulumi.StringArray{\ndefaultEnvServiceMonitor.ID(),\n},\n}, nil);\nctx.Export(\"armsEnvServiceMonitorsId0\", ids.ApplyT(func(ids arms.GetEnvServiceMonitorsResult) (*string, error) {\nreturn \u0026ids.Monitors[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.SnapshotPolicy;\nimport com.pulumi.alicloud.ecs.SnapshotPolicyArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.alicloud.ecs.KeyPair;\nimport com.pulumi.alicloud.ecs.KeyPairArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.arms.Environment;\nimport com.pulumi.alicloud.arms.EnvironmentArgs;\nimport com.pulumi.alicloud.arms.EnvServiceMonitor;\nimport com.pulumi.alicloud.arms.EnvServiceMonitorArgs;\nimport com.pulumi.alicloud.arms.ArmsFunctions;\nimport com.pulumi.alicloud.arms.inputs.GetEnvServiceMonitorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var enhanced = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .description(\"api-resource-test1-hz\")\n            .cidrBlock(\"192.168.0.0/16\")\n            .vpcName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .description(\"api-resource-test1-hz\")\n            .vpcId(vpc.id())\n            .vswitchName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .zoneId(enhanced.zones()[0].zoneId())\n            .cidrBlock(vpc.cidrBlock().applyValue(_cidrBlock -\u003e StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(_cidrBlock)\n                .newbits(8)\n                .netnum(8)\n                .build())).applyValue(_invoke -\u003e _invoke.result()))\n            .build());\n\n        var defaultSnapshotPolicy = new SnapshotPolicy(\"defaultSnapshotPolicy\", SnapshotPolicyArgs.builder()\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .repeatWeekdays(            \n                \"1\",\n                \"2\",\n                \"3\")\n            .retentionDays(-1)\n            .timePoints(            \n                \"1\",\n                \"22\",\n                \"23\")\n            .build());\n\n        final var default = vswitch.zoneId().applyValue(_zoneId -\u003e EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(_zoneId)\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .kubernetesNodeRole(\"Worker\")\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build()));\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .name(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .clusterSpec(\"ack.pro.small\")\n            .version(\"1.24.6-aliyun.1\")\n            .newNatGateway(true)\n            .nodeCidrMask(26)\n            .proxyMode(\"ipvs\")\n            .serviceCidr(\"172.23.0.0/16\")\n            .podCidr(\"10.95.0.0/16\")\n            .workerVswitchIds(vswitch.id())\n            .build());\n\n        var defaultKeyPair = new KeyPair(\"defaultKeyPair\", KeyPairArgs.builder()\n            .keyPairName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        var defaultNodePool = new NodePool(\"defaultNodePool\", NodePoolArgs.builder()\n            .name(\"desired_size\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(vswitch.id())\n            .instanceTypes(default_.applyValue(_default_ -\u003e _default_.instanceTypes()[0].id()))\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyPairName())\n            .desiredSize(\"2\")\n            .build());\n\n        var defaultEnvironment = new Environment(\"defaultEnvironment\", EnvironmentArgs.builder()\n            .environmentType(\"CS\")\n            .environmentName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .bindResourceId(defaultNodePool.clusterId())\n            .environmentSubType(\"ManagedKubernetes\")\n            .build());\n\n        var defaultEnvServiceMonitor = new EnvServiceMonitor(\"defaultEnvServiceMonitor\", EnvServiceMonitorArgs.builder()\n            .aliyunLang(\"en\")\n            .environmentId(defaultEnvironment.id())\n            .configYaml(\"\"\"\napiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name: arms-admin1\n  namespace: arms-prom\n  annotations:\n    arms.prometheus.io/discovery: 'true'\n    o11y.aliyun.com/addon-name: mysql\n    o11y.aliyun.com/addon-version: 1.0.1\n    o11y.aliyun.com/release-name: mysql1\nspec:\n  endpoints:\n  - interval: 30s\n    port: operator\n    path: /metrics\n  - interval: 10s\n    port: operator1\n    path: /metrics\n  namespaceSelector:\n    any: true\n  selector:\n    matchLabels:\n     app: arms-prometheus-ack-arms-prometheus\n            \"\"\")\n            .build());\n\n        final var ids = ArmsFunctions.getEnvServiceMonitors(GetEnvServiceMonitorsArgs.builder()\n            .environmentId(defaultEnvServiceMonitor.environmentId())\n            .ids(defaultEnvServiceMonitor.id())\n            .build());\n\n        ctx.export(\"armsEnvServiceMonitorsId0\", ids.applyValue(_ids -\u003e _ids.monitors()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      description: api-resource-test1-hz\n      cidrBlock: 192.168.0.0/16\n      vpcName: ${name}-${defaultInteger.result}\n  vswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      description: api-resource-test1-hz\n      vpcId: ${vpc.id}\n      vswitchName: ${name}-${defaultInteger.result}\n      zoneId: ${enhanced.zones[0].zoneId}\n      cidrBlock:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: ${vpc.cidrBlock}\n            newbits: 8\n            netnum: 8\n          return: result\n  defaultSnapshotPolicy:\n    type: alicloud:ecs:SnapshotPolicy\n    name: default\n    properties:\n      name: ${name}-${defaultInteger.result}\n      repeatWeekdays:\n        - '1'\n        - '2'\n        - '3'\n      retentionDays: -1\n      timePoints:\n        - '1'\n        - '22'\n        - '23'\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      name: ${name}-${defaultInteger.result}\n      clusterSpec: ack.pro.small\n      version: 1.24.6-aliyun.1\n      newNatGateway: true\n      nodeCidrMask: 26\n      proxyMode: ipvs\n      serviceCidr: 172.23.0.0/16\n      podCidr: 10.95.0.0/16\n      workerVswitchIds:\n        - ${vswitch.id}\n  defaultKeyPair:\n    type: alicloud:ecs:KeyPair\n    name: default\n    properties:\n      keyPairName: ${name}-${defaultInteger.result}\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      name: desired_size\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${vswitch.id}\n      instanceTypes:\n        - ${default.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyPairName}\n      desiredSize: 2\n  defaultEnvironment:\n    type: alicloud:arms:Environment\n    name: default\n    properties:\n      environmentType: CS\n      environmentName: ${name}-${defaultInteger.result}\n      bindResourceId: ${defaultNodePool.clusterId}\n      environmentSubType: ManagedKubernetes\n  defaultEnvServiceMonitor:\n    type: alicloud:arms:EnvServiceMonitor\n    name: default\n    properties:\n      aliyunLang: en\n      environmentId: ${defaultEnvironment.id}\n      configYaml: |\n        apiVersion: monitoring.coreos.com/v1\n        kind: ServiceMonitor\n        metadata:\n          name: arms-admin1\n          namespace: arms-prom\n          annotations:\n            arms.prometheus.io/discovery: 'true'\n            o11y.aliyun.com/addon-name: mysql\n            o11y.aliyun.com/addon-version: 1.0.1\n            o11y.aliyun.com/release-name: mysql1\n        spec:\n          endpoints:\n          - interval: 30s\n            port: operator\n            path: /metrics\n          - interval: 10s\n            port: operator1\n            path: /metrics\n          namespaceSelector:\n            any: true\n          selector:\n            matchLabels:\n             app: arms-prometheus-ack-arms-prometheus\nvariables:\n  enhanced:\n    fn::invoke:\n      function: alicloud:vpc:getEnhancedNatAvailableZones\n      arguments: {}\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${vswitch.zoneId}\n        cpuCoreCount: 2\n        memorySize: 4\n        kubernetesNodeRole: Worker\n        instanceTypeFamily: ecs.sn1ne\n  ids:\n    fn::invoke:\n      function: alicloud:arms:getEnvServiceMonitors\n      arguments:\n        environmentId: ${defaultEnvServiceMonitor.environmentId}\n        ids:\n          - ${defaultEnvServiceMonitor.id}\noutputs:\n  armsEnvServiceMonitorsId0: ${ids.monitors[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEnvServiceMonitors.\n","properties":{"environmentId":{"type":"string","description":"The environment ID.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of ARMS Env Service Monitor IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by ARMS Env Service Monitor name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["environmentId"]},"outputs":{"description":"A collection of values returned by getEnvServiceMonitors.\n","properties":{"environmentId":{"description":"The environment ID.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"monitors":{"description":"A list of ARMS Env Service Monitors. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:arms/getEnvServiceMonitorsMonitor:getEnvServiceMonitorsMonitor"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of ARMS Env Service Monitor names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["environmentId","ids","monitors","names","id"],"type":"object"}},"alicloud:arms/getEnvironments:getEnvironments":{"description":"This data source provides the ARMS Environments of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.258.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultEnvironment = new alicloud.arms.Environment(\"default\", {\n    bindResourceId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    environmentSubType: \"ECS\",\n    environmentType: \"ECS\",\n    environmentName: `${name}-${defaultInteger.result}`,\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[1]),\n    tags: {\n        Created: \"TF\",\n        For: \"Environment\",\n    },\n});\nconst ids = alicloud.arms.getEnvironmentsOutput({\n    ids: [defaultEnvironment.id],\n});\nexport const armsEnvironmentsId0 = ids.apply(ids =\u003e ids.environments?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_environment = alicloud.arms.Environment(\"default\",\n    bind_resource_id=default_get_networks.ids[0],\n    environment_sub_type=\"ECS\",\n    environment_type=\"ECS\",\n    environment_name=f\"{name}-{default_integer['result']}\",\n    resource_group_id=default.ids[1],\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Environment\",\n    })\nids = alicloud.arms.get_environments_output(ids=[default_environment.id])\npulumi.export(\"armsEnvironmentsId0\", ids.environments[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultEnvironment = new AliCloud.Arms.Environment(\"default\", new()\n    {\n        BindResourceId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        EnvironmentSubType = \"ECS\",\n        EnvironmentType = \"ECS\",\n        EnvironmentName = $\"{name}-{defaultInteger.Result}\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[1])),\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Environment\" },\n        },\n    });\n\n    var ids = AliCloud.Arms.GetEnvironments.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultEnvironment.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsEnvironmentsId0\"] = ids.Apply(getEnvironmentsResult =\u003e getEnvironmentsResult.Environments[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEnvironment, err := arms.NewEnvironment(ctx, \"default\", \u0026arms.EnvironmentArgs{\n\t\t\tBindResourceId:     pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tEnvironmentSubType: pulumi.String(\"ECS\"),\n\t\t\tEnvironmentType:    pulumi.String(\"ECS\"),\n\t\t\tEnvironmentName:    pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n\t\t\tResourceGroupId:    pulumi.String(_default.Ids[1]),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"Environment\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := arms.GetEnvironmentsOutput(ctx, arms.GetEnvironmentsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultEnvironment.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"armsEnvironmentsId0\", ids.ApplyT(func(ids arms.GetEnvironmentsResult) (*string, error) {\n\t\t\treturn \u0026ids.Environments[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.arms.Environment;\nimport com.pulumi.alicloud.arms.EnvironmentArgs;\nimport com.pulumi.alicloud.arms.ArmsFunctions;\nimport com.pulumi.alicloud.arms.inputs.GetEnvironmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultEnvironment = new Environment(\"defaultEnvironment\", EnvironmentArgs.builder()\n            .bindResourceId(defaultGetNetworks.ids()[0])\n            .environmentSubType(\"ECS\")\n            .environmentType(\"ECS\")\n            .environmentName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .resourceGroupId(default_.ids()[1])\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Environment\")\n            ))\n            .build());\n\n        final var ids = ArmsFunctions.getEnvironments(GetEnvironmentsArgs.builder()\n            .ids(defaultEnvironment.id())\n            .build());\n\n        ctx.export(\"armsEnvironmentsId0\", ids.applyValue(_ids -\u003e _ids.environments()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultEnvironment:\n    type: alicloud:arms:Environment\n    name: default\n    properties:\n      bindResourceId: ${defaultGetNetworks.ids[0]}\n      environmentSubType: ECS\n      environmentType: ECS\n      environmentName: ${name}-${defaultInteger.result}\n      resourceGroupId: ${default.ids[1]}\n      tags:\n        Created: TF\n        For: Environment\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  ids:\n    fn::invoke:\n      function: alicloud:arms:getEnvironments\n      arguments:\n        ids:\n          - ${defaultEnvironment.id}\noutputs:\n  armsEnvironmentsId0: ${ids.environments[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEnvironments.\n","properties":{"environmentType":{"type":"string","description":"The environment type. Valid values: `CS`, `ECS`, `Cloud`.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of ARMS Environment IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by ARMS Environment name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEnvironments.\n","properties":{"environmentType":{"description":"The type of the environment instance.\n","type":"string"},"environments":{"description":"A list of ARMS Environments. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:arms/getEnvironmentsEnvironment:getEnvironmentsEnvironment"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of ARMS Environment names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"description":"The ID of the resource group.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of the environment resource.\n","type":"object"}},"required":["environments","ids","names","id"],"type":"object"}},"alicloud:arms/getIntegrationExporters:getIntegrationExporters":{"description":"This data source provides the Arms Integration Exporters of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.203.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.arms.getIntegrationExporters({\n    ids: [\"example_id\"],\n    clusterId: \"your_cluster_id\",\n    integrationType: \"kafka\",\n});\nexport const armsIntegrationExportersId1 = ids.then(ids =\u003e ids.integrationExporters?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.arms.get_integration_exporters(ids=[\"example_id\"],\n    cluster_id=\"your_cluster_id\",\n    integration_type=\"kafka\")\npulumi.export(\"armsIntegrationExportersId1\", ids.integration_exporters[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Arms.GetIntegrationExporters.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        ClusterId = \"your_cluster_id\",\n        IntegrationType = \"kafka\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsIntegrationExportersId1\"] = ids.Apply(getIntegrationExportersResult =\u003e getIntegrationExportersResult.IntegrationExporters[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := arms.GetIntegrationExporters(ctx, \u0026arms.GetIntegrationExportersArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tClusterId:       \"your_cluster_id\",\n\t\t\tIntegrationType: \"kafka\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"armsIntegrationExportersId1\", ids.IntegrationExporters[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.arms.ArmsFunctions;\nimport com.pulumi.alicloud.arms.inputs.GetIntegrationExportersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ArmsFunctions.getIntegrationExporters(GetIntegrationExportersArgs.builder()\n            .ids(\"example_id\")\n            .clusterId(\"your_cluster_id\")\n            .integrationType(\"kafka\")\n            .build());\n\n        ctx.export(\"armsIntegrationExportersId1\", ids.integrationExporters()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:arms:getIntegrationExporters\n      arguments:\n        ids:\n          - example_id\n        clusterId: your_cluster_id\n        integrationType: kafka\noutputs:\n  armsIntegrationExportersId1: ${ids.integrationExporters[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIntegrationExporters.\n","properties":{"clusterId":{"type":"string","description":"The ID of the Prometheus instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Integration Exporter IDs.\n"},"integrationType":{"type":"string","description":"The type of prometheus integration.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["clusterId","integrationType"]},"outputs":{"description":"A collection of values returned by getIntegrationExporters.\n","properties":{"clusterId":{"description":"The ID of the Prometheus instance.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"integrationExporters":{"description":"A list of Integration Exporters. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:arms/getIntegrationExportersIntegrationExporter:getIntegrationExportersIntegrationExporter"},"type":"array"},"integrationType":{"description":"The type of prometheus integration.\n","type":"string"},"outputFile":{"type":"string"}},"required":["clusterId","ids","integrationExporters","integrationType","id"],"type":"object"}},"alicloud:arms/getPrometheis:getPrometheis":{"description":"This data source provides the Arms Prometheis of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.203.0.\n\n\u003e **DEPRECATED:** This data source has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.arms.Prometheus \" pulumi-lang-dotnet=\" alicloud.arms.Prometheus \" pulumi-lang-go=\" arms.Prometheus \" pulumi-lang-python=\" arms.Prometheus \" pulumi-lang-yaml=\" alicloud.arms.Prometheus \" pulumi-lang-java=\" alicloud.arms.Prometheus \"\u003e alicloud.arms.Prometheus \u003c/span\u003efrom version 1.214.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.vpc.getNetworks({\n    nameRegex: \"default-NODELETING\",\n});\nconst defaultGetSwitches = _default.then(_default =\u003e alicloud.vpc.getSwitches({\n    vpcId: _default.ids?.[0],\n}));\nconst defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: _default.then(_default =\u003e _default.ids?.[0])});\nconst defaultPrometheus = new alicloud.arms.Prometheus(\"default\", {\n    clusterType: \"ecs\",\n    grafanaInstanceId: \"free\",\n    vpcId: _default.then(_default =\u003e _default.ids?.[0]),\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    securityGroupId: defaultSecurityGroup.id,\n    clusterName: _default.then(_default =\u003e `${name}-${_default.ids?.[0]}`),\n    resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups =\u003e defaultGetResourceGroups.groups?.[1]?.id),\n    tags: {\n        Created: \"TF\",\n        For: \"Prometheus\",\n    },\n});\nconst nameRegex = alicloud.arms.getPrometheisOutput({\n    nameRegex: defaultPrometheus.clusterName,\n});\nexport const armsPrometheisId = nameRegex.apply(nameRegex =\u003e nameRegex.prometheis?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.vpc.get_networks(name_regex=\"default-NODELETING\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default.ids[0])\ndefault_get_resource_groups = alicloud.resourcemanager.get_resource_groups()\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default.ids[0])\ndefault_prometheus = alicloud.arms.Prometheus(\"default\",\n    cluster_type=\"ecs\",\n    grafana_instance_id=\"free\",\n    vpc_id=default.ids[0],\n    vswitch_id=default_get_switches.ids[0],\n    security_group_id=default_security_group.id,\n    cluster_name=f\"{name}-{default.ids[0]}\",\n    resource_group_id=default_get_resource_groups.groups[1].id,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Prometheus\",\n    })\nname_regex = alicloud.arms.get_prometheis_output(name_regex=default_prometheus.cluster_name)\npulumi.export(\"armsPrometheisId\", name_regex.prometheis[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"default-NODELETING\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = @default.Apply(@default =\u003e @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0])),\n    });\n\n    var defaultPrometheus = new AliCloud.Arms.Prometheus(\"default\", new()\n    {\n        ClusterType = \"ecs\",\n        GrafanaInstanceId = \"free\",\n        VpcId = @default.Apply(@default =\u003e @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0])),\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        SecurityGroupId = defaultSecurityGroup.Id,\n        ClusterName = @default.Apply(@default =\u003e $\"{name}-{@default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0])}\"),\n        ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[1]?.Id),\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Prometheus\" },\n        },\n    });\n\n    var nameRegex = AliCloud.Arms.GetPrometheis.Invoke(new()\n    {\n        NameRegex = defaultPrometheus.ClusterName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsPrometheisId\"] = nameRegex.Apply(getPrometheisResult =\u003e getPrometheisResult.Prometheis[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"default-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId: pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultPrometheus, err := arms.NewPrometheus(ctx, \"default\", \u0026arms.PrometheusArgs{\n\t\t\tClusterType:       pulumi.String(\"ecs\"),\n\t\t\tGrafanaInstanceId: pulumi.String(\"free\"),\n\t\t\tVpcId:             pulumi.String(_default.Ids[0]),\n\t\t\tVswitchId:         pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tSecurityGroupId:   defaultSecurityGroup.ID(),\n\t\t\tClusterName:       pulumi.Sprintf(\"%v-%v\", name, _default.Ids[0]),\n\t\t\tResourceGroupId:   pulumi.String(defaultGetResourceGroups.Groups[1].Id),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"Prometheus\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnameRegex := arms.GetPrometheisOutput(ctx, arms.GetPrometheisOutputArgs{\n\t\t\tNameRegex: defaultPrometheus.ClusterName,\n\t\t}, nil)\n\t\tctx.Export(\"armsPrometheisId\", nameRegex.ApplyT(func(nameRegex arms.GetPrometheisResult) (*string, error) {\n\t\t\treturn \u0026nameRegex.Prometheis[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.arms.Prometheus;\nimport com.pulumi.alicloud.arms.PrometheusArgs;\nimport com.pulumi.alicloud.arms.ArmsFunctions;\nimport com.pulumi.alicloud.arms.inputs.GetPrometheisArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"default-NODELETING\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(default_.ids()[0])\n            .build());\n\n        final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(default_.ids()[0])\n            .build());\n\n        var defaultPrometheus = new Prometheus(\"defaultPrometheus\", PrometheusArgs.builder()\n            .clusterType(\"ecs\")\n            .grafanaInstanceId(\"free\")\n            .vpcId(default_.ids()[0])\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .securityGroupId(defaultSecurityGroup.id())\n            .clusterName(String.format(\"%s-%s\", name,default_.ids()[0]))\n            .resourceGroupId(defaultGetResourceGroups.groups()[1].id())\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Prometheus\")\n            ))\n            .build());\n\n        final var nameRegex = ArmsFunctions.getPrometheis(GetPrometheisArgs.builder()\n            .nameRegex(defaultPrometheus.clusterName())\n            .build());\n\n        ctx.export(\"armsPrometheisId\", nameRegex.applyValue(_nameRegex -\u003e _nameRegex.prometheis()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${default.ids[0]}\n  defaultPrometheus:\n    type: alicloud:arms:Prometheus\n    name: default\n    properties:\n      clusterType: ecs\n      grafanaInstanceId: free\n      vpcId: ${default.ids[0]}\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      securityGroupId: ${defaultSecurityGroup.id}\n      clusterName: ${name}-${default.ids[0]}\n      resourceGroupId: ${defaultGetResourceGroups.groups[1].id}\n      tags:\n        Created: TF\n        For: Prometheus\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: default-NODELETING\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${default.ids[0]}\n  defaultGetResourceGroups:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:arms:getPrometheis\n      arguments:\n        nameRegex: ${defaultPrometheus.clusterName}\noutputs:\n  armsPrometheisId: ${nameRegex.prometheis[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrometheis.\n","properties":{"enableDetails":{"type":"boolean","description":"Whether to query details about the instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Prometheus IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Prometheus name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getPrometheis.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Prometheus names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"prometheis":{"description":"A list of Prometheus. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:arms/getPrometheisPromethei:getPrometheisPromethei"},"type":"array"},"resourceGroupId":{"description":"The ID of the resource group.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tag of the Prometheus.\n","type":"object"}},"required":["ids","names","prometheis","id"],"type":"object"}},"alicloud:arms/getPrometheus:getPrometheus":{"description":"This data source provides the Arms Prometheus of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.214.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.vpc.getNetworks({\n    nameRegex: \"default-NODELETING\",\n});\nconst defaultGetSwitches = _default.then(_default =\u003e alicloud.vpc.getSwitches({\n    vpcId: _default.ids?.[0],\n}));\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {vpcId: _default.then(_default =\u003e _default.ids?.[0])});\nconst defaultPrometheus = new alicloud.arms.Prometheus(\"default\", {\n    clusterType: \"ecs\",\n    grafanaInstanceId: \"free\",\n    vpcId: _default.then(_default =\u003e _default.ids?.[0]),\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    securityGroupId: defaultSecurityGroup.id,\n    clusterName: _default.then(_default =\u003e `${name}-${_default.ids?.[0]}`),\n    tags: {\n        Created: \"TF\",\n        For: \"Prometheus\",\n    },\n});\nconst nameRegex = alicloud.arms.getPrometheusOutput({\n    nameRegex: defaultPrometheus.clusterName,\n});\nexport const armsPrometheusId = nameRegex.apply(nameRegex =\u003e nameRegex.prometheis?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.vpc.get_networks(name_regex=\"default-NODELETING\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default.ids[0])\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\", vpc_id=default.ids[0])\ndefault_prometheus = alicloud.arms.Prometheus(\"default\",\n    cluster_type=\"ecs\",\n    grafana_instance_id=\"free\",\n    vpc_id=default.ids[0],\n    vswitch_id=default_get_switches.ids[0],\n    security_group_id=default_security_group.id,\n    cluster_name=f\"{name}-{default.ids[0]}\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Prometheus\",\n    })\nname_regex = alicloud.arms.get_prometheus_output(name_regex=default_prometheus.cluster_name)\npulumi.export(\"armsPrometheusId\", name_regex.prometheis[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"default-NODELETING\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = @default.Apply(@default =\u003e @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0])),\n    });\n\n    var defaultPrometheus = new AliCloud.Arms.Prometheus(\"default\", new()\n    {\n        ClusterType = \"ecs\",\n        GrafanaInstanceId = \"free\",\n        VpcId = @default.Apply(@default =\u003e @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0])),\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        SecurityGroupId = defaultSecurityGroup.Id,\n        ClusterName = @default.Apply(@default =\u003e $\"{name}-{@default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0])}\"),\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Prometheus\" },\n        },\n    });\n\n    var nameRegex = AliCloud.Arms.GetPrometheus.Invoke(new()\n    {\n        NameRegex = defaultPrometheus.ClusterName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsPrometheusId\"] = nameRegex.Apply(getPrometheusResult =\u003e getPrometheusResult.Prometheis[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"default-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId: pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tVpcId: pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultPrometheus, err := arms.NewPrometheus(ctx, \"default\", \u0026arms.PrometheusArgs{\n\t\t\tClusterType:       pulumi.String(\"ecs\"),\n\t\t\tGrafanaInstanceId: pulumi.String(\"free\"),\n\t\t\tVpcId:             pulumi.String(_default.Ids[0]),\n\t\t\tVswitchId:         pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tSecurityGroupId:   defaultSecurityGroup.ID(),\n\t\t\tClusterName:       pulumi.Sprintf(\"%v-%v\", name, _default.Ids[0]),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"Prometheus\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnameRegex := arms.LookupPrometheusOutput(ctx, arms.GetPrometheusOutputArgs{\n\t\t\tNameRegex: defaultPrometheus.ClusterName,\n\t\t}, nil)\n\t\tctx.Export(\"armsPrometheusId\", nameRegex.ApplyT(func(nameRegex arms.GetPrometheusResult) (*string, error) {\n\t\t\treturn \u0026nameRegex.Prometheis[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.arms.Prometheus;\nimport com.pulumi.alicloud.arms.PrometheusArgs;\nimport com.pulumi.alicloud.arms.ArmsFunctions;\nimport com.pulumi.alicloud.arms.inputs.GetPrometheusArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"default-NODELETING\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(default_.ids()[0])\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(default_.ids()[0])\n            .build());\n\n        var defaultPrometheus = new Prometheus(\"defaultPrometheus\", PrometheusArgs.builder()\n            .clusterType(\"ecs\")\n            .grafanaInstanceId(\"free\")\n            .vpcId(default_.ids()[0])\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .securityGroupId(defaultSecurityGroup.id())\n            .clusterName(String.format(\"%s-%s\", name,default_.ids()[0]))\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Prometheus\")\n            ))\n            .build());\n\n        final var nameRegex = ArmsFunctions.getPrometheus(GetPrometheusArgs.builder()\n            .nameRegex(defaultPrometheus.clusterName())\n            .build());\n\n        ctx.export(\"armsPrometheusId\", nameRegex.applyValue(_nameRegex -\u003e _nameRegex.prometheis()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${default.ids[0]}\n  defaultPrometheus:\n    type: alicloud:arms:Prometheus\n    name: default\n    properties:\n      clusterType: ecs\n      grafanaInstanceId: free\n      vpcId: ${default.ids[0]}\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      securityGroupId: ${defaultSecurityGroup.id}\n      clusterName: ${name}-${default.ids[0]}\n      tags:\n        Created: TF\n        For: Prometheus\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: default-NODELETING\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${default.ids[0]}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:arms:getPrometheus\n      arguments:\n        nameRegex: ${defaultPrometheus.clusterName}\noutputs:\n  armsPrometheusId: ${nameRegex.prometheis[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrometheus.\n","properties":{"enableDetails":{"type":"boolean","description":"Whether to query the detailed list of resource attributes. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Prometheus IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Prometheus name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getPrometheus.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Prometheus names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"prometheis":{"description":"A list of Prometheus. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:arms/getPrometheusPromethei:getPrometheusPromethei"},"type":"array"},"resourceGroupId":{"description":"The ID of the resource group.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tag of the Prometheus.\n","type":"object"}},"required":["ids","names","prometheis","id"],"type":"object"}},"alicloud:arms/getPrometheusAlertRules:getPrometheusAlertRules":{"description":"This data source provides the Arms Prometheus Alert Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.136.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.arms.getPrometheusAlertRules({\n    clusterId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const armsPrometheusAlertRuleId1 = ids.then(ids =\u003e ids.rules?.[0]?.id);\nconst nameRegex = alicloud.arms.getPrometheusAlertRules({\n    clusterId: \"example_value\",\n    nameRegex: \"^my-PrometheusAlertRule\",\n});\nexport const armsPrometheusAlertRuleId2 = nameRegex.then(nameRegex =\u003e nameRegex.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.arms.get_prometheus_alert_rules(cluster_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"armsPrometheusAlertRuleId1\", ids.rules[0].id)\nname_regex = alicloud.arms.get_prometheus_alert_rules(cluster_id=\"example_value\",\n    name_regex=\"^my-PrometheusAlertRule\")\npulumi.export(\"armsPrometheusAlertRuleId2\", name_regex.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Arms.GetPrometheusAlertRules.Invoke(new()\n    {\n        ClusterId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.Arms.GetPrometheusAlertRules.Invoke(new()\n    {\n        ClusterId = \"example_value\",\n        NameRegex = \"^my-PrometheusAlertRule\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsPrometheusAlertRuleId1\"] = ids.Apply(getPrometheusAlertRulesResult =\u003e getPrometheusAlertRulesResult.Rules[0]?.Id),\n        [\"armsPrometheusAlertRuleId2\"] = nameRegex.Apply(getPrometheusAlertRulesResult =\u003e getPrometheusAlertRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := arms.GetPrometheusAlertRules(ctx, \u0026arms.GetPrometheusAlertRulesArgs{\n\t\t\tClusterId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"armsPrometheusAlertRuleId1\", ids.Rules[0].Id)\n\t\tnameRegex, err := arms.GetPrometheusAlertRules(ctx, \u0026arms.GetPrometheusAlertRulesArgs{\n\t\t\tClusterId: \"example_value\",\n\t\t\tNameRegex: pulumi.StringRef(\"^my-PrometheusAlertRule\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"armsPrometheusAlertRuleId2\", nameRegex.Rules[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.arms.ArmsFunctions;\nimport com.pulumi.alicloud.arms.inputs.GetPrometheusAlertRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ArmsFunctions.getPrometheusAlertRules(GetPrometheusAlertRulesArgs.builder()\n            .clusterId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"armsPrometheusAlertRuleId1\", ids.rules()[0].id());\n        final var nameRegex = ArmsFunctions.getPrometheusAlertRules(GetPrometheusAlertRulesArgs.builder()\n            .clusterId(\"example_value\")\n            .nameRegex(\"^my-PrometheusAlertRule\")\n            .build());\n\n        ctx.export(\"armsPrometheusAlertRuleId2\", nameRegex.rules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:arms:getPrometheusAlertRules\n      arguments:\n        clusterId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:arms:getPrometheusAlertRules\n      arguments:\n        clusterId: example_value\n        nameRegex: ^my-PrometheusAlertRule\noutputs:\n  armsPrometheusAlertRuleId1: ${ids.rules[0].id}\n  armsPrometheusAlertRuleId2: ${nameRegex.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrometheusAlertRules.\n","properties":{"clusterId":{"type":"string","description":"The ID of the cluster.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Prometheus Alert Rule IDs.\n"},"matchExpressions":{"type":"string"},"nameRegex":{"type":"string","description":"A regex string to filter results by Prometheus Alert Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"integer","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of the alert rule.\n"}},"type":"object","required":["clusterId"]},"outputs":{"description":"A collection of values returned by getPrometheusAlertRules.\n","properties":{"clusterId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"matchExpressions":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"rules":{"items":{"$ref":"#/types/alicloud:arms/getPrometheusAlertRulesRule:getPrometheusAlertRulesRule"},"type":"array"},"status":{"type":"integer"},"type":{"type":"string"}},"required":["clusterId","ids","names","rules","id"],"type":"object"}},"alicloud:arms/getPrometheusMonitorings:getPrometheusMonitorings":{"description":"This data source provides the Arms Prometheus Monitorings of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.210.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.arms.getPrometheusMonitorings({\n    clusterId: \"your_cluster_id\",\n    ids: [\"example_id\"],\n});\nexport const armsPrometheusMonitoringsId1 = ids.then(ids =\u003e ids.prometheusMonitorings?.[0]?.id);\nconst nameRegex = alicloud.arms.getPrometheusMonitorings({\n    clusterId: \"your_cluster_id\",\n    nameRegex: \"tf-example\",\n});\nexport const armsPrometheusMonitoringsId2 = nameRegex.then(nameRegex =\u003e nameRegex.prometheusMonitorings?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.arms.get_prometheus_monitorings(cluster_id=\"your_cluster_id\",\n    ids=[\"example_id\"])\npulumi.export(\"armsPrometheusMonitoringsId1\", ids.prometheus_monitorings[0].id)\nname_regex = alicloud.arms.get_prometheus_monitorings(cluster_id=\"your_cluster_id\",\n    name_regex=\"tf-example\")\npulumi.export(\"armsPrometheusMonitoringsId2\", name_regex.prometheus_monitorings[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Arms.GetPrometheusMonitorings.Invoke(new()\n    {\n        ClusterId = \"your_cluster_id\",\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Arms.GetPrometheusMonitorings.Invoke(new()\n    {\n        ClusterId = \"your_cluster_id\",\n        NameRegex = \"tf-example\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsPrometheusMonitoringsId1\"] = ids.Apply(getPrometheusMonitoringsResult =\u003e getPrometheusMonitoringsResult.PrometheusMonitorings[0]?.Id),\n        [\"armsPrometheusMonitoringsId2\"] = nameRegex.Apply(getPrometheusMonitoringsResult =\u003e getPrometheusMonitoringsResult.PrometheusMonitorings[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := arms.GetPrometheusMonitorings(ctx, \u0026arms.GetPrometheusMonitoringsArgs{\n\t\t\tClusterId: \"your_cluster_id\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"armsPrometheusMonitoringsId1\", ids.PrometheusMonitorings[0].Id)\n\t\tnameRegex, err := arms.GetPrometheusMonitorings(ctx, \u0026arms.GetPrometheusMonitoringsArgs{\n\t\t\tClusterId: \"your_cluster_id\",\n\t\t\tNameRegex: pulumi.StringRef(\"tf-example\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"armsPrometheusMonitoringsId2\", nameRegex.PrometheusMonitorings[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.arms.ArmsFunctions;\nimport com.pulumi.alicloud.arms.inputs.GetPrometheusMonitoringsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ArmsFunctions.getPrometheusMonitorings(GetPrometheusMonitoringsArgs.builder()\n            .clusterId(\"your_cluster_id\")\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"armsPrometheusMonitoringsId1\", ids.prometheusMonitorings()[0].id());\n        final var nameRegex = ArmsFunctions.getPrometheusMonitorings(GetPrometheusMonitoringsArgs.builder()\n            .clusterId(\"your_cluster_id\")\n            .nameRegex(\"tf-example\")\n            .build());\n\n        ctx.export(\"armsPrometheusMonitoringsId2\", nameRegex.prometheusMonitorings()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:arms:getPrometheusMonitorings\n      arguments:\n        clusterId: your_cluster_id\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:arms:getPrometheusMonitorings\n      arguments:\n        clusterId: your_cluster_id\n        nameRegex: tf-example\noutputs:\n  armsPrometheusMonitoringsId1: ${ids.prometheusMonitorings[0].id}\n  armsPrometheusMonitoringsId2: ${nameRegex.prometheusMonitorings[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrometheusMonitorings.\n","properties":{"clusterId":{"type":"string","description":"The ID of the Prometheus instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Prometheus Monitoring IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Prometheus Monitoring name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the monitoring configuration. Valid values: \u003cspan pulumi-lang-nodejs=\"`run`\" pulumi-lang-dotnet=\"`Run`\" pulumi-lang-go=\"`run`\" pulumi-lang-python=\"`run`\" pulumi-lang-yaml=\"`run`\" pulumi-lang-java=\"`run`\"\u003e`run`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stop`\" pulumi-lang-dotnet=\"`Stop`\" pulumi-lang-go=\"`stop`\" pulumi-lang-python=\"`stop`\" pulumi-lang-yaml=\"`stop`\" pulumi-lang-java=\"`stop`\"\u003e`stop`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of the monitoring configuration. Valid values: `serviceMonitor`, `podMonitor`, `customJob`, \u003cspan pulumi-lang-nodejs=\"`probe`\" pulumi-lang-dotnet=\"`Probe`\" pulumi-lang-go=\"`probe`\" pulumi-lang-python=\"`probe`\" pulumi-lang-yaml=\"`probe`\" pulumi-lang-java=\"`probe`\"\u003e`probe`\u003c/span\u003e.\n"}},"type":"object","required":["clusterId"]},"outputs":{"description":"A collection of values returned by getPrometheusMonitorings.\n","properties":{"clusterId":{"description":"The ID of the Prometheus instance.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Prometheus Monitoring names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"prometheusMonitorings":{"description":"A list of Prometheus Monitorings. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:arms/getPrometheusMonitoringsPrometheusMonitoring:getPrometheusMonitoringsPrometheusMonitoring"},"type":"array"},"status":{"description":"The status of the monitoring configuration.\n","type":"string"},"type":{"description":"The type of the monitoring configuration.\n","type":"string"}},"required":["clusterId","ids","names","prometheusMonitorings","id"],"type":"object"}},"alicloud:arms/getRemoteWrites:getRemoteWrites":{"description":"This data source provides the Arms Remote Writes of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.204.0.\n\n\u003e **DEPRECATED:** This data source has been deprecated since v1.228.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.arms.getRemoteWrites({\n    ids: [\"example_id\"],\n    clusterId: \"your_cluster_id\",\n});\nexport const armsRemoteWritesId1 = ids.then(ids =\u003e ids.remoteWrites?.[0]?.id);\nconst nameRegex = alicloud.arms.getRemoteWrites({\n    nameRegex: \"tf-example\",\n    clusterId: \"your_cluster_id\",\n});\nexport const armsRemoteWritesId2 = nameRegex.then(nameRegex =\u003e nameRegex.remoteWrites?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.arms.get_remote_writes(ids=[\"example_id\"],\n    cluster_id=\"your_cluster_id\")\npulumi.export(\"armsRemoteWritesId1\", ids.remote_writes[0].id)\nname_regex = alicloud.arms.get_remote_writes(name_regex=\"tf-example\",\n    cluster_id=\"your_cluster_id\")\npulumi.export(\"armsRemoteWritesId2\", name_regex.remote_writes[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Arms.GetRemoteWrites.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        ClusterId = \"your_cluster_id\",\n    });\n\n    var nameRegex = AliCloud.Arms.GetRemoteWrites.Invoke(new()\n    {\n        NameRegex = \"tf-example\",\n        ClusterId = \"your_cluster_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsRemoteWritesId1\"] = ids.Apply(getRemoteWritesResult =\u003e getRemoteWritesResult.RemoteWrites[0]?.Id),\n        [\"armsRemoteWritesId2\"] = nameRegex.Apply(getRemoteWritesResult =\u003e getRemoteWritesResult.RemoteWrites[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/arms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := arms.GetRemoteWrites(ctx, \u0026arms.GetRemoteWritesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tClusterId: \"your_cluster_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"armsRemoteWritesId1\", ids.RemoteWrites[0].Id)\n\t\tnameRegex, err := arms.GetRemoteWrites(ctx, \u0026arms.GetRemoteWritesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"tf-example\"),\n\t\t\tClusterId: \"your_cluster_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"armsRemoteWritesId2\", nameRegex.RemoteWrites[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.arms.ArmsFunctions;\nimport com.pulumi.alicloud.arms.inputs.GetRemoteWritesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ArmsFunctions.getRemoteWrites(GetRemoteWritesArgs.builder()\n            .ids(\"example_id\")\n            .clusterId(\"your_cluster_id\")\n            .build());\n\n        ctx.export(\"armsRemoteWritesId1\", ids.remoteWrites()[0].id());\n        final var nameRegex = ArmsFunctions.getRemoteWrites(GetRemoteWritesArgs.builder()\n            .nameRegex(\"tf-example\")\n            .clusterId(\"your_cluster_id\")\n            .build());\n\n        ctx.export(\"armsRemoteWritesId2\", nameRegex.remoteWrites()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:arms:getRemoteWrites\n      arguments:\n        ids:\n          - example_id\n        clusterId: your_cluster_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:arms:getRemoteWrites\n      arguments:\n        nameRegex: tf-example\n        clusterId: your_cluster_id\noutputs:\n  armsRemoteWritesId1: ${ids.remoteWrites[0].id}\n  armsRemoteWritesId2: ${nameRegex.remoteWrites[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRemoteWrites.\n","properties":{"clusterId":{"type":"string","description":"The ID of the Prometheus instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Remote Write IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Remote Write name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["clusterId"]},"outputs":{"description":"A collection of values returned by getRemoteWrites.\n","properties":{"clusterId":{"description":"The ID of the Prometheus instance.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Remote Write names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"remoteWrites":{"description":"A list of Remote Writes. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:arms/getRemoteWritesRemoteWrite:getRemoteWritesRemoteWrite"},"type":"array"}},"required":["clusterId","ids","names","remoteWrites","id"],"type":"object"}},"alicloud:bastionhost/getHostAccounts:getHostAccounts":{"description":"This data source provides the Bastionhost Host Accounts of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.135.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.bastionhost.getHostAccounts({\n    hostId: \"15\",\n    instanceId: \"example_value\",\n    ids: [\n        \"1\",\n        \"2\",\n    ],\n});\nexport const bastionhostHostAccountId1 = ids.then(ids =\u003e ids.accounts?.[0]?.id);\nconst nameRegex = alicloud.bastionhost.getHostAccounts({\n    hostId: \"15\",\n    instanceId: \"example_value\",\n    nameRegex: \"^my-HostAccount\",\n});\nexport const bastionhostHostAccountId2 = nameRegex.then(nameRegex =\u003e nameRegex.accounts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.bastionhost.get_host_accounts(host_id=\"15\",\n    instance_id=\"example_value\",\n    ids=[\n        \"1\",\n        \"2\",\n    ])\npulumi.export(\"bastionhostHostAccountId1\", ids.accounts[0].id)\nname_regex = alicloud.bastionhost.get_host_accounts(host_id=\"15\",\n    instance_id=\"example_value\",\n    name_regex=\"^my-HostAccount\")\npulumi.export(\"bastionhostHostAccountId2\", name_regex.accounts[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.BastionHost.GetHostAccounts.Invoke(new()\n    {\n        HostId = \"15\",\n        InstanceId = \"example_value\",\n        Ids = new[]\n        {\n            \"1\",\n            \"2\",\n        },\n    });\n\n    var nameRegex = AliCloud.BastionHost.GetHostAccounts.Invoke(new()\n    {\n        HostId = \"15\",\n        InstanceId = \"example_value\",\n        NameRegex = \"^my-HostAccount\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"bastionhostHostAccountId1\"] = ids.Apply(getHostAccountsResult =\u003e getHostAccountsResult.Accounts[0]?.Id),\n        [\"bastionhostHostAccountId2\"] = nameRegex.Apply(getHostAccountsResult =\u003e getHostAccountsResult.Accounts[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := bastionhost.GetHostAccounts(ctx, \u0026bastionhost.GetHostAccountsArgs{\n\t\t\tHostId:     \"15\",\n\t\t\tInstanceId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"1\",\n\t\t\t\t\"2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"bastionhostHostAccountId1\", ids.Accounts[0].Id)\n\t\tnameRegex, err := bastionhost.GetHostAccounts(ctx, \u0026bastionhost.GetHostAccountsArgs{\n\t\t\tHostId:     \"15\",\n\t\t\tInstanceId: \"example_value\",\n\t\t\tNameRegex:  pulumi.StringRef(\"^my-HostAccount\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"bastionhostHostAccountId2\", nameRegex.Accounts[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.bastionhost.BastionhostFunctions;\nimport com.pulumi.alicloud.bastionhost.inputs.GetHostAccountsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = BastionhostFunctions.getHostAccounts(GetHostAccountsArgs.builder()\n            .hostId(\"15\")\n            .instanceId(\"example_value\")\n            .ids(            \n                \"1\",\n                \"2\")\n            .build());\n\n        ctx.export(\"bastionhostHostAccountId1\", ids.accounts()[0].id());\n        final var nameRegex = BastionhostFunctions.getHostAccounts(GetHostAccountsArgs.builder()\n            .hostId(\"15\")\n            .instanceId(\"example_value\")\n            .nameRegex(\"^my-HostAccount\")\n            .build());\n\n        ctx.export(\"bastionhostHostAccountId2\", nameRegex.accounts()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:bastionhost:getHostAccounts\n      arguments:\n        hostId: '15'\n        instanceId: example_value\n        ids:\n          - '1'\n          - '2'\n  nameRegex:\n    fn::invoke:\n      function: alicloud:bastionhost:getHostAccounts\n      arguments:\n        hostId: '15'\n        instanceId: example_value\n        nameRegex: ^my-HostAccount\noutputs:\n  bastionhostHostAccountId1: ${ids.accounts[0].id}\n  bastionhostHostAccountId2: ${nameRegex.accounts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHostAccounts.\n","properties":{"hostAccountName":{"type":"string","description":"Specify the new hosting account's name, support the longest 128 characters.\n"},"hostId":{"type":"string","description":"Specifies the database where you want to create your hosting account's host ID.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Host Account IDs.\n"},"instanceId":{"type":"string","description":"Specifies the database where you want to create your hosting account's host bastion host ID of.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Host Account name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"protocolName":{"type":"string","description":"Specify the new hosting account of the agreement name. Valid values: USING SSH and RDP.\n"}},"type":"object","required":["hostId","instanceId"]},"outputs":{"description":"A collection of values returned by getHostAccounts.\n","properties":{"accounts":{"items":{"$ref":"#/types/alicloud:bastionhost/getHostAccountsAccount:getHostAccountsAccount"},"type":"array"},"hostAccountName":{"type":"string"},"hostId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"protocolName":{"type":"string"}},"required":["accounts","hostId","ids","instanceId","names","id"],"type":"object"}},"alicloud:bastionhost/getHostGroups:getHostGroups":{"description":"This data source provides the Bastionhost Host Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.134.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.bastionhost.getHostGroups({\n    instanceId: \"bastionhost-cn-tl3xxxxxxx\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const bastionhostHostGroupId1 = ids.then(ids =\u003e ids.groups?.[0]?.id);\nconst nameRegex = alicloud.bastionhost.getHostGroups({\n    instanceId: \"bastionhost-cn-tl3xxxxxxx\",\n    nameRegex: \"^my-HostGroup\",\n});\nexport const bastionhostHostGroupId2 = nameRegex.then(nameRegex =\u003e nameRegex.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.bastionhost.get_host_groups(instance_id=\"bastionhost-cn-tl3xxxxxxx\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"bastionhostHostGroupId1\", ids.groups[0].id)\nname_regex = alicloud.bastionhost.get_host_groups(instance_id=\"bastionhost-cn-tl3xxxxxxx\",\n    name_regex=\"^my-HostGroup\")\npulumi.export(\"bastionhostHostGroupId2\", name_regex.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.BastionHost.GetHostGroups.Invoke(new()\n    {\n        InstanceId = \"bastionhost-cn-tl3xxxxxxx\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.BastionHost.GetHostGroups.Invoke(new()\n    {\n        InstanceId = \"bastionhost-cn-tl3xxxxxxx\",\n        NameRegex = \"^my-HostGroup\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"bastionhostHostGroupId1\"] = ids.Apply(getHostGroupsResult =\u003e getHostGroupsResult.Groups[0]?.Id),\n        [\"bastionhostHostGroupId2\"] = nameRegex.Apply(getHostGroupsResult =\u003e getHostGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := bastionhost.GetHostGroups(ctx, \u0026bastionhost.GetHostGroupsArgs{\n\t\t\tInstanceId: \"bastionhost-cn-tl3xxxxxxx\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"bastionhostHostGroupId1\", ids.Groups[0].Id)\n\t\tnameRegex, err := bastionhost.GetHostGroups(ctx, \u0026bastionhost.GetHostGroupsArgs{\n\t\t\tInstanceId: \"bastionhost-cn-tl3xxxxxxx\",\n\t\t\tNameRegex:  pulumi.StringRef(\"^my-HostGroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"bastionhostHostGroupId2\", nameRegex.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.bastionhost.BastionhostFunctions;\nimport com.pulumi.alicloud.bastionhost.inputs.GetHostGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = BastionhostFunctions.getHostGroups(GetHostGroupsArgs.builder()\n            .instanceId(\"bastionhost-cn-tl3xxxxxxx\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"bastionhostHostGroupId1\", ids.groups()[0].id());\n        final var nameRegex = BastionhostFunctions.getHostGroups(GetHostGroupsArgs.builder()\n            .instanceId(\"bastionhost-cn-tl3xxxxxxx\")\n            .nameRegex(\"^my-HostGroup\")\n            .build());\n\n        ctx.export(\"bastionhostHostGroupId2\", nameRegex.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:bastionhost:getHostGroups\n      arguments:\n        instanceId: bastionhost-cn-tl3xxxxxxx\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:bastionhost:getHostGroups\n      arguments:\n        instanceId: bastionhost-cn-tl3xxxxxxx\n        nameRegex: ^my-HostGroup\noutputs:\n  bastionhostHostGroupId1: ${ids.groups[0].id}\n  bastionhostHostGroupId2: ${nameRegex.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHostGroups.\n","properties":{"hostGroupName":{"type":"string","description":"Specify the New Host Group Name, Supports up to 128 Characters.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Host Group IDs.\n"},"instanceId":{"type":"string","description":"Specify the New Host Group Where the Bastion Host ID of.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Host Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getHostGroups.\n","properties":{"groups":{"items":{"$ref":"#/types/alicloud:bastionhost/getHostGroupsGroup:getHostGroupsGroup"},"type":"array"},"hostGroupName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["groups","ids","instanceId","names","id"],"type":"object"}},"alicloud:bastionhost/getHostShareKeys:getHostShareKeys":{"description":"This data source provides the Bastionhost Host Share Keys of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.165.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.bastionhost.getHostShareKeys({\n    instanceId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const bastionhostHostShareKeyId1 = ids.then(ids =\u003e ids.keys?.[0]?.id);\nconst nameRegex = alicloud.bastionhost.getHostShareKeys({\n    instanceId: \"example_value\",\n    nameRegex: \"^my-HostShareKey\",\n});\nexport const bastionhostHostShareKeyId2 = nameRegex.then(nameRegex =\u003e nameRegex.keys?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.bastionhost.get_host_share_keys(instance_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"bastionhostHostShareKeyId1\", ids.keys[0].id)\nname_regex = alicloud.bastionhost.get_host_share_keys(instance_id=\"example_value\",\n    name_regex=\"^my-HostShareKey\")\npulumi.export(\"bastionhostHostShareKeyId2\", name_regex.keys[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.BastionHost.GetHostShareKeys.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.BastionHost.GetHostShareKeys.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n        NameRegex = \"^my-HostShareKey\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"bastionhostHostShareKeyId1\"] = ids.Apply(getHostShareKeysResult =\u003e getHostShareKeysResult.Keys[0]?.Id),\n        [\"bastionhostHostShareKeyId2\"] = nameRegex.Apply(getHostShareKeysResult =\u003e getHostShareKeysResult.Keys[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := bastionhost.GetHostShareKeys(ctx, \u0026bastionhost.GetHostShareKeysArgs{\n\t\t\tInstanceId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"bastionhostHostShareKeyId1\", ids.Keys[0].Id)\n\t\tnameRegex, err := bastionhost.GetHostShareKeys(ctx, \u0026bastionhost.GetHostShareKeysArgs{\n\t\t\tInstanceId: \"example_value\",\n\t\t\tNameRegex:  pulumi.StringRef(\"^my-HostShareKey\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"bastionhostHostShareKeyId2\", nameRegex.Keys[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.bastionhost.BastionhostFunctions;\nimport com.pulumi.alicloud.bastionhost.inputs.GetHostShareKeysArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = BastionhostFunctions.getHostShareKeys(GetHostShareKeysArgs.builder()\n            .instanceId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"bastionhostHostShareKeyId1\", ids.keys()[0].id());\n        final var nameRegex = BastionhostFunctions.getHostShareKeys(GetHostShareKeysArgs.builder()\n            .instanceId(\"example_value\")\n            .nameRegex(\"^my-HostShareKey\")\n            .build());\n\n        ctx.export(\"bastionhostHostShareKeyId2\", nameRegex.keys()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:bastionhost:getHostShareKeys\n      arguments:\n        instanceId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:bastionhost:getHostShareKeys\n      arguments:\n        instanceId: example_value\n        nameRegex: ^my-HostShareKey\noutputs:\n  bastionhostHostShareKeyId1: ${ids.keys[0].id}\n  bastionhostHostShareKeyId2: ${nameRegex.keys[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHostShareKeys.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Host Share Key IDs.\n"},"instanceId":{"type":"string","description":"The ID of the Bastion instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Host Share Key name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getHostShareKeys.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"keys":{"items":{"$ref":"#/types/alicloud:bastionhost/getHostShareKeysKey:getHostShareKeysKey"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","instanceId","keys","names","id"],"type":"object"}},"alicloud:bastionhost/getHosts:getHosts":{"description":"This data source provides the Bastionhost Hosts of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.135.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.bastionhost.getHosts({\n    instanceId: \"example_value\",\n    ids: [\n        \"1\",\n        \"2\",\n    ],\n});\nexport const bastionhostHostId1 = ids.then(ids =\u003e ids.hosts?.[0]?.id);\nconst nameRegex = alicloud.bastionhost.getHosts({\n    instanceId: \"example_value\",\n    nameRegex: \"^my-Host\",\n});\nexport const bastionhostHostId2 = nameRegex.then(nameRegex =\u003e nameRegex.hosts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.bastionhost.get_hosts(instance_id=\"example_value\",\n    ids=[\n        \"1\",\n        \"2\",\n    ])\npulumi.export(\"bastionhostHostId1\", ids.hosts[0].id)\nname_regex = alicloud.bastionhost.get_hosts(instance_id=\"example_value\",\n    name_regex=\"^my-Host\")\npulumi.export(\"bastionhostHostId2\", name_regex.hosts[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.BastionHost.GetHosts.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n        Ids = new[]\n        {\n            \"1\",\n            \"2\",\n        },\n    });\n\n    var nameRegex = AliCloud.BastionHost.GetHosts.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n        NameRegex = \"^my-Host\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"bastionhostHostId1\"] = ids.Apply(getHostsResult =\u003e getHostsResult.Hosts[0]?.Id),\n        [\"bastionhostHostId2\"] = nameRegex.Apply(getHostsResult =\u003e getHostsResult.Hosts[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := bastionhost.GetHosts(ctx, \u0026bastionhost.GetHostsArgs{\n\t\t\tInstanceId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"1\",\n\t\t\t\t\"2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"bastionhostHostId1\", ids.Hosts[0].Id)\n\t\tnameRegex, err := bastionhost.GetHosts(ctx, \u0026bastionhost.GetHostsArgs{\n\t\t\tInstanceId: \"example_value\",\n\t\t\tNameRegex:  pulumi.StringRef(\"^my-Host\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"bastionhostHostId2\", nameRegex.Hosts[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.bastionhost.BastionhostFunctions;\nimport com.pulumi.alicloud.bastionhost.inputs.GetHostsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = BastionhostFunctions.getHosts(GetHostsArgs.builder()\n            .instanceId(\"example_value\")\n            .ids(            \n                \"1\",\n                \"2\")\n            .build());\n\n        ctx.export(\"bastionhostHostId1\", ids.hosts()[0].id());\n        final var nameRegex = BastionhostFunctions.getHosts(GetHostsArgs.builder()\n            .instanceId(\"example_value\")\n            .nameRegex(\"^my-Host\")\n            .build());\n\n        ctx.export(\"bastionhostHostId2\", nameRegex.hosts()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:bastionhost:getHosts\n      arguments:\n        instanceId: example_value\n        ids:\n          - '1'\n          - '2'\n  nameRegex:\n    fn::invoke:\n      function: alicloud:bastionhost:getHosts\n      arguments:\n        instanceId: example_value\n        nameRegex: ^my-Host\noutputs:\n  bastionhostHostId1: ${ids.hosts[0].id}\n  bastionhostHostId2: ${nameRegex.hosts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHosts.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"hostAddress":{"type":"string","description":"The host address.\n"},"hostName":{"type":"string","description":"Specify the new create a host name of the supports up to 128 characters.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Host IDs.\n"},"instanceId":{"type":"string","description":"Specify the new create a host where the Bastion host ID of.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Host name.\n"},"osType":{"type":"string","description":"Specify the new create the host's operating system. Valid values: Linux Windows.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"source":{"type":"string","description":"Specify the new create a host of source. Valid values: Local: localhost Ecs:ECS instance Rds:RDS exclusive cluster host.\n"},"sourceInstanceId":{"type":"string","description":"Specify the newly created ECS instance ID or dedicated cluster host ID.\n"},"sourceInstanceState":{"type":"string","description":"The source instance state.\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getHosts.\n","properties":{"enableDetails":{"type":"boolean"},"hostAddress":{"type":"string"},"hostName":{"type":"string"},"hosts":{"items":{"$ref":"#/types/alicloud:bastionhost/getHostsHost:getHostsHost"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"osType":{"type":"string"},"outputFile":{"type":"string"},"source":{"type":"string"},"sourceInstanceId":{"type":"string"},"sourceInstanceState":{"type":"string"}},"required":["hosts","ids","instanceId","names","id"],"type":"object"}},"alicloud:bastionhost/getInstances:getInstances":{"description":"\u003e **NOTE:** From the version 1.132.0, the data source has been renamed to \u003cspan pulumi-lang-nodejs=\"`alicloud.bastionhost.getInstances`\" pulumi-lang-dotnet=\"`alicloud.bastionhost.getInstances`\" pulumi-lang-go=\"`bastionhost.getInstances`\" pulumi-lang-python=\"`bastionhost_get_instances`\" pulumi-lang-yaml=\"`alicloud.bastionhost.getInstances`\" pulumi-lang-java=\"`alicloud.bastionhost.getInstances`\"\u003e`alicloud.bastionhost.getInstances`\u003c/span\u003e.\n\nThis data source provides a list of cloud Bastionhost instances in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available since v1.63.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nexport = async () =\u003e {\n    const instance = await alicloud.bastionhost.getInstances({\n        descriptionRegex: \"^bastionhost\",\n    });\n    return {\n        instance: [instance].map(__item =\u003e __item.id),\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ninstance = alicloud.bastionhost.get_instances(description_regex=\"^bastionhost\")\npulumi.export(\"instance\", [__item.id for __item in [instance]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var instance = AliCloud.BastionHost.GetInstances.Invoke(new()\n    {\n        DescriptionRegex = \"^bastionhost\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"instance\"] = new[]\n        {\n            instance,\n        }.Select(__item =\u003e __item.Id).ToList(),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ninstance, err := bastionhost.GetInstances(ctx, \u0026bastionhost.GetInstancesArgs{\nDescriptionRegex: pulumi.StringRef(\"^bastionhost\"),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"instance\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:5,11-25)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.bastionhost.BastionhostFunctions;\nimport com.pulumi.alicloud.bastionhost.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var instance = BastionhostFunctions.getInstances(GetInstancesArgs.builder()\n            .descriptionRegex(\"^bastionhost\")\n            .build());\n\n        ctx.export(\"instance\", List.of(instance).stream().map(element -\u003e element.id()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"descriptionRegex":{"type":"string","description":"A regex string to filter results by the instance description.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"Matched instance IDs to filter data source result.\n"},"outputFile":{"type":"string","description":"File name to persist data source output.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the bastionhost instance.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"descriptionRegex":{"type":"string"},"descriptions":{"items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instances":{"description":"A list of apis. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:bastionhost/getInstancesInstance:getInstancesInstance"},"type":"array"},"outputFile":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A map of tags assigned to the bastionhost instance.\n","type":"object"}},"required":["descriptions","ids","instances","id"],"type":"object"}},"alicloud:bastionhost/getUserGroups:getUserGroups":{"description":"This data source provides the Bastionhost User Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.132.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.bastionhost.getUserGroups({\n    instanceId: \"bastionhost-cn-xxxx\",\n    ids: [\n        \"1\",\n        \"2\",\n    ],\n});\nexport const bastionhostUserGroupId1 = ids.then(ids =\u003e ids.groups?.[0]?.id);\nconst nameRegex = alicloud.bastionhost.getUserGroups({\n    instanceId: \"bastionhost-cn-xxxx\",\n    nameRegex: \"^my-UserGroup\",\n});\nexport const bastionhostUserGroupId2 = nameRegex.then(nameRegex =\u003e nameRegex.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.bastionhost.get_user_groups(instance_id=\"bastionhost-cn-xxxx\",\n    ids=[\n        \"1\",\n        \"2\",\n    ])\npulumi.export(\"bastionhostUserGroupId1\", ids.groups[0].id)\nname_regex = alicloud.bastionhost.get_user_groups(instance_id=\"bastionhost-cn-xxxx\",\n    name_regex=\"^my-UserGroup\")\npulumi.export(\"bastionhostUserGroupId2\", name_regex.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.BastionHost.GetUserGroups.Invoke(new()\n    {\n        InstanceId = \"bastionhost-cn-xxxx\",\n        Ids = new[]\n        {\n            \"1\",\n            \"2\",\n        },\n    });\n\n    var nameRegex = AliCloud.BastionHost.GetUserGroups.Invoke(new()\n    {\n        InstanceId = \"bastionhost-cn-xxxx\",\n        NameRegex = \"^my-UserGroup\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"bastionhostUserGroupId1\"] = ids.Apply(getUserGroupsResult =\u003e getUserGroupsResult.Groups[0]?.Id),\n        [\"bastionhostUserGroupId2\"] = nameRegex.Apply(getUserGroupsResult =\u003e getUserGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := bastionhost.GetUserGroups(ctx, \u0026bastionhost.GetUserGroupsArgs{\n\t\t\tInstanceId: \"bastionhost-cn-xxxx\",\n\t\t\tIds: []string{\n\t\t\t\t\"1\",\n\t\t\t\t\"2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"bastionhostUserGroupId1\", ids.Groups[0].Id)\n\t\tnameRegex, err := bastionhost.GetUserGroups(ctx, \u0026bastionhost.GetUserGroupsArgs{\n\t\t\tInstanceId: \"bastionhost-cn-xxxx\",\n\t\t\tNameRegex:  pulumi.StringRef(\"^my-UserGroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"bastionhostUserGroupId2\", nameRegex.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.bastionhost.BastionhostFunctions;\nimport com.pulumi.alicloud.bastionhost.inputs.GetUserGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = BastionhostFunctions.getUserGroups(GetUserGroupsArgs.builder()\n            .instanceId(\"bastionhost-cn-xxxx\")\n            .ids(            \n                \"1\",\n                \"2\")\n            .build());\n\n        ctx.export(\"bastionhostUserGroupId1\", ids.groups()[0].id());\n        final var nameRegex = BastionhostFunctions.getUserGroups(GetUserGroupsArgs.builder()\n            .instanceId(\"bastionhost-cn-xxxx\")\n            .nameRegex(\"^my-UserGroup\")\n            .build());\n\n        ctx.export(\"bastionhostUserGroupId2\", nameRegex.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:bastionhost:getUserGroups\n      arguments:\n        instanceId: bastionhost-cn-xxxx\n        ids:\n          - '1'\n          - '2'\n  nameRegex:\n    fn::invoke:\n      function: alicloud:bastionhost:getUserGroups\n      arguments:\n        instanceId: bastionhost-cn-xxxx\n        nameRegex: ^my-UserGroup\noutputs:\n  bastionhostUserGroupId1: ${ids.groups[0].id}\n  bastionhostUserGroupId2: ${nameRegex.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUserGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of User Group self IDs.\n"},"instanceId":{"type":"string","description":"Specify the New Group of the Bastion Host of Instance Id.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by User Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"userGroupName":{"type":"string","description":"Specify the New Group Name. Supports up to 128 Characters.\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getUserGroups.\n","properties":{"groups":{"items":{"$ref":"#/types/alicloud:bastionhost/getUserGroupsGroup:getUserGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"userGroupName":{"type":"string"}},"required":["groups","ids","instanceId","names","id"],"type":"object"}},"alicloud:bastionhost/getUsers:getUsers":{"description":"This data source provides the Bastionhost Users of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.133.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.bastionhost.getUsers({\n    instanceId: \"example_value\",\n    ids: [\n        \"1\",\n        \"10\",\n    ],\n});\nexport const bastionhostUserId1 = ids.then(ids =\u003e ids.users?.[0]?.id);\nconst nameRegex = alicloud.bastionhost.getUsers({\n    instanceId: \"example_value\",\n    nameRegex: \"^my-User\",\n});\nexport const bastionhostUserId2 = nameRegex.then(nameRegex =\u003e nameRegex.users?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.bastionhost.get_users(instance_id=\"example_value\",\n    ids=[\n        \"1\",\n        \"10\",\n    ])\npulumi.export(\"bastionhostUserId1\", ids.users[0].id)\nname_regex = alicloud.bastionhost.get_users(instance_id=\"example_value\",\n    name_regex=\"^my-User\")\npulumi.export(\"bastionhostUserId2\", name_regex.users[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.BastionHost.GetUsers.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n        Ids = new[]\n        {\n            \"1\",\n            \"10\",\n        },\n    });\n\n    var nameRegex = AliCloud.BastionHost.GetUsers.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n        NameRegex = \"^my-User\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"bastionhostUserId1\"] = ids.Apply(getUsersResult =\u003e getUsersResult.Users[0]?.Id),\n        [\"bastionhostUserId2\"] = nameRegex.Apply(getUsersResult =\u003e getUsersResult.Users[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bastionhost\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := bastionhost.GetUsers(ctx, \u0026bastionhost.GetUsersArgs{\n\t\t\tInstanceId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"1\",\n\t\t\t\t\"10\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"bastionhostUserId1\", ids.Users[0].Id)\n\t\tnameRegex, err := bastionhost.GetUsers(ctx, \u0026bastionhost.GetUsersArgs{\n\t\t\tInstanceId: \"example_value\",\n\t\t\tNameRegex:  pulumi.StringRef(\"^my-User\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"bastionhostUserId2\", nameRegex.Users[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.bastionhost.BastionhostFunctions;\nimport com.pulumi.alicloud.bastionhost.inputs.GetUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = BastionhostFunctions.getUsers(GetUsersArgs.builder()\n            .instanceId(\"example_value\")\n            .ids(            \n                \"1\",\n                \"10\")\n            .build());\n\n        ctx.export(\"bastionhostUserId1\", ids.users()[0].id());\n        final var nameRegex = BastionhostFunctions.getUsers(GetUsersArgs.builder()\n            .instanceId(\"example_value\")\n            .nameRegex(\"^my-User\")\n            .build());\n\n        ctx.export(\"bastionhostUserId2\", nameRegex.users()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:bastionhost:getUsers\n      arguments:\n        instanceId: example_value\n        ids:\n          - '1'\n          - '10'\n  nameRegex:\n    fn::invoke:\n      function: alicloud:bastionhost:getUsers\n      arguments:\n        instanceId: example_value\n        nameRegex: ^my-User\noutputs:\n  bastionhostUserId1: ${ids.users[0].id}\n  bastionhostUserId2: ${nameRegex.users[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUsers.\n","properties":{"displayName":{"type":"string","description":"Specify the New Created the User's Display Name. Supports up to 128 Characters.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of User IDs.\n"},"instanceId":{"type":"string","description":"You Want to Query the User the Bastion Host ID of.\n"},"mobile":{"type":"string","description":"Specify the New of the User That Created a Different Mobile Phone Number from Your.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by User name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"source":{"type":"string","description":"Specify the New of the User That Created the Source. Valid Values: Local: Local User RAM: Ram User. Valid values: `Local`, `Ram`.\n"},"sourceUserId":{"type":"string","description":"Specify the Newly Created User Is Uniquely Identified. Indicates That the Parameter Is a Bastion Host Corresponding to the User with the Ram User's Unique Identifier. The Newly Created User Source Grant Permission to a RAM User (That Is, Source Used as a Ram), this Parameter Is Required. You Can Call Access Control of Listusers Interface from the Return Data Userid to Obtain the Parameters.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Frozen`, `Normal`.\n"},"userName":{"type":"string","description":"Specify the New User Name. This Parameter Is Only by Letters, Lowercase Letters, Numbers, and Underscores (_), Supports up to 128 Characters.\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getUsers.\n","properties":{"displayName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"mobile":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"source":{"type":"string"},"sourceUserId":{"type":"string"},"status":{"type":"string"},"userName":{"type":"string"},"users":{"items":{"$ref":"#/types/alicloud:bastionhost/getUsersUser:getUsersUser"},"type":"array"}},"required":["ids","instanceId","names","users","id"],"type":"object"}},"alicloud:bp/getStudioApplications:getStudioApplications":{"description":"This data source provides the Cloud Architect Design Tools (BPStudio) Applications of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.192.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.bp.getStudioApplications({\n    ids: [\"example_id\"],\n});\nexport const bpStudioApplicationId1 = ids.then(ids =\u003e ids.applications?.[0]?.id);\nconst nameRegex = alicloud.bp.getStudioApplications({\n    nameRegex: \"^my-Application\",\n});\nexport const bpStudioApplicationId2 = nameRegex.then(nameRegex =\u003e nameRegex.applications?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.bp.get_studio_applications(ids=[\"example_id\"])\npulumi.export(\"bpStudioApplicationId1\", ids.applications[0].id)\nname_regex = alicloud.bp.get_studio_applications(name_regex=\"^my-Application\")\npulumi.export(\"bpStudioApplicationId2\", name_regex.applications[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Bp.GetStudioApplications.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Bp.GetStudioApplications.Invoke(new()\n    {\n        NameRegex = \"^my-Application\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"bpStudioApplicationId1\"] = ids.Apply(getStudioApplicationsResult =\u003e getStudioApplicationsResult.Applications[0]?.Id),\n        [\"bpStudioApplicationId2\"] = nameRegex.Apply(getStudioApplicationsResult =\u003e getStudioApplicationsResult.Applications[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := bp.GetStudioApplications(ctx, \u0026bp.GetStudioApplicationsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"bpStudioApplicationId1\", ids.Applications[0].Id)\n\t\tnameRegex, err := bp.GetStudioApplications(ctx, \u0026bp.GetStudioApplicationsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Application\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"bpStudioApplicationId2\", nameRegex.Applications[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.bp.BpFunctions;\nimport com.pulumi.alicloud.bp.inputs.GetStudioApplicationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = BpFunctions.getStudioApplications(GetStudioApplicationsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"bpStudioApplicationId1\", ids.applications()[0].id());\n        final var nameRegex = BpFunctions.getStudioApplications(GetStudioApplicationsArgs.builder()\n            .nameRegex(\"^my-Application\")\n            .build());\n\n        ctx.export(\"bpStudioApplicationId2\", nameRegex.applications()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:bp:getStudioApplications\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:bp:getStudioApplications\n      arguments:\n        nameRegex: ^my-Application\noutputs:\n  bpStudioApplicationId1: ${ids.applications[0].id}\n  bpStudioApplicationId2: ${nameRegex.applications[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStudioApplications.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Application IDs.\n"},"keyword":{"type":"string","description":"The keyword of the Application.\n"},"maxResults":{"type":"integer"},"nameRegex":{"type":"string","description":"A regex string to filter results by Application name.\n"},"orderType":{"type":"integer","description":"The order type of the Application. Valid values:\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the Application. Valid values: \u003cspan pulumi-lang-nodejs=\"`success`\" pulumi-lang-dotnet=\"`Success`\" pulumi-lang-go=\"`success`\" pulumi-lang-python=\"`success`\" pulumi-lang-yaml=\"`success`\" pulumi-lang-java=\"`success`\"\u003e`success`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`release`\" pulumi-lang-dotnet=\"`Release`\" pulumi-lang-go=\"`release`\" pulumi-lang-python=\"`release`\" pulumi-lang-yaml=\"`release`\" pulumi-lang-java=\"`release`\"\u003e`release`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getStudioApplications.\n","properties":{"applications":{"description":"A list of Cloud Architect Design Tools (BPStudio) Applications. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:bp/getStudioApplicationsApplication:getStudioApplicationsApplication"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyword":{"type":"string"},"maxResults":{"type":"integer"},"nameRegex":{"type":"string"},"names":{"description":"A list of Application names.\n","items":{"type":"string"},"type":"array"},"orderType":{"type":"integer"},"outputFile":{"type":"string"},"resourceGroupId":{"description":"The ID of the resource group.\n","type":"string"},"status":{"description":"The status of the Application.\n","type":"string"}},"required":["applications","ids","names","id"],"type":"object"}},"alicloud:brain/getIndustrialPidLoops:getIndustrialPidLoops":{"description":"This data source provides the Brain Industrial Pid Loops of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.117.0.\n\n\u003e **DEPRECATED:**  This data source has been deprecated from version `1.229.1`.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.brain.getIndustrialPidLoops({\n    pidProjectId: \"856c6b8f-ca63-40a4-xxxx-xxxx\",\n    ids: [\"742a3d4e-d8b0-47c8-xxxx-xxxx\"],\n    nameRegex: \"tf-testACC\",\n});\nexport const firstBrainIndustrialPidLoopId = example.then(example =\u003e example.loops?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.brain.get_industrial_pid_loops(pid_project_id=\"856c6b8f-ca63-40a4-xxxx-xxxx\",\n    ids=[\"742a3d4e-d8b0-47c8-xxxx-xxxx\"],\n    name_regex=\"tf-testACC\")\npulumi.export(\"firstBrainIndustrialPidLoopId\", example.loops[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Brain.GetIndustrialPidLoops.Invoke(new()\n    {\n        PidProjectId = \"856c6b8f-ca63-40a4-xxxx-xxxx\",\n        Ids = new[]\n        {\n            \"742a3d4e-d8b0-47c8-xxxx-xxxx\",\n        },\n        NameRegex = \"tf-testACC\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstBrainIndustrialPidLoopId\"] = example.Apply(getIndustrialPidLoopsResult =\u003e getIndustrialPidLoopsResult.Loops[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/brain\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := brain.GetIndustrialPidLoops(ctx, \u0026brain.GetIndustrialPidLoopsArgs{\n\t\t\tPidProjectId: \"856c6b8f-ca63-40a4-xxxx-xxxx\",\n\t\t\tIds: []string{\n\t\t\t\t\"742a3d4e-d8b0-47c8-xxxx-xxxx\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"tf-testACC\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstBrainIndustrialPidLoopId\", example.Loops[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.brain.BrainFunctions;\nimport com.pulumi.alicloud.brain.inputs.GetIndustrialPidLoopsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = BrainFunctions.getIndustrialPidLoops(GetIndustrialPidLoopsArgs.builder()\n            .pidProjectId(\"856c6b8f-ca63-40a4-xxxx-xxxx\")\n            .ids(\"742a3d4e-d8b0-47c8-xxxx-xxxx\")\n            .nameRegex(\"tf-testACC\")\n            .build());\n\n        ctx.export(\"firstBrainIndustrialPidLoopId\", example.loops()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:brain:getIndustrialPidLoops\n      arguments:\n        pidProjectId: 856c6b8f-ca63-40a4-xxxx-xxxx\n        ids:\n          - 742a3d4e-d8b0-47c8-xxxx-xxxx\n        nameRegex: tf-testACC\noutputs:\n  firstBrainIndustrialPidLoopId: ${example.loops[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIndustrialPidLoops.\n","properties":{"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Pid Loop IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Pid Loop name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pidLoopName":{"type":"string","description":"The name of Pid Loop.\n"},"pidProjectId":{"type":"string","description":"The pid project id.\n"},"status":{"type":"string","description":"The status of Pid Loop.\n"}},"type":"object","required":["pidProjectId"]},"outputs":{"description":"A collection of values returned by getIndustrialPidLoops.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"loops":{"description":"A list of Brain Industrial Pid Loops. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:brain/getIndustrialPidLoopsLoop:getIndustrialPidLoopsLoop"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Pid Loop names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pidLoopName":{"description":"The name of Pid Loop.\n","type":"string"},"pidProjectId":{"type":"string"},"status":{"description":"The status of Pid Loop.\n","type":"string"}},"required":["ids","loops","names","pidProjectId","id"],"type":"object"}},"alicloud:brain/getIndustrialPidOrganizations:getIndustrialPidOrganizations":{"description":"This data source provides the Brain Industrial Pid Organizations of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.113.0.\n\n\u003e **DEPRECATED:**  This data source has been deprecated from version `1.229.1`.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.brain.getIndustrialPidOrganizations({\n    ids: [\"3e74e684-cbb5-xxxx\"],\n    nameRegex: \"tf-testAcc\",\n});\nexport const firstBrainIndustrialPidOrganizationId = example.then(example =\u003e example.organizations?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.brain.get_industrial_pid_organizations(ids=[\"3e74e684-cbb5-xxxx\"],\n    name_regex=\"tf-testAcc\")\npulumi.export(\"firstBrainIndustrialPidOrganizationId\", example.organizations[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Brain.GetIndustrialPidOrganizations.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"3e74e684-cbb5-xxxx\",\n        },\n        NameRegex = \"tf-testAcc\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstBrainIndustrialPidOrganizationId\"] = example.Apply(getIndustrialPidOrganizationsResult =\u003e getIndustrialPidOrganizationsResult.Organizations[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/brain\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := brain.GetIndustrialPidOrganizations(ctx, \u0026brain.GetIndustrialPidOrganizationsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"3e74e684-cbb5-xxxx\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"tf-testAcc\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstBrainIndustrialPidOrganizationId\", example.Organizations[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.brain.BrainFunctions;\nimport com.pulumi.alicloud.brain.inputs.GetIndustrialPidOrganizationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = BrainFunctions.getIndustrialPidOrganizations(GetIndustrialPidOrganizationsArgs.builder()\n            .ids(\"3e74e684-cbb5-xxxx\")\n            .nameRegex(\"tf-testAcc\")\n            .build());\n\n        ctx.export(\"firstBrainIndustrialPidOrganizationId\", example.organizations()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:brain:getIndustrialPidOrganizations\n      arguments:\n        ids:\n          - 3e74e684-cbb5-xxxx\n        nameRegex: tf-testAcc\noutputs:\n  firstBrainIndustrialPidOrganizationId: ${example.organizations[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIndustrialPidOrganizations.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Pid Organization IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Pid Organization name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"parentOrganizationId":{"type":"string","description":"The parent organization id.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIndustrialPidOrganizations.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Pid Organization names.\n","items":{"type":"string"},"type":"array"},"organizations":{"description":"A list of Brain Industrial Pid Organizations. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:brain/getIndustrialPidOrganizationsOrganization:getIndustrialPidOrganizationsOrganization"},"type":"array"},"outputFile":{"type":"string"},"parentOrganizationId":{"type":"string"}},"required":["ids","names","organizations","id"],"type":"object"}},"alicloud:brain/getIndustrialPidProjects:getIndustrialPidProjects":{"description":"This data source provides the Brain Industrial Pid Projects of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.113.0.\n\n\u003e **DEPRECATED:**  This data source has been deprecated from version `1.229.1`.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.brain.getIndustrialPidProjects({\n    ids: [\"3e74e684-cbb5-xxxx\"],\n    nameRegex: \"tf-testAcc\",\n});\nexport const firstBrainIndustrialPidProjectId = example.then(example =\u003e example.projects?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.brain.get_industrial_pid_projects(ids=[\"3e74e684-cbb5-xxxx\"],\n    name_regex=\"tf-testAcc\")\npulumi.export(\"firstBrainIndustrialPidProjectId\", example.projects[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Brain.GetIndustrialPidProjects.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"3e74e684-cbb5-xxxx\",\n        },\n        NameRegex = \"tf-testAcc\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstBrainIndustrialPidProjectId\"] = example.Apply(getIndustrialPidProjectsResult =\u003e getIndustrialPidProjectsResult.Projects[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/brain\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := brain.GetIndustrialPidProjects(ctx, \u0026brain.GetIndustrialPidProjectsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"3e74e684-cbb5-xxxx\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"tf-testAcc\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstBrainIndustrialPidProjectId\", example.Projects[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.brain.BrainFunctions;\nimport com.pulumi.alicloud.brain.inputs.GetIndustrialPidProjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = BrainFunctions.getIndustrialPidProjects(GetIndustrialPidProjectsArgs.builder()\n            .ids(\"3e74e684-cbb5-xxxx\")\n            .nameRegex(\"tf-testAcc\")\n            .build());\n\n        ctx.export(\"firstBrainIndustrialPidProjectId\", example.projects()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:brain:getIndustrialPidProjects\n      arguments:\n        ids:\n          - 3e74e684-cbb5-xxxx\n        nameRegex: tf-testAcc\noutputs:\n  firstBrainIndustrialPidProjectId: ${example.projects[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIndustrialPidProjects.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Pid Project IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Pid Project name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pidOrganizationId":{"type":"string","description":"The ID of Pid Organization.\n"},"pidProjectName":{"type":"string","description":"The name of Pid Project.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIndustrialPidProjects.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Pid Project names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pidOrganizationId":{"description":"The ID of Pid Organization.\n","type":"string"},"pidProjectName":{"description":"The name of Pid Project.\n","type":"string"},"projects":{"description":"A list of Brain Industrial Pid Projects. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:brain/getIndustrialPidProjectsProject:getIndustrialPidProjectsProject"},"type":"array"}},"required":["ids","names","projects","id"],"type":"object"}},"alicloud:brain/getIndustrialSerice:getIndustrialSerice":{"description":"Using this data source can open Brain Industrial service automatically. If the service has been opened, it will return opened.\n\n\u003e **NOTE:** Available since v1.115.0.\n\n\u003e **NOTE:** The Brain Industrial service is not support in the international site.\n\n\u003e **DEPRECATED:**  This data source has been deprecated from version `1.229.1`.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.brain.getIndustrialSerice({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.brain.get_industrial_serice(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Brain.GetIndustrialSerice.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/brain\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := brain.GetIndustrialSerice(ctx, \u0026brain.GetIndustrialSericeArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.brain.BrainFunctions;\nimport com.pulumi.alicloud.brain.inputs.GetIndustrialSericeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = BrainFunctions.getIndustrialSerice(GetIndustrialSericeArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:brain:getIndustrialSerice\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIndustrialSerice.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the Brain Industrial service. The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIndustrialSerice.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:bss/getOpenApiPricingModules:getOpenApiPricingModules":{"description":"This data source provides Bss Open Api Pricing Module available to the user.[What is Pricing Module](https://www.alibabacloud.com/help/en/boa/latest/api-bssopenapi-2017-12-14-describepricingmodule)\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.bss.getOpenApiPricingModules({\n    nameRegex: \"国内月均日峰值带宽\",\n    productCode: \"cdn\",\n    productType: \"CDN\",\n    subscriptionType: \"PayAsYouGo\",\n});\nexport const alicloudBssOpenapiPricingModuleExampleId = _default.then(_default =\u003e _default.modules?.[0]?.code);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.bss.get_open_api_pricing_modules(name_regex=\"国内月均日峰值带宽\",\n    product_code=\"cdn\",\n    product_type=\"CDN\",\n    subscription_type=\"PayAsYouGo\")\npulumi.export(\"alicloudBssOpenapiPricingModuleExampleId\", default.modules[0].code)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Bss.GetOpenApiPricingModules.Invoke(new()\n    {\n        NameRegex = \"国内月均日峰值带宽\",\n        ProductCode = \"cdn\",\n        ProductType = \"CDN\",\n        SubscriptionType = \"PayAsYouGo\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudBssOpenapiPricingModuleExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getOpenApiPricingModulesResult =\u003e getOpenApiPricingModulesResult.Modules[0]?.Code)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/bss\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := bss.GetOpenApiPricingModules(ctx, \u0026bss.GetOpenApiPricingModulesArgs{\n\t\t\tNameRegex:        pulumi.StringRef(\"国内月均日峰值带宽\"),\n\t\t\tProductCode:      \"cdn\",\n\t\t\tProductType:      pulumi.StringRef(\"CDN\"),\n\t\t\tSubscriptionType: \"PayAsYouGo\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudBssOpenapiPricingModuleExampleId\", _default.Modules[0].Code)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.bss.BssFunctions;\nimport com.pulumi.alicloud.bss.inputs.GetOpenApiPricingModulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = BssFunctions.getOpenApiPricingModules(GetOpenApiPricingModulesArgs.builder()\n            .nameRegex(\"国内月均日峰值带宽\")\n            .productCode(\"cdn\")\n            .productType(\"CDN\")\n            .subscriptionType(\"PayAsYouGo\")\n            .build());\n\n        ctx.export(\"alicloudBssOpenapiPricingModuleExampleId\", default_.modules()[0].code());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:bss:getOpenApiPricingModules\n      arguments:\n        nameRegex: 国内月均日峰值带宽\n        productCode: cdn\n        productType: CDN\n        subscriptionType: PayAsYouGo\noutputs:\n  alicloudBssOpenapiPricingModuleExampleId: ${default.modules[0].code}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOpenApiPricingModules.\n","properties":{"ids":{"type":"array","items":{"type":"string"}},"nameRegex":{"type":"string","description":"A regex string to filter results by Property name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"productCode":{"type":"string","description":"The product code.\n"},"productType":{"type":"string","description":"The product type.\n"},"subscriptionType":{"type":"string","description":"Subscription type. Value:\n* Subscription: Prepaid.\n* PayAsYouGo: postpaid.\n"}},"type":"object","required":["productCode","subscriptionType"]},"outputs":{"description":"A collection of values returned by getOpenApiPricingModules.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"modules":{"description":"A list of Pricing Module Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:bss/getOpenApiPricingModulesModule:getOpenApiPricingModulesModule"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Pricing Modules.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"productCode":{"type":"string"},"productType":{"type":"string"},"subscriptionType":{"type":"string"}},"required":["ids","modules","names","productCode","subscriptionType","id"],"type":"object"}},"alicloud:bss/getOpenApiProducts:getOpenApiProducts":{"description":"This data source provides Bss Open Api Product available to the user.[What is Product](https://www.alibabacloud.com/help/en/boa/latest/api-bssopenapi-2017-12-14-queryproductlist)\n\n\u003e **NOTE:** Available since v1.195.0.\n\n","inputs":{"description":"A collection of arguments for invoking getOpenApiProducts.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of product IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Product name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getOpenApiProducts.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Products.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"products":{"description":"A list of Product Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:bss/getOpenApiProductsProduct:getOpenApiProductsProduct"},"type":"array"}},"required":["ids","names","products","id"],"type":"object"}},"alicloud:cas/getCertificates:getCertificates":{"deprecationMessage":"This resource has been deprecated in favour of getServiceCertificates","description":"\u003e **DEPRECATED:**  This datasource has been deprecated from version `1.129.0`. Please use new datasource alicloud_ssl_certificates_service_certificates.\n\nThis data source provides a list of CAS Certificates in an Alibaba Cloud account according to the specified filters.\n\n","inputs":{"description":"A collection of arguments for invoking getCertificates.\n","properties":{"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of cert IDs.\n"},"keyword":{"type":"string"},"lang":{"type":"string","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`lang`\" pulumi-lang-dotnet=\"`Lang`\" pulumi-lang-go=\"`lang`\" pulumi-lang-python=\"`lang`\" pulumi-lang-yaml=\"`lang`\" pulumi-lang-java=\"`lang`\"\u003e`lang`\u003c/span\u003e has been deprecated from provider version 1.232.0."},"nameRegex":{"type":"string","description":"A regex string to filter results by the certificate name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCertificates.\n","properties":{"certificates":{"description":"A list of apis. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cas/getCertificatesCertificate:getCertificatesCertificate"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of cert IDs.\n","items":{"type":"string"},"type":"array"},"keyword":{"type":"string"},"lang":{"deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`lang`\" pulumi-lang-dotnet=\"`Lang`\" pulumi-lang-go=\"`lang`\" pulumi-lang-python=\"`lang`\" pulumi-lang-yaml=\"`lang`\" pulumi-lang-java=\"`lang`\"\u003e`lang`\u003c/span\u003e has been deprecated from provider version 1.232.0.","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of cert names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["certificates","ids","names","id"],"type":"object"}},"alicloud:cas/getServiceCertificates:getServiceCertificates":{"description":"This data source provides the Ssl Certificates Service Certificates of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.129.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cas.ServiceCertificate(\"default\", {\n    certificateName: name,\n    cert: `-----BEGIN CERTIFICATE-----\nMIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\nTjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\nVQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\nMjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\nEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\nY5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\nN4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\nHAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\nrkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n+arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\nZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\nBBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\nS7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\nAC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\nTTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\nDPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n-----END CERTIFICATE-----\n`,\n    key: `-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\nrhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\nBpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\np2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n+axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\nn8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n/1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\ndIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\nYmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\nLfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\nGOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\nncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\nXWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\ni9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\nrNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\ng1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\nAvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\nZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\nAMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\nCIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\nLILJ+e7bLw8RrM0HfgFnl8c=\n-----END PRIVATE KEY-----\n`,\n});\nconst ids = alicloud.cas.getServiceCertificatesOutput({\n    ids: [_default.id],\n});\nexport const sslCertificatesServiceCertificatesId0 = ids.apply(ids =\u003e ids.certificates?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cas.ServiceCertificate(\"default\",\n    certificate_name=name,\n    cert=\"\"\"-----BEGIN CERTIFICATE-----\nMIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\nTjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\nVQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\nMjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\nEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\nY5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\nN4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\nHAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\nrkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n+arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\nZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\nBBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\nS7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\nAC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\nTTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\nDPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n-----END CERTIFICATE-----\n\"\"\",\n    key=\"\"\"-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\nrhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\nBpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\np2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n+axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\nn8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n/1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\ndIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\nYmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\nLfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\nGOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\nncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\nXWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\ni9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\nrNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\ng1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\nAvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\nZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\nAMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\nCIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\nLILJ+e7bLw8RrM0HfgFnl8c=\n-----END PRIVATE KEY-----\n\"\"\")\nids = alicloud.cas.get_service_certificates_output(ids=[default.id])\npulumi.export(\"sslCertificatesServiceCertificatesId0\", ids.certificates[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Cas.ServiceCertificate(\"default\", new()\n    {\n        CertificateName = name,\n        Cert = @\"-----BEGIN CERTIFICATE-----\nMIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\nTjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\nVQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\nMjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\nEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\nY5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\nN4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\nHAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\nrkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n+arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\nZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\nBBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\nS7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\nAC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\nTTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\nDPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n-----END CERTIFICATE-----\n\",\n        Key = @\"-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\nrhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\nBpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\np2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n+axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\nn8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n/1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\ndIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\nYmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\nLfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\nGOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\nncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\nXWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\ni9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\nrNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\ng1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\nAvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\nZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\nAMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\nCIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\nLILJ+e7bLw8RrM0HfgFnl8c=\n-----END PRIVATE KEY-----\n\",\n    });\n\n    var ids = AliCloud.Cas.GetServiceCertificates.Invoke(new()\n    {\n        Ids = new[]\n        {\n            @default.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"sslCertificatesServiceCertificatesId0\"] = ids.Apply(getServiceCertificatesResult =\u003e getServiceCertificatesResult.Certificates[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cas.NewServiceCertificate(ctx, \"default\", \u0026cas.ServiceCertificateArgs{\n\t\t\tCertificateName: pulumi.String(name),\n\t\t\tCert: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\nTjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\nVQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\nMjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\nEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\nY5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\nN4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\nHAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\nrkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n+arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\nZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\nBBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\nS7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\nAC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\nTTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\nDPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n-----END CERTIFICATE-----\n`),\n\t\t\tKey: pulumi.String(`-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\nrhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\nBpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\np2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n+axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\nn8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n/1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\ndIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\nYmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\nLfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\nGOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\nncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\nXWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\ni9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\nrNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\ng1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\nAvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\nZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\nAMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\nCIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\nLILJ+e7bLw8RrM0HfgFnl8c=\n-----END PRIVATE KEY-----\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := cas.GetServiceCertificatesOutput(ctx, cas.GetServiceCertificatesOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"sslCertificatesServiceCertificatesId0\", ids.ApplyT(func(ids cas.GetServiceCertificatesResult) (*string, error) {\n\t\t\treturn \u0026ids.Certificates[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cas.ServiceCertificate;\nimport com.pulumi.alicloud.cas.ServiceCertificateArgs;\nimport com.pulumi.alicloud.cas.CasFunctions;\nimport com.pulumi.alicloud.cas.inputs.GetServiceCertificatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new ServiceCertificate(\"default\", ServiceCertificateArgs.builder()\n            .certificateName(name)\n            .cert(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\nTjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\nVQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\nMjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\nEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\nY5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\nN4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\nHAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\nrkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n+arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\nZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\nBBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\nS7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\nAC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\nTTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\nDPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n-----END CERTIFICATE-----\n            \"\"\")\n            .key(\"\"\"\n-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\nrhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\nBpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\np2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n+axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\nn8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n/1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\ndIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\nYmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\nLfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\nGOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\nncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\nXWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\ni9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\nrNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\ng1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\nAvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\nZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\nAMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\nCIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\nLILJ+e7bLw8RrM0HfgFnl8c=\n-----END PRIVATE KEY-----\n            \"\"\")\n            .build());\n\n        final var ids = CasFunctions.getServiceCertificates(GetServiceCertificatesArgs.builder()\n            .ids(default_.id())\n            .build());\n\n        ctx.export(\"sslCertificatesServiceCertificatesId0\", ids.applyValue(_ids -\u003e _ids.certificates()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cas:ServiceCertificate\n    properties:\n      certificateName: ${name}\n      cert: |\n        -----BEGIN CERTIFICATE-----\n        MIIDeDCCAmCgAwIBAgIEN3ZT6zANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJD\n        TjEVMBMGA1UEAwwMKi50ZnRlc3QudG9wMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYD\n        VQQHDAdCZWlKaW5nMQswCQYDVQQKDAJBQTAeFw0yMzA4MjgwNjQ5NDNaFw0yNTA4\n        MjcwNjQ5NDNaMFUxCzAJBgNVBAYTAkNOMRUwEwYDVQQDDAwqLnRmdGVzdC50b3Ax\n        EDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcxCzAJBgNVBAoMAkFB\n        MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkk9NJUH7PLSQK4RRrGQ\n        Y5dVsftkhnKh9HhI6yrnlowWIDPS1PZHOU/5gQ7xPUPGdKQV5S7x8wROnAaXEimx\n        N4GdQw25pGhRJvlwme9fzJJiSe6lG49NCxmuBiEdJAzPKaTPpK1cG1f1TqdgCfHR\n        HAL6Jxb3ylHG2LlTNFLXikubUi5RT6/9C8psr713Zm4HveCI/cx0WdgZ+fmsc9ft\n        rkIB1DdyV1kQ51m8r2rLi3J7aC5ggGOiex/VlGSd4e6SOQLpdQEdDbodtOJ4LgVk\n        +arFNCMinUWIOPGFzXhdm6lssPbh4MOBrz8c/M9TcF4hoMn5/o/9johZIZ/DOvXt\n        ZQIDAQABo1AwTjAdBgNVHQ4EFgQUOnWiddgeZj17IeysatqhE361o5YwHwYDVR0j\n        BBgwFoAUOnWiddgeZj17IeysatqhE361o5YwDAYDVR0TBAUwAwEB/zANBgkqhkiG\n        9w0BAQsFAAOCAQEAfh3cnOszHM/5wXjY7BIkmgDOReksS+87ibhBz7T2ddZj+yCF\n        9GdIBzXCiHpQFXpW8a3kc3I7l3nGfMTkmF6ld3ot/6SXP17QKJwxtvUA4ib8QkWD\n        S7FT+UcHCUHv42Sh1e5uAlQ5pMSul7iKcR7jwlwZGZ0905HOqrmdyUGJ+Ud2uZWD\n        AC0dJF6Bv9VhNtci8Imp05PaPH09deXLZu8LRrKRZFy9qLW5R6Swv7nzxckOAqDk\n        TTc40xwvQROekWUyxeJL7xaHuylUHE0bxsiIfx5bZsBizRjprIwGlj85CSPuTZyP\n        DPfaiZAN/61h5HNAnxLltOZfqabKYYw7l9LBDg==\n        -----END CERTIFICATE-----\n      key: |\n        -----BEGIN PRIVATE KEY-----\n        MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOST00lQfs8tJA\n        rhFGsZBjl1Wx+2SGcqH0eEjrKueWjBYgM9LU9kc5T/mBDvE9Q8Z0pBXlLvHzBE6c\n        BpcSKbE3gZ1DDbmkaFEm+XCZ71/MkmJJ7qUbj00LGa4GIR0kDM8ppM+krVwbV/VO\n        p2AJ8dEcAvonFvfKUcbYuVM0UteKS5tSLlFPr/0LymyvvXdmbge94Ij9zHRZ2Bn5\n        +axz1+2uQgHUN3JXWRDnWbyvasuLcntoLmCAY6J7H9WUZJ3h7pI5Aul1AR0Nuh20\n        4nguBWT5qsU0IyKdRYg48YXNeF2bqWyw9uHgw4GvPxz8z1NwXiGgyfn+j/2OiFkh\n        n8M69e1lAgMBAAECggEAevPgTTT+0lYwx2h416ACJboP09O5KQGuUl5XaAPcoTjB\n        /1OkOFbKQPjQCAJ1+0QoR2F9w2plv6kziX/MD4FWJXVV3J+TpNCgfhBy8u1gNjiR\n        6Osa8gBJtXIK7ZBTJCeWWoXnVYoWuh2FEupkLck6D+4eV6oy6x4u3QIo+6jc24n9\n        dIXQG6/v/Iao34kB0LUdp/4WNaUDvfI6NDhEwchpKE95dtWIDlIN/YhfiYAdjrnl\n        YmH2VDbAGgsdEiHP4wLZfjgsGPPDGS0+qBHoSiJGH0E6wWEZdAE4TsYGRFsO86n3\n        LfjEPFGfPlcnZe2cTTe3kmyKq/DTjxtu2rh3I8o2CQKBgQD/5Xe7cenaOBefzPlx\n        GOEsB+qv49UmzEPOXDNZe9hmAawuuuxPUM+xlE++P+mEgQm1LPT4WWgtFLPVuwmx\n        ncxt4CJNZh+ZGFyAZ4dm4M4ZhIBXNonyIP+yGyAJUUVF9Iy3TYcJNiGzv2Rx9JRQ\n        XWJMQnTDILmZbmU+ltTea7/zqwKBgQDOXqCqb17MuLt7OcKWSgthm79OlaOdzZvl\n        i9qU6VzZKG7Axc5gA9yq6tHp3vWPI4bNdvwqIIa/nzVILjGA5fcYFbRN+7gHwo8s\n        rNAgi5PAoKWqQRovyJRY9Eq/sn6l1jbJZAOUAMZMWDm8z89OqK7PNQSIAtfFSneo\n        2QxJkGeTLwKBgGJkafBB8af9b1/7YWISLepPNPbihH/BhMThAMGEdAVs2TaymtA4\n        g1OFck/1pSVUtFXcbmjbf8ntruQcYbLQuNz6lFXsUXP9QPwCUrbE85ouL2bZSps2\n        AvsJoPzUKe2nBUAp6CUrkjPaAJYsc6ae8X/fAaRRfeu33ef9+OV4yrq3AoGAYFZo\n        ZmfrN2Kdkt7Z6dLTEVPlsMfGQ6pyNmxdM9rkzzNC0JcGymfDIb7RE35T3+hTy6La\n        AMiCXv3xn6qAzY2NFh87tpPlyymWMOLTnf3Kkcfszlfp45idOBGCu46V9NDVbppT\n        2UmrSIR/H5dbTXsNcAlt/hhlpeInjhkU1VqmH10CgYEA7Kk+QhWq705SczpWjm5J\n        9kHqfFzJLwAWNBduiia0WypgPhLe/4wT1rYQkBtKMVKrgFo7Cvi4YKlrtlDnXyeU\n        CIFqfEL5NriQelqrFsvgHsmD+MpvDoSWm5C8IrTubtlNyWUzXSVT4OIwzPobzPqG\n        LILJ+e7bLw8RrM0HfgFnl8c=\n        -----END PRIVATE KEY-----\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cas:getServiceCertificates\n      arguments:\n        ids:\n          - ${default.id}\noutputs:\n  sslCertificatesServiceCertificatesId0: ${ids.certificates[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceCertificates.\n","properties":{"enableDetails":{"type":"boolean","description":"Whether to query the detailed list of resource attributes. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ssl Certificates IDs.\n"},"keyword":{"type":"string","description":"The domain name that is bound or the ID of the resource. Fuzzy match is supported.\n"},"lang":{"type":"string","description":"The language of the content within the request and response. **Note:** Field \u003cspan pulumi-lang-nodejs=\"`lang`\" pulumi-lang-dotnet=\"`Lang`\" pulumi-lang-go=\"`lang`\" pulumi-lang-python=\"`lang`\" pulumi-lang-yaml=\"`lang`\" pulumi-lang-java=\"`lang`\"\u003e`lang`\u003c/span\u003e has been deprecated from provider version 1.232.0.\n","deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`lang`\" pulumi-lang-dotnet=\"`Lang`\" pulumi-lang-go=\"`lang`\" pulumi-lang-python=\"`lang`\" pulumi-lang-yaml=\"`lang`\" pulumi-lang-java=\"`lang`\"\u003e`lang`\u003c/span\u003e has been deprecated from provider version 1.232.0."},"nameRegex":{"type":"string","description":"A regex string to filter results by Ssl Certificates name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServiceCertificates.\n","properties":{"certificates":{"description":"A list of Ssl Certificates Service Certificates. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cas/getServiceCertificatesCertificate:getServiceCertificatesCertificate"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyword":{"type":"string"},"lang":{"deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`lang`\" pulumi-lang-dotnet=\"`Lang`\" pulumi-lang-go=\"`lang`\" pulumi-lang-python=\"`lang`\" pulumi-lang-yaml=\"`lang`\" pulumi-lang-java=\"`lang`\"\u003e`lang`\u003c/span\u003e has been deprecated from provider version 1.232.0.","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Ssl Certificates names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["certificates","ids","names","id"],"type":"object"}},"alicloud:cassandra/getBackupPlans:getBackupPlans":{"description":"This data source provides the Cassandra Backup Plans of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.128.0+.\n\n\u003e **DEPRECATED:**  This data source has been [deprecated](https://www.alibabacloud.com/help/en/apsaradb-for-cassandra/latest/cassandra-delisting-notice) from version `1.220.0`.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cassandra.getBackupPlans({\n    clusterId: \"example_value\",\n});\nexport const firstCassandraBackupPlanId = example.then(example =\u003e example.plans?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cassandra.get_backup_plans(cluster_id=\"example_value\")\npulumi.export(\"firstCassandraBackupPlanId\", example.plans[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cassandra.GetBackupPlans.Invoke(new()\n    {\n        ClusterId = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstCassandraBackupPlanId\"] = example.Apply(getBackupPlansResult =\u003e getBackupPlansResult.Plans[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cassandra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cassandra.GetBackupPlans(ctx, \u0026cassandra.GetBackupPlansArgs{\n\t\t\tClusterId: \"example_value\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstCassandraBackupPlanId\", example.Plans[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cassandra.CassandraFunctions;\nimport com.pulumi.alicloud.cassandra.inputs.GetBackupPlansArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CassandraFunctions.getBackupPlans(GetBackupPlansArgs.builder()\n            .clusterId(\"example_value\")\n            .build());\n\n        ctx.export(\"firstCassandraBackupPlanId\", example.plans()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cassandra:getBackupPlans\n      arguments:\n        clusterId: example_value\noutputs:\n  firstCassandraBackupPlanId: ${example.plans[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBackupPlans.\n","properties":{"clusterId":{"type":"string","description":"The ID of the cluster for the backup.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["clusterId"]},"outputs":{"description":"A collection of values returned by getBackupPlans.\n","properties":{"clusterId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"plans":{"items":{"$ref":"#/types/alicloud:cassandra/getBackupPlansPlan:getBackupPlansPlan"},"type":"array"}},"required":["clusterId","ids","plans","id"],"type":"object"}},"alicloud:cassandra/getClusters:getClusters":{"description":"The \u003cspan pulumi-lang-nodejs=\"`alicloud.cassandra.getClusters`\" pulumi-lang-dotnet=\"`alicloud.cassandra.getClusters`\" pulumi-lang-go=\"`cassandra.getClusters`\" pulumi-lang-python=\"`cassandra_get_clusters`\" pulumi-lang-yaml=\"`alicloud.cassandra.getClusters`\" pulumi-lang-java=\"`alicloud.cassandra.getClusters`\"\u003e`alicloud.cassandra.getClusters`\u003c/span\u003e data source provides a collection of Cassandra clusters available in Alicloud account.\nFilters support regular expression for the cluster name, ids or tags.\n\n\u003e **NOTE:**  Available in 1.88.0+.\n\n\u003e **DEPRECATED:**  This data source has been [deprecated](https://www.alibabacloud.com/help/en/apsaradb-for-cassandra/latest/cassandra-delisting-notice) from version `1.220.0`.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst cassandra = alicloud.cassandra.getClusters({\n    nameRegex: \"tf_testAccCassandra\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ncassandra = alicloud.cassandra.get_clusters(name_regex=\"tf_testAccCassandra\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var cassandra = AliCloud.Cassandra.GetClusters.Invoke(new()\n    {\n        NameRegex = \"tf_testAccCassandra\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cassandra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cassandra.GetClusters(ctx, \u0026cassandra.GetClustersArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"tf_testAccCassandra\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cassandra.CassandraFunctions;\nimport com.pulumi.alicloud.cassandra.inputs.GetClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var cassandra = CassandraFunctions.getClusters(GetClustersArgs.builder()\n            .nameRegex(\"tf_testAccCassandra\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  cassandra:\n    fn::invoke:\n      function: alicloud:cassandra:getClusters\n      arguments:\n        nameRegex: tf_testAccCassandra\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getClusters.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"The list of Cassandra cluster ids.\n"},"nameRegex":{"type":"string","description":"A regex string to apply to the cluster name.\n"},"outputFile":{"type":"string","description":"The name of file that can save the collection of clusters after running `pulumi preview`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getClusters.\n","properties":{"clusters":{"description":"A list of Cassandra clusters. Its every element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cassandra/getClustersCluster:getClustersCluster"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"The list of Cassandra cluster ids.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"The name list of Cassandra clusters.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","type":"object"}},"required":["clusters","ids","names","id"],"type":"object"}},"alicloud:cassandra/getDataCenters:getDataCenters":{"description":"The \u003cspan pulumi-lang-nodejs=\"`alicloud.cassandra.getDataCenters`\" pulumi-lang-dotnet=\"`alicloud.cassandra.getDataCenters`\" pulumi-lang-go=\"`cassandra.getDataCenters`\" pulumi-lang-python=\"`cassandra_get_data_centers`\" pulumi-lang-yaml=\"`alicloud.cassandra.getDataCenters`\" pulumi-lang-java=\"`alicloud.cassandra.getDataCenters`\"\u003e`alicloud.cassandra.getDataCenters`\u003c/span\u003e data source provides a collection of Cassandra Data Centers available in Alicloud account.\nFilters support regular expression for the cluster name or ids.\n\n\u003e **NOTE:**  Available in 1.88.0+.\n\n\u003e **DEPRECATED:**  This data source has been [deprecated](https://www.alibabacloud.com/help/en/apsaradb-for-cassandra/latest/cassandra-delisting-notice) from version `1.220.0`.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst cassandra = alicloud.cassandra.getDataCenters({\n    nameRegex: \"tf_testAccCassandra_dc\",\n    clusterId: \"cds-xxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ncassandra = alicloud.cassandra.get_data_centers(name_regex=\"tf_testAccCassandra_dc\",\n    cluster_id=\"cds-xxxxx\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var cassandra = AliCloud.Cassandra.GetDataCenters.Invoke(new()\n    {\n        NameRegex = \"tf_testAccCassandra_dc\",\n        ClusterId = \"cds-xxxxx\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cassandra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cassandra.GetDataCenters(ctx, \u0026cassandra.GetDataCentersArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"tf_testAccCassandra_dc\"),\n\t\t\tClusterId: \"cds-xxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cassandra.CassandraFunctions;\nimport com.pulumi.alicloud.cassandra.inputs.GetDataCentersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var cassandra = CassandraFunctions.getDataCenters(GetDataCentersArgs.builder()\n            .nameRegex(\"tf_testAccCassandra_dc\")\n            .clusterId(\"cds-xxxxx\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  cassandra:\n    fn::invoke:\n      function: alicloud:cassandra:getDataCenters\n      arguments:\n        nameRegex: tf_testAccCassandra_dc\n        clusterId: cds-xxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDataCenters.\n","properties":{"clusterId":{"type":"string","description":"The cluster id of dataCenters belongs to.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"The list of Cassandra data center ids.\n"},"nameRegex":{"type":"string","description":"A regex string to apply to the cluster name.\n"},"outputFile":{"type":"string","description":"The name of file that can save the collection of data centers after running `pulumi preview`.\n"}},"type":"object","required":["clusterId"]},"outputs":{"description":"A collection of values returned by getDataCenters.\n","properties":{"centers":{"description":"A list of Cassandra data centers. Its every element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cassandra/getDataCentersCenter:getDataCentersCenter"},"type":"array"},"clusterId":{"description":"The ID of the Cassandra cluster.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"The list of Cassandra data center ids.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"The name list of Cassandra data centers.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["centers","clusterId","ids","names","id"],"type":"object"}},"alicloud:cassandra/getZones:getZones":{"description":"This data source provides availability zones for Cassandra that can be accessed by an Alibaba Cloud account within the region configured in the provider.\n\n\u003e **NOTE:** Available in v1.88.0+.\n\n\u003e **DEPRECATED:**  This data source has been [deprecated](https://www.alibabacloud.com/help/en/apsaradb-for-cassandra/latest/cassandra-delisting-notice) from version `1.220.0`.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst zonesIds = alicloud.cassandra.getZones({});\n// Create an Cassandra cluster with the first matched zone\nconst cassandra = new alicloud.cassandra.Cluster(\"cassandra\", {zoneId: zonesIds.then(zonesIds =\u003e zonesIds.zones?.[0]?.id)});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nzones_ids = alicloud.cassandra.get_zones()\n# Create an Cassandra cluster with the first matched zone\ncassandra = alicloud.cassandra.Cluster(\"cassandra\", zone_id=zones_ids.zones[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var zonesIds = AliCloud.Cassandra.GetZones.Invoke();\n\n    // Create an Cassandra cluster with the first matched zone\n    var cassandra = new AliCloud.Cassandra.Cluster(\"cassandra\", new()\n    {\n        ZoneId = zonesIds.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cassandra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tzonesIds, err := cassandra.GetZones(ctx, \u0026cassandra.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create an Cassandra cluster with the first matched zone\n\t\t_, err = cassandra.NewCluster(ctx, \"cassandra\", \u0026cassandra.ClusterArgs{\n\t\t\tZoneId: pulumi.String(zonesIds.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cassandra.CassandraFunctions;\nimport com.pulumi.alicloud.cassandra.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.cassandra.Cluster;\nimport com.pulumi.alicloud.cassandra.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var zonesIds = CassandraFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        // Create an Cassandra cluster with the first matched zone\n        var cassandra = new Cluster(\"cassandra\", ClusterArgs.builder()\n            .zoneId(zonesIds.zones()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Cassandra cluster with the first matched zone\n  cassandra:\n    type: alicloud:cassandra:Cluster\n    properties:\n      zoneId: ${zonesIds.zones[0].id}\nvariables:\n  # Declare the data source\n  zonesIds:\n    fn::invoke:\n      function: alicloud:cassandra:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"multi":{"type":"boolean","description":"Indicate whether the zones can be used in a multi AZ configuration. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Multi AZ is usually used to launch Cassandra clusters.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of zone IDs.\n","items":{"type":"string"},"type":"array"},"multi":{"type":"boolean"},"outputFile":{"type":"string"},"zones":{"description":"A list of availability zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cassandra/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:cddc/getDedicatedHostAccounts:getDedicatedHostAccounts":{"description":"This data source provides the Cddc Dedicated Host Accounts of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.148.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cddc.getDedicatedHostAccounts({});\nexport const cddcDedicatedHostAccountId1 = ids.then(ids =\u003e ids.accounts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cddc.get_dedicated_host_accounts()\npulumi.export(\"cddcDedicatedHostAccountId1\", ids.accounts[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cddc.GetDedicatedHostAccounts.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cddcDedicatedHostAccountId1\"] = ids.Apply(getDedicatedHostAccountsResult =\u003e getDedicatedHostAccountsResult.Accounts[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cddc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cddc.GetDedicatedHostAccounts(ctx, \u0026cddc.GetDedicatedHostAccountsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cddcDedicatedHostAccountId1\", ids.Accounts[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cddc.CddcFunctions;\nimport com.pulumi.alicloud.cddc.inputs.GetDedicatedHostAccountsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CddcFunctions.getDedicatedHostAccounts(GetDedicatedHostAccountsArgs.builder()\n            .build());\n\n        ctx.export(\"cddcDedicatedHostAccountId1\", ids.accounts()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cddc:getDedicatedHostAccounts\n      arguments: {}\noutputs:\n  cddcDedicatedHostAccountId1: ${ids.accounts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDedicatedHostAccounts.\n","properties":{"dedicatedHostId":{"type":"string","description":"The ID of the host.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Dedicated Host Account IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Account name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDedicatedHostAccounts.\n","properties":{"accounts":{"items":{"$ref":"#/types/alicloud:cddc/getDedicatedHostAccountsAccount:getDedicatedHostAccountsAccount"},"type":"array"},"dedicatedHostId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["accounts","ids","names","id"],"type":"object"}},"alicloud:cddc/getDedicatedHostGroups:getDedicatedHostGroups":{"description":"This data source provides the Cddc Dedicated Host Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.132.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cddc.getDedicatedHostGroups({\n    engine: \"MongoDB\",\n});\nexport const cddcDedicatedHostGroupId = _default.then(_default =\u003e _default.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cddc.get_dedicated_host_groups(engine=\"MongoDB\")\npulumi.export(\"cddcDedicatedHostGroupId\", default.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Cddc.GetDedicatedHostGroups.Invoke(new()\n    {\n        Engine = \"MongoDB\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cddcDedicatedHostGroupId\"] = @default.Apply(@default =\u003e @default.Apply(getDedicatedHostGroupsResult =\u003e getDedicatedHostGroupsResult.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cddc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := cddc.GetDedicatedHostGroups(ctx, \u0026cddc.GetDedicatedHostGroupsArgs{\n\t\t\tEngine: pulumi.StringRef(\"MongoDB\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cddcDedicatedHostGroupId\", _default.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cddc.CddcFunctions;\nimport com.pulumi.alicloud.cddc.inputs.GetDedicatedHostGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CddcFunctions.getDedicatedHostGroups(GetDedicatedHostGroupsArgs.builder()\n            .engine(\"MongoDB\")\n            .build());\n\n        ctx.export(\"cddcDedicatedHostGroupId\", default_.id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cddc:getDedicatedHostGroups\n      arguments:\n        engine: MongoDB\noutputs:\n  cddcDedicatedHostGroupId: ${default.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDedicatedHostGroups.\n","properties":{"engine":{"type":"string","description":"Database Engine Type. Valid values:`Redis`, `SQLServer`, `MySQL`, `PostgreSQL`, `MongoDB`\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Dedicated Host Group IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Dedicated Host Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDedicatedHostGroups.\n","properties":{"engine":{"type":"string"},"groups":{"items":{"$ref":"#/types/alicloud:cddc/getDedicatedHostGroupsGroup:getDedicatedHostGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:cddc/getDedicatedHosts:getDedicatedHosts":{"description":"This data source provides the Cddc Dedicated Hosts of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.147.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cddc.getDedicatedHosts({\n    dedicatedHostGroupId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const cddcDedicatedHostId1 = ids.then(ids =\u003e ids.hosts?.[0]?.id);\nconst status = alicloud.cddc.getDedicatedHosts({\n    dedicatedHostGroupId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n    status: \"1\",\n});\nexport const cddcDedicatedHostId2 = status.then(status =\u003e status.hosts?.[0]?.id);\nconst zoneId = alicloud.cddc.getDedicatedHosts({\n    dedicatedHostGroupId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n    zoneId: \"example_value\",\n});\nexport const cddcDedicatedHostId3 = zoneId.then(zoneId =\u003e zoneId.hosts?.[0]?.id);\nconst allocationStatus = alicloud.cddc.getDedicatedHosts({\n    dedicatedHostGroupId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n    allocationStatus: \"Allocatable\",\n});\nexport const cddcDedicatedHostId4 = allocationStatus.then(allocationStatus =\u003e allocationStatus.hosts?.[0]?.id);\nconst hostType = alicloud.cddc.getDedicatedHosts({\n    dedicatedHostGroupId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n    hostType: \"dhg_cloud_ssd\",\n});\nexport const cddcDedicatedHostId5 = hostType.then(hostType =\u003e hostType.hosts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cddc.get_dedicated_hosts(dedicated_host_group_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"cddcDedicatedHostId1\", ids.hosts[0].id)\nstatus = alicloud.cddc.get_dedicated_hosts(dedicated_host_group_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n    status=\"1\")\npulumi.export(\"cddcDedicatedHostId2\", status.hosts[0].id)\nzone_id = alicloud.cddc.get_dedicated_hosts(dedicated_host_group_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n    zone_id=\"example_value\")\npulumi.export(\"cddcDedicatedHostId3\", zone_id.hosts[0].id)\nallocation_status = alicloud.cddc.get_dedicated_hosts(dedicated_host_group_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n    allocation_status=\"Allocatable\")\npulumi.export(\"cddcDedicatedHostId4\", allocation_status.hosts[0].id)\nhost_type = alicloud.cddc.get_dedicated_hosts(dedicated_host_group_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n    host_type=\"dhg_cloud_ssd\")\npulumi.export(\"cddcDedicatedHostId5\", host_type.hosts[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cddc.GetDedicatedHosts.Invoke(new()\n    {\n        DedicatedHostGroupId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var status = AliCloud.Cddc.GetDedicatedHosts.Invoke(new()\n    {\n        DedicatedHostGroupId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n        Status = \"1\",\n    });\n\n    var zoneId = AliCloud.Cddc.GetDedicatedHosts.Invoke(new()\n    {\n        DedicatedHostGroupId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n        ZoneId = \"example_value\",\n    });\n\n    var allocationStatus = AliCloud.Cddc.GetDedicatedHosts.Invoke(new()\n    {\n        DedicatedHostGroupId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n        AllocationStatus = \"Allocatable\",\n    });\n\n    var hostType = AliCloud.Cddc.GetDedicatedHosts.Invoke(new()\n    {\n        DedicatedHostGroupId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n        HostType = \"dhg_cloud_ssd\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cddcDedicatedHostId1\"] = ids.Apply(getDedicatedHostsResult =\u003e getDedicatedHostsResult.Hosts[0]?.Id),\n        [\"cddcDedicatedHostId2\"] = status.Apply(getDedicatedHostsResult =\u003e getDedicatedHostsResult.Hosts[0]?.Id),\n        [\"cddcDedicatedHostId3\"] = zoneId.Apply(getDedicatedHostsResult =\u003e getDedicatedHostsResult.Hosts[0]?.Id),\n        [\"cddcDedicatedHostId4\"] = allocationStatus.Apply(getDedicatedHostsResult =\u003e getDedicatedHostsResult.Hosts[0]?.Id),\n        [\"cddcDedicatedHostId5\"] = hostType.Apply(getDedicatedHostsResult =\u003e getDedicatedHostsResult.Hosts[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cddc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cddc.GetDedicatedHosts(ctx, \u0026cddc.GetDedicatedHostsArgs{\n\t\t\tDedicatedHostGroupId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cddcDedicatedHostId1\", ids.Hosts[0].Id)\n\t\tstatus, err := cddc.GetDedicatedHosts(ctx, \u0026cddc.GetDedicatedHostsArgs{\n\t\t\tDedicatedHostGroupId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t\tStatus: pulumi.StringRef(\"1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cddcDedicatedHostId2\", status.Hosts[0].Id)\n\t\tzoneId, err := cddc.GetDedicatedHosts(ctx, \u0026cddc.GetDedicatedHostsArgs{\n\t\t\tDedicatedHostGroupId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t\tZoneId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cddcDedicatedHostId3\", zoneId.Hosts[0].Id)\n\t\tallocationStatus, err := cddc.GetDedicatedHosts(ctx, \u0026cddc.GetDedicatedHostsArgs{\n\t\t\tDedicatedHostGroupId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t\tAllocationStatus: pulumi.StringRef(\"Allocatable\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cddcDedicatedHostId4\", allocationStatus.Hosts[0].Id)\n\t\thostType, err := cddc.GetDedicatedHosts(ctx, \u0026cddc.GetDedicatedHostsArgs{\n\t\t\tDedicatedHostGroupId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t\tHostType: pulumi.StringRef(\"dhg_cloud_ssd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cddcDedicatedHostId5\", hostType.Hosts[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cddc.CddcFunctions;\nimport com.pulumi.alicloud.cddc.inputs.GetDedicatedHostsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CddcFunctions.getDedicatedHosts(GetDedicatedHostsArgs.builder()\n            .dedicatedHostGroupId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"cddcDedicatedHostId1\", ids.hosts()[0].id());\n        final var status = CddcFunctions.getDedicatedHosts(GetDedicatedHostsArgs.builder()\n            .dedicatedHostGroupId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .status(\"1\")\n            .build());\n\n        ctx.export(\"cddcDedicatedHostId2\", status.hosts()[0].id());\n        final var zoneId = CddcFunctions.getDedicatedHosts(GetDedicatedHostsArgs.builder()\n            .dedicatedHostGroupId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .zoneId(\"example_value\")\n            .build());\n\n        ctx.export(\"cddcDedicatedHostId3\", zoneId.hosts()[0].id());\n        final var allocationStatus = CddcFunctions.getDedicatedHosts(GetDedicatedHostsArgs.builder()\n            .dedicatedHostGroupId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .allocationStatus(\"Allocatable\")\n            .build());\n\n        ctx.export(\"cddcDedicatedHostId4\", allocationStatus.hosts()[0].id());\n        final var hostType = CddcFunctions.getDedicatedHosts(GetDedicatedHostsArgs.builder()\n            .dedicatedHostGroupId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .hostType(\"dhg_cloud_ssd\")\n            .build());\n\n        ctx.export(\"cddcDedicatedHostId5\", hostType.hosts()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cddc:getDedicatedHosts\n      arguments:\n        dedicatedHostGroupId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  status:\n    fn::invoke:\n      function: alicloud:cddc:getDedicatedHosts\n      arguments:\n        dedicatedHostGroupId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n        status: '1'\n  zoneId:\n    fn::invoke:\n      function: alicloud:cddc:getDedicatedHosts\n      arguments:\n        dedicatedHostGroupId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n        zoneId: example_value\n  allocationStatus:\n    fn::invoke:\n      function: alicloud:cddc:getDedicatedHosts\n      arguments:\n        dedicatedHostGroupId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n        allocationStatus: Allocatable\n  hostType:\n    fn::invoke:\n      function: alicloud:cddc:getDedicatedHosts\n      arguments:\n        dedicatedHostGroupId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n        hostType: dhg_cloud_ssd\noutputs:\n  cddcDedicatedHostId1: ${ids.hosts[0].id}\n  cddcDedicatedHostId2: ${status.hosts[0].id}\n  cddcDedicatedHostId3: ${zoneId.hosts[0].id}\n  cddcDedicatedHostId4: ${allocationStatus.hosts[0].id}\n  cddcDedicatedHostId5: ${hostType.hosts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDedicatedHosts.\n","properties":{"allocationStatus":{"type":"string","description":"Specifies whether instances can be created on the host. Valid values: `Allocatable` or `Suspended`. `Allocatable`: Instances can be created on the host. `Suspended`: Instances cannot be created on the host.\n"},"dedicatedHostGroupId":{"type":"string","description":"The ID of the dedicated cluster.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"hostType":{"type":"string","description":"The storage type of the host. Valid values: \u003cspan pulumi-lang-nodejs=\"`dhgLocalSsd`\" pulumi-lang-dotnet=\"`DhgLocalSsd`\" pulumi-lang-go=\"`dhgLocalSsd`\" pulumi-lang-python=\"`dhg_local_ssd`\" pulumi-lang-yaml=\"`dhgLocalSsd`\" pulumi-lang-java=\"`dhgLocalSsd`\"\u003e`dhg_local_ssd`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`dhgCloudSsd`\" pulumi-lang-dotnet=\"`DhgCloudSsd`\" pulumi-lang-go=\"`dhgCloudSsd`\" pulumi-lang-python=\"`dhg_cloud_ssd`\" pulumi-lang-yaml=\"`dhgCloudSsd`\" pulumi-lang-java=\"`dhgCloudSsd`\"\u003e`dhg_cloud_ssd`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`dhgLocalSsd`\" pulumi-lang-dotnet=\"`DhgLocalSsd`\" pulumi-lang-go=\"`dhgLocalSsd`\" pulumi-lang-python=\"`dhg_local_ssd`\" pulumi-lang-yaml=\"`dhgLocalSsd`\" pulumi-lang-java=\"`dhgLocalSsd`\"\u003e`dhg_local_ssd`\u003c/span\u003e: specifies that the host uses local SSDs. \u003cspan pulumi-lang-nodejs=\"`dhgCloudSsd`\" pulumi-lang-dotnet=\"`DhgCloudSsd`\" pulumi-lang-go=\"`dhgCloudSsd`\" pulumi-lang-python=\"`dhg_cloud_ssd`\" pulumi-lang-yaml=\"`dhgCloudSsd`\" pulumi-lang-java=\"`dhgCloudSsd`\"\u003e`dhg_cloud_ssd`\u003c/span\u003e: specifies that the host uses enhanced SSDs (ESSDs).\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Dedicated Host IDs.\n"},"orderId":{"type":"string","description":"The ID of the order.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The state of the host. Valid values: \n* `0:` The host is being created.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"zoneId":{"type":"string","description":"The ID of the zone.\n"}},"type":"object","required":["dedicatedHostGroupId"]},"outputs":{"description":"A collection of values returned by getDedicatedHosts.\n","properties":{"allocationStatus":{"type":"string"},"dedicatedHostGroupId":{"type":"string"},"enableDetails":{"type":"boolean"},"hostType":{"type":"string"},"hosts":{"items":{"$ref":"#/types/alicloud:cddc/getDedicatedHostsHost:getDedicatedHostsHost"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"orderId":{"type":"string"},"outputFile":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"zoneId":{"type":"string"}},"required":["dedicatedHostGroupId","hosts","ids","id"],"type":"object"}},"alicloud:cddc/getHostEcsLevelInfos:getHostEcsLevelInfos":{"description":"This data source provides the Cddc Host Ecs Level Infos of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.147.0+.\n\n","inputs":{"description":"A collection of arguments for invoking getHostEcsLevelInfos.\n","properties":{"dbType":{"type":"string","description":"The database engine of the host. Valid values: \u003cspan pulumi-lang-nodejs=\"`mysql`\" pulumi-lang-dotnet=\"`Mysql`\" pulumi-lang-go=\"`mysql`\" pulumi-lang-python=\"`mysql`\" pulumi-lang-yaml=\"`mysql`\" pulumi-lang-java=\"`mysql`\"\u003e`mysql`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mssql`\" pulumi-lang-dotnet=\"`Mssql`\" pulumi-lang-go=\"`mssql`\" pulumi-lang-python=\"`mssql`\" pulumi-lang-yaml=\"`mssql`\" pulumi-lang-java=\"`mssql`\"\u003e`mssql`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pgsql`\" pulumi-lang-dotnet=\"`Pgsql`\" pulumi-lang-go=\"`pgsql`\" pulumi-lang-python=\"`pgsql`\" pulumi-lang-yaml=\"`pgsql`\" pulumi-lang-java=\"`pgsql`\"\u003e`pgsql`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`redis`\" pulumi-lang-dotnet=\"`Redis`\" pulumi-lang-go=\"`redis`\" pulumi-lang-python=\"`redis`\" pulumi-lang-yaml=\"`redis`\" pulumi-lang-java=\"`redis`\"\u003e`redis`\u003c/span\u003e.\n"},"imageCategory":{"type":"string","description":"Host image. Valid values: `WindowsWithMssqlEntAlwaysonLicense`, `WindowsWithMssqlStdLicense`, `WindowsWithMssqlEntLicense`, `WindowsWithMssqlWebLicense`, `AliLinux`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"storageType":{"type":"string","description":"The storage type of the host ecs level info. Valid values: \u003cspan pulumi-lang-nodejs=\"`localSsd`\" pulumi-lang-dotnet=\"`LocalSsd`\" pulumi-lang-go=\"`localSsd`\" pulumi-lang-python=\"`local_ssd`\" pulumi-lang-yaml=\"`localSsd`\" pulumi-lang-java=\"`localSsd`\"\u003e`local_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd2`\" pulumi-lang-dotnet=\"`CloudEssd2`\" pulumi-lang-go=\"`cloudEssd2`\" pulumi-lang-python=\"`cloud_essd2`\" pulumi-lang-yaml=\"`cloudEssd2`\" pulumi-lang-java=\"`cloudEssd2`\"\u003e`cloud_essd2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd3`\" pulumi-lang-dotnet=\"`CloudEssd3`\" pulumi-lang-go=\"`cloudEssd3`\" pulumi-lang-python=\"`cloud_essd3`\" pulumi-lang-yaml=\"`cloudEssd3`\" pulumi-lang-java=\"`cloudEssd3`\"\u003e`cloud_essd3`\u003c/span\u003e.\n"},"zoneId":{"type":"string","description":"The ID of the zone in the region.\n"}},"type":"object","required":["dbType","storageType","zoneId"]},"outputs":{"description":"A collection of values returned by getHostEcsLevelInfos.\n","properties":{"dbType":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"imageCategory":{"type":"string"},"infos":{"items":{"$ref":"#/types/alicloud:cddc/getHostEcsLevelInfosInfo:getHostEcsLevelInfosInfo"},"type":"array"},"outputFile":{"type":"string"},"storageType":{"type":"string"},"zoneId":{"type":"string"}},"required":["dbType","infos","storageType","zoneId","id"],"type":"object"}},"alicloud:cddc/getZones:getZones":{"description":"This data source provides the Cddc Zones of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.147.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cddc.getZones({});\nexport const cddcZonesId1 = example.then(example =\u003e example.zones?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cddc.get_zones()\npulumi.export(\"cddcZonesId1\", example.zones[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cddc.GetZones.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cddcZonesId1\"] = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cddc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cddc.GetZones(ctx, \u0026cddc.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cddcZonesId1\", example.Zones[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cddc.CddcFunctions;\nimport com.pulumi.alicloud.cddc.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CddcFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        ctx.export(\"cddcZonesId1\", example.zones()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cddc:getZones\n      arguments: {}\noutputs:\n  cddcZonesId1: ${example.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"zones":{"items":{"$ref":"#/types/alicloud:cddc/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:cdn/getBlockedRegions:getBlockedRegions":{"description":"This data source provides the Cdn blocked regions.\n\n\u003e **NOTE:** Available in v1.173.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cdn.getBlockedRegions({\n    language: \"zh\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cdn.get_blocked_regions(language=\"zh\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cdn.GetBlockedRegions.Invoke(new()\n    {\n        Language = \"zh\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cdn.GetBlockedRegions(ctx, \u0026cdn.GetBlockedRegionsArgs{\n\t\t\tLanguage: \"zh\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cdn.CdnFunctions;\nimport com.pulumi.alicloud.cdn.inputs.GetBlockedRegionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CdnFunctions.getBlockedRegions(GetBlockedRegionsArgs.builder()\n            .language(\"zh\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cdn:getBlockedRegions\n      arguments:\n        language: zh\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBlockedRegions.\n","properties":{"language":{"type":"string","description":"The language. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`jp`\" pulumi-lang-dotnet=\"`Jp`\" pulumi-lang-go=\"`jp`\" pulumi-lang-python=\"`jp`\" pulumi-lang-yaml=\"`jp`\" pulumi-lang-java=\"`jp`\"\u003e`jp`\u003c/span\u003e.\n"}},"type":"object","required":["language"]},"outputs":{"description":"A collection of values returned by getBlockedRegions.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"language":{"type":"string"},"regions":{"items":{"$ref":"#/types/alicloud:cdn/getBlockedRegionsRegion:getBlockedRegionsRegion"},"type":"array"}},"required":["language","regions","id"],"type":"object"}},"alicloud:cdn/getIpInfo:getIpInfo":{"description":"This data source provides the function of verifying whether an IP is a CDN node.\n\n\u003e **NOTE:** Available in v1.153.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ipTest = alicloud.cdn.getIpInfo({\n    ip: \"114.114.114.114\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nip_test = alicloud.cdn.get_ip_info(ip=\"114.114.114.114\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ipTest = AliCloud.Cdn.GetIpInfo.Invoke(new()\n    {\n        Ip = \"114.114.114.114\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cdn.GetIpInfo(ctx, \u0026cdn.GetIpInfoArgs{\n\t\t\tIp: \"114.114.114.114\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cdn.CdnFunctions;\nimport com.pulumi.alicloud.cdn.inputs.GetIpInfoArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ipTest = CdnFunctions.getIpInfo(GetIpInfoArgs.builder()\n            .ip(\"114.114.114.114\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  ipTest:\n    fn::invoke:\n      function: alicloud:cdn:getIpInfo\n      arguments:\n        ip: 114.114.114.114\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpInfo.\n","properties":{"ip":{"type":"string","description":"Specify IP address.\n"}},"type":"object","required":["ip"]},"outputs":{"description":"A collection of values returned by getIpInfo.\n","properties":{"cdnIp":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ip":{"type":"string"},"isp":{"type":"string"},"ispEname":{"type":"string"},"region":{"type":"string"},"regionEname":{"type":"string"}},"required":["cdnIp","ip","isp","ispEname","region","regionEname","id"],"type":"object"}},"alicloud:cdn/getRealTimeLogDeliveries:getRealTimeLogDeliveries":{"description":"This data source provides the Cdn Real Time Log Deliveries of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.134.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cdn.getRealTimeLogDeliveries({\n    domain: \"example_value\",\n});\nexport const cdnRealTimeLogDelivery1 = example.then(example =\u003e example.deliveries?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cdn.get_real_time_log_deliveries(domain=\"example_value\")\npulumi.export(\"cdnRealTimeLogDelivery1\", example.deliveries[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cdn.GetRealTimeLogDeliveries.Invoke(new()\n    {\n        Domain = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cdnRealTimeLogDelivery1\"] = example.Apply(getRealTimeLogDeliveriesResult =\u003e getRealTimeLogDeliveriesResult.Deliveries[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cdn.GetRealTimeLogDeliveries(ctx, \u0026cdn.GetRealTimeLogDeliveriesArgs{\n\t\t\tDomain: \"example_value\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cdnRealTimeLogDelivery1\", example.Deliveries[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cdn.CdnFunctions;\nimport com.pulumi.alicloud.cdn.inputs.GetRealTimeLogDeliveriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CdnFunctions.getRealTimeLogDeliveries(GetRealTimeLogDeliveriesArgs.builder()\n            .domain(\"example_value\")\n            .build());\n\n        ctx.export(\"cdnRealTimeLogDelivery1\", example.deliveries()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cdn:getRealTimeLogDeliveries\n      arguments:\n        domain: example_value\noutputs:\n  cdnRealTimeLogDelivery1: ${example.deliveries[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRealTimeLogDeliveries.\n","properties":{"domain":{"type":"string"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the real-time log delivery feature. Valid Values: \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e.\n"}},"type":"object","required":["domain"]},"outputs":{"description":"A collection of values returned by getRealTimeLogDeliveries.\n","properties":{"deliveries":{"items":{"$ref":"#/types/alicloud:cdn/getRealTimeLogDeliveriesDelivery:getRealTimeLogDeliveriesDelivery"},"type":"array"},"domain":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["deliveries","domain","id"],"type":"object"}},"alicloud:cdn/getService:getService":{"description":"Using this data source can enable CDN service automatically. If the service has been enabled, it will return `Opened`.\n\nFor information about CDN and how to use it, see [What is CDN](https://www.alibabacloud.com/help/product/27099.htm).\n\n\u003e **NOTE:** Available since v1.98.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.cdn.getService({\n    enable: \"On\",\n    internetChargeType: \"PayByTraffic\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.cdn.get_service(enable=\"On\",\n    internet_charge_type=\"PayByTraffic\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Cdn.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n        InternetChargeType = \"PayByTraffic\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cdn.GetService(ctx, \u0026cdn.GetServiceArgs{\n\t\t\tEnable:             pulumi.StringRef(\"On\"),\n\t\t\tInternetChargeType: pulumi.StringRef(\"PayByTraffic\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cdn.CdnFunctions;\nimport com.pulumi.alicloud.cdn.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = CdnFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .internetChargeType(\"PayByTraffic\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:cdn:getService\n      arguments:\n        enable: On\n        internetChargeType: PayByTraffic\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Default value: `Off`. Valid values: `On`, `Off`.\n"},"internetChargeType":{"type":"string","description":"The new billing method. Valid values: `PayByTraffic` and `PayByBandwidth`. Default value: `PayByTraffic`.\nIt is required when `enable = on`. If the CDN service has been opened and you can update its internet charge type by modifying the filed \u003cspan pulumi-lang-nodejs=\"`internetChargeType`\" pulumi-lang-dotnet=\"`InternetChargeType`\" pulumi-lang-go=\"`internetChargeType`\" pulumi-lang-python=\"`internet_charge_type`\" pulumi-lang-yaml=\"`internetChargeType`\" pulumi-lang-java=\"`internetChargeType`\"\u003e`internet_charge_type`\u003c/span\u003e.\nAs a note, the updated internet charge type will be effective in the next day zero time.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the CDN service that means you have read and agreed the [CDN Terms of Service](https://help.aliyun.com/document_detail/27110.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"changingAffectTime":{"description":"The time when the metering method for the next cycle takes effect. The time is displayed in GMT.\n","type":"string"},"changingChargeType":{"description":"The metering method for the next cycle.\n","type":"string"},"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"internetChargeType":{"type":"string"},"openingTime":{"description":"The time when the CDN service was activated. The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mmZ format.\n","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["changingAffectTime","changingChargeType","openingTime","status","id"],"type":"object"}},"alicloud:cen/getBandwidthLimits:getBandwidthLimits":{"description":"This data source provides CEN Bandwidth Limits available to the user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst bwl = alicloud.cen.getBandwidthLimits({\n    instanceIds: [\"cen-id1\"],\n});\nexport const firstCenBandwidthLimitsLocalRegionId = bwl.then(bwl =\u003e bwl.limits?.[0]?.localRegionId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nbwl = alicloud.cen.get_bandwidth_limits(instance_ids=[\"cen-id1\"])\npulumi.export(\"firstCenBandwidthLimitsLocalRegionId\", bwl.limits[0].local_region_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var bwl = AliCloud.Cen.GetBandwidthLimits.Invoke(new()\n    {\n        InstanceIds = new[]\n        {\n            \"cen-id1\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstCenBandwidthLimitsLocalRegionId\"] = bwl.Apply(getBandwidthLimitsResult =\u003e getBandwidthLimitsResult.Limits[0]?.LocalRegionId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbwl, err := cen.GetBandwidthLimits(ctx, \u0026cen.GetBandwidthLimitsArgs{\n\t\t\tInstanceIds: []string{\n\t\t\t\t\"cen-id1\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstCenBandwidthLimitsLocalRegionId\", bwl.Limits[0].LocalRegionId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetBandwidthLimitsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var bwl = CenFunctions.getBandwidthLimits(GetBandwidthLimitsArgs.builder()\n            .instanceIds(\"cen-id1\")\n            .build());\n\n        ctx.export(\"firstCenBandwidthLimitsLocalRegionId\", bwl.limits()[0].localRegionId());\n    }\n}\n```\n```yaml\nvariables:\n  bwl:\n    fn::invoke:\n      function: alicloud:cen:getBandwidthLimits\n      arguments:\n        instanceIds:\n          - cen-id1\noutputs:\n  firstCenBandwidthLimitsLocalRegionId: ${bwl.limits[0].localRegionId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBandwidthLimits.\n","properties":{"instanceIds":{"type":"array","items":{"type":"string"},"description":"A list of CEN instances IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBandwidthLimits.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceIds":{"items":{"type":"string"},"type":"array"},"limits":{"description":"A list of CEN Bandwidth Limits. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getBandwidthLimitsLimit:getBandwidthLimitsLimit"},"type":"array"},"outputFile":{"type":"string"}},"required":["limits","id"],"type":"object"}},"alicloud:cen/getBandwidthPackages:getBandwidthPackages":{"description":"This data source provides CEN Bandwidth Packages available to the user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cen.getBandwidthPackages({\n    instanceId: \"cen-id1\",\n    nameRegex: \"^foo\",\n});\nexport const firstCenBandwidthPackageId = example.then(example =\u003e example.packages?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cen.get_bandwidth_packages(instance_id=\"cen-id1\",\n    name_regex=\"^foo\")\npulumi.export(\"firstCenBandwidthPackageId\", example.packages[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cen.GetBandwidthPackages.Invoke(new()\n    {\n        InstanceId = \"cen-id1\",\n        NameRegex = \"^foo\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstCenBandwidthPackageId\"] = example.Apply(getBandwidthPackagesResult =\u003e getBandwidthPackagesResult.Packages[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cen.GetBandwidthPackages(ctx, \u0026cen.GetBandwidthPackagesArgs{\n\t\t\tInstanceId: pulumi.StringRef(\"cen-id1\"),\n\t\t\tNameRegex:  pulumi.StringRef(\"^foo\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstCenBandwidthPackageId\", example.Packages[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetBandwidthPackagesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CenFunctions.getBandwidthPackages(GetBandwidthPackagesArgs.builder()\n            .instanceId(\"cen-id1\")\n            .nameRegex(\"^foo\")\n            .build());\n\n        ctx.export(\"firstCenBandwidthPackageId\", example.packages()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cen:getBandwidthPackages\n      arguments:\n        instanceId: cen-id1\n        nameRegex: ^foo\noutputs:\n  firstCenBandwidthPackageId: ${example.packages[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBandwidthPackages.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"Limit search to a list of specific CEN Bandwidth Package IDs.\n"},"includeReservationData":{"type":"boolean","description":"Indicates whether to include renewal data. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: Return renewal data in the response. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: Do not return renewal data in the response.\n"},"instanceId":{"type":"string","description":"ID of a CEN instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter CEN Bandwidth Package by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"Status of the CEN Bandwidth Package in CEN instance, Valid value: `Idle` and `InUse`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBandwidthPackages.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of specific CEN Bandwidth Package IDs.\n","items":{"type":"string"},"type":"array"},"includeReservationData":{"type":"boolean"},"instanceId":{"description":"The ID of the CEN instance that are associated with the bandwidth package.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"(Available in 1.98.0+) - A list of CEN Bandwidth Package Names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"packages":{"description":"A list of CEN bandwidth package. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getBandwidthPackagesPackage:getBandwidthPackagesPackage"},"type":"array"},"status":{"description":"Status of the CEN Bandwidth Package in CEN instance, including `Idle` and `InUse`.\n","type":"string"}},"required":["ids","names","packages","id"],"type":"object"}},"alicloud:cen/getChildInstanceRouteEntryToAttachments:getChildInstanceRouteEntryToAttachments":{"description":"This data source provides Cen Child Instance Route Entry To Attachment available to the user.[What is Child Instance Route Entry To Attachment](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-createcenchildinstancerouteentrytoattachment)\n\n\u003e **NOTE:** Available in 1.195.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cen.getChildInstanceRouteEntryToAttachments({\n    childInstanceRouteTableId: \"vtb-t4nt0z5xxbti85c78nkzy\",\n    transitRouterAttachmentId: \"tr-attach-f1fd1y50rql00emvej\",\n});\nexport const alicloudCenChildInstanceRouteEntryToAttachmentExampleId = _default.then(_default =\u003e _default.attachments?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cen.get_child_instance_route_entry_to_attachments(child_instance_route_table_id=\"vtb-t4nt0z5xxbti85c78nkzy\",\n    transit_router_attachment_id=\"tr-attach-f1fd1y50rql00emvej\")\npulumi.export(\"alicloudCenChildInstanceRouteEntryToAttachmentExampleId\", default.attachments[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Cen.GetChildInstanceRouteEntryToAttachments.Invoke(new()\n    {\n        ChildInstanceRouteTableId = \"vtb-t4nt0z5xxbti85c78nkzy\",\n        TransitRouterAttachmentId = \"tr-attach-f1fd1y50rql00emvej\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCenChildInstanceRouteEntryToAttachmentExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getChildInstanceRouteEntryToAttachmentsResult =\u003e getChildInstanceRouteEntryToAttachmentsResult.Attachments[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := cen.GetChildInstanceRouteEntryToAttachments(ctx, \u0026cen.GetChildInstanceRouteEntryToAttachmentsArgs{\n\t\t\tChildInstanceRouteTableId: \"vtb-t4nt0z5xxbti85c78nkzy\",\n\t\t\tTransitRouterAttachmentId: \"tr-attach-f1fd1y50rql00emvej\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudCenChildInstanceRouteEntryToAttachmentExampleId\", _default.Attachments[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetChildInstanceRouteEntryToAttachmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CenFunctions.getChildInstanceRouteEntryToAttachments(GetChildInstanceRouteEntryToAttachmentsArgs.builder()\n            .childInstanceRouteTableId(\"vtb-t4nt0z5xxbti85c78nkzy\")\n            .transitRouterAttachmentId(\"tr-attach-f1fd1y50rql00emvej\")\n            .build());\n\n        ctx.export(\"alicloudCenChildInstanceRouteEntryToAttachmentExampleId\", default_.attachments()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getChildInstanceRouteEntryToAttachments\n      arguments:\n        childInstanceRouteTableId: vtb-t4nt0z5xxbti85c78nkzy\n        transitRouterAttachmentId: tr-attach-f1fd1y50rql00emvej\noutputs:\n  alicloudCenChildInstanceRouteEntryToAttachmentExampleId: ${default.attachments[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getChildInstanceRouteEntryToAttachments.\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"childInstanceRouteTableId":{"type":"string","description":"The first ID of the resource\n"},"ids":{"type":"array","items":{"type":"string"},"description":"Limit search to a list of specific IDs.The value is formulated as `\u003ccen_id\u003e:\u003cchild_instance_route_table_id\u003e:\u003ctransit_router_attachment_id\u003e:\u003cdestination_cidr_block\u003e`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"serviceType":{"type":"string","description":"ServiceType\n"},"transitRouterAttachmentId":{"type":"string","description":"TransitRouterAttachmentId\n"}},"type":"object","required":["childInstanceRouteTableId","transitRouterAttachmentId"]},"outputs":{"description":"A collection of values returned by getChildInstanceRouteEntryToAttachments.\n","properties":{"attachments":{"description":"A list of Child Instance Route Entry To Attachment Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getChildInstanceRouteEntryToAttachmentsAttachment:getChildInstanceRouteEntryToAttachmentsAttachment"},"type":"array"},"cenId":{"description":"The ID of the CEN instance.\n","type":"string"},"childInstanceRouteTableId":{"description":"The first ID of the resource\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"Limit search to a list of specific IDs.The value is formulated as `\u003ccen_id\u003e:\u003cchild_instance_route_table_id\u003e:\u003ctransit_router_attachment_id\u003e:\u003cdestination_cidr_block\u003e`.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"serviceType":{"description":"ServiceType\n","type":"string"},"transitRouterAttachmentId":{"description":"TransitRouterAttachmentId\n","type":"string"}},"required":["attachments","childInstanceRouteTableId","ids","transitRouterAttachmentId","id"],"type":"object"}},"alicloud:cen/getFlowlogs:getFlowlogs":{"description":"This data source provides CEN flow logs available to the user.\n\n\u003e **NOTE:** Available since v1.78.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultc5kxyC = new alicloud.cen.Instance(\"defaultc5kxyC\", {cenInstanceName: name});\nconst defaultVw2U9u = new alicloud.cen.TransitRouter(\"defaultVw2U9u\", {cenId: defaultc5kxyC.id});\nconst defaultProject = new alicloud.log.Project(\"default\", {\n    projectName: `${name}-${defaultInteger.result}`,\n    description: \"terraform-example\",\n});\nconst defaultStore = new alicloud.log.Store(\"default\", {\n    projectName: defaultProject.projectName,\n    logstoreName: `${name}-${defaultInteger.result}`,\n    shardCount: 3,\n    autoSplit: true,\n    maxSplitShardCount: 60,\n    appendMeta: true,\n});\nconst defaultFlowLog = new alicloud.cen.FlowLog(\"default\", {\n    projectName: defaultStore.projectName,\n    flowLogName: `${name}-${defaultInteger.result}`,\n    logFormatString: \"${srcaddr}${dstaddr}${bytes}\",\n    cenId: defaultc5kxyC.id,\n    logStoreName: defaultStore.logstoreName,\n    interval: 600,\n    status: \"Active\",\n    transitRouterId: defaultVw2U9u.transitRouterId,\n    description: \"flowlog-resource-example-1\",\n});\nconst _default = alicloud.cen.getFlowlogsOutput({\n    ids: [defaultFlowLog.id],\n});\nexport const firstCenFlowlogId = _default.apply(_default =\u003e _default.flowlogs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefaultc5kxy_c = alicloud.cen.Instance(\"defaultc5kxyC\", cen_instance_name=name)\ndefault_vw2_u9u = alicloud.cen.TransitRouter(\"defaultVw2U9u\", cen_id=defaultc5kxy_c.id)\ndefault_project = alicloud.log.Project(\"default\",\n    project_name=f\"{name}-{default_integer['result']}\",\n    description=\"terraform-example\")\ndefault_store = alicloud.log.Store(\"default\",\n    project_name=default_project.project_name,\n    logstore_name=f\"{name}-{default_integer['result']}\",\n    shard_count=3,\n    auto_split=True,\n    max_split_shard_count=60,\n    append_meta=True)\ndefault_flow_log = alicloud.cen.FlowLog(\"default\",\n    project_name=default_store.project_name,\n    flow_log_name=f\"{name}-{default_integer['result']}\",\n    log_format_string=\"${srcaddr}${dstaddr}${bytes}\",\n    cen_id=defaultc5kxy_c.id,\n    log_store_name=default_store.logstore_name,\n    interval=600,\n    status=\"Active\",\n    transit_router_id=default_vw2_u9u.transit_router_id,\n    description=\"flowlog-resource-example-1\")\ndefault = alicloud.cen.get_flowlogs_output(ids=[default_flow_log.id])\npulumi.export(\"firstCenFlowlogId\", default.flowlogs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultc5kxyC = new AliCloud.Cen.Instance(\"defaultc5kxyC\", new()\n    {\n        CenInstanceName = name,\n    });\n\n    var defaultVw2U9u = new AliCloud.Cen.TransitRouter(\"defaultVw2U9u\", new()\n    {\n        CenId = defaultc5kxyC.Id,\n    });\n\n    var defaultProject = new AliCloud.Log.Project(\"default\", new()\n    {\n        ProjectName = $\"{name}-{defaultInteger.Result}\",\n        Description = \"terraform-example\",\n    });\n\n    var defaultStore = new AliCloud.Log.Store(\"default\", new()\n    {\n        ProjectName = defaultProject.ProjectName,\n        LogstoreName = $\"{name}-{defaultInteger.Result}\",\n        ShardCount = 3,\n        AutoSplit = true,\n        MaxSplitShardCount = 60,\n        AppendMeta = true,\n    });\n\n    var defaultFlowLog = new AliCloud.Cen.FlowLog(\"default\", new()\n    {\n        ProjectName = defaultStore.ProjectName,\n        FlowLogName = $\"{name}-{defaultInteger.Result}\",\n        LogFormatString = \"${srcaddr}${dstaddr}${bytes}\",\n        CenId = defaultc5kxyC.Id,\n        LogStoreName = defaultStore.LogstoreName,\n        Interval = 600,\n        Status = \"Active\",\n        TransitRouterId = defaultVw2U9u.TransitRouterId,\n        Description = \"flowlog-resource-example-1\",\n    });\n\n    var @default = AliCloud.Cen.GetFlowlogs.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultFlowLog.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstCenFlowlogId\"] = @default.Apply(@default =\u003e @default.Apply(getFlowlogsResult =\u003e getFlowlogsResult.Flowlogs[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"tf-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMin: 10000,\nMax: 99999,\n})\nif err != nil {\nreturn err\n}\ndefaultc5kxyC, err := cen.NewInstance(ctx, \"defaultc5kxyC\", \u0026cen.InstanceArgs{\nCenInstanceName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ndefaultVw2U9u, err := cen.NewTransitRouter(ctx, \"defaultVw2U9u\", \u0026cen.TransitRouterArgs{\nCenId: defaultc5kxyC.ID(),\n})\nif err != nil {\nreturn err\n}\ndefaultProject, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\nProjectName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nDescription: pulumi.String(\"terraform-example\"),\n})\nif err != nil {\nreturn err\n}\ndefaultStore, err := log.NewStore(ctx, \"default\", \u0026log.StoreArgs{\nProjectName: defaultProject.ProjectName,\nLogstoreName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nShardCount: pulumi.Int(3),\nAutoSplit: pulumi.Bool(true),\nMaxSplitShardCount: pulumi.Int(60),\nAppendMeta: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\ndefaultFlowLog, err := cen.NewFlowLog(ctx, \"default\", \u0026cen.FlowLogArgs{\nProjectName: defaultStore.ProjectName,\nFlowLogName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\nLogFormatString: pulumi.String(\"${srcaddr}${dstaddr}${bytes}\"),\nCenId: defaultc5kxyC.ID(),\nLogStoreName: defaultStore.LogstoreName,\nInterval: pulumi.Int(600),\nStatus: pulumi.String(\"Active\"),\nTransitRouterId: defaultVw2U9u.TransitRouterId,\nDescription: pulumi.String(\"flowlog-resource-example-1\"),\n})\nif err != nil {\nreturn err\n}\n_default := cen.GetFlowlogsOutput(ctx, cen.GetFlowlogsOutputArgs{\nIds: pulumi.StringArray{\ndefaultFlowLog.ID(),\n},\n}, nil);\nctx.Export(\"firstCenFlowlogId\", _default.ApplyT(func(_default cen.GetFlowlogsResult) (*string, error) {\nreturn \u0026default.Flowlogs[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.cen.FlowLog;\nimport com.pulumi.alicloud.cen.FlowLogArgs;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetFlowlogsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultc5kxyC = new Instance(\"defaultc5kxyC\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .build());\n\n        var defaultVw2U9u = new TransitRouter(\"defaultVw2U9u\", TransitRouterArgs.builder()\n            .cenId(defaultc5kxyC.id())\n            .build());\n\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .projectName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .description(\"terraform-example\")\n            .build());\n\n        var defaultStore = new Store(\"defaultStore\", StoreArgs.builder()\n            .projectName(defaultProject.projectName())\n            .logstoreName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .shardCount(3)\n            .autoSplit(true)\n            .maxSplitShardCount(60)\n            .appendMeta(true)\n            .build());\n\n        var defaultFlowLog = new FlowLog(\"defaultFlowLog\", FlowLogArgs.builder()\n            .projectName(defaultStore.projectName())\n            .flowLogName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .logFormatString(\"${srcaddr}${dstaddr}${bytes}\")\n            .cenId(defaultc5kxyC.id())\n            .logStoreName(defaultStore.logstoreName())\n            .interval(600)\n            .status(\"Active\")\n            .transitRouterId(defaultVw2U9u.transitRouterId())\n            .description(\"flowlog-resource-example-1\")\n            .build());\n\n        final var default = CenFunctions.getFlowlogs(GetFlowlogsArgs.builder()\n            .ids(defaultFlowLog.id())\n            .build());\n\n        ctx.export(\"firstCenFlowlogId\", default_.applyValue(_default_ -\u003e _default_.flowlogs()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultc5kxyC:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: ${name}\n  defaultVw2U9u:\n    type: alicloud:cen:TransitRouter\n    properties:\n      cenId: ${defaultc5kxyC.id}\n  defaultProject:\n    type: alicloud:log:Project\n    name: default\n    properties:\n      projectName: ${name}-${defaultInteger.result}\n      description: terraform-example\n  defaultStore:\n    type: alicloud:log:Store\n    name: default\n    properties:\n      projectName: ${defaultProject.projectName}\n      logstoreName: ${name}-${defaultInteger.result}\n      shardCount: 3\n      autoSplit: true\n      maxSplitShardCount: 60\n      appendMeta: true\n  defaultFlowLog:\n    type: alicloud:cen:FlowLog\n    name: default\n    properties:\n      projectName: ${defaultStore.projectName}\n      flowLogName: ${name}-${defaultInteger.result}\n      logFormatString: $${srcaddr}$${dstaddr}$${bytes}\n      cenId: ${defaultc5kxyC.id}\n      logStoreName: ${defaultStore.logstoreName}\n      interval: '600'\n      status: Active\n      transitRouterId: ${defaultVw2U9u.transitRouterId}\n      description: flowlog-resource-example-1\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getFlowlogs\n      arguments:\n        ids:\n          - ${defaultFlowLog.id}\noutputs:\n  firstCenFlowlogId: ${default.flowlogs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFlowlogs.\n","properties":{"cenId":{"type":"string","description":"The ID of Cen instance.\n"},"description":{"type":"string","description":"The description of the flowlog.\n"},"flowLogId":{"type":"string","description":"The ID of FlowLog.\n"},"flowLogName":{"type":"string","description":"The name of the flowlog.\n"},"flowLogVersion":{"type":"string","description":"Flowlog Version.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Flow Log IDs.\n"},"interval":{"type":"integer","description":"The duration of the capture window for the flow log to capture traffic. Unit: seconds. Valid values: **60** or **600 * *. Default value: **600 * *.\n"},"logStoreName":{"type":"string","description":"The LogStore that stores the flowlog.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer","description":"Current page number.\n"},"pageSize":{"type":"integer","description":"Number of records per page.\n"},"projectName":{"type":"string","description":"The Project that stores the flowlog.\n"},"regionId":{"type":"string","description":"Region id\n"},"status":{"type":"string","description":"The status of the flow log. Valid values:-**Active**: started.-**InActive**: not started.\n"},"transitRouterId":{"type":"string","description":"Transit Router ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getFlowlogs.\n","properties":{"cenId":{"description":"The ID of Cen instance.\n","type":"string"},"description":{"description":"The description of the flowlog.\n","type":"string"},"flowLogId":{"description":"The ID of FlowLog.\n","type":"string"},"flowLogName":{"description":"The name of the flowlog.\n","type":"string"},"flowLogVersion":{"description":"(Available since v1.236.0) Flowlog Version.\n","type":"string"},"flowlogs":{"description":"A list of Flow Log Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getFlowlogsFlowlog:getFlowlogsFlowlog"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Flow Log IDs.\n","items":{"type":"string"},"type":"array"},"interval":{"description":"(Available since v1.236.0) The duration of the capture window for the flow log to capture traffic. Unit: seconds. Valid values: **60** or **600 * *. Default value: **600 * *.\n","type":"integer"},"logStoreName":{"description":"The LogStore that stores the flowlog.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Flow Logs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"projectName":{"description":"The Project that stores the flowlog.\n","type":"string"},"regionId":{"description":"(Available since v1.236.0) Region Id.\n","type":"string"},"status":{"description":"The status of the flow log. Valid values:-**Active**: started.-**InActive**: not started.\n","type":"string"},"transitRouterId":{"description":"(Available since v1.236.0) Transit Router ID.\n","type":"string"}},"required":["flowlogs","ids","names","id"],"type":"object"}},"alicloud:cen/getInstanceAttachments:getInstanceAttachments":{"description":"This data source provides Cen Instance Attachments of the current Alibaba Cloud User.\n\n\u003e **NOTE:** Available in v1.97.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cen.getInstanceAttachments({\n    instanceId: \"cen-o40h17ll9w********\",\n});\nexport const theFirstAttachmentedInstanceId = example.then(example =\u003e example.attachments?.[0]?.childInstanceId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cen.get_instance_attachments(instance_id=\"cen-o40h17ll9w********\")\npulumi.export(\"theFirstAttachmentedInstanceId\", example.attachments[0].child_instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cen.GetInstanceAttachments.Invoke(new()\n    {\n        InstanceId = \"cen-o40h17ll9w********\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"theFirstAttachmentedInstanceId\"] = example.Apply(getInstanceAttachmentsResult =\u003e getInstanceAttachmentsResult.Attachments[0]?.ChildInstanceId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cen.GetInstanceAttachments(ctx, \u0026cen.GetInstanceAttachmentsArgs{\n\t\t\tInstanceId: \"cen-o40h17ll9w********\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"theFirstAttachmentedInstanceId\", example.Attachments[0].ChildInstanceId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetInstanceAttachmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CenFunctions.getInstanceAttachments(GetInstanceAttachmentsArgs.builder()\n            .instanceId(\"cen-o40h17ll9w********\")\n            .build());\n\n        ctx.export(\"theFirstAttachmentedInstanceId\", example.attachments()[0].childInstanceId());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cen:getInstanceAttachments\n      arguments:\n        instanceId: cen-o40h17ll9w********\noutputs:\n  theFirstAttachmentedInstanceId: ${example.attachments[0].childInstanceId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceAttachments.\n","properties":{"childInstanceRegionId":{"type":"string","description":"The region to which the network to be queried belongs.\n"},"childInstanceType":{"type":"string","description":"The type of the associated network. Valid values: `VPC`, `VBR` and `CCN`.\n"},"instanceId":{"type":"string","description":"The ID of the CEN instance.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the Cen Child Instance Attachment. Valid value: `Attaching`, `Attached` and `Aetaching`.\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getInstanceAttachments.\n","properties":{"attachments":{"description":"A list of CEN Instance Attachments. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getInstanceAttachmentsAttachment:getInstanceAttachmentsAttachment"},"type":"array"},"childInstanceRegionId":{"description":"The ID of the region to which the network belongs.\n","type":"string"},"childInstanceType":{"description":"The type of the associated network.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of CEN Instance Attachment IDs.\n","items":{"type":"string"},"type":"array"},"instanceId":{"description":"The ID of the CEN instance.\n","type":"string"},"outputFile":{"type":"string"},"status":{"description":"The status of the network.\n","type":"string"}},"required":["attachments","ids","instanceId","id"],"type":"object"}},"alicloud:cen/getInstances:getInstances":{"description":"This data source provides CEN instances available to the user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst cenInstancesDs = alicloud.cen.getInstances({\n    ids: [\"cen-id1\"],\n    nameRegex: \"^foo\",\n});\nexport const firstCenInstanceId = cenInstancesDs.then(cenInstancesDs =\u003e cenInstancesDs.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ncen_instances_ds = alicloud.cen.get_instances(ids=[\"cen-id1\"],\n    name_regex=\"^foo\")\npulumi.export(\"firstCenInstanceId\", cen_instances_ds.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var cenInstancesDs = AliCloud.Cen.GetInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"cen-id1\",\n        },\n        NameRegex = \"^foo\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstCenInstanceId\"] = cenInstancesDs.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcenInstancesDs, err := cen.GetInstances(ctx, \u0026cen.GetInstancesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"cen-id1\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"^foo\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstCenInstanceId\", cenInstancesDs.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var cenInstancesDs = CenFunctions.getInstances(GetInstancesArgs.builder()\n            .ids(\"cen-id1\")\n            .nameRegex(\"^foo\")\n            .build());\n\n        ctx.export(\"firstCenInstanceId\", cenInstancesDs.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  cenInstancesDs:\n    fn::invoke:\n      function: alicloud:cen:getInstances\n      arguments:\n        ids:\n          - cen-id1\n        nameRegex: ^foo\noutputs:\n  firstCenInstanceId: ${cenInstancesDs.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of CEN instances IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter CEN instances by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of CEN instance. Valid value: `Active`, `Creating` and `Deleting`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of CEN instances IDs.\n","items":{"type":"string"},"type":"array"},"instances":{"description":"A list of CEN instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of CEN instances names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"Status of the CEN instance, including \"Creating\", \"Active\" and \"Deleting\".\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A map of tags assigned to the Cen Instance.\n","type":"object"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:cen/getInterRegionTrafficQosPolicies:getInterRegionTrafficQosPolicies":{"description":"This data source provides the Cen Inter Region Traffic Qos Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.195.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cen.getInterRegionTrafficQosPolicies({\n    ids: [\"example_id\"],\n    transitRouterId: \"your_transit_router_id\",\n    transitRouterAttachmentId: \"your_transit_router_attachment_id\",\n});\nexport const cenInterRegionTrafficQosPolicyId0 = ids.then(ids =\u003e ids.policies?.[0]?.id);\nconst nameRegex = alicloud.cen.getInterRegionTrafficQosPolicies({\n    nameRegex: \"^my-name\",\n    transitRouterId: \"your_transit_router_id\",\n    transitRouterAttachmentId: \"your_transit_router_attachment_id\",\n});\nexport const cenInterRegionTrafficQosPolicyId1 = nameRegex.then(nameRegex =\u003e nameRegex.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cen.get_inter_region_traffic_qos_policies(ids=[\"example_id\"],\n    transit_router_id=\"your_transit_router_id\",\n    transit_router_attachment_id=\"your_transit_router_attachment_id\")\npulumi.export(\"cenInterRegionTrafficQosPolicyId0\", ids.policies[0].id)\nname_regex = alicloud.cen.get_inter_region_traffic_qos_policies(name_regex=\"^my-name\",\n    transit_router_id=\"your_transit_router_id\",\n    transit_router_attachment_id=\"your_transit_router_attachment_id\")\npulumi.export(\"cenInterRegionTrafficQosPolicyId1\", name_regex.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cen.GetInterRegionTrafficQosPolicies.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        TransitRouterId = \"your_transit_router_id\",\n        TransitRouterAttachmentId = \"your_transit_router_attachment_id\",\n    });\n\n    var nameRegex = AliCloud.Cen.GetInterRegionTrafficQosPolicies.Invoke(new()\n    {\n        NameRegex = \"^my-name\",\n        TransitRouterId = \"your_transit_router_id\",\n        TransitRouterAttachmentId = \"your_transit_router_attachment_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cenInterRegionTrafficQosPolicyId0\"] = ids.Apply(getInterRegionTrafficQosPoliciesResult =\u003e getInterRegionTrafficQosPoliciesResult.Policies[0]?.Id),\n        [\"cenInterRegionTrafficQosPolicyId1\"] = nameRegex.Apply(getInterRegionTrafficQosPoliciesResult =\u003e getInterRegionTrafficQosPoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cen.GetInterRegionTrafficQosPolicies(ctx, \u0026cen.GetInterRegionTrafficQosPoliciesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tTransitRouterId:           \"your_transit_router_id\",\n\t\t\tTransitRouterAttachmentId: \"your_transit_router_attachment_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cenInterRegionTrafficQosPolicyId0\", ids.Policies[0].Id)\n\t\tnameRegex, err := cen.GetInterRegionTrafficQosPolicies(ctx, \u0026cen.GetInterRegionTrafficQosPoliciesArgs{\n\t\t\tNameRegex:                 pulumi.StringRef(\"^my-name\"),\n\t\t\tTransitRouterId:           \"your_transit_router_id\",\n\t\t\tTransitRouterAttachmentId: \"your_transit_router_attachment_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cenInterRegionTrafficQosPolicyId1\", nameRegex.Policies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetInterRegionTrafficQosPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CenFunctions.getInterRegionTrafficQosPolicies(GetInterRegionTrafficQosPoliciesArgs.builder()\n            .ids(\"example_id\")\n            .transitRouterId(\"your_transit_router_id\")\n            .transitRouterAttachmentId(\"your_transit_router_attachment_id\")\n            .build());\n\n        ctx.export(\"cenInterRegionTrafficQosPolicyId0\", ids.policies()[0].id());\n        final var nameRegex = CenFunctions.getInterRegionTrafficQosPolicies(GetInterRegionTrafficQosPoliciesArgs.builder()\n            .nameRegex(\"^my-name\")\n            .transitRouterId(\"your_transit_router_id\")\n            .transitRouterAttachmentId(\"your_transit_router_attachment_id\")\n            .build());\n\n        ctx.export(\"cenInterRegionTrafficQosPolicyId1\", nameRegex.policies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cen:getInterRegionTrafficQosPolicies\n      arguments:\n        ids:\n          - example_id\n        transitRouterId: your_transit_router_id\n        transitRouterAttachmentId: your_transit_router_attachment_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cen:getInterRegionTrafficQosPolicies\n      arguments:\n        nameRegex: ^my-name\n        transitRouterId: your_transit_router_id\n        transitRouterAttachmentId: your_transit_router_attachment_id\noutputs:\n  cenInterRegionTrafficQosPolicyId0: ${ids.policies[0].id}\n  cenInterRegionTrafficQosPolicyId1: ${nameRegex.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInterRegionTrafficQosPolicies.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Inter Region Traffic Qos Policy IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Inter Region Traffic Qos Policy name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the traffic scheduling policy. Valid Value: `Creating`, `Active`, `Modifying`, `Deleting`, `Deleted`.\n"},"trafficQosPolicyDescription":{"type":"string","description":"The description of the QoS policy.\n"},"trafficQosPolicyId":{"type":"string","description":"The ID of the QoS policy.\n"},"trafficQosPolicyName":{"type":"string","description":"The name of the QoS policy.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the inter-region connection.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"}},"type":"object","required":["transitRouterAttachmentId","transitRouterId"]},"outputs":{"description":"A collection of values returned by getInterRegionTrafficQosPolicies.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Inter Region Traffic Qos Policy names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policies":{"description":"A list of Cen Inter Region Traffic Qos Policies. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getInterRegionTrafficQosPoliciesPolicy:getInterRegionTrafficQosPoliciesPolicy"},"type":"array"},"status":{"description":"The status of the Inter Region Traffic Qos Policy.\n","type":"string"},"trafficQosPolicyDescription":{"type":"string"},"trafficQosPolicyId":{"type":"string"},"trafficQosPolicyName":{"type":"string"},"transitRouterAttachmentId":{"description":"The ID of the inter-region connection.\n","type":"string"},"transitRouterId":{"description":"The ID of the transit router.\n","type":"string"}},"required":["ids","names","policies","transitRouterAttachmentId","transitRouterId","id"],"type":"object"}},"alicloud:cen/getInterRegionTrafficQosQueues:getInterRegionTrafficQosQueues":{"description":"This data source provides Cen Inter Region Traffic Qos Queue available to the user.\n\n\u003e **NOTE:** Available in 1.195.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cen.getInterRegionTrafficQosQueues({\n    ids: [defaultAlicloudCenInterRegionTrafficQosQueue.id],\n    nameRegex: defaultAlicloudCenInterRegionTrafficQosQueue.name,\n    trafficQosPolicyId: \"qos-xxxxxxx\",\n});\nexport const alicloudCenInterRegionTrafficQosQueueExampleId = _default.then(_default =\u003e _default.queues?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cen.get_inter_region_traffic_qos_queues(ids=[default_alicloud_cen_inter_region_traffic_qos_queue[\"id\"]],\n    name_regex=default_alicloud_cen_inter_region_traffic_qos_queue[\"name\"],\n    traffic_qos_policy_id=\"qos-xxxxxxx\")\npulumi.export(\"alicloudCenInterRegionTrafficQosQueueExampleId\", default.queues[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Cen.GetInterRegionTrafficQosQueues.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudCenInterRegionTrafficQosQueue.Id,\n        },\n        NameRegex = defaultAlicloudCenInterRegionTrafficQosQueue.Name,\n        TrafficQosPolicyId = \"qos-xxxxxxx\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCenInterRegionTrafficQosQueueExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getInterRegionTrafficQosQueuesResult =\u003e getInterRegionTrafficQosQueuesResult.Queues[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := cen.GetInterRegionTrafficQosQueues(ctx, \u0026cen.GetInterRegionTrafficQosQueuesArgs{\nIds: interface{}{\ndefaultAlicloudCenInterRegionTrafficQosQueue.Id,\n},\nNameRegex: pulumi.StringRef(defaultAlicloudCenInterRegionTrafficQosQueue.Name),\nTrafficQosPolicyId: \"qos-xxxxxxx\",\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudCenInterRegionTrafficQosQueueExampleId\", _default.Queues[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetInterRegionTrafficQosQueuesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CenFunctions.getInterRegionTrafficQosQueues(GetInterRegionTrafficQosQueuesArgs.builder()\n            .ids(defaultAlicloudCenInterRegionTrafficQosQueue.id())\n            .nameRegex(defaultAlicloudCenInterRegionTrafficQosQueue.name())\n            .trafficQosPolicyId(\"qos-xxxxxxx\")\n            .build());\n\n        ctx.export(\"alicloudCenInterRegionTrafficQosQueueExampleId\", default_.queues()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getInterRegionTrafficQosQueues\n      arguments:\n        ids:\n          - ${defaultAlicloudCenInterRegionTrafficQosQueue.id}\n        nameRegex: ${defaultAlicloudCenInterRegionTrafficQosQueue.name}\n        trafficQosPolicyId: qos-xxxxxxx\noutputs:\n  alicloudCenInterRegionTrafficQosQueueExampleId: ${default.queues[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInterRegionTrafficQosQueues.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Inter Region Traffic Qos Queue IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"trafficQosPolicyId":{"type":"string","description":"The ID of the traffic scheduling policy.\n"}},"type":"object","required":["trafficQosPolicyId"]},"outputs":{"description":"A collection of values returned by getInterRegionTrafficQosQueues.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Inter Region Traffic Qos Queue IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Inter Region Traffic Qos Queues.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"queues":{"description":"A list of Inter Region Traffic Qos Queue Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getInterRegionTrafficQosQueuesQueue:getInterRegionTrafficQosQueuesQueue"},"type":"array"},"trafficQosPolicyId":{"description":"The ID of the traffic scheduling policy.\n","type":"string"}},"required":["ids","names","queues","trafficQosPolicyId","id"],"type":"object"}},"alicloud:cen/getPrivateZones:getPrivateZones":{"description":"This data source provides CEN Private Zones available to the user.\n\n\u003e **NOTE:** Available in v1.88.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _this = alicloud.cen.getPrivateZones({\n    cenId: \"cen-o40h17ll9w********\",\n    ids: [\"cn-hangzhou\"],\n    status: \"Active\",\n});\nexport const firstCenPrivateZonesId = _this.then(_this =\u003e _this.zones?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nthis = alicloud.cen.get_private_zones(cen_id=\"cen-o40h17ll9w********\",\n    ids=[\"cn-hangzhou\"],\n    status=\"Active\")\npulumi.export(\"firstCenPrivateZonesId\", this.zones[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = AliCloud.Cen.GetPrivateZones.Invoke(new()\n    {\n        CenId = \"cen-o40h17ll9w********\",\n        Ids = new[]\n        {\n            \"cn-hangzhou\",\n        },\n        Status = \"Active\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstCenPrivateZonesId\"] = @this.Apply(@this =\u003e @this.Apply(getPrivateZonesResult =\u003e getPrivateZonesResult.Zones[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := cen.GetPrivateZones(ctx, \u0026cen.GetPrivateZonesArgs{\n\t\t\tCenId: \"cen-o40h17ll9w********\",\n\t\t\tIds: []string{\n\t\t\t\t\"cn-hangzhou\",\n\t\t\t},\n\t\t\tStatus: pulumi.StringRef(\"Active\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstCenPrivateZonesId\", this.Zones[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetPrivateZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var this = CenFunctions.getPrivateZones(GetPrivateZonesArgs.builder()\n            .cenId(\"cen-o40h17ll9w********\")\n            .ids(\"cn-hangzhou\")\n            .status(\"Active\")\n            .build());\n\n        ctx.export(\"firstCenPrivateZonesId\", this_.zones()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  this:\n    fn::invoke:\n      function: alicloud:cen:getPrivateZones\n      arguments:\n        cenId: cen-o40h17ll9w********\n        ids:\n          - cn-hangzhou\n        status: Active\noutputs:\n  firstCenPrivateZonesId: ${this.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrivateZones.\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"hostRegionId":{"type":"string","description":"The service region. The service region is the target region of the PrivateZone service accessed through CEN.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of CEN private zone IDs. Each element format as `\u003ccen_id\u003e:\u003caccess_region_id\u003e`. \n**NOTE:** Before 1.162.0, each element same as \u003cspan pulumi-lang-nodejs=\"`accessRegionId`\" pulumi-lang-dotnet=\"`AccessRegionId`\" pulumi-lang-go=\"`accessRegionId`\" pulumi-lang-python=\"`access_region_id`\" pulumi-lang-yaml=\"`accessRegionId`\" pulumi-lang-java=\"`accessRegionId`\"\u003e`access_region_id`\u003c/span\u003e.\n* \u003cspan pulumi-lang-nodejs=\"`hostRegionId \" pulumi-lang-dotnet=\"`HostRegionId \" pulumi-lang-go=\"`hostRegionId \" pulumi-lang-python=\"`host_region_id \" pulumi-lang-yaml=\"`hostRegionId \" pulumi-lang-java=\"`hostRegionId \"\u003e`host_region_id \u003c/span\u003e` - (Optional) The service region is the target region of the PrivateZone service accessed through CEN.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the PrivateZone service, including `Creating`, `Active` and `Deleting`.\n"}},"type":"object","required":["cenId"]},"outputs":{"description":"A collection of values returned by getPrivateZones.\n","properties":{"cenId":{"description":"The ID of the CEN instance.\n","type":"string"},"hostRegionId":{"description":"The service region. The service region is the target region of the PrivateZone service accessed through CEN.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of CEN private zone IDs. Each element format as `\u003ccen_id\u003e:\u003caccess_region_id\u003e`.\n**NOTE:** Before 1.162.0, each element same as \u003cspan pulumi-lang-nodejs=\"`accessRegionId`\" pulumi-lang-dotnet=\"`AccessRegionId`\" pulumi-lang-go=\"`accessRegionId`\" pulumi-lang-python=\"`access_region_id`\" pulumi-lang-yaml=\"`accessRegionId`\" pulumi-lang-java=\"`accessRegionId`\"\u003e`access_region_id`\u003c/span\u003e.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the PrivateZone service.\n","type":"string"},"zones":{"description":"A list of CEN private zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getPrivateZonesZone:getPrivateZonesZone"},"type":"array"}},"required":["cenId","ids","zones","id"],"type":"object"}},"alicloud:cen/getRegionRouteEntries:getRegionRouteEntries":{"description":"This data source provides CEN Regional Route Entries available to the user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst entry = alicloud.cen.getRegionRouteEntries({\n    instanceId: \"cen-id1\",\n    regionId: \"cn-beijing\",\n});\nexport const firstRegionRouteEntriesRouteEntryCidrBlock = entry.then(entry =\u003e entry.entries?.[0]?.cidrBlock);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nentry = alicloud.cen.get_region_route_entries(instance_id=\"cen-id1\",\n    region_id=\"cn-beijing\")\npulumi.export(\"firstRegionRouteEntriesRouteEntryCidrBlock\", entry.entries[0].cidr_block)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var entry = AliCloud.Cen.GetRegionRouteEntries.Invoke(new()\n    {\n        InstanceId = \"cen-id1\",\n        RegionId = \"cn-beijing\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRegionRouteEntriesRouteEntryCidrBlock\"] = entry.Apply(getRegionRouteEntriesResult =\u003e getRegionRouteEntriesResult.Entries[0]?.CidrBlock),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tentry, err := cen.GetRegionRouteEntries(ctx, \u0026cen.GetRegionRouteEntriesArgs{\n\t\t\tInstanceId: \"cen-id1\",\n\t\t\tRegionId:   \"cn-beijing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRegionRouteEntriesRouteEntryCidrBlock\", entry.Entries[0].CidrBlock)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetRegionRouteEntriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var entry = CenFunctions.getRegionRouteEntries(GetRegionRouteEntriesArgs.builder()\n            .instanceId(\"cen-id1\")\n            .regionId(\"cn-beijing\")\n            .build());\n\n        ctx.export(\"firstRegionRouteEntriesRouteEntryCidrBlock\", entry.entries()[0].cidrBlock());\n    }\n}\n```\n```yaml\nvariables:\n  entry:\n    fn::invoke:\n      function: alicloud:cen:getRegionRouteEntries\n      arguments:\n        instanceId: cen-id1\n        regionId: cn-beijing\noutputs:\n  firstRegionRouteEntriesRouteEntryCidrBlock: ${entry.entries[0].cidrBlock}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRegionRouteEntries.\n","properties":{"instanceId":{"type":"string","description":"ID of the CEN instance.\n"},"outputFile":{"type":"string"},"regionId":{"type":"string","description":"ID of the region.\n"}},"type":"object","required":["instanceId","regionId"]},"outputs":{"description":"A collection of values returned by getRegionRouteEntries.\n","properties":{"entries":{"description":"A list of CEN Route Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getRegionRouteEntriesEntry:getRegionRouteEntriesEntry"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceId":{"type":"string"},"outputFile":{"type":"string"},"regionId":{"type":"string"}},"required":["entries","instanceId","regionId","id"],"type":"object"}},"alicloud:cen/getRouteEntries:getRouteEntries":{"description":"This data source provides CEN Route Entries available to the user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst entry = alicloud.cen.getRouteEntries({\n    instanceId: \"cen-id1\",\n    routeTableId: \"vtb-id1\",\n});\nexport const firstRouteEntriesRouteEntryCidrBlock = entry.then(entry =\u003e entry.entries?.[0]?.cidrBlock);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nentry = alicloud.cen.get_route_entries(instance_id=\"cen-id1\",\n    route_table_id=\"vtb-id1\")\npulumi.export(\"firstRouteEntriesRouteEntryCidrBlock\", entry.entries[0].cidr_block)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var entry = AliCloud.Cen.GetRouteEntries.Invoke(new()\n    {\n        InstanceId = \"cen-id1\",\n        RouteTableId = \"vtb-id1\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRouteEntriesRouteEntryCidrBlock\"] = entry.Apply(getRouteEntriesResult =\u003e getRouteEntriesResult.Entries[0]?.CidrBlock),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tentry, err := cen.GetRouteEntries(ctx, \u0026cen.GetRouteEntriesArgs{\n\t\t\tInstanceId:   \"cen-id1\",\n\t\t\tRouteTableId: \"vtb-id1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRouteEntriesRouteEntryCidrBlock\", entry.Entries[0].CidrBlock)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetRouteEntriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var entry = CenFunctions.getRouteEntries(GetRouteEntriesArgs.builder()\n            .instanceId(\"cen-id1\")\n            .routeTableId(\"vtb-id1\")\n            .build());\n\n        ctx.export(\"firstRouteEntriesRouteEntryCidrBlock\", entry.entries()[0].cidrBlock());\n    }\n}\n```\n```yaml\nvariables:\n  entry:\n    fn::invoke:\n      function: alicloud:cen:getRouteEntries\n      arguments:\n        instanceId: cen-id1\n        routeTableId: vtb-id1\noutputs:\n  firstRouteEntriesRouteEntryCidrBlock: ${entry.entries[0].cidrBlock}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRouteEntries.\n","properties":{"cidrBlock":{"type":"string","description":"The destination CIDR block of the route entry to query.\n"},"instanceId":{"type":"string","description":"ID of the CEN instance.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"routeTableId":{"type":"string","description":"ID of the route table of the VPC or VBR.\n"}},"type":"object","required":["instanceId","routeTableId"]},"outputs":{"description":"A collection of values returned by getRouteEntries.\n","properties":{"cidrBlock":{"description":"The destination CIDR block of the conflicted route entry.\n","type":"string"},"entries":{"description":"A list of CEN Route Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getRouteEntriesEntry:getRouteEntriesEntry"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceId":{"description":"ID of the CEN child instance.\n","type":"string"},"outputFile":{"type":"string"},"routeTableId":{"description":"ID of the route table.\n","type":"string"}},"required":["entries","instanceId","routeTableId","id"],"type":"object"}},"alicloud:cen/getRouteMaps:getRouteMaps":{"description":"This data source provides CEN Route Maps available to the user.\n\n\u003e **NOTE:** Available in v1.87.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _this = alicloud.cen.getRouteMaps({\n    cenId: \"cen-ihdlgo87ai********\",\n    ids: [\"cen-ihdlgo87ai:cenrmap-bnh97kb3mn********\"],\n    descriptionRegex: \"datasource_test\",\n    cenRegionId: \"cn-hangzhou\",\n    transmitDirection: \"RegionIn\",\n    status: \"Active\",\n});\nexport const firstCenRouteMapId = _this.then(_this =\u003e _this.maps?.[0]?.routeMapId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nthis = alicloud.cen.get_route_maps(cen_id=\"cen-ihdlgo87ai********\",\n    ids=[\"cen-ihdlgo87ai:cenrmap-bnh97kb3mn********\"],\n    description_regex=\"datasource_test\",\n    cen_region_id=\"cn-hangzhou\",\n    transmit_direction=\"RegionIn\",\n    status=\"Active\")\npulumi.export(\"firstCenRouteMapId\", this.maps[0].route_map_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = AliCloud.Cen.GetRouteMaps.Invoke(new()\n    {\n        CenId = \"cen-ihdlgo87ai********\",\n        Ids = new[]\n        {\n            \"cen-ihdlgo87ai:cenrmap-bnh97kb3mn********\",\n        },\n        DescriptionRegex = \"datasource_test\",\n        CenRegionId = \"cn-hangzhou\",\n        TransmitDirection = \"RegionIn\",\n        Status = \"Active\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstCenRouteMapId\"] = @this.Apply(@this =\u003e @this.Apply(getRouteMapsResult =\u003e getRouteMapsResult.Maps[0]?.RouteMapId)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := cen.GetRouteMaps(ctx, \u0026cen.GetRouteMapsArgs{\n\t\t\tCenId: \"cen-ihdlgo87ai********\",\n\t\t\tIds: []string{\n\t\t\t\t\"cen-ihdlgo87ai:cenrmap-bnh97kb3mn********\",\n\t\t\t},\n\t\t\tDescriptionRegex:  pulumi.StringRef(\"datasource_test\"),\n\t\t\tCenRegionId:       pulumi.StringRef(\"cn-hangzhou\"),\n\t\t\tTransmitDirection: pulumi.StringRef(\"RegionIn\"),\n\t\t\tStatus:            pulumi.StringRef(\"Active\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstCenRouteMapId\", this.Maps[0].RouteMapId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetRouteMapsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var this = CenFunctions.getRouteMaps(GetRouteMapsArgs.builder()\n            .cenId(\"cen-ihdlgo87ai********\")\n            .ids(\"cen-ihdlgo87ai:cenrmap-bnh97kb3mn********\")\n            .descriptionRegex(\"datasource_test\")\n            .cenRegionId(\"cn-hangzhou\")\n            .transmitDirection(\"RegionIn\")\n            .status(\"Active\")\n            .build());\n\n        ctx.export(\"firstCenRouteMapId\", this_.maps()[0].routeMapId());\n    }\n}\n```\n```yaml\nvariables:\n  this:\n    fn::invoke:\n      function: alicloud:cen:getRouteMaps\n      arguments:\n        cenId: cen-ihdlgo87ai********\n        ids:\n          - cen-ihdlgo87ai:cenrmap-bnh97kb3mn********\n        descriptionRegex: datasource_test\n        cenRegionId: cn-hangzhou\n        transmitDirection: RegionIn\n        status: Active\noutputs:\n  firstCenRouteMapId: ${this.maps[0].routeMapId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRouteMaps.\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"cenRegionId":{"type":"string","description":"The ID of the region to which the CEN instance belongs.\n"},"descriptionRegex":{"type":"string","description":"A regex string to filter CEN route map by description.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of CEN route map IDs. Each item formats as `\u003ccen_id\u003e:\u003croute_map_id\u003e`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the route map, including `Creating`, `Active` and `Deleting`.\n"},"transmitDirection":{"type":"string","description":"The direction in which the route map is applied, including `RegionIn` and `RegionOut`.\n"}},"type":"object","required":["cenId"]},"outputs":{"description":"A collection of values returned by getRouteMaps.\n","properties":{"cenId":{"description":"The ID of the CEN instance.\n","type":"string"},"cenRegionId":{"description":"The ID of the region to which the CEN instance belongs.\n","type":"string"},"descriptionRegex":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of CEN route map IDs. Each item formats as `\u003ccen_id\u003e:\u003croute_map_id\u003e`. Before 1.161.0, its element is \u003cspan pulumi-lang-nodejs=\"`routeMapId`\" pulumi-lang-dotnet=\"`RouteMapId`\" pulumi-lang-go=\"`routeMapId`\" pulumi-lang-python=\"`route_map_id`\" pulumi-lang-yaml=\"`routeMapId`\" pulumi-lang-java=\"`routeMapId`\"\u003e`route_map_id`\u003c/span\u003e.\n","items":{"type":"string"},"type":"array"},"maps":{"description":"A list of CEN instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getRouteMapsMap:getRouteMapsMap"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the route map.\n","type":"string"},"transmitDirection":{"description":"The direction in which the route map is applied.\n","type":"string"}},"required":["cenId","ids","maps","id"],"type":"object"}},"alicloud:cen/getRouteServices:getRouteServices":{"description":"This data source provides CEN Route Service available to the user.\n\n\u003e **NOTE:** Available in v1.102.0+\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cen.getRouteServices({\n    cenId: \"cen-7qthudw0ll6jmc****\",\n});\nexport const firstCenRouteServiceId = example.then(example =\u003e example.services?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cen.get_route_services(cen_id=\"cen-7qthudw0ll6jmc****\")\npulumi.export(\"firstCenRouteServiceId\", example.services[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cen.GetRouteServices.Invoke(new()\n    {\n        CenId = \"cen-7qthudw0ll6jmc****\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstCenRouteServiceId\"] = example.Apply(getRouteServicesResult =\u003e getRouteServicesResult.Services[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cen.GetRouteServices(ctx, \u0026cen.GetRouteServicesArgs{\n\t\t\tCenId: \"cen-7qthudw0ll6jmc****\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstCenRouteServiceId\", example.Services[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetRouteServicesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CenFunctions.getRouteServices(GetRouteServicesArgs.builder()\n            .cenId(\"cen-7qthudw0ll6jmc****\")\n            .build());\n\n        ctx.export(\"firstCenRouteServiceId\", example.services()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cen:getRouteServices\n      arguments:\n        cenId: cen-7qthudw0ll6jmc****\noutputs:\n  firstCenRouteServiceId: ${example.services[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRouteServices.\n","properties":{"accessRegionId":{"type":"string","description":"The region of the network instances that access the cloud services.\n"},"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"host":{"type":"string","description":"The domain name or IP address of the cloud service.\n"},"hostRegionId":{"type":"string","description":"The region of the cloud service.\n"},"hostVpcId":{"type":"string","description":"The VPC associated with the cloud service.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the cloud service. Valid values: `Active`, `Creating` and `Deleting`.\n"}},"type":"object","required":["cenId"]},"outputs":{"description":"A collection of values returned by getRouteServices.\n","properties":{"accessRegionId":{"description":"The region of the network instances that access the cloud services.\n","type":"string"},"cenId":{"description":"The ID of the CEN instance.\n","type":"string"},"host":{"description":"The domain name or IP address of the cloud service.\n","type":"string"},"hostRegionId":{"description":"The region of the cloud service.\n","type":"string"},"hostVpcId":{"description":"The VPC associated with the cloud service.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of CEN Route Service IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"services":{"description":"A list of CEN Route Services. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getRouteServicesService:getRouteServicesService"},"type":"array"},"status":{"description":"The status of the cloud service.\n","type":"string"}},"required":["cenId","ids","services","id"],"type":"object"}},"alicloud:cen/getTrafficMarkingPolicies:getTrafficMarkingPolicies":{"description":"This data source provides the Cen Traffic Marking Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.173.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cen.getTrafficMarkingPolicies({\n    transitRouterId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const cenTrafficMarkingPolicyId1 = ids.then(ids =\u003e ids.policies?.[0]?.id);\nconst nameRegex = alicloud.cen.getTrafficMarkingPolicies({\n    transitRouterId: \"example_value\",\n    nameRegex: \"^my-TrafficMarkingPolicy\",\n});\nexport const cenTrafficMarkingPolicyId2 = nameRegex.then(nameRegex =\u003e nameRegex.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cen.get_traffic_marking_policies(transit_router_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"cenTrafficMarkingPolicyId1\", ids.policies[0].id)\nname_regex = alicloud.cen.get_traffic_marking_policies(transit_router_id=\"example_value\",\n    name_regex=\"^my-TrafficMarkingPolicy\")\npulumi.export(\"cenTrafficMarkingPolicyId2\", name_regex.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cen.GetTrafficMarkingPolicies.Invoke(new()\n    {\n        TransitRouterId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.Cen.GetTrafficMarkingPolicies.Invoke(new()\n    {\n        TransitRouterId = \"example_value\",\n        NameRegex = \"^my-TrafficMarkingPolicy\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cenTrafficMarkingPolicyId1\"] = ids.Apply(getTrafficMarkingPoliciesResult =\u003e getTrafficMarkingPoliciesResult.Policies[0]?.Id),\n        [\"cenTrafficMarkingPolicyId2\"] = nameRegex.Apply(getTrafficMarkingPoliciesResult =\u003e getTrafficMarkingPoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cen.GetTrafficMarkingPolicies(ctx, \u0026cen.GetTrafficMarkingPoliciesArgs{\n\t\t\tTransitRouterId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cenTrafficMarkingPolicyId1\", ids.Policies[0].Id)\n\t\tnameRegex, err := cen.GetTrafficMarkingPolicies(ctx, \u0026cen.GetTrafficMarkingPoliciesArgs{\n\t\t\tTransitRouterId: \"example_value\",\n\t\t\tNameRegex:       pulumi.StringRef(\"^my-TrafficMarkingPolicy\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cenTrafficMarkingPolicyId2\", nameRegex.Policies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTrafficMarkingPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CenFunctions.getTrafficMarkingPolicies(GetTrafficMarkingPoliciesArgs.builder()\n            .transitRouterId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"cenTrafficMarkingPolicyId1\", ids.policies()[0].id());\n        final var nameRegex = CenFunctions.getTrafficMarkingPolicies(GetTrafficMarkingPoliciesArgs.builder()\n            .transitRouterId(\"example_value\")\n            .nameRegex(\"^my-TrafficMarkingPolicy\")\n            .build());\n\n        ctx.export(\"cenTrafficMarkingPolicyId2\", nameRegex.policies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cen:getTrafficMarkingPolicies\n      arguments:\n        transitRouterId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cen:getTrafficMarkingPolicies\n      arguments:\n        transitRouterId: example_value\n        nameRegex: ^my-TrafficMarkingPolicy\noutputs:\n  cenTrafficMarkingPolicyId1: ${ids.policies[0].id}\n  cenTrafficMarkingPolicyId2: ${nameRegex.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTrafficMarkingPolicies.\n","properties":{"description":{"type":"string"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Traffic Marking Policy IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Traffic Marking Policy name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource.  Valid values: `Active`, `Creating`, `Deleting`, `Updating`.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"}},"type":"object","required":["transitRouterId"]},"outputs":{"description":"A collection of values returned by getTrafficMarkingPolicies.\n","properties":{"description":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policies":{"items":{"$ref":"#/types/alicloud:cen/getTrafficMarkingPoliciesPolicy:getTrafficMarkingPoliciesPolicy"},"type":"array"},"status":{"type":"string"},"transitRouterId":{"type":"string"}},"required":["ids","names","policies","transitRouterId","id"],"type":"object"}},"alicloud:cen/getTransitRouteTableAggregations:getTransitRouteTableAggregations":{"description":"This data source provides the Cen Transit Route Table Aggregations of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.202.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cen.getTransitRouteTableAggregations({\n    ids: [\"example_id\"],\n    transitRouteTableId: \"your_transit_route_table_id\",\n});\nexport const cenTransitRouterMulticastDomainId0 = ids.then(ids =\u003e ids.transitRouteTableAggregations?.[0]?.id);\nconst nameRegex = alicloud.cen.getTransitRouteTableAggregations({\n    nameRegex: \"^my-name\",\n    transitRouteTableId: \"your_transit_route_table_id\",\n});\nexport const cenTransitRouterMulticastDomainId1 = nameRegex.then(nameRegex =\u003e nameRegex.transitRouteTableAggregations?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cen.get_transit_route_table_aggregations(ids=[\"example_id\"],\n    transit_route_table_id=\"your_transit_route_table_id\")\npulumi.export(\"cenTransitRouterMulticastDomainId0\", ids.transit_route_table_aggregations[0].id)\nname_regex = alicloud.cen.get_transit_route_table_aggregations(name_regex=\"^my-name\",\n    transit_route_table_id=\"your_transit_route_table_id\")\npulumi.export(\"cenTransitRouterMulticastDomainId1\", name_regex.transit_route_table_aggregations[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cen.GetTransitRouteTableAggregations.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        TransitRouteTableId = \"your_transit_route_table_id\",\n    });\n\n    var nameRegex = AliCloud.Cen.GetTransitRouteTableAggregations.Invoke(new()\n    {\n        NameRegex = \"^my-name\",\n        TransitRouteTableId = \"your_transit_route_table_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cenTransitRouterMulticastDomainId0\"] = ids.Apply(getTransitRouteTableAggregationsResult =\u003e getTransitRouteTableAggregationsResult.TransitRouteTableAggregations[0]?.Id),\n        [\"cenTransitRouterMulticastDomainId1\"] = nameRegex.Apply(getTransitRouteTableAggregationsResult =\u003e getTransitRouteTableAggregationsResult.TransitRouteTableAggregations[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cen.GetTransitRouteTableAggregations(ctx, \u0026cen.GetTransitRouteTableAggregationsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tTransitRouteTableId: \"your_transit_route_table_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cenTransitRouterMulticastDomainId0\", ids.TransitRouteTableAggregations[0].Id)\n\t\tnameRegex, err := cen.GetTransitRouteTableAggregations(ctx, \u0026cen.GetTransitRouteTableAggregationsArgs{\n\t\t\tNameRegex:           pulumi.StringRef(\"^my-name\"),\n\t\t\tTransitRouteTableId: \"your_transit_route_table_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cenTransitRouterMulticastDomainId1\", nameRegex.TransitRouteTableAggregations[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouteTableAggregationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CenFunctions.getTransitRouteTableAggregations(GetTransitRouteTableAggregationsArgs.builder()\n            .ids(\"example_id\")\n            .transitRouteTableId(\"your_transit_route_table_id\")\n            .build());\n\n        ctx.export(\"cenTransitRouterMulticastDomainId0\", ids.transitRouteTableAggregations()[0].id());\n        final var nameRegex = CenFunctions.getTransitRouteTableAggregations(GetTransitRouteTableAggregationsArgs.builder()\n            .nameRegex(\"^my-name\")\n            .transitRouteTableId(\"your_transit_route_table_id\")\n            .build());\n\n        ctx.export(\"cenTransitRouterMulticastDomainId1\", nameRegex.transitRouteTableAggregations()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouteTableAggregations\n      arguments:\n        ids:\n          - example_id\n        transitRouteTableId: your_transit_route_table_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouteTableAggregations\n      arguments:\n        nameRegex: ^my-name\n        transitRouteTableId: your_transit_route_table_id\noutputs:\n  cenTransitRouterMulticastDomainId0: ${ids.transitRouteTableAggregations[0].id}\n  cenTransitRouterMulticastDomainId1: ${nameRegex.transitRouteTableAggregations[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouteTableAggregations.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Transit Route Table Aggregation IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Transit Route Table Aggregation name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of Transit Route Table Aggregation. Valid Values: `AllConfigured`, `Configuring`, `ConfigFailed`, `PartialConfigured`, `Deleting`.\n"},"transitRouteTableAggregationCidr":{"type":"string","description":"The destination CIDR block of the aggregate route.\n"},"transitRouteTableId":{"type":"string","description":"The ID of the route table of the Enterprise Edition transit router.\n"}},"type":"object","required":["transitRouteTableId"]},"outputs":{"description":"A collection of values returned by getTransitRouteTableAggregations.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Transit Route Table Aggregation names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the Transit Route Table Aggregation.\n","type":"string"},"transitRouteTableAggregationCidr":{"description":"The destination CIDR block of the aggregate route.\n","type":"string"},"transitRouteTableAggregations":{"description":"A list of Cen Transit Route Table Aggregations. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getTransitRouteTableAggregationsTransitRouteTableAggregation:getTransitRouteTableAggregationsTransitRouteTableAggregation"},"type":"array"},"transitRouteTableId":{"description":"The ID of the route table of the Enterprise Edition transit router.\n","type":"string"}},"required":["ids","names","transitRouteTableAggregations","transitRouteTableId","id"],"type":"object"}},"alicloud:cen/getTransitRouterAvailableResources:getTransitRouterAvailableResources":{"description":"This data source provides the CEN Transit Router Available Resources of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.163.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cen.getTransitRouterAvailableResources({});\nexport const masterId = ids.then(ids =\u003e ids.resources?.[0]?.masterZones?.[0]);\nexport const slaveId = ids.then(ids =\u003e ids.resources?.[0]?.slaveZones?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cen.get_transit_router_available_resources()\npulumi.export(\"masterId\", ids.resources[0].master_zones[0])\npulumi.export(\"slaveId\", ids.resources[0].slave_zones[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cen.GetTransitRouterAvailableResources.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"masterId\"] = ids.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.MasterZones[0]),\n        [\"slaveId\"] = ids.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.SlaveZones[0]),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cen.GetTransitRouterAvailableResources(ctx, \u0026cen.GetTransitRouterAvailableResourcesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"masterId\", ids.Resources[0].MasterZones[0])\n\t\tctx.Export(\"slaveId\", ids.Resources[0].SlaveZones[0])\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterAvailableResourcesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CenFunctions.getTransitRouterAvailableResources(GetTransitRouterAvailableResourcesArgs.builder()\n            .build());\n\n        ctx.export(\"masterId\", ids.resources()[0].masterZones()[0]);\n        ctx.export(\"slaveId\", ids.resources()[0].slaveZones()[0]);\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterAvailableResources\n      arguments: {}\noutputs:\n  masterId: ${ids.resources[0].masterZones[0]}\n  slaveId: ${ids.resources[0].slaveZones[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterAvailableResources.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"supportMulticast":{"type":"boolean","description":"Specifies whether to query only the zones in which the multicast feature is supported.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTransitRouterAvailableResources.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"resources":{"description":"A list of Cen Transit Router Available Resources. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getTransitRouterAvailableResourcesResource:getTransitRouterAvailableResourcesResource"},"type":"array"},"supportMulticast":{"description":"(Available since v1.225.0) Indicates whether the zone supports the multicast feature.\n","type":"boolean"}},"required":["resources","id"],"type":"object"}},"alicloud:cen/getTransitRouterCidrs:getTransitRouterCidrs":{"description":"This data source provides the Cen Transit Router Cidrs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.193.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cen.getTransitRouterCidrs({\n    ids: [\"example_id\"],\n    transitRouterId: \"tr-6ehx7q2jze8ch5ji0****\",\n});\nexport const cenTransitRouterCidrId0 = ids.then(ids =\u003e ids.cidrs?.[0]?.id);\nconst nameRegex = alicloud.cen.getTransitRouterCidrs({\n    nameRegex: \"^my-name\",\n    transitRouterId: \"tr-6ehx7q2jze8ch5ji0****\",\n});\nexport const cenTransitRouterCidrId1 = nameRegex.then(nameRegex =\u003e nameRegex.cidrs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cen.get_transit_router_cidrs(ids=[\"example_id\"],\n    transit_router_id=\"tr-6ehx7q2jze8ch5ji0****\")\npulumi.export(\"cenTransitRouterCidrId0\", ids.cidrs[0].id)\nname_regex = alicloud.cen.get_transit_router_cidrs(name_regex=\"^my-name\",\n    transit_router_id=\"tr-6ehx7q2jze8ch5ji0****\")\npulumi.export(\"cenTransitRouterCidrId1\", name_regex.cidrs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cen.GetTransitRouterCidrs.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        TransitRouterId = \"tr-6ehx7q2jze8ch5ji0****\",\n    });\n\n    var nameRegex = AliCloud.Cen.GetTransitRouterCidrs.Invoke(new()\n    {\n        NameRegex = \"^my-name\",\n        TransitRouterId = \"tr-6ehx7q2jze8ch5ji0****\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cenTransitRouterCidrId0\"] = ids.Apply(getTransitRouterCidrsResult =\u003e getTransitRouterCidrsResult.Cidrs[0]?.Id),\n        [\"cenTransitRouterCidrId1\"] = nameRegex.Apply(getTransitRouterCidrsResult =\u003e getTransitRouterCidrsResult.Cidrs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cen.GetTransitRouterCidrs(ctx, \u0026cen.GetTransitRouterCidrsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tTransitRouterId: \"tr-6ehx7q2jze8ch5ji0****\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cenTransitRouterCidrId0\", ids.Cidrs[0].Id)\n\t\tnameRegex, err := cen.GetTransitRouterCidrs(ctx, \u0026cen.GetTransitRouterCidrsArgs{\n\t\t\tNameRegex:       pulumi.StringRef(\"^my-name\"),\n\t\t\tTransitRouterId: \"tr-6ehx7q2jze8ch5ji0****\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cenTransitRouterCidrId1\", nameRegex.Cidrs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterCidrsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CenFunctions.getTransitRouterCidrs(GetTransitRouterCidrsArgs.builder()\n            .ids(\"example_id\")\n            .transitRouterId(\"tr-6ehx7q2jze8ch5ji0****\")\n            .build());\n\n        ctx.export(\"cenTransitRouterCidrId0\", ids.cidrs()[0].id());\n        final var nameRegex = CenFunctions.getTransitRouterCidrs(GetTransitRouterCidrsArgs.builder()\n            .nameRegex(\"^my-name\")\n            .transitRouterId(\"tr-6ehx7q2jze8ch5ji0****\")\n            .build());\n\n        ctx.export(\"cenTransitRouterCidrId1\", nameRegex.cidrs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterCidrs\n      arguments:\n        ids:\n          - example_id\n        transitRouterId: tr-6ehx7q2jze8ch5ji0****\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterCidrs\n      arguments:\n        nameRegex: ^my-name\n        transitRouterId: tr-6ehx7q2jze8ch5ji0****\noutputs:\n  cenTransitRouterCidrId0: ${ids.cidrs[0].id}\n  cenTransitRouterCidrId1: ${nameRegex.cidrs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterCidrs.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Cen Transit Router Cidr IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Transit Router Cidr name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"transitRouterCidrId":{"type":"string","description":"The ID of the transit router cidr.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"}},"type":"object","required":["transitRouterId"]},"outputs":{"description":"A collection of values returned by getTransitRouterCidrs.\n","properties":{"cidrs":{"items":{"$ref":"#/types/alicloud:cen/getTransitRouterCidrsCidr:getTransitRouterCidrsCidr"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"transitRouterCidrId":{"type":"string"},"transitRouterId":{"type":"string"}},"required":["cidrs","ids","names","transitRouterId","id"],"type":"object"}},"alicloud:cen/getTransitRouterMulticastDomainAssociations:getTransitRouterMulticastDomainAssociations":{"description":"This data source provides the Cen Transit Router Multicast Domain Associations of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.195.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cen.getTransitRouterMulticastDomainAssociations({\n    ids: [\"example_id\"],\n    transitRouterMulticastDomainId: \"your_transit_router_multicast_domain_id\",\n});\nexport const cenTransitRouterMulticastDomainId0 = ids.then(ids =\u003e ids.associations?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cen.get_transit_router_multicast_domain_associations(ids=[\"example_id\"],\n    transit_router_multicast_domain_id=\"your_transit_router_multicast_domain_id\")\npulumi.export(\"cenTransitRouterMulticastDomainId0\", ids.associations[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cen.GetTransitRouterMulticastDomainAssociations.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        TransitRouterMulticastDomainId = \"your_transit_router_multicast_domain_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cenTransitRouterMulticastDomainId0\"] = ids.Apply(getTransitRouterMulticastDomainAssociationsResult =\u003e getTransitRouterMulticastDomainAssociationsResult.Associations[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cen.GetTransitRouterMulticastDomainAssociations(ctx, \u0026cen.GetTransitRouterMulticastDomainAssociationsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tTransitRouterMulticastDomainId: \"your_transit_router_multicast_domain_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cenTransitRouterMulticastDomainId0\", ids.Associations[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterMulticastDomainAssociationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CenFunctions.getTransitRouterMulticastDomainAssociations(GetTransitRouterMulticastDomainAssociationsArgs.builder()\n            .ids(\"example_id\")\n            .transitRouterMulticastDomainId(\"your_transit_router_multicast_domain_id\")\n            .build());\n\n        ctx.export(\"cenTransitRouterMulticastDomainId0\", ids.associations()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterMulticastDomainAssociations\n      arguments:\n        ids:\n          - example_id\n        transitRouterMulticastDomainId: your_transit_router_multicast_domain_id\noutputs:\n  cenTransitRouterMulticastDomainId0: ${ids.associations[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterMulticastDomainAssociations.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Transit Router Multicast Domain Association IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceId":{"type":"string","description":"The ID of the resource associated with the multicast domain.\n"},"resourceType":{"type":"string","description":"The type of resource associated with the multicast domain. Valid Value: `VPC`.\n"},"status":{"type":"string","description":"The status of the associated resource. Valid Value: `Associated`, `Associating`, `Dissociating`.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the network instance connection.\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch.\n"}},"type":"object","required":["transitRouterMulticastDomainId"]},"outputs":{"description":"A collection of values returned by getTransitRouterMulticastDomainAssociations.\n","properties":{"associations":{"description":"A list of Cen Transit Router Multicast Domain Associations. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getTransitRouterMulticastDomainAssociationsAssociation:getTransitRouterMulticastDomainAssociationsAssociation"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceId":{"description":"The ID of the resource associated with the multicast domain.\n","type":"string"},"resourceType":{"description":"The type of resource associated with the multicast domain.\n","type":"string"},"status":{"description":"The status of the associated resource.\n","type":"string"},"transitRouterAttachmentId":{"description":"The ID of the network instance connection.\n","type":"string"},"transitRouterMulticastDomainId":{"description":"The ID of the multicast domain.\n","type":"string"},"vswitchId":{"description":"The ID of the vSwitch.\n","type":"string"}},"required":["associations","ids","transitRouterMulticastDomainId","id"],"type":"object"}},"alicloud:cen/getTransitRouterMulticastDomainMembers:getTransitRouterMulticastDomainMembers":{"description":"This data source provides Cen Transit Router Multicast Domain Member available to the user. [What is Transit Router Multicast Domain Member](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-registertransitroutermulticastgroupmembers)\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cen.getTransitRouterMulticastDomainMembers({\n    transitRouterMulticastDomainId: \"tr-mcast-domain-2d9oq455uk533zfr29\",\n});\nexport const alicloudCenTransitRouterMulticastDomainMemberExampleId = _default.then(_default =\u003e _default.members?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cen.get_transit_router_multicast_domain_members(transit_router_multicast_domain_id=\"tr-mcast-domain-2d9oq455uk533zfr29\")\npulumi.export(\"alicloudCenTransitRouterMulticastDomainMemberExampleId\", default.members[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Cen.GetTransitRouterMulticastDomainMembers.Invoke(new()\n    {\n        TransitRouterMulticastDomainId = \"tr-mcast-domain-2d9oq455uk533zfr29\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCenTransitRouterMulticastDomainMemberExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getTransitRouterMulticastDomainMembersResult =\u003e getTransitRouterMulticastDomainMembersResult.Members[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := cen.GetTransitRouterMulticastDomainMembers(ctx, \u0026cen.GetTransitRouterMulticastDomainMembersArgs{\n\t\t\tTransitRouterMulticastDomainId: \"tr-mcast-domain-2d9oq455uk533zfr29\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudCenTransitRouterMulticastDomainMemberExampleId\", _default.Members[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterMulticastDomainMembersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CenFunctions.getTransitRouterMulticastDomainMembers(GetTransitRouterMulticastDomainMembersArgs.builder()\n            .transitRouterMulticastDomainId(\"tr-mcast-domain-2d9oq455uk533zfr29\")\n            .build());\n\n        ctx.export(\"alicloudCenTransitRouterMulticastDomainMemberExampleId\", default_.members()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterMulticastDomainMembers\n      arguments:\n        transitRouterMulticastDomainId: tr-mcast-domain-2d9oq455uk533zfr29\noutputs:\n  alicloudCenTransitRouterMulticastDomainMemberExampleId: ${default.members[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterMulticastDomainMembers.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Transit Router Multicast Domain Member IDs.\n"},"networkInterfaceId":{"type":"string","description":"The ID of the ENI.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain to which the multicast member belongs.\n"}},"type":"object","required":["transitRouterMulticastDomainId"]},"outputs":{"description":"A collection of values returned by getTransitRouterMulticastDomainMembers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"members":{"description":"A list of Transit Router Multicast Domain Member Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getTransitRouterMulticastDomainMembersMember:getTransitRouterMulticastDomainMembersMember"},"type":"array"},"networkInterfaceId":{"description":"ENI ID of multicast member.\n","type":"string"},"outputFile":{"type":"string"},"transitRouterMulticastDomainId":{"description":"The ID of the multicast domain to which the multicast member belongs.\n","type":"string"}},"required":["ids","members","transitRouterMulticastDomainId","id"],"type":"object"}},"alicloud:cen/getTransitRouterMulticastDomainPeerMembers:getTransitRouterMulticastDomainPeerMembers":{"description":"This data source provides Cen Transit Router Multicast Domain Peer Member available to the user. [What is Transit Router Multicast Domain Peer Member](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-registertransitroutermulticastgroupmembers)\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cen.getTransitRouterMulticastDomainPeerMembers({\n    transitRouterMulticastDomainId: \"tr-mcast-domain-2d9oq455uk533zfrxx\",\n});\nexport const alicloudCenTransitRouterMulticastDomainPeerMemberExampleId = _default.then(_default =\u003e _default.members?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cen.get_transit_router_multicast_domain_peer_members(transit_router_multicast_domain_id=\"tr-mcast-domain-2d9oq455uk533zfrxx\")\npulumi.export(\"alicloudCenTransitRouterMulticastDomainPeerMemberExampleId\", default.members[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Cen.GetTransitRouterMulticastDomainPeerMembers.Invoke(new()\n    {\n        TransitRouterMulticastDomainId = \"tr-mcast-domain-2d9oq455uk533zfrxx\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCenTransitRouterMulticastDomainPeerMemberExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getTransitRouterMulticastDomainPeerMembersResult =\u003e getTransitRouterMulticastDomainPeerMembersResult.Members[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := cen.GetTransitRouterMulticastDomainPeerMembers(ctx, \u0026cen.GetTransitRouterMulticastDomainPeerMembersArgs{\n\t\t\tTransitRouterMulticastDomainId: \"tr-mcast-domain-2d9oq455uk533zfrxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudCenTransitRouterMulticastDomainPeerMemberExampleId\", _default.Members[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterMulticastDomainPeerMembersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CenFunctions.getTransitRouterMulticastDomainPeerMembers(GetTransitRouterMulticastDomainPeerMembersArgs.builder()\n            .transitRouterMulticastDomainId(\"tr-mcast-domain-2d9oq455uk533zfrxx\")\n            .build());\n\n        ctx.export(\"alicloudCenTransitRouterMulticastDomainPeerMemberExampleId\", default_.members()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterMulticastDomainPeerMembers\n      arguments:\n        transitRouterMulticastDomainId: tr-mcast-domain-2d9oq455uk533zfrxx\noutputs:\n  alicloudCenTransitRouterMulticastDomainPeerMemberExampleId: ${default.members[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterMulticastDomainPeerMembers.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Cen Transit Router Multicast Domain Peer Member IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"peerTransitRouterMulticastDomains":{"type":"array","items":{"type":"string"},"description":"The IDs of the inter-region multicast domains.\n"},"resourceId":{"type":"string","description":"The ID of the resource associated with the multicast resource.\n"},"resourceType":{"type":"string","description":"The type of the multicast resource. Valid values:\n* VPC: queries multicast resources by VPC.\n* TR: queries multicast resources that are also deployed in a different region.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the network instance connection.\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain to which the multicast member belongs.\n"}},"type":"object","required":["transitRouterMulticastDomainId"]},"outputs":{"description":"A collection of values returned by getTransitRouterMulticastDomainPeerMembers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"members":{"description":"A list of Transit Router Multicast Domain Peer Member Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getTransitRouterMulticastDomainPeerMembersMember:getTransitRouterMulticastDomainPeerMembersMember"},"type":"array"},"outputFile":{"type":"string"},"peerTransitRouterMulticastDomains":{"items":{"type":"string"},"type":"array"},"resourceId":{"type":"string"},"resourceType":{"type":"string"},"transitRouterAttachmentId":{"type":"string"},"transitRouterMulticastDomainId":{"description":"The ID of the multicast domain to which the multicast member belongs.\n","type":"string"}},"required":["ids","members","transitRouterMulticastDomainId","id"],"type":"object"}},"alicloud:cen/getTransitRouterMulticastDomainSources:getTransitRouterMulticastDomainSources":{"description":"This data source provides Cen Transit Router Multicast Domain Source available to the user.[What is Transit Router Multicast Domain Source](https://www.alibabacloud.com/help/en/cen/developer-reference/api-cbn-2017-09-12-registertransitroutermulticastgroupsources)\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cen.getTransitRouterMulticastDomainSources({\n    transitRouterMulticastDomainId: \"tr-mcast-domain-xxxxxx\",\n});\nexport const alicloudCenTransitRouterMulticastDomainSourceExampleId = _default.then(_default =\u003e _default.sources?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cen.get_transit_router_multicast_domain_sources(transit_router_multicast_domain_id=\"tr-mcast-domain-xxxxxx\")\npulumi.export(\"alicloudCenTransitRouterMulticastDomainSourceExampleId\", default.sources[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Cen.GetTransitRouterMulticastDomainSources.Invoke(new()\n    {\n        TransitRouterMulticastDomainId = \"tr-mcast-domain-xxxxxx\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCenTransitRouterMulticastDomainSourceExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getTransitRouterMulticastDomainSourcesResult =\u003e getTransitRouterMulticastDomainSourcesResult.Sources[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := cen.GetTransitRouterMulticastDomainSources(ctx, \u0026cen.GetTransitRouterMulticastDomainSourcesArgs{\n\t\t\tTransitRouterMulticastDomainId: \"tr-mcast-domain-xxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudCenTransitRouterMulticastDomainSourceExampleId\", _default.Sources[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterMulticastDomainSourcesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CenFunctions.getTransitRouterMulticastDomainSources(GetTransitRouterMulticastDomainSourcesArgs.builder()\n            .transitRouterMulticastDomainId(\"tr-mcast-domain-xxxxxx\")\n            .build());\n\n        ctx.export(\"alicloudCenTransitRouterMulticastDomainSourceExampleId\", default_.sources()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterMulticastDomainSources\n      arguments:\n        transitRouterMulticastDomainId: tr-mcast-domain-xxxxxx\noutputs:\n  alicloudCenTransitRouterMulticastDomainSourceExampleId: ${default.sources[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterMulticastDomainSources.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of the multicast domain IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain to which the multicast source belongs.\n"}},"type":"object","required":["transitRouterMulticastDomainId"]},"outputs":{"description":"A collection of values returned by getTransitRouterMulticastDomainSources.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"sources":{"description":"A list of Transit Router Multicast Domain Source Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getTransitRouterMulticastDomainSourcesSource:getTransitRouterMulticastDomainSourcesSource"},"type":"array"},"transitRouterMulticastDomainId":{"description":"The ID of the multicast domain to which the multicast source belongs.\n","type":"string"}},"required":["ids","sources","transitRouterMulticastDomainId","id"],"type":"object"}},"alicloud:cen/getTransitRouterMulticastDomains:getTransitRouterMulticastDomains":{"description":"This data source provides the Cen Transit Router Multicast Domains of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.195.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cen.getTransitRouterMulticastDomains({\n    ids: [\"example_id\"],\n    transitRouterId: \"your_transit_router_id\",\n});\nexport const cenTransitRouterMulticastDomainId0 = ids.then(ids =\u003e ids.domains?.[0]?.id);\nconst nameRegex = alicloud.cen.getTransitRouterMulticastDomains({\n    nameRegex: \"^my-name\",\n    transitRouterId: \"your_transit_router_id\",\n});\nexport const cenTransitRouterMulticastDomainId1 = nameRegex.then(nameRegex =\u003e nameRegex.domains?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cen.get_transit_router_multicast_domains(ids=[\"example_id\"],\n    transit_router_id=\"your_transit_router_id\")\npulumi.export(\"cenTransitRouterMulticastDomainId0\", ids.domains[0].id)\nname_regex = alicloud.cen.get_transit_router_multicast_domains(name_regex=\"^my-name\",\n    transit_router_id=\"your_transit_router_id\")\npulumi.export(\"cenTransitRouterMulticastDomainId1\", name_regex.domains[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cen.GetTransitRouterMulticastDomains.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        TransitRouterId = \"your_transit_router_id\",\n    });\n\n    var nameRegex = AliCloud.Cen.GetTransitRouterMulticastDomains.Invoke(new()\n    {\n        NameRegex = \"^my-name\",\n        TransitRouterId = \"your_transit_router_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cenTransitRouterMulticastDomainId0\"] = ids.Apply(getTransitRouterMulticastDomainsResult =\u003e getTransitRouterMulticastDomainsResult.Domains[0]?.Id),\n        [\"cenTransitRouterMulticastDomainId1\"] = nameRegex.Apply(getTransitRouterMulticastDomainsResult =\u003e getTransitRouterMulticastDomainsResult.Domains[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cen.GetTransitRouterMulticastDomains(ctx, \u0026cen.GetTransitRouterMulticastDomainsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tTransitRouterId: \"your_transit_router_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cenTransitRouterMulticastDomainId0\", ids.Domains[0].Id)\n\t\tnameRegex, err := cen.GetTransitRouterMulticastDomains(ctx, \u0026cen.GetTransitRouterMulticastDomainsArgs{\n\t\t\tNameRegex:       pulumi.StringRef(\"^my-name\"),\n\t\t\tTransitRouterId: \"your_transit_router_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cenTransitRouterMulticastDomainId1\", nameRegex.Domains[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterMulticastDomainsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CenFunctions.getTransitRouterMulticastDomains(GetTransitRouterMulticastDomainsArgs.builder()\n            .ids(\"example_id\")\n            .transitRouterId(\"your_transit_router_id\")\n            .build());\n\n        ctx.export(\"cenTransitRouterMulticastDomainId0\", ids.domains()[0].id());\n        final var nameRegex = CenFunctions.getTransitRouterMulticastDomains(GetTransitRouterMulticastDomainsArgs.builder()\n            .nameRegex(\"^my-name\")\n            .transitRouterId(\"your_transit_router_id\")\n            .build());\n\n        ctx.export(\"cenTransitRouterMulticastDomainId1\", nameRegex.domains()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterMulticastDomains\n      arguments:\n        ids:\n          - example_id\n        transitRouterId: your_transit_router_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterMulticastDomains\n      arguments:\n        nameRegex: ^my-name\n        transitRouterId: your_transit_router_id\noutputs:\n  cenTransitRouterMulticastDomainId0: ${ids.domains[0].id}\n  cenTransitRouterMulticastDomainId1: ${nameRegex.domains[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterMulticastDomains.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Transit Router Multicast Domain IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Transit Router Multicast Domain name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the multicast domain. Valid Value: `Active`.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"},"transitRouterMulticastDomainId":{"type":"string","description":"The ID of the multicast domain.\n"}},"type":"object","required":["transitRouterId"]},"outputs":{"description":"A collection of values returned by getTransitRouterMulticastDomains.\n","properties":{"domains":{"description":"A list of Cen Transit Router Multicast Domains. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getTransitRouterMulticastDomainsDomain:getTransitRouterMulticastDomainsDomain"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Transit Router Multicast Domain names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the Transit Router Multicast Domain.\n","type":"string"},"transitRouterId":{"description":"The ID of the transit router.\n","type":"string"},"transitRouterMulticastDomainId":{"description":"The ID of the Transit Router Multicast Domain.\n","type":"string"}},"required":["domains","ids","names","transitRouterId","id"],"type":"object"}},"alicloud:cen/getTransitRouterPeerAttachments:getTransitRouterPeerAttachments":{"description":"This data source provides CEN Transit Router peer attachments available to the user.\n\n\u003e **NOTE:** Available in 1.128.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cen.getTransitRouterPeerAttachments({\n    cenId: \"cen-id1\",\n});\nexport const firstTransitRouterPeerAttachmentsTransitRouterAttachmentResourceType = _default.then(_default =\u003e _default.transitRouterAttachments[0].resourceType);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cen.get_transit_router_peer_attachments(cen_id=\"cen-id1\")\npulumi.export(\"firstTransitRouterPeerAttachmentsTransitRouterAttachmentResourceType\", default.transit_router_attachments[0][\"resourceType\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Cen.GetTransitRouterPeerAttachments.Invoke(new()\n    {\n        CenId = \"cen-id1\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstTransitRouterPeerAttachmentsTransitRouterAttachmentResourceType\"] = @default.Apply(@default =\u003e @default.Apply(getTransitRouterPeerAttachmentsResult =\u003e getTransitRouterPeerAttachmentsResult.TransitRouterAttachments[0].ResourceType)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := cen.GetTransitRouterPeerAttachments(ctx, \u0026cen.GetTransitRouterPeerAttachmentsArgs{\n\t\t\tCenId: \"cen-id1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstTransitRouterPeerAttachmentsTransitRouterAttachmentResourceType\", _default.TransitRouterAttachments[0].ResourceType)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterPeerAttachmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CenFunctions.getTransitRouterPeerAttachments(GetTransitRouterPeerAttachmentsArgs.builder()\n            .cenId(\"cen-id1\")\n            .build());\n\n        ctx.export(\"firstTransitRouterPeerAttachmentsTransitRouterAttachmentResourceType\", default_.transitRouterAttachments()[0].resourceType());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterPeerAttachments\n      arguments:\n        cenId: cen-id1\noutputs:\n  firstTransitRouterPeerAttachmentsTransitRouterAttachmentResourceType: ${default.transitRouterAttachments[0].resourceType}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterPeerAttachments.\n","properties":{"cenId":{"type":"string","description":"ID of the CEN instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of CEN Transit Router peer attachments IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter CEN Transit Router peer attachments by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of CEN Transit Router peer attachment. Valid values `Attached`, `Attaching` and `Detaching`.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of CEN Transit Router peer attachments.\n"},"transitRouterId":{"type":"string","description":"The ID of transit router.\n"}},"type":"object","required":["cenId"]},"outputs":{"description":"A collection of values returned by getTransitRouterPeerAttachments.\n","properties":{"attachments":{"items":{"$ref":"#/types/alicloud:cen/getTransitRouterPeerAttachmentsAttachment:getTransitRouterPeerAttachmentsAttachment"},"type":"array"},"cenId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of CEN Transit Router peer attachments IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of CEN Transit Router peer attachments names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the transit router attachment.\n","type":"string"},"transitRouterAttachmentId":{"description":"ID of the transit router attachment.\n","type":"string"},"transitRouterId":{"description":"ID of the transit router.\n","type":"string"}},"required":["attachments","cenId","ids","names","id"],"type":"object"}},"alicloud:cen/getTransitRouterPrefixListAssociations:getTransitRouterPrefixListAssociations":{"description":"This data source provides the Cen Transit Router Prefix List Associations of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.188.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cen.getTransitRouterPrefixListAssociations({\n    transitRouterId: \"tr-6ehx7q2jze8ch5ji0****\",\n    transitRouterTableId: \"vtb-6ehgc262hr170qgyc****\",\n});\nexport const cenTransitRouterPrefixListAssociationId = _default.then(_default =\u003e _default.associations?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cen.get_transit_router_prefix_list_associations(transit_router_id=\"tr-6ehx7q2jze8ch5ji0****\",\n    transit_router_table_id=\"vtb-6ehgc262hr170qgyc****\")\npulumi.export(\"cenTransitRouterPrefixListAssociationId\", default.associations[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Cen.GetTransitRouterPrefixListAssociations.Invoke(new()\n    {\n        TransitRouterId = \"tr-6ehx7q2jze8ch5ji0****\",\n        TransitRouterTableId = \"vtb-6ehgc262hr170qgyc****\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cenTransitRouterPrefixListAssociationId\"] = @default.Apply(@default =\u003e @default.Apply(getTransitRouterPrefixListAssociationsResult =\u003e getTransitRouterPrefixListAssociationsResult.Associations[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := cen.GetTransitRouterPrefixListAssociations(ctx, \u0026cen.GetTransitRouterPrefixListAssociationsArgs{\n\t\t\tTransitRouterId:      \"tr-6ehx7q2jze8ch5ji0****\",\n\t\t\tTransitRouterTableId: \"vtb-6ehgc262hr170qgyc****\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cenTransitRouterPrefixListAssociationId\", _default.Associations[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterPrefixListAssociationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CenFunctions.getTransitRouterPrefixListAssociations(GetTransitRouterPrefixListAssociationsArgs.builder()\n            .transitRouterId(\"tr-6ehx7q2jze8ch5ji0****\")\n            .transitRouterTableId(\"vtb-6ehgc262hr170qgyc****\")\n            .build());\n\n        ctx.export(\"cenTransitRouterPrefixListAssociationId\", default_.associations()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterPrefixListAssociations\n      arguments:\n        transitRouterId: tr-6ehx7q2jze8ch5ji0****\n        transitRouterTableId: vtb-6ehgc262hr170qgyc****\noutputs:\n  cenTransitRouterPrefixListAssociationId: ${default.associations[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterPrefixListAssociations.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Cen Transit Router Prefix List Association IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"ownerUid":{"type":"integer","description":"The ID of the Alibaba Cloud account to which the prefix list belongs.\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"prefixListId":{"type":"string","description":"The ID of the prefix list.\n"},"status":{"type":"string","description":"The status of the prefix list. Valid Value: `Active`, `Updating`.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"},"transitRouterTableId":{"type":"string","description":"The ID of the route table of the transit router.\n"}},"type":"object","required":["transitRouterId","transitRouterTableId"]},"outputs":{"description":"A collection of values returned by getTransitRouterPrefixListAssociations.\n","properties":{"associations":{"items":{"$ref":"#/types/alicloud:cen/getTransitRouterPrefixListAssociationsAssociation:getTransitRouterPrefixListAssociationsAssociation"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"ownerUid":{"type":"integer"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"prefixListId":{"type":"string"},"status":{"type":"string"},"transitRouterId":{"type":"string"},"transitRouterTableId":{"type":"string"}},"required":["associations","ids","transitRouterId","transitRouterTableId","id"],"type":"object"}},"alicloud:cen/getTransitRouterRouteEntries:getTransitRouterRouteEntries":{"description":"This data source provides CEN Transit Router Route Entries available to the user.[What is Cen Transit Router Route Entries](https://help.aliyun.com/document_detail/260941.html)\n\n\u003e **NOTE:** Available in 1.126.0+\n\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterRouteEntries.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of CEN Transit Router Route Entry IDs.\n"},"nameRegex":{"type":"string"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string"},"transitRouterRouteEntryIds":{"type":"array","items":{"type":"string"},"description":"A list of ID of the cen transit router route entry.\n"},"transitRouterRouteEntryNames":{"type":"array","items":{"type":"string"},"description":"A list of name of the cen transit router route entry.\n"},"transitRouterRouteEntryStatus":{"type":"string","description":"The status of the resource.Valid values `Creating`, `Active` and `Deleting`.\n"},"transitRouterRouteTableId":{"type":"string","description":"ID of the CEN Transit Router Route Table.\n"}},"type":"object","required":["transitRouterRouteTableId"]},"outputs":{"description":"A collection of values returned by getTransitRouterRouteEntries.\n","properties":{"entries":{"description":"A list of CEN Route Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getTransitRouterRouteEntriesEntry:getTransitRouterRouteEntriesEntry"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of CEN Transit Router Route Entry IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of CEN Transit Router Route Entry Names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"},"transitRouterRouteEntryIds":{"items":{"type":"string"},"type":"array"},"transitRouterRouteEntryNames":{"items":{"type":"string"},"type":"array"},"transitRouterRouteEntryStatus":{"description":"The status of the route entry in CEN.\n","type":"string"},"transitRouterRouteTableId":{"type":"string"}},"required":["entries","ids","names","transitRouterRouteTableId","id"],"type":"object"}},"alicloud:cen/getTransitRouterRouteTableAssociations:getTransitRouterRouteTableAssociations":{"description":"This data source provides CEN Transit Router Route Table Associations available to the user.[What is Cen Transit Router Route Table Associations](https://help.aliyun.com/document_detail/261243.html)\n\n\u003e **NOTE:** Available in 1.126.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cen.getTransitRouterRouteTableAssociations({\n    transitRouterRouteTableId: \"rtb-id1\",\n});\nexport const firstTransitRouterPeerAttachmentsTransitRouterAttachmentResourceType = _default.then(_default =\u003e _default.associations?.[0]?.resourceType);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cen.get_transit_router_route_table_associations(transit_router_route_table_id=\"rtb-id1\")\npulumi.export(\"firstTransitRouterPeerAttachmentsTransitRouterAttachmentResourceType\", default.associations[0].resource_type)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Cen.GetTransitRouterRouteTableAssociations.Invoke(new()\n    {\n        TransitRouterRouteTableId = \"rtb-id1\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstTransitRouterPeerAttachmentsTransitRouterAttachmentResourceType\"] = @default.Apply(@default =\u003e @default.Apply(getTransitRouterRouteTableAssociationsResult =\u003e getTransitRouterRouteTableAssociationsResult.Associations[0]?.ResourceType)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := cen.GetTransitRouterRouteTableAssociations(ctx, \u0026cen.GetTransitRouterRouteTableAssociationsArgs{\n\t\t\tTransitRouterRouteTableId: pulumi.StringRef(\"rtb-id1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstTransitRouterPeerAttachmentsTransitRouterAttachmentResourceType\", _default.Associations[0].ResourceType)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterRouteTableAssociationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CenFunctions.getTransitRouterRouteTableAssociations(GetTransitRouterRouteTableAssociationsArgs.builder()\n            .transitRouterRouteTableId(\"rtb-id1\")\n            .build());\n\n        ctx.export(\"firstTransitRouterPeerAttachmentsTransitRouterAttachmentResourceType\", default_.associations()[0].resourceType());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterRouteTableAssociations\n      arguments:\n        transitRouterRouteTableId: rtb-id1\noutputs:\n  firstTransitRouterPeerAttachmentsTransitRouterAttachmentResourceType: ${default.associations[0].resourceType}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterRouteTableAssociations.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of CEN Transit Router Route Table Association IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the route table, including `Active`, `Associating`, `Dissociating`.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the network instance connection.\n"},"transitRouterAttachmentResourceId":{"type":"string","description":"The ID of the next hop.\n"},"transitRouterAttachmentResourceType":{"type":"string","description":"The type of next hop. Valid values:\n* `VPC`: virtual private cloud (VPC)\n* `VBR`: virtual border router (VBR)\n* `TR`: transit router\n* `VPN`: VPN attachment\n"},"transitRouterRouteTableId":{"type":"string","description":"The ID of the route table of the Enterprise Edition transit router.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTransitRouterRouteTableAssociations.\n","properties":{"associations":{"description":"A list of CEN Transit Router Route Table Associations. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getTransitRouterRouteTableAssociationsAssociation:getTransitRouterRouteTableAssociationsAssociation"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of CEN Transit Router Route Table Association IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the route table.\n","type":"string"},"transitRouterAttachmentId":{"description":"ID of the transit router attachment.\n","type":"string"},"transitRouterAttachmentResourceId":{"type":"string"},"transitRouterAttachmentResourceType":{"type":"string"},"transitRouterRouteTableId":{"description":"ID of the transit router route table.\n","type":"string"}},"required":["associations","ids","id"],"type":"object"}},"alicloud:cen/getTransitRouterRouteTablePropagations:getTransitRouterRouteTablePropagations":{"description":"This data source provides the CEN Transit Router Route Table Propagations of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.126.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"^preserved-NODELETING\",\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 1,\n    max: 2999,\n});\nconst defaultInstance = new alicloud.cen.Instance(\"default\", {\n    cenInstanceName: name,\n    protectionLevel: \"REDUCED\",\n});\nconst defaultTransitRouter = new alicloud.cen.TransitRouter(\"default\", {cenId: defaultInstance.id});\nconst defaultVirtualBorderRouter = new alicloud.expressconnect.VirtualBorderRouter(\"default\", {\n    localGatewayIp: \"10.0.0.1\",\n    peerGatewayIp: \"10.0.0.2\",\n    peeringSubnetMask: \"255.255.255.252\",\n    physicalConnectionId: _default.then(_default =\u003e _default.connections?.[0]?.id),\n    virtualBorderRouterName: name,\n    vlanId: defaultInteger.id,\n    minRxInterval: 1000,\n    minTxInterval: 1000,\n    detectMultiplier: 10,\n});\nconst defaultTransitRouterVbrAttachment = new alicloud.cen.TransitRouterVbrAttachment(\"default\", {\n    cenId: defaultInstance.id,\n    transitRouterId: defaultTransitRouter.transitRouterId,\n    vbrId: defaultVirtualBorderRouter.id,\n    autoPublishRouteEnabled: true,\n    transitRouterAttachmentName: name,\n    transitRouterAttachmentDescription: name,\n});\nconst defaultTransitRouterRouteTable = new alicloud.cen.TransitRouterRouteTable(\"default\", {\n    transitRouterId: defaultTransitRouter.transitRouterId,\n    transitRouterRouteTableName: name,\n});\nconst defaultTransitRouterRouteTablePropagation = new alicloud.cen.TransitRouterRouteTablePropagation(\"default\", {\n    transitRouterAttachmentId: defaultTransitRouterVbrAttachment.transitRouterAttachmentId,\n    transitRouterRouteTableId: defaultTransitRouterRouteTable.transitRouterRouteTableId,\n});\nconst ids = alicloud.cen.getTransitRouterRouteTablePropagationsOutput({\n    transitRouterRouteTableId: defaultTransitRouterRouteTablePropagation.transitRouterRouteTableId,\n    ids: [defaultTransitRouterRouteTablePropagation.transitRouterAttachmentId],\n});\nexport const cenTransitRouterRouteTablePropagationId0 = ids.apply(ids =\u003e ids.propagations?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.expressconnect.get_physical_connections(name_regex=\"^preserved-NODELETING\")\ndefault_integer = random.index.Integer(\"default\",\n    min=1,\n    max=2999)\ndefault_instance = alicloud.cen.Instance(\"default\",\n    cen_instance_name=name,\n    protection_level=\"REDUCED\")\ndefault_transit_router = alicloud.cen.TransitRouter(\"default\", cen_id=default_instance.id)\ndefault_virtual_border_router = alicloud.expressconnect.VirtualBorderRouter(\"default\",\n    local_gateway_ip=\"10.0.0.1\",\n    peer_gateway_ip=\"10.0.0.2\",\n    peering_subnet_mask=\"255.255.255.252\",\n    physical_connection_id=default.connections[0].id,\n    virtual_border_router_name=name,\n    vlan_id=default_integer[\"id\"],\n    min_rx_interval=1000,\n    min_tx_interval=1000,\n    detect_multiplier=10)\ndefault_transit_router_vbr_attachment = alicloud.cen.TransitRouterVbrAttachment(\"default\",\n    cen_id=default_instance.id,\n    transit_router_id=default_transit_router.transit_router_id,\n    vbr_id=default_virtual_border_router.id,\n    auto_publish_route_enabled=True,\n    transit_router_attachment_name=name,\n    transit_router_attachment_description=name)\ndefault_transit_router_route_table = alicloud.cen.TransitRouterRouteTable(\"default\",\n    transit_router_id=default_transit_router.transit_router_id,\n    transit_router_route_table_name=name)\ndefault_transit_router_route_table_propagation = alicloud.cen.TransitRouterRouteTablePropagation(\"default\",\n    transit_router_attachment_id=default_transit_router_vbr_attachment.transit_router_attachment_id,\n    transit_router_route_table_id=default_transit_router_route_table.transit_router_route_table_id)\nids = alicloud.cen.get_transit_router_route_table_propagations_output(transit_router_route_table_id=default_transit_router_route_table_propagation.transit_router_route_table_id,\n    ids=[default_transit_router_route_table_propagation.transit_router_attachment_id])\npulumi.export(\"cenTransitRouterRouteTablePropagationId0\", ids.propagations[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"^preserved-NODELETING\",\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 1,\n        Max = 2999,\n    });\n\n    var defaultInstance = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        CenInstanceName = name,\n        ProtectionLevel = \"REDUCED\",\n    });\n\n    var defaultTransitRouter = new AliCloud.Cen.TransitRouter(\"default\", new()\n    {\n        CenId = defaultInstance.Id,\n    });\n\n    var defaultVirtualBorderRouter = new AliCloud.ExpressConnect.VirtualBorderRouter(\"default\", new()\n    {\n        LocalGatewayIp = \"10.0.0.1\",\n        PeerGatewayIp = \"10.0.0.2\",\n        PeeringSubnetMask = \"255.255.255.252\",\n        PhysicalConnectionId = @default.Apply(@default =\u003e @default.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Connections[0]?.Id)),\n        VirtualBorderRouterName = name,\n        VlanId = defaultInteger.Id,\n        MinRxInterval = 1000,\n        MinTxInterval = 1000,\n        DetectMultiplier = 10,\n    });\n\n    var defaultTransitRouterVbrAttachment = new AliCloud.Cen.TransitRouterVbrAttachment(\"default\", new()\n    {\n        CenId = defaultInstance.Id,\n        TransitRouterId = defaultTransitRouter.TransitRouterId,\n        VbrId = defaultVirtualBorderRouter.Id,\n        AutoPublishRouteEnabled = true,\n        TransitRouterAttachmentName = name,\n        TransitRouterAttachmentDescription = name,\n    });\n\n    var defaultTransitRouterRouteTable = new AliCloud.Cen.TransitRouterRouteTable(\"default\", new()\n    {\n        TransitRouterId = defaultTransitRouter.TransitRouterId,\n        TransitRouterRouteTableName = name,\n    });\n\n    var defaultTransitRouterRouteTablePropagation = new AliCloud.Cen.TransitRouterRouteTablePropagation(\"default\", new()\n    {\n        TransitRouterAttachmentId = defaultTransitRouterVbrAttachment.TransitRouterAttachmentId,\n        TransitRouterRouteTableId = defaultTransitRouterRouteTable.TransitRouterRouteTableId,\n    });\n\n    var ids = AliCloud.Cen.GetTransitRouterRouteTablePropagations.Invoke(new()\n    {\n        TransitRouterRouteTableId = defaultTransitRouterRouteTablePropagation.TransitRouterRouteTableId,\n        Ids = new[]\n        {\n            defaultTransitRouterRouteTablePropagation.TransitRouterAttachmentId,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cenTransitRouterRouteTablePropagationId0\"] = ids.Apply(getTransitRouterRouteTablePropagationsResult =\u003e getTransitRouterRouteTablePropagationsResult.Propagations[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^preserved-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 1,\n\t\t\tMax: 2999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tProtectionLevel: pulumi.String(\"REDUCED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouter, err := cen.NewTransitRouter(ctx, \"default\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId: defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultVirtualBorderRouter, err := expressconnect.NewVirtualBorderRouter(ctx, \"default\", \u0026expressconnect.VirtualBorderRouterArgs{\n\t\t\tLocalGatewayIp:          pulumi.String(\"10.0.0.1\"),\n\t\t\tPeerGatewayIp:           pulumi.String(\"10.0.0.2\"),\n\t\t\tPeeringSubnetMask:       pulumi.String(\"255.255.255.252\"),\n\t\t\tPhysicalConnectionId:    pulumi.String(_default.Connections[0].Id),\n\t\t\tVirtualBorderRouterName: pulumi.String(name),\n\t\t\tVlanId:                  defaultInteger.Id,\n\t\t\tMinRxInterval:           pulumi.Int(1000),\n\t\t\tMinTxInterval:           pulumi.Int(1000),\n\t\t\tDetectMultiplier:        pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouterVbrAttachment, err := cen.NewTransitRouterVbrAttachment(ctx, \"default\", \u0026cen.TransitRouterVbrAttachmentArgs{\n\t\t\tCenId:                              defaultInstance.ID(),\n\t\t\tTransitRouterId:                    defaultTransitRouter.TransitRouterId,\n\t\t\tVbrId:                              defaultVirtualBorderRouter.ID(),\n\t\t\tAutoPublishRouteEnabled:            pulumi.Bool(true),\n\t\t\tTransitRouterAttachmentName:        pulumi.String(name),\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouterRouteTable, err := cen.NewTransitRouterRouteTable(ctx, \"default\", \u0026cen.TransitRouterRouteTableArgs{\n\t\t\tTransitRouterId:             defaultTransitRouter.TransitRouterId,\n\t\t\tTransitRouterRouteTableName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouterRouteTablePropagation, err := cen.NewTransitRouterRouteTablePropagation(ctx, \"default\", \u0026cen.TransitRouterRouteTablePropagationArgs{\n\t\t\tTransitRouterAttachmentId: defaultTransitRouterVbrAttachment.TransitRouterAttachmentId,\n\t\t\tTransitRouterRouteTableId: defaultTransitRouterRouteTable.TransitRouterRouteTableId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := cen.GetTransitRouterRouteTablePropagationsOutput(ctx, cen.GetTransitRouterRouteTablePropagationsOutputArgs{\n\t\t\tTransitRouterRouteTableId: defaultTransitRouterRouteTablePropagation.TransitRouterRouteTableId,\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultTransitRouterRouteTablePropagation.TransitRouterAttachmentId,\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"cenTransitRouterRouteTablePropagationId0\", ids.ApplyT(func(ids cen.GetTransitRouterRouteTablePropagationsResult) (*string, error) {\n\t\t\treturn \u0026ids.Propagations[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouter;\nimport com.pulumi.alicloud.expressconnect.VirtualBorderRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVbrAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVbrAttachmentArgs;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTable;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTableArgs;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTablePropagation;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTablePropagationArgs;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterRouteTablePropagationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"^preserved-NODELETING\")\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(1)\n            .max(2999)\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .protectionLevel(\"REDUCED\")\n            .build());\n\n        var defaultTransitRouter = new TransitRouter(\"defaultTransitRouter\", TransitRouterArgs.builder()\n            .cenId(defaultInstance.id())\n            .build());\n\n        var defaultVirtualBorderRouter = new VirtualBorderRouter(\"defaultVirtualBorderRouter\", VirtualBorderRouterArgs.builder()\n            .localGatewayIp(\"10.0.0.1\")\n            .peerGatewayIp(\"10.0.0.2\")\n            .peeringSubnetMask(\"255.255.255.252\")\n            .physicalConnectionId(default_.connections()[0].id())\n            .virtualBorderRouterName(name)\n            .vlanId(defaultInteger.id())\n            .minRxInterval(1000)\n            .minTxInterval(1000)\n            .detectMultiplier(10)\n            .build());\n\n        var defaultTransitRouterVbrAttachment = new TransitRouterVbrAttachment(\"defaultTransitRouterVbrAttachment\", TransitRouterVbrAttachmentArgs.builder()\n            .cenId(defaultInstance.id())\n            .transitRouterId(defaultTransitRouter.transitRouterId())\n            .vbrId(defaultVirtualBorderRouter.id())\n            .autoPublishRouteEnabled(true)\n            .transitRouterAttachmentName(name)\n            .transitRouterAttachmentDescription(name)\n            .build());\n\n        var defaultTransitRouterRouteTable = new TransitRouterRouteTable(\"defaultTransitRouterRouteTable\", TransitRouterRouteTableArgs.builder()\n            .transitRouterId(defaultTransitRouter.transitRouterId())\n            .transitRouterRouteTableName(name)\n            .build());\n\n        var defaultTransitRouterRouteTablePropagation = new TransitRouterRouteTablePropagation(\"defaultTransitRouterRouteTablePropagation\", TransitRouterRouteTablePropagationArgs.builder()\n            .transitRouterAttachmentId(defaultTransitRouterVbrAttachment.transitRouterAttachmentId())\n            .transitRouterRouteTableId(defaultTransitRouterRouteTable.transitRouterRouteTableId())\n            .build());\n\n        final var ids = CenFunctions.getTransitRouterRouteTablePropagations(GetTransitRouterRouteTablePropagationsArgs.builder()\n            .transitRouterRouteTableId(defaultTransitRouterRouteTablePropagation.transitRouterRouteTableId())\n            .ids(defaultTransitRouterRouteTablePropagation.transitRouterAttachmentId())\n            .build());\n\n        ctx.export(\"cenTransitRouterRouteTablePropagationId0\", ids.applyValue(_ids -\u003e _ids.propagations()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 1\n      max: 2999\n  defaultInstance:\n    type: alicloud:cen:Instance\n    name: default\n    properties:\n      cenInstanceName: ${name}\n      protectionLevel: REDUCED\n  defaultTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: default\n    properties:\n      cenId: ${defaultInstance.id}\n  defaultVirtualBorderRouter:\n    type: alicloud:expressconnect:VirtualBorderRouter\n    name: default\n    properties:\n      localGatewayIp: 10.0.0.1\n      peerGatewayIp: 10.0.0.2\n      peeringSubnetMask: 255.255.255.252\n      physicalConnectionId: ${default.connections[0].id}\n      virtualBorderRouterName: ${name}\n      vlanId: ${defaultInteger.id}\n      minRxInterval: 1000\n      minTxInterval: 1000\n      detectMultiplier: 10\n  defaultTransitRouterVbrAttachment:\n    type: alicloud:cen:TransitRouterVbrAttachment\n    name: default\n    properties:\n      cenId: ${defaultInstance.id}\n      transitRouterId: ${defaultTransitRouter.transitRouterId}\n      vbrId: ${defaultVirtualBorderRouter.id}\n      autoPublishRouteEnabled: true\n      transitRouterAttachmentName: ${name}\n      transitRouterAttachmentDescription: ${name}\n  defaultTransitRouterRouteTable:\n    type: alicloud:cen:TransitRouterRouteTable\n    name: default\n    properties:\n      transitRouterId: ${defaultTransitRouter.transitRouterId}\n      transitRouterRouteTableName: ${name}\n  defaultTransitRouterRouteTablePropagation:\n    type: alicloud:cen:TransitRouterRouteTablePropagation\n    name: default\n    properties:\n      transitRouterAttachmentId: ${defaultTransitRouterVbrAttachment.transitRouterAttachmentId}\n      transitRouterRouteTableId: ${defaultTransitRouterRouteTable.transitRouterRouteTableId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: ^preserved-NODELETING\n  ids:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterRouteTablePropagations\n      arguments:\n        transitRouterRouteTableId: ${defaultTransitRouterRouteTablePropagation.transitRouterRouteTableId}\n        ids:\n          - ${defaultTransitRouterRouteTablePropagation.transitRouterAttachmentId}\noutputs:\n  cenTransitRouterRouteTablePropagationId0: ${ids.propagations[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterRouteTablePropagations.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Transit Router Route Table Propagation IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the route learning correlation. Valid values: `Active`, `Enabling`, `Disabling`.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the network instance connection.\n"},"transitRouterRouteTableId":{"type":"string","description":"The ID of the route table of the Enterprise Edition transit router.\n"}},"type":"object","required":["transitRouterRouteTableId"]},"outputs":{"description":"A collection of values returned by getTransitRouterRouteTablePropagations.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"propagations":{"description":"A list of Transit Router Route Table Propagations. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getTransitRouterRouteTablePropagationsPropagation:getTransitRouterRouteTablePropagationsPropagation"},"type":"array"},"status":{"description":"The status of the route learning correlation.\n","type":"string"},"transitRouterAttachmentId":{"description":"The ID of the network instance connection.\n","type":"string"},"transitRouterRouteTableId":{"description":"The ID of the route table of the Enterprise Edition transit router.\n","type":"string"}},"required":["ids","propagations","transitRouterRouteTableId","id"],"type":"object"}},"alicloud:cen/getTransitRouterRouteTables:getTransitRouterRouteTables":{"description":"This data source provides the CEN Transit Router Route Tables of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.126.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.cen.Instance(\"default\", {\n    cenInstanceName: name,\n    protectionLevel: \"REDUCED\",\n});\nconst defaultTransitRouter = new alicloud.cen.TransitRouter(\"default\", {\n    cenId: _default.id,\n    transitRouterName: name,\n});\nconst defaultTransitRouterRouteTable = new alicloud.cen.TransitRouterRouteTable(\"default\", {\n    transitRouterId: defaultTransitRouter.transitRouterId,\n    transitRouterRouteTableDescription: name,\n    transitRouterRouteTableName: name,\n});\nconst ids = alicloud.cen.getTransitRouterRouteTablesOutput({\n    transitRouterId: defaultTransitRouterRouteTable.transitRouterId,\n    ids: [defaultTransitRouterRouteTable.transitRouterRouteTableId],\n});\nexport const cenTransitRouterRouteTableId0 = ids.apply(ids =\u003e ids.tables?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cen.Instance(\"default\",\n    cen_instance_name=name,\n    protection_level=\"REDUCED\")\ndefault_transit_router = alicloud.cen.TransitRouter(\"default\",\n    cen_id=default.id,\n    transit_router_name=name)\ndefault_transit_router_route_table = alicloud.cen.TransitRouterRouteTable(\"default\",\n    transit_router_id=default_transit_router.transit_router_id,\n    transit_router_route_table_description=name,\n    transit_router_route_table_name=name)\nids = alicloud.cen.get_transit_router_route_tables_output(transit_router_id=default_transit_router_route_table.transit_router_id,\n    ids=[default_transit_router_route_table.transit_router_route_table_id])\npulumi.export(\"cenTransitRouterRouteTableId0\", ids.tables[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        CenInstanceName = name,\n        ProtectionLevel = \"REDUCED\",\n    });\n\n    var defaultTransitRouter = new AliCloud.Cen.TransitRouter(\"default\", new()\n    {\n        CenId = @default.Id,\n        TransitRouterName = name,\n    });\n\n    var defaultTransitRouterRouteTable = new AliCloud.Cen.TransitRouterRouteTable(\"default\", new()\n    {\n        TransitRouterId = defaultTransitRouter.TransitRouterId,\n        TransitRouterRouteTableDescription = name,\n        TransitRouterRouteTableName = name,\n    });\n\n    var ids = AliCloud.Cen.GetTransitRouterRouteTables.Invoke(new()\n    {\n        TransitRouterId = defaultTransitRouterRouteTable.TransitRouterId,\n        Ids = new[]\n        {\n            defaultTransitRouterRouteTable.TransitRouterRouteTableId,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cenTransitRouterRouteTableId0\"] = ids.Apply(getTransitRouterRouteTablesResult =\u003e getTransitRouterRouteTablesResult.Tables[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tProtectionLevel: pulumi.String(\"REDUCED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouter, err := cen.NewTransitRouter(ctx, \"default\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId:             _default.ID(),\n\t\t\tTransitRouterName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouterRouteTable, err := cen.NewTransitRouterRouteTable(ctx, \"default\", \u0026cen.TransitRouterRouteTableArgs{\n\t\t\tTransitRouterId:                    defaultTransitRouter.TransitRouterId,\n\t\t\tTransitRouterRouteTableDescription: pulumi.String(name),\n\t\t\tTransitRouterRouteTableName:        pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := cen.GetTransitRouterRouteTablesOutput(ctx, cen.GetTransitRouterRouteTablesOutputArgs{\n\t\t\tTransitRouterId: defaultTransitRouterRouteTable.TransitRouterId,\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultTransitRouterRouteTable.TransitRouterRouteTableId,\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"cenTransitRouterRouteTableId0\", ids.ApplyT(func(ids cen.GetTransitRouterRouteTablesResult) (*string, error) {\n\t\t\treturn \u0026ids.Tables[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTable;\nimport com.pulumi.alicloud.cen.TransitRouterRouteTableArgs;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterRouteTablesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .protectionLevel(\"REDUCED\")\n            .build());\n\n        var defaultTransitRouter = new TransitRouter(\"defaultTransitRouter\", TransitRouterArgs.builder()\n            .cenId(default_.id())\n            .transitRouterName(name)\n            .build());\n\n        var defaultTransitRouterRouteTable = new TransitRouterRouteTable(\"defaultTransitRouterRouteTable\", TransitRouterRouteTableArgs.builder()\n            .transitRouterId(defaultTransitRouter.transitRouterId())\n            .transitRouterRouteTableDescription(name)\n            .transitRouterRouteTableName(name)\n            .build());\n\n        final var ids = CenFunctions.getTransitRouterRouteTables(GetTransitRouterRouteTablesArgs.builder()\n            .transitRouterId(defaultTransitRouterRouteTable.transitRouterId())\n            .ids(defaultTransitRouterRouteTable.transitRouterRouteTableId())\n            .build());\n\n        ctx.export(\"cenTransitRouterRouteTableId0\", ids.applyValue(_ids -\u003e _ids.tables()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:cen:Instance\n    properties:\n      cenInstanceName: ${name}\n      protectionLevel: REDUCED\n  defaultTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: default\n    properties:\n      cenId: ${default.id}\n      transitRouterName: ${name}\n  defaultTransitRouterRouteTable:\n    type: alicloud:cen:TransitRouterRouteTable\n    name: default\n    properties:\n      transitRouterId: ${defaultTransitRouter.transitRouterId}\n      transitRouterRouteTableDescription: ${name}\n      transitRouterRouteTableName: ${name}\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterRouteTables\n      arguments:\n        transitRouterId: ${defaultTransitRouterRouteTable.transitRouterId}\n        ids:\n          - ${defaultTransitRouterRouteTable.transitRouterRouteTableId}\noutputs:\n  cenTransitRouterRouteTableId0: ${ids.tables[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterRouteTables.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Transit Router Route Table IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Transit Router Route Table name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the route table. Valid values: `Creating`, `Active`, `Deleting`.\n"},"transitRouterId":{"type":"string","description":"The ID of the Enterprise Edition transit router.\n"},"transitRouterRouteTableIds":{"type":"array","items":{"type":"string"},"description":"A list of ID of the CEN Transit Router Route Table.\n"},"transitRouterRouteTableNames":{"type":"array","items":{"type":"string"},"description":"A list of name of the CEN Transit Router Route Table.\n"},"transitRouterRouteTableStatus":{"type":"string","description":"The status of the route table. Valid values: `Creating`, `Active`, `Deleting`.\n"},"transitRouterRouteTableType":{"type":"string","description":"The type of the route table. Valid values: `System`, `Custom`.\n"}},"type":"object","required":["transitRouterId"]},"outputs":{"description":"A collection of values returned by getTransitRouterRouteTables.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Transit Router Route Table names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the route table.\n","type":"string"},"tables":{"description":"A list of Transit Router Route Tables. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getTransitRouterRouteTablesTable:getTransitRouterRouteTablesTable"},"type":"array"},"transitRouterId":{"type":"string"},"transitRouterRouteTableIds":{"items":{"type":"string"},"type":"array"},"transitRouterRouteTableNames":{"items":{"type":"string"},"type":"array"},"transitRouterRouteTableStatus":{"type":"string"},"transitRouterRouteTableType":{"description":"The type of the route table.\n","type":"string"}},"required":["ids","names","tables","transitRouterId","id"],"type":"object"}},"alicloud:cen/getTransitRouterService:getTransitRouterService":{"description":"Using this data source can open CEN Transit Router Service automatically. If the service has been opened, it will return opened.\n\nFor information about CEN and how to use it, see [What is CEN](https://www.alibabacloud.com/help/en/doc-detail/59870.htm).\n\n\u003e **NOTE:** Available since v1.139.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.cen.getTransitRouterService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.cen.get_transit_router_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Cen.GetTransitRouterService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cen.GetTransitRouterService(ctx, \u0026cen.GetTransitRouterServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = CenFunctions.getTransitRouterService(GetTransitRouterServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the CEN Transit Router Service that means you have read and agreed the [CEN Terms of Service](https://help.aliyun.com/document_detail/66667.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTransitRouterService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:cen/getTransitRouterVbrAttachments:getTransitRouterVbrAttachments":{"description":"This data source provides CEN Transit Router VBR Attachments available to the user.[What is Cen Transit Router VBR Attachments](https://help.aliyun.com/document_detail/261226.html)\n\n\u003e **NOTE:** Available in 1.126.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cen.getTransitRouterVbrAttachments({\n    cenId: \"cen-id1\",\n});\nexport const firstTransitRouterVbrAttachmentsVbrId = _default.then(_default =\u003e _default.transitRouterAttachments[0].vbrId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cen.get_transit_router_vbr_attachments(cen_id=\"cen-id1\")\npulumi.export(\"firstTransitRouterVbrAttachmentsVbrId\", default.transit_router_attachments[0][\"vbrId\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Cen.GetTransitRouterVbrAttachments.Invoke(new()\n    {\n        CenId = \"cen-id1\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstTransitRouterVbrAttachmentsVbrId\"] = @default.Apply(@default =\u003e @default.Apply(getTransitRouterVbrAttachmentsResult =\u003e getTransitRouterVbrAttachmentsResult.TransitRouterAttachments[0].VbrId)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := cen.GetTransitRouterVbrAttachments(ctx, \u0026cen.GetTransitRouterVbrAttachmentsArgs{\n\t\t\tCenId: \"cen-id1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstTransitRouterVbrAttachmentsVbrId\", _default.TransitRouterAttachments[0].VbrId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterVbrAttachmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CenFunctions.getTransitRouterVbrAttachments(GetTransitRouterVbrAttachmentsArgs.builder()\n            .cenId(\"cen-id1\")\n            .build());\n\n        ctx.export(\"firstTransitRouterVbrAttachmentsVbrId\", default_.transitRouterAttachments()[0].vbrId());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterVbrAttachments\n      arguments:\n        cenId: cen-id1\noutputs:\n  firstTransitRouterVbrAttachmentsVbrId: ${default.transitRouterAttachments[0].vbrId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterVbrAttachments.\n","properties":{"cenId":{"type":"string","description":"ID of the CEN instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of resource id. The element value is same as \u003cspan pulumi-lang-nodejs=\"`transitRouterId`\" pulumi-lang-dotnet=\"`TransitRouterId`\" pulumi-lang-go=\"`transitRouterId`\" pulumi-lang-python=\"`transit_router_id`\" pulumi-lang-yaml=\"`transitRouterId`\" pulumi-lang-java=\"`transitRouterId`\"\u003e`transit_router_id`\u003c/span\u003e.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values `Attached`, `Attaching` and `Detaching`.\n"},"transitRouterId":{"type":"string","description":"ID of the transit router.\n"}},"type":"object","required":["cenId"]},"outputs":{"description":"A collection of values returned by getTransitRouterVbrAttachments.\n","properties":{"attachments":{"description":"A list of CEN Transit Router VBR Attachments. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getTransitRouterVbrAttachmentsAttachment:getTransitRouterVbrAttachmentsAttachment"},"type":"array"},"cenId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of CEN Transit Router VBR attachment IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the transit router attachment.\n","type":"string"},"transitRouterId":{"type":"string"}},"required":["attachments","cenId","ids","id"],"type":"object"}},"alicloud:cen/getTransitRouterVpcAttachments:getTransitRouterVpcAttachments":{"description":"This data source provides the CEN Transit Router VPC Attachments of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.126.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[0],\n}));\nconst defaultMaster = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[1],\n}));\nconst defaultInstance = new alicloud.cen.Instance(\"default\", {\n    cenInstanceName: name,\n    protectionLevel: \"REDUCED\",\n});\nconst defaultTransitRouter = new alicloud.cen.TransitRouter(\"default\", {cenId: defaultInstance.id});\nconst defaultTransitRouterVpcAttachment = new alicloud.cen.TransitRouterVpcAttachment(\"default\", {\n    cenId: defaultInstance.id,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    transitRouterId: defaultTransitRouter.transitRouterId,\n    transitRouterAttachmentName: name,\n    transitRouterAttachmentDescription: name,\n    zoneMappings: [\n        {\n            vswitchId: defaultMaster.then(defaultMaster =\u003e defaultMaster.vswitches?.[0]?.id),\n            zoneId: defaultMaster.then(defaultMaster =\u003e defaultMaster.vswitches?.[0]?.zoneId),\n        },\n        {\n            vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.id),\n            zoneId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.zoneId),\n        },\n    ],\n});\nconst ids = alicloud.cen.getTransitRouterVpcAttachmentsOutput({\n    ids: [defaultTransitRouterVpcAttachment.id],\n    cenId: defaultInstance.id,\n});\nexport const cenTransitRouterVpcAttachmentsId0 = ids.apply(ids =\u003e ids.attachments?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones()\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[0])\ndefault_master = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[1])\ndefault_instance = alicloud.cen.Instance(\"default\",\n    cen_instance_name=name,\n    protection_level=\"REDUCED\")\ndefault_transit_router = alicloud.cen.TransitRouter(\"default\", cen_id=default_instance.id)\ndefault_transit_router_vpc_attachment = alicloud.cen.TransitRouterVpcAttachment(\"default\",\n    cen_id=default_instance.id,\n    vpc_id=default_get_networks.ids[0],\n    transit_router_id=default_transit_router.transit_router_id,\n    transit_router_attachment_name=name,\n    transit_router_attachment_description=name,\n    zone_mappings=[\n        {\n            \"vswitch_id\": default_master.vswitches[0].id,\n            \"zone_id\": default_master.vswitches[0].zone_id,\n        },\n        {\n            \"vswitch_id\": default_get_switches.vswitches[0].id,\n            \"zone_id\": default_get_switches.vswitches[0].zone_id,\n        },\n    ])\nids = alicloud.cen.get_transit_router_vpc_attachments_output(ids=[default_transit_router_vpc_attachment.id],\n    cen_id=default_instance.id)\npulumi.export(\"cenTransitRouterVpcAttachmentsId0\", ids.attachments[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke();\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n    });\n\n    var defaultMaster = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[1]),\n    });\n\n    var defaultInstance = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        CenInstanceName = name,\n        ProtectionLevel = \"REDUCED\",\n    });\n\n    var defaultTransitRouter = new AliCloud.Cen.TransitRouter(\"default\", new()\n    {\n        CenId = defaultInstance.Id,\n    });\n\n    var defaultTransitRouterVpcAttachment = new AliCloud.Cen.TransitRouterVpcAttachment(\"default\", new()\n    {\n        CenId = defaultInstance.Id,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        TransitRouterId = defaultTransitRouter.TransitRouterId,\n        TransitRouterAttachmentName = name,\n        TransitRouterAttachmentDescription = name,\n        ZoneMappings = new[]\n        {\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                VswitchId = defaultMaster.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.Id),\n                ZoneId = defaultMaster.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.ZoneId),\n            },\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.Id),\n                ZoneId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.ZoneId),\n            },\n        },\n    });\n\n    var ids = AliCloud.Cen.GetTransitRouterVpcAttachments.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultTransitRouterVpcAttachment.Id,\n        },\n        CenId = defaultInstance.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cenTransitRouterVpcAttachmentsId0\"] = ids.Apply(getTransitRouterVpcAttachmentsResult =\u003e getTransitRouterVpcAttachmentsResult.Attachments[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultMaster, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Ids[1]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t\tProtectionLevel: pulumi.String(\"REDUCED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouter, err := cen.NewTransitRouter(ctx, \"default\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId: defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouterVpcAttachment, err := cen.NewTransitRouterVpcAttachment(ctx, \"default\", \u0026cen.TransitRouterVpcAttachmentArgs{\n\t\t\tCenId:                              defaultInstance.ID(),\n\t\t\tVpcId:                              pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t\tTransitRouterId:                    defaultTransitRouter.TransitRouterId,\n\t\t\tTransitRouterAttachmentName:        pulumi.String(name),\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(name),\n\t\t\tZoneMappings: cen.TransitRouterVpcAttachmentZoneMappingArray{\n\t\t\t\t\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\n\t\t\t\t\tVswitchId: pulumi.String(defaultMaster.Vswitches[0].Id),\n\t\t\t\t\tZoneId:    pulumi.String(defaultMaster.Vswitches[0].ZoneId),\n\t\t\t\t},\n\t\t\t\t\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\n\t\t\t\t\tVswitchId: pulumi.String(defaultGetSwitches.Vswitches[0].Id),\n\t\t\t\t\tZoneId:    pulumi.String(defaultGetSwitches.Vswitches[0].ZoneId),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := cen.GetTransitRouterVpcAttachmentsOutput(ctx, cen.GetTransitRouterVpcAttachmentsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultTransitRouterVpcAttachment.ID(),\n\t\t\t},\n\t\t\tCenId: defaultInstance.ID(),\n\t\t}, nil)\n\t\tctx.Export(\"cenTransitRouterVpcAttachmentsId0\", ids.ApplyT(func(ids cen.GetTransitRouterVpcAttachmentsResult) (*string, error) {\n\t\t\treturn \u0026ids.Attachments[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachmentArgs;\nimport com.pulumi.alicloud.cen.inputs.TransitRouterVpcAttachmentZoneMappingArgs;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterVpcAttachmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[0])\n            .build());\n\n        final var defaultMaster = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[1])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .protectionLevel(\"REDUCED\")\n            .build());\n\n        var defaultTransitRouter = new TransitRouter(\"defaultTransitRouter\", TransitRouterArgs.builder()\n            .cenId(defaultInstance.id())\n            .build());\n\n        var defaultTransitRouterVpcAttachment = new TransitRouterVpcAttachment(\"defaultTransitRouterVpcAttachment\", TransitRouterVpcAttachmentArgs.builder()\n            .cenId(defaultInstance.id())\n            .vpcId(defaultGetNetworks.ids()[0])\n            .transitRouterId(defaultTransitRouter.transitRouterId())\n            .transitRouterAttachmentName(name)\n            .transitRouterAttachmentDescription(name)\n            .zoneMappings(            \n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .vswitchId(defaultMaster.vswitches()[0].id())\n                    .zoneId(defaultMaster.vswitches()[0].zoneId())\n                    .build(),\n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .vswitchId(defaultGetSwitches.vswitches()[0].id())\n                    .zoneId(defaultGetSwitches.vswitches()[0].zoneId())\n                    .build())\n            .build());\n\n        final var ids = CenFunctions.getTransitRouterVpcAttachments(GetTransitRouterVpcAttachmentsArgs.builder()\n            .ids(defaultTransitRouterVpcAttachment.id())\n            .cenId(defaultInstance.id())\n            .build());\n\n        ctx.export(\"cenTransitRouterVpcAttachmentsId0\", ids.applyValue(_ids -\u003e _ids.attachments()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInstance:\n    type: alicloud:cen:Instance\n    name: default\n    properties:\n      cenInstanceName: ${name}\n      protectionLevel: REDUCED\n  defaultTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: default\n    properties:\n      cenId: ${defaultInstance.id}\n  defaultTransitRouterVpcAttachment:\n    type: alicloud:cen:TransitRouterVpcAttachment\n    name: default\n    properties:\n      cenId: ${defaultInstance.id}\n      vpcId: ${defaultGetNetworks.ids[0]}\n      transitRouterId: ${defaultTransitRouter.transitRouterId}\n      transitRouterAttachmentName: ${name}\n      transitRouterAttachmentDescription: ${name}\n      zoneMappings:\n        - vswitchId: ${defaultMaster.vswitches[0].id}\n          zoneId: ${defaultMaster.vswitches[0].zoneId}\n        - vswitchId: ${defaultGetSwitches.vswitches[0].id}\n          zoneId: ${defaultGetSwitches.vswitches[0].zoneId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments: {}\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[0]}\n  defaultMaster:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[1]}\n  ids:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterVpcAttachments\n      arguments:\n        ids:\n          - ${defaultTransitRouterVpcAttachment.id}\n        cenId: ${defaultInstance.id}\noutputs:\n  cenTransitRouterVpcAttachmentsId0: ${ids.attachments[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterVpcAttachments.\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Transit Router VPC Attachment IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Transit Router VPC Attachment name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the Transit Router VPC Attachment. Valid Values: `Attached`, `Attaching`, `Detaching`.\n"},"transitRouterAttachmentId":{"type":"string","description":"The ID of the Transit Router VPC Attachment.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"}},"type":"object","required":["cenId"]},"outputs":{"description":"A collection of values returned by getTransitRouterVpcAttachments.\n","properties":{"attachments":{"description":"A list of Transit Router VPC Attachments. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getTransitRouterVpcAttachmentsAttachment:getTransitRouterVpcAttachmentsAttachment"},"type":"array"},"cenId":{"description":"(Available since v1.224.0) The ID of the CEN instance.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Transit Router VPC Attachment names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the Transit Router VPC Attachment.\n","type":"string"},"transitRouterAttachmentId":{"description":"The ID of the Transit Router VPC Attachment.\n","type":"string"},"transitRouterId":{"description":"(Available since v1.224.0) The ID of the transit router.\n","type":"string"},"vpcId":{"description":"The ID of the VPC.\n","type":"string"}},"required":["attachments","cenId","ids","names","id"],"type":"object"}},"alicloud:cen/getTransitRouterVpnAttachments:getTransitRouterVpnAttachments":{"description":"This data source provides Cen Transit Router Vpn Attachment available to the user.[What is Transit Router Vpn Attachment](https://next.api.alibabacloud.com/document/Cbn/2017-09-12/CreateTransitRouterVpnAttachment)\n\n\u003e **NOTE:** Available since v1.183.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getAccount({});\nconst defaultInstance = new alicloud.cen.Instance(\"default\", {cenInstanceName: name});\nconst defaultTransitRouter = new alicloud.cen.TransitRouter(\"default\", {cenId: defaultInstance.id});\nconst defaultTransitRouterCidr = new alicloud.cen.TransitRouterCidr(\"default\", {\n    cidr: \"192.168.10.0/24\",\n    transitRouterId: defaultTransitRouter.transitRouterId,\n    publishCidrRoute: true,\n});\nconst defaultCustomerGateway = new alicloud.vpn.CustomerGateway(\"default\", {\n    ipAddress: \"1.1.1.8\",\n    customerGatewayName: name,\n}, {\n    dependsOn: [defaultTransitRouterCidr],\n});\nconst defaultGatewayVpnAttachment = new alicloud.vpn.GatewayVpnAttachment(\"default\", {\n    networkType: \"public\",\n    localSubnet: \"0.0.0.0/0\",\n    enableTunnelsBgp: false,\n    vpnAttachmentName: name,\n    tunnelOptionsSpecifications: [\n        {\n            customerGatewayId: defaultCustomerGateway.id,\n            enableDpd: true,\n            enableNatTraversal: true,\n            tunnelIndex: 1,\n            tunnelIkeConfig: {\n                remoteId: \"2.2.2.2\",\n                ikeEncAlg: \"aes\",\n                ikeMode: \"main\",\n                ikeVersion: \"ikev1\",\n                localId: \"1.1.1.1\",\n                ikeAuthAlg: \"md5\",\n                ikeLifetime: 86100,\n                ikePfs: \"group2\",\n                psk: \"12345678\",\n            },\n            tunnelIpsecConfig: {\n                ipsecAuthAlg: \"md5\",\n                ipsecEncAlg: \"aes\",\n                ipsecLifetime: 86200,\n                ipsecPfs: \"group5\",\n            },\n        },\n        {\n            enableNatTraversal: true,\n            tunnelIndex: 2,\n            tunnelIkeConfig: {\n                localId: \"4.4.4.4\",\n                remoteId: \"5.5.5.5\",\n                ikeLifetime: 86400,\n                ikePfs: \"group5\",\n                ikeMode: \"main\",\n                ikeVersion: \"ikev2\",\n                psk: \"32333442\",\n                ikeAuthAlg: \"md5\",\n                ikeEncAlg: \"aes\",\n            },\n            tunnelIpsecConfig: {\n                ipsecEncAlg: \"aes\",\n                ipsecLifetime: 86400,\n                ipsecPfs: \"group5\",\n                ipsecAuthAlg: \"sha256\",\n            },\n            customerGatewayId: defaultCustomerGateway.id,\n            enableDpd: true,\n        },\n    ],\n    remoteSubnet: \"0.0.0.0/0\",\n});\nconst defaultTransitRouterVpnAttachment = new alicloud.cen.TransitRouterVpnAttachment(\"default\", {\n    autoPublishRouteEnabled: false,\n    transitRouterAttachmentDescription: name,\n    transitRouterAttachmentName: name,\n    cenId: defaultTransitRouter.cenId,\n    transitRouterId: defaultTransitRouter.transitRouterId,\n    vpnId: defaultGatewayVpnAttachment.id,\n    vpnOwnerId: _default.then(_default =\u003e _default.id),\n    chargeType: \"POSTPAY\",\n    tags: {\n        Created: \"TF\",\n        For: \"VpnAttachment\",\n    },\n});\nconst ids = pulumi.all([defaultTransitRouterVpnAttachment.id, defaultTransitRouterVpnAttachment.cenId, defaultTransitRouterVpnAttachment.transitRouterId]).apply(([id, cenId, transitRouterId]) =\u003e alicloud.cen.getTransitRouterVpnAttachmentsOutput({\n    ids: [id],\n    cenId: cenId,\n    transitRouterId: transitRouterId,\n}));\nexport const cenTransitRouterVpnAttachmentId0 = ids.apply(ids =\u003e ids.attachments?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_account()\ndefault_instance = alicloud.cen.Instance(\"default\", cen_instance_name=name)\ndefault_transit_router = alicloud.cen.TransitRouter(\"default\", cen_id=default_instance.id)\ndefault_transit_router_cidr = alicloud.cen.TransitRouterCidr(\"default\",\n    cidr=\"192.168.10.0/24\",\n    transit_router_id=default_transit_router.transit_router_id,\n    publish_cidr_route=True)\ndefault_customer_gateway = alicloud.vpn.CustomerGateway(\"default\",\n    ip_address=\"1.1.1.8\",\n    customer_gateway_name=name,\n    opts = pulumi.ResourceOptions(depends_on=[default_transit_router_cidr]))\ndefault_gateway_vpn_attachment = alicloud.vpn.GatewayVpnAttachment(\"default\",\n    network_type=\"public\",\n    local_subnet=\"0.0.0.0/0\",\n    enable_tunnels_bgp=False,\n    vpn_attachment_name=name,\n    tunnel_options_specifications=[\n        {\n            \"customer_gateway_id\": default_customer_gateway.id,\n            \"enable_dpd\": True,\n            \"enable_nat_traversal\": True,\n            \"tunnel_index\": 1,\n            \"tunnel_ike_config\": {\n                \"remote_id\": \"2.2.2.2\",\n                \"ike_enc_alg\": \"aes\",\n                \"ike_mode\": \"main\",\n                \"ike_version\": \"ikev1\",\n                \"local_id\": \"1.1.1.1\",\n                \"ike_auth_alg\": \"md5\",\n                \"ike_lifetime\": 86100,\n                \"ike_pfs\": \"group2\",\n                \"psk\": \"12345678\",\n            },\n            \"tunnel_ipsec_config\": {\n                \"ipsec_auth_alg\": \"md5\",\n                \"ipsec_enc_alg\": \"aes\",\n                \"ipsec_lifetime\": 86200,\n                \"ipsec_pfs\": \"group5\",\n            },\n        },\n        {\n            \"enable_nat_traversal\": True,\n            \"tunnel_index\": 2,\n            \"tunnel_ike_config\": {\n                \"local_id\": \"4.4.4.4\",\n                \"remote_id\": \"5.5.5.5\",\n                \"ike_lifetime\": 86400,\n                \"ike_pfs\": \"group5\",\n                \"ike_mode\": \"main\",\n                \"ike_version\": \"ikev2\",\n                \"psk\": \"32333442\",\n                \"ike_auth_alg\": \"md5\",\n                \"ike_enc_alg\": \"aes\",\n            },\n            \"tunnel_ipsec_config\": {\n                \"ipsec_enc_alg\": \"aes\",\n                \"ipsec_lifetime\": 86400,\n                \"ipsec_pfs\": \"group5\",\n                \"ipsec_auth_alg\": \"sha256\",\n            },\n            \"customer_gateway_id\": default_customer_gateway.id,\n            \"enable_dpd\": True,\n        },\n    ],\n    remote_subnet=\"0.0.0.0/0\")\ndefault_transit_router_vpn_attachment = alicloud.cen.TransitRouterVpnAttachment(\"default\",\n    auto_publish_route_enabled=False,\n    transit_router_attachment_description=name,\n    transit_router_attachment_name=name,\n    cen_id=default_transit_router.cen_id,\n    transit_router_id=default_transit_router.transit_router_id,\n    vpn_id=default_gateway_vpn_attachment.id,\n    vpn_owner_id=default.id,\n    charge_type=\"POSTPAY\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"VpnAttachment\",\n    })\nids = pulumi.Output.all(\n    id=default_transit_router_vpn_attachment.id,\n    cen_id=default_transit_router_vpn_attachment.cen_id,\n    transit_router_id=default_transit_router_vpn_attachment.transit_router_id\n).apply(lambda resolved_outputs: alicloud.cen.get_transit_router_vpn_attachments_output(ids=[resolved_outputs['id']],\n    cen_id=resolved_outputs['cen_id'],\n    transit_router_id=resolved_outputs['transit_router_id']))\n\npulumi.export(\"cenTransitRouterVpnAttachmentId0\", ids.attachments[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var defaultInstance = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        CenInstanceName = name,\n    });\n\n    var defaultTransitRouter = new AliCloud.Cen.TransitRouter(\"default\", new()\n    {\n        CenId = defaultInstance.Id,\n    });\n\n    var defaultTransitRouterCidr = new AliCloud.Cen.TransitRouterCidr(\"default\", new()\n    {\n        Cidr = \"192.168.10.0/24\",\n        TransitRouterId = defaultTransitRouter.TransitRouterId,\n        PublishCidrRoute = true,\n    });\n\n    var defaultCustomerGateway = new AliCloud.Vpn.CustomerGateway(\"default\", new()\n    {\n        IpAddress = \"1.1.1.8\",\n        CustomerGatewayName = name,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            defaultTransitRouterCidr,\n        },\n    });\n\n    var defaultGatewayVpnAttachment = new AliCloud.Vpn.GatewayVpnAttachment(\"default\", new()\n    {\n        NetworkType = \"public\",\n        LocalSubnet = \"0.0.0.0/0\",\n        EnableTunnelsBgp = false,\n        VpnAttachmentName = name,\n        TunnelOptionsSpecifications = new[]\n        {\n            new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationArgs\n            {\n                CustomerGatewayId = defaultCustomerGateway.Id,\n                EnableDpd = true,\n                EnableNatTraversal = true,\n                TunnelIndex = 1,\n                TunnelIkeConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs\n                {\n                    RemoteId = \"2.2.2.2\",\n                    IkeEncAlg = \"aes\",\n                    IkeMode = \"main\",\n                    IkeVersion = \"ikev1\",\n                    LocalId = \"1.1.1.1\",\n                    IkeAuthAlg = \"md5\",\n                    IkeLifetime = 86100,\n                    IkePfs = \"group2\",\n                    Psk = \"12345678\",\n                },\n                TunnelIpsecConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs\n                {\n                    IpsecAuthAlg = \"md5\",\n                    IpsecEncAlg = \"aes\",\n                    IpsecLifetime = 86200,\n                    IpsecPfs = \"group5\",\n                },\n            },\n            new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationArgs\n            {\n                EnableNatTraversal = true,\n                TunnelIndex = 2,\n                TunnelIkeConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs\n                {\n                    LocalId = \"4.4.4.4\",\n                    RemoteId = \"5.5.5.5\",\n                    IkeLifetime = 86400,\n                    IkePfs = \"group5\",\n                    IkeMode = \"main\",\n                    IkeVersion = \"ikev2\",\n                    Psk = \"32333442\",\n                    IkeAuthAlg = \"md5\",\n                    IkeEncAlg = \"aes\",\n                },\n                TunnelIpsecConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs\n                {\n                    IpsecEncAlg = \"aes\",\n                    IpsecLifetime = 86400,\n                    IpsecPfs = \"group5\",\n                    IpsecAuthAlg = \"sha256\",\n                },\n                CustomerGatewayId = defaultCustomerGateway.Id,\n                EnableDpd = true,\n            },\n        },\n        RemoteSubnet = \"0.0.0.0/0\",\n    });\n\n    var defaultTransitRouterVpnAttachment = new AliCloud.Cen.TransitRouterVpnAttachment(\"default\", new()\n    {\n        AutoPublishRouteEnabled = false,\n        TransitRouterAttachmentDescription = name,\n        TransitRouterAttachmentName = name,\n        CenId = defaultTransitRouter.CenId,\n        TransitRouterId = defaultTransitRouter.TransitRouterId,\n        VpnId = defaultGatewayVpnAttachment.Id,\n        VpnOwnerId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        ChargeType = \"POSTPAY\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"VpnAttachment\" },\n        },\n    });\n\n    var ids = AliCloud.Cen.GetTransitRouterVpnAttachments.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultTransitRouterVpnAttachment.Id,\n        },\n        CenId = defaultTransitRouterVpnAttachment.CenId,\n        TransitRouterId = defaultTransitRouterVpnAttachment.TransitRouterId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cenTransitRouterVpnAttachmentId0\"] = ids.Apply(getTransitRouterVpnAttachmentsResult =\u003e getTransitRouterVpnAttachmentsResult.Attachments[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouter, err := cen.NewTransitRouter(ctx, \"default\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId: defaultInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouterCidr, err := cen.NewTransitRouterCidr(ctx, \"default\", \u0026cen.TransitRouterCidrArgs{\n\t\t\tCidr:             pulumi.String(\"192.168.10.0/24\"),\n\t\t\tTransitRouterId:  defaultTransitRouter.TransitRouterId,\n\t\t\tPublishCidrRoute: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCustomerGateway, err := vpn.NewCustomerGateway(ctx, \"default\", \u0026vpn.CustomerGatewayArgs{\n\t\t\tIpAddress:           pulumi.String(\"1.1.1.8\"),\n\t\t\tCustomerGatewayName: pulumi.String(name),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdefaultTransitRouterCidr,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGatewayVpnAttachment, err := vpn.NewGatewayVpnAttachment(ctx, \"default\", \u0026vpn.GatewayVpnAttachmentArgs{\n\t\t\tNetworkType:       pulumi.String(\"public\"),\n\t\t\tLocalSubnet:       pulumi.String(\"0.0.0.0/0\"),\n\t\t\tEnableTunnelsBgp:  pulumi.Bool(false),\n\t\t\tVpnAttachmentName: pulumi.String(name),\n\t\t\tTunnelOptionsSpecifications: vpn.GatewayVpnAttachmentTunnelOptionsSpecificationArray{\n\t\t\t\t\u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationArgs{\n\t\t\t\t\tCustomerGatewayId:  defaultCustomerGateway.ID(),\n\t\t\t\t\tEnableDpd:          pulumi.Bool(true),\n\t\t\t\t\tEnableNatTraversal: pulumi.Bool(true),\n\t\t\t\t\tTunnelIndex:        pulumi.Int(1),\n\t\t\t\t\tTunnelIkeConfig: \u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs{\n\t\t\t\t\t\tRemoteId:    pulumi.String(\"2.2.2.2\"),\n\t\t\t\t\t\tIkeEncAlg:   pulumi.String(\"aes\"),\n\t\t\t\t\t\tIkeMode:     pulumi.String(\"main\"),\n\t\t\t\t\t\tIkeVersion:  pulumi.String(\"ikev1\"),\n\t\t\t\t\t\tLocalId:     pulumi.String(\"1.1.1.1\"),\n\t\t\t\t\t\tIkeAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIkeLifetime: pulumi.Int(86100),\n\t\t\t\t\t\tIkePfs:      pulumi.String(\"group2\"),\n\t\t\t\t\t\tPsk:         pulumi.String(\"12345678\"),\n\t\t\t\t\t},\n\t\t\t\t\tTunnelIpsecConfig: \u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs{\n\t\t\t\t\t\tIpsecAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIpsecEncAlg:   pulumi.String(\"aes\"),\n\t\t\t\t\t\tIpsecLifetime: pulumi.Int(86200),\n\t\t\t\t\t\tIpsecPfs:      pulumi.String(\"group5\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationArgs{\n\t\t\t\t\tEnableNatTraversal: pulumi.Bool(true),\n\t\t\t\t\tTunnelIndex:        pulumi.Int(2),\n\t\t\t\t\tTunnelIkeConfig: \u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs{\n\t\t\t\t\t\tLocalId:     pulumi.String(\"4.4.4.4\"),\n\t\t\t\t\t\tRemoteId:    pulumi.String(\"5.5.5.5\"),\n\t\t\t\t\t\tIkeLifetime: pulumi.Int(86400),\n\t\t\t\t\t\tIkePfs:      pulumi.String(\"group5\"),\n\t\t\t\t\t\tIkeMode:     pulumi.String(\"main\"),\n\t\t\t\t\t\tIkeVersion:  pulumi.String(\"ikev2\"),\n\t\t\t\t\t\tPsk:         pulumi.String(\"32333442\"),\n\t\t\t\t\t\tIkeAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\t\t\tIkeEncAlg:   pulumi.String(\"aes\"),\n\t\t\t\t\t},\n\t\t\t\t\tTunnelIpsecConfig: \u0026vpn.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs{\n\t\t\t\t\t\tIpsecEncAlg:   pulumi.String(\"aes\"),\n\t\t\t\t\t\tIpsecLifetime: pulumi.Int(86400),\n\t\t\t\t\t\tIpsecPfs:      pulumi.String(\"group5\"),\n\t\t\t\t\t\tIpsecAuthAlg:  pulumi.String(\"sha256\"),\n\t\t\t\t\t},\n\t\t\t\t\tCustomerGatewayId: defaultCustomerGateway.ID(),\n\t\t\t\t\tEnableDpd:         pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRemoteSubnet: pulumi.String(\"0.0.0.0/0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouterVpnAttachment, err := cen.NewTransitRouterVpnAttachment(ctx, \"default\", \u0026cen.TransitRouterVpnAttachmentArgs{\n\t\t\tAutoPublishRouteEnabled:            pulumi.Bool(false),\n\t\t\tTransitRouterAttachmentDescription: pulumi.String(name),\n\t\t\tTransitRouterAttachmentName:        pulumi.String(name),\n\t\t\tCenId:                              defaultTransitRouter.CenId,\n\t\t\tTransitRouterId:                    defaultTransitRouter.TransitRouterId,\n\t\t\tVpnId:                              defaultGatewayVpnAttachment.ID(),\n\t\t\tVpnOwnerId:                         pulumi.String(_default.Id),\n\t\t\tChargeType:                         pulumi.String(\"POSTPAY\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"VpnAttachment\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := pulumi.All(defaultTransitRouterVpnAttachment.ID(), defaultTransitRouterVpnAttachment.CenId, defaultTransitRouterVpnAttachment.TransitRouterId).ApplyT(func(_args []interface{}) (cen.GetTransitRouterVpnAttachmentsResult, error) {\n\t\t\tid := _args[0].(string)\n\t\t\tcenId := _args[1].(string)\n\t\t\ttransitRouterId := _args[2].(*string)\n\t\t\treturn cen.GetTransitRouterVpnAttachmentsResult(interface{}(cen.GetTransitRouterVpnAttachments(ctx, \u0026cen.GetTransitRouterVpnAttachmentsArgs{\n\t\t\t\tIds: []string{\n\t\t\t\t\tid,\n\t\t\t\t},\n\t\t\t\tCenId:           pulumi.StringRef(pulumi.StringRef(cenId)),\n\t\t\t\tTransitRouterId: pulumi.StringRef(pulumi.StringRef(transitRouterId)),\n\t\t\t}, nil))), nil\n\t\t}).(cen.GetTransitRouterVpnAttachmentsResultOutput)\n\t\tctx.Export(\"cenTransitRouterVpnAttachmentId0\", ids.ApplyT(func(ids cen.GetTransitRouterVpnAttachmentsResult) (*string, error) {\n\t\t\treturn \u0026ids.Attachments[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.TransitRouterCidr;\nimport com.pulumi.alicloud.cen.TransitRouterCidrArgs;\nimport com.pulumi.alicloud.vpn.CustomerGateway;\nimport com.pulumi.alicloud.vpn.CustomerGatewayArgs;\nimport com.pulumi.alicloud.vpn.GatewayVpnAttachment;\nimport com.pulumi.alicloud.vpn.GatewayVpnAttachmentArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentTunnelOptionsSpecificationArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVpnAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVpnAttachmentArgs;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterVpnAttachmentsArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .build());\n\n        var defaultTransitRouter = new TransitRouter(\"defaultTransitRouter\", TransitRouterArgs.builder()\n            .cenId(defaultInstance.id())\n            .build());\n\n        var defaultTransitRouterCidr = new TransitRouterCidr(\"defaultTransitRouterCidr\", TransitRouterCidrArgs.builder()\n            .cidr(\"192.168.10.0/24\")\n            .transitRouterId(defaultTransitRouter.transitRouterId())\n            .publishCidrRoute(true)\n            .build());\n\n        var defaultCustomerGateway = new CustomerGateway(\"defaultCustomerGateway\", CustomerGatewayArgs.builder()\n            .ipAddress(\"1.1.1.8\")\n            .customerGatewayName(name)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(defaultTransitRouterCidr)\n                .build());\n\n        var defaultGatewayVpnAttachment = new GatewayVpnAttachment(\"defaultGatewayVpnAttachment\", GatewayVpnAttachmentArgs.builder()\n            .networkType(\"public\")\n            .localSubnet(\"0.0.0.0/0\")\n            .enableTunnelsBgp(false)\n            .vpnAttachmentName(name)\n            .tunnelOptionsSpecifications(            \n                GatewayVpnAttachmentTunnelOptionsSpecificationArgs.builder()\n                    .customerGatewayId(defaultCustomerGateway.id())\n                    .enableDpd(true)\n                    .enableNatTraversal(true)\n                    .tunnelIndex(1)\n                    .tunnelIkeConfig(GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs.builder()\n                        .remoteId(\"2.2.2.2\")\n                        .ikeEncAlg(\"aes\")\n                        .ikeMode(\"main\")\n                        .ikeVersion(\"ikev1\")\n                        .localId(\"1.1.1.1\")\n                        .ikeAuthAlg(\"md5\")\n                        .ikeLifetime(86100)\n                        .ikePfs(\"group2\")\n                        .psk(\"12345678\")\n                        .build())\n                    .tunnelIpsecConfig(GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs.builder()\n                        .ipsecAuthAlg(\"md5\")\n                        .ipsecEncAlg(\"aes\")\n                        .ipsecLifetime(86200)\n                        .ipsecPfs(\"group5\")\n                        .build())\n                    .build(),\n                GatewayVpnAttachmentTunnelOptionsSpecificationArgs.builder()\n                    .enableNatTraversal(true)\n                    .tunnelIndex(2)\n                    .tunnelIkeConfig(GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIkeConfigArgs.builder()\n                        .localId(\"4.4.4.4\")\n                        .remoteId(\"5.5.5.5\")\n                        .ikeLifetime(86400)\n                        .ikePfs(\"group5\")\n                        .ikeMode(\"main\")\n                        .ikeVersion(\"ikev2\")\n                        .psk(\"32333442\")\n                        .ikeAuthAlg(\"md5\")\n                        .ikeEncAlg(\"aes\")\n                        .build())\n                    .tunnelIpsecConfig(GatewayVpnAttachmentTunnelOptionsSpecificationTunnelIpsecConfigArgs.builder()\n                        .ipsecEncAlg(\"aes\")\n                        .ipsecLifetime(86400)\n                        .ipsecPfs(\"group5\")\n                        .ipsecAuthAlg(\"sha256\")\n                        .build())\n                    .customerGatewayId(defaultCustomerGateway.id())\n                    .enableDpd(true)\n                    .build())\n            .remoteSubnet(\"0.0.0.0/0\")\n            .build());\n\n        var defaultTransitRouterVpnAttachment = new TransitRouterVpnAttachment(\"defaultTransitRouterVpnAttachment\", TransitRouterVpnAttachmentArgs.builder()\n            .autoPublishRouteEnabled(false)\n            .transitRouterAttachmentDescription(name)\n            .transitRouterAttachmentName(name)\n            .cenId(defaultTransitRouter.cenId())\n            .transitRouterId(defaultTransitRouter.transitRouterId())\n            .vpnId(defaultGatewayVpnAttachment.id())\n            .vpnOwnerId(default_.id())\n            .chargeType(\"POSTPAY\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"VpnAttachment\")\n            ))\n            .build());\n\n        final var ids = Output.tuple(defaultTransitRouterVpnAttachment.id(), defaultTransitRouterVpnAttachment.cenId(), defaultTransitRouterVpnAttachment.transitRouterId()).applyValue(values -\u003e {\n            var id = values.t1;\n            var cenId = values.t2;\n            var transitRouterId = values.t3;\n            return CenFunctions.getTransitRouterVpnAttachments(GetTransitRouterVpnAttachmentsArgs.builder()\n                .ids(id)\n                .cenId(cenId)\n                .transitRouterId(transitRouterId)\n                .build());\n        });\n\n        ctx.export(\"cenTransitRouterVpnAttachmentId0\", ids.applyValue(_ids -\u003e _ids.attachments()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInstance:\n    type: alicloud:cen:Instance\n    name: default\n    properties:\n      cenInstanceName: ${name}\n  defaultTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: default\n    properties:\n      cenId: ${defaultInstance.id}\n  defaultTransitRouterCidr:\n    type: alicloud:cen:TransitRouterCidr\n    name: default\n    properties:\n      cidr: 192.168.10.0/24\n      transitRouterId: ${defaultTransitRouter.transitRouterId}\n      publishCidrRoute: true\n  defaultCustomerGateway:\n    type: alicloud:vpn:CustomerGateway\n    name: default\n    properties:\n      ipAddress: 1.1.1.8\n      customerGatewayName: ${name}\n    options:\n      dependsOn:\n        - ${defaultTransitRouterCidr}\n  defaultGatewayVpnAttachment:\n    type: alicloud:vpn:GatewayVpnAttachment\n    name: default\n    properties:\n      networkType: public\n      localSubnet: 0.0.0.0/0\n      enableTunnelsBgp: 'false'\n      vpnAttachmentName: ${name}\n      tunnelOptionsSpecifications:\n        - customerGatewayId: ${defaultCustomerGateway.id}\n          enableDpd: 'true'\n          enableNatTraversal: 'true'\n          tunnelIndex: '1'\n          tunnelIkeConfig:\n            remoteId: 2.2.2.2\n            ikeEncAlg: aes\n            ikeMode: main\n            ikeVersion: ikev1\n            localId: 1.1.1.1\n            ikeAuthAlg: md5\n            ikeLifetime: '86100'\n            ikePfs: group2\n            psk: '12345678'\n          tunnelIpsecConfig:\n            ipsecAuthAlg: md5\n            ipsecEncAlg: aes\n            ipsecLifetime: '86200'\n            ipsecPfs: group5\n        - enableNatTraversal: 'true'\n          tunnelIndex: '2'\n          tunnelIkeConfig:\n            localId: 4.4.4.4\n            remoteId: 5.5.5.5\n            ikeLifetime: '86400'\n            ikePfs: group5\n            ikeMode: main\n            ikeVersion: ikev2\n            psk: '32333442'\n            ikeAuthAlg: md5\n            ikeEncAlg: aes\n          tunnelIpsecConfig:\n            ipsecEncAlg: aes\n            ipsecLifetime: '86400'\n            ipsecPfs: group5\n            ipsecAuthAlg: sha256\n          customerGatewayId: ${defaultCustomerGateway.id}\n          enableDpd: 'true'\n      remoteSubnet: 0.0.0.0/0\n  defaultTransitRouterVpnAttachment:\n    type: alicloud:cen:TransitRouterVpnAttachment\n    name: default\n    properties:\n      autoPublishRouteEnabled: false\n      transitRouterAttachmentDescription: ${name}\n      transitRouterAttachmentName: ${name}\n      cenId: ${defaultTransitRouter.cenId}\n      transitRouterId: ${defaultTransitRouter.transitRouterId}\n      vpnId: ${defaultGatewayVpnAttachment.id}\n      vpnOwnerId: ${default.id}\n      chargeType: POSTPAY\n      tags:\n        Created: TF\n        For: VpnAttachment\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  ids:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterVpnAttachments\n      arguments:\n        ids:\n          - ${defaultTransitRouterVpnAttachment.id}\n        cenId: ${defaultTransitRouterVpnAttachment.cenId}\n        transitRouterId: ${defaultTransitRouterVpnAttachment.transitRouterId}\noutputs:\n  cenTransitRouterVpnAttachmentId0: ${ids.attachments[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouterVpnAttachments.\n","properties":{"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Transit Router Vpn Attachment IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Transit Router Vpn Attachment name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The Status of Transit Router Vpn Attachment. Valid values: `Attached`, `Attaching`, `Detaching`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n","willReplaceOnChanges":true},"transitRouterAttachmentId":{"type":"string","description":"The ID of the VPN attachment.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTransitRouterVpnAttachments.\n","properties":{"attachments":{"description":"A list of Transit Router Vpn Attachment Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getTransitRouterVpnAttachmentsAttachment:getTransitRouterVpnAttachmentsAttachment"},"type":"array"},"cenId":{"description":"(Available since v1.245.0) The ID of the Cloud Enterprise Network (CEN) instance.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Transit Router Vpn Attachments.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the VPN connection.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"(Available since v1.245.0) The tag of the resource.\n","type":"object"},"transitRouterAttachmentId":{"description":"(Available since v1.245.0) The ID of the VPN attachment.\n","type":"string"},"transitRouterId":{"description":"The ID of the transit router.\n","type":"string"}},"required":["attachments","ids","names","id"],"type":"object"}},"alicloud:cen/getTransitRouters:getTransitRouters":{"description":"This data source provides CEN Transit Routers available to the user.[What is Cen Transit Routers](https://help.aliyun.com/document_detail/261219.html)\n\n\u003e **NOTE:** Available in 1.126.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cen.getTransitRouters({\n    cenId: \"cen-id1\",\n});\nexport const firstTransitRoutersType = _default.then(_default =\u003e _default.transitRouters?.[0]?.type);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cen.get_transit_routers(cen_id=\"cen-id1\")\npulumi.export(\"firstTransitRoutersType\", default.transit_routers[0].type)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Cen.GetTransitRouters.Invoke(new()\n    {\n        CenId = \"cen-id1\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstTransitRoutersType\"] = @default.Apply(@default =\u003e @default.Apply(getTransitRoutersResult =\u003e getTransitRoutersResult.TransitRouters[0]?.Type)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := cen.GetTransitRouters(ctx, \u0026cen.GetTransitRoutersArgs{\n\t\t\tCenId: \"cen-id1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstTransitRoutersType\", _default.TransitRouters[0].Type)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRoutersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CenFunctions.getTransitRouters(GetTransitRoutersArgs.builder()\n            .cenId(\"cen-id1\")\n            .build());\n\n        ctx.export(\"firstTransitRoutersType\", default_.transitRouters()[0].type());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouters\n      arguments:\n        cenId: cen-id1\noutputs:\n  firstTransitRoutersType: ${default.transitRouters[0].type}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTransitRouters.\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of resource id. The element value is same as \u003ccen_id\u003e:\u003ctransit_router_id\u003e`.\n"},"nameRegex":{"type":"string","description":"A regex string to filter CEN Transit Routers by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values `Active`, `Creating`, `Deleting` and `Updating`.\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router.\n"},"transitRouterIds":{"type":"array","items":{"type":"string"},"description":"A list of ID of the transit router.\n"}},"type":"object","required":["cenId"]},"outputs":{"description":"A collection of values returned by getTransitRouters.\n","properties":{"cenId":{"description":"The ID of the CEN instance.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of  CEN Transit Routers names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the transit router attachment.\n","type":"string"},"transitRouterId":{"description":"The ID of the transit router.\n","type":"string"},"transitRouterIds":{"items":{"type":"string"},"type":"array"},"transitRouters":{"description":"A list of CEN Transit Routers. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getTransitRoutersTransitRouter:getTransitRoutersTransitRouter"},"type":"array"}},"required":["cenId","names","transitRouters","id"],"type":"object"}},"alicloud:cen/getVbrHealthChecks:getVbrHealthChecks":{"description":"This data source provides CEN VBR Health Checks available to the user.\n\n\u003e **NOTE:** Available in 1.98.0+\n\n","inputs":{"description":"A collection of arguments for invoking getVbrHealthChecks.\n","properties":{"cenId":{"type":"string","description":"The ID of the Cloud Enterprise Network (CEN) instance.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"vbrInstanceId":{"type":"string","description":"The ID of the VBR instance.\n"},"vbrInstanceOwnerId":{"type":"integer","description":"The User ID (UID) of the account to which the VBR instance belongs.\n"},"vbrInstanceRegionId":{"type":"string","description":"The ID of the region where the VBR instance is deployed.\n"}},"type":"object","required":["vbrInstanceRegionId"]},"outputs":{"description":"A collection of values returned by getVbrHealthChecks.\n","properties":{"cenId":{"description":"The ID of the Cloud Enterprise Network (CEN) instance.\n","type":"string"},"checks":{"description":"A list of CEN VBR Heath Checks. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cen/getVbrHealthChecksCheck:getVbrHealthChecksCheck"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of the CEN VBR Heath Check IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"vbrInstanceId":{"description":"The ID of the VBR instance.\n","type":"string"},"vbrInstanceOwnerId":{"type":"integer"},"vbrInstanceRegionId":{"description":"The ID of the region where the VBR instance is deployed.\n","type":"string"}},"required":["checks","ids","vbrInstanceRegionId","id"],"type":"object"}},"alicloud:cfg/getAggregateCompliancePacks:getAggregateCompliancePacks":{"description":"This data source provides the Config Aggregate Compliance Packs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.124.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cfg.getAggregateCompliancePacks({\n    aggregatorId: \"ca-3a9b626622af001d****\",\n    ids: [\"cp-152a626622af00bc****\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstConfigAggregateCompliancePackId = example.then(example =\u003e example.packs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cfg.get_aggregate_compliance_packs(aggregator_id=\"ca-3a9b626622af001d****\",\n    ids=[\"cp-152a626622af00bc****\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstConfigAggregateCompliancePackId\", example.packs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cfg.GetAggregateCompliancePacks.Invoke(new()\n    {\n        AggregatorId = \"ca-3a9b626622af001d****\",\n        Ids = new[]\n        {\n            \"cp-152a626622af00bc****\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstConfigAggregateCompliancePackId\"] = example.Apply(getAggregateCompliancePacksResult =\u003e getAggregateCompliancePacksResult.Packs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cfg.GetAggregateCompliancePacks(ctx, \u0026cfg.GetAggregateCompliancePacksArgs{\n\t\t\tAggregatorId: \"ca-3a9b626622af001d****\",\n\t\t\tIds: []string{\n\t\t\t\t\"cp-152a626622af00bc****\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstConfigAggregateCompliancePackId\", example.Packs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cfg.CfgFunctions;\nimport com.pulumi.alicloud.cfg.inputs.GetAggregateCompliancePacksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CfgFunctions.getAggregateCompliancePacks(GetAggregateCompliancePacksArgs.builder()\n            .aggregatorId(\"ca-3a9b626622af001d****\")\n            .ids(\"cp-152a626622af00bc****\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstConfigAggregateCompliancePackId\", example.packs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cfg:getAggregateCompliancePacks\n      arguments:\n        aggregatorId: ca-3a9b626622af001d****\n        ids:\n          - cp-152a626622af00bc****\n        nameRegex: the_resource_name\noutputs:\n  firstConfigAggregateCompliancePackId: ${example.packs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAggregateCompliancePacks.\n","properties":{"aggregatorId":{"type":"string","description":"The ID of aggregator.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Aggregate Compliance Pack IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Aggregate Compliance Pack name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values `ACTIVE`, `CREATING`, `INACTIVE`.\n"}},"type":"object","required":["aggregatorId"]},"outputs":{"description":"A collection of values returned by getAggregateCompliancePacks.\n","properties":{"aggregatorId":{"type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Config Aggregate Compliance Pack names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"packs":{"description":"A list of Config Aggregate Compliance Packs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cfg/getAggregateCompliancePacksPack:getAggregateCompliancePacksPack"},"type":"array"},"status":{"description":"The status of the resource.\n","type":"string"}},"required":["aggregatorId","ids","names","packs","id"],"type":"object"}},"alicloud:cfg/getAggregateConfigRules:getAggregateConfigRules":{"description":"This data source provides the Config Aggregate Config Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.124.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cfg.getAggregateConfigRules({\n    aggregatorId: \"ca-3a9b626622af001d****\",\n    ids: [\"cr-5154626622af0034****\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstConfigAggregateConfigRuleId = example.then(example =\u003e example.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cfg.get_aggregate_config_rules(aggregator_id=\"ca-3a9b626622af001d****\",\n    ids=[\"cr-5154626622af0034****\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstConfigAggregateConfigRuleId\", example.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cfg.GetAggregateConfigRules.Invoke(new()\n    {\n        AggregatorId = \"ca-3a9b626622af001d****\",\n        Ids = new[]\n        {\n            \"cr-5154626622af0034****\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstConfigAggregateConfigRuleId\"] = example.Apply(getAggregateConfigRulesResult =\u003e getAggregateConfigRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cfg.GetAggregateConfigRules(ctx, \u0026cfg.GetAggregateConfigRulesArgs{\n\t\t\tAggregatorId: \"ca-3a9b626622af001d****\",\n\t\t\tIds: []string{\n\t\t\t\t\"cr-5154626622af0034****\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstConfigAggregateConfigRuleId\", example.Rules[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cfg.CfgFunctions;\nimport com.pulumi.alicloud.cfg.inputs.GetAggregateConfigRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CfgFunctions.getAggregateConfigRules(GetAggregateConfigRulesArgs.builder()\n            .aggregatorId(\"ca-3a9b626622af001d****\")\n            .ids(\"cr-5154626622af0034****\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstConfigAggregateConfigRuleId\", example.rules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cfg:getAggregateConfigRules\n      arguments:\n        aggregatorId: ca-3a9b626622af001d****\n        ids:\n          - cr-5154626622af0034****\n        nameRegex: the_resource_name\noutputs:\n  firstConfigAggregateConfigRuleId: ${example.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAggregateConfigRules.\n","properties":{"aggregateConfigRuleName":{"type":"string","description":"The config rule name.\n"},"aggregatorId":{"type":"string","description":"The ID of aggregator.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Aggregate Config Rule IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Aggregate Config Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"riskLevel":{"type":"integer","description":"The Risk Level. Valid values \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: critical, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: warning, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: info.\n"},"status":{"type":"string","description":"The state of the config rule, valid values: `ACTIVE`, `DELETING`, `EVALUATING` and `INACTIVE`.\n"}},"type":"object","required":["aggregatorId"]},"outputs":{"description":"A collection of values returned by getAggregateConfigRules.\n","properties":{"aggregateConfigRuleName":{"description":"The name of the rule.\n","type":"string"},"aggregatorId":{"description":"The ID of Aggregator.\n","type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Aggregate Config Rule names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"riskLevel":{"description":"The risk level of the resources that are not compliant with the rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: critical, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: warning, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: info.\n","type":"integer"},"rules":{"description":"A list of Config Aggregate Config Rules. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cfg/getAggregateConfigRulesRule:getAggregateConfigRulesRule"},"type":"array"},"status":{"description":"The status of the rule.\n","type":"string"}},"required":["aggregatorId","ids","names","rules","id"],"type":"object"}},"alicloud:cfg/getAggregateDeliveries:getAggregateDeliveries":{"description":"This data source provides the Config Aggregate Deliveries of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.172.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cfg.getAggregateDeliveries({\n    aggregatorId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const configAggregateDeliveryId1 = ids.then(ids =\u003e ids.deliveries?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cfg.get_aggregate_deliveries(aggregator_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"configAggregateDeliveryId1\", ids.deliveries[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cfg.GetAggregateDeliveries.Invoke(new()\n    {\n        AggregatorId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"configAggregateDeliveryId1\"] = ids.Apply(getAggregateDeliveriesResult =\u003e getAggregateDeliveriesResult.Deliveries[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cfg.GetAggregateDeliveries(ctx, \u0026cfg.GetAggregateDeliveriesArgs{\n\t\t\tAggregatorId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"configAggregateDeliveryId1\", ids.Deliveries[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cfg.CfgFunctions;\nimport com.pulumi.alicloud.cfg.inputs.GetAggregateDeliveriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CfgFunctions.getAggregateDeliveries(GetAggregateDeliveriesArgs.builder()\n            .aggregatorId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"configAggregateDeliveryId1\", ids.deliveries()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cfg:getAggregateDeliveries\n      arguments:\n        aggregatorId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\noutputs:\n  configAggregateDeliveryId1: ${ids.deliveries[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAggregateDeliveries.\n","properties":{"aggregatorId":{"type":"string","description":"The ID of the Aggregator.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Aggregate Delivery IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Aggregate Delivery name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"integer","description":"The status of the delivery method. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: The delivery method is disabled. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: The delivery destination is enabled.\n"}},"type":"object","required":["aggregatorId"]},"outputs":{"description":"A collection of values returned by getAggregateDeliveries.\n","properties":{"aggregatorId":{"description":"The ID of the Aggregator.\n","type":"string"},"deliveries":{"description":"A list of Config Aggregate Deliveries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cfg/getAggregateDeliveriesDelivery:getAggregateDeliveriesDelivery"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Aggregate Delivery names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the delivery method. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: The delivery method is disabled. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: The delivery destination is enabled.\n","type":"integer"}},"required":["aggregatorId","deliveries","ids","names","id"],"type":"object"}},"alicloud:cfg/getAggregators:getAggregators":{"description":"This data source provides the Config Aggregators of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.124.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cfg.getAggregators({\n    ids: [\"ca-3ce2626622af0005****\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstConfigAggregatorId = example.then(example =\u003e example.aggregators?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cfg.get_aggregators(ids=[\"ca-3ce2626622af0005****\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstConfigAggregatorId\", example.aggregators[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cfg.GetAggregators.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"ca-3ce2626622af0005****\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstConfigAggregatorId\"] = example.Apply(getAggregatorsResult =\u003e getAggregatorsResult.Aggregators[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cfg.GetAggregators(ctx, \u0026cfg.GetAggregatorsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"ca-3ce2626622af0005****\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstConfigAggregatorId\", example.Aggregators[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cfg.CfgFunctions;\nimport com.pulumi.alicloud.cfg.inputs.GetAggregatorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CfgFunctions.getAggregators(GetAggregatorsArgs.builder()\n            .ids(\"ca-3ce2626622af0005****\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstConfigAggregatorId\", example.aggregators()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cfg:getAggregators\n      arguments:\n        ids:\n          - ca-3ce2626622af0005****\n        nameRegex: the_resource_name\noutputs:\n  firstConfigAggregatorId: ${example.aggregators[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAggregators.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of aggregator ids.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by aggregator name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid Values:  \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: creating \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: normal \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: deleting.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAggregators.\n","properties":{"aggregators":{"description":"A list of config aggregators. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cfg/getAggregatorsAggregator:getAggregatorsAggregator"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Aggregator names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the resource.\n","type":"string"}},"required":["aggregators","ids","names","id"],"type":"object"}},"alicloud:cfg/getCompliancePacks:getCompliancePacks":{"description":"This data source provides the Config Compliance Packs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.124.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cfg.getCompliancePacks({\n    ids: [\"cp-152a626622af00bc****\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstConfigCompliancePackId = example.then(example =\u003e example.packs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cfg.get_compliance_packs(ids=[\"cp-152a626622af00bc****\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstConfigCompliancePackId\", example.packs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cfg.GetCompliancePacks.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"cp-152a626622af00bc****\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstConfigCompliancePackId\"] = example.Apply(getCompliancePacksResult =\u003e getCompliancePacksResult.Packs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cfg.GetCompliancePacks(ctx, \u0026cfg.GetCompliancePacksArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"cp-152a626622af00bc****\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstConfigCompliancePackId\", example.Packs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cfg.CfgFunctions;\nimport com.pulumi.alicloud.cfg.inputs.GetCompliancePacksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CfgFunctions.getCompliancePacks(GetCompliancePacksArgs.builder()\n            .ids(\"cp-152a626622af00bc****\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstConfigCompliancePackId\", example.packs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cfg:getCompliancePacks\n      arguments:\n        ids:\n          - cp-152a626622af00bc****\n        nameRegex: the_resource_name\noutputs:\n  firstConfigCompliancePackId: ${example.packs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCompliancePacks.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Compliance Pack IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Compliance Pack name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values `ACTIVE`, `CREATING`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCompliancePacks.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Compliance Pack names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"packs":{"description":"A list of Config Compliance Packs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cfg/getCompliancePacksPack:getCompliancePacksPack"},"type":"array"},"status":{"description":"The status of the resource.\n","type":"string"}},"required":["ids","names","packs","id"],"type":"object"}},"alicloud:cfg/getConfigurationRecorders:getConfigurationRecorders":{"description":"This data source provides the Config Configuration Recorders of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.99.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cfg.getConfigurationRecorders({});\nexport const listOfResourceTypes = _this.recorders[0].resourceTypes;\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cfg.get_configuration_recorders()\npulumi.export(\"listOfResourceTypes\", this[\"recorders\"][0][\"resourceTypes\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cfg.GetConfigurationRecorders.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"listOfResourceTypes\"] = @this.Recorders[0].ResourceTypes,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cfg.GetConfigurationRecorders(ctx, \u0026cfg.GetConfigurationRecordersArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"listOfResourceTypes\", this.Recorders[0].ResourceTypes)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cfg.CfgFunctions;\nimport com.pulumi.alicloud.cfg.inputs.GetConfigurationRecordersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CfgFunctions.getConfigurationRecorders(GetConfigurationRecordersArgs.builder()\n            .build());\n\n        ctx.export(\"listOfResourceTypes\", this_.recorders()[0].resourceTypes());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cfg:getConfigurationRecorders\n      arguments: {}\noutputs:\n  listOfResourceTypes: ${this.recorders[0].resourceTypes}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getConfigurationRecorders.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getConfigurationRecorders.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"recorders":{"description":"A list of Config Configuration Recorders. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cfg/getConfigurationRecordersRecorder:getConfigurationRecordersRecorder"},"type":"array"}},"required":["recorders","id"],"type":"object"}},"alicloud:cfg/getDeliveries:getDeliveries":{"description":"This data source provides the Config Deliveries of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.171.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cfg.getDeliveries({\n    ids: [\"example_id\"],\n});\nexport const configDeliveryId1 = ids.then(ids =\u003e ids.deliveries?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cfg.get_deliveries(ids=[\"example_id\"])\npulumi.export(\"configDeliveryId1\", ids.deliveries[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cfg.GetDeliveries.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"configDeliveryId1\"] = ids.Apply(getDeliveriesResult =\u003e getDeliveriesResult.Deliveries[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cfg.GetDeliveries(ctx, \u0026cfg.GetDeliveriesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"configDeliveryId1\", ids.Deliveries[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cfg.CfgFunctions;\nimport com.pulumi.alicloud.cfg.inputs.GetDeliveriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CfgFunctions.getDeliveries(GetDeliveriesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"configDeliveryId1\", ids.deliveries()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cfg:getDeliveries\n      arguments:\n        ids:\n          - example_id\noutputs:\n  configDeliveryId1: ${ids.deliveries[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDeliveries.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Delivery IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by delivery channel name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"integer","description":"The status of the delivery method. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: The delivery method is disabled. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: The delivery destination is enabled.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDeliveries.\n","properties":{"deliveries":{"description":"A list of Config Deliveries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cfg/getDeliveriesDelivery:getDeliveriesDelivery"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Config Delivery names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the delivery method. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: The delivery method is disabled. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: The delivery destination is enabled.\n","type":"integer"}},"required":["deliveries","ids","names","id"],"type":"object"}},"alicloud:cfg/getDeliveryChannels:getDeliveryChannels":{"description":"\u003e **DEPRECATED:**  This resource is based on Config's old version OpenAPI, and it has been deprecated from version `1.173.0`.\nPlease use new datasource\u003cspan pulumi-lang-nodejs=\" alicloud.cfg.getDeliveries \" pulumi-lang-dotnet=\" alicloud.cfg.getDeliveries \" pulumi-lang-go=\" cfg.getDeliveries \" pulumi-lang-python=\" cfg_get_deliveries \" pulumi-lang-yaml=\" alicloud.cfg.getDeliveries \" pulumi-lang-java=\" alicloud.cfg.getDeliveries \"\u003e alicloud.cfg.getDeliveries \u003c/span\u003einstead.\n\nThis data source provides the Config Delivery Channels of the current Alibaba Cloud user.\n\n\u003e **NOTE:**  Available in 1.99.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cfg.getDeliveryChannels({\n    ids: [\"cdc-49a2ad756057********\"],\n    nameRegex: \"tftest\",\n});\nexport const firstConfigDeliveryChannelId = example.then(example =\u003e example.channels?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cfg.get_delivery_channels(ids=[\"cdc-49a2ad756057********\"],\n    name_regex=\"tftest\")\npulumi.export(\"firstConfigDeliveryChannelId\", example.channels[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cfg.GetDeliveryChannels.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"cdc-49a2ad756057********\",\n        },\n        NameRegex = \"tftest\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstConfigDeliveryChannelId\"] = example.Apply(getDeliveryChannelsResult =\u003e getDeliveryChannelsResult.Channels[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cfg.GetDeliveryChannels(ctx, \u0026cfg.GetDeliveryChannelsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"cdc-49a2ad756057********\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"tftest\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstConfigDeliveryChannelId\", example.Channels[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cfg.CfgFunctions;\nimport com.pulumi.alicloud.cfg.inputs.GetDeliveryChannelsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CfgFunctions.getDeliveryChannels(GetDeliveryChannelsArgs.builder()\n            .ids(\"cdc-49a2ad756057********\")\n            .nameRegex(\"tftest\")\n            .build());\n\n        ctx.export(\"firstConfigDeliveryChannelId\", example.channels()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cfg:getDeliveryChannels\n      arguments:\n        ids:\n          - cdc-49a2ad756057********\n        nameRegex: tftest\noutputs:\n  firstConfigDeliveryChannelId: ${example.channels[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDeliveryChannels.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Config Delivery Channel IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by delivery channel name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"integer","description":"The status of the config delivery channel. Valid values \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: Disable delivery channel, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: Enable delivery channel.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDeliveryChannels.\n","properties":{"channels":{"description":"A list of Config Delivery Channels. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cfg/getDeliveryChannelsChannel:getDeliveryChannelsChannel"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Config Delivery Channel IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Config Delivery Channel names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the delivery channel.\n","type":"integer"}},"required":["channels","ids","names","id"],"type":"object"}},"alicloud:cfg/getRules:getRules":{"description":"This data source provides the Config Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.99.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cfg.getRules({\n    ids: [\"cr-ed4bad756057********\"],\n    nameRegex: \"tftest\",\n});\nexport const firstConfigRuleId = example.then(example =\u003e example.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cfg.get_rules(ids=[\"cr-ed4bad756057********\"],\n    name_regex=\"tftest\")\npulumi.export(\"firstConfigRuleId\", example.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cfg.GetRules.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"cr-ed4bad756057********\",\n        },\n        NameRegex = \"tftest\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstConfigRuleId\"] = example.Apply(getRulesResult =\u003e getRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cfg.GetRules(ctx, \u0026cfg.GetRulesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"cr-ed4bad756057********\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"tftest\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstConfigRuleId\", example.Rules[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cfg.CfgFunctions;\nimport com.pulumi.alicloud.cfg.inputs.GetRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CfgFunctions.getRules(GetRulesArgs.builder()\n            .ids(\"cr-ed4bad756057********\")\n            .nameRegex(\"tftest\")\n            .build());\n\n        ctx.export(\"firstConfigRuleId\", example.rules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cfg:getRules\n      arguments:\n        ids:\n          - cr-ed4bad756057********\n        nameRegex: tftest\noutputs:\n  firstConfigRuleId: ${example.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRules.\n","properties":{"configRuleState":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`configRuleState`\" pulumi-lang-dotnet=\"`ConfigRuleState`\" pulumi-lang-go=\"`configRuleState`\" pulumi-lang-python=\"`config_rule_state`\" pulumi-lang-yaml=\"`configRuleState`\" pulumi-lang-java=\"`configRuleState`\"\u003e`config_rule_state`\u003c/span\u003e has been deprecated from provider version 1.124.1. New field \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'config_rule_state' has been deprecated from provider version 1.124.1. New field 'status' instead."},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Config Rule IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"riskLevel":{"type":"integer","description":"The risk level of Config Rule. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: Critical ,\u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: Warning , \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e: Info.\n"},"ruleName":{"type":"string","description":"The name of config rule.\n"},"status":{"type":"string","description":"The status of the config rule, valid values: `ACTIVE`, `DELETING`, `EVALUATING` and `INACTIVE`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRules.\n","properties":{"configRuleState":{"deprecationMessage":"Field 'config_rule_state' has been deprecated from provider version 1.124.1. New field 'status' instead.","description":"The state of the Config Rule.\n","type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Config Rule IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Config Rule names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"riskLevel":{"description":"The risk level of the Config Rule.\n","type":"integer"},"ruleName":{"description":"The name of the Config Rule.\n","type":"string"},"rules":{"description":"A list of Config Rules. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cfg/getRulesRule:getRulesRule"},"type":"array"},"status":{"description":"(Available since v1.124.1) The status of config rule.\n","type":"string"}},"required":["ids","names","rules","id"],"type":"object"}},"alicloud:chatbot/getAgents:getAgents":{"description":"This data source provides the Chatbot Agents of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.203.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst nameRegex = alicloud.chatbot.getAgents({\n    nameRegex: \"^my-Agent\",\n});\nexport const alicloudChatbotAgentsId1 = nameRegex.then(nameRegex =\u003e nameRegex.agents?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nname_regex = alicloud.chatbot.get_agents(name_regex=\"^my-Agent\")\npulumi.export(\"alicloudChatbotAgentsId1\", name_regex.agents[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var nameRegex = AliCloud.Chatbot.GetAgents.Invoke(new()\n    {\n        NameRegex = \"^my-Agent\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudChatbotAgentsId1\"] = nameRegex.Apply(getAgentsResult =\u003e getAgentsResult.Agents[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/chatbot\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnameRegex, err := chatbot.GetAgents(ctx, \u0026chatbot.GetAgentsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Agent\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudChatbotAgentsId1\", nameRegex.Agents[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.chatbot.ChatbotFunctions;\nimport com.pulumi.alicloud.chatbot.inputs.GetAgentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var nameRegex = ChatbotFunctions.getAgents(GetAgentsArgs.builder()\n            .nameRegex(\"^my-Agent\")\n            .build());\n\n        ctx.export(\"alicloudChatbotAgentsId1\", nameRegex.agents()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  nameRegex:\n    fn::invoke:\n      function: alicloud:chatbot:getAgents\n      arguments:\n        nameRegex: ^my-Agent\noutputs:\n  alicloudChatbotAgentsId1: ${nameRegex.agents[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAgents.\n","properties":{"agentName":{"type":"string","description":"The name of the agent.\n"},"nameRegex":{"type":"string","description":"A regex string to filter resulting chatbot agents by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAgents.\n","properties":{"agentName":{"description":"The agent Name.\n","type":"string"},"agents":{"description":"A list of availability zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:chatbot/getAgentsAgent:getAgentsAgent"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of chatbot agents names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["agentName","agents","ids","names","id"],"type":"object"}},"alicloud:clickhouse/getAccounts:getAccounts":{"description":"This data source provides the Click House Accounts of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.134.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"oneaccountname\";\nconst pwd = config.get(\"pwd\") || \"Tf-onepwd\";\nconst type = config.get(\"type\") || \"Normal\";\nconst _default = alicloud.clickhouse.getRegions({\n    current: true,\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.regions?.[0]?.zoneIds?.[0]?.zoneId),\n});\nconst defaultDbCluster = new alicloud.clickhouse.DbCluster(\"default\", {\n    dbClusterVersion: \"22.8.5.29\",\n    category: \"Basic\",\n    dbClusterClass: \"S8\",\n    dbClusterNetworkType: \"vpc\",\n    dbClusterDescription: name,\n    dbNodeGroupCount: 1,\n    paymentType: \"PayAsYouGo\",\n    dbNodeStorage: \"500\",\n    storageType: \"cloud_essd\",\n    vswitchId: defaultSwitch.id,\n    vpcId: defaultNetwork.id,\n});\nconst defaultAccount = new alicloud.clickhouse.Account(\"default\", {\n    dbClusterId: defaultDbCluster.id,\n    accountDescription: \"your_description\",\n    accountName: name,\n    accountPassword: pwd,\n    type: type,\n});\nconst defaultGetAccounts = alicloud.clickhouse.getAccountsOutput({\n    ids: [defaultAccount.id],\n    dbClusterId: defaultDbCluster.id,\n});\nexport const accountId = defaultGetAccounts.apply(defaultGetAccounts =\u003e defaultGetAccounts.ids?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"oneaccountname\"\npwd = config.get(\"pwd\")\nif pwd is None:\n    pwd = \"Tf-onepwd\"\ntype = config.get(\"type\")\nif type is None:\n    type = \"Normal\"\ndefault = alicloud.clickhouse.get_regions(current=True)\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.regions[0].zone_ids[0].zone_id)\ndefault_db_cluster = alicloud.clickhouse.DbCluster(\"default\",\n    db_cluster_version=\"22.8.5.29\",\n    category=\"Basic\",\n    db_cluster_class=\"S8\",\n    db_cluster_network_type=\"vpc\",\n    db_cluster_description=name,\n    db_node_group_count=1,\n    payment_type=\"PayAsYouGo\",\n    db_node_storage=\"500\",\n    storage_type=\"cloud_essd\",\n    vswitch_id=default_switch.id,\n    vpc_id=default_network.id)\ndefault_account = alicloud.clickhouse.Account(\"default\",\n    db_cluster_id=default_db_cluster.id,\n    account_description=\"your_description\",\n    account_name=name,\n    account_password=pwd,\n    type=type)\ndefault_get_accounts = alicloud.clickhouse.get_accounts_output(ids=[default_account.id],\n    db_cluster_id=default_db_cluster.id)\npulumi.export(\"accountId\", default_get_accounts.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"oneaccountname\";\n    var pwd = config.Get(\"pwd\") ?? \"Tf-onepwd\";\n    var type = config.Get(\"type\") ?? \"Normal\";\n    var @default = AliCloud.ClickHouse.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.ZoneIds[0]?.ZoneId)),\n    });\n\n    var defaultDbCluster = new AliCloud.ClickHouse.DbCluster(\"default\", new()\n    {\n        DbClusterVersion = \"22.8.5.29\",\n        Category = \"Basic\",\n        DbClusterClass = \"S8\",\n        DbClusterNetworkType = \"vpc\",\n        DbClusterDescription = name,\n        DbNodeGroupCount = 1,\n        PaymentType = \"PayAsYouGo\",\n        DbNodeStorage = \"500\",\n        StorageType = \"cloud_essd\",\n        VswitchId = defaultSwitch.Id,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultAccount = new AliCloud.ClickHouse.Account(\"default\", new()\n    {\n        DbClusterId = defaultDbCluster.Id,\n        AccountDescription = \"your_description\",\n        AccountName = name,\n        AccountPassword = pwd,\n        Type = type,\n    });\n\n    var defaultGetAccounts = AliCloud.ClickHouse.GetAccounts.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAccount.Id,\n        },\n        DbClusterId = defaultDbCluster.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"accountId\"] = defaultGetAccounts.Apply(getAccountsResult =\u003e getAccountsResult.Ids[0]),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/clickhouse\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"oneaccountname\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tpwd := \"Tf-onepwd\"\n\t\tif param := cfg.Get(\"pwd\"); param != \"\" {\n\t\t\tpwd = param\n\t\t}\n\t\t_type := \"Normal\"\n\t\tif param := cfg.Get(\"type\"); param != \"\" {\n\t\t\t_type = param\n\t\t}\n\t\t_default, err := clickhouse.GetRegions(ctx, \u0026clickhouse.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Regions[0].ZoneIds[0].ZoneId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDbCluster, err := clickhouse.NewDbCluster(ctx, \"default\", \u0026clickhouse.DbClusterArgs{\n\t\t\tDbClusterVersion:     pulumi.String(\"22.8.5.29\"),\n\t\t\tCategory:             pulumi.String(\"Basic\"),\n\t\t\tDbClusterClass:       pulumi.String(\"S8\"),\n\t\t\tDbClusterNetworkType: pulumi.String(\"vpc\"),\n\t\t\tDbClusterDescription: pulumi.String(name),\n\t\t\tDbNodeGroupCount:     pulumi.Int(1),\n\t\t\tPaymentType:          pulumi.String(\"PayAsYouGo\"),\n\t\t\tDbNodeStorage:        pulumi.String(\"500\"),\n\t\t\tStorageType:          pulumi.String(\"cloud_essd\"),\n\t\t\tVswitchId:            defaultSwitch.ID(),\n\t\t\tVpcId:                defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAccount, err := clickhouse.NewAccount(ctx, \"default\", \u0026clickhouse.AccountArgs{\n\t\t\tDbClusterId:        defaultDbCluster.ID(),\n\t\t\tAccountDescription: pulumi.String(\"your_description\"),\n\t\t\tAccountName:        pulumi.String(name),\n\t\t\tAccountPassword:    pulumi.String(pwd),\n\t\t\tType:               pulumi.String(_type),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetAccounts := clickhouse.GetAccountsOutput(ctx, clickhouse.GetAccountsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultAccount.ID(),\n\t\t\t},\n\t\t\tDbClusterId: defaultDbCluster.ID(),\n\t\t}, nil)\n\t\tctx.Export(\"accountId\", defaultGetAccounts.ApplyT(func(defaultGetAccounts clickhouse.GetAccountsResult) (*string, error) {\n\t\t\treturn \u0026defaultGetAccounts.Ids[0], nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.clickhouse.ClickhouseFunctions;\nimport com.pulumi.alicloud.clickhouse.inputs.GetRegionsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.clickhouse.DbCluster;\nimport com.pulumi.alicloud.clickhouse.DbClusterArgs;\nimport com.pulumi.alicloud.clickhouse.Account;\nimport com.pulumi.alicloud.clickhouse.AccountArgs;\nimport com.pulumi.alicloud.clickhouse.inputs.GetAccountsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"oneaccountname\");\n        final var pwd = config.get(\"pwd\").orElse(\"Tf-onepwd\");\n        final var type = config.get(\"type\").orElse(\"Normal\");\n        final var default = ClickhouseFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.regions()[0].zoneIds()[0].zoneId())\n            .build());\n\n        var defaultDbCluster = new DbCluster(\"defaultDbCluster\", DbClusterArgs.builder()\n            .dbClusterVersion(\"22.8.5.29\")\n            .category(\"Basic\")\n            .dbClusterClass(\"S8\")\n            .dbClusterNetworkType(\"vpc\")\n            .dbClusterDescription(name)\n            .dbNodeGroupCount(1)\n            .paymentType(\"PayAsYouGo\")\n            .dbNodeStorage(\"500\")\n            .storageType(\"cloud_essd\")\n            .vswitchId(defaultSwitch.id())\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultAccount = new Account(\"defaultAccount\", AccountArgs.builder()\n            .dbClusterId(defaultDbCluster.id())\n            .accountDescription(\"your_description\")\n            .accountName(name)\n            .accountPassword(pwd)\n            .type(type)\n            .build());\n\n        final var defaultGetAccounts = ClickhouseFunctions.getAccounts(GetAccountsArgs.builder()\n            .ids(defaultAccount.id())\n            .dbClusterId(defaultDbCluster.id())\n            .build());\n\n        ctx.export(\"accountId\", defaultGetAccounts.applyValue(_defaultGetAccounts -\u003e _defaultGetAccounts.ids()[0]));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: oneaccountname\n  pwd:\n    type: string\n    default: Tf-onepwd\n  type:\n    type: string\n    default: Normal\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.regions[0].zoneIds[0].zoneId}\n  defaultDbCluster:\n    type: alicloud:clickhouse:DbCluster\n    name: default\n    properties:\n      dbClusterVersion: 22.8.5.29\n      category: Basic\n      dbClusterClass: S8\n      dbClusterNetworkType: vpc\n      dbClusterDescription: ${name}\n      dbNodeGroupCount: '1'\n      paymentType: PayAsYouGo\n      dbNodeStorage: '500'\n      storageType: cloud_essd\n      vswitchId: ${defaultSwitch.id}\n      vpcId: ${defaultNetwork.id}\n  defaultAccount:\n    type: alicloud:clickhouse:Account\n    name: default\n    properties:\n      dbClusterId: ${defaultDbCluster.id}\n      accountDescription: your_description\n      accountName: ${name}\n      accountPassword: ${pwd}\n      type: ${type}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:clickhouse:getRegions\n      arguments:\n        current: true\n  defaultGetAccounts:\n    fn::invoke:\n      function: alicloud:clickhouse:getAccounts\n      arguments:\n        ids:\n          - ${defaultAccount.id}\n        dbClusterId: ${defaultDbCluster.id}\noutputs:\n  accountId: ${defaultGetAccounts.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccounts.\n","properties":{"dbClusterId":{"type":"string","description":"The DBCluster id.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Account IDs. Its element value is same as Account Name.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Account name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid Status: `Creating`,`Available`,`Deleting`.\n"}},"type":"object","required":["dbClusterId"]},"outputs":{"description":"A collection of values returned by getAccounts.\n","properties":{"accounts":{"description":"A list of Click House Accounts. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:clickhouse/getAccountsAccount:getAccountsAccount"},"type":"array"},"dbClusterId":{"description":"The DBCluster id.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Account names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the resource.\n","type":"string"}},"required":["accounts","dbClusterId","ids","names","id"],"type":"object"}},"alicloud:clickhouse/getBackupPolicies:getBackupPolicies":{"description":"This data source provides the Click House Backup Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.147.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.clickhouse.getBackupPolicies({\n    dbClusterId: \"example_value\",\n});\nexport const clickHouseBackupPolicyId1 = example.then(example =\u003e example.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.clickhouse.get_backup_policies(db_cluster_id=\"example_value\")\npulumi.export(\"clickHouseBackupPolicyId1\", example.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.ClickHouse.GetBackupPolicies.Invoke(new()\n    {\n        DbClusterId = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"clickHouseBackupPolicyId1\"] = example.Apply(getBackupPoliciesResult =\u003e getBackupPoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/clickhouse\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := clickhouse.GetBackupPolicies(ctx, \u0026clickhouse.GetBackupPoliciesArgs{\n\t\t\tDbClusterId: \"example_value\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"clickHouseBackupPolicyId1\", example.Policies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.clickhouse.ClickhouseFunctions;\nimport com.pulumi.alicloud.clickhouse.inputs.GetBackupPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = ClickhouseFunctions.getBackupPolicies(GetBackupPoliciesArgs.builder()\n            .dbClusterId(\"example_value\")\n            .build());\n\n        ctx.export(\"clickHouseBackupPolicyId1\", example.policies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:clickhouse:getBackupPolicies\n      arguments:\n        dbClusterId: example_value\noutputs:\n  clickHouseBackupPolicyId1: ${example.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBackupPolicies.\n","properties":{"dbClusterId":{"type":"string","description":"The db cluster id.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["dbClusterId"]},"outputs":{"description":"A collection of values returned by getBackupPolicies.\n","properties":{"dbClusterId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"policies":{"items":{"$ref":"#/types/alicloud:clickhouse/getBackupPoliciesPolicy:getBackupPoliciesPolicy"},"type":"array"}},"required":["dbClusterId","policies","id"],"type":"object"}},"alicloud:clickhouse/getDbClusters:getDbClusters":{"description":"This data source provides the Click House DBCluster of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.134.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst defaultDbCluster = new alicloud.clickhouse.DbCluster(\"default\", {\n    dbClusterVersion: \"20.3.10.75\",\n    category: \"Basic\",\n    dbClusterClass: \"S8\",\n    dbClusterNetworkType: \"vpc\",\n    dbNodeGroupCount: 1,\n    paymentType: \"PayAsYouGo\",\n    dbNodeStorage: \"500\",\n    storageType: \"cloud_essd\",\n    vswitchId: \"your_vswitch_id\",\n});\nconst _default = alicloud.clickhouse.getDbClustersOutput({\n    ids: [defaultDbCluster.id],\n});\nexport const dbCluster = _default.apply(_default =\u003e _default.ids?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault_db_cluster = alicloud.clickhouse.DbCluster(\"default\",\n    db_cluster_version=\"20.3.10.75\",\n    category=\"Basic\",\n    db_cluster_class=\"S8\",\n    db_cluster_network_type=\"vpc\",\n    db_node_group_count=1,\n    payment_type=\"PayAsYouGo\",\n    db_node_storage=\"500\",\n    storage_type=\"cloud_essd\",\n    vswitch_id=\"your_vswitch_id\")\ndefault = alicloud.clickhouse.get_db_clusters_output(ids=[default_db_cluster.id])\npulumi.export(\"dbCluster\", default.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultDbCluster = new AliCloud.ClickHouse.DbCluster(\"default\", new()\n    {\n        DbClusterVersion = \"20.3.10.75\",\n        Category = \"Basic\",\n        DbClusterClass = \"S8\",\n        DbClusterNetworkType = \"vpc\",\n        DbNodeGroupCount = 1,\n        PaymentType = \"PayAsYouGo\",\n        DbNodeStorage = \"500\",\n        StorageType = \"cloud_essd\",\n        VswitchId = \"your_vswitch_id\",\n    });\n\n    var @default = AliCloud.ClickHouse.GetDbClusters.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultDbCluster.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dbCluster\"] = @default.Apply(@default =\u003e @default.Apply(getDbClustersResult =\u003e getDbClustersResult.Ids[0])),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/clickhouse\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ndefaultDbCluster, err := clickhouse.NewDbCluster(ctx, \"default\", \u0026clickhouse.DbClusterArgs{\nDbClusterVersion: pulumi.String(\"20.3.10.75\"),\nCategory: pulumi.String(\"Basic\"),\nDbClusterClass: pulumi.String(\"S8\"),\nDbClusterNetworkType: pulumi.String(\"vpc\"),\nDbNodeGroupCount: pulumi.Int(1),\nPaymentType: pulumi.String(\"PayAsYouGo\"),\nDbNodeStorage: pulumi.String(\"500\"),\nStorageType: pulumi.String(\"cloud_essd\"),\nVswitchId: pulumi.String(\"your_vswitch_id\"),\n})\nif err != nil {\nreturn err\n}\n_default := clickhouse.GetDbClustersOutput(ctx, clickhouse.GetDbClustersOutputArgs{\nIds: pulumi.StringArray{\ndefaultDbCluster.ID(),\n},\n}, nil);\nctx.Export(\"dbCluster\", _default.ApplyT(func(_default clickhouse.GetDbClustersResult) (*string, error) {\nreturn \u0026default.Ids[0], nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.clickhouse.DbCluster;\nimport com.pulumi.alicloud.clickhouse.DbClusterArgs;\nimport com.pulumi.alicloud.clickhouse.ClickhouseFunctions;\nimport com.pulumi.alicloud.clickhouse.inputs.GetDbClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultDbCluster = new DbCluster(\"defaultDbCluster\", DbClusterArgs.builder()\n            .dbClusterVersion(\"20.3.10.75\")\n            .category(\"Basic\")\n            .dbClusterClass(\"S8\")\n            .dbClusterNetworkType(\"vpc\")\n            .dbNodeGroupCount(1)\n            .paymentType(\"PayAsYouGo\")\n            .dbNodeStorage(\"500\")\n            .storageType(\"cloud_essd\")\n            .vswitchId(\"your_vswitch_id\")\n            .build());\n\n        final var default = ClickhouseFunctions.getDbClusters(GetDbClustersArgs.builder()\n            .ids(defaultDbCluster.id())\n            .build());\n\n        ctx.export(\"dbCluster\", default_.applyValue(_default_ -\u003e _default_.ids()[0]));\n    }\n}\n```\n```yaml\nresources:\n  defaultDbCluster:\n    type: alicloud:clickhouse:DbCluster\n    name: default\n    properties:\n      dbClusterVersion: 20.3.10.75\n      category: Basic\n      dbClusterClass: S8\n      dbClusterNetworkType: vpc\n      dbNodeGroupCount: '1'\n      paymentType: PayAsYouGo\n      dbNodeStorage: '500'\n      storageType: cloud_essd\n      vswitchId: your_vswitch_id\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:clickhouse:getDbClusters\n      arguments:\n        ids:\n          - ${defaultDbCluster.id}\noutputs:\n  dbCluster: ${default.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDbClusters.\n","properties":{"dbClusterDescription":{"type":"string","description":"The DBCluster description.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of DBCluster IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Running`,`Creating`,`Deleting`,`Restarting`,`Preparing`,.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDbClusters.\n","properties":{"clusters":{"items":{"$ref":"#/types/alicloud:clickhouse/getDbClustersCluster:getDbClustersCluster"},"type":"array"},"dbClusterDescription":{"type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["clusters","ids","id"],"type":"object"}},"alicloud:clickhouse/getRegions:getRegions":{"description":"This data source provides the Click House Regions of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.138.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst default1 = alicloud.clickhouse.getRegions({\n    current: true,\n});\nconst default2 = alicloud.clickhouse.getRegions({\n    regionId: \"cn-hangzhou\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault1 = alicloud.clickhouse.get_regions(current=True)\ndefault2 = alicloud.clickhouse.get_regions(region_id=\"cn-hangzhou\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var default1 = AliCloud.ClickHouse.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    var default2 = AliCloud.ClickHouse.GetRegions.Invoke(new()\n    {\n        RegionId = \"cn-hangzhou\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/clickhouse\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := clickhouse.GetRegions(ctx, \u0026clickhouse.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = clickhouse.GetRegions(ctx, \u0026clickhouse.GetRegionsArgs{\n\t\t\tRegionId: pulumi.StringRef(\"cn-hangzhou\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.clickhouse.ClickhouseFunctions;\nimport com.pulumi.alicloud.clickhouse.inputs.GetRegionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default1 = ClickhouseFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        final var default2 = ClickhouseFunctions.getRegions(GetRegionsArgs.builder()\n            .regionId(\"cn-hangzhou\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  default1:\n    fn::invoke:\n      function: alicloud:clickhouse:getRegions\n      arguments:\n        current: true\n  default2:\n    fn::invoke:\n      function: alicloud:clickhouse:getRegions\n      arguments:\n        regionId: cn-hangzhou\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRegions.\n","properties":{"current":{"type":"boolean","description":"Set to true to match only the region configured in the provider. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"regionId":{"type":"string","description":"You can use specified\u003cspan pulumi-lang-nodejs=\" regionId \" pulumi-lang-dotnet=\" RegionId \" pulumi-lang-go=\" regionId \" pulumi-lang-python=\" region_id \" pulumi-lang-yaml=\" regionId \" pulumi-lang-java=\" regionId \"\u003e region_id \u003c/span\u003eto find the region and available zones information that supports ClickHouse.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRegions.\n","properties":{"current":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"regionId":{"type":"string"},"regions":{"items":{"$ref":"#/types/alicloud:clickhouse/getRegionsRegion:getRegionsRegion"},"type":"array"}},"required":["regions","id"],"type":"object"}},"alicloud:cloudauth/getFaceConfigs:getFaceConfigs":{"description":"This data source provides the Cloudauth Face Configs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.137.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst defaultFaceConfig = new alicloud.cloudauth.FaceConfig(\"default\", {\n    bizName: \"example-value\",\n    bizType: \"example-value\",\n});\nconst _default = alicloud.cloudauth.getFaceConfigsOutput({\n    ids: [defaultFaceConfig.id],\n    nameRegex: defaultFaceConfig.bizName,\n});\nexport const faceConfig = _default.apply(_default =\u003e _default.configs?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault_face_config = alicloud.cloudauth.FaceConfig(\"default\",\n    biz_name=\"example-value\",\n    biz_type=\"example-value\")\ndefault = alicloud.cloudauth.get_face_configs_output(ids=[default_face_config.id],\n    name_regex=default_face_config.biz_name)\npulumi.export(\"faceConfig\", default.configs[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultFaceConfig = new AliCloud.CloudAuth.FaceConfig(\"default\", new()\n    {\n        BizName = \"example-value\",\n        BizType = \"example-value\",\n    });\n\n    var @default = AliCloud.CloudAuth.GetFaceConfigs.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultFaceConfig.Id,\n        },\n        NameRegex = defaultFaceConfig.BizName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"faceConfig\"] = @default.Apply(@default =\u003e @default.Apply(getFaceConfigsResult =\u003e getFaceConfigsResult.Configs[0])),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudauth\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultFaceConfig, err := cloudauth.NewFaceConfig(ctx, \"default\", \u0026cloudauth.FaceConfigArgs{\n\t\t\tBizName: pulumi.String(\"example-value\"),\n\t\t\tBizType: pulumi.String(\"example-value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default := cloudauth.GetFaceConfigsOutput(ctx, cloudauth.GetFaceConfigsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultFaceConfig.ID(),\n\t\t\t},\n\t\t\tNameRegex: defaultFaceConfig.BizName,\n\t\t}, nil)\n\t\tctx.Export(\"faceConfig\", _default.ApplyT(func(_default cloudauth.GetFaceConfigsResult) (cloudauth.GetFaceConfigsConfig, error) {\n\t\t\treturn _default.Configs[0], nil\n\t\t}).(cloudauth.GetFaceConfigsConfigOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudauth.FaceConfig;\nimport com.pulumi.alicloud.cloudauth.FaceConfigArgs;\nimport com.pulumi.alicloud.cloudauth.CloudauthFunctions;\nimport com.pulumi.alicloud.cloudauth.inputs.GetFaceConfigsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultFaceConfig = new FaceConfig(\"defaultFaceConfig\", FaceConfigArgs.builder()\n            .bizName(\"example-value\")\n            .bizType(\"example-value\")\n            .build());\n\n        final var default = CloudauthFunctions.getFaceConfigs(GetFaceConfigsArgs.builder()\n            .ids(defaultFaceConfig.id())\n            .nameRegex(defaultFaceConfig.bizName())\n            .build());\n\n        ctx.export(\"faceConfig\", default_.applyValue(_default_ -\u003e _default_.configs()[0]));\n    }\n}\n```\n```yaml\nresources:\n  defaultFaceConfig:\n    type: alicloud:cloudauth:FaceConfig\n    name: default\n    properties:\n      bizName: example-value\n      bizType: example-value\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudauth:getFaceConfigs\n      arguments:\n        ids:\n          - ${defaultFaceConfig.id}\n        nameRegex: ${defaultFaceConfig.bizName}\noutputs:\n  faceConfig: ${default.configs[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFaceConfigs.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Face Config IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by biz_name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getFaceConfigs.\n","properties":{"configs":{"items":{"$ref":"#/types/alicloud:cloudauth/getFaceConfigsConfig:getFaceConfigsConfig"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["configs","ids","names","id"],"type":"object"}},"alicloud:cloudconnect/getNetworks:getNetworks":{"description":"This data source provides Cloud Connect Networks available to the user.\n\n\u003e **NOTE:** Available in 1.59.0+\n\n\u003e **NOTE:** Only the following regions support create Cloud Connect Network. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cloudconnect.getNetworks({\n    ids: [defaultAlicloudCloudConnectNetworks.id],\n    nameRegex: \"^tf-testAcc.*\",\n});\nconst defaultNetwork = new alicloud.cloudconnect.Network(\"default\", {\n    name: \"tf-testAccCloudConnectNetworkName\",\n    description: \"tf-testAccCloudConnectNetworkDescription\",\n    cidrBlock: \"192.168.0.0/24\",\n    isDefault: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cloudconnect.get_networks(ids=[default_alicloud_cloud_connect_networks[\"id\"]],\n    name_regex=\"^tf-testAcc.*\")\ndefault_network = alicloud.cloudconnect.Network(\"default\",\n    name=\"tf-testAccCloudConnectNetworkName\",\n    description=\"tf-testAccCloudConnectNetworkDescription\",\n    cidr_block=\"192.168.0.0/24\",\n    is_default=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.CloudConnect.GetNetworks.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudCloudConnectNetworks.Id,\n        },\n        NameRegex = \"^tf-testAcc.*\",\n    });\n\n    var defaultNetwork = new AliCloud.CloudConnect.Network(\"default\", new()\n    {\n        Name = \"tf-testAccCloudConnectNetworkName\",\n        Description = \"tf-testAccCloudConnectNetworkDescription\",\n        CidrBlock = \"192.168.0.0/24\",\n        IsDefault = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := cloudconnect.GetNetworks(ctx, \u0026cloudconnect.GetNetworksArgs{\nIds: interface{}{\ndefaultAlicloudCloudConnectNetworks.Id,\n},\nNameRegex: pulumi.StringRef(\"^tf-testAcc.*\"),\n}, nil);\nif err != nil {\nreturn err\n}\n_, err = cloudconnect.NewNetwork(ctx, \"default\", \u0026cloudconnect.NetworkArgs{\nName: pulumi.String(\"tf-testAccCloudConnectNetworkName\"),\nDescription: pulumi.String(\"tf-testAccCloudConnectNetworkDescription\"),\nCidrBlock: pulumi.String(\"192.168.0.0/24\"),\nIsDefault: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudconnect.CloudconnectFunctions;\nimport com.pulumi.alicloud.cloudconnect.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.cloudconnect.Network;\nimport com.pulumi.alicloud.cloudconnect.NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CloudconnectFunctions.getNetworks(GetNetworksArgs.builder()\n            .ids(defaultAlicloudCloudConnectNetworks.id())\n            .nameRegex(\"^tf-testAcc.*\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .name(\"tf-testAccCloudConnectNetworkName\")\n            .description(\"tf-testAccCloudConnectNetworkDescription\")\n            .cidrBlock(\"192.168.0.0/24\")\n            .isDefault(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:cloudconnect:Network\n    name: default\n    properties:\n      name: tf-testAccCloudConnectNetworkName\n      description: tf-testAccCloudConnectNetworkDescription\n      cidrBlock: 192.168.0.0/24\n      isDefault: true\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudconnect:getNetworks\n      arguments:\n        ids:\n          - ${defaultAlicloudCloudConnectNetworks.id}\n        nameRegex: ^tf-testAcc.*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNetworks.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of CCN instances IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter CCN instances by name.\n"},"outputFile":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNetworks.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of CCN instances IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of CCN instances names.\n","items":{"type":"string"},"type":"array"},"networks":{"description":"A list of CCN instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cloudconnect/getNetworksNetwork:getNetworksNetwork"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","names","networks","id"],"type":"object"}},"alicloud:cloudcontrol/getPrices:getPrices":{"description":"This data source provides Cloud Control Price available to the user.[What is Price](https://next.api.aliyun.com/document/cloudcontrol/2022-08-30/GetPrice)\n\n\u003e **NOTE:** Available since v1.241.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.cloudcontrol.getPrices({\n    desireAttributes: {\n        AddressType: \"internet\",\n        PaymentType: \"PayAsYouGo\",\n    },\n    product: \"SLB\",\n    resourceCode: \"LoadBalancer\",\n});\nexport const alicloudCloudControlPriceExampleId = _default.then(_default =\u003e _default.prices?.[0]?.discountPrice);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudcontrol.get_prices(desire_attributes={\n        \"AddressType\": \"internet\",\n        \"PaymentType\": \"PayAsYouGo\",\n    },\n    product=\"SLB\",\n    resource_code=\"LoadBalancer\")\npulumi.export(\"alicloudCloudControlPriceExampleId\", default.prices[0].discount_price)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.CloudControl.GetPrices.Invoke(new()\n    {\n        DesireAttributes = \n        {\n            { \"AddressType\", \"internet\" },\n            { \"PaymentType\", \"PayAsYouGo\" },\n        },\n        Product = \"SLB\",\n        ResourceCode = \"LoadBalancer\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCloudControlPriceExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getPricesResult =\u003e getPricesResult.Prices[0]?.DiscountPrice)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudcontrol\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cloudcontrol.GetPrices(ctx, \u0026cloudcontrol.GetPricesArgs{\n\t\t\tDesireAttributes: map[string]interface{}{\n\t\t\t\t\"AddressType\": \"internet\",\n\t\t\t\t\"PaymentType\": \"PayAsYouGo\",\n\t\t\t},\n\t\t\tProduct:      \"SLB\",\n\t\t\tResourceCode: \"LoadBalancer\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudCloudControlPriceExampleId\", _default.Prices[0].DiscountPrice)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudcontrol.CloudcontrolFunctions;\nimport com.pulumi.alicloud.cloudcontrol.inputs.GetPricesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = CloudcontrolFunctions.getPrices(GetPricesArgs.builder()\n            .desireAttributes(Map.ofEntries(\n                Map.entry(\"AddressType\", \"internet\"),\n                Map.entry(\"PaymentType\", \"PayAsYouGo\")\n            ))\n            .product(\"SLB\")\n            .resourceCode(\"LoadBalancer\")\n            .build());\n\n        ctx.export(\"alicloudCloudControlPriceExampleId\", default_.prices()[0].discountPrice());\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudcontrol:getPrices\n      arguments:\n        desireAttributes:\n          AddressType: internet\n          PaymentType: PayAsYouGo\n        product: SLB\n        resourceCode: LoadBalancer\noutputs:\n  alicloudCloudControlPriceExampleId: ${default.prices[0].discountPrice}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrices.\n","properties":{"desireAttributes":{"type":"object","additionalProperties":{"type":"string"},"description":"This property represent the detailed configuration of the Resource which you are going to get price.  Give same content as DesireAttributes of the 'Resource' Resource when start Create operation. 'PaymentType' is necessary when in DesireAttributes.  Here is a probably example when you get the price of SLB LoadBalancer:```json{\"LoadBalancerName\": \"cc-test\",\"Bandwidth\": 6,\"PaymentType\": \"PayAsYouGo\",\"AddressType\": \"internet\",\"LoadBalancerSpec\": \"slb.s3.small\",\"InternetChargeType\": \"paybybandwidth\"} See `DesireAttributes` below.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"product":{"type":"string","description":"The product Code represents the product to be operated. Currently supported products and resources can be queried at the following link: [supported-services-and-resource-types](https://help.aliyun.com/zh/cloud-control-api/product-overview/supported-services-and-resource-types).\n"},"resourceCode":{"type":"string","description":"Resource Code, if there is a parent resource, split with `::`, such as VPC::VSwitch. The supported resource Code can be obtained from the following link: [supported-services-and-resource-types](https://help.aliyun.com/zh/cloud-control-api/product-overview/supported-services-and-resource-types).\n"}},"type":"object","required":["product","resourceCode"]},"outputs":{"description":"A collection of values returned by getPrices.\n","properties":{"desireAttributes":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"prices":{"description":"A list of Price Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cloudcontrol/getPricesPrice:getPricesPrice"},"type":"array"},"product":{"type":"string"},"resourceCode":{"type":"string"}},"required":["prices","product","resourceCode","id"],"type":"object"}},"alicloud:cloudcontrol/getProducts:getProducts":{"description":"This data source provides Cloud Control Product available to the user.[What is Product](https://next.api.aliyun.com/document/cloudcontrol/2022-08-30/ListProducts)\n\n\u003e **NOTE:** Available since v1.241.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.cloudcontrol.getProducts({\n    ids: [\"VPC\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudcontrol.get_products(ids=[\"VPC\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.CloudControl.GetProducts.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"VPC\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudcontrol\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cloudcontrol.GetProducts(ctx, \u0026cloudcontrol.GetProductsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"VPC\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudcontrol.CloudcontrolFunctions;\nimport com.pulumi.alicloud.cloudcontrol.inputs.GetProductsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = CloudcontrolFunctions.getProducts(GetProductsArgs.builder()\n            .ids(\"VPC\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudcontrol:getProducts\n      arguments:\n        ids:\n          - VPC\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProducts.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Product IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getProducts.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Product IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Products.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"products":{"description":"A list of Product Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cloudcontrol/getProductsProduct:getProductsProduct"},"type":"array"}},"required":["ids","names","products","id"],"type":"object"}},"alicloud:cloudcontrol/getResourceTypes:getResourceTypes":{"description":"This data source provides Cloud Control Resource Type available to the user.[What is Resource Type](https://next.api.aliyun.com/document/cloudcontrol/2022-08-30/GetResourceType)\n\n\u003e **NOTE:** Available since v1.241.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.cloudcontrol.getResourceTypes({\n    product: \"VPC\",\n    ids: [\"VSwitch\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cloudcontrol.get_resource_types(product=\"VPC\",\n    ids=[\"VSwitch\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.CloudControl.GetResourceTypes.Invoke(new()\n    {\n        Product = \"VPC\",\n        Ids = new[]\n        {\n            \"VSwitch\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudcontrol\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := cloudcontrol.GetResourceTypes(ctx, \u0026cloudcontrol.GetResourceTypesArgs{\n\t\t\tProduct: \"VPC\",\n\t\t\tIds: []string{\n\t\t\t\t\"VSwitch\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudcontrol.CloudcontrolFunctions;\nimport com.pulumi.alicloud.cloudcontrol.inputs.GetResourceTypesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = CloudcontrolFunctions.getResourceTypes(GetResourceTypesArgs.builder()\n            .product(\"VPC\")\n            .ids(\"VSwitch\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudcontrol:getResourceTypes\n      arguments:\n        product: VPC\n        ids:\n          - VSwitch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getResourceTypes.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Resource Type IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"product":{"type":"string","description":"Product Code.\n"}},"type":"object","required":["product"]},"outputs":{"description":"A collection of values returned by getResourceTypes.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Resource Type IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"product":{"description":"Product Code.\n","type":"string"},"types":{"description":"A list of Resource Type Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cloudcontrol/getResourceTypesType:getResourceTypesType"},"type":"array"}},"required":["ids","product","types","id"],"type":"object"}},"alicloud:cloudfirewall/getAddressBooks:getAddressBooks":{"description":"This data source provides the Cloud Firewall Address Books of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.178.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = new alicloud.cloudfirewall.AddressBook(\"default\", {\n    groupName: name,\n    groupType: \"ip\",\n    description: \"tf-description\",\n    autoAddTagEcs: 0,\n    addressLists: [\n        \"10.21.0.0/16\",\n        \"10.168.0.0/16\",\n    ],\n});\nconst ids = alicloud.cloudfirewall.getAddressBooksOutput({\n    ids: [_default.id],\n});\nexport const cloudFirewallAddressBookId1 = ids.apply(ids =\u003e ids.books?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.cloudfirewall.AddressBook(\"default\",\n    group_name=name,\n    group_type=\"ip\",\n    description=\"tf-description\",\n    auto_add_tag_ecs=0,\n    address_lists=[\n        \"10.21.0.0/16\",\n        \"10.168.0.0/16\",\n    ])\nids = alicloud.cloudfirewall.get_address_books_output(ids=[default.id])\npulumi.export(\"cloudFirewallAddressBookId1\", ids.books[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = new AliCloud.CloudFirewall.AddressBook(\"default\", new()\n    {\n        GroupName = name,\n        GroupType = \"ip\",\n        Description = \"tf-description\",\n        AutoAddTagEcs = 0,\n        AddressLists = new[]\n        {\n            \"10.21.0.0/16\",\n            \"10.168.0.0/16\",\n        },\n    });\n\n    var ids = AliCloud.CloudFirewall.GetAddressBooks.Invoke(new()\n    {\n        Ids = new[]\n        {\n            @default.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudFirewallAddressBookId1\"] = ids.Apply(getAddressBooksResult =\u003e getAddressBooksResult.Books[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cloudfirewall.NewAddressBook(ctx, \"default\", \u0026cloudfirewall.AddressBookArgs{\n\t\t\tGroupName:     pulumi.String(name),\n\t\t\tGroupType:     pulumi.String(\"ip\"),\n\t\t\tDescription:   pulumi.String(\"tf-description\"),\n\t\t\tAutoAddTagEcs: pulumi.Int(0),\n\t\t\tAddressLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.21.0.0/16\"),\n\t\t\t\tpulumi.String(\"10.168.0.0/16\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := cloudfirewall.GetAddressBooksOutput(ctx, cloudfirewall.GetAddressBooksOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"cloudFirewallAddressBookId1\", ids.ApplyT(func(ids cloudfirewall.GetAddressBooksResult) (*string, error) {\n\t\t\treturn \u0026ids.Books[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.AddressBook;\nimport com.pulumi.alicloud.cloudfirewall.AddressBookArgs;\nimport com.pulumi.alicloud.cloudfirewall.CloudfirewallFunctions;\nimport com.pulumi.alicloud.cloudfirewall.inputs.GetAddressBooksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var default_ = new AddressBook(\"default\", AddressBookArgs.builder()\n            .groupName(name)\n            .groupType(\"ip\")\n            .description(\"tf-description\")\n            .autoAddTagEcs(0)\n            .addressLists(            \n                \"10.21.0.0/16\",\n                \"10.168.0.0/16\")\n            .build());\n\n        final var ids = CloudfirewallFunctions.getAddressBooks(GetAddressBooksArgs.builder()\n            .ids(default_.id())\n            .build());\n\n        ctx.export(\"cloudFirewallAddressBookId1\", ids.applyValue(_ids -\u003e _ids.books()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  default:\n    type: alicloud:cloudfirewall:AddressBook\n    properties:\n      groupName: ${name}\n      groupType: ip\n      description: tf-description\n      autoAddTagEcs: 0\n      addressLists:\n        - 10.21.0.0/16\n        - 10.168.0.0/16\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cloudfirewall:getAddressBooks\n      arguments:\n        ids:\n          - ${default.id}\noutputs:\n  cloudFirewallAddressBookId1: ${ids.books[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAddressBooks.\n","properties":{"groupType":{"type":"string","description":"The type of the Address Book. Valid values: \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tag`\" pulumi-lang-dotnet=\"`Tag`\" pulumi-lang-go=\"`tag`\" pulumi-lang-python=\"`tag`\" pulumi-lang-yaml=\"`tag`\" pulumi-lang-java=\"`tag`\"\u003e`tag`\u003c/span\u003e.\n**NOTE:** From version 1.213.1, \u003cspan pulumi-lang-nodejs=\"`groupType`\" pulumi-lang-dotnet=\"`GroupType`\" pulumi-lang-go=\"`groupType`\" pulumi-lang-python=\"`group_type`\" pulumi-lang-yaml=\"`groupType`\" pulumi-lang-java=\"`groupType`\"\u003e`group_type`\u003c/span\u003e can be set to \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Address Book IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results Address Book name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAddressBooks.\n","properties":{"books":{"description":"A list of Cloud Firewall Address Books. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cloudfirewall/getAddressBooksBook:getAddressBooksBook"},"type":"array"},"groupType":{"description":"The type of the Address Book.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Address Book names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["books","ids","names","id"],"type":"object"}},"alicloud:cloudfirewall/getControlPolicies:getControlPolicies":{"description":"This data source provides the Cloud Firewall Control Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.129.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cloudfirewall.getControlPolicies({\n    direction: \"in\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cloudfirewall.get_control_policies(direction=\"in\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.CloudFirewall.GetControlPolicies.Invoke(new()\n    {\n        Direction = \"in\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudfirewall.GetControlPolicies(ctx, \u0026cloudfirewall.GetControlPoliciesArgs{\n\t\t\tDirection: \"in\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.CloudfirewallFunctions;\nimport com.pulumi.alicloud.cloudfirewall.inputs.GetControlPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CloudfirewallFunctions.getControlPolicies(GetControlPoliciesArgs.builder()\n            .direction(\"in\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cloudfirewall:getControlPolicies\n      arguments:\n        direction: in\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getControlPolicies.\n","properties":{"aclAction":{"type":"string","description":"The action that Cloud Firewall performs on the traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`log`\" pulumi-lang-dotnet=\"`Log`\" pulumi-lang-go=\"`log`\" pulumi-lang-python=\"`log`\" pulumi-lang-yaml=\"`log`\" pulumi-lang-java=\"`log`\"\u003e`log`\u003c/span\u003e.\n"},"aclUuid":{"type":"string","description":"The unique ID of the access control policy.\n"},"description":{"type":"string","description":"The description of the access control policy.\n"},"destination":{"type":"string","description":"The destination address defined in the access control policy.\n"},"direction":{"type":"string","description":"The direction of the traffic to which the access control policy applies. Valid values: \u003cspan pulumi-lang-nodejs=\"`in`\" pulumi-lang-dotnet=\"`In`\" pulumi-lang-go=\"`in`\" pulumi-lang-python=\"`in`\" pulumi-lang-yaml=\"`in`\" pulumi-lang-java=\"`in`\"\u003e`in`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`out`\" pulumi-lang-dotnet=\"`Out`\" pulumi-lang-go=\"`out`\" pulumi-lang-python=\"`out`\" pulumi-lang-yaml=\"`out`\" pulumi-lang-java=\"`out`\"\u003e`out`\u003c/span\u003e.\n"},"ipVersion":{"type":"string","description":"The IP version of the address in the access control policy.\n"},"lang":{"type":"string","description":"The language of the content within the response. Valid values: \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"proto":{"type":"string","description":"The type of the protocol in the access control policy. Valid values: If \u003cspan pulumi-lang-nodejs=\"`direction`\" pulumi-lang-dotnet=\"`Direction`\" pulumi-lang-go=\"`direction`\" pulumi-lang-python=\"`direction`\" pulumi-lang-yaml=\"`direction`\" pulumi-lang-java=\"`direction`\"\u003e`direction`\u003c/span\u003e is  \u003cspan pulumi-lang-nodejs=\"`in`\" pulumi-lang-dotnet=\"`In`\" pulumi-lang-go=\"`in`\" pulumi-lang-python=\"`in`\" pulumi-lang-yaml=\"`in`\" pulumi-lang-java=\"`in`\"\u003e`in`\u003c/span\u003e, the valid value is `ANY`. If \u003cspan pulumi-lang-nodejs=\"`direction`\" pulumi-lang-dotnet=\"`Direction`\" pulumi-lang-go=\"`direction`\" pulumi-lang-python=\"`direction`\" pulumi-lang-yaml=\"`direction`\" pulumi-lang-java=\"`direction`\"\u003e`direction`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`out`\" pulumi-lang-dotnet=\"`Out`\" pulumi-lang-go=\"`out`\" pulumi-lang-python=\"`out`\" pulumi-lang-yaml=\"`out`\" pulumi-lang-java=\"`out`\"\u003e`out`\u003c/span\u003e, the valid values are `ANY`, `TCP`, `UDP`, `ICMP`.\n"},"source":{"type":"string","description":"The source address in the access control policy.\n"}},"type":"object","required":["direction"]},"outputs":{"description":"A collection of values returned by getControlPolicies.\n","properties":{"aclAction":{"description":"The action that Cloud Firewall performs on the traffic.\n","type":"string"},"aclUuid":{"description":"The unique ID of the access control policy.\n","type":"string"},"description":{"description":"The description of the access control policy.\n","type":"string"},"destination":{"description":"The destination address in the access control policy.\n","type":"string"},"direction":{"description":"The direction of the traffic to which the access control policy applies.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Control Policy IDs.\n","items":{"type":"string"},"type":"array"},"ipVersion":{"type":"string"},"lang":{"type":"string"},"outputFile":{"type":"string"},"policies":{"description":"A list of Cloud Firewall Control Policies. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cloudfirewall/getControlPoliciesPolicy:getControlPoliciesPolicy"},"type":"array"},"proto":{"description":"The type of the protocol in the access control policy.\n","type":"string"},"source":{"description":"The source address in the access control policy.\n","type":"string"}},"required":["direction","ids","policies","id"],"type":"object"}},"alicloud:cloudfirewall/getInstanceMembers:getInstanceMembers":{"description":"This data source provides Cloud Firewall Instance Member available to the user.[What is Instance Member](https://help.aliyun.com/document_detail/261237.html)\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cloudfirewall.getInstanceMembers({\n    ids: [defaultAlicloudCloudFirewallInstanceMember.id],\n});\nexport const alicloudCloudFirewallInstanceMemberExampleId = _default.then(_default =\u003e _default.members?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cloudfirewall.get_instance_members(ids=[default_alicloud_cloud_firewall_instance_member[\"id\"]])\npulumi.export(\"alicloudCloudFirewallInstanceMemberExampleId\", default.members[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.CloudFirewall.GetInstanceMembers.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudCloudFirewallInstanceMember.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCloudFirewallInstanceMemberExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getInstanceMembersResult =\u003e getInstanceMembersResult.Members[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := cloudfirewall.GetInstanceMembers(ctx, \u0026cloudfirewall.GetInstanceMembersArgs{\nIds: interface{}{\ndefaultAlicloudCloudFirewallInstanceMember.Id,\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudCloudFirewallInstanceMemberExampleId\", _default.Members[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.CloudfirewallFunctions;\nimport com.pulumi.alicloud.cloudfirewall.inputs.GetInstanceMembersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CloudfirewallFunctions.getInstanceMembers(GetInstanceMembersArgs.builder()\n            .ids(defaultAlicloudCloudFirewallInstanceMember.id())\n            .build());\n\n        ctx.export(\"alicloudCloudFirewallInstanceMemberExampleId\", default_.members()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudfirewall:getInstanceMembers\n      arguments:\n        ids:\n          - ${defaultAlicloudCloudFirewallInstanceMember.id}\noutputs:\n  alicloudCloudFirewallInstanceMemberExampleId: ${default.members[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceMembers.\n","properties":{"currentPage":{"type":"string"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Instance Member IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstanceMembers.\n","properties":{"currentPage":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Instance Member IDs.\n","items":{"type":"string"},"type":"array"},"members":{"description":"A list of Instance Member Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cloudfirewall/getInstanceMembersMember:getInstanceMembersMember"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["ids","members","id"],"type":"object"}},"alicloud:cloudfirewall/getInstances:getInstances":{"description":"This data source provides the Cloud Firewall Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.139.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cloudfirewall.getInstances({});\nexport const cloudFirewallInstanceId1 = ids.then(ids =\u003e ids.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cloudfirewall.get_instances()\npulumi.export(\"cloudFirewallInstanceId1\", ids.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.CloudFirewall.GetInstances.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudFirewallInstanceId1\"] = ids.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cloudfirewall.GetInstances(ctx, \u0026cloudfirewall.GetInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudFirewallInstanceId1\", ids.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.CloudfirewallFunctions;\nimport com.pulumi.alicloud.cloudfirewall.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CloudfirewallFunctions.getInstances(GetInstancesArgs.builder()\n            .build());\n\n        ctx.export(\"cloudFirewallInstanceId1\", ids.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cloudfirewall:getInstances\n      arguments: {}\noutputs:\n  cloudFirewallInstanceId1: ${ids.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"paymentType":{"type":"string","description":"The payment type of the cloud firewall instance. Valid values: `PayAsYouGo`,`Subscription`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instances":{"items":{"$ref":"#/types/alicloud:cloudfirewall/getInstancesInstance:getInstancesInstance"},"type":"array"},"outputFile":{"type":"string"},"paymentType":{"type":"string"}},"required":["instances","id"],"type":"object"}},"alicloud:cloudfirewall/getNatFirewalls:getNatFirewalls":{"description":"This data source provides Cloud Firewall Nat Firewall available to the user.[What is Nat Firewall](https://next.api.alibabacloud.com/document/Cloudfw/2017-12-07/CreateSecurityProxy)\n\n\u003e **NOTE:** Available since v1.243.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultikZ0gD = new alicloud.vpc.Network(\"defaultikZ0gD\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: name,\n});\nconst defaultp4O7qi = new alicloud.vpc.Switch(\"defaultp4O7qi\", {\n    vpcId: defaultikZ0gD.id,\n    cidrBlock: \"172.16.6.0/24\",\n    vswitchName: name,\n    zoneId: \"cn-shenzhen-e\",\n});\nconst default2iRZpC = new alicloud.vpc.NatGateway(\"default2iRZpC\", {\n    description: name,\n    natGatewayName: name,\n    eipBindMode: \"MULTI_BINDED\",\n    natType: \"Enhanced\",\n    vpcId: defaultikZ0gD.id,\n    paymentType: \"PayAsYouGo\",\n    networkType: \"internet\",\n});\nconst defaultyiRwgs = new alicloud.ecs.EipAddress(\"defaultyiRwgs\", {});\nconst defaults2MTuO = new alicloud.ecs.EipAssociation(\"defaults2MTuO\", {\n    instanceId: default2iRZpC.id,\n    allocationId: defaultyiRwgs.allocationId,\n    mode: \"NAT\",\n    instanceType: \"NAT\",\n    vpcId: default2iRZpC.vpcId,\n});\nconst defaultAKE43g = new alicloud.vpc.SnatEntry(\"defaultAKE43g\", {\n    snatIp: defaultyiRwgs.ipAddress,\n    snatTableId: default2iRZpC.snatTableIds[0],\n    eipAffinity: 1,\n    sourceVswitchId: defaultp4O7qi.id,\n});\nconst defaultNatFirewall = new alicloud.cloudfirewall.NatFirewall(\"default\", {\n    regionNo: \"cn-shenzhen\",\n    vswitchAuto: \"true\",\n    strictMode: 0,\n    vpcId: defaultikZ0gD.id,\n    proxyName: name,\n    lang: \"zh\",\n    natGatewayId: default2iRZpC.id,\n    natRouteEntryLists: [{\n        nexthopId: default2iRZpC.id,\n        destinationCidr: \"0.0.0.0/0\",\n        nexthopType: \"NatGateway\",\n        routeTableId: defaultp4O7qi.routeTableId,\n    }],\n    firewallSwitch: \"close\",\n    vswitchCidr: \"172.16.5.0/24\",\n    status: \"closed\",\n    vswitchId: defaultp4O7qi.id,\n});\nconst _default = alicloud.cloudfirewall.getNatFirewallsOutput({\n    ids: [defaultNatFirewall.id],\n    lang: \"zh\",\n    natGatewayId: default2iRZpC.id,\n    proxyName: name,\n    regionNo: \"cn-shenzhen\",\n    status: \"closed\",\n    vpcId: defaultikZ0gD.id,\n});\nexport const alicloudCloudFirewallNatFirewallExampleId = _default.apply(_default =\u003e _default.firewalls?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaultik_z0g_d = alicloud.vpc.Network(\"defaultikZ0gD\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=name)\ndefaultp4_o7qi = alicloud.vpc.Switch(\"defaultp4O7qi\",\n    vpc_id=defaultik_z0g_d.id,\n    cidr_block=\"172.16.6.0/24\",\n    vswitch_name=name,\n    zone_id=\"cn-shenzhen-e\")\ndefault2i_r_zp_c = alicloud.vpc.NatGateway(\"default2iRZpC\",\n    description=name,\n    nat_gateway_name=name,\n    eip_bind_mode=\"MULTI_BINDED\",\n    nat_type=\"Enhanced\",\n    vpc_id=defaultik_z0g_d.id,\n    payment_type=\"PayAsYouGo\",\n    network_type=\"internet\")\ndefaultyi_rwgs = alicloud.ecs.EipAddress(\"defaultyiRwgs\")\ndefaults2_m_tu_o = alicloud.ecs.EipAssociation(\"defaults2MTuO\",\n    instance_id=default2i_r_zp_c.id,\n    allocation_id=defaultyi_rwgs.allocation_id,\n    mode=\"NAT\",\n    instance_type=\"NAT\",\n    vpc_id=default2i_r_zp_c.vpc_id)\ndefault_ake43g = alicloud.vpc.SnatEntry(\"defaultAKE43g\",\n    snat_ip=defaultyi_rwgs.ip_address,\n    snat_table_id=default2i_r_zp_c.snat_table_ids[0],\n    eip_affinity=1,\n    source_vswitch_id=defaultp4_o7qi.id)\ndefault_nat_firewall = alicloud.cloudfirewall.NatFirewall(\"default\",\n    region_no=\"cn-shenzhen\",\n    vswitch_auto=\"true\",\n    strict_mode=0,\n    vpc_id=defaultik_z0g_d.id,\n    proxy_name=name,\n    lang=\"zh\",\n    nat_gateway_id=default2i_r_zp_c.id,\n    nat_route_entry_lists=[{\n        \"nexthop_id\": default2i_r_zp_c.id,\n        \"destination_cidr\": \"0.0.0.0/0\",\n        \"nexthop_type\": \"NatGateway\",\n        \"route_table_id\": defaultp4_o7qi.route_table_id,\n    }],\n    firewall_switch=\"close\",\n    vswitch_cidr=\"172.16.5.0/24\",\n    status=\"closed\",\n    vswitch_id=defaultp4_o7qi.id)\ndefault = alicloud.cloudfirewall.get_nat_firewalls_output(ids=[default_nat_firewall.id],\n    lang=\"zh\",\n    nat_gateway_id=default2i_r_zp_c.id,\n    proxy_name=name,\n    region_no=\"cn-shenzhen\",\n    status=\"closed\",\n    vpc_id=defaultik_z0g_d.id)\npulumi.export(\"alicloudCloudFirewallNatFirewallExampleId\", default.firewalls[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultikZ0gD = new AliCloud.Vpc.Network(\"defaultikZ0gD\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = name,\n    });\n\n    var defaultp4O7qi = new AliCloud.Vpc.Switch(\"defaultp4O7qi\", new()\n    {\n        VpcId = defaultikZ0gD.Id,\n        CidrBlock = \"172.16.6.0/24\",\n        VswitchName = name,\n        ZoneId = \"cn-shenzhen-e\",\n    });\n\n    var default2iRZpC = new AliCloud.Vpc.NatGateway(\"default2iRZpC\", new()\n    {\n        Description = name,\n        NatGatewayName = name,\n        EipBindMode = \"MULTI_BINDED\",\n        NatType = \"Enhanced\",\n        VpcId = defaultikZ0gD.Id,\n        PaymentType = \"PayAsYouGo\",\n        NetworkType = \"internet\",\n    });\n\n    var defaultyiRwgs = new AliCloud.Ecs.EipAddress(\"defaultyiRwgs\");\n\n    var defaults2MTuO = new AliCloud.Ecs.EipAssociation(\"defaults2MTuO\", new()\n    {\n        InstanceId = default2iRZpC.Id,\n        AllocationId = defaultyiRwgs.AllocationId,\n        Mode = \"NAT\",\n        InstanceType = \"NAT\",\n        VpcId = default2iRZpC.VpcId,\n    });\n\n    var defaultAKE43g = new AliCloud.Vpc.SnatEntry(\"defaultAKE43g\", new()\n    {\n        SnatIp = defaultyiRwgs.IpAddress,\n        SnatTableId = default2iRZpC.SnatTableIds.Apply(snatTableIds =\u003e snatTableIds[0]),\n        EipAffinity = 1,\n        SourceVswitchId = defaultp4O7qi.Id,\n    });\n\n    var defaultNatFirewall = new AliCloud.CloudFirewall.NatFirewall(\"default\", new()\n    {\n        RegionNo = \"cn-shenzhen\",\n        VswitchAuto = \"true\",\n        StrictMode = 0,\n        VpcId = defaultikZ0gD.Id,\n        ProxyName = name,\n        Lang = \"zh\",\n        NatGatewayId = default2iRZpC.Id,\n        NatRouteEntryLists = new[]\n        {\n            new AliCloud.CloudFirewall.Inputs.NatFirewallNatRouteEntryListArgs\n            {\n                NexthopId = default2iRZpC.Id,\n                DestinationCidr = \"0.0.0.0/0\",\n                NexthopType = \"NatGateway\",\n                RouteTableId = defaultp4O7qi.RouteTableId,\n            },\n        },\n        FirewallSwitch = \"close\",\n        VswitchCidr = \"172.16.5.0/24\",\n        Status = \"closed\",\n        VswitchId = defaultp4O7qi.Id,\n    });\n\n    var @default = AliCloud.CloudFirewall.GetNatFirewalls.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultNatFirewall.Id,\n        },\n        Lang = \"zh\",\n        NatGatewayId = default2iRZpC.Id,\n        ProxyName = name,\n        RegionNo = \"cn-shenzhen\",\n        Status = \"closed\",\n        VpcId = defaultikZ0gD.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCloudFirewallNatFirewallExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getNatFirewallsResult =\u003e getNatFirewallsResult.Firewalls[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultikZ0gD, err := vpc.NewNetwork(ctx, \"defaultikZ0gD\", \u0026vpc.NetworkArgs{\nCidrBlock: pulumi.String(\"172.16.0.0/12\"),\nVpcName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ndefaultp4O7qi, err := vpc.NewSwitch(ctx, \"defaultp4O7qi\", \u0026vpc.SwitchArgs{\nVpcId: defaultikZ0gD.ID(),\nCidrBlock: pulumi.String(\"172.16.6.0/24\"),\nVswitchName: pulumi.String(name),\nZoneId: pulumi.String(\"cn-shenzhen-e\"),\n})\nif err != nil {\nreturn err\n}\ndefault2iRZpC, err := vpc.NewNatGateway(ctx, \"default2iRZpC\", \u0026vpc.NatGatewayArgs{\nDescription: pulumi.String(name),\nNatGatewayName: pulumi.String(name),\nEipBindMode: pulumi.String(\"MULTI_BINDED\"),\nNatType: pulumi.String(\"Enhanced\"),\nVpcId: defaultikZ0gD.ID(),\nPaymentType: pulumi.String(\"PayAsYouGo\"),\nNetworkType: pulumi.String(\"internet\"),\n})\nif err != nil {\nreturn err\n}\ndefaultyiRwgs, err := ecs.NewEipAddress(ctx, \"defaultyiRwgs\", nil)\nif err != nil {\nreturn err\n}\n_, err = ecs.NewEipAssociation(ctx, \"defaults2MTuO\", \u0026ecs.EipAssociationArgs{\nInstanceId: default2iRZpC.ID(),\nAllocationId: defaultyiRwgs.AllocationId,\nMode: pulumi.String(\"NAT\"),\nInstanceType: pulumi.String(\"NAT\"),\nVpcId: default2iRZpC.VpcId,\n})\nif err != nil {\nreturn err\n}\n_, err = vpc.NewSnatEntry(ctx, \"defaultAKE43g\", \u0026vpc.SnatEntryArgs{\nSnatIp: defaultyiRwgs.IpAddress,\nSnatTableId: pulumi.String(default2iRZpC.SnatTableIds.ApplyT(func(snatTableIds string) (interface{}, error) {\nreturn snatTableIds[0], nil\n}).(pulumi.Interface{}Output)),\nEipAffinity: pulumi.Int(1),\nSourceVswitchId: defaultp4O7qi.ID(),\n})\nif err != nil {\nreturn err\n}\ndefaultNatFirewall, err := cloudfirewall.NewNatFirewall(ctx, \"default\", \u0026cloudfirewall.NatFirewallArgs{\nRegionNo: pulumi.String(\"cn-shenzhen\"),\nVswitchAuto: pulumi.String(\"true\"),\nStrictMode: pulumi.Int(0),\nVpcId: defaultikZ0gD.ID(),\nProxyName: pulumi.String(name),\nLang: pulumi.String(\"zh\"),\nNatGatewayId: default2iRZpC.ID(),\nNatRouteEntryLists: cloudfirewall.NatFirewallNatRouteEntryListArray{\n\u0026cloudfirewall.NatFirewallNatRouteEntryListArgs{\nNexthopId: default2iRZpC.ID(),\nDestinationCidr: pulumi.String(\"0.0.0.0/0\"),\nNexthopType: pulumi.String(\"NatGateway\"),\nRouteTableId: defaultp4O7qi.RouteTableId,\n},\n},\nFirewallSwitch: pulumi.String(\"close\"),\nVswitchCidr: pulumi.String(\"172.16.5.0/24\"),\nStatus: pulumi.String(\"closed\"),\nVswitchId: defaultp4O7qi.ID(),\n})\nif err != nil {\nreturn err\n}\n_default := cloudfirewall.GetNatFirewallsOutput(ctx, cloudfirewall.GetNatFirewallsOutputArgs{\nIds: pulumi.StringArray{\ndefaultNatFirewall.ID(),\n},\nLang: pulumi.String(\"zh\"),\nNatGatewayId: default2iRZpC.ID(),\nProxyName: pulumi.String(name),\nRegionNo: pulumi.String(\"cn-shenzhen\"),\nStatus: pulumi.String(\"closed\"),\nVpcId: defaultikZ0gD.ID(),\n}, nil);\nctx.Export(\"alicloudCloudFirewallNatFirewallExampleId\", _default.ApplyT(func(_default cloudfirewall.GetNatFirewallsResult) (*string, error) {\nreturn \u0026default.Firewalls[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.NatGateway;\nimport com.pulumi.alicloud.vpc.NatGatewayArgs;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAssociation;\nimport com.pulumi.alicloud.ecs.EipAssociationArgs;\nimport com.pulumi.alicloud.vpc.SnatEntry;\nimport com.pulumi.alicloud.vpc.SnatEntryArgs;\nimport com.pulumi.alicloud.cloudfirewall.NatFirewall;\nimport com.pulumi.alicloud.cloudfirewall.NatFirewallArgs;\nimport com.pulumi.alicloud.cloudfirewall.inputs.NatFirewallNatRouteEntryListArgs;\nimport com.pulumi.alicloud.cloudfirewall.CloudfirewallFunctions;\nimport com.pulumi.alicloud.cloudfirewall.inputs.GetNatFirewallsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultikZ0gD = new Network(\"defaultikZ0gD\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(name)\n            .build());\n\n        var defaultp4O7qi = new Switch(\"defaultp4O7qi\", SwitchArgs.builder()\n            .vpcId(defaultikZ0gD.id())\n            .cidrBlock(\"172.16.6.0/24\")\n            .vswitchName(name)\n            .zoneId(\"cn-shenzhen-e\")\n            .build());\n\n        var default2iRZpC = new NatGateway(\"default2iRZpC\", NatGatewayArgs.builder()\n            .description(name)\n            .natGatewayName(name)\n            .eipBindMode(\"MULTI_BINDED\")\n            .natType(\"Enhanced\")\n            .vpcId(defaultikZ0gD.id())\n            .paymentType(\"PayAsYouGo\")\n            .networkType(\"internet\")\n            .build());\n\n        var defaultyiRwgs = new EipAddress(\"defaultyiRwgs\");\n\n        var defaults2MTuO = new EipAssociation(\"defaults2MTuO\", EipAssociationArgs.builder()\n            .instanceId(default2iRZpC.id())\n            .allocationId(defaultyiRwgs.allocationId())\n            .mode(\"NAT\")\n            .instanceType(\"NAT\")\n            .vpcId(default2iRZpC.vpcId())\n            .build());\n\n        var defaultAKE43g = new SnatEntry(\"defaultAKE43g\", SnatEntryArgs.builder()\n            .snatIp(defaultyiRwgs.ipAddress())\n            .snatTableId(default2iRZpC.snatTableIds().applyValue(_snatTableIds -\u003e _snatTableIds[0]))\n            .eipAffinity(1)\n            .sourceVswitchId(defaultp4O7qi.id())\n            .build());\n\n        var defaultNatFirewall = new NatFirewall(\"defaultNatFirewall\", NatFirewallArgs.builder()\n            .regionNo(\"cn-shenzhen\")\n            .vswitchAuto(\"true\")\n            .strictMode(0)\n            .vpcId(defaultikZ0gD.id())\n            .proxyName(name)\n            .lang(\"zh\")\n            .natGatewayId(default2iRZpC.id())\n            .natRouteEntryLists(NatFirewallNatRouteEntryListArgs.builder()\n                .nexthopId(default2iRZpC.id())\n                .destinationCidr(\"0.0.0.0/0\")\n                .nexthopType(\"NatGateway\")\n                .routeTableId(defaultp4O7qi.routeTableId())\n                .build())\n            .firewallSwitch(\"close\")\n            .vswitchCidr(\"172.16.5.0/24\")\n            .status(\"closed\")\n            .vswitchId(defaultp4O7qi.id())\n            .build());\n\n        final var default = CloudfirewallFunctions.getNatFirewalls(GetNatFirewallsArgs.builder()\n            .ids(defaultNatFirewall.id())\n            .lang(\"zh\")\n            .natGatewayId(default2iRZpC.id())\n            .proxyName(name)\n            .regionNo(\"cn-shenzhen\")\n            .status(\"closed\")\n            .vpcId(defaultikZ0gD.id())\n            .build());\n\n        ctx.export(\"alicloudCloudFirewallNatFirewallExampleId\", default_.applyValue(_default_ -\u003e _default_.firewalls()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultikZ0gD:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName: ${name}\n  defaultp4O7qi:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultikZ0gD.id}\n      cidrBlock: 172.16.6.0/24\n      vswitchName: ${name}\n      zoneId: cn-shenzhen-e\n  default2iRZpC:\n    type: alicloud:vpc:NatGateway\n    properties:\n      description: ${name}\n      natGatewayName: ${name}\n      eipBindMode: MULTI_BINDED\n      natType: Enhanced\n      vpcId: ${defaultikZ0gD.id}\n      paymentType: PayAsYouGo\n      networkType: internet\n  defaultyiRwgs:\n    type: alicloud:ecs:EipAddress\n  defaults2MTuO:\n    type: alicloud:ecs:EipAssociation\n    properties:\n      instanceId: ${default2iRZpC.id}\n      allocationId: ${defaultyiRwgs.allocationId}\n      mode: NAT\n      instanceType: NAT\n      vpcId: ${default2iRZpC.vpcId}\n  defaultAKE43g:\n    type: alicloud:vpc:SnatEntry\n    properties:\n      snatIp: ${defaultyiRwgs.ipAddress}\n      snatTableId: ${default2iRZpC.snatTableIds[0]}\n      eipAffinity: '1'\n      sourceVswitchId: ${defaultp4O7qi.id}\n  defaultNatFirewall:\n    type: alicloud:cloudfirewall:NatFirewall\n    name: default\n    properties:\n      regionNo: cn-shenzhen\n      vswitchAuto: 'true'\n      strictMode: '0'\n      vpcId: ${defaultikZ0gD.id}\n      proxyName: ${name}\n      lang: zh\n      natGatewayId: ${default2iRZpC.id}\n      natRouteEntryLists:\n        - nexthopId: ${default2iRZpC.id}\n          destinationCidr: 0.0.0.0/0\n          nexthopType: NatGateway\n          routeTableId: ${defaultp4O7qi.routeTableId}\n      firewallSwitch: close\n      vswitchCidr: 172.16.5.0/24\n      status: closed\n      vswitchId: ${defaultp4O7qi.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudfirewall:getNatFirewalls\n      arguments:\n        ids:\n          - ${defaultNatFirewall.id}\n        lang: zh\n        natGatewayId: ${default2iRZpC.id}\n        proxyName: ${name}\n        regionNo: cn-shenzhen\n        status: closed\n        vpcId: ${defaultikZ0gD.id}\noutputs:\n  alicloudCloudFirewallNatFirewallExampleId: ${default.firewalls[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNatFirewalls.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Nat Firewall IDs.\n"},"lang":{"type":"string","description":"Lang\n"},"memberUid":{"type":"integer","description":"Member Account ID\n"},"natGatewayId":{"type":"string","description":"NAT gateway ID\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer","description":"Page No\n"},"pageSize":{"type":"integer","description":"Page Size\n"},"proxyId":{"type":"string","description":"NAT firewall ID\n"},"proxyName":{"type":"string","description":"NAT firewall name\n"},"regionNo":{"type":"string","description":"Region\n"},"status":{"type":"string","description":"The status of the resource\n"},"vpcId":{"type":"string","description":"The ID of the VPC instance.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNatFirewalls.\n","properties":{"firewalls":{"description":"A list of Nat Firewall Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cloudfirewall/getNatFirewallsFirewall:getNatFirewallsFirewall"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Nat Firewall IDs.\n","items":{"type":"string"},"type":"array"},"lang":{"type":"string"},"memberUid":{"description":"Member Account ID\n","type":"integer"},"natGatewayId":{"description":"NAT gateway ID\n","type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"proxyId":{"description":"NAT firewall ID\n","type":"string"},"proxyName":{"description":"NAT firewall name\n","type":"string"},"regionNo":{"type":"string"},"status":{"type":"string"},"vpcId":{"description":"The ID of the VPC instance.\n","type":"string"}},"required":["firewalls","ids","id"],"type":"object"}},"alicloud:cloudfirewall/getTlsInspectCaCertificates:getTlsInspectCaCertificates":{"description":"This data source provides Cloud Firewall Tls Inspect Ca Certificate available to the user.[What is Tls Inspect Ca Certificate](https://next.api.alibabacloud.com/document/Cloudfw/2017-12-07/GetTlsInspectCertificateDownloadUrl)\n\n\u003e **NOTE:** Available since v1.262.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultCloudFirewallTlsInspectCaCertificate = new alicloud.index.CloudFirewallTlsInspectCaCertificate(\"default\", {});\nconst _default = alicloud.cloudfirewall.getTlsInspectCaCertificates({\n    ids: [defaultCloudFirewallTlsInspectCaCertificate.id],\n});\nexport const alicloudCloudFirewallTlsInspectCaCertificateExampleId = _default.then(_default =\u003e _default.certificates?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_cloud_firewall_tls_inspect_ca_certificate = alicloud.index.CloudFirewallTlsInspectCaCertificate(\"default\")\ndefault = alicloud.cloudfirewall.get_tls_inspect_ca_certificates(ids=[default_cloud_firewall_tls_inspect_ca_certificate[\"id\"]])\npulumi.export(\"alicloudCloudFirewallTlsInspectCaCertificateExampleId\", default.certificates[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultCloudFirewallTlsInspectCaCertificate = new AliCloud.Index.CloudFirewallTlsInspectCaCertificate(\"default\");\n\n    var @default = AliCloud.CloudFirewall.GetTlsInspectCaCertificates.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultCloudFirewallTlsInspectCaCertificate.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCloudFirewallTlsInspectCaCertificateExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getTlsInspectCaCertificatesResult =\u003e getTlsInspectCaCertificatesResult.Certificates[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultCloudFirewallTlsInspectCaCertificate, err := alicloud.NewCloudFirewallTlsInspectCaCertificate(ctx, \"default\", nil)\nif err != nil {\nreturn err\n}\n_default, err := cloudfirewall.GetTlsInspectCaCertificates(ctx, \u0026cloudfirewall.GetTlsInspectCaCertificatesArgs{\nIds: interface{}{\ndefaultCloudFirewallTlsInspectCaCertificate.Id,\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudCloudFirewallTlsInspectCaCertificateExampleId\", _default.Certificates[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.CloudFirewallTlsInspectCaCertificate;\nimport com.pulumi.alicloud.cloudfirewall.CloudfirewallFunctions;\nimport com.pulumi.alicloud.cloudfirewall.inputs.GetTlsInspectCaCertificatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultCloudFirewallTlsInspectCaCertificate = new CloudFirewallTlsInspectCaCertificate(\"defaultCloudFirewallTlsInspectCaCertificate\");\n\n        final var default = CloudfirewallFunctions.getTlsInspectCaCertificates(GetTlsInspectCaCertificatesArgs.builder()\n            .ids(defaultCloudFirewallTlsInspectCaCertificate.id())\n            .build());\n\n        ctx.export(\"alicloudCloudFirewallTlsInspectCaCertificateExampleId\", default_.certificates()[0].id());\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultCloudFirewallTlsInspectCaCertificate:\n    type: alicloud:CloudFirewallTlsInspectCaCertificate\n    name: default\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudfirewall:getTlsInspectCaCertificates\n      arguments:\n        ids:\n          - ${defaultCloudFirewallTlsInspectCaCertificate.id}\noutputs:\n  alicloudCloudFirewallTlsInspectCaCertificateExampleId: ${default.certificates[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTlsInspectCaCertificates.\n","properties":{"caCertId":{"type":"string","description":"CA certificate ID\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Tls Inspect Ca Certificate IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer","description":"Current page number.\n"},"pageSize":{"type":"integer","description":"Number of records per page.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTlsInspectCaCertificates.\n","properties":{"caCertId":{"description":"CA certificate ID\n","type":"string"},"certificates":{"description":"A list of Tls Inspect Ca Certificate Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cloudfirewall/getTlsInspectCaCertificatesCertificate:getTlsInspectCaCertificatesCertificate"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Tls Inspect Ca Certificate IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["certificates","ids","id"],"type":"object"}},"alicloud:cloudfirewall/getVpcCenTrFirewalls:getVpcCenTrFirewalls":{"description":"This data source provides Cloud Firewall Vpc Cen Tr Firewall available to the user.[What is Vpc Cen Tr Firewall](https://next.api.alibabacloud.com/document/Cloudfw/2017-12-07/CreateTrFirewallV2)\n\n\u003e **NOTE:** Available since v1.243.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst description = config.get(\"description\") || \"Created by Terraform\";\nconst firewallName = config.get(\"firewallName\") || \"tf-example\";\nconst trAttachmentMasterCidr = config.get(\"trAttachmentMasterCidr\") || \"192.168.3.192/26\";\nconst firewallSubnetCidr = config.get(\"firewallSubnetCidr\") || \"192.168.3.0/25\";\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst trAttachmentSlaveCidr = config.get(\"trAttachmentSlaveCidr\") || \"192.168.3.128/26\";\nconst firewallVpcCidr = config.get(\"firewallVpcCidr\") || \"192.168.3.0/24\";\nconst zone1 = config.get(\"zone1\") || \"cn-hangzhou-h\";\nconst firewallNameUpdate = config.get(\"firewallNameUpdate\") || \"tf-example-1\";\nconst zone2 = config.get(\"zone2\") || \"cn-hangzhou-i\";\nconst cen = new alicloud.cen.Instance(\"cen\", {\n    description: \"terraform example\",\n    cenInstanceName: \"Cen_Terraform_example01\",\n});\nconst tr = new alicloud.cen.TransitRouter(\"tr\", {\n    supportMulticast: false,\n    transitRouterName: \"CEN_TR_Terraform\",\n    transitRouterDescription: \"tr-created-by-terraform\",\n    cenId: cen.id,\n});\nconst vpc1 = new alicloud.vpc.Network(\"vpc1\", {\n    description: \"created by terraform\",\n    cidrBlock: \"192.168.1.0/24\",\n    vpcName: \"vpc1-Terraform\",\n});\nconst vpc1vsw1 = new alicloud.vpc.Switch(\"vpc1vsw1\", {\n    cidrBlock: \"192.168.1.0/25\",\n    vswitchName: \"vpc1-vsw1\",\n    vpcId: vpc1.id,\n    zoneId: zone1,\n});\nconst vpc1vsw2 = new alicloud.vpc.Switch(\"vpc1vsw2\", {\n    vpcId: vpc1.id,\n    cidrBlock: \"192.168.1.128/26\",\n    vswitchName: \"vpc1-vsw2\",\n    zoneId: zone2,\n});\nconst vpc2 = new alicloud.vpc.Network(\"vpc2\", {\n    description: \"created by terraform\",\n    cidrBlock: \"192.168.2.0/24\",\n    vpcName: \"vpc2-Terraform\",\n});\nconst vpc2vsw1 = new alicloud.vpc.Switch(\"vpc2vsw1\", {\n    cidrBlock: \"192.168.2.0/25\",\n    vswitchName: \"vpc2-vsw1\",\n    vpcId: vpc2.id,\n    zoneId: zone1,\n});\nconst vpc2vsw2 = new alicloud.vpc.Switch(\"vpc2vsw2\", {\n    cidrBlock: \"192.168.2.128/26\",\n    vswitchName: \"vpc2-vsw2\",\n    vpcId: vpc2.id,\n    zoneId: zone2,\n});\nconst tr_vpc1 = new alicloud.cen.TransitRouterVpcAttachment(\"tr-vpc1\", {\n    autoPublishRouteEnabled: false,\n    zoneMappings: [\n        {\n            vswitchId: vpc1vsw1.id,\n            zoneId: vpc1vsw1.zoneId,\n        },\n        {\n            zoneId: vpc1vsw2.zoneId,\n            vswitchId: vpc1vsw2.id,\n        },\n    ],\n    vpcId: vpc1.id,\n    cenId: cen.id,\n});\nconst tr_vpc2 = new alicloud.cen.TransitRouterVpcAttachment(\"tr-vpc2\", {\n    autoPublishRouteEnabled: false,\n    vpcId: vpc2.id,\n    zoneMappings: [\n        {\n            vswitchId: vpc2vsw1.id,\n            zoneId: vpc2vsw1.zoneId,\n        },\n        {\n            vswitchId: vpc2vsw2.id,\n            zoneId: vpc2vsw2.zoneId,\n        },\n    ],\n    cenId: cen.id,\n});\nconst defaultVpcCenTrFirewall = new alicloud.cloudfirewall.VpcCenTrFirewall(\"default\", {\n    firewallDescription: \"VpcCenTrFirewall created by terraform\",\n    regionNo: region,\n    routeMode: \"managed\",\n    cenId: cen.id,\n    firewallVpcCidr: firewallVpcCidr,\n    transitRouterId: tr.transitRouterId,\n    trAttachmentMasterCidr: trAttachmentMasterCidr,\n    firewallName: firewallName,\n    firewallSubnetCidr: firewallSubnetCidr,\n    trAttachmentSlaveCidr: trAttachmentSlaveCidr,\n});\nconst _default = alicloud.cloudfirewall.getVpcCenTrFirewallsOutput({\n    ids: [defaultVpcCenTrFirewall.id],\n    cenId: cen.id,\n    firewallName: firewallName,\n    regionNo: region,\n    routeMode: \"managed\",\n    transitRouterId: tr.transitRouterId,\n});\nexport const alicloudCloudFirewallVpcCenTrFirewallExampleId = _default.apply(_default =\u003e _default.firewalls?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndescription = config.get(\"description\")\nif description is None:\n    description = \"Created by Terraform\"\nfirewall_name = config.get(\"firewallName\")\nif firewall_name is None:\n    firewall_name = \"tf-example\"\ntr_attachment_master_cidr = config.get(\"trAttachmentMasterCidr\")\nif tr_attachment_master_cidr is None:\n    tr_attachment_master_cidr = \"192.168.3.192/26\"\nfirewall_subnet_cidr = config.get(\"firewallSubnetCidr\")\nif firewall_subnet_cidr is None:\n    firewall_subnet_cidr = \"192.168.3.0/25\"\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\ntr_attachment_slave_cidr = config.get(\"trAttachmentSlaveCidr\")\nif tr_attachment_slave_cidr is None:\n    tr_attachment_slave_cidr = \"192.168.3.128/26\"\nfirewall_vpc_cidr = config.get(\"firewallVpcCidr\")\nif firewall_vpc_cidr is None:\n    firewall_vpc_cidr = \"192.168.3.0/24\"\nzone1 = config.get(\"zone1\")\nif zone1 is None:\n    zone1 = \"cn-hangzhou-h\"\nfirewall_name_update = config.get(\"firewallNameUpdate\")\nif firewall_name_update is None:\n    firewall_name_update = \"tf-example-1\"\nzone2 = config.get(\"zone2\")\nif zone2 is None:\n    zone2 = \"cn-hangzhou-i\"\ncen = alicloud.cen.Instance(\"cen\",\n    description=\"terraform example\",\n    cen_instance_name=\"Cen_Terraform_example01\")\ntr = alicloud.cen.TransitRouter(\"tr\",\n    support_multicast=False,\n    transit_router_name=\"CEN_TR_Terraform\",\n    transit_router_description=\"tr-created-by-terraform\",\n    cen_id=cen.id)\nvpc1 = alicloud.vpc.Network(\"vpc1\",\n    description=\"created by terraform\",\n    cidr_block=\"192.168.1.0/24\",\n    vpc_name=\"vpc1-Terraform\")\nvpc1vsw1 = alicloud.vpc.Switch(\"vpc1vsw1\",\n    cidr_block=\"192.168.1.0/25\",\n    vswitch_name=\"vpc1-vsw1\",\n    vpc_id=vpc1.id,\n    zone_id=zone1)\nvpc1vsw2 = alicloud.vpc.Switch(\"vpc1vsw2\",\n    vpc_id=vpc1.id,\n    cidr_block=\"192.168.1.128/26\",\n    vswitch_name=\"vpc1-vsw2\",\n    zone_id=zone2)\nvpc2 = alicloud.vpc.Network(\"vpc2\",\n    description=\"created by terraform\",\n    cidr_block=\"192.168.2.0/24\",\n    vpc_name=\"vpc2-Terraform\")\nvpc2vsw1 = alicloud.vpc.Switch(\"vpc2vsw1\",\n    cidr_block=\"192.168.2.0/25\",\n    vswitch_name=\"vpc2-vsw1\",\n    vpc_id=vpc2.id,\n    zone_id=zone1)\nvpc2vsw2 = alicloud.vpc.Switch(\"vpc2vsw2\",\n    cidr_block=\"192.168.2.128/26\",\n    vswitch_name=\"vpc2-vsw2\",\n    vpc_id=vpc2.id,\n    zone_id=zone2)\ntr_vpc1 = alicloud.cen.TransitRouterVpcAttachment(\"tr-vpc1\",\n    auto_publish_route_enabled=False,\n    zone_mappings=[\n        {\n            \"vswitch_id\": vpc1vsw1.id,\n            \"zone_id\": vpc1vsw1.zone_id,\n        },\n        {\n            \"zone_id\": vpc1vsw2.zone_id,\n            \"vswitch_id\": vpc1vsw2.id,\n        },\n    ],\n    vpc_id=vpc1.id,\n    cen_id=cen.id)\ntr_vpc2 = alicloud.cen.TransitRouterVpcAttachment(\"tr-vpc2\",\n    auto_publish_route_enabled=False,\n    vpc_id=vpc2.id,\n    zone_mappings=[\n        {\n            \"vswitch_id\": vpc2vsw1.id,\n            \"zone_id\": vpc2vsw1.zone_id,\n        },\n        {\n            \"vswitch_id\": vpc2vsw2.id,\n            \"zone_id\": vpc2vsw2.zone_id,\n        },\n    ],\n    cen_id=cen.id)\ndefault_vpc_cen_tr_firewall = alicloud.cloudfirewall.VpcCenTrFirewall(\"default\",\n    firewall_description=\"VpcCenTrFirewall created by terraform\",\n    region_no=region,\n    route_mode=\"managed\",\n    cen_id=cen.id,\n    firewall_vpc_cidr=firewall_vpc_cidr,\n    transit_router_id=tr.transit_router_id,\n    tr_attachment_master_cidr=tr_attachment_master_cidr,\n    firewall_name=firewall_name,\n    firewall_subnet_cidr=firewall_subnet_cidr,\n    tr_attachment_slave_cidr=tr_attachment_slave_cidr)\ndefault = alicloud.cloudfirewall.get_vpc_cen_tr_firewalls_output(ids=[default_vpc_cen_tr_firewall.id],\n    cen_id=cen.id,\n    firewall_name=firewall_name,\n    region_no=region,\n    route_mode=\"managed\",\n    transit_router_id=tr.transit_router_id)\npulumi.export(\"alicloudCloudFirewallVpcCenTrFirewallExampleId\", default.firewalls[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var description = config.Get(\"description\") ?? \"Created by Terraform\";\n    var firewallName = config.Get(\"firewallName\") ?? \"tf-example\";\n    var trAttachmentMasterCidr = config.Get(\"trAttachmentMasterCidr\") ?? \"192.168.3.192/26\";\n    var firewallSubnetCidr = config.Get(\"firewallSubnetCidr\") ?? \"192.168.3.0/25\";\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var trAttachmentSlaveCidr = config.Get(\"trAttachmentSlaveCidr\") ?? \"192.168.3.128/26\";\n    var firewallVpcCidr = config.Get(\"firewallVpcCidr\") ?? \"192.168.3.0/24\";\n    var zone1 = config.Get(\"zone1\") ?? \"cn-hangzhou-h\";\n    var firewallNameUpdate = config.Get(\"firewallNameUpdate\") ?? \"tf-example-1\";\n    var zone2 = config.Get(\"zone2\") ?? \"cn-hangzhou-i\";\n    var cen = new AliCloud.Cen.Instance(\"cen\", new()\n    {\n        Description = \"terraform example\",\n        CenInstanceName = \"Cen_Terraform_example01\",\n    });\n\n    var tr = new AliCloud.Cen.TransitRouter(\"tr\", new()\n    {\n        SupportMulticast = false,\n        TransitRouterName = \"CEN_TR_Terraform\",\n        TransitRouterDescription = \"tr-created-by-terraform\",\n        CenId = cen.Id,\n    });\n\n    var vpc1 = new AliCloud.Vpc.Network(\"vpc1\", new()\n    {\n        Description = \"created by terraform\",\n        CidrBlock = \"192.168.1.0/24\",\n        VpcName = \"vpc1-Terraform\",\n    });\n\n    var vpc1vsw1 = new AliCloud.Vpc.Switch(\"vpc1vsw1\", new()\n    {\n        CidrBlock = \"192.168.1.0/25\",\n        VswitchName = \"vpc1-vsw1\",\n        VpcId = vpc1.Id,\n        ZoneId = zone1,\n    });\n\n    var vpc1vsw2 = new AliCloud.Vpc.Switch(\"vpc1vsw2\", new()\n    {\n        VpcId = vpc1.Id,\n        CidrBlock = \"192.168.1.128/26\",\n        VswitchName = \"vpc1-vsw2\",\n        ZoneId = zone2,\n    });\n\n    var vpc2 = new AliCloud.Vpc.Network(\"vpc2\", new()\n    {\n        Description = \"created by terraform\",\n        CidrBlock = \"192.168.2.0/24\",\n        VpcName = \"vpc2-Terraform\",\n    });\n\n    var vpc2vsw1 = new AliCloud.Vpc.Switch(\"vpc2vsw1\", new()\n    {\n        CidrBlock = \"192.168.2.0/25\",\n        VswitchName = \"vpc2-vsw1\",\n        VpcId = vpc2.Id,\n        ZoneId = zone1,\n    });\n\n    var vpc2vsw2 = new AliCloud.Vpc.Switch(\"vpc2vsw2\", new()\n    {\n        CidrBlock = \"192.168.2.128/26\",\n        VswitchName = \"vpc2-vsw2\",\n        VpcId = vpc2.Id,\n        ZoneId = zone2,\n    });\n\n    var tr_vpc1 = new AliCloud.Cen.TransitRouterVpcAttachment(\"tr-vpc1\", new()\n    {\n        AutoPublishRouteEnabled = false,\n        ZoneMappings = new[]\n        {\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                VswitchId = vpc1vsw1.Id,\n                ZoneId = vpc1vsw1.ZoneId,\n            },\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                ZoneId = vpc1vsw2.ZoneId,\n                VswitchId = vpc1vsw2.Id,\n            },\n        },\n        VpcId = vpc1.Id,\n        CenId = cen.Id,\n    });\n\n    var tr_vpc2 = new AliCloud.Cen.TransitRouterVpcAttachment(\"tr-vpc2\", new()\n    {\n        AutoPublishRouteEnabled = false,\n        VpcId = vpc2.Id,\n        ZoneMappings = new[]\n        {\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                VswitchId = vpc2vsw1.Id,\n                ZoneId = vpc2vsw1.ZoneId,\n            },\n            new AliCloud.Cen.Inputs.TransitRouterVpcAttachmentZoneMappingArgs\n            {\n                VswitchId = vpc2vsw2.Id,\n                ZoneId = vpc2vsw2.ZoneId,\n            },\n        },\n        CenId = cen.Id,\n    });\n\n    var defaultVpcCenTrFirewall = new AliCloud.CloudFirewall.VpcCenTrFirewall(\"default\", new()\n    {\n        FirewallDescription = \"VpcCenTrFirewall created by terraform\",\n        RegionNo = region,\n        RouteMode = \"managed\",\n        CenId = cen.Id,\n        FirewallVpcCidr = firewallVpcCidr,\n        TransitRouterId = tr.TransitRouterId,\n        TrAttachmentMasterCidr = trAttachmentMasterCidr,\n        FirewallName = firewallName,\n        FirewallSubnetCidr = firewallSubnetCidr,\n        TrAttachmentSlaveCidr = trAttachmentSlaveCidr,\n    });\n\n    var @default = AliCloud.CloudFirewall.GetVpcCenTrFirewalls.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultVpcCenTrFirewall.Id,\n        },\n        CenId = cen.Id,\n        FirewallName = firewallName,\n        RegionNo = region,\n        RouteMode = \"managed\",\n        TransitRouterId = tr.TransitRouterId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCloudFirewallVpcCenTrFirewallExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getVpcCenTrFirewallsResult =\u003e getVpcCenTrFirewallsResult.Firewalls[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndescription := \"Created by Terraform\";\nif param := cfg.Get(\"description\"); param != \"\"{\ndescription = param\n}\nfirewallName := \"tf-example\";\nif param := cfg.Get(\"firewallName\"); param != \"\"{\nfirewallName = param\n}\ntrAttachmentMasterCidr := \"192.168.3.192/26\";\nif param := cfg.Get(\"trAttachmentMasterCidr\"); param != \"\"{\ntrAttachmentMasterCidr = param\n}\nfirewallSubnetCidr := \"192.168.3.0/25\";\nif param := cfg.Get(\"firewallSubnetCidr\"); param != \"\"{\nfirewallSubnetCidr = param\n}\nregion := \"cn-hangzhou\";\nif param := cfg.Get(\"region\"); param != \"\"{\nregion = param\n}\ntrAttachmentSlaveCidr := \"192.168.3.128/26\";\nif param := cfg.Get(\"trAttachmentSlaveCidr\"); param != \"\"{\ntrAttachmentSlaveCidr = param\n}\nfirewallVpcCidr := \"192.168.3.0/24\";\nif param := cfg.Get(\"firewallVpcCidr\"); param != \"\"{\nfirewallVpcCidr = param\n}\nzone1 := \"cn-hangzhou-h\";\nif param := cfg.Get(\"zone1\"); param != \"\"{\nzone1 = param\n}\nfirewallNameUpdate := \"tf-example-1\";\nif param := cfg.Get(\"firewallNameUpdate\"); param != \"\"{\nfirewallNameUpdate = param\n}\nzone2 := \"cn-hangzhou-i\";\nif param := cfg.Get(\"zone2\"); param != \"\"{\nzone2 = param\n}\ncen, err := cen.NewInstance(ctx, \"cen\", \u0026cen.InstanceArgs{\nDescription: pulumi.String(\"terraform example\"),\nCenInstanceName: pulumi.String(\"Cen_Terraform_example01\"),\n})\nif err != nil {\nreturn err\n}\ntr, err := cen.NewTransitRouter(ctx, \"tr\", \u0026cen.TransitRouterArgs{\nSupportMulticast: pulumi.Bool(false),\nTransitRouterName: pulumi.String(\"CEN_TR_Terraform\"),\nTransitRouterDescription: pulumi.String(\"tr-created-by-terraform\"),\nCenId: cen.ID(),\n})\nif err != nil {\nreturn err\n}\nvpc1, err := vpc.NewNetwork(ctx, \"vpc1\", \u0026vpc.NetworkArgs{\nDescription: pulumi.String(\"created by terraform\"),\nCidrBlock: pulumi.String(\"192.168.1.0/24\"),\nVpcName: pulumi.String(\"vpc1-Terraform\"),\n})\nif err != nil {\nreturn err\n}\nvpc1vsw1, err := vpc.NewSwitch(ctx, \"vpc1vsw1\", \u0026vpc.SwitchArgs{\nCidrBlock: pulumi.String(\"192.168.1.0/25\"),\nVswitchName: pulumi.String(\"vpc1-vsw1\"),\nVpcId: vpc1.ID(),\nZoneId: pulumi.String(zone1),\n})\nif err != nil {\nreturn err\n}\nvpc1vsw2, err := vpc.NewSwitch(ctx, \"vpc1vsw2\", \u0026vpc.SwitchArgs{\nVpcId: vpc1.ID(),\nCidrBlock: pulumi.String(\"192.168.1.128/26\"),\nVswitchName: pulumi.String(\"vpc1-vsw2\"),\nZoneId: pulumi.String(zone2),\n})\nif err != nil {\nreturn err\n}\nvpc2, err := vpc.NewNetwork(ctx, \"vpc2\", \u0026vpc.NetworkArgs{\nDescription: pulumi.String(\"created by terraform\"),\nCidrBlock: pulumi.String(\"192.168.2.0/24\"),\nVpcName: pulumi.String(\"vpc2-Terraform\"),\n})\nif err != nil {\nreturn err\n}\nvpc2vsw1, err := vpc.NewSwitch(ctx, \"vpc2vsw1\", \u0026vpc.SwitchArgs{\nCidrBlock: pulumi.String(\"192.168.2.0/25\"),\nVswitchName: pulumi.String(\"vpc2-vsw1\"),\nVpcId: vpc2.ID(),\nZoneId: pulumi.String(zone1),\n})\nif err != nil {\nreturn err\n}\nvpc2vsw2, err := vpc.NewSwitch(ctx, \"vpc2vsw2\", \u0026vpc.SwitchArgs{\nCidrBlock: pulumi.String(\"192.168.2.128/26\"),\nVswitchName: pulumi.String(\"vpc2-vsw2\"),\nVpcId: vpc2.ID(),\nZoneId: pulumi.String(zone2),\n})\nif err != nil {\nreturn err\n}\n_, err = cen.NewTransitRouterVpcAttachment(ctx, \"tr-vpc1\", \u0026cen.TransitRouterVpcAttachmentArgs{\nAutoPublishRouteEnabled: pulumi.Bool(false),\nZoneMappings: cen.TransitRouterVpcAttachmentZoneMappingArray{\n\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\nVswitchId: vpc1vsw1.ID(),\nZoneId: vpc1vsw1.ZoneId,\n},\n\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\nZoneId: vpc1vsw2.ZoneId,\nVswitchId: vpc1vsw2.ID(),\n},\n},\nVpcId: vpc1.ID(),\nCenId: cen.ID(),\n})\nif err != nil {\nreturn err\n}\n_, err = cen.NewTransitRouterVpcAttachment(ctx, \"tr-vpc2\", \u0026cen.TransitRouterVpcAttachmentArgs{\nAutoPublishRouteEnabled: pulumi.Bool(false),\nVpcId: vpc2.ID(),\nZoneMappings: cen.TransitRouterVpcAttachmentZoneMappingArray{\n\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\nVswitchId: vpc2vsw1.ID(),\nZoneId: vpc2vsw1.ZoneId,\n},\n\u0026cen.TransitRouterVpcAttachmentZoneMappingArgs{\nVswitchId: vpc2vsw2.ID(),\nZoneId: vpc2vsw2.ZoneId,\n},\n},\nCenId: cen.ID(),\n})\nif err != nil {\nreturn err\n}\ndefaultVpcCenTrFirewall, err := cloudfirewall.NewVpcCenTrFirewall(ctx, \"default\", \u0026cloudfirewall.VpcCenTrFirewallArgs{\nFirewallDescription: pulumi.String(\"VpcCenTrFirewall created by terraform\"),\nRegionNo: pulumi.String(region),\nRouteMode: pulumi.String(\"managed\"),\nCenId: cen.ID(),\nFirewallVpcCidr: pulumi.String(firewallVpcCidr),\nTransitRouterId: tr.TransitRouterId,\nTrAttachmentMasterCidr: pulumi.String(trAttachmentMasterCidr),\nFirewallName: pulumi.String(firewallName),\nFirewallSubnetCidr: pulumi.String(firewallSubnetCidr),\nTrAttachmentSlaveCidr: pulumi.String(trAttachmentSlaveCidr),\n})\nif err != nil {\nreturn err\n}\n_default := cloudfirewall.GetVpcCenTrFirewallsOutput(ctx, cloudfirewall.GetVpcCenTrFirewallsOutputArgs{\nIds: pulumi.StringArray{\ndefaultVpcCenTrFirewall.ID(),\n},\nCenId: cen.ID(),\nFirewallName: pulumi.String(firewallName),\nRegionNo: pulumi.String(region),\nRouteMode: pulumi.String(\"managed\"),\nTransitRouterId: tr.TransitRouterId,\n}, nil);\nctx.Export(\"alicloudCloudFirewallVpcCenTrFirewallExampleId\", _default.ApplyT(func(_default cloudfirewall.GetVpcCenTrFirewallsResult) (*string, error) {\nreturn \u0026default.Firewalls[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVpcAttachmentArgs;\nimport com.pulumi.alicloud.cen.inputs.TransitRouterVpcAttachmentZoneMappingArgs;\nimport com.pulumi.alicloud.cloudfirewall.VpcCenTrFirewall;\nimport com.pulumi.alicloud.cloudfirewall.VpcCenTrFirewallArgs;\nimport com.pulumi.alicloud.cloudfirewall.CloudfirewallFunctions;\nimport com.pulumi.alicloud.cloudfirewall.inputs.GetVpcCenTrFirewallsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var description = config.get(\"description\").orElse(\"Created by Terraform\");\n        final var firewallName = config.get(\"firewallName\").orElse(\"tf-example\");\n        final var trAttachmentMasterCidr = config.get(\"trAttachmentMasterCidr\").orElse(\"192.168.3.192/26\");\n        final var firewallSubnetCidr = config.get(\"firewallSubnetCidr\").orElse(\"192.168.3.0/25\");\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var trAttachmentSlaveCidr = config.get(\"trAttachmentSlaveCidr\").orElse(\"192.168.3.128/26\");\n        final var firewallVpcCidr = config.get(\"firewallVpcCidr\").orElse(\"192.168.3.0/24\");\n        final var zone1 = config.get(\"zone1\").orElse(\"cn-hangzhou-h\");\n        final var firewallNameUpdate = config.get(\"firewallNameUpdate\").orElse(\"tf-example-1\");\n        final var zone2 = config.get(\"zone2\").orElse(\"cn-hangzhou-i\");\n        var cen = new Instance(\"cen\", InstanceArgs.builder()\n            .description(\"terraform example\")\n            .cenInstanceName(\"Cen_Terraform_example01\")\n            .build());\n\n        var tr = new TransitRouter(\"tr\", TransitRouterArgs.builder()\n            .supportMulticast(false)\n            .transitRouterName(\"CEN_TR_Terraform\")\n            .transitRouterDescription(\"tr-created-by-terraform\")\n            .cenId(cen.id())\n            .build());\n\n        var vpc1 = new Network(\"vpc1\", NetworkArgs.builder()\n            .description(\"created by terraform\")\n            .cidrBlock(\"192.168.1.0/24\")\n            .vpcName(\"vpc1-Terraform\")\n            .build());\n\n        var vpc1vsw1 = new Switch(\"vpc1vsw1\", SwitchArgs.builder()\n            .cidrBlock(\"192.168.1.0/25\")\n            .vswitchName(\"vpc1-vsw1\")\n            .vpcId(vpc1.id())\n            .zoneId(zone1)\n            .build());\n\n        var vpc1vsw2 = new Switch(\"vpc1vsw2\", SwitchArgs.builder()\n            .vpcId(vpc1.id())\n            .cidrBlock(\"192.168.1.128/26\")\n            .vswitchName(\"vpc1-vsw2\")\n            .zoneId(zone2)\n            .build());\n\n        var vpc2 = new Network(\"vpc2\", NetworkArgs.builder()\n            .description(\"created by terraform\")\n            .cidrBlock(\"192.168.2.0/24\")\n            .vpcName(\"vpc2-Terraform\")\n            .build());\n\n        var vpc2vsw1 = new Switch(\"vpc2vsw1\", SwitchArgs.builder()\n            .cidrBlock(\"192.168.2.0/25\")\n            .vswitchName(\"vpc2-vsw1\")\n            .vpcId(vpc2.id())\n            .zoneId(zone1)\n            .build());\n\n        var vpc2vsw2 = new Switch(\"vpc2vsw2\", SwitchArgs.builder()\n            .cidrBlock(\"192.168.2.128/26\")\n            .vswitchName(\"vpc2-vsw2\")\n            .vpcId(vpc2.id())\n            .zoneId(zone2)\n            .build());\n\n        var tr_vpc1 = new TransitRouterVpcAttachment(\"tr-vpc1\", TransitRouterVpcAttachmentArgs.builder()\n            .autoPublishRouteEnabled(false)\n            .zoneMappings(            \n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .vswitchId(vpc1vsw1.id())\n                    .zoneId(vpc1vsw1.zoneId())\n                    .build(),\n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .zoneId(vpc1vsw2.zoneId())\n                    .vswitchId(vpc1vsw2.id())\n                    .build())\n            .vpcId(vpc1.id())\n            .cenId(cen.id())\n            .build());\n\n        var tr_vpc2 = new TransitRouterVpcAttachment(\"tr-vpc2\", TransitRouterVpcAttachmentArgs.builder()\n            .autoPublishRouteEnabled(false)\n            .vpcId(vpc2.id())\n            .zoneMappings(            \n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .vswitchId(vpc2vsw1.id())\n                    .zoneId(vpc2vsw1.zoneId())\n                    .build(),\n                TransitRouterVpcAttachmentZoneMappingArgs.builder()\n                    .vswitchId(vpc2vsw2.id())\n                    .zoneId(vpc2vsw2.zoneId())\n                    .build())\n            .cenId(cen.id())\n            .build());\n\n        var defaultVpcCenTrFirewall = new VpcCenTrFirewall(\"defaultVpcCenTrFirewall\", VpcCenTrFirewallArgs.builder()\n            .firewallDescription(\"VpcCenTrFirewall created by terraform\")\n            .regionNo(region)\n            .routeMode(\"managed\")\n            .cenId(cen.id())\n            .firewallVpcCidr(firewallVpcCidr)\n            .transitRouterId(tr.transitRouterId())\n            .trAttachmentMasterCidr(trAttachmentMasterCidr)\n            .firewallName(firewallName)\n            .firewallSubnetCidr(firewallSubnetCidr)\n            .trAttachmentSlaveCidr(trAttachmentSlaveCidr)\n            .build());\n\n        final var default = CloudfirewallFunctions.getVpcCenTrFirewalls(GetVpcCenTrFirewallsArgs.builder()\n            .ids(defaultVpcCenTrFirewall.id())\n            .cenId(cen.id())\n            .firewallName(firewallName)\n            .regionNo(region)\n            .routeMode(\"managed\")\n            .transitRouterId(tr.transitRouterId())\n            .build());\n\n        ctx.export(\"alicloudCloudFirewallVpcCenTrFirewallExampleId\", default_.applyValue(_default_ -\u003e _default_.firewalls()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  description:\n    type: string\n    default: Created by Terraform\n  firewallName:\n    type: string\n    default: tf-example\n  trAttachmentMasterCidr:\n    type: string\n    default: 192.168.3.192/26\n  firewallSubnetCidr:\n    type: string\n    default: 192.168.3.0/25\n  region:\n    type: string\n    default: cn-hangzhou\n  trAttachmentSlaveCidr:\n    type: string\n    default: 192.168.3.128/26\n  firewallVpcCidr:\n    type: string\n    default: 192.168.3.0/24\n  zone1:\n    type: string\n    default: cn-hangzhou-h\n  firewallNameUpdate:\n    type: string\n    default: tf-example-1\n  zone2:\n    type: string\n    default: cn-hangzhou-i\nresources:\n  cen:\n    type: alicloud:cen:Instance\n    properties:\n      description: terraform example\n      cenInstanceName: Cen_Terraform_example01\n  tr:\n    type: alicloud:cen:TransitRouter\n    properties:\n      supportMulticast: false\n      transitRouterName: CEN_TR_Terraform\n      transitRouterDescription: tr-created-by-terraform\n      cenId: ${cen.id}\n  vpc1:\n    type: alicloud:vpc:Network\n    properties:\n      description: created by terraform\n      cidrBlock: 192.168.1.0/24\n      vpcName: vpc1-Terraform\n  vpc1vsw1:\n    type: alicloud:vpc:Switch\n    properties:\n      cidrBlock: 192.168.1.0/25\n      vswitchName: vpc1-vsw1\n      vpcId: ${vpc1.id}\n      zoneId: ${zone1}\n  vpc1vsw2:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${vpc1.id}\n      cidrBlock: 192.168.1.128/26\n      vswitchName: vpc1-vsw2\n      zoneId: ${zone2}\n  vpc2:\n    type: alicloud:vpc:Network\n    properties:\n      description: created by terraform\n      cidrBlock: 192.168.2.0/24\n      vpcName: vpc2-Terraform\n  vpc2vsw1:\n    type: alicloud:vpc:Switch\n    properties:\n      cidrBlock: 192.168.2.0/25\n      vswitchName: vpc2-vsw1\n      vpcId: ${vpc2.id}\n      zoneId: ${zone1}\n  vpc2vsw2:\n    type: alicloud:vpc:Switch\n    properties:\n      cidrBlock: 192.168.2.128/26\n      vswitchName: vpc2-vsw2\n      vpcId: ${vpc2.id}\n      zoneId: ${zone2}\n  tr-vpc1:\n    type: alicloud:cen:TransitRouterVpcAttachment\n    properties:\n      autoPublishRouteEnabled: false\n      zoneMappings:\n        - vswitchId: ${vpc1vsw1.id}\n          zoneId: ${vpc1vsw1.zoneId}\n        - zoneId: ${vpc1vsw2.zoneId}\n          vswitchId: ${vpc1vsw2.id}\n      vpcId: ${vpc1.id}\n      cenId: ${cen.id}\n  tr-vpc2:\n    type: alicloud:cen:TransitRouterVpcAttachment\n    properties:\n      autoPublishRouteEnabled: false\n      vpcId: ${vpc2.id}\n      zoneMappings:\n        - vswitchId: ${vpc2vsw1.id}\n          zoneId: ${vpc2vsw1.zoneId}\n        - vswitchId: ${vpc2vsw2.id}\n          zoneId: ${vpc2vsw2.zoneId}\n      cenId: ${cen.id}\n  defaultVpcCenTrFirewall:\n    type: alicloud:cloudfirewall:VpcCenTrFirewall\n    name: default\n    properties:\n      firewallDescription: VpcCenTrFirewall created by terraform\n      regionNo: ${region}\n      routeMode: managed\n      cenId: ${cen.id}\n      firewallVpcCidr: ${firewallVpcCidr}\n      transitRouterId: ${tr.transitRouterId}\n      trAttachmentMasterCidr: ${trAttachmentMasterCidr}\n      firewallName: ${firewallName}\n      firewallSubnetCidr: ${firewallSubnetCidr}\n      trAttachmentSlaveCidr: ${trAttachmentSlaveCidr}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudfirewall:getVpcCenTrFirewalls\n      arguments:\n        ids:\n          - ${defaultVpcCenTrFirewall.id}\n        cenId: ${cen.id}\n        firewallName: ${firewallName}\n        regionNo: ${region}\n        routeMode: managed\n        transitRouterId: ${tr.transitRouterId}\noutputs:\n  alicloudCloudFirewallVpcCenTrFirewallExampleId: ${default.firewalls[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcCenTrFirewalls.\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"currentPage":{"type":"integer","description":"The page number of the pagination query. The default value is 1.\n"},"firewallId":{"type":"string","description":"Firewall ID\n"},"firewallName":{"type":"string","description":"The name of Cloud Firewall.\n"},"firewallSwitchStatus":{"type":"string","description":"The status of the VPC boundary firewall. Value:-**opened**: opened-**closed**: closed-**notconfigured**: indicates that the VPC boundary firewall has not been configured yet.-**configured**: indicates that the VPC boundary firewall has been configured.-**creating**: indicates that a VPC boundary firewall is being created.-**opening**: indicates that the VPC border firewall is being enabled.-**deleting**: indicates that the VPC boundary firewall is being deleted.\u003e If this parameter is not set, the VPC boundary firewall in all states is queried.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Vpc Cen Tr Firewall IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer","description":"Current page number.\n"},"pageSize":{"type":"integer","description":"The maximum number of pieces of data per page that are displayed during a paged query. The default value is 10.\n"},"regionNo":{"type":"string","description":"The region ID of the transit router instance.\n"},"routeMode":{"type":"string","description":"The routing pattern. Value: managed: indicates automatic mode\n"},"transitRouterId":{"type":"string","description":"The ID of the transit router instance.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcCenTrFirewalls.\n","properties":{"cenId":{"description":"The ID of the CEN instance.\n","type":"string"},"currentPage":{"type":"integer"},"firewallId":{"description":"Firewall ID\n","type":"string"},"firewallName":{"description":"The name of Cloud Firewall.\n","type":"string"},"firewallSwitchStatus":{"description":"The status of the VPC boundary firewall. Value:-**opened**: opened-**closed**: closed-**notconfigured**: indicates that the VPC boundary firewall has not been configured yet.-**configured**: indicates that the VPC boundary firewall has been configured.-**creating**: indicates that a VPC boundary firewall is being created.-**opening**: indicates that the VPC border firewall is being enabled.-**deleting**: indicates that the VPC boundary firewall is being deleted.\u003e If this parameter is not set, the VPC boundary firewall in all states is queried.\n","type":"string"},"firewalls":{"description":"A list of Vpc Cen Tr Firewall Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cloudfirewall/getVpcCenTrFirewallsFirewall:getVpcCenTrFirewallsFirewall"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Vpc Cen Tr Firewall IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"regionNo":{"description":"The region ID of the transit router instance.\n","type":"string"},"routeMode":{"description":"The routing pattern. Value: managed: indicates automatic mode\n","type":"string"},"transitRouterId":{"description":"The ID of the transit router instance.\n","type":"string"}},"required":["firewalls","ids","id"],"type":"object"}},"alicloud:cloudfirewall/getVpcFirewallCens:getVpcFirewallCens":{"description":"This data source provides Cloud Firewall Vpc Firewall Cen available to the user.[What is Vpc Firewall Cen](https://www.alibabacloud.com/help/en/cloud-firewall/latest/describevpcfirewallcenlist)\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cloudfirewall.getVpcFirewallCens({\n    ids: [defaultAlicloudCloudFirewallVpcFirewallCen.id],\n    cenId: \"cen-cjok7uyb5w2b27573v\",\n    memberUid: \"1415189284827022\",\n    status: \"closed\",\n    vpcFirewallName: \"tf-test\",\n});\nexport const alicloudCloudFirewallVpcFirewallCenExampleId = _default.then(_default =\u003e _default.cens?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cloudfirewall.get_vpc_firewall_cens(ids=[default_alicloud_cloud_firewall_vpc_firewall_cen[\"id\"]],\n    cen_id=\"cen-cjok7uyb5w2b27573v\",\n    member_uid=\"1415189284827022\",\n    status=\"closed\",\n    vpc_firewall_name=\"tf-test\")\npulumi.export(\"alicloudCloudFirewallVpcFirewallCenExampleId\", default.cens[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.CloudFirewall.GetVpcFirewallCens.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudCloudFirewallVpcFirewallCen.Id,\n        },\n        CenId = \"cen-cjok7uyb5w2b27573v\",\n        MemberUid = \"1415189284827022\",\n        Status = \"closed\",\n        VpcFirewallName = \"tf-test\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCloudFirewallVpcFirewallCenExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getVpcFirewallCensResult =\u003e getVpcFirewallCensResult.Cens[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := cloudfirewall.GetVpcFirewallCens(ctx, \u0026cloudfirewall.GetVpcFirewallCensArgs{\nIds: interface{}{\ndefaultAlicloudCloudFirewallVpcFirewallCen.Id,\n},\nCenId: pulumi.StringRef(\"cen-cjok7uyb5w2b27573v\"),\nMemberUid: pulumi.StringRef(\"1415189284827022\"),\nStatus: pulumi.StringRef(\"closed\"),\nVpcFirewallName: pulumi.StringRef(\"tf-test\"),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudCloudFirewallVpcFirewallCenExampleId\", _default.Cens[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.CloudfirewallFunctions;\nimport com.pulumi.alicloud.cloudfirewall.inputs.GetVpcFirewallCensArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CloudfirewallFunctions.getVpcFirewallCens(GetVpcFirewallCensArgs.builder()\n            .ids(defaultAlicloudCloudFirewallVpcFirewallCen.id())\n            .cenId(\"cen-cjok7uyb5w2b27573v\")\n            .memberUid(\"1415189284827022\")\n            .status(\"closed\")\n            .vpcFirewallName(\"tf-test\")\n            .build());\n\n        ctx.export(\"alicloudCloudFirewallVpcFirewallCenExampleId\", default_.cens()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudfirewall:getVpcFirewallCens\n      arguments:\n        ids:\n          - ${defaultAlicloudCloudFirewallVpcFirewallCen.id}\n        cenId: cen-cjok7uyb5w2b27573v\n        memberUid: '1415189284827022'\n        status: closed\n        vpcFirewallName: tf-test\noutputs:\n  alicloudCloudFirewallVpcFirewallCenExampleId: ${default.cens[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcFirewallCens.\n","properties":{"cenId":{"type":"string","description":"The ID of the CEN instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Vpc Firewall Cen IDs.\n"},"lang":{"type":"string","description":"The language type of the requested and received messages. Value:-**zh** (default): Chinese.-**en**: English.\n"},"memberUid":{"type":"string","description":"The UID of the member account (other Alibaba Cloud account) of the current Alibaba cloud account.\n"},"networkInstanceId":{"type":"string","description":"The ID of the VPC instance that created the VPC firewall.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string","description":"Firewall switch status\n"},"vpcFirewallId":{"type":"string","description":"VPC firewall ID\n"},"vpcFirewallName":{"type":"string","description":"The name of the VPC firewall instance.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcFirewallCens.\n","properties":{"cenId":{"description":"The ID of the CEN instance.\n","type":"string"},"cens":{"description":"A list of Vpc Firewall Cen Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cloudfirewall/getVpcFirewallCensCen:getVpcFirewallCensCen"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Vpc Firewall Cen IDs.\n","items":{"type":"string"},"type":"array"},"lang":{"type":"string"},"memberUid":{"description":"The UID of the member account (other Alibaba Cloud account) of the current Alibaba cloud account.\n","type":"string"},"networkInstanceId":{"description":"The ID of the VPC instance that created the VPC firewall.\n","type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"description":"Firewall switch status\n","type":"string"},"vpcFirewallId":{"description":"VPC firewall ID\n","type":"string"},"vpcFirewallName":{"description":"The name of the VPC firewall instance.\n","type":"string"}},"required":["cens","ids","id"],"type":"object"}},"alicloud:cloudfirewall/getVpcFirewallControlPolicies:getVpcFirewallControlPolicies":{"description":"This data source provides the Cloud Firewall Vpc Firewall Control Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cloudfirewall.getVpcFirewallControlPolicies({\n    vpcFirewallId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const alicloudCloudFirewallVpcFirewallControlPoliciesId1 = ids.then(ids =\u003e ids.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cloudfirewall.get_vpc_firewall_control_policies(vpc_firewall_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"alicloudCloudFirewallVpcFirewallControlPoliciesId1\", ids.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.CloudFirewall.GetVpcFirewallControlPolicies.Invoke(new()\n    {\n        VpcFirewallId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCloudFirewallVpcFirewallControlPoliciesId1\"] = ids.Apply(getVpcFirewallControlPoliciesResult =\u003e getVpcFirewallControlPoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cloudfirewall.GetVpcFirewallControlPolicies(ctx, \u0026cloudfirewall.GetVpcFirewallControlPoliciesArgs{\n\t\t\tVpcFirewallId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudCloudFirewallVpcFirewallControlPoliciesId1\", ids.Policies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.CloudfirewallFunctions;\nimport com.pulumi.alicloud.cloudfirewall.inputs.GetVpcFirewallControlPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CloudfirewallFunctions.getVpcFirewallControlPolicies(GetVpcFirewallControlPoliciesArgs.builder()\n            .vpcFirewallId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"alicloudCloudFirewallVpcFirewallControlPoliciesId1\", ids.policies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cloudfirewall:getVpcFirewallControlPolicies\n      arguments:\n        vpcFirewallId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\noutputs:\n  alicloudCloudFirewallVpcFirewallControlPoliciesId1: ${ids.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcFirewallControlPolicies.\n","properties":{"aclAction":{"type":"string","description":"The action that Cloud Firewall performs on the traffic. Valid values: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`log`\" pulumi-lang-dotnet=\"`Log`\" pulumi-lang-go=\"`log`\" pulumi-lang-python=\"`log`\" pulumi-lang-yaml=\"`log`\" pulumi-lang-java=\"`log`\"\u003e`log`\u003c/span\u003e.\n"},"aclUuid":{"type":"string","description":"Access control over VPC firewalls strategy unique identifier.\n"},"description":{"type":"string","description":"Access control over VPC firewalls description of the strategy information.\n"},"destination":{"type":"string","description":"Access control over VPC firewalls strategy the destination address in.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Vpc Firewall Control Policy IDs.\n"},"lang":{"type":"string","description":"The language of the content within the request and response. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"memberUid":{"type":"string","description":"The UID of the member account of the current Alibaba cloud account.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"proto":{"type":"string","description":"Access control over VPC firewalls strategy access traffic of the protocol type.\n"},"release":{"type":"boolean","description":"The enabled status of the access control policy. The policy is enabled by default after it is created. Value:\n- **true**: Enable access control policies\n- **false**: does not enable access control policies.\n"},"source":{"type":"string","description":"Access control over VPC firewalls strategy in the source address.\n"},"vpcFirewallId":{"type":"string","description":"The ID of the VPC firewall instance. Value:\n- When the VPC firewall protects traffic between two VPCs connected through the cloud enterprise network, the policy group ID uses the cloud enterprise network instance ID.\n- When the VPC firewall protects traffic between two VPCs connected through the express connection, the policy group ID uses the ID of the VPC firewall instance.\n"}},"type":"object","required":["vpcFirewallId"]},"outputs":{"description":"A collection of values returned by getVpcFirewallControlPolicies.\n","properties":{"aclAction":{"description":"Access control over VPC firewalls are set in the access traffic via Alibaba cloud firewall way (ACT).\n","type":"string"},"aclUuid":{"description":"Access control over VPC firewalls strategy unique identifier.\n","type":"string"},"description":{"description":"Access control over VPC firewalls description of the strategy information.\n","type":"string"},"destination":{"description":"Access control over VPC firewalls strategy the destination address in.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"lang":{"type":"string"},"memberUid":{"description":"The UID of the member account of the current Alibaba cloud account.\n","type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"policies":{"description":"A list of Cloud Firewall Vpc Firewall Control Policies. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cloudfirewall/getVpcFirewallControlPoliciesPolicy:getVpcFirewallControlPoliciesPolicy"},"type":"array"},"proto":{"description":"Access control over VPC firewalls strategy access traffic of the protocol type.\n","type":"string"},"release":{"description":"The enabled status of the access control policy. The policy is enabled by default after it is created. Value:\n","type":"boolean"},"source":{"description":"Access control over VPC firewalls strategy in the source address.\n","type":"string"},"vpcFirewallId":{"description":"The ID of the VPC firewall instance.\n","type":"string"}},"required":["ids","policies","vpcFirewallId","id"],"type":"object"}},"alicloud:cloudfirewall/getVpcFirewalls:getVpcFirewalls":{"description":"This data source provides Cloud Firewall Vpc Firewall available to the user.[What is Vpc Firewall](https://help.aliyun.com/document_detail/342932.html)\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cloudfirewall.getVpcFirewalls({\n    ids: [\"id-example\"],\n    memberUid: \"1415189284827022\",\n    status: \"closed\",\n    vpcFirewallName: \"tf-test\",\n});\nexport const alicloudCfwVpcFirewallExampleId = _default.then(_default =\u003e _default.firewalls?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cloudfirewall.get_vpc_firewalls(ids=[\"id-example\"],\n    member_uid=\"1415189284827022\",\n    status=\"closed\",\n    vpc_firewall_name=\"tf-test\")\npulumi.export(\"alicloudCfwVpcFirewallExampleId\", default.firewalls[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.CloudFirewall.GetVpcFirewalls.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"id-example\",\n        },\n        MemberUid = \"1415189284827022\",\n        Status = \"closed\",\n        VpcFirewallName = \"tf-test\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCfwVpcFirewallExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getVpcFirewallsResult =\u003e getVpcFirewallsResult.Firewalls[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := cloudfirewall.GetVpcFirewalls(ctx, \u0026cloudfirewall.GetVpcFirewallsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"id-example\",\n\t\t\t},\n\t\t\tMemberUid:       pulumi.StringRef(\"1415189284827022\"),\n\t\t\tStatus:          pulumi.StringRef(\"closed\"),\n\t\t\tVpcFirewallName: pulumi.StringRef(\"tf-test\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudCfwVpcFirewallExampleId\", _default.Firewalls[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudfirewall.CloudfirewallFunctions;\nimport com.pulumi.alicloud.cloudfirewall.inputs.GetVpcFirewallsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CloudfirewallFunctions.getVpcFirewalls(GetVpcFirewallsArgs.builder()\n            .ids(\"id-example\")\n            .memberUid(\"1415189284827022\")\n            .status(\"closed\")\n            .vpcFirewallName(\"tf-test\")\n            .build());\n\n        ctx.export(\"alicloudCfwVpcFirewallExampleId\", default_.firewalls()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudfirewall:getVpcFirewalls\n      arguments:\n        ids:\n          - id-example\n        memberUid: '1415189284827022'\n        status: closed\n        vpcFirewallName: tf-test\noutputs:\n  alicloudCfwVpcFirewallExampleId: ${default.firewalls[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcFirewalls.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Vpc Firewall IDs.\n"},"lang":{"type":"string","description":"The language type of the requested and received messages. Value:-**zh** (default): Chinese.-**en**: English.\n"},"memberUid":{"type":"string","description":"The UID of the Alibaba Cloud member account.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"regionNo":{"type":"string","description":"The region ID of the peer VPC.\n"},"status":{"type":"string","description":"The status of the resource\n"},"vpcFirewallId":{"type":"string","description":"The ID of the VPC firewall instance.\n"},"vpcFirewallName":{"type":"string","description":"The name of the VPC firewall instance.\n"},"vpcId":{"type":"string","description":"The ID of the peer VPC instance.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcFirewalls.\n","properties":{"firewalls":{"description":"A list of Vpc Firewall Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cloudfirewall/getVpcFirewallsFirewall:getVpcFirewallsFirewall"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Vpc Firewall IDs.\n","items":{"type":"string"},"type":"array"},"lang":{"type":"string"},"memberUid":{"description":"The UID of the Alibaba Cloud member account.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Vpc Firewalls.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"regionNo":{"description":"The region ID of the peer VPC.\n","type":"string"},"status":{"description":"The status of the resource\n","type":"string"},"vpcFirewallId":{"description":"The ID of the VPC firewall instance.\n","type":"string"},"vpcFirewallName":{"description":"The name of the VPC firewall instance.\n","type":"string"},"vpcId":{"description":"The ID of the peer VPC instance.\n","type":"string"}},"required":["firewalls","ids","names","id"],"type":"object"}},"alicloud:cloudmonitor/getServiceHybridDoubleWrites:getServiceHybridDoubleWrites":{"description":"This data source provides the Cloud Monitor Service Hybrid Double Writes of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.220.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getAccount({});\nconst source = new alicloud.cms.Namespace(\"source\", {namespace: \"your-source-namespace\"});\nconst defaultNamespace = new alicloud.cms.Namespace(\"default\", {namespace: \"your-namespace\"});\nconst defaultServiceHybridDoubleWrite = new alicloud.cloudmonitor.ServiceHybridDoubleWrite(\"default\", {\n    sourceNamespace: source.id,\n    sourceUserId: _default.then(_default =\u003e _default.id),\n    namespace: defaultNamespace.id,\n    userId: _default.then(_default =\u003e _default.id),\n});\nconst ids = alicloud.cloudmonitor.getServiceHybridDoubleWritesOutput({\n    ids: [defaultServiceHybridDoubleWrite.id],\n});\nexport const cloudMonitorServiceHybridDoubleWritesId1 = ids.apply(ids =\u003e ids.hybridDoubleWrites?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_account()\nsource = alicloud.cms.Namespace(\"source\", namespace=\"your-source-namespace\")\ndefault_namespace = alicloud.cms.Namespace(\"default\", namespace=\"your-namespace\")\ndefault_service_hybrid_double_write = alicloud.cloudmonitor.ServiceHybridDoubleWrite(\"default\",\n    source_namespace=source.id,\n    source_user_id=default.id,\n    namespace=default_namespace.id,\n    user_id=default.id)\nids = alicloud.cloudmonitor.get_service_hybrid_double_writes_output(ids=[default_service_hybrid_double_write.id])\npulumi.export(\"cloudMonitorServiceHybridDoubleWritesId1\", ids.hybrid_double_writes[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetAccount.Invoke();\n\n    var source = new AliCloud.Cms.Namespace(\"source\", new()\n    {\n        NamespaceName = \"your-source-namespace\",\n    });\n\n    var defaultNamespace = new AliCloud.Cms.Namespace(\"default\", new()\n    {\n        NamespaceName = \"your-namespace\",\n    });\n\n    var defaultServiceHybridDoubleWrite = new AliCloud.CloudMonitor.ServiceHybridDoubleWrite(\"default\", new()\n    {\n        SourceNamespace = source.Id,\n        SourceUserId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n        Namespace = defaultNamespace.Id,\n        UserId = @default.Apply(@default =\u003e @default.Apply(getAccountResult =\u003e getAccountResult.Id)),\n    });\n\n    var ids = AliCloud.CloudMonitor.GetServiceHybridDoubleWrites.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultServiceHybridDoubleWrite.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudMonitorServiceHybridDoubleWritesId1\"] = ids.Apply(getServiceHybridDoubleWritesResult =\u003e getServiceHybridDoubleWritesResult.HybridDoubleWrites[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudmonitor\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsource, err := cms.NewNamespace(ctx, \"source\", \u0026cms.NamespaceArgs{\n\t\t\tNamespace: pulumi.String(\"your-source-namespace\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNamespace, err := cms.NewNamespace(ctx, \"default\", \u0026cms.NamespaceArgs{\n\t\t\tNamespace: pulumi.String(\"your-namespace\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultServiceHybridDoubleWrite, err := cloudmonitor.NewServiceHybridDoubleWrite(ctx, \"default\", \u0026cloudmonitor.ServiceHybridDoubleWriteArgs{\n\t\t\tSourceNamespace: source.ID(),\n\t\t\tSourceUserId:    pulumi.String(_default.Id),\n\t\t\tNamespace:       defaultNamespace.ID(),\n\t\t\tUserId:          pulumi.String(_default.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := cloudmonitor.GetServiceHybridDoubleWritesOutput(ctx, cloudmonitor.GetServiceHybridDoubleWritesOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultServiceHybridDoubleWrite.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"cloudMonitorServiceHybridDoubleWritesId1\", ids.ApplyT(func(ids cloudmonitor.GetServiceHybridDoubleWritesResult) (*string, error) {\n\t\t\treturn \u0026ids.HybridDoubleWrites[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.cms.Namespace;\nimport com.pulumi.alicloud.cms.NamespaceArgs;\nimport com.pulumi.alicloud.cloudmonitor.ServiceHybridDoubleWrite;\nimport com.pulumi.alicloud.cloudmonitor.ServiceHybridDoubleWriteArgs;\nimport com.pulumi.alicloud.cloudmonitor.CloudmonitorFunctions;\nimport com.pulumi.alicloud.cloudmonitor.inputs.GetServiceHybridDoubleWritesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var source = new Namespace(\"source\", NamespaceArgs.builder()\n            .namespace(\"your-source-namespace\")\n            .build());\n\n        var defaultNamespace = new Namespace(\"defaultNamespace\", NamespaceArgs.builder()\n            .namespace(\"your-namespace\")\n            .build());\n\n        var defaultServiceHybridDoubleWrite = new ServiceHybridDoubleWrite(\"defaultServiceHybridDoubleWrite\", ServiceHybridDoubleWriteArgs.builder()\n            .sourceNamespace(source.id())\n            .sourceUserId(default_.id())\n            .namespace(defaultNamespace.id())\n            .userId(default_.id())\n            .build());\n\n        final var ids = CloudmonitorFunctions.getServiceHybridDoubleWrites(GetServiceHybridDoubleWritesArgs.builder()\n            .ids(defaultServiceHybridDoubleWrite.id())\n            .build());\n\n        ctx.export(\"cloudMonitorServiceHybridDoubleWritesId1\", ids.applyValue(_ids -\u003e _ids.hybridDoubleWrites()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  source:\n    type: alicloud:cms:Namespace\n    properties:\n      namespace: your-source-namespace\n  defaultNamespace:\n    type: alicloud:cms:Namespace\n    name: default\n    properties:\n      namespace: your-namespace\n  defaultServiceHybridDoubleWrite:\n    type: alicloud:cloudmonitor:ServiceHybridDoubleWrite\n    name: default\n    properties:\n      sourceNamespace: ${source.id}\n      sourceUserId: ${default.id}\n      namespace: ${defaultNamespace.id}\n      userId: ${default.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  ids:\n    fn::invoke:\n      function: alicloud:cloudmonitor:getServiceHybridDoubleWrites\n      arguments:\n        ids:\n          - ${defaultServiceHybridDoubleWrite.id}\noutputs:\n  cloudMonitorServiceHybridDoubleWritesId1: ${ids.hybridDoubleWrites[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceHybridDoubleWrites.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Hybrid Double Write IDs.\n"},"namespace":{"type":"string","description":"Target Namespace.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"sourceNamespace":{"type":"string","description":"Source Namespace.\n"},"sourceUserId":{"type":"string","description":"Source UserId.\n"},"userId":{"type":"string","description":"Target UserId.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServiceHybridDoubleWrites.\n","properties":{"hybridDoubleWrites":{"description":"A list of Hybrid Double Writes. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cloudmonitor/getServiceHybridDoubleWritesHybridDoubleWrite:getServiceHybridDoubleWritesHybridDoubleWrite"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"namespace":{"description":"Target Namespace.\n","type":"string"},"outputFile":{"type":"string"},"sourceNamespace":{"description":"Source Namespace.\n","type":"string"},"sourceUserId":{"description":"Source UserId.\n","type":"string"},"userId":{"description":"Target UserId.\n","type":"string"}},"required":["hybridDoubleWrites","ids","id"],"type":"object"}},"alicloud:cloudmonitor/getServiceMetricAlarmRules:getServiceMetricAlarmRules":{"description":"This data source provides the Cloud Monitor Service Metric Alarm Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.256.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.ecs.getInstances({\n    status: \"Running\",\n});\nconst defaultAlarmContactGroup = new alicloud.cms.AlarmContactGroup(\"default\", {alarmContactGroupName: name});\nconst defaultAlarm = new alicloud.cms.Alarm(\"default\", {\n    name: name,\n    project: \"acs_ecs_dashboard\",\n    metric: \"disk_writebytes\",\n    period: 900,\n    silenceTime: 300,\n    webhook: \"https://www.aliyun.com\",\n    enabled: true,\n    contactGroups: [defaultAlarmContactGroup.alarmContactGroupName],\n    effectiveInterval: \"06:00-20:00\",\n    metricDimensions: _default.then(_default =\u003e `  [\n    {\n      \\\"instanceId\\\": \\\"${_default.ids?.[0]}\\\",\n      \\\"device\\\": \\\"/dev/vda1\\\"\n    }\n  ]\n`),\n    escalationsCritical: {\n        statistics: \"Average\",\n        comparisonOperator: \"\u003c=\",\n        threshold: \"90\",\n        times: 1,\n    },\n    escalationsInfo: {\n        statistics: \"Minimum\",\n        comparisonOperator: \"!=\",\n        threshold: \"20\",\n        times: 3,\n    },\n    escalationsWarn: {\n        statistics: \"Average\",\n        comparisonOperator: \"==\",\n        threshold: \"30\",\n        times: 5,\n    },\n});\nconst ids = alicloud.cloudmonitor.getServiceMetricAlarmRulesOutput({\n    ids: [defaultAlarm.id],\n});\nexport const cloudMonitorServiceMetricAlarmRulesId0 = ids.apply(ids =\u003e ids.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ecs.get_instances(status=\"Running\")\ndefault_alarm_contact_group = alicloud.cms.AlarmContactGroup(\"default\", alarm_contact_group_name=name)\ndefault_alarm = alicloud.cms.Alarm(\"default\",\n    name=name,\n    project=\"acs_ecs_dashboard\",\n    metric=\"disk_writebytes\",\n    period=900,\n    silence_time=300,\n    webhook=\"https://www.aliyun.com\",\n    enabled=True,\n    contact_groups=[default_alarm_contact_group.alarm_contact_group_name],\n    effective_interval=\"06:00-20:00\",\n    metric_dimensions=f\"\"\"  [\n    {{\n      \\\"instanceId\\\": \\\"{default.ids[0]}\\\",\n      \\\"device\\\": \\\"/dev/vda1\\\"\n    }}\n  ]\n\"\"\",\n    escalations_critical={\n        \"statistics\": \"Average\",\n        \"comparison_operator\": \"\u003c=\",\n        \"threshold\": \"90\",\n        \"times\": 1,\n    },\n    escalations_info={\n        \"statistics\": \"Minimum\",\n        \"comparison_operator\": \"!=\",\n        \"threshold\": \"20\",\n        \"times\": 3,\n    },\n    escalations_warn={\n        \"statistics\": \"Average\",\n        \"comparison_operator\": \"==\",\n        \"threshold\": \"30\",\n        \"times\": 5,\n    })\nids = alicloud.cloudmonitor.get_service_metric_alarm_rules_output(ids=[default_alarm.id])\npulumi.export(\"cloudMonitorServiceMetricAlarmRulesId0\", ids.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Ecs.GetInstances.Invoke(new()\n    {\n        Status = \"Running\",\n    });\n\n    var defaultAlarmContactGroup = new AliCloud.Cms.AlarmContactGroup(\"default\", new()\n    {\n        AlarmContactGroupName = name,\n    });\n\n    var defaultAlarm = new AliCloud.Cms.Alarm(\"default\", new()\n    {\n        Name = name,\n        Project = \"acs_ecs_dashboard\",\n        Metric = \"disk_writebytes\",\n        Period = 900,\n        SilenceTime = 300,\n        Webhook = \"https://www.aliyun.com\",\n        Enabled = true,\n        ContactGroups = new[]\n        {\n            defaultAlarmContactGroup.AlarmContactGroupName,\n        },\n        EffectiveInterval = \"06:00-20:00\",\n        MetricDimensions = @default.Apply(@default =\u003e @$\"  [\n    {{\n      \\\"\"instanceId\\\"\": \\\"\"{@default.Apply(getInstancesResult =\u003e getInstancesResult.Ids[0])}\\\"\",\n      \\\"\"device\\\"\": \\\"\"/dev/vda1\\\"\"\n    }}\n  ]\n\"),\n        EscalationsCritical = new AliCloud.Cms.Inputs.AlarmEscalationsCriticalArgs\n        {\n            Statistics = \"Average\",\n            ComparisonOperator = \"\u003c=\",\n            Threshold = \"90\",\n            Times = 1,\n        },\n        EscalationsInfo = new AliCloud.Cms.Inputs.AlarmEscalationsInfoArgs\n        {\n            Statistics = \"Minimum\",\n            ComparisonOperator = \"!=\",\n            Threshold = \"20\",\n            Times = 3,\n        },\n        EscalationsWarn = new AliCloud.Cms.Inputs.AlarmEscalationsWarnArgs\n        {\n            Statistics = \"Average\",\n            ComparisonOperator = \"==\",\n            Threshold = \"30\",\n            Times = 5,\n        },\n    });\n\n    var ids = AliCloud.CloudMonitor.GetServiceMetricAlarmRules.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlarm.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudMonitorServiceMetricAlarmRulesId0\"] = ids.Apply(getServiceMetricAlarmRulesResult =\u003e getServiceMetricAlarmRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudmonitor\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := ecs.GetInstances(ctx, \u0026ecs.GetInstancesArgs{\n\t\t\tStatus: pulumi.StringRef(\"Running\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAlarmContactGroup, err := cms.NewAlarmContactGroup(ctx, \"default\", \u0026cms.AlarmContactGroupArgs{\n\t\t\tAlarmContactGroupName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAlarm, err := cms.NewAlarm(ctx, \"default\", \u0026cms.AlarmArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tProject:     pulumi.String(\"acs_ecs_dashboard\"),\n\t\t\tMetric:      pulumi.String(\"disk_writebytes\"),\n\t\t\tPeriod:      pulumi.Int(900),\n\t\t\tSilenceTime: pulumi.Int(300),\n\t\t\tWebhook:     pulumi.String(\"https://www.aliyun.com\"),\n\t\t\tEnabled:     pulumi.Bool(true),\n\t\t\tContactGroups: pulumi.StringArray{\n\t\t\t\tdefaultAlarmContactGroup.AlarmContactGroupName,\n\t\t\t},\n\t\t\tEffectiveInterval: pulumi.String(\"06:00-20:00\"),\n\t\t\tMetricDimensions: pulumi.Sprintf(`  [\n    {\n      \\\"instanceId\\\": \\\"%v\\\",\n      \\\"device\\\": \\\"/dev/vda1\\\"\n    }\n  ]\n`, _default.Ids[0]),\n\t\t\tEscalationsCritical: \u0026cms.AlarmEscalationsCriticalArgs{\n\t\t\t\tStatistics:         pulumi.String(\"Average\"),\n\t\t\t\tComparisonOperator: pulumi.String(\"\u003c=\"),\n\t\t\t\tThreshold:          pulumi.String(\"90\"),\n\t\t\t\tTimes:              pulumi.Int(1),\n\t\t\t},\n\t\t\tEscalationsInfo: \u0026cms.AlarmEscalationsInfoArgs{\n\t\t\t\tStatistics:         pulumi.String(\"Minimum\"),\n\t\t\t\tComparisonOperator: pulumi.String(\"!=\"),\n\t\t\t\tThreshold:          pulumi.String(\"20\"),\n\t\t\t\tTimes:              pulumi.Int(3),\n\t\t\t},\n\t\t\tEscalationsWarn: \u0026cms.AlarmEscalationsWarnArgs{\n\t\t\t\tStatistics:         pulumi.String(\"Average\"),\n\t\t\t\tComparisonOperator: pulumi.String(\"==\"),\n\t\t\t\tThreshold:          pulumi.String(\"30\"),\n\t\t\t\tTimes:              pulumi.Int(5),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := cloudmonitor.GetServiceMetricAlarmRulesOutput(ctx, cloudmonitor.GetServiceMetricAlarmRulesOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultAlarm.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"cloudMonitorServiceMetricAlarmRulesId0\", ids.ApplyT(func(ids cloudmonitor.GetServiceMetricAlarmRulesResult) (*string, error) {\n\t\t\treturn \u0026ids.Rules[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.cms.AlarmContactGroup;\nimport com.pulumi.alicloud.cms.AlarmContactGroupArgs;\nimport com.pulumi.alicloud.cms.Alarm;\nimport com.pulumi.alicloud.cms.AlarmArgs;\nimport com.pulumi.alicloud.cms.inputs.AlarmEscalationsCriticalArgs;\nimport com.pulumi.alicloud.cms.inputs.AlarmEscalationsInfoArgs;\nimport com.pulumi.alicloud.cms.inputs.AlarmEscalationsWarnArgs;\nimport com.pulumi.alicloud.cloudmonitor.CloudmonitorFunctions;\nimport com.pulumi.alicloud.cloudmonitor.inputs.GetServiceMetricAlarmRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = EcsFunctions.getInstances(GetInstancesArgs.builder()\n            .status(\"Running\")\n            .build());\n\n        var defaultAlarmContactGroup = new AlarmContactGroup(\"defaultAlarmContactGroup\", AlarmContactGroupArgs.builder()\n            .alarmContactGroupName(name)\n            .build());\n\n        var defaultAlarm = new Alarm(\"defaultAlarm\", AlarmArgs.builder()\n            .name(name)\n            .project(\"acs_ecs_dashboard\")\n            .metric(\"disk_writebytes\")\n            .period(900)\n            .silenceTime(300)\n            .webhook(\"https://www.aliyun.com\")\n            .enabled(true)\n            .contactGroups(defaultAlarmContactGroup.alarmContactGroupName())\n            .effectiveInterval(\"06:00-20:00\")\n            .metricDimensions(\"\"\"\n  [\n    {\n      \\\"instanceId\\\": \\\"%s\\\",\n      \\\"device\\\": \\\"/dev/vda1\\\"\n    }\n  ]\n\", default_.ids()[0]))\n            .escalationsCritical(AlarmEscalationsCriticalArgs.builder()\n                .statistics(\"Average\")\n                .comparisonOperator(\"\u003c=\")\n                .threshold(\"90\")\n                .times(1)\n                .build())\n            .escalationsInfo(AlarmEscalationsInfoArgs.builder()\n                .statistics(\"Minimum\")\n                .comparisonOperator(\"!=\")\n                .threshold(\"20\")\n                .times(3)\n                .build())\n            .escalationsWarn(AlarmEscalationsWarnArgs.builder()\n                .statistics(\"Average\")\n                .comparisonOperator(\"==\")\n                .threshold(\"30\")\n                .times(5)\n                .build())\n            .build());\n\n        final var ids = CloudmonitorFunctions.getServiceMetricAlarmRules(GetServiceMetricAlarmRulesArgs.builder()\n            .ids(defaultAlarm.id())\n            .build());\n\n        ctx.export(\"cloudMonitorServiceMetricAlarmRulesId0\", ids.applyValue(_ids -\u003e _ids.rules()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultAlarmContactGroup:\n    type: alicloud:cms:AlarmContactGroup\n    name: default\n    properties:\n      alarmContactGroupName: ${name}\n  defaultAlarm:\n    type: alicloud:cms:Alarm\n    name: default\n    properties:\n      name: ${name}\n      project: acs_ecs_dashboard\n      metric: disk_writebytes\n      period: 900\n      silenceTime: 300\n      webhook: https://www.aliyun.com\n      enabled: true\n      contactGroups:\n        - ${defaultAlarmContactGroup.alarmContactGroupName}\n      effectiveInterval: 06:00-20:00\n      metricDimensions: |2\n          [\n            {\n              \\\"instanceId\\\": \\\"${default.ids[0]}\\\",\n              \\\"device\\\": \\\"/dev/vda1\\\"\n            }\n          ]\n      escalationsCritical:\n        statistics: Average\n        comparisonOperator: \u003c=\n        threshold: 90\n        times: 1\n      escalationsInfo:\n        statistics: Minimum\n        comparisonOperator: '!='\n        threshold: 20\n        times: 3\n      escalationsWarn:\n        statistics: Average\n        comparisonOperator: ==\n        threshold: 30\n        times: 5\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getInstances\n      arguments:\n        status: Running\n  ids:\n    fn::invoke:\n      function: alicloud:cloudmonitor:getServiceMetricAlarmRules\n      arguments:\n        ids:\n          - ${defaultAlarm.id}\noutputs:\n  cloudMonitorServiceMetricAlarmRulesId0: ${ids.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceMetricAlarmRules.\n","properties":{"dimensions":{"type":"string","description":"The monitoring dimensions of the specified resource.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Metric Alarm Rule IDs.\n"},"metricName":{"type":"string","description":"The name of the metric.\n"},"namespace":{"type":"string","description":"The namespace of the cloud service.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"ruleName":{"type":"string","description":"The name of the alert rule.\n"},"status":{"type":"boolean","description":"Specifies whether to query enabled or disabled alert rules. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServiceMetricAlarmRules.\n","properties":{"dimensions":{"description":"The dimensions of the alert rule.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"metricName":{"description":"The metric that is used to monitor the cloud service.\n","type":"string"},"namespace":{"description":"The namespace of the cloud service.\n","type":"string"},"outputFile":{"type":"string"},"ruleName":{"description":"The name of the alert rule.\n","type":"string"},"rules":{"description":"A list of Hybrid Double Writes. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cloudmonitor/getServiceMetricAlarmRulesRule:getServiceMetricAlarmRulesRule"},"type":"array"},"status":{"description":"Indicates whether the alert rule is enabled.\n","type":"boolean"}},"required":["ids","rules","id"],"type":"object"}},"alicloud:cloudsso/getAccessAssignments:getAccessAssignments":{"description":"This data source provides the Cloud Sso Access Assignments of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.193.0+.\n\n\u003e **NOTE:** Cloud SSO Only Support `cn-shanghai` And `us-west-1` Region\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cloudsso.getAccessAssignments({\n    directoryId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const cloudSsoAccessAssignmentId1 = ids.then(ids =\u003e ids.assignments?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cloudsso.get_access_assignments(directory_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"cloudSsoAccessAssignmentId1\", ids.assignments[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.CloudSso.GetAccessAssignments.Invoke(new()\n    {\n        DirectoryId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudSsoAccessAssignmentId1\"] = ids.Apply(getAccessAssignmentsResult =\u003e getAccessAssignmentsResult.Assignments[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cloudsso.GetAccessAssignments(ctx, \u0026cloudsso.GetAccessAssignmentsArgs{\n\t\t\tDirectoryId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudSsoAccessAssignmentId1\", ids.Assignments[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudsso.CloudssoFunctions;\nimport com.pulumi.alicloud.cloudsso.inputs.GetAccessAssignmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CloudssoFunctions.getAccessAssignments(GetAccessAssignmentsArgs.builder()\n            .directoryId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"cloudSsoAccessAssignmentId1\", ids.assignments()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cloudsso:getAccessAssignments\n      arguments:\n        directoryId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\noutputs:\n  cloudSsoAccessAssignmentId1: ${ids.assignments[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccessAssignments.\n","properties":{"accessConfigurationId":{"type":"string","description":"Access configuration ID.\n"},"directoryId":{"type":"string","description":"Directory ID.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Access Assignment IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"principalType":{"type":"string","description":"Create the identity type of the access assignment, which can be a user or a user group. Valid values: `Group`, `User`.\n"},"targetId":{"type":"string","description":"The ID of the target to create the resource range.\n"},"targetType":{"type":"string","description":"The type of the resource range target to be accessed. Only a single RD primary account or member account can be specified in the first phase. Valid values: `RD-Account`.\n"}},"type":"object","required":["directoryId"]},"outputs":{"description":"A collection of values returned by getAccessAssignments.\n","properties":{"accessConfigurationId":{"type":"string"},"assignments":{"items":{"$ref":"#/types/alicloud:cloudsso/getAccessAssignmentsAssignment:getAccessAssignmentsAssignment"},"type":"array"},"directoryId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"principalType":{"type":"string"},"targetId":{"type":"string"},"targetType":{"type":"string"}},"required":["assignments","directoryId","ids","id"],"type":"object"}},"alicloud:cloudsso/getAccessConfigurations:getAccessConfigurations":{"description":"This data source provides the Cloud Sso Access Configurations of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.140.0+.\n\n\u003e **NOTE:** Cloud SSO Only Support `cn-shanghai` And `us-west-1` Region\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cloudsso.getAccessConfigurations({\n    directoryId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const cloudSsoAccessConfigurationId1 = ids.then(ids =\u003e ids.configurations?.[0]?.id);\nconst nameRegex = alicloud.cloudsso.getAccessConfigurations({\n    directoryId: \"example_value\",\n    nameRegex: \"^my-AccessConfiguration\",\n});\nexport const cloudSsoAccessConfigurationId2 = nameRegex.then(nameRegex =\u003e nameRegex.configurations?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cloudsso.get_access_configurations(directory_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"cloudSsoAccessConfigurationId1\", ids.configurations[0].id)\nname_regex = alicloud.cloudsso.get_access_configurations(directory_id=\"example_value\",\n    name_regex=\"^my-AccessConfiguration\")\npulumi.export(\"cloudSsoAccessConfigurationId2\", name_regex.configurations[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.CloudSso.GetAccessConfigurations.Invoke(new()\n    {\n        DirectoryId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.CloudSso.GetAccessConfigurations.Invoke(new()\n    {\n        DirectoryId = \"example_value\",\n        NameRegex = \"^my-AccessConfiguration\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudSsoAccessConfigurationId1\"] = ids.Apply(getAccessConfigurationsResult =\u003e getAccessConfigurationsResult.Configurations[0]?.Id),\n        [\"cloudSsoAccessConfigurationId2\"] = nameRegex.Apply(getAccessConfigurationsResult =\u003e getAccessConfigurationsResult.Configurations[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cloudsso.GetAccessConfigurations(ctx, \u0026cloudsso.GetAccessConfigurationsArgs{\n\t\t\tDirectoryId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudSsoAccessConfigurationId1\", ids.Configurations[0].Id)\n\t\tnameRegex, err := cloudsso.GetAccessConfigurations(ctx, \u0026cloudsso.GetAccessConfigurationsArgs{\n\t\t\tDirectoryId: \"example_value\",\n\t\t\tNameRegex:   pulumi.StringRef(\"^my-AccessConfiguration\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudSsoAccessConfigurationId2\", nameRegex.Configurations[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudsso.CloudssoFunctions;\nimport com.pulumi.alicloud.cloudsso.inputs.GetAccessConfigurationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CloudssoFunctions.getAccessConfigurations(GetAccessConfigurationsArgs.builder()\n            .directoryId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"cloudSsoAccessConfigurationId1\", ids.configurations()[0].id());\n        final var nameRegex = CloudssoFunctions.getAccessConfigurations(GetAccessConfigurationsArgs.builder()\n            .directoryId(\"example_value\")\n            .nameRegex(\"^my-AccessConfiguration\")\n            .build());\n\n        ctx.export(\"cloudSsoAccessConfigurationId2\", nameRegex.configurations()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cloudsso:getAccessConfigurations\n      arguments:\n        directoryId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cloudsso:getAccessConfigurations\n      arguments:\n        directoryId: example_value\n        nameRegex: ^my-AccessConfiguration\noutputs:\n  cloudSsoAccessConfigurationId1: ${ids.configurations[0].id}\n  cloudSsoAccessConfigurationId2: ${nameRegex.configurations[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccessConfigurations.\n","properties":{"directoryId":{"type":"string","description":"The ID of the Directory.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Access Configuration IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Access Configuration name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["directoryId"]},"outputs":{"description":"A collection of values returned by getAccessConfigurations.\n","properties":{"configurations":{"items":{"$ref":"#/types/alicloud:cloudsso/getAccessConfigurationsConfiguration:getAccessConfigurationsConfiguration"},"type":"array"},"directoryId":{"type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["configurations","directoryId","ids","names","id"],"type":"object"}},"alicloud:cloudsso/getDirectories:getDirectories":{"description":"This data source provides the Cloud Sso Directories of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.135.0+.\n\n\u003e **NOTE:** Cloud SSO Only Support `cn-shanghai` And `us-west-1` Region\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cloudsso.getDirectories({\n    ids: [\"example_id\"],\n});\nexport const cloudSsoDirectoryId1 = ids.then(ids =\u003e ids.directories?.[0]?.id);\nconst nameRegex = alicloud.cloudsso.getDirectories({\n    nameRegex: \"^my-Directory\",\n});\nexport const cloudSsoDirectoryId2 = nameRegex.then(nameRegex =\u003e nameRegex.directories?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cloudsso.get_directories(ids=[\"example_id\"])\npulumi.export(\"cloudSsoDirectoryId1\", ids.directories[0].id)\nname_regex = alicloud.cloudsso.get_directories(name_regex=\"^my-Directory\")\npulumi.export(\"cloudSsoDirectoryId2\", name_regex.directories[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.CloudSso.GetDirectories.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.CloudSso.GetDirectories.Invoke(new()\n    {\n        NameRegex = \"^my-Directory\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudSsoDirectoryId1\"] = ids.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Directories[0]?.Id),\n        [\"cloudSsoDirectoryId2\"] = nameRegex.Apply(getDirectoriesResult =\u003e getDirectoriesResult.Directories[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cloudsso.GetDirectories(ctx, \u0026cloudsso.GetDirectoriesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudSsoDirectoryId1\", ids.Directories[0].Id)\n\t\tnameRegex, err := cloudsso.GetDirectories(ctx, \u0026cloudsso.GetDirectoriesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Directory\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudSsoDirectoryId2\", nameRegex.Directories[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudsso.CloudssoFunctions;\nimport com.pulumi.alicloud.cloudsso.inputs.GetDirectoriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CloudssoFunctions.getDirectories(GetDirectoriesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"cloudSsoDirectoryId1\", ids.directories()[0].id());\n        final var nameRegex = CloudssoFunctions.getDirectories(GetDirectoriesArgs.builder()\n            .nameRegex(\"^my-Directory\")\n            .build());\n\n        ctx.export(\"cloudSsoDirectoryId2\", nameRegex.directories()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cloudsso:getDirectories\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cloudsso:getDirectories\n      arguments:\n        nameRegex: ^my-Directory\noutputs:\n  cloudSsoDirectoryId1: ${ids.directories[0].id}\n  cloudSsoDirectoryId2: ${nameRegex.directories[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDirectories.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Directory IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Directory name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDirectories.\n","properties":{"directories":{"items":{"$ref":"#/types/alicloud:cloudsso/getDirectoriesDirectory:getDirectoriesDirectory"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["directories","ids","names","id"],"type":"object"}},"alicloud:cloudsso/getGroups:getGroups":{"description":"This data source provides the Cloud Sso Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.138.0+.\n\n\u003e **NOTE:** Cloud SSO Only Support `cn-shanghai` And `us-west-1` Region\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cloudsso.getGroups({\n    directoryId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const cloudSsoGroupId1 = ids.then(ids =\u003e ids.groups?.[0]?.id);\nconst nameRegex = alicloud.cloudsso.getGroups({\n    directoryId: \"example_value\",\n    nameRegex: \"^my-Group\",\n});\nexport const cloudSsoGroupId2 = nameRegex.then(nameRegex =\u003e nameRegex.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cloudsso.get_groups(directory_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"cloudSsoGroupId1\", ids.groups[0].id)\nname_regex = alicloud.cloudsso.get_groups(directory_id=\"example_value\",\n    name_regex=\"^my-Group\")\npulumi.export(\"cloudSsoGroupId2\", name_regex.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.CloudSso.GetGroups.Invoke(new()\n    {\n        DirectoryId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.CloudSso.GetGroups.Invoke(new()\n    {\n        DirectoryId = \"example_value\",\n        NameRegex = \"^my-Group\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudSsoGroupId1\"] = ids.Apply(getGroupsResult =\u003e getGroupsResult.Groups[0]?.Id),\n        [\"cloudSsoGroupId2\"] = nameRegex.Apply(getGroupsResult =\u003e getGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cloudsso.GetGroups(ctx, \u0026cloudsso.GetGroupsArgs{\n\t\t\tDirectoryId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudSsoGroupId1\", ids.Groups[0].Id)\n\t\tnameRegex, err := cloudsso.GetGroups(ctx, \u0026cloudsso.GetGroupsArgs{\n\t\t\tDirectoryId: \"example_value\",\n\t\t\tNameRegex:   pulumi.StringRef(\"^my-Group\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudSsoGroupId2\", nameRegex.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudsso.CloudssoFunctions;\nimport com.pulumi.alicloud.cloudsso.inputs.GetGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CloudssoFunctions.getGroups(GetGroupsArgs.builder()\n            .directoryId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"cloudSsoGroupId1\", ids.groups()[0].id());\n        final var nameRegex = CloudssoFunctions.getGroups(GetGroupsArgs.builder()\n            .directoryId(\"example_value\")\n            .nameRegex(\"^my-Group\")\n            .build());\n\n        ctx.export(\"cloudSsoGroupId2\", nameRegex.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cloudsso:getGroups\n      arguments:\n        directoryId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cloudsso:getGroups\n      arguments:\n        directoryId: example_value\n        nameRegex: ^my-Group\noutputs:\n  cloudSsoGroupId1: ${ids.groups[0].id}\n  cloudSsoGroupId2: ${nameRegex.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGroups.\n","properties":{"directoryId":{"type":"string","description":"The ID of the Directory.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Group IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"provisionType":{"type":"string","description":"The ProvisionType of the Group. Valid values: `Manual`, `Synchronized`.\n"}},"type":"object","required":["directoryId"]},"outputs":{"description":"A collection of values returned by getGroups.\n","properties":{"directoryId":{"type":"string"},"groups":{"items":{"$ref":"#/types/alicloud:cloudsso/getGroupsGroup:getGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"provisionType":{"type":"string"}},"required":["directoryId","groups","ids","names","id"],"type":"object"}},"alicloud:cloudsso/getScimServerCredentials:getScimServerCredentials":{"description":"This data source provides the Cloud Sso Scim Server Credentials of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.138.0+.\n\n\u003e **NOTE:** Cloud SSO Only Support `cn-shanghai` And `us-west-1` Region\n\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cloudsso.getScimServerCredentials({\n    directoryId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const cloudSsoScimServerCredentialId1 = ids.then(ids =\u003e ids.credentials?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cloudsso.get_scim_server_credentials(directory_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"cloudSsoScimServerCredentialId1\", ids.credentials[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.CloudSso.GetScimServerCredentials.Invoke(new()\n    {\n        DirectoryId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudSsoScimServerCredentialId1\"] = ids.Apply(getScimServerCredentialsResult =\u003e getScimServerCredentialsResult.Credentials[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cloudsso.GetScimServerCredentials(ctx, \u0026cloudsso.GetScimServerCredentialsArgs{\n\t\t\tDirectoryId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudSsoScimServerCredentialId1\", ids.Credentials[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudsso.CloudssoFunctions;\nimport com.pulumi.alicloud.cloudsso.inputs.GetScimServerCredentialsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CloudssoFunctions.getScimServerCredentials(GetScimServerCredentialsArgs.builder()\n            .directoryId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"cloudSsoScimServerCredentialId1\", ids.credentials()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cloudsso:getScimServerCredentials\n      arguments:\n        directoryId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\noutputs:\n  cloudSsoScimServerCredentialId1: ${ids.credentials[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getScimServerCredentials.\n","properties":{"directoryId":{"type":"string","description":"The ID of the Directory.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of SCIM Server Credential IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The Status of the resource. Valid values: `Disabled`, `Enabled`.\n"}},"type":"object","required":["directoryId"]},"outputs":{"description":"A collection of values returned by getScimServerCredentials.\n","properties":{"credentials":{"items":{"$ref":"#/types/alicloud:cloudsso/getScimServerCredentialsCredential:getScimServerCredentialsCredential"},"type":"array"},"directoryId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["credentials","directoryId","ids","id"],"type":"object"}},"alicloud:cloudsso/getService:getService":{"description":"Using this data source can open Cloud Sso Service automatically.\n\nFor information about Cloud SSO and how to use it, see [What is Cloud SSO](https://www.alibabacloud.com/help/en/doc-detail/262819.html).\n\n\u003e **NOTE:** Available in v1.148.0+.\n\n\u003e **NOTE:** Cloud SSO Only Support `cn-shanghai` And `us-west-1` Region.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.cloudsso.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.cloudsso.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.CloudSso.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudsso.GetService(ctx, \u0026cloudsso.GetServiceArgs{\n\t\t\tEnable: \"On\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudsso.CloudssoFunctions;\nimport com.pulumi.alicloud.cloudsso.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = CloudssoFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:cloudsso:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. Valid values: `On` or `Off`. \n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the Cloud Sso service that means you have read and agreed the [Cloud Sso Terms of Service](https://help.aliyun.com/document_detail/299998.html). When there is no directory in Cloud SSO, you can set `enable = \"Off\"` to turn off Cloud SSO as needed. After it is closed, you can also open it at any time.\n"}},"type":"object","required":["enable"]},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["enable","status","id"],"type":"object"}},"alicloud:cloudsso/getUserProvisioningEvents:getUserProvisioningEvents":{"description":"This data source provides Cloud Sso User Provisioning Event available to the user.[What is User Provisioning Event](https://next.api.alibabacloud.com/document/cloudsso/2021-05-15/GetUserProvisioningEvent)\n\n\u003e **NOTE:** Available since v1.261.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultQSrGmc = new alicloud.cloudsso.Directory(\"defaultQSrGmc\", {\n    directoryGlobalAccessStatus: \"Disabled\",\n    passwordPolicy: {\n        minPasswordLength: 8,\n        minPasswordDifferentChars: 8,\n        maxPasswordAge: 90,\n        passwordReusePrevention: 1,\n        maxLoginAttempts: 5,\n    },\n    mfaAuthenticationSettingInfo: {\n        mfaAuthenticationAdvanceSettings: \"OnlyRiskyLogin\",\n        operationForRiskLogin: \"EnforceVerify\",\n    },\n    directoryName: \"tfexample\",\n});\nconst _default = alicloud.cloudsso.getUserProvisioningEventsOutput({\n    directoryId: defaultQSrGmc.id,\n});\nexport const alicloudCloudSsoUserProvisioningEventExampleId = _default.apply(_default =\u003e _default.events?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_q_sr_gmc = alicloud.cloudsso.Directory(\"defaultQSrGmc\",\n    directory_global_access_status=\"Disabled\",\n    password_policy={\n        \"min_password_length\": 8,\n        \"min_password_different_chars\": 8,\n        \"max_password_age\": 90,\n        \"password_reuse_prevention\": 1,\n        \"max_login_attempts\": 5,\n    },\n    mfa_authentication_setting_info={\n        \"mfa_authentication_advance_settings\": \"OnlyRiskyLogin\",\n        \"operation_for_risk_login\": \"EnforceVerify\",\n    },\n    directory_name=\"tfexample\")\ndefault = alicloud.cloudsso.get_user_provisioning_events_output(directory_id=default_q_sr_gmc.id)\npulumi.export(\"alicloudCloudSsoUserProvisioningEventExampleId\", default.events[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultQSrGmc = new AliCloud.CloudSso.Directory(\"defaultQSrGmc\", new()\n    {\n        DirectoryGlobalAccessStatus = \"Disabled\",\n        PasswordPolicy = new AliCloud.CloudSso.Inputs.DirectoryPasswordPolicyArgs\n        {\n            MinPasswordLength = 8,\n            MinPasswordDifferentChars = 8,\n            MaxPasswordAge = 90,\n            PasswordReusePrevention = 1,\n            MaxLoginAttempts = 5,\n        },\n        MfaAuthenticationSettingInfo = new AliCloud.CloudSso.Inputs.DirectoryMfaAuthenticationSettingInfoArgs\n        {\n            MfaAuthenticationAdvanceSettings = \"OnlyRiskyLogin\",\n            OperationForRiskLogin = \"EnforceVerify\",\n        },\n        DirectoryName = \"tfexample\",\n    });\n\n    var @default = AliCloud.CloudSso.GetUserProvisioningEvents.Invoke(new()\n    {\n        DirectoryId = defaultQSrGmc.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCloudSsoUserProvisioningEventExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getUserProvisioningEventsResult =\u003e getUserProvisioningEventsResult.Events[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultQSrGmc, err := cloudsso.NewDirectory(ctx, \"defaultQSrGmc\", \u0026cloudsso.DirectoryArgs{\nDirectoryGlobalAccessStatus: pulumi.String(\"Disabled\"),\nPasswordPolicy: \u0026cloudsso.DirectoryPasswordPolicyArgs{\nMinPasswordLength: pulumi.Int(8),\nMinPasswordDifferentChars: pulumi.Int(8),\nMaxPasswordAge: pulumi.Int(90),\nPasswordReusePrevention: pulumi.Int(1),\nMaxLoginAttempts: pulumi.Int(5),\n},\nMfaAuthenticationSettingInfo: \u0026cloudsso.DirectoryMfaAuthenticationSettingInfoArgs{\nMfaAuthenticationAdvanceSettings: pulumi.String(\"OnlyRiskyLogin\"),\nOperationForRiskLogin: pulumi.String(\"EnforceVerify\"),\n},\nDirectoryName: pulumi.String(\"tfexample\"),\n})\nif err != nil {\nreturn err\n}\n_default := cloudsso.GetUserProvisioningEventsOutput(ctx, cloudsso.GetUserProvisioningEventsOutputArgs{\nDirectoryId: defaultQSrGmc.ID(),\n}, nil);\nctx.Export(\"alicloudCloudSsoUserProvisioningEventExampleId\", _default.ApplyT(func(_default cloudsso.GetUserProvisioningEventsResult) (*string, error) {\nreturn \u0026default.Events[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudsso.Directory;\nimport com.pulumi.alicloud.cloudsso.DirectoryArgs;\nimport com.pulumi.alicloud.cloudsso.inputs.DirectoryPasswordPolicyArgs;\nimport com.pulumi.alicloud.cloudsso.inputs.DirectoryMfaAuthenticationSettingInfoArgs;\nimport com.pulumi.alicloud.cloudsso.CloudssoFunctions;\nimport com.pulumi.alicloud.cloudsso.inputs.GetUserProvisioningEventsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultQSrGmc = new Directory(\"defaultQSrGmc\", DirectoryArgs.builder()\n            .directoryGlobalAccessStatus(\"Disabled\")\n            .passwordPolicy(DirectoryPasswordPolicyArgs.builder()\n                .minPasswordLength(8)\n                .minPasswordDifferentChars(8)\n                .maxPasswordAge(90)\n                .passwordReusePrevention(1)\n                .maxLoginAttempts(5)\n                .build())\n            .mfaAuthenticationSettingInfo(DirectoryMfaAuthenticationSettingInfoArgs.builder()\n                .mfaAuthenticationAdvanceSettings(\"OnlyRiskyLogin\")\n                .operationForRiskLogin(\"EnforceVerify\")\n                .build())\n            .directoryName(\"tfexample\")\n            .build());\n\n        final var default = CloudssoFunctions.getUserProvisioningEvents(GetUserProvisioningEventsArgs.builder()\n            .directoryId(defaultQSrGmc.id())\n            .build());\n\n        ctx.export(\"alicloudCloudSsoUserProvisioningEventExampleId\", default_.applyValue(_default_ -\u003e _default_.events()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultQSrGmc:\n    type: alicloud:cloudsso:Directory\n    properties:\n      directoryGlobalAccessStatus: Disabled\n      passwordPolicy:\n        minPasswordLength: '8'\n        minPasswordDifferentChars: '8'\n        maxPasswordAge: '90'\n        passwordReusePrevention: '1'\n        maxLoginAttempts: '5'\n      mfaAuthenticationSettingInfo:\n        mfaAuthenticationAdvanceSettings: OnlyRiskyLogin\n        operationForRiskLogin: EnforceVerify\n      directoryName: tfexample\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudsso:getUserProvisioningEvents\n      arguments:\n        directoryId: ${defaultQSrGmc.id}\noutputs:\n  alicloudCloudSsoUserProvisioningEventExampleId: ${default.events[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUserProvisioningEvents.\n","properties":{"directoryId":{"type":"string","description":"Directory ID\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of User Provisioning Event IDs. The value is formulated as `\u003cdirectory_id\u003e:\u003cevent_id\u003e`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"userProvisioningId":{"type":"string","description":"The ID of the User Provisioning.\n"}},"type":"object","required":["directoryId"]},"outputs":{"description":"A collection of values returned by getUserProvisioningEvents.\n","properties":{"directoryId":{"description":"Directory ID\n","type":"string"},"events":{"description":"A list of User Provisioning Event Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cloudsso/getUserProvisioningEventsEvent:getUserProvisioningEventsEvent"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of User Provisioning Event IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"userProvisioningId":{"description":"The ID of the User Provisioning.\n","type":"string"}},"required":["directoryId","events","ids","id"],"type":"object"}},"alicloud:cloudsso/getUsers:getUsers":{"description":"This data source provides the Cloud Sso Users of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.140.0+.\n\n\u003e **NOTE:** Cloud SSO Only Support `cn-shanghai` And `us-west-1` Region\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cloudsso.getUsers({\n    directoryId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const cloudSsoUserId1 = ids.then(ids =\u003e ids.users?.[0]?.id);\nconst nameRegex = alicloud.cloudsso.getUsers({\n    directoryId: \"example_value\",\n    nameRegex: \"^my-User\",\n});\nexport const cloudSsoUserId2 = nameRegex.then(nameRegex =\u003e nameRegex.users?.[0]?.id);\nconst provisionType = alicloud.cloudsso.getUsers({\n    directoryId: \"example_value\",\n    ids: [\"example_value-1\"],\n    provisionType: \"Manual\",\n});\nexport const cloudSsoUserId3 = provisionType.then(provisionType =\u003e provisionType.users?.[0]?.id);\nconst status = alicloud.cloudsso.getUsers({\n    directoryId: \"example_value\",\n    ids: [\"example_value-1\"],\n    status: \"Enabled\",\n});\nexport const cloudSsoUserId4 = status.then(status =\u003e status.users?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cloudsso.get_users(directory_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"cloudSsoUserId1\", ids.users[0].id)\nname_regex = alicloud.cloudsso.get_users(directory_id=\"example_value\",\n    name_regex=\"^my-User\")\npulumi.export(\"cloudSsoUserId2\", name_regex.users[0].id)\nprovision_type = alicloud.cloudsso.get_users(directory_id=\"example_value\",\n    ids=[\"example_value-1\"],\n    provision_type=\"Manual\")\npulumi.export(\"cloudSsoUserId3\", provision_type.users[0].id)\nstatus = alicloud.cloudsso.get_users(directory_id=\"example_value\",\n    ids=[\"example_value-1\"],\n    status=\"Enabled\")\npulumi.export(\"cloudSsoUserId4\", status.users[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.CloudSso.GetUsers.Invoke(new()\n    {\n        DirectoryId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.CloudSso.GetUsers.Invoke(new()\n    {\n        DirectoryId = \"example_value\",\n        NameRegex = \"^my-User\",\n    });\n\n    var provisionType = AliCloud.CloudSso.GetUsers.Invoke(new()\n    {\n        DirectoryId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n        },\n        ProvisionType = \"Manual\",\n    });\n\n    var status = AliCloud.CloudSso.GetUsers.Invoke(new()\n    {\n        DirectoryId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n        },\n        Status = \"Enabled\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudSsoUserId1\"] = ids.Apply(getUsersResult =\u003e getUsersResult.Users[0]?.Id),\n        [\"cloudSsoUserId2\"] = nameRegex.Apply(getUsersResult =\u003e getUsersResult.Users[0]?.Id),\n        [\"cloudSsoUserId3\"] = provisionType.Apply(getUsersResult =\u003e getUsersResult.Users[0]?.Id),\n        [\"cloudSsoUserId4\"] = status.Apply(getUsersResult =\u003e getUsersResult.Users[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudsso\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cloudsso.GetUsers(ctx, \u0026cloudsso.GetUsersArgs{\n\t\t\tDirectoryId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudSsoUserId1\", ids.Users[0].Id)\n\t\tnameRegex, err := cloudsso.GetUsers(ctx, \u0026cloudsso.GetUsersArgs{\n\t\t\tDirectoryId: \"example_value\",\n\t\t\tNameRegex:   pulumi.StringRef(\"^my-User\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudSsoUserId2\", nameRegex.Users[0].Id)\n\t\tprovisionType, err := cloudsso.GetUsers(ctx, \u0026cloudsso.GetUsersArgs{\n\t\t\tDirectoryId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t},\n\t\t\tProvisionType: pulumi.StringRef(\"Manual\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudSsoUserId3\", provisionType.Users[0].Id)\n\t\tstatus, err := cloudsso.GetUsers(ctx, \u0026cloudsso.GetUsersArgs{\n\t\t\tDirectoryId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t},\n\t\t\tStatus: pulumi.StringRef(\"Enabled\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudSsoUserId4\", status.Users[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudsso.CloudssoFunctions;\nimport com.pulumi.alicloud.cloudsso.inputs.GetUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CloudssoFunctions.getUsers(GetUsersArgs.builder()\n            .directoryId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"cloudSsoUserId1\", ids.users()[0].id());\n        final var nameRegex = CloudssoFunctions.getUsers(GetUsersArgs.builder()\n            .directoryId(\"example_value\")\n            .nameRegex(\"^my-User\")\n            .build());\n\n        ctx.export(\"cloudSsoUserId2\", nameRegex.users()[0].id());\n        final var provisionType = CloudssoFunctions.getUsers(GetUsersArgs.builder()\n            .directoryId(\"example_value\")\n            .ids(\"example_value-1\")\n            .provisionType(\"Manual\")\n            .build());\n\n        ctx.export(\"cloudSsoUserId3\", provisionType.users()[0].id());\n        final var status = CloudssoFunctions.getUsers(GetUsersArgs.builder()\n            .directoryId(\"example_value\")\n            .ids(\"example_value-1\")\n            .status(\"Enabled\")\n            .build());\n\n        ctx.export(\"cloudSsoUserId4\", status.users()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cloudsso:getUsers\n      arguments:\n        directoryId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cloudsso:getUsers\n      arguments:\n        directoryId: example_value\n        nameRegex: ^my-User\n  provisionType:\n    fn::invoke:\n      function: alicloud:cloudsso:getUsers\n      arguments:\n        directoryId: example_value\n        ids:\n          - example_value-1\n        provisionType: Manual\n  status:\n    fn::invoke:\n      function: alicloud:cloudsso:getUsers\n      arguments:\n        directoryId: example_value\n        ids:\n          - example_value-1\n        status: Enabled\noutputs:\n  cloudSsoUserId1: ${ids.users[0].id}\n  cloudSsoUserId2: ${nameRegex.users[0].id}\n  cloudSsoUserId3: ${provisionType.users[0].id}\n  cloudSsoUserId4: ${status.users[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUsers.\n","properties":{"directoryId":{"type":"string","description":"The ID of the Directory.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of User IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by User name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"provisionType":{"type":"string","description":"ProvisionType. Valid values: `Manual`, `Synchronized`.\n"},"status":{"type":"string","description":"The status of user. Valid values: `Disabled`, `Enabled`.\n"}},"type":"object","required":["directoryId"]},"outputs":{"description":"A collection of values returned by getUsers.\n","properties":{"directoryId":{"type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"provisionType":{"type":"string"},"status":{"type":"string"},"users":{"items":{"$ref":"#/types/alicloud:cloudsso/getUsersUser:getUsersUser"},"type":"array"}},"required":["directoryId","ids","names","users","id"],"type":"object"}},"alicloud:cloudstoragegateway/getExpressSyncs:getExpressSyncs":{"description":"This data source provides the Cloud Storage Gateway Express Syncs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.144.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cloudstoragegateway.getExpressSyncs({});\nexport const cloudStorageGatewayExpressSyncId1 = ids.then(ids =\u003e ids.syncs?.[0]?.id);\nconst nameRegex = alicloud.cloudstoragegateway.getExpressSyncs({\n    nameRegex: \"^my-ExpressSync\",\n});\nexport const cloudStorageGatewayExpressSyncId2 = nameRegex.then(nameRegex =\u003e nameRegex.syncs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cloudstoragegateway.get_express_syncs()\npulumi.export(\"cloudStorageGatewayExpressSyncId1\", ids.syncs[0].id)\nname_regex = alicloud.cloudstoragegateway.get_express_syncs(name_regex=\"^my-ExpressSync\")\npulumi.export(\"cloudStorageGatewayExpressSyncId2\", name_regex.syncs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.CloudStorageGateway.GetExpressSyncs.Invoke();\n\n    var nameRegex = AliCloud.CloudStorageGateway.GetExpressSyncs.Invoke(new()\n    {\n        NameRegex = \"^my-ExpressSync\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudStorageGatewayExpressSyncId1\"] = ids.Apply(getExpressSyncsResult =\u003e getExpressSyncsResult.Syncs[0]?.Id),\n        [\"cloudStorageGatewayExpressSyncId2\"] = nameRegex.Apply(getExpressSyncsResult =\u003e getExpressSyncsResult.Syncs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cloudstoragegateway.GetExpressSyncs(ctx, \u0026cloudstoragegateway.GetExpressSyncsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudStorageGatewayExpressSyncId1\", ids.Syncs[0].Id)\n\t\tnameRegex, err := cloudstoragegateway.GetExpressSyncs(ctx, \u0026cloudstoragegateway.GetExpressSyncsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-ExpressSync\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudStorageGatewayExpressSyncId2\", nameRegex.Syncs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudstoragegateway.CloudstoragegatewayFunctions;\nimport com.pulumi.alicloud.cloudstoragegateway.inputs.GetExpressSyncsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CloudstoragegatewayFunctions.getExpressSyncs(GetExpressSyncsArgs.builder()\n            .build());\n\n        ctx.export(\"cloudStorageGatewayExpressSyncId1\", ids.syncs()[0].id());\n        final var nameRegex = CloudstoragegatewayFunctions.getExpressSyncs(GetExpressSyncsArgs.builder()\n            .nameRegex(\"^my-ExpressSync\")\n            .build());\n\n        ctx.export(\"cloudStorageGatewayExpressSyncId2\", nameRegex.syncs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getExpressSyncs\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getExpressSyncs\n      arguments:\n        nameRegex: ^my-ExpressSync\noutputs:\n  cloudStorageGatewayExpressSyncId1: ${ids.syncs[0].id}\n  cloudStorageGatewayExpressSyncId2: ${nameRegex.syncs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getExpressSyncs.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Express Sync IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Express Sync name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getExpressSyncs.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"syncs":{"items":{"$ref":"#/types/alicloud:cloudstoragegateway/getExpressSyncsSync:getExpressSyncsSync"},"type":"array"}},"required":["ids","names","syncs","id"],"type":"object"}},"alicloud:cloudstoragegateway/getGatewayBlockVolumes:getGatewayBlockVolumes":{"description":"This data source provides the Cloud Storage Gateway Gateway Block Volumes of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.144.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cloudstoragegateway.getGatewayBlockVolumes({\n    gatewayId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const cloudStorageGatewayGatewayBlockVolumeId1 = ids.then(ids =\u003e ids.volumes?.[0]?.id);\nconst nameRegex = alicloud.cloudstoragegateway.getGatewayBlockVolumes({\n    gatewayId: \"example_value\",\n    nameRegex: \"^my-GatewayBlockVolume\",\n});\nexport const cloudStorageGatewayGatewayBlockVolumeId2 = nameRegex.then(nameRegex =\u003e nameRegex.volumes?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cloudstoragegateway.get_gateway_block_volumes(gateway_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"cloudStorageGatewayGatewayBlockVolumeId1\", ids.volumes[0].id)\nname_regex = alicloud.cloudstoragegateway.get_gateway_block_volumes(gateway_id=\"example_value\",\n    name_regex=\"^my-GatewayBlockVolume\")\npulumi.export(\"cloudStorageGatewayGatewayBlockVolumeId2\", name_regex.volumes[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.CloudStorageGateway.GetGatewayBlockVolumes.Invoke(new()\n    {\n        GatewayId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.CloudStorageGateway.GetGatewayBlockVolumes.Invoke(new()\n    {\n        GatewayId = \"example_value\",\n        NameRegex = \"^my-GatewayBlockVolume\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudStorageGatewayGatewayBlockVolumeId1\"] = ids.Apply(getGatewayBlockVolumesResult =\u003e getGatewayBlockVolumesResult.Volumes[0]?.Id),\n        [\"cloudStorageGatewayGatewayBlockVolumeId2\"] = nameRegex.Apply(getGatewayBlockVolumesResult =\u003e getGatewayBlockVolumesResult.Volumes[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cloudstoragegateway.GetGatewayBlockVolumes(ctx, \u0026cloudstoragegateway.GetGatewayBlockVolumesArgs{\n\t\t\tGatewayId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudStorageGatewayGatewayBlockVolumeId1\", ids.Volumes[0].Id)\n\t\tnameRegex, err := cloudstoragegateway.GetGatewayBlockVolumes(ctx, \u0026cloudstoragegateway.GetGatewayBlockVolumesArgs{\n\t\t\tGatewayId: \"example_value\",\n\t\t\tNameRegex: pulumi.StringRef(\"^my-GatewayBlockVolume\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudStorageGatewayGatewayBlockVolumeId2\", nameRegex.Volumes[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudstoragegateway.CloudstoragegatewayFunctions;\nimport com.pulumi.alicloud.cloudstoragegateway.inputs.GetGatewayBlockVolumesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CloudstoragegatewayFunctions.getGatewayBlockVolumes(GetGatewayBlockVolumesArgs.builder()\n            .gatewayId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"cloudStorageGatewayGatewayBlockVolumeId1\", ids.volumes()[0].id());\n        final var nameRegex = CloudstoragegatewayFunctions.getGatewayBlockVolumes(GetGatewayBlockVolumesArgs.builder()\n            .gatewayId(\"example_value\")\n            .nameRegex(\"^my-GatewayBlockVolume\")\n            .build());\n\n        ctx.export(\"cloudStorageGatewayGatewayBlockVolumeId2\", nameRegex.volumes()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getGatewayBlockVolumes\n      arguments:\n        gatewayId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getGatewayBlockVolumes\n      arguments:\n        gatewayId: example_value\n        nameRegex: ^my-GatewayBlockVolume\noutputs:\n  cloudStorageGatewayGatewayBlockVolumeId1: ${ids.volumes[0].id}\n  cloudStorageGatewayGatewayBlockVolumeId2: ${nameRegex.volumes[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGatewayBlockVolumes.\n","properties":{"gatewayId":{"type":"string","description":"The Gateway ID.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Gateway Block Volume IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Gateway Block Volume name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"integer","description":"The status of volume. Valid values:\n"}},"type":"object","required":["gatewayId"]},"outputs":{"description":"A collection of values returned by getGatewayBlockVolumes.\n","properties":{"gatewayId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"integer"},"volumes":{"items":{"$ref":"#/types/alicloud:cloudstoragegateway/getGatewayBlockVolumesVolume:getGatewayBlockVolumesVolume"},"type":"array"}},"required":["gatewayId","ids","names","volumes","id"],"type":"object"}},"alicloud:cloudstoragegateway/getGatewayCacheDisks:getGatewayCacheDisks":{"description":"This data source provides the Cloud Storage Gateway Gateway Cache Disks of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.144.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cloudstoragegateway.getGatewayCacheDisks({\n    gatewayId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const cloudStorageGatewayGatewayCacheDiskId1 = ids.then(ids =\u003e ids.disks?.[0]?.id);\nconst status = alicloud.cloudstoragegateway.getGatewayCacheDisks({\n    gatewayId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n    status: 0,\n});\nexport const cloudStorageGatewayGatewayCacheDiskId2 = status.then(status =\u003e status.disks?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cloudstoragegateway.get_gateway_cache_disks(gateway_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"cloudStorageGatewayGatewayCacheDiskId1\", ids.disks[0].id)\nstatus = alicloud.cloudstoragegateway.get_gateway_cache_disks(gateway_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n    status=0)\npulumi.export(\"cloudStorageGatewayGatewayCacheDiskId2\", status.disks[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.CloudStorageGateway.GetGatewayCacheDisks.Invoke(new()\n    {\n        GatewayId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var status = AliCloud.CloudStorageGateway.GetGatewayCacheDisks.Invoke(new()\n    {\n        GatewayId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n        Status = 0,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudStorageGatewayGatewayCacheDiskId1\"] = ids.Apply(getGatewayCacheDisksResult =\u003e getGatewayCacheDisksResult.Disks[0]?.Id),\n        [\"cloudStorageGatewayGatewayCacheDiskId2\"] = status.Apply(getGatewayCacheDisksResult =\u003e getGatewayCacheDisksResult.Disks[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cloudstoragegateway.GetGatewayCacheDisks(ctx, \u0026cloudstoragegateway.GetGatewayCacheDisksArgs{\n\t\t\tGatewayId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudStorageGatewayGatewayCacheDiskId1\", ids.Disks[0].Id)\n\t\tstatus, err := cloudstoragegateway.GetGatewayCacheDisks(ctx, \u0026cloudstoragegateway.GetGatewayCacheDisksArgs{\n\t\t\tGatewayId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t\tStatus: pulumi.IntRef(0),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudStorageGatewayGatewayCacheDiskId2\", status.Disks[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudstoragegateway.CloudstoragegatewayFunctions;\nimport com.pulumi.alicloud.cloudstoragegateway.inputs.GetGatewayCacheDisksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CloudstoragegatewayFunctions.getGatewayCacheDisks(GetGatewayCacheDisksArgs.builder()\n            .gatewayId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"cloudStorageGatewayGatewayCacheDiskId1\", ids.disks()[0].id());\n        final var status = CloudstoragegatewayFunctions.getGatewayCacheDisks(GetGatewayCacheDisksArgs.builder()\n            .gatewayId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .status(0)\n            .build());\n\n        ctx.export(\"cloudStorageGatewayGatewayCacheDiskId2\", status.disks()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getGatewayCacheDisks\n      arguments:\n        gatewayId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  status:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getGatewayCacheDisks\n      arguments:\n        gatewayId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n        status: '0'\noutputs:\n  cloudStorageGatewayGatewayCacheDiskId1: ${ids.disks[0].id}\n  cloudStorageGatewayGatewayCacheDiskId2: ${status.disks[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGatewayCacheDisks.\n","properties":{"gatewayId":{"type":"string","description":"The ID of the gateway.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Gateway Cache Disk IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"integer","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: Normal. \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e: Is about to expire. \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e: Has expired.\n"}},"type":"object","required":["gatewayId"]},"outputs":{"description":"A collection of values returned by getGatewayCacheDisks.\n","properties":{"disks":{"items":{"$ref":"#/types/alicloud:cloudstoragegateway/getGatewayCacheDisksDisk:getGatewayCacheDisksDisk"},"type":"array"},"gatewayId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"integer"}},"required":["disks","gatewayId","ids","id"],"type":"object"}},"alicloud:cloudstoragegateway/getGatewayFileShares:getGatewayFileShares":{"description":"This data source provides the Cloud Storage Gateway Gateway File Shares of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.144.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cloudstoragegateway.getGatewayFileShares({\n    gatewayId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const cloudStorageGatewayGatewayFileShareId1 = ids.then(ids =\u003e ids.shares?.[0]?.id);\nconst nameRegex = alicloud.cloudstoragegateway.getGatewayFileShares({\n    gatewayId: \"example_value\",\n    nameRegex: \"^my-GatewayFileShare\",\n});\nexport const cloudStorageGatewayGatewayFileShareId2 = nameRegex.then(nameRegex =\u003e nameRegex.shares?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cloudstoragegateway.get_gateway_file_shares(gateway_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"cloudStorageGatewayGatewayFileShareId1\", ids.shares[0].id)\nname_regex = alicloud.cloudstoragegateway.get_gateway_file_shares(gateway_id=\"example_value\",\n    name_regex=\"^my-GatewayFileShare\")\npulumi.export(\"cloudStorageGatewayGatewayFileShareId2\", name_regex.shares[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.CloudStorageGateway.GetGatewayFileShares.Invoke(new()\n    {\n        GatewayId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.CloudStorageGateway.GetGatewayFileShares.Invoke(new()\n    {\n        GatewayId = \"example_value\",\n        NameRegex = \"^my-GatewayFileShare\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudStorageGatewayGatewayFileShareId1\"] = ids.Apply(getGatewayFileSharesResult =\u003e getGatewayFileSharesResult.Shares[0]?.Id),\n        [\"cloudStorageGatewayGatewayFileShareId2\"] = nameRegex.Apply(getGatewayFileSharesResult =\u003e getGatewayFileSharesResult.Shares[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cloudstoragegateway.GetGatewayFileShares(ctx, \u0026cloudstoragegateway.GetGatewayFileSharesArgs{\n\t\t\tGatewayId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudStorageGatewayGatewayFileShareId1\", ids.Shares[0].Id)\n\t\tnameRegex, err := cloudstoragegateway.GetGatewayFileShares(ctx, \u0026cloudstoragegateway.GetGatewayFileSharesArgs{\n\t\t\tGatewayId: \"example_value\",\n\t\t\tNameRegex: pulumi.StringRef(\"^my-GatewayFileShare\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cloudStorageGatewayGatewayFileShareId2\", nameRegex.Shares[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudstoragegateway.CloudstoragegatewayFunctions;\nimport com.pulumi.alicloud.cloudstoragegateway.inputs.GetGatewayFileSharesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CloudstoragegatewayFunctions.getGatewayFileShares(GetGatewayFileSharesArgs.builder()\n            .gatewayId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"cloudStorageGatewayGatewayFileShareId1\", ids.shares()[0].id());\n        final var nameRegex = CloudstoragegatewayFunctions.getGatewayFileShares(GetGatewayFileSharesArgs.builder()\n            .gatewayId(\"example_value\")\n            .nameRegex(\"^my-GatewayFileShare\")\n            .build());\n\n        ctx.export(\"cloudStorageGatewayGatewayFileShareId2\", nameRegex.shares()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getGatewayFileShares\n      arguments:\n        gatewayId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getGatewayFileShares\n      arguments:\n        gatewayId: example_value\n        nameRegex: ^my-GatewayFileShare\noutputs:\n  cloudStorageGatewayGatewayFileShareId1: ${ids.shares[0].id}\n  cloudStorageGatewayGatewayFileShareId2: ${nameRegex.shares[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGatewayFileShares.\n","properties":{"gatewayId":{"type":"string","description":"The ID of the gateway.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Gateway File Share IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Gateway File Share name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["gatewayId"]},"outputs":{"description":"A collection of values returned by getGatewayFileShares.\n","properties":{"gatewayId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"shares":{"items":{"$ref":"#/types/alicloud:cloudstoragegateway/getGatewayFileSharesShare:getGatewayFileSharesShare"},"type":"array"}},"required":["gatewayId","ids","names","shares","id"],"type":"object"}},"alicloud:cloudstoragegateway/getGatewaySmbUsers:getGatewaySmbUsers":{"description":"This data source provides the Cloud Storage Gateway Gateway SMB Users of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.142.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.vpc.getNetworks({\n    nameRegex: \"default-NODELETING\",\n});\nconst defaultGetSwitches = _default.then(_default =\u003e alicloud.vpc.getSwitches({\n    vpcId: _default.ids?.[0],\n}));\nconst example = new alicloud.cloudstoragegateway.StorageBundle(\"example\", {storageBundleName: \"example_value\"});\nconst defaultGateway = new alicloud.cloudstoragegateway.Gateway(\"default\", {\n    description: \"tf-acctestDesalone\",\n    gatewayClass: \"Standard\",\n    type: \"File\",\n    paymentType: \"PayAsYouGo\",\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    releaseAfterExpiration: false,\n    publicNetworkBandwidth: 40,\n    storageBundleId: example.id,\n    location: \"Cloud\",\n    gatewayName: \"example_value\",\n});\nconst defaultGatewaySmbUser = new alicloud.cloudstoragegateway.GatewaySmbUser(\"default\", {\n    username: \"your_username\",\n    password: \"password\",\n    gatewayId: defaultGateway.id,\n});\nconst ids = alicloud.cloudstoragegateway.getGatewaySmbUsersOutput({\n    gatewayId: defaultGateway.id,\n    ids: [defaultGatewaySmbUser.id],\n});\nexport const cloudStorageGatewayGatewaySmbUserId1 = ids.apply(ids =\u003e ids.users?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.vpc.get_networks(name_regex=\"default-NODELETING\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default.ids[0])\nexample = alicloud.cloudstoragegateway.StorageBundle(\"example\", storage_bundle_name=\"example_value\")\ndefault_gateway = alicloud.cloudstoragegateway.Gateway(\"default\",\n    description=\"tf-acctestDesalone\",\n    gateway_class=\"Standard\",\n    type=\"File\",\n    payment_type=\"PayAsYouGo\",\n    vswitch_id=default_get_switches.ids[0],\n    release_after_expiration=False,\n    public_network_bandwidth=40,\n    storage_bundle_id=example.id,\n    location=\"Cloud\",\n    gateway_name=\"example_value\")\ndefault_gateway_smb_user = alicloud.cloudstoragegateway.GatewaySmbUser(\"default\",\n    username=\"your_username\",\n    password=\"password\",\n    gateway_id=default_gateway.id)\nids = alicloud.cloudstoragegateway.get_gateway_smb_users_output(gateway_id=default_gateway.id,\n    ids=[default_gateway_smb_user.id])\npulumi.export(\"cloudStorageGatewayGatewaySmbUserId1\", ids.users[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"default-NODELETING\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = @default.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var example = new AliCloud.CloudStorageGateway.StorageBundle(\"example\", new()\n    {\n        StorageBundleName = \"example_value\",\n    });\n\n    var defaultGateway = new AliCloud.CloudStorageGateway.Gateway(\"default\", new()\n    {\n        Description = \"tf-acctestDesalone\",\n        GatewayClass = \"Standard\",\n        Type = \"File\",\n        PaymentType = \"PayAsYouGo\",\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        ReleaseAfterExpiration = false,\n        PublicNetworkBandwidth = 40,\n        StorageBundleId = example.Id,\n        Location = \"Cloud\",\n        GatewayName = \"example_value\",\n    });\n\n    var defaultGatewaySmbUser = new AliCloud.CloudStorageGateway.GatewaySmbUser(\"default\", new()\n    {\n        Username = \"your_username\",\n        Password = \"password\",\n        GatewayId = defaultGateway.Id,\n    });\n\n    var ids = AliCloud.CloudStorageGateway.GetGatewaySmbUsers.Invoke(new()\n    {\n        GatewayId = defaultGateway.Id,\n        Ids = new[]\n        {\n            defaultGatewaySmbUser.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudStorageGatewayGatewaySmbUserId1\"] = ids.Apply(getGatewaySmbUsersResult =\u003e getGatewaySmbUsersResult.Users[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"default-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId: pulumi.StringRef(_default.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := cloudstoragegateway.NewStorageBundle(ctx, \"example\", \u0026cloudstoragegateway.StorageBundleArgs{\n\t\t\tStorageBundleName: pulumi.String(\"example_value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGateway, err := cloudstoragegateway.NewGateway(ctx, \"default\", \u0026cloudstoragegateway.GatewayArgs{\n\t\t\tDescription:            pulumi.String(\"tf-acctestDesalone\"),\n\t\t\tGatewayClass:           pulumi.String(\"Standard\"),\n\t\t\tType:                   pulumi.String(\"File\"),\n\t\t\tPaymentType:            pulumi.String(\"PayAsYouGo\"),\n\t\t\tVswitchId:              pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tReleaseAfterExpiration: pulumi.Bool(false),\n\t\t\tPublicNetworkBandwidth: pulumi.Int(40),\n\t\t\tStorageBundleId:        example.ID(),\n\t\t\tLocation:               pulumi.String(\"Cloud\"),\n\t\t\tGatewayName:            pulumi.String(\"example_value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGatewaySmbUser, err := cloudstoragegateway.NewGatewaySmbUser(ctx, \"default\", \u0026cloudstoragegateway.GatewaySmbUserArgs{\n\t\t\tUsername:  pulumi.String(\"your_username\"),\n\t\t\tPassword:  pulumi.String(\"password\"),\n\t\t\tGatewayId: defaultGateway.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := cloudstoragegateway.GetGatewaySmbUsersOutput(ctx, cloudstoragegateway.GetGatewaySmbUsersOutputArgs{\n\t\t\tGatewayId: defaultGateway.ID(),\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultGatewaySmbUser.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"cloudStorageGatewayGatewaySmbUserId1\", ids.ApplyT(func(ids cloudstoragegateway.GetGatewaySmbUsersResult) (*string, error) {\n\t\t\treturn \u0026ids.Users[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundle;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundleArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.Gateway;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewayArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewaySmbUser;\nimport com.pulumi.alicloud.cloudstoragegateway.GatewaySmbUserArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.CloudstoragegatewayFunctions;\nimport com.pulumi.alicloud.cloudstoragegateway.inputs.GetGatewaySmbUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"default-NODELETING\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(default_.ids()[0])\n            .build());\n\n        var example = new StorageBundle(\"example\", StorageBundleArgs.builder()\n            .storageBundleName(\"example_value\")\n            .build());\n\n        var defaultGateway = new Gateway(\"defaultGateway\", GatewayArgs.builder()\n            .description(\"tf-acctestDesalone\")\n            .gatewayClass(\"Standard\")\n            .type(\"File\")\n            .paymentType(\"PayAsYouGo\")\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .releaseAfterExpiration(false)\n            .publicNetworkBandwidth(40)\n            .storageBundleId(example.id())\n            .location(\"Cloud\")\n            .gatewayName(\"example_value\")\n            .build());\n\n        var defaultGatewaySmbUser = new GatewaySmbUser(\"defaultGatewaySmbUser\", GatewaySmbUserArgs.builder()\n            .username(\"your_username\")\n            .password(\"password\")\n            .gatewayId(defaultGateway.id())\n            .build());\n\n        final var ids = CloudstoragegatewayFunctions.getGatewaySmbUsers(GetGatewaySmbUsersArgs.builder()\n            .gatewayId(defaultGateway.id())\n            .ids(defaultGatewaySmbUser.id())\n            .build());\n\n        ctx.export(\"cloudStorageGatewayGatewaySmbUserId1\", ids.applyValue(_ids -\u003e _ids.users()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:cloudstoragegateway:StorageBundle\n    properties:\n      storageBundleName: example_value\n  defaultGateway:\n    type: alicloud:cloudstoragegateway:Gateway\n    name: default\n    properties:\n      description: tf-acctestDesalone\n      gatewayClass: Standard\n      type: File\n      paymentType: PayAsYouGo\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      releaseAfterExpiration: false\n      publicNetworkBandwidth: 40\n      storageBundleId: ${example.id}\n      location: Cloud\n      gatewayName: example_value\n  defaultGatewaySmbUser:\n    type: alicloud:cloudstoragegateway:GatewaySmbUser\n    name: default\n    properties:\n      username: your_username\n      password: password\n      gatewayId: ${defaultGateway.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: default-NODELETING\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${default.ids[0]}\n  ids:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getGatewaySmbUsers\n      arguments:\n        gatewayId: ${defaultGateway.id}\n        ids:\n          - ${defaultGatewaySmbUser.id}\noutputs:\n  cloudStorageGatewayGatewaySmbUserId1: ${ids.users[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGatewaySmbUsers.\n","properties":{"gatewayId":{"type":"string","description":"The Gateway ID.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Gateway SMB User IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Gateway SMB username.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["gatewayId"]},"outputs":{"description":"A collection of values returned by getGatewaySmbUsers.\n","properties":{"gatewayId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"outputFile":{"type":"string"},"users":{"items":{"$ref":"#/types/alicloud:cloudstoragegateway/getGatewaySmbUsersUser:getGatewaySmbUsersUser"},"type":"array"}},"required":["gatewayId","ids","users","id"],"type":"object"}},"alicloud:cloudstoragegateway/getGateways:getGateways":{"description":"This data source provides the Cloud Storage Gateway Gateways of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.132.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = new alicloud.cloudstoragegateway.StorageBundle(\"example\", {storageBundleName: \"example_value\"});\nconst nameRegex = alicloud.cloudstoragegateway.getGatewaysOutput({\n    storageBundleId: example.id,\n    nameRegex: \"^my-Gateway\",\n});\nexport const cloudStorageGatewayGatewayId = nameRegex.apply(nameRegex =\u003e nameRegex.gateways?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cloudstoragegateway.StorageBundle(\"example\", storage_bundle_name=\"example_value\")\nname_regex = alicloud.cloudstoragegateway.get_gateways_output(storage_bundle_id=example.id,\n    name_regex=\"^my-Gateway\")\npulumi.export(\"cloudStorageGatewayGatewayId\", name_regex.gateways[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AliCloud.CloudStorageGateway.StorageBundle(\"example\", new()\n    {\n        StorageBundleName = \"example_value\",\n    });\n\n    var nameRegex = AliCloud.CloudStorageGateway.GetGateways.Invoke(new()\n    {\n        StorageBundleId = example.Id,\n        NameRegex = \"^my-Gateway\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cloudStorageGatewayGatewayId\"] = nameRegex.Apply(getGatewaysResult =\u003e getGatewaysResult.Gateways[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cloudstoragegateway.NewStorageBundle(ctx, \"example\", \u0026cloudstoragegateway.StorageBundleArgs{\n\t\t\tStorageBundleName: pulumi.String(\"example_value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnameRegex := cloudstoragegateway.GetGatewaysOutput(ctx, cloudstoragegateway.GetGatewaysOutputArgs{\n\t\t\tStorageBundleId: example.ID(),\n\t\t\tNameRegex:       pulumi.String(\"^my-Gateway\"),\n\t\t}, nil)\n\t\tctx.Export(\"cloudStorageGatewayGatewayId\", nameRegex.ApplyT(func(nameRegex cloudstoragegateway.GetGatewaysResult) (*string, error) {\n\t\t\treturn \u0026nameRegex.Gateways[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundle;\nimport com.pulumi.alicloud.cloudstoragegateway.StorageBundleArgs;\nimport com.pulumi.alicloud.cloudstoragegateway.CloudstoragegatewayFunctions;\nimport com.pulumi.alicloud.cloudstoragegateway.inputs.GetGatewaysArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new StorageBundle(\"example\", StorageBundleArgs.builder()\n            .storageBundleName(\"example_value\")\n            .build());\n\n        final var nameRegex = CloudstoragegatewayFunctions.getGateways(GetGatewaysArgs.builder()\n            .storageBundleId(example.id())\n            .nameRegex(\"^my-Gateway\")\n            .build());\n\n        ctx.export(\"cloudStorageGatewayGatewayId\", nameRegex.applyValue(_nameRegex -\u003e _nameRegex.gateways()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: alicloud:cloudstoragegateway:StorageBundle\n    properties:\n      storageBundleName: example_value\nvariables:\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getGateways\n      arguments:\n        storageBundleId: ${example.id}\n        nameRegex: ^my-Gateway\noutputs:\n  cloudStorageGatewayGatewayId: ${nameRegex.gateways[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGateways.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Gateway IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Gateway name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string","description":"gateway status.\n"},"storageBundleId":{"type":"string","description":"storage bundle id.\n"}},"type":"object","required":["storageBundleId"]},"outputs":{"description":"A collection of values returned by getGateways.\n","properties":{"gateways":{"items":{"$ref":"#/types/alicloud:cloudstoragegateway/getGatewaysGateway:getGatewaysGateway"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string"},"storageBundleId":{"type":"string"},"totalCount":{"type":"integer"}},"required":["gateways","ids","names","storageBundleId","totalCount","id"],"type":"object"}},"alicloud:cloudstoragegateway/getService:getService":{"description":"Using this data source can open Cloud Storage Gateway service automatically. If the service has been opened, it will return opened.\n\nFor information about Cloud Storage Gateway and how to use it, see [What is Cloud Storage Gateway](https://www.alibabacloud.com/help/en/product/53923.htm).\n\n\u003e **NOTE:** Available in v1.117.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.cloudstoragegateway.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.cloudstoragegateway.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.CloudStorageGateway.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudstoragegateway.GetService(ctx, \u0026cloudstoragegateway.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudstoragegateway.CloudstoragegatewayFunctions;\nimport com.pulumi.alicloud.cloudstoragegateway.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = CloudstoragegatewayFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: \"On\" or \"Off\". Default to \"Off\".\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the Cloud Storage Gateway service that means you have read and agreed the [Cloud Storage Gateway Terms of Service](https://help.aliyun.com/document_detail/117679.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:cloudstoragegateway/getStocks:getStocks":{"description":"This data source provides the Cloud Storage Gateway Stocks of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.144.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cloudstoragegateway.getStocks({\n    gatewayClass: \"Advanced\",\n});\nexport const zoneId = _default.then(_default =\u003e _default.stocks?.[0]?.zoneId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cloudstoragegateway.get_stocks(gateway_class=\"Advanced\")\npulumi.export(\"zoneId\", default.stocks[0].zone_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.CloudStorageGateway.GetStocks.Invoke(new()\n    {\n        GatewayClass = \"Advanced\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"zoneId\"] = @default.Apply(@default =\u003e @default.Apply(getStocksResult =\u003e getStocksResult.Stocks[0]?.ZoneId)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cloudstoragegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := cloudstoragegateway.GetStocks(ctx, \u0026cloudstoragegateway.GetStocksArgs{\n\t\t\tGatewayClass: pulumi.StringRef(\"Advanced\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"zoneId\", _default.Stocks[0].ZoneId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cloudstoragegateway.CloudstoragegatewayFunctions;\nimport com.pulumi.alicloud.cloudstoragegateway.inputs.GetStocksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CloudstoragegatewayFunctions.getStocks(GetStocksArgs.builder()\n            .gatewayClass(\"Advanced\")\n            .build());\n\n        ctx.export(\"zoneId\", default_.stocks()[0].zoneId());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cloudstoragegateway:getStocks\n      arguments:\n        gatewayClass: Advanced\noutputs:\n  zoneId: ${default.stocks[0].zoneId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStocks.\n","properties":{"gatewayClass":{"type":"string","description":"The gateway class. Valid values: `Basic`, `Standard`,`Enhanced`,`Advanced`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getStocks.\n","properties":{"gatewayClass":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"stocks":{"items":{"$ref":"#/types/alicloud:cloudstoragegateway/getStocksStock:getStocksStock"},"type":"array"}},"required":["stocks","id"],"type":"object"}},"alicloud:cloudstoragegateway/getStorageBundles:getStorageBundles":{"inputs":{"description":"A collection of arguments for invoking getStorageBundles.\n","properties":{"backendBucketRegionId":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}},"nameRegex":{"type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object","required":["backendBucketRegionId"]},"outputs":{"description":"A collection of values returned by getStorageBundles.\n","properties":{"backendBucketRegionId":{"type":"string"},"bundles":{"items":{"$ref":"#/types/alicloud:cloudstoragegateway/getStorageBundlesBundle:getStorageBundlesBundle"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"totalCount":{"type":"integer"}},"required":["backendBucketRegionId","bundles","ids","names","totalCount","id"],"type":"object"}},"alicloud:cms/getAlarmContactGroups:getAlarmContactGroups":{"description":"This data source provides the CMS Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.101.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cms.getAlarmContactGroups({\n    nameRegex: \"tf-testacc\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cms.get_alarm_contact_groups(name_regex=\"tf-testacc\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cms.GetAlarmContactGroups.Invoke(new()\n    {\n        NameRegex = \"tf-testacc\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cms.GetAlarmContactGroups(ctx, \u0026cms.GetAlarmContactGroupsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"tf-testacc\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.CmsFunctions;\nimport com.pulumi.alicloud.cms.inputs.GetAlarmContactGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CmsFunctions.getAlarmContactGroups(GetAlarmContactGroupsArgs.builder()\n            .nameRegex(\"tf-testacc\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cms:getAlarmContactGroups\n      arguments:\n        nameRegex: tf-testacc\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAlarmContactGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Alarm Contact Group IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Alarm Contact Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAlarmContactGroups.\n","properties":{"groups":{"items":{"$ref":"#/types/alicloud:cms/getAlarmContactGroupsGroup:getAlarmContactGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:cms/getAlarmContacts:getAlarmContacts":{"description":"Provides a list of alarm contact owned by an Alibaba Cloud account.\n\n\u003e **NOTE:** Available in v1.99.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nexport = async () =\u003e {\n    const example = await alicloud.cms.getAlarmContacts({\n        ids: [\"tf-testAccCmsAlarmContact\"],\n    });\n    return {\n        \"first-contact\": _this.contacts,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cms.get_alarm_contacts(ids=[\"tf-testAccCmsAlarmContact\"])\npulumi.export(\"first-contact\", this[\"contacts\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cms.GetAlarmContacts.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"tf-testAccCmsAlarmContact\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"first-contact\"] = @this.Contacts,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cms.GetAlarmContacts(ctx, \u0026cms.GetAlarmContactsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"tf-testAccCmsAlarmContact\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"first-contact\", this.Contacts)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.CmsFunctions;\nimport com.pulumi.alicloud.cms.inputs.GetAlarmContactsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CmsFunctions.getAlarmContacts(GetAlarmContactsArgs.builder()\n            .ids(\"tf-testAccCmsAlarmContact\")\n            .build());\n\n        ctx.export(\"first-contact\", this_.contacts());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cms:getAlarmContacts\n      arguments:\n        ids:\n          - tf-testAccCmsAlarmContact\noutputs:\n  first-contact: ${this.contacts}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAlarmContacts.\n","properties":{"chanelType":{"type":"string","description":"The alarm notification method. Alarm notifications can be sent by using `Email` or `DingWebHook`.\n"},"chanelValue":{"type":"string","description":"The alarm notification target.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of alarm contact IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by alarm contact name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`). \n\n\u003e **NOTE:** Specify at least one of the following alarm notification targets: phone number, email address, webhook URL of the DingTalk chatbot, and TradeManager ID.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAlarmContacts.\n","properties":{"chanelType":{"type":"string"},"chanelValue":{"type":"string"},"contacts":{"description":"A list of alarm contacts. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cms/getAlarmContactsContact:getAlarmContactsContact"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of alarm contact IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of alarm contact names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["contacts","ids","names","id"],"type":"object"}},"alicloud:cms/getDynamicTagGroups:getDynamicTagGroups":{"description":"This data source provides the Cms Dynamic Tag Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.142.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"example_value\";\nconst _default = new alicloud.cms.AlarmContactGroup(\"default\", {\n    alarmContactGroupName: name,\n    describe: \"example_value\",\n    enableSubscribed: true,\n});\nconst defaultDynamicTagGroup = new alicloud.cms.DynamicTagGroup(\"default\", {\n    contactGroupLists: [_default.id],\n    tagKey: \"your_tag_key\",\n    matchExpresses: [{\n        tagValue: \"your_tag_value\",\n        tagValueMatchFunction: \"all\",\n    }],\n});\nconst ids = alicloud.cms.getDynamicTagGroupsOutput({\n    ids: [defaultDynamicTagGroup.id],\n});\nexport const cmsDynamicTagGroupId1 = ids.apply(ids =\u003e ids.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"example_value\"\ndefault = alicloud.cms.AlarmContactGroup(\"default\",\n    alarm_contact_group_name=name,\n    describe=\"example_value\",\n    enable_subscribed=True)\ndefault_dynamic_tag_group = alicloud.cms.DynamicTagGroup(\"default\",\n    contact_group_lists=[default.id],\n    tag_key=\"your_tag_key\",\n    match_expresses=[{\n        \"tag_value\": \"your_tag_value\",\n        \"tag_value_match_function\": \"all\",\n    }])\nids = alicloud.cms.get_dynamic_tag_groups_output(ids=[default_dynamic_tag_group.id])\npulumi.export(\"cmsDynamicTagGroupId1\", ids.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"example_value\";\n    var @default = new AliCloud.Cms.AlarmContactGroup(\"default\", new()\n    {\n        AlarmContactGroupName = name,\n        Describe = \"example_value\",\n        EnableSubscribed = true,\n    });\n\n    var defaultDynamicTagGroup = new AliCloud.Cms.DynamicTagGroup(\"default\", new()\n    {\n        ContactGroupLists = new[]\n        {\n            @default.Id,\n        },\n        TagKey = \"your_tag_key\",\n        MatchExpresses = new[]\n        {\n            new AliCloud.Cms.Inputs.DynamicTagGroupMatchExpressArgs\n            {\n                TagValue = \"your_tag_value\",\n                TagValueMatchFunction = \"all\",\n            },\n        },\n    });\n\n    var ids = AliCloud.Cms.GetDynamicTagGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultDynamicTagGroup.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cmsDynamicTagGroupId1\"] = ids.Apply(getDynamicTagGroupsResult =\u003e getDynamicTagGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"example_value\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cms.NewAlarmContactGroup(ctx, \"default\", \u0026cms.AlarmContactGroupArgs{\n\t\t\tAlarmContactGroupName: pulumi.String(name),\n\t\t\tDescribe:              pulumi.String(\"example_value\"),\n\t\t\tEnableSubscribed:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDynamicTagGroup, err := cms.NewDynamicTagGroup(ctx, \"default\", \u0026cms.DynamicTagGroupArgs{\n\t\t\tContactGroupLists: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t\tTagKey: pulumi.String(\"your_tag_key\"),\n\t\t\tMatchExpresses: cms.DynamicTagGroupMatchExpressArray{\n\t\t\t\t\u0026cms.DynamicTagGroupMatchExpressArgs{\n\t\t\t\t\tTagValue:              pulumi.String(\"your_tag_value\"),\n\t\t\t\t\tTagValueMatchFunction: pulumi.String(\"all\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := cms.GetDynamicTagGroupsOutput(ctx, cms.GetDynamicTagGroupsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultDynamicTagGroup.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"cmsDynamicTagGroupId1\", ids.ApplyT(func(ids cms.GetDynamicTagGroupsResult) (*string, error) {\n\t\t\treturn \u0026ids.Groups[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.AlarmContactGroup;\nimport com.pulumi.alicloud.cms.AlarmContactGroupArgs;\nimport com.pulumi.alicloud.cms.DynamicTagGroup;\nimport com.pulumi.alicloud.cms.DynamicTagGroupArgs;\nimport com.pulumi.alicloud.cms.inputs.DynamicTagGroupMatchExpressArgs;\nimport com.pulumi.alicloud.cms.CmsFunctions;\nimport com.pulumi.alicloud.cms.inputs.GetDynamicTagGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"example_value\");\n        var default_ = new AlarmContactGroup(\"default\", AlarmContactGroupArgs.builder()\n            .alarmContactGroupName(name)\n            .describe(\"example_value\")\n            .enableSubscribed(true)\n            .build());\n\n        var defaultDynamicTagGroup = new DynamicTagGroup(\"defaultDynamicTagGroup\", DynamicTagGroupArgs.builder()\n            .contactGroupLists(default_.id())\n            .tagKey(\"your_tag_key\")\n            .matchExpresses(DynamicTagGroupMatchExpressArgs.builder()\n                .tagValue(\"your_tag_value\")\n                .tagValueMatchFunction(\"all\")\n                .build())\n            .build());\n\n        final var ids = CmsFunctions.getDynamicTagGroups(GetDynamicTagGroupsArgs.builder()\n            .ids(defaultDynamicTagGroup.id())\n            .build());\n\n        ctx.export(\"cmsDynamicTagGroupId1\", ids.applyValue(_ids -\u003e _ids.groups()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: example_value\nresources:\n  default:\n    type: alicloud:cms:AlarmContactGroup\n    properties:\n      alarmContactGroupName: ${name}\n      describe: example_value\n      enableSubscribed: true\n  defaultDynamicTagGroup:\n    type: alicloud:cms:DynamicTagGroup\n    name: default\n    properties:\n      contactGroupLists:\n        - ${default.id}\n      tagKey: your_tag_key\n      matchExpresses:\n        - tagValue: your_tag_value\n          tagValueMatchFunction: all\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cms:getDynamicTagGroups\n      arguments:\n        ids:\n          - ${defaultDynamicTagGroup.id}\noutputs:\n  cmsDynamicTagGroupId1: ${ids.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDynamicTagGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Dynamic Tag Group IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `RUNNING`, `FINISH`.\n"},"tagKey":{"type":"string","description":"The tag key of the tag.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDynamicTagGroups.\n","properties":{"groups":{"items":{"$ref":"#/types/alicloud:cms/getDynamicTagGroupsGroup:getDynamicTagGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"},"tagKey":{"type":"string"}},"required":["groups","ids","id"],"type":"object"}},"alicloud:cms/getEventRules:getEventRules":{"description":"This data source provides the Cms Event Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.182.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cms.getEventRules({\n    ids: [\"example_id\"],\n});\nexport const cmsEventRuleId1 = ids.then(ids =\u003e ids.rules?.[0]?.id);\nconst nameRegex = alicloud.cms.getEventRules({\n    nameRegex: \"^my-EventRule\",\n});\nexport const cmsEventRuleId2 = nameRegex.then(nameRegex =\u003e nameRegex.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cms.get_event_rules(ids=[\"example_id\"])\npulumi.export(\"cmsEventRuleId1\", ids.rules[0].id)\nname_regex = alicloud.cms.get_event_rules(name_regex=\"^my-EventRule\")\npulumi.export(\"cmsEventRuleId2\", name_regex.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cms.GetEventRules.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Cms.GetEventRules.Invoke(new()\n    {\n        NameRegex = \"^my-EventRule\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cmsEventRuleId1\"] = ids.Apply(getEventRulesResult =\u003e getEventRulesResult.Rules[0]?.Id),\n        [\"cmsEventRuleId2\"] = nameRegex.Apply(getEventRulesResult =\u003e getEventRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cms.GetEventRules(ctx, \u0026cms.GetEventRulesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cmsEventRuleId1\", ids.Rules[0].Id)\n\t\tnameRegex, err := cms.GetEventRules(ctx, \u0026cms.GetEventRulesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-EventRule\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cmsEventRuleId2\", nameRegex.Rules[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.CmsFunctions;\nimport com.pulumi.alicloud.cms.inputs.GetEventRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CmsFunctions.getEventRules(GetEventRulesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"cmsEventRuleId1\", ids.rules()[0].id());\n        final var nameRegex = CmsFunctions.getEventRules(GetEventRulesArgs.builder()\n            .nameRegex(\"^my-EventRule\")\n            .build());\n\n        ctx.export(\"cmsEventRuleId2\", nameRegex.rules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cms:getEventRules\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cms:getEventRules\n      arguments:\n        nameRegex: ^my-EventRule\noutputs:\n  cmsEventRuleId1: ${ids.rules[0].id}\n  cmsEventRuleId2: ${nameRegex.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEventRules.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Event Rule IDs. Its element value is same as Event Rule Name.\n"},"namePrefix":{"type":"string","description":"The name prefix.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Event Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string","description":"The status of the resource. Valid values: `DISABLED`, `ENABLED`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEventRules.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"namePrefix":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"rules":{"items":{"$ref":"#/types/alicloud:cms/getEventRulesRule:getEventRulesRule"},"type":"array"},"status":{"type":"string"}},"required":["ids","names","rules","id"],"type":"object"}},"alicloud:cms/getGroupMetricRules:getGroupMetricRules":{"description":"This data source provides the Cms Group Metric Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.104.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cms.getGroupMetricRules({\n    ids: [\"4a9a8978-a9cc-55ca-aa7c-530ccd91ae57\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstCmsGroupMetricRuleId = example.then(example =\u003e example.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cms.get_group_metric_rules(ids=[\"4a9a8978-a9cc-55ca-aa7c-530ccd91ae57\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstCmsGroupMetricRuleId\", example.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cms.GetGroupMetricRules.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"4a9a8978-a9cc-55ca-aa7c-530ccd91ae57\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstCmsGroupMetricRuleId\"] = example.Apply(getGroupMetricRulesResult =\u003e getGroupMetricRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cms.GetGroupMetricRules(ctx, \u0026cms.GetGroupMetricRulesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"4a9a8978-a9cc-55ca-aa7c-530ccd91ae57\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstCmsGroupMetricRuleId\", example.Rules[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.CmsFunctions;\nimport com.pulumi.alicloud.cms.inputs.GetGroupMetricRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CmsFunctions.getGroupMetricRules(GetGroupMetricRulesArgs.builder()\n            .ids(\"4a9a8978-a9cc-55ca-aa7c-530ccd91ae57\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstCmsGroupMetricRuleId\", example.rules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cms:getGroupMetricRules\n      arguments:\n        ids:\n          - 4a9a8978-a9cc-55ca-aa7c-530ccd91ae57\n        nameRegex: the_resource_name\noutputs:\n  firstCmsGroupMetricRuleId: ${example.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGroupMetricRules.\n","properties":{"dimensions":{"type":"string","description":"The dimensions that specify the resources to be associated with the alert rule.\n"},"enableState":{"type":"boolean","description":"EnableState.\n"},"groupId":{"type":"string","description":"The ID of the application group.\n"},"groupMetricRuleName":{"type":"string","description":"The name of the alert rule.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Group Metric Rule IDs.\n"},"metricName":{"type":"string","description":"The name of the metric.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"namespace":{"type":"string","description":"The namespace of the service.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of Group Metric Rule.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGroupMetricRules.\n","properties":{"dimensions":{"type":"string"},"enableState":{"type":"boolean"},"groupId":{"type":"string"},"groupMetricRuleName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"metricName":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"namespace":{"type":"string"},"outputFile":{"type":"string"},"rules":{"items":{"$ref":"#/types/alicloud:cms/getGroupMetricRulesRule:getGroupMetricRulesRule"},"type":"array"},"status":{"type":"string"}},"required":["ids","names","rules","id"],"type":"object"}},"alicloud:cms/getHybridMonitorDatas:getHybridMonitorDatas":{"description":"This data source provides the Cms Hybrid Monitor Datas of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.177.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cms.getHybridMonitorDatas({\n    namespace: \"example_value\",\n    promSql: \"AliyunEcs_cpu_total\",\n    start: \"1657505665\",\n    end: \"1657520065\",\n});\nexport const cmsMetricRuleTemplateId1 = _default.then(_default =\u003e _default.datas?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cms.get_hybrid_monitor_datas(namespace=\"example_value\",\n    prom_sql=\"AliyunEcs_cpu_total\",\n    start=\"1657505665\",\n    end=\"1657520065\")\npulumi.export(\"cmsMetricRuleTemplateId1\", default.datas[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Cms.GetHybridMonitorDatas.Invoke(new()\n    {\n        Namespace = \"example_value\",\n        PromSql = \"AliyunEcs_cpu_total\",\n        Start = \"1657505665\",\n        End = \"1657520065\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cmsMetricRuleTemplateId1\"] = @default.Apply(@default =\u003e @default.Apply(getHybridMonitorDatasResult =\u003e getHybridMonitorDatasResult.Datas[0])),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := cms.GetHybridMonitorDatas(ctx, \u0026cms.GetHybridMonitorDatasArgs{\n\t\t\tNamespace: \"example_value\",\n\t\t\tPromSql:   \"AliyunEcs_cpu_total\",\n\t\t\tStart:     \"1657505665\",\n\t\t\tEnd:       \"1657520065\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cmsMetricRuleTemplateId1\", _default.Datas[0])\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.CmsFunctions;\nimport com.pulumi.alicloud.cms.inputs.GetHybridMonitorDatasArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CmsFunctions.getHybridMonitorDatas(GetHybridMonitorDatasArgs.builder()\n            .namespace(\"example_value\")\n            .promSql(\"AliyunEcs_cpu_total\")\n            .start(\"1657505665\")\n            .end(\"1657520065\")\n            .build());\n\n        ctx.export(\"cmsMetricRuleTemplateId1\", default_.datas()[0]);\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cms:getHybridMonitorDatas\n      arguments:\n        namespace: example_value\n        promSql: AliyunEcs_cpu_total\n        start: '1657505665'\n        end: '1657520065'\noutputs:\n  cmsMetricRuleTemplateId1: ${default.datas[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHybridMonitorDatas.\n","properties":{"end":{"type":"string","description":"The timestamp that specifies the end of the time range to query.\n"},"namespace":{"type":"string","description":"The name of the namespace.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"period":{"type":"string","description":"The interval at which monitoring data is collected. Unit: seconds.\n"},"promSql":{"type":"string","description":"The name of the metric. Note PromQL statements are supported.\n"},"start":{"type":"string","description":"The timestamp that specifies the beginning of the time range to query.\n"}},"type":"object","required":["end","namespace","promSql","start"]},"outputs":{"description":"A collection of values returned by getHybridMonitorDatas.\n","properties":{"datas":{"items":{"$ref":"#/types/alicloud:cms/getHybridMonitorDatasData:getHybridMonitorDatasData"},"type":"array"},"end":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"namespace":{"type":"string"},"outputFile":{"type":"string"},"period":{"type":"string"},"promSql":{"type":"string"},"start":{"type":"string"}},"required":["datas","end","namespace","promSql","start","id"],"type":"object"}},"alicloud:cms/getHybridMonitorFcTasks:getHybridMonitorFcTasks":{"description":"This data source provides the Cms Hybrid Monitor Fc Tasks of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.179.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cms.getHybridMonitorFcTasks({\n    ids: [\"example_value\"],\n});\nexport const cmsHybridMonitorFcTaskId1 = ids.then(ids =\u003e ids.tasks?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cms.get_hybrid_monitor_fc_tasks(ids=[\"example_value\"])\npulumi.export(\"cmsHybridMonitorFcTaskId1\", ids.tasks[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cms.GetHybridMonitorFcTasks.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cmsHybridMonitorFcTaskId1\"] = ids.Apply(getHybridMonitorFcTasksResult =\u003e getHybridMonitorFcTasksResult.Tasks[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cms.GetHybridMonitorFcTasks(ctx, \u0026cms.GetHybridMonitorFcTasksArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cmsHybridMonitorFcTaskId1\", ids.Tasks[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.CmsFunctions;\nimport com.pulumi.alicloud.cms.inputs.GetHybridMonitorFcTasksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CmsFunctions.getHybridMonitorFcTasks(GetHybridMonitorFcTasksArgs.builder()\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"cmsHybridMonitorFcTaskId1\", ids.tasks()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cms:getHybridMonitorFcTasks\n      arguments:\n        ids:\n          - example_value\noutputs:\n  cmsHybridMonitorFcTaskId1: ${ids.tasks[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHybridMonitorFcTasks.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Hybrid Monitor Fc Task IDs.\n"},"namespace":{"type":"string","description":"The name of the namespace.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHybridMonitorFcTasks.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"namespace":{"type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"tasks":{"items":{"$ref":"#/types/alicloud:cms/getHybridMonitorFcTasksTask:getHybridMonitorFcTasksTask"},"type":"array"}},"required":["ids","tasks","id"],"type":"object"}},"alicloud:cms/getHybridMonitorSlsTasks:getHybridMonitorSlsTasks":{"description":"This data source provides the Cms Hybrid Monitor Sls Tasks of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.179.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cms.getHybridMonitorSlsTasks({\n    ids: [\"example_value\"],\n});\nexport const cmsHybridMonitorSlsTaskId1 = ids.then(ids =\u003e ids.tasks?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cms.get_hybrid_monitor_sls_tasks(ids=[\"example_value\"])\npulumi.export(\"cmsHybridMonitorSlsTaskId1\", ids.tasks[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cms.GetHybridMonitorSlsTasks.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cmsHybridMonitorSlsTaskId1\"] = ids.Apply(getHybridMonitorSlsTasksResult =\u003e getHybridMonitorSlsTasksResult.Tasks[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cms.GetHybridMonitorSlsTasks(ctx, \u0026cms.GetHybridMonitorSlsTasksArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cmsHybridMonitorSlsTaskId1\", ids.Tasks[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.CmsFunctions;\nimport com.pulumi.alicloud.cms.inputs.GetHybridMonitorSlsTasksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CmsFunctions.getHybridMonitorSlsTasks(GetHybridMonitorSlsTasksArgs.builder()\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"cmsHybridMonitorSlsTaskId1\", ids.tasks()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cms:getHybridMonitorSlsTasks\n      arguments:\n        ids:\n          - example_value\noutputs:\n  cmsHybridMonitorSlsTaskId1: ${ids.tasks[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHybridMonitorSlsTasks.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Hybrid Monitor Sls Task IDs.\n"},"keyword":{"type":"string","description":"The keyword that is used to search for metric import tasks.\n"},"namespace":{"type":"string","description":"The name of the namespace.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHybridMonitorSlsTasks.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyword":{"type":"string"},"namespace":{"type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"tasks":{"items":{"$ref":"#/types/alicloud:cms/getHybridMonitorSlsTasksTask:getHybridMonitorSlsTasksTask"},"type":"array"}},"required":["ids","tasks","id"],"type":"object"}},"alicloud:cms/getMetricRuleBlackLists:getMetricRuleBlackLists":{"description":"This data source provides Cloud Monitor Service Metric Rule Black List available to the user.[What is Metric Rule Black List](https://www.alibabacloud.com/help/en/cloudmonitor/latest/describemetricruleblacklist)\n\n\u003e **NOTE:** Available in 1.194.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.cms.getMetricRuleBlackLists({\n    ids: [defaultAlicloudCmsMetricRuleBlackLists.id],\n    category: \"ecs\",\n    namespace: \"acs_ecs_dashboard\",\n});\nexport const alicloudCmsRuleBlackListExampleId = lists[0].id;\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.cms.get_metric_rule_black_lists(ids=[default_alicloud_cms_metric_rule_black_lists[\"id\"]],\n    category=\"ecs\",\n    namespace=\"acs_ecs_dashboard\")\npulumi.export(\"alicloudCmsRuleBlackListExampleId\", lists[0][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Cms.GetMetricRuleBlackLists.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudCmsMetricRuleBlackLists.Id,\n        },\n        Category = \"ecs\",\n        Namespace = \"acs_ecs_dashboard\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCmsRuleBlackListExampleId\"] = lists[0].Id,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := cms.GetMetricRuleBlackLists(ctx, \u0026cms.GetMetricRuleBlackListsArgs{\nIds: interface{}{\ndefaultAlicloudCmsMetricRuleBlackLists.Id,\n},\nCategory: pulumi.StringRef(\"ecs\"),\nNamespace: pulumi.StringRef(\"acs_ecs_dashboard\"),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudCmsRuleBlackListExampleId\", lists[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.CmsFunctions;\nimport com.pulumi.alicloud.cms.inputs.GetMetricRuleBlackListsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = CmsFunctions.getMetricRuleBlackLists(GetMetricRuleBlackListsArgs.builder()\n            .ids(defaultAlicloudCmsMetricRuleBlackLists.id())\n            .category(\"ecs\")\n            .namespace(\"acs_ecs_dashboard\")\n            .build());\n\n        ctx.export(\"alicloudCmsRuleBlackListExampleId\", lists[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cms:getMetricRuleBlackLists\n      arguments:\n        ids:\n          - ${defaultAlicloudCmsMetricRuleBlackLists.id}\n        category: ecs\n        namespace: acs_ecs_dashboard\noutputs:\n  alicloudCmsRuleBlackListExampleId: ${lists[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMetricRuleBlackLists.\n","properties":{"category":{"type":"string","description":"Cloud service classification. For example, Redis includes kvstore_standard, kvstore_sharding, and kvstore_splitrw.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Metric Rule Black List IDs.\n"},"metricRuleBlackListId":{"type":"string","description":"The first ID of the resource\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"namespace":{"type":"string","description":"The data namespace of the cloud service.\n"},"order":{"type":"integer"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getMetricRuleBlackLists.\n","properties":{"category":{"description":"Cloud service classification. For example, Redis includes kvstore_standard, kvstore_sharding, and kvstore_splitrw.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Metric Rule Black List IDs.\n","items":{"type":"string"},"type":"array"},"lists":{"description":"A list of Metric Rule Black List Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cms/getMetricRuleBlackListsList:getMetricRuleBlackListsList"},"type":"array"},"metricRuleBlackListId":{"description":"The first ID of the resource\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Metric Rule Black Lists.\n","items":{"type":"string"},"type":"array"},"namespace":{"description":"The data namespace of the cloud service.\n","type":"string"},"order":{"type":"integer"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["ids","lists","names","id"],"type":"object"}},"alicloud:cms/getMetricRuleTemplates:getMetricRuleTemplates":{"description":"This data source provides the Cms Metric Rule Templates of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.134.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cms.getMetricRuleTemplates({\n    ids: [\"example_value\"],\n});\nexport const cmsMetricRuleTemplateId1 = ids.then(ids =\u003e ids.templates?.[0]?.id);\nconst nameRegex = alicloud.cms.getMetricRuleTemplates({\n    nameRegex: \"^my-MetricRuleTemplate\",\n});\nexport const cmsMetricRuleTemplateId2 = nameRegex.then(nameRegex =\u003e nameRegex.templates?.[0]?.id);\nconst keyword = alicloud.cms.getMetricRuleTemplates({\n    keyword: \"^my-MetricRuleTemplate\",\n});\nexport const cmsMetricRuleTemplateId3 = nameRegex.then(nameRegex =\u003e nameRegex.templates?.[0]?.id);\nconst templateId = alicloud.cms.getMetricRuleTemplates({\n    templateId: \"example_value\",\n});\nexport const cmsMetricRuleTemplateId4 = nameRegex.then(nameRegex =\u003e nameRegex.templates?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cms.get_metric_rule_templates(ids=[\"example_value\"])\npulumi.export(\"cmsMetricRuleTemplateId1\", ids.templates[0].id)\nname_regex = alicloud.cms.get_metric_rule_templates(name_regex=\"^my-MetricRuleTemplate\")\npulumi.export(\"cmsMetricRuleTemplateId2\", name_regex.templates[0].id)\nkeyword = alicloud.cms.get_metric_rule_templates(keyword=\"^my-MetricRuleTemplate\")\npulumi.export(\"cmsMetricRuleTemplateId3\", name_regex.templates[0].id)\ntemplate_id = alicloud.cms.get_metric_rule_templates(template_id=\"example_value\")\npulumi.export(\"cmsMetricRuleTemplateId4\", name_regex.templates[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cms.GetMetricRuleTemplates.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    var nameRegex = AliCloud.Cms.GetMetricRuleTemplates.Invoke(new()\n    {\n        NameRegex = \"^my-MetricRuleTemplate\",\n    });\n\n    var keyword = AliCloud.Cms.GetMetricRuleTemplates.Invoke(new()\n    {\n        Keyword = \"^my-MetricRuleTemplate\",\n    });\n\n    var templateId = AliCloud.Cms.GetMetricRuleTemplates.Invoke(new()\n    {\n        TemplateId = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cmsMetricRuleTemplateId1\"] = ids.Apply(getMetricRuleTemplatesResult =\u003e getMetricRuleTemplatesResult.Templates[0]?.Id),\n        [\"cmsMetricRuleTemplateId2\"] = nameRegex.Apply(getMetricRuleTemplatesResult =\u003e getMetricRuleTemplatesResult.Templates[0]?.Id),\n        [\"cmsMetricRuleTemplateId3\"] = nameRegex.Apply(getMetricRuleTemplatesResult =\u003e getMetricRuleTemplatesResult.Templates[0]?.Id),\n        [\"cmsMetricRuleTemplateId4\"] = nameRegex.Apply(getMetricRuleTemplatesResult =\u003e getMetricRuleTemplatesResult.Templates[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cms.GetMetricRuleTemplates(ctx, \u0026cms.GetMetricRuleTemplatesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cmsMetricRuleTemplateId1\", ids.Templates[0].Id)\n\t\tnameRegex, err := cms.GetMetricRuleTemplates(ctx, \u0026cms.GetMetricRuleTemplatesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-MetricRuleTemplate\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cmsMetricRuleTemplateId2\", nameRegex.Templates[0].Id)\n\t\t_, err = cms.GetMetricRuleTemplates(ctx, \u0026cms.GetMetricRuleTemplatesArgs{\n\t\t\tKeyword: pulumi.StringRef(\"^my-MetricRuleTemplate\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cmsMetricRuleTemplateId3\", nameRegex.Templates[0].Id)\n\t\t_, err = cms.GetMetricRuleTemplates(ctx, \u0026cms.GetMetricRuleTemplatesArgs{\n\t\t\tTemplateId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cmsMetricRuleTemplateId4\", nameRegex.Templates[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.CmsFunctions;\nimport com.pulumi.alicloud.cms.inputs.GetMetricRuleTemplatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CmsFunctions.getMetricRuleTemplates(GetMetricRuleTemplatesArgs.builder()\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"cmsMetricRuleTemplateId1\", ids.templates()[0].id());\n        final var nameRegex = CmsFunctions.getMetricRuleTemplates(GetMetricRuleTemplatesArgs.builder()\n            .nameRegex(\"^my-MetricRuleTemplate\")\n            .build());\n\n        ctx.export(\"cmsMetricRuleTemplateId2\", nameRegex.templates()[0].id());\n        final var keyword = CmsFunctions.getMetricRuleTemplates(GetMetricRuleTemplatesArgs.builder()\n            .keyword(\"^my-MetricRuleTemplate\")\n            .build());\n\n        ctx.export(\"cmsMetricRuleTemplateId3\", nameRegex.templates()[0].id());\n        final var templateId = CmsFunctions.getMetricRuleTemplates(GetMetricRuleTemplatesArgs.builder()\n            .templateId(\"example_value\")\n            .build());\n\n        ctx.export(\"cmsMetricRuleTemplateId4\", nameRegex.templates()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cms:getMetricRuleTemplates\n      arguments:\n        ids:\n          - example_value\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cms:getMetricRuleTemplates\n      arguments:\n        nameRegex: ^my-MetricRuleTemplate\n  keyword:\n    fn::invoke:\n      function: alicloud:cms:getMetricRuleTemplates\n      arguments:\n        keyword: ^my-MetricRuleTemplate\n  templateId:\n    fn::invoke:\n      function: alicloud:cms:getMetricRuleTemplates\n      arguments:\n        templateId: example_value\noutputs:\n  cmsMetricRuleTemplateId1: ${ids.templates[0].id}\n  cmsMetricRuleTemplateId2: ${nameRegex.templates[0].id}\n  cmsMetricRuleTemplateId3: ${nameRegex.templates[0].id}\n  cmsMetricRuleTemplateId4: ${nameRegex.templates[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMetricRuleTemplates.\n","properties":{"enableDetails":{"type":"boolean","description":"Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Metric Rule Template IDs.\n"},"keyword":{"type":"string","description":"The name of the alert template. You can perform fuzzy search based on the template name.\n"},"metricRuleTemplateName":{"type":"string","description":"The name of the alert template.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Metric Rule Template name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"templateId":{"type":"string","description":"The ID of the alert template.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getMetricRuleTemplates.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyword":{"type":"string"},"metricRuleTemplateName":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"templateId":{"type":"string"},"templates":{"items":{"$ref":"#/types/alicloud:cms/getMetricRuleTemplatesTemplate:getMetricRuleTemplatesTemplate"},"type":"array"}},"required":["ids","names","templates","id"],"type":"object"}},"alicloud:cms/getMonitorGroupInstances:getMonitorGroupInstances":{"inputs":{"description":"A collection of arguments for invoking getMonitorGroupInstances.\n","properties":{"ids":{"type":"string"},"keyword":{"type":"string"},"outputFile":{"type":"string"}},"type":"object","required":["ids"]},"outputs":{"description":"A collection of values returned by getMonitorGroupInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"type":"string"},"instances":{"items":{"$ref":"#/types/alicloud:cms/getMonitorGroupInstancesInstance:getMonitorGroupInstancesInstance"},"type":"array"},"keyword":{"type":"string"},"outputFile":{"type":"string"}},"required":["ids","instances","id"],"type":"object"}},"alicloud:cms/getMonitorGroups:getMonitorGroups":{"description":"This data source provides the Cms Monitor Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.113.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cms.getMonitorGroups({\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstCmsMonitorGroupId = example.then(example =\u003e example.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cms.get_monitor_groups(ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstCmsMonitorGroupId\", example.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Cms.GetMonitorGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstCmsMonitorGroupId\"] = example.Apply(getMonitorGroupsResult =\u003e getMonitorGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cms.GetMonitorGroups(ctx, \u0026cms.GetMonitorGroupsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstCmsMonitorGroupId\", example.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.CmsFunctions;\nimport com.pulumi.alicloud.cms.inputs.GetMonitorGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CmsFunctions.getMonitorGroups(GetMonitorGroupsArgs.builder()\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstCmsMonitorGroupId\", example.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cms:getMonitorGroups\n      arguments:\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstCmsMonitorGroupId: ${example.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMonitorGroups.\n","properties":{"dynamicTagRuleId":{"type":"string","description":"The ID of the tag rule.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Monitor Group IDs.\n"},"includeTemplateHistory":{"type":"boolean","description":"The include template history.\n"},"keyword":{"type":"string","description":"The keyword to be matched.\n"},"monitorGroupName":{"type":"string","description":"The name of the application group.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Monitor Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"selectContactGroups":{"type":"boolean","description":"The select contact groups.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"}},"type":{"type":"string","description":"The type of the application group. Valid values: \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ehpcCluster`\" pulumi-lang-dotnet=\"`EhpcCluster`\" pulumi-lang-go=\"`ehpcCluster`\" pulumi-lang-python=\"`ehpc_cluster`\" pulumi-lang-yaml=\"`ehpcCluster`\" pulumi-lang-java=\"`ehpcCluster`\"\u003e`ehpc_cluster`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kubernetes`\" pulumi-lang-dotnet=\"`Kubernetes`\" pulumi-lang-go=\"`kubernetes`\" pulumi-lang-python=\"`kubernetes`\" pulumi-lang-yaml=\"`kubernetes`\" pulumi-lang-java=\"`kubernetes`\"\u003e`kubernetes`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getMonitorGroups.\n","properties":{"dynamicTagRuleId":{"type":"string"},"groups":{"items":{"$ref":"#/types/alicloud:cms/getMonitorGroupsGroup:getMonitorGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"includeTemplateHistory":{"type":"boolean"},"keyword":{"type":"string"},"monitorGroupName":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"selectContactGroups":{"type":"boolean"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"type":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:cms/getNamespaces:getNamespaces":{"description":"This data source provides the Cms Namespaces of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.171.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cms.getNamespaces({\n    ids: [\"example_id\"],\n});\nexport const cmsNamespaceId1 = ids.then(ids =\u003e ids.namespaces?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cms.get_namespaces(ids=[\"example_id\"])\npulumi.export(\"cmsNamespaceId1\", ids.namespaces[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cms.GetNamespaces.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cmsNamespaceId1\"] = ids.Apply(getNamespacesResult =\u003e getNamespacesResult.Namespaces[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cms.GetNamespaces(ctx, \u0026cms.GetNamespacesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cmsNamespaceId1\", ids.Namespaces[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.CmsFunctions;\nimport com.pulumi.alicloud.cms.inputs.GetNamespacesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CmsFunctions.getNamespaces(GetNamespacesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"cmsNamespaceId1\", ids.namespaces()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cms:getNamespaces\n      arguments:\n        ids:\n          - example_id\noutputs:\n  cmsNamespaceId1: ${ids.namespaces[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNamespaces.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Namespace IDs.\n"},"keyword":{"type":"string","description":"The keywords of the \u003cspan pulumi-lang-nodejs=\"`namespace`\" pulumi-lang-dotnet=\"`Namespace`\" pulumi-lang-go=\"`namespace`\" pulumi-lang-python=\"`namespace`\" pulumi-lang-yaml=\"`namespace`\" pulumi-lang-java=\"`namespace`\"\u003e`namespace`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e of the namespace.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNamespaces.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyword":{"type":"string"},"namespaces":{"items":{"$ref":"#/types/alicloud:cms/getNamespacesNamespace:getNamespacesNamespace"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["ids","namespaces","id"],"type":"object"}},"alicloud:cms/getService:getService":{"description":"Using this data source can open CMS service automatically. If the service has been opened, it will return opened.\n\nFor information about CMS and how to use it, see [What is CMS](https://help.aliyun.com/product/28572.html).\n\n\u003e **NOTE:** Available in v1.111.0+\n\n\u003e **DEPRECATED:**  This data source has been deprecated from version `1.219.0`. The Cloud Monitor Service is no longer needed to open in the product dimension and the OpenAPI has been taken [offline](https://api.alibabacloud.com/api/Cms/2019-01-01/OpenCmsService).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.cms.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.cms.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Cms.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cms.GetService(ctx, \u0026cms.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.CmsFunctions;\nimport com.pulumi.alicloud.cms.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = CmsFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:cms:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the CMS service that means you have read and agreed the [CMS Terms of Service](https://help.aliyun.com/document_detail/68185.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:cms/getSiteMonitors:getSiteMonitors":{"description":"This data source provides Cloud Monitor Service Site Monitor available to the user.[What is Site Monitor](https://www.alibabacloud.com/help/en/cms/developer-reference/api-cms-2019-01-01-createsitemonitor)\n\n\u003e **NOTE:** Available since v1.224.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultSiteMonitor = new alicloud.cms.SiteMonitor(\"default\", {\n    address: \"http://www.alibabacloud.com\",\n    taskName: `terraform-example-${defaultInteger.result}`,\n    taskType: \"HTTP\",\n    interval: \"5\",\n    ispCities: [{\n        city: \"546\",\n        isp: \"465\",\n    }],\n    optionsJson: `{\n    \\\\\"http_method\\\\\": \\\\\"get\\\\\",\n    \\\\\"waitTime_after_completion\\\\\": null,\n    \\\\\"ipv6_task\\\\\": false,\n    \\\\\"diagnosis_ping\\\\\": false,\n    \\\\\"diagnosis_mtr\\\\\": false,\n    \\\\\"assertions\\\\\": [\n        {\n            \\\\\"operator\\\\\": \\\\\"lessThan\\\\\",\n            \\\\\"type\\\\\": \\\\\"response_time\\\\\",\n            \\\\\"target\\\\\": 1000\n        }\n    ],\n    \\\\\"time_out\\\\\": 30000\n}\n`,\n});\nconst _default = alicloud.cms.getSiteMonitorsOutput({\n    ids: [defaultSiteMonitor.id],\n    taskType: \"HTTP\",\n});\nexport const alicloudCmsSiteMonitorExampleId = _default.apply(_default =\u003e _default.monitors?.[0]?.taskId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_site_monitor = alicloud.cms.SiteMonitor(\"default\",\n    address=\"http://www.alibabacloud.com\",\n    task_name=f\"terraform-example-{default_integer['result']}\",\n    task_type=\"HTTP\",\n    interval=\"5\",\n    isp_cities=[{\n        \"city\": \"546\",\n        \"isp\": \"465\",\n    }],\n    options_json=\"\"\"{\n    \\\"http_method\\\": \\\"get\\\",\n    \\\"waitTime_after_completion\\\": null,\n    \\\"ipv6_task\\\": false,\n    \\\"diagnosis_ping\\\": false,\n    \\\"diagnosis_mtr\\\": false,\n    \\\"assertions\\\": [\n        {\n            \\\"operator\\\": \\\"lessThan\\\",\n            \\\"type\\\": \\\"response_time\\\",\n            \\\"target\\\": 1000\n        }\n    ],\n    \\\"time_out\\\": 30000\n}\n\"\"\")\ndefault = alicloud.cms.get_site_monitors_output(ids=[default_site_monitor.id],\n    task_type=\"HTTP\")\npulumi.export(\"alicloudCmsSiteMonitorExampleId\", default.monitors[0].task_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultSiteMonitor = new AliCloud.Cms.SiteMonitor(\"default\", new()\n    {\n        Address = \"http://www.alibabacloud.com\",\n        TaskName = $\"terraform-example-{defaultInteger.Result}\",\n        TaskType = \"HTTP\",\n        Interval = \"5\",\n        IspCities = new[]\n        {\n            new AliCloud.Cms.Inputs.SiteMonitorIspCityArgs\n            {\n                City = \"546\",\n                Isp = \"465\",\n            },\n        },\n        OptionsJson = @\"{\n    \\\"\"http_method\\\"\": \\\"\"get\\\"\",\n    \\\"\"waitTime_after_completion\\\"\": null,\n    \\\"\"ipv6_task\\\"\": false,\n    \\\"\"diagnosis_ping\\\"\": false,\n    \\\"\"diagnosis_mtr\\\"\": false,\n    \\\"\"assertions\\\"\": [\n        {\n            \\\"\"operator\\\"\": \\\"\"lessThan\\\"\",\n            \\\"\"type\\\"\": \\\"\"response_time\\\"\",\n            \\\"\"target\\\"\": 1000\n        }\n    ],\n    \\\"\"time_out\\\"\": 30000\n}\n\",\n    });\n\n    var @default = AliCloud.Cms.GetSiteMonitors.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultSiteMonitor.Id,\n        },\n        TaskType = \"HTTP\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCmsSiteMonitorExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getSiteMonitorsResult =\u003e getSiteMonitorsResult.Monitors[0]?.TaskId)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"tf_example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMin: 10000,\nMax: 99999,\n})\nif err != nil {\nreturn err\n}\ndefaultSiteMonitor, err := cms.NewSiteMonitor(ctx, \"default\", \u0026cms.SiteMonitorArgs{\nAddress: pulumi.String(\"http://www.alibabacloud.com\"),\nTaskName: pulumi.Sprintf(\"terraform-example-%v\", defaultInteger.Result),\nTaskType: pulumi.String(\"HTTP\"),\nInterval: pulumi.String(\"5\"),\nIspCities: cms.SiteMonitorIspCityArray{\n\u0026cms.SiteMonitorIspCityArgs{\nCity: pulumi.String(\"546\"),\nIsp: pulumi.String(\"465\"),\n},\n},\nOptionsJson: pulumi.String(`{\n    \\\"http_method\\\": \\\"get\\\",\n    \\\"waitTime_after_completion\\\": null,\n    \\\"ipv6_task\\\": false,\n    \\\"diagnosis_ping\\\": false,\n    \\\"diagnosis_mtr\\\": false,\n    \\\"assertions\\\": [\n        {\n            \\\"operator\\\": \\\"lessThan\\\",\n            \\\"type\\\": \\\"response_time\\\",\n            \\\"target\\\": 1000\n        }\n    ],\n    \\\"time_out\\\": 30000\n}\n`),\n})\nif err != nil {\nreturn err\n}\n_default := cms.GetSiteMonitorsOutput(ctx, cms.GetSiteMonitorsOutputArgs{\nIds: pulumi.StringArray{\ndefaultSiteMonitor.ID(),\n},\nTaskType: pulumi.String(\"HTTP\"),\n}, nil);\nctx.Export(\"alicloudCmsSiteMonitorExampleId\", _default.ApplyT(func(_default cms.GetSiteMonitorsResult) (*string, error) {\nreturn \u0026default.Monitors[0].TaskId, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.cms.SiteMonitor;\nimport com.pulumi.alicloud.cms.SiteMonitorArgs;\nimport com.pulumi.alicloud.cms.inputs.SiteMonitorIspCityArgs;\nimport com.pulumi.alicloud.cms.CmsFunctions;\nimport com.pulumi.alicloud.cms.inputs.GetSiteMonitorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultSiteMonitor = new SiteMonitor(\"defaultSiteMonitor\", SiteMonitorArgs.builder()\n            .address(\"http://www.alibabacloud.com\")\n            .taskName(String.format(\"terraform-example-%s\", defaultInteger.result()))\n            .taskType(\"HTTP\")\n            .interval(\"5\")\n            .ispCities(SiteMonitorIspCityArgs.builder()\n                .city(\"546\")\n                .isp(\"465\")\n                .build())\n            .optionsJson(\"\"\"\n{\n    \\\"http_method\\\": \\\"get\\\",\n    \\\"waitTime_after_completion\\\": null,\n    \\\"ipv6_task\\\": false,\n    \\\"diagnosis_ping\\\": false,\n    \\\"diagnosis_mtr\\\": false,\n    \\\"assertions\\\": [\n        {\n            \\\"operator\\\": \\\"lessThan\\\",\n            \\\"type\\\": \\\"response_time\\\",\n            \\\"target\\\": 1000\n        }\n    ],\n    \\\"time_out\\\": 30000\n}\n            \"\"\")\n            .build());\n\n        final var default = CmsFunctions.getSiteMonitors(GetSiteMonitorsArgs.builder()\n            .ids(defaultSiteMonitor.id())\n            .taskType(\"HTTP\")\n            .build());\n\n        ctx.export(\"alicloudCmsSiteMonitorExampleId\", default_.applyValue(_default_ -\u003e _default_.monitors()[0].taskId()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultSiteMonitor:\n    type: alicloud:cms:SiteMonitor\n    name: default\n    properties:\n      address: http://www.alibabacloud.com\n      taskName: terraform-example-${defaultInteger.result}\n      taskType: HTTP\n      interval: 5\n      ispCities:\n        - city: '546'\n          isp: '465'\n      optionsJson: |\n        {\n            \\\"http_method\\\": \\\"get\\\",\n            \\\"waitTime_after_completion\\\": null,\n            \\\"ipv6_task\\\": false,\n            \\\"diagnosis_ping\\\": false,\n            \\\"diagnosis_mtr\\\": false,\n            \\\"assertions\\\": [\n                {\n                    \\\"operator\\\": \\\"lessThan\\\",\n                    \\\"type\\\": \\\"response_time\\\",\n                    \\\"target\\\": 1000\n                }\n            ],\n            \\\"time_out\\\": 30000\n        }\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cms:getSiteMonitors\n      arguments:\n        ids:\n          - ${defaultSiteMonitor.id}\n        taskType: HTTP\noutputs:\n  alicloudCmsSiteMonitorExampleId: ${default.monitors[0].taskId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSiteMonitors.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Site Monitor IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"taskId":{"type":"string","description":"Task ID.\n"},"taskType":{"type":"string","description":"Task Type.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSiteMonitors.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Site Monitor IDs.\n","items":{"type":"string"},"type":"array"},"monitors":{"description":"A list of Site Monitor Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cms/getSiteMonitorsMonitor:getSiteMonitorsMonitor"},"type":"array"},"outputFile":{"type":"string"},"taskId":{"description":"Task Id.\n","type":"string"},"taskType":{"description":"Task Type.\n","type":"string"}},"required":["ids","monitors","id"],"type":"object"}},"alicloud:cms/getSlsGroups:getSlsGroups":{"description":"This data source provides the Cms Sls Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.171.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cms.getSlsGroups({\n    ids: [\"example_id\"],\n});\nexport const cmsSlsGroupId1 = ids.then(ids =\u003e ids.groups?.[0]?.id);\nconst nameRegex = alicloud.cms.getSlsGroups({\n    nameRegex: \"^my-SlsGroup\",\n});\nexport const cmsSlsGroupId2 = nameRegex.then(nameRegex =\u003e nameRegex.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cms.get_sls_groups(ids=[\"example_id\"])\npulumi.export(\"cmsSlsGroupId1\", ids.groups[0].id)\nname_regex = alicloud.cms.get_sls_groups(name_regex=\"^my-SlsGroup\")\npulumi.export(\"cmsSlsGroupId2\", name_regex.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Cms.GetSlsGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Cms.GetSlsGroups.Invoke(new()\n    {\n        NameRegex = \"^my-SlsGroup\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"cmsSlsGroupId1\"] = ids.Apply(getSlsGroupsResult =\u003e getSlsGroupsResult.Groups[0]?.Id),\n        [\"cmsSlsGroupId2\"] = nameRegex.Apply(getSlsGroupsResult =\u003e getSlsGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cms.GetSlsGroups(ctx, \u0026cms.GetSlsGroupsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cmsSlsGroupId1\", ids.Groups[0].Id)\n\t\tnameRegex, err := cms.GetSlsGroups(ctx, \u0026cms.GetSlsGroupsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-SlsGroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"cmsSlsGroupId2\", nameRegex.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cms.CmsFunctions;\nimport com.pulumi.alicloud.cms.inputs.GetSlsGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CmsFunctions.getSlsGroups(GetSlsGroupsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"cmsSlsGroupId1\", ids.groups()[0].id());\n        final var nameRegex = CmsFunctions.getSlsGroups(GetSlsGroupsArgs.builder()\n            .nameRegex(\"^my-SlsGroup\")\n            .build());\n\n        ctx.export(\"cmsSlsGroupId2\", nameRegex.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cms:getSlsGroups\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cms:getSlsGroups\n      arguments:\n        nameRegex: ^my-SlsGroup\noutputs:\n  cmsSlsGroupId1: ${ids.groups[0].id}\n  cmsSlsGroupId2: ${nameRegex.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSlsGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Sls Group IDs. Its element value is same as Sls Group Name.\n"},"keyword":{"type":"string","description":"The keywords of the \u003cspan pulumi-lang-nodejs=\"`slsGroupName`\" pulumi-lang-dotnet=\"`SlsGroupName`\" pulumi-lang-go=\"`slsGroupName`\" pulumi-lang-python=\"`sls_group_name`\" pulumi-lang-yaml=\"`slsGroupName`\" pulumi-lang-java=\"`slsGroupName`\"\u003e`sls_group_name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`slsGroupDescription`\" pulumi-lang-dotnet=\"`SlsGroupDescription`\" pulumi-lang-go=\"`slsGroupDescription`\" pulumi-lang-python=\"`sls_group_description`\" pulumi-lang-yaml=\"`slsGroupDescription`\" pulumi-lang-java=\"`slsGroupDescription`\"\u003e`sls_group_description`\u003c/span\u003e of the Sls Group.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Sls Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSlsGroups.\n","properties":{"groups":{"items":{"$ref":"#/types/alicloud:cms/getSlsGroupsGroup:getSlsGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyword":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:compute/getNestServiceInstances:getNestServiceInstances":{"description":"This data source provides the Compute Nest Service Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.205.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.compute.getNestServiceInstances({\n    ids: [\"example_id\"],\n});\nexport const armsPrometheisId1 = ids.then(ids =\u003e ids.serviceInstances?.[0]?.id);\nconst nameRegex = alicloud.compute.getNestServiceInstances({\n    nameRegex: \"tf-example\",\n});\nexport const armsPrometheisId2 = nameRegex.then(nameRegex =\u003e nameRegex.serviceInstances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.compute.get_nest_service_instances(ids=[\"example_id\"])\npulumi.export(\"armsPrometheisId1\", ids.service_instances[0].id)\nname_regex = alicloud.compute.get_nest_service_instances(name_regex=\"tf-example\")\npulumi.export(\"armsPrometheisId2\", name_regex.service_instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Compute.GetNestServiceInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Compute.GetNestServiceInstances.Invoke(new()\n    {\n        NameRegex = \"tf-example\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"armsPrometheisId1\"] = ids.Apply(getNestServiceInstancesResult =\u003e getNestServiceInstancesResult.ServiceInstances[0]?.Id),\n        [\"armsPrometheisId2\"] = nameRegex.Apply(getNestServiceInstancesResult =\u003e getNestServiceInstancesResult.ServiceInstances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := compute.GetNestServiceInstances(ctx, \u0026compute.GetNestServiceInstancesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"armsPrometheisId1\", ids.ServiceInstances[0].Id)\n\t\tnameRegex, err := compute.GetNestServiceInstances(ctx, \u0026compute.GetNestServiceInstancesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"tf-example\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"armsPrometheisId2\", nameRegex.ServiceInstances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.compute.ComputeFunctions;\nimport com.pulumi.alicloud.compute.inputs.GetNestServiceInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ComputeFunctions.getNestServiceInstances(GetNestServiceInstancesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"armsPrometheisId1\", ids.serviceInstances()[0].id());\n        final var nameRegex = ComputeFunctions.getNestServiceInstances(GetNestServiceInstancesArgs.builder()\n            .nameRegex(\"tf-example\")\n            .build());\n\n        ctx.export(\"armsPrometheisId2\", nameRegex.serviceInstances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:compute:getNestServiceInstances\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:compute:getNestServiceInstances\n      arguments:\n        nameRegex: tf-example\noutputs:\n  armsPrometheisId1: ${ids.serviceInstances[0].id}\n  armsPrometheisId2: ${nameRegex.serviceInstances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNestServiceInstances.\n","properties":{"filters":{"type":"array","items":{"$ref":"#/types/alicloud:compute/getNestServiceInstancesFilter:getNestServiceInstancesFilter"},"description":"The conditions that are used to filter. See the following `Block filter`.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Service Instance IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Service Instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the Service Instance. Valid Values: `Created`, `Deploying`, `DeployedFailed`, `Deployed`, `Upgrading`, `Deleting`, `Deleted`, `DeletedFailed`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getNestServiceInstances.\n","properties":{"filters":{"items":{"$ref":"#/types/alicloud:compute/getNestServiceInstancesFilter:getNestServiceInstancesFilter"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Service Instance names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"serviceInstances":{"description":"A list of Service Instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:compute/getNestServiceInstancesServiceInstance:getNestServiceInstancesServiceInstance"},"type":"array"},"status":{"description":"The status of the Service Instance.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tag of the Service Instance.\n","type":"object"}},"required":["ids","names","serviceInstances","id"],"type":"object"}},"alicloud:cr/getChains:getChains":{"description":"This data source provides the Cr Chains of the current Alibaba Cloud user.\n\nFor information about CR Chains and how to use it, see [What is Chain](https://www.alibabacloud.com/help/en/doc-detail/357821.html).\n\n\u003e **NOTE:** Available in v1.161.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cr.getChains({\n    instanceId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const crChainId1 = ids.then(ids =\u003e ids.chains?.[0]?.id);\nconst nameRegex = alicloud.cr.getChains({\n    instanceId: \"example_value\",\n    nameRegex: \"^my-Chain\",\n});\nexport const crChainId2 = nameRegex.then(nameRegex =\u003e nameRegex.chains?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cr.get_chains(instance_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"crChainId1\", ids.chains[0].id)\nname_regex = alicloud.cr.get_chains(instance_id=\"example_value\",\n    name_regex=\"^my-Chain\")\npulumi.export(\"crChainId2\", name_regex.chains[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.CR.GetChains.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.CR.GetChains.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n        NameRegex = \"^my-Chain\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"crChainId1\"] = ids.Apply(getChainsResult =\u003e getChainsResult.Chains[0]?.Id),\n        [\"crChainId2\"] = nameRegex.Apply(getChainsResult =\u003e getChainsResult.Chains[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cr.GetChains(ctx, \u0026cr.GetChainsArgs{\n\t\t\tInstanceId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"crChainId1\", ids.Chains[0].Id)\n\t\tnameRegex, err := cr.GetChains(ctx, \u0026cr.GetChainsArgs{\n\t\t\tInstanceId: \"example_value\",\n\t\t\tNameRegex:  pulumi.StringRef(\"^my-Chain\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"crChainId2\", nameRegex.Chains[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cr.CrFunctions;\nimport com.pulumi.alicloud.cr.inputs.GetChainsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CrFunctions.getChains(GetChainsArgs.builder()\n            .instanceId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"crChainId1\", ids.chains()[0].id());\n        final var nameRegex = CrFunctions.getChains(GetChainsArgs.builder()\n            .instanceId(\"example_value\")\n            .nameRegex(\"^my-Chain\")\n            .build());\n\n        ctx.export(\"crChainId2\", nameRegex.chains()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cr:getChains\n      arguments:\n        instanceId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:cr:getChains\n      arguments:\n        instanceId: example_value\n        nameRegex: ^my-Chain\noutputs:\n  crChainId1: ${ids.chains[0].id}\n  crChainId2: ${nameRegex.chains[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getChains.\n","properties":{"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Chain IDs.\n"},"instanceId":{"type":"string","description":"The ID of CR Enterprise Edition instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Chain name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"repoName":{"type":"string","description":"The name of CR Enterprise Edition repository.\n"},"repoNamespaceName":{"type":"string","description":"The name of CR Enterprise Edition namespace.\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getChains.\n","properties":{"chains":{"description":"A list of Cr Chains. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cr/getChainsChain:getChainsChain"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Chain IDs.\n","items":{"type":"string"},"type":"array"},"instanceId":{"description":"The ID of CR Enterprise Edition instance.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Chain names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"repoName":{"type":"string"},"repoNamespaceName":{"type":"string"}},"required":["chains","ids","instanceId","names","id"],"type":"object"}},"alicloud:cr/getChartNamespaces:getChartNamespaces":{"description":"This data source provides the Cr Chart Namespaces of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.149.0+.\n\n","inputs":{"description":"A collection of arguments for invoking getChartNamespaces.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of matched Container Registry Enterprise Edition namespaces.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by name space name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getChartNamespaces.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"namespaces":{"items":{"$ref":"#/types/alicloud:cr/getChartNamespacesNamespace:getChartNamespacesNamespace"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","instanceId","names","namespaces","id"],"type":"object"}},"alicloud:cr/getChartRepositories:getChartRepositories":{"description":"This data source provides the Cr Chart Repositories of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.149.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cr.getChartRepositories({\n    instanceId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const crChartRepositoryId1 = _default.ids[0];\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cr.get_chart_repositories(instance_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"crChartRepositoryId1\", default[\"ids\"][0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.CR.GetChartRepositories.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"crChartRepositoryId1\"] = @default.Ids[0],\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cr.GetChartRepositories(ctx, \u0026cr.GetChartRepositoriesArgs{\n\t\t\tInstanceId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"crChartRepositoryId1\", _default.Ids[0])\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cr.CrFunctions;\nimport com.pulumi.alicloud.cr.inputs.GetChartRepositoriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CrFunctions.getChartRepositories(GetChartRepositoriesArgs.builder()\n            .instanceId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"crChartRepositoryId1\", default_.ids()[0]);\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cr:getChartRepositories\n      arguments:\n        instanceId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\noutputs:\n  crChartRepositoryId1: ${default.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getChartRepositories.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of matched Container Registry Enterprise Edition repositories.\n"},"instanceId":{"type":"string","description":"InstanceId.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by repository name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getChartRepositories.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"repositories":{"items":{"$ref":"#/types/alicloud:cr/getChartRepositoriesRepository:getChartRepositoriesRepository"},"type":"array"}},"required":["ids","instanceId","names","repositories","id"],"type":"object"}},"alicloud:cr/getEndpointAclPolicies:getEndpointAclPolicies":{"description":"This data source provides the Cr Endpoint Acl Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.139.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cr.getEndpointAclPolicies({\n    instanceId: \"example_value\",\n    endpointType: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const crEndpointAclPolicyId1 = ids.then(ids =\u003e ids.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cr.get_endpoint_acl_policies(instance_id=\"example_value\",\n    endpoint_type=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"crEndpointAclPolicyId1\", ids.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.CR.GetEndpointAclPolicies.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n        EndpointType = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"crEndpointAclPolicyId1\"] = ids.Apply(getEndpointAclPoliciesResult =\u003e getEndpointAclPoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cr.GetEndpointAclPolicies(ctx, \u0026cr.GetEndpointAclPoliciesArgs{\n\t\t\tInstanceId:   \"example_value\",\n\t\t\tEndpointType: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"crEndpointAclPolicyId1\", ids.Policies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cr.CrFunctions;\nimport com.pulumi.alicloud.cr.inputs.GetEndpointAclPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CrFunctions.getEndpointAclPolicies(GetEndpointAclPoliciesArgs.builder()\n            .instanceId(\"example_value\")\n            .endpointType(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"crEndpointAclPolicyId1\", ids.policies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cr:getEndpointAclPolicies\n      arguments:\n        instanceId: example_value\n        endpointType: example_value\n        ids:\n          - example_value-1\n          - example_value-2\noutputs:\n  crEndpointAclPolicyId1: ${ids.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEndpointAclPolicies.\n","properties":{"endpointType":{"type":"string","description":"The type of endpoint. Valid values: \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Endpoint Acl Policy IDs.\n"},"instanceId":{"type":"string","description":"The ID of the CR Instance.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["endpointType","instanceId"]},"outputs":{"description":"A collection of values returned by getEndpointAclPolicies.\n","properties":{"endpointType":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"outputFile":{"type":"string"},"policies":{"items":{"$ref":"#/types/alicloud:cr/getEndpointAclPoliciesPolicy:getEndpointAclPoliciesPolicy"},"type":"array"}},"required":["endpointType","ids","instanceId","policies","id"],"type":"object"}},"alicloud:cr/getEndpointAclService:getEndpointAclService":{"description":"This data source provides the CR Endpoint Acl Service of the current Alibaba Cloud user.\n\nFor information about Event Bridge and how to use it, see [What is CR Endpoint Acl](https://www.alibabacloud.com/help/en/doc-detail/142246.htm).\n\n\u003e **NOTE:** Available in v1.139.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.cr.getEndpointAclService({\n    endpointType: \"internet\",\n    enable: true,\n    instanceId: \"example_id\",\n    moduleName: \"Registry\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.cr.get_endpoint_acl_service(endpoint_type=\"internet\",\n    enable=True,\n    instance_id=\"example_id\",\n    module_name=\"Registry\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.CR.GetEndpointAclService.Invoke(new()\n    {\n        EndpointType = \"internet\",\n        Enable = true,\n        InstanceId = \"example_id\",\n        ModuleName = \"Registry\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cr.GetEndpointAclService(ctx, \u0026cr.GetEndpointAclServiceArgs{\n\t\t\tEndpointType: \"internet\",\n\t\t\tEnable:       true,\n\t\t\tInstanceId:   \"example_id\",\n\t\t\tModuleName:   pulumi.StringRef(\"Registry\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cr.CrFunctions;\nimport com.pulumi.alicloud.cr.inputs.GetEndpointAclServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = CrFunctions.getEndpointAclService(GetEndpointAclServiceArgs.builder()\n            .endpointType(\"internet\")\n            .enable(true)\n            .instanceId(\"example_id\")\n            .moduleName(\"Registry\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:cr:getEndpointAclService\n      arguments:\n        endpointType: internet\n        enable: true\n        instanceId: example_id\n        moduleName: Registry\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEndpointAclService.\n","properties":{"enable":{"type":"boolean","description":"Whether to enable Acl Service, Setting the value to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to enable the acl service. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"endpointType":{"type":"string","description":"The type of endpoint. Valid values: \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e.\n"},"instanceId":{"type":"string","description":"The ID of the CR Instance.\n"},"moduleName":{"type":"string","description":"The ModuleName. Valid values: `Registry`.\n\n\u003e **NOTE:** After You enable access over the Internet, the Classless Inter-Domain Routing (CIDR) block `127.0.0.1/32` is automatically added to the whitelist.\n\n\u003e **NOTE:** You may want to allow all ECS instances to access the Container Registry Enterprise Edition instance over the Internet. To achieve this purpose, you can enable access over the Internet and delete all IP addresses from the whitelist for Internet access. After you perform the preceding operation, the Container Registry Enterprise Edition instance is completely exposed to the Internet and may be attacked.\n"}},"type":"object","required":["enable","endpointType","instanceId"]},"outputs":{"description":"A collection of values returned by getEndpointAclService.\n","properties":{"enable":{"type":"boolean"},"endpointType":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceId":{"type":"string"},"moduleName":{"type":"string"},"status":{"type":"string"}},"required":["enable","endpointType","instanceId","status","id"],"type":"object"}},"alicloud:cr/getNamespaces:getNamespaces":{"description":"This data source provides a list Container Registry namespaces on Alibaba Cloud.\n\n\u003e **NOTE:** Available in v1.35.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst myNamespaces = alicloud.cr.getNamespaces({\n    nameRegex: \"my-namespace\",\n    outputFile: \"my-namespace-json\",\n});\nexport const output = myNamespaces.then(myNamespaces =\u003e myNamespaces.namespaces);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nmy_namespaces = alicloud.cr.get_namespaces(name_regex=\"my-namespace\",\n    output_file=\"my-namespace-json\")\npulumi.export(\"output\", my_namespaces.namespaces)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var myNamespaces = AliCloud.CR.GetNamespaces.Invoke(new()\n    {\n        NameRegex = \"my-namespace\",\n        OutputFile = \"my-namespace-json\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"output\"] = myNamespaces.Apply(getNamespacesResult =\u003e getNamespacesResult.Namespaces),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tmyNamespaces, err := cr.GetNamespaces(ctx, \u0026cr.GetNamespacesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"my-namespace\"),\n\t\t\tOutputFile: pulumi.StringRef(\"my-namespace-json\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"output\", myNamespaces.Namespaces)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cr.CrFunctions;\nimport com.pulumi.alicloud.cr.inputs.GetNamespacesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var myNamespaces = CrFunctions.getNamespaces(GetNamespacesArgs.builder()\n            .nameRegex(\"my-namespace\")\n            .outputFile(\"my-namespace-json\")\n            .build());\n\n        ctx.export(\"output\", myNamespaces.namespaces());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  myNamespaces:\n    fn::invoke:\n      function: alicloud:cr:getNamespaces\n      arguments:\n        nameRegex: my-namespace\n        outputFile: my-namespace-json\noutputs:\n  output: ${myNamespaces.namespaces}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNamespaces.\n","properties":{"nameRegex":{"type":"string","description":"A regex string to filter results by namespace name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNamespaces.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of matched Container Registry namespaces. Its element is a namespace name.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of namespace names.\n","items":{"type":"string"},"type":"array"},"namespaces":{"description":"A list of matched Container Registry namespaces. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cr/getNamespacesNamespace:getNamespacesNamespace"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","names","namespaces","id"],"type":"object"}},"alicloud:cr/getRepos:getRepos":{"description":"This data source provides a list Container Registry repositories on Alibaba Cloud.\n\n\u003e **NOTE:** Available in v1.35.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst myRepos = alicloud.cr.getRepos({\n    nameRegex: \"my-repos\",\n    outputFile: \"my-repo-json\",\n});\nexport const output = myRepos.then(myRepos =\u003e myRepos.repos);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nmy_repos = alicloud.cr.get_repos(name_regex=\"my-repos\",\n    output_file=\"my-repo-json\")\npulumi.export(\"output\", my_repos.repos)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var myRepos = AliCloud.CR.GetRepos.Invoke(new()\n    {\n        NameRegex = \"my-repos\",\n        OutputFile = \"my-repo-json\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"output\"] = myRepos.Apply(getReposResult =\u003e getReposResult.Repos),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tmyRepos, err := cr.GetRepos(ctx, \u0026cr.GetReposArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"my-repos\"),\n\t\t\tOutputFile: pulumi.StringRef(\"my-repo-json\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"output\", myRepos.Repos)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cr.CrFunctions;\nimport com.pulumi.alicloud.cr.inputs.GetReposArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var myRepos = CrFunctions.getRepos(GetReposArgs.builder()\n            .nameRegex(\"my-repos\")\n            .outputFile(\"my-repo-json\")\n            .build());\n\n        ctx.export(\"output\", myRepos.repos());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  myRepos:\n    fn::invoke:\n      function: alicloud:cr:getRepos\n      arguments:\n        nameRegex: my-repos\n        outputFile: my-repo-json\noutputs:\n  output: ${myRepos.repos}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRepos.\n","properties":{"enableDetails":{"type":"boolean","description":"Boolean, false by default, only repository attributes are exported. Set to true if domain list and tags belong to this repository are needed. See \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e in attributes.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by repository name.\n"},"namespace":{"type":"string","description":"Name of container registry namespace where the repositories are located in.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRepos.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of matched Container Registry Repositories. Its element is set to \u003cspan pulumi-lang-nodejs=\"`names`\" pulumi-lang-dotnet=\"`Names`\" pulumi-lang-go=\"`names`\" pulumi-lang-python=\"`names`\" pulumi-lang-yaml=\"`names`\" pulumi-lang-java=\"`names`\"\u003e`names`\u003c/span\u003e.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of repository names.\n","items":{"type":"string"},"type":"array"},"namespace":{"description":"Name of container registry namespace where repo is located.\n","type":"string"},"outputFile":{"type":"string"},"repos":{"description":"A list of matched Container Registry Namespaces. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cr/getReposRepo:getReposRepo"},"type":"array"}},"required":["ids","names","repos","id"],"type":"object"}},"alicloud:cr/getService:getService":{"description":"Using this data source can open Container Registry (CR) service automatically. If the service has been opened, it will return opened.\n\nFor information about Container Registry (CR) and how to use it, see [What is Container Registry (CR)](https://www.alibabacloud.com/help/en/doc-detail/142759.htm).\n\n\u003e **NOTE:** Available in v1.116.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.cr.getService({\n    enable: \"On\",\n    password: \"1111aaaa\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.cr.get_service(enable=\"On\",\n    password=\"1111aaaa\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.CR.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n        Password = \"1111aaaa\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cr.GetService(ctx, \u0026cr.GetServiceArgs{\n\t\t\tEnable:   pulumi.StringRef(\"On\"),\n\t\t\tPassword: \"1111aaaa\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cr.CrFunctions;\nimport com.pulumi.alicloud.cr.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = CrFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .password(\"1111aaaa\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:cr:getService\n      arguments:\n        enable: On\n        password: 1111aaaa\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n"},"password":{"type":"string","description":"The user password. The password must be 8 to 32 characters in length, and must contain at least two of the following character types: letters, special characters, and digits.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the Container Registry (CR) service that means you have read and agreed the [Container Registry (CR) Terms of Service](https://help.aliyun.com/document_detail/190602.html). The service can not closed once it is opened.\n"}},"type":"object","required":["password"]},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"password":{"type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["password","status","id"],"type":"object"}},"alicloud:cr/getVpcEndpointLinkedVpcs:getVpcEndpointLinkedVpcs":{"description":"This data source provides the CR Vpc Endpoint Linked Vpcs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.199.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.cr.getVpcEndpointLinkedVpcs({\n    ids: [\"example_id\"],\n    instanceId: \"your_cr_instance_id\",\n    moduleName: \"Registry\",\n});\nexport const alicloudCrVpcEndpointLinkedVpcsId1 = ids.then(ids =\u003e ids.vpcEndpointLinkedVpcs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.cr.get_vpc_endpoint_linked_vpcs(ids=[\"example_id\"],\n    instance_id=\"your_cr_instance_id\",\n    module_name=\"Registry\")\npulumi.export(\"alicloudCrVpcEndpointLinkedVpcsId1\", ids.vpc_endpoint_linked_vpcs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.CR.GetVpcEndpointLinkedVpcs.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        InstanceId = \"your_cr_instance_id\",\n        ModuleName = \"Registry\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCrVpcEndpointLinkedVpcsId1\"] = ids.Apply(getVpcEndpointLinkedVpcsResult =\u003e getVpcEndpointLinkedVpcsResult.VpcEndpointLinkedVpcs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := cr.GetVpcEndpointLinkedVpcs(ctx, \u0026cr.GetVpcEndpointLinkedVpcsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tInstanceId: \"your_cr_instance_id\",\n\t\t\tModuleName: \"Registry\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudCrVpcEndpointLinkedVpcsId1\", ids.VpcEndpointLinkedVpcs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cr.CrFunctions;\nimport com.pulumi.alicloud.cr.inputs.GetVpcEndpointLinkedVpcsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = CrFunctions.getVpcEndpointLinkedVpcs(GetVpcEndpointLinkedVpcsArgs.builder()\n            .ids(\"example_id\")\n            .instanceId(\"your_cr_instance_id\")\n            .moduleName(\"Registry\")\n            .build());\n\n        ctx.export(\"alicloudCrVpcEndpointLinkedVpcsId1\", ids.vpcEndpointLinkedVpcs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:cr:getVpcEndpointLinkedVpcs\n      arguments:\n        ids:\n          - example_id\n        instanceId: your_cr_instance_id\n        moduleName: Registry\noutputs:\n  alicloudCrVpcEndpointLinkedVpcsId1: ${ids.vpcEndpointLinkedVpcs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcEndpointLinkedVpcs.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of CR Vpc Endpoint Linked Vpc IDs.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"moduleName":{"type":"string","description":"The name of the module that you want to access. Valid Values:\n- `Registry`: the image repository.\n- `Chart`: a Helm chart.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the Vpc Endpoint Linked Vpc. Valid Values: `CREATING`, `RUNNING`.\n"}},"type":"object","required":["instanceId","moduleName"]},"outputs":{"description":"A collection of values returned by getVpcEndpointLinkedVpcs.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"description":"The ID of the instance.\n","type":"string"},"moduleName":{"description":"The name of the module that you want to access.\n","type":"string"},"outputFile":{"type":"string"},"status":{"description":"The status of the Vpc Endpoint Linked Vpc.\n","type":"string"},"vpcEndpointLinkedVpcs":{"description":"A list of CR Vpc Endpoint Linked Vpcs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cr/getVpcEndpointLinkedVpcsVpcEndpointLinkedVpc:getVpcEndpointLinkedVpcsVpcEndpointLinkedVpc"},"type":"array"}},"required":["ids","instanceId","moduleName","vpcEndpointLinkedVpcs","id"],"type":"object"}},"alicloud:cs/getAckService:getAckService":{"description":"Using this data source can open Container Service (CS) service automatically. If the service has been opened, it will return opened.\n\nFor information about Container Service (CS) and how to use it, see [What is Container Service (CS)](https://www.alibabacloud.com/help/en/product/85222.htm).\n\n\u003e **NOTE:** Available in v1.113.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.cs.getAckService({\n    enable: \"On\",\n    type: \"propayasgo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.cs.get_ack_service(enable=\"On\",\n    type=\"propayasgo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.CS.GetAckService.Invoke(new()\n    {\n        Enable = \"On\",\n        Type = \"propayasgo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cs.GetAckService(ctx, \u0026cs.GetAckServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t\tType:   \"propayasgo\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetAckServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = CsFunctions.getAckService(GetAckServiceArgs.builder()\n            .enable(\"On\")\n            .type(\"propayasgo\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:cs:getAckService\n      arguments:\n        enable: On\n        type: propayasgo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAckService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n"},"type":{"type":"string","description":"Types of services opened. Valid values: \u003cspan pulumi-lang-nodejs=\"`propayasgo`\" pulumi-lang-dotnet=\"`Propayasgo`\" pulumi-lang-go=\"`propayasgo`\" pulumi-lang-python=\"`propayasgo`\" pulumi-lang-yaml=\"`propayasgo`\" pulumi-lang-java=\"`propayasgo`\"\u003e`propayasgo`\u003c/span\u003e: Container service ack Pro managed version, \u003cspan pulumi-lang-nodejs=\"`edgepayasgo`\" pulumi-lang-dotnet=\"`Edgepayasgo`\" pulumi-lang-go=\"`edgepayasgo`\" pulumi-lang-python=\"`edgepayasgo`\" pulumi-lang-yaml=\"`edgepayasgo`\" pulumi-lang-java=\"`edgepayasgo`\"\u003e`edgepayasgo`\u003c/span\u003e: Edge container service, \u003cspan pulumi-lang-nodejs=\"`gspayasgo`\" pulumi-lang-dotnet=\"`Gspayasgo`\" pulumi-lang-go=\"`gspayasgo`\" pulumi-lang-python=\"`gspayasgo`\" pulumi-lang-yaml=\"`gspayasgo`\" pulumi-lang-java=\"`gspayasgo`\"\u003e`gspayasgo`\u003c/span\u003e: Gene computing services.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the Container Service (CS) service that means you have read and agreed the [Container Service (CS) Terms of Service](https://help.aliyun.com/document_detail/157971.html). The service can not closed once it is opened.\n"}},"type":"object","required":["type"]},"outputs":{"description":"A collection of values returned by getAckService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"},"type":{"type":"string"}},"required":["status","type","id"],"type":"object"}},"alicloud:cs/getClusterCredential:getClusterCredential":{"description":"This data source provides Container Service cluster credential on Alibaba Cloud.\n\n\u003e **NOTE:** Available since v1.187.0\n\n\u003e **NOTE:** This datasource can be used on all kinds of ACK clusters, including managed clusters, imported kubernetes clusters, serverless clusters and edge clusters. Please make sure that the target cluster is not in the failed state before using this datasource, since the api server of clusters in the failed state cannot be accessed.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\n// Declare the data source\nconst k8s = alicloud.cs.getManagedKubernetesClusters({\n    nameRegex: \"my-cluster\",\n    enableDetails: false,\n});\nconst auth = k8s.then(k8s =\u003e std.toset({\n    input: k8s.ids,\n})).then(invoke =\u003e .reduce((__obj, [__key, __value]) =\u003e ({ ...__obj, [__key]: alicloud.cs.getClusterCredential({\n    clusterId: __key,\n    temporaryDurationMinutes: 60,\n    outputFile: \"my-auth-json\",\n}) })));\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\n# Declare the data source\nk8s = alicloud.cs.get_managed_kubernetes_clusters(name_regex=\"my-cluster\",\n    enable_details=False)\nauth = {__key: alicloud.cs.get_cluster_credential(cluster_id=__key,\n    temporary_duration_minutes=60,\n    output_file=\"my-auth-json\") for __key, __value in std.toset(input=k8s.ids).result}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var k8s = AliCloud.CS.GetManagedKubernetesClusters.Invoke(new()\n    {\n        NameRegex = \"my-cluster\",\n        EnableDetails = false,\n    });\n\n    var auth = Std.Toset.Invoke(new()\n    {\n        Input = k8s.Apply(getManagedKubernetesClustersResult =\u003e getManagedKubernetesClustersResult.Ids),\n    }).Apply(invoke =\u003e );\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getClusterCredential.\n","properties":{"clusterId":{"type":"string","description":"The id of target cluster.\n"},"outputFile":{"type":"string","description":"File name where to save the returned KubeConfig (after running `pulumi preview`).\n"},"temporaryDurationMinutes":{"type":"integer","description":"Automatic expiration time of the returned credential. The valid value between \u003cspan pulumi-lang-nodejs=\"`15`\" pulumi-lang-dotnet=\"`15`\" pulumi-lang-go=\"`15`\" pulumi-lang-python=\"`15`\" pulumi-lang-yaml=\"`15`\" pulumi-lang-java=\"`15`\"\u003e`15`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`4320`\" pulumi-lang-dotnet=\"`4320`\" pulumi-lang-go=\"`4320`\" pulumi-lang-python=\"`4320`\" pulumi-lang-yaml=\"`4320`\" pulumi-lang-java=\"`4320`\"\u003e`4320`\u003c/span\u003e, in minutes. When this field is omitted, the expiration time will be determined by the system automatically and the result will be in the attributed field \u003cspan pulumi-lang-nodejs=\"`expiration`\" pulumi-lang-dotnet=\"`Expiration`\" pulumi-lang-go=\"`expiration`\" pulumi-lang-python=\"`expiration`\" pulumi-lang-yaml=\"`expiration`\" pulumi-lang-java=\"`expiration`\"\u003e`expiration`\u003c/span\u003e.\n"}},"type":"object","required":["clusterId"]},"outputs":{"description":"A collection of values returned by getClusterCredential.\n","properties":{"certificateAuthority":{"$ref":"#/types/alicloud:cs/getClusterCredentialCertificateAuthority:getClusterCredentialCertificateAuthority","description":"(Available in 1.105.0+) Nested attribute containing certificate authority data for your cluster.\n"},"clusterId":{"description":"The id of target cluster.\n","type":"string"},"clusterName":{"description":"The name of target cluster.\n","type":"string"},"expiration":{"description":"Expiration time of kube config. Format: UTC time in rfc3339.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"kubeConfig":{"description":"(Sensitive) The kube config to use to authenticate with the cluster.\n","secret":true,"type":"string"},"outputFile":{"type":"string"},"temporaryDurationMinutes":{"type":"integer"}},"required":["certificateAuthority","clusterId","clusterName","expiration","kubeConfig","id"],"type":"object"}},"alicloud:cs/getClusters:getClusters":{"description":"This data source provides Ack Cluster available to the user.[What is Cluster](https://next.api.alibabacloud.com/document/CS/2015-12-15/CreateCluster)\n\n\u003e **NOTE:** Available since v1.269.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst zone1 = config.get(\"zone1\") || \"cn-hangzhou-k\";\nconst zone2 = config.get(\"zone2\") || \"cn-hangzhou-g\";\nconst vsw1Cidr = config.get(\"vsw1Cidr\") || \"10.1.0.0/24\";\nconst vsw2Cidr = config.get(\"vsw2Cidr\") || \"10.1.1.0/24\";\nconst containerCidr = config.get(\"containerCidr\") || \"172.17.3.0/24\";\nconst serviceCidr = config.get(\"serviceCidr\") || \"172.17.2.0/24\";\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {cidrBlock: \"10.0.0.0/8\"});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    vpcId: defaultNetwork.id,\n    securityGroupName: \"tf-example-security-group\",\n    securityGroupType: \"normal\",\n});\nconst default0 = new alicloud.vpc.Switch(\"default0\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: vsw1Cidr,\n    zoneId: zone1,\n});\nconst default1 = new alicloud.vpc.Switch(\"default1\", {\n    vpcId: defaultNetwork.id,\n    zoneId: zone2,\n    cidrBlock: vsw2Cidr,\n});\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    podCidr: containerCidr,\n    vswitchIds: [\n        default0.id,\n        default1.id,\n    ],\n    serviceCidr: serviceCidr,\n    securityGroupId: defaultSecurityGroup.id,\n    clusterSpec: \"ack.pro.small\",\n});\nconst _default = alicloud.cs.getClustersOutput({\n    ids: [defaultManagedKubernetes.id],\n    nameRegex: defaultManagedKubernetes.name,\n});\nexport const alicloudCsManagedKubernetesExampleId = _default.apply(_default =\u003e _default.clusters?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nzone1 = config.get(\"zone1\")\nif zone1 is None:\n    zone1 = \"cn-hangzhou-k\"\nzone2 = config.get(\"zone2\")\nif zone2 is None:\n    zone2 = \"cn-hangzhou-g\"\nvsw1_cidr = config.get(\"vsw1Cidr\")\nif vsw1_cidr is None:\n    vsw1_cidr = \"10.1.0.0/24\"\nvsw2_cidr = config.get(\"vsw2Cidr\")\nif vsw2_cidr is None:\n    vsw2_cidr = \"10.1.1.0/24\"\ncontainer_cidr = config.get(\"containerCidr\")\nif container_cidr is None:\n    container_cidr = \"172.17.3.0/24\"\nservice_cidr = config.get(\"serviceCidr\")\nif service_cidr is None:\n    service_cidr = \"172.17.2.0/24\"\ndefault_network = alicloud.vpc.Network(\"default\", cidr_block=\"10.0.0.0/8\")\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    vpc_id=default_network.id,\n    security_group_name=\"tf-example-security-group\",\n    security_group_type=\"normal\")\ndefault0 = alicloud.vpc.Switch(\"default0\",\n    vpc_id=default_network.id,\n    cidr_block=vsw1_cidr,\n    zone_id=zone1)\ndefault1 = alicloud.vpc.Switch(\"default1\",\n    vpc_id=default_network.id,\n    zone_id=zone2,\n    cidr_block=vsw2_cidr)\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    pod_cidr=container_cidr,\n    vswitch_ids=[\n        default0.id,\n        default1.id,\n    ],\n    service_cidr=service_cidr,\n    security_group_id=default_security_group.id,\n    cluster_spec=\"ack.pro.small\")\ndefault = alicloud.cs.get_clusters_output(ids=[default_managed_kubernetes.id],\n    name_regex=default_managed_kubernetes.name)\npulumi.export(\"alicloudCsManagedKubernetesExampleId\", default.clusters[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var zone1 = config.Get(\"zone1\") ?? \"cn-hangzhou-k\";\n    var zone2 = config.Get(\"zone2\") ?? \"cn-hangzhou-g\";\n    var vsw1Cidr = config.Get(\"vsw1Cidr\") ?? \"10.1.0.0/24\";\n    var vsw2Cidr = config.Get(\"vsw2Cidr\") ?? \"10.1.1.0/24\";\n    var containerCidr = config.Get(\"containerCidr\") ?? \"172.17.3.0/24\";\n    var serviceCidr = config.Get(\"serviceCidr\") ?? \"172.17.2.0/24\";\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        CidrBlock = \"10.0.0.0/8\",\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        SecurityGroupName = \"tf-example-security-group\",\n        SecurityGroupType = \"normal\",\n    });\n\n    var default0 = new AliCloud.Vpc.Switch(\"default0\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = vsw1Cidr,\n        ZoneId = zone1,\n    });\n\n    var default1 = new AliCloud.Vpc.Switch(\"default1\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        ZoneId = zone2,\n        CidrBlock = vsw2Cidr,\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        PodCidr = containerCidr,\n        VswitchIds = new[]\n        {\n            default0.Id,\n            default1.Id,\n        },\n        ServiceCidr = serviceCidr,\n        SecurityGroupId = defaultSecurityGroup.Id,\n        ClusterSpec = \"ack.pro.small\",\n    });\n\n    var @default = AliCloud.CS.GetClusters.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultManagedKubernetes.Id,\n        },\n        NameRegex = defaultManagedKubernetes.Name,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCsManagedKubernetesExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getClustersResult =\u003e getClustersResult.Clusters[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nzone1 := \"cn-hangzhou-k\";\nif param := cfg.Get(\"zone1\"); param != \"\"{\nzone1 = param\n}\nzone2 := \"cn-hangzhou-g\";\nif param := cfg.Get(\"zone2\"); param != \"\"{\nzone2 = param\n}\nvsw1Cidr := \"10.1.0.0/24\";\nif param := cfg.Get(\"vsw1Cidr\"); param != \"\"{\nvsw1Cidr = param\n}\nvsw2Cidr := \"10.1.1.0/24\";\nif param := cfg.Get(\"vsw2Cidr\"); param != \"\"{\nvsw2Cidr = param\n}\ncontainerCidr := \"172.17.3.0/24\";\nif param := cfg.Get(\"containerCidr\"); param != \"\"{\ncontainerCidr = param\n}\nserviceCidr := \"172.17.2.0/24\";\nif param := cfg.Get(\"serviceCidr\"); param != \"\"{\nserviceCidr = param\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nCidrBlock: pulumi.String(\"10.0.0.0/8\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nVpcId: defaultNetwork.ID(),\nSecurityGroupName: pulumi.String(\"tf-example-security-group\"),\nSecurityGroupType: pulumi.String(\"normal\"),\n})\nif err != nil {\nreturn err\n}\ndefault0, err := vpc.NewSwitch(ctx, \"default0\", \u0026vpc.SwitchArgs{\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(vsw1Cidr),\nZoneId: pulumi.String(zone1),\n})\nif err != nil {\nreturn err\n}\ndefault1, err := vpc.NewSwitch(ctx, \"default1\", \u0026vpc.SwitchArgs{\nVpcId: defaultNetwork.ID(),\nZoneId: pulumi.String(zone2),\nCidrBlock: pulumi.String(vsw2Cidr),\n})\nif err != nil {\nreturn err\n}\ndefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\nPodCidr: pulumi.String(containerCidr),\nVswitchIds: pulumi.StringArray{\ndefault0.ID(),\ndefault1.ID(),\n},\nServiceCidr: pulumi.String(serviceCidr),\nSecurityGroupId: defaultSecurityGroup.ID(),\nClusterSpec: pulumi.String(\"ack.pro.small\"),\n})\nif err != nil {\nreturn err\n}\n_default := cs.GetClustersOutput(ctx, cs.GetClustersOutputArgs{\nIds: pulumi.StringArray{\ndefaultManagedKubernetes.ID(),\n},\nNameRegex: defaultManagedKubernetes.Name,\n}, nil);\nctx.Export(\"alicloudCsManagedKubernetesExampleId\", _default.ApplyT(func(_default cs.GetClustersResult) (*string, error) {\nreturn \u0026default.Clusters[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var zone1 = config.get(\"zone1\").orElse(\"cn-hangzhou-k\");\n        final var zone2 = config.get(\"zone2\").orElse(\"cn-hangzhou-g\");\n        final var vsw1Cidr = config.get(\"vsw1Cidr\").orElse(\"10.1.0.0/24\");\n        final var vsw2Cidr = config.get(\"vsw2Cidr\").orElse(\"10.1.1.0/24\");\n        final var containerCidr = config.get(\"containerCidr\").orElse(\"172.17.3.0/24\");\n        final var serviceCidr = config.get(\"serviceCidr\").orElse(\"172.17.2.0/24\");\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .cidrBlock(\"10.0.0.0/8\")\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .securityGroupName(\"tf-example-security-group\")\n            .securityGroupType(\"normal\")\n            .build());\n\n        var default0 = new Switch(\"default0\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(vsw1Cidr)\n            .zoneId(zone1)\n            .build());\n\n        var default1 = new Switch(\"default1\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .zoneId(zone2)\n            .cidrBlock(vsw2Cidr)\n            .build());\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .podCidr(containerCidr)\n            .vswitchIds(            \n                default0.id(),\n                default1.id())\n            .serviceCidr(serviceCidr)\n            .securityGroupId(defaultSecurityGroup.id())\n            .clusterSpec(\"ack.pro.small\")\n            .build());\n\n        final var default = CsFunctions.getClusters(GetClustersArgs.builder()\n            .ids(defaultManagedKubernetes.id())\n            .nameRegex(defaultManagedKubernetes.name())\n            .build());\n\n        ctx.export(\"alicloudCsManagedKubernetesExampleId\", default_.applyValue(_default_ -\u003e _default_.clusters()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  zone1:\n    type: string\n    default: cn-hangzhou-k\n  zone2:\n    type: string\n    default: cn-hangzhou-g\n  vsw1Cidr:\n    type: string\n    default: 10.1.0.0/24\n  vsw2Cidr:\n    type: string\n    default: 10.1.1.0/24\n  containerCidr:\n    type: string\n    default: 172.17.3.0/24\n  serviceCidr:\n    type: string\n    default: 172.17.2.0/24\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      cidrBlock: 10.0.0.0/8\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      securityGroupName: tf-example-security-group\n      securityGroupType: normal\n  default0:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: ${vsw1Cidr}\n      zoneId: ${zone1}\n  default1:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${zone2}\n      cidrBlock: ${vsw2Cidr}\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      podCidr: ${containerCidr}\n      vswitchIds:\n        - ${default0.id}\n        - ${default1.id}\n      serviceCidr: ${serviceCidr}\n      securityGroupId: ${defaultSecurityGroup.id}\n      clusterSpec: ack.pro.small\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cs:getClusters\n      arguments:\n        ids:\n          - ${defaultManagedKubernetes.id}\n        nameRegex: ${defaultManagedKubernetes.name}\noutputs:\n  alicloudCsManagedKubernetesExampleId: ${default.clusters[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getClusters.\n","properties":{"clusterId":{"type":"string","description":"The cluster ID.\n"},"clusterName":{"type":"string","description":"Custom cluster name.\n"},"clusterSpec":{"type":"string","description":"The specification of the clusters to query. Valid values:\n- `ack.pro.small`: ACK Pro clusters.\n- `ack.standard`: ACK Basic clusters.\n"},"clusterType":{"type":"string","description":"The type of the clusters to query. Valid values:\n- `Kubernetes`: ACK dedicated clusters.\n- `ManagedKubernetes`: ACK managed clusters. ACK managed clusters include ACK Basic clusters, ACK Pro clusters, ACK Serverless Basic clusters, ACK Serverless Pro clusters, ACK Edge Basic clusters, ACK Edge Pro clusters, and ACK Lingjun Pro clusters.\n- `ExternalKubernetes`: registered clusters.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Cluster IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by cluster name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"profile":{"type":"string","description":"The subtype of the clusters to query. Valid values:\n- `Default`: ACK managed clusters. ACK managed clusters include ACK Basic clusters and ACK Pro clusters.\n- `Edge`: ACK Edge clusters. ACK Edge clusters include ACK Edge Basic clusters and ACK Edge Pro clusters.\n- `Serverless`: ACK Serverless clusters. ACK Serverless clusters include ACK Serverless Basic clusters and ACK Serverless Pro clusters.\n- `Lingjun`: ACK Lingjun Pro clusters.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getClusters.\n","properties":{"clusterId":{"description":"The cluster ID.\n","type":"string"},"clusterName":{"description":"Custom cluster name.\n","type":"string"},"clusterSpec":{"description":"After you set \u003cspan pulumi-lang-nodejs=\"`clusterType`\" pulumi-lang-dotnet=\"`ClusterType`\" pulumi-lang-go=\"`clusterType`\" pulumi-lang-python=\"`cluster_type`\" pulumi-lang-yaml=\"`clusterType`\" pulumi-lang-java=\"`clusterType`\"\u003e`cluster_type`\u003c/span\u003e to `ManagedKubernetes` and configure \u003cspan pulumi-lang-nodejs=\"`profile`\" pulumi-lang-dotnet=\"`Profile`\" pulumi-lang-go=\"`profile`\" pulumi-lang-python=\"`profile`\" pulumi-lang-yaml=\"`profile`\" pulumi-lang-java=\"`profile`\"\u003e`profile`\u003c/span\u003e, you can further specify the cluster specification.\n","type":"string"},"clusterType":{"description":"The cluster type.\n","type":"string"},"clusters":{"description":"A list of Cluster Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cs/getClustersCluster:getClustersCluster"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Cluster IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Clusters.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"profile":{"description":"ACK managed cluster profile.\n","type":"string"}},"required":["clusters","ids","names","id"],"type":"object"}},"alicloud:cs/getEdgeKubernetesClusters:getEdgeKubernetesClusters":{"description":"This data source provides a list Container Service Edge Kubernetes Clusters on Alibaba Cloud.\n\n\u003e **NOTE:** Available since v1.103.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst k8sClusters = alicloud.cs.getEdgeKubernetesClusters({\n    nameRegex: \"my-first-k8s\",\n    outputFile: \"my-first-k8s-json\",\n});\nexport const output = k8sClusters.then(k8sClusters =\u003e k8sClusters.clusters);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nk8s_clusters = alicloud.cs.get_edge_kubernetes_clusters(name_regex=\"my-first-k8s\",\n    output_file=\"my-first-k8s-json\")\npulumi.export(\"output\", k8s_clusters.clusters)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var k8sClusters = AliCloud.CS.GetEdgeKubernetesClusters.Invoke(new()\n    {\n        NameRegex = \"my-first-k8s\",\n        OutputFile = \"my-first-k8s-json\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"output\"] = k8sClusters.Apply(getEdgeKubernetesClustersResult =\u003e getEdgeKubernetesClustersResult.Clusters),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tk8sClusters, err := cs.GetEdgeKubernetesClusters(ctx, \u0026cs.GetEdgeKubernetesClustersArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"my-first-k8s\"),\n\t\t\tOutputFile: pulumi.StringRef(\"my-first-k8s-json\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"output\", k8sClusters.Clusters)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetEdgeKubernetesClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var k8sClusters = CsFunctions.getEdgeKubernetesClusters(GetEdgeKubernetesClustersArgs.builder()\n            .nameRegex(\"my-first-k8s\")\n            .outputFile(\"my-first-k8s-json\")\n            .build());\n\n        ctx.export(\"output\", k8sClusters.clusters());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  k8sClusters:\n    fn::invoke:\n      function: alicloud:cs:getEdgeKubernetesClusters\n      arguments:\n        nameRegex: my-first-k8s\n        outputFile: my-first-k8s-json\noutputs:\n  output: ${k8sClusters.clusters}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEdgeKubernetesClusters.\n","properties":{"enableDetails":{"type":"boolean","description":"Boolean, false by default, only \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e are exported. Set to true if more details are needed, e.g., \u003cspan pulumi-lang-nodejs=\"`masterDiskCategory`\" pulumi-lang-dotnet=\"`MasterDiskCategory`\" pulumi-lang-go=\"`masterDiskCategory`\" pulumi-lang-python=\"`master_disk_category`\" pulumi-lang-yaml=\"`masterDiskCategory`\" pulumi-lang-java=\"`masterDiskCategory`\"\u003e`master_disk_category`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slbInternetEnabled`\" pulumi-lang-dotnet=\"`SlbInternetEnabled`\" pulumi-lang-go=\"`slbInternetEnabled`\" pulumi-lang-python=\"`slb_internet_enabled`\" pulumi-lang-yaml=\"`slbInternetEnabled`\" pulumi-lang-java=\"`slbInternetEnabled`\"\u003e`slb_internet_enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`connections`\" pulumi-lang-dotnet=\"`Connections`\" pulumi-lang-go=\"`connections`\" pulumi-lang-python=\"`connections`\" pulumi-lang-yaml=\"`connections`\" pulumi-lang-java=\"`connections`\"\u003e`connections`\u003c/span\u003e. See full list in attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"Cluster IDs to filter.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by cluster name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEdgeKubernetesClusters.\n","properties":{"clusters":{"description":"A list of matched Kubernetes clusters. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cs/getEdgeKubernetesClustersCluster:getEdgeKubernetesClustersCluster"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of matched Kubernetes clusters' ids.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of matched Kubernetes clusters' names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["clusters","ids","names","id"],"type":"object"}},"alicloud:cs/getKubernetesAddonMetadata:getKubernetesAddonMetadata":{"description":"This data source provides metadata of kubernetes cluster addons.\n\n\u003e **NOTE:** Available in 1.166.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    namePrefix: name,\n    clusterSpec: \"ack.pro.small\",\n    workerVswitchIds: [defaultSwitch.id],\n    newNatGateway: false,\n    podCidr: std.cidrsubnet({\n        input: \"10.0.0.0/8\",\n        newbits: 8,\n        netnum: 36,\n    }).then(invoke =\u003e invoke.result),\n    serviceCidr: std.cidrsubnet({\n        input: \"172.16.0.0/16\",\n        newbits: 4,\n        netnum: 7,\n    }).then(invoke =\u003e invoke.result),\n    slbInternetEnabled: true,\n});\nconst clusterId = defaultManagedKubernetes.id;\nconst defaultGetKubernetesAddonMetadata = alicloud.cs.getKubernetesAddonMetadataOutput({\n    clusterId: clusterId,\n    name: \"nginx-ingress-controller\",\n    version: \"v1.1.2-aliyun.2\",\n});\nexport const addonConfigSchema = defaultGetKubernetesAddonMetadata.apply(defaultGetKubernetesAddonMetadata =\u003e defaultGetKubernetesAddonMetadata.configSchema);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name_prefix=name,\n    cluster_spec=\"ack.pro.small\",\n    worker_vswitch_ids=[default_switch.id],\n    new_nat_gateway=False,\n    pod_cidr=std.cidrsubnet(input=\"10.0.0.0/8\",\n        newbits=8,\n        netnum=36).result,\n    service_cidr=std.cidrsubnet(input=\"172.16.0.0/16\",\n        newbits=4,\n        netnum=7).result,\n    slb_internet_enabled=True)\ncluster_id = default_managed_kubernetes.id\ndefault_get_kubernetes_addon_metadata = alicloud.cs.get_kubernetes_addon_metadata_output(cluster_id=cluster_id,\n    name=\"nginx-ingress-controller\",\n    version=\"v1.1.2-aliyun.2\")\npulumi.export(\"addonConfigSchema\", default_get_kubernetes_addon_metadata.config_schema)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        NamePrefix = name,\n        ClusterSpec = \"ack.pro.small\",\n        WorkerVswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        NewNatGateway = false,\n        PodCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"10.0.0.0/8\",\n            Newbits = 8,\n            Netnum = 36,\n        }).Apply(invoke =\u003e invoke.Result),\n        ServiceCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"172.16.0.0/16\",\n            Newbits = 4,\n            Netnum = 7,\n        }).Apply(invoke =\u003e invoke.Result),\n        SlbInternetEnabled = true,\n    });\n\n    var clusterId = defaultManagedKubernetes.Id;\n\n    var defaultGetKubernetesAddonMetadata = AliCloud.CS.GetKubernetesAddonMetadata.Invoke(new()\n    {\n        ClusterId = clusterId,\n        Name = \"nginx-ingress-controller\",\n        Version = \"v1.1.2-aliyun.2\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"addonConfigSchema\"] = defaultGetKubernetesAddonMetadata.Apply(getKubernetesAddonMetadataResult =\u003e getKubernetesAddonMetadataResult.ConfigSchema),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"10.0.0.0/8\",\n\t\t\tNewbits: 8,\n\t\t\tNetnum:  36,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet1, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"172.16.0.0/16\",\n\t\t\tNewbits: 4,\n\t\t\tNetnum:  7,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\n\t\t\tNamePrefix:  pulumi.String(name),\n\t\t\tClusterSpec: pulumi.String(\"ack.pro.small\"),\n\t\t\tWorkerVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tNewNatGateway:      pulumi.Bool(false),\n\t\t\tPodCidr:            pulumi.String(invokeCidrsubnet.Result),\n\t\t\tServiceCidr:        pulumi.String(invokeCidrsubnet1.Result),\n\t\t\tSlbInternetEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterId := defaultManagedKubernetes.ID()\n\t\tdefaultGetKubernetesAddonMetadata := cs.GetKubernetesAddonMetadataOutput(ctx, cs.GetKubernetesAddonMetadataOutputArgs{\n\t\t\tClusterId: pulumi.String(clusterId),\n\t\t\tName:      pulumi.String(\"nginx-ingress-controller\"),\n\t\t\tVersion:   pulumi.String(\"v1.1.2-aliyun.2\"),\n\t\t}, nil)\n\t\tctx.Export(\"addonConfigSchema\", defaultGetKubernetesAddonMetadata.ApplyT(func(defaultGetKubernetesAddonMetadata cs.GetKubernetesAddonMetadataResult) (*string, error) {\n\t\t\treturn \u0026defaultGetKubernetesAddonMetadata.ConfigSchema, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetKubernetesAddonMetadataArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .namePrefix(name)\n            .clusterSpec(\"ack.pro.small\")\n            .workerVswitchIds(defaultSwitch.id())\n            .newNatGateway(false)\n            .podCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"10.0.0.0/8\")\n                .newbits(8)\n                .netnum(36)\n                .build()).result())\n            .serviceCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"172.16.0.0/16\")\n                .newbits(4)\n                .netnum(7)\n                .build()).result())\n            .slbInternetEnabled(true)\n            .build());\n\n        final var clusterId = defaultManagedKubernetes.id();\n\n        final var defaultGetKubernetesAddonMetadata = CsFunctions.getKubernetesAddonMetadata(GetKubernetesAddonMetadataArgs.builder()\n            .clusterId(clusterId)\n            .name(\"nginx-ingress-controller\")\n            .version(\"v1.1.2-aliyun.2\")\n            .build());\n\n        ctx.export(\"addonConfigSchema\", defaultGetKubernetesAddonMetadata.applyValue(_defaultGetKubernetesAddonMetadata -\u003e _defaultGetKubernetesAddonMetadata.configSchema()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      namePrefix: ${name}\n      clusterSpec: ack.pro.small\n      workerVswitchIds:\n        - ${defaultSwitch.id}\n      newNatGateway: false\n      podCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 10.0.0.0/8\n            newbits: 8\n            netnum: 36\n          return: result\n      serviceCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 172.16.0.0/16\n            newbits: 4\n            netnum: 7\n          return: result\n      slbInternetEnabled: true\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetKubernetesAddonMetadata:\n    fn::invoke:\n      function: alicloud:cs:getKubernetesAddonMetadata\n      arguments:\n        clusterId: ${clusterId}\n        name: nginx-ingress-controller\n        version: v1.1.2-aliyun.2\n  clusterId: ${defaultManagedKubernetes.id}\noutputs:\n  # Output addon configuration that can be customized\n  addonConfigSchema: ${defaultGetKubernetesAddonMetadata.configSchema}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKubernetesAddonMetadata.\n","properties":{"clusterId":{"type":"string","description":"The id of kubernetes cluster.\n"},"name":{"type":"string","description":"The name of the cluster addon. You can get a list of available addons that the cluster can install by using data source \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getKubernetesAddons`\" pulumi-lang-dotnet=\"`alicloud.cs.getKubernetesAddons`\" pulumi-lang-go=\"`cs.getKubernetesAddons`\" pulumi-lang-python=\"`cs_get_kubernetes_addons`\" pulumi-lang-yaml=\"`alicloud.cs.getKubernetesAddons`\" pulumi-lang-java=\"`alicloud.cs.getKubernetesAddons`\"\u003e`alicloud.cs.getKubernetesAddons`\u003c/span\u003e.\n"},"version":{"type":"string","description":"The version of the cluster addon.\n"}},"type":"object","required":["clusterId","name","version"]},"outputs":{"description":"A collection of values returned by getKubernetesAddonMetadata.\n","properties":{"clusterId":{"type":"string"},"configSchema":{"description":"The addon configuration that can be customized. The returned format is the standard json schema. If return empty, it means that the addon does not support custom configuration yet.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"version":{"type":"string"}},"required":["clusterId","configSchema","name","version","id"],"type":"object"}},"alicloud:cs/getKubernetesAddons:getKubernetesAddons":{"description":"This data source provides a list of available addons that the cluster can install.\n\n\u003e **NOTE:** Available since v1.150.0.\n\u003e **NOTE:** From version v1.166.0, support for returning custom configuration of kubernetes cluster addon.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    namePrefix: name,\n    clusterSpec: \"ack.pro.small\",\n    workerVswitchIds: [defaultSwitch.id],\n    newNatGateway: false,\n    podCidr: std.cidrsubnet({\n        input: \"10.0.0.0/8\",\n        newbits: 8,\n        netnum: 36,\n    }).then(invoke =\u003e invoke.result),\n    serviceCidr: std.cidrsubnet({\n        input: \"172.16.0.0/16\",\n        newbits: 4,\n        netnum: 7,\n    }).then(invoke =\u003e invoke.result),\n    slbInternetEnabled: true,\n});\nconst defaultGetKubernetesAddons = alicloud.cs.getKubernetesAddonsOutput({\n    clusterId: defaultManagedKubernetes.id,\n});\nexport const addons = defaultGetKubernetesAddons.apply(defaultGetKubernetesAddons =\u003e defaultGetKubernetesAddons.addons);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name_prefix=name,\n    cluster_spec=\"ack.pro.small\",\n    worker_vswitch_ids=[default_switch.id],\n    new_nat_gateway=False,\n    pod_cidr=std.cidrsubnet(input=\"10.0.0.0/8\",\n        newbits=8,\n        netnum=36).result,\n    service_cidr=std.cidrsubnet(input=\"172.16.0.0/16\",\n        newbits=4,\n        netnum=7).result,\n    slb_internet_enabled=True)\ndefault_get_kubernetes_addons = alicloud.cs.get_kubernetes_addons_output(cluster_id=default_managed_kubernetes.id)\npulumi.export(\"addons\", default_get_kubernetes_addons.addons)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        NamePrefix = name,\n        ClusterSpec = \"ack.pro.small\",\n        WorkerVswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        NewNatGateway = false,\n        PodCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"10.0.0.0/8\",\n            Newbits = 8,\n            Netnum = 36,\n        }).Apply(invoke =\u003e invoke.Result),\n        ServiceCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"172.16.0.0/16\",\n            Newbits = 4,\n            Netnum = 7,\n        }).Apply(invoke =\u003e invoke.Result),\n        SlbInternetEnabled = true,\n    });\n\n    var defaultGetKubernetesAddons = AliCloud.CS.GetKubernetesAddons.Invoke(new()\n    {\n        ClusterId = defaultManagedKubernetes.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"addons\"] = defaultGetKubernetesAddons.Apply(getKubernetesAddonsResult =\u003e getKubernetesAddonsResult.Addons),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(name),\n\t\t\tCidrBlock:   pulumi.String(\"10.4.0.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"10.0.0.0/8\",\n\t\t\tNewbits: 8,\n\t\t\tNetnum:  36,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrsubnet1, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\n\t\t\tInput:   \"172.16.0.0/16\",\n\t\t\tNewbits: 4,\n\t\t\tNetnum:  7,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\n\t\t\tNamePrefix:  pulumi.String(name),\n\t\t\tClusterSpec: pulumi.String(\"ack.pro.small\"),\n\t\t\tWorkerVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t\tNewNatGateway:      pulumi.Bool(false),\n\t\t\tPodCidr:            pulumi.String(invokeCidrsubnet.Result),\n\t\t\tServiceCidr:        pulumi.String(invokeCidrsubnet1.Result),\n\t\t\tSlbInternetEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetKubernetesAddons := cs.GetKubernetesAddonsOutput(ctx, cs.GetKubernetesAddonsOutputArgs{\n\t\t\tClusterId: defaultManagedKubernetes.ID(),\n\t\t}, nil)\n\t\tctx.Export(\"addons\", defaultGetKubernetesAddons.ApplyT(func(defaultGetKubernetesAddons cs.GetKubernetesAddonsResult) ([]cs.GetKubernetesAddonsAddon, error) {\n\t\t\treturn []cs.GetKubernetesAddonsAddon(defaultGetKubernetesAddons.Addons), nil\n\t\t}).([]cs.GetKubernetesAddonsAddonOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetKubernetesAddonsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .namePrefix(name)\n            .clusterSpec(\"ack.pro.small\")\n            .workerVswitchIds(defaultSwitch.id())\n            .newNatGateway(false)\n            .podCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"10.0.0.0/8\")\n                .newbits(8)\n                .netnum(36)\n                .build()).result())\n            .serviceCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"172.16.0.0/16\")\n                .newbits(4)\n                .netnum(7)\n                .build()).result())\n            .slbInternetEnabled(true)\n            .build());\n\n        final var defaultGetKubernetesAddons = CsFunctions.getKubernetesAddons(GetKubernetesAddonsArgs.builder()\n            .clusterId(defaultManagedKubernetes.id())\n            .build());\n\n        ctx.export(\"addons\", defaultGetKubernetesAddons.applyValue(_defaultGetKubernetesAddons -\u003e _defaultGetKubernetesAddons.addons()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      namePrefix: ${name}\n      clusterSpec: ack.pro.small\n      workerVswitchIds:\n        - ${defaultSwitch.id}\n      newNatGateway: false\n      podCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 10.0.0.0/8\n            newbits: 8\n            netnum: 36\n          return: result\n      serviceCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 172.16.0.0/16\n            newbits: 4\n            netnum: 7\n          return: result\n      slbInternetEnabled: true\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetKubernetesAddons:\n    fn::invoke:\n      function: alicloud:cs:getKubernetesAddons\n      arguments:\n        clusterId: ${defaultManagedKubernetes.id}\noutputs:\n  addons: ${defaultGetKubernetesAddons.addons}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKubernetesAddons.\n","properties":{"clusterId":{"type":"string","description":"The id of kubernetes cluster.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of addon IDs. The id of addon consists of the cluster id and the addon name, with the structure \u003ccluster_ud\u003e:\u003caddon_name\u003e.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by addon name.\n"}},"type":"object","required":["clusterId"]},"outputs":{"description":"A collection of values returned by getKubernetesAddons.\n","properties":{"addons":{"description":"A list of addons.\n","items":{"$ref":"#/types/alicloud:cs/getKubernetesAddonsAddon:getKubernetesAddonsAddon"},"type":"array"},"clusterId":{"description":"The id of kubernetes cluster.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of addon names.\n","items":{"type":"string"},"type":"array"}},"required":["addons","clusterId","ids","names","id"],"type":"object"}},"alicloud:cs/getKubernetesClusters:getKubernetesClusters":{"description":"This data source provides a list Container Service Kubernetes Clusters on Alibaba Cloud.\n\n\u003e **NOTE:** Available since v1.34.0.\n\n\u003e **NOTE:** From version 1.177.0+, We supported batch export of clusters' kube config information by \u003cspan pulumi-lang-nodejs=\"`kubeConfigFilePrefix`\" pulumi-lang-dotnet=\"`KubeConfigFilePrefix`\" pulumi-lang-go=\"`kubeConfigFilePrefix`\" pulumi-lang-python=\"`kube_config_file_prefix`\" pulumi-lang-yaml=\"`kubeConfigFilePrefix`\" pulumi-lang-java=\"`kubeConfigFilePrefix`\"\u003e`kube_config_file_prefix`\u003c/span\u003e.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst k8sClusters = alicloud.cs.getKubernetesClusters({\n    nameRegex: \"my-first-k8s\",\n    outputFile: \"my-first-k8s-json\",\n    kubeConfigFilePrefix: \"~/.kube/k8s\",\n});\nexport const output = k8sClusters.then(k8sClusters =\u003e k8sClusters.clusters);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nk8s_clusters = alicloud.cs.get_kubernetes_clusters(name_regex=\"my-first-k8s\",\n    output_file=\"my-first-k8s-json\",\n    kube_config_file_prefix=\"~/.kube/k8s\")\npulumi.export(\"output\", k8s_clusters.clusters)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var k8sClusters = AliCloud.CS.GetKubernetesClusters.Invoke(new()\n    {\n        NameRegex = \"my-first-k8s\",\n        OutputFile = \"my-first-k8s-json\",\n        KubeConfigFilePrefix = \"~/.kube/k8s\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"output\"] = k8sClusters.Apply(getKubernetesClustersResult =\u003e getKubernetesClustersResult.Clusters),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tk8sClusters, err := cs.GetKubernetesClusters(ctx, \u0026cs.GetKubernetesClustersArgs{\n\t\t\tNameRegex:            pulumi.StringRef(\"my-first-k8s\"),\n\t\t\tOutputFile:           pulumi.StringRef(\"my-first-k8s-json\"),\n\t\t\tKubeConfigFilePrefix: pulumi.StringRef(\"~/.kube/k8s\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"output\", k8sClusters.Clusters)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetKubernetesClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var k8sClusters = CsFunctions.getKubernetesClusters(GetKubernetesClustersArgs.builder()\n            .nameRegex(\"my-first-k8s\")\n            .outputFile(\"my-first-k8s-json\")\n            .kubeConfigFilePrefix(\"~/.kube/k8s\")\n            .build());\n\n        ctx.export(\"output\", k8sClusters.clusters());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  k8sClusters:\n    fn::invoke:\n      function: alicloud:cs:getKubernetesClusters\n      arguments:\n        nameRegex: my-first-k8s\n        outputFile: my-first-k8s-json\n        kubeConfigFilePrefix: ~/.kube/k8s\noutputs:\n  output: ${k8sClusters.clusters}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKubernetesClusters.\n","properties":{"enableDetails":{"type":"boolean","description":"Boolean, false by default, only \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e are exported. Set to true if more details are needed, e.g., \u003cspan pulumi-lang-nodejs=\"`masterDiskCategory`\" pulumi-lang-dotnet=\"`MasterDiskCategory`\" pulumi-lang-go=\"`masterDiskCategory`\" pulumi-lang-python=\"`master_disk_category`\" pulumi-lang-yaml=\"`masterDiskCategory`\" pulumi-lang-java=\"`masterDiskCategory`\"\u003e`master_disk_category`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slbInternetEnabled`\" pulumi-lang-dotnet=\"`SlbInternetEnabled`\" pulumi-lang-go=\"`slbInternetEnabled`\" pulumi-lang-python=\"`slb_internet_enabled`\" pulumi-lang-yaml=\"`slbInternetEnabled`\" pulumi-lang-java=\"`slbInternetEnabled`\"\u003e`slb_internet_enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`connections`\" pulumi-lang-dotnet=\"`Connections`\" pulumi-lang-go=\"`connections`\" pulumi-lang-python=\"`connections`\" pulumi-lang-yaml=\"`connections`\" pulumi-lang-java=\"`connections`\"\u003e`connections`\u003c/span\u003e. See full list in attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"Cluster IDs to filter.\n"},"kubeConfigFilePrefix":{"type":"string","description":"The path prefix of kube config. You could store kube config in a specified directory by specifying this field, like `~/.kube/k8s`, then it will be named with `~/.kube/k8s-clusterID-kubeconfig`. From version 1.243.0,\u003cspan pulumi-lang-nodejs=\" kubeConfig \" pulumi-lang-dotnet=\" KubeConfig \" pulumi-lang-go=\" kubeConfig \" pulumi-lang-python=\" kube_config \" pulumi-lang-yaml=\" kubeConfig \" pulumi-lang-java=\" kubeConfig \"\u003e kube_config \u003c/span\u003ewill not export\u003cspan pulumi-lang-nodejs=\" kubeConfig \" pulumi-lang-dotnet=\" KubeConfig \" pulumi-lang-go=\" kubeConfig \" pulumi-lang-python=\" kube_config \" pulumi-lang-yaml=\" kubeConfig \" pulumi-lang-java=\" kubeConfig \"\u003e kube_config \u003c/span\u003eif this field is not set. Please use the attribute\u003cspan pulumi-lang-nodejs=\" outputFile \" pulumi-lang-dotnet=\" OutputFile \" pulumi-lang-go=\" outputFile \" pulumi-lang-python=\" output_file \" pulumi-lang-yaml=\" outputFile \" pulumi-lang-java=\" outputFile \"\u003e output_file \u003c/span\u003eof new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to replace it.\n","deprecationMessage":"Field 'kube_config_file_prefix' has been deprecated from provider version 1.243.0. From version 1.243.0, please use the attribute 'output_file' of new DataSource 'alicloud_cs_cluster_credential' to replace it."},"nameRegex":{"type":"string","description":"A regex string to filter results by cluster name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getKubernetesClusters.\n","properties":{"clusters":{"description":"A list of matched Kubernetes clusters. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cs/getKubernetesClustersCluster:getKubernetesClustersCluster"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of matched Kubernetes clusters' ids.\n","items":{"type":"string"},"type":"array"},"kubeConfigFilePrefix":{"deprecationMessage":"Field 'kube_config_file_prefix' has been deprecated from provider version 1.243.0. From version 1.243.0, please use the attribute 'output_file' of new DataSource 'alicloud_cs_cluster_credential' to replace it.","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of matched Kubernetes clusters' names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["clusters","ids","names","id"],"type":"object"}},"alicloud:cs/getKubernetesNodePools:getKubernetesNodePools":{"description":"This data source provides Ack Nodepool available to the user.[What is Nodepool](https://next.api.alibabacloud.com/document/CS/2015-12-15/CreateClusterNodePool)\n\n\u003e **NOTE:** Available since v1.246.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst enhanced = alicloud.vpc.getEnhancedNatAvailableZones({});\nconst cloudEfficiency = enhanced.then(enhanced =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: enhanced.zones?.[0]?.zoneId,\n    cpuCoreCount: 4,\n    memorySize: 8,\n    kubernetesNodeRole: \"Worker\",\n    systemDiskCategory: \"cloud_efficiency\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"10.4.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    cidrBlock: \"10.4.0.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: enhanced.then(enhanced =\u003e enhanced.zones?.[0]?.zoneId),\n});\nconst defaultManagedKubernetes = new alicloud.cs.ManagedKubernetes(\"default\", {\n    namePrefix: name,\n    clusterSpec: \"ack.pro.small\",\n    vswitchIds: [defaultSwitch.id],\n    newNatGateway: true,\n    podCidr: std.cidrsubnet({\n        input: \"10.0.0.0/8\",\n        newbits: 8,\n        netnum: 36,\n    }).then(invoke =\u003e invoke.result),\n    serviceCidr: std.cidrsubnet({\n        input: \"172.16.0.0/16\",\n        newbits: 4,\n        netnum: 7,\n    }).then(invoke =\u003e invoke.result),\n    slbInternetEnabled: true,\n    enableRrsa: true,\n});\nconst defaultKeyPair = new alicloud.ecs.KeyPair(\"default\", {keyPairName: name});\nconst defaultNodePool = new alicloud.cs.NodePool(\"default\", {\n    nodePoolName: \"spot_auto_scaling\",\n    clusterId: defaultManagedKubernetes.id,\n    vswitchIds: [defaultSwitch.id],\n    instanceTypes: [cloudEfficiency.then(cloudEfficiency =\u003e cloudEfficiency.instanceTypes?.[0]?.id)],\n    systemDiskCategory: \"cloud_efficiency\",\n    systemDiskSize: 40,\n    keyName: defaultKeyPair.keyPairName,\n    scalingConfig: {\n        minSize: 1,\n        maxSize: 10,\n        type: \"spot\",\n    },\n    spotStrategy: \"SpotWithPriceLimit\",\n    spotPriceLimits: [{\n        instanceType: cloudEfficiency.then(cloudEfficiency =\u003e cloudEfficiency.instanceTypes?.[0]?.id),\n        priceLimit: \"0.70\",\n    }],\n});\nconst _default = alicloud.cs.getKubernetesNodePoolsOutput({\n    ids: [defaultNodePool.nodePoolId],\n    clusterId: defaultManagedKubernetes.id,\n});\nexport const alicloudCsKubernetesNodePoolExampleId = _default.apply(_default =\u003e _default.nodepools?.[0]?.nodePoolId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nenhanced = alicloud.vpc.get_enhanced_nat_available_zones()\ncloud_efficiency = alicloud.ecs.get_instance_types(availability_zone=enhanced.zones[0].zone_id,\n    cpu_core_count=4,\n    memory_size=8,\n    kubernetes_node_role=\"Worker\",\n    system_disk_category=\"cloud_efficiency\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"10.4.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    cidr_block=\"10.4.0.0/24\",\n    vpc_id=default_network.id,\n    zone_id=enhanced.zones[0].zone_id)\ndefault_managed_kubernetes = alicloud.cs.ManagedKubernetes(\"default\",\n    name_prefix=name,\n    cluster_spec=\"ack.pro.small\",\n    vswitch_ids=[default_switch.id],\n    new_nat_gateway=True,\n    pod_cidr=std.cidrsubnet(input=\"10.0.0.0/8\",\n        newbits=8,\n        netnum=36).result,\n    service_cidr=std.cidrsubnet(input=\"172.16.0.0/16\",\n        newbits=4,\n        netnum=7).result,\n    slb_internet_enabled=True,\n    enable_rrsa=True)\ndefault_key_pair = alicloud.ecs.KeyPair(\"default\", key_pair_name=name)\ndefault_node_pool = alicloud.cs.NodePool(\"default\",\n    node_pool_name=\"spot_auto_scaling\",\n    cluster_id=default_managed_kubernetes.id,\n    vswitch_ids=[default_switch.id],\n    instance_types=[cloud_efficiency.instance_types[0].id],\n    system_disk_category=\"cloud_efficiency\",\n    system_disk_size=40,\n    key_name=default_key_pair.key_pair_name,\n    scaling_config={\n        \"min_size\": 1,\n        \"max_size\": 10,\n        \"type\": \"spot\",\n    },\n    spot_strategy=\"SpotWithPriceLimit\",\n    spot_price_limits=[{\n        \"instance_type\": cloud_efficiency.instance_types[0].id,\n        \"price_limit\": \"0.70\",\n    }])\ndefault = alicloud.cs.get_kubernetes_node_pools_output(ids=[default_node_pool.node_pool_id],\n    cluster_id=default_managed_kubernetes.id)\npulumi.export(\"alicloudCsKubernetesNodePoolExampleId\", default.nodepools[0].node_pool_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var enhanced = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    var cloudEfficiency = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId),\n        CpuCoreCount = 4,\n        MemorySize = 8,\n        KubernetesNodeRole = \"Worker\",\n        SystemDiskCategory = \"cloud_efficiency\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"10.4.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"10.4.0.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = enhanced.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId),\n    });\n\n    var defaultManagedKubernetes = new AliCloud.CS.ManagedKubernetes(\"default\", new()\n    {\n        NamePrefix = name,\n        ClusterSpec = \"ack.pro.small\",\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        NewNatGateway = true,\n        PodCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"10.0.0.0/8\",\n            Newbits = 8,\n            Netnum = 36,\n        }).Apply(invoke =\u003e invoke.Result),\n        ServiceCidr = Std.Cidrsubnet.Invoke(new()\n        {\n            Input = \"172.16.0.0/16\",\n            Newbits = 4,\n            Netnum = 7,\n        }).Apply(invoke =\u003e invoke.Result),\n        SlbInternetEnabled = true,\n        EnableRrsa = true,\n    });\n\n    var defaultKeyPair = new AliCloud.Ecs.KeyPair(\"default\", new()\n    {\n        KeyPairName = name,\n    });\n\n    var defaultNodePool = new AliCloud.CS.NodePool(\"default\", new()\n    {\n        NodePoolName = \"spot_auto_scaling\",\n        ClusterId = defaultManagedKubernetes.Id,\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n        InstanceTypes = new[]\n        {\n            cloudEfficiency.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        },\n        SystemDiskCategory = \"cloud_efficiency\",\n        SystemDiskSize = 40,\n        KeyName = defaultKeyPair.KeyPairName,\n        ScalingConfig = new AliCloud.CS.Inputs.NodePoolScalingConfigArgs\n        {\n            MinSize = 1,\n            MaxSize = 10,\n            Type = \"spot\",\n        },\n        SpotStrategy = \"SpotWithPriceLimit\",\n        SpotPriceLimits = new[]\n        {\n            new AliCloud.CS.Inputs.NodePoolSpotPriceLimitArgs\n            {\n                InstanceType = cloudEfficiency.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n                PriceLimit = \"0.70\",\n            },\n        },\n    });\n\n    var @default = AliCloud.CS.GetKubernetesNodePools.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultNodePool.NodePoolId,\n        },\n        ClusterId = defaultManagedKubernetes.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudCsKubernetesNodePoolExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getKubernetesNodePoolsResult =\u003e getKubernetesNodePoolsResult.Nodepools[0]?.NodePoolId)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nenhanced, err := vpc.GetEnhancedNatAvailableZones(ctx, \u0026vpc.GetEnhancedNatAvailableZonesArgs{\n}, nil);\nif err != nil {\nreturn err\n}\ncloudEfficiency, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(enhanced.Zones[0].ZoneId),\nCpuCoreCount: pulumi.IntRef(4),\nMemorySize: pulumi.Float64Ref(8),\nKubernetesNodeRole: pulumi.StringRef(\"Worker\"),\nSystemDiskCategory: pulumi.StringRef(\"cloud_efficiency\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"10.4.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.String(name),\nCidrBlock: pulumi.String(\"10.4.0.0/24\"),\nVpcId: defaultNetwork.ID(),\nZoneId: pulumi.String(enhanced.Zones[0].ZoneId),\n})\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: \"10.0.0.0/8\",\nNewbits: 8,\nNetnum: 36,\n}, nil)\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet1, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: \"172.16.0.0/16\",\nNewbits: 4,\nNetnum: 7,\n}, nil)\nif err != nil {\nreturn err\n}\ndefaultManagedKubernetes, err := cs.NewManagedKubernetes(ctx, \"default\", \u0026cs.ManagedKubernetesArgs{\nNamePrefix: pulumi.String(name),\nClusterSpec: pulumi.String(\"ack.pro.small\"),\nVswitchIds: pulumi.StringArray{\ndefaultSwitch.ID(),\n},\nNewNatGateway: pulumi.Bool(true),\nPodCidr: pulumi.String(invokeCidrsubnet.Result),\nServiceCidr: pulumi.String(invokeCidrsubnet1.Result),\nSlbInternetEnabled: pulumi.Bool(true),\nEnableRrsa: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\ndefaultKeyPair, err := ecs.NewKeyPair(ctx, \"default\", \u0026ecs.KeyPairArgs{\nKeyPairName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ndefaultNodePool, err := cs.NewNodePool(ctx, \"default\", \u0026cs.NodePoolArgs{\nNodePoolName: pulumi.String(\"spot_auto_scaling\"),\nClusterId: defaultManagedKubernetes.ID(),\nVswitchIds: pulumi.StringArray{\ndefaultSwitch.ID(),\n},\nInstanceTypes: pulumi.StringArray{\npulumi.String(cloudEfficiency.InstanceTypes[0].Id),\n},\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nSystemDiskSize: pulumi.Int(40),\nKeyName: defaultKeyPair.KeyPairName,\nScalingConfig: \u0026cs.NodePoolScalingConfigArgs{\nMinSize: pulumi.Int(1),\nMaxSize: pulumi.Int(10),\nType: pulumi.String(\"spot\"),\n},\nSpotStrategy: pulumi.String(\"SpotWithPriceLimit\"),\nSpotPriceLimits: cs.NodePoolSpotPriceLimitArray{\n\u0026cs.NodePoolSpotPriceLimitArgs{\nInstanceType: pulumi.String(cloudEfficiency.InstanceTypes[0].Id),\nPriceLimit: pulumi.String(\"0.70\"),\n},\n},\n})\nif err != nil {\nreturn err\n}\n_default := cs.GetKubernetesNodePoolsOutput(ctx, cs.GetKubernetesNodePoolsOutputArgs{\nIds: pulumi.StringArray{\ndefaultNodePool.NodePoolId,\n},\nClusterId: defaultManagedKubernetes.ID(),\n}, nil);\nctx.Export(\"alicloudCsKubernetesNodePoolExampleId\", _default.ApplyT(func(_default cs.GetKubernetesNodePoolsResult) (*string, error) {\nreturn \u0026default.Nodepools[0].NodePoolId, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.cs.ManagedKubernetes;\nimport com.pulumi.alicloud.cs.ManagedKubernetesArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.alicloud.ecs.KeyPair;\nimport com.pulumi.alicloud.ecs.KeyPairArgs;\nimport com.pulumi.alicloud.cs.NodePool;\nimport com.pulumi.alicloud.cs.NodePoolArgs;\nimport com.pulumi.alicloud.cs.inputs.NodePoolScalingConfigArgs;\nimport com.pulumi.alicloud.cs.inputs.NodePoolSpotPriceLimitArgs;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetKubernetesNodePoolsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var enhanced = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        final var cloudEfficiency = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(enhanced.zones()[0].zoneId())\n            .cpuCoreCount(4)\n            .memorySize(8)\n            .kubernetesNodeRole(\"Worker\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"10.4.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"10.4.0.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(enhanced.zones()[0].zoneId())\n            .build());\n\n        var defaultManagedKubernetes = new ManagedKubernetes(\"defaultManagedKubernetes\", ManagedKubernetesArgs.builder()\n            .namePrefix(name)\n            .clusterSpec(\"ack.pro.small\")\n            .vswitchIds(defaultSwitch.id())\n            .newNatGateway(true)\n            .podCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"10.0.0.0/8\")\n                .newbits(8)\n                .netnum(36)\n                .build()).result())\n            .serviceCidr(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                .input(\"172.16.0.0/16\")\n                .newbits(4)\n                .netnum(7)\n                .build()).result())\n            .slbInternetEnabled(true)\n            .enableRrsa(true)\n            .build());\n\n        var defaultKeyPair = new KeyPair(\"defaultKeyPair\", KeyPairArgs.builder()\n            .keyPairName(name)\n            .build());\n\n        var defaultNodePool = new NodePool(\"defaultNodePool\", NodePoolArgs.builder()\n            .nodePoolName(\"spot_auto_scaling\")\n            .clusterId(defaultManagedKubernetes.id())\n            .vswitchIds(defaultSwitch.id())\n            .instanceTypes(cloudEfficiency.instanceTypes()[0].id())\n            .systemDiskCategory(\"cloud_efficiency\")\n            .systemDiskSize(40)\n            .keyName(defaultKeyPair.keyPairName())\n            .scalingConfig(NodePoolScalingConfigArgs.builder()\n                .minSize(1)\n                .maxSize(10)\n                .type(\"spot\")\n                .build())\n            .spotStrategy(\"SpotWithPriceLimit\")\n            .spotPriceLimits(NodePoolSpotPriceLimitArgs.builder()\n                .instanceType(cloudEfficiency.instanceTypes()[0].id())\n                .priceLimit(\"0.70\")\n                .build())\n            .build());\n\n        final var default = CsFunctions.getKubernetesNodePools(GetKubernetesNodePoolsArgs.builder()\n            .ids(defaultNodePool.nodePoolId())\n            .clusterId(defaultManagedKubernetes.id())\n            .build());\n\n        ctx.export(\"alicloudCsKubernetesNodePoolExampleId\", default_.applyValue(_default_ -\u003e _default_.nodepools()[0].nodePoolId()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 10.4.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 10.4.0.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${enhanced.zones[0].zoneId}\n  defaultManagedKubernetes:\n    type: alicloud:cs:ManagedKubernetes\n    name: default\n    properties:\n      namePrefix: ${name}\n      clusterSpec: ack.pro.small\n      vswitchIds:\n        - ${defaultSwitch.id}\n      newNatGateway: true\n      podCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 10.0.0.0/8\n            newbits: 8\n            netnum: 36\n          return: result\n      serviceCidr:\n        fn::invoke:\n          function: std:cidrsubnet\n          arguments:\n            input: 172.16.0.0/16\n            newbits: 4\n            netnum: 7\n          return: result\n      slbInternetEnabled: true\n      enableRrsa: true\n  defaultKeyPair:\n    type: alicloud:ecs:KeyPair\n    name: default\n    properties:\n      keyPairName: ${name}\n  defaultNodePool:\n    type: alicloud:cs:NodePool\n    name: default\n    properties:\n      nodePoolName: spot_auto_scaling\n      clusterId: ${defaultManagedKubernetes.id}\n      vswitchIds:\n        - ${defaultSwitch.id}\n      instanceTypes:\n        - ${cloudEfficiency.instanceTypes[0].id}\n      systemDiskCategory: cloud_efficiency\n      systemDiskSize: 40\n      keyName: ${defaultKeyPair.keyPairName}\n      scalingConfig:\n        minSize: 1\n        maxSize: 10\n        type: spot\n      spotStrategy: SpotWithPriceLimit\n      spotPriceLimits:\n        - instanceType: ${cloudEfficiency.instanceTypes[0].id}\n          priceLimit: '0.70'\nvariables:\n  enhanced:\n    fn::invoke:\n      function: alicloud:vpc:getEnhancedNatAvailableZones\n      arguments: {}\n  cloudEfficiency:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${enhanced.zones[0].zoneId}\n        cpuCoreCount: 4\n        memorySize: 8\n        kubernetesNodeRole: Worker\n        systemDiskCategory: cloud_efficiency\n  default:\n    fn::invoke:\n      function: alicloud:cs:getKubernetesNodePools\n      arguments:\n        ids:\n          - ${defaultNodePool.nodePoolId}\n        clusterId: ${defaultManagedKubernetes.id}\noutputs:\n  alicloudCsKubernetesNodePoolExampleId: ${default.nodepools[0].nodePoolId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKubernetesNodePools.\n","properties":{"clusterId":{"type":"string","description":"The id of kubernetes cluster.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Nodepool IDs.\n"},"nodePoolName":{"type":"string","description":"The name of node pool.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["clusterId"]},"outputs":{"description":"A collection of values returned by getKubernetesNodePools.\n","properties":{"clusterId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Nodepool IDs.\n","items":{"type":"string"},"type":"array"},"nodePoolName":{"description":"The name of node pool.\n","type":"string"},"nodepools":{"description":"A list of Nodepool Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cs/getKubernetesNodePoolsNodepool:getKubernetesNodePoolsNodepool"},"type":"array"},"outputFile":{"type":"string"}},"required":["clusterId","ids","nodepools","id"],"type":"object"}},"alicloud:cs/getKubernetesPermission:getKubernetesPermission":{"description":"This data source provides a list of Ram user permissions.\n\n\u003e **NOTE:** Available since v1.122.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst _default = alicloud.ram.getUsers({});\n// permissions\nconst defaultGetKubernetesPermission = _default.then(_default =\u003e alicloud.cs.getKubernetesPermission({\n    uid: _default.users?.[0]?.id,\n}));\nexport const permissions = defaultGetKubernetesPermission.then(defaultGetKubernetesPermission =\u003e defaultGetKubernetesPermission.permissions);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\ndefault = alicloud.ram.get_users()\n# permissions\ndefault_get_kubernetes_permission = alicloud.cs.get_kubernetes_permission(uid=default.users[0].id)\npulumi.export(\"permissions\", default_get_kubernetes_permission.permissions)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var @default = AliCloud.Ram.GetUsers.Invoke();\n\n    // permissions\n    var defaultGetKubernetesPermission = AliCloud.CS.GetKubernetesPermission.Invoke(new()\n    {\n        Uid = @default.Apply(getUsersResult =\u003e getUsersResult.Users[0]?.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"permissions\"] = defaultGetKubernetesPermission.Apply(getKubernetesPermissionResult =\u003e getKubernetesPermissionResult.Permissions),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\t_default, err := ram.GetUsers(ctx, \u0026ram.GetUsersArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// permissions\n\t\tdefaultGetKubernetesPermission, err := cs.LookupKubernetesPermission(ctx, \u0026cs.LookupKubernetesPermissionArgs{\n\t\t\tUid: _default.Users[0].Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"permissions\", defaultGetKubernetesPermission.Permissions)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetUsersArgs;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetKubernetesPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var default = RamFunctions.getUsers(GetUsersArgs.builder()\n            .build());\n\n        // permissions\n        final var defaultGetKubernetesPermission = CsFunctions.getKubernetesPermission(GetKubernetesPermissionArgs.builder()\n            .uid(default_.users()[0].id())\n            .build());\n\n        ctx.export(\"permissions\", defaultGetKubernetesPermission.permissions());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  default:\n    fn::invoke:\n      function: alicloud:ram:getUsers\n      arguments: {}\n  # permissions\n  defaultGetKubernetesPermission:\n    fn::invoke:\n      function: alicloud:cs:getKubernetesPermission\n      arguments:\n        uid: ${default.users[0].id}\noutputs:\n  permissions: ${defaultGetKubernetesPermission.permissions}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKubernetesPermission.\n","properties":{"uid":{"type":"string","description":"The ID of the RAM user. If you want to query the permissions of a RAM role, specify the ID of the RAM role.\n"}},"type":"object","required":["uid"]},"outputs":{"description":"A collection of values returned by getKubernetesPermission.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"permissions":{"description":"A list of user permission. See \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e below.\n","items":{"$ref":"#/types/alicloud:cs/getKubernetesPermissionPermission:getKubernetesPermissionPermission"},"type":"array"},"uid":{"description":"The ID of the RAM user. If you want to query the permissions of a RAM role, specify the ID of the RAM role.\n","type":"string"}},"required":["permissions","uid","id"],"type":"object"}},"alicloud:cs/getKubernetesVersion:getKubernetesVersion":{"description":"This data source provides the details of the Kubernetes version supported by ACK.\n\n\u003e **NOTE:** Available since v1.170.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Query the managed kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\nconst _default = alicloud.cs.getKubernetesVersion({\n    clusterType: \"ManagedKubernetes\",\n    kubernetesVersion: \"1.22.3-aliyun.1\",\n    profile: \"Default\",\n});\nexport const metadata = _default.then(_default =\u003e _default.metadatas);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Query the managed kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\ndefault = alicloud.cs.get_kubernetes_version(cluster_type=\"ManagedKubernetes\",\n    kubernetes_version=\"1.22.3-aliyun.1\",\n    profile=\"Default\")\npulumi.export(\"metadata\", default.metadatas)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Query the managed kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\n    var @default = AliCloud.CS.GetKubernetesVersion.Invoke(new()\n    {\n        ClusterType = \"ManagedKubernetes\",\n        KubernetesVersion = \"1.22.3-aliyun.1\",\n        Profile = \"Default\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"metadata\"] = @default.Apply(@default =\u003e @default.Apply(getKubernetesVersionResult =\u003e getKubernetesVersionResult.Metadatas)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Query the managed kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\n\t\t_default, err := cs.GetKubernetesVersion(ctx, \u0026cs.GetKubernetesVersionArgs{\n\t\t\tClusterType:       \"ManagedKubernetes\",\n\t\t\tKubernetesVersion: pulumi.StringRef(\"1.22.3-aliyun.1\"),\n\t\t\tProfile:           pulumi.StringRef(\"Default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"metadata\", _default.Metadatas)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetKubernetesVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Query the managed kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\n        final var default = CsFunctions.getKubernetesVersion(GetKubernetesVersionArgs.builder()\n            .clusterType(\"ManagedKubernetes\")\n            .kubernetesVersion(\"1.22.3-aliyun.1\")\n            .profile(\"Default\")\n            .build());\n\n        ctx.export(\"metadata\", default_.metadatas());\n    }\n}\n```\n```yaml\nvariables:\n  # Query the managed kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\n  default:\n    fn::invoke:\n      function: alicloud:cs:getKubernetesVersion\n      arguments:\n        clusterType: ManagedKubernetes\n        kubernetesVersion: 1.22.3-aliyun.1\n        profile: Default\noutputs:\n  metadata: ${default.metadatas}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Query the kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\nconst _default = alicloud.cs.getKubernetesVersion({\n    clusterType: \"Kubernetes\",\n    kubernetesVersion: \"1.22.3-aliyun.1\",\n    profile: \"Default\",\n});\nexport const metadata = _default.then(_default =\u003e _default.metadatas);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Query the kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\ndefault = alicloud.cs.get_kubernetes_version(cluster_type=\"Kubernetes\",\n    kubernetes_version=\"1.22.3-aliyun.1\",\n    profile=\"Default\")\npulumi.export(\"metadata\", default.metadatas)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Query the kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\n    var @default = AliCloud.CS.GetKubernetesVersion.Invoke(new()\n    {\n        ClusterType = \"Kubernetes\",\n        KubernetesVersion = \"1.22.3-aliyun.1\",\n        Profile = \"Default\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"metadata\"] = @default.Apply(@default =\u003e @default.Apply(getKubernetesVersionResult =\u003e getKubernetesVersionResult.Metadatas)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Query the kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\n\t\t_default, err := cs.GetKubernetesVersion(ctx, \u0026cs.GetKubernetesVersionArgs{\n\t\t\tClusterType:       \"Kubernetes\",\n\t\t\tKubernetesVersion: pulumi.StringRef(\"1.22.3-aliyun.1\"),\n\t\t\tProfile:           pulumi.StringRef(\"Default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"metadata\", _default.Metadatas)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetKubernetesVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Query the kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\n        final var default = CsFunctions.getKubernetesVersion(GetKubernetesVersionArgs.builder()\n            .clusterType(\"Kubernetes\")\n            .kubernetesVersion(\"1.22.3-aliyun.1\")\n            .profile(\"Default\")\n            .build());\n\n        ctx.export(\"metadata\", default_.metadatas());\n    }\n}\n```\n```yaml\nvariables:\n  # Query the kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\n  default:\n    fn::invoke:\n      function: alicloud:cs:getKubernetesVersion\n      arguments:\n        clusterType: Kubernetes\n        kubernetesVersion: 1.22.3-aliyun.1\n        profile: Default\noutputs:\n  metadata: ${default.metadatas}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Query the serverless kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\nconst _default = alicloud.cs.getKubernetesVersion({\n    clusterType: \"ManagedKubernetes\",\n    kubernetesVersion: \"1.22.3-aliyun.1\",\n    profile: \"Serverless\",\n});\nexport const metadata = _default.then(_default =\u003e _default.metadatas);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Query the serverless kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\ndefault = alicloud.cs.get_kubernetes_version(cluster_type=\"ManagedKubernetes\",\n    kubernetes_version=\"1.22.3-aliyun.1\",\n    profile=\"Serverless\")\npulumi.export(\"metadata\", default.metadatas)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Query the serverless kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\n    var @default = AliCloud.CS.GetKubernetesVersion.Invoke(new()\n    {\n        ClusterType = \"ManagedKubernetes\",\n        KubernetesVersion = \"1.22.3-aliyun.1\",\n        Profile = \"Serverless\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"metadata\"] = @default.Apply(@default =\u003e @default.Apply(getKubernetesVersionResult =\u003e getKubernetesVersionResult.Metadatas)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Query the serverless kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\n\t\t_default, err := cs.GetKubernetesVersion(ctx, \u0026cs.GetKubernetesVersionArgs{\n\t\t\tClusterType:       \"ManagedKubernetes\",\n\t\t\tKubernetesVersion: pulumi.StringRef(\"1.22.3-aliyun.1\"),\n\t\t\tProfile:           pulumi.StringRef(\"Serverless\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"metadata\", _default.Metadatas)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetKubernetesVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Query the serverless kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\n        final var default = CsFunctions.getKubernetesVersion(GetKubernetesVersionArgs.builder()\n            .clusterType(\"ManagedKubernetes\")\n            .kubernetesVersion(\"1.22.3-aliyun.1\")\n            .profile(\"Serverless\")\n            .build());\n\n        ctx.export(\"metadata\", default_.metadatas());\n    }\n}\n```\n```yaml\nvariables:\n  # Query the serverless kubernetes cluster metadata of version 1.22.3-aliyun.1 in the region specified by the client.\n  default:\n    fn::invoke:\n      function: alicloud:cs:getKubernetesVersion\n      arguments:\n        clusterType: ManagedKubernetes\n        kubernetesVersion: 1.22.3-aliyun.1\n        profile: Serverless\noutputs:\n  metadata: ${default.metadatas}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Query the edge kubernetes cluster metadata of version 1.20.11-aliyunedge.1 in the region specified by the client.\nconst _default = alicloud.cs.getKubernetesVersion({\n    clusterType: \"ManagedKubernetes\",\n    kubernetesVersion: \"1.20.11-aliyunedge.1\",\n    profile: \"Edge\",\n});\nexport const metadata = _default.then(_default =\u003e _default.metadatas);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Query the edge kubernetes cluster metadata of version 1.20.11-aliyunedge.1 in the region specified by the client.\ndefault = alicloud.cs.get_kubernetes_version(cluster_type=\"ManagedKubernetes\",\n    kubernetes_version=\"1.20.11-aliyunedge.1\",\n    profile=\"Edge\")\npulumi.export(\"metadata\", default.metadatas)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Query the edge kubernetes cluster metadata of version 1.20.11-aliyunedge.1 in the region specified by the client.\n    var @default = AliCloud.CS.GetKubernetesVersion.Invoke(new()\n    {\n        ClusterType = \"ManagedKubernetes\",\n        KubernetesVersion = \"1.20.11-aliyunedge.1\",\n        Profile = \"Edge\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"metadata\"] = @default.Apply(@default =\u003e @default.Apply(getKubernetesVersionResult =\u003e getKubernetesVersionResult.Metadatas)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Query the edge kubernetes cluster metadata of version 1.20.11-aliyunedge.1 in the region specified by the client.\n\t\t_default, err := cs.GetKubernetesVersion(ctx, \u0026cs.GetKubernetesVersionArgs{\n\t\t\tClusterType:       \"ManagedKubernetes\",\n\t\t\tKubernetesVersion: pulumi.StringRef(\"1.20.11-aliyunedge.1\"),\n\t\t\tProfile:           pulumi.StringRef(\"Edge\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"metadata\", _default.Metadatas)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetKubernetesVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Query the edge kubernetes cluster metadata of version 1.20.11-aliyunedge.1 in the region specified by the client.\n        final var default = CsFunctions.getKubernetesVersion(GetKubernetesVersionArgs.builder()\n            .clusterType(\"ManagedKubernetes\")\n            .kubernetesVersion(\"1.20.11-aliyunedge.1\")\n            .profile(\"Edge\")\n            .build());\n\n        ctx.export(\"metadata\", default_.metadatas());\n    }\n}\n```\n```yaml\nvariables:\n  # Query the edge kubernetes cluster metadata of version 1.20.11-aliyunedge.1 in the region specified by the client.\n  default:\n    fn::invoke:\n      function: alicloud:cs:getKubernetesVersion\n      arguments:\n        clusterType: ManagedKubernetes\n        kubernetesVersion: 1.20.11-aliyunedge.1\n        profile: Edge\noutputs:\n  metadata: ${default.metadatas}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKubernetesVersion.\n","properties":{"clusterType":{"type":"string","description":"The type of cluster. Its valid value are `Kubernetes` and `ManagedKubernetes`.\n"},"kubernetesVersion":{"type":"string","description":"The ACK released kubernetes version.\n"},"profile":{"type":"string","description":"The profile of cluster. Its valid value are `Default`, `Serverless`, `Edge` and `Acs`.\n"}},"type":"object","required":["clusterType"]},"outputs":{"description":"A collection of values returned by getKubernetesVersion.\n","properties":{"clusterType":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"kubernetesVersion":{"type":"string"},"metadatas":{"description":"A list of metadata of kubernetes version.\n","items":{"$ref":"#/types/alicloud:cs/getKubernetesVersionMetadata:getKubernetesVersionMetadata"},"type":"array"},"profile":{"type":"string"}},"required":["clusterType","metadatas","id"],"type":"object"}},"alicloud:cs/getManagedKubernetesClusters:getManagedKubernetesClusters":{"description":"This data source provides a list Container Service Managed Kubernetes Clusters on Alibaba Cloud.\n\n\u003e **NOTE:** Available since v1.35.0\n\n\u003e **NOTE:** From version 1.177.0+, We supported batch export of clusters' kube config information by \u003cspan pulumi-lang-nodejs=\"`kubeConfigFilePrefix`\" pulumi-lang-dotnet=\"`KubeConfigFilePrefix`\" pulumi-lang-go=\"`kubeConfigFilePrefix`\" pulumi-lang-python=\"`kube_config_file_prefix`\" pulumi-lang-yaml=\"`kubeConfigFilePrefix`\" pulumi-lang-java=\"`kubeConfigFilePrefix`\"\u003e`kube_config_file_prefix`\u003c/span\u003e.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst k8sClusters = alicloud.cs.getManagedKubernetesClusters({\n    nameRegex: \"my-first-k8s\",\n    outputFile: \"my-first-k8s-json\",\n    kubeConfigFilePrefix: \"~/.kube/managed\",\n});\nexport const output = k8sClusters.then(k8sClusters =\u003e k8sClusters.clusters);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nk8s_clusters = alicloud.cs.get_managed_kubernetes_clusters(name_regex=\"my-first-k8s\",\n    output_file=\"my-first-k8s-json\",\n    kube_config_file_prefix=\"~/.kube/managed\")\npulumi.export(\"output\", k8s_clusters.clusters)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var k8sClusters = AliCloud.CS.GetManagedKubernetesClusters.Invoke(new()\n    {\n        NameRegex = \"my-first-k8s\",\n        OutputFile = \"my-first-k8s-json\",\n        KubeConfigFilePrefix = \"~/.kube/managed\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"output\"] = k8sClusters.Apply(getManagedKubernetesClustersResult =\u003e getManagedKubernetesClustersResult.Clusters),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tk8sClusters, err := cs.GetManagedKubernetesClusters(ctx, \u0026cs.GetManagedKubernetesClustersArgs{\n\t\t\tNameRegex:            pulumi.StringRef(\"my-first-k8s\"),\n\t\t\tOutputFile:           pulumi.StringRef(\"my-first-k8s-json\"),\n\t\t\tKubeConfigFilePrefix: pulumi.StringRef(\"~/.kube/managed\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"output\", k8sClusters.Clusters)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetManagedKubernetesClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var k8sClusters = CsFunctions.getManagedKubernetesClusters(GetManagedKubernetesClustersArgs.builder()\n            .nameRegex(\"my-first-k8s\")\n            .outputFile(\"my-first-k8s-json\")\n            .kubeConfigFilePrefix(\"~/.kube/managed\")\n            .build());\n\n        ctx.export(\"output\", k8sClusters.clusters());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  k8sClusters:\n    fn::invoke:\n      function: alicloud:cs:getManagedKubernetesClusters\n      arguments:\n        nameRegex: my-first-k8s\n        outputFile: my-first-k8s-json\n        kubeConfigFilePrefix: ~/.kube/managed\noutputs:\n  output: ${k8sClusters.clusters}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getManagedKubernetesClusters.\n","properties":{"enableDetails":{"type":"boolean","description":"Boolean, false by default, only \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e are exported. Set to true if more details are needed, e.g., \u003cspan pulumi-lang-nodejs=\"`masterDiskCategory`\" pulumi-lang-dotnet=\"`MasterDiskCategory`\" pulumi-lang-go=\"`masterDiskCategory`\" pulumi-lang-python=\"`master_disk_category`\" pulumi-lang-yaml=\"`masterDiskCategory`\" pulumi-lang-java=\"`masterDiskCategory`\"\u003e`master_disk_category`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`slbInternetEnabled`\" pulumi-lang-dotnet=\"`SlbInternetEnabled`\" pulumi-lang-go=\"`slbInternetEnabled`\" pulumi-lang-python=\"`slb_internet_enabled`\" pulumi-lang-yaml=\"`slbInternetEnabled`\" pulumi-lang-java=\"`slbInternetEnabled`\"\u003e`slb_internet_enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`connections`\" pulumi-lang-dotnet=\"`Connections`\" pulumi-lang-go=\"`connections`\" pulumi-lang-python=\"`connections`\" pulumi-lang-yaml=\"`connections`\" pulumi-lang-java=\"`connections`\"\u003e`connections`\u003c/span\u003e. See full list in attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"Cluster IDs to filter.\n"},"kubeConfigFilePrefix":{"type":"string","description":"The path prefix of kube config. You could store kube config in a specified directory by specifying this field, like `~/.kube/managed`, then it will be named with `~/.kube/managed-clusterID-kubeconfig`. From version 1.243.0,\u003cspan pulumi-lang-nodejs=\" kubeConfig \" pulumi-lang-dotnet=\" KubeConfig \" pulumi-lang-go=\" kubeConfig \" pulumi-lang-python=\" kube_config \" pulumi-lang-yaml=\" kubeConfig \" pulumi-lang-java=\" kubeConfig \"\u003e kube_config \u003c/span\u003ewill not export\u003cspan pulumi-lang-nodejs=\" kubeConfig \" pulumi-lang-dotnet=\" KubeConfig \" pulumi-lang-go=\" kubeConfig \" pulumi-lang-python=\" kube_config \" pulumi-lang-yaml=\" kubeConfig \" pulumi-lang-java=\" kubeConfig \"\u003e kube_config \u003c/span\u003eif this field is not set. Please use the attribute\u003cspan pulumi-lang-nodejs=\" outputFile \" pulumi-lang-dotnet=\" OutputFile \" pulumi-lang-go=\" outputFile \" pulumi-lang-python=\" output_file \" pulumi-lang-yaml=\" outputFile \" pulumi-lang-java=\" outputFile \"\u003e output_file \u003c/span\u003eof new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to replace it\n","deprecationMessage":"Field 'kube_config_file_prefix' has been deprecated from provider version 1.243.0. From version 1.243.0, please use the attribute 'output_file' of new DataSource 'alicloud_cs_cluster_credential' to replace it."},"nameRegex":{"type":"string","description":"A regex string to filter results by cluster name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getManagedKubernetesClusters.\n","properties":{"clusters":{"description":"A list of matched Kubernetes clusters. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cs/getManagedKubernetesClustersCluster:getManagedKubernetesClustersCluster"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of matched Kubernetes clusters' ids.\n","items":{"type":"string"},"type":"array"},"kubeConfigFilePrefix":{"deprecationMessage":"Field 'kube_config_file_prefix' has been deprecated from provider version 1.243.0. From version 1.243.0, please use the attribute 'output_file' of new DataSource 'alicloud_cs_cluster_credential' to replace it.","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of matched Kubernetes clusters' names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["clusters","ids","names","id"],"type":"object"}},"alicloud:cs/getRegistryEnterpriseInstances:getRegistryEnterpriseInstances":{"description":"This data source provides a list Container Registry Enterprise Edition instances on Alibaba Cloud.\n\n\u003e **NOTE:** Available in v1.86.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst myInstances = alicloud.cs.getRegistryEnterpriseInstances({\n    nameRegex: \"my-instances\",\n    outputFile: \"my-instances-json\",\n});\nexport const output = myInstances.then(myInstances =\u003e myInstances.instances);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nmy_instances = alicloud.cs.get_registry_enterprise_instances(name_regex=\"my-instances\",\n    output_file=\"my-instances-json\")\npulumi.export(\"output\", my_instances.instances)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var myInstances = AliCloud.CS.GetRegistryEnterpriseInstances.Invoke(new()\n    {\n        NameRegex = \"my-instances\",\n        OutputFile = \"my-instances-json\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"output\"] = myInstances.Apply(getRegistryEnterpriseInstancesResult =\u003e getRegistryEnterpriseInstancesResult.Instances),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tmyInstances, err := cs.GetRegistryEnterpriseInstances(ctx, \u0026cs.GetRegistryEnterpriseInstancesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"my-instances\"),\n\t\t\tOutputFile: pulumi.StringRef(\"my-instances-json\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"output\", myInstances.Instances)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetRegistryEnterpriseInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var myInstances = CsFunctions.getRegistryEnterpriseInstances(GetRegistryEnterpriseInstancesArgs.builder()\n            .nameRegex(\"my-instances\")\n            .outputFile(\"my-instances-json\")\n            .build());\n\n        ctx.export(\"output\", myInstances.instances());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  myInstances:\n    fn::invoke:\n      function: alicloud:cs:getRegistryEnterpriseInstances\n      arguments:\n        nameRegex: my-instances\n        outputFile: my-instances-json\noutputs:\n  output: ${myInstances.instances}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRegistryEnterpriseInstances.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Set it to true can output instance authorization token.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of ids to filter results by instance id.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRegistryEnterpriseInstances.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of matched Container Registry Enterprise Edition instances. Its element is an instance uuid.\n","items":{"type":"string"},"type":"array"},"instances":{"description":"A list of matched Container Registry Enterprise Editioninstances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cs/getRegistryEnterpriseInstancesInstance:getRegistryEnterpriseInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of instance names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:cs/getRegistryEnterpriseNamespaces:getRegistryEnterpriseNamespaces":{"description":"This data source provides a list Container Registry Enterprise Edition namespaces on Alibaba Cloud.\n\n\u003e **NOTE:** Available in v1.86.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst myNamespaces = alicloud.cs.getRegistryEnterpriseNamespaces({\n    instanceId: \"cri-xxx\",\n    nameRegex: \"my-namespace\",\n    outputFile: \"my-namespace-json\",\n});\nexport const output = myNamespaces.then(myNamespaces =\u003e myNamespaces.namespaces);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nmy_namespaces = alicloud.cs.get_registry_enterprise_namespaces(instance_id=\"cri-xxx\",\n    name_regex=\"my-namespace\",\n    output_file=\"my-namespace-json\")\npulumi.export(\"output\", my_namespaces.namespaces)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var myNamespaces = AliCloud.CS.GetRegistryEnterpriseNamespaces.Invoke(new()\n    {\n        InstanceId = \"cri-xxx\",\n        NameRegex = \"my-namespace\",\n        OutputFile = \"my-namespace-json\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"output\"] = myNamespaces.Apply(getRegistryEnterpriseNamespacesResult =\u003e getRegistryEnterpriseNamespacesResult.Namespaces),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tmyNamespaces, err := cs.GetRegistryEnterpriseNamespaces(ctx, \u0026cs.GetRegistryEnterpriseNamespacesArgs{\n\t\t\tInstanceId: \"cri-xxx\",\n\t\t\tNameRegex:  pulumi.StringRef(\"my-namespace\"),\n\t\t\tOutputFile: pulumi.StringRef(\"my-namespace-json\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"output\", myNamespaces.Namespaces)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetRegistryEnterpriseNamespacesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var myNamespaces = CsFunctions.getRegistryEnterpriseNamespaces(GetRegistryEnterpriseNamespacesArgs.builder()\n            .instanceId(\"cri-xxx\")\n            .nameRegex(\"my-namespace\")\n            .outputFile(\"my-namespace-json\")\n            .build());\n\n        ctx.export(\"output\", myNamespaces.namespaces());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  myNamespaces:\n    fn::invoke:\n      function: alicloud:cs:getRegistryEnterpriseNamespaces\n      arguments:\n        instanceId: cri-xxx\n        nameRegex: my-namespace\n        outputFile: my-namespace-json\noutputs:\n  output: ${myNamespaces.namespaces}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRegistryEnterpriseNamespaces.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of ids to filter results by namespace id. Each item formats as `\u003cinstance_id\u003e:\u003cnamespace_name\u003e`.\n"},"instanceId":{"type":"string","description":"ID of Container Registry Enterprise Edition instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by namespace name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getRegistryEnterpriseNamespaces.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of matched Container Registry Enterprise Edition namespaces. Each item formats as `\u003cinstance_id\u003e:\u003cnamespace_name\u003e`. Before 1.161.0, its element is a namespace uuid.\n","items":{"type":"string"},"type":"array"},"instanceId":{"description":"ID of Container Registry Enterprise Edition instance.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of namespace names.\n","items":{"type":"string"},"type":"array"},"namespaces":{"description":"A list of matched Container Registry Enterprise Edition namespaces. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cs/getRegistryEnterpriseNamespacesNamespace:getRegistryEnterpriseNamespacesNamespace"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","instanceId","names","namespaces","id"],"type":"object"}},"alicloud:cs/getRegistryEnterpriseRepos:getRegistryEnterpriseRepos":{"description":"This data source provides the Container Registry Enterprise Edition Repositories of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.87.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.cs.getRegistryEnterpriseInstances({\n    nameRegex: \"default-nodeleting\",\n});\nconst defaultRegistryEnterpriseNamespace = new alicloud.cs.RegistryEnterpriseNamespace(\"default\", {\n    instanceId: _default.then(_default =\u003e _default.ids?.[0]),\n    name: name,\n    autoCreate: true,\n    defaultVisibility: \"PRIVATE\",\n});\nconst defaultRegistryEnterpriseRepo = new alicloud.cs.RegistryEnterpriseRepo(\"default\", {\n    instanceId: defaultRegistryEnterpriseNamespace.instanceId,\n    namespace: defaultRegistryEnterpriseNamespace.name,\n    name: name,\n    repoType: \"PRIVATE\",\n    summary: name,\n});\nconst ids = alicloud.cs.getRegistryEnterpriseReposOutput({\n    ids: [defaultRegistryEnterpriseRepo.repoId],\n    instanceId: defaultRegistryEnterpriseRepo.instanceId,\n});\nexport const crEeReposId0 = ids.apply(ids =\u003e ids.repos?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.cs.get_registry_enterprise_instances(name_regex=\"default-nodeleting\")\ndefault_registry_enterprise_namespace = alicloud.cs.RegistryEnterpriseNamespace(\"default\",\n    instance_id=default.ids[0],\n    name=name,\n    auto_create=True,\n    default_visibility=\"PRIVATE\")\ndefault_registry_enterprise_repo = alicloud.cs.RegistryEnterpriseRepo(\"default\",\n    instance_id=default_registry_enterprise_namespace.instance_id,\n    namespace=default_registry_enterprise_namespace.name,\n    name=name,\n    repo_type=\"PRIVATE\",\n    summary=name)\nids = alicloud.cs.get_registry_enterprise_repos_output(ids=[default_registry_enterprise_repo.repo_id],\n    instance_id=default_registry_enterprise_repo.instance_id)\npulumi.export(\"crEeReposId0\", ids.repos[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.CS.GetRegistryEnterpriseInstances.Invoke(new()\n    {\n        NameRegex = \"default-nodeleting\",\n    });\n\n    var defaultRegistryEnterpriseNamespace = new AliCloud.CS.RegistryEnterpriseNamespace(\"default\", new()\n    {\n        InstanceId = @default.Apply(@default =\u003e @default.Apply(getRegistryEnterpriseInstancesResult =\u003e getRegistryEnterpriseInstancesResult.Ids[0])),\n        Name = name,\n        AutoCreate = true,\n        DefaultVisibility = \"PRIVATE\",\n    });\n\n    var defaultRegistryEnterpriseRepo = new AliCloud.CS.RegistryEnterpriseRepo(\"default\", new()\n    {\n        InstanceId = defaultRegistryEnterpriseNamespace.InstanceId,\n        Namespace = defaultRegistryEnterpriseNamespace.Name,\n        Name = name,\n        RepoType = \"PRIVATE\",\n        Summary = name,\n    });\n\n    var ids = AliCloud.CS.GetRegistryEnterpriseRepos.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultRegistryEnterpriseRepo.RepoId,\n        },\n        InstanceId = defaultRegistryEnterpriseRepo.InstanceId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"crEeReposId0\"] = ids.Apply(getRegistryEnterpriseReposResult =\u003e getRegistryEnterpriseReposResult.Repos[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := cs.GetRegistryEnterpriseInstances(ctx, \u0026cs.GetRegistryEnterpriseInstancesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"default-nodeleting\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegistryEnterpriseNamespace, err := cs.NewRegistryEnterpriseNamespace(ctx, \"default\", \u0026cs.RegistryEnterpriseNamespaceArgs{\n\t\t\tInstanceId:        pulumi.String(_default.Ids[0]),\n\t\t\tName:              pulumi.String(name),\n\t\t\tAutoCreate:        pulumi.Bool(true),\n\t\t\tDefaultVisibility: pulumi.String(\"PRIVATE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRegistryEnterpriseRepo, err := cs.NewRegistryEnterpriseRepo(ctx, \"default\", \u0026cs.RegistryEnterpriseRepoArgs{\n\t\t\tInstanceId: defaultRegistryEnterpriseNamespace.InstanceId,\n\t\t\tNamespace:  defaultRegistryEnterpriseNamespace.Name,\n\t\t\tName:       pulumi.String(name),\n\t\t\tRepoType:   pulumi.String(\"PRIVATE\"),\n\t\t\tSummary:    pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := cs.GetRegistryEnterpriseReposOutput(ctx, cs.GetRegistryEnterpriseReposOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultRegistryEnterpriseRepo.RepoId,\n\t\t\t},\n\t\t\tInstanceId: defaultRegistryEnterpriseRepo.InstanceId,\n\t\t}, nil)\n\t\tctx.Export(\"crEeReposId0\", ids.ApplyT(func(ids cs.GetRegistryEnterpriseReposResult) (*string, error) {\n\t\t\treturn \u0026ids.Repos[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetRegistryEnterpriseInstancesArgs;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseNamespace;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseNamespaceArgs;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseRepo;\nimport com.pulumi.alicloud.cs.RegistryEnterpriseRepoArgs;\nimport com.pulumi.alicloud.cs.inputs.GetRegistryEnterpriseReposArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = CsFunctions.getRegistryEnterpriseInstances(GetRegistryEnterpriseInstancesArgs.builder()\n            .nameRegex(\"default-nodeleting\")\n            .build());\n\n        var defaultRegistryEnterpriseNamespace = new RegistryEnterpriseNamespace(\"defaultRegistryEnterpriseNamespace\", RegistryEnterpriseNamespaceArgs.builder()\n            .instanceId(default_.ids()[0])\n            .name(name)\n            .autoCreate(true)\n            .defaultVisibility(\"PRIVATE\")\n            .build());\n\n        var defaultRegistryEnterpriseRepo = new RegistryEnterpriseRepo(\"defaultRegistryEnterpriseRepo\", RegistryEnterpriseRepoArgs.builder()\n            .instanceId(defaultRegistryEnterpriseNamespace.instanceId())\n            .namespace(defaultRegistryEnterpriseNamespace.name())\n            .name(name)\n            .repoType(\"PRIVATE\")\n            .summary(name)\n            .build());\n\n        final var ids = CsFunctions.getRegistryEnterpriseRepos(GetRegistryEnterpriseReposArgs.builder()\n            .ids(defaultRegistryEnterpriseRepo.repoId())\n            .instanceId(defaultRegistryEnterpriseRepo.instanceId())\n            .build());\n\n        ctx.export(\"crEeReposId0\", ids.applyValue(_ids -\u003e _ids.repos()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultRegistryEnterpriseNamespace:\n    type: alicloud:cs:RegistryEnterpriseNamespace\n    name: default\n    properties:\n      instanceId: ${default.ids[0]}\n      name: ${name}\n      autoCreate: true\n      defaultVisibility: PRIVATE\n  defaultRegistryEnterpriseRepo:\n    type: alicloud:cs:RegistryEnterpriseRepo\n    name: default\n    properties:\n      instanceId: ${defaultRegistryEnterpriseNamespace.instanceId}\n      namespace: ${defaultRegistryEnterpriseNamespace.name}\n      name: ${name}\n      repoType: PRIVATE\n      summary: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cs:getRegistryEnterpriseInstances\n      arguments:\n        nameRegex: default-nodeleting\n  ids:\n    fn::invoke:\n      function: alicloud:cs:getRegistryEnterpriseRepos\n      arguments:\n        ids:\n          - ${defaultRegistryEnterpriseRepo.repoId}\n        instanceId: ${defaultRegistryEnterpriseRepo.instanceId}\noutputs:\n  crEeReposId0: ${ids.repos[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRegistryEnterpriseRepos.\n","properties":{"enableDetails":{"type":"boolean","description":"Whether to query the detailed list of resource attributes. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Repository IDs.\n"},"instanceId":{"type":"string","description":"The ID of the Container Registry instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Repository name.\n"},"namespace":{"type":"string","description":"The name of the namespace to which the Repository belongs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getRegistryEnterpriseRepos.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"description":"The ID of the Container Registry instance to which the Repository belongs.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Repository names.\n","items":{"type":"string"},"type":"array"},"namespace":{"description":"The name of the namespace to which the Repository belongs.\n","type":"string"},"outputFile":{"type":"string"},"repos":{"description":"A list of Repositories. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cs/getRegistryEnterpriseReposRepo:getRegistryEnterpriseReposRepo"},"type":"array"}},"required":["ids","instanceId","names","repos","id"],"type":"object"}},"alicloud:cs/getRegistryEnterpriseSyncRules:getRegistryEnterpriseSyncRules":{"description":"This data source provides a list Container Registry Enterprise Edition sync rules on Alibaba Cloud.\n\n\u003e **NOTE:** Available in v1.90.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst mySyncRules = alicloud.cs.getRegistryEnterpriseSyncRules({\n    instanceId: \"cri-xxx\",\n    namespaceName: \"test-namespace\",\n    repoName: \"test-repo\",\n    targetInstanceId: \"cri-yyy\",\n    nameRegex: \"test-rule\",\n});\nexport const output = mySyncRules.then(mySyncRules =\u003e mySyncRules.rules.map(__item =\u003e __item.id));\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nmy_sync_rules = alicloud.cs.get_registry_enterprise_sync_rules(instance_id=\"cri-xxx\",\n    namespace_name=\"test-namespace\",\n    repo_name=\"test-repo\",\n    target_instance_id=\"cri-yyy\",\n    name_regex=\"test-rule\")\npulumi.export(\"output\", [__item.id for __item in my_sync_rules.rules])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var mySyncRules = AliCloud.CS.GetRegistryEnterpriseSyncRules.Invoke(new()\n    {\n        InstanceId = \"cri-xxx\",\n        NamespaceName = \"test-namespace\",\n        RepoName = \"test-repo\",\n        TargetInstanceId = \"cri-yyy\",\n        NameRegex = \"test-rule\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"output\"] = mySyncRules.Apply(getRegistryEnterpriseSyncRulesResult =\u003e getRegistryEnterpriseSyncRulesResult.Rules).Select(__item =\u003e __item.Id).ToList(),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n// Declare the data source\nmySyncRules, err := cs.GetRegistryEnterpriseSyncRules(ctx, \u0026cs.GetRegistryEnterpriseSyncRulesArgs{\nInstanceId: \"cri-xxx\",\nNamespaceName: pulumi.StringRef(\"test-namespace\"),\nRepoName: pulumi.StringRef(\"test-repo\"),\nTargetInstanceId: pulumi.StringRef(\"cri-yyy\"),\nNameRegex: pulumi.StringRef(\"test-rule\"),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"output\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:10,11-34)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetRegistryEnterpriseSyncRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var mySyncRules = CsFunctions.getRegistryEnterpriseSyncRules(GetRegistryEnterpriseSyncRulesArgs.builder()\n            .instanceId(\"cri-xxx\")\n            .namespaceName(\"test-namespace\")\n            .repoName(\"test-repo\")\n            .targetInstanceId(\"cri-yyy\")\n            .nameRegex(\"test-rule\")\n            .build());\n\n        ctx.export(\"output\", mySyncRules.rules().stream().map(element -\u003e element.id()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRegistryEnterpriseSyncRules.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of ids to filter results by sync rule id.\n"},"instanceId":{"type":"string","description":"ID of Container Registry Enterprise Edition local instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by sync rule name.\n"},"namespaceName":{"type":"string","description":"Name of Container Registry Enterprise Edition local namespace.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"repoName":{"type":"string","description":"Name of Container Registry Enterprise Edition local repo.\n"},"targetInstanceId":{"type":"string","description":"ID of Container Registry Enterprise Edition target instance.\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getRegistryEnterpriseSyncRules.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of matched Container Registry Enterprise Edition sync rules. Its element is a sync rule uuid.\n","items":{"type":"string"},"type":"array"},"instanceId":{"description":"ID of Container Registry Enterprise Edition local instance.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of sync rule names.\n","items":{"type":"string"},"type":"array"},"namespaceName":{"description":"Name of Container Registry Enterprise Edition local namespace.\n","type":"string"},"outputFile":{"type":"string"},"repoName":{"description":"Name of Container Registry Enterprise Edition local repo.\n","type":"string"},"rules":{"description":"A list of matched Container Registry Enterprise Edition sync rules. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cs/getRegistryEnterpriseSyncRulesRule:getRegistryEnterpriseSyncRulesRule"},"type":"array"},"targetInstanceId":{"description":"ID of Container Registry Enterprise Edition target instance.\n","type":"string"}},"required":["ids","instanceId","names","rules","id"],"type":"object"}},"alicloud:cs/getServerlessKubernetesClusters:getServerlessKubernetesClusters":{"description":"This data source provides a list Container Service Serverless Kubernetes Clusters on Alibaba Cloud.\n\n\u003e **NOTE:** Available since v1.58.0\n\n\u003e **NOTE:** From version v1.177.0+, We supported batch export of clusters' kube config information by \u003cspan pulumi-lang-nodejs=\"`kubeConfigFilePrefix`\" pulumi-lang-dotnet=\"`KubeConfigFilePrefix`\" pulumi-lang-go=\"`kubeConfigFilePrefix`\" pulumi-lang-python=\"`kube_config_file_prefix`\" pulumi-lang-yaml=\"`kubeConfigFilePrefix`\" pulumi-lang-java=\"`kubeConfigFilePrefix`\"\u003e`kube_config_file_prefix`\u003c/span\u003e.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst k8sClusters = alicloud.cs.getServerlessKubernetesClusters({\n    nameRegex: \"my-first-k8s\",\n    outputFile: \"my-first-k8s-json\",\n    kubeConfigFilePrefix: \"~/.kube/serverless\",\n});\nexport const output = k8sClusters.then(k8sClusters =\u003e k8sClusters.clusters);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nk8s_clusters = alicloud.cs.get_serverless_kubernetes_clusters(name_regex=\"my-first-k8s\",\n    output_file=\"my-first-k8s-json\",\n    kube_config_file_prefix=\"~/.kube/serverless\")\npulumi.export(\"output\", k8s_clusters.clusters)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var k8sClusters = AliCloud.CS.GetServerlessKubernetesClusters.Invoke(new()\n    {\n        NameRegex = \"my-first-k8s\",\n        OutputFile = \"my-first-k8s-json\",\n        KubeConfigFilePrefix = \"~/.kube/serverless\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"output\"] = k8sClusters.Apply(getServerlessKubernetesClustersResult =\u003e getServerlessKubernetesClustersResult.Clusters),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tk8sClusters, err := cs.GetServerlessKubernetesClusters(ctx, \u0026cs.GetServerlessKubernetesClustersArgs{\n\t\t\tNameRegex:            pulumi.StringRef(\"my-first-k8s\"),\n\t\t\tOutputFile:           pulumi.StringRef(\"my-first-k8s-json\"),\n\t\t\tKubeConfigFilePrefix: pulumi.StringRef(\"~/.kube/serverless\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"output\", k8sClusters.Clusters)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cs.CsFunctions;\nimport com.pulumi.alicloud.cs.inputs.GetServerlessKubernetesClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var k8sClusters = CsFunctions.getServerlessKubernetesClusters(GetServerlessKubernetesClustersArgs.builder()\n            .nameRegex(\"my-first-k8s\")\n            .outputFile(\"my-first-k8s-json\")\n            .kubeConfigFilePrefix(\"~/.kube/serverless\")\n            .build());\n\n        ctx.export(\"output\", k8sClusters.clusters());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  k8sClusters:\n    fn::invoke:\n      function: alicloud:cs:getServerlessKubernetesClusters\n      arguments:\n        nameRegex: my-first-k8s\n        outputFile: my-first-k8s-json\n        kubeConfigFilePrefix: ~/.kube/serverless\noutputs:\n  output: ${k8sClusters.clusters}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerlessKubernetesClusters.\n","properties":{"enableDetails":{"type":"boolean","description":"Boolean, false by default, only \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e are exported. Set to true if more details are needed, e.g.,  \u003cspan pulumi-lang-nodejs=\"`deletionProtection`\" pulumi-lang-dotnet=\"`DeletionProtection`\" pulumi-lang-go=\"`deletionProtection`\" pulumi-lang-python=\"`deletion_protection`\" pulumi-lang-yaml=\"`deletionProtection`\" pulumi-lang-java=\"`deletionProtection`\"\u003e`deletion_protection`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`connections`\" pulumi-lang-dotnet=\"`Connections`\" pulumi-lang-go=\"`connections`\" pulumi-lang-python=\"`connections`\" pulumi-lang-yaml=\"`connections`\" pulumi-lang-java=\"`connections`\"\u003e`connections`\u003c/span\u003e. See full list in attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"Cluster IDs to filter.\n"},"kubeConfigFilePrefix":{"type":"string","description":"The path prefix of kube config. You could store kube config in a specified directory by specifying this field, like `~/.kube/serverless`, then it will be named with `~/.kube/serverless-clusterID-kubeconfig`. From version 1.243.0,\u003cspan pulumi-lang-nodejs=\" kubeConfig \" pulumi-lang-dotnet=\" KubeConfig \" pulumi-lang-go=\" kubeConfig \" pulumi-lang-python=\" kube_config \" pulumi-lang-yaml=\" kubeConfig \" pulumi-lang-java=\" kubeConfig \"\u003e kube_config \u003c/span\u003ewill not export\u003cspan pulumi-lang-nodejs=\" kubeConfig \" pulumi-lang-dotnet=\" KubeConfig \" pulumi-lang-go=\" kubeConfig \" pulumi-lang-python=\" kube_config \" pulumi-lang-yaml=\" kubeConfig \" pulumi-lang-java=\" kubeConfig \"\u003e kube_config \u003c/span\u003eif this field is not set. Please use the attribute\u003cspan pulumi-lang-nodejs=\" outputFile \" pulumi-lang-dotnet=\" OutputFile \" pulumi-lang-go=\" outputFile \" pulumi-lang-python=\" output_file \" pulumi-lang-yaml=\" outputFile \" pulumi-lang-java=\" outputFile \"\u003e output_file \u003c/span\u003eof new DataSource \u003cspan pulumi-lang-nodejs=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-dotnet=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-go=\"`cs.getClusterCredential`\" pulumi-lang-python=\"`cs_get_cluster_credential`\" pulumi-lang-yaml=\"`alicloud.cs.getClusterCredential`\" pulumi-lang-java=\"`alicloud.cs.getClusterCredential`\"\u003e`alicloud.cs.getClusterCredential`\u003c/span\u003e to replace it\n","deprecationMessage":"Field 'kube_config_file_prefix' has been deprecated from provider version 1.243.0. From version 1.243.0, please use the attribute 'output_file' of new DataSource 'alicloud_cs_cluster_credential' to replace it."},"nameRegex":{"type":"string","description":"A regex string to filter results by cluster name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServerlessKubernetesClusters.\n","properties":{"clusters":{"description":"A list of matched Kubernetes clusters. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:cs/getServerlessKubernetesClustersCluster:getServerlessKubernetesClustersCluster"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of matched Kubernetes clusters' ids.\n","items":{"type":"string"},"type":"array"},"kubeConfigFilePrefix":{"deprecationMessage":"Field 'kube_config_file_prefix' has been deprecated from provider version 1.243.0. From version 1.243.0, please use the attribute 'output_file' of new DataSource 'alicloud_cs_cluster_credential' to replace it.","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of matched Kubernetes clusters' names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["clusters","ids","names","id"],"type":"object"}},"alicloud:databasefilesystem/getAutoSnapShotPolicies:getAutoSnapShotPolicies":{"description":"This data source provides Dbfs Auto Snap Shot Policy available to the user.[What is Auto Snap Shot Policy](https://help.aliyun.com/document_detail/469597.html)\n\n\u003e **NOTE:** Available in 1.202.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.databasefilesystem.getAutoSnapShotPolicies({\n    ids: [defaultAlicloudDbfsAutoSnapShotPolicy.id],\n});\nexport const alicloudDbfsAutoSnapShotPolicyExampleId = _default.then(_default =\u003e _default.autoSnapShotPolicies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.databasefilesystem.get_auto_snap_shot_policies(ids=[default_alicloud_dbfs_auto_snap_shot_policy[\"id\"]])\npulumi.export(\"alicloudDbfsAutoSnapShotPolicyExampleId\", default.auto_snap_shot_policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.DatabaseFilesystem.GetAutoSnapShotPolicies.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudDbfsAutoSnapShotPolicy.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudDbfsAutoSnapShotPolicyExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getAutoSnapShotPoliciesResult =\u003e getAutoSnapShotPoliciesResult.AutoSnapShotPolicies[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/databasefilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := databasefilesystem.GetAutoSnapShotPolicies(ctx, \u0026databasefilesystem.GetAutoSnapShotPoliciesArgs{\nIds: interface{}{\ndefaultAlicloudDbfsAutoSnapShotPolicy.Id,\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudDbfsAutoSnapShotPolicyExampleId\", _default.AutoSnapShotPolicies[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.databasefilesystem.DatabasefilesystemFunctions;\nimport com.pulumi.alicloud.databasefilesystem.inputs.GetAutoSnapShotPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = DatabasefilesystemFunctions.getAutoSnapShotPolicies(GetAutoSnapShotPoliciesArgs.builder()\n            .ids(defaultAlicloudDbfsAutoSnapShotPolicy.id())\n            .build());\n\n        ctx.export(\"alicloudDbfsAutoSnapShotPolicyExampleId\", default_.autoSnapShotPolicies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:databasefilesystem:getAutoSnapShotPolicies\n      arguments:\n        ids:\n          - ${defaultAlicloudDbfsAutoSnapShotPolicy.id}\noutputs:\n  alicloudDbfsAutoSnapShotPolicyExampleId: ${default.autoSnapShotPolicies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAutoSnapShotPolicies.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Auto Snap Shot Policy IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Auto Snap Shot Policy name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAutoSnapShotPolicies.\n","properties":{"autoSnapShotPolicies":{"description":"A list of Auto Snap Shot Policy Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:databasefilesystem/getAutoSnapShotPoliciesAutoSnapShotPolicy:getAutoSnapShotPoliciesAutoSnapShotPolicy"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Auto Snap Shot Policy IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Auto Snap Shot Policy names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["autoSnapShotPolicies","ids","names","id"],"type":"object"}},"alicloud:databasefilesystem/getInstances:getInstances":{"description":"This data source provides the DBFS Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.136.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.databasefilesystem.getInstances({\n    ids: [\"example_id\"],\n});\nexport const dbfsInstanceId1 = ids.then(ids =\u003e ids.instances?.[0]?.id);\nconst nameRegex = alicloud.databasefilesystem.getInstances({\n    nameRegex: \"^my-Instance\",\n});\nexport const dbfsInstanceId2 = nameRegex.then(nameRegex =\u003e nameRegex.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.databasefilesystem.get_instances(ids=[\"example_id\"])\npulumi.export(\"dbfsInstanceId1\", ids.instances[0].id)\nname_regex = alicloud.databasefilesystem.get_instances(name_regex=\"^my-Instance\")\npulumi.export(\"dbfsInstanceId2\", name_regex.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.DatabaseFilesystem.GetInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.DatabaseFilesystem.GetInstances.Invoke(new()\n    {\n        NameRegex = \"^my-Instance\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dbfsInstanceId1\"] = ids.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n        [\"dbfsInstanceId2\"] = nameRegex.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/databasefilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := databasefilesystem.GetInstances(ctx, \u0026databasefilesystem.GetInstancesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dbfsInstanceId1\", ids.Instances[0].Id)\n\t\tnameRegex, err := databasefilesystem.GetInstances(ctx, \u0026databasefilesystem.GetInstancesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dbfsInstanceId2\", nameRegex.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.databasefilesystem.DatabasefilesystemFunctions;\nimport com.pulumi.alicloud.databasefilesystem.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DatabasefilesystemFunctions.getInstances(GetInstancesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"dbfsInstanceId1\", ids.instances()[0].id());\n        final var nameRegex = DatabasefilesystemFunctions.getInstances(GetInstancesArgs.builder()\n            .nameRegex(\"^my-Instance\")\n            .build());\n\n        ctx.export(\"dbfsInstanceId2\", nameRegex.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:databasefilesystem:getInstances\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:databasefilesystem:getInstances\n      arguments:\n        nameRegex: ^my-Instance\noutputs:\n  dbfsInstanceId1: ${ids.instances[0].id}\n  dbfsInstanceId2: ${nameRegex.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Instance IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"Database file system state. Valid values: \u003cspan pulumi-lang-nodejs=\"`attached`\" pulumi-lang-dotnet=\"`Attached`\" pulumi-lang-go=\"`attached`\" pulumi-lang-python=\"`attached`\" pulumi-lang-yaml=\"`attached`\" pulumi-lang-java=\"`attached`\"\u003e`attached`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`attaching`\" pulumi-lang-dotnet=\"`Attaching`\" pulumi-lang-go=\"`attaching`\" pulumi-lang-python=\"`attaching`\" pulumi-lang-yaml=\"`attaching`\" pulumi-lang-java=\"`attaching`\"\u003e`attaching`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`creating`\" pulumi-lang-dotnet=\"`Creating`\" pulumi-lang-go=\"`creating`\" pulumi-lang-python=\"`creating`\" pulumi-lang-yaml=\"`creating`\" pulumi-lang-java=\"`creating`\"\u003e`creating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleted`\" pulumi-lang-dotnet=\"`Deleted`\" pulumi-lang-go=\"`deleted`\" pulumi-lang-python=\"`deleted`\" pulumi-lang-yaml=\"`deleted`\" pulumi-lang-java=\"`deleted`\"\u003e`deleted`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`detaching`\" pulumi-lang-dotnet=\"`Detaching`\" pulumi-lang-go=\"`detaching`\" pulumi-lang-python=\"`detaching`\" pulumi-lang-yaml=\"`detaching`\" pulumi-lang-java=\"`detaching`\"\u003e`detaching`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`resizing`\" pulumi-lang-dotnet=\"`Resizing`\" pulumi-lang-go=\"`resizing`\" pulumi-lang-python=\"`resizing`\" pulumi-lang-yaml=\"`resizing`\" pulumi-lang-java=\"`resizing`\"\u003e`resizing`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`snapshotting`\" pulumi-lang-dotnet=\"`Snapshotting`\" pulumi-lang-go=\"`snapshotting`\" pulumi-lang-python=\"`snapshotting`\" pulumi-lang-yaml=\"`snapshotting`\" pulumi-lang-java=\"`snapshotting`\"\u003e`snapshotting`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unattached`\" pulumi-lang-dotnet=\"`Unattached`\" pulumi-lang-go=\"`unattached`\" pulumi-lang-python=\"`unattached`\" pulumi-lang-yaml=\"`unattached`\" pulumi-lang-java=\"`unattached`\"\u003e`unattached`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`upgrading`\" pulumi-lang-dotnet=\"`Upgrading`\" pulumi-lang-go=\"`upgrading`\" pulumi-lang-python=\"`upgrading`\" pulumi-lang-yaml=\"`upgrading`\" pulumi-lang-java=\"`upgrading`\"\u003e`upgrading`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instances":{"items":{"$ref":"#/types/alicloud:databasefilesystem/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:databasefilesystem/getSnapshots:getSnapshots":{"description":"This data source provides the Dbfs Snapshots of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.156.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.databasefilesystem.getSnapshots({\n    ids: [\"example_id\"],\n});\nexport const dbfsSnapshotId1 = ids.then(ids =\u003e ids.snapshots?.[0]?.id);\nconst nameRegex = alicloud.databasefilesystem.getSnapshots({\n    nameRegex: \"^my-Snapshot\",\n});\nexport const dbfsSnapshotId2 = nameRegex.then(nameRegex =\u003e nameRegex.snapshots?.[0]?.id);\nconst status = alicloud.databasefilesystem.getSnapshots({\n    status: \"accomplished\",\n});\nexport const dbfsSnapshotId3 = status.then(status =\u003e status.snapshots?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.databasefilesystem.get_snapshots(ids=[\"example_id\"])\npulumi.export(\"dbfsSnapshotId1\", ids.snapshots[0].id)\nname_regex = alicloud.databasefilesystem.get_snapshots(name_regex=\"^my-Snapshot\")\npulumi.export(\"dbfsSnapshotId2\", name_regex.snapshots[0].id)\nstatus = alicloud.databasefilesystem.get_snapshots(status=\"accomplished\")\npulumi.export(\"dbfsSnapshotId3\", status.snapshots[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.DatabaseFilesystem.GetSnapshots.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.DatabaseFilesystem.GetSnapshots.Invoke(new()\n    {\n        NameRegex = \"^my-Snapshot\",\n    });\n\n    var status = AliCloud.DatabaseFilesystem.GetSnapshots.Invoke(new()\n    {\n        Status = \"accomplished\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dbfsSnapshotId1\"] = ids.Apply(getSnapshotsResult =\u003e getSnapshotsResult.Snapshots[0]?.Id),\n        [\"dbfsSnapshotId2\"] = nameRegex.Apply(getSnapshotsResult =\u003e getSnapshotsResult.Snapshots[0]?.Id),\n        [\"dbfsSnapshotId3\"] = status.Apply(getSnapshotsResult =\u003e getSnapshotsResult.Snapshots[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/databasefilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := databasefilesystem.GetSnapshots(ctx, \u0026databasefilesystem.GetSnapshotsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dbfsSnapshotId1\", ids.Snapshots[0].Id)\n\t\tnameRegex, err := databasefilesystem.GetSnapshots(ctx, \u0026databasefilesystem.GetSnapshotsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Snapshot\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dbfsSnapshotId2\", nameRegex.Snapshots[0].Id)\n\t\tstatus, err := databasefilesystem.GetSnapshots(ctx, \u0026databasefilesystem.GetSnapshotsArgs{\n\t\t\tStatus: pulumi.StringRef(\"accomplished\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dbfsSnapshotId3\", status.Snapshots[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.databasefilesystem.DatabasefilesystemFunctions;\nimport com.pulumi.alicloud.databasefilesystem.inputs.GetSnapshotsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DatabasefilesystemFunctions.getSnapshots(GetSnapshotsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"dbfsSnapshotId1\", ids.snapshots()[0].id());\n        final var nameRegex = DatabasefilesystemFunctions.getSnapshots(GetSnapshotsArgs.builder()\n            .nameRegex(\"^my-Snapshot\")\n            .build());\n\n        ctx.export(\"dbfsSnapshotId2\", nameRegex.snapshots()[0].id());\n        final var status = DatabasefilesystemFunctions.getSnapshots(GetSnapshotsArgs.builder()\n            .status(\"accomplished\")\n            .build());\n\n        ctx.export(\"dbfsSnapshotId3\", status.snapshots()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:databasefilesystem:getSnapshots\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:databasefilesystem:getSnapshots\n      arguments:\n        nameRegex: ^my-Snapshot\n  status:\n    fn::invoke:\n      function: alicloud:databasefilesystem:getSnapshots\n      arguments:\n        status: accomplished\noutputs:\n  dbfsSnapshotId1: ${ids.snapshots[0].id}\n  dbfsSnapshotId2: ${nameRegex.snapshots[0].id}\n  dbfsSnapshotId3: ${status.snapshots[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSnapshots.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Snapshot IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Snapshot name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the snapshot. Valid values: \u003cspan pulumi-lang-nodejs=\"`accomplished`\" pulumi-lang-dotnet=\"`Accomplished`\" pulumi-lang-go=\"`accomplished`\" pulumi-lang-python=\"`accomplished`\" pulumi-lang-yaml=\"`accomplished`\" pulumi-lang-java=\"`accomplished`\"\u003e`accomplished`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`failed`\" pulumi-lang-dotnet=\"`Failed`\" pulumi-lang-go=\"`failed`\" pulumi-lang-python=\"`failed`\" pulumi-lang-yaml=\"`failed`\" pulumi-lang-java=\"`failed`\"\u003e`failed`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`progressing`\" pulumi-lang-dotnet=\"`Progressing`\" pulumi-lang-go=\"`progressing`\" pulumi-lang-python=\"`progressing`\" pulumi-lang-yaml=\"`progressing`\" pulumi-lang-java=\"`progressing`\"\u003e`progressing`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSnapshots.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"snapshots":{"items":{"$ref":"#/types/alicloud:databasefilesystem/getSnapshotsSnapshot:getSnapshotsSnapshot"},"type":"array"},"status":{"type":"string"}},"required":["ids","names","snapshots","id"],"type":"object"}},"alicloud:databasegateway/getGateways:getGateways":{"description":"This data source provides the Database Gateway Gateways of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.135.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.databasegateway.getGateways({\n    ids: [\"example_id\"],\n});\nexport const databaseGatewayGatewayId1 = ids.then(ids =\u003e ids.gateways?.[0]?.id);\nconst nameRegex = alicloud.databasegateway.getGateways({\n    nameRegex: \"^my-Gateway\",\n});\nexport const databaseGatewayGatewayId2 = nameRegex.then(nameRegex =\u003e nameRegex.gateways?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.databasegateway.get_gateways(ids=[\"example_id\"])\npulumi.export(\"databaseGatewayGatewayId1\", ids.gateways[0].id)\nname_regex = alicloud.databasegateway.get_gateways(name_regex=\"^my-Gateway\")\npulumi.export(\"databaseGatewayGatewayId2\", name_regex.gateways[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.DatabaseGateway.GetGateways.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.DatabaseGateway.GetGateways.Invoke(new()\n    {\n        NameRegex = \"^my-Gateway\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"databaseGatewayGatewayId1\"] = ids.Apply(getGatewaysResult =\u003e getGatewaysResult.Gateways[0]?.Id),\n        [\"databaseGatewayGatewayId2\"] = nameRegex.Apply(getGatewaysResult =\u003e getGatewaysResult.Gateways[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/databasegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := databasegateway.GetGateways(ctx, \u0026databasegateway.GetGatewaysArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"databaseGatewayGatewayId1\", ids.Gateways[0].Id)\n\t\tnameRegex, err := databasegateway.GetGateways(ctx, \u0026databasegateway.GetGatewaysArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Gateway\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"databaseGatewayGatewayId2\", nameRegex.Gateways[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.databasegateway.DatabasegatewayFunctions;\nimport com.pulumi.alicloud.databasegateway.inputs.GetGatewaysArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DatabasegatewayFunctions.getGateways(GetGatewaysArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"databaseGatewayGatewayId1\", ids.gateways()[0].id());\n        final var nameRegex = DatabasegatewayFunctions.getGateways(GetGatewaysArgs.builder()\n            .nameRegex(\"^my-Gateway\")\n            .build());\n\n        ctx.export(\"databaseGatewayGatewayId2\", nameRegex.gateways()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:databasegateway:getGateways\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:databasegateway:getGateways\n      arguments:\n        nameRegex: ^my-Gateway\noutputs:\n  databaseGatewayGatewayId1: ${ids.gateways[0].id}\n  databaseGatewayGatewayId2: ${nameRegex.gateways[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGateways.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Gateway IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Gateway name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"searchKey":{"type":"string","description":"The search key.\n"},"status":{"type":"string","description":"The status of gateway. Valid values: `EXCEPTION`, `NEW`, `RUNNING`, `STOPPED`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGateways.\n","properties":{"enableDetails":{"type":"boolean"},"gateways":{"items":{"$ref":"#/types/alicloud:databasegateway/getGatewaysGateway:getGatewaysGateway"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"searchKey":{"type":"string"},"status":{"type":"string"}},"required":["gateways","ids","names","id"],"type":"object"}},"alicloud:datahub/getService:getService":{"description":"Using this data source can open DataHub service automatically. If the service has been opened, it will return opened.\n\nFor information about DataHub and how to use it, see [What is DataHub](https://help.aliyun.com/product/53345.html).\n\n\u003e **NOTE:** Available in v1.111.0+\n\n\u003e **NOTE:** The DataHub service is not support in the international site.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.datahub.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.datahub.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Datahub.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/datahub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datahub.GetService(ctx, \u0026datahub.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.datahub.DatahubFunctions;\nimport com.pulumi.alicloud.datahub.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = DatahubFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:datahub:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the DataHub service that means you have read and agreed the [DataHub Terms of Service](https://help.aliyun.com/document_detail/158927.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:dataworks/getFolders:getFolders":{"description":"This data source provides the Data Works Folders of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.131.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.dataworks.Folder(\"default\", {\n    projectId: \"xxxx\",\n    folderPath: \"Business Flow/tfTestAcc/folderDi\",\n});\nconst ids = pulumi.all([_default.folderId, _default.projectId]).apply(([folderId, projectId]) =\u003e alicloud.dataworks.getFoldersOutput({\n    ids: [folderId],\n    projectId: projectId,\n    parentFolderPath: \"Business Flow/tfTestAcc/folderDi\",\n}));\nexport const dataWorksFolderId1 = ids.apply(ids =\u003e ids.folders?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.dataworks.Folder(\"default\",\n    project_id=\"xxxx\",\n    folder_path=\"Business Flow/tfTestAcc/folderDi\")\nids = pulumi.Output.all(\n    folder_id=default.folder_id,\n    project_id=default.project_id\n).apply(lambda resolved_outputs: alicloud.dataworks.get_folders_output(ids=[resolved_outputs['folder_id']],\n    project_id=resolved_outputs['project_id'],\n    parent_folder_path=\"Business Flow/tfTestAcc/folderDi\"))\n\npulumi.export(\"dataWorksFolderId1\", ids.folders[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.DataWorks.Folder(\"default\", new()\n    {\n        ProjectId = \"xxxx\",\n        FolderPath = \"Business Flow/tfTestAcc/folderDi\",\n    });\n\n    var ids = AliCloud.DataWorks.GetFolders.Invoke(new()\n    {\n        Ids = new[]\n        {\n            @default.FolderId,\n        },\n        ProjectId = @default.ProjectId,\n        ParentFolderPath = \"Business Flow/tfTestAcc/folderDi\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dataWorksFolderId1\"] = ids.Apply(getFoldersResult =\u003e getFoldersResult.Folders[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dataworks\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := dataworks.NewFolder(ctx, \"default\", \u0026dataworks.FolderArgs{\n\t\t\tProjectId:  pulumi.String(\"xxxx\"),\n\t\t\tFolderPath: pulumi.String(\"Business Flow/tfTestAcc/folderDi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := pulumi.All(_default.FolderId, _default.ProjectId).ApplyT(func(_args []interface{}) (dataworks.GetFoldersResult, error) {\n\t\t\tfolderId := _args[0].(string)\n\t\t\tprojectId := _args[1].(*string)\n\t\t\treturn dataworks.GetFoldersResult(interface{}(dataworks.GetFolders(ctx, \u0026dataworks.GetFoldersArgs{\n\t\t\t\tIds: []string{\n\t\t\t\t\tfolderId,\n\t\t\t\t},\n\t\t\t\tProjectId:        projectId,\n\t\t\t\tParentFolderPath: \"Business Flow/tfTestAcc/folderDi\",\n\t\t\t}, nil))), nil\n\t\t}).(dataworks.GetFoldersResultOutput)\n\t\tctx.Export(\"dataWorksFolderId1\", ids.ApplyT(func(ids dataworks.GetFoldersResult) (*string, error) {\n\t\t\treturn \u0026ids.Folders[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dataworks.Folder;\nimport com.pulumi.alicloud.dataworks.FolderArgs;\nimport com.pulumi.alicloud.dataworks.DataworksFunctions;\nimport com.pulumi.alicloud.dataworks.inputs.GetFoldersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Folder(\"default\", FolderArgs.builder()\n            .projectId(\"xxxx\")\n            .folderPath(\"Business Flow/tfTestAcc/folderDi\")\n            .build());\n\n        final var ids = Output.tuple(default_.folderId(), default_.projectId()).applyValue(values -\u003e {\n            var folderId = values.t1;\n            var projectId = values.t2;\n            return DataworksFunctions.getFolders(GetFoldersArgs.builder()\n                .ids(folderId)\n                .projectId(projectId)\n                .parentFolderPath(\"Business Flow/tfTestAcc/folderDi\")\n                .build());\n        });\n\n        ctx.export(\"dataWorksFolderId1\", ids.applyValue(_ids -\u003e _ids.folders()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:dataworks:Folder\n    properties:\n      projectId: xxxx\n      folderPath: Business Flow/tfTestAcc/folderDi\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dataworks:getFolders\n      arguments:\n        ids:\n          - ${default.folderId}\n        projectId: ${default.projectId}\n        parentFolderPath: Business Flow/tfTestAcc/folderDi\noutputs:\n  dataWorksFolderId1: ${ids.folders[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFolders.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Folder IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"parentFolderPath":{"type":"string","description":"The parent folder path.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"}},"type":"object","required":["parentFolderPath","projectId"]},"outputs":{"description":"A collection of values returned by getFolders.\n","properties":{"folders":{"items":{"$ref":"#/types/alicloud:dataworks/getFoldersFolder:getFoldersFolder"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"parentFolderPath":{"type":"string"},"projectId":{"type":"string"}},"required":["folders","ids","parentFolderPath","projectId","id"],"type":"object"}},"alicloud:dataworks/getService:getService":{"description":"Using this data source can open DataWorks service automatically. If the service has been opened, it will return opened.\n\nFor information about DataWorks and how to use it, see [What is DataWorks](https://www.alibabacloud.com/help/en/product/72772.htm).\n\n\u003e **NOTE:** Available in v1.118.0+. After the version 1.141.0, the data source is renamed as \u003cspan pulumi-lang-nodejs=\"`alicloud.dataworks.getService`\" pulumi-lang-dotnet=\"`alicloud.dataworks.getService`\" pulumi-lang-go=\"`dataworks.getService`\" pulumi-lang-python=\"`dataworks_get_service`\" pulumi-lang-yaml=\"`alicloud.dataworks.getService`\" pulumi-lang-java=\"`alicloud.dataworks.getService`\"\u003e`alicloud.dataworks.getService`\u003c/span\u003e.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.dataworks.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.dataworks.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.DataWorks.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dataworks\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dataworks.GetService(ctx, \u0026dataworks.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dataworks.DataworksFunctions;\nimport com.pulumi.alicloud.dataworks.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = DataworksFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:dataworks:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the DataWorks service that means you have read and agreed the [DataWorks Terms of Service](https://help.aliyun.com/document_detail/131538.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:dbs/getBackupPlans:getBackupPlans":{"description":"This data source provides the Dbs Backup Plans of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.185.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dbs.getBackupPlans({});\nexport const dbsBackupPlanId1 = ids.then(ids =\u003e ids.plans?.[0]?.id);\nconst nameRegex = alicloud.dbs.getBackupPlans({\n    nameRegex: \"^my-BackupPlan\",\n});\nexport const dbsBackupPlanId2 = nameRegex.then(nameRegex =\u003e nameRegex.plans?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dbs.get_backup_plans()\npulumi.export(\"dbsBackupPlanId1\", ids.plans[0].id)\nname_regex = alicloud.dbs.get_backup_plans(name_regex=\"^my-BackupPlan\")\npulumi.export(\"dbsBackupPlanId2\", name_regex.plans[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.DBS.GetBackupPlans.Invoke();\n\n    var nameRegex = AliCloud.DBS.GetBackupPlans.Invoke(new()\n    {\n        NameRegex = \"^my-BackupPlan\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dbsBackupPlanId1\"] = ids.Apply(getBackupPlansResult =\u003e getBackupPlansResult.Plans[0]?.Id),\n        [\"dbsBackupPlanId2\"] = nameRegex.Apply(getBackupPlansResult =\u003e getBackupPlansResult.Plans[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dbs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dbs.GetBackupPlans(ctx, \u0026dbs.GetBackupPlansArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dbsBackupPlanId1\", ids.Plans[0].Id)\n\t\tnameRegex, err := dbs.GetBackupPlans(ctx, \u0026dbs.GetBackupPlansArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-BackupPlan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dbsBackupPlanId2\", nameRegex.Plans[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dbs.DbsFunctions;\nimport com.pulumi.alicloud.dbs.inputs.GetBackupPlansArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DbsFunctions.getBackupPlans(GetBackupPlansArgs.builder()\n            .build());\n\n        ctx.export(\"dbsBackupPlanId1\", ids.plans()[0].id());\n        final var nameRegex = DbsFunctions.getBackupPlans(GetBackupPlansArgs.builder()\n            .nameRegex(\"^my-BackupPlan\")\n            .build());\n\n        ctx.export(\"dbsBackupPlanId2\", nameRegex.plans()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dbs:getBackupPlans\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:dbs:getBackupPlans\n      arguments:\n        nameRegex: ^my-BackupPlan\noutputs:\n  dbsBackupPlanId1: ${ids.plans[0].id}\n  dbsBackupPlanId2: ${nameRegex.plans[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBackupPlans.\n","properties":{"backupPlanName":{"type":"string","description":"The name of the resource.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e can hide the \u003cspan pulumi-lang-nodejs=\"`paymentType`\" pulumi-lang-dotnet=\"`PaymentType`\" pulumi-lang-go=\"`paymentType`\" pulumi-lang-python=\"`payment_type`\" pulumi-lang-yaml=\"`paymentType`\" pulumi-lang-java=\"`paymentType`\"\u003e`payment_type`\u003c/span\u003e to output.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Backup Plan IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Backup Plan name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`checkPass`\" pulumi-lang-dotnet=\"`CheckPass`\" pulumi-lang-go=\"`checkPass`\" pulumi-lang-python=\"`check_pass`\" pulumi-lang-yaml=\"`checkPass`\" pulumi-lang-java=\"`checkPass`\"\u003e`check_pass`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`locked`\" pulumi-lang-dotnet=\"`Locked`\" pulumi-lang-go=\"`locked`\" pulumi-lang-python=\"`locked`\" pulumi-lang-yaml=\"`locked`\" pulumi-lang-java=\"`locked`\"\u003e`locked`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pause`\" pulumi-lang-dotnet=\"`Pause`\" pulumi-lang-go=\"`pause`\" pulumi-lang-python=\"`pause`\" pulumi-lang-yaml=\"`pause`\" pulumi-lang-java=\"`pause`\"\u003e`pause`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stop`\" pulumi-lang-dotnet=\"`Stop`\" pulumi-lang-go=\"`stop`\" pulumi-lang-python=\"`stop`\" pulumi-lang-yaml=\"`stop`\" pulumi-lang-java=\"`stop`\"\u003e`stop`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`wait`\" pulumi-lang-dotnet=\"`Wait`\" pulumi-lang-go=\"`wait`\" pulumi-lang-python=\"`wait`\" pulumi-lang-yaml=\"`wait`\" pulumi-lang-java=\"`wait`\"\u003e`wait`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBackupPlans.\n","properties":{"backupPlanName":{"type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"plans":{"items":{"$ref":"#/types/alicloud:dbs/getBackupPlansPlan:getBackupPlansPlan"},"type":"array"},"status":{"type":"string"}},"required":["ids","names","plans","id"],"type":"object"}},"alicloud:dcdn/getDomains:getDomains":{"description":"Provides a collection of DCDN Domains to the specified filters.\n\n\u003e **NOTE:** Available since 1.94.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.dcdn.getDomains({\n    ids: [\"example.com\"],\n});\nexport const domainId = example.then(example =\u003e example.domains?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.dcdn.get_domains(ids=[\"example.com\"])\npulumi.export(\"domainId\", example.domains[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Dcdn.GetDomains.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example.com\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"domainId\"] = example.Apply(getDomainsResult =\u003e getDomainsResult.Domains[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := dcdn.GetDomains(ctx, \u0026dcdn.GetDomainsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example.com\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"domainId\", example.Domains[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dcdn.DcdnFunctions;\nimport com.pulumi.alicloud.dcdn.inputs.GetDomainsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = DcdnFunctions.getDomains(GetDomainsArgs.builder()\n            .ids(\"example.com\")\n            .build());\n\n        ctx.export(\"domainId\", example.domains()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:dcdn:getDomains\n      arguments:\n        ids:\n          - example.com\noutputs:\n  domainId: ${example.domains[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDomains.\n","properties":{"changeEndTime":{"type":"string","description":"The end time of the update. Specify the time in the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in UTC.\n"},"changeStartTime":{"type":"string","description":"The start time of the update. Specify the time in the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in UTC.\n"},"checkDomainShow":{"type":"boolean","description":"Specifies whether to display the domains in the checking, check_failed, or\u003cspan pulumi-lang-nodejs=\" configureFailed \" pulumi-lang-dotnet=\" ConfigureFailed \" pulumi-lang-go=\" configureFailed \" pulumi-lang-python=\" configure_failed \" pulumi-lang-yaml=\" configureFailed \" pulumi-lang-java=\" configureFailed \"\u003e configure_failed \u003c/span\u003estatus. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"domainSearchType":{"type":"string","description":"The search method. Default value: \u003cspan pulumi-lang-nodejs=\"`fuzzyMatch`\" pulumi-lang-dotnet=\"`FuzzyMatch`\" pulumi-lang-go=\"`fuzzyMatch`\" pulumi-lang-python=\"`fuzzy_match`\" pulumi-lang-yaml=\"`fuzzyMatch`\" pulumi-lang-java=\"`fuzzyMatch`\"\u003e`fuzzy_match`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`fuzzyMatch`\" pulumi-lang-dotnet=\"`FuzzyMatch`\" pulumi-lang-go=\"`fuzzyMatch`\" pulumi-lang-python=\"`fuzzy_match`\" pulumi-lang-yaml=\"`fuzzyMatch`\" pulumi-lang-java=\"`fuzzyMatch`\"\u003e`fuzzy_match`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`preMatch`\" pulumi-lang-dotnet=\"`PreMatch`\" pulumi-lang-go=\"`preMatch`\" pulumi-lang-python=\"`pre_match`\" pulumi-lang-yaml=\"`preMatch`\" pulumi-lang-java=\"`preMatch`\"\u003e`pre_match`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sufMatch`\" pulumi-lang-dotnet=\"`SufMatch`\" pulumi-lang-go=\"`sufMatch`\" pulumi-lang-python=\"`suf_match`\" pulumi-lang-yaml=\"`sufMatch`\" pulumi-lang-java=\"`sufMatch`\"\u003e`suf_match`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`fullMatch`\" pulumi-lang-dotnet=\"`FullMatch`\" pulumi-lang-go=\"`fullMatch`\" pulumi-lang-python=\"`full_match`\" pulumi-lang-yaml=\"`fullMatch`\" pulumi-lang-java=\"`fullMatch`\"\u003e`full_match`\u003c/span\u003e.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to true can output more details.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list ids of DCDN Domain.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by the DCDN Domain.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityToken":{"type":"string"},"status":{"type":"string","description":"The status of DCDN Domain.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDomains.\n","properties":{"changeEndTime":{"type":"string"},"changeStartTime":{"type":"string"},"checkDomainShow":{"type":"boolean"},"domainSearchType":{"type":"string"},"domains":{"description":"A list of domains. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dcdn/getDomainsDomain:getDomainsDomain"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list ids of DCDN Domain.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of DCDN Domain names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"description":"The ID of the resource group.\n","type":"string"},"securityToken":{"type":"string"},"status":{"description":"The status of DCDN Domain. Valid values: \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`checkFailed`\" pulumi-lang-dotnet=\"`CheckFailed`\" pulumi-lang-go=\"`checkFailed`\" pulumi-lang-python=\"`check_failed`\" pulumi-lang-yaml=\"`checkFailed`\" pulumi-lang-java=\"`checkFailed`\"\u003e`check_failed`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`checking`\" pulumi-lang-dotnet=\"`Checking`\" pulumi-lang-go=\"`checking`\" pulumi-lang-python=\"`checking`\" pulumi-lang-yaml=\"`checking`\" pulumi-lang-java=\"`checking`\"\u003e`checking`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configureFailed`\" pulumi-lang-dotnet=\"`ConfigureFailed`\" pulumi-lang-go=\"`configureFailed`\" pulumi-lang-python=\"`configure_failed`\" pulumi-lang-yaml=\"`configureFailed`\" pulumi-lang-java=\"`configureFailed`\"\u003e`configure_failed`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e.\n","type":"string"}},"required":["domains","ids","names","id"],"type":"object"}},"alicloud:dcdn/getIpaDomains:getIpaDomains":{"description":"This data source provides the Dcdn Ipa Domains of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.158.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dcdn.getIpaDomains({\n    domainName: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const dcdnIpaDomainId1 = ids.then(ids =\u003e ids.domains?.[0]?.id);\nconst status = alicloud.dcdn.getIpaDomains({\n    status: \"online\",\n});\nexport const dcdnIpaDomainId2 = status.then(status =\u003e status.domains?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dcdn.get_ipa_domains(domain_name=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"dcdnIpaDomainId1\", ids.domains[0].id)\nstatus = alicloud.dcdn.get_ipa_domains(status=\"online\")\npulumi.export(\"dcdnIpaDomainId2\", status.domains[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Dcdn.GetIpaDomains.Invoke(new()\n    {\n        DomainName = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var status = AliCloud.Dcdn.GetIpaDomains.Invoke(new()\n    {\n        Status = \"online\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dcdnIpaDomainId1\"] = ids.Apply(getIpaDomainsResult =\u003e getIpaDomainsResult.Domains[0]?.Id),\n        [\"dcdnIpaDomainId2\"] = status.Apply(getIpaDomainsResult =\u003e getIpaDomainsResult.Domains[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dcdn.GetIpaDomains(ctx, \u0026dcdn.GetIpaDomainsArgs{\n\t\t\tDomainName: pulumi.StringRef(\"example_value\"),\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dcdnIpaDomainId1\", ids.Domains[0].Id)\n\t\tstatus, err := dcdn.GetIpaDomains(ctx, \u0026dcdn.GetIpaDomainsArgs{\n\t\t\tStatus: pulumi.StringRef(\"online\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dcdnIpaDomainId2\", status.Domains[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dcdn.DcdnFunctions;\nimport com.pulumi.alicloud.dcdn.inputs.GetIpaDomainsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DcdnFunctions.getIpaDomains(GetIpaDomainsArgs.builder()\n            .domainName(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"dcdnIpaDomainId1\", ids.domains()[0].id());\n        final var status = DcdnFunctions.getIpaDomains(GetIpaDomainsArgs.builder()\n            .status(\"online\")\n            .build());\n\n        ctx.export(\"dcdnIpaDomainId2\", status.domains()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dcdn:getIpaDomains\n      arguments:\n        domainName: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  status:\n    fn::invoke:\n      function: alicloud:dcdn:getIpaDomains\n      arguments:\n        status: online\noutputs:\n  dcdnIpaDomainId1: ${ids.domains[0].id}\n  dcdnIpaDomainId2: ${status.domains[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpaDomains.\n","properties":{"domainName":{"type":"string","description":"The name of the Domain.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ipa Domain IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the accelerated domain name. Valid values: \u003cspan pulumi-lang-nodejs=\"`checkFailed`\" pulumi-lang-dotnet=\"`CheckFailed`\" pulumi-lang-go=\"`checkFailed`\" pulumi-lang-python=\"`check_failed`\" pulumi-lang-yaml=\"`checkFailed`\" pulumi-lang-java=\"`checkFailed`\"\u003e`check_failed`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`checking`\" pulumi-lang-dotnet=\"`Checking`\" pulumi-lang-go=\"`checking`\" pulumi-lang-python=\"`checking`\" pulumi-lang-yaml=\"`checking`\" pulumi-lang-java=\"`checking`\"\u003e`checking`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configureFailed`\" pulumi-lang-dotnet=\"`ConfigureFailed`\" pulumi-lang-go=\"`configureFailed`\" pulumi-lang-python=\"`configure_failed`\" pulumi-lang-yaml=\"`configureFailed`\" pulumi-lang-java=\"`configureFailed`\"\u003e`configure_failed`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpaDomains.\n","properties":{"domainName":{"description":"The accelerated domain names.\n","type":"string"},"domains":{"description":"A list of Dcdn Ipa Domains. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dcdn/getIpaDomainsDomain:getIpaDomainsDomain"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"names":{"description":"A list of Dcdn Ipa Domain names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the accelerated domain name.\n","type":"string"}},"required":["domains","ids","names","id"],"type":"object"}},"alicloud:dcdn/getKvAccount:getKvAccount":{"description":"This data source provides DCDN kv account available to the user.[What is DCDN Kv Account](https://www.alibabacloud.com/help/en/dcdn/developer-reference/api-dcdn-2018-01-15-describedcdnkvaccount)\n\n\u003e **NOTE:** Available since v1.198.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst status = alicloud.dcdn.getKvAccount({\n    status: \"online\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nstatus = alicloud.dcdn.get_kv_account(status=\"online\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var status = AliCloud.Dcdn.GetKvAccount.Invoke(new()\n    {\n        Status = \"online\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dcdn.GetKvAccount(ctx, \u0026dcdn.GetKvAccountArgs{\n\t\t\tStatus: pulumi.StringRef(\"online\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dcdn.DcdnFunctions;\nimport com.pulumi.alicloud.dcdn.inputs.GetKvAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var status = DcdnFunctions.getKvAccount(GetKvAccountArgs.builder()\n            .status(\"online\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  status:\n    fn::invoke:\n      function: alicloud:dcdn:getKvAccount\n      arguments:\n        status: online\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKvAccount.\n","properties":{"status":{"type":"string","description":"The status of the KV feature for your account. Valid values: \u003cspan pulumi-lang-nodejs=\"`online`\" pulumi-lang-dotnet=\"`Online`\" pulumi-lang-go=\"`online`\" pulumi-lang-python=\"`online`\" pulumi-lang-yaml=\"`online`\" pulumi-lang-java=\"`online`\"\u003e`online`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`offline`\" pulumi-lang-dotnet=\"`Offline`\" pulumi-lang-go=\"`offline`\" pulumi-lang-python=\"`offline`\" pulumi-lang-yaml=\"`offline`\" pulumi-lang-java=\"`offline`\"\u003e`offline`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getKvAccount.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current kv account enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:dcdn/getService:getService":{"description":"Using this data source can open DCDN service automatically. If the service has been opened, it will return opened.\n\nFor information about DCDN and how to use it, see [What is DCDN](https://help.aliyun.com/document_detail/197288.html).\n\n\u003e **NOTE:** Available in v1.111.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.dcdn.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.dcdn.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Dcdn.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dcdn.GetService(ctx, \u0026dcdn.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dcdn.DcdnFunctions;\nimport com.pulumi.alicloud.dcdn.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = DcdnFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:dcdn:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the DCDN service that means you have read and agreed the [DCDN Terms of Service](https://help.aliyun.com/document_detail/169354.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:dcdn/getWafDomains:getWafDomains":{"description":"This data source provides the Dcdn Waf Domains of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.185.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dcdn.getWafDomains({});\nexport const dcdnWafDomainId1 = ids.then(ids =\u003e ids.domains?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dcdn.get_waf_domains()\npulumi.export(\"dcdnWafDomainId1\", ids.domains[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Dcdn.GetWafDomains.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dcdnWafDomainId1\"] = ids.Apply(getWafDomainsResult =\u003e getWafDomainsResult.Domains[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dcdn.GetWafDomains(ctx, \u0026dcdn.GetWafDomainsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dcdnWafDomainId1\", ids.Domains[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dcdn.DcdnFunctions;\nimport com.pulumi.alicloud.dcdn.inputs.GetWafDomainsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DcdnFunctions.getWafDomains(GetWafDomainsArgs.builder()\n            .build());\n\n        ctx.export(\"dcdnWafDomainId1\", ids.domains()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dcdn:getWafDomains\n      arguments: {}\noutputs:\n  dcdnWafDomainId1: ${ids.domains[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getWafDomains.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Waf Domain IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"queryArgs":{"type":"string","description":"The query conditions. You can filter domain names by name. Fuzzy match is supported `QueryArgs={\"DomainName\":\"Accelerated domain name\"}`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getWafDomains.\n","properties":{"domains":{"description":"A list of Dcdn Waf Domains. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dcdn/getWafDomainsDomain:getWafDomainsDomain"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"queryArgs":{"type":"string"}},"required":["domains","ids","id"],"type":"object"}},"alicloud:dcdn/getWafPolicies:getWafPolicies":{"description":"This data source provides the Dcdn Waf Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.184.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dcdn.getWafPolicies({});\nexport const dcdnWafPolicyId1 = ids.then(ids =\u003e ids.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dcdn.get_waf_policies()\npulumi.export(\"dcdnWafPolicyId1\", ids.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Dcdn.GetWafPolicies.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dcdnWafPolicyId1\"] = ids.Apply(getWafPoliciesResult =\u003e getWafPoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dcdn.GetWafPolicies(ctx, \u0026dcdn.GetWafPoliciesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dcdnWafPolicyId1\", ids.Policies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dcdn.DcdnFunctions;\nimport com.pulumi.alicloud.dcdn.inputs.GetWafPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DcdnFunctions.getWafPolicies(GetWafPoliciesArgs.builder()\n            .build());\n\n        ctx.export(\"dcdnWafPolicyId1\", ids.policies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dcdn:getWafPolicies\n      arguments: {}\noutputs:\n  dcdnWafPolicyId1: ${ids.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getWafPolicies.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Waf Policy IDs.\n"},"nameRegex":{"type":"string"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"queryArgs":{"type":"string","description":"The query conditions. The value is a string in the JSON format. Format: `{\"PolicyIds\":\"The ID of the proteuleIds\":\"Thection policy\",\"R range of protection rule IDs\",\"PolicyNameLike\":\"The name of the protection policy\",\"DomainNames\":\"The protected domain names\",\"PolicyType\":\"default\",\"DefenseScenes\":\u003cspan pulumi-lang-nodejs=\"\"wafGroup\"\" pulumi-lang-dotnet=\"\"WafGroup\"\" pulumi-lang-go=\"\"wafGroup\"\" pulumi-lang-python=\"\"waf_group\"\" pulumi-lang-yaml=\"\"wafGroup\"\" pulumi-lang-java=\"\"wafGroup\"\"\u003e\"waf_group\"\u003c/span\u003e,\"PolicyStatus\":\"on\",\"OrderBy\":\"GmtModified\",\"Desc\":\"false\"}`.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getWafPolicies.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policies":{"description":"A list of Dcdn Waf Policies. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dcdn/getWafPoliciesPolicy:getWafPoliciesPolicy"},"type":"array"},"queryArgs":{"type":"string"},"status":{"description":"The status of the resource.\n","type":"string"}},"required":["ids","names","policies","id"],"type":"object"}},"alicloud:dcdn/getWafRules:getWafRules":{"description":"This data source provides Dcdn Waf Rule available to the user.[What is Waf Rule](https://www.alibabacloud.com/help/en/dcdn/developer-reference/api-dcdn-2018-01-15-batchcreatedcdnwafrules)\n\n\u003e **NOTE:** Available since v1.201.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.dcdn.getWafRules({\n    ids: [defaultAlicloudDcdnWafRule.id],\n});\nexport const alicloudDcdnWafRuleExampleId = _default.then(_default =\u003e _default.wafRules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.dcdn.get_waf_rules(ids=[default_alicloud_dcdn_waf_rule[\"id\"]])\npulumi.export(\"alicloudDcdnWafRuleExampleId\", default.waf_rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Dcdn.GetWafRules.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudDcdnWafRule.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudDcdnWafRuleExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getWafRulesResult =\u003e getWafRulesResult.WafRules[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dcdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := dcdn.GetWafRules(ctx, \u0026dcdn.GetWafRulesArgs{\nIds: interface{}{\ndefaultAlicloudDcdnWafRule.Id,\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudDcdnWafRuleExampleId\", _default.WafRules[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dcdn.DcdnFunctions;\nimport com.pulumi.alicloud.dcdn.inputs.GetWafRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = DcdnFunctions.getWafRules(GetWafRulesArgs.builder()\n            .ids(defaultAlicloudDcdnWafRule.id())\n            .build());\n\n        ctx.export(\"alicloudDcdnWafRuleExampleId\", default_.wafRules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:dcdn:getWafRules\n      arguments:\n        ids:\n          - ${defaultAlicloudDcdnWafRule.id}\noutputs:\n  alicloudDcdnWafRuleExampleId: ${default.wafRules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getWafRules.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Waf Rule IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"queryArgs":{"type":"string","description":"The query conditions. The value is a string in the JSON format.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getWafRules.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"queryArgs":{"type":"string"},"wafRules":{"description":"A list of Waf Rule Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dcdn/getWafRulesWafRule:getWafRulesWafRule"},"type":"array"}},"required":["ids","wafRules","id"],"type":"object"}},"alicloud:ddos/getDdosBgpInstances:getDdosBgpInstances":{"description":"This data source provides a list of Anti-DDoS Advanced instances in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available in v1.183.0+ .\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nexport = async () =\u003e {\n    const config = new pulumi.Config();\n    const name = config.get(\"name\") || \"tf-example\";\n    const instanceDdosBgpInstance = new alicloud.ddos.DdosBgpInstance(\"instance\", {\n        name: name,\n        baseBandwidth: 20,\n        bandwidth: -1,\n        ipCount: 100,\n        ipType: \"IPv4\",\n        normalBandwidth: 100,\n        type: \"Enterprise\",\n    });\n    const instance = await alicloud.ddos.getDdosBgpInstances({\n        nameRegex: \"ddosbgp\",\n    });\n    return {\n        instance: [instance].map(__item =\u003e __item.id),\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ninstance_ddos_bgp_instance = alicloud.ddos.DdosBgpInstance(\"instance\",\n    name=name,\n    base_bandwidth=20,\n    bandwidth=-1,\n    ip_count=100,\n    ip_type=\"IPv4\",\n    normal_bandwidth=100,\n    type=\"Enterprise\")\ninstance = alicloud.ddos.get_ddos_bgp_instances(name_regex=\"ddosbgp\")\npulumi.export(\"instance\", [__item.id for __item in [instance]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var instanceDdosBgpInstance = new AliCloud.Ddos.DdosBgpInstance(\"instance\", new()\n    {\n        Name = name,\n        BaseBandwidth = 20,\n        Bandwidth = -1,\n        IpCount = 100,\n        IpType = \"IPv4\",\n        NormalBandwidth = 100,\n        Type = \"Enterprise\",\n    });\n\n    var instance = AliCloud.Ddos.GetDdosBgpInstances.Invoke(new()\n    {\n        NameRegex = \"ddosbgp\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"instance\"] = new[]\n        {\n            instance,\n        }.Select(__item =\u003e __item.Id).ToList(),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"tf-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_, err := ddos.NewDdosBgpInstance(ctx, \"instance\", \u0026ddos.DdosBgpInstanceArgs{\nName: pulumi.String(name),\nBaseBandwidth: pulumi.Int(20),\nBandwidth: pulumi.Int(-1),\nIpCount: pulumi.Int(100),\nIpType: pulumi.String(\"IPv4\"),\nNormalBandwidth: pulumi.Int(100),\nType: pulumi.String(\"Enterprise\"),\n})\nif err != nil {\nreturn err\n}\ninstance, err := ddos.GetDdosBgpInstances(ctx, \u0026ddos.GetDdosBgpInstancesArgs{\nNameRegex: pulumi.StringRef(\"ddosbgp\"),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"instance\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:21,11-25)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ddos.DdosBgpInstance;\nimport com.pulumi.alicloud.ddos.DdosBgpInstanceArgs;\nimport com.pulumi.alicloud.ddos.DdosFunctions;\nimport com.pulumi.alicloud.ddos.inputs.GetDdosBgpInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        var instanceDdosBgpInstance = new DdosBgpInstance(\"instanceDdosBgpInstance\", DdosBgpInstanceArgs.builder()\n            .name(name)\n            .baseBandwidth(20)\n            .bandwidth(-1)\n            .ipCount(100)\n            .ipType(\"IPv4\")\n            .normalBandwidth(100)\n            .type(\"Enterprise\")\n            .build());\n\n        final var instance = DdosFunctions.getDdosBgpInstances(GetDdosBgpInstancesArgs.builder()\n            .nameRegex(\"ddosbgp\")\n            .build());\n\n        ctx.export(\"instance\", instance.stream().map(element -\u003e element.id()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDdosBgpInstances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of instance IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by the instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDdosBgpInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of instance IDs.\n","items":{"type":"string"},"type":"array"},"instances":{"description":"A list of apis. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ddos/getDdosBgpInstancesInstance:getDdosBgpInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of instance names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:ddos/getDdosBgpIps:getDdosBgpIps":{"description":"This data source provides the Ddos Bgp Ips of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.180.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ddos.getDdosBgpIps({\n    instanceId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const ddosbgpIpId1 = ids.then(ids =\u003e ids.ips?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ddos.get_ddos_bgp_ips(instance_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"ddosbgpIpId1\", ids.ips[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ddos.GetDdosBgpIps.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ddosbgpIpId1\"] = ids.Apply(getDdosBgpIpsResult =\u003e getDdosBgpIpsResult.Ips[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ddos.GetDdosBgpIps(ctx, \u0026ddos.GetDdosBgpIpsArgs{\n\t\t\tInstanceId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ddosbgpIpId1\", ids.Ips[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ddos.DdosFunctions;\nimport com.pulumi.alicloud.ddos.inputs.GetDdosBgpIpsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DdosFunctions.getDdosBgpIps(GetDdosBgpIpsArgs.builder()\n            .instanceId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"ddosbgpIpId1\", ids.ips()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ddos:getDdosBgpIps\n      arguments:\n        instanceId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\noutputs:\n  ddosbgpIpId1: ${ids.ips[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDdosBgpIps.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ip IDs.\n"},"instanceId":{"type":"string","description":"The ID of the native protection enterprise instance to be operated.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"productName":{"type":"string","description":"The product name. Valid Value:`ECS`, `SLB`, `EIP`, `WAF`.\n"},"status":{"type":"string","description":"The current state of the IP address. Valid Value:\n- normal: indicates normal (not attacked).\n- hole_begin: indicates that you are in a black hole state.\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getDdosBgpIps.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"ips":{"items":{"$ref":"#/types/alicloud:ddos/getDdosBgpIpsIp:getDdosBgpIpsIp"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"productName":{"type":"string"},"status":{"type":"string"}},"required":["ids","instanceId","ips","id"],"type":"object"}},"alicloud:ddos/getDdosCooDomainResources:getDdosCooDomainResources":{"description":"This data source provides the Ddoscoo Domain Resources of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.123.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ddos.getDdosCooDomainResources({\n    ids: [\"tftestacc1234.abc\"],\n});\nexport const firstDdoscooDomainResourceId = example.then(example =\u003e example.resources?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ddos.get_ddos_coo_domain_resources(ids=[\"tftestacc1234.abc\"])\npulumi.export(\"firstDdoscooDomainResourceId\", example.resources[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ddos.GetDdosCooDomainResources.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"tftestacc1234.abc\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstDdoscooDomainResourceId\"] = example.Apply(getDdosCooDomainResourcesResult =\u003e getDdosCooDomainResourcesResult.Resources[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ddos.GetDdosCooDomainResources(ctx, \u0026ddos.GetDdosCooDomainResourcesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"tftestacc1234.abc\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstDdoscooDomainResourceId\", example.Resources[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ddos.DdosFunctions;\nimport com.pulumi.alicloud.ddos.inputs.GetDdosCooDomainResourcesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = DdosFunctions.getDdosCooDomainResources(GetDdosCooDomainResourcesArgs.builder()\n            .ids(\"tftestacc1234.abc\")\n            .build());\n\n        ctx.export(\"firstDdoscooDomainResourceId\", example.resources()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ddos:getDdosCooDomainResources\n      arguments:\n        ids:\n          - tftestacc1234.abc\noutputs:\n  firstDdoscooDomainResourceId: ${example.resources[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDdosCooDomainResources.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Domain Resource IDs.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"A ID list of Ddoscoo instance.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"queryDomainPattern":{"type":"string","description":"Match the pattern.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDdosCooDomainResources.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceIds":{"description":"A list ID of instance that you want to associate.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"queryDomainPattern":{"type":"string"},"resources":{"description":"A list of Ddoscoo Domain Resources. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ddos/getDdosCooDomainResourcesResource:getDdosCooDomainResourcesResource"},"type":"array"}},"required":["ids","resources","id"],"type":"object"}},"alicloud:ddos/getDdosCooInstances:getDdosCooInstances":{"description":"This data source provides the BGP-Line Anti-DDoS Pro(DdosCoo) instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.39.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ddos.getDdosCooInstances({\n    nameRegex: \"tf\",\n});\nexport const instance = _default.then(_default =\u003e _default.instances.map(__item =\u003e __item.id));\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ddos.get_ddos_coo_instances(name_regex=\"tf\")\npulumi.export(\"instance\", [__item.id for __item in default.instances])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ddos.GetDdosCooInstances.Invoke(new()\n    {\n        NameRegex = \"tf\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"instance\"] = @default.Apply(@default =\u003e @default.Apply(getDdosCooInstancesResult =\u003e getDdosCooInstancesResult.Instances).Select(__item =\u003e __item.Id).ToList()),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := ddos.GetDdosCooInstances(ctx, \u0026ddos.GetDdosCooInstancesArgs{\nNameRegex: pulumi.StringRef(\"tf\"),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"instance\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:6,11-34)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ddos.DdosFunctions;\nimport com.pulumi.alicloud.ddos.inputs.GetDdosCooInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = DdosFunctions.getDdosCooInstances(GetDdosCooInstancesArgs.builder()\n            .nameRegex(\"tf\")\n            .build());\n\n        ctx.export(\"instance\", default_.instances().stream().map(element -\u003e element.id()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDdosCooInstances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of instance IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by the instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDdosCooInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instances":{"description":"A list of apis. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ddos/getDdosCooInstancesInstance:getDdosCooInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of instance names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:ddos/getDdosCooPorts:getDdosCooPorts":{"description":"This data source provides the Ddoscoo Ports of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.123.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ddos.getDdosCooPorts({\n    instanceId: \"ddoscoo-cn-6ja1rl4j****\",\n    ids: [\"ddoscoo-cn-6ja1rl4j****:7001:tcp\"],\n});\nexport const firstDdoscooPortId = example.then(example =\u003e example.ports?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ddos.get_ddos_coo_ports(instance_id=\"ddoscoo-cn-6ja1rl4j****\",\n    ids=[\"ddoscoo-cn-6ja1rl4j****:7001:tcp\"])\npulumi.export(\"firstDdoscooPortId\", example.ports[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ddos.GetDdosCooPorts.Invoke(new()\n    {\n        InstanceId = \"ddoscoo-cn-6ja1rl4j****\",\n        Ids = new[]\n        {\n            \"ddoscoo-cn-6ja1rl4j****:7001:tcp\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstDdoscooPortId\"] = example.Apply(getDdosCooPortsResult =\u003e getDdosCooPortsResult.Ports[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ddos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ddos.GetDdosCooPorts(ctx, \u0026ddos.GetDdosCooPortsArgs{\n\t\t\tInstanceId: \"ddoscoo-cn-6ja1rl4j****\",\n\t\t\tIds: []string{\n\t\t\t\t\"ddoscoo-cn-6ja1rl4j****:7001:tcp\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstDdoscooPortId\", example.Ports[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ddos.DdosFunctions;\nimport com.pulumi.alicloud.ddos.inputs.GetDdosCooPortsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = DdosFunctions.getDdosCooPorts(GetDdosCooPortsArgs.builder()\n            .instanceId(\"ddoscoo-cn-6ja1rl4j****\")\n            .ids(\"ddoscoo-cn-6ja1rl4j****:7001:tcp\")\n            .build());\n\n        ctx.export(\"firstDdoscooPortId\", example.ports()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ddos:getDdosCooPorts\n      arguments:\n        instanceId: ddoscoo-cn-6ja1rl4j****\n        ids:\n          - ddoscoo-cn-6ja1rl4j****:7001:tcp\noutputs:\n  firstDdoscooPortId: ${example.ports[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDdosCooPorts.\n","properties":{"frontendPort":{"type":"string","description":"The forwarding port.\n"},"frontendProtocol":{"type":"string","description":"The forwarding protocol. Valid values \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Port IDs.\n"},"instanceId":{"type":"string","description":"The DdosCoo instance ID.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getDdosCooPorts.\n","properties":{"frontendPort":{"description":"The forwarding port.\n","type":"string"},"frontendProtocol":{"description":"The forwarding protocol.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"description":"The Ddoscoo instance ID.\n","type":"string"},"outputFile":{"type":"string"},"ports":{"description":"A list of DdosCoo Ports. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ddos/getDdosCooPortsPort:getDdosCooPortsPort"},"type":"array"}},"required":["ids","instanceId","ports","id"],"type":"object"}},"alicloud:dds/getMongoInstances:getMongoInstances":{"inputs":{"description":"A collection of arguments for invoking getMongoInstances.\n","properties":{"availabilityZone":{"type":"string"},"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"}},"instanceClass":{"type":"string"},"instanceType":{"type":"string"},"nameRegex":{"type":"string"},"outputFile":{"type":"string"},"status":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"type":"object"},"outputs":{"description":"A collection of values returned by getMongoInstances.\n","properties":{"availabilityZone":{"type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceClass":{"type":"string"},"instanceType":{"type":"string"},"instances":{"items":{"$ref":"#/types/alicloud:dds/getMongoInstancesInstance:getMongoInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:dfs/getAccessGroups:getAccessGroups":{"description":"This data source provides the Apsara File Storage for HDFS Access Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.133.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dfs.getAccessGroups({\n    ids: [\"example_id\"],\n});\nexport const dfsAccessGroupId1 = ids.then(ids =\u003e ids.groups?.[0]?.id);\nconst nameRegex = alicloud.dfs.getAccessGroups({\n    nameRegex: \"^my-AccessGroup\",\n});\nexport const dfsAccessGroupId2 = nameRegex.then(nameRegex =\u003e nameRegex.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dfs.get_access_groups(ids=[\"example_id\"])\npulumi.export(\"dfsAccessGroupId1\", ids.groups[0].id)\nname_regex = alicloud.dfs.get_access_groups(name_regex=\"^my-AccessGroup\")\npulumi.export(\"dfsAccessGroupId2\", name_regex.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Dfs.GetAccessGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Dfs.GetAccessGroups.Invoke(new()\n    {\n        NameRegex = \"^my-AccessGroup\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dfsAccessGroupId1\"] = ids.Apply(getAccessGroupsResult =\u003e getAccessGroupsResult.Groups[0]?.Id),\n        [\"dfsAccessGroupId2\"] = nameRegex.Apply(getAccessGroupsResult =\u003e getAccessGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dfs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dfs.GetAccessGroups(ctx, \u0026dfs.GetAccessGroupsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dfsAccessGroupId1\", ids.Groups[0].Id)\n\t\tnameRegex, err := dfs.GetAccessGroups(ctx, \u0026dfs.GetAccessGroupsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-AccessGroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dfsAccessGroupId2\", nameRegex.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dfs.DfsFunctions;\nimport com.pulumi.alicloud.dfs.inputs.GetAccessGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DfsFunctions.getAccessGroups(GetAccessGroupsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"dfsAccessGroupId1\", ids.groups()[0].id());\n        final var nameRegex = DfsFunctions.getAccessGroups(GetAccessGroupsArgs.builder()\n            .nameRegex(\"^my-AccessGroup\")\n            .build());\n\n        ctx.export(\"dfsAccessGroupId2\", nameRegex.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dfs:getAccessGroups\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:dfs:getAccessGroups\n      arguments:\n        nameRegex: ^my-AccessGroup\noutputs:\n  dfsAccessGroupId1: ${ids.groups[0].id}\n  dfsAccessGroupId2: ${nameRegex.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccessGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Access Group IDs.\n"},"limit":{"type":"integer"},"nameRegex":{"type":"string","description":"A regex string to filter results by Access Group name.\n"},"orderBy":{"type":"string"},"orderType":{"type":"string"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"startOffset":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAccessGroups.\n","properties":{"groups":{"items":{"$ref":"#/types/alicloud:dfs/getAccessGroupsGroup:getAccessGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"limit":{"type":"integer"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"orderBy":{"type":"string"},"orderType":{"type":"string"},"outputFile":{"type":"string"},"startOffset":{"type":"integer"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:dfs/getAccessRules:getAccessRules":{"description":"This data source provides the Dfs Access Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.140.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dfs.getAccessRules({\n    accessGroupId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const dfsAccessRuleId1 = ids.then(ids =\u003e ids.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dfs.get_access_rules(access_group_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"dfsAccessRuleId1\", ids.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Dfs.GetAccessRules.Invoke(new()\n    {\n        AccessGroupId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dfsAccessRuleId1\"] = ids.Apply(getAccessRulesResult =\u003e getAccessRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dfs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dfs.GetAccessRules(ctx, \u0026dfs.GetAccessRulesArgs{\n\t\t\tAccessGroupId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dfsAccessRuleId1\", ids.Rules[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dfs.DfsFunctions;\nimport com.pulumi.alicloud.dfs.inputs.GetAccessRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DfsFunctions.getAccessRules(GetAccessRulesArgs.builder()\n            .accessGroupId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"dfsAccessRuleId1\", ids.rules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dfs:getAccessRules\n      arguments:\n        accessGroupId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\noutputs:\n  dfsAccessRuleId1: ${ids.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccessRules.\n","properties":{"accessGroupId":{"type":"string","description":"The resource ID of the Access Group.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Access Rule IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["accessGroupId"]},"outputs":{"description":"A collection of values returned by getAccessRules.\n","properties":{"accessGroupId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"rules":{"items":{"$ref":"#/types/alicloud:dfs/getAccessRulesRule:getAccessRulesRule"},"type":"array"}},"required":["accessGroupId","ids","rules","id"],"type":"object"}},"alicloud:dfs/getFileSystems:getFileSystems":{"description":"This data source provides the Dfs File Systems of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.140.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dfs.getFileSystems({\n    ids: [\"example_id\"],\n});\nexport const dfsFileSystemId1 = ids.then(ids =\u003e ids.systems?.[0]?.id);\nconst nameRegex = alicloud.dfs.getFileSystems({\n    nameRegex: \"^my-FileSystem\",\n});\nexport const dfsFileSystemId2 = nameRegex.then(nameRegex =\u003e nameRegex.systems?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dfs.get_file_systems(ids=[\"example_id\"])\npulumi.export(\"dfsFileSystemId1\", ids.systems[0].id)\nname_regex = alicloud.dfs.get_file_systems(name_regex=\"^my-FileSystem\")\npulumi.export(\"dfsFileSystemId2\", name_regex.systems[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Dfs.GetFileSystems.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Dfs.GetFileSystems.Invoke(new()\n    {\n        NameRegex = \"^my-FileSystem\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dfsFileSystemId1\"] = ids.Apply(getFileSystemsResult =\u003e getFileSystemsResult.Systems[0]?.Id),\n        [\"dfsFileSystemId2\"] = nameRegex.Apply(getFileSystemsResult =\u003e getFileSystemsResult.Systems[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dfs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dfs.GetFileSystems(ctx, \u0026dfs.GetFileSystemsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dfsFileSystemId1\", ids.Systems[0].Id)\n\t\tnameRegex, err := dfs.GetFileSystems(ctx, \u0026dfs.GetFileSystemsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-FileSystem\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dfsFileSystemId2\", nameRegex.Systems[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dfs.DfsFunctions;\nimport com.pulumi.alicloud.dfs.inputs.GetFileSystemsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DfsFunctions.getFileSystems(GetFileSystemsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"dfsFileSystemId1\", ids.systems()[0].id());\n        final var nameRegex = DfsFunctions.getFileSystems(GetFileSystemsArgs.builder()\n            .nameRegex(\"^my-FileSystem\")\n            .build());\n\n        ctx.export(\"dfsFileSystemId2\", nameRegex.systems()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dfs:getFileSystems\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:dfs:getFileSystems\n      arguments:\n        nameRegex: ^my-FileSystem\noutputs:\n  dfsFileSystemId1: ${ids.systems[0].id}\n  dfsFileSystemId2: ${nameRegex.systems[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFileSystems.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of File System IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by File System name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getFileSystems.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"systems":{"items":{"$ref":"#/types/alicloud:dfs/getFileSystemsSystem:getFileSystemsSystem"},"type":"array"}},"required":["ids","names","systems","id"],"type":"object"}},"alicloud:dfs/getMountPoints:getMountPoints":{"description":"This data source provides the Dfs Mount Points of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.140.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dfs.getMountPoints({\n    fileSystemId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const dfsMountPointId1 = ids.then(ids =\u003e ids.points?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dfs.get_mount_points(file_system_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"dfsMountPointId1\", ids.points[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Dfs.GetMountPoints.Invoke(new()\n    {\n        FileSystemId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dfsMountPointId1\"] = ids.Apply(getMountPointsResult =\u003e getMountPointsResult.Points[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dfs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dfs.GetMountPoints(ctx, \u0026dfs.GetMountPointsArgs{\n\t\t\tFileSystemId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dfsMountPointId1\", ids.Points[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dfs.DfsFunctions;\nimport com.pulumi.alicloud.dfs.inputs.GetMountPointsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DfsFunctions.getMountPoints(GetMountPointsArgs.builder()\n            .fileSystemId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"dfsMountPointId1\", ids.points()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dfs:getMountPoints\n      arguments:\n        fileSystemId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\noutputs:\n  dfsMountPointId1: ${ids.points[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMountPoints.\n","properties":{"fileSystemId":{"type":"string","description":"The ID of the File System.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Mount Point IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the Mount Point. Valid values: `Active`, `Inactive`.\n"}},"type":"object","required":["fileSystemId"]},"outputs":{"description":"A collection of values returned by getMountPoints.\n","properties":{"fileSystemId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"points":{"items":{"$ref":"#/types/alicloud:dfs/getMountPointsPoint:getMountPointsPoint"},"type":"array"},"status":{"type":"string"}},"required":["fileSystemId","ids","points","id"],"type":"object"}},"alicloud:dfs/getZones:getZones":{"description":"This data source provides the DFS Zones And Configurations of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.140.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.dfs.getZones({});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.dfs.get_zones()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Dfs.GetZones.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dfs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dfs.GetZones(ctx, \u0026dfs.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dfs.DfsFunctions;\nimport com.pulumi.alicloud.dfs.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = DfsFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:dfs:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"zones":{"items":{"$ref":"#/types/alicloud:dfs/getZonesZone:getZonesZone"},"type":"array"}},"required":["zones","id"],"type":"object"}},"alicloud:directmail/getDomains:getDomains":{"description":"This data source provides the Direct Mail Domains of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.134.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example.pop.com\";\nconst _default = new alicloud.directmail.Domain(\"default\", {domainName: name});\nconst ids = alicloud.directmail.getDomainsOutput({\n    ids: [_default.id],\n});\nexport const directMailDomainsId0 = ids.apply(ids =\u003e ids.domains?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example.pop.com\"\ndefault = alicloud.directmail.Domain(\"default\", domain_name=name)\nids = alicloud.directmail.get_domains_output(ids=[default.id])\npulumi.export(\"directMailDomainsId0\", ids.domains[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example.pop.com\";\n    var @default = new AliCloud.DirectMail.Domain(\"default\", new()\n    {\n        DomainName = name,\n    });\n\n    var ids = AliCloud.DirectMail.GetDomains.Invoke(new()\n    {\n        Ids = new[]\n        {\n            @default.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"directMailDomainsId0\"] = ids.Apply(getDomainsResult =\u003e getDomainsResult.Domains[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/directmail\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example.pop.com\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := directmail.NewDomain(ctx, \"default\", \u0026directmail.DomainArgs{\n\t\t\tDomainName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := directmail.GetDomainsOutput(ctx, directmail.GetDomainsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"directMailDomainsId0\", ids.ApplyT(func(ids directmail.GetDomainsResult) (*string, error) {\n\t\t\treturn \u0026ids.Domains[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.directmail.Domain;\nimport com.pulumi.alicloud.directmail.DomainArgs;\nimport com.pulumi.alicloud.directmail.DirectmailFunctions;\nimport com.pulumi.alicloud.directmail.inputs.GetDomainsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example.pop.com\");\n        var default_ = new Domain(\"default\", DomainArgs.builder()\n            .domainName(name)\n            .build());\n\n        final var ids = DirectmailFunctions.getDomains(GetDomainsArgs.builder()\n            .ids(default_.id())\n            .build());\n\n        ctx.export(\"directMailDomainsId0\", ids.applyValue(_ids -\u003e _ids.domains()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example.pop.com\nresources:\n  default:\n    type: alicloud:directmail:Domain\n    properties:\n      domainName: ${name}\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:directmail:getDomains\n      arguments:\n        ids:\n          - ${default.id}\noutputs:\n  directMailDomainsId0: ${ids.domains[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDomains.\n","properties":{"enableDetails":{"type":"boolean","description":"Whether to query the detailed list of resource attributes. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Domain IDs.\n"},"keyWord":{"type":"string","description":"The domain name. It must be 1 to 50 characters in length and can contain digits, letters, periods (.), and hyphens (-).\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Domain name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the domain name. Valid values:\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDomains.\n","properties":{"domains":{"description":"A list of Domains. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:directmail/getDomainsDomain:getDomainsDomain"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyWord":{"type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Domain names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the domain name.\n","type":"string"}},"required":["domains","ids","names","id"],"type":"object"}},"alicloud:directmail/getMailAddresses:getMailAddresses":{"description":"This data source provides the Direct Mail Mail Addresses of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.134.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.directmail.getMailAddresses({\n    ids: [\"example_id\"],\n});\nexport const directMailMailAddressId1 = ids.then(ids =\u003e ids.addresses?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.directmail.get_mail_addresses(ids=[\"example_id\"])\npulumi.export(\"directMailMailAddressId1\", ids.addresses[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.DirectMail.GetMailAddresses.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"directMailMailAddressId1\"] = ids.Apply(getMailAddressesResult =\u003e getMailAddressesResult.Addresses[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/directmail\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := directmail.GetMailAddresses(ctx, \u0026directmail.GetMailAddressesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"directMailMailAddressId1\", ids.Addresses[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.directmail.DirectmailFunctions;\nimport com.pulumi.alicloud.directmail.inputs.GetMailAddressesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DirectmailFunctions.getMailAddresses(GetMailAddressesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"directMailMailAddressId1\", ids.addresses()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:directmail:getMailAddresses\n      arguments:\n        ids:\n          - example_id\noutputs:\n  directMailMailAddressId1: ${ids.addresses[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMailAddresses.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Mail Address IDs.\n"},"keyWord":{"type":"string","description":"The key word about account email address.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"sendtype":{"type":"string","description":"Account type. Valid values: \u003cspan pulumi-lang-nodejs=\"`batch`\" pulumi-lang-dotnet=\"`Batch`\" pulumi-lang-go=\"`batch`\" pulumi-lang-python=\"`batch`\" pulumi-lang-yaml=\"`batch`\" pulumi-lang-java=\"`batch`\"\u003e`batch`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`trigger`\" pulumi-lang-dotnet=\"`Trigger`\" pulumi-lang-go=\"`trigger`\" pulumi-lang-python=\"`trigger`\" pulumi-lang-yaml=\"`trigger`\" pulumi-lang-java=\"`trigger`\"\u003e`trigger`\u003c/span\u003e.\n"},"status":{"type":"string","description":"Account Status. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Freeze: 1, normal: 0.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getMailAddresses.\n","properties":{"addresses":{"items":{"$ref":"#/types/alicloud:directmail/getMailAddressesAddress:getMailAddressesAddress"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyWord":{"type":"string"},"outputFile":{"type":"string"},"sendtype":{"type":"string"},"status":{"type":"string"}},"required":["addresses","ids","id"],"type":"object"}},"alicloud:directmail/getReceivers:getReceivers":{"description":"This data source provides the Direct Mail Receiverses of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.125.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.directmail.getReceivers({\n    ids: [\"ca73b1e4fb0df7c935a5097a****\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstDirectMailReceiversId = example.then(example =\u003e example.receiverses?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.directmail.get_receivers(ids=[\"ca73b1e4fb0df7c935a5097a****\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstDirectMailReceiversId\", example.receiverses[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.DirectMail.GetReceivers.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"ca73b1e4fb0df7c935a5097a****\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstDirectMailReceiversId\"] = example.Apply(getReceiversResult =\u003e getReceiversResult.Receiverses[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/directmail\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := directmail.LookupReceivers(ctx, \u0026directmail.LookupReceiversArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"ca73b1e4fb0df7c935a5097a****\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstDirectMailReceiversId\", example.Receiverses[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.directmail.DirectmailFunctions;\nimport com.pulumi.alicloud.directmail.inputs.GetReceiversArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = DirectmailFunctions.getReceivers(GetReceiversArgs.builder()\n            .ids(\"ca73b1e4fb0df7c935a5097a****\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstDirectMailReceiversId\", example.receiverses()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:directmail:getReceivers\n      arguments:\n        ids:\n          - ca73b1e4fb0df7c935a5097a****\n        nameRegex: the_resource_name\noutputs:\n  firstDirectMailReceiversId: ${example.receiverses[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getReceivers.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Receivers IDs.\n"},"keyWord":{"type":"string","description":"The key word.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Receivers name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"integer","description":"The status of the resource. Valid Values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e means uploading, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e means upload completed.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getReceivers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyWord":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"receiverses":{"items":{"$ref":"#/types/alicloud:directmail/getReceiversReceiverse:getReceiversReceiverse"},"type":"array"},"status":{"type":"integer"}},"required":["ids","names","receiverses","id"],"type":"object"}},"alicloud:directmail/getTags:getTags":{"description":"This data source provides the Direct Mail Tags of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.144.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.directmail.getTags({\n    ids: [\"example_id\"],\n});\nexport const directMailTagId1 = ids.then(ids =\u003e ids.tags?.[0]?.id);\nconst nameRegex = alicloud.directmail.getTags({\n    nameRegex: \"^my-Tag\",\n});\nexport const directMailTagId2 = nameRegex.then(nameRegex =\u003e nameRegex.tags?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.directmail.get_tags(ids=[\"example_id\"])\npulumi.export(\"directMailTagId1\", ids.tags[0].id)\nname_regex = alicloud.directmail.get_tags(name_regex=\"^my-Tag\")\npulumi.export(\"directMailTagId2\", name_regex.tags[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.DirectMail.GetTags.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.DirectMail.GetTags.Invoke(new()\n    {\n        NameRegex = \"^my-Tag\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"directMailTagId1\"] = ids.Apply(getTagsResult =\u003e getTagsResult.Tags[0]?.Id),\n        [\"directMailTagId2\"] = nameRegex.Apply(getTagsResult =\u003e getTagsResult.Tags[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/directmail\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := directmail.GetTags(ctx, \u0026directmail.GetTagsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"directMailTagId1\", ids.Tags[0].Id)\n\t\tnameRegex, err := directmail.GetTags(ctx, \u0026directmail.GetTagsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Tag\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"directMailTagId2\", nameRegex.Tags[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.directmail.DirectmailFunctions;\nimport com.pulumi.alicloud.directmail.inputs.GetTagsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DirectmailFunctions.getTags(GetTagsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"directMailTagId1\", ids.tags()[0].id());\n        final var nameRegex = DirectmailFunctions.getTags(GetTagsArgs.builder()\n            .nameRegex(\"^my-Tag\")\n            .build());\n\n        ctx.export(\"directMailTagId2\", nameRegex.tags()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:directmail:getTags\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:directmail:getTags\n      arguments:\n        nameRegex: ^my-Tag\noutputs:\n  directMailTagId1: ${ids.tags[0].id}\n  directMailTagId2: ${nameRegex.tags[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTags.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Tag IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Tag name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTags.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"tags":{"items":{"$ref":"#/types/alicloud:directmail/getTagsTag:getTagsTag"},"type":"array"}},"required":["ids","names","tags","id"],"type":"object"}},"alicloud:dms/getEnterpriseDatabases:getEnterpriseDatabases":{"description":"This data source provides DMS Enterprise Database available to the user. [What is Database](https://www.alibabacloud.com/help/en/dms/developer-reference/api-dms-enterprise-2018-11-01-listdatabases).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.dms.getEnterpriseDatabases({\n    nameRegex: \"test2\",\n    instanceId: \"2195118\",\n});\nexport const alicloudDmsEnterpriseDatabaseExampleId = _default.then(_default =\u003e _default.databases?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.dms.get_enterprise_databases(name_regex=\"test2\",\n    instance_id=\"2195118\")\npulumi.export(\"alicloudDmsEnterpriseDatabaseExampleId\", default.databases[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Dms.GetEnterpriseDatabases.Invoke(new()\n    {\n        NameRegex = \"test2\",\n        InstanceId = \"2195118\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudDmsEnterpriseDatabaseExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getEnterpriseDatabasesResult =\u003e getEnterpriseDatabasesResult.Databases[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := dms.GetEnterpriseDatabases(ctx, \u0026dms.GetEnterpriseDatabasesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"test2\"),\n\t\t\tInstanceId: \"2195118\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudDmsEnterpriseDatabaseExampleId\", _default.Databases[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dms.DmsFunctions;\nimport com.pulumi.alicloud.dms.inputs.GetEnterpriseDatabasesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = DmsFunctions.getEnterpriseDatabases(GetEnterpriseDatabasesArgs.builder()\n            .nameRegex(\"test2\")\n            .instanceId(\"2195118\")\n            .build());\n\n        ctx.export(\"alicloudDmsEnterpriseDatabaseExampleId\", default_.databases()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:dms:getEnterpriseDatabases\n      arguments:\n        nameRegex: test2\n        instanceId: '2195118'\noutputs:\n  alicloudDmsEnterpriseDatabaseExampleId: ${default.databases[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEnterpriseDatabases.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Database IDs.\n"},"instanceId":{"type":"string","description":"The instance ID of the target database.\n"},"nameRegex":{"type":"string","description":"A regex string to filter the results by the database Schema Name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getEnterpriseDatabases.\n","properties":{"databases":{"description":"A list of Database Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dms/getEnterpriseDatabasesDatabase:getEnterpriseDatabasesDatabase"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Database IDs.\n","items":{"type":"string"},"type":"array"},"instanceId":{"description":"The instance ID of the target database.\n","type":"string"},"nameRegex":{"type":"string"},"outputFile":{"type":"string"}},"required":["databases","ids","instanceId","id"],"type":"object"}},"alicloud:dms/getEnterpriseInstances:getEnterpriseInstances":{"description":"This data source provides a list of DMS Enterprise Instances in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available in 1.88.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst dmsEnterpriseInstancesDs = alicloud.dms.getEnterpriseInstances({\n    netType: \"CLASSIC\",\n    instanceType: \"mysql\",\n    envType: \"test\",\n    nameRegex: \"tf_testAcc\",\n    outputFile: \"dms_enterprise_instances.json\",\n});\nexport const firstDatabaseInstanceId = dmsEnterpriseInstancesDs.then(dmsEnterpriseInstancesDs =\u003e dmsEnterpriseInstancesDs.instances?.[0]?.instanceId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\ndms_enterprise_instances_ds = alicloud.dms.get_enterprise_instances(net_type=\"CLASSIC\",\n    instance_type=\"mysql\",\n    env_type=\"test\",\n    name_regex=\"tf_testAcc\",\n    output_file=\"dms_enterprise_instances.json\")\npulumi.export(\"firstDatabaseInstanceId\", dms_enterprise_instances_ds.instances[0].instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var dmsEnterpriseInstancesDs = AliCloud.Dms.GetEnterpriseInstances.Invoke(new()\n    {\n        NetType = \"CLASSIC\",\n        InstanceType = \"mysql\",\n        EnvType = \"test\",\n        NameRegex = \"tf_testAcc\",\n        OutputFile = \"dms_enterprise_instances.json\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstDatabaseInstanceId\"] = dmsEnterpriseInstancesDs.Apply(getEnterpriseInstancesResult =\u003e getEnterpriseInstancesResult.Instances[0]?.InstanceId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tdmsEnterpriseInstancesDs, err := dms.GetEnterpriseInstances(ctx, \u0026dms.GetEnterpriseInstancesArgs{\n\t\t\tNetType:      pulumi.StringRef(\"CLASSIC\"),\n\t\t\tInstanceType: pulumi.StringRef(\"mysql\"),\n\t\t\tEnvType:      pulumi.StringRef(\"test\"),\n\t\t\tNameRegex:    pulumi.StringRef(\"tf_testAcc\"),\n\t\t\tOutputFile:   pulumi.StringRef(\"dms_enterprise_instances.json\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstDatabaseInstanceId\", dmsEnterpriseInstancesDs.Instances[0].InstanceId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dms.DmsFunctions;\nimport com.pulumi.alicloud.dms.inputs.GetEnterpriseInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var dmsEnterpriseInstancesDs = DmsFunctions.getEnterpriseInstances(GetEnterpriseInstancesArgs.builder()\n            .netType(\"CLASSIC\")\n            .instanceType(\"mysql\")\n            .envType(\"test\")\n            .nameRegex(\"tf_testAcc\")\n            .outputFile(\"dms_enterprise_instances.json\")\n            .build());\n\n        ctx.export(\"firstDatabaseInstanceId\", dmsEnterpriseInstancesDs.instances()[0].instanceId());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  dmsEnterpriseInstancesDs:\n    fn::invoke:\n      function: alicloud:dms:getEnterpriseInstances\n      arguments:\n        netType: CLASSIC\n        instanceType: mysql\n        envType: test\n        nameRegex: tf_testAcc\n        outputFile: dms_enterprise_instances.json\noutputs:\n  firstDatabaseInstanceId: ${dmsEnterpriseInstancesDs.instances[0].instanceId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEnterpriseInstances.\n","properties":{"envType":{"type":"string","description":"The type of the environment to which the database instance belongs.\n"},"instanceAliasRegex":{"type":"string","description":"A regex string to filter the results by the DMS Enterprise Instance instance_alias.\n"},"instanceSource":{"type":"string","description":"The source of the database instance.\n"},"instanceType":{"type":"string","description":"The ID of the database instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter the results by the DMS Enterprise Instance instance_alias.\n"},"netType":{"type":"string","description":"The network type of the database instance. Valid values: CLASSIC and VPC. For more information about the valid values, see the description of the RegisterInstance operation.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"searchKey":{"type":"string","description":"The keyword used to query database instances.\n"},"status":{"type":"string","description":"Filter the results by status of the DMS Enterprise Instances. Valid values: `NORMAL`, `UNAVAILABLE`, `UNKNOWN`, `DELETED`, `DISABLE`.\n"},"tid":{"type":"integer","description":"The ID of the tenant in Data Management (DMS) Enterprise.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEnterpriseInstances.\n","properties":{"envType":{"description":"The type of the environment to which the database instance belongs..\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of DMS Enterprise IDs (Each of them consists of host:port).\n","items":{"type":"string"},"type":"array"},"instanceAliasRegex":{"type":"string"},"instanceSource":{"description":"The ID of the database instance.\n","type":"string"},"instanceType":{"description":"The ID of the database instance.\n","type":"string"},"instances":{"description":"A list of KMS keys. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dms/getEnterpriseInstancesInstance:getEnterpriseInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of DMS Enterprise names.\n","items":{"type":"string"},"type":"array"},"netType":{"type":"string"},"outputFile":{"type":"string"},"searchKey":{"type":"string"},"status":{"description":"The status of the database instance.\n","type":"string"},"tid":{"type":"integer"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:dms/getEnterpriseLogicDatabases:getEnterpriseLogicDatabases":{"description":"This data source provides DMS Enterprise Logic Database available to the user. [What is Logic Database](https://www.alibabacloud.com/help/en/dms/developer-reference/api-dms-enterprise-2018-11-01-createlogicdatabase).\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nvariables:\n  dmsEnterpriseInstancesDs:\n    fn::invoke:\n      function: alicloud:dms:getEnterpriseInstances\n      arguments:\n        instanceType: mysql\n        searchKey: tf-test-no-deleting\n  default:\n    fn::invoke:\n      function: alicloud:dms:getEnterpriseLogicDatabases\n      arguments:\n        instanceId: ${dmsEnterpriseInstancesDs.instances[0].instanceId}\noutputs:\n  alicloudDmsEnterpriseLogicDatabaseExampleId: ${default.databases[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEnterpriseLogicDatabases.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Logic Database IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEnterpriseLogicDatabases.\n","properties":{"databases":{"description":"A list of Logic Database Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dms/getEnterpriseLogicDatabasesDatabase:getEnterpriseLogicDatabasesDatabase"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Logic Database IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["databases","ids","id"],"type":"object"}},"alicloud:dms/getEnterpriseProxies:getEnterpriseProxies":{"description":"This data source provides the Dms Enterprise Proxies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.188.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dms.getEnterpriseProxies({});\nexport const dmsEnterpriseProxyId1 = ids.then(ids =\u003e ids.proxies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dms.get_enterprise_proxies()\npulumi.export(\"dmsEnterpriseProxyId1\", ids.proxies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Dms.GetEnterpriseProxies.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dmsEnterpriseProxyId1\"] = ids.Apply(getEnterpriseProxiesResult =\u003e getEnterpriseProxiesResult.Proxies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dms.GetEnterpriseProxies(ctx, \u0026dms.GetEnterpriseProxiesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dmsEnterpriseProxyId1\", ids.Proxies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dms.DmsFunctions;\nimport com.pulumi.alicloud.dms.inputs.GetEnterpriseProxiesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DmsFunctions.getEnterpriseProxies(GetEnterpriseProxiesArgs.builder()\n            .build());\n\n        ctx.export(\"dmsEnterpriseProxyId1\", ids.proxies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dms:getEnterpriseProxies\n      arguments: {}\noutputs:\n  dmsEnterpriseProxyId1: ${ids.proxies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEnterpriseProxies.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Proxy IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"tid":{"type":"string","description":"The ID of the tenant.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEnterpriseProxies.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"proxies":{"items":{"$ref":"#/types/alicloud:dms/getEnterpriseProxiesProxy:getEnterpriseProxiesProxy"},"type":"array"},"tid":{"type":"string"}},"required":["ids","proxies","id"],"type":"object"}},"alicloud:dms/getEnterpriseProxyAccesses:getEnterpriseProxyAccesses":{"description":"This data source provides DMS Enterprise Proxy Access available to the user.[What is Proxy Access](https://next.api.alibabacloud.com/document/dms-enterprise/2018-11-01/CreateProxyAccess)\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst defaultEnterpriseProxyAccess = new alicloud.dms.EnterpriseProxyAccess(\"default\", {\n    indepPassword: \"PASSWORD-DEMO\",\n    proxyId: \"1881\",\n    indepAccount: \"dmstest\",\n    userId: \"104442\",\n});\nconst _default = alicloud.dms.getEnterpriseProxyAccessesOutput({\n    ids: [defaultEnterpriseProxyAccess.id],\n    proxyId: \"1881\",\n});\nexport const alicloudDmsProxyAccesesExampleId = _default.apply(_default =\u003e _default.accesses?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault_enterprise_proxy_access = alicloud.dms.EnterpriseProxyAccess(\"default\",\n    indep_password=\"PASSWORD-DEMO\",\n    proxy_id=\"1881\",\n    indep_account=\"dmstest\",\n    user_id=\"104442\")\ndefault = alicloud.dms.get_enterprise_proxy_accesses_output(ids=[default_enterprise_proxy_access.id],\n    proxy_id=\"1881\")\npulumi.export(\"alicloudDmsProxyAccesesExampleId\", default.accesses[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultEnterpriseProxyAccess = new AliCloud.Dms.EnterpriseProxyAccess(\"default\", new()\n    {\n        IndepPassword = \"PASSWORD-DEMO\",\n        ProxyId = \"1881\",\n        IndepAccount = \"dmstest\",\n        UserId = \"104442\",\n    });\n\n    var @default = AliCloud.Dms.GetEnterpriseProxyAccesses.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultEnterpriseProxyAccess.Id,\n        },\n        ProxyId = \"1881\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudDmsProxyAccesesExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getEnterpriseProxyAccessesResult =\u003e getEnterpriseProxyAccessesResult.Accesses[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ndefaultEnterpriseProxyAccess, err := dms.NewEnterpriseProxyAccess(ctx, \"default\", \u0026dms.EnterpriseProxyAccessArgs{\nIndepPassword: pulumi.String(\"PASSWORD-DEMO\"),\nProxyId: pulumi.String(\"1881\"),\nIndepAccount: pulumi.String(\"dmstest\"),\nUserId: pulumi.String(\"104442\"),\n})\nif err != nil {\nreturn err\n}\n_default := dms.GetEnterpriseProxyAccessesOutput(ctx, dms.GetEnterpriseProxyAccessesOutputArgs{\nIds: pulumi.StringArray{\ndefaultEnterpriseProxyAccess.ID(),\n},\nProxyId: pulumi.String(\"1881\"),\n}, nil);\nctx.Export(\"alicloudDmsProxyAccesesExampleId\", _default.ApplyT(func(_default dms.GetEnterpriseProxyAccessesResult) (*string, error) {\nreturn \u0026default.Accesses[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dms.EnterpriseProxyAccess;\nimport com.pulumi.alicloud.dms.EnterpriseProxyAccessArgs;\nimport com.pulumi.alicloud.dms.DmsFunctions;\nimport com.pulumi.alicloud.dms.inputs.GetEnterpriseProxyAccessesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultEnterpriseProxyAccess = new EnterpriseProxyAccess(\"defaultEnterpriseProxyAccess\", EnterpriseProxyAccessArgs.builder()\n            .indepPassword(\"PASSWORD-DEMO\")\n            .proxyId(\"1881\")\n            .indepAccount(\"dmstest\")\n            .userId(\"104442\")\n            .build());\n\n        final var default = DmsFunctions.getEnterpriseProxyAccesses(GetEnterpriseProxyAccessesArgs.builder()\n            .ids(defaultEnterpriseProxyAccess.id())\n            .proxyId(\"1881\")\n            .build());\n\n        ctx.export(\"alicloudDmsProxyAccesesExampleId\", default_.applyValue(_default_ -\u003e _default_.accesses()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  defaultEnterpriseProxyAccess:\n    type: alicloud:dms:EnterpriseProxyAccess\n    name: default\n    properties:\n      indepPassword: PASSWORD-DEMO\n      proxyId: 1881\n      indepAccount: dmstest\n      userId: 104442\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:dms:getEnterpriseProxyAccesses\n      arguments:\n        ids:\n          - ${defaultEnterpriseProxyAccess.id}\n        proxyId: 1881\noutputs:\n  alicloudDmsProxyAccesesExampleId: ${default.accesses[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEnterpriseProxyAccesses.\n","properties":{"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Proxy Access IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"proxyId":{"type":"string","description":"The ID of the security agent.\n"}},"type":"object","required":["proxyId"]},"outputs":{"description":"A collection of values returned by getEnterpriseProxyAccesses.\n","properties":{"accesses":{"description":"A list of Proxy Access Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dms/getEnterpriseProxyAccessesAccess:getEnterpriseProxyAccessesAccess"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Proxy Access IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"proxyId":{"description":"The ID of the security agent.\n","type":"string"}},"required":["accesses","ids","proxyId","id"],"type":"object"}},"alicloud:dms/getEnterpriseUsers:getEnterpriseUsers":{"description":"This data source provides a list of DMS Enterprise Users in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available in 1.90.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst dmsEnterpriseUsersDs = alicloud.dms.getEnterpriseUsers({\n    ids: [\"uid\"],\n    role: \"USER\",\n    status: \"NORMAL\",\n});\nexport const firstUserId = dmsEnterpriseUsersDs.then(dmsEnterpriseUsersDs =\u003e dmsEnterpriseUsersDs.users?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\ndms_enterprise_users_ds = alicloud.dms.get_enterprise_users(ids=[\"uid\"],\n    role=\"USER\",\n    status=\"NORMAL\")\npulumi.export(\"firstUserId\", dms_enterprise_users_ds.users[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var dmsEnterpriseUsersDs = AliCloud.Dms.GetEnterpriseUsers.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"uid\",\n        },\n        Role = \"USER\",\n        Status = \"NORMAL\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstUserId\"] = dmsEnterpriseUsersDs.Apply(getEnterpriseUsersResult =\u003e getEnterpriseUsersResult.Users[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tdmsEnterpriseUsersDs, err := dms.GetEnterpriseUsers(ctx, \u0026dms.GetEnterpriseUsersArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"uid\",\n\t\t\t},\n\t\t\tRole:   pulumi.StringRef(\"USER\"),\n\t\t\tStatus: pulumi.StringRef(\"NORMAL\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstUserId\", dmsEnterpriseUsersDs.Users[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dms.DmsFunctions;\nimport com.pulumi.alicloud.dms.inputs.GetEnterpriseUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var dmsEnterpriseUsersDs = DmsFunctions.getEnterpriseUsers(GetEnterpriseUsersArgs.builder()\n            .ids(\"uid\")\n            .role(\"USER\")\n            .status(\"NORMAL\")\n            .build());\n\n        ctx.export(\"firstUserId\", dmsEnterpriseUsersDs.users()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  dmsEnterpriseUsersDs:\n    fn::invoke:\n      function: alicloud:dms:getEnterpriseUsers\n      arguments:\n        ids:\n          - uid\n        role: USER\n        status: NORMAL\noutputs:\n  firstUserId: ${dmsEnterpriseUsersDs.users[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEnterpriseUsers.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of DMS Enterprise User IDs (UID).\n"},"nameRegex":{"type":"string","description":"A regex string to filter the results by the DMS Enterprise User nick_name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"role":{"type":"string","description":"The role of the user to query.\n"},"searchKey":{"type":"string","description":"The keyword used to query users.\n"},"status":{"type":"string","description":"The status of the user.\n"},"tid":{"type":"integer","description":"The ID of the tenant in DMS Enterprise.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEnterpriseUsers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of DMS Enterprise User IDs (UID).\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of DMS Enterprise User names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"role":{"type":"string"},"searchKey":{"type":"string"},"status":{"description":"The status of the user.\n","type":"string"},"tid":{"type":"integer"},"users":{"description":"A list of DMS Enterprise Users. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dms/getEnterpriseUsersUser:getEnterpriseUsersUser"},"type":"array"}},"required":["ids","names","users","id"],"type":"object"}},"alicloud:dms/getUserTenants:getUserTenants":{"description":"This data source provides a list of DMS User Tenants in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available in 1.161.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst _default = alicloud.dms.getUserTenants({\n    status: \"ACTIVE\",\n});\nexport const tid = _default.then(_default =\u003e _default.ids?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\ndefault = alicloud.dms.get_user_tenants(status=\"ACTIVE\")\npulumi.export(\"tid\", default.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var @default = AliCloud.Dms.GetUserTenants.Invoke(new()\n    {\n        Status = \"ACTIVE\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"tid\"] = @default.Apply(@default =\u003e @default.Apply(getUserTenantsResult =\u003e getUserTenantsResult.Ids[0])),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\t_default, err := dms.GetUserTenants(ctx, \u0026dms.GetUserTenantsArgs{\n\t\t\tStatus: pulumi.StringRef(\"ACTIVE\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"tid\", _default.Ids[0])\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dms.DmsFunctions;\nimport com.pulumi.alicloud.dms.inputs.GetUserTenantsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var default = DmsFunctions.getUserTenants(GetUserTenantsArgs.builder()\n            .status(\"ACTIVE\")\n            .build());\n\n        ctx.export(\"tid\", default_.ids()[0]);\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  default:\n    fn::invoke:\n      function: alicloud:dms:getUserTenants\n      arguments:\n        status: ACTIVE\noutputs:\n  tid: ${default.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUserTenants.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of DMS User Tenant IDs (TID).\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the user tenant.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getUserTenants.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of DMS User Tenant IDs (UID).\n","items":{"type":"string"},"type":"array"},"names":{"description":"A list of DMS User Tenant names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the user tenant.\n","type":"string"},"tenants":{"description":"A list of DMS User Tenants. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dms/getUserTenantsTenant:getUserTenantsTenant"},"type":"array"}},"required":["ids","names","tenants","id"],"type":"object"}},"alicloud:dns/getAccessStrategies:getAccessStrategies":{"description":"This data source provides the Alidns Access Strategies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.152.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dns.getAccessStrategies({\n    instanceId: \"example_value\",\n    strategyMode: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n    nameRegex: \"the_resource_name\",\n});\nexport const alidnsAccessStrategyId1 = ids.then(ids =\u003e ids.strategies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dns.get_access_strategies(instance_id=\"example_value\",\n    strategy_mode=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n    name_regex=\"the_resource_name\")\npulumi.export(\"alidnsAccessStrategyId1\", ids.strategies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Dns.GetAccessStrategies.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n        StrategyMode = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alidnsAccessStrategyId1\"] = ids.Apply(getAccessStrategiesResult =\u003e getAccessStrategiesResult.Strategies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dns.GetAccessStrategies(ctx, \u0026dns.GetAccessStrategiesArgs{\n\t\t\tInstanceId:   \"example_value\",\n\t\t\tStrategyMode: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alidnsAccessStrategyId1\", ids.Strategies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DnsFunctions;\nimport com.pulumi.alicloud.dns.inputs.GetAccessStrategiesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DnsFunctions.getAccessStrategies(GetAccessStrategiesArgs.builder()\n            .instanceId(\"example_value\")\n            .strategyMode(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"alidnsAccessStrategyId1\", ids.strategies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dns:getAccessStrategies\n      arguments:\n        instanceId: example_value\n        strategyMode: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n        nameRegex: the_resource_name\noutputs:\n  alidnsAccessStrategyId1: ${ids.strategies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccessStrategies.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Access Strategy IDs.\n"},"instanceId":{"type":"string","description":"The Id of the associated instance.\n"},"lang":{"type":"string","description":"The lang.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Access Strategy name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"strategyMode":{"type":"string","description":"The type of the access policy. Valid values:\n- `GEO`: based on geographic location.\n- `LATENCY`: Based on delay.\n"}},"type":"object","required":["instanceId","strategyMode"]},"outputs":{"description":"A collection of values returned by getAccessStrategies.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"lang":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"strategies":{"items":{"$ref":"#/types/alicloud:dns/getAccessStrategiesStrategy:getAccessStrategiesStrategy"},"type":"array"},"strategyMode":{"type":"string"}},"required":["ids","instanceId","names","strategies","strategyMode","id"],"type":"object"}},"alicloud:dns/getAddressPools:getAddressPools":{"description":"This data source provides the Alidns Address Pools of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.152.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dns.getAddressPools({\n    instanceId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const alidnsAddressPoolId1 = ids.then(ids =\u003e ids.pools?.[0]?.id);\nconst nameRegex = alicloud.dns.getAddressPools({\n    instanceId: \"example_value\",\n    nameRegex: \"^my-AddressPool\",\n});\nexport const alidnsAddressPoolId2 = nameRegex.then(nameRegex =\u003e nameRegex.pools?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dns.get_address_pools(instance_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"alidnsAddressPoolId1\", ids.pools[0].id)\nname_regex = alicloud.dns.get_address_pools(instance_id=\"example_value\",\n    name_regex=\"^my-AddressPool\")\npulumi.export(\"alidnsAddressPoolId2\", name_regex.pools[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Dns.GetAddressPools.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.Dns.GetAddressPools.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n        NameRegex = \"^my-AddressPool\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alidnsAddressPoolId1\"] = ids.Apply(getAddressPoolsResult =\u003e getAddressPoolsResult.Pools[0]?.Id),\n        [\"alidnsAddressPoolId2\"] = nameRegex.Apply(getAddressPoolsResult =\u003e getAddressPoolsResult.Pools[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dns.GetAddressPools(ctx, \u0026dns.GetAddressPoolsArgs{\n\t\t\tInstanceId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alidnsAddressPoolId1\", ids.Pools[0].Id)\n\t\tnameRegex, err := dns.GetAddressPools(ctx, \u0026dns.GetAddressPoolsArgs{\n\t\t\tInstanceId: \"example_value\",\n\t\t\tNameRegex:  pulumi.StringRef(\"^my-AddressPool\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alidnsAddressPoolId2\", nameRegex.Pools[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DnsFunctions;\nimport com.pulumi.alicloud.dns.inputs.GetAddressPoolsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DnsFunctions.getAddressPools(GetAddressPoolsArgs.builder()\n            .instanceId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"alidnsAddressPoolId1\", ids.pools()[0].id());\n        final var nameRegex = DnsFunctions.getAddressPools(GetAddressPoolsArgs.builder()\n            .instanceId(\"example_value\")\n            .nameRegex(\"^my-AddressPool\")\n            .build());\n\n        ctx.export(\"alidnsAddressPoolId2\", nameRegex.pools()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dns:getAddressPools\n      arguments:\n        instanceId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:dns:getAddressPools\n      arguments:\n        instanceId: example_value\n        nameRegex: ^my-AddressPool\noutputs:\n  alidnsAddressPoolId1: ${ids.pools[0].id}\n  alidnsAddressPoolId2: ${nameRegex.pools[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAddressPools.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Address Pool IDs.\n"},"instanceId":{"type":"string","description":"The id of the instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Address Pool name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getAddressPools.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pools":{"items":{"$ref":"#/types/alicloud:dns/getAddressPoolsPool:getAddressPoolsPool"},"type":"array"}},"required":["ids","instanceId","names","pools","id"],"type":"object"}},"alicloud:dns/getAlidnsDomainGroups:getAlidnsDomainGroups":{"description":"This data source provides a list of Alidns Domain Groups in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:**  Available in 1.85.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.dns.getAlidnsDomainGroups({\n    ids: [\"c5ef2bc43064445787adf182af2****\"],\n});\nexport const firstDomainGroupId = example.then(example =\u003e example.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.dns.get_alidns_domain_groups(ids=[\"c5ef2bc43064445787adf182af2****\"])\npulumi.export(\"firstDomainGroupId\", example.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Dns.GetAlidnsDomainGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"c5ef2bc43064445787adf182af2****\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstDomainGroupId\"] = example.Apply(getAlidnsDomainGroupsResult =\u003e getAlidnsDomainGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := dns.GetAlidnsDomainGroups(ctx, \u0026dns.GetAlidnsDomainGroupsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"c5ef2bc43064445787adf182af2****\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstDomainGroupId\", example.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DnsFunctions;\nimport com.pulumi.alicloud.dns.inputs.GetAlidnsDomainGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = DnsFunctions.getAlidnsDomainGroups(GetAlidnsDomainGroupsArgs.builder()\n            .ids(\"c5ef2bc43064445787adf182af2****\")\n            .build());\n\n        ctx.export(\"firstDomainGroupId\", example.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:dns:getAlidnsDomainGroups\n      arguments:\n        ids:\n          - c5ef2bc43064445787adf182af2****\noutputs:\n  firstDomainGroupId: ${example.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAlidnsDomainGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of instance IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by the domain group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAlidnsDomainGroups.\n","properties":{"groups":{"description":"A list of instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dns/getAlidnsDomainGroupsGroup:getAlidnsDomainGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of instance IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of domain group names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:dns/getAlidnsDomains:getAlidnsDomains":{"description":"This data source provides a list of Alidns Domains in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available since v1.95.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst domainsDs = alicloud.dns.getAlidnsDomains({\n    domainNameRegex: \"^hegu\",\n    outputFile: \"domains.txt\",\n});\nexport const firstDomainId = domainsDs.then(domainsDs =\u003e domainsDs.domains?.[0]?.domainId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndomains_ds = alicloud.dns.get_alidns_domains(domain_name_regex=\"^hegu\",\n    output_file=\"domains.txt\")\npulumi.export(\"firstDomainId\", domains_ds.domains[0].domain_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var domainsDs = AliCloud.Dns.GetAlidnsDomains.Invoke(new()\n    {\n        DomainNameRegex = \"^hegu\",\n        OutputFile = \"domains.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstDomainId\"] = domainsDs.Apply(getAlidnsDomainsResult =\u003e getAlidnsDomainsResult.Domains[0]?.DomainId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdomainsDs, err := dns.GetAlidnsDomains(ctx, \u0026dns.GetAlidnsDomainsArgs{\n\t\t\tDomainNameRegex: pulumi.StringRef(\"^hegu\"),\n\t\t\tOutputFile:      pulumi.StringRef(\"domains.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstDomainId\", domainsDs.Domains[0].DomainId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DnsFunctions;\nimport com.pulumi.alicloud.dns.inputs.GetAlidnsDomainsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var domainsDs = DnsFunctions.getAlidnsDomains(GetAlidnsDomainsArgs.builder()\n            .domainNameRegex(\"^hegu\")\n            .outputFile(\"domains.txt\")\n            .build());\n\n        ctx.export(\"firstDomainId\", domainsDs.domains()[0].domainId());\n    }\n}\n```\n```yaml\nvariables:\n  domainsDs:\n    fn::invoke:\n      function: alicloud:dns:getAlidnsDomains\n      arguments:\n        domainNameRegex: ^hegu\n        outputFile: domains.txt\noutputs:\n  firstDomainId: ${domainsDs.domains[0].domainId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAlidnsDomains.\n","properties":{"aliDomain":{"type":"boolean","description":"Specifies whether the domain is from Alibaba Cloud or not.\n"},"domainNameRegex":{"type":"string","description":"A regex string to filter results by the domain name.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"groupId":{"type":"string","description":"Domain group ID, if not filled, the default is all groups.\n"},"groupNameRegex":{"type":"string","description":"A regex string to filter results by the group name.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of domain IDs.\n"},"instanceId":{"type":"string","description":"Cloud analysis product ID.\n"},"keyWord":{"type":"string","description":"The keywords are searched according to the `%KeyWord%` mode, which is not case sensitive.\n"},"lang":{"type":"string","description":"User language.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the dns belongs.\n"},"searchMode":{"type":"string","description":"Search mode, `LIKE` fuzzy search, `EXACT` exact search.\n"},"starmark":{"type":"boolean","description":"Whether to query the domain name star.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"versionCode":{"type":"string","description":"Cloud analysis version code.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAlidnsDomains.\n","properties":{"aliDomain":{"description":"Indicates whether the domain is an Alibaba Cloud domain.\n","type":"boolean"},"domainNameRegex":{"type":"string"},"domains":{"description":"A list of domains. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dns/getAlidnsDomainsDomain:getAlidnsDomainsDomain"},"type":"array"},"enableDetails":{"type":"boolean"},"groupId":{"description":"Id of group that contains the domain.\n","type":"string"},"groupNameRegex":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of domain IDs.\n","items":{"type":"string"},"type":"array"},"instanceId":{"description":"Cloud analysis product ID of the domain.\n","type":"string"},"keyWord":{"type":"string"},"lang":{"type":"string"},"names":{"description":"A list of domain names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"description":"The Id of resource group which the dns belongs.\n","type":"string"},"searchMode":{"type":"string"},"starmark":{"type":"boolean"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags of the domain.\n","type":"object"},"versionCode":{"description":"Cloud resolution version ID.\n","type":"string"}},"required":["domains","ids","names","id"],"type":"object"}},"alicloud:dns/getAlidnsInstances:getAlidnsInstances":{"description":"This data source provides a list of Alidns instances in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:**  Available in 1.95.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.dns.getAlidnsInstances({\n    ids: [\"dns-cn-oew1npk****\"],\n});\nexport const firstInstanceId = example.then(example =\u003e example.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.dns.get_alidns_instances(ids=[\"dns-cn-oew1npk****\"])\npulumi.export(\"firstInstanceId\", example.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Dns.GetAlidnsInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"dns-cn-oew1npk****\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstInstanceId\"] = example.Apply(getAlidnsInstancesResult =\u003e getAlidnsInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := dns.GetAlidnsInstances(ctx, \u0026dns.GetAlidnsInstancesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"dns-cn-oew1npk****\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstInstanceId\", example.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DnsFunctions;\nimport com.pulumi.alicloud.dns.inputs.GetAlidnsInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = DnsFunctions.getAlidnsInstances(GetAlidnsInstancesArgs.builder()\n            .ids(\"dns-cn-oew1npk****\")\n            .build());\n\n        ctx.export(\"firstInstanceId\", example.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:dns:getAlidnsInstances\n      arguments:\n        ids:\n          - dns-cn-oew1npk****\noutputs:\n  firstInstanceId: ${example.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAlidnsInstances.\n","properties":{"domainType":{"type":"string","description":"The type of domain.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of instance IDs.\n"},"lang":{"type":"string","description":"Language.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"userClientIp":{"type":"string","description":"The IP address of the client.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAlidnsInstances.\n","properties":{"domainType":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of instance IDs.\n","items":{"type":"string"},"type":"array"},"instances":{"description":"A list of instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dns/getAlidnsInstancesInstance:getAlidnsInstancesInstance"},"type":"array"},"lang":{"type":"string"},"outputFile":{"type":"string"},"userClientIp":{"type":"string"}},"required":["ids","instances","id"],"type":"object"}},"alicloud:dns/getAlidnsRecords:getAlidnsRecords":{"description":"This data source provides a list of Alidns Domain Records in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available since v1.86.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst recordsDs = alicloud.dns.getAlidnsRecords({\n    domainName: \"xiaozhu.top\",\n    ids: [\"1978593525779****\"],\n    type: \"A\",\n    outputFile: \"records.txt\",\n});\nexport const firstRecordId = recordsDs.then(recordsDs =\u003e recordsDs.records?.[0]?.recordId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nrecords_ds = alicloud.dns.get_alidns_records(domain_name=\"xiaozhu.top\",\n    ids=[\"1978593525779****\"],\n    type=\"A\",\n    output_file=\"records.txt\")\npulumi.export(\"firstRecordId\", records_ds.records[0].record_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var recordsDs = AliCloud.Dns.GetAlidnsRecords.Invoke(new()\n    {\n        DomainName = \"xiaozhu.top\",\n        Ids = new[]\n        {\n            \"1978593525779****\",\n        },\n        Type = \"A\",\n        OutputFile = \"records.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRecordId\"] = recordsDs.Apply(getAlidnsRecordsResult =\u003e getAlidnsRecordsResult.Records[0]?.RecordId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trecordsDs, err := dns.GetAlidnsRecords(ctx, \u0026dns.GetAlidnsRecordsArgs{\n\t\t\tDomainName: \"xiaozhu.top\",\n\t\t\tIds: []string{\n\t\t\t\t\"1978593525779****\",\n\t\t\t},\n\t\t\tType:       pulumi.StringRef(\"A\"),\n\t\t\tOutputFile: pulumi.StringRef(\"records.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRecordId\", recordsDs.Records[0].RecordId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DnsFunctions;\nimport com.pulumi.alicloud.dns.inputs.GetAlidnsRecordsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var recordsDs = DnsFunctions.getAlidnsRecords(GetAlidnsRecordsArgs.builder()\n            .domainName(\"xiaozhu.top\")\n            .ids(\"1978593525779****\")\n            .type(\"A\")\n            .outputFile(\"records.txt\")\n            .build());\n\n        ctx.export(\"firstRecordId\", recordsDs.records()[0].recordId());\n    }\n}\n```\n```yaml\nvariables:\n  recordsDs:\n    fn::invoke:\n      function: alicloud:dns:getAlidnsRecords\n      arguments:\n        domainName: xiaozhu.top\n        ids:\n          - 1978593525779****\n        type: A\n        outputFile: records.txt\noutputs:\n  firstRecordId: ${recordsDs.records[0].recordId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAlidnsRecords.\n","properties":{"direction":{"type":"string","description":"Sorting direction. Valid values: `DESC`,`ASC`. Default to `AESC`.\n"},"domainName":{"type":"string","description":"The domain name associated to the records.\n"},"groupId":{"type":"integer","description":"Domain name group ID.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of record IDs.\n"},"keyWord":{"type":"string","description":"Keywords.\n"},"lang":{"type":"string","description":"User language.\n"},"line":{"type":"string","description":"ISP line. For checking all resolution lines enumeration please visit [Alibaba Cloud DNS doc](https://www.alibabacloud.com/help/en/dns/resolve-line-enumeration)\n"},"orderBy":{"type":"string","description":"Sort by. Sort from newest to oldest according to the time added by resolution.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"rrKeyWord":{"type":"string","description":"The keywords recorded by the host are searched according to the `%RRKeyWord%` mode, and are not case sensitive.\n"},"rrRegex":{"type":"string","description":"Host record regex.\n"},"searchMode":{"type":"string","description":"Search mode, Valid values: `LIKE`, `EXACT`, `ADVANCED`, `LIKE` (fuzzy), `EXACT` (accurate) search supports KeyWord field, `ADVANCED` (advanced) mode supports other fields.\n"},"status":{"type":"string","description":"Record status. Valid values: `ENABLE` and `DISABLE`.\n"},"type":{"type":"string","description":"Record type. Valid values: `A`, `NS`, `MX`, `TXT`, `CNAME`, `SRV`, `AAAA`, `REDIRECT_URL`, `FORWORD_URL` .\n"},"typeKeyWord":{"type":"string","description":"Analyze type keywords, search by full match, not case sensitive.\n"},"valueKeyWord":{"type":"string","description":"The keywords of the recorded value are searched according to the `%ValueKeyWord%` mode, and are not case sensitive.\n"},"valueRegex":{"type":"string","description":"Host record value regex.\n"}},"type":"object","required":["domainName"]},"outputs":{"description":"A collection of values returned by getAlidnsRecords.\n","properties":{"direction":{"type":"string"},"domainName":{"description":"Name of the domain record belongs to.\n","type":"string"},"groupId":{"type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of record IDs.\n","items":{"type":"string"},"type":"array"},"keyWord":{"type":"string"},"lang":{"type":"string"},"line":{"description":"ISP line of the record.\n","type":"string"},"orderBy":{"type":"string"},"outputFile":{"type":"string"},"records":{"description":"A list of records. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dns/getAlidnsRecordsRecord:getAlidnsRecordsRecord"},"type":"array"},"rrKeyWord":{"type":"string"},"rrRegex":{"type":"string"},"searchMode":{"type":"string"},"status":{"description":"Status of the record.\n","type":"string"},"type":{"description":"Type of the record.\n","type":"string"},"typeKeyWord":{"type":"string"},"valueKeyWord":{"type":"string"},"valueRegex":{"type":"string"}},"required":["domainName","ids","records","id"],"type":"object"}},"alicloud:dns/getCustomLines:getCustomLines":{"description":"This data source provides the Alidns Custom Lines of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.151.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dns.getCustomLines({\n    enableDetails: true,\n    domainName: \"your_domain_name\",\n});\nexport const alidnsCustomLineId1 = ids.then(ids =\u003e ids.lines?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dns.get_custom_lines(enable_details=True,\n    domain_name=\"your_domain_name\")\npulumi.export(\"alidnsCustomLineId1\", ids.lines[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Dns.GetCustomLines.Invoke(new()\n    {\n        EnableDetails = true,\n        DomainName = \"your_domain_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alidnsCustomLineId1\"] = ids.Apply(getCustomLinesResult =\u003e getCustomLinesResult.Lines[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dns.GetCustomLines(ctx, \u0026dns.GetCustomLinesArgs{\n\t\t\tEnableDetails: pulumi.BoolRef(true),\n\t\t\tDomainName:    \"your_domain_name\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alidnsCustomLineId1\", ids.Lines[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DnsFunctions;\nimport com.pulumi.alicloud.dns.inputs.GetCustomLinesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DnsFunctions.getCustomLines(GetCustomLinesArgs.builder()\n            .enableDetails(true)\n            .domainName(\"your_domain_name\")\n            .build());\n\n        ctx.export(\"alidnsCustomLineId1\", ids.lines()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dns:getCustomLines\n      arguments:\n        enableDetails: true\n        domainName: your_domain_name\noutputs:\n  alidnsCustomLineId1: ${ids.lines[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCustomLines.\n","properties":{"domainName":{"type":"string","description":"The Domain name.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Custom Line IDs.\n"},"lang":{"type":"string","description":"The lang.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Custom Line name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["domainName"]},"outputs":{"description":"A collection of values returned by getCustomLines.\n","properties":{"domainName":{"type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"lang":{"type":"string"},"lines":{"items":{"$ref":"#/types/alicloud:dns/getCustomLinesLine:getCustomLinesLine"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["domainName","ids","lines","names","id"],"type":"object"}},"alicloud:dns/getDomainGroups:getDomainGroups":{"description":"\u003e **NOTE:** This datasource has been deprecated from v1.3.2. Please use the datasource \u003cspan pulumi-lang-nodejs=\"`alicloud.dns.getGroups`\" pulumi-lang-dotnet=\"`alicloud.dns.getGroups`\" pulumi-lang-go=\"`dns.getGroups`\" pulumi-lang-python=\"`dns_get_groups`\" pulumi-lang-yaml=\"`alicloud.dns.getGroups`\" pulumi-lang-java=\"`alicloud.dns.getGroups`\"\u003e`alicloud.dns.getGroups`\u003c/span\u003e instead.\n","inputs":{"description":"A collection of arguments for invoking getDomainGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"}},"nameRegex":{"type":"string"},"outputFile":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDomainGroups.\n","properties":{"groups":{"items":{"$ref":"#/types/alicloud:dns/getDomainGroupsGroup:getDomainGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:dns/getDomainRecords:getDomainRecords":{"description":"\u003e **NOTE:** This resource has been deprecated from v1.3.2. Please use the datasource \u003cspan pulumi-lang-nodejs=\"`alicloud.dns.getRecords`\" pulumi-lang-dotnet=\"`alicloud.dns.getRecords`\" pulumi-lang-go=\"`dns.getRecords`\" pulumi-lang-python=\"`dns_get_records`\" pulumi-lang-yaml=\"`alicloud.dns.getRecords`\" pulumi-lang-java=\"`alicloud.dns.getRecords`\"\u003e`alicloud.dns.getRecords`\u003c/span\u003e instead.\n","inputs":{"description":"A collection of arguments for invoking getDomainRecords.\n","properties":{"domainName":{"type":"string"},"hostRecordRegex":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}},"isLocked":{"type":"boolean"},"line":{"type":"string"},"outputFile":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"},"valueRegex":{"type":"string"}},"type":"object","required":["domainName"]},"outputs":{"description":"A collection of values returned by getDomainRecords.\n","properties":{"domainName":{"type":"string"},"hostRecordRegex":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"isLocked":{"type":"boolean"},"line":{"type":"string"},"outputFile":{"type":"string"},"records":{"items":{"$ref":"#/types/alicloud:dns/getDomainRecordsRecord:getDomainRecordsRecord"},"type":"array"},"status":{"type":"string"},"type":{"type":"string"},"urls":{"items":{"type":"string"},"type":"array"},"valueRegex":{"type":"string"}},"required":["domainName","ids","records","urls","id"],"type":"object"}},"alicloud:dns/getDomainTxtGuid:getDomainTxtGuid":{"description":"Provides the generation of txt records to realize the retrieval and verification of domain names.\n\n\u003e **NOTE:** Available in v1.80.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _this = alicloud.dns.getDomainTxtGuid({\n    domainName: \"test111.abc\",\n    type: \"ADD_SUB_DOMAIN\",\n});\nexport const rr = _this.then(_this =\u003e _this.rr);\nexport const value = _this.then(_this =\u003e _this.value);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nthis = alicloud.dns.get_domain_txt_guid(domain_name=\"test111.abc\",\n    type=\"ADD_SUB_DOMAIN\")\npulumi.export(\"rr\", this.rr)\npulumi.export(\"value\", this.value)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = AliCloud.Dns.GetDomainTxtGuid.Invoke(new()\n    {\n        DomainName = \"test111.abc\",\n        Type = \"ADD_SUB_DOMAIN\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"rr\"] = @this.Apply(@this =\u003e @this.Apply(getDomainTxtGuidResult =\u003e getDomainTxtGuidResult.Rr)),\n        [\"value\"] = @this.Apply(@this =\u003e @this.Apply(getDomainTxtGuidResult =\u003e getDomainTxtGuidResult.Value)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := dns.GetDomainTxtGuid(ctx, \u0026dns.GetDomainTxtGuidArgs{\n\t\t\tDomainName: \"test111.abc\",\n\t\t\tType:       \"ADD_SUB_DOMAIN\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rr\", this.Rr)\n\t\tctx.Export(\"value\", this.Value)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DnsFunctions;\nimport com.pulumi.alicloud.dns.inputs.GetDomainTxtGuidArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var this = DnsFunctions.getDomainTxtGuid(GetDomainTxtGuidArgs.builder()\n            .domainName(\"test111.abc\")\n            .type(\"ADD_SUB_DOMAIN\")\n            .build());\n\n        ctx.export(\"rr\", this_.rr());\n        ctx.export(\"value\", this_.value());\n    }\n}\n```\n```yaml\nvariables:\n  this:\n    fn::invoke:\n      function: alicloud:dns:getDomainTxtGuid\n      arguments:\n        domainName: test111.abc\n        type: ADD_SUB_DOMAIN\noutputs:\n  rr: ${this.rr}\n  value: ${this.value}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDomainTxtGuid.\n","properties":{"domainName":{"type":"string","description":"Verified domain name.\n"},"lang":{"type":"string","description":"User language.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"type":{"type":"string","description":"Txt verification function. Value:`ADD_SUB_DOMAIN`, `RETRIEVAL`.\n"}},"type":"object","required":["domainName","type"]},"outputs":{"description":"A collection of values returned by getDomainTxtGuid.\n","properties":{"domainName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lang":{"type":"string"},"outputFile":{"type":"string"},"rr":{"description":"Host record.\n","type":"string"},"type":{"type":"string"},"value":{"description":"Record the value.\n","type":"string"}},"required":["domainName","rr","type","value","id"],"type":"object"}},"alicloud:dns/getDomains:getDomains":{"description":"\u003e **DEPRECATED:**  This resource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.dns.getAlidnsDomains \" pulumi-lang-dotnet=\" alicloud.dns.getAlidnsDomains \" pulumi-lang-go=\" dns.getAlidnsDomains \" pulumi-lang-python=\" dns_get_alidns_domains \" pulumi-lang-yaml=\" alicloud.dns.getAlidnsDomains \" pulumi-lang-java=\" alicloud.dns.getAlidnsDomains \"\u003e alicloud.dns.getAlidnsDomains \u003c/span\u003efrom version 1.95.0. \n\nThis data source provides a list of DNS Domains in an Alibaba Cloud account according to the specified filters.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst domainsDs = alicloud.dns.getDomains({\n    domainNameRegex: \"^hegu\",\n    outputFile: \"domains.txt\",\n});\nexport const firstDomainId = domainsDs.then(domainsDs =\u003e domainsDs.domains?.[0]?.domainId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndomains_ds = alicloud.dns.get_domains(domain_name_regex=\"^hegu\",\n    output_file=\"domains.txt\")\npulumi.export(\"firstDomainId\", domains_ds.domains[0].domain_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var domainsDs = AliCloud.Dns.GetDomains.Invoke(new()\n    {\n        DomainNameRegex = \"^hegu\",\n        OutputFile = \"domains.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstDomainId\"] = domainsDs.Apply(getDomainsResult =\u003e getDomainsResult.Domains[0]?.DomainId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdomainsDs, err := dns.GetDomains(ctx, \u0026dns.GetDomainsArgs{\n\t\t\tDomainNameRegex: pulumi.StringRef(\"^hegu\"),\n\t\t\tOutputFile:      pulumi.StringRef(\"domains.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstDomainId\", domainsDs.Domains[0].DomainId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DnsFunctions;\nimport com.pulumi.alicloud.dns.inputs.GetDomainsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var domainsDs = DnsFunctions.getDomains(GetDomainsArgs.builder()\n            .domainNameRegex(\"^hegu\")\n            .outputFile(\"domains.txt\")\n            .build());\n\n        ctx.export(\"firstDomainId\", domainsDs.domains()[0].domainId());\n    }\n}\n```\n```yaml\nvariables:\n  domainsDs:\n    fn::invoke:\n      function: alicloud:dns:getDomains\n      arguments:\n        domainNameRegex: ^hegu\n        outputFile: domains.txt\noutputs:\n  firstDomainId: ${domainsDs.domains[0].domainId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDomains.\n","properties":{"aliDomain":{"type":"boolean","description":"Specifies whether the domain is from Alibaba Cloud or not.\n"},"domainNameRegex":{"type":"string","description":"A regex string to filter results by the domain name.\n"},"enableDetails":{"type":"boolean"},"groupId":{"type":"string","description":"Domain group ID, if not filled, the default is all groups.\n"},"groupNameRegex":{"type":"string","description":"A regex string to filter results by the group name.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of domain IDs.\n"},"instanceId":{"type":"string","description":"Cloud analysis product ID.\n"},"keyWord":{"type":"string","description":"The keywords are searched according to the `%KeyWord%` mode, which is not case sensitive.\n"},"lang":{"type":"string","description":"User language.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the dns belongs.\n"},"searchMode":{"type":"string","description":"Search mode, `LIKE` fuzzy search, `EXACT` exact search.\n"},"starmark":{"type":"boolean","description":"Whether to query the domain name star.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"versionCode":{"type":"string","description":"Cloud analysis version code.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDomains.\n","properties":{"aliDomain":{"description":"Indicates whether the domain is an Alibaba Cloud domain.\n","type":"boolean"},"domainNameRegex":{"type":"string"},"domains":{"description":"A list of domains. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dns/getDomainsDomain:getDomainsDomain"},"type":"array"},"enableDetails":{"type":"boolean"},"groupId":{"description":"Id of group that contains the domain.\n","type":"string"},"groupNameRegex":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of domain IDs.\n","items":{"type":"string"},"type":"array"},"instanceId":{"description":"Cloud analysis product ID of the domain.\n","type":"string"},"keyWord":{"type":"string"},"lang":{"type":"string"},"names":{"description":"A list of domain names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"description":"The Id of resource group which the dns belongs.\n","type":"string"},"searchMode":{"type":"string"},"starmark":{"type":"boolean"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"versionCode":{"description":"Cloud resolution version ID.\n","type":"string"}},"required":["domains","ids","names","id"],"type":"object"}},"alicloud:dns/getGroups:getGroups":{"description":"This data source provides a list of DNS Domain Groups in an Alibaba Cloud account according to the specified filters.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst groupsDs = alicloud.dns.getGroups({\n    nameRegex: \"^y[A-Za-z]+\",\n    outputFile: \"groups.txt\",\n});\nexport const firstGroupName = groupsDs.then(groupsDs =\u003e groupsDs.groups?.[0]?.groupName);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ngroups_ds = alicloud.dns.get_groups(name_regex=\"^y[A-Za-z]+\",\n    output_file=\"groups.txt\")\npulumi.export(\"firstGroupName\", groups_ds.groups[0].group_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var groupsDs = AliCloud.Dns.GetGroups.Invoke(new()\n    {\n        NameRegex = \"^y[A-Za-z]+\",\n        OutputFile = \"groups.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstGroupName\"] = groupsDs.Apply(getGroupsResult =\u003e getGroupsResult.Groups[0]?.GroupName),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgroupsDs, err := dns.GetGroups(ctx, \u0026dns.GetGroupsArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^y[A-Za-z]+\"),\n\t\t\tOutputFile: pulumi.StringRef(\"groups.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstGroupName\", groupsDs.Groups[0].GroupName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DnsFunctions;\nimport com.pulumi.alicloud.dns.inputs.GetGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var groupsDs = DnsFunctions.getGroups(GetGroupsArgs.builder()\n            .nameRegex(\"^y[A-Za-z]+\")\n            .outputFile(\"groups.txt\")\n            .build());\n\n        ctx.export(\"firstGroupName\", groupsDs.groups()[0].groupName());\n    }\n}\n```\n```yaml\nvariables:\n  groupsDs:\n    fn::invoke:\n      function: alicloud:dns:getGroups\n      arguments:\n        nameRegex: ^y[A-Za-z]+\n        outputFile: groups.txt\noutputs:\n  firstGroupName: ${groupsDs.groups[0].groupName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of group IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGroups.\n","properties":{"groups":{"description":"A list of groups. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dns/getGroupsGroup:getGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of group IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of group names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:dns/getGtmInstances:getGtmInstances":{"description":"This data source provides the Alidns Gtm Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.151.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dns.getGtmInstances({});\nexport const alidnsGtmInstanceId1 = ids.then(ids =\u003e ids.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dns.get_gtm_instances()\npulumi.export(\"alidnsGtmInstanceId1\", ids.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Dns.GetGtmInstances.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alidnsGtmInstanceId1\"] = ids.Apply(getGtmInstancesResult =\u003e getGtmInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dns.GetGtmInstances(ctx, \u0026dns.GetGtmInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alidnsGtmInstanceId1\", ids.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DnsFunctions;\nimport com.pulumi.alicloud.dns.inputs.GetGtmInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DnsFunctions.getGtmInstances(GetGtmInstancesArgs.builder()\n            .build());\n\n        ctx.export(\"alidnsGtmInstanceId1\", ids.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dns:getGtmInstances\n      arguments: {}\noutputs:\n  alidnsGtmInstanceId1: ${ids.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGtmInstances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Gtm Instance IDs.\n"},"lang":{"type":"string","description":"The lang.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGtmInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instances":{"items":{"$ref":"#/types/alicloud:dns/getGtmInstancesInstance:getGtmInstancesInstance"},"type":"array"},"lang":{"type":"string"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"}},"required":["ids","instances","outputFile","id"],"type":"object"}},"alicloud:dns/getInstances:getInstances":{"description":"\u003e **DEPRECATED:**  This resource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.dns.getAlidnsInstances \" pulumi-lang-dotnet=\" alicloud.dns.getAlidnsInstances \" pulumi-lang-go=\" dns.getAlidnsInstances \" pulumi-lang-python=\" dns_get_alidns_instances \" pulumi-lang-yaml=\" alicloud.dns.getAlidnsInstances \" pulumi-lang-java=\" alicloud.dns.getAlidnsInstances \"\u003e alicloud.dns.getAlidnsInstances \u003c/span\u003efrom version 1.95.0. \n\nThis data source provides a list of DNS instances in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:**  Available in 1.84.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.dns.getInstances({\n    ids: [\"dns-cn-oew1npk****\"],\n});\nexport const firstInstanceId = example.then(example =\u003e example.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.dns.get_instances(ids=[\"dns-cn-oew1npk****\"])\npulumi.export(\"firstInstanceId\", example.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Dns.GetInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"dns-cn-oew1npk****\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstInstanceId\"] = example.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := dns.GetInstances(ctx, \u0026dns.GetInstancesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"dns-cn-oew1npk****\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstInstanceId\", example.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DnsFunctions;\nimport com.pulumi.alicloud.dns.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = DnsFunctions.getInstances(GetInstancesArgs.builder()\n            .ids(\"dns-cn-oew1npk****\")\n            .build());\n\n        ctx.export(\"firstInstanceId\", example.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:dns:getInstances\n      arguments:\n        ids:\n          - dns-cn-oew1npk****\noutputs:\n  firstInstanceId: ${example.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"domainType":{"type":"string"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of instance IDs.\n"},"lang":{"type":"string"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"userClientIp":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"domainType":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of instance IDs.\n","items":{"type":"string"},"type":"array"},"instances":{"description":"A list of instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dns/getInstancesInstance:getInstancesInstance"},"type":"array"},"lang":{"type":"string"},"outputFile":{"type":"string"},"userClientIp":{"type":"string"}},"required":["ids","instances","id"],"type":"object"}},"alicloud:dns/getRecords:getRecords":{"description":"This data source provides a list of DNS Domain Records in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available since v1.0.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst recordsDs = alicloud.dns.getRecords({\n    domainName: \"xiaozhu.top\",\n    isLocked: false,\n    type: \"A\",\n    hostRecordRegex: \"^@\",\n    outputFile: \"records.txt\",\n});\nexport const firstRecordId = recordsDs.then(recordsDs =\u003e recordsDs.records?.[0]?.recordId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nrecords_ds = alicloud.dns.get_records(domain_name=\"xiaozhu.top\",\n    is_locked=False,\n    type=\"A\",\n    host_record_regex=\"^@\",\n    output_file=\"records.txt\")\npulumi.export(\"firstRecordId\", records_ds.records[0].record_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var recordsDs = AliCloud.Dns.GetRecords.Invoke(new()\n    {\n        DomainName = \"xiaozhu.top\",\n        IsLocked = false,\n        Type = \"A\",\n        HostRecordRegex = \"^@\",\n        OutputFile = \"records.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRecordId\"] = recordsDs.Apply(getRecordsResult =\u003e getRecordsResult.Records[0]?.RecordId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trecordsDs, err := dns.GetRecords(ctx, \u0026dns.GetRecordsArgs{\n\t\t\tDomainName:      \"xiaozhu.top\",\n\t\t\tIsLocked:        pulumi.BoolRef(false),\n\t\t\tType:            pulumi.StringRef(\"A\"),\n\t\t\tHostRecordRegex: pulumi.StringRef(\"^@\"),\n\t\t\tOutputFile:      pulumi.StringRef(\"records.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRecordId\", recordsDs.Records[0].RecordId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DnsFunctions;\nimport com.pulumi.alicloud.dns.inputs.GetRecordsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var recordsDs = DnsFunctions.getRecords(GetRecordsArgs.builder()\n            .domainName(\"xiaozhu.top\")\n            .isLocked(false)\n            .type(\"A\")\n            .hostRecordRegex(\"^@\")\n            .outputFile(\"records.txt\")\n            .build());\n\n        ctx.export(\"firstRecordId\", recordsDs.records()[0].recordId());\n    }\n}\n```\n```yaml\nvariables:\n  recordsDs:\n    fn::invoke:\n      function: alicloud:dns:getRecords\n      arguments:\n        domainName: xiaozhu.top\n        isLocked: false\n        type: A\n        hostRecordRegex: ^@\n        outputFile: records.txt\noutputs:\n  firstRecordId: ${recordsDs.records[0].recordId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRecords.\n","properties":{"domainName":{"type":"string","description":"The domain name associated to the records.\n"},"hostRecordRegex":{"type":"string","description":"Host record regex.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of record IDs.\n"},"isLocked":{"type":"boolean","description":"Whether the record is locked or not.\n"},"line":{"type":"string","description":"ISP line. Valid items are \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`telecom`\" pulumi-lang-dotnet=\"`Telecom`\" pulumi-lang-go=\"`telecom`\" pulumi-lang-python=\"`telecom`\" pulumi-lang-yaml=\"`telecom`\" pulumi-lang-java=\"`telecom`\"\u003e`telecom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unicom`\" pulumi-lang-dotnet=\"`Unicom`\" pulumi-lang-go=\"`unicom`\" pulumi-lang-python=\"`unicom`\" pulumi-lang-yaml=\"`unicom`\" pulumi-lang-java=\"`unicom`\"\u003e`unicom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mobile`\" pulumi-lang-dotnet=\"`Mobile`\" pulumi-lang-go=\"`mobile`\" pulumi-lang-python=\"`mobile`\" pulumi-lang-yaml=\"`mobile`\" pulumi-lang-java=\"`mobile`\"\u003e`mobile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`oversea`\" pulumi-lang-dotnet=\"`Oversea`\" pulumi-lang-go=\"`oversea`\" pulumi-lang-python=\"`oversea`\" pulumi-lang-yaml=\"`oversea`\" pulumi-lang-java=\"`oversea`\"\u003e`oversea`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`edu`\" pulumi-lang-dotnet=\"`Edu`\" pulumi-lang-go=\"`edu`\" pulumi-lang-python=\"`edu`\" pulumi-lang-yaml=\"`edu`\" pulumi-lang-java=\"`edu`\"\u003e`edu`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`drpeng`\" pulumi-lang-dotnet=\"`Drpeng`\" pulumi-lang-go=\"`drpeng`\" pulumi-lang-python=\"`drpeng`\" pulumi-lang-yaml=\"`drpeng`\" pulumi-lang-java=\"`drpeng`\"\u003e`drpeng`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`btvn`\" pulumi-lang-dotnet=\"`Btvn`\" pulumi-lang-go=\"`btvn`\" pulumi-lang-python=\"`btvn`\" pulumi-lang-yaml=\"`btvn`\" pulumi-lang-java=\"`btvn`\"\u003e`btvn`\u003c/span\u003e, .etc. For checking all resolution lines enumeration please visit [Alibaba Cloud DNS doc](https://www.alibabacloud.com/help/en/doc-detail/29807.htm)\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"Record status. Valid items are `ENABLE` and `DISABLE`.\n"},"type":{"type":"string","description":"Record type. Valid items are `A`, `NS`, `MX`, `TXT`, `CNAME`, `SRV`, `AAAA`, `REDIRECT_URL`, `FORWORD_URL` .\n"},"valueRegex":{"type":"string","description":"Host record value regex.\n"}},"type":"object","required":["domainName"]},"outputs":{"description":"A collection of values returned by getRecords.\n","properties":{"domainName":{"description":"Name of the domain the record belongs to.\n","type":"string"},"hostRecordRegex":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of record IDs.\n","items":{"type":"string"},"type":"array"},"isLocked":{"type":"boolean"},"line":{"description":"ISP line of the record.\n","type":"string"},"outputFile":{"type":"string"},"records":{"description":"A list of records. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dns/getRecordsRecord:getRecordsRecord"},"type":"array"},"status":{"description":"Status of the record.\n","type":"string"},"type":{"description":"Type of the record.\n","type":"string"},"urls":{"description":"A list of entire URLs. Each item format as `\u003chost_record\u003e.\u003cdomain_name\u003e`.\n","items":{"type":"string"},"type":"array"},"valueRegex":{"type":"string"}},"required":["domainName","ids","records","urls","id"],"type":"object"}},"alicloud:dns/getResolutionLines:getResolutionLines":{"description":"This data source provides a list of DNS Resolution Lines in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available in 1.60.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst resolutionLinesDs = alicloud.dns.getResolutionLines({\n    lineCodes: [\"cn_unicom_shanxi\"],\n    outputFile: \"support_lines.txt\",\n});\nexport const firstLineCode = resolutionLinesDs.then(resolutionLinesDs =\u003e resolutionLinesDs.lines?.[0]?.lineCode);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nresolution_lines_ds = alicloud.dns.get_resolution_lines(line_codes=[\"cn_unicom_shanxi\"],\n    output_file=\"support_lines.txt\")\npulumi.export(\"firstLineCode\", resolution_lines_ds.lines[0].line_code)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var resolutionLinesDs = AliCloud.Dns.GetResolutionLines.Invoke(new()\n    {\n        LineCodes = new[]\n        {\n            \"cn_unicom_shanxi\",\n        },\n        OutputFile = \"support_lines.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstLineCode\"] = resolutionLinesDs.Apply(getResolutionLinesResult =\u003e getResolutionLinesResult.Lines[0]?.LineCode),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tresolutionLinesDs, err := dns.GetResolutionLines(ctx, \u0026dns.GetResolutionLinesArgs{\n\t\t\tLineCodes: []string{\n\t\t\t\t\"cn_unicom_shanxi\",\n\t\t\t},\n\t\t\tOutputFile: pulumi.StringRef(\"support_lines.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstLineCode\", resolutionLinesDs.Lines[0].LineCode)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dns.DnsFunctions;\nimport com.pulumi.alicloud.dns.inputs.GetResolutionLinesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var resolutionLinesDs = DnsFunctions.getResolutionLines(GetResolutionLinesArgs.builder()\n            .lineCodes(\"cn_unicom_shanxi\")\n            .outputFile(\"support_lines.txt\")\n            .build());\n\n        ctx.export(\"firstLineCode\", resolutionLinesDs.lines()[0].lineCode());\n    }\n}\n```\n```yaml\nvariables:\n  resolutionLinesDs:\n    fn::invoke:\n      function: alicloud:dns:getResolutionLines\n      arguments:\n        lineCodes:\n          - cn_unicom_shanxi\n        outputFile: support_lines.txt\noutputs:\n  firstLineCode: ${resolutionLinesDs.lines[0].lineCode}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getResolutionLines.\n","properties":{"domainName":{"type":"string","description":"Domain Name.\n"},"lang":{"type":"string","description":"language.\n"},"lineCodes":{"type":"array","items":{"type":"string"},"description":"A list of lines codes.\n"},"lineDisplayNames":{"type":"array","items":{"type":"string"},"description":"A list of line display names.\n"},"lineNames":{"type":"array","items":{"type":"string"}},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"userClientIp":{"type":"string","description":"The ip of user client.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getResolutionLines.\n","properties":{"domainName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lang":{"type":"string"},"lineCodes":{"description":"Line code.\n","items":{"type":"string"},"type":"array"},"lineDisplayNames":{"description":"A list of line display names.\n","items":{"type":"string"},"type":"array"},"lineNames":{"items":{"type":"string"},"type":"array"},"lines":{"description":"A list of cloud resolution line. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dns/getResolutionLinesLine:getResolutionLinesLine"},"type":"array"},"outputFile":{"type":"string"},"userClientIp":{"type":"string"}},"required":["lineCodes","lineDisplayNames","lines","id"],"type":"object"}},"alicloud:drds/getInstances:getInstances":{"description":"The \u003cspan pulumi-lang-nodejs=\"`alicloud.drds.Instance`\" pulumi-lang-dotnet=\"`alicloud.drds.Instance`\" pulumi-lang-go=\"`drds.Instance`\" pulumi-lang-python=\"`drds.Instance`\" pulumi-lang-yaml=\"`alicloud.drds.Instance`\" pulumi-lang-java=\"`alicloud.drds.Instance`\"\u003e`alicloud.drds.Instance`\u003c/span\u003e data source provides a collection of DRDS instances available in Alibaba Cloud account.\nFilters support regular expression for the instance name, searches by tags, and other filters which are listed below.\n\n\u003e **NOTE:** Available in 1.35.0+.\n\n## Example Usage\n\n \u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst drdsInstancesDs = alicloud.drds.getInstances({\n    nameRegex: \"drds-\\\\d+\",\n    ids: [\"drdsabc123456\"],\n});\nexport const firstDbInstanceId = drdsInstancesDs.then(drdsInstancesDs =\u003e drdsInstancesDs.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndrds_instances_ds = alicloud.drds.get_instances(name_regex=\"drds-\\\\d+\",\n    ids=[\"drdsabc123456\"])\npulumi.export(\"firstDbInstanceId\", drds_instances_ds.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var drdsInstancesDs = AliCloud.Drds.GetInstances.Invoke(new()\n    {\n        NameRegex = \"drds-\\\\d+\",\n        Ids = new[]\n        {\n            \"drdsabc123456\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstDbInstanceId\"] = drdsInstancesDs.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/drds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdrdsInstancesDs, err := drds.GetInstances(ctx, \u0026drds.GetInstancesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"drds-\\\\d+\"),\n\t\t\tIds: []string{\n\t\t\t\t\"drdsabc123456\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstDbInstanceId\", drdsInstancesDs.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.drds.DrdsFunctions;\nimport com.pulumi.alicloud.drds.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var drdsInstancesDs = DrdsFunctions.getInstances(GetInstancesArgs.builder()\n            .nameRegex(\"drds-\\\\d+\")\n            .ids(\"drdsabc123456\")\n            .build());\n\n        ctx.export(\"firstDbInstanceId\", drdsInstancesDs.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  drdsInstancesDs:\n    fn::invoke:\n      function: alicloud:drds:getInstances\n      arguments:\n        nameRegex: drds-\\d+\n        ids:\n          - drdsabc123456\noutputs:\n  firstDbInstanceId: ${drdsInstancesDs.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"descriptionRegex":{"type":"string","description":"A regex string to filter results by instance description.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of DRDS instance IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by instance description. It is deprecated since v1.91.0 and will be removed in a future release, please use 'description_regex' instead.\n","deprecationMessage":"Field 'name_regex' is deprecated and will be removed in a future release. Please use 'description_regex' instead."},"outputFile":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"descriptionRegex":{"type":"string"},"descriptions":{"description":"A list of DRDS descriptions.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of DRDS instance IDs.\n","items":{"type":"string"},"type":"array"},"instances":{"description":"A list of DRDS instances.\n","items":{"$ref":"#/types/alicloud:drds/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"deprecationMessage":"Field 'name_regex' is deprecated and will be removed in a future release. Please use 'description_regex' instead.","type":"string"},"outputFile":{"type":"string"}},"required":["descriptions","ids","instances","id"],"type":"object"}},"alicloud:dts/getConsumerChannels:getConsumerChannels":{"description":"This data source provides the Dts Consumer Channels of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.146.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dts.getConsumerChannels({});\nexport const dtsConsumerChannelId1 = ids.then(ids =\u003e ids.channels?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dts.get_consumer_channels()\npulumi.export(\"dtsConsumerChannelId1\", ids.channels[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Dts.GetConsumerChannels.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dtsConsumerChannelId1\"] = ids.Apply(getConsumerChannelsResult =\u003e getConsumerChannelsResult.Channels[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dts\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dts.GetConsumerChannels(ctx, \u0026dts.GetConsumerChannelsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dtsConsumerChannelId1\", ids.Channels[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dts.DtsFunctions;\nimport com.pulumi.alicloud.dts.inputs.GetConsumerChannelsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DtsFunctions.getConsumerChannels(GetConsumerChannelsArgs.builder()\n            .build());\n\n        ctx.export(\"dtsConsumerChannelId1\", ids.channels()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dts:getConsumerChannels\n      arguments: {}\noutputs:\n  dtsConsumerChannelId1: ${ids.channels[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getConsumerChannels.\n","properties":{"dtsInstanceId":{"type":"string","description":"Subscription instance ID.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Consumer Channel IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["dtsInstanceId"]},"outputs":{"description":"A collection of values returned by getConsumerChannels.\n","properties":{"channels":{"items":{"$ref":"#/types/alicloud:dts/getConsumerChannelsChannel:getConsumerChannelsChannel"},"type":"array"},"dtsInstanceId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["channels","dtsInstanceId","ids","id"],"type":"object"}},"alicloud:dts/getInstances:getInstances":{"description":"This data source provides Dts Instance available to the user.[What is Instance](https://www.alibabacloud.com/help/en/data-transmission-service/latest/createdtsinstance)\n\n\u003e **NOTE:** Available in 1.198.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.dts.getInstances({\n    ids: [defaultAlicloudDtsInstance.id],\n    resourceGroupId: \"example_value\",\n});\nexport const alicloudDtsInstanceExampleId = _default.then(_default =\u003e _default.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.dts.get_instances(ids=[default_alicloud_dts_instance[\"id\"]],\n    resource_group_id=\"example_value\")\npulumi.export(\"alicloudDtsInstanceExampleId\", default.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Dts.GetInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudDtsInstance.Id,\n        },\n        ResourceGroupId = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudDtsInstanceExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dts\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := dts.GetInstances(ctx, \u0026dts.GetInstancesArgs{\nIds: interface{}{\ndefaultAlicloudDtsInstance.Id,\n},\nResourceGroupId: pulumi.StringRef(\"example_value\"),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudDtsInstanceExampleId\", _default.Instances[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dts.DtsFunctions;\nimport com.pulumi.alicloud.dts.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = DtsFunctions.getInstances(GetInstancesArgs.builder()\n            .ids(defaultAlicloudDtsInstance.id())\n            .resourceGroupId(\"example_value\")\n            .build());\n\n        ctx.export(\"alicloudDtsInstanceExampleId\", default_.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:dts:getInstances\n      arguments:\n        ids:\n          - ${defaultAlicloudDtsInstance.id}\n        resourceGroupId: example_value\noutputs:\n  alicloudDtsInstanceExampleId: ${default.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Instance IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by trail name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"type":"string","description":"Resource Group ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Instance IDs.\n","items":{"type":"string"},"type":"array"},"instances":{"description":"A list of Instance Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:dts/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Instance names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"description":"Resource Group ID.\n","type":"string"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:dts/getMigrationJobs:getMigrationJobs":{"description":"This data source provides the Dts Migration Jobs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.157.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dts.getMigrationJobs({\n    ids: [\"dts_job_id\"],\n});\nexport const dtsMigrationJobId1 = ids.then(ids =\u003e ids.jobs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dts.get_migration_jobs(ids=[\"dts_job_id\"])\npulumi.export(\"dtsMigrationJobId1\", ids.jobs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Dts.GetMigrationJobs.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"dts_job_id\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dtsMigrationJobId1\"] = ids.Apply(getMigrationJobsResult =\u003e getMigrationJobsResult.Jobs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dts\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dts.GetMigrationJobs(ctx, \u0026dts.GetMigrationJobsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"dts_job_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dtsMigrationJobId1\", ids.Jobs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dts.DtsFunctions;\nimport com.pulumi.alicloud.dts.inputs.GetMigrationJobsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DtsFunctions.getMigrationJobs(GetMigrationJobsArgs.builder()\n            .ids(\"dts_job_id\")\n            .build());\n\n        ctx.export(\"dtsMigrationJobId1\", ids.jobs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dts:getMigrationJobs\n      arguments:\n        ids:\n          - dts_job_id\noutputs:\n  dtsMigrationJobId1: ${ids.jobs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMigrationJobs.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Synchronization Job IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Migration Job name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getMigrationJobs.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"jobs":{"items":{"$ref":"#/types/alicloud:dts/getMigrationJobsJob:getMigrationJobsJob"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","jobs","names","id"],"type":"object"}},"alicloud:dts/getSubscriptionJobs:getSubscriptionJobs":{"description":"This data source provides the Dts Subscription Jobs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.138.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dts.getSubscriptionJobs({});\nexport const dtsSubscriptionJobId1 = ids.then(ids =\u003e ids.jobs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dts.get_subscription_jobs()\npulumi.export(\"dtsSubscriptionJobId1\", ids.jobs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Dts.GetSubscriptionJobs.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dtsSubscriptionJobId1\"] = ids.Apply(getSubscriptionJobsResult =\u003e getSubscriptionJobsResult.Jobs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dts\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dts.GetSubscriptionJobs(ctx, \u0026dts.GetSubscriptionJobsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dtsSubscriptionJobId1\", ids.Jobs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dts.DtsFunctions;\nimport com.pulumi.alicloud.dts.inputs.GetSubscriptionJobsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DtsFunctions.getSubscriptionJobs(GetSubscriptionJobsArgs.builder()\n            .build());\n\n        ctx.export(\"dtsSubscriptionJobId1\", ids.jobs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dts:getSubscriptionJobs\n      arguments: {}\noutputs:\n  dtsSubscriptionJobId1: ${ids.jobs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSubscriptionJobs.\n","properties":{"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Subscription Job IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by subscription job name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the task. Valid values: `Abnormal`, `Downgrade`, `Locked`, `Normal`, `NotStarted`, `NotStarted`, `PreCheckPass`, `PrecheckFailed`, `Prechecking`, `Retrying`, `Starting`, `Upgrade`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"type":"object"},"outputs":{"description":"A collection of values returned by getSubscriptionJobs.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"jobs":{"items":{"$ref":"#/types/alicloud:dts/getSubscriptionJobsJob:getSubscriptionJobsJob"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["ids","jobs","names","id"],"type":"object"}},"alicloud:dts/getSynchronizationJobs:getSynchronizationJobs":{"description":"This data source provides the Dts Synchronization Jobs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.138.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.dts.getSynchronizationJobs({});\nexport const dtsSynchronizationJobId1 = ids.then(ids =\u003e ids.jobs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.dts.get_synchronization_jobs()\npulumi.export(\"dtsSynchronizationJobId1\", ids.jobs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Dts.GetSynchronizationJobs.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dtsSynchronizationJobId1\"] = ids.Apply(getSynchronizationJobsResult =\u003e getSynchronizationJobsResult.Jobs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/dts\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := dts.GetSynchronizationJobs(ctx, \u0026dts.GetSynchronizationJobsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dtsSynchronizationJobId1\", ids.Jobs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.dts.DtsFunctions;\nimport com.pulumi.alicloud.dts.inputs.GetSynchronizationJobsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = DtsFunctions.getSynchronizationJobs(GetSynchronizationJobsArgs.builder()\n            .build());\n\n        ctx.export(\"dtsSynchronizationJobId1\", ids.jobs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:dts:getSynchronizationJobs\n      arguments: {}\noutputs:\n  dtsSynchronizationJobId1: ${ids.jobs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSynchronizationJobs.\n","properties":{"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Synchronization Job IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by synchronization job name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Synchronizing`, `Suspending`. `Downgrade`, `Failed`, `Finished`, `InitializeFailed`, `Locked`, `Modifying`, `NotConfigured`, `NotStarted`, `PreCheckPass`, `PrecheckFailed`, `Prechecking`, `Retrying`, `Upgrade`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSynchronizationJobs.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"jobs":{"items":{"$ref":"#/types/alicloud:dts/getSynchronizationJobsJob:getSynchronizationJobsJob"},"type":"array"},"nameRegex":{"type":"string"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["ids","jobs","id"],"type":"object"}},"alicloud:eais/getInstances:getInstances":{"description":"This data source provides the Eais Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.137.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:eais:getInstances\n      arguments:\n        id:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:eais:getInstances\n      arguments:\n        nameRegex: ^my-Instance\noutputs:\n  eaisInstanceId1: ${ids.instances[0].id}\n  eaisInstanceId2: ${nameRegex.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Instance IDs.\n"},"instanceType":{"type":"string","description":"EAIS instance type. Valid values: `eais.ei-a6.4xlarge`, `eais.ei-a6.2xlarge`, `eais.ei-a6.xlarge`, `eais.ei-a6.large`, `eais.ei-a6.medium`.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Attaching`, `Available`, `Detaching`, `InUse`, `Starting`, `Unavailable`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceType":{"type":"string"},"instances":{"items":{"$ref":"#/types/alicloud:eais/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:ebs/getDedicatedBlockStorageClusters:getDedicatedBlockStorageClusters":{"description":"This data source provides Ebs Dedicated Block Storage Cluster available to the user.\n\n\u003e **NOTE:** Available in 1.196.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ebs.getDedicatedBlockStorageClusters({\n    ids: [\"example_id\"],\n    nameRegex: defaultAlicloudEbsDedicatedBlockStorageCluster.name,\n});\nexport const alicloudEbsDedicatedBlockStorageClusterExampleId = _default.then(_default =\u003e _default.clusters?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ebs.get_dedicated_block_storage_clusters(ids=[\"example_id\"],\n    name_regex=default_alicloud_ebs_dedicated_block_storage_cluster[\"name\"])\npulumi.export(\"alicloudEbsDedicatedBlockStorageClusterExampleId\", default.clusters[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ebs.GetDedicatedBlockStorageClusters.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        NameRegex = defaultAlicloudEbsDedicatedBlockStorageCluster.Name,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudEbsDedicatedBlockStorageClusterExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getDedicatedBlockStorageClustersResult =\u003e getDedicatedBlockStorageClustersResult.Clusters[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ebs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ebs.GetDedicatedBlockStorageClusters(ctx, \u0026ebs.GetDedicatedBlockStorageClustersArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(defaultAlicloudEbsDedicatedBlockStorageCluster.Name),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudEbsDedicatedBlockStorageClusterExampleId\", _default.Clusters[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ebs.EbsFunctions;\nimport com.pulumi.alicloud.ebs.inputs.GetDedicatedBlockStorageClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EbsFunctions.getDedicatedBlockStorageClusters(GetDedicatedBlockStorageClustersArgs.builder()\n            .ids(\"example_id\")\n            .nameRegex(defaultAlicloudEbsDedicatedBlockStorageCluster.name())\n            .build());\n\n        ctx.export(\"alicloudEbsDedicatedBlockStorageClusterExampleId\", default_.clusters()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ebs:getDedicatedBlockStorageClusters\n      arguments:\n        ids:\n          - example_id\n        nameRegex: ${defaultAlicloudEbsDedicatedBlockStorageCluster.name}\noutputs:\n  alicloudEbsDedicatedBlockStorageClusterExampleId: ${default.clusters[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDedicatedBlockStorageClusters.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Dedicated Block Storage Cluster IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDedicatedBlockStorageClusters.\n","properties":{"clusters":{"description":"A list of Dedicated Block Storage Cluster Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ebs/getDedicatedBlockStorageClustersCluster:getDedicatedBlockStorageClustersCluster"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Dedicated Block Storage Cluster IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Dedicated Block Storage Clusters.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["clusters","ids","names","id"],"type":"object"}},"alicloud:ebs/getDiskReplicaGroups:getDiskReplicaGroups":{"description":"This data source provides the Ebs Disk Replica Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.187.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ebs.getDiskReplicaGroups({\n    ids: [\"example_id\"],\n});\nexport const ebsDiskReplicaGroupId1 = ids.then(ids =\u003e ids.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ebs.get_disk_replica_groups(ids=[\"example_id\"])\npulumi.export(\"ebsDiskReplicaGroupId1\", ids.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ebs.GetDiskReplicaGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ebsDiskReplicaGroupId1\"] = ids.Apply(getDiskReplicaGroupsResult =\u003e getDiskReplicaGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ebs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ebs.GetDiskReplicaGroups(ctx, \u0026ebs.GetDiskReplicaGroupsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ebsDiskReplicaGroupId1\", ids.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ebs.EbsFunctions;\nimport com.pulumi.alicloud.ebs.inputs.GetDiskReplicaGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EbsFunctions.getDiskReplicaGroups(GetDiskReplicaGroupsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"ebsDiskReplicaGroupId1\", ids.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ebs:getDiskReplicaGroups\n      arguments:\n        ids:\n          - example_id\noutputs:\n  ebsDiskReplicaGroupId1: ${ids.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDiskReplicaGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Disk Replica Group IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDiskReplicaGroups.\n","properties":{"groups":{"items":{"$ref":"#/types/alicloud:ebs/getDiskReplicaGroupsGroup:getDiskReplicaGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["groups","ids","id"],"type":"object"}},"alicloud:ebs/getDiskReplicaPairs:getDiskReplicaPairs":{"description":"This data source provides Ebs Disk Replica Pair available to the user.\n\n\u003e **NOTE:** Available in 1.196.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ebs.getDiskReplicaPairs({\n    ids: [defaultAlicloudEbsDiskReplicaPair.id],\n});\nexport const alicloudEbsDiskReplicaPairExampleId = _default.then(_default =\u003e _default.pairs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ebs.get_disk_replica_pairs(ids=[default_alicloud_ebs_disk_replica_pair[\"id\"]])\npulumi.export(\"alicloudEbsDiskReplicaPairExampleId\", default.pairs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ebs.GetDiskReplicaPairs.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudEbsDiskReplicaPair.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudEbsDiskReplicaPairExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getDiskReplicaPairsResult =\u003e getDiskReplicaPairsResult.Pairs[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ebs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := ebs.GetDiskReplicaPairs(ctx, \u0026ebs.GetDiskReplicaPairsArgs{\nIds: interface{}{\ndefaultAlicloudEbsDiskReplicaPair.Id,\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudEbsDiskReplicaPairExampleId\", _default.Pairs[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ebs.EbsFunctions;\nimport com.pulumi.alicloud.ebs.inputs.GetDiskReplicaPairsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EbsFunctions.getDiskReplicaPairs(GetDiskReplicaPairsArgs.builder()\n            .ids(defaultAlicloudEbsDiskReplicaPair.id())\n            .build());\n\n        ctx.export(\"alicloudEbsDiskReplicaPairExampleId\", default_.pairs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ebs:getDiskReplicaPairs\n      arguments:\n        ids:\n          - ${defaultAlicloudEbsDiskReplicaPair.id}\noutputs:\n  alicloudEbsDiskReplicaPairExampleId: ${default.pairs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDiskReplicaPairs.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Disk Replica Pair IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"replicaGroupId":{"type":"string","description":"Consistent Replication Group ID, you can specify a consistent replication group ID to query the replication pairs within the group.\n"},"site":{"type":"string","description":"Get data for replication pairs where this Region is the production site or the disaster recovery site.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDiskReplicaPairs.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Disk Replica Pair IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pairs":{"description":"A list of Disk Replica Pair Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ebs/getDiskReplicaPairsPair:getDiskReplicaPairsPair"},"type":"array"},"replicaGroupId":{"type":"string"},"site":{"type":"string"}},"required":["ids","pairs","id"],"type":"object"}},"alicloud:ebs/getRegions:getRegions":{"description":"This data source provides the Ebs Regions of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.187.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ebs.getRegions({\n    regionId: \"cn-hangzhou\",\n});\nexport const regions = _default.then(_default =\u003e _default.regions);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ebs.get_regions(region_id=\"cn-hangzhou\")\npulumi.export(\"regions\", default.regions)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ebs.GetRegions.Invoke(new()\n    {\n        RegionId = \"cn-hangzhou\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"regions\"] = @default.Apply(@default =\u003e @default.Apply(getRegionsResult =\u003e getRegionsResult.Regions)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ebs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ebs.GetRegions(ctx, \u0026ebs.GetRegionsArgs{\n\t\t\tRegionId: pulumi.StringRef(\"cn-hangzhou\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"regions\", _default.Regions)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ebs.EbsFunctions;\nimport com.pulumi.alicloud.ebs.inputs.GetRegionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EbsFunctions.getRegions(GetRegionsArgs.builder()\n            .regionId(\"cn-hangzhou\")\n            .build());\n\n        ctx.export(\"regions\", default_.regions());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ebs:getRegions\n      arguments:\n        regionId: cn-hangzhou\noutputs:\n  regions: ${default.regions}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRegions.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"regionId":{"type":"string","description":"A list of Disk Replica Group IDs.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRegions.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"regionId":{"type":"string"},"regions":{"items":{"$ref":"#/types/alicloud:ebs/getRegionsRegion:getRegionsRegion"},"type":"array"}},"required":["regions","id"],"type":"object"}},"alicloud:eci/getContainerGroups:getContainerGroups":{"description":"This data source provides the Eci Container Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.111.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.eci.getContainerGroups({\n    ids: [\"example_value\"],\n});\nexport const firstEciContainerGroupId = example.then(example =\u003e example.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.eci.get_container_groups(ids=[\"example_value\"])\npulumi.export(\"firstEciContainerGroupId\", example.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Eci.GetContainerGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstEciContainerGroupId\"] = example.Apply(getContainerGroupsResult =\u003e getContainerGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eci\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := eci.GetContainerGroups(ctx, \u0026eci.GetContainerGroupsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstEciContainerGroupId\", example.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eci.EciFunctions;\nimport com.pulumi.alicloud.eci.inputs.GetContainerGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = EciFunctions.getContainerGroups(GetContainerGroupsArgs.builder()\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"firstEciContainerGroupId\", example.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:eci:getContainerGroups\n      arguments:\n        ids:\n          - example_value\noutputs:\n  firstEciContainerGroupId: ${example.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getContainerGroups.\n","properties":{"containerGroupName":{"type":"string","description":"The name of ContainerGroup.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Container Group IDs.\n"},"limit":{"type":"integer","description":"The maximum number of resources returned in the response. Default value is \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e. Maximum value: \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e. The number of returned results is no greater than the specified number.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Container Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the container group belongs. If you have not specified a resource group for the container group, it is added to the default resource group.\n"},"status":{"type":"string","description":"The status list. For more information, see the description of ContainerGroup arrays.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"}},"vswitchId":{"type":"string","description":"The ID of the vSwitch. Currently, container groups can only be deployed in VPC networks.\n"},"withEvent":{"type":"boolean"},"zoneId":{"type":"string","description":"The ID of the zone where you want to deploy the container group. If no value is specified, the system assigns a zone to the container group. By default, no value is specified.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getContainerGroups.\n","properties":{"containerGroupName":{"type":"string"},"enableDetails":{"type":"boolean"},"groups":{"items":{"$ref":"#/types/alicloud:eci/getContainerGroupsGroup:getContainerGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"limit":{"type":"integer"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"vswitchId":{"type":"string"},"withEvent":{"type":"boolean"},"zoneId":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:eci/getImageCaches:getImageCaches":{"description":"Provides a collection of ECI Image Cache to the specified filters.\n\n\u003e **NOTE:** Available in 1.90.0+.\n\n## Example Usage\n\n \u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.eci.getImageCaches({\n    ids: [\"imc-bp1ef0dyp7ldhb1d****\"],\n});\nexport const imageCache = example.then(example =\u003e example.caches?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.eci.get_image_caches(ids=[\"imc-bp1ef0dyp7ldhb1d****\"])\npulumi.export(\"imageCache\", example.caches[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Eci.GetImageCaches.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"imc-bp1ef0dyp7ldhb1d****\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"imageCache\"] = example.Apply(getImageCachesResult =\u003e getImageCachesResult.Caches[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eci\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := eci.GetImageCaches(ctx, \u0026eci.GetImageCachesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"imc-bp1ef0dyp7ldhb1d****\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"imageCache\", example.Caches[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eci.EciFunctions;\nimport com.pulumi.alicloud.eci.inputs.GetImageCachesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = EciFunctions.getImageCaches(GetImageCachesArgs.builder()\n            .ids(\"imc-bp1ef0dyp7ldhb1d****\")\n            .build());\n\n        ctx.export(\"imageCache\", example.caches()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:eci:getImageCaches\n      arguments:\n        ids:\n          - imc-bp1ef0dyp7ldhb1d****\noutputs:\n  imageCache: ${example.caches[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getImageCaches.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list ids of ECI Image Cache.\n"},"image":{"type":"string","description":"Find the mirror cache containing it according to the image name.\n"},"imageCacheName":{"type":"string","description":"The name of ECI Image Cache.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by the image cache name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"snapshotId":{"type":"string","description":"The id of snapshot.\n"},"status":{"type":"string","description":"The status of ECI Image Cache.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getImageCaches.\n","properties":{"caches":{"description":"A list of caches. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:eci/getImageCachesCache:getImageCachesCache"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list ids of ECI Image Cache.\n","items":{"type":"string"},"type":"array"},"image":{"type":"string"},"imageCacheName":{"description":"The name of the ECI Image Cache.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of ECI Image Cache names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"snapshotId":{"description":"The id of snapshot.\n","type":"string"},"status":{"description":"The status of ECI Image Cache.\n","type":"string"}},"required":["caches","ids","names","id"],"type":"object"}},"alicloud:eci/getVirtualNodes:getVirtualNodes":{"description":"This data source provides the Eci Virtual Nodes of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.145.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.eci.getVirtualNodes({\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const eciVirtualNodeId1 = ids.then(ids =\u003e ids.nodes?.[0]?.id);\nconst nameRegex = alicloud.eci.getVirtualNodes({\n    nameRegex: \"^my-VirtualNode\",\n});\nexport const eciVirtualNodeId2 = nameRegex.then(nameRegex =\u003e nameRegex.nodes?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.eci.get_virtual_nodes(ids=[\n    \"example_value-1\",\n    \"example_value-2\",\n])\npulumi.export(\"eciVirtualNodeId1\", ids.nodes[0].id)\nname_regex = alicloud.eci.get_virtual_nodes(name_regex=\"^my-VirtualNode\")\npulumi.export(\"eciVirtualNodeId2\", name_regex.nodes[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Eci.GetVirtualNodes.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.Eci.GetVirtualNodes.Invoke(new()\n    {\n        NameRegex = \"^my-VirtualNode\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"eciVirtualNodeId1\"] = ids.Apply(getVirtualNodesResult =\u003e getVirtualNodesResult.Nodes[0]?.Id),\n        [\"eciVirtualNodeId2\"] = nameRegex.Apply(getVirtualNodesResult =\u003e getVirtualNodesResult.Nodes[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eci\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := eci.GetVirtualNodes(ctx, \u0026eci.GetVirtualNodesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"eciVirtualNodeId1\", ids.Nodes[0].Id)\n\t\tnameRegex, err := eci.GetVirtualNodes(ctx, \u0026eci.GetVirtualNodesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-VirtualNode\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"eciVirtualNodeId2\", nameRegex.Nodes[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eci.EciFunctions;\nimport com.pulumi.alicloud.eci.inputs.GetVirtualNodesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EciFunctions.getVirtualNodes(GetVirtualNodesArgs.builder()\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"eciVirtualNodeId1\", ids.nodes()[0].id());\n        final var nameRegex = EciFunctions.getVirtualNodes(GetVirtualNodesArgs.builder()\n            .nameRegex(\"^my-VirtualNode\")\n            .build());\n\n        ctx.export(\"eciVirtualNodeId2\", nameRegex.nodes()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:eci:getVirtualNodes\n      arguments:\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:eci:getVirtualNodes\n      arguments:\n        nameRegex: ^my-VirtualNode\noutputs:\n  eciVirtualNodeId1: ${ids.nodes[0].id}\n  eciVirtualNodeId2: ${nameRegex.nodes[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVirtualNodes.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Virtual Node IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Virtual Node name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The resource group ID. If when you create a GPU does not specify a resource group instance will automatically add the account's default resource group.\n"},"securityGroupId":{"type":"string","description":"VNode itself and by VNode created (ECI) the security group used by.\n"},"status":{"type":"string","description":"The Status of the virtual node. Valid values: `Cleaned`, `Failed`, `Pending`, `Ready`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"virtualNodeName":{"type":"string","description":"The name of the virtual node.\n"},"vswitchId":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVirtualNodes.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"nodes":{"items":{"$ref":"#/types/alicloud:eci/getVirtualNodesNode:getVirtualNodesNode"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"},"securityGroupId":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"virtualNodeName":{"type":"string"},"vswitchId":{"type":"string"}},"required":["ids","names","nodes","id"],"type":"object"}},"alicloud:eci/getZones:getZones":{"description":"This data source provides the available zones with the Elastic Container Instance (ECI) of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.145.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.eci.getZones({});\nexport const firstEciZonesId = _default.then(_default =\u003e _default.zones?.[0]?.zoneIds?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.eci.get_zones()\npulumi.export(\"firstEciZonesId\", default.zones[0].zone_ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Eci.GetZones.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstEciZonesId\"] = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.ZoneIds[0])),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eci\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := eci.GetZones(ctx, \u0026eci.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstEciZonesId\", _default.Zones[0].ZoneIds[0])\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eci.EciFunctions;\nimport com.pulumi.alicloud.eci.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EciFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        ctx.export(\"firstEciZonesId\", default_.zones()[0].zoneIds()[0]);\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eci:getZones\n      arguments: {}\noutputs:\n  firstEciZonesId: ${default.zones[0].zoneIds[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"zones":{"description":"A list of eci Instance zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:eci/getZonesZone:getZonesZone"},"type":"array"}},"required":["zones","id"],"type":"object"}},"alicloud:ecp/getInstanceTypes:getInstanceTypes":{"description":"This data source provides the available instance types with the Cloud Phone (ECP) Instance of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.158.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ecp.getInstanceTypes({});\nexport const firstEcpInstanceTypesInstanceType = _default.then(_default =\u003e _default.instanceTypes?.[0]?.instanceType);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ecp.get_instance_types()\npulumi.export(\"firstEcpInstanceTypesInstanceType\", default.instance_types[0].instance_type)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ecp.GetInstanceTypes.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstEcpInstanceTypesInstanceType\"] = @default.Apply(@default =\u003e @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.InstanceType)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ecp.GetInstanceTypes(ctx, \u0026ecp.GetInstanceTypesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstEcpInstanceTypesInstanceType\", _default.InstanceTypes[0].InstanceType)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecp.EcpFunctions;\nimport com.pulumi.alicloud.ecp.inputs.GetInstanceTypesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EcpFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .build());\n\n        ctx.export(\"firstEcpInstanceTypesInstanceType\", default_.instanceTypes()[0].instanceType());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ecp:getInstanceTypes\n      arguments: {}\noutputs:\n  firstEcpInstanceTypesInstanceType: ${default.instanceTypes[0].instanceType}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceTypes.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstanceTypes.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceTypes":{"items":{"$ref":"#/types/alicloud:ecp/getInstanceTypesInstanceType:getInstanceTypesInstanceType"},"type":"array"},"outputFile":{"type":"string"}},"required":["instanceTypes","id"],"type":"object"}},"alicloud:ecp/getInstances:getInstances":{"description":"This data source provides the Ecp Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.158.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ecp.getZones({});\nconst defaultGetInstanceTypes = alicloud.ecp.getInstanceTypes({});\nconst countSize = _default.then(_default =\u003e _default.zones).length;\nconst zoneId = pulumi.all([_default, countSize]).apply(([_default, countSize]) =\u003e _default.zones[countSize - 1].zoneId);\nconst instanceTypeCountSize = defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes).length;\nconst instanceType = pulumi.all([defaultGetInstanceTypes, instanceTypeCountSize]).apply(([defaultGetInstanceTypes, instanceTypeCountSize]) =\u003e defaultGetInstanceTypes.instanceTypes[instanceTypeCountSize - 1].instanceType);\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"default-NODELETING\",\n});\nconst defaultGetSwitches = defaultGetNetworks.then(defaultGetNetworks =\u003e alicloud.vpc.getSwitchesOutput({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: zoneId,\n}));\nconst group = new alicloud.ecs.SecurityGroup(\"group\", {\n    name: name,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n});\nconst defaultKeyPair = new alicloud.ecp.KeyPair(\"default\", {\n    keyPairName: name,\n    publicKeyBody: \"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\",\n});\nconst defaultInstance = new alicloud.ecp.Instance(\"default\", {\n    instanceName: name,\n    description: name,\n    force: true,\n    keyPairName: defaultKeyPair.keyPairName,\n    vswitchId: defaultGetSwitches.apply(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    imageId: \"android_9_0_0_release_2851157_20211201.vhd\",\n    instanceType: pulumi.all([defaultGetInstanceTypes, instanceTypeCountSize]).apply(([defaultGetInstanceTypes, instanceTypeCountSize]) =\u003e defaultGetInstanceTypes.instanceTypes[instanceTypeCountSize - 1].instanceType),\n    paymentType: \"PayAsYouGo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ecp.get_zones()\ndefault_get_instance_types = alicloud.ecp.get_instance_types()\ncount_size = len(default.zones)\nzone_id = count_size.apply(lambda count_size: default.zones[count_size - 1]).apply(lambda obj: obj.zone_id)\ninstance_type_count_size = len(default_get_instance_types.instance_types)\ninstance_type = instance_type_count_size.apply(lambda instance_type_count_size: default_get_instance_types.instance_types[instance_type_count_size - 1]).apply(lambda obj: obj.instance_type)\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"default-NODELETING\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=zone_id)\ngroup = alicloud.ecs.SecurityGroup(\"group\",\n    name=name,\n    vpc_id=default_get_networks.ids[0])\ndefault_key_pair = alicloud.ecp.KeyPair(\"default\",\n    key_pair_name=name,\n    public_key_body=\"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\")\ndefault_instance = alicloud.ecp.Instance(\"default\",\n    instance_name=name,\n    description=name,\n    force=True,\n    key_pair_name=default_key_pair.key_pair_name,\n    vswitch_id=default_get_switches.ids[0],\n    image_id=\"android_9_0_0_release_2851157_20211201.vhd\",\n    instance_type=instance_type_count_size.apply(lambda instance_type_count_size: default_get_instance_types.instance_types[instance_type_count_size - 1]).apply(lambda obj: obj.instance_type),\n    payment_type=\"PayAsYouGo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ecp.GetZones.Invoke();\n\n    var defaultGetInstanceTypes = AliCloud.Ecp.GetInstanceTypes.Invoke();\n\n    var countSize = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones)).Length;\n\n    var zoneId = Output.Tuple(@default, countSize).Apply(values =\u003e\n    {\n        var @default = values.Item1;\n        var countSize = values.Item2;\n        return @default.Apply(getZonesResult =\u003e getZonesResult.Zones)[countSize - 1].ZoneId;\n    });\n\n    var instanceTypeCountSize = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes).Length;\n\n    var instanceType = Output.Tuple(defaultGetInstanceTypes, instanceTypeCountSize).Apply(values =\u003e\n    {\n        var defaultGetInstanceTypes = values.Item1;\n        var instanceTypeCountSize = values.Item2;\n        return defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes)[instanceTypeCountSize - 1].InstanceType;\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"default-NODELETING\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = zoneId,\n    });\n\n    var @group = new AliCloud.Ecs.SecurityGroup(\"group\", new()\n    {\n        Name = name,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultKeyPair = new AliCloud.Ecp.KeyPair(\"default\", new()\n    {\n        KeyPairName = name,\n        PublicKeyBody = \"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\",\n    });\n\n    var defaultInstance = new AliCloud.Ecp.Instance(\"default\", new()\n    {\n        InstanceName = name,\n        Description = name,\n        Force = true,\n        KeyPairName = defaultKeyPair.KeyPairName,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        ImageId = \"android_9_0_0_release_2851157_20211201.vhd\",\n        InstanceType = Output.Tuple(defaultGetInstanceTypes, instanceTypeCountSize).Apply(values =\u003e\n        {\n            var defaultGetInstanceTypes = values.Item1;\n            var instanceTypeCountSize = values.Item2;\n            return defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes)[instanceTypeCountSize - 1].InstanceType;\n        }),\n        PaymentType = \"PayAsYouGo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecp\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ecp.GetZones(ctx, \u0026ecp.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecp.GetInstanceTypes(ctx, \u0026ecp.GetInstanceTypesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcountSize := len(_default.Zones)\n\t\tzoneId := countSize.ApplyT(func(countSize int) (ecp.GetZonesZone, error) {\n\t\t\treturn ecp.GetZonesZone(_default.Zones[float64(countSize.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\treturn __convert - 1, nil\n\t\t\t}).(pulumi.Float64Output))]), nil\n\t\t}).(ecp.GetZonesZoneOutput).ApplyT(func(obj ecp.GetZonesZone) (*string, error) {\n\t\t\treturn obj.ZoneId, nil\n\t\t}).(pulumi.StringPtrOutput)\n\t\tinstanceTypeCountSize := len(defaultGetInstanceTypes.InstanceTypes)\n\t\t_ = instanceTypeCountSize.ApplyT(func(instanceTypeCountSize int) (ecp.GetInstanceTypesInstanceType, error) {\n\t\t\treturn ecp.GetInstanceTypesInstanceType(defaultGetInstanceTypes.InstanceTypes[float64(instanceTypeCountSize.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\treturn __convert - 1, nil\n\t\t\t}).(pulumi.Float64Output))]), nil\n\t\t}).(ecp.GetInstanceTypesInstanceTypeOutput).ApplyT(func(obj ecp.GetInstanceTypesInstanceType) (*string, error) {\n\t\t\treturn obj.InstanceType, nil\n\t\t}).(pulumi.StringPtrOutput)\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"default-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(zoneId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroup(ctx, \"group\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.Any(name),\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultKeyPair, err := ecp.NewKeyPair(ctx, \"default\", \u0026ecp.KeyPairArgs{\n\t\t\tKeyPairName:   pulumi.Any(name),\n\t\t\tPublicKeyBody: pulumi.String(\"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecp.NewInstance(ctx, \"default\", \u0026ecp.InstanceArgs{\n\t\t\tInstanceName: pulumi.Any(name),\n\t\t\tDescription:  pulumi.Any(name),\n\t\t\tForce:        pulumi.Bool(true),\n\t\t\tKeyPairName:  defaultKeyPair.KeyPairName,\n\t\t\tVswitchId:    pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tImageId:      pulumi.String(\"android_9_0_0_release_2851157_20211201.vhd\"),\n\t\t\tInstanceType: pulumi.String(instanceTypeCountSize.ApplyT(func(instanceTypeCountSize int) (ecp.GetInstanceTypesInstanceType, error) {\n\t\t\t\treturn ecp.GetInstanceTypesInstanceType(defaultGetInstanceTypes.InstanceTypes[float64(instanceTypeCountSize.ApplyT(func(__convert float64) (float64, error) {\n\t\t\t\t\treturn __convert - 1, nil\n\t\t\t\t}).(pulumi.Float64Output))]), nil\n\t\t\t}).(ecp.GetInstanceTypesInstanceTypeOutput).ApplyT(func(obj ecp.GetInstanceTypesInstanceType) (*string, error) {\n\t\t\t\treturn obj.InstanceType, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPaymentType: pulumi.String(\"PayAsYouGo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecp.EcpFunctions;\nimport com.pulumi.alicloud.ecp.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecp.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecp.KeyPair;\nimport com.pulumi.alicloud.ecp.KeyPairArgs;\nimport com.pulumi.alicloud.ecp.Instance;\nimport com.pulumi.alicloud.ecp.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EcpFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetInstanceTypes = EcpFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .build());\n\n        final var countSize = default_.zones().length();\n\n        final var zoneId = countSize.applyValue(_countSize -\u003e default_.zones()[_countSize - 1]).applyValue(_obj -\u003e _obj.zoneId());\n\n        final var instanceTypeCountSize = defaultGetInstanceTypes.instanceTypes().length();\n\n        final var instanceType = instanceTypeCountSize.applyValue(_instanceTypeCountSize -\u003e defaultGetInstanceTypes.instanceTypes()[_instanceTypeCountSize - 1]).applyValue(_obj -\u003e _obj.instanceType());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"default-NODELETING\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(zoneId)\n            .build());\n\n        var group = new SecurityGroup(\"group\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultKeyPair = new KeyPair(\"defaultKeyPair\", KeyPairArgs.builder()\n            .keyPairName(name)\n            .publicKeyBody(\"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .instanceName(name)\n            .description(name)\n            .force(true)\n            .keyPairName(defaultKeyPair.keyPairName())\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .imageId(\"android_9_0_0_release_2851157_20211201.vhd\")\n            .instanceType(instanceTypeCountSize.applyValue(_instanceTypeCountSize -\u003e defaultGetInstanceTypes.instanceTypes()[_instanceTypeCountSize - 1]).applyValue(_obj -\u003e _obj.instanceType()))\n            .paymentType(\"PayAsYouGo\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ecp Instances IDs.\n"},"imageId":{"type":"string","description":"The ID Of The Image.\n"},"instanceName":{"type":"string","description":"The name of the instance. It must be 2 to 128 characters in length and must start with an\nuppercase letter or Chinese. It cannot start with http:// or https. It can contain Chinese, English, numbers,\nhalf-width colons (:), underscores (_), half-width periods (.), or dashes (-). The default value is the InstanceId of\nthe instance.\n"},"instanceType":{"type":"string","description":"Instance Type.\n"},"keyPairName":{"type":"string","description":"The name of the key pair of the mobile phone instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by mobile phone name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"paymentType":{"type":"string","description":"The payment type.Valid values: `PayAsYouGo`,`Subscription`\n"},"resolution":{"type":"string","description":"The selected resolution for the cloud mobile phone instance.\n"},"status":{"type":"string","description":"Instance status. Valid values: `Pending`, `Running`, `Starting`, `Stopped`, `Stopping`\n.\n"},"zoneId":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"imageId":{"type":"string"},"instanceName":{"type":"string"},"instanceType":{"type":"string"},"instances":{"items":{"$ref":"#/types/alicloud:ecp/getInstancesInstance:getInstancesInstance"},"type":"array"},"keyPairName":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"paymentType":{"type":"string"},"resolution":{"type":"string"},"status":{"type":"string"},"zoneId":{"type":"string"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:ecp/getKeyPairs:getKeyPairs":{"description":"This data source provides the Ecp Key Pairs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.130.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ecp.getKeyPairs({});\nexport const ecpKeyPairId1 = ids.then(ids =\u003e ids.pairs?.[0]?.id);\nconst nameRegex = alicloud.ecp.getKeyPairs({\n    nameRegex: \"^my-KeyPair\",\n});\nexport const ecpKeyPairId2 = nameRegex.then(nameRegex =\u003e nameRegex.pairs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ecp.get_key_pairs()\npulumi.export(\"ecpKeyPairId1\", ids.pairs[0].id)\nname_regex = alicloud.ecp.get_key_pairs(name_regex=\"^my-KeyPair\")\npulumi.export(\"ecpKeyPairId2\", name_regex.pairs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ecp.GetKeyPairs.Invoke();\n\n    var nameRegex = AliCloud.Ecp.GetKeyPairs.Invoke(new()\n    {\n        NameRegex = \"^my-KeyPair\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecpKeyPairId1\"] = ids.Apply(getKeyPairsResult =\u003e getKeyPairsResult.Pairs[0]?.Id),\n        [\"ecpKeyPairId2\"] = nameRegex.Apply(getKeyPairsResult =\u003e getKeyPairsResult.Pairs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ecp.GetKeyPairs(ctx, \u0026ecp.GetKeyPairsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecpKeyPairId1\", ids.Pairs[0].Id)\n\t\tnameRegex, err := ecp.GetKeyPairs(ctx, \u0026ecp.GetKeyPairsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-KeyPair\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecpKeyPairId2\", nameRegex.Pairs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecp.EcpFunctions;\nimport com.pulumi.alicloud.ecp.inputs.GetKeyPairsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EcpFunctions.getKeyPairs(GetKeyPairsArgs.builder()\n            .build());\n\n        ctx.export(\"ecpKeyPairId1\", ids.pairs()[0].id());\n        final var nameRegex = EcpFunctions.getKeyPairs(GetKeyPairsArgs.builder()\n            .nameRegex(\"^my-KeyPair\")\n            .build());\n\n        ctx.export(\"ecpKeyPairId2\", nameRegex.pairs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ecp:getKeyPairs\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:ecp:getKeyPairs\n      arguments:\n        nameRegex: ^my-KeyPair\noutputs:\n  ecpKeyPairId1: ${ids.pairs[0].id}\n  ecpKeyPairId2: ${nameRegex.pairs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKeyPairs.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Key Pair IDs. Its element value is same as Key Pair Name.\n"},"keyPairFingerPrint":{"type":"string","description":"The Private Key of the Fingerprint.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Key Pair name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getKeyPairs.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyPairFingerPrint":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pairs":{"items":{"$ref":"#/types/alicloud:ecp/getKeyPairsPair:getKeyPairsPair"},"type":"array"}},"required":["ids","names","pairs","id"],"type":"object"}},"alicloud:ecp/getZones:getZones":{"description":"This data source provides the available zones with the Cloud Phone (ECP) Instance of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.158.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ecp.getZones({});\nexport const alicloudNasZonesId = _default.then(_default =\u003e _default.zones?.[0]?.zoneId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ecp.get_zones()\npulumi.export(\"alicloudNasZonesId\", default.zones[0].zone_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ecp.GetZones.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudNasZonesId\"] = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.ZoneId)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ecp.GetZones(ctx, \u0026ecp.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudNasZonesId\", _default.Zones[0].ZoneId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecp.EcpFunctions;\nimport com.pulumi.alicloud.ecp.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EcpFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        ctx.export(\"alicloudNasZonesId\", default_.zones()[0].zoneId());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ecp:getZones\n      arguments: {}\noutputs:\n  alicloudNasZonesId: ${default.zones[0].zoneId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"zones":{"items":{"$ref":"#/types/alicloud:ecp/getZonesZone:getZonesZone"},"type":"array"}},"required":["zones","id"],"type":"object"}},"alicloud:ecs/getActivations:getActivations":{"description":"This data source provides the Ecs Activations of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.177.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ecs.getActivations({});\nexport const ecsActivationId1 = ids.then(ids =\u003e ids.activations?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ecs.get_activations()\npulumi.export(\"ecsActivationId1\", ids.activations[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ecs.GetActivations.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecsActivationId1\"] = ids.Apply(getActivationsResult =\u003e getActivationsResult.Activations[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ecs.GetActivations(ctx, \u0026ecs.GetActivationsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsActivationId1\", ids.Activations[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetActivationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EcsFunctions.getActivations(GetActivationsArgs.builder()\n            .build());\n\n        ctx.export(\"ecsActivationId1\", ids.activations()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ecs:getActivations\n      arguments: {}\noutputs:\n  ecsActivationId1: ${ids.activations[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getActivations.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Activation IDs.\n"},"instanceName":{"type":"string","description":"The default prefix of the instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getActivations.\n","properties":{"activations":{"items":{"$ref":"#/types/alicloud:ecs/getActivationsActivation:getActivationsActivation"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceName":{"type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"totalCount":{"type":"integer"}},"required":["activations","ids","totalCount","id"],"type":"object"}},"alicloud:ecs/getAutoSnapshotPolicies:getAutoSnapshotPolicies":{"description":"This data source provides the Ecs Auto Snapshot Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.117.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ecs.getAutoSnapshotPolicies({\n    ids: [\"sp-bp14e66xxxxxxxx\"],\n    nameRegex: \"tf-testAcc\",\n});\nexport const firstEcsAutoSnapshotPolicyId = example.then(example =\u003e example.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ecs.get_auto_snapshot_policies(ids=[\"sp-bp14e66xxxxxxxx\"],\n    name_regex=\"tf-testAcc\")\npulumi.export(\"firstEcsAutoSnapshotPolicyId\", example.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ecs.GetAutoSnapshotPolicies.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"sp-bp14e66xxxxxxxx\",\n        },\n        NameRegex = \"tf-testAcc\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstEcsAutoSnapshotPolicyId\"] = example.Apply(getAutoSnapshotPoliciesResult =\u003e getAutoSnapshotPoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ecs.GetAutoSnapshotPolicies(ctx, \u0026ecs.GetAutoSnapshotPoliciesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"sp-bp14e66xxxxxxxx\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"tf-testAcc\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstEcsAutoSnapshotPolicyId\", example.Policies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetAutoSnapshotPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = EcsFunctions.getAutoSnapshotPolicies(GetAutoSnapshotPoliciesArgs.builder()\n            .ids(\"sp-bp14e66xxxxxxxx\")\n            .nameRegex(\"tf-testAcc\")\n            .build());\n\n        ctx.export(\"firstEcsAutoSnapshotPolicyId\", example.policies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ecs:getAutoSnapshotPolicies\n      arguments:\n        ids:\n          - sp-bp14e66xxxxxxxx\n        nameRegex: tf-testAcc\noutputs:\n  firstEcsAutoSnapshotPolicyId: ${example.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAutoSnapshotPolicies.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Auto Snapshot Policy IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Auto Snapshot Policy name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of Auto Snapshot Policy. Valid Values: `Expire`, `Normal`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAutoSnapshotPolicies.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policies":{"items":{"$ref":"#/types/alicloud:ecs/getAutoSnapshotPoliciesPolicy:getAutoSnapshotPoliciesPolicy"},"type":"array"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["ids","names","policies","id"],"type":"object"}},"alicloud:ecs/getCapacityReservations:getCapacityReservations":{"description":"This data source provides Ecs Capacity Reservation available to the user.\n\n\u003e **NOTE:** Available in 1.195.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ecs.getCapacityReservations({\n    ids: [defaultAlicloudEcsCapacityReservation.id],\n    nameRegex: defaultAlicloudEcsCapacityReservation.name,\n    instanceType: \"ecs.c6.large\",\n    platform: \"linux\",\n});\nexport const alicloudEcsCapacityReservationExampleId = _default.then(_default =\u003e _default.reservations?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ecs.get_capacity_reservations(ids=[default_alicloud_ecs_capacity_reservation[\"id\"]],\n    name_regex=default_alicloud_ecs_capacity_reservation[\"name\"],\n    instance_type=\"ecs.c6.large\",\n    platform=\"linux\")\npulumi.export(\"alicloudEcsCapacityReservationExampleId\", default.reservations[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ecs.GetCapacityReservations.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudEcsCapacityReservation.Id,\n        },\n        NameRegex = defaultAlicloudEcsCapacityReservation.Name,\n        InstanceType = \"ecs.c6.large\",\n        Platform = \"linux\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudEcsCapacityReservationExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getCapacityReservationsResult =\u003e getCapacityReservationsResult.Reservations[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := ecs.GetCapacityReservations(ctx, \u0026ecs.GetCapacityReservationsArgs{\nIds: interface{}{\ndefaultAlicloudEcsCapacityReservation.Id,\n},\nNameRegex: pulumi.StringRef(defaultAlicloudEcsCapacityReservation.Name),\nInstanceType: pulumi.StringRef(\"ecs.c6.large\"),\nPlatform: pulumi.StringRef(\"linux\"),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudEcsCapacityReservationExampleId\", _default.Reservations[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetCapacityReservationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EcsFunctions.getCapacityReservations(GetCapacityReservationsArgs.builder()\n            .ids(defaultAlicloudEcsCapacityReservation.id())\n            .nameRegex(defaultAlicloudEcsCapacityReservation.name())\n            .instanceType(\"ecs.c6.large\")\n            .platform(\"linux\")\n            .build());\n\n        ctx.export(\"alicloudEcsCapacityReservationExampleId\", default_.reservations()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getCapacityReservations\n      arguments:\n        ids:\n          - ${defaultAlicloudEcsCapacityReservation.id}\n        nameRegex: ${defaultAlicloudEcsCapacityReservation.name}\n        instanceType: ecs.c6.large\n        platform: linux\noutputs:\n  alicloudEcsCapacityReservationExampleId: ${default.reservations[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCapacityReservations.\n","properties":{"capacityReservationIds":{"type":"array","items":{"type":"string"}},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Capacity Reservation IDs.\n"},"instanceType":{"type":"string","description":"Instance type. Currently, you can only set the capacity reservation service for one instance type.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"paymentType":{"type":"string","description":"The payment type of the resource. value range `PostPaid`, `PrePaid`.\n"},"platform":{"type":"string","description":"platform of the capacity reservation , value range \u003cspan pulumi-lang-nodejs=\"`windows`\" pulumi-lang-dotnet=\"`Windows`\" pulumi-lang-go=\"`windows`\" pulumi-lang-python=\"`windows`\" pulumi-lang-yaml=\"`windows`\" pulumi-lang-java=\"`windows`\"\u003e`windows`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\"\u003e`linux`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"status":{"type":"string","description":"The status of the capacity reservation. value range `All`, `Pending`, `Preparing`, `Prepared`, `Active`, `Released`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCapacityReservations.\n","properties":{"capacityReservationIds":{"items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Capacity Reservation IDs.\n","items":{"type":"string"},"type":"array"},"instanceType":{"description":"Instance type. Currently, you can only set the capacity reservation service for one instance type.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Capacity Reservations.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"paymentType":{"description":"The payment type of the resource\n","type":"string"},"platform":{"description":"platform of the capacity reservation.\n","type":"string"},"reservations":{"description":"A list of Capacity Reservation Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getCapacityReservationsReservation:getCapacityReservationsReservation"},"type":"array"},"resourceGroupId":{"description":"The resource group id\n","type":"string"},"status":{"description":"The status of the capacity reservation.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the Capacity Reservation.\n","type":"object"}},"required":["ids","names","reservations","id"],"type":"object"}},"alicloud:ecs/getCommands:getCommands":{"description":"This data source provides the Ecs Commands of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.116.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ecs.getCommands({\n    ids: [\"E2RY53-xxxx\"],\n    nameRegex: \"tf-testAcc\",\n});\nexport const firstEcsCommandId = example.then(example =\u003e example.commands?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ecs.get_commands(ids=[\"E2RY53-xxxx\"],\n    name_regex=\"tf-testAcc\")\npulumi.export(\"firstEcsCommandId\", example.commands[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ecs.GetCommands.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"E2RY53-xxxx\",\n        },\n        NameRegex = \"tf-testAcc\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstEcsCommandId\"] = example.Apply(getCommandsResult =\u003e getCommandsResult.Commands[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ecs.GetCommands(ctx, \u0026ecs.GetCommandsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"E2RY53-xxxx\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"tf-testAcc\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstEcsCommandId\", example.Commands[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetCommandsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = EcsFunctions.getCommands(GetCommandsArgs.builder()\n            .ids(\"E2RY53-xxxx\")\n            .nameRegex(\"tf-testAcc\")\n            .build());\n\n        ctx.export(\"firstEcsCommandId\", example.commands()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ecs:getCommands\n      arguments:\n        ids:\n          - E2RY53-xxxx\n        nameRegex: tf-testAcc\noutputs:\n  firstEcsCommandId: ${example.commands[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCommands.\n","properties":{"commandProvider":{"type":"string","description":"Public order provider.\n"},"contentEncoding":{"type":"string","description":"The Base64-encoded content of the command.\n"},"description":{"type":"string","description":"The description of command.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Command IDs.\n"},"name":{"type":"string","description":"The name of the command.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Command name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"type":{"type":"string","description":"The command type. Valid Values: `RunBatScript`, `RunPowerShellScript` and `RunShellScript`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCommands.\n","properties":{"commandProvider":{"type":"string"},"commands":{"items":{"$ref":"#/types/alicloud:ecs/getCommandsCommand:getCommandsCommand"},"type":"array"},"contentEncoding":{"type":"string"},"description":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"type":{"type":"string"}},"required":["commands","ids","names","id"],"type":"object"}},"alicloud:ecs/getDedicatedHosts:getDedicatedHosts":{"description":"This data source provides the ECS Dedicated Hosts of the current Alibaba Cloud user.\n \n\u003e **NOTE:** Available since v1.91.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.ecs.DedicatedHost(\"default\", {\n    dedicatedHostType: \"ddh.c5\",\n    description: \"From_Terraform\",\n    dedicatedHostName: name,\n    actionOnMaintenance: \"Migrate\",\n    tags: {\n        Create: \"TF\",\n        For: \"ddh-test\",\n    },\n});\nconst ids = alicloud.ecs.getDedicatedHostsOutput({\n    ids: [_default.id],\n});\nexport const ecsDedicatedHostId0 = ids.apply(ids =\u003e ids.hosts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ecs.DedicatedHost(\"default\",\n    dedicated_host_type=\"ddh.c5\",\n    description=\"From_Terraform\",\n    dedicated_host_name=name,\n    action_on_maintenance=\"Migrate\",\n    tags={\n        \"Create\": \"TF\",\n        \"For\": \"ddh-test\",\n    })\nids = alicloud.ecs.get_dedicated_hosts_output(ids=[default.id])\npulumi.export(\"ecsDedicatedHostId0\", ids.hosts[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Ecs.DedicatedHost(\"default\", new()\n    {\n        DedicatedHostType = \"ddh.c5\",\n        Description = \"From_Terraform\",\n        DedicatedHostName = name,\n        ActionOnMaintenance = \"Migrate\",\n        Tags = \n        {\n            { \"Create\", \"TF\" },\n            { \"For\", \"ddh-test\" },\n        },\n    });\n\n    var ids = AliCloud.Ecs.GetDedicatedHosts.Invoke(new()\n    {\n        Ids = new[]\n        {\n            @default.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecsDedicatedHostId0\"] = ids.Apply(getDedicatedHostsResult =\u003e getDedicatedHostsResult.Hosts[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := ecs.NewDedicatedHost(ctx, \"default\", \u0026ecs.DedicatedHostArgs{\n\t\t\tDedicatedHostType:   pulumi.String(\"ddh.c5\"),\n\t\t\tDescription:         pulumi.String(\"From_Terraform\"),\n\t\t\tDedicatedHostName:   pulumi.String(name),\n\t\t\tActionOnMaintenance: pulumi.String(\"Migrate\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Create\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":    pulumi.String(\"ddh-test\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := ecs.GetDedicatedHostsOutput(ctx, ecs.GetDedicatedHostsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"ecsDedicatedHostId0\", ids.ApplyT(func(ids ecs.GetDedicatedHostsResult) (*string, error) {\n\t\t\treturn \u0026ids.Hosts[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.DedicatedHost;\nimport com.pulumi.alicloud.ecs.DedicatedHostArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetDedicatedHostsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new DedicatedHost(\"default\", DedicatedHostArgs.builder()\n            .dedicatedHostType(\"ddh.c5\")\n            .description(\"From_Terraform\")\n            .dedicatedHostName(name)\n            .actionOnMaintenance(\"Migrate\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Create\", \"TF\"),\n                Map.entry(\"For\", \"ddh-test\")\n            ))\n            .build());\n\n        final var ids = EcsFunctions.getDedicatedHosts(GetDedicatedHostsArgs.builder()\n            .ids(default_.id())\n            .build());\n\n        ctx.export(\"ecsDedicatedHostId0\", ids.applyValue(_ids -\u003e _ids.hosts()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:ecs:DedicatedHost\n    properties:\n      dedicatedHostType: ddh.c5\n      description: From_Terraform\n      dedicatedHostName: ${name}\n      actionOnMaintenance: Migrate\n      tags:\n        Create: TF\n        For: ddh-test\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ecs:getDedicatedHosts\n      arguments:\n        ids:\n          - ${default.id}\noutputs:\n  ecsDedicatedHostId0: ${ids.hosts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDedicatedHosts.\n","properties":{"dedicatedHostId":{"type":"string","description":"The ID of ECS Dedicated Host.\n"},"dedicatedHostName":{"type":"string","description":"The name of ECS Dedicated Host.\n"},"dedicatedHostType":{"type":"string","description":"The type of the dedicated host.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of ECS Dedicated Host ids.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by the ECS Dedicated Host name.\n"},"operationLocks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getDedicatedHostsOperationLock:getDedicatedHostsOperationLock"},"description":"The reason why the dedicated host resource is locked. See \u003cspan pulumi-lang-nodejs=\"`operationLocks`\" pulumi-lang-dotnet=\"`OperationLocks`\" pulumi-lang-go=\"`operationLocks`\" pulumi-lang-python=\"`operation_locks`\" pulumi-lang-yaml=\"`operationLocks`\" pulumi-lang-java=\"`operationLocks`\"\u003e`operation_locks`\u003c/span\u003e below.\n"},"outputFile":{"type":"string","description":"Save the result to the file.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the ECS Dedicated Host belongs.\n"},"status":{"type":"string","description":"The status of the ECS Dedicated Host. Valid Value: `Available`, `Creating`, `PermanentFailure`, `Released`, `UnderAssessment`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true},"zoneId":{"type":"string","description":"The zone ID of the ECS Dedicated Host.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDedicatedHosts.\n","properties":{"dedicatedHostId":{"description":"ID of the ECS Dedicated Host.\n","type":"string"},"dedicatedHostName":{"description":"The name of the dedicated host.\n","type":"string"},"dedicatedHostType":{"description":"The type of the dedicated host.\n","type":"string"},"hosts":{"description":"A list of ECS Dedicated Hosts. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getDedicatedHostsHost:getDedicatedHostsHost"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of ECS Dedicated Host names.\n","items":{"type":"string"},"type":"array"},"operationLocks":{"description":"(Available since v1.123.1) The operation_locks. contains the following attribute:\n","items":{"$ref":"#/types/alicloud:ecs/getDedicatedHostsOperationLock:getDedicatedHostsOperationLock"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"description":"The ID of the resource group to which the dedicated host belongs.\n","type":"string"},"status":{"description":"The service status of the dedicated host.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of the dedicated host.\n","type":"object"},"zoneId":{"description":"The zone id of the dedicated host.\n","type":"string"}},"required":["hosts","ids","names","id"],"type":"object"}},"alicloud:ecs/getDisks:getDisks":{"description":"\u003e **DEPRECATED:** This datasource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.ecs.getEcsDisks \" pulumi-lang-dotnet=\" alicloud.ecs.getEcsDisks \" pulumi-lang-go=\" ecs.getEcsDisks \" pulumi-lang-python=\" ecs_get_ecs_disks \" pulumi-lang-yaml=\" alicloud.ecs.getEcsDisks \" pulumi-lang-java=\" alicloud.ecs.getEcsDisks \"\u003e alicloud.ecs.getEcsDisks \u003c/span\u003efrom version 1.122.0.\n\nThis data source provides the disks of the current Alibaba Cloud user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst disksDs = alicloud.ecs.getDisks({\n    nameRegex: \"sample_disk\",\n});\nexport const firstDiskId = disksDs.then(disksDs =\u003e disksDs.disks?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndisks_ds = alicloud.ecs.get_disks(name_regex=\"sample_disk\")\npulumi.export(\"firstDiskId\", disks_ds.disks[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var disksDs = AliCloud.Ecs.GetDisks.Invoke(new()\n    {\n        NameRegex = \"sample_disk\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstDiskId\"] = disksDs.Apply(getDisksResult =\u003e getDisksResult.Disks[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdisksDs, err := ecs.GetDisks(ctx, \u0026ecs.GetDisksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"sample_disk\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstDiskId\", disksDs.Disks[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetDisksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var disksDs = EcsFunctions.getDisks(GetDisksArgs.builder()\n            .nameRegex(\"sample_disk\")\n            .build());\n\n        ctx.export(\"firstDiskId\", disksDs.disks()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  disksDs:\n    fn::invoke:\n      function: alicloud:ecs:getDisks\n      arguments:\n        nameRegex: sample_disk\noutputs:\n  firstDiskId: ${disksDs.disks[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDisks.\n","properties":{"additionalAttributes":{"type":"array","items":{"type":"string"}},"autoSnapshotPolicyId":{"type":"string"},"availabilityZone":{"type":"string","description":"Availability zone of the disk.\n","deprecationMessage":"Field 'availability_zone' has been deprecated from provider version 1.122.0. New field 'zone_id' instead"},"category":{"type":"string","description":"Disk category. Possible values: \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e (basic cloud disk), \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e (ultra cloud disk), \u003cspan pulumi-lang-nodejs=\"`ephemeralSsd`\" pulumi-lang-dotnet=\"`EphemeralSsd`\" pulumi-lang-go=\"`ephemeralSsd`\" pulumi-lang-python=\"`ephemeral_ssd`\" pulumi-lang-yaml=\"`ephemeralSsd`\" pulumi-lang-java=\"`ephemeralSsd`\"\u003e`ephemeral_ssd`\u003c/span\u003e (local SSD cloud disk), \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e (SSD cloud disk), and \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e (ESSD cloud disk), \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e.\n"},"deleteAutoSnapshot":{"type":"boolean"},"deleteWithInstance":{"type":"boolean"},"diskName":{"type":"string"},"diskType":{"type":"string"},"dryRun":{"type":"boolean"},"enableAutoSnapshot":{"type":"boolean"},"enableAutomatedSnapshotPolicy":{"type":"boolean"},"enableShared":{"type":"boolean"},"encrypted":{"type":"string","description":"Indicate whether the disk is encrypted or not. Possible values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of disks IDs.\n"},"instanceId":{"type":"string","description":"Filter the results by the specified ECS instance ID.\n"},"kmsKeyId":{"type":"string"},"nameRegex":{"type":"string","description":"A regex string to filter results by disk name.\n"},"operationLocks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getDisksOperationLock:getDisksOperationLock"}},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"paymentType":{"type":"string"},"portable":{"type":"boolean"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the disk belongs.\n"},"snapshotId":{"type":"string","description":"Snapshot used to create the disk. It is null if no snapshot is used to create the disk.\n"},"status":{"type":"string","description":"Current status. Possible values: `In_use`, `Available`, `Attaching`, `Detaching`, `Creating` and `ReIniting`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the disks. It must be in the format:\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst disksDs = alicloud.ecs.getDisks({\n    tags: {\n        tagKey1: \"tagValue1\",\n        tagKey2: \"tagValue2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndisks_ds = alicloud.ecs.get_disks(tags={\n    \"tagKey1\": \"tagValue1\",\n    \"tagKey2\": \"tagValue2\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var disksDs = AliCloud.Ecs.GetDisks.Invoke(new()\n    {\n        Tags = \n        {\n            { \"tagKey1\", \"tagValue1\" },\n            { \"tagKey2\", \"tagValue2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.GetDisks(ctx, \u0026ecs.GetDisksArgs{\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"tagKey1\": \"tagValue1\",\n\t\t\t\t\"tagKey2\": \"tagValue2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetDisksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var disksDs = EcsFunctions.getDisks(GetDisksArgs.builder()\n            .tags(Map.ofEntries(\n                Map.entry(\"tagKey1\", \"tagValue1\"),\n                Map.entry(\"tagKey2\", \"tagValue2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  disksDs:\n    fn::invoke:\n      function: alicloud:ecs:getDisks\n      arguments:\n        tags:\n          tagKey1: tagValue1\n          tagKey2: tagValue2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n"},"type":{"type":"string","description":"Disk type. Possible values: \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`data`\" pulumi-lang-dotnet=\"`Data`\" pulumi-lang-go=\"`data`\" pulumi-lang-python=\"`data`\" pulumi-lang-yaml=\"`data`\" pulumi-lang-java=\"`data`\"\u003e`data`\u003c/span\u003e.\n","deprecationMessage":"Field 'type' has been deprecated from provider version 1.122.0. New field 'disk_type' instead."},"zoneId":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDisks.\n","properties":{"additionalAttributes":{"items":{"type":"string"},"type":"array"},"autoSnapshotPolicyId":{"type":"string"},"availabilityZone":{"deprecationMessage":"Field 'availability_zone' has been deprecated from provider version 1.122.0. New field 'zone_id' instead","description":"Availability zone of the disk.\n","type":"string"},"category":{"description":"Disk category. Possible values: \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e (basic cloud disk), \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e (ultra cloud disk), \u003cspan pulumi-lang-nodejs=\"`ephemeralSsd`\" pulumi-lang-dotnet=\"`EphemeralSsd`\" pulumi-lang-go=\"`ephemeralSsd`\" pulumi-lang-python=\"`ephemeral_ssd`\" pulumi-lang-yaml=\"`ephemeralSsd`\" pulumi-lang-java=\"`ephemeralSsd`\"\u003e`ephemeral_ssd`\u003c/span\u003e (local SSD cloud disk), \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e (SSD cloud disk), and \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e (ESSD cloud disk).\n","type":"string"},"deleteAutoSnapshot":{"type":"boolean"},"deleteWithInstance":{"type":"boolean"},"diskName":{"type":"string"},"diskType":{"type":"string"},"disks":{"description":"A list of disks. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getDisksDisk:getDisksDisk"},"type":"array"},"dryRun":{"type":"boolean"},"enableAutoSnapshot":{"type":"boolean"},"enableAutomatedSnapshotPolicy":{"type":"boolean"},"enableShared":{"type":"boolean"},"encrypted":{"description":"Indicate whether the disk is encrypted or not. Possible values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"description":"ID of the related instance. It is \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e unless the \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e is `In_use`.\n","type":"string"},"kmsKeyId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"operationLocks":{"items":{"$ref":"#/types/alicloud:ecs/getDisksOperationLock:getDisksOperationLock"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"paymentType":{"type":"string"},"portable":{"type":"boolean"},"resourceGroupId":{"description":"The Id of resource group.\n","type":"string"},"snapshotId":{"description":"Snapshot used to create the disk. It is null if no snapshot is used to create the disk.\n","type":"string"},"status":{"description":"Current status. Possible values: `In_use`, `Available`, `Attaching`, `Detaching`, `Creating` and `ReIniting`.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A map of tags assigned to the disk.\n","type":"object"},"totalCount":{"type":"integer"},"type":{"deprecationMessage":"Field 'type' has been deprecated from provider version 1.122.0. New field 'disk_type' instead.","description":"Disk type. Possible values: \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`data`\" pulumi-lang-dotnet=\"`Data`\" pulumi-lang-go=\"`data`\" pulumi-lang-python=\"`data`\" pulumi-lang-yaml=\"`data`\" pulumi-lang-java=\"`data`\"\u003e`data`\u003c/span\u003e.\n","type":"string"},"zoneId":{"type":"string"}},"required":["disks","ids","names","totalCount","id"],"type":"object"}},"alicloud:ecs/getEcsDedicatedHostClusters:getEcsDedicatedHostClusters":{"description":"This data source provides the Ecs Dedicated Host Clusters of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.146.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ecs.getEcsDedicatedHostClusters({\n    ids: [\"example_id\"],\n});\nexport const ecsDedicatedHostClusterId1 = ids.then(ids =\u003e ids.clusters?.[0]?.id);\nconst nameRegex = alicloud.ecs.getEcsDedicatedHostClusters({\n    nameRegex: \"^my-DedicatedHostCluster\",\n});\nexport const ecsDedicatedHostClusterId2 = nameRegex.then(nameRegex =\u003e nameRegex.clusters?.[0]?.id);\nconst zoneId = alicloud.ecs.getEcsDedicatedHostClusters({\n    zoneId: \"example_value\",\n});\nexport const ecsDedicatedHostClusterId3 = zoneId.then(zoneId =\u003e zoneId.clusters?.[0]?.id);\nconst clusterName = alicloud.ecs.getEcsDedicatedHostClusters({\n    dedicatedHostClusterName: \"example_value\",\n});\nexport const ecsDedicatedHostClusterId4 = clusterName.then(clusterName =\u003e clusterName.clusters?.[0]?.id);\nconst clusterIds = alicloud.ecs.getEcsDedicatedHostClusters({\n    dedicatedHostClusterIds: [\"example_id\"],\n});\nexport const ecsDedicatedHostClusterId5 = clusterIds.then(clusterIds =\u003e clusterIds.clusters?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ecs.get_ecs_dedicated_host_clusters(ids=[\"example_id\"])\npulumi.export(\"ecsDedicatedHostClusterId1\", ids.clusters[0].id)\nname_regex = alicloud.ecs.get_ecs_dedicated_host_clusters(name_regex=\"^my-DedicatedHostCluster\")\npulumi.export(\"ecsDedicatedHostClusterId2\", name_regex.clusters[0].id)\nzone_id = alicloud.ecs.get_ecs_dedicated_host_clusters(zone_id=\"example_value\")\npulumi.export(\"ecsDedicatedHostClusterId3\", zone_id.clusters[0].id)\ncluster_name = alicloud.ecs.get_ecs_dedicated_host_clusters(dedicated_host_cluster_name=\"example_value\")\npulumi.export(\"ecsDedicatedHostClusterId4\", cluster_name.clusters[0].id)\ncluster_ids = alicloud.ecs.get_ecs_dedicated_host_clusters(dedicated_host_cluster_ids=[\"example_id\"])\npulumi.export(\"ecsDedicatedHostClusterId5\", cluster_ids.clusters[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ecs.GetEcsDedicatedHostClusters.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Ecs.GetEcsDedicatedHostClusters.Invoke(new()\n    {\n        NameRegex = \"^my-DedicatedHostCluster\",\n    });\n\n    var zoneId = AliCloud.Ecs.GetEcsDedicatedHostClusters.Invoke(new()\n    {\n        ZoneId = \"example_value\",\n    });\n\n    var clusterName = AliCloud.Ecs.GetEcsDedicatedHostClusters.Invoke(new()\n    {\n        DedicatedHostClusterName = \"example_value\",\n    });\n\n    var clusterIds = AliCloud.Ecs.GetEcsDedicatedHostClusters.Invoke(new()\n    {\n        DedicatedHostClusterIds = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecsDedicatedHostClusterId1\"] = ids.Apply(getEcsDedicatedHostClustersResult =\u003e getEcsDedicatedHostClustersResult.Clusters[0]?.Id),\n        [\"ecsDedicatedHostClusterId2\"] = nameRegex.Apply(getEcsDedicatedHostClustersResult =\u003e getEcsDedicatedHostClustersResult.Clusters[0]?.Id),\n        [\"ecsDedicatedHostClusterId3\"] = zoneId.Apply(getEcsDedicatedHostClustersResult =\u003e getEcsDedicatedHostClustersResult.Clusters[0]?.Id),\n        [\"ecsDedicatedHostClusterId4\"] = clusterName.Apply(getEcsDedicatedHostClustersResult =\u003e getEcsDedicatedHostClustersResult.Clusters[0]?.Id),\n        [\"ecsDedicatedHostClusterId5\"] = clusterIds.Apply(getEcsDedicatedHostClustersResult =\u003e getEcsDedicatedHostClustersResult.Clusters[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ecs.GetEcsDedicatedHostClusters(ctx, \u0026ecs.GetEcsDedicatedHostClustersArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsDedicatedHostClusterId1\", ids.Clusters[0].Id)\n\t\tnameRegex, err := ecs.GetEcsDedicatedHostClusters(ctx, \u0026ecs.GetEcsDedicatedHostClustersArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-DedicatedHostCluster\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsDedicatedHostClusterId2\", nameRegex.Clusters[0].Id)\n\t\tzoneId, err := ecs.GetEcsDedicatedHostClusters(ctx, \u0026ecs.GetEcsDedicatedHostClustersArgs{\n\t\t\tZoneId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsDedicatedHostClusterId3\", zoneId.Clusters[0].Id)\n\t\tclusterName, err := ecs.GetEcsDedicatedHostClusters(ctx, \u0026ecs.GetEcsDedicatedHostClustersArgs{\n\t\t\tDedicatedHostClusterName: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsDedicatedHostClusterId4\", clusterName.Clusters[0].Id)\n\t\tclusterIds, err := ecs.GetEcsDedicatedHostClusters(ctx, \u0026ecs.GetEcsDedicatedHostClustersArgs{\n\t\t\tDedicatedHostClusterIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsDedicatedHostClusterId5\", clusterIds.Clusters[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetEcsDedicatedHostClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EcsFunctions.getEcsDedicatedHostClusters(GetEcsDedicatedHostClustersArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"ecsDedicatedHostClusterId1\", ids.clusters()[0].id());\n        final var nameRegex = EcsFunctions.getEcsDedicatedHostClusters(GetEcsDedicatedHostClustersArgs.builder()\n            .nameRegex(\"^my-DedicatedHostCluster\")\n            .build());\n\n        ctx.export(\"ecsDedicatedHostClusterId2\", nameRegex.clusters()[0].id());\n        final var zoneId = EcsFunctions.getEcsDedicatedHostClusters(GetEcsDedicatedHostClustersArgs.builder()\n            .zoneId(\"example_value\")\n            .build());\n\n        ctx.export(\"ecsDedicatedHostClusterId3\", zoneId.clusters()[0].id());\n        final var clusterName = EcsFunctions.getEcsDedicatedHostClusters(GetEcsDedicatedHostClustersArgs.builder()\n            .dedicatedHostClusterName(\"example_value\")\n            .build());\n\n        ctx.export(\"ecsDedicatedHostClusterId4\", clusterName.clusters()[0].id());\n        final var clusterIds = EcsFunctions.getEcsDedicatedHostClusters(GetEcsDedicatedHostClustersArgs.builder()\n            .dedicatedHostClusterIds(\"example_id\")\n            .build());\n\n        ctx.export(\"ecsDedicatedHostClusterId5\", clusterIds.clusters()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ecs:getEcsDedicatedHostClusters\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:ecs:getEcsDedicatedHostClusters\n      arguments:\n        nameRegex: ^my-DedicatedHostCluster\n  zoneId:\n    fn::invoke:\n      function: alicloud:ecs:getEcsDedicatedHostClusters\n      arguments:\n        zoneId: example_value\n  clusterName:\n    fn::invoke:\n      function: alicloud:ecs:getEcsDedicatedHostClusters\n      arguments:\n        dedicatedHostClusterName: example_value\n  clusterIds:\n    fn::invoke:\n      function: alicloud:ecs:getEcsDedicatedHostClusters\n      arguments:\n        dedicatedHostClusterIds:\n          - example_id\noutputs:\n  ecsDedicatedHostClusterId1: ${ids.clusters[0].id}\n  ecsDedicatedHostClusterId2: ${nameRegex.clusters[0].id}\n  ecsDedicatedHostClusterId3: ${zoneId.clusters[0].id}\n  ecsDedicatedHostClusterId4: ${clusterName.clusters[0].id}\n  ecsDedicatedHostClusterId5: ${clusterIds.clusters[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEcsDedicatedHostClusters.\n","properties":{"dedicatedHostClusterIds":{"type":"array","items":{"type":"string"},"description":"The IDs of dedicated host clusters.\n"},"dedicatedHostClusterName":{"type":"string","description":"The name of the dedicated host cluster.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Dedicated Host Cluster IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Dedicated Host Cluster name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"zoneId":{"type":"string","description":"The zone ID of the dedicated host cluster.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEcsDedicatedHostClusters.\n","properties":{"clusters":{"items":{"$ref":"#/types/alicloud:ecs/getEcsDedicatedHostClustersCluster:getEcsDedicatedHostClustersCluster"},"type":"array"},"dedicatedHostClusterIds":{"items":{"type":"string"},"type":"array"},"dedicatedHostClusterName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"zoneId":{"type":"string"}},"required":["clusters","ids","names","id"],"type":"object"}},"alicloud:ecs/getEcsDeploymentSets:getEcsDeploymentSets":{"description":"This data source provides the Ecs Deployment Sets of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.140.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ecs.getEcsDeploymentSets({\n    ids: [\"example_id\"],\n});\nexport const ecsDeploymentSetId1 = ids.then(ids =\u003e ids.sets?.[0]?.id);\nconst nameRegex = alicloud.ecs.getEcsDeploymentSets({\n    nameRegex: \"^my-DeploymentSet\",\n});\nexport const ecsDeploymentSetId2 = nameRegex.then(nameRegex =\u003e nameRegex.sets?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ecs.get_ecs_deployment_sets(ids=[\"example_id\"])\npulumi.export(\"ecsDeploymentSetId1\", ids.sets[0].id)\nname_regex = alicloud.ecs.get_ecs_deployment_sets(name_regex=\"^my-DeploymentSet\")\npulumi.export(\"ecsDeploymentSetId2\", name_regex.sets[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ecs.GetEcsDeploymentSets.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Ecs.GetEcsDeploymentSets.Invoke(new()\n    {\n        NameRegex = \"^my-DeploymentSet\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecsDeploymentSetId1\"] = ids.Apply(getEcsDeploymentSetsResult =\u003e getEcsDeploymentSetsResult.Sets[0]?.Id),\n        [\"ecsDeploymentSetId2\"] = nameRegex.Apply(getEcsDeploymentSetsResult =\u003e getEcsDeploymentSetsResult.Sets[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ecs.GetEcsDeploymentSets(ctx, \u0026ecs.GetEcsDeploymentSetsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsDeploymentSetId1\", ids.Sets[0].Id)\n\t\tnameRegex, err := ecs.GetEcsDeploymentSets(ctx, \u0026ecs.GetEcsDeploymentSetsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-DeploymentSet\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsDeploymentSetId2\", nameRegex.Sets[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetEcsDeploymentSetsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EcsFunctions.getEcsDeploymentSets(GetEcsDeploymentSetsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"ecsDeploymentSetId1\", ids.sets()[0].id());\n        final var nameRegex = EcsFunctions.getEcsDeploymentSets(GetEcsDeploymentSetsArgs.builder()\n            .nameRegex(\"^my-DeploymentSet\")\n            .build());\n\n        ctx.export(\"ecsDeploymentSetId2\", nameRegex.sets()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ecs:getEcsDeploymentSets\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:ecs:getEcsDeploymentSets\n      arguments:\n        nameRegex: ^my-DeploymentSet\noutputs:\n  ecsDeploymentSetId1: ${ids.sets[0].id}\n  ecsDeploymentSetId2: ${nameRegex.sets[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEcsDeploymentSets.\n","properties":{"deploymentSetName":{"type":"string","description":"The name of the deployment set.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Deployment Set IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Deployment Set name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"strategy":{"type":"string","description":"The deployment strategy. Valid values: `Availability`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEcsDeploymentSets.\n","properties":{"deploymentSetName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"sets":{"items":{"$ref":"#/types/alicloud:ecs/getEcsDeploymentSetsSet:getEcsDeploymentSetsSet"},"type":"array"},"strategy":{"type":"string"}},"required":["ids","names","sets","id"],"type":"object"}},"alicloud:ecs/getEcsDisks:getEcsDisks":{"description":"This data source provides the Ecs Disks of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.122.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultEcsDisk = new alicloud.ecs.EcsDisk(\"default\", {\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    diskName: \"terraform-example\",\n    description: \"terraform-example\",\n    category: \"cloud_efficiency\",\n    size: 30,\n    tags: {\n        Name: \"terraform-example\",\n    },\n});\nconst ids = alicloud.ecs.getEcsDisksOutput({\n    ids: [defaultEcsDisk.id],\n});\nexport const ecsDiskId0 = ids.apply(ids =\u003e ids.disks?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_ecs_disk = alicloud.ecs.EcsDisk(\"default\",\n    zone_id=default.zones[0].id,\n    disk_name=\"terraform-example\",\n    description=\"terraform-example\",\n    category=\"cloud_efficiency\",\n    size=30,\n    tags={\n        \"Name\": \"terraform-example\",\n    })\nids = alicloud.ecs.get_ecs_disks_output(ids=[default_ecs_disk.id])\npulumi.export(\"ecsDiskId0\", ids.disks[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultEcsDisk = new AliCloud.Ecs.EcsDisk(\"default\", new()\n    {\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        DiskName = \"terraform-example\",\n        Description = \"terraform-example\",\n        Category = \"cloud_efficiency\",\n        Size = 30,\n        Tags = \n        {\n            { \"Name\", \"terraform-example\" },\n        },\n    });\n\n    var ids = AliCloud.Ecs.GetEcsDisks.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultEcsDisk.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecsDiskId0\"] = ids.Apply(getEcsDisksResult =\u003e getEcsDisksResult.Disks[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcsDisk, err := ecs.NewEcsDisk(ctx, \"default\", \u0026ecs.EcsDiskArgs{\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tDiskName:    pulumi.String(\"terraform-example\"),\n\t\t\tDescription: pulumi.String(\"terraform-example\"),\n\t\t\tCategory:    pulumi.String(\"cloud_efficiency\"),\n\t\t\tSize:        pulumi.Int(30),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"terraform-example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := ecs.GetEcsDisksOutput(ctx, ecs.GetEcsDisksOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultEcsDisk.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"ecsDiskId0\", ids.ApplyT(func(ids ecs.GetEcsDisksResult) (*string, error) {\n\t\t\treturn \u0026ids.Disks[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsDisk;\nimport com.pulumi.alicloud.ecs.EcsDiskArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetEcsDisksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultEcsDisk = new EcsDisk(\"defaultEcsDisk\", EcsDiskArgs.builder()\n            .zoneId(default_.zones()[0].id())\n            .diskName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .category(\"cloud_efficiency\")\n            .size(30)\n            .tags(Map.of(\"Name\", \"terraform-example\"))\n            .build());\n\n        final var ids = EcsFunctions.getEcsDisks(GetEcsDisksArgs.builder()\n            .ids(defaultEcsDisk.id())\n            .build());\n\n        ctx.export(\"ecsDiskId0\", ids.applyValue(_ids -\u003e _ids.disks()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  defaultEcsDisk:\n    type: alicloud:ecs:EcsDisk\n    name: default\n    properties:\n      zoneId: ${default.zones[0].id}\n      diskName: terraform-example\n      description: terraform-example\n      category: cloud_efficiency\n      size: '30'\n      tags:\n        Name: terraform-example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  ids:\n    fn::invoke:\n      function: alicloud:ecs:getEcsDisks\n      arguments:\n        ids:\n          - ${defaultEcsDisk.id}\noutputs:\n  ecsDiskId0: ${ids.disks[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEcsDisks.\n","properties":{"additionalAttributes":{"type":"array","items":{"type":"string"},"description":"Other attribute values. Currently, only the incoming value of IOPS is supported, which means to query the IOPS upper limit of the current disk.\n"},"autoSnapshotPolicyId":{"type":"string","description":"Query cloud disks based on the automatic snapshot policy ID.\n"},"availabilityZone":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`availabilityZone`\" pulumi-lang-dotnet=\"`AvailabilityZone`\" pulumi-lang-go=\"`availabilityZone`\" pulumi-lang-python=\"`availability_zone`\" pulumi-lang-yaml=\"`availabilityZone`\" pulumi-lang-java=\"`availabilityZone`\"\u003e`availability_zone`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'availability_zone' has been deprecated from provider version 1.122.0. New field 'zone_id' instead"},"category":{"type":"string","description":"Disk category. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ephemeralSsd`\" pulumi-lang-dotnet=\"`EphemeralSsd`\" pulumi-lang-go=\"`ephemeralSsd`\" pulumi-lang-python=\"`ephemeral_ssd`\" pulumi-lang-yaml=\"`ephemeralSsd`\" pulumi-lang-java=\"`ephemeralSsd`\"\u003e`ephemeral_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e.\n"},"deleteAutoSnapshot":{"type":"boolean","description":"Indicates whether the automatic snapshot is deleted when the disk is released.\n"},"deleteWithInstance":{"type":"boolean","description":"Indicates whether the disk is released together with the instance.\n"},"diskName":{"type":"string","description":"The disk name.\n"},"diskType":{"type":"string","description":"The disk type. Valid values: \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`data`\" pulumi-lang-dotnet=\"`Data`\" pulumi-lang-go=\"`data`\" pulumi-lang-python=\"`data`\" pulumi-lang-yaml=\"`data`\" pulumi-lang-java=\"`data`\"\u003e`data`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to check the validity of the request without actually making the request.request Default value: false. Valid values:\n"},"enableAutoSnapshot":{"type":"boolean","description":"Indicates whether the automatic snapshot is deleted when the disk is released.\n"},"enableAutomatedSnapshotPolicy":{"type":"boolean","description":"Whether the cloud disk has an automatic snapshot policy\n"},"enableShared":{"type":"boolean","description":"Whether it is shared block storage.\n"},"encrypted":{"type":"string","description":"Indicate whether the disk is encrypted or not. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Disk IDs.\n"},"instanceId":{"type":"string","description":"Filter the results by the specified ECS instance ID.\n"},"kmsKeyId":{"type":"string","description":"The kms key id.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Disk name.\n"},"operationLocks":{"type":"array","items":{"$ref":"#/types/alicloud:ecs/getEcsDisksOperationLock:getEcsDisksOperationLock"},"description":"The reasons why the disk was locked. See \u003cspan pulumi-lang-nodejs=\"`operationLocks`\" pulumi-lang-dotnet=\"`OperationLocks`\" pulumi-lang-go=\"`operationLocks`\" pulumi-lang-python=\"`operation_locks`\" pulumi-lang-yaml=\"`operationLocks`\" pulumi-lang-java=\"`operationLocks`\"\u003e`operation_locks`\u003c/span\u003e below for details.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"paymentType":{"type":"string","description":"Payment method for disk. Valid Values: `PayAsYouGo`, `Subscription`.\n"},"portable":{"type":"boolean","description":"Whether the cloud disk or local disk supports uninstallation.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the disk belongs.\n"},"snapshotId":{"type":"string","description":"The source snapshot id.\n"},"status":{"type":"string","description":"The status of disk. Valid Values: `Attaching`, `Available`, `Creating`, `Detaching`, `In_use`, `Migrating`, `ReIniting`, `Transferring`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the disks.\n"},"type":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e has been deprecated from provider version 1.122.0. New field \u003cspan pulumi-lang-nodejs=\"`diskType`\" pulumi-lang-dotnet=\"`DiskType`\" pulumi-lang-go=\"`diskType`\" pulumi-lang-python=\"`disk_type`\" pulumi-lang-yaml=\"`diskType`\" pulumi-lang-java=\"`diskType`\"\u003e`disk_type`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'type' has been deprecated from provider version 1.122.0. New field 'disk_type' instead."},"zoneId":{"type":"string","description":"ID of the free zone to which the disk belongs.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEcsDisks.\n","properties":{"additionalAttributes":{"items":{"type":"string"},"type":"array"},"autoSnapshotPolicyId":{"description":"Query cloud disks based on the automatic snapshot policy ID.\n","type":"string"},"availabilityZone":{"deprecationMessage":"Field 'availability_zone' has been deprecated from provider version 1.122.0. New field 'zone_id' instead","description":"Availability zone of the disk.\n","type":"string"},"category":{"description":"Disk category.\n","type":"string"},"deleteAutoSnapshot":{"description":"Indicates whether the automatic snapshot is deleted when the disk is released.\n","type":"boolean"},"deleteWithInstance":{"description":"Indicates whether the disk is released together with the instance.\n","type":"boolean"},"diskName":{"description":"The disk name.\n","type":"string"},"diskType":{"description":"The type of the disk.\n","type":"string"},"disks":{"description":"A list of Ecs Disks. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getEcsDisksDisk:getEcsDisksDisk"},"type":"array"},"dryRun":{"type":"boolean"},"enableAutoSnapshot":{"description":"Whether the disk implements an automatic snapshot policy.\n","type":"boolean"},"enableAutomatedSnapshotPolicy":{"description":"Whether the disk implements an automatic snapshot policy.\n","type":"boolean"},"enableShared":{"type":"boolean"},"encrypted":{"description":"Indicate whether the disk is encrypted or not.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"description":"The instance ID of the disk mount.\n","type":"string"},"kmsKeyId":{"description":"The ID of the KMS key that is used for the cloud disk.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Disk names.\n","items":{"type":"string"},"type":"array"},"operationLocks":{"description":"The reasons why the disk was locked.\n","items":{"$ref":"#/types/alicloud:ecs/getEcsDisksOperationLock:getEcsDisksOperationLock"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"paymentType":{"description":"Payment method for disk.\n","type":"string"},"portable":{"description":"Whether the disk is unmountable.\n","type":"boolean"},"resourceGroupId":{"description":"The Id of resource group.\n","type":"string"},"snapshotId":{"description":"Snapshot used to create the disk. It is null if no snapshot is used to create the disk.\n","type":"string"},"status":{"description":"Current status.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A map of tags assigned to the disk.\n","type":"object"},"totalCount":{"type":"integer"},"type":{"deprecationMessage":"Field 'type' has been deprecated from provider version 1.122.0. New field 'disk_type' instead.","description":"The type of the disk.\n","type":"string"},"zoneId":{"description":"The zone id.\n","type":"string"}},"required":["disks","ids","names","totalCount","id"],"type":"object"}},"alicloud:ecs/getEcsImageComponents:getEcsImageComponents":{"description":"This data source provides the Ecs Image Components of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.159.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ecs.getEcsImageComponents({\n    ids: [\"example_id\"],\n});\nexport const ecsImageComponentId1 = ids.then(ids =\u003e ids.components?.[0]?.id);\nconst nameRegex = alicloud.ecs.getEcsImageComponents({\n    nameRegex: \"^my-ImageComponent\",\n});\nexport const ecsImageComponentId2 = nameRegex.then(nameRegex =\u003e nameRegex.components?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ecs.get_ecs_image_components(ids=[\"example_id\"])\npulumi.export(\"ecsImageComponentId1\", ids.components[0].id)\nname_regex = alicloud.ecs.get_ecs_image_components(name_regex=\"^my-ImageComponent\")\npulumi.export(\"ecsImageComponentId2\", name_regex.components[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ecs.GetEcsImageComponents.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Ecs.GetEcsImageComponents.Invoke(new()\n    {\n        NameRegex = \"^my-ImageComponent\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecsImageComponentId1\"] = ids.Apply(getEcsImageComponentsResult =\u003e getEcsImageComponentsResult.Components[0]?.Id),\n        [\"ecsImageComponentId2\"] = nameRegex.Apply(getEcsImageComponentsResult =\u003e getEcsImageComponentsResult.Components[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ecs.GetEcsImageComponents(ctx, \u0026ecs.GetEcsImageComponentsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsImageComponentId1\", ids.Components[0].Id)\n\t\tnameRegex, err := ecs.GetEcsImageComponents(ctx, \u0026ecs.GetEcsImageComponentsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-ImageComponent\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsImageComponentId2\", nameRegex.Components[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetEcsImageComponentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EcsFunctions.getEcsImageComponents(GetEcsImageComponentsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"ecsImageComponentId1\", ids.components()[0].id());\n        final var nameRegex = EcsFunctions.getEcsImageComponents(GetEcsImageComponentsArgs.builder()\n            .nameRegex(\"^my-ImageComponent\")\n            .build());\n\n        ctx.export(\"ecsImageComponentId2\", nameRegex.components()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ecs:getEcsImageComponents\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:ecs:getEcsImageComponents\n      arguments:\n        nameRegex: ^my-ImageComponent\noutputs:\n  ecsImageComponentId1: ${ids.components[0].id}\n  ecsImageComponentId2: ${nameRegex.components[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEcsImageComponents.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Image Component IDs.\n"},"imageComponentName":{"type":"string","description":"The name of the component.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Image Component name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"owner":{"type":"string","description":"Mirror component type. Valid values: `SELF` or `ALIYUN`. Possible values:\n- SELF: The custom image component you created.\n- ALIYUN: System components provided by Alibaba Cloud.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEcsImageComponents.\n","properties":{"components":{"items":{"$ref":"#/types/alicloud:ecs/getEcsImageComponentsComponent:getEcsImageComponentsComponent"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"imageComponentName":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"owner":{"type":"string"},"resourceGroupId":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["components","ids","names","id"],"type":"object"}},"alicloud:ecs/getEcsImagePipeline:getEcsImagePipeline":{"description":"This data source provides the Ecs Image Pipelines of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.163.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ecs.getEcsImagePipeline({\n    ids: [\"example_value\"],\n});\nexport const ecsImagePipelineId1 = ids.then(ids =\u003e ids.pipelines?.[0]?.id);\nconst nameRegex = alicloud.ecs.getEcsImagePipeline({\n    nameRegex: \"^my-ImagePipeline\",\n});\nexport const ecsImagePipelineId2 = nameRegex.then(nameRegex =\u003e nameRegex.pipelines?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ecs.get_ecs_image_pipeline(ids=[\"example_value\"])\npulumi.export(\"ecsImagePipelineId1\", ids.pipelines[0].id)\nname_regex = alicloud.ecs.get_ecs_image_pipeline(name_regex=\"^my-ImagePipeline\")\npulumi.export(\"ecsImagePipelineId2\", name_regex.pipelines[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ecs.GetEcsImagePipeline.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    var nameRegex = AliCloud.Ecs.GetEcsImagePipeline.Invoke(new()\n    {\n        NameRegex = \"^my-ImagePipeline\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecsImagePipelineId1\"] = ids.Apply(getEcsImagePipelineResult =\u003e getEcsImagePipelineResult.Pipelines[0]?.Id),\n        [\"ecsImagePipelineId2\"] = nameRegex.Apply(getEcsImagePipelineResult =\u003e getEcsImagePipelineResult.Pipelines[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ecs.LookupEcsImagePipeline(ctx, \u0026ecs.LookupEcsImagePipelineArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsImagePipelineId1\", ids.Pipelines[0].Id)\n\t\tnameRegex, err := ecs.LookupEcsImagePipeline(ctx, \u0026ecs.LookupEcsImagePipelineArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-ImagePipeline\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsImagePipelineId2\", nameRegex.Pipelines[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetEcsImagePipelineArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EcsFunctions.getEcsImagePipeline(GetEcsImagePipelineArgs.builder()\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"ecsImagePipelineId1\", ids.pipelines()[0].id());\n        final var nameRegex = EcsFunctions.getEcsImagePipeline(GetEcsImagePipelineArgs.builder()\n            .nameRegex(\"^my-ImagePipeline\")\n            .build());\n\n        ctx.export(\"ecsImagePipelineId2\", nameRegex.pipelines()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ecs:getEcsImagePipeline\n      arguments:\n        ids:\n          - example_value\n  nameRegex:\n    fn::invoke:\n      function: alicloud:ecs:getEcsImagePipeline\n      arguments:\n        nameRegex: ^my-ImagePipeline\noutputs:\n  ecsImagePipelineId1: ${ids.pipelines[0].id}\n  ecsImagePipelineId2: ${nameRegex.pipelines[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEcsImagePipeline.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Image Pipeline ids.\n"},"name":{"type":"string","description":"The name of the image template.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Image Pipeline name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the image template belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEcsImagePipeline.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pipelines":{"items":{"$ref":"#/types/alicloud:ecs/getEcsImagePipelinePipeline:getEcsImagePipelinePipeline"},"type":"array"},"resourceGroupId":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["ids","names","pipelines","id"],"type":"object"}},"alicloud:ecs/getEcsInvocations:getEcsInvocations":{"description":"This data source provides the Ecs Invocations of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.168.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ecs.getEcsInvocations({\n    ids: [\"example-id\"],\n});\nexport const ecsInvocationId1 = ids.then(ids =\u003e ids.invocations?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ecs.get_ecs_invocations(ids=[\"example-id\"])\npulumi.export(\"ecsInvocationId1\", ids.invocations[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ecs.GetEcsInvocations.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example-id\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecsInvocationId1\"] = ids.Apply(getEcsInvocationsResult =\u003e getEcsInvocationsResult.Invocations[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ecs.GetEcsInvocations(ctx, \u0026ecs.GetEcsInvocationsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example-id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsInvocationId1\", ids.Invocations[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetEcsInvocationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EcsFunctions.getEcsInvocations(GetEcsInvocationsArgs.builder()\n            .ids(\"example-id\")\n            .build());\n\n        ctx.export(\"ecsInvocationId1\", ids.invocations()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ecs:getEcsInvocations\n      arguments:\n        ids:\n          - example-id\noutputs:\n  ecsInvocationId1: ${ids.invocations[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEcsInvocations.\n","properties":{"commandId":{"type":"string","description":"The execution ID of the command.\n"},"contentEncoding":{"type":"string","description":"The encoding mode of the CommandContent and Output response parameters. Valid values: `PlainText`, `Base64`.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Invocation IDs.\n"},"invokeStatus":{"type":"string","description":"The overall execution state of the command. The value of this parameter depends on the execution states on all the involved instances. Valid values: `Running`, `Finished`, `Failed`, `PartialFailed`, `Stopped`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEcsInvocations.\n","properties":{"commandId":{"type":"string"},"contentEncoding":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"invocations":{"items":{"$ref":"#/types/alicloud:ecs/getEcsInvocationsInvocation:getEcsInvocationsInvocation"},"type":"array"},"invokeStatus":{"type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["ids","invocations","id"],"type":"object"}},"alicloud:ecs/getEcsKeyPairs:getEcsKeyPairs":{"description":"This data source provides the Ecs Key Pairs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.121.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultEcsKeyPair = new alicloud.ecs.EcsKeyPair(\"default\", {\n    keyPairName: name,\n    publicKey: \"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\",\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[1]),\n    tags: {\n        Created: \"TF\",\n        For: \"KeyPair\",\n    },\n});\nconst ids = alicloud.ecs.getEcsKeyPairsOutput({\n    ids: [defaultEcsKeyPair.id],\n});\nexport const ecsKeyPairId0 = ids.apply(ids =\u003e ids.pairs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_ecs_key_pair = alicloud.ecs.EcsKeyPair(\"default\",\n    key_pair_name=name,\n    public_key=\"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\",\n    resource_group_id=default.ids[1],\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"KeyPair\",\n    })\nids = alicloud.ecs.get_ecs_key_pairs_output(ids=[default_ecs_key_pair.id])\npulumi.export(\"ecsKeyPairId0\", ids.pairs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultEcsKeyPair = new AliCloud.Ecs.EcsKeyPair(\"default\", new()\n    {\n        KeyPairName = name,\n        PublicKey = \"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\",\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[1])),\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"KeyPair\" },\n        },\n    });\n\n    var ids = AliCloud.Ecs.GetEcsKeyPairs.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultEcsKeyPair.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecsKeyPairId0\"] = ids.Apply(getEcsKeyPairsResult =\u003e getEcsKeyPairsResult.Pairs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcsKeyPair, err := ecs.NewEcsKeyPair(ctx, \"default\", \u0026ecs.EcsKeyPairArgs{\n\t\t\tKeyPairName:     pulumi.String(name),\n\t\t\tPublicKey:       pulumi.String(\"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\"),\n\t\t\tResourceGroupId: pulumi.String(_default.Ids[1]),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"KeyPair\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := ecs.GetEcsKeyPairsOutput(ctx, ecs.GetEcsKeyPairsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultEcsKeyPair.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"ecsKeyPairId0\", ids.ApplyT(func(ids ecs.GetEcsKeyPairsResult) (*string, error) {\n\t\t\treturn \u0026ids.Pairs[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.ecs.EcsKeyPair;\nimport com.pulumi.alicloud.ecs.EcsKeyPairArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetEcsKeyPairsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultEcsKeyPair = new EcsKeyPair(\"defaultEcsKeyPair\", EcsKeyPairArgs.builder()\n            .keyPairName(name)\n            .publicKey(\"ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\")\n            .resourceGroupId(default_.ids()[1])\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"KeyPair\")\n            ))\n            .build());\n\n        final var ids = EcsFunctions.getEcsKeyPairs(GetEcsKeyPairsArgs.builder()\n            .ids(defaultEcsKeyPair.id())\n            .build());\n\n        ctx.export(\"ecsKeyPairId0\", ids.applyValue(_ids -\u003e _ids.pairs()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultEcsKeyPair:\n    type: alicloud:ecs:EcsKeyPair\n    name: default\n    properties:\n      keyPairName: ${name}\n      publicKey: ssh-rsa AAAAB3Nza12345678qwertyuudsfsg\n      resourceGroupId: ${default.ids[1]}\n      tags:\n        Created: TF\n        For: KeyPair\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  ids:\n    fn::invoke:\n      function: alicloud:ecs:getEcsKeyPairs\n      arguments:\n        ids:\n          - ${defaultEcsKeyPair.id}\noutputs:\n  ecsKeyPairId0: ${ids.pairs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEcsKeyPairs.\n","properties":{"fingerPrint":{"type":"string","description":"The fingerprint of the key pair.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Key Pair IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Key Pair name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getEcsKeyPairs.\n","properties":{"fingerPrint":{"description":"The fingerprint of the Key Pair.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyPairs":{"deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`keyPairs`\" pulumi-lang-dotnet=\"`KeyPairs`\" pulumi-lang-go=\"`keyPairs`\" pulumi-lang-python=\"`key_pairs`\" pulumi-lang-yaml=\"`keyPairs`\" pulumi-lang-java=\"`keyPairs`\"\u003e`key_pairs`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`pairs`\" pulumi-lang-dotnet=\"`Pairs`\" pulumi-lang-go=\"`pairs`\" pulumi-lang-python=\"`pairs`\" pulumi-lang-yaml=\"`pairs`\" pulumi-lang-java=\"`pairs`\"\u003e`pairs`\u003c/span\u003e instead.","description":"(Deprecated since v1.121.0) A list of Ecs Key Pairs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getEcsKeyPairsKeyPair:getEcsKeyPairsKeyPair"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Key Pair names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pairs":{"description":"A list of Ecs Key Pairs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getEcsKeyPairsPair:getEcsKeyPairsPair"},"type":"array"},"resourceGroupId":{"description":"The ID of the resource group.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of the Key Pair.\n","type":"object"}},"required":["ids","keyPairs","names","pairs","id"],"type":"object"}},"alicloud:ecs/getEcsLaunchTemplates:getEcsLaunchTemplates":{"description":"This data source provides the Ecs Launch Templates of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.120.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: \"terraform-example\",\n    vpcId: defaultNetwork.id,\n});\nconst defaultEcsLaunchTemplate = new alicloud.ecs.EcsLaunchTemplate(\"default\", {\n    launchTemplateName: \"terraform-example\",\n    description: \"terraform-example\",\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    hostName: \"terraform-example\",\n    instanceChargeType: \"PrePaid\",\n    instanceName: \"terraform-example\",\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    internetChargeType: \"PayByBandwidth\",\n    internetMaxBandwidthIn: 5,\n    internetMaxBandwidthOut: 5,\n    ioOptimized: \"optimized\",\n    keyPairName: \"key_pair_name\",\n    ramRoleName: \"ram_role_name\",\n    networkType: \"vpc\",\n    securityEnhancementStrategy: \"Active\",\n    spotPriceLimit: 5,\n    spotStrategy: \"SpotWithPriceLimit\",\n    securityGroupIds: [defaultSecurityGroup.id],\n    systemDisk: {\n        category: \"cloud_ssd\",\n        description: \"Test For Terraform\",\n        name: \"terraform-example\",\n        size: 40,\n        deleteWithInstance: false,\n    },\n    userData: \"xxxxxxx\",\n    vswitchId: defaultSwitch.id,\n    vpcId: defaultNetwork.id,\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    templateTags: {\n        Create: \"Terraform\",\n        For: \"example\",\n    },\n    networkInterfaces: {\n        name: \"eth0\",\n        description: \"hello1\",\n        primaryIp: \"10.0.0.2\",\n        securityGroupId: defaultSecurityGroup.id,\n        vswitchId: defaultSwitch.id,\n    },\n    dataDisks: [\n        {\n            name: \"disk1\",\n            description: \"description\",\n            deleteWithInstance: true,\n            category: \"cloud\",\n            encrypted: false,\n            performanceLevel: \"PL0\",\n            size: 20,\n        },\n        {\n            name: \"disk2\",\n            description: \"description2\",\n            deleteWithInstance: true,\n            category: \"cloud\",\n            encrypted: false,\n            performanceLevel: \"PL0\",\n            size: 20,\n        },\n    ],\n});\nconst ids = alicloud.ecs.getEcsLaunchTemplatesOutput({\n    ids: [defaultEcsLaunchTemplate.id],\n});\nexport const ecsLaunchTemplateId0 = ids.apply(ids =\u003e ids.templates?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=\"terraform-example\",\n    vpc_id=default_network.id)\ndefault_ecs_launch_template = alicloud.ecs.EcsLaunchTemplate(\"default\",\n    launch_template_name=\"terraform-example\",\n    description=\"terraform-example\",\n    image_id=default_get_images.images[0].id,\n    host_name=\"terraform-example\",\n    instance_charge_type=\"PrePaid\",\n    instance_name=\"terraform-example\",\n    instance_type=default_get_instance_types.instance_types[0].id,\n    internet_charge_type=\"PayByBandwidth\",\n    internet_max_bandwidth_in=5,\n    internet_max_bandwidth_out=5,\n    io_optimized=\"optimized\",\n    key_pair_name=\"key_pair_name\",\n    ram_role_name=\"ram_role_name\",\n    network_type=\"vpc\",\n    security_enhancement_strategy=\"Active\",\n    spot_price_limit=5,\n    spot_strategy=\"SpotWithPriceLimit\",\n    security_group_ids=[default_security_group.id],\n    system_disk={\n        \"category\": \"cloud_ssd\",\n        \"description\": \"Test For Terraform\",\n        \"name\": \"terraform-example\",\n        \"size\": 40,\n        \"delete_with_instance\": False,\n    },\n    user_data=\"xxxxxxx\",\n    vswitch_id=default_switch.id,\n    vpc_id=default_network.id,\n    zone_id=default.zones[0].id,\n    template_tags={\n        \"Create\": \"Terraform\",\n        \"For\": \"example\",\n    },\n    network_interfaces={\n        \"name\": \"eth0\",\n        \"description\": \"hello1\",\n        \"primary_ip\": \"10.0.0.2\",\n        \"security_group_id\": default_security_group.id,\n        \"vswitch_id\": default_switch.id,\n    },\n    data_disks=[\n        {\n            \"name\": \"disk1\",\n            \"description\": \"description\",\n            \"delete_with_instance\": True,\n            \"category\": \"cloud\",\n            \"encrypted\": False,\n            \"performance_level\": \"PL0\",\n            \"size\": 20,\n        },\n        {\n            \"name\": \"disk2\",\n            \"description\": \"description2\",\n            \"delete_with_instance\": True,\n            \"category\": \"cloud\",\n            \"encrypted\": False,\n            \"performance_level\": \"PL0\",\n            \"size\": 20,\n        },\n    ])\nids = alicloud.ecs.get_ecs_launch_templates_output(ids=[default_ecs_launch_template.id])\npulumi.export(\"ecsLaunchTemplateId0\", ids.templates[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = \"terraform-example\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultEcsLaunchTemplate = new AliCloud.Ecs.EcsLaunchTemplate(\"default\", new()\n    {\n        LaunchTemplateName = \"terraform-example\",\n        Description = \"terraform-example\",\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        HostName = \"terraform-example\",\n        InstanceChargeType = \"PrePaid\",\n        InstanceName = \"terraform-example\",\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        InternetChargeType = \"PayByBandwidth\",\n        InternetMaxBandwidthIn = 5,\n        InternetMaxBandwidthOut = 5,\n        IoOptimized = \"optimized\",\n        KeyPairName = \"key_pair_name\",\n        RamRoleName = \"ram_role_name\",\n        NetworkType = \"vpc\",\n        SecurityEnhancementStrategy = \"Active\",\n        SpotPriceLimit = 5,\n        SpotStrategy = \"SpotWithPriceLimit\",\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n        SystemDisk = new AliCloud.Ecs.Inputs.EcsLaunchTemplateSystemDiskArgs\n        {\n            Category = \"cloud_ssd\",\n            Description = \"Test For Terraform\",\n            Name = \"terraform-example\",\n            Size = 40,\n            DeleteWithInstance = false,\n        },\n        UserData = \"xxxxxxx\",\n        VswitchId = defaultSwitch.Id,\n        VpcId = defaultNetwork.Id,\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        TemplateTags = \n        {\n            { \"Create\", \"Terraform\" },\n            { \"For\", \"example\" },\n        },\n        NetworkInterfaces = new AliCloud.Ecs.Inputs.EcsLaunchTemplateNetworkInterfacesArgs\n        {\n            Name = \"eth0\",\n            Description = \"hello1\",\n            PrimaryIp = \"10.0.0.2\",\n            SecurityGroupId = defaultSecurityGroup.Id,\n            VswitchId = defaultSwitch.Id,\n        },\n        DataDisks = new[]\n        {\n            new AliCloud.Ecs.Inputs.EcsLaunchTemplateDataDiskArgs\n            {\n                Name = \"disk1\",\n                Description = \"description\",\n                DeleteWithInstance = true,\n                Category = \"cloud\",\n                Encrypted = false,\n                PerformanceLevel = \"PL0\",\n                Size = 20,\n            },\n            new AliCloud.Ecs.Inputs.EcsLaunchTemplateDataDiskArgs\n            {\n                Name = \"disk2\",\n                Description = \"description2\",\n                DeleteWithInstance = true,\n                Category = \"cloud\",\n                Encrypted = false,\n                PerformanceLevel = \"PL0\",\n                Size = 20,\n            },\n        },\n    });\n\n    var ids = AliCloud.Ecs.GetEcsLaunchTemplates.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultEcsLaunchTemplate.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecsLaunchTemplateId0\"] = ids.Apply(getEcsLaunchTemplatesResult =\u003e getEcsLaunchTemplatesResult.Templates[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(\"terraform-example\"),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcsLaunchTemplate, err := ecs.NewEcsLaunchTemplate(ctx, \"default\", \u0026ecs.EcsLaunchTemplateArgs{\n\t\t\tLaunchTemplateName:          pulumi.String(\"terraform-example\"),\n\t\t\tDescription:                 pulumi.String(\"terraform-example\"),\n\t\t\tImageId:                     pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tHostName:                    pulumi.String(\"terraform-example\"),\n\t\t\tInstanceChargeType:          pulumi.String(\"PrePaid\"),\n\t\t\tInstanceName:                pulumi.String(\"terraform-example\"),\n\t\t\tInstanceType:                pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tInternetChargeType:          pulumi.String(\"PayByBandwidth\"),\n\t\t\tInternetMaxBandwidthIn:      pulumi.Int(5),\n\t\t\tInternetMaxBandwidthOut:     pulumi.Int(5),\n\t\t\tIoOptimized:                 pulumi.String(\"optimized\"),\n\t\t\tKeyPairName:                 pulumi.String(\"key_pair_name\"),\n\t\t\tRamRoleName:                 pulumi.String(\"ram_role_name\"),\n\t\t\tNetworkType:                 pulumi.String(\"vpc\"),\n\t\t\tSecurityEnhancementStrategy: pulumi.String(\"Active\"),\n\t\t\tSpotPriceLimit:              pulumi.Float64(5),\n\t\t\tSpotStrategy:                pulumi.String(\"SpotWithPriceLimit\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tdefaultSecurityGroup.ID(),\n\t\t\t},\n\t\t\tSystemDisk: \u0026ecs.EcsLaunchTemplateSystemDiskArgs{\n\t\t\t\tCategory:           pulumi.String(\"cloud_ssd\"),\n\t\t\t\tDescription:        pulumi.String(\"Test For Terraform\"),\n\t\t\t\tName:               pulumi.String(\"terraform-example\"),\n\t\t\t\tSize:               pulumi.Int(40),\n\t\t\t\tDeleteWithInstance: pulumi.Bool(false),\n\t\t\t},\n\t\t\tUserData:  pulumi.String(\"xxxxxxx\"),\n\t\t\tVswitchId: defaultSwitch.ID(),\n\t\t\tVpcId:     defaultNetwork.ID(),\n\t\t\tZoneId:    pulumi.String(_default.Zones[0].Id),\n\t\t\tTemplateTags: pulumi.StringMap{\n\t\t\t\t\"Create\": pulumi.String(\"Terraform\"),\n\t\t\t\t\"For\":    pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tNetworkInterfaces: \u0026ecs.EcsLaunchTemplateNetworkInterfacesArgs{\n\t\t\t\tName:            pulumi.String(\"eth0\"),\n\t\t\t\tDescription:     pulumi.String(\"hello1\"),\n\t\t\t\tPrimaryIp:       pulumi.String(\"10.0.0.2\"),\n\t\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\t\tVswitchId:       defaultSwitch.ID(),\n\t\t\t},\n\t\t\tDataDisks: ecs.EcsLaunchTemplateDataDiskArray{\n\t\t\t\t\u0026ecs.EcsLaunchTemplateDataDiskArgs{\n\t\t\t\t\tName:               pulumi.String(\"disk1\"),\n\t\t\t\t\tDescription:        pulumi.String(\"description\"),\n\t\t\t\t\tDeleteWithInstance: pulumi.Bool(true),\n\t\t\t\t\tCategory:           pulumi.String(\"cloud\"),\n\t\t\t\t\tEncrypted:          pulumi.Bool(false),\n\t\t\t\t\tPerformanceLevel:   pulumi.String(\"PL0\"),\n\t\t\t\t\tSize:               pulumi.Int(20),\n\t\t\t\t},\n\t\t\t\t\u0026ecs.EcsLaunchTemplateDataDiskArgs{\n\t\t\t\t\tName:               pulumi.String(\"disk2\"),\n\t\t\t\t\tDescription:        pulumi.String(\"description2\"),\n\t\t\t\t\tDeleteWithInstance: pulumi.Bool(true),\n\t\t\t\t\tCategory:           pulumi.String(\"cloud\"),\n\t\t\t\t\tEncrypted:          pulumi.Bool(false),\n\t\t\t\t\tPerformanceLevel:   pulumi.String(\"PL0\"),\n\t\t\t\t\tSize:               pulumi.Int(20),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := ecs.GetEcsLaunchTemplatesOutput(ctx, ecs.GetEcsLaunchTemplatesOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultEcsLaunchTemplate.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"ecsLaunchTemplateId0\", ids.ApplyT(func(ids ecs.GetEcsLaunchTemplatesResult) (*string, error) {\n\t\t\treturn \u0026ids.Templates[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.EcsLaunchTemplate;\nimport com.pulumi.alicloud.ecs.EcsLaunchTemplateArgs;\nimport com.pulumi.alicloud.ecs.inputs.EcsLaunchTemplateSystemDiskArgs;\nimport com.pulumi.alicloud.ecs.inputs.EcsLaunchTemplateNetworkInterfacesArgs;\nimport com.pulumi.alicloud.ecs.inputs.EcsLaunchTemplateDataDiskArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetEcsLaunchTemplatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"terraform-example\")\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultEcsLaunchTemplate = new EcsLaunchTemplate(\"defaultEcsLaunchTemplate\", EcsLaunchTemplateArgs.builder()\n            .launchTemplateName(\"terraform-example\")\n            .description(\"terraform-example\")\n            .imageId(defaultGetImages.images()[0].id())\n            .hostName(\"terraform-example\")\n            .instanceChargeType(\"PrePaid\")\n            .instanceName(\"terraform-example\")\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .internetChargeType(\"PayByBandwidth\")\n            .internetMaxBandwidthIn(5)\n            .internetMaxBandwidthOut(5)\n            .ioOptimized(\"optimized\")\n            .keyPairName(\"key_pair_name\")\n            .ramRoleName(\"ram_role_name\")\n            .networkType(\"vpc\")\n            .securityEnhancementStrategy(\"Active\")\n            .spotPriceLimit(5.0)\n            .spotStrategy(\"SpotWithPriceLimit\")\n            .securityGroupIds(defaultSecurityGroup.id())\n            .systemDisk(EcsLaunchTemplateSystemDiskArgs.builder()\n                .category(\"cloud_ssd\")\n                .description(\"Test For Terraform\")\n                .name(\"terraform-example\")\n                .size(40)\n                .deleteWithInstance(false)\n                .build())\n            .userData(\"xxxxxxx\")\n            .vswitchId(defaultSwitch.id())\n            .vpcId(defaultNetwork.id())\n            .zoneId(default_.zones()[0].id())\n            .templateTags(Map.ofEntries(\n                Map.entry(\"Create\", \"Terraform\"),\n                Map.entry(\"For\", \"example\")\n            ))\n            .networkInterfaces(EcsLaunchTemplateNetworkInterfacesArgs.builder()\n                .name(\"eth0\")\n                .description(\"hello1\")\n                .primaryIp(\"10.0.0.2\")\n                .securityGroupId(defaultSecurityGroup.id())\n                .vswitchId(defaultSwitch.id())\n                .build())\n            .dataDisks(            \n                EcsLaunchTemplateDataDiskArgs.builder()\n                    .name(\"disk1\")\n                    .description(\"description\")\n                    .deleteWithInstance(true)\n                    .category(\"cloud\")\n                    .encrypted(false)\n                    .performanceLevel(\"PL0\")\n                    .size(20)\n                    .build(),\n                EcsLaunchTemplateDataDiskArgs.builder()\n                    .name(\"disk2\")\n                    .description(\"description2\")\n                    .deleteWithInstance(true)\n                    .category(\"cloud\")\n                    .encrypted(false)\n                    .performanceLevel(\"PL0\")\n                    .size(20)\n                    .build())\n            .build());\n\n        final var ids = EcsFunctions.getEcsLaunchTemplates(GetEcsLaunchTemplatesArgs.builder()\n            .ids(defaultEcsLaunchTemplate.id())\n            .build());\n\n        ctx.export(\"ecsLaunchTemplateId0\", ids.applyValue(_ids -\u003e _ids.templates()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: terraform-example\n      vpcId: ${defaultNetwork.id}\n  defaultEcsLaunchTemplate:\n    type: alicloud:ecs:EcsLaunchTemplate\n    name: default\n    properties:\n      launchTemplateName: terraform-example\n      description: terraform-example\n      imageId: ${defaultGetImages.images[0].id}\n      hostName: terraform-example\n      instanceChargeType: PrePaid\n      instanceName: terraform-example\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      internetChargeType: PayByBandwidth\n      internetMaxBandwidthIn: '5'\n      internetMaxBandwidthOut: '5'\n      ioOptimized: optimized\n      keyPairName: key_pair_name\n      ramRoleName: ram_role_name\n      networkType: vpc\n      securityEnhancementStrategy: Active\n      spotPriceLimit: '5'\n      spotStrategy: SpotWithPriceLimit\n      securityGroupIds:\n        - ${defaultSecurityGroup.id}\n      systemDisk:\n        category: cloud_ssd\n        description: Test For Terraform\n        name: terraform-example\n        size: '40'\n        deleteWithInstance: 'false'\n      userData: xxxxxxx\n      vswitchId: ${defaultSwitch.id}\n      vpcId: ${defaultNetwork.id}\n      zoneId: ${default.zones[0].id}\n      templateTags:\n        Create: Terraform\n        For: example\n      networkInterfaces:\n        name: eth0\n        description: hello1\n        primaryIp: 10.0.0.2\n        securityGroupId: ${defaultSecurityGroup.id}\n        vswitchId: ${defaultSwitch.id}\n      dataDisks:\n        - name: disk1\n          description: description\n          deleteWithInstance: 'true'\n          category: cloud\n          encrypted: 'false'\n          performanceLevel: PL0\n          size: '20'\n        - name: disk2\n          description: description2\n          deleteWithInstance: 'true'\n          category: cloud\n          encrypted: 'false'\n          performanceLevel: PL0\n          size: '20'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        owners: system\n  ids:\n    fn::invoke:\n      function: alicloud:ecs:getEcsLaunchTemplates\n      arguments:\n        ids:\n          - ${defaultEcsLaunchTemplate.id}\noutputs:\n  ecsLaunchTemplateId0: ${ids.templates[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEcsLaunchTemplates.\n","properties":{"enableDetails":{"type":"boolean","description":"Whether to query the detailed list of resource attributes. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Launch Template IDs.\n"},"launchTemplateName":{"type":"string","description":"The name of the launch template.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Launch Template name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"templateResourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"templateTags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of the launch template.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEcsLaunchTemplates.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"launchTemplateName":{"description":"The name of the Launch Template.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Launch Template names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"templateResourceGroupId":{"type":"string"},"templateTags":{"additionalProperties":{"type":"string"},"description":"The tags of the launch template.\n\u003e **NOTE:** Except for the fields \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`launchTemplateId`\" pulumi-lang-dotnet=\"`LaunchTemplateId`\" pulumi-lang-go=\"`launchTemplateId`\" pulumi-lang-python=\"`launch_template_id`\" pulumi-lang-yaml=\"`launchTemplateId`\" pulumi-lang-java=\"`launchTemplateId`\"\u003e`launch_template_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`launchTemplateName`\" pulumi-lang-dotnet=\"`LaunchTemplateName`\" pulumi-lang-go=\"`launchTemplateName`\" pulumi-lang-python=\"`launch_template_name`\" pulumi-lang-yaml=\"`launchTemplateName`\" pulumi-lang-java=\"`launchTemplateName`\"\u003e`launch_template_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`defaultVersionNumber`\" pulumi-lang-dotnet=\"`DefaultVersionNumber`\" pulumi-lang-go=\"`defaultVersionNumber`\" pulumi-lang-python=\"`default_version_number`\" pulumi-lang-yaml=\"`defaultVersionNumber`\" pulumi-lang-java=\"`defaultVersionNumber`\"\u003e`default_version_number`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`latestVersionNumber`\" pulumi-lang-dotnet=\"`LatestVersionNumber`\" pulumi-lang-go=\"`latestVersionNumber`\" pulumi-lang-python=\"`latest_version_number`\" pulumi-lang-yaml=\"`latestVersionNumber`\" pulumi-lang-java=\"`latestVersionNumber`\"\u003e`latest_version_number`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`createdBy`\" pulumi-lang-dotnet=\"`CreatedBy`\" pulumi-lang-go=\"`createdBy`\" pulumi-lang-python=\"`created_by`\" pulumi-lang-yaml=\"`createdBy`\" pulumi-lang-java=\"`createdBy`\"\u003e`created_by`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`modifiedTime`\" pulumi-lang-dotnet=\"`ModifiedTime`\" pulumi-lang-go=\"`modifiedTime`\" pulumi-lang-python=\"`modified_time`\" pulumi-lang-yaml=\"`modifiedTime`\" pulumi-lang-java=\"`modifiedTime`\"\u003e`modified_time`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`templateTags`\" pulumi-lang-dotnet=\"`TemplateTags`\" pulumi-lang-go=\"`templateTags`\" pulumi-lang-python=\"`template_tags`\" pulumi-lang-yaml=\"`templateTags`\" pulumi-lang-java=\"`templateTags`\"\u003e`template_tags`\u003c/span\u003e, all other fields take effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","type":"object"},"templates":{"description":"A list of Ecs Launch Templates. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getEcsLaunchTemplatesTemplate:getEcsLaunchTemplatesTemplate"},"type":"array"}},"required":["ids","names","templates","id"],"type":"object"}},"alicloud:ecs/getEcsNetworkInterfacePermissions:getEcsNetworkInterfacePermissions":{"description":"This data source provides the Ecs Network Interface Permissions of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.166.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ecs.getEcsNetworkInterfacePermissions({\n    ids: [\"example_value\"],\n    networkInterfaceId: \"example_value\",\n});\nexport const ecsNetworkInterfacePermissionId1 = ids.then(ids =\u003e ids.permissions?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ecs.get_ecs_network_interface_permissions(ids=[\"example_value\"],\n    network_interface_id=\"example_value\")\npulumi.export(\"ecsNetworkInterfacePermissionId1\", ids.permissions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ecs.GetEcsNetworkInterfacePermissions.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NetworkInterfaceId = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecsNetworkInterfacePermissionId1\"] = ids.Apply(getEcsNetworkInterfacePermissionsResult =\u003e getEcsNetworkInterfacePermissionsResult.Permissions[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ecs.GetEcsNetworkInterfacePermissions(ctx, \u0026ecs.GetEcsNetworkInterfacePermissionsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNetworkInterfaceId: \"example_value\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsNetworkInterfacePermissionId1\", ids.Permissions[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetEcsNetworkInterfacePermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EcsFunctions.getEcsNetworkInterfacePermissions(GetEcsNetworkInterfacePermissionsArgs.builder()\n            .ids(\"example_value\")\n            .networkInterfaceId(\"example_value\")\n            .build());\n\n        ctx.export(\"ecsNetworkInterfacePermissionId1\", ids.permissions()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ecs:getEcsNetworkInterfacePermissions\n      arguments:\n        ids:\n          - example_value\n        networkInterfaceId: example_value\noutputs:\n  ecsNetworkInterfacePermissionId1: ${ids.permissions[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEcsNetworkInterfacePermissions.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Network Interface Permission IDs.\n"},"networkInterfaceId":{"type":"string","description":"The ID of the network interface.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string","description":"The Status of the Network Interface Permissions. Valid values: `Granted`, `Pending`, `Revoked`, `Revoking`.\n"}},"type":"object","required":["networkInterfaceId"]},"outputs":{"description":"A collection of values returned by getEcsNetworkInterfacePermissions.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"networkInterfaceId":{"type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"permissions":{"items":{"$ref":"#/types/alicloud:ecs/getEcsNetworkInterfacePermissionsPermission:getEcsNetworkInterfacePermissionsPermission"},"type":"array"},"status":{"type":"string"},"totalCount":{"type":"integer"}},"required":["ids","networkInterfaceId","permissions","totalCount","id"],"type":"object"}},"alicloud:ecs/getEcsNetworkInterfaces:getEcsNetworkInterfaces":{"description":"This data source provides the Ecs Network Interfaces of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.123.1.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ecs.getEcsNetworkInterfaces({\n    nameRegex: \"eni-ipv6\",\n});\nexport const firstEcsNetworkInterfaceId = example.then(example =\u003e example.interfaces?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ecs.get_ecs_network_interfaces(name_regex=\"eni-ipv6\")\npulumi.export(\"firstEcsNetworkInterfaceId\", example.interfaces[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ecs.GetEcsNetworkInterfaces.Invoke(new()\n    {\n        NameRegex = \"eni-ipv6\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstEcsNetworkInterfaceId\"] = example.Apply(getEcsNetworkInterfacesResult =\u003e getEcsNetworkInterfacesResult.Interfaces[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ecs.GetEcsNetworkInterfaces(ctx, \u0026ecs.GetEcsNetworkInterfacesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"eni-ipv6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstEcsNetworkInterfaceId\", example.Interfaces[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetEcsNetworkInterfacesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = EcsFunctions.getEcsNetworkInterfaces(GetEcsNetworkInterfacesArgs.builder()\n            .nameRegex(\"eni-ipv6\")\n            .build());\n\n        ctx.export(\"firstEcsNetworkInterfaceId\", example.interfaces()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ecs:getEcsNetworkInterfaces\n      arguments:\n        nameRegex: eni-ipv6\noutputs:\n  firstEcsNetworkInterfaceId: ${example.interfaces[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEcsNetworkInterfaces.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Network Interface IDs.\n"},"instanceId":{"type":"string","description":"The instance id.\n"},"name":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`networkInterfaceName`\" pulumi-lang-dotnet=\"`NetworkInterfaceName`\" pulumi-lang-go=\"`networkInterfaceName`\" pulumi-lang-python=\"`network_interface_name`\" pulumi-lang-yaml=\"`networkInterfaceName`\" pulumi-lang-java=\"`networkInterfaceName`\"\u003e`network_interface_name`\u003c/span\u003e instead\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'network_interface_name' instead"},"nameRegex":{"type":"string","description":"A regex string to filter results by Network Interface name.\n"},"networkInterfaceName":{"type":"string","description":"The network interface name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"primaryIpAddress":{"type":"string","description":"The primary private IP address of the ENI.\n"},"privateIp":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`privateIp`\" pulumi-lang-dotnet=\"`PrivateIp`\" pulumi-lang-go=\"`privateIp`\" pulumi-lang-python=\"`private_ip`\" pulumi-lang-yaml=\"`privateIp`\" pulumi-lang-java=\"`privateIp`\"\u003e`private_ip`\u003c/span\u003e has been deprecated from provider version 1.123.1. New field \u003cspan pulumi-lang-nodejs=\"`primaryIpAddress`\" pulumi-lang-dotnet=\"`PrimaryIpAddress`\" pulumi-lang-go=\"`primaryIpAddress`\" pulumi-lang-python=\"`primary_ip_address`\" pulumi-lang-yaml=\"`primaryIpAddress`\" pulumi-lang-java=\"`primaryIpAddress`\"\u003e`primary_ip_address`\u003c/span\u003e instead\n","deprecationMessage":"Field 'private_ip' has been deprecated from provider version 1.123.1. New field 'primary_ip_address' instead"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"securityGroupId":{"type":"string","description":"The security group id.\n"},"serviceManaged":{"type":"boolean","description":"Whether the user of the elastic network card is a cloud product or a virtual vendor.\n"},"status":{"type":"string","description":"The status of ENI. Valid Values: `Attaching`, `Available`, `CreateFailed`, `Creating`, `Deleting`, `Detaching`, `InUse`, `Linked`, `Linking`, `Unlinking`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to ENIs.\n"},"type":{"type":"string","description":"The type of ENI. Valid Values: `Primary`, `Secondary`.\n"},"vpcId":{"type":"string","description":"The vpc id.\n"},"vswitchId":{"type":"string","description":"The vswitch id.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEcsNetworkInterfaces.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"description":"The instance id.\n","type":"string"},"interfaces":{"description":"A list of Ecs Network Interfaces. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getEcsNetworkInterfacesInterface:getEcsNetworkInterfacesInterface"},"type":"array"},"name":{"deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'network_interface_name' instead","description":"The network interface name.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Network Interface names.\n","items":{"type":"string"},"type":"array"},"networkInterfaceName":{"description":"The network interface name.\n","type":"string"},"outputFile":{"type":"string"},"primaryIpAddress":{"description":"The primary private IP address of the ENI.\n","type":"string"},"privateIp":{"deprecationMessage":"Field 'private_ip' has been deprecated from provider version 1.123.1. New field 'primary_ip_address' instead","description":"The primary private IP address of the ENI.\n","type":"string"},"resourceGroupId":{"description":"The resource group id.\n","type":"string"},"securityGroupId":{"type":"string"},"serviceManaged":{"description":"Whether the user of the elastic network card is a cloud product or a virtual vendor.\n","type":"boolean"},"status":{"description":"The status of the ENI.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags.\n","type":"object"},"type":{"description":"The type of the ENI.\n","type":"string"},"vpcId":{"description":"The Vpc Id.\n","type":"string"},"vswitchId":{"description":"The vswitch id.\n","type":"string"}},"required":["ids","interfaces","names","id"],"type":"object"}},"alicloud:ecs/getEcsPrefixLists:getEcsPrefixLists":{"description":"This data source provides the Ecs Prefix Lists of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.152.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ecs.getEcsPrefixLists({\n    ids: [\"E2RY53-xxxx\"],\n    nameRegex: \"tf-testAcc\",\n});\nexport const outputId = example.then(example =\u003e example.lists?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ecs.get_ecs_prefix_lists(ids=[\"E2RY53-xxxx\"],\n    name_regex=\"tf-testAcc\")\npulumi.export(\"outputId\", example.lists[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ecs.GetEcsPrefixLists.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"E2RY53-xxxx\",\n        },\n        NameRegex = \"tf-testAcc\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"outputId\"] = example.Apply(getEcsPrefixListsResult =\u003e getEcsPrefixListsResult.Lists[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ecs.GetEcsPrefixLists(ctx, \u0026ecs.GetEcsPrefixListsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"E2RY53-xxxx\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"tf-testAcc\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"outputId\", example.Lists[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetEcsPrefixListsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = EcsFunctions.getEcsPrefixLists(GetEcsPrefixListsArgs.builder()\n            .ids(\"E2RY53-xxxx\")\n            .nameRegex(\"tf-testAcc\")\n            .build());\n\n        ctx.export(\"outputId\", example.lists()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ecs:getEcsPrefixLists\n      arguments:\n        ids:\n          - E2RY53-xxxx\n        nameRegex: tf-testAcc\noutputs:\n  outputId: ${example.lists[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEcsPrefixLists.\n","properties":{"addressFamily":{"type":"string","description":"The address family of the prefix list. Valid values: `IPv4`,`IPv6`. This parameter is empty by default, which indicates that all prefix lists are to be queried.\n"},"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Prefix List IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by \u003cspan pulumi-lang-nodejs=\"`prefixListName`\" pulumi-lang-dotnet=\"`PrefixListName`\" pulumi-lang-go=\"`prefixListName`\" pulumi-lang-python=\"`prefix_list_name`\" pulumi-lang-yaml=\"`prefixListName`\" pulumi-lang-java=\"`prefixListName`\"\u003e`prefix_list_name`\u003c/span\u003e.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEcsPrefixLists.\n","properties":{"addressFamily":{"type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"lists":{"items":{"$ref":"#/types/alicloud:ecs/getEcsPrefixListsList:getEcsPrefixListsList"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","lists","names","id"],"type":"object"}},"alicloud:ecs/getEcsSnapshotGroups:getEcsSnapshotGroups":{"description":"This data source provides the Ecs Snapshot Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.160.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ecs.getEcsSnapshotGroups({\n    ids: [\"example-id\"],\n});\nexport const ecsSnapshotGroupId1 = ids.then(ids =\u003e ids.groups?.[0]?.id);\nconst nameRegex = alicloud.ecs.getEcsSnapshotGroups({\n    nameRegex: \"^my-SnapshotGroup\",\n});\nexport const ecsSnapshotGroupId2 = nameRegex.then(nameRegex =\u003e nameRegex.groups?.[0]?.id);\nconst status = alicloud.ecs.getEcsSnapshotGroups({\n    status: \"accomplished\",\n});\nexport const ecsSnapshotGroupId3 = status.then(status =\u003e status.groups?.[0]?.id);\nconst instanceId = alicloud.ecs.getEcsSnapshotGroups({\n    instanceId: \"example-instance_id\",\n});\nexport const ecsSnapshotGroupId4 = instanceId.then(instanceId =\u003e instanceId.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ecs.get_ecs_snapshot_groups(ids=[\"example-id\"])\npulumi.export(\"ecsSnapshotGroupId1\", ids.groups[0].id)\nname_regex = alicloud.ecs.get_ecs_snapshot_groups(name_regex=\"^my-SnapshotGroup\")\npulumi.export(\"ecsSnapshotGroupId2\", name_regex.groups[0].id)\nstatus = alicloud.ecs.get_ecs_snapshot_groups(status=\"accomplished\")\npulumi.export(\"ecsSnapshotGroupId3\", status.groups[0].id)\ninstance_id = alicloud.ecs.get_ecs_snapshot_groups(instance_id=\"example-instance_id\")\npulumi.export(\"ecsSnapshotGroupId4\", instance_id.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ecs.GetEcsSnapshotGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example-id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Ecs.GetEcsSnapshotGroups.Invoke(new()\n    {\n        NameRegex = \"^my-SnapshotGroup\",\n    });\n\n    var status = AliCloud.Ecs.GetEcsSnapshotGroups.Invoke(new()\n    {\n        Status = \"accomplished\",\n    });\n\n    var instanceId = AliCloud.Ecs.GetEcsSnapshotGroups.Invoke(new()\n    {\n        InstanceId = \"example-instance_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecsSnapshotGroupId1\"] = ids.Apply(getEcsSnapshotGroupsResult =\u003e getEcsSnapshotGroupsResult.Groups[0]?.Id),\n        [\"ecsSnapshotGroupId2\"] = nameRegex.Apply(getEcsSnapshotGroupsResult =\u003e getEcsSnapshotGroupsResult.Groups[0]?.Id),\n        [\"ecsSnapshotGroupId3\"] = status.Apply(getEcsSnapshotGroupsResult =\u003e getEcsSnapshotGroupsResult.Groups[0]?.Id),\n        [\"ecsSnapshotGroupId4\"] = instanceId.Apply(getEcsSnapshotGroupsResult =\u003e getEcsSnapshotGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ecs.GetEcsSnapshotGroups(ctx, \u0026ecs.GetEcsSnapshotGroupsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example-id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsSnapshotGroupId1\", ids.Groups[0].Id)\n\t\tnameRegex, err := ecs.GetEcsSnapshotGroups(ctx, \u0026ecs.GetEcsSnapshotGroupsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-SnapshotGroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsSnapshotGroupId2\", nameRegex.Groups[0].Id)\n\t\tstatus, err := ecs.GetEcsSnapshotGroups(ctx, \u0026ecs.GetEcsSnapshotGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"accomplished\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsSnapshotGroupId3\", status.Groups[0].Id)\n\t\tinstanceId, err := ecs.GetEcsSnapshotGroups(ctx, \u0026ecs.GetEcsSnapshotGroupsArgs{\n\t\t\tInstanceId: pulumi.StringRef(\"example-instance_id\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsSnapshotGroupId4\", instanceId.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetEcsSnapshotGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EcsFunctions.getEcsSnapshotGroups(GetEcsSnapshotGroupsArgs.builder()\n            .ids(\"example-id\")\n            .build());\n\n        ctx.export(\"ecsSnapshotGroupId1\", ids.groups()[0].id());\n        final var nameRegex = EcsFunctions.getEcsSnapshotGroups(GetEcsSnapshotGroupsArgs.builder()\n            .nameRegex(\"^my-SnapshotGroup\")\n            .build());\n\n        ctx.export(\"ecsSnapshotGroupId2\", nameRegex.groups()[0].id());\n        final var status = EcsFunctions.getEcsSnapshotGroups(GetEcsSnapshotGroupsArgs.builder()\n            .status(\"accomplished\")\n            .build());\n\n        ctx.export(\"ecsSnapshotGroupId3\", status.groups()[0].id());\n        final var instanceId = EcsFunctions.getEcsSnapshotGroups(GetEcsSnapshotGroupsArgs.builder()\n            .instanceId(\"example-instance_id\")\n            .build());\n\n        ctx.export(\"ecsSnapshotGroupId4\", instanceId.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ecs:getEcsSnapshotGroups\n      arguments:\n        ids:\n          - example-id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:ecs:getEcsSnapshotGroups\n      arguments:\n        nameRegex: ^my-SnapshotGroup\n  status:\n    fn::invoke:\n      function: alicloud:ecs:getEcsSnapshotGroups\n      arguments:\n        status: accomplished\n  instanceId:\n    fn::invoke:\n      function: alicloud:ecs:getEcsSnapshotGroups\n      arguments:\n        instanceId: example-instance_id\noutputs:\n  ecsSnapshotGroupId1: ${ids.groups[0].id}\n  ecsSnapshotGroupId2: ${nameRegex.groups[0].id}\n  ecsSnapshotGroupId3: ${status.groups[0].id}\n  ecsSnapshotGroupId4: ${instanceId.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEcsSnapshotGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Snapshot Group IDs.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Snapshot Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"snapshotGroupName":{"type":"string","description":"The name of the snapshot-consistent group.\n"},"status":{"type":"string","description":"The state of snapshot-consistent group. Valid Values: \u003cspan pulumi-lang-nodejs=\"`accomplished`\" pulumi-lang-dotnet=\"`Accomplished`\" pulumi-lang-go=\"`accomplished`\" pulumi-lang-python=\"`accomplished`\" pulumi-lang-yaml=\"`accomplished`\" pulumi-lang-java=\"`accomplished`\"\u003e`accomplished`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`failed`\" pulumi-lang-dotnet=\"`Failed`\" pulumi-lang-go=\"`failed`\" pulumi-lang-python=\"`failed`\" pulumi-lang-yaml=\"`failed`\" pulumi-lang-java=\"`failed`\"\u003e`failed`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`progressing`\" pulumi-lang-dotnet=\"`Progressing`\" pulumi-lang-go=\"`progressing`\" pulumi-lang-python=\"`progressing`\" pulumi-lang-yaml=\"`progressing`\" pulumi-lang-java=\"`progressing`\"\u003e`progressing`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the snapshot group.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEcsSnapshotGroups.\n","properties":{"groups":{"items":{"$ref":"#/types/alicloud:ecs/getEcsSnapshotGroupsGroup:getEcsSnapshotGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"snapshotGroupName":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:ecs/getEcsSnapshots:getEcsSnapshots":{"description":"This data source provides the Ecs Snapshots of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.120.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultGetZones = alicloud.getZones({\n    availableDiskCategory: \"cloud_essd\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetImages = alicloud.ecs.getImages({\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultGetInstanceTypes = Promise.all([defaultGetZones, defaultGetImages]).then(([defaultGetZones, defaultGetImages]) =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: defaultGetZones.zones?.[0]?.id,\n    imageId: defaultGetImages.images?.[0]?.id,\n    systemDiskCategory: \"cloud_essd\",\n}));\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"192.168.192.0/24\",\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultInstance = new alicloud.ecs.Instance(\"default\", {\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroups: [defaultSecurityGroup].map(__item =\u003e __item.id),\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 10,\n    availabilityZone: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.availabilityZones?.[0]),\n    instanceChargeType: \"PostPaid\",\n    systemDiskCategory: \"cloud_essd\",\n    vswitchId: defaultSwitch.id,\n    instanceName: name,\n    dataDisks: [{\n        category: \"cloud_essd\",\n        size: 20,\n    }],\n});\nconst defaultEcsDisk = new alicloud.ecs.EcsDisk(\"default\", {\n    diskName: name,\n    zoneId: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.availabilityZones?.[0]),\n    category: \"cloud_essd\",\n    size: 500,\n});\nconst defaultEcsDiskAttachment = new alicloud.ecs.EcsDiskAttachment(\"default\", {\n    diskId: defaultEcsDisk.id,\n    instanceId: defaultInstance.id,\n});\nconst defaultEcsSnapshot = new alicloud.ecs.EcsSnapshot(\"default\", {\n    diskId: defaultEcsDiskAttachment.diskId,\n    category: \"standard\",\n    retentionDays: 20,\n    snapshotName: name,\n    description: name,\n    tags: {\n        Created: \"TF\",\n        For: \"Snapshot\",\n    },\n});\nconst ids = alicloud.ecs.getEcsSnapshotsOutput({\n    ids: [defaultEcsSnapshot.id],\n});\nexport const ecsSnapshotsId0 = ids.apply(ids =\u003e ids.snapshots?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_get_zones = alicloud.get_zones(available_disk_category=\"cloud_essd\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_images = alicloud.ecs.get_images(most_recent=True,\n    owners=\"system\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default_get_zones.zones[0].id,\n    image_id=default_get_images.images[0].id,\n    system_disk_category=\"cloud_essd\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"192.168.192.0/24\",\n    zone_id=default_get_zones.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_instance = alicloud.ecs.Instance(\"default\",\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_groups=[__item.id for __item in [default_security_group]],\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=10,\n    availability_zone=default_get_instance_types.instance_types[0].availability_zones[0],\n    instance_charge_type=\"PostPaid\",\n    system_disk_category=\"cloud_essd\",\n    vswitch_id=default_switch.id,\n    instance_name=name,\n    data_disks=[{\n        \"category\": \"cloud_essd\",\n        \"size\": 20,\n    }])\ndefault_ecs_disk = alicloud.ecs.EcsDisk(\"default\",\n    disk_name=name,\n    zone_id=default_get_instance_types.instance_types[0].availability_zones[0],\n    category=\"cloud_essd\",\n    size=500)\ndefault_ecs_disk_attachment = alicloud.ecs.EcsDiskAttachment(\"default\",\n    disk_id=default_ecs_disk.id,\n    instance_id=default_instance.id)\ndefault_ecs_snapshot = alicloud.ecs.EcsSnapshot(\"default\",\n    disk_id=default_ecs_disk_attachment.disk_id,\n    category=\"standard\",\n    retention_days=20,\n    snapshot_name=name,\n    description=name,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Snapshot\",\n    })\nids = alicloud.ecs.get_ecs_snapshots_output(ids=[default_ecs_snapshot.id])\npulumi.export(\"ecsSnapshotsId0\", ids.snapshots[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_essd\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        SystemDiskCategory = \"cloud_essd\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"192.168.192.0/24\",\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultInstance = new AliCloud.Ecs.Instance(\"default\", new()\n    {\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroups = new[]\n        {\n            defaultSecurityGroup,\n        }.Select(__item =\u003e __item.Id).ToList(),\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 10,\n        AvailabilityZone = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.AvailabilityZones[0]),\n        InstanceChargeType = \"PostPaid\",\n        SystemDiskCategory = \"cloud_essd\",\n        VswitchId = defaultSwitch.Id,\n        InstanceName = name,\n        DataDisks = new[]\n        {\n            new AliCloud.Ecs.Inputs.InstanceDataDiskArgs\n            {\n                Category = \"cloud_essd\",\n                Size = 20,\n            },\n        },\n    });\n\n    var defaultEcsDisk = new AliCloud.Ecs.EcsDisk(\"default\", new()\n    {\n        DiskName = name,\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.AvailabilityZones[0]),\n        Category = \"cloud_essd\",\n        Size = 500,\n    });\n\n    var defaultEcsDiskAttachment = new AliCloud.Ecs.EcsDiskAttachment(\"default\", new()\n    {\n        DiskId = defaultEcsDisk.Id,\n        InstanceId = defaultInstance.Id,\n    });\n\n    var defaultEcsSnapshot = new AliCloud.Ecs.EcsSnapshot(\"default\", new()\n    {\n        DiskId = defaultEcsDiskAttachment.DiskId,\n        Category = \"standard\",\n        RetentionDays = 20,\n        SnapshotName = name,\n        Description = name,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Snapshot\" },\n        },\n    });\n\n    var ids = AliCloud.Ecs.GetEcsSnapshots.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultEcsSnapshot.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecsSnapshotsId0\"] = ids.Apply(getEcsSnapshotsResult =\u003e getEcsSnapshotsResult.Snapshots[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\nStatus: pulumi.StringRef(\"OK\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableDiskCategory: pulumi.StringRef(\"cloud_essd\"),\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nMostRecent: pulumi.BoolRef(true),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(defaultGetZones.Zones[0].Id),\nImageId: pulumi.StringRef(defaultGetImages.Images[0].Id),\nSystemDiskCategory: pulumi.StringRef(\"cloud_essd\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"192.168.192.0/24\"),\nZoneId: pulumi.String(defaultGetZones.Zones[0].Id),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\ndefaultInstance, err := ecs.NewInstance(ctx, \"default\", \u0026ecs.InstanceArgs{\nImageId: pulumi.String(defaultGetImages.Images[0].Id),\nInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\nSecurityGroups: splat0,\nInternetChargeType: pulumi.String(\"PayByTraffic\"),\nInternetMaxBandwidthOut: pulumi.Int(10),\nAvailabilityZone: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].AvailabilityZones[0]),\nInstanceChargeType: pulumi.String(\"PostPaid\"),\nSystemDiskCategory: pulumi.String(\"cloud_essd\"),\nVswitchId: defaultSwitch.ID(),\nInstanceName: pulumi.String(name),\nDataDisks: ecs.InstanceDataDiskArray{\n\u0026ecs.InstanceDataDiskArgs{\nCategory: pulumi.String(\"cloud_essd\"),\nSize: pulumi.Int(20),\n},\n},\n})\nif err != nil {\nreturn err\n}\ndefaultEcsDisk, err := ecs.NewEcsDisk(ctx, \"default\", \u0026ecs.EcsDiskArgs{\nDiskName: pulumi.String(name),\nZoneId: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].AvailabilityZones[0]),\nCategory: pulumi.String(\"cloud_essd\"),\nSize: pulumi.Int(500),\n})\nif err != nil {\nreturn err\n}\ndefaultEcsDiskAttachment, err := ecs.NewEcsDiskAttachment(ctx, \"default\", \u0026ecs.EcsDiskAttachmentArgs{\nDiskId: defaultEcsDisk.ID(),\nInstanceId: defaultInstance.ID(),\n})\nif err != nil {\nreturn err\n}\ndefaultEcsSnapshot, err := ecs.NewEcsSnapshot(ctx, \"default\", \u0026ecs.EcsSnapshotArgs{\nDiskId: defaultEcsDiskAttachment.DiskId,\nCategory: pulumi.String(\"standard\"),\nRetentionDays: pulumi.Int(20),\nSnapshotName: pulumi.String(name),\nDescription: pulumi.String(name),\nTags: pulumi.StringMap{\n\"Created\": pulumi.String(\"TF\"),\n\"For\": pulumi.String(\"Snapshot\"),\n},\n})\nif err != nil {\nreturn err\n}\nids := ecs.GetEcsSnapshotsOutput(ctx, ecs.GetEcsSnapshotsOutputArgs{\nIds: pulumi.StringArray{\ndefaultEcsSnapshot.ID(),\n},\n}, nil);\nctx.Export(\"ecsSnapshotsId0\", ids.ApplyT(func(ids ecs.GetEcsSnapshotsResult) (*string, error) {\nreturn \u0026ids.Snapshots[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.ecs.inputs.InstanceDataDiskArgs;\nimport com.pulumi.alicloud.ecs.EcsDisk;\nimport com.pulumi.alicloud.ecs.EcsDiskArgs;\nimport com.pulumi.alicloud.ecs.EcsDiskAttachment;\nimport com.pulumi.alicloud.ecs.EcsDiskAttachmentArgs;\nimport com.pulumi.alicloud.ecs.EcsSnapshot;\nimport com.pulumi.alicloud.ecs.EcsSnapshotArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetEcsSnapshotsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_essd\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(defaultGetZones.zones()[0].id())\n            .imageId(defaultGetImages.images()[0].id())\n            .systemDiskCategory(\"cloud_essd\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"192.168.192.0/24\")\n            .zoneId(defaultGetZones.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroups(defaultSecurityGroup.stream().map(element -\u003e element.id()).collect(toList()))\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(10)\n            .availabilityZone(defaultGetInstanceTypes.instanceTypes()[0].availabilityZones()[0])\n            .instanceChargeType(\"PostPaid\")\n            .systemDiskCategory(\"cloud_essd\")\n            .vswitchId(defaultSwitch.id())\n            .instanceName(name)\n            .dataDisks(InstanceDataDiskArgs.builder()\n                .category(\"cloud_essd\")\n                .size(20)\n                .build())\n            .build());\n\n        var defaultEcsDisk = new EcsDisk(\"defaultEcsDisk\", EcsDiskArgs.builder()\n            .diskName(name)\n            .zoneId(defaultGetInstanceTypes.instanceTypes()[0].availabilityZones()[0])\n            .category(\"cloud_essd\")\n            .size(500)\n            .build());\n\n        var defaultEcsDiskAttachment = new EcsDiskAttachment(\"defaultEcsDiskAttachment\", EcsDiskAttachmentArgs.builder()\n            .diskId(defaultEcsDisk.id())\n            .instanceId(defaultInstance.id())\n            .build());\n\n        var defaultEcsSnapshot = new EcsSnapshot(\"defaultEcsSnapshot\", EcsSnapshotArgs.builder()\n            .diskId(defaultEcsDiskAttachment.diskId())\n            .category(\"standard\")\n            .retentionDays(20)\n            .snapshotName(name)\n            .description(name)\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Snapshot\")\n            ))\n            .build());\n\n        final var ids = EcsFunctions.getEcsSnapshots(GetEcsSnapshotsArgs.builder()\n            .ids(defaultEcsSnapshot.id())\n            .build());\n\n        ctx.export(\"ecsSnapshotsId0\", ids.applyValue(_ids -\u003e _ids.snapshots()[0].id()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEcsSnapshots.\n","properties":{"category":{"type":"string","description":"The category of the snapshot. Valid Values: \u003cspan pulumi-lang-nodejs=\"`flash`\" pulumi-lang-dotnet=\"`Flash`\" pulumi-lang-go=\"`flash`\" pulumi-lang-python=\"`flash`\" pulumi-lang-yaml=\"`flash`\" pulumi-lang-java=\"`flash`\"\u003e`flash`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to check the validity of the request without actually making the request.\n"},"encrypted":{"type":"boolean","description":"Specifies whether the snapshot is encrypted.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Snapshot IDs.\n"},"kmsKeyId":{"type":"string","description":"The kms key id.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Snapshot name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"},"snapshotLinkId":{"type":"string","description":"The snapshot link id.\n"},"snapshotName":{"type":"string","description":"The name of the snapshot.\n"},"snapshotType":{"type":"string","description":"The type of the snapshot. Valid Values: \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e. Default to: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"sourceDiskType":{"type":"string","description":"The type of the disk for which the snapshot was created. Valid Values: `System`, `Data`.\n"},"status":{"type":"string","description":"The status of the snapshot. Valid Values: \u003cspan pulumi-lang-nodejs=\"`accomplished`\" pulumi-lang-dotnet=\"`Accomplished`\" pulumi-lang-go=\"`accomplished`\" pulumi-lang-python=\"`accomplished`\" pulumi-lang-yaml=\"`accomplished`\" pulumi-lang-java=\"`accomplished`\"\u003e`accomplished`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`failed`\" pulumi-lang-dotnet=\"`Failed`\" pulumi-lang-go=\"`failed`\" pulumi-lang-python=\"`failed`\" pulumi-lang-yaml=\"`failed`\" pulumi-lang-java=\"`failed`\"\u003e`failed`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`progressing`\" pulumi-lang-dotnet=\"`Progressing`\" pulumi-lang-go=\"`progressing`\" pulumi-lang-python=\"`progressing`\" pulumi-lang-yaml=\"`progressing`\" pulumi-lang-java=\"`progressing`\"\u003e`progressing`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the snapshot.\n"},"type":{"type":"string","description":"The type of the snapshot. Valid Values: \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e. Default to: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"usage":{"type":"string","description":"A resource type that has a reference relationship. Valid Values: \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disk`\" pulumi-lang-dotnet=\"`Disk`\" pulumi-lang-go=\"`disk`\" pulumi-lang-python=\"`disk`\" pulumi-lang-yaml=\"`disk`\" pulumi-lang-java=\"`disk`\"\u003e`disk`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`imageDisk`\" pulumi-lang-dotnet=\"`ImageDisk`\" pulumi-lang-go=\"`imageDisk`\" pulumi-lang-python=\"`image_disk`\" pulumi-lang-yaml=\"`imageDisk`\" pulumi-lang-java=\"`imageDisk`\"\u003e`image_disk`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEcsSnapshots.\n","properties":{"category":{"description":"The category of the snapshot.\n","type":"string"},"dryRun":{"type":"boolean"},"encrypted":{"description":"Indicates whether the snapshot was encrypted.\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"kmsKeyId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Snapshot names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"description":"The ID of the resource group to which the snapshot belongs.\n","type":"string"},"snapshotLinkId":{"type":"string"},"snapshotName":{"description":"The name of the snapshot.\n","type":"string"},"snapshotType":{"description":"The type of the snapshot.\n","type":"string"},"snapshots":{"description":"A list of Ecs Snapshots. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getEcsSnapshotsSnapshot:getEcsSnapshotsSnapshot"},"type":"array"},"sourceDiskType":{"description":"The type of the source disk.\n","type":"string"},"status":{"description":"The status of the snapshot.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of the snapshot.\n","type":"object"},"type":{"description":"The type of the snapshot.\n","type":"string"},"usage":{"description":"Indicates whether the snapshot was used to create images or cloud disks.\n","type":"string"}},"required":["ids","names","snapshots","id"],"type":"object"}},"alicloud:ecs/getEcsStorageCapacityUnits:getEcsStorageCapacityUnits":{"description":"This data source provides the Ecs Storage Capacity Units of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.155.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ecs.getEcsStorageCapacityUnits({});\nexport const ecsStorageCapacityUnitId1 = ids.then(ids =\u003e ids.units?.[0]?.id);\nconst nameRegex = alicloud.ecs.getEcsStorageCapacityUnits({\n    nameRegex: \"^my-StorageCapacityUnit\",\n});\nexport const ecsStorageCapacityUnitId2 = nameRegex.then(nameRegex =\u003e nameRegex.units?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ecs.get_ecs_storage_capacity_units()\npulumi.export(\"ecsStorageCapacityUnitId1\", ids.units[0].id)\nname_regex = alicloud.ecs.get_ecs_storage_capacity_units(name_regex=\"^my-StorageCapacityUnit\")\npulumi.export(\"ecsStorageCapacityUnitId2\", name_regex.units[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ecs.GetEcsStorageCapacityUnits.Invoke();\n\n    var nameRegex = AliCloud.Ecs.GetEcsStorageCapacityUnits.Invoke(new()\n    {\n        NameRegex = \"^my-StorageCapacityUnit\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecsStorageCapacityUnitId1\"] = ids.Apply(getEcsStorageCapacityUnitsResult =\u003e getEcsStorageCapacityUnitsResult.Units[0]?.Id),\n        [\"ecsStorageCapacityUnitId2\"] = nameRegex.Apply(getEcsStorageCapacityUnitsResult =\u003e getEcsStorageCapacityUnitsResult.Units[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ecs.GetEcsStorageCapacityUnits(ctx, \u0026ecs.GetEcsStorageCapacityUnitsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsStorageCapacityUnitId1\", ids.Units[0].Id)\n\t\tnameRegex, err := ecs.GetEcsStorageCapacityUnits(ctx, \u0026ecs.GetEcsStorageCapacityUnitsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-StorageCapacityUnit\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecsStorageCapacityUnitId2\", nameRegex.Units[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetEcsStorageCapacityUnitsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EcsFunctions.getEcsStorageCapacityUnits(GetEcsStorageCapacityUnitsArgs.builder()\n            .build());\n\n        ctx.export(\"ecsStorageCapacityUnitId1\", ids.units()[0].id());\n        final var nameRegex = EcsFunctions.getEcsStorageCapacityUnits(GetEcsStorageCapacityUnitsArgs.builder()\n            .nameRegex(\"^my-StorageCapacityUnit\")\n            .build());\n\n        ctx.export(\"ecsStorageCapacityUnitId2\", nameRegex.units()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ecs:getEcsStorageCapacityUnits\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:ecs:getEcsStorageCapacityUnits\n      arguments:\n        nameRegex: ^my-StorageCapacityUnit\noutputs:\n  ecsStorageCapacityUnitId1: ${ids.units[0].id}\n  ecsStorageCapacityUnitId2: ${nameRegex.units[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEcsStorageCapacityUnits.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Storage Capacity Unit IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Storage Capacity Unit name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of Storage Capacity Unit. Valid values: `Active`, `Creating`, `Expired`, `Pending`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEcsStorageCapacityUnits.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"},"units":{"items":{"$ref":"#/types/alicloud:ecs/getEcsStorageCapacityUnitsUnit:getEcsStorageCapacityUnitsUnit"},"type":"array"}},"required":["ids","names","units","id"],"type":"object"}},"alicloud:ecs/getEipAddresses:getEipAddresses":{"description":"This data source provides the Eip Addresses of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.126.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ecs.getEipAddresses({\n    ids: [\"eip-bp1jvx5ki6c********\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstEipAddressId = example.then(example =\u003e example.addresses?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ecs.get_eip_addresses(ids=[\"eip-bp1jvx5ki6c********\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstEipAddressId\", example.addresses[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ecs.GetEipAddresses.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"eip-bp1jvx5ki6c********\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstEipAddressId\"] = example.Apply(getEipAddressesResult =\u003e getEipAddressesResult.Addresses[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ecs.GetEipAddresses(ctx, \u0026ecs.GetEipAddressesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"eip-bp1jvx5ki6c********\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstEipAddressId\", example.Addresses[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetEipAddressesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = EcsFunctions.getEipAddresses(GetEipAddressesArgs.builder()\n            .ids(\"eip-bp1jvx5ki6c********\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstEipAddressId\", example.addresses()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ecs:getEipAddresses\n      arguments:\n        ids:\n          - eip-bp1jvx5ki6c********\n        nameRegex: the_resource_name\noutputs:\n  firstEipAddressId: ${example.addresses[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEipAddresses.\n","properties":{"addressName":{"type":"string","description":"The eip name.\n"},"associatedInstanceId":{"type":"string","description":"The associated instance id.\n"},"associatedInstanceType":{"type":"string","description":"The associated instance type.\n"},"dryRun":{"type":"boolean","description":"The dry run.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e can hide the \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e to output.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Address IDs.\n"},"includeReservationData":{"type":"boolean","description":"The include reservation data. Valid values: `BGP` and `BGP_PRO`.\n"},"ipAddress":{"type":"string","description":"The eip address.\n"},"ipAddresses":{"type":"array","items":{"type":"string"},"deprecationMessage":"Field 'ip_addresses' has been deprecated from provider version 1.126.0 and it will be removed in the future version. Please use the new attribute 'ip_address' instead."},"isp":{"type":"string","description":"The Internet service provider (ISP). Valid values `BGP` and `BGP_PRO`.\n"},"lockReason":{"type":"string","description":"The lock reason.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Address name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"paymentType":{"type":"string","description":"The billing method of the EIP. Valid values: `Subscription` and `PayAsYouGo`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"segmentInstanceId":{"type":"string","description":"The IDs of the contiguous EIPs.  This value is returned only when contiguous EIPs are specified.\n"},"status":{"type":"string","description":"The status of the EIP. Valid values:  `Associating`: The EIP is being associated. `Unassociating`: The EIP is being disassociated. `InUse`: The EIP is allocated. `Available`:The EIP is available.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEipAddresses.\n","properties":{"addressName":{"type":"string"},"addresses":{"items":{"$ref":"#/types/alicloud:ecs/getEipAddressesAddress:getEipAddressesAddress"},"type":"array"},"associatedInstanceId":{"type":"string"},"associatedInstanceType":{"type":"string"},"dryRun":{"type":"boolean"},"eips":{"deprecationMessage":"Field 'eips' has been deprecated from provider version 1.126.0 and it will be removed in the future version. Please use the new attribute 'addresses' instead.","items":{"$ref":"#/types/alicloud:ecs/getEipAddressesEip:getEipAddressesEip"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"includeReservationData":{"type":"boolean"},"ipAddress":{"type":"string"},"ipAddresses":{"deprecationMessage":"Field 'ip_addresses' has been deprecated from provider version 1.126.0 and it will be removed in the future version. Please use the new attribute 'ip_address' instead.","items":{"type":"string"},"type":"array"},"isp":{"type":"string"},"lockReason":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"paymentType":{"type":"string"},"resourceGroupId":{"type":"string"},"segmentInstanceId":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["addresses","eips","ids","names","id"],"type":"object"}},"alicloud:ecs/getEips:getEips":{"deprecationMessage":"This function has been deprecated in favour of the getEipAddresses function","description":"\u003e **DEPRECATED:**  This datasource has been deprecated from version `1.126.0`. Please use new datasource alicloud_eip_addresses.\n\nThis data source provides a list of EIPs (Elastic IP address) owned by an Alibaba Cloud account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst eipsDs = alicloud.ecs.getEips({});\nexport const firstEipId = eipsDs.then(eipsDs =\u003e eipsDs.eips?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\neips_ds = alicloud.ecs.get_eips()\npulumi.export(\"firstEipId\", eips_ds.eips[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var eipsDs = AliCloud.Ecs.GetEips.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstEipId\"] = eipsDs.Apply(getEipsResult =\u003e getEipsResult.Eips[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\teipsDs, err := ecs.GetEips(ctx, \u0026ecs.GetEipsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstEipId\", eipsDs.Eips[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetEipsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var eipsDs = EcsFunctions.getEips(GetEipsArgs.builder()\n            .build());\n\n        ctx.export(\"firstEipId\", eipsDs.eips()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  eipsDs:\n    fn::invoke:\n      function: alicloud:ecs:getEips\n      arguments: {}\noutputs:\n  firstEipId: ${eipsDs.eips[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEips.\n","properties":{"addressName":{"type":"string"},"associatedInstanceId":{"type":"string"},"associatedInstanceType":{"type":"string"},"dryRun":{"type":"boolean"},"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of EIP IDs.\n"},"includeReservationData":{"type":"boolean"},"ipAddress":{"type":"string","description":"Public IP Address of the the EIP.\n"},"ipAddresses":{"type":"array","items":{"type":"string"},"description":"A list of EIP public IP addresses.\n","deprecationMessage":"Field 'ip_addresses' has been deprecated from provider version 1.126.0 and it will be removed in the future version. Please use the new attribute 'ip_address' instead."},"isp":{"type":"string"},"lockReason":{"type":"string"},"nameRegex":{"type":"string"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"paymentType":{"type":"string"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the eips belongs.\n"},"segmentInstanceId":{"type":"string"},"status":{"type":"string","description":"EIP status. Possible values are: `Associating`, `Unassociating`, `InUse` and `Available`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEips.\n","properties":{"addressName":{"type":"string"},"addresses":{"items":{"$ref":"#/types/alicloud:ecs/getEipsAddress:getEipsAddress"},"type":"array"},"associatedInstanceId":{"type":"string"},"associatedInstanceType":{"type":"string"},"dryRun":{"type":"boolean"},"eips":{"deprecationMessage":"Field 'eips' has been deprecated from provider version 1.126.0 and it will be removed in the future version. Please use the new attribute 'addresses' instead.","description":"A list of EIPs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getEipsEip:getEipsEip"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"(Optional) A list of EIP IDs.\n","items":{"type":"string"},"type":"array"},"includeReservationData":{"type":"boolean"},"ipAddress":{"description":"Public IP Address of the the EIP.\n","type":"string"},"ipAddresses":{"deprecationMessage":"Field 'ip_addresses' has been deprecated from provider version 1.126.0 and it will be removed in the future version. Please use the new attribute 'ip_address' instead.","items":{"type":"string"},"type":"array"},"isp":{"type":"string"},"lockReason":{"type":"string"},"nameRegex":{"type":"string"},"names":{"description":"(Optional) A list of EIP names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"paymentType":{"type":"string"},"resourceGroupId":{"description":"The Id of resource group which the eips belongs.\n","type":"string"},"segmentInstanceId":{"type":"string"},"status":{"description":"EIP status. Possible values are: `Associating`, `Unassociating`, `InUse` and `Available`.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["addresses","eips","ids","names","id"],"type":"object"}},"alicloud:ecs/getElasticityAssurances:getElasticityAssurances":{"description":"This data source provides Ecs Elasticity Assurance available to the user.\n\n\u003e **NOTE:** Available in 1.196.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ecs.getElasticityAssurances({\n    ids: [defaultAlicloudEcsElasticityAssurance.id],\n});\nexport const alicloudEcsElasticityAssuranceExampleId = _default.then(_default =\u003e _default.assurances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ecs.get_elasticity_assurances(ids=[default_alicloud_ecs_elasticity_assurance[\"id\"]])\npulumi.export(\"alicloudEcsElasticityAssuranceExampleId\", default.assurances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ecs.GetElasticityAssurances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudEcsElasticityAssurance.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudEcsElasticityAssuranceExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getElasticityAssurancesResult =\u003e getElasticityAssurancesResult.Assurances[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := ecs.GetElasticityAssurances(ctx, \u0026ecs.GetElasticityAssurancesArgs{\nIds: interface{}{\ndefaultAlicloudEcsElasticityAssurance.Id,\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudEcsElasticityAssuranceExampleId\", _default.Assurances[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetElasticityAssurancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EcsFunctions.getElasticityAssurances(GetElasticityAssurancesArgs.builder()\n            .ids(defaultAlicloudEcsElasticityAssurance.id())\n            .build());\n\n        ctx.export(\"alicloudEcsElasticityAssuranceExampleId\", default_.assurances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getElasticityAssurances\n      arguments:\n        ids:\n          - ${defaultAlicloudEcsElasticityAssurance.id}\noutputs:\n  alicloudEcsElasticityAssuranceExampleId: ${default.assurances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getElasticityAssurances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Elasticity Assurance IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"privatePoolOptionsIds":{"type":"array","items":{"type":"string"},"description":"The ID of the elastic protection service.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of flexible guarantee services. Possible values: `All`, `Preparing`, `Prepared`, `Active`, `Released`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag key-value pair information bound by the elastic guarantee service.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getElasticityAssurances.\n","properties":{"assurances":{"description":"A list of Elasticity Assurance Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getElasticityAssurancesAssurance:getElasticityAssurancesAssurance"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Elasticity Assurance IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"privatePoolOptionsIds":{"items":{"type":"string"},"type":"array"},"resourceGroupId":{"description":"The ID of the resource group.\n","type":"string"},"status":{"description":"The status of flexible guarantee services. Possible values:-Preparing: in preparation.-Prepared: to take effect.-Active: in effect.-Released: Released.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the Capacity Reservation.\n","type":"object"}},"required":["assurances","ids","id"],"type":"object"}},"alicloud:ecs/getHpcClusters:getHpcClusters":{"description":"This data source provides the Ecs Hpc Clusters of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.116.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ecs.getHpcClusters({\n    ids: [\"hpc-bp1i09xxxxxxxx\"],\n    nameRegex: \"tf-testAcc\",\n});\nexport const firstEcsHpcClusterId = example.then(example =\u003e example.clusters?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ecs.get_hpc_clusters(ids=[\"hpc-bp1i09xxxxxxxx\"],\n    name_regex=\"tf-testAcc\")\npulumi.export(\"firstEcsHpcClusterId\", example.clusters[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ecs.GetHpcClusters.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"hpc-bp1i09xxxxxxxx\",\n        },\n        NameRegex = \"tf-testAcc\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstEcsHpcClusterId\"] = example.Apply(getHpcClustersResult =\u003e getHpcClustersResult.Clusters[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ecs.GetHpcClusters(ctx, \u0026ecs.GetHpcClustersArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"hpc-bp1i09xxxxxxxx\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"tf-testAcc\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstEcsHpcClusterId\", example.Clusters[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetHpcClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = EcsFunctions.getHpcClusters(GetHpcClustersArgs.builder()\n            .ids(\"hpc-bp1i09xxxxxxxx\")\n            .nameRegex(\"tf-testAcc\")\n            .build());\n\n        ctx.export(\"firstEcsHpcClusterId\", example.clusters()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ecs:getHpcClusters\n      arguments:\n        ids:\n          - hpc-bp1i09xxxxxxxx\n        nameRegex: tf-testAcc\noutputs:\n  firstEcsHpcClusterId: ${example.clusters[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHpcClusters.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Hpc Cluster IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Hpc Cluster name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHpcClusters.\n","properties":{"clusters":{"items":{"$ref":"#/types/alicloud:ecs/getHpcClustersCluster:getHpcClustersCluster"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["clusters","ids","names","id"],"type":"object"}},"alicloud:ecs/getImages:getImages":{"description":"This data source provides available image resources. It contains user's private images, system images provided by Alibaba Cloud, \nother public images and the ones available on the image market. \n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ecs.getImages({\n    owners: \"system\",\n    nameRegex: \"^centos_6\",\n});\nexport const imageId = example.then(example =\u003e example.images?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ecs.get_images(owners=\"system\",\n    name_regex=\"^centos_6\")\npulumi.export(\"imageId\", example.images[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        Owners = \"system\",\n        NameRegex = \"^centos_6\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"imageId\"] = example.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tOwners:    pulumi.StringRef(\"system\"),\n\t\t\tNameRegex: pulumi.StringRef(\"^centos_6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"imageId\", example.Images[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = EcsFunctions.getImages(GetImagesArgs.builder()\n            .owners(\"system\")\n            .nameRegex(\"^centos_6\")\n            .build());\n\n        ctx.export(\"imageId\", example.images()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        owners: system\n        nameRegex: ^centos_6\noutputs:\n  imageId: ${example.images[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getImages.\n","properties":{"actionType":{"type":"string","description":"The scenario in which the image will be used. Default value: `CreateEcs`. Valid values:                                                \n- `CreateEcs`: instance creation.\n- `ChangeOS`: replacement of the system disk or operating system.\n"},"architecture":{"type":"string","description":"The image architecture. Valid values: \u003cspan pulumi-lang-nodejs=\"`i386`\" pulumi-lang-dotnet=\"`I386`\" pulumi-lang-go=\"`i386`\" pulumi-lang-python=\"`i386`\" pulumi-lang-yaml=\"`i386`\" pulumi-lang-java=\"`i386`\"\u003e`i386`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`arm64`\" pulumi-lang-dotnet=\"`Arm64`\" pulumi-lang-go=\"`arm64`\" pulumi-lang-python=\"`arm64`\" pulumi-lang-yaml=\"`arm64`\" pulumi-lang-java=\"`arm64`\"\u003e`arm64`\u003c/span\u003e.\n"},"dryRun":{"type":"boolean","description":"Specifies whether the image is running on an ECS instance. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Valid values:\n"},"imageFamily":{"type":"string","description":"The name of the image family. You can set this parameter to query images of the specified image family. This parameter is empty by default.\n"},"imageId":{"type":"string","description":"The ID of the image.\n"},"imageName":{"type":"string","description":"The name of the image.\n"},"imageOwnerId":{"type":"string","description":"The ID of the Alibaba Cloud account to which the image belongs. This parameter takes effect only when you query shared images or community images.\n"},"instanceType":{"type":"string","description":"The instance type for which the image can be used.\n"},"isSupportCloudInit":{"type":"boolean","description":"Specifies whether the image supports cloud-init.\n"},"isSupportIoOptimized":{"type":"boolean","description":"Specifies whether the image can be used on I/O optimized instances.\n"},"mostRecent":{"type":"boolean","description":"If more than one result are returned, select the most recent one.\n"},"nameRegex":{"type":"string","description":"A regex string to filter resulting images by name.\n"},"osType":{"type":"string","description":"The operating system type of the image. Valid values: \u003cspan pulumi-lang-nodejs=\"`windows`\" pulumi-lang-dotnet=\"`Windows`\" pulumi-lang-go=\"`windows`\" pulumi-lang-python=\"`windows`\" pulumi-lang-yaml=\"`windows`\" pulumi-lang-java=\"`windows`\"\u003e`windows`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`linux`\" pulumi-lang-dotnet=\"`Linux`\" pulumi-lang-go=\"`linux`\" pulumi-lang-python=\"`linux`\" pulumi-lang-yaml=\"`linux`\" pulumi-lang-java=\"`linux`\"\u003e`linux`\u003c/span\u003e.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"owners":{"type":"string","description":"Filter results by a specific image owner. Valid items are \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`self`\" pulumi-lang-dotnet=\"`Self`\" pulumi-lang-go=\"`self`\" pulumi-lang-python=\"`self`\" pulumi-lang-yaml=\"`self`\" pulumi-lang-java=\"`self`\"\u003e`self`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`others`\" pulumi-lang-dotnet=\"`Others`\" pulumi-lang-go=\"`others`\" pulumi-lang-python=\"`others`\" pulumi-lang-yaml=\"`others`\" pulumi-lang-java=\"`others`\"\u003e`others`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`marketplace`\" pulumi-lang-dotnet=\"`Marketplace`\" pulumi-lang-go=\"`marketplace`\" pulumi-lang-python=\"`marketplace`\" pulumi-lang-yaml=\"`marketplace`\" pulumi-lang-java=\"`marketplace`\"\u003e`marketplace`\u003c/span\u003e.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the custom image belongs.\n"},"snapshotId":{"type":"string","description":"The ID of the snapshot used to create the custom image.\n"},"status":{"type":"string","description":"The status of the image. The following values are available, Separate multiple parameter values by using commas (,). Default value: `Available`. Valid values: \n- `Creating`: The image is being created.\n- `Waiting`: The image is waiting to be processed.\n- `Available`: The image is available.\n- `UnAvailable`: The image is unavailable.\n- `CreateFailed`: The image failed to be created.\n- `Deprecated`: The image is discontinued.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"usage":{"type":"string","description":"Specifies whether to check the validity of the request without actually making the request. Valid values:\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getImages.\n","properties":{"actionType":{"type":"string"},"architecture":{"description":"The platform type of the image system: i386 or x86_64.\n","type":"string"},"dryRun":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of image IDs.\n","items":{"type":"string"},"type":"array"},"imageFamily":{"type":"string"},"imageId":{"type":"string"},"imageName":{"type":"string"},"imageOwnerId":{"type":"string"},"images":{"description":"A \u003cspan pulumi-lang-nodejs=\"`diskDeviceMappings`\" pulumi-lang-dotnet=\"`DiskDeviceMappings`\" pulumi-lang-go=\"`diskDeviceMappings`\" pulumi-lang-python=\"`disk_device_mappings`\" pulumi-lang-yaml=\"`diskDeviceMappings`\" pulumi-lang-java=\"`diskDeviceMappings`\"\u003e`disk_device_mappings`\u003c/span\u003e block as defined below. A list of images.\n","items":{"$ref":"#/types/alicloud:ecs/getImagesImage:getImagesImage"},"type":"array"},"instanceType":{"type":"string"},"isSupportCloudInit":{"type":"boolean"},"isSupportIoOptimized":{"type":"boolean"},"mostRecent":{"type":"boolean"},"nameRegex":{"type":"string"},"osType":{"type":"string"},"outputFile":{"type":"string"},"owners":{"type":"string"},"resourceGroupId":{"type":"string"},"snapshotId":{"description":"The snapshot ID.\n","type":"string"},"status":{"description":"The status of the image. Possible values: `UnAvailable`, `Available`, `Creating` and `CreateFailed`.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"usage":{"type":"string"}},"required":["ids","images","id"],"type":"object"}},"alicloud:ecs/getInstanceKeywords:getInstanceKeywords":{"description":"Operation to query the reserved keywords of an ApsaraDB RDS instance. The reserved keywords cannot be used for the usernames of accounts or the names of databases.\n\n\u003e **NOTE:** Available in v1.196.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst resources = alicloud.ecs.getInstanceKeywords({\n    key: \"account\",\n    outputFile: \"./classes.txt\",\n});\nexport const accountKeywords = resources.then(resources =\u003e resources.keywords?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nresources = alicloud.ecs.get_instance_keywords(key=\"account\",\n    output_file=\"./classes.txt\")\npulumi.export(\"accountKeywords\", resources.keywords[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var resources = AliCloud.Ecs.GetInstanceKeywords.Invoke(new()\n    {\n        Key = \"account\",\n        OutputFile = \"./classes.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"accountKeywords\"] = resources.Apply(getInstanceKeywordsResult =\u003e getInstanceKeywordsResult.Keywords[0]),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tresources, err := ecs.GetInstanceKeywords(ctx, \u0026ecs.GetInstanceKeywordsArgs{\n\t\t\tKey:        \"account\",\n\t\t\tOutputFile: pulumi.StringRef(\"./classes.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"accountKeywords\", resources.Keywords[0])\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceKeywordsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var resources = EcsFunctions.getInstanceKeywords(GetInstanceKeywordsArgs.builder()\n            .key(\"account\")\n            .outputFile(\"./classes.txt\")\n            .build());\n\n        ctx.export(\"accountKeywords\", resources.keywords()[0]);\n    }\n}\n```\n```yaml\nvariables:\n  resources:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceKeywords\n      arguments:\n        key: account\n        outputFile: ./classes.txt\noutputs:\n  accountKeywords: ${resources.keywords[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceKeywords.\n","properties":{"key":{"type":"string","description":"The type of reserved keyword to query. Valid values: \u003cspan pulumi-lang-nodejs=\"`account`\" pulumi-lang-dotnet=\"`Account`\" pulumi-lang-go=\"`account`\" pulumi-lang-python=\"`account`\" pulumi-lang-yaml=\"`account`\" pulumi-lang-java=\"`account`\"\u003e`account`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`database`\" pulumi-lang-dotnet=\"`Database`\" pulumi-lang-go=\"`database`\" pulumi-lang-python=\"`database`\" pulumi-lang-yaml=\"`database`\" pulumi-lang-java=\"`database`\"\u003e`database`\u003c/span\u003e.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi up`).\n"}},"type":"object","required":["key"]},"outputs":{"description":"A collection of values returned by getInstanceKeywords.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of keywords.\n","items":{"type":"string"},"type":"array"},"key":{"type":"string"},"keywords":{"description":"An array that consists of reserved keywords.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","key","keywords","id"],"type":"object"}},"alicloud:ecs/getInstanceTypeFamilies:getInstanceTypeFamilies":{"description":"This data source provides the ECS instance type families of Alibaba Cloud.\n\n\u003e **NOTE:** Available in 1.54.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ecs.getInstanceTypeFamilies({\n    instanceChargeType: \"PrePaid\",\n});\nexport const firstInstanceTypeFamilyId = _default.then(_default =\u003e _default.families?.[0]?.id);\nexport const instanceIds = _default.then(_default =\u003e _default.ids);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ecs.get_instance_type_families(instance_charge_type=\"PrePaid\")\npulumi.export(\"firstInstanceTypeFamilyId\", default.families[0].id)\npulumi.export(\"instanceIds\", default.ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ecs.GetInstanceTypeFamilies.Invoke(new()\n    {\n        InstanceChargeType = \"PrePaid\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstInstanceTypeFamilyId\"] = @default.Apply(@default =\u003e @default.Apply(getInstanceTypeFamiliesResult =\u003e getInstanceTypeFamiliesResult.Families[0]?.Id)),\n        [\"instanceIds\"] = @default.Apply(@default =\u003e @default.Apply(getInstanceTypeFamiliesResult =\u003e getInstanceTypeFamiliesResult.Ids)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ecs.GetInstanceTypeFamilies(ctx, \u0026ecs.GetInstanceTypeFamiliesArgs{\n\t\t\tInstanceChargeType: pulumi.StringRef(\"PrePaid\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstInstanceTypeFamilyId\", _default.Families[0].Id)\n\t\tctx.Export(\"instanceIds\", _default.Ids)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypeFamiliesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EcsFunctions.getInstanceTypeFamilies(GetInstanceTypeFamiliesArgs.builder()\n            .instanceChargeType(\"PrePaid\")\n            .build());\n\n        ctx.export(\"firstInstanceTypeFamilyId\", default_.families()[0].id());\n        ctx.export(\"instanceIds\", default_.ids());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypeFamilies\n      arguments:\n        instanceChargeType: PrePaid\noutputs:\n  firstInstanceTypeFamilyId: ${default.families[0].id}\n  instanceIds: ${default.ids}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceTypeFamilies.\n","properties":{"generation":{"type":"string","description":"The generation of the instance type family, Valid values: `ecs-1`, `ecs-2`, `ecs-3`, `ecs-4`, `ecs-5`, `ecs-6`. For more information, see [Instance type families](https://www.alibabacloud.com/help/doc-detail/25378.htm).\n"},"instanceChargeType":{"type":"string","description":"Valid values are `PrePaid`, `PostPaid`, Default to `PostPaid`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"spotStrategy":{"type":"string","description":"Filter the results by ECS spot type. Valid values: `NoSpot`, `SpotWithPriceLimit` and `SpotAsPriceGo`. Default to `NoSpot`.\n"},"zoneId":{"type":"string","description":"The Zone to launch the instance.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstanceTypeFamilies.\n","properties":{"families":{"items":{"$ref":"#/types/alicloud:ecs/getInstanceTypeFamiliesFamily:getInstanceTypeFamiliesFamily"},"type":"array"},"generation":{"description":"The generation of the instance type family.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of instance type family IDs.\n","items":{"type":"string"},"type":"array"},"instanceChargeType":{"type":"string"},"outputFile":{"type":"string"},"spotStrategy":{"type":"string"},"zoneId":{"type":"string"}},"required":["families","ids","id"],"type":"object"}},"alicloud:ecs/getInstanceTypes:getInstanceTypes":{"description":"This data source provides the ECS instance types of Alibaba Cloud.\n\n\u003e **NOTE:** Available since v1.0.0.\n\n\u003e **NOTE:** By default, only the upgraded instance types are returned. If you want to get outdated instance types, you must set \u003cspan pulumi-lang-nodejs=\"`isOutdated`\" pulumi-lang-dotnet=\"`IsOutdated`\" pulumi-lang-go=\"`isOutdated`\" pulumi-lang-python=\"`is_outdated`\" pulumi-lang-yaml=\"`isOutdated`\" pulumi-lang-java=\"`isOutdated`\"\u003e`is_outdated`\u003c/span\u003e to true.\n\n\u003e **NOTE:** If one instance type is sold out, it will not be exported.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\n// Declare the data source\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    instanceTypeFamily: \"ecs.sn1ne\",\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_[0-9]+_[0-9]+_x64*\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vswitchName: name,\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"192.168.192.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultNetwork.id,\n});\nconst defaultEcsNetworkInterface = new alicloud.ecs.EcsNetworkInterface(\"default\", {\n    networkInterfaceName: name,\n    vswitchId: defaultSwitch.id,\n    securityGroupIds: [defaultSecurityGroup.id],\n});\nconst defaultInstance: alicloud.ecs.Instance[] = [];\nfor (const range = {value: 0}; range.value \u003c 14; range.value++) {\n    defaultInstance.push(new alicloud.ecs.Instance(`default-${range.value}`, {\n        imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n        instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n        instanceName: name,\n        securityGroups: [defaultSecurityGroup].map(__item =\u003e __item.id),\n        internetChargeType: \"PayByTraffic\",\n        internetMaxBandwidthOut: 10,\n        availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n        instanceChargeType: \"PostPaid\",\n        systemDiskCategory: \"cloud_efficiency\",\n        vswitchId: defaultSwitch.id,\n    }));\n}\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\n# Declare the data source\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    instance_type_family=\"ecs.sn1ne\")\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_[0-9]+_[0-9]+_x64*\",\n    most_recent=True,\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vswitch_name=name,\n    vpc_id=default_network.id,\n    cidr_block=\"192.168.192.0/24\",\n    zone_id=default.zones[0].id)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_network.id)\ndefault_ecs_network_interface = alicloud.ecs.EcsNetworkInterface(\"default\",\n    network_interface_name=name,\n    vswitch_id=default_switch.id,\n    security_group_ids=[default_security_group.id])\ndefault_instance = []\nfor range in [{\"value\": i} for i in range(0, 14)]:\n    default_instance.append(alicloud.ecs.Instance(f\"default-{range['value']}\",\n        image_id=default_get_images.images[0].id,\n        instance_type=default_get_instance_types.instance_types[0].id,\n        instance_name=name,\n        security_groups=[__item.id for __item in [default_security_group]],\n        internet_charge_type=\"PayByTraffic\",\n        internet_max_bandwidth_out=10,\n        availability_zone=default.zones[0].id,\n        instance_charge_type=\"PostPaid\",\n        system_disk_category=\"cloud_efficiency\",\n        vswitch_id=default_switch.id))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    // Declare the data source\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceTypeFamily = \"ecs.sn1ne\",\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_[0-9]+_[0-9]+_x64*\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VswitchName = name,\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"192.168.192.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultEcsNetworkInterface = new AliCloud.Ecs.EcsNetworkInterface(\"default\", new()\n    {\n        NetworkInterfaceName = name,\n        VswitchId = defaultSwitch.Id,\n        SecurityGroupIds = new[]\n        {\n            defaultSecurityGroup.Id,\n        },\n    });\n\n    var defaultInstance = new List\u003cAliCloud.Ecs.Instance\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 14; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultInstance.Add(new AliCloud.Ecs.Instance($\"default-{range.Value}\", new()\n        {\n            ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n            InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n            InstanceName = name,\n            SecurityGroups = new[]\n            {\n                defaultSecurityGroup,\n            }.Select(__item =\u003e __item.Id).ToList(),\n            InternetChargeType = \"PayByTraffic\",\n            InternetMaxBandwidthOut = 10,\n            AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n            InstanceChargeType = \"PostPaid\",\n            SystemDiskCategory = \"cloud_efficiency\",\n            VswitchId = defaultSwitch.Id,\n        }));\n    }\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\n// Declare the data source\ndefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\nAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\nInstanceTypeFamily: pulumi.StringRef(\"ecs.sn1ne\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\nNameRegex: pulumi.StringRef(\"^ubuntu_[0-9]+_[0-9]+_x64*\"),\nMostRecent: pulumi.BoolRef(true),\nOwners: pulumi.StringRef(\"system\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"192.168.192.0/24\"),\nZoneId: pulumi.String(_default.Zones[0].Id),\n})\nif err != nil {\nreturn err\n}\ndefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(name),\nVpcId: defaultNetwork.ID(),\n})\nif err != nil {\nreturn err\n}\n_, err = ecs.NewEcsNetworkInterface(ctx, \"default\", \u0026ecs.EcsNetworkInterfaceArgs{\nNetworkInterfaceName: pulumi.String(name),\nVswitchId: defaultSwitch.ID(),\nSecurityGroupIds: pulumi.StringArray{\ndefaultSecurityGroup.ID(),\n},\n})\nif err != nil {\nreturn err\n}\nvar splat0 pulumi.StringArray\nfor _, val0 := range %!v(PANIC=Format method: fatal: An assertion has failed: tok: ) {\nsplat0 = append(splat0, val0.ID())\n}\nvar defaultInstance []*ecs.Instance\nfor index := 0; index \u003c 14; index++ {\n    key0 := index\n    _ := index\n__res, err := ecs.NewInstance(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026ecs.InstanceArgs{\nImageId: pulumi.String(defaultGetImages.Images[0].Id),\nInstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\nInstanceName: pulumi.String(name),\nSecurityGroups: splat0,\nInternetChargeType: pulumi.String(\"PayByTraffic\"),\nInternetMaxBandwidthOut: pulumi.Int(10),\nAvailabilityZone: pulumi.String(_default.Zones[0].Id),\nInstanceChargeType: pulumi.String(\"PostPaid\"),\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nVswitchId: defaultSwitch.ID(),\n})\nif err != nil {\nreturn err\n}\ndefaultInstance = append(defaultInstance, __res)\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterface;\nimport com.pulumi.alicloud.ecs.EcsNetworkInterfaceArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        // Declare the data source\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .instanceTypeFamily(\"ecs.sn1ne\")\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_[0-9]+_[0-9]+_x64*\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"192.168.192.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultEcsNetworkInterface = new EcsNetworkInterface(\"defaultEcsNetworkInterface\", EcsNetworkInterfaceArgs.builder()\n            .networkInterfaceName(name)\n            .vswitchId(defaultSwitch.id())\n            .securityGroupIds(defaultSecurityGroup.id())\n            .build());\n\n        for (var i = 0; i \u003c 14; i++) {\n            new Instance(\"defaultInstance-\" + i, InstanceArgs.builder()\n                .imageId(defaultGetImages.images()[0].id())\n                .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n                .instanceName(name)\n                .securityGroups(defaultSecurityGroup.stream().map(element -\u003e element.id()).collect(toList()))\n                .internetChargeType(\"PayByTraffic\")\n                .internetMaxBandwidthOut(10)\n                .availabilityZone(default_.zones()[0].id())\n                .instanceChargeType(\"PostPaid\")\n                .systemDiskCategory(\"cloud_efficiency\")\n                .vswitchId(defaultSwitch.id())\n                .build());\n\n        \n}\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceTypes.\n","properties":{"availabilityZone":{"type":"string","description":"The zone where instance types are supported.\n"},"cpuCoreCount":{"type":"integer","description":"Filter the results to a specific number of cpu cores.\n"},"eniAmount":{"type":"integer","description":"Filter the result whose network interface number is no more than \u003cspan pulumi-lang-nodejs=\"`eniAmount`\" pulumi-lang-dotnet=\"`EniAmount`\" pulumi-lang-go=\"`eniAmount`\" pulumi-lang-python=\"`eni_amount`\" pulumi-lang-yaml=\"`eniAmount`\" pulumi-lang-java=\"`eniAmount`\"\u003e`eni_amount`\u003c/span\u003e.\n"},"gpuAmount":{"type":"integer","description":"The GPU amount of an instance type.\n"},"gpuSpec":{"type":"string","description":"The GPU spec of an instance type.\n"},"imageId":{"type":"string","description":"The ID of the image.\n"},"instanceChargeType":{"type":"string","description":"Filter the results by charge type. Valid values: `PrePaid` and `PostPaid`. Default to `PostPaid`.\n"},"instanceType":{"type":"string","description":"Instance specifications. For more information, see instance Specification Family, or you can call the describe instance types interface to get the latest specification table.\n"},"instanceTypeFamily":{"type":"string","description":"Filter the results based on their family name. For example: 'ecs.n4'.\n"},"isOutdated":{"type":"boolean","description":"If true, outdated instance types are included in the results. Default to false.\n"},"kubernetesNodeRole":{"type":"string","description":"Filter the result which is used to create a kubernetes cluster\nand managed kubernetes cluster. Optional Values: `Master` and `Worker`.\n"},"memorySize":{"type":"number","description":"Filter the results to a specific memory size in GB.\n"},"minimumEniIpv6AddressQuantity":{"type":"integer","description":"The minimum number of IPv6 addresses per ENI. **Note:** If an instance type supports fewer IPv6 addresses per ENI than the specified value, information about the instance type is not queried.\n"},"minimumEniPrivateIpAddressQuantity":{"type":"integer","description":"The minimum expected IPv4 address upper limit of a single ENI when querying instance specifications. **Note:** If an instance type supports fewer IPv4 addresses per ENI than the specified value, information about the instance type is not queried.\n"},"networkType":{"type":"string","description":"Filter the results by network type. Valid values: `Classic` and `Vpc`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"sortedBy":{"type":"string","description":"Sort mode, valid values: `CPU`, `Memory`, `Price`.\n"},"spotStrategy":{"type":"string","description":"Filter the results by ECS spot type. Valid values: `NoSpot`, `SpotWithPriceLimit` and `SpotAsPriceGo`. Default to `NoSpot`.\n"},"systemDiskCategory":{"type":"string","description":"Filter the results by system disk category. Valid values: \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ephemeralSsd`\" pulumi-lang-dotnet=\"`EphemeralSsd`\" pulumi-lang-go=\"`ephemeralSsd`\" pulumi-lang-python=\"`ephemeral_ssd`\" pulumi-lang-yaml=\"`ephemeralSsd`\" pulumi-lang-java=\"`ephemeralSsd`\"\u003e`ephemeral_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssd`\" pulumi-lang-dotnet=\"`CloudEssd`\" pulumi-lang-go=\"`cloudEssd`\" pulumi-lang-python=\"`cloud_essd`\" pulumi-lang-yaml=\"`cloudEssd`\" pulumi-lang-java=\"`cloudEssd`\"\u003e`cloud_essd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdEntry`\" pulumi-lang-dotnet=\"`CloudEssdEntry`\" pulumi-lang-go=\"`cloudEssdEntry`\" pulumi-lang-python=\"`cloud_essd_entry`\" pulumi-lang-yaml=\"`cloudEssdEntry`\" pulumi-lang-java=\"`cloudEssdEntry`\"\u003e`cloud_essd_entry`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudAuto`\" pulumi-lang-dotnet=\"`CloudAuto`\" pulumi-lang-go=\"`cloudAuto`\" pulumi-lang-python=\"`cloud_auto`\" pulumi-lang-yaml=\"`cloudAuto`\" pulumi-lang-java=\"`cloudAuto`\"\u003e`cloud_auto`\u003c/span\u003e. \n**NOTE**: Its default value \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e has been removed from the version v1.150.0.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstanceTypes.\n","properties":{"availabilityZone":{"type":"string"},"cpuCoreCount":{"description":"Number of CPU cores.\n","type":"integer"},"eniAmount":{"description":"(Deprecated since v1.239.0) The maximum number of ENIs per instance. It sames as \u003cspan pulumi-lang-nodejs=\"`eniQuantity`\" pulumi-lang-dotnet=\"`EniQuantity`\" pulumi-lang-go=\"`eniQuantity`\" pulumi-lang-python=\"`eni_quantity`\" pulumi-lang-yaml=\"`eniQuantity`\" pulumi-lang-java=\"`eniQuantity`\"\u003e`eni_quantity`\u003c/span\u003e.\n","type":"integer"},"gpuAmount":{"type":"integer"},"gpuSpec":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of instance type IDs.\n","items":{"type":"string"},"type":"array"},"imageId":{"type":"string"},"instanceChargeType":{"type":"string"},"instanceType":{"type":"string"},"instanceTypeFamily":{"type":"string"},"instanceTypes":{"description":"A list of image types. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getInstanceTypesInstanceType:getInstanceTypesInstanceType"},"type":"array"},"isOutdated":{"type":"boolean"},"kubernetesNodeRole":{"type":"string"},"memorySize":{"description":"Size of memory, measured in GB.\n","type":"number"},"minimumEniIpv6AddressQuantity":{"type":"integer"},"minimumEniPrivateIpAddressQuantity":{"type":"integer"},"networkType":{"type":"string"},"outputFile":{"type":"string"},"sortedBy":{"type":"string"},"spotStrategy":{"type":"string"},"systemDiskCategory":{"type":"string"}},"required":["ids","instanceTypes","id"],"type":"object"}},"alicloud:ecs/getInstances:getInstances":{"description":"The Instances data source list ECS instance resources according to their ID, name regex, image id, status and other fields.\n\n\u003e **NOTE:** Available since v1.7.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst instancesDs = alicloud.ecs.getInstances({\n    nameRegex: \"web_server\",\n    status: \"Running\",\n});\nexport const firstInstanceId = instancesDs.then(instancesDs =\u003e instancesDs.instances?.[0]?.id);\nexport const instanceIds = instancesDs.then(instancesDs =\u003e instancesDs.ids);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ninstances_ds = alicloud.ecs.get_instances(name_regex=\"web_server\",\n    status=\"Running\")\npulumi.export(\"firstInstanceId\", instances_ds.instances[0].id)\npulumi.export(\"instanceIds\", instances_ds.ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var instancesDs = AliCloud.Ecs.GetInstances.Invoke(new()\n    {\n        NameRegex = \"web_server\",\n        Status = \"Running\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstInstanceId\"] = instancesDs.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n        [\"instanceIds\"] = instancesDs.Apply(getInstancesResult =\u003e getInstancesResult.Ids),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstancesDs, err := ecs.GetInstances(ctx, \u0026ecs.GetInstancesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"web_server\"),\n\t\t\tStatus:    pulumi.StringRef(\"Running\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstInstanceId\", instancesDs.Instances[0].Id)\n\t\tctx.Export(\"instanceIds\", instancesDs.Ids)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var instancesDs = EcsFunctions.getInstances(GetInstancesArgs.builder()\n            .nameRegex(\"web_server\")\n            .status(\"Running\")\n            .build());\n\n        ctx.export(\"firstInstanceId\", instancesDs.instances()[0].id());\n        ctx.export(\"instanceIds\", instancesDs.ids());\n    }\n}\n```\n```yaml\nvariables:\n  instancesDs:\n    fn::invoke:\n      function: alicloud:ecs:getInstances\n      arguments:\n        nameRegex: web_server\n        status: Running\noutputs:\n  firstInstanceId: ${instancesDs.instances[0].id}\n  instanceIds: ${instancesDs.ids}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"availabilityZone":{"type":"string","description":"Availability zone where instances are located.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. If false, the attributes \u003cspan pulumi-lang-nodejs=\"`ramRoleName`\" pulumi-lang-dotnet=\"`RamRoleName`\" pulumi-lang-go=\"`ramRoleName`\" pulumi-lang-python=\"`ram_role_name`\" pulumi-lang-yaml=\"`ramRoleName`\" pulumi-lang-java=\"`ramRoleName`\"\u003e`ram_role_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`diskDeviceMappings`\" pulumi-lang-dotnet=\"`DiskDeviceMappings`\" pulumi-lang-go=\"`diskDeviceMappings`\" pulumi-lang-python=\"`disk_device_mappings`\" pulumi-lang-yaml=\"`diskDeviceMappings`\" pulumi-lang-java=\"`diskDeviceMappings`\"\u003e`disk_device_mappings`\u003c/span\u003e will not be fetched and output.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of ECS instance IDs.\n"},"imageId":{"type":"string","description":"The image ID of some ECS instance used.\n"},"instanceName":{"type":"string","description":"The name of the instance. Fuzzy search with the asterisk (*) wildcard characters is supported.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"ramRoleName":{"type":"string","description":"The RAM role name which the instance attaches.\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group which the instance belongs.\n"},"status":{"type":"string","description":"Instance status. Valid values: \"Creating\", \"Starting\", \"Running\", \"Stopping\" and \"Stopped\". If undefined, all statuses are considered.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the ECS instances. It must be in the format:\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst taggedInstances = alicloud.ecs.getInstances({\n    tags: {\n        tagKey1: \"tagValue1\",\n        tagKey2: \"tagValue2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ntagged_instances = alicloud.ecs.get_instances(tags={\n    \"tagKey1\": \"tagValue1\",\n    \"tagKey2\": \"tagValue2\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var taggedInstances = AliCloud.Ecs.GetInstances.Invoke(new()\n    {\n        Tags = \n        {\n            { \"tagKey1\", \"tagValue1\" },\n            { \"tagKey2\", \"tagValue2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.GetInstances(ctx, \u0026ecs.GetInstancesArgs{\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"tagKey1\": \"tagValue1\",\n\t\t\t\t\"tagKey2\": \"tagValue2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var taggedInstances = EcsFunctions.getInstances(GetInstancesArgs.builder()\n            .tags(Map.ofEntries(\n                Map.entry(\"tagKey1\", \"tagValue1\"),\n                Map.entry(\"tagKey2\", \"tagValue2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  taggedInstances:\n    fn::invoke:\n      function: alicloud:ecs:getInstances\n      arguments:\n        tags:\n          tagKey1: tagValue1\n          tagKey2: tagValue2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"ID of the VPC linked to the instances.\n"},"vswitchId":{"type":"string","description":"ID of the vSwitch linked to the instances.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"availabilityZone":{"description":"Availability zone the instance belongs to.\n","type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"imageId":{"description":"Image ID the instance is using.\n","type":"string"},"instanceName":{"type":"string"},"instances":{"description":"A list of instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of instances names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"ramRoleName":{"description":"The Ram role name.\n","type":"string"},"resourceGroupId":{"description":"The Id of resource group.\n","type":"string"},"status":{"description":"Instance current status.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A map of tags assigned to the ECS instance.\n","type":"object"},"totalCount":{"type":"integer"},"vpcId":{"description":"ID of the VPC the instance belongs to.\n","type":"string"},"vswitchId":{"description":"ID of the vSwitch the instance belongs to.\n","type":"string"}},"required":["ids","instances","names","totalCount","id"],"type":"object"}},"alicloud:ecs/getKeyPairs:getKeyPairs":{"description":"\u003e **DEPRECATED:** This datasource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.ecs.getEcsKeyPairs \" pulumi-lang-dotnet=\" alicloud.ecs.getEcsKeyPairs \" pulumi-lang-go=\" ecs.getEcsKeyPairs \" pulumi-lang-python=\" ecs_get_ecs_key_pairs \" pulumi-lang-yaml=\" alicloud.ecs.getEcsKeyPairs \" pulumi-lang-java=\" alicloud.ecs.getEcsKeyPairs \"\u003e alicloud.ecs.getEcsKeyPairs \u003c/span\u003efrom version 1.121.0.\n\nThis data source provides a list of key pairs in an Alibaba Cloud account according to the specified filters.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst defaultKeyPair = new alicloud.ecs.KeyPair(\"default\", {keyName: \"keyPairDatasource\"});\nconst _default = alicloud.ecs.getKeyPairsOutput({\n    nameRegex: defaultKeyPair.keyName,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\ndefault_key_pair = alicloud.ecs.KeyPair(\"default\", key_name=\"keyPairDatasource\")\ndefault = alicloud.ecs.get_key_pairs_output(name_regex=default_key_pair.key_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var defaultKeyPair = new AliCloud.Ecs.KeyPair(\"default\", new()\n    {\n        KeyName = \"keyPairDatasource\",\n    });\n\n    var @default = AliCloud.Ecs.GetKeyPairs.Invoke(new()\n    {\n        NameRegex = defaultKeyPair.KeyName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tdefaultKeyPair, err := ecs.NewKeyPair(ctx, \"default\", \u0026ecs.KeyPairArgs{\n\t\t\tKeyName: pulumi.String(\"keyPairDatasource\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = ecs.GetKeyPairsOutput(ctx, ecs.GetKeyPairsOutputArgs{\n\t\t\tNameRegex: defaultKeyPair.KeyName,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.KeyPair;\nimport com.pulumi.alicloud.ecs.KeyPairArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetKeyPairsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        var defaultKeyPair = new KeyPair(\"defaultKeyPair\", KeyPairArgs.builder()\n            .keyName(\"keyPairDatasource\")\n            .build());\n\n        final var default = EcsFunctions.getKeyPairs(GetKeyPairsArgs.builder()\n            .nameRegex(defaultKeyPair.keyName())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Declare the data source\n  defaultKeyPair:\n    type: alicloud:ecs:KeyPair\n    name: default\n    properties:\n      keyName: keyPairDatasource\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getKeyPairs\n      arguments:\n        nameRegex: ${defaultKeyPair.keyName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKeyPairs.\n","properties":{"fingerPrint":{"type":"string","description":"A finger print used to retrieve specified key pair.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of key pair IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to apply to the resulting key pairs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the key pair belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getKeyPairs.\n","properties":{"fingerPrint":{"description":"Finger print of the key pair.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyPairs":{"deprecationMessage":"Field \u003cspan pulumi-lang-nodejs=\"`keyPairs`\" pulumi-lang-dotnet=\"`KeyPairs`\" pulumi-lang-go=\"`keyPairs`\" pulumi-lang-python=\"`key_pairs`\" pulumi-lang-yaml=\"`keyPairs`\" pulumi-lang-java=\"`keyPairs`\"\u003e`key_pairs`\u003c/span\u003e has been deprecated from provider version 1.121.0. New field \u003cspan pulumi-lang-nodejs=\"`pairs`\" pulumi-lang-dotnet=\"`Pairs`\" pulumi-lang-go=\"`pairs`\" pulumi-lang-python=\"`pairs`\" pulumi-lang-yaml=\"`pairs`\" pulumi-lang-java=\"`pairs`\"\u003e`pairs`\u003c/span\u003e instead.","description":"A list of key pairs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getKeyPairsKeyPair:getKeyPairsKeyPair"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of key pair names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pairs":{"items":{"$ref":"#/types/alicloud:ecs/getKeyPairsPair:getKeyPairsPair"},"type":"array"},"resourceGroupId":{"description":"The Id of resource group.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"(Optional, Available in v1.66.0+) A mapping of tags to assign to the resource.\n","type":"object"}},"required":["ids","keyPairs","names","pairs","id"],"type":"object"}},"alicloud:ecs/getNetworkInterfaces:getNetworkInterfaces":{"description":"\u003e **DEPRECATED:** This datasource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.ecs.getEcsNetworkInterfaces \" pulumi-lang-dotnet=\" alicloud.ecs.getEcsNetworkInterfaces \" pulumi-lang-go=\" ecs.getEcsNetworkInterfaces \" pulumi-lang-python=\" ecs_get_ecs_network_interfaces \" pulumi-lang-yaml=\" alicloud.ecs.getEcsNetworkInterfaces \" pulumi-lang-java=\" alicloud.ecs.getEcsNetworkInterfaces \"\u003e alicloud.ecs.getEcsNetworkInterfaces \u003c/span\u003efrom version 1.123.1.\n\nUse this data source to get a list of elastic network interfaces according to the specified filters in an Alibaba Cloud account.\n\nFor information about elastic network interface and how to use it, see [Elastic Network Interface](https://www.alibabacloud.com/help/doc-detail/58496.html)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"networkInterfacesName\";\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    vpcName: name,\n    cidrBlock: \"192.168.0.0/24\",\n});\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    vswitchName: name,\n    cidrBlock: \"192.168.0.0/24\",\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vpcId: vpc.id,\n});\nconst group = new alicloud.ecs.SecurityGroup(\"group\", {\n    name: name,\n    vpcId: vpc.id,\n});\nconst _interface = new alicloud.vpc.NetworkInterface(\"interface\", {\n    name: `${name}%d`,\n    vswitchId: vswitch.id,\n    securityGroups: [group.id],\n    description: \"Basic test\",\n    privateIp: \"192.168.0.2\",\n    tags: {\n        \"TF-VER\": \"0.11.3\",\n    },\n});\nconst instance = new alicloud.ecs.Instance(\"instance\", {\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    securityGroups: [group.id],\n    instanceType: \"ecs.e3.xlarge\",\n    systemDiskCategory: \"cloud_efficiency\",\n    imageId: \"centos_7_04_64_20G_alibase_201701015.vhd\",\n    instanceName: name,\n    vswitchId: vswitch.id,\n    internetMaxBandwidthOut: 10,\n});\nconst attachment = new alicloud.vpc.NetworkInterfaceAttachment(\"attachment\", {\n    instanceId: instance.id,\n    networkInterfaceId: _interface.id,\n});\nconst defaultGetNetworkInterfaces = alicloud.ecs.getNetworkInterfacesOutput({\n    ids: [attachment.networkInterfaceId],\n    nameRegex: name,\n    tags: {\n        \"TF-VER\": \"0.11.3\",\n    },\n    vpcId: vpc.id,\n    vswitchId: vswitch.id,\n    privateIp: \"192.168.0.2\",\n    securityGroupId: group.id,\n    type: \"Secondary\",\n    instanceId: instance.id,\n});\nexport const eni0Name = defaultGetNetworkInterfaces.apply(defaultGetNetworkInterfaces =\u003e defaultGetNetworkInterfaces.interfaces?.[0]?.name);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"networkInterfacesName\"\nvpc = alicloud.vpc.Network(\"vpc\",\n    vpc_name=name,\n    cidr_block=\"192.168.0.0/24\")\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    vswitch_name=name,\n    cidr_block=\"192.168.0.0/24\",\n    availability_zone=default.zones[0].id,\n    vpc_id=vpc.id)\ngroup = alicloud.ecs.SecurityGroup(\"group\",\n    name=name,\n    vpc_id=vpc.id)\ninterface = alicloud.vpc.NetworkInterface(\"interface\",\n    name=f\"{name}%d\",\n    vswitch_id=vswitch.id,\n    security_groups=[group.id],\n    description=\"Basic test\",\n    private_ip=\"192.168.0.2\",\n    tags={\n        \"TF-VER\": \"0.11.3\",\n    })\ninstance = alicloud.ecs.Instance(\"instance\",\n    availability_zone=default.zones[0].id,\n    security_groups=[group.id],\n    instance_type=\"ecs.e3.xlarge\",\n    system_disk_category=\"cloud_efficiency\",\n    image_id=\"centos_7_04_64_20G_alibase_201701015.vhd\",\n    instance_name=name,\n    vswitch_id=vswitch.id,\n    internet_max_bandwidth_out=10)\nattachment = alicloud.vpc.NetworkInterfaceAttachment(\"attachment\",\n    instance_id=instance.id,\n    network_interface_id=interface.id)\ndefault_get_network_interfaces = alicloud.ecs.get_network_interfaces_output(ids=[attachment.network_interface_id],\n    name_regex=name,\n    tags={\n        \"TF-VER\": \"0.11.3\",\n    },\n    vpc_id=vpc.id,\n    vswitch_id=vswitch.id,\n    private_ip=\"192.168.0.2\",\n    security_group_id=group.id,\n    type=\"Secondary\",\n    instance_id=instance.id)\npulumi.export(\"eni0Name\", default_get_network_interfaces.interfaces[0].name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"networkInterfacesName\";\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"192.168.0.0/24\",\n    });\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"192.168.0.0/24\",\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VpcId = vpc.Id,\n    });\n\n    var @group = new AliCloud.Ecs.SecurityGroup(\"group\", new()\n    {\n        Name = name,\n        VpcId = vpc.Id,\n    });\n\n    var @interface = new AliCloud.Vpc.NetworkInterface(\"interface\", new()\n    {\n        Name = $\"{name}%d\",\n        VswitchId = vswitch.Id,\n        SecurityGroups = new[]\n        {\n            @group.Id,\n        },\n        Description = \"Basic test\",\n        PrivateIp = \"192.168.0.2\",\n        Tags = \n        {\n            { \"TF-VER\", \"0.11.3\" },\n        },\n    });\n\n    var instance = new AliCloud.Ecs.Instance(\"instance\", new()\n    {\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        SecurityGroups = new[]\n        {\n            @group.Id,\n        },\n        InstanceType = \"ecs.e3.xlarge\",\n        SystemDiskCategory = \"cloud_efficiency\",\n        ImageId = \"centos_7_04_64_20G_alibase_201701015.vhd\",\n        InstanceName = name,\n        VswitchId = vswitch.Id,\n        InternetMaxBandwidthOut = 10,\n    });\n\n    var attachment = new AliCloud.Vpc.NetworkInterfaceAttachment(\"attachment\", new()\n    {\n        InstanceId = instance.Id,\n        NetworkInterfaceId = @interface.Id,\n    });\n\n    var defaultGetNetworkInterfaces = AliCloud.Ecs.GetNetworkInterfaces.Invoke(new()\n    {\n        Ids = new[]\n        {\n            attachment.NetworkInterfaceId,\n        },\n        NameRegex = name,\n        Tags = \n        {\n            { \"TF-VER\", \"0.11.3\" },\n        },\n        VpcId = vpc.Id,\n        VswitchId = vswitch.Id,\n        PrivateIp = \"192.168.0.2\",\n        SecurityGroupId = @group.Id,\n        Type = \"Secondary\",\n        InstanceId = instance.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"eni0Name\"] = defaultGetNetworkInterfaces.Apply(getNetworkInterfacesResult =\u003e getNetworkInterfacesResult.Interfaces[0]?.Name),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"networkInterfacesName\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/24\"),\n})\nif err != nil {\nreturn err\n}\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\nvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\nVswitchName: pulumi.String(name),\nCidrBlock: pulumi.String(\"192.168.0.0/24\"),\nAvailabilityZone: pulumi.String(_default.Zones[0].Id),\nVpcId: vpc.ID(),\n})\nif err != nil {\nreturn err\n}\ngroup, err := ecs.NewSecurityGroup(ctx, \"group\", \u0026ecs.SecurityGroupArgs{\nName: pulumi.String(name),\nVpcId: vpc.ID(),\n})\nif err != nil {\nreturn err\n}\ninterface, err := vpc.NewNetworkInterface(ctx, \"interface\", \u0026vpc.NetworkInterfaceArgs{\nName: pulumi.Sprintf(\"%v%v\", name, \"%d\"),\nVswitchId: vswitch.ID(),\nSecurityGroups: pulumi.StringArray{\ngroup.ID(),\n},\nDescription: pulumi.String(\"Basic test\"),\nPrivateIp: pulumi.String(\"192.168.0.2\"),\nTags: pulumi.StringMap{\n\"TF-VER\": pulumi.String(\"0.11.3\"),\n},\n})\nif err != nil {\nreturn err\n}\ninstance, err := ecs.NewInstance(ctx, \"instance\", \u0026ecs.InstanceArgs{\nAvailabilityZone: pulumi.String(_default.Zones[0].Id),\nSecurityGroups: pulumi.StringArray{\ngroup.ID(),\n},\nInstanceType: pulumi.String(\"ecs.e3.xlarge\"),\nSystemDiskCategory: pulumi.String(\"cloud_efficiency\"),\nImageId: pulumi.String(\"centos_7_04_64_20G_alibase_201701015.vhd\"),\nInstanceName: pulumi.String(name),\nVswitchId: vswitch.ID(),\nInternetMaxBandwidthOut: pulumi.Int(10),\n})\nif err != nil {\nreturn err\n}\nattachment, err := vpc.NewNetworkInterfaceAttachment(ctx, \"attachment\", \u0026vpc.NetworkInterfaceAttachmentArgs{\nInstanceId: instance.ID(),\nNetworkInterfaceId: interface.ID(),\n})\nif err != nil {\nreturn err\n}\ndefaultGetNetworkInterfaces := ecs.GetNetworkInterfacesOutput(ctx, ecs.GetNetworkInterfacesOutputArgs{\nIds: pulumi.StringArray{\nattachment.NetworkInterfaceId,\n},\nNameRegex: pulumi.String(name),\nTags: pulumi.StringMap{\n\"TF-VER\": pulumi.String(\"0.11.3\"),\n},\nVpcId: vpc.ID(),\nVswitchId: vswitch.ID(),\nPrivateIp: pulumi.String(\"192.168.0.2\"),\nSecurityGroupId: group.ID(),\nType: pulumi.String(\"Secondary\"),\nInstanceId: instance.ID(),\n}, nil);\nctx.Export(\"eni0Name\", defaultGetNetworkInterfaces.ApplyT(func(defaultGetNetworkInterfaces ecs.GetNetworkInterfacesResult) (*string, error) {\nreturn \u0026defaultGetNetworkInterfaces.Interfaces[0].Name, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.vpc.NetworkInterface;\nimport com.pulumi.alicloud.vpc.NetworkInterfaceArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.vpc.NetworkInterfaceAttachment;\nimport com.pulumi.alicloud.vpc.NetworkInterfaceAttachmentArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetNetworkInterfacesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"networkInterfacesName\");\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"192.168.0.0/24\")\n            .build());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"192.168.0.0/24\")\n            .availabilityZone(default_.zones()[0].id())\n            .vpcId(vpc.id())\n            .build());\n\n        var group = new SecurityGroup(\"group\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(vpc.id())\n            .build());\n\n        var interface_ = new NetworkInterface(\"interface\", NetworkInterfaceArgs.builder()\n            .name(String.format(\"%s%d\", name))\n            .vswitchId(vswitch.id())\n            .securityGroups(group.id())\n            .description(\"Basic test\")\n            .privateIp(\"192.168.0.2\")\n            .tags(Map.of(\"TF-VER\", \"0.11.3\"))\n            .build());\n\n        var instance = new Instance(\"instance\", InstanceArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .securityGroups(group.id())\n            .instanceType(\"ecs.e3.xlarge\")\n            .systemDiskCategory(\"cloud_efficiency\")\n            .imageId(\"centos_7_04_64_20G_alibase_201701015.vhd\")\n            .instanceName(name)\n            .vswitchId(vswitch.id())\n            .internetMaxBandwidthOut(10)\n            .build());\n\n        var attachment = new NetworkInterfaceAttachment(\"attachment\", NetworkInterfaceAttachmentArgs.builder()\n            .instanceId(instance.id())\n            .networkInterfaceId(interface_.id())\n            .build());\n\n        final var defaultGetNetworkInterfaces = EcsFunctions.getNetworkInterfaces(GetNetworkInterfacesArgs.builder()\n            .ids(attachment.networkInterfaceId())\n            .nameRegex(name)\n            .tags(Map.of(\"TF-VER\", \"0.11.3\"))\n            .vpcId(vpc.id())\n            .vswitchId(vswitch.id())\n            .privateIp(\"192.168.0.2\")\n            .securityGroupId(group.id())\n            .type(\"Secondary\")\n            .instanceId(instance.id())\n            .build());\n\n        ctx.export(\"eni0Name\", defaultGetNetworkInterfaces.applyValue(_defaultGetNetworkInterfaces -\u003e _defaultGetNetworkInterfaces.interfaces()[0].name()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: networkInterfacesName\nresources:\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: ${name}\n      cidrBlock: 192.168.0.0/24\n  vswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 192.168.0.0/24\n      availabilityZone: ${default.zones[0].id}\n      vpcId: ${vpc.id}\n  group:\n    type: alicloud:ecs:SecurityGroup\n    properties:\n      name: ${name}\n      vpcId: ${vpc.id}\n  interface:\n    type: alicloud:vpc:NetworkInterface\n    properties:\n      name: ${name}%d\n      vswitchId: ${vswitch.id}\n      securityGroups:\n        - ${group.id}\n      description: Basic test\n      privateIp: 192.168.0.2\n      tags:\n        TF-VER: 0.11.3\n  instance:\n    type: alicloud:ecs:Instance\n    properties:\n      availabilityZone: ${default.zones[0].id}\n      securityGroups:\n        - ${group.id}\n      instanceType: ecs.e3.xlarge\n      systemDiskCategory: cloud_efficiency\n      imageId: centos_7_04_64_20G_alibase_201701015.vhd\n      instanceName: ${name}\n      vswitchId: ${vswitch.id}\n      internetMaxBandwidthOut: 10\n  attachment:\n    type: alicloud:vpc:NetworkInterfaceAttachment\n    properties:\n      instanceId: ${instance.id}\n      networkInterfaceId: ${interface.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworkInterfaces:\n    fn::invoke:\n      function: alicloud:ecs:getNetworkInterfaces\n      arguments:\n        ids:\n          - ${attachment.networkInterfaceId}\n        nameRegex: ${name}\n        tags:\n          TF-VER: 0.11.3\n        vpcId: ${vpc.id}\n        vswitchId: ${vswitch.id}\n        privateIp: 192.168.0.2\n        securityGroupId: ${group.id}\n        type: Secondary\n        instanceId: ${instance.id}\noutputs:\n  eni0Name: ${defaultGetNetworkInterfaces.interfaces[0].name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n##  Argument Reference\n\nThe following arguments are supported:\n\n* \u003cspan pulumi-lang-nodejs=\"`ids`\" pulumi-lang-dotnet=\"`Ids`\" pulumi-lang-go=\"`ids`\" pulumi-lang-python=\"`ids`\" pulumi-lang-yaml=\"`ids`\" pulumi-lang-java=\"`ids`\"\u003e`ids`\u003c/span\u003e - (Optional)  A list of ENI IDs.\n* \u003cspan pulumi-lang-nodejs=\"`nameRegex`\" pulumi-lang-dotnet=\"`NameRegex`\" pulumi-lang-go=\"`nameRegex`\" pulumi-lang-python=\"`name_regex`\" pulumi-lang-yaml=\"`nameRegex`\" pulumi-lang-java=\"`nameRegex`\"\u003e`name_regex`\u003c/span\u003e - (Optional) A regex string to filter results by ENI name.\n* \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e - (Optional) The VPC ID linked to ENIs.\n* \u003cspan pulumi-lang-nodejs=\"`vswitchId`\" pulumi-lang-dotnet=\"`VswitchId`\" pulumi-lang-go=\"`vswitchId`\" pulumi-lang-python=\"`vswitch_id`\" pulumi-lang-yaml=\"`vswitchId`\" pulumi-lang-java=\"`vswitchId`\"\u003e`vswitch_id`\u003c/span\u003e - (Optional) The vSwitch ID linked to ENIs.\n* \u003cspan pulumi-lang-nodejs=\"`privateIp`\" pulumi-lang-dotnet=\"`PrivateIp`\" pulumi-lang-go=\"`privateIp`\" pulumi-lang-python=\"`private_ip`\" pulumi-lang-yaml=\"`privateIp`\" pulumi-lang-java=\"`privateIp`\"\u003e`private_ip`\u003c/span\u003e - (Optional) The primary private IP address of the ENI.\n* \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e - (Optional) The security group ID linked to ENIs.\n* \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e - (Optional) The name of the ENIs.\n* \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e - (Optional) The type of ENIs, Only support for \"Primary\" or \"Secondary\".\n* \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e - (Optional) The ECS instance ID that the ENI is attached to.\n* \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e - (Optional) A map of tags assigned to ENIs.\n* \u003cspan pulumi-lang-nodejs=\"`outputFile`\" pulumi-lang-dotnet=\"`OutputFile`\" pulumi-lang-go=\"`outputFile`\" pulumi-lang-python=\"`output_file`\" pulumi-lang-yaml=\"`outputFile`\" pulumi-lang-java=\"`outputFile`\"\u003e`output_file`\u003c/span\u003e - (Optional) The name of output file that saves the filter results.\n* \u003cspan pulumi-lang-nodejs=\"`resourceGroupId`\" pulumi-lang-dotnet=\"`ResourceGroupId`\" pulumi-lang-go=\"`resourceGroupId`\" pulumi-lang-python=\"`resource_group_id`\" pulumi-lang-yaml=\"`resourceGroupId`\" pulumi-lang-java=\"`resourceGroupId`\"\u003e`resource_group_id`\u003c/span\u003e - (Optional, ForceNew, Available in 1.57.0+) The Id of resource group which the network interface belongs.\n","inputs":{"description":"A collection of arguments for invoking getNetworkInterfaces.\n","properties":{"ids":{"type":"array","items":{"type":"string"}},"instanceId":{"type":"string","description":"ID of the instance that the ENI is attached to.\n"},"name":{"type":"string","description":"Name of the ENI.\n","deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'network_interface_name' instead"},"nameRegex":{"type":"string"},"networkInterfaceName":{"type":"string"},"outputFile":{"type":"string"},"primaryIpAddress":{"type":"string"},"privateIp":{"type":"string","description":"Primary private IP of the ENI.\n","deprecationMessage":"Field 'private_ip' has been deprecated from provider version 1.123.1. New field 'primary_ip_address' instead"},"resourceGroupId":{"type":"string","description":"The Id of resource group.\n"},"securityGroupId":{"type":"string"},"serviceManaged":{"type":"boolean"},"status":{"type":"string","description":"Current status of the ENI.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the ENI.\n"},"type":{"type":"string"},"vpcId":{"type":"string","description":"ID of the VPC that the ENI belongs to.\n"},"vswitchId":{"type":"string","description":"ID of the vSwitch that the ENI is linked to.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNetworkInterfaces.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"description":"ID of the instance that the ENI is attached to.\n","type":"string"},"interfaces":{"description":"A list of ENIs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getNetworkInterfacesInterface:getNetworkInterfacesInterface"},"type":"array"},"name":{"deprecationMessage":"Field 'name' has been deprecated from provider version 1.123.1. New field 'network_interface_name' instead","description":"Name of the ENI.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"networkInterfaceName":{"type":"string"},"outputFile":{"type":"string"},"primaryIpAddress":{"type":"string"},"privateIp":{"deprecationMessage":"Field 'private_ip' has been deprecated from provider version 1.123.1. New field 'primary_ip_address' instead","description":"Primary private IP of the ENI.\n","type":"string"},"resourceGroupId":{"description":"The Id of resource group.\n","type":"string"},"securityGroupId":{"type":"string"},"serviceManaged":{"type":"boolean"},"status":{"description":"Current status of the ENI.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A map of tags assigned to the ENI.\n","type":"object"},"type":{"type":"string"},"vpcId":{"description":"ID of the VPC that the ENI belongs to.\n","type":"string"},"vswitchId":{"description":"ID of the vSwitch that the ENI is linked to.\n","type":"string"}},"required":["ids","interfaces","names","id"],"type":"object"}},"alicloud:ecs/getSecurityGroupRules:getSecurityGroupRules":{"description":"The \u003cspan pulumi-lang-nodejs=\"`alicloud.ecs.getSecurityGroupRules`\" pulumi-lang-dotnet=\"`alicloud.ecs.getSecurityGroupRules`\" pulumi-lang-go=\"`ecs.getSecurityGroupRules`\" pulumi-lang-python=\"`ecs_get_security_group_rules`\" pulumi-lang-yaml=\"`alicloud.ecs.getSecurityGroupRules`\" pulumi-lang-java=\"`alicloud.ecs.getSecurityGroupRules`\"\u003e`alicloud.ecs.getSecurityGroupRules`\u003c/span\u003e data source provides a collection of security permissions of a specific security group.\nEach collection item represents a single \u003cspan pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\"\u003e`ingress`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\"\u003e`egress`\u003c/span\u003e permission rule.\nThe ID of the security group can be provided via a variable or the result from the other data source \u003cspan pulumi-lang-nodejs=\"`alicloud.ecs.getSecurityGroups`\" pulumi-lang-dotnet=\"`alicloud.ecs.getSecurityGroups`\" pulumi-lang-go=\"`ecs.getSecurityGroups`\" pulumi-lang-python=\"`ecs_get_security_groups`\" pulumi-lang-yaml=\"`alicloud.ecs.getSecurityGroups`\" pulumi-lang-java=\"`alicloud.ecs.getSecurityGroups`\"\u003e`alicloud.ecs.getSecurityGroups`\u003c/span\u003e.\n\n## Example Usage\n\nThe following example shows how to obtain details about a security group rule and how to pass its data to an instance at launch time.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst securityGroupId = config.requireObject\u003cany\u003e(\"securityGroupId\");\n// Or get it from the alicloud_security_groups data source.\n// Please note that the data source arguments must be enough to filter results to one security group.\nconst groupsDs = alicloud.ecs.getSecurityGroups({\n    nameRegex: \"api\",\n});\n// Filter the security group rule by group\nconst ingressRulesDs = groupsDs.then(groupsDs =\u003e alicloud.ecs.getSecurityGroupRules({\n    groupId: groupsDs.groups?.[0]?.id,\n    nicType: \"internet\",\n    direction: \"ingress\",\n    ipProtocol: \"tcp\",\n}));\n// Pass port_range to the backend service\nconst backend = new alicloud.ecs.Instance(\"backend\", {userData: ingressRulesDs.then(ingressRulesDs =\u003e `config_service.sh --portrange=${ingressRulesDs.rules?.[0]?.portRange}`)});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nsecurity_group_id = config.require_object(\"securityGroupId\")\n# Or get it from the alicloud_security_groups data source.\n# Please note that the data source arguments must be enough to filter results to one security group.\ngroups_ds = alicloud.ecs.get_security_groups(name_regex=\"api\")\n# Filter the security group rule by group\ningress_rules_ds = alicloud.ecs.get_security_group_rules(group_id=groups_ds.groups[0].id,\n    nic_type=\"internet\",\n    direction=\"ingress\",\n    ip_protocol=\"tcp\")\n# Pass port_range to the backend service\nbackend = alicloud.ecs.Instance(\"backend\", user_data=f\"config_service.sh --portrange={ingress_rules_ds.rules[0].port_range}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var securityGroupId = config.RequireObject\u003cdynamic\u003e(\"securityGroupId\");\n    // Or get it from the alicloud_security_groups data source.\n    // Please note that the data source arguments must be enough to filter results to one security group.\n    var groupsDs = AliCloud.Ecs.GetSecurityGroups.Invoke(new()\n    {\n        NameRegex = \"api\",\n    });\n\n    // Filter the security group rule by group\n    var ingressRulesDs = AliCloud.Ecs.GetSecurityGroupRules.Invoke(new()\n    {\n        GroupId = groupsDs.Apply(getSecurityGroupsResult =\u003e getSecurityGroupsResult.Groups[0]?.Id),\n        NicType = \"internet\",\n        Direction = \"ingress\",\n        IpProtocol = \"tcp\",\n    });\n\n    // Pass port_range to the backend service\n    var backend = new AliCloud.Ecs.Instance(\"backend\", new()\n    {\n        UserData = $\"config_service.sh --portrange={ingressRulesDs.Apply(getSecurityGroupRulesResult =\u003e getSecurityGroupRulesResult.Rules[0]?.PortRange)}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsecurityGroupId := cfg.RequireObject(\"securityGroupId\")\n\t\t// Or get it from the alicloud_security_groups data source.\n\t\t// Please note that the data source arguments must be enough to filter results to one security group.\n\t\tgroupsDs, err := ecs.GetSecurityGroups(ctx, \u0026ecs.GetSecurityGroupsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"api\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Filter the security group rule by group\n\t\tingressRulesDs, err := ecs.GetSecurityGroupRules(ctx, \u0026ecs.GetSecurityGroupRulesArgs{\n\t\t\tGroupId:    groupsDs.Groups[0].Id,\n\t\t\tNicType:    pulumi.StringRef(\"internet\"),\n\t\t\tDirection:  pulumi.StringRef(\"ingress\"),\n\t\t\tIpProtocol: pulumi.StringRef(\"tcp\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Pass port_range to the backend service\n\t\t_, err = ecs.NewInstance(ctx, \"backend\", \u0026ecs.InstanceArgs{\n\t\t\tUserData: pulumi.Sprintf(\"config_service.sh --portrange=%v\", ingressRulesDs.Rules[0].PortRange),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetSecurityGroupsArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetSecurityGroupRulesArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var securityGroupId = config.require(\"securityGroupId\");\n        // Or get it from the alicloud_security_groups data source.\n        // Please note that the data source arguments must be enough to filter results to one security group.\n        final var groupsDs = EcsFunctions.getSecurityGroups(GetSecurityGroupsArgs.builder()\n            .nameRegex(\"api\")\n            .build());\n\n        // Filter the security group rule by group\n        final var ingressRulesDs = EcsFunctions.getSecurityGroupRules(GetSecurityGroupRulesArgs.builder()\n            .groupId(groupsDs.groups()[0].id())\n            .nicType(\"internet\")\n            .direction(\"ingress\")\n            .ipProtocol(\"tcp\")\n            .build());\n\n        // Pass port_range to the backend service\n        var backend = new Instance(\"backend\", InstanceArgs.builder()\n            .userData(String.format(\"config_service.sh --portrange=%s\", ingressRulesDs.rules()[0].portRange()))\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  # Get the security group id from a variable\n  securityGroupId:\n    type: dynamic\nresources:\n  # Pass port_range to the backend service\n  backend:\n    type: alicloud:ecs:Instance\n    properties:\n      userData: config_service.sh --portrange=${ingressRulesDs.rules[0].portRange}\nvariables:\n  # Or get it from the alicloud_security_groups data source.\n  # Please note that the data source arguments must be enough to filter results to one security group.\n  groupsDs:\n    fn::invoke:\n      function: alicloud:ecs:getSecurityGroups\n      arguments:\n        nameRegex: api\n  # Filter the security group rule by group\n  ingressRulesDs:\n    fn::invoke:\n      function: alicloud:ecs:getSecurityGroupRules\n      arguments:\n        groupId: ${groupsDs.groups[0].id}\n        nicType: internet\n        direction: ingress\n        ipProtocol: tcp\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSecurityGroupRules.\n","properties":{"direction":{"type":"string","description":"Authorization direction. Valid values are: \u003cspan pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\"\u003e`ingress`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\"\u003e`egress`\u003c/span\u003e.\n"},"groupId":{"type":"string","description":"The ID of the security group that owns the rules.\n"},"ipProtocol":{"type":"string","description":"The IP protocol. Valid values are: \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`icmp`\" pulumi-lang-dotnet=\"`Icmp`\" pulumi-lang-go=\"`icmp`\" pulumi-lang-python=\"`icmp`\" pulumi-lang-yaml=\"`icmp`\" pulumi-lang-java=\"`icmp`\"\u003e`icmp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gre`\" pulumi-lang-dotnet=\"`Gre`\" pulumi-lang-go=\"`gre`\" pulumi-lang-python=\"`gre`\" pulumi-lang-yaml=\"`gre`\" pulumi-lang-java=\"`gre`\"\u003e`gre`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"nicType":{"type":"string","description":"Refers to the network type. Can be either \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e. The default value is \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"policy":{"type":"string","description":"Authorization policy. Can be either \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e. The default value is \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e.\n"}},"type":"object","required":["groupId"]},"outputs":{"description":"A collection of values returned by getSecurityGroupRules.\n","properties":{"direction":{"description":"Authorization direction, \u003cspan pulumi-lang-nodejs=\"`ingress`\" pulumi-lang-dotnet=\"`Ingress`\" pulumi-lang-go=\"`ingress`\" pulumi-lang-python=\"`ingress`\" pulumi-lang-yaml=\"`ingress`\" pulumi-lang-java=\"`ingress`\"\u003e`ingress`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`egress`\" pulumi-lang-dotnet=\"`Egress`\" pulumi-lang-go=\"`egress`\" pulumi-lang-python=\"`egress`\" pulumi-lang-yaml=\"`egress`\" pulumi-lang-java=\"`egress`\"\u003e`egress`\u003c/span\u003e.\n","type":"string"},"groupDesc":{"description":"The description of the security group that owns the rules.\n","type":"string"},"groupId":{"type":"string"},"groupName":{"description":"The name of the security group that owns the rules.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipProtocol":{"description":"The protocol. Can be \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`icmp`\" pulumi-lang-dotnet=\"`Icmp`\" pulumi-lang-go=\"`icmp`\" pulumi-lang-python=\"`icmp`\" pulumi-lang-yaml=\"`icmp`\" pulumi-lang-java=\"`icmp`\"\u003e`icmp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`gre`\" pulumi-lang-dotnet=\"`Gre`\" pulumi-lang-go=\"`gre`\" pulumi-lang-python=\"`gre`\" pulumi-lang-yaml=\"`gre`\" pulumi-lang-java=\"`gre`\"\u003e`gre`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n","type":"string"},"nicType":{"description":"Network type, \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e.\n","type":"string"},"outputFile":{"type":"string"},"policy":{"description":"Authorization policy. Can be either \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n","type":"string"},"rules":{"description":"A list of security group rules. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getSecurityGroupRulesRule:getSecurityGroupRulesRule"},"type":"array"}},"required":["groupDesc","groupId","groupName","rules","id"],"type":"object"}},"alicloud:ecs/getSecurityGroups:getSecurityGroups":{"description":"This data source provides a list of Security Groups in an Alibaba Cloud account according to the specified filters.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Filter security groups and print the results into a file\nconst secGroupsDs = alicloud.ecs.getSecurityGroups({\n    nameRegex: \"^web-\",\n    outputFile: \"web_access.json\",\n});\n// In conjunction with a VPC\nconst primaryVpcDs = new alicloud.vpc.Network(\"primary_vpc_ds\", {});\nconst primarySecGroupsDs = alicloud.ecs.getSecurityGroupsOutput({\n    vpcId: primaryVpcDs.id,\n});\nexport const firstGroupId = primarySecGroupsDs.apply(primarySecGroupsDs =\u003e primarySecGroupsDs.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Filter security groups and print the results into a file\nsec_groups_ds = alicloud.ecs.get_security_groups(name_regex=\"^web-\",\n    output_file=\"web_access.json\")\n# In conjunction with a VPC\nprimary_vpc_ds = alicloud.vpc.Network(\"primary_vpc_ds\")\nprimary_sec_groups_ds = alicloud.ecs.get_security_groups_output(vpc_id=primary_vpc_ds.id)\npulumi.export(\"firstGroupId\", primary_sec_groups_ds.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Filter security groups and print the results into a file\n    var secGroupsDs = AliCloud.Ecs.GetSecurityGroups.Invoke(new()\n    {\n        NameRegex = \"^web-\",\n        OutputFile = \"web_access.json\",\n    });\n\n    // In conjunction with a VPC\n    var primaryVpcDs = new AliCloud.Vpc.Network(\"primary_vpc_ds\");\n\n    var primarySecGroupsDs = AliCloud.Ecs.GetSecurityGroups.Invoke(new()\n    {\n        VpcId = primaryVpcDs.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstGroupId\"] = primarySecGroupsDs.Apply(getSecurityGroupsResult =\u003e getSecurityGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Filter security groups and print the results into a file\n\t\t_, err := ecs.GetSecurityGroups(ctx, \u0026ecs.GetSecurityGroupsArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^web-\"),\n\t\t\tOutputFile: pulumi.StringRef(\"web_access.json\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// In conjunction with a VPC\n\t\tprimaryVpcDs, err := vpc.NewNetwork(ctx, \"primary_vpc_ds\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprimarySecGroupsDs := ecs.GetSecurityGroupsOutput(ctx, ecs.GetSecurityGroupsOutputArgs{\n\t\t\tVpcId: primaryVpcDs.ID(),\n\t\t}, nil)\n\t\tctx.Export(\"firstGroupId\", primarySecGroupsDs.ApplyT(func(primarySecGroupsDs ecs.GetSecurityGroupsResult) (*string, error) {\n\t\t\treturn \u0026primarySecGroupsDs.Groups[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetSecurityGroupsArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Filter security groups and print the results into a file\n        final var secGroupsDs = EcsFunctions.getSecurityGroups(GetSecurityGroupsArgs.builder()\n            .nameRegex(\"^web-\")\n            .outputFile(\"web_access.json\")\n            .build());\n\n        // In conjunction with a VPC\n        var primaryVpcDs = new Network(\"primaryVpcDs\");\n\n        final var primarySecGroupsDs = EcsFunctions.getSecurityGroups(GetSecurityGroupsArgs.builder()\n            .vpcId(primaryVpcDs.id())\n            .build());\n\n        ctx.export(\"firstGroupId\", primarySecGroupsDs.applyValue(_primarySecGroupsDs -\u003e _primarySecGroupsDs.groups()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  # In conjunction with a VPC\n  primaryVpcDs:\n    type: alicloud:vpc:Network\n    name: primary_vpc_ds\nvariables:\n  # Filter security groups and print the results into a file\n  secGroupsDs:\n    fn::invoke:\n      function: alicloud:ecs:getSecurityGroups\n      arguments:\n        nameRegex: ^web-\n        outputFile: web_access.json\n  primarySecGroupsDs:\n    fn::invoke:\n      function: alicloud:ecs:getSecurityGroups\n      arguments:\n        vpcId: ${primaryVpcDs.id}\noutputs:\n  firstGroupId: ${primarySecGroupsDs.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSecurityGroups.\n","properties":{"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Security Group IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter the resulting security groups by their names.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the\u003cspan pulumi-lang-nodejs=\" securityGroup \" pulumi-lang-dotnet=\" SecurityGroup \" pulumi-lang-go=\" securityGroup \" pulumi-lang-python=\" security_group \" pulumi-lang-yaml=\" securityGroup \" pulumi-lang-java=\" securityGroup \"\u003e security_group \u003c/span\u003ebelongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the ECS instances. It must be in the format:\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst taggedSecurityGroups = alicloud.ecs.getSecurityGroups({\n    tags: {\n        tagKey1: \"tagValue1\",\n        tagKey2: \"tagValue2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ntagged_security_groups = alicloud.ecs.get_security_groups(tags={\n    \"tagKey1\": \"tagValue1\",\n    \"tagKey2\": \"tagValue2\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var taggedSecurityGroups = AliCloud.Ecs.GetSecurityGroups.Invoke(new()\n    {\n        Tags = \n        {\n            { \"tagKey1\", \"tagValue1\" },\n            { \"tagKey2\", \"tagValue2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.GetSecurityGroups(ctx, \u0026ecs.GetSecurityGroupsArgs{\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"tagKey1\": \"tagValue1\",\n\t\t\t\t\"tagKey2\": \"tagValue2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetSecurityGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var taggedSecurityGroups = EcsFunctions.getSecurityGroups(GetSecurityGroupsArgs.builder()\n            .tags(Map.ofEntries(\n                Map.entry(\"tagKey1\", \"tagValue1\"),\n                Map.entry(\"tagKey2\", \"tagValue2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  taggedSecurityGroups:\n    fn::invoke:\n      function: alicloud:ecs:getSecurityGroups\n      arguments:\n        tags:\n          tagKey1: tagValue1\n          tagKey2: tagValue2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n"},"vpcId":{"type":"string","description":"Used to retrieve security groups that belong to the specified VPC ID.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSecurityGroups.\n","properties":{"enableDetails":{"type":"boolean"},"groups":{"description":"A list of Security Groups. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getSecurityGroupsGroup:getSecurityGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Security Group IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Security Group names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"description":"The Id of resource group which the\u003cspan pulumi-lang-nodejs=\" securityGroup \" pulumi-lang-dotnet=\" SecurityGroup \" pulumi-lang-go=\" securityGroup \" pulumi-lang-python=\" security_group \" pulumi-lang-yaml=\" securityGroup \" pulumi-lang-java=\" securityGroup \"\u003e security_group \u003c/span\u003ebelongs.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A map of tags assigned to the ECS instance.\n","type":"object"},"totalCount":{"type":"integer"},"vpcId":{"description":"The ID of the VPC that owns the security group.\n","type":"string"}},"required":["groups","ids","names","totalCount","id"],"type":"object"}},"alicloud:ecs/getSnapshots:getSnapshots":{"description":"\u003e **DEPRECATED:** This datasource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.ecs.getEcsSnapshots \" pulumi-lang-dotnet=\" alicloud.ecs.getEcsSnapshots \" pulumi-lang-go=\" ecs.getEcsSnapshots \" pulumi-lang-python=\" ecs_get_ecs_snapshots \" pulumi-lang-yaml=\" alicloud.ecs.getEcsSnapshots \" pulumi-lang-java=\" alicloud.ecs.getEcsSnapshots \"\u003e alicloud.ecs.getEcsSnapshots \u003c/span\u003efrom version 1.120.0.\n\nUse this data source to get a list of snapshot according to the specified filters in an Alibaba Cloud account.\n\nFor information about snapshot and how to use it, see [Snapshot](https://www.alibabacloud.com/help/doc-detail/25460.html).\n\n\u003e **NOTE:**  Available in 1.40.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst snapshots = alicloud.ecs.getSnapshots({\n    ids: [\"s-123456890abcdef\"],\n    nameRegex: \"tf-testAcc-snapshot\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nsnapshots = alicloud.ecs.get_snapshots(ids=[\"s-123456890abcdef\"],\n    name_regex=\"tf-testAcc-snapshot\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var snapshots = AliCloud.Ecs.GetSnapshots.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"s-123456890abcdef\",\n        },\n        NameRegex = \"tf-testAcc-snapshot\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.GetSnapshots(ctx, \u0026ecs.GetSnapshotsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"s-123456890abcdef\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"tf-testAcc-snapshot\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetSnapshotsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var snapshots = EcsFunctions.getSnapshots(GetSnapshotsArgs.builder()\n            .ids(\"s-123456890abcdef\")\n            .nameRegex(\"tf-testAcc-snapshot\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  snapshots:\n    fn::invoke:\n      function: alicloud:ecs:getSnapshots\n      arguments:\n        ids:\n          - s-123456890abcdef\n        nameRegex: tf-testAcc-snapshot\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n##  Argument Reference\n\nThe following arguments are supported:\n\n* \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e - (Optional) The specified instance ID.\n* \u003cspan pulumi-lang-nodejs=\"`diskId`\" pulumi-lang-dotnet=\"`DiskId`\" pulumi-lang-go=\"`diskId`\" pulumi-lang-python=\"`disk_id`\" pulumi-lang-yaml=\"`diskId`\" pulumi-lang-java=\"`diskId`\"\u003e`disk_id`\u003c/span\u003e - (Optional) The specified disk ID.\n* \u003cspan pulumi-lang-nodejs=\"`encrypted`\" pulumi-lang-dotnet=\"`Encrypted`\" pulumi-lang-go=\"`encrypted`\" pulumi-lang-python=\"`encrypted`\" pulumi-lang-yaml=\"`encrypted`\" pulumi-lang-java=\"`encrypted`\"\u003e`encrypted`\u003c/span\u003e - (Optional) Queries the encrypted snapshots. Optional values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e: Encrypted snapshots. \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e: No encryption attribute limit. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n* \u003cspan pulumi-lang-nodejs=\"`ids`\" pulumi-lang-dotnet=\"`Ids`\" pulumi-lang-go=\"`ids`\" pulumi-lang-python=\"`ids`\" pulumi-lang-yaml=\"`ids`\" pulumi-lang-java=\"`ids`\"\u003e`ids`\u003c/span\u003e - (Optional)  A list of snapshot IDs.\n* \u003cspan pulumi-lang-nodejs=\"`nameRegex`\" pulumi-lang-dotnet=\"`NameRegex`\" pulumi-lang-go=\"`nameRegex`\" pulumi-lang-python=\"`name_regex`\" pulumi-lang-yaml=\"`nameRegex`\" pulumi-lang-java=\"`nameRegex`\"\u003e`name_regex`\u003c/span\u003e - (Optional) A regex string to filter results by snapshot name.\n* \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e - (Optional) The specified snapshot status. Default value: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e. Optional values:\n  * progressing: The snapshots are being created.\n  * accomplished: The snapshots are ready to use.\n  * failed: The snapshot creation failed.\n  * all: All status.\n* \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e - (Optional) The snapshot category. Default value: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e. Optional values:\n  * auto: Auto snapshots.\n  * user: Manual snapshots.\n  * all: Auto and manual snapshots.\n* \u003cspan pulumi-lang-nodejs=\"`sourceDiskType`\" pulumi-lang-dotnet=\"`SourceDiskType`\" pulumi-lang-go=\"`sourceDiskType`\" pulumi-lang-python=\"`source_disk_type`\" pulumi-lang-yaml=\"`sourceDiskType`\" pulumi-lang-java=\"`sourceDiskType`\"\u003e`source_disk_type`\u003c/span\u003e - (Optional) The type of source disk:\n  * System: The snapshots are created for system disks.\n  * Data: The snapshots are created for data disks.\n* \u003cspan pulumi-lang-nodejs=\"`usage`\" pulumi-lang-dotnet=\"`Usage`\" pulumi-lang-go=\"`usage`\" pulumi-lang-python=\"`usage`\" pulumi-lang-yaml=\"`usage`\" pulumi-lang-java=\"`usage`\"\u003e`usage`\u003c/span\u003e - (Optional) The usage of the snapshot:\n  * image: The snapshots are used to create custom images.\n  * disk: The snapshots are used to CreateDisk.\n  * mage_disk: The snapshots are used to create custom images and data disks.\n  * none: The snapshots are not used yet.\n* \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e - (Optional) A map of tags assigned to snapshots.\n* \u003cspan pulumi-lang-nodejs=\"`outputFile`\" pulumi-lang-dotnet=\"`OutputFile`\" pulumi-lang-go=\"`outputFile`\" pulumi-lang-python=\"`output_file`\" pulumi-lang-yaml=\"`outputFile`\" pulumi-lang-java=\"`outputFile`\"\u003e`output_file`\u003c/span\u003e - (Optional) The name of output file that saves the filter results.\n","inputs":{"description":"A collection of arguments for invoking getSnapshots.\n","properties":{"category":{"type":"string"},"dryRun":{"type":"boolean"},"encrypted":{"type":"boolean","description":"Whether the snapshot is encrypted or not.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of snapshot IDs.\n"},"kmsKeyId":{"type":"string"},"nameRegex":{"type":"string"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"},"snapshotLinkId":{"type":"string"},"snapshotName":{"type":"string"},"snapshotType":{"type":"string"},"sourceDiskType":{"type":"string","description":"Source disk attribute. Value range: `System`,`Data`.\n"},"status":{"type":"string","description":"The snapshot status. Value range: \u003cspan pulumi-lang-nodejs=\"`progressing`\" pulumi-lang-dotnet=\"`Progressing`\" pulumi-lang-go=\"`progressing`\" pulumi-lang-python=\"`progressing`\" pulumi-lang-yaml=\"`progressing`\" pulumi-lang-java=\"`progressing`\"\u003e`progressing`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`accomplished`\" pulumi-lang-dotnet=\"`Accomplished`\" pulumi-lang-go=\"`accomplished`\" pulumi-lang-python=\"`accomplished`\" pulumi-lang-yaml=\"`accomplished`\" pulumi-lang-java=\"`accomplished`\"\u003e`accomplished`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`failed`\" pulumi-lang-dotnet=\"`Failed`\" pulumi-lang-go=\"`failed`\" pulumi-lang-python=\"`failed`\" pulumi-lang-yaml=\"`failed`\" pulumi-lang-java=\"`failed`\"\u003e`failed`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the snapshot.\n"},"type":{"type":"string"},"usage":{"type":"string","description":"Whether the snapshots are used to create resources or not. Value range: \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disk`\" pulumi-lang-dotnet=\"`Disk`\" pulumi-lang-go=\"`disk`\" pulumi-lang-python=\"`disk`\" pulumi-lang-yaml=\"`disk`\" pulumi-lang-java=\"`disk`\"\u003e`disk`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`imageDisk`\" pulumi-lang-dotnet=\"`ImageDisk`\" pulumi-lang-go=\"`imageDisk`\" pulumi-lang-python=\"`image_disk`\" pulumi-lang-yaml=\"`imageDisk`\" pulumi-lang-java=\"`imageDisk`\"\u003e`image_disk`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSnapshots.\n","properties":{"category":{"type":"string"},"dryRun":{"type":"boolean"},"encrypted":{"description":"Whether the snapshot is encrypted or not.\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of snapshot IDs.\n","items":{"type":"string"},"type":"array"},"kmsKeyId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of snapshots names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"},"snapshotLinkId":{"type":"string"},"snapshotName":{"type":"string"},"snapshotType":{"type":"string"},"snapshots":{"description":"A list of snapshots. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ecs/getSnapshotsSnapshot:getSnapshotsSnapshot"},"type":"array"},"sourceDiskType":{"description":"Source disk attribute. Value range: `System`,`Data`.\n","type":"string"},"status":{"description":"The snapshot status. Value range: \u003cspan pulumi-lang-nodejs=\"`progressing`\" pulumi-lang-dotnet=\"`Progressing`\" pulumi-lang-go=\"`progressing`\" pulumi-lang-python=\"`progressing`\" pulumi-lang-yaml=\"`progressing`\" pulumi-lang-java=\"`progressing`\"\u003e`progressing`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`accomplished`\" pulumi-lang-dotnet=\"`Accomplished`\" pulumi-lang-go=\"`accomplished`\" pulumi-lang-python=\"`accomplished`\" pulumi-lang-yaml=\"`accomplished`\" pulumi-lang-java=\"`accomplished`\"\u003e`accomplished`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`failed`\" pulumi-lang-dotnet=\"`Failed`\" pulumi-lang-go=\"`failed`\" pulumi-lang-python=\"`failed`\" pulumi-lang-yaml=\"`failed`\" pulumi-lang-java=\"`failed`\"\u003e`failed`\u003c/span\u003e.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A map of tags assigned to the snapshot.\n","type":"object"},"type":{"type":"string"},"usage":{"description":"Whether the snapshots are used to create resources or not. Value range: \u003cspan pulumi-lang-nodejs=\"`image`\" pulumi-lang-dotnet=\"`Image`\" pulumi-lang-go=\"`image`\" pulumi-lang-python=\"`image`\" pulumi-lang-yaml=\"`image`\" pulumi-lang-java=\"`image`\"\u003e`image`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disk`\" pulumi-lang-dotnet=\"`Disk`\" pulumi-lang-go=\"`disk`\" pulumi-lang-python=\"`disk`\" pulumi-lang-yaml=\"`disk`\" pulumi-lang-java=\"`disk`\"\u003e`disk`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`imageDisk`\" pulumi-lang-dotnet=\"`ImageDisk`\" pulumi-lang-go=\"`imageDisk`\" pulumi-lang-python=\"`image_disk`\" pulumi-lang-yaml=\"`imageDisk`\" pulumi-lang-java=\"`imageDisk`\"\u003e`image_disk`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n","type":"string"}},"required":["ids","names","snapshots","id"],"type":"object"}},"alicloud:edas/getApplications:getApplications":{"description":"This data source provides a list of EDAS application in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available in 1.82.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst applications = alicloud.edas.getApplications({\n    ids: [\"xxx\"],\n    outputFile: \"application.txt\",\n});\nexport const firstApplicationName = applications.then(applications =\u003e applications.applications?.[0]?.appName);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\napplications = alicloud.edas.get_applications(ids=[\"xxx\"],\n    output_file=\"application.txt\")\npulumi.export(\"firstApplicationName\", applications.applications[0].app_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var applications = AliCloud.Edas.GetApplications.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"xxx\",\n        },\n        OutputFile = \"application.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstApplicationName\"] = applications.Apply(getApplicationsResult =\u003e getApplicationsResult.Applications[0]?.AppName),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/edas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapplications, err := edas.GetApplications(ctx, \u0026edas.GetApplicationsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"xxx\",\n\t\t\t},\n\t\t\tOutputFile: pulumi.StringRef(\"application.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstApplicationName\", applications.Applications[0].AppName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.edas.EdasFunctions;\nimport com.pulumi.alicloud.edas.inputs.GetApplicationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var applications = EdasFunctions.getApplications(GetApplicationsArgs.builder()\n            .ids(\"xxx\")\n            .outputFile(\"application.txt\")\n            .build());\n\n        ctx.export(\"firstApplicationName\", applications.applications()[0].appName());\n    }\n}\n```\n```yaml\nvariables:\n  applications:\n    fn::invoke:\n      function: alicloud:edas:getApplications\n      arguments:\n        ids:\n          - xxx\n        outputFile: application.txt\noutputs:\n  firstApplicationName: ${applications.applications[0].appName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getApplications.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"An ids string to filter results by the application id.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by the application name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getApplications.\n","properties":{"applications":{"description":"A list of applications.\n","items":{"$ref":"#/types/alicloud:edas/getApplicationsApplication:getApplicationsApplication"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of application IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of applications names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["applications","ids","names","id"],"type":"object"}},"alicloud:edas/getClusters:getClusters":{"description":"This data source provides a list of EDAS clusters in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available in 1.82.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst clusters = alicloud.edas.getClusters({\n    logicalRegionId: \"cn-shenzhen:xxx\",\n    ids: [\"addfs-dfsasd\"],\n    outputFile: \"clusters.txt\",\n});\nexport const firstClusterName = clustersAlicloudAlikafkaConsumerGroups.clusters[0].clusterName;\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nclusters = alicloud.edas.get_clusters(logical_region_id=\"cn-shenzhen:xxx\",\n    ids=[\"addfs-dfsasd\"],\n    output_file=\"clusters.txt\")\npulumi.export(\"firstClusterName\", clusters_alicloud_alikafka_consumer_groups[\"clusters\"][0][\"clusterName\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var clusters = AliCloud.Edas.GetClusters.Invoke(new()\n    {\n        LogicalRegionId = \"cn-shenzhen:xxx\",\n        Ids = new[]\n        {\n            \"addfs-dfsasd\",\n        },\n        OutputFile = \"clusters.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstClusterName\"] = clustersAlicloudAlikafkaConsumerGroups.Clusters[0].ClusterName,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/edas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edas.GetClusters(ctx, \u0026edas.GetClustersArgs{\n\t\t\tLogicalRegionId: \"cn-shenzhen:xxx\",\n\t\t\tIds: []string{\n\t\t\t\t\"addfs-dfsasd\",\n\t\t\t},\n\t\t\tOutputFile: pulumi.StringRef(\"clusters.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstClusterName\", clustersAlicloudAlikafkaConsumerGroups.Clusters[0].ClusterName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.edas.EdasFunctions;\nimport com.pulumi.alicloud.edas.inputs.GetClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var clusters = EdasFunctions.getClusters(GetClustersArgs.builder()\n            .logicalRegionId(\"cn-shenzhen:xxx\")\n            .ids(\"addfs-dfsasd\")\n            .outputFile(\"clusters.txt\")\n            .build());\n\n        ctx.export(\"firstClusterName\", clustersAlicloudAlikafkaConsumerGroups.clusters()[0].clusterName());\n    }\n}\n```\n```yaml\nvariables:\n  clusters:\n    fn::invoke:\n      function: alicloud:edas:getClusters\n      arguments:\n        logicalRegionId: cn-shenzhen:xxx\n        ids:\n          - addfs-dfsasd\n        outputFile: clusters.txt\noutputs:\n  firstClusterName: ${clustersAlicloudAlikafkaConsumerGroups.clusters[0].clusterName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getClusters.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"An ids string to filter results by the cluster id.\n"},"logicalRegionId":{"type":"string","description":"ID of the namespace in EDAS.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by the cluster name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["logicalRegionId"]},"outputs":{"description":"A collection of values returned by getClusters.\n","properties":{"clusters":{"description":"A list of clusters.\n","items":{"$ref":"#/types/alicloud:edas/getClustersCluster:getClustersCluster"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of cluster IDs.\n","items":{"type":"string"},"type":"array"},"logicalRegionId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of cluster names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["clusters","ids","logicalRegionId","names","id"],"type":"object"}},"alicloud:edas/getDeployGroups:getDeployGroups":{"description":"This data source provides a list of EDAS deploy groups in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available in 1.82.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nvariables:\n  groups:\n    fn::invoke:\n      function: alicloud:edas:getDeployGroups\n      arguments:\n        appId: xxx\n        ids:\n          - xxx\n        outputFile: groups.txt\noutputs:\n  firstGroupName: ${groups.groups[0].groupName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDeployGroups.\n","properties":{"appId":{"type":"string","description":"ID of the EDAS application.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by the deploy group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["appId"]},"outputs":{"description":"A collection of values returned by getDeployGroups.\n","properties":{"appId":{"description":"The ID of the application that you want to deploy.\n","type":"string"},"groups":{"description":"A list of consumer group ids.\n","items":{"$ref":"#/types/alicloud:edas/getDeployGroupsGroup:getDeployGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of deploy group names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["appId","groups","names","id"],"type":"object"}},"alicloud:edas/getNamespaces:getNamespaces":{"description":"This data source provides the Edas Namespaces of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.173.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.edas.getNamespaces({\n    ids: [\"example_id\"],\n});\nexport const edasNamespaceId1 = ids.then(ids =\u003e ids.namespaces?.[0]?.id);\nconst nameRegex = alicloud.edas.getNamespaces({\n    nameRegex: \"^my-Namespace\",\n});\nexport const edasNamespaceId2 = nameRegex.then(nameRegex =\u003e nameRegex.namespaces?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.edas.get_namespaces(ids=[\"example_id\"])\npulumi.export(\"edasNamespaceId1\", ids.namespaces[0].id)\nname_regex = alicloud.edas.get_namespaces(name_regex=\"^my-Namespace\")\npulumi.export(\"edasNamespaceId2\", name_regex.namespaces[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Edas.GetNamespaces.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Edas.GetNamespaces.Invoke(new()\n    {\n        NameRegex = \"^my-Namespace\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"edasNamespaceId1\"] = ids.Apply(getNamespacesResult =\u003e getNamespacesResult.Namespaces[0]?.Id),\n        [\"edasNamespaceId2\"] = nameRegex.Apply(getNamespacesResult =\u003e getNamespacesResult.Namespaces[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/edas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := edas.GetNamespaces(ctx, \u0026edas.GetNamespacesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"edasNamespaceId1\", ids.Namespaces[0].Id)\n\t\tnameRegex, err := edas.GetNamespaces(ctx, \u0026edas.GetNamespacesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Namespace\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"edasNamespaceId2\", nameRegex.Namespaces[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.edas.EdasFunctions;\nimport com.pulumi.alicloud.edas.inputs.GetNamespacesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EdasFunctions.getNamespaces(GetNamespacesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"edasNamespaceId1\", ids.namespaces()[0].id());\n        final var nameRegex = EdasFunctions.getNamespaces(GetNamespacesArgs.builder()\n            .nameRegex(\"^my-Namespace\")\n            .build());\n\n        ctx.export(\"edasNamespaceId2\", nameRegex.namespaces()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:edas:getNamespaces\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:edas:getNamespaces\n      arguments:\n        nameRegex: ^my-Namespace\noutputs:\n  edasNamespaceId1: ${ids.namespaces[0].id}\n  edasNamespaceId2: ${nameRegex.namespaces[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNamespaces.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Namespace IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Namespace name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNamespaces.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"namespaces":{"items":{"$ref":"#/types/alicloud:edas/getNamespacesNamespace:getNamespacesNamespace"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","names","namespaces","id"],"type":"object"}},"alicloud:edas/getService:getService":{"description":"Using this data source can open EDAS service automatically. If the service has been opened, it will return opened.\n\nFor information about EDAS and how to use it, see [What is EDAS](https://www.alibabacloud.com/help/product/29500.htm).\n\n\u003e **NOTE:** Available in v1.98.0+\n\n\u003e **NOTE:** The EDAS service is not support to be open automatically in the international site.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.edas.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.edas.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Edas.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/edas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edas.GetService(ctx, \u0026edas.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.edas.EdasFunctions;\nimport com.pulumi.alicloud.edas.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = EdasFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:edas:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: \"On\" or \"Off\". Default to \"Off\".\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the EDAS service that means you have read and agreed the [EDAS Terms of Service](https://help.aliyun.com/document_detail/44633.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:eds/getAdConnectorDirectories:getAdConnectorDirectories":{"description":"This data source provides the Ecd Ad Connector Directories of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.174.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.eds.getAdConnectorDirectories({\n    ids: [\"example_id\"],\n});\nexport const ecdAdConnectorDirectoryId1 = ids.then(ids =\u003e ids.directories?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.eds.get_ad_connector_directories(ids=[\"example_id\"])\npulumi.export(\"ecdAdConnectorDirectoryId1\", ids.directories[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Eds.GetAdConnectorDirectories.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecdAdConnectorDirectoryId1\"] = ids.Apply(getAdConnectorDirectoriesResult =\u003e getAdConnectorDirectoriesResult.Directories[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := eds.GetAdConnectorDirectories(ctx, \u0026eds.GetAdConnectorDirectoriesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecdAdConnectorDirectoryId1\", ids.Directories[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetAdConnectorDirectoriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EdsFunctions.getAdConnectorDirectories(GetAdConnectorDirectoriesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"ecdAdConnectorDirectoryId1\", ids.directories()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:eds:getAdConnectorDirectories\n      arguments:\n        ids:\n          - example_id\noutputs:\n  ecdAdConnectorDirectoryId1: ${ids.directories[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAdConnectorDirectories.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ad Connector Directory IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Ad Connector Directory name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of directory. Valid values: `REGISTERING`, `REGISTERED`, `DEREGISTERING`, `NEEDCONFIGTRUST`, `CONFIGTRUSTFAILED`, `DEREGISTERED`, `ERROR`, `CONFIGTRUSTING`, `NEEDCONFIGUSER`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAdConnectorDirectories.\n","properties":{"directories":{"items":{"$ref":"#/types/alicloud:eds/getAdConnectorDirectoriesDirectory:getAdConnectorDirectoriesDirectory"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["directories","ids","names","id"],"type":"object"}},"alicloud:eds/getAdConnectorOfficeSites:getAdConnectorOfficeSites":{"description":"This data source provides the Ecd Ad Connector Office Sites of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.176.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.eds.getAdConnectorOfficeSites({});\nexport const ecdAdConnectorOfficeSiteId1 = ids.then(ids =\u003e ids.sites?.[0]?.id);\nconst nameRegex = alicloud.eds.getAdConnectorOfficeSites({\n    nameRegex: \"^my-AdConnectorOfficeSite\",\n});\nexport const ecdAdConnectorOfficeSiteId2 = nameRegex.then(nameRegex =\u003e nameRegex.sites?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.eds.get_ad_connector_office_sites()\npulumi.export(\"ecdAdConnectorOfficeSiteId1\", ids.sites[0].id)\nname_regex = alicloud.eds.get_ad_connector_office_sites(name_regex=\"^my-AdConnectorOfficeSite\")\npulumi.export(\"ecdAdConnectorOfficeSiteId2\", name_regex.sites[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Eds.GetAdConnectorOfficeSites.Invoke();\n\n    var nameRegex = AliCloud.Eds.GetAdConnectorOfficeSites.Invoke(new()\n    {\n        NameRegex = \"^my-AdConnectorOfficeSite\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecdAdConnectorOfficeSiteId1\"] = ids.Apply(getAdConnectorOfficeSitesResult =\u003e getAdConnectorOfficeSitesResult.Sites[0]?.Id),\n        [\"ecdAdConnectorOfficeSiteId2\"] = nameRegex.Apply(getAdConnectorOfficeSitesResult =\u003e getAdConnectorOfficeSitesResult.Sites[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := eds.GetAdConnectorOfficeSites(ctx, \u0026eds.GetAdConnectorOfficeSitesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecdAdConnectorOfficeSiteId1\", ids.Sites[0].Id)\n\t\tnameRegex, err := eds.GetAdConnectorOfficeSites(ctx, \u0026eds.GetAdConnectorOfficeSitesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-AdConnectorOfficeSite\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecdAdConnectorOfficeSiteId2\", nameRegex.Sites[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetAdConnectorOfficeSitesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EdsFunctions.getAdConnectorOfficeSites(GetAdConnectorOfficeSitesArgs.builder()\n            .build());\n\n        ctx.export(\"ecdAdConnectorOfficeSiteId1\", ids.sites()[0].id());\n        final var nameRegex = EdsFunctions.getAdConnectorOfficeSites(GetAdConnectorOfficeSitesArgs.builder()\n            .nameRegex(\"^my-AdConnectorOfficeSite\")\n            .build());\n\n        ctx.export(\"ecdAdConnectorOfficeSiteId2\", nameRegex.sites()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:eds:getAdConnectorOfficeSites\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:eds:getAdConnectorOfficeSites\n      arguments:\n        nameRegex: ^my-AdConnectorOfficeSite\noutputs:\n  ecdAdConnectorOfficeSiteId1: ${ids.sites[0].id}\n  ecdAdConnectorOfficeSiteId2: ${nameRegex.sites[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAdConnectorOfficeSites.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ad Connector Office Site IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Ad Connector Office Site name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The workspace status. Valid values:\n- `REGISTERING`: The workspace is being registered.\n- `REGISTERED`: The workspace is registered.\n- `DEREGISTERING`: The workspace is being deregistered.\n- `DEREGISTERED`: The workspace is deregistered.\n- `ERROR`: The configurations of the workspace are invalid.\n- `NEEDCONFIGTRUST`: The trust relationship needs to be configured.\n- `NEEDCONFIGUSER`: Users need to be configured.\n- `CONFIGTRUSTING`: The trust relationship is being configured.\n- `CONFIGTRUSTFAILED`: The trust relationship fails to be configured.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAdConnectorOfficeSites.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"sites":{"items":{"$ref":"#/types/alicloud:eds/getAdConnectorOfficeSitesSite:getAdConnectorOfficeSitesSite"},"type":"array"},"status":{"type":"string"}},"required":["ids","names","sites","id"],"type":"object"}},"alicloud:eds/getBundles:getBundles":{"description":"This data source provides the Ecd bundles of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.143.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.eds.getBundles({\n    bundleType: \"SYSTEM\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.eds.get_bundles(bundle_type=\"SYSTEM\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Eds.GetBundles.Invoke(new()\n    {\n        BundleType = \"SYSTEM\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := eds.GetBundles(ctx, \u0026eds.GetBundlesArgs{\n\t\t\tBundleType: pulumi.StringRef(\"SYSTEM\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetBundlesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EdsFunctions.getBundles(GetBundlesArgs.builder()\n            .bundleType(\"SYSTEM\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eds:getBundles\n      arguments:\n        bundleType: SYSTEM\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBundles.\n","properties":{"bundleIds":{"type":"array","items":{"type":"string"}},"bundleType":{"type":"string","description":"The bundle type of  the bundle. Valid values: `SYSTEM`,`CUSTOM`.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Bundle IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Bundle name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBundles.\n","properties":{"bundleIds":{"items":{"type":"string"},"type":"array"},"bundleType":{"type":"string"},"bundles":{"items":{"$ref":"#/types/alicloud:eds/getBundlesBundle:getBundlesBundle"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["bundleIds","bundles","ids","names","id"],"type":"object"}},"alicloud:eds/getCommands:getCommands":{"description":"This data source provides the Ecd Commands of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.146.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst defaultSimpleOfficeSite = new alicloud.eds.SimpleOfficeSite(\"default\", {\n    cidrBlock: \"172.16.0.0/12\",\n    desktopAccessType: \"Internet\",\n    officeSiteName: \"your_office_site_name\",\n});\nconst _default = alicloud.eds.getBundles({\n    bundleType: \"SYSTEM\",\n    nameRegex: \"windows\",\n});\nconst defaultEcdPolicyGroup = new alicloud.eds.EcdPolicyGroup(\"default\", {\n    policyGroupName: \"your_policy_group_name\",\n    clipboard: \"readwrite\",\n    localDrive: \"read\",\n    authorizeAccessPolicyRules: [{\n        description: \"example_value\",\n        cidrIp: \"1.2.3.4/24\",\n    }],\n    authorizeSecurityPolicyRules: [{\n        type: \"inflow\",\n        policy: \"accept\",\n        description: \"example_value\",\n        portRange: \"80/80\",\n        ipProtocol: \"TCP\",\n        priority: \"1\",\n        cidrIp: \"0.0.0.0/0\",\n    }],\n});\nconst defaultDesktop = new alicloud.eds.Desktop(\"default\", {\n    officeSiteId: defaultSimpleOfficeSite.id,\n    policyGroupId: defaultEcdPolicyGroup.id,\n    bundleId: _default.then(_default =\u003e _default.bundles?.[0]?.id),\n    desktopName: name,\n});\nconst defaultCommand = new alicloud.eds.Command(\"default\", {\n    commandContent: \"ipconfig\",\n    commandType: \"RunPowerShellScript\",\n    desktopId: defaultDesktop.id,\n});\nconst ids = alicloud.eds.getCommands({});\nexport const ecdCommandId1 = ids.then(ids =\u003e ids.commands?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault_simple_office_site = alicloud.eds.SimpleOfficeSite(\"default\",\n    cidr_block=\"172.16.0.0/12\",\n    desktop_access_type=\"Internet\",\n    office_site_name=\"your_office_site_name\")\ndefault = alicloud.eds.get_bundles(bundle_type=\"SYSTEM\",\n    name_regex=\"windows\")\ndefault_ecd_policy_group = alicloud.eds.EcdPolicyGroup(\"default\",\n    policy_group_name=\"your_policy_group_name\",\n    clipboard=\"readwrite\",\n    local_drive=\"read\",\n    authorize_access_policy_rules=[{\n        \"description\": \"example_value\",\n        \"cidr_ip\": \"1.2.3.4/24\",\n    }],\n    authorize_security_policy_rules=[{\n        \"type\": \"inflow\",\n        \"policy\": \"accept\",\n        \"description\": \"example_value\",\n        \"port_range\": \"80/80\",\n        \"ip_protocol\": \"TCP\",\n        \"priority\": \"1\",\n        \"cidr_ip\": \"0.0.0.0/0\",\n    }])\ndefault_desktop = alicloud.eds.Desktop(\"default\",\n    office_site_id=default_simple_office_site.id,\n    policy_group_id=default_ecd_policy_group.id,\n    bundle_id=default.bundles[0].id,\n    desktop_name=name)\ndefault_command = alicloud.eds.Command(\"default\",\n    command_content=\"ipconfig\",\n    command_type=\"RunPowerShellScript\",\n    desktop_id=default_desktop.id)\nids = alicloud.eds.get_commands()\npulumi.export(\"ecdCommandId1\", ids.commands[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultSimpleOfficeSite = new AliCloud.Eds.SimpleOfficeSite(\"default\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        DesktopAccessType = \"Internet\",\n        OfficeSiteName = \"your_office_site_name\",\n    });\n\n    var @default = AliCloud.Eds.GetBundles.Invoke(new()\n    {\n        BundleType = \"SYSTEM\",\n        NameRegex = \"windows\",\n    });\n\n    var defaultEcdPolicyGroup = new AliCloud.Eds.EcdPolicyGroup(\"default\", new()\n    {\n        PolicyGroupName = \"your_policy_group_name\",\n        Clipboard = \"readwrite\",\n        LocalDrive = \"read\",\n        AuthorizeAccessPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs\n            {\n                Description = \"example_value\",\n                CidrIp = \"1.2.3.4/24\",\n            },\n        },\n        AuthorizeSecurityPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs\n            {\n                Type = \"inflow\",\n                Policy = \"accept\",\n                Description = \"example_value\",\n                PortRange = \"80/80\",\n                IpProtocol = \"TCP\",\n                Priority = \"1\",\n                CidrIp = \"0.0.0.0/0\",\n            },\n        },\n    });\n\n    var defaultDesktop = new AliCloud.Eds.Desktop(\"default\", new()\n    {\n        OfficeSiteId = defaultSimpleOfficeSite.Id,\n        PolicyGroupId = defaultEcdPolicyGroup.Id,\n        BundleId = @default.Apply(@default =\u003e @default.Apply(getBundlesResult =\u003e getBundlesResult.Bundles[0]?.Id)),\n        DesktopName = name,\n    });\n\n    var defaultCommand = new AliCloud.Eds.Command(\"default\", new()\n    {\n        CommandContent = \"ipconfig\",\n        CommandType = \"RunPowerShellScript\",\n        DesktopId = defaultDesktop.Id,\n    });\n\n    var ids = AliCloud.Eds.GetCommands.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecdCommandId1\"] = ids.Apply(getCommandsResult =\u003e getCommandsResult.Commands[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultSimpleOfficeSite, err := eds.NewSimpleOfficeSite(ctx, \"default\", \u0026eds.SimpleOfficeSiteArgs{\n\t\t\tCidrBlock:         pulumi.String(\"172.16.0.0/12\"),\n\t\t\tDesktopAccessType: pulumi.String(\"Internet\"),\n\t\t\tOfficeSiteName:    pulumi.String(\"your_office_site_name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := eds.GetBundles(ctx, \u0026eds.GetBundlesArgs{\n\t\t\tBundleType: pulumi.StringRef(\"SYSTEM\"),\n\t\t\tNameRegex:  pulumi.StringRef(\"windows\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcdPolicyGroup, err := eds.NewEcdPolicyGroup(ctx, \"default\", \u0026eds.EcdPolicyGroupArgs{\n\t\t\tPolicyGroupName: pulumi.String(\"your_policy_group_name\"),\n\t\t\tClipboard:       pulumi.String(\"readwrite\"),\n\t\t\tLocalDrive:      pulumi.String(\"read\"),\n\t\t\tAuthorizeAccessPolicyRules: eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs{\n\t\t\t\t\tDescription: pulumi.String(\"example_value\"),\n\t\t\t\t\tCidrIp:      pulumi.String(\"1.2.3.4/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAuthorizeSecurityPolicyRules: eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs{\n\t\t\t\t\tType:        pulumi.String(\"inflow\"),\n\t\t\t\t\tPolicy:      pulumi.String(\"accept\"),\n\t\t\t\t\tDescription: pulumi.String(\"example_value\"),\n\t\t\t\t\tPortRange:   pulumi.String(\"80/80\"),\n\t\t\t\t\tIpProtocol:  pulumi.String(\"TCP\"),\n\t\t\t\t\tPriority:    pulumi.String(\"1\"),\n\t\t\t\t\tCidrIp:      pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDesktop, err := eds.NewDesktop(ctx, \"default\", \u0026eds.DesktopArgs{\n\t\t\tOfficeSiteId:  defaultSimpleOfficeSite.ID(),\n\t\t\tPolicyGroupId: defaultEcdPolicyGroup.ID(),\n\t\t\tBundleId:      pulumi.String(_default.Bundles[0].Id),\n\t\t\tDesktopName:   pulumi.Any(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eds.NewCommand(ctx, \"default\", \u0026eds.CommandArgs{\n\t\t\tCommandContent: pulumi.String(\"ipconfig\"),\n\t\t\tCommandType:    pulumi.String(\"RunPowerShellScript\"),\n\t\t\tDesktopId:      defaultDesktop.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids, err := eds.GetCommands(ctx, \u0026eds.GetCommandsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecdCommandId1\", ids.Commands[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.SimpleOfficeSite;\nimport com.pulumi.alicloud.eds.SimpleOfficeSiteArgs;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetBundlesArgs;\nimport com.pulumi.alicloud.eds.EcdPolicyGroup;\nimport com.pulumi.alicloud.eds.EcdPolicyGroupArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.Desktop;\nimport com.pulumi.alicloud.eds.DesktopArgs;\nimport com.pulumi.alicloud.eds.Command;\nimport com.pulumi.alicloud.eds.CommandArgs;\nimport com.pulumi.alicloud.eds.inputs.GetCommandsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultSimpleOfficeSite = new SimpleOfficeSite(\"defaultSimpleOfficeSite\", SimpleOfficeSiteArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .desktopAccessType(\"Internet\")\n            .officeSiteName(\"your_office_site_name\")\n            .build());\n\n        final var default = EdsFunctions.getBundles(GetBundlesArgs.builder()\n            .bundleType(\"SYSTEM\")\n            .nameRegex(\"windows\")\n            .build());\n\n        var defaultEcdPolicyGroup = new EcdPolicyGroup(\"defaultEcdPolicyGroup\", EcdPolicyGroupArgs.builder()\n            .policyGroupName(\"your_policy_group_name\")\n            .clipboard(\"readwrite\")\n            .localDrive(\"read\")\n            .authorizeAccessPolicyRules(EcdPolicyGroupAuthorizeAccessPolicyRuleArgs.builder()\n                .description(\"example_value\")\n                .cidrIp(\"1.2.3.4/24\")\n                .build())\n            .authorizeSecurityPolicyRules(EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs.builder()\n                .type(\"inflow\")\n                .policy(\"accept\")\n                .description(\"example_value\")\n                .portRange(\"80/80\")\n                .ipProtocol(\"TCP\")\n                .priority(\"1\")\n                .cidrIp(\"0.0.0.0/0\")\n                .build())\n            .build());\n\n        var defaultDesktop = new Desktop(\"defaultDesktop\", DesktopArgs.builder()\n            .officeSiteId(defaultSimpleOfficeSite.id())\n            .policyGroupId(defaultEcdPolicyGroup.id())\n            .bundleId(default_.bundles()[0].id())\n            .desktopName(name)\n            .build());\n\n        var defaultCommand = new Command(\"defaultCommand\", CommandArgs.builder()\n            .commandContent(\"ipconfig\")\n            .commandType(\"RunPowerShellScript\")\n            .desktopId(defaultDesktop.id())\n            .build());\n\n        final var ids = EdsFunctions.getCommands(GetCommandsArgs.builder()\n            .build());\n\n        ctx.export(\"ecdCommandId1\", ids.commands()[0].id());\n    }\n}\n```\n```yaml\nresources:\n  defaultSimpleOfficeSite:\n    type: alicloud:eds:SimpleOfficeSite\n    name: default\n    properties:\n      cidrBlock: 172.16.0.0/12\n      desktopAccessType: Internet\n      officeSiteName: your_office_site_name\n  defaultEcdPolicyGroup:\n    type: alicloud:eds:EcdPolicyGroup\n    name: default\n    properties:\n      policyGroupName: your_policy_group_name\n      clipboard: readwrite\n      localDrive: read\n      authorizeAccessPolicyRules:\n        - description: example_value\n          cidrIp: 1.2.3.4/24\n      authorizeSecurityPolicyRules:\n        - type: inflow\n          policy: accept\n          description: example_value\n          portRange: 80/80\n          ipProtocol: TCP\n          priority: '1'\n          cidrIp: 0.0.0.0/0\n  defaultDesktop:\n    type: alicloud:eds:Desktop\n    name: default\n    properties:\n      officeSiteId: ${defaultSimpleOfficeSite.id}\n      policyGroupId: ${defaultEcdPolicyGroup.id}\n      bundleId: ${default.bundles[0].id}\n      desktopName: ${name}\n  defaultCommand:\n    type: alicloud:eds:Command\n    name: default\n    properties:\n      commandContent: ipconfig\n      commandType: RunPowerShellScript\n      desktopId: ${defaultDesktop.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eds:getBundles\n      arguments:\n        bundleType: SYSTEM\n        nameRegex: windows\n  ids:\n    fn::invoke:\n      function: alicloud:eds:getCommands\n      arguments: {}\noutputs:\n  ecdCommandId1: ${ids.commands[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCommands.\n","properties":{"commandType":{"type":"string","description":"The Script Type. Valid values: `RunBatScript`, `RunPowerShellScript`.\n"},"contentEncoding":{"type":"string","description":"That Returns the Data Encoding Method. Valid values: `Base64`, `PlainText`.\n"},"desktopId":{"type":"string","description":"The desktop id of the Desktop.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Command IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"Script Is Executed in the Overall Implementation of the State. Valid values: `Pending`, `Failed`, `PartialFailed`, `Running`, `Stopped`, `Stopping`, `Finished`, `Success`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCommands.\n","properties":{"commandType":{"type":"string"},"commands":{"items":{"$ref":"#/types/alicloud:eds/getCommandsCommand:getCommandsCommand"},"type":"array"},"contentEncoding":{"type":"string"},"desktopId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["commands","ids","id"],"type":"object"}},"alicloud:eds/getCustomProperties:getCustomProperties":{"description":"This data source provides the Ecd Custom Properties of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.176.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.eds.getCustomProperties({\n    ids: [\"example_id\"],\n});\nexport const ecdCustomPropertyId1 = ids.then(ids =\u003e ids.properties?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.eds.get_custom_properties(ids=[\"example_id\"])\npulumi.export(\"ecdCustomPropertyId1\", ids.properties[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Eds.GetCustomProperties.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecdCustomPropertyId1\"] = ids.Apply(getCustomPropertiesResult =\u003e getCustomPropertiesResult.Properties[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := eds.GetCustomProperties(ctx, \u0026eds.GetCustomPropertiesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecdCustomPropertyId1\", ids.Properties[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetCustomPropertiesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EdsFunctions.getCustomProperties(GetCustomPropertiesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"ecdCustomPropertyId1\", ids.properties()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:eds:getCustomProperties\n      arguments:\n        ids:\n          - example_id\noutputs:\n  ecdCustomPropertyId1: ${ids.properties[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCustomProperties.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Custom Property IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCustomProperties.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"properties":{"items":{"$ref":"#/types/alicloud:eds/getCustomPropertiesProperty:getCustomPropertiesProperty"},"type":"array"}},"required":["ids","properties","id"],"type":"object"}},"alicloud:eds/getDesktopTypes:getDesktopTypes":{"description":"This data source provides the Ecd Desktop Types of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.170.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.eds.getDesktopTypes({\n    instanceTypeFamily: \"eds.hf\",\n});\nexport const ecdDesktopTypeId1 = ids.then(ids =\u003e ids.types?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.eds.get_desktop_types(instance_type_family=\"eds.hf\")\npulumi.export(\"ecdDesktopTypeId1\", ids.types[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Eds.GetDesktopTypes.Invoke(new()\n    {\n        InstanceTypeFamily = \"eds.hf\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecdDesktopTypeId1\"] = ids.Apply(getDesktopTypesResult =\u003e getDesktopTypesResult.Types[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := eds.GetDesktopTypes(ctx, \u0026eds.GetDesktopTypesArgs{\n\t\t\tInstanceTypeFamily: pulumi.StringRef(\"eds.hf\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecdDesktopTypeId1\", ids.Types[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetDesktopTypesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EdsFunctions.getDesktopTypes(GetDesktopTypesArgs.builder()\n            .instanceTypeFamily(\"eds.hf\")\n            .build());\n\n        ctx.export(\"ecdDesktopTypeId1\", ids.types()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:eds:getDesktopTypes\n      arguments:\n        instanceTypeFamily: eds.hf\noutputs:\n  ecdDesktopTypeId1: ${ids.types[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDesktopTypes.\n","properties":{"cpuCount":{"type":"integer","description":"The CPU cores.\n"},"gpuCount":{"type":"number","description":"The GPU cores.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Desktop Type IDs.\n"},"instanceTypeFamily":{"type":"string","description":"The Specification family. Valid values: `eds.graphics`, `eds.hf`, `eds.general`, `ecd.graphics`, `ecd.performance`, `ecd.advanced`, `ecd.basic`.\n"},"memorySize":{"type":"integer","description":"The Memory size. Unit: MiB.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `SUFFICIENT`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDesktopTypes.\n","properties":{"cpuCount":{"type":"integer"},"gpuCount":{"type":"number"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceTypeFamily":{"type":"string"},"memorySize":{"type":"integer"},"outputFile":{"type":"string"},"status":{"type":"string"},"types":{"items":{"$ref":"#/types/alicloud:eds/getDesktopTypesType:getDesktopTypesType"},"type":"array"}},"required":["ids","types","id"],"type":"object"}},"alicloud:eds/getDesktops:getDesktops":{"description":"This data source provides the Ecd Desktops of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.144.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst defaultSimpleOfficeSite = new alicloud.eds.SimpleOfficeSite(\"default\", {\n    cidrBlock: \"172.16.0.0/12\",\n    desktopAccessType: \"Internet\",\n    officeSiteName: \"your_office_site_name\",\n});\nconst _default = alicloud.eds.getBundles({\n    bundleType: \"SYSTEM\",\n});\nconst defaultEcdPolicyGroup = new alicloud.eds.EcdPolicyGroup(\"default\", {\n    policyGroupName: \"your_policy_group_name\",\n    clipboard: \"readwrite\",\n    localDrive: \"read\",\n    authorizeAccessPolicyRules: [{\n        description: \"example_value\",\n        cidrIp: \"1.2.3.4/24\",\n    }],\n    authorizeSecurityPolicyRules: [{\n        type: \"inflow\",\n        policy: \"accept\",\n        description: \"example_value\",\n        portRange: \"80/80\",\n        ipProtocol: \"TCP\",\n        priority: \"1\",\n        cidrIp: \"0.0.0.0/0\",\n    }],\n});\nconst defaultUser = new alicloud.eds.User(\"default\", {\n    endUserId: \"your_end_user_id\",\n    email: \"your_email\",\n    phone: \"your_phone\",\n    password: \"your_password\",\n});\nconst defaultDesktop = new alicloud.eds.Desktop(\"default\", {\n    officeSiteId: defaultSimpleOfficeSite.id,\n    policyGroupId: defaultEcdPolicyGroup.id,\n    bundleId: _default.then(_default =\u003e _default.bundles?.[0]?.id),\n    desktopName: \"your_desktop_name\",\n    endUserIds: [defaultUser.id],\n});\nconst ids = alicloud.eds.getDesktopsOutput({\n    ids: [defaultDesktop.id],\n});\nexport const ecdDesktopId1 = ids.apply(ids =\u003e ids.desktops?.[0]?.id);\nconst nameRegex = defaultDesktop.desktopName.apply(desktopName =\u003e alicloud.eds.getDesktopsOutput({\n    nameRegex: desktopName,\n}));\nexport const ecdDesktopId2 = nameRegex.apply(nameRegex =\u003e nameRegex.desktops?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault_simple_office_site = alicloud.eds.SimpleOfficeSite(\"default\",\n    cidr_block=\"172.16.0.0/12\",\n    desktop_access_type=\"Internet\",\n    office_site_name=\"your_office_site_name\")\ndefault = alicloud.eds.get_bundles(bundle_type=\"SYSTEM\")\ndefault_ecd_policy_group = alicloud.eds.EcdPolicyGroup(\"default\",\n    policy_group_name=\"your_policy_group_name\",\n    clipboard=\"readwrite\",\n    local_drive=\"read\",\n    authorize_access_policy_rules=[{\n        \"description\": \"example_value\",\n        \"cidr_ip\": \"1.2.3.4/24\",\n    }],\n    authorize_security_policy_rules=[{\n        \"type\": \"inflow\",\n        \"policy\": \"accept\",\n        \"description\": \"example_value\",\n        \"port_range\": \"80/80\",\n        \"ip_protocol\": \"TCP\",\n        \"priority\": \"1\",\n        \"cidr_ip\": \"0.0.0.0/0\",\n    }])\ndefault_user = alicloud.eds.User(\"default\",\n    end_user_id=\"your_end_user_id\",\n    email=\"your_email\",\n    phone=\"your_phone\",\n    password=\"your_password\")\ndefault_desktop = alicloud.eds.Desktop(\"default\",\n    office_site_id=default_simple_office_site.id,\n    policy_group_id=default_ecd_policy_group.id,\n    bundle_id=default.bundles[0].id,\n    desktop_name=\"your_desktop_name\",\n    end_user_ids=[default_user.id])\nids = alicloud.eds.get_desktops_output(ids=[default_desktop.id])\npulumi.export(\"ecdDesktopId1\", ids.desktops[0].id)\nname_regex = default_desktop.desktop_name.apply(lambda desktop_name: alicloud.eds.get_desktops_output(name_regex=desktop_name))\npulumi.export(\"ecdDesktopId2\", name_regex.desktops[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultSimpleOfficeSite = new AliCloud.Eds.SimpleOfficeSite(\"default\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        DesktopAccessType = \"Internet\",\n        OfficeSiteName = \"your_office_site_name\",\n    });\n\n    var @default = AliCloud.Eds.GetBundles.Invoke(new()\n    {\n        BundleType = \"SYSTEM\",\n    });\n\n    var defaultEcdPolicyGroup = new AliCloud.Eds.EcdPolicyGroup(\"default\", new()\n    {\n        PolicyGroupName = \"your_policy_group_name\",\n        Clipboard = \"readwrite\",\n        LocalDrive = \"read\",\n        AuthorizeAccessPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs\n            {\n                Description = \"example_value\",\n                CidrIp = \"1.2.3.4/24\",\n            },\n        },\n        AuthorizeSecurityPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs\n            {\n                Type = \"inflow\",\n                Policy = \"accept\",\n                Description = \"example_value\",\n                PortRange = \"80/80\",\n                IpProtocol = \"TCP\",\n                Priority = \"1\",\n                CidrIp = \"0.0.0.0/0\",\n            },\n        },\n    });\n\n    var defaultUser = new AliCloud.Eds.User(\"default\", new()\n    {\n        EndUserId = \"your_end_user_id\",\n        Email = \"your_email\",\n        Phone = \"your_phone\",\n        Password = \"your_password\",\n    });\n\n    var defaultDesktop = new AliCloud.Eds.Desktop(\"default\", new()\n    {\n        OfficeSiteId = defaultSimpleOfficeSite.Id,\n        PolicyGroupId = defaultEcdPolicyGroup.Id,\n        BundleId = @default.Apply(@default =\u003e @default.Apply(getBundlesResult =\u003e getBundlesResult.Bundles[0]?.Id)),\n        DesktopName = \"your_desktop_name\",\n        EndUserIds = new[]\n        {\n            defaultUser.Id,\n        },\n    });\n\n    var ids = AliCloud.Eds.GetDesktops.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultDesktop.Id,\n        },\n    });\n\n    var nameRegex = AliCloud.Eds.GetDesktops.Invoke(new()\n    {\n        NameRegex = defaultDesktop.DesktopName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecdDesktopId1\"] = ids.Apply(getDesktopsResult =\u003e getDesktopsResult.Desktops[0]?.Id),\n        [\"ecdDesktopId2\"] = nameRegex.Apply(getDesktopsResult =\u003e getDesktopsResult.Desktops[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultSimpleOfficeSite, err := eds.NewSimpleOfficeSite(ctx, \"default\", \u0026eds.SimpleOfficeSiteArgs{\n\t\t\tCidrBlock:         pulumi.String(\"172.16.0.0/12\"),\n\t\t\tDesktopAccessType: pulumi.String(\"Internet\"),\n\t\t\tOfficeSiteName:    pulumi.String(\"your_office_site_name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := eds.GetBundles(ctx, \u0026eds.GetBundlesArgs{\n\t\t\tBundleType: pulumi.StringRef(\"SYSTEM\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcdPolicyGroup, err := eds.NewEcdPolicyGroup(ctx, \"default\", \u0026eds.EcdPolicyGroupArgs{\n\t\t\tPolicyGroupName: pulumi.String(\"your_policy_group_name\"),\n\t\t\tClipboard:       pulumi.String(\"readwrite\"),\n\t\t\tLocalDrive:      pulumi.String(\"read\"),\n\t\t\tAuthorizeAccessPolicyRules: eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs{\n\t\t\t\t\tDescription: pulumi.String(\"example_value\"),\n\t\t\t\t\tCidrIp:      pulumi.String(\"1.2.3.4/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAuthorizeSecurityPolicyRules: eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs{\n\t\t\t\t\tType:        pulumi.String(\"inflow\"),\n\t\t\t\t\tPolicy:      pulumi.String(\"accept\"),\n\t\t\t\t\tDescription: pulumi.String(\"example_value\"),\n\t\t\t\t\tPortRange:   pulumi.String(\"80/80\"),\n\t\t\t\t\tIpProtocol:  pulumi.String(\"TCP\"),\n\t\t\t\t\tPriority:    pulumi.String(\"1\"),\n\t\t\t\t\tCidrIp:      pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultUser, err := eds.NewUser(ctx, \"default\", \u0026eds.UserArgs{\n\t\t\tEndUserId: pulumi.String(\"your_end_user_id\"),\n\t\t\tEmail:     pulumi.String(\"your_email\"),\n\t\t\tPhone:     pulumi.String(\"your_phone\"),\n\t\t\tPassword:  pulumi.String(\"your_password\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDesktop, err := eds.NewDesktop(ctx, \"default\", \u0026eds.DesktopArgs{\n\t\t\tOfficeSiteId:  defaultSimpleOfficeSite.ID(),\n\t\t\tPolicyGroupId: defaultEcdPolicyGroup.ID(),\n\t\t\tBundleId:      pulumi.String(_default.Bundles[0].Id),\n\t\t\tDesktopName:   pulumi.String(\"your_desktop_name\"),\n\t\t\tEndUserIds: pulumi.StringArray{\n\t\t\t\tdefaultUser.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := eds.GetDesktopsOutput(ctx, eds.GetDesktopsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultDesktop.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"ecdDesktopId1\", ids.ApplyT(func(ids eds.GetDesktopsResult) (*string, error) {\n\t\t\treturn \u0026ids.Desktops[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tnameRegex := defaultDesktop.DesktopName.ApplyT(func(desktopName *string) (eds.GetDesktopsResult, error) {\n\t\t\treturn eds.GetDesktopsResult(interface{}(eds.GetDesktops(ctx, \u0026eds.GetDesktopsArgs{\n\t\t\t\tNameRegex: pulumi.StringRef(pulumi.StringRef(desktopName)),\n\t\t\t}, nil))), nil\n\t\t}).(eds.GetDesktopsResultOutput)\n\t\tctx.Export(\"ecdDesktopId2\", nameRegex.ApplyT(func(nameRegex eds.GetDesktopsResult) (*string, error) {\n\t\t\treturn \u0026nameRegex.Desktops[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.SimpleOfficeSite;\nimport com.pulumi.alicloud.eds.SimpleOfficeSiteArgs;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetBundlesArgs;\nimport com.pulumi.alicloud.eds.EcdPolicyGroup;\nimport com.pulumi.alicloud.eds.EcdPolicyGroupArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.User;\nimport com.pulumi.alicloud.eds.UserArgs;\nimport com.pulumi.alicloud.eds.Desktop;\nimport com.pulumi.alicloud.eds.DesktopArgs;\nimport com.pulumi.alicloud.eds.inputs.GetDesktopsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultSimpleOfficeSite = new SimpleOfficeSite(\"defaultSimpleOfficeSite\", SimpleOfficeSiteArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .desktopAccessType(\"Internet\")\n            .officeSiteName(\"your_office_site_name\")\n            .build());\n\n        final var default = EdsFunctions.getBundles(GetBundlesArgs.builder()\n            .bundleType(\"SYSTEM\")\n            .build());\n\n        var defaultEcdPolicyGroup = new EcdPolicyGroup(\"defaultEcdPolicyGroup\", EcdPolicyGroupArgs.builder()\n            .policyGroupName(\"your_policy_group_name\")\n            .clipboard(\"readwrite\")\n            .localDrive(\"read\")\n            .authorizeAccessPolicyRules(EcdPolicyGroupAuthorizeAccessPolicyRuleArgs.builder()\n                .description(\"example_value\")\n                .cidrIp(\"1.2.3.4/24\")\n                .build())\n            .authorizeSecurityPolicyRules(EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs.builder()\n                .type(\"inflow\")\n                .policy(\"accept\")\n                .description(\"example_value\")\n                .portRange(\"80/80\")\n                .ipProtocol(\"TCP\")\n                .priority(\"1\")\n                .cidrIp(\"0.0.0.0/0\")\n                .build())\n            .build());\n\n        var defaultUser = new User(\"defaultUser\", UserArgs.builder()\n            .endUserId(\"your_end_user_id\")\n            .email(\"your_email\")\n            .phone(\"your_phone\")\n            .password(\"your_password\")\n            .build());\n\n        var defaultDesktop = new Desktop(\"defaultDesktop\", DesktopArgs.builder()\n            .officeSiteId(defaultSimpleOfficeSite.id())\n            .policyGroupId(defaultEcdPolicyGroup.id())\n            .bundleId(default_.bundles()[0].id())\n            .desktopName(\"your_desktop_name\")\n            .endUserIds(defaultUser.id())\n            .build());\n\n        final var ids = EdsFunctions.getDesktops(GetDesktopsArgs.builder()\n            .ids(defaultDesktop.id())\n            .build());\n\n        ctx.export(\"ecdDesktopId1\", ids.applyValue(_ids -\u003e _ids.desktops()[0].id()));\n        final var nameRegex = defaultDesktop.desktopName().applyValue(_desktopName -\u003e EdsFunctions.getDesktops(GetDesktopsArgs.builder()\n            .nameRegex(_desktopName)\n            .build()));\n\n        ctx.export(\"ecdDesktopId2\", nameRegex.applyValue(_nameRegex -\u003e _nameRegex.desktops()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  defaultSimpleOfficeSite:\n    type: alicloud:eds:SimpleOfficeSite\n    name: default\n    properties:\n      cidrBlock: 172.16.0.0/12\n      desktopAccessType: Internet\n      officeSiteName: your_office_site_name\n  defaultEcdPolicyGroup:\n    type: alicloud:eds:EcdPolicyGroup\n    name: default\n    properties:\n      policyGroupName: your_policy_group_name\n      clipboard: readwrite\n      localDrive: read\n      authorizeAccessPolicyRules:\n        - description: example_value\n          cidrIp: 1.2.3.4/24\n      authorizeSecurityPolicyRules:\n        - type: inflow\n          policy: accept\n          description: example_value\n          portRange: 80/80\n          ipProtocol: TCP\n          priority: '1'\n          cidrIp: 0.0.0.0/0\n  defaultDesktop:\n    type: alicloud:eds:Desktop\n    name: default\n    properties:\n      officeSiteId: ${defaultSimpleOfficeSite.id}\n      policyGroupId: ${defaultEcdPolicyGroup.id}\n      bundleId: ${default.bundles[0].id}\n      desktopName: your_desktop_name\n      endUserIds:\n        - ${defaultUser.id}\n  defaultUser:\n    type: alicloud:eds:User\n    name: default\n    properties:\n      endUserId: your_end_user_id\n      email: your_email\n      phone: your_phone\n      password: your_password\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eds:getBundles\n      arguments:\n        bundleType: SYSTEM\n  ids:\n    fn::invoke:\n      function: alicloud:eds:getDesktops\n      arguments:\n        ids:\n          - ${defaultDesktop.id}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:eds:getDesktops\n      arguments:\n        nameRegex: ${defaultDesktop.desktopName}\noutputs:\n  ecdDesktopId1: ${ids.desktops[0].id}\n  ecdDesktopId2: ${nameRegex.desktops[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDesktops.\n","properties":{"desktopName":{"type":"string","description":"The desktop name.\n"},"endUserIds":{"type":"array","items":{"type":"string"}},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Desktop IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Desktop name.\n"},"officeSiteId":{"type":"string","description":"The ID of the Simple Office Site.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"policyGroupId":{"type":"string","description":"The policy group id of the Desktop.\n"},"status":{"type":"string","description":"The status of the Desktop. Valid values: `Deleted`, `Expired`, `Pending`, `Running`, `Starting`, `Stopped`, `Stopping`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDesktops.\n","properties":{"desktopName":{"type":"string"},"desktops":{"items":{"$ref":"#/types/alicloud:eds/getDesktopsDesktop:getDesktopsDesktop"},"type":"array"},"endUserIds":{"items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"officeSiteId":{"type":"string"},"outputFile":{"type":"string"},"policyGroupId":{"type":"string"},"status":{"type":"string"}},"required":["desktops","ids","names","id"],"type":"object"}},"alicloud:eds/getImages:getImages":{"description":"This data source provides the Ecd Images of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.146.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst defaultSimpleOfficeSite = new alicloud.eds.SimpleOfficeSite(\"default\", {\n    cidrBlock: \"172.16.0.0/12\",\n    desktopAccessType: \"Internet\",\n    officeSiteName: \"your_simple_office_site_name\",\n});\nconst _default = alicloud.eds.getBundles({\n    bundleType: \"SYSTEM\",\n});\nconst defaultEcdPolicyGroup = new alicloud.eds.EcdPolicyGroup(\"default\", {\n    policyGroupName: \"your_policy_group_name\",\n    clipboard: \"readwrite\",\n    localDrive: \"read\",\n    authorizeAccessPolicyRules: [{\n        description: \"example_value\",\n        cidrIp: \"1.2.3.4/24\",\n    }],\n    authorizeSecurityPolicyRules: [{\n        type: \"inflow\",\n        policy: \"accept\",\n        description: \"example_value\",\n        portRange: \"80/80\",\n        ipProtocol: \"TCP\",\n        priority: \"1\",\n        cidrIp: \"0.0.0.0/0\",\n    }],\n});\nconst defaultDesktop = new alicloud.eds.Desktop(\"default\", {\n    officeSiteId: defaultSimpleOfficeSite.id,\n    policyGroupId: defaultEcdPolicyGroup.id,\n    bundleId: _default.then(_default =\u003e _default.bundles?.[1]?.id),\n    desktopName: \"your_desktop_name\",\n});\nconst defaultImage = new alicloud.eds.Image(\"default\", {\n    imageName: \"your_image_name\",\n    desktopId: defaultDesktop.id,\n    description: \"example_value\",\n});\nconst ids = alicloud.eds.getImagesOutput({\n    ids: [defaultImage.id],\n});\nexport const ecdImageId1 = ids.apply(ids =\u003e ids.images?.[0]?.id);\nconst nameRegex = defaultImage.imageName.apply(imageName =\u003e alicloud.eds.getImagesOutput({\n    nameRegex: imageName,\n}));\nexport const ecdImageId2 = nameRegex.apply(nameRegex =\u003e nameRegex.images?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault_simple_office_site = alicloud.eds.SimpleOfficeSite(\"default\",\n    cidr_block=\"172.16.0.0/12\",\n    desktop_access_type=\"Internet\",\n    office_site_name=\"your_simple_office_site_name\")\ndefault = alicloud.eds.get_bundles(bundle_type=\"SYSTEM\")\ndefault_ecd_policy_group = alicloud.eds.EcdPolicyGroup(\"default\",\n    policy_group_name=\"your_policy_group_name\",\n    clipboard=\"readwrite\",\n    local_drive=\"read\",\n    authorize_access_policy_rules=[{\n        \"description\": \"example_value\",\n        \"cidr_ip\": \"1.2.3.4/24\",\n    }],\n    authorize_security_policy_rules=[{\n        \"type\": \"inflow\",\n        \"policy\": \"accept\",\n        \"description\": \"example_value\",\n        \"port_range\": \"80/80\",\n        \"ip_protocol\": \"TCP\",\n        \"priority\": \"1\",\n        \"cidr_ip\": \"0.0.0.0/0\",\n    }])\ndefault_desktop = alicloud.eds.Desktop(\"default\",\n    office_site_id=default_simple_office_site.id,\n    policy_group_id=default_ecd_policy_group.id,\n    bundle_id=default.bundles[1].id,\n    desktop_name=\"your_desktop_name\")\ndefault_image = alicloud.eds.Image(\"default\",\n    image_name=\"your_image_name\",\n    desktop_id=default_desktop.id,\n    description=\"example_value\")\nids = alicloud.eds.get_images_output(ids=[default_image.id])\npulumi.export(\"ecdImageId1\", ids.images[0].id)\nname_regex = default_image.image_name.apply(lambda image_name: alicloud.eds.get_images_output(name_regex=image_name))\npulumi.export(\"ecdImageId2\", name_regex.images[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultSimpleOfficeSite = new AliCloud.Eds.SimpleOfficeSite(\"default\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        DesktopAccessType = \"Internet\",\n        OfficeSiteName = \"your_simple_office_site_name\",\n    });\n\n    var @default = AliCloud.Eds.GetBundles.Invoke(new()\n    {\n        BundleType = \"SYSTEM\",\n    });\n\n    var defaultEcdPolicyGroup = new AliCloud.Eds.EcdPolicyGroup(\"default\", new()\n    {\n        PolicyGroupName = \"your_policy_group_name\",\n        Clipboard = \"readwrite\",\n        LocalDrive = \"read\",\n        AuthorizeAccessPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs\n            {\n                Description = \"example_value\",\n                CidrIp = \"1.2.3.4/24\",\n            },\n        },\n        AuthorizeSecurityPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs\n            {\n                Type = \"inflow\",\n                Policy = \"accept\",\n                Description = \"example_value\",\n                PortRange = \"80/80\",\n                IpProtocol = \"TCP\",\n                Priority = \"1\",\n                CidrIp = \"0.0.0.0/0\",\n            },\n        },\n    });\n\n    var defaultDesktop = new AliCloud.Eds.Desktop(\"default\", new()\n    {\n        OfficeSiteId = defaultSimpleOfficeSite.Id,\n        PolicyGroupId = defaultEcdPolicyGroup.Id,\n        BundleId = @default.Apply(@default =\u003e @default.Apply(getBundlesResult =\u003e getBundlesResult.Bundles[1]?.Id)),\n        DesktopName = \"your_desktop_name\",\n    });\n\n    var defaultImage = new AliCloud.Eds.Image(\"default\", new()\n    {\n        ImageName = \"your_image_name\",\n        DesktopId = defaultDesktop.Id,\n        Description = \"example_value\",\n    });\n\n    var ids = AliCloud.Eds.GetImages.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultImage.Id,\n        },\n    });\n\n    var nameRegex = AliCloud.Eds.GetImages.Invoke(new()\n    {\n        NameRegex = defaultImage.ImageName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecdImageId1\"] = ids.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        [\"ecdImageId2\"] = nameRegex.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultSimpleOfficeSite, err := eds.NewSimpleOfficeSite(ctx, \"default\", \u0026eds.SimpleOfficeSiteArgs{\n\t\t\tCidrBlock:         pulumi.String(\"172.16.0.0/12\"),\n\t\t\tDesktopAccessType: pulumi.String(\"Internet\"),\n\t\t\tOfficeSiteName:    pulumi.String(\"your_simple_office_site_name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := eds.GetBundles(ctx, \u0026eds.GetBundlesArgs{\n\t\t\tBundleType: pulumi.StringRef(\"SYSTEM\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcdPolicyGroup, err := eds.NewEcdPolicyGroup(ctx, \"default\", \u0026eds.EcdPolicyGroupArgs{\n\t\t\tPolicyGroupName: pulumi.String(\"your_policy_group_name\"),\n\t\t\tClipboard:       pulumi.String(\"readwrite\"),\n\t\t\tLocalDrive:      pulumi.String(\"read\"),\n\t\t\tAuthorizeAccessPolicyRules: eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs{\n\t\t\t\t\tDescription: pulumi.String(\"example_value\"),\n\t\t\t\t\tCidrIp:      pulumi.String(\"1.2.3.4/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAuthorizeSecurityPolicyRules: eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs{\n\t\t\t\t\tType:        pulumi.String(\"inflow\"),\n\t\t\t\t\tPolicy:      pulumi.String(\"accept\"),\n\t\t\t\t\tDescription: pulumi.String(\"example_value\"),\n\t\t\t\t\tPortRange:   pulumi.String(\"80/80\"),\n\t\t\t\t\tIpProtocol:  pulumi.String(\"TCP\"),\n\t\t\t\t\tPriority:    pulumi.String(\"1\"),\n\t\t\t\t\tCidrIp:      pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDesktop, err := eds.NewDesktop(ctx, \"default\", \u0026eds.DesktopArgs{\n\t\t\tOfficeSiteId:  defaultSimpleOfficeSite.ID(),\n\t\t\tPolicyGroupId: defaultEcdPolicyGroup.ID(),\n\t\t\tBundleId:      pulumi.String(_default.Bundles[1].Id),\n\t\t\tDesktopName:   pulumi.String(\"your_desktop_name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultImage, err := eds.NewImage(ctx, \"default\", \u0026eds.ImageArgs{\n\t\t\tImageName:   pulumi.String(\"your_image_name\"),\n\t\t\tDesktopId:   defaultDesktop.ID(),\n\t\t\tDescription: pulumi.String(\"example_value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := eds.GetImagesOutput(ctx, eds.GetImagesOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultImage.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"ecdImageId1\", ids.ApplyT(func(ids eds.GetImagesResult) (*string, error) {\n\t\t\treturn \u0026ids.Images[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tnameRegex := defaultImage.ImageName.ApplyT(func(imageName *string) (eds.GetImagesResult, error) {\n\t\t\treturn eds.GetImagesResult(interface{}(eds.GetImages(ctx, \u0026eds.GetImagesArgs{\n\t\t\t\tNameRegex: pulumi.StringRef(pulumi.StringRef(imageName)),\n\t\t\t}, nil))), nil\n\t\t}).(eds.GetImagesResultOutput)\n\t\tctx.Export(\"ecdImageId2\", nameRegex.ApplyT(func(nameRegex eds.GetImagesResult) (*string, error) {\n\t\t\treturn \u0026nameRegex.Images[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.SimpleOfficeSite;\nimport com.pulumi.alicloud.eds.SimpleOfficeSiteArgs;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetBundlesArgs;\nimport com.pulumi.alicloud.eds.EcdPolicyGroup;\nimport com.pulumi.alicloud.eds.EcdPolicyGroupArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.Desktop;\nimport com.pulumi.alicloud.eds.DesktopArgs;\nimport com.pulumi.alicloud.eds.Image;\nimport com.pulumi.alicloud.eds.ImageArgs;\nimport com.pulumi.alicloud.eds.inputs.GetImagesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultSimpleOfficeSite = new SimpleOfficeSite(\"defaultSimpleOfficeSite\", SimpleOfficeSiteArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .desktopAccessType(\"Internet\")\n            .officeSiteName(\"your_simple_office_site_name\")\n            .build());\n\n        final var default = EdsFunctions.getBundles(GetBundlesArgs.builder()\n            .bundleType(\"SYSTEM\")\n            .build());\n\n        var defaultEcdPolicyGroup = new EcdPolicyGroup(\"defaultEcdPolicyGroup\", EcdPolicyGroupArgs.builder()\n            .policyGroupName(\"your_policy_group_name\")\n            .clipboard(\"readwrite\")\n            .localDrive(\"read\")\n            .authorizeAccessPolicyRules(EcdPolicyGroupAuthorizeAccessPolicyRuleArgs.builder()\n                .description(\"example_value\")\n                .cidrIp(\"1.2.3.4/24\")\n                .build())\n            .authorizeSecurityPolicyRules(EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs.builder()\n                .type(\"inflow\")\n                .policy(\"accept\")\n                .description(\"example_value\")\n                .portRange(\"80/80\")\n                .ipProtocol(\"TCP\")\n                .priority(\"1\")\n                .cidrIp(\"0.0.0.0/0\")\n                .build())\n            .build());\n\n        var defaultDesktop = new Desktop(\"defaultDesktop\", DesktopArgs.builder()\n            .officeSiteId(defaultSimpleOfficeSite.id())\n            .policyGroupId(defaultEcdPolicyGroup.id())\n            .bundleId(default_.bundles()[1].id())\n            .desktopName(\"your_desktop_name\")\n            .build());\n\n        var defaultImage = new Image(\"defaultImage\", ImageArgs.builder()\n            .imageName(\"your_image_name\")\n            .desktopId(defaultDesktop.id())\n            .description(\"example_value\")\n            .build());\n\n        final var ids = EdsFunctions.getImages(GetImagesArgs.builder()\n            .ids(defaultImage.id())\n            .build());\n\n        ctx.export(\"ecdImageId1\", ids.applyValue(_ids -\u003e _ids.images()[0].id()));\n        final var nameRegex = defaultImage.imageName().applyValue(_imageName -\u003e EdsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(_imageName)\n            .build()));\n\n        ctx.export(\"ecdImageId2\", nameRegex.applyValue(_nameRegex -\u003e _nameRegex.images()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  defaultSimpleOfficeSite:\n    type: alicloud:eds:SimpleOfficeSite\n    name: default\n    properties:\n      cidrBlock: 172.16.0.0/12\n      desktopAccessType: Internet\n      officeSiteName: your_simple_office_site_name\n  defaultEcdPolicyGroup:\n    type: alicloud:eds:EcdPolicyGroup\n    name: default\n    properties:\n      policyGroupName: your_policy_group_name\n      clipboard: readwrite\n      localDrive: read\n      authorizeAccessPolicyRules:\n        - description: example_value\n          cidrIp: 1.2.3.4/24\n      authorizeSecurityPolicyRules:\n        - type: inflow\n          policy: accept\n          description: example_value\n          portRange: 80/80\n          ipProtocol: TCP\n          priority: '1'\n          cidrIp: 0.0.0.0/0\n  defaultDesktop:\n    type: alicloud:eds:Desktop\n    name: default\n    properties:\n      officeSiteId: ${defaultSimpleOfficeSite.id}\n      policyGroupId: ${defaultEcdPolicyGroup.id}\n      bundleId: ${default.bundles[1].id}\n      desktopName: your_desktop_name\n  defaultImage:\n    type: alicloud:eds:Image\n    name: default\n    properties:\n      imageName: your_image_name\n      desktopId: ${defaultDesktop.id}\n      description: example_value\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eds:getBundles\n      arguments:\n        bundleType: SYSTEM\n  ids:\n    fn::invoke:\n      function: alicloud:eds:getImages\n      arguments:\n        ids:\n          - ${defaultImage.id}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:eds:getImages\n      arguments:\n        nameRegex: ${defaultImage.imageName}\noutputs:\n  ecdImageId1: ${ids.images[0].id}\n  ecdImageId2: ${nameRegex.images[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getImages.\n","properties":{"desktopInstanceType":{"type":"string","description":"The desktop type of the image.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Image IDs.\n"},"imageType":{"type":"string","description":"The image type of the image. Valid values: `SYSTEM`, `CUSTOM`.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Image name.\n"},"osType":{"type":"string","description":"The operating system type of the image. Valid values: `Windows` and `Linux`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the image. Valid values: `Creating`, `Available`, `CreateFailed`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getImages.\n","properties":{"desktopInstanceType":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"imageType":{"type":"string"},"images":{"items":{"$ref":"#/types/alicloud:eds/getImagesImage:getImagesImage"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"osType":{"type":"string"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["ids","images","names","id"],"type":"object"}},"alicloud:eds/getNasFileSystems:getNasFileSystems":{"description":"This data source provides the Ecd Nas File Systems of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.141.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.eds.SimpleOfficeSite(\"default\", {\n    cidrBlock: \"172.16.0.0/12\",\n    desktopAccessType: \"Internet\",\n    officeSiteName: \"your_office_site_name\",\n    enableInternetAccess: false,\n});\nconst defaultNasFileSystem = new alicloud.eds.NasFileSystem(\"default\", {\n    description: \"your_description\",\n    officeSiteId: _default.id,\n    nasFileSystemName: \"your_nas_file_system_name\",\n});\nconst ids = alicloud.eds.getNasFileSystems({});\nexport const ecdNasFileSystemId1 = ids.then(ids =\u003e ids.systems?.[0]?.id);\nconst nameRegex = defaultNasFileSystem.nasFileSystemName.apply(nasFileSystemName =\u003e alicloud.eds.getNasFileSystemsOutput({\n    nameRegex: nasFileSystemName,\n}));\nexport const ecdNasFileSystemId2 = nameRegex.apply(nameRegex =\u003e nameRegex.systems?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.eds.SimpleOfficeSite(\"default\",\n    cidr_block=\"172.16.0.0/12\",\n    desktop_access_type=\"Internet\",\n    office_site_name=\"your_office_site_name\",\n    enable_internet_access=False)\ndefault_nas_file_system = alicloud.eds.NasFileSystem(\"default\",\n    description=\"your_description\",\n    office_site_id=default.id,\n    nas_file_system_name=\"your_nas_file_system_name\")\nids = alicloud.eds.get_nas_file_systems()\npulumi.export(\"ecdNasFileSystemId1\", ids.systems[0].id)\nname_regex = default_nas_file_system.nas_file_system_name.apply(lambda nas_file_system_name: alicloud.eds.get_nas_file_systems_output(name_regex=nas_file_system_name))\npulumi.export(\"ecdNasFileSystemId2\", name_regex.systems[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Eds.SimpleOfficeSite(\"default\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        DesktopAccessType = \"Internet\",\n        OfficeSiteName = \"your_office_site_name\",\n        EnableInternetAccess = false,\n    });\n\n    var defaultNasFileSystem = new AliCloud.Eds.NasFileSystem(\"default\", new()\n    {\n        Description = \"your_description\",\n        OfficeSiteId = @default.Id,\n        NasFileSystemName = \"your_nas_file_system_name\",\n    });\n\n    var ids = AliCloud.Eds.GetNasFileSystems.Invoke();\n\n    var nameRegex = AliCloud.Eds.GetNasFileSystems.Invoke(new()\n    {\n        NameRegex = defaultNasFileSystem.NasFileSystemName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecdNasFileSystemId1\"] = ids.Apply(getNasFileSystemsResult =\u003e getNasFileSystemsResult.Systems[0]?.Id),\n        [\"ecdNasFileSystemId2\"] = nameRegex.Apply(getNasFileSystemsResult =\u003e getNasFileSystemsResult.Systems[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := eds.NewSimpleOfficeSite(ctx, \"default\", \u0026eds.SimpleOfficeSiteArgs{\n\t\t\tCidrBlock:            pulumi.String(\"172.16.0.0/12\"),\n\t\t\tDesktopAccessType:    pulumi.String(\"Internet\"),\n\t\t\tOfficeSiteName:       pulumi.String(\"your_office_site_name\"),\n\t\t\tEnableInternetAccess: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNasFileSystem, err := eds.NewNasFileSystem(ctx, \"default\", \u0026eds.NasFileSystemArgs{\n\t\t\tDescription:       pulumi.String(\"your_description\"),\n\t\t\tOfficeSiteId:      _default.ID(),\n\t\t\tNasFileSystemName: pulumi.String(\"your_nas_file_system_name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids, err := eds.GetNasFileSystems(ctx, \u0026eds.GetNasFileSystemsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecdNasFileSystemId1\", ids.Systems[0].Id)\n\t\tnameRegex := defaultNasFileSystem.NasFileSystemName.ApplyT(func(nasFileSystemName *string) (eds.GetNasFileSystemsResult, error) {\n\t\t\treturn eds.GetNasFileSystemsResult(interface{}(eds.GetNasFileSystems(ctx, \u0026eds.GetNasFileSystemsArgs{\n\t\t\t\tNameRegex: pulumi.StringRef(pulumi.StringRef(nasFileSystemName)),\n\t\t\t}, nil))), nil\n\t\t}).(eds.GetNasFileSystemsResultOutput)\n\t\tctx.Export(\"ecdNasFileSystemId2\", nameRegex.ApplyT(func(nameRegex eds.GetNasFileSystemsResult) (*string, error) {\n\t\t\treturn \u0026nameRegex.Systems[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.SimpleOfficeSite;\nimport com.pulumi.alicloud.eds.SimpleOfficeSiteArgs;\nimport com.pulumi.alicloud.eds.NasFileSystem;\nimport com.pulumi.alicloud.eds.NasFileSystemArgs;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetNasFileSystemsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new SimpleOfficeSite(\"default\", SimpleOfficeSiteArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .desktopAccessType(\"Internet\")\n            .officeSiteName(\"your_office_site_name\")\n            .enableInternetAccess(false)\n            .build());\n\n        var defaultNasFileSystem = new NasFileSystem(\"defaultNasFileSystem\", NasFileSystemArgs.builder()\n            .description(\"your_description\")\n            .officeSiteId(default_.id())\n            .nasFileSystemName(\"your_nas_file_system_name\")\n            .build());\n\n        final var ids = EdsFunctions.getNasFileSystems(GetNasFileSystemsArgs.builder()\n            .build());\n\n        ctx.export(\"ecdNasFileSystemId1\", ids.systems()[0].id());\n        final var nameRegex = defaultNasFileSystem.nasFileSystemName().applyValue(_nasFileSystemName -\u003e EdsFunctions.getNasFileSystems(GetNasFileSystemsArgs.builder()\n            .nameRegex(_nasFileSystemName)\n            .build()));\n\n        ctx.export(\"ecdNasFileSystemId2\", nameRegex.applyValue(_nameRegex -\u003e _nameRegex.systems()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:eds:SimpleOfficeSite\n    properties:\n      cidrBlock: 172.16.0.0/12\n      desktopAccessType: Internet\n      officeSiteName: your_office_site_name\n      enableInternetAccess: false\n  defaultNasFileSystem:\n    type: alicloud:eds:NasFileSystem\n    name: default\n    properties:\n      description: your_description\n      officeSiteId: ${default.id}\n      nasFileSystemName: your_nas_file_system_name\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:eds:getNasFileSystems\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:eds:getNasFileSystems\n      arguments:\n        nameRegex: ${defaultNasFileSystem.nasFileSystemName}\noutputs:\n  ecdNasFileSystemId1: ${ids.systems[0].id}\n  ecdNasFileSystemId2: ${nameRegex.systems[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNasFileSystems.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Nas File System IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Nas File System name.\n"},"officeSiteId":{"type":"string","description":"The ID of office site.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of nas file system. Valid values: `Pending`, `Running`, `Stopped`,`Deleting`, `Deleted`, `Invalid`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNasFileSystems.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"officeSiteId":{"type":"string"},"outputFile":{"type":"string"},"status":{"type":"string"},"systems":{"items":{"$ref":"#/types/alicloud:eds/getNasFileSystemsSystem:getNasFileSystemsSystem"},"type":"array"}},"required":["ids","names","systems","id"],"type":"object"}},"alicloud:eds/getNetworkPackages:getNetworkPackages":{"description":"This data source provides the Ecd Network Packages of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.142.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst defaultSimpleOfficeSite = new alicloud.eds.SimpleOfficeSite(\"default\", {\n    cidrBlock: \"172.16.0.0/12\",\n    desktopAccessType: \"Internet\",\n    officeSiteName: \"example_value\",\n});\nconst defaultNetworkPackage = new alicloud.eds.NetworkPackage(\"default\", {\n    bandwidth: 10,\n    officeSiteId: defaultSimpleOfficeSite.id,\n});\nconst _default = alicloud.eds.getNetworkPackagesOutput({\n    ids: [defaultNetworkPackage.id],\n});\nexport const ecdNetworkPackageId1 = _default.apply(_default =\u003e _default.packages?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault_simple_office_site = alicloud.eds.SimpleOfficeSite(\"default\",\n    cidr_block=\"172.16.0.0/12\",\n    desktop_access_type=\"Internet\",\n    office_site_name=\"example_value\")\ndefault_network_package = alicloud.eds.NetworkPackage(\"default\",\n    bandwidth=10,\n    office_site_id=default_simple_office_site.id)\ndefault = alicloud.eds.get_network_packages_output(ids=[default_network_package.id])\npulumi.export(\"ecdNetworkPackageId1\", default.packages[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultSimpleOfficeSite = new AliCloud.Eds.SimpleOfficeSite(\"default\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        DesktopAccessType = \"Internet\",\n        OfficeSiteName = \"example_value\",\n    });\n\n    var defaultNetworkPackage = new AliCloud.Eds.NetworkPackage(\"default\", new()\n    {\n        Bandwidth = 10,\n        OfficeSiteId = defaultSimpleOfficeSite.Id,\n    });\n\n    var @default = AliCloud.Eds.GetNetworkPackages.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultNetworkPackage.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecdNetworkPackageId1\"] = @default.Apply(@default =\u003e @default.Apply(getNetworkPackagesResult =\u003e getNetworkPackagesResult.Packages[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ndefaultSimpleOfficeSite, err := eds.NewSimpleOfficeSite(ctx, \"default\", \u0026eds.SimpleOfficeSiteArgs{\nCidrBlock: pulumi.String(\"172.16.0.0/12\"),\nDesktopAccessType: pulumi.String(\"Internet\"),\nOfficeSiteName: pulumi.String(\"example_value\"),\n})\nif err != nil {\nreturn err\n}\ndefaultNetworkPackage, err := eds.NewNetworkPackage(ctx, \"default\", \u0026eds.NetworkPackageArgs{\nBandwidth: pulumi.Int(10),\nOfficeSiteId: defaultSimpleOfficeSite.ID(),\n})\nif err != nil {\nreturn err\n}\n_default := eds.GetNetworkPackagesOutput(ctx, eds.GetNetworkPackagesOutputArgs{\nIds: pulumi.StringArray{\ndefaultNetworkPackage.ID(),\n},\n}, nil);\nctx.Export(\"ecdNetworkPackageId1\", _default.ApplyT(func(_default eds.GetNetworkPackagesResult) (*string, error) {\nreturn \u0026default.Packages[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.SimpleOfficeSite;\nimport com.pulumi.alicloud.eds.SimpleOfficeSiteArgs;\nimport com.pulumi.alicloud.eds.NetworkPackage;\nimport com.pulumi.alicloud.eds.NetworkPackageArgs;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetNetworkPackagesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultSimpleOfficeSite = new SimpleOfficeSite(\"defaultSimpleOfficeSite\", SimpleOfficeSiteArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .desktopAccessType(\"Internet\")\n            .officeSiteName(\"example_value\")\n            .build());\n\n        var defaultNetworkPackage = new NetworkPackage(\"defaultNetworkPackage\", NetworkPackageArgs.builder()\n            .bandwidth(10)\n            .officeSiteId(defaultSimpleOfficeSite.id())\n            .build());\n\n        final var default = EdsFunctions.getNetworkPackages(GetNetworkPackagesArgs.builder()\n            .ids(defaultNetworkPackage.id())\n            .build());\n\n        ctx.export(\"ecdNetworkPackageId1\", default_.applyValue(_default_ -\u003e _default_.packages()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  defaultSimpleOfficeSite:\n    type: alicloud:eds:SimpleOfficeSite\n    name: default\n    properties:\n      cidrBlock: 172.16.0.0/12\n      desktopAccessType: Internet\n      officeSiteName: example_value\n  defaultNetworkPackage:\n    type: alicloud:eds:NetworkPackage\n    name: default\n    properties:\n      bandwidth: '10'\n      officeSiteId: ${defaultSimpleOfficeSite.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eds:getNetworkPackages\n      arguments:\n        ids:\n          - ${defaultNetworkPackage.id}\noutputs:\n  ecdNetworkPackageId1: ${default.packages[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNetworkPackages.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Network Package IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of network package. Valid values: `Creating`, `InUse`, `Releasing`,`Released`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNetworkPackages.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"packages":{"items":{"$ref":"#/types/alicloud:eds/getNetworkPackagesPackage:getNetworkPackagesPackage"},"type":"array"},"status":{"type":"string"}},"required":["ids","packages","id"],"type":"object"}},"alicloud:eds/getPolicyGroups:getPolicyGroups":{"description":"This data source provides the Ecd Policy Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.130.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.eds.EcdPolicyGroup(\"default\", {\n    policyGroupName: \"my-policy-group\",\n    clipboard: \"read\",\n    localDrive: \"read\",\n    usbRedirect: \"off\",\n    watermark: \"off\",\n    authorizeAccessPolicyRules: [{\n        description: \"my-description1\",\n        cidrIp: \"1.2.3.45/24\",\n    }],\n    authorizeSecurityPolicyRules: [{\n        type: \"inflow\",\n        policy: \"accept\",\n        description: \"my-description\",\n        portRange: \"80/80\",\n        ipProtocol: \"TCP\",\n        priority: \"1\",\n        cidrIp: \"1.2.3.4/24\",\n    }],\n});\nconst nameRegex = alicloud.eds.getPolicyGroups({\n    nameRegex: \"^my-policy\",\n});\nexport const ecdPolicyGroupId = nameRegex.then(nameRegex =\u003e nameRegex.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.eds.EcdPolicyGroup(\"default\",\n    policy_group_name=\"my-policy-group\",\n    clipboard=\"read\",\n    local_drive=\"read\",\n    usb_redirect=\"off\",\n    watermark=\"off\",\n    authorize_access_policy_rules=[{\n        \"description\": \"my-description1\",\n        \"cidr_ip\": \"1.2.3.45/24\",\n    }],\n    authorize_security_policy_rules=[{\n        \"type\": \"inflow\",\n        \"policy\": \"accept\",\n        \"description\": \"my-description\",\n        \"port_range\": \"80/80\",\n        \"ip_protocol\": \"TCP\",\n        \"priority\": \"1\",\n        \"cidr_ip\": \"1.2.3.4/24\",\n    }])\nname_regex = alicloud.eds.get_policy_groups(name_regex=\"^my-policy\")\npulumi.export(\"ecdPolicyGroupId\", name_regex.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Eds.EcdPolicyGroup(\"default\", new()\n    {\n        PolicyGroupName = \"my-policy-group\",\n        Clipboard = \"read\",\n        LocalDrive = \"read\",\n        UsbRedirect = \"off\",\n        Watermark = \"off\",\n        AuthorizeAccessPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs\n            {\n                Description = \"my-description1\",\n                CidrIp = \"1.2.3.45/24\",\n            },\n        },\n        AuthorizeSecurityPolicyRules = new[]\n        {\n            new AliCloud.Eds.Inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs\n            {\n                Type = \"inflow\",\n                Policy = \"accept\",\n                Description = \"my-description\",\n                PortRange = \"80/80\",\n                IpProtocol = \"TCP\",\n                Priority = \"1\",\n                CidrIp = \"1.2.3.4/24\",\n            },\n        },\n    });\n\n    var nameRegex = AliCloud.Eds.GetPolicyGroups.Invoke(new()\n    {\n        NameRegex = \"^my-policy\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecdPolicyGroupId\"] = nameRegex.Apply(getPolicyGroupsResult =\u003e getPolicyGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := eds.NewEcdPolicyGroup(ctx, \"default\", \u0026eds.EcdPolicyGroupArgs{\n\t\t\tPolicyGroupName: pulumi.String(\"my-policy-group\"),\n\t\t\tClipboard:       pulumi.String(\"read\"),\n\t\t\tLocalDrive:      pulumi.String(\"read\"),\n\t\t\tUsbRedirect:     pulumi.String(\"off\"),\n\t\t\tWatermark:       pulumi.String(\"off\"),\n\t\t\tAuthorizeAccessPolicyRules: eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs{\n\t\t\t\t\tDescription: pulumi.String(\"my-description1\"),\n\t\t\t\t\tCidrIp:      pulumi.String(\"1.2.3.45/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAuthorizeSecurityPolicyRules: eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArray{\n\t\t\t\t\u0026eds.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs{\n\t\t\t\t\tType:        pulumi.String(\"inflow\"),\n\t\t\t\t\tPolicy:      pulumi.String(\"accept\"),\n\t\t\t\t\tDescription: pulumi.String(\"my-description\"),\n\t\t\t\t\tPortRange:   pulumi.String(\"80/80\"),\n\t\t\t\t\tIpProtocol:  pulumi.String(\"TCP\"),\n\t\t\t\t\tPriority:    pulumi.String(\"1\"),\n\t\t\t\t\tCidrIp:      pulumi.String(\"1.2.3.4/24\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnameRegex, err := eds.GetPolicyGroups(ctx, \u0026eds.GetPolicyGroupsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-policy\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecdPolicyGroupId\", nameRegex.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.EcdPolicyGroup;\nimport com.pulumi.alicloud.eds.EcdPolicyGroupArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetPolicyGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new EcdPolicyGroup(\"default\", EcdPolicyGroupArgs.builder()\n            .policyGroupName(\"my-policy-group\")\n            .clipboard(\"read\")\n            .localDrive(\"read\")\n            .usbRedirect(\"off\")\n            .watermark(\"off\")\n            .authorizeAccessPolicyRules(EcdPolicyGroupAuthorizeAccessPolicyRuleArgs.builder()\n                .description(\"my-description1\")\n                .cidrIp(\"1.2.3.45/24\")\n                .build())\n            .authorizeSecurityPolicyRules(EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs.builder()\n                .type(\"inflow\")\n                .policy(\"accept\")\n                .description(\"my-description\")\n                .portRange(\"80/80\")\n                .ipProtocol(\"TCP\")\n                .priority(\"1\")\n                .cidrIp(\"1.2.3.4/24\")\n                .build())\n            .build());\n\n        final var nameRegex = EdsFunctions.getPolicyGroups(GetPolicyGroupsArgs.builder()\n            .nameRegex(\"^my-policy\")\n            .build());\n\n        ctx.export(\"ecdPolicyGroupId\", nameRegex.groups()[0].id());\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:eds:EcdPolicyGroup\n    properties:\n      policyGroupName: my-policy-group\n      clipboard: read\n      localDrive: read\n      usbRedirect: off\n      watermark: off\n      authorizeAccessPolicyRules:\n        - description: my-description1\n          cidrIp: 1.2.3.45/24\n      authorizeSecurityPolicyRules:\n        - type: inflow\n          policy: accept\n          description: my-description\n          portRange: 80/80\n          ipProtocol: TCP\n          priority: '1'\n          cidrIp: 1.2.3.4/24\nvariables:\n  nameRegex:\n    fn::invoke:\n      function: alicloud:eds:getPolicyGroups\n      arguments:\n        nameRegex: ^my-policy\noutputs:\n  ecdPolicyGroupId: ${nameRegex.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPolicyGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Policy Group IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Policy Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of policy.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPolicyGroups.\n","properties":{"groups":{"items":{"$ref":"#/types/alicloud:eds/getPolicyGroupsGroup:getPolicyGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:eds/getRamDirectories:getRamDirectories":{"description":"This data source provides the Ecd Ram Directories of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.174.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.eds.getRamDirectories({\n    ids: [\"example_id\"],\n});\nexport const ecdRamDirectoryId1 = ids.then(ids =\u003e ids.directories?.[0]?.id);\nconst nameRegex = alicloud.eds.getRamDirectories({\n    nameRegex: \"^my-RamDirectory\",\n});\nexport const ecdRamDirectoryId2 = nameRegex.then(nameRegex =\u003e nameRegex.directories?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.eds.get_ram_directories(ids=[\"example_id\"])\npulumi.export(\"ecdRamDirectoryId1\", ids.directories[0].id)\nname_regex = alicloud.eds.get_ram_directories(name_regex=\"^my-RamDirectory\")\npulumi.export(\"ecdRamDirectoryId2\", name_regex.directories[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Eds.GetRamDirectories.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Eds.GetRamDirectories.Invoke(new()\n    {\n        NameRegex = \"^my-RamDirectory\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecdRamDirectoryId1\"] = ids.Apply(getRamDirectoriesResult =\u003e getRamDirectoriesResult.Directories[0]?.Id),\n        [\"ecdRamDirectoryId2\"] = nameRegex.Apply(getRamDirectoriesResult =\u003e getRamDirectoriesResult.Directories[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := eds.GetRamDirectories(ctx, \u0026eds.GetRamDirectoriesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecdRamDirectoryId1\", ids.Directories[0].Id)\n\t\tnameRegex, err := eds.GetRamDirectories(ctx, \u0026eds.GetRamDirectoriesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-RamDirectory\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecdRamDirectoryId2\", nameRegex.Directories[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetRamDirectoriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EdsFunctions.getRamDirectories(GetRamDirectoriesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"ecdRamDirectoryId1\", ids.directories()[0].id());\n        final var nameRegex = EdsFunctions.getRamDirectories(GetRamDirectoriesArgs.builder()\n            .nameRegex(\"^my-RamDirectory\")\n            .build());\n\n        ctx.export(\"ecdRamDirectoryId2\", nameRegex.directories()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:eds:getRamDirectories\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:eds:getRamDirectories\n      arguments:\n        nameRegex: ^my-RamDirectory\noutputs:\n  ecdRamDirectoryId1: ${ids.directories[0].id}\n  ecdRamDirectoryId2: ${nameRegex.directories[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRamDirectories.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ram Directory IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Ram Directory name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of directory. Valid values: `REGISTERING`, `REGISTERED`, `DEREGISTERING`, `NEEDCONFIGTRUST`, `CONFIGTRUSTFAILED`, `DEREGISTERED`, `ERROR`, `CONFIGTRUSTING`, `NEEDCONFIGUSER`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRamDirectories.\n","properties":{"directories":{"items":{"$ref":"#/types/alicloud:eds/getRamDirectoriesDirectory:getRamDirectoriesDirectory"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["directories","ids","names","id"],"type":"object"}},"alicloud:eds/getSimpleOfficeSites:getSimpleOfficeSites":{"description":"This data source provides the Ecd Simple Office Sites of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.140.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.eds.getSimpleOfficeSites({\n    ids: [\"example_id\"],\n    status: \"REGISTERED\",\n});\nexport const desktopAccessType = _default.then(_default =\u003e _default.sites?.[0]?.desktopAccessType);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.eds.get_simple_office_sites(ids=[\"example_id\"],\n    status=\"REGISTERED\")\npulumi.export(\"desktopAccessType\", default.sites[0].desktop_access_type)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Eds.GetSimpleOfficeSites.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        Status = \"REGISTERED\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"desktopAccessType\"] = @default.Apply(@default =\u003e @default.Apply(getSimpleOfficeSitesResult =\u003e getSimpleOfficeSitesResult.Sites[0]?.DesktopAccessType)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := eds.GetSimpleOfficeSites(ctx, \u0026eds.GetSimpleOfficeSitesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tStatus: pulumi.StringRef(\"REGISTERED\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"desktopAccessType\", _default.Sites[0].DesktopAccessType)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetSimpleOfficeSitesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EdsFunctions.getSimpleOfficeSites(GetSimpleOfficeSitesArgs.builder()\n            .ids(\"example_id\")\n            .status(\"REGISTERED\")\n            .build());\n\n        ctx.export(\"desktopAccessType\", default_.sites()[0].desktopAccessType());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eds:getSimpleOfficeSites\n      arguments:\n        ids:\n          - example_id\n        status: REGISTERED\noutputs:\n  desktopAccessType: ${default.sites[0].desktopAccessType}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSimpleOfficeSites.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Simple Office Site IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Simple Office Site name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"Workspace State. Valid values: `REGISTERED`,`REGISTERING`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSimpleOfficeSites.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"sites":{"items":{"$ref":"#/types/alicloud:eds/getSimpleOfficeSitesSite:getSimpleOfficeSitesSite"},"type":"array"},"status":{"type":"string"}},"required":["ids","names","sites","id"],"type":"object"}},"alicloud:eds/getSnapshots:getSnapshots":{"description":"This data source provides the Ecd Snapshots of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.169.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.eds.getSnapshots({});\nexport const ecdSnapshotId1 = ids.then(ids =\u003e ids.snapshots?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.eds.get_snapshots()\npulumi.export(\"ecdSnapshotId1\", ids.snapshots[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Eds.GetSnapshots.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecdSnapshotId1\"] = ids.Apply(getSnapshotsResult =\u003e getSnapshotsResult.Snapshots[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := eds.GetSnapshots(ctx, \u0026eds.GetSnapshotsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecdSnapshotId1\", ids.Snapshots[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetSnapshotsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EdsFunctions.getSnapshots(GetSnapshotsArgs.builder()\n            .build());\n\n        ctx.export(\"ecdSnapshotId1\", ids.snapshots()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:eds:getSnapshots\n      arguments: {}\noutputs:\n  ecdSnapshotId1: ${ids.snapshots[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSnapshots.\n","properties":{"desktopId":{"type":"string","description":"The ID of the Desktop.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Snapshot IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Snapshot name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"snapshotId":{"type":"string","description":"The ID of the Snapshot.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSnapshots.\n","properties":{"desktopId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"snapshotId":{"type":"string"},"snapshots":{"items":{"$ref":"#/types/alicloud:eds/getSnapshotsSnapshot:getSnapshotsSnapshot"},"type":"array"}},"required":["ids","names","snapshots","id"],"type":"object"}},"alicloud:eds/getUsers:getUsers":{"description":"This data source provides the Elastic Desktop Service (ECD) Users of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.142.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.eds.User(\"default\", {\n    endUserId: \"example_value\",\n    email: \"your_email\",\n    phone: \"your_phone\",\n    password: \"your_password\",\n});\nconst ids = alicloud.eds.getUsers({});\nexport const ecdUserId1 = ids.then(ids =\u003e ids.users?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.eds.User(\"default\",\n    end_user_id=\"example_value\",\n    email=\"your_email\",\n    phone=\"your_phone\",\n    password=\"your_password\")\nids = alicloud.eds.get_users()\npulumi.export(\"ecdUserId1\", ids.users[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Eds.User(\"default\", new()\n    {\n        EndUserId = \"example_value\",\n        Email = \"your_email\",\n        Phone = \"your_phone\",\n        Password = \"your_password\",\n    });\n\n    var ids = AliCloud.Eds.GetUsers.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ecdUserId1\"] = ids.Apply(getUsersResult =\u003e getUsersResult.Users[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := eds.NewUser(ctx, \"default\", \u0026eds.UserArgs{\n\t\t\tEndUserId: pulumi.String(\"example_value\"),\n\t\t\tEmail:     pulumi.String(\"your_email\"),\n\t\t\tPhone:     pulumi.String(\"your_phone\"),\n\t\t\tPassword:  pulumi.String(\"your_password\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids, err := eds.GetUsers(ctx, \u0026eds.GetUsersArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ecdUserId1\", ids.Users[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.User;\nimport com.pulumi.alicloud.eds.UserArgs;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new User(\"default\", UserArgs.builder()\n            .endUserId(\"example_value\")\n            .email(\"your_email\")\n            .phone(\"your_phone\")\n            .password(\"your_password\")\n            .build());\n\n        final var ids = EdsFunctions.getUsers(GetUsersArgs.builder()\n            .build());\n\n        ctx.export(\"ecdUserId1\", ids.users()[0].id());\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:eds:User\n    properties:\n      endUserId: example_value\n      email: your_email\n      phone: your_phone\n      password: your_password\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:eds:getUsers\n      arguments: {}\noutputs:\n  ecdUserId1: ${ids.users[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUsers.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of User IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Unlocked`, `Locked`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getUsers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"},"users":{"items":{"$ref":"#/types/alicloud:eds/getUsersUser:getUsersUser"},"type":"array"}},"required":["ids","users","id"],"type":"object"}},"alicloud:eds/getZones:getZones":{"description":"This data source provides the available zones with the Elastic Desktop Service (ECD) of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.174.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.eds.getZones({});\nexport const alicloudEcdZones = _default.then(_default =\u003e _default.zones?.[0]?.zoneId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.eds.get_zones()\npulumi.export(\"alicloudEcdZones\", default.zones[0].zone_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Eds.GetZones.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudEcdZones\"] = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.ZoneId)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := eds.GetZones(ctx, \u0026eds.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudEcdZones\", _default.Zones[0].ZoneId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eds.EdsFunctions;\nimport com.pulumi.alicloud.eds.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EdsFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        ctx.export(\"alicloudEcdZones\", default_.zones()[0].zoneId());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eds:getZones\n      arguments: {}\noutputs:\n  alicloudEcdZones: ${default.zones[0].zoneId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"zones":{"items":{"$ref":"#/types/alicloud:eds/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:eflo/getSubnets:getSubnets":{"description":"This data source provides Eflo Subnet available to the user.[What is Subnet](https://help.aliyun.com/document_detail/604977.html)\n\n\u003e **NOTE:** Available in 1.204.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.eflo.getSubnets({\n    nameRegex: defaultAlicloudEfloSubnet.name,\n    subnetName: \"SubnetTestForTerraform\",\n    vpdId: vpdId,\n    zoneId: zoneId,\n});\nexport const alicloudEfloSubnetExampleId = _default.then(_default =\u003e _default.subnets?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.eflo.get_subnets(name_regex=default_alicloud_eflo_subnet[\"name\"],\n    subnet_name=\"SubnetTestForTerraform\",\n    vpd_id=vpd_id,\n    zone_id=zone_id)\npulumi.export(\"alicloudEfloSubnetExampleId\", default.subnets[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Eflo.GetSubnets.Invoke(new()\n    {\n        NameRegex = defaultAlicloudEfloSubnet.Name,\n        SubnetName = \"SubnetTestForTerraform\",\n        VpdId = vpdId,\n        ZoneId = zoneId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudEfloSubnetExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getSubnetsResult =\u003e getSubnetsResult.Subnets[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eflo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := eflo.GetSubnets(ctx, \u0026eflo.GetSubnetsArgs{\n\t\t\tNameRegex:  pulumi.StringRef(defaultAlicloudEfloSubnet.Name),\n\t\t\tSubnetName: pulumi.StringRef(\"SubnetTestForTerraform\"),\n\t\t\tVpdId:      pulumi.StringRef(vpdId),\n\t\t\tZoneId:     pulumi.StringRef(zoneId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudEfloSubnetExampleId\", _default.Subnets[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eflo.EfloFunctions;\nimport com.pulumi.alicloud.eflo.inputs.GetSubnetsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EfloFunctions.getSubnets(GetSubnetsArgs.builder()\n            .nameRegex(defaultAlicloudEfloSubnet.name())\n            .subnetName(\"SubnetTestForTerraform\")\n            .vpdId(vpdId)\n            .zoneId(zoneId)\n            .build());\n\n        ctx.export(\"alicloudEfloSubnetExampleId\", default_.subnets()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eflo:getSubnets\n      arguments:\n        nameRegex: ${defaultAlicloudEfloSubnet.name}\n        subnetName: SubnetTestForTerraform\n        vpdId: ${vpdId}\n        zoneId: ${zoneId}\noutputs:\n  alicloudEfloSubnetExampleId: ${default.subnets[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSubnets.\n","properties":{"ids":{"type":"array","items":{"type":"string"}},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"type":"string","description":"Resource Group ID.\n"},"status":{"type":"string","description":"The status of the resource.\n"},"subnetId":{"type":"string","description":"Primary key ID.\n"},"subnetName":{"type":"string","description":"The Subnet name.\n"},"type":{"type":"string","description":"Eflo subnet usage type, optional value: \n- General type is not filled in\n- OOB:OOB type\n- LB: LB type\n"},"vpdId":{"type":"string","description":"The Eflo VPD ID.\n"},"zoneId":{"type":"string","description":"The zone ID of the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSubnets.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Subnets.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"description":"Resource Group ID.\n","type":"string"},"status":{"description":"The status of the resource.\n","type":"string"},"subnetId":{"description":"The Eflo subnet ID.\n","type":"string"},"subnetName":{"description":"The Subnet name.\n","type":"string"},"subnets":{"description":"A list of Subnet Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:eflo/getSubnetsSubnet:getSubnetsSubnet"},"type":"array"},"type":{"description":"Eflo subnet usage type.\n","type":"string"},"vpdId":{"description":"Eflo VPD ID.\n","type":"string"},"zoneId":{"description":"The zone ID of the resource.\n","type":"string"}},"required":["ids","names","subnets","id"],"type":"object"}},"alicloud:eflo/getVpds:getVpds":{"description":"This data source provides Eflo Vpd available to the user.[What is Vpd](https://help.aliyun.com/document_detail/604976.html)\n\n\u003e **NOTE:** Available in 1.201.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.eflo.getVpds({\n    ids: [defaultAlicloudEfloVpd.id],\n    nameRegex: defaultAlicloudEfloVpd.name,\n    vpdName: \"RMC-Terraform-Test\",\n});\nexport const alicloudEfloVpdExampleId = _default.then(_default =\u003e _default.vpds?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.eflo.get_vpds(ids=[default_alicloud_eflo_vpd[\"id\"]],\n    name_regex=default_alicloud_eflo_vpd[\"name\"],\n    vpd_name=\"RMC-Terraform-Test\")\npulumi.export(\"alicloudEfloVpdExampleId\", default.vpds[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Eflo.GetVpds.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudEfloVpd.Id,\n        },\n        NameRegex = defaultAlicloudEfloVpd.Name,\n        VpdName = \"RMC-Terraform-Test\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudEfloVpdExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getVpdsResult =\u003e getVpdsResult.Vpds[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eflo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := eflo.GetVpds(ctx, \u0026eflo.GetVpdsArgs{\nIds: interface{}{\ndefaultAlicloudEfloVpd.Id,\n},\nNameRegex: pulumi.StringRef(defaultAlicloudEfloVpd.Name),\nVpdName: pulumi.StringRef(\"RMC-Terraform-Test\"),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudEfloVpdExampleId\", _default.Vpds[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eflo.EfloFunctions;\nimport com.pulumi.alicloud.eflo.inputs.GetVpdsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EfloFunctions.getVpds(GetVpdsArgs.builder()\n            .ids(defaultAlicloudEfloVpd.id())\n            .nameRegex(defaultAlicloudEfloVpd.name())\n            .vpdName(\"RMC-Terraform-Test\")\n            .build());\n\n        ctx.export(\"alicloudEfloVpdExampleId\", default_.vpds()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:eflo:getVpds\n      arguments:\n        ids:\n          - ${defaultAlicloudEfloVpd.id}\n        nameRegex: ${defaultAlicloudEfloVpd.name}\n        vpdName: RMC-Terraform-Test\noutputs:\n  alicloudEfloVpdExampleId: ${default.vpds[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpds.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Vpd IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"type":"string","description":"The Resource group id\n"},"status":{"type":"string","description":"The Vpd status. Valid values: `Available`, `Not Available`, `Executing`, `Deleting`,\n"},"vpdId":{"type":"string","description":"The id of the vpd.\n"},"vpdName":{"type":"string","description":"The Name of the VPD.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpds.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Vpd IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Vpds.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"description":"Resource group id\n","type":"string"},"status":{"description":"The Vpd status.\n","type":"string"},"vpdId":{"description":"The id of the vpd.\n","type":"string"},"vpdName":{"description":"The Name of the VPD.\n","type":"string"},"vpds":{"description":"A list of Vpd Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:eflo/getVpdsVpd:getVpdsVpd"},"type":"array"}},"required":["ids","names","vpds","id"],"type":"object"}},"alicloud:ehpc/getClusters:getClusters":{"description":"This data source provides the Ehpc Clusters of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.173.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ehpc.getClusters({\n    ids: [\"example_id\"],\n});\nexport const ehpcClusterId1 = ids.then(ids =\u003e ids.clusters?.[0]?.id);\nconst nameRegex = alicloud.ehpc.getClusters({\n    nameRegex: \"^my-Cluster\",\n});\nexport const ehpcClusterId2 = nameRegex.then(nameRegex =\u003e nameRegex.clusters?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ehpc.get_clusters(ids=[\"example_id\"])\npulumi.export(\"ehpcClusterId1\", ids.clusters[0].id)\nname_regex = alicloud.ehpc.get_clusters(name_regex=\"^my-Cluster\")\npulumi.export(\"ehpcClusterId2\", name_regex.clusters[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ehpc.GetClusters.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Ehpc.GetClusters.Invoke(new()\n    {\n        NameRegex = \"^my-Cluster\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ehpcClusterId1\"] = ids.Apply(getClustersResult =\u003e getClustersResult.Clusters[0]?.Id),\n        [\"ehpcClusterId2\"] = nameRegex.Apply(getClustersResult =\u003e getClustersResult.Clusters[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ehpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ehpc.GetClusters(ctx, \u0026ehpc.GetClustersArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ehpcClusterId1\", ids.Clusters[0].Id)\n\t\tnameRegex, err := ehpc.GetClusters(ctx, \u0026ehpc.GetClustersArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Cluster\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ehpcClusterId2\", nameRegex.Clusters[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ehpc.EhpcFunctions;\nimport com.pulumi.alicloud.ehpc.inputs.GetClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EhpcFunctions.getClusters(GetClustersArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"ehpcClusterId1\", ids.clusters()[0].id());\n        final var nameRegex = EhpcFunctions.getClusters(GetClustersArgs.builder()\n            .nameRegex(\"^my-Cluster\")\n            .build());\n\n        ctx.export(\"ehpcClusterId2\", nameRegex.clusters()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ehpc:getClusters\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:ehpc:getClusters\n      arguments:\n        nameRegex: ^my-Cluster\noutputs:\n  ehpcClusterId1: ${ids.clusters[0].id}\n  ehpcClusterId2: ${nameRegex.clusters[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getClusters.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Cluster IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Cluster name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values:\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getClusters.\n","properties":{"clusters":{"description":"A list of Ehpc Clusters. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ehpc/getClustersCluster:getClustersCluster"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Cluster names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the resource.\n","type":"string"}},"required":["clusters","ids","names","id"],"type":"object"}},"alicloud:ehpc/getJobTemplates:getJobTemplates":{"description":"This data source provides the Ehpc Job Templates of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.133.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ehpc.JobTemplate(\"default\", {\n    jobTemplateName: \"example_value\",\n    commandLine: \"./LammpsTest/lammps.pbs\",\n});\nconst ids = alicloud.ehpc.getJobTemplatesOutput({\n    ids: [_default.id],\n});\nexport const ehpcJobTemplateId1 = ids.apply(ids =\u003e ids.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ehpc.JobTemplate(\"default\",\n    job_template_name=\"example_value\",\n    command_line=\"./LammpsTest/lammps.pbs\")\nids = alicloud.ehpc.get_job_templates_output(ids=[default.id])\npulumi.export(\"ehpcJobTemplateId1\", ids.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ehpc.JobTemplate(\"default\", new()\n    {\n        JobTemplateName = \"example_value\",\n        CommandLine = \"./LammpsTest/lammps.pbs\",\n    });\n\n    var ids = AliCloud.Ehpc.GetJobTemplates.Invoke(new()\n    {\n        Ids = new[]\n        {\n            @default.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ehpcJobTemplateId1\"] = ids.Apply(getJobTemplatesResult =\u003e getJobTemplatesResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ehpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ehpc.NewJobTemplate(ctx, \"default\", \u0026ehpc.JobTemplateArgs{\n\t\t\tJobTemplateName: pulumi.String(\"example_value\"),\n\t\t\tCommandLine:     pulumi.String(\"./LammpsTest/lammps.pbs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := ehpc.GetJobTemplatesOutput(ctx, ehpc.GetJobTemplatesOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"ehpcJobTemplateId1\", ids.ApplyT(func(ids ehpc.GetJobTemplatesResult) (*string, error) {\n\t\t\treturn \u0026ids.Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ehpc.JobTemplate;\nimport com.pulumi.alicloud.ehpc.JobTemplateArgs;\nimport com.pulumi.alicloud.ehpc.EhpcFunctions;\nimport com.pulumi.alicloud.ehpc.inputs.GetJobTemplatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new JobTemplate(\"default\", JobTemplateArgs.builder()\n            .jobTemplateName(\"example_value\")\n            .commandLine(\"./LammpsTest/lammps.pbs\")\n            .build());\n\n        final var ids = EhpcFunctions.getJobTemplates(GetJobTemplatesArgs.builder()\n            .ids(default_.id())\n            .build());\n\n        ctx.export(\"ehpcJobTemplateId1\", ids.applyValue(_ids -\u003e _ids.id()));\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ehpc:JobTemplate\n    properties:\n      jobTemplateName: example_value\n      commandLine: ./LammpsTest/lammps.pbs\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ehpc:getJobTemplates\n      arguments:\n        ids:\n          - ${default.id}\noutputs:\n  ehpcJobTemplateId1: ${ids.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getJobTemplates.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Job Template IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getJobTemplates.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"templates":{"description":"A list of Ehpc Job Templates. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ehpc/getJobTemplatesTemplate:getJobTemplatesTemplate"},"type":"array"}},"required":["ids","templates","id"],"type":"object"}},"alicloud:eipanycast/getAnycastEipAddresses:getAnycastEipAddresses":{"description":"This data source provides the Eipanycast Anycast Eip Addresses of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.113.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.eipanycast.getAnycastEipAddresses({\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstEipanycastAnycastEipAddressId = example.then(example =\u003e example.addresses?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.eipanycast.get_anycast_eip_addresses(ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstEipanycastAnycastEipAddressId\", example.addresses[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.EipAnycast.GetAnycastEipAddresses.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstEipanycastAnycastEipAddressId\"] = example.Apply(getAnycastEipAddressesResult =\u003e getAnycastEipAddressesResult.Addresses[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eipanycast\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := eipanycast.GetAnycastEipAddresses(ctx, \u0026eipanycast.GetAnycastEipAddressesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstEipanycastAnycastEipAddressId\", example.Addresses[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eipanycast.EipanycastFunctions;\nimport com.pulumi.alicloud.eipanycast.inputs.GetAnycastEipAddressesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = EipanycastFunctions.getAnycastEipAddresses(GetAnycastEipAddressesArgs.builder()\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstEipanycastAnycastEipAddressId\", example.addresses()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:eipanycast:getAnycastEipAddresses\n      arguments:\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstEipanycastAnycastEipAddressId: ${example.addresses[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAnycastEipAddresses.\n","properties":{"anycastEipAddressName":{"type":"string","description":"Anycast EIP instance name.\n"},"bindInstanceIds":{"type":"array","items":{"type":"string"},"description":"The bind instance ids.\n"},"businessStatus":{"type":"string","description":"The business status of the Anycast EIP instance. -`Normal`: Normal state. -`FinancialLocked`: The status of arrears locked.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Anycast Eip Address IDs.\n"},"internetChargeType":{"type":"string","description":"The billing method of Anycast EIP instance. `PayByBandwidth`: refers to the method of billing based on traffic.\n"},"ipAddress":{"type":"string","description":"Anycast EIP instance IP address.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Anycast Eip Address name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"paymentType":{"type":"string","description":"The payment model of Anycast EIP instance. `PayAsYouGo`: Refers to the post-paid mode. Default value is `PayAsYouGo`.\n"},"serviceLocation":{"type":"string","description":"Anycast EIP instance access area. \u003cspan pulumi-lang-nodejs=\"`international`\" pulumi-lang-dotnet=\"`International`\" pulumi-lang-go=\"`international`\" pulumi-lang-python=\"`international`\" pulumi-lang-yaml=\"`international`\" pulumi-lang-java=\"`international`\"\u003e`international`\u003c/span\u003e: Refers to areas outside of Mainland China.\n"},"status":{"type":"string","description":"IP status。- `Associating`, `Unassociating`, `Allocated`, `Associated`, `Modifying`, `Releasing`, `Released`. Valid values: `Allocated`, `Associated`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAnycastEipAddresses.\n","properties":{"addresses":{"items":{"$ref":"#/types/alicloud:eipanycast/getAnycastEipAddressesAddress:getAnycastEipAddressesAddress"},"type":"array"},"anycastEipAddressName":{"type":"string"},"bindInstanceIds":{"items":{"type":"string"},"type":"array"},"businessStatus":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"internetChargeType":{"type":"string"},"ipAddress":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"paymentType":{"type":"string"},"serviceLocation":{"type":"string"},"status":{"type":"string"}},"required":["addresses","ids","names","id"],"type":"object"}},"alicloud:elasticsearch/getInstances:getInstances":{"inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"descriptionRegex":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}},"outputFile":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"}},"version":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"descriptionRegex":{"type":"string"},"descriptions":{"items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instances":{"items":{"$ref":"#/types/alicloud:elasticsearch/getInstancesInstance:getInstancesInstance"},"type":"array"},"outputFile":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"version":{"type":"string"}},"required":["descriptions","ids","instances","id"],"type":"object"}},"alicloud:elasticsearch/getZones:getZones":{"description":"This data source provides availability zones for Elasticsearch that can be accessed by an Alibaba Cloud account within the region configured in the provider.\n\n\u003e **NOTE:** Available in v1.73.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst zonesIds = alicloud.elasticsearch.getZones({});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nzones_ids = alicloud.elasticsearch.get_zones()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var zonesIds = AliCloud.ElasticSearch.GetZones.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/elasticsearch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\t_, err := elasticsearch.GetZones(ctx, \u0026elasticsearch.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.elasticsearch.ElasticsearchFunctions;\nimport com.pulumi.alicloud.elasticsearch.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var zonesIds = ElasticsearchFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  zonesIds:\n    fn::invoke:\n      function: alicloud:elasticsearch:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"multi":{"type":"boolean","description":"Indicate whether the zones can be used in a multi AZ configuration. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Multi AZ is usually used to launch Elasticsearch instances.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of zone IDs.\n","items":{"type":"string"},"type":"array"},"multi":{"type":"boolean"},"outputFile":{"type":"string"},"zones":{"description":"A list of availability zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:elasticsearch/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:emr/getClusters:getClusters":{"description":"This data source provides the Emr Clusters of the current Alibaba Cloud user.\n\n\u003e **DEPRECATED:**  This datasource has been deprecated from version `1.204.0`. Please use new datasource emrv2_clusters.\n\n\u003e **NOTE:** Available in v1.146.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-testAccClusters\";\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultGetMainVersions = alicloud.emr.getMainVersions({});\nconst defaultGetInstanceTypes = defaultGetMainVersions.then(defaultGetMainVersions =\u003e alicloud.emr.getInstanceTypes({\n    destinationResource: \"InstanceType\",\n    clusterType: defaultGetMainVersions.mainVersions?.[0]?.clusterTypes?.[0],\n    supportLocalStorage: false,\n    instanceChargeType: \"PostPaid\",\n    supportNodeTypes: [\n        \"MASTER\",\n        \"CORE\",\n        \"TASK\",\n    ],\n}));\nconst dataDisk = Promise.all([defaultGetMainVersions, defaultGetInstanceTypes, defaultGetInstanceTypes]).then(([defaultGetMainVersions, defaultGetInstanceTypes, defaultGetInstanceTypes1]) =\u003e alicloud.emr.getDiskTypes({\n    destinationResource: \"DataDisk\",\n    clusterType: defaultGetMainVersions.mainVersions?.[0]?.clusterTypes?.[0],\n    instanceChargeType: \"PostPaid\",\n    instanceType: defaultGetInstanceTypes.types?.[0]?.id,\n    zoneId: defaultGetInstanceTypes1.types?.[0]?.zoneId,\n}));\nconst systemDisk = Promise.all([defaultGetMainVersions, defaultGetInstanceTypes, defaultGetInstanceTypes]).then(([defaultGetMainVersions, defaultGetInstanceTypes, defaultGetInstanceTypes1]) =\u003e alicloud.emr.getDiskTypes({\n    destinationResource: \"SystemDisk\",\n    clusterType: defaultGetMainVersions.mainVersions?.[0]?.clusterTypes?.[0],\n    instanceChargeType: \"PostPaid\",\n    instanceType: defaultGetInstanceTypes.types?.[0]?.id,\n    zoneId: defaultGetInstanceTypes1.types?.[0]?.zoneId,\n}));\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"default-NODELETING\",\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: name,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, defaultGetInstanceTypes]).then(([defaultGetNetworks, defaultGetInstanceTypes]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: defaultGetInstanceTypes.types?.[0]?.zoneId,\n}));\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    name: name,\n    document: `    {\n        \\\\\"Statement\\\\\": [\n        {\n            \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n            \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n            \\\\\"Principal\\\\\": {\n            \\\\\"Service\\\\\": [\n                \\\\\"emr.aliyuncs.com\\\\\",\n                \\\\\"ecs.aliyuncs.com\\\\\"\n            ]\n            }\n        }\n        ],\n        \\\\\"Version\\\\\": \\\\\"1\\\\\"\n    }\n`,\n    description: \"this is a role test.\",\n    force: true,\n});\nconst defaultCluster = new alicloud.emr.Cluster(\"default\", {\n    name: name,\n    emrVer: defaultGetMainVersions.then(defaultGetMainVersions =\u003e defaultGetMainVersions.mainVersions?.[0]?.emrVersion),\n    clusterType: defaultGetMainVersions.then(defaultGetMainVersions =\u003e defaultGetMainVersions.mainVersions?.[0]?.clusterTypes?.[0]),\n    hostGroups: [\n        {\n            hostGroupName: \"master_group\",\n            hostGroupType: \"MASTER\",\n            nodeCount: \"2\",\n            instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.id),\n            diskType: dataDisk.then(dataDisk =\u003e dataDisk.types?.[0]?.value),\n            diskCapacity: Promise.all([dataDisk, dataDisk]).then(([dataDisk, dataDisk1]) =\u003e dataDisk.types?.[0]?.min \u003e 160 ? dataDisk1.types?.[0]?.min : 160),\n            diskCount: \"1\",\n            sysDiskType: systemDisk.then(systemDisk =\u003e systemDisk.types?.[0]?.value),\n            sysDiskCapacity: Promise.all([systemDisk, systemDisk]).then(([systemDisk, systemDisk1]) =\u003e systemDisk.types?.[0]?.min \u003e 160 ? systemDisk1.types?.[0]?.min : 160),\n        },\n        {\n            hostGroupName: \"core_group\",\n            hostGroupType: \"CORE\",\n            nodeCount: \"3\",\n            instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.id),\n            diskType: dataDisk.then(dataDisk =\u003e dataDisk.types?.[0]?.value),\n            diskCapacity: Promise.all([dataDisk, dataDisk]).then(([dataDisk, dataDisk1]) =\u003e dataDisk.types?.[0]?.min \u003e 160 ? dataDisk1.types?.[0]?.min : 160),\n            diskCount: \"4\",\n            sysDiskType: systemDisk.then(systemDisk =\u003e systemDisk.types?.[0]?.value),\n            sysDiskCapacity: Promise.all([systemDisk, systemDisk]).then(([systemDisk, systemDisk1]) =\u003e systemDisk.types?.[0]?.min \u003e 160 ? systemDisk1.types?.[0]?.min : 160),\n        },\n        {\n            hostGroupName: \"task_group\",\n            hostGroupType: \"TASK\",\n            nodeCount: \"2\",\n            instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.id),\n            diskType: dataDisk.then(dataDisk =\u003e dataDisk.types?.[0]?.value),\n            diskCapacity: Promise.all([dataDisk, dataDisk]).then(([dataDisk, dataDisk1]) =\u003e dataDisk.types?.[0]?.min \u003e 160 ? dataDisk1.types?.[0]?.min : 160),\n            diskCount: \"4\",\n            sysDiskType: systemDisk.then(systemDisk =\u003e systemDisk.types?.[0]?.value),\n            sysDiskCapacity: Promise.all([systemDisk, systemDisk]).then(([systemDisk, systemDisk1]) =\u003e systemDisk.types?.[0]?.min \u003e 160 ? systemDisk1.types?.[0]?.min : 160),\n        },\n    ],\n    highAvailabilityEnable: true,\n    zoneId: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.types?.[0]?.zoneId),\n    securityGroupId: defaultSecurityGroup.id,\n    isOpenPublicIp: true,\n    chargeType: \"PostPaid\",\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    userDefinedEmrEcsRole: defaultRole.name,\n    sshEnable: true,\n    masterPwd: \"ABCtest1234!\",\n    tags: {\n        Created: \"TF\",\n        For: \"acceptance test\",\n    },\n});\nconst ids = alicloud.emr.getClusters({});\nexport const emrClusterId1 = ids.then(ids =\u003e ids.clusters?.[0]?.id);\nconst nameRegex = alicloud.emr.getClustersOutput({\n    nameRegex: defaultCluster.name,\n});\nexport const emrClusterId2 = nameRegex.apply(nameRegex =\u003e nameRegex.clusters?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-testAccClusters\"\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_get_main_versions = alicloud.emr.get_main_versions()\ndefault_get_instance_types = alicloud.emr.get_instance_types(destination_resource=\"InstanceType\",\n    cluster_type=default_get_main_versions.main_versions[0].cluster_types[0],\n    support_local_storage=False,\n    instance_charge_type=\"PostPaid\",\n    support_node_types=[\n        \"MASTER\",\n        \"CORE\",\n        \"TASK\",\n    ])\ndata_disk = alicloud.emr.get_disk_types(destination_resource=\"DataDisk\",\n    cluster_type=default_get_main_versions.main_versions[0].cluster_types[0],\n    instance_charge_type=\"PostPaid\",\n    instance_type=default_get_instance_types.types[0].id,\n    zone_id=default_get_instance_types.types[0].zone_id)\nsystem_disk = alicloud.emr.get_disk_types(destination_resource=\"SystemDisk\",\n    cluster_type=default_get_main_versions.main_versions[0].cluster_types[0],\n    instance_charge_type=\"PostPaid\",\n    instance_type=default_get_instance_types.types[0].id,\n    zone_id=default_get_instance_types.types[0].zone_id)\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"default-NODELETING\")\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=name,\n    vpc_id=default_get_networks.ids[0])\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default_get_instance_types.types[0].zone_id)\ndefault_role = alicloud.ram.Role(\"default\",\n    name=name,\n    document=\"\"\"    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n\"\"\",\n    description=\"this is a role test.\",\n    force=True)\ndefault_cluster = alicloud.emr.Cluster(\"default\",\n    name=name,\n    emr_ver=default_get_main_versions.main_versions[0].emr_version,\n    cluster_type=default_get_main_versions.main_versions[0].cluster_types[0],\n    host_groups=[\n        {\n            \"host_group_name\": \"master_group\",\n            \"host_group_type\": \"MASTER\",\n            \"node_count\": \"2\",\n            \"instance_type\": default_get_instance_types.types[0].id,\n            \"disk_type\": data_disk.types[0].value,\n            \"disk_capacity\": data_disk.types[0].min if data_disk.types[0].min \u003e 160 else \"160\",\n            \"disk_count\": \"1\",\n            \"sys_disk_type\": system_disk.types[0].value,\n            \"sys_disk_capacity\": system_disk.types[0].min if system_disk.types[0].min \u003e 160 else \"160\",\n        },\n        {\n            \"host_group_name\": \"core_group\",\n            \"host_group_type\": \"CORE\",\n            \"node_count\": \"3\",\n            \"instance_type\": default_get_instance_types.types[0].id,\n            \"disk_type\": data_disk.types[0].value,\n            \"disk_capacity\": data_disk.types[0].min if data_disk.types[0].min \u003e 160 else \"160\",\n            \"disk_count\": \"4\",\n            \"sys_disk_type\": system_disk.types[0].value,\n            \"sys_disk_capacity\": system_disk.types[0].min if system_disk.types[0].min \u003e 160 else \"160\",\n        },\n        {\n            \"host_group_name\": \"task_group\",\n            \"host_group_type\": \"TASK\",\n            \"node_count\": \"2\",\n            \"instance_type\": default_get_instance_types.types[0].id,\n            \"disk_type\": data_disk.types[0].value,\n            \"disk_capacity\": data_disk.types[0].min if data_disk.types[0].min \u003e 160 else \"160\",\n            \"disk_count\": \"4\",\n            \"sys_disk_type\": system_disk.types[0].value,\n            \"sys_disk_capacity\": system_disk.types[0].min if system_disk.types[0].min \u003e 160 else \"160\",\n        },\n    ],\n    high_availability_enable=True,\n    zone_id=default_get_instance_types.types[0].zone_id,\n    security_group_id=default_security_group.id,\n    is_open_public_ip=True,\n    charge_type=\"PostPaid\",\n    vswitch_id=default_get_switches.ids[0],\n    user_defined_emr_ecs_role=default_role.name,\n    ssh_enable=True,\n    master_pwd=\"ABCtest1234!\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"acceptance test\",\n    })\nids = alicloud.emr.get_clusters()\npulumi.export(\"emrClusterId1\", ids.clusters[0].id)\nname_regex = alicloud.emr.get_clusters_output(name_regex=default_cluster.name)\npulumi.export(\"emrClusterId2\", name_regex.clusters[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-testAccClusters\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultGetMainVersions = AliCloud.Emr.GetMainVersions.Invoke();\n\n    var defaultGetInstanceTypes = AliCloud.Emr.GetInstanceTypes.Invoke(new()\n    {\n        DestinationResource = \"InstanceType\",\n        ClusterType = defaultGetMainVersions.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0]),\n        SupportLocalStorage = false,\n        InstanceChargeType = \"PostPaid\",\n        SupportNodeTypes = new[]\n        {\n            \"MASTER\",\n            \"CORE\",\n            \"TASK\",\n        },\n    });\n\n    var dataDisk = AliCloud.Emr.GetDiskTypes.Invoke(new()\n    {\n        DestinationResource = \"DataDisk\",\n        ClusterType = defaultGetMainVersions.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0]),\n        InstanceChargeType = \"PostPaid\",\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId),\n    });\n\n    var systemDisk = AliCloud.Emr.GetDiskTypes.Invoke(new()\n    {\n        DestinationResource = \"SystemDisk\",\n        ClusterType = defaultGetMainVersions.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0]),\n        InstanceChargeType = \"PostPaid\",\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId),\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"default-NODELETING\",\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = name,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId),\n    });\n\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = name,\n        Document = @\"    {\n        \\\"\"Statement\\\"\": [\n        {\n            \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n            \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n            \\\"\"Principal\\\"\": {\n            \\\"\"Service\\\"\": [\n                \\\"\"emr.aliyuncs.com\\\"\",\n                \\\"\"ecs.aliyuncs.com\\\"\"\n            ]\n            }\n        }\n        ],\n        \\\"\"Version\\\"\": \\\"\"1\\\"\"\n    }\n\",\n        Description = \"this is a role test.\",\n        Force = true,\n    });\n\n    var defaultCluster = new AliCloud.Emr.Cluster(\"default\", new()\n    {\n        Name = name,\n        EmrVer = defaultGetMainVersions.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.EmrVersion),\n        ClusterType = defaultGetMainVersions.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes[0]),\n        HostGroups = new[]\n        {\n            new AliCloud.Emr.Inputs.ClusterHostGroupArgs\n            {\n                HostGroupName = \"master_group\",\n                HostGroupType = \"MASTER\",\n                NodeCount = \"2\",\n                InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n                DiskType = dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                DiskCapacity = Output.Tuple(dataDisk, dataDisk).Apply(values =\u003e\n                {\n                    var dataDisk = values.Item1;\n                    var dataDisk1 = values.Item2;\n                    return dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? dataDisk1.Types[0]?.Min : 160;\n                }),\n                DiskCount = \"1\",\n                SysDiskType = systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                SysDiskCapacity = Output.Tuple(systemDisk, systemDisk).Apply(values =\u003e\n                {\n                    var systemDisk = values.Item1;\n                    var systemDisk1 = values.Item2;\n                    return systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? systemDisk1.Types[0]?.Min : 160;\n                }),\n            },\n            new AliCloud.Emr.Inputs.ClusterHostGroupArgs\n            {\n                HostGroupName = \"core_group\",\n                HostGroupType = \"CORE\",\n                NodeCount = \"3\",\n                InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n                DiskType = dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                DiskCapacity = Output.Tuple(dataDisk, dataDisk).Apply(values =\u003e\n                {\n                    var dataDisk = values.Item1;\n                    var dataDisk1 = values.Item2;\n                    return dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? dataDisk1.Types[0]?.Min : 160;\n                }),\n                DiskCount = \"4\",\n                SysDiskType = systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                SysDiskCapacity = Output.Tuple(systemDisk, systemDisk).Apply(values =\u003e\n                {\n                    var systemDisk = values.Item1;\n                    var systemDisk1 = values.Item2;\n                    return systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? systemDisk1.Types[0]?.Min : 160;\n                }),\n            },\n            new AliCloud.Emr.Inputs.ClusterHostGroupArgs\n            {\n                HostGroupName = \"task_group\",\n                HostGroupType = \"TASK\",\n                NodeCount = \"2\",\n                InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id),\n                DiskType = dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                DiskCapacity = Output.Tuple(dataDisk, dataDisk).Apply(values =\u003e\n                {\n                    var dataDisk = values.Item1;\n                    var dataDisk1 = values.Item2;\n                    return dataDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? dataDisk1.Types[0]?.Min : 160;\n                }),\n                DiskCount = \"4\",\n                SysDiskType = systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value),\n                SysDiskCapacity = Output.Tuple(systemDisk, systemDisk).Apply(values =\u003e\n                {\n                    var systemDisk = values.Item1;\n                    var systemDisk1 = values.Item2;\n                    return systemDisk.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Min) \u003e 160 ? systemDisk1.Types[0]?.Min : 160;\n                }),\n            },\n        },\n        HighAvailabilityEnable = true,\n        ZoneId = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.ZoneId),\n        SecurityGroupId = defaultSecurityGroup.Id,\n        IsOpenPublicIp = true,\n        ChargeType = \"PostPaid\",\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        UserDefinedEmrEcsRole = defaultRole.Name,\n        SshEnable = true,\n        MasterPwd = \"ABCtest1234!\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"acceptance test\" },\n        },\n    });\n\n    var ids = AliCloud.Emr.GetClusters.Invoke();\n\n    var nameRegex = AliCloud.Emr.GetClusters.Invoke(new()\n    {\n        NameRegex = defaultCluster.Name,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"emrClusterId1\"] = ids.Apply(getClustersResult =\u003e getClustersResult.Clusters[0]?.Id),\n        [\"emrClusterId2\"] = nameRegex.Apply(getClustersResult =\u003e getClustersResult.Clusters[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/emr\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-testAccClusters\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetMainVersions, err := emr.GetMainVersions(ctx, \u0026emr.GetMainVersionsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := emr.GetInstanceTypes(ctx, \u0026emr.GetInstanceTypesArgs{\n\t\t\tDestinationResource: \"InstanceType\",\n\t\t\tClusterType:         defaultGetMainVersions.MainVersions[0].ClusterTypes[0],\n\t\t\tSupportLocalStorage: pulumi.BoolRef(false),\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tSupportNodeTypes: []string{\n\t\t\t\t\"MASTER\",\n\t\t\t\t\"CORE\",\n\t\t\t\t\"TASK\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdataDisk, err := emr.GetDiskTypes(ctx, \u0026emr.GetDiskTypesArgs{\n\t\t\tDestinationResource: \"DataDisk\",\n\t\t\tClusterType:         defaultGetMainVersions.MainVersions[0].ClusterTypes[0],\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tInstanceType:        defaultGetInstanceTypes.Types[0].Id,\n\t\t\tZoneId:              pulumi.StringRef(defaultGetInstanceTypes.Types[0].ZoneId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsystemDisk, err := emr.GetDiskTypes(ctx, \u0026emr.GetDiskTypesArgs{\n\t\t\tDestinationResource: \"SystemDisk\",\n\t\t\tClusterType:         defaultGetMainVersions.MainVersions[0].ClusterTypes[0],\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tInstanceType:        defaultGetInstanceTypes.Types[0].Id,\n\t\t\tZoneId:              pulumi.StringRef(defaultGetInstanceTypes.Types[0].ZoneId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"default-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(name),\n\t\t\tVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(defaultGetInstanceTypes.Types[0].ZoneId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.String(name),\n\t\t\tDocument: pulumi.String(`    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n`),\n\t\t\tDescription: pulumi.String(\"this is a role test.\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp0 pulumi.String\n\t\tif dataDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp0 = pulumi.Int(dataDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp0 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp1 pulumi.String\n\t\tif systemDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp1 = pulumi.Int(systemDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp1 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp2 pulumi.String\n\t\tif dataDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp2 = pulumi.Int(dataDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp2 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp3 pulumi.String\n\t\tif systemDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp3 = pulumi.Int(systemDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp3 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp4 pulumi.String\n\t\tif dataDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp4 = pulumi.Int(dataDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp4 = pulumi.String(\"160\")\n\t\t}\n\t\tvar tmp5 pulumi.String\n\t\tif systemDisk.Types[0].Min \u003e 160 {\n\t\t\ttmp5 = pulumi.Int(systemDisk.Types[0].Min)\n\t\t} else {\n\t\t\ttmp5 = pulumi.String(\"160\")\n\t\t}\n\t\tdefaultCluster, err := emr.NewCluster(ctx, \"default\", \u0026emr.ClusterArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tEmrVer:      pulumi.String(defaultGetMainVersions.MainVersions[0].EmrVersion),\n\t\t\tClusterType: pulumi.String(defaultGetMainVersions.MainVersions[0].ClusterTypes[0]),\n\t\t\tHostGroups: emr.ClusterHostGroupArray{\n\t\t\t\t\u0026emr.ClusterHostGroupArgs{\n\t\t\t\t\tHostGroupName:   pulumi.String(\"master_group\"),\n\t\t\t\t\tHostGroupType:   pulumi.String(\"MASTER\"),\n\t\t\t\t\tNodeCount:       pulumi.String(\"2\"),\n\t\t\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.Types[0].Id),\n\t\t\t\t\tDiskType:        pulumi.String(dataDisk.Types[0].Value),\n\t\t\t\t\tDiskCapacity:    pulumi.String(tmp0),\n\t\t\t\t\tDiskCount:       pulumi.String(\"1\"),\n\t\t\t\t\tSysDiskType:     pulumi.String(systemDisk.Types[0].Value),\n\t\t\t\t\tSysDiskCapacity: pulumi.String(tmp1),\n\t\t\t\t},\n\t\t\t\t\u0026emr.ClusterHostGroupArgs{\n\t\t\t\t\tHostGroupName:   pulumi.String(\"core_group\"),\n\t\t\t\t\tHostGroupType:   pulumi.String(\"CORE\"),\n\t\t\t\t\tNodeCount:       pulumi.String(\"3\"),\n\t\t\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.Types[0].Id),\n\t\t\t\t\tDiskType:        pulumi.String(dataDisk.Types[0].Value),\n\t\t\t\t\tDiskCapacity:    pulumi.String(tmp2),\n\t\t\t\t\tDiskCount:       pulumi.String(\"4\"),\n\t\t\t\t\tSysDiskType:     pulumi.String(systemDisk.Types[0].Value),\n\t\t\t\t\tSysDiskCapacity: pulumi.String(tmp3),\n\t\t\t\t},\n\t\t\t\t\u0026emr.ClusterHostGroupArgs{\n\t\t\t\t\tHostGroupName:   pulumi.String(\"task_group\"),\n\t\t\t\t\tHostGroupType:   pulumi.String(\"TASK\"),\n\t\t\t\t\tNodeCount:       pulumi.String(\"2\"),\n\t\t\t\t\tInstanceType:    pulumi.String(defaultGetInstanceTypes.Types[0].Id),\n\t\t\t\t\tDiskType:        pulumi.String(dataDisk.Types[0].Value),\n\t\t\t\t\tDiskCapacity:    pulumi.String(tmp4),\n\t\t\t\t\tDiskCount:       pulumi.String(\"4\"),\n\t\t\t\t\tSysDiskType:     pulumi.String(systemDisk.Types[0].Value),\n\t\t\t\t\tSysDiskCapacity: pulumi.String(tmp5),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHighAvailabilityEnable: pulumi.Bool(true),\n\t\t\tZoneId:                 pulumi.String(defaultGetInstanceTypes.Types[0].ZoneId),\n\t\t\tSecurityGroupId:        defaultSecurityGroup.ID(),\n\t\t\tIsOpenPublicIp:         pulumi.Bool(true),\n\t\t\tChargeType:             pulumi.String(\"PostPaid\"),\n\t\t\tVswitchId:              pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tUserDefinedEmrEcsRole:  defaultRole.Name,\n\t\t\tSshEnable:              pulumi.Bool(true),\n\t\t\tMasterPwd:              pulumi.String(\"ABCtest1234!\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"acceptance test\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids, err := emr.GetClusters(ctx, \u0026emr.GetClustersArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"emrClusterId1\", ids.Clusters[0].Id)\n\t\tnameRegex := emr.GetClustersOutput(ctx, emr.GetClustersOutputArgs{\n\t\t\tNameRegex: defaultCluster.Name,\n\t\t}, nil)\n\t\tctx.Export(\"emrClusterId2\", nameRegex.ApplyT(func(nameRegex emr.GetClustersResult) (*string, error) {\n\t\t\treturn \u0026nameRegex.Clusters[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.emr.EmrFunctions;\nimport com.pulumi.alicloud.emr.inputs.GetMainVersionsArgs;\nimport com.pulumi.alicloud.emr.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.emr.inputs.GetDiskTypesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.emr.Cluster;\nimport com.pulumi.alicloud.emr.ClusterArgs;\nimport com.pulumi.alicloud.emr.inputs.ClusterHostGroupArgs;\nimport com.pulumi.alicloud.emr.inputs.GetClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-testAccClusters\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        final var defaultGetMainVersions = EmrFunctions.getMainVersions(GetMainVersionsArgs.builder()\n            .build());\n\n        final var defaultGetInstanceTypes = EmrFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .destinationResource(\"InstanceType\")\n            .clusterType(defaultGetMainVersions.mainVersions()[0].clusterTypes()[0])\n            .supportLocalStorage(false)\n            .instanceChargeType(\"PostPaid\")\n            .supportNodeTypes(            \n                \"MASTER\",\n                \"CORE\",\n                \"TASK\")\n            .build());\n\n        final var dataDisk = EmrFunctions.getDiskTypes(GetDiskTypesArgs.builder()\n            .destinationResource(\"DataDisk\")\n            .clusterType(defaultGetMainVersions.mainVersions()[0].clusterTypes()[0])\n            .instanceChargeType(\"PostPaid\")\n            .instanceType(defaultGetInstanceTypes.types()[0].id())\n            .zoneId(defaultGetInstanceTypes.types()[0].zoneId())\n            .build());\n\n        final var systemDisk = EmrFunctions.getDiskTypes(GetDiskTypesArgs.builder()\n            .destinationResource(\"SystemDisk\")\n            .clusterType(defaultGetMainVersions.mainVersions()[0].clusterTypes()[0])\n            .instanceChargeType(\"PostPaid\")\n            .instanceType(defaultGetInstanceTypes.types()[0].id())\n            .zoneId(defaultGetInstanceTypes.types()[0].zoneId())\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"default-NODELETING\")\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(name)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(defaultGetInstanceTypes.types()[0].zoneId())\n            .build());\n\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .name(name)\n            .document(\"\"\"\n    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n            \"\"\")\n            .description(\"this is a role test.\")\n            .force(true)\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .name(name)\n            .emrVer(defaultGetMainVersions.mainVersions()[0].emrVersion())\n            .clusterType(defaultGetMainVersions.mainVersions()[0].clusterTypes()[0])\n            .hostGroups(            \n                ClusterHostGroupArgs.builder()\n                    .hostGroupName(\"master_group\")\n                    .hostGroupType(\"MASTER\")\n                    .nodeCount(\"2\")\n                    .instanceType(defaultGetInstanceTypes.types()[0].id())\n                    .diskType(dataDisk.types()[0].value())\n                    .diskCapacity(dataDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? dataDisk.types()[0].min() : \"160\")\n                    .diskCount(\"1\")\n                    .sysDiskType(systemDisk.types()[0].value())\n                    .sysDiskCapacity(systemDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? systemDisk.types()[0].min() : \"160\")\n                    .build(),\n                ClusterHostGroupArgs.builder()\n                    .hostGroupName(\"core_group\")\n                    .hostGroupType(\"CORE\")\n                    .nodeCount(\"3\")\n                    .instanceType(defaultGetInstanceTypes.types()[0].id())\n                    .diskType(dataDisk.types()[0].value())\n                    .diskCapacity(dataDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? dataDisk.types()[0].min() : \"160\")\n                    .diskCount(\"4\")\n                    .sysDiskType(systemDisk.types()[0].value())\n                    .sysDiskCapacity(systemDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? systemDisk.types()[0].min() : \"160\")\n                    .build(),\n                ClusterHostGroupArgs.builder()\n                    .hostGroupName(\"task_group\")\n                    .hostGroupType(\"TASK\")\n                    .nodeCount(\"2\")\n                    .instanceType(defaultGetInstanceTypes.types()[0].id())\n                    .diskType(dataDisk.types()[0].value())\n                    .diskCapacity(dataDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? dataDisk.types()[0].min() : \"160\")\n                    .diskCount(\"4\")\n                    .sysDiskType(systemDisk.types()[0].value())\n                    .sysDiskCapacity(systemDisk.types()[0].min().applyValue(___convert -\u003e ___convert \u003e 160) ? systemDisk.types()[0].min() : \"160\")\n                    .build())\n            .highAvailabilityEnable(true)\n            .zoneId(defaultGetInstanceTypes.types()[0].zoneId())\n            .securityGroupId(defaultSecurityGroup.id())\n            .isOpenPublicIp(true)\n            .chargeType(\"PostPaid\")\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .userDefinedEmrEcsRole(defaultRole.name())\n            .sshEnable(true)\n            .masterPwd(\"ABCtest1234!\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"acceptance test\")\n            ))\n            .build());\n\n        final var ids = EmrFunctions.getClusters(GetClustersArgs.builder()\n            .build());\n\n        ctx.export(\"emrClusterId1\", ids.clusters()[0].id());\n        final var nameRegex = EmrFunctions.getClusters(GetClustersArgs.builder()\n            .nameRegex(defaultCluster.name())\n            .build());\n\n        ctx.export(\"emrClusterId2\", nameRegex.applyValue(_nameRegex -\u003e _nameRegex.clusters()[0].id()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getClusters.\n","properties":{"clusterName":{"type":"string","description":"The cluster name.\n"},"clusterTypeLists":{"type":"array","items":{"type":"string"},"description":"The cluster type list.\n"},"createType":{"type":"string","description":"How to create a cluster. Valid values: `ON-DEMAND`, `MANUAL`.\n"},"defaultStatus":{"type":"boolean","description":"The default status.\n"},"depositType":{"type":"string","description":"The hosting type of the cluster. Valid values: `HALF_MANAGED`, `MANAGED`.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Cluster IDs.\n"},"isDesc":{"type":"boolean","description":"The is desc.\n"},"machineType":{"type":"string","description":"The host type of the cluster. The default is ECS. Valid values: `DOCKER`, `ECS`, `PYHSICAL_MACHINE`, `ECS_FROM_ECM_HOSTPOOL`.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Cluster name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"type":"string","description":"The Resource Group ID.\n"},"statusLists":{"type":"array","items":{"type":"string"},"description":"The status list. Valid values: `ABNORMAL`, `CREATE_FAILED`, `CREATING`, `IDLE`, `RELEASED`, `RELEASE_FAILED`, `RELEASING`, `RUNNING`, `WAIT_FOR_PAY`.\n"},"vpcId":{"type":"string","description":"The VPC ID.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getClusters.\n","properties":{"clusterName":{"type":"string"},"clusterTypeLists":{"items":{"type":"string"},"type":"array"},"clusters":{"items":{"$ref":"#/types/alicloud:emr/getClustersCluster:getClustersCluster"},"type":"array"},"createType":{"type":"string"},"defaultStatus":{"type":"boolean"},"depositType":{"type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"isDesc":{"type":"boolean"},"machineType":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"type":"string"},"statusLists":{"items":{"type":"string"},"type":"array"},"totalCount":{"type":"integer"},"vpcId":{"type":"string"}},"required":["clusters","ids","names","totalCount","id"],"type":"object"}},"alicloud:emr/getDiskTypes:getDiskTypes":{"description":"The \u003cspan pulumi-lang-nodejs=\"`alicloud.emr.getDiskTypes`\" pulumi-lang-dotnet=\"`alicloud.emr.getDiskTypes`\" pulumi-lang-go=\"`emr.getDiskTypes`\" pulumi-lang-python=\"`emr_get_disk_types`\" pulumi-lang-yaml=\"`alicloud.emr.getDiskTypes`\" pulumi-lang-java=\"`alicloud.emr.getDiskTypes`\"\u003e`alicloud.emr.getDiskTypes`\u003c/span\u003e data source provides a collection of data disk and \nsystem disk types available in Alibaba Cloud account when create a emr cluster.\n\n\u003e **NOTE:** Available in 1.60.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.emr.getDiskTypes({\n    destinationResource: \"DataDisk\",\n    instanceChargeType: \"PostPaid\",\n    clusterType: \"HADOOP\",\n    instanceType: \"ecs.g5.xlarge\",\n    zoneId: \"cn-huhehaote-a\",\n});\nexport const dataDiskType = _default.then(_default =\u003e _default.types?.[0]?.value);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.emr.get_disk_types(destination_resource=\"DataDisk\",\n    instance_charge_type=\"PostPaid\",\n    cluster_type=\"HADOOP\",\n    instance_type=\"ecs.g5.xlarge\",\n    zone_id=\"cn-huhehaote-a\")\npulumi.export(\"dataDiskType\", default.types[0].value)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Emr.GetDiskTypes.Invoke(new()\n    {\n        DestinationResource = \"DataDisk\",\n        InstanceChargeType = \"PostPaid\",\n        ClusterType = \"HADOOP\",\n        InstanceType = \"ecs.g5.xlarge\",\n        ZoneId = \"cn-huhehaote-a\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dataDiskType\"] = @default.Apply(@default =\u003e @default.Apply(getDiskTypesResult =\u003e getDiskTypesResult.Types[0]?.Value)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/emr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := emr.GetDiskTypes(ctx, \u0026emr.GetDiskTypesArgs{\n\t\t\tDestinationResource: \"DataDisk\",\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tClusterType:         \"HADOOP\",\n\t\t\tInstanceType:        \"ecs.g5.xlarge\",\n\t\t\tZoneId:              pulumi.StringRef(\"cn-huhehaote-a\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataDiskType\", _default.Types[0].Value)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.emr.EmrFunctions;\nimport com.pulumi.alicloud.emr.inputs.GetDiskTypesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EmrFunctions.getDiskTypes(GetDiskTypesArgs.builder()\n            .destinationResource(\"DataDisk\")\n            .instanceChargeType(\"PostPaid\")\n            .clusterType(\"HADOOP\")\n            .instanceType(\"ecs.g5.xlarge\")\n            .zoneId(\"cn-huhehaote-a\")\n            .build());\n\n        ctx.export(\"dataDiskType\", default_.types()[0].value());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:emr:getDiskTypes\n      arguments:\n        destinationResource: DataDisk\n        instanceChargeType: PostPaid\n        clusterType: HADOOP\n        instanceType: ecs.g5.xlarge\n        zoneId: cn-huhehaote-a\noutputs:\n  dataDiskType: ${default.types[0].value}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDiskTypes.\n","properties":{"clusterType":{"type":"string","description":"The cluster type of the emr cluster instance. Possible values: `HADOOP`, `KAFKA`, `ZOOKEEPER`, `DRUID`.\n"},"destinationResource":{"type":"string","description":"The destination resource of emr cluster instance\n"},"instanceChargeType":{"type":"string","description":"Filter the results by charge type. Valid values: `PrePaid` and `PostPaid`. Default to `PostPaid`.\n"},"instanceType":{"type":"string","description":"The ecs instance type of create emr cluster instance.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"zoneId":{"type":"string","description":"The Zone to create emr cluster instance.\n"}},"type":"object","required":["clusterType","destinationResource","instanceChargeType","instanceType"]},"outputs":{"description":"A collection of values returned by getDiskTypes.\n","properties":{"clusterType":{"type":"string"},"destinationResource":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of data disk and system disk type IDs.\n","items":{"type":"string"},"type":"array"},"instanceChargeType":{"type":"string"},"instanceType":{"type":"string"},"outputFile":{"type":"string"},"types":{"description":"A list of emr instance types. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:emr/getDiskTypesType:getDiskTypesType"},"type":"array"},"zoneId":{"type":"string"}},"required":["clusterType","destinationResource","ids","instanceChargeType","instanceType","types","id"],"type":"object"}},"alicloud:emr/getInstanceTypes:getInstanceTypes":{"description":"The \u003cspan pulumi-lang-nodejs=\"`alicloud.emr.getInstanceTypes`\" pulumi-lang-dotnet=\"`alicloud.emr.getInstanceTypes`\" pulumi-lang-go=\"`emr.getInstanceTypes`\" pulumi-lang-python=\"`emr_get_instance_types`\" pulumi-lang-yaml=\"`alicloud.emr.getInstanceTypes`\" pulumi-lang-java=\"`alicloud.emr.getInstanceTypes`\"\u003e`alicloud.emr.getInstanceTypes`\u003c/span\u003e data source provides a collection of ecs\ninstance types available in Alibaba Cloud account when create a emr cluster.\n\n\u003e **NOTE:** Available in 1.59.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.emr.getInstanceTypes({\n    destinationResource: \"InstanceType\",\n    instanceChargeType: \"PostPaid\",\n    supportLocalStorage: false,\n    clusterType: \"HADOOP\",\n    instanceType: \"ecs.g5.2xlarge\",\n    supportNodeTypes: [\n        \"MASTER\",\n        \"CORE\",\n    ],\n});\nexport const firstInstanceType = _default.then(_default =\u003e _default.types?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.emr.get_instance_types(destination_resource=\"InstanceType\",\n    instance_charge_type=\"PostPaid\",\n    support_local_storage=False,\n    cluster_type=\"HADOOP\",\n    instance_type=\"ecs.g5.2xlarge\",\n    support_node_types=[\n        \"MASTER\",\n        \"CORE\",\n    ])\npulumi.export(\"firstInstanceType\", default.types[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Emr.GetInstanceTypes.Invoke(new()\n    {\n        DestinationResource = \"InstanceType\",\n        InstanceChargeType = \"PostPaid\",\n        SupportLocalStorage = false,\n        ClusterType = \"HADOOP\",\n        InstanceType = \"ecs.g5.2xlarge\",\n        SupportNodeTypes = new[]\n        {\n            \"MASTER\",\n            \"CORE\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstInstanceType\"] = @default.Apply(@default =\u003e @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/emr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := emr.GetInstanceTypes(ctx, \u0026emr.GetInstanceTypesArgs{\n\t\t\tDestinationResource: \"InstanceType\",\n\t\t\tInstanceChargeType:  \"PostPaid\",\n\t\t\tSupportLocalStorage: pulumi.BoolRef(false),\n\t\t\tClusterType:         \"HADOOP\",\n\t\t\tInstanceType:        pulumi.StringRef(\"ecs.g5.2xlarge\"),\n\t\t\tSupportNodeTypes: []string{\n\t\t\t\t\"MASTER\",\n\t\t\t\t\"CORE\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstInstanceType\", _default.Types[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.emr.EmrFunctions;\nimport com.pulumi.alicloud.emr.inputs.GetInstanceTypesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EmrFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .destinationResource(\"InstanceType\")\n            .instanceChargeType(\"PostPaid\")\n            .supportLocalStorage(false)\n            .clusterType(\"HADOOP\")\n            .instanceType(\"ecs.g5.2xlarge\")\n            .supportNodeTypes(            \n                \"MASTER\",\n                \"CORE\")\n            .build());\n\n        ctx.export(\"firstInstanceType\", default_.types()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:emr:getInstanceTypes\n      arguments:\n        destinationResource: InstanceType\n        instanceChargeType: PostPaid\n        supportLocalStorage: false\n        clusterType: HADOOP\n        instanceType: ecs.g5.2xlarge\n        supportNodeTypes:\n          - MASTER\n          - CORE\noutputs:\n  firstInstanceType: ${default.types[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceTypes.\n","properties":{"clusterType":{"type":"string","description":"The cluster type of the emr cluster instance. Possible values: `HADOOP`, `KAFKA`, `ZOOKEEPER`, `DRUID`.\n"},"destinationResource":{"type":"string","description":"The destination resource of emr cluster instance\n"},"instanceChargeType":{"type":"string","description":"Filter the results by charge type. Valid values: `PrePaid` and `PostPaid`. Default to `PostPaid`.\n"},"instanceType":{"type":"string","description":"Filter the specific ecs instance type to create emr cluster.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"supportLocalStorage":{"type":"boolean","description":"Whether the current storage disk is local or not.\n"},"supportNodeTypes":{"type":"array","items":{"type":"string"},"description":"The specific supported node type list.\nPossible values may be any one or combination of these: [\"MASTER\", \"CORE\", \"TASK\", \"GATEWAY\"]\n"},"zoneId":{"type":"string","description":"The supported resources of specific zoneId.\n"}},"type":"object","required":["clusterType","destinationResource","instanceChargeType"]},"outputs":{"description":"A collection of values returned by getInstanceTypes.\n","properties":{"clusterType":{"type":"string"},"destinationResource":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of emr instance types IDs.\n","items":{"type":"string"},"type":"array"},"instanceChargeType":{"type":"string"},"instanceType":{"type":"string"},"outputFile":{"type":"string"},"supportLocalStorage":{"type":"boolean"},"supportNodeTypes":{"items":{"type":"string"},"type":"array"},"types":{"description":"A list of emr instance types. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:emr/getInstanceTypesType:getInstanceTypesType"},"type":"array"},"zoneId":{"description":"The available zone id in Alibaba Cloud account\n","type":"string"}},"required":["clusterType","destinationResource","ids","instanceChargeType","types","id"],"type":"object"}},"alicloud:emr/getMainVersions:getMainVersions":{"description":"The \u003cspan pulumi-lang-nodejs=\"`alicloud.emr.getMainVersions`\" pulumi-lang-dotnet=\"`alicloud.emr.getMainVersions`\" pulumi-lang-go=\"`emr.getMainVersions`\" pulumi-lang-python=\"`emr_get_main_versions`\" pulumi-lang-yaml=\"`alicloud.emr.getMainVersions`\" pulumi-lang-java=\"`alicloud.emr.getMainVersions`\"\u003e`alicloud.emr.getMainVersions`\u003c/span\u003e data source provides a collection of emr \nmain versions available in Alibaba Cloud account when create a emr cluster.\n\n\u003e **NOTE:** Available in 1.59.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.emr.getMainVersions({\n    emrVersion: \"EMR-3.22.0\",\n    clusterTypes: [\n        \"HADOOP\",\n        \"ZOOKEEPER\",\n    ],\n});\nexport const firstMainVersion = _default.then(_default =\u003e _default.mainVersions?.[0]?.emrVersion);\nexport const thisClusterTypes = _default.then(_default =\u003e _default.mainVersions?.[0]?.clusterTypes);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.emr.get_main_versions(emr_version=\"EMR-3.22.0\",\n    cluster_types=[\n        \"HADOOP\",\n        \"ZOOKEEPER\",\n    ])\npulumi.export(\"firstMainVersion\", default.main_versions[0].emr_version)\npulumi.export(\"thisClusterTypes\", default.main_versions[0].cluster_types)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Emr.GetMainVersions.Invoke(new()\n    {\n        EmrVersion = \"EMR-3.22.0\",\n        ClusterTypes = new[]\n        {\n            \"HADOOP\",\n            \"ZOOKEEPER\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstMainVersion\"] = @default.Apply(@default =\u003e @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.EmrVersion)),\n        [\"thisClusterTypes\"] = @default.Apply(@default =\u003e @default.Apply(getMainVersionsResult =\u003e getMainVersionsResult.MainVersions[0]?.ClusterTypes)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/emr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := emr.GetMainVersions(ctx, \u0026emr.GetMainVersionsArgs{\n\t\t\tEmrVersion: pulumi.StringRef(\"EMR-3.22.0\"),\n\t\t\tClusterTypes: []string{\n\t\t\t\t\"HADOOP\",\n\t\t\t\t\"ZOOKEEPER\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstMainVersion\", _default.MainVersions[0].EmrVersion)\n\t\tctx.Export(\"thisClusterTypes\", _default.MainVersions[0].ClusterTypes)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.emr.EmrFunctions;\nimport com.pulumi.alicloud.emr.inputs.GetMainVersionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EmrFunctions.getMainVersions(GetMainVersionsArgs.builder()\n            .emrVersion(\"EMR-3.22.0\")\n            .clusterTypes(            \n                \"HADOOP\",\n                \"ZOOKEEPER\")\n            .build());\n\n        ctx.export(\"firstMainVersion\", default_.mainVersions()[0].emrVersion());\n        ctx.export(\"thisClusterTypes\", default_.mainVersions()[0].clusterTypes());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:emr:getMainVersions\n      arguments:\n        emrVersion: EMR-3.22.0\n        clusterTypes:\n          - HADOOP\n          - ZOOKEEPER\noutputs:\n  firstMainVersion: ${default.mainVersions[0].emrVersion}\n  thisClusterTypes: ${default.mainVersions[0].clusterTypes}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMainVersions.\n","properties":{"clusterTypes":{"type":"array","items":{"type":"string"},"description":"The supported clusterType of this emr version.\nPossible values may be any one or combination of these: [\"HADOOP\", \"DRUID\", \"KAFKA\", \"ZOOKEEPER\", \"FLINK\", \"CLICKHOUSE\"]\n"},"emrVersion":{"type":"string","description":"The version of the emr cluster instance. Possible values: `EMR-4.0.0`, `EMR-3.23.0`, `EMR-3.22.0`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getMainVersions.\n","properties":{"clusterTypes":{"items":{"type":"string"},"type":"array"},"emrVersion":{"description":"The version of the emr cluster instance.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of emr instance types IDs.\n","items":{"type":"string"},"type":"array"},"mainVersions":{"description":"A list of versions of the emr cluster instance. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:emr/getMainVersionsMainVersion:getMainVersionsMainVersion"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","mainVersions","id"],"type":"object"}},"alicloud:emrv2/getClusterInstances:getClusterInstances":{"description":"This data source provides the Emr Cluster ecs instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.243.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultGetZones = alicloud.getZones({\n    availableInstanceType: \"ecs.g7.xlarge\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"TF-VPC\",\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n    vswitchName: \"TF_VSwitch\",\n});\nconst defaultEcsKeyPair = new alicloud.ecs.EcsKeyPair(\"default\", {keyPairName: \"terraform-kp\"});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: \"TF_SECURITY_GROUP\",\n    vpcId: defaultNetwork.id,\n});\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    name: \"emrtf\",\n    document: `    {\n        \\\\\"Statement\\\\\": [\n        {\n            \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n            \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n            \\\\\"Principal\\\\\": {\n            \\\\\"Service\\\\\": [\n                \\\\\"emr.aliyuncs.com\\\\\",\n                \\\\\"ecs.aliyuncs.com\\\\\"\n            ]\n            }\n        }\n        ],\n        \\\\\"Version\\\\\": \\\\\"1\\\\\"\n    }\n`,\n    description: \"this is a role test.\",\n    force: true,\n});\nconst defaultCluster = new alicloud.emrv2.Cluster(\"default\", {\n    paymentType: \"PayAsYouGo\",\n    clusterType: \"DATALAKE\",\n    releaseVersion: \"EMR-5.10.0\",\n    clusterName: \"terraform-emr-cluster-v2\",\n    deployMode: \"NORMAL\",\n    securityMode: \"NORMAL\",\n    applications: [\n        \"HADOOP-COMMON\",\n        \"HDFS\",\n        \"YARN\",\n        \"HIVE\",\n        \"SPARK3\",\n        \"TEZ\",\n    ],\n    applicationConfigs: [\n        {\n            applicationName: \"HIVE\",\n            configFileName: \"hivemetastore-site.xml\",\n            configItemKey: \"hive.metastore.type\",\n            configItemValue: \"DLF\",\n            configScope: \"CLUSTER\",\n        },\n        {\n            applicationName: \"SPARK3\",\n            configFileName: \"hive-site.xml\",\n            configItemKey: \"hive.metastore.type\",\n            configItemValue: \"DLF\",\n            configScope: \"CLUSTER\",\n        },\n    ],\n    nodeAttributes: [{\n        ramRole: defaultRole.name,\n        securityGroupId: defaultSecurityGroup.id,\n        vpcId: defaultNetwork.id,\n        zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n        keyPairName: defaultEcsKeyPair.id,\n    }],\n    tags: {\n        created: \"tf\",\n    },\n    nodeGroups: [\n        {\n            nodeGroupType: \"MASTER\",\n            nodeGroupName: \"emr-master\",\n            paymentType: \"PayAsYouGo\",\n            vswitchIds: [defaultSwitch.id],\n            withPublicIp: false,\n            instanceTypes: [\"ecs.g7.xlarge\"],\n            nodeCount: 1,\n            systemDisk: {\n                category: \"cloud_essd\",\n                size: 80,\n                count: 1,\n            },\n            dataDisks: [{\n                category: \"cloud_essd\",\n                size: 80,\n                count: 3,\n            }],\n        },\n        {\n            nodeGroupType: \"CORE\",\n            nodeGroupName: \"emr-core\",\n            paymentType: \"PayAsYouGo\",\n            vswitchIds: [defaultSwitch.id],\n            withPublicIp: false,\n            instanceTypes: [\"ecs.g7.xlarge\"],\n            nodeCount: 3,\n            systemDisk: {\n                category: \"cloud_essd\",\n                size: 80,\n                count: 1,\n            },\n            dataDisks: [{\n                category: \"cloud_essd\",\n                size: 80,\n                count: 3,\n            }],\n        },\n    ],\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n});\nconst ids = alicloud.emrv2.getClusterInstances({});\nexport const emrv2ClusterInstancesId1 = ids.then(ids =\u003e ids.instances?.[0]?.instanceId);\nconst nodeGroupNames = alicloud.emrv2.getClusterInstances({\n    nodeGroupNames: [\"emr-core\"],\n});\nexport const emrv2ClusterInstancesId2 = nodeGroupNames.then(nodeGroupNames =\u003e nodeGroupNames.instances?.[0]?.instanceId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_get_zones = alicloud.get_zones(available_instance_type=\"ecs.g7.xlarge\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"TF-VPC\",\n    cidr_block=\"172.16.0.0/12\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default_get_zones.zones[0].id,\n    vswitch_name=\"TF_VSwitch\")\ndefault_ecs_key_pair = alicloud.ecs.EcsKeyPair(\"default\", key_pair_name=\"terraform-kp\")\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=\"TF_SECURITY_GROUP\",\n    vpc_id=default_network.id)\ndefault_role = alicloud.ram.Role(\"default\",\n    name=\"emrtf\",\n    document=\"\"\"    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n\"\"\",\n    description=\"this is a role test.\",\n    force=True)\ndefault_cluster = alicloud.emrv2.Cluster(\"default\",\n    payment_type=\"PayAsYouGo\",\n    cluster_type=\"DATALAKE\",\n    release_version=\"EMR-5.10.0\",\n    cluster_name=\"terraform-emr-cluster-v2\",\n    deploy_mode=\"NORMAL\",\n    security_mode=\"NORMAL\",\n    applications=[\n        \"HADOOP-COMMON\",\n        \"HDFS\",\n        \"YARN\",\n        \"HIVE\",\n        \"SPARK3\",\n        \"TEZ\",\n    ],\n    application_configs=[\n        {\n            \"application_name\": \"HIVE\",\n            \"config_file_name\": \"hivemetastore-site.xml\",\n            \"config_item_key\": \"hive.metastore.type\",\n            \"config_item_value\": \"DLF\",\n            \"config_scope\": \"CLUSTER\",\n        },\n        {\n            \"application_name\": \"SPARK3\",\n            \"config_file_name\": \"hive-site.xml\",\n            \"config_item_key\": \"hive.metastore.type\",\n            \"config_item_value\": \"DLF\",\n            \"config_scope\": \"CLUSTER\",\n        },\n    ],\n    node_attributes=[{\n        \"ram_role\": default_role.name,\n        \"security_group_id\": default_security_group.id,\n        \"vpc_id\": default_network.id,\n        \"zone_id\": default_get_zones.zones[0].id,\n        \"key_pair_name\": default_ecs_key_pair.id,\n    }],\n    tags={\n        \"created\": \"tf\",\n    },\n    node_groups=[\n        {\n            \"node_group_type\": \"MASTER\",\n            \"node_group_name\": \"emr-master\",\n            \"payment_type\": \"PayAsYouGo\",\n            \"vswitch_ids\": [default_switch.id],\n            \"with_public_ip\": False,\n            \"instance_types\": [\"ecs.g7.xlarge\"],\n            \"node_count\": 1,\n            \"system_disk\": {\n                \"category\": \"cloud_essd\",\n                \"size\": 80,\n                \"count\": 1,\n            },\n            \"data_disks\": [{\n                \"category\": \"cloud_essd\",\n                \"size\": 80,\n                \"count\": 3,\n            }],\n        },\n        {\n            \"node_group_type\": \"CORE\",\n            \"node_group_name\": \"emr-core\",\n            \"payment_type\": \"PayAsYouGo\",\n            \"vswitch_ids\": [default_switch.id],\n            \"with_public_ip\": False,\n            \"instance_types\": [\"ecs.g7.xlarge\"],\n            \"node_count\": 3,\n            \"system_disk\": {\n                \"category\": \"cloud_essd\",\n                \"size\": 80,\n                \"count\": 1,\n            },\n            \"data_disks\": [{\n                \"category\": \"cloud_essd\",\n                \"size\": 80,\n                \"count\": 3,\n            }],\n        },\n    ],\n    resource_group_id=default.ids[0])\nids = alicloud.emrv2.get_cluster_instances()\npulumi.export(\"emrv2ClusterInstancesId1\", ids.instances[0].instance_id)\nnode_group_names = alicloud.emrv2.get_cluster_instances(node_group_names=[\"emr-core\"])\npulumi.export(\"emrv2ClusterInstancesId2\", node_group_names.instances[0].instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableInstanceType = \"ecs.g7.xlarge\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"TF-VPC\",\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = \"TF_VSwitch\",\n    });\n\n    var defaultEcsKeyPair = new AliCloud.Ecs.EcsKeyPair(\"default\", new()\n    {\n        KeyPairName = \"terraform-kp\",\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = \"TF_SECURITY_GROUP\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = \"emrtf\",\n        Document = @\"    {\n        \\\"\"Statement\\\"\": [\n        {\n            \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n            \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n            \\\"\"Principal\\\"\": {\n            \\\"\"Service\\\"\": [\n                \\\"\"emr.aliyuncs.com\\\"\",\n                \\\"\"ecs.aliyuncs.com\\\"\"\n            ]\n            }\n        }\n        ],\n        \\\"\"Version\\\"\": \\\"\"1\\\"\"\n    }\n\",\n        Description = \"this is a role test.\",\n        Force = true,\n    });\n\n    var defaultCluster = new AliCloud.Emrv2.Cluster(\"default\", new()\n    {\n        PaymentType = \"PayAsYouGo\",\n        ClusterType = \"DATALAKE\",\n        ReleaseVersion = \"EMR-5.10.0\",\n        ClusterName = \"terraform-emr-cluster-v2\",\n        DeployMode = \"NORMAL\",\n        SecurityMode = \"NORMAL\",\n        Applications = new[]\n        {\n            \"HADOOP-COMMON\",\n            \"HDFS\",\n            \"YARN\",\n            \"HIVE\",\n            \"SPARK3\",\n            \"TEZ\",\n        },\n        ApplicationConfigs = new[]\n        {\n            new AliCloud.Emrv2.Inputs.ClusterApplicationConfigArgs\n            {\n                ApplicationName = \"HIVE\",\n                ConfigFileName = \"hivemetastore-site.xml\",\n                ConfigItemKey = \"hive.metastore.type\",\n                ConfigItemValue = \"DLF\",\n                ConfigScope = \"CLUSTER\",\n            },\n            new AliCloud.Emrv2.Inputs.ClusterApplicationConfigArgs\n            {\n                ApplicationName = \"SPARK3\",\n                ConfigFileName = \"hive-site.xml\",\n                ConfigItemKey = \"hive.metastore.type\",\n                ConfigItemValue = \"DLF\",\n                ConfigScope = \"CLUSTER\",\n            },\n        },\n        NodeAttributes = new[]\n        {\n            new AliCloud.Emrv2.Inputs.ClusterNodeAttributeArgs\n            {\n                RamRole = defaultRole.Name,\n                SecurityGroupId = defaultSecurityGroup.Id,\n                VpcId = defaultNetwork.Id,\n                ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n                KeyPairName = defaultEcsKeyPair.Id,\n            },\n        },\n        Tags = \n        {\n            { \"created\", \"tf\" },\n        },\n        NodeGroups = new[]\n        {\n            new AliCloud.Emrv2.Inputs.ClusterNodeGroupArgs\n            {\n                NodeGroupType = \"MASTER\",\n                NodeGroupName = \"emr-master\",\n                PaymentType = \"PayAsYouGo\",\n                VswitchIds = new[]\n                {\n                    defaultSwitch.Id,\n                },\n                WithPublicIp = false,\n                InstanceTypes = new[]\n                {\n                    \"ecs.g7.xlarge\",\n                },\n                NodeCount = 1,\n                SystemDisk = new AliCloud.Emrv2.Inputs.ClusterNodeGroupSystemDiskArgs\n                {\n                    Category = \"cloud_essd\",\n                    Size = 80,\n                    Count = 1,\n                },\n                DataDisks = new[]\n                {\n                    new AliCloud.Emrv2.Inputs.ClusterNodeGroupDataDiskArgs\n                    {\n                        Category = \"cloud_essd\",\n                        Size = 80,\n                        Count = 3,\n                    },\n                },\n            },\n            new AliCloud.Emrv2.Inputs.ClusterNodeGroupArgs\n            {\n                NodeGroupType = \"CORE\",\n                NodeGroupName = \"emr-core\",\n                PaymentType = \"PayAsYouGo\",\n                VswitchIds = new[]\n                {\n                    defaultSwitch.Id,\n                },\n                WithPublicIp = false,\n                InstanceTypes = new[]\n                {\n                    \"ecs.g7.xlarge\",\n                },\n                NodeCount = 3,\n                SystemDisk = new AliCloud.Emrv2.Inputs.ClusterNodeGroupSystemDiskArgs\n                {\n                    Category = \"cloud_essd\",\n                    Size = 80,\n                    Count = 1,\n                },\n                DataDisks = new[]\n                {\n                    new AliCloud.Emrv2.Inputs.ClusterNodeGroupDataDiskArgs\n                    {\n                        Category = \"cloud_essd\",\n                        Size = 80,\n                        Count = 3,\n                    },\n                },\n            },\n        },\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n    });\n\n    var ids = AliCloud.Emrv2.GetClusterInstances.Invoke();\n\n    var nodeGroupNames = AliCloud.Emrv2.GetClusterInstances.Invoke(new()\n    {\n        NodeGroupNames = new[]\n        {\n            \"emr-core\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"emrv2ClusterInstancesId1\"] = ids.Apply(getClusterInstancesResult =\u003e getClusterInstancesResult.Instances[0]?.InstanceId),\n        [\"emrv2ClusterInstancesId2\"] = nodeGroupNames.Apply(getClusterInstancesResult =\u003e getClusterInstancesResult.Instances[0]?.InstanceId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/emrv2\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableInstanceType: pulumi.StringRef(\"ecs.g7.xlarge\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"TF-VPC\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(\"TF_VSwitch\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcsKeyPair, err := ecs.NewEcsKeyPair(ctx, \"default\", \u0026ecs.EcsKeyPairArgs{\n\t\t\tKeyPairName: pulumi.String(\"terraform-kp\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(\"TF_SECURITY_GROUP\"),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.String(\"emrtf\"),\n\t\t\tDocument: pulumi.String(`    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n`),\n\t\t\tDescription: pulumi.String(\"this is a role test.\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = emrv2.NewCluster(ctx, \"default\", \u0026emrv2.ClusterArgs{\n\t\t\tPaymentType:    pulumi.String(\"PayAsYouGo\"),\n\t\t\tClusterType:    pulumi.String(\"DATALAKE\"),\n\t\t\tReleaseVersion: pulumi.String(\"EMR-5.10.0\"),\n\t\t\tClusterName:    pulumi.String(\"terraform-emr-cluster-v2\"),\n\t\t\tDeployMode:     pulumi.String(\"NORMAL\"),\n\t\t\tSecurityMode:   pulumi.String(\"NORMAL\"),\n\t\t\tApplications: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"HADOOP-COMMON\"),\n\t\t\t\tpulumi.String(\"HDFS\"),\n\t\t\t\tpulumi.String(\"YARN\"),\n\t\t\t\tpulumi.String(\"HIVE\"),\n\t\t\t\tpulumi.String(\"SPARK3\"),\n\t\t\t\tpulumi.String(\"TEZ\"),\n\t\t\t},\n\t\t\tApplicationConfigs: emrv2.ClusterApplicationConfigArray{\n\t\t\t\t\u0026emrv2.ClusterApplicationConfigArgs{\n\t\t\t\t\tApplicationName: pulumi.String(\"HIVE\"),\n\t\t\t\t\tConfigFileName:  pulumi.String(\"hivemetastore-site.xml\"),\n\t\t\t\t\tConfigItemKey:   pulumi.String(\"hive.metastore.type\"),\n\t\t\t\t\tConfigItemValue: pulumi.String(\"DLF\"),\n\t\t\t\t\tConfigScope:     pulumi.String(\"CLUSTER\"),\n\t\t\t\t},\n\t\t\t\t\u0026emrv2.ClusterApplicationConfigArgs{\n\t\t\t\t\tApplicationName: pulumi.String(\"SPARK3\"),\n\t\t\t\t\tConfigFileName:  pulumi.String(\"hive-site.xml\"),\n\t\t\t\t\tConfigItemKey:   pulumi.String(\"hive.metastore.type\"),\n\t\t\t\t\tConfigItemValue: pulumi.String(\"DLF\"),\n\t\t\t\t\tConfigScope:     pulumi.String(\"CLUSTER\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNodeAttributes: emrv2.ClusterNodeAttributeArray{\n\t\t\t\t\u0026emrv2.ClusterNodeAttributeArgs{\n\t\t\t\t\tRamRole:         defaultRole.Name,\n\t\t\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t\t\t\tZoneId:          pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\t\t\tKeyPairName:     defaultEcsKeyPair.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"created\": pulumi.String(\"tf\"),\n\t\t\t},\n\t\t\tNodeGroups: emrv2.ClusterNodeGroupArray{\n\t\t\t\t\u0026emrv2.ClusterNodeGroupArgs{\n\t\t\t\t\tNodeGroupType: pulumi.String(\"MASTER\"),\n\t\t\t\t\tNodeGroupName: pulumi.String(\"emr-master\"),\n\t\t\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\t\t\tdefaultSwitch.ID(),\n\t\t\t\t\t},\n\t\t\t\t\tWithPublicIp: pulumi.Bool(false),\n\t\t\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ecs.g7.xlarge\"),\n\t\t\t\t\t},\n\t\t\t\t\tNodeCount: pulumi.Int(1),\n\t\t\t\t\tSystemDisk: \u0026emrv2.ClusterNodeGroupSystemDiskArgs{\n\t\t\t\t\t\tCategory: pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\tSize:     pulumi.Int(80),\n\t\t\t\t\t\tCount:    pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t\tDataDisks: emrv2.ClusterNodeGroupDataDiskArray{\n\t\t\t\t\t\t\u0026emrv2.ClusterNodeGroupDataDiskArgs{\n\t\t\t\t\t\t\tCategory: pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\t\tSize:     pulumi.Int(80),\n\t\t\t\t\t\t\tCount:    pulumi.Int(3),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026emrv2.ClusterNodeGroupArgs{\n\t\t\t\t\tNodeGroupType: pulumi.String(\"CORE\"),\n\t\t\t\t\tNodeGroupName: pulumi.String(\"emr-core\"),\n\t\t\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\t\t\tdefaultSwitch.ID(),\n\t\t\t\t\t},\n\t\t\t\t\tWithPublicIp: pulumi.Bool(false),\n\t\t\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ecs.g7.xlarge\"),\n\t\t\t\t\t},\n\t\t\t\t\tNodeCount: pulumi.Int(3),\n\t\t\t\t\tSystemDisk: \u0026emrv2.ClusterNodeGroupSystemDiskArgs{\n\t\t\t\t\t\tCategory: pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\tSize:     pulumi.Int(80),\n\t\t\t\t\t\tCount:    pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t\tDataDisks: emrv2.ClusterNodeGroupDataDiskArray{\n\t\t\t\t\t\t\u0026emrv2.ClusterNodeGroupDataDiskArgs{\n\t\t\t\t\t\t\tCategory: pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\t\tSize:     pulumi.Int(80),\n\t\t\t\t\t\t\tCount:    pulumi.Int(3),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupId: pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids, err := emrv2.GetClusterInstances(ctx, \u0026emrv2.GetClusterInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"emrv2ClusterInstancesId1\", ids.Instances[0].InstanceId)\n\t\tnodeGroupNames, err := emrv2.GetClusterInstances(ctx, \u0026emrv2.GetClusterInstancesArgs{\n\t\t\tNodeGroupNames: []string{\n\t\t\t\t\"emr-core\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"emrv2ClusterInstancesId2\", nodeGroupNames.Instances[0].InstanceId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.EcsKeyPair;\nimport com.pulumi.alicloud.ecs.EcsKeyPairArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.emrv2.Cluster;\nimport com.pulumi.alicloud.emrv2.ClusterArgs;\nimport com.pulumi.alicloud.emrv2.inputs.ClusterApplicationConfigArgs;\nimport com.pulumi.alicloud.emrv2.inputs.ClusterNodeAttributeArgs;\nimport com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupArgs;\nimport com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupSystemDiskArgs;\nimport com.pulumi.alicloud.emrv2.Emrv2Functions;\nimport com.pulumi.alicloud.emrv2.inputs.GetClusterInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableInstanceType(\"ecs.g7.xlarge\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"TF-VPC\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(defaultGetZones.zones()[0].id())\n            .vswitchName(\"TF_VSwitch\")\n            .build());\n\n        var defaultEcsKeyPair = new EcsKeyPair(\"defaultEcsKeyPair\", EcsKeyPairArgs.builder()\n            .keyPairName(\"terraform-kp\")\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"TF_SECURITY_GROUP\")\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .name(\"emrtf\")\n            .document(\"\"\"\n    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n            \"\"\")\n            .description(\"this is a role test.\")\n            .force(true)\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .paymentType(\"PayAsYouGo\")\n            .clusterType(\"DATALAKE\")\n            .releaseVersion(\"EMR-5.10.0\")\n            .clusterName(\"terraform-emr-cluster-v2\")\n            .deployMode(\"NORMAL\")\n            .securityMode(\"NORMAL\")\n            .applications(            \n                \"HADOOP-COMMON\",\n                \"HDFS\",\n                \"YARN\",\n                \"HIVE\",\n                \"SPARK3\",\n                \"TEZ\")\n            .applicationConfigs(            \n                ClusterApplicationConfigArgs.builder()\n                    .applicationName(\"HIVE\")\n                    .configFileName(\"hivemetastore-site.xml\")\n                    .configItemKey(\"hive.metastore.type\")\n                    .configItemValue(\"DLF\")\n                    .configScope(\"CLUSTER\")\n                    .build(),\n                ClusterApplicationConfigArgs.builder()\n                    .applicationName(\"SPARK3\")\n                    .configFileName(\"hive-site.xml\")\n                    .configItemKey(\"hive.metastore.type\")\n                    .configItemValue(\"DLF\")\n                    .configScope(\"CLUSTER\")\n                    .build())\n            .nodeAttributes(ClusterNodeAttributeArgs.builder()\n                .ramRole(defaultRole.name())\n                .securityGroupId(defaultSecurityGroup.id())\n                .vpcId(defaultNetwork.id())\n                .zoneId(defaultGetZones.zones()[0].id())\n                .keyPairName(defaultEcsKeyPair.id())\n                .build())\n            .tags(Map.of(\"created\", \"tf\"))\n            .nodeGroups(            \n                ClusterNodeGroupArgs.builder()\n                    .nodeGroupType(\"MASTER\")\n                    .nodeGroupName(\"emr-master\")\n                    .paymentType(\"PayAsYouGo\")\n                    .vswitchIds(defaultSwitch.id())\n                    .withPublicIp(false)\n                    .instanceTypes(\"ecs.g7.xlarge\")\n                    .nodeCount(1)\n                    .systemDisk(ClusterNodeGroupSystemDiskArgs.builder()\n                        .category(\"cloud_essd\")\n                        .size(80)\n                        .count(1)\n                        .build())\n                    .dataDisks(ClusterNodeGroupDataDiskArgs.builder()\n                        .category(\"cloud_essd\")\n                        .size(80)\n                        .count(3)\n                        .build())\n                    .build(),\n                ClusterNodeGroupArgs.builder()\n                    .nodeGroupType(\"CORE\")\n                    .nodeGroupName(\"emr-core\")\n                    .paymentType(\"PayAsYouGo\")\n                    .vswitchIds(defaultSwitch.id())\n                    .withPublicIp(false)\n                    .instanceTypes(\"ecs.g7.xlarge\")\n                    .nodeCount(3)\n                    .systemDisk(ClusterNodeGroupSystemDiskArgs.builder()\n                        .category(\"cloud_essd\")\n                        .size(80)\n                        .count(1)\n                        .build())\n                    .dataDisks(ClusterNodeGroupDataDiskArgs.builder()\n                        .category(\"cloud_essd\")\n                        .size(80)\n                        .count(3)\n                        .build())\n                    .build())\n            .resourceGroupId(default_.ids()[0])\n            .build());\n\n        final var ids = Emrv2Functions.getClusterInstances(GetClusterInstancesArgs.builder()\n            .build());\n\n        ctx.export(\"emrv2ClusterInstancesId1\", ids.instances()[0].instanceId());\n        final var nodeGroupNames = Emrv2Functions.getClusterInstances(GetClusterInstancesArgs.builder()\n            .nodeGroupNames(\"emr-core\")\n            .build());\n\n        ctx.export(\"emrv2ClusterInstancesId2\", nodeGroupNames.instances()[0].instanceId());\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: TF-VPC\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${defaultGetZones.zones[0].id}\n      vswitchName: TF_VSwitch\n  defaultEcsKeyPair:\n    type: alicloud:ecs:EcsKeyPair\n    name: default\n    properties:\n      keyPairName: terraform-kp\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: TF_SECURITY_GROUP\n      vpcId: ${defaultNetwork.id}\n  defaultRole:\n    type: alicloud:ram:Role\n    name: default\n    properties:\n      name: emrtf\n      document: |2\n            {\n                \\\"Statement\\\": [\n                {\n                    \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                    \\\"Effect\\\": \\\"Allow\\\",\n                    \\\"Principal\\\": {\n                    \\\"Service\\\": [\n                        \\\"emr.aliyuncs.com\\\",\n                        \\\"ecs.aliyuncs.com\\\"\n                    ]\n                    }\n                }\n                ],\n                \\\"Version\\\": \\\"1\\\"\n            }\n      description: this is a role test.\n      force: true\n  defaultCluster:\n    type: alicloud:emrv2:Cluster\n    name: default\n    properties:\n      paymentType: PayAsYouGo\n      clusterType: DATALAKE\n      releaseVersion: EMR-5.10.0\n      clusterName: terraform-emr-cluster-v2\n      deployMode: NORMAL\n      securityMode: NORMAL\n      applications:\n        - HADOOP-COMMON\n        - HDFS\n        - YARN\n        - HIVE\n        - SPARK3\n        - TEZ\n      applicationConfigs:\n        - applicationName: HIVE\n          configFileName: hivemetastore-site.xml\n          configItemKey: hive.metastore.type\n          configItemValue: DLF\n          configScope: CLUSTER\n        - applicationName: SPARK3\n          configFileName: hive-site.xml\n          configItemKey: hive.metastore.type\n          configItemValue: DLF\n          configScope: CLUSTER\n      nodeAttributes:\n        - ramRole: ${defaultRole.name}\n          securityGroupId: ${defaultSecurityGroup.id}\n          vpcId: ${defaultNetwork.id}\n          zoneId: ${defaultGetZones.zones[0].id}\n          keyPairName: ${defaultEcsKeyPair.id}\n      tags:\n        created: tf\n      nodeGroups:\n        - nodeGroupType: MASTER\n          nodeGroupName: emr-master\n          paymentType: PayAsYouGo\n          vswitchIds:\n            - ${defaultSwitch.id}\n          withPublicIp: false\n          instanceTypes:\n            - ecs.g7.xlarge\n          nodeCount: 1\n          systemDisk:\n            category: cloud_essd\n            size: 80\n            count: 1\n          dataDisks:\n            - category: cloud_essd\n              size: 80\n              count: 3\n        - nodeGroupType: CORE\n          nodeGroupName: emr-core\n          paymentType: PayAsYouGo\n          vswitchIds:\n            - ${defaultSwitch.id}\n          withPublicIp: false\n          instanceTypes:\n            - ecs.g7.xlarge\n          nodeCount: 3\n          systemDisk:\n            category: cloud_essd\n            size: 80\n            count: 1\n          dataDisks:\n            - category: cloud_essd\n              size: 80\n              count: 3\n      resourceGroupId: ${default.ids[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableInstanceType: ecs.g7.xlarge\n  ids:\n    fn::invoke:\n      function: alicloud:emrv2:getClusterInstances\n      arguments: {}\n  nodeGroupNames:\n    fn::invoke:\n      function: alicloud:emrv2:getClusterInstances\n      arguments:\n        nodeGroupNames:\n          - emr-core\noutputs:\n  emrv2ClusterInstancesId1: ${ids.instances[0].instanceId}\n  emrv2ClusterInstancesId2: ${nodeGroupNames.instances[0].instanceId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getClusterInstances.\n","properties":{"clusterId":{"type":"string","description":"The emr cluster ID.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Cluster IDs.\n"},"instanceStates":{"type":"array","items":{"type":"string"},"description":"The cluster ecs instance states.\n"},"maxResults":{"type":"integer","description":"The max results is used to list emr cluster ecs instances for next page.\n"},"nextToken":{"type":"string","description":"The next token is used to list emr cluster ecs instances for next page.\n"},"nodeGroupIds":{"type":"array","items":{"type":"string"},"description":"The cluster node group ids.\n"},"nodeGroupNames":{"type":"array","items":{"type":"string"},"description":"The cluster node group names.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getClusterInstances.\n","properties":{"clusterId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Cluster ecs instance IDS.\n","items":{"type":"string"},"type":"array"},"instanceStates":{"items":{"type":"string"},"type":"array"},"instances":{"description":"A list of Emr Cluster ecs instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:emrv2/getClusterInstancesInstance:getClusterInstancesInstance"},"type":"array"},"maxResults":{"type":"integer"},"names":{"description":"A list of Cluster ecs instance names.\n","items":{"type":"string"},"type":"array"},"nextToken":{"type":"string"},"nodeGroupIds":{"items":{"type":"string"},"type":"array"},"nodeGroupNames":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"totalCount":{"description":"The total count of list emr cluster ecs instances.\n","type":"integer"}},"required":["clusterId","ids","instances","names","nextToken","totalCount","id"],"type":"object"}},"alicloud:emrv2/getClusters:getClusters":{"description":"This data source provides the Emr Clusters of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.199.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.resourcemanager.getResourceGroups({\n    status: \"OK\",\n});\nconst defaultGetZones = alicloud.getZones({\n    availableInstanceType: \"ecs.g7.xlarge\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"TF-VPC\",\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n    vswitchName: \"TF_VSwitch\",\n});\nconst defaultEcsKeyPair = new alicloud.ecs.EcsKeyPair(\"default\", {keyPairName: \"terraform-kp\"});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    name: \"TF_SECURITY_GROUP\",\n    vpcId: defaultNetwork.id,\n});\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    name: \"emrtf\",\n    document: `    {\n        \\\\\"Statement\\\\\": [\n        {\n            \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n            \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n            \\\\\"Principal\\\\\": {\n            \\\\\"Service\\\\\": [\n                \\\\\"emr.aliyuncs.com\\\\\",\n                \\\\\"ecs.aliyuncs.com\\\\\"\n            ]\n            }\n        }\n        ],\n        \\\\\"Version\\\\\": \\\\\"1\\\\\"\n    }\n`,\n    description: \"this is a role test.\",\n    force: true,\n});\nconst defaultCluster = new alicloud.emrv2.Cluster(\"default\", {\n    paymentType: \"PayAsYouGo\",\n    clusterType: \"DATALAKE\",\n    releaseVersion: \"EMR-5.10.0\",\n    clusterName: \"terraform-emr-cluster-v2\",\n    deployMode: \"NORMAL\",\n    securityMode: \"NORMAL\",\n    applications: [\n        \"HADOOP-COMMON\",\n        \"HDFS\",\n        \"YARN\",\n        \"HIVE\",\n        \"SPARK3\",\n        \"TEZ\",\n    ],\n    applicationConfigs: [\n        {\n            applicationName: \"HIVE\",\n            configFileName: \"hivemetastore-site.xml\",\n            configItemKey: \"hive.metastore.type\",\n            configItemValue: \"DLF\",\n            configScope: \"CLUSTER\",\n        },\n        {\n            applicationName: \"SPARK3\",\n            configFileName: \"hive-site.xml\",\n            configItemKey: \"hive.metastore.type\",\n            configItemValue: \"DLF\",\n            configScope: \"CLUSTER\",\n        },\n    ],\n    nodeAttributes: [{\n        ramRole: defaultRole.name,\n        securityGroupId: defaultSecurityGroup.id,\n        vpcId: defaultNetwork.id,\n        zoneId: defaultGetZones.then(defaultGetZones =\u003e defaultGetZones.zones?.[0]?.id),\n        keyPairName: defaultEcsKeyPair.id,\n    }],\n    tags: {\n        created: \"tf\",\n    },\n    nodeGroups: [\n        {\n            nodeGroupType: \"MASTER\",\n            nodeGroupName: \"emr-master\",\n            paymentType: \"PayAsYouGo\",\n            vswitchIds: [defaultSwitch.id],\n            withPublicIp: false,\n            instanceTypes: [\"ecs.g7.xlarge\"],\n            nodeCount: 1,\n            systemDisk: {\n                category: \"cloud_essd\",\n                size: 80,\n                count: 1,\n            },\n            dataDisks: [{\n                category: \"cloud_essd\",\n                size: 80,\n                count: 3,\n            }],\n        },\n        {\n            nodeGroupType: \"CORE\",\n            nodeGroupName: \"emr-core\",\n            paymentType: \"PayAsYouGo\",\n            vswitchIds: [defaultSwitch.id],\n            withPublicIp: false,\n            instanceTypes: [\"ecs.g7.xlarge\"],\n            nodeCount: 3,\n            systemDisk: {\n                category: \"cloud_essd\",\n                size: 80,\n                count: 1,\n            },\n            dataDisks: [{\n                category: \"cloud_essd\",\n                size: 80,\n                count: 3,\n            }],\n        },\n    ],\n    resourceGroupId: _default.then(_default =\u003e _default.ids?.[0]),\n});\nconst ids = alicloud.emrv2.getClusters({});\nexport const emrv2ClustersId1 = ids.then(ids =\u003e ids.clusters?.[0]?.id);\nconst nameRegex = alicloud.emrv2.getClusters({\n    nameRegex: defaultAlicloudEmrCluster.name,\n});\nexport const emrv2ClustersId2 = nameRegex.then(nameRegex =\u003e nameRegex.clusters?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.get_resource_groups(status=\"OK\")\ndefault_get_zones = alicloud.get_zones(available_instance_type=\"ecs.g7.xlarge\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"TF-VPC\",\n    cidr_block=\"172.16.0.0/12\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default_get_zones.zones[0].id,\n    vswitch_name=\"TF_VSwitch\")\ndefault_ecs_key_pair = alicloud.ecs.EcsKeyPair(\"default\", key_pair_name=\"terraform-kp\")\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    name=\"TF_SECURITY_GROUP\",\n    vpc_id=default_network.id)\ndefault_role = alicloud.ram.Role(\"default\",\n    name=\"emrtf\",\n    document=\"\"\"    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n\"\"\",\n    description=\"this is a role test.\",\n    force=True)\ndefault_cluster = alicloud.emrv2.Cluster(\"default\",\n    payment_type=\"PayAsYouGo\",\n    cluster_type=\"DATALAKE\",\n    release_version=\"EMR-5.10.0\",\n    cluster_name=\"terraform-emr-cluster-v2\",\n    deploy_mode=\"NORMAL\",\n    security_mode=\"NORMAL\",\n    applications=[\n        \"HADOOP-COMMON\",\n        \"HDFS\",\n        \"YARN\",\n        \"HIVE\",\n        \"SPARK3\",\n        \"TEZ\",\n    ],\n    application_configs=[\n        {\n            \"application_name\": \"HIVE\",\n            \"config_file_name\": \"hivemetastore-site.xml\",\n            \"config_item_key\": \"hive.metastore.type\",\n            \"config_item_value\": \"DLF\",\n            \"config_scope\": \"CLUSTER\",\n        },\n        {\n            \"application_name\": \"SPARK3\",\n            \"config_file_name\": \"hive-site.xml\",\n            \"config_item_key\": \"hive.metastore.type\",\n            \"config_item_value\": \"DLF\",\n            \"config_scope\": \"CLUSTER\",\n        },\n    ],\n    node_attributes=[{\n        \"ram_role\": default_role.name,\n        \"security_group_id\": default_security_group.id,\n        \"vpc_id\": default_network.id,\n        \"zone_id\": default_get_zones.zones[0].id,\n        \"key_pair_name\": default_ecs_key_pair.id,\n    }],\n    tags={\n        \"created\": \"tf\",\n    },\n    node_groups=[\n        {\n            \"node_group_type\": \"MASTER\",\n            \"node_group_name\": \"emr-master\",\n            \"payment_type\": \"PayAsYouGo\",\n            \"vswitch_ids\": [default_switch.id],\n            \"with_public_ip\": False,\n            \"instance_types\": [\"ecs.g7.xlarge\"],\n            \"node_count\": 1,\n            \"system_disk\": {\n                \"category\": \"cloud_essd\",\n                \"size\": 80,\n                \"count\": 1,\n            },\n            \"data_disks\": [{\n                \"category\": \"cloud_essd\",\n                \"size\": 80,\n                \"count\": 3,\n            }],\n        },\n        {\n            \"node_group_type\": \"CORE\",\n            \"node_group_name\": \"emr-core\",\n            \"payment_type\": \"PayAsYouGo\",\n            \"vswitch_ids\": [default_switch.id],\n            \"with_public_ip\": False,\n            \"instance_types\": [\"ecs.g7.xlarge\"],\n            \"node_count\": 3,\n            \"system_disk\": {\n                \"category\": \"cloud_essd\",\n                \"size\": 80,\n                \"count\": 1,\n            },\n            \"data_disks\": [{\n                \"category\": \"cloud_essd\",\n                \"size\": 80,\n                \"count\": 3,\n            }],\n        },\n    ],\n    resource_group_id=default.ids[0])\nids = alicloud.emrv2.get_clusters()\npulumi.export(\"emrv2ClustersId1\", ids.clusters[0].id)\nname_regex = alicloud.emrv2.get_clusters(name_regex=default_alicloud_emr_cluster[\"name\"])\npulumi.export(\"emrv2ClustersId2\", name_regex.clusters[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        Status = \"OK\",\n    });\n\n    var defaultGetZones = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableInstanceType = \"ecs.g7.xlarge\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"TF-VPC\",\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        VswitchName = \"TF_VSwitch\",\n    });\n\n    var defaultEcsKeyPair = new AliCloud.Ecs.EcsKeyPair(\"default\", new()\n    {\n        KeyPairName = \"terraform-kp\",\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        Name = \"TF_SECURITY_GROUP\",\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        Name = \"emrtf\",\n        Document = @\"    {\n        \\\"\"Statement\\\"\": [\n        {\n            \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n            \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n            \\\"\"Principal\\\"\": {\n            \\\"\"Service\\\"\": [\n                \\\"\"emr.aliyuncs.com\\\"\",\n                \\\"\"ecs.aliyuncs.com\\\"\"\n            ]\n            }\n        }\n        ],\n        \\\"\"Version\\\"\": \\\"\"1\\\"\"\n    }\n\",\n        Description = \"this is a role test.\",\n        Force = true,\n    });\n\n    var defaultCluster = new AliCloud.Emrv2.Cluster(\"default\", new()\n    {\n        PaymentType = \"PayAsYouGo\",\n        ClusterType = \"DATALAKE\",\n        ReleaseVersion = \"EMR-5.10.0\",\n        ClusterName = \"terraform-emr-cluster-v2\",\n        DeployMode = \"NORMAL\",\n        SecurityMode = \"NORMAL\",\n        Applications = new[]\n        {\n            \"HADOOP-COMMON\",\n            \"HDFS\",\n            \"YARN\",\n            \"HIVE\",\n            \"SPARK3\",\n            \"TEZ\",\n        },\n        ApplicationConfigs = new[]\n        {\n            new AliCloud.Emrv2.Inputs.ClusterApplicationConfigArgs\n            {\n                ApplicationName = \"HIVE\",\n                ConfigFileName = \"hivemetastore-site.xml\",\n                ConfigItemKey = \"hive.metastore.type\",\n                ConfigItemValue = \"DLF\",\n                ConfigScope = \"CLUSTER\",\n            },\n            new AliCloud.Emrv2.Inputs.ClusterApplicationConfigArgs\n            {\n                ApplicationName = \"SPARK3\",\n                ConfigFileName = \"hive-site.xml\",\n                ConfigItemKey = \"hive.metastore.type\",\n                ConfigItemValue = \"DLF\",\n                ConfigScope = \"CLUSTER\",\n            },\n        },\n        NodeAttributes = new[]\n        {\n            new AliCloud.Emrv2.Inputs.ClusterNodeAttributeArgs\n            {\n                RamRole = defaultRole.Name,\n                SecurityGroupId = defaultSecurityGroup.Id,\n                VpcId = defaultNetwork.Id,\n                ZoneId = defaultGetZones.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n                KeyPairName = defaultEcsKeyPair.Id,\n            },\n        },\n        Tags = \n        {\n            { \"created\", \"tf\" },\n        },\n        NodeGroups = new[]\n        {\n            new AliCloud.Emrv2.Inputs.ClusterNodeGroupArgs\n            {\n                NodeGroupType = \"MASTER\",\n                NodeGroupName = \"emr-master\",\n                PaymentType = \"PayAsYouGo\",\n                VswitchIds = new[]\n                {\n                    defaultSwitch.Id,\n                },\n                WithPublicIp = false,\n                InstanceTypes = new[]\n                {\n                    \"ecs.g7.xlarge\",\n                },\n                NodeCount = 1,\n                SystemDisk = new AliCloud.Emrv2.Inputs.ClusterNodeGroupSystemDiskArgs\n                {\n                    Category = \"cloud_essd\",\n                    Size = 80,\n                    Count = 1,\n                },\n                DataDisks = new[]\n                {\n                    new AliCloud.Emrv2.Inputs.ClusterNodeGroupDataDiskArgs\n                    {\n                        Category = \"cloud_essd\",\n                        Size = 80,\n                        Count = 3,\n                    },\n                },\n            },\n            new AliCloud.Emrv2.Inputs.ClusterNodeGroupArgs\n            {\n                NodeGroupType = \"CORE\",\n                NodeGroupName = \"emr-core\",\n                PaymentType = \"PayAsYouGo\",\n                VswitchIds = new[]\n                {\n                    defaultSwitch.Id,\n                },\n                WithPublicIp = false,\n                InstanceTypes = new[]\n                {\n                    \"ecs.g7.xlarge\",\n                },\n                NodeCount = 3,\n                SystemDisk = new AliCloud.Emrv2.Inputs.ClusterNodeGroupSystemDiskArgs\n                {\n                    Category = \"cloud_essd\",\n                    Size = 80,\n                    Count = 1,\n                },\n                DataDisks = new[]\n                {\n                    new AliCloud.Emrv2.Inputs.ClusterNodeGroupDataDiskArgs\n                    {\n                        Category = \"cloud_essd\",\n                        Size = 80,\n                        Count = 3,\n                    },\n                },\n            },\n        },\n        ResourceGroupId = @default.Apply(@default =\u003e @default.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Ids[0])),\n    });\n\n    var ids = AliCloud.Emrv2.GetClusters.Invoke();\n\n    var nameRegex = AliCloud.Emrv2.GetClusters.Invoke(new()\n    {\n        NameRegex = defaultAlicloudEmrCluster.Name,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"emrv2ClustersId1\"] = ids.Apply(getClustersResult =\u003e getClustersResult.Clusters[0]?.Id),\n        [\"emrv2ClustersId2\"] = nameRegex.Apply(getClustersResult =\u003e getClustersResult.Clusters[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/emrv2\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tStatus: pulumi.StringRef(\"OK\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetZones, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableInstanceType: pulumi.StringRef(\"ecs.g7.xlarge\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"TF-VPC\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(\"TF_VSwitch\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEcsKeyPair, err := ecs.NewEcsKeyPair(ctx, \"default\", \u0026ecs.EcsKeyPairArgs{\n\t\t\tKeyPairName: pulumi.String(\"terraform-kp\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:  pulumi.String(\"TF_SECURITY_GROUP\"),\n\t\t\tVpcId: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tName: pulumi.String(\"emrtf\"),\n\t\t\tDocument: pulumi.String(`    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n`),\n\t\t\tDescription: pulumi.String(\"this is a role test.\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = emrv2.NewCluster(ctx, \"default\", \u0026emrv2.ClusterArgs{\n\t\t\tPaymentType:    pulumi.String(\"PayAsYouGo\"),\n\t\t\tClusterType:    pulumi.String(\"DATALAKE\"),\n\t\t\tReleaseVersion: pulumi.String(\"EMR-5.10.0\"),\n\t\t\tClusterName:    pulumi.String(\"terraform-emr-cluster-v2\"),\n\t\t\tDeployMode:     pulumi.String(\"NORMAL\"),\n\t\t\tSecurityMode:   pulumi.String(\"NORMAL\"),\n\t\t\tApplications: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"HADOOP-COMMON\"),\n\t\t\t\tpulumi.String(\"HDFS\"),\n\t\t\t\tpulumi.String(\"YARN\"),\n\t\t\t\tpulumi.String(\"HIVE\"),\n\t\t\t\tpulumi.String(\"SPARK3\"),\n\t\t\t\tpulumi.String(\"TEZ\"),\n\t\t\t},\n\t\t\tApplicationConfigs: emrv2.ClusterApplicationConfigArray{\n\t\t\t\t\u0026emrv2.ClusterApplicationConfigArgs{\n\t\t\t\t\tApplicationName: pulumi.String(\"HIVE\"),\n\t\t\t\t\tConfigFileName:  pulumi.String(\"hivemetastore-site.xml\"),\n\t\t\t\t\tConfigItemKey:   pulumi.String(\"hive.metastore.type\"),\n\t\t\t\t\tConfigItemValue: pulumi.String(\"DLF\"),\n\t\t\t\t\tConfigScope:     pulumi.String(\"CLUSTER\"),\n\t\t\t\t},\n\t\t\t\t\u0026emrv2.ClusterApplicationConfigArgs{\n\t\t\t\t\tApplicationName: pulumi.String(\"SPARK3\"),\n\t\t\t\t\tConfigFileName:  pulumi.String(\"hive-site.xml\"),\n\t\t\t\t\tConfigItemKey:   pulumi.String(\"hive.metastore.type\"),\n\t\t\t\t\tConfigItemValue: pulumi.String(\"DLF\"),\n\t\t\t\t\tConfigScope:     pulumi.String(\"CLUSTER\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNodeAttributes: emrv2.ClusterNodeAttributeArray{\n\t\t\t\t\u0026emrv2.ClusterNodeAttributeArgs{\n\t\t\t\t\tRamRole:         defaultRole.Name,\n\t\t\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\t\t\tVpcId:           defaultNetwork.ID(),\n\t\t\t\t\tZoneId:          pulumi.String(defaultGetZones.Zones[0].Id),\n\t\t\t\t\tKeyPairName:     defaultEcsKeyPair.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"created\": pulumi.String(\"tf\"),\n\t\t\t},\n\t\t\tNodeGroups: emrv2.ClusterNodeGroupArray{\n\t\t\t\t\u0026emrv2.ClusterNodeGroupArgs{\n\t\t\t\t\tNodeGroupType: pulumi.String(\"MASTER\"),\n\t\t\t\t\tNodeGroupName: pulumi.String(\"emr-master\"),\n\t\t\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\t\t\tdefaultSwitch.ID(),\n\t\t\t\t\t},\n\t\t\t\t\tWithPublicIp: pulumi.Bool(false),\n\t\t\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ecs.g7.xlarge\"),\n\t\t\t\t\t},\n\t\t\t\t\tNodeCount: pulumi.Int(1),\n\t\t\t\t\tSystemDisk: \u0026emrv2.ClusterNodeGroupSystemDiskArgs{\n\t\t\t\t\t\tCategory: pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\tSize:     pulumi.Int(80),\n\t\t\t\t\t\tCount:    pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t\tDataDisks: emrv2.ClusterNodeGroupDataDiskArray{\n\t\t\t\t\t\t\u0026emrv2.ClusterNodeGroupDataDiskArgs{\n\t\t\t\t\t\t\tCategory: pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\t\tSize:     pulumi.Int(80),\n\t\t\t\t\t\t\tCount:    pulumi.Int(3),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026emrv2.ClusterNodeGroupArgs{\n\t\t\t\t\tNodeGroupType: pulumi.String(\"CORE\"),\n\t\t\t\t\tNodeGroupName: pulumi.String(\"emr-core\"),\n\t\t\t\t\tPaymentType:   pulumi.String(\"PayAsYouGo\"),\n\t\t\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\t\t\tdefaultSwitch.ID(),\n\t\t\t\t\t},\n\t\t\t\t\tWithPublicIp: pulumi.Bool(false),\n\t\t\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ecs.g7.xlarge\"),\n\t\t\t\t\t},\n\t\t\t\t\tNodeCount: pulumi.Int(3),\n\t\t\t\t\tSystemDisk: \u0026emrv2.ClusterNodeGroupSystemDiskArgs{\n\t\t\t\t\t\tCategory: pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\tSize:     pulumi.Int(80),\n\t\t\t\t\t\tCount:    pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t\tDataDisks: emrv2.ClusterNodeGroupDataDiskArray{\n\t\t\t\t\t\t\u0026emrv2.ClusterNodeGroupDataDiskArgs{\n\t\t\t\t\t\t\tCategory: pulumi.String(\"cloud_essd\"),\n\t\t\t\t\t\t\tSize:     pulumi.Int(80),\n\t\t\t\t\t\t\tCount:    pulumi.Int(3),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tResourceGroupId: pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids, err := emrv2.GetClusters(ctx, \u0026emrv2.GetClustersArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"emrv2ClustersId1\", ids.Clusters[0].Id)\n\t\tnameRegex, err := emrv2.GetClusters(ctx, \u0026emrv2.GetClustersArgs{\n\t\t\tNameRegex: pulumi.StringRef(defaultAlicloudEmrCluster.Name),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"emrv2ClustersId2\", nameRegex.Clusters[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.EcsKeyPair;\nimport com.pulumi.alicloud.ecs.EcsKeyPairArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.emrv2.Cluster;\nimport com.pulumi.alicloud.emrv2.ClusterArgs;\nimport com.pulumi.alicloud.emrv2.inputs.ClusterApplicationConfigArgs;\nimport com.pulumi.alicloud.emrv2.inputs.ClusterNodeAttributeArgs;\nimport com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupArgs;\nimport com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupSystemDiskArgs;\nimport com.pulumi.alicloud.emrv2.Emrv2Functions;\nimport com.pulumi.alicloud.emrv2.inputs.GetClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .status(\"OK\")\n            .build());\n\n        final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableInstanceType(\"ecs.g7.xlarge\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"TF-VPC\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(defaultGetZones.zones()[0].id())\n            .vswitchName(\"TF_VSwitch\")\n            .build());\n\n        var defaultEcsKeyPair = new EcsKeyPair(\"defaultEcsKeyPair\", EcsKeyPairArgs.builder()\n            .keyPairName(\"terraform-kp\")\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .name(\"TF_SECURITY_GROUP\")\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .name(\"emrtf\")\n            .document(\"\"\"\n    {\n        \\\"Statement\\\": [\n        {\n            \\\"Action\\\": \\\"sts:AssumeRole\\\",\n            \\\"Effect\\\": \\\"Allow\\\",\n            \\\"Principal\\\": {\n            \\\"Service\\\": [\n                \\\"emr.aliyuncs.com\\\",\n                \\\"ecs.aliyuncs.com\\\"\n            ]\n            }\n        }\n        ],\n        \\\"Version\\\": \\\"1\\\"\n    }\n            \"\"\")\n            .description(\"this is a role test.\")\n            .force(true)\n            .build());\n\n        var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder()\n            .paymentType(\"PayAsYouGo\")\n            .clusterType(\"DATALAKE\")\n            .releaseVersion(\"EMR-5.10.0\")\n            .clusterName(\"terraform-emr-cluster-v2\")\n            .deployMode(\"NORMAL\")\n            .securityMode(\"NORMAL\")\n            .applications(            \n                \"HADOOP-COMMON\",\n                \"HDFS\",\n                \"YARN\",\n                \"HIVE\",\n                \"SPARK3\",\n                \"TEZ\")\n            .applicationConfigs(            \n                ClusterApplicationConfigArgs.builder()\n                    .applicationName(\"HIVE\")\n                    .configFileName(\"hivemetastore-site.xml\")\n                    .configItemKey(\"hive.metastore.type\")\n                    .configItemValue(\"DLF\")\n                    .configScope(\"CLUSTER\")\n                    .build(),\n                ClusterApplicationConfigArgs.builder()\n                    .applicationName(\"SPARK3\")\n                    .configFileName(\"hive-site.xml\")\n                    .configItemKey(\"hive.metastore.type\")\n                    .configItemValue(\"DLF\")\n                    .configScope(\"CLUSTER\")\n                    .build())\n            .nodeAttributes(ClusterNodeAttributeArgs.builder()\n                .ramRole(defaultRole.name())\n                .securityGroupId(defaultSecurityGroup.id())\n                .vpcId(defaultNetwork.id())\n                .zoneId(defaultGetZones.zones()[0].id())\n                .keyPairName(defaultEcsKeyPair.id())\n                .build())\n            .tags(Map.of(\"created\", \"tf\"))\n            .nodeGroups(            \n                ClusterNodeGroupArgs.builder()\n                    .nodeGroupType(\"MASTER\")\n                    .nodeGroupName(\"emr-master\")\n                    .paymentType(\"PayAsYouGo\")\n                    .vswitchIds(defaultSwitch.id())\n                    .withPublicIp(false)\n                    .instanceTypes(\"ecs.g7.xlarge\")\n                    .nodeCount(1)\n                    .systemDisk(ClusterNodeGroupSystemDiskArgs.builder()\n                        .category(\"cloud_essd\")\n                        .size(80)\n                        .count(1)\n                        .build())\n                    .dataDisks(ClusterNodeGroupDataDiskArgs.builder()\n                        .category(\"cloud_essd\")\n                        .size(80)\n                        .count(3)\n                        .build())\n                    .build(),\n                ClusterNodeGroupArgs.builder()\n                    .nodeGroupType(\"CORE\")\n                    .nodeGroupName(\"emr-core\")\n                    .paymentType(\"PayAsYouGo\")\n                    .vswitchIds(defaultSwitch.id())\n                    .withPublicIp(false)\n                    .instanceTypes(\"ecs.g7.xlarge\")\n                    .nodeCount(3)\n                    .systemDisk(ClusterNodeGroupSystemDiskArgs.builder()\n                        .category(\"cloud_essd\")\n                        .size(80)\n                        .count(1)\n                        .build())\n                    .dataDisks(ClusterNodeGroupDataDiskArgs.builder()\n                        .category(\"cloud_essd\")\n                        .size(80)\n                        .count(3)\n                        .build())\n                    .build())\n            .resourceGroupId(default_.ids()[0])\n            .build());\n\n        final var ids = Emrv2Functions.getClusters(GetClustersArgs.builder()\n            .build());\n\n        ctx.export(\"emrv2ClustersId1\", ids.clusters()[0].id());\n        final var nameRegex = Emrv2Functions.getClusters(GetClustersArgs.builder()\n            .nameRegex(defaultAlicloudEmrCluster.name())\n            .build());\n\n        ctx.export(\"emrv2ClustersId2\", nameRegex.clusters()[0].id());\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: TF-VPC\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${defaultGetZones.zones[0].id}\n      vswitchName: TF_VSwitch\n  defaultEcsKeyPair:\n    type: alicloud:ecs:EcsKeyPair\n    name: default\n    properties:\n      keyPairName: terraform-kp\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      name: TF_SECURITY_GROUP\n      vpcId: ${defaultNetwork.id}\n  defaultRole:\n    type: alicloud:ram:Role\n    name: default\n    properties:\n      name: emrtf\n      document: |2\n            {\n                \\\"Statement\\\": [\n                {\n                    \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                    \\\"Effect\\\": \\\"Allow\\\",\n                    \\\"Principal\\\": {\n                    \\\"Service\\\": [\n                        \\\"emr.aliyuncs.com\\\",\n                        \\\"ecs.aliyuncs.com\\\"\n                    ]\n                    }\n                }\n                ],\n                \\\"Version\\\": \\\"1\\\"\n            }\n      description: this is a role test.\n      force: true\n  defaultCluster:\n    type: alicloud:emrv2:Cluster\n    name: default\n    properties:\n      paymentType: PayAsYouGo\n      clusterType: DATALAKE\n      releaseVersion: EMR-5.10.0\n      clusterName: terraform-emr-cluster-v2\n      deployMode: NORMAL\n      securityMode: NORMAL\n      applications:\n        - HADOOP-COMMON\n        - HDFS\n        - YARN\n        - HIVE\n        - SPARK3\n        - TEZ\n      applicationConfigs:\n        - applicationName: HIVE\n          configFileName: hivemetastore-site.xml\n          configItemKey: hive.metastore.type\n          configItemValue: DLF\n          configScope: CLUSTER\n        - applicationName: SPARK3\n          configFileName: hive-site.xml\n          configItemKey: hive.metastore.type\n          configItemValue: DLF\n          configScope: CLUSTER\n      nodeAttributes:\n        - ramRole: ${defaultRole.name}\n          securityGroupId: ${defaultSecurityGroup.id}\n          vpcId: ${defaultNetwork.id}\n          zoneId: ${defaultGetZones.zones[0].id}\n          keyPairName: ${defaultEcsKeyPair.id}\n      tags:\n        created: tf\n      nodeGroups:\n        - nodeGroupType: MASTER\n          nodeGroupName: emr-master\n          paymentType: PayAsYouGo\n          vswitchIds:\n            - ${defaultSwitch.id}\n          withPublicIp: false\n          instanceTypes:\n            - ecs.g7.xlarge\n          nodeCount: 1\n          systemDisk:\n            category: cloud_essd\n            size: 80\n            count: 1\n          dataDisks:\n            - category: cloud_essd\n              size: 80\n              count: 3\n        - nodeGroupType: CORE\n          nodeGroupName: emr-core\n          paymentType: PayAsYouGo\n          vswitchIds:\n            - ${defaultSwitch.id}\n          withPublicIp: false\n          instanceTypes:\n            - ecs.g7.xlarge\n          nodeCount: 3\n          systemDisk:\n            category: cloud_essd\n            size: 80\n            count: 1\n          dataDisks:\n            - category: cloud_essd\n              size: 80\n              count: 3\n      resourceGroupId: ${default.ids[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        status: OK\n  defaultGetZones:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableInstanceType: ecs.g7.xlarge\n  ids:\n    fn::invoke:\n      function: alicloud:emrv2:getClusters\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:emrv2:getClusters\n      arguments:\n        nameRegex: ${defaultAlicloudEmrCluster.name}\noutputs:\n  emrv2ClustersId1: ${ids.clusters[0].id}\n  emrv2ClustersId2: ${nameRegex.clusters[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getClusters.\n","properties":{"clusterName":{"type":"string","description":"The cluster name.\n"},"clusterStates":{"type":"array","items":{"type":"string"},"description":"The cluster states.\n"},"clusterTypes":{"type":"array","items":{"type":"string"},"description":"The cluster types.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Cluster IDs.\n"},"maxResults":{"type":"integer","description":"The max results is used to list clusters for next page.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Cluster name.\n"},"nextToken":{"type":"string","description":"The next token is used to list clusters for next page.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"paymentTypes":{"type":"array","items":{"type":"string"},"description":"The cluster payment types.\n"},"resourceGroupId":{"type":"string","description":"The Resource Group ID.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getClusters.\n","properties":{"clusterName":{"description":"The name of the emr cluster.\n","type":"string"},"clusterStates":{"items":{"type":"string"},"type":"array"},"clusterTypes":{"items":{"type":"string"},"type":"array"},"clusters":{"description":"A list of Emr Clusters. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:emrv2/getClustersCluster:getClustersCluster"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Cluster IDS.\n","items":{"type":"string"},"type":"array"},"maxResults":{"type":"integer"},"nameRegex":{"type":"string"},"names":{"description":"A list of Cluster names.\n","items":{"type":"string"},"type":"array"},"nextToken":{"type":"string"},"outputFile":{"type":"string"},"paymentTypes":{"items":{"type":"string"},"type":"array"},"resourceGroupId":{"description":"The resource group id of the resource.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","type":"object"},"totalCount":{"description":"The total count of list clusters.\n","type":"integer"}},"required":["clusters","ids","names","totalCount","id"],"type":"object"}},"alicloud:ens/getKeyPairs:getKeyPairs":{"description":"This data source provides the Ens Key Pairs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.133.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst nameRegex = alicloud.ens.getKeyPairs({\n    version: \"example_value\",\n    nameRegex: \"^my-KeyPair\",\n});\nexport const ensKeyPairId1 = nameRegex.then(nameRegex =\u003e nameRegex.pairs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nname_regex = alicloud.ens.get_key_pairs(version=\"example_value\",\n    name_regex=\"^my-KeyPair\")\npulumi.export(\"ensKeyPairId1\", name_regex.pairs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var nameRegex = AliCloud.Ens.GetKeyPairs.Invoke(new()\n    {\n        Version = \"example_value\",\n        NameRegex = \"^my-KeyPair\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ensKeyPairId1\"] = nameRegex.Apply(getKeyPairsResult =\u003e getKeyPairsResult.Pairs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ens\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnameRegex, err := ens.GetKeyPairs(ctx, \u0026ens.GetKeyPairsArgs{\n\t\t\tVersion:   \"example_value\",\n\t\t\tNameRegex: pulumi.StringRef(\"^my-KeyPair\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"ensKeyPairId1\", nameRegex.Pairs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ens.EnsFunctions;\nimport com.pulumi.alicloud.ens.inputs.GetKeyPairsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var nameRegex = EnsFunctions.getKeyPairs(GetKeyPairsArgs.builder()\n            .version(\"example_value\")\n            .nameRegex(\"^my-KeyPair\")\n            .build());\n\n        ctx.export(\"ensKeyPairId1\", nameRegex.pairs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  nameRegex:\n    fn::invoke:\n      function: alicloud:ens:getKeyPairs\n      arguments:\n        version: example_value\n        nameRegex: ^my-KeyPair\noutputs:\n  ensKeyPairId1: ${nameRegex.pairs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKeyPairs.\n","properties":{"keyPairName":{"type":"string","description":"The name of the key pair.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Key Pair name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"version":{"type":"string","description":"The version number.\n"}},"type":"object","required":["version"]},"outputs":{"description":"A collection of values returned by getKeyPairs.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyPairName":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pairs":{"items":{"$ref":"#/types/alicloud:ens/getKeyPairsPair:getKeyPairsPair"},"type":"array"},"version":{"type":"string"}},"required":["ids","names","pairs","version","id"],"type":"object"}},"alicloud:esa/getSites:getSites":{"description":"This data source provides Esa Site available to the user.[What is Site](https://next.api.alibabacloud.com/document/ESA/2024-09-10/CreateSite)\n\n\u003e **NOTE:** Available since v1.244.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultIEoDfU = new alicloud.esa.RatePlanInstance(\"defaultIEoDfU\", {\n    type: \"NS\",\n    autoRenew: true,\n    period: 1,\n    paymentType: \"Subscription\",\n    coverage: \"overseas\",\n    autoPay: true,\n    planName: \"basic\",\n});\nconst defaultSite = new alicloud.esa.Site(\"default\", {\n    siteName: \"bcd.com\",\n    coverage: \"overseas\",\n    accessType: \"NS\",\n    instanceId: defaultIEoDfU.id,\n});\nconst _default = alicloud.esa.getSitesOutput({\n    ids: [defaultSite.id],\n    nameRegex: defaultSite.siteName,\n    siteName: \"bcd.com\",\n});\nexport const alicloudEsaSiteExampleId = _default.apply(_default =\u003e _default.sites?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_i_eo_df_u = alicloud.esa.RatePlanInstance(\"defaultIEoDfU\",\n    type=\"NS\",\n    auto_renew=True,\n    period=1,\n    payment_type=\"Subscription\",\n    coverage=\"overseas\",\n    auto_pay=True,\n    plan_name=\"basic\")\ndefault_site = alicloud.esa.Site(\"default\",\n    site_name=\"bcd.com\",\n    coverage=\"overseas\",\n    access_type=\"NS\",\n    instance_id=default_i_eo_df_u.id)\ndefault = alicloud.esa.get_sites_output(ids=[default_site.id],\n    name_regex=default_site.site_name,\n    site_name=\"bcd.com\")\npulumi.export(\"alicloudEsaSiteExampleId\", default.sites[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultIEoDfU = new AliCloud.Esa.RatePlanInstance(\"defaultIEoDfU\", new()\n    {\n        Type = \"NS\",\n        AutoRenew = true,\n        Period = 1,\n        PaymentType = \"Subscription\",\n        Coverage = \"overseas\",\n        AutoPay = true,\n        PlanName = \"basic\",\n    });\n\n    var defaultSite = new AliCloud.Esa.Site(\"default\", new()\n    {\n        SiteName = \"bcd.com\",\n        Coverage = \"overseas\",\n        AccessType = \"NS\",\n        InstanceId = defaultIEoDfU.Id,\n    });\n\n    var @default = AliCloud.Esa.GetSites.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultSite.Id,\n        },\n        NameRegex = defaultSite.SiteName,\n        SiteName = \"bcd.com\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudEsaSiteExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getSitesResult =\u003e getSitesResult.Sites[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultIEoDfU, err := esa.NewRatePlanInstance(ctx, \"defaultIEoDfU\", \u0026esa.RatePlanInstanceArgs{\nType: pulumi.String(\"NS\"),\nAutoRenew: pulumi.Bool(true),\nPeriod: pulumi.Int(1),\nPaymentType: pulumi.String(\"Subscription\"),\nCoverage: pulumi.String(\"overseas\"),\nAutoPay: pulumi.Bool(true),\nPlanName: pulumi.String(\"basic\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSite, err := esa.NewSite(ctx, \"default\", \u0026esa.SiteArgs{\nSiteName: pulumi.String(\"bcd.com\"),\nCoverage: pulumi.String(\"overseas\"),\nAccessType: pulumi.String(\"NS\"),\nInstanceId: defaultIEoDfU.ID(),\n})\nif err != nil {\nreturn err\n}\n_default := esa.GetSitesOutput(ctx, esa.GetSitesOutputArgs{\nIds: pulumi.StringArray{\ndefaultSite.ID(),\n},\nNameRegex: defaultSite.SiteName,\nSiteName: pulumi.String(\"bcd.com\"),\n}, nil);\nctx.Export(\"alicloudEsaSiteExampleId\", _default.ApplyT(func(_default esa.GetSitesResult) (*int, error) {\nreturn \u0026default.Sites[0].Id, nil\n}).(pulumi.IntPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.esa.RatePlanInstance;\nimport com.pulumi.alicloud.esa.RatePlanInstanceArgs;\nimport com.pulumi.alicloud.esa.Site;\nimport com.pulumi.alicloud.esa.SiteArgs;\nimport com.pulumi.alicloud.esa.EsaFunctions;\nimport com.pulumi.alicloud.esa.inputs.GetSitesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultIEoDfU = new RatePlanInstance(\"defaultIEoDfU\", RatePlanInstanceArgs.builder()\n            .type(\"NS\")\n            .autoRenew(true)\n            .period(1)\n            .paymentType(\"Subscription\")\n            .coverage(\"overseas\")\n            .autoPay(true)\n            .planName(\"basic\")\n            .build());\n\n        var defaultSite = new Site(\"defaultSite\", SiteArgs.builder()\n            .siteName(\"bcd.com\")\n            .coverage(\"overseas\")\n            .accessType(\"NS\")\n            .instanceId(defaultIEoDfU.id())\n            .build());\n\n        final var default = EsaFunctions.getSites(GetSitesArgs.builder()\n            .ids(defaultSite.id())\n            .nameRegex(defaultSite.siteName())\n            .siteName(\"bcd.com\")\n            .build());\n\n        ctx.export(\"alicloudEsaSiteExampleId\", default_.applyValue(_default_ -\u003e _default_.sites()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultIEoDfU:\n    type: alicloud:esa:RatePlanInstance\n    properties:\n      type: NS\n      autoRenew: true\n      period: '1'\n      paymentType: Subscription\n      coverage: overseas\n      autoPay: true\n      planName: basic\n  defaultSite:\n    type: alicloud:esa:Site\n    name: default\n    properties:\n      siteName: bcd.com\n      coverage: overseas\n      accessType: NS\n      instanceId: ${defaultIEoDfU.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:esa:getSites\n      arguments:\n        ids:\n          - ${defaultSite.id}\n        nameRegex: ${defaultSite.siteName}\n        siteName: bcd.com\noutputs:\n  alicloudEsaSiteExampleId: ${default.sites[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSites.\n","properties":{"accessType":{"type":"string","description":"Access type. Value:-**NS**: Managed access via NS.-**CNAME**: access through CNAME.\n"},"coverage":{"type":"string","description":"Acceleration area\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Site IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"onlyEnterprise":{"type":"boolean","description":"Only the Enterprise version, pass **true** when the table only queries the enterprise version of the site.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer","description":"Current page number.\n"},"pageSize":{"type":"integer","description":"Number of records per page.\n"},"planSubscribeType":{"type":"string","description":"Package subscription type. Value:-**basicplan**: Basic version.-**standardplan**: Standard version.-**advancedplan**: Advanced version.-**enterpriseplan**: Enterprise Edition.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group\n"},"siteName":{"type":"string","description":"Site Name\n"},"siteSearchType":{"type":"string","description":"The search match pattern for the site name. The default value is exact match. Valid values:-**prefix**: matches the prefix.-**suffix**: The suffix matches.-**exact**: exact match.-**fuzzy**: fuzzy match.\n"},"status":{"type":"string","description":"The status of the resource\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSites.\n","properties":{"accessType":{"description":"Access type. Value:-**NS**: Managed access via NS.-**CNAME**: access through CNAME.\n","type":"string"},"coverage":{"description":"Acceleration area\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Site IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Sites.\n","items":{"type":"string"},"type":"array"},"onlyEnterprise":{"type":"boolean"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"planSubscribeType":{"type":"string"},"resourceGroupId":{"description":"The ID of the resource group\n","type":"string"},"siteName":{"description":"Site Name\n","type":"string"},"siteSearchType":{"type":"string"},"sites":{"description":"A list of Site Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:esa/getSitesSite:getSitesSite"},"type":"array"},"status":{"description":"The status of the resource\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["ids","names","sites","id"],"type":"object"}},"alicloud:ess/getAlarms:getAlarms":{"description":"This data source provides available alarm resources. \n\n\u003e **NOTE** Available in 1.72.0+\n\n","inputs":{"description":"A collection of arguments for invoking getAlarms.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of alarm IDs.\n"},"metricType":{"type":"string","description":"The type for the alarm's associated metric. Supported value: system, custom. \"system\" means the metric data is collected by Aliyun Cloud Monitor Service(CMS), \"custom\" means the metric data is upload to CMS by users. Defaults to system.\n"},"nameRegex":{"type":"string","description":"A regex string to filter resulting alarms by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"scalingGroupId":{"type":"string","description":"Scaling group id the alarms belong to.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAlarms.\n","properties":{"alarms":{"description":"A list of alarms. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ess/getAlarmsAlarm:getAlarmsAlarm"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of alarm ids.\n","items":{"type":"string"},"type":"array"},"metricType":{"description":"The type for the alarm's associated metric.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of alarm names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"scalingGroupId":{"description":"The scaling group associated with this alarm.\n","type":"string"}},"required":["alarms","ids","names","id"],"type":"object"}},"alicloud:ess/getLifecycleHooks:getLifecycleHooks":{"description":"This data source provides available lifecycle hook resources. \n\n\u003e **NOTE:** Available in 1.72.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ds = alicloud.ess.getLifecycleHooks({\n    scalingGroupId: \"scaling_group_id\",\n    nameRegex: \"lifecyclehook_name\",\n});\nexport const firstLifecycleHook = ds.then(ds =\u003e ds.hooks?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nds = alicloud.ess.get_lifecycle_hooks(scaling_group_id=\"scaling_group_id\",\n    name_regex=\"lifecyclehook_name\")\npulumi.export(\"firstLifecycleHook\", ds.hooks[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ds = AliCloud.Ess.GetLifecycleHooks.Invoke(new()\n    {\n        ScalingGroupId = \"scaling_group_id\",\n        NameRegex = \"lifecyclehook_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstLifecycleHook\"] = ds.Apply(getLifecycleHooksResult =\u003e getLifecycleHooksResult.Hooks[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tds, err := ess.GetLifecycleHooks(ctx, \u0026ess.GetLifecycleHooksArgs{\n\t\t\tScalingGroupId: pulumi.StringRef(\"scaling_group_id\"),\n\t\t\tNameRegex:      pulumi.StringRef(\"lifecyclehook_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstLifecycleHook\", ds.Hooks[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ess.EssFunctions;\nimport com.pulumi.alicloud.ess.inputs.GetLifecycleHooksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ds = EssFunctions.getLifecycleHooks(GetLifecycleHooksArgs.builder()\n            .scalingGroupId(\"scaling_group_id\")\n            .nameRegex(\"lifecyclehook_name\")\n            .build());\n\n        ctx.export(\"firstLifecycleHook\", ds.hooks()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ds:\n    fn::invoke:\n      function: alicloud:ess:getLifecycleHooks\n      arguments:\n        scalingGroupId: scaling_group_id\n        nameRegex: lifecyclehook_name\noutputs:\n  firstLifecycleHook: ${ds.hooks[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLifecycleHooks.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of lifecycle hook IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter resulting lifecycle hook by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"scalingGroupId":{"type":"string","description":"Scaling group id the lifecycle hooks belong to.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLifecycleHooks.\n","properties":{"hooks":{"description":"A list of lifecycle hooks. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ess/getLifecycleHooksHook:getLifecycleHooksHook"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of lifecycle hook ids.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of lifecycle hook names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"scalingGroupId":{"description":"ID of the scaling group.\n","type":"string"}},"required":["hooks","ids","names","id"],"type":"object"}},"alicloud:ess/getNotifications:getNotifications":{"description":"This data source provides available notification resources. \n\n\u003e **NOTE:** Available in 1.72.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ds = alicloud.ess.getNotifications({\n    scalingGroupId: \"scaling_group_id\",\n});\nexport const firstNotification = ds.then(ds =\u003e ds.notifications?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nds = alicloud.ess.get_notifications(scaling_group_id=\"scaling_group_id\")\npulumi.export(\"firstNotification\", ds.notifications[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ds = AliCloud.Ess.GetNotifications.Invoke(new()\n    {\n        ScalingGroupId = \"scaling_group_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstNotification\"] = ds.Apply(getNotificationsResult =\u003e getNotificationsResult.Notifications[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tds, err := ess.GetNotifications(ctx, \u0026ess.GetNotificationsArgs{\n\t\t\tScalingGroupId: \"scaling_group_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstNotification\", ds.Notifications[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ess.EssFunctions;\nimport com.pulumi.alicloud.ess.inputs.GetNotificationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ds = EssFunctions.getNotifications(GetNotificationsArgs.builder()\n            .scalingGroupId(\"scaling_group_id\")\n            .build());\n\n        ctx.export(\"firstNotification\", ds.notifications()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ds:\n    fn::invoke:\n      function: alicloud:ess:getNotifications\n      arguments:\n        scalingGroupId: scaling_group_id\noutputs:\n  firstNotification: ${ds.notifications[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNotifications.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of notification ids.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"scalingGroupId":{"type":"string","description":"Scaling group id the notifications belong to.\n"}},"type":"object","required":["scalingGroupId"]},"outputs":{"description":"A collection of values returned by getNotifications.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of notification ids.\n","items":{"type":"string"},"type":"array"},"notifications":{"description":"A list of notifications. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ess/getNotificationsNotification:getNotificationsNotification"},"type":"array"},"outputFile":{"type":"string"},"scalingGroupId":{"description":"ID of the scaling group.\n","type":"string"}},"required":["notifications","scalingGroupId","id"],"type":"object"}},"alicloud:ess/getScalingConfigurations:getScalingConfigurations":{"description":"This data source provides available scaling configuration resources. \n\n\u003e **NOTE:** Available since v1.240.0\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst myName = `${name}-${defaultInteger.result}`;\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 2,\n    memorySize: 4,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: myName,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: myName,\n});\nconst defaultSecurityGroup = new alicloud.ecs.SecurityGroup(\"default\", {\n    securityGroupName: myName,\n    vpcId: defaultNetwork.id,\n});\nconst defaultSecurityGroupRule = new alicloud.ecs.SecurityGroupRule(\"default\", {\n    type: \"ingress\",\n    ipProtocol: \"tcp\",\n    nicType: \"intranet\",\n    policy: \"accept\",\n    portRange: \"22/22\",\n    priority: 1,\n    securityGroupId: defaultSecurityGroup.id,\n    cidrIp: \"172.16.0.0/24\",\n});\nconst defaultScalingGroup = new alicloud.ess.ScalingGroup(\"default\", {\n    minSize: 1,\n    maxSize: 1,\n    scalingGroupName: myName,\n    removalPolicies: [\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitchIds: [defaultSwitch.id],\n});\nconst defaultScalingConfiguration = new alicloud.ess.ScalingConfiguration(\"default\", {\n    scalingGroupId: defaultScalingGroup.id,\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    securityGroupId: defaultSecurityGroup.id,\n    forceDelete: true,\n    active: true,\n    scalingConfigurationName: \"scaling_configuration_name\",\n});\nconst scalingconfigurationsDs = alicloud.ess.getScalingConfigurationsOutput({\n    scalingGroupId: defaultScalingGroup.id,\n    ids: [defaultScalingConfiguration.id],\n    nameRegex: \"scaling_configuration_name\",\n});\nexport const firstScalingConfiguration = scalingconfigurationsDs.apply(scalingconfigurationsDs =\u003e scalingconfigurationsDs.configurations?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nmy_name = f\"{name}-{default_integer['result']}\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=2,\n    memory_size=4)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=my_name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=my_name)\ndefault_security_group = alicloud.ecs.SecurityGroup(\"default\",\n    security_group_name=my_name,\n    vpc_id=default_network.id)\ndefault_security_group_rule = alicloud.ecs.SecurityGroupRule(\"default\",\n    type=\"ingress\",\n    ip_protocol=\"tcp\",\n    nic_type=\"intranet\",\n    policy=\"accept\",\n    port_range=\"22/22\",\n    priority=1,\n    security_group_id=default_security_group.id,\n    cidr_ip=\"172.16.0.0/24\")\ndefault_scaling_group = alicloud.ess.ScalingGroup(\"default\",\n    min_size=1,\n    max_size=1,\n    scaling_group_name=my_name,\n    removal_policies=[\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitch_ids=[default_switch.id])\ndefault_scaling_configuration = alicloud.ess.ScalingConfiguration(\"default\",\n    scaling_group_id=default_scaling_group.id,\n    image_id=default_get_images.images[0].id,\n    instance_type=default_get_instance_types.instance_types[0].id,\n    security_group_id=default_security_group.id,\n    force_delete=True,\n    active=True,\n    scaling_configuration_name=\"scaling_configuration_name\")\nscalingconfigurations_ds = alicloud.ess.get_scaling_configurations_output(scaling_group_id=default_scaling_group.id,\n    ids=[default_scaling_configuration.id],\n    name_regex=\"scaling_configuration_name\")\npulumi.export(\"firstScalingConfiguration\", scalingconfigurations_ds.configurations[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var myName = $\"{name}-{defaultInteger.Result}\";\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 2,\n        MemorySize = 4,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = myName,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = myName,\n    });\n\n    var defaultSecurityGroup = new AliCloud.Ecs.SecurityGroup(\"default\", new()\n    {\n        SecurityGroupName = myName,\n        VpcId = defaultNetwork.Id,\n    });\n\n    var defaultSecurityGroupRule = new AliCloud.Ecs.SecurityGroupRule(\"default\", new()\n    {\n        Type = \"ingress\",\n        IpProtocol = \"tcp\",\n        NicType = \"intranet\",\n        Policy = \"accept\",\n        PortRange = \"22/22\",\n        Priority = 1,\n        SecurityGroupId = defaultSecurityGroup.Id,\n        CidrIp = \"172.16.0.0/24\",\n    });\n\n    var defaultScalingGroup = new AliCloud.Ess.ScalingGroup(\"default\", new()\n    {\n        MinSize = 1,\n        MaxSize = 1,\n        ScalingGroupName = myName,\n        RemovalPolicies = new[]\n        {\n            \"OldestInstance\",\n            \"NewestInstance\",\n        },\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n    });\n\n    var defaultScalingConfiguration = new AliCloud.Ess.ScalingConfiguration(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        SecurityGroupId = defaultSecurityGroup.Id,\n        ForceDelete = true,\n        Active = true,\n        ScalingConfigurationName = \"scaling_configuration_name\",\n    });\n\n    var scalingconfigurationsDs = AliCloud.Ess.GetScalingConfigurations.Invoke(new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        Ids = new[]\n        {\n            defaultScalingConfiguration.Id,\n        },\n        NameRegex = \"scaling_configuration_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstScalingConfiguration\"] = scalingconfigurationsDs.Apply(getScalingConfigurationsResult =\u003e getScalingConfigurationsResult.Configurations[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyName := fmt.Sprintf(\"%v-%v\", name, defaultInteger.Result)\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(2),\n\t\t\tMemorySize:       pulumi.Float64Ref(4),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(myName),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(myName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSecurityGroup, err := ecs.NewSecurityGroup(ctx, \"default\", \u0026ecs.SecurityGroupArgs{\n\t\t\tSecurityGroupName: pulumi.String(myName),\n\t\t\tVpcId:             defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroupRule(ctx, \"default\", \u0026ecs.SecurityGroupRuleArgs{\n\t\t\tType:            pulumi.String(\"ingress\"),\n\t\t\tIpProtocol:      pulumi.String(\"tcp\"),\n\t\t\tNicType:         pulumi.String(\"intranet\"),\n\t\t\tPolicy:          pulumi.String(\"accept\"),\n\t\t\tPortRange:       pulumi.String(\"22/22\"),\n\t\t\tPriority:        pulumi.Int(1),\n\t\t\tSecurityGroupId: defaultSecurityGroup.ID(),\n\t\t\tCidrIp:          pulumi.String(\"172.16.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingGroup, err := ess.NewScalingGroup(ctx, \"default\", \u0026ess.ScalingGroupArgs{\n\t\t\tMinSize:          pulumi.Int(1),\n\t\t\tMaxSize:          pulumi.Int(1),\n\t\t\tScalingGroupName: pulumi.String(myName),\n\t\t\tRemovalPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OldestInstance\"),\n\t\t\t\tpulumi.String(\"NewestInstance\"),\n\t\t\t},\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingConfiguration, err := ess.NewScalingConfiguration(ctx, \"default\", \u0026ess.ScalingConfigurationArgs{\n\t\t\tScalingGroupId:           defaultScalingGroup.ID(),\n\t\t\tImageId:                  pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceType:             pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tSecurityGroupId:          defaultSecurityGroup.ID(),\n\t\t\tForceDelete:              pulumi.Bool(true),\n\t\t\tActive:                   pulumi.Bool(true),\n\t\t\tScalingConfigurationName: pulumi.String(\"scaling_configuration_name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tscalingconfigurationsDs := ess.GetScalingConfigurationsOutput(ctx, ess.GetScalingConfigurationsOutputArgs{\n\t\t\tScalingGroupId: defaultScalingGroup.ID(),\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultScalingConfiguration.ID(),\n\t\t\t},\n\t\t\tNameRegex: pulumi.String(\"scaling_configuration_name\"),\n\t\t}, nil)\n\t\tctx.Export(\"firstScalingConfiguration\", scalingconfigurationsDs.ApplyT(func(scalingconfigurationsDs ess.GetScalingConfigurationsResult) (*string, error) {\n\t\t\treturn \u0026scalingconfigurationsDs.Configurations[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroupRule;\nimport com.pulumi.alicloud.ecs.SecurityGroupRuleArgs;\nimport com.pulumi.alicloud.ess.ScalingGroup;\nimport com.pulumi.alicloud.ess.ScalingGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingConfiguration;\nimport com.pulumi.alicloud.ess.ScalingConfigurationArgs;\nimport com.pulumi.alicloud.ess.EssFunctions;\nimport com.pulumi.alicloud.ess.inputs.GetScalingConfigurationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var myName = String.format(\"%s-%s\", name,defaultInteger.result());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(2)\n            .memorySize(4)\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(myName)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(myName)\n            .build());\n\n        var defaultSecurityGroup = new SecurityGroup(\"defaultSecurityGroup\", SecurityGroupArgs.builder()\n            .securityGroupName(myName)\n            .vpcId(defaultNetwork.id())\n            .build());\n\n        var defaultSecurityGroupRule = new SecurityGroupRule(\"defaultSecurityGroupRule\", SecurityGroupRuleArgs.builder()\n            .type(\"ingress\")\n            .ipProtocol(\"tcp\")\n            .nicType(\"intranet\")\n            .policy(\"accept\")\n            .portRange(\"22/22\")\n            .priority(1)\n            .securityGroupId(defaultSecurityGroup.id())\n            .cidrIp(\"172.16.0.0/24\")\n            .build());\n\n        var defaultScalingGroup = new ScalingGroup(\"defaultScalingGroup\", ScalingGroupArgs.builder()\n            .minSize(1)\n            .maxSize(1)\n            .scalingGroupName(myName)\n            .removalPolicies(            \n                \"OldestInstance\",\n                \"NewestInstance\")\n            .vswitchIds(defaultSwitch.id())\n            .build());\n\n        var defaultScalingConfiguration = new ScalingConfiguration(\"defaultScalingConfiguration\", ScalingConfigurationArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .securityGroupId(defaultSecurityGroup.id())\n            .forceDelete(true)\n            .active(true)\n            .scalingConfigurationName(\"scaling_configuration_name\")\n            .build());\n\n        final var scalingconfigurationsDs = EssFunctions.getScalingConfigurations(GetScalingConfigurationsArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .ids(defaultScalingConfiguration.id())\n            .nameRegex(\"scaling_configuration_name\")\n            .build());\n\n        ctx.export(\"firstScalingConfiguration\", scalingconfigurationsDs.applyValue(_scalingconfigurationsDs -\u003e _scalingconfigurationsDs.configurations()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${myName}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${myName}\n  defaultSecurityGroup:\n    type: alicloud:ecs:SecurityGroup\n    name: default\n    properties:\n      securityGroupName: ${myName}\n      vpcId: ${defaultNetwork.id}\n  defaultSecurityGroupRule:\n    type: alicloud:ecs:SecurityGroupRule\n    name: default\n    properties:\n      type: ingress\n      ipProtocol: tcp\n      nicType: intranet\n      policy: accept\n      portRange: 22/22\n      priority: 1\n      securityGroupId: ${defaultSecurityGroup.id}\n      cidrIp: 172.16.0.0/24\n  defaultScalingGroup:\n    type: alicloud:ess:ScalingGroup\n    name: default\n    properties:\n      minSize: 1\n      maxSize: 1\n      scalingGroupName: ${myName}\n      removalPolicies:\n        - OldestInstance\n        - NewestInstance\n      vswitchIds:\n        - ${defaultSwitch.id}\n  defaultScalingConfiguration:\n    type: alicloud:ess:ScalingConfiguration\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingGroup.id}\n      imageId: ${defaultGetImages.images[0].id}\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      securityGroupId: ${defaultSecurityGroup.id}\n      forceDelete: true\n      active: true\n      scalingConfigurationName: scaling_configuration_name\nvariables:\n  myName: ${name}-${defaultInteger.result}\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 2\n        memorySize: 4\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n  scalingconfigurationsDs:\n    fn::invoke:\n      function: alicloud:ess:getScalingConfigurations\n      arguments:\n        scalingGroupId: ${defaultScalingGroup.id}\n        ids:\n          - ${defaultScalingConfiguration.id}\n        nameRegex: scaling_configuration_name\noutputs:\n  firstScalingConfiguration: ${scalingconfigurationsDs.configurations[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getScalingConfigurations.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of scaling configuration IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter resulting scaling configurations by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"scalingGroupId":{"type":"string","description":"Scaling group id the scaling configurations belong to.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getScalingConfigurations.\n","properties":{"configurations":{"description":"A list of scaling rules. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ess/getScalingConfigurationsConfiguration:getScalingConfigurationsConfiguration"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of scaling configuration ids.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of scaling configuration names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"scalingGroupId":{"description":"ID of the scaling group.\n","type":"string"}},"required":["configurations","ids","names","id"],"type":"object"}},"alicloud:ess/getScalingGroups:getScalingGroups":{"description":"This data source provides available scaling group resources. \n\n\u003e **NOTE:** Available since v1.39.0\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst myName = `${name}-${defaultInteger.result}`;\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: myName,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: myName,\n});\nconst defaultScalingGroup = new alicloud.ess.ScalingGroup(\"default\", {\n    minSize: 1,\n    maxSize: 1,\n    scalingGroupName: myName,\n    removalPolicies: [\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitchIds: [defaultSwitch.id],\n});\nconst scalinggroupsDs = alicloud.ess.getScalingGroupsOutput({\n    ids: [defaultScalingGroup.id],\n    nameRegex: myName,\n});\nexport const firstScalingGroup = scalinggroupsDs.apply(scalinggroupsDs =\u003e scalinggroupsDs.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nmy_name = f\"{name}-{default_integer['result']}\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=my_name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=my_name)\ndefault_scaling_group = alicloud.ess.ScalingGroup(\"default\",\n    min_size=1,\n    max_size=1,\n    scaling_group_name=my_name,\n    removal_policies=[\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitch_ids=[default_switch.id])\nscalinggroups_ds = alicloud.ess.get_scaling_groups_output(ids=[default_scaling_group.id],\n    name_regex=my_name)\npulumi.export(\"firstScalingGroup\", scalinggroups_ds.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var myName = $\"{name}-{defaultInteger.Result}\";\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = myName,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = myName,\n    });\n\n    var defaultScalingGroup = new AliCloud.Ess.ScalingGroup(\"default\", new()\n    {\n        MinSize = 1,\n        MaxSize = 1,\n        ScalingGroupName = myName,\n        RemovalPolicies = new[]\n        {\n            \"OldestInstance\",\n            \"NewestInstance\",\n        },\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n    });\n\n    var scalinggroupsDs = AliCloud.Ess.GetScalingGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultScalingGroup.Id,\n        },\n        NameRegex = myName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstScalingGroup\"] = scalinggroupsDs.Apply(getScalingGroupsResult =\u003e getScalingGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyName := fmt.Sprintf(\"%v-%v\", name, defaultInteger.Result)\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(myName),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(myName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingGroup, err := ess.NewScalingGroup(ctx, \"default\", \u0026ess.ScalingGroupArgs{\n\t\t\tMinSize:          pulumi.Int(1),\n\t\t\tMaxSize:          pulumi.Int(1),\n\t\t\tScalingGroupName: pulumi.String(myName),\n\t\t\tRemovalPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OldestInstance\"),\n\t\t\t\tpulumi.String(\"NewestInstance\"),\n\t\t\t},\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tscalinggroupsDs := ess.GetScalingGroupsOutput(ctx, ess.GetScalingGroupsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultScalingGroup.ID(),\n\t\t\t},\n\t\t\tNameRegex: pulumi.String(myName),\n\t\t}, nil)\n\t\tctx.Export(\"firstScalingGroup\", scalinggroupsDs.ApplyT(func(scalinggroupsDs ess.GetScalingGroupsResult) (*string, error) {\n\t\t\treturn \u0026scalinggroupsDs.Groups[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ess.ScalingGroup;\nimport com.pulumi.alicloud.ess.ScalingGroupArgs;\nimport com.pulumi.alicloud.ess.EssFunctions;\nimport com.pulumi.alicloud.ess.inputs.GetScalingGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var myName = String.format(\"%s-%s\", name,defaultInteger.result());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(myName)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(myName)\n            .build());\n\n        var defaultScalingGroup = new ScalingGroup(\"defaultScalingGroup\", ScalingGroupArgs.builder()\n            .minSize(1)\n            .maxSize(1)\n            .scalingGroupName(myName)\n            .removalPolicies(            \n                \"OldestInstance\",\n                \"NewestInstance\")\n            .vswitchIds(defaultSwitch.id())\n            .build());\n\n        final var scalinggroupsDs = EssFunctions.getScalingGroups(GetScalingGroupsArgs.builder()\n            .ids(defaultScalingGroup.id())\n            .nameRegex(myName)\n            .build());\n\n        ctx.export(\"firstScalingGroup\", scalinggroupsDs.applyValue(_scalinggroupsDs -\u003e _scalinggroupsDs.groups()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${myName}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${myName}\n  defaultScalingGroup:\n    type: alicloud:ess:ScalingGroup\n    name: default\n    properties:\n      minSize: 1\n      maxSize: 1\n      scalingGroupName: ${myName}\n      removalPolicies:\n        - OldestInstance\n        - NewestInstance\n      vswitchIds:\n        - ${defaultSwitch.id}\nvariables:\n  myName: ${name}-${defaultInteger.result}\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  scalinggroupsDs:\n    fn::invoke:\n      function: alicloud:ess:getScalingGroups\n      arguments:\n        ids:\n          - ${defaultScalingGroup.id}\n        nameRegex: ${myName}\noutputs:\n  firstScalingGroup: ${scalinggroupsDs.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getScalingGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of scaling group IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter resulting scaling groups by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getScalingGroups.\n","properties":{"groups":{"description":"A list of scaling groups. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ess/getScalingGroupsGroup:getScalingGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of scaling group ids.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of scaling group names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:ess/getScalingRules:getScalingRules":{"description":"This data source provides available scaling rule resources. \n\n\u003e **NOTE:** Available since v1.39.0\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-ex\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst myName = `${name}-${defaultInteger.result}`;\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: myName,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: myName,\n});\nconst defaultScalingGroup = new alicloud.ess.ScalingGroup(\"default\", {\n    minSize: 1,\n    maxSize: 1,\n    scalingGroupName: myName,\n    removalPolicies: [\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitchIds: [defaultSwitch.id],\n});\nconst defaultScalingRule = new alicloud.ess.ScalingRule(\"default\", {\n    scalingGroupId: defaultScalingGroup.id,\n    scalingRuleName: myName,\n    adjustmentType: \"PercentChangeInCapacity\",\n    adjustmentValue: 1,\n});\nconst scalingrulesDs = alicloud.ess.getScalingRulesOutput({\n    scalingGroupId: defaultScalingGroup.id,\n    ids: [defaultScalingRule.id],\n    nameRegex: myName,\n});\nexport const firstScalingRule = scalingrulesDs.apply(scalingrulesDs =\u003e scalingrulesDs.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-ex\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nmy_name = f\"{name}-{default_integer['result']}\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=my_name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=my_name)\ndefault_scaling_group = alicloud.ess.ScalingGroup(\"default\",\n    min_size=1,\n    max_size=1,\n    scaling_group_name=my_name,\n    removal_policies=[\n        \"OldestInstance\",\n        \"NewestInstance\",\n    ],\n    vswitch_ids=[default_switch.id])\ndefault_scaling_rule = alicloud.ess.ScalingRule(\"default\",\n    scaling_group_id=default_scaling_group.id,\n    scaling_rule_name=my_name,\n    adjustment_type=\"PercentChangeInCapacity\",\n    adjustment_value=1)\nscalingrules_ds = alicloud.ess.get_scaling_rules_output(scaling_group_id=default_scaling_group.id,\n    ids=[default_scaling_rule.id],\n    name_regex=my_name)\npulumi.export(\"firstScalingRule\", scalingrules_ds.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-ex\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var myName = $\"{name}-{defaultInteger.Result}\";\n\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = myName,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = myName,\n    });\n\n    var defaultScalingGroup = new AliCloud.Ess.ScalingGroup(\"default\", new()\n    {\n        MinSize = 1,\n        MaxSize = 1,\n        ScalingGroupName = myName,\n        RemovalPolicies = new[]\n        {\n            \"OldestInstance\",\n            \"NewestInstance\",\n        },\n        VswitchIds = new[]\n        {\n            defaultSwitch.Id,\n        },\n    });\n\n    var defaultScalingRule = new AliCloud.Ess.ScalingRule(\"default\", new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        ScalingRuleName = myName,\n        AdjustmentType = \"PercentChangeInCapacity\",\n        AdjustmentValue = 1,\n    });\n\n    var scalingrulesDs = AliCloud.Ess.GetScalingRules.Invoke(new()\n    {\n        ScalingGroupId = defaultScalingGroup.Id,\n        Ids = new[]\n        {\n            defaultScalingRule.Id,\n        },\n        NameRegex = myName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstScalingRule\"] = scalingrulesDs.Apply(getScalingRulesResult =\u003e getScalingRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-ex\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyName := fmt.Sprintf(\"%v-%v\", name, defaultInteger.Result)\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(myName),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(myName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingGroup, err := ess.NewScalingGroup(ctx, \"default\", \u0026ess.ScalingGroupArgs{\n\t\t\tMinSize:          pulumi.Int(1),\n\t\t\tMaxSize:          pulumi.Int(1),\n\t\t\tScalingGroupName: pulumi.String(myName),\n\t\t\tRemovalPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"OldestInstance\"),\n\t\t\t\tpulumi.String(\"NewestInstance\"),\n\t\t\t},\n\t\t\tVswitchIds: pulumi.StringArray{\n\t\t\t\tdefaultSwitch.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultScalingRule, err := ess.NewScalingRule(ctx, \"default\", \u0026ess.ScalingRuleArgs{\n\t\t\tScalingGroupId:  defaultScalingGroup.ID(),\n\t\t\tScalingRuleName: pulumi.String(myName),\n\t\t\tAdjustmentType:  pulumi.String(\"PercentChangeInCapacity\"),\n\t\t\tAdjustmentValue: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tscalingrulesDs := ess.GetScalingRulesOutput(ctx, ess.GetScalingRulesOutputArgs{\n\t\t\tScalingGroupId: defaultScalingGroup.ID(),\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultScalingRule.ID(),\n\t\t\t},\n\t\t\tNameRegex: pulumi.String(myName),\n\t\t}, nil)\n\t\tctx.Export(\"firstScalingRule\", scalingrulesDs.ApplyT(func(scalingrulesDs ess.GetScalingRulesResult) (*string, error) {\n\t\t\treturn \u0026scalingrulesDs.Rules[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ess.ScalingGroup;\nimport com.pulumi.alicloud.ess.ScalingGroupArgs;\nimport com.pulumi.alicloud.ess.ScalingRule;\nimport com.pulumi.alicloud.ess.ScalingRuleArgs;\nimport com.pulumi.alicloud.ess.EssFunctions;\nimport com.pulumi.alicloud.ess.inputs.GetScalingRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-ex\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var myName = String.format(\"%s-%s\", name,defaultInteger.result());\n\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(myName)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(myName)\n            .build());\n\n        var defaultScalingGroup = new ScalingGroup(\"defaultScalingGroup\", ScalingGroupArgs.builder()\n            .minSize(1)\n            .maxSize(1)\n            .scalingGroupName(myName)\n            .removalPolicies(            \n                \"OldestInstance\",\n                \"NewestInstance\")\n            .vswitchIds(defaultSwitch.id())\n            .build());\n\n        var defaultScalingRule = new ScalingRule(\"defaultScalingRule\", ScalingRuleArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .scalingRuleName(myName)\n            .adjustmentType(\"PercentChangeInCapacity\")\n            .adjustmentValue(1)\n            .build());\n\n        final var scalingrulesDs = EssFunctions.getScalingRules(GetScalingRulesArgs.builder()\n            .scalingGroupId(defaultScalingGroup.id())\n            .ids(defaultScalingRule.id())\n            .nameRegex(myName)\n            .build());\n\n        ctx.export(\"firstScalingRule\", scalingrulesDs.applyValue(_scalingrulesDs -\u003e _scalingrulesDs.rules()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-ex\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${myName}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${myName}\n  defaultScalingGroup:\n    type: alicloud:ess:ScalingGroup\n    name: default\n    properties:\n      minSize: 1\n      maxSize: 1\n      scalingGroupName: ${myName}\n      removalPolicies:\n        - OldestInstance\n        - NewestInstance\n      vswitchIds:\n        - ${defaultSwitch.id}\n  defaultScalingRule:\n    type: alicloud:ess:ScalingRule\n    name: default\n    properties:\n      scalingGroupId: ${defaultScalingGroup.id}\n      scalingRuleName: ${myName}\n      adjustmentType: PercentChangeInCapacity\n      adjustmentValue: 1\nvariables:\n  myName: ${name}-${defaultInteger.result}\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  scalingrulesDs:\n    fn::invoke:\n      function: alicloud:ess:getScalingRules\n      arguments:\n        scalingGroupId: ${defaultScalingGroup.id}\n        ids:\n          - ${defaultScalingRule.id}\n        nameRegex: ${myName}\noutputs:\n  firstScalingRule: ${scalingrulesDs.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getScalingRules.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of scaling rule IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter resulting scaling rules by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"scalingGroupId":{"type":"string","description":"Scaling group id the scaling rules belong to.\n"},"type":{"type":"string","description":"Type of scaling rule.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getScalingRules.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of scaling rule ids.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of scaling rule names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"rules":{"description":"A list of scaling rules. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ess/getScalingRulesRule:getScalingRulesRule"},"type":"array"},"scalingGroupId":{"description":"ID of the scaling group.\n","type":"string"},"type":{"description":"Type of the scaling rule.\n","type":"string"}},"required":["ids","names","rules","id"],"type":"object"}},"alicloud:ess/getScheduledTasks:getScheduledTasks":{"description":"This data source provides available scheduled task resources. \n\n\u003e **NOTE:** Available in 1.72.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ds = alicloud.ess.getScheduledTasks({\n    scheduledTaskId: \"scheduled_task_id\",\n    nameRegex: \"scheduled_task_name\",\n});\nexport const firstScheduledTask = ds.then(ds =\u003e ds.tasks?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nds = alicloud.ess.get_scheduled_tasks(scheduled_task_id=\"scheduled_task_id\",\n    name_regex=\"scheduled_task_name\")\npulumi.export(\"firstScheduledTask\", ds.tasks[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ds = AliCloud.Ess.GetScheduledTasks.Invoke(new()\n    {\n        ScheduledTaskId = \"scheduled_task_id\",\n        NameRegex = \"scheduled_task_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstScheduledTask\"] = ds.Apply(getScheduledTasksResult =\u003e getScheduledTasksResult.Tasks[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ess\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tds, err := ess.GetScheduledTasks(ctx, \u0026ess.GetScheduledTasksArgs{\n\t\t\tScheduledTaskId: pulumi.StringRef(\"scheduled_task_id\"),\n\t\t\tNameRegex:       pulumi.StringRef(\"scheduled_task_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstScheduledTask\", ds.Tasks[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ess.EssFunctions;\nimport com.pulumi.alicloud.ess.inputs.GetScheduledTasksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ds = EssFunctions.getScheduledTasks(GetScheduledTasksArgs.builder()\n            .scheduledTaskId(\"scheduled_task_id\")\n            .nameRegex(\"scheduled_task_name\")\n            .build());\n\n        ctx.export(\"firstScheduledTask\", ds.tasks()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ds:\n    fn::invoke:\n      function: alicloud:ess:getScheduledTasks\n      arguments:\n        scheduledTaskId: scheduled_task_id\n        nameRegex: scheduled_task_name\noutputs:\n  firstScheduledTask: ${ds.tasks[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getScheduledTasks.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of scheduled task IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter resulting scheduled tasks by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"scheduledAction":{"type":"string","description":"The operation to be performed when a scheduled task is triggered.\n"},"scheduledTaskId":{"type":"string","description":"The id of the scheduled task.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getScheduledTasks.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of scheduled task ids.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of scheduled task names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"scheduledAction":{"description":"The operation to be performed when a scheduled task is triggered.\n","type":"string"},"scheduledTaskId":{"type":"string"},"tasks":{"description":"A list of scheduled tasks. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ess/getScheduledTasksTask:getScheduledTasksTask"},"type":"array"}},"required":["ids","names","tasks","id"],"type":"object"}},"alicloud:eventbridge/getEventBuses:getEventBuses":{"description":"This data source provides the Event Bridge Event Buses of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.129.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.eventbridge.getEventBuses({});\nexport const eventBridgeEventBusId1 = ids.then(ids =\u003e ids.buses?.[0]?.id);\nconst nameRegex = alicloud.eventbridge.getEventBuses({\n    nameRegex: \"^my-EventBus\",\n});\nexport const eventBridgeEventBusId2 = nameRegex.then(nameRegex =\u003e nameRegex.buses?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.eventbridge.get_event_buses()\npulumi.export(\"eventBridgeEventBusId1\", ids.buses[0].id)\nname_regex = alicloud.eventbridge.get_event_buses(name_regex=\"^my-EventBus\")\npulumi.export(\"eventBridgeEventBusId2\", name_regex.buses[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.EventBridge.GetEventBuses.Invoke();\n\n    var nameRegex = AliCloud.EventBridge.GetEventBuses.Invoke(new()\n    {\n        NameRegex = \"^my-EventBus\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"eventBridgeEventBusId1\"] = ids.Apply(getEventBusesResult =\u003e getEventBusesResult.Buses[0]?.Id),\n        [\"eventBridgeEventBusId2\"] = nameRegex.Apply(getEventBusesResult =\u003e getEventBusesResult.Buses[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eventbridge\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := eventbridge.GetEventBuses(ctx, \u0026eventbridge.GetEventBusesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"eventBridgeEventBusId1\", ids.Buses[0].Id)\n\t\tnameRegex, err := eventbridge.GetEventBuses(ctx, \u0026eventbridge.GetEventBusesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-EventBus\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"eventBridgeEventBusId2\", nameRegex.Buses[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eventbridge.EventbridgeFunctions;\nimport com.pulumi.alicloud.eventbridge.inputs.GetEventBusesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = EventbridgeFunctions.getEventBuses(GetEventBusesArgs.builder()\n            .build());\n\n        ctx.export(\"eventBridgeEventBusId1\", ids.buses()[0].id());\n        final var nameRegex = EventbridgeFunctions.getEventBuses(GetEventBusesArgs.builder()\n            .nameRegex(\"^my-EventBus\")\n            .build());\n\n        ctx.export(\"eventBridgeEventBusId2\", nameRegex.buses()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:eventbridge:getEventBuses\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:eventbridge:getEventBuses\n      arguments:\n        nameRegex: ^my-EventBus\noutputs:\n  eventBridgeEventBusId1: ${ids.buses[0].id}\n  eventBridgeEventBusId2: ${nameRegex.buses[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEventBuses.\n","properties":{"eventBusType":{"type":"string","description":"The event bus type.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Event Bus IDs. Its element value is same as Event Bus Name.\n"},"namePrefix":{"type":"string","description":"The name prefix.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Event Bus name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEventBuses.\n","properties":{"buses":{"items":{"$ref":"#/types/alicloud:eventbridge/getEventBusesBus:getEventBusesBus"},"type":"array"},"eventBusType":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"namePrefix":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["buses","ids","names","id"],"type":"object"}},"alicloud:eventbridge/getEventSources:getEventSources":{"description":"This data source provides the Event Bridge Event Sources of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.130.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.eventbridge.getEventSources({\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstEventBridgeEventSourceId = example.then(example =\u003e example.sources?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.eventbridge.get_event_sources(ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstEventBridgeEventSourceId\", example.sources[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.EventBridge.GetEventSources.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstEventBridgeEventSourceId\"] = example.Apply(getEventSourcesResult =\u003e getEventSourcesResult.Sources[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eventbridge\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := eventbridge.GetEventSources(ctx, \u0026eventbridge.GetEventSourcesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstEventBridgeEventSourceId\", example.Sources[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eventbridge.EventbridgeFunctions;\nimport com.pulumi.alicloud.eventbridge.inputs.GetEventSourcesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = EventbridgeFunctions.getEventSources(GetEventSourcesArgs.builder()\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstEventBridgeEventSourceId\", example.sources()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:eventbridge:getEventSources\n      arguments:\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstEventBridgeEventSourceId: ${example.sources[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEventSources.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Event Source IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Event Source name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEventSources.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"sources":{"items":{"$ref":"#/types/alicloud:eventbridge/getEventSourcesSource:getEventSourcesSource"},"type":"array"}},"required":["ids","names","sources","id"],"type":"object"}},"alicloud:eventbridge/getRules:getRules":{"description":"This data source provides the Event Bridge Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.129.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.eventbridge.getRules({\n    eventBusName: \"example_value\",\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstEventBridgeRuleId = example.then(example =\u003e example.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.eventbridge.get_rules(event_bus_name=\"example_value\",\n    ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstEventBridgeRuleId\", example.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.EventBridge.GetRules.Invoke(new()\n    {\n        EventBusName = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstEventBridgeRuleId\"] = example.Apply(getRulesResult =\u003e getRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eventbridge\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := eventbridge.GetRules(ctx, \u0026eventbridge.GetRulesArgs{\n\t\t\tEventBusName: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstEventBridgeRuleId\", example.Rules[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eventbridge.EventbridgeFunctions;\nimport com.pulumi.alicloud.eventbridge.inputs.GetRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = EventbridgeFunctions.getRules(GetRulesArgs.builder()\n            .eventBusName(\"example_value\")\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstEventBridgeRuleId\", example.rules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:eventbridge:getRules\n      arguments:\n        eventBusName: example_value\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstEventBridgeRuleId: ${example.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRules.\n","properties":{"eventBusName":{"type":"string","description":"The name of event bus.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Rule IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"ruleNamePrefix":{"type":"string","description":"The rule name prefix.\n"},"status":{"type":"string","description":"Rule status, either Enable or Disable. Valid values: `DISABLE`, `ENABLE`.\n"}},"type":"object","required":["eventBusName"]},"outputs":{"description":"A collection of values returned by getRules.\n","properties":{"eventBusName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"ruleNamePrefix":{"type":"string"},"rules":{"items":{"$ref":"#/types/alicloud:eventbridge/getRulesRule:getRulesRule"},"type":"array"},"status":{"type":"string"}},"required":["eventBusName","ids","names","rules","id"],"type":"object"}},"alicloud:eventbridge/getService:getService":{"description":"Using this data source can open Event Bridge service automatically. If the service has been opened, it will return opened.\n\nFor information about Event Bridge and how to use it, see [What is Event Bridge](https://www.alibabacloud.com/help/en/doc-detail/163239.htm).\n\n\u003e **NOTE:** Available since v1.126.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.eventbridge.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.eventbridge.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.EventBridge.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/eventbridge\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := eventbridge.GetService(ctx, \u0026eventbridge.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.eventbridge.EventbridgeFunctions;\nimport com.pulumi.alicloud.eventbridge.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = EventbridgeFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:eventbridge:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the Event Bridge service that means you have read and agreed the [Event Bridge Terms of Service](https://help.aliyun.com/document_detail/163911.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:expressconnect/getAccessPoints:getAccessPoints":{"description":"This data source provides the Express Connect Access Points of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.132.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.expressconnect.getAccessPoints({\n    ids: [\"ap-cn-hangzhou-yh-C\"],\n});\nexport const expressConnectAccessPointId1 = ids.then(ids =\u003e ids.points?.[0]?.id);\nconst nameRegex = alicloud.expressconnect.getAccessPoints({\n    nameRegex: \"^杭州-\",\n});\nexport const expressConnectAccessPointId2 = nameRegex.then(nameRegex =\u003e nameRegex.points?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.expressconnect.get_access_points(ids=[\"ap-cn-hangzhou-yh-C\"])\npulumi.export(\"expressConnectAccessPointId1\", ids.points[0].id)\nname_regex = alicloud.expressconnect.get_access_points(name_regex=\"^杭州-\")\npulumi.export(\"expressConnectAccessPointId2\", name_regex.points[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.ExpressConnect.GetAccessPoints.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"ap-cn-hangzhou-yh-C\",\n        },\n    });\n\n    var nameRegex = AliCloud.ExpressConnect.GetAccessPoints.Invoke(new()\n    {\n        NameRegex = \"^杭州-\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"expressConnectAccessPointId1\"] = ids.Apply(getAccessPointsResult =\u003e getAccessPointsResult.Points[0]?.Id),\n        [\"expressConnectAccessPointId2\"] = nameRegex.Apply(getAccessPointsResult =\u003e getAccessPointsResult.Points[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := expressconnect.GetAccessPoints(ctx, \u0026expressconnect.GetAccessPointsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"ap-cn-hangzhou-yh-C\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"expressConnectAccessPointId1\", ids.Points[0].Id)\n\t\tnameRegex, err := expressconnect.GetAccessPoints(ctx, \u0026expressconnect.GetAccessPointsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^杭州-\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"expressConnectAccessPointId2\", nameRegex.Points[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetAccessPointsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ExpressconnectFunctions.getAccessPoints(GetAccessPointsArgs.builder()\n            .ids(\"ap-cn-hangzhou-yh-C\")\n            .build());\n\n        ctx.export(\"expressConnectAccessPointId1\", ids.points()[0].id());\n        final var nameRegex = ExpressconnectFunctions.getAccessPoints(GetAccessPointsArgs.builder()\n            .nameRegex(\"^杭州-\")\n            .build());\n\n        ctx.export(\"expressConnectAccessPointId2\", nameRegex.points()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:expressconnect:getAccessPoints\n      arguments:\n        ids:\n          - ap-cn-hangzhou-yh-C\n  nameRegex:\n    fn::invoke:\n      function: alicloud:expressconnect:getAccessPoints\n      arguments:\n        nameRegex: ^杭州-\noutputs:\n  expressConnectAccessPointId1: ${ids.points[0].id}\n  expressConnectAccessPointId2: ${nameRegex.points[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccessPoints.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Access Point IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Access Point name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The Physical Connection to Which the Access Point State. Valid values: \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`full`\" pulumi-lang-dotnet=\"`Full`\" pulumi-lang-go=\"`full`\" pulumi-lang-python=\"`full`\" pulumi-lang-yaml=\"`full`\" pulumi-lang-java=\"`full`\"\u003e`full`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hot`\" pulumi-lang-dotnet=\"`Hot`\" pulumi-lang-go=\"`hot`\" pulumi-lang-python=\"`hot`\" pulumi-lang-yaml=\"`hot`\" pulumi-lang-java=\"`hot`\"\u003e`hot`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`recommended`\" pulumi-lang-dotnet=\"`Recommended`\" pulumi-lang-go=\"`recommended`\" pulumi-lang-python=\"`recommended`\" pulumi-lang-yaml=\"`recommended`\" pulumi-lang-java=\"`recommended`\"\u003e`recommended`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAccessPoints.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"points":{"items":{"$ref":"#/types/alicloud:expressconnect/getAccessPointsPoint:getAccessPointsPoint"},"type":"array"},"status":{"type":"string"}},"required":["ids","names","points","id"],"type":"object"}},"alicloud:expressconnect/getGrantRuleToCens:getGrantRuleToCens":{"description":"This data source provides the Express Connect Grant Rule To Cens of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.196.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.expressconnect.getGrantRuleToCens({\n    ids: [\"example_id\"],\n    instanceId: \"your_vbr_instance_id\",\n});\nexport const expressConnectGrantRuleToCenId0 = ids.then(ids =\u003e ids.cens?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.expressconnect.get_grant_rule_to_cens(ids=[\"example_id\"],\n    instance_id=\"your_vbr_instance_id\")\npulumi.export(\"expressConnectGrantRuleToCenId0\", ids.cens[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.ExpressConnect.GetGrantRuleToCens.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        InstanceId = \"your_vbr_instance_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"expressConnectGrantRuleToCenId0\"] = ids.Apply(getGrantRuleToCensResult =\u003e getGrantRuleToCensResult.Cens[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := expressconnect.GetGrantRuleToCens(ctx, \u0026expressconnect.GetGrantRuleToCensArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tInstanceId: \"your_vbr_instance_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"expressConnectGrantRuleToCenId0\", ids.Cens[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetGrantRuleToCensArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ExpressconnectFunctions.getGrantRuleToCens(GetGrantRuleToCensArgs.builder()\n            .ids(\"example_id\")\n            .instanceId(\"your_vbr_instance_id\")\n            .build());\n\n        ctx.export(\"expressConnectGrantRuleToCenId0\", ids.cens()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:expressconnect:getGrantRuleToCens\n      arguments:\n        ids:\n          - example_id\n        instanceId: your_vbr_instance_id\noutputs:\n  expressConnectGrantRuleToCenId0: ${ids.cens[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGrantRuleToCens.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Grant Rule To Cen IDs.\n"},"instanceId":{"type":"string","description":"The ID of the VBR.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getGrantRuleToCens.\n","properties":{"cens":{"description":"A list of Express Connect Grant Rule To Cens. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:expressconnect/getGrantRuleToCensCen:getGrantRuleToCensCen"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["cens","ids","instanceId","id"],"type":"object"}},"alicloud:expressconnect/getPhysicalConnectionService:getPhysicalConnectionService":{"description":"Using this data source can enable outbound traffic for an Express Connect circuit automatically. If the service has been opened, it will return opened.\n\nFor information about Express Connect and how to use it, see [What is Express Connect](https://www.alibabacloud.com/help/doc-detail/275179.htm).\n\n\u003e **NOTE:** Available since v1.132.0\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.expressconnect.getPhysicalConnectionService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.expressconnect.get_physical_connection_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.ExpressConnect.GetPhysicalConnectionService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := expressconnect.GetPhysicalConnectionService(ctx, \u0026expressconnect.GetPhysicalConnectionServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = ExpressconnectFunctions.getPhysicalConnectionService(GetPhysicalConnectionServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnectionService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPhysicalConnectionService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to enable outbound traffic for an Express Connect circuit that means you have read and agreed the [Express Connect Terms of Service](https://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud201803060947_16271.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPhysicalConnectionService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:expressconnect/getPhysicalConnections:getPhysicalConnections":{"description":"This data source provides the Express Connect Physical Connections of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.132.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.expressconnect.getPhysicalConnections({\n    ids: [\"pc-2345678\"],\n});\nexport const expressConnectPhysicalConnectionId1 = ids.then(ids =\u003e ids.connections?.[0]?.id);\nconst nameRegex = alicloud.expressconnect.getPhysicalConnections({\n    nameRegex: \"^my-PhysicalConnection\",\n});\nexport const expressConnectPhysicalConnectionId2 = nameRegex.then(nameRegex =\u003e nameRegex.connections?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.expressconnect.get_physical_connections(ids=[\"pc-2345678\"])\npulumi.export(\"expressConnectPhysicalConnectionId1\", ids.connections[0].id)\nname_regex = alicloud.expressconnect.get_physical_connections(name_regex=\"^my-PhysicalConnection\")\npulumi.export(\"expressConnectPhysicalConnectionId2\", name_regex.connections[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"pc-2345678\",\n        },\n    });\n\n    var nameRegex = AliCloud.ExpressConnect.GetPhysicalConnections.Invoke(new()\n    {\n        NameRegex = \"^my-PhysicalConnection\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"expressConnectPhysicalConnectionId1\"] = ids.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Connections[0]?.Id),\n        [\"expressConnectPhysicalConnectionId2\"] = nameRegex.Apply(getPhysicalConnectionsResult =\u003e getPhysicalConnectionsResult.Connections[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"pc-2345678\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"expressConnectPhysicalConnectionId1\", ids.Connections[0].Id)\n\t\tnameRegex, err := expressconnect.GetPhysicalConnections(ctx, \u0026expressconnect.GetPhysicalConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-PhysicalConnection\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"expressConnectPhysicalConnectionId2\", nameRegex.Connections[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetPhysicalConnectionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .ids(\"pc-2345678\")\n            .build());\n\n        ctx.export(\"expressConnectPhysicalConnectionId1\", ids.connections()[0].id());\n        final var nameRegex = ExpressconnectFunctions.getPhysicalConnections(GetPhysicalConnectionsArgs.builder()\n            .nameRegex(\"^my-PhysicalConnection\")\n            .build());\n\n        ctx.export(\"expressConnectPhysicalConnectionId2\", nameRegex.connections()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        ids:\n          - pc-2345678\n  nameRegex:\n    fn::invoke:\n      function: alicloud:expressconnect:getPhysicalConnections\n      arguments:\n        nameRegex: ^my-PhysicalConnection\noutputs:\n  expressConnectPhysicalConnectionId1: ${ids.connections[0].id}\n  expressConnectPhysicalConnectionId2: ${nameRegex.connections[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPhysicalConnections.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Physical Connection IDs.\n"},"includeReservationData":{"type":"boolean","description":"The include reservation data.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Physical Connection name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"Resources on Behalf of a State of the Resource Attribute Field. Valid values: `Canceled`, `Enabled`, `Terminated`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPhysicalConnections.\n","properties":{"connections":{"items":{"$ref":"#/types/alicloud:expressconnect/getPhysicalConnectionsConnection:getPhysicalConnectionsConnection"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"includeReservationData":{"type":"boolean"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["connections","ids","names","id"],"type":"object"}},"alicloud:expressconnect/getRouterInterfaces:getRouterInterfaces":{"description":"This data source provides Router Interface available to the user.[What is Router Interface](https://www.alibabacloud.com/help/en/express-connect/developer-reference/api-vpc-2016-04-28-describerouterinterfaces-efficiency-channels)\n\n\u003e **NOTE:** Available in 1.199.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.expressconnect.getRouterInterfaces({\n    ids: [defaultAlicloudRouterInterface.id],\n    nameRegex: defaultAlicloudRouterInterface.name,\n});\nexport const alicloudRouterInterfaceExampleId = _default.then(_default =\u003e _default.interfaces?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.expressconnect.get_router_interfaces(ids=[default_alicloud_router_interface[\"id\"]],\n    name_regex=default_alicloud_router_interface[\"name\"])\npulumi.export(\"alicloudRouterInterfaceExampleId\", default.interfaces[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ExpressConnect.GetRouterInterfaces.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudRouterInterface.Id,\n        },\n        NameRegex = defaultAlicloudRouterInterface.Name,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudRouterInterfaceExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getRouterInterfacesResult =\u003e getRouterInterfacesResult.Interfaces[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := expressconnect.GetRouterInterfaces(ctx, \u0026expressconnect.GetRouterInterfacesArgs{\nIds: interface{}{\ndefaultAlicloudRouterInterface.Id,\n},\nNameRegex: pulumi.StringRef(defaultAlicloudRouterInterface.Name),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudRouterInterfaceExampleId\", _default.Interfaces[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetRouterInterfacesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ExpressconnectFunctions.getRouterInterfaces(GetRouterInterfacesArgs.builder()\n            .ids(defaultAlicloudRouterInterface.id())\n            .nameRegex(defaultAlicloudRouterInterface.name())\n            .build());\n\n        ctx.export(\"alicloudRouterInterfaceExampleId\", default_.interfaces()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:expressconnect:getRouterInterfaces\n      arguments:\n        ids:\n          - ${defaultAlicloudRouterInterface.id}\n        nameRegex: ${defaultAlicloudRouterInterface.name}\noutputs:\n  alicloudRouterInterfaceExampleId: ${default.interfaces[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRouterInterfaces.\n","properties":{"filters":{"type":"array","items":{"$ref":"#/types/alicloud:expressconnect/getRouterInterfacesFilter:getRouterInterfacesFilter"}},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Router Interface IDs.\n"},"includeReservationData":{"type":"string","description":"Does it contain renewal data. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRouterInterfaces.\n","properties":{"filters":{"items":{"$ref":"#/types/alicloud:expressconnect/getRouterInterfacesFilter:getRouterInterfacesFilter"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Router Interface IDs.\n","items":{"type":"string"},"type":"array"},"includeReservationData":{"type":"string"},"interfaces":{"description":"A list of Router Interface Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:expressconnect/getRouterInterfacesInterface:getRouterInterfacesInterface"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Router Interfaces.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["ids","interfaces","names","id"],"type":"object"}},"alicloud:expressconnect/getVbrPconnAssociations:getVbrPconnAssociations":{"description":"This data source provides Express Connect Vbr Pconn Association available to the user.\n\n\u003e **NOTE:** Available in 1.196.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.expressconnect.getVbrPconnAssociations({\n    ids: [\"example_id\"],\n    vbrId: defaultAlicloudExpressConnectVbrPconnAssociation.vbrId,\n});\nexport const alicloudExpressConnectVbrPconnAssociationExampleId = _default.then(_default =\u003e _default.associations?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.expressconnect.get_vbr_pconn_associations(ids=[\"example_id\"],\n    vbr_id=default_alicloud_express_connect_vbr_pconn_association[\"vbrId\"])\npulumi.export(\"alicloudExpressConnectVbrPconnAssociationExampleId\", default.associations[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ExpressConnect.GetVbrPconnAssociations.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        VbrId = defaultAlicloudExpressConnectVbrPconnAssociation.VbrId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudExpressConnectVbrPconnAssociationExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getVbrPconnAssociationsResult =\u003e getVbrPconnAssociationsResult.Associations[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := expressconnect.GetVbrPconnAssociations(ctx, \u0026expressconnect.GetVbrPconnAssociationsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tVbrId: pulumi.StringRef(defaultAlicloudExpressConnectVbrPconnAssociation.VbrId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudExpressConnectVbrPconnAssociationExampleId\", _default.Associations[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetVbrPconnAssociationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ExpressconnectFunctions.getVbrPconnAssociations(GetVbrPconnAssociationsArgs.builder()\n            .ids(\"example_id\")\n            .vbrId(defaultAlicloudExpressConnectVbrPconnAssociation.vbrId())\n            .build());\n\n        ctx.export(\"alicloudExpressConnectVbrPconnAssociationExampleId\", default_.associations()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:expressconnect:getVbrPconnAssociations\n      arguments:\n        ids:\n          - example_id\n        vbrId: ${defaultAlicloudExpressConnectVbrPconnAssociation.vbrId}\noutputs:\n  alicloudExpressConnectVbrPconnAssociationExampleId: ${default.associations[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVbrPconnAssociations.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Vbr Pconn Association IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"vbrId":{"type":"string","description":"The ID of the VBR instance.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVbrPconnAssociations.\n","properties":{"associations":{"description":"A list of Vbr Pconn Association Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:expressconnect/getVbrPconnAssociationsAssociation:getVbrPconnAssociationsAssociation"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"vbrId":{"description":"The ID of the VBR instance.\n","type":"string"}},"required":["associations","ids","id"],"type":"object"}},"alicloud:expressconnect/getVirtualBorderRouters:getVirtualBorderRouters":{"description":"This data source provides the Express Connect Virtual Border Routers of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.134.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.expressconnect.getVirtualBorderRouters({});\nexport const expressConnectVirtualBorderRouterId1 = ids.then(ids =\u003e ids.routers?.[0]?.id);\nconst nameRegex = alicloud.expressconnect.getVirtualBorderRouters({\n    nameRegex: \"^my-VirtualBorderRouter\",\n});\nexport const expressConnectVirtualBorderRouterId2 = nameRegex.then(nameRegex =\u003e nameRegex.routers?.[0]?.id);\nconst filter = alicloud.expressconnect.getVirtualBorderRouters({\n    filters: [\n        {\n            key: \"PhysicalConnectionId\",\n            values: [\"pc-xxxx1\"],\n        },\n        {\n            key: \"VbrId\",\n            values: [\n                \"vbr-xxxx1\",\n                \"vbr-xxxx2\",\n            ],\n        },\n    ],\n});\nexport const expressConnectVirtualBorderRouterId3 = filter.then(filter =\u003e filter.routers?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.expressconnect.get_virtual_border_routers()\npulumi.export(\"expressConnectVirtualBorderRouterId1\", ids.routers[0].id)\nname_regex = alicloud.expressconnect.get_virtual_border_routers(name_regex=\"^my-VirtualBorderRouter\")\npulumi.export(\"expressConnectVirtualBorderRouterId2\", name_regex.routers[0].id)\nfilter = alicloud.expressconnect.get_virtual_border_routers(filters=[\n    {\n        \"key\": \"PhysicalConnectionId\",\n        \"values\": [\"pc-xxxx1\"],\n    },\n    {\n        \"key\": \"VbrId\",\n        \"values\": [\n            \"vbr-xxxx1\",\n            \"vbr-xxxx2\",\n        ],\n    },\n])\npulumi.export(\"expressConnectVirtualBorderRouterId3\", filter.routers[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.ExpressConnect.GetVirtualBorderRouters.Invoke();\n\n    var nameRegex = AliCloud.ExpressConnect.GetVirtualBorderRouters.Invoke(new()\n    {\n        NameRegex = \"^my-VirtualBorderRouter\",\n    });\n\n    var filter = AliCloud.ExpressConnect.GetVirtualBorderRouters.Invoke(new()\n    {\n        Filters = new[]\n        {\n            new AliCloud.ExpressConnect.Inputs.GetVirtualBorderRoutersFilterInputArgs\n            {\n                Key = \"PhysicalConnectionId\",\n                Values = new[]\n                {\n                    \"pc-xxxx1\",\n                },\n            },\n            new AliCloud.ExpressConnect.Inputs.GetVirtualBorderRoutersFilterInputArgs\n            {\n                Key = \"VbrId\",\n                Values = new[]\n                {\n                    \"vbr-xxxx1\",\n                    \"vbr-xxxx2\",\n                },\n            },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"expressConnectVirtualBorderRouterId1\"] = ids.Apply(getVirtualBorderRoutersResult =\u003e getVirtualBorderRoutersResult.Routers[0]?.Id),\n        [\"expressConnectVirtualBorderRouterId2\"] = nameRegex.Apply(getVirtualBorderRoutersResult =\u003e getVirtualBorderRoutersResult.Routers[0]?.Id),\n        [\"expressConnectVirtualBorderRouterId3\"] = filter.Apply(getVirtualBorderRoutersResult =\u003e getVirtualBorderRoutersResult.Routers[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/expressconnect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := expressconnect.GetVirtualBorderRouters(ctx, \u0026expressconnect.GetVirtualBorderRoutersArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"expressConnectVirtualBorderRouterId1\", ids.Routers[0].Id)\n\t\tnameRegex, err := expressconnect.GetVirtualBorderRouters(ctx, \u0026expressconnect.GetVirtualBorderRoutersArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-VirtualBorderRouter\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"expressConnectVirtualBorderRouterId2\", nameRegex.Routers[0].Id)\n\t\tfilter, err := expressconnect.GetVirtualBorderRouters(ctx, \u0026expressconnect.GetVirtualBorderRoutersArgs{\n\t\t\tFilters: []expressconnect.GetVirtualBorderRoutersFilter{\n\t\t\t\t{\n\t\t\t\t\tKey: pulumi.StringRef(\"PhysicalConnectionId\"),\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"pc-xxxx1\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tKey: pulumi.StringRef(\"VbrId\"),\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"vbr-xxxx1\",\n\t\t\t\t\t\t\"vbr-xxxx2\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"expressConnectVirtualBorderRouterId3\", filter.Routers[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.expressconnect.ExpressconnectFunctions;\nimport com.pulumi.alicloud.expressconnect.inputs.GetVirtualBorderRoutersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ExpressconnectFunctions.getVirtualBorderRouters(GetVirtualBorderRoutersArgs.builder()\n            .build());\n\n        ctx.export(\"expressConnectVirtualBorderRouterId1\", ids.routers()[0].id());\n        final var nameRegex = ExpressconnectFunctions.getVirtualBorderRouters(GetVirtualBorderRoutersArgs.builder()\n            .nameRegex(\"^my-VirtualBorderRouter\")\n            .build());\n\n        ctx.export(\"expressConnectVirtualBorderRouterId2\", nameRegex.routers()[0].id());\n        final var filter = ExpressconnectFunctions.getVirtualBorderRouters(GetVirtualBorderRoutersArgs.builder()\n            .filters(            \n                GetVirtualBorderRoutersFilterArgs.builder()\n                    .key(\"PhysicalConnectionId\")\n                    .values(\"pc-xxxx1\")\n                    .build(),\n                GetVirtualBorderRoutersFilterArgs.builder()\n                    .key(\"VbrId\")\n                    .values(                    \n                        \"vbr-xxxx1\",\n                        \"vbr-xxxx2\")\n                    .build())\n            .build());\n\n        ctx.export(\"expressConnectVirtualBorderRouterId3\", filter.routers()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:expressconnect:getVirtualBorderRouters\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:expressconnect:getVirtualBorderRouters\n      arguments:\n        nameRegex: ^my-VirtualBorderRouter\n  filter:\n    fn::invoke:\n      function: alicloud:expressconnect:getVirtualBorderRouters\n      arguments:\n        filters:\n          - key: PhysicalConnectionId\n            values:\n              - pc-xxxx1\n          - key: VbrId\n            values:\n              - vbr-xxxx1\n              - vbr-xxxx2\noutputs:\n  expressConnectVirtualBorderRouterId1: ${ids.routers[0].id}\n  expressConnectVirtualBorderRouterId2: ${nameRegex.routers[0].id}\n  expressConnectVirtualBorderRouterId3: ${filter.routers[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVirtualBorderRouters.\n","properties":{"filters":{"type":"array","items":{"$ref":"#/types/alicloud:expressconnect/getVirtualBorderRoutersFilter:getVirtualBorderRoutersFilter"},"description":"Custom filter block as described below.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Virtual Border Router IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Virtual Border Router name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The instance state with. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`recovering`\" pulumi-lang-dotnet=\"`Recovering`\" pulumi-lang-go=\"`recovering`\" pulumi-lang-python=\"`recovering`\" pulumi-lang-yaml=\"`recovering`\" pulumi-lang-java=\"`recovering`\"\u003e`recovering`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`terminated`\" pulumi-lang-dotnet=\"`Terminated`\" pulumi-lang-go=\"`terminated`\" pulumi-lang-python=\"`terminated`\" pulumi-lang-yaml=\"`terminated`\" pulumi-lang-java=\"`terminated`\"\u003e`terminated`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`terminating`\" pulumi-lang-dotnet=\"`Terminating`\" pulumi-lang-go=\"`terminating`\" pulumi-lang-python=\"`terminating`\" pulumi-lang-yaml=\"`terminating`\" pulumi-lang-java=\"`terminating`\"\u003e`terminating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unconfirmed`\" pulumi-lang-dotnet=\"`Unconfirmed`\" pulumi-lang-go=\"`unconfirmed`\" pulumi-lang-python=\"`unconfirmed`\" pulumi-lang-yaml=\"`unconfirmed`\" pulumi-lang-java=\"`unconfirmed`\"\u003e`unconfirmed`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVirtualBorderRouters.\n","properties":{"filters":{"items":{"$ref":"#/types/alicloud:expressconnect/getVirtualBorderRoutersFilter:getVirtualBorderRoutersFilter"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"routers":{"items":{"$ref":"#/types/alicloud:expressconnect/getVirtualBorderRoutersRouter:getVirtualBorderRoutersRouter"},"type":"array"},"status":{"type":"string"}},"required":["ids","names","routers","id"],"type":"object"}},"alicloud:expressconnect/getVirtualPhysicalConnections:getVirtualPhysicalConnections":{"description":"This data source provides Express Connect Virtual Physical Connection available to the user.\n\n\u003e **NOTE:** Available in 1.196.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:expressconnect:getVirtualPhysicalConnections\n      arguments:\n        ids:\n          - ${defaultAlicloudExpressConnectVirtualPhysicalConnection.id}\n        nameRegex: ${defaultAlicloudExpressConnectVirtualPhysicalConnection.name}\n        parentPhysicalConnectionId: ${defaultAlicloudExpressConnectVirtualPhysicalConnection.parentPhysicalConnectionId}\n        vlanId: 789\n        vpconnAliUid: 1.23456789e+09\noutputs:\n  alicloudExpressConnectVirtualPhysicalConnectionExampleId: ${default.connections[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVirtualPhysicalConnections.\n","properties":{"businessStatus":{"type":"string","description":"The commercial status of the physical line. Value:\n- **Normal**: activated.\n- **Financialized**: Arrears locked.\n- **SecurityLocked**: locked for security reasons.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Virtual Physical Connection IDs.\n"},"isConfirmed":{"type":"boolean"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"parentPhysicalConnectionId":{"type":"string","description":"The ID of the instance of the physical connection.\n"},"virtualPhysicalConnectionIds":{"type":"array","items":{"type":"string"},"description":"The ID of the hosted connection. You can specify multiple hosted connection IDs.\n"},"virtualPhysicalConnectionStatus":{"type":"string","description":"The business status of the shared line. Value:\n- **Confirmed**: The shared line has been Confirmed to receive.\n- **UnConfirmed**: The shared line has not been confirmed to be received.\n- **Deleted**: The shared line has been Deleted.\n"},"vlanIds":{"type":"array","items":{"type":"integer"},"description":"The VLAN ID of the hosted connection. You can specify multiple VLAN IDs.\n"},"vpconnAliUid":{"type":"string","description":"The ID of the Alibaba Cloud account (primary account) of the owner of the shared line.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVirtualPhysicalConnections.\n","properties":{"businessStatus":{"description":"The commercial status of the physical line. Value:-**Normal**: activated.-**Financialized**: Arrears locked.-**SecurityLocked**: locked for security reasons.\n","type":"string"},"connections":{"description":"A list of Virtual Physical Connection Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:expressconnect/getVirtualPhysicalConnectionsConnection:getVirtualPhysicalConnectionsConnection"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Virtual Physical Connection IDs.\n","items":{"type":"string"},"type":"array"},"isConfirmed":{"type":"boolean"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Virtual Physical Connections.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"parentPhysicalConnectionId":{"description":"The ID of the instance of the physical connection.\n","type":"string"},"virtualPhysicalConnectionIds":{"items":{"type":"string"},"type":"array"},"virtualPhysicalConnectionStatus":{"description":"The business status of the shared line. Value:-**Confirmed**: The shared line has been Confirmed to receive.-**UnConfirmed**: The shared line has not been confirmed to be received.-**Deleted**: The shared line has been Deleted.\n","type":"string"},"vlanIds":{"items":{"type":"integer"},"type":"array"},"vpconnAliUid":{"description":"The ID of the Alibaba Cloud account (primary account) of the owner of the shared line.\n","type":"string"}},"required":["connections","ids","names","id"],"type":"object"}},"alicloud:fc/getCustomDomains:getCustomDomains":{"description":"This data source provides the Function Compute custom domains of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in 1.98.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst fcDomains = alicloud.fc.getCustomDomains({\n    nameRegex: \"sample_fc_custom_domain\",\n});\nexport const firstFcCustomDomainName = fcDomainsDs.domains[0].domainName;\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfc_domains = alicloud.fc.get_custom_domains(name_regex=\"sample_fc_custom_domain\")\npulumi.export(\"firstFcCustomDomainName\", fc_domains_ds[\"domains\"][0][\"domainName\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var fcDomains = AliCloud.FC.GetCustomDomains.Invoke(new()\n    {\n        NameRegex = \"sample_fc_custom_domain\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstFcCustomDomainName\"] = fcDomainsDs.Domains[0].DomainName,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fc.GetCustomDomains(ctx, \u0026fc.GetCustomDomainsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"sample_fc_custom_domain\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstFcCustomDomainName\", fcDomainsDs.Domains[0].DomainName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fc.FcFunctions;\nimport com.pulumi.alicloud.fc.inputs.GetCustomDomainsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var fcDomains = FcFunctions.getCustomDomains(GetCustomDomainsArgs.builder()\n            .nameRegex(\"sample_fc_custom_domain\")\n            .build());\n\n        ctx.export(\"firstFcCustomDomainName\", fcDomainsDs.domains()[0].domainName());\n    }\n}\n```\n```yaml\nvariables:\n  fcDomains:\n    fn::invoke:\n      function: alicloud:fc:getCustomDomains\n      arguments:\n        nameRegex: sample_fc_custom_domain\noutputs:\n  firstFcCustomDomainName: ${fcDomainsDs.domains[0].domainName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCustomDomains.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of functions ids.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Function Compute custom domain name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCustomDomains.\n","properties":{"domains":{"description":"A list of custom domains, including the following attributes:\n","items":{"$ref":"#/types/alicloud:fc/getCustomDomainsDomain:getCustomDomainsDomain"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of custom domain ids.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of custom domain names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["domains","ids","names","id"],"type":"object"}},"alicloud:fc/getFunctions:getFunctions":{"description":"This data source provides the Function Compute functions of the current Alibaba Cloud user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst functionsDs = alicloud.fc.getFunctions({\n    serviceName: \"sample_service\",\n    nameRegex: \"sample_fc_function\",\n});\nexport const firstFcFunctionName = functionsDs.then(functionsDs =\u003e functionsDs.functions?.[0]?.name);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfunctions_ds = alicloud.fc.get_functions(service_name=\"sample_service\",\n    name_regex=\"sample_fc_function\")\npulumi.export(\"firstFcFunctionName\", functions_ds.functions[0].name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var functionsDs = AliCloud.FC.GetFunctions.Invoke(new()\n    {\n        ServiceName = \"sample_service\",\n        NameRegex = \"sample_fc_function\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstFcFunctionName\"] = functionsDs.Apply(getFunctionsResult =\u003e getFunctionsResult.Functions[0]?.Name),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfunctionsDs, err := fc.GetFunctions(ctx, \u0026fc.GetFunctionsArgs{\n\t\t\tServiceName: \"sample_service\",\n\t\t\tNameRegex:   pulumi.StringRef(\"sample_fc_function\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstFcFunctionName\", functionsDs.Functions[0].Name)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fc.FcFunctions;\nimport com.pulumi.alicloud.fc.inputs.GetFunctionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var functionsDs = FcFunctions.getFunctions(GetFunctionsArgs.builder()\n            .serviceName(\"sample_service\")\n            .nameRegex(\"sample_fc_function\")\n            .build());\n\n        ctx.export(\"firstFcFunctionName\", functionsDs.functions()[0].name());\n    }\n}\n```\n```yaml\nvariables:\n  functionsDs:\n    fn::invoke:\n      function: alicloud:fc:getFunctions\n      arguments:\n        serviceName: sample_service\n        nameRegex: sample_fc_function\noutputs:\n  firstFcFunctionName: ${functionsDs.functions[0].name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFunctions.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of functions ids.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by function name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"serviceName":{"type":"string","description":"Name of the service that contains the functions to find.\n"}},"type":"object","required":["serviceName"]},"outputs":{"description":"A collection of values returned by getFunctions.\n","properties":{"functions":{"description":"A list of functions. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:fc/getFunctionsFunction:getFunctionsFunction"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of functions ids.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of functions names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"serviceName":{"type":"string"}},"required":["functions","ids","names","serviceName","id"],"type":"object"}},"alicloud:fc/getService:getService":{"description":"Using this data source can open FC service automatically. If the service has been opened, it will return opened.\n\nFor information about FC and how to use it, see [What is FC](https://www.alibabacloud.com/help/en/functioncompute/fc/product-overview/what-is-function-compute).\n\n\u003e **NOTE:** Available since v1.112.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.fc.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.fc.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.FC.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fc.LookupService(ctx, \u0026fc.LookupServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fc.FcFunctions;\nimport com.pulumi.alicloud.fc.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = FcFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:fc:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the FC service that means you have read and agreed the [FC Terms of Service](https://help.aliyun.com/document_detail/52972.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:fc/getServices:getServices":{"description":"This data source provides the Function Compute services of the current Alibaba Cloud user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst fcServicesDs = alicloud.fc.getServices({\n    nameRegex: \"sample_fc_service\",\n});\nexport const firstFcServiceName = fcServicesDs.then(fcServicesDs =\u003e fcServicesDs.services?.[0]?.name);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfc_services_ds = alicloud.fc.get_services(name_regex=\"sample_fc_service\")\npulumi.export(\"firstFcServiceName\", fc_services_ds.services[0].name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var fcServicesDs = AliCloud.FC.GetServices.Invoke(new()\n    {\n        NameRegex = \"sample_fc_service\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstFcServiceName\"] = fcServicesDs.Apply(getServicesResult =\u003e getServicesResult.Services[0]?.Name),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfcServicesDs, err := fc.GetServices(ctx, \u0026fc.GetServicesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"sample_fc_service\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstFcServiceName\", fcServicesDs.Services[0].Name)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fc.FcFunctions;\nimport com.pulumi.alicloud.fc.inputs.GetServicesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var fcServicesDs = FcFunctions.getServices(GetServicesArgs.builder()\n            .nameRegex(\"sample_fc_service\")\n            .build());\n\n        ctx.export(\"firstFcServiceName\", fcServicesDs.services()[0].name());\n    }\n}\n```\n```yaml\nvariables:\n  fcServicesDs:\n    fn::invoke:\n      function: alicloud:fc:getServices\n      arguments:\n        nameRegex: sample_fc_service\noutputs:\n  firstFcServiceName: ${fcServicesDs.services[0].name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServices.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of FC services ids.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by FC service name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServices.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of FC services ids.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of FC services names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"services":{"description":"A list of FC services. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:fc/getServicesService:getServicesService"},"type":"array"}},"required":["ids","names","services","id"],"type":"object"}},"alicloud:fc/getTriggers:getTriggers":{"description":"This data source provides the Function Compute triggers of the current Alibaba Cloud user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst fcTriggersDs = alicloud.fc.getTriggers({\n    serviceName: \"sample_service\",\n    functionName: \"sample_function\",\n    nameRegex: \"sample_fc_trigger\",\n});\nexport const firstFcTriggerName = fcTriggersDs.then(fcTriggersDs =\u003e fcTriggersDs.triggers?.[0]?.name);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfc_triggers_ds = alicloud.fc.get_triggers(service_name=\"sample_service\",\n    function_name=\"sample_function\",\n    name_regex=\"sample_fc_trigger\")\npulumi.export(\"firstFcTriggerName\", fc_triggers_ds.triggers[0].name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var fcTriggersDs = AliCloud.FC.GetTriggers.Invoke(new()\n    {\n        ServiceName = \"sample_service\",\n        FunctionName = \"sample_function\",\n        NameRegex = \"sample_fc_trigger\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstFcTriggerName\"] = fcTriggersDs.Apply(getTriggersResult =\u003e getTriggersResult.Triggers[0]?.Name),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfcTriggersDs, err := fc.GetTriggers(ctx, \u0026fc.GetTriggersArgs{\n\t\t\tServiceName:  \"sample_service\",\n\t\t\tFunctionName: \"sample_function\",\n\t\t\tNameRegex:    pulumi.StringRef(\"sample_fc_trigger\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstFcTriggerName\", fcTriggersDs.Triggers[0].Name)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fc.FcFunctions;\nimport com.pulumi.alicloud.fc.inputs.GetTriggersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var fcTriggersDs = FcFunctions.getTriggers(GetTriggersArgs.builder()\n            .serviceName(\"sample_service\")\n            .functionName(\"sample_function\")\n            .nameRegex(\"sample_fc_trigger\")\n            .build());\n\n        ctx.export(\"firstFcTriggerName\", fcTriggersDs.triggers()[0].name());\n    }\n}\n```\n```yaml\nvariables:\n  fcTriggersDs:\n    fn::invoke:\n      function: alicloud:fc:getTriggers\n      arguments:\n        serviceName: sample_service\n        functionName: sample_function\n        nameRegex: sample_fc_trigger\noutputs:\n  firstFcTriggerName: ${fcTriggersDs.triggers[0].name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTriggers.\n","properties":{"functionName":{"type":"string","description":"FC function name.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of FC triggers ids.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by FC trigger name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"serviceName":{"type":"string","description":"FC service name.\n"}},"type":"object","required":["functionName","serviceName"]},"outputs":{"description":"A collection of values returned by getTriggers.\n","properties":{"functionName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of FC triggers ids.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of FC triggers names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"serviceName":{"type":"string"},"triggers":{"description":"A list of FC triggers. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:fc/getTriggersTrigger:getTriggersTrigger"},"type":"array"}},"required":["functionName","ids","names","serviceName","triggers","id"],"type":"object"}},"alicloud:fc/getV3Functions:getV3Functions":{"description":"This data source provides Fcv3 Function available to the user.[What is Function](https://next.api.alibabacloud.com/document/FC/2023-03-30/CreateFunction)\n\n\u003e **NOTE:** Available since v1.264.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.fc.getV3Functions({\n    prefix: \"terraform-example-for-function-alias\",\n});\nexport const alicloudFcv3FunctionExampleId = _default.then(_default =\u003e _default.functions?.[0]?.functionName);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.fc.get_v3_functions(prefix=\"terraform-example-for-function-alias\")\npulumi.export(\"alicloudFcv3FunctionExampleId\", default.functions[0].function_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.FC.GetV3Functions.Invoke(new()\n    {\n        Prefix = \"terraform-example-for-function-alias\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudFcv3FunctionExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getV3FunctionsResult =\u003e getV3FunctionsResult.Functions[0]?.FunctionName)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := fc.GetV3Functions(ctx, \u0026fc.GetV3FunctionsArgs{\n\t\t\tPrefix: pulumi.StringRef(\"terraform-example-for-function-alias\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudFcv3FunctionExampleId\", _default.Functions[0].FunctionName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fc.FcFunctions;\nimport com.pulumi.alicloud.fc.inputs.GetV3FunctionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = FcFunctions.getV3Functions(GetV3FunctionsArgs.builder()\n            .prefix(\"terraform-example-for-function-alias\")\n            .build());\n\n        ctx.export(\"alicloudFcv3FunctionExampleId\", default_.functions()[0].functionName());\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:fc:getV3Functions\n      arguments:\n        prefix: terraform-example-for-function-alias\noutputs:\n  alicloudFcv3FunctionExampleId: ${default.functions[0].functionName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getV3Functions.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Function IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by function name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"prefix":{"type":"string","description":"A prefix string to filter results by function name.\n"},"resourceGroupId":{"type":"string","description":"Resource Group ID\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getV3Functions.\n","properties":{"functions":{"description":"A list of Function Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:fc/getV3FunctionsFunction:getV3FunctionsFunction"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Function IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Functions.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"prefix":{"type":"string"},"resourceGroupId":{"description":"Resource Group ID\n","type":"string"}},"required":["functions","ids","names","id"],"type":"object"}},"alicloud:fc/getV3Triggers:getV3Triggers":{"description":"This data source provides Fcv3 Trigger available to the user.[What is Trigger](https://next.api.alibabacloud.com/document/FC/2023-03-30/CreateTrigger)\n\n\u003e **NOTE:** Available since v1.250.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-exampleTriggerResourceAPI\";\nconst functionName = config.get(\"functionName\") || \"terraform-exampleTriggerResourceAPI\";\nconst triggerName = config.get(\"triggerName\") || \"exampleTrigger_HTTP\";\nconst _function = new alicloud.fc.V3Function(\"function\", {\n    memorySize: 512,\n    cpu: 0.5,\n    handler: \"index.Handler\",\n    code: {\n        zipFile: \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    functionName: name,\n    runtime: \"python3.9\",\n    diskSize: 512,\n    logConfig: {\n        logBeginRule: \"None\",\n    },\n});\nconst defaultV3Trigger = new alicloud.fc.V3Trigger(\"default\", {\n    functionName: _function.functionName,\n    triggerType: \"http\",\n    triggerName: \"tf-exampleacceu-central-1fcv3trigger28547\",\n    description: \"create\",\n    qualifier: \"LATEST\",\n    triggerConfig: JSON.stringify({\n        authType: \"anonymous\",\n        methods: [\n            \"GET\",\n            \"POST\",\n        ],\n    }),\n});\nconst _default = alicloud.fc.getV3TriggersOutput({\n    ids: [defaultV3Trigger.id],\n    nameRegex: defaultV3Trigger.triggerName,\n    functionName: functionName,\n});\nexport const alicloudFcv3TriggerExampleId = _default.apply(_default =\u003e _default.triggers?.[0]?.id);\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-exampleTriggerResourceAPI\"\nfunction_name = config.get(\"functionName\")\nif function_name is None:\n    function_name = \"terraform-exampleTriggerResourceAPI\"\ntrigger_name = config.get(\"triggerName\")\nif trigger_name is None:\n    trigger_name = \"exampleTrigger_HTTP\"\nfunction = alicloud.fc.V3Function(\"function\",\n    memory_size=512,\n    cpu=0.5,\n    handler=\"index.Handler\",\n    code={\n        \"zip_file\": \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n    },\n    function_name=name,\n    runtime=\"python3.9\",\n    disk_size=512,\n    log_config={\n        \"log_begin_rule\": \"None\",\n    })\ndefault_v3_trigger = alicloud.fc.V3Trigger(\"default\",\n    function_name=function.function_name,\n    trigger_type=\"http\",\n    trigger_name=\"tf-exampleacceu-central-1fcv3trigger28547\",\n    description=\"create\",\n    qualifier=\"LATEST\",\n    trigger_config=json.dumps({\n        \"authType\": \"anonymous\",\n        \"methods\": [\n            \"GET\",\n            \"POST\",\n        ],\n    }))\ndefault = alicloud.fc.get_v3_triggers_output(ids=[default_v3_trigger.id],\n    name_regex=default_v3_trigger.trigger_name,\n    function_name=function_name)\npulumi.export(\"alicloudFcv3TriggerExampleId\", default.triggers[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-exampleTriggerResourceAPI\";\n    var functionName = config.Get(\"functionName\") ?? \"terraform-exampleTriggerResourceAPI\";\n    var triggerName = config.Get(\"triggerName\") ?? \"exampleTrigger_HTTP\";\n    var function = new AliCloud.FC.V3Function(\"function\", new()\n    {\n        MemorySize = 512,\n        Cpu = 0.5,\n        Handler = \"index.Handler\",\n        Code = new AliCloud.FC.Inputs.V3FunctionCodeArgs\n        {\n            ZipFile = \"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\",\n        },\n        FunctionName = name,\n        Runtime = \"python3.9\",\n        DiskSize = 512,\n        LogConfig = new AliCloud.FC.Inputs.V3FunctionLogConfigArgs\n        {\n            LogBeginRule = \"None\",\n        },\n    });\n\n    var defaultV3Trigger = new AliCloud.FC.V3Trigger(\"default\", new()\n    {\n        FunctionName = function.FunctionName,\n        TriggerType = \"http\",\n        TriggerName = \"tf-exampleacceu-central-1fcv3trigger28547\",\n        Description = \"create\",\n        Qualifier = \"LATEST\",\n        TriggerConfig = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"authType\"] = \"anonymous\",\n            [\"methods\"] = new[]\n            {\n                \"GET\",\n                \"POST\",\n            },\n        }),\n    });\n\n    var @default = AliCloud.FC.GetV3Triggers.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultV3Trigger.Id,\n        },\n        NameRegex = defaultV3Trigger.TriggerName,\n        FunctionName = functionName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudFcv3TriggerExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getV3TriggersResult =\u003e getV3TriggersResult.Triggers[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-exampleTriggerResourceAPI\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nfunctionName := \"terraform-exampleTriggerResourceAPI\";\nif param := cfg.Get(\"functionName\"); param != \"\"{\nfunctionName = param\n}\ntriggerName := \"exampleTrigger_HTTP\";\nif param := cfg.Get(\"triggerName\"); param != \"\"{\ntriggerName = param\n}\nfunction, err := fc.NewV3Function(ctx, \"function\", \u0026fc.V3FunctionArgs{\nMemorySize: pulumi.Int(512),\nCpu: pulumi.Float64(0.5),\nHandler: pulumi.String(\"index.Handler\"),\nCode: \u0026fc.V3FunctionCodeArgs{\nZipFile: pulumi.String(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\"),\n},\nFunctionName: pulumi.String(name),\nRuntime: pulumi.String(\"python3.9\"),\nDiskSize: pulumi.Int(512),\nLogConfig: \u0026fc.V3FunctionLogConfigArgs{\nLogBeginRule: pulumi.String(\"None\"),\n},\n})\nif err != nil {\nreturn err\n}\ntmpJSON0, err := json.Marshal(map[string]interface{}{\n\"authType\": \"anonymous\",\n\"methods\": []string{\n\"GET\",\n\"POST\",\n},\n})\nif err != nil {\nreturn err\n}\njson0 := string(tmpJSON0)\ndefaultV3Trigger, err := fc.NewV3Trigger(ctx, \"default\", \u0026fc.V3TriggerArgs{\nFunctionName: function.FunctionName,\nTriggerType: pulumi.String(\"http\"),\nTriggerName: pulumi.String(\"tf-exampleacceu-central-1fcv3trigger28547\"),\nDescription: pulumi.String(\"create\"),\nQualifier: pulumi.String(\"LATEST\"),\nTriggerConfig: pulumi.String(json0),\n})\nif err != nil {\nreturn err\n}\n_default := fc.GetV3TriggersOutput(ctx, fc.GetV3TriggersOutputArgs{\nIds: pulumi.StringArray{\ndefaultV3Trigger.ID(),\n},\nNameRegex: defaultV3Trigger.TriggerName,\nFunctionName: pulumi.String(functionName),\n}, nil);\nctx.Export(\"alicloudFcv3TriggerExampleId\", _default.ApplyT(func(_default fc.GetV3TriggersResult) (*string, error) {\nreturn \u0026default.Triggers[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fc.V3Function;\nimport com.pulumi.alicloud.fc.V3FunctionArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionCodeArgs;\nimport com.pulumi.alicloud.fc.inputs.V3FunctionLogConfigArgs;\nimport com.pulumi.alicloud.fc.V3Trigger;\nimport com.pulumi.alicloud.fc.V3TriggerArgs;\nimport com.pulumi.alicloud.fc.FcFunctions;\nimport com.pulumi.alicloud.fc.inputs.GetV3TriggersArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-exampleTriggerResourceAPI\");\n        final var functionName = config.get(\"functionName\").orElse(\"terraform-exampleTriggerResourceAPI\");\n        final var triggerName = config.get(\"triggerName\").orElse(\"exampleTrigger_HTTP\");\n        var function = new V3Function(\"function\", V3FunctionArgs.builder()\n            .memorySize(512)\n            .cpu(0.5)\n            .handler(\"index.Handler\")\n            .code(V3FunctionCodeArgs.builder()\n                .zipFile(\"UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\")\n                .build())\n            .functionName(name)\n            .runtime(\"python3.9\")\n            .diskSize(512)\n            .logConfig(V3FunctionLogConfigArgs.builder()\n                .logBeginRule(\"None\")\n                .build())\n            .build());\n\n        var defaultV3Trigger = new V3Trigger(\"defaultV3Trigger\", V3TriggerArgs.builder()\n            .functionName(function.functionName())\n            .triggerType(\"http\")\n            .triggerName(\"tf-exampleacceu-central-1fcv3trigger28547\")\n            .description(\"create\")\n            .qualifier(\"LATEST\")\n            .triggerConfig(serializeJson(\n                jsonObject(\n                    jsonProperty(\"authType\", \"anonymous\"),\n                    jsonProperty(\"methods\", jsonArray(\n                        \"GET\", \n                        \"POST\"\n                    ))\n                )))\n            .build());\n\n        final var default = FcFunctions.getV3Triggers(GetV3TriggersArgs.builder()\n            .ids(defaultV3Trigger.id())\n            .nameRegex(defaultV3Trigger.triggerName())\n            .functionName(functionName)\n            .build());\n\n        ctx.export(\"alicloudFcv3TriggerExampleId\", default_.applyValue(_default_ -\u003e _default_.triggers()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-exampleTriggerResourceAPI\n  functionName:\n    type: string\n    default: terraform-exampleTriggerResourceAPI\n  triggerName:\n    type: string\n    default: exampleTrigger_HTTP\nresources:\n  function:\n    type: alicloud:fc:V3Function\n    properties:\n      memorySize: '512'\n      cpu: 0.5\n      handler: index.Handler\n      code:\n        zipFile: UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=\n      functionName: ${name}\n      runtime: python3.9\n      diskSize: '512'\n      logConfig:\n        logBeginRule: None\n  defaultV3Trigger:\n    type: alicloud:fc:V3Trigger\n    name: default\n    properties:\n      functionName: ${function.functionName}\n      triggerType: http\n      triggerName: tf-exampleacceu-central-1fcv3trigger28547\n      description: create\n      qualifier: LATEST\n      triggerConfig:\n        fn::toJSON:\n          authType: anonymous\n          methods:\n            - GET\n            - POST\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:fc:getV3Triggers\n      arguments:\n        ids:\n          - ${defaultV3Trigger.id}\n        nameRegex: ${defaultV3Trigger.triggerName}\n        functionName: ${functionName}\noutputs:\n  alicloudFcv3TriggerExampleId: ${default.triggers[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getV3Triggers.\n","properties":{"functionName":{"type":"string","description":"Function Name\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Trigger IDs. The value is formulated as `\u003cfunction_name\u003e:\u003ctrigger_name\u003e`.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["functionName"]},"outputs":{"description":"A collection of values returned by getV3Triggers.\n","properties":{"functionName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Trigger IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Triggers.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"triggers":{"description":"A list of Trigger Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:fc/getV3TriggersTrigger:getV3TriggersTrigger"},"type":"array"}},"required":["functionName","ids","names","triggers","id"],"type":"object"}},"alicloud:fc/getZones:getZones":{"description":"This data source provides availability zones for FunctionCompute that can be accessed by an Alibaba Cloud account within the region configured in the provider.\n\n\u003e **NOTE:** Available in v1.74.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst zonesIds = alicloud.fc.getZones({});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nzones_ids = alicloud.fc.get_zones()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var zonesIds = AliCloud.FC.GetZones.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\t_, err := fc.GetZones(ctx, \u0026fc.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fc.FcFunctions;\nimport com.pulumi.alicloud.fc.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var zonesIds = FcFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  zonesIds:\n    fn::invoke:\n      function: alicloud:fc:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of zone IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"zones":{"description":"A list of availability zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:fc/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:fnf/getExecutions:getExecutions":{"description":"This data source provides the FnF Executions of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.149.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.fnf.getExecutions({\n    flowName: \"example_value\",\n    ids: [\n        \"my-Execution-1\",\n        \"my-Execution-2\",\n    ],\n});\nexport const fnfExecutionId1 = idsAlicloudFnFExecutions.executions[0].id;\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.fnf.get_executions(flow_name=\"example_value\",\n    ids=[\n        \"my-Execution-1\",\n        \"my-Execution-2\",\n    ])\npulumi.export(\"fnfExecutionId1\", ids_alicloud_fn_f_executions[\"executions\"][0][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.FNF.GetExecutions.Invoke(new()\n    {\n        FlowName = \"example_value\",\n        Ids = new[]\n        {\n            \"my-Execution-1\",\n            \"my-Execution-2\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"fnfExecutionId1\"] = idsAlicloudFnFExecutions.Executions[0].Id,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fnf\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fnf.GetExecutions(ctx, \u0026fnf.GetExecutionsArgs{\n\t\t\tFlowName: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"my-Execution-1\",\n\t\t\t\t\"my-Execution-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"fnfExecutionId1\", idsAlicloudFnFExecutions.Executions[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fnf.FnfFunctions;\nimport com.pulumi.alicloud.fnf.inputs.GetExecutionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = FnfFunctions.getExecutions(GetExecutionsArgs.builder()\n            .flowName(\"example_value\")\n            .ids(            \n                \"my-Execution-1\",\n                \"my-Execution-2\")\n            .build());\n\n        ctx.export(\"fnfExecutionId1\", idsAlicloudFnFExecutions.executions()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:fnf:getExecutions\n      arguments:\n        flowName: example_value\n        ids:\n          - my-Execution-1\n          - my-Execution-2\noutputs:\n  fnfExecutionId1: ${idsAlicloudFnFExecutions.executions[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getExecutions.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"flowName":{"type":"string","description":"The name of the flow.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Execution IDs. The value formats as `\u003cflow_name\u003e:\u003cexecution_name\u003e`.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Execution name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Running`, `Stopped`, `Succeeded`, `Failed`, `TimedOut`.\n"}},"type":"object","required":["flowName"]},"outputs":{"description":"A collection of values returned by getExecutions.\n","properties":{"enableDetails":{"type":"boolean"},"executions":{"items":{"$ref":"#/types/alicloud:fnf/getExecutionsExecution:getExecutionsExecution"},"type":"array"},"flowName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["executions","flowName","ids","names","id"],"type":"object"}},"alicloud:fnf/getFlows:getFlows":{"description":"This data source provides the Fnf Flows of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.105.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.fnf.getFlows({\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstFnfFlowId = example.then(example =\u003e example.flows?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.fnf.get_flows(ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstFnfFlowId\", example.flows[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.FNF.GetFlows.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstFnfFlowId\"] = example.Apply(getFlowsResult =\u003e getFlowsResult.Flows[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fnf\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := fnf.GetFlows(ctx, \u0026fnf.GetFlowsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstFnfFlowId\", example.Flows[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fnf.FnfFunctions;\nimport com.pulumi.alicloud.fnf.inputs.GetFlowsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = FnfFunctions.getFlows(GetFlowsArgs.builder()\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstFnfFlowId\", example.flows()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:fnf:getFlows\n      arguments:\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstFnfFlowId: ${example.flows[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFlows.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Flow IDs.\n"},"limit":{"type":"integer","description":"The number of resource queries.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Flow name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getFlows.\n","properties":{"flows":{"items":{"$ref":"#/types/alicloud:fnf/getFlowsFlow:getFlowsFlow"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"limit":{"type":"integer"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["flows","ids","names","id"],"type":"object"}},"alicloud:fnf/getSchedules:getSchedules":{"description":"This data source provides the Fnf Schedules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.105.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.fnf.getSchedules({\n    flowName: \"example_value\",\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstFnfScheduleId = example.then(example =\u003e example.schedules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.fnf.get_schedules(flow_name=\"example_value\",\n    ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstFnfScheduleId\", example.schedules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.FNF.GetSchedules.Invoke(new()\n    {\n        FlowName = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstFnfScheduleId\"] = example.Apply(getSchedulesResult =\u003e getSchedulesResult.Schedules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fnf\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := fnf.GetSchedules(ctx, \u0026fnf.GetSchedulesArgs{\n\t\t\tFlowName: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstFnfScheduleId\", example.Schedules[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fnf.FnfFunctions;\nimport com.pulumi.alicloud.fnf.inputs.GetSchedulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = FnfFunctions.getSchedules(GetSchedulesArgs.builder()\n            .flowName(\"example_value\")\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstFnfScheduleId\", example.schedules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:fnf:getSchedules\n      arguments:\n        flowName: example_value\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstFnfScheduleId: ${example.schedules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSchedules.\n","properties":{"flowName":{"type":"string","description":"The name of the flow bound to the time-based schedule you want to create.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Schedule IDs.\n"},"limit":{"type":"integer","description":"The number of resource queries.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Schedule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["flowName"]},"outputs":{"description":"A collection of values returned by getSchedules.\n","properties":{"flowName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"limit":{"type":"integer"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"schedules":{"items":{"$ref":"#/types/alicloud:fnf/getSchedulesSchedule:getSchedulesSchedule"},"type":"array"}},"required":["flowName","ids","names","schedules","id"],"type":"object"}},"alicloud:fnf/getService:getService":{"description":"Using this data source can open Fnf service automatically. If the service has been opened, it will return opened.\n\nFor information about Fnf and how to use it, see [What is Fnf](https://www.alibabacloud.com/help/en/product/113549.htm).\n\n\u003e **NOTE:** Available in v1.114.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.fnf.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.fnf.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.FNF.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fnf\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fnf.GetService(ctx, \u0026fnf.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.fnf.FnfFunctions;\nimport com.pulumi.alicloud.fnf.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = FnfFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:fnf:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: \"On\" or \"Off\". Default to \"Off\".\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the Fnf service that means you have read and agreed the [Fnf Terms of Service](https://help.aliyun.com/document_detail/117831.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:ga/getAcceleratorSpareIpAttachments:getAcceleratorSpareIpAttachments":{"description":"This data source provides the Ga Accelerator Spare Ip Attachments of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.167.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ga.getAcceleratorSpareIpAttachments({\n    acceleratorId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const gaAcceleratorSpareIpAttachmentId1 = ids.then(ids =\u003e ids.attachments?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ga.get_accelerator_spare_ip_attachments(accelerator_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"gaAcceleratorSpareIpAttachmentId1\", ids.attachments[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ga.GetAcceleratorSpareIpAttachments.Invoke(new()\n    {\n        AcceleratorId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gaAcceleratorSpareIpAttachmentId1\"] = ids.Apply(getAcceleratorSpareIpAttachmentsResult =\u003e getAcceleratorSpareIpAttachmentsResult.Attachments[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ga.GetAcceleratorSpareIpAttachments(ctx, \u0026ga.GetAcceleratorSpareIpAttachmentsArgs{\n\t\t\tAcceleratorId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gaAcceleratorSpareIpAttachmentId1\", ids.Attachments[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetAcceleratorSpareIpAttachmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = GaFunctions.getAcceleratorSpareIpAttachments(GetAcceleratorSpareIpAttachmentsArgs.builder()\n            .acceleratorId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"gaAcceleratorSpareIpAttachmentId1\", ids.attachments()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ga:getAcceleratorSpareIpAttachments\n      arguments:\n        acceleratorId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\noutputs:\n  gaAcceleratorSpareIpAttachmentId1: ${ids.attachments[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAcceleratorSpareIpAttachments.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the global acceleration instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Accelerator Spare Ip Attachment IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the standby CNAME IP address. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inuse`\" pulumi-lang-dotnet=\"`Inuse`\" pulumi-lang-go=\"`inuse`\" pulumi-lang-python=\"`inuse`\" pulumi-lang-yaml=\"`inuse`\" pulumi-lang-java=\"`inuse`\"\u003e`inuse`\u003c/span\u003e.\n"}},"type":"object","required":["acceleratorId"]},"outputs":{"description":"A collection of values returned by getAcceleratorSpareIpAttachments.\n","properties":{"acceleratorId":{"description":"The ID of the global acceleration instance.\n","type":"string"},"attachments":{"description":"A list of Ga Accelerator Spare Ip Attachments. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getAcceleratorSpareIpAttachmentsAttachment:getAcceleratorSpareIpAttachmentsAttachment"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the standby CNAME IP address. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inuse`\" pulumi-lang-dotnet=\"`Inuse`\" pulumi-lang-go=\"`inuse`\" pulumi-lang-python=\"`inuse`\" pulumi-lang-yaml=\"`inuse`\" pulumi-lang-java=\"`inuse`\"\u003e`inuse`\u003c/span\u003e.\n","type":"string"}},"required":["acceleratorId","attachments","ids","id"],"type":"object"}},"alicloud:ga/getAccelerators:getAccelerators":{"description":"This data source provides the Global Accelerator (GA) Accelerators of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.111.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ga.getAccelerators({\n    nameRegex: \"tf\",\n});\nexport const firstGaAcceleratorId = example.then(example =\u003e example.accelerators?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ga.get_accelerators(name_regex=\"tf\")\npulumi.export(\"firstGaAcceleratorId\", example.accelerators[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ga.GetAccelerators.Invoke(new()\n    {\n        NameRegex = \"tf\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstGaAcceleratorId\"] = example.Apply(getAcceleratorsResult =\u003e getAcceleratorsResult.Accelerators[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ga.GetAccelerators(ctx, \u0026ga.GetAcceleratorsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"tf\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstGaAcceleratorId\", example.Accelerators[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetAcceleratorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = GaFunctions.getAccelerators(GetAcceleratorsArgs.builder()\n            .nameRegex(\"tf\")\n            .build());\n\n        ctx.export(\"firstGaAcceleratorId\", example.accelerators()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ga:getAccelerators\n      arguments:\n        nameRegex: tf\noutputs:\n  firstGaAcceleratorId: ${example.accelerators[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccelerators.\n","properties":{"bandwidthBillingType":{"type":"string","description":"The bandwidth billing method. Default value: `BandwidthPackage`. Valid values:\n- `BandwidthPackage`: billed based on bandwidth plans.\n- `CDT`: billed based on data transfer.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Accelerator IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Accelerator name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the GA instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`binding`\" pulumi-lang-dotnet=\"`Binding`\" pulumi-lang-go=\"`binding`\" pulumi-lang-python=\"`binding`\" pulumi-lang-yaml=\"`binding`\" pulumi-lang-java=\"`binding`\"\u003e`binding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e, `finacialLocked`, \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unbinding`\" pulumi-lang-dotnet=\"`Unbinding`\" pulumi-lang-go=\"`unbinding`\" pulumi-lang-python=\"`unbinding`\" pulumi-lang-yaml=\"`unbinding`\" pulumi-lang-java=\"`unbinding`\"\u003e`unbinding`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAccelerators.\n","properties":{"accelerators":{"description":"A list of Ga Accelerators. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getAcceleratorsAccelerator:getAcceleratorsAccelerator"},"type":"array"},"bandwidthBillingType":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Accelerator names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the GA instance.\n","type":"string"}},"required":["accelerators","ids","names","id"],"type":"object"}},"alicloud:ga/getAcls:getAcls":{"description":"This data source provides the Ga Acls of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.150.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ga.getAcls({});\nexport const gaAclId1 = ids.then(ids =\u003e ids.acls?.[0]?.id);\nconst nameRegex = alicloud.ga.getAcls({\n    nameRegex: \"^my-Acl\",\n});\nexport const gaAclId2 = nameRegex.then(nameRegex =\u003e nameRegex.acls?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ga.get_acls()\npulumi.export(\"gaAclId1\", ids.acls[0].id)\nname_regex = alicloud.ga.get_acls(name_regex=\"^my-Acl\")\npulumi.export(\"gaAclId2\", name_regex.acls[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ga.GetAcls.Invoke();\n\n    var nameRegex = AliCloud.Ga.GetAcls.Invoke(new()\n    {\n        NameRegex = \"^my-Acl\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gaAclId1\"] = ids.Apply(getAclsResult =\u003e getAclsResult.Acls[0]?.Id),\n        [\"gaAclId2\"] = nameRegex.Apply(getAclsResult =\u003e getAclsResult.Acls[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ga.GetAcls(ctx, \u0026ga.GetAclsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gaAclId1\", ids.Acls[0].Id)\n\t\tnameRegex, err := ga.GetAcls(ctx, \u0026ga.GetAclsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Acl\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gaAclId2\", nameRegex.Acls[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetAclsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = GaFunctions.getAcls(GetAclsArgs.builder()\n            .build());\n\n        ctx.export(\"gaAclId1\", ids.acls()[0].id());\n        final var nameRegex = GaFunctions.getAcls(GetAclsArgs.builder()\n            .nameRegex(\"^my-Acl\")\n            .build());\n\n        ctx.export(\"gaAclId2\", nameRegex.acls()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ga:getAcls\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:ga:getAcls\n      arguments:\n        nameRegex: ^my-Acl\noutputs:\n  gaAclId1: ${ids.acls[0].id}\n  gaAclId2: ${nameRegex.acls[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAcls.\n","properties":{"aclName":{"type":"string","description":"The name of the acl.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Acl IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Acl name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAcls.\n","properties":{"aclName":{"description":"The name of the acl.\n","type":"string"},"acls":{"description":"A list of Ga Acls. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getAclsAcl:getAclsAcl"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Acl names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the resource.\n","type":"string"}},"required":["acls","ids","names","id"],"type":"object"}},"alicloud:ga/getAdditionalCertificates:getAdditionalCertificates":{"description":"This data source provides the Ga Additional Certificates of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.150.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ga.getAdditionalCertificates({\n    acceleratorId: \"example_value\",\n    listenerId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const gaAdditionalCertificateId1 = ids.then(ids =\u003e ids.certificates?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ga.get_additional_certificates(accelerator_id=\"example_value\",\n    listener_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"gaAdditionalCertificateId1\", ids.certificates[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ga.GetAdditionalCertificates.Invoke(new()\n    {\n        AcceleratorId = \"example_value\",\n        ListenerId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gaAdditionalCertificateId1\"] = ids.Apply(getAdditionalCertificatesResult =\u003e getAdditionalCertificatesResult.Certificates[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ga.GetAdditionalCertificates(ctx, \u0026ga.GetAdditionalCertificatesArgs{\n\t\t\tAcceleratorId: \"example_value\",\n\t\t\tListenerId:    \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gaAdditionalCertificateId1\", ids.Certificates[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetAdditionalCertificatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = GaFunctions.getAdditionalCertificates(GetAdditionalCertificatesArgs.builder()\n            .acceleratorId(\"example_value\")\n            .listenerId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"gaAdditionalCertificateId1\", ids.certificates()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ga:getAdditionalCertificates\n      arguments:\n        acceleratorId: example_value\n        listenerId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\noutputs:\n  gaAdditionalCertificateId1: ${ids.certificates[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAdditionalCertificates.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Additional Certificate IDs.\n"},"listenerId":{"type":"string","description":"The ID of the listener. Only HTTPS listeners support this parameter.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["acceleratorId","listenerId"]},"outputs":{"description":"A collection of values returned by getAdditionalCertificates.\n","properties":{"acceleratorId":{"description":"The ID of the GA instance.\n","type":"string"},"certificates":{"description":"A list of Ga Additional Certificates. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getAdditionalCertificatesCertificate:getAdditionalCertificatesCertificate"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"listenerId":{"description":"The ID of the listener. Only HTTPS listeners support this parameter.\n","type":"string"},"outputFile":{"type":"string"}},"required":["acceleratorId","certificates","ids","listenerId","id"],"type":"object"}},"alicloud:ga/getBandwidthPackages:getBandwidthPackages":{"description":"This data source provides the Global Accelerator (GA) Bandwidth Packages of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.112.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ga.getBandwidthPackages({\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstGaBandwidthPackageId = example.then(example =\u003e example.packages?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ga.get_bandwidth_packages(ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstGaBandwidthPackageId\", example.packages[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ga.GetBandwidthPackages.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstGaBandwidthPackageId\"] = example.Apply(getBandwidthPackagesResult =\u003e getBandwidthPackagesResult.Packages[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ga.GetBandwidthPackages(ctx, \u0026ga.GetBandwidthPackagesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstGaBandwidthPackageId\", example.Packages[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetBandwidthPackagesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = GaFunctions.getBandwidthPackages(GetBandwidthPackagesArgs.builder()\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstGaBandwidthPackageId\", example.packages()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ga:getBandwidthPackages\n      arguments:\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstGaBandwidthPackageId: ${example.packages[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBandwidthPackages.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Bandwidth Package IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Bandwidth Package name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the bandwidth plan. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`binded`\" pulumi-lang-dotnet=\"`Binded`\" pulumi-lang-go=\"`binded`\" pulumi-lang-python=\"`binded`\" pulumi-lang-yaml=\"`binded`\" pulumi-lang-java=\"`binded`\"\u003e`binded`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`binding`\" pulumi-lang-dotnet=\"`Binding`\" pulumi-lang-go=\"`binding`\" pulumi-lang-python=\"`binding`\" pulumi-lang-yaml=\"`binding`\" pulumi-lang-java=\"`binding`\"\u003e`binding`\u003c/span\u003e, `finacialLocked`, \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unbinding`\" pulumi-lang-dotnet=\"`Unbinding`\" pulumi-lang-go=\"`unbinding`\" pulumi-lang-python=\"`unbinding`\" pulumi-lang-yaml=\"`unbinding`\" pulumi-lang-java=\"`unbinding`\"\u003e`unbinding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`updating`\" pulumi-lang-dotnet=\"`Updating`\" pulumi-lang-go=\"`updating`\" pulumi-lang-python=\"`updating`\" pulumi-lang-yaml=\"`updating`\" pulumi-lang-java=\"`updating`\"\u003e`updating`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of the bandwidth plan. Valid values: `Basic`, `CrossDomain`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBandwidthPackages.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Bandwidth Package names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"packages":{"description":"A list of Ga Bandwidth Packages. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getBandwidthPackagesPackage:getBandwidthPackagesPackage"},"type":"array"},"status":{"description":"The status of the bandwidth plan.\n","type":"string"},"type":{"description":"The type of the bandwidth packet. China station only supports return to basic.\n","type":"string"}},"required":["ids","names","packages","id"],"type":"object"}},"alicloud:ga/getBasicAccelerateIpEndpointRelations:getBasicAccelerateIpEndpointRelations":{"description":"This data source provides the Global Accelerator (GA) Basic Accelerate Ip Endpoint Relations of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ga.getBasicAccelerateIpEndpointRelations({\n    ids: [\"example_id\"],\n    acceleratorId: \"example_id\",\n});\nexport const gaBasicAccelerateIpEndpointRelationsId1 = ids.then(ids =\u003e ids.relations?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ga.get_basic_accelerate_ip_endpoint_relations(ids=[\"example_id\"],\n    accelerator_id=\"example_id\")\npulumi.export(\"gaBasicAccelerateIpEndpointRelationsId1\", ids.relations[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ga.GetBasicAccelerateIpEndpointRelations.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        AcceleratorId = \"example_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gaBasicAccelerateIpEndpointRelationsId1\"] = ids.Apply(getBasicAccelerateIpEndpointRelationsResult =\u003e getBasicAccelerateIpEndpointRelationsResult.Relations[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ga.GetBasicAccelerateIpEndpointRelations(ctx, \u0026ga.GetBasicAccelerateIpEndpointRelationsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tAcceleratorId: \"example_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gaBasicAccelerateIpEndpointRelationsId1\", ids.Relations[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetBasicAccelerateIpEndpointRelationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = GaFunctions.getBasicAccelerateIpEndpointRelations(GetBasicAccelerateIpEndpointRelationsArgs.builder()\n            .ids(\"example_id\")\n            .acceleratorId(\"example_id\")\n            .build());\n\n        ctx.export(\"gaBasicAccelerateIpEndpointRelationsId1\", ids.relations()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ga:getBasicAccelerateIpEndpointRelations\n      arguments:\n        ids:\n          - example_id\n        acceleratorId: example_id\noutputs:\n  gaBasicAccelerateIpEndpointRelationsId1: ${ids.relations[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBasicAccelerateIpEndpointRelations.\n","properties":{"accelerateIpId":{"type":"string","description":"The ID of the Basic Accelerate IP.\n"},"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator Basic Accelerator instance.\n"},"endpointId":{"type":"string","description":"The ID of the Basic Endpoint.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Global Accelerator Basic Accelerate Ip Endpoint Relations IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the Global Accelerator Basic Accelerate Ip Endpoint Relation. Valid Value: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e.\n"}},"type":"object","required":["acceleratorId"]},"outputs":{"description":"A collection of values returned by getBasicAccelerateIpEndpointRelations.\n","properties":{"accelerateIpId":{"description":"The ID of the Basic Accelerate IP.\n","type":"string"},"acceleratorId":{"description":"The ID of the Global Accelerator Basic Accelerator instance.\n","type":"string"},"endpointId":{"description":"The ID of the Basic Endpoint.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"relations":{"description":"A list of Global Accelerator Basic Accelerate Ip Endpoint Relations. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getBasicAccelerateIpEndpointRelationsRelation:getBasicAccelerateIpEndpointRelationsRelation"},"type":"array"},"status":{"description":"The status of the Basic Accelerate Ip Endpoint Relation.\n","type":"string"}},"required":["acceleratorId","ids","relations","id"],"type":"object"}},"alicloud:ga/getBasicAccelerateIps:getBasicAccelerateIps":{"description":"This data source provides the Global Accelerator (GA) Basic Accelerate IPs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ga.getBasicAccelerateIps({\n    ids: [\"example_id\"],\n    ipSetId: \"example_ip_set_id\",\n});\nexport const gaBasicAccelerateIpId1 = ids.then(ids =\u003e ids.ips?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ga.get_basic_accelerate_ips(ids=[\"example_id\"],\n    ip_set_id=\"example_ip_set_id\")\npulumi.export(\"gaBasicAccelerateIpId1\", ids.ips[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ga.GetBasicAccelerateIps.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        IpSetId = \"example_ip_set_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gaBasicAccelerateIpId1\"] = ids.Apply(getBasicAccelerateIpsResult =\u003e getBasicAccelerateIpsResult.Ips[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ga.GetBasicAccelerateIps(ctx, \u0026ga.GetBasicAccelerateIpsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tIpSetId: \"example_ip_set_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gaBasicAccelerateIpId1\", ids.Ips[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetBasicAccelerateIpsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = GaFunctions.getBasicAccelerateIps(GetBasicAccelerateIpsArgs.builder()\n            .ids(\"example_id\")\n            .ipSetId(\"example_ip_set_id\")\n            .build());\n\n        ctx.export(\"gaBasicAccelerateIpId1\", ids.ips()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ga:getBasicAccelerateIps\n      arguments:\n        ids:\n          - example_id\n        ipSetId: example_ip_set_id\noutputs:\n  gaBasicAccelerateIpId1: ${ids.ips[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBasicAccelerateIps.\n","properties":{"accelerateIpAddress":{"type":"string","description":"The address of the Basic Accelerate IP.\n"},"accelerateIpId":{"type":"string","description":"The id of the Basic Accelerate IP.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Global Accelerator Basic Accelerate IP IDs.\n"},"ipSetId":{"type":"string","description":"The ID of the Basic Ip Set.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the Global Accelerator Basic Accelerate IP instance. Valid Value: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`binding`\" pulumi-lang-dotnet=\"`Binding`\" pulumi-lang-go=\"`binding`\" pulumi-lang-python=\"`binding`\" pulumi-lang-yaml=\"`binding`\" pulumi-lang-java=\"`binding`\"\u003e`binding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bound`\" pulumi-lang-dotnet=\"`Bound`\" pulumi-lang-go=\"`bound`\" pulumi-lang-python=\"`bound`\" pulumi-lang-yaml=\"`bound`\" pulumi-lang-java=\"`bound`\"\u003e`bound`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unbinding`\" pulumi-lang-dotnet=\"`Unbinding`\" pulumi-lang-go=\"`unbinding`\" pulumi-lang-python=\"`unbinding`\" pulumi-lang-yaml=\"`unbinding`\" pulumi-lang-java=\"`unbinding`\"\u003e`unbinding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e.\n"}},"type":"object","required":["ipSetId"]},"outputs":{"description":"A collection of values returned by getBasicAccelerateIps.\n","properties":{"accelerateIpAddress":{"description":"The address of the Basic Accelerate IP.\n","type":"string"},"accelerateIpId":{"description":"The id of the Basic Accelerate IP.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"ipSetId":{"description":"The ID of the Basic Ip Set.\n","type":"string"},"ips":{"description":"A list of Global Accelerator Basic Accelerate IPs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getBasicAccelerateIpsIp:getBasicAccelerateIpsIp"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the Basic Accelerate IP instance.\n","type":"string"}},"required":["ids","ipSetId","ips","id"],"type":"object"}},"alicloud:ga/getBasicAccelerators:getBasicAccelerators":{"description":"This data source provides the Global Accelerator (GA) Basic Accelerators of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ga.getBasicAccelerators({\n    status: \"active\",\n});\nexport const gaBasicAcceleratorId1 = _default.then(_default =\u003e _default.accelerators?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ga.get_basic_accelerators(status=\"active\")\npulumi.export(\"gaBasicAcceleratorId1\", default.accelerators[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ga.GetBasicAccelerators.Invoke(new()\n    {\n        Status = \"active\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gaBasicAcceleratorId1\"] = @default.Apply(@default =\u003e @default.Apply(getBasicAcceleratorsResult =\u003e getBasicAcceleratorsResult.Accelerators[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ga.GetBasicAccelerators(ctx, \u0026ga.GetBasicAcceleratorsArgs{\n\t\t\tStatus: pulumi.StringRef(\"active\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gaBasicAcceleratorId1\", _default.Accelerators[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetBasicAcceleratorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = GaFunctions.getBasicAccelerators(GetBasicAcceleratorsArgs.builder()\n            .status(\"active\")\n            .build());\n\n        ctx.export(\"gaBasicAcceleratorId1\", default_.accelerators()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ga:getBasicAccelerators\n      arguments:\n        status: active\noutputs:\n  gaBasicAcceleratorId1: ${default.accelerators[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBasicAccelerators.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator Basic Accelerator instance.\n"},"bandwidthBillingType":{"type":"string","description":"The bandwidth billing method. Valid values:\n- `BandwidthPackage`: billed based on bandwidth plans.\n- `CDT`: billed through Cloud Data Transfer (CDT) and based on data transfer.\n- `CDT95`: billed through CDT and based on the 95th percentile bandwidth. This bandwidth billing method is available only for users that are included in the whitelist.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Global Accelerator Basic Accelerator IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Global Accelerator Basic Accelerator name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string","description":"The status of the Global Accelerator Basic Accelerator instance. Valid Value: \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`binding`\" pulumi-lang-dotnet=\"`Binding`\" pulumi-lang-go=\"`binding`\" pulumi-lang-python=\"`binding`\" pulumi-lang-yaml=\"`binding`\" pulumi-lang-java=\"`binding`\"\u003e`binding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unbinding`\" pulumi-lang-dotnet=\"`Unbinding`\" pulumi-lang-go=\"`unbinding`\" pulumi-lang-python=\"`unbinding`\" pulumi-lang-yaml=\"`unbinding`\" pulumi-lang-java=\"`unbinding`\"\u003e`unbinding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e, `finacialLocked`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBasicAccelerators.\n","properties":{"acceleratorId":{"type":"string"},"accelerators":{"description":"A list of Global Accelerator Basic Accelerators. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getBasicAcceleratorsAccelerator:getBasicAcceleratorsAccelerator"},"type":"array"},"bandwidthBillingType":{"description":"The bandwidth billing method.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Global Accelerator Basic Accelerator names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"description":"The status of the Global Accelerator Basic Accelerator instance.\n","type":"string"}},"required":["accelerators","ids","names","id"],"type":"object"}},"alicloud:ga/getBasicEndpoints:getBasicEndpoints":{"description":"This data source provides the Global Accelerator (GA) Basic Endpoints of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.194.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ga.getBasicEndpoints({\n    ids: [\"example_id\"],\n    endpointGroupId: \"example_id\",\n});\nexport const gaBasicEndpointsId1 = ids.then(ids =\u003e ids.endpoints?.[0]?.id);\nconst nameRegex = alicloud.ga.getBasicEndpoints({\n    nameRegex: \"tf-example\",\n    endpointGroupId: \"example_id\",\n});\nexport const gaBasicEndpointsId2 = nameRegex.then(nameRegex =\u003e nameRegex.endpoints?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ga.get_basic_endpoints(ids=[\"example_id\"],\n    endpoint_group_id=\"example_id\")\npulumi.export(\"gaBasicEndpointsId1\", ids.endpoints[0].id)\nname_regex = alicloud.ga.get_basic_endpoints(name_regex=\"tf-example\",\n    endpoint_group_id=\"example_id\")\npulumi.export(\"gaBasicEndpointsId2\", name_regex.endpoints[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ga.GetBasicEndpoints.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        EndpointGroupId = \"example_id\",\n    });\n\n    var nameRegex = AliCloud.Ga.GetBasicEndpoints.Invoke(new()\n    {\n        NameRegex = \"tf-example\",\n        EndpointGroupId = \"example_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gaBasicEndpointsId1\"] = ids.Apply(getBasicEndpointsResult =\u003e getBasicEndpointsResult.Endpoints[0]?.Id),\n        [\"gaBasicEndpointsId2\"] = nameRegex.Apply(getBasicEndpointsResult =\u003e getBasicEndpointsResult.Endpoints[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ga.GetBasicEndpoints(ctx, \u0026ga.GetBasicEndpointsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tEndpointGroupId: \"example_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gaBasicEndpointsId1\", ids.Endpoints[0].Id)\n\t\tnameRegex, err := ga.GetBasicEndpoints(ctx, \u0026ga.GetBasicEndpointsArgs{\n\t\t\tNameRegex:       pulumi.StringRef(\"tf-example\"),\n\t\t\tEndpointGroupId: \"example_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gaBasicEndpointsId2\", nameRegex.Endpoints[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetBasicEndpointsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = GaFunctions.getBasicEndpoints(GetBasicEndpointsArgs.builder()\n            .ids(\"example_id\")\n            .endpointGroupId(\"example_id\")\n            .build());\n\n        ctx.export(\"gaBasicEndpointsId1\", ids.endpoints()[0].id());\n        final var nameRegex = GaFunctions.getBasicEndpoints(GetBasicEndpointsArgs.builder()\n            .nameRegex(\"tf-example\")\n            .endpointGroupId(\"example_id\")\n            .build());\n\n        ctx.export(\"gaBasicEndpointsId2\", nameRegex.endpoints()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ga:getBasicEndpoints\n      arguments:\n        ids:\n          - example_id\n        endpointGroupId: example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:ga:getBasicEndpoints\n      arguments:\n        nameRegex: tf-example\n        endpointGroupId: example_id\noutputs:\n  gaBasicEndpointsId1: ${ids.endpoints[0].id}\n  gaBasicEndpointsId2: ${nameRegex.endpoints[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBasicEndpoints.\n","properties":{"endpointGroupId":{"type":"string","description":"The ID of the Basic Endpoint Group.\n"},"endpointId":{"type":"string","description":"The ID of the Basic Endpoint.\n"},"endpointType":{"type":"string","description":"The type of the Basic Endpoint. Valid values: `ENI`, `SLB`, `ECS` and `NLB`.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Global Accelerator Basic Endpoints IDs.\n"},"name":{"type":"string","description":"The name of the Basic Endpoint.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Global Accelerator Basic Endpoints name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the Global Accelerator Basic Endpoint. Valid Value: \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`updating`\" pulumi-lang-dotnet=\"`Updating`\" pulumi-lang-go=\"`updating`\" pulumi-lang-python=\"`updating`\" pulumi-lang-yaml=\"`updating`\" pulumi-lang-java=\"`updating`\"\u003e`updating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`binding`\" pulumi-lang-dotnet=\"`Binding`\" pulumi-lang-go=\"`binding`\" pulumi-lang-python=\"`binding`\" pulumi-lang-yaml=\"`binding`\" pulumi-lang-java=\"`binding`\"\u003e`binding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unbinding`\" pulumi-lang-dotnet=\"`Unbinding`\" pulumi-lang-go=\"`unbinding`\" pulumi-lang-python=\"`unbinding`\" pulumi-lang-yaml=\"`unbinding`\" pulumi-lang-java=\"`unbinding`\"\u003e`unbinding`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bound`\" pulumi-lang-dotnet=\"`Bound`\" pulumi-lang-go=\"`bound`\" pulumi-lang-python=\"`bound`\" pulumi-lang-yaml=\"`bound`\" pulumi-lang-java=\"`bound`\"\u003e`bound`\u003c/span\u003e.\n"}},"type":"object","required":["endpointGroupId"]},"outputs":{"description":"A collection of values returned by getBasicEndpoints.\n","properties":{"endpointGroupId":{"description":"The ID of the Basic Endpoint Group.\n","type":"string"},"endpointId":{"description":"The ID of the Basic Endpoint.\n","type":"string"},"endpointType":{"description":"The type of the Basic Endpoint.\n","type":"string"},"endpoints":{"description":"A list of Global Accelerator Basic Endpoints. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getBasicEndpointsEndpoint:getBasicEndpointsEndpoint"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Global Accelerator Basic Endpoint names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the Basic Endpoint.\n","type":"string"}},"required":["endpointGroupId","endpoints","ids","names","id"],"type":"object"}},"alicloud:ga/getCustomRoutingEndpointGroupDestinations:getCustomRoutingEndpointGroupDestinations":{"description":"This data source provides the Global Accelerator (GA) Custom Routing Endpoint Group Destinations of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.197.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ga.getCustomRoutingEndpointGroupDestinations({\n    ids: [\"example_id\"],\n    acceleratorId: \"your_accelerator_id\",\n});\nexport const gaCustomRoutingEndpointGroupDestinationsId1 = ids.then(ids =\u003e ids.customRoutingEndpointGroupDestinations?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ga.get_custom_routing_endpoint_group_destinations(ids=[\"example_id\"],\n    accelerator_id=\"your_accelerator_id\")\npulumi.export(\"gaCustomRoutingEndpointGroupDestinationsId1\", ids.custom_routing_endpoint_group_destinations[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ga.GetCustomRoutingEndpointGroupDestinations.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        AcceleratorId = \"your_accelerator_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gaCustomRoutingEndpointGroupDestinationsId1\"] = ids.Apply(getCustomRoutingEndpointGroupDestinationsResult =\u003e getCustomRoutingEndpointGroupDestinationsResult.CustomRoutingEndpointGroupDestinations[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ga.GetCustomRoutingEndpointGroupDestinations(ctx, \u0026ga.GetCustomRoutingEndpointGroupDestinationsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tAcceleratorId: \"your_accelerator_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gaCustomRoutingEndpointGroupDestinationsId1\", ids.CustomRoutingEndpointGroupDestinations[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetCustomRoutingEndpointGroupDestinationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = GaFunctions.getCustomRoutingEndpointGroupDestinations(GetCustomRoutingEndpointGroupDestinationsArgs.builder()\n            .ids(\"example_id\")\n            .acceleratorId(\"your_accelerator_id\")\n            .build());\n\n        ctx.export(\"gaCustomRoutingEndpointGroupDestinationsId1\", ids.customRoutingEndpointGroupDestinations()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ga:getCustomRoutingEndpointGroupDestinations\n      arguments:\n        ids:\n          - example_id\n        acceleratorId: your_accelerator_id\noutputs:\n  gaCustomRoutingEndpointGroupDestinationsId1: ${ids.customRoutingEndpointGroupDestinations[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCustomRoutingEndpointGroupDestinations.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n"},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group.\n"},"fromPort":{"type":"integer","description":"The start port of the backend service port range of the endpoint group. The \u003cspan pulumi-lang-nodejs=\"`fromPort`\" pulumi-lang-dotnet=\"`FromPort`\" pulumi-lang-go=\"`fromPort`\" pulumi-lang-python=\"`from_port`\" pulumi-lang-yaml=\"`fromPort`\" pulumi-lang-java=\"`fromPort`\"\u003e`from_port`\u003c/span\u003e value must be smaller than or equal to the \u003cspan pulumi-lang-nodejs=\"`toPort`\" pulumi-lang-dotnet=\"`ToPort`\" pulumi-lang-go=\"`toPort`\" pulumi-lang-python=\"`to_port`\" pulumi-lang-yaml=\"`toPort`\" pulumi-lang-java=\"`toPort`\"\u003e`to_port`\u003c/span\u003e value. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65499`\" pulumi-lang-dotnet=\"`65499`\" pulumi-lang-go=\"`65499`\" pulumi-lang-python=\"`65499`\" pulumi-lang-yaml=\"`65499`\" pulumi-lang-java=\"`65499`\"\u003e`65499`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Custom Routing Endpoint Group Destination IDs.\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"protocols":{"type":"array","items":{"type":"string"},"description":"The backend service protocol of the endpoint group. Valid values: `TCP`, `UDP`, `TCP, UDP`.\n"},"toPort":{"type":"integer","description":"The end port of the backend service port range of the endpoint group. The \u003cspan pulumi-lang-nodejs=\"`fromPort`\" pulumi-lang-dotnet=\"`FromPort`\" pulumi-lang-go=\"`fromPort`\" pulumi-lang-python=\"`from_port`\" pulumi-lang-yaml=\"`fromPort`\" pulumi-lang-java=\"`fromPort`\"\u003e`from_port`\u003c/span\u003e value must be smaller than or equal to the \u003cspan pulumi-lang-nodejs=\"`toPort`\" pulumi-lang-dotnet=\"`ToPort`\" pulumi-lang-go=\"`toPort`\" pulumi-lang-python=\"`to_port`\" pulumi-lang-yaml=\"`toPort`\" pulumi-lang-java=\"`toPort`\"\u003e`to_port`\u003c/span\u003e value. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`65499`\" pulumi-lang-dotnet=\"`65499`\" pulumi-lang-go=\"`65499`\" pulumi-lang-python=\"`65499`\" pulumi-lang-yaml=\"`65499`\" pulumi-lang-java=\"`65499`\"\u003e`65499`\u003c/span\u003e.\n"}},"type":"object","required":["acceleratorId"]},"outputs":{"description":"A collection of values returned by getCustomRoutingEndpointGroupDestinations.\n","properties":{"acceleratorId":{"description":"The ID of the GA instance.\n","type":"string"},"customRoutingEndpointGroupDestinations":{"description":"A list of Custom Routing Endpoint Group Destinations. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getCustomRoutingEndpointGroupDestinationsCustomRoutingEndpointGroupDestination:getCustomRoutingEndpointGroupDestinationsCustomRoutingEndpointGroupDestination"},"type":"array"},"endpointGroupId":{"description":"The ID of the Custom Routing Endpoint Group.\n","type":"string"},"fromPort":{"description":"The start port of the backend service port range of the endpoint group.\n","type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"listenerId":{"description":"The ID of the listener.\n","type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"protocols":{"description":"The backend service protocol of the endpoint group.\n","items":{"type":"string"},"type":"array"},"toPort":{"description":"The end port of the backend service port range of the endpoint group.\n","type":"integer"}},"required":["acceleratorId","customRoutingEndpointGroupDestinations","ids","id"],"type":"object"}},"alicloud:ga/getCustomRoutingEndpointGroups:getCustomRoutingEndpointGroups":{"description":"This data source provides the Global Accelerator (GA) Custom Routing Endpoint Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.197.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ga.getCustomRoutingEndpointGroups({\n    ids: [\"example_id\"],\n    acceleratorId: \"your_accelerator_id\",\n});\nexport const gaCustomRoutingEndpointGroupsId1 = ids.then(ids =\u003e ids.groups?.[0]?.id);\nconst nameRegex = alicloud.ga.getCustomRoutingEndpointGroups({\n    nameRegex: \"tf-example\",\n    acceleratorId: \"your_accelerator_id\",\n});\nexport const gaCustomRoutingEndpointGroupsId2 = nameRegex.then(nameRegex =\u003e nameRegex.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ga.get_custom_routing_endpoint_groups(ids=[\"example_id\"],\n    accelerator_id=\"your_accelerator_id\")\npulumi.export(\"gaCustomRoutingEndpointGroupsId1\", ids.groups[0].id)\nname_regex = alicloud.ga.get_custom_routing_endpoint_groups(name_regex=\"tf-example\",\n    accelerator_id=\"your_accelerator_id\")\npulumi.export(\"gaCustomRoutingEndpointGroupsId2\", name_regex.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ga.GetCustomRoutingEndpointGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        AcceleratorId = \"your_accelerator_id\",\n    });\n\n    var nameRegex = AliCloud.Ga.GetCustomRoutingEndpointGroups.Invoke(new()\n    {\n        NameRegex = \"tf-example\",\n        AcceleratorId = \"your_accelerator_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gaCustomRoutingEndpointGroupsId1\"] = ids.Apply(getCustomRoutingEndpointGroupsResult =\u003e getCustomRoutingEndpointGroupsResult.Groups[0]?.Id),\n        [\"gaCustomRoutingEndpointGroupsId2\"] = nameRegex.Apply(getCustomRoutingEndpointGroupsResult =\u003e getCustomRoutingEndpointGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ga.GetCustomRoutingEndpointGroups(ctx, \u0026ga.GetCustomRoutingEndpointGroupsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tAcceleratorId: \"your_accelerator_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gaCustomRoutingEndpointGroupsId1\", ids.Groups[0].Id)\n\t\tnameRegex, err := ga.GetCustomRoutingEndpointGroups(ctx, \u0026ga.GetCustomRoutingEndpointGroupsArgs{\n\t\t\tNameRegex:     pulumi.StringRef(\"tf-example\"),\n\t\t\tAcceleratorId: \"your_accelerator_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gaCustomRoutingEndpointGroupsId2\", nameRegex.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetCustomRoutingEndpointGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = GaFunctions.getCustomRoutingEndpointGroups(GetCustomRoutingEndpointGroupsArgs.builder()\n            .ids(\"example_id\")\n            .acceleratorId(\"your_accelerator_id\")\n            .build());\n\n        ctx.export(\"gaCustomRoutingEndpointGroupsId1\", ids.groups()[0].id());\n        final var nameRegex = GaFunctions.getCustomRoutingEndpointGroups(GetCustomRoutingEndpointGroupsArgs.builder()\n            .nameRegex(\"tf-example\")\n            .acceleratorId(\"your_accelerator_id\")\n            .build());\n\n        ctx.export(\"gaCustomRoutingEndpointGroupsId2\", nameRegex.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ga:getCustomRoutingEndpointGroups\n      arguments:\n        ids:\n          - example_id\n        acceleratorId: your_accelerator_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:ga:getCustomRoutingEndpointGroups\n      arguments:\n        nameRegex: tf-example\n        acceleratorId: your_accelerator_id\noutputs:\n  gaCustomRoutingEndpointGroupsId1: ${ids.groups[0].id}\n  gaCustomRoutingEndpointGroupsId2: ${nameRegex.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCustomRoutingEndpointGroups.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n"},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Custom Routing Endpoint Group IDs.\n"},"listenerId":{"type":"string","description":"The ID of the custom routing listener.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Custom Routing Endpoint Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string","description":"The status of the endpoint group. Valid Values: \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`updating`\" pulumi-lang-dotnet=\"`Updating`\" pulumi-lang-go=\"`updating`\" pulumi-lang-python=\"`updating`\" pulumi-lang-yaml=\"`updating`\" pulumi-lang-java=\"`updating`\"\u003e`updating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e.\n"}},"type":"object","required":["acceleratorId"]},"outputs":{"description":"A collection of values returned by getCustomRoutingEndpointGroups.\n","properties":{"acceleratorId":{"description":"The ID of the GA instance.\n","type":"string"},"endpointGroupId":{"description":"The ID of the Custom Routing Endpoint Group.\n","type":"string"},"groups":{"description":"A list of Custom Routing Endpoint Groups. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getCustomRoutingEndpointGroupsGroup:getCustomRoutingEndpointGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"listenerId":{"description":"The ID of the custom routing listener.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Custom Routing Endpoint Group names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"description":"The status of the endpoint group.\n","type":"string"}},"required":["acceleratorId","groups","ids","names","id"],"type":"object"}},"alicloud:ga/getCustomRoutingEndpointTrafficPolicies:getCustomRoutingEndpointTrafficPolicies":{"description":"This data source provides the Global Accelerator (GA) Custom Routing Endpoint Traffic Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.197.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ga.getCustomRoutingEndpointTrafficPolicies({\n    ids: [\"example_id\"],\n    acceleratorId: \"your_accelerator_id\",\n});\nexport const gaCustomRoutingEndpointTrafficPoliciesId1 = ids.then(ids =\u003e ids.customRoutingEndpointTrafficPolicies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ga.get_custom_routing_endpoint_traffic_policies(ids=[\"example_id\"],\n    accelerator_id=\"your_accelerator_id\")\npulumi.export(\"gaCustomRoutingEndpointTrafficPoliciesId1\", ids.custom_routing_endpoint_traffic_policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ga.GetCustomRoutingEndpointTrafficPolicies.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        AcceleratorId = \"your_accelerator_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gaCustomRoutingEndpointTrafficPoliciesId1\"] = ids.Apply(getCustomRoutingEndpointTrafficPoliciesResult =\u003e getCustomRoutingEndpointTrafficPoliciesResult.CustomRoutingEndpointTrafficPolicies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ga.GetCustomRoutingEndpointTrafficPolicies(ctx, \u0026ga.GetCustomRoutingEndpointTrafficPoliciesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tAcceleratorId: \"your_accelerator_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gaCustomRoutingEndpointTrafficPoliciesId1\", ids.CustomRoutingEndpointTrafficPolicies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetCustomRoutingEndpointTrafficPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = GaFunctions.getCustomRoutingEndpointTrafficPolicies(GetCustomRoutingEndpointTrafficPoliciesArgs.builder()\n            .ids(\"example_id\")\n            .acceleratorId(\"your_accelerator_id\")\n            .build());\n\n        ctx.export(\"gaCustomRoutingEndpointTrafficPoliciesId1\", ids.customRoutingEndpointTrafficPolicies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ga:getCustomRoutingEndpointTrafficPolicies\n      arguments:\n        ids:\n          - example_id\n        acceleratorId: your_accelerator_id\noutputs:\n  gaCustomRoutingEndpointTrafficPoliciesId1: ${ids.customRoutingEndpointTrafficPolicies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCustomRoutingEndpointTrafficPolicies.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance to which the traffic policies belong.\n"},"address":{"type":"string","description":"The IP addresses of the traffic policies.\n"},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group to which the traffic policies belong.\n"},"endpointId":{"type":"string","description":"The ID of the endpoint to which the traffic policies belong.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Custom Routing Endpoint Traffic Policy IDs.\n"},"listenerId":{"type":"string","description":"The ID of the listener to which the traffic policies belong.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object","required":["acceleratorId"]},"outputs":{"description":"A collection of values returned by getCustomRoutingEndpointTrafficPolicies.\n","properties":{"acceleratorId":{"description":"The ID of the GA instance to which the endpoint belongs.\n","type":"string"},"address":{"description":"The IP address of the traffic policy.\n","type":"string"},"customRoutingEndpointTrafficPolicies":{"description":"A list of Custom Routing Endpoint Traffic Policies. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getCustomRoutingEndpointTrafficPoliciesCustomRoutingEndpointTrafficPolicy:getCustomRoutingEndpointTrafficPoliciesCustomRoutingEndpointTrafficPolicy"},"type":"array"},"endpointGroupId":{"description":"The ID of the Custom Routing Endpoint Group.\n","type":"string"},"endpointId":{"description":"The ID of the Custom Routing Endpoint.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"listenerId":{"description":"The ID of the custom routing listener to which the endpoint belongs.\n","type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["acceleratorId","customRoutingEndpointTrafficPolicies","ids","id"],"type":"object"}},"alicloud:ga/getCustomRoutingEndpoints:getCustomRoutingEndpoints":{"description":"This data source provides the Global Accelerator (GA) Custom Routing Endpoints of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.197.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ga.getCustomRoutingEndpoints({\n    ids: [\"example_id\"],\n    acceleratorId: \"your_accelerator_id\",\n});\nexport const gaCustomRoutingEndpointsId1 = ids.then(ids =\u003e ids.customRoutingEndpoints?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ga.get_custom_routing_endpoints(ids=[\"example_id\"],\n    accelerator_id=\"your_accelerator_id\")\npulumi.export(\"gaCustomRoutingEndpointsId1\", ids.custom_routing_endpoints[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ga.GetCustomRoutingEndpoints.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        AcceleratorId = \"your_accelerator_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gaCustomRoutingEndpointsId1\"] = ids.Apply(getCustomRoutingEndpointsResult =\u003e getCustomRoutingEndpointsResult.CustomRoutingEndpoints[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ga.GetCustomRoutingEndpoints(ctx, \u0026ga.GetCustomRoutingEndpointsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tAcceleratorId: \"your_accelerator_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gaCustomRoutingEndpointsId1\", ids.CustomRoutingEndpoints[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetCustomRoutingEndpointsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = GaFunctions.getCustomRoutingEndpoints(GetCustomRoutingEndpointsArgs.builder()\n            .ids(\"example_id\")\n            .acceleratorId(\"your_accelerator_id\")\n            .build());\n\n        ctx.export(\"gaCustomRoutingEndpointsId1\", ids.customRoutingEndpoints()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ga:getCustomRoutingEndpoints\n      arguments:\n        ids:\n          - example_id\n        acceleratorId: your_accelerator_id\noutputs:\n  gaCustomRoutingEndpointsId1: ${ids.customRoutingEndpoints[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCustomRoutingEndpoints.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n"},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Custom Routing Endpoint IDs.\n"},"listenerId":{"type":"string","description":"The ID of the custom routing listener.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object","required":["acceleratorId"]},"outputs":{"description":"A collection of values returned by getCustomRoutingEndpoints.\n","properties":{"acceleratorId":{"description":"The ID of the GA instance with which the endpoint is associated.\n","type":"string"},"customRoutingEndpoints":{"description":"A list of Custom Routing Endpoints. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getCustomRoutingEndpointsCustomRoutingEndpoint:getCustomRoutingEndpointsCustomRoutingEndpoint"},"type":"array"},"endpointGroupId":{"description":"The ID of the Custom Routing Endpoint Group.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"listenerId":{"description":"The ID of the listener with which the endpoint is associated.\n","type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["acceleratorId","customRoutingEndpoints","ids","id"],"type":"object"}},"alicloud:ga/getCustomRoutingPortMappings:getCustomRoutingPortMappings":{"description":"This data source provides the Global Accelerator (GA) Custom Routing Port Mappings of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.197.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ga.getCustomRoutingPortMappings({\n    acceleratorId: \"your_accelerator_id\",\n});\nexport const gaCustomRoutingPortMappingsAcceleratorId1 = _default.then(_default =\u003e _default.customRoutingPortMappings?.[0]?.acceleratorId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ga.get_custom_routing_port_mappings(accelerator_id=\"your_accelerator_id\")\npulumi.export(\"gaCustomRoutingPortMappingsAcceleratorId1\", default.custom_routing_port_mappings[0].accelerator_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ga.GetCustomRoutingPortMappings.Invoke(new()\n    {\n        AcceleratorId = \"your_accelerator_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gaCustomRoutingPortMappingsAcceleratorId1\"] = @default.Apply(@default =\u003e @default.Apply(getCustomRoutingPortMappingsResult =\u003e getCustomRoutingPortMappingsResult.CustomRoutingPortMappings[0]?.AcceleratorId)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ga.GetCustomRoutingPortMappings(ctx, \u0026ga.GetCustomRoutingPortMappingsArgs{\n\t\t\tAcceleratorId: \"your_accelerator_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gaCustomRoutingPortMappingsAcceleratorId1\", _default.CustomRoutingPortMappings[0].AcceleratorId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetCustomRoutingPortMappingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = GaFunctions.getCustomRoutingPortMappings(GetCustomRoutingPortMappingsArgs.builder()\n            .acceleratorId(\"your_accelerator_id\")\n            .build());\n\n        ctx.export(\"gaCustomRoutingPortMappingsAcceleratorId1\", default_.customRoutingPortMappings()[0].acceleratorId());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ga:getCustomRoutingPortMappings\n      arguments:\n        acceleratorId: your_accelerator_id\noutputs:\n  gaCustomRoutingPortMappingsAcceleratorId1: ${default.customRoutingPortMappings[0].acceleratorId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCustomRoutingPortMappings.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the GA instance.\n"},"endpointGroupId":{"type":"string","description":"The ID of the endpoint group.\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string","description":"The access policy of traffic for the backend instance. Valid Values: \u003cspan pulumi-lang-nodejs=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deny`\" pulumi-lang-dotnet=\"`Deny`\" pulumi-lang-go=\"`deny`\" pulumi-lang-python=\"`deny`\" pulumi-lang-yaml=\"`deny`\" pulumi-lang-java=\"`deny`\"\u003e`deny`\u003c/span\u003e.\n"}},"type":"object","required":["acceleratorId"]},"outputs":{"description":"A collection of values returned by getCustomRoutingPortMappings.\n","properties":{"acceleratorId":{"description":"The ID of the GA instance.\n","type":"string"},"customRoutingPortMappings":{"description":"A list of Custom Routing Port Mappings. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getCustomRoutingPortMappingsCustomRoutingPortMapping:getCustomRoutingPortMappingsCustomRoutingPortMapping"},"type":"array"},"endpointGroupId":{"description":"The ID of the endpoint group.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"listenerId":{"description":"The ID of the listener.\n","type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"description":"The access policy of traffic for the backend instance.\n","type":"string"}},"required":["acceleratorId","customRoutingPortMappings","id"],"type":"object"}},"alicloud:ga/getDomains:getDomains":{"description":"This data source provides Ga Domain available to the user.[What is Domain](https://www.alibabacloud.com/help/en/global-accelerator/latest/createdomain)\n\n\u003e **NOTE:** Available since v1.197.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ga.getAccelerators({\n    status: \"active\",\n});\nconst defaultAccelerator: alicloud.ga.Accelerator[] = [];\n_default.then(_default =\u003e _default.accelerators).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        defaultAccelerator.push(new alicloud.ga.Accelerator(`default-${range.value}`, {\n            duration: 1,\n            autoUseCoupon: true,\n            spec: \"1\",\n        }));\n    }\n});\nconst acceleratorId = pulumi.all([_default.then(_default =\u003e _default.accelerators).length, _default, defaultAccelerator[0].id]).apply(([length, _default, id]) =\u003e length \u003e 0 ? _default.accelerators?.[0]?.id : id);\nconst defaultGetDomains = alicloud.ga.getDomains({\n    acceleratorId: acceleratorIdLocals,\n    domain: \"your_domain\",\n});\nexport const alicloudGaDomainExampleId = defaultGetDomains.then(defaultGetDomains =\u003e defaultGetDomains.domains?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ga.get_accelerators(status=\"active\")\ndefault_accelerator = []\ndef create_default(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        default_accelerator.append(alicloud.ga.Accelerator(f\"default-{range['value']}\",\n            duration=1,\n            auto_use_coupon=True,\n            spec=\"1\"))\n\nlen(default.accelerators).apply(lambda resolved_outputs: create_default(0 if resolved_outputs['length'] \u003e 0 else 1))\naccelerator_id = pulumi.Output.all(\n    length=len(default.accelerators),\n    id=default_accelerator[0].id\n).apply(lambda resolved_outputs: default.accelerators[0].id if resolved_outputs['length'] \u003e 0 else resolved_outputs['id'])\n\ndefault_get_domains = alicloud.ga.get_domains(accelerator_id=accelerator_id_locals,\n    domain=\"your_domain\")\npulumi.export(\"alicloudGaDomainExampleId\", default_get_domains.domains[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ga.GetAccelerators.Invoke(new()\n    {\n        Status = \"active\",\n    });\n\n    var defaultAccelerator = new List\u003cAliCloud.Ga.Accelerator\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c @default.Apply(@default =\u003e @default.Apply(getAcceleratorsResult =\u003e getAcceleratorsResult.Accelerators)).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultAccelerator.Add(new AliCloud.Ga.Accelerator($\"default-{range.Value}\", new()\n        {\n            Duration = 1,\n            AutoUseCoupon = true,\n            Spec = \"1\",\n        }));\n    }\n    var acceleratorId = Output.Tuple(@default.Apply(@default =\u003e @default.Apply(getAcceleratorsResult =\u003e getAcceleratorsResult.Accelerators)).Length, @default, defaultAccelerator[0].Id).Apply(values =\u003e\n    {\n        var length = values.Item1;\n        var @default = values.Item2;\n        var id = values.Item3;\n        return length \u003e 0 ? @default.Apply(getAcceleratorsResult =\u003e getAcceleratorsResult.Accelerators[0]?.Id) : id;\n    });\n\n    var defaultGetDomains = AliCloud.Ga.GetDomains.Invoke(new()\n    {\n        AcceleratorId = acceleratorIdLocals,\n        Domain = \"your_domain\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudGaDomainExampleId\"] = defaultGetDomains.Apply(getDomainsResult =\u003e getDomainsResult.Domains[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ga.GetAccelerators(ctx, \u0026ga.GetAcceleratorsArgs{\n\t\t\tStatus: pulumi.StringRef(\"active\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp0 float64\n\t\tif length \u003e 0 {\n\t\t\ttmp0 = 0\n\t\t} else {\n\t\t\ttmp0 = 1\n\t\t}\n\t\tvar defaultAccelerator []*ga.Accelerator\n\t\tfor index := 0; index \u003c float64(len(_default.Accelerators).ApplyT(func(length int) (float64, error) {\n\t\t\treturn tmp0, nil\n\t\t}).(pulumi.Float64Output)); index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := ga.NewAccelerator(ctx, fmt.Sprintf(\"default-%v\", key0), \u0026ga.AcceleratorArgs{\n\t\t\t\tDuration:      pulumi.Int(1),\n\t\t\t\tAutoUseCoupon: pulumi.Bool(true),\n\t\t\t\tSpec:          pulumi.String(\"1\"),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefaultAccelerator = append(defaultAccelerator, __res)\n\t\t}\n\t\tvar tmp1 *string\n\t\tif length \u003e 0 {\n\t\t\ttmp1 = _default.Accelerators[0].Id\n\t\t} else {\n\t\t\ttmp1 = id\n\t\t}\n\t\t_ = pulumi.All(len(_default.Accelerators), defaultAccelerator[0].ID()).ApplyT(func(_args []interface{}) (*string, error) {\n\t\t\tlength := _args[0].(int)\n\t\t\tid := _args[1].(string)\n\t\t\treturn \u0026tmp1, nil\n\t\t}).(pulumi.StringPtrOutput)\n\t\tdefaultGetDomains, err := ga.GetDomains(ctx, \u0026ga.GetDomainsArgs{\n\t\t\tAcceleratorId: pulumi.StringRef(acceleratorIdLocals),\n\t\t\tDomain:        pulumi.StringRef(\"your_domain\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudGaDomainExampleId\", defaultGetDomains.Domains[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetAcceleratorsArgs;\nimport com.pulumi.alicloud.ga.Accelerator;\nimport com.pulumi.alicloud.ga.AcceleratorArgs;\nimport com.pulumi.alicloud.ga.inputs.GetDomainsArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = GaFunctions.getAccelerators(GetAcceleratorsArgs.builder()\n            .status(\"active\")\n            .build());\n\n        for (var i = 0; i \u003c default_.accelerators().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new Accelerator(\"defaultAccelerator-\" + i, AcceleratorArgs.builder()\n                .duration(1)\n                .autoUseCoupon(true)\n                .spec(\"1\")\n                .build());\n\n        \n}\n        final var acceleratorId = Output.tuple(default_.accelerators().length(), defaultAccelerator[0].id()).applyValue(values -\u003e {\n            var length = values.t1;\n            var id = values.t2;\n            return length \u003e 0 ? default_.accelerators()[0].id() : id;\n        });\n\n        final var defaultGetDomains = GaFunctions.getDomains(GetDomainsArgs.builder()\n            .acceleratorId(acceleratorIdLocals)\n            .domain(\"your_domain\")\n            .build());\n\n        ctx.export(\"alicloudGaDomainExampleId\", defaultGetDomains.domains()[0].id());\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDomains.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the global acceleration instance.\n"},"domain":{"type":"string","description":"The accelerated domain name to be added. only top-level domain names are supported, such as 'example.com'.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ga Domain IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`illegal`\" pulumi-lang-dotnet=\"`Illegal`\" pulumi-lang-go=\"`illegal`\" pulumi-lang-python=\"`illegal`\" pulumi-lang-yaml=\"`illegal`\" pulumi-lang-java=\"`illegal`\"\u003e`illegal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`unknown`\" pulumi-lang-dotnet=\"`Unknown`\" pulumi-lang-go=\"`unknown`\" pulumi-lang-python=\"`unknown`\" pulumi-lang-yaml=\"`unknown`\" pulumi-lang-java=\"`unknown`\"\u003e`unknown`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDomains.\n","properties":{"acceleratorId":{"description":"The ID of the global acceleration instance.\n","type":"string"},"domain":{"description":"The accelerated domain name to be added.\n","type":"string"},"domains":{"description":"A list of Domain Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getDomainsDomain:getDomainsDomain"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"description":"The status of the resource\n","type":"string"}},"required":["domains","ids","id"],"type":"object"}},"alicloud:ga/getEndpointGroupIpAddressCidrBlocks:getEndpointGroupIpAddressCidrBlocks":{"description":"This data source provides the Global Accelerator (GA) Endpoint Group Ip Address Cidr Blocks of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.213.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ga.getEndpointGroupIpAddressCidrBlocks({\n    endpointGroupRegion: \"cn-hangzhou\",\n});\nexport const gaEndpointGroupIpAddressCidrBlocksEndpointGroupRegion = _default.then(_default =\u003e _default.endpointGroupIpAddressCidrBlocks?.[0]?.endpointGroupRegion);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ga.get_endpoint_group_ip_address_cidr_blocks(endpoint_group_region=\"cn-hangzhou\")\npulumi.export(\"gaEndpointGroupIpAddressCidrBlocksEndpointGroupRegion\", default.endpoint_group_ip_address_cidr_blocks[0].endpoint_group_region)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ga.GetEndpointGroupIpAddressCidrBlocks.Invoke(new()\n    {\n        EndpointGroupRegion = \"cn-hangzhou\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gaEndpointGroupIpAddressCidrBlocksEndpointGroupRegion\"] = @default.Apply(@default =\u003e @default.Apply(getEndpointGroupIpAddressCidrBlocksResult =\u003e getEndpointGroupIpAddressCidrBlocksResult.EndpointGroupIpAddressCidrBlocks[0]?.EndpointGroupRegion)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ga.GetEndpointGroupIpAddressCidrBlocks(ctx, \u0026ga.GetEndpointGroupIpAddressCidrBlocksArgs{\n\t\t\tEndpointGroupRegion: \"cn-hangzhou\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gaEndpointGroupIpAddressCidrBlocksEndpointGroupRegion\", _default.EndpointGroupIpAddressCidrBlocks[0].EndpointGroupRegion)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetEndpointGroupIpAddressCidrBlocksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = GaFunctions.getEndpointGroupIpAddressCidrBlocks(GetEndpointGroupIpAddressCidrBlocksArgs.builder()\n            .endpointGroupRegion(\"cn-hangzhou\")\n            .build());\n\n        ctx.export(\"gaEndpointGroupIpAddressCidrBlocksEndpointGroupRegion\", default_.endpointGroupIpAddressCidrBlocks()[0].endpointGroupRegion());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ga:getEndpointGroupIpAddressCidrBlocks\n      arguments:\n        endpointGroupRegion: cn-hangzhou\noutputs:\n  gaEndpointGroupIpAddressCidrBlocksEndpointGroupRegion: ${default.endpointGroupIpAddressCidrBlocks[0].endpointGroupRegion}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEndpointGroupIpAddressCidrBlocks.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator (GA) instance.\n"},"endpointGroupRegion":{"type":"string","description":"The region ID of the endpoint group.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["endpointGroupRegion"]},"outputs":{"description":"A collection of values returned by getEndpointGroupIpAddressCidrBlocks.\n","properties":{"acceleratorId":{"type":"string"},"endpointGroupIpAddressCidrBlocks":{"description":"A list of Endpoint Group Ip Address Cidr Blocks. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getEndpointGroupIpAddressCidrBlocksEndpointGroupIpAddressCidrBlock:getEndpointGroupIpAddressCidrBlocksEndpointGroupIpAddressCidrBlock"},"type":"array"},"endpointGroupRegion":{"description":"The region ID of the endpoint group.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"}},"required":["endpointGroupIpAddressCidrBlocks","endpointGroupRegion","id"],"type":"object"}},"alicloud:ga/getEndpointGroups:getEndpointGroups":{"description":"This data source provides the Global Accelerator (GA) Endpoint Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.113.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst region = config.get(\"region\") || \"cn-hangzhou\";\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.ga.getAccelerators({\n    status: \"active\",\n});\nconst defaultBandwidthPackage = new alicloud.ga.BandwidthPackage(\"default\", {\n    bandwidth: 100,\n    type: \"Basic\",\n    bandwidthType: \"Basic\",\n    paymentType: \"PayAsYouGo\",\n    billingType: \"PayBy95\",\n    ratio: 30,\n    bandwidthPackageName: name,\n    autoPay: true,\n    autoUseCoupon: true,\n});\nconst defaultBandwidthPackageAttachment = new alicloud.ga.BandwidthPackageAttachment(\"default\", {\n    acceleratorId: _default.then(_default =\u003e _default.ids?.[0]),\n    bandwidthPackageId: defaultBandwidthPackage.id,\n});\nconst defaultListener = new alicloud.ga.Listener(\"default\", {\n    acceleratorId: defaultBandwidthPackageAttachment.acceleratorId,\n    clientAffinity: \"SOURCE_IP\",\n    protocol: \"UDP\",\n    name: name,\n    portRanges: [{\n        fromPort: 60,\n        toPort: 70,\n    }],\n});\nconst defaultEipAddress = new alicloud.ecs.EipAddress(\"default\", {\n    bandwidth: \"10\",\n    internetChargeType: \"PayByBandwidth\",\n    addressName: name,\n});\nconst defaultEndpointGroup = new alicloud.ga.EndpointGroup(\"default\", {\n    acceleratorId: defaultListener.acceleratorId,\n    listenerId: defaultListener.id,\n    description: name,\n    name: name,\n    thresholdCount: 4,\n    trafficPercentage: 20,\n    endpointGroupRegion: \"cn-hangzhou\",\n    healthCheckIntervalSeconds: 3,\n    healthCheckPath: \"/healthcheck\",\n    healthCheckPort: 9999,\n    healthCheckProtocol: \"http\",\n    portOverrides: {\n        endpointPort: 10,\n        listenerPort: 60,\n    },\n    endpointConfigurations: [{\n        endpoint: defaultEipAddress.ipAddress,\n        type: \"PublicIp\",\n        weight: 20,\n    }],\n});\nconst defaultGetEndpointGroups = alicloud.ga.getEndpointGroupsOutput({\n    acceleratorId: defaultEndpointGroup.acceleratorId,\n    ids: [defaultEndpointGroup.id],\n});\nexport const firstGaEndpointGroupId = defaultGetEndpointGroups.apply(defaultGetEndpointGroups =\u003e defaultGetEndpointGroups.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nregion = config.get(\"region\")\nif region is None:\n    region = \"cn-hangzhou\"\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.ga.get_accelerators(status=\"active\")\ndefault_bandwidth_package = alicloud.ga.BandwidthPackage(\"default\",\n    bandwidth=100,\n    type=\"Basic\",\n    bandwidth_type=\"Basic\",\n    payment_type=\"PayAsYouGo\",\n    billing_type=\"PayBy95\",\n    ratio=30,\n    bandwidth_package_name=name,\n    auto_pay=True,\n    auto_use_coupon=True)\ndefault_bandwidth_package_attachment = alicloud.ga.BandwidthPackageAttachment(\"default\",\n    accelerator_id=default.ids[0],\n    bandwidth_package_id=default_bandwidth_package.id)\ndefault_listener = alicloud.ga.Listener(\"default\",\n    accelerator_id=default_bandwidth_package_attachment.accelerator_id,\n    client_affinity=\"SOURCE_IP\",\n    protocol=\"UDP\",\n    name=name,\n    port_ranges=[{\n        \"from_port\": 60,\n        \"to_port\": 70,\n    }])\ndefault_eip_address = alicloud.ecs.EipAddress(\"default\",\n    bandwidth=\"10\",\n    internet_charge_type=\"PayByBandwidth\",\n    address_name=name)\ndefault_endpoint_group = alicloud.ga.EndpointGroup(\"default\",\n    accelerator_id=default_listener.accelerator_id,\n    listener_id=default_listener.id,\n    description=name,\n    name=name,\n    threshold_count=4,\n    traffic_percentage=20,\n    endpoint_group_region=\"cn-hangzhou\",\n    health_check_interval_seconds=3,\n    health_check_path=\"/healthcheck\",\n    health_check_port=9999,\n    health_check_protocol=\"http\",\n    port_overrides={\n        \"endpoint_port\": 10,\n        \"listener_port\": 60,\n    },\n    endpoint_configurations=[{\n        \"endpoint\": default_eip_address.ip_address,\n        \"type\": \"PublicIp\",\n        \"weight\": 20,\n    }])\ndefault_get_endpoint_groups = alicloud.ga.get_endpoint_groups_output(accelerator_id=default_endpoint_group.accelerator_id,\n    ids=[default_endpoint_group.id])\npulumi.export(\"firstGaEndpointGroupId\", default_get_endpoint_groups.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var region = config.Get(\"region\") ?? \"cn-hangzhou\";\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.Ga.GetAccelerators.Invoke(new()\n    {\n        Status = \"active\",\n    });\n\n    var defaultBandwidthPackage = new AliCloud.Ga.BandwidthPackage(\"default\", new()\n    {\n        Bandwidth = 100,\n        Type = \"Basic\",\n        BandwidthType = \"Basic\",\n        PaymentType = \"PayAsYouGo\",\n        BillingType = \"PayBy95\",\n        Ratio = 30,\n        BandwidthPackageName = name,\n        AutoPay = true,\n        AutoUseCoupon = true,\n    });\n\n    var defaultBandwidthPackageAttachment = new AliCloud.Ga.BandwidthPackageAttachment(\"default\", new()\n    {\n        AcceleratorId = @default.Apply(@default =\u003e @default.Apply(getAcceleratorsResult =\u003e getAcceleratorsResult.Ids[0])),\n        BandwidthPackageId = defaultBandwidthPackage.Id,\n    });\n\n    var defaultListener = new AliCloud.Ga.Listener(\"default\", new()\n    {\n        AcceleratorId = defaultBandwidthPackageAttachment.AcceleratorId,\n        ClientAffinity = \"SOURCE_IP\",\n        Protocol = \"UDP\",\n        Name = name,\n        PortRanges = new[]\n        {\n            new AliCloud.Ga.Inputs.ListenerPortRangeArgs\n            {\n                FromPort = 60,\n                ToPort = 70,\n            },\n        },\n    });\n\n    var defaultEipAddress = new AliCloud.Ecs.EipAddress(\"default\", new()\n    {\n        Bandwidth = \"10\",\n        InternetChargeType = \"PayByBandwidth\",\n        AddressName = name,\n    });\n\n    var defaultEndpointGroup = new AliCloud.Ga.EndpointGroup(\"default\", new()\n    {\n        AcceleratorId = defaultListener.AcceleratorId,\n        ListenerId = defaultListener.Id,\n        Description = name,\n        Name = name,\n        ThresholdCount = 4,\n        TrafficPercentage = 20,\n        EndpointGroupRegion = \"cn-hangzhou\",\n        HealthCheckIntervalSeconds = 3,\n        HealthCheckPath = \"/healthcheck\",\n        HealthCheckPort = 9999,\n        HealthCheckProtocol = \"http\",\n        PortOverrides = new AliCloud.Ga.Inputs.EndpointGroupPortOverridesArgs\n        {\n            EndpointPort = 10,\n            ListenerPort = 60,\n        },\n        EndpointConfigurations = new[]\n        {\n            new AliCloud.Ga.Inputs.EndpointGroupEndpointConfigurationArgs\n            {\n                Endpoint = defaultEipAddress.IpAddress,\n                Type = \"PublicIp\",\n                Weight = 20,\n            },\n        },\n    });\n\n    var defaultGetEndpointGroups = AliCloud.Ga.GetEndpointGroups.Invoke(new()\n    {\n        AcceleratorId = defaultEndpointGroup.AcceleratorId,\n        Ids = new[]\n        {\n            defaultEndpointGroup.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstGaEndpointGroupId\"] = defaultGetEndpointGroups.Apply(getEndpointGroupsResult =\u003e getEndpointGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tregion := \"cn-hangzhou\"\n\t\tif param := cfg.Get(\"region\"); param != \"\" {\n\t\t\tregion = param\n\t\t}\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := ga.GetAccelerators(ctx, \u0026ga.GetAcceleratorsArgs{\n\t\t\tStatus: pulumi.StringRef(\"active\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackage, err := ga.NewBandwidthPackage(ctx, \"default\", \u0026ga.BandwidthPackageArgs{\n\t\t\tBandwidth:            pulumi.Int(100),\n\t\t\tType:                 pulumi.String(\"Basic\"),\n\t\t\tBandwidthType:        pulumi.String(\"Basic\"),\n\t\t\tPaymentType:          pulumi.String(\"PayAsYouGo\"),\n\t\t\tBillingType:          pulumi.String(\"PayBy95\"),\n\t\t\tRatio:                pulumi.Int(30),\n\t\t\tBandwidthPackageName: pulumi.String(name),\n\t\t\tAutoPay:              pulumi.Bool(true),\n\t\t\tAutoUseCoupon:        pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultBandwidthPackageAttachment, err := ga.NewBandwidthPackageAttachment(ctx, \"default\", \u0026ga.BandwidthPackageAttachmentArgs{\n\t\t\tAcceleratorId:      pulumi.String(_default.Ids[0]),\n\t\t\tBandwidthPackageId: defaultBandwidthPackage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultListener, err := ga.NewListener(ctx, \"default\", \u0026ga.ListenerArgs{\n\t\t\tAcceleratorId:  defaultBandwidthPackageAttachment.AcceleratorId,\n\t\t\tClientAffinity: pulumi.String(\"SOURCE_IP\"),\n\t\t\tProtocol:       pulumi.String(\"UDP\"),\n\t\t\tName:           pulumi.String(name),\n\t\t\tPortRanges: ga.ListenerPortRangeArray{\n\t\t\t\t\u0026ga.ListenerPortRangeArgs{\n\t\t\t\t\tFromPort: pulumi.Int(60),\n\t\t\t\t\tToPort:   pulumi.Int(70),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEipAddress, err := ecs.NewEipAddress(ctx, \"default\", \u0026ecs.EipAddressArgs{\n\t\t\tBandwidth:          pulumi.String(\"10\"),\n\t\t\tInternetChargeType: pulumi.String(\"PayByBandwidth\"),\n\t\t\tAddressName:        pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEndpointGroup, err := ga.NewEndpointGroup(ctx, \"default\", \u0026ga.EndpointGroupArgs{\n\t\t\tAcceleratorId:              defaultListener.AcceleratorId,\n\t\t\tListenerId:                 defaultListener.ID(),\n\t\t\tDescription:                pulumi.String(name),\n\t\t\tName:                       pulumi.String(name),\n\t\t\tThresholdCount:             pulumi.Int(4),\n\t\t\tTrafficPercentage:          pulumi.Int(20),\n\t\t\tEndpointGroupRegion:        pulumi.String(\"cn-hangzhou\"),\n\t\t\tHealthCheckIntervalSeconds: pulumi.Int(3),\n\t\t\tHealthCheckPath:            pulumi.String(\"/healthcheck\"),\n\t\t\tHealthCheckPort:            pulumi.Int(9999),\n\t\t\tHealthCheckProtocol:        pulumi.String(\"http\"),\n\t\t\tPortOverrides: \u0026ga.EndpointGroupPortOverridesArgs{\n\t\t\t\tEndpointPort: pulumi.Int(10),\n\t\t\t\tListenerPort: pulumi.Int(60),\n\t\t\t},\n\t\t\tEndpointConfigurations: ga.EndpointGroupEndpointConfigurationArray{\n\t\t\t\t\u0026ga.EndpointGroupEndpointConfigurationArgs{\n\t\t\t\t\tEndpoint: defaultEipAddress.IpAddress,\n\t\t\t\t\tType:     pulumi.String(\"PublicIp\"),\n\t\t\t\t\tWeight:   pulumi.Int(20),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetEndpointGroups := ga.GetEndpointGroupsOutput(ctx, ga.GetEndpointGroupsOutputArgs{\n\t\t\tAcceleratorId: defaultEndpointGroup.AcceleratorId,\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultEndpointGroup.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"firstGaEndpointGroupId\", defaultGetEndpointGroups.ApplyT(func(defaultGetEndpointGroups ga.GetEndpointGroupsResult) (*string, error) {\n\t\t\treturn \u0026defaultGetEndpointGroups.Groups[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetAcceleratorsArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackage;\nimport com.pulumi.alicloud.ga.BandwidthPackageArgs;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachment;\nimport com.pulumi.alicloud.ga.BandwidthPackageAttachmentArgs;\nimport com.pulumi.alicloud.ga.Listener;\nimport com.pulumi.alicloud.ga.ListenerArgs;\nimport com.pulumi.alicloud.ga.inputs.ListenerPortRangeArgs;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAddressArgs;\nimport com.pulumi.alicloud.ga.EndpointGroup;\nimport com.pulumi.alicloud.ga.EndpointGroupArgs;\nimport com.pulumi.alicloud.ga.inputs.EndpointGroupPortOverridesArgs;\nimport com.pulumi.alicloud.ga.inputs.EndpointGroupEndpointConfigurationArgs;\nimport com.pulumi.alicloud.ga.inputs.GetEndpointGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var region = config.get(\"region\").orElse(\"cn-hangzhou\");\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = GaFunctions.getAccelerators(GetAcceleratorsArgs.builder()\n            .status(\"active\")\n            .build());\n\n        var defaultBandwidthPackage = new BandwidthPackage(\"defaultBandwidthPackage\", BandwidthPackageArgs.builder()\n            .bandwidth(100)\n            .type(\"Basic\")\n            .bandwidthType(\"Basic\")\n            .paymentType(\"PayAsYouGo\")\n            .billingType(\"PayBy95\")\n            .ratio(30)\n            .bandwidthPackageName(name)\n            .autoPay(true)\n            .autoUseCoupon(true)\n            .build());\n\n        var defaultBandwidthPackageAttachment = new BandwidthPackageAttachment(\"defaultBandwidthPackageAttachment\", BandwidthPackageAttachmentArgs.builder()\n            .acceleratorId(default_.ids()[0])\n            .bandwidthPackageId(defaultBandwidthPackage.id())\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .acceleratorId(defaultBandwidthPackageAttachment.acceleratorId())\n            .clientAffinity(\"SOURCE_IP\")\n            .protocol(\"UDP\")\n            .name(name)\n            .portRanges(ListenerPortRangeArgs.builder()\n                .fromPort(60)\n                .toPort(70)\n                .build())\n            .build());\n\n        var defaultEipAddress = new EipAddress(\"defaultEipAddress\", EipAddressArgs.builder()\n            .bandwidth(\"10\")\n            .internetChargeType(\"PayByBandwidth\")\n            .addressName(name)\n            .build());\n\n        var defaultEndpointGroup = new EndpointGroup(\"defaultEndpointGroup\", EndpointGroupArgs.builder()\n            .acceleratorId(defaultListener.acceleratorId())\n            .listenerId(defaultListener.id())\n            .description(name)\n            .name(name)\n            .thresholdCount(4)\n            .trafficPercentage(20)\n            .endpointGroupRegion(\"cn-hangzhou\")\n            .healthCheckIntervalSeconds(3)\n            .healthCheckPath(\"/healthcheck\")\n            .healthCheckPort(9999)\n            .healthCheckProtocol(\"http\")\n            .portOverrides(EndpointGroupPortOverridesArgs.builder()\n                .endpointPort(10)\n                .listenerPort(60)\n                .build())\n            .endpointConfigurations(EndpointGroupEndpointConfigurationArgs.builder()\n                .endpoint(defaultEipAddress.ipAddress())\n                .type(\"PublicIp\")\n                .weight(20)\n                .build())\n            .build());\n\n        final var defaultGetEndpointGroups = GaFunctions.getEndpointGroups(GetEndpointGroupsArgs.builder()\n            .acceleratorId(defaultEndpointGroup.acceleratorId())\n            .ids(defaultEndpointGroup.id())\n            .build());\n\n        ctx.export(\"firstGaEndpointGroupId\", defaultGetEndpointGroups.applyValue(_defaultGetEndpointGroups -\u003e _defaultGetEndpointGroups.groups()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  region:\n    type: string\n    default: cn-hangzhou\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultBandwidthPackage:\n    type: alicloud:ga:BandwidthPackage\n    name: default\n    properties:\n      bandwidth: 100\n      type: Basic\n      bandwidthType: Basic\n      paymentType: PayAsYouGo\n      billingType: PayBy95\n      ratio: 30\n      bandwidthPackageName: ${name}\n      autoPay: true\n      autoUseCoupon: true\n  defaultBandwidthPackageAttachment:\n    type: alicloud:ga:BandwidthPackageAttachment\n    name: default\n    properties:\n      acceleratorId: ${default.ids[0]}\n      bandwidthPackageId: ${defaultBandwidthPackage.id}\n  defaultListener:\n    type: alicloud:ga:Listener\n    name: default\n    properties:\n      acceleratorId: ${defaultBandwidthPackageAttachment.acceleratorId}\n      clientAffinity: SOURCE_IP\n      protocol: UDP\n      name: ${name}\n      portRanges:\n        - fromPort: '60'\n          toPort: '70'\n  defaultEipAddress:\n    type: alicloud:ecs:EipAddress\n    name: default\n    properties:\n      bandwidth: '10'\n      internetChargeType: PayByBandwidth\n      addressName: ${name}\n  defaultEndpointGroup:\n    type: alicloud:ga:EndpointGroup\n    name: default\n    properties:\n      acceleratorId: ${defaultListener.acceleratorId}\n      listenerId: ${defaultListener.id}\n      description: ${name}\n      name: ${name}\n      thresholdCount: 4\n      trafficPercentage: 20\n      endpointGroupRegion: cn-hangzhou\n      healthCheckIntervalSeconds: '3'\n      healthCheckPath: /healthcheck\n      healthCheckPort: '9999'\n      healthCheckProtocol: http\n      portOverrides:\n        endpointPort: '10'\n        listenerPort: '60'\n      endpointConfigurations:\n        - endpoint: ${defaultEipAddress.ipAddress}\n          type: PublicIp\n          weight: '20'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ga:getAccelerators\n      arguments:\n        status: active\n  defaultGetEndpointGroups:\n    fn::invoke:\n      function: alicloud:ga:getEndpointGroups\n      arguments:\n        acceleratorId: ${defaultEndpointGroup.acceleratorId}\n        ids:\n          - ${defaultEndpointGroup.id}\noutputs:\n  firstGaEndpointGroupId: ${defaultGetEndpointGroups.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEndpointGroups.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator instance to which the endpoint group will be added.\n"},"endpointGroupType":{"type":"string","description":"The endpoint group type. Default value: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`virtual`\" pulumi-lang-dotnet=\"`Virtual`\" pulumi-lang-go=\"`virtual`\" pulumi-lang-python=\"`virtual`\" pulumi-lang-yaml=\"`virtual`\" pulumi-lang-java=\"`virtual`\"\u003e`virtual`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Endpoint Group IDs.\n"},"listenerId":{"type":"string","description":"The ID of the listener that is associated with the endpoint group.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Endpoint Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the endpoint group. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`creating`\" pulumi-lang-dotnet=\"`Creating`\" pulumi-lang-go=\"`creating`\" pulumi-lang-python=\"`creating`\" pulumi-lang-yaml=\"`creating`\" pulumi-lang-java=\"`creating`\"\u003e`creating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e.\n"}},"type":"object","required":["acceleratorId"]},"outputs":{"description":"A collection of values returned by getEndpointGroups.\n","properties":{"acceleratorId":{"type":"string"},"endpointGroupType":{"type":"string"},"groups":{"description":"A list of Ga Endpoint Groups. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getEndpointGroupsGroup:getEndpointGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"listenerId":{"description":"The ID of the listener that is associated with the endpoint group.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Endpoint Group names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the endpoint group.\n","type":"string"}},"required":["acceleratorId","groups","ids","names","id"],"type":"object"}},"alicloud:ga/getForwardingRules:getForwardingRules":{"description":"This data source provides the Global Accelerator (GA) Forwarding Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.120.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ga.getForwardingRules({\n    acceleratorId: \"example_value\",\n    listenerId: \"example_value\",\n    ids: [\"example_value\"],\n});\nexport const firstGaForwardingRuleId = example.then(example =\u003e example.forwardingRules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ga.get_forwarding_rules(accelerator_id=\"example_value\",\n    listener_id=\"example_value\",\n    ids=[\"example_value\"])\npulumi.export(\"firstGaForwardingRuleId\", example.forwarding_rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ga.GetForwardingRules.Invoke(new()\n    {\n        AcceleratorId = \"example_value\",\n        ListenerId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstGaForwardingRuleId\"] = example.Apply(getForwardingRulesResult =\u003e getForwardingRulesResult.ForwardingRules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ga.GetForwardingRules(ctx, \u0026ga.GetForwardingRulesArgs{\n\t\t\tAcceleratorId: \"example_value\",\n\t\t\tListenerId:    \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstGaForwardingRuleId\", example.ForwardingRules[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetForwardingRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = GaFunctions.getForwardingRules(GetForwardingRulesArgs.builder()\n            .acceleratorId(\"example_value\")\n            .listenerId(\"example_value\")\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"firstGaForwardingRuleId\", example.forwardingRules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ga:getForwardingRules\n      arguments:\n        acceleratorId: example_value\n        listenerId: example_value\n        ids:\n          - example_value\noutputs:\n  firstGaForwardingRuleId: ${example.forwardingRules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getForwardingRules.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Forwarding Rule IDs.\n"},"listenerId":{"type":"string","description":"The ID of the listener.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the acceleration region. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e.\n"}},"type":"object","required":["acceleratorId","listenerId"]},"outputs":{"description":"A collection of values returned by getForwardingRules.\n","properties":{"acceleratorId":{"type":"string"},"forwardingRules":{"description":"A list of Ga Forwarding Rules. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getForwardingRulesForwardingRule:getForwardingRulesForwardingRule"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"listenerId":{"description":"The ID of the listener.\n","type":"string"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["acceleratorId","forwardingRules","ids","listenerId","id"],"type":"object"}},"alicloud:ga/getIpSets:getIpSets":{"description":"This data source provides the Global Accelerator (GA) Ip Sets of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.113.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ga.getIpSets({\n    acceleratorId: \"example_value\",\n    ids: [\"example_value\"],\n});\nexport const firstGaIpSetId = example.then(example =\u003e example.sets?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ga.get_ip_sets(accelerator_id=\"example_value\",\n    ids=[\"example_value\"])\npulumi.export(\"firstGaIpSetId\", example.sets[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ga.GetIpSets.Invoke(new()\n    {\n        AcceleratorId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstGaIpSetId\"] = example.Apply(getIpSetsResult =\u003e getIpSetsResult.Sets[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ga.GetIpSets(ctx, \u0026ga.GetIpSetsArgs{\n\t\t\tAcceleratorId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstGaIpSetId\", example.Sets[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetIpSetsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = GaFunctions.getIpSets(GetIpSetsArgs.builder()\n            .acceleratorId(\"example_value\")\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"firstGaIpSetId\", example.sets()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ga:getIpSets\n      arguments:\n        acceleratorId: example_value\n        ids:\n          - example_value\noutputs:\n  firstGaIpSetId: ${example.sets[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpSets.\n","properties":{"acceleratorId":{"type":"string","description":"The ID of the Global Accelerator (GA) instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ip Set IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the acceleration region. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`updating`\" pulumi-lang-dotnet=\"`Updating`\" pulumi-lang-go=\"`updating`\" pulumi-lang-python=\"`updating`\" pulumi-lang-yaml=\"`updating`\" pulumi-lang-java=\"`updating`\"\u003e`updating`\u003c/span\u003e.\n"}},"type":"object","required":["acceleratorId"]},"outputs":{"description":"A collection of values returned by getIpSets.\n","properties":{"acceleratorId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"sets":{"description":"A list of Ga Ip Sets. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getIpSetsSet:getIpSetsSet"},"type":"array"},"status":{"description":"The status of the acceleration region.\n","type":"string"}},"required":["acceleratorId","ids","sets","id"],"type":"object"}},"alicloud:ga/getListeners:getListeners":{"description":"This data source provides the Global Accelerator (GA) Listeners of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.111.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ga.getListeners({\n    acceleratorId: \"example_value\",\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstGaListenerId = example.then(example =\u003e example.listeners?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ga.get_listeners(accelerator_id=\"example_value\",\n    ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstGaListenerId\", example.listeners[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ga.GetListeners.Invoke(new()\n    {\n        AcceleratorId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstGaListenerId\"] = example.Apply(getListenersResult =\u003e getListenersResult.Listeners[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ga\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ga.GetListeners(ctx, \u0026ga.GetListenersArgs{\n\t\t\tAcceleratorId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstGaListenerId\", example.Listeners[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ga.GaFunctions;\nimport com.pulumi.alicloud.ga.inputs.GetListenersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = GaFunctions.getListeners(GetListenersArgs.builder()\n            .acceleratorId(\"example_value\")\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstGaListenerId\", example.listeners()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ga:getListeners\n      arguments:\n        acceleratorId: example_value\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstGaListenerId: ${example.listeners[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getListeners.\n","properties":{"acceleratorId":{"type":"string","description":"The accelerator id.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Listener IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Listener name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the listener. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`creating`\" pulumi-lang-dotnet=\"`Creating`\" pulumi-lang-go=\"`creating`\" pulumi-lang-python=\"`creating`\" pulumi-lang-yaml=\"`creating`\" pulumi-lang-java=\"`creating`\"\u003e`creating`\u003c/span\u003e.\n"}},"type":"object","required":["acceleratorId"]},"outputs":{"description":"A collection of values returned by getListeners.\n","properties":{"acceleratorId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"listeners":{"description":"A list of Ga Listeners. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ga/getListenersListener:getListenersListener"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Listener names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the listener.\n","type":"string"}},"required":["acceleratorId","ids","listeners","names","id"],"type":"object"}},"alicloud:governance/getBaselines:getBaselines":{"description":"This data source provides Governance Baseline available to the user.[What is Baseline](https://next.api.aliyun.com/document/governance/2021-01-20/CreateAccountFactoryBaseline)\n\n\u003e **NOTE:** Available since v1.228.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst itemPasswordPolicy = config.get(\"itemPasswordPolicy\") || \"ACS-BP_ACCOUNT_FACTORY_RAM_USER_PASSWORD_POLICY\";\nconst itemServices = config.get(\"itemServices\") || \"ACS-BP_ACCOUNT_FACTORY_SUBSCRIBE_SERVICES\";\nconst itemRamSecurity = config.get(\"itemRamSecurity\") || \"ACS-BP_ACCOUNT_FACTORY_RAM_SECURITY_PREFERENCE\";\nconst defaultBaseline = new alicloud.governance.Baseline(\"default\", {\n    baselineItems: [{\n        version: \"1.0\",\n        name: itemPasswordPolicy,\n        config: JSON.stringify({\n            MinimumPasswordLength: 8,\n            RequireLowercaseCharacters: true,\n            RequireUppercaseCharacters: true,\n            RequireNumbers: true,\n            RequireSymbols: true,\n            MaxPasswordAge: 0,\n            HardExpiry: false,\n            PasswordReusePrevention: 0,\n            MaxLoginAttempts: 0,\n        }),\n    }],\n    description: name,\n    baselineName: `${name}-${defaultInteger.result}`,\n});\nconst _default = pulumi.all([defaultBaseline.id, defaultBaseline.baselineName]).apply(([id, baselineName]) =\u003e alicloud.governance.getBaselinesOutput({\n    ids: [id],\n    nameRegex: baselineName,\n}));\nexport const alicloudGovernanceBaselineExampleId = _default.apply(_default =\u003e _default.baselines?.[0]?.baselineId);\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\nitem_password_policy = config.get(\"itemPasswordPolicy\")\nif item_password_policy is None:\n    item_password_policy = \"ACS-BP_ACCOUNT_FACTORY_RAM_USER_PASSWORD_POLICY\"\nitem_services = config.get(\"itemServices\")\nif item_services is None:\n    item_services = \"ACS-BP_ACCOUNT_FACTORY_SUBSCRIBE_SERVICES\"\nitem_ram_security = config.get(\"itemRamSecurity\")\nif item_ram_security is None:\n    item_ram_security = \"ACS-BP_ACCOUNT_FACTORY_RAM_SECURITY_PREFERENCE\"\ndefault_baseline = alicloud.governance.Baseline(\"default\",\n    baseline_items=[{\n        \"version\": \"1.0\",\n        \"name\": item_password_policy,\n        \"config\": json.dumps({\n            \"MinimumPasswordLength\": 8,\n            \"RequireLowercaseCharacters\": True,\n            \"RequireUppercaseCharacters\": True,\n            \"RequireNumbers\": True,\n            \"RequireSymbols\": True,\n            \"MaxPasswordAge\": 0,\n            \"HardExpiry\": False,\n            \"PasswordReusePrevention\": 0,\n            \"MaxLoginAttempts\": 0,\n        }),\n    }],\n    description=name,\n    baseline_name=f\"{name}-{default_integer['result']}\")\ndefault = pulumi.Output.all(\n    id=default_baseline.id,\n    baseline_name=default_baseline.baseline_name\n).apply(lambda resolved_outputs: alicloud.governance.get_baselines_output(ids=[resolved_outputs['id']],\n    name_regex=resolved_outputs['baseline_name']))\n\npulumi.export(\"alicloudGovernanceBaselineExampleId\", default.baselines[0].baseline_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var itemPasswordPolicy = config.Get(\"itemPasswordPolicy\") ?? \"ACS-BP_ACCOUNT_FACTORY_RAM_USER_PASSWORD_POLICY\";\n    var itemServices = config.Get(\"itemServices\") ?? \"ACS-BP_ACCOUNT_FACTORY_SUBSCRIBE_SERVICES\";\n    var itemRamSecurity = config.Get(\"itemRamSecurity\") ?? \"ACS-BP_ACCOUNT_FACTORY_RAM_SECURITY_PREFERENCE\";\n    var defaultBaseline = new AliCloud.Governance.Baseline(\"default\", new()\n    {\n        BaselineItems = new[]\n        {\n            new AliCloud.Governance.Inputs.BaselineBaselineItemArgs\n            {\n                Version = \"1.0\",\n                Name = itemPasswordPolicy,\n                Config = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"MinimumPasswordLength\"] = 8,\n                    [\"RequireLowercaseCharacters\"] = true,\n                    [\"RequireUppercaseCharacters\"] = true,\n                    [\"RequireNumbers\"] = true,\n                    [\"RequireSymbols\"] = true,\n                    [\"MaxPasswordAge\"] = 0,\n                    [\"HardExpiry\"] = false,\n                    [\"PasswordReusePrevention\"] = 0,\n                    [\"MaxLoginAttempts\"] = 0,\n                }),\n            },\n        },\n        Description = name,\n        BaselineName = $\"{name}-{defaultInteger.Result}\",\n    });\n\n    var @default = AliCloud.Governance.GetBaselines.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultBaseline.Id,\n        },\n        NameRegex = defaultBaseline.BaselineName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudGovernanceBaselineExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getBaselinesResult =\u003e getBaselinesResult.Baselines[0]?.BaselineId)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/governance\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform_example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMin: 10000,\nMax: 99999,\n})\nif err != nil {\nreturn err\n}\nitemPasswordPolicy := \"ACS-BP_ACCOUNT_FACTORY_RAM_USER_PASSWORD_POLICY\";\nif param := cfg.Get(\"itemPasswordPolicy\"); param != \"\"{\nitemPasswordPolicy = param\n}\nitemServices := \"ACS-BP_ACCOUNT_FACTORY_SUBSCRIBE_SERVICES\";\nif param := cfg.Get(\"itemServices\"); param != \"\"{\nitemServices = param\n}\nitemRamSecurity := \"ACS-BP_ACCOUNT_FACTORY_RAM_SECURITY_PREFERENCE\";\nif param := cfg.Get(\"itemRamSecurity\"); param != \"\"{\nitemRamSecurity = param\n}\ntmpJSON0, err := json.Marshal(map[string]interface{}{\n\"MinimumPasswordLength\": 8,\n\"RequireLowercaseCharacters\": true,\n\"RequireUppercaseCharacters\": true,\n\"RequireNumbers\": true,\n\"RequireSymbols\": true,\n\"MaxPasswordAge\": 0,\n\"HardExpiry\": false,\n\"PasswordReusePrevention\": 0,\n\"MaxLoginAttempts\": 0,\n})\nif err != nil {\nreturn err\n}\njson0 := string(tmpJSON0)\ndefaultBaseline, err := governance.NewBaseline(ctx, \"default\", \u0026governance.BaselineArgs{\nBaselineItems: governance.BaselineBaselineItemArray{\n\u0026governance.BaselineBaselineItemArgs{\nVersion: pulumi.String(\"1.0\"),\nName: pulumi.String(itemPasswordPolicy),\nConfig: pulumi.String(json0),\n},\n},\nDescription: pulumi.String(name),\nBaselineName: pulumi.Sprintf(\"%v-%v\", name, defaultInteger.Result),\n})\nif err != nil {\nreturn err\n}\n_default := pulumi.All(defaultBaseline.ID(),defaultBaseline.BaselineName).ApplyT(func(_args []interface{}) (governance.GetBaselinesResult, error) {\nid := _args[0].(string)\nbaselineName := _args[1].(*string)\nreturn governance.GetBaselinesResult(interface{}(governance.GetBaselines(ctx, \u0026governance.GetBaselinesArgs{\nIds: []string{\nid,\n},\nNameRegex: pulumi.StringRef(pulumi.StringRef(baselineName)),\n}, nil))), nil\n}).(governance.GetBaselinesResultOutput)\nctx.Export(\"alicloudGovernanceBaselineExampleId\", _default.ApplyT(func(_default governance.GetBaselinesResult) (*string, error) {\nreturn \u0026default.Baselines[0].BaselineId, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.governance.Baseline;\nimport com.pulumi.alicloud.governance.BaselineArgs;\nimport com.pulumi.alicloud.governance.inputs.BaselineBaselineItemArgs;\nimport com.pulumi.alicloud.governance.GovernanceFunctions;\nimport com.pulumi.alicloud.governance.inputs.GetBaselinesArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        final var itemPasswordPolicy = config.get(\"itemPasswordPolicy\").orElse(\"ACS-BP_ACCOUNT_FACTORY_RAM_USER_PASSWORD_POLICY\");\n        final var itemServices = config.get(\"itemServices\").orElse(\"ACS-BP_ACCOUNT_FACTORY_SUBSCRIBE_SERVICES\");\n        final var itemRamSecurity = config.get(\"itemRamSecurity\").orElse(\"ACS-BP_ACCOUNT_FACTORY_RAM_SECURITY_PREFERENCE\");\n        var defaultBaseline = new Baseline(\"defaultBaseline\", BaselineArgs.builder()\n            .baselineItems(BaselineBaselineItemArgs.builder()\n                .version(\"1.0\")\n                .name(itemPasswordPolicy)\n                .config(serializeJson(\n                    jsonObject(\n                        jsonProperty(\"MinimumPasswordLength\", 8),\n                        jsonProperty(\"RequireLowercaseCharacters\", true),\n                        jsonProperty(\"RequireUppercaseCharacters\", true),\n                        jsonProperty(\"RequireNumbers\", true),\n                        jsonProperty(\"RequireSymbols\", true),\n                        jsonProperty(\"MaxPasswordAge\", 0),\n                        jsonProperty(\"HardExpiry\", false),\n                        jsonProperty(\"PasswordReusePrevention\", 0),\n                        jsonProperty(\"MaxLoginAttempts\", 0)\n                    )))\n                .build())\n            .description(name)\n            .baselineName(String.format(\"%s-%s\", name,defaultInteger.result()))\n            .build());\n\n        final var default = Output.tuple(defaultBaseline.id(), defaultBaseline.baselineName()).applyValue(values -\u003e {\n            var id = values.t1;\n            var baselineName = values.t2;\n            return GovernanceFunctions.getBaselines(GetBaselinesArgs.builder()\n                .ids(id)\n                .nameRegex(baselineName)\n                .build());\n        });\n\n        ctx.export(\"alicloudGovernanceBaselineExampleId\", default_.applyValue(_default_ -\u003e _default_.baselines()[0].baselineId()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\n  itemPasswordPolicy:\n    type: string\n    default: ACS-BP_ACCOUNT_FACTORY_RAM_USER_PASSWORD_POLICY\n  itemServices:\n    type: string\n    default: ACS-BP_ACCOUNT_FACTORY_SUBSCRIBE_SERVICES\n  itemRamSecurity:\n    type: string\n    default: ACS-BP_ACCOUNT_FACTORY_RAM_SECURITY_PREFERENCE\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  defaultBaseline:\n    type: alicloud:governance:Baseline\n    name: default\n    properties:\n      baselineItems:\n        - version: '1.0'\n          name: ${itemPasswordPolicy}\n          config:\n            fn::toJSON:\n              MinimumPasswordLength: 8\n              RequireLowercaseCharacters: true\n              RequireUppercaseCharacters: true\n              RequireNumbers: true\n              RequireSymbols: true\n              MaxPasswordAge: 0\n              HardExpiry: false\n              PasswordReusePrevention: 0\n              MaxLoginAttempts: 0\n      description: ${name}\n      baselineName: ${name}-${defaultInteger.result}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:governance:getBaselines\n      arguments:\n        ids:\n          - ${defaultBaseline.id}\n        nameRegex: ${defaultBaseline.baselineName}\noutputs:\n  alicloudGovernanceBaselineExampleId: ${default.baselines[0].baselineId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBaselines.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Baseline IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBaselines.\n","properties":{"baselines":{"description":"A list of Baseline Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:governance/getBaselinesBaseline:getBaselinesBaseline"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Baseline IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Baselines.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["baselines","ids","names","id"],"type":"object"}},"alicloud:gpdb/getAccounts:getAccounts":{"description":"This data source provides the Gpdb Accounts of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.142.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.gpdb.getAccounts({\n    dbInstanceId: \"example_value\",\n    ids: [\n        \"my-Account-1\",\n        \"my-Account-2\",\n    ],\n});\nexport const gpdbAccountId1 = ids.then(ids =\u003e ids.accounts?.[0]?.id);\nconst nameRegex = alicloud.gpdb.getAccounts({\n    dbInstanceId: \"example_value\",\n    nameRegex: \"^my-Account\",\n});\nexport const gpdbAccountId2 = nameRegex.then(nameRegex =\u003e nameRegex.accounts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.gpdb.get_accounts(db_instance_id=\"example_value\",\n    ids=[\n        \"my-Account-1\",\n        \"my-Account-2\",\n    ])\npulumi.export(\"gpdbAccountId1\", ids.accounts[0].id)\nname_regex = alicloud.gpdb.get_accounts(db_instance_id=\"example_value\",\n    name_regex=\"^my-Account\")\npulumi.export(\"gpdbAccountId2\", name_regex.accounts[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Gpdb.GetAccounts.Invoke(new()\n    {\n        DbInstanceId = \"example_value\",\n        Ids = new[]\n        {\n            \"my-Account-1\",\n            \"my-Account-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.Gpdb.GetAccounts.Invoke(new()\n    {\n        DbInstanceId = \"example_value\",\n        NameRegex = \"^my-Account\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gpdbAccountId1\"] = ids.Apply(getAccountsResult =\u003e getAccountsResult.Accounts[0]?.Id),\n        [\"gpdbAccountId2\"] = nameRegex.Apply(getAccountsResult =\u003e getAccountsResult.Accounts[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := gpdb.GetAccounts(ctx, \u0026gpdb.GetAccountsArgs{\n\t\t\tDbInstanceId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"my-Account-1\",\n\t\t\t\t\"my-Account-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gpdbAccountId1\", ids.Accounts[0].Id)\n\t\tnameRegex, err := gpdb.GetAccounts(ctx, \u0026gpdb.GetAccountsArgs{\n\t\t\tDbInstanceId: \"example_value\",\n\t\t\tNameRegex:    pulumi.StringRef(\"^my-Account\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gpdbAccountId2\", nameRegex.Accounts[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.gpdb.GpdbFunctions;\nimport com.pulumi.alicloud.gpdb.inputs.GetAccountsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = GpdbFunctions.getAccounts(GetAccountsArgs.builder()\n            .dbInstanceId(\"example_value\")\n            .ids(            \n                \"my-Account-1\",\n                \"my-Account-2\")\n            .build());\n\n        ctx.export(\"gpdbAccountId1\", ids.accounts()[0].id());\n        final var nameRegex = GpdbFunctions.getAccounts(GetAccountsArgs.builder()\n            .dbInstanceId(\"example_value\")\n            .nameRegex(\"^my-Account\")\n            .build());\n\n        ctx.export(\"gpdbAccountId2\", nameRegex.accounts()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:gpdb:getAccounts\n      arguments:\n        dbInstanceId: example_value\n        ids:\n          - my-Account-1\n          - my-Account-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:gpdb:getAccounts\n      arguments:\n        dbInstanceId: example_value\n        nameRegex: ^my-Account\noutputs:\n  gpdbAccountId1: ${ids.accounts[0].id}\n  gpdbAccountId2: ${nameRegex.accounts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccounts.\n","properties":{"dbInstanceId":{"type":"string","description":"The ID of the instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Account IDs. Its element value is same as Account Name.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Account name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the account. Valid values: `Active`, `Creating` and `Deleting`.\n"}},"type":"object","required":["dbInstanceId"]},"outputs":{"description":"A collection of values returned by getAccounts.\n","properties":{"accounts":{"items":{"$ref":"#/types/alicloud:gpdb/getAccountsAccount:getAccountsAccount"},"type":"array"},"dbInstanceId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["accounts","dbInstanceId","ids","names","id"],"type":"object"}},"alicloud:gpdb/getDataBackups:getDataBackups":{"description":"This data source provides Gpdb Data Backup available to the user.[What is Data Backup](https://www.alibabacloud.com/help/en/)\n\n\u003e **NOTE:** Available since v1.231.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.gpdb.getInstances({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetDataBackups = _default.then(_default =\u003e alicloud.gpdb.getDataBackups({\n    dbInstanceId: _default.ids?.[0],\n}));\nexport const alicloudGpdbDataBackupExampleId = defaultGetDataBackups.then(defaultGetDataBackups =\u003e defaultGetDataBackups.backups?.[0]?.dbInstanceId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.gpdb.get_instances(name_regex=\"^default-NODELETING$\")\ndefault_get_data_backups = alicloud.gpdb.get_data_backups(db_instance_id=default.ids[0])\npulumi.export(\"alicloudGpdbDataBackupExampleId\", default_get_data_backups.backups[0].db_instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Gpdb.GetInstances.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetDataBackups = AliCloud.Gpdb.GetDataBackups.Invoke(new()\n    {\n        DbInstanceId = @default.Apply(getInstancesResult =\u003e getInstancesResult.Ids[0]),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudGpdbDataBackupExampleId\"] = defaultGetDataBackups.Apply(getDataBackupsResult =\u003e getDataBackupsResult.Backups[0]?.DbInstanceId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := gpdb.GetInstances(ctx, \u0026gpdb.GetInstancesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetDataBackups, err := gpdb.GetDataBackups(ctx, \u0026gpdb.GetDataBackupsArgs{\n\t\t\tDbInstanceId: _default.Ids[0],\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudGpdbDataBackupExampleId\", defaultGetDataBackups.Backups[0].DbInstanceId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.gpdb.GpdbFunctions;\nimport com.pulumi.alicloud.gpdb.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.gpdb.inputs.GetDataBackupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = GpdbFunctions.getInstances(GetInstancesArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetDataBackups = GpdbFunctions.getDataBackups(GetDataBackupsArgs.builder()\n            .dbInstanceId(default_.ids()[0])\n            .build());\n\n        ctx.export(\"alicloudGpdbDataBackupExampleId\", defaultGetDataBackups.backups()[0].dbInstanceId());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:gpdb:getInstances\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetDataBackups:\n    fn::invoke:\n      function: alicloud:gpdb:getDataBackups\n      arguments:\n        dbInstanceId: ${default.ids[0]}\noutputs:\n  alicloudGpdbDataBackupExampleId: ${defaultGetDataBackups.backups[0].dbInstanceId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDataBackups.\n","properties":{"backupMode":{"type":"string","description":"Backup mode.Full Backup Value Description:-**Automated**: The system is automatically backed up.-**Manual**: Manual backup.Recovery point value description:-**Automated**: The recovery point after a full backup.-**Manual**: The recovery point triggered manually by the user.-**Period**: The recovery point triggered periodically because of the backup policy.\n"},"dataBackupId":{"type":"string","description":"The first ID of the resource\n"},"dataType":{"type":"string","description":"The backup type. Value Description:-**DATA**: Full backup.-**RESTOREPOI**: Recoverable point.\n"},"dbInstanceId":{"type":"string","description":"The instance ID.\n"},"endTime":{"type":"string","description":"The query end time, which must be greater than the query start time. Format: yyyy-MM-ddTHH:mmZ(UTC time).\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Databackup IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer","description":"Current page number.\n"},"pageSize":{"type":"integer","description":"Number of records per page.\n"},"startTime":{"type":"string","description":"The query start time. Format: yyyy-MM-ddTHH:mmZ(UTC time).\n"},"status":{"type":"string","description":"Backup set status. Value Description:-Success: The backup has been completed.-Failed: Backup Failed.If not, return all.\n"}},"type":"object","required":["dbInstanceId"]},"outputs":{"description":"A collection of values returned by getDataBackups.\n","properties":{"backupMode":{"description":"Backup mode.Full Backup Value Description:-**Automated**: The system is automatically backed up.-**Manual**: Manual backup.Recovery point value description:-**Automated**: The recovery point after a full backup.-**Manual**: The recovery point triggered manually by the user.-**Period**: The recovery point triggered periodically because of the backup policy.\n","type":"string"},"backups":{"description":"A list of Data Backup Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:gpdb/getDataBackupsBackup:getDataBackupsBackup"},"type":"array"},"dataBackupId":{"type":"string"},"dataType":{"description":"The backup type. Value Description:-**DATA**: Full backup.-**RESTOREPOI**: Recoverable point.\n","type":"string"},"dbInstanceId":{"description":"The instance ID.\n","type":"string"},"endTime":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Data Backup IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"startTime":{"type":"string"},"status":{"description":"Backup set status. Value Description:-Success: The backup has been completed.-Failed: Backup Failed.If not, return all.\n","type":"string"}},"required":["backups","dbInstanceId","ids","id"],"type":"object"}},"alicloud:gpdb/getDbInstancePlans:getDbInstancePlans":{"description":"This data source provides the Gpdb Db Instance Plans of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.189.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.gpdb.getDbInstancePlans({\n    dbInstanceId: \"example_value\",\n    ids: [\"example_value\"],\n});\nexport const gpdbDbInstancePlanId1 = ids.then(ids =\u003e ids.plans?.[0]?.id);\nconst nameRegex = alicloud.gpdb.getDbInstancePlans({\n    dbInstanceId: \"example_value\",\n    nameRegex: \"^my-DBInstancePlan\",\n});\nexport const gpdbDbInstancePlanId2 = nameRegex.then(nameRegex =\u003e nameRegex.plans?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.gpdb.get_db_instance_plans(db_instance_id=\"example_value\",\n    ids=[\"example_value\"])\npulumi.export(\"gpdbDbInstancePlanId1\", ids.plans[0].id)\nname_regex = alicloud.gpdb.get_db_instance_plans(db_instance_id=\"example_value\",\n    name_regex=\"^my-DBInstancePlan\")\npulumi.export(\"gpdbDbInstancePlanId2\", name_regex.plans[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Gpdb.GetDbInstancePlans.Invoke(new()\n    {\n        DbInstanceId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    var nameRegex = AliCloud.Gpdb.GetDbInstancePlans.Invoke(new()\n    {\n        DbInstanceId = \"example_value\",\n        NameRegex = \"^my-DBInstancePlan\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gpdbDbInstancePlanId1\"] = ids.Apply(getDbInstancePlansResult =\u003e getDbInstancePlansResult.Plans[0]?.Id),\n        [\"gpdbDbInstancePlanId2\"] = nameRegex.Apply(getDbInstancePlansResult =\u003e getDbInstancePlansResult.Plans[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := gpdb.GetDbInstancePlans(ctx, \u0026gpdb.GetDbInstancePlansArgs{\n\t\t\tDbInstanceId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gpdbDbInstancePlanId1\", ids.Plans[0].Id)\n\t\tnameRegex, err := gpdb.GetDbInstancePlans(ctx, \u0026gpdb.GetDbInstancePlansArgs{\n\t\t\tDbInstanceId: \"example_value\",\n\t\t\tNameRegex:    pulumi.StringRef(\"^my-DBInstancePlan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gpdbDbInstancePlanId2\", nameRegex.Plans[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.gpdb.GpdbFunctions;\nimport com.pulumi.alicloud.gpdb.inputs.GetDbInstancePlansArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = GpdbFunctions.getDbInstancePlans(GetDbInstancePlansArgs.builder()\n            .dbInstanceId(\"example_value\")\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"gpdbDbInstancePlanId1\", ids.plans()[0].id());\n        final var nameRegex = GpdbFunctions.getDbInstancePlans(GetDbInstancePlansArgs.builder()\n            .dbInstanceId(\"example_value\")\n            .nameRegex(\"^my-DBInstancePlan\")\n            .build());\n\n        ctx.export(\"gpdbDbInstancePlanId2\", nameRegex.plans()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:gpdb:getDbInstancePlans\n      arguments:\n        dbInstanceId: example_value\n        ids:\n          - example_value\n  nameRegex:\n    fn::invoke:\n      function: alicloud:gpdb:getDbInstancePlans\n      arguments:\n        dbInstanceId: example_value\n        nameRegex: ^my-DBInstancePlan\noutputs:\n  gpdbDbInstancePlanId1: ${ids.plans[0].id}\n  gpdbDbInstancePlanId2: ${nameRegex.plans[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDbInstancePlans.\n","properties":{"dbInstanceId":{"type":"string","description":"The ID of the Database instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of DB Instance Plan IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by DB Instance Plan name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"planScheduleType":{"type":"string","description":"Plan scheduling type. Valid values: `Postpone`, `Regular`.\n"},"planType":{"type":"string","description":"The type of the Plan. Valid values: `PauseResume`, `Resize`.\n"},"status":{"type":"string","description":"Planning Status. Valid values: \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cancel`\" pulumi-lang-dotnet=\"`Cancel`\" pulumi-lang-go=\"`cancel`\" pulumi-lang-python=\"`cancel`\" pulumi-lang-yaml=\"`cancel`\" pulumi-lang-java=\"`cancel`\"\u003e`cancel`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleted`\" pulumi-lang-dotnet=\"`Deleted`\" pulumi-lang-go=\"`deleted`\" pulumi-lang-python=\"`deleted`\" pulumi-lang-yaml=\"`deleted`\" pulumi-lang-java=\"`deleted`\"\u003e`deleted`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`finished`\" pulumi-lang-dotnet=\"`Finished`\" pulumi-lang-go=\"`finished`\" pulumi-lang-python=\"`finished`\" pulumi-lang-yaml=\"`finished`\" pulumi-lang-java=\"`finished`\"\u003e`finished`\u003c/span\u003e.\n"}},"type":"object","required":["dbInstanceId"]},"outputs":{"description":"A collection of values returned by getDbInstancePlans.\n","properties":{"dbInstanceId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"planScheduleType":{"type":"string"},"planType":{"type":"string"},"plans":{"items":{"$ref":"#/types/alicloud:gpdb/getDbInstancePlansPlan:getDbInstancePlansPlan"},"type":"array"},"status":{"type":"string"}},"required":["dbInstanceId","ids","names","plans","id"],"type":"object"}},"alicloud:gpdb/getInstances:getInstances":{"description":"This data source provides the AnalyticDB for PostgreSQL instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:**  Available in 1.47.0+\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.gpdb.getInstances({});\nexport const gpdbDbInstanceId1 = ids.then(ids =\u003e ids.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.gpdb.get_instances()\npulumi.export(\"gpdbDbInstanceId1\", ids.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Gpdb.GetInstances.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gpdbDbInstanceId1\"] = ids.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := gpdb.GetInstances(ctx, \u0026gpdb.GetInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gpdbDbInstanceId1\", ids.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.gpdb.GpdbFunctions;\nimport com.pulumi.alicloud.gpdb.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = GpdbFunctions.getInstances(GetInstancesArgs.builder()\n            .build());\n\n        ctx.export(\"gpdbDbInstanceId1\", ids.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:gpdb:getInstances\n      arguments: {}\noutputs:\n  gpdbDbInstanceId1: ${ids.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"availabilityZone":{"type":"string","description":"Instance availability zone.\n"},"dbInstanceCategories":{"type":"string","description":"The db instance categories.\n"},"dbInstanceModes":{"type":"string","description":"The db instance modes.\n"},"description":{"type":"string","description":"The description of the instance.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"The ids list of AnalyticDB for PostgreSQL instances.\n"},"instanceNetworkType":{"type":"string","description":"The network type of the instance.\n"},"nameRegex":{"type":"string","description":"A regex string to apply to the instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the enterprise resource group to which the instance belongs.\n"},"status":{"type":"string","description":"The status of the instance. Valid values: `Creating`, `DBInstanceClassChanging`, `DBInstanceNetTypeChanging`, `Deleting`, `EngineVersionUpgrading`, `GuardDBInstanceCreating`, `GuardSwitching`, `Importing`, `ImportingFromOtherInstance`, `Rebooting`, `Restoring`, `Running`, `Transfering`, `TransferingToOtherInstance`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"}},"vswitchId":{"type":"string","description":"Used to retrieve instances belong to specified \u003cspan pulumi-lang-nodejs=\"`vswitch`\" pulumi-lang-dotnet=\"`Vswitch`\" pulumi-lang-go=\"`vswitch`\" pulumi-lang-python=\"`vswitch`\" pulumi-lang-yaml=\"`vswitch`\" pulumi-lang-java=\"`vswitch`\"\u003e`vswitch`\u003c/span\u003e resources.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"availabilityZone":{"type":"string"},"dbInstanceCategories":{"type":"string"},"dbInstanceModes":{"type":"string"},"description":{"type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceNetworkType":{"type":"string"},"instances":{"items":{"$ref":"#/types/alicloud:gpdb/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"vswitchId":{"type":"string"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:gpdb/getLogBackups:getLogBackups":{"description":"This data source provides Gpdb Logbackup available to the user.[What is Log Backup](https://www.alibabacloud.com/help/en/)\n\n\u003e **NOTE:** Available since v1.231.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.gpdb.getInstances({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetLogBackups = Promise.all([_default, _default]).then(([_default, _default1]) =\u003e alicloud.gpdb.getLogBackups({\n    startTime: \"2022-12-12T02:00Z\",\n    endTime: \"2024-12-12T02:00Z\",\n    dbInstanceId: _default.ids?.[0],\n    ids: [_default1.ids?.[0]],\n}));\nexport const alicloudGpdbLogbackupExampleId = defaultGetLogBackups.then(defaultGetLogBackups =\u003e defaultGetLogBackups.logbackups?.[0]?.dbInstanceId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.gpdb.get_instances(name_regex=\"^default-NODELETING$\")\ndefault_get_log_backups = alicloud.gpdb.get_log_backups(start_time=\"2022-12-12T02:00Z\",\n    end_time=\"2024-12-12T02:00Z\",\n    db_instance_id=default.ids[0],\n    ids=[default.ids[0]])\npulumi.export(\"alicloudGpdbLogbackupExampleId\", default_get_log_backups.logbackups[0].db_instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Gpdb.GetInstances.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetLogBackups = AliCloud.Gpdb.GetLogBackups.Invoke(new()\n    {\n        StartTime = \"2022-12-12T02:00Z\",\n        EndTime = \"2024-12-12T02:00Z\",\n        DbInstanceId = @default.Apply(getInstancesResult =\u003e getInstancesResult.Ids[0]),\n        Ids = new[]\n        {\n            @default.Apply(getInstancesResult =\u003e getInstancesResult.Ids[0]),\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudGpdbLogbackupExampleId\"] = defaultGetLogBackups.Apply(getLogBackupsResult =\u003e getLogBackupsResult.Logbackups[0]?.DbInstanceId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := gpdb.GetInstances(ctx, \u0026gpdb.GetInstancesArgs{\nNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetLogBackups, err := gpdb.GetLogBackups(ctx, \u0026gpdb.GetLogBackupsArgs{\nStartTime: pulumi.StringRef(\"2022-12-12T02:00Z\"),\nEndTime: pulumi.StringRef(\"2024-12-12T02:00Z\"),\nDbInstanceId: _default.Ids[0],\nIds: interface{}{\n_default.Ids[0],\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudGpdbLogbackupExampleId\", defaultGetLogBackups.Logbackups[0].DbInstanceId)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.gpdb.GpdbFunctions;\nimport com.pulumi.alicloud.gpdb.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.gpdb.inputs.GetLogBackupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = GpdbFunctions.getInstances(GetInstancesArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetLogBackups = GpdbFunctions.getLogBackups(GetLogBackupsArgs.builder()\n            .startTime(\"2022-12-12T02:00Z\")\n            .endTime(\"2024-12-12T02:00Z\")\n            .dbInstanceId(default_.ids()[0])\n            .ids(default_.ids()[0])\n            .build());\n\n        ctx.export(\"alicloudGpdbLogbackupExampleId\", defaultGetLogBackups.logbackups()[0].dbInstanceId());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:gpdb:getInstances\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetLogBackups:\n    fn::invoke:\n      function: alicloud:gpdb:getLogBackups\n      arguments:\n        startTime: 2022-12-12T02:00Z\n        endTime: 2024-12-12T02:00Z\n        dbInstanceId: ${default.ids[0]}\n        ids:\n          - ${default.ids[0]}\noutputs:\n  alicloudGpdbLogbackupExampleId: ${defaultGetLogBackups.logbackups[0].dbInstanceId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLogBackups.\n","properties":{"dbInstanceId":{"type":"string","description":"The ID of the Master node of the instance.\n"},"endTime":{"type":"string","description":"The query end time, which must be greater than the query start time. Format: yyyy-MM-ddTHH:mmZ(UTC time).\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Logbackup IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer","description":"Current page number.\n"},"pageSize":{"type":"integer","description":"Number of records per page.\n"},"startTime":{"type":"string","description":"The query start time. Format: yyyy-MM-ddTHH:mmZ(UTC time).\n"}},"type":"object","required":["dbInstanceId"]},"outputs":{"description":"A collection of values returned by getLogBackups.\n","properties":{"dbInstanceId":{"description":"The ID of the Master node of the instance.\n","type":"string"},"endTime":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Logbackup IDs.\n","items":{"type":"string"},"type":"array"},"logbackups":{"description":"A list of Logbackup Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:gpdb/getLogBackupsLogbackup:getLogBackupsLogbackup"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"startTime":{"type":"string"}},"required":["dbInstanceId","ids","logbackups","id"],"type":"object"}},"alicloud:gpdb/getZones:getZones":{"description":"This data source provides availability zones for Gpdb that can be accessed by an Alibaba Cloud account within the region configured in the provider.\n\n\u003e **NOTE:** Available in v1.73.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst zonesIds = alicloud.gpdb.getZones({});\n// Create an Gpdb instance with the first matched zone\nconst hbase = new alicloud.hbase.Instance(\"hbase\", {availabilityZone: zonesIds.then(zonesIds =\u003e zonesIds.zones?.[0]?.id)});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nzones_ids = alicloud.gpdb.get_zones()\n# Create an Gpdb instance with the first matched zone\nhbase = alicloud.hbase.Instance(\"hbase\", availability_zone=zones_ids.zones[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var zonesIds = AliCloud.Gpdb.GetZones.Invoke();\n\n    // Create an Gpdb instance with the first matched zone\n    var hbase = new AliCloud.Hbase.Instance(\"hbase\", new()\n    {\n        AvailabilityZone = zonesIds.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tzonesIds, err := gpdb.GetZones(ctx, \u0026gpdb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create an Gpdb instance with the first matched zone\n\t\t_, err = hbase.NewInstance(ctx, \"hbase\", \u0026hbase.InstanceArgs{\n\t\t\tAvailabilityZone: zonesIds.Zones[0].Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.gpdb.GpdbFunctions;\nimport com.pulumi.alicloud.gpdb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.hbase.Instance;\nimport com.pulumi.alicloud.hbase.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var zonesIds = GpdbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        // Create an Gpdb instance with the first matched zone\n        var hbase = new Instance(\"hbase\", InstanceArgs.builder()\n            .availabilityZone(zonesIds.zones()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an Gpdb instance with the first matched zone\n  hbase:\n    type: alicloud:hbase:Instance\n    properties:\n      availabilityZone: ${zonesIds.zones[0].id}\nvariables:\n  # Declare the data source\n  zonesIds:\n    fn::invoke:\n      function: alicloud:gpdb:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"multi":{"type":"boolean","description":"Indicate whether the zones can be used in a multi AZ configuration. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Multi AZ is usually used to launch Gpdb instances.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of zone IDs.\n","items":{"type":"string"},"type":"array"},"multi":{"type":"boolean"},"outputFile":{"type":"string"},"zones":{"description":"A list of availability zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:gpdb/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:graphdatabase/getDbInstances:getDbInstances":{"description":"This data source provides the Graph Database Db Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.136.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.graphdatabase.getDbInstances({\n    ids: [\"example_id\"],\n});\nexport const graphDatabaseDbInstanceId1 = ids.then(ids =\u003e ids.instances?.[0]?.id);\nconst status = alicloud.graphdatabase.getDbInstances({\n    ids: [\"example_id\"],\n    status: \"Running\",\n});\nexport const graphDatabaseDbInstanceId2 = status.then(status =\u003e status.instances?.[0]?.id);\nconst description = alicloud.graphdatabase.getDbInstances({\n    ids: [\"example_id\"],\n    dbInstanceDescription: \"example_value\",\n});\nexport const graphDatabaseDbInstanceId3 = description.then(description =\u003e description.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.graphdatabase.get_db_instances(ids=[\"example_id\"])\npulumi.export(\"graphDatabaseDbInstanceId1\", ids.instances[0].id)\nstatus = alicloud.graphdatabase.get_db_instances(ids=[\"example_id\"],\n    status=\"Running\")\npulumi.export(\"graphDatabaseDbInstanceId2\", status.instances[0].id)\ndescription = alicloud.graphdatabase.get_db_instances(ids=[\"example_id\"],\n    db_instance_description=\"example_value\")\npulumi.export(\"graphDatabaseDbInstanceId3\", description.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.GraphDatabase.GetDbInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var status = AliCloud.GraphDatabase.GetDbInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        Status = \"Running\",\n    });\n\n    var description = AliCloud.GraphDatabase.GetDbInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        DbInstanceDescription = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"graphDatabaseDbInstanceId1\"] = ids.Apply(getDbInstancesResult =\u003e getDbInstancesResult.Instances[0]?.Id),\n        [\"graphDatabaseDbInstanceId2\"] = status.Apply(getDbInstancesResult =\u003e getDbInstancesResult.Instances[0]?.Id),\n        [\"graphDatabaseDbInstanceId3\"] = description.Apply(getDbInstancesResult =\u003e getDbInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/graphdatabase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := graphdatabase.GetDbInstances(ctx, \u0026graphdatabase.GetDbInstancesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"graphDatabaseDbInstanceId1\", ids.Instances[0].Id)\n\t\tstatus, err := graphdatabase.GetDbInstances(ctx, \u0026graphdatabase.GetDbInstancesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tStatus: pulumi.StringRef(\"Running\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"graphDatabaseDbInstanceId2\", status.Instances[0].Id)\n\t\tdescription, err := graphdatabase.GetDbInstances(ctx, \u0026graphdatabase.GetDbInstancesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tDbInstanceDescription: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"graphDatabaseDbInstanceId3\", description.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.graphdatabase.GraphdatabaseFunctions;\nimport com.pulumi.alicloud.graphdatabase.inputs.GetDbInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = GraphdatabaseFunctions.getDbInstances(GetDbInstancesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"graphDatabaseDbInstanceId1\", ids.instances()[0].id());\n        final var status = GraphdatabaseFunctions.getDbInstances(GetDbInstancesArgs.builder()\n            .ids(\"example_id\")\n            .status(\"Running\")\n            .build());\n\n        ctx.export(\"graphDatabaseDbInstanceId2\", status.instances()[0].id());\n        final var description = GraphdatabaseFunctions.getDbInstances(GetDbInstancesArgs.builder()\n            .ids(\"example_id\")\n            .dbInstanceDescription(\"example_value\")\n            .build());\n\n        ctx.export(\"graphDatabaseDbInstanceId3\", description.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:graphdatabase:getDbInstances\n      arguments:\n        ids:\n          - example_id\n  status:\n    fn::invoke:\n      function: alicloud:graphdatabase:getDbInstances\n      arguments:\n        ids:\n          - example_id\n        status: Running\n  description:\n    fn::invoke:\n      function: alicloud:graphdatabase:getDbInstances\n      arguments:\n        ids:\n          - example_id\n        dbInstanceDescription: example_value\noutputs:\n  graphDatabaseDbInstanceId1: ${ids.instances[0].id}\n  graphDatabaseDbInstanceId2: ${status.instances[0].id}\n  graphDatabaseDbInstanceId3: ${description.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDbInstances.\n","properties":{"dbInstanceDescription":{"type":"string","description":"According to the practical example or notes.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Db Instance IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"Instance status. Value range: `Creating`, `Running`, `Deleting`, `DBInstanceClassChanging`, `NetAddressCreating` and `NetAddressDeleting`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDbInstances.\n","properties":{"dbInstanceDescription":{"type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instances":{"items":{"$ref":"#/types/alicloud:graphdatabase/getDbInstancesInstance:getDbInstancesInstance"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["ids","instances","id"],"type":"object"}},"alicloud:gwlb/getZones:getZones":{"description":"This data source provides Gwlb Zone available to the user.[What is Zone](https://www.alibabacloud.com/help/en/)\n\n\u003e **NOTE:** Available since v1.236.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.gwlb.getZones({});\nexport const alicloudGwlbZoneExampleId = _default.then(_default =\u003e _default.zones?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.gwlb.get_zones()\npulumi.export(\"alicloudGwlbZoneExampleId\", default.zones[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Gwlb.GetZones.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudGwlbZoneExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gwlb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := gwlb.GetZones(ctx, \u0026gwlb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudGwlbZoneExampleId\", _default.Zones[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.gwlb.GwlbFunctions;\nimport com.pulumi.alicloud.gwlb.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = GwlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        ctx.export(\"alicloudGwlbZoneExampleId\", default_.zones()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:gwlb:getZones\n      arguments: {}\noutputs:\n  alicloudGwlbZoneExampleId: ${default.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"acceptLanguage":{"type":"string","description":"The supported language. Valid values:\n- **zh-CN**: Chinese\n- **en-US** (default): English\n- **ja**: Japanese\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Zone IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"acceptLanguage":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Zone IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"zones":{"description":"A list of Zone Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:gwlb/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:hbase/getInstanceTypes:getInstanceTypes":{"description":"This data source provides availability\u003cspan pulumi-lang-nodejs=\" instanceTypes \" pulumi-lang-dotnet=\" InstanceTypes \" pulumi-lang-go=\" instanceTypes \" pulumi-lang-python=\" instance_types \" pulumi-lang-yaml=\" instanceTypes \" pulumi-lang-java=\" instanceTypes \"\u003e instance_types \u003c/span\u003efor HBase that can be accessed by an Alibaba Cloud account within the region configured in the provider.\n\n\u003e **NOTE:** Available since v1.106.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.hbase.getInstanceTypes({\n    chargeType: \"Postpaid\",\n    regionId: \"cn-shanghai\",\n    zoneId: \"cn-shanghai-g\",\n    engine: \"hbaseue\",\n    version: \"2.0\",\n    instanceType: \"hbase.sn2.large\",\n    diskType: \"cloud_ssd\",\n});\nconst hbase = new alicloud.hbase.Instance(\"hbase\", {coreInstanceType: _default.then(_default =\u003e _default.types?.[0]?.id)});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.hbase.get_instance_types(charge_type=\"Postpaid\",\n    region_id=\"cn-shanghai\",\n    zone_id=\"cn-shanghai-g\",\n    engine=\"hbaseue\",\n    version=\"2.0\",\n    instance_type=\"hbase.sn2.large\",\n    disk_type=\"cloud_ssd\")\nhbase = alicloud.hbase.Instance(\"hbase\", core_instance_type=default.types[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Hbase.GetInstanceTypes.Invoke(new()\n    {\n        ChargeType = \"Postpaid\",\n        RegionId = \"cn-shanghai\",\n        ZoneId = \"cn-shanghai-g\",\n        Engine = \"hbaseue\",\n        Version = \"2.0\",\n        InstanceType = \"hbase.sn2.large\",\n        DiskType = \"cloud_ssd\",\n    });\n\n    var hbase = new AliCloud.Hbase.Instance(\"hbase\", new()\n    {\n        CoreInstanceType = @default.Apply(@default =\u003e @default.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.Types[0]?.Id)),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := hbase.GetInstanceTypes(ctx, \u0026hbase.GetInstanceTypesArgs{\n\t\t\tChargeType:   pulumi.StringRef(\"Postpaid\"),\n\t\t\tRegionId:     pulumi.StringRef(\"cn-shanghai\"),\n\t\t\tZoneId:       pulumi.StringRef(\"cn-shanghai-g\"),\n\t\t\tEngine:       pulumi.StringRef(\"hbaseue\"),\n\t\t\tVersion:      pulumi.StringRef(\"2.0\"),\n\t\t\tInstanceType: pulumi.StringRef(\"hbase.sn2.large\"),\n\t\t\tDiskType:     pulumi.StringRef(\"cloud_ssd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbase.NewInstance(ctx, \"hbase\", \u0026hbase.InstanceArgs{\n\t\t\tCoreInstanceType: pulumi.Any(_default.Types[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbase.HbaseFunctions;\nimport com.pulumi.alicloud.hbase.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.hbase.Instance;\nimport com.pulumi.alicloud.hbase.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = HbaseFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .chargeType(\"Postpaid\")\n            .regionId(\"cn-shanghai\")\n            .zoneId(\"cn-shanghai-g\")\n            .engine(\"hbaseue\")\n            .version(\"2.0\")\n            .instanceType(\"hbase.sn2.large\")\n            .diskType(\"cloud_ssd\")\n            .build());\n\n        var hbase = new Instance(\"hbase\", InstanceArgs.builder()\n            .coreInstanceType(default_.types()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  hbase:\n    type: alicloud:hbase:Instance\n    properties:\n      coreInstanceType: ${default.types[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:hbase:getInstanceTypes\n      arguments:\n        chargeType: Postpaid\n        regionId: cn-shanghai\n        zoneId: cn-shanghai-g\n        engine: hbaseue\n        version: '2.0'\n        instanceType: hbase.sn2.large\n        diskType: cloud_ssd\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceTypes.\n","properties":{"chargeType":{"type":"string","description":"The charge type of create hbase cluster instance, `PrePaid` or `PostPaid`.\n"},"diskType":{"type":"string","description":"The disk type, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEssdPl1`\" pulumi-lang-dotnet=\"`CloudEssdPl1`\" pulumi-lang-go=\"`cloudEssdPl1`\" pulumi-lang-python=\"`cloud_essd_pl1`\" pulumi-lang-yaml=\"`cloudEssdPl1`\" pulumi-lang-java=\"`cloudEssdPl1`\"\u003e`cloud_essd_pl1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localHddPro`\" pulumi-lang-dotnet=\"`LocalHddPro`\" pulumi-lang-go=\"`localHddPro`\" pulumi-lang-python=\"`local_hdd_pro`\" pulumi-lang-yaml=\"`localHddPro`\" pulumi-lang-java=\"`localHddPro`\"\u003e`local_hdd_pro`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`localSsdPro`\" pulumi-lang-dotnet=\"`LocalSsdPro`\" pulumi-lang-go=\"`localSsdPro`\" pulumi-lang-python=\"`local_ssd_pro`\" pulumi-lang-yaml=\"`localSsdPro`\" pulumi-lang-java=\"`localSsdPro`\"\u003e`local_ssd_pro`\u003c/span\u003e.\n"},"engine":{"type":"string","description":"The engine name, \u003cspan pulumi-lang-nodejs=\"`singlehbase`\" pulumi-lang-dotnet=\"`Singlehbase`\" pulumi-lang-go=\"`singlehbase`\" pulumi-lang-python=\"`singlehbase`\" pulumi-lang-yaml=\"`singlehbase`\" pulumi-lang-java=\"`singlehbase`\"\u003e`singlehbase`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hbase`\" pulumi-lang-dotnet=\"`Hbase`\" pulumi-lang-go=\"`hbase`\" pulumi-lang-python=\"`hbase`\" pulumi-lang-yaml=\"`hbase`\" pulumi-lang-java=\"`hbase`\"\u003e`hbase`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`hbaseue`\" pulumi-lang-dotnet=\"`Hbaseue`\" pulumi-lang-go=\"`hbaseue`\" pulumi-lang-python=\"`hbaseue`\" pulumi-lang-yaml=\"`hbaseue`\" pulumi-lang-java=\"`hbaseue`\"\u003e`hbaseue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bds`\" pulumi-lang-dotnet=\"`Bds`\" pulumi-lang-go=\"`bds`\" pulumi-lang-python=\"`bds`\" pulumi-lang-yaml=\"`bds`\" pulumi-lang-java=\"`bds`\"\u003e`bds`\u003c/span\u003e.\n"},"instanceType":{"type":"string","description":"The hbase instance type of create hbase cluster instance.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"regionId":{"type":"string","description":"The dest region id, default client region.\n"},"version":{"type":"string","description":"The engine version, singlehbase/hbase=1.1/2.0, bds=1.0.\n"},"zoneId":{"type":"string","description":"The zone id, belong to regionId.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstanceTypes.\n","properties":{"chargeType":{"type":"string"},"coreInstanceTypes":{"description":"(Available in 1.115.0+) A list of core instance types. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:hbase/getInstanceTypesCoreInstanceType:getInstanceTypesCoreInstanceType"},"type":"array"},"diskType":{"type":"string"},"engine":{"description":"Name of the engine.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of instance types type IDs.\n","items":{"type":"string"},"type":"array"},"instanceType":{"description":"Name of the instance type.\n","type":"string"},"masterInstanceTypes":{"description":"(Available in 1.115.0+) A list of master instance types. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:hbase/getInstanceTypesMasterInstanceType:getInstanceTypesMasterInstanceType"},"type":"array"},"outputFile":{"type":"string"},"regionId":{"type":"string"},"types":{"description":"(Deprecated) A list of instance types. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:hbase/getInstanceTypesType:getInstanceTypesType"},"type":"array"},"version":{"description":"The version of the engine.\n","type":"string"},"zoneId":{"type":"string"}},"required":["coreInstanceTypes","ids","masterInstanceTypes","types","id"],"type":"object"}},"alicloud:hbase/getInstances:getInstances":{"description":"The \u003cspan pulumi-lang-nodejs=\"`alicloud.hbase.getInstances`\" pulumi-lang-dotnet=\"`alicloud.hbase.getInstances`\" pulumi-lang-go=\"`hbase.getInstances`\" pulumi-lang-python=\"`hbase_get_instances`\" pulumi-lang-yaml=\"`alicloud.hbase.getInstances`\" pulumi-lang-java=\"`alicloud.hbase.getInstances`\"\u003e`alicloud.hbase.getInstances`\u003c/span\u003e data source provides a collection of HBase instances available in Alicloud account.\nFilters support regular expression for the instance name, ids or availability_zone.\n\n\u003e **NOTE:**  Available in 1.67.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst hbase = alicloud.hbase.getInstances({\n    nameRegex: \"tf_testAccHBase\",\n    availabilityZone: \"cn-shenzhen-b\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nhbase = alicloud.hbase.get_instances(name_regex=\"tf_testAccHBase\",\n    availability_zone=\"cn-shenzhen-b\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var hbase = AliCloud.Hbase.GetInstances.Invoke(new()\n    {\n        NameRegex = \"tf_testAccHBase\",\n        AvailabilityZone = \"cn-shenzhen-b\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := hbase.GetInstances(ctx, \u0026hbase.GetInstancesArgs{\n\t\t\tNameRegex:        pulumi.StringRef(\"tf_testAccHBase\"),\n\t\t\tAvailabilityZone: pulumi.StringRef(\"cn-shenzhen-b\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbase.HbaseFunctions;\nimport com.pulumi.alicloud.hbase.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var hbase = HbaseFunctions.getInstances(GetInstancesArgs.builder()\n            .nameRegex(\"tf_testAccHBase\")\n            .availabilityZone(\"cn-shenzhen-b\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  hbase:\n    fn::invoke:\n      function: alicloud:hbase:getInstances\n      arguments:\n        nameRegex: tf_testAccHBase\n        availabilityZone: cn-shenzhen-b\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"availabilityZone":{"type":"string","description":"Instance availability zone.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"The ids list of HBase instances\n"},"nameRegex":{"type":"string","description":"A regex string to apply to the instance name.\n"},"outputFile":{"type":"string","description":"The name of file that can save the collection of instances after running `pulumi preview`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"availabilityZone":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"The ids list of HBase instances\n","items":{"type":"string"},"type":"array"},"instances":{"description":"A list of HBase instances. Its every element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:hbase/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"The names list of HBase instances\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","type":"object"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:hbase/getZones:getZones":{"description":"This data source provides availability zones for HBase that can be accessed by an Alibaba Cloud account within the region configured in the provider.\n\n\u003e **NOTE:** Available in v1.73.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst zonesIds = alicloud.hbase.getZones({});\nconst hbase = new alicloud.hbase.Instance(\"hbase\", {zoneId: zonesIds.then(zonesIds =\u003e zonesIds.zones?.[0]?.id)});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nzones_ids = alicloud.hbase.get_zones()\nhbase = alicloud.hbase.Instance(\"hbase\", zone_id=zones_ids.zones[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var zonesIds = AliCloud.Hbase.GetZones.Invoke();\n\n    var hbase = new AliCloud.Hbase.Instance(\"hbase\", new()\n    {\n        ZoneId = zonesIds.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbase\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tzonesIds, err := hbase.GetZones(ctx, \u0026hbase.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbase.NewInstance(ctx, \"hbase\", \u0026hbase.InstanceArgs{\n\t\t\tZoneId: pulumi.String(zonesIds.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbase.HbaseFunctions;\nimport com.pulumi.alicloud.hbase.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.hbase.Instance;\nimport com.pulumi.alicloud.hbase.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var zonesIds = HbaseFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var hbase = new Instance(\"hbase\", InstanceArgs.builder()\n            .zoneId(zonesIds.zones()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  hbase:\n    type: alicloud:hbase:Instance\n    properties:\n      zoneId: ${zonesIds.zones[0].id}\nvariables:\n  zonesIds:\n    fn::invoke:\n      function: alicloud:hbase:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of zone IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"zones":{"description":"A list of availability zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:hbase/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:hbr/getBackupJobs:getBackupJobs":{"description":"This data source provides the Hbr Backup Jobs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.138.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.hbr.getEcsBackupPlans({\n    nameRegex: \"plan-name\",\n});\nconst defaultGetBackupJobs = Promise.all([_default, _default]).then(([_default, _default1]) =\u003e alicloud.hbr.getBackupJobs({\n    sourceType: \"ECS_FILE\",\n    filters: [\n        {\n            key: \"VaultId\",\n            operator: \"IN\",\n            values: [_default.plans?.[0]?.vaultId],\n        },\n        {\n            key: \"InstanceId\",\n            operator: \"IN\",\n            values: [_default1.plans?.[0]?.instanceId],\n        },\n        {\n            key: \"CompleteTime\",\n            operator: \"BETWEEN\",\n            values: [\n                \"2021-08-23T14:17:15CST\",\n                \"2021-08-24T14:17:15CST\",\n            ],\n        },\n    ],\n}));\nconst example = Promise.all([_default, _default]).then(([_default, _default1]) =\u003e alicloud.hbr.getBackupJobs({\n    sourceType: \"ECS_FILE\",\n    status: \"COMPLETE\",\n    filters: [\n        {\n            key: \"VaultId\",\n            operator: \"IN\",\n            values: [_default.plans?.[0]?.vaultId],\n        },\n        {\n            key: \"InstanceId\",\n            operator: \"IN\",\n            values: [_default1.plans?.[0]?.instanceId],\n        },\n        {\n            key: \"CompleteTime\",\n            operator: \"LESS_THAN\",\n            values: [\"2021-10-20T20:20:20CST\"],\n        },\n    ],\n}));\nexport const alicloudHbrBackupJobsDefault1 = defaultGetBackupJobs.then(defaultGetBackupJobs =\u003e defaultGetBackupJobs.jobs?.[0]?.id);\nexport const alicloudHbrBackupJobsExample1 = example.then(example =\u003e example.jobs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.hbr.get_ecs_backup_plans(name_regex=\"plan-name\")\ndefault_get_backup_jobs = alicloud.hbr.get_backup_jobs(source_type=\"ECS_FILE\",\n    filters=[\n        {\n            \"key\": \"VaultId\",\n            \"operator\": \"IN\",\n            \"values\": [default.plans[0].vault_id],\n        },\n        {\n            \"key\": \"InstanceId\",\n            \"operator\": \"IN\",\n            \"values\": [default.plans[0].instance_id],\n        },\n        {\n            \"key\": \"CompleteTime\",\n            \"operator\": \"BETWEEN\",\n            \"values\": [\n                \"2021-08-23T14:17:15CST\",\n                \"2021-08-24T14:17:15CST\",\n            ],\n        },\n    ])\nexample = alicloud.hbr.get_backup_jobs(source_type=\"ECS_FILE\",\n    status=\"COMPLETE\",\n    filters=[\n        {\n            \"key\": \"VaultId\",\n            \"operator\": \"IN\",\n            \"values\": [default.plans[0].vault_id],\n        },\n        {\n            \"key\": \"InstanceId\",\n            \"operator\": \"IN\",\n            \"values\": [default.plans[0].instance_id],\n        },\n        {\n            \"key\": \"CompleteTime\",\n            \"operator\": \"LESS_THAN\",\n            \"values\": [\"2021-10-20T20:20:20CST\"],\n        },\n    ])\npulumi.export(\"alicloudHbrBackupJobsDefault1\", default_get_backup_jobs.jobs[0].id)\npulumi.export(\"alicloudHbrBackupJobsExample1\", example.jobs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Hbr.GetEcsBackupPlans.Invoke(new()\n    {\n        NameRegex = \"plan-name\",\n    });\n\n    var defaultGetBackupJobs = AliCloud.Hbr.GetBackupJobs.Invoke(new()\n    {\n        SourceType = \"ECS_FILE\",\n        Filters = new[]\n        {\n            new AliCloud.Hbr.Inputs.GetBackupJobsFilterInputArgs\n            {\n                Key = \"VaultId\",\n                Operator = \"IN\",\n                Values = new[]\n                {\n                    @default.Apply(getEcsBackupPlansResult =\u003e getEcsBackupPlansResult.Plans[0]?.VaultId),\n                },\n            },\n            new AliCloud.Hbr.Inputs.GetBackupJobsFilterInputArgs\n            {\n                Key = \"InstanceId\",\n                Operator = \"IN\",\n                Values = new[]\n                {\n                    @default.Apply(getEcsBackupPlansResult =\u003e getEcsBackupPlansResult.Plans[0]?.InstanceId),\n                },\n            },\n            new AliCloud.Hbr.Inputs.GetBackupJobsFilterInputArgs\n            {\n                Key = \"CompleteTime\",\n                Operator = \"BETWEEN\",\n                Values = new[]\n                {\n                    \"2021-08-23T14:17:15CST\",\n                    \"2021-08-24T14:17:15CST\",\n                },\n            },\n        },\n    });\n\n    var example = AliCloud.Hbr.GetBackupJobs.Invoke(new()\n    {\n        SourceType = \"ECS_FILE\",\n        Status = \"COMPLETE\",\n        Filters = new[]\n        {\n            new AliCloud.Hbr.Inputs.GetBackupJobsFilterInputArgs\n            {\n                Key = \"VaultId\",\n                Operator = \"IN\",\n                Values = new[]\n                {\n                    @default.Apply(getEcsBackupPlansResult =\u003e getEcsBackupPlansResult.Plans[0]?.VaultId),\n                },\n            },\n            new AliCloud.Hbr.Inputs.GetBackupJobsFilterInputArgs\n            {\n                Key = \"InstanceId\",\n                Operator = \"IN\",\n                Values = new[]\n                {\n                    @default.Apply(getEcsBackupPlansResult =\u003e getEcsBackupPlansResult.Plans[0]?.InstanceId),\n                },\n            },\n            new AliCloud.Hbr.Inputs.GetBackupJobsFilterInputArgs\n            {\n                Key = \"CompleteTime\",\n                Operator = \"LESS_THAN\",\n                Values = new[]\n                {\n                    \"2021-10-20T20:20:20CST\",\n                },\n            },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudHbrBackupJobsDefault1\"] = defaultGetBackupJobs.Apply(getBackupJobsResult =\u003e getBackupJobsResult.Jobs[0]?.Id),\n        [\"alicloudHbrBackupJobsExample1\"] = example.Apply(getBackupJobsResult =\u003e getBackupJobsResult.Jobs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := hbr.GetEcsBackupPlans(ctx, \u0026hbr.GetEcsBackupPlansArgs{\nNameRegex: pulumi.StringRef(\"plan-name\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetBackupJobs, err := hbr.GetBackupJobs(ctx, \u0026hbr.GetBackupJobsArgs{\nSourceType: \"ECS_FILE\",\nFilters: []hbr.GetBackupJobsFilter{\n{\nKey: pulumi.StringRef(\"VaultId\"),\nOperator: pulumi.StringRef(\"IN\"),\nValues: interface{}{\n_default.Plans[0].VaultId,\n},\n},\n{\nKey: pulumi.StringRef(\"InstanceId\"),\nOperator: pulumi.StringRef(\"IN\"),\nValues: interface{}{\n_default.Plans[0].InstanceId,\n},\n},\n{\nKey: pulumi.StringRef(\"CompleteTime\"),\nOperator: pulumi.StringRef(\"BETWEEN\"),\nValues: []string{\n\"2021-08-23T14:17:15CST\",\n\"2021-08-24T14:17:15CST\",\n},\n},\n},\n}, nil);\nif err != nil {\nreturn err\n}\nexample, err := hbr.GetBackupJobs(ctx, \u0026hbr.GetBackupJobsArgs{\nSourceType: \"ECS_FILE\",\nStatus: pulumi.StringRef(\"COMPLETE\"),\nFilters: []hbr.GetBackupJobsFilter{\n{\nKey: pulumi.StringRef(\"VaultId\"),\nOperator: pulumi.StringRef(\"IN\"),\nValues: interface{}{\n_default.Plans[0].VaultId,\n},\n},\n{\nKey: pulumi.StringRef(\"InstanceId\"),\nOperator: pulumi.StringRef(\"IN\"),\nValues: interface{}{\n_default.Plans[0].InstanceId,\n},\n},\n{\nKey: pulumi.StringRef(\"CompleteTime\"),\nOperator: pulumi.StringRef(\"LESS_THAN\"),\nValues: []string{\n\"2021-10-20T20:20:20CST\",\n},\n},\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudHbrBackupJobsDefault1\", defaultGetBackupJobs.Jobs[0].Id)\nctx.Export(\"alicloudHbrBackupJobsExample1\", example.Jobs[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetEcsBackupPlansArgs;\nimport com.pulumi.alicloud.hbr.inputs.GetBackupJobsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = HbrFunctions.getEcsBackupPlans(GetEcsBackupPlansArgs.builder()\n            .nameRegex(\"plan-name\")\n            .build());\n\n        final var defaultGetBackupJobs = HbrFunctions.getBackupJobs(GetBackupJobsArgs.builder()\n            .sourceType(\"ECS_FILE\")\n            .filters(            \n                GetBackupJobsFilterArgs.builder()\n                    .key(\"VaultId\")\n                    .operator(\"IN\")\n                    .values(default_.plans()[0].vaultId())\n                    .build(),\n                GetBackupJobsFilterArgs.builder()\n                    .key(\"InstanceId\")\n                    .operator(\"IN\")\n                    .values(default_.plans()[0].instanceId())\n                    .build(),\n                GetBackupJobsFilterArgs.builder()\n                    .key(\"CompleteTime\")\n                    .operator(\"BETWEEN\")\n                    .values(                    \n                        \"2021-08-23T14:17:15CST\",\n                        \"2021-08-24T14:17:15CST\")\n                    .build())\n            .build());\n\n        final var example = HbrFunctions.getBackupJobs(GetBackupJobsArgs.builder()\n            .sourceType(\"ECS_FILE\")\n            .status(\"COMPLETE\")\n            .filters(            \n                GetBackupJobsFilterArgs.builder()\n                    .key(\"VaultId\")\n                    .operator(\"IN\")\n                    .values(default_.plans()[0].vaultId())\n                    .build(),\n                GetBackupJobsFilterArgs.builder()\n                    .key(\"InstanceId\")\n                    .operator(\"IN\")\n                    .values(default_.plans()[0].instanceId())\n                    .build(),\n                GetBackupJobsFilterArgs.builder()\n                    .key(\"CompleteTime\")\n                    .operator(\"LESS_THAN\")\n                    .values(\"2021-10-20T20:20:20CST\")\n                    .build())\n            .build());\n\n        ctx.export(\"alicloudHbrBackupJobsDefault1\", defaultGetBackupJobs.jobs()[0].id());\n        ctx.export(\"alicloudHbrBackupJobsExample1\", example.jobs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:hbr:getEcsBackupPlans\n      arguments:\n        nameRegex: plan-name\n  defaultGetBackupJobs:\n    fn::invoke:\n      function: alicloud:hbr:getBackupJobs\n      arguments:\n        sourceType: ECS_FILE\n        filters:\n          - key: VaultId\n            operator: IN\n            values:\n              - ${default.plans[0].vaultId}\n          - key: InstanceId\n            operator: IN\n            values:\n              - ${default.plans[0].instanceId}\n          - key: CompleteTime\n            operator: BETWEEN\n            values:\n              - 2021-08-23T14:17:15CST\n              - 2021-08-24T14:17:15CST\n  example:\n    fn::invoke:\n      function: alicloud:hbr:getBackupJobs\n      arguments:\n        sourceType: ECS_FILE\n        status: COMPLETE\n        filters:\n          - key: VaultId\n            operator: IN\n            values:\n              - ${default.plans[0].vaultId}\n          - key: InstanceId\n            operator: IN\n            values:\n              - ${default.plans[0].instanceId}\n          - key: CompleteTime\n            operator: LESS_THAN\n            values:\n              - 2021-10-20T20:20:20CST\noutputs:\n  alicloudHbrBackupJobsDefault1: ${defaultGetBackupJobs.jobs[0].id}\n  alicloudHbrBackupJobsExample1: ${example.jobs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBackupJobs.\n","properties":{"filters":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/getBackupJobsFilter:getBackupJobsFilter"}},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Backup Job IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"sortDirection":{"type":"string","description":"The sort direction, sort results by ascending or descending order based on the value jobs id. Valid values: `ASCEND`, `DESCEND`.\n"},"sourceType":{"type":"string","description":"The type of data source. Valid values: `ECS_FILE`, `NAS`, `OSS`, `OTS`, `UDM_ECS`, `UDM_ECS_DISK`.\n"},"status":{"type":"string","description":"The status of backup job. Valid values: `COMPLETE`, `PARTIAL_COMPLETE`, `FAILED`, `UNAVAILABLE`.\n"}},"type":"object","required":["sourceType"]},"outputs":{"description":"A collection of values returned by getBackupJobs.\n","properties":{"filters":{"items":{"$ref":"#/types/alicloud:hbr/getBackupJobsFilter:getBackupJobsFilter"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"jobs":{"items":{"$ref":"#/types/alicloud:hbr/getBackupJobsJob:getBackupJobsJob"},"type":"array"},"outputFile":{"type":"string"},"sortDirection":{"type":"string"},"sourceType":{"type":"string"},"status":{"type":"string"}},"required":["ids","jobs","sourceType","id"],"type":"object"}},"alicloud:hbr/getEcsBackupClients:getEcsBackupClients":{"description":"This data source provides the Hbr Ecs File Backup Clients of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.132.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ecs.getInstances({\n    nameRegex: \"ecs_instance_name\",\n    status: \"Running\",\n});\nconst ids = alicloud.hbr.getEcsBackupClients({\n    ids: [defaultAlicloudHbrEcsBackupClient.id],\n    instanceIds: [defaultAlicloudHbrEcsBackupClient.instanceId],\n});\nexport const hbrEcsBackupClientId1 = ids.then(ids =\u003e ids.clients?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ecs.get_instances(name_regex=\"ecs_instance_name\",\n    status=\"Running\")\nids = alicloud.hbr.get_ecs_backup_clients(ids=[default_alicloud_hbr_ecs_backup_client[\"id\"]],\n    instance_ids=[default_alicloud_hbr_ecs_backup_client[\"instanceId\"]])\npulumi.export(\"hbrEcsBackupClientId1\", ids.clients[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ecs.GetInstances.Invoke(new()\n    {\n        NameRegex = \"ecs_instance_name\",\n        Status = \"Running\",\n    });\n\n    var ids = AliCloud.Hbr.GetEcsBackupClients.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudHbrEcsBackupClient.Id,\n        },\n        InstanceIds = new[]\n        {\n            defaultAlicloudHbrEcsBackupClient.InstanceId,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"hbrEcsBackupClientId1\"] = ids.Apply(getEcsBackupClientsResult =\u003e getEcsBackupClientsResult.Clients[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := ecs.GetInstances(ctx, \u0026ecs.GetInstancesArgs{\nNameRegex: pulumi.StringRef(\"ecs_instance_name\"),\nStatus: pulumi.StringRef(\"Running\"),\n}, nil);\nif err != nil {\nreturn err\n}\nids, err := hbr.GetEcsBackupClients(ctx, \u0026hbr.GetEcsBackupClientsArgs{\nIds: interface{}{\ndefaultAlicloudHbrEcsBackupClient.Id,\n},\nInstanceIds: interface{}{\ndefaultAlicloudHbrEcsBackupClient.InstanceId,\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"hbrEcsBackupClientId1\", ids.Clients[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetEcsBackupClientsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EcsFunctions.getInstances(GetInstancesArgs.builder()\n            .nameRegex(\"ecs_instance_name\")\n            .status(\"Running\")\n            .build());\n\n        final var ids = HbrFunctions.getEcsBackupClients(GetEcsBackupClientsArgs.builder()\n            .ids(defaultAlicloudHbrEcsBackupClient.id())\n            .instanceIds(defaultAlicloudHbrEcsBackupClient.instanceId())\n            .build());\n\n        ctx.export(\"hbrEcsBackupClientId1\", ids.clients()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getInstances\n      arguments:\n        nameRegex: ecs_instance_name\n        status: Running\n  ids:\n    fn::invoke:\n      function: alicloud:hbr:getEcsBackupClients\n      arguments:\n        ids:\n          - ${defaultAlicloudHbrEcsBackupClient.id}\n        instanceIds:\n          - ${defaultAlicloudHbrEcsBackupClient.instanceId}\noutputs:\n  hbrEcsBackupClientId1: ${ids.clients[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEcsBackupClients.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ecs Backup Client IDs.\n"},"instanceIds":{"type":"array","items":{"type":"string"},"description":"A list of ECS Instance IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `ACTIVATED`, `DEACTIVATED`, `INSTALLING`, `INSTALL_FAILED`, `NOT_INSTALLED`, `REGISTERED`, `STOPPED`, `UNINSTALLING`, `UNINSTALL_FAILED`, `UNKNOWN`, `UPGRADE_FAILED`, `UPGRADING`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEcsBackupClients.\n","properties":{"clients":{"items":{"$ref":"#/types/alicloud:hbr/getEcsBackupClientsClient:getEcsBackupClientsClient"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceIds":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["clients","ids","id"],"type":"object"}},"alicloud:hbr/getEcsBackupPlans:getEcsBackupPlans":{"description":"This data source provides the Hbr EcsBackupPlans of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.132.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.hbr.getEcsBackupPlans({\n    nameRegex: \"plan-name\",\n});\nexport const hbrEcsBackupPlanId = ids.then(ids =\u003e ids.plans?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.hbr.get_ecs_backup_plans(name_regex=\"plan-name\")\npulumi.export(\"hbrEcsBackupPlanId\", ids.plans[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Hbr.GetEcsBackupPlans.Invoke(new()\n    {\n        NameRegex = \"plan-name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"hbrEcsBackupPlanId\"] = ids.Apply(getEcsBackupPlansResult =\u003e getEcsBackupPlansResult.Plans[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := hbr.GetEcsBackupPlans(ctx, \u0026hbr.GetEcsBackupPlansArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"plan-name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"hbrEcsBackupPlanId\", ids.Plans[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetEcsBackupPlansArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = HbrFunctions.getEcsBackupPlans(GetEcsBackupPlansArgs.builder()\n            .nameRegex(\"plan-name\")\n            .build());\n\n        ctx.export(\"hbrEcsBackupPlanId\", ids.plans()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:hbr:getEcsBackupPlans\n      arguments:\n        nameRegex: plan-name\noutputs:\n  hbrEcsBackupPlanId: ${ids.plans[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEcsBackupPlans.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of EcsBackupPlan IDs.\n"},"instanceId":{"type":"string","description":"The ECS instance ID of the EcsBackupPlan used.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by EcsBackupPlan name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"vaultId":{"type":"string","description":"The Vault ID of the EcsBackupPlan used.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEcsBackupPlans.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"plans":{"items":{"$ref":"#/types/alicloud:hbr/getEcsBackupPlansPlan:getEcsBackupPlansPlan"},"type":"array"},"vaultId":{"type":"string"}},"required":["ids","names","plans","id"],"type":"object"}},"alicloud:hbr/getHanaBackupClients:getHanaBackupClients":{"description":"This data source provides the Hybrid Backup Recovery (HBR) Hana Backup Clients of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in 1.198.0+\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.hbr.getHanaBackupClients({\n    ids: [\"example_id\"],\n    vaultId: \"your_vault_id\",\n});\nexport const hbrHanaBackupClientsId1 = ids.then(ids =\u003e ids.hanaBackupClients?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.hbr.get_hana_backup_clients(ids=[\"example_id\"],\n    vault_id=\"your_vault_id\")\npulumi.export(\"hbrHanaBackupClientsId1\", ids.hana_backup_clients[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Hbr.GetHanaBackupClients.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        VaultId = \"your_vault_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"hbrHanaBackupClientsId1\"] = ids.Apply(getHanaBackupClientsResult =\u003e getHanaBackupClientsResult.HanaBackupClients[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := hbr.GetHanaBackupClients(ctx, \u0026hbr.GetHanaBackupClientsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tVaultId: \"your_vault_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"hbrHanaBackupClientsId1\", ids.HanaBackupClients[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetHanaBackupClientsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = HbrFunctions.getHanaBackupClients(GetHanaBackupClientsArgs.builder()\n            .ids(\"example_id\")\n            .vaultId(\"your_vault_id\")\n            .build());\n\n        ctx.export(\"hbrHanaBackupClientsId1\", ids.hanaBackupClients()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:hbr:getHanaBackupClients\n      arguments:\n        ids:\n          - example_id\n        vaultId: your_vault_id\noutputs:\n  hbrHanaBackupClientsId1: ${ids.hanaBackupClients[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHanaBackupClients.\n","properties":{"clientId":{"type":"string","description":"The ID of the backup client.\n"},"clusterId":{"type":"string","description":"The ID of the SAP HANA instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Hana Backup Client IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string","description":"The status of the Hana Backup Client. Valid Values: `REGISTERED`, `ACTIVATED`, `DEACTIVATED`, `INSTALLING`, `INSTALL_FAILED`, `NOT_INSTALLED`, `UPGRADING`, `UPGRADE_FAILED`, `UNINSTALLING`, `UNINSTALL_FAILED`, `STOPPED`, `UNKNOWN`.\n"},"vaultId":{"type":"string","description":"The ID of the backup vault.\n"}},"type":"object","required":["vaultId"]},"outputs":{"description":"A collection of values returned by getHanaBackupClients.\n","properties":{"clientId":{"description":"The ID of the backup client.\n","type":"string"},"clusterId":{"description":"The ID of the SAP HANA instance.\n","type":"string"},"hanaBackupClients":{"description":"A list of Hana Backup Clients. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:hbr/getHanaBackupClientsHanaBackupClient:getHanaBackupClientsHanaBackupClient"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"description":"The status of the backup client.\n","type":"string"},"vaultId":{"description":"The ID of the backup vault.\n","type":"string"}},"required":["hanaBackupClients","ids","vaultId","id"],"type":"object"}},"alicloud:hbr/getHanaBackupPlans:getHanaBackupPlans":{"description":"This data source provides the Hbr Hana Backup Plans of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.179.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.hbr.getHanaBackupPlans({\n    clusterId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const hbrHanaBackupPlanId1 = ids.then(ids =\u003e ids.plans?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.hbr.get_hana_backup_plans(cluster_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"hbrHanaBackupPlanId1\", ids.plans[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Hbr.GetHanaBackupPlans.Invoke(new()\n    {\n        ClusterId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"hbrHanaBackupPlanId1\"] = ids.Apply(getHanaBackupPlansResult =\u003e getHanaBackupPlansResult.Plans[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := hbr.GetHanaBackupPlans(ctx, \u0026hbr.GetHanaBackupPlansArgs{\n\t\t\tClusterId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"hbrHanaBackupPlanId1\", ids.Plans[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetHanaBackupPlansArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = HbrFunctions.getHanaBackupPlans(GetHanaBackupPlansArgs.builder()\n            .clusterId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"hbrHanaBackupPlanId1\", ids.plans()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:hbr:getHanaBackupPlans\n      arguments:\n        clusterId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\noutputs:\n  hbrHanaBackupPlanId1: ${ids.plans[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHanaBackupPlans.\n","properties":{"clusterId":{"type":"string"},"databaseName":{"type":"string","description":"The name of the database.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Hana Backup Plan IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Hana Backup Plan name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"vaultId":{"type":"string","description":"The id of the vault.\n"}},"type":"object","required":["clusterId"]},"outputs":{"description":"A collection of values returned by getHanaBackupPlans.\n","properties":{"clusterId":{"type":"string"},"databaseName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"plans":{"items":{"$ref":"#/types/alicloud:hbr/getHanaBackupPlansPlan:getHanaBackupPlansPlan"},"type":"array"},"vaultId":{"type":"string"}},"required":["clusterId","ids","names","plans","id"],"type":"object"}},"alicloud:hbr/getHanaInstances:getHanaInstances":{"description":"This data source provides the Hbr Hana Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.178.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.hbr.getHanaInstances({\n    ids: [\"example_id\"],\n});\nexport const hbrHanaInstanceId1 = ids.then(ids =\u003e ids.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.hbr.get_hana_instances(ids=[\"example_id\"])\npulumi.export(\"hbrHanaInstanceId1\", ids.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Hbr.GetHanaInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"hbrHanaInstanceId1\"] = ids.Apply(getHanaInstancesResult =\u003e getHanaInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := hbr.GetHanaInstances(ctx, \u0026hbr.GetHanaInstancesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"hbrHanaInstanceId1\", ids.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetHanaInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = HbrFunctions.getHanaInstances(GetHanaInstancesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"hbrHanaInstanceId1\", ids.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:hbr:getHanaInstances\n      arguments:\n        ids:\n          - example_id\noutputs:\n  hbrHanaInstanceId1: ${ids.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHanaInstances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Hana Instance IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Hana Instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string","description":"The status of the SAP HANA instance. Valid values:\n- `INITIALIZING`: The instance is being initialized.\n- `INITIALIZED`: The instance is registered.\n- `INVALID_HANA_NODE`: The instance is invalid.\n- `INITIALIZE_FAILED`: The client fails to be installed on the instance.\n"},"vaultId":{"type":"string","description":"The id of the vault.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHanaInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instances":{"items":{"$ref":"#/types/alicloud:hbr/getHanaInstancesInstance:getHanaInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string"},"vaultId":{"type":"string"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:hbr/getNasBackupPlans:getNasBackupPlans":{"description":"This data source provides the Hbr NasBackupPlans of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.132.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.hbr.getNasBackupPlans({\n    nameRegex: \"^my-NasBackupPlan\",\n});\nexport const hbrNasBackupPlanId = ids.then(ids =\u003e ids.plans?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.hbr.get_nas_backup_plans(name_regex=\"^my-NasBackupPlan\")\npulumi.export(\"hbrNasBackupPlanId\", ids.plans[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Hbr.GetNasBackupPlans.Invoke(new()\n    {\n        NameRegex = \"^my-NasBackupPlan\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"hbrNasBackupPlanId\"] = ids.Apply(getNasBackupPlansResult =\u003e getNasBackupPlansResult.Plans[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := hbr.GetNasBackupPlans(ctx, \u0026hbr.GetNasBackupPlansArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-NasBackupPlan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"hbrNasBackupPlanId\", ids.Plans[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetNasBackupPlansArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = HbrFunctions.getNasBackupPlans(GetNasBackupPlansArgs.builder()\n            .nameRegex(\"^my-NasBackupPlan\")\n            .build());\n\n        ctx.export(\"hbrNasBackupPlanId\", ids.plans()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:hbr:getNasBackupPlans\n      arguments:\n        nameRegex: ^my-NasBackupPlan\noutputs:\n  hbrNasBackupPlanId: ${ids.plans[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNasBackupPlans.\n","properties":{"fileSystemId":{"type":"string","description":"The Nas fileSystem instance ID of the EcsBackupPlan used.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of NasBackupPlan IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by NasBackupPlan name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"vaultId":{"type":"string","description":"The backup vault ID of the NasBackupPlan used.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNasBackupPlans.\n","properties":{"fileSystemId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"plans":{"items":{"$ref":"#/types/alicloud:hbr/getNasBackupPlansPlan:getNasBackupPlansPlan"},"type":"array"},"vaultId":{"type":"string"}},"required":["ids","names","plans","id"],"type":"object"}},"alicloud:hbr/getOssBackupPlans:getOssBackupPlans":{"description":"This data source provides the Hbr OssBackupPlans of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.131.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.hbr.getOssBackupPlans({\n    nameRegex: \"^my-OssBackupPlan\",\n});\nexport const hbrOssBackupPlanId = ids.then(ids =\u003e ids.plans?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.hbr.get_oss_backup_plans(name_regex=\"^my-OssBackupPlan\")\npulumi.export(\"hbrOssBackupPlanId\", ids.plans[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Hbr.GetOssBackupPlans.Invoke(new()\n    {\n        NameRegex = \"^my-OssBackupPlan\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"hbrOssBackupPlanId\"] = ids.Apply(getOssBackupPlansResult =\u003e getOssBackupPlansResult.Plans[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := hbr.GetOssBackupPlans(ctx, \u0026hbr.GetOssBackupPlansArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-OssBackupPlan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"hbrOssBackupPlanId\", ids.Plans[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetOssBackupPlansArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = HbrFunctions.getOssBackupPlans(GetOssBackupPlansArgs.builder()\n            .nameRegex(\"^my-OssBackupPlan\")\n            .build());\n\n        ctx.export(\"hbrOssBackupPlanId\", ids.plans()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:hbr:getOssBackupPlans\n      arguments:\n        nameRegex: ^my-OssBackupPlan\noutputs:\n  hbrOssBackupPlanId: ${ids.plans[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOssBackupPlans.\n","properties":{"bucket":{"type":"string","description":"The name of OSS bucket.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of OssBackupPlan IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by OssBackupPlan name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"vaultId":{"type":"string","description":"The ID of backup vault the OssBackupPlan used.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getOssBackupPlans.\n","properties":{"bucket":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"plans":{"items":{"$ref":"#/types/alicloud:hbr/getOssBackupPlansPlan:getOssBackupPlansPlan"},"type":"array"},"vaultId":{"type":"string"}},"required":["ids","names","plans","id"],"type":"object"}},"alicloud:hbr/getOtsBackupPlans:getOtsBackupPlans":{"description":"This data source provides the Hbr OtsBackupPlans of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.163.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.hbr.getOtsBackupPlans({\n    nameRegex: \"^my-otsBackupPlan\",\n});\nexport const hbrOtsBackupPlanId = plans[0].id;\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.hbr.get_ots_backup_plans(name_regex=\"^my-otsBackupPlan\")\npulumi.export(\"hbrOtsBackupPlanId\", plans[0][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Hbr.GetOtsBackupPlans.Invoke(new()\n    {\n        NameRegex = \"^my-otsBackupPlan\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"hbrOtsBackupPlanId\"] = plans[0].Id,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := hbr.GetOtsBackupPlans(ctx, \u0026hbr.GetOtsBackupPlansArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-otsBackupPlan\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"hbrOtsBackupPlanId\", plans[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetOtsBackupPlansArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = HbrFunctions.getOtsBackupPlans(GetOtsBackupPlansArgs.builder()\n            .nameRegex(\"^my-otsBackupPlan\")\n            .build());\n\n        ctx.export(\"hbrOtsBackupPlanId\", plans[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:hbr:getOtsBackupPlans\n      arguments:\n        nameRegex: ^my-otsBackupPlan\noutputs:\n  hbrOtsBackupPlanId: ${plans[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOtsBackupPlans.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of OtsBackupPlan IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by OtsBackupPlan name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"planId":{"type":"string","description":"The ID of the backup plan.\n"},"planName":{"type":"string","description":"The ID of the backup plan.\n"},"vaultId":{"type":"string","description":"The ID of backup vault the OtsBackupPlan used.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getOtsBackupPlans.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"planId":{"type":"string"},"planName":{"type":"string"},"plans":{"items":{"$ref":"#/types/alicloud:hbr/getOtsBackupPlansPlan:getOtsBackupPlansPlan"},"type":"array"},"vaultId":{"type":"string"}},"required":["ids","names","plans","id"],"type":"object"}},"alicloud:hbr/getOtsSnapshots:getOtsSnapshots":{"description":"This data source provides the Hbr Ots Snapshots of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.164.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst snapshots = alicloud.hbr.getOtsSnapshots({});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nsnapshots = alicloud.hbr.get_ots_snapshots()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var snapshots = AliCloud.Hbr.GetOtsSnapshots.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := hbr.GetOtsSnapshots(ctx, \u0026hbr.GetOtsSnapshotsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetOtsSnapshotsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var snapshots = HbrFunctions.getOtsSnapshots(GetOtsSnapshotsArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  snapshots:\n    fn::invoke:\n      function: alicloud:hbr:getOtsSnapshots\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOtsSnapshots.\n","properties":{"endTime":{"type":"string","description":"The end time of the backup. This value must be a UNIX timestamp. Unit: milliseconds\n"},"ids":{"type":"array","items":{"type":"string"}},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"startTime":{"type":"string","description":"The start time of the backup. This value must be a UNIX timestamp. Unit: milliseconds.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getOtsSnapshots.\n","properties":{"endTime":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"snapshots":{"items":{"$ref":"#/types/alicloud:hbr/getOtsSnapshotsSnapshot:getOtsSnapshotsSnapshot"},"type":"array"},"startTime":{"type":"string"}},"required":["ids","snapshots","id"],"type":"object"}},"alicloud:hbr/getReplicationVaultRegions:getReplicationVaultRegions":{"description":"This data source provides the HBR Replication Vault Regions of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.152.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.hbr.getReplicationVaultRegions({});\nexport const hbrReplicationVaultRegionRegionId1 = _default.then(_default =\u003e _default.regions?.[0]?.replicationRegionId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.hbr.get_replication_vault_regions()\npulumi.export(\"hbrReplicationVaultRegionRegionId1\", default.regions[0].replication_region_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Hbr.GetReplicationVaultRegions.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"hbrReplicationVaultRegionRegionId1\"] = @default.Apply(@default =\u003e @default.Apply(getReplicationVaultRegionsResult =\u003e getReplicationVaultRegionsResult.Regions[0]?.ReplicationRegionId)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := hbr.GetReplicationVaultRegions(ctx, \u0026hbr.GetReplicationVaultRegionsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"hbrReplicationVaultRegionRegionId1\", _default.Regions[0].ReplicationRegionId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetReplicationVaultRegionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = HbrFunctions.getReplicationVaultRegions(GetReplicationVaultRegionsArgs.builder()\n            .build());\n\n        ctx.export(\"hbrReplicationVaultRegionRegionId1\", default_.regions()[0].replicationRegionId());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:hbr:getReplicationVaultRegions\n      arguments: {}\noutputs:\n  hbrReplicationVaultRegionRegionId1: ${default.regions[0].replicationRegionId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getReplicationVaultRegions.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getReplicationVaultRegions.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"regions":{"items":{"$ref":"#/types/alicloud:hbr/getReplicationVaultRegionsRegion:getReplicationVaultRegionsRegion"},"type":"array"}},"required":["regions","id"],"type":"object"}},"alicloud:hbr/getRestoreJobs:getRestoreJobs":{"description":"This data source provides the Hbr Restore Jobs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.133.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.hbr.getEcsBackupPlans({\n    nameRegex: \"plan-name\",\n});\nconst defaultGetRestoreJobs = Promise.all([_default, _default]).then(([_default, _default1]) =\u003e alicloud.hbr.getRestoreJobs({\n    restoreType: \"ECS_FILE\",\n    vaultIds: [_default.plans?.[0]?.vaultId],\n    targetInstanceIds: [_default1.plans?.[0]?.instanceId],\n}));\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.hbr.get_ecs_backup_plans(name_regex=\"plan-name\")\ndefault_get_restore_jobs = alicloud.hbr.get_restore_jobs(restore_type=\"ECS_FILE\",\n    vault_ids=[default.plans[0].vault_id],\n    target_instance_ids=[default.plans[0].instance_id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Hbr.GetEcsBackupPlans.Invoke(new()\n    {\n        NameRegex = \"plan-name\",\n    });\n\n    var defaultGetRestoreJobs = AliCloud.Hbr.GetRestoreJobs.Invoke(new()\n    {\n        RestoreType = \"ECS_FILE\",\n        VaultIds = new[]\n        {\n            @default.Apply(getEcsBackupPlansResult =\u003e getEcsBackupPlansResult.Plans[0]?.VaultId),\n        },\n        TargetInstanceIds = new[]\n        {\n            @default.Apply(getEcsBackupPlansResult =\u003e getEcsBackupPlansResult.Plans[0]?.InstanceId),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := hbr.GetEcsBackupPlans(ctx, \u0026hbr.GetEcsBackupPlansArgs{\nNameRegex: pulumi.StringRef(\"plan-name\"),\n}, nil);\nif err != nil {\nreturn err\n}\n_, err = hbr.GetRestoreJobs(ctx, \u0026hbr.GetRestoreJobsArgs{\nRestoreType: \"ECS_FILE\",\nVaultIds: interface{}{\n_default.Plans[0].VaultId,\n},\nTargetInstanceIds: interface{}{\n_default.Plans[0].InstanceId,\n},\n}, nil);\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetEcsBackupPlansArgs;\nimport com.pulumi.alicloud.hbr.inputs.GetRestoreJobsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = HbrFunctions.getEcsBackupPlans(GetEcsBackupPlansArgs.builder()\n            .nameRegex(\"plan-name\")\n            .build());\n\n        final var defaultGetRestoreJobs = HbrFunctions.getRestoreJobs(GetRestoreJobsArgs.builder()\n            .restoreType(\"ECS_FILE\")\n            .vaultIds(default_.plans()[0].vaultId())\n            .targetInstanceIds(default_.plans()[0].instanceId())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:hbr:getEcsBackupPlans\n      arguments:\n        nameRegex: plan-name\n  defaultGetRestoreJobs:\n    fn::invoke:\n      function: alicloud:hbr:getRestoreJobs\n      arguments:\n        restoreType: ECS_FILE\n        vaultIds:\n          - ${default.plans[0].vaultId}\n        targetInstanceIds:\n          - ${default.plans[0].instanceId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRestoreJobs.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"restoreIds":{"type":"array","items":{"type":"string"},"description":"The list of restore job IDs.\n"},"restoreType":{"type":"string","description":"The Recovery Destination Types. Valid values: `ECS_FILE`, `NAS`, `OSS`,`OTS_TABLE`, `UDM_ECS_ROLLBACK`.\n"},"sourceTypes":{"type":"array","items":{"type":"string"},"description":"The list of data source types. Valid values: `ECS_FILE`, `NAS`, `OSS`, `OTS_TABLE`,`UDM_ECS_ROLLBACK`.\n"},"status":{"type":"string","description":"The status of restore job. Valid values: `CANCELED`, `CANCELING`, `COMPLETE`, `CREATED`, `EXPIRED`, `FAILED`, `PARTIAL_COMPLETE`, `QUEUED`, `RUNNING`.\n"},"targetBuckets":{"type":"array","items":{"type":"string"},"description":"The name of target OSS bucket.\n"},"targetFileSystemIds":{"type":"array","items":{"type":"string"},"description":"Valid while\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `NAS`. The list of destination File System IDs.\n"},"targetInstanceIds":{"type":"array","items":{"type":"string"},"description":"The ID of target ECS instance.\n"},"vaultIds":{"type":"array","items":{"type":"string"},"description":"The list of backup vault IDs.\n"}},"type":"object","required":["restoreType"]},"outputs":{"description":"A collection of values returned by getRestoreJobs.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"jobs":{"items":{"$ref":"#/types/alicloud:hbr/getRestoreJobsJob:getRestoreJobsJob"},"type":"array"},"outputFile":{"type":"string"},"restoreIds":{"items":{"type":"string"},"type":"array"},"restoreType":{"type":"string"},"sourceTypes":{"items":{"type":"string"},"type":"array"},"status":{"type":"string"},"targetBuckets":{"items":{"type":"string"},"type":"array"},"targetFileSystemIds":{"items":{"type":"string"},"type":"array"},"targetInstanceIds":{"items":{"type":"string"},"type":"array"},"vaultIds":{"items":{"type":"string"},"type":"array"}},"required":["ids","jobs","restoreType","id"],"type":"object"}},"alicloud:hbr/getServerBackupPlans:getServerBackupPlans":{"description":"This data source provides the Hbr Server Backup Plans of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.142.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.ecs.getInstances({\n    nameRegex: \"no-deleteing-hbr-ecs-server-backup-plan\",\n    status: \"Running\",\n});\nconst ids = _default.then(_default =\u003e alicloud.hbr.getServerBackupPlans({\n    filters: [{\n        key: \"instanceId\",\n        values: [_default.instances?.[0]?.id],\n    }],\n}));\nexport const hbrServerBackupPlanId1 = ids.then(ids =\u003e ids.plans?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ecs.get_instances(name_regex=\"no-deleteing-hbr-ecs-server-backup-plan\",\n    status=\"Running\")\nids = alicloud.hbr.get_server_backup_plans(filters=[{\n    \"key\": \"instanceId\",\n    \"values\": [default.instances[0].id],\n}])\npulumi.export(\"hbrServerBackupPlanId1\", ids.plans[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Ecs.GetInstances.Invoke(new()\n    {\n        NameRegex = \"no-deleteing-hbr-ecs-server-backup-plan\",\n        Status = \"Running\",\n    });\n\n    var ids = AliCloud.Hbr.GetServerBackupPlans.Invoke(new()\n    {\n        Filters = new[]\n        {\n            new AliCloud.Hbr.Inputs.GetServerBackupPlansFilterInputArgs\n            {\n                Key = \"instanceId\",\n                Values = new[]\n                {\n                    @default.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n                },\n            },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"hbrServerBackupPlanId1\"] = ids.Apply(getServerBackupPlansResult =\u003e getServerBackupPlansResult.Plans[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := ecs.GetInstances(ctx, \u0026ecs.GetInstancesArgs{\nNameRegex: pulumi.StringRef(\"no-deleteing-hbr-ecs-server-backup-plan\"),\nStatus: pulumi.StringRef(\"Running\"),\n}, nil);\nif err != nil {\nreturn err\n}\nids, err := hbr.GetServerBackupPlans(ctx, \u0026hbr.GetServerBackupPlansArgs{\nFilters: []hbr.GetServerBackupPlansFilter{\n{\nKey: pulumi.StringRef(\"instanceId\"),\nValues: interface{}{\n_default.Instances[0].Id,\n},\n},\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"hbrServerBackupPlanId1\", ids.Plans[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetServerBackupPlansArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = EcsFunctions.getInstances(GetInstancesArgs.builder()\n            .nameRegex(\"no-deleteing-hbr-ecs-server-backup-plan\")\n            .status(\"Running\")\n            .build());\n\n        final var ids = HbrFunctions.getServerBackupPlans(GetServerBackupPlansArgs.builder()\n            .filters(GetServerBackupPlansFilterArgs.builder()\n                .key(\"instanceId\")\n                .values(default_.instances()[0].id())\n                .build())\n            .build());\n\n        ctx.export(\"hbrServerBackupPlanId1\", ids.plans()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ecs:getInstances\n      arguments:\n        nameRegex: no-deleteing-hbr-ecs-server-backup-plan\n        status: Running\n  ids:\n    fn::invoke:\n      function: alicloud:hbr:getServerBackupPlans\n      arguments:\n        filters:\n          - key: instanceId\n            values:\n              - ${default.instances[0].id}\noutputs:\n  hbrServerBackupPlanId1: ${ids.plans[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerBackupPlans.\n","properties":{"filters":{"type":"array","items":{"$ref":"#/types/alicloud:hbr/getServerBackupPlansFilter:getServerBackupPlansFilter"},"description":"The filters.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Server Backup Plan IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServerBackupPlans.\n","properties":{"filters":{"items":{"$ref":"#/types/alicloud:hbr/getServerBackupPlansFilter:getServerBackupPlansFilter"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"plans":{"items":{"$ref":"#/types/alicloud:hbr/getServerBackupPlansPlan:getServerBackupPlansPlan"},"type":"array"}},"required":["ids","plans","id"],"type":"object"}},"alicloud:hbr/getService:getService":{"description":"Using this data source can open HBR service automatically. If the service has been opened, it will return opened.\n\nFor information about HBR and how to use it, see [What is HBR](https://www.alibabacloud.com/help/en/hybrid-backup-recovery).\n\n\u003e **NOTE:** Available since v1.184.0+\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.hbr.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.hbr.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Hbr.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := hbr.GetService(ctx, \u0026hbr.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = HbrFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:hbr:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the HBR service that means you have read and agreed the [HBR Terms of Service](https://help.aliyun.com/document_detail/62906.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:hbr/getSnapshots:getSnapshots":{"description":"This data source provides the Hbr Snapshots of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.133.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.hbr.getEcsBackupPlans({\n    nameRegex: \"plan-tf-used-dont-delete\",\n});\nconst defaultGetOssBackupPlans = alicloud.hbr.getOssBackupPlans({\n    nameRegex: \"plan-tf-used-dont-delete\",\n});\nconst defaultGetNasBackupPlans = alicloud.hbr.getNasBackupPlans({\n    nameRegex: \"plan-tf-used-dont-delete\",\n});\nconst ecsSnapshots = Promise.all([_default, _default]).then(([_default, _default1]) =\u003e alicloud.hbr.getSnapshots({\n    sourceType: \"ECS_FILE\",\n    vaultId: _default.plans?.[0]?.vaultId,\n    instanceId: _default1.plans?.[0]?.instanceId,\n}));\nconst ossSnapshots = Promise.all([defaultGetOssBackupPlans, defaultGetOssBackupPlans]).then(([defaultGetOssBackupPlans, defaultGetOssBackupPlans1]) =\u003e alicloud.hbr.getSnapshots({\n    sourceType: \"OSS\",\n    vaultId: defaultGetOssBackupPlans.plans?.[0]?.vaultId,\n    bucket: defaultGetOssBackupPlans1.plans?.[0]?.bucket,\n    completeTime: \"2021-07-20T14:17:15CST,2021-07-24T14:17:15CST\",\n    completeTimeChecker: \"BETWEEN\",\n}));\nconst nasSnapshots = Promise.all([defaultGetNasBackupPlans, defaultGetNasBackupPlans, defaultGetNasBackupPlans]).then(([defaultGetNasBackupPlans, defaultGetNasBackupPlans1, defaultGetNasBackupPlans2]) =\u003e alicloud.hbr.getSnapshots({\n    sourceType: \"NAS\",\n    vaultId: defaultGetNasBackupPlans.plans?.[0]?.vaultId,\n    fileSystemId: defaultGetNasBackupPlans1.plans?.[0]?.fileSystemId,\n    createTime: defaultGetNasBackupPlans2.plans?.[0]?.createTime,\n    completeTime: \"2021-08-23T14:17:15CST\",\n    completeTimeChecker: \"GREATER_THAN_OR_EQUAL\",\n}));\nexport const hbrSnapshotId1 = nasSnapshots.then(nasSnapshots =\u003e nasSnapshots.snapshots?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.hbr.get_ecs_backup_plans(name_regex=\"plan-tf-used-dont-delete\")\ndefault_get_oss_backup_plans = alicloud.hbr.get_oss_backup_plans(name_regex=\"plan-tf-used-dont-delete\")\ndefault_get_nas_backup_plans = alicloud.hbr.get_nas_backup_plans(name_regex=\"plan-tf-used-dont-delete\")\necs_snapshots = alicloud.hbr.get_snapshots(source_type=\"ECS_FILE\",\n    vault_id=default.plans[0].vault_id,\n    instance_id=default.plans[0].instance_id)\noss_snapshots = alicloud.hbr.get_snapshots(source_type=\"OSS\",\n    vault_id=default_get_oss_backup_plans.plans[0].vault_id,\n    bucket=default_get_oss_backup_plans.plans[0].bucket,\n    complete_time=\"2021-07-20T14:17:15CST,2021-07-24T14:17:15CST\",\n    complete_time_checker=\"BETWEEN\")\nnas_snapshots = alicloud.hbr.get_snapshots(source_type=\"NAS\",\n    vault_id=default_get_nas_backup_plans.plans[0].vault_id,\n    file_system_id=default_get_nas_backup_plans.plans[0].file_system_id,\n    create_time=default_get_nas_backup_plans.plans[0].create_time,\n    complete_time=\"2021-08-23T14:17:15CST\",\n    complete_time_checker=\"GREATER_THAN_OR_EQUAL\")\npulumi.export(\"hbrSnapshotId1\", nas_snapshots.snapshots[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Hbr.GetEcsBackupPlans.Invoke(new()\n    {\n        NameRegex = \"plan-tf-used-dont-delete\",\n    });\n\n    var defaultGetOssBackupPlans = AliCloud.Hbr.GetOssBackupPlans.Invoke(new()\n    {\n        NameRegex = \"plan-tf-used-dont-delete\",\n    });\n\n    var defaultGetNasBackupPlans = AliCloud.Hbr.GetNasBackupPlans.Invoke(new()\n    {\n        NameRegex = \"plan-tf-used-dont-delete\",\n    });\n\n    var ecsSnapshots = AliCloud.Hbr.GetSnapshots.Invoke(new()\n    {\n        SourceType = \"ECS_FILE\",\n        VaultId = @default.Apply(getEcsBackupPlansResult =\u003e getEcsBackupPlansResult.Plans[0]?.VaultId),\n        InstanceId = @default.Apply(getEcsBackupPlansResult =\u003e getEcsBackupPlansResult.Plans[0]?.InstanceId),\n    });\n\n    var ossSnapshots = AliCloud.Hbr.GetSnapshots.Invoke(new()\n    {\n        SourceType = \"OSS\",\n        VaultId = defaultGetOssBackupPlans.Apply(getOssBackupPlansResult =\u003e getOssBackupPlansResult.Plans[0]?.VaultId),\n        Bucket = defaultGetOssBackupPlans.Apply(getOssBackupPlansResult =\u003e getOssBackupPlansResult.Plans[0]?.Bucket),\n        CompleteTime = \"2021-07-20T14:17:15CST,2021-07-24T14:17:15CST\",\n        CompleteTimeChecker = \"BETWEEN\",\n    });\n\n    var nasSnapshots = AliCloud.Hbr.GetSnapshots.Invoke(new()\n    {\n        SourceType = \"NAS\",\n        VaultId = defaultGetNasBackupPlans.Apply(getNasBackupPlansResult =\u003e getNasBackupPlansResult.Plans[0]?.VaultId),\n        FileSystemId = defaultGetNasBackupPlans.Apply(getNasBackupPlansResult =\u003e getNasBackupPlansResult.Plans[0]?.FileSystemId),\n        CreateTime = defaultGetNasBackupPlans.Apply(getNasBackupPlansResult =\u003e getNasBackupPlansResult.Plans[0]?.CreateTime),\n        CompleteTime = \"2021-08-23T14:17:15CST\",\n        CompleteTimeChecker = \"GREATER_THAN_OR_EQUAL\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"hbrSnapshotId1\"] = nasSnapshots.Apply(getSnapshotsResult =\u003e getSnapshotsResult.Snapshots[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := hbr.GetEcsBackupPlans(ctx, \u0026hbr.GetEcsBackupPlansArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"plan-tf-used-dont-delete\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetOssBackupPlans, err := hbr.GetOssBackupPlans(ctx, \u0026hbr.GetOssBackupPlansArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"plan-tf-used-dont-delete\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNasBackupPlans, err := hbr.GetNasBackupPlans(ctx, \u0026hbr.GetNasBackupPlansArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"plan-tf-used-dont-delete\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.GetSnapshots(ctx, \u0026hbr.GetSnapshotsArgs{\n\t\t\tSourceType: \"ECS_FILE\",\n\t\t\tVaultId:    _default.Plans[0].VaultId,\n\t\t\tInstanceId: pulumi.StringRef(_default.Plans[0].InstanceId),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hbr.GetSnapshots(ctx, \u0026hbr.GetSnapshotsArgs{\n\t\t\tSourceType:          \"OSS\",\n\t\t\tVaultId:             defaultGetOssBackupPlans.Plans[0].VaultId,\n\t\t\tBucket:              pulumi.StringRef(defaultGetOssBackupPlans.Plans[0].Bucket),\n\t\t\tCompleteTime:        pulumi.StringRef(\"2021-07-20T14:17:15CST,2021-07-24T14:17:15CST\"),\n\t\t\tCompleteTimeChecker: pulumi.StringRef(\"BETWEEN\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnasSnapshots, err := hbr.GetSnapshots(ctx, \u0026hbr.GetSnapshotsArgs{\n\t\t\tSourceType:          \"NAS\",\n\t\t\tVaultId:             defaultGetNasBackupPlans.Plans[0].VaultId,\n\t\t\tFileSystemId:        pulumi.StringRef(defaultGetNasBackupPlans.Plans[0].FileSystemId),\n\t\t\tCreateTime:          pulumi.StringRef(defaultGetNasBackupPlans.Plans[0].CreateTime),\n\t\t\tCompleteTime:        pulumi.StringRef(\"2021-08-23T14:17:15CST\"),\n\t\t\tCompleteTimeChecker: pulumi.StringRef(\"GREATER_THAN_OR_EQUAL\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"hbrSnapshotId1\", nasSnapshots.Snapshots[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetEcsBackupPlansArgs;\nimport com.pulumi.alicloud.hbr.inputs.GetOssBackupPlansArgs;\nimport com.pulumi.alicloud.hbr.inputs.GetNasBackupPlansArgs;\nimport com.pulumi.alicloud.hbr.inputs.GetSnapshotsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = HbrFunctions.getEcsBackupPlans(GetEcsBackupPlansArgs.builder()\n            .nameRegex(\"plan-tf-used-dont-delete\")\n            .build());\n\n        final var defaultGetOssBackupPlans = HbrFunctions.getOssBackupPlans(GetOssBackupPlansArgs.builder()\n            .nameRegex(\"plan-tf-used-dont-delete\")\n            .build());\n\n        final var defaultGetNasBackupPlans = HbrFunctions.getNasBackupPlans(GetNasBackupPlansArgs.builder()\n            .nameRegex(\"plan-tf-used-dont-delete\")\n            .build());\n\n        final var ecsSnapshots = HbrFunctions.getSnapshots(GetSnapshotsArgs.builder()\n            .sourceType(\"ECS_FILE\")\n            .vaultId(default_.plans()[0].vaultId())\n            .instanceId(default_.plans()[0].instanceId())\n            .build());\n\n        final var ossSnapshots = HbrFunctions.getSnapshots(GetSnapshotsArgs.builder()\n            .sourceType(\"OSS\")\n            .vaultId(defaultGetOssBackupPlans.plans()[0].vaultId())\n            .bucket(defaultGetOssBackupPlans.plans()[0].bucket())\n            .completeTime(\"2021-07-20T14:17:15CST,2021-07-24T14:17:15CST\")\n            .completeTimeChecker(\"BETWEEN\")\n            .build());\n\n        final var nasSnapshots = HbrFunctions.getSnapshots(GetSnapshotsArgs.builder()\n            .sourceType(\"NAS\")\n            .vaultId(defaultGetNasBackupPlans.plans()[0].vaultId())\n            .fileSystemId(defaultGetNasBackupPlans.plans()[0].fileSystemId())\n            .createTime(defaultGetNasBackupPlans.plans()[0].createTime())\n            .completeTime(\"2021-08-23T14:17:15CST\")\n            .completeTimeChecker(\"GREATER_THAN_OR_EQUAL\")\n            .build());\n\n        ctx.export(\"hbrSnapshotId1\", nasSnapshots.snapshots()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:hbr:getEcsBackupPlans\n      arguments:\n        nameRegex: plan-tf-used-dont-delete\n  defaultGetOssBackupPlans:\n    fn::invoke:\n      function: alicloud:hbr:getOssBackupPlans\n      arguments:\n        nameRegex: plan-tf-used-dont-delete\n  defaultGetNasBackupPlans:\n    fn::invoke:\n      function: alicloud:hbr:getNasBackupPlans\n      arguments:\n        nameRegex: plan-tf-used-dont-delete\n  ecsSnapshots:\n    fn::invoke:\n      function: alicloud:hbr:getSnapshots\n      arguments:\n        sourceType: ECS_FILE\n        vaultId: ${default.plans[0].vaultId}\n        instanceId: ${default.plans[0].instanceId}\n  ossSnapshots:\n    fn::invoke:\n      function: alicloud:hbr:getSnapshots\n      arguments:\n        sourceType: OSS\n        vaultId: ${defaultGetOssBackupPlans.plans[0].vaultId}\n        bucket: ${defaultGetOssBackupPlans.plans[0].bucket}\n        completeTime: 2021-07-20T14:17:15CST,2021-07-24T14:17:15CST\n        completeTimeChecker: BETWEEN\n  nasSnapshots:\n    fn::invoke:\n      function: alicloud:hbr:getSnapshots\n      arguments:\n        sourceType: NAS\n        vaultId: ${defaultGetNasBackupPlans.plans[0].vaultId}\n        fileSystemId: ${defaultGetNasBackupPlans.plans[0].fileSystemId}\n        createTime: ${defaultGetNasBackupPlans.plans[0].createTime}\n        completeTime: 2021-08-23T14:17:15CST\n        completeTimeChecker: GREATER_THAN_OR_EQUAL\noutputs:\n  hbrSnapshotId1: ${nasSnapshots.snapshots[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSnapshots.\n","properties":{"bucket":{"type":"string","description":"The bucket name of OSS. While\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `OSS`, this parameter must be set.\n"},"completeTime":{"type":"string","description":"Timestamp of Snapshot completion. Note The time format of the API adopts the ISO 8601 format, such as 2021-07-09T15:45:30CST or 2021-07-09T07:45:30Z. **Note**: While \u003cspan pulumi-lang-nodejs=\"`completeTimeChecker`\" pulumi-lang-dotnet=\"`CompleteTimeChecker`\" pulumi-lang-go=\"`completeTimeChecker`\" pulumi-lang-python=\"`complete_time_checker`\" pulumi-lang-yaml=\"`completeTimeChecker`\" pulumi-lang-java=\"`completeTimeChecker`\"\u003e`complete_time_checker`\u003c/span\u003e equals `BETWEEN`, this field should be formatted such as `\"2021-08-20T14:17:15CST,2021-08-26T14:17:15CST\"`, The first part of this string is the start time, the second part is the end time, and the two parts should be separated by commas.\n"},"completeTimeChecker":{"type":"string","description":"Complete time filter operator. Optional values: `MATCH_TERM`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL`, `LESS_THAN`, `LESS_THAN_OR_EQUAL`, `BETWEEN`.\n"},"createTime":{"type":"string","description":"File system creation timestamp of Nas. While\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `NAS`, this parameter must be set. **Note** The time format of the API adopts the ISO 8601 format, such as `2021-07-09T15:45:30CST` or `2021-07-09T07:45:30Z`.\n"},"fileSystemId":{"type":"string","description":"The File System ID of Nas. While\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `NAS`, this parameter must be set.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Snapshot IDs.\n"},"instanceId":{"type":"string","description":"The ID of ECS instance. The ecs backup client must have been installed on the host. While\u003cspan pulumi-lang-nodejs=\" sourceType \" pulumi-lang-dotnet=\" SourceType \" pulumi-lang-go=\" sourceType \" pulumi-lang-python=\" source_type \" pulumi-lang-yaml=\" sourceType \" pulumi-lang-java=\" sourceType \"\u003e source_type \u003c/span\u003eequals `ECS_FILE`, this parameter must be set.\n"},"limit":{"type":"integer"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"query":{"type":"string"},"sourceType":{"type":"string","description":"Data source type, valid values: `ECS_FILE`, `OSS`, `NAS`.\n"},"status":{"type":"string","description":"The status of snapshot, valid values: `COMPLETE`, `PARTIAL_COMPLETE`.\n"},"vaultId":{"type":"string","description":"The ID of Vault.\n"}},"type":"object","required":["sourceType","vaultId"]},"outputs":{"description":"A collection of values returned by getSnapshots.\n","properties":{"bucket":{"type":"string"},"completeTime":{"type":"string"},"completeTimeChecker":{"type":"string"},"createTime":{"type":"string"},"fileSystemId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"limit":{"type":"integer"},"outputFile":{"type":"string"},"query":{"type":"string"},"snapshots":{"items":{"$ref":"#/types/alicloud:hbr/getSnapshotsSnapshot:getSnapshotsSnapshot"},"type":"array"},"sourceType":{"type":"string"},"status":{"type":"string"},"vaultId":{"type":"string"}},"required":["ids","snapshots","sourceType","vaultId","id"],"type":"object"}},"alicloud:hbr/getUdmSnapshots:getUdmSnapshots":{"description":"This data source provides Hbr Udm Snapshot available to the user.[What is Udm Snapshot](https://next.api.alibabacloud.com/document/hbr/2017-09-08/DescribeUdmSnapshots)\n\n\u003e **NOTE:** Available since v1.253.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.hbr.getUdmSnapshots({\n    sourceType: \"UDM_ECS\",\n    startTime: 1642057551,\n    endTime: 1750927687,\n    instanceId: \"i-08qv5q4c4j****\",\n});\nexport const alicloudHbrUdmSnapshotExampleId = _default.then(_default =\u003e _default.snapshots?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.hbr.get_udm_snapshots(source_type=\"UDM_ECS\",\n    start_time=1642057551,\n    end_time=1750927687,\n    instance_id=\"i-08qv5q4c4j****\")\npulumi.export(\"alicloudHbrUdmSnapshotExampleId\", default.snapshots[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Hbr.GetUdmSnapshots.Invoke(new()\n    {\n        SourceType = \"UDM_ECS\",\n        StartTime = 1642057551,\n        EndTime = 1750927687,\n        InstanceId = \"i-08qv5q4c4j****\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudHbrUdmSnapshotExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getUdmSnapshotsResult =\u003e getUdmSnapshotsResult.Snapshots[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := hbr.GetUdmSnapshots(ctx, \u0026hbr.GetUdmSnapshotsArgs{\n\t\t\tSourceType: \"UDM_ECS\",\n\t\t\tStartTime:  1642057551,\n\t\t\tEndTime:    1750927687,\n\t\t\tInstanceId: \"i-08qv5q4c4j****\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudHbrUdmSnapshotExampleId\", _default.Snapshots[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetUdmSnapshotsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = HbrFunctions.getUdmSnapshots(GetUdmSnapshotsArgs.builder()\n            .sourceType(\"UDM_ECS\")\n            .startTime(1642057551)\n            .endTime(1750927687)\n            .instanceId(\"i-08qv5q4c4j****\")\n            .build());\n\n        ctx.export(\"alicloudHbrUdmSnapshotExampleId\", default_.snapshots()[0].id());\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:hbr:getUdmSnapshots\n      arguments:\n        sourceType: UDM_ECS\n        startTime: '1642057551'\n        endTime: '1750927687'\n        instanceId: i-08qv5q4c4j****\noutputs:\n  alicloudHbrUdmSnapshotExampleId: ${default.snapshots[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUdmSnapshots.\n","properties":{"diskId":{"type":"string","description":"Cloud disk ID. This field is valid only when SourceType = UDM_ECS_DISK.\n"},"endTime":{"type":"integer","description":"End Time\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Udm Snapshot IDs.\n"},"instanceId":{"type":"string","description":"ECS instance ID\n"},"jobId":{"type":"string","description":"The ID of the backup job that creates the snapshot.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"sourceType":{"type":"string","description":"Data source type. Only UDM_ECS and UDM_ECS_DISK are supported.\n"},"startTime":{"type":"integer","description":"Start Time\n"}},"type":"object","required":["endTime","instanceId","sourceType","startTime"]},"outputs":{"description":"A collection of values returned by getUdmSnapshots.\n","properties":{"diskId":{"description":"Cloud disk ID. This field is valid only when SourceType = UDM_ECS_DISK.\n","type":"string"},"endTime":{"type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Udm Snapshot IDs.\n","items":{"type":"string"},"type":"array"},"instanceId":{"description":"ECS instance ID\n","type":"string"},"jobId":{"description":"The ID of the backup job that creates the snapshot.\n","type":"string"},"outputFile":{"type":"string"},"snapshots":{"description":"A list of Udm Snapshot Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:hbr/getUdmSnapshotsSnapshot:getUdmSnapshotsSnapshot"},"type":"array"},"sourceType":{"description":"Data source type. Only UDM_ECS and UDM_ECS_DISK are supported.\n","type":"string"},"startTime":{"description":"Start Time\n","type":"integer"}},"required":["endTime","ids","instanceId","snapshots","sourceType","startTime","id"],"type":"object"}},"alicloud:hbr/getVaults:getVaults":{"description":"This data source provides the Hbr Vaults of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.129.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.hbr.getVaults({\n    nameRegex: \"^my-Vault\",\n});\nexport const hbrVaultId1 = ids.then(ids =\u003e ids.vaults?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.hbr.get_vaults(name_regex=\"^my-Vault\")\npulumi.export(\"hbrVaultId1\", ids.vaults[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Hbr.GetVaults.Invoke(new()\n    {\n        NameRegex = \"^my-Vault\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"hbrVaultId1\"] = ids.Apply(getVaultsResult =\u003e getVaultsResult.Vaults[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/hbr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := hbr.GetVaults(ctx, \u0026hbr.GetVaultsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Vault\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"hbrVaultId1\", ids.Vaults[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.hbr.HbrFunctions;\nimport com.pulumi.alicloud.hbr.inputs.GetVaultsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = HbrFunctions.getVaults(GetVaultsArgs.builder()\n            .nameRegex(\"^my-Vault\")\n            .build());\n\n        ctx.export(\"hbrVaultId1\", ids.vaults()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:hbr:getVaults\n      arguments:\n        nameRegex: ^my-Vault\noutputs:\n  hbrVaultId1: ${ids.vaults[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVaults.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Vault IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Vault name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of Vault. Valid values: `CREATED`, `ERROR`, `UNKNOWN`.\n"},"vaultType":{"type":"string","description":"VaultType. Valid values: `STANDARD`,`OTS_BACKUP`.\n- `STANDARD` - used in OSS, NAS and ECS File backup.\n- `OTS_BACKUP` -  used in OTS backup.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVaults.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"},"vaultType":{"type":"string"},"vaults":{"items":{"$ref":"#/types/alicloud:hbr/getVaultsVault:getVaultsVault"},"type":"array"}},"required":["ids","names","vaults","id"],"type":"object"}},"alicloud:imm/getProjects:getProjects":{"description":"This data source provides the Intelligent Media Management Projects of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.134.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.imm.getProjects({\n    ids: [\"example_id\"],\n});\nexport const immProjectId1 = ids.then(ids =\u003e ids.projects?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.imm.get_projects(ids=[\"example_id\"])\npulumi.export(\"immProjectId1\", ids.projects[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Imm.GetProjects.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"immProjectId1\"] = ids.Apply(getProjectsResult =\u003e getProjectsResult.Projects[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/imm\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := imm.GetProjects(ctx, \u0026imm.GetProjectsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"immProjectId1\", ids.Projects[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.imm.ImmFunctions;\nimport com.pulumi.alicloud.imm.inputs.GetProjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ImmFunctions.getProjects(GetProjectsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"immProjectId1\", ids.projects()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:imm:getProjects\n      arguments:\n        ids:\n          - example_id\noutputs:\n  immProjectId1: ${ids.projects[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProjects.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Project IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getProjects.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"projects":{"items":{"$ref":"#/types/alicloud:imm/getProjectsProject:getProjectsProject"},"type":"array"}},"required":["ids","projects","id"],"type":"object"}},"alicloud:imp/getAppTemplates:getAppTemplates":{"description":"This data source provides the Imp App Templates of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.137.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.imp.getAppTemplates({});\nexport const impAppTemplateId1 = ids.then(ids =\u003e ids.templates?.[0]?.id);\nconst nameRegex = alicloud.imp.getAppTemplates({\n    nameRegex: \"^my_AppTemplate\",\n});\nexport const impAppTemplateId2 = nameRegex.then(nameRegex =\u003e nameRegex.templates?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.imp.get_app_templates()\npulumi.export(\"impAppTemplateId1\", ids.templates[0].id)\nname_regex = alicloud.imp.get_app_templates(name_regex=\"^my_AppTemplate\")\npulumi.export(\"impAppTemplateId2\", name_regex.templates[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Imp.GetAppTemplates.Invoke();\n\n    var nameRegex = AliCloud.Imp.GetAppTemplates.Invoke(new()\n    {\n        NameRegex = \"^my_AppTemplate\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"impAppTemplateId1\"] = ids.Apply(getAppTemplatesResult =\u003e getAppTemplatesResult.Templates[0]?.Id),\n        [\"impAppTemplateId2\"] = nameRegex.Apply(getAppTemplatesResult =\u003e getAppTemplatesResult.Templates[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/imp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := imp.GetAppTemplates(ctx, \u0026imp.GetAppTemplatesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"impAppTemplateId1\", ids.Templates[0].Id)\n\t\tnameRegex, err := imp.GetAppTemplates(ctx, \u0026imp.GetAppTemplatesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my_AppTemplate\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"impAppTemplateId2\", nameRegex.Templates[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.imp.ImpFunctions;\nimport com.pulumi.alicloud.imp.inputs.GetAppTemplatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ImpFunctions.getAppTemplates(GetAppTemplatesArgs.builder()\n            .build());\n\n        ctx.export(\"impAppTemplateId1\", ids.templates()[0].id());\n        final var nameRegex = ImpFunctions.getAppTemplates(GetAppTemplatesArgs.builder()\n            .nameRegex(\"^my_AppTemplate\")\n            .build());\n\n        ctx.export(\"impAppTemplateId2\", nameRegex.templates()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:imp:getAppTemplates\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:imp:getAppTemplates\n      arguments:\n        nameRegex: ^my_AppTemplate\noutputs:\n  impAppTemplateId1: ${ids.templates[0].id}\n  impAppTemplateId2: ${nameRegex.templates[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAppTemplates.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of App Template IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by App Template name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"Application template usage status. Valid values: [\"attached\", \"unattached\"].\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAppTemplates.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"},"templates":{"items":{"$ref":"#/types/alicloud:imp/getAppTemplatesTemplate:getAppTemplatesTemplate"},"type":"array"}},"required":["ids","names","templates","id"],"type":"object"}},"alicloud:ims/getOidcProviders:getOidcProviders":{"description":"This data source provides Ims Oidc Provider available to the user.[What is Oidc Provider](https://next.api.alibabacloud.com/document/Ims/2019-08-15/CreateOIDCProvider)\n\n\u003e **NOTE:** Available since v1.248.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst oidcProviderName = config.get(\"oidcProviderName\") || \"amp-resource-example-oidc-provider\";\nconst defaultOidcProvider = new alicloud.ims.OidcProvider(\"default\", {\n    description: oidcProviderName,\n    issuerUrl: \"https://oauth.aliyun.com\",\n    fingerprints: [\"0BBFAB97059595E8D1EC48E89EB8657C0E5AAE71\"],\n    issuanceLimitTime: 12,\n    oidcProviderName: oidcProviderName,\n    clientIds: [\n        \"123\",\n        \"456\",\n    ],\n});\nconst _default = alicloud.ims.getOidcProvidersOutput({\n    ids: [defaultOidcProvider.id],\n});\nexport const alicloudImsOidcProviderExampleId = _default.apply(_default =\u003e _default.providers?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\noidc_provider_name = config.get(\"oidcProviderName\")\nif oidc_provider_name is None:\n    oidc_provider_name = \"amp-resource-example-oidc-provider\"\ndefault_oidc_provider = alicloud.ims.OidcProvider(\"default\",\n    description=oidc_provider_name,\n    issuer_url=\"https://oauth.aliyun.com\",\n    fingerprints=[\"0BBFAB97059595E8D1EC48E89EB8657C0E5AAE71\"],\n    issuance_limit_time=12,\n    oidc_provider_name=oidc_provider_name,\n    client_ids=[\n        \"123\",\n        \"456\",\n    ])\ndefault = alicloud.ims.get_oidc_providers_output(ids=[default_oidc_provider.id])\npulumi.export(\"alicloudImsOidcProviderExampleId\", default.providers[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var oidcProviderName = config.Get(\"oidcProviderName\") ?? \"amp-resource-example-oidc-provider\";\n    var defaultOidcProvider = new AliCloud.Ims.OidcProvider(\"default\", new()\n    {\n        Description = oidcProviderName,\n        IssuerUrl = \"https://oauth.aliyun.com\",\n        Fingerprints = new[]\n        {\n            \"0BBFAB97059595E8D1EC48E89EB8657C0E5AAE71\",\n        },\n        IssuanceLimitTime = 12,\n        OidcProviderName = oidcProviderName,\n        ClientIds = new[]\n        {\n            \"123\",\n            \"456\",\n        },\n    });\n\n    var @default = AliCloud.Ims.GetOidcProviders.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultOidcProvider.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudImsOidcProviderExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getOidcProvidersResult =\u003e getOidcProvidersResult.Providers[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ims\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\noidcProviderName := \"amp-resource-example-oidc-provider\";\nif param := cfg.Get(\"oidcProviderName\"); param != \"\"{\noidcProviderName = param\n}\ndefaultOidcProvider, err := ims.NewOidcProvider(ctx, \"default\", \u0026ims.OidcProviderArgs{\nDescription: pulumi.String(oidcProviderName),\nIssuerUrl: pulumi.String(\"https://oauth.aliyun.com\"),\nFingerprints: pulumi.StringArray{\npulumi.String(\"0BBFAB97059595E8D1EC48E89EB8657C0E5AAE71\"),\n},\nIssuanceLimitTime: pulumi.Int(12),\nOidcProviderName: pulumi.String(oidcProviderName),\nClientIds: pulumi.StringArray{\npulumi.String(\"123\"),\npulumi.String(\"456\"),\n},\n})\nif err != nil {\nreturn err\n}\n_default := ims.GetOidcProvidersOutput(ctx, ims.GetOidcProvidersOutputArgs{\nIds: pulumi.StringArray{\ndefaultOidcProvider.ID(),\n},\n}, nil);\nctx.Export(\"alicloudImsOidcProviderExampleId\", _default.ApplyT(func(_default ims.GetOidcProvidersResult) (*string, error) {\nreturn \u0026default.Providers[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ims.OidcProvider;\nimport com.pulumi.alicloud.ims.OidcProviderArgs;\nimport com.pulumi.alicloud.ims.ImsFunctions;\nimport com.pulumi.alicloud.ims.inputs.GetOidcProvidersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var oidcProviderName = config.get(\"oidcProviderName\").orElse(\"amp-resource-example-oidc-provider\");\n        var defaultOidcProvider = new OidcProvider(\"defaultOidcProvider\", OidcProviderArgs.builder()\n            .description(oidcProviderName)\n            .issuerUrl(\"https://oauth.aliyun.com\")\n            .fingerprints(\"0BBFAB97059595E8D1EC48E89EB8657C0E5AAE71\")\n            .issuanceLimitTime(12)\n            .oidcProviderName(oidcProviderName)\n            .clientIds(            \n                \"123\",\n                \"456\")\n            .build());\n\n        final var default = ImsFunctions.getOidcProviders(GetOidcProvidersArgs.builder()\n            .ids(defaultOidcProvider.id())\n            .build());\n\n        ctx.export(\"alicloudImsOidcProviderExampleId\", default_.applyValue(_default_ -\u003e _default_.providers()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  oidcProviderName:\n    type: string\n    default: amp-resource-example-oidc-provider\nresources:\n  defaultOidcProvider:\n    type: alicloud:ims:OidcProvider\n    name: default\n    properties:\n      description: ${oidcProviderName}\n      issuerUrl: https://oauth.aliyun.com\n      fingerprints:\n        - 0BBFAB97059595E8D1EC48E89EB8657C0E5AAE71\n      issuanceLimitTime: '12'\n      oidcProviderName: ${oidcProviderName}\n      clientIds:\n        - '123'\n        - '456'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ims:getOidcProviders\n      arguments:\n        ids:\n          - ${defaultOidcProvider.id}\noutputs:\n  alicloudImsOidcProviderExampleId: ${default.providers[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOidcProviders.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Oidc Provider IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getOidcProviders.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Oidc Provider IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Oidc Providers.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"providers":{"description":"A list of Oidc Provider Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ims/getOidcProvidersProvider:getOidcProvidersProvider"},"type":"array"}},"required":["ids","names","providers","id"],"type":"object"}},"alicloud:index/getAccount:getAccount":{"description":"This data source provides information about the current account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst current = alicloud.getAccount({});\nexport const currentAccountId = current.then(current =\u003e current.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ncurrent = alicloud.get_account()\npulumi.export(\"currentAccountId\", current.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var current = AliCloud.GetAccount.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"currentAccountId\"] = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := alicloud.GetAccount(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"currentAccountId\", current.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var current = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        ctx.export(\"currentAccountId\", current.id());\n    }\n}\n```\n```yaml\nvariables:\n  current:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\noutputs:\n  currentAccountId: ${current.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getAccount.\n","properties":{"id":{"description":"Account ID (e.g. \"1239306421830812\"). It can be used to construct an ARN.\n","type":"string"}},"required":["id"],"type":"object"}},"alicloud:index/getCallerIdentity:getCallerIdentity":{"description":"This data source provides the identity of the current user.\n\n\u003e **NOTE:** Available in 1.65.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst current = alicloud.getCallerIdentity({});\nexport const currentUserArn = current.then(current =\u003e current.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ncurrent = alicloud.get_caller_identity()\npulumi.export(\"currentUserArn\", current.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var current = AliCloud.GetCallerIdentity.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"currentUserArn\"] = current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := alicloud.GetCallerIdentity(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"currentUserArn\", current.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var current = AlicloudFunctions.getCallerIdentity(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        ctx.export(\"currentUserArn\", current.id());\n    }\n}\n```\n```yaml\nvariables:\n  current:\n    fn::invoke:\n      function: alicloud:getCallerIdentity\n      arguments: {}\noutputs:\n  currentUserArn: ${current.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getCallerIdentity.\n","properties":{"accountId":{"description":"Account ID.\n","type":"string"},"arn":{"description":"The Alibaba Cloud Resource Name (ARN) of the user making the call.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"identityType":{"description":"The type of the princiapal. RAMUser for users.\n","type":"string"}},"required":["accountId","arn","identityType","id"],"type":"object"}},"alicloud:index/getFileCrc64Checksum:getFileCrc64Checksum":{"description":"This data source compute file crc64 checksum.\n\n\u003e **NOTE:** Available in 1.59.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getFileCrc64Checksum({\n    filename: \"exampleFileName\",\n});\nexport const fileCrc64Checksum = defualt.checksum;\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_file_crc64_checksum(filename=\"exampleFileName\")\npulumi.export(\"fileCrc64Checksum\", defualt[\"checksum\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetFileCrc64Checksum.Invoke(new()\n    {\n        Filename = \"exampleFileName\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"fileCrc64Checksum\"] = defualt.Checksum,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := alicloud.GetFileCrc64Checksum(ctx, \u0026alicloud.GetFileCrc64ChecksumArgs{\n\t\t\tFilename: \"exampleFileName\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"fileCrc64Checksum\", defualt.Checksum)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetFileCrc64ChecksumArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getFileCrc64Checksum(GetFileCrc64ChecksumArgs.builder()\n            .filename(\"exampleFileName\")\n            .build());\n\n        ctx.export(\"fileCrc64Checksum\", defualt.checksum());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getFileCrc64Checksum\n      arguments:\n        filename: exampleFileName\noutputs:\n  fileCrc64Checksum: ${defualt.checksum}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFileCrc64Checksum.\n","properties":{"filename":{"type":"string","description":"The name of the file to be computed crc64 checksum.\n"},"outputFile":{"type":"string"}},"type":"object","required":["filename"]},"outputs":{"description":"A collection of values returned by getFileCrc64Checksum.\n","properties":{"checksum":{"description":"the file checksum of crc64.\n","type":"string"},"filename":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"}},"required":["checksum","filename","id"],"type":"object"}},"alicloud:index/getMscSubContactVerificationMessage:getMscSubContactVerificationMessage":{"description":"\u003e **NOTE:** Available since v1.156.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst defaultMscSubContract = new alicloud.MscSubContract(\"default\", {\n    contactName: \"example_value\",\n    position: \"CEO\",\n    email: \"123@163.com\",\n    mobile: \"153xxxxx906\",\n});\nconst _default = defaultMscSubContract.id.apply(id =\u003e alicloud.getMscSubContactVerificationMessageOutput({\n    contactId: id,\n    type: 1,\n}));\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault_msc_sub_contract = alicloud.MscSubContract(\"default\",\n    contact_name=\"example_value\",\n    position=\"CEO\",\n    email=\"123@163.com\",\n    mobile=\"153xxxxx906\")\ndefault = default_msc_sub_contract.id.apply(lambda id: alicloud.get_msc_sub_contact_verification_message_output(contact_id=id,\n    type=1))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultMscSubContract = new AliCloud.MscSubContract(\"default\", new()\n    {\n        ContactName = \"example_value\",\n        Position = \"CEO\",\n        Email = \"123@163.com\",\n        Mobile = \"153xxxxx906\",\n    });\n\n    var @default = AliCloud.GetMscSubContactVerificationMessage.Invoke(new()\n    {\n        ContactId = defaultMscSubContract.Id,\n        Type = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultMscSubContract, err := alicloud.NewMscSubContract(ctx, \"default\", \u0026alicloud.MscSubContractArgs{\n\t\t\tContactName: pulumi.String(\"example_value\"),\n\t\t\tPosition:    pulumi.String(\"CEO\"),\n\t\t\tEmail:       pulumi.String(\"123@163.com\"),\n\t\t\tMobile:      pulumi.String(\"153xxxxx906\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = defaultMscSubContract.ID().ApplyT(func(id string) (alicloud.GetMscSubContactVerificationMessageResult, error) {\n\t\t\treturn alicloud.GetMscSubContactVerificationMessageResult(interface{}(alicloud.GetMscSubContactVerificationMessage(ctx, \u0026alicloud.GetMscSubContactVerificationMessageArgs{\n\t\t\t\tContactId: id,\n\t\t\t\tType:      1,\n\t\t\t}, nil))), nil\n\t\t}).(alicloud.GetMscSubContactVerificationMessageResultOutput)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.MscSubContract;\nimport com.pulumi.alicloud.MscSubContractArgs;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetMscSubContactVerificationMessageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultMscSubContract = new MscSubContract(\"defaultMscSubContract\", MscSubContractArgs.builder()\n            .contactName(\"example_value\")\n            .position(\"CEO\")\n            .email(\"123@163.com\")\n            .mobile(\"153xxxxx906\")\n            .build());\n\n        final var default = defaultMscSubContract.id().applyValue(_id -\u003e AlicloudFunctions.getMscSubContactVerificationMessage(GetMscSubContactVerificationMessageArgs.builder()\n            .contactId(_id)\n            .type(1)\n            .build()));\n\n    }\n}\n```\n```yaml\nresources:\n  defaultMscSubContract:\n    type: alicloud:MscSubContract\n    name: default\n    properties:\n      contactName: example_value\n      position: CEO\n      email: 123@163.com\n      mobile: 153xxxxx906\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getMscSubContactVerificationMessage\n      arguments:\n        contactId: ${defaultMscSubContract.id}\n        type: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMscSubContactVerificationMessage.\n","properties":{"contactId":{"type":"string","description":"The ID of the Contact.\n"},"type":{"type":"integer","description":"How a user receives verification messages. Valid values : \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e.\n"}},"type":"object","required":["contactId","type"]},"outputs":{"description":"A collection of values returned by getMscSubContactVerificationMessage.\n","properties":{"contactId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The sending status of the message. Valid values : `Success`, `Failed`.\n","type":"string"},"type":{"type":"integer"}},"required":["contactId","status","type","id"],"type":"object"}},"alicloud:index/getMscSubContacts:getMscSubContacts":{"description":"This data source provides the Message Center Contacts of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.132.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.getMscSubContacts({});\nexport const mscSubContactId1 = ids.then(ids =\u003e ids.contacts?.[0]?.id);\nconst nameRegex = alicloud.getMscSubContacts({\n    nameRegex: \"^my-Contact\",\n});\nexport const mscSubContactId2 = nameRegex.then(nameRegex =\u003e nameRegex.contacts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.get_msc_sub_contacts()\npulumi.export(\"mscSubContactId1\", ids.contacts[0].id)\nname_regex = alicloud.get_msc_sub_contacts(name_regex=\"^my-Contact\")\npulumi.export(\"mscSubContactId2\", name_regex.contacts[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.GetMscSubContacts.Invoke();\n\n    var nameRegex = AliCloud.GetMscSubContacts.Invoke(new()\n    {\n        NameRegex = \"^my-Contact\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mscSubContactId1\"] = ids.Apply(getMscSubContactsResult =\u003e getMscSubContactsResult.Contacts[0]?.Id),\n        [\"mscSubContactId2\"] = nameRegex.Apply(getMscSubContactsResult =\u003e getMscSubContactsResult.Contacts[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := alicloud.GetMscSubContacts(ctx, \u0026alicloud.GetMscSubContactsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mscSubContactId1\", ids.Contacts[0].Id)\n\t\tnameRegex, err := alicloud.GetMscSubContacts(ctx, \u0026alicloud.GetMscSubContactsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Contact\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mscSubContactId2\", nameRegex.Contacts[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetMscSubContactsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = AlicloudFunctions.getMscSubContacts(GetMscSubContactsArgs.builder()\n            .build());\n\n        ctx.export(\"mscSubContactId1\", ids.contacts()[0].id());\n        final var nameRegex = AlicloudFunctions.getMscSubContacts(GetMscSubContactsArgs.builder()\n            .nameRegex(\"^my-Contact\")\n            .build());\n\n        ctx.export(\"mscSubContactId2\", nameRegex.contacts()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:getMscSubContacts\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:getMscSubContacts\n      arguments:\n        nameRegex: ^my-Contact\noutputs:\n  mscSubContactId1: ${ids.contacts[0].id}\n  mscSubContactId2: ${nameRegex.contacts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMscSubContacts.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Contact IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Contact name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getMscSubContacts.\n","properties":{"contacts":{"description":"A list of Msc Sub Contacts. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:index/getMscSubContactsContact:getMscSubContactsContact"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Contact names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["contacts","ids","names","id"],"type":"object"}},"alicloud:index/getMscSubSubscriptions:getMscSubSubscriptions":{"description":"This data source provides the Message Center Subscriptions of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.135.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getMscSubSubscriptions({});\nexport const mscSubSubscriptionId1 = _default.then(_default =\u003e _default.subscriptions?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_msc_sub_subscriptions()\npulumi.export(\"mscSubSubscriptionId1\", default.subscriptions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetMscSubSubscriptions.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mscSubSubscriptionId1\"] = @default.Apply(@default =\u003e @default.Apply(getMscSubSubscriptionsResult =\u003e getMscSubSubscriptionsResult.Subscriptions[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetMscSubSubscriptions(ctx, \u0026alicloud.GetMscSubSubscriptionsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mscSubSubscriptionId1\", _default.Subscriptions[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetMscSubSubscriptionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = AlicloudFunctions.getMscSubSubscriptions(GetMscSubSubscriptionsArgs.builder()\n            .build());\n\n        ctx.export(\"mscSubSubscriptionId1\", default_.subscriptions()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getMscSubSubscriptions\n      arguments: {}\noutputs:\n  mscSubSubscriptionId1: ${default.subscriptions[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMscSubSubscriptions.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getMscSubSubscriptions.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"subscriptions":{"description":"A list of Msc Sub Subscriptions. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:index/getMscSubSubscriptionsSubscription:getMscSubSubscriptionsSubscription"},"type":"array"}},"required":["subscriptions","id"],"type":"object"}},"alicloud:index/getMscSubWebhooks:getMscSubWebhooks":{"description":"This data source provides the Msc Sub Webhooks of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.141.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.getMscSubWebhooks({\n    ids: [\"example_id\"],\n});\nexport const mscSubWebhookId1 = ids.then(ids =\u003e ids.webhooks?.[0]?.id);\nconst nameRegex = alicloud.getMscSubWebhooks({\n    nameRegex: \"^my-Webhook\",\n});\nexport const mscSubWebhookId2 = nameRegex.then(nameRegex =\u003e nameRegex.webhooks?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.get_msc_sub_webhooks(ids=[\"example_id\"])\npulumi.export(\"mscSubWebhookId1\", ids.webhooks[0].id)\nname_regex = alicloud.get_msc_sub_webhooks(name_regex=\"^my-Webhook\")\npulumi.export(\"mscSubWebhookId2\", name_regex.webhooks[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.GetMscSubWebhooks.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.GetMscSubWebhooks.Invoke(new()\n    {\n        NameRegex = \"^my-Webhook\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mscSubWebhookId1\"] = ids.Apply(getMscSubWebhooksResult =\u003e getMscSubWebhooksResult.Webhooks[0]?.Id),\n        [\"mscSubWebhookId2\"] = nameRegex.Apply(getMscSubWebhooksResult =\u003e getMscSubWebhooksResult.Webhooks[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := alicloud.GetMscSubWebhooks(ctx, \u0026alicloud.GetMscSubWebhooksArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mscSubWebhookId1\", ids.Webhooks[0].Id)\n\t\tnameRegex, err := alicloud.GetMscSubWebhooks(ctx, \u0026alicloud.GetMscSubWebhooksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Webhook\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mscSubWebhookId2\", nameRegex.Webhooks[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetMscSubWebhooksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = AlicloudFunctions.getMscSubWebhooks(GetMscSubWebhooksArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"mscSubWebhookId1\", ids.webhooks()[0].id());\n        final var nameRegex = AlicloudFunctions.getMscSubWebhooks(GetMscSubWebhooksArgs.builder()\n            .nameRegex(\"^my-Webhook\")\n            .build());\n\n        ctx.export(\"mscSubWebhookId2\", nameRegex.webhooks()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:getMscSubWebhooks\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:getMscSubWebhooks\n      arguments:\n        nameRegex: ^my-Webhook\noutputs:\n  mscSubWebhookId1: ${ids.webhooks[0].id}\n  mscSubWebhookId2: ${nameRegex.webhooks[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMscSubWebhooks.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Webhook IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Webhook name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getMscSubWebhooks.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Webhook names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"webhooks":{"description":"A list of Msc Sub Webhooks. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:index/getMscSubWebhooksWebhook:getMscSubWebhooksWebhook"},"type":"array"}},"required":["ids","names","webhooks","id"],"type":"object"}},"alicloud:index/getRegions:getRegions":{"description":"This data source provides Alibaba Cloud regions.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst currentRegionDs = alicloud.getRegions({\n    current: true,\n});\nexport const currentRegionId = currentRegionDs.then(currentRegionDs =\u003e currentRegionDs.regions?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ncurrent_region_ds = alicloud.get_regions(current=True)\npulumi.export(\"currentRegionId\", current_region_ds.regions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var currentRegionDs = AliCloud.GetRegions.Invoke(new()\n    {\n        Current = true,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"currentRegionId\"] = currentRegionDs.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrentRegionDs, err := alicloud.GetRegions(ctx, \u0026alicloud.GetRegionsArgs{\n\t\t\tCurrent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"currentRegionId\", currentRegionDs.Regions[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetRegionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var currentRegionDs = AlicloudFunctions.getRegions(GetRegionsArgs.builder()\n            .current(true)\n            .build());\n\n        ctx.export(\"currentRegionId\", currentRegionDs.regions()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  currentRegionDs:\n    fn::invoke:\n      function: alicloud:getRegions\n      arguments:\n        current: true\noutputs:\n  currentRegionId: ${currentRegionDs.regions[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRegions.\n","properties":{"current":{"type":"boolean","description":"Set to true to match only the region configured in the provider.\n"},"name":{"type":"string","description":"The name of the region to select, such as `eu-central-1`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n\n\u003e **NOTE:** You will get an error if you set \u003cspan pulumi-lang-nodejs=\"`current`\" pulumi-lang-dotnet=\"`Current`\" pulumi-lang-go=\"`current`\" pulumi-lang-python=\"`current`\" pulumi-lang-yaml=\"`current`\" pulumi-lang-java=\"`current`\"\u003e`current`\u003c/span\u003e to true and \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e to a different value from the one you configured in the provider.\nIt is better to either use \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`current`\" pulumi-lang-dotnet=\"`Current`\" pulumi-lang-go=\"`current`\" pulumi-lang-python=\"`current`\" pulumi-lang-yaml=\"`current`\" pulumi-lang-java=\"`current`\"\u003e`current`\u003c/span\u003e, but not both at the same time.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRegions.\n","properties":{"current":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of region IDs.\n","items":{"type":"string"},"type":"array"},"name":{"type":"string"},"outputFile":{"type":"string"},"regions":{"description":"A list of regions. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:index/getRegionsRegion:getRegionsRegion"},"type":"array"}},"required":["current","ids","name","regions","id"],"type":"object"}},"alicloud:index/getZones:getZones":{"description":"This data source provides availability zones that can be accessed by an Alibaba Cloud account within the region configured in the provider.\n\n\n\u003e **NOTE:** If one zone is sold out, it will not be exported.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst zonesDs = alicloud.getZones({\n    availableInstanceType: \"ecs.n4.large\",\n    availableDiskCategory: \"cloud_ssd\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nzones_ds = alicloud.get_zones(available_instance_type=\"ecs.n4.large\",\n    available_disk_category=\"cloud_ssd\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var zonesDs = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableInstanceType = \"ecs.n4.large\",\n        AvailableDiskCategory = \"cloud_ssd\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\t_, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableInstanceType: pulumi.StringRef(\"ecs.n4.large\"),\n\t\t\tAvailableDiskCategory: pulumi.StringRef(\"cloud_ssd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var zonesDs = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableInstanceType(\"ecs.n4.large\")\n            .availableDiskCategory(\"cloud_ssd\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  zonesDs:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableInstanceType: ecs.n4.large\n        availableDiskCategory: cloud_ssd\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"availableDiskCategory":{"type":"string","description":"Filter the results by a specific disk category. Can be either \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ephemeralSsd`\" pulumi-lang-dotnet=\"`EphemeralSsd`\" pulumi-lang-go=\"`ephemeralSsd`\" pulumi-lang-python=\"`ephemeral_ssd`\" pulumi-lang-yaml=\"`ephemeralSsd`\" pulumi-lang-java=\"`ephemeralSsd`\"\u003e`ephemeral_ssd`\u003c/span\u003e.\n"},"availableInstanceType":{"type":"string","description":"Filter the results by a specific instance type.\n"},"availableResourceCreation":{"type":"string","description":"Filter the results by a specific resource type.\nValid values: `Instance`, `Disk`, `VSwitch`, `Rds`, `KVStore`, `FunctionCompute`, `Elasticsearch`, `Slb`.\n\n\u003e **NOTE:** From version 1.134.0, the \u003cspan pulumi-lang-nodejs=\"`availableResourceCreation`\" pulumi-lang-dotnet=\"`AvailableResourceCreation`\" pulumi-lang-go=\"`availableResourceCreation`\" pulumi-lang-python=\"`available_resource_creation`\" pulumi-lang-yaml=\"`availableResourceCreation`\" pulumi-lang-java=\"`availableResourceCreation`\"\u003e`available_resource_creation`\u003c/span\u003e value \"Rds\" has been deprecated.\nIf you want to fetch the available zones for RDS instance, you can use datasource alicloud_db_zones\n"},"availableSlbAddressIpVersion":{"type":"string","description":"Filter the results by a slb instance address version. Can be either \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e.\n\n\u003e **NOTE:** The disk category \u003cspan pulumi-lang-nodejs=\"`cloud`\" pulumi-lang-dotnet=\"`Cloud`\" pulumi-lang-go=\"`cloud`\" pulumi-lang-python=\"`cloud`\" pulumi-lang-yaml=\"`cloud`\" pulumi-lang-java=\"`cloud`\"\u003e`cloud`\u003c/span\u003e has been outdated and can only be used by non-I/O Optimized ECS instances. Many availability zones don't support it. It is recommended to use \u003cspan pulumi-lang-nodejs=\"`cloudEfficiency`\" pulumi-lang-dotnet=\"`CloudEfficiency`\" pulumi-lang-go=\"`cloudEfficiency`\" pulumi-lang-python=\"`cloud_efficiency`\" pulumi-lang-yaml=\"`cloudEfficiency`\" pulumi-lang-java=\"`cloudEfficiency`\"\u003e`cloud_efficiency`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`cloudSsd`\" pulumi-lang-dotnet=\"`CloudSsd`\" pulumi-lang-go=\"`cloudSsd`\" pulumi-lang-python=\"`cloud_ssd`\" pulumi-lang-yaml=\"`cloudSsd`\" pulumi-lang-java=\"`cloudSsd`\"\u003e`cloud_ssd`\u003c/span\u003e.\n"},"availableSlbAddressType":{"type":"string","description":"Filter the results by a slb instance address type. Can be either `Vpc`, \u003cspan pulumi-lang-nodejs=\"`classicInternet`\" pulumi-lang-dotnet=\"`ClassicInternet`\" pulumi-lang-go=\"`classicInternet`\" pulumi-lang-python=\"`classic_internet`\" pulumi-lang-yaml=\"`classicInternet`\" pulumi-lang-java=\"`classicInternet`\"\u003e`classic_internet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`classicIntranet`\" pulumi-lang-dotnet=\"`ClassicIntranet`\" pulumi-lang-go=\"`classicIntranet`\" pulumi-lang-python=\"`classic_intranet`\" pulumi-lang-yaml=\"`classicIntranet`\" pulumi-lang-java=\"`classicIntranet`\"\u003e`classic_intranet`\u003c/span\u003e\n"},"enableDetails":{"type":"boolean","description":"Default to false and only output \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e in the \u003cspan pulumi-lang-nodejs=\"`zones`\" pulumi-lang-dotnet=\"`Zones`\" pulumi-lang-go=\"`zones`\" pulumi-lang-python=\"`zones`\" pulumi-lang-yaml=\"`zones`\" pulumi-lang-java=\"`zones`\"\u003e`zones`\u003c/span\u003e block. Set it to true can output more details.\n"},"instanceChargeType":{"type":"string","description":"Filter the results by a specific ECS instance charge type. Valid values: `PrePaid` and `PostPaid`. Default to `PostPaid`.\n"},"multi":{"type":"boolean","description":"Indicate whether the zones can be used in a multi AZ configuration. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Multi AZ is usually used to launch RDS instances.\n"},"networkType":{"type":"string","description":"Filter the results by a specific network type. Valid values: `Classic` and `Vpc`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"spotStrategy":{"type":"string","description":"- (Optional) Filter the results by a specific ECS spot type. Valid values: `NoSpot`, `SpotWithPriceLimit` and `SpotAsPriceGo`. Default to `NoSpot`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"availableDiskCategory":{"type":"string"},"availableInstanceType":{"type":"string"},"availableResourceCreation":{"description":"Type of resources that can be created.\n","type":"string"},"availableSlbAddressIpVersion":{"type":"string"},"availableSlbAddressType":{"type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of zone IDs.\n","items":{"type":"string"},"type":"array"},"instanceChargeType":{"type":"string"},"multi":{"type":"boolean"},"networkType":{"type":"string"},"outputFile":{"type":"string"},"spotStrategy":{"type":"string"},"zones":{"description":"A list of availability zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:index/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:iot/getDeviceGroups:getDeviceGroups":{"description":"This data source provides the Iot Device Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.134.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.iot.getDeviceGroups({});\nexport const iotDeviceGroupId1 = ids.then(ids =\u003e ids.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.iot.get_device_groups()\npulumi.export(\"iotDeviceGroupId1\", ids.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Iot.GetDeviceGroups.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"iotDeviceGroupId1\"] = ids.Apply(getDeviceGroupsResult =\u003e getDeviceGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/iot\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := iot.GetDeviceGroups(ctx, \u0026iot.GetDeviceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"iotDeviceGroupId1\", ids.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.iot.IotFunctions;\nimport com.pulumi.alicloud.iot.inputs.GetDeviceGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = IotFunctions.getDeviceGroups(GetDeviceGroupsArgs.builder()\n            .build());\n\n        ctx.export(\"iotDeviceGroupId1\", ids.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:iot:getDeviceGroups\n      arguments: {}\noutputs:\n  iotDeviceGroupId1: ${ids.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDeviceGroups.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"groupName":{"type":"string","description":"The GroupName of the device group.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of device group IDs.\n"},"iotInstanceId":{"type":"string","description":"The id of the Iot Instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter CEN instances by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"superGroupId":{"type":"string","description":"The id of the SuperGroup.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDeviceGroups.\n","properties":{"enableDetails":{"type":"boolean"},"groupName":{"type":"string"},"groups":{"items":{"$ref":"#/types/alicloud:iot/getDeviceGroupsGroup:getDeviceGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"iotInstanceId":{"type":"string"},"nameRegex":{"type":"string"},"outputFile":{"type":"string"},"superGroupId":{"type":"string"}},"required":["groups","ids","id"],"type":"object"}},"alicloud:iot/getService:getService":{"description":"Using this data source can open IOT service automatically. If the service has been opened, it will return opened.\n\nFor information about IOT and how to use it, see [What is IOT](https://www.alibabacloud.com/help/en/product/30520.htm).\n\n\u003e **NOTE:** Available in v1.115.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.iot.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.iot.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Iot.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/iot\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iot.GetService(ctx, \u0026iot.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.iot.IotFunctions;\nimport com.pulumi.alicloud.iot.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = IotFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:iot:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the IOT service that means you have read and agreed the [IOT Terms of Service](https://help.aliyun.com/document_detail/44548.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:kms/getAliases:getAliases":{"description":"This data source provides a list of KMS aliases in an Alibaba Cloud account according to the specified filters.\n \n\u003e **NOTE:** Available since v1.79.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst kmsAliases = alicloud.kms.getAliases({\n    ids: [\"d89e8a53-b708-41aa-8c67-6873axxx\"],\n    nameRegex: \"alias/tf-example\",\n});\nexport const firstKeyId = kmsAliases.then(kmsAliases =\u003e kmsAliases.aliases?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nkms_aliases = alicloud.kms.get_aliases(ids=[\"d89e8a53-b708-41aa-8c67-6873axxx\"],\n    name_regex=\"alias/tf-example\")\npulumi.export(\"firstKeyId\", kms_aliases.aliases[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var kmsAliases = AliCloud.Kms.GetAliases.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"d89e8a53-b708-41aa-8c67-6873axxx\",\n        },\n        NameRegex = \"alias/tf-example\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstKeyId\"] = kmsAliases.Apply(getAliasesResult =\u003e getAliasesResult.Aliases[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tkmsAliases, err := kms.GetAliases(ctx, \u0026kms.GetAliasesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"d89e8a53-b708-41aa-8c67-6873axxx\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"alias/tf-example\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstKeyId\", kmsAliases.Aliases[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.KmsFunctions;\nimport com.pulumi.alicloud.kms.inputs.GetAliasesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var kmsAliases = KmsFunctions.getAliases(GetAliasesArgs.builder()\n            .ids(\"d89e8a53-b708-41aa-8c67-6873axxx\")\n            .nameRegex(\"alias/tf-example\")\n            .build());\n\n        ctx.export(\"firstKeyId\", kmsAliases.aliases()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  kmsAliases:\n    fn::invoke:\n      function: alicloud:kms:getAliases\n      arguments:\n        ids:\n          - d89e8a53-b708-41aa-8c67-6873axxx\n        nameRegex: alias/tf-example\noutputs:\n  firstKeyId: ${kmsAliases.aliases[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAliases.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of KMS aliases IDs. The value is same as KMS alias_name.\n"},"nameRegex":{"type":"string","description":"A regex string to filter the results by the KMS alias name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAliases.\n","properties":{"aliases":{"description":"A list of KMS User alias. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:kms/getAliasesAlias:getAliasesAlias"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of kms aliases IDs. The value is same as KMS alias_name.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of KMS alias name.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["aliases","ids","names","id"],"type":"object"}},"alicloud:kms/getCiphertext:getCiphertext":{"description":"Encrypt a given plaintext with KMS. The plaintext gets re-encrypted on each apply, resulting in a changed ciphertext. If a stable ciphertext is needed use the \u003cspan pulumi-lang-nodejs=\"`alicloud.kms.Ciphertext`\" pulumi-lang-dotnet=\"`alicloud.kms.Ciphertext`\" pulumi-lang-go=\"`kms.Ciphertext`\" pulumi-lang-python=\"`kms.Ciphertext`\" pulumi-lang-yaml=\"`alicloud.kms.Ciphertext`\" pulumi-lang-java=\"`alicloud.kms.Ciphertext`\"\u003e`alicloud.kms.Ciphertext`\u003c/span\u003e resource.\n\n\u003e **NOTE:** Available since v1.63.0.\n\n\u003e **NOTE**: Using this data provider will allow you to conceal secret data within your resource definitions but does not take care of protecting that data in all Terraform logging and state output. Please take care to secure your secret data beyond just the Terraform configuration.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst key = new alicloud.kms.Key(\"key\", {\n    description: \"example key\",\n    isEnabled: true,\n});\nconst encrypted = alicloud.kms.getCiphertextOutput({\n    keyId: key.id,\n    plaintext: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nkey = alicloud.kms.Key(\"key\",\n    description=\"example key\",\n    is_enabled=True)\nencrypted = alicloud.kms.get_ciphertext_output(key_id=key.id,\n    plaintext=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var key = new AliCloud.Kms.Key(\"key\", new()\n    {\n        Description = \"example key\",\n        IsEnabled = true,\n    });\n\n    var encrypted = AliCloud.Kms.GetCiphertext.Invoke(new()\n    {\n        KeyId = key.Id,\n        Plaintext = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkey, err := kms.NewKey(ctx, \"key\", \u0026kms.KeyArgs{\n\t\t\tDescription: pulumi.String(\"example key\"),\n\t\t\tIsEnabled:   pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = kms.LookupCiphertextOutput(ctx, kms.GetCiphertextOutputArgs{\n\t\t\tKeyId:     key.ID(),\n\t\t\tPlaintext: pulumi.String(\"example\"),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.Key;\nimport com.pulumi.alicloud.kms.KeyArgs;\nimport com.pulumi.alicloud.kms.KmsFunctions;\nimport com.pulumi.alicloud.kms.inputs.GetCiphertextArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var key = new Key(\"key\", KeyArgs.builder()\n            .description(\"example key\")\n            .isEnabled(true)\n            .build());\n\n        final var encrypted = KmsFunctions.getCiphertext(GetCiphertextArgs.builder()\n            .keyId(key.id())\n            .plaintext(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  key:\n    type: alicloud:kms:Key\n    properties:\n      description: example key\n      isEnabled: true\nvariables:\n  encrypted:\n    fn::invoke:\n      function: alicloud:kms:getCiphertext\n      arguments:\n        keyId: ${key.id}\n        plaintext: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCiphertext.\n","properties":{"encryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"The Encryption context. If you specify this parameter here, it is also required when you call the Decrypt API operation. For more information, see [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm).\n"},"keyId":{"type":"string","description":"The globally unique ID of the CMK.\n"},"plaintext":{"type":"string","description":"The plaintext to be encrypted which must be encoded in Base64.\n","secret":true}},"type":"object","required":["keyId","plaintext"]},"outputs":{"description":"A collection of values returned by getCiphertext.\n","properties":{"ciphertextBlob":{"description":"The ciphertext of the data key encrypted with the primary CMK version.\n","type":"string"},"encryptionContext":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"keyId":{"type":"string"},"plaintext":{"secret":true,"type":"string"}},"required":["ciphertextBlob","keyId","plaintext","id"],"type":"object"}},"alicloud:kms/getInstances:getInstances":{"description":"This data source provides Kms Instance available to the user.[What is Instance](https://www.alibabacloud.com/help/en/)\n\n\u003e **NOTE:** Available since v1.242.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst current = alicloud.getAccount({});\nconst vpc_amp_instance_example = new alicloud.vpc.Network(\"vpc-amp-instance-example\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: name,\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    vpcId: vpc_amp_instance_example.id,\n    zoneId: \"cn-hangzhou-k\",\n    cidrBlock: \"172.16.1.0/24\",\n});\nconst vswitch_j = new alicloud.vpc.Switch(\"vswitch-j\", {\n    vpcId: vpc_amp_instance_example.id,\n    zoneId: \"cn-hangzhou-j\",\n    cidrBlock: \"172.16.2.0/24\",\n});\nconst shareVPC = new alicloud.vpc.Network(\"shareVPC\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: std.format({\n        input: \"%s3\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst shareVswitch = new alicloud.vpc.Switch(\"shareVswitch\", {\n    vpcId: shareVPC.id,\n    zoneId: \"cn-hangzhou-k\",\n    cidrBlock: \"172.16.1.0/24\",\n});\nconst share_VPC2 = new alicloud.vpc.Network(\"share-VPC2\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: std.format({\n        input: \"%s5\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst share_vswitch2 = new alicloud.vpc.Switch(\"share-vswitch2\", {\n    vpcId: share_VPC2.id,\n    zoneId: \"cn-hangzhou-k\",\n    cidrBlock: \"172.16.1.0/24\",\n});\nconst share_VPC3 = new alicloud.vpc.Network(\"share-VPC3\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: std.format({\n        input: \"%s7\",\n        args: [name],\n    }).then(invoke =\u003e invoke.result),\n});\nconst share_vsw3 = new alicloud.vpc.Switch(\"share-vsw3\", {\n    vpcId: share_VPC3.id,\n    zoneId: \"cn-hangzhou-k\",\n    cidrBlock: \"172.16.1.0/24\",\n});\nconst defaultInstance = new alicloud.kms.Instance(\"default\", {\n    vpcNum: 7,\n    keyNum: 1000,\n    secretNum: 0,\n    spec: 1000,\n    renewStatus: \"ManualRenewal\",\n    productVersion: \"3\",\n    vpcId: vswitch.vpcId,\n    zoneIds: [\n        \"cn-hangzhou-k\",\n        \"cn-hangzhou-j\",\n    ],\n    vswitchIds: [vswitch.id],\n    bindVpcs: [\n        {\n            vpcId: shareVswitch.vpcId,\n            regionId: \"cn-hangzhou\",\n            vswitchId: shareVswitch.id,\n            vpcOwnerId: current.then(current =\u003e current.id),\n        },\n        {\n            vpcId: share_vswitch2.vpcId,\n            regionId: \"cn-hangzhou\",\n            vswitchId: share_vswitch2.id,\n            vpcOwnerId: current.then(current =\u003e current.id),\n        },\n        {\n            vpcId: share_vsw3.vpcId,\n            regionId: \"cn-hangzhou\",\n            vswitchId: share_vsw3.id,\n            vpcOwnerId: current.then(current =\u003e current.id),\n        },\n    ],\n    log: \"0\",\n    period: 1,\n    logStorage: 0,\n    paymentType: \"Subscription\",\n});\nconst _default = alicloud.kms.getInstancesOutput({\n    ids: [defaultInstance.id],\n});\nexport const alicloudKmsInstanceExampleId = _default.apply(_default =\u003e _default.instances?.[0]?.instanceId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ncurrent = alicloud.get_account()\nvpc_amp_instance_example = alicloud.vpc.Network(\"vpc-amp-instance-example\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=name)\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    vpc_id=vpc_amp_instance_example.id,\n    zone_id=\"cn-hangzhou-k\",\n    cidr_block=\"172.16.1.0/24\")\nvswitch_j = alicloud.vpc.Switch(\"vswitch-j\",\n    vpc_id=vpc_amp_instance_example.id,\n    zone_id=\"cn-hangzhou-j\",\n    cidr_block=\"172.16.2.0/24\")\nshare_vpc = alicloud.vpc.Network(\"shareVPC\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=std.format(input=\"%s3\",\n        args=[name]).result)\nshare_vswitch = alicloud.vpc.Switch(\"shareVswitch\",\n    vpc_id=share_vpc.id,\n    zone_id=\"cn-hangzhou-k\",\n    cidr_block=\"172.16.1.0/24\")\nshare__vpc2 = alicloud.vpc.Network(\"share-VPC2\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=std.format(input=\"%s5\",\n        args=[name]).result)\nshare_vswitch2 = alicloud.vpc.Switch(\"share-vswitch2\",\n    vpc_id=share__vpc2.id,\n    zone_id=\"cn-hangzhou-k\",\n    cidr_block=\"172.16.1.0/24\")\nshare__vpc3 = alicloud.vpc.Network(\"share-VPC3\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=std.format(input=\"%s7\",\n        args=[name]).result)\nshare_vsw3 = alicloud.vpc.Switch(\"share-vsw3\",\n    vpc_id=share__vpc3.id,\n    zone_id=\"cn-hangzhou-k\",\n    cidr_block=\"172.16.1.0/24\")\ndefault_instance = alicloud.kms.Instance(\"default\",\n    vpc_num=7,\n    key_num=1000,\n    secret_num=0,\n    spec=1000,\n    renew_status=\"ManualRenewal\",\n    product_version=\"3\",\n    vpc_id=vswitch.vpc_id,\n    zone_ids=[\n        \"cn-hangzhou-k\",\n        \"cn-hangzhou-j\",\n    ],\n    vswitch_ids=[vswitch.id],\n    bind_vpcs=[\n        {\n            \"vpc_id\": share_vswitch.vpc_id,\n            \"region_id\": \"cn-hangzhou\",\n            \"vswitch_id\": share_vswitch.id,\n            \"vpc_owner_id\": current.id,\n        },\n        {\n            \"vpc_id\": share_vswitch2.vpc_id,\n            \"region_id\": \"cn-hangzhou\",\n            \"vswitch_id\": share_vswitch2.id,\n            \"vpc_owner_id\": current.id,\n        },\n        {\n            \"vpc_id\": share_vsw3.vpc_id,\n            \"region_id\": \"cn-hangzhou\",\n            \"vswitch_id\": share_vsw3.id,\n            \"vpc_owner_id\": current.id,\n        },\n    ],\n    log=\"0\",\n    period=1,\n    log_storage=0,\n    payment_type=\"Subscription\")\ndefault = alicloud.kms.get_instances_output(ids=[default_instance.id])\npulumi.export(\"alicloudKmsInstanceExampleId\", default.instances[0].instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var current = AliCloud.GetAccount.Invoke();\n\n    var vpc_amp_instance_example = new AliCloud.Vpc.Network(\"vpc-amp-instance-example\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = name,\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        VpcId = vpc_amp_instance_example.Id,\n        ZoneId = \"cn-hangzhou-k\",\n        CidrBlock = \"172.16.1.0/24\",\n    });\n\n    var vswitch_j = new AliCloud.Vpc.Switch(\"vswitch-j\", new()\n    {\n        VpcId = vpc_amp_instance_example.Id,\n        ZoneId = \"cn-hangzhou-j\",\n        CidrBlock = \"172.16.2.0/24\",\n    });\n\n    var shareVPC = new AliCloud.Vpc.Network(\"shareVPC\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = Std.Format.Invoke(new()\n        {\n            Input = \"%s3\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var shareVswitch = new AliCloud.Vpc.Switch(\"shareVswitch\", new()\n    {\n        VpcId = shareVPC.Id,\n        ZoneId = \"cn-hangzhou-k\",\n        CidrBlock = \"172.16.1.0/24\",\n    });\n\n    var share_VPC2 = new AliCloud.Vpc.Network(\"share-VPC2\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = Std.Format.Invoke(new()\n        {\n            Input = \"%s5\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var share_vswitch2 = new AliCloud.Vpc.Switch(\"share-vswitch2\", new()\n    {\n        VpcId = share_VPC2.Id,\n        ZoneId = \"cn-hangzhou-k\",\n        CidrBlock = \"172.16.1.0/24\",\n    });\n\n    var share_VPC3 = new AliCloud.Vpc.Network(\"share-VPC3\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = Std.Format.Invoke(new()\n        {\n            Input = \"%s7\",\n            Args = new[]\n            {\n                name,\n            },\n        }).Apply(invoke =\u003e invoke.Result),\n    });\n\n    var share_vsw3 = new AliCloud.Vpc.Switch(\"share-vsw3\", new()\n    {\n        VpcId = share_VPC3.Id,\n        ZoneId = \"cn-hangzhou-k\",\n        CidrBlock = \"172.16.1.0/24\",\n    });\n\n    var defaultInstance = new AliCloud.Kms.Instance(\"default\", new()\n    {\n        VpcNum = 7,\n        KeyNum = 1000,\n        SecretNum = 0,\n        Spec = 1000,\n        RenewStatus = \"ManualRenewal\",\n        ProductVersion = \"3\",\n        VpcId = vswitch.VpcId,\n        ZoneIds = new[]\n        {\n            \"cn-hangzhou-k\",\n            \"cn-hangzhou-j\",\n        },\n        VswitchIds = new[]\n        {\n            vswitch.Id,\n        },\n        BindVpcs = new[]\n        {\n            new AliCloud.Kms.Inputs.InstanceBindVpcArgs\n            {\n                VpcId = shareVswitch.VpcId,\n                RegionId = \"cn-hangzhou\",\n                VswitchId = shareVswitch.Id,\n                VpcOwnerId = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n            },\n            new AliCloud.Kms.Inputs.InstanceBindVpcArgs\n            {\n                VpcId = share_vswitch2.VpcId,\n                RegionId = \"cn-hangzhou\",\n                VswitchId = share_vswitch2.Id,\n                VpcOwnerId = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n            },\n            new AliCloud.Kms.Inputs.InstanceBindVpcArgs\n            {\n                VpcId = share_vsw3.VpcId,\n                RegionId = \"cn-hangzhou\",\n                VswitchId = share_vsw3.Id,\n                VpcOwnerId = current.Apply(getAccountResult =\u003e getAccountResult.Id),\n            },\n        },\n        Log = \"0\",\n        Period = 1,\n        LogStorage = 0,\n        PaymentType = \"Subscription\",\n    });\n\n    var @default = AliCloud.Kms.GetInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultInstance.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudKmsInstanceExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.InstanceId)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ncurrent, err := alicloud.GetAccount(ctx, map[string]interface{}{\n}, nil);\nif err != nil {\nreturn err\n}\nvpc_amp_instance_example, err := vpc.NewNetwork(ctx, \"vpc-amp-instance-example\", \u0026vpc.NetworkArgs{\nCidrBlock: pulumi.String(\"172.16.0.0/12\"),\nVpcName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\nvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\nVpcId: vpc_amp_instance_example.ID(),\nZoneId: pulumi.String(\"cn-hangzhou-k\"),\nCidrBlock: pulumi.String(\"172.16.1.0/24\"),\n})\nif err != nil {\nreturn err\n}\n_, err = vpc.NewSwitch(ctx, \"vswitch-j\", \u0026vpc.SwitchArgs{\nVpcId: vpc_amp_instance_example.ID(),\nZoneId: pulumi.String(\"cn-hangzhou-j\"),\nCidrBlock: pulumi.String(\"172.16.2.0/24\"),\n})\nif err != nil {\nreturn err\n}\ninvokeFormat, err := std.Format(ctx, \u0026std.FormatArgs{\nInput: \"%s3\",\nArgs: []string{\nname,\n},\n}, nil)\nif err != nil {\nreturn err\n}\nshareVPC, err := vpc.NewNetwork(ctx, \"shareVPC\", \u0026vpc.NetworkArgs{\nCidrBlock: pulumi.String(\"172.16.0.0/12\"),\nVpcName: pulumi.String(invokeFormat.Result),\n})\nif err != nil {\nreturn err\n}\nshareVswitch, err := vpc.NewSwitch(ctx, \"shareVswitch\", \u0026vpc.SwitchArgs{\nVpcId: shareVPC.ID(),\nZoneId: pulumi.String(\"cn-hangzhou-k\"),\nCidrBlock: pulumi.String(\"172.16.1.0/24\"),\n})\nif err != nil {\nreturn err\n}\ninvokeFormat1, err := std.Format(ctx, \u0026std.FormatArgs{\nInput: \"%s5\",\nArgs: []string{\nname,\n},\n}, nil)\nif err != nil {\nreturn err\n}\nshare_VPC2, err := vpc.NewNetwork(ctx, \"share-VPC2\", \u0026vpc.NetworkArgs{\nCidrBlock: pulumi.String(\"172.16.0.0/12\"),\nVpcName: pulumi.String(invokeFormat1.Result),\n})\nif err != nil {\nreturn err\n}\nshare_vswitch2, err := vpc.NewSwitch(ctx, \"share-vswitch2\", \u0026vpc.SwitchArgs{\nVpcId: share_VPC2.ID(),\nZoneId: pulumi.String(\"cn-hangzhou-k\"),\nCidrBlock: pulumi.String(\"172.16.1.0/24\"),\n})\nif err != nil {\nreturn err\n}\ninvokeFormat2, err := std.Format(ctx, \u0026std.FormatArgs{\nInput: \"%s7\",\nArgs: []string{\nname,\n},\n}, nil)\nif err != nil {\nreturn err\n}\nshare_VPC3, err := vpc.NewNetwork(ctx, \"share-VPC3\", \u0026vpc.NetworkArgs{\nCidrBlock: pulumi.String(\"172.16.0.0/12\"),\nVpcName: pulumi.String(invokeFormat2.Result),\n})\nif err != nil {\nreturn err\n}\nshare_vsw3, err := vpc.NewSwitch(ctx, \"share-vsw3\", \u0026vpc.SwitchArgs{\nVpcId: share_VPC3.ID(),\nZoneId: pulumi.String(\"cn-hangzhou-k\"),\nCidrBlock: pulumi.String(\"172.16.1.0/24\"),\n})\nif err != nil {\nreturn err\n}\ndefaultInstance, err := kms.NewInstance(ctx, \"default\", \u0026kms.InstanceArgs{\nVpcNum: pulumi.Int(7),\nKeyNum: pulumi.Int(1000),\nSecretNum: pulumi.Int(0),\nSpec: pulumi.Int(1000),\nRenewStatus: pulumi.String(\"ManualRenewal\"),\nProductVersion: pulumi.String(\"3\"),\nVpcId: vswitch.VpcId,\nZoneIds: pulumi.StringArray{\npulumi.String(\"cn-hangzhou-k\"),\npulumi.String(\"cn-hangzhou-j\"),\n},\nVswitchIds: pulumi.StringArray{\nvswitch.ID(),\n},\nBindVpcs: kms.InstanceBindVpcArray{\n\u0026kms.InstanceBindVpcArgs{\nVpcId: shareVswitch.VpcId,\nRegionId: pulumi.String(\"cn-hangzhou\"),\nVswitchId: shareVswitch.ID(),\nVpcOwnerId: pulumi.String(current.Id),\n},\n\u0026kms.InstanceBindVpcArgs{\nVpcId: share_vswitch2.VpcId,\nRegionId: pulumi.String(\"cn-hangzhou\"),\nVswitchId: share_vswitch2.ID(),\nVpcOwnerId: pulumi.String(current.Id),\n},\n\u0026kms.InstanceBindVpcArgs{\nVpcId: share_vsw3.VpcId,\nRegionId: pulumi.String(\"cn-hangzhou\"),\nVswitchId: share_vsw3.ID(),\nVpcOwnerId: pulumi.String(current.Id),\n},\n},\nLog: pulumi.String(\"0\"),\nPeriod: pulumi.Int(1),\nLogStorage: pulumi.Int(0),\nPaymentType: pulumi.String(\"Subscription\"),\n})\nif err != nil {\nreturn err\n}\n_default := kms.GetInstancesOutput(ctx, kms.GetInstancesOutputArgs{\nIds: pulumi.StringArray{\ndefaultInstance.ID(),\n},\n}, nil);\nctx.Export(\"alicloudKmsInstanceExampleId\", _default.ApplyT(func(_default kms.GetInstancesResult) (*string, error) {\nreturn \u0026default.Instances[0].InstanceId, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.kms.Instance;\nimport com.pulumi.alicloud.kms.InstanceArgs;\nimport com.pulumi.alicloud.kms.inputs.InstanceBindVpcArgs;\nimport com.pulumi.alicloud.kms.KmsFunctions;\nimport com.pulumi.alicloud.kms.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var current = AlicloudFunctions.getAccount(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var vpc_amp_instance_example = new Network(\"vpc-amp-instance-example\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(name)\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .vpcId(vpc_amp_instance_example.id())\n            .zoneId(\"cn-hangzhou-k\")\n            .cidrBlock(\"172.16.1.0/24\")\n            .build());\n\n        var vswitch_j = new Switch(\"vswitch-j\", SwitchArgs.builder()\n            .vpcId(vpc_amp_instance_example.id())\n            .zoneId(\"cn-hangzhou-j\")\n            .cidrBlock(\"172.16.2.0/24\")\n            .build());\n\n        var shareVPC = new Network(\"shareVPC\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s3\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var shareVswitch = new Switch(\"shareVswitch\", SwitchArgs.builder()\n            .vpcId(shareVPC.id())\n            .zoneId(\"cn-hangzhou-k\")\n            .cidrBlock(\"172.16.1.0/24\")\n            .build());\n\n        var share_VPC2 = new Network(\"share-VPC2\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s5\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var share_vswitch2 = new Switch(\"share-vswitch2\", SwitchArgs.builder()\n            .vpcId(share_VPC2.id())\n            .zoneId(\"cn-hangzhou-k\")\n            .cidrBlock(\"172.16.1.0/24\")\n            .build());\n\n        var share_VPC3 = new Network(\"share-VPC3\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s7\")\n                .args(name)\n                .build()).result())\n            .build());\n\n        var share_vsw3 = new Switch(\"share-vsw3\", SwitchArgs.builder()\n            .vpcId(share_VPC3.id())\n            .zoneId(\"cn-hangzhou-k\")\n            .cidrBlock(\"172.16.1.0/24\")\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .vpcNum(7)\n            .keyNum(1000)\n            .secretNum(0)\n            .spec(1000)\n            .renewStatus(\"ManualRenewal\")\n            .productVersion(\"3\")\n            .vpcId(vswitch.vpcId())\n            .zoneIds(            \n                \"cn-hangzhou-k\",\n                \"cn-hangzhou-j\")\n            .vswitchIds(vswitch.id())\n            .bindVpcs(            \n                InstanceBindVpcArgs.builder()\n                    .vpcId(shareVswitch.vpcId())\n                    .regionId(\"cn-hangzhou\")\n                    .vswitchId(shareVswitch.id())\n                    .vpcOwnerId(current.id())\n                    .build(),\n                InstanceBindVpcArgs.builder()\n                    .vpcId(share_vswitch2.vpcId())\n                    .regionId(\"cn-hangzhou\")\n                    .vswitchId(share_vswitch2.id())\n                    .vpcOwnerId(current.id())\n                    .build(),\n                InstanceBindVpcArgs.builder()\n                    .vpcId(share_vsw3.vpcId())\n                    .regionId(\"cn-hangzhou\")\n                    .vswitchId(share_vsw3.id())\n                    .vpcOwnerId(current.id())\n                    .build())\n            .log(\"0\")\n            .period(1)\n            .logStorage(0)\n            .paymentType(\"Subscription\")\n            .build());\n\n        final var default = KmsFunctions.getInstances(GetInstancesArgs.builder()\n            .ids(defaultInstance.id())\n            .build());\n\n        ctx.export(\"alicloudKmsInstanceExampleId\", default_.applyValue(_default_ -\u003e _default_.instances()[0].instanceId()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  vpc-amp-instance-example:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName: ${name}\n  vswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${[\"vpc-amp-instance-example\"].id}\n      zoneId: cn-hangzhou-k\n      cidrBlock: 172.16.1.0/24\n  vswitch-j:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${[\"vpc-amp-instance-example\"].id}\n      zoneId: cn-hangzhou-j\n      cidrBlock: 172.16.2.0/24\n  shareVPC:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s3'\n            args:\n              - ${name}\n          return: result\n  shareVswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${shareVPC.id}\n      zoneId: cn-hangzhou-k\n      cidrBlock: 172.16.1.0/24\n  share-VPC2:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s5'\n            args:\n              - ${name}\n          return: result\n  share-vswitch2:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${[\"share-VPC2\"].id}\n      zoneId: cn-hangzhou-k\n      cidrBlock: 172.16.1.0/24\n  share-VPC3:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s7'\n            args:\n              - ${name}\n          return: result\n  share-vsw3:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${[\"share-VPC3\"].id}\n      zoneId: cn-hangzhou-k\n      cidrBlock: 172.16.1.0/24\n  defaultInstance:\n    type: alicloud:kms:Instance\n    name: default\n    properties:\n      vpcNum: '7'\n      keyNum: '1000'\n      secretNum: '0'\n      spec: '1000'\n      renewStatus: ManualRenewal\n      productVersion: '3'\n      vpcId: ${vswitch.vpcId}\n      zoneIds:\n        - cn-hangzhou-k\n        - cn-hangzhou-j\n      vswitchIds:\n        - ${vswitch.id}\n      bindVpcs:\n        - vpcId: ${shareVswitch.vpcId}\n          regionId: cn-hangzhou\n          vswitchId: ${shareVswitch.id}\n          vpcOwnerId: ${current.id}\n        - vpcId: ${[\"share-vswitch2\"].vpcId}\n          regionId: cn-hangzhou\n          vswitchId: ${[\"share-vswitch2\"].id}\n          vpcOwnerId: ${current.id}\n        - vpcId: ${[\"share-vsw3\"].vpcId}\n          regionId: cn-hangzhou\n          vswitchId: ${[\"share-vsw3\"].id}\n          vpcOwnerId: ${current.id}\n      log: '0'\n      period: '1'\n      logStorage: '0'\n      paymentType: Subscription\nvariables:\n  current:\n    fn::invoke:\n      function: alicloud:getAccount\n      arguments: {}\n  default:\n    fn::invoke:\n      function: alicloud:kms:getInstances\n      arguments:\n        ids:\n          - ${defaultInstance.id}\noutputs:\n  alicloudKmsInstanceExampleId: ${default.instances[0].instanceId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Instance IDs.\n"},"instanceName":{"type":"string","description":"The name of the resource.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Instance IDs.\n","items":{"type":"string"},"type":"array"},"instanceName":{"type":"string"},"instances":{"description":"A list of Instance Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:kms/getInstancesInstance:getInstancesInstance"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","instances","id"],"type":"object"}},"alicloud:kms/getKeyVersions:getKeyVersions":{"description":"This data source provides a list of KMS KeyVersions in an Alibaba Cloud account according to the specified filters.\n\n\u003e NOTE: Available in v1.85.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst alicloudKmsKeyVersionsDs = alicloud.kms.getKeyVersions({\n    keyId: \"08438c-b4d5-4d05-928c-07b7xxxx\",\n    ids: [\"d89e8a53-b708-41aa-8c67-6873axxx\"],\n});\nexport const allVersions = alicloudKmsKeyVersionsDs.then(alicloudKmsKeyVersionsDs =\u003e alicloudKmsKeyVersionsDs.versions);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nalicloud_kms_key_versions_ds = alicloud.kms.get_key_versions(key_id=\"08438c-b4d5-4d05-928c-07b7xxxx\",\n    ids=[\"d89e8a53-b708-41aa-8c67-6873axxx\"])\npulumi.export(\"allVersions\", alicloud_kms_key_versions_ds.versions)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var alicloudKmsKeyVersionsDs = AliCloud.Kms.GetKeyVersions.Invoke(new()\n    {\n        KeyId = \"08438c-b4d5-4d05-928c-07b7xxxx\",\n        Ids = new[]\n        {\n            \"d89e8a53-b708-41aa-8c67-6873axxx\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"allVersions\"] = alicloudKmsKeyVersionsDs.Apply(getKeyVersionsResult =\u003e getKeyVersionsResult.Versions),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\talicloudKmsKeyVersionsDs, err := kms.GetKeyVersions(ctx, \u0026kms.GetKeyVersionsArgs{\n\t\t\tKeyId: \"08438c-b4d5-4d05-928c-07b7xxxx\",\n\t\t\tIds: []string{\n\t\t\t\t\"d89e8a53-b708-41aa-8c67-6873axxx\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"allVersions\", alicloudKmsKeyVersionsDs.Versions)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.KmsFunctions;\nimport com.pulumi.alicloud.kms.inputs.GetKeyVersionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var alicloudKmsKeyVersionsDs = KmsFunctions.getKeyVersions(GetKeyVersionsArgs.builder()\n            .keyId(\"08438c-b4d5-4d05-928c-07b7xxxx\")\n            .ids(\"d89e8a53-b708-41aa-8c67-6873axxx\")\n            .build());\n\n        ctx.export(\"allVersions\", alicloudKmsKeyVersionsDs.versions());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  alicloudKmsKeyVersionsDs:\n    fn::invoke:\n      function: alicloud:kms:getKeyVersions\n      arguments:\n        keyId: 08438c-b4d5-4d05-928c-07b7xxxx\n        ids:\n          - d89e8a53-b708-41aa-8c67-6873axxx\noutputs:\n  allVersions: ${alicloudKmsKeyVersionsDs.versions}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKeyVersions.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of KMS KeyVersion IDs.\n"},"keyId":{"type":"string","description":"The id of kms key.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["keyId"]},"outputs":{"description":"A collection of values returned by getKeyVersions.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of KMS KeyVersion IDs.\n","items":{"type":"string"},"type":"array"},"keyId":{"description":"ID of the key.\n","type":"string"},"outputFile":{"type":"string"},"versions":{"description":"A list of KMS KeyVersions. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:kms/getKeyVersionsVersion:getKeyVersionsVersion"},"type":"array"}},"required":["ids","keyId","versions","id"],"type":"object"}},"alicloud:kms/getKeys:getKeys":{"description":"This data source provides a list of KMS keys in an Alibaba Cloud account according to the specified filters.\n\nFor information about KMS Key and how to use it, see [What is Key](https://www.alibabacloud.com/help/en/kms/developer-reference/api-createkey).\n\n\u003e **NOTE:** Available since v1.85.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst kmsKeysDs = alicloud.kms.getKeys({\n    descriptionRegex: \"Hello KMS\",\n    outputFile: \"kms_keys.json\",\n});\nexport const firstKeyId = kmsKeysDs.then(kmsKeysDs =\u003e kmsKeysDs.keys?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nkms_keys_ds = alicloud.kms.get_keys(description_regex=\"Hello KMS\",\n    output_file=\"kms_keys.json\")\npulumi.export(\"firstKeyId\", kms_keys_ds.keys[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var kmsKeysDs = AliCloud.Kms.GetKeys.Invoke(new()\n    {\n        DescriptionRegex = \"Hello KMS\",\n        OutputFile = \"kms_keys.json\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstKeyId\"] = kmsKeysDs.Apply(getKeysResult =\u003e getKeysResult.Keys[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tkmsKeysDs, err := kms.GetKeys(ctx, \u0026kms.GetKeysArgs{\n\t\t\tDescriptionRegex: pulumi.StringRef(\"Hello KMS\"),\n\t\t\tOutputFile:       pulumi.StringRef(\"kms_keys.json\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstKeyId\", kmsKeysDs.Keys[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.KmsFunctions;\nimport com.pulumi.alicloud.kms.inputs.GetKeysArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var kmsKeysDs = KmsFunctions.getKeys(GetKeysArgs.builder()\n            .descriptionRegex(\"Hello KMS\")\n            .outputFile(\"kms_keys.json\")\n            .build());\n\n        ctx.export(\"firstKeyId\", kmsKeysDs.keys()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  kmsKeysDs:\n    fn::invoke:\n      function: alicloud:kms:getKeys\n      arguments:\n        descriptionRegex: Hello KMS\n        outputFile: kms_keys.json\noutputs:\n  firstKeyId: ${kmsKeysDs.keys[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKeys.\n","properties":{"descriptionRegex":{"type":"string","description":"A regex string to filter the results by the KMS key description.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"filters":{"type":"string","description":"The CMK filter. The filter consists of one or more key-value pairs. \nYou can specify a maximum of 10 key-value pairs. More details see API [ListKeys](https://www.alibabacloud.com/help/en/key-management-service/latest/listkeys).\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of KMS key IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"Filter the results by status of the KMS keys. Valid values: `Enabled`, `Disabled`, `PendingDeletion`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getKeys.\n","properties":{"descriptionRegex":{"type":"string"},"enableDetails":{"type":"boolean"},"filters":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of KMS key IDs.\n","items":{"type":"string"},"type":"array"},"keys":{"description":"A list of KMS keys. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:kms/getKeysKey:getKeysKey"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"Status of the key. Possible values: `Enabled`, `Disabled` and `PendingDeletion`.\n","type":"string"}},"required":["ids","keys","id"],"type":"object"}},"alicloud:kms/getPlaintext:getPlaintext":{"description":"Decrypt a given ciphertext with KMS to use the resulting plaintext in resources.\n\n\u003e **NOTE**: Using this data provider will allow you to conceal secret data within your resource definitions but does not take care of protecting that data in all Terraform logging and state output. Please take care to secure your secret data beyond just the Terraform configuration.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst key = new alicloud.kms.Key(\"key\", {\n    description: \"example key\",\n    isEnabled: true,\n});\n// Encrypt plaintext 'example'\nconst encrypted = new alicloud.kms.Ciphertext(\"encrypted\", {\n    keyId: key.id,\n    plaintext: \"example\",\n});\n// Decrypt encrypted ciphertext\nconst plaintext = alicloud.kms.getPlaintextOutput({\n    ciphertextBlob: encrypted.ciphertextBlob,\n});\nexport const decrypted = plaintext.apply(plaintext =\u003e plaintext.plaintext);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nkey = alicloud.kms.Key(\"key\",\n    description=\"example key\",\n    is_enabled=True)\n# Encrypt plaintext 'example'\nencrypted = alicloud.kms.Ciphertext(\"encrypted\",\n    key_id=key.id,\n    plaintext=\"example\")\n# Decrypt encrypted ciphertext\nplaintext = alicloud.kms.get_plaintext_output(ciphertext_blob=encrypted.ciphertext_blob)\npulumi.export(\"decrypted\", plaintext.plaintext)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var key = new AliCloud.Kms.Key(\"key\", new()\n    {\n        Description = \"example key\",\n        IsEnabled = true,\n    });\n\n    // Encrypt plaintext 'example'\n    var encrypted = new AliCloud.Kms.Ciphertext(\"encrypted\", new()\n    {\n        KeyId = key.Id,\n        Plaintext = \"example\",\n    });\n\n    // Decrypt encrypted ciphertext\n    var plaintext = AliCloud.Kms.GetPlaintext.Invoke(new()\n    {\n        CiphertextBlob = encrypted.CiphertextBlob,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"decrypted\"] = plaintext.Apply(getPlaintextResult =\u003e getPlaintextResult.Plaintext),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkey, err := kms.NewKey(ctx, \"key\", \u0026kms.KeyArgs{\n\t\t\tDescription: pulumi.String(\"example key\"),\n\t\t\tIsEnabled:   pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Encrypt plaintext 'example'\n\t\tencrypted, err := kms.NewCiphertext(ctx, \"encrypted\", \u0026kms.CiphertextArgs{\n\t\t\tKeyId:     key.ID(),\n\t\t\tPlaintext: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Decrypt encrypted ciphertext\n\t\tplaintext := kms.GetPlaintextOutput(ctx, kms.GetPlaintextOutputArgs{\n\t\t\tCiphertextBlob: encrypted.CiphertextBlob,\n\t\t}, nil)\n\t\tctx.Export(\"decrypted\", plaintext.ApplyT(func(plaintext kms.GetPlaintextResult) (*string, error) {\n\t\t\treturn \u0026plaintext.Plaintext, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.Key;\nimport com.pulumi.alicloud.kms.KeyArgs;\nimport com.pulumi.alicloud.kms.Ciphertext;\nimport com.pulumi.alicloud.kms.CiphertextArgs;\nimport com.pulumi.alicloud.kms.KmsFunctions;\nimport com.pulumi.alicloud.kms.inputs.GetPlaintextArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var key = new Key(\"key\", KeyArgs.builder()\n            .description(\"example key\")\n            .isEnabled(true)\n            .build());\n\n        // Encrypt plaintext 'example'\n        var encrypted = new Ciphertext(\"encrypted\", CiphertextArgs.builder()\n            .keyId(key.id())\n            .plaintext(\"example\")\n            .build());\n\n        // Decrypt encrypted ciphertext\n        final var plaintext = KmsFunctions.getPlaintext(GetPlaintextArgs.builder()\n            .ciphertextBlob(encrypted.ciphertextBlob())\n            .build());\n\n        ctx.export(\"decrypted\", plaintext.applyValue(_plaintext -\u003e _plaintext.plaintext()));\n    }\n}\n```\n```yaml\nresources:\n  key:\n    type: alicloud:kms:Key\n    properties:\n      description: example key\n      isEnabled: true\n  # Encrypt plaintext 'example'\n  encrypted:\n    type: alicloud:kms:Ciphertext\n    properties:\n      keyId: ${key.id}\n      plaintext: example\nvariables:\n  # Decrypt encrypted ciphertext\n  plaintext:\n    fn::invoke:\n      function: alicloud:kms:getPlaintext\n      arguments:\n        ciphertextBlob: ${encrypted.ciphertextBlob}\noutputs:\n  # Output 'example' should match the plaintext encrypted in the beginning\n  decrypted: ${plaintext.plaintext}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPlaintext.\n","properties":{"ciphertextBlob":{"type":"string","description":"The ciphertext to be decrypted.\n"},"encryptionContext":{"type":"object","additionalProperties":{"type":"string"},"description":"(Optional) The Encryption context. If you specify this parameter in the Encrypt or GenerateDataKey API operation, it is also required when you call the Decrypt API operation. For more information, see [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm).\n"}},"type":"object","required":["ciphertextBlob"]},"outputs":{"description":"A collection of values returned by getPlaintext.\n","properties":{"ciphertextBlob":{"type":"string"},"encryptionContext":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"keyId":{"description":"The globally unique ID of the CMK. It is the ID of the CMK used to decrypt ciphertext.\n","type":"string"},"plaintext":{"description":"The decrypted plaintext.\n","type":"string"}},"required":["ciphertextBlob","keyId","plaintext","id"],"type":"object"}},"alicloud:kms/getSecretVersions:getSecretVersions":{"description":"This data source provides a list of KMS Secret Versions in an Alibaba Cloud account according to the specified filters.\n \n\u003e **NOTE:** Available in v1.88.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst kmsSecretVersionsDs = alicloud.kms.getSecretVersions({\n    secretName: \"secret_name\",\n    enableDetails: true,\n});\nexport const firstSecretData = kmsSecretVersionsDs.then(kmsSecretVersionsDs =\u003e kmsSecretVersionsDs.versions?.[0]?.secretData);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nkms_secret_versions_ds = alicloud.kms.get_secret_versions(secret_name=\"secret_name\",\n    enable_details=True)\npulumi.export(\"firstSecretData\", kms_secret_versions_ds.versions[0].secret_data)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var kmsSecretVersionsDs = AliCloud.Kms.GetSecretVersions.Invoke(new()\n    {\n        SecretName = \"secret_name\",\n        EnableDetails = true,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstSecretData\"] = kmsSecretVersionsDs.Apply(getSecretVersionsResult =\u003e getSecretVersionsResult.Versions[0]?.SecretData),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tkmsSecretVersionsDs, err := kms.GetSecretVersions(ctx, \u0026kms.GetSecretVersionsArgs{\n\t\t\tSecretName:    \"secret_name\",\n\t\t\tEnableDetails: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstSecretData\", kmsSecretVersionsDs.Versions[0].SecretData)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.KmsFunctions;\nimport com.pulumi.alicloud.kms.inputs.GetSecretVersionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var kmsSecretVersionsDs = KmsFunctions.getSecretVersions(GetSecretVersionsArgs.builder()\n            .secretName(\"secret_name\")\n            .enableDetails(true)\n            .build());\n\n        ctx.export(\"firstSecretData\", kmsSecretVersionsDs.versions()[0].secretData());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  kmsSecretVersionsDs:\n    fn::invoke:\n      function: alicloud:kms:getSecretVersions\n      arguments:\n        secretName: secret_name\n        enableDetails: true\noutputs:\n  firstSecretData: ${kmsSecretVersionsDs.versions[0].secretData}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSecretVersions.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to false and only output \u003cspan pulumi-lang-nodejs=\"`secretName`\" pulumi-lang-dotnet=\"`SecretName`\" pulumi-lang-go=\"`secretName`\" pulumi-lang-python=\"`secret_name`\" pulumi-lang-yaml=\"`secretName`\" pulumi-lang-java=\"`secretName`\"\u003e`secret_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionId`\" pulumi-lang-dotnet=\"`VersionId`\" pulumi-lang-go=\"`versionId`\" pulumi-lang-python=\"`version_id`\" pulumi-lang-yaml=\"`versionId`\" pulumi-lang-java=\"`versionId`\"\u003e`version_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`versionStages`\" pulumi-lang-dotnet=\"`VersionStages`\" pulumi-lang-go=\"`versionStages`\" pulumi-lang-python=\"`version_stages`\" pulumi-lang-yaml=\"`versionStages`\" pulumi-lang-java=\"`versionStages`\"\u003e`version_stages`\u003c/span\u003e. Set it to true can output more details.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of KMS Secret Version ids.\n"},"includeDeprecated":{"type":"string","description":"Specifies whether to return deprecated secret versions. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"secretName":{"type":"string","description":"The name of the secret.\n"},"versionStage":{"type":"string","description":"The stage of the secret version.\n"}},"type":"object","required":["secretName"]},"outputs":{"description":"A collection of values returned by getSecretVersions.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Kms Secret Version ids.\n","items":{"type":"string"},"type":"array"},"includeDeprecated":{"type":"string"},"outputFile":{"type":"string"},"secretName":{"description":"The name of the secret.\n","type":"string"},"versionStage":{"type":"string"},"versions":{"description":"A list of KMS Secret Versions. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:kms/getSecretVersionsVersion:getSecretVersionsVersion"},"type":"array"}},"required":["ids","secretName","versions","id"],"type":"object"}},"alicloud:kms/getSecrets:getSecrets":{"description":"This data source provides a list of KMS Secrets in an Alibaba Cloud account according to the specified filters.\n \n\u003e **NOTE:** Available since v1.86.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst kmsSecretsDs = alicloud.kms.getSecrets({\n    fetchTags: true,\n    nameRegex: \"name_regex\",\n    tags: {\n        \"k-aa\": \"v-aa\",\n        \"k-bb\": \"v-bb\",\n    },\n});\nexport const firstSecretId = kmsSecretsDs.then(kmsSecretsDs =\u003e kmsSecretsDs.secrets?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nkms_secrets_ds = alicloud.kms.get_secrets(fetch_tags=True,\n    name_regex=\"name_regex\",\n    tags={\n        \"k-aa\": \"v-aa\",\n        \"k-bb\": \"v-bb\",\n    })\npulumi.export(\"firstSecretId\", kms_secrets_ds.secrets[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var kmsSecretsDs = AliCloud.Kms.GetSecrets.Invoke(new()\n    {\n        FetchTags = true,\n        NameRegex = \"name_regex\",\n        Tags = \n        {\n            { \"k-aa\", \"v-aa\" },\n            { \"k-bb\", \"v-bb\" },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstSecretId\"] = kmsSecretsDs.Apply(getSecretsResult =\u003e getSecretsResult.Secrets[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tkmsSecretsDs, err := kms.GetSecrets(ctx, \u0026kms.GetSecretsArgs{\n\t\t\tFetchTags: pulumi.BoolRef(true),\n\t\t\tNameRegex: pulumi.StringRef(\"name_regex\"),\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"k-aa\": \"v-aa\",\n\t\t\t\t\"k-bb\": \"v-bb\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstSecretId\", kmsSecretsDs.Secrets[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.KmsFunctions;\nimport com.pulumi.alicloud.kms.inputs.GetSecretsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var kmsSecretsDs = KmsFunctions.getSecrets(GetSecretsArgs.builder()\n            .fetchTags(true)\n            .nameRegex(\"name_regex\")\n            .tags(Map.ofEntries(\n                Map.entry(\"k-aa\", \"v-aa\"),\n                Map.entry(\"k-bb\", \"v-bb\")\n            ))\n            .build());\n\n        ctx.export(\"firstSecretId\", kmsSecretsDs.secrets()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  kmsSecretsDs:\n    fn::invoke:\n      function: alicloud:kms:getSecrets\n      arguments:\n        fetchTags: true\n        nameRegex: name_regex\n        tags:\n          k-aa: v-aa\n          k-bb: v-bb\noutputs:\n  firstSecretId: ${kmsSecretsDs.secrets[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSecrets.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to true can output more details.\n"},"fetchTags":{"type":"boolean","description":"Whether to include the predetermined resource tag in the return value. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"filters":{"type":"string","description":"The secret filter. The filter consists of one or more key-value pairs. \nMore details see API [ListSecrets](https://www.alibabacloud.com/help/en/key-management-service/latest/listsecrets).\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of KMS Secret ids. The value is same as KMS secret_name.\n"},"nameRegex":{"type":"string","description":"A regex string to filter the results by the KMS secret_name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource, and can be used to filter secrets.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSecrets.\n","properties":{"enableDetails":{"type":"boolean"},"fetchTags":{"type":"boolean"},"filters":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Kms Secret ids. The value is same as KMS secret_name.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of KMS Secret names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"secrets":{"description":"A list of KMS Secrets. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:kms/getSecretsSecret:getSecretsSecret"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","type":"object"}},"required":["ids","names","secrets","id"],"type":"object"}},"alicloud:kms/getService:getService":{"description":"Using this data source can open KMS service automatically. If the service has been opened, it will return opened.\n\nFor information about KMS and how to use it, see [What is KMS](https://help.aliyun.com/document_detail/186020.html).\n\n\u003e **NOTE:** Available in v1.108.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.kms.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.kms.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Kms.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := kms.GetService(ctx, \u0026kms.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kms.KmsFunctions;\nimport com.pulumi.alicloud.kms.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = KmsFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:kms:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: \"On\" or \"Off\". Default to \"Off\".\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the KMS service that means you have read and agreed the [KMS Terms of Service](https://help.aliyun.com/document_detail/125937.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:kvstore/getAccounts:getAccounts":{"description":"This data source provides the Tair (Redis OSS-Compatible) And Memcache (KVStore) Accounts of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.102.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.kvstore.getAccounts({\n    instanceId: \"example_value\",\n});\nexport const firstKvstoreAccountId = example.then(example =\u003e example.accounts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.kvstore.get_accounts(instance_id=\"example_value\")\npulumi.export(\"firstKvstoreAccountId\", example.accounts[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.KVStore.GetAccounts.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstKvstoreAccountId\"] = example.Apply(getAccountsResult =\u003e getAccountsResult.Accounts[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := kvstore.GetAccounts(ctx, \u0026kvstore.GetAccountsArgs{\n\t\t\tInstanceId: \"example_value\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstKvstoreAccountId\", example.Accounts[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kvstore.KvstoreFunctions;\nimport com.pulumi.alicloud.kvstore.inputs.GetAccountsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = KvstoreFunctions.getAccounts(GetAccountsArgs.builder()\n            .instanceId(\"example_value\")\n            .build());\n\n        ctx.export(\"firstKvstoreAccountId\", example.accounts()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:kvstore:getAccounts\n      arguments:\n        instanceId: example_value\noutputs:\n  firstKvstoreAccountId: ${example.accounts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccounts.\n","properties":{"accountName":{"type":"string","description":"The name of the account.\n"},"instanceId":{"type":"string","description":"The Id of instance in which account belongs.\n"},"nameRegex":{"type":"string"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of Tair (Redis OSS-Compatible) And Memcache (KVStore) Account. Valid Values: `\"Available` `Unavailable`\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getAccounts.\n","properties":{"accountName":{"type":"string"},"accounts":{"items":{"$ref":"#/types/alicloud:kvstore/getAccountsAccount:getAccountsAccount"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["accounts","ids","instanceId","names","id"],"type":"object"}},"alicloud:kvstore/getConnections:getConnections":{"description":"This data source can query the public IP of the specified Tair (Redis OSS-Compatible) And Memcache (KVStore).\n \n\u003e **NOTE:** Available in v1.101.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst example = alicloud.kvstore.getConnections({\n    ids: \"r-wer123456\",\n});\nexport const connectionString = example.then(example =\u003e example.connections?.[0]?.connectionString);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nexample = alicloud.kvstore.get_connections(ids=\"r-wer123456\")\npulumi.export(\"connectionString\", example.connections[0].connection_string)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var example = AliCloud.KVStore.GetConnections.Invoke(new()\n    {\n        Ids = \"r-wer123456\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"connectionString\"] = example.Apply(getConnectionsResult =\u003e getConnectionsResult.Connections[0]?.ConnectionString),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\texample, err := kvstore.GetConnections(ctx, \u0026kvstore.GetConnectionsArgs{\n\t\t\tIds: \"r-wer123456\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"connectionString\", example.Connections[0].ConnectionString)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kvstore.KvstoreFunctions;\nimport com.pulumi.alicloud.kvstore.inputs.GetConnectionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var example = KvstoreFunctions.getConnections(GetConnectionsArgs.builder()\n            .ids(\"r-wer123456\")\n            .build());\n\n        ctx.export(\"connectionString\", example.connections()[0].connectionString());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  example:\n    fn::invoke:\n      function: alicloud:kvstore:getConnections\n      arguments:\n        ids: r-wer123456\noutputs:\n  connectionString: ${example.connections[0].connectionString}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getConnections.\n","properties":{"ids":{"type":"string","description":"A list of Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance ids, only support one item.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["ids"]},"outputs":{"description":"A collection of values returned by getConnections.\n","properties":{"connections":{"description":"Public network details of the specified resource. contains the following attributes:\n","items":{"$ref":"#/types/alicloud:kvstore/getConnectionsConnection:getConnectionsConnection"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance ids.\n","type":"string"},"outputFile":{"type":"string"}},"required":["connections","ids","id"],"type":"object"}},"alicloud:kvstore/getInstanceClasses:getInstanceClasses":{"description":"This data source provides the Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance classes resource available info of Alibaba Cloud.\n\n\u003e **NOTE:** Available since v1.49.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst resources = alicloud.getZones({\n    availableResourceCreation: \"KVStore\",\n});\nconst resourcesGetInstanceClasses = resources.then(resources =\u003e alicloud.kvstore.getInstanceClasses({\n    zoneId: resources.zones?.[0]?.id,\n    instanceChargeType: \"PrePaid\",\n    engine: \"Redis\",\n    engineVersion: \"5.0\",\n    outputFile: \"./classes.txt\",\n}));\nexport const firstKvstoreInstanceClass = resourcesGetInstanceClasses.then(resourcesGetInstanceClasses =\u003e resourcesGetInstanceClasses.instanceClasses);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nresources = alicloud.get_zones(available_resource_creation=\"KVStore\")\nresources_get_instance_classes = alicloud.kvstore.get_instance_classes(zone_id=resources.zones[0].id,\n    instance_charge_type=\"PrePaid\",\n    engine=\"Redis\",\n    engine_version=\"5.0\",\n    output_file=\"./classes.txt\")\npulumi.export(\"firstKvstoreInstanceClass\", resources_get_instance_classes.instance_classes)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var resources = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"KVStore\",\n    });\n\n    var resourcesGetInstanceClasses = AliCloud.KVStore.GetInstanceClasses.Invoke(new()\n    {\n        ZoneId = resources.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceChargeType = \"PrePaid\",\n        Engine = \"Redis\",\n        EngineVersion = \"5.0\",\n        OutputFile = \"./classes.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstKvstoreInstanceClass\"] = resourcesGetInstanceClasses.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tresources, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"KVStore\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresourcesGetInstanceClasses, err := kvstore.GetInstanceClasses(ctx, \u0026kvstore.GetInstanceClassesArgs{\n\t\t\tZoneId:             resources.Zones[0].Id,\n\t\t\tInstanceChargeType: pulumi.StringRef(\"PrePaid\"),\n\t\t\tEngine:             pulumi.StringRef(\"Redis\"),\n\t\t\tEngineVersion:      pulumi.StringRef(\"5.0\"),\n\t\t\tOutputFile:         pulumi.StringRef(\"./classes.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstKvstoreInstanceClass\", resourcesGetInstanceClasses.InstanceClasses)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.kvstore.KvstoreFunctions;\nimport com.pulumi.alicloud.kvstore.inputs.GetInstanceClassesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var resources = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"KVStore\")\n            .build());\n\n        final var resourcesGetInstanceClasses = KvstoreFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .zoneId(resources.zones()[0].id())\n            .instanceChargeType(\"PrePaid\")\n            .engine(\"Redis\")\n            .engineVersion(\"5.0\")\n            .outputFile(\"./classes.txt\")\n            .build());\n\n        ctx.export(\"firstKvstoreInstanceClass\", resourcesGetInstanceClasses.instanceClasses());\n    }\n}\n```\n```yaml\nvariables:\n  resources:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: KVStore\n  resourcesGetInstanceClasses:\n    fn::invoke:\n      function: alicloud:kvstore:getInstanceClasses\n      arguments:\n        zoneId: ${resources.zones[0].id}\n        instanceChargeType: PrePaid\n        engine: Redis\n        engineVersion: '5.0'\n        outputFile: ./classes.txt\noutputs:\n  firstKvstoreInstanceClass: ${resourcesGetInstanceClasses.instanceClasses}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceClasses.\n","properties":{"architecture":{"type":"string","description":"The Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance system architecture required by the user. Valid values: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\"\u003e`cluster`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rwsplit`\" pulumi-lang-dotnet=\"`Rwsplit`\" pulumi-lang-go=\"`rwsplit`\" pulumi-lang-python=\"`rwsplit`\" pulumi-lang-yaml=\"`rwsplit`\" pulumi-lang-java=\"`rwsplit`\"\u003e`rwsplit`\u003c/span\u003e.\n"},"editionType":{"type":"string","description":"The Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance edition type required by the user. Valid values: `Community` and `Enterprise`.\n"},"engine":{"type":"string","description":"Database type. Options are `Redis`, `Memcache`. Default to `Redis`.\n"},"engineVersion":{"type":"string","description":"Database version required by the user. Value options of Redis can refer to the latest docs [detail info](https://www.alibabacloud.com/help/en/redis/developer-reference/api-r-kvstore-2015-01-01-createinstance-redis) `EngineVersion`. Value of Memcache should be empty.\n"},"instanceChargeType":{"type":"string","description":"Filter the results by charge type. Valid values: `PrePaid` and `PostPaid`. Default to `PrePaid`.\n"},"nodeType":{"type":"string","description":"The Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance node type required by the user. Valid values: \u003cspan pulumi-lang-nodejs=\"`double`\" pulumi-lang-dotnet=\"`Double`\" pulumi-lang-go=\"`double`\" pulumi-lang-python=\"`double`\" pulumi-lang-yaml=\"`double`\" pulumi-lang-java=\"`double`\"\u003e`double`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`single`\" pulumi-lang-dotnet=\"`Single`\" pulumi-lang-go=\"`single`\" pulumi-lang-python=\"`single`\" pulumi-lang-yaml=\"`single`\" pulumi-lang-java=\"`single`\"\u003e`single`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readone`\" pulumi-lang-dotnet=\"`Readone`\" pulumi-lang-go=\"`readone`\" pulumi-lang-python=\"`readone`\" pulumi-lang-yaml=\"`readone`\" pulumi-lang-java=\"`readone`\"\u003e`readone`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readthree`\" pulumi-lang-dotnet=\"`Readthree`\" pulumi-lang-go=\"`readthree`\" pulumi-lang-python=\"`readthree`\" pulumi-lang-yaml=\"`readthree`\" pulumi-lang-java=\"`readthree`\"\u003e`readthree`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`readfive`\" pulumi-lang-dotnet=\"`Readfive`\" pulumi-lang-go=\"`readfive`\" pulumi-lang-python=\"`readfive`\" pulumi-lang-yaml=\"`readfive`\" pulumi-lang-java=\"`readfive`\"\u003e`readfive`\u003c/span\u003e.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi up`).\n"},"packageType":{"type":"string","description":"It has been deprecated from 1.68.0.\n","deprecationMessage":"The parameter 'package_type' has been deprecated from 1.68.0."},"performanceType":{"type":"string","description":"It has been deprecated from 1.68.0.\n","deprecationMessage":"The parameter 'performance_type' has been deprecated from 1.68.0."},"productType":{"type":"string","description":"The type of the service. Valid values:\n* Local: a Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance with a local disk.\n* OnECS: a Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance with a standard disk. This type is available only on the Alibaba Cloud China site.\n"},"seriesType":{"type":"string","description":"The Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance series type required by the user. Valid values: \u003cspan pulumi-lang-nodejs=\"`enhancedPerformanceType`\" pulumi-lang-dotnet=\"`EnhancedPerformanceType`\" pulumi-lang-go=\"`enhancedPerformanceType`\" pulumi-lang-python=\"`enhanced_performance_type`\" pulumi-lang-yaml=\"`enhancedPerformanceType`\" pulumi-lang-java=\"`enhancedPerformanceType`\"\u003e`enhanced_performance_type`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`hybridStorage`\" pulumi-lang-dotnet=\"`HybridStorage`\" pulumi-lang-go=\"`hybridStorage`\" pulumi-lang-python=\"`hybrid_storage`\" pulumi-lang-yaml=\"`hybridStorage`\" pulumi-lang-java=\"`hybridStorage`\"\u003e`hybrid_storage`\u003c/span\u003e.\n"},"shardNumber":{"type":"integer","description":"The number of shard.Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\"\u003e`16`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`64`\" pulumi-lang-dotnet=\"`64`\" pulumi-lang-go=\"`64`\" pulumi-lang-python=\"`64`\" pulumi-lang-yaml=\"`64`\" pulumi-lang-java=\"`64`\"\u003e`64`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`256`\" pulumi-lang-dotnet=\"`256`\" pulumi-lang-go=\"`256`\" pulumi-lang-python=\"`256`\" pulumi-lang-yaml=\"`256`\" pulumi-lang-java=\"`256`\"\u003e`256`\u003c/span\u003e.\n"},"sortedBy":{"type":"string"},"storageType":{"type":"string","description":"It has been deprecated from 1.68.0.\n","deprecationMessage":"The parameter 'storage_type' has been deprecated from 1.68.0."},"zoneId":{"type":"string","description":"The Zone to launch the Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance.\n"}},"type":"object","required":["zoneId"]},"outputs":{"description":"A collection of values returned by getInstanceClasses.\n","properties":{"architecture":{"type":"string"},"classes":{"description":"A list of KVStore available instance classes when the \u003cspan pulumi-lang-nodejs=\"`sortedBy`\" pulumi-lang-dotnet=\"`SortedBy`\" pulumi-lang-go=\"`sortedBy`\" pulumi-lang-python=\"`sorted_by`\" pulumi-lang-yaml=\"`sortedBy`\" pulumi-lang-java=\"`sortedBy`\"\u003e`sorted_by`\u003c/span\u003e is \"Price\". include:\n","items":{"$ref":"#/types/alicloud:kvstore/getInstanceClassesClass:getInstanceClassesClass"},"type":"array"},"editionType":{"type":"string"},"engine":{"type":"string"},"engineVersion":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceChargeType":{"type":"string"},"instanceClasses":{"description":"A list of KVStore available instance classes.\n","items":{"type":"string"},"type":"array"},"nodeType":{"type":"string"},"outputFile":{"type":"string"},"packageType":{"deprecationMessage":"The parameter 'package_type' has been deprecated from 1.68.0.","type":"string"},"performanceType":{"deprecationMessage":"The parameter 'performance_type' has been deprecated from 1.68.0.","type":"string"},"productType":{"type":"string"},"seriesType":{"type":"string"},"shardNumber":{"type":"integer"},"sortedBy":{"type":"string"},"storageType":{"deprecationMessage":"The parameter 'storage_type' has been deprecated from 1.68.0.","type":"string"},"zoneId":{"type":"string"}},"required":["classes","instanceClasses","zoneId","id"],"type":"object"}},"alicloud:kvstore/getInstanceEngines:getInstanceEngines":{"description":"This data source provides the Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance engines resource available info of Alibaba Cloud.\n\n\u003e **NOTE:** Available since v1.51.0\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst resources = alicloud.getZones({\n    availableResourceCreation: \"KVStore\",\n});\nconst resourcesGetInstanceEngines = resources.then(resources =\u003e alicloud.kvstore.getInstanceEngines({\n    zoneId: resources.zones?.[0]?.id,\n    instanceChargeType: \"PrePaid\",\n    engine: \"Redis\",\n    engineVersion: \"5.0\",\n    outputFile: \"./engines.txt\",\n}));\nexport const firstKvstoreInstanceClass = resourcesGetInstanceEngines.then(resourcesGetInstanceEngines =\u003e resourcesGetInstanceEngines.instanceEngines?.[0]?.engine);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nresources = alicloud.get_zones(available_resource_creation=\"KVStore\")\nresources_get_instance_engines = alicloud.kvstore.get_instance_engines(zone_id=resources.zones[0].id,\n    instance_charge_type=\"PrePaid\",\n    engine=\"Redis\",\n    engine_version=\"5.0\",\n    output_file=\"./engines.txt\")\npulumi.export(\"firstKvstoreInstanceClass\", resources_get_instance_engines.instance_engines[0].engine)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var resources = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"KVStore\",\n    });\n\n    var resourcesGetInstanceEngines = AliCloud.KVStore.GetInstanceEngines.Invoke(new()\n    {\n        ZoneId = resources.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        InstanceChargeType = \"PrePaid\",\n        Engine = \"Redis\",\n        EngineVersion = \"5.0\",\n        OutputFile = \"./engines.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstKvstoreInstanceClass\"] = resourcesGetInstanceEngines.Apply(getInstanceEnginesResult =\u003e getInstanceEnginesResult.InstanceEngines[0]?.Engine),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tresources, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"KVStore\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresourcesGetInstanceEngines, err := kvstore.GetInstanceEngines(ctx, \u0026kvstore.GetInstanceEnginesArgs{\n\t\t\tZoneId:             resources.Zones[0].Id,\n\t\t\tInstanceChargeType: pulumi.StringRef(\"PrePaid\"),\n\t\t\tEngine:             pulumi.StringRef(\"Redis\"),\n\t\t\tEngineVersion:      pulumi.StringRef(\"5.0\"),\n\t\t\tOutputFile:         pulumi.StringRef(\"./engines.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstKvstoreInstanceClass\", resourcesGetInstanceEngines.InstanceEngines[0].Engine)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.kvstore.KvstoreFunctions;\nimport com.pulumi.alicloud.kvstore.inputs.GetInstanceEnginesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var resources = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"KVStore\")\n            .build());\n\n        final var resourcesGetInstanceEngines = KvstoreFunctions.getInstanceEngines(GetInstanceEnginesArgs.builder()\n            .zoneId(resources.zones()[0].id())\n            .instanceChargeType(\"PrePaid\")\n            .engine(\"Redis\")\n            .engineVersion(\"5.0\")\n            .outputFile(\"./engines.txt\")\n            .build());\n\n        ctx.export(\"firstKvstoreInstanceClass\", resourcesGetInstanceEngines.instanceEngines()[0].engine());\n    }\n}\n```\n```yaml\nvariables:\n  resources:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: KVStore\n  resourcesGetInstanceEngines:\n    fn::invoke:\n      function: alicloud:kvstore:getInstanceEngines\n      arguments:\n        zoneId: ${resources.zones[0].id}\n        instanceChargeType: PrePaid\n        engine: Redis\n        engineVersion: '5.0'\n        outputFile: ./engines.txt\noutputs:\n  firstKvstoreInstanceClass: ${resourcesGetInstanceEngines.instanceEngines[0].engine}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceEngines.\n","properties":{"engine":{"type":"string","description":"Database type. Options are `Redis`, `Memcache`. Default to `Redis`.\n"},"engineVersion":{"type":"string","description":"Database version required by the user. Value options of Redis can refer to the latest docs [detail info](https://www.alibabacloud.com/help/en/redis/developer-reference/api-r-kvstore-2015-01-01-createinstance-redis) `EngineVersion`. Value of Memcache should be empty.\n"},"instanceChargeType":{"type":"string","description":"Filter the results by charge type. Valid values: `PrePaid` and `PostPaid`. Default to `PrePaid`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi up`).\n"},"zoneId":{"type":"string","description":"The Zone to launch the Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance.\n"}},"type":"object","required":["zoneId"]},"outputs":{"description":"A collection of values returned by getInstanceEngines.\n","properties":{"engine":{"description":"Database type.\n","type":"string"},"engineVersion":{"description":"Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance version.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceChargeType":{"type":"string"},"instanceEngines":{"description":"A list of Tair (Redis OSS-Compatible) And Memcache (KVStore) available instance engines. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:kvstore/getInstanceEnginesInstanceEngine:getInstanceEnginesInstanceEngine"},"type":"array"},"outputFile":{"type":"string"},"zoneId":{"description":"The Zone to launch the Tair (Redis OSS-Compatible) And Memcache (KVStore) Instance.\n","type":"string"}},"required":["instanceEngines","zoneId","id"],"type":"object"}},"alicloud:kvstore/getInstances:getInstances":{"description":"This data source provides the Tair (Redis OSS-Compatible) And Memcache (KVStore) Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.15.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.kvstore.getInstances({\n    nameRegex: \"testname\",\n});\nexport const firstInstanceName = _default.then(_default =\u003e _default.instances?.[0]?.name);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.kvstore.get_instances(name_regex=\"testname\")\npulumi.export(\"firstInstanceName\", default.instances[0].name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.KVStore.GetInstances.Invoke(new()\n    {\n        NameRegex = \"testname\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstInstanceName\"] = @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Name)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := kvstore.GetInstances(ctx, \u0026kvstore.GetInstancesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"testname\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstInstanceName\", _default.Instances[0].Name)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kvstore.KvstoreFunctions;\nimport com.pulumi.alicloud.kvstore.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = KvstoreFunctions.getInstances(GetInstancesArgs.builder()\n            .nameRegex(\"testname\")\n            .build());\n\n        ctx.export(\"firstInstanceName\", default_.instances()[0].name());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:kvstore:getInstances\n      arguments:\n        nameRegex: testname\noutputs:\n  firstInstanceName: ${default.instances[0].name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"architectureType":{"type":"string","description":"The type of the architecture. Valid values: \u003cspan pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\"\u003e`cluster`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e and `SplitRW`.\n"},"editionType":{"type":"string","description":"Used to retrieve instances belong to specified \u003cspan pulumi-lang-nodejs=\"`vswitch`\" pulumi-lang-dotnet=\"`Vswitch`\" pulumi-lang-go=\"`vswitch`\" pulumi-lang-python=\"`vswitch`\" pulumi-lang-yaml=\"`vswitch`\" pulumi-lang-java=\"`vswitch`\"\u003e`vswitch`\u003c/span\u003e resources.  Valid values: `Enterprise`, `Community`.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to true can output more details.\n"},"engineVersion":{"type":"string","description":"The engine version. Valid values: `2.8`, `4.0`, `5.0`, `6.0`, `7.0`.\n"},"expired":{"type":"string","description":"The expiration status of the instance.\n"},"globalInstance":{"type":"boolean","description":"Whether to create a distributed cache.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of KVStore DBInstance IDs.\n"},"instanceClass":{"type":"string","description":"Type of the applied Tair (Redis OSS-Compatible) And Memcache (KVStore) Classic Instance. For more information, see [Instance type table](https://help.aliyun.com/zh/redis/developer-reference/instance-types).\n"},"instanceType":{"type":"string","description":"The engine type of the KVStore DBInstance. Options are `Memcache`, and `Redis`. If no value is specified, all types are returned.\n"},"nameRegex":{"type":"string","description":"A regex string to apply to the instance name.\n"},"networkType":{"type":"string","description":"The type of the network. Valid values: `CLASSIC`, `VPC`.\n"},"outputFile":{"type":"string","description":"The name of file that can save the collection of instances after running `pulumi preview`.\n"},"paymentType":{"type":"string","description":"The payment type. Valid values: `PostPaid`, `PrePaid`.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"searchKey":{"type":"string","description":"The name of the instance.\n"},"status":{"type":"string","description":"The status of the KVStore DBInstance. Valid values: `Changing`, `CleaningUpExpiredData`, `Creating`, `Flushing`, `HASwitching`, `Inactive`, `MajorVersionUpgrading`, `Migrating`, `NetworkModifying`, `Normal`, `Rebooting`, `SSLModifying`, `Transforming`, `ZoneMigrating`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Query the instance bound to the tag. The format of the incoming value is \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e string, including `TagKey` and `TagValue`. `TagKey` cannot be null, and `TagValue` can be empty. Format example `{\"key1\":\"value1\"}`.\n"},"vpcId":{"type":"string","description":"Used to retrieve instances belong to specified VPC.\n"},"vswitchId":{"type":"string","description":"Used to retrieve instances belong to specified \u003cspan pulumi-lang-nodejs=\"`vswitch`\" pulumi-lang-dotnet=\"`Vswitch`\" pulumi-lang-go=\"`vswitch`\" pulumi-lang-python=\"`vswitch`\" pulumi-lang-yaml=\"`vswitch`\" pulumi-lang-java=\"`vswitch`\"\u003e`vswitch`\u003c/span\u003e resources.\n"},"zoneId":{"type":"string","description":"The ID of the zone.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"architectureType":{"description":"The architecture type of the instance.\n","type":"string"},"editionType":{"type":"string"},"enableDetails":{"type":"boolean"},"engineVersion":{"description":"The engine version of the instance.\n","type":"string"},"expired":{"type":"string"},"globalInstance":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of KVStore Instance IDs.\n","items":{"type":"string"},"type":"array"},"instanceClass":{"description":"Type of the applied Tair (Redis OSS-Compatible) And Memcached (KVStore) Classic Instance. For more information, see [Instance type table](https://www.alibabacloud.com/help/en/redis/product-overview/overview-4).\n","type":"string"},"instanceType":{"description":"Database type. Valid Values: `Memcache`, `Redis`. If no value is specified, all types are returned.\n","type":"string"},"instances":{"description":"A list of KVStore Instances. Its every element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:kvstore/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of KVStore Instance names.\n","items":{"type":"string"},"type":"array"},"networkType":{"description":"The network type of the instance.\n","type":"string"},"outputFile":{"type":"string"},"paymentType":{"description":"Billing method. Valid Values: `PostPaid` for  Pay-As-You-Go and `PrePaid` for subscription.\n","type":"string"},"resourceGroupId":{"description":"The ID of the resource group to which the instance belongs.\n","type":"string"},"searchKey":{"description":"The keyword used for fuzzy search. The keyword can be based on an instance name or an instance ID.\n","type":"string"},"status":{"description":"Status of the instance.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","type":"object"},"vpcId":{"description":"VPC ID the instance belongs to.\n","type":"string"},"vswitchId":{"description":"VSwitch ID the instance belongs to.\n","type":"string"},"zoneId":{"description":"The ID of zone.\n","type":"string"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:kvstore/getPermission:getPermission":{"description":"Assigns a RAM role to Tair (Redis OSS-Compatible) And Memcache (KVStore).\n\nThe log management feature of Tair (Redis OSS-Compatible) And Memcache (KVStore) requires the resources of [Log Service](https://www.alibabacloud.com/help/doc-detail/48869.htm). \nTo use the log management feature of Tair (Redis OSS-Compatible) And Memcache (KVStore), you can call this operation to associate the RAM role named AliyunServiceRoleForKvstore with the Tair (Redis OSS-Compatible) And Memcache (KVStore) instance. \nFor more information, see [Associated RAM roles of Tair (Redis OSS-Compatible) And Memcache (KVStore)](https://www.alibabacloud.com/help/doc-detail/184337.htm)\n\n\u003e **NOTE:** Available since v1.128.0\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.kvstore.getPermission({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.kvstore.get_permission(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.KVStore.GetPermission.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := kvstore.GetPermission(ctx, \u0026kvstore.GetPermissionArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kvstore.KvstoreFunctions;\nimport com.pulumi.alicloud.kvstore.inputs.GetPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = KvstoreFunctions.getPermission(GetPermissionArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:kvstore:getPermission\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPermission.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to assigns a RAM role to Tair (Redis OSS-Compatible) And Memcache (KVStore). If has been enabled, return the result. Valid values: \"On\" or \"Off\". Default to \"Off\".\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPermission.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:kvstore/getZones:getZones":{"description":"This data source provides availability zones for Tair (Redis OSS-Compatible) And Memcache (KVStore) that can be accessed by an Alibaba Cloud account within the region configured in the provider.\n\n\u003e **NOTE:** Available since v1.73.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst zonesIds = alicloud.kvstore.getZones({\n    instanceChargeType: \"PostPaid\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nzones_ids = alicloud.kvstore.get_zones(instance_charge_type=\"PostPaid\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var zonesIds = AliCloud.KVStore.GetZones.Invoke(new()\n    {\n        InstanceChargeType = \"PostPaid\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\t_, err := kvstore.GetZones(ctx, \u0026kvstore.GetZonesArgs{\n\t\t\tInstanceChargeType: pulumi.StringRef(\"PostPaid\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.kvstore.KvstoreFunctions;\nimport com.pulumi.alicloud.kvstore.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var zonesIds = KvstoreFunctions.getZones(GetZonesArgs.builder()\n            .instanceChargeType(\"PostPaid\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  zonesIds:\n    fn::invoke:\n      function: alicloud:kvstore:getZones\n      arguments:\n        instanceChargeType: PostPaid\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"engine":{"type":"string","description":"Database type. Options are `Redis`, `Memcache`. Default to `Redis`.\n*\u003cspan pulumi-lang-nodejs=\" productType \" pulumi-lang-dotnet=\" ProductType \" pulumi-lang-go=\" productType \" pulumi-lang-python=\" product_type \" pulumi-lang-yaml=\" productType \" pulumi-lang-java=\" productType \"\u003e product_type \u003c/span\u003e- (Optional, Available since v1.130.0+) The type of the service. Valid values: `Local`, `Tair_rdb`, `Tair_scm`, `Tair_essd`, `OnECS`.\n"},"instanceChargeType":{"type":"string","description":"Filter the results by a specific instance charge type. Valid values: `PrePaid` and `PostPaid`. Default to `PostPaid`.\n"},"multi":{"type":"boolean","description":"Indicate whether the zones can be used in a multi AZ configuration. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Multi AZ is usually used to launch Tair (Redis OSS-Compatible) And Memcache (KVStore) instances.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"productType":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"engine":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of zone IDs.\n","items":{"type":"string"},"type":"array"},"instanceChargeType":{"type":"string"},"multi":{"type":"boolean"},"outputFile":{"type":"string"},"productType":{"type":"string"},"zones":{"description":"A list of availability zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:kvstore/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:lindorm/getInstances:getInstances":{"description":"This data source provides the Lindorm Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.132.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.lindorm.getInstances({});\nexport const lindormInstanceId1 = ids.then(ids =\u003e ids.instances?.[0]?.id);\nconst nameRegex = alicloud.lindorm.getInstances({\n    nameRegex: \"^my-Instance\",\n});\nexport const lindormInstanceId2 = nameRegex.then(nameRegex =\u003e nameRegex.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.lindorm.get_instances()\npulumi.export(\"lindormInstanceId1\", ids.instances[0].id)\nname_regex = alicloud.lindorm.get_instances(name_regex=\"^my-Instance\")\npulumi.export(\"lindormInstanceId2\", name_regex.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Lindorm.GetInstances.Invoke();\n\n    var nameRegex = AliCloud.Lindorm.GetInstances.Invoke(new()\n    {\n        NameRegex = \"^my-Instance\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"lindormInstanceId1\"] = ids.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n        [\"lindormInstanceId2\"] = nameRegex.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/lindorm\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := lindorm.GetInstances(ctx, \u0026lindorm.GetInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"lindormInstanceId1\", ids.Instances[0].Id)\n\t\tnameRegex, err := lindorm.GetInstances(ctx, \u0026lindorm.GetInstancesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"lindormInstanceId2\", nameRegex.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.lindorm.LindormFunctions;\nimport com.pulumi.alicloud.lindorm.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = LindormFunctions.getInstances(GetInstancesArgs.builder()\n            .build());\n\n        ctx.export(\"lindormInstanceId1\", ids.instances()[0].id());\n        final var nameRegex = LindormFunctions.getInstances(GetInstancesArgs.builder()\n            .nameRegex(\"^my-Instance\")\n            .build());\n\n        ctx.export(\"lindormInstanceId2\", nameRegex.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:lindorm:getInstances\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:lindorm:getInstances\n      arguments:\n        nameRegex: ^my-Instance\noutputs:\n  lindormInstanceId1: ${ids.instances[0].id}\n  lindormInstanceId2: ${nameRegex.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Instance IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"queryStr":{"type":"string","description":"The query str, which can use \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e keyword for fuzzy search.\n"},"status":{"type":"string","description":"Instance status, Valid values: `ACTIVATION`, `DELETED`, `CREATING`, `CLASS_CHANGING`, `LOCKED`, `INSTANCE_LEVEL_MODIFY`, `NET_MODIFYING`, `RESIZING`, `RESTARTING`, `MINOR_VERSION_TRANSING`.\n"},"supportEngine":{"type":"integer","description":"The support engine. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instances":{"items":{"$ref":"#/types/alicloud:lindorm/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"queryStr":{"type":"string"},"status":{"type":"string"},"supportEngine":{"type":"integer"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:log/getAlertResource:getAlertResource":{"description":"Using this data source can init SLS Alert resources automatically.\n\nFor information about SLS Alert and how to use it, see [SLS Alert Overview](https://www.alibabacloud.com/help/en/doc-detail/209202.html)\n\n\u003e **DEPRECATED:**  This resource  has been deprecated from version `1.219.0`. Please use new resource alicloud_log_alert_resource.\n\n\u003e **NOTE:** Available since v1.161.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst exampleUser = alicloud.log.getAlertResource({\n    type: \"user\",\n    lang: \"cn\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample_user = alicloud.log.get_alert_resource(type=\"user\",\n    lang=\"cn\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleUser = AliCloud.Log.GetAlertResource.Invoke(new()\n    {\n        Type = \"user\",\n        Lang = \"cn\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := log.LookupAlertResource(ctx, \u0026log.LookupAlertResourceArgs{\n\t\t\tType: \"user\",\n\t\t\tLang: pulumi.StringRef(\"cn\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.log.LogFunctions;\nimport com.pulumi.alicloud.log.inputs.GetAlertResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var exampleUser = LogFunctions.getAlertResource(GetAlertResourceArgs.builder()\n            .type(\"user\")\n            .lang(\"cn\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  exampleUser:\n    fn::invoke:\n      function: alicloud:log:getAlertResource\n      arguments:\n        type: user\n        lang: cn\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAlertResource.\n","properties":{"lang":{"type":"string","description":"The lang of alert center resource when type is user.\n"},"project":{"type":"string","description":"The project of alert resource when type is project.\n"},"type":{"type":"string","description":"The type of alert resources, must be user or project, 'user' for init aliyuncloud account's alert center resource, including project named sls-alert-{uid}-{region} and some dashboards; 'project' for init project's alert resource, including logstore named internal-alert-history and alert dashboard.\n"}},"type":"object","required":["type"]},"outputs":{"description":"A collection of values returned by getAlertResource.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lang":{"type":"string"},"project":{"type":"string"},"type":{"type":"string"}},"required":["type","id"],"type":"object"}},"alicloud:log/getProjects:getProjects":{"description":"This data source provides the Log Projects of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.126.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.log.getProjects({\n    ids: [\"the_project_name\"],\n});\nexport const firstLogProjectId = example.then(example =\u003e example.project[0].id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.log.get_projects(ids=[\"the_project_name\"])\npulumi.export(\"firstLogProjectId\", example.project[0][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Log.GetProjects.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"the_project_name\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstLogProjectId\"] = example.Apply(getProjectsResult =\u003e getProjectsResult.Project[0].Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := log.GetProjects(ctx, \u0026log.GetProjectsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"the_project_name\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstLogProjectId\", example.Project[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.log.LogFunctions;\nimport com.pulumi.alicloud.log.inputs.GetProjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = LogFunctions.getProjects(GetProjectsArgs.builder()\n            .ids(\"the_project_name\")\n            .build());\n\n        ctx.export(\"firstLogProjectId\", example.project()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:log:getProjects\n      arguments:\n        ids:\n          - the_project_name\noutputs:\n  firstLogProjectId: ${example.project[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProjects.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of project IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by project name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of log project. Valid values `Normal` and `Disable`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getProjects.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"projects":{"items":{"$ref":"#/types/alicloud:log/getProjectsProject:getProjectsProject"},"type":"array"},"status":{"type":"string"}},"required":["ids","names","projects","id"],"type":"object"}},"alicloud:log/getService:getService":{"description":"Using this data source can enable Log service automatically. If the service has been enabled, it will return `Opened`.\n\nFor information about Log service and how to use it, see [What is Log Service](https://www.alibabacloud.com/help/product/28958.htm).\n\n\u003e **NOTE:** Available since v1.96.0\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.log.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.log.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Log.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := log.GetService(ctx, \u0026log.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.log.LogFunctions;\nimport com.pulumi.alicloud.log.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = LogFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:log:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: \"On\" or \"Off\". Default to \"Off\".\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the Log service that means you have read and agreed the [Log Terms of Service](https://help.aliyun.com/document_detail/53476.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:log/getStores:getStores":{"description":"This data source provides the Log Stores of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.126.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.log.getStores({\n    project: \"the_project_name\",\n    ids: [\"the_store_name\"],\n});\nexport const firstLogStoreId = example.then(example =\u003e example.stores?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.log.get_stores(project=\"the_project_name\",\n    ids=[\"the_store_name\"])\npulumi.export(\"firstLogStoreId\", example.stores[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Log.GetStores.Invoke(new()\n    {\n        Project = \"the_project_name\",\n        Ids = new[]\n        {\n            \"the_store_name\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstLogStoreId\"] = example.Apply(getStoresResult =\u003e getStoresResult.Stores[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := log.GetStores(ctx, \u0026log.GetStoresArgs{\n\t\t\tProject: \"the_project_name\",\n\t\t\tIds: []string{\n\t\t\t\t\"the_store_name\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstLogStoreId\", example.Stores[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.log.LogFunctions;\nimport com.pulumi.alicloud.log.inputs.GetStoresArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = LogFunctions.getStores(GetStoresArgs.builder()\n            .project(\"the_project_name\")\n            .ids(\"the_store_name\")\n            .build());\n\n        ctx.export(\"firstLogStoreId\", example.stores()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:log:getStores\n      arguments:\n        project: the_project_name\n        ids:\n          - the_store_name\noutputs:\n  firstLogStoreId: ${example.stores[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStores.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of store IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by store name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"project":{"type":"string"}},"type":"object","required":["project"]},"outputs":{"description":"A collection of values returned by getStores.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"project":{"type":"string"},"stores":{"items":{"$ref":"#/types/alicloud:log/getStoresStore:getStoresStore"},"type":"array"}},"required":["ids","names","project","stores","id"],"type":"object"}},"alicloud:marketplace/getProduct:getProduct":{"description":"This data source provides the Market product item details of Alibaba Cloud.\n\n\u003e **NOTE:** Available in 1.69.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.marketplace.getProduct({\n    productCode: \"cmapi022206\",\n});\nexport const productName = _default.then(_default =\u003e _default.products?.[0]?.name);\nexport const firstProductSkuCode = _default.then(_default =\u003e _default.products?.[0]?.skuses?.[0]?.skuCode);\nexport const firstProductPackageVersion = _default.then(_default =\u003e _default.products?.[0]?.skuses?.[0]?.packageVersions?.[0]?.packageVersion);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.marketplace.get_product(product_code=\"cmapi022206\")\npulumi.export(\"productName\", default.products[0].name)\npulumi.export(\"firstProductSkuCode\", default.products[0].skuses[0].sku_code)\npulumi.export(\"firstProductPackageVersion\", default.products[0].skuses[0].package_versions[0].package_version)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.MarketPlace.GetProduct.Invoke(new()\n    {\n        ProductCode = \"cmapi022206\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"productName\"] = @default.Apply(@default =\u003e @default.Apply(getProductResult =\u003e getProductResult.Products[0]?.Name)),\n        [\"firstProductSkuCode\"] = @default.Apply(@default =\u003e @default.Apply(getProductResult =\u003e getProductResult.Products[0]?.Skuses[0]?.SkuCode)),\n        [\"firstProductPackageVersion\"] = @default.Apply(@default =\u003e @default.Apply(getProductResult =\u003e getProductResult.Products[0]?.Skuses[0]?.PackageVersions[0]?.PackageVersion)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/marketplace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := marketplace.GetProduct(ctx, \u0026marketplace.GetProductArgs{\n\t\t\tProductCode: \"cmapi022206\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"productName\", _default.Products[0].Name)\n\t\tctx.Export(\"firstProductSkuCode\", _default.Products[0].Skuses[0].SkuCode)\n\t\tctx.Export(\"firstProductPackageVersion\", _default.Products[0].Skuses[0].PackageVersions[0].PackageVersion)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.marketplace.MarketplaceFunctions;\nimport com.pulumi.alicloud.marketplace.inputs.GetProductArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = MarketplaceFunctions.getProduct(GetProductArgs.builder()\n            .productCode(\"cmapi022206\")\n            .build());\n\n        ctx.export(\"productName\", default_.products()[0].name());\n        ctx.export(\"firstProductSkuCode\", default_.products()[0].skuses()[0].skuCode());\n        ctx.export(\"firstProductPackageVersion\", default_.products()[0].skuses()[0].packageVersions()[0].packageVersion());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:marketplace:getProduct\n      arguments:\n        productCode: cmapi022206\noutputs:\n  productName: ${default.products[0].name}\n  firstProductSkuCode: ${default.products[0].skuses[0].skuCode}\n  firstProductPackageVersion: ${default.products[0].skuses[0].packageVersions[0].packageVersion}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProduct.\n","properties":{"availableRegion":{"type":"string","description":"A available region id used to filter market place Ecs images.\n"},"productCode":{"type":"string","description":"The product code of the market product.\n"}},"type":"object","required":["productCode"]},"outputs":{"description":"A collection of values returned by getProduct.\n","properties":{"availableRegion":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"productCode":{"type":"string"},"products":{"description":"A product. It contains the following attributes:\n","items":{"$ref":"#/types/alicloud:marketplace/getProductProduct:getProductProduct"},"type":"array"}},"required":["products","productCode","id"],"type":"object"}},"alicloud:marketplace/getProducts:getProducts":{"description":"This data source provides the Market product items of Alibaba Cloud.\n\n\u003e **NOTE:** Available in 1.64.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.marketplace.getProducts({\n    sort: \"created_on-desc\",\n    categoryId: \"53690006\",\n    productType: \"SERVICE\",\n});\nexport const firstProductCode = _default.then(_default =\u003e _default.productItems[0].code);\nexport const productCodes = _default.then(_default =\u003e _default.ids);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.marketplace.get_products(sort=\"created_on-desc\",\n    category_id=\"53690006\",\n    product_type=\"SERVICE\")\npulumi.export(\"firstProductCode\", default.product_items[0][\"code\"])\npulumi.export(\"productCodes\", default.ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.MarketPlace.GetProducts.Invoke(new()\n    {\n        Sort = \"created_on-desc\",\n        CategoryId = \"53690006\",\n        ProductType = \"SERVICE\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstProductCode\"] = @default.Apply(@default =\u003e @default.Apply(getProductsResult =\u003e getProductsResult.ProductItems[0].Code)),\n        [\"productCodes\"] = @default.Apply(@default =\u003e @default.Apply(getProductsResult =\u003e getProductsResult.Ids)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/marketplace\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := marketplace.GetProducts(ctx, \u0026marketplace.GetProductsArgs{\n\t\t\tSort:        pulumi.StringRef(\"created_on-desc\"),\n\t\t\tCategoryId:  pulumi.StringRef(\"53690006\"),\n\t\t\tProductType: pulumi.StringRef(\"SERVICE\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstProductCode\", _default.ProductItems[0].Code)\n\t\tctx.Export(\"productCodes\", _default.Ids)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.marketplace.MarketplaceFunctions;\nimport com.pulumi.alicloud.marketplace.inputs.GetProductsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = MarketplaceFunctions.getProducts(GetProductsArgs.builder()\n            .sort(\"created_on-desc\")\n            .categoryId(\"53690006\")\n            .productType(\"SERVICE\")\n            .build());\n\n        ctx.export(\"firstProductCode\", default_.productItems()[0].code());\n        ctx.export(\"productCodes\", default_.ids());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:marketplace:getProducts\n      arguments:\n        sort: created_on-desc\n        categoryId: '53690006'\n        productType: SERVICE\noutputs:\n  firstProductCode: ${default.productItems[0].code}\n  productCodes: ${default.ids}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProducts.\n","properties":{"categoryId":{"type":"string","description":"The Category ID of products.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of product code.\n"},"nameRegex":{"type":"string","description":"A regex string to apply to the product name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"productType":{"type":"string","description":"The type of products, Valid values: `APP`, `SERVICE`, `MIRROR`, `DOWNLOAD` and `API_SERVICE`.\n"},"searchTerm":{"type":"string","description":"Search term in this query.\n"},"sort":{"type":"string","description":"This field determines how to sort the filtered results, Valid values: `user_count-desc`, `created_on-desc`, `price-desc` and `score-desc`.\n"},"suggestedPrice":{"type":"number","description":"The suggested price of the product.\n"},"supplierId":{"type":"string","description":"The supplier id of the product.\n"},"supplierNameKeyword":{"type":"string","description":"The supplier name keyword of the product.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getProducts.\n","properties":{"categoryId":{"description":"The category id of the product.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of product codes.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"outputFile":{"type":"string"},"productType":{"type":"string"},"products":{"description":"A list of products. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:marketplace/getProductsProduct:getProductsProduct"},"type":"array"},"searchTerm":{"type":"string"},"sort":{"type":"string"},"suggestedPrice":{"description":"The suggested price of the product.\n","type":"number"},"supplierId":{"description":"The supplier id of the product.\n","type":"string"},"supplierNameKeyword":{"type":"string"}},"required":["ids","products","id"],"type":"object"}},"alicloud:maxcompute/getProjects:getProjects":{"description":"This data source provides Max Compute Project available to the user.[What is Project](https://www.alibabacloud.com/help/en/maxcompute/)\n\n\u003e **NOTE:** Available since v1.196.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_example_acc\";\nconst defaultProject = new alicloud.maxcompute.Project(\"default\", {\n    defaultQuota: \"默认后付费Quota\",\n    projectName: name,\n    comment: name,\n    productType: \"PayAsYouGo\",\n});\nconst _default = alicloud.maxcompute.getProjectsOutput({\n    nameRegex: defaultProject.projectName,\n});\nexport const alicloudMaxcomputeProjectExampleId = _default.apply(_default =\u003e _default.projects?.[0]?.projectName);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_example_acc\"\ndefault_project = alicloud.maxcompute.Project(\"default\",\n    default_quota=\"默认后付费Quota\",\n    project_name=name,\n    comment=name,\n    product_type=\"PayAsYouGo\")\ndefault = alicloud.maxcompute.get_projects_output(name_regex=default_project.project_name)\npulumi.export(\"alicloudMaxcomputeProjectExampleId\", default.projects[0].project_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_example_acc\";\n    var defaultProject = new AliCloud.MaxCompute.Project(\"default\", new()\n    {\n        DefaultQuota = \"默认后付费Quota\",\n        ProjectName = name,\n        Comment = name,\n        ProductType = \"PayAsYouGo\",\n    });\n\n    var @default = AliCloud.MaxCompute.GetProjects.Invoke(new()\n    {\n        NameRegex = defaultProject.ProjectName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudMaxcomputeProjectExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getProjectsResult =\u003e getProjectsResult.Projects[0]?.ProjectName)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/maxcompute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"tf_example_acc\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultProject, err := maxcompute.NewProject(ctx, \"default\", \u0026maxcompute.ProjectArgs{\nDefaultQuota: pulumi.String(\"默认后付费Quota\"),\nProjectName: pulumi.String(name),\nComment: pulumi.String(name),\nProductType: pulumi.String(\"PayAsYouGo\"),\n})\nif err != nil {\nreturn err\n}\n_default := maxcompute.GetProjectsOutput(ctx, maxcompute.GetProjectsOutputArgs{\nNameRegex: defaultProject.ProjectName,\n}, nil);\nctx.Export(\"alicloudMaxcomputeProjectExampleId\", _default.ApplyT(func(_default maxcompute.GetProjectsResult) (*string, error) {\nreturn \u0026default.Projects[0].ProjectName, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.maxcompute.Project;\nimport com.pulumi.alicloud.maxcompute.ProjectArgs;\nimport com.pulumi.alicloud.maxcompute.MaxcomputeFunctions;\nimport com.pulumi.alicloud.maxcompute.inputs.GetProjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_example_acc\");\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .defaultQuota(\"默认后付费Quota\")\n            .projectName(name)\n            .comment(name)\n            .productType(\"PayAsYouGo\")\n            .build());\n\n        final var default = MaxcomputeFunctions.getProjects(GetProjectsArgs.builder()\n            .nameRegex(defaultProject.projectName())\n            .build());\n\n        ctx.export(\"alicloudMaxcomputeProjectExampleId\", default_.applyValue(_default_ -\u003e _default_.projects()[0].projectName()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_example_acc\nresources:\n  defaultProject:\n    type: alicloud:maxcompute:Project\n    name: default\n    properties:\n      defaultQuota: 默认后付费Quota\n      projectName: ${name}\n      comment: ${name}\n      productType: PayAsYouGo\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:maxcompute:getProjects\n      arguments:\n        nameRegex: ${defaultProject.projectName}\noutputs:\n  alicloudMaxcomputeProjectExampleId: ${default.projects[0].projectName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProjects.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Project IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getProjects.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Project IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Projects.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"projects":{"description":"A list of Project Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:maxcompute/getProjectsProject:getProjectsProject"},"type":"array"}},"required":["ids","names","projects","id"],"type":"object"}},"alicloud:maxcompute/getService:getService":{"description":"\u003e **NOTE:** When you open MaxCompute service, you'd better open [DataWorks service](https://www.alibabacloud.com/help/en/product/72772.htm) as well.\n\nUsing this data source can open Maxcompute service automatically. If the service has been opened, it will return opened.\n\nFor information about Maxcompute and how to use it, see [What is Maxcompute](https://www.alibabacloud.com/help/en/product/27797.htm).\n\n\u003e **NOTE:** Available in v1.117.0+\n\n\u003e **NOTE:** This datasource has been deprecated since provider version v1.228.0. Please use the resource \u003cspan pulumi-lang-nodejs=\"`alicloud.maxcompute.Quota`\" pulumi-lang-dotnet=\"`alicloud.maxcompute.Quota`\" pulumi-lang-go=\"`maxcompute.Quota`\" pulumi-lang-python=\"`maxcompute.Quota`\" pulumi-lang-yaml=\"`alicloud.maxcompute.Quota`\" pulumi-lang-java=\"`alicloud.maxcompute.Quota`\"\u003e`alicloud.maxcompute.Quota`\u003c/span\u003e instead.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.maxcompute.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.maxcompute.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.MaxCompute.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/maxcompute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := maxcompute.GetService(ctx, \u0026maxcompute.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.maxcompute.MaxcomputeFunctions;\nimport com.pulumi.alicloud.maxcompute.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = MaxcomputeFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:maxcompute:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the Maxcompute service that means you have read and agreed the [Maxcompute Terms of Service](https://help.aliyun.com/document_detail/98605.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:message/getServiceQueues:getServiceQueues":{"description":"This data source provides the Message Notification Service Queues of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.188.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.message.getServiceQueues({\n    ids: [\"example_id\"],\n});\nexport const queueId1 = ids.then(ids =\u003e ids.queues?.[0]?.id);\nconst name = alicloud.message.getServiceQueues({\n    queueName: \"tf-example\",\n});\nexport const queueId2 = name.then(name =\u003e name.queues?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.message.get_service_queues(ids=[\"example_id\"])\npulumi.export(\"queueId1\", ids.queues[0].id)\nname = alicloud.message.get_service_queues(queue_name=\"tf-example\")\npulumi.export(\"queueId2\", name.queues[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Message.GetServiceQueues.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var name = AliCloud.Message.GetServiceQueues.Invoke(new()\n    {\n        QueueName = \"tf-example\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"queueId1\"] = ids.Apply(getServiceQueuesResult =\u003e getServiceQueuesResult.Queues[0]?.Id),\n        [\"queueId2\"] = name.Apply(getServiceQueuesResult =\u003e getServiceQueuesResult.Queues[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/message\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := message.GetServiceQueues(ctx, \u0026message.GetServiceQueuesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"queueId1\", ids.Queues[0].Id)\n\t\tname, err := message.GetServiceQueues(ctx, \u0026message.GetServiceQueuesArgs{\n\t\t\tQueueName: pulumi.StringRef(\"tf-example\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"queueId2\", name.Queues[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.message.MessageFunctions;\nimport com.pulumi.alicloud.message.inputs.GetServiceQueuesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = MessageFunctions.getServiceQueues(GetServiceQueuesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"queueId1\", ids.queues()[0].id());\n        final var name = MessageFunctions.getServiceQueues(GetServiceQueuesArgs.builder()\n            .queueName(\"tf-example\")\n            .build());\n\n        ctx.export(\"queueId2\", name.queues()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:message:getServiceQueues\n      arguments:\n        ids:\n          - example_id\n  name:\n    fn::invoke:\n      function: alicloud:message:getServiceQueues\n      arguments:\n        queueName: tf-example\noutputs:\n  queueId1: ${ids.queues[0].id}\n  queueId2: ${name.queues[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceQueues.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Queue IDs. Its element value is same as Queue Name.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Queue name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"queueName":{"type":"string","description":"The name of the queue.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServiceQueues.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Queue names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"queueName":{"description":"The name of the queue.\n","type":"string"},"queues":{"description":"A list of Queues. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:message/getServiceQueuesQueue:getServiceQueuesQueue"},"type":"array"}},"required":["ids","names","queues","id"],"type":"object"}},"alicloud:message/getServiceSubscriptions:getServiceSubscriptions":{"description":"This data source provides the Message Notification Service Subscriptions of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.188.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.message.getServiceSubscriptions({\n    ids: [\"example_id\"],\n    topicName: \"tf-example\",\n});\nexport const subscriptionId1 = ids.then(ids =\u003e ids.subscriptions?.[0]?.id);\nconst name = alicloud.message.getServiceSubscriptions({\n    topicName: \"tf-example\",\n});\nexport const subscriptionId2 = name.then(name =\u003e name.subscriptions?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.message.get_service_subscriptions(ids=[\"example_id\"],\n    topic_name=\"tf-example\")\npulumi.export(\"subscriptionId1\", ids.subscriptions[0].id)\nname = alicloud.message.get_service_subscriptions(topic_name=\"tf-example\")\npulumi.export(\"subscriptionId2\", name.subscriptions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Message.GetServiceSubscriptions.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        TopicName = \"tf-example\",\n    });\n\n    var name = AliCloud.Message.GetServiceSubscriptions.Invoke(new()\n    {\n        TopicName = \"tf-example\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"subscriptionId1\"] = ids.Apply(getServiceSubscriptionsResult =\u003e getServiceSubscriptionsResult.Subscriptions[0]?.Id),\n        [\"subscriptionId2\"] = name.Apply(getServiceSubscriptionsResult =\u003e getServiceSubscriptionsResult.Subscriptions[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/message\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := message.GetServiceSubscriptions(ctx, \u0026message.GetServiceSubscriptionsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tTopicName: \"tf-example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"subscriptionId1\", ids.Subscriptions[0].Id)\n\t\tname, err := message.GetServiceSubscriptions(ctx, \u0026message.GetServiceSubscriptionsArgs{\n\t\t\tTopicName: \"tf-example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"subscriptionId2\", name.Subscriptions[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.message.MessageFunctions;\nimport com.pulumi.alicloud.message.inputs.GetServiceSubscriptionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = MessageFunctions.getServiceSubscriptions(GetServiceSubscriptionsArgs.builder()\n            .ids(\"example_id\")\n            .topicName(\"tf-example\")\n            .build());\n\n        ctx.export(\"subscriptionId1\", ids.subscriptions()[0].id());\n        final var name = MessageFunctions.getServiceSubscriptions(GetServiceSubscriptionsArgs.builder()\n            .topicName(\"tf-example\")\n            .build());\n\n        ctx.export(\"subscriptionId2\", name.subscriptions()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:message:getServiceSubscriptions\n      arguments:\n        ids:\n          - example_id\n        topicName: tf-example\n  name:\n    fn::invoke:\n      function: alicloud:message:getServiceSubscriptions\n      arguments:\n        topicName: tf-example\noutputs:\n  subscriptionId1: ${ids.subscriptions[0].id}\n  subscriptionId2: ${name.subscriptions[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceSubscriptions.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Subscription IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Subscription name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"subscriptionName":{"type":"string","description":"The name of the subscription.\n"},"topicName":{"type":"string","description":"The name of the topic.\n"}},"type":"object","required":["topicName"]},"outputs":{"description":"A collection of values returned by getServiceSubscriptions.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Subscription names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"subscriptionName":{"description":"The name of the subscription.\n","type":"string"},"subscriptions":{"description":"A list of Subscriptions. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:message/getServiceSubscriptionsSubscription:getServiceSubscriptionsSubscription"},"type":"array"},"topicName":{"description":"The name of the topic.\n","type":"string"}},"required":["ids","names","subscriptions","topicName","id"],"type":"object"}},"alicloud:message/getServiceTopics:getServiceTopics":{"description":"This data source provides the Message Notification Service Topics of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.188.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.message.getServiceTopics({\n    ids: [\"example_id\"],\n});\nexport const topicId1 = ids.then(ids =\u003e ids.topics?.[0]?.id);\nconst name = alicloud.message.getServiceTopics({\n    topicName: \"tf-example\",\n});\nexport const topicId2 = name.then(name =\u003e name.topics?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.message.get_service_topics(ids=[\"example_id\"])\npulumi.export(\"topicId1\", ids.topics[0].id)\nname = alicloud.message.get_service_topics(topic_name=\"tf-example\")\npulumi.export(\"topicId2\", name.topics[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Message.GetServiceTopics.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var name = AliCloud.Message.GetServiceTopics.Invoke(new()\n    {\n        TopicName = \"tf-example\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"topicId1\"] = ids.Apply(getServiceTopicsResult =\u003e getServiceTopicsResult.Topics[0]?.Id),\n        [\"topicId2\"] = name.Apply(getServiceTopicsResult =\u003e getServiceTopicsResult.Topics[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/message\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := message.GetServiceTopics(ctx, \u0026message.GetServiceTopicsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"topicId1\", ids.Topics[0].Id)\n\t\tname, err := message.GetServiceTopics(ctx, \u0026message.GetServiceTopicsArgs{\n\t\t\tTopicName: pulumi.StringRef(\"tf-example\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"topicId2\", name.Topics[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.message.MessageFunctions;\nimport com.pulumi.alicloud.message.inputs.GetServiceTopicsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = MessageFunctions.getServiceTopics(GetServiceTopicsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"topicId1\", ids.topics()[0].id());\n        final var name = MessageFunctions.getServiceTopics(GetServiceTopicsArgs.builder()\n            .topicName(\"tf-example\")\n            .build());\n\n        ctx.export(\"topicId2\", name.topics()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:message:getServiceTopics\n      arguments:\n        ids:\n          - example_id\n  name:\n    fn::invoke:\n      function: alicloud:message:getServiceTopics\n      arguments:\n        topicName: tf-example\noutputs:\n  topicId1: ${ids.topics[0].id}\n  topicId2: ${name.topics[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceTopics.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Topic IDs. Its element value is same as Topic Name.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Topic name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"topicName":{"type":"string","description":"The name of the topic.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServiceTopics.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Topic names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"topicName":{"description":"The name of the topic.\n","type":"string"},"topics":{"description":"A list of Topics. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:message/getServiceTopicsTopic:getServiceTopicsTopic"},"type":"array"}},"required":["ids","names","topics","id"],"type":"object"}},"alicloud:mhub/getApps:getApps":{"description":"This data source provides the Mhub Apps of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.138.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"example_value\";\nconst _default = new alicloud.mhub.App(\"default\", {\n    appName: name,\n    productId: defaultAlicloudMhubProduct.id,\n    packageName: \"com.test.android\",\n    type: \"2\",\n});\nconst ids = alicloud.mhub.getApps({});\nexport const mhubAppId1 = ids.then(ids =\u003e ids.apps?.[0]?.id);\nconst nameRegex = alicloud.mhub.getApps({\n    nameRegex: \"^my-App\",\n});\nexport const mhubAppId2 = nameRegex.then(nameRegex =\u003e nameRegex.apps?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"example_value\"\ndefault = alicloud.mhub.App(\"default\",\n    app_name=name,\n    product_id=default_alicloud_mhub_product[\"id\"],\n    package_name=\"com.test.android\",\n    type=\"2\")\nids = alicloud.mhub.get_apps()\npulumi.export(\"mhubAppId1\", ids.apps[0].id)\nname_regex = alicloud.mhub.get_apps(name_regex=\"^my-App\")\npulumi.export(\"mhubAppId2\", name_regex.apps[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"example_value\";\n    var @default = new AliCloud.Mhub.App(\"default\", new()\n    {\n        AppName = name,\n        ProductId = defaultAlicloudMhubProduct.Id,\n        PackageName = \"com.test.android\",\n        Type = \"2\",\n    });\n\n    var ids = AliCloud.Mhub.GetApps.Invoke();\n\n    var nameRegex = AliCloud.Mhub.GetApps.Invoke(new()\n    {\n        NameRegex = \"^my-App\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mhubAppId1\"] = ids.Apply(getAppsResult =\u003e getAppsResult.Apps[0]?.Id),\n        [\"mhubAppId2\"] = nameRegex.Apply(getAppsResult =\u003e getAppsResult.Apps[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"example_value\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := mhub.NewApp(ctx, \"default\", \u0026mhub.AppArgs{\n\t\t\tAppName:     pulumi.String(name),\n\t\t\tProductId:   pulumi.Any(defaultAlicloudMhubProduct.Id),\n\t\t\tPackageName: pulumi.String(\"com.test.android\"),\n\t\t\tType:        pulumi.String(\"2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids, err := mhub.GetApps(ctx, \u0026mhub.GetAppsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mhubAppId1\", ids.Apps[0].Id)\n\t\tnameRegex, err := mhub.GetApps(ctx, \u0026mhub.GetAppsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-App\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mhubAppId2\", nameRegex.Apps[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mhub.App;\nimport com.pulumi.alicloud.mhub.AppArgs;\nimport com.pulumi.alicloud.mhub.MhubFunctions;\nimport com.pulumi.alicloud.mhub.inputs.GetAppsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"example_value\");\n        var default_ = new App(\"default\", AppArgs.builder()\n            .appName(name)\n            .productId(defaultAlicloudMhubProduct.id())\n            .packageName(\"com.test.android\")\n            .type(\"2\")\n            .build());\n\n        final var ids = MhubFunctions.getApps(GetAppsArgs.builder()\n            .build());\n\n        ctx.export(\"mhubAppId1\", ids.apps()[0].id());\n        final var nameRegex = MhubFunctions.getApps(GetAppsArgs.builder()\n            .nameRegex(\"^my-App\")\n            .build());\n\n        ctx.export(\"mhubAppId2\", nameRegex.apps()[0].id());\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: example_value\nresources:\n  default:\n    type: alicloud:mhub:App\n    properties:\n      appName: ${name}\n      productId: ${defaultAlicloudMhubProduct.id}\n      packageName: com.test.android\n      type: '2'\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:mhub:getApps\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:mhub:getApps\n      arguments:\n        nameRegex: ^my-App\noutputs:\n  mhubAppId1: ${ids.apps[0].id}\n  mhubAppId2: ${nameRegex.apps[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getApps.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of App IDs. The value formats as `\u003cproduct_id\u003e:\u003capp_key\u003e`\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by App name.\n"},"osType":{"type":"string","description":"The os type. Valid values: `Android` and `iOS`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"productId":{"type":"string","description":"The ID of the Product.\n"}},"type":"object","required":["productId"]},"outputs":{"description":"A collection of values returned by getApps.\n","properties":{"apps":{"items":{"$ref":"#/types/alicloud:mhub/getAppsApp:getAppsApp"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"osType":{"type":"string"},"outputFile":{"type":"string"},"productId":{"type":"string"}},"required":["apps","ids","names","productId","id"],"type":"object"}},"alicloud:mhub/getProducts:getProducts":{"description":"This data source provides the Mhub Products of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.138.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"example_value\";\nconst _default = new alicloud.mhub.Product(\"default\", {productName: name});\nconst ids = alicloud.mhub.getProducts({});\nexport const mhubProductId1 = ids.then(ids =\u003e ids.products?.[0]?.id);\nconst nameRegex = alicloud.mhub.getProducts({\n    nameRegex: \"^my-Product\",\n});\nexport const mhubProductId2 = nameRegex.then(nameRegex =\u003e nameRegex.products?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"example_value\"\ndefault = alicloud.mhub.Product(\"default\", product_name=name)\nids = alicloud.mhub.get_products()\npulumi.export(\"mhubProductId1\", ids.products[0].id)\nname_regex = alicloud.mhub.get_products(name_regex=\"^my-Product\")\npulumi.export(\"mhubProductId2\", name_regex.products[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"example_value\";\n    var @default = new AliCloud.Mhub.Product(\"default\", new()\n    {\n        ProductName = name,\n    });\n\n    var ids = AliCloud.Mhub.GetProducts.Invoke();\n\n    var nameRegex = AliCloud.Mhub.GetProducts.Invoke(new()\n    {\n        NameRegex = \"^my-Product\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mhubProductId1\"] = ids.Apply(getProductsResult =\u003e getProductsResult.Products[0]?.Id),\n        [\"mhubProductId2\"] = nameRegex.Apply(getProductsResult =\u003e getProductsResult.Products[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mhub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"example_value\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := mhub.NewProduct(ctx, \"default\", \u0026mhub.ProductArgs{\n\t\t\tProductName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids, err := mhub.GetProducts(ctx, \u0026mhub.GetProductsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mhubProductId1\", ids.Products[0].Id)\n\t\tnameRegex, err := mhub.GetProducts(ctx, \u0026mhub.GetProductsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Product\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mhubProductId2\", nameRegex.Products[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mhub.Product;\nimport com.pulumi.alicloud.mhub.ProductArgs;\nimport com.pulumi.alicloud.mhub.MhubFunctions;\nimport com.pulumi.alicloud.mhub.inputs.GetProductsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"example_value\");\n        var default_ = new Product(\"default\", ProductArgs.builder()\n            .productName(name)\n            .build());\n\n        final var ids = MhubFunctions.getProducts(GetProductsArgs.builder()\n            .build());\n\n        ctx.export(\"mhubProductId1\", ids.products()[0].id());\n        final var nameRegex = MhubFunctions.getProducts(GetProductsArgs.builder()\n            .nameRegex(\"^my-Product\")\n            .build());\n\n        ctx.export(\"mhubProductId2\", nameRegex.products()[0].id());\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: example_value\nresources:\n  default:\n    type: alicloud:mhub:Product\n    properties:\n      productName: ${name}\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:mhub:getProducts\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:mhub:getProducts\n      arguments:\n        nameRegex: ^my-Product\noutputs:\n  mhubProductId1: ${ids.products[0].id}\n  mhubProductId2: ${nameRegex.products[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProducts.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Product IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Product name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getProducts.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"products":{"items":{"$ref":"#/types/alicloud:mhub/getProductsProduct:getProductsProduct"},"type":"array"}},"required":["ids","names","products","id"],"type":"object"}},"alicloud:mns/getQueues:getQueues":{"description":"This data source provides a list of MNS queues in an Alibaba Cloud account according to the specified parameters.\n\n\u003e **DEPRECATED:**  This datasource has been deprecated from version `1.188.0`. Please use new datasource message_service_queues.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst queues = alicloud.mns.getQueues({\n    namePrefix: \"tf-\",\n});\nexport const firstQueueId = queues.then(queues =\u003e queues.queues?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nqueues = alicloud.mns.get_queues(name_prefix=\"tf-\")\npulumi.export(\"firstQueueId\", queues.queues[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var queues = AliCloud.Mns.GetQueues.Invoke(new()\n    {\n        NamePrefix = \"tf-\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstQueueId\"] = queues.Apply(getQueuesResult =\u003e getQueuesResult.Queues[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tqueues, err := mns.GetQueues(ctx, \u0026mns.GetQueuesArgs{\n\t\t\tNamePrefix: pulumi.StringRef(\"tf-\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstQueueId\", queues.Queues[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mns.MnsFunctions;\nimport com.pulumi.alicloud.mns.inputs.GetQueuesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var queues = MnsFunctions.getQueues(GetQueuesArgs.builder()\n            .namePrefix(\"tf-\")\n            .build());\n\n        ctx.export(\"firstQueueId\", queues.queues()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  queues:\n    fn::invoke:\n      function: alicloud:mns:getQueues\n      arguments:\n        namePrefix: tf-\noutputs:\n  firstQueueId: ${queues.queues[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getQueues.\n","properties":{"namePrefix":{"type":"string","description":"A string to filter resulting queues by their name prefixs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getQueues.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"namePrefix":{"type":"string"},"names":{"description":"A list of queue names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"queues":{"description":"A list of queues. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:mns/getQueuesQueue:getQueuesQueue"},"type":"array"}},"required":["names","queues","id"],"type":"object"}},"alicloud:mns/getService:getService":{"description":"Using this data source can open MNS service automatically. If the service has been opened, it will return opened.\n\nFor information about MNS and how to use it, see [What is MNS](https://www.alibabacloud.com/help/en/product/27412.htm).\n\n\u003e **NOTE:** Deprecated since v1.252.0.\n\n\u003e **DEPRECATED:**  This datasource has been deprecated from version `1.252.0`. Please use new resource alicloud_message_service_service.\n\n\u003e **NOTE:** The MNS service is not support in the international site.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.mns.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.mns.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Mns.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mns.GetService(ctx, \u0026mns.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mns.MnsFunctions;\nimport com.pulumi.alicloud.mns.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = MnsFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:mns:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Default value: `Off`. Valid values: `On` and `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the MNS service that means you have read and agreed the [MNS Terms of Service](https://help.aliyun.com/document_detail/27418.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:mns/getTopicSubscriptions:getTopicSubscriptions":{"description":"This data source provides a list of MNS topic subscriptions in an Alibaba Cloud account according to the specified parameters.\n\n\u003e **DEPRECATED:**  This datasource has been deprecated from version `1.188.0`. Please use new datasource message_service_subscriptions.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst subscriptions = alicloud.mns.getTopicSubscriptions({\n    topicName: \"topic_name\",\n    namePrefix: \"tf-\",\n});\nexport const firstTopicSubscriptionId = subscriptions.then(subscriptions =\u003e subscriptions.subscriptions?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nsubscriptions = alicloud.mns.get_topic_subscriptions(topic_name=\"topic_name\",\n    name_prefix=\"tf-\")\npulumi.export(\"firstTopicSubscriptionId\", subscriptions.subscriptions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var subscriptions = AliCloud.Mns.GetTopicSubscriptions.Invoke(new()\n    {\n        TopicName = \"topic_name\",\n        NamePrefix = \"tf-\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstTopicSubscriptionId\"] = subscriptions.Apply(getTopicSubscriptionsResult =\u003e getTopicSubscriptionsResult.Subscriptions[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsubscriptions, err := mns.GetTopicSubscriptions(ctx, \u0026mns.GetTopicSubscriptionsArgs{\n\t\t\tTopicName:  \"topic_name\",\n\t\t\tNamePrefix: pulumi.StringRef(\"tf-\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstTopicSubscriptionId\", subscriptions.Subscriptions[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mns.MnsFunctions;\nimport com.pulumi.alicloud.mns.inputs.GetTopicSubscriptionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var subscriptions = MnsFunctions.getTopicSubscriptions(GetTopicSubscriptionsArgs.builder()\n            .topicName(\"topic_name\")\n            .namePrefix(\"tf-\")\n            .build());\n\n        ctx.export(\"firstTopicSubscriptionId\", subscriptions.subscriptions()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  subscriptions:\n    fn::invoke:\n      function: alicloud:mns:getTopicSubscriptions\n      arguments:\n        topicName: topic_name\n        namePrefix: tf-\noutputs:\n  firstTopicSubscriptionId: ${subscriptions.subscriptions[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTopicSubscriptions.\n","properties":{"namePrefix":{"type":"string","description":"A string to filter resulting subscriptions of the topic by their name prefixs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"topicName":{"type":"string","description":"Two topics on a single account in the same region cannot have the same name. A topic name must start with an English letter or a digit, and can contain English letters, digits, and hyphens, with the length not exceeding 256 characters.\n"}},"type":"object","required":["topicName"]},"outputs":{"description":"A collection of values returned by getTopicSubscriptions.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"namePrefix":{"type":"string"},"names":{"description":"A list of subscription names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"subscriptions":{"description":"A list of subscriptions. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:mns/getTopicSubscriptionsSubscription:getTopicSubscriptionsSubscription"},"type":"array"},"topicName":{"description":"The topic which The subscription belongs to was named with the name.\n","type":"string"}},"required":["names","subscriptions","topicName","id"],"type":"object"}},"alicloud:mns/getTopics:getTopics":{"description":"This data source provides a list of MNS topics in an Alibaba Cloud account according to the specified parameters.\n\n\u003e **DEPRECATED:**  This datasource has been deprecated from version `1.188.0`. Please use new datasource message_service_topics.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst topics = alicloud.mns.getTopics({\n    namePrefix: \"tf-\",\n});\nexport const firstTopicId = topics.then(topics =\u003e topics.topics?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ntopics = alicloud.mns.get_topics(name_prefix=\"tf-\")\npulumi.export(\"firstTopicId\", topics.topics[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var topics = AliCloud.Mns.GetTopics.Invoke(new()\n    {\n        NamePrefix = \"tf-\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstTopicId\"] = topics.Apply(getTopicsResult =\u003e getTopicsResult.Topics[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttopics, err := mns.GetTopics(ctx, \u0026mns.GetTopicsArgs{\n\t\t\tNamePrefix: pulumi.StringRef(\"tf-\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstTopicId\", topics.Topics[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mns.MnsFunctions;\nimport com.pulumi.alicloud.mns.inputs.GetTopicsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var topics = MnsFunctions.getTopics(GetTopicsArgs.builder()\n            .namePrefix(\"tf-\")\n            .build());\n\n        ctx.export(\"firstTopicId\", topics.topics()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  topics:\n    fn::invoke:\n      function: alicloud:mns:getTopics\n      arguments:\n        namePrefix: tf-\noutputs:\n  firstTopicId: ${topics.topics[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTopics.\n","properties":{"namePrefix":{"type":"string","description":"A string to filter resulting topics by their name prefixs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTopics.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"namePrefix":{"type":"string"},"names":{"description":"A list of topic names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"topics":{"description":"A list of topics. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:mns/getTopicsTopic:getTopicsTopic"},"type":"array"}},"required":["names","topics","id"],"type":"object"}},"alicloud:mongodb/getAccounts:getAccounts":{"description":"This data source provides the Mongodb Accounts of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.148.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.mongodb.getAccounts({\n    instanceId: \"example_value\",\n    accountName: \"root\",\n});\nexport const mongodbAccountId1 = example.then(example =\u003e example.accounts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.mongodb.get_accounts(instance_id=\"example_value\",\n    account_name=\"root\")\npulumi.export(\"mongodbAccountId1\", example.accounts[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.MongoDB.GetAccounts.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n        AccountName = \"root\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mongodbAccountId1\"] = example.Apply(getAccountsResult =\u003e getAccountsResult.Accounts[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mongodb.GetAccounts(ctx, \u0026mongodb.GetAccountsArgs{\n\t\t\tInstanceId:  \"example_value\",\n\t\t\tAccountName: pulumi.StringRef(\"root\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mongodbAccountId1\", example.Accounts[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.MongodbFunctions;\nimport com.pulumi.alicloud.mongodb.inputs.GetAccountsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = MongodbFunctions.getAccounts(GetAccountsArgs.builder()\n            .instanceId(\"example_value\")\n            .accountName(\"root\")\n            .build());\n\n        ctx.export(\"mongodbAccountId1\", example.accounts()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:mongodb:getAccounts\n      arguments:\n        instanceId: example_value\n        accountName: root\noutputs:\n  mongodbAccountId1: ${example.accounts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccounts.\n","properties":{"accountName":{"type":"string","description":"The name of the account. Valid values: \u003cspan pulumi-lang-nodejs=\"`root`\" pulumi-lang-dotnet=\"`Root`\" pulumi-lang-go=\"`root`\" pulumi-lang-python=\"`root`\" pulumi-lang-yaml=\"`root`\" pulumi-lang-java=\"`root`\"\u003e`root`\u003c/span\u003e.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getAccounts.\n","properties":{"accountName":{"type":"string"},"accounts":{"items":{"$ref":"#/types/alicloud:mongodb/getAccountsAccount:getAccountsAccount"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceId":{"type":"string"},"outputFile":{"type":"string"}},"required":["accounts","instanceId","id"],"type":"object"}},"alicloud:mongodb/getAuditPolicies:getAuditPolicies":{"description":"This data source provides the Mongodb Audit Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.148.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.mongodb.getAuditPolicies({\n    dbInstanceId: \"example_value\",\n});\nexport const mongodbAuditPolicyId1 = example.then(example =\u003e example.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.mongodb.get_audit_policies(db_instance_id=\"example_value\")\npulumi.export(\"mongodbAuditPolicyId1\", example.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.MongoDB.GetAuditPolicies.Invoke(new()\n    {\n        DbInstanceId = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mongodbAuditPolicyId1\"] = example.Apply(getAuditPoliciesResult =\u003e getAuditPoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mongodb.GetAuditPolicies(ctx, \u0026mongodb.GetAuditPoliciesArgs{\n\t\t\tDbInstanceId: \"example_value\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mongodbAuditPolicyId1\", example.Policies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.MongodbFunctions;\nimport com.pulumi.alicloud.mongodb.inputs.GetAuditPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = MongodbFunctions.getAuditPolicies(GetAuditPoliciesArgs.builder()\n            .dbInstanceId(\"example_value\")\n            .build());\n\n        ctx.export(\"mongodbAuditPolicyId1\", example.policies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:mongodb:getAuditPolicies\n      arguments:\n        dbInstanceId: example_value\noutputs:\n  mongodbAuditPolicyId1: ${example.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAuditPolicies.\n","properties":{"dbInstanceId":{"type":"string","description":"The id of the db instance.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["dbInstanceId"]},"outputs":{"description":"A collection of values returned by getAuditPolicies.\n","properties":{"dbInstanceId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"policies":{"items":{"$ref":"#/types/alicloud:mongodb/getAuditPoliciesPolicy:getAuditPoliciesPolicy"},"type":"array"}},"required":["dbInstanceId","policies","id"],"type":"object"}},"alicloud:mongodb/getInstances:getInstances":{"description":"This data source provides the MongoDB Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.13.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.mongodb.getZones({});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"default-NODELETING\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultGetSecurityGroups = defaultGetNetworks.then(defaultGetNetworks =\u003e alicloud.ecs.getSecurityGroups({\n    vpcId: defaultGetNetworks.ids?.[0],\n}));\nconst defaultInstance = new alicloud.mongodb.Instance(\"default\", {\n    engineVersion: \"4.4\",\n    dbInstanceClass: \"mdb.shard.2x.xlarge.d\",\n    dbInstanceStorage: 20,\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    name: name,\n    tags: {\n        Created: \"TF\",\n        For: \"Instance\",\n    },\n});\nconst ids = alicloud.mongodb.getInstancesOutput({\n    ids: [defaultInstance.id],\n});\nexport const mongodbInstancesId0 = ids.apply(ids =\u003e ids.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.mongodb.get_zones()\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"default-NODELETING\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_get_security_groups = alicloud.ecs.get_security_groups(vpc_id=default_get_networks.ids[0])\ndefault_instance = alicloud.mongodb.Instance(\"default\",\n    engine_version=\"4.4\",\n    db_instance_class=\"mdb.shard.2x.xlarge.d\",\n    db_instance_storage=20,\n    vswitch_id=default_get_switches.ids[0],\n    name=name,\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Instance\",\n    })\nids = alicloud.mongodb.get_instances_output(ids=[default_instance.id])\npulumi.export(\"mongodbInstancesId0\", ids.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.MongoDB.GetZones.Invoke();\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"default-NODELETING\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultGetSecurityGroups = AliCloud.Ecs.GetSecurityGroups.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n    });\n\n    var defaultInstance = new AliCloud.MongoDB.Instance(\"default\", new()\n    {\n        EngineVersion = \"4.4\",\n        DbInstanceClass = \"mdb.shard.2x.xlarge.d\",\n        DbInstanceStorage = 20,\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        Name = name,\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Instance\" },\n        },\n    });\n\n    var ids = AliCloud.MongoDB.GetInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultInstance.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mongodbInstancesId0\"] = ids.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := mongodb.GetZones(ctx, \u0026mongodb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"default-NODELETING\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.GetSecurityGroups(ctx, \u0026ecs.GetSecurityGroupsArgs{\n\t\t\tVpcId: pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := mongodb.NewInstance(ctx, \"default\", \u0026mongodb.InstanceArgs{\n\t\t\tEngineVersion:     pulumi.String(\"4.4\"),\n\t\t\tDbInstanceClass:   pulumi.String(\"mdb.shard.2x.xlarge.d\"),\n\t\t\tDbInstanceStorage: pulumi.Int(20),\n\t\t\tVswitchId:         pulumi.String(defaultGetSwitches.Ids[0]),\n\t\t\tName:              pulumi.String(name),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"Instance\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := mongodb.GetInstancesOutput(ctx, mongodb.GetInstancesOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultInstance.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"mongodbInstancesId0\", ids.ApplyT(func(ids mongodb.GetInstancesResult) (*string, error) {\n\t\t\treturn \u0026ids.Instances[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.MongodbFunctions;\nimport com.pulumi.alicloud.mongodb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetSecurityGroupsArgs;\nimport com.pulumi.alicloud.mongodb.Instance;\nimport com.pulumi.alicloud.mongodb.InstanceArgs;\nimport com.pulumi.alicloud.mongodb.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = MongodbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"default-NODELETING\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        final var defaultGetSecurityGroups = EcsFunctions.getSecurityGroups(GetSecurityGroupsArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .build());\n\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .engineVersion(\"4.4\")\n            .dbInstanceClass(\"mdb.shard.2x.xlarge.d\")\n            .dbInstanceStorage(20)\n            .vswitchId(defaultGetSwitches.ids()[0])\n            .name(name)\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Instance\")\n            ))\n            .build());\n\n        final var ids = MongodbFunctions.getInstances(GetInstancesArgs.builder()\n            .ids(defaultInstance.id())\n            .build());\n\n        ctx.export(\"mongodbInstancesId0\", ids.applyValue(_ids -\u003e _ids.instances()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultInstance:\n    type: alicloud:mongodb:Instance\n    name: default\n    properties:\n      engineVersion: '4.4'\n      dbInstanceClass: mdb.shard.2x.xlarge.d\n      dbInstanceStorage: 20\n      vswitchId: ${defaultGetSwitches.ids[0]}\n      name: ${name}\n      tags:\n        Created: TF\n        For: Instance\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:mongodb:getZones\n      arguments: {}\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: default-NODELETING\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n  defaultGetSecurityGroups:\n    fn::invoke:\n      function: alicloud:ecs:getSecurityGroups\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n  ids:\n    fn::invoke:\n      function: alicloud:mongodb:getInstances\n      arguments:\n        ids:\n          - ${defaultInstance.id}\noutputs:\n  mongodbInstancesId0: ${ids.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"availabilityZone":{"type":"string","description":"The zone ID.\n"},"enableDetails":{"type":"boolean","description":"Whether to query the detailed list of resource attributes. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Instance IDs.\n"},"instanceClass":{"type":"string","description":"The instance type.\n"},"instanceType":{"type":"string","description":"The instance architecture. Default value: \u003cspan pulumi-lang-nodejs=\"`replicate`\" pulumi-lang-dotnet=\"`Replicate`\" pulumi-lang-go=\"`replicate`\" pulumi-lang-python=\"`replicate`\" pulumi-lang-yaml=\"`replicate`\" pulumi-lang-java=\"`replicate`\"\u003e`replicate`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`replicate`\" pulumi-lang-dotnet=\"`Replicate`\" pulumi-lang-go=\"`replicate`\" pulumi-lang-python=\"`replicate`\" pulumi-lang-yaml=\"`replicate`\" pulumi-lang-java=\"`replicate`\"\u003e`replicate`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sharding`\" pulumi-lang-dotnet=\"`Sharding`\" pulumi-lang-go=\"`sharding`\" pulumi-lang-python=\"`sharding`\" pulumi-lang-yaml=\"`sharding`\" pulumi-lang-java=\"`sharding`\"\u003e`sharding`\u003c/span\u003e.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Instance name.\n"},"outputFile":{"type":"string","description":"The name of file that can save the collection of instances after running `pulumi preview`.\n"},"status":{"type":"string","description":"The instance status.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"availabilityZone":{"description":"The zone ID of the instance.\n","type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceClass":{"description":"The instance type.\n","type":"string"},"instanceType":{"description":"The instance architecture.\n","type":"string"},"instances":{"description":"A list of Instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:mongodb/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"(Available since v1.42.0) A list of Instance names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The instance status.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"(Available since v1.66.0) The details of the resource tags.\n","type":"object"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:mongodb/getServerlessInstances:getServerlessInstances":{"description":"This data source provides the Mongodb Serverless Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.148.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.mongodb.getServerlessInstances({\n    ids: [\"example_value\"],\n    dbInstanceClass: \"example_value\",\n    dbInstanceDescription: \"example_value\",\n    networkType: \"VPC\",\n    resourceGroupId: \"example_value\",\n    status: \"Running\",\n    vpcId: \"example_value\",\n    vswitchId: \"example_value\",\n    zoneId: \"example_value\",\n    tags: {\n        Created: \"MongodbServerlessInstance\",\n        For: \"TF\",\n    },\n});\nexport const mongodbServerlessInstanceId1 = example.then(example =\u003e example.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.mongodb.get_serverless_instances(ids=[\"example_value\"],\n    db_instance_class=\"example_value\",\n    db_instance_description=\"example_value\",\n    network_type=\"VPC\",\n    resource_group_id=\"example_value\",\n    status=\"Running\",\n    vpc_id=\"example_value\",\n    vswitch_id=\"example_value\",\n    zone_id=\"example_value\",\n    tags={\n        \"Created\": \"MongodbServerlessInstance\",\n        \"For\": \"TF\",\n    })\npulumi.export(\"mongodbServerlessInstanceId1\", example.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.MongoDB.GetServerlessInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        DbInstanceClass = \"example_value\",\n        DbInstanceDescription = \"example_value\",\n        NetworkType = \"VPC\",\n        ResourceGroupId = \"example_value\",\n        Status = \"Running\",\n        VpcId = \"example_value\",\n        VswitchId = \"example_value\",\n        ZoneId = \"example_value\",\n        Tags = \n        {\n            { \"Created\", \"MongodbServerlessInstance\" },\n            { \"For\", \"TF\" },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mongodbServerlessInstanceId1\"] = example.Apply(getServerlessInstancesResult =\u003e getServerlessInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mongodb.GetServerlessInstances(ctx, \u0026mongodb.GetServerlessInstancesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tDbInstanceClass:       pulumi.StringRef(\"example_value\"),\n\t\t\tDbInstanceDescription: pulumi.StringRef(\"example_value\"),\n\t\t\tNetworkType:           pulumi.StringRef(\"VPC\"),\n\t\t\tResourceGroupId:       pulumi.StringRef(\"example_value\"),\n\t\t\tStatus:                pulumi.StringRef(\"Running\"),\n\t\t\tVpcId:                 pulumi.StringRef(\"example_value\"),\n\t\t\tVswitchId:             pulumi.StringRef(\"example_value\"),\n\t\t\tZoneId:                pulumi.StringRef(\"example_value\"),\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"Created\": \"MongodbServerlessInstance\",\n\t\t\t\t\"For\":     \"TF\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mongodbServerlessInstanceId1\", example.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.MongodbFunctions;\nimport com.pulumi.alicloud.mongodb.inputs.GetServerlessInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = MongodbFunctions.getServerlessInstances(GetServerlessInstancesArgs.builder()\n            .ids(\"example_value\")\n            .dbInstanceClass(\"example_value\")\n            .dbInstanceDescription(\"example_value\")\n            .networkType(\"VPC\")\n            .resourceGroupId(\"example_value\")\n            .status(\"Running\")\n            .vpcId(\"example_value\")\n            .vswitchId(\"example_value\")\n            .zoneId(\"example_value\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"MongodbServerlessInstance\"),\n                Map.entry(\"For\", \"TF\")\n            ))\n            .build());\n\n        ctx.export(\"mongodbServerlessInstanceId1\", example.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:mongodb:getServerlessInstances\n      arguments:\n        ids:\n          - example_value\n        dbInstanceClass: example_value\n        dbInstanceDescription: example_value\n        networkType: VPC\n        resourceGroupId: example_value\n        status: Running\n        vpcId: example_value\n        vswitchId: example_value\n        zoneId: example_value\n        tags:\n          Created: MongodbServerlessInstance\n          For: TF\noutputs:\n  mongodbServerlessInstanceId1: ${example.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerlessInstances.\n","properties":{"dbInstanceClass":{"type":"string","description":"The db instance class.\n"},"dbInstanceDescription":{"type":"string","description":"The db instance description.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Serverless Instance IDs.\n"},"networkType":{"type":"string","description":"The network type of the instance. Valid values: `Classic` or `VPC`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The instance status. Valid values: `Creating`, `DBInstanceClassChanging`, `DBInstanceNetTypeChanging`, `Deleting`, `EngineVersionUpgrading`, `GuardSwitching`, `HASwitching`, `Importing`, `ImportingFromOthers`, `LinkSwitching`, `MinorVersionUpgrading`, `NodeCreating`, `NodeDeleting`, `Rebooting`, `Restoring`, `Running`, `SSLModifying`, `TDEModifying`, `TempDBInstanceCreating`, `Transing`, `TransingToOthers`, \u003cspan pulumi-lang-nodejs=\"`released`\" pulumi-lang-dotnet=\"`Released`\" pulumi-lang-go=\"`released`\" pulumi-lang-python=\"`released`\" pulumi-lang-yaml=\"`released`\" pulumi-lang-java=\"`released`\"\u003e`released`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"The ID of the VPC network.\n"},"vswitchId":{"type":"string","description":"The id of the vswitch.\n"},"zoneId":{"type":"string","description":"The ID of the zone.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServerlessInstances.\n","properties":{"dbInstanceClass":{"type":"string"},"dbInstanceDescription":{"type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instances":{"items":{"$ref":"#/types/alicloud:mongodb/getServerlessInstancesInstance:getServerlessInstancesInstance"},"type":"array"},"networkType":{"type":"string"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"vpcId":{"type":"string"},"vswitchId":{"type":"string"},"zoneId":{"type":"string"}},"required":["ids","instances","id"],"type":"object"}},"alicloud:mongodb/getShardingNetworkPrivateAddresses:getShardingNetworkPrivateAddresses":{"description":"This data source provides the Mongodb Sharding Network Private Addresses of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.157.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.mongodb.getShardingNetworkPrivateAddresses({\n    dbInstanceId: \"example_value\",\n    nodeId: \"example_value\",\n    role: \"Primary\",\n});\nexport const mongodbShardingNetworkPrivateAddressId1 = example.then(example =\u003e example.addresses?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.mongodb.get_sharding_network_private_addresses(db_instance_id=\"example_value\",\n    node_id=\"example_value\",\n    role=\"Primary\")\npulumi.export(\"mongodbShardingNetworkPrivateAddressId1\", example.addresses[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.MongoDB.GetShardingNetworkPrivateAddresses.Invoke(new()\n    {\n        DbInstanceId = \"example_value\",\n        NodeId = \"example_value\",\n        Role = \"Primary\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mongodbShardingNetworkPrivateAddressId1\"] = example.Apply(getShardingNetworkPrivateAddressesResult =\u003e getShardingNetworkPrivateAddressesResult.Addresses[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mongodb.GetShardingNetworkPrivateAddresses(ctx, \u0026mongodb.GetShardingNetworkPrivateAddressesArgs{\n\t\t\tDbInstanceId: \"example_value\",\n\t\t\tNodeId:       pulumi.StringRef(\"example_value\"),\n\t\t\tRole:         pulumi.StringRef(\"Primary\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mongodbShardingNetworkPrivateAddressId1\", example.Addresses[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.MongodbFunctions;\nimport com.pulumi.alicloud.mongodb.inputs.GetShardingNetworkPrivateAddressesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = MongodbFunctions.getShardingNetworkPrivateAddresses(GetShardingNetworkPrivateAddressesArgs.builder()\n            .dbInstanceId(\"example_value\")\n            .nodeId(\"example_value\")\n            .role(\"Primary\")\n            .build());\n\n        ctx.export(\"mongodbShardingNetworkPrivateAddressId1\", example.addresses()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:mongodb:getShardingNetworkPrivateAddresses\n      arguments:\n        dbInstanceId: example_value\n        nodeId: example_value\n        role: Primary\noutputs:\n  mongodbShardingNetworkPrivateAddressId1: ${example.addresses[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getShardingNetworkPrivateAddresses.\n","properties":{"dbInstanceId":{"type":"string","description":"The db instance id.\n"},"nodeId":{"type":"string","description":"The ID of the \u003cspan pulumi-lang-nodejs=\"`mongos`\" pulumi-lang-dotnet=\"`Mongos`\" pulumi-lang-go=\"`mongos`\" pulumi-lang-python=\"`mongos`\" pulumi-lang-yaml=\"`mongos`\" pulumi-lang-java=\"`mongos`\"\u003e`mongos`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`shard`\" pulumi-lang-dotnet=\"`Shard`\" pulumi-lang-go=\"`shard`\" pulumi-lang-python=\"`shard`\" pulumi-lang-yaml=\"`shard`\" pulumi-lang-java=\"`shard`\"\u003e`shard`\u003c/span\u003e, or `Configserver` node in the sharded cluster instance.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"role":{"type":"string","description":"The role of the node. Valid values: `Primary` or `Secondary`.\n"}},"type":"object","required":["dbInstanceId"]},"outputs":{"description":"A collection of values returned by getShardingNetworkPrivateAddresses.\n","properties":{"addresses":{"items":{"$ref":"#/types/alicloud:mongodb/getShardingNetworkPrivateAddressesAddress:getShardingNetworkPrivateAddressesAddress"},"type":"array"},"dbInstanceId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"nodeId":{"type":"string"},"outputFile":{"type":"string"},"role":{"type":"string"}},"required":["addresses","dbInstanceId","id"],"type":"object"}},"alicloud:mongodb/getShardingNetworkPublicAddresses:getShardingNetworkPublicAddresses":{"description":"This data source provides the Mongodb Sharding Network Public Addresses of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.149.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.mongodb.getShardingNetworkPublicAddresses({\n    dbInstanceId: \"example_value\",\n    nodeId: \"example_value\",\n    role: \"Primary\",\n});\nexport const mongodbShardingNetworkPublicAddressDbInstanceId1 = example.then(example =\u003e example.addresses?.[0]?.dbInstanceId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.mongodb.get_sharding_network_public_addresses(db_instance_id=\"example_value\",\n    node_id=\"example_value\",\n    role=\"Primary\")\npulumi.export(\"mongodbShardingNetworkPublicAddressDbInstanceId1\", example.addresses[0].db_instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.MongoDB.GetShardingNetworkPublicAddresses.Invoke(new()\n    {\n        DbInstanceId = \"example_value\",\n        NodeId = \"example_value\",\n        Role = \"Primary\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mongodbShardingNetworkPublicAddressDbInstanceId1\"] = example.Apply(getShardingNetworkPublicAddressesResult =\u003e getShardingNetworkPublicAddressesResult.Addresses[0]?.DbInstanceId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mongodb.GetShardingNetworkPublicAddresses(ctx, \u0026mongodb.GetShardingNetworkPublicAddressesArgs{\n\t\t\tDbInstanceId: \"example_value\",\n\t\t\tNodeId:       pulumi.StringRef(\"example_value\"),\n\t\t\tRole:         pulumi.StringRef(\"Primary\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mongodbShardingNetworkPublicAddressDbInstanceId1\", example.Addresses[0].DbInstanceId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.MongodbFunctions;\nimport com.pulumi.alicloud.mongodb.inputs.GetShardingNetworkPublicAddressesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = MongodbFunctions.getShardingNetworkPublicAddresses(GetShardingNetworkPublicAddressesArgs.builder()\n            .dbInstanceId(\"example_value\")\n            .nodeId(\"example_value\")\n            .role(\"Primary\")\n            .build());\n\n        ctx.export(\"mongodbShardingNetworkPublicAddressDbInstanceId1\", example.addresses()[0].dbInstanceId());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:mongodb:getShardingNetworkPublicAddresses\n      arguments:\n        dbInstanceId: example_value\n        nodeId: example_value\n        role: Primary\noutputs:\n  mongodbShardingNetworkPublicAddressDbInstanceId1: ${example.addresses[0].dbInstanceId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getShardingNetworkPublicAddresses.\n","properties":{"dbInstanceId":{"type":"string","description":"The db instance id.\n"},"nodeId":{"type":"string","description":"The ID of the \u003cspan pulumi-lang-nodejs=\"`mongos`\" pulumi-lang-dotnet=\"`Mongos`\" pulumi-lang-go=\"`mongos`\" pulumi-lang-python=\"`mongos`\" pulumi-lang-yaml=\"`mongos`\" pulumi-lang-java=\"`mongos`\"\u003e`mongos`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`shard`\" pulumi-lang-dotnet=\"`Shard`\" pulumi-lang-go=\"`shard`\" pulumi-lang-python=\"`shard`\" pulumi-lang-yaml=\"`shard`\" pulumi-lang-java=\"`shard`\"\u003e`shard`\u003c/span\u003e, or `Configserver` node in the sharded cluster instance.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"role":{"type":"string","description":"The role of the node. Valid values: `Primary` or `Secondary`.\n"}},"type":"object","required":["dbInstanceId"]},"outputs":{"description":"A collection of values returned by getShardingNetworkPublicAddresses.\n","properties":{"addresses":{"items":{"$ref":"#/types/alicloud:mongodb/getShardingNetworkPublicAddressesAddress:getShardingNetworkPublicAddressesAddress"},"type":"array"},"dbInstanceId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"nodeId":{"type":"string"},"outputFile":{"type":"string"},"role":{"type":"string"}},"required":["addresses","dbInstanceId","id"],"type":"object"}},"alicloud:mongodb/getZones:getZones":{"description":"This data source provides availability zones for mongoDB that can be accessed by an Alibaba Cloud account within the region configured in the provider.\n\n\u003e **NOTE:** Available in v1.73.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst zonesIds = alicloud.mongodb.getZones({});\n// Create an mongoDB instance with the first matched zone\nconst mongodb = new alicloud.mongodb.Instance(\"mongodb\", {zoneId: zonesIds.then(zonesIds =\u003e zonesIds.zones?.[0]?.id)});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nzones_ids = alicloud.mongodb.get_zones()\n# Create an mongoDB instance with the first matched zone\nmongodb = alicloud.mongodb.Instance(\"mongodb\", zone_id=zones_ids.zones[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var zonesIds = AliCloud.MongoDB.GetZones.Invoke();\n\n    // Create an mongoDB instance with the first matched zone\n    var mongodb = new AliCloud.MongoDB.Instance(\"mongodb\", new()\n    {\n        ZoneId = zonesIds.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mongodb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tzonesIds, err := mongodb.GetZones(ctx, \u0026mongodb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create an mongoDB instance with the first matched zone\n\t\t_, err = mongodb.NewInstance(ctx, \"mongodb\", \u0026mongodb.InstanceArgs{\n\t\t\tZoneId: pulumi.String(zonesIds.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mongodb.MongodbFunctions;\nimport com.pulumi.alicloud.mongodb.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.mongodb.Instance;\nimport com.pulumi.alicloud.mongodb.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var zonesIds = MongodbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        // Create an mongoDB instance with the first matched zone\n        var mongodb = new Instance(\"mongodb\", InstanceArgs.builder()\n            .zoneId(zonesIds.zones()[0].id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create an mongoDB instance with the first matched zone\n  mongodb:\n    type: alicloud:mongodb:Instance\n    properties:\n      zoneId: ${zonesIds.zones[0].id}\nvariables:\n  # Declare the data source\n  zonesIds:\n    fn::invoke:\n      function: alicloud:mongodb:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"multi":{"type":"boolean","description":"Indicate whether the zones can be used in a multi AZ configuration. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Multi AZ is usually used to launch MongoDB instances.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of zone IDs.\n","items":{"type":"string"},"type":"array"},"multi":{"type":"boolean"},"outputFile":{"type":"string"},"zones":{"description":"A list of availability zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:mongodb/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:mse/getClusters:getClusters":{"description":"This data source provides a list of MSE Clusters in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available since v1.94.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Create resource\nconst example = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleCluster = new alicloud.mse.Cluster(\"example\", {\n    clusterSpecification: \"MSE_SC_1_2_60_c\",\n    clusterType: \"Nacos-Ans\",\n    clusterVersion: \"NACOS_2_0_0\",\n    instanceCount: 3,\n    netType: \"privatenet\",\n    pubNetworkFlow: \"1\",\n    connectionType: \"slb\",\n    clusterAliasName: \"terraform-example\",\n    mseVersion: \"mse_pro\",\n    vswitchId: exampleSwitch.id,\n    vpcId: exampleNetwork.id,\n});\n// Declare the data source\nconst exampleGetClusters = pulumi.all([exampleCluster.id, exampleCluster.clusterAliasName]).apply(([id, clusterAliasName]) =\u003e alicloud.mse.getClustersOutput({\n    enableDetails: true,\n    ids: [id],\n    status: \"INIT_SUCCESS\",\n    nameRegex: clusterAliasName,\n}));\nexport const instanceId = exampleGetClusters.apply(exampleGetClusters =\u003e exampleGetClusters.clusters?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Create resource\nexample = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_cluster = alicloud.mse.Cluster(\"example\",\n    cluster_specification=\"MSE_SC_1_2_60_c\",\n    cluster_type=\"Nacos-Ans\",\n    cluster_version=\"NACOS_2_0_0\",\n    instance_count=3,\n    net_type=\"privatenet\",\n    pub_network_flow=\"1\",\n    connection_type=\"slb\",\n    cluster_alias_name=\"terraform-example\",\n    mse_version=\"mse_pro\",\n    vswitch_id=example_switch.id,\n    vpc_id=example_network.id)\n# Declare the data source\nexample_get_clusters = pulumi.Output.all(\n    id=example_cluster.id,\n    cluster_alias_name=example_cluster.cluster_alias_name\n).apply(lambda resolved_outputs: alicloud.mse.get_clusters_output(enable_details=True,\n    ids=[resolved_outputs['id']],\n    status=\"INIT_SUCCESS\",\n    name_regex=resolved_outputs['cluster_alias_name']))\n\npulumi.export(\"instanceId\", example_get_clusters.clusters[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create resource\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleCluster = new AliCloud.Mse.Cluster(\"example\", new()\n    {\n        ClusterSpecification = \"MSE_SC_1_2_60_c\",\n        ClusterType = \"Nacos-Ans\",\n        ClusterVersion = \"NACOS_2_0_0\",\n        InstanceCount = 3,\n        NetType = \"privatenet\",\n        PubNetworkFlow = \"1\",\n        ConnectionType = \"slb\",\n        ClusterAliasName = \"terraform-example\",\n        MseVersion = \"mse_pro\",\n        VswitchId = exampleSwitch.Id,\n        VpcId = exampleNetwork.Id,\n    });\n\n    // Declare the data source\n    var exampleGetClusters = AliCloud.Mse.GetClusters.Invoke(new()\n    {\n        EnableDetails = true,\n        Ids = new[]\n        {\n            exampleCluster.Id,\n        },\n        Status = \"INIT_SUCCESS\",\n        NameRegex = exampleCluster.ClusterAliasName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"instanceId\"] = exampleGetClusters.Apply(getClustersResult =\u003e getClustersResult.Clusters[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mse\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create resource\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := mse.NewCluster(ctx, \"example\", \u0026mse.ClusterArgs{\n\t\t\tClusterSpecification: pulumi.String(\"MSE_SC_1_2_60_c\"),\n\t\t\tClusterType:          pulumi.String(\"Nacos-Ans\"),\n\t\t\tClusterVersion:       pulumi.String(\"NACOS_2_0_0\"),\n\t\t\tInstanceCount:        pulumi.Int(3),\n\t\t\tNetType:              pulumi.String(\"privatenet\"),\n\t\t\tPubNetworkFlow:       pulumi.String(\"1\"),\n\t\t\tConnectionType:       pulumi.String(\"slb\"),\n\t\t\tClusterAliasName:     pulumi.String(\"terraform-example\"),\n\t\t\tMseVersion:           pulumi.String(\"mse_pro\"),\n\t\t\tVswitchId:            exampleSwitch.ID(),\n\t\t\tVpcId:                exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Declare the data source\n\t\texampleGetClusters := pulumi.All(exampleCluster.ID(), exampleCluster.ClusterAliasName).ApplyT(func(_args []interface{}) (mse.GetClustersResult, error) {\n\t\t\tid := _args[0].(string)\n\t\t\tclusterAliasName := _args[1].(string)\n\t\t\treturn mse.GetClustersResult(interface{}(mse.GetClusters(ctx, \u0026mse.GetClustersArgs{\n\t\t\t\tEnableDetails: pulumi.BoolRef(pulumi.BoolRef(true)),\n\t\t\t\tIds: []string{\n\t\t\t\t\tid,\n\t\t\t\t},\n\t\t\t\tStatus:    pulumi.StringRef(pulumi.StringRef(\"INIT_SUCCESS\")),\n\t\t\t\tNameRegex: pulumi.StringRef(pulumi.StringRef(clusterAliasName)),\n\t\t\t}, nil))), nil\n\t\t}).(mse.GetClustersResultOutput)\n\t\tctx.Export(\"instanceId\", exampleGetClusters.ApplyT(func(exampleGetClusters mse.GetClustersResult) (*string, error) {\n\t\t\treturn \u0026exampleGetClusters.Clusters[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mse.Cluster;\nimport com.pulumi.alicloud.mse.ClusterArgs;\nimport com.pulumi.alicloud.mse.MseFunctions;\nimport com.pulumi.alicloud.mse.inputs.GetClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create resource\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n            .clusterSpecification(\"MSE_SC_1_2_60_c\")\n            .clusterType(\"Nacos-Ans\")\n            .clusterVersion(\"NACOS_2_0_0\")\n            .instanceCount(3)\n            .netType(\"privatenet\")\n            .pubNetworkFlow(\"1\")\n            .connectionType(\"slb\")\n            .clusterAliasName(\"terraform-example\")\n            .mseVersion(\"mse_pro\")\n            .vswitchId(exampleSwitch.id())\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        // Declare the data source\n        final var exampleGetClusters = Output.tuple(exampleCluster.id(), exampleCluster.clusterAliasName()).applyValue(values -\u003e {\n            var id = values.t1;\n            var clusterAliasName = values.t2;\n            return MseFunctions.getClusters(GetClustersArgs.builder()\n                .enableDetails(true)\n                .ids(id)\n                .status(\"INIT_SUCCESS\")\n                .nameRegex(clusterAliasName)\n                .build());\n        });\n\n        ctx.export(\"instanceId\", exampleGetClusters.applyValue(_exampleGetClusters -\u003e _exampleGetClusters.clusters()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleCluster:\n    type: alicloud:mse:Cluster\n    name: example\n    properties:\n      clusterSpecification: MSE_SC_1_2_60_c\n      clusterType: Nacos-Ans\n      clusterVersion: NACOS_2_0_0\n      instanceCount: 3\n      netType: privatenet\n      pubNetworkFlow: '1'\n      connectionType: slb\n      clusterAliasName: terraform-example\n      mseVersion: mse_pro\n      vswitchId: ${exampleSwitch.id}\n      vpcId: ${exampleNetwork.id}\nvariables:\n  # Create resource\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  # Declare the data source\n  exampleGetClusters:\n    fn::invoke:\n      function: alicloud:mse:getClusters\n      arguments:\n        enableDetails: 'true'\n        ids:\n          - ${exampleCluster.id}\n        status: INIT_SUCCESS\n        nameRegex: ${exampleCluster.clusterAliasName}\noutputs:\n  instanceId: ${exampleGetClusters.clusters[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getClusters.\n","properties":{"clusterAliasName":{"type":"string","description":"The alias name of MSE Cluster.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of MSE Cluster ids. It is formatted to `\u003cinstance_id\u003e`\n"},"nameRegex":{"type":"string","description":"A regex string to filter the results by the cluster alias name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"requestPars":{"type":"string","description":"The extended request parameters. The JSON format is supported.\n"},"status":{"type":"string","description":"The status of MSE Cluster. Valid: `DESTROY_FAILED`, `DESTROY_ING`, `DESTROY_SUCCESS`, `INIT_FAILED`, `INIT_ING`, `INIT_SUCCESS`, `INIT_TIME_OUT`, `RESTART_FAILED`, `RESTART_ING`, `RESTART_SUCCESS`, `SCALE_FAILED`, `SCALE_ING`, `SCALE_SUCCESS`\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getClusters.\n","properties":{"clusterAliasName":{"type":"string"},"clusters":{"description":"A list of MSE Clusters. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:mse/getClustersCluster:getClustersCluster"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of MSE Cluster ids.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of MSE Cluster names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"requestPars":{"type":"string"},"status":{"description":"The status of MSE Cluster.\n","type":"string"}},"required":["clusters","ids","names","id"],"type":"object"}},"alicloud:mse/getEngineNamespaces:getEngineNamespaces":{"description":"This data source provides the Mse Engine Namespaces of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.166.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleCluster = new alicloud.mse.Cluster(\"example\", {\n    clusterSpecification: \"MSE_SC_1_2_60_c\",\n    clusterType: \"Nacos-Ans\",\n    clusterVersion: \"NACOS_2_0_0\",\n    instanceCount: 3,\n    netType: \"privatenet\",\n    pubNetworkFlow: \"1\",\n    connectionType: \"slb\",\n    clusterAliasName: \"terraform-example\",\n    mseVersion: \"mse_pro\",\n    vswitchId: exampleSwitch.id,\n    vpcId: exampleNetwork.id,\n});\nconst exampleEngineNamespace = new alicloud.mse.EngineNamespace(\"example\", {\n    instanceId: exampleCluster.id,\n    namespaceShowName: \"terraform-example\",\n    namespaceId: \"terraform-example\",\n    namespaceDesc: \"description\",\n});\n// Declare the data source\nconst exampleGetEngineNamespaces = alicloud.mse.getEngineNamespacesOutput({\n    instanceId: exampleEngineNamespace.instanceId,\n});\nexport const mseEngineNamespaceIdPublic = exampleGetEngineNamespaces.apply(exampleGetEngineNamespaces =\u003e exampleGetEngineNamespaces.namespaces?.[0]?.id);\nexport const mseEngineNamespaceIdExample = exampleGetEngineNamespaces.apply(exampleGetEngineNamespaces =\u003e exampleGetEngineNamespaces.namespaces?.[1]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_cluster = alicloud.mse.Cluster(\"example\",\n    cluster_specification=\"MSE_SC_1_2_60_c\",\n    cluster_type=\"Nacos-Ans\",\n    cluster_version=\"NACOS_2_0_0\",\n    instance_count=3,\n    net_type=\"privatenet\",\n    pub_network_flow=\"1\",\n    connection_type=\"slb\",\n    cluster_alias_name=\"terraform-example\",\n    mse_version=\"mse_pro\",\n    vswitch_id=example_switch.id,\n    vpc_id=example_network.id)\nexample_engine_namespace = alicloud.mse.EngineNamespace(\"example\",\n    instance_id=example_cluster.id,\n    namespace_show_name=\"terraform-example\",\n    namespace_id=\"terraform-example\",\n    namespace_desc=\"description\")\n# Declare the data source\nexample_get_engine_namespaces = alicloud.mse.get_engine_namespaces_output(instance_id=example_engine_namespace.instance_id)\npulumi.export(\"mseEngineNamespaceIdPublic\", example_get_engine_namespaces.namespaces[0].id)\npulumi.export(\"mseEngineNamespaceIdExample\", example_get_engine_namespaces.namespaces[1].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleCluster = new AliCloud.Mse.Cluster(\"example\", new()\n    {\n        ClusterSpecification = \"MSE_SC_1_2_60_c\",\n        ClusterType = \"Nacos-Ans\",\n        ClusterVersion = \"NACOS_2_0_0\",\n        InstanceCount = 3,\n        NetType = \"privatenet\",\n        PubNetworkFlow = \"1\",\n        ConnectionType = \"slb\",\n        ClusterAliasName = \"terraform-example\",\n        MseVersion = \"mse_pro\",\n        VswitchId = exampleSwitch.Id,\n        VpcId = exampleNetwork.Id,\n    });\n\n    var exampleEngineNamespace = new AliCloud.Mse.EngineNamespace(\"example\", new()\n    {\n        InstanceId = exampleCluster.Id,\n        NamespaceShowName = \"terraform-example\",\n        NamespaceId = \"terraform-example\",\n        NamespaceDesc = \"description\",\n    });\n\n    // Declare the data source\n    var exampleGetEngineNamespaces = AliCloud.Mse.GetEngineNamespaces.Invoke(new()\n    {\n        InstanceId = exampleEngineNamespace.InstanceId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mseEngineNamespaceIdPublic\"] = exampleGetEngineNamespaces.Apply(getEngineNamespacesResult =\u003e getEngineNamespacesResult.Namespaces[0]?.Id),\n        [\"mseEngineNamespaceIdExample\"] = exampleGetEngineNamespaces.Apply(getEngineNamespacesResult =\u003e getEngineNamespacesResult.Namespaces[1]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mse\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := mse.NewCluster(ctx, \"example\", \u0026mse.ClusterArgs{\n\t\t\tClusterSpecification: pulumi.String(\"MSE_SC_1_2_60_c\"),\n\t\t\tClusterType:          pulumi.String(\"Nacos-Ans\"),\n\t\t\tClusterVersion:       pulumi.String(\"NACOS_2_0_0\"),\n\t\t\tInstanceCount:        pulumi.Int(3),\n\t\t\tNetType:              pulumi.String(\"privatenet\"),\n\t\t\tPubNetworkFlow:       pulumi.String(\"1\"),\n\t\t\tConnectionType:       pulumi.String(\"slb\"),\n\t\t\tClusterAliasName:     pulumi.String(\"terraform-example\"),\n\t\t\tMseVersion:           pulumi.String(\"mse_pro\"),\n\t\t\tVswitchId:            exampleSwitch.ID(),\n\t\t\tVpcId:                exampleNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEngineNamespace, err := mse.NewEngineNamespace(ctx, \"example\", \u0026mse.EngineNamespaceArgs{\n\t\t\tInstanceId:        exampleCluster.ID(),\n\t\t\tNamespaceShowName: pulumi.String(\"terraform-example\"),\n\t\t\tNamespaceId:       pulumi.String(\"terraform-example\"),\n\t\t\tNamespaceDesc:     pulumi.String(\"description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Declare the data source\n\t\texampleGetEngineNamespaces := mse.GetEngineNamespacesOutput(ctx, mse.GetEngineNamespacesOutputArgs{\n\t\t\tInstanceId: exampleEngineNamespace.InstanceId,\n\t\t}, nil)\n\t\tctx.Export(\"mseEngineNamespaceIdPublic\", exampleGetEngineNamespaces.ApplyT(func(exampleGetEngineNamespaces mse.GetEngineNamespacesResult) (*string, error) {\n\t\t\treturn \u0026exampleGetEngineNamespaces.Namespaces[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tctx.Export(\"mseEngineNamespaceIdExample\", exampleGetEngineNamespaces.ApplyT(func(exampleGetEngineNamespaces mse.GetEngineNamespacesResult) (*string, error) {\n\t\t\treturn \u0026exampleGetEngineNamespaces.Namespaces[1].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mse.Cluster;\nimport com.pulumi.alicloud.mse.ClusterArgs;\nimport com.pulumi.alicloud.mse.EngineNamespace;\nimport com.pulumi.alicloud.mse.EngineNamespaceArgs;\nimport com.pulumi.alicloud.mse.MseFunctions;\nimport com.pulumi.alicloud.mse.inputs.GetEngineNamespacesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n            .clusterSpecification(\"MSE_SC_1_2_60_c\")\n            .clusterType(\"Nacos-Ans\")\n            .clusterVersion(\"NACOS_2_0_0\")\n            .instanceCount(3)\n            .netType(\"privatenet\")\n            .pubNetworkFlow(\"1\")\n            .connectionType(\"slb\")\n            .clusterAliasName(\"terraform-example\")\n            .mseVersion(\"mse_pro\")\n            .vswitchId(exampleSwitch.id())\n            .vpcId(exampleNetwork.id())\n            .build());\n\n        var exampleEngineNamespace = new EngineNamespace(\"exampleEngineNamespace\", EngineNamespaceArgs.builder()\n            .instanceId(exampleCluster.id())\n            .namespaceShowName(\"terraform-example\")\n            .namespaceId(\"terraform-example\")\n            .namespaceDesc(\"description\")\n            .build());\n\n        // Declare the data source\n        final var exampleGetEngineNamespaces = MseFunctions.getEngineNamespaces(GetEngineNamespacesArgs.builder()\n            .instanceId(exampleEngineNamespace.instanceId())\n            .build());\n\n        ctx.export(\"mseEngineNamespaceIdPublic\", exampleGetEngineNamespaces.applyValue(_exampleGetEngineNamespaces -\u003e _exampleGetEngineNamespaces.namespaces()[0].id()));\n        ctx.export(\"mseEngineNamespaceIdExample\", exampleGetEngineNamespaces.applyValue(_exampleGetEngineNamespaces -\u003e _exampleGetEngineNamespaces.namespaces()[1].id()));\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleCluster:\n    type: alicloud:mse:Cluster\n    name: example\n    properties:\n      clusterSpecification: MSE_SC_1_2_60_c\n      clusterType: Nacos-Ans\n      clusterVersion: NACOS_2_0_0\n      instanceCount: 3\n      netType: privatenet\n      pubNetworkFlow: '1'\n      connectionType: slb\n      clusterAliasName: terraform-example\n      mseVersion: mse_pro\n      vswitchId: ${exampleSwitch.id}\n      vpcId: ${exampleNetwork.id}\n  exampleEngineNamespace:\n    type: alicloud:mse:EngineNamespace\n    name: example\n    properties:\n      instanceId: ${exampleCluster.id}\n      namespaceShowName: terraform-example\n      namespaceId: terraform-example\n      namespaceDesc: description\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  # Declare the data source\n  exampleGetEngineNamespaces:\n    fn::invoke:\n      function: alicloud:mse:getEngineNamespaces\n      arguments:\n        instanceId: ${exampleEngineNamespace.instanceId}\noutputs:\n  mseEngineNamespaceIdPublic: ${exampleGetEngineNamespaces.namespaces[0].id}\n  mseEngineNamespaceIdExample: ${exampleGetEngineNamespaces.namespaces[1].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEngineNamespaces.\n","properties":{"acceptLanguage":{"type":"string","description":"The language type of the returned information. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"clusterId":{"type":"string","description":"The ID of the cluster.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Engine Namespace IDs. It is formatted to `\u003cinstance_id\u003e:\u003cnamespace_id\u003e`.\n"},"instanceId":{"type":"string","description":"The ID of the MSE Cluster Instance.It is formatted to `mse-cn-xxxxxxxxxxx`.Available since v1.232.0\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n\n**NOTE:** You must set \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e or both.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEngineNamespaces.\n","properties":{"acceptLanguage":{"type":"string"},"clusterId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"namespaces":{"description":"A list of Mse Engine Namespaces. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:mse/getEngineNamespacesNamespace:getEngineNamespacesNamespace"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","namespaces","id"],"type":"object"}},"alicloud:mse/getGateways:getGateways":{"description":"This data source provides the Mse Gateways of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.157.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.mse.getGateways({\n    ids: [\"example_id\"],\n});\nexport const mseGatewayId1 = ids.then(ids =\u003e ids.gateways?.[0]?.id);\nconst nameRegex = alicloud.mse.getGateways({\n    nameRegex: \"^my-Gateway\",\n});\nexport const mseGatewayId2 = nameRegex.then(nameRegex =\u003e nameRegex.gateways?.[0]?.id);\nconst status = alicloud.mse.getGateways({\n    status: \"2\",\n});\nexport const mseGatewayId3 = status.then(status =\u003e status.gateways?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.mse.get_gateways(ids=[\"example_id\"])\npulumi.export(\"mseGatewayId1\", ids.gateways[0].id)\nname_regex = alicloud.mse.get_gateways(name_regex=\"^my-Gateway\")\npulumi.export(\"mseGatewayId2\", name_regex.gateways[0].id)\nstatus = alicloud.mse.get_gateways(status=\"2\")\npulumi.export(\"mseGatewayId3\", status.gateways[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Mse.GetGateways.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Mse.GetGateways.Invoke(new()\n    {\n        NameRegex = \"^my-Gateway\",\n    });\n\n    var status = AliCloud.Mse.GetGateways.Invoke(new()\n    {\n        Status = \"2\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mseGatewayId1\"] = ids.Apply(getGatewaysResult =\u003e getGatewaysResult.Gateways[0]?.Id),\n        [\"mseGatewayId2\"] = nameRegex.Apply(getGatewaysResult =\u003e getGatewaysResult.Gateways[0]?.Id),\n        [\"mseGatewayId3\"] = status.Apply(getGatewaysResult =\u003e getGatewaysResult.Gateways[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mse\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := mse.GetGateways(ctx, \u0026mse.GetGatewaysArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mseGatewayId1\", ids.Gateways[0].Id)\n\t\tnameRegex, err := mse.GetGateways(ctx, \u0026mse.GetGatewaysArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Gateway\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mseGatewayId2\", nameRegex.Gateways[0].Id)\n\t\tstatus, err := mse.GetGateways(ctx, \u0026mse.GetGatewaysArgs{\n\t\t\tStatus: pulumi.StringRef(\"2\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mseGatewayId3\", status.Gateways[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mse.MseFunctions;\nimport com.pulumi.alicloud.mse.inputs.GetGatewaysArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = MseFunctions.getGateways(GetGatewaysArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"mseGatewayId1\", ids.gateways()[0].id());\n        final var nameRegex = MseFunctions.getGateways(GetGatewaysArgs.builder()\n            .nameRegex(\"^my-Gateway\")\n            .build());\n\n        ctx.export(\"mseGatewayId2\", nameRegex.gateways()[0].id());\n        final var status = MseFunctions.getGateways(GetGatewaysArgs.builder()\n            .status(\"2\")\n            .build());\n\n        ctx.export(\"mseGatewayId3\", status.gateways()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:mse:getGateways\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:mse:getGateways\n      arguments:\n        nameRegex: ^my-Gateway\n  status:\n    fn::invoke:\n      function: alicloud:mse:getGateways\n      arguments:\n        status: '2'\noutputs:\n  mseGatewayId1: ${ids.gateways[0].id}\n  mseGatewayId2: ${nameRegex.gateways[0].id}\n  mseGatewayId3: ${status.gateways[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGateways.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"gatewayName":{"type":"string","description":"The name of the Gateway.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Gateway IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Gateway name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the gateway. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`9`\" pulumi-lang-dotnet=\"`9`\" pulumi-lang-go=\"`9`\" pulumi-lang-python=\"`9`\" pulumi-lang-yaml=\"`9`\" pulumi-lang-java=\"`9`\"\u003e`9`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`10`\" pulumi-lang-dotnet=\"`10`\" pulumi-lang-go=\"`10`\" pulumi-lang-python=\"`10`\" pulumi-lang-yaml=\"`10`\" pulumi-lang-java=\"`10`\"\u003e`10`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`11`\" pulumi-lang-dotnet=\"`11`\" pulumi-lang-go=\"`11`\" pulumi-lang-python=\"`11`\" pulumi-lang-yaml=\"`11`\" pulumi-lang-java=\"`11`\"\u003e`11`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`13`\" pulumi-lang-dotnet=\"`13`\" pulumi-lang-go=\"`13`\" pulumi-lang-python=\"`13`\" pulumi-lang-yaml=\"`13`\" pulumi-lang-java=\"`13`\"\u003e`13`\u003c/span\u003e.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGateways.\n","properties":{"enableDetails":{"type":"boolean"},"gatewayName":{"type":"string"},"gateways":{"items":{"$ref":"#/types/alicloud:mse/getGatewaysGateway:getGatewaysGateway"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"},"vpcId":{"type":"string"}},"required":["gateways","ids","names","id"],"type":"object"}},"alicloud:mse/getNacosConfigs:getNacosConfigs":{"description":"This data source provides the Mse Nacos Configs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.233.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst exampleNetwork = new alicloud.vpc.Network(\"example\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n});\nconst exampleSwitch = new alicloud.vpc.Switch(\"example\", {\n    vswitchName: \"terraform-example\",\n    cidrBlock: \"172.17.3.0/24\",\n    vpcId: exampleNetwork.id,\n    zoneId: example.then(example =\u003e example.zones?.[0]?.id),\n});\nconst exampleCluster = new alicloud.mse.Cluster(\"example\", {\n    connectionType: \"slb\",\n    netType: \"privatenet\",\n    vswitchId: exampleSwitch.id,\n    clusterSpecification: \"MSE_SC_1_2_60_c\",\n    clusterVersion: \"NACOS_2_0_0\",\n    instanceCount: 3,\n    pubNetworkFlow: \"1\",\n    clusterAliasName: \"example\",\n    mseVersion: \"mse_pro\",\n    clusterType: \"Nacos-Ans\",\n});\nconst exampleEngineNamespace = new alicloud.mse.EngineNamespace(\"example\", {\n    instanceId: exampleCluster.id,\n    namespaceShowName: \"example\",\n    namespaceId: \"example\",\n});\nconst exampleNacosConfig = new alicloud.mse.NacosConfig(\"example\", {\n    instanceId: exampleCluster.id,\n    dataId: \"example\",\n    group: \"example\",\n    namespaceId: exampleEngineNamespace.namespaceId,\n    content: \"example\",\n    type: \"text\",\n    tags: \"example\",\n    appName: \"example\",\n    desc: \"example\",\n});\nconst exampleGetNacosConfigs = pulumi.all([exampleCluster.id, exampleEngineNamespace.namespaceId]).apply(([id, namespaceId]) =\u003e alicloud.mse.getNacosConfigsOutput({\n    instanceId: id,\n    enableDetails: true,\n    namespaceId: namespaceId,\n}));\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nexample_network = alicloud.vpc.Network(\"example\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\")\nexample_switch = alicloud.vpc.Switch(\"example\",\n    vswitch_name=\"terraform-example\",\n    cidr_block=\"172.17.3.0/24\",\n    vpc_id=example_network.id,\n    zone_id=example.zones[0].id)\nexample_cluster = alicloud.mse.Cluster(\"example\",\n    connection_type=\"slb\",\n    net_type=\"privatenet\",\n    vswitch_id=example_switch.id,\n    cluster_specification=\"MSE_SC_1_2_60_c\",\n    cluster_version=\"NACOS_2_0_0\",\n    instance_count=3,\n    pub_network_flow=\"1\",\n    cluster_alias_name=\"example\",\n    mse_version=\"mse_pro\",\n    cluster_type=\"Nacos-Ans\")\nexample_engine_namespace = alicloud.mse.EngineNamespace(\"example\",\n    instance_id=example_cluster.id,\n    namespace_show_name=\"example\",\n    namespace_id=\"example\")\nexample_nacos_config = alicloud.mse.NacosConfig(\"example\",\n    instance_id=example_cluster.id,\n    data_id=\"example\",\n    group=\"example\",\n    namespace_id=example_engine_namespace.namespace_id,\n    content=\"example\",\n    type=\"text\",\n    tags=\"example\",\n    app_name=\"example\",\n    desc=\"example\")\nexample_get_nacos_configs = pulumi.Output.all(\n    id=example_cluster.id,\n    namespace_id=example_engine_namespace.namespace_id\n).apply(lambda resolved_outputs: alicloud.mse.get_nacos_configs_output(instance_id=resolved_outputs['id'],\n    enable_details=True,\n    namespace_id=resolved_outputs['namespace_id']))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var exampleNetwork = new AliCloud.Vpc.Network(\"example\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n    });\n\n    var exampleSwitch = new AliCloud.Vpc.Switch(\"example\", new()\n    {\n        VswitchName = \"terraform-example\",\n        CidrBlock = \"172.17.3.0/24\",\n        VpcId = exampleNetwork.Id,\n        ZoneId = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var exampleCluster = new AliCloud.Mse.Cluster(\"example\", new()\n    {\n        ConnectionType = \"slb\",\n        NetType = \"privatenet\",\n        VswitchId = exampleSwitch.Id,\n        ClusterSpecification = \"MSE_SC_1_2_60_c\",\n        ClusterVersion = \"NACOS_2_0_0\",\n        InstanceCount = 3,\n        PubNetworkFlow = \"1\",\n        ClusterAliasName = \"example\",\n        MseVersion = \"mse_pro\",\n        ClusterType = \"Nacos-Ans\",\n    });\n\n    var exampleEngineNamespace = new AliCloud.Mse.EngineNamespace(\"example\", new()\n    {\n        InstanceId = exampleCluster.Id,\n        NamespaceShowName = \"example\",\n        NamespaceId = \"example\",\n    });\n\n    var exampleNacosConfig = new AliCloud.Mse.NacosConfig(\"example\", new()\n    {\n        InstanceId = exampleCluster.Id,\n        DataId = \"example\",\n        Group = \"example\",\n        NamespaceId = exampleEngineNamespace.NamespaceId,\n        Content = \"example\",\n        Type = \"text\",\n        Tags = \"example\",\n        AppName = \"example\",\n        Desc = \"example\",\n    });\n\n    var exampleGetNacosConfigs = AliCloud.Mse.GetNacosConfigs.Invoke(new()\n    {\n        InstanceId = exampleCluster.Id,\n        EnableDetails = true,\n        NamespaceId = exampleEngineNamespace.NamespaceId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mse\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := vpc.NewNetwork(ctx, \"example\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.17.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSwitch, err := vpc.NewSwitch(ctx, \"example\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock:   pulumi.String(\"172.17.3.0/24\"),\n\t\t\tVpcId:       exampleNetwork.ID(),\n\t\t\tZoneId:      pulumi.String(example.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := mse.NewCluster(ctx, \"example\", \u0026mse.ClusterArgs{\n\t\t\tConnectionType:       pulumi.String(\"slb\"),\n\t\t\tNetType:              pulumi.String(\"privatenet\"),\n\t\t\tVswitchId:            exampleSwitch.ID(),\n\t\t\tClusterSpecification: pulumi.String(\"MSE_SC_1_2_60_c\"),\n\t\t\tClusterVersion:       pulumi.String(\"NACOS_2_0_0\"),\n\t\t\tInstanceCount:        pulumi.Int(3),\n\t\t\tPubNetworkFlow:       pulumi.String(\"1\"),\n\t\t\tClusterAliasName:     pulumi.String(\"example\"),\n\t\t\tMseVersion:           pulumi.String(\"mse_pro\"),\n\t\t\tClusterType:          pulumi.String(\"Nacos-Ans\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEngineNamespace, err := mse.NewEngineNamespace(ctx, \"example\", \u0026mse.EngineNamespaceArgs{\n\t\t\tInstanceId:        exampleCluster.ID(),\n\t\t\tNamespaceShowName: pulumi.String(\"example\"),\n\t\t\tNamespaceId:       pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mse.NewNacosConfig(ctx, \"example\", \u0026mse.NacosConfigArgs{\n\t\t\tInstanceId:  exampleCluster.ID(),\n\t\t\tDataId:      pulumi.String(\"example\"),\n\t\t\tGroup:       pulumi.String(\"example\"),\n\t\t\tNamespaceId: exampleEngineNamespace.NamespaceId,\n\t\t\tContent:     pulumi.String(\"example\"),\n\t\t\tType:        pulumi.String(\"text\"),\n\t\t\tTags:        pulumi.String(\"example\"),\n\t\t\tAppName:     pulumi.String(\"example\"),\n\t\t\tDesc:        pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = pulumi.All(exampleCluster.ID(), exampleEngineNamespace.NamespaceId).ApplyT(func(_args []interface{}) (mse.GetNacosConfigsResult, error) {\n\t\t\tid := _args[0].(string)\n\t\t\tnamespaceId := _args[1].(string)\n\t\t\treturn mse.GetNacosConfigsResult(interface{}(mse.GetNacosConfigs(ctx, \u0026mse.GetNacosConfigsArgs{\n\t\t\t\tInstanceId:    id,\n\t\t\t\tEnableDetails: pulumi.BoolRef(pulumi.BoolRef(true)),\n\t\t\t\tNamespaceId:   pulumi.StringRef(pulumi.StringRef(namespaceId)),\n\t\t\t}, nil))), nil\n\t\t}).(mse.GetNacosConfigsResultOutput)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.mse.Cluster;\nimport com.pulumi.alicloud.mse.ClusterArgs;\nimport com.pulumi.alicloud.mse.EngineNamespace;\nimport com.pulumi.alicloud.mse.EngineNamespaceArgs;\nimport com.pulumi.alicloud.mse.NacosConfig;\nimport com.pulumi.alicloud.mse.NacosConfigArgs;\nimport com.pulumi.alicloud.mse.MseFunctions;\nimport com.pulumi.alicloud.mse.inputs.GetNacosConfigsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .build());\n\n        var exampleSwitch = new Switch(\"exampleSwitch\", SwitchArgs.builder()\n            .vswitchName(\"terraform-example\")\n            .cidrBlock(\"172.17.3.0/24\")\n            .vpcId(exampleNetwork.id())\n            .zoneId(example.zones()[0].id())\n            .build());\n\n        var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n            .connectionType(\"slb\")\n            .netType(\"privatenet\")\n            .vswitchId(exampleSwitch.id())\n            .clusterSpecification(\"MSE_SC_1_2_60_c\")\n            .clusterVersion(\"NACOS_2_0_0\")\n            .instanceCount(3)\n            .pubNetworkFlow(\"1\")\n            .clusterAliasName(\"example\")\n            .mseVersion(\"mse_pro\")\n            .clusterType(\"Nacos-Ans\")\n            .build());\n\n        var exampleEngineNamespace = new EngineNamespace(\"exampleEngineNamespace\", EngineNamespaceArgs.builder()\n            .instanceId(exampleCluster.id())\n            .namespaceShowName(\"example\")\n            .namespaceId(\"example\")\n            .build());\n\n        var exampleNacosConfig = new NacosConfig(\"exampleNacosConfig\", NacosConfigArgs.builder()\n            .instanceId(exampleCluster.id())\n            .dataId(\"example\")\n            .group(\"example\")\n            .namespaceId(exampleEngineNamespace.namespaceId())\n            .content(\"example\")\n            .type(\"text\")\n            .tags(\"example\")\n            .appName(\"example\")\n            .desc(\"example\")\n            .build());\n\n        final var exampleGetNacosConfigs = Output.tuple(exampleCluster.id(), exampleEngineNamespace.namespaceId()).applyValue(values -\u003e {\n            var id = values.t1;\n            var namespaceId = values.t2;\n            return MseFunctions.getNacosConfigs(GetNacosConfigsArgs.builder()\n                .instanceId(id)\n                .enableDetails(true)\n                .namespaceId(namespaceId)\n                .build());\n        });\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: alicloud:vpc:Network\n    name: example\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.17.3.0/24\n  exampleSwitch:\n    type: alicloud:vpc:Switch\n    name: example\n    properties:\n      vswitchName: terraform-example\n      cidrBlock: 172.17.3.0/24\n      vpcId: ${exampleNetwork.id}\n      zoneId: ${example.zones[0].id}\n  exampleCluster:\n    type: alicloud:mse:Cluster\n    name: example\n    properties:\n      connectionType: slb\n      netType: privatenet\n      vswitchId: ${exampleSwitch.id}\n      clusterSpecification: MSE_SC_1_2_60_c\n      clusterVersion: NACOS_2_0_0\n      instanceCount: '3'\n      pubNetworkFlow: '1'\n      clusterAliasName: example\n      mseVersion: mse_pro\n      clusterType: Nacos-Ans\n  exampleEngineNamespace:\n    type: alicloud:mse:EngineNamespace\n    name: example\n    properties:\n      instanceId: ${exampleCluster.id}\n      namespaceShowName: example\n      namespaceId: example\n  exampleNacosConfig:\n    type: alicloud:mse:NacosConfig\n    name: example\n    properties:\n      instanceId: ${exampleCluster.id}\n      dataId: example\n      group: example\n      namespaceId: ${exampleEngineNamespace.namespaceId}\n      content: example\n      type: text\n      tags: example\n      appName: example\n      desc: example\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  exampleGetNacosConfigs:\n    fn::invoke:\n      function: alicloud:mse:getNacosConfigs\n      arguments:\n        instanceId: ${exampleCluster.id}\n        enableDetails: 'true'\n        namespaceId: ${exampleEngineNamespace.namespaceId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNacosConfigs.\n","properties":{"acceptLanguage":{"type":"string","description":"The language type of the returned information. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"appName":{"type":"string","description":"The name of the application.\n"},"dataId":{"type":"string","description":"The ID of the data.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"group":{"type":"string","description":"The ID of the group.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of MSE Engine Configs ids. It is formatted to `\u003cinstance_id\u003e:\u003cnamespace_id\u003e:\u003cdata_id\u003e:\u003cgroup\u003e`.\n"},"instanceId":{"type":"string","description":"The ID of the instance.\n"},"namespaceId":{"type":"string","description":"The id of Namespace.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n*\n"},"requestPars":{"type":"string","description":"The extended request parameters. The JSON format is supported.\n"},"tags":{"type":"string","description":"The tags of the configuration.\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getNacosConfigs.\n","properties":{"acceptLanguage":{"type":"string"},"appName":{"description":"The name of the application.\n","type":"string"},"configs":{"description":"A list of Mse Nacos Configs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:mse/getNacosConfigsConfig:getNacosConfigsConfig"},"type":"array"},"dataId":{"description":"The ID of the data.\n","type":"string"},"enableDetails":{"type":"boolean"},"group":{"description":"The ID of the group.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"namespaceId":{"type":"string"},"outputFile":{"type":"string"},"requestPars":{"type":"string"},"tags":{"description":"The tags of the configuration.\n","type":"string"}},"required":["configs","ids","instanceId","id"],"type":"object"}},"alicloud:mse/getZnodes:getZnodes":{"description":"This data source provides the Mse Znodes of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.162.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.mse.getZnodes({\n    clusterId: \"example_value\",\n    path: \"/\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const mseZnodeId1 = ids.then(ids =\u003e ids.znodes?.[0]?.id);\nconst nameRegex = alicloud.mse.getZnodes({\n    path: \"/\",\n    clusterId: \"example_value\",\n    nameRegex: \"^my-Znode\",\n});\nexport const mseZnodeId2 = nameRegex.then(nameRegex =\u003e nameRegex.znodes?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.mse.get_znodes(cluster_id=\"example_value\",\n    path=\"/\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"mseZnodeId1\", ids.znodes[0].id)\nname_regex = alicloud.mse.get_znodes(path=\"/\",\n    cluster_id=\"example_value\",\n    name_regex=\"^my-Znode\")\npulumi.export(\"mseZnodeId2\", name_regex.znodes[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Mse.GetZnodes.Invoke(new()\n    {\n        ClusterId = \"example_value\",\n        Path = \"/\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.Mse.GetZnodes.Invoke(new()\n    {\n        Path = \"/\",\n        ClusterId = \"example_value\",\n        NameRegex = \"^my-Znode\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mseZnodeId1\"] = ids.Apply(getZnodesResult =\u003e getZnodesResult.Znodes[0]?.Id),\n        [\"mseZnodeId2\"] = nameRegex.Apply(getZnodesResult =\u003e getZnodesResult.Znodes[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/mse\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := mse.GetZnodes(ctx, \u0026mse.GetZnodesArgs{\n\t\t\tClusterId: \"example_value\",\n\t\t\tPath:      \"/\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mseZnodeId1\", ids.Znodes[0].Id)\n\t\tnameRegex, err := mse.GetZnodes(ctx, \u0026mse.GetZnodesArgs{\n\t\t\tPath:      \"/\",\n\t\t\tClusterId: \"example_value\",\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Znode\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"mseZnodeId2\", nameRegex.Znodes[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.mse.MseFunctions;\nimport com.pulumi.alicloud.mse.inputs.GetZnodesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = MseFunctions.getZnodes(GetZnodesArgs.builder()\n            .clusterId(\"example_value\")\n            .path(\"/\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"mseZnodeId1\", ids.znodes()[0].id());\n        final var nameRegex = MseFunctions.getZnodes(GetZnodesArgs.builder()\n            .path(\"/\")\n            .clusterId(\"example_value\")\n            .nameRegex(\"^my-Znode\")\n            .build());\n\n        ctx.export(\"mseZnodeId2\", nameRegex.znodes()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:mse:getZnodes\n      arguments:\n        clusterId: example_value\n        path: /\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:mse:getZnodes\n      arguments:\n        path: /\n        clusterId: example_value\n        nameRegex: ^my-Znode\noutputs:\n  mseZnodeId1: ${ids.znodes[0].id}\n  mseZnodeId2: ${nameRegex.znodes[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZnodes.\n","properties":{"acceptLanguage":{"type":"string","description":"The language type of the returned information. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"clusterId":{"type":"string","description":"The ID of the Cluster.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Znode IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Znode name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"path":{"type":"string","description":"The Node path.\n"}},"type":"object","required":["clusterId","path"]},"outputs":{"description":"A collection of values returned by getZnodes.\n","properties":{"acceptLanguage":{"type":"string"},"clusterId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"path":{"type":"string"},"znodes":{"items":{"$ref":"#/types/alicloud:mse/getZnodesZnode:getZnodesZnode"},"type":"array"}},"required":["clusterId","ids","names","path","znodes","id"],"type":"object"}},"alicloud:nas/getAccessGroups:getAccessGroups":{"description":"This data source provides user-available access groups. Use when you can create mount points\n\n\u003e NOTE: Available in 1.35.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.nas.getAccessGroups({\n    nameRegex: \"^foo\",\n    accessGroupType: \"Classic\",\n    description: \"tf-testAccAccessGroupsdatasource\",\n});\nexport const alicloudNasAccessGroupsId = example.then(example =\u003e example.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.nas.get_access_groups(name_regex=\"^foo\",\n    access_group_type=\"Classic\",\n    description=\"tf-testAccAccessGroupsdatasource\")\npulumi.export(\"alicloudNasAccessGroupsId\", example.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Nas.GetAccessGroups.Invoke(new()\n    {\n        NameRegex = \"^foo\",\n        AccessGroupType = \"Classic\",\n        Description = \"tf-testAccAccessGroupsdatasource\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudNasAccessGroupsId\"] = example.Apply(getAccessGroupsResult =\u003e getAccessGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := nas.GetAccessGroups(ctx, \u0026nas.GetAccessGroupsArgs{\n\t\t\tNameRegex:       pulumi.StringRef(\"^foo\"),\n\t\t\tAccessGroupType: pulumi.StringRef(\"Classic\"),\n\t\t\tDescription:     pulumi.StringRef(\"tf-testAccAccessGroupsdatasource\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudNasAccessGroupsId\", example.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetAccessGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NasFunctions.getAccessGroups(GetAccessGroupsArgs.builder()\n            .nameRegex(\"^foo\")\n            .accessGroupType(\"Classic\")\n            .description(\"tf-testAccAccessGroupsdatasource\")\n            .build());\n\n        ctx.export(\"alicloudNasAccessGroupsId\", example.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:nas:getAccessGroups\n      arguments:\n        nameRegex: ^foo\n        accessGroupType: Classic\n        description: tf-testAccAccessGroupsdatasource\noutputs:\n  alicloudNasAccessGroupsId: ${example.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccessGroups.\n","properties":{"accessGroupName":{"type":"string","description":"The name of access group.\n"},"accessGroupType":{"type":"string","description":"Filter results by a specific AccessGroupType.\n"},"description":{"type":"string","description":"Filter results by a specific Description.\n"},"fileSystemType":{"type":"string","description":"The type of file system. Valid values: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`extreme`\" pulumi-lang-dotnet=\"`Extreme`\" pulumi-lang-go=\"`extreme`\" pulumi-lang-python=\"`extreme`\" pulumi-lang-yaml=\"`extreme`\" pulumi-lang-java=\"`extreme`\"\u003e`extreme`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e.\n"},"nameRegex":{"type":"string","description":"A regex string to filter AccessGroups by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"type":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e has been deprecated from version 1.95.0. Use \u003cspan pulumi-lang-nodejs=\"`accessGroupType`\" pulumi-lang-dotnet=\"`AccessGroupType`\" pulumi-lang-go=\"`accessGroupType`\" pulumi-lang-python=\"`access_group_type`\" pulumi-lang-yaml=\"`accessGroupType`\" pulumi-lang-java=\"`accessGroupType`\"\u003e`access_group_type`\u003c/span\u003e instead.\n","deprecationMessage":"Field 'type' has been deprecated from provider version 1.95.0. New field 'access_group_type' replaces it."},"useutcDateTime":{"type":"boolean","description":"Specifies whether the time to return is in UTC. Valid values: true and false.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAccessGroups.\n","properties":{"accessGroupName":{"description":"(Available in 1.95.0+) The name of the AccessGroup.\n","type":"string"},"accessGroupType":{"description":"(Available in 1.95.0+) The type of the AccessGroup.\n","type":"string"},"description":{"description":"Description of the AccessGroup.\n","type":"string"},"fileSystemType":{"type":"string"},"groups":{"description":"A list of AccessGroups. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:nas/getAccessGroupsGroup:getAccessGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of AccessGroup IDs, the value is set to \u003cspan pulumi-lang-nodejs=\"`names`\" pulumi-lang-dotnet=\"`Names`\" pulumi-lang-go=\"`names`\" pulumi-lang-python=\"`names`\" pulumi-lang-yaml=\"`names`\" pulumi-lang-java=\"`names`\"\u003e`names`\u003c/span\u003e. After version 1.95.0 the item value as `\u003caccess_group_id\u003e:\u003cfile_system_type\u003e`.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of AccessGroup names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"type":{"deprecationMessage":"Field 'type' has been deprecated from provider version 1.95.0. New field 'access_group_type' replaces it.","description":"(Deprecated in v1.95.0+) AccessGroupType of the AccessGroup. The Field replace by \u003cspan pulumi-lang-nodejs=\"`accessGroupType`\" pulumi-lang-dotnet=\"`AccessGroupType`\" pulumi-lang-go=\"`accessGroupType`\" pulumi-lang-python=\"`access_group_type`\" pulumi-lang-yaml=\"`accessGroupType`\" pulumi-lang-java=\"`accessGroupType`\"\u003e`access_group_type`\u003c/span\u003e after version 1.95.0.\n","type":"string"},"useutcDateTime":{"type":"boolean"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:nas/getAccessRules:getAccessRules":{"description":"This data source provides AccessRule available to the user.\n\n\u003e **NOTE**: Available in 1.35.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst foo = alicloud.nas.getAccessRules({\n    accessGroupName: \"tf-testAccAccessGroupsdatasource\",\n    sourceCidrIp: \"168.1.1.0/16\",\n    rwAccess: \"RDWR\",\n    userAccess: \"no_squash\",\n});\nexport const alicloudNasAccessRulesId = foo.then(foo =\u003e foo.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfoo = alicloud.nas.get_access_rules(access_group_name=\"tf-testAccAccessGroupsdatasource\",\n    source_cidr_ip=\"168.1.1.0/16\",\n    rw_access=\"RDWR\",\n    user_access=\"no_squash\")\npulumi.export(\"alicloudNasAccessRulesId\", foo.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = AliCloud.Nas.GetAccessRules.Invoke(new()\n    {\n        AccessGroupName = \"tf-testAccAccessGroupsdatasource\",\n        SourceCidrIp = \"168.1.1.0/16\",\n        RwAccess = \"RDWR\",\n        UserAccess = \"no_squash\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudNasAccessRulesId\"] = foo.Apply(getAccessRulesResult =\u003e getAccessRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfoo, err := nas.GetAccessRules(ctx, \u0026nas.GetAccessRulesArgs{\n\t\t\tAccessGroupName: \"tf-testAccAccessGroupsdatasource\",\n\t\t\tSourceCidrIp:    pulumi.StringRef(\"168.1.1.0/16\"),\n\t\t\tRwAccess:        pulumi.StringRef(\"RDWR\"),\n\t\t\tUserAccess:      pulumi.StringRef(\"no_squash\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudNasAccessRulesId\", foo.Rules[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetAccessRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var foo = NasFunctions.getAccessRules(GetAccessRulesArgs.builder()\n            .accessGroupName(\"tf-testAccAccessGroupsdatasource\")\n            .sourceCidrIp(\"168.1.1.0/16\")\n            .rwAccess(\"RDWR\")\n            .userAccess(\"no_squash\")\n            .build());\n\n        ctx.export(\"alicloudNasAccessRulesId\", foo.rules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      function: alicloud:nas:getAccessRules\n      arguments:\n        accessGroupName: tf-testAccAccessGroupsdatasource\n        sourceCidrIp: 168.1.1.0/16\n        rwAccess: RDWR\n        userAccess: no_squash\noutputs:\n  alicloudNasAccessRulesId: ${foo.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccessRules.\n","properties":{"accessGroupName":{"type":"string","description":"Filter results by a specific AccessGroupName.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of rule IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"rwAccess":{"type":"string","description":"Filter results by a specific RWAccess.\n"},"sourceCidrIp":{"type":"string","description":"Filter results by a specific SourceCidrIp.\n"},"userAccess":{"type":"string","description":"Filter results by a specific UserAccess.\n"}},"type":"object","required":["accessGroupName"]},"outputs":{"description":"A collection of values returned by getAccessRules.\n","properties":{"accessGroupName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of rule IDs, Each element set to \u003cspan pulumi-lang-nodejs=\"`accessRuleId`\" pulumi-lang-dotnet=\"`AccessRuleId`\" pulumi-lang-go=\"`accessRuleId`\" pulumi-lang-python=\"`access_rule_id`\" pulumi-lang-yaml=\"`accessRuleId`\" pulumi-lang-java=\"`accessRuleId`\"\u003e`access_rule_id`\u003c/span\u003e (Each element formats as `\u003caccess_group_name\u003e:\u003caccess_rule_id\u003e` before 1.53.0).\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"rules":{"description":"A list of AccessRules. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:nas/getAccessRulesRule:getAccessRulesRule"},"type":"array"},"rwAccess":{"description":"RWAccess of the AccessRule.\n","type":"string"},"sourceCidrIp":{"description":"SourceCidrIp of the AccessRule.\n","type":"string"},"userAccess":{"description":"UserAccess of the AccessRule\n","type":"string"}},"required":["accessGroupName","ids","rules","id"],"type":"object"}},"alicloud:nas/getAutoSnapshotPolicies:getAutoSnapshotPolicies":{"description":"This data source provides Auto Snapshot Policies available to the user.\n\n\u003e **NOTE**: Available in v1.153.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.nas.getAutoSnapshotPolicies({\n    ids: [\"example_value\"],\n});\nexport const nasAutoSnapshotPoliciesId1 = ids.then(ids =\u003e ids.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.nas.get_auto_snapshot_policies(ids=[\"example_value\"])\npulumi.export(\"nasAutoSnapshotPoliciesId1\", ids.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Nas.GetAutoSnapshotPolicies.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"nasAutoSnapshotPoliciesId1\"] = ids.Apply(getAutoSnapshotPoliciesResult =\u003e getAutoSnapshotPoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := nas.GetAutoSnapshotPolicies(ctx, \u0026nas.GetAutoSnapshotPoliciesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nasAutoSnapshotPoliciesId1\", ids.Policies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetAutoSnapshotPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = NasFunctions.getAutoSnapshotPolicies(GetAutoSnapshotPoliciesArgs.builder()\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"nasAutoSnapshotPoliciesId1\", ids.policies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:nas:getAutoSnapshotPolicies\n      arguments:\n        ids:\n          - example_value\noutputs:\n  nasAutoSnapshotPoliciesId1: ${ids.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAutoSnapshotPolicies.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Auto Snapshot Policies IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Auto Snapshot Policy name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the automatic snapshot policy. Valid values: `Creating`, `Available`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAutoSnapshotPolicies.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Auto Snapshot Policy names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policies":{"description":"A list of Auto Snapshot Policies. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:nas/getAutoSnapshotPoliciesPolicy:getAutoSnapshotPoliciesPolicy"},"type":"array"},"status":{"description":"The status of the automatic snapshot policy.\n","type":"string"}},"required":["ids","names","policies","id"],"type":"object"}},"alicloud:nas/getDataFlows:getDataFlows":{"description":"This data source provides the Nas Data Flows of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.153.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.nas.getDataFlows({\n    fileSystemId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const nasDataFlowId1 = ids.then(ids =\u003e ids.flows?.[0]?.id);\nconst status = alicloud.nas.getDataFlows({\n    fileSystemId: \"example_value\",\n    status: \"Running\",\n});\nexport const nasDataFlowId2 = status.then(status =\u003e status.flows?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.nas.get_data_flows(file_system_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"nasDataFlowId1\", ids.flows[0].id)\nstatus = alicloud.nas.get_data_flows(file_system_id=\"example_value\",\n    status=\"Running\")\npulumi.export(\"nasDataFlowId2\", status.flows[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Nas.GetDataFlows.Invoke(new()\n    {\n        FileSystemId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var status = AliCloud.Nas.GetDataFlows.Invoke(new()\n    {\n        FileSystemId = \"example_value\",\n        Status = \"Running\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"nasDataFlowId1\"] = ids.Apply(getDataFlowsResult =\u003e getDataFlowsResult.Flows[0]?.Id),\n        [\"nasDataFlowId2\"] = status.Apply(getDataFlowsResult =\u003e getDataFlowsResult.Flows[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := nas.GetDataFlows(ctx, \u0026nas.GetDataFlowsArgs{\n\t\t\tFileSystemId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nasDataFlowId1\", ids.Flows[0].Id)\n\t\tstatus, err := nas.GetDataFlows(ctx, \u0026nas.GetDataFlowsArgs{\n\t\t\tFileSystemId: \"example_value\",\n\t\t\tStatus:       pulumi.StringRef(\"Running\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nasDataFlowId2\", status.Flows[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetDataFlowsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = NasFunctions.getDataFlows(GetDataFlowsArgs.builder()\n            .fileSystemId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"nasDataFlowId1\", ids.flows()[0].id());\n        final var status = NasFunctions.getDataFlows(GetDataFlowsArgs.builder()\n            .fileSystemId(\"example_value\")\n            .status(\"Running\")\n            .build());\n\n        ctx.export(\"nasDataFlowId2\", status.flows()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:nas:getDataFlows\n      arguments:\n        fileSystemId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  status:\n    fn::invoke:\n      function: alicloud:nas:getDataFlows\n      arguments:\n        fileSystemId: example_value\n        status: Running\noutputs:\n  nasDataFlowId1: ${ids.flows[0].id}\n  nasDataFlowId2: ${status.flows[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDataFlows.\n","properties":{"fileSystemId":{"type":"string","description":"The ID of the file system.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Data Flow IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the Data flow. Including: `Starting`, `Running`, `Updating`, `Deleting`, `Stopping`, `Stopped`, `Misconfigured`.\n"}},"type":"object","required":["fileSystemId"]},"outputs":{"description":"A collection of values returned by getDataFlows.\n","properties":{"fileSystemId":{"type":"string"},"flows":{"items":{"$ref":"#/types/alicloud:nas/getDataFlowsFlow:getDataFlowsFlow"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["fileSystemId","flows","ids","id"],"type":"object"}},"alicloud:nas/getFileSystems:getFileSystems":{"description":"This data source provides FileSystems available to the user.\n\n\u003e **NOTE**: Available in 1.35.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst fs = alicloud.nas.getFileSystems({\n    protocolType: \"NFS\",\n    descriptionRegex: foo.description,\n});\nexport const alicloudNasFileSystemsId = fs.then(fs =\u003e fs.systems?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfs = alicloud.nas.get_file_systems(protocol_type=\"NFS\",\n    description_regex=foo[\"description\"])\npulumi.export(\"alicloudNasFileSystemsId\", fs.systems[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var fs = AliCloud.Nas.GetFileSystems.Invoke(new()\n    {\n        ProtocolType = \"NFS\",\n        DescriptionRegex = foo.Description,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudNasFileSystemsId\"] = fs.Apply(getFileSystemsResult =\u003e getFileSystemsResult.Systems[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfs, err := nas.GetFileSystems(ctx, \u0026nas.GetFileSystemsArgs{\n\t\t\tProtocolType:     pulumi.StringRef(\"NFS\"),\n\t\t\tDescriptionRegex: pulumi.StringRef(foo.Description),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudNasFileSystemsId\", fs.Systems[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetFileSystemsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var fs = NasFunctions.getFileSystems(GetFileSystemsArgs.builder()\n            .protocolType(\"NFS\")\n            .descriptionRegex(foo.description())\n            .build());\n\n        ctx.export(\"alicloudNasFileSystemsId\", fs.systems()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  fs:\n    fn::invoke:\n      function: alicloud:nas:getFileSystems\n      arguments:\n        protocolType: NFS\n        descriptionRegex: ${foo.description}\noutputs:\n  alicloudNasFileSystemsId: ${fs.systems[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFileSystems.\n","properties":{"descriptionRegex":{"type":"string","description":"A regex string to filter the results by the ：FileSystem description.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of FileSystemId.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"protocolType":{"type":"string","description":"The protocol type of the file system.\nValid values:\n`NFS`,\n`SMB` (Available when the \u003cspan pulumi-lang-nodejs=\"`fileSystemType`\" pulumi-lang-dotnet=\"`FileSystemType`\" pulumi-lang-go=\"`fileSystemType`\" pulumi-lang-python=\"`file_system_type`\" pulumi-lang-yaml=\"`fileSystemType`\" pulumi-lang-java=\"`fileSystemType`\"\u003e`file_system_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e).\n"},"storageType":{"type":"string","description":"The storage type of the file system.\n* Valid values:\n* `Performance` (Available when the \u003cspan pulumi-lang-nodejs=\"`fileSystemType`\" pulumi-lang-dotnet=\"`FileSystemType`\" pulumi-lang-go=\"`fileSystemType`\" pulumi-lang-python=\"`file_system_type`\" pulumi-lang-yaml=\"`fileSystemType`\" pulumi-lang-java=\"`fileSystemType`\"\u003e`file_system_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e)\n* `Capacity` (Available when the \u003cspan pulumi-lang-nodejs=\"`fileSystemType`\" pulumi-lang-dotnet=\"`FileSystemType`\" pulumi-lang-go=\"`fileSystemType`\" pulumi-lang-python=\"`file_system_type`\" pulumi-lang-yaml=\"`fileSystemType`\" pulumi-lang-java=\"`fileSystemType`\"\u003e`file_system_type`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e)\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getFileSystems.\n","properties":{"descriptionRegex":{"type":"string"},"descriptions":{"description":"A list of FileSystem descriptions.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of FileSystem Id.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"protocolType":{"description":"ProtocolType block of the FileSystem\n","type":"string"},"storageType":{"description":"StorageType block of the FileSystem.\n","type":"string"},"systems":{"description":"A list of VPCs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:nas/getFileSystemsSystem:getFileSystemsSystem"},"type":"array"}},"required":["descriptions","ids","systems","id"],"type":"object"}},"alicloud:nas/getFilesets:getFilesets":{"description":"This data source provides the Nas Filesets of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.153.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.nas.getFilesets({\n    fileSystemId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const nasFilesetId1 = ids.then(ids =\u003e ids.filesets?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.nas.get_filesets(file_system_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"nasFilesetId1\", ids.filesets[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Nas.GetFilesets.Invoke(new()\n    {\n        FileSystemId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"nasFilesetId1\"] = ids.Apply(getFilesetsResult =\u003e getFilesetsResult.Filesets[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := nas.GetFilesets(ctx, \u0026nas.GetFilesetsArgs{\n\t\t\tFileSystemId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nasFilesetId1\", ids.Filesets[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetFilesetsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = NasFunctions.getFilesets(GetFilesetsArgs.builder()\n            .fileSystemId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"nasFilesetId1\", ids.filesets()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:nas:getFilesets\n      arguments:\n        fileSystemId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\noutputs:\n  nasFilesetId1: ${ids.filesets[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFilesets.\n","properties":{"fileSystemId":{"type":"string","description":"The ID of the file system.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Fileset IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the fileset. Valid values: `CREATED`, `CREATING`, `RELEASED`, `RELEASING`.\n"}},"type":"object","required":["fileSystemId"]},"outputs":{"description":"A collection of values returned by getFilesets.\n","properties":{"fileSystemId":{"type":"string"},"filesets":{"items":{"$ref":"#/types/alicloud:nas/getFilesetsFileset:getFilesetsFileset"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["fileSystemId","filesets","ids","id"],"type":"object"}},"alicloud:nas/getLifecyclePolicies:getLifecyclePolicies":{"description":"This data source provides the Nas Lifecycle Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.153.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.nas.getLifecyclePolicies({\n    fileSystemId: \"example_value\",\n    ids: [\n        \"my-LifecyclePolicy-1\",\n        \"my-LifecyclePolicy-2\",\n    ],\n});\nexport const nasLifecyclePolicyId1 = ids.then(ids =\u003e ids.policies?.[0]?.id);\nconst nameRegex = alicloud.nas.getLifecyclePolicies({\n    fileSystemId: \"example_value\",\n    nameRegex: \"^my-LifecyclePolicy\",\n});\nexport const nasLifecyclePolicyId2 = nameRegex.then(nameRegex =\u003e nameRegex.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.nas.get_lifecycle_policies(file_system_id=\"example_value\",\n    ids=[\n        \"my-LifecyclePolicy-1\",\n        \"my-LifecyclePolicy-2\",\n    ])\npulumi.export(\"nasLifecyclePolicyId1\", ids.policies[0].id)\nname_regex = alicloud.nas.get_lifecycle_policies(file_system_id=\"example_value\",\n    name_regex=\"^my-LifecyclePolicy\")\npulumi.export(\"nasLifecyclePolicyId2\", name_regex.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Nas.GetLifecyclePolicies.Invoke(new()\n    {\n        FileSystemId = \"example_value\",\n        Ids = new[]\n        {\n            \"my-LifecyclePolicy-1\",\n            \"my-LifecyclePolicy-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.Nas.GetLifecyclePolicies.Invoke(new()\n    {\n        FileSystemId = \"example_value\",\n        NameRegex = \"^my-LifecyclePolicy\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"nasLifecyclePolicyId1\"] = ids.Apply(getLifecyclePoliciesResult =\u003e getLifecyclePoliciesResult.Policies[0]?.Id),\n        [\"nasLifecyclePolicyId2\"] = nameRegex.Apply(getLifecyclePoliciesResult =\u003e getLifecyclePoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := nas.GetLifecyclePolicies(ctx, \u0026nas.GetLifecyclePoliciesArgs{\n\t\t\tFileSystemId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"my-LifecyclePolicy-1\",\n\t\t\t\t\"my-LifecyclePolicy-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nasLifecyclePolicyId1\", ids.Policies[0].Id)\n\t\tnameRegex, err := nas.GetLifecyclePolicies(ctx, \u0026nas.GetLifecyclePoliciesArgs{\n\t\t\tFileSystemId: \"example_value\",\n\t\t\tNameRegex:    pulumi.StringRef(\"^my-LifecyclePolicy\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nasLifecyclePolicyId2\", nameRegex.Policies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetLifecyclePoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = NasFunctions.getLifecyclePolicies(GetLifecyclePoliciesArgs.builder()\n            .fileSystemId(\"example_value\")\n            .ids(            \n                \"my-LifecyclePolicy-1\",\n                \"my-LifecyclePolicy-2\")\n            .build());\n\n        ctx.export(\"nasLifecyclePolicyId1\", ids.policies()[0].id());\n        final var nameRegex = NasFunctions.getLifecyclePolicies(GetLifecyclePoliciesArgs.builder()\n            .fileSystemId(\"example_value\")\n            .nameRegex(\"^my-LifecyclePolicy\")\n            .build());\n\n        ctx.export(\"nasLifecyclePolicyId2\", nameRegex.policies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:nas:getLifecyclePolicies\n      arguments:\n        fileSystemId: example_value\n        ids:\n          - my-LifecyclePolicy-1\n          - my-LifecyclePolicy-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:nas:getLifecyclePolicies\n      arguments:\n        fileSystemId: example_value\n        nameRegex: ^my-LifecyclePolicy\noutputs:\n  nasLifecyclePolicyId1: ${ids.policies[0].id}\n  nasLifecyclePolicyId2: ${nameRegex.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLifecyclePolicies.\n","properties":{"fileSystemId":{"type":"string","description":"The ID of the file system.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Lifecycle Policy IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Lifecycle Policy name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["fileSystemId"]},"outputs":{"description":"A collection of values returned by getLifecyclePolicies.\n","properties":{"fileSystemId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policies":{"items":{"$ref":"#/types/alicloud:nas/getLifecyclePoliciesPolicy:getLifecyclePoliciesPolicy"},"type":"array"}},"required":["fileSystemId","ids","names","policies","id"],"type":"object"}},"alicloud:nas/getMountTargets:getMountTargets":{"description":"This data source provides MountTargets available to the user.\n\n\u003e **NOTE**: Available in 1.35.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.nas.getMountTargets({\n    fileSystemId: \"1a2sc4d\",\n    accessGroupName: \"tf-testAccNasConfig\",\n});\nexport const theFirstMountTargetDomain = example.then(example =\u003e example.targets?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.nas.get_mount_targets(file_system_id=\"1a2sc4d\",\n    access_group_name=\"tf-testAccNasConfig\")\npulumi.export(\"theFirstMountTargetDomain\", example.targets[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Nas.GetMountTargets.Invoke(new()\n    {\n        FileSystemId = \"1a2sc4d\",\n        AccessGroupName = \"tf-testAccNasConfig\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"theFirstMountTargetDomain\"] = example.Apply(getMountTargetsResult =\u003e getMountTargetsResult.Targets[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := nas.GetMountTargets(ctx, \u0026nas.GetMountTargetsArgs{\n\t\t\tFileSystemId:    \"1a2sc4d\",\n\t\t\tAccessGroupName: pulumi.StringRef(\"tf-testAccNasConfig\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"theFirstMountTargetDomain\", example.Targets[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetMountTargetsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NasFunctions.getMountTargets(GetMountTargetsArgs.builder()\n            .fileSystemId(\"1a2sc4d\")\n            .accessGroupName(\"tf-testAccNasConfig\")\n            .build());\n\n        ctx.export(\"theFirstMountTargetDomain\", example.targets()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:nas:getMountTargets\n      arguments:\n        fileSystemId: 1a2sc4d\n        accessGroupName: tf-testAccNasConfig\noutputs:\n  theFirstMountTargetDomain: ${example.targets[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMountTargets.\n","properties":{"accessGroupName":{"type":"string","description":"Filter results by a specific AccessGroupName.\n"},"fileSystemId":{"type":"string","description":"The ID of the FileSystem that owns the MountTarget.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of MountTargetDomain.\n"},"mountTargetDomain":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`mountTargetDomain`\" pulumi-lang-dotnet=\"`MountTargetDomain`\" pulumi-lang-go=\"`mountTargetDomain`\" pulumi-lang-python=\"`mount_target_domain`\" pulumi-lang-yaml=\"`mountTargetDomain`\" pulumi-lang-java=\"`mountTargetDomain`\"\u003e`mount_target_domain`\u003c/span\u003e has been deprecated from provider version 1.53.0. New field \u003cspan pulumi-lang-nodejs=\"`ids`\" pulumi-lang-dotnet=\"`Ids`\" pulumi-lang-go=\"`ids`\" pulumi-lang-python=\"`ids`\" pulumi-lang-yaml=\"`ids`\" pulumi-lang-java=\"`ids`\"\u003e`ids`\u003c/span\u003e replaces it.\n","deprecationMessage":"Field 'mount_target_domain' has been deprecated from provider version 1.53.0. New field 'ids' replaces it."},"networkType":{"type":"string","description":"Filter results by a specific NetworkType.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"Filter results by the status of mount target. Valid values: `Active`, `Inactive` and `Pending`.\n"},"type":{"type":"string","description":"Field \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e has been deprecated from provider version 1.95.0. New field \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e replaces it.\n","deprecationMessage":"Field 'type' has been deprecated from provider version 1.95.0. New field 'network_type' replaces it."},"vpcId":{"type":"string","description":"Filter results by a specific VpcId.\n"},"vswitchId":{"type":"string","description":"Filter results by a specific VSwitchId.\n"}},"type":"object","required":["fileSystemId"]},"outputs":{"description":"A collection of values returned by getMountTargets.\n","properties":{"accessGroupName":{"description":"AccessGroup of The MountTarget.\n","type":"string"},"fileSystemId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of MountTargetDomain.\n","items":{"type":"string"},"type":"array"},"mountTargetDomain":{"deprecationMessage":"Field 'mount_target_domain' has been deprecated from provider version 1.53.0. New field 'ids' replaces it.","description":"MountTargetDomain of the MountTarget.\n","type":"string"},"networkType":{"description":"(Available 1.95.0+) NetworkType of The MountTarget.\n","type":"string"},"outputFile":{"type":"string"},"status":{"description":"(Available 1.95.0+) The status of the mount target.\n","type":"string"},"targets":{"description":"A list of MountTargetDomains. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:nas/getMountTargetsTarget:getMountTargetsTarget"},"type":"array"},"type":{"deprecationMessage":"Field 'type' has been deprecated from provider version 1.95.0. New field 'network_type' replaces it.","description":"Field \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e has been deprecated from provider version 1.95.0. New field \u003cspan pulumi-lang-nodejs=\"`networkType`\" pulumi-lang-dotnet=\"`NetworkType`\" pulumi-lang-go=\"`networkType`\" pulumi-lang-python=\"`network_type`\" pulumi-lang-yaml=\"`networkType`\" pulumi-lang-java=\"`networkType`\"\u003e`network_type`\u003c/span\u003e replaces it.\n","type":"string"},"vpcId":{"description":"VpcId of The MountTarget.\n","type":"string"},"vswitchId":{"description":"VSwitchId of The MountTarget.\n","type":"string"}},"required":["fileSystemId","ids","targets","id"],"type":"object"}},"alicloud:nas/getProtocols:getProtocols":{"description":"Provide  a data source to retrieve the type of protocol used to create NAS file system.\n\n\u003e **NOTE:** Available in 1.42.0\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.nas.getProtocols({\n    type: \"Performance\",\n    zoneId: \"cn-beijing-e\",\n    outputFile: \"protocols.txt\",\n});\nexport const nasProtocolsProtocol = _default.then(_default =\u003e _default.protocols?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.nas.get_protocols(type=\"Performance\",\n    zone_id=\"cn-beijing-e\",\n    output_file=\"protocols.txt\")\npulumi.export(\"nasProtocolsProtocol\", default.protocols[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Nas.GetProtocols.Invoke(new()\n    {\n        Type = \"Performance\",\n        ZoneId = \"cn-beijing-e\",\n        OutputFile = \"protocols.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"nasProtocolsProtocol\"] = @default.Apply(@default =\u003e @default.Apply(getProtocolsResult =\u003e getProtocolsResult.Protocols[0])),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := nas.GetProtocols(ctx, \u0026nas.GetProtocolsArgs{\n\t\t\tType:       \"Performance\",\n\t\t\tZoneId:     pulumi.StringRef(\"cn-beijing-e\"),\n\t\t\tOutputFile: pulumi.StringRef(\"protocols.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nasProtocolsProtocol\", _default.Protocols[0])\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetProtocolsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = NasFunctions.getProtocols(GetProtocolsArgs.builder()\n            .type(\"Performance\")\n            .zoneId(\"cn-beijing-e\")\n            .outputFile(\"protocols.txt\")\n            .build());\n\n        ctx.export(\"nasProtocolsProtocol\", default_.protocols()[0]);\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:nas:getProtocols\n      arguments:\n        type: Performance\n        zoneId: cn-beijing-e\n        outputFile: protocols.txt\noutputs:\n  nasProtocolsProtocol: ${default.protocols[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProtocols.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"type":{"type":"string","description":"The file system type. Valid Values: `Performance` and `Capacity`.\n"},"zoneId":{"type":"string","description":"String to filter results by zone id.\n"}},"type":"object","required":["type"]},"outputs":{"description":"A collection of values returned by getProtocols.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"protocols":{"description":"A list of supported protocol type..\n","items":{"type":"string"},"type":"array"},"type":{"type":"string"},"zoneId":{"type":"string"}},"required":["protocols","type","id"],"type":"object"}},"alicloud:nas/getService:getService":{"description":"Using this data source can enable NAS service automatically. If the service has been enabled, it will return `Opened`.\n\nFor information about NAS and how to use it, see [What is NAS](https://www.alibabacloud.com/help/product/27516.htm).\n\n\u003e **NOTE:** Available in v1.97.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.nas.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.nas.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Nas.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := nas.GetService(ctx, \u0026nas.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = NasFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:nas:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: \"On\" or \"Off\". Default to \"Off\".\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the NAS service that means you have read and agreed the [NAS Terms of Service](https://www.alibabacloud.com/help/en/scu/latest/overview-of-scu). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:nas/getSnapshots:getSnapshots":{"description":"This data source provides the Nas Snapshots of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.152.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.nas.getSnapshots({});\nexport const nasSnapshotId1 = ids.then(ids =\u003e ids.snapshots?.[0]?.id);\nconst nameRegex = alicloud.nas.getSnapshots({\n    nameRegex: \"^my-Snapshot\",\n});\nexport const nasSnapshotId2 = nameRegex.then(nameRegex =\u003e nameRegex.snapshots?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.nas.get_snapshots()\npulumi.export(\"nasSnapshotId1\", ids.snapshots[0].id)\nname_regex = alicloud.nas.get_snapshots(name_regex=\"^my-Snapshot\")\npulumi.export(\"nasSnapshotId2\", name_regex.snapshots[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Nas.GetSnapshots.Invoke();\n\n    var nameRegex = AliCloud.Nas.GetSnapshots.Invoke(new()\n    {\n        NameRegex = \"^my-Snapshot\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"nasSnapshotId1\"] = ids.Apply(getSnapshotsResult =\u003e getSnapshotsResult.Snapshots[0]?.Id),\n        [\"nasSnapshotId2\"] = nameRegex.Apply(getSnapshotsResult =\u003e getSnapshotsResult.Snapshots[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := nas.GetSnapshots(ctx, \u0026nas.GetSnapshotsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nasSnapshotId1\", ids.Snapshots[0].Id)\n\t\tnameRegex, err := nas.GetSnapshots(ctx, \u0026nas.GetSnapshotsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Snapshot\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nasSnapshotId2\", nameRegex.Snapshots[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetSnapshotsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = NasFunctions.getSnapshots(GetSnapshotsArgs.builder()\n            .build());\n\n        ctx.export(\"nasSnapshotId1\", ids.snapshots()[0].id());\n        final var nameRegex = NasFunctions.getSnapshots(GetSnapshotsArgs.builder()\n            .nameRegex(\"^my-Snapshot\")\n            .build());\n\n        ctx.export(\"nasSnapshotId2\", nameRegex.snapshots()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:nas:getSnapshots\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:nas:getSnapshots\n      arguments:\n        nameRegex: ^my-Snapshot\noutputs:\n  nasSnapshotId1: ${ids.snapshots[0].id}\n  nasSnapshotId2: ${nameRegex.snapshots[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSnapshots.\n","properties":{"fileSystemId":{"type":"string","description":"The ID of the file system.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Snapshot IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Snapshot name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"snapshotName":{"type":"string","description":"The name of the snapshot.\n"},"status":{"type":"string","description":"Status. Valid values: \u003cspan pulumi-lang-nodejs=\"`accomplished`\" pulumi-lang-dotnet=\"`Accomplished`\" pulumi-lang-go=\"`accomplished`\" pulumi-lang-python=\"`accomplished`\" pulumi-lang-yaml=\"`accomplished`\" pulumi-lang-java=\"`accomplished`\"\u003e`accomplished`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`failed`\" pulumi-lang-dotnet=\"`Failed`\" pulumi-lang-go=\"`failed`\" pulumi-lang-python=\"`failed`\" pulumi-lang-yaml=\"`failed`\" pulumi-lang-java=\"`failed`\"\u003e`failed`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`progressing`\" pulumi-lang-dotnet=\"`Progressing`\" pulumi-lang-go=\"`progressing`\" pulumi-lang-python=\"`progressing`\" pulumi-lang-yaml=\"`progressing`\" pulumi-lang-java=\"`progressing`\"\u003e`progressing`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSnapshots.\n","properties":{"fileSystemId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"snapshotName":{"type":"string"},"snapshots":{"items":{"$ref":"#/types/alicloud:nas/getSnapshotsSnapshot:getSnapshotsSnapshot"},"type":"array"},"status":{"type":"string"}},"required":["ids","names","snapshots","id"],"type":"object"}},"alicloud:nas/getZones:getZones":{"description":"Provide  a data source to retrieve the type of zone used to create NAS file system.\n\n\u003e **NOTE:** Available in v1.140.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.nas.getZones({});\nexport const alicloudNasZonesId = _default.then(_default =\u003e _default.zones?.[0]?.zoneId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.nas.get_zones()\npulumi.export(\"alicloudNasZonesId\", default.zones[0].zone_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Nas.GetZones.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudNasZonesId\"] = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.ZoneId)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := nas.GetZones(ctx, \u0026nas.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudNasZonesId\", _default.Zones[0].ZoneId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nas.NasFunctions;\nimport com.pulumi.alicloud.nas.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = NasFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        ctx.export(\"alicloudNasZonesId\", default_.zones()[0].zoneId());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:nas:getZones\n      arguments: {}\noutputs:\n  alicloudNasZonesId: ${default.zones[0].zoneId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"fileSystemType":{"type":"string","description":"The type of the file system.  Valid values: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`extreme`\" pulumi-lang-dotnet=\"`Extreme`\" pulumi-lang-go=\"`extreme`\" pulumi-lang-python=\"`extreme`\" pulumi-lang-yaml=\"`extreme`\" pulumi-lang-java=\"`extreme`\"\u003e`extreme`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cpfs`\" pulumi-lang-dotnet=\"`Cpfs`\" pulumi-lang-go=\"`cpfs`\" pulumi-lang-python=\"`cpfs`\" pulumi-lang-yaml=\"`cpfs`\" pulumi-lang-java=\"`cpfs`\"\u003e`cpfs`\u003c/span\u003e.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"fileSystemType":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"zones":{"description":"A list of availability zone information collection.\n","items":{"$ref":"#/types/alicloud:nas/getZonesZone:getZonesZone"},"type":"array"}},"required":["zones","id"],"type":"object"}},"alicloud:nlb/getListeners:getListeners":{"description":"This data source provides the Nlb Listeners of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.191.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.nlb.getListeners({\n    ids: [\"example_value\"],\n});\nexport const alicloudNlbListenerId1 = ids.then(ids =\u003e ids.listeners?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.nlb.get_listeners(ids=[\"example_value\"])\npulumi.export(\"alicloudNlbListenerId1\", ids.listeners[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Nlb.GetListeners.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudNlbListenerId1\"] = ids.Apply(getListenersResult =\u003e getListenersResult.Listeners[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := nlb.GetListeners(ctx, \u0026nlb.GetListenersArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudNlbListenerId1\", ids.Listeners[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nlb.NlbFunctions;\nimport com.pulumi.alicloud.nlb.inputs.GetListenersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = NlbFunctions.getListeners(GetListenersArgs.builder()\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"alicloudNlbListenerId1\", ids.listeners()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:nlb:getListeners\n      arguments:\n        ids:\n          - example_value\noutputs:\n  alicloudNlbListenerId1: ${ids.listeners[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getListeners.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Listener IDs.\n"},"listenerProtocol":{"type":"string","description":"The listening protocol. Valid values: `TCP`, `UDP`, or `TCPSSL`.\n"},"loadBalancerIds":{"type":"array","items":{"type":"string"},"description":"The ID of the NLB instance. You can specify at most 20 IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getListeners.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"listenerProtocol":{"description":"The listening protocol. Valid values: `TCP`, `UDP`, or `TCPSSL`.\n","type":"string"},"listeners":{"description":"A list of Nlb Listeners. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:nlb/getListenersListener:getListenersListener"},"type":"array"},"loadBalancerIds":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","listeners","id"],"type":"object"}},"alicloud:nlb/getLoadBalancers:getLoadBalancers":{"description":"This data source provides the Nlb Load Balancers of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.191.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.nlb.getLoadBalancers({\n    ids: [\"example_id\"],\n});\nexport const nlbLoadBalancerId1 = ids.then(ids =\u003e ids.balancers?.[0]?.id);\nconst nameRegex = alicloud.nlb.getLoadBalancers({\n    nameRegex: \"^my-LoadBalancer\",\n});\nexport const nlbLoadBalancerId2 = nameRegex.then(nameRegex =\u003e nameRegex.balancers?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.nlb.get_load_balancers(ids=[\"example_id\"])\npulumi.export(\"nlbLoadBalancerId1\", ids.balancers[0].id)\nname_regex = alicloud.nlb.get_load_balancers(name_regex=\"^my-LoadBalancer\")\npulumi.export(\"nlbLoadBalancerId2\", name_regex.balancers[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Nlb.GetLoadBalancers.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Nlb.GetLoadBalancers.Invoke(new()\n    {\n        NameRegex = \"^my-LoadBalancer\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"nlbLoadBalancerId1\"] = ids.Apply(getLoadBalancersResult =\u003e getLoadBalancersResult.Balancers[0]?.Id),\n        [\"nlbLoadBalancerId2\"] = nameRegex.Apply(getLoadBalancersResult =\u003e getLoadBalancersResult.Balancers[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := nlb.GetLoadBalancers(ctx, \u0026nlb.GetLoadBalancersArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nlbLoadBalancerId1\", ids.Balancers[0].Id)\n\t\tnameRegex, err := nlb.GetLoadBalancers(ctx, \u0026nlb.GetLoadBalancersArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-LoadBalancer\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nlbLoadBalancerId2\", nameRegex.Balancers[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nlb.NlbFunctions;\nimport com.pulumi.alicloud.nlb.inputs.GetLoadBalancersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = NlbFunctions.getLoadBalancers(GetLoadBalancersArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"nlbLoadBalancerId1\", ids.balancers()[0].id());\n        final var nameRegex = NlbFunctions.getLoadBalancers(GetLoadBalancersArgs.builder()\n            .nameRegex(\"^my-LoadBalancer\")\n            .build());\n\n        ctx.export(\"nlbLoadBalancerId2\", nameRegex.balancers()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:nlb:getLoadBalancers\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:nlb:getLoadBalancers\n      arguments:\n        nameRegex: ^my-LoadBalancer\noutputs:\n  nlbLoadBalancerId1: ${ids.balancers[0].id}\n  nlbLoadBalancerId2: ${nameRegex.balancers[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLoadBalancers.\n","properties":{"addressIpVersion":{"type":"string","description":"The IP version. Valid values: \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e, `DualStack`.\n"},"addressType":{"type":"string","description":"The type of IPv4 address used by the NLB instance. Valid values: `Internet`, `Intranet`.\n"},"dnsName":{"type":"string","description":"The domain name of the NLB instance.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Load Balancer IDs.\n"},"ipv6AddressType":{"type":"string","description":"The type of IPv6 address used by the NLB instance. Valid values: `Internet`, `Intranet`.\n"},"loadBalancerBusinessStatus":{"type":"string","description":"The business status of the NLB instance. Valid values: `Abnormal`, `Normal`.\n"},"loadBalancerNames":{"type":"array","items":{"type":"string"},"description":"The name of the NLB instance. You can specify at most 10 names.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Load Balancer name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"status":{"type":"string","description":"The status of the NLB instance. Valid values: `Inactive`, `Active`, `Provisioning`, `Configuring`, `Deleting`, `Deleted`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"}},"vpcIds":{"type":"array","items":{"type":"string"},"description":"The ID of the virtual private cloud (VPC) where the NLB instance is deployed. You can specify at most 10 IDs.\n"},"zoneId":{"type":"string","description":"The name of the zone.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLoadBalancers.\n","properties":{"addressIpVersion":{"type":"string"},"addressType":{"type":"string"},"balancers":{"items":{"$ref":"#/types/alicloud:nlb/getLoadBalancersBalancer:getLoadBalancersBalancer"},"type":"array"},"dnsName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"ipv6AddressType":{"type":"string"},"loadBalancerBusinessStatus":{"type":"string"},"loadBalancerNames":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"vpcIds":{"items":{"type":"string"},"type":"array"},"zoneId":{"type":"string"}},"required":["balancers","ids","names","id"],"type":"object"}},"alicloud:nlb/getSecurityPolicies:getSecurityPolicies":{"description":"This data source provides the Nlb Security Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.187.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.nlb.getSecurityPolicies({});\nexport const nlbSecurityPolicyId1 = ids.then(ids =\u003e ids.policies?.[0]?.id);\nconst nameRegex = alicloud.nlb.getSecurityPolicies({\n    nameRegex: \"^my-SecurityPolicy\",\n});\nexport const nlbSecurityPolicyId2 = nameRegex.then(nameRegex =\u003e nameRegex.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.nlb.get_security_policies()\npulumi.export(\"nlbSecurityPolicyId1\", ids.policies[0].id)\nname_regex = alicloud.nlb.get_security_policies(name_regex=\"^my-SecurityPolicy\")\npulumi.export(\"nlbSecurityPolicyId2\", name_regex.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Nlb.GetSecurityPolicies.Invoke();\n\n    var nameRegex = AliCloud.Nlb.GetSecurityPolicies.Invoke(new()\n    {\n        NameRegex = \"^my-SecurityPolicy\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"nlbSecurityPolicyId1\"] = ids.Apply(getSecurityPoliciesResult =\u003e getSecurityPoliciesResult.Policies[0]?.Id),\n        [\"nlbSecurityPolicyId2\"] = nameRegex.Apply(getSecurityPoliciesResult =\u003e getSecurityPoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := nlb.GetSecurityPolicies(ctx, \u0026nlb.GetSecurityPoliciesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nlbSecurityPolicyId1\", ids.Policies[0].Id)\n\t\tnameRegex, err := nlb.GetSecurityPolicies(ctx, \u0026nlb.GetSecurityPoliciesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-SecurityPolicy\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nlbSecurityPolicyId2\", nameRegex.Policies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nlb.NlbFunctions;\nimport com.pulumi.alicloud.nlb.inputs.GetSecurityPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = NlbFunctions.getSecurityPolicies(GetSecurityPoliciesArgs.builder()\n            .build());\n\n        ctx.export(\"nlbSecurityPolicyId1\", ids.policies()[0].id());\n        final var nameRegex = NlbFunctions.getSecurityPolicies(GetSecurityPoliciesArgs.builder()\n            .nameRegex(\"^my-SecurityPolicy\")\n            .build());\n\n        ctx.export(\"nlbSecurityPolicyId2\", nameRegex.policies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:nlb:getSecurityPolicies\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:nlb:getSecurityPolicies\n      arguments:\n        nameRegex: ^my-SecurityPolicy\noutputs:\n  nlbSecurityPolicyId1: ${ids.policies[0].id}\n  nlbSecurityPolicyId2: ${nameRegex.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSecurityPolicies.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Security Policy IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Security Policy name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"securityPolicyNames":{"type":"array","items":{"type":"string"},"description":"The names of the TLS security policies.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Available`, `Configuring`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"type":"object"},"outputs":{"description":"A collection of values returned by getSecurityPolicies.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policies":{"items":{"$ref":"#/types/alicloud:nlb/getSecurityPoliciesPolicy:getSecurityPoliciesPolicy"},"type":"array"},"resourceGroupId":{"type":"string"},"securityPolicyNames":{"items":{"type":"string"},"type":"array"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["ids","names","policies","id"],"type":"object"}},"alicloud:nlb/getServerGroupServerAttachments:getServerGroupServerAttachments":{"description":"This data source provides the Nlb Server Group Server Attachments of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.192.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.nlb.getServerGroupServerAttachments({\n    ids: [\"example_value\"],\n});\nexport const nlbServerGroupServerAttachmentId1 = ids.then(ids =\u003e ids.attachments?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.nlb.get_server_group_server_attachments(ids=[\"example_value\"])\npulumi.export(\"nlbServerGroupServerAttachmentId1\", ids.attachments[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Nlb.GetServerGroupServerAttachments.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"nlbServerGroupServerAttachmentId1\"] = ids.Apply(getServerGroupServerAttachmentsResult =\u003e getServerGroupServerAttachmentsResult.Attachments[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := nlb.GetServerGroupServerAttachments(ctx, \u0026nlb.GetServerGroupServerAttachmentsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nlbServerGroupServerAttachmentId1\", ids.Attachments[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nlb.NlbFunctions;\nimport com.pulumi.alicloud.nlb.inputs.GetServerGroupServerAttachmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = NlbFunctions.getServerGroupServerAttachments(GetServerGroupServerAttachmentsArgs.builder()\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"nlbServerGroupServerAttachmentId1\", ids.attachments()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:nlb:getServerGroupServerAttachments\n      arguments:\n        ids:\n          - example_value\noutputs:\n  nlbServerGroupServerAttachmentId1: ${ids.attachments[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerGroupServerAttachments.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Server Group Server Attachment IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"serverGroupId":{"type":"string","description":"The ID of the server group.\n"},"serverIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the servers. You can specify at most 40 server IDs in each call.\n"},"serverIps":{"type":"array","items":{"type":"string"},"description":"The IP addresses of the servers. You can specify at most 40 server IP addresses in each call.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServerGroupServerAttachments.\n","properties":{"attachments":{"description":"A list of Nlb Server Group Server Attachments. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:nlb/getServerGroupServerAttachmentsAttachment:getServerGroupServerAttachmentsAttachment"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"serverGroupId":{"description":"The ID of the server group.\n","type":"string"},"serverIds":{"items":{"type":"string"},"type":"array"},"serverIps":{"items":{"type":"string"},"type":"array"}},"required":["attachments","ids","id"],"type":"object"}},"alicloud:nlb/getServerGroups:getServerGroups":{"description":"This data source provides the Nlb Server Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.186.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.nlb.getServerGroups({});\nexport const nlbServerGroupId1 = ids.then(ids =\u003e ids.groups?.[0]?.id);\nconst nameRegex = alicloud.nlb.getServerGroups({\n    nameRegex: \"^my-ServerGroup\",\n});\nexport const nlbServerGroupId2 = nameRegex.then(nameRegex =\u003e nameRegex.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.nlb.get_server_groups()\npulumi.export(\"nlbServerGroupId1\", ids.groups[0].id)\nname_regex = alicloud.nlb.get_server_groups(name_regex=\"^my-ServerGroup\")\npulumi.export(\"nlbServerGroupId2\", name_regex.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Nlb.GetServerGroups.Invoke();\n\n    var nameRegex = AliCloud.Nlb.GetServerGroups.Invoke(new()\n    {\n        NameRegex = \"^my-ServerGroup\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"nlbServerGroupId1\"] = ids.Apply(getServerGroupsResult =\u003e getServerGroupsResult.Groups[0]?.Id),\n        [\"nlbServerGroupId2\"] = nameRegex.Apply(getServerGroupsResult =\u003e getServerGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := nlb.GetServerGroups(ctx, \u0026nlb.GetServerGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nlbServerGroupId1\", ids.Groups[0].Id)\n\t\tnameRegex, err := nlb.GetServerGroups(ctx, \u0026nlb.GetServerGroupsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-ServerGroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"nlbServerGroupId2\", nameRegex.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nlb.NlbFunctions;\nimport com.pulumi.alicloud.nlb.inputs.GetServerGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = NlbFunctions.getServerGroups(GetServerGroupsArgs.builder()\n            .build());\n\n        ctx.export(\"nlbServerGroupId1\", ids.groups()[0].id());\n        final var nameRegex = NlbFunctions.getServerGroups(GetServerGroupsArgs.builder()\n            .nameRegex(\"^my-ServerGroup\")\n            .build());\n\n        ctx.export(\"nlbServerGroupId2\", nameRegex.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:nlb:getServerGroups\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:nlb:getServerGroups\n      arguments:\n        nameRegex: ^my-ServerGroup\noutputs:\n  nlbServerGroupId1: ${ids.groups[0].id}\n  nlbServerGroupId2: ${nameRegex.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Server Group IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Server Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the security group belongs.\n"},"serverGroupNames":{"type":"array","items":{"type":"string"},"description":"The names of the server groups to be queried.\n"},"serverGroupType":{"type":"string","description":"The type of the server group. Valid values: `Instance`, `Ip`.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Available`, `Configuring`, `Creating`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"type":"object"},"outputs":{"description":"A collection of values returned by getServerGroups.\n","properties":{"groups":{"items":{"$ref":"#/types/alicloud:nlb/getServerGroupsGroup:getServerGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"},"serverGroupNames":{"items":{"type":"string"},"type":"array"},"serverGroupType":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:nlb/getZones:getZones":{"description":"This data source provides the available zones with the Network Load Balancer (NLB) Instance of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.191.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.nlb.getZones({});\nexport const firstNlbZonesId = example.then(example =\u003e example.zones?.[0]?.zoneId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.nlb.get_zones()\npulumi.export(\"firstNlbZonesId\", example.zones[0].zone_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Nlb.GetZones.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstNlbZonesId\"] = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.ZoneId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nlb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := nlb.GetZones(ctx, \u0026nlb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstNlbZonesId\", example.Zones[0].ZoneId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.nlb.NlbFunctions;\nimport com.pulumi.alicloud.nlb.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = NlbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        ctx.export(\"firstNlbZonesId\", example.zones()[0].zoneId());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:nlb:getZones\n      arguments: {}\noutputs:\n  firstNlbZonesId: ${example.zones[0].zoneId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"zones":{"items":{"$ref":"#/types/alicloud:nlb/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:ocean/getBaseInstances:getBaseInstances":{"description":"This data source provides the Ocean Base Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.203.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ocean.getBaseInstances({});\nexport const oceanBaseInstanceId1 = ids.then(ids =\u003e ids.instances?.[0]?.id);\nconst nameRegex = alicloud.ocean.getBaseInstances({\n    nameRegex: \"^my-Instance\",\n});\nexport const oceanBaseInstanceId2 = nameRegex.then(nameRegex =\u003e nameRegex.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ocean.get_base_instances()\npulumi.export(\"oceanBaseInstanceId1\", ids.instances[0].id)\nname_regex = alicloud.ocean.get_base_instances(name_regex=\"^my-Instance\")\npulumi.export(\"oceanBaseInstanceId2\", name_regex.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ocean.GetBaseInstances.Invoke();\n\n    var nameRegex = AliCloud.Ocean.GetBaseInstances.Invoke(new()\n    {\n        NameRegex = \"^my-Instance\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"oceanBaseInstanceId1\"] = ids.Apply(getBaseInstancesResult =\u003e getBaseInstancesResult.Instances[0]?.Id),\n        [\"oceanBaseInstanceId2\"] = nameRegex.Apply(getBaseInstancesResult =\u003e getBaseInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ocean\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ocean.GetBaseInstances(ctx, \u0026ocean.GetBaseInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"oceanBaseInstanceId1\", ids.Instances[0].Id)\n\t\tnameRegex, err := ocean.GetBaseInstances(ctx, \u0026ocean.GetBaseInstancesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"oceanBaseInstanceId2\", nameRegex.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ocean.OceanFunctions;\nimport com.pulumi.alicloud.ocean.inputs.GetBaseInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = OceanFunctions.getBaseInstances(GetBaseInstancesArgs.builder()\n            .build());\n\n        ctx.export(\"oceanBaseInstanceId1\", ids.instances()[0].id());\n        final var nameRegex = OceanFunctions.getBaseInstances(GetBaseInstancesArgs.builder()\n            .nameRegex(\"^my-Instance\")\n            .build());\n\n        ctx.export(\"oceanBaseInstanceId2\", nameRegex.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ocean:getBaseInstances\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:ocean:getBaseInstances\n      arguments:\n        nameRegex: ^my-Instance\noutputs:\n  oceanBaseInstanceId1: ${ids.instances[0].id}\n  oceanBaseInstanceId2: ${nameRegex.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBaseInstances.\n","properties":{"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Instance IDs.\n"},"instanceId":{"type":"string","description":"OceanBase cluster ID.\n"},"instanceName":{"type":"string","description":"OceanBase cluster name. The length is 1 to 20 English or Chinese characters. If this parameter is not specified, the default value is the InstanceId of the cluster.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"type":"string","description":"The ID of the enterprise resource group to which the instance resides.\n"},"searchKey":{"type":"string","description":"The filter keyword for the query list.\n"},"status":{"type":"string","description":"The status of the Instance. Value range: `PENDING_CREATE`, `ONLINE`, `TENANT_CREATING`, `TENANT_SPEC_MODIFYING`, `EXPANDING`, `REDUCING`, `SPEC_UPGRADING`, `DISK_UPGRADING`, `WHITE_LIST_MODIFYING`, `PARAMETER_MODIFYING`, `SSL_MODIFYING`, `PREPAID_EXPIRE_CLOSED`, `ARREARS_CLOSED`, `PENDING_DELETE`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBaseInstances.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"instanceName":{"type":"string"},"instances":{"items":{"$ref":"#/types/alicloud:ocean/getBaseInstancesInstance:getBaseInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"type":"string"},"searchKey":{"type":"string"},"status":{"type":"string"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:oos/getApplicationGroups:getApplicationGroups":{"description":"This data source provides the Oos Application Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.146.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.oos.getApplicationGroups({\n    applicationName: \"example_value\",\n    ids: [\n        \"my-ApplicationGroup-1\",\n        \"my-ApplicationGroup-2\",\n    ],\n});\nexport const oosApplicationGroupId1 = ids.then(ids =\u003e ids.groups?.[0]?.id);\nconst nameRegex = alicloud.oos.getApplicationGroups({\n    applicationName: \"example_value\",\n    nameRegex: \"^my-ApplicationGroup\",\n});\nexport const oosApplicationGroupId2 = nameRegex.then(nameRegex =\u003e nameRegex.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.oos.get_application_groups(application_name=\"example_value\",\n    ids=[\n        \"my-ApplicationGroup-1\",\n        \"my-ApplicationGroup-2\",\n    ])\npulumi.export(\"oosApplicationGroupId1\", ids.groups[0].id)\nname_regex = alicloud.oos.get_application_groups(application_name=\"example_value\",\n    name_regex=\"^my-ApplicationGroup\")\npulumi.export(\"oosApplicationGroupId2\", name_regex.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Oos.GetApplicationGroups.Invoke(new()\n    {\n        ApplicationName = \"example_value\",\n        Ids = new[]\n        {\n            \"my-ApplicationGroup-1\",\n            \"my-ApplicationGroup-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.Oos.GetApplicationGroups.Invoke(new()\n    {\n        ApplicationName = \"example_value\",\n        NameRegex = \"^my-ApplicationGroup\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"oosApplicationGroupId1\"] = ids.Apply(getApplicationGroupsResult =\u003e getApplicationGroupsResult.Groups[0]?.Id),\n        [\"oosApplicationGroupId2\"] = nameRegex.Apply(getApplicationGroupsResult =\u003e getApplicationGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := oos.GetApplicationGroups(ctx, \u0026oos.GetApplicationGroupsArgs{\n\t\t\tApplicationName: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"my-ApplicationGroup-1\",\n\t\t\t\t\"my-ApplicationGroup-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"oosApplicationGroupId1\", ids.Groups[0].Id)\n\t\tnameRegex, err := oos.GetApplicationGroups(ctx, \u0026oos.GetApplicationGroupsArgs{\n\t\t\tApplicationName: \"example_value\",\n\t\t\tNameRegex:       pulumi.StringRef(\"^my-ApplicationGroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"oosApplicationGroupId2\", nameRegex.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oos.OosFunctions;\nimport com.pulumi.alicloud.oos.inputs.GetApplicationGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = OosFunctions.getApplicationGroups(GetApplicationGroupsArgs.builder()\n            .applicationName(\"example_value\")\n            .ids(            \n                \"my-ApplicationGroup-1\",\n                \"my-ApplicationGroup-2\")\n            .build());\n\n        ctx.export(\"oosApplicationGroupId1\", ids.groups()[0].id());\n        final var nameRegex = OosFunctions.getApplicationGroups(GetApplicationGroupsArgs.builder()\n            .applicationName(\"example_value\")\n            .nameRegex(\"^my-ApplicationGroup\")\n            .build());\n\n        ctx.export(\"oosApplicationGroupId2\", nameRegex.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:oos:getApplicationGroups\n      arguments:\n        applicationName: example_value\n        ids:\n          - my-ApplicationGroup-1\n          - my-ApplicationGroup-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:oos:getApplicationGroups\n      arguments:\n        applicationName: example_value\n        nameRegex: ^my-ApplicationGroup\noutputs:\n  oosApplicationGroupId1: ${ids.groups[0].id}\n  oosApplicationGroupId2: ${nameRegex.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getApplicationGroups.\n","properties":{"applicationName":{"type":"string","description":"The name of the Application.\n"},"deployRegionId":{"type":"string","description":"The region ID of the deployment.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Application Group IDs. Its element value is same as Application Group Name.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Application Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["applicationName"]},"outputs":{"description":"A collection of values returned by getApplicationGroups.\n","properties":{"applicationName":{"type":"string"},"deployRegionId":{"type":"string"},"groups":{"items":{"$ref":"#/types/alicloud:oos/getApplicationGroupsGroup:getApplicationGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["applicationName","groups","ids","names","id"],"type":"object"}},"alicloud:oos/getApplications:getApplications":{"description":"This data source provides the Oos Applications of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.145.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.oos.getApplications({});\nexport const oosApplicationId1 = ids.then(ids =\u003e ids.applications?.[0]?.id);\nconst nameRegex = alicloud.oos.getApplications({\n    nameRegex: \"^my-Application\",\n});\nexport const oosApplicationId2 = nameRegex.then(nameRegex =\u003e nameRegex.applications?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.oos.get_applications()\npulumi.export(\"oosApplicationId1\", ids.applications[0].id)\nname_regex = alicloud.oos.get_applications(name_regex=\"^my-Application\")\npulumi.export(\"oosApplicationId2\", name_regex.applications[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Oos.GetApplications.Invoke();\n\n    var nameRegex = AliCloud.Oos.GetApplications.Invoke(new()\n    {\n        NameRegex = \"^my-Application\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"oosApplicationId1\"] = ids.Apply(getApplicationsResult =\u003e getApplicationsResult.Applications[0]?.Id),\n        [\"oosApplicationId2\"] = nameRegex.Apply(getApplicationsResult =\u003e getApplicationsResult.Applications[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := oos.GetApplications(ctx, \u0026oos.GetApplicationsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"oosApplicationId1\", ids.Applications[0].Id)\n\t\tnameRegex, err := oos.GetApplications(ctx, \u0026oos.GetApplicationsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Application\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"oosApplicationId2\", nameRegex.Applications[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oos.OosFunctions;\nimport com.pulumi.alicloud.oos.inputs.GetApplicationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = OosFunctions.getApplications(GetApplicationsArgs.builder()\n            .build());\n\n        ctx.export(\"oosApplicationId1\", ids.applications()[0].id());\n        final var nameRegex = OosFunctions.getApplications(GetApplicationsArgs.builder()\n            .nameRegex(\"^my-Application\")\n            .build());\n\n        ctx.export(\"oosApplicationId2\", nameRegex.applications()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:oos:getApplications\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:oos:getApplications\n      arguments:\n        nameRegex: ^my-Application\noutputs:\n  oosApplicationId1: ${ids.applications[0].id}\n  oosApplicationId2: ${nameRegex.applications[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getApplications.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Application IDs. Its element value is same as Application Name.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Application name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getApplications.\n","properties":{"applications":{"items":{"$ref":"#/types/alicloud:oos/getApplicationsApplication:getApplicationsApplication"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["applications","ids","names","id"],"type":"object"}},"alicloud:oos/getExecutions:getExecutions":{"description":"This data source provides a list of OOS Executions in an Alibaba Cloud account according to the specified filters.\n \n\u003e **NOTE:** Available in v1.93.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst example = alicloud.oos.getExecutions({\n    ids: [\"execution_id\"],\n    templateName: \"name\",\n    status: \"Success\",\n});\nexport const firstExecutionId = example.then(example =\u003e example.executions?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nexample = alicloud.oos.get_executions(ids=[\"execution_id\"],\n    template_name=\"name\",\n    status=\"Success\")\npulumi.export(\"firstExecutionId\", example.executions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var example = AliCloud.Oos.GetExecutions.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"execution_id\",\n        },\n        TemplateName = \"name\",\n        Status = \"Success\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstExecutionId\"] = example.Apply(getExecutionsResult =\u003e getExecutionsResult.Executions[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\texample, err := oos.GetExecutions(ctx, \u0026oos.GetExecutionsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"execution_id\",\n\t\t\t},\n\t\t\tTemplateName: pulumi.StringRef(\"name\"),\n\t\t\tStatus:       pulumi.StringRef(\"Success\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstExecutionId\", example.Executions[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oos.OosFunctions;\nimport com.pulumi.alicloud.oos.inputs.GetExecutionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var example = OosFunctions.getExecutions(GetExecutionsArgs.builder()\n            .ids(\"execution_id\")\n            .templateName(\"name\")\n            .status(\"Success\")\n            .build());\n\n        ctx.export(\"firstExecutionId\", example.executions()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  example:\n    fn::invoke:\n      function: alicloud:oos:getExecutions\n      arguments:\n        ids:\n          - execution_id\n        templateName: name\n        status: Success\noutputs:\n  firstExecutionId: ${example.executions[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getExecutions.\n","properties":{"category":{"type":"string","description":"The category of template. Valid: `AlarmTrigger`, `EventTrigger`, `Other` and `TimerTrigger`.\n"},"endDate":{"type":"string","description":"The time when the execution was ended.\n"},"endDateAfter":{"type":"string","description":"Execution whose end time is less than or equal to the specified time.\n"},"executedBy":{"type":"string","description":"The user who execute the template.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of OOS Execution ids.\n"},"includeChildExecution":{"type":"boolean","description":"Whether to include sub-execution.\n"},"mode":{"type":"string","description":"The mode of OOS Execution. Valid: `Automatic`, `Debug`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"parentExecutionId":{"type":"string","description":"The id of parent OOS Execution.\n"},"ramRole":{"type":"string","description":"The role that executes the current template.\n"},"sortField":{"type":"string","description":"The sort field.\n"},"sortOrder":{"type":"string","description":"The sort order.\n"},"startDateAfter":{"type":"string","description":"The execution whose start time is greater than or equal to the specified time.\n"},"startDateBefore":{"type":"string","description":"The execution with start time less than or equal to the specified time.\n"},"status":{"type":"string","description":"The Status of OOS Execution. Valid: `Cancelled`, `Failed`, `Queued`, `Running`, `Started`, `Success`, `Waiting`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"templateName":{"type":"string","description":"The name of execution template.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getExecutions.\n","properties":{"category":{"type":"string"},"endDate":{"type":"string"},"endDateAfter":{"type":"string"},"executedBy":{"type":"string"},"executions":{"description":"A list of OOS Executions. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:oos/getExecutionsExecution:getExecutionsExecution"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of OOS Execution ids.\n","items":{"type":"string"},"type":"array"},"includeChildExecution":{"type":"boolean"},"mode":{"type":"string"},"outputFile":{"type":"string"},"parentExecutionId":{"type":"string"},"ramRole":{"type":"string"},"sortField":{"type":"string"},"sortOrder":{"type":"string"},"startDateAfter":{"type":"string"},"startDateBefore":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"templateName":{"type":"string"}},"required":["executions","ids","id"],"type":"object"}},"alicloud:oos/getParameters:getParameters":{"description":"This data source provides the Oos Parameters of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.147.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.oos.Parameter(\"default\", {\n    parameterName: name,\n    value: \"tf-testacc-oos_parameter\",\n    type: \"String\",\n    description: name,\n    constraints: `  {\n    \\\\\"AllowedValues\\\\\": [\n        \\\\\"tf-testacc-oos_parameter\\\\\"\n    ],\n    \\\\\"AllowedPattern\\\\\": \\\\\"tf-testacc-oos_parameter\\\\\",\n    \\\\\"MinLength\\\\\": 1,\n    \\\\\"MaxLength\\\\\": 100\n  }\n`,\n    tags: {\n        Created: \"TF\",\n        For: \"Parameter\",\n    },\n});\nconst ids = alicloud.oos.getParametersOutput({\n    ids: [_default.id],\n});\nexport const oosSecretParameterId0 = ids.apply(ids =\u003e ids.parameters?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.oos.Parameter(\"default\",\n    parameter_name=name,\n    value=\"tf-testacc-oos_parameter\",\n    type=\"String\",\n    description=name,\n    constraints=\"\"\"  {\n    \\\"AllowedValues\\\": [\n        \\\"tf-testacc-oos_parameter\\\"\n    ],\n    \\\"AllowedPattern\\\": \\\"tf-testacc-oos_parameter\\\",\n    \\\"MinLength\\\": 1,\n    \\\"MaxLength\\\": 100\n  }\n\"\"\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Parameter\",\n    })\nids = alicloud.oos.get_parameters_output(ids=[default.id])\npulumi.export(\"oosSecretParameterId0\", ids.parameters[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Oos.Parameter(\"default\", new()\n    {\n        ParameterName = name,\n        Value = \"tf-testacc-oos_parameter\",\n        Type = \"String\",\n        Description = name,\n        Constraints = @\"  {\n    \\\"\"AllowedValues\\\"\": [\n        \\\"\"tf-testacc-oos_parameter\\\"\"\n    ],\n    \\\"\"AllowedPattern\\\"\": \\\"\"tf-testacc-oos_parameter\\\"\",\n    \\\"\"MinLength\\\"\": 1,\n    \\\"\"MaxLength\\\"\": 100\n  }\n\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Parameter\" },\n        },\n    });\n\n    var ids = AliCloud.Oos.GetParameters.Invoke(new()\n    {\n        Ids = new[]\n        {\n            @default.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"oosSecretParameterId0\"] = ids.Apply(getParametersResult =\u003e getParametersResult.Parameters[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := oos.NewParameter(ctx, \"default\", \u0026oos.ParameterArgs{\n\t\t\tParameterName: pulumi.String(name),\n\t\t\tValue:         pulumi.String(\"tf-testacc-oos_parameter\"),\n\t\t\tType:          pulumi.String(\"String\"),\n\t\t\tDescription:   pulumi.String(name),\n\t\t\tConstraints: pulumi.String(`  {\n    \\\"AllowedValues\\\": [\n        \\\"tf-testacc-oos_parameter\\\"\n    ],\n    \\\"AllowedPattern\\\": \\\"tf-testacc-oos_parameter\\\",\n    \\\"MinLength\\\": 1,\n    \\\"MaxLength\\\": 100\n  }\n`),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"Parameter\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := oos.GetParametersOutput(ctx, oos.GetParametersOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"oosSecretParameterId0\", ids.ApplyT(func(ids oos.GetParametersResult) (*string, error) {\n\t\t\treturn \u0026ids.Parameters[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oos.Parameter;\nimport com.pulumi.alicloud.oos.ParameterArgs;\nimport com.pulumi.alicloud.oos.OosFunctions;\nimport com.pulumi.alicloud.oos.inputs.GetParametersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Parameter(\"default\", ParameterArgs.builder()\n            .parameterName(name)\n            .value(\"tf-testacc-oos_parameter\")\n            .type(\"String\")\n            .description(name)\n            .constraints(\"\"\"\n  {\n    \\\"AllowedValues\\\": [\n        \\\"tf-testacc-oos_parameter\\\"\n    ],\n    \\\"AllowedPattern\\\": \\\"tf-testacc-oos_parameter\\\",\n    \\\"MinLength\\\": 1,\n    \\\"MaxLength\\\": 100\n  }\n            \"\"\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Parameter\")\n            ))\n            .build());\n\n        final var ids = OosFunctions.getParameters(GetParametersArgs.builder()\n            .ids(default_.id())\n            .build());\n\n        ctx.export(\"oosSecretParameterId0\", ids.applyValue(_ids -\u003e _ids.parameters()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:oos:Parameter\n    properties:\n      parameterName: ${name}\n      value: tf-testacc-oos_parameter\n      type: String\n      description: ${name}\n      constraints: |2\n          {\n            \\\"AllowedValues\\\": [\n                \\\"tf-testacc-oos_parameter\\\"\n            ],\n            \\\"AllowedPattern\\\": \\\"tf-testacc-oos_parameter\\\",\n            \\\"MinLength\\\": 1,\n            \\\"MaxLength\\\": 100\n          }\n      tags:\n        Created: TF\n        For: Parameter\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:oos:getParameters\n      arguments:\n        ids:\n          - ${default.id}\noutputs:\n  oosSecretParameterId0: ${ids.parameters[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getParameters.\n","properties":{"enableDetails":{"type":"boolean","description":"Whether to query the detailed list of resource attributes. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Parameter IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Parameter name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"parameterName":{"type":"string","description":"The name of the common parameter. You can enter a keyword to query parameter names in fuzzy match mode.\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"sortField":{"type":"string","description":"The field used to sort the query results. Valid values: `Name`, `CreatedDate`.\n"},"sortOrder":{"type":"string","description":"The order in which the entries are sorted. Default value: `Descending`. Valid values: `Ascending`, `Descending`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The data type of the common parameter. Valid values: `String`, `StringList`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getParameters.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Parameter names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"parameterName":{"description":"The name of the common parameter.\n","type":"string"},"parameters":{"description":"A list of Oos Parameters. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:oos/getParametersParameter:getParametersParameter"},"type":"array"},"resourceGroupId":{"description":"The ID of the Resource Group.\n","type":"string"},"sortField":{"type":"string"},"sortOrder":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags added to the common parameter.\n","type":"object"},"type":{"description":"The data type of the common parameter.\n","type":"string"}},"required":["ids","names","parameters","id"],"type":"object"}},"alicloud:oos/getPatchBaselines:getPatchBaselines":{"description":"This data source provides the Oos Patch Baselines of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.146.0+.\n\n","inputs":{"description":"A collection of arguments for invoking getPatchBaselines.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Patch Baseline IDs. Its element value is same as Patch Baseline Name.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Patch Baseline name.\n"},"operationSystem":{"type":"string","description":"Operating system type. Valid values: `AliyunLinux`, `Anolis`, `CentOS`, `Debian`, `RedhatEnterpriseLinux`, `Ubuntu`, `Windows`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"shareType":{"type":"string","description":"Patch baseline sharing type. Valid values: `Private`, `Public`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPatchBaselines.\n","properties":{"baselines":{"items":{"$ref":"#/types/alicloud:oos/getPatchBaselinesBaseline:getPatchBaselinesBaseline"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"operationSystem":{"type":"string"},"outputFile":{"type":"string"},"shareType":{"type":"string"}},"required":["baselines","ids","names","id"],"type":"object"}},"alicloud:oos/getSecretParameters:getSecretParameters":{"description":"This data source provides the Oos Secret Parameters of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.147.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.oos.SecretParameter(\"default\", {\n    secretParameterName: name,\n    value: \"tf-testacc-oos_secret_parameter\",\n    type: \"Secret\",\n    description: name,\n    constraints: `  {\n    \\\\\"AllowedValues\\\\\": [\n        \\\\\"tf-testacc-oos_secret_parameter\\\\\"\n    ],\n    \\\\\"AllowedPattern\\\\\": \\\\\"tf-testacc-oos_secret_parameter\\\\\",\n    \\\\\"MinLength\\\\\": 1,\n    \\\\\"MaxLength\\\\\": 100\n  }\n`,\n    tags: {\n        Created: \"TF\",\n        For: \"SecretParameter\",\n    },\n});\nconst ids = alicloud.oos.getSecretParametersOutput({\n    ids: [_default.id],\n});\nexport const oosSecretParameterId0 = ids.apply(ids =\u003e ids.parameters?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.oos.SecretParameter(\"default\",\n    secret_parameter_name=name,\n    value=\"tf-testacc-oos_secret_parameter\",\n    type=\"Secret\",\n    description=name,\n    constraints=\"\"\"  {\n    \\\"AllowedValues\\\": [\n        \\\"tf-testacc-oos_secret_parameter\\\"\n    ],\n    \\\"AllowedPattern\\\": \\\"tf-testacc-oos_secret_parameter\\\",\n    \\\"MinLength\\\": 1,\n    \\\"MaxLength\\\": 100\n  }\n\"\"\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"SecretParameter\",\n    })\nids = alicloud.oos.get_secret_parameters_output(ids=[default.id])\npulumi.export(\"oosSecretParameterId0\", ids.parameters[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.Oos.SecretParameter(\"default\", new()\n    {\n        SecretParameterName = name,\n        Value = \"tf-testacc-oos_secret_parameter\",\n        Type = \"Secret\",\n        Description = name,\n        Constraints = @\"  {\n    \\\"\"AllowedValues\\\"\": [\n        \\\"\"tf-testacc-oos_secret_parameter\\\"\"\n    ],\n    \\\"\"AllowedPattern\\\"\": \\\"\"tf-testacc-oos_secret_parameter\\\"\",\n    \\\"\"MinLength\\\"\": 1,\n    \\\"\"MaxLength\\\"\": 100\n  }\n\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"SecretParameter\" },\n        },\n    });\n\n    var ids = AliCloud.Oos.GetSecretParameters.Invoke(new()\n    {\n        Ids = new[]\n        {\n            @default.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"oosSecretParameterId0\"] = ids.Apply(getSecretParametersResult =\u003e getSecretParametersResult.Parameters[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := oos.NewSecretParameter(ctx, \"default\", \u0026oos.SecretParameterArgs{\n\t\t\tSecretParameterName: pulumi.String(name),\n\t\t\tValue:               pulumi.String(\"tf-testacc-oos_secret_parameter\"),\n\t\t\tType:                pulumi.String(\"Secret\"),\n\t\t\tDescription:         pulumi.String(name),\n\t\t\tConstraints: pulumi.String(`  {\n    \\\"AllowedValues\\\": [\n        \\\"tf-testacc-oos_secret_parameter\\\"\n    ],\n    \\\"AllowedPattern\\\": \\\"tf-testacc-oos_secret_parameter\\\",\n    \\\"MinLength\\\": 1,\n    \\\"MaxLength\\\": 100\n  }\n`),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"SecretParameter\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := oos.GetSecretParametersOutput(ctx, oos.GetSecretParametersOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"oosSecretParameterId0\", ids.ApplyT(func(ids oos.GetSecretParametersResult) (*string, error) {\n\t\t\treturn \u0026ids.Parameters[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oos.SecretParameter;\nimport com.pulumi.alicloud.oos.SecretParameterArgs;\nimport com.pulumi.alicloud.oos.OosFunctions;\nimport com.pulumi.alicloud.oos.inputs.GetSecretParametersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new SecretParameter(\"default\", SecretParameterArgs.builder()\n            .secretParameterName(name)\n            .value(\"tf-testacc-oos_secret_parameter\")\n            .type(\"Secret\")\n            .description(name)\n            .constraints(\"\"\"\n  {\n    \\\"AllowedValues\\\": [\n        \\\"tf-testacc-oos_secret_parameter\\\"\n    ],\n    \\\"AllowedPattern\\\": \\\"tf-testacc-oos_secret_parameter\\\",\n    \\\"MinLength\\\": 1,\n    \\\"MaxLength\\\": 100\n  }\n            \"\"\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"SecretParameter\")\n            ))\n            .build());\n\n        final var ids = OosFunctions.getSecretParameters(GetSecretParametersArgs.builder()\n            .ids(default_.id())\n            .build());\n\n        ctx.export(\"oosSecretParameterId0\", ids.applyValue(_ids -\u003e _ids.parameters()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:oos:SecretParameter\n    properties:\n      secretParameterName: ${name}\n      value: tf-testacc-oos_secret_parameter\n      type: Secret\n      description: ${name}\n      constraints: |2\n          {\n            \\\"AllowedValues\\\": [\n                \\\"tf-testacc-oos_secret_parameter\\\"\n            ],\n            \\\"AllowedPattern\\\": \\\"tf-testacc-oos_secret_parameter\\\",\n            \\\"MinLength\\\": 1,\n            \\\"MaxLength\\\": 100\n          }\n      tags:\n        Created: TF\n        For: SecretParameter\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:oos:getSecretParameters\n      arguments:\n        ids:\n          - ${default.id}\noutputs:\n  oosSecretParameterId0: ${ids.parameters[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSecretParameters.\n","properties":{"enableDetails":{"type":"boolean","description":"Whether to query the detailed list of resource attributes. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Secret Parameter IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Secret Parameter name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group.\n"},"secretParameterName":{"type":"string","description":"The name of the Secret Parameter.\n"},"sortField":{"type":"string","description":"The field used to sort the query results. Valid values: `Name`, `CreatedDate`.\n"},"sortOrder":{"type":"string","description":"The order in which the entries are sorted. Default value: `Descending`. Valid values: `Ascending`, `Descending`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true},"withDecryption":{"type":"boolean","description":"Specifies whether to decrypt the parameter value. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. **Note:** \u003cspan pulumi-lang-nodejs=\"`withDecryption`\" pulumi-lang-dotnet=\"`WithDecryption`\" pulumi-lang-go=\"`withDecryption`\" pulumi-lang-python=\"`with_decryption`\" pulumi-lang-yaml=\"`withDecryption`\" pulumi-lang-java=\"`withDecryption`\"\u003e`with_decryption`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSecretParameters.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Secret Parameter names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"parameters":{"description":"A list of Oos Secret Parameters. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:oos/getSecretParametersParameter:getSecretParametersParameter"},"type":"array"},"resourceGroupId":{"description":"The ID of the Resource Group.\n","type":"string"},"secretParameterName":{"description":"The name of the encryption parameter.\n","type":"string"},"sortField":{"type":"string"},"sortOrder":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of the parameter.\n","type":"object"},"withDecryption":{"type":"boolean"}},"required":["ids","names","parameters","id"],"type":"object"}},"alicloud:oos/getStateConfigurations:getStateConfigurations":{"description":"This data source provides the Oos State Configurations of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.147.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.oos.getStateConfigurations({});\nexport const oosStateConfigurationId1 = ids.then(ids =\u003e ids.configurations?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.oos.get_state_configurations()\npulumi.export(\"oosStateConfigurationId1\", ids.configurations[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Oos.GetStateConfigurations.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"oosStateConfigurationId1\"] = ids.Apply(getStateConfigurationsResult =\u003e getStateConfigurationsResult.Configurations[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := oos.GetStateConfigurations(ctx, \u0026oos.GetStateConfigurationsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"oosStateConfigurationId1\", ids.Configurations[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oos.OosFunctions;\nimport com.pulumi.alicloud.oos.inputs.GetStateConfigurationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = OosFunctions.getStateConfigurations(GetStateConfigurationsArgs.builder()\n            .build());\n\n        ctx.export(\"oosStateConfigurationId1\", ids.configurations()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:oos:getStateConfigurations\n      arguments: {}\noutputs:\n  oosStateConfigurationId1: ${ids.configurations[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStateConfigurations.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of State Configuration IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getStateConfigurations.\n","properties":{"configurations":{"items":{"$ref":"#/types/alicloud:oos/getStateConfigurationsConfiguration:getStateConfigurationsConfiguration"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["configurations","ids","id"],"type":"object"}},"alicloud:oos/getTemplates:getTemplates":{"description":"This data source provides a list of OOS Templates in an Alibaba Cloud account according to the specified filters.\n \n\u003e **NOTE:** Available in v1.92.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst example = alicloud.oos.getTemplates({\n    nameRegex: \"test\",\n    tags: {\n        Created: \"TF\",\n        For: \"template Test\",\n    },\n    shareType: \"Private\",\n    hasTrigger: false,\n});\nexport const firstTemplateName = example.then(example =\u003e example.templates?.[0]?.templateName);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nexample = alicloud.oos.get_templates(name_regex=\"test\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"template Test\",\n    },\n    share_type=\"Private\",\n    has_trigger=False)\npulumi.export(\"firstTemplateName\", example.templates[0].template_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var example = AliCloud.Oos.GetTemplates.Invoke(new()\n    {\n        NameRegex = \"test\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"template Test\" },\n        },\n        ShareType = \"Private\",\n        HasTrigger = false,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstTemplateName\"] = example.Apply(getTemplatesResult =\u003e getTemplatesResult.Templates[0]?.TemplateName),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oos\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\texample, err := oos.GetTemplates(ctx, \u0026oos.GetTemplatesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"test\"),\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"Created\": \"TF\",\n\t\t\t\t\"For\":     \"template Test\",\n\t\t\t},\n\t\t\tShareType:  pulumi.StringRef(\"Private\"),\n\t\t\tHasTrigger: pulumi.BoolRef(false),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstTemplateName\", example.Templates[0].TemplateName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oos.OosFunctions;\nimport com.pulumi.alicloud.oos.inputs.GetTemplatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var example = OosFunctions.getTemplates(GetTemplatesArgs.builder()\n            .nameRegex(\"test\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"template Test\")\n            ))\n            .shareType(\"Private\")\n            .hasTrigger(false)\n            .build());\n\n        ctx.export(\"firstTemplateName\", example.templates()[0].templateName());\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  example:\n    fn::invoke:\n      function: alicloud:oos:getTemplates\n      arguments:\n        nameRegex: test\n        tags:\n          Created: TF\n          For: template Test\n        shareType: Private\n        hasTrigger: false\noutputs:\n  firstTemplateName: ${example.templates[0].templateName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTemplates.\n","properties":{"category":{"type":"string","description":"The category of template.\n"},"createdBy":{"type":"string","description":"The creator of the template.\n"},"createdDate":{"type":"string","description":"The template whose creation time is less than or equal to the specified time. The format is: YYYY-MM-DDThh:mm::ssZ.\n"},"createdDateAfter":{"type":"string","description":"Create a template whose time is greater than or equal to the specified time. The format is: YYYY-MM-DDThh:mm:ssZ.\n"},"hasTrigger":{"type":"boolean","description":"Is it triggered successfully.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of OOS Template ids. Each element in the list is same as template_name.\n"},"nameRegex":{"type":"string","description":"A regex string to filter the results by the template_name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"shareType":{"type":"string","description":"The sharing type of the template. Valid values: `Private`, `Public`.\n"},"sortField":{"type":"string","description":"Sort field. Valid values: `TotalExecutionCount`, `Popularity`, `TemplateName` and `CreatedDate`. Default to `TotalExecutionCount`.\n"},"sortOrder":{"type":"string","description":"Sort order. Valid values: `Ascending`, `Descending`. Default to `Descending`\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"templateFormat":{"type":"string","description":"The format of the template. Valid values: `JSON`, `YAML`.\n"},"templateType":{"type":"string","description":"The type of OOS Template.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTemplates.\n","properties":{"category":{"type":"string"},"createdBy":{"type":"string"},"createdDate":{"type":"string"},"createdDateAfter":{"type":"string"},"hasTrigger":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of OOS Template ids. Each element in the list is same as template_name.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"(Available in v1.114.0+) A list of OOS Template names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"shareType":{"type":"string"},"sortField":{"type":"string"},"sortOrder":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"templateFormat":{"type":"string"},"templateType":{"type":"string"},"templates":{"description":"A list of OOS Templates. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:oos/getTemplatesTemplate:getTemplatesTemplate"},"type":"array"}},"required":["ids","names","templates","id"],"type":"object"}},"alicloud:opensearch/getAppGroups:getAppGroups":{"description":"This data source provides the Open Search App Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.136.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf_testacc\";\nconst defaultAppGroup = new alicloud.opensearch.AppGroup(\"default\", {\n    appGroupName: name,\n    paymentType: \"PayAsYouGo\",\n    type: \"standard\",\n    quota: {\n        docSize: 1,\n        computeResource: 20,\n        spec: \"opensearch.share.common\",\n    },\n});\nconst _default = alicloud.opensearch.getAppGroupsOutput({\n    ids: [defaultAppGroup.id],\n});\nexport const appGroups = _default.apply(_default =\u003e _default.groups);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf_testacc\"\ndefault_app_group = alicloud.opensearch.AppGroup(\"default\",\n    app_group_name=name,\n    payment_type=\"PayAsYouGo\",\n    type=\"standard\",\n    quota={\n        \"doc_size\": 1,\n        \"compute_resource\": 20,\n        \"spec\": \"opensearch.share.common\",\n    })\ndefault = alicloud.opensearch.get_app_groups_output(ids=[default_app_group.id])\npulumi.export(\"appGroups\", default.groups)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf_testacc\";\n    var defaultAppGroup = new AliCloud.OpenSearch.AppGroup(\"default\", new()\n    {\n        AppGroupName = name,\n        PaymentType = \"PayAsYouGo\",\n        Type = \"standard\",\n        Quota = new AliCloud.OpenSearch.Inputs.AppGroupQuotaArgs\n        {\n            DocSize = 1,\n            ComputeResource = 20,\n            Spec = \"opensearch.share.common\",\n        },\n    });\n\n    var @default = AliCloud.OpenSearch.GetAppGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAppGroup.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"appGroups\"] = @default.Apply(@default =\u003e @default.Apply(getAppGroupsResult =\u003e getAppGroupsResult.Groups)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/opensearch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf_testacc\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultAppGroup, err := opensearch.NewAppGroup(ctx, \"default\", \u0026opensearch.AppGroupArgs{\n\t\t\tAppGroupName: pulumi.String(name),\n\t\t\tPaymentType:  pulumi.String(\"PayAsYouGo\"),\n\t\t\tType:         pulumi.String(\"standard\"),\n\t\t\tQuota: \u0026opensearch.AppGroupQuotaArgs{\n\t\t\t\tDocSize:         pulumi.Int(1),\n\t\t\t\tComputeResource: pulumi.Int(20),\n\t\t\t\tSpec:            pulumi.String(\"opensearch.share.common\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default := opensearch.GetAppGroupsOutput(ctx, opensearch.GetAppGroupsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultAppGroup.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"appGroups\", _default.ApplyT(func(_default opensearch.GetAppGroupsResult) ([]opensearch.GetAppGroupsGroup, error) {\n\t\t\treturn []opensearch.GetAppGroupsGroup(_default.Groups), nil\n\t\t}).([]opensearch.GetAppGroupsGroupOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.opensearch.AppGroup;\nimport com.pulumi.alicloud.opensearch.AppGroupArgs;\nimport com.pulumi.alicloud.opensearch.inputs.AppGroupQuotaArgs;\nimport com.pulumi.alicloud.opensearch.OpensearchFunctions;\nimport com.pulumi.alicloud.opensearch.inputs.GetAppGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf_testacc\");\n        var defaultAppGroup = new AppGroup(\"defaultAppGroup\", AppGroupArgs.builder()\n            .appGroupName(name)\n            .paymentType(\"PayAsYouGo\")\n            .type(\"standard\")\n            .quota(AppGroupQuotaArgs.builder()\n                .docSize(1)\n                .computeResource(20)\n                .spec(\"opensearch.share.common\")\n                .build())\n            .build());\n\n        final var default = OpensearchFunctions.getAppGroups(GetAppGroupsArgs.builder()\n            .ids(defaultAppGroup.id())\n            .build());\n\n        ctx.export(\"appGroups\", default_.applyValue(_default_ -\u003e _default_.groups()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf_testacc\nresources:\n  defaultAppGroup:\n    type: alicloud:opensearch:AppGroup\n    name: default\n    properties:\n      appGroupName: ${name}\n      paymentType: PayAsYouGo\n      type: standard\n      quota:\n        docSize: 1\n        computeResource: 20\n        spec: opensearch.share.common\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:opensearch:getAppGroups\n      arguments:\n        ids:\n          - ${defaultAppGroup.id}\noutputs:\n  appGroups: ${default.groups}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAppGroups.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of App Group IDs. Its element value is same as App Group Name.\n"},"instanceId":{"type":"string","description":"The Instance ID.\n"},"name":{"type":"string"},"nameRegex":{"type":"string","description":"A regex string to filter results by App Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The Resource Group ID.\n"},"type":{"type":"string","description":"Application type. Valid Values: \u003cspan pulumi-lang-nodejs=\"`standard`\" pulumi-lang-dotnet=\"`Standard`\" pulumi-lang-go=\"`standard`\" pulumi-lang-python=\"`standard`\" pulumi-lang-yaml=\"`standard`\" pulumi-lang-java=\"`standard`\"\u003e`standard`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enhanced`\" pulumi-lang-dotnet=\"`Enhanced`\" pulumi-lang-go=\"`enhanced`\" pulumi-lang-python=\"`enhanced`\" pulumi-lang-yaml=\"`enhanced`\" pulumi-lang-java=\"`enhanced`\"\u003e`enhanced`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAppGroups.\n","properties":{"enableDetails":{"type":"boolean"},"groups":{"items":{"$ref":"#/types/alicloud:opensearch/getAppGroupsGroup:getAppGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"name":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"},"type":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:oss/getBucketObjects:getBucketObjects":{"description":"This data source provides the objects of an OSS bucket.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst bucketObjectsDs = alicloud.oss.getBucketObjects({\n    bucketName: \"sample_bucket\",\n    keyRegex: \"sample/sample_object.txt\",\n});\nexport const firstObjectKey = bucketObjectsDs.then(bucketObjectsDs =\u003e bucketObjectsDs.objects?.[0]?.key);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nbucket_objects_ds = alicloud.oss.get_bucket_objects(bucket_name=\"sample_bucket\",\n    key_regex=\"sample/sample_object.txt\")\npulumi.export(\"firstObjectKey\", bucket_objects_ds.objects[0].key)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var bucketObjectsDs = AliCloud.Oss.GetBucketObjects.Invoke(new()\n    {\n        BucketName = \"sample_bucket\",\n        KeyRegex = \"sample/sample_object.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstObjectKey\"] = bucketObjectsDs.Apply(getBucketObjectsResult =\u003e getBucketObjectsResult.Objects[0]?.Key),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucketObjectsDs, err := oss.GetBucketObjects(ctx, \u0026oss.GetBucketObjectsArgs{\n\t\t\tBucketName: \"sample_bucket\",\n\t\t\tKeyRegex:   pulumi.StringRef(\"sample/sample_object.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstObjectKey\", bucketObjectsDs.Objects[0].Key)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oss.OssFunctions;\nimport com.pulumi.alicloud.oss.inputs.GetBucketObjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var bucketObjectsDs = OssFunctions.getBucketObjects(GetBucketObjectsArgs.builder()\n            .bucketName(\"sample_bucket\")\n            .keyRegex(\"sample/sample_object.txt\")\n            .build());\n\n        ctx.export(\"firstObjectKey\", bucketObjectsDs.objects()[0].key());\n    }\n}\n```\n```yaml\nvariables:\n  bucketObjectsDs:\n    fn::invoke:\n      function: alicloud:oss:getBucketObjects\n      arguments:\n        bucketName: sample_bucket\n        keyRegex: sample/sample_object.txt\noutputs:\n  firstObjectKey: ${bucketObjectsDs.objects[0].key}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBucketObjects.\n","properties":{"bucketName":{"type":"string","description":"Name of the bucket that contains the objects to find.\n"},"keyPrefix":{"type":"string","description":"Filter results by the given key prefix (such as \"path/to/folder/logs-\").\n"},"keyRegex":{"type":"string","description":"A regex string to filter results by key.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["bucketName"]},"outputs":{"description":"A collection of values returned by getBucketObjects.\n","properties":{"bucketName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"keyPrefix":{"type":"string"},"keyRegex":{"type":"string"},"objects":{"description":"A list of bucket objects. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:oss/getBucketObjectsObject:getBucketObjectsObject"},"type":"array"},"outputFile":{"type":"string"}},"required":["bucketName","objects","id"],"type":"object"}},"alicloud:oss/getBuckets:getBuckets":{"description":"This data source provides the OSS buckets of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.17.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst _default = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst bucket = new alicloud.oss.Bucket(\"bucket\", {bucket: `oss-tf-example-${_default.result}`});\nconst ossBucketsDs = alicloud.oss.getBucketsOutput({\n    nameRegex: bucket.bucket,\n});\nexport const firstOssBucketName = ossBucketsDs.apply(ossBucketsDs =\u003e ossBucketsDs.buckets?.[0]?.name);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nbucket = alicloud.oss.Bucket(\"bucket\", bucket=f\"oss-tf-example-{default['result']}\")\noss_buckets_ds = alicloud.oss.get_buckets_output(name_regex=bucket.bucket)\npulumi.export(\"firstOssBucketName\", oss_buckets_ds.buckets[0].name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var bucket = new AliCloud.Oss.Bucket(\"bucket\", new()\n    {\n        BucketName = $\"oss-tf-example-{@default.Result}\",\n    });\n\n    var ossBucketsDs = AliCloud.Oss.GetBuckets.Invoke(new()\n    {\n        NameRegex = bucket.BucketName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstOssBucketName\"] = ossBucketsDs.Apply(getBucketsResult =\u003e getBucketsResult.Buckets[0]?.Name),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMax: 99999,\n\t\t\tMin: 10000,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := oss.NewBucket(ctx, \"bucket\", \u0026oss.BucketArgs{\n\t\t\tBucket: pulumi.Sprintf(\"oss-tf-example-%v\", _default.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tossBucketsDs := oss.GetBucketsOutput(ctx, oss.GetBucketsOutputArgs{\n\t\t\tNameRegex: bucket.Bucket,\n\t\t}, nil)\n\t\tctx.Export(\"firstOssBucketName\", ossBucketsDs.ApplyT(func(ossBucketsDs oss.GetBucketsResult) (*string, error) {\n\t\t\treturn \u0026ossBucketsDs.Buckets[0].Name, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.oss.Bucket;\nimport com.pulumi.alicloud.oss.BucketArgs;\nimport com.pulumi.alicloud.oss.OssFunctions;\nimport com.pulumi.alicloud.oss.inputs.GetBucketsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n            .bucket(String.format(\"oss-tf-example-%s\", default_.result()))\n            .build());\n\n        final var ossBucketsDs = OssFunctions.getBuckets(GetBucketsArgs.builder()\n            .nameRegex(bucket.bucket())\n            .build());\n\n        ctx.export(\"firstOssBucketName\", ossBucketsDs.applyValue(_ossBucketsDs -\u003e _ossBucketsDs.buckets()[0].name()));\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: random:Integer\n    properties:\n      max: 99999\n      min: 10000\n  bucket:\n    type: alicloud:oss:Bucket\n    properties:\n      bucket: oss-tf-example-${default.result}\nvariables:\n  ossBucketsDs:\n    fn::invoke:\n      function: alicloud:oss:getBuckets\n      arguments:\n        nameRegex: ${bucket.bucket}\noutputs:\n  firstOssBucketName: ${ossBucketsDs.buckets[0].name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBuckets.\n","properties":{"nameRegex":{"type":"string","description":"A regex string to filter results by bucket name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBuckets.\n","properties":{"buckets":{"description":"A list of buckets. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:oss/getBucketsBucket:getBucketsBucket"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of bucket names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["buckets","names","id"],"type":"object"}},"alicloud:oss/getInstanceAttachments:getInstanceAttachments":{"deprecationMessage":"alicloud.oss.getInstanceAttachments has been deprecated in favor of alicloud.ots.getInstanceAttachments","description":"This data source provides the ots instance attachments of the current Alibaba Cloud user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst attachmentsDs = alicloud.ots.getInstanceAttachments({\n    instanceName: \"sample-instance\",\n    nameRegex: \"testvpc\",\n    outputFile: \"attachments.txt\",\n});\nexport const firstOtsAttachmentId = attachmentsDs.then(attachmentsDs =\u003e attachmentsDs.attachments?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nattachments_ds = alicloud.ots.get_instance_attachments(instance_name=\"sample-instance\",\n    name_regex=\"testvpc\",\n    output_file=\"attachments.txt\")\npulumi.export(\"firstOtsAttachmentId\", attachments_ds.attachments[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var attachmentsDs = AliCloud.Ots.GetInstanceAttachments.Invoke(new()\n    {\n        InstanceName = \"sample-instance\",\n        NameRegex = \"testvpc\",\n        OutputFile = \"attachments.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstOtsAttachmentId\"] = attachmentsDs.Apply(getInstanceAttachmentsResult =\u003e getInstanceAttachmentsResult.Attachments[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tattachmentsDs, err := ots.GetInstanceAttachments(ctx, \u0026ots.GetInstanceAttachmentsArgs{\n\t\t\tInstanceName: \"sample-instance\",\n\t\t\tNameRegex:    pulumi.StringRef(\"testvpc\"),\n\t\t\tOutputFile:   pulumi.StringRef(\"attachments.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstOtsAttachmentId\", attachmentsDs.Attachments[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ots.OtsFunctions;\nimport com.pulumi.alicloud.ots.inputs.GetInstanceAttachmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var attachmentsDs = OtsFunctions.getInstanceAttachments(GetInstanceAttachmentsArgs.builder()\n            .instanceName(\"sample-instance\")\n            .nameRegex(\"testvpc\")\n            .outputFile(\"attachments.txt\")\n            .build());\n\n        ctx.export(\"firstOtsAttachmentId\", attachmentsDs.attachments()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  attachmentsDs:\n    fn::invoke:\n      function: alicloud:ots:getInstanceAttachments\n      arguments:\n        instanceName: sample-instance\n        nameRegex: testvpc\n        outputFile: attachments.txt\noutputs:\n  firstOtsAttachmentId: ${attachmentsDs.attachments[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceAttachments.\n","properties":{"instanceName":{"type":"string","description":"The name of OTS instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by vpc name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceName"]},"outputs":{"description":"A collection of values returned by getInstanceAttachments.\n","properties":{"attachments":{"description":"A list of instance attachments. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:oss/getInstanceAttachmentsAttachment:getInstanceAttachmentsAttachment"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceName":{"description":"The instance name.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of vpc names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"vpcIds":{"description":"A list of vpc ids.\n","items":{"type":"string"},"type":"array"}},"required":["attachments","instanceName","names","vpcIds","id"],"type":"object"}},"alicloud:oss/getInstances:getInstances":{"deprecationMessage":"alicloud.oss.getInstances has been deprecated in favor of alicloud.ots.getInstances","description":"This data source provides the ots instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.40.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst instancesDs = alicloud.ots.getInstances({\n    outputFile: \"instances.txt\",\n});\nexport const firstInstanceId = instancesDs.then(instancesDs =\u003e instancesDs.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ninstances_ds = alicloud.ots.get_instances(output_file=\"instances.txt\")\npulumi.export(\"firstInstanceId\", instances_ds.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var instancesDs = AliCloud.Ots.GetInstances.Invoke(new()\n    {\n        OutputFile = \"instances.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstInstanceId\"] = instancesDs.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstancesDs, err := ots.GetInstances(ctx, \u0026ots.GetInstancesArgs{\n\t\t\tOutputFile: pulumi.StringRef(\"instances.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstInstanceId\", instancesDs.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ots.OtsFunctions;\nimport com.pulumi.alicloud.ots.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var instancesDs = OtsFunctions.getInstances(GetInstancesArgs.builder()\n            .outputFile(\"instances.txt\")\n            .build());\n\n        ctx.export(\"firstInstanceId\", instancesDs.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  instancesDs:\n    fn::invoke:\n      function: alicloud:ots:getInstances\n      arguments:\n        outputFile: instances.txt\noutputs:\n  firstInstanceId: ${instancesDs.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of instance IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the instance. It must be in the format:\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst instancesDs = alicloud.ots.getInstances({\n    tags: {\n        tagKey1: \"tagValue1\",\n        tagKey2: \"tagValue2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ninstances_ds = alicloud.ots.get_instances(tags={\n    \"tagKey1\": \"tagValue1\",\n    \"tagKey2\": \"tagValue2\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var instancesDs = AliCloud.Ots.GetInstances.Invoke(new()\n    {\n        Tags = \n        {\n            { \"tagKey1\", \"tagValue1\" },\n            { \"tagKey2\", \"tagValue2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ots.GetInstances(ctx, \u0026ots.GetInstancesArgs{\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"tagKey1\": \"tagValue1\",\n\t\t\t\t\"tagKey2\": \"tagValue2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ots.OtsFunctions;\nimport com.pulumi.alicloud.ots.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var instancesDs = OtsFunctions.getInstances(GetInstancesArgs.builder()\n            .tags(Map.ofEntries(\n                Map.entry(\"tagKey1\", \"tagValue1\"),\n                Map.entry(\"tagKey2\", \"tagValue2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  instancesDs:\n    fn::invoke:\n      function: alicloud:ots:getInstances\n      arguments:\n        tags:\n          tagKey1: tagValue1\n          tagKey2: tagValue2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of instance IDs.\n","items":{"type":"string"},"type":"array"},"instances":{"description":"A list of instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:oss/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of instance names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of the instance.\n","type":"object"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:oss/getService:getService":{"description":"Using this data source can enable OSS service automatically. If the service has been enabled, it will return `Opened`.\n\nFor information about OSS and how to use it, see [What is OSS](https://www.alibabacloud.com/help/product/31815.htm).\n\n\u003e **NOTE:** Available in v1.97.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.oss.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.oss.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Oss.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := oss.GetService(ctx, \u0026oss.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.oss.OssFunctions;\nimport com.pulumi.alicloud.oss.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = OssFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:oss:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: \"On\" or \"Off\". Default to \"Off\".\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the OSS service that means you have read and agreed the [OSS Terms of Service](https://help.aliyun.com/document_detail/31821.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:oss/getTables:getTables":{"deprecationMessage":"alicloud.oss.getTables has been deprecated in favor of alicloud.ots.getTables","description":"This data source provides the ots tables of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.40.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst tablesDs = alicloud.ots.getTables({\n    instanceName: \"sample-instance\",\n    nameRegex: \"sample-table\",\n    outputFile: \"tables.txt\",\n});\nexport const firstTableId = tablesDs.then(tablesDs =\u003e tablesDs.tables?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ntables_ds = alicloud.ots.get_tables(instance_name=\"sample-instance\",\n    name_regex=\"sample-table\",\n    output_file=\"tables.txt\")\npulumi.export(\"firstTableId\", tables_ds.tables[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var tablesDs = AliCloud.Ots.GetTables.Invoke(new()\n    {\n        InstanceName = \"sample-instance\",\n        NameRegex = \"sample-table\",\n        OutputFile = \"tables.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstTableId\"] = tablesDs.Apply(getTablesResult =\u003e getTablesResult.Tables[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttablesDs, err := ots.GetTables(ctx, \u0026ots.GetTablesArgs{\n\t\t\tInstanceName: \"sample-instance\",\n\t\t\tNameRegex:    pulumi.StringRef(\"sample-table\"),\n\t\t\tOutputFile:   pulumi.StringRef(\"tables.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstTableId\", tablesDs.Tables[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ots.OtsFunctions;\nimport com.pulumi.alicloud.ots.inputs.GetTablesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var tablesDs = OtsFunctions.getTables(GetTablesArgs.builder()\n            .instanceName(\"sample-instance\")\n            .nameRegex(\"sample-table\")\n            .outputFile(\"tables.txt\")\n            .build());\n\n        ctx.export(\"firstTableId\", tablesDs.tables()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  tablesDs:\n    fn::invoke:\n      function: alicloud:ots:getTables\n      arguments:\n        instanceName: sample-instance\n        nameRegex: sample-table\n        outputFile: tables.txt\noutputs:\n  firstTableId: ${tablesDs.tables[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTables.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of table IDs.\n"},"instanceName":{"type":"string","description":"The name of OTS instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by table name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceName"]},"outputs":{"description":"A collection of values returned by getTables.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of table IDs.\n","items":{"type":"string"},"type":"array"},"instanceName":{"description":"The OTS instance name.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of table names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"tables":{"description":"A list of tables. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:oss/getTablesTable:getTablesTable"},"type":"array"}},"required":["ids","instanceName","names","tables","id"],"type":"object"}},"alicloud:ots/getInstanceAttachments:getInstanceAttachments":{"description":"This data source provides the ots instance attachments of the current Alibaba Cloud user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst attachmentsDs = alicloud.ots.getInstanceAttachments({\n    instanceName: \"sample-instance\",\n    nameRegex: \"testvpc\",\n    outputFile: \"attachments.txt\",\n});\nexport const firstOtsAttachmentId = attachmentsDs.then(attachmentsDs =\u003e attachmentsDs.attachments?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nattachments_ds = alicloud.ots.get_instance_attachments(instance_name=\"sample-instance\",\n    name_regex=\"testvpc\",\n    output_file=\"attachments.txt\")\npulumi.export(\"firstOtsAttachmentId\", attachments_ds.attachments[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var attachmentsDs = AliCloud.Ots.GetInstanceAttachments.Invoke(new()\n    {\n        InstanceName = \"sample-instance\",\n        NameRegex = \"testvpc\",\n        OutputFile = \"attachments.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstOtsAttachmentId\"] = attachmentsDs.Apply(getInstanceAttachmentsResult =\u003e getInstanceAttachmentsResult.Attachments[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tattachmentsDs, err := ots.GetInstanceAttachments(ctx, \u0026ots.GetInstanceAttachmentsArgs{\n\t\t\tInstanceName: \"sample-instance\",\n\t\t\tNameRegex:    pulumi.StringRef(\"testvpc\"),\n\t\t\tOutputFile:   pulumi.StringRef(\"attachments.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstOtsAttachmentId\", attachmentsDs.Attachments[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ots.OtsFunctions;\nimport com.pulumi.alicloud.ots.inputs.GetInstanceAttachmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var attachmentsDs = OtsFunctions.getInstanceAttachments(GetInstanceAttachmentsArgs.builder()\n            .instanceName(\"sample-instance\")\n            .nameRegex(\"testvpc\")\n            .outputFile(\"attachments.txt\")\n            .build());\n\n        ctx.export(\"firstOtsAttachmentId\", attachmentsDs.attachments()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  attachmentsDs:\n    fn::invoke:\n      function: alicloud:ots:getInstanceAttachments\n      arguments:\n        instanceName: sample-instance\n        nameRegex: testvpc\n        outputFile: attachments.txt\noutputs:\n  firstOtsAttachmentId: ${attachmentsDs.attachments[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceAttachments.\n","properties":{"instanceName":{"type":"string","description":"The name of OTS instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by vpc name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceName"]},"outputs":{"description":"A collection of values returned by getInstanceAttachments.\n","properties":{"attachments":{"description":"A list of instance attachments. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ots/getInstanceAttachmentsAttachment:getInstanceAttachmentsAttachment"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceName":{"description":"The instance name.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of vpc names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"vpcIds":{"description":"A list of vpc ids.\n","items":{"type":"string"},"type":"array"}},"required":["attachments","instanceName","names","vpcIds","id"],"type":"object"}},"alicloud:ots/getInstances:getInstances":{"description":"This data source provides the ots instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.40.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst instancesDs = alicloud.ots.getInstances({\n    outputFile: \"instances.txt\",\n});\nexport const firstInstanceId = instancesDs.then(instancesDs =\u003e instancesDs.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ninstances_ds = alicloud.ots.get_instances(output_file=\"instances.txt\")\npulumi.export(\"firstInstanceId\", instances_ds.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var instancesDs = AliCloud.Ots.GetInstances.Invoke(new()\n    {\n        OutputFile = \"instances.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstInstanceId\"] = instancesDs.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstancesDs, err := ots.GetInstances(ctx, \u0026ots.GetInstancesArgs{\n\t\t\tOutputFile: pulumi.StringRef(\"instances.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstInstanceId\", instancesDs.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ots.OtsFunctions;\nimport com.pulumi.alicloud.ots.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var instancesDs = OtsFunctions.getInstances(GetInstancesArgs.builder()\n            .outputFile(\"instances.txt\")\n            .build());\n\n        ctx.export(\"firstInstanceId\", instancesDs.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  instancesDs:\n    fn::invoke:\n      function: alicloud:ots:getInstances\n      arguments:\n        outputFile: instances.txt\noutputs:\n  firstInstanceId: ${instancesDs.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of instance IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the instance. It must be in the format:\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst instancesDs = alicloud.ots.getInstances({\n    tags: {\n        tagKey1: \"tagValue1\",\n        tagKey2: \"tagValue2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ninstances_ds = alicloud.ots.get_instances(tags={\n    \"tagKey1\": \"tagValue1\",\n    \"tagKey2\": \"tagValue2\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var instancesDs = AliCloud.Ots.GetInstances.Invoke(new()\n    {\n        Tags = \n        {\n            { \"tagKey1\", \"tagValue1\" },\n            { \"tagKey2\", \"tagValue2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ots.GetInstances(ctx, \u0026ots.GetInstancesArgs{\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"tagKey1\": \"tagValue1\",\n\t\t\t\t\"tagKey2\": \"tagValue2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ots.OtsFunctions;\nimport com.pulumi.alicloud.ots.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var instancesDs = OtsFunctions.getInstances(GetInstancesArgs.builder()\n            .tags(Map.ofEntries(\n                Map.entry(\"tagKey1\", \"tagValue1\"),\n                Map.entry(\"tagKey2\", \"tagValue2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  instancesDs:\n    fn::invoke:\n      function: alicloud:ots:getInstances\n      arguments:\n        tags:\n          tagKey1: tagValue1\n          tagKey2: tagValue2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of instance IDs.\n","items":{"type":"string"},"type":"array"},"instances":{"description":"A list of instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ots/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of instance names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of the instance.\n","type":"object"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:ots/getSearchIndexes:getSearchIndexes":{"description":"This data source provides the ots search index of the current Alibaba Cloud user.\n\nFor information about OTS search index and how to use it, see [Search index overview](https://www.alibabacloud.com/help/en/tablestore/latest/search-index-overview).\n\n\u003e **NOTE:** Available in v1.187.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst searchIndexDs = alicloud.ots.getSearchIndexes({\n    instanceName: \"sample-instance\",\n    tableName: \"sample-table\",\n    nameRegex: \"sample-search-index\",\n    outputFile: \"search-indexs.txt\",\n});\nexport const firstSearchIndexId = searchIndexDs.then(searchIndexDs =\u003e searchIndexDs.indexs[0].id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nsearch_index_ds = alicloud.ots.get_search_indexes(instance_name=\"sample-instance\",\n    table_name=\"sample-table\",\n    name_regex=\"sample-search-index\",\n    output_file=\"search-indexs.txt\")\npulumi.export(\"firstSearchIndexId\", search_index_ds.indexs[0][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var searchIndexDs = AliCloud.Ots.GetSearchIndexes.Invoke(new()\n    {\n        InstanceName = \"sample-instance\",\n        TableName = \"sample-table\",\n        NameRegex = \"sample-search-index\",\n        OutputFile = \"search-indexs.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstSearchIndexId\"] = searchIndexDs.Apply(getSearchIndexesResult =\u003e getSearchIndexesResult.Indexs[0].Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsearchIndexDs, err := ots.GetSearchIndexes(ctx, \u0026ots.GetSearchIndexesArgs{\n\t\t\tInstanceName: \"sample-instance\",\n\t\t\tTableName:    \"sample-table\",\n\t\t\tNameRegex:    pulumi.StringRef(\"sample-search-index\"),\n\t\t\tOutputFile:   pulumi.StringRef(\"search-indexs.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstSearchIndexId\", searchIndexDs.Indexs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ots.OtsFunctions;\nimport com.pulumi.alicloud.ots.inputs.GetSearchIndexesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var searchIndexDs = OtsFunctions.getSearchIndexes(GetSearchIndexesArgs.builder()\n            .instanceName(\"sample-instance\")\n            .tableName(\"sample-table\")\n            .nameRegex(\"sample-search-index\")\n            .outputFile(\"search-indexs.txt\")\n            .build());\n\n        ctx.export(\"firstSearchIndexId\", searchIndexDs.indexs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  searchIndexDs:\n    fn::invoke:\n      function: alicloud:ots:getSearchIndexes\n      arguments:\n        instanceName: sample-instance\n        tableName: sample-table\n        nameRegex: sample-search-index\n        outputFile: search-indexs.txt\noutputs:\n  firstSearchIndexId: ${searchIndexDs.indexs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSearchIndexes.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of search index IDs.\n"},"instanceName":{"type":"string","description":"The name of OTS instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by search index name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"tableName":{"type":"string","description":"The name of OTS table.\n"}},"type":"object","required":["instanceName","tableName"]},"outputs":{"description":"A collection of values returned by getSearchIndexes.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of search index IDs.\n","items":{"type":"string"},"type":"array"},"indexes":{"description":"A list of indexes. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ots/getSearchIndexesIndex:getSearchIndexesIndex"},"type":"array"},"instanceName":{"description":"The OTS instance name.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of search index  names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"tableName":{"description":"The table name of the OTS which could not be changed.\n","type":"string"}},"required":["ids","indexes","instanceName","names","tableName","id"],"type":"object"}},"alicloud:ots/getSecondaryIndexes:getSecondaryIndexes":{"description":"This data source provides the ots secondary index of the current Alibaba Cloud user.\n\nFor information about OTS secondary index and how to use it, see [Secondary index overview](https://www.alibabacloud.com/help/en/tablestore/latest/secondary-index-overview).\n\n\u003e **NOTE:** Available in v1.187.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst secondaryIndexDs = alicloud.ots.getSecondaryIndexes({\n    instanceName: \"sample-instance\",\n    tableName: \"sample-table\",\n    nameRegex: \"sample-secondary-index\",\n    outputFile: \"secondary-indexs.txt\",\n});\nexport const firstSecondaryIndexId = secondaryIndexDs.then(secondaryIndexDs =\u003e secondaryIndexDs.indexs[0].id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nsecondary_index_ds = alicloud.ots.get_secondary_indexes(instance_name=\"sample-instance\",\n    table_name=\"sample-table\",\n    name_regex=\"sample-secondary-index\",\n    output_file=\"secondary-indexs.txt\")\npulumi.export(\"firstSecondaryIndexId\", secondary_index_ds.indexs[0][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var secondaryIndexDs = AliCloud.Ots.GetSecondaryIndexes.Invoke(new()\n    {\n        InstanceName = \"sample-instance\",\n        TableName = \"sample-table\",\n        NameRegex = \"sample-secondary-index\",\n        OutputFile = \"secondary-indexs.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstSecondaryIndexId\"] = secondaryIndexDs.Apply(getSecondaryIndexesResult =\u003e getSecondaryIndexesResult.Indexs[0].Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsecondaryIndexDs, err := ots.GetSecondaryIndexes(ctx, \u0026ots.GetSecondaryIndexesArgs{\n\t\t\tInstanceName: \"sample-instance\",\n\t\t\tTableName:    \"sample-table\",\n\t\t\tNameRegex:    pulumi.StringRef(\"sample-secondary-index\"),\n\t\t\tOutputFile:   pulumi.StringRef(\"secondary-indexs.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstSecondaryIndexId\", secondaryIndexDs.Indexs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ots.OtsFunctions;\nimport com.pulumi.alicloud.ots.inputs.GetSecondaryIndexesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var secondaryIndexDs = OtsFunctions.getSecondaryIndexes(GetSecondaryIndexesArgs.builder()\n            .instanceName(\"sample-instance\")\n            .tableName(\"sample-table\")\n            .nameRegex(\"sample-secondary-index\")\n            .outputFile(\"secondary-indexs.txt\")\n            .build());\n\n        ctx.export(\"firstSecondaryIndexId\", secondaryIndexDs.indexs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  secondaryIndexDs:\n    fn::invoke:\n      function: alicloud:ots:getSecondaryIndexes\n      arguments:\n        instanceName: sample-instance\n        tableName: sample-table\n        nameRegex: sample-secondary-index\n        outputFile: secondary-indexs.txt\noutputs:\n  firstSecondaryIndexId: ${secondaryIndexDs.indexs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSecondaryIndexes.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of secondary index IDs.\n"},"instanceName":{"type":"string","description":"The name of OTS instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by secondary index name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"tableName":{"type":"string","description":"The name of OTS table.\n"}},"type":"object","required":["instanceName","tableName"]},"outputs":{"description":"A collection of values returned by getSecondaryIndexes.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of secondary index IDs.\n","items":{"type":"string"},"type":"array"},"indexes":{"description":"A list of indexes. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ots/getSecondaryIndexesIndex:getSecondaryIndexesIndex"},"type":"array"},"instanceName":{"description":"The OTS instance name.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of secondary index  names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"tableName":{"description":"The table name of the OTS which could not be changed.\n","type":"string"}},"required":["ids","indexes","instanceName","names","tableName","id"],"type":"object"}},"alicloud:ots/getService:getService":{"description":"Using this data source can enable Table Staore service automatically. If the service has been enabled, it will return `Opened`.\n\nFor information about Table Staore and how to use it, see [What is Table Staore](https://www.alibabacloud.com/help/product/27278.htm).\n\n\u003e **NOTE:** Available in v1.97.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.ots.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.ots.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Ots.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ots.GetService(ctx, \u0026ots.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ots.OtsFunctions;\nimport com.pulumi.alicloud.ots.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = OtsFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:ots:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: \"On\" or \"Off\". Default to \"Off\".\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the Table Staore service that means you have read and agreed the [Table Staore Terms of Service](https://help.aliyun.com/document_detail/34908.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:ots/getTables:getTables":{"description":"This data source provides the ots tables of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.40.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst tablesDs = alicloud.ots.getTables({\n    instanceName: \"sample-instance\",\n    nameRegex: \"sample-table\",\n    outputFile: \"tables.txt\",\n});\nexport const firstTableId = tablesDs.then(tablesDs =\u003e tablesDs.tables?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ntables_ds = alicloud.ots.get_tables(instance_name=\"sample-instance\",\n    name_regex=\"sample-table\",\n    output_file=\"tables.txt\")\npulumi.export(\"firstTableId\", tables_ds.tables[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var tablesDs = AliCloud.Ots.GetTables.Invoke(new()\n    {\n        InstanceName = \"sample-instance\",\n        NameRegex = \"sample-table\",\n        OutputFile = \"tables.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstTableId\"] = tablesDs.Apply(getTablesResult =\u003e getTablesResult.Tables[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttablesDs, err := ots.GetTables(ctx, \u0026ots.GetTablesArgs{\n\t\t\tInstanceName: \"sample-instance\",\n\t\t\tNameRegex:    pulumi.StringRef(\"sample-table\"),\n\t\t\tOutputFile:   pulumi.StringRef(\"tables.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstTableId\", tablesDs.Tables[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ots.OtsFunctions;\nimport com.pulumi.alicloud.ots.inputs.GetTablesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var tablesDs = OtsFunctions.getTables(GetTablesArgs.builder()\n            .instanceName(\"sample-instance\")\n            .nameRegex(\"sample-table\")\n            .outputFile(\"tables.txt\")\n            .build());\n\n        ctx.export(\"firstTableId\", tablesDs.tables()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  tablesDs:\n    fn::invoke:\n      function: alicloud:ots:getTables\n      arguments:\n        instanceName: sample-instance\n        nameRegex: sample-table\n        outputFile: tables.txt\noutputs:\n  firstTableId: ${tablesDs.tables[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTables.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of table IDs.\n"},"instanceName":{"type":"string","description":"The name of OTS instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by table name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceName"]},"outputs":{"description":"A collection of values returned by getTables.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of table IDs.\n","items":{"type":"string"},"type":"array"},"instanceName":{"description":"The OTS instance name.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of table names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"tables":{"description":"A list of tables. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ots/getTablesTable:getTablesTable"},"type":"array"}},"required":["ids","instanceName","names","tables","id"],"type":"object"}},"alicloud:ots/getTunnels:getTunnels":{"description":"This data source provides the ots tunnels of the current Alibaba Cloud user.\n\nFor information about OTS tunnel and how to use it, see [Tunnel overview](https://www.alibabacloud.com/help/en/tablestore/latest/tunnel-service-overview).\n\n\u003e **NOTE:** Available in v1.172.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst tunnelsDs = alicloud.ots.getTunnels({\n    instanceName: \"sample-instance\",\n    tableName: \"sample-table\",\n    nameRegex: \"sample-tunnel\",\n    outputFile: \"tunnels.txt\",\n});\nexport const firstTunnelId = tunnelsDs.then(tunnelsDs =\u003e tunnelsDs.tunnels?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ntunnels_ds = alicloud.ots.get_tunnels(instance_name=\"sample-instance\",\n    table_name=\"sample-table\",\n    name_regex=\"sample-tunnel\",\n    output_file=\"tunnels.txt\")\npulumi.export(\"firstTunnelId\", tunnels_ds.tunnels[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var tunnelsDs = AliCloud.Ots.GetTunnels.Invoke(new()\n    {\n        InstanceName = \"sample-instance\",\n        TableName = \"sample-table\",\n        NameRegex = \"sample-tunnel\",\n        OutputFile = \"tunnels.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstTunnelId\"] = tunnelsDs.Apply(getTunnelsResult =\u003e getTunnelsResult.Tunnels[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ots\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttunnelsDs, err := ots.GetTunnels(ctx, \u0026ots.GetTunnelsArgs{\n\t\t\tInstanceName: \"sample-instance\",\n\t\t\tTableName:    \"sample-table\",\n\t\t\tNameRegex:    pulumi.StringRef(\"sample-tunnel\"),\n\t\t\tOutputFile:   pulumi.StringRef(\"tunnels.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstTunnelId\", tunnelsDs.Tunnels[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ots.OtsFunctions;\nimport com.pulumi.alicloud.ots.inputs.GetTunnelsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var tunnelsDs = OtsFunctions.getTunnels(GetTunnelsArgs.builder()\n            .instanceName(\"sample-instance\")\n            .tableName(\"sample-table\")\n            .nameRegex(\"sample-tunnel\")\n            .outputFile(\"tunnels.txt\")\n            .build());\n\n        ctx.export(\"firstTunnelId\", tunnelsDs.tunnels()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  tunnelsDs:\n    fn::invoke:\n      function: alicloud:ots:getTunnels\n      arguments:\n        instanceName: sample-instance\n        tableName: sample-table\n        nameRegex: sample-tunnel\n        outputFile: tunnels.txt\noutputs:\n  firstTunnelId: ${tunnelsDs.tunnels[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTunnels.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of tunnel IDs.\n"},"instanceName":{"type":"string","description":"The name of OTS instance.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by tunnel name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"tableName":{"type":"string","description":"The name of OTS table.\n"}},"type":"object","required":["instanceName","tableName"]},"outputs":{"description":"A collection of values returned by getTunnels.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of tunnel IDs.\n","items":{"type":"string"},"type":"array"},"instanceName":{"description":"The OTS instance name.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of tunnel names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"tableName":{"description":"The table name of the OTS which could not be changed.\n","type":"string"},"tunnels":{"description":"A list of tunnels. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ots/getTunnelsTunnel:getTunnelsTunnel"},"type":"array"}},"required":["ids","instanceName","names","tableName","tunnels","id"],"type":"object"}},"alicloud:polardb/getAccounts:getAccounts":{"description":"The \u003cspan pulumi-lang-nodejs=\"`alicloud.polardb.getAccounts`\" pulumi-lang-dotnet=\"`alicloud.polardb.getAccounts`\" pulumi-lang-go=\"`polardb.getAccounts`\" pulumi-lang-python=\"`polardb_get_accounts`\" pulumi-lang-yaml=\"`alicloud.polardb.getAccounts`\" pulumi-lang-java=\"`alicloud.polardb.getAccounts`\"\u003e`alicloud.polardb.getAccounts`\u003c/span\u003e data source provides a collection of PolarDB cluster database account available in Alibaba Cloud account.\nFilters support regular expression for the account name, searches by clusterId.\n\n\u003e **NOTE:** Available since v1.70.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nexport = async () =\u003e {\n    const _this = await alicloud.polardb.getNodeClasses({\n        dbType: \"MySQL\",\n        dbVersion: \"8.0\",\n        payType: \"PostPaid\",\n        category: \"Normal\",\n    });\n    const defaultNetwork = new alicloud.vpc.Network(\"default\", {\n        vpcName: \"terraform-example\",\n        cidrBlock: \"172.16.0.0/16\",\n    });\n    const defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n        vpcId: defaultNetwork.id,\n        cidrBlock: \"172.16.0.0/24\",\n        zoneId: _this.classes?.[0]?.zoneId,\n        vswitchName: \"terraform-example\",\n    });\n    const cluster = new alicloud.polardb.Cluster(\"cluster\", {\n        dbType: \"MySQL\",\n        dbVersion: \"8.0\",\n        payType: \"PostPaid\",\n        dbNodeCount: 2,\n        dbNodeClass: _this.classes?.[0]?.supportedEngines?.[0]?.availableResources?.[0]?.dbNodeClass,\n        vswitchId: defaultSwitch.id,\n    });\n    const polardbClustersDs = alicloud.polardb.getClustersOutput({\n        descriptionRegex: cluster.description,\n        status: \"Running\",\n    });\n    const account = new alicloud.polardb.Account(\"account\", {\n        dbClusterId: polardbClustersDs.apply(polardbClustersDs =\u003e polardbClustersDs.clusters?.[0]?.id),\n        accountName: \"tfnormal_01\",\n        accountPassword: \"Test12345\",\n        accountDescription: \"tf_account_description\",\n        accountType: \"Normal\",\n    });\n    const _default = pulumi.all([polardbClustersDs, account.accountName]).apply(([polardbClustersDs, accountName]) =\u003e alicloud.polardb.getAccountsOutput({\n        dbClusterId: polardbClustersDs.clusters?.[0]?.id,\n        nameRegex: accountName,\n    }));\n    return {\n        account: _default.apply(_default =\u003e _default.accounts?.[0]?.accountName),\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nthis = alicloud.polardb.get_node_classes(db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    category=\"Normal\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=this.classes[0].zone_id,\n    vswitch_name=\"terraform-example\")\ncluster = alicloud.polardb.Cluster(\"cluster\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    db_node_count=2,\n    db_node_class=this.classes[0].supported_engines[0].available_resources[0].db_node_class,\n    vswitch_id=default_switch.id)\npolardb_clusters_ds = alicloud.polardb.get_clusters_output(description_regex=cluster.description,\n    status=\"Running\")\naccount = alicloud.polardb.Account(\"account\",\n    db_cluster_id=polardb_clusters_ds.clusters[0].id,\n    account_name=\"tfnormal_01\",\n    account_password=\"Test12345\",\n    account_description=\"tf_account_description\",\n    account_type=\"Normal\")\ndefault = pulumi.Output.all(\n    polardb_clusters_ds=polardb_clusters_ds,\n    account_name=account.account_name\n).apply(lambda resolved_outputs: alicloud.polardb.get_accounts_output(db_cluster_id=polardb_clusters_ds.clusters[0].id,\n    name_regex=resolved_outputs['account_name']))\n\npulumi.export(\"account\", default.accounts[0].account_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        Category = \"Normal\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @this.Apply(@this =\u003e @this.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var cluster = new AliCloud.PolarDB.Cluster(\"cluster\", new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        DbNodeCount = 2,\n        DbNodeClass = @this.Apply(@this =\u003e @this.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.SupportedEngines[0]?.AvailableResources[0]?.DbNodeClass)),\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var polardbClustersDs = AliCloud.PolarDB.GetClusters.Invoke(new()\n    {\n        DescriptionRegex = cluster.Description,\n        Status = \"Running\",\n    });\n\n    var account = new AliCloud.PolarDB.Account(\"account\", new()\n    {\n        DbClusterId = polardbClustersDs.Apply(getClustersResult =\u003e getClustersResult.Clusters[0]?.Id),\n        AccountName = \"tfnormal_01\",\n        AccountPassword = \"Test12345\",\n        AccountDescription = \"tf_account_description\",\n        AccountType = \"Normal\",\n    });\n\n    var @default = AliCloud.PolarDB.GetAccounts.Invoke(new()\n    {\n        DbClusterId = polardbClustersDs.Apply(getClustersResult =\u003e getClustersResult.Clusters[0]?.Id),\n        NameRegex = account.AccountName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"account\"] = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Accounts[0]?.AccountName)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nthis, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\nDbType: pulumi.StringRef(\"MySQL\"),\nDbVersion: pulumi.StringRef(\"8.0\"),\nPayType: \"PostPaid\",\nCategory: pulumi.StringRef(\"Normal\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(\"terraform-example\"),\nCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"172.16.0.0/24\"),\nZoneId: pulumi.String(this.Classes[0].ZoneId),\nVswitchName: pulumi.String(\"terraform-example\"),\n})\nif err != nil {\nreturn err\n}\ncluster, err := polardb.NewCluster(ctx, \"cluster\", \u0026polardb.ClusterArgs{\nDbType: pulumi.String(\"MySQL\"),\nDbVersion: pulumi.String(\"8.0\"),\nPayType: pulumi.String(\"PostPaid\"),\nDbNodeCount: pulumi.Int(2),\nDbNodeClass: pulumi.String(this.Classes[0].SupportedEngines[0].AvailableResources[0].DbNodeClass),\nVswitchId: defaultSwitch.ID(),\n})\nif err != nil {\nreturn err\n}\npolardbClustersDs := polardb.GetClustersOutput(ctx, polardb.GetClustersOutputArgs{\nDescriptionRegex: cluster.Description,\nStatus: pulumi.String(\"Running\"),\n}, nil);\naccount, err := polardb.NewAccount(ctx, \"account\", \u0026polardb.AccountArgs{\nDbClusterId: pulumi.String(polardbClustersDs.ApplyT(func(polardbClustersDs polardb.GetClustersResult) (*string, error) {\nreturn \u0026polardbClustersDs.Clusters[0].Id, nil\n}).(pulumi.StringPtrOutput)),\nAccountName: pulumi.String(\"tfnormal_01\"),\nAccountPassword: pulumi.String(\"Test12345\"),\nAccountDescription: pulumi.String(\"tf_account_description\"),\nAccountType: pulumi.String(\"Normal\"),\n})\nif err != nil {\nreturn err\n}\n_default := pulumi.All(polardbClustersDs,account.AccountName).ApplyT(func(_args []interface{}) (polardb.GetAccountsResult, error) {\npolardbClustersDs := _args[0].(polardb.GetClustersResult)\naccountName := _args[1].(string)\nreturn polardb.GetAccountsResult(interface{}(polardb.GetAccounts(ctx, \u0026polardb.GetAccountsArgs{\nDbClusterId: polardbClustersDs.Clusters[0].Id,\nNameRegex: pulumi.StringRef(pulumi.StringRef(accountName)),\n}, nil))), nil\n}).(polardb.GetAccountsResultOutput)\nctx.Export(\"account\", _default.ApplyT(func(_default polardb.GetAccountsResult) (*string, error) {\nreturn \u0026default.Accounts[0].AccountName, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.inputs.GetClustersArgs;\nimport com.pulumi.alicloud.polardb.Account;\nimport com.pulumi.alicloud.polardb.AccountArgs;\nimport com.pulumi.alicloud.polardb.inputs.GetAccountsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var this = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .category(\"Normal\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(this_.classes()[0].zoneId())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .dbNodeCount(2)\n            .dbNodeClass(this_.classes()[0].supportedEngines()[0].availableResources()[0].dbNodeClass())\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        final var polardbClustersDs = PolardbFunctions.getClusters(GetClustersArgs.builder()\n            .descriptionRegex(cluster.description())\n            .status(\"Running\")\n            .build());\n\n        var account = new Account(\"account\", AccountArgs.builder()\n            .dbClusterId(polardbClustersDs.applyValue(_polardbClustersDs -\u003e _polardbClustersDs.clusters()[0].id()))\n            .accountName(\"tfnormal_01\")\n            .accountPassword(\"Test12345\")\n            .accountDescription(\"tf_account_description\")\n            .accountType(\"Normal\")\n            .build());\n\n        final var default = Output.tuple(polardbClustersDs, account.accountName()).applyValue(values -\u003e {\n            var polardbClustersDs = values.t1;\n            var accountName = values.t2;\n            return PolardbFunctions.getAccounts(GetAccountsArgs.builder()\n                .dbClusterId(polardbClustersDs.clusters()[0].id())\n                .nameRegex(accountName)\n                .build());\n        });\n\n        ctx.export(\"account\", default_.applyValue(_default_ -\u003e _default_.accounts()[0].accountName()));\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${this.classes[0].zoneId}\n      vswitchName: terraform-example\n  cluster:\n    type: alicloud:polardb:Cluster\n    properties:\n      dbType: MySQL\n      dbVersion: '8.0'\n      payType: PostPaid\n      dbNodeCount: '2'\n      dbNodeClass: ${this.classes[0].supportedEngines[0].availableResources[0].dbNodeClass}\n      vswitchId: ${defaultSwitch.id}\n  account:\n    type: alicloud:polardb:Account\n    properties:\n      dbClusterId: ${polardbClustersDs.clusters[0].id}\n      accountName: tfnormal_01\n      accountPassword: Test12345\n      accountDescription: tf_account_description\n      accountType: Normal\nvariables:\n  this:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n        payType: PostPaid\n        category: Normal\n  polardbClustersDs:\n    fn::invoke:\n      function: alicloud:polardb:getClusters\n      arguments:\n        descriptionRegex: ${cluster.description}\n        status: Running\n  default:\n    fn::invoke:\n      function: alicloud:polardb:getAccounts\n      arguments:\n        dbClusterId: ${polardbClustersDs.clusters[0].id}\n        nameRegex: ${account.accountName}\noutputs:\n  account: ${default.accounts[0].accountName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccounts.\n","properties":{"dbClusterId":{"type":"string","description":"The polarDB cluster ID.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by account name.\n"}},"type":"object","required":["dbClusterId"]},"outputs":{"description":"A collection of values returned by getAccounts.\n","properties":{"accounts":{"description":"A list of PolarDB cluster accounts. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:polardb/getAccountsAccount:getAccountsAccount"},"type":"array"},"dbClusterId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"Account name of the cluster.\n","items":{"type":"string"},"type":"array"}},"required":["accounts","dbClusterId","names","id"],"type":"object"}},"alicloud:polardb/getClusters:getClusters":{"description":"The \u003cspan pulumi-lang-nodejs=\"`alicloud.polardb.getClusters`\" pulumi-lang-dotnet=\"`alicloud.polardb.getClusters`\" pulumi-lang-go=\"`polardb.getClusters`\" pulumi-lang-python=\"`polardb_get_clusters`\" pulumi-lang-yaml=\"`alicloud.polardb.getClusters`\" pulumi-lang-java=\"`alicloud.polardb.getClusters`\"\u003e`alicloud.polardb.getClusters`\u003c/span\u003e data source provides a collection of PolarDB clusters available in Alibaba Cloud account.\nFilters support regular expression for the cluster description, searches by tags, and other filters which are listed below.\n\n\u003e **NOTE:** Available since v1.66.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _this = alicloud.polardb.getNodeClasses({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n    category: \"Normal\",\n});\nconst _default = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: _default.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _this.then(_this =\u003e _this.classes?.[0]?.zoneId),\n    vswitchName: \"terraform-example\",\n});\nconst cluster = new alicloud.polardb.Cluster(\"cluster\", {\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n    dbNodeCount: 2,\n    dbNodeClass: _this.then(_this =\u003e _this.classes?.[0]?.supportedEngines?.[0]?.availableResources?.[0]?.dbNodeClass),\n    vswitchId: defaultSwitch.id,\n});\nconst polardbClustersDs = alicloud.polardb.getClustersOutput({\n    descriptionRegex: cluster.id,\n    status: \"Running\",\n});\nexport const firstPolardbClusterId = polardbClustersDs.apply(polardbClustersDs =\u003e polardbClustersDs.clusters?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nthis = alicloud.polardb.get_node_classes(db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    category=\"Normal\")\ndefault = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=this.classes[0].zone_id,\n    vswitch_name=\"terraform-example\")\ncluster = alicloud.polardb.Cluster(\"cluster\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    db_node_count=2,\n    db_node_class=this.classes[0].supported_engines[0].available_resources[0].db_node_class,\n    vswitch_id=default_switch.id)\npolardb_clusters_ds = alicloud.polardb.get_clusters_output(description_regex=cluster.id,\n    status=\"Running\")\npulumi.export(\"firstPolardbClusterId\", polardb_clusters_ds.clusters[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        Category = \"Normal\",\n    });\n\n    var @default = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = @default.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @this.Apply(@this =\u003e @this.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var cluster = new AliCloud.PolarDB.Cluster(\"cluster\", new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        DbNodeCount = 2,\n        DbNodeClass = @this.Apply(@this =\u003e @this.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.SupportedEngines[0]?.AvailableResources[0]?.DbNodeClass)),\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var polardbClustersDs = AliCloud.PolarDB.GetClusters.Invoke(new()\n    {\n        DescriptionRegex = cluster.Id,\n        Status = \"Running\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstPolardbClusterId\"] = polardbClustersDs.Apply(getClustersResult =\u003e getClustersResult.Clusters[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\n\t\t\tDbType:    pulumi.StringRef(\"MySQL\"),\n\t\t\tDbVersion: pulumi.StringRef(\"8.0\"),\n\t\t\tPayType:   \"PostPaid\",\n\t\t\tCategory:  pulumi.StringRef(\"Normal\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       _default.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(this.Classes[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := polardb.NewCluster(ctx, \"cluster\", \u0026polardb.ClusterArgs{\n\t\t\tDbType:      pulumi.String(\"MySQL\"),\n\t\t\tDbVersion:   pulumi.String(\"8.0\"),\n\t\t\tPayType:     pulumi.String(\"PostPaid\"),\n\t\t\tDbNodeCount: pulumi.Int(2),\n\t\t\tDbNodeClass: pulumi.String(this.Classes[0].SupportedEngines[0].AvailableResources[0].DbNodeClass),\n\t\t\tVswitchId:   defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolardbClustersDs := polardb.GetClustersOutput(ctx, polardb.GetClustersOutputArgs{\n\t\t\tDescriptionRegex: cluster.ID(),\n\t\t\tStatus:           pulumi.String(\"Running\"),\n\t\t}, nil)\n\t\tctx.Export(\"firstPolardbClusterId\", polardbClustersDs.ApplyT(func(polardbClustersDs polardb.GetClustersResult) (*string, error) {\n\t\t\treturn \u0026polardbClustersDs.Clusters[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.inputs.GetClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var this = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .category(\"Normal\")\n            .build());\n\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(default_.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(this_.classes()[0].zoneId())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .dbNodeCount(2)\n            .dbNodeClass(this_.classes()[0].supportedEngines()[0].availableResources()[0].dbNodeClass())\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        final var polardbClustersDs = PolardbFunctions.getClusters(GetClustersArgs.builder()\n            .descriptionRegex(cluster.id())\n            .status(\"Running\")\n            .build());\n\n        ctx.export(\"firstPolardbClusterId\", polardbClustersDs.applyValue(_polardbClustersDs -\u003e _polardbClustersDs.clusters()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${default.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${this.classes[0].zoneId}\n      vswitchName: terraform-example\n  cluster:\n    type: alicloud:polardb:Cluster\n    properties:\n      dbType: MySQL\n      dbVersion: '8.0'\n      payType: PostPaid\n      dbNodeCount: '2'\n      dbNodeClass: ${this.classes[0].supportedEngines[0].availableResources[0].dbNodeClass}\n      vswitchId: ${defaultSwitch.id}\nvariables:\n  this:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n        payType: PostPaid\n        category: Normal\n  polardbClustersDs:\n    fn::invoke:\n      function: alicloud:polardb:getClusters\n      arguments:\n        descriptionRegex: ${cluster.id}\n        status: Running\noutputs:\n  firstPolardbClusterId: ${polardbClustersDs.clusters[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getClusters.\n","properties":{"dbType":{"type":"string","description":"Database type. Options are `MySQL`, `Oracle` and `PostgreSQL`. If no value is specified, all types are returned.\n"},"descriptionRegex":{"type":"string","description":"A regex string to filter results by cluster description.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of PolarDB cluster IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"status of the cluster.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getClusters.\n","properties":{"clusters":{"description":"A list of PolarDB clusters. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:polardb/getClustersCluster:getClustersCluster"},"type":"array"},"dbType":{"description":"Database type. Value options: MySQL, PostgreSQL and Oracle.\n","type":"string"},"descriptionRegex":{"type":"string"},"descriptions":{"description":"A list of RDS cluster descriptions.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of RDS cluster IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"Status of the cluster.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["clusters","descriptions","ids","id"],"type":"object"}},"alicloud:polardb/getDatabases:getDatabases":{"description":"The \u003cspan pulumi-lang-nodejs=\"`alicloud.polardb.getDatabases`\" pulumi-lang-dotnet=\"`alicloud.polardb.getDatabases`\" pulumi-lang-go=\"`polardb.getDatabases`\" pulumi-lang-python=\"`polardb_get_databases`\" pulumi-lang-yaml=\"`alicloud.polardb.getDatabases`\" pulumi-lang-java=\"`alicloud.polardb.getDatabases`\"\u003e`alicloud.polardb.getDatabases`\u003c/span\u003e data source provides a collection of PolarDB cluster database available in Alibaba Cloud account.\nFilters support regular expression for the database name, searches by clusterId.\n\n\u003e **NOTE:** Available since v1.70.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _this = alicloud.polardb.getNodeClasses({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n    category: \"Normal\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _this.then(_this =\u003e _this.classes?.[0]?.zoneId),\n    vswitchName: \"terraform-example\",\n});\nconst cluster = new alicloud.polardb.Cluster(\"cluster\", {\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n    dbNodeCount: 2,\n    dbNodeClass: _this.then(_this =\u003e _this.classes?.[0]?.supportedEngines?.[0]?.availableResources?.[0]?.dbNodeClass),\n    vswitchId: defaultSwitch.id,\n});\nconst polardbClustersDs = alicloud.polardb.getClustersOutput({\n    descriptionRegex: cluster.description,\n    status: \"Running\",\n});\nconst defaultDatabase = new alicloud.polardb.Database(\"default\", {\n    dbClusterId: polardbClustersDs.apply(polardbClustersDs =\u003e polardbClustersDs.clusters?.[0]?.id),\n    dbName: polardbClustersDs.apply(polardbClustersDs =\u003e `tfaccountpri_${polardbClustersDs.clusters?.[0]?.id}`),\n    dbDescription: \"from terraform\",\n});\nconst _default = pulumi.all([polardbClustersDs, defaultDatabase.dbName]).apply(([polardbClustersDs, dbName]) =\u003e alicloud.polardb.getDatabasesOutput({\n    dbClusterId: polardbClustersDs.clusters?.[0]?.id,\n    nameRegex: dbName,\n}));\nexport const database = _default.apply(_default =\u003e _default.databases?.[0]?.dbName);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nthis = alicloud.polardb.get_node_classes(db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    category=\"Normal\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=this.classes[0].zone_id,\n    vswitch_name=\"terraform-example\")\ncluster = alicloud.polardb.Cluster(\"cluster\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    db_node_count=2,\n    db_node_class=this.classes[0].supported_engines[0].available_resources[0].db_node_class,\n    vswitch_id=default_switch.id)\npolardb_clusters_ds = alicloud.polardb.get_clusters_output(description_regex=cluster.description,\n    status=\"Running\")\ndefault_database = alicloud.polardb.Database(\"default\",\n    db_cluster_id=polardb_clusters_ds.clusters[0].id,\n    db_name=polardb_clusters_ds.apply(lambda polardb_clusters_ds: f\"tfaccountpri_{polardb_clusters_ds.clusters[0].id}\"),\n    db_description=\"from terraform\")\ndefault = pulumi.Output.all(\n    polardb_clusters_ds=polardb_clusters_ds,\n    db_name=default_database.db_name\n).apply(lambda resolved_outputs: alicloud.polardb.get_databases_output(db_cluster_id=polardb_clusters_ds.clusters[0].id,\n    name_regex=resolved_outputs['db_name']))\n\npulumi.export(\"database\", default.databases[0].db_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        Category = \"Normal\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @this.Apply(@this =\u003e @this.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var cluster = new AliCloud.PolarDB.Cluster(\"cluster\", new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        DbNodeCount = 2,\n        DbNodeClass = @this.Apply(@this =\u003e @this.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.SupportedEngines[0]?.AvailableResources[0]?.DbNodeClass)),\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var polardbClustersDs = AliCloud.PolarDB.GetClusters.Invoke(new()\n    {\n        DescriptionRegex = cluster.Description,\n        Status = \"Running\",\n    });\n\n    var defaultDatabase = new AliCloud.PolarDB.Database(\"default\", new()\n    {\n        DbClusterId = polardbClustersDs.Apply(getClustersResult =\u003e getClustersResult.Clusters[0]?.Id),\n        DbName = $\"tfaccountpri_{polardbClustersDs.Apply(getClustersResult =\u003e getClustersResult.Clusters[0]?.Id)}\",\n        DbDescription = \"from terraform\",\n    });\n\n    var @default = AliCloud.PolarDB.GetDatabases.Invoke(new()\n    {\n        DbClusterId = polardbClustersDs.Apply(getClustersResult =\u003e getClustersResult.Clusters[0]?.Id),\n        NameRegex = defaultDatabase.DbName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"database\"] = @default.Apply(@default =\u003e @default.Apply(getDatabasesResult =\u003e getDatabasesResult.Databases[0]?.DbName)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nthis, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\nDbType: pulumi.StringRef(\"MySQL\"),\nDbVersion: pulumi.StringRef(\"8.0\"),\nPayType: \"PostPaid\",\nCategory: pulumi.StringRef(\"Normal\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(\"terraform-example\"),\nCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"172.16.0.0/24\"),\nZoneId: pulumi.String(this.Classes[0].ZoneId),\nVswitchName: pulumi.String(\"terraform-example\"),\n})\nif err != nil {\nreturn err\n}\ncluster, err := polardb.NewCluster(ctx, \"cluster\", \u0026polardb.ClusterArgs{\nDbType: pulumi.String(\"MySQL\"),\nDbVersion: pulumi.String(\"8.0\"),\nPayType: pulumi.String(\"PostPaid\"),\nDbNodeCount: pulumi.Int(2),\nDbNodeClass: pulumi.String(this.Classes[0].SupportedEngines[0].AvailableResources[0].DbNodeClass),\nVswitchId: defaultSwitch.ID(),\n})\nif err != nil {\nreturn err\n}\npolardbClustersDs := polardb.GetClustersOutput(ctx, polardb.GetClustersOutputArgs{\nDescriptionRegex: cluster.Description,\nStatus: pulumi.String(\"Running\"),\n}, nil);\ndefaultDatabase, err := polardb.NewDatabase(ctx, \"default\", \u0026polardb.DatabaseArgs{\nDbClusterId: pulumi.String(polardbClustersDs.ApplyT(func(polardbClustersDs polardb.GetClustersResult) (*string, error) {\nreturn \u0026polardbClustersDs.Clusters[0].Id, nil\n}).(pulumi.StringPtrOutput)),\nDbName: polardbClustersDs.ApplyT(func(polardbClustersDs polardb.GetClustersResult) (string, error) {\nreturn fmt.Sprintf(\"tfaccountpri_%v\", polardbClustersDs.Clusters[0].Id), nil\n}).(pulumi.StringOutput),\nDbDescription: pulumi.String(\"from terraform\"),\n})\nif err != nil {\nreturn err\n}\n_default := pulumi.All(polardbClustersDs,defaultDatabase.DbName).ApplyT(func(_args []interface{}) (polardb.GetDatabasesResult, error) {\npolardbClustersDs := _args[0].(polardb.GetClustersResult)\ndbName := _args[1].(string)\nreturn polardb.GetDatabasesResult(interface{}(polardb.GetDatabases(ctx, \u0026polardb.GetDatabasesArgs{\nDbClusterId: polardbClustersDs.Clusters[0].Id,\nNameRegex: pulumi.StringRef(pulumi.StringRef(dbName)),\n}, nil))), nil\n}).(polardb.GetDatabasesResultOutput)\nctx.Export(\"database\", _default.ApplyT(func(_default polardb.GetDatabasesResult) (*string, error) {\nreturn \u0026default.Databases[0].DbName, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.inputs.GetClustersArgs;\nimport com.pulumi.alicloud.polardb.Database;\nimport com.pulumi.alicloud.polardb.DatabaseArgs;\nimport com.pulumi.alicloud.polardb.inputs.GetDatabasesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var this = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .category(\"Normal\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(this_.classes()[0].zoneId())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .dbNodeCount(2)\n            .dbNodeClass(this_.classes()[0].supportedEngines()[0].availableResources()[0].dbNodeClass())\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        final var polardbClustersDs = PolardbFunctions.getClusters(GetClustersArgs.builder()\n            .descriptionRegex(cluster.description())\n            .status(\"Running\")\n            .build());\n\n        var defaultDatabase = new Database(\"defaultDatabase\", DatabaseArgs.builder()\n            .dbClusterId(polardbClustersDs.applyValue(_polardbClustersDs -\u003e _polardbClustersDs.clusters()[0].id()))\n            .dbName(polardbClustersDs.applyValue(_polardbClustersDs -\u003e String.format(\"tfaccountpri_%s\", _polardbClustersDs.clusters()[0].id())))\n            .dbDescription(\"from terraform\")\n            .build());\n\n        final var default = Output.tuple(polardbClustersDs, defaultDatabase.dbName()).applyValue(values -\u003e {\n            var polardbClustersDs = values.t1;\n            var dbName = values.t2;\n            return PolardbFunctions.getDatabases(GetDatabasesArgs.builder()\n                .dbClusterId(polardbClustersDs.clusters()[0].id())\n                .nameRegex(dbName)\n                .build());\n        });\n\n        ctx.export(\"database\", default_.applyValue(_default_ -\u003e _default_.databases()[0].dbName()));\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${this.classes[0].zoneId}\n      vswitchName: terraform-example\n  cluster:\n    type: alicloud:polardb:Cluster\n    properties:\n      dbType: MySQL\n      dbVersion: '8.0'\n      payType: PostPaid\n      dbNodeCount: '2'\n      dbNodeClass: ${this.classes[0].supportedEngines[0].availableResources[0].dbNodeClass}\n      vswitchId: ${defaultSwitch.id}\n  defaultDatabase:\n    type: alicloud:polardb:Database\n    name: default\n    properties:\n      dbClusterId: ${polardbClustersDs.clusters[0].id}\n      dbName: tfaccountpri_${polardbClustersDs.clusters[0].id}\n      dbDescription: from terraform\nvariables:\n  this:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n        payType: PostPaid\n        category: Normal\n  polardbClustersDs:\n    fn::invoke:\n      function: alicloud:polardb:getClusters\n      arguments:\n        descriptionRegex: ${cluster.description}\n        status: Running\n  default:\n    fn::invoke:\n      function: alicloud:polardb:getDatabases\n      arguments:\n        dbClusterId: ${polardbClustersDs.clusters[0].id}\n        nameRegex: ${defaultDatabase.dbName}\noutputs:\n  database: ${default.databases[0].dbName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatabases.\n","properties":{"dbClusterId":{"type":"string","description":"The polarDB cluster ID.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by database name.\n"}},"type":"object","required":["dbClusterId"]},"outputs":{"description":"A collection of values returned by getDatabases.\n","properties":{"databases":{"description":"A list of PolarDB cluster databases. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:polardb/getDatabasesDatabase:getDatabasesDatabase"},"type":"array"},"dbClusterId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"database name of the cluster.\n","items":{"type":"string"},"type":"array"}},"required":["databases","dbClusterId","names","id"],"type":"object"}},"alicloud:polardb/getEndpoints:getEndpoints":{"description":"The \u003cspan pulumi-lang-nodejs=\"`alicloud.polardb.getEndpoints`\" pulumi-lang-dotnet=\"`alicloud.polardb.getEndpoints`\" pulumi-lang-go=\"`polardb.getEndpoints`\" pulumi-lang-python=\"`polardb_get_endpoints`\" pulumi-lang-yaml=\"`alicloud.polardb.getEndpoints`\" pulumi-lang-java=\"`alicloud.polardb.getEndpoints`\"\u003e`alicloud.polardb.getEndpoints`\u003c/span\u003e data source provides a collection of PolarDB endpoints available in Alibaba Cloud account.\nFilters support regular expression for the cluster name, searches by clusterId, and other filters which are listed below.\n\n\u003e **NOTE:** Available since v1.68.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _this = alicloud.polardb.getNodeClasses({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n    category: \"Normal\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _this.then(_this =\u003e _this.classes?.[0]?.zoneId),\n    vswitchName: \"terraform-example\",\n});\nconst cluster = new alicloud.polardb.Cluster(\"cluster\", {\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n    dbNodeCount: 2,\n    dbNodeClass: _this.then(_this =\u003e _this.classes?.[0]?.supportedEngines?.[0]?.availableResources?.[0]?.dbNodeClass),\n    vswitchId: defaultSwitch.id,\n});\nconst polardbClustersDs = alicloud.polardb.getClustersOutput({\n    descriptionRegex: cluster.description,\n    status: \"Running\",\n});\nconst _default = polardbClustersDs.apply(polardbClustersDs =\u003e alicloud.polardb.getEndpointsOutput({\n    dbClusterId: polardbClustersDs.clusters?.[0]?.id,\n}));\nexport const endpoint = _default.apply(_default =\u003e _default.endpoints?.[0]?.dbEndpointId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nthis = alicloud.polardb.get_node_classes(db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    category=\"Normal\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=this.classes[0].zone_id,\n    vswitch_name=\"terraform-example\")\ncluster = alicloud.polardb.Cluster(\"cluster\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    db_node_count=2,\n    db_node_class=this.classes[0].supported_engines[0].available_resources[0].db_node_class,\n    vswitch_id=default_switch.id)\npolardb_clusters_ds = alicloud.polardb.get_clusters_output(description_regex=cluster.description,\n    status=\"Running\")\ndefault = polardb_clusters_ds.apply(lambda polardb_clusters_ds: alicloud.polardb.get_endpoints_output(db_cluster_id=polardb_clusters_ds.clusters[0].id))\npulumi.export(\"endpoint\", default.endpoints[0].db_endpoint_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        Category = \"Normal\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @this.Apply(@this =\u003e @this.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var cluster = new AliCloud.PolarDB.Cluster(\"cluster\", new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        DbNodeCount = 2,\n        DbNodeClass = @this.Apply(@this =\u003e @this.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.SupportedEngines[0]?.AvailableResources[0]?.DbNodeClass)),\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var polardbClustersDs = AliCloud.PolarDB.GetClusters.Invoke(new()\n    {\n        DescriptionRegex = cluster.Description,\n        Status = \"Running\",\n    });\n\n    var @default = AliCloud.PolarDB.GetEndpoints.Invoke(new()\n    {\n        DbClusterId = polardbClustersDs.Apply(getClustersResult =\u003e getClustersResult.Clusters[0]?.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"endpoint\"] = @default.Apply(@default =\u003e @default.Apply(getEndpointsResult =\u003e getEndpointsResult.Endpoints[0]?.DbEndpointId)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nthis, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\nDbType: pulumi.StringRef(\"MySQL\"),\nDbVersion: pulumi.StringRef(\"8.0\"),\nPayType: \"PostPaid\",\nCategory: pulumi.StringRef(\"Normal\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nVpcName: pulumi.String(\"terraform-example\"),\nCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n})\nif err != nil {\nreturn err\n}\ndefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"172.16.0.0/24\"),\nZoneId: pulumi.String(this.Classes[0].ZoneId),\nVswitchName: pulumi.String(\"terraform-example\"),\n})\nif err != nil {\nreturn err\n}\ncluster, err := polardb.NewCluster(ctx, \"cluster\", \u0026polardb.ClusterArgs{\nDbType: pulumi.String(\"MySQL\"),\nDbVersion: pulumi.String(\"8.0\"),\nPayType: pulumi.String(\"PostPaid\"),\nDbNodeCount: pulumi.Int(2),\nDbNodeClass: pulumi.String(this.Classes[0].SupportedEngines[0].AvailableResources[0].DbNodeClass),\nVswitchId: defaultSwitch.ID(),\n})\nif err != nil {\nreturn err\n}\npolardbClustersDs := polardb.GetClustersOutput(ctx, polardb.GetClustersOutputArgs{\nDescriptionRegex: cluster.Description,\nStatus: pulumi.String(\"Running\"),\n}, nil);\n_default := polardbClustersDs.ApplyT(func(polardbClustersDs polardb.GetClustersResult) (polardb.GetEndpointsResult, error) {\nreturn polardb.GetEndpointsResult(interface{}(polardb.GetEndpoints(ctx, \u0026polardb.GetEndpointsArgs{\nDbClusterId: polardbClustersDs.Clusters[0].Id,\n}, nil))), nil\n}).(polardb.GetEndpointsResultOutput)\nctx.Export(\"endpoint\", _default.ApplyT(func(_default polardb.GetEndpointsResult) (*string, error) {\nreturn \u0026default.Endpoints[0].DbEndpointId, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.inputs.GetClustersArgs;\nimport com.pulumi.alicloud.polardb.inputs.GetEndpointsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var this = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .category(\"Normal\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(this_.classes()[0].zoneId())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .dbNodeCount(2)\n            .dbNodeClass(this_.classes()[0].supportedEngines()[0].availableResources()[0].dbNodeClass())\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        final var polardbClustersDs = PolardbFunctions.getClusters(GetClustersArgs.builder()\n            .descriptionRegex(cluster.description())\n            .status(\"Running\")\n            .build());\n\n        final var default = polardbClustersDs.applyValue(_polardbClustersDs -\u003e PolardbFunctions.getEndpoints(GetEndpointsArgs.builder()\n            .dbClusterId(_polardbClustersDs.clusters()[0].id())\n            .build()));\n\n        ctx.export(\"endpoint\", default_.applyValue(_default_ -\u003e _default_.endpoints()[0].dbEndpointId()));\n    }\n}\n```\n```yaml\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${this.classes[0].zoneId}\n      vswitchName: terraform-example\n  cluster:\n    type: alicloud:polardb:Cluster\n    properties:\n      dbType: MySQL\n      dbVersion: '8.0'\n      payType: PostPaid\n      dbNodeCount: '2'\n      dbNodeClass: ${this.classes[0].supportedEngines[0].availableResources[0].dbNodeClass}\n      vswitchId: ${defaultSwitch.id}\nvariables:\n  this:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n        payType: PostPaid\n        category: Normal\n  polardbClustersDs:\n    fn::invoke:\n      function: alicloud:polardb:getClusters\n      arguments:\n        descriptionRegex: ${cluster.description}\n        status: Running\n  default:\n    fn::invoke:\n      function: alicloud:polardb:getEndpoints\n      arguments:\n        dbClusterId: ${polardbClustersDs.clusters[0].id}\noutputs:\n  endpoint: ${default.endpoints[0].dbEndpointId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEndpoints.\n","properties":{"dbClusterId":{"type":"string","description":"PolarDB cluster ID.\n"},"dbEndpointId":{"type":"string","description":"endpoint of the cluster.\n"}},"type":"object","required":["dbClusterId"]},"outputs":{"description":"A collection of values returned by getEndpoints.\n","properties":{"dbClusterId":{"type":"string"},"dbEndpointId":{"description":"The endpoint ID.\n","type":"string"},"endpoints":{"description":"A list of PolarDB cluster endpoints. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:polardb/getEndpointsEndpoint:getEndpointsEndpoint"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"}},"required":["dbClusterId","endpoints","id"],"type":"object"}},"alicloud:polardb/getGlobalDatabaseNetworks:getGlobalDatabaseNetworks":{"description":"This data source provides the PolarDB Global Database Networks of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.181.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _this = alicloud.polardb.getNodeClasses({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n    category: \"Normal\",\n});\nconst _default = new alicloud.vpc.Network(\"default\", {\n    vpcName: \"terraform-example\",\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: _default.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _this.then(_this =\u003e _this.classes?.[0]?.zoneId),\n    vswitchName: \"terraform-example\",\n});\nconst cluster = new alicloud.polardb.Cluster(\"cluster\", {\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n    payType: \"PostPaid\",\n    dbNodeCount: 2,\n    dbNodeClass: _this.then(_this =\u003e _this.classes?.[0]?.supportedEngines?.[0]?.availableResources?.[0]?.dbNodeClass),\n    vswitchId: defaultSwitch.id,\n});\nconst defaultGlobalDatabaseNetwork = new alicloud.polardb.GlobalDatabaseNetwork(\"default\", {\n    dbClusterId: cluster.id,\n    description: cluster.id,\n});\nconst ids = alicloud.polardb.getGlobalDatabaseNetworksOutput({\n    ids: [defaultGlobalDatabaseNetwork.id],\n});\nexport const polardbGlobalDatabaseNetworkId1 = ids.apply(ids =\u003e ids.networks?.[0]?.id);\nconst description = alicloud.polardb.getGlobalDatabaseNetworksOutput({\n    description: defaultGlobalDatabaseNetwork.description,\n});\nexport const polardbGlobalDatabaseNetworkId2 = description.apply(description =\u003e description.networks?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nthis = alicloud.polardb.get_node_classes(db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    category=\"Normal\")\ndefault = alicloud.vpc.Network(\"default\",\n    vpc_name=\"terraform-example\",\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=this.classes[0].zone_id,\n    vswitch_name=\"terraform-example\")\ncluster = alicloud.polardb.Cluster(\"cluster\",\n    db_type=\"MySQL\",\n    db_version=\"8.0\",\n    pay_type=\"PostPaid\",\n    db_node_count=2,\n    db_node_class=this.classes[0].supported_engines[0].available_resources[0].db_node_class,\n    vswitch_id=default_switch.id)\ndefault_global_database_network = alicloud.polardb.GlobalDatabaseNetwork(\"default\",\n    db_cluster_id=cluster.id,\n    description=cluster.id)\nids = alicloud.polardb.get_global_database_networks_output(ids=[default_global_database_network.id])\npulumi.export(\"polardbGlobalDatabaseNetworkId1\", ids.networks[0].id)\ndescription = alicloud.polardb.get_global_database_networks_output(description=default_global_database_network.description)\npulumi.export(\"polardbGlobalDatabaseNetworkId2\", description.networks[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        Category = \"Normal\",\n    });\n\n    var @default = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = \"terraform-example\",\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = @default.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @this.Apply(@this =\u003e @this.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId)),\n        VswitchName = \"terraform-example\",\n    });\n\n    var cluster = new AliCloud.PolarDB.Cluster(\"cluster\", new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n        PayType = \"PostPaid\",\n        DbNodeCount = 2,\n        DbNodeClass = @this.Apply(@this =\u003e @this.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.SupportedEngines[0]?.AvailableResources[0]?.DbNodeClass)),\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var defaultGlobalDatabaseNetwork = new AliCloud.PolarDB.GlobalDatabaseNetwork(\"default\", new()\n    {\n        DbClusterId = cluster.Id,\n        Description = cluster.Id,\n    });\n\n    var ids = AliCloud.PolarDB.GetGlobalDatabaseNetworks.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultGlobalDatabaseNetwork.Id,\n        },\n    });\n\n    var description = AliCloud.PolarDB.GetGlobalDatabaseNetworks.Invoke(new()\n    {\n        Description = defaultGlobalDatabaseNetwork.Description,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"polardbGlobalDatabaseNetworkId1\"] = ids.Apply(getGlobalDatabaseNetworksResult =\u003e getGlobalDatabaseNetworksResult.Networks[0]?.Id),\n        [\"polardbGlobalDatabaseNetworkId2\"] = description.Apply(getGlobalDatabaseNetworksResult =\u003e getGlobalDatabaseNetworksResult.Networks[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\n\t\t\tDbType:    pulumi.StringRef(\"MySQL\"),\n\t\t\tDbVersion: pulumi.StringRef(\"8.0\"),\n\t\t\tPayType:   \"PostPaid\",\n\t\t\tCategory:  pulumi.StringRef(\"Normal\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"terraform-example\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       _default.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(this.Classes[0].ZoneId),\n\t\t\tVswitchName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := polardb.NewCluster(ctx, \"cluster\", \u0026polardb.ClusterArgs{\n\t\t\tDbType:      pulumi.String(\"MySQL\"),\n\t\t\tDbVersion:   pulumi.String(\"8.0\"),\n\t\t\tPayType:     pulumi.String(\"PostPaid\"),\n\t\t\tDbNodeCount: pulumi.Int(2),\n\t\t\tDbNodeClass: pulumi.String(this.Classes[0].SupportedEngines[0].AvailableResources[0].DbNodeClass),\n\t\t\tVswitchId:   defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGlobalDatabaseNetwork, err := polardb.NewGlobalDatabaseNetwork(ctx, \"default\", \u0026polardb.GlobalDatabaseNetworkArgs{\n\t\t\tDbClusterId: cluster.ID(),\n\t\t\tDescription: cluster.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := polardb.GetGlobalDatabaseNetworksOutput(ctx, polardb.GetGlobalDatabaseNetworksOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultGlobalDatabaseNetwork.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"polardbGlobalDatabaseNetworkId1\", ids.ApplyT(func(ids polardb.GetGlobalDatabaseNetworksResult) (*string, error) {\n\t\t\treturn \u0026ids.Networks[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tdescription := polardb.GetGlobalDatabaseNetworksOutput(ctx, polardb.GetGlobalDatabaseNetworksOutputArgs{\n\t\t\tDescription: defaultGlobalDatabaseNetwork.Description,\n\t\t}, nil)\n\t\tctx.Export(\"polardbGlobalDatabaseNetworkId2\", description.ApplyT(func(description polardb.GetGlobalDatabaseNetworksResult) (*string, error) {\n\t\t\treturn \u0026description.Networks[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.polardb.Cluster;\nimport com.pulumi.alicloud.polardb.ClusterArgs;\nimport com.pulumi.alicloud.polardb.GlobalDatabaseNetwork;\nimport com.pulumi.alicloud.polardb.GlobalDatabaseNetworkArgs;\nimport com.pulumi.alicloud.polardb.inputs.GetGlobalDatabaseNetworksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var this = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .category(\"Normal\")\n            .build());\n\n        var default_ = new Network(\"default\", NetworkArgs.builder()\n            .vpcName(\"terraform-example\")\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(default_.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(this_.classes()[0].zoneId())\n            .vswitchName(\"terraform-example\")\n            .build());\n\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .payType(\"PostPaid\")\n            .dbNodeCount(2)\n            .dbNodeClass(this_.classes()[0].supportedEngines()[0].availableResources()[0].dbNodeClass())\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var defaultGlobalDatabaseNetwork = new GlobalDatabaseNetwork(\"defaultGlobalDatabaseNetwork\", GlobalDatabaseNetworkArgs.builder()\n            .dbClusterId(cluster.id())\n            .description(cluster.id())\n            .build());\n\n        final var ids = PolardbFunctions.getGlobalDatabaseNetworks(GetGlobalDatabaseNetworksArgs.builder()\n            .ids(defaultGlobalDatabaseNetwork.id())\n            .build());\n\n        ctx.export(\"polardbGlobalDatabaseNetworkId1\", ids.applyValue(_ids -\u003e _ids.networks()[0].id()));\n        final var description = PolardbFunctions.getGlobalDatabaseNetworks(GetGlobalDatabaseNetworksArgs.builder()\n            .description(defaultGlobalDatabaseNetwork.description())\n            .build());\n\n        ctx.export(\"polardbGlobalDatabaseNetworkId2\", description.applyValue(_description -\u003e _description.networks()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: terraform-example\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${default.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${this.classes[0].zoneId}\n      vswitchName: terraform-example\n  cluster:\n    type: alicloud:polardb:Cluster\n    properties:\n      dbType: MySQL\n      dbVersion: '8.0'\n      payType: PostPaid\n      dbNodeCount: '2'\n      dbNodeClass: ${this.classes[0].supportedEngines[0].availableResources[0].dbNodeClass}\n      vswitchId: ${defaultSwitch.id}\n  defaultGlobalDatabaseNetwork:\n    type: alicloud:polardb:GlobalDatabaseNetwork\n    name: default\n    properties:\n      dbClusterId: ${cluster.id}\n      description: ${cluster.id}\nvariables:\n  this:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n        payType: PostPaid\n        category: Normal\n  ids:\n    fn::invoke:\n      function: alicloud:polardb:getGlobalDatabaseNetworks\n      arguments:\n        ids:\n          - ${defaultGlobalDatabaseNetwork.id}\n  description:\n    fn::invoke:\n      function: alicloud:polardb:getGlobalDatabaseNetworks\n      arguments:\n        description: ${defaultGlobalDatabaseNetwork.description}\noutputs:\n  polardbGlobalDatabaseNetworkId1: ${ids.networks[0].id}\n  polardbGlobalDatabaseNetworkId2: ${description.networks[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGlobalDatabaseNetworks.\n","properties":{"dbClusterId":{"type":"string","description":"The ID of the cluster.\n"},"description":{"type":"string","description":"The description of the Global Database Network.\n"},"gdnId":{"type":"string","description":"The ID of the Global Database Network.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Global Database Network IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string","description":"The status of the Global Database Network. Valid values:\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGlobalDatabaseNetworks.\n","properties":{"dbClusterId":{"description":"The ID of the PolarDB cluster.\n","type":"string"},"description":{"description":"The description of the Global Database Network.\n","type":"string"},"gdnId":{"description":"The ID of the Global Database Network.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"networks":{"description":"A list of PolarDB Global Database Networks. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:polardb/getGlobalDatabaseNetworksNetwork:getGlobalDatabaseNetworksNetwork"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"description":"The status of the Global Database Network.\n","type":"string"}},"required":["ids","networks","id"],"type":"object"}},"alicloud:polardb/getNodeClasses:getNodeClasses":{"description":"This data source provides the PolarDB node classes resource available info of Alibaba Cloud.\n\n\u003e **NOTE:** Available since v1.81.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst resources = alicloud.polardb.getNodeClasses({\n    payType: \"PostPaid\",\n    dbType: \"MySQL\",\n    dbVersion: \"5.6\",\n});\nexport const polardbNodeClasses = resources.then(resources =\u003e resources.classes);\nexport const polardbAvailableZoneId = resources.then(resources =\u003e resources.classes?.[0]?.zoneId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nresources = alicloud.polardb.get_node_classes(pay_type=\"PostPaid\",\n    db_type=\"MySQL\",\n    db_version=\"5.6\")\npulumi.export(\"polardbNodeClasses\", resources.classes)\npulumi.export(\"polardbAvailableZoneId\", resources.classes[0].zone_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var resources = AliCloud.PolarDB.GetNodeClasses.Invoke(new()\n    {\n        PayType = \"PostPaid\",\n        DbType = \"MySQL\",\n        DbVersion = \"5.6\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"polardbNodeClasses\"] = resources.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes),\n        [\"polardbAvailableZoneId\"] = resources.Apply(getNodeClassesResult =\u003e getNodeClassesResult.Classes[0]?.ZoneId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tresources, err := polardb.GetNodeClasses(ctx, \u0026polardb.GetNodeClassesArgs{\n\t\t\tPayType:   \"PostPaid\",\n\t\t\tDbType:    pulumi.StringRef(\"MySQL\"),\n\t\t\tDbVersion: pulumi.StringRef(\"5.6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"polardbNodeClasses\", resources.Classes)\n\t\tctx.Export(\"polardbAvailableZoneId\", resources.Classes[0].ZoneId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetNodeClassesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var resources = PolardbFunctions.getNodeClasses(GetNodeClassesArgs.builder()\n            .payType(\"PostPaid\")\n            .dbType(\"MySQL\")\n            .dbVersion(\"5.6\")\n            .build());\n\n        ctx.export(\"polardbNodeClasses\", resources.classes());\n        ctx.export(\"polardbAvailableZoneId\", resources.classes()[0].zoneId());\n    }\n}\n```\n```yaml\nvariables:\n  resources:\n    fn::invoke:\n      function: alicloud:polardb:getNodeClasses\n      arguments:\n        payType: PostPaid\n        dbType: MySQL\n        dbVersion: '5.6'\noutputs:\n  polardbNodeClasses: ${resources.classes}\n  polardbAvailableZoneId: ${resources.classes[0].zoneId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNodeClasses.\n","properties":{"category":{"type":"string","description":"The PolarDB node cluster series.\n"},"dbNodeClass":{"type":"string","description":"The PolarDB node class type by the user.\n"},"dbType":{"type":"string","description":"Database type. Options are `MySQL`, `PostgreSQL`, `Oracle`. If\u003cspan pulumi-lang-nodejs=\" dbType \" pulumi-lang-dotnet=\" DbType \" pulumi-lang-go=\" dbType \" pulumi-lang-python=\" db_type \" pulumi-lang-yaml=\" dbType \" pulumi-lang-java=\" dbType \"\u003e db_type \u003c/span\u003eis set,\u003cspan pulumi-lang-nodejs=\" dbVersion \" pulumi-lang-dotnet=\" DbVersion \" pulumi-lang-go=\" dbVersion \" pulumi-lang-python=\" db_version \" pulumi-lang-yaml=\" dbVersion \" pulumi-lang-java=\" dbVersion \"\u003e db_version \u003c/span\u003ealso needs to be set.\n"},"dbVersion":{"type":"string","description":"Database version required by the user. Value options can refer to the latest docs [detail info](https://www.alibabacloud.com/help/doc-detail/98169.htm) `DBVersion`. If\u003cspan pulumi-lang-nodejs=\" dbVersion \" pulumi-lang-dotnet=\" DbVersion \" pulumi-lang-go=\" dbVersion \" pulumi-lang-python=\" db_version \" pulumi-lang-yaml=\" dbVersion \" pulumi-lang-java=\" dbVersion \"\u003e db_version \u003c/span\u003eis set,\u003cspan pulumi-lang-nodejs=\" dbType \" pulumi-lang-dotnet=\" DbType \" pulumi-lang-go=\" dbType \" pulumi-lang-python=\" db_type \" pulumi-lang-yaml=\" dbType \" pulumi-lang-java=\" dbType \"\u003e db_type \u003c/span\u003ealso needs to be set.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi up`).\n"},"payType":{"type":"string","description":"Filter the results by charge type. Valid values: `PrePaid` and `PostPaid`.\n"},"regionId":{"type":"string","description":"The Region to launch the PolarDB cluster.\n"},"zoneId":{"type":"string","description":"The Zone to launch the PolarDB cluster.\n"}},"type":"object","required":["payType"]},"outputs":{"description":"A collection of values returned by getNodeClasses.\n","properties":{"category":{"type":"string"},"classes":{"description":"A list of PolarDB node classes. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:polardb/getNodeClassesClass:getNodeClassesClass"},"type":"array"},"dbNodeClass":{"description":"PolarDB node available class.\n","type":"string"},"dbType":{"type":"string"},"dbVersion":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"payType":{"type":"string"},"regionId":{"type":"string"},"zoneId":{"description":"The Zone to launch the PolarDB cluster.\n","type":"string"}},"required":["classes","payType","id"],"type":"object"}},"alicloud:polardb/getParameterGroups:getParameterGroups":{"description":"This data source provides the PolarDB Parameter Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.183.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.polardb.getParameterGroups({\n    dbType: \"MySQL\",\n    dbVersion: \"8.0\",\n});\nconst ids = _default.then(_default =\u003e alicloud.polardb.getParameterGroups({\n    ids: [_default.groups?.[0]?.id],\n}));\nexport const polardbParameterGroupId1 = ids.then(ids =\u003e ids.groups?.[0]?.id);\nconst nameRegex = _default.then(_default =\u003e alicloud.polardb.getParameterGroups({\n    nameRegex: _default.groups?.[0]?.parameterGroupName,\n}));\nexport const polardbParameterGroupId2 = nameRegex.then(nameRegex =\u003e nameRegex.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.polardb.get_parameter_groups(db_type=\"MySQL\",\n    db_version=\"8.0\")\nids = alicloud.polardb.get_parameter_groups(ids=[default.groups[0].id])\npulumi.export(\"polardbParameterGroupId1\", ids.groups[0].id)\nname_regex = alicloud.polardb.get_parameter_groups(name_regex=default.groups[0].parameter_group_name)\npulumi.export(\"polardbParameterGroupId2\", name_regex.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.PolarDB.GetParameterGroups.Invoke(new()\n    {\n        DbType = \"MySQL\",\n        DbVersion = \"8.0\",\n    });\n\n    var ids = AliCloud.PolarDB.GetParameterGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            @default.Apply(getParameterGroupsResult =\u003e getParameterGroupsResult.Groups[0]?.Id),\n        },\n    });\n\n    var nameRegex = AliCloud.PolarDB.GetParameterGroups.Invoke(new()\n    {\n        NameRegex = @default.Apply(getParameterGroupsResult =\u003e getParameterGroupsResult.Groups[0]?.ParameterGroupName),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"polardbParameterGroupId1\"] = ids.Apply(getParameterGroupsResult =\u003e getParameterGroupsResult.Groups[0]?.Id),\n        [\"polardbParameterGroupId2\"] = nameRegex.Apply(getParameterGroupsResult =\u003e getParameterGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := polardb.GetParameterGroups(ctx, \u0026polardb.GetParameterGroupsArgs{\nDbType: pulumi.StringRef(\"MySQL\"),\nDbVersion: pulumi.StringRef(\"8.0\"),\n}, nil);\nif err != nil {\nreturn err\n}\nids, err := polardb.GetParameterGroups(ctx, \u0026polardb.GetParameterGroupsArgs{\nIds: interface{}{\n_default.Groups[0].Id,\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"polardbParameterGroupId1\", ids.Groups[0].Id)\nnameRegex, err := polardb.GetParameterGroups(ctx, \u0026polardb.GetParameterGroupsArgs{\nNameRegex: pulumi.StringRef(_default.Groups[0].ParameterGroupName),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"polardbParameterGroupId2\", nameRegex.Groups[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetParameterGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = PolardbFunctions.getParameterGroups(GetParameterGroupsArgs.builder()\n            .dbType(\"MySQL\")\n            .dbVersion(\"8.0\")\n            .build());\n\n        final var ids = PolardbFunctions.getParameterGroups(GetParameterGroupsArgs.builder()\n            .ids(default_.groups()[0].id())\n            .build());\n\n        ctx.export(\"polardbParameterGroupId1\", ids.groups()[0].id());\n        final var nameRegex = PolardbFunctions.getParameterGroups(GetParameterGroupsArgs.builder()\n            .nameRegex(default_.groups()[0].parameterGroupName())\n            .build());\n\n        ctx.export(\"polardbParameterGroupId2\", nameRegex.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:polardb:getParameterGroups\n      arguments:\n        dbType: MySQL\n        dbVersion: '8.0'\n  ids:\n    fn::invoke:\n      function: alicloud:polardb:getParameterGroups\n      arguments:\n        ids:\n          - ${default.groups[0].id}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:polardb:getParameterGroups\n      arguments:\n        nameRegex: ${default.groups[0].parameterGroupName}\noutputs:\n  polardbParameterGroupId1: ${ids.groups[0].id}\n  polardbParameterGroupId2: ${nameRegex.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getParameterGroups.\n","properties":{"dbType":{"type":"string","description":"The type of the database engine. Only `MySQL` is supported.\n"},"dbVersion":{"type":"string","description":"The version number of the database engine. Valid values: `5.6`, `5.7`, `8.0`.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Parameter Group IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Parameter Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getParameterGroups.\n","properties":{"dbType":{"description":"The type of the database engine.\n","type":"string"},"dbVersion":{"description":"The version number of the database engine.\n","type":"string"},"groups":{"description":"A list of PolarDB Parameter Groups. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:polardb/getParameterGroupsGroup:getParameterGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Parameter Group names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:polardb/getZones:getZones":{"description":"This data source provides availability zones for PolarDB that can be accessed by an Alibaba Cloud account within the region configured in the provider.\n\n\u003e **NOTE:** Available in v1.74.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst zonesIds = alicloud.polardb.getZones({});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nzones_ids = alicloud.polardb.get_zones()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var zonesIds = AliCloud.PolarDB.GetZones.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\t_, err := polardb.GetZones(ctx, \u0026polardb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.polardb.PolardbFunctions;\nimport com.pulumi.alicloud.polardb.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var zonesIds = PolardbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  zonesIds:\n    fn::invoke:\n      function: alicloud:polardb:getZones\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"multi":{"type":"boolean","description":"Indicate whether the zones can be used in a multi AZ configuration. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Multi AZ is usually used to launch PolarDB instances.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of zone IDs.\n","items":{"type":"string"},"type":"array"},"multi":{"type":"boolean"},"outputFile":{"type":"string"},"zones":{"description":"A list of availability zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:polardb/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:privatelink/getService:getService":{"description":"Using this data source can open Privatelink service automatically. If the service has been opened, it will return opened.\n\nFor information about Privatelink and how to use it, see [What is Privatelink](https://www.alibabacloud.com/help/en/product/120462.htm).\n\n\u003e **NOTE:** Available since v1.113.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.privatelink.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.privatelink.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.PrivateLink.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/privatelink\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := privatelink.GetService(ctx, \u0026privatelink.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.privatelink.PrivatelinkFunctions;\nimport com.pulumi.alicloud.privatelink.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = PrivatelinkFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:privatelink:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the Privatelink service that means you have read and agreed the [Privatelink Terms of Service](https://help.aliyun.com/document_detail/197619.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:privatelink/getVpcEndpointConnections:getVpcEndpointConnections":{"description":"This data source provides the Privatelink Vpc Endpoint Connections of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.110.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.privatelink.getVpcEndpointConnections({\n    serviceId: \"example_value\",\n    status: \"Connected\",\n});\nexport const firstPrivatelinkVpcEndpointConnectionId = example.then(example =\u003e example.connections?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.privatelink.get_vpc_endpoint_connections(service_id=\"example_value\",\n    status=\"Connected\")\npulumi.export(\"firstPrivatelinkVpcEndpointConnectionId\", example.connections[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.PrivateLink.GetVpcEndpointConnections.Invoke(new()\n    {\n        ServiceId = \"example_value\",\n        Status = \"Connected\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstPrivatelinkVpcEndpointConnectionId\"] = example.Apply(getVpcEndpointConnectionsResult =\u003e getVpcEndpointConnectionsResult.Connections[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/privatelink\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := privatelink.GetVpcEndpointConnections(ctx, \u0026privatelink.GetVpcEndpointConnectionsArgs{\n\t\t\tServiceId: \"example_value\",\n\t\t\tStatus:    pulumi.StringRef(\"Connected\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstPrivatelinkVpcEndpointConnectionId\", example.Connections[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.privatelink.PrivatelinkFunctions;\nimport com.pulumi.alicloud.privatelink.inputs.GetVpcEndpointConnectionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = PrivatelinkFunctions.getVpcEndpointConnections(GetVpcEndpointConnectionsArgs.builder()\n            .serviceId(\"example_value\")\n            .status(\"Connected\")\n            .build());\n\n        ctx.export(\"firstPrivatelinkVpcEndpointConnectionId\", example.connections()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:privatelink:getVpcEndpointConnections\n      arguments:\n        serviceId: example_value\n        status: Connected\noutputs:\n  firstPrivatelinkVpcEndpointConnectionId: ${example.connections[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcEndpointConnections.\n","properties":{"endpointId":{"type":"string","description":"The ID of the Vpc Endpoint.\n"},"endpointOwnerId":{"type":"integer","description":"The endpoint owner id.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"serviceId":{"type":"string","description":"The ID of the Vpc Endpoint Service.\n"},"status":{"type":"string","description":"The status of Vpc Endpoint Connection. Valid Values: `Connected`, `Connecting`, `Deleted`, `Deleting`, `Disconnected`, `Disconnecting`, `Pending` and `ServiceDeleted`.\n"}},"type":"object","required":["serviceId"]},"outputs":{"description":"A collection of values returned by getVpcEndpointConnections.\n","properties":{"connections":{"description":"A list of Privatelink Vpc Endpoint Connections. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:privatelink/getVpcEndpointConnectionsConnection:getVpcEndpointConnectionsConnection"},"type":"array"},"endpointId":{"description":"The ID of the Vpc Endpoint.\n","type":"string"},"endpointOwnerId":{"type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Vpc Endpoint Connection IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"serviceId":{"type":"string"},"status":{"description":"The status of Vpc Endpoint Connection.\n","type":"string"}},"required":["connections","ids","serviceId","id"],"type":"object"}},"alicloud:privatelink/getVpcEndpointServiceResources:getVpcEndpointServiceResources":{"description":"This data source provides the Privatelink Vpc Endpoint Service Resources of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.110.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.privatelink.getVpcEndpointServiceResources({\n    serviceId: \"epsrv-gw8ii1xxxx\",\n});\nexport const firstPrivatelinkVpcEndpointServiceResourceId = example.then(example =\u003e example.resources?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.privatelink.get_vpc_endpoint_service_resources(service_id=\"epsrv-gw8ii1xxxx\")\npulumi.export(\"firstPrivatelinkVpcEndpointServiceResourceId\", example.resources[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.PrivateLink.GetVpcEndpointServiceResources.Invoke(new()\n    {\n        ServiceId = \"epsrv-gw8ii1xxxx\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstPrivatelinkVpcEndpointServiceResourceId\"] = example.Apply(getVpcEndpointServiceResourcesResult =\u003e getVpcEndpointServiceResourcesResult.Resources[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/privatelink\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := privatelink.GetVpcEndpointServiceResources(ctx, \u0026privatelink.GetVpcEndpointServiceResourcesArgs{\n\t\t\tServiceId: \"epsrv-gw8ii1xxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstPrivatelinkVpcEndpointServiceResourceId\", example.Resources[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.privatelink.PrivatelinkFunctions;\nimport com.pulumi.alicloud.privatelink.inputs.GetVpcEndpointServiceResourcesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = PrivatelinkFunctions.getVpcEndpointServiceResources(GetVpcEndpointServiceResourcesArgs.builder()\n            .serviceId(\"epsrv-gw8ii1xxxx\")\n            .build());\n\n        ctx.export(\"firstPrivatelinkVpcEndpointServiceResourceId\", example.resources()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:privatelink:getVpcEndpointServiceResources\n      arguments:\n        serviceId: epsrv-gw8ii1xxxx\noutputs:\n  firstPrivatelinkVpcEndpointServiceResourceId: ${example.resources[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcEndpointServiceResources.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"serviceId":{"type":"string","description":"The ID of Vpc Endpoint Service.\n"}},"type":"object","required":["serviceId"]},"outputs":{"description":"A collection of values returned by getVpcEndpointServiceResources.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Vpc Endpoint Service Resource IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resources":{"description":"A list of Privatelink Vpc Endpoint Service Resources. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:privatelink/getVpcEndpointServiceResourcesResource:getVpcEndpointServiceResourcesResource"},"type":"array"},"serviceId":{"type":"string"}},"required":["ids","resources","serviceId","id"],"type":"object"}},"alicloud:privatelink/getVpcEndpointServiceUsers:getVpcEndpointServiceUsers":{"description":"This data source provides the Privatelink Vpc Endpoint Service Users of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.110.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.privatelink.getVpcEndpointServiceUsers({\n    serviceId: \"epsrv-gw81c6vxxxxxx\",\n});\nexport const firstPrivatelinkVpcEndpointServiceUserId = example.then(example =\u003e example.users?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.privatelink.get_vpc_endpoint_service_users(service_id=\"epsrv-gw81c6vxxxxxx\")\npulumi.export(\"firstPrivatelinkVpcEndpointServiceUserId\", example.users[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.PrivateLink.GetVpcEndpointServiceUsers.Invoke(new()\n    {\n        ServiceId = \"epsrv-gw81c6vxxxxxx\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstPrivatelinkVpcEndpointServiceUserId\"] = example.Apply(getVpcEndpointServiceUsersResult =\u003e getVpcEndpointServiceUsersResult.Users[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/privatelink\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := privatelink.GetVpcEndpointServiceUsers(ctx, \u0026privatelink.GetVpcEndpointServiceUsersArgs{\n\t\t\tServiceId: \"epsrv-gw81c6vxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstPrivatelinkVpcEndpointServiceUserId\", example.Users[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.privatelink.PrivatelinkFunctions;\nimport com.pulumi.alicloud.privatelink.inputs.GetVpcEndpointServiceUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = PrivatelinkFunctions.getVpcEndpointServiceUsers(GetVpcEndpointServiceUsersArgs.builder()\n            .serviceId(\"epsrv-gw81c6vxxxxxx\")\n            .build());\n\n        ctx.export(\"firstPrivatelinkVpcEndpointServiceUserId\", example.users()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:privatelink:getVpcEndpointServiceUsers\n      arguments:\n        serviceId: epsrv-gw81c6vxxxxxx\noutputs:\n  firstPrivatelinkVpcEndpointServiceUserId: ${example.users[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcEndpointServiceUsers.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"serviceId":{"type":"string","description":"The Id of Vpc Endpoint Service.\n"},"userId":{"type":"string","description":"The Id of Ram User.\n"}},"type":"object","required":["serviceId"]},"outputs":{"description":"A collection of values returned by getVpcEndpointServiceUsers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Vpc Endpoint Service User IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"serviceId":{"type":"string"},"userId":{"description":"The Id of Ram User.\n","type":"string"},"users":{"description":"A list of Privatelink Vpc Endpoint Service Users. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:privatelink/getVpcEndpointServiceUsersUser:getVpcEndpointServiceUsersUser"},"type":"array"}},"required":["ids","serviceId","users","id"],"type":"object"}},"alicloud:privatelink/getVpcEndpointServices:getVpcEndpointServices":{"description":"This data source provides the Private Link Vpc Endpoint Services of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.109.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.privatelink.VpcEndpointService(\"default\", {\n    serviceDescription: name,\n    autoAcceptConnection: true,\n});\nconst ids = alicloud.privatelink.getVpcEndpointServicesOutput({\n    ids: [_default.id],\n});\nexport const privatelinkVpcEndpointServicesId0 = ids.apply(ids =\u003e ids.services?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.privatelink.VpcEndpointService(\"default\",\n    service_description=name,\n    auto_accept_connection=True)\nids = alicloud.privatelink.get_vpc_endpoint_services_output(ids=[default.id])\npulumi.export(\"privatelinkVpcEndpointServicesId0\", ids.services[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.PrivateLink.VpcEndpointService(\"default\", new()\n    {\n        ServiceDescription = name,\n        AutoAcceptConnection = true,\n    });\n\n    var ids = AliCloud.PrivateLink.GetVpcEndpointServices.Invoke(new()\n    {\n        Ids = new[]\n        {\n            @default.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"privatelinkVpcEndpointServicesId0\"] = ids.Apply(getVpcEndpointServicesResult =\u003e getVpcEndpointServicesResult.Services[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/privatelink\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := privatelink.NewVpcEndpointService(ctx, \"default\", \u0026privatelink.VpcEndpointServiceArgs{\n\t\t\tServiceDescription:   pulumi.String(name),\n\t\t\tAutoAcceptConnection: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := privatelink.GetVpcEndpointServicesOutput(ctx, privatelink.GetVpcEndpointServicesOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"privatelinkVpcEndpointServicesId0\", ids.ApplyT(func(ids privatelink.GetVpcEndpointServicesResult) (*string, error) {\n\t\t\treturn \u0026ids.Services[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.privatelink.VpcEndpointService;\nimport com.pulumi.alicloud.privatelink.VpcEndpointServiceArgs;\nimport com.pulumi.alicloud.privatelink.PrivatelinkFunctions;\nimport com.pulumi.alicloud.privatelink.inputs.GetVpcEndpointServicesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new VpcEndpointService(\"default\", VpcEndpointServiceArgs.builder()\n            .serviceDescription(name)\n            .autoAcceptConnection(true)\n            .build());\n\n        final var ids = PrivatelinkFunctions.getVpcEndpointServices(GetVpcEndpointServicesArgs.builder()\n            .ids(default_.id())\n            .build());\n\n        ctx.export(\"privatelinkVpcEndpointServicesId0\", ids.applyValue(_ids -\u003e _ids.services()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:privatelink:VpcEndpointService\n    properties:\n      serviceDescription: ${name}\n      autoAcceptConnection: true\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:privatelink:getVpcEndpointServices\n      arguments:\n        ids:\n          - ${default.id}\noutputs:\n  privatelinkVpcEndpointServicesId0: ${ids.services[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcEndpointServices.\n","properties":{"autoAcceptConnection":{"type":"boolean","description":"Specifies whether to automatically accept endpoint connection requests. Valid values: : \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Vpc Endpoint Service IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Vpc Endpoint Service name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"serviceBusinessStatus":{"type":"string","description":"The service state of the endpoint service. Default value: `Normal`. Valid values: `Normal`, `FinancialLocked` and `SecurityLocked`.\n"},"status":{"type":"string","description":"The state of the endpoint service. Valid values: `Active`, `Creating`, `Deleted`, `Deleting` and `Pending`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true},"vpcEndpointServiceName":{"type":"string","description":"The name of the endpoint service.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcEndpointServices.\n","properties":{"autoAcceptConnection":{"description":"Indicates whether endpoint connection requests are automatically accepted.\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Vpc Endpoint Service names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"serviceBusinessStatus":{"description":"The service state of the endpoint service.\n","type":"string"},"services":{"description":"A list of Vpc Endpoint Services. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:privatelink/getVpcEndpointServicesService:getVpcEndpointServicesService"},"type":"array"},"status":{"description":"The state of the endpoint service.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags added to the resource.\n","type":"object"},"vpcEndpointServiceName":{"description":"The name of the endpoint service.\n","type":"string"}},"required":["ids","names","services","id"],"type":"object"}},"alicloud:privatelink/getVpcEndpointZones:getVpcEndpointZones":{"description":"This data source provides the Privatelink Vpc Endpoint Zones of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.111.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.privatelink.getVpcEndpointZones({\n    endpointId: \"ep-gw8boxxxxx\",\n});\nexport const firstPrivatelinkVpcEndpointZoneId = example.then(example =\u003e example.zones?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.privatelink.get_vpc_endpoint_zones(endpoint_id=\"ep-gw8boxxxxx\")\npulumi.export(\"firstPrivatelinkVpcEndpointZoneId\", example.zones[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.PrivateLink.GetVpcEndpointZones.Invoke(new()\n    {\n        EndpointId = \"ep-gw8boxxxxx\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstPrivatelinkVpcEndpointZoneId\"] = example.Apply(getVpcEndpointZonesResult =\u003e getVpcEndpointZonesResult.Zones[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/privatelink\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := privatelink.GetVpcEndpointZones(ctx, \u0026privatelink.GetVpcEndpointZonesArgs{\n\t\t\tEndpointId: \"ep-gw8boxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstPrivatelinkVpcEndpointZoneId\", example.Zones[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.privatelink.PrivatelinkFunctions;\nimport com.pulumi.alicloud.privatelink.inputs.GetVpcEndpointZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = PrivatelinkFunctions.getVpcEndpointZones(GetVpcEndpointZonesArgs.builder()\n            .endpointId(\"ep-gw8boxxxxx\")\n            .build());\n\n        ctx.export(\"firstPrivatelinkVpcEndpointZoneId\", example.zones()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:privatelink:getVpcEndpointZones\n      arguments:\n        endpointId: ep-gw8boxxxxx\noutputs:\n  firstPrivatelinkVpcEndpointZoneId: ${example.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcEndpointZones.\n","properties":{"endpointId":{"type":"string","description":"The ID of the Vpc Endpoint.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The Status of Vpc Endpoint Zone. Valid Values: `Connected`, `Connecting`, `Creating`, `Deleted`, `Deleting`, `Disconnected`, `Disconnecting` and `Wait`.\n"}},"type":"object","required":["endpointId"]},"outputs":{"description":"A collection of values returned by getVpcEndpointZones.\n","properties":{"endpointId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Vpc Endpoint Zone IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The Status of Vpc Endpoint Zone..\n","type":"string"},"zones":{"description":"A list of Privatelink Vpc Endpoint Zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:privatelink/getVpcEndpointZonesZone:getVpcEndpointZonesZone"},"type":"array"}},"required":["endpointId","ids","zones","id"],"type":"object"}},"alicloud:privatelink/getVpcEndpoints:getVpcEndpoints":{"description":"This data source provides the Privatelink Vpc Endpoints of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.109.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.privatelink.getVpcEndpoints({\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstPrivatelinkVpcEndpointId = example.then(example =\u003e example.endpoints?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.privatelink.get_vpc_endpoints(ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstPrivatelinkVpcEndpointId\", example.endpoints[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.PrivateLink.GetVpcEndpoints.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstPrivatelinkVpcEndpointId\"] = example.Apply(getVpcEndpointsResult =\u003e getVpcEndpointsResult.Endpoints[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/privatelink\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := privatelink.GetVpcEndpoints(ctx, \u0026privatelink.GetVpcEndpointsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstPrivatelinkVpcEndpointId\", example.Endpoints[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.privatelink.PrivatelinkFunctions;\nimport com.pulumi.alicloud.privatelink.inputs.GetVpcEndpointsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = PrivatelinkFunctions.getVpcEndpoints(GetVpcEndpointsArgs.builder()\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstPrivatelinkVpcEndpointId\", example.endpoints()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:privatelink:getVpcEndpoints\n      arguments:\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstPrivatelinkVpcEndpointId: ${example.endpoints[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcEndpoints.\n","properties":{"connectionStatus":{"type":"string","description":"The status of Connection.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Vpc Endpoint IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Vpc Endpoint name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"serviceName":{"type":"string","description":"The name of the terminal node service associated with the terminal node.\n"},"status":{"type":"string","description":"The status of Vpc Endpoint.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Query the instance bound to the tag. The format of the incoming value is \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e string, including `TagKey` and `TagValue`. `TagKey` cannot be null, and `TagValue` can be empty. Format example `{\"key1\":\"value1\"}`.\n"},"vpcEndpointName":{"type":"string","description":"The name of Vpc Endpoint.\n"},"vpcId":{"type":"string","description":"The private network to which the terminal node belongs..\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcEndpoints.\n","properties":{"connectionStatus":{"description":"The status of Connection.\n","type":"string"},"enableDetails":{"type":"boolean"},"endpoints":{"description":"A list of Privatelink Vpc Endpoints. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:privatelink/getVpcEndpointsEndpoint:getVpcEndpointsEndpoint"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Vpc Endpoint names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"serviceName":{"description":"The name of the terminal node service associated with the terminal node.\n","type":"string"},"status":{"description":"The status of Vpc Endpoint.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Tag tags of Vpc Endpoint.\n","type":"object"},"vpcEndpointName":{"description":"The name of Vpc Endpoint.\n","type":"string"},"vpcId":{"description":"The private network to which the terminal node belongs.\n","type":"string"}},"required":["endpoints","ids","names","id"],"type":"object"}},"alicloud:pvtz/getEndpoints:getEndpoints":{"description":"This data source provides the Pvtz Endpoints of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.143.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.pvtz.getEndpoints({\n    ids: [\"example_id\"],\n});\nexport const pvtzEndpointId1 = ids.then(ids =\u003e ids.endpoints?.[0]?.id);\nconst nameRegex = alicloud.pvtz.getEndpoints({\n    nameRegex: \"^my-Endpoint\",\n});\nexport const pvtzEndpointId2 = nameRegex.then(nameRegex =\u003e nameRegex.endpoints?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.pvtz.get_endpoints(ids=[\"example_id\"])\npulumi.export(\"pvtzEndpointId1\", ids.endpoints[0].id)\nname_regex = alicloud.pvtz.get_endpoints(name_regex=\"^my-Endpoint\")\npulumi.export(\"pvtzEndpointId2\", name_regex.endpoints[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Pvtz.GetEndpoints.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Pvtz.GetEndpoints.Invoke(new()\n    {\n        NameRegex = \"^my-Endpoint\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"pvtzEndpointId1\"] = ids.Apply(getEndpointsResult =\u003e getEndpointsResult.Endpoints[0]?.Id),\n        [\"pvtzEndpointId2\"] = nameRegex.Apply(getEndpointsResult =\u003e getEndpointsResult.Endpoints[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pvtz\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := pvtz.GetEndpoints(ctx, \u0026pvtz.GetEndpointsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"pvtzEndpointId1\", ids.Endpoints[0].Id)\n\t\tnameRegex, err := pvtz.GetEndpoints(ctx, \u0026pvtz.GetEndpointsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Endpoint\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"pvtzEndpointId2\", nameRegex.Endpoints[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pvtz.PvtzFunctions;\nimport com.pulumi.alicloud.pvtz.inputs.GetEndpointsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = PvtzFunctions.getEndpoints(GetEndpointsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"pvtzEndpointId1\", ids.endpoints()[0].id());\n        final var nameRegex = PvtzFunctions.getEndpoints(GetEndpointsArgs.builder()\n            .nameRegex(\"^my-Endpoint\")\n            .build());\n\n        ctx.export(\"pvtzEndpointId2\", nameRegex.endpoints()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:pvtz:getEndpoints\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:pvtz:getEndpoints\n      arguments:\n        nameRegex: ^my-Endpoint\noutputs:\n  pvtzEndpointId1: ${ids.endpoints[0].id}\n  pvtzEndpointId2: ${nameRegex.endpoints[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEndpoints.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Endpoint IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Endpoint name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `CHANGE_FAILED`, `CHANGE_INIT`, `EXCEPTION`, `FAILED`, `INIT`, `SUCCESS`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEndpoints.\n","properties":{"endpoints":{"items":{"$ref":"#/types/alicloud:pvtz/getEndpointsEndpoint:getEndpointsEndpoint"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["endpoints","ids","names","id"],"type":"object"}},"alicloud:pvtz/getResolverZones:getResolverZones":{"description":"This data source provides the available zones with the Private Zone Resolver of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.143.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.pvtz.getResolverZones({\n    status: \"NORMAL\",\n});\nexport const firstZonesId = _default.then(_default =\u003e _default.zones?.[0]?.zoneId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.pvtz.get_resolver_zones(status=\"NORMAL\")\npulumi.export(\"firstZonesId\", default.zones[0].zone_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Pvtz.GetResolverZones.Invoke(new()\n    {\n        Status = \"NORMAL\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstZonesId\"] = @default.Apply(@default =\u003e @default.Apply(getResolverZonesResult =\u003e getResolverZonesResult.Zones[0]?.ZoneId)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pvtz\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := pvtz.GetResolverZones(ctx, \u0026pvtz.GetResolverZonesArgs{\n\t\t\tStatus: pulumi.StringRef(\"NORMAL\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstZonesId\", _default.Zones[0].ZoneId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pvtz.PvtzFunctions;\nimport com.pulumi.alicloud.pvtz.inputs.GetResolverZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = PvtzFunctions.getResolverZones(GetResolverZonesArgs.builder()\n            .status(\"NORMAL\")\n            .build());\n\n        ctx.export(\"firstZonesId\", default_.zones()[0].zoneId());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:pvtz:getResolverZones\n      arguments:\n        status: NORMAL\noutputs:\n  firstZonesId: ${default.zones[0].zoneId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getResolverZones.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the Zone. Valid values: `NORMAL`, `SOLD_OUT`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getResolverZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"status":{"type":"string"},"zones":{"items":{"$ref":"#/types/alicloud:pvtz/getResolverZonesZone:getResolverZonesZone"},"type":"array"}},"required":["zones","id"],"type":"object"}},"alicloud:pvtz/getRules:getRules":{"description":"This data source provides the PrivateZone Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.143.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.pvtz.getRules({});\nexport const pvtzRuleId1 = ids.then(ids =\u003e ids.rules?.[0]?.id);\nconst nameRegex = alicloud.pvtz.getRules({\n    nameRegex: \"^my-Rule\",\n});\nexport const pvtzRuleId2 = nameRegex.then(nameRegex =\u003e nameRegex.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.pvtz.get_rules()\npulumi.export(\"pvtzRuleId1\", ids.rules[0].id)\nname_regex = alicloud.pvtz.get_rules(name_regex=\"^my-Rule\")\npulumi.export(\"pvtzRuleId2\", name_regex.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Pvtz.GetRules.Invoke();\n\n    var nameRegex = AliCloud.Pvtz.GetRules.Invoke(new()\n    {\n        NameRegex = \"^my-Rule\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"pvtzRuleId1\"] = ids.Apply(getRulesResult =\u003e getRulesResult.Rules[0]?.Id),\n        [\"pvtzRuleId2\"] = nameRegex.Apply(getRulesResult =\u003e getRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pvtz\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := pvtz.GetRules(ctx, \u0026pvtz.GetRulesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"pvtzRuleId1\", ids.Rules[0].Id)\n\t\tnameRegex, err := pvtz.GetRules(ctx, \u0026pvtz.GetRulesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Rule\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"pvtzRuleId2\", nameRegex.Rules[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pvtz.PvtzFunctions;\nimport com.pulumi.alicloud.pvtz.inputs.GetRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = PvtzFunctions.getRules(GetRulesArgs.builder()\n            .build());\n\n        ctx.export(\"pvtzRuleId1\", ids.rules()[0].id());\n        final var nameRegex = PvtzFunctions.getRules(GetRulesArgs.builder()\n            .nameRegex(\"^my-Rule\")\n            .build());\n\n        ctx.export(\"pvtzRuleId2\", nameRegex.rules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:pvtz:getRules\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:pvtz:getRules\n      arguments:\n        nameRegex: ^my-Rule\noutputs:\n  pvtzRuleId1: ${ids.rules[0].id}\n  pvtzRuleId2: ${nameRegex.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRules.\n","properties":{"endpointId":{"type":"string","description":"The ID of the Endpoint.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Rule IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRules.\n","properties":{"endpointId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"rules":{"items":{"$ref":"#/types/alicloud:pvtz/getRulesRule:getRulesRule"},"type":"array"}},"required":["ids","names","rules","id"],"type":"object"}},"alicloud:pvtz/getService:getService":{"description":"Using this data source can open Private Zone service automatically. If the service has been opened, it will return opened.\n\nFor information about Private Zone and how to use it, see [What is Private Zone](https://www.alibabacloud.com/help/en/dns/introduction-to-intranet-analysis).\n\n\u003e **NOTE:** Available since v1.114.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.pvtz.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.pvtz.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Pvtz.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pvtz\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := pvtz.GetService(ctx, \u0026pvtz.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pvtz.PvtzFunctions;\nimport com.pulumi.alicloud.pvtz.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = PvtzFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:pvtz:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Default value: `Off`. Valid values: `On` and `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the Private Zone service that means you have read and agreed the [Private Zone Terms of Service](https://www.alibabacloud.com/help/en/legal/latest/alibaba-cloud-international-website-product-terms-of-service-v-3-8-0). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:pvtz/getZoneRecords:getZoneRecords":{"description":"This data source provides the Private Zone Records of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.13.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example.com\";\nconst _default = new alicloud.pvtz.Zone(\"default\", {zoneName: name});\nconst defaultZoneRecord = new alicloud.pvtz.ZoneRecord(\"default\", {\n    zoneId: _default.id,\n    rr: \"www\",\n    type: \"MX\",\n    value: name,\n    ttl: 60,\n    priority: 2,\n    remark: name,\n});\nconst ids = alicloud.pvtz.getZoneRecordsOutput({\n    zoneId: defaultZoneRecord.zoneId,\n    ids: [defaultZoneRecord.recordId],\n});\nexport const pvtzZoneRecordsId0 = ids.apply(ids =\u003e ids.records?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example.com\"\ndefault = alicloud.pvtz.Zone(\"default\", zone_name=name)\ndefault_zone_record = alicloud.pvtz.ZoneRecord(\"default\",\n    zone_id=default.id,\n    rr=\"www\",\n    type=\"MX\",\n    value=name,\n    ttl=60,\n    priority=2,\n    remark=name)\nids = alicloud.pvtz.get_zone_records_output(zone_id=default_zone_record.zone_id,\n    ids=[default_zone_record.record_id])\npulumi.export(\"pvtzZoneRecordsId0\", ids.records[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example.com\";\n    var @default = new AliCloud.Pvtz.Zone(\"default\", new()\n    {\n        ZoneName = name,\n    });\n\n    var defaultZoneRecord = new AliCloud.Pvtz.ZoneRecord(\"default\", new()\n    {\n        ZoneId = @default.Id,\n        Rr = \"www\",\n        Type = \"MX\",\n        Value = name,\n        Ttl = 60,\n        Priority = 2,\n        Remark = name,\n    });\n\n    var ids = AliCloud.Pvtz.GetZoneRecords.Invoke(new()\n    {\n        ZoneId = defaultZoneRecord.ZoneId,\n        Ids = new[]\n        {\n            defaultZoneRecord.RecordId,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"pvtzZoneRecordsId0\"] = ids.Apply(getZoneRecordsResult =\u003e getZoneRecordsResult.Records[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pvtz\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example.com\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := pvtz.NewZone(ctx, \"default\", \u0026pvtz.ZoneArgs{\n\t\t\tZoneName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultZoneRecord, err := pvtz.NewZoneRecord(ctx, \"default\", \u0026pvtz.ZoneRecordArgs{\n\t\t\tZoneId:   _default.ID(),\n\t\t\tRr:       pulumi.String(\"www\"),\n\t\t\tType:     pulumi.String(\"MX\"),\n\t\t\tValue:    pulumi.String(name),\n\t\t\tTtl:      pulumi.Int(60),\n\t\t\tPriority: pulumi.Int(2),\n\t\t\tRemark:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := pvtz.GetZoneRecordsOutput(ctx, pvtz.GetZoneRecordsOutputArgs{\n\t\t\tZoneId: defaultZoneRecord.ZoneId,\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultZoneRecord.RecordId,\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"pvtzZoneRecordsId0\", ids.ApplyT(func(ids pvtz.GetZoneRecordsResult) (*string, error) {\n\t\t\treturn \u0026ids.Records[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pvtz.Zone;\nimport com.pulumi.alicloud.pvtz.ZoneArgs;\nimport com.pulumi.alicloud.pvtz.ZoneRecord;\nimport com.pulumi.alicloud.pvtz.ZoneRecordArgs;\nimport com.pulumi.alicloud.pvtz.PvtzFunctions;\nimport com.pulumi.alicloud.pvtz.inputs.GetZoneRecordsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example.com\");\n        var default_ = new Zone(\"default\", ZoneArgs.builder()\n            .zoneName(name)\n            .build());\n\n        var defaultZoneRecord = new ZoneRecord(\"defaultZoneRecord\", ZoneRecordArgs.builder()\n            .zoneId(default_.id())\n            .rr(\"www\")\n            .type(\"MX\")\n            .value(name)\n            .ttl(60)\n            .priority(2)\n            .remark(name)\n            .build());\n\n        final var ids = PvtzFunctions.getZoneRecords(GetZoneRecordsArgs.builder()\n            .zoneId(defaultZoneRecord.zoneId())\n            .ids(defaultZoneRecord.recordId())\n            .build());\n\n        ctx.export(\"pvtzZoneRecordsId0\", ids.applyValue(_ids -\u003e _ids.records()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example.com\nresources:\n  default:\n    type: alicloud:pvtz:Zone\n    properties:\n      zoneName: ${name}\n  defaultZoneRecord:\n    type: alicloud:pvtz:ZoneRecord\n    name: default\n    properties:\n      zoneId: ${default.id}\n      rr: www\n      type: MX\n      value: ${name}\n      ttl: '60'\n      priority: 2\n      remark: ${name}\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:pvtz:getZoneRecords\n      arguments:\n        zoneId: ${defaultZoneRecord.zoneId}\n        ids:\n          - ${defaultZoneRecord.recordId}\noutputs:\n  pvtzZoneRecordsId0: ${ids.records[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZoneRecords.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Private Zone Record IDs.\n"},"keyword":{"type":"string","description":"The keyword for record rr and value.\n"},"lang":{"type":"string","description":"The language of the response. Default value: \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"searchMode":{"type":"string","description":"The search mode. Default value: `EXACT`. Valid values:\n- `LIKE`: Fuzzy search.\n- `EXACT`: Exact search.\n"},"status":{"type":"string","description":"The status of the Resolve record. Valid values:\n- `ENABLE`: Enable resolution.\n- `DISABLE`: Pause parsing.\n"},"tag":{"type":"string","description":"The tag used to search for DNS records.\n"},"userClientIp":{"type":"string","description":"The IP address of the client.\n"},"zoneId":{"type":"string","description":"The ID of the private zone.\n"}},"type":"object","required":["zoneId"]},"outputs":{"description":"A collection of values returned by getZoneRecords.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyword":{"type":"string"},"lang":{"type":"string"},"outputFile":{"type":"string"},"records":{"description":"A list of Zone Record. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:pvtz/getZoneRecordsRecord:getZoneRecordsRecord"},"type":"array"},"searchMode":{"type":"string"},"status":{"description":"The state of the Private Zone Record.\n","type":"string"},"tag":{"type":"string"},"userClientIp":{"type":"string"},"zoneId":{"type":"string"}},"required":["ids","records","zoneId","id"],"type":"object"}},"alicloud:pvtz/getZones:getZones":{"description":"This data source provides the Private Zones of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.13.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example.com\";\nconst _default = new alicloud.pvtz.Zone(\"default\", {zoneName: name});\nconst ids = alicloud.pvtz.getZonesOutput({\n    ids: [_default.id],\n});\nexport const pvtzZonesId0 = ids.apply(ids =\u003e ids.zones?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example.com\"\ndefault = alicloud.pvtz.Zone(\"default\", zone_name=name)\nids = alicloud.pvtz.get_zones_output(ids=[default.id])\npulumi.export(\"pvtzZonesId0\", ids.zones[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example.com\";\n    var @default = new AliCloud.Pvtz.Zone(\"default\", new()\n    {\n        ZoneName = name,\n    });\n\n    var ids = AliCloud.Pvtz.GetZones.Invoke(new()\n    {\n        Ids = new[]\n        {\n            @default.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"pvtzZonesId0\"] = ids.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/pvtz\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example.com\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := pvtz.NewZone(ctx, \"default\", \u0026pvtz.ZoneArgs{\n\t\t\tZoneName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := pvtz.GetZonesOutput(ctx, pvtz.GetZonesOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"pvtzZonesId0\", ids.ApplyT(func(ids pvtz.GetZonesResult) (*string, error) {\n\t\t\treturn \u0026ids.Zones[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.pvtz.Zone;\nimport com.pulumi.alicloud.pvtz.ZoneArgs;\nimport com.pulumi.alicloud.pvtz.PvtzFunctions;\nimport com.pulumi.alicloud.pvtz.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example.com\");\n        var default_ = new Zone(\"default\", ZoneArgs.builder()\n            .zoneName(name)\n            .build());\n\n        final var ids = PvtzFunctions.getZones(GetZonesArgs.builder()\n            .ids(default_.id())\n            .build());\n\n        ctx.export(\"pvtzZonesId0\", ids.applyValue(_ids -\u003e _ids.zones()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example.com\nresources:\n  default:\n    type: alicloud:pvtz:Zone\n    properties:\n      zoneName: ${name}\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:pvtz:getZones\n      arguments:\n        ids:\n          - ${default.id}\noutputs:\n  pvtzZonesId0: ${ids.zones[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"enableDetails":{"type":"boolean","description":"Whether to query the detailed list of resource attributes. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Zones IDs.\n"},"keyword":{"type":"string","description":"The keyword of the zone name.\n"},"lang":{"type":"string","description":"The language of the response. Default value: \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e. Valid values: \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Zone name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"queryRegionId":{"type":"string","description":"The region ID of the virtual private cloud (VPC) associated with the zone.\n"},"queryVpcId":{"type":"string","description":"The ID of the VPC associated with the zone.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the zone belongs.\n"},"searchMode":{"type":"string","description":"The search mode. The value of Keyword is the search scope. Default value: `LIKE`. Valid values:\n- `LIKE`: Fuzzy search.\n- `EXACT`: Exact search.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyword":{"type":"string"},"lang":{"type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Zone names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"queryRegionId":{"type":"string"},"queryVpcId":{"type":"string"},"resourceGroupId":{"description":"The ID of the resource group to which the zone belongs.\n","type":"string"},"searchMode":{"type":"string"},"zones":{"description":"A list of Zone. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:pvtz/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","names","zones","id"],"type":"object"}},"alicloud:quickbi/getUsers:getUsers":{"description":"This data source provides the Quick BI Users of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.136.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.quickbi.getUsers({\n    ids: [\"example_id\"],\n});\nexport const quickBiUserId1 = ids.then(ids =\u003e ids.users?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.quickbi.get_users(ids=[\"example_id\"])\npulumi.export(\"quickBiUserId1\", ids.users[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.QuickBI.GetUsers.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"quickBiUserId1\"] = ids.Apply(getUsersResult =\u003e getUsersResult.Users[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/quickbi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := quickbi.GetUsers(ctx, \u0026quickbi.GetUsersArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"quickBiUserId1\", ids.Users[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.quickbi.QuickbiFunctions;\nimport com.pulumi.alicloud.quickbi.inputs.GetUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = QuickbiFunctions.getUsers(GetUsersArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"quickBiUserId1\", ids.users()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:quickbi:getUsers\n      arguments:\n        ids:\n          - example_id\noutputs:\n  quickBiUserId1: ${ids.users[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUsers.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of User IDs.\n"},"keyword":{"type":"string","description":"The keywords of the nicknames or usernames of the members of the organization.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getUsers.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyword":{"type":"string"},"outputFile":{"type":"string"},"users":{"items":{"$ref":"#/types/alicloud:quickbi/getUsersUser:getUsersUser"},"type":"array"}},"required":["ids","users","id"],"type":"object"}},"alicloud:quotas/getApplicationInfos:getApplicationInfos":{"inputs":{"description":"A collection of arguments for invoking getApplicationInfos.\n","properties":{"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/getApplicationInfosDimension:getApplicationInfosDimension"}},"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"}},"keyWord":{"type":"string"},"outputFile":{"type":"string"},"productCode":{"type":"string"},"quotaActionCode":{"type":"string"},"quotaCategory":{"type":"string"},"status":{"type":"string"}},"type":"object","required":["productCode"]},"outputs":{"description":"A collection of values returned by getApplicationInfos.\n","properties":{"applications":{"items":{"$ref":"#/types/alicloud:quotas/getApplicationInfosApplication:getApplicationInfosApplication"},"type":"array"},"dimensions":{"items":{"$ref":"#/types/alicloud:quotas/getApplicationInfosDimension:getApplicationInfosDimension"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyWord":{"type":"string"},"outputFile":{"type":"string"},"productCode":{"type":"string"},"quotaActionCode":{"type":"string"},"quotaCategory":{"type":"string"},"status":{"type":"string"}},"required":["applications","ids","productCode","id"],"type":"object"}},"alicloud:quotas/getQuotaAlarms:getQuotaAlarms":{"description":"This data source provides the Quotas Quota Alarms of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.116.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.quotas.getQuotaAlarms({\n    ids: [\"5VR90-421F886-81E9-xxx\"],\n    nameRegex: \"tf-testAcc\",\n});\nexport const firstQuotasQuotaAlarmId = example.then(example =\u003e example.alarms?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.quotas.get_quota_alarms(ids=[\"5VR90-421F886-81E9-xxx\"],\n    name_regex=\"tf-testAcc\")\npulumi.export(\"firstQuotasQuotaAlarmId\", example.alarms[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Quotas.GetQuotaAlarms.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"5VR90-421F886-81E9-xxx\",\n        },\n        NameRegex = \"tf-testAcc\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstQuotasQuotaAlarmId\"] = example.Apply(getQuotaAlarmsResult =\u003e getQuotaAlarmsResult.Alarms[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/quotas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := quotas.GetQuotaAlarms(ctx, \u0026quotas.GetQuotaAlarmsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"5VR90-421F886-81E9-xxx\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"tf-testAcc\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstQuotasQuotaAlarmId\", example.Alarms[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.quotas.QuotasFunctions;\nimport com.pulumi.alicloud.quotas.inputs.GetQuotaAlarmsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = QuotasFunctions.getQuotaAlarms(GetQuotaAlarmsArgs.builder()\n            .ids(\"5VR90-421F886-81E9-xxx\")\n            .nameRegex(\"tf-testAcc\")\n            .build());\n\n        ctx.export(\"firstQuotasQuotaAlarmId\", example.alarms()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:quotas:getQuotaAlarms\n      arguments:\n        ids:\n          - 5VR90-421F886-81E9-xxx\n        nameRegex: tf-testAcc\noutputs:\n  firstQuotasQuotaAlarmId: ${example.alarms[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getQuotaAlarms.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Quota Alarm IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Quota Alarm name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"productCode":{"type":"string","description":"The Product Code.\n"},"quotaActionCode":{"type":"string","description":"The Quota Action Code.\n"},"quotaAlarmName":{"type":"string","description":"The name of Quota Alarm.\n"},"quotaDimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/getQuotaAlarmsQuotaDimension:getQuotaAlarmsQuotaDimension"},"description":"The Quota Dimensions.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getQuotaAlarms.\n","properties":{"alarms":{"items":{"$ref":"#/types/alicloud:quotas/getQuotaAlarmsAlarm:getQuotaAlarmsAlarm"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"productCode":{"type":"string"},"quotaActionCode":{"type":"string"},"quotaAlarmName":{"type":"string"},"quotaDimensions":{"items":{"$ref":"#/types/alicloud:quotas/getQuotaAlarmsQuotaDimension:getQuotaAlarmsQuotaDimension"},"type":"array"}},"required":["alarms","ids","names","id"],"type":"object"}},"alicloud:quotas/getQuotaApplications:getQuotaApplications":{"description":"This data source provides the Quotas Quota Applications of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.117.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst defaultQuotaApplication = new alicloud.quotas.QuotaApplication(\"default\", {\n    productCode: \"vpc\",\n    noticeType: 3,\n    effectiveTime: \"2023-05-22T16:00:00Z\",\n    expireTime: \"2024-09-15T00:08:32Z\",\n    desireValue: 1,\n    reason: \"\",\n    quotaActionCode: \"vpc_whitelist/ha_vip_whitelist\",\n    auditMode: \"Sync\",\n    envLanguage: \"zh\",\n    quotaCategory: \"WhiteListLabel\",\n});\nconst _default = pulumi.all([defaultQuotaApplication.quotaCategory, defaultQuotaApplication.id]).apply(([quotaCategory, id]) =\u003e alicloud.quotas.getQuotaApplicationsOutput({\n    productCode: \"vpc\",\n    enableDetails: true,\n    quotaCategory: quotaCategory,\n    ids: [id],\n}));\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault_quota_application = alicloud.quotas.QuotaApplication(\"default\",\n    product_code=\"vpc\",\n    notice_type=3,\n    effective_time=\"2023-05-22T16:00:00Z\",\n    expire_time=\"2024-09-15T00:08:32Z\",\n    desire_value=1,\n    reason=\"\",\n    quota_action_code=\"vpc_whitelist/ha_vip_whitelist\",\n    audit_mode=\"Sync\",\n    env_language=\"zh\",\n    quota_category=\"WhiteListLabel\")\ndefault = pulumi.Output.all(\n    quota_category=default_quota_application.quota_category,\n    id=default_quota_application.id\n).apply(lambda resolved_outputs: alicloud.quotas.get_quota_applications_output(product_code=\"vpc\",\n    enable_details=True,\n    quota_category=resolved_outputs['quota_category'],\n    ids=[resolved_outputs['id']]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultQuotaApplication = new AliCloud.Quotas.QuotaApplication(\"default\", new()\n    {\n        ProductCode = \"vpc\",\n        NoticeType = 3,\n        EffectiveTime = \"2023-05-22T16:00:00Z\",\n        ExpireTime = \"2024-09-15T00:08:32Z\",\n        DesireValue = 1,\n        Reason = \"\",\n        QuotaActionCode = \"vpc_whitelist/ha_vip_whitelist\",\n        AuditMode = \"Sync\",\n        EnvLanguage = \"zh\",\n        QuotaCategory = \"WhiteListLabel\",\n    });\n\n    var @default = AliCloud.Quotas.GetQuotaApplications.Invoke(new()\n    {\n        ProductCode = \"vpc\",\n        EnableDetails = true,\n        QuotaCategory = defaultQuotaApplication.QuotaCategory,\n        Ids = new[]\n        {\n            defaultQuotaApplication.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/quotas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultQuotaApplication, err := quotas.NewQuotaApplication(ctx, \"default\", \u0026quotas.QuotaApplicationArgs{\n\t\t\tProductCode:     pulumi.String(\"vpc\"),\n\t\t\tNoticeType:      pulumi.Int(3),\n\t\t\tEffectiveTime:   pulumi.String(\"2023-05-22T16:00:00Z\"),\n\t\t\tExpireTime:      pulumi.String(\"2024-09-15T00:08:32Z\"),\n\t\t\tDesireValue:     pulumi.Float64(1),\n\t\t\tReason:          pulumi.String(\"\"),\n\t\t\tQuotaActionCode: pulumi.String(\"vpc_whitelist/ha_vip_whitelist\"),\n\t\t\tAuditMode:       pulumi.String(\"Sync\"),\n\t\t\tEnvLanguage:     pulumi.String(\"zh\"),\n\t\t\tQuotaCategory:   pulumi.String(\"WhiteListLabel\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = pulumi.All(defaultQuotaApplication.QuotaCategory, defaultQuotaApplication.ID()).ApplyT(func(_args []interface{}) (quotas.GetQuotaApplicationsResult, error) {\n\t\t\tquotaCategory := _args[0].(*string)\n\t\t\tid := _args[1].(string)\n\t\t\treturn quotas.GetQuotaApplicationsResult(interface{}(quotas.GetQuotaApplications(ctx, \u0026quotas.GetQuotaApplicationsArgs{\n\t\t\t\tProductCode:   \"vpc\",\n\t\t\t\tEnableDetails: pulumi.BoolRef(pulumi.BoolRef(true)),\n\t\t\t\tQuotaCategory: pulumi.StringRef(pulumi.StringRef(quotaCategory)),\n\t\t\t\tIds: []string{\n\t\t\t\t\tid,\n\t\t\t\t},\n\t\t\t}, nil))), nil\n\t\t}).(quotas.GetQuotaApplicationsResultOutput)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.quotas.QuotaApplication;\nimport com.pulumi.alicloud.quotas.QuotaApplicationArgs;\nimport com.pulumi.alicloud.quotas.QuotasFunctions;\nimport com.pulumi.alicloud.quotas.inputs.GetQuotaApplicationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultQuotaApplication = new QuotaApplication(\"defaultQuotaApplication\", QuotaApplicationArgs.builder()\n            .productCode(\"vpc\")\n            .noticeType(3)\n            .effectiveTime(\"2023-05-22T16:00:00Z\")\n            .expireTime(\"2024-09-15T00:08:32Z\")\n            .desireValue(1.0)\n            .reason(\"\")\n            .quotaActionCode(\"vpc_whitelist/ha_vip_whitelist\")\n            .auditMode(\"Sync\")\n            .envLanguage(\"zh\")\n            .quotaCategory(\"WhiteListLabel\")\n            .build());\n\n        final var default = Output.tuple(defaultQuotaApplication.quotaCategory(), defaultQuotaApplication.id()).applyValue(values -\u003e {\n            var quotaCategory = values.t1;\n            var id = values.t2;\n            return QuotasFunctions.getQuotaApplications(GetQuotaApplicationsArgs.builder()\n                .productCode(\"vpc\")\n                .enableDetails(true)\n                .quotaCategory(quotaCategory)\n                .ids(id)\n                .build());\n        });\n\n    }\n}\n```\n```yaml\nresources:\n  defaultQuotaApplication:\n    type: alicloud:quotas:QuotaApplication\n    name: default\n    properties:\n      productCode: vpc\n      noticeType: '3'\n      effectiveTime: 2023-05-22T16:00:00Z\n      expireTime: 2024-09-15T00:08:32Z\n      desireValue: '1'\n      reason: \"\"\n      quotaActionCode: vpc_whitelist/ha_vip_whitelist\n      auditMode: Sync\n      envLanguage: zh\n      quotaCategory: WhiteListLabel\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:quotas:getQuotaApplications\n      arguments:\n        productCode: vpc\n        enableDetails: 'true'\n        quotaCategory: ${defaultQuotaApplication.quotaCategory}\n        ids:\n          - ${defaultQuotaApplication.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getQuotaApplications.\n","properties":{"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/getQuotaApplicationsDimension:getQuotaApplicationsDimension"},"description":"The quota dimensions.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Application Info IDs.\n"},"keyWord":{"type":"string"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"productCode":{"type":"string","description":"The product code.\n"},"quotaActionCode":{"type":"string","description":"The ID of quota action.\n"},"quotaCategory":{"type":"string","description":"The quota category. Valid values: `CommonQuota`, `FlowControl`, `WhiteListLabel`.\n"},"status":{"type":"string","description":"The status of the quota application. Valid Values: `Agree`, `Disagree` and `Process`.\n"}},"type":"object","required":["productCode"]},"outputs":{"description":"A collection of values returned by getQuotaApplications.\n","properties":{"applications":{"items":{"$ref":"#/types/alicloud:quotas/getQuotaApplicationsApplication:getQuotaApplicationsApplication"},"type":"array"},"dimensions":{"items":{"$ref":"#/types/alicloud:quotas/getQuotaApplicationsDimension:getQuotaApplicationsDimension"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyWord":{"type":"string"},"outputFile":{"type":"string"},"productCode":{"type":"string"},"quotaActionCode":{"type":"string"},"quotaCategory":{"type":"string"},"status":{"type":"string"}},"required":["applications","ids","productCode","id"],"type":"object"}},"alicloud:quotas/getQuotas:getQuotas":{"description":"This data source provides the Quotas Quotas of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.115.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.quotas.getQuotas({\n    productCode: \"ecs\",\n    nameRegex: \"专有宿主机总数量上限\",\n});\nexport const firstQuotasQuotaId = example.then(example =\u003e example.quotas?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.quotas.get_quotas(product_code=\"ecs\",\n    name_regex=\"专有宿主机总数量上限\")\npulumi.export(\"firstQuotasQuotaId\", example.quotas[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Quotas.GetQuotas.Invoke(new()\n    {\n        ProductCode = \"ecs\",\n        NameRegex = \"专有宿主机总数量上限\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstQuotasQuotaId\"] = example.Apply(getQuotasResult =\u003e getQuotasResult.Quotas[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/quotas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := quotas.GetQuotas(ctx, \u0026quotas.GetQuotasArgs{\n\t\t\tProductCode: \"ecs\",\n\t\t\tNameRegex:   pulumi.StringRef(\"专有宿主机总数量上限\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstQuotasQuotaId\", example.Quotas[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.quotas.QuotasFunctions;\nimport com.pulumi.alicloud.quotas.inputs.GetQuotasArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = QuotasFunctions.getQuotas(GetQuotasArgs.builder()\n            .productCode(\"ecs\")\n            .nameRegex(\"专有宿主机总数量上限\")\n            .build());\n\n        ctx.export(\"firstQuotasQuotaId\", example.quotas()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:quotas:getQuotas\n      arguments:\n        productCode: ecs\n        nameRegex: 专有宿主机总数量上限\noutputs:\n  firstQuotasQuotaId: ${example.quotas[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getQuotas.\n","properties":{"dimensions":{"type":"array","items":{"$ref":"#/types/alicloud:quotas/getQuotasDimension:getQuotasDimension"},"description":"The dimensions.\n"},"groupCode":{"type":"string","description":"The group code.\n"},"keyWord":{"type":"string","description":"The key word.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Quota name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"productCode":{"type":"string","description":"The product code.\n"},"quotaActionCode":{"type":"string","description":"The quota action code.\n"},"quotaCategory":{"type":"string","description":"The category of quota. Valid Values: `FlowControl` and `CommonQuota`, `WhiteListLabel`.\n"},"sortField":{"type":"string","description":"Cloud service ECS specification quota supports setting sorting fields. Valid Values: `TIME`, `TOTAL` and `RESERVED`.\n"},"sortOrder":{"type":"string","description":"Ranking of cloud service ECS specification quota support. Valid Values: `Ascending` and `Descending`.\n"}},"type":"object","required":["productCode"]},"outputs":{"description":"A collection of values returned by getQuotas.\n","properties":{"dimensions":{"items":{"$ref":"#/types/alicloud:quotas/getQuotasDimension:getQuotasDimension"},"type":"array"},"groupCode":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"keyWord":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"productCode":{"type":"string"},"quotaActionCode":{"type":"string"},"quotaCategory":{"type":"string"},"quotas":{"items":{"$ref":"#/types/alicloud:quotas/getQuotasQuota:getQuotasQuota"},"type":"array"},"sortField":{"type":"string"},"sortOrder":{"type":"string"}},"required":["ids","names","productCode","quotas","id"],"type":"object"}},"alicloud:quotas/getTemplateApplications:getTemplateApplications":{"description":"This data source provides Quotas Template Applications available to the user.[What is Template Applications](https://www.alibabacloud.com/help/en/quota-center/developer-reference/api-quotas-2020-05-10-createquotaapplicationsfortemplate)\n\n\u003e **NOTE:** Available since v1.214.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.resourcemanager.getAccounts({\n    status: \"CreateSuccess\",\n});\nconst defaultTemplateApplications = new alicloud.quotas.TemplateApplications(\"default\", {\n    quotaActionCode: \"vpc_whitelist/ha_vip_whitelist\",\n    productCode: \"vpc\",\n    quotaCategory: \"FlowControl\",\n    aliyunUids: [_default.then(_default =\u003e _default.ids?.[0])],\n    desireValue: 6,\n    noticeType: 0,\n    envLanguage: \"zh\",\n    reason: \"example\",\n    dimensions: [\n        {\n            key: \"apiName\",\n            value: \"GetProductQuotaDimension\",\n        },\n        {\n            key: \"apiVersion\",\n            value: \"2020-05-10\",\n        },\n        {\n            key: \"regionId\",\n            value: \"cn-hangzhou\",\n        },\n    ],\n});\nconst defaultGetTemplateApplications = alicloud.quotas.getTemplateApplicationsOutput({\n    ids: [defaultTemplateApplications.id],\n    productCode: \"vpc\",\n    quotaActionCode: \"vpc_whitelist/ha_vip_whitelist\",\n    quotaCategory: \"FlowControl\",\n});\nexport const alicloudQuotasTemplateApplicationsExampleId = defaultGetTemplateApplications.apply(defaultGetTemplateApplications =\u003e defaultGetTemplateApplications.applications?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.get_accounts(status=\"CreateSuccess\")\ndefault_template_applications = alicloud.quotas.TemplateApplications(\"default\",\n    quota_action_code=\"vpc_whitelist/ha_vip_whitelist\",\n    product_code=\"vpc\",\n    quota_category=\"FlowControl\",\n    aliyun_uids=[default.ids[0]],\n    desire_value=6,\n    notice_type=0,\n    env_language=\"zh\",\n    reason=\"example\",\n    dimensions=[\n        {\n            \"key\": \"apiName\",\n            \"value\": \"GetProductQuotaDimension\",\n        },\n        {\n            \"key\": \"apiVersion\",\n            \"value\": \"2020-05-10\",\n        },\n        {\n            \"key\": \"regionId\",\n            \"value\": \"cn-hangzhou\",\n        },\n    ])\ndefault_get_template_applications = alicloud.quotas.get_template_applications_output(ids=[default_template_applications.id],\n    product_code=\"vpc\",\n    quota_action_code=\"vpc_whitelist/ha_vip_whitelist\",\n    quota_category=\"FlowControl\")\npulumi.export(\"alicloudQuotasTemplateApplicationsExampleId\", default_get_template_applications.applications[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ResourceManager.GetAccounts.Invoke(new()\n    {\n        Status = \"CreateSuccess\",\n    });\n\n    var defaultTemplateApplications = new AliCloud.Quotas.TemplateApplications(\"default\", new()\n    {\n        QuotaActionCode = \"vpc_whitelist/ha_vip_whitelist\",\n        ProductCode = \"vpc\",\n        QuotaCategory = \"FlowControl\",\n        AliyunUids = new[]\n        {\n            @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Ids[0])),\n        },\n        DesireValue = 6,\n        NoticeType = 0,\n        EnvLanguage = \"zh\",\n        Reason = \"example\",\n        Dimensions = new[]\n        {\n            new AliCloud.Quotas.Inputs.TemplateApplicationsDimensionArgs\n            {\n                Key = \"apiName\",\n                Value = \"GetProductQuotaDimension\",\n            },\n            new AliCloud.Quotas.Inputs.TemplateApplicationsDimensionArgs\n            {\n                Key = \"apiVersion\",\n                Value = \"2020-05-10\",\n            },\n            new AliCloud.Quotas.Inputs.TemplateApplicationsDimensionArgs\n            {\n                Key = \"regionId\",\n                Value = \"cn-hangzhou\",\n            },\n        },\n    });\n\n    var defaultGetTemplateApplications = AliCloud.Quotas.GetTemplateApplications.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultTemplateApplications.Id,\n        },\n        ProductCode = \"vpc\",\n        QuotaActionCode = \"vpc_whitelist/ha_vip_whitelist\",\n        QuotaCategory = \"FlowControl\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudQuotasTemplateApplicationsExampleId\"] = defaultGetTemplateApplications.Apply(getTemplateApplicationsResult =\u003e getTemplateApplicationsResult.Applications[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/quotas\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := resourcemanager.GetAccounts(ctx, \u0026resourcemanager.GetAccountsArgs{\n\t\t\tStatus: pulumi.StringRef(\"CreateSuccess\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTemplateApplications, err := quotas.NewTemplateApplications(ctx, \"default\", \u0026quotas.TemplateApplicationsArgs{\n\t\t\tQuotaActionCode: pulumi.String(\"vpc_whitelist/ha_vip_whitelist\"),\n\t\t\tProductCode:     pulumi.String(\"vpc\"),\n\t\t\tQuotaCategory:   pulumi.String(\"FlowControl\"),\n\t\t\tAliyunUids: pulumi.StringArray{\n\t\t\t\tpulumi.String(_default.Ids[0]),\n\t\t\t},\n\t\t\tDesireValue: pulumi.Float64(6),\n\t\t\tNoticeType:  pulumi.Int(0),\n\t\t\tEnvLanguage: pulumi.String(\"zh\"),\n\t\t\tReason:      pulumi.String(\"example\"),\n\t\t\tDimensions: quotas.TemplateApplicationsDimensionArray{\n\t\t\t\t\u0026quotas.TemplateApplicationsDimensionArgs{\n\t\t\t\t\tKey:   pulumi.String(\"apiName\"),\n\t\t\t\t\tValue: pulumi.String(\"GetProductQuotaDimension\"),\n\t\t\t\t},\n\t\t\t\t\u0026quotas.TemplateApplicationsDimensionArgs{\n\t\t\t\t\tKey:   pulumi.String(\"apiVersion\"),\n\t\t\t\t\tValue: pulumi.String(\"2020-05-10\"),\n\t\t\t\t},\n\t\t\t\t\u0026quotas.TemplateApplicationsDimensionArgs{\n\t\t\t\t\tKey:   pulumi.String(\"regionId\"),\n\t\t\t\t\tValue: pulumi.String(\"cn-hangzhou\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetTemplateApplications := quotas.LookupTemplateApplicationsOutput(ctx, quotas.GetTemplateApplicationsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultTemplateApplications.ID(),\n\t\t\t},\n\t\t\tProductCode:     pulumi.String(\"vpc\"),\n\t\t\tQuotaActionCode: pulumi.String(\"vpc_whitelist/ha_vip_whitelist\"),\n\t\t\tQuotaCategory:   pulumi.String(\"FlowControl\"),\n\t\t}, nil)\n\t\tctx.Export(\"alicloudQuotasTemplateApplicationsExampleId\", defaultGetTemplateApplications.ApplyT(func(defaultGetTemplateApplications quotas.GetTemplateApplicationsResult) (*string, error) {\n\t\t\treturn \u0026defaultGetTemplateApplications.Applications[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetAccountsArgs;\nimport com.pulumi.alicloud.quotas.TemplateApplications;\nimport com.pulumi.alicloud.quotas.TemplateApplicationsArgs;\nimport com.pulumi.alicloud.quotas.inputs.TemplateApplicationsDimensionArgs;\nimport com.pulumi.alicloud.quotas.QuotasFunctions;\nimport com.pulumi.alicloud.quotas.inputs.GetTemplateApplicationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ResourcemanagerFunctions.getAccounts(GetAccountsArgs.builder()\n            .status(\"CreateSuccess\")\n            .build());\n\n        var defaultTemplateApplications = new TemplateApplications(\"defaultTemplateApplications\", TemplateApplicationsArgs.builder()\n            .quotaActionCode(\"vpc_whitelist/ha_vip_whitelist\")\n            .productCode(\"vpc\")\n            .quotaCategory(\"FlowControl\")\n            .aliyunUids(default_.ids()[0])\n            .desireValue(6.0)\n            .noticeType(0)\n            .envLanguage(\"zh\")\n            .reason(\"example\")\n            .dimensions(            \n                TemplateApplicationsDimensionArgs.builder()\n                    .key(\"apiName\")\n                    .value(\"GetProductQuotaDimension\")\n                    .build(),\n                TemplateApplicationsDimensionArgs.builder()\n                    .key(\"apiVersion\")\n                    .value(\"2020-05-10\")\n                    .build(),\n                TemplateApplicationsDimensionArgs.builder()\n                    .key(\"regionId\")\n                    .value(\"cn-hangzhou\")\n                    .build())\n            .build());\n\n        final var defaultGetTemplateApplications = QuotasFunctions.getTemplateApplications(GetTemplateApplicationsArgs.builder()\n            .ids(defaultTemplateApplications.id())\n            .productCode(\"vpc\")\n            .quotaActionCode(\"vpc_whitelist/ha_vip_whitelist\")\n            .quotaCategory(\"FlowControl\")\n            .build());\n\n        ctx.export(\"alicloudQuotasTemplateApplicationsExampleId\", defaultGetTemplateApplications.applyValue(_defaultGetTemplateApplications -\u003e _defaultGetTemplateApplications.applications()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  defaultTemplateApplications:\n    type: alicloud:quotas:TemplateApplications\n    name: default\n    properties:\n      quotaActionCode: vpc_whitelist/ha_vip_whitelist\n      productCode: vpc\n      quotaCategory: FlowControl\n      aliyunUids:\n        - ${default.ids[0]}\n      desireValue: 6\n      noticeType: '0'\n      envLanguage: zh\n      reason: example\n      dimensions:\n        - key: apiName\n          value: GetProductQuotaDimension\n        - key: apiVersion\n          value: 2020-05-10\n        - key: regionId\n          value: cn-hangzhou\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getAccounts\n      arguments:\n        status: CreateSuccess\n  defaultGetTemplateApplications:\n    fn::invoke:\n      function: alicloud:quotas:getTemplateApplications\n      arguments:\n        ids:\n          - ${defaultTemplateApplications.id}\n        productCode: vpc\n        quotaActionCode: vpc_whitelist/ha_vip_whitelist\n        quotaCategory: FlowControl\noutputs:\n  alicloudQuotasTemplateApplicationsExampleId: ${defaultGetTemplateApplications.applications[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTemplateApplications.\n","properties":{"batchQuotaApplicationId":{"type":"string","description":"The ID of the quota application batch.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Template Applications IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"productCode":{"type":"string","description":"Cloud service name abbreviation.\u003e For more information about cloud services that support quota centers, see Cloud services that support quota centers.\n"},"quotaActionCode":{"type":"string","description":"The quota ID.\n"},"quotaCategory":{"type":"string","description":"The quota type. Value: `CommonQuota`, `FlowControl` and `WhiteListLabel`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTemplateApplications.\n","properties":{"applications":{"description":"A list of Template Applications Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:quotas/getTemplateApplicationsApplication:getTemplateApplicationsApplication"},"type":"array"},"batchQuotaApplicationId":{"description":"The ID of the quota application batch.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Template Applications IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"productCode":{"description":"Cloud service name abbreviation.\u003e For more information about cloud services that support quota centers, see Cloud services that support quota centers.\n","type":"string"},"quotaActionCode":{"description":"The quota ID.\n","type":"string"},"quotaCategory":{"description":"The quota type. Value:-CommonQuota (default): Generic quota.-FlowControl:API rate quota.-WhiteListLabel: Equity quota.\n","type":"string"}},"required":["applications","ids","id"],"type":"object"}},"alicloud:ram/getAccountAlias:getAccountAlias":{"description":"This data source provides an alias for the Alibaba Cloud account.\n\n\u003e **NOTE:** Available since v1.0.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst aliasDs = alicloud.ram.getAccountAlias({\n    outputFile: \"alias.txt\",\n});\nexport const accountAlias = aliasDs.then(aliasDs =\u003e aliasDs.accountAlias);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nalias_ds = alicloud.ram.get_account_alias(output_file=\"alias.txt\")\npulumi.export(\"accountAlias\", alias_ds.account_alias)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var aliasDs = AliCloud.Ram.GetAccountAlias.Invoke(new()\n    {\n        OutputFile = \"alias.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"accountAlias\"] = aliasDs.Apply(getAccountAliasResult =\u003e getAccountAliasResult.AccountAlias),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\taliasDs, err := ram.LookupAccountAlias(ctx, \u0026ram.LookupAccountAliasArgs{\n\t\t\tOutputFile: pulumi.StringRef(\"alias.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"accountAlias\", aliasDs.AccountAlias)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetAccountAliasArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var aliasDs = RamFunctions.getAccountAlias(GetAccountAliasArgs.builder()\n            .outputFile(\"alias.txt\")\n            .build());\n\n        ctx.export(\"accountAlias\", aliasDs.accountAlias());\n    }\n}\n```\n```yaml\nvariables:\n  aliasDs:\n    fn::invoke:\n      function: alicloud:ram:getAccountAlias\n      arguments:\n        outputFile: alias.txt\noutputs:\n  accountAlias: ${aliasDs.accountAlias}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccountAlias.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAccountAlias.\n","properties":{"accountAlias":{"description":"Alias of the account.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"}},"required":["accountAlias","id"],"type":"object"}},"alicloud:ram/getAccountAliases:getAccountAliases":{"inputs":{"description":"A collection of arguments for invoking getAccountAliases.\n","properties":{"outputFile":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAccountAliases.\n","properties":{"accountAlias":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"}},"required":["accountAlias","id"],"type":"object"}},"alicloud:ram/getGroups:getGroups":{"description":"This data source provides a list of RAM Groups in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available since v1.0.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst groupsDs = alicloud.ram.getGroups({\n    outputFile: \"groups.txt\",\n    userName: \"user1\",\n    nameRegex: \"^group[0-9]*\",\n});\nexport const firstGroupName = groupsDs.then(groupsDs =\u003e groupsDs.groups?.[0]?.name);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ngroups_ds = alicloud.ram.get_groups(output_file=\"groups.txt\",\n    user_name=\"user1\",\n    name_regex=\"^group[0-9]*\")\npulumi.export(\"firstGroupName\", groups_ds.groups[0].name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var groupsDs = AliCloud.Ram.GetGroups.Invoke(new()\n    {\n        OutputFile = \"groups.txt\",\n        UserName = \"user1\",\n        NameRegex = \"^group[0-9]*\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstGroupName\"] = groupsDs.Apply(getGroupsResult =\u003e getGroupsResult.Groups[0]?.Name),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgroupsDs, err := ram.GetGroups(ctx, \u0026ram.GetGroupsArgs{\n\t\t\tOutputFile: pulumi.StringRef(\"groups.txt\"),\n\t\t\tUserName:   pulumi.StringRef(\"user1\"),\n\t\t\tNameRegex:  pulumi.StringRef(\"^group[0-9]*\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstGroupName\", groupsDs.Groups[0].Name)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var groupsDs = RamFunctions.getGroups(GetGroupsArgs.builder()\n            .outputFile(\"groups.txt\")\n            .userName(\"user1\")\n            .nameRegex(\"^group[0-9]*\")\n            .build());\n\n        ctx.export(\"firstGroupName\", groupsDs.groups()[0].name());\n    }\n}\n```\n```yaml\nvariables:\n  groupsDs:\n    fn::invoke:\n      function: alicloud:ram:getGroups\n      arguments:\n        outputFile: groups.txt\n        userName: user1\n        nameRegex: ^group[0-9]*\noutputs:\n  firstGroupName: ${groupsDs.groups[0].name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGroups.\n","properties":{"nameRegex":{"type":"string","description":"A regex string to filter the returned groups by their names.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"policyName":{"type":"string","description":"Filter the results by a specific policy name. If you set this parameter without setting \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e, it will be automatically set to `System`.\n"},"policyType":{"type":"string","description":"Filter the results by a specific policy type. Valid items are `Custom` and `System`. If you set this parameter, you must set \u003cspan pulumi-lang-nodejs=\"`policyName`\" pulumi-lang-dotnet=\"`PolicyName`\" pulumi-lang-go=\"`policyName`\" pulumi-lang-python=\"`policy_name`\" pulumi-lang-yaml=\"`policyName`\" pulumi-lang-java=\"`policyName`\"\u003e`policy_name`\u003c/span\u003e as well.\n"},"userName":{"type":"string","description":"Filter the results by a specific the user name.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGroups.\n","properties":{"groups":{"description":"A list of groups. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ram/getGroupsGroup:getGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of ram group names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policyName":{"type":"string"},"policyType":{"type":"string"},"userName":{"type":"string"}},"required":["groups","names","id"],"type":"object"}},"alicloud:ram/getPolicies:getPolicies":{"description":"This data source provides the RAM Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.0.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultPolicy = new alicloud.ram.Policy(\"default\", {\n    policyName: `${name}-${_default.result}`,\n    description: `${name}-${_default.result}`,\n    force: true,\n    policyDocument: `  {\n    \\\\\"Statement\\\\\": [\n      {\n        \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n        \\\\\"Action\\\\\": \\\\\"*\\\\\",\n        \\\\\"Resource\\\\\": \\\\\"*\\\\\"\n      }\n    ],\n    \\\\\"Version\\\\\": \\\\\"1\\\\\"\n  }\n`,\n    tags: {\n        Created: \"TF\",\n        For: \"Policy\",\n    },\n});\nconst ids = alicloud.ram.getPoliciesOutput({\n    ids: [defaultPolicy.id],\n});\nexport const ramPoliciesId0 = ids.apply(ids =\u003e ids.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_policy = alicloud.ram.Policy(\"default\",\n    policy_name=f\"{name}-{default['result']}\",\n    description=f\"{name}-{default['result']}\",\n    force=True,\n    policy_document=\"\"\"  {\n    \\\"Statement\\\": [\n      {\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Action\\\": \\\"*\\\",\n        \\\"Resource\\\": \\\"*\\\"\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n\"\"\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Policy\",\n    })\nids = alicloud.ram.get_policies_output(ids=[default_policy.id])\npulumi.export(\"ramPoliciesId0\", ids.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultPolicy = new AliCloud.Ram.Policy(\"default\", new()\n    {\n        PolicyName = $\"{name}-{@default.Result}\",\n        Description = $\"{name}-{@default.Result}\",\n        Force = true,\n        PolicyDocument = @\"  {\n    \\\"\"Statement\\\"\": [\n      {\n        \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n        \\\"\"Action\\\"\": \\\"\"*\\\"\",\n        \\\"\"Resource\\\"\": \\\"\"*\\\"\"\n      }\n    ],\n    \\\"\"Version\\\"\": \\\"\"1\\\"\"\n  }\n\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Policy\" },\n        },\n    });\n\n    var ids = AliCloud.Ram.GetPolicies.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultPolicy.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ramPoliciesId0\"] = ids.Apply(getPoliciesResult =\u003e getPoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultPolicy, err := ram.NewPolicy(ctx, \"default\", \u0026ram.PolicyArgs{\n\t\t\tPolicyName:  pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tDescription: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t\tPolicyDocument: pulumi.String(`  {\n    \\\"Statement\\\": [\n      {\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Action\\\": \\\"*\\\",\n        \\\"Resource\\\": \\\"*\\\"\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n`),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"Policy\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := ram.GetPoliciesOutput(ctx, ram.GetPoliciesOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultPolicy.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"ramPoliciesId0\", ids.ApplyT(func(ids ram.GetPoliciesResult) (*string, error) {\n\t\t\treturn \u0026ids.Policies[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ram.Policy;\nimport com.pulumi.alicloud.ram.PolicyArgs;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultPolicy = new Policy(\"defaultPolicy\", PolicyArgs.builder()\n            .policyName(String.format(\"%s-%s\", name,default_.result()))\n            .description(String.format(\"%s-%s\", name,default_.result()))\n            .force(true)\n            .policyDocument(\"\"\"\n  {\n    \\\"Statement\\\": [\n      {\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Action\\\": \\\"*\\\",\n        \\\"Resource\\\": \\\"*\\\"\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n            \"\"\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Policy\")\n            ))\n            .build());\n\n        final var ids = RamFunctions.getPolicies(GetPoliciesArgs.builder()\n            .ids(defaultPolicy.id())\n            .build());\n\n        ctx.export(\"ramPoliciesId0\", ids.applyValue(_ids -\u003e _ids.policies()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultPolicy:\n    type: alicloud:ram:Policy\n    name: default\n    properties:\n      policyName: ${name}-${default.result}\n      description: ${name}-${default.result}\n      force: true\n      policyDocument: |2\n          {\n            \\\"Statement\\\": [\n              {\n                \\\"Effect\\\": \\\"Allow\\\",\n                \\\"Action\\\": \\\"*\\\",\n                \\\"Resource\\\": \\\"*\\\"\n              }\n            ],\n            \\\"Version\\\": \\\"1\\\"\n          }\n      tags:\n        Created: TF\n        For: Policy\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ram:getPolicies\n      arguments:\n        ids:\n          - ${defaultPolicy.id}\noutputs:\n  ramPoliciesId0: ${ids.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPolicies.\n","properties":{"enableDetails":{"type":"boolean","description":"Whether to query the detailed list of resource attributes. Default value: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"groupName":{"type":"string","description":"The name of the user group.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Policy IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Policy name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"roleName":{"type":"string","description":"The name of the RAM role.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the policy. Valid values: `System` and `Custom`.\n"},"userName":{"type":"string","description":"The name of the RAM user.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPolicies.\n","properties":{"enableDetails":{"type":"boolean"},"groupName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"(Available since v1.42.0) A list of Policy names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policies":{"description":"A list of Policy. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ram/getPoliciesPolicy:getPoliciesPolicy"},"type":"array"},"roleName":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"(Available since v1.262.1) The tags of the Policy.\n","type":"object"},"type":{"description":"The type of the policy.\n","type":"string"},"userName":{"description":"(Removed since v1.262.1) Field \u003cspan pulumi-lang-nodejs=\"`userName`\" pulumi-lang-dotnet=\"`UserName`\" pulumi-lang-go=\"`userName`\" pulumi-lang-python=\"`user_name`\" pulumi-lang-yaml=\"`userName`\" pulumi-lang-java=\"`userName`\"\u003e`user_name`\u003c/span\u003e has been removed from provider version 1.262.1.\n","type":"string"}},"required":["ids","names","policies","id"],"type":"object"}},"alicloud:ram/getPolicyDocument:getPolicyDocument":{"description":"This data source Generates a RAM policy document of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.184.0.\n\n## Example Usage\n\n### Basic Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst basicExample = alicloud.ram.getPolicyDocument({\n    version: \"1\",\n    statements: [{\n        effect: \"Allow\",\n        actions: [\"oss:*\"],\n        resources: [\n            \"acs:oss:*:*:myphotos\",\n            \"acs:oss:*:*:myphotos/*\",\n        ],\n    }],\n});\nconst _default = new alicloud.ram.Policy(\"default\", {\n    policyName: \"tf-example\",\n    policyDocument: basicExample.then(basicExample =\u003e basicExample.document),\n    force: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nbasic_example = alicloud.ram.get_policy_document(version=\"1\",\n    statements=[{\n        \"effect\": \"Allow\",\n        \"actions\": [\"oss:*\"],\n        \"resources\": [\n            \"acs:oss:*:*:myphotos\",\n            \"acs:oss:*:*:myphotos/*\",\n        ],\n    }])\ndefault = alicloud.ram.Policy(\"default\",\n    policy_name=\"tf-example\",\n    policy_document=basic_example.document,\n    force=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var basicExample = AliCloud.Ram.GetPolicyDocument.Invoke(new()\n    {\n        Version = \"1\",\n        Statements = new[]\n        {\n            new AliCloud.Ram.Inputs.GetPolicyDocumentStatementInputArgs\n            {\n                Effect = \"Allow\",\n                Actions = new[]\n                {\n                    \"oss:*\",\n                },\n                Resources = new[]\n                {\n                    \"acs:oss:*:*:myphotos\",\n                    \"acs:oss:*:*:myphotos/*\",\n                },\n            },\n        },\n    });\n\n    var @default = new AliCloud.Ram.Policy(\"default\", new()\n    {\n        PolicyName = \"tf-example\",\n        PolicyDocument = basicExample.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Document),\n        Force = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbasicExample, err := ram.GetPolicyDocument(ctx, \u0026ram.GetPolicyDocumentArgs{\n\t\t\tVersion: pulumi.StringRef(\"1\"),\n\t\t\tStatements: []ram.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"oss:*\",\n\t\t\t\t\t},\n\t\t\t\t\tResources: []string{\n\t\t\t\t\t\t\"acs:oss:*:*:myphotos\",\n\t\t\t\t\t\t\"acs:oss:*:*:myphotos/*\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewPolicy(ctx, \"default\", \u0026ram.PolicyArgs{\n\t\t\tPolicyName:     pulumi.String(\"tf-example\"),\n\t\t\tPolicyDocument: pulumi.String(basicExample.Document),\n\t\t\tForce:          pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.alicloud.ram.Policy;\nimport com.pulumi.alicloud.ram.PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var basicExample = RamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n            .version(\"1\")\n            .statements(GetPolicyDocumentStatementArgs.builder()\n                .effect(\"Allow\")\n                .actions(\"oss:*\")\n                .resources(                \n                    \"acs:oss:*:*:myphotos\",\n                    \"acs:oss:*:*:myphotos/*\")\n                .build())\n            .build());\n\n        var default_ = new Policy(\"default\", PolicyArgs.builder()\n            .policyName(\"tf-example\")\n            .policyDocument(basicExample.document())\n            .force(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ram:Policy\n    properties:\n      policyName: tf-example\n      policyDocument: ${basicExample.document}\n      force: true\nvariables:\n  basicExample:\n    fn::invoke:\n      function: alicloud:ram:getPolicyDocument\n      arguments:\n        version: '1'\n        statements:\n          - effect: Allow\n            actions:\n              - oss:*\n            resources:\n              - acs:oss:*:*:myphotos\n              - acs:oss:*:*:myphotos/*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n`data.alicloud_ram_policy_document.basic_example.document` will evaluate to:\n\n```json\n{\n  \"Statement\": [\n    {\n      \"Effect\": \"Allow\",\n      \"Action\": \"oss:*\",\n      \"Resource\": [\n        \"acs:oss:*:*:myphotos\",\n        \"acs:oss:*:*:myphotos/*\"\n      ]\n    }\n  ],\n  \"Version\": \"1\"\n}\n```\n\n### Example Multiple Condition Keys and Values\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst multipleCondition = alicloud.ram.getPolicyDocument({\n    version: \"1\",\n    statements: [\n        {\n            effect: \"Allow\",\n            actions: [\n                \"oss:ListBuckets\",\n                \"oss:GetBucketStat\",\n                \"oss:GetBucketInfo\",\n                \"oss:GetBucketTagging\",\n                \"oss:GetBucketAcl\",\n            ],\n            resources: [\"acs:oss:*:*:*\"],\n        },\n        {\n            effect: \"Allow\",\n            actions: [\n                \"oss:GetObject\",\n                \"oss:GetObjectAcl\",\n            ],\n            resources: [\"acs:oss:*:*:myphotos/hangzhou/2015/*\"],\n        },\n        {\n            effect: \"Allow\",\n            actions: [\"oss:ListObjects\"],\n            resources: [\"acs:oss:*:*:myphotos\"],\n            conditions: [\n                {\n                    operator: \"StringLike\",\n                    variable: \"oss:Delimiter\",\n                    values: [\"/\"],\n                },\n                {\n                    operator: \"StringLike\",\n                    variable: \"oss:Prefix\",\n                    values: [\n                        \"\",\n                        \"hangzhou/\",\n                        \"hangzhou/2015/*\",\n                    ],\n                },\n            ],\n        },\n    ],\n});\nconst policy = new alicloud.ram.Policy(\"policy\", {\n    policyName: \"tf-example-condition\",\n    policyDocument: multipleCondition.then(multipleCondition =\u003e multipleCondition.document),\n    force: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nmultiple_condition = alicloud.ram.get_policy_document(version=\"1\",\n    statements=[\n        {\n            \"effect\": \"Allow\",\n            \"actions\": [\n                \"oss:ListBuckets\",\n                \"oss:GetBucketStat\",\n                \"oss:GetBucketInfo\",\n                \"oss:GetBucketTagging\",\n                \"oss:GetBucketAcl\",\n            ],\n            \"resources\": [\"acs:oss:*:*:*\"],\n        },\n        {\n            \"effect\": \"Allow\",\n            \"actions\": [\n                \"oss:GetObject\",\n                \"oss:GetObjectAcl\",\n            ],\n            \"resources\": [\"acs:oss:*:*:myphotos/hangzhou/2015/*\"],\n        },\n        {\n            \"effect\": \"Allow\",\n            \"actions\": [\"oss:ListObjects\"],\n            \"resources\": [\"acs:oss:*:*:myphotos\"],\n            \"conditions\": [\n                {\n                    \"operator\": \"StringLike\",\n                    \"variable\": \"oss:Delimiter\",\n                    \"values\": [\"/\"],\n                },\n                {\n                    \"operator\": \"StringLike\",\n                    \"variable\": \"oss:Prefix\",\n                    \"values\": [\n                        \"\",\n                        \"hangzhou/\",\n                        \"hangzhou/2015/*\",\n                    ],\n                },\n            ],\n        },\n    ])\npolicy = alicloud.ram.Policy(\"policy\",\n    policy_name=\"tf-example-condition\",\n    policy_document=multiple_condition.document,\n    force=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var multipleCondition = AliCloud.Ram.GetPolicyDocument.Invoke(new()\n    {\n        Version = \"1\",\n        Statements = new[]\n        {\n            new AliCloud.Ram.Inputs.GetPolicyDocumentStatementInputArgs\n            {\n                Effect = \"Allow\",\n                Actions = new[]\n                {\n                    \"oss:ListBuckets\",\n                    \"oss:GetBucketStat\",\n                    \"oss:GetBucketInfo\",\n                    \"oss:GetBucketTagging\",\n                    \"oss:GetBucketAcl\",\n                },\n                Resources = new[]\n                {\n                    \"acs:oss:*:*:*\",\n                },\n            },\n            new AliCloud.Ram.Inputs.GetPolicyDocumentStatementInputArgs\n            {\n                Effect = \"Allow\",\n                Actions = new[]\n                {\n                    \"oss:GetObject\",\n                    \"oss:GetObjectAcl\",\n                },\n                Resources = new[]\n                {\n                    \"acs:oss:*:*:myphotos/hangzhou/2015/*\",\n                },\n            },\n            new AliCloud.Ram.Inputs.GetPolicyDocumentStatementInputArgs\n            {\n                Effect = \"Allow\",\n                Actions = new[]\n                {\n                    \"oss:ListObjects\",\n                },\n                Resources = new[]\n                {\n                    \"acs:oss:*:*:myphotos\",\n                },\n                Conditions = new[]\n                {\n                    new AliCloud.Ram.Inputs.GetPolicyDocumentStatementConditionInputArgs\n                    {\n                        Operator = \"StringLike\",\n                        Variable = \"oss:Delimiter\",\n                        Values = new[]\n                        {\n                            \"/\",\n                        },\n                    },\n                    new AliCloud.Ram.Inputs.GetPolicyDocumentStatementConditionInputArgs\n                    {\n                        Operator = \"StringLike\",\n                        Variable = \"oss:Prefix\",\n                        Values = new[]\n                        {\n                            \"\",\n                            \"hangzhou/\",\n                            \"hangzhou/2015/*\",\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var policy = new AliCloud.Ram.Policy(\"policy\", new()\n    {\n        PolicyName = \"tf-example-condition\",\n        PolicyDocument = multipleCondition.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Document),\n        Force = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmultipleCondition, err := ram.GetPolicyDocument(ctx, \u0026ram.GetPolicyDocumentArgs{\n\t\t\tVersion: pulumi.StringRef(\"1\"),\n\t\t\tStatements: []ram.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"oss:ListBuckets\",\n\t\t\t\t\t\t\"oss:GetBucketStat\",\n\t\t\t\t\t\t\"oss:GetBucketInfo\",\n\t\t\t\t\t\t\"oss:GetBucketTagging\",\n\t\t\t\t\t\t\"oss:GetBucketAcl\",\n\t\t\t\t\t},\n\t\t\t\t\tResources: []string{\n\t\t\t\t\t\t\"acs:oss:*:*:*\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"oss:GetObject\",\n\t\t\t\t\t\t\"oss:GetObjectAcl\",\n\t\t\t\t\t},\n\t\t\t\t\tResources: []string{\n\t\t\t\t\t\t\"acs:oss:*:*:myphotos/hangzhou/2015/*\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"oss:ListObjects\",\n\t\t\t\t\t},\n\t\t\t\t\tResources: []string{\n\t\t\t\t\t\t\"acs:oss:*:*:myphotos\",\n\t\t\t\t\t},\n\t\t\t\t\tConditions: []ram.GetPolicyDocumentStatementCondition{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tOperator: \"StringLike\",\n\t\t\t\t\t\t\tVariable: \"oss:Delimiter\",\n\t\t\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\t\t\"/\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tOperator: \"StringLike\",\n\t\t\t\t\t\t\tVariable: \"oss:Prefix\",\n\t\t\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\t\t\"\",\n\t\t\t\t\t\t\t\t\"hangzhou/\",\n\t\t\t\t\t\t\t\t\"hangzhou/2015/*\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewPolicy(ctx, \"policy\", \u0026ram.PolicyArgs{\n\t\t\tPolicyName:     pulumi.String(\"tf-example-condition\"),\n\t\t\tPolicyDocument: pulumi.String(multipleCondition.Document),\n\t\t\tForce:          pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.alicloud.ram.Policy;\nimport com.pulumi.alicloud.ram.PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var multipleCondition = RamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n            .version(\"1\")\n            .statements(            \n                GetPolicyDocumentStatementArgs.builder()\n                    .effect(\"Allow\")\n                    .actions(                    \n                        \"oss:ListBuckets\",\n                        \"oss:GetBucketStat\",\n                        \"oss:GetBucketInfo\",\n                        \"oss:GetBucketTagging\",\n                        \"oss:GetBucketAcl\")\n                    .resources(\"acs:oss:*:*:*\")\n                    .build(),\n                GetPolicyDocumentStatementArgs.builder()\n                    .effect(\"Allow\")\n                    .actions(                    \n                        \"oss:GetObject\",\n                        \"oss:GetObjectAcl\")\n                    .resources(\"acs:oss:*:*:myphotos/hangzhou/2015/*\")\n                    .build(),\n                GetPolicyDocumentStatementArgs.builder()\n                    .effect(\"Allow\")\n                    .actions(\"oss:ListObjects\")\n                    .resources(\"acs:oss:*:*:myphotos\")\n                    .conditions(                    \n                        GetPolicyDocumentStatementConditionArgs.builder()\n                            .operator(\"StringLike\")\n                            .variable(\"oss:Delimiter\")\n                            .values(\"/\")\n                            .build(),\n                        GetPolicyDocumentStatementConditionArgs.builder()\n                            .operator(\"StringLike\")\n                            .variable(\"oss:Prefix\")\n                            .values(                            \n                                \"\",\n                                \"hangzhou/\",\n                                \"hangzhou/2015/*\")\n                            .build())\n                    .build())\n            .build());\n\n        var policy = new Policy(\"policy\", PolicyArgs.builder()\n            .policyName(\"tf-example-condition\")\n            .policyDocument(multipleCondition.document())\n            .force(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy:\n    type: alicloud:ram:Policy\n    properties:\n      policyName: tf-example-condition\n      policyDocument: ${multipleCondition.document}\n      force: true\nvariables:\n  multipleCondition:\n    fn::invoke:\n      function: alicloud:ram:getPolicyDocument\n      arguments:\n        version: '1'\n        statements:\n          - effect: Allow\n            actions:\n              - oss:ListBuckets\n              - oss:GetBucketStat\n              - oss:GetBucketInfo\n              - oss:GetBucketTagging\n              - oss:GetBucketAcl\n            resources:\n              - acs:oss:*:*:*\n          - effect: Allow\n            actions:\n              - oss:GetObject\n              - oss:GetObjectAcl\n            resources:\n              - acs:oss:*:*:myphotos/hangzhou/2015/*\n          - effect: Allow\n            actions:\n              - oss:ListObjects\n            resources:\n              - acs:oss:*:*:myphotos\n            conditions:\n              - operator: StringLike\n                variable: oss:Delimiter\n                values:\n                  - /\n              - operator: StringLike\n                variable: oss:Prefix\n                values:\n                  - \"\"\n                  - hangzhou/\n                  - hangzhou/2015/*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n`data.alicloud_ram_policy_document.multiple_condition.document` will evaluate to:\n\n```json\n{\n  \"Statement\": [\n    {\n      \"Effect\": \"Allow\",\n      \"Action\": [\n        \"oss:ListBuckets\",\n        \"oss:GetBucketStat\",\n        \"oss:GetBucketInfo\",\n        \"oss:GetBucketTagging\",\n        \"oss:GetBucketAcl\"\n      ],\n      \"Resource\": \"acs:oss:*:*:*\"\n    },\n    {\n      \"Effect\": \"Allow\",\n      \"Action\": [\n        \"oss:GetObject\",\n        \"oss:GetObjectAcl\"\n      ],\n      \"Resource\": \"acs:oss:*:*:myphotos/hangzhou/2015/*\"\n    },\n    {\n      \"Effect\": \"Allow\",\n      \"Action\": \"oss:ListObjects\",\n      \"Resource\": \"acs:oss:*:*:myphotos\",\n      \"Condition\": {\n        \"StringLike\": {\n          \"oss:Delimiter\": \"/\",\n          \"oss:Prefix\": [\n            \"\",\n            \"hangzhou/\",\n            \"hangzhou/2015/*\"\n          ]\n        }\n      }\n    }\n  ],\n  \"Version\": \"1\"\n}\n```\n\n### Example Assume-Role Policy with RAM Principal\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ramExample = alicloud.ram.getPolicyDocument({\n    statements: [{\n        effect: \"Allow\",\n        actions: [\"sts:AssumeRole\"],\n        principals: [{\n            entity: \"RAM\",\n            identifiers: [\"acs:ram::123456789012****:root\"],\n        }],\n    }],\n});\nconst role = new alicloud.ram.Role(\"role\", {\n    name: \"tf-example-role-ram\",\n    document: ramExample.then(ramExample =\u003e ramExample.document),\n    force: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nram_example = alicloud.ram.get_policy_document(statements=[{\n    \"effect\": \"Allow\",\n    \"actions\": [\"sts:AssumeRole\"],\n    \"principals\": [{\n        \"entity\": \"RAM\",\n        \"identifiers\": [\"acs:ram::123456789012****:root\"],\n    }],\n}])\nrole = alicloud.ram.Role(\"role\",\n    name=\"tf-example-role-ram\",\n    document=ram_example.document,\n    force=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ramExample = AliCloud.Ram.GetPolicyDocument.Invoke(new()\n    {\n        Statements = new[]\n        {\n            new AliCloud.Ram.Inputs.GetPolicyDocumentStatementInputArgs\n            {\n                Effect = \"Allow\",\n                Actions = new[]\n                {\n                    \"sts:AssumeRole\",\n                },\n                Principals = new[]\n                {\n                    new AliCloud.Ram.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n                    {\n                        Entity = \"RAM\",\n                        Identifiers = new[]\n                        {\n                            \"acs:ram::123456789012****:root\",\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var role = new AliCloud.Ram.Role(\"role\", new()\n    {\n        Name = \"tf-example-role-ram\",\n        Document = ramExample.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Document),\n        Force = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tramExample, err := ram.GetPolicyDocument(ctx, \u0026ram.GetPolicyDocumentArgs{\n\t\t\tStatements: []ram.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t\tPrincipals: []ram.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tEntity: \"RAM\",\n\t\t\t\t\t\t\tIdentifiers: []string{\n\t\t\t\t\t\t\t\t\"acs:ram::123456789012****:root\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewRole(ctx, \"role\", \u0026ram.RoleArgs{\n\t\t\tName:     pulumi.String(\"tf-example-role-ram\"),\n\t\t\tDocument: pulumi.String(ramExample.Document),\n\t\t\tForce:    pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ramExample = RamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n            .statements(GetPolicyDocumentStatementArgs.builder()\n                .effect(\"Allow\")\n                .actions(\"sts:AssumeRole\")\n                .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n                    .entity(\"RAM\")\n                    .identifiers(\"acs:ram::123456789012****:root\")\n                    .build())\n                .build())\n            .build());\n\n        var role = new Role(\"role\", RoleArgs.builder()\n            .name(\"tf-example-role-ram\")\n            .document(ramExample.document())\n            .force(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  role:\n    type: alicloud:ram:Role\n    properties:\n      name: tf-example-role-ram\n      document: ${ramExample.document}\n      force: true\nvariables:\n  ramExample:\n    fn::invoke:\n      function: alicloud:ram:getPolicyDocument\n      arguments:\n        statements:\n          - effect: Allow\n            actions:\n              - sts:AssumeRole\n            principals:\n              - entity: RAM\n                identifiers:\n                  - acs:ram::123456789012****:root\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n`data.alicloud_ram_policy_document.ram_example.document` will evaluate to:\n\n```json\n{\n  \"Statement\": [\n    {\n      \"Effect\": \"Allow\",\n      \"Action\": \"sts:AssumeRole\",\n      \"Principal\": {\n        \"RAM\": [\n          \"acs:ram::123456789012****:root\"\n        ]\n      }\n    }\n  ],\n  \"Version\": \"1\"\n}\n```\n\n### Example Assume-Role Policy with Service Principal\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst serviceExample = alicloud.ram.getPolicyDocument({\n    statements: [{\n        effect: \"Allow\",\n        actions: [\"sts:AssumeRole\"],\n        principals: [{\n            entity: \"Service\",\n            identifiers: [\"ecs.aliyuncs.com\"],\n        }],\n    }],\n});\nconst role = new alicloud.ram.Role(\"role\", {\n    name: \"tf-example-role-service\",\n    document: serviceExample.then(serviceExample =\u003e serviceExample.document),\n    force: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nservice_example = alicloud.ram.get_policy_document(statements=[{\n    \"effect\": \"Allow\",\n    \"actions\": [\"sts:AssumeRole\"],\n    \"principals\": [{\n        \"entity\": \"Service\",\n        \"identifiers\": [\"ecs.aliyuncs.com\"],\n    }],\n}])\nrole = alicloud.ram.Role(\"role\",\n    name=\"tf-example-role-service\",\n    document=service_example.document,\n    force=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var serviceExample = AliCloud.Ram.GetPolicyDocument.Invoke(new()\n    {\n        Statements = new[]\n        {\n            new AliCloud.Ram.Inputs.GetPolicyDocumentStatementInputArgs\n            {\n                Effect = \"Allow\",\n                Actions = new[]\n                {\n                    \"sts:AssumeRole\",\n                },\n                Principals = new[]\n                {\n                    new AliCloud.Ram.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n                    {\n                        Entity = \"Service\",\n                        Identifiers = new[]\n                        {\n                            \"ecs.aliyuncs.com\",\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var role = new AliCloud.Ram.Role(\"role\", new()\n    {\n        Name = \"tf-example-role-service\",\n        Document = serviceExample.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Document),\n        Force = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tserviceExample, err := ram.GetPolicyDocument(ctx, \u0026ram.GetPolicyDocumentArgs{\n\t\t\tStatements: []ram.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t\tPrincipals: []ram.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tEntity: \"Service\",\n\t\t\t\t\t\t\tIdentifiers: []string{\n\t\t\t\t\t\t\t\t\"ecs.aliyuncs.com\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewRole(ctx, \"role\", \u0026ram.RoleArgs{\n\t\t\tName:     pulumi.String(\"tf-example-role-service\"),\n\t\t\tDocument: pulumi.String(serviceExample.Document),\n\t\t\tForce:    pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var serviceExample = RamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n            .statements(GetPolicyDocumentStatementArgs.builder()\n                .effect(\"Allow\")\n                .actions(\"sts:AssumeRole\")\n                .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n                    .entity(\"Service\")\n                    .identifiers(\"ecs.aliyuncs.com\")\n                    .build())\n                .build())\n            .build());\n\n        var role = new Role(\"role\", RoleArgs.builder()\n            .name(\"tf-example-role-service\")\n            .document(serviceExample.document())\n            .force(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  role:\n    type: alicloud:ram:Role\n    properties:\n      name: tf-example-role-service\n      document: ${serviceExample.document}\n      force: true\nvariables:\n  serviceExample:\n    fn::invoke:\n      function: alicloud:ram:getPolicyDocument\n      arguments:\n        statements:\n          - effect: Allow\n            actions:\n              - sts:AssumeRole\n            principals:\n              - entity: Service\n                identifiers:\n                  - ecs.aliyuncs.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n`data.alicloud_ram_policy_document.service_example.document` will evaluate to:\n\n```json\n{\n  \"Statement\": [\n    {\n      \"Effect\": \"Allow\",\n      \"Action\": \"sts:AssumeRole\",\n      \"Principal\": {\n        \"Service\": [\n          \"ecs.aliyuncs.com\"\n        ]\n      }\n    }\n  ],\n  \"Version\": \"1\"\n}\n```\n\n### Example Assume-Role Policy with Federated Principal\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst federatedExample = alicloud.ram.getPolicyDocument({\n    statements: [{\n        effect: \"Allow\",\n        actions: [\"sts:AssumeRole\"],\n        principals: [{\n            entity: \"Federated\",\n            identifiers: [\"acs:ram::123456789012****:saml-provider/testprovider\"],\n        }],\n        conditions: [{\n            operator: \"StringEquals\",\n            variable: \"saml:recipient\",\n            values: [\"https://signin.aliyun.com/saml-role/sso\"],\n        }],\n    }],\n});\nconst role = new alicloud.ram.Role(\"role\", {\n    name: \"tf-example-role-federated\",\n    document: federatedExample.then(federatedExample =\u003e federatedExample.document),\n    force: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfederated_example = alicloud.ram.get_policy_document(statements=[{\n    \"effect\": \"Allow\",\n    \"actions\": [\"sts:AssumeRole\"],\n    \"principals\": [{\n        \"entity\": \"Federated\",\n        \"identifiers\": [\"acs:ram::123456789012****:saml-provider/testprovider\"],\n    }],\n    \"conditions\": [{\n        \"operator\": \"StringEquals\",\n        \"variable\": \"saml:recipient\",\n        \"values\": [\"https://signin.aliyun.com/saml-role/sso\"],\n    }],\n}])\nrole = alicloud.ram.Role(\"role\",\n    name=\"tf-example-role-federated\",\n    document=federated_example.document,\n    force=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var federatedExample = AliCloud.Ram.GetPolicyDocument.Invoke(new()\n    {\n        Statements = new[]\n        {\n            new AliCloud.Ram.Inputs.GetPolicyDocumentStatementInputArgs\n            {\n                Effect = \"Allow\",\n                Actions = new[]\n                {\n                    \"sts:AssumeRole\",\n                },\n                Principals = new[]\n                {\n                    new AliCloud.Ram.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n                    {\n                        Entity = \"Federated\",\n                        Identifiers = new[]\n                        {\n                            \"acs:ram::123456789012****:saml-provider/testprovider\",\n                        },\n                    },\n                },\n                Conditions = new[]\n                {\n                    new AliCloud.Ram.Inputs.GetPolicyDocumentStatementConditionInputArgs\n                    {\n                        Operator = \"StringEquals\",\n                        Variable = \"saml:recipient\",\n                        Values = new[]\n                        {\n                            \"https://signin.aliyun.com/saml-role/sso\",\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var role = new AliCloud.Ram.Role(\"role\", new()\n    {\n        Name = \"tf-example-role-federated\",\n        Document = federatedExample.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Document),\n        Force = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfederatedExample, err := ram.GetPolicyDocument(ctx, \u0026ram.GetPolicyDocumentArgs{\n\t\t\tStatements: []ram.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t\tPrincipals: []ram.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tEntity: \"Federated\",\n\t\t\t\t\t\t\tIdentifiers: []string{\n\t\t\t\t\t\t\t\t\"acs:ram::123456789012****:saml-provider/testprovider\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tConditions: []ram.GetPolicyDocumentStatementCondition{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tOperator: \"StringEquals\",\n\t\t\t\t\t\t\tVariable: \"saml:recipient\",\n\t\t\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\t\t\"https://signin.aliyun.com/saml-role/sso\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewRole(ctx, \"role\", \u0026ram.RoleArgs{\n\t\t\tName:     pulumi.String(\"tf-example-role-federated\"),\n\t\t\tDocument: pulumi.String(federatedExample.Document),\n\t\t\tForce:    pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var federatedExample = RamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n            .statements(GetPolicyDocumentStatementArgs.builder()\n                .effect(\"Allow\")\n                .actions(\"sts:AssumeRole\")\n                .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n                    .entity(\"Federated\")\n                    .identifiers(\"acs:ram::123456789012****:saml-provider/testprovider\")\n                    .build())\n                .conditions(GetPolicyDocumentStatementConditionArgs.builder()\n                    .operator(\"StringEquals\")\n                    .variable(\"saml:recipient\")\n                    .values(\"https://signin.aliyun.com/saml-role/sso\")\n                    .build())\n                .build())\n            .build());\n\n        var role = new Role(\"role\", RoleArgs.builder()\n            .name(\"tf-example-role-federated\")\n            .document(federatedExample.document())\n            .force(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  role:\n    type: alicloud:ram:Role\n    properties:\n      name: tf-example-role-federated\n      document: ${federatedExample.document}\n      force: true\nvariables:\n  federatedExample:\n    fn::invoke:\n      function: alicloud:ram:getPolicyDocument\n      arguments:\n        statements:\n          - effect: Allow\n            actions:\n              - sts:AssumeRole\n            principals:\n              - entity: Federated\n                identifiers:\n                  - acs:ram::123456789012****:saml-provider/testprovider\n            conditions:\n              - operator: StringEquals\n                variable: saml:recipient\n                values:\n                  - https://signin.aliyun.com/saml-role/sso\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n`data.alicloud_ram_policy_document.federated_example.document` will evaluate to:\n\n```json\n{\n  \"Statement\": [\n    {\n      \"Effect\": \"Allow\",\n      \"Action\": \"sts:AssumeRole\",\n      \"Principal\": {\n        \"Federated\": [\n          \"acs:ram::123456789012****:saml-provider/testprovider\"\n        ]\n      },\n      \"Condition\": {\n        \"StringEquals\": {\n          \"saml:recipient\": \"https://signin.aliyun.com/saml-role/sso\"\n        }\n      }\n    }\n  ],\n  \"Version\": \"1\"\n}\n```\n","inputs":{"description":"A collection of arguments for invoking getPolicyDocument.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"statements":{"type":"array","items":{"$ref":"#/types/alicloud:ram/getPolicyDocumentStatement:getPolicyDocumentStatement"},"description":"Statement of the RAM policy document. See the following `Block statement`. See \u003cspan pulumi-lang-nodejs=\"`statement`\" pulumi-lang-dotnet=\"`Statement`\" pulumi-lang-go=\"`statement`\" pulumi-lang-python=\"`statement`\" pulumi-lang-yaml=\"`statement`\" pulumi-lang-java=\"`statement`\"\u003e`statement`\u003c/span\u003e below.\n"},"version":{"type":"string","description":"Version of the RAM policy document. Valid value is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e. Default value is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPolicyDocument.\n","properties":{"document":{"description":"Standard policy document rendered based on the arguments above.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"statements":{"items":{"$ref":"#/types/alicloud:ram/getPolicyDocumentStatement:getPolicyDocumentStatement"},"type":"array"},"version":{"type":"string"}},"required":["document","id"],"type":"object"}},"alicloud:ram/getRolePolicyAttachments:getRolePolicyAttachments":{"description":"This data source provides Ram Role Policy Attachment available to the user.[What is Role Policy Attachment](https://next.api.alibabacloud.com/document/Ram/2015-05-01/AttachPolicyToRole)\n\n\u003e **NOTE:** Available since v1.248.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst role = new alicloud.ram.Role(\"role\", {\n    name: \"roleName\",\n    document: `    {\n      \\\\\"Statement\\\\\": [\n        {\n          \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n          \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n          \\\\\"Principal\\\\\": {\n            \\\\\"Service\\\\\": [\n              \\\\\"apigateway.aliyuncs.com\\\\\", \n              \\\\\"ecs.aliyuncs.com\\\\\"\n            ]\n          }\n        }\n      ],\n      \\\\\"Version\\\\\": \\\\\"1\\\\\"\n    }\n`,\n    description: \"this is a role test.\",\n});\nconst defaultInteger = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst policy = new alicloud.ram.Policy(\"policy\", {\n    policyName: `tf-example-${defaultInteger.result}`,\n    policyDocument: `  {\n    \\\\\"Statement\\\\\": [\n      {\n        \\\\\"Action\\\\\": [\n          \\\\\"oss:ListObjects\\\\\",\n          \\\\\"oss:GetObject\\\\\"\n        ],\n        \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n        \\\\\"Resource\\\\\": [\n          \\\\\"acs:oss:*:*:mybucket\\\\\",\n          \\\\\"acs:oss:*:*:mybucket/*\\\\\"\n        ]\n      }\n    ],\n      \\\\\"Version\\\\\": \\\\\"1\\\\\"\n  }\n`,\n    description: \"this is a policy test\",\n});\nconst defaultRolePolicyAttachment = new alicloud.ram.RolePolicyAttachment(\"default\", {\n    policyName: policy.policyName,\n    policyType: policy.type,\n    roleName: role.name,\n});\nconst _default = alicloud.ram.getRolePolicyAttachmentsOutput({\n    ids: [defaultRolePolicyAttachment.id],\n    roleName: role.id,\n});\nexport const alicloudRamRolePolicyAttachmentExampleId = _default.apply(_default =\u003e _default.attachments?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nrole = alicloud.ram.Role(\"role\",\n    name=\"roleName\",\n    document=\"\"\"    {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"apigateway.aliyuncs.com\\\", \n              \\\"ecs.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n    }\n\"\"\",\n    description=\"this is a role test.\")\ndefault_integer = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\npolicy = alicloud.ram.Policy(\"policy\",\n    policy_name=f\"tf-example-{default_integer['result']}\",\n    policy_document=\"\"\"  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": [\n          \\\"oss:ListObjects\\\",\n          \\\"oss:GetObject\\\"\n        ],\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Resource\\\": [\n          \\\"acs:oss:*:*:mybucket\\\",\n          \\\"acs:oss:*:*:mybucket/*\\\"\n        ]\n      }\n    ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n\"\"\",\n    description=\"this is a policy test\")\ndefault_role_policy_attachment = alicloud.ram.RolePolicyAttachment(\"default\",\n    policy_name=policy.policy_name,\n    policy_type=policy.type,\n    role_name=role.name)\ndefault = alicloud.ram.get_role_policy_attachments_output(ids=[default_role_policy_attachment.id],\n    role_name=role.id)\npulumi.export(\"alicloudRamRolePolicyAttachmentExampleId\", default.attachments[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var role = new AliCloud.Ram.Role(\"role\", new()\n    {\n        Name = \"roleName\",\n        Document = @\"    {\n      \\\"\"Statement\\\"\": [\n        {\n          \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n          \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n          \\\"\"Principal\\\"\": {\n            \\\"\"Service\\\"\": [\n              \\\"\"apigateway.aliyuncs.com\\\"\", \n              \\\"\"ecs.aliyuncs.com\\\"\"\n            ]\n          }\n        }\n      ],\n      \\\"\"Version\\\"\": \\\"\"1\\\"\"\n    }\n\",\n        Description = \"this is a role test.\",\n    });\n\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var policy = new AliCloud.Ram.Policy(\"policy\", new()\n    {\n        PolicyName = $\"tf-example-{defaultInteger.Result}\",\n        PolicyDocument = @\"  {\n    \\\"\"Statement\\\"\": [\n      {\n        \\\"\"Action\\\"\": [\n          \\\"\"oss:ListObjects\\\"\",\n          \\\"\"oss:GetObject\\\"\"\n        ],\n        \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n        \\\"\"Resource\\\"\": [\n          \\\"\"acs:oss:*:*:mybucket\\\"\",\n          \\\"\"acs:oss:*:*:mybucket/*\\\"\"\n        ]\n      }\n    ],\n      \\\"\"Version\\\"\": \\\"\"1\\\"\"\n  }\n\",\n        Description = \"this is a policy test\",\n    });\n\n    var defaultRolePolicyAttachment = new AliCloud.Ram.RolePolicyAttachment(\"default\", new()\n    {\n        PolicyName = policy.PolicyName,\n        PolicyType = policy.Type,\n        RoleName = role.Name,\n    });\n\n    var @default = AliCloud.Ram.GetRolePolicyAttachments.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultRolePolicyAttachment.Id,\n        },\n        RoleName = role.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudRamRolePolicyAttachmentExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getRolePolicyAttachmentsResult =\u003e getRolePolicyAttachmentsResult.Attachments[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nrole, err := ram.NewRole(ctx, \"role\", \u0026ram.RoleArgs{\nName: pulumi.String(\"roleName\"),\nDocument: pulumi.String(`    {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"apigateway.aliyuncs.com\\\", \n              \\\"ecs.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n    }\n`),\nDescription: pulumi.String(\"this is a role test.\"),\n})\nif err != nil {\nreturn err\n}\ndefaultInteger, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMin: 10000,\nMax: 99999,\n})\nif err != nil {\nreturn err\n}\npolicy, err := ram.NewPolicy(ctx, \"policy\", \u0026ram.PolicyArgs{\nPolicyName: pulumi.Sprintf(\"tf-example-%v\", defaultInteger.Result),\nPolicyDocument: pulumi.String(`  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": [\n          \\\"oss:ListObjects\\\",\n          \\\"oss:GetObject\\\"\n        ],\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Resource\\\": [\n          \\\"acs:oss:*:*:mybucket\\\",\n          \\\"acs:oss:*:*:mybucket/*\\\"\n        ]\n      }\n    ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n`),\nDescription: pulumi.String(\"this is a policy test\"),\n})\nif err != nil {\nreturn err\n}\ndefaultRolePolicyAttachment, err := ram.NewRolePolicyAttachment(ctx, \"default\", \u0026ram.RolePolicyAttachmentArgs{\nPolicyName: policy.PolicyName,\nPolicyType: policy.Type,\nRoleName: role.Name,\n})\nif err != nil {\nreturn err\n}\n_default := ram.GetRolePolicyAttachmentsOutput(ctx, ram.GetRolePolicyAttachmentsOutputArgs{\nIds: pulumi.StringArray{\ndefaultRolePolicyAttachment.ID(),\n},\nRoleName: role.ID(),\n}, nil);\nctx.Export(\"alicloudRamRolePolicyAttachmentExampleId\", _default.ApplyT(func(_default ram.GetRolePolicyAttachmentsResult) (*string, error) {\nreturn \u0026default.Attachments[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ram.Policy;\nimport com.pulumi.alicloud.ram.PolicyArgs;\nimport com.pulumi.alicloud.ram.RolePolicyAttachment;\nimport com.pulumi.alicloud.ram.RolePolicyAttachmentArgs;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetRolePolicyAttachmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var role = new Role(\"role\", RoleArgs.builder()\n            .name(\"roleName\")\n            .document(\"\"\"\n    {\n      \\\"Statement\\\": [\n        {\n          \\\"Action\\\": \\\"sts:AssumeRole\\\",\n          \\\"Effect\\\": \\\"Allow\\\",\n          \\\"Principal\\\": {\n            \\\"Service\\\": [\n              \\\"apigateway.aliyuncs.com\\\", \n              \\\"ecs.aliyuncs.com\\\"\n            ]\n          }\n        }\n      ],\n      \\\"Version\\\": \\\"1\\\"\n    }\n            \"\"\")\n            .description(\"this is a role test.\")\n            .build());\n\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var policy = new Policy(\"policy\", PolicyArgs.builder()\n            .policyName(String.format(\"tf-example-%s\", defaultInteger.result()))\n            .policyDocument(\"\"\"\n  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": [\n          \\\"oss:ListObjects\\\",\n          \\\"oss:GetObject\\\"\n        ],\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Resource\\\": [\n          \\\"acs:oss:*:*:mybucket\\\",\n          \\\"acs:oss:*:*:mybucket/*\\\"\n        ]\n      }\n    ],\n      \\\"Version\\\": \\\"1\\\"\n  }\n            \"\"\")\n            .description(\"this is a policy test\")\n            .build());\n\n        var defaultRolePolicyAttachment = new RolePolicyAttachment(\"defaultRolePolicyAttachment\", RolePolicyAttachmentArgs.builder()\n            .policyName(policy.policyName())\n            .policyType(policy.type())\n            .roleName(role.name())\n            .build());\n\n        final var default = RamFunctions.getRolePolicyAttachments(GetRolePolicyAttachmentsArgs.builder()\n            .ids(defaultRolePolicyAttachment.id())\n            .roleName(role.id())\n            .build());\n\n        ctx.export(\"alicloudRamRolePolicyAttachmentExampleId\", default_.applyValue(_default_ -\u003e _default_.attachments()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  role:\n    type: alicloud:ram:Role\n    properties:\n      name: roleName\n      document: \"    {\\n      \\\\\\\"Statement\\\\\\\": [\\n        {\\n          \\\\\\\"Action\\\\\\\": \\\\\\\"sts:AssumeRole\\\\\\\",\\n          \\\\\\\"Effect\\\\\\\": \\\\\\\"Allow\\\\\\\",\\n          \\\\\\\"Principal\\\\\\\": {\\n            \\\\\\\"Service\\\\\\\": [\\n              \\\\\\\"apigateway.aliyuncs.com\\\\\\\", \\n              \\\\\\\"ecs.aliyuncs.com\\\\\\\"\\n            ]\\n          }\\n        }\\n      ],\\n      \\\\\\\"Version\\\\\\\": \\\\\\\"1\\\\\\\"\\n    }\\n\"\n      description: this is a role test.\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      min: 10000\n      max: 99999\n  policy:\n    type: alicloud:ram:Policy\n    properties:\n      policyName: tf-example-${defaultInteger.result}\n      policyDocument: |2\n          {\n            \\\"Statement\\\": [\n              {\n                \\\"Action\\\": [\n                  \\\"oss:ListObjects\\\",\n                  \\\"oss:GetObject\\\"\n                ],\n                \\\"Effect\\\": \\\"Allow\\\",\n                \\\"Resource\\\": [\n                  \\\"acs:oss:*:*:mybucket\\\",\n                  \\\"acs:oss:*:*:mybucket/*\\\"\n                ]\n              }\n            ],\n              \\\"Version\\\": \\\"1\\\"\n          }\n      description: this is a policy test\n  defaultRolePolicyAttachment:\n    type: alicloud:ram:RolePolicyAttachment\n    name: default\n    properties:\n      policyName: ${policy.policyName}\n      policyType: ${policy.type}\n      roleName: ${role.name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ram:getRolePolicyAttachments\n      arguments:\n        ids:\n          - ${defaultRolePolicyAttachment.id}\n        roleName: ${role.id}\noutputs:\n  alicloudRamRolePolicyAttachmentExampleId: ${default.attachments[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRolePolicyAttachments.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Role Policy Attachment IDs. The value is formulated as `role:\u003cpolicy_name\u003e:\u003cpolicy_type\u003e:\u003crole_name\u003e`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"roleName":{"type":"string","description":"The RAM role name.\n"}},"type":"object","required":["roleName"]},"outputs":{"description":"A collection of values returned by getRolePolicyAttachments.\n","properties":{"attachments":{"description":"A list of Role Policy Attachment Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ram/getRolePolicyAttachmentsAttachment:getRolePolicyAttachmentsAttachment"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Role Policy Attachment IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"roleName":{"type":"string"}},"required":["attachments","ids","roleName","id"],"type":"object"}},"alicloud:ram/getRoles:getRoles":{"description":"This data source provides the RAM Roles of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.0.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new random.index.Integer(\"default\", {\n    min: 10000,\n    max: 99999,\n});\nconst defaultRole = new alicloud.ram.Role(\"default\", {\n    roleName: `${name}-${_default.result}`,\n    description: `${name}-${_default.result}`,\n    force: true,\n    assumeRolePolicyDocument: `  {\n    \\\\\"Statement\\\\\": [\n      {\n        \\\\\"Action\\\\\": \\\\\"sts:AssumeRole\\\\\",\n        \\\\\"Effect\\\\\": \\\\\"Allow\\\\\",\n        \\\\\"Principal\\\\\": {\n          \\\\\"Service\\\\\": [\n            \\\\\"ecs.aliyuncs.com\\\\\"\n          ]\n        }\n      }\n    ],\n    \\\\\"Version\\\\\": \\\\\"1\\\\\"\n  }\n`,\n    tags: {\n        Created: \"TF\",\n        For: \"Role\",\n    },\n});\nconst ids = alicloud.ram.getRolesOutput({\n    ids: [defaultRole.roleId],\n});\nexport const ramRolesId0 = ids.apply(ids =\u003e ids.roles?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = random.index.Integer(\"default\",\n    min=10000,\n    max=99999)\ndefault_role = alicloud.ram.Role(\"default\",\n    role_name=f\"{name}-{default['result']}\",\n    description=f\"{name}-{default['result']}\",\n    force=True,\n    assume_role_policy_document=\"\"\"  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"ecs.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n\"\"\",\n    tags={\n        \"Created\": \"TF\",\n        \"For\": \"Role\",\n    })\nids = alicloud.ram.get_roles_output(ids=[default_role.role_id])\npulumi.export(\"ramRolesId0\", ids.roles[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new Random.Index.Integer(\"default\", new()\n    {\n        Min = 10000,\n        Max = 99999,\n    });\n\n    var defaultRole = new AliCloud.Ram.Role(\"default\", new()\n    {\n        RoleName = $\"{name}-{@default.Result}\",\n        Description = $\"{name}-{@default.Result}\",\n        Force = true,\n        AssumeRolePolicyDocument = @\"  {\n    \\\"\"Statement\\\"\": [\n      {\n        \\\"\"Action\\\"\": \\\"\"sts:AssumeRole\\\"\",\n        \\\"\"Effect\\\"\": \\\"\"Allow\\\"\",\n        \\\"\"Principal\\\"\": {\n          \\\"\"Service\\\"\": [\n            \\\"\"ecs.aliyuncs.com\\\"\"\n          ]\n        }\n      }\n    ],\n    \\\"\"Version\\\"\": \\\"\"1\\\"\"\n  }\n\",\n        Tags = \n        {\n            { \"Created\", \"TF\" },\n            { \"For\", \"Role\" },\n        },\n    });\n\n    var ids = AliCloud.Ram.GetRoles.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultRole.RoleId,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"ramRolesId0\"] = ids.Apply(getRolesResult =\u003e getRolesResult.Roles[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\n\t\t\tMin: 10000,\n\t\t\tMax: 99999,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultRole, err := ram.NewRole(ctx, \"default\", \u0026ram.RoleArgs{\n\t\t\tRoleName:    pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tDescription: pulumi.Sprintf(\"%v-%v\", name, _default.Result),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t\tAssumeRolePolicyDocument: pulumi.String(`  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"ecs.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n`),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Created\": pulumi.String(\"TF\"),\n\t\t\t\t\"For\":     pulumi.String(\"Role\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := ram.GetRolesOutput(ctx, ram.GetRolesOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultRole.RoleId,\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"ramRolesId0\", ids.ApplyT(func(ids ram.GetRolesResult) (*string, error) {\n\t\t\treturn \u0026ids.Roles[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.ram.Role;\nimport com.pulumi.alicloud.ram.RoleArgs;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetRolesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Integer(\"default\", IntegerArgs.builder()\n            .min(10000)\n            .max(99999)\n            .build());\n\n        var defaultRole = new Role(\"defaultRole\", RoleArgs.builder()\n            .roleName(String.format(\"%s-%s\", name,default_.result()))\n            .description(String.format(\"%s-%s\", name,default_.result()))\n            .force(true)\n            .assumeRolePolicyDocument(\"\"\"\n  {\n    \\\"Statement\\\": [\n      {\n        \\\"Action\\\": \\\"sts:AssumeRole\\\",\n        \\\"Effect\\\": \\\"Allow\\\",\n        \\\"Principal\\\": {\n          \\\"Service\\\": [\n            \\\"ecs.aliyuncs.com\\\"\n          ]\n        }\n      }\n    ],\n    \\\"Version\\\": \\\"1\\\"\n  }\n            \"\"\")\n            .tags(Map.ofEntries(\n                Map.entry(\"Created\", \"TF\"),\n                Map.entry(\"For\", \"Role\")\n            ))\n            .build());\n\n        final var ids = RamFunctions.getRoles(GetRolesArgs.builder()\n            .ids(defaultRole.roleId())\n            .build());\n\n        ctx.export(\"ramRolesId0\", ids.applyValue(_ids -\u003e _ids.roles()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: random:Integer\n    properties:\n      min: 10000\n      max: 99999\n  defaultRole:\n    type: alicloud:ram:Role\n    name: default\n    properties:\n      roleName: ${name}-${default.result}\n      description: ${name}-${default.result}\n      force: true\n      assumeRolePolicyDocument: |2\n          {\n            \\\"Statement\\\": [\n              {\n                \\\"Action\\\": \\\"sts:AssumeRole\\\",\n                \\\"Effect\\\": \\\"Allow\\\",\n                \\\"Principal\\\": {\n                  \\\"Service\\\": [\n                    \\\"ecs.aliyuncs.com\\\"\n                  ]\n                }\n              }\n            ],\n            \\\"Version\\\": \\\"1\\\"\n          }\n      tags:\n        Created: TF\n        For: Role\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ram:getRoles\n      arguments:\n        ids:\n          - ${defaultRole.roleId}\noutputs:\n  ramRolesId0: ${ids.roles[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRoles.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Role IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Role name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"policyName":{"type":"string","description":"The name of the policy.\n"},"policyType":{"type":"string","description":"The type of the policy. Default value: `System`. Valid values: `System`, `Custom`. **Note:** \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e takes effect only when \u003cspan pulumi-lang-nodejs=\"`policyName`\" pulumi-lang-dotnet=\"`PolicyName`\" pulumi-lang-go=\"`policyName`\" pulumi-lang-python=\"`policy_name`\" pulumi-lang-yaml=\"`policyName`\" pulumi-lang-java=\"`policyName`\"\u003e`policy_name`\u003c/span\u003e is set.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getRoles.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"(Available since v1.42.0) A list of Role names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policyName":{"type":"string"},"policyType":{"type":"string"},"roles":{"description":"A list of Role. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ram/getRolesRole:getRolesRole"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"(Available since v1.262.1) The tags of the RAM role.\n","type":"object"}},"required":["ids","names","roles","id"],"type":"object"}},"alicloud:ram/getSamlProviders:getSamlProviders":{"description":"This data source provides the Ram Saml Providers of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.114.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ram.getSamlProviders({\n    ids: [\"samlProviderName\"],\n    nameRegex: \"tf-testAcc\",\n});\nexport const firstRamSamlProviderId = example.then(example =\u003e example.providers?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ram.get_saml_providers(ids=[\"samlProviderName\"],\n    name_regex=\"tf-testAcc\")\npulumi.export(\"firstRamSamlProviderId\", example.providers[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ram.GetSamlProviders.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"samlProviderName\",\n        },\n        NameRegex = \"tf-testAcc\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRamSamlProviderId\"] = example.Apply(getSamlProvidersResult =\u003e getSamlProvidersResult.Providers[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ram.GetSamlProviders(ctx, \u0026ram.GetSamlProvidersArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"samlProviderName\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"tf-testAcc\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRamSamlProviderId\", example.Providers[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetSamlProvidersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RamFunctions.getSamlProviders(GetSamlProvidersArgs.builder()\n            .ids(\"samlProviderName\")\n            .nameRegex(\"tf-testAcc\")\n            .build());\n\n        ctx.export(\"firstRamSamlProviderId\", example.providers()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ram:getSamlProviders\n      arguments:\n        ids:\n          - samlProviderName\n        nameRegex: tf-testAcc\noutputs:\n  firstRamSamlProviderId: ${example.providers[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSamlProviders.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of SAML Provider IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by SAML Provider name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSamlProviders.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of SAML Provider names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"providers":{"description":"A list of Ram Saml Providers. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ram/getSamlProvidersProvider:getSamlProvidersProvider"},"type":"array"}},"required":["ids","names","providers","id"],"type":"object"}},"alicloud:ram/getSystemPolicys:getSystemPolicys":{"description":"This data source provides Ram System Policy available to the user.[What is System Policy](https://next.api.alibabacloud.com/document/Ram/2015-05-01/GetPolicy)\n\n\u003e **NOTE:** Available since v1.245.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.ram.getSystemPolicys({\n    nameRegex: \"^AdministratorAccess$\",\n});\nexport const alicloudRamSystemPolicyExampleId = _default.then(_default =\u003e _default.policys?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.ram.get_system_policys(name_regex=\"^AdministratorAccess$\")\npulumi.export(\"alicloudRamSystemPolicyExampleId\", default.policys[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.Ram.GetSystemPolicys.Invoke(new()\n    {\n        NameRegex = \"^AdministratorAccess$\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudRamSystemPolicyExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getSystemPolicysResult =\u003e getSystemPolicysResult.Policys[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := ram.GetSystemPolicys(ctx, \u0026ram.GetSystemPolicysArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^AdministratorAccess$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudRamSystemPolicyExampleId\", _default.Policys[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetSystemPolicysArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = RamFunctions.getSystemPolicys(GetSystemPolicysArgs.builder()\n            .nameRegex(\"^AdministratorAccess$\")\n            .build());\n\n        ctx.export(\"alicloudRamSystemPolicyExampleId\", default_.policys()[0].id());\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:ram:getSystemPolicys\n      arguments:\n        nameRegex: ^AdministratorAccess$\noutputs:\n  alicloudRamSystemPolicyExampleId: ${default.policys[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSystemPolicys.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of System Policy IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSystemPolicys.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of System Policy IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of System Policys.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policys":{"description":"A list of System Policy Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ram/getSystemPolicysPolicy:getSystemPolicysPolicy"},"type":"array"}},"required":["ids","names","policys","id"],"type":"object"}},"alicloud:ram/getUsers:getUsers":{"description":"This data source provides a list of RAM users in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available since v1.0.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.ram.Group(\"default\", {\n    name: \"group1\",\n    comments: \"group comments\",\n    force: true,\n});\nconst defaultUser = new alicloud.ram.User(\"default\", {\n    name: \"user-example\",\n    displayName: \"displayname\",\n    mobile: \"86-18888888888\",\n    email: \"hello.uuu@aaa.com\",\n    comments: \"yoyoyo\",\n});\nconst defaultGroupMembership = new alicloud.ram.GroupMembership(\"default\", {\n    groupName: _default.name,\n    userNames: [defaultUser.name],\n});\nconst defaultPolicy = new alicloud.ram.Policy(\"default\", {\n    policyName: \"ram-policy-example\",\n    policyDocument: `\\\\t\\\\t\\\\t{\n\\\\t\\\\t\\\\t\\\\t\\\\\"Statement\\\\\": [\n\\\\t\\\\t\\\\t\\\\t {\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\"Action\\\\\": [\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\"oss:ListObjects\\\\\",\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\"oss:ListObjects\\\\\"\n\\\\t\\\\t\\\\t  \\\\t\\\\t],\n\\\\t\\\\t\\\\t  \\\\t\\\\t\\\\\"Effect\\\\\": \\\\\"Deny\\\\\",\n\\\\t\\\\t\\\\t  \\\\t\\\\t\\\\\"Resource\\\\\": [\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\"acs:oss:*:*:mybucket\\\\\",\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\"acs:oss:*:*:mybucket/*\\\\\"\n\\\\t\\\\t\\\\t  \\\\t\\\\t]\n\\\\t\\\\t\\\\t\\\\t }\n\\\\t\\\\t  \\\\t\\\\t],\n\\\\t\\\\t\\\\t\\\\t\\\\\"Version\\\\\": \\\\\"1\\\\\"\n\\\\t\\\\t\\\\t}\n`,\n    description: \"this is a policy example\",\n    force: true,\n});\nconst defaultUserPolicyAttachment = new alicloud.ram.UserPolicyAttachment(\"default\", {\n    policyName: defaultPolicy.policyName,\n    userName: defaultUser.name,\n    policyType: defaultPolicy.type,\n});\nconst usersDs = alicloud.ram.getUsersOutput({\n    outputFile: \"users.txt\",\n    groupName: _default.name,\n    policyName: defaultPolicy.policyName,\n    policyType: \"Custom\",\n    nameRegex: defaultUser.name,\n});\nexport const firstUserId = usersDs.apply(usersDs =\u003e usersDs.users?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.ram.Group(\"default\",\n    name=\"group1\",\n    comments=\"group comments\",\n    force=True)\ndefault_user = alicloud.ram.User(\"default\",\n    name=\"user-example\",\n    display_name=\"displayname\",\n    mobile=\"86-18888888888\",\n    email=\"hello.uuu@aaa.com\",\n    comments=\"yoyoyo\")\ndefault_group_membership = alicloud.ram.GroupMembership(\"default\",\n    group_name=default.name,\n    user_names=[default_user.name])\ndefault_policy = alicloud.ram.Policy(\"default\",\n    policy_name=\"ram-policy-example\",\n    policy_document=\"\"\"\\t\\t\\t{\n\\t\\t\\t\\t\\\"Statement\\\": [\n\\t\\t\\t\\t {\n\\t\\t\\t\\t\\t\\\"Action\\\": [\n\\t\\t\\t\\t\\t\\\"oss:ListObjects\\\",\n\\t\\t\\t\\t\\t\\\"oss:ListObjects\\\"\n\\t\\t\\t  \\t\\t],\n\\t\\t\\t  \\t\\t\\\"Effect\\\": \\\"Deny\\\",\n\\t\\t\\t  \\t\\t\\\"Resource\\\": [\n\\t\\t\\t\\t\\t\\t\\\"acs:oss:*:*:mybucket\\\",\n\\t\\t\\t\\t\\t\\t\\\"acs:oss:*:*:mybucket/*\\\"\n\\t\\t\\t  \\t\\t]\n\\t\\t\\t\\t }\n\\t\\t  \\t\\t],\n\\t\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t\\t}\n\"\"\",\n    description=\"this is a policy example\",\n    force=True)\ndefault_user_policy_attachment = alicloud.ram.UserPolicyAttachment(\"default\",\n    policy_name=default_policy.policy_name,\n    user_name=default_user.name,\n    policy_type=default_policy.type)\nusers_ds = alicloud.ram.get_users_output(output_file=\"users.txt\",\n    group_name=default.name,\n    policy_name=default_policy.policy_name,\n    policy_type=\"Custom\",\n    name_regex=default_user.name)\npulumi.export(\"firstUserId\", users_ds.users[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Ram.Group(\"default\", new()\n    {\n        Name = \"group1\",\n        Comments = \"group comments\",\n        Force = true,\n    });\n\n    var defaultUser = new AliCloud.Ram.User(\"default\", new()\n    {\n        Name = \"user-example\",\n        DisplayName = \"displayname\",\n        Mobile = \"86-18888888888\",\n        Email = \"hello.uuu@aaa.com\",\n        Comments = \"yoyoyo\",\n    });\n\n    var defaultGroupMembership = new AliCloud.Ram.GroupMembership(\"default\", new()\n    {\n        GroupName = @default.Name,\n        UserNames = new[]\n        {\n            defaultUser.Name,\n        },\n    });\n\n    var defaultPolicy = new AliCloud.Ram.Policy(\"default\", new()\n    {\n        PolicyName = \"ram-policy-example\",\n        PolicyDocument = @\"\\t\\t\\t{\n\\t\\t\\t\\t\\\"\"Statement\\\"\": [\n\\t\\t\\t\\t {\n\\t\\t\\t\\t\\t\\\"\"Action\\\"\": [\n\\t\\t\\t\\t\\t\\\"\"oss:ListObjects\\\"\",\n\\t\\t\\t\\t\\t\\\"\"oss:ListObjects\\\"\"\n\\t\\t\\t  \\t\\t],\n\\t\\t\\t  \\t\\t\\\"\"Effect\\\"\": \\\"\"Deny\\\"\",\n\\t\\t\\t  \\t\\t\\\"\"Resource\\\"\": [\n\\t\\t\\t\\t\\t\\t\\\"\"acs:oss:*:*:mybucket\\\"\",\n\\t\\t\\t\\t\\t\\t\\\"\"acs:oss:*:*:mybucket/*\\\"\"\n\\t\\t\\t  \\t\\t]\n\\t\\t\\t\\t }\n\\t\\t  \\t\\t],\n\\t\\t\\t\\t\\\"\"Version\\\"\": \\\"\"1\\\"\"\n\\t\\t\\t}\n\",\n        Description = \"this is a policy example\",\n        Force = true,\n    });\n\n    var defaultUserPolicyAttachment = new AliCloud.Ram.UserPolicyAttachment(\"default\", new()\n    {\n        PolicyName = defaultPolicy.PolicyName,\n        UserName = defaultUser.Name,\n        PolicyType = defaultPolicy.Type,\n    });\n\n    var usersDs = AliCloud.Ram.GetUsers.Invoke(new()\n    {\n        OutputFile = \"users.txt\",\n        GroupName = @default.Name,\n        PolicyName = defaultPolicy.PolicyName,\n        PolicyType = \"Custom\",\n        NameRegex = defaultUser.Name,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstUserId\"] = usersDs.Apply(getUsersResult =\u003e getUsersResult.Users[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := ram.NewGroup(ctx, \"default\", \u0026ram.GroupArgs{\n\t\t\tName:     pulumi.String(\"group1\"),\n\t\t\tComments: pulumi.String(\"group comments\"),\n\t\t\tForce:    pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultUser, err := ram.NewUser(ctx, \"default\", \u0026ram.UserArgs{\n\t\t\tName:        pulumi.String(\"user-example\"),\n\t\t\tDisplayName: pulumi.String(\"displayname\"),\n\t\t\tMobile:      pulumi.String(\"86-18888888888\"),\n\t\t\tEmail:       pulumi.String(\"hello.uuu@aaa.com\"),\n\t\t\tComments:    pulumi.String(\"yoyoyo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewGroupMembership(ctx, \"default\", \u0026ram.GroupMembershipArgs{\n\t\t\tGroupName: _default.Name,\n\t\t\tUserNames: pulumi.StringArray{\n\t\t\t\tdefaultUser.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultPolicy, err := ram.NewPolicy(ctx, \"default\", \u0026ram.PolicyArgs{\n\t\t\tPolicyName: pulumi.String(\"ram-policy-example\"),\n\t\t\tPolicyDocument: pulumi.String(`\\t\\t\\t{\n\\t\\t\\t\\t\\\"Statement\\\": [\n\\t\\t\\t\\t {\n\\t\\t\\t\\t\\t\\\"Action\\\": [\n\\t\\t\\t\\t\\t\\\"oss:ListObjects\\\",\n\\t\\t\\t\\t\\t\\\"oss:ListObjects\\\"\n\\t\\t\\t  \\t\\t],\n\\t\\t\\t  \\t\\t\\\"Effect\\\": \\\"Deny\\\",\n\\t\\t\\t  \\t\\t\\\"Resource\\\": [\n\\t\\t\\t\\t\\t\\t\\\"acs:oss:*:*:mybucket\\\",\n\\t\\t\\t\\t\\t\\t\\\"acs:oss:*:*:mybucket/*\\\"\n\\t\\t\\t  \\t\\t]\n\\t\\t\\t\\t }\n\\t\\t  \\t\\t],\n\\t\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t\\t}\n`),\n\t\t\tDescription: pulumi.String(\"this is a policy example\"),\n\t\t\tForce:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ram.NewUserPolicyAttachment(ctx, \"default\", \u0026ram.UserPolicyAttachmentArgs{\n\t\t\tPolicyName: defaultPolicy.PolicyName,\n\t\t\tUserName:   defaultUser.Name,\n\t\t\tPolicyType: defaultPolicy.Type,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tusersDs := ram.GetUsersOutput(ctx, ram.GetUsersOutputArgs{\n\t\t\tOutputFile: pulumi.String(\"users.txt\"),\n\t\t\tGroupName:  _default.Name,\n\t\t\tPolicyName: defaultPolicy.PolicyName,\n\t\t\tPolicyType: pulumi.String(\"Custom\"),\n\t\t\tNameRegex:  defaultUser.Name,\n\t\t}, nil)\n\t\tctx.Export(\"firstUserId\", usersDs.ApplyT(func(usersDs ram.GetUsersResult) (*string, error) {\n\t\t\treturn \u0026usersDs.Users[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ram.Group;\nimport com.pulumi.alicloud.ram.GroupArgs;\nimport com.pulumi.alicloud.ram.User;\nimport com.pulumi.alicloud.ram.UserArgs;\nimport com.pulumi.alicloud.ram.GroupMembership;\nimport com.pulumi.alicloud.ram.GroupMembershipArgs;\nimport com.pulumi.alicloud.ram.Policy;\nimport com.pulumi.alicloud.ram.PolicyArgs;\nimport com.pulumi.alicloud.ram.UserPolicyAttachment;\nimport com.pulumi.alicloud.ram.UserPolicyAttachmentArgs;\nimport com.pulumi.alicloud.ram.RamFunctions;\nimport com.pulumi.alicloud.ram.inputs.GetUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new Group(\"default\", GroupArgs.builder()\n            .name(\"group1\")\n            .comments(\"group comments\")\n            .force(true)\n            .build());\n\n        var defaultUser = new User(\"defaultUser\", UserArgs.builder()\n            .name(\"user-example\")\n            .displayName(\"displayname\")\n            .mobile(\"86-18888888888\")\n            .email(\"hello.uuu@aaa.com\")\n            .comments(\"yoyoyo\")\n            .build());\n\n        var defaultGroupMembership = new GroupMembership(\"defaultGroupMembership\", GroupMembershipArgs.builder()\n            .groupName(default_.name())\n            .userNames(defaultUser.name())\n            .build());\n\n        var defaultPolicy = new Policy(\"defaultPolicy\", PolicyArgs.builder()\n            .policyName(\"ram-policy-example\")\n            .policyDocument(\"\"\"\n\\t\\t\\t{\n\\t\\t\\t\\t\\\"Statement\\\": [\n\\t\\t\\t\\t {\n\\t\\t\\t\\t\\t\\\"Action\\\": [\n\\t\\t\\t\\t\\t\\\"oss:ListObjects\\\",\n\\t\\t\\t\\t\\t\\\"oss:ListObjects\\\"\n\\t\\t\\t  \\t\\t],\n\\t\\t\\t  \\t\\t\\\"Effect\\\": \\\"Deny\\\",\n\\t\\t\\t  \\t\\t\\\"Resource\\\": [\n\\t\\t\\t\\t\\t\\t\\\"acs:oss:*:*:mybucket\\\",\n\\t\\t\\t\\t\\t\\t\\\"acs:oss:*:*:mybucket/*\\\"\n\\t\\t\\t  \\t\\t]\n\\t\\t\\t\\t }\n\\t\\t  \\t\\t],\n\\t\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n\\t\\t\\t}\n            \"\"\")\n            .description(\"this is a policy example\")\n            .force(true)\n            .build());\n\n        var defaultUserPolicyAttachment = new UserPolicyAttachment(\"defaultUserPolicyAttachment\", UserPolicyAttachmentArgs.builder()\n            .policyName(defaultPolicy.policyName())\n            .userName(defaultUser.name())\n            .policyType(defaultPolicy.type())\n            .build());\n\n        final var usersDs = RamFunctions.getUsers(GetUsersArgs.builder()\n            .outputFile(\"users.txt\")\n            .groupName(default_.name())\n            .policyName(defaultPolicy.policyName())\n            .policyType(\"Custom\")\n            .nameRegex(defaultUser.name())\n            .build());\n\n        ctx.export(\"firstUserId\", usersDs.applyValue(_usersDs -\u003e _usersDs.users()[0].id()));\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:ram:Group\n    properties:\n      name: group1\n      comments: group comments\n      force: true\n  defaultUser:\n    type: alicloud:ram:User\n    name: default\n    properties:\n      name: user-example\n      displayName: displayname\n      mobile: 86-18888888888\n      email: hello.uuu@aaa.com\n      comments: yoyoyo\n  defaultGroupMembership:\n    type: alicloud:ram:GroupMembership\n    name: default\n    properties:\n      groupName: ${default.name}\n      userNames:\n        - ${defaultUser.name}\n  defaultPolicy:\n    type: alicloud:ram:Policy\n    name: default\n    properties:\n      policyName: ram-policy-example\n      policyDocument: |\n        \\t\\t\\t{\n        \\t\\t\\t\\t\\\"Statement\\\": [\n        \\t\\t\\t\\t {\n        \\t\\t\\t\\t\\t\\\"Action\\\": [\n        \\t\\t\\t\\t\\t\\\"oss:ListObjects\\\",\n        \\t\\t\\t\\t\\t\\\"oss:ListObjects\\\"\n        \\t\\t\\t  \\t\\t],\n        \\t\\t\\t  \\t\\t\\\"Effect\\\": \\\"Deny\\\",\n        \\t\\t\\t  \\t\\t\\\"Resource\\\": [\n        \\t\\t\\t\\t\\t\\t\\\"acs:oss:*:*:mybucket\\\",\n        \\t\\t\\t\\t\\t\\t\\\"acs:oss:*:*:mybucket/*\\\"\n        \\t\\t\\t  \\t\\t]\n        \\t\\t\\t\\t }\n        \\t\\t  \\t\\t],\n        \\t\\t\\t\\t\\\"Version\\\": \\\"1\\\"\n        \\t\\t\\t}\n      description: this is a policy example\n      force: true\n  defaultUserPolicyAttachment:\n    type: alicloud:ram:UserPolicyAttachment\n    name: default\n    properties:\n      policyName: ${defaultPolicy.policyName}\n      userName: ${defaultUser.name}\n      policyType: ${defaultPolicy.type}\nvariables:\n  usersDs:\n    fn::invoke:\n      function: alicloud:ram:getUsers\n      arguments:\n        outputFile: users.txt\n        groupName: ${default.name}\n        policyName: ${defaultPolicy.policyName}\n        policyType: Custom\n        nameRegex: ${defaultUser.name}\noutputs:\n  firstUserId: ${usersDs.users[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUsers.\n","properties":{"groupName":{"type":"string","description":"Filter results by a specific group name. Returned users are in the specified group.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of ram user IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter resulting users by their names.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"policyName":{"type":"string","description":"Filter results by a specific policy name. If you set this parameter without setting \u003cspan pulumi-lang-nodejs=\"`policyType`\" pulumi-lang-dotnet=\"`PolicyType`\" pulumi-lang-go=\"`policyType`\" pulumi-lang-python=\"`policy_type`\" pulumi-lang-yaml=\"`policyType`\" pulumi-lang-java=\"`policyType`\"\u003e`policy_type`\u003c/span\u003e, the later will be automatically set to `System`. Returned users are attached to the specified policy.\n"},"policyType":{"type":"string","description":"Filter results by a specific policy type. Valid values are `Custom` and `System`. If you set this parameter, you must set \u003cspan pulumi-lang-nodejs=\"`policyName`\" pulumi-lang-dotnet=\"`PolicyName`\" pulumi-lang-go=\"`policyName`\" pulumi-lang-python=\"`policy_name`\" pulumi-lang-yaml=\"`policyName`\" pulumi-lang-java=\"`policyName`\"\u003e`policy_name`\u003c/span\u003e as well.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getUsers.\n","properties":{"groupName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of ram user IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of ram user's name.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policyName":{"type":"string"},"policyType":{"type":"string"},"users":{"description":"A list of users. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:ram/getUsersUser:getUsersUser"},"type":"array"}},"required":["ids","names","users","id"],"type":"object"}},"alicloud:rdc/getOrganizations:getOrganizations":{"description":"This data source provides the Rdc Organizations of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.137.0.\n\n\u003e **DEPRECATED:** This data source has been deprecated from version `1.238.0`.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-testAccOrganizations-Organizations\";\nconst _default = new alicloud.rdc.Organization(\"default\", {\n    organizationName: name,\n    source: name,\n});\nconst ids = alicloud.rdc.getOrganizationsOutput({\n    ids: [_default.id],\n});\nexport const rdcOrganizationId1 = ids.apply(ids =\u003e ids.id);\nconst nameRegex = alicloud.rdc.getOrganizations({\n    nameRegex: \"^my-Organization\",\n});\nexport const rdcOrganizationId2 = nameRegex.then(nameRegex =\u003e nameRegex.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-testAccOrganizations-Organizations\"\ndefault = alicloud.rdc.Organization(\"default\",\n    organization_name=name,\n    source=name)\nids = alicloud.rdc.get_organizations_output(ids=[default.id])\npulumi.export(\"rdcOrganizationId1\", ids.id)\nname_regex = alicloud.rdc.get_organizations(name_regex=\"^my-Organization\")\npulumi.export(\"rdcOrganizationId2\", name_regex.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-testAccOrganizations-Organizations\";\n    var @default = new AliCloud.Rdc.Organization(\"default\", new()\n    {\n        OrganizationName = name,\n        Source = name,\n    });\n\n    var ids = AliCloud.Rdc.GetOrganizations.Invoke(new()\n    {\n        Ids = new[]\n        {\n            @default.Id,\n        },\n    });\n\n    var nameRegex = AliCloud.Rdc.GetOrganizations.Invoke(new()\n    {\n        NameRegex = \"^my-Organization\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"rdcOrganizationId1\"] = ids.Apply(getOrganizationsResult =\u003e getOrganizationsResult.Id),\n        [\"rdcOrganizationId2\"] = nameRegex.Apply(getOrganizationsResult =\u003e getOrganizationsResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rdc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-testAccOrganizations-Organizations\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := rdc.NewOrganization(ctx, \"default\", \u0026rdc.OrganizationArgs{\n\t\t\tOrganizationName: pulumi.String(name),\n\t\t\tSource:           pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := rdc.GetOrganizationsOutput(ctx, rdc.GetOrganizationsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"rdcOrganizationId1\", ids.ApplyT(func(ids rdc.GetOrganizationsResult) (*string, error) {\n\t\t\treturn \u0026ids.Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tnameRegex, err := rdc.GetOrganizations(ctx, \u0026rdc.GetOrganizationsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Organization\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rdcOrganizationId2\", nameRegex.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rdc.Organization;\nimport com.pulumi.alicloud.rdc.OrganizationArgs;\nimport com.pulumi.alicloud.rdc.RdcFunctions;\nimport com.pulumi.alicloud.rdc.inputs.GetOrganizationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-testAccOrganizations-Organizations\");\n        var default_ = new Organization(\"default\", OrganizationArgs.builder()\n            .organizationName(name)\n            .source(name)\n            .build());\n\n        final var ids = RdcFunctions.getOrganizations(GetOrganizationsArgs.builder()\n            .ids(default_.id())\n            .build());\n\n        ctx.export(\"rdcOrganizationId1\", ids.applyValue(_ids -\u003e _ids.id()));\n        final var nameRegex = RdcFunctions.getOrganizations(GetOrganizationsArgs.builder()\n            .nameRegex(\"^my-Organization\")\n            .build());\n\n        ctx.export(\"rdcOrganizationId2\", nameRegex.id());\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-testAccOrganizations-Organizations\nresources:\n  default:\n    type: alicloud:rdc:Organization\n    properties:\n      organizationName: ${name}\n      source: ${name}\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:rdc:getOrganizations\n      arguments:\n        ids:\n          - ${default.id}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:rdc:getOrganizations\n      arguments:\n        nameRegex: ^my-Organization\noutputs:\n  rdcOrganizationId1: ${ids.id}\n  rdcOrganizationId2: ${nameRegex.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOrganizations.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Organization IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Organization name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"realPk":{"type":"string","description":"User pk, not required, only required when the ak used by the calling interface is inconsistent with the user pk\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getOrganizations.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Organization names.\n","items":{"type":"string"},"type":"array"},"organizations":{"description":"A list of Rdc Organizations. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:rdc/getOrganizationsOrganization:getOrganizationsOrganization"},"type":"array"},"outputFile":{"type":"string"},"realPk":{"type":"string"}},"required":["ids","names","organizations","id"],"type":"object"}},"alicloud:rds/getAccounts:getAccounts":{"description":"This data source provides the Rds Accounts of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.120.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.rds.getAccounts({\n    dbInstanceId: \"example_value\",\n    nameRegex: \"the_resource_name\",\n});\nexport const firstRdsAccountId = example.then(example =\u003e example.accounts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.rds.get_accounts(db_instance_id=\"example_value\",\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstRdsAccountId\", example.accounts[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Rds.GetAccounts.Invoke(new()\n    {\n        DbInstanceId = \"example_value\",\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRdsAccountId\"] = example.Apply(getAccountsResult =\u003e getAccountsResult.Accounts[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rds.GetAccounts(ctx, \u0026rds.GetAccountsArgs{\n\t\t\tDbInstanceId: \"example_value\",\n\t\t\tNameRegex:    pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRdsAccountId\", example.Accounts[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetAccountsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RdsFunctions.getAccounts(GetAccountsArgs.builder()\n            .dbInstanceId(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstRdsAccountId\", example.accounts()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:rds:getAccounts\n      arguments:\n        dbInstanceId: example_value\n        nameRegex: the_resource_name\noutputs:\n  firstRdsAccountId: ${example.accounts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccounts.\n","properties":{"dbInstanceId":{"type":"string","description":"The db instance id.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Account IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Account name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Available`, `Unavailable`.\n"}},"type":"object","required":["dbInstanceId"]},"outputs":{"description":"A collection of values returned by getAccounts.\n","properties":{"accounts":{"items":{"$ref":"#/types/alicloud:rds/getAccountsAccount:getAccountsAccount"},"type":"array"},"dbInstanceId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["accounts","dbInstanceId","ids","names","id"],"type":"object"}},"alicloud:rds/getCharacterSetNames:getCharacterSetNames":{"description":"This data source is the character set supported by querying RDS instances.\n\n\u003e **NOTE:** Available in v1.198.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst names = alicloud.rds.getCharacterSetNames({\n    engine: \"MySQL\",\n});\nexport const firstRdsCharacterSetNames = names.then(names =\u003e names.names?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\nnames = alicloud.rds.get_character_set_names(engine=\"MySQL\")\npulumi.export(\"firstRdsCharacterSetNames\", names.names[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var names = AliCloud.Rds.GetCharacterSetNames.Invoke(new()\n    {\n        Engine = \"MySQL\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRdsCharacterSetNames\"] = names.Apply(getCharacterSetNamesResult =\u003e getCharacterSetNamesResult.Names[0]),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\tnames, err := rds.GetCharacterSetNames(ctx, \u0026rds.GetCharacterSetNamesArgs{\n\t\t\tEngine: \"MySQL\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRdsCharacterSetNames\", names.Names[0])\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetCharacterSetNamesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var names = RdsFunctions.getCharacterSetNames(GetCharacterSetNamesArgs.builder()\n            .engine(\"MySQL\")\n            .build());\n\n        ctx.export(\"firstRdsCharacterSetNames\", names.names()[0]);\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  names:\n    fn::invoke:\n      function: alicloud:rds:getCharacterSetNames\n      arguments:\n        engine: MySQL\noutputs:\n  firstRdsCharacterSetNames: ${names.names[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCharacterSetNames.\n","properties":{"engine":{"type":"string","description":"Database type. Options are `MySQL`, `SQLServer`, `PostgreSQL`, `MariaDB`.\n"},"outputFile":{"type":"string"}},"type":"object","required":["engine"]},"outputs":{"description":"A collection of values returned by getCharacterSetNames.\n","properties":{"engine":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["engine","names","id"],"type":"object"}},"alicloud:rds/getClassDetails:getClassDetails":{"description":"This data source provides details of the Rds specifications of current Alibaba Cloud users.\n\nFor information on RDS class details and how to use it, please refer to [What is RDS class details](https://www.alibabacloud.com/help/en/rds/developer-reference/api-rds-2014-08-15-describeclassdetails).\n\n\u003e **NOTE:** Available since v1.209.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.rds.getClassDetails({\n    commodityCode: \"bards\",\n    classCode: \"mysql.n4.medium.2c\",\n    engineVersion: \"8.0\",\n    engine: \"MySQL\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.rds.get_class_details(commodity_code=\"bards\",\n    class_code=\"mysql.n4.medium.2c\",\n    engine_version=\"8.0\",\n    engine=\"MySQL\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Rds.GetClassDetails.Invoke(new()\n    {\n        CommodityCode = \"bards\",\n        ClassCode = \"mysql.n4.medium.2c\",\n        EngineVersion = \"8.0\",\n        Engine = \"MySQL\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.GetClassDetails(ctx, \u0026rds.GetClassDetailsArgs{\n\t\t\tCommodityCode: \"bards\",\n\t\t\tClassCode:     \"mysql.n4.medium.2c\",\n\t\t\tEngineVersion: \"8.0\",\n\t\t\tEngine:        \"MySQL\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetClassDetailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = RdsFunctions.getClassDetails(GetClassDetailsArgs.builder()\n            .commodityCode(\"bards\")\n            .classCode(\"mysql.n4.medium.2c\")\n            .engineVersion(\"8.0\")\n            .engine(\"MySQL\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:rds:getClassDetails\n      arguments:\n        commodityCode: bards\n        classCode: mysql.n4.medium.2c\n        engineVersion: '8.0'\n        engine: MySQL\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getClassDetails.\n","properties":{"classCode":{"type":"string","description":"The code of the instance type.\n"},"commodityCode":{"type":"string","description":"The commodity code of the instance. Valid values:\n* **bards**: The instance is a pay-as-you-go primary instance. This value is available on the China site (aliyun.com).\n* **rds**: The instance is a subscription primary instance. This value is available on the China site (aliyun.com).\n* **rords**: The instance is a pay-as-you-go read-only instance. This value is available on the China site (aliyun.com).\n* **rds_rordspre_public_cn**: The instance is a subscription read-only instance. This value is available on the China site (aliyun.com).\n* **bards_intl**: The instance is a pay-as-you-go primary instance. This value is available on the International site (alibabacloud.com).\n* **rds_intl**: The instance is a subscription primary instance. This value is available on the International site (alibabacloud.com).\n* **rords_intl**: The instance is a pay-as-you-go read-only instance. This value is available on the International site (alibabacloud.com).\n* **rds_rordspre_public_intl**: The instance is a subscription read-only instance. This value is available on the International site (alibabacloud.com).\n"},"engine":{"type":"string","description":"Database type. Value options: MySQL, SQLServer, PostgreSQL, MariaDB.\n"},"engineVersion":{"type":"string","description":"Database version. Value options:\n- MySQL: [ 5.5、5.6、5.7、8.0 ]\n- SQLServer: [ 2008r2、08r2_ent_ha、2012、2012_ent_ha、2012_std_ha、2012_web、2014_std_ha、2016_ent_ha、2016_std_ha、2016_web、2017_std_ha、2017_ent、2019_std_ha、2019_ent ]\n- PostgreSQL: [ 10.0、11.0、12.0、13.0、14.0、15.0 ]\n- MariaDB: [ 10.3 ]\n"}},"type":"object","required":["classCode","commodityCode","engine","engineVersion"]},"outputs":{"description":"A collection of values returned by getClassDetails.\n","properties":{"category":{"description":"The RDS edition of the instance. Valid values:\n* **Basic**: Basic Edition.\n* **HighAvailability**: High-availability Edition.\n* **AlwaysOn**: Cluster Edition.\n* **Finance**: Enterprise Edition.\n","type":"string"},"classCode":{"type":"string"},"classGroup":{"description":"The specification family.\n","type":"string"},"commodityCode":{"type":"string"},"cpu":{"description":"The number of CPU cores corresponding to the instance specification. Unit: pieces.\n","type":"string"},"dbInstanceStorageType":{"description":"The storage type of the instance. Valid values:\n* **local_ssd**: specifies to use local SSDs.\n* **cloud_ssd**: specifies to use standard SSDs.\n* **cloud_essd**: specifies to use enhanced SSDs (ESSDs).\n* **cloud_essd2**: specifies to use enhanced SSDs (ESSDs).\n* **cloud_essd3**: specifies to use enhanced SSDs (ESSDs).\n","type":"string"},"engine":{"type":"string"},"engineVersion":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instructionSetArch":{"description":"The architecture of the instance type.\n","type":"string"},"maxConnections":{"description":"The maximum number of connections.\n","type":"string"},"maxIombps":{"description":"The maximum IO bandwidth corresponding to the instance specification. Unit: Mbps.\n","type":"string"},"maxIops":{"description":"The maximum IOPS of the instance.\n","type":"string"},"memoryClass":{"description":"The memory capacity that is supported by the instance type. Unit: GB.\n","type":"string"},"referencePrice":{"description":"The fee that you must pay for the instance type. Unit: cent (RMB).\n","type":"string"}},"required":["category","classCode","classGroup","commodityCode","cpu","dbInstanceStorageType","engine","engineVersion","instructionSetArch","maxConnections","maxIombps","maxIops","memoryClass","referencePrice","id"],"type":"object"}},"alicloud:rds/getCollationTimeZones:getCollationTimeZones":{"description":"Operation to query the character set collations and time zones available for use in ApsaraDB RDS.\n\n\u003e **NOTE:** Available in v1.198.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst zones = alicloud.rds.getCollationTimeZones({\n    outputFile: \"./classes.txt\",\n});\nexport const firstRdsCollationTimeZones = zones.then(zones =\u003e zones.collationTimeZones?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nzones = alicloud.rds.get_collation_time_zones(output_file=\"./classes.txt\")\npulumi.export(\"firstRdsCollationTimeZones\", zones.collation_time_zones[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var zones = AliCloud.Rds.GetCollationTimeZones.Invoke(new()\n    {\n        OutputFile = \"./classes.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRdsCollationTimeZones\"] = zones.Apply(getCollationTimeZonesResult =\u003e getCollationTimeZonesResult.CollationTimeZones[0]),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tzones, err := rds.GetCollationTimeZones(ctx, \u0026rds.GetCollationTimeZonesArgs{\n\t\t\tOutputFile: pulumi.StringRef(\"./classes.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRdsCollationTimeZones\", zones.CollationTimeZones[0])\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetCollationTimeZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var zones = RdsFunctions.getCollationTimeZones(GetCollationTimeZonesArgs.builder()\n            .outputFile(\"./classes.txt\")\n            .build());\n\n        ctx.export(\"firstRdsCollationTimeZones\", zones.collationTimeZones()[0]);\n    }\n}\n```\n```yaml\nvariables:\n  zones:\n    fn::invoke:\n      function: alicloud:rds:getCollationTimeZones\n      arguments:\n        outputFile: ./classes.txt\noutputs:\n  firstRdsCollationTimeZones: ${zones.collationTimeZones[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCollationTimeZones.\n","properties":{"collationTimeZones":{"type":"array","items":{"$ref":"#/types/alicloud:rds/getCollationTimeZonesCollationTimeZone:getCollationTimeZonesCollationTimeZone"},"description":"An array that consists of the character set collations and time zones that are available for\nuse in ApsaraDB RDS.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi up`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCollationTimeZones.\n","properties":{"collationTimeZones":{"items":{"$ref":"#/types/alicloud:rds/getCollationTimeZonesCollationTimeZone:getCollationTimeZonesCollationTimeZone"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","id"],"type":"object"}},"alicloud:rds/getCrossRegionBackups:getCrossRegionBackups":{"description":"This data source provides the Rds Parameter Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.196.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst backups = alicloud.rds.getCrossRegionBackups({\n    dbInstanceId: \"example_value\",\n    startTime: \"2022-12-01T00:00:00Z\",\n    endTime: \"2022-12-16T00:00:00Z\",\n});\nexport const firstRdsCrossRegionBackups = backups.then(backups =\u003e backups.backups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nbackups = alicloud.rds.get_cross_region_backups(db_instance_id=\"example_value\",\n    start_time=\"2022-12-01T00:00:00Z\",\n    end_time=\"2022-12-16T00:00:00Z\")\npulumi.export(\"firstRdsCrossRegionBackups\", backups.backups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var backups = AliCloud.Rds.GetCrossRegionBackups.Invoke(new()\n    {\n        DbInstanceId = \"example_value\",\n        StartTime = \"2022-12-01T00:00:00Z\",\n        EndTime = \"2022-12-16T00:00:00Z\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRdsCrossRegionBackups\"] = backups.Apply(getCrossRegionBackupsResult =\u003e getCrossRegionBackupsResult.Backups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbackups, err := rds.GetCrossRegionBackups(ctx, \u0026rds.GetCrossRegionBackupsArgs{\n\t\t\tDbInstanceId: \"example_value\",\n\t\t\tStartTime:    pulumi.StringRef(\"2022-12-01T00:00:00Z\"),\n\t\t\tEndTime:      pulumi.StringRef(\"2022-12-16T00:00:00Z\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRdsCrossRegionBackups\", backups.Backups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetCrossRegionBackupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var backups = RdsFunctions.getCrossRegionBackups(GetCrossRegionBackupsArgs.builder()\n            .dbInstanceId(\"example_value\")\n            .startTime(\"2022-12-01T00:00:00Z\")\n            .endTime(\"2022-12-16T00:00:00Z\")\n            .build());\n\n        ctx.export(\"firstRdsCrossRegionBackups\", backups.backups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  backups:\n    fn::invoke:\n      function: alicloud:rds:getCrossRegionBackups\n      arguments:\n        dbInstanceId: example_value\n        startTime: 2022-12-01T00:00:00Z\n        endTime: 2022-12-16T00:00:00Z\noutputs:\n  firstRdsCrossRegionBackups: ${backups.backups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCrossRegionBackups.\n","properties":{"backupId":{"type":"string","description":"The ID of the cross-region data backup file.\n"},"crossBackupId":{"type":"string","description":"The ID of the cross-region data backup file.\n"},"crossBackupRegion":{"type":"string","description":"The ID of the destination region where the cross-region data backup file is stored.\n\n\u003e **NOTE:** Note You must specify the \u003cspan pulumi-lang-nodejs=\"`crossBackupId`\" pulumi-lang-dotnet=\"`CrossBackupId`\" pulumi-lang-go=\"`crossBackupId`\" pulumi-lang-python=\"`cross_backup_id`\" pulumi-lang-yaml=\"`crossBackupId`\" pulumi-lang-java=\"`crossBackupId`\"\u003e`cross_backup_id`\u003c/span\u003e parameter. Alternatively, you must specify the \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e parameters.\n"},"dbInstanceId":{"type":"string","description":"The db instance id.\n"},"endTime":{"type":"string","description":"The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Cross Region Backup IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"startTime":{"type":"string","description":"The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.\n"}},"type":"object","required":["dbInstanceId"]},"outputs":{"description":"A collection of values returned by getCrossRegionBackups.\n","properties":{"backupId":{"type":"string"},"backups":{"items":{"$ref":"#/types/alicloud:rds/getCrossRegionBackupsBackup:getCrossRegionBackupsBackup"},"type":"array"},"crossBackupId":{"type":"string"},"crossBackupRegion":{"type":"string"},"dbInstanceId":{"type":"string"},"endTime":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"},"startTime":{"type":"string"}},"required":["backups","dbInstanceId","ids","id"],"type":"object"}},"alicloud:rds/getCrossRegions:getCrossRegions":{"description":"This data source provides an available area for remote disaster recovery for RDS.\n\n\u003e **NOTE:** Available in v1.193.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\n// Declare the data source\nconst crossRegions = alicloud.rds.getCrossRegions({});\nexport const firstRdsCrossRegions = regions.ids[0];\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\n# Declare the data source\ncross_regions = alicloud.rds.get_cross_regions()\npulumi.export(\"firstRdsCrossRegions\", regions[\"ids\"][0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Declare the data source\n    var crossRegions = AliCloud.Rds.GetCrossRegions.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRdsCrossRegions\"] = regions.Ids[0],\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Declare the data source\n\t\t_, err := rds.GetCrossRegions(ctx, \u0026rds.GetCrossRegionsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRdsCrossRegions\", regions.Ids[0])\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetCrossRegionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Declare the data source\n        final var crossRegions = RdsFunctions.getCrossRegions(GetCrossRegionsArgs.builder()\n            .build());\n\n        ctx.export(\"firstRdsCrossRegions\", regions.ids()[0]);\n    }\n}\n```\n```yaml\nvariables:\n  # Declare the data source\n  crossRegions:\n    fn::invoke:\n      function: alicloud:rds:getCrossRegions\n      arguments: {}\noutputs:\n  firstRdsCrossRegions: ${regions.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCrossRegions.\n","properties":{"outputFile":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCrossRegions.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of region IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"regions":{"description":"The list of destination regions that support cross-region backup. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:rds/getCrossRegionsRegion:getCrossRegionsRegion"},"type":"array"}},"required":["ids","regions","id"],"type":"object"}},"alicloud:rds/getInstanceClassInfos:getInstanceClassInfos":{"description":"This data source operation to query the instance types that are available to specific instances of Alibaba Cloud.\n\n\u003e **NOTE:** Available in v1.196.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst resources = alicloud.rds.getInstanceClassInfos({\n    commodityCode: \"bards\",\n    orderType: \"BUY\",\n    outputFile: \"./classes.txt\",\n});\nexport const firstDbInstanceClass = resources.then(resources =\u003e resources.infos?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nresources = alicloud.rds.get_instance_class_infos(commodity_code=\"bards\",\n    order_type=\"BUY\",\n    output_file=\"./classes.txt\")\npulumi.export(\"firstDbInstanceClass\", resources.infos[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var resources = AliCloud.Rds.GetInstanceClassInfos.Invoke(new()\n    {\n        CommodityCode = \"bards\",\n        OrderType = \"BUY\",\n        OutputFile = \"./classes.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstDbInstanceClass\"] = resources.Apply(getInstanceClassInfosResult =\u003e getInstanceClassInfosResult.Infos[0]),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tresources, err := rds.GetInstanceClassInfos(ctx, \u0026rds.GetInstanceClassInfosArgs{\n\t\t\tCommodityCode: \"bards\",\n\t\t\tOrderType:     \"BUY\",\n\t\t\tOutputFile:    pulumi.StringRef(\"./classes.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstDbInstanceClass\", resources.Infos[0])\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassInfosArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var resources = RdsFunctions.getInstanceClassInfos(GetInstanceClassInfosArgs.builder()\n            .commodityCode(\"bards\")\n            .orderType(\"BUY\")\n            .outputFile(\"./classes.txt\")\n            .build());\n\n        ctx.export(\"firstDbInstanceClass\", resources.infos()[0]);\n    }\n}\n```\n```yaml\nvariables:\n  resources:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClassInfos\n      arguments:\n        commodityCode: bards\n        orderType: BUY\n        outputFile: ./classes.txt\noutputs:\n  firstDbInstanceClass: ${resources.infos[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceClassInfos.\n","properties":{"commodityCode":{"type":"string","description":"The commodity code of the instance. Valid values:\n* **bards**: The instance is a pay-as-you-go primary instance. This value is available on the China site (aliyun.com).\n* **rds**: The instance is a subscription primary instance. This value is available on the China site (aliyun.com).\n* **rords**: The instance is a pay-as-you-go read-only instance. This value is available on the China site (aliyun.com).\n* **rds_rordspre_public_cn**: The instance is a subscription read-only instance. This value is available on the China site (aliyun.com).\n* **bards_intl**: The instance is a pay-as-you-go primary instance. This value is available on the International site (alibabacloud.com).\n* **rds_intl**: The instance is a subscription primary instance. This value is available on the International site (alibabacloud.com).\n* **rords_intl**: The instance is a pay-as-you-go read-only instance. This value is available on the International site (alibabacloud.com).\n* **rds_rordspre_public_intl**: The instance is a subscription read-only instance. This value is available on the International site (alibabacloud.com).\n"},"dbInstanceId":{"type":"string","description":"The ID of the primary instance.\n"},"infos":{"type":"array","items":{"$ref":"#/types/alicloud:rds/getInstanceClassInfosInfo:getInstanceClassInfosInfo"},"description":"A list of Rds available resource. Each element contains the following attributes:\n"},"orderType":{"type":"string","description":"FThe type of order that you want to query. Valid values:\n* **BUY**: specifies the query orders that are used to purchase instances.\n* **UPGRADE**: specifies the query orders that are used to change the specifications of instances.\n* **RENEW**: specifies the query orders that are used to renew instances.\n* **CONVERT**: specifies the query orders that are used to change the billing methods of instances.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi up`).\n\n\u003e **NOTE**: If you use the CommodityCode parameter to query the instance types that are available to read-only instances, you must specify the DBInstanceId parameter.\n"}},"type":"object","required":["commodityCode","orderType"]},"outputs":{"description":"A collection of values returned by getInstanceClassInfos.\n","properties":{"commodityCode":{"type":"string"},"dbInstanceId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Rds instance class codes.\n","items":{"type":"string"},"type":"array"},"infos":{"description":"A list of Rds available resource. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:rds/getInstanceClassInfosInfo:getInstanceClassInfosInfo"},"type":"array"},"orderType":{"type":"string"},"outputFile":{"type":"string"}},"required":["commodityCode","ids","orderType","id"],"type":"object"}},"alicloud:rds/getInstanceClasses:getInstanceClasses":{"description":"This data source provides the RDS instance classes resource available info of Alibaba Cloud.\n\n\u003e **NOTE:** Available since v1.46.0\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst resources = alicloud.rds.getInstanceClasses({\n    instanceChargeType: \"PostPaid\",\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n    outputFile: \"./classes.txt\",\n});\nexport const firstDbInstanceClass = resources.then(resources =\u003e resources.instanceClasses?.[0]?.instanceClass);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nresources = alicloud.rds.get_instance_classes(instance_charge_type=\"PostPaid\",\n    engine=\"MySQL\",\n    engine_version=\"5.6\",\n    output_file=\"./classes.txt\")\npulumi.export(\"firstDbInstanceClass\", resources.instance_classes[0].instance_class)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var resources = AliCloud.Rds.GetInstanceClasses.Invoke(new()\n    {\n        InstanceChargeType = \"PostPaid\",\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n        OutputFile = \"./classes.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstDbInstanceClass\"] = resources.Apply(getInstanceClassesResult =\u003e getInstanceClassesResult.InstanceClasses[0]?.InstanceClass),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tresources, err := rds.GetInstanceClasses(ctx, \u0026rds.GetInstanceClassesArgs{\n\t\t\tInstanceChargeType: pulumi.StringRef(\"PostPaid\"),\n\t\t\tEngine:             pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:      pulumi.StringRef(\"5.6\"),\n\t\t\tOutputFile:         pulumi.StringRef(\"./classes.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstDbInstanceClass\", resources.InstanceClasses[0].InstanceClass)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceClassesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var resources = RdsFunctions.getInstanceClasses(GetInstanceClassesArgs.builder()\n            .instanceChargeType(\"PostPaid\")\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .outputFile(\"./classes.txt\")\n            .build());\n\n        ctx.export(\"firstDbInstanceClass\", resources.instanceClasses()[0].instanceClass());\n    }\n}\n```\n```yaml\nvariables:\n  resources:\n    fn::invoke:\n      function: alicloud:rds:getInstanceClasses\n      arguments:\n        instanceChargeType: PostPaid\n        engine: MySQL\n        engineVersion: '5.6'\n        outputFile: ./classes.txt\noutputs:\n  firstDbInstanceClass: ${resources.instanceClasses[0].instanceClass}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceClasses.\n","properties":{"category":{"type":"string","description":"DB Instance category. the value like [`Basic`, `HighAvailability`, `Finance`, `AlwaysOn`, \u003cspan pulumi-lang-nodejs=\"`serverlessBasic`\" pulumi-lang-dotnet=\"`ServerlessBasic`\" pulumi-lang-go=\"`serverlessBasic`\" pulumi-lang-python=\"`serverless_basic`\" pulumi-lang-yaml=\"`serverlessBasic`\" pulumi-lang-java=\"`serverlessBasic`\"\u003e`serverless_basic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`serverlessStandard`\" pulumi-lang-dotnet=\"`ServerlessStandard`\" pulumi-lang-go=\"`serverlessStandard`\" pulumi-lang-python=\"`serverless_standard`\" pulumi-lang-yaml=\"`serverlessStandard`\" pulumi-lang-java=\"`serverlessStandard`\"\u003e`serverless_standard`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`serverlessHa`\" pulumi-lang-dotnet=\"`ServerlessHa`\" pulumi-lang-go=\"`serverlessHa`\" pulumi-lang-python=\"`serverless_ha`\" pulumi-lang-yaml=\"`serverlessHa`\" pulumi-lang-java=\"`serverlessHa`\"\u003e`serverless_ha`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\"\u003e`cluster`\u003c/span\u003e], [detail info](https://www.alibabacloud.com/help/doc-detail/69795.htm).\n"},"commodityCode":{"type":"string","description":"The commodity code of the instance. Valid values:\n* **bards**: The instance is a pay-as-you-go primary instance. This value is available on the China site (aliyun.com).\n* **rds**: The instance is a subscription primary instance. This value is available on the China site (aliyun.com).\n* **rords**: The instance is a pay-as-you-go read-only instance. This value is available on the China site (aliyun.com).\n* **rds_rordspre_public_cn**: The instance is a subscription read-only instance. This value is available on the China site (aliyun.com).\n* **bards_intl**: The instance is a pay-as-you-go primary instance. This value is available on the International site (alibabacloud.com).\n* **rds_intl**: The instance is a subscription primary instance. This value is available on the International site (alibabacloud.com).\n* **rords_intl**: The instance is a pay-as-you-go read-only instance. This value is available on the International site (alibabacloud.com).\n* **rds_rordspre_public_intl**: The instance is a subscription read-only instance. This value is available on the International site (alibabacloud.com).\n* **rds_serverless_public_cn**: The instance is a subscription serverless instance. This value is available on the China site (aliyun.com).\n* **rds_serverless_public_intl**: The instance is a subscription serverless instance. This value is available on the International site (alibabacloud.com).\n\n\u003e **NOTE**: The field \u003cspan pulumi-lang-nodejs=\"`dbInstanceId`\" pulumi-lang-dotnet=\"`DbInstanceId`\" pulumi-lang-go=\"`dbInstanceId`\" pulumi-lang-python=\"`db_instance_id`\" pulumi-lang-yaml=\"`dbInstanceId`\" pulumi-lang-java=\"`dbInstanceId`\"\u003e`db_instance_id`\u003c/span\u003e will be ignored when \u003cspan pulumi-lang-nodejs=\"`commodityCode`\" pulumi-lang-dotnet=\"`CommodityCode`\" pulumi-lang-go=\"`commodityCode`\" pulumi-lang-python=\"`commodity_code`\" pulumi-lang-yaml=\"`commodityCode`\" pulumi-lang-java=\"`commodityCode`\"\u003e`commodity_code`\u003c/span\u003e is not a read-only type.\n"},"dbInstanceClass":{"type":"string","description":"The DB instance class type by the user.\n"},"dbInstanceId":{"type":"string","description":"The ID of the instance.\n\n\u003e **NOTE**: The field \u003cspan pulumi-lang-nodejs=\"`dbInstanceId`\" pulumi-lang-dotnet=\"`DbInstanceId`\" pulumi-lang-go=\"`dbInstanceId`\" pulumi-lang-python=\"`db_instance_id`\" pulumi-lang-yaml=\"`dbInstanceId`\" pulumi-lang-java=\"`dbInstanceId`\"\u003e`db_instance_id`\u003c/span\u003e will be ignored when \u003cspan pulumi-lang-nodejs=\"`commodityCode`\" pulumi-lang-dotnet=\"`CommodityCode`\" pulumi-lang-go=\"`commodityCode`\" pulumi-lang-python=\"`commodity_code`\" pulumi-lang-yaml=\"`commodityCode`\" pulumi-lang-java=\"`commodityCode`\"\u003e`commodity_code`\u003c/span\u003e is not a read-only type.\n"},"dbInstanceStorageType":{"type":"string","description":"The DB instance storage space required by the user. Valid values: \u003cspan pulumi-lang-nodejs=\"\"cloudSsd\"\" pulumi-lang-dotnet=\"\"CloudSsd\"\" pulumi-lang-go=\"\"cloudSsd\"\" pulumi-lang-python=\"\"cloud_ssd\"\" pulumi-lang-yaml=\"\"cloudSsd\"\" pulumi-lang-java=\"\"cloudSsd\"\"\u003e\"cloud_ssd\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"localSsd\"\" pulumi-lang-dotnet=\"\"LocalSsd\"\" pulumi-lang-go=\"\"localSsd\"\" pulumi-lang-python=\"\"local_ssd\"\" pulumi-lang-yaml=\"\"localSsd\"\" pulumi-lang-java=\"\"localSsd\"\"\u003e\"local_ssd\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"cloudEssd\"\" pulumi-lang-dotnet=\"\"CloudEssd\"\" pulumi-lang-go=\"\"cloudEssd\"\" pulumi-lang-python=\"\"cloud_essd\"\" pulumi-lang-yaml=\"\"cloudEssd\"\" pulumi-lang-java=\"\"cloudEssd\"\"\u003e\"cloud_essd\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"cloudEssd2\"\" pulumi-lang-dotnet=\"\"CloudEssd2\"\" pulumi-lang-go=\"\"cloudEssd2\"\" pulumi-lang-python=\"\"cloud_essd2\"\" pulumi-lang-yaml=\"\"cloudEssd2\"\" pulumi-lang-java=\"\"cloudEssd2\"\"\u003e\"cloud_essd2\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"cloudEssd3\"\" pulumi-lang-dotnet=\"\"CloudEssd3\"\" pulumi-lang-go=\"\"cloudEssd3\"\" pulumi-lang-python=\"\"cloud_essd3\"\" pulumi-lang-yaml=\"\"cloudEssd3\"\" pulumi-lang-java=\"\"cloudEssd3\"\"\u003e\"cloud_essd3\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"generalEssd\"\" pulumi-lang-dotnet=\"\"GeneralEssd\"\" pulumi-lang-go=\"\"generalEssd\"\" pulumi-lang-python=\"\"general_essd\"\" pulumi-lang-yaml=\"\"generalEssd\"\" pulumi-lang-java=\"\"generalEssd\"\"\u003e\"general_essd\"\u003c/span\u003e.\n"},"engine":{"type":"string","description":"Database type. Valid values:\"MySQL\", \"SQLServer\", \"PostgreSQL\", \"MariaDB\". If not set, it will match all of engines.\n"},"engineVersion":{"type":"string","description":"Database version required by the user. Value options can refer to the latest docs [detail info](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.\n"},"instanceChargeType":{"type":"string","description":"Filter the results by charge type. Valid values: `PrePaid` and `PostPaid` and `Serverless`. Default to `PostPaid`.\n"},"multiZone":{"type":"boolean","description":"Whether to show multi available zone. Default false to not show multi availability zone.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi up`).\n"},"sortedBy":{"type":"string","description":"Sort the results by specified fields. The supported value is' Price '. Modifying this field will trigger resource reconstruction.\n"},"storageType":{"type":"string","description":"It has been deprecated from version 1.134.0+ and using \u003cspan pulumi-lang-nodejs=\"`dbInstanceStorageType`\" pulumi-lang-dotnet=\"`DbInstanceStorageType`\" pulumi-lang-go=\"`dbInstanceStorageType`\" pulumi-lang-python=\"`db_instance_storage_type`\" pulumi-lang-yaml=\"`dbInstanceStorageType`\" pulumi-lang-java=\"`dbInstanceStorageType`\"\u003e`db_instance_storage_type`\u003c/span\u003e instead.\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB instance.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstanceClasses.\n","properties":{"category":{"type":"string"},"commodityCode":{"type":"string"},"dbInstanceClass":{"type":"string"},"dbInstanceId":{"type":"string"},"dbInstanceStorageType":{"type":"string"},"engine":{"type":"string"},"engineVersion":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"(Available in 1.60.0+) A list of Rds instance class codes.\n","items":{"type":"string"},"type":"array"},"instanceChargeType":{"type":"string"},"instanceClasses":{"description":"A list of Rds available resource. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:rds/getInstanceClassesInstanceClass:getInstanceClassesInstanceClass"},"type":"array"},"multiZone":{"type":"boolean"},"outputFile":{"type":"string"},"sortedBy":{"type":"string"},"storageType":{"type":"string"},"zoneId":{"type":"string"}},"required":["ids","instanceClasses","id"],"type":"object"}},"alicloud:rds/getInstanceEngines:getInstanceEngines":{"description":"This data source provides the RDS instance engines resource available info of Alibaba Cloud.\n\n\u003e **NOTE:** Available in v1.46.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst resources = alicloud.rds.getInstanceEngines({\n    instanceChargeType: \"PostPaid\",\n    engine: \"MySQL\",\n    engineVersion: \"5.6\",\n    outputFile: \"./engines.txt\",\n});\nexport const firstDbCategory = resources.then(resources =\u003e resources.instanceEngines?.[0]?.category);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nresources = alicloud.rds.get_instance_engines(instance_charge_type=\"PostPaid\",\n    engine=\"MySQL\",\n    engine_version=\"5.6\",\n    output_file=\"./engines.txt\")\npulumi.export(\"firstDbCategory\", resources.instance_engines[0].category)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var resources = AliCloud.Rds.GetInstanceEngines.Invoke(new()\n    {\n        InstanceChargeType = \"PostPaid\",\n        Engine = \"MySQL\",\n        EngineVersion = \"5.6\",\n        OutputFile = \"./engines.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstDbCategory\"] = resources.Apply(getInstanceEnginesResult =\u003e getInstanceEnginesResult.InstanceEngines[0]?.Category),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tresources, err := rds.GetInstanceEngines(ctx, \u0026rds.GetInstanceEnginesArgs{\n\t\t\tInstanceChargeType: pulumi.StringRef(\"PostPaid\"),\n\t\t\tEngine:             pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:      pulumi.StringRef(\"5.6\"),\n\t\t\tOutputFile:         pulumi.StringRef(\"./engines.txt\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstDbCategory\", resources.InstanceEngines[0].Category)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetInstanceEnginesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var resources = RdsFunctions.getInstanceEngines(GetInstanceEnginesArgs.builder()\n            .instanceChargeType(\"PostPaid\")\n            .engine(\"MySQL\")\n            .engineVersion(\"5.6\")\n            .outputFile(\"./engines.txt\")\n            .build());\n\n        ctx.export(\"firstDbCategory\", resources.instanceEngines()[0].category());\n    }\n}\n```\n```yaml\nvariables:\n  resources:\n    fn::invoke:\n      function: alicloud:rds:getInstanceEngines\n      arguments:\n        instanceChargeType: PostPaid\n        engine: MySQL\n        engineVersion: '5.6'\n        outputFile: ./engines.txt\noutputs:\n  firstDbCategory: ${resources.instanceEngines[0].category}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceEngines.\n","properties":{"category":{"type":"string","description":"DB Instance category. the value like [`Basic`, `HighAvailability`, `Finance`, `AlwaysOn`], [detail info](https://www.alibabacloud.com/help/doc-detail/69795.htm).\n"},"dbInstanceStorageType":{"type":"string","description":"The DB instance storage space required by the user. Valid values: \u003cspan pulumi-lang-nodejs=\"\"cloudSsd\"\" pulumi-lang-dotnet=\"\"CloudSsd\"\" pulumi-lang-go=\"\"cloudSsd\"\" pulumi-lang-python=\"\"cloud_ssd\"\" pulumi-lang-yaml=\"\"cloudSsd\"\" pulumi-lang-java=\"\"cloudSsd\"\"\u003e\"cloud_ssd\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"localSsd\"\" pulumi-lang-dotnet=\"\"LocalSsd\"\" pulumi-lang-go=\"\"localSsd\"\" pulumi-lang-python=\"\"local_ssd\"\" pulumi-lang-yaml=\"\"localSsd\"\" pulumi-lang-java=\"\"localSsd\"\"\u003e\"local_ssd\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"cloudEssd\"\" pulumi-lang-dotnet=\"\"CloudEssd\"\" pulumi-lang-go=\"\"cloudEssd\"\" pulumi-lang-python=\"\"cloud_essd\"\" pulumi-lang-yaml=\"\"cloudEssd\"\" pulumi-lang-java=\"\"cloudEssd\"\"\u003e\"cloud_essd\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"cloudEssd2\"\" pulumi-lang-dotnet=\"\"CloudEssd2\"\" pulumi-lang-go=\"\"cloudEssd2\"\" pulumi-lang-python=\"\"cloud_essd2\"\" pulumi-lang-yaml=\"\"cloudEssd2\"\" pulumi-lang-java=\"\"cloudEssd2\"\"\u003e\"cloud_essd2\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"cloudEssd3\"\" pulumi-lang-dotnet=\"\"CloudEssd3\"\" pulumi-lang-go=\"\"cloudEssd3\"\" pulumi-lang-python=\"\"cloud_essd3\"\" pulumi-lang-yaml=\"\"cloudEssd3\"\" pulumi-lang-java=\"\"cloudEssd3\"\"\u003e\"cloud_essd3\"\u003c/span\u003e.\n"},"engine":{"type":"string","description":"Database type. Valid values: \"MySQL\", \"SQLServer\", \"PostgreSQL\", \"MariaDB\". If not set, it will match all of engines.\n"},"engineVersion":{"type":"string","description":"Database version required by the user. Value options can refer to the latest docs [detail info](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.\n"},"instanceChargeType":{"type":"string","description":"Filter the results by charge type. Valid values: `PrePaid` and `PostPaid`. Default to `PostPaid`.\n"},"multiZone":{"type":"boolean","description":"Whether to show multi available zone. Default false to not show multi availability zone.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi up`).\n"},"zoneId":{"type":"string","description":"The Zone to launch the DB instance.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstanceEngines.\n","properties":{"category":{"description":"DB Instance category.\n","type":"string"},"dbInstanceStorageType":{"type":"string"},"engine":{"description":"Database type.\n","type":"string"},"engineVersion":{"description":"DB Instance version.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of engines.\n","items":{"type":"string"},"type":"array"},"instanceChargeType":{"type":"string"},"instanceEngines":{"description":"A list of Rds available resource. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:rds/getInstanceEnginesInstanceEngine:getInstanceEnginesInstanceEngine"},"type":"array"},"multiZone":{"type":"boolean"},"outputFile":{"type":"string"},"zoneId":{"type":"string"}},"required":["ids","instanceEngines","id"],"type":"object"}},"alicloud:rds/getInstances:getInstances":{"description":"The \u003cspan pulumi-lang-nodejs=\"`alicloud.rds.getInstances`\" pulumi-lang-dotnet=\"`alicloud.rds.getInstances`\" pulumi-lang-go=\"`rds.getInstances`\" pulumi-lang-python=\"`rds_get_instances`\" pulumi-lang-yaml=\"`alicloud.rds.getInstances`\" pulumi-lang-java=\"`alicloud.rds.getInstances`\"\u003e`alicloud.rds.getInstances`\u003c/span\u003e data source provides a collection of RDS instances available in Alibaba Cloud account.\nFilters support regular expression for the instance name, searches by tags, and other filters which are listed below.\n\n\u003e **NOTE:** Available since v1.7.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst dbInstancesDs = alicloud.rds.getInstances({\n    nameRegex: \"data-\\\\d+\",\n    status: \"Running\",\n    tags: {\n        type: \"database\",\n        size: \"tiny\",\n    },\n});\nexport const firstDbInstanceId = dbInstancesDs.then(dbInstancesDs =\u003e dbInstancesDs.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndb_instances_ds = alicloud.rds.get_instances(name_regex=\"data-\\\\d+\",\n    status=\"Running\",\n    tags={\n        \"type\": \"database\",\n        \"size\": \"tiny\",\n    })\npulumi.export(\"firstDbInstanceId\", db_instances_ds.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dbInstancesDs = AliCloud.Rds.GetInstances.Invoke(new()\n    {\n        NameRegex = \"data-\\\\d+\",\n        Status = \"Running\",\n        Tags = \n        {\n            { \"type\", \"database\" },\n            { \"size\", \"tiny\" },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstDbInstanceId\"] = dbInstancesDs.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdbInstancesDs, err := rds.GetInstances(ctx, \u0026rds.GetInstancesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"data-\\\\d+\"),\n\t\t\tStatus:    pulumi.StringRef(\"Running\"),\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"type\": \"database\",\n\t\t\t\t\"size\": \"tiny\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstDbInstanceId\", dbInstancesDs.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var dbInstancesDs = RdsFunctions.getInstances(GetInstancesArgs.builder()\n            .nameRegex(\"data-\\\\d+\")\n            .status(\"Running\")\n            .tags(Map.ofEntries(\n                Map.entry(\"type\", \"database\"),\n                Map.entry(\"size\", \"tiny\")\n            ))\n            .build());\n\n        ctx.export(\"firstDbInstanceId\", dbInstancesDs.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  dbInstancesDs:\n    fn::invoke:\n      function: alicloud:rds:getInstances\n      arguments:\n        nameRegex: data-\\d+\n        status: Running\n        tags:\n          type: database\n          size: tiny\noutputs:\n  firstDbInstanceId: ${dbInstancesDs.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"connectionMode":{"type":"string","description":"`Standard` for standard access mode and `Safe` for high security access mode.\n"},"dbType":{"type":"string","description":"`Primary` for primary instance, `Readonly` for read-only instance, `Guard` for disaster recovery instance, and `Temp` for temporary instance.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output parameter template about resource attributes.\n"},"engine":{"type":"string","description":"Database type. Options are `MySQL`, `SQLServer`, `PostgreSQL`, `MariaDB`. If no value is specified, all types are returned.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of RDS instance IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string","description":"Status of the instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the DB instances. \nNote: Before 1.60.0, the value's format is a \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e string which including `TagKey` and `TagValue`. `TagKey` cannot be null, and `TagValue` can be empty. Format example `\"{\\\"key1\\\":\\\"value1\\\"}\"`\n"},"vpcId":{"type":"string","description":"Used to retrieve instances belong to specified VPC.\n"},"vswitchId":{"type":"string","description":"Used to retrieve instances belong to specified \u003cspan pulumi-lang-nodejs=\"`vswitch`\" pulumi-lang-dotnet=\"`Vswitch`\" pulumi-lang-go=\"`vswitch`\" pulumi-lang-python=\"`vswitch`\" pulumi-lang-yaml=\"`vswitch`\" pulumi-lang-java=\"`vswitch`\"\u003e`vswitch`\u003c/span\u003e resources.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"connectionMode":{"description":"`Standard` for standard access mode and `Safe` for high security access mode.\n","type":"string"},"dbType":{"description":"`Primary` for primary instance, `Readonly` for read-only instance, `Guard` for disaster recovery instance, and `Temp` for temporary instance.\n","type":"string"},"enableDetails":{"type":"boolean"},"engine":{"description":"Database type. Options are `MySQL`, `SQLServer`, `PostgreSQL`, `MariaDB`. If no value is specified, all types are returned.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of RDS instance IDs.\n","items":{"type":"string"},"type":"array"},"instances":{"description":"A list of RDS instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:rds/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of RDS instance names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"description":"Status of the instance.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"totalCount":{"type":"integer"},"vpcId":{"description":"ID of the VPC the instance belongs to.\n","type":"string"},"vswitchId":{"description":"ID of the vSwitch the instance belongs to.\n","type":"string"}},"required":["ids","instances","names","totalCount","id"],"type":"object"}},"alicloud:rds/getModifyParameterLogs:getModifyParameterLogs":{"description":"This data source provides the Rds Modify Parameter Logs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.174.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.rds.getModifyParameterLogs({\n    dbInstanceId: \"example_value\",\n    startTime: \"2022-06-04T13:56Z\",\n    endTime: \"2022-06-08T13:56Z\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.rds.get_modify_parameter_logs(db_instance_id=\"example_value\",\n    start_time=\"2022-06-04T13:56Z\",\n    end_time=\"2022-06-08T13:56Z\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Rds.GetModifyParameterLogs.Invoke(new()\n    {\n        DbInstanceId = \"example_value\",\n        StartTime = \"2022-06-04T13:56Z\",\n        EndTime = \"2022-06-08T13:56Z\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.GetModifyParameterLogs(ctx, \u0026rds.GetModifyParameterLogsArgs{\n\t\t\tDbInstanceId: \"example_value\",\n\t\t\tStartTime:    \"2022-06-04T13:56Z\",\n\t\t\tEndTime:      \"2022-06-08T13:56Z\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetModifyParameterLogsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RdsFunctions.getModifyParameterLogs(GetModifyParameterLogsArgs.builder()\n            .dbInstanceId(\"example_value\")\n            .startTime(\"2022-06-04T13:56Z\")\n            .endTime(\"2022-06-08T13:56Z\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:rds:getModifyParameterLogs\n      arguments:\n        dbInstanceId: example_value\n        startTime: 2022-06-04T13:56Z\n        endTime: 2022-06-08T13:56Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getModifyParameterLogs.\n","properties":{"dbInstanceId":{"type":"string","description":"The db instance id.\n"},"endTime":{"type":"string","description":"The end time.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"startTime":{"type":"string","description":"The start time.\n"}},"type":"object","required":["dbInstanceId","endTime","startTime"]},"outputs":{"description":"A collection of values returned by getModifyParameterLogs.\n","properties":{"dbInstanceId":{"type":"string"},"endTime":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"logs":{"items":{"$ref":"#/types/alicloud:rds/getModifyParameterLogsLog:getModifyParameterLogsLog"},"type":"array"},"outputFile":{"type":"string"},"startTime":{"type":"string"}},"required":["dbInstanceId","endTime","logs","startTime","id"],"type":"object"}},"alicloud:rds/getRdsBackups:getRdsBackups":{"description":"This data source provides the Rds Backups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.149.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.rds.getRdsBackups({\n    dbInstanceId: \"example_value\",\n});\nexport const firstRdsBackupId = example.then(example =\u003e example.backups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.rds.get_rds_backups(db_instance_id=\"example_value\")\npulumi.export(\"firstRdsBackupId\", example.backups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Rds.GetRdsBackups.Invoke(new()\n    {\n        DbInstanceId = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRdsBackupId\"] = example.Apply(getRdsBackupsResult =\u003e getRdsBackupsResult.Backups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rds.GetRdsBackups(ctx, \u0026rds.GetRdsBackupsArgs{\n\t\t\tDbInstanceId: \"example_value\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRdsBackupId\", example.Backups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetRdsBackupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RdsFunctions.getRdsBackups(GetRdsBackupsArgs.builder()\n            .dbInstanceId(\"example_value\")\n            .build());\n\n        ctx.export(\"firstRdsBackupId\", example.backups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:rds:getRdsBackups\n      arguments:\n        dbInstanceId: example_value\noutputs:\n  firstRdsBackupId: ${example.backups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRdsBackups.\n","properties":{"backupMode":{"type":"string","description":"BackupMode. Valid values: `Automated` and `Manual`.\n"},"backupStatus":{"type":"string","description":"Backup task status. Valid values: `Automated` and `Manual`.\n"},"dbInstanceId":{"type":"string","description":"The db instance id.\n"},"endTime":{"type":"string","description":"The end time.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Backup IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"startTime":{"type":"string","description":"The start time.\n"}},"type":"object","required":["dbInstanceId"]},"outputs":{"description":"A collection of values returned by getRdsBackups.\n","properties":{"backupMode":{"type":"string"},"backupStatus":{"type":"string"},"backups":{"items":{"$ref":"#/types/alicloud:rds/getRdsBackupsBackup:getRdsBackupsBackup"},"type":"array"},"dbInstanceId":{"type":"string"},"endTime":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"startTime":{"type":"string"}},"required":["backups","dbInstanceId","ids","id"],"type":"object"}},"alicloud:rds/getRdsParameterGroups:getRdsParameterGroups":{"inputs":{"description":"A collection of arguments for invoking getRdsParameterGroups.\n","properties":{"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"}},"nameRegex":{"type":"string"},"outputFile":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRdsParameterGroups.\n","properties":{"enableDetails":{"type":"boolean"},"groups":{"items":{"$ref":"#/types/alicloud:rds/getRdsParameterGroupsGroup:getRdsParameterGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:rds/getSlots:getSlots":{"description":"This data source provides the Rds Replication Slots of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.204.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.rds.getSlots({\n    dbInstanceId: \"example_value\",\n});\nexport const firstRdsSlotsName = example.then(example =\u003e example.slots?.[0]?.slotName);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.rds.get_slots(db_instance_id=\"example_value\")\npulumi.export(\"firstRdsSlotsName\", example.slots[0].slot_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Rds.GetSlots.Invoke(new()\n    {\n        DbInstanceId = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRdsSlotsName\"] = example.Apply(getSlotsResult =\u003e getSlotsResult.Slots[0]?.SlotName),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := rds.GetSlots(ctx, \u0026rds.GetSlotsArgs{\n\t\t\tDbInstanceId: \"example_value\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRdsSlotsName\", example.Slots[0].SlotName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetSlotsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RdsFunctions.getSlots(GetSlotsArgs.builder()\n            .dbInstanceId(\"example_value\")\n            .build());\n\n        ctx.export(\"firstRdsSlotsName\", example.slots()[0].slotName());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:rds:getSlots\n      arguments:\n        dbInstanceId: example_value\noutputs:\n  firstRdsSlotsName: ${example.slots[0].slotName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSlots.\n","properties":{"dbInstanceId":{"type":"string","description":"The db instance id.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The resource group id.\n"}},"type":"object","required":["dbInstanceId"]},"outputs":{"description":"A collection of values returned by getSlots.\n","properties":{"dbInstanceId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"},"slots":{"description":"A list of Rds Replication Slots. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:rds/getSlotsSlot:getSlotsSlot"},"type":"array"}},"required":["dbInstanceId","slots","id"],"type":"object"}},"alicloud:rds/getZones:getZones":{"description":"This data source provides availability zones for RDS that can be accessed by an Alibaba Cloud account within the region configured in the provider.\n\n\u003e **NOTE:** Available since v1.73.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.rds.getZones({\n    engine: \"MySQL\",\n    engineVersion: \"8.0\",\n    instanceChargeType: \"PostPaid\",\n    category: \"Basic\",\n    dbInstanceStorageType: \"cloud_essd\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.rds.get_zones(engine=\"MySQL\",\n    engine_version=\"8.0\",\n    instance_charge_type=\"PostPaid\",\n    category=\"Basic\",\n    db_instance_storage_type=\"cloud_essd\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Rds.GetZones.Invoke(new()\n    {\n        Engine = \"MySQL\",\n        EngineVersion = \"8.0\",\n        InstanceChargeType = \"PostPaid\",\n        Category = \"Basic\",\n        DbInstanceStorageType = \"cloud_essd\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.GetZones(ctx, \u0026rds.GetZonesArgs{\n\t\t\tEngine:                pulumi.StringRef(\"MySQL\"),\n\t\t\tEngineVersion:         pulumi.StringRef(\"8.0\"),\n\t\t\tInstanceChargeType:    pulumi.StringRef(\"PostPaid\"),\n\t\t\tCategory:              pulumi.StringRef(\"Basic\"),\n\t\t\tDbInstanceStorageType: pulumi.StringRef(\"cloud_essd\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rds.RdsFunctions;\nimport com.pulumi.alicloud.rds.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RdsFunctions.getZones(GetZonesArgs.builder()\n            .engine(\"MySQL\")\n            .engineVersion(\"8.0\")\n            .instanceChargeType(\"PostPaid\")\n            .category(\"Basic\")\n            .dbInstanceStorageType(\"cloud_essd\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:rds:getZones\n      arguments:\n        engine: MySQL\n        engineVersion: '8.0'\n        instanceChargeType: PostPaid\n        category: Basic\n        dbInstanceStorageType: cloud_essd\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"category":{"type":"string","description":"DB Instance category. the value like [`Basic`, `HighAvailability`, `Finance`, `AlwaysOn`, \u003cspan pulumi-lang-nodejs=\"`serverlessBasic`\" pulumi-lang-dotnet=\"`ServerlessBasic`\" pulumi-lang-go=\"`serverlessBasic`\" pulumi-lang-python=\"`serverless_basic`\" pulumi-lang-yaml=\"`serverlessBasic`\" pulumi-lang-java=\"`serverlessBasic`\"\u003e`serverless_basic`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`serverlessStandard`\" pulumi-lang-dotnet=\"`ServerlessStandard`\" pulumi-lang-go=\"`serverlessStandard`\" pulumi-lang-python=\"`serverless_standard`\" pulumi-lang-yaml=\"`serverlessStandard`\" pulumi-lang-java=\"`serverlessStandard`\"\u003e`serverless_standard`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`serverlessHa`\" pulumi-lang-dotnet=\"`ServerlessHa`\" pulumi-lang-go=\"`serverlessHa`\" pulumi-lang-python=\"`serverless_ha`\" pulumi-lang-yaml=\"`serverlessHa`\" pulumi-lang-java=\"`serverlessHa`\"\u003e`serverless_ha`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\"\u003e`cluster`\u003c/span\u003e], [detail info](https://www.alibabacloud.com/help/doc-detail/69795.htm).\n"},"dbInstanceStorageType":{"type":"string","description":"The DB instance storage space required by the user. Valid values: \u003cspan pulumi-lang-nodejs=\"\"cloudSsd\"\" pulumi-lang-dotnet=\"\"CloudSsd\"\" pulumi-lang-go=\"\"cloudSsd\"\" pulumi-lang-python=\"\"cloud_ssd\"\" pulumi-lang-yaml=\"\"cloudSsd\"\" pulumi-lang-java=\"\"cloudSsd\"\"\u003e\"cloud_ssd\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"localSsd\"\" pulumi-lang-dotnet=\"\"LocalSsd\"\" pulumi-lang-go=\"\"localSsd\"\" pulumi-lang-python=\"\"local_ssd\"\" pulumi-lang-yaml=\"\"localSsd\"\" pulumi-lang-java=\"\"localSsd\"\"\u003e\"local_ssd\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"cloudEssd\"\" pulumi-lang-dotnet=\"\"CloudEssd\"\" pulumi-lang-go=\"\"cloudEssd\"\" pulumi-lang-python=\"\"cloud_essd\"\" pulumi-lang-yaml=\"\"cloudEssd\"\" pulumi-lang-java=\"\"cloudEssd\"\"\u003e\"cloud_essd\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"cloudEssd2\"\" pulumi-lang-dotnet=\"\"CloudEssd2\"\" pulumi-lang-go=\"\"cloudEssd2\"\" pulumi-lang-python=\"\"cloud_essd2\"\" pulumi-lang-yaml=\"\"cloudEssd2\"\" pulumi-lang-java=\"\"cloudEssd2\"\"\u003e\"cloud_essd2\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"cloudEssd3\"\" pulumi-lang-dotnet=\"\"CloudEssd3\"\" pulumi-lang-go=\"\"cloudEssd3\"\" pulumi-lang-python=\"\"cloud_essd3\"\" pulumi-lang-yaml=\"\"cloudEssd3\"\" pulumi-lang-java=\"\"cloudEssd3\"\"\u003e\"cloud_essd3\"\u003c/span\u003e.\n"},"engine":{"type":"string","description":"Database type. Valid values: \"MySQL\", \"SQLServer\", \"PostgreSQL\", \"MariaDB\". If not set, it will match all of engines.\n"},"engineVersion":{"type":"string","description":"Database version required by the user. Value options can refer to the latest docs [detail info](https://www.alibabacloud.com/help/doc-detail/26228.htm) `EngineVersion`.\n"},"instanceChargeType":{"type":"string","description":"Filter the results by a specific instance charge type. Valid values: `PrePaid` and `PostPaid` and `Serverless`. Default to `PostPaid`.\n"},"multi":{"type":"boolean","description":"It has been deprecated from version 1.137.0 and using \u003cspan pulumi-lang-nodejs=\"`multiZone`\" pulumi-lang-dotnet=\"`MultiZone`\" pulumi-lang-go=\"`multiZone`\" pulumi-lang-python=\"`multi_zone`\" pulumi-lang-yaml=\"`multiZone`\" pulumi-lang-java=\"`multiZone`\"\u003e`multi_zone`\u003c/span\u003e instead.\n","deprecationMessage":"It has been deprecated from version 1.137.0 and using \u003cspan pulumi-lang-nodejs=\"`multiZone`\" pulumi-lang-dotnet=\"`MultiZone`\" pulumi-lang-go=\"`multiZone`\" pulumi-lang-python=\"`multi_zone`\" pulumi-lang-yaml=\"`multiZone`\" pulumi-lang-java=\"`multiZone`\"\u003e`multi_zone`\u003c/span\u003e instead."},"multiZone":{"type":"boolean","description":"Indicate whether the zones can be used in a multi AZ configuration. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Multi AZ is usually used to launch RDS instances.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"category":{"type":"string"},"dbInstanceStorageType":{"type":"string"},"engine":{"type":"string"},"engineVersion":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of zone IDs.\n","items":{"type":"string"},"type":"array"},"instanceChargeType":{"type":"string"},"multi":{"deprecationMessage":"It has been deprecated from version 1.137.0 and using \u003cspan pulumi-lang-nodejs=\"`multiZone`\" pulumi-lang-dotnet=\"`MultiZone`\" pulumi-lang-go=\"`multiZone`\" pulumi-lang-python=\"`multi_zone`\" pulumi-lang-yaml=\"`multiZone`\" pulumi-lang-java=\"`multiZone`\"\u003e`multi_zone`\u003c/span\u003e instead.","type":"boolean"},"multiZone":{"type":"boolean"},"outputFile":{"type":"string"},"zones":{"description":"A list of availability zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:rds/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:resourcemanager/getAccountDeletionCheckTask:getAccountDeletionCheckTask":{"description":"Using this data source can open Resource Manager Account Deletion Check Task.\n\nFor information about Resource Manager Account Deletion Check Task and how to use it, see [What is Resource Manager Account Deletion Check Task](https://www.alibabacloud.com/help/en/resource-management/latest/check-account-delete).\n\n\u003e **NOTE:** Available in v1.187.0+.\n\n\u003e **NOTE:** The member deletion feature is in invitational preview. You can contact the service manager of Alibaba Cloud to apply for a trial.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst task = alicloud.resourcemanager.getAccountDeletionCheckTask({\n    accountId: \"your_account_id\",\n});\nexport const abandonAbleChecksIds = task.then(task =\u003e task.abandonAbleChecks.map(__item =\u003e __item.checkId));\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ntask = alicloud.resourcemanager.get_account_deletion_check_task(account_id=\"your_account_id\")\npulumi.export(\"abandonAbleChecksIds\", [__item.check_id for __item in task.abandon_able_checks])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var task = AliCloud.ResourceManager.GetAccountDeletionCheckTask.Invoke(new()\n    {\n        AccountId = \"your_account_id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"abandonAbleChecksIds\"] = task.Apply(getAccountDeletionCheckTaskResult =\u003e getAccountDeletionCheckTaskResult.AbandonAbleChecks).Select(__item =\u003e __item.CheckId).ToList(),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ntask, err := resourcemanager.GetAccountDeletionCheckTask(ctx, \u0026resourcemanager.GetAccountDeletionCheckTaskArgs{\nAccountId: \"your_account_id\",\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"abandonAbleChecksIds\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:5,11-44)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetAccountDeletionCheckTaskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var task = ResourcemanagerFunctions.getAccountDeletionCheckTask(GetAccountDeletionCheckTaskArgs.builder()\n            .accountId(\"your_account_id\")\n            .build());\n\n        ctx.export(\"abandonAbleChecksIds\", task.abandonAbleChecks().stream().map(element -\u003e element.checkId()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccountDeletionCheckTask.\n","properties":{"accountId":{"type":"string","description":"The ID of the member that you want to delete.\n"}},"type":"object","required":["accountId"]},"outputs":{"description":"A collection of values returned by getAccountDeletionCheckTask.\n","properties":{"abandonAbleChecks":{"description":"The check items that you can choose to ignore for the member deletion. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:resourcemanager/getAccountDeletionCheckTaskAbandonAbleCheck:getAccountDeletionCheckTaskAbandonAbleCheck"},"type":"array"},"accountId":{"type":"string"},"allowDelete":{"description":"Indicates whether the member can be deleted.\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"notAllowReasons":{"description":"The reasons why the member cannot be deleted. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:resourcemanager/getAccountDeletionCheckTaskNotAllowReason:getAccountDeletionCheckTaskNotAllowReason"},"type":"array"},"status":{"description":"The status of the check.\n","type":"string"}},"required":["abandonAbleChecks","accountId","allowDelete","notAllowReasons","status","id"],"type":"object"}},"alicloud:resourcemanager/getAccounts:getAccounts":{"description":"This data source provides the Resource Manager Accounts of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.86.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.resourcemanager.getAccounts({});\nexport const resourceManagerAccountId0 = _default.then(_default =\u003e _default.accounts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.get_accounts()\npulumi.export(\"resourceManagerAccountId0\", default.accounts[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ResourceManager.GetAccounts.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"resourceManagerAccountId0\"] = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Accounts[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := resourcemanager.GetAccounts(ctx, \u0026resourcemanager.GetAccountsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"resourceManagerAccountId0\", _default.Accounts[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetAccountsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ResourcemanagerFunctions.getAccounts(GetAccountsArgs.builder()\n            .build());\n\n        ctx.export(\"resourceManagerAccountId0\", default_.accounts()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getAccounts\n      arguments: {}\noutputs:\n  resourceManagerAccountId0: ${default.accounts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccounts.\n","properties":{"enableDetails":{"type":"boolean","description":"Whether to query the detailed list of resource attributes. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Account IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of account. Valid values: `CreateCancelled`, `CreateExpired`, `CreateFailed`, `CreateSuccess`, `CreateVerifying`, `InviteSuccess`, `PromoteCancelled`, `PromoteExpired`, `PromoteFailed`, `PromoteSuccess`, `PromoteVerifying`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getAccounts.\n","properties":{"accounts":{"description":"A list of accounts. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:resourcemanager/getAccountsAccount:getAccountsAccount"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the member.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"(Available since v1.259.0) The tags that are added to the member.\n","type":"object"}},"required":["accounts","ids","id"],"type":"object"}},"alicloud:resourcemanager/getControlPolicies:getControlPolicies":{"description":"This data source provides the Resource Manager Control Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.120.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.resourcemanager.getControlPolicies({\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstResourceManagerControlPolicyId = example.then(example =\u003e example.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.resourcemanager.get_control_policies(ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstResourceManagerControlPolicyId\", example.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.ResourceManager.GetControlPolicies.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstResourceManagerControlPolicyId\"] = example.Apply(getControlPoliciesResult =\u003e getControlPoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := resourcemanager.GetControlPolicies(ctx, \u0026resourcemanager.GetControlPoliciesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstResourceManagerControlPolicyId\", example.Policies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetControlPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = ResourcemanagerFunctions.getControlPolicies(GetControlPoliciesArgs.builder()\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstResourceManagerControlPolicyId\", example.policies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:resourcemanager:getControlPolicies\n      arguments:\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstResourceManagerControlPolicyId: ${example.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getControlPolicies.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Control Policy IDs.\n"},"language":{"type":"string","description":"The language. Valid value `zh-CN`, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`ja`\" pulumi-lang-dotnet=\"`Ja`\" pulumi-lang-go=\"`ja`\" pulumi-lang-python=\"`ja`\" pulumi-lang-yaml=\"`ja`\" pulumi-lang-java=\"`ja`\"\u003e`ja`\u003c/span\u003e. Default value `zh-CN`.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Control Policy name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"policyType":{"type":"string","description":"The policy type of control policy. Valid values `System` and `Custom`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getControlPolicies.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policies":{"items":{"$ref":"#/types/alicloud:resourcemanager/getControlPoliciesPolicy:getControlPoliciesPolicy"},"type":"array"},"policyType":{"type":"string"}},"required":["ids","names","policies","id"],"type":"object"}},"alicloud:resourcemanager/getControlPolicyAttachments:getControlPolicyAttachments":{"description":"This data source provides the Resource Manager Control Policy Attachments of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.120.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.resourcemanager.getControlPolicyAttachments({\n    targetId: \"example_value\",\n});\nexport const firstResourceManagerControlPolicyAttachmentId = example.then(example =\u003e example.attachments?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.resourcemanager.get_control_policy_attachments(target_id=\"example_value\")\npulumi.export(\"firstResourceManagerControlPolicyAttachmentId\", example.attachments[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.ResourceManager.GetControlPolicyAttachments.Invoke(new()\n    {\n        TargetId = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstResourceManagerControlPolicyAttachmentId\"] = example.Apply(getControlPolicyAttachmentsResult =\u003e getControlPolicyAttachmentsResult.Attachments[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := resourcemanager.GetControlPolicyAttachments(ctx, \u0026resourcemanager.GetControlPolicyAttachmentsArgs{\n\t\t\tTargetId: \"example_value\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstResourceManagerControlPolicyAttachmentId\", example.Attachments[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetControlPolicyAttachmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = ResourcemanagerFunctions.getControlPolicyAttachments(GetControlPolicyAttachmentsArgs.builder()\n            .targetId(\"example_value\")\n            .build());\n\n        ctx.export(\"firstResourceManagerControlPolicyAttachmentId\", example.attachments()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:resourcemanager:getControlPolicyAttachments\n      arguments:\n        targetId: example_value\noutputs:\n  firstResourceManagerControlPolicyAttachmentId: ${example.attachments[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getControlPolicyAttachments.\n","properties":{"language":{"type":"string","description":"The language. Valid value `zh-CN`, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`ja`\" pulumi-lang-dotnet=\"`Ja`\" pulumi-lang-go=\"`ja`\" pulumi-lang-python=\"`ja`\" pulumi-lang-yaml=\"`ja`\" pulumi-lang-java=\"`ja`\"\u003e`ja`\u003c/span\u003e. Default value `zh-CN`\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"policyType":{"type":"string","description":"The policy type of control policy. Valid values: `Custom` and `System`.\n"},"targetId":{"type":"string","description":"The Id of target.\n"}},"type":"object","required":["targetId"]},"outputs":{"description":"A collection of values returned by getControlPolicyAttachments.\n","properties":{"attachments":{"items":{"$ref":"#/types/alicloud:resourcemanager/getControlPolicyAttachmentsAttachment:getControlPolicyAttachmentsAttachment"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"outputFile":{"type":"string"},"policyType":{"type":"string"},"targetId":{"type":"string"}},"required":["attachments","ids","targetId","id"],"type":"object"}},"alicloud:resourcemanager/getDelegatedAdministrators:getDelegatedAdministrators":{"description":"This data source provides the Resource Manager Delegated Administrators of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.181.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.resourcemanager.getDelegatedAdministrators({\n    ids: [\"example_value\"],\n});\nexport const resourceManagerDelegatedAdministratorId1 = ids.then(ids =\u003e ids.administrators?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.resourcemanager.get_delegated_administrators(ids=[\"example_value\"])\npulumi.export(\"resourceManagerDelegatedAdministratorId1\", ids.administrators[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.ResourceManager.GetDelegatedAdministrators.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"resourceManagerDelegatedAdministratorId1\"] = ids.Apply(getDelegatedAdministratorsResult =\u003e getDelegatedAdministratorsResult.Administrators[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := resourcemanager.GetDelegatedAdministrators(ctx, \u0026resourcemanager.GetDelegatedAdministratorsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"resourceManagerDelegatedAdministratorId1\", ids.Administrators[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetDelegatedAdministratorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ResourcemanagerFunctions.getDelegatedAdministrators(GetDelegatedAdministratorsArgs.builder()\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"resourceManagerDelegatedAdministratorId1\", ids.administrators()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:resourcemanager:getDelegatedAdministrators\n      arguments:\n        ids:\n          - example_value\noutputs:\n  resourceManagerDelegatedAdministratorId1: ${ids.administrators[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDelegatedAdministrators.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Delegated Administrator IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"servicePrincipal":{"type":"string","description":"The identification of the trusted service.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDelegatedAdministrators.\n","properties":{"administrators":{"items":{"$ref":"#/types/alicloud:resourcemanager/getDelegatedAdministratorsAdministrator:getDelegatedAdministratorsAdministrator"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"servicePrincipal":{"type":"string"}},"required":["administrators","ids","id"],"type":"object"}},"alicloud:resourcemanager/getFolders:getFolders":{"description":"This data source provides the Resource Manager Folders of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.84.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = new alicloud.resourcemanager.Folder(\"default\", {folderName: name});\nconst ids = alicloud.resourcemanager.getFoldersOutput({\n    ids: [_default.id],\n});\nexport const resourceManagerFolderId0 = ids.apply(ids =\u003e ids.folders?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.Folder(\"default\", folder_name=name)\nids = alicloud.resourcemanager.get_folders_output(ids=[default.id])\npulumi.export(\"resourceManagerFolderId0\", ids.folders[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = new AliCloud.ResourceManager.Folder(\"default\", new()\n    {\n        FolderName = name,\n    });\n\n    var ids = AliCloud.ResourceManager.GetFolders.Invoke(new()\n    {\n        Ids = new[]\n        {\n            @default.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"resourceManagerFolderId0\"] = ids.Apply(getFoldersResult =\u003e getFoldersResult.Folders[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.NewFolder(ctx, \"default\", \u0026resourcemanager.FolderArgs{\n\t\t\tFolderName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := resourcemanager.GetFoldersOutput(ctx, resourcemanager.GetFoldersOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"resourceManagerFolderId0\", ids.ApplyT(func(ids resourcemanager.GetFoldersResult) (*string, error) {\n\t\t\treturn \u0026ids.Folders[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.Folder;\nimport com.pulumi.alicloud.resourcemanager.FolderArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetFoldersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var default_ = new Folder(\"default\", FolderArgs.builder()\n            .folderName(name)\n            .build());\n\n        final var ids = ResourcemanagerFunctions.getFolders(GetFoldersArgs.builder()\n            .ids(default_.id())\n            .build());\n\n        ctx.export(\"resourceManagerFolderId0\", ids.applyValue(_ids -\u003e _ids.folders()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  default:\n    type: alicloud:resourcemanager:Folder\n    properties:\n      folderName: ${name}\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:resourcemanager:getFolders\n      arguments:\n        ids:\n          - ${default.id}\noutputs:\n  resourceManagerFolderId0: ${ids.folders[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFolders.\n","properties":{"enableDetails":{"type":"boolean","description":"Whether to query the detailed list of resource attributes. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Folders IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Folder name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"parentFolderId":{"type":"string","description":"The ID of the parent folder. **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`parentFolderId`\" pulumi-lang-dotnet=\"`ParentFolderId`\" pulumi-lang-go=\"`parentFolderId`\" pulumi-lang-python=\"`parent_folder_id`\" pulumi-lang-yaml=\"`parentFolderId`\" pulumi-lang-java=\"`parentFolderId`\"\u003e`parent_folder_id`\u003c/span\u003e is not set, the information of the first-level subfolders of the Root folder is queried.\n"},"queryKeyword":{"type":"string","description":"The keyword used for the query, such as a folder name. Fuzzy match is supported.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getFolders.\n","properties":{"enableDetails":{"type":"boolean"},"folders":{"description":"A list of Folder. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:resourcemanager/getFoldersFolder:getFoldersFolder"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Folder names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"parentFolderId":{"description":"(Available since v1.114.0) The ID of the parent folder. **Note:** \u003cspan pulumi-lang-nodejs=\"`parentFolderId`\" pulumi-lang-dotnet=\"`ParentFolderId`\" pulumi-lang-go=\"`parentFolderId`\" pulumi-lang-python=\"`parent_folder_id`\" pulumi-lang-yaml=\"`parentFolderId`\" pulumi-lang-java=\"`parentFolderId`\"\u003e`parent_folder_id`\u003c/span\u003e takes effect only if \u003cspan pulumi-lang-nodejs=\"`enableDetails`\" pulumi-lang-dotnet=\"`EnableDetails`\" pulumi-lang-go=\"`enableDetails`\" pulumi-lang-python=\"`enable_details`\" pulumi-lang-yaml=\"`enableDetails`\" pulumi-lang-java=\"`enableDetails`\"\u003e`enable_details`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","type":"string"},"queryKeyword":{"type":"string"}},"required":["folders","ids","names","id"],"type":"object"}},"alicloud:resourcemanager/getHandshakes:getHandshakes":{"description":"This data source provides the Resource Manager Handshakes of the current Alibaba Cloud user.\n\n\u003e **NOTE:**  Available in 1.86.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.resourcemanager.getHandshakes({});\nexport const firstHandshakeId = example.then(example =\u003e example.handshakes?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.resourcemanager.get_handshakes()\npulumi.export(\"firstHandshakeId\", example.handshakes[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.ResourceManager.GetHandshakes.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstHandshakeId\"] = example.Apply(getHandshakesResult =\u003e getHandshakesResult.Handshakes[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := resourcemanager.GetHandshakes(ctx, \u0026resourcemanager.GetHandshakesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstHandshakeId\", example.Handshakes[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetHandshakesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = ResourcemanagerFunctions.getHandshakes(GetHandshakesArgs.builder()\n            .build());\n\n        ctx.export(\"firstHandshakeId\", example.handshakes()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:resourcemanager:getHandshakes\n      arguments: {}\noutputs:\n  firstHandshakeId: ${example.handshakes[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHandshakes.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to true can output more details.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Resource Manager Handshake IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of handshake, valid values: `Accepted`, `Cancelled`, `Declined`, `Deleted`, `Expired` and `Pending`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHandshakes.\n","properties":{"enableDetails":{"type":"boolean"},"handshakes":{"description":"A list of Resource Manager Handshakes. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:resourcemanager/getHandshakesHandshake:getHandshakesHandshake"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Resource Manager Handshake IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the invitation.\n","type":"string"}},"required":["handshakes","ids","id"],"type":"object"}},"alicloud:resourcemanager/getPolicies:getPolicies":{"description":"This data source provides the Resource Manager Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:**  Available in 1.86.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:resourcemanager:getPolicies\n      arguments:\n        nameRegex: tftest\n        descriptionRegex: tftest_policy\n        policyType: Custom\noutputs:\n  firstPolicyId: ${example.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPolicies.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Resource Manager Policy IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by policy name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"policyType":{"type":"string","description":"The type of the policy. If you do not specify this parameter, the system lists all types of policies. Valid values: `Custom` and `System`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPolicies.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of policy IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of policy names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policies":{"description":"A list of policies. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:resourcemanager/getPoliciesPolicy:getPoliciesPolicy"},"type":"array"},"policyType":{"description":"The type of the policy.\n","type":"string"}},"required":["ids","names","policies","id"],"type":"object"}},"alicloud:resourcemanager/getPolicyAttachments:getPolicyAttachments":{"description":"This data source provides the Resource Manager Policy Attachments of the current Alibaba Cloud user.\n\n\u003e **NOTE:**  Available in 1.93.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.resourcemanager.getPolicyAttachments({});\nexport const firstAttachmentId = example.then(example =\u003e example.attachments?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.resourcemanager.get_policy_attachments()\npulumi.export(\"firstAttachmentId\", example.attachments[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.ResourceManager.GetPolicyAttachments.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstAttachmentId\"] = example.Apply(getPolicyAttachmentsResult =\u003e getPolicyAttachmentsResult.Attachments[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := resourcemanager.GetPolicyAttachments(ctx, \u0026resourcemanager.GetPolicyAttachmentsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstAttachmentId\", example.Attachments[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetPolicyAttachmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = ResourcemanagerFunctions.getPolicyAttachments(GetPolicyAttachmentsArgs.builder()\n            .build());\n\n        ctx.export(\"firstAttachmentId\", example.attachments()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:resourcemanager:getPolicyAttachments\n      arguments: {}\noutputs:\n  firstAttachmentId: ${example.attachments[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPolicyAttachments.\n","properties":{"language":{"type":"string","description":"The language that is used to return the description of the system policy. Valid values:\u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e: English, `zh-CN`: Chinese, \u003cspan pulumi-lang-nodejs=\"`ja`\" pulumi-lang-dotnet=\"`Ja`\" pulumi-lang-go=\"`ja`\" pulumi-lang-python=\"`ja`\" pulumi-lang-yaml=\"`ja`\" pulumi-lang-java=\"`ja`\"\u003e`ja`\u003c/span\u003e: Japanese.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"policyName":{"type":"string","description":"The name of the policy. The name must be 1 to 128 characters in length and can contain letters, digits, and hyphens (-).\n"},"policyType":{"type":"string","description":"The type of the policy. Valid values: `Custom` and `System`.\n"},"principalName":{"type":"string","description":"The name of the object to which the policy is attached.\n"},"principalType":{"type":"string","description":"The type of the object to which the policy is attached. If you do not specify this parameter, the system lists all types of objects. Valid values: `IMSUser`: RAM user, `IMSGroup`: RAM user group, `ServiceRole`: RAM role.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group or the ID of the Alibaba Cloud account to which the resource group belongs. If you do not specify this parameter, the system lists all policy attachment records under the current account.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPolicyAttachments.\n","properties":{"attachments":{"description":"A list of Resource Manager Policy Attachment. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:resourcemanager/getPolicyAttachmentsAttachment:getPolicyAttachmentsAttachment"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Resource Manager Policy Attachment IDs.\n","items":{"type":"string"},"type":"array"},"language":{"type":"string"},"outputFile":{"type":"string"},"policyName":{"description":"The name of the policy.\n","type":"string"},"policyType":{"description":"The type of the policy.\n","type":"string"},"principalName":{"description":"The name of the object to which the policy is attached.\n","type":"string"},"principalType":{"description":"The type of the object to which the policy is attached.\n","type":"string"},"resourceGroupId":{"description":"The ID of the resource group or the ID of the Alibaba Cloud account to which the resource group belongs.\n","type":"string"}},"required":["attachments","ids","id"],"type":"object"}},"alicloud:resourcemanager/getPolicyVersions:getPolicyVersions":{"description":"This data source provides the Resource Manager Policy Versions of the current Alibaba Cloud user.\n\n\u003e **NOTE:**  Available in 1.85.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.resourcemanager.getPolicyVersions({\n    policyName: \"tftest\",\n    policyType: \"Custom\",\n});\nexport const firstPolicyVersionId = _default.then(_default =\u003e _default.versions?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.get_policy_versions(policy_name=\"tftest\",\n    policy_type=\"Custom\")\npulumi.export(\"firstPolicyVersionId\", default.versions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ResourceManager.GetPolicyVersions.Invoke(new()\n    {\n        PolicyName = \"tftest\",\n        PolicyType = \"Custom\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstPolicyVersionId\"] = @default.Apply(@default =\u003e @default.Apply(getPolicyVersionsResult =\u003e getPolicyVersionsResult.Versions[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := resourcemanager.GetPolicyVersions(ctx, \u0026resourcemanager.GetPolicyVersionsArgs{\n\t\t\tPolicyName: \"tftest\",\n\t\t\tPolicyType: \"Custom\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstPolicyVersionId\", _default.Versions[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetPolicyVersionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ResourcemanagerFunctions.getPolicyVersions(GetPolicyVersionsArgs.builder()\n            .policyName(\"tftest\")\n            .policyType(\"Custom\")\n            .build());\n\n        ctx.export(\"firstPolicyVersionId\", default_.versions()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getPolicyVersions\n      arguments:\n        policyName: tftest\n        policyType: Custom\noutputs:\n  firstPolicyVersionId: ${default.versions[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPolicyVersions.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to true can output more details.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of policy version IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"policyName":{"type":"string","description":"The name of the policy.\n"},"policyType":{"type":"string","description":"The type of the policy. Valid values:`Custom` and `System`.\n"}},"type":"object","required":["policyName","policyType"]},"outputs":{"description":"A collection of values returned by getPolicyVersions.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of policy version IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policyName":{"type":"string"},"policyType":{"type":"string"},"versions":{"description":"A list of policy versions. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:resourcemanager/getPolicyVersionsVersion:getPolicyVersionsVersion"},"type":"array"}},"required":["ids","policyName","policyType","versions","id"],"type":"object"}},"alicloud:resourcemanager/getResourceDirectories:getResourceDirectories":{"description":"This data source provides the Resource Manager Resource Directories of the current Alibaba Cloud user.\n\n\u003e **NOTE:**  Available in 1.86.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.resourcemanager.getResourceDirectories({});\nexport const resourceDirectoryId = _default.then(_default =\u003e _default.directories?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.resourcemanager.get_resource_directories()\npulumi.export(\"resourceDirectoryId\", default.directories[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ResourceManager.GetResourceDirectories.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"resourceDirectoryId\"] = @default.Apply(@default =\u003e @default.Apply(getResourceDirectoriesResult =\u003e getResourceDirectoriesResult.Directories[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := resourcemanager.GetResourceDirectories(ctx, \u0026resourcemanager.GetResourceDirectoriesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"resourceDirectoryId\", _default.Directories[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceDirectoriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ResourcemanagerFunctions.getResourceDirectories(GetResourceDirectoriesArgs.builder()\n            .build());\n\n        ctx.export(\"resourceDirectoryId\", default_.directories()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceDirectories\n      arguments: {}\noutputs:\n  resourceDirectoryId: ${default.directories[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getResourceDirectories.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getResourceDirectories.\n","properties":{"directories":{"description":"A list of resource directories. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:resourcemanager/getResourceDirectoriesDirectory:getResourceDirectoriesDirectory"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"}},"required":["directories","id"],"type":"object"}},"alicloud:resourcemanager/getResourceGroups:getResourceGroups":{"description":"This data source provides resource groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.84.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.resourcemanager.getResourceGroups({\n    nameRegex: \"tf\",\n});\nexport const firstResourceGroupId = example.then(example =\u003e example.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.resourcemanager.get_resource_groups(name_regex=\"tf\")\npulumi.export(\"firstResourceGroupId\", example.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()\n    {\n        NameRegex = \"tf\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstResourceGroupId\"] = example.Apply(getResourceGroupsResult =\u003e getResourceGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"tf\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstResourceGroupId\", example.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .nameRegex(\"tf\")\n            .build());\n\n        ctx.export(\"firstResourceGroupId\", example.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments:\n        nameRegex: tf\noutputs:\n  firstResourceGroupId: ${example.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getResourceGroups.\n","properties":{"enableDetails":{"type":"boolean","description":"Set it to true can output more details. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of resource group IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by resource group identifier.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource group. Valid values: `Creating`, `Deleted`, `Deleting`, `OK` and `PendingDelete`. **NOTE:** From version 1.114.0, \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e can be set to `Deleting`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getResourceGroups.\n","properties":{"enableDetails":{"type":"boolean"},"groups":{"description":"A list of resource groups. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:resourcemanager/getResourceGroupsGroup:getResourceGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of resource group IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of resource group identifiers.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the regional resource group.\n","type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:resourcemanager/getResourceShares:getResourceShares":{"description":"This data source provides the Resource Manager Resource Shares of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.111.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.resourcemanager.getResourceShares({\n    resourceShareOwner: \"Self\",\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstResourceManagerResourceShareId = example.then(example =\u003e example.shares?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.resourcemanager.get_resource_shares(resource_share_owner=\"Self\",\n    ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstResourceManagerResourceShareId\", example.shares[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.ResourceManager.GetResourceShares.Invoke(new()\n    {\n        ResourceShareOwner = \"Self\",\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstResourceManagerResourceShareId\"] = example.Apply(getResourceSharesResult =\u003e getResourceSharesResult.Shares[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := resourcemanager.GetResourceShares(ctx, \u0026resourcemanager.GetResourceSharesArgs{\n\t\t\tResourceShareOwner: \"Self\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstResourceManagerResourceShareId\", example.Shares[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceSharesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = ResourcemanagerFunctions.getResourceShares(GetResourceSharesArgs.builder()\n            .resourceShareOwner(\"Self\")\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstResourceManagerResourceShareId\", example.shares()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceShares\n      arguments:\n        resourceShareOwner: Self\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstResourceManagerResourceShareId: ${example.shares[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getResourceShares.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Resource Share IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Resource Share name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceShareName":{"type":"string","description":"The name of resource share.\n"},"resourceShareOwner":{"type":"string","description":"The owner of resource share, Valid values: `Self` and `OtherAccounts`.\n"},"status":{"type":"string","description":"The status of resource share. Valid values: `Active`,`Deleted` and `Deleting`.\n"}},"type":"object","required":["resourceShareOwner"]},"outputs":{"description":"A collection of values returned by getResourceShares.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceShareName":{"type":"string"},"resourceShareOwner":{"type":"string"},"shares":{"items":{"$ref":"#/types/alicloud:resourcemanager/getResourceSharesShare:getResourceSharesShare"},"type":"array"},"status":{"type":"string"}},"required":["ids","names","resourceShareOwner","shares","id"],"type":"object"}},"alicloud:resourcemanager/getRoles:getRoles":{"description":"This data source provides the Resource Manager Roles of the current Alibaba Cloud user.\n\n\u003e **NOTE:**  Available in 1.86.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.resourcemanager.getRoles({\n    nameRegex: \"tftest\",\n});\nexport const firstRoleId = example.then(example =\u003e example.roles?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.resourcemanager.get_roles(name_regex=\"tftest\")\npulumi.export(\"firstRoleId\", example.roles[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.ResourceManager.GetRoles.Invoke(new()\n    {\n        NameRegex = \"tftest\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRoleId\"] = example.Apply(getRolesResult =\u003e getRolesResult.Roles[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := resourcemanager.GetRoles(ctx, \u0026resourcemanager.GetRolesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"tftest\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRoleId\", example.Roles[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetRolesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = ResourcemanagerFunctions.getRoles(GetRolesArgs.builder()\n            .nameRegex(\"tftest\")\n            .build());\n\n        ctx.export(\"firstRoleId\", example.roles()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:resourcemanager:getRoles\n      arguments:\n        nameRegex: tftest\noutputs:\n  firstRoleId: ${example.roles[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRoles.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to true can output more details.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Resource Manager Role IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by role name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRoles.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of role IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of role names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"roles":{"description":"A list of roles. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:resourcemanager/getRolesRole:getRolesRole"},"type":"array"}},"required":["ids","names","roles","id"],"type":"object"}},"alicloud:resourcemanager/getSharedResources:getSharedResources":{"description":"This data source provides the Resource Manager Shared Resources of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.111.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.ids?.[0],\n}));\nconst defaultResourceShare = new alicloud.resourcemanager.ResourceShare(\"default\", {resourceShareName: name});\nconst defaultSharedResource = new alicloud.resourcemanager.SharedResource(\"default\", {\n    resourceShareId: defaultResourceShare.id,\n    resourceId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids?.[0]),\n    resourceType: \"VSwitch\",\n});\nconst ids = std.format({\n    input: \"%s:%s\",\n    args: [\n        defaultSharedResource.resourceId,\n        defaultSharedResource.resourceType,\n    ],\n}).then(invoke =\u003e alicloud.resourcemanager.getSharedResources({\n    ids: [invoke.result],\n}));\nexport const firstResourceManagerSharedResourceId = ids.then(ids =\u003e ids.resources?.[0]?.id);\nconst resourceShareId = alicloud.resourcemanager.getSharedResourcesOutput({\n    resourceShareId: defaultSharedResource.resourceShareId,\n});\nexport const secondResourceManagerSharedResourceId = resourceShareId.apply(resourceShareId =\u003e resourceShareId.resources?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.ids[0])\ndefault_resource_share = alicloud.resourcemanager.ResourceShare(\"default\", resource_share_name=name)\ndefault_shared_resource = alicloud.resourcemanager.SharedResource(\"default\",\n    resource_share_id=default_resource_share.id,\n    resource_id=default_get_switches.ids[0],\n    resource_type=\"VSwitch\")\nids = alicloud.resourcemanager.get_shared_resources(ids=[std.format(input=\"%s:%s\",\n    args=[\n        default_shared_resource.resource_id,\n        default_shared_resource.resource_type,\n    ]).result])\npulumi.export(\"firstResourceManagerSharedResourceId\", ids.resources[0].id)\nresource_share_id = alicloud.resourcemanager.get_shared_resources_output(resource_share_id=default_shared_resource.resource_share_id)\npulumi.export(\"secondResourceManagerSharedResourceId\", resource_share_id.resources[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Ids[0]),\n    });\n\n    var defaultResourceShare = new AliCloud.ResourceManager.ResourceShare(\"default\", new()\n    {\n        ResourceShareName = name,\n    });\n\n    var defaultSharedResource = new AliCloud.ResourceManager.SharedResource(\"default\", new()\n    {\n        ResourceShareId = defaultResourceShare.Id,\n        ResourceId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]),\n        ResourceType = \"VSwitch\",\n    });\n\n    var ids = AliCloud.ResourceManager.GetSharedResources.Invoke(new()\n    {\n        Ids = new[]\n        {\n            Std.Format.Invoke(new()\n            {\n                Input = \"%s:%s\",\n                Args = new[]\n                {\n                    defaultSharedResource.ResourceId,\n                    defaultSharedResource.ResourceType,\n                },\n            }).Result,\n        },\n    });\n\n    var resourceShareId = AliCloud.ResourceManager.GetSharedResources.Invoke(new()\n    {\n        ResourceShareId = defaultSharedResource.ResourceShareId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstResourceManagerSharedResourceId\"] = ids.Apply(getSharedResourcesResult =\u003e getSharedResourcesResult.Resources[0]?.Id),\n        [\"secondResourceManagerSharedResourceId\"] = resourceShareId.Apply(getSharedResourcesResult =\u003e getSharedResourcesResult.Resources[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"tf-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\nNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\nVpcId: pulumi.StringRef(defaultGetNetworks.Ids[0]),\nZoneId: pulumi.StringRef(_default.Ids[0]),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultResourceShare, err := resourcemanager.NewResourceShare(ctx, \"default\", \u0026resourcemanager.ResourceShareArgs{\nResourceShareName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ndefaultSharedResource, err := resourcemanager.NewSharedResource(ctx, \"default\", \u0026resourcemanager.SharedResourceArgs{\nResourceShareId: defaultResourceShare.ID(),\nResourceId: pulumi.String(defaultGetSwitches.Ids[0]),\nResourceType: pulumi.String(\"VSwitch\"),\n})\nif err != nil {\nreturn err\n}\nids, err := resourcemanager.GetSharedResources(ctx, \u0026resourcemanager.GetSharedResourcesArgs{\nIds: interface{}{\nstd.Format(ctx, \u0026std.FormatArgs{\nInput: \"%s:%s\",\nArgs: pulumi.StringArray{\ndefaultSharedResource.ResourceId,\ndefaultSharedResource.ResourceType,\n},\n}, nil).Result,\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"firstResourceManagerSharedResourceId\", ids.Resources[0].Id)\nresourceShareId := resourcemanager.GetSharedResourcesOutput(ctx, resourcemanager.GetSharedResourcesOutputArgs{\nResourceShareId: defaultSharedResource.ResourceShareId,\n}, nil);\nctx.Export(\"secondResourceManagerSharedResourceId\", resourceShareId.ApplyT(func(resourceShareId resourcemanager.GetSharedResourcesResult) (*string, error) {\nreturn \u0026resourceShareId.Resources[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourceShare;\nimport com.pulumi.alicloud.resourcemanager.ResourceShareArgs;\nimport com.pulumi.alicloud.resourcemanager.SharedResource;\nimport com.pulumi.alicloud.resourcemanager.SharedResourceArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.FormatArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetSharedResourcesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.ids()[0])\n            .build());\n\n        var defaultResourceShare = new ResourceShare(\"defaultResourceShare\", ResourceShareArgs.builder()\n            .resourceShareName(name)\n            .build());\n\n        var defaultSharedResource = new SharedResource(\"defaultSharedResource\", SharedResourceArgs.builder()\n            .resourceShareId(defaultResourceShare.id())\n            .resourceId(defaultGetSwitches.ids()[0])\n            .resourceType(\"VSwitch\")\n            .build());\n\n        final var ids = ResourcemanagerFunctions.getSharedResources(GetSharedResourcesArgs.builder()\n            .ids(StdFunctions.format(FormatArgs.builder()\n                .input(\"%s:%s\")\n                .args(                \n                    defaultSharedResource.resourceId(),\n                    defaultSharedResource.resourceType())\n                .build()).result())\n            .build());\n\n        ctx.export(\"firstResourceManagerSharedResourceId\", ids.resources()[0].id());\n        final var resourceShareId = ResourcemanagerFunctions.getSharedResources(GetSharedResourcesArgs.builder()\n            .resourceShareId(defaultSharedResource.resourceShareId())\n            .build());\n\n        ctx.export(\"secondResourceManagerSharedResourceId\", resourceShareId.applyValue(_resourceShareId -\u003e _resourceShareId.resources()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultResourceShare:\n    type: alicloud:resourcemanager:ResourceShare\n    name: default\n    properties:\n      resourceShareName: ${name}\n  defaultSharedResource:\n    type: alicloud:resourcemanager:SharedResource\n    name: default\n    properties:\n      resourceShareId: ${defaultResourceShare.id}\n      resourceId: ${defaultGetSwitches.ids[0]}\n      resourceType: VSwitch\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.ids[0]}\n  ids:\n    fn::invoke:\n      function: alicloud:resourcemanager:getSharedResources\n      arguments:\n        ids:\n          - fn::invoke:\n              function: std:format\n              arguments:\n                input: '%s:%s'\n                args:\n                  - ${defaultSharedResource.resourceId}\n                  - ${defaultSharedResource.resourceType}\n              return: result\n  resourceShareId:\n    fn::invoke:\n      function: alicloud:resourcemanager:getSharedResources\n      arguments:\n        resourceShareId: ${defaultSharedResource.resourceShareId}\noutputs:\n  firstResourceManagerSharedResourceId: ${ids.resources[0].id}\n  secondResourceManagerSharedResourceId: ${resourceShareId.resources[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSharedResources.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of shared resource IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceShareId":{"type":"string","description":"The resource share ID of resource manager.\n"},"status":{"type":"string","description":"The status of share resource. Valid values: `Associated`, `Associating`, `Disassociated`, `Disassociating` and `Failed`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSharedResources.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceShareId":{"description":"The resource share ID of resource manager.\n","type":"string"},"resources":{"description":"A list of Resource Manager Shared Resources. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:resourcemanager/getSharedResourcesResource:getSharedResourcesResource"},"type":"array"},"status":{"description":"The status of shared resource.\n","type":"string"}},"required":["ids","resources","id"],"type":"object"}},"alicloud:resourcemanager/getSharedTargets:getSharedTargets":{"description":"This data source provides the Resource Manager Shared Targets of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.111.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-example\";\nconst _default = alicloud.resourcemanager.getAccounts({});\nconst defaultResourceShare = new alicloud.resourcemanager.ResourceShare(\"default\", {resourceShareName: name});\nconst defaultSharedTarget = new alicloud.resourcemanager.SharedTarget(\"default\", {\n    resourceShareId: defaultResourceShare.id,\n    targetId: _default.then(_default =\u003e _default.ids?.[0]),\n});\nconst ids = alicloud.resourcemanager.getSharedTargetsOutput({\n    ids: [defaultSharedTarget.targetId],\n});\nexport const firstResourceManagerSharedTargetId = ids.apply(ids =\u003e ids.targets?.[0]?.id);\nconst resourceShareId = alicloud.resourcemanager.getSharedTargetsOutput({\n    resourceShareId: defaultSharedTarget.resourceShareId,\n});\nexport const secondResourceManagerSharedTargetId = resourceShareId.apply(resourceShareId =\u003e resourceShareId.targets?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-example\"\ndefault = alicloud.resourcemanager.get_accounts()\ndefault_resource_share = alicloud.resourcemanager.ResourceShare(\"default\", resource_share_name=name)\ndefault_shared_target = alicloud.resourcemanager.SharedTarget(\"default\",\n    resource_share_id=default_resource_share.id,\n    target_id=default.ids[0])\nids = alicloud.resourcemanager.get_shared_targets_output(ids=[default_shared_target.target_id])\npulumi.export(\"firstResourceManagerSharedTargetId\", ids.targets[0].id)\nresource_share_id = alicloud.resourcemanager.get_shared_targets_output(resource_share_id=default_shared_target.resource_share_id)\npulumi.export(\"secondResourceManagerSharedTargetId\", resource_share_id.targets[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-example\";\n    var @default = AliCloud.ResourceManager.GetAccounts.Invoke();\n\n    var defaultResourceShare = new AliCloud.ResourceManager.ResourceShare(\"default\", new()\n    {\n        ResourceShareName = name,\n    });\n\n    var defaultSharedTarget = new AliCloud.ResourceManager.SharedTarget(\"default\", new()\n    {\n        ResourceShareId = defaultResourceShare.Id,\n        TargetId = @default.Apply(@default =\u003e @default.Apply(getAccountsResult =\u003e getAccountsResult.Ids[0])),\n    });\n\n    var ids = AliCloud.ResourceManager.GetSharedTargets.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultSharedTarget.TargetId,\n        },\n    });\n\n    var resourceShareId = AliCloud.ResourceManager.GetSharedTargets.Invoke(new()\n    {\n        ResourceShareId = defaultSharedTarget.ResourceShareId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstResourceManagerSharedTargetId\"] = ids.Apply(getSharedTargetsResult =\u003e getSharedTargetsResult.Targets[0]?.Id),\n        [\"secondResourceManagerSharedTargetId\"] = resourceShareId.Apply(getSharedTargetsResult =\u003e getSharedTargetsResult.Targets[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := resourcemanager.GetAccounts(ctx, \u0026resourcemanager.GetAccountsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultResourceShare, err := resourcemanager.NewResourceShare(ctx, \"default\", \u0026resourcemanager.ResourceShareArgs{\n\t\t\tResourceShareName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSharedTarget, err := resourcemanager.NewSharedTarget(ctx, \"default\", \u0026resourcemanager.SharedTargetArgs{\n\t\t\tResourceShareId: defaultResourceShare.ID(),\n\t\t\tTargetId:        pulumi.String(_default.Ids[0]),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids := resourcemanager.GetSharedTargetsOutput(ctx, resourcemanager.GetSharedTargetsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultSharedTarget.TargetId,\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"firstResourceManagerSharedTargetId\", ids.ApplyT(func(ids resourcemanager.GetSharedTargetsResult) (*string, error) {\n\t\t\treturn \u0026ids.Targets[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tresourceShareId := resourcemanager.GetSharedTargetsOutput(ctx, resourcemanager.GetSharedTargetsOutputArgs{\n\t\t\tResourceShareId: defaultSharedTarget.ResourceShareId,\n\t\t}, nil)\n\t\tctx.Export(\"secondResourceManagerSharedTargetId\", resourceShareId.ApplyT(func(resourceShareId resourcemanager.GetSharedTargetsResult) (*string, error) {\n\t\t\treturn \u0026resourceShareId.Targets[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetAccountsArgs;\nimport com.pulumi.alicloud.resourcemanager.ResourceShare;\nimport com.pulumi.alicloud.resourcemanager.ResourceShareArgs;\nimport com.pulumi.alicloud.resourcemanager.SharedTarget;\nimport com.pulumi.alicloud.resourcemanager.SharedTargetArgs;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetSharedTargetsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-example\");\n        final var default = ResourcemanagerFunctions.getAccounts(GetAccountsArgs.builder()\n            .build());\n\n        var defaultResourceShare = new ResourceShare(\"defaultResourceShare\", ResourceShareArgs.builder()\n            .resourceShareName(name)\n            .build());\n\n        var defaultSharedTarget = new SharedTarget(\"defaultSharedTarget\", SharedTargetArgs.builder()\n            .resourceShareId(defaultResourceShare.id())\n            .targetId(default_.ids()[0])\n            .build());\n\n        final var ids = ResourcemanagerFunctions.getSharedTargets(GetSharedTargetsArgs.builder()\n            .ids(defaultSharedTarget.targetId())\n            .build());\n\n        ctx.export(\"firstResourceManagerSharedTargetId\", ids.applyValue(_ids -\u003e _ids.targets()[0].id()));\n        final var resourceShareId = ResourcemanagerFunctions.getSharedTargets(GetSharedTargetsArgs.builder()\n            .resourceShareId(defaultSharedTarget.resourceShareId())\n            .build());\n\n        ctx.export(\"secondResourceManagerSharedTargetId\", resourceShareId.applyValue(_resourceShareId -\u003e _resourceShareId.targets()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-example\nresources:\n  defaultResourceShare:\n    type: alicloud:resourcemanager:ResourceShare\n    name: default\n    properties:\n      resourceShareName: ${name}\n  defaultSharedTarget:\n    type: alicloud:resourcemanager:SharedTarget\n    name: default\n    properties:\n      resourceShareId: ${defaultResourceShare.id}\n      targetId: ${default.ids[0]}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getAccounts\n      arguments: {}\n  ids:\n    fn::invoke:\n      function: alicloud:resourcemanager:getSharedTargets\n      arguments:\n        ids:\n          - ${defaultSharedTarget.targetId}\n  resourceShareId:\n    fn::invoke:\n      function: alicloud:resourcemanager:getSharedTargets\n      arguments:\n        resourceShareId: ${defaultSharedTarget.resourceShareId}\noutputs:\n  firstResourceManagerSharedTargetId: ${ids.targets[0].id}\n  secondResourceManagerSharedTargetId: ${resourceShareId.targets[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSharedTargets.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Shared Target IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceShareId":{"type":"string","description":"The resource share ID of resource manager.\n"},"status":{"type":"string","description":"The status of share resource. Valid values: `Associated`, `Associating`, `Disassociated`, `Disassociating` and `Failed`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSharedTargets.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceShareId":{"description":"The resource shared ID of resource manager.\n","type":"string"},"status":{"description":"The status of shared target.\n","type":"string"},"targets":{"description":"A list of Resource Manager Shared Targets. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:resourcemanager/getSharedTargetsTarget:getSharedTargetsTarget"},"type":"array"}},"required":["ids","targets","id"],"type":"object"}},"alicloud:rocketmq/getGroups:getGroups":{"description":"This data source provides a list of ONS Groups in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available in 1.53.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"onsInstanceName\";\nconst groupName = config.get(\"groupName\") || \"GID-onsGroupDatasourceName\";\nconst _default = new alicloud.rocketmq.Instance(\"default\", {\n    instanceName: name,\n    remark: \"default_ons_instance_remark\",\n});\nconst defaultGroup = new alicloud.rocketmq.Group(\"default\", {\n    groupName: groupName,\n    instanceId: _default.id,\n    remark: \"dafault_ons_group_remark\",\n});\nconst groupsDs = defaultGroup.instanceId.apply(instanceId =\u003e alicloud.rocketmq.getGroupsOutput({\n    instanceId: instanceId,\n    nameRegex: groupId,\n    outputFile: \"groups.txt\",\n}));\nexport const firstGroupName = groupsDs.apply(groupsDs =\u003e groupsDs.groups?.[0]?.groupName);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"onsInstanceName\"\ngroup_name = config.get(\"groupName\")\nif group_name is None:\n    group_name = \"GID-onsGroupDatasourceName\"\ndefault = alicloud.rocketmq.Instance(\"default\",\n    instance_name=name,\n    remark=\"default_ons_instance_remark\")\ndefault_group = alicloud.rocketmq.Group(\"default\",\n    group_name=group_name,\n    instance_id=default.id,\n    remark=\"dafault_ons_group_remark\")\ngroups_ds = default_group.instance_id.apply(lambda instance_id: alicloud.rocketmq.get_groups_output(instance_id=instance_id,\n    name_regex=group_id,\n    output_file=\"groups.txt\"))\npulumi.export(\"firstGroupName\", groups_ds.groups[0].group_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"onsInstanceName\";\n    var groupName = config.Get(\"groupName\") ?? \"GID-onsGroupDatasourceName\";\n    var @default = new AliCloud.RocketMQ.Instance(\"default\", new()\n    {\n        InstanceName = name,\n        Remark = \"default_ons_instance_remark\",\n    });\n\n    var defaultGroup = new AliCloud.RocketMQ.Group(\"default\", new()\n    {\n        GroupName = groupName,\n        InstanceId = @default.Id,\n        Remark = \"dafault_ons_group_remark\",\n    });\n\n    var groupsDs = AliCloud.RocketMQ.GetGroups.Invoke(new()\n    {\n        InstanceId = defaultGroup.InstanceId,\n        NameRegex = groupId,\n        OutputFile = \"groups.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstGroupName\"] = groupsDs.Apply(getGroupsResult =\u003e getGroupsResult.Groups[0]?.GroupName),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rocketmq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"onsInstanceName\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tgroupName := \"GID-onsGroupDatasourceName\"\n\t\tif param := cfg.Get(\"groupName\"); param != \"\" {\n\t\t\tgroupName = param\n\t\t}\n\t\t_default, err := rocketmq.NewInstance(ctx, \"default\", \u0026rocketmq.InstanceArgs{\n\t\t\tInstanceName: pulumi.String(name),\n\t\t\tRemark:       pulumi.String(\"default_ons_instance_remark\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGroup, err := rocketmq.NewGroup(ctx, \"default\", \u0026rocketmq.GroupArgs{\n\t\t\tGroupName:  pulumi.String(groupName),\n\t\t\tInstanceId: _default.ID(),\n\t\t\tRemark:     pulumi.String(\"dafault_ons_group_remark\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroupsDs := defaultGroup.InstanceId.ApplyT(func(instanceId string) (rocketmq.GetGroupsResult, error) {\n\t\t\treturn rocketmq.GetGroupsResult(interface{}(rocketmq.GetGroups(ctx, \u0026rocketmq.GetGroupsArgs{\n\t\t\t\tInstanceId: instanceId,\n\t\t\t\tNameRegex:  pulumi.StringRef(pulumi.StringRef(pulumi.String(groupId))),\n\t\t\t\tOutputFile: pulumi.StringRef(pulumi.StringRef(\"groups.txt\")),\n\t\t\t}, nil))), nil\n\t\t}).(rocketmq.GetGroupsResultOutput)\n\t\tctx.Export(\"firstGroupName\", groupsDs.ApplyT(func(groupsDs rocketmq.GetGroupsResult) (*string, error) {\n\t\t\treturn \u0026groupsDs.Groups[0].GroupName, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rocketmq.Instance;\nimport com.pulumi.alicloud.rocketmq.InstanceArgs;\nimport com.pulumi.alicloud.rocketmq.Group;\nimport com.pulumi.alicloud.rocketmq.GroupArgs;\nimport com.pulumi.alicloud.rocketmq.RocketmqFunctions;\nimport com.pulumi.alicloud.rocketmq.inputs.GetGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"onsInstanceName\");\n        final var groupName = config.get(\"groupName\").orElse(\"GID-onsGroupDatasourceName\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .instanceName(name)\n            .remark(\"default_ons_instance_remark\")\n            .build());\n\n        var defaultGroup = new Group(\"defaultGroup\", GroupArgs.builder()\n            .groupName(groupName)\n            .instanceId(default_.id())\n            .remark(\"dafault_ons_group_remark\")\n            .build());\n\n        final var groupsDs = defaultGroup.instanceId().applyValue(_instanceId -\u003e RocketmqFunctions.getGroups(GetGroupsArgs.builder()\n            .instanceId(_instanceId)\n            .nameRegex(groupId)\n            .outputFile(\"groups.txt\")\n            .build()));\n\n        ctx.export(\"firstGroupName\", groupsDs.applyValue(_groupsDs -\u003e _groupsDs.groups()[0].groupName()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: onsInstanceName\n  groupName:\n    type: string\n    default: GID-onsGroupDatasourceName\nresources:\n  default:\n    type: alicloud:rocketmq:Instance\n    properties:\n      instanceName: ${name}\n      remark: default_ons_instance_remark\n  defaultGroup:\n    type: alicloud:rocketmq:Group\n    name: default\n    properties:\n      groupName: ${groupName}\n      instanceId: ${default.id}\n      remark: dafault_ons_group_remark\nvariables:\n  groupsDs:\n    fn::invoke:\n      function: alicloud:rocketmq:getGroups\n      arguments:\n        instanceId: ${defaultGroup.instanceId}\n        nameRegex: ${groupId}\n        outputFile: groups.txt\noutputs:\n  firstGroupName: ${groupsDs.groups[0].groupName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGroups.\n","properties":{"groupIdRegex":{"type":"string","description":"A regex string to filter results by the group name.\n"},"groupType":{"type":"string","description":"Specify the protocol applicable to the created Group ID. Valid values: \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e. Default to \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of group names.\n"},"instanceId":{"type":"string","description":"ID of the ONS Instance that owns the groups.\n"},"nameRegex":{"type":"string"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the Ons instance.\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getGroups.\n","properties":{"groupIdRegex":{"type":"string"},"groupType":{"description":"Specify the protocol applicable to the created Group ID.\n","type":"string"},"groups":{"description":"A list of groups. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:rocketmq/getGroupsGroup:getGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of group names.\n","items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A map of tags assigned to the Ons group.\n","type":"object"}},"required":["groups","ids","instanceId","names","id"],"type":"object"}},"alicloud:rocketmq/getInstances:getInstances":{"description":"This data source provides a list of ONS Instances in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available in 1.52.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"onsInstanceDatasourceName\";\nconst _default = new alicloud.rocketmq.Instance(\"default\", {\n    name: name,\n    remark: \"default_ons_instance_remark\",\n});\nconst instancesDs = alicloud.rocketmq.getInstancesOutput({\n    ids: [_default.id],\n    nameRegex: _default.name,\n    outputFile: \"instances.txt\",\n});\nexport const firstInstanceId = instancesDs.apply(instancesDs =\u003e instancesDs.instances?.[0]?.instanceId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"onsInstanceDatasourceName\"\ndefault = alicloud.rocketmq.Instance(\"default\",\n    name=name,\n    remark=\"default_ons_instance_remark\")\ninstances_ds = alicloud.rocketmq.get_instances_output(ids=[default.id],\n    name_regex=default.name,\n    output_file=\"instances.txt\")\npulumi.export(\"firstInstanceId\", instances_ds.instances[0].instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"onsInstanceDatasourceName\";\n    var @default = new AliCloud.RocketMQ.Instance(\"default\", new()\n    {\n        Name = name,\n        Remark = \"default_ons_instance_remark\",\n    });\n\n    var instancesDs = AliCloud.RocketMQ.GetInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            @default.Id,\n        },\n        NameRegex = @default.Name,\n        OutputFile = \"instances.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstInstanceId\"] = instancesDs.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.InstanceId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rocketmq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"onsInstanceDatasourceName\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := rocketmq.NewInstance(ctx, \"default\", \u0026rocketmq.InstanceArgs{\n\t\t\tName:   pulumi.String(name),\n\t\t\tRemark: pulumi.String(\"default_ons_instance_remark\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstancesDs := rocketmq.GetInstancesOutput(ctx, rocketmq.GetInstancesOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\t_default.ID(),\n\t\t\t},\n\t\t\tNameRegex:  _default.Name,\n\t\t\tOutputFile: pulumi.String(\"instances.txt\"),\n\t\t}, nil)\n\t\tctx.Export(\"firstInstanceId\", instancesDs.ApplyT(func(instancesDs rocketmq.GetInstancesResult) (*string, error) {\n\t\t\treturn \u0026instancesDs.Instances[0].InstanceId, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rocketmq.Instance;\nimport com.pulumi.alicloud.rocketmq.InstanceArgs;\nimport com.pulumi.alicloud.rocketmq.RocketmqFunctions;\nimport com.pulumi.alicloud.rocketmq.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"onsInstanceDatasourceName\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .name(name)\n            .remark(\"default_ons_instance_remark\")\n            .build());\n\n        final var instancesDs = RocketmqFunctions.getInstances(GetInstancesArgs.builder()\n            .ids(default_.id())\n            .nameRegex(default_.name())\n            .outputFile(\"instances.txt\")\n            .build());\n\n        ctx.export(\"firstInstanceId\", instancesDs.applyValue(_instancesDs -\u003e _instancesDs.instances()[0].instanceId()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: onsInstanceDatasourceName\nresources:\n  default:\n    type: alicloud:rocketmq:Instance\n    properties:\n      name: ${name}\n      remark: default_ons_instance_remark\nvariables:\n  instancesDs:\n    fn::invoke:\n      function: alicloud:rocketmq:getInstances\n      arguments:\n        ids:\n          - ${default.id}\n        nameRegex: ${default.name}\n        outputFile: instances.txt\noutputs:\n  firstInstanceId: ${instancesDs.instances[0].instanceId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to true can output more details.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of instance IDs to filter results.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by the instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"integer","description":"The status of Ons instance. Valid values: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e deploying, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e arrears, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e running, \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e upgrading.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the Ons instance.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of instance IDs.\n","items":{"type":"string"},"type":"array"},"instances":{"description":"A list of instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:rocketmq/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of instance names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the instance. Read [Fields in InstanceVO](https://www.alibabacloud.com/help/doc-detail/106351.html) for further details.\n","type":"integer"},"tags":{"additionalProperties":{"type":"string"},"description":"A map of tags assigned to the Ons instance.\n","type":"object"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:rocketmq/getService:getService":{"description":"Using this data source can open ONS service automatically. If the service has been opened, it will return opened.\n\nFor information about ONS and how to use it, see [What is ONS](https://help.aliyun.com/product/29530.html).\n\n\u003e **NOTE:** Available in v1.111.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.rocketmq.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.rocketmq.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.RocketMQ.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rocketmq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rocketmq.GetService(ctx, \u0026rocketmq.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rocketmq.RocketmqFunctions;\nimport com.pulumi.alicloud.rocketmq.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = RocketmqFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:rocketmq:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the ONS service that means you have read and agreed the [ONS Terms of Service](https://help.aliyun.com/document_detail/39113.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:rocketmq/getTopics:getTopics":{"description":"This data source provides a list of ONS Topics in an Alibaba Cloud account according to the specified filters.\n\n\u003e **NOTE:** Available in 1.53.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"onsInstanceName\";\nconst topic = config.get(\"topic\") || \"onsTopicDatasourceName\";\nconst _default = new alicloud.rocketmq.Instance(\"default\", {\n    instanceName: name,\n    remark: \"default_ons_instance_remark\",\n});\nconst defaultTopic = new alicloud.rocketmq.Topic(\"default\", {\n    topicName: topic,\n    instanceId: _default.id,\n    messageType: 0,\n    remark: \"dafault_ons_topic_remark\",\n});\nconst topicsDs = alicloud.rocketmq.getTopicsOutput({\n    instanceId: defaultTopic.instanceId,\n    nameRegex: topic,\n    outputFile: \"topics.txt\",\n});\nexport const firstTopicName = topicsDs.apply(topicsDs =\u003e topicsDs.topics?.[0]?.topicName);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"onsInstanceName\"\ntopic = config.get(\"topic\")\nif topic is None:\n    topic = \"onsTopicDatasourceName\"\ndefault = alicloud.rocketmq.Instance(\"default\",\n    instance_name=name,\n    remark=\"default_ons_instance_remark\")\ndefault_topic = alicloud.rocketmq.Topic(\"default\",\n    topic_name=topic,\n    instance_id=default.id,\n    message_type=0,\n    remark=\"dafault_ons_topic_remark\")\ntopics_ds = alicloud.rocketmq.get_topics_output(instance_id=default_topic.instance_id,\n    name_regex=topic,\n    output_file=\"topics.txt\")\npulumi.export(\"firstTopicName\", topics_ds.topics[0].topic_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"onsInstanceName\";\n    var topic = config.Get(\"topic\") ?? \"onsTopicDatasourceName\";\n    var @default = new AliCloud.RocketMQ.Instance(\"default\", new()\n    {\n        InstanceName = name,\n        Remark = \"default_ons_instance_remark\",\n    });\n\n    var defaultTopic = new AliCloud.RocketMQ.Topic(\"default\", new()\n    {\n        TopicName = topic,\n        InstanceId = @default.Id,\n        MessageType = 0,\n        Remark = \"dafault_ons_topic_remark\",\n    });\n\n    var topicsDs = AliCloud.RocketMQ.GetTopics.Invoke(new()\n    {\n        InstanceId = defaultTopic.InstanceId,\n        NameRegex = topic,\n        OutputFile = \"topics.txt\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstTopicName\"] = topicsDs.Apply(getTopicsResult =\u003e getTopicsResult.Topics[0]?.TopicName),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rocketmq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"onsInstanceName\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\ttopic := \"onsTopicDatasourceName\"\n\t\tif param := cfg.Get(\"topic\"); param != \"\" {\n\t\t\ttopic = param\n\t\t}\n\t\t_default, err := rocketmq.NewInstance(ctx, \"default\", \u0026rocketmq.InstanceArgs{\n\t\t\tInstanceName: pulumi.String(name),\n\t\t\tRemark:       pulumi.String(\"default_ons_instance_remark\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTopic, err := rocketmq.NewTopic(ctx, \"default\", \u0026rocketmq.TopicArgs{\n\t\t\tTopicName:   pulumi.String(topic),\n\t\t\tInstanceId:  _default.ID(),\n\t\t\tMessageType: pulumi.Int(0),\n\t\t\tRemark:      pulumi.String(\"dafault_ons_topic_remark\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttopicsDs := rocketmq.GetTopicsOutput(ctx, rocketmq.GetTopicsOutputArgs{\n\t\t\tInstanceId: defaultTopic.InstanceId,\n\t\t\tNameRegex:  pulumi.String(topic),\n\t\t\tOutputFile: pulumi.String(\"topics.txt\"),\n\t\t}, nil)\n\t\tctx.Export(\"firstTopicName\", topicsDs.ApplyT(func(topicsDs rocketmq.GetTopicsResult) (*string, error) {\n\t\t\treturn \u0026topicsDs.Topics[0].TopicName, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.rocketmq.Instance;\nimport com.pulumi.alicloud.rocketmq.InstanceArgs;\nimport com.pulumi.alicloud.rocketmq.Topic;\nimport com.pulumi.alicloud.rocketmq.TopicArgs;\nimport com.pulumi.alicloud.rocketmq.RocketmqFunctions;\nimport com.pulumi.alicloud.rocketmq.inputs.GetTopicsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"onsInstanceName\");\n        final var topic = config.get(\"topic\").orElse(\"onsTopicDatasourceName\");\n        var default_ = new Instance(\"default\", InstanceArgs.builder()\n            .instanceName(name)\n            .remark(\"default_ons_instance_remark\")\n            .build());\n\n        var defaultTopic = new Topic(\"defaultTopic\", TopicArgs.builder()\n            .topicName(topic)\n            .instanceId(default_.id())\n            .messageType(0)\n            .remark(\"dafault_ons_topic_remark\")\n            .build());\n\n        final var topicsDs = RocketmqFunctions.getTopics(GetTopicsArgs.builder()\n            .instanceId(defaultTopic.instanceId())\n            .nameRegex(topic)\n            .outputFile(\"topics.txt\")\n            .build());\n\n        ctx.export(\"firstTopicName\", topicsDs.applyValue(_topicsDs -\u003e _topicsDs.topics()[0].topicName()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: onsInstanceName\n  topic:\n    type: string\n    default: onsTopicDatasourceName\nresources:\n  default:\n    type: alicloud:rocketmq:Instance\n    properties:\n      instanceName: ${name}\n      remark: default_ons_instance_remark\n  defaultTopic:\n    type: alicloud:rocketmq:Topic\n    name: default\n    properties:\n      topicName: ${topic}\n      instanceId: ${default.id}\n      messageType: 0\n      remark: dafault_ons_topic_remark\nvariables:\n  topicsDs:\n    fn::invoke:\n      function: alicloud:rocketmq:getTopics\n      arguments:\n        instanceId: ${defaultTopic.instanceId}\n        nameRegex: ${topic}\n        outputFile: topics.txt\noutputs:\n  firstTopicName: ${topicsDs.topics[0].topicName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTopics.\n","properties":{"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of topic IDs to filter results.\n"},"instanceId":{"type":"string","description":"ID of the ONS Instance that owns the topics.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by the topic name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the Ons instance.\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getTopics.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of topic names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A map of tags assigned to the Ons instance.\n","type":"object"},"topics":{"description":"A list of topics. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:rocketmq/getTopicsTopic:getTopicsTopic"},"type":"array"}},"required":["ids","instanceId","names","topics","id"],"type":"object"}},"alicloud:ros/getChangeSets:getChangeSets":{"description":"This data source provides the Ros Change Sets of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.105.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ros.getChangeSets({\n    stackId: \"example_value\",\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstRosChangeSetId = example.then(example =\u003e example.sets?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ros.get_change_sets(stack_id=\"example_value\",\n    ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstRosChangeSetId\", example.sets[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ros.GetChangeSets.Invoke(new()\n    {\n        StackId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRosChangeSetId\"] = example.Apply(getChangeSetsResult =\u003e getChangeSetsResult.Sets[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ros.GetChangeSets(ctx, \u0026ros.GetChangeSetsArgs{\n\t\t\tStackId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRosChangeSetId\", example.Sets[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ros.RosFunctions;\nimport com.pulumi.alicloud.ros.inputs.GetChangeSetsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RosFunctions.getChangeSets(GetChangeSetsArgs.builder()\n            .stackId(\"example_value\")\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstRosChangeSetId\", example.sets()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ros:getChangeSets\n      arguments:\n        stackId: example_value\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstRosChangeSetId: ${example.sets[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getChangeSets.\n","properties":{"changeSetName":{"type":"string","description":"The name of the change set.  The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Change Set IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Change Set name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"stackId":{"type":"string","description":"The ID of the stack for which you want to create the change set. ROS generates the change set by comparing the stack information with the information that you submit, such as a modified template or different inputs.\n"},"status":{"type":"string","description":"The status of the change set. Valid Value: `CREATE_COMPLETE`, `CREATE_FAILED`, `CREATE_IN_PROGRESS`, `CREATE_PENDING`, `DELETE_COMPLETE` and `DELETE_FAILED`.\n"}},"type":"object","required":["stackId"]},"outputs":{"description":"A collection of values returned by getChangeSets.\n","properties":{"changeSetName":{"type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"sets":{"items":{"$ref":"#/types/alicloud:ros/getChangeSetsSet:getChangeSetsSet"},"type":"array"},"stackId":{"type":"string"},"status":{"type":"string"}},"required":["ids","names","sets","stackId","id"],"type":"object"}},"alicloud:ros/getRegions:getRegions":{"description":"This data source provides the Ros Regions of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.145.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst all = alicloud.ros.getRegions({});\nexport const rosRegionRegionId1 = all.then(all =\u003e all.regions?.[0]?.regionId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nall = alicloud.ros.get_regions()\npulumi.export(\"rosRegionRegionId1\", all.regions[0].region_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var all = AliCloud.Ros.GetRegions.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"rosRegionRegionId1\"] = all.Apply(getRegionsResult =\u003e getRegionsResult.Regions[0]?.RegionId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := ros.GetRegions(ctx, \u0026ros.GetRegionsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rosRegionRegionId1\", all.Regions[0].RegionId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ros.RosFunctions;\nimport com.pulumi.alicloud.ros.inputs.GetRegionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var all = RosFunctions.getRegions(GetRegionsArgs.builder()\n            .build());\n\n        ctx.export(\"rosRegionRegionId1\", all.regions()[0].regionId());\n    }\n}\n```\n```yaml\nvariables:\n  all:\n    fn::invoke:\n      function: alicloud:ros:getRegions\n      arguments: {}\noutputs:\n  rosRegionRegionId1: ${all.regions[0].regionId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRegions.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRegions.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outputFile":{"type":"string"},"regions":{"items":{"$ref":"#/types/alicloud:ros/getRegionsRegion:getRegionsRegion"},"type":"array"}},"required":["regions","id"],"type":"object"}},"alicloud:ros/getStackGroups:getStackGroups":{"description":"This data source provides the Ros Stack Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.107.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ros.getStackGroups({\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstRosStackGroupId = example.then(example =\u003e example.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ros.get_stack_groups(ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstRosStackGroupId\", example.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ros.GetStackGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRosStackGroupId\"] = example.Apply(getStackGroupsResult =\u003e getStackGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ros.GetStackGroups(ctx, \u0026ros.GetStackGroupsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRosStackGroupId\", example.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ros.RosFunctions;\nimport com.pulumi.alicloud.ros.inputs.GetStackGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RosFunctions.getStackGroups(GetStackGroupsArgs.builder()\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstRosStackGroupId\", example.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ros:getStackGroups\n      arguments:\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstRosStackGroupId: ${example.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStackGroups.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Stack Group IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Stack Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of Stack Group. Valid Values: `ACTIVE`, `DELETED`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getStackGroups.\n","properties":{"enableDetails":{"type":"boolean"},"groups":{"items":{"$ref":"#/types/alicloud:ros/getStackGroupsGroup:getStackGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:ros/getStackInstances:getStackInstances":{"description":"This data source provides the Ros Stack Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.145.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ros.getStackInstances({\n    stackGroupName: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n    enableDetails: true,\n});\nexport const rosStackInstanceId1 = ids.then(ids =\u003e ids.instances?.[0]?.id);\nconst status = alicloud.ros.getStackInstances({\n    stackGroupName: \"example_value\",\n    status: \"CURRENT\",\n    enableDetails: true,\n});\nexport const rosStackInstanceId2 = status.then(status =\u003e status.instances?.[0]?.id);\nconst regionId = alicloud.ros.getStackInstances({\n    stackGroupName: \"example_value\",\n    stackInstanceRegionId: \"example_value\",\n    enableDetails: true,\n});\nexport const rosStackInstanceId3 = regionId.then(regionId =\u003e regionId.instances?.[0]?.id);\nconst accountId = alicloud.ros.getStackInstances({\n    stackGroupName: \"example_value\",\n    stackInstanceAccountId: \"example_value\",\n    enableDetails: true,\n});\nexport const rosStackInstanceId4 = accountId.then(accountId =\u003e accountId.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ros.get_stack_instances(stack_group_name=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n    enable_details=True)\npulumi.export(\"rosStackInstanceId1\", ids.instances[0].id)\nstatus = alicloud.ros.get_stack_instances(stack_group_name=\"example_value\",\n    status=\"CURRENT\",\n    enable_details=True)\npulumi.export(\"rosStackInstanceId2\", status.instances[0].id)\nregion_id = alicloud.ros.get_stack_instances(stack_group_name=\"example_value\",\n    stack_instance_region_id=\"example_value\",\n    enable_details=True)\npulumi.export(\"rosStackInstanceId3\", region_id.instances[0].id)\naccount_id = alicloud.ros.get_stack_instances(stack_group_name=\"example_value\",\n    stack_instance_account_id=\"example_value\",\n    enable_details=True)\npulumi.export(\"rosStackInstanceId4\", account_id.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ros.GetStackInstances.Invoke(new()\n    {\n        StackGroupName = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n        EnableDetails = true,\n    });\n\n    var status = AliCloud.Ros.GetStackInstances.Invoke(new()\n    {\n        StackGroupName = \"example_value\",\n        Status = \"CURRENT\",\n        EnableDetails = true,\n    });\n\n    var regionId = AliCloud.Ros.GetStackInstances.Invoke(new()\n    {\n        StackGroupName = \"example_value\",\n        StackInstanceRegionId = \"example_value\",\n        EnableDetails = true,\n    });\n\n    var accountId = AliCloud.Ros.GetStackInstances.Invoke(new()\n    {\n        StackGroupName = \"example_value\",\n        StackInstanceAccountId = \"example_value\",\n        EnableDetails = true,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"rosStackInstanceId1\"] = ids.Apply(getStackInstancesResult =\u003e getStackInstancesResult.Instances[0]?.Id),\n        [\"rosStackInstanceId2\"] = status.Apply(getStackInstancesResult =\u003e getStackInstancesResult.Instances[0]?.Id),\n        [\"rosStackInstanceId3\"] = regionId.Apply(getStackInstancesResult =\u003e getStackInstancesResult.Instances[0]?.Id),\n        [\"rosStackInstanceId4\"] = accountId.Apply(getStackInstancesResult =\u003e getStackInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ros.GetStackInstances(ctx, \u0026ros.GetStackInstancesArgs{\n\t\t\tStackGroupName: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t\tEnableDetails: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rosStackInstanceId1\", ids.Instances[0].Id)\n\t\tstatus, err := ros.GetStackInstances(ctx, \u0026ros.GetStackInstancesArgs{\n\t\t\tStackGroupName: \"example_value\",\n\t\t\tStatus:         pulumi.StringRef(\"CURRENT\"),\n\t\t\tEnableDetails:  pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rosStackInstanceId2\", status.Instances[0].Id)\n\t\tregionId, err := ros.GetStackInstances(ctx, \u0026ros.GetStackInstancesArgs{\n\t\t\tStackGroupName:        \"example_value\",\n\t\t\tStackInstanceRegionId: pulumi.StringRef(\"example_value\"),\n\t\t\tEnableDetails:         pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rosStackInstanceId3\", regionId.Instances[0].Id)\n\t\taccountId, err := ros.GetStackInstances(ctx, \u0026ros.GetStackInstancesArgs{\n\t\t\tStackGroupName:         \"example_value\",\n\t\t\tStackInstanceAccountId: pulumi.StringRef(\"example_value\"),\n\t\t\tEnableDetails:          pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rosStackInstanceId4\", accountId.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ros.RosFunctions;\nimport com.pulumi.alicloud.ros.inputs.GetStackInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = RosFunctions.getStackInstances(GetStackInstancesArgs.builder()\n            .stackGroupName(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .enableDetails(true)\n            .build());\n\n        ctx.export(\"rosStackInstanceId1\", ids.instances()[0].id());\n        final var status = RosFunctions.getStackInstances(GetStackInstancesArgs.builder()\n            .stackGroupName(\"example_value\")\n            .status(\"CURRENT\")\n            .enableDetails(true)\n            .build());\n\n        ctx.export(\"rosStackInstanceId2\", status.instances()[0].id());\n        final var regionId = RosFunctions.getStackInstances(GetStackInstancesArgs.builder()\n            .stackGroupName(\"example_value\")\n            .stackInstanceRegionId(\"example_value\")\n            .enableDetails(true)\n            .build());\n\n        ctx.export(\"rosStackInstanceId3\", regionId.instances()[0].id());\n        final var accountId = RosFunctions.getStackInstances(GetStackInstancesArgs.builder()\n            .stackGroupName(\"example_value\")\n            .stackInstanceAccountId(\"example_value\")\n            .enableDetails(true)\n            .build());\n\n        ctx.export(\"rosStackInstanceId4\", accountId.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ros:getStackInstances\n      arguments:\n        stackGroupName: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n        enableDetails: true\n  status:\n    fn::invoke:\n      function: alicloud:ros:getStackInstances\n      arguments:\n        stackGroupName: example_value\n        status: CURRENT\n        enableDetails: true\n  regionId:\n    fn::invoke:\n      function: alicloud:ros:getStackInstances\n      arguments:\n        stackGroupName: example_value\n        stackInstanceRegionId: example_value\n        enableDetails: true\n  accountId:\n    fn::invoke:\n      function: alicloud:ros:getStackInstances\n      arguments:\n        stackGroupName: example_value\n        stackInstanceAccountId: example_value\n        enableDetails: true\noutputs:\n  rosStackInstanceId1: ${ids.instances[0].id}\n  rosStackInstanceId2: ${status.instances[0].id}\n  rosStackInstanceId3: ${regionId.instances[0].id}\n  rosStackInstanceId4: ${accountId.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStackInstances.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Stack Instance IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"stackGroupName":{"type":"string","description":"The name of the stack group.\n"},"stackInstanceAccountId":{"type":"string","description":"The account to which the stack instance belongs.\n"},"stackInstanceRegionId":{"type":"string","description":"The region of the stack instance.\n"},"status":{"type":"string","description":"The status of the stack instance. Valid values: `CURRENT` or `OUTDATED`. \n* `CURRENT`: The stack corresponding to the stack instance is up to date with the stack group.\n* `OUTDATED`: The stack corresponding to the stack instance is not up to date with the stack group. The `OUTDATED` state has the following possible causes:\n* When the CreateStackInstances operation is called to create stack instances, the corresponding stacks fail to be created.\n* When the UpdateStackInstances or UpdateStackGroup operation is called to update stack instances, the corresponding stacks fail to be updated, or only some of the stack instances are updated.\n* The create or update operation is not complete.\n"}},"type":"object","required":["stackGroupName"]},"outputs":{"description":"A collection of values returned by getStackInstances.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instances":{"items":{"$ref":"#/types/alicloud:ros/getStackInstancesInstance:getStackInstancesInstance"},"type":"array"},"outputFile":{"type":"string"},"stackGroupName":{"type":"string"},"stackInstanceAccountId":{"type":"string"},"stackInstanceRegionId":{"type":"string"},"status":{"type":"string"}},"required":["ids","instances","stackGroupName","id"],"type":"object"}},"alicloud:ros/getStacks:getStacks":{"description":"This data source provides the Ros Stacks of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.106.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ros.getStacks({\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstRosStackId = example.then(example =\u003e example.stacks?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ros.get_stacks(ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstRosStackId\", example.stacks[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ros.GetStacks.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRosStackId\"] = example.Apply(getStacksResult =\u003e getStacksResult.Stacks[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ros.GetStacks(ctx, \u0026ros.GetStacksArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRosStackId\", example.Stacks[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ros.RosFunctions;\nimport com.pulumi.alicloud.ros.inputs.GetStacksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RosFunctions.getStacks(GetStacksArgs.builder()\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstRosStackId\", example.stacks()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ros:getStacks\n      arguments:\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstRosStackId: ${example.stacks[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStacks.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Stack IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Stack name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"parentStackId":{"type":"string","description":"ParentStackId.\n"},"showNestedStack":{"type":"boolean","description":"The show nested stack.\n"},"stackName":{"type":"string","description":"StackName.\n"},"status":{"type":"string","description":"The status of Stack. Valid Values: `CREATE_COMPLETE`, `CREATE_FAILED`, `CREATE_IN_PROGRESS`, `DELETE_COMPLETE`, `DELETE_FAILED`, `DELETE_IN_PROGRESS`, `ROLLBACK_COMPLETE`, `ROLLBACK_FAILED`, `ROLLBACK_IN_PROGRESS`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Query the instance bound to the tag. The format of the incoming value is \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e string, including `TagKey` and `TagValue`. `TagKey` cannot be null, and `TagValue` can be empty. Format example `{\"key1\":\"value1\"}`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getStacks.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"parentStackId":{"type":"string"},"showNestedStack":{"type":"boolean"},"stackName":{"type":"string"},"stacks":{"items":{"$ref":"#/types/alicloud:ros/getStacksStack:getStacksStack"},"type":"array"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["ids","names","stacks","id"],"type":"object"}},"alicloud:ros/getTemplateScratches:getTemplateScratches":{"description":"This data source provides the Ros Template Scratches of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.151.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.ros.getTemplateScratches({\n    ids: [\"example_value\"],\n});\nexport const rosTemplateScratchId1 = ids.then(ids =\u003e ids.scratches?.[0]?.id);\nconst status = alicloud.ros.getTemplateScratches({\n    status: \"GENERATE_COMPLETE\",\n});\nexport const rosTemplateScratchId2 = status.then(status =\u003e status.scratches?.[0]?.id);\nconst templateScratchType = alicloud.ros.getTemplateScratches({\n    templateScratchType: \"ResourceImport\",\n});\nexport const rosTemplateScratchId3 = templateScratchType.then(templateScratchType =\u003e templateScratchType.scratches?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.ros.get_template_scratches(ids=[\"example_value\"])\npulumi.export(\"rosTemplateScratchId1\", ids.scratches[0].id)\nstatus = alicloud.ros.get_template_scratches(status=\"GENERATE_COMPLETE\")\npulumi.export(\"rosTemplateScratchId2\", status.scratches[0].id)\ntemplate_scratch_type = alicloud.ros.get_template_scratches(template_scratch_type=\"ResourceImport\")\npulumi.export(\"rosTemplateScratchId3\", template_scratch_type.scratches[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Ros.GetTemplateScratches.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    var status = AliCloud.Ros.GetTemplateScratches.Invoke(new()\n    {\n        Status = \"GENERATE_COMPLETE\",\n    });\n\n    var templateScratchType = AliCloud.Ros.GetTemplateScratches.Invoke(new()\n    {\n        TemplateScratchType = \"ResourceImport\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"rosTemplateScratchId1\"] = ids.Apply(getTemplateScratchesResult =\u003e getTemplateScratchesResult.Scratches[0]?.Id),\n        [\"rosTemplateScratchId2\"] = status.Apply(getTemplateScratchesResult =\u003e getTemplateScratchesResult.Scratches[0]?.Id),\n        [\"rosTemplateScratchId3\"] = templateScratchType.Apply(getTemplateScratchesResult =\u003e getTemplateScratchesResult.Scratches[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := ros.GetTemplateScratches(ctx, \u0026ros.GetTemplateScratchesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rosTemplateScratchId1\", ids.Scratches[0].Id)\n\t\tstatus, err := ros.GetTemplateScratches(ctx, \u0026ros.GetTemplateScratchesArgs{\n\t\t\tStatus: pulumi.StringRef(\"GENERATE_COMPLETE\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rosTemplateScratchId2\", status.Scratches[0].Id)\n\t\ttemplateScratchType, err := ros.GetTemplateScratches(ctx, \u0026ros.GetTemplateScratchesArgs{\n\t\t\tTemplateScratchType: pulumi.StringRef(\"ResourceImport\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rosTemplateScratchId3\", templateScratchType.Scratches[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ros.RosFunctions;\nimport com.pulumi.alicloud.ros.inputs.GetTemplateScratchesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = RosFunctions.getTemplateScratches(GetTemplateScratchesArgs.builder()\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"rosTemplateScratchId1\", ids.scratches()[0].id());\n        final var status = RosFunctions.getTemplateScratches(GetTemplateScratchesArgs.builder()\n            .status(\"GENERATE_COMPLETE\")\n            .build());\n\n        ctx.export(\"rosTemplateScratchId2\", status.scratches()[0].id());\n        final var templateScratchType = RosFunctions.getTemplateScratches(GetTemplateScratchesArgs.builder()\n            .templateScratchType(\"ResourceImport\")\n            .build());\n\n        ctx.export(\"rosTemplateScratchId3\", templateScratchType.scratches()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:ros:getTemplateScratches\n      arguments:\n        ids:\n          - example_value\n  status:\n    fn::invoke:\n      function: alicloud:ros:getTemplateScratches\n      arguments:\n        status: GENERATE_COMPLETE\n  templateScratchType:\n    fn::invoke:\n      function: alicloud:ros:getTemplateScratches\n      arguments:\n        templateScratchType: ResourceImport\noutputs:\n  rosTemplateScratchId1: ${ids.scratches[0].id}\n  rosTemplateScratchId2: ${status.scratches[0].id}\n  rosTemplateScratchId3: ${templateScratchType.scratches[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTemplateScratches.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Template Scratch IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid Values: `GENERATE_IN_PROGRESS`, `GENERATE_COMPLETE` and `GENERATE_FAILED`.\n"},"templateScratchType":{"type":"string","description":"The type of the template scratch. Valid Values: `ResourceImport`, `ArchitectureReplication`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTemplateScratches.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"scratches":{"items":{"$ref":"#/types/alicloud:ros/getTemplateScratchesScratch:getTemplateScratchesScratch"},"type":"array"},"status":{"type":"string"},"templateScratchType":{"type":"string"}},"required":["ids","scratches","id"],"type":"object"}},"alicloud:ros/getTemplates:getTemplates":{"description":"This data source provides the Ros Templates of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.108.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.ros.getTemplates({\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstRosTemplateId = example.then(example =\u003e example.templates?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.ros.get_templates(ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstRosTemplateId\", example.templates[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Ros.GetTemplates.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRosTemplateId\"] = example.Apply(getTemplatesResult =\u003e getTemplatesResult.Templates[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ros.GetTemplates(ctx, \u0026ros.GetTemplatesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRosTemplateId\", example.Templates[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.ros.RosFunctions;\nimport com.pulumi.alicloud.ros.inputs.GetTemplatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RosFunctions.getTemplates(GetTemplatesArgs.builder()\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstRosTemplateId\", example.templates()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:ros:getTemplates\n      arguments:\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstRosTemplateId: ${example.templates[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTemplates.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Template IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Template name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"shareType":{"type":"string","description":"Share Type. Valid Values: `Private`, `Shared`\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Query the resource bound to the tag. The format of the incoming value is \u003cspan pulumi-lang-nodejs=\"`json`\" pulumi-lang-dotnet=\"`Json`\" pulumi-lang-go=\"`json`\" pulumi-lang-python=\"`json`\" pulumi-lang-yaml=\"`json`\" pulumi-lang-java=\"`json`\"\u003e`json`\u003c/span\u003e string, including `TagKey` and `TagValue`. `TagKey` cannot be null, and `TagValue` can be empty. Format example `{\"key1\":\"value1\"}`.\n"},"templateName":{"type":"string","description":"The name of the template.  The name can be up to 255 characters in length and can contain digits, letters, hyphens (-), and underscores (_). It must start with a digit or letter.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTemplates.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"shareType":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"templateName":{"type":"string"},"templates":{"items":{"$ref":"#/types/alicloud:ros/getTemplatesTemplate:getTemplatesTemplate"},"type":"array"}},"required":["ids","names","templates","id"],"type":"object"}},"alicloud:sae/getApplicationScalingRules:getApplicationScalingRules":{"description":"This data source provides the Sae Application Scaling Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.159.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.sae.getApplicationScalingRules({\n    appId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const saeApplicationScalingRuleId1 = ids.then(ids =\u003e ids.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.sae.get_application_scaling_rules(app_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"saeApplicationScalingRuleId1\", ids.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Sae.GetApplicationScalingRules.Invoke(new()\n    {\n        AppId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"saeApplicationScalingRuleId1\"] = ids.Apply(getApplicationScalingRulesResult =\u003e getApplicationScalingRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sae\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := sae.GetApplicationScalingRules(ctx, \u0026sae.GetApplicationScalingRulesArgs{\n\t\t\tAppId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"saeApplicationScalingRuleId1\", ids.Rules[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sae.SaeFunctions;\nimport com.pulumi.alicloud.sae.inputs.GetApplicationScalingRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = SaeFunctions.getApplicationScalingRules(GetApplicationScalingRulesArgs.builder()\n            .appId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"saeApplicationScalingRuleId1\", ids.rules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:sae:getApplicationScalingRules\n      arguments:\n        appId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\noutputs:\n  saeApplicationScalingRuleId1: ${ids.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getApplicationScalingRules.\n","properties":{"appId":{"type":"string","description":"The ID of the Application.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Application Scaling Rule IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["appId"]},"outputs":{"description":"A collection of values returned by getApplicationScalingRules.\n","properties":{"appId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"rules":{"items":{"$ref":"#/types/alicloud:sae/getApplicationScalingRulesRule:getApplicationScalingRulesRule"},"type":"array"}},"required":["appId","ids","rules","id"],"type":"object"}},"alicloud:sae/getApplications:getApplications":{"description":"This data source provides the Sae Applications of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.161.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-testacc\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    vpcName: \"tf_testacc\",\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst vsw = new alicloud.vpc.Switch(\"vsw\", {\n    vpcId: vpc.id,\n    cidrBlock: \"172.16.0.0/24\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultNamespace = new alicloud.sae.Namespace(\"default\", {\n    namespaceDescription: name,\n    namespaceId: \"cn-hangzhou:tfacctest\",\n    namespaceName: name,\n});\nconst defaultApplication = new alicloud.sae.Application(\"default\", {\n    appDescription: \"tf-testaccDescription\",\n    appName: \"tf-testaccAppName131\",\n    namespaceId: defaultNamespace.id,\n    imageUrl: \"registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\",\n    packageType: \"Image\",\n    vswitchId: vsw.id,\n    timezone: \"Asia/Beijing\",\n    replicas: 5,\n    cpu: 500,\n    memory: 2048,\n});\nconst defaultGetApplications = alicloud.sae.getApplicationsOutput({\n    ids: [defaultApplication.id],\n});\nexport const saeApplicationId = defaultGetApplications.apply(defaultGetApplications =\u003e defaultGetApplications.applications?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-testacc\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nvpc = alicloud.vpc.Network(\"vpc\",\n    vpc_name=\"tf_testacc\",\n    cidr_block=\"172.16.0.0/12\")\nvsw = alicloud.vpc.Switch(\"vsw\",\n    vpc_id=vpc.id,\n    cidr_block=\"172.16.0.0/24\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_namespace = alicloud.sae.Namespace(\"default\",\n    namespace_description=name,\n    namespace_id=\"cn-hangzhou:tfacctest\",\n    namespace_name=name)\ndefault_application = alicloud.sae.Application(\"default\",\n    app_description=\"tf-testaccDescription\",\n    app_name=\"tf-testaccAppName131\",\n    namespace_id=default_namespace.id,\n    image_url=\"registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\",\n    package_type=\"Image\",\n    vswitch_id=vsw.id,\n    timezone=\"Asia/Beijing\",\n    replicas=5,\n    cpu=500,\n    memory=2048)\ndefault_get_applications = alicloud.sae.get_applications_output(ids=[default_application.id])\npulumi.export(\"saeApplicationId\", default_get_applications.applications[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-testacc\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        VpcName = \"tf_testacc\",\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var vsw = new AliCloud.Vpc.Switch(\"vsw\", new()\n    {\n        VpcId = vpc.Id,\n        CidrBlock = \"172.16.0.0/24\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultNamespace = new AliCloud.Sae.Namespace(\"default\", new()\n    {\n        NamespaceDescription = name,\n        NamespaceId = \"cn-hangzhou:tfacctest\",\n        NamespaceName = name,\n    });\n\n    var defaultApplication = new AliCloud.Sae.Application(\"default\", new()\n    {\n        AppDescription = \"tf-testaccDescription\",\n        AppName = \"tf-testaccAppName131\",\n        NamespaceId = defaultNamespace.Id,\n        ImageUrl = \"registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\",\n        PackageType = \"Image\",\n        VswitchId = vsw.Id,\n        Timezone = \"Asia/Beijing\",\n        Replicas = 5,\n        Cpu = 500,\n        Memory = 2048,\n    });\n\n    var defaultGetApplications = AliCloud.Sae.GetApplications.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultApplication.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"saeApplicationId\"] = defaultGetApplications.Apply(getApplicationsResult =\u003e getApplicationsResult.Applications[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sae\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-testacc\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(\"tf_testacc\"),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvsw, err := vpc.NewSwitch(ctx, \"vsw\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       vpc.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/24\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNamespace, err := sae.NewNamespace(ctx, \"default\", \u0026sae.NamespaceArgs{\n\t\t\tNamespaceDescription: pulumi.String(name),\n\t\t\tNamespaceId:          pulumi.String(\"cn-hangzhou:tfacctest\"),\n\t\t\tNamespaceName:        pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplication, err := sae.NewApplication(ctx, \"default\", \u0026sae.ApplicationArgs{\n\t\t\tAppDescription: pulumi.String(\"tf-testaccDescription\"),\n\t\t\tAppName:        pulumi.String(\"tf-testaccAppName131\"),\n\t\t\tNamespaceId:    defaultNamespace.ID(),\n\t\t\tImageUrl:       pulumi.String(\"registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\"),\n\t\t\tPackageType:    pulumi.String(\"Image\"),\n\t\t\tVswitchId:      vsw.ID(),\n\t\t\tTimezone:       pulumi.String(\"Asia/Beijing\"),\n\t\t\tReplicas:       pulumi.Int(5),\n\t\t\tCpu:            pulumi.Int(500),\n\t\t\tMemory:         pulumi.Int(2048),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetApplications := sae.GetApplicationsOutput(ctx, sae.GetApplicationsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultApplication.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"saeApplicationId\", defaultGetApplications.ApplyT(func(defaultGetApplications sae.GetApplicationsResult) (*string, error) {\n\t\t\treturn \u0026defaultGetApplications.Applications[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.sae.Namespace;\nimport com.pulumi.alicloud.sae.NamespaceArgs;\nimport com.pulumi.alicloud.sae.Application;\nimport com.pulumi.alicloud.sae.ApplicationArgs;\nimport com.pulumi.alicloud.sae.SaeFunctions;\nimport com.pulumi.alicloud.sae.inputs.GetApplicationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-testacc\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .vpcName(\"tf_testacc\")\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var vsw = new Switch(\"vsw\", SwitchArgs.builder()\n            .vpcId(vpc.id())\n            .cidrBlock(\"172.16.0.0/24\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultNamespace = new Namespace(\"defaultNamespace\", NamespaceArgs.builder()\n            .namespaceDescription(name)\n            .namespaceId(\"cn-hangzhou:tfacctest\")\n            .namespaceName(name)\n            .build());\n\n        var defaultApplication = new Application(\"defaultApplication\", ApplicationArgs.builder()\n            .appDescription(\"tf-testaccDescription\")\n            .appName(\"tf-testaccAppName131\")\n            .namespaceId(defaultNamespace.id())\n            .imageUrl(\"registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\")\n            .packageType(\"Image\")\n            .vswitchId(vsw.id())\n            .timezone(\"Asia/Beijing\")\n            .replicas(5)\n            .cpu(500)\n            .memory(2048)\n            .build());\n\n        final var defaultGetApplications = SaeFunctions.getApplications(GetApplicationsArgs.builder()\n            .ids(defaultApplication.id())\n            .build());\n\n        ctx.export(\"saeApplicationId\", defaultGetApplications.applyValue(_defaultGetApplications -\u003e _defaultGetApplications.applications()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-testacc\nresources:\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      vpcName: tf_testacc\n      cidrBlock: 172.16.0.0/12\n  vsw:\n    type: alicloud:vpc:Switch\n    properties:\n      vpcId: ${vpc.id}\n      cidrBlock: 172.16.0.0/24\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultNamespace:\n    type: alicloud:sae:Namespace\n    name: default\n    properties:\n      namespaceDescription: ${name}\n      namespaceId: cn-hangzhou:tfacctest\n      namespaceName: ${name}\n  defaultApplication:\n    type: alicloud:sae:Application\n    name: default\n    properties:\n      appDescription: tf-testaccDescription\n      appName: tf-testaccAppName131\n      namespaceId: ${defaultNamespace.id}\n      imageUrl: registry-vpc.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5\n      packageType: Image\n      vswitchId: ${vsw.id}\n      timezone: Asia/Beijing\n      replicas: '5'\n      cpu: '500'\n      memory: '2048'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetApplications:\n    fn::invoke:\n      function: alicloud:sae:getApplications\n      arguments:\n        ids:\n          - ${defaultApplication.id}\noutputs:\n  saeApplicationId: ${defaultGetApplications.applications[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getApplications.\n","properties":{"appName":{"type":"string","description":"Application Name. Combinations of numbers, letters, and dashes (-) are allowed. It must start with a letter and the maximum length is 36 characters.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"fieldType":{"type":"string","description":"The field type. Valid values:`appName`, `appIds`, `slbIps`, `instanceIps`\n"},"fieldValue":{"type":"string","description":"The field value.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Application IDs.\n"},"namespaceId":{"type":"string","description":"SAE namespace ID. Only namespaces whose names are lowercase letters and dashes (-) are supported, and must start with a letter. The namespace can be obtained by calling the DescribeNamespaceList interface.\n"},"orderBy":{"type":"string","description":"The order by.Valid values:\u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`instances`\" pulumi-lang-dotnet=\"`Instances`\" pulumi-lang-go=\"`instances`\" pulumi-lang-python=\"`instances`\" pulumi-lang-yaml=\"`instances`\" pulumi-lang-java=\"`instances`\"\u003e`instances`\u003c/span\u003e.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"reverse":{"type":"boolean","description":"The reverse.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `RUNNING`, `STOPPED`,`UNKNOWN`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getApplications.\n","properties":{"appName":{"type":"string"},"applications":{"items":{"$ref":"#/types/alicloud:sae/getApplicationsApplication:getApplicationsApplication"},"type":"array"},"enableDetails":{"type":"boolean"},"fieldType":{"type":"string"},"fieldValue":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"namespaceId":{"type":"string"},"orderBy":{"type":"string"},"outputFile":{"type":"string"},"reverse":{"type":"boolean"},"status":{"type":"string"}},"required":["applications","ids","id"],"type":"object"}},"alicloud:sae/getConfigMaps:getConfigMaps":{"description":"This data source provides the Sae Config Maps of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.130.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst configMapName = config.get(\"configMapName\") || \"examplename\";\nconst example = new alicloud.sae.Namespace(\"example\", {\n    namespaceId: \"cn-hangzhou:yourname\",\n    namespaceName: \"example_value\",\n    namespaceDescription: \"your_description\",\n});\nconst exampleConfigMap = new alicloud.sae.ConfigMap(\"example\", {\n    data: JSON.stringify({\n        \"env.home\": \"/root\",\n        \"env.shell\": \"/bin/sh\",\n    }),\n    name: configMapName,\n    namespaceId: example.namespaceId,\n});\nconst nameRegex = alicloud.sae.getConfigMapsOutput({\n    namespaceId: example.namespaceId,\n    nameRegex: \"^example\",\n});\nexport const saeConfigMapId = nameRegex.apply(nameRegex =\u003e nameRegex.maps?.[0]?.id);\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nconfig_map_name = config.get(\"configMapName\")\nif config_map_name is None:\n    config_map_name = \"examplename\"\nexample = alicloud.sae.Namespace(\"example\",\n    namespace_id=\"cn-hangzhou:yourname\",\n    namespace_name=\"example_value\",\n    namespace_description=\"your_description\")\nexample_config_map = alicloud.sae.ConfigMap(\"example\",\n    data=json.dumps({\n        \"env.home\": \"/root\",\n        \"env.shell\": \"/bin/sh\",\n    }),\n    name=config_map_name,\n    namespace_id=example.namespace_id)\nname_regex = alicloud.sae.get_config_maps_output(namespace_id=example.namespace_id,\n    name_regex=\"^example\")\npulumi.export(\"saeConfigMapId\", name_regex.maps[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var configMapName = config.Get(\"configMapName\") ?? \"examplename\";\n    var example = new AliCloud.Sae.Namespace(\"example\", new()\n    {\n        NamespaceId = \"cn-hangzhou:yourname\",\n        NamespaceName = \"example_value\",\n        NamespaceDescription = \"your_description\",\n    });\n\n    var exampleConfigMap = new AliCloud.Sae.ConfigMap(\"example\", new()\n    {\n        Data = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"env.home\"] = \"/root\",\n            [\"env.shell\"] = \"/bin/sh\",\n        }),\n        Name = configMapName,\n        NamespaceId = example.NamespaceId,\n    });\n\n    var nameRegex = AliCloud.Sae.GetConfigMaps.Invoke(new()\n    {\n        NamespaceId = example.NamespaceId,\n        NameRegex = \"^example\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"saeConfigMapId\"] = nameRegex.Apply(getConfigMapsResult =\u003e getConfigMapsResult.Maps[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sae\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tconfigMapName := \"examplename\"\n\t\tif param := cfg.Get(\"configMapName\"); param != \"\" {\n\t\t\tconfigMapName = param\n\t\t}\n\t\texample, err := sae.NewNamespace(ctx, \"example\", \u0026sae.NamespaceArgs{\n\t\t\tNamespaceId:          pulumi.String(\"cn-hangzhou:yourname\"),\n\t\t\tNamespaceName:        pulumi.String(\"example_value\"),\n\t\t\tNamespaceDescription: pulumi.String(\"your_description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"env.home\":  \"/root\",\n\t\t\t\"env.shell\": \"/bin/sh\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = sae.NewConfigMap(ctx, \"example\", \u0026sae.ConfigMapArgs{\n\t\t\tData:        pulumi.String(json0),\n\t\t\tName:        pulumi.String(configMapName),\n\t\t\tNamespaceId: example.NamespaceId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnameRegex := sae.GetConfigMapsOutput(ctx, sae.GetConfigMapsOutputArgs{\n\t\t\tNamespaceId: example.NamespaceId,\n\t\t\tNameRegex:   pulumi.String(\"^example\"),\n\t\t}, nil)\n\t\tctx.Export(\"saeConfigMapId\", nameRegex.ApplyT(func(nameRegex sae.GetConfigMapsResult) (*string, error) {\n\t\t\treturn \u0026nameRegex.Maps[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sae.Namespace;\nimport com.pulumi.alicloud.sae.NamespaceArgs;\nimport com.pulumi.alicloud.sae.ConfigMap;\nimport com.pulumi.alicloud.sae.ConfigMapArgs;\nimport com.pulumi.alicloud.sae.SaeFunctions;\nimport com.pulumi.alicloud.sae.inputs.GetConfigMapsArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var configMapName = config.get(\"configMapName\").orElse(\"examplename\");\n        var example = new Namespace(\"example\", NamespaceArgs.builder()\n            .namespaceId(\"cn-hangzhou:yourname\")\n            .namespaceName(\"example_value\")\n            .namespaceDescription(\"your_description\")\n            .build());\n\n        var exampleConfigMap = new ConfigMap(\"exampleConfigMap\", ConfigMapArgs.builder()\n            .data(serializeJson(\n                jsonObject(\n                    jsonProperty(\"env.home\", \"/root\"),\n                    jsonProperty(\"env.shell\", \"/bin/sh\")\n                )))\n            .name(configMapName)\n            .namespaceId(example.namespaceId())\n            .build());\n\n        final var nameRegex = SaeFunctions.getConfigMaps(GetConfigMapsArgs.builder()\n            .namespaceId(example.namespaceId())\n            .nameRegex(\"^example\")\n            .build());\n\n        ctx.export(\"saeConfigMapId\", nameRegex.applyValue(_nameRegex -\u003e _nameRegex.maps()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  configMapName:\n    type: string\n    default: examplename\nresources:\n  example:\n    type: alicloud:sae:Namespace\n    properties:\n      namespaceId: cn-hangzhou:yourname\n      namespaceName: example_value\n      namespaceDescription: your_description\n  exampleConfigMap:\n    type: alicloud:sae:ConfigMap\n    name: example\n    properties:\n      data:\n        fn::toJSON:\n          env.home: /root\n          env.shell: /bin/sh\n      name: ${configMapName}\n      namespaceId: ${example.namespaceId}\nvariables:\n  nameRegex:\n    fn::invoke:\n      function: alicloud:sae:getConfigMaps\n      arguments:\n        namespaceId: ${example.namespaceId}\n        nameRegex: ^example\noutputs:\n  saeConfigMapId: ${nameRegex.maps[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getConfigMaps.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Config Map IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Config Map name.\n"},"namespaceId":{"type":"string","description":"The NamespaceId of Config Maps. The Id of Namespace.It can contain 2 to 32 characters.The value is in format {RegionId}:{namespace}.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["namespaceId"]},"outputs":{"description":"A collection of values returned by getConfigMaps.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"maps":{"items":{"$ref":"#/types/alicloud:sae/getConfigMapsMap:getConfigMapsMap"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"namespaceId":{"type":"string"},"outputFile":{"type":"string"}},"required":["ids","maps","names","namespaceId","id"],"type":"object"}},"alicloud:sae/getGreyTagRoutes:getGreyTagRoutes":{"description":"This data source provides the Sae GreyTagRoutes of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.160.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst nameRegex = alicloud.sae.getGreyTagRoutes({\n    appId: \"example_id\",\n    nameRegex: \"^my-GreyTagRoute\",\n});\nexport const saeGreyTagRoutesId = nameRegex.then(nameRegex =\u003e nameRegex.routes?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nname_regex = alicloud.sae.get_grey_tag_routes(app_id=\"example_id\",\n    name_regex=\"^my-GreyTagRoute\")\npulumi.export(\"saeGreyTagRoutesId\", name_regex.routes[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var nameRegex = AliCloud.Sae.GetGreyTagRoutes.Invoke(new()\n    {\n        AppId = \"example_id\",\n        NameRegex = \"^my-GreyTagRoute\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"saeGreyTagRoutesId\"] = nameRegex.Apply(getGreyTagRoutesResult =\u003e getGreyTagRoutesResult.Routes[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sae\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnameRegex, err := sae.GetGreyTagRoutes(ctx, \u0026sae.GetGreyTagRoutesArgs{\n\t\t\tAppId:     \"example_id\",\n\t\t\tNameRegex: pulumi.StringRef(\"^my-GreyTagRoute\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"saeGreyTagRoutesId\", nameRegex.Routes[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sae.SaeFunctions;\nimport com.pulumi.alicloud.sae.inputs.GetGreyTagRoutesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var nameRegex = SaeFunctions.getGreyTagRoutes(GetGreyTagRoutesArgs.builder()\n            .appId(\"example_id\")\n            .nameRegex(\"^my-GreyTagRoute\")\n            .build());\n\n        ctx.export(\"saeGreyTagRoutesId\", nameRegex.routes()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  nameRegex:\n    fn::invoke:\n      function: alicloud:sae:getGreyTagRoutes\n      arguments:\n        appId: example_id\n        nameRegex: ^my-GreyTagRoute\noutputs:\n  saeGreyTagRoutesId: ${nameRegex.routes[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGreyTagRoutes.\n","properties":{"appId":{"type":"string","description":"The ID  of the SAE Application.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of GreyTagRoute IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by GreyTagRoute name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["appId"]},"outputs":{"description":"A collection of values returned by getGreyTagRoutes.\n","properties":{"appId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"routes":{"items":{"$ref":"#/types/alicloud:sae/getGreyTagRoutesRoute:getGreyTagRoutesRoute"},"type":"array"}},"required":["appId","ids","names","routes","id"],"type":"object"}},"alicloud:sae/getIngresses:getIngresses":{"description":"This data source provides the Sae Ingresses of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.137.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"example_value\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    name: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultLoadBalancer = new alicloud.slb.LoadBalancer(\"default\", {\n    name: name,\n    specification: \"slb.s2.small\",\n    vswitchId: defaultAlicloudVswitches.ids[0],\n});\nconst desc = config.get(\"desc\") || \"example_value\";\nconst namespaceId = config.get(\"namespaceId\") || \"cn-hangzhou:yourname\";\nconst defaultNamespace = new alicloud.sae.Namespace(\"default\", {\n    namespaceId: namespaceId,\n    namespaceName: name,\n    namespaceDescription: desc,\n});\nconst defaultApplication = new alicloud.sae.Application(\"default\", {\n    appDescription: \"your_app_description\",\n    appName: \"your_app_name\",\n    namespaceId: \"your_namespace_id\",\n    packageUrl: \"your_package_url\",\n    packageType: \"your_package_url\",\n    jdk: \"jdk_specifications\",\n    vswitchId: defaultAlicloudVswitches.ids[0],\n    replicas: \"your_replicas\",\n    cpu: \"cpu_specifications\",\n    memory: \"memory_specifications\",\n});\nconst defaultIngress = new alicloud.sae.Ingress(\"default\", {\n    slbId: defaultLoadBalancer.id,\n    namespaceId: defaultNamespace.id,\n    listenerPort: \"your_listener_port\",\n    rules: [{\n        appId: defaultApplication.id,\n        containerPort: \"your_container_port\",\n        domain: \"your_domain\",\n        appName: \"your_name\",\n        path: \"your_path\",\n    }],\n});\nconst defaultGetIngresses = alicloud.sae.getIngressesOutput({\n    ids: [defaultIngress.id],\n});\nexport const saeIngressId = defaultGetIngresses.ingressList[0].id;\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"example_value\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_load_balancer = alicloud.slb.LoadBalancer(\"default\",\n    name=name,\n    specification=\"slb.s2.small\",\n    vswitch_id=default_alicloud_vswitches[\"ids\"][0])\ndesc = config.get(\"desc\")\nif desc is None:\n    desc = \"example_value\"\nnamespace_id = config.get(\"namespaceId\")\nif namespace_id is None:\n    namespace_id = \"cn-hangzhou:yourname\"\ndefault_namespace = alicloud.sae.Namespace(\"default\",\n    namespace_id=namespace_id,\n    namespace_name=name,\n    namespace_description=desc)\ndefault_application = alicloud.sae.Application(\"default\",\n    app_description=\"your_app_description\",\n    app_name=\"your_app_name\",\n    namespace_id=\"your_namespace_id\",\n    package_url=\"your_package_url\",\n    package_type=\"your_package_url\",\n    jdk=\"jdk_specifications\",\n    vswitch_id=default_alicloud_vswitches[\"ids\"][0],\n    replicas=\"your_replicas\",\n    cpu=\"cpu_specifications\",\n    memory=\"memory_specifications\")\ndefault_ingress = alicloud.sae.Ingress(\"default\",\n    slb_id=default_load_balancer.id,\n    namespace_id=default_namespace.id,\n    listener_port=\"your_listener_port\",\n    rules=[{\n        \"app_id\": default_application.id,\n        \"container_port\": \"your_container_port\",\n        \"domain\": \"your_domain\",\n        \"app_name\": \"your_name\",\n        \"path\": \"your_path\",\n    }])\ndefault_get_ingresses = alicloud.sae.get_ingresses_output(ids=[default_ingress.id])\npulumi.export(\"saeIngressId\", default_get_ingresses.ingress_list[0][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"example_value\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        Name = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultLoadBalancer = new AliCloud.Slb.LoadBalancer(\"default\", new()\n    {\n        Name = name,\n        Specification = \"slb.s2.small\",\n        VswitchId = defaultAlicloudVswitches.Ids[0],\n    });\n\n    var desc = config.Get(\"desc\") ?? \"example_value\";\n    var namespaceId = config.Get(\"namespaceId\") ?? \"cn-hangzhou:yourname\";\n    var defaultNamespace = new AliCloud.Sae.Namespace(\"default\", new()\n    {\n        NamespaceId = namespaceId,\n        NamespaceName = name,\n        NamespaceDescription = desc,\n    });\n\n    var defaultApplication = new AliCloud.Sae.Application(\"default\", new()\n    {\n        AppDescription = \"your_app_description\",\n        AppName = \"your_app_name\",\n        NamespaceId = \"your_namespace_id\",\n        PackageUrl = \"your_package_url\",\n        PackageType = \"your_package_url\",\n        Jdk = \"jdk_specifications\",\n        VswitchId = defaultAlicloudVswitches.Ids[0],\n        Replicas = \"your_replicas\",\n        Cpu = \"cpu_specifications\",\n        Memory = \"memory_specifications\",\n    });\n\n    var defaultIngress = new AliCloud.Sae.Ingress(\"default\", new()\n    {\n        SlbId = defaultLoadBalancer.Id,\n        NamespaceId = defaultNamespace.Id,\n        ListenerPort = \"your_listener_port\",\n        Rules = new[]\n        {\n            new AliCloud.Sae.Inputs.IngressRuleArgs\n            {\n                AppId = defaultApplication.Id,\n                ContainerPort = \"your_container_port\",\n                Domain = \"your_domain\",\n                AppName = \"your_name\",\n                Path = \"your_path\",\n            },\n        },\n    });\n\n    var defaultGetIngresses = AliCloud.Sae.GetIngresses.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultIngress.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"saeIngressId\"] = defaultGetIngresses.Apply(getIngressesResult =\u003e getIngressesResult.IngressList[0].Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sae\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"example_value\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\n_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\nName: pulumi.String(name),\nCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n})\nif err != nil {\nreturn err\n}\n_, err = vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\nVpcId: defaultNetwork.ID(),\nCidrBlock: pulumi.String(\"172.16.0.0/21\"),\nZoneId: pulumi.String(_default.Zones[0].Id),\nVswitchName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\ndefaultLoadBalancer, err := slb.NewLoadBalancer(ctx, \"default\", \u0026slb.LoadBalancerArgs{\nName: pulumi.String(name),\nSpecification: pulumi.String(\"slb.s2.small\"),\nVswitchId: pulumi.Any(defaultAlicloudVswitches.Ids[0]),\n})\nif err != nil {\nreturn err\n}\ndesc := \"example_value\";\nif param := cfg.Get(\"desc\"); param != \"\"{\ndesc = param\n}\nnamespaceId := \"cn-hangzhou:yourname\";\nif param := cfg.Get(\"namespaceId\"); param != \"\"{\nnamespaceId = param\n}\ndefaultNamespace, err := sae.NewNamespace(ctx, \"default\", \u0026sae.NamespaceArgs{\nNamespaceId: pulumi.String(namespaceId),\nNamespaceName: pulumi.String(name),\nNamespaceDescription: pulumi.String(desc),\n})\nif err != nil {\nreturn err\n}\ndefaultApplication, err := sae.NewApplication(ctx, \"default\", \u0026sae.ApplicationArgs{\nAppDescription: pulumi.String(\"your_app_description\"),\nAppName: pulumi.String(\"your_app_name\"),\nNamespaceId: pulumi.String(\"your_namespace_id\"),\nPackageUrl: pulumi.String(\"your_package_url\"),\nPackageType: pulumi.String(\"your_package_url\"),\nJdk: pulumi.String(\"jdk_specifications\"),\nVswitchId: pulumi.Any(defaultAlicloudVswitches.Ids[0]),\nReplicas: pulumi.Int(\"your_replicas\"),\nCpu: pulumi.Int(\"cpu_specifications\"),\nMemory: pulumi.Int(\"memory_specifications\"),\n})\nif err != nil {\nreturn err\n}\ndefaultIngress, err := sae.NewIngress(ctx, \"default\", \u0026sae.IngressArgs{\nSlbId: defaultLoadBalancer.ID(),\nNamespaceId: defaultNamespace.ID(),\nListenerPort: pulumi.Int(\"your_listener_port\"),\nRules: sae.IngressRuleArray{\n\u0026sae.IngressRuleArgs{\nAppId: defaultApplication.ID(),\nContainerPort: pulumi.Int(\"your_container_port\"),\nDomain: pulumi.String(\"your_domain\"),\nAppName: pulumi.String(\"your_name\"),\nPath: pulumi.String(\"your_path\"),\n},\n},\n})\nif err != nil {\nreturn err\n}\ndefaultGetIngresses := sae.GetIngressesOutput(ctx, sae.GetIngressesOutputArgs{\nIds: pulumi.StringArray{\ndefaultIngress.ID(),\n},\n}, nil);\nctx.Export(\"saeIngressId\", defaultGetIngresses.ApplyT(func(defaultGetIngresses sae.GetIngressesResult) (interface{}, error) {\nreturn defaultGetIngresses.IngressList[0].Id, nil\n}).(pulumi.Interface{}Output))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.slb.LoadBalancer;\nimport com.pulumi.alicloud.slb.LoadBalancerArgs;\nimport com.pulumi.alicloud.sae.Namespace;\nimport com.pulumi.alicloud.sae.NamespaceArgs;\nimport com.pulumi.alicloud.sae.Application;\nimport com.pulumi.alicloud.sae.ApplicationArgs;\nimport com.pulumi.alicloud.sae.Ingress;\nimport com.pulumi.alicloud.sae.IngressArgs;\nimport com.pulumi.alicloud.sae.inputs.IngressRuleArgs;\nimport com.pulumi.alicloud.sae.SaeFunctions;\nimport com.pulumi.alicloud.sae.inputs.GetIngressesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"example_value\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .name(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultLoadBalancer = new LoadBalancer(\"defaultLoadBalancer\", LoadBalancerArgs.builder()\n            .name(name)\n            .specification(\"slb.s2.small\")\n            .vswitchId(defaultAlicloudVswitches.ids()[0])\n            .build());\n\n        final var desc = config.get(\"desc\").orElse(\"example_value\");\n        final var namespaceId = config.get(\"namespaceId\").orElse(\"cn-hangzhou:yourname\");\n        var defaultNamespace = new Namespace(\"defaultNamespace\", NamespaceArgs.builder()\n            .namespaceId(namespaceId)\n            .namespaceName(name)\n            .namespaceDescription(desc)\n            .build());\n\n        var defaultApplication = new Application(\"defaultApplication\", ApplicationArgs.builder()\n            .appDescription(\"your_app_description\")\n            .appName(\"your_app_name\")\n            .namespaceId(\"your_namespace_id\")\n            .packageUrl(\"your_package_url\")\n            .packageType(\"your_package_url\")\n            .jdk(\"jdk_specifications\")\n            .vswitchId(defaultAlicloudVswitches.ids()[0])\n            .replicas(\"your_replicas\")\n            .cpu(\"cpu_specifications\")\n            .memory(\"memory_specifications\")\n            .build());\n\n        var defaultIngress = new Ingress(\"defaultIngress\", IngressArgs.builder()\n            .slbId(defaultLoadBalancer.id())\n            .namespaceId(defaultNamespace.id())\n            .listenerPort(\"your_listener_port\")\n            .rules(IngressRuleArgs.builder()\n                .appId(defaultApplication.id())\n                .containerPort(\"your_container_port\")\n                .domain(\"your_domain\")\n                .appName(\"your_name\")\n                .path(\"your_path\")\n                .build())\n            .build());\n\n        final var defaultGetIngresses = SaeFunctions.getIngresses(GetIngressesArgs.builder()\n            .ids(defaultIngress.id())\n            .build());\n\n        ctx.export(\"saeIngressId\", defaultGetIngresses.applyValue(_defaultGetIngresses -\u003e _defaultGetIngresses.ingressList()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: example_value\n  desc:\n    type: string\n    default: example_value\n  namespaceId:\n    type: string\n    default: cn-hangzhou:yourname\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      name: ${name}\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultLoadBalancer:\n    type: alicloud:slb:LoadBalancer\n    name: default\n    properties:\n      name: ${name}\n      specification: slb.s2.small\n      vswitchId: ${defaultAlicloudVswitches.ids[0]}\n  defaultNamespace:\n    type: alicloud:sae:Namespace\n    name: default\n    properties:\n      namespaceId: ${namespaceId}\n      namespaceName: ${name}\n      namespaceDescription: ${desc}\n  defaultApplication:\n    type: alicloud:sae:Application\n    name: default\n    properties:\n      appDescription: your_app_description\n      appName: your_app_name\n      namespaceId: your_namespace_id\n      packageUrl: your_package_url\n      packageType: your_package_url\n      jdk: jdk_specifications\n      vswitchId: ${defaultAlicloudVswitches.ids[0]}\n      replicas: your_replicas\n      cpu: cpu_specifications\n      memory: memory_specifications\n  defaultIngress:\n    type: alicloud:sae:Ingress\n    name: default\n    properties:\n      slbId: ${defaultLoadBalancer.id}\n      namespaceId: ${defaultNamespace.id}\n      listenerPort: your_listener_port\n      rules:\n        - appId: ${defaultApplication.id}\n          containerPort: your_container_port\n          domain: your_domain\n          appName: your_name\n          path: your_path\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetIngresses:\n    fn::invoke:\n      function: alicloud:sae:getIngresses\n      arguments:\n        ids:\n          - ${defaultIngress.id}\noutputs:\n  saeIngressId: ${defaultGetIngresses.ingressList[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIngresses.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ingress IDs.\n"},"namespaceId":{"type":"string","description":"The Id of Namespace.It can contain 2 to 32 lowercase characters.The value is in format `{RegionId}:{namespace}`\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["namespaceId"]},"outputs":{"description":"A collection of values returned by getIngresses.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"ingresses":{"items":{"$ref":"#/types/alicloud:sae/getIngressesIngress:getIngressesIngress"},"type":"array"},"namespaceId":{"type":"string"},"outputFile":{"type":"string"}},"required":["ids","ingresses","namespaceId","id"],"type":"object"}},"alicloud:sae/getInstanceSpecifications:getInstanceSpecifications":{"description":"This data source provides the Sae Instance Specifications of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.139.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.sae.getInstanceSpecifications({});\nexport const saeInstanceSpecificationId1 = ids.then(ids =\u003e ids.specifications?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.sae.get_instance_specifications()\npulumi.export(\"saeInstanceSpecificationId1\", ids.specifications[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Sae.GetInstanceSpecifications.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"saeInstanceSpecificationId1\"] = ids.Apply(getInstanceSpecificationsResult =\u003e getInstanceSpecificationsResult.Specifications[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sae\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := sae.GetInstanceSpecifications(ctx, \u0026sae.GetInstanceSpecificationsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"saeInstanceSpecificationId1\", ids.Specifications[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sae.SaeFunctions;\nimport com.pulumi.alicloud.sae.inputs.GetInstanceSpecificationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = SaeFunctions.getInstanceSpecifications(GetInstanceSpecificationsArgs.builder()\n            .build());\n\n        ctx.export(\"saeInstanceSpecificationId1\", ids.specifications()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:sae:getInstanceSpecifications\n      arguments: {}\noutputs:\n  saeInstanceSpecificationId1: ${ids.specifications[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceSpecifications.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Instance Specification IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstanceSpecifications.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"specifications":{"items":{"$ref":"#/types/alicloud:sae/getInstanceSpecificationsSpecification:getInstanceSpecificationsSpecification"},"type":"array"}},"required":["ids","specifications","id"],"type":"object"}},"alicloud:sae/getNamespaces:getNamespaces":{"description":"This data source provides the Sae Namespaces of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.129.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst nameRegex = alicloud.sae.getNamespaces({\n    nameRegex: \"^my-Namespace\",\n});\nexport const saeNamespaceId = nameRegex.then(nameRegex =\u003e nameRegex.namespaces?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nname_regex = alicloud.sae.get_namespaces(name_regex=\"^my-Namespace\")\npulumi.export(\"saeNamespaceId\", name_regex.namespaces[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var nameRegex = AliCloud.Sae.GetNamespaces.Invoke(new()\n    {\n        NameRegex = \"^my-Namespace\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"saeNamespaceId\"] = nameRegex.Apply(getNamespacesResult =\u003e getNamespacesResult.Namespaces[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sae\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnameRegex, err := sae.GetNamespaces(ctx, \u0026sae.GetNamespacesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Namespace\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"saeNamespaceId\", nameRegex.Namespaces[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sae.SaeFunctions;\nimport com.pulumi.alicloud.sae.inputs.GetNamespacesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var nameRegex = SaeFunctions.getNamespaces(GetNamespacesArgs.builder()\n            .nameRegex(\"^my-Namespace\")\n            .build());\n\n        ctx.export(\"saeNamespaceId\", nameRegex.namespaces()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  nameRegex:\n    fn::invoke:\n      function: alicloud:sae:getNamespaces\n      arguments:\n        nameRegex: ^my-Namespace\noutputs:\n  saeNamespaceId: ${nameRegex.namespaces[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNamespaces.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Namespace IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Namespace name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNamespaces.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"namespaces":{"items":{"$ref":"#/types/alicloud:sae/getNamespacesNamespace:getNamespacesNamespace"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","names","namespaces","id"],"type":"object"}},"alicloud:sae/getService:getService":{"description":"Using this data source can open SAE service automatically. If the service has been opened, it will return opened.\n\nFor information about SAE and how to use it, see [What is SAE](https://help.aliyun.com/document_detail/125720.html).\n\n\u003e **NOTE:** Available in v1.120.0+\n\n\u003e **NOTE:** The SAE service is not support in the international site.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.sae.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.sae.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Sae.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sae\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sae.GetService(ctx, \u0026sae.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sae.SaeFunctions;\nimport com.pulumi.alicloud.sae.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = SaeFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:sae:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: \"On\" or \"Off\". Default to \"Off\".\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the SAE service that means you have read and agreed the [SAE Terms of Service](https://help.aliyun.com/document_detail/123775.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:sag/getAcls:getAcls":{"description":"This data source provides Sag Acls available to the user.\n\n\u003e **NOTE:** Available in 1.60.0+\n\n\u003e **NOTE:** Only the following regions support create Cloud Connect Network. [`cn-shanghai`, `cn-shanghai-finance-1`, `cn-hongkong`, `ap-southeast-1`, `ap-southeast-3`, `ap-southeast-5`, `ap-northeast-1`, `eu-central-1`]\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.sag.getAcls({\n    ids: [defaultAlicloudSagAcls.id],\n    nameRegex: \"^tf-testAcc.*\",\n});\nconst defaultAcl = new alicloud.sag.Acl(\"default\", {name: \"tf-testAccSagAclName\"});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.sag.get_acls(ids=[default_alicloud_sag_acls[\"id\"]],\n    name_regex=\"^tf-testAcc.*\")\ndefault_acl = alicloud.sag.Acl(\"default\", name=\"tf-testAccSagAclName\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Sag.GetAcls.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudSagAcls.Id,\n        },\n        NameRegex = \"^tf-testAcc.*\",\n    });\n\n    var defaultAcl = new AliCloud.Sag.Acl(\"default\", new()\n    {\n        Name = \"tf-testAccSagAclName\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := sag.GetAcls(ctx, \u0026sag.GetAclsArgs{\nIds: interface{}{\ndefaultAlicloudSagAcls.Id,\n},\nNameRegex: pulumi.StringRef(\"^tf-testAcc.*\"),\n}, nil);\nif err != nil {\nreturn err\n}\n_, err = sag.NewAcl(ctx, \"default\", \u0026sag.AclArgs{\nName: pulumi.String(\"tf-testAccSagAclName\"),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.SagFunctions;\nimport com.pulumi.alicloud.sag.inputs.GetAclsArgs;\nimport com.pulumi.alicloud.sag.Acl;\nimport com.pulumi.alicloud.sag.AclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = SagFunctions.getAcls(GetAclsArgs.builder()\n            .ids(defaultAlicloudSagAcls.id())\n            .nameRegex(\"^tf-testAcc.*\")\n            .build());\n\n        var defaultAcl = new Acl(\"defaultAcl\", AclArgs.builder()\n            .name(\"tf-testAccSagAclName\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  defaultAcl:\n    type: alicloud:sag:Acl\n    name: default\n    properties:\n      name: tf-testAccSagAclName\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:sag:getAcls\n      arguments:\n        ids:\n          - ${defaultAlicloudSagAcls.id}\n        nameRegex: ^tf-testAcc.*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAcls.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Sag Acl IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter Sag Acl instances by name.\n"},"outputFile":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAcls.\n","properties":{"acls":{"description":"A list of Sag Acls. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:sag/getAclsAcl:getAclsAcl"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Sag Acl IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Sag Acls names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["acls","ids","names","id"],"type":"object"}},"alicloud:sag/getSmartagFlowLogs:getSmartagFlowLogs":{"description":"This data source provides the Smartag Flow Logs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.168.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.sag.getSmartagFlowLogs({\n    ids: [\"example_id\"],\n});\nexport const smartagFlowLogId1 = ids.then(ids =\u003e ids.logs?.[0]?.id);\nconst nameRegex = alicloud.sag.getSmartagFlowLogs({\n    nameRegex: \"^my-FlowLog\",\n});\nexport const smartagFlowLogId2 = nameRegex.then(nameRegex =\u003e nameRegex.logs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.sag.get_smartag_flow_logs(ids=[\"example_id\"])\npulumi.export(\"smartagFlowLogId1\", ids.logs[0].id)\nname_regex = alicloud.sag.get_smartag_flow_logs(name_regex=\"^my-FlowLog\")\npulumi.export(\"smartagFlowLogId2\", name_regex.logs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Sag.GetSmartagFlowLogs.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Sag.GetSmartagFlowLogs.Invoke(new()\n    {\n        NameRegex = \"^my-FlowLog\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"smartagFlowLogId1\"] = ids.Apply(getSmartagFlowLogsResult =\u003e getSmartagFlowLogsResult.Logs[0]?.Id),\n        [\"smartagFlowLogId2\"] = nameRegex.Apply(getSmartagFlowLogsResult =\u003e getSmartagFlowLogsResult.Logs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := sag.GetSmartagFlowLogs(ctx, \u0026sag.GetSmartagFlowLogsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"smartagFlowLogId1\", ids.Logs[0].Id)\n\t\tnameRegex, err := sag.GetSmartagFlowLogs(ctx, \u0026sag.GetSmartagFlowLogsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-FlowLog\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"smartagFlowLogId2\", nameRegex.Logs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sag.SagFunctions;\nimport com.pulumi.alicloud.sag.inputs.GetSmartagFlowLogsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = SagFunctions.getSmartagFlowLogs(GetSmartagFlowLogsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"smartagFlowLogId1\", ids.logs()[0].id());\n        final var nameRegex = SagFunctions.getSmartagFlowLogs(GetSmartagFlowLogsArgs.builder()\n            .nameRegex(\"^my-FlowLog\")\n            .build());\n\n        ctx.export(\"smartagFlowLogId2\", nameRegex.logs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:sag:getSmartagFlowLogs\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:sag:getSmartagFlowLogs\n      arguments:\n        nameRegex: ^my-FlowLog\noutputs:\n  smartagFlowLogId1: ${ids.logs[0].id}\n  smartagFlowLogId2: ${nameRegex.logs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSmartagFlowLogs.\n","properties":{"description":{"type":"string","description":"The description of the flow log.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Flow Log IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Flow Log name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string","description":"The status of the flow log. Valid values:  `Active`: The flow log is enabled. `Inactive`: The flow log is disabled.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSmartagFlowLogs.\n","properties":{"description":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"logs":{"items":{"$ref":"#/types/alicloud:sag/getSmartagFlowLogsLog:getSmartagFlowLogsLog"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"type":"string"}},"required":["ids","logs","names","id"],"type":"object"}},"alicloud:scdn/getDomains:getDomains":{"description":"This data source provides the Scdn Domains of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.131.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst nameRegex = alicloud.scdn.getDomains({\n    nameRegex: \"^my-Domain\",\n});\nexport const scdnDomainId = nameRegex.then(nameRegex =\u003e nameRegex.domains?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nname_regex = alicloud.scdn.get_domains(name_regex=\"^my-Domain\")\npulumi.export(\"scdnDomainId\", name_regex.domains[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var nameRegex = AliCloud.Scdn.GetDomains.Invoke(new()\n    {\n        NameRegex = \"^my-Domain\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"scdnDomainId\"] = nameRegex.Apply(getDomainsResult =\u003e getDomainsResult.Domains[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/scdn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnameRegex, err := scdn.GetDomains(ctx, \u0026scdn.GetDomainsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Domain\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"scdnDomainId\", nameRegex.Domains[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.scdn.ScdnFunctions;\nimport com.pulumi.alicloud.scdn.inputs.GetDomainsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var nameRegex = ScdnFunctions.getDomains(GetDomainsArgs.builder()\n            .nameRegex(\"^my-Domain\")\n            .build());\n\n        ctx.export(\"scdnDomainId\", nameRegex.domains()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  nameRegex:\n    fn::invoke:\n      function: alicloud:scdn:getDomains\n      arguments:\n        nameRegex: ^my-Domain\noutputs:\n  scdnDomainId: ${nameRegex.domains[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDomains.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Domain IDs. Its element value is same as Domain Name.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Domain name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The Resource Group ID.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"\"checkFailed\"\" pulumi-lang-dotnet=\"\"CheckFailed\"\" pulumi-lang-go=\"\"checkFailed\"\" pulumi-lang-python=\"\"check_failed\"\" pulumi-lang-yaml=\"\"checkFailed\"\" pulumi-lang-java=\"\"checkFailed\"\"\u003e\"check_failed\"\u003c/span\u003e, \"checking\", \u003cspan pulumi-lang-nodejs=\"\"configureFailed\"\" pulumi-lang-dotnet=\"\"ConfigureFailed\"\" pulumi-lang-go=\"\"configureFailed\"\" pulumi-lang-python=\"\"configure_failed\"\" pulumi-lang-yaml=\"\"configureFailed\"\" pulumi-lang-java=\"\"configureFailed\"\"\u003e\"configure_failed\"\u003c/span\u003e, \"configuring\", \"offline\", \"online\".\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDomains.\n","properties":{"domains":{"items":{"$ref":"#/types/alicloud:scdn/getDomainsDomain:getDomainsDomain"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"},"status":{"type":"string"}},"required":["domains","ids","names","id"],"type":"object"}},"alicloud:schedulerx/getNamespaces:getNamespaces":{"description":"This data source provides the Schedulerx Namespaces of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.173.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.schedulerx.getNamespaces({});\nexport const schedulerxNamespaceId1 = ids.then(ids =\u003e ids.namespaces?.[0]?.id);\nconst nameRegex = alicloud.schedulerx.getNamespaces({\n    nameRegex: \"^my-Namespace\",\n});\nexport const schedulerxNamespaceId2 = nameRegex.then(nameRegex =\u003e nameRegex.namespaces?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.schedulerx.get_namespaces()\npulumi.export(\"schedulerxNamespaceId1\", ids.namespaces[0].id)\nname_regex = alicloud.schedulerx.get_namespaces(name_regex=\"^my-Namespace\")\npulumi.export(\"schedulerxNamespaceId2\", name_regex.namespaces[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.SchedulerX.GetNamespaces.Invoke();\n\n    var nameRegex = AliCloud.SchedulerX.GetNamespaces.Invoke(new()\n    {\n        NameRegex = \"^my-Namespace\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"schedulerxNamespaceId1\"] = ids.Apply(getNamespacesResult =\u003e getNamespacesResult.Namespaces[0]?.Id),\n        [\"schedulerxNamespaceId2\"] = nameRegex.Apply(getNamespacesResult =\u003e getNamespacesResult.Namespaces[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/schedulerx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := schedulerx.GetNamespaces(ctx, \u0026schedulerx.GetNamespacesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"schedulerxNamespaceId1\", ids.Namespaces[0].Id)\n\t\tnameRegex, err := schedulerx.GetNamespaces(ctx, \u0026schedulerx.GetNamespacesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Namespace\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"schedulerxNamespaceId2\", nameRegex.Namespaces[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.schedulerx.SchedulerxFunctions;\nimport com.pulumi.alicloud.schedulerx.inputs.GetNamespacesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = SchedulerxFunctions.getNamespaces(GetNamespacesArgs.builder()\n            .build());\n\n        ctx.export(\"schedulerxNamespaceId1\", ids.namespaces()[0].id());\n        final var nameRegex = SchedulerxFunctions.getNamespaces(GetNamespacesArgs.builder()\n            .nameRegex(\"^my-Namespace\")\n            .build());\n\n        ctx.export(\"schedulerxNamespaceId2\", nameRegex.namespaces()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:schedulerx:getNamespaces\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:schedulerx:getNamespaces\n      arguments:\n        nameRegex: ^my-Namespace\noutputs:\n  schedulerxNamespaceId1: ${ids.namespaces[0].id}\n  schedulerxNamespaceId2: ${nameRegex.namespaces[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNamespaces.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Namespace IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Namespace name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNamespaces.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"namespaces":{"items":{"$ref":"#/types/alicloud:schedulerx/getNamespacesNamespace:getNamespacesNamespace"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","names","namespaces","id"],"type":"object"}},"alicloud:sddp/getConfigs:getConfigs":{"description":"This data source provides the Sddp Configs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.133.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst defaultConfig = new alicloud.sddp.Config(\"default\", {\n    code: \"access_failed_cnt\",\n    value: \"10\",\n});\nconst _default = alicloud.sddp.getConfigsOutput({\n    ids: [defaultConfig.id],\n    outputFile: \"./t.json\",\n});\nexport const sddpConfigId = _default.apply(_default =\u003e _default.ids);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault_config = alicloud.sddp.Config(\"default\",\n    code=\"access_failed_cnt\",\n    value=\"10\")\ndefault = alicloud.sddp.get_configs_output(ids=[default_config.id],\n    output_file=\"./t.json\")\npulumi.export(\"sddpConfigId\", default.ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultConfig = new AliCloud.Sddp.Config(\"default\", new()\n    {\n        Code = \"access_failed_cnt\",\n        Value = \"10\",\n    });\n\n    var @default = AliCloud.Sddp.GetConfigs.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultConfig.Id,\n        },\n        OutputFile = \"./t.json\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"sddpConfigId\"] = @default.Apply(@default =\u003e @default.Apply(getConfigsResult =\u003e getConfigsResult.Ids)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sddp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ndefaultConfig, err := sddp.NewConfig(ctx, \"default\", \u0026sddp.ConfigArgs{\nCode: pulumi.String(\"access_failed_cnt\"),\nValue: pulumi.String(\"10\"),\n})\nif err != nil {\nreturn err\n}\n_default := sddp.GetConfigsOutput(ctx, sddp.GetConfigsOutputArgs{\nIds: pulumi.StringArray{\ndefaultConfig.ID(),\n},\nOutputFile: pulumi.String(\"./t.json\"),\n}, nil);\nctx.Export(\"sddpConfigId\", _default.ApplyT(func(_default sddp.GetConfigsResult) (interface{}, error) {\nreturn _default.Ids, nil\n}).(pulumi.Interface{}Output))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sddp.Config;\nimport com.pulumi.alicloud.sddp.ConfigArgs;\nimport com.pulumi.alicloud.sddp.SddpFunctions;\nimport com.pulumi.alicloud.sddp.inputs.GetConfigsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultConfig = new Config(\"defaultConfig\", ConfigArgs.builder()\n            .code(\"access_failed_cnt\")\n            .value(\"10\")\n            .build());\n\n        final var default = SddpFunctions.getConfigs(GetConfigsArgs.builder()\n            .ids(defaultConfig.id())\n            .outputFile(\"./t.json\")\n            .build());\n\n        ctx.export(\"sddpConfigId\", default_.applyValue(_default_ -\u003e _default_.ids()));\n    }\n}\n```\n```yaml\nresources:\n  defaultConfig:\n    type: alicloud:sddp:Config\n    name: default\n    properties:\n      code: access_failed_cnt\n      value: 10\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:sddp:getConfigs\n      arguments:\n        ids:\n          - ${defaultConfig.id}\n        outputFile: ./t.json\noutputs:\n  sddpConfigId: ${default.ids}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getConfigs.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Config IDs.\n"},"lang":{"type":"string"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getConfigs.\n","properties":{"configs":{"description":"A list of Sddp Configs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:sddp/getConfigsConfig:getConfigsConfig"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"lang":{"type":"string"},"outputFile":{"type":"string"}},"required":["configs","ids","id"],"type":"object"}},"alicloud:sddp/getDataLimits:getDataLimits":{"description":"This data source provides the Sddp Data Limits of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.159.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.sddp.getDataLimits({});\nexport const sddpDataLimitId1 = ids.then(ids =\u003e ids.limits?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.sddp.get_data_limits()\npulumi.export(\"sddpDataLimitId1\", ids.limits[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Sddp.GetDataLimits.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"sddpDataLimitId1\"] = ids.Apply(getDataLimitsResult =\u003e getDataLimitsResult.Limits[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sddp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := sddp.GetDataLimits(ctx, \u0026sddp.GetDataLimitsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"sddpDataLimitId1\", ids.Limits[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sddp.SddpFunctions;\nimport com.pulumi.alicloud.sddp.inputs.GetDataLimitsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = SddpFunctions.getDataLimits(GetDataLimitsArgs.builder()\n            .build());\n\n        ctx.export(\"sddpDataLimitId1\", ids.limits()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:sddp:getDataLimits\n      arguments: {}\noutputs:\n  sddpDataLimitId1: ${ids.limits[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDataLimits.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Data Limit IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"parentId":{"type":"string","description":"The parent asset ID of the data asset.\n"},"resourceType":{"type":"string","description":"The type of the service to which the data asset belongs. Valid values: `MaxCompute`, `OSS`, `RDS`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDataLimits.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"limits":{"description":"A list of Sddp Data Limits. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:sddp/getDataLimitsLimit:getDataLimitsLimit"},"type":"array"},"outputFile":{"type":"string"},"parentId":{"description":"The ID of the data asset.\n","type":"string"},"resourceType":{"description":"The type of the service to which the data asset belongs.\n","type":"string"}},"required":["ids","limits","id"],"type":"object"}},"alicloud:sddp/getInstances:getInstances":{"description":"This data source provides the Sddp Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.136.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.sddp.getInstances({});\nexport const sddpInstanceId = _default.then(_default =\u003e _default.instances?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.sddp.get_instances()\npulumi.export(\"sddpInstanceId\", default.instances[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Sddp.GetInstances.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"sddpInstanceId\"] = @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0])),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sddp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := sddp.GetInstances(ctx, \u0026sddp.GetInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"sddpInstanceId\", _default.Instances[0])\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sddp.SddpFunctions;\nimport com.pulumi.alicloud.sddp.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = SddpFunctions.getInstances(GetInstancesArgs.builder()\n            .build());\n\n        ctx.export(\"sddpInstanceId\", default_.instances()[0]);\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:sddp:getInstances\n      arguments: {}\noutputs:\n  sddpInstanceId: ${default.instances[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instances":{"description":"A list of Sddp Instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:sddp/getInstancesInstance:getInstancesInstance"},"type":"array"},"outputFile":{"type":"string"}},"required":["instances","id"],"type":"object"}},"alicloud:sddp/getRules:getRules":{"description":"This data source provides the Sddp Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.132.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst defaultRule = new alicloud.sddp.Rule(\"default\", {\n    category: 0,\n    content: \"content\",\n    ruleName: \"rule_name\",\n    riskLevelId: \"4\",\n    productCode: \"ODPS\",\n});\nconst _default = alicloud.sddp.getRulesOutput({\n    ids: [defaultRule.id],\n});\nexport const sddpRuleId = _default.apply(_default =\u003e _default.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault_rule = alicloud.sddp.Rule(\"default\",\n    category=0,\n    content=\"content\",\n    rule_name=\"rule_name\",\n    risk_level_id=\"4\",\n    product_code=\"ODPS\")\ndefault = alicloud.sddp.get_rules_output(ids=[default_rule.id])\npulumi.export(\"sddpRuleId\", default.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultRule = new AliCloud.Sddp.Rule(\"default\", new()\n    {\n        Category = 0,\n        Content = \"content\",\n        RuleName = \"rule_name\",\n        RiskLevelId = \"4\",\n        ProductCode = \"ODPS\",\n    });\n\n    var @default = AliCloud.Sddp.GetRules.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultRule.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"sddpRuleId\"] = @default.Apply(@default =\u003e @default.Apply(getRulesResult =\u003e getRulesResult.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sddp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ndefaultRule, err := sddp.NewRule(ctx, \"default\", \u0026sddp.RuleArgs{\nCategory: pulumi.Int(0),\nContent: pulumi.String(\"content\"),\nRuleName: pulumi.String(\"rule_name\"),\nRiskLevelId: pulumi.String(\"4\"),\nProductCode: pulumi.String(\"ODPS\"),\n})\nif err != nil {\nreturn err\n}\n_default := sddp.GetRulesOutput(ctx, sddp.GetRulesOutputArgs{\nIds: pulumi.StringArray{\ndefaultRule.ID(),\n},\n}, nil);\nctx.Export(\"sddpRuleId\", _default.ApplyT(func(_default sddp.GetRulesResult) (*string, error) {\nreturn \u0026default.Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.sddp.Rule;\nimport com.pulumi.alicloud.sddp.RuleArgs;\nimport com.pulumi.alicloud.sddp.SddpFunctions;\nimport com.pulumi.alicloud.sddp.inputs.GetRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultRule = new Rule(\"defaultRule\", RuleArgs.builder()\n            .category(0)\n            .content(\"content\")\n            .ruleName(\"rule_name\")\n            .riskLevelId(\"4\")\n            .productCode(\"ODPS\")\n            .build());\n\n        final var default = SddpFunctions.getRules(GetRulesArgs.builder()\n            .ids(defaultRule.id())\n            .build());\n\n        ctx.export(\"sddpRuleId\", default_.applyValue(_default_ -\u003e _default_.id()));\n    }\n}\n```\n```yaml\nresources:\n  defaultRule:\n    type: alicloud:sddp:Rule\n    name: default\n    properties:\n      category: '0'\n      content: content\n      ruleName: rule_name\n      riskLevelId: '4'\n      productCode: ODPS\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:sddp:getRules\n      arguments:\n        ids:\n          - ${defaultRule.id}\noutputs:\n  sddpRuleId: ${default.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRules.\n","properties":{"category":{"type":"integer","description":"Sensitive Data Identification Rules for the Type of. Valid values:\n"},"contentCategory":{"type":"string","description":"The Content Classification.\n"},"customType":{"type":"integer","description":"Sensitive Data Identification Rules of Type. Valid values:\n"},"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Rule IDs.\n"},"name":{"type":"string","description":"The name of rule.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"productId":{"type":"string","description":"Product ID. Valid values:\n"},"riskLevelId":{"type":"string","description":"Sensitive Data Identification Rules of Risk Level ID. Valid values:\n"},"ruleType":{"type":"integer","description":"Rule Type.\n"},"status":{"type":"string","description":"Sensitive Data Identification Rules Detection State of.\n"},"warnLevel":{"type":"integer","description":"The Level of Risk. Valid values:\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRules.\n","properties":{"category":{"description":"Sensitive Data Identification Rules for the Type of.\n","type":"integer"},"contentCategory":{"description":"The Content Classification.\n","type":"string"},"customType":{"description":"Sensitive Data Identification Rules of Type. 0: the Built-in 1: The User-Defined.\n","type":"integer"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Rule names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"productId":{"description":"Product ID.\n","type":"string"},"riskLevelId":{"description":"Sensitive Data Identification Rules of Risk Level ID. Valid values:1:S1, Weak Risk Level. 2:S2, Medium Risk Level. 3:S3 High Risk Level. 4:S4, the Highest Risk Level.\n","type":"string"},"ruleType":{"type":"integer"},"rules":{"description":"A list of Sddp Rules. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:sddp/getRulesRule:getRulesRule"},"type":"array"},"status":{"description":"Sensitive Data Identification Rules Detection State of.\n","type":"string"},"warnLevel":{"description":"The Level of Risk.\n","type":"integer"}},"required":["ids","names","rules","id"],"type":"object"}},"alicloud:securitycenter/getGroups:getGroups":{"description":"This data source provides the Security Center Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.133.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst nameRegex = alicloud.securitycenter.getGroups({\n    nameRegex: \"^my-Group\",\n});\nexport const securityCenterGroups = nameRegex.then(nameRegex =\u003e nameRegex.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nname_regex = alicloud.securitycenter.get_groups(name_regex=\"^my-Group\")\npulumi.export(\"securityCenterGroups\", name_regex.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var nameRegex = AliCloud.SecurityCenter.GetGroups.Invoke(new()\n    {\n        NameRegex = \"^my-Group\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"securityCenterGroups\"] = nameRegex.Apply(getGroupsResult =\u003e getGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/securitycenter\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnameRegex, err := securitycenter.GetGroups(ctx, \u0026securitycenter.GetGroupsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Group\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"securityCenterGroups\", nameRegex.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.securitycenter.SecuritycenterFunctions;\nimport com.pulumi.alicloud.securitycenter.inputs.GetGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var nameRegex = SecuritycenterFunctions.getGroups(GetGroupsArgs.builder()\n            .nameRegex(\"^my-Group\")\n            .build());\n\n        ctx.export(\"securityCenterGroups\", nameRegex.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  nameRegex:\n    fn::invoke:\n      function: alicloud:securitycenter:getGroups\n      arguments:\n        nameRegex: ^my-Group\noutputs:\n  securityCenterGroups: ${nameRegex.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Group IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGroups.\n","properties":{"groups":{"items":{"$ref":"#/types/alicloud:securitycenter/getGroupsGroup:getGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:selectdb/getDbClusters:getDbClusters":{"description":"This data source provides the SelectDB DBCluster of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.229.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultDbInstance = new alicloud.selectdb.DbInstance(\"default\", {\n    dbInstanceClass: \"selectdb.xlarge\",\n    dbInstanceDescription: name,\n    cacheSize: 200,\n    paymentType: \"PayAsYouGo\",\n    engineMinorVersion: \"3.0.12\",\n    vpcId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.vpcId),\n    zoneId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.zoneId),\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.id),\n});\nconst defaultDbCluster = new alicloud.selectdb.DbCluster(\"default\", {\n    dbInstanceId: defaultDbInstance.id,\n    dbClusterDescription: name,\n    dbClusterClass: \"selectdb.2xlarge\",\n    cacheSize: 400,\n    paymentType: \"PayAsYouGo\",\n});\nconst defaultGetDbClusters = alicloud.selectdb.getDbClustersOutput({\n    ids: [defaultDbCluster.id],\n});\nexport const dbCluster = defaultGetDbClusters.apply(defaultGetDbClusters =\u003e defaultGetDbClusters.ids?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_db_instance = alicloud.selectdb.DbInstance(\"default\",\n    db_instance_class=\"selectdb.xlarge\",\n    db_instance_description=name,\n    cache_size=200,\n    payment_type=\"PayAsYouGo\",\n    engine_minor_version=\"3.0.12\",\n    vpc_id=default_get_switches.vswitches[0].vpc_id,\n    zone_id=default_get_switches.vswitches[0].zone_id,\n    vswitch_id=default_get_switches.vswitches[0].id)\ndefault_db_cluster = alicloud.selectdb.DbCluster(\"default\",\n    db_instance_id=default_db_instance.id,\n    db_cluster_description=name,\n    db_cluster_class=\"selectdb.2xlarge\",\n    cache_size=400,\n    payment_type=\"PayAsYouGo\")\ndefault_get_db_clusters = alicloud.selectdb.get_db_clusters_output(ids=[default_db_cluster.id])\npulumi.export(\"dbCluster\", default_get_db_clusters.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultDbInstance = new AliCloud.SelectDB.DbInstance(\"default\", new()\n    {\n        DbInstanceClass = \"selectdb.xlarge\",\n        DbInstanceDescription = name,\n        CacheSize = 200,\n        PaymentType = \"PayAsYouGo\",\n        EngineMinorVersion = \"3.0.12\",\n        VpcId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.VpcId),\n        ZoneId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.ZoneId),\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.Id),\n    });\n\n    var defaultDbCluster = new AliCloud.SelectDB.DbCluster(\"default\", new()\n    {\n        DbInstanceId = defaultDbInstance.Id,\n        DbClusterDescription = name,\n        DbClusterClass = \"selectdb.2xlarge\",\n        CacheSize = 400,\n        PaymentType = \"PayAsYouGo\",\n    });\n\n    var defaultGetDbClusters = AliCloud.SelectDB.GetDbClusters.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultDbCluster.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dbCluster\"] = defaultGetDbClusters.Apply(getDbClustersResult =\u003e getDbClustersResult.Ids[0]),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/selectdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDbInstance, err := selectdb.NewDbInstance(ctx, \"default\", \u0026selectdb.DbInstanceArgs{\n\t\t\tDbInstanceClass:       pulumi.String(\"selectdb.xlarge\"),\n\t\t\tDbInstanceDescription: pulumi.String(name),\n\t\t\tCacheSize:             pulumi.Int(200),\n\t\t\tPaymentType:           pulumi.String(\"PayAsYouGo\"),\n\t\t\tEngineMinorVersion:    pulumi.String(\"3.0.12\"),\n\t\t\tVpcId:                 pulumi.String(defaultGetSwitches.Vswitches[0].VpcId),\n\t\t\tZoneId:                pulumi.String(defaultGetSwitches.Vswitches[0].ZoneId),\n\t\t\tVswitchId:             pulumi.String(defaultGetSwitches.Vswitches[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDbCluster, err := selectdb.NewDbCluster(ctx, \"default\", \u0026selectdb.DbClusterArgs{\n\t\t\tDbInstanceId:         defaultDbInstance.ID(),\n\t\t\tDbClusterDescription: pulumi.String(name),\n\t\t\tDbClusterClass:       pulumi.String(\"selectdb.2xlarge\"),\n\t\t\tCacheSize:            pulumi.Int(400),\n\t\t\tPaymentType:          pulumi.String(\"PayAsYouGo\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetDbClusters := selectdb.GetDbClustersOutput(ctx, selectdb.GetDbClustersOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultDbCluster.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"dbCluster\", defaultGetDbClusters.ApplyT(func(defaultGetDbClusters selectdb.GetDbClustersResult) (*string, error) {\n\t\t\treturn \u0026defaultGetDbClusters.Ids[0], nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.selectdb.DbInstance;\nimport com.pulumi.alicloud.selectdb.DbInstanceArgs;\nimport com.pulumi.alicloud.selectdb.DbCluster;\nimport com.pulumi.alicloud.selectdb.DbClusterArgs;\nimport com.pulumi.alicloud.selectdb.SelectdbFunctions;\nimport com.pulumi.alicloud.selectdb.inputs.GetDbClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultDbInstance = new DbInstance(\"defaultDbInstance\", DbInstanceArgs.builder()\n            .dbInstanceClass(\"selectdb.xlarge\")\n            .dbInstanceDescription(name)\n            .cacheSize(200)\n            .paymentType(\"PayAsYouGo\")\n            .engineMinorVersion(\"3.0.12\")\n            .vpcId(defaultGetSwitches.vswitches()[0].vpcId())\n            .zoneId(defaultGetSwitches.vswitches()[0].zoneId())\n            .vswitchId(defaultGetSwitches.vswitches()[0].id())\n            .build());\n\n        var defaultDbCluster = new DbCluster(\"defaultDbCluster\", DbClusterArgs.builder()\n            .dbInstanceId(defaultDbInstance.id())\n            .dbClusterDescription(name)\n            .dbClusterClass(\"selectdb.2xlarge\")\n            .cacheSize(400)\n            .paymentType(\"PayAsYouGo\")\n            .build());\n\n        final var defaultGetDbClusters = SelectdbFunctions.getDbClusters(GetDbClustersArgs.builder()\n            .ids(defaultDbCluster.id())\n            .build());\n\n        ctx.export(\"dbCluster\", defaultGetDbClusters.applyValue(_defaultGetDbClusters -\u003e _defaultGetDbClusters.ids()[0]));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  defaultDbInstance:\n    type: alicloud:selectdb:DbInstance\n    name: default\n    properties:\n      dbInstanceClass: selectdb.xlarge\n      dbInstanceDescription: ${name}\n      cacheSize: 200\n      paymentType: PayAsYouGo\n      engineMinorVersion: 3.0.12\n      vpcId: ${defaultGetSwitches.vswitches[0].vpcId}\n      zoneId: ${defaultGetSwitches.vswitches[0].zoneId}\n      vswitchId: ${defaultGetSwitches.vswitches[0].id}\n  defaultDbCluster:\n    type: alicloud:selectdb:DbCluster\n    name: default\n    properties:\n      dbInstanceId: ${defaultDbInstance.id}\n      dbClusterDescription: ${name}\n      dbClusterClass: selectdb.2xlarge\n      cacheSize: 400\n      paymentType: PayAsYouGo\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n  defaultGetDbClusters:\n    fn::invoke:\n      function: alicloud:selectdb:getDbClusters\n      arguments:\n        ids:\n          - ${defaultDbCluster.id}\noutputs:\n  dbCluster: ${defaultGetDbClusters.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDbClusters.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of DBCluster IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDbClusters.\n","properties":{"clusters":{"description":"A list of SelectDB DBClusters. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:selectdb/getDbClustersCluster:getDbClustersCluster"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["clusters","ids","id"],"type":"object"}},"alicloud:selectdb/getDbInstances:getDbInstances":{"description":"This data source provides the SelectDB DBInstance of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.229.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform_example\";\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = Promise.all([defaultGetNetworks, _default]).then(([defaultGetNetworks, _default]) =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: _default.zones?.[0]?.id,\n}));\nconst defaultDbInstance = new alicloud.selectdb.DbInstance(\"default\", {\n    dbInstanceClass: \"selectdb.xlarge\",\n    dbInstanceDescription: name,\n    cacheSize: 200,\n    paymentType: \"PayAsYouGo\",\n    engineMinorVersion: \"3.0.12\",\n    vpcId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.vpcId),\n    zoneId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.zoneId),\n    vswitchId: defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.vswitches?.[0]?.id),\n});\nconst defaultGetDbInstances = alicloud.selectdb.getDbInstancesOutput({\n    ids: [defaultDbInstance.id],\n});\nexport const dbInstance = defaultGetDbInstances.apply(defaultGetDbInstances =\u003e defaultGetDbInstances.ids?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform_example\"\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=default.zones[0].id)\ndefault_db_instance = alicloud.selectdb.DbInstance(\"default\",\n    db_instance_class=\"selectdb.xlarge\",\n    db_instance_description=name,\n    cache_size=200,\n    payment_type=\"PayAsYouGo\",\n    engine_minor_version=\"3.0.12\",\n    vpc_id=default_get_switches.vswitches[0].vpc_id,\n    zone_id=default_get_switches.vswitches[0].zone_id,\n    vswitch_id=default_get_switches.vswitches[0].id)\ndefault_get_db_instances = alicloud.selectdb.get_db_instances_output(ids=[default_db_instance.id])\npulumi.export(\"dbInstance\", default_get_db_instances.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform_example\";\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n    });\n\n    var defaultDbInstance = new AliCloud.SelectDB.DbInstance(\"default\", new()\n    {\n        DbInstanceClass = \"selectdb.xlarge\",\n        DbInstanceDescription = name,\n        CacheSize = 200,\n        PaymentType = \"PayAsYouGo\",\n        EngineMinorVersion = \"3.0.12\",\n        VpcId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.VpcId),\n        ZoneId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.ZoneId),\n        VswitchId = defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Vswitches[0]?.Id),\n    });\n\n    var defaultGetDbInstances = AliCloud.SelectDB.GetDbInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultDbInstance.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dbInstance\"] = defaultGetDbInstances.Apply(getDbInstancesResult =\u003e getDbInstancesResult.Ids[0]),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/selectdb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform_example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tdefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\n\t\t\tVpcId:  pulumi.StringRef(defaultGetNetworks.Ids[0]),\n\t\t\tZoneId: pulumi.StringRef(_default.Zones[0].Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultDbInstance, err := selectdb.NewDbInstance(ctx, \"default\", \u0026selectdb.DbInstanceArgs{\n\t\t\tDbInstanceClass:       pulumi.String(\"selectdb.xlarge\"),\n\t\t\tDbInstanceDescription: pulumi.String(name),\n\t\t\tCacheSize:             pulumi.Int(200),\n\t\t\tPaymentType:           pulumi.String(\"PayAsYouGo\"),\n\t\t\tEngineMinorVersion:    pulumi.String(\"3.0.12\"),\n\t\t\tVpcId:                 pulumi.String(defaultGetSwitches.Vswitches[0].VpcId),\n\t\t\tZoneId:                pulumi.String(defaultGetSwitches.Vswitches[0].ZoneId),\n\t\t\tVswitchId:             pulumi.String(defaultGetSwitches.Vswitches[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetDbInstances := selectdb.GetDbInstancesOutput(ctx, selectdb.GetDbInstancesOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultDbInstance.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"dbInstance\", defaultGetDbInstances.ApplyT(func(defaultGetDbInstances selectdb.GetDbInstancesResult) (*string, error) {\n\t\t\treturn \u0026defaultGetDbInstances.Ids[0], nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.selectdb.DbInstance;\nimport com.pulumi.alicloud.selectdb.DbInstanceArgs;\nimport com.pulumi.alicloud.selectdb.SelectdbFunctions;\nimport com.pulumi.alicloud.selectdb.inputs.GetDbInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"terraform_example\");\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(default_.zones()[0].id())\n            .build());\n\n        var defaultDbInstance = new DbInstance(\"defaultDbInstance\", DbInstanceArgs.builder()\n            .dbInstanceClass(\"selectdb.xlarge\")\n            .dbInstanceDescription(name)\n            .cacheSize(200)\n            .paymentType(\"PayAsYouGo\")\n            .engineMinorVersion(\"3.0.12\")\n            .vpcId(defaultGetSwitches.vswitches()[0].vpcId())\n            .zoneId(defaultGetSwitches.vswitches()[0].zoneId())\n            .vswitchId(defaultGetSwitches.vswitches()[0].id())\n            .build());\n\n        final var defaultGetDbInstances = SelectdbFunctions.getDbInstances(GetDbInstancesArgs.builder()\n            .ids(defaultDbInstance.id())\n            .build());\n\n        ctx.export(\"dbInstance\", defaultGetDbInstances.applyValue(_defaultGetDbInstances -\u003e _defaultGetDbInstances.ids()[0]));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform_example\nresources:\n  defaultDbInstance:\n    type: alicloud:selectdb:DbInstance\n    name: default\n    properties:\n      dbInstanceClass: selectdb.xlarge\n      dbInstanceDescription: ${name}\n      cacheSize: 200\n      paymentType: PayAsYouGo\n      engineMinorVersion: 3.0.12\n      vpcId: ${defaultGetSwitches.vswitches[0].vpcId}\n      zoneId: ${defaultGetSwitches.vswitches[0].zoneId}\n      vswitchId: ${defaultGetSwitches.vswitches[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetNetworks:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        nameRegex: ^default-NODELETING$\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        vpcId: ${defaultGetNetworks.ids[0]}\n        zoneId: ${default.zones[0].id}\n  defaultGetDbInstances:\n    fn::invoke:\n      function: alicloud:selectdb:getDbInstances\n      arguments:\n        ids:\n          - ${defaultDbInstance.id}\noutputs:\n  dbInstance: ${defaultGetDbInstances.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDbInstances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of DBInstance IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource. Used for instance searching.\n- Key: It can be up to 64 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It cannot be a null string.\n- Value: It can be up to 128 characters in length. It cannot begin with \"aliyun\", \"acs:\", \"http://\", or \"https://\". It can be a null string.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDbInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instances":{"description":"A list of SelectDB DBInstance. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:selectdb/getDbInstancesInstance:getDbInstancesInstance"},"type":"array"},"outputFile":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["ids","instances","id"],"type":"object"}},"alicloud:servicecatalog/getEndUserProducts:getEndUserProducts":{"description":"This data source provides Service Catalog End User Product available to the user.[What is End User Product](https://www.alibabacloud.com/help/en/servicecatalog/latest/api-servicecatalog-2021-09-01-listproductsasenduser)\n\n\u003e **NOTE:** Available since v1.197.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.servicecatalog.getEndUserProducts({\n    nameRegex: \"ram模板创建\",\n});\nexport const alicloudServiceCatalogEndUserProductExampleId = _default.then(_default =\u003e _default.endUserProducts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.servicecatalog.get_end_user_products(name_regex=\"ram模板创建\")\npulumi.export(\"alicloudServiceCatalogEndUserProductExampleId\", default.end_user_products[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ServiceCatalog.GetEndUserProducts.Invoke(new()\n    {\n        NameRegex = \"ram模板创建\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudServiceCatalogEndUserProductExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getEndUserProductsResult =\u003e getEndUserProductsResult.EndUserProducts[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/servicecatalog\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := servicecatalog.GetEndUserProducts(ctx, \u0026servicecatalog.GetEndUserProductsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"ram模板创建\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudServiceCatalogEndUserProductExampleId\", _default.EndUserProducts[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.servicecatalog.ServicecatalogFunctions;\nimport com.pulumi.alicloud.servicecatalog.inputs.GetEndUserProductsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ServicecatalogFunctions.getEndUserProducts(GetEndUserProductsArgs.builder()\n            .nameRegex(\"ram模板创建\")\n            .build());\n\n        ctx.export(\"alicloudServiceCatalogEndUserProductExampleId\", default_.endUserProducts()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:servicecatalog:getEndUserProducts\n      arguments:\n        nameRegex: ram模板创建\noutputs:\n  alicloudServiceCatalogEndUserProductExampleId: ${default.endUserProducts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEndUserProducts.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of End User Product IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by product name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sortBy":{"type":"string","description":"The field that is used to sort the queried data. The value is fixed as CreateTime, which specifies the creation time of products.\n"},"sortOrder":{"type":"string","description":"The order in which you want to sort the queried data. Valid values: `Asc`, `Desc`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEndUserProducts.\n","properties":{"endUserProducts":{"description":"A list of End User Product Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:servicecatalog/getEndUserProductsEndUserProduct:getEndUserProductsEndUserProduct"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of End User Product IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sortBy":{"type":"string"},"sortOrder":{"type":"string"}},"required":["endUserProducts","ids","id"],"type":"object"}},"alicloud:servicecatalog/getLaunchOptions:getLaunchOptions":{"description":"This data source provides Service Catalog Launch Option available to the user. [What is Launch Option](https://www.alibabacloud.com/help/en/service-catalog/developer-reference/api-servicecatalog-2021-09-01-listlaunchoptions).\n\n\u003e **NOTE:** Available since v1.196.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.servicecatalog.getEndUserProducts({\n    nameRegex: \"ram模板创建\",\n});\nconst defaultGetLaunchOptions = alicloud.servicecatalog.getLaunchOptions({\n    productId: \"data.alicloud_service_catalog_end_user_products.default.end_user_products.0.id\",\n});\nexport const alicloudServiceCatalogLaunchOptionExampleId = defaultGetLaunchOptions.then(defaultGetLaunchOptions =\u003e defaultGetLaunchOptions.launchOptions?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.servicecatalog.get_end_user_products(name_regex=\"ram模板创建\")\ndefault_get_launch_options = alicloud.servicecatalog.get_launch_options(product_id=\"data.alicloud_service_catalog_end_user_products.default.end_user_products.0.id\")\npulumi.export(\"alicloudServiceCatalogLaunchOptionExampleId\", default_get_launch_options.launch_options[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ServiceCatalog.GetEndUserProducts.Invoke(new()\n    {\n        NameRegex = \"ram模板创建\",\n    });\n\n    var defaultGetLaunchOptions = AliCloud.ServiceCatalog.GetLaunchOptions.Invoke(new()\n    {\n        ProductId = \"data.alicloud_service_catalog_end_user_products.default.end_user_products.0.id\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudServiceCatalogLaunchOptionExampleId\"] = defaultGetLaunchOptions.Apply(getLaunchOptionsResult =\u003e getLaunchOptionsResult.LaunchOptions[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/servicecatalog\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := servicecatalog.GetEndUserProducts(ctx, \u0026servicecatalog.GetEndUserProductsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"ram模板创建\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetLaunchOptions, err := servicecatalog.GetLaunchOptions(ctx, \u0026servicecatalog.GetLaunchOptionsArgs{\n\t\t\tProductId: \"data.alicloud_service_catalog_end_user_products.default.end_user_products.0.id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudServiceCatalogLaunchOptionExampleId\", defaultGetLaunchOptions.LaunchOptions[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.servicecatalog.ServicecatalogFunctions;\nimport com.pulumi.alicloud.servicecatalog.inputs.GetEndUserProductsArgs;\nimport com.pulumi.alicloud.servicecatalog.inputs.GetLaunchOptionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ServicecatalogFunctions.getEndUserProducts(GetEndUserProductsArgs.builder()\n            .nameRegex(\"ram模板创建\")\n            .build());\n\n        final var defaultGetLaunchOptions = ServicecatalogFunctions.getLaunchOptions(GetLaunchOptionsArgs.builder()\n            .productId(\"data.alicloud_service_catalog_end_user_products.default.end_user_products.0.id\")\n            .build());\n\n        ctx.export(\"alicloudServiceCatalogLaunchOptionExampleId\", defaultGetLaunchOptions.launchOptions()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:servicecatalog:getEndUserProducts\n      arguments:\n        nameRegex: ram模板创建\n  defaultGetLaunchOptions:\n    fn::invoke:\n      function: alicloud:servicecatalog:getLaunchOptions\n      arguments:\n        productId: data.alicloud_service_catalog_end_user_products.default.end_user_products.0.id\noutputs:\n  alicloudServiceCatalogLaunchOptionExampleId: ${defaultGetLaunchOptions.launchOptions[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLaunchOptions.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Launch Option IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by portfolio name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"productId":{"type":"string","description":"Product ID.\n"}},"type":"object","required":["productId"]},"outputs":{"description":"A collection of values returned by getLaunchOptions.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"launchOptions":{"description":"(Available since v1.197.0) A list of Launch Option Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:servicecatalog/getLaunchOptionsLaunchOption:getLaunchOptionsLaunchOption"},"type":"array"},"nameRegex":{"type":"string"},"options":{"deprecationMessage":"Field 'options' has been deprecated from provider version 1.197.0.","description":"(Deprecated since v1.197.0) A list of Launch Option Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:servicecatalog/getLaunchOptionsOption:getLaunchOptionsOption"},"type":"array"},"outputFile":{"type":"string"},"productId":{"type":"string"}},"required":["ids","launchOptions","options","productId","id"],"type":"object"}},"alicloud:servicecatalog/getPortfolios:getPortfolios":{"description":"This data source provides Service Catalog Portfolio available to the user.[What is Portfolio](https://www.alibabacloud.com/help/en/service-catalog/developer-reference/api-servicecatalog-2021-09-01-createportfolio)\n\n\u003e **NOTE:** Available in 1.204.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.servicecatalog.getPortfolios({\n    ids: [defaultAlicloudServiceCatalogPortfolio.id],\n    nameRegex: defaultAlicloudServiceCatalogPortfolio.name,\n});\nexport const alicloudServiceCatalogPortfolioExampleId = _default.then(_default =\u003e _default.portfolios?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.servicecatalog.get_portfolios(ids=[default_alicloud_service_catalog_portfolio[\"id\"]],\n    name_regex=default_alicloud_service_catalog_portfolio[\"name\"])\npulumi.export(\"alicloudServiceCatalogPortfolioExampleId\", default.portfolios[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ServiceCatalog.GetPortfolios.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudServiceCatalogPortfolio.Id,\n        },\n        NameRegex = defaultAlicloudServiceCatalogPortfolio.Name,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudServiceCatalogPortfolioExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getPortfoliosResult =\u003e getPortfoliosResult.Portfolios[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/servicecatalog\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := servicecatalog.GetPortfolios(ctx, \u0026servicecatalog.GetPortfoliosArgs{\nIds: interface{}{\ndefaultAlicloudServiceCatalogPortfolio.Id,\n},\nNameRegex: pulumi.StringRef(defaultAlicloudServiceCatalogPortfolio.Name),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudServiceCatalogPortfolioExampleId\", _default.Portfolios[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.servicecatalog.ServicecatalogFunctions;\nimport com.pulumi.alicloud.servicecatalog.inputs.GetPortfoliosArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ServicecatalogFunctions.getPortfolios(GetPortfoliosArgs.builder()\n            .ids(defaultAlicloudServiceCatalogPortfolio.id())\n            .nameRegex(defaultAlicloudServiceCatalogPortfolio.name())\n            .build());\n\n        ctx.export(\"alicloudServiceCatalogPortfolioExampleId\", default_.portfolios()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:servicecatalog:getPortfolios\n      arguments:\n        ids:\n          - ${defaultAlicloudServiceCatalogPortfolio.id}\n        nameRegex: ${defaultAlicloudServiceCatalogPortfolio.name}\noutputs:\n  alicloudServiceCatalogPortfolioExampleId: ${default.portfolios[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPortfolios.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Portfolio IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"productId":{"type":"string","description":"The ID of the product.\n"},"scope":{"type":"string","description":"The query scope. Valid values: `Local`(default), `Import`, `All`.\n"},"sortBy":{"type":"string","description":"The field that is used to sort the queried data. The value is fixed as CreateTime, which specifies the creation time of product portfolios.\n"},"sortOrder":{"type":"string","description":"The order in which you want to sort the queried data. Valid values: `Asc`, `Desc`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPortfolios.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Portfolio IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Portfolios.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"portfolios":{"description":"A list of Portfolio Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:servicecatalog/getPortfoliosPortfolio:getPortfoliosPortfolio"},"type":"array"},"productId":{"type":"string"},"scope":{"type":"string"},"sortBy":{"type":"string"},"sortOrder":{"type":"string"}},"required":["ids","names","portfolios","id"],"type":"object"}},"alicloud:servicecatalog/getProductAsEndUsers:getProductAsEndUsers":{"description":"\u003e **DEPRECATED:** It has been deprecated from version `1.197.0`.\nPlease use new datasource\u003cspan pulumi-lang-nodejs=\" alicloud.servicecatalog.getEndUserProducts \" pulumi-lang-dotnet=\" alicloud.servicecatalog.getEndUserProducts \" pulumi-lang-go=\" servicecatalog.getEndUserProducts \" pulumi-lang-python=\" servicecatalog_get_end_user_products \" pulumi-lang-yaml=\" alicloud.servicecatalog.getEndUserProducts \" pulumi-lang-java=\" alicloud.servicecatalog.getEndUserProducts \"\u003e alicloud.servicecatalog.getEndUserProducts \u003c/span\u003einstead.\n\nThis data source provides Service Catalog Product As End User available to the user.[What is Product As End User](https://www.alibabacloud.com/help/en/service-catalog/developer-reference/api-servicecatalog-2021-09-01-listproductsasenduser)\n\n\u003e **NOTE:** Available in 1.196.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.servicecatalog.getProductAsEndUsers({\n    nameRegex: \"ram模板创建\",\n});\nexport const alicloudServiceCatalogProductAsEndUserExampleId = _default.then(_default =\u003e _default.users?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.servicecatalog.get_product_as_end_users(name_regex=\"ram模板创建\")\npulumi.export(\"alicloudServiceCatalogProductAsEndUserExampleId\", default.users[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ServiceCatalog.GetProductAsEndUsers.Invoke(new()\n    {\n        NameRegex = \"ram模板创建\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudServiceCatalogProductAsEndUserExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getProductAsEndUsersResult =\u003e getProductAsEndUsersResult.Users[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/servicecatalog\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := servicecatalog.GetProductAsEndUsers(ctx, \u0026servicecatalog.GetProductAsEndUsersArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"ram模板创建\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudServiceCatalogProductAsEndUserExampleId\", _default.Users[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.servicecatalog.ServicecatalogFunctions;\nimport com.pulumi.alicloud.servicecatalog.inputs.GetProductAsEndUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ServicecatalogFunctions.getProductAsEndUsers(GetProductAsEndUsersArgs.builder()\n            .nameRegex(\"ram模板创建\")\n            .build());\n\n        ctx.export(\"alicloudServiceCatalogProductAsEndUserExampleId\", default_.users()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:servicecatalog:getProductAsEndUsers\n      arguments:\n        nameRegex: ram模板创建\noutputs:\n  alicloudServiceCatalogProductAsEndUserExampleId: ${default.users[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProductAsEndUsers.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Product As End User IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by product name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"sortBy":{"type":"string"},"sortOrder":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getProductAsEndUsers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Product As End User IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"outputFile":{"type":"string"},"sortBy":{"type":"string"},"sortOrder":{"type":"string"},"users":{"description":"A list of Product As End User Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:servicecatalog/getProductAsEndUsersUser:getProductAsEndUsersUser"},"type":"array"}},"required":["ids","users","id"],"type":"object"}},"alicloud:servicecatalog/getProductVersions:getProductVersions":{"description":"This data source provides Service Catalog Product Version available to the user.[What is Product Version](https://www.alibabacloud.com/help/en/service-catalog/developer-reference/api-servicecatalog-2021-09-01-listproductversions)\n\n\u003e **NOTE:** Available in 1.196.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.servicecatalog.getProductVersions({\n    nameRegex: \"1.0.0\",\n    productId: \"prod-bp125x4k29wb7q\",\n});\nexport const alicloudServiceCatalogProductVersionExampleId = _default.then(_default =\u003e _default.productVersions?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.servicecatalog.get_product_versions(name_regex=\"1.0.0\",\n    product_id=\"prod-bp125x4k29wb7q\")\npulumi.export(\"alicloudServiceCatalogProductVersionExampleId\", default.product_versions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ServiceCatalog.GetProductVersions.Invoke(new()\n    {\n        NameRegex = \"1.0.0\",\n        ProductId = \"prod-bp125x4k29wb7q\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudServiceCatalogProductVersionExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getProductVersionsResult =\u003e getProductVersionsResult.ProductVersions[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/servicecatalog\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := servicecatalog.GetProductVersions(ctx, \u0026servicecatalog.GetProductVersionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"1.0.0\"),\n\t\t\tProductId: \"prod-bp125x4k29wb7q\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudServiceCatalogProductVersionExampleId\", _default.ProductVersions[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.servicecatalog.ServicecatalogFunctions;\nimport com.pulumi.alicloud.servicecatalog.inputs.GetProductVersionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ServicecatalogFunctions.getProductVersions(GetProductVersionsArgs.builder()\n            .nameRegex(\"1.0.0\")\n            .productId(\"prod-bp125x4k29wb7q\")\n            .build());\n\n        ctx.export(\"alicloudServiceCatalogProductVersionExampleId\", default_.productVersions()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:servicecatalog:getProductVersions\n      arguments:\n        nameRegex: 1.0.0\n        productId: prod-bp125x4k29wb7q\noutputs:\n  alicloudServiceCatalogProductVersionExampleId: ${default.productVersions[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProductVersions.\n","properties":{"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Product Version IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"productId":{"type":"string","description":"Product ID\n"}},"type":"object","required":["productId"]},"outputs":{"description":"A collection of values returned by getProductVersions.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Product Version IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Product Versions.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"productId":{"type":"string"},"productVersions":{"description":"A list of Product Version Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:servicecatalog/getProductVersionsProductVersion:getProductVersionsProductVersion"},"type":"array"},"versions":{"deprecationMessage":"Field 'versions' has been deprecated from provider version 1.197.0.","items":{"$ref":"#/types/alicloud:servicecatalog/getProductVersionsVersion:getProductVersionsVersion"},"type":"array"}},"required":["ids","names","productId","productVersions","versions","id"],"type":"object"}},"alicloud:servicecatalog/getProvisionedProducts:getProvisionedProducts":{"description":"This data source provides Service Catalog Provisioned Product available to the user. [What is Provisioned Product](https://www.alibabacloud.com/help/en/service-catalog/developer-reference/api-servicecatalog-2021-09-01-launchproduct)\n\n\u003e **NOTE:** Available since v1.196.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.servicecatalog.getProvisionedProducts({\n    ids: [\"IdExample\"],\n    nameRegex: \"NameRegexExample\",\n});\nexport const alicloudServiceCatalogProvisionedProductExampleId = _default.then(_default =\u003e _default.provisionedProducts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.servicecatalog.get_provisioned_products(ids=[\"IdExample\"],\n    name_regex=\"NameRegexExample\")\npulumi.export(\"alicloudServiceCatalogProvisionedProductExampleId\", default.provisioned_products[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ServiceCatalog.GetProvisionedProducts.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"IdExample\",\n        },\n        NameRegex = \"NameRegexExample\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudServiceCatalogProvisionedProductExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getProvisionedProductsResult =\u003e getProvisionedProductsResult.ProvisionedProducts[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/servicecatalog\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := servicecatalog.GetProvisionedProducts(ctx, \u0026servicecatalog.GetProvisionedProductsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"IdExample\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"NameRegexExample\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudServiceCatalogProvisionedProductExampleId\", _default.ProvisionedProducts[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.servicecatalog.ServicecatalogFunctions;\nimport com.pulumi.alicloud.servicecatalog.inputs.GetProvisionedProductsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ServicecatalogFunctions.getProvisionedProducts(GetProvisionedProductsArgs.builder()\n            .ids(\"IdExample\")\n            .nameRegex(\"NameRegexExample\")\n            .build());\n\n        ctx.export(\"alicloudServiceCatalogProvisionedProductExampleId\", default_.provisionedProducts()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:servicecatalog:getProvisionedProducts\n      arguments:\n        ids:\n          - IdExample\n        nameRegex: NameRegexExample\noutputs:\n  alicloudServiceCatalogProvisionedProductExampleId: ${default.provisionedProducts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProvisionedProducts.\n","properties":{"accessLevelFilter":{"type":"string","description":"The access filter.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Provisioned Product IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Product name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"sortBy":{"type":"string","description":"The field that is used to sort the queried data.\n"},"sortOrder":{"type":"string","description":"The sorting method.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getProvisionedProducts.\n","properties":{"accessLevelFilter":{"type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Provisioned Product IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Provisioned Products.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"products":{"deprecationMessage":"Field 'products' has been deprecated from provider version 1.197.0.","description":"(Deprecated since v1.197.0) A list of Provisioned Product Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:servicecatalog/getProvisionedProductsProduct:getProvisionedProductsProduct"},"type":"array"},"provisionedProducts":{"description":"(Available since v1.197.0) A list of Provisioned Product Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:servicecatalog/getProvisionedProductsProvisionedProduct:getProvisionedProductsProvisionedProduct"},"type":"array"},"sortBy":{"type":"string"},"sortOrder":{"type":"string"}},"required":["ids","names","products","provisionedProducts","id"],"type":"object"}},"alicloud:servicemesh/getExtensionProviders:getExtensionProviders":{"description":"This data source provides the Service Mesh Extension Providers of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.191.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.servicemesh.getExtensionProviders({\n    ids: [\"example_id\"],\n    serviceMeshId: \"example_service_mesh_id\",\n    type: \"httpextauth\",\n});\nexport const serviceMeshExtensionProvidersId1 = ids.then(ids =\u003e ids.providers?.[0]?.id);\nconst nameRegex = alicloud.servicemesh.getExtensionProviders({\n    nameRegex: \"^my-ServiceMeshExtensionProvider\",\n    serviceMeshId: \"example_service_mesh_id\",\n    type: \"httpextauth\",\n});\nexport const serviceMeshExtensionProvidersId2 = nameRegex.then(nameRegex =\u003e nameRegex.providers?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.servicemesh.get_extension_providers(ids=[\"example_id\"],\n    service_mesh_id=\"example_service_mesh_id\",\n    type=\"httpextauth\")\npulumi.export(\"serviceMeshExtensionProvidersId1\", ids.providers[0].id)\nname_regex = alicloud.servicemesh.get_extension_providers(name_regex=\"^my-ServiceMeshExtensionProvider\",\n    service_mesh_id=\"example_service_mesh_id\",\n    type=\"httpextauth\")\npulumi.export(\"serviceMeshExtensionProvidersId2\", name_regex.providers[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.ServiceMesh.GetExtensionProviders.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        ServiceMeshId = \"example_service_mesh_id\",\n        Type = \"httpextauth\",\n    });\n\n    var nameRegex = AliCloud.ServiceMesh.GetExtensionProviders.Invoke(new()\n    {\n        NameRegex = \"^my-ServiceMeshExtensionProvider\",\n        ServiceMeshId = \"example_service_mesh_id\",\n        Type = \"httpextauth\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceMeshExtensionProvidersId1\"] = ids.Apply(getExtensionProvidersResult =\u003e getExtensionProvidersResult.Providers[0]?.Id),\n        [\"serviceMeshExtensionProvidersId2\"] = nameRegex.Apply(getExtensionProvidersResult =\u003e getExtensionProvidersResult.Providers[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/servicemesh\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := servicemesh.GetExtensionProviders(ctx, \u0026servicemesh.GetExtensionProvidersArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tServiceMeshId: \"example_service_mesh_id\",\n\t\t\tType:          \"httpextauth\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"serviceMeshExtensionProvidersId1\", ids.Providers[0].Id)\n\t\tnameRegex, err := servicemesh.GetExtensionProviders(ctx, \u0026servicemesh.GetExtensionProvidersArgs{\n\t\t\tNameRegex:     pulumi.StringRef(\"^my-ServiceMeshExtensionProvider\"),\n\t\t\tServiceMeshId: \"example_service_mesh_id\",\n\t\t\tType:          \"httpextauth\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"serviceMeshExtensionProvidersId2\", nameRegex.Providers[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.servicemesh.ServicemeshFunctions;\nimport com.pulumi.alicloud.servicemesh.inputs.GetExtensionProvidersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ServicemeshFunctions.getExtensionProviders(GetExtensionProvidersArgs.builder()\n            .ids(\"example_id\")\n            .serviceMeshId(\"example_service_mesh_id\")\n            .type(\"httpextauth\")\n            .build());\n\n        ctx.export(\"serviceMeshExtensionProvidersId1\", ids.providers()[0].id());\n        final var nameRegex = ServicemeshFunctions.getExtensionProviders(GetExtensionProvidersArgs.builder()\n            .nameRegex(\"^my-ServiceMeshExtensionProvider\")\n            .serviceMeshId(\"example_service_mesh_id\")\n            .type(\"httpextauth\")\n            .build());\n\n        ctx.export(\"serviceMeshExtensionProvidersId2\", nameRegex.providers()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:servicemesh:getExtensionProviders\n      arguments:\n        ids:\n          - example_id\n        serviceMeshId: example_service_mesh_id\n        type: httpextauth\n  nameRegex:\n    fn::invoke:\n      function: alicloud:servicemesh:getExtensionProviders\n      arguments:\n        nameRegex: ^my-ServiceMeshExtensionProvider\n        serviceMeshId: example_service_mesh_id\n        type: httpextauth\noutputs:\n  serviceMeshExtensionProvidersId1: ${ids.providers[0].id}\n  serviceMeshExtensionProvidersId2: ${nameRegex.providers[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getExtensionProviders.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Service Mesh Extension Provider IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Service Mesh Extension Provider name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"serviceMeshId":{"type":"string","description":"The ID of the Service Mesh.\n"},"type":{"type":"string","description":"The type of the Service Mesh Extension Provider. Valid values: \u003cspan pulumi-lang-nodejs=\"`httpextauth`\" pulumi-lang-dotnet=\"`Httpextauth`\" pulumi-lang-go=\"`httpextauth`\" pulumi-lang-python=\"`httpextauth`\" pulumi-lang-yaml=\"`httpextauth`\" pulumi-lang-java=\"`httpextauth`\"\u003e`httpextauth`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`grpcextauth`\" pulumi-lang-dotnet=\"`Grpcextauth`\" pulumi-lang-go=\"`grpcextauth`\" pulumi-lang-python=\"`grpcextauth`\" pulumi-lang-yaml=\"`grpcextauth`\" pulumi-lang-java=\"`grpcextauth`\"\u003e`grpcextauth`\u003c/span\u003e.\n"}},"type":"object","required":["serviceMeshId","type"]},"outputs":{"description":"A collection of values returned by getExtensionProviders.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Extension Provider names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"providers":{"description":"A list of Service Mesh Extension Providers. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:servicemesh/getExtensionProvidersProvider:getExtensionProvidersProvider"},"type":"array"},"serviceMeshId":{"description":"The ID of the Service Mesh.\n","type":"string"},"type":{"description":"The type of the Service Mesh Extension Provider.\n","type":"string"}},"required":["ids","names","providers","serviceMeshId","type","id"],"type":"object"}},"alicloud:servicemesh/getServiceMeshes:getServiceMeshes":{"description":"This data source provides the Service Mesh Service Meshes of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.138.0.\n\n","inputs":{"description":"A collection of arguments for invoking getServiceMeshes.\n","properties":{"enableDetails":{"type":"boolean","description":"Whether to query the detailed list of resource attributes. Default value: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Service Mesh IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Service Mesh name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the Service Mesh. Valid values: \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`initial`\" pulumi-lang-dotnet=\"`Initial`\" pulumi-lang-go=\"`initial`\" pulumi-lang-python=\"`initial`\" pulumi-lang-yaml=\"`initial`\" pulumi-lang-java=\"`initial`\"\u003e`initial`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServiceMeshes.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"meshes":{"description":"A list of Service Mesh Service Meshes. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:servicemesh/getServiceMeshesMesh:getServiceMeshesMesh"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Service Mesh names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of the Service Mesh instance.\n","type":"string"}},"required":["ids","meshes","names","id"],"type":"object"}},"alicloud:servicemesh/getVersions:getVersions":{"description":"This data source provides ASM available versions in the specified region.\n\n\u003e **NOTE:** Available in v1.161.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.servicemesh.getVersions({\n    edition: \"Default\",\n});\nexport const serviceMeshVersion = versions[0].version;\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.servicemesh.get_versions(edition=\"Default\")\npulumi.export(\"serviceMeshVersion\", versions[0][\"version\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ServiceMesh.GetVersions.Invoke(new()\n    {\n        Edition = \"Default\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceMeshVersion\"] = versions[0].Version,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/servicemesh\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := servicemesh.GetVersions(ctx, \u0026servicemesh.GetVersionsArgs{\n\t\t\tEdition: pulumi.StringRef(\"Default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"serviceMeshVersion\", versions[0].Version)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.servicemesh.ServicemeshFunctions;\nimport com.pulumi.alicloud.servicemesh.inputs.GetVersionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ServicemeshFunctions.getVersions(GetVersionsArgs.builder()\n            .edition(\"Default\")\n            .build());\n\n        ctx.export(\"serviceMeshVersion\", versions[0].version());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:servicemesh:getVersions\n      arguments:\n        edition: Default\noutputs:\n  serviceMeshVersion: ${versions[0].version}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVersions.\n","properties":{"edition":{"type":"string","description":"The edition of the ASM instance. Valid values:\n- Default: Standard Edition\n- Pro: Professional Edition\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of ASM versions. Its element formats as `\u003cedition\u003e:\u003cversion\u003e`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVersions.\n","properties":{"edition":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"versions":{"items":{"$ref":"#/types/alicloud:servicemesh/getVersionsVersion:getVersionsVersion"},"type":"array"}},"required":["ids","versions","id"],"type":"object"}},"alicloud:simpleapplicationserver/getImages:getImages":{"description":"This data source provides the Simple Application Server Images of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.135.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nvariables:\n  instanceImageType:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getImages\n      arguments:\n        instanceImageType: system\noutputs:\n  simpleApplicationServerImageId1: ${ids.images[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\nThe following arguments are supported:\n\n* \u003cspan pulumi-lang-nodejs=\"`ids`\" pulumi-lang-dotnet=\"`Ids`\" pulumi-lang-go=\"`ids`\" pulumi-lang-python=\"`ids`\" pulumi-lang-yaml=\"`ids`\" pulumi-lang-java=\"`ids`\"\u003e`ids`\u003c/span\u003e - (Optional, ForceNew, Computed)  A list of Image IDs.\n* \u003cspan pulumi-lang-nodejs=\"`imageType`\" pulumi-lang-dotnet=\"`ImageType`\" pulumi-lang-go=\"`imageType`\" pulumi-lang-python=\"`image_type`\" pulumi-lang-yaml=\"`imageType`\" pulumi-lang-java=\"`imageType`\"\u003e`image_type`\u003c/span\u003e - (Optional, ForceNew) The image type. Valid values: \u003cspan pulumi-lang-nodejs=\"`app`\" pulumi-lang-dotnet=\"`App`\" pulumi-lang-go=\"`app`\" pulumi-lang-python=\"`app`\" pulumi-lang-yaml=\"`app`\" pulumi-lang-java=\"`app`\"\u003e`app`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e.\n* \u003cspan pulumi-lang-nodejs=\"`nameRegex`\" pulumi-lang-dotnet=\"`NameRegex`\" pulumi-lang-go=\"`nameRegex`\" pulumi-lang-python=\"`name_regex`\" pulumi-lang-yaml=\"`nameRegex`\" pulumi-lang-java=\"`nameRegex`\"\u003e`name_regex`\u003c/span\u003e - (Optional, ForceNew) A regex string to filter results by Image name.\n* \u003cspan pulumi-lang-nodejs=\"`platform`\" pulumi-lang-dotnet=\"`Platform`\" pulumi-lang-go=\"`platform`\" pulumi-lang-python=\"`platform`\" pulumi-lang-yaml=\"`platform`\" pulumi-lang-java=\"`platform`\"\u003e`platform`\u003c/span\u003e - (Available in v1.161.0) The platform of Image supported. Valid values: [\"Linux\", \"Windows\"].\n* \u003cspan pulumi-lang-nodejs=\"`outputFile`\" pulumi-lang-dotnet=\"`OutputFile`\" pulumi-lang-go=\"`outputFile`\" pulumi-lang-python=\"`output_file`\" pulumi-lang-yaml=\"`outputFile`\" pulumi-lang-java=\"`outputFile`\"\u003e`output_file`\u003c/span\u003e - (Optional) File name where to save data source results (after running `pulumi preview`).\n","inputs":{"description":"A collection of arguments for invoking getImages.\n","properties":{"ids":{"type":"array","items":{"type":"string"}},"imageType":{"type":"string"},"nameRegex":{"type":"string"},"outputFile":{"type":"string"},"platform":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getImages.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"imageType":{"type":"string"},"images":{"items":{"$ref":"#/types/alicloud:simpleapplicationserver/getImagesImage:getImagesImage"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"platform":{"type":"string"}},"required":["ids","images","names","id"],"type":"object"}},"alicloud:simpleapplicationserver/getInstances:getInstances":{"description":"This data source provides the Simple Application Server Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.135.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.simpleapplicationserver.getInstances({\n    ids: [\"example_id\"],\n});\nexport const simpleApplicationServerInstanceId1 = ids.then(ids =\u003e ids.instances?.[0]?.id);\nconst nameRegex = alicloud.simpleapplicationserver.getInstances({\n    nameRegex: \"^my-Instance\",\n});\nexport const simpleApplicationServerInstanceId2 = nameRegex.then(nameRegex =\u003e nameRegex.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.simpleapplicationserver.get_instances(ids=[\"example_id\"])\npulumi.export(\"simpleApplicationServerInstanceId1\", ids.instances[0].id)\nname_regex = alicloud.simpleapplicationserver.get_instances(name_regex=\"^my-Instance\")\npulumi.export(\"simpleApplicationServerInstanceId2\", name_regex.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.SimpleApplicationServer.GetInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.SimpleApplicationServer.GetInstances.Invoke(new()\n    {\n        NameRegex = \"^my-Instance\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"simpleApplicationServerInstanceId1\"] = ids.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n        [\"simpleApplicationServerInstanceId2\"] = nameRegex.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/simpleapplicationserver\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := simpleapplicationserver.GetInstances(ctx, \u0026simpleapplicationserver.GetInstancesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"simpleApplicationServerInstanceId1\", ids.Instances[0].Id)\n\t\tnameRegex, err := simpleapplicationserver.GetInstances(ctx, \u0026simpleapplicationserver.GetInstancesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Instance\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"simpleApplicationServerInstanceId2\", nameRegex.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.simpleapplicationserver.SimpleapplicationserverFunctions;\nimport com.pulumi.alicloud.simpleapplicationserver.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = SimpleapplicationserverFunctions.getInstances(GetInstancesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"simpleApplicationServerInstanceId1\", ids.instances()[0].id());\n        final var nameRegex = SimpleapplicationserverFunctions.getInstances(GetInstancesArgs.builder()\n            .nameRegex(\"^my-Instance\")\n            .build());\n\n        ctx.export(\"simpleApplicationServerInstanceId2\", nameRegex.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getInstances\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getInstances\n      arguments:\n        nameRegex: ^my-Instance\noutputs:\n  simpleApplicationServerInstanceId1: ${ids.instances[0].id}\n  simpleApplicationServerInstanceId2: ${nameRegex.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Instance IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Instance name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"paymentType":{"type":"string","description":"The paymen type of the resource. Valid values: `Subscription`.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Resetting`, `Running`, `Stopped`, `Upgrading`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instances":{"items":{"$ref":"#/types/alicloud:simpleapplicationserver/getInstancesInstance:getInstancesInstance"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"paymentType":{"type":"string"},"status":{"type":"string"}},"required":["ids","instances","names","id"],"type":"object"}},"alicloud:simpleapplicationserver/getServerCustomImages:getServerCustomImages":{"description":"This data source provides the Simple Application Server Custom Images of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.143.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.simpleapplicationserver.getServerCustomImages({\n    ids: [\"example_id\"],\n});\nexport const simpleApplicationServerCustomImageId1 = ids.then(ids =\u003e ids.images?.[0]?.id);\nconst nameRegex = alicloud.simpleapplicationserver.getServerCustomImages({\n    nameRegex: \"^my-CustomImage\",\n});\nexport const simpleApplicationServerCustomImageId2 = nameRegex.then(nameRegex =\u003e nameRegex.images?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.simpleapplicationserver.get_server_custom_images(ids=[\"example_id\"])\npulumi.export(\"simpleApplicationServerCustomImageId1\", ids.images[0].id)\nname_regex = alicloud.simpleapplicationserver.get_server_custom_images(name_regex=\"^my-CustomImage\")\npulumi.export(\"simpleApplicationServerCustomImageId2\", name_regex.images[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.SimpleApplicationServer.GetServerCustomImages.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.SimpleApplicationServer.GetServerCustomImages.Invoke(new()\n    {\n        NameRegex = \"^my-CustomImage\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"simpleApplicationServerCustomImageId1\"] = ids.Apply(getServerCustomImagesResult =\u003e getServerCustomImagesResult.Images[0]?.Id),\n        [\"simpleApplicationServerCustomImageId2\"] = nameRegex.Apply(getServerCustomImagesResult =\u003e getServerCustomImagesResult.Images[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/simpleapplicationserver\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := simpleapplicationserver.GetServerCustomImages(ctx, \u0026simpleapplicationserver.GetServerCustomImagesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"simpleApplicationServerCustomImageId1\", ids.Images[0].Id)\n\t\tnameRegex, err := simpleapplicationserver.GetServerCustomImages(ctx, \u0026simpleapplicationserver.GetServerCustomImagesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-CustomImage\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"simpleApplicationServerCustomImageId2\", nameRegex.Images[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.simpleapplicationserver.SimpleapplicationserverFunctions;\nimport com.pulumi.alicloud.simpleapplicationserver.inputs.GetServerCustomImagesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = SimpleapplicationserverFunctions.getServerCustomImages(GetServerCustomImagesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"simpleApplicationServerCustomImageId1\", ids.images()[0].id());\n        final var nameRegex = SimpleapplicationserverFunctions.getServerCustomImages(GetServerCustomImagesArgs.builder()\n            .nameRegex(\"^my-CustomImage\")\n            .build());\n\n        ctx.export(\"simpleApplicationServerCustomImageId2\", nameRegex.images()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerCustomImages\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerCustomImages\n      arguments:\n        nameRegex: ^my-CustomImage\noutputs:\n  simpleApplicationServerCustomImageId1: ${ids.images[0].id}\n  simpleApplicationServerCustomImageId2: ${nameRegex.images[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerCustomImages.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Custom Image IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Custom Image name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServerCustomImages.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"images":{"items":{"$ref":"#/types/alicloud:simpleapplicationserver/getServerCustomImagesImage:getServerCustomImagesImage"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","images","names","id"],"type":"object"}},"alicloud:simpleapplicationserver/getServerDisks:getServerDisks":{"description":"This data source provides the Simple Application Server Disks of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.143.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.simpleapplicationserver.getServerDisks({\n    ids: [\"example_id\"],\n});\nexport const simpleApplicationServerDiskId1 = ids.then(ids =\u003e ids.disks?.[0]?.id);\nconst nameRegex = alicloud.simpleapplicationserver.getServerDisks({\n    nameRegex: \"^my-Disk\",\n});\nexport const simpleApplicationServerDiskId2 = nameRegex.then(nameRegex =\u003e nameRegex.disks?.[0]?.id);\nconst status = alicloud.simpleapplicationserver.getServerDisks({\n    status: \"In_use\",\n});\nexport const simpleApplicationServerDiskId3 = status.then(status =\u003e status.disks?.[0]?.id);\nconst instanceId = alicloud.simpleapplicationserver.getServerDisks({\n    instanceId: \"example_value\",\n});\nexport const simpleApplicationServerDiskId4 = instanceId.then(instanceId =\u003e instanceId.disks?.[0]?.id);\nconst diskType = alicloud.simpleapplicationserver.getServerDisks({\n    diskType: \"System\",\n});\nexport const simpleApplicationServerDiskId5 = diskType.then(diskType =\u003e diskType.disks?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.simpleapplicationserver.get_server_disks(ids=[\"example_id\"])\npulumi.export(\"simpleApplicationServerDiskId1\", ids.disks[0].id)\nname_regex = alicloud.simpleapplicationserver.get_server_disks(name_regex=\"^my-Disk\")\npulumi.export(\"simpleApplicationServerDiskId2\", name_regex.disks[0].id)\nstatus = alicloud.simpleapplicationserver.get_server_disks(status=\"In_use\")\npulumi.export(\"simpleApplicationServerDiskId3\", status.disks[0].id)\ninstance_id = alicloud.simpleapplicationserver.get_server_disks(instance_id=\"example_value\")\npulumi.export(\"simpleApplicationServerDiskId4\", instance_id.disks[0].id)\ndisk_type = alicloud.simpleapplicationserver.get_server_disks(disk_type=\"System\")\npulumi.export(\"simpleApplicationServerDiskId5\", disk_type.disks[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.SimpleApplicationServer.GetServerDisks.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.SimpleApplicationServer.GetServerDisks.Invoke(new()\n    {\n        NameRegex = \"^my-Disk\",\n    });\n\n    var status = AliCloud.SimpleApplicationServer.GetServerDisks.Invoke(new()\n    {\n        Status = \"In_use\",\n    });\n\n    var instanceId = AliCloud.SimpleApplicationServer.GetServerDisks.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n    });\n\n    var diskType = AliCloud.SimpleApplicationServer.GetServerDisks.Invoke(new()\n    {\n        DiskType = \"System\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"simpleApplicationServerDiskId1\"] = ids.Apply(getServerDisksResult =\u003e getServerDisksResult.Disks[0]?.Id),\n        [\"simpleApplicationServerDiskId2\"] = nameRegex.Apply(getServerDisksResult =\u003e getServerDisksResult.Disks[0]?.Id),\n        [\"simpleApplicationServerDiskId3\"] = status.Apply(getServerDisksResult =\u003e getServerDisksResult.Disks[0]?.Id),\n        [\"simpleApplicationServerDiskId4\"] = instanceId.Apply(getServerDisksResult =\u003e getServerDisksResult.Disks[0]?.Id),\n        [\"simpleApplicationServerDiskId5\"] = diskType.Apply(getServerDisksResult =\u003e getServerDisksResult.Disks[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/simpleapplicationserver\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := simpleapplicationserver.GetServerDisks(ctx, \u0026simpleapplicationserver.GetServerDisksArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"simpleApplicationServerDiskId1\", ids.Disks[0].Id)\n\t\tnameRegex, err := simpleapplicationserver.GetServerDisks(ctx, \u0026simpleapplicationserver.GetServerDisksArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Disk\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"simpleApplicationServerDiskId2\", nameRegex.Disks[0].Id)\n\t\tstatus, err := simpleapplicationserver.GetServerDisks(ctx, \u0026simpleapplicationserver.GetServerDisksArgs{\n\t\t\tStatus: pulumi.StringRef(\"In_use\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"simpleApplicationServerDiskId3\", status.Disks[0].Id)\n\t\tinstanceId, err := simpleapplicationserver.GetServerDisks(ctx, \u0026simpleapplicationserver.GetServerDisksArgs{\n\t\t\tInstanceId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"simpleApplicationServerDiskId4\", instanceId.Disks[0].Id)\n\t\tdiskType, err := simpleapplicationserver.GetServerDisks(ctx, \u0026simpleapplicationserver.GetServerDisksArgs{\n\t\t\tDiskType: pulumi.StringRef(\"System\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"simpleApplicationServerDiskId5\", diskType.Disks[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.simpleapplicationserver.SimpleapplicationserverFunctions;\nimport com.pulumi.alicloud.simpleapplicationserver.inputs.GetServerDisksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = SimpleapplicationserverFunctions.getServerDisks(GetServerDisksArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"simpleApplicationServerDiskId1\", ids.disks()[0].id());\n        final var nameRegex = SimpleapplicationserverFunctions.getServerDisks(GetServerDisksArgs.builder()\n            .nameRegex(\"^my-Disk\")\n            .build());\n\n        ctx.export(\"simpleApplicationServerDiskId2\", nameRegex.disks()[0].id());\n        final var status = SimpleapplicationserverFunctions.getServerDisks(GetServerDisksArgs.builder()\n            .status(\"In_use\")\n            .build());\n\n        ctx.export(\"simpleApplicationServerDiskId3\", status.disks()[0].id());\n        final var instanceId = SimpleapplicationserverFunctions.getServerDisks(GetServerDisksArgs.builder()\n            .instanceId(\"example_value\")\n            .build());\n\n        ctx.export(\"simpleApplicationServerDiskId4\", instanceId.disks()[0].id());\n        final var diskType = SimpleapplicationserverFunctions.getServerDisks(GetServerDisksArgs.builder()\n            .diskType(\"System\")\n            .build());\n\n        ctx.export(\"simpleApplicationServerDiskId5\", diskType.disks()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerDisks\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerDisks\n      arguments:\n        nameRegex: ^my-Disk\n  status:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerDisks\n      arguments:\n        status: In_use\n  instanceId:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerDisks\n      arguments:\n        instanceId: example_value\n  diskType:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerDisks\n      arguments:\n        diskType: System\noutputs:\n  simpleApplicationServerDiskId1: ${ids.disks[0].id}\n  simpleApplicationServerDiskId2: ${nameRegex.disks[0].id}\n  simpleApplicationServerDiskId3: ${status.disks[0].id}\n  simpleApplicationServerDiskId4: ${instanceId.disks[0].id}\n  simpleApplicationServerDiskId5: ${diskType.disks[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerDisks.\n","properties":{"diskType":{"type":"string","description":"The type of the disk. Possible values: `System`, `Data`.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Disk IDs.\n"},"instanceId":{"type":"string","description":"The ID of the simple application server to which the disk is attached.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Disk name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the disk. Valid values: `ReIniting`, `Creating`, `In_Use`, `Available`, `Attaching`, `Detaching`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServerDisks.\n","properties":{"diskType":{"type":"string"},"disks":{"items":{"$ref":"#/types/alicloud:simpleapplicationserver/getServerDisksDisk:getServerDisksDisk"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["disks","ids","names","id"],"type":"object"}},"alicloud:simpleapplicationserver/getServerFirewallRules:getServerFirewallRules":{"description":"This data source provides the Simple Application Server Firewall Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.143.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.simpleapplicationserver.getServerFirewallRules({\n    instanceId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const simpleApplicationServerFirewallRuleId1 = ids.then(ids =\u003e ids.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.simpleapplicationserver.get_server_firewall_rules(instance_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"simpleApplicationServerFirewallRuleId1\", ids.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.SimpleApplicationServer.GetServerFirewallRules.Invoke(new()\n    {\n        InstanceId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"simpleApplicationServerFirewallRuleId1\"] = ids.Apply(getServerFirewallRulesResult =\u003e getServerFirewallRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/simpleapplicationserver\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := simpleapplicationserver.GetServerFirewallRules(ctx, \u0026simpleapplicationserver.GetServerFirewallRulesArgs{\n\t\t\tInstanceId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"simpleApplicationServerFirewallRuleId1\", ids.Rules[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.simpleapplicationserver.SimpleapplicationserverFunctions;\nimport com.pulumi.alicloud.simpleapplicationserver.inputs.GetServerFirewallRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = SimpleapplicationserverFunctions.getServerFirewallRules(GetServerFirewallRulesArgs.builder()\n            .instanceId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"simpleApplicationServerFirewallRuleId1\", ids.rules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerFirewallRules\n      arguments:\n        instanceId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\noutputs:\n  simpleApplicationServerFirewallRuleId1: ${ids.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerFirewallRules.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Firewall Rule IDs.\n"},"instanceId":{"type":"string","description":"Alibaba Cloud simple application server instance ID.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getServerFirewallRules.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"outputFile":{"type":"string"},"rules":{"items":{"$ref":"#/types/alicloud:simpleapplicationserver/getServerFirewallRulesRule:getServerFirewallRulesRule"},"type":"array"}},"required":["ids","instanceId","rules","id"],"type":"object"}},"alicloud:simpleapplicationserver/getServerPlans:getServerPlans":{"description":"This data source provides the Simple Application Server Plans of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.135.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.simpleapplicationserver.getServerPlans({\n    memory: 1,\n    bandwidth: 3,\n    diskSize: 40,\n    flow: 6,\n    core: 2,\n});\nexport const simpleApplicationServerPlanId1 = ids.plans[0].id;\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.simpleapplicationserver.get_server_plans(memory=1,\n    bandwidth=3,\n    disk_size=40,\n    flow=6,\n    core=2)\npulumi.export(\"simpleApplicationServerPlanId1\", ids[\"plans\"][0][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.SimpleApplicationServer.GetServerPlans.Invoke(new()\n    {\n        Memory = 1,\n        Bandwidth = 3,\n        DiskSize = 40,\n        Flow = 6,\n        Core = 2,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"simpleApplicationServerPlanId1\"] = ids.Plans[0].Id,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/simpleapplicationserver\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := simpleapplicationserver.GetServerPlans(ctx, \u0026simpleapplicationserver.GetServerPlansArgs{\n\t\t\tMemory:    pulumi.Float64Ref(1),\n\t\t\tBandwidth: pulumi.IntRef(3),\n\t\t\tDiskSize:  pulumi.IntRef(40),\n\t\t\tFlow:      pulumi.IntRef(6),\n\t\t\tCore:      pulumi.IntRef(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"simpleApplicationServerPlanId1\", ids.Plans[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.simpleapplicationserver.SimpleapplicationserverFunctions;\nimport com.pulumi.alicloud.simpleapplicationserver.inputs.GetServerPlansArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = SimpleapplicationserverFunctions.getServerPlans(GetServerPlansArgs.builder()\n            .memory(1)\n            .bandwidth(3)\n            .diskSize(40)\n            .flow(6)\n            .core(2)\n            .build());\n\n        ctx.export(\"simpleApplicationServerPlanId1\", ids.plans()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerPlans\n      arguments:\n        memory: 1\n        bandwidth: 3\n        diskSize: 40\n        flow: 6\n        core: 2\noutputs:\n  simpleApplicationServerPlanId1: ${ids.plans[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerPlans.\n","properties":{"bandwidth":{"type":"integer","description":"The peak bandwidth. Unit: Mbit/s.\n"},"core":{"type":"integer","description":"The number of CPU cores.\n"},"diskSize":{"type":"integer","description":"The size of the enhanced SSD (ESSD). Unit: GB.\n"},"flow":{"type":"integer","description":"The monthly data transfer quota. Unit: GB.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Instance Plan IDs.\n"},"memory":{"type":"number","description":"The memory size. Unit: GB.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"platform":{"type":"string","description":"The platform of Plan supported. Valid values: [\"Linux\", \"Windows\"].\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServerPlans.\n","properties":{"bandwidth":{"type":"integer"},"core":{"type":"integer"},"diskSize":{"type":"integer"},"flow":{"type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"memory":{"type":"number"},"outputFile":{"type":"string"},"plans":{"items":{"$ref":"#/types/alicloud:simpleapplicationserver/getServerPlansPlan:getServerPlansPlan"},"type":"array"},"platform":{"type":"string"}},"required":["ids","plans","id"],"type":"object"}},"alicloud:simpleapplicationserver/getServerSnapshots:getServerSnapshots":{"description":"This data source provides the Simple Application Server Snapshots of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.143.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.simpleapplicationserver.getServerSnapshots({\n    ids: [\"example_id\"],\n});\nexport const simpleApplicationServerSnapshotId1 = ids.then(ids =\u003e ids.snapshots?.[0]?.id);\nconst nameRegex = alicloud.simpleapplicationserver.getServerSnapshots({\n    nameRegex: \"^my-Snapshot\",\n});\nexport const simpleApplicationServerSnapshotId2 = nameRegex.then(nameRegex =\u003e nameRegex.snapshots?.[0]?.id);\nconst diskIdConf = alicloud.simpleapplicationserver.getServerSnapshots({\n    ids: [\"example_id\"],\n    diskId: \"example_value\",\n});\nexport const simpleApplicationServerSnapshotId3 = diskIdConf.then(diskIdConf =\u003e diskIdConf.snapshots?.[0]?.id);\nconst instanceIdConf = alicloud.simpleapplicationserver.getServerSnapshots({\n    ids: [\"example_id\"],\n    instanceId: \"example_value\",\n});\nexport const simpleApplicationServerSnapshotId4 = instanceIdConf.then(instanceIdConf =\u003e instanceIdConf.snapshots?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.simpleapplicationserver.get_server_snapshots(ids=[\"example_id\"])\npulumi.export(\"simpleApplicationServerSnapshotId1\", ids.snapshots[0].id)\nname_regex = alicloud.simpleapplicationserver.get_server_snapshots(name_regex=\"^my-Snapshot\")\npulumi.export(\"simpleApplicationServerSnapshotId2\", name_regex.snapshots[0].id)\ndisk_id_conf = alicloud.simpleapplicationserver.get_server_snapshots(ids=[\"example_id\"],\n    disk_id=\"example_value\")\npulumi.export(\"simpleApplicationServerSnapshotId3\", disk_id_conf.snapshots[0].id)\ninstance_id_conf = alicloud.simpleapplicationserver.get_server_snapshots(ids=[\"example_id\"],\n    instance_id=\"example_value\")\npulumi.export(\"simpleApplicationServerSnapshotId4\", instance_id_conf.snapshots[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.SimpleApplicationServer.GetServerSnapshots.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.SimpleApplicationServer.GetServerSnapshots.Invoke(new()\n    {\n        NameRegex = \"^my-Snapshot\",\n    });\n\n    var diskIdConf = AliCloud.SimpleApplicationServer.GetServerSnapshots.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        DiskId = \"example_value\",\n    });\n\n    var instanceIdConf = AliCloud.SimpleApplicationServer.GetServerSnapshots.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        InstanceId = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"simpleApplicationServerSnapshotId1\"] = ids.Apply(getServerSnapshotsResult =\u003e getServerSnapshotsResult.Snapshots[0]?.Id),\n        [\"simpleApplicationServerSnapshotId2\"] = nameRegex.Apply(getServerSnapshotsResult =\u003e getServerSnapshotsResult.Snapshots[0]?.Id),\n        [\"simpleApplicationServerSnapshotId3\"] = diskIdConf.Apply(getServerSnapshotsResult =\u003e getServerSnapshotsResult.Snapshots[0]?.Id),\n        [\"simpleApplicationServerSnapshotId4\"] = instanceIdConf.Apply(getServerSnapshotsResult =\u003e getServerSnapshotsResult.Snapshots[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/simpleapplicationserver\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := simpleapplicationserver.GetServerSnapshots(ctx, \u0026simpleapplicationserver.GetServerSnapshotsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"simpleApplicationServerSnapshotId1\", ids.Snapshots[0].Id)\n\t\tnameRegex, err := simpleapplicationserver.GetServerSnapshots(ctx, \u0026simpleapplicationserver.GetServerSnapshotsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Snapshot\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"simpleApplicationServerSnapshotId2\", nameRegex.Snapshots[0].Id)\n\t\tdiskIdConf, err := simpleapplicationserver.GetServerSnapshots(ctx, \u0026simpleapplicationserver.GetServerSnapshotsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tDiskId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"simpleApplicationServerSnapshotId3\", diskIdConf.Snapshots[0].Id)\n\t\tinstanceIdConf, err := simpleapplicationserver.GetServerSnapshots(ctx, \u0026simpleapplicationserver.GetServerSnapshotsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tInstanceId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"simpleApplicationServerSnapshotId4\", instanceIdConf.Snapshots[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.simpleapplicationserver.SimpleapplicationserverFunctions;\nimport com.pulumi.alicloud.simpleapplicationserver.inputs.GetServerSnapshotsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = SimpleapplicationserverFunctions.getServerSnapshots(GetServerSnapshotsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"simpleApplicationServerSnapshotId1\", ids.snapshots()[0].id());\n        final var nameRegex = SimpleapplicationserverFunctions.getServerSnapshots(GetServerSnapshotsArgs.builder()\n            .nameRegex(\"^my-Snapshot\")\n            .build());\n\n        ctx.export(\"simpleApplicationServerSnapshotId2\", nameRegex.snapshots()[0].id());\n        final var diskIdConf = SimpleapplicationserverFunctions.getServerSnapshots(GetServerSnapshotsArgs.builder()\n            .ids(\"example_id\")\n            .diskId(\"example_value\")\n            .build());\n\n        ctx.export(\"simpleApplicationServerSnapshotId3\", diskIdConf.snapshots()[0].id());\n        final var instanceIdConf = SimpleapplicationserverFunctions.getServerSnapshots(GetServerSnapshotsArgs.builder()\n            .ids(\"example_id\")\n            .instanceId(\"example_value\")\n            .build());\n\n        ctx.export(\"simpleApplicationServerSnapshotId4\", instanceIdConf.snapshots()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerSnapshots\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerSnapshots\n      arguments:\n        nameRegex: ^my-Snapshot\n  diskIdConf:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerSnapshots\n      arguments:\n        ids:\n          - example_id\n        diskId: example_value\n  instanceIdConf:\n    fn::invoke:\n      function: alicloud:simpleapplicationserver:getServerSnapshots\n      arguments:\n        ids:\n          - example_id\n        instanceId: example_value\noutputs:\n  simpleApplicationServerSnapshotId1: ${ids.snapshots[0].id}\n  simpleApplicationServerSnapshotId2: ${nameRegex.snapshots[0].id}\n  simpleApplicationServerSnapshotId3: ${diskIdConf.snapshots[0].id}\n  simpleApplicationServerSnapshotId4: ${instanceIdConf.snapshots[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerSnapshots.\n","properties":{"diskId":{"type":"string","description":"The ID of the disk.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Snapshot IDs.\n"},"instanceId":{"type":"string","description":"The ID of the simple application server.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Snapshot name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the snapshots. Valid values: `Progressing`, `Accomplished` and `Failed`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServerSnapshots.\n","properties":{"diskId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"snapshots":{"items":{"$ref":"#/types/alicloud:simpleapplicationserver/getServerSnapshotsSnapshot:getServerSnapshotsSnapshot"},"type":"array"},"status":{"type":"string"}},"required":["ids","names","snapshots","id"],"type":"object"}},"alicloud:slb/getAcls:getAcls":{"description":"This data source provides the acls in the region.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst sampleDs = alicloud.slb.getAcls({});\nexport const firstSlbAclId = sampleDs.then(sampleDs =\u003e sampleDs.acls?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nsample_ds = alicloud.slb.get_acls()\npulumi.export(\"firstSlbAclId\", sample_ds.acls[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var sampleDs = AliCloud.Slb.GetAcls.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstSlbAclId\"] = sampleDs.Apply(getAclsResult =\u003e getAclsResult.Acls[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsampleDs, err := slb.GetAcls(ctx, \u0026slb.GetAclsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstSlbAclId\", sampleDs.Acls[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetAclsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var sampleDs = SlbFunctions.getAcls(GetAclsArgs.builder()\n            .build());\n\n        ctx.export(\"firstSlbAclId\", sampleDs.acls()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  sampleDs:\n    fn::invoke:\n      function: alicloud:slb:getAcls\n      arguments: {}\noutputs:\n  firstSlbAclId: ${sampleDs.acls[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Entry Block\n\nThe entry mapping supports the following:\n\n* \u003cspan pulumi-lang-nodejs=\"`entry`\" pulumi-lang-dotnet=\"`Entry`\" pulumi-lang-go=\"`entry`\" pulumi-lang-python=\"`entry`\" pulumi-lang-yaml=\"`entry`\" pulumi-lang-java=\"`entry`\"\u003e`entry`\u003c/span\u003e   - An IP addresses or CIDR blocks.\n* \u003cspan pulumi-lang-nodejs=\"`comment`\" pulumi-lang-dotnet=\"`Comment`\" pulumi-lang-go=\"`comment`\" pulumi-lang-python=\"`comment`\" pulumi-lang-yaml=\"`comment`\" pulumi-lang-java=\"`comment`\"\u003e`comment`\u003c/span\u003e - the comment of the entry.\n\n## Listener Block\n\nThe Listener mapping supports the following:\n\n* \u003cspan pulumi-lang-nodejs=\"`loadBalancerId`\" pulumi-lang-dotnet=\"`LoadBalancerId`\" pulumi-lang-go=\"`loadBalancerId`\" pulumi-lang-python=\"`load_balancer_id`\" pulumi-lang-yaml=\"`loadBalancerId`\" pulumi-lang-java=\"`loadBalancerId`\"\u003e`load_balancer_id`\u003c/span\u003e - the id of load balancer instance, the listener belongs to.\n* \u003cspan pulumi-lang-nodejs=\"`frontendPort`\" pulumi-lang-dotnet=\"`FrontendPort`\" pulumi-lang-go=\"`frontendPort`\" pulumi-lang-python=\"`frontend_port`\" pulumi-lang-yaml=\"`frontendPort`\" pulumi-lang-java=\"`frontendPort`\"\u003e`frontend_port`\u003c/span\u003e - the listener port.\n* \u003cspan pulumi-lang-nodejs=\"`protocol`\" pulumi-lang-dotnet=\"`Protocol`\" pulumi-lang-go=\"`protocol`\" pulumi-lang-python=\"`protocol`\" pulumi-lang-yaml=\"`protocol`\" pulumi-lang-java=\"`protocol`\"\u003e`protocol`\u003c/span\u003e      - the listener protocol (such as tcp/udp/http/https, etc).\n* \u003cspan pulumi-lang-nodejs=\"`aclType`\" pulumi-lang-dotnet=\"`AclType`\" pulumi-lang-go=\"`aclType`\" pulumi-lang-python=\"`acl_type`\" pulumi-lang-yaml=\"`aclType`\" pulumi-lang-java=\"`aclType`\"\u003e`acl_type`\u003c/span\u003e      - the type of acl (such as white/black).\n","inputs":{"description":"A collection of arguments for invoking getAcls.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of acls IDs to filter results.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by acl name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which acl belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAcls.\n","properties":{"acls":{"description":"A list of SLB  acls. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:slb/getAclsAcl:getAclsAcl"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of SLB acls IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of SLB acls names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"description":"Resource group ID.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","type":"object"}},"required":["acls","ids","names","id"],"type":"object"}},"alicloud:slb/getApplicationLoadBalancers:getApplicationLoadBalancers":{"description":"This data source provides the server load balancers of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in 1.123.1+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.slb.getApplicationLoadBalancers({\n    nameRegex: \"sample_slb\",\n    tags: {\n        tagKey1: \"tagValue1\",\n        tagKey2: \"tagValue2\",\n    },\n});\nexport const firstSlbId = example.then(example =\u003e example.balancers?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.slb.get_application_load_balancers(name_regex=\"sample_slb\",\n    tags={\n        \"tagKey1\": \"tagValue1\",\n        \"tagKey2\": \"tagValue2\",\n    })\npulumi.export(\"firstSlbId\", example.balancers[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Slb.GetApplicationLoadBalancers.Invoke(new()\n    {\n        NameRegex = \"sample_slb\",\n        Tags = \n        {\n            { \"tagKey1\", \"tagValue1\" },\n            { \"tagKey2\", \"tagValue2\" },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstSlbId\"] = example.Apply(getApplicationLoadBalancersResult =\u003e getApplicationLoadBalancersResult.Balancers[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := slb.GetApplicationLoadBalancers(ctx, \u0026slb.GetApplicationLoadBalancersArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"sample_slb\"),\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"tagKey1\": \"tagValue1\",\n\t\t\t\t\"tagKey2\": \"tagValue2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstSlbId\", example.Balancers[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetApplicationLoadBalancersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = SlbFunctions.getApplicationLoadBalancers(GetApplicationLoadBalancersArgs.builder()\n            .nameRegex(\"sample_slb\")\n            .tags(Map.ofEntries(\n                Map.entry(\"tagKey1\", \"tagValue1\"),\n                Map.entry(\"tagKey2\", \"tagValue2\")\n            ))\n            .build());\n\n        ctx.export(\"firstSlbId\", example.balancers()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:slb:getApplicationLoadBalancers\n      arguments:\n        nameRegex: sample_slb\n        tags:\n          tagKey1: tagValue1\n          tagKey2: tagValue2\noutputs:\n  firstSlbId: ${example.balancers[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getApplicationLoadBalancers.\n","properties":{"address":{"type":"string","description":"Service address of the SLBs.\n"},"addressIpVersion":{"type":"string","description":"The address ip version. Valid values \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e.\n"},"addressType":{"type":"string","description":"The address type of the SLB. Valid values \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`intranet`\" pulumi-lang-dotnet=\"`Intranet`\" pulumi-lang-go=\"`intranet`\" pulumi-lang-python=\"`intranet`\" pulumi-lang-yaml=\"`intranet`\" pulumi-lang-java=\"`intranet`\"\u003e`intranet`\u003c/span\u003e.\n"},"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of SLBs IDs.\n"},"internetChargeType":{"type":"string","description":"The internet charge type. Valid values `PayByBandwidth` and `PayByTraffic`.\n"},"loadBalancerName":{"type":"string","description":"The name of the SLB.\n"},"masterZoneId":{"type":"string","description":"The master zone id of the SLB.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by SLB name.\n"},"networkType":{"type":"string","description":"Network type of the SLBs. Valid values: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"paymentType":{"type":"string","description":"The payment type of SLB. Valid values `PayAsYouGo` and `Subscription`.\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which SLB belongs.\n"},"serverId":{"type":"string","description":"The server ID.\n"},"serverIntranetAddress":{"type":"string","description":"The server intranet address.\n"},"slaveZoneId":{"type":"string","description":"The slave zone id of the SLB.\n"},"status":{"type":"string","description":"SLB current status. Possible values: \u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`locked`\" pulumi-lang-dotnet=\"`Locked`\" pulumi-lang-go=\"`locked`\" pulumi-lang-python=\"`locked`\" pulumi-lang-yaml=\"`locked`\" pulumi-lang-java=\"`locked`\"\u003e`locked`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the SLB instances. The \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e can have a maximum of 5 tag. It must be in the format:\n"},"vpcId":{"type":"string","description":"ID of the VPC linked to the SLBs.\n"},"vswitchId":{"type":"string","description":"ID of the vSwitch linked to the SLBs.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getApplicationLoadBalancers.\n","properties":{"address":{"description":"The IP address that the SLB instance uses to provide services.\n","type":"string"},"addressIpVersion":{"description":"The address ip version.\n","type":"string"},"addressType":{"description":"The address type.\n","type":"string"},"balancers":{"description":"A list of SLBs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:slb/getApplicationLoadBalancersBalancer:getApplicationLoadBalancersBalancer"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of slb IDs.\n","items":{"type":"string"},"type":"array"},"internetChargeType":{"description":"The billing method of the Internet-facing SLB instance.\n","type":"string"},"loadBalancerName":{"description":"The name of the SLB.\n","type":"string"},"masterZoneId":{"description":"Master availability zone of the SLBs.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of slb names.\n","items":{"type":"string"},"type":"array"},"networkType":{"description":"Network type of the SLB. Possible values: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e.\n","type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"paymentType":{"type":"string"},"resourceGroupId":{"description":"The ID of the resource group.\n","type":"string"},"serverId":{"description":"The ID of the Elastic Compute Service (ECS) instance that is specified as a backend server of the CLB instance.\n","type":"string"},"serverIntranetAddress":{"type":"string"},"slaveZoneId":{"description":"Slave availability zone of the SLBs.\n","type":"string"},"slbs":{"deprecationMessage":"Field 'slbs' has deprecated from v1.123.1 and replace by 'balancers'.","items":{"$ref":"#/types/alicloud:slb/getApplicationLoadBalancersSlb:getApplicationLoadBalancersSlb"},"type":"array"},"status":{"description":"SLB current status. Possible values: \u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`locked`\" pulumi-lang-dotnet=\"`Locked`\" pulumi-lang-go=\"`locked`\" pulumi-lang-python=\"`locked`\" pulumi-lang-yaml=\"`locked`\" pulumi-lang-java=\"`locked`\"\u003e`locked`\u003c/span\u003e.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of the SLB.\n","type":"object"},"totalCount":{"type":"integer"},"vpcId":{"description":"ID of the VPC the SLB belongs to.\n","type":"string"},"vswitchId":{"description":"ID of the vSwitch the SLB belongs to.\n","type":"string"}},"required":["balancers","ids","names","slbs","totalCount","id"],"type":"object"}},"alicloud:slb/getAttachments:getAttachments":{"description":"This data source provides the server load balancer attachments of the current Alibaba Cloud user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst sampleDs = alicloud.slb.getAttachments({\n    loadBalancerId: sampleSlb.id,\n});\nexport const firstSlbAttachmentInstanceId = sampleDs.then(sampleDs =\u003e sampleDs.slbAttachments?.[0]?.instanceId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nsample_ds = alicloud.slb.get_attachments(load_balancer_id=sample_slb[\"id\"])\npulumi.export(\"firstSlbAttachmentInstanceId\", sample_ds.slb_attachments[0].instance_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var sampleDs = AliCloud.Slb.GetAttachments.Invoke(new()\n    {\n        LoadBalancerId = sampleSlb.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstSlbAttachmentInstanceId\"] = sampleDs.Apply(getAttachmentsResult =\u003e getAttachmentsResult.SlbAttachments[0]?.InstanceId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsampleDs, err := slb.GetAttachments(ctx, \u0026slb.GetAttachmentsArgs{\n\t\t\tLoadBalancerId: sampleSlb.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstSlbAttachmentInstanceId\", sampleDs.SlbAttachments[0].InstanceId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetAttachmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var sampleDs = SlbFunctions.getAttachments(GetAttachmentsArgs.builder()\n            .loadBalancerId(sampleSlb.id())\n            .build());\n\n        ctx.export(\"firstSlbAttachmentInstanceId\", sampleDs.slbAttachments()[0].instanceId());\n    }\n}\n```\n```yaml\nvariables:\n  sampleDs:\n    fn::invoke:\n      function: alicloud:slb:getAttachments\n      arguments:\n        loadBalancerId: ${sampleSlb.id}\noutputs:\n  firstSlbAttachmentInstanceId: ${sampleDs.slbAttachments[0].instanceId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAttachments.\n","properties":{"instanceIds":{"type":"array","items":{"type":"string"},"description":"List of attached ECS instance IDs.\n"},"loadBalancerId":{"type":"string","description":"ID of the SLB with attachments.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["loadBalancerId"]},"outputs":{"description":"A collection of values returned by getAttachments.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceIds":{"items":{"type":"string"},"type":"array"},"loadBalancerId":{"type":"string"},"outputFile":{"type":"string"},"slbAttachments":{"description":"A list of SLB attachments. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:slb/getAttachmentsSlbAttachment:getAttachmentsSlbAttachment"},"type":"array"}},"required":["loadBalancerId","slbAttachments","id"],"type":"object"}},"alicloud:slb/getBackendServers:getBackendServers":{"description":"This data source provides the server load balancer backend servers related to a server load balancer..\n\n\u003e **NOTE:** Available in 1.53.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst sampleDs = alicloud.slb.getBackendServers({\n    loadBalancerId: sampleSlb.id,\n});\nexport const firstSlbBackendServerId = sampleDs.then(sampleDs =\u003e sampleDs.backendServers?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nsample_ds = alicloud.slb.get_backend_servers(load_balancer_id=sample_slb[\"id\"])\npulumi.export(\"firstSlbBackendServerId\", sample_ds.backend_servers[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var sampleDs = AliCloud.Slb.GetBackendServers.Invoke(new()\n    {\n        LoadBalancerId = sampleSlb.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstSlbBackendServerId\"] = sampleDs.Apply(getBackendServersResult =\u003e getBackendServersResult.BackendServers[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsampleDs, err := slb.GetBackendServers(ctx, \u0026slb.GetBackendServersArgs{\n\t\t\tLoadBalancerId: sampleSlb.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstSlbBackendServerId\", sampleDs.BackendServers[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetBackendServersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var sampleDs = SlbFunctions.getBackendServers(GetBackendServersArgs.builder()\n            .loadBalancerId(sampleSlb.id())\n            .build());\n\n        ctx.export(\"firstSlbBackendServerId\", sampleDs.backendServers()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  sampleDs:\n    fn::invoke:\n      function: alicloud:slb:getBackendServers\n      arguments:\n        loadBalancerId: ${sampleSlb.id}\noutputs:\n  firstSlbBackendServerId: ${sampleDs.backendServers[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBackendServers.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"List of attached ECS instance IDs.\n"},"loadBalancerId":{"type":"string","description":"ID of the SLB with attachments.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["loadBalancerId"]},"outputs":{"description":"A collection of values returned by getBackendServers.\n","properties":{"backendServers":{"items":{"$ref":"#/types/alicloud:slb/getBackendServersBackendServer:getBackendServersBackendServer"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"loadBalancerId":{"type":"string"},"outputFile":{"type":"string"}},"required":["backendServers","ids","loadBalancerId","id"],"type":"object"}},"alicloud:slb/getCaCertificates:getCaCertificates":{"description":"This data source provides the CA certificate list.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst sampleDs = alicloud.slb.getCaCertificates({});\nexport const firstSlbCaCertificateId = sampleDs.then(sampleDs =\u003e sampleDs.certificates?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nsample_ds = alicloud.slb.get_ca_certificates()\npulumi.export(\"firstSlbCaCertificateId\", sample_ds.certificates[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var sampleDs = AliCloud.Slb.GetCaCertificates.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstSlbCaCertificateId\"] = sampleDs.Apply(getCaCertificatesResult =\u003e getCaCertificatesResult.Certificates[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsampleDs, err := slb.GetCaCertificates(ctx, \u0026slb.GetCaCertificatesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstSlbCaCertificateId\", sampleDs.Certificates[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetCaCertificatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var sampleDs = SlbFunctions.getCaCertificates(GetCaCertificatesArgs.builder()\n            .build());\n\n        ctx.export(\"firstSlbCaCertificateId\", sampleDs.certificates()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  sampleDs:\n    fn::invoke:\n      function: alicloud:slb:getCaCertificates\n      arguments: {}\noutputs:\n  firstSlbCaCertificateId: ${sampleDs.certificates[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCaCertificates.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of ca certificates IDs to filter results.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by ca certificate name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which ca certificates belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCaCertificates.\n","properties":{"certificates":{"description":"A list of SLB ca certificates. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:slb/getCaCertificatesCertificate:getCaCertificatesCertificate"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of SLB ca certificates IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of SLB ca certificates names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"description":"The resource group Id of CA certificate.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"(Available in v1.66.0+) A mapping of tags to assign to the resource.\n","type":"object"}},"required":["certificates","ids","names","id"],"type":"object"}},"alicloud:slb/getDomainExtensions:getDomainExtensions":{"description":"This data source provides the domain extensions associated with a server load balancer listener.\n\n\u003e **NOTE:** Available in 1.60.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst foo = alicloud.slb.getDomainExtensions({\n    ids: [\"fake-de-id\"],\n    loadBalancerId: \"fake-lb-id\",\n    frontendPort: \"fake-port\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfoo = alicloud.slb.get_domain_extensions(ids=[\"fake-de-id\"],\n    load_balancer_id=\"fake-lb-id\",\n    frontend_port=\"fake-port\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = AliCloud.Slb.GetDomainExtensions.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"fake-de-id\",\n        },\n        LoadBalancerId = \"fake-lb-id\",\n        FrontendPort = \"fake-port\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := slb.GetDomainExtensions(ctx, \u0026slb.GetDomainExtensionsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"fake-de-id\",\n\t\t\t},\n\t\t\tLoadBalancerId: \"fake-lb-id\",\n\t\t\tFrontendPort:   \"fake-port\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetDomainExtensionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var foo = SlbFunctions.getDomainExtensions(GetDomainExtensionsArgs.builder()\n            .ids(\"fake-de-id\")\n            .loadBalancerId(\"fake-lb-id\")\n            .frontendPort(\"fake-port\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      function: alicloud:slb:getDomainExtensions\n      arguments:\n        ids:\n          - fake-de-id\n        loadBalancerId: fake-lb-id\n        frontendPort: fake-port\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDomainExtensions.\n","properties":{"frontendPort":{"type":"integer","description":"The frontend port used by the HTTPS listener of the SLB instance. Valid values: 1–65535.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"IDs of the SLB domain extensions.\n"},"loadBalancerId":{"type":"string","description":"The ID of the SLB instance.\n"},"outputFile":{"type":"string"}},"type":"object","required":["frontendPort","loadBalancerId"]},"outputs":{"description":"A collection of values returned by getDomainExtensions.\n","properties":{"extensions":{"description":"A list of SLB domain extension. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:slb/getDomainExtensionsExtension:getDomainExtensionsExtension"},"type":"array"},"frontendPort":{"type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"loadBalancerId":{"type":"string"},"outputFile":{"type":"string"}},"required":["extensions","frontendPort","ids","loadBalancerId","id"],"type":"object"}},"alicloud:slb/getListeners:getListeners":{"description":"This data source provides the listeners related to a server load balancer of the current Alibaba Cloud user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.slb.ApplicationLoadBalancer(\"default\", {loadBalancerName: \"tf-testAccSlbListenertcp\"});\nconst tcp = new alicloud.slb.Listener(\"tcp\", {\n    loadBalancerId: _default.id,\n    backendPort: 22,\n    frontendPort: 22,\n    protocol: \"tcp\",\n    bandwidth: 10,\n    healthCheckType: \"tcp\",\n    persistenceTimeout: 3600,\n    healthyThreshold: 8,\n    unhealthyThreshold: 8,\n    healthCheckTimeout: 8,\n    healthCheckInterval: 5,\n    healthCheckHttpCode: \"http_2xx\",\n    healthCheckConnectPort: 20,\n    healthCheckUri: \"/console\",\n    establishedTimeout: 600,\n});\nconst sampleDs = alicloud.slb.getListenersOutput({\n    loadBalancerId: _default.id,\n});\nexport const firstSlbListenerProtocol = sampleDs.apply(sampleDs =\u003e sampleDs.slbListeners?.[0]?.protocol);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.slb.ApplicationLoadBalancer(\"default\", load_balancer_name=\"tf-testAccSlbListenertcp\")\ntcp = alicloud.slb.Listener(\"tcp\",\n    load_balancer_id=default.id,\n    backend_port=22,\n    frontend_port=22,\n    protocol=\"tcp\",\n    bandwidth=10,\n    health_check_type=\"tcp\",\n    persistence_timeout=3600,\n    healthy_threshold=8,\n    unhealthy_threshold=8,\n    health_check_timeout=8,\n    health_check_interval=5,\n    health_check_http_code=\"http_2xx\",\n    health_check_connect_port=20,\n    health_check_uri=\"/console\",\n    established_timeout=600)\nsample_ds = alicloud.slb.get_listeners_output(load_balancer_id=default.id)\npulumi.export(\"firstSlbListenerProtocol\", sample_ds.slb_listeners[0].protocol)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Slb.ApplicationLoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = \"tf-testAccSlbListenertcp\",\n    });\n\n    var tcp = new AliCloud.Slb.Listener(\"tcp\", new()\n    {\n        LoadBalancerId = @default.Id,\n        BackendPort = 22,\n        FrontendPort = 22,\n        Protocol = \"tcp\",\n        Bandwidth = 10,\n        HealthCheckType = \"tcp\",\n        PersistenceTimeout = 3600,\n        HealthyThreshold = 8,\n        UnhealthyThreshold = 8,\n        HealthCheckTimeout = 8,\n        HealthCheckInterval = 5,\n        HealthCheckHttpCode = \"http_2xx\",\n        HealthCheckConnectPort = 20,\n        HealthCheckUri = \"/console\",\n        EstablishedTimeout = 600,\n    });\n\n    var sampleDs = AliCloud.Slb.GetListeners.Invoke(new()\n    {\n        LoadBalancerId = @default.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstSlbListenerProtocol\"] = sampleDs.Apply(getListenersResult =\u003e getListenersResult.SlbListeners[0]?.Protocol),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := slb.NewApplicationLoadBalancer(ctx, \"default\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(\"tf-testAccSlbListenertcp\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = slb.NewListener(ctx, \"tcp\", \u0026slb.ListenerArgs{\n\t\t\tLoadBalancerId:         _default.ID(),\n\t\t\tBackendPort:            pulumi.Int(22),\n\t\t\tFrontendPort:           pulumi.Int(22),\n\t\t\tProtocol:               pulumi.String(\"tcp\"),\n\t\t\tBandwidth:              pulumi.Int(10),\n\t\t\tHealthCheckType:        pulumi.String(\"tcp\"),\n\t\t\tPersistenceTimeout:     pulumi.Int(3600),\n\t\t\tHealthyThreshold:       pulumi.Int(8),\n\t\t\tUnhealthyThreshold:     pulumi.Int(8),\n\t\t\tHealthCheckTimeout:     pulumi.Int(8),\n\t\t\tHealthCheckInterval:    pulumi.Int(5),\n\t\t\tHealthCheckHttpCode:    pulumi.String(\"http_2xx\"),\n\t\t\tHealthCheckConnectPort: pulumi.Int(20),\n\t\t\tHealthCheckUri:         pulumi.String(\"/console\"),\n\t\t\tEstablishedTimeout:     pulumi.Int(600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleDs := slb.GetListenersOutput(ctx, slb.GetListenersOutputArgs{\n\t\t\tLoadBalancerId: _default.ID(),\n\t\t}, nil)\n\t\tctx.Export(\"firstSlbListenerProtocol\", sampleDs.ApplyT(func(sampleDs slb.GetListenersResult) (*string, error) {\n\t\t\treturn \u0026sampleDs.SlbListeners[0].Protocol, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.slb.Listener;\nimport com.pulumi.alicloud.slb.ListenerArgs;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetListenersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new ApplicationLoadBalancer(\"default\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(\"tf-testAccSlbListenertcp\")\n            .build());\n\n        var tcp = new Listener(\"tcp\", ListenerArgs.builder()\n            .loadBalancerId(default_.id())\n            .backendPort(22)\n            .frontendPort(22)\n            .protocol(\"tcp\")\n            .bandwidth(10)\n            .healthCheckType(\"tcp\")\n            .persistenceTimeout(3600)\n            .healthyThreshold(8)\n            .unhealthyThreshold(8)\n            .healthCheckTimeout(8)\n            .healthCheckInterval(5)\n            .healthCheckHttpCode(\"http_2xx\")\n            .healthCheckConnectPort(20)\n            .healthCheckUri(\"/console\")\n            .establishedTimeout(600)\n            .build());\n\n        final var sampleDs = SlbFunctions.getListeners(GetListenersArgs.builder()\n            .loadBalancerId(default_.id())\n            .build());\n\n        ctx.export(\"firstSlbListenerProtocol\", sampleDs.applyValue(_sampleDs -\u003e _sampleDs.slbListeners()[0].protocol()));\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:slb:ApplicationLoadBalancer\n    properties:\n      loadBalancerName: tf-testAccSlbListenertcp\n  tcp:\n    type: alicloud:slb:Listener\n    properties:\n      loadBalancerId: ${default.id}\n      backendPort: '22'\n      frontendPort: '22'\n      protocol: tcp\n      bandwidth: '10'\n      healthCheckType: tcp\n      persistenceTimeout: 3600\n      healthyThreshold: 8\n      unhealthyThreshold: 8\n      healthCheckTimeout: 8\n      healthCheckInterval: 5\n      healthCheckHttpCode: http_2xx\n      healthCheckConnectPort: 20\n      healthCheckUri: /console\n      establishedTimeout: 600\nvariables:\n  sampleDs:\n    fn::invoke:\n      function: alicloud:slb:getListeners\n      arguments:\n        loadBalancerId: ${default.id}\noutputs:\n  firstSlbListenerProtocol: ${sampleDs.slbListeners[0].protocol}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getListeners.\n","properties":{"descriptionRegex":{"type":"string","description":"A regex string to filter results by SLB listener description.\n"},"frontendPort":{"type":"integer","description":"Filter listeners by the specified frontend port.\n"},"loadBalancerId":{"type":"string","description":"ID of the SLB with listeners.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"protocol":{"type":"string","description":"Filter listeners by the specified protocol. Valid values: \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e.\n"}},"type":"object","required":["loadBalancerId"]},"outputs":{"description":"A collection of values returned by getListeners.\n","properties":{"descriptionRegex":{"type":"string"},"frontendPort":{"description":"Frontend port used to receive incoming traffic and distribute it to the backend servers.\n","type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"loadBalancerId":{"type":"string"},"outputFile":{"type":"string"},"protocol":{"description":"Listener protocol. Possible values: \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e.\n","type":"string"},"slbListeners":{"description":"A list of SLB listeners. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:slb/getListenersSlbListener:getListenersSlbListener"},"type":"array"}},"required":["loadBalancerId","slbListeners","id"],"type":"object"}},"alicloud:slb/getLoadBalancers:getLoadBalancers":{"description":"\u003e **DEPRECATED:** This datasource has been renamed to\u003cspan pulumi-lang-nodejs=\" alicloud.slb.getApplicationLoadBalancers \" pulumi-lang-dotnet=\" alicloud.slb.getApplicationLoadBalancers \" pulumi-lang-go=\" slb.getApplicationLoadBalancers \" pulumi-lang-python=\" slb_get_application_load_balancers \" pulumi-lang-yaml=\" alicloud.slb.getApplicationLoadBalancers \" pulumi-lang-java=\" alicloud.slb.getApplicationLoadBalancers \"\u003e alicloud.slb.getApplicationLoadBalancers \u003c/span\u003efrom version 1.123.1.\n\nThis data source provides the server load balancers of the current Alibaba Cloud user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = new alicloud.slb.LoadBalancer(\"default\", {name: \"sample_slb\"});\nconst slbsDs = alicloud.slb.getLoadBalancers({\n    nameRegex: \"sample_slb\",\n});\nexport const firstSlbId = slbsDs.then(slbsDs =\u003e slbsDs.slbs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.slb.LoadBalancer(\"default\", name=\"sample_slb\")\nslbs_ds = alicloud.slb.get_load_balancers(name_regex=\"sample_slb\")\npulumi.export(\"firstSlbId\", slbs_ds.slbs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = new AliCloud.Slb.LoadBalancer(\"default\", new()\n    {\n        Name = \"sample_slb\",\n    });\n\n    var slbsDs = AliCloud.Slb.GetLoadBalancers.Invoke(new()\n    {\n        NameRegex = \"sample_slb\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstSlbId\"] = slbsDs.Apply(getLoadBalancersResult =\u003e getLoadBalancersResult.Slbs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := slb.NewLoadBalancer(ctx, \"default\", \u0026slb.LoadBalancerArgs{\n\t\t\tName: pulumi.String(\"sample_slb\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tslbsDs, err := slb.GetLoadBalancers(ctx, \u0026slb.GetLoadBalancersArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"sample_slb\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstSlbId\", slbsDs.Slbs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.LoadBalancer;\nimport com.pulumi.alicloud.slb.LoadBalancerArgs;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetLoadBalancersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var default_ = new LoadBalancer(\"default\", LoadBalancerArgs.builder()\n            .name(\"sample_slb\")\n            .build());\n\n        final var slbsDs = SlbFunctions.getLoadBalancers(GetLoadBalancersArgs.builder()\n            .nameRegex(\"sample_slb\")\n            .build());\n\n        ctx.export(\"firstSlbId\", slbsDs.slbs()[0].id());\n    }\n}\n```\n```yaml\nresources:\n  default:\n    type: alicloud:slb:LoadBalancer\n    properties:\n      name: sample_slb\nvariables:\n  slbsDs:\n    fn::invoke:\n      function: alicloud:slb:getLoadBalancers\n      arguments:\n        nameRegex: sample_slb\noutputs:\n  firstSlbId: ${slbsDs.slbs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLoadBalancers.\n","properties":{"address":{"type":"string","description":"Service address of the SLBs.\n"},"addressIpVersion":{"type":"string"},"addressType":{"type":"string"},"enableDetails":{"type":"boolean"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of SLBs IDs.\n"},"internetChargeType":{"type":"string"},"loadBalancerName":{"type":"string"},"masterZoneId":{"type":"string"},"nameRegex":{"type":"string","description":"A regex string to filter results by SLB name.\n"},"networkType":{"type":"string","description":"Network type of the SLBs. Valid values: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"paymentType":{"type":"string"},"resourceGroupId":{"type":"string","description":"The Id of resource group which SLB belongs.\n"},"serverId":{"type":"string"},"serverIntranetAddress":{"type":"string"},"slaveZoneId":{"type":"string"},"status":{"type":"string","description":"SLB current status. Possible values: \u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`locked`\" pulumi-lang-dotnet=\"`Locked`\" pulumi-lang-go=\"`locked`\" pulumi-lang-python=\"`locked`\" pulumi-lang-yaml=\"`locked`\" pulumi-lang-java=\"`locked`\"\u003e`locked`\u003c/span\u003e.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of tags assigned to the SLB instances. The \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e can have a maximum of 5 tag. It must be in the format:\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst taggedInstances = alicloud.slb.getLoadBalancers({\n    tags: {\n        tagKey1: \"tagValue1\",\n        tagKey2: \"tagValue2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ntagged_instances = alicloud.slb.get_load_balancers(tags={\n    \"tagKey1\": \"tagValue1\",\n    \"tagKey2\": \"tagValue2\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var taggedInstances = AliCloud.Slb.GetLoadBalancers.Invoke(new()\n    {\n        Tags = \n        {\n            { \"tagKey1\", \"tagValue1\" },\n            { \"tagKey2\", \"tagValue2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := slb.GetLoadBalancers(ctx, \u0026slb.GetLoadBalancersArgs{\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"tagKey1\": \"tagValue1\",\n\t\t\t\t\"tagKey2\": \"tagValue2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetLoadBalancersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var taggedInstances = SlbFunctions.getLoadBalancers(GetLoadBalancersArgs.builder()\n            .tags(Map.ofEntries(\n                Map.entry(\"tagKey1\", \"tagValue1\"),\n                Map.entry(\"tagKey2\", \"tagValue2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  taggedInstances:\n    fn::invoke:\n      function: alicloud:slb:getLoadBalancers\n      arguments:\n        tags:\n          tagKey1: tagValue1\n          tagKey2: tagValue2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n"},"vpcId":{"type":"string","description":"ID of the VPC linked to the SLBs.\n"},"vswitchId":{"type":"string","description":"ID of the vSwitch linked to the SLBs.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLoadBalancers.\n","properties":{"address":{"description":"Service address of the SLB.\n","type":"string"},"addressIpVersion":{"type":"string"},"addressType":{"type":"string"},"balancers":{"items":{"$ref":"#/types/alicloud:slb/getLoadBalancersBalancer:getLoadBalancersBalancer"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of slb IDs.\n","items":{"type":"string"},"type":"array"},"internetChargeType":{"type":"string"},"loadBalancerName":{"type":"string"},"masterZoneId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of slb names.\n","items":{"type":"string"},"type":"array"},"networkType":{"description":"Network type of the SLB. Possible values: \u003cspan pulumi-lang-nodejs=\"`vpc`\" pulumi-lang-dotnet=\"`Vpc`\" pulumi-lang-go=\"`vpc`\" pulumi-lang-python=\"`vpc`\" pulumi-lang-yaml=\"`vpc`\" pulumi-lang-java=\"`vpc`\"\u003e`vpc`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`classic`\" pulumi-lang-dotnet=\"`Classic`\" pulumi-lang-go=\"`classic`\" pulumi-lang-python=\"`classic`\" pulumi-lang-yaml=\"`classic`\" pulumi-lang-java=\"`classic`\"\u003e`classic`\u003c/span\u003e.\n","type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"paymentType":{"type":"string"},"resourceGroupId":{"type":"string"},"serverId":{"type":"string"},"serverIntranetAddress":{"type":"string"},"slaveZoneId":{"type":"string"},"slbs":{"deprecationMessage":"Field 'slbs' has deprecated from v1.123.1 and replace by 'balancers'.","description":"A list of SLBs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:slb/getLoadBalancersSlb:getLoadBalancersSlb"},"type":"array"},"status":{"description":"SLB current status. Possible values: \u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`locked`\" pulumi-lang-dotnet=\"`Locked`\" pulumi-lang-go=\"`locked`\" pulumi-lang-python=\"`locked`\" pulumi-lang-yaml=\"`locked`\" pulumi-lang-java=\"`locked`\"\u003e`locked`\u003c/span\u003e.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A map of tags assigned to the SLB instance.\n","type":"object"},"totalCount":{"type":"integer"},"vpcId":{"description":"ID of the VPC the SLB belongs to.\n","type":"string"},"vswitchId":{"description":"ID of the vSwitch the SLB belongs to.\n","type":"string"}},"required":["balancers","ids","names","slbs","totalCount","id"],"type":"object"}},"alicloud:slb/getMasterSlaveServerGroups:getMasterSlaveServerGroups":{"description":"This data source provides the master slave server groups related to a server load balancer.\n\n\u003e **NOTE:** Available in 1.54.0+\n\n","inputs":{"description":"A collection of arguments for invoking getMasterSlaveServerGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of master slave server group IDs to filter results.\n"},"loadBalancerId":{"type":"string","description":"ID of the SLB.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by master slave server group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["loadBalancerId"]},"outputs":{"description":"A collection of values returned by getMasterSlaveServerGroups.\n","properties":{"groups":{"description":"A list of SLB master slave server groups. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:slb/getMasterSlaveServerGroupsGroup:getMasterSlaveServerGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of SLB master slave server groups IDs.\n","items":{"type":"string"},"type":"array"},"loadBalancerId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of SLB master slave server groups names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["groups","ids","loadBalancerId","names","id"],"type":"object"}},"alicloud:slb/getRules:getRules":{"description":"This data source provides the rules associated with a server load balancer listener.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"slbrulebasicconfig\";\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    name: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/16\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"default\", {\n    loadBalancerName: name,\n    vswitchId: defaultSwitch.id,\n});\nconst defaultListener = new alicloud.slb.Listener(\"default\", {\n    loadBalancerId: defaultApplicationLoadBalancer.id,\n    backendPort: 22,\n    frontendPort: 22,\n    protocol: \"http\",\n    bandwidth: 5,\n    healthCheckConnectPort: 20,\n});\nconst defaultServerGroup = new alicloud.slb.ServerGroup(\"default\", {loadBalancerId: defaultApplicationLoadBalancer.id});\nconst defaultRule = new alicloud.slb.Rule(\"default\", {\n    loadBalancerId: defaultApplicationLoadBalancer.id,\n    frontendPort: defaultListener.frontendPort,\n    name: name,\n    domain: \"*.aliyun.com\",\n    url: \"/image\",\n    serverGroupId: defaultServerGroup.id,\n});\nconst sampleDs = defaultApplicationLoadBalancer.id.apply(id =\u003e alicloud.slb.getRulesOutput({\n    loadBalancerId: id,\n    frontendPort: 22,\n}));\nexport const firstSlbRuleId = sampleDs.apply(sampleDs =\u003e sampleDs.slbRules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"slbrulebasicconfig\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/16\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"default\",\n    load_balancer_name=name,\n    vswitch_id=default_switch.id)\ndefault_listener = alicloud.slb.Listener(\"default\",\n    load_balancer_id=default_application_load_balancer.id,\n    backend_port=22,\n    frontend_port=22,\n    protocol=\"http\",\n    bandwidth=5,\n    health_check_connect_port=20)\ndefault_server_group = alicloud.slb.ServerGroup(\"default\", load_balancer_id=default_application_load_balancer.id)\ndefault_rule = alicloud.slb.Rule(\"default\",\n    load_balancer_id=default_application_load_balancer.id,\n    frontend_port=default_listener.frontend_port,\n    name=name,\n    domain=\"*.aliyun.com\",\n    url=\"/image\",\n    server_group_id=default_server_group.id)\nsample_ds = default_application_load_balancer.id.apply(lambda id: alicloud.slb.get_rules_output(load_balancer_id=id,\n    frontend_port=22))\npulumi.export(\"firstSlbRuleId\", sample_ds.slb_rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"slbrulebasicconfig\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        Name = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/16\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = name,\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var defaultListener = new AliCloud.Slb.Listener(\"default\", new()\n    {\n        LoadBalancerId = defaultApplicationLoadBalancer.Id,\n        BackendPort = 22,\n        FrontendPort = 22,\n        Protocol = \"http\",\n        Bandwidth = 5,\n        HealthCheckConnectPort = 20,\n    });\n\n    var defaultServerGroup = new AliCloud.Slb.ServerGroup(\"default\", new()\n    {\n        LoadBalancerId = defaultApplicationLoadBalancer.Id,\n    });\n\n    var defaultRule = new AliCloud.Slb.Rule(\"default\", new()\n    {\n        LoadBalancerId = defaultApplicationLoadBalancer.Id,\n        FrontendPort = defaultListener.FrontendPort,\n        Name = name,\n        Domain = \"*.aliyun.com\",\n        Url = \"/image\",\n        ServerGroupId = defaultServerGroup.Id,\n    });\n\n    var sampleDs = AliCloud.Slb.GetRules.Invoke(new()\n    {\n        LoadBalancerId = defaultApplicationLoadBalancer.Id,\n        FrontendPort = 22,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstSlbRuleId\"] = sampleDs.Apply(getRulesResult =\u003e getRulesResult.SlbRules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"slbrulebasicconfig\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tName:      pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/16\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplicationLoadBalancer, err := slb.NewApplicationLoadBalancer(ctx, \"default\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tVswitchId:        defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultListener, err := slb.NewListener(ctx, \"default\", \u0026slb.ListenerArgs{\n\t\t\tLoadBalancerId:         defaultApplicationLoadBalancer.ID(),\n\t\t\tBackendPort:            pulumi.Int(22),\n\t\t\tFrontendPort:           pulumi.Int(22),\n\t\t\tProtocol:               pulumi.String(\"http\"),\n\t\t\tBandwidth:              pulumi.Int(5),\n\t\t\tHealthCheckConnectPort: pulumi.Int(20),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultServerGroup, err := slb.NewServerGroup(ctx, \"default\", \u0026slb.ServerGroupArgs{\n\t\t\tLoadBalancerId: defaultApplicationLoadBalancer.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = slb.NewRule(ctx, \"default\", \u0026slb.RuleArgs{\n\t\t\tLoadBalancerId: defaultApplicationLoadBalancer.ID(),\n\t\t\tFrontendPort:   defaultListener.FrontendPort,\n\t\t\tName:           pulumi.String(name),\n\t\t\tDomain:         pulumi.String(\"*.aliyun.com\"),\n\t\t\tUrl:            pulumi.String(\"/image\"),\n\t\t\tServerGroupId:  defaultServerGroup.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleDs := defaultApplicationLoadBalancer.ID().ApplyT(func(id string) (slb.GetRulesResult, error) {\n\t\t\treturn slb.GetRulesResult(interface{}(slb.GetRules(ctx, \u0026slb.GetRulesArgs{\n\t\t\t\tLoadBalancerId: id,\n\t\t\t\tFrontendPort:   22,\n\t\t\t}, nil))), nil\n\t\t}).(slb.GetRulesResultOutput)\n\t\tctx.Export(\"firstSlbRuleId\", sampleDs.ApplyT(func(sampleDs slb.GetRulesResult) (*string, error) {\n\t\t\treturn \u0026sampleDs.SlbRules[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.slb.Listener;\nimport com.pulumi.alicloud.slb.ListenerArgs;\nimport com.pulumi.alicloud.slb.ServerGroup;\nimport com.pulumi.alicloud.slb.ServerGroupArgs;\nimport com.pulumi.alicloud.slb.Rule;\nimport com.pulumi.alicloud.slb.RuleArgs;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"slbrulebasicconfig\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .name(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/16\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultApplicationLoadBalancer = new ApplicationLoadBalancer(\"defaultApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var defaultListener = new Listener(\"defaultListener\", ListenerArgs.builder()\n            .loadBalancerId(defaultApplicationLoadBalancer.id())\n            .backendPort(22)\n            .frontendPort(22)\n            .protocol(\"http\")\n            .bandwidth(5)\n            .healthCheckConnectPort(20)\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .loadBalancerId(defaultApplicationLoadBalancer.id())\n            .build());\n\n        var defaultRule = new Rule(\"defaultRule\", RuleArgs.builder()\n            .loadBalancerId(defaultApplicationLoadBalancer.id())\n            .frontendPort(defaultListener.frontendPort())\n            .name(name)\n            .domain(\"*.aliyun.com\")\n            .url(\"/image\")\n            .serverGroupId(defaultServerGroup.id())\n            .build());\n\n        final var sampleDs = defaultApplicationLoadBalancer.id().applyValue(_id -\u003e SlbFunctions.getRules(GetRulesArgs.builder()\n            .loadBalancerId(_id)\n            .frontendPort(22)\n            .build()));\n\n        ctx.export(\"firstSlbRuleId\", sampleDs.applyValue(_sampleDs -\u003e _sampleDs.slbRules()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: slbrulebasicconfig\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      name: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/16\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultApplicationLoadBalancer:\n    type: alicloud:slb:ApplicationLoadBalancer\n    name: default\n    properties:\n      loadBalancerName: ${name}\n      vswitchId: ${defaultSwitch.id}\n  defaultListener:\n    type: alicloud:slb:Listener\n    name: default\n    properties:\n      loadBalancerId: ${defaultApplicationLoadBalancer.id}\n      backendPort: 22\n      frontendPort: 22\n      protocol: http\n      bandwidth: 5\n      healthCheckConnectPort: '20'\n  defaultServerGroup:\n    type: alicloud:slb:ServerGroup\n    name: default\n    properties:\n      loadBalancerId: ${defaultApplicationLoadBalancer.id}\n  defaultRule:\n    type: alicloud:slb:Rule\n    name: default\n    properties:\n      loadBalancerId: ${defaultApplicationLoadBalancer.id}\n      frontendPort: ${defaultListener.frontendPort}\n      name: ${name}\n      domain: '*.aliyun.com'\n      url: /image\n      serverGroupId: ${defaultServerGroup.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  sampleDs:\n    fn::invoke:\n      function: alicloud:slb:getRules\n      arguments:\n        loadBalancerId: ${defaultApplicationLoadBalancer.id}\n        frontendPort: 22\noutputs:\n  firstSlbRuleId: ${sampleDs.slbRules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRules.\n","properties":{"frontendPort":{"type":"integer","description":"SLB listener port.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of rules IDs to filter results.\n"},"loadBalancerId":{"type":"string","description":"ID of the SLB with listener rules.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["frontendPort","loadBalancerId"]},"outputs":{"description":"A collection of values returned by getRules.\n","properties":{"frontendPort":{"type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of SLB listener rules IDs.\n","items":{"type":"string"},"type":"array"},"loadBalancerId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of SLB listener rules names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"slbRules":{"description":"A list of SLB listener rules. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:slb/getRulesSlbRule:getRulesSlbRule"},"type":"array"}},"required":["frontendPort","ids","loadBalancerId","names","slbRules","id"],"type":"object"}},"alicloud:slb/getServerCertificates:getServerCertificates":{"description":"This data source provides the server certificate list.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst sampleDs = alicloud.slb.getServerCertificates({});\nexport const firstSlbServerCertificateId = sampleDs.then(sampleDs =\u003e sampleDs.certificates?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nsample_ds = alicloud.slb.get_server_certificates()\npulumi.export(\"firstSlbServerCertificateId\", sample_ds.certificates[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var sampleDs = AliCloud.Slb.GetServerCertificates.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstSlbServerCertificateId\"] = sampleDs.Apply(getServerCertificatesResult =\u003e getServerCertificatesResult.Certificates[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsampleDs, err := slb.GetServerCertificates(ctx, \u0026slb.GetServerCertificatesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstSlbServerCertificateId\", sampleDs.Certificates[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetServerCertificatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var sampleDs = SlbFunctions.getServerCertificates(GetServerCertificatesArgs.builder()\n            .build());\n\n        ctx.export(\"firstSlbServerCertificateId\", sampleDs.certificates()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  sampleDs:\n    fn::invoke:\n      function: alicloud:slb:getServerCertificates\n      arguments: {}\noutputs:\n  firstSlbServerCertificateId: ${sampleDs.certificates[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerCertificates.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of server certificates IDs to filter results.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by server certificate name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the slb server certificates belongs.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServerCertificates.\n","properties":{"certificates":{"description":"A list of SLB server certificates. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:slb/getServerCertificatesCertificate:getServerCertificatesCertificate"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of SLB server certificates IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of SLB server certificates names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"description":"The Id of resource group which the slb server certificates belongs.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"(Available in v1.66.0+) A mapping of tags to assign to the resource.\n","type":"object"}},"required":["certificates","ids","names","id"],"type":"object"}},"alicloud:slb/getServerGroups:getServerGroups":{"description":"This data source provides the VServer groups related to a server load balancer.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"slbservergroups\";\nconst _default = alicloud.getZones({\n    availableDiskCategory: \"cloud_efficiency\",\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/16\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/16\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultApplicationLoadBalancer = new alicloud.slb.ApplicationLoadBalancer(\"default\", {\n    loadBalancerName: name,\n    vswitchId: defaultSwitch.id,\n});\nconst defaultServerGroup = new alicloud.slb.ServerGroup(\"default\", {loadBalancerId: defaultApplicationLoadBalancer.id});\nconst sampleDs = alicloud.slb.getServerGroupsOutput({\n    loadBalancerId: defaultApplicationLoadBalancer.id,\n});\nexport const firstSlbServerGroupId = sampleDs.apply(sampleDs =\u003e sampleDs.slbServerGroups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"slbservergroups\"\ndefault = alicloud.get_zones(available_disk_category=\"cloud_efficiency\",\n    available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/16\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/16\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_application_load_balancer = alicloud.slb.ApplicationLoadBalancer(\"default\",\n    load_balancer_name=name,\n    vswitch_id=default_switch.id)\ndefault_server_group = alicloud.slb.ServerGroup(\"default\", load_balancer_id=default_application_load_balancer.id)\nsample_ds = alicloud.slb.get_server_groups_output(load_balancer_id=default_application_load_balancer.id)\npulumi.export(\"firstSlbServerGroupId\", sample_ds.slb_server_groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"slbservergroups\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableDiskCategory = \"cloud_efficiency\",\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/16\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/16\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultApplicationLoadBalancer = new AliCloud.Slb.ApplicationLoadBalancer(\"default\", new()\n    {\n        LoadBalancerName = name,\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var defaultServerGroup = new AliCloud.Slb.ServerGroup(\"default\", new()\n    {\n        LoadBalancerId = defaultApplicationLoadBalancer.Id,\n    });\n\n    var sampleDs = AliCloud.Slb.GetServerGroups.Invoke(new()\n    {\n        LoadBalancerId = defaultApplicationLoadBalancer.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstSlbServerGroupId\"] = sampleDs.Apply(getServerGroupsResult =\u003e getServerGroupsResult.SlbServerGroups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"slbservergroups\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableDiskCategory:     pulumi.StringRef(\"cloud_efficiency\"),\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/16\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultApplicationLoadBalancer, err := slb.NewApplicationLoadBalancer(ctx, \"default\", \u0026slb.ApplicationLoadBalancerArgs{\n\t\t\tLoadBalancerName: pulumi.String(name),\n\t\t\tVswitchId:        defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = slb.NewServerGroup(ctx, \"default\", \u0026slb.ServerGroupArgs{\n\t\t\tLoadBalancerId: defaultApplicationLoadBalancer.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleDs := slb.GetServerGroupsOutput(ctx, slb.GetServerGroupsOutputArgs{\n\t\t\tLoadBalancerId: defaultApplicationLoadBalancer.ID(),\n\t\t}, nil)\n\t\tctx.Export(\"firstSlbServerGroupId\", sampleDs.ApplyT(func(sampleDs slb.GetServerGroupsResult) (*string, error) {\n\t\t\treturn \u0026sampleDs.SlbServerGroups[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancer;\nimport com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;\nimport com.pulumi.alicloud.slb.ServerGroup;\nimport com.pulumi.alicloud.slb.ServerGroupArgs;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetServerGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"slbservergroups\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableDiskCategory(\"cloud_efficiency\")\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/16\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/16\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultApplicationLoadBalancer = new ApplicationLoadBalancer(\"defaultApplicationLoadBalancer\", ApplicationLoadBalancerArgs.builder()\n            .loadBalancerName(name)\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var defaultServerGroup = new ServerGroup(\"defaultServerGroup\", ServerGroupArgs.builder()\n            .loadBalancerId(defaultApplicationLoadBalancer.id())\n            .build());\n\n        final var sampleDs = SlbFunctions.getServerGroups(GetServerGroupsArgs.builder()\n            .loadBalancerId(defaultApplicationLoadBalancer.id())\n            .build());\n\n        ctx.export(\"firstSlbServerGroupId\", sampleDs.applyValue(_sampleDs -\u003e _sampleDs.slbServerGroups()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: slbservergroups\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/16\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/16\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultApplicationLoadBalancer:\n    type: alicloud:slb:ApplicationLoadBalancer\n    name: default\n    properties:\n      loadBalancerName: ${name}\n      vswitchId: ${defaultSwitch.id}\n  defaultServerGroup:\n    type: alicloud:slb:ServerGroup\n    name: default\n    properties:\n      loadBalancerId: ${defaultApplicationLoadBalancer.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableDiskCategory: cloud_efficiency\n        availableResourceCreation: VSwitch\n  sampleDs:\n    fn::invoke:\n      function: alicloud:slb:getServerGroups\n      arguments:\n        loadBalancerId: ${defaultApplicationLoadBalancer.id}\noutputs:\n  firstSlbServerGroupId: ${sampleDs.slbServerGroups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of VServer group IDs to filter results.\n"},"loadBalancerId":{"type":"string","description":"ID of the SLB.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by VServer group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["loadBalancerId"]},"outputs":{"description":"A collection of values returned by getServerGroups.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of SLB VServer groups IDs.\n","items":{"type":"string"},"type":"array"},"loadBalancerId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of SLB VServer groups names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"slbServerGroups":{"description":"A list of SLB VServer groups. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:slb/getServerGroupsSlbServerGroup:getServerGroupsSlbServerGroup"},"type":"array"}},"required":["ids","loadBalancerId","names","slbServerGroups","id"],"type":"object"}},"alicloud:slb/getTlsCipherPolicies:getTlsCipherPolicies":{"description":"This data source provides the Slb Tls Cipher Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.135.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.slb.getTlsCipherPolicies({\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const slbTlsCipherPolicyId1 = ids.then(ids =\u003e ids.policies?.[0]?.id);\nconst nameRegex = alicloud.slb.getTlsCipherPolicies({\n    nameRegex: \"^My-TlsCipherPolicy\",\n});\nexport const slbTlsCipherPolicyId2 = nameRegex.then(nameRegex =\u003e nameRegex.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.slb.get_tls_cipher_policies(ids=[\n    \"example_value-1\",\n    \"example_value-2\",\n])\npulumi.export(\"slbTlsCipherPolicyId1\", ids.policies[0].id)\nname_regex = alicloud.slb.get_tls_cipher_policies(name_regex=\"^My-TlsCipherPolicy\")\npulumi.export(\"slbTlsCipherPolicyId2\", name_regex.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Slb.GetTlsCipherPolicies.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.Slb.GetTlsCipherPolicies.Invoke(new()\n    {\n        NameRegex = \"^My-TlsCipherPolicy\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"slbTlsCipherPolicyId1\"] = ids.Apply(getTlsCipherPoliciesResult =\u003e getTlsCipherPoliciesResult.Policies[0]?.Id),\n        [\"slbTlsCipherPolicyId2\"] = nameRegex.Apply(getTlsCipherPoliciesResult =\u003e getTlsCipherPoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := slb.GetTlsCipherPolicies(ctx, \u0026slb.GetTlsCipherPoliciesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"slbTlsCipherPolicyId1\", ids.Policies[0].Id)\n\t\tnameRegex, err := slb.GetTlsCipherPolicies(ctx, \u0026slb.GetTlsCipherPoliciesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^My-TlsCipherPolicy\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"slbTlsCipherPolicyId2\", nameRegex.Policies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetTlsCipherPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = SlbFunctions.getTlsCipherPolicies(GetTlsCipherPoliciesArgs.builder()\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"slbTlsCipherPolicyId1\", ids.policies()[0].id());\n        final var nameRegex = SlbFunctions.getTlsCipherPolicies(GetTlsCipherPoliciesArgs.builder()\n            .nameRegex(\"^My-TlsCipherPolicy\")\n            .build());\n\n        ctx.export(\"slbTlsCipherPolicyId2\", nameRegex.policies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:slb:getTlsCipherPolicies\n      arguments:\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:slb:getTlsCipherPolicies\n      arguments:\n        nameRegex: ^My-TlsCipherPolicy\noutputs:\n  slbTlsCipherPolicyId1: ${ids.policies[0].id}\n  slbTlsCipherPolicyId2: ${nameRegex.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTlsCipherPolicies.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Tls Cipher Policy IDs.\n"},"includeListener":{"type":"boolean","description":"The include listener.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Tls Cipher Policy name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"TLS policy instance state. Valid values: \u003cspan pulumi-lang-nodejs=\"`configuring`\" pulumi-lang-dotnet=\"`Configuring`\" pulumi-lang-go=\"`configuring`\" pulumi-lang-python=\"`configuring`\" pulumi-lang-yaml=\"`configuring`\" pulumi-lang-java=\"`configuring`\"\u003e`configuring`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e.\n"},"tlsCipherPolicyName":{"type":"string","description":"TLS policy name. Length is from 2 to 128, or in both the English and Chinese characters must be with an uppercase/lowercase letter or a Chinese character and the beginning, may contain numbers, in dot `.`, underscore `_` or dash `-`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTlsCipherPolicies.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"includeListener":{"type":"boolean"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"policies":{"items":{"$ref":"#/types/alicloud:slb/getTlsCipherPoliciesPolicy:getTlsCipherPoliciesPolicy"},"type":"array"},"status":{"type":"string"},"tlsCipherPolicyName":{"type":"string"}},"required":["ids","names","policies","id"],"type":"object"}},"alicloud:slb/getZones:getZones":{"description":"This data source provides availability zones for SLB that can be accessed by an Alibaba Cloud account within the region configured in the provider.\n\n\u003e **NOTE:** Available in v1.73.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst zonesIds = alicloud.slb.getZones({\n    availableSlbAddressType: \"vpc\",\n    availableSlbAddressIpVersion: \"ipv4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nzones_ids = alicloud.slb.get_zones(available_slb_address_type=\"vpc\",\n    available_slb_address_ip_version=\"ipv4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var zonesIds = AliCloud.Slb.GetZones.Invoke(new()\n    {\n        AvailableSlbAddressType = \"vpc\",\n        AvailableSlbAddressIpVersion = \"ipv4\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := slb.GetZones(ctx, \u0026slb.GetZonesArgs{\n\t\t\tAvailableSlbAddressType:      pulumi.StringRef(\"vpc\"),\n\t\t\tAvailableSlbAddressIpVersion: pulumi.StringRef(\"ipv4\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.slb.SlbFunctions;\nimport com.pulumi.alicloud.slb.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var zonesIds = SlbFunctions.getZones(GetZonesArgs.builder()\n            .availableSlbAddressType(\"vpc\")\n            .availableSlbAddressIpVersion(\"ipv4\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  zonesIds:\n    fn::invoke:\n      function: alicloud:slb:getZones\n      arguments:\n        availableSlbAddressType: vpc\n        availableSlbAddressIpVersion: ipv4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"availableSlbAddressIpVersion":{"type":"string","description":"Filter the results by a slb instance address version. Can be either \u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e.\n"},"availableSlbAddressType":{"type":"string","description":"Filter the results by a slb instance network type. Valid values:\n* vpc: an internal SLB instance that is deployed in a virtual private cloud (VPC).\n* classic_internet: a public-facing SLB instance.\n* classic_intranet: an internal SLB instance that is deployed in a classic network.\n"},"enableDetails":{"type":"boolean","description":"Default to false and only output \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e in the \u003cspan pulumi-lang-nodejs=\"`zones`\" pulumi-lang-dotnet=\"`Zones`\" pulumi-lang-go=\"`zones`\" pulumi-lang-python=\"`zones`\" pulumi-lang-yaml=\"`zones`\" pulumi-lang-java=\"`zones`\"\u003e`zones`\u003c/span\u003e block. Set it to true can output more details.\n","deprecationMessage":"The parameter\u003cspan pulumi-lang-nodejs=\" enableDetails \" pulumi-lang-dotnet=\" EnableDetails \" pulumi-lang-go=\" enableDetails \" pulumi-lang-python=\" enable_details \" pulumi-lang-yaml=\" enableDetails \" pulumi-lang-java=\" enableDetails \"\u003e enable_details \u003c/span\u003ehas been deprecated from version v1.154.0+"},"masterZoneId":{"type":"string","description":"The primary zone.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"slaveZoneId":{"type":"string","description":"The secondary zone.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"availableSlbAddressIpVersion":{"type":"string"},"availableSlbAddressType":{"type":"string"},"enableDetails":{"deprecationMessage":"The parameter\u003cspan pulumi-lang-nodejs=\" enableDetails \" pulumi-lang-dotnet=\" EnableDetails \" pulumi-lang-go=\" enableDetails \" pulumi-lang-python=\" enable_details \" pulumi-lang-yaml=\" enableDetails \" pulumi-lang-java=\" enableDetails \"\u003e enable_details \u003c/span\u003ehas been deprecated from version v1.154.0+","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of primary zone IDs.\n","items":{"type":"string"},"type":"array"},"masterZoneId":{"description":"(Available in 1.157.0+) The primary zone.\n","type":"string"},"outputFile":{"type":"string"},"slaveZoneId":{"description":"(Available in 1.157.0+) The secondary zone.\n","type":"string"},"zones":{"description":"A list of availability zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:slb/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:sls/getAlerts:getAlerts":{"description":"This data source provides Sls Alert available to the user.[What is Alert](https://next.api.alibabacloud.com/document/Sls/2020-12-30/CreateAlert)\n\n\u003e **NOTE:** Available since v1.250.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst alertName = config.get(\"alertName\") || \"openapi-terraform-alert\";\nconst projectName = config.get(\"projectName\") || \"terraform-alert-example\";\nconst defaultINsMgl = new alicloud.log.Project(\"defaultINsMgl\", {\n    description: \"terraform-alert-example\",\n    name: \"terraform-alert-example\",\n});\nconst defaultAlert = new alicloud.sls.Alert(\"default\", {\n    configuration: {\n        type: \"tpl\",\n        version: \"2\",\n        queryLists: [\n            {\n                query: \"* | select *\",\n                timeSpanType: \"Relative\",\n                start: \"-15m\",\n                end: \"now\",\n                storeType: \"log\",\n                project: defaultINsMgl.id,\n                store: \"alert\",\n                region: \"cn-beijing\",\n                powerSqlMode: \"disable\",\n                chartTitle: \"wkb-chart\",\n                dashboardId: \"wkb-dashboard\",\n                ui: \"{}\",\n                roleArn: \"acs:ram::1654218965343050:role/aliyunslsalertmonitorrole\",\n            },\n            {\n                storeType: \"meta\",\n                store: \"user.rds_ip_whitelist\",\n            },\n            {\n                storeType: \"meta\",\n                store: \"myexample1\",\n            },\n        ],\n        groupConfiguration: {\n            type: \"no_group\",\n            fields: [\n                \"a\",\n                \"b\",\n            ],\n        },\n        joinConfigurations: [\n            {\n                type: \"no_join\",\n                condition: \"aa\",\n            },\n            {\n                type: \"cross_join\",\n                condition: \"qqq\",\n            },\n            {\n                type: \"inner_join\",\n                condition: \"fefefe\",\n            },\n        ],\n        severityConfigurations: [{\n            severity: 6,\n            evalCondition: {\n                condition: \"__count__ \u003e 1\",\n                countCondition: \"cnt \u003e 0\",\n            },\n        }],\n        labels: [{\n            key: \"a\",\n            value: \"b\",\n        }],\n        annotations: [{\n            key: \"x\",\n            value: \"y\",\n        }],\n        autoAnnotation: true,\n        sendResolved: false,\n        threshold: 1,\n        noDataFire: false,\n        sinkEventStore: {\n            enabled: true,\n            endpoint: \"cn-shanghai-intranet.log.aliyuncs.com\",\n            project: \"wkb-wangren\",\n            eventStore: \"alert\",\n            roleArn: \"acs:ram::1654218965343050:role/aliyunlogetlrole\",\n        },\n        sinkCms: {\n            enabled: false,\n        },\n        sinkAlerthub: {\n            enabled: false,\n        },\n        templateConfiguration: {\n            templateId: \"sls.app.ack.autoscaler.cluster_unhealthy\",\n            type: \"sys\",\n            version: \"1.0\",\n            lang: \"cn\",\n        },\n        conditionConfiguration: {\n            condition: \"cnt \u003e 3\",\n            countCondition: \"__count__ \u003c 3\",\n        },\n        policyConfiguration: {\n            alertPolicyId: \"sls.builtin.dynamic\",\n            actionPolicyId: \"wkb-action\",\n            repeatInterval: \"1m\",\n        },\n        dashboard: \"internal-alert\",\n        muteUntil: 0,\n        noDataSeverity: 6,\n        tags: [\n            \"wkb\",\n            \"wangren\",\n            \"sls\",\n        ],\n    },\n    alertName: alertName,\n    projectName: defaultINsMgl.id,\n    schedule: {\n        type: \"Cron\",\n        runImmdiately: true,\n        timeZone: \"+0800\",\n        delay: 10,\n        cronExpression: \"0/5 * * * *\",\n    },\n    displayName: \"openapi-terraform\",\n    description: \"create alert\",\n});\nconst _default = alicloud.sls.getAlertsOutput({\n    ids: [defaultAlert.id],\n    nameRegex: defaultAlert.alertName,\n    projectName: defaultINsMgl.id,\n});\nexport const alicloudSlsAlertExampleId = _default.apply(_default =\u003e _default.alerts?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nalert_name = config.get(\"alertName\")\nif alert_name is None:\n    alert_name = \"openapi-terraform-alert\"\nproject_name = config.get(\"projectName\")\nif project_name is None:\n    project_name = \"terraform-alert-example\"\ndefault_ins_mgl = alicloud.log.Project(\"defaultINsMgl\",\n    description=\"terraform-alert-example\",\n    name=\"terraform-alert-example\")\ndefault_alert = alicloud.sls.Alert(\"default\",\n    configuration={\n        \"type\": \"tpl\",\n        \"version\": \"2\",\n        \"query_lists\": [\n            {\n                \"query\": \"* | select *\",\n                \"time_span_type\": \"Relative\",\n                \"start\": \"-15m\",\n                \"end\": \"now\",\n                \"store_type\": \"log\",\n                \"project\": default_ins_mgl.id,\n                \"store\": \"alert\",\n                \"region\": \"cn-beijing\",\n                \"power_sql_mode\": \"disable\",\n                \"chart_title\": \"wkb-chart\",\n                \"dashboard_id\": \"wkb-dashboard\",\n                \"ui\": \"{}\",\n                \"role_arn\": \"acs:ram::1654218965343050:role/aliyunslsalertmonitorrole\",\n            },\n            {\n                \"store_type\": \"meta\",\n                \"store\": \"user.rds_ip_whitelist\",\n            },\n            {\n                \"store_type\": \"meta\",\n                \"store\": \"myexample1\",\n            },\n        ],\n        \"group_configuration\": {\n            \"type\": \"no_group\",\n            \"fields\": [\n                \"a\",\n                \"b\",\n            ],\n        },\n        \"join_configurations\": [\n            {\n                \"type\": \"no_join\",\n                \"condition\": \"aa\",\n            },\n            {\n                \"type\": \"cross_join\",\n                \"condition\": \"qqq\",\n            },\n            {\n                \"type\": \"inner_join\",\n                \"condition\": \"fefefe\",\n            },\n        ],\n        \"severity_configurations\": [{\n            \"severity\": 6,\n            \"eval_condition\": {\n                \"condition\": \"__count__ \u003e 1\",\n                \"count_condition\": \"cnt \u003e 0\",\n            },\n        }],\n        \"labels\": [{\n            \"key\": \"a\",\n            \"value\": \"b\",\n        }],\n        \"annotations\": [{\n            \"key\": \"x\",\n            \"value\": \"y\",\n        }],\n        \"auto_annotation\": True,\n        \"send_resolved\": False,\n        \"threshold\": 1,\n        \"no_data_fire\": False,\n        \"sink_event_store\": {\n            \"enabled\": True,\n            \"endpoint\": \"cn-shanghai-intranet.log.aliyuncs.com\",\n            \"project\": \"wkb-wangren\",\n            \"event_store\": \"alert\",\n            \"role_arn\": \"acs:ram::1654218965343050:role/aliyunlogetlrole\",\n        },\n        \"sink_cms\": {\n            \"enabled\": False,\n        },\n        \"sink_alerthub\": {\n            \"enabled\": False,\n        },\n        \"template_configuration\": {\n            \"template_id\": \"sls.app.ack.autoscaler.cluster_unhealthy\",\n            \"type\": \"sys\",\n            \"version\": \"1.0\",\n            \"lang\": \"cn\",\n        },\n        \"condition_configuration\": {\n            \"condition\": \"cnt \u003e 3\",\n            \"count_condition\": \"__count__ \u003c 3\",\n        },\n        \"policy_configuration\": {\n            \"alert_policy_id\": \"sls.builtin.dynamic\",\n            \"action_policy_id\": \"wkb-action\",\n            \"repeat_interval\": \"1m\",\n        },\n        \"dashboard\": \"internal-alert\",\n        \"mute_until\": 0,\n        \"no_data_severity\": 6,\n        \"tags\": [\n            \"wkb\",\n            \"wangren\",\n            \"sls\",\n        ],\n    },\n    alert_name=alert_name,\n    project_name=default_ins_mgl.id,\n    schedule={\n        \"type\": \"Cron\",\n        \"run_immdiately\": True,\n        \"time_zone\": \"+0800\",\n        \"delay\": 10,\n        \"cron_expression\": \"0/5 * * * *\",\n    },\n    display_name=\"openapi-terraform\",\n    description=\"create alert\")\ndefault = alicloud.sls.get_alerts_output(ids=[default_alert.id],\n    name_regex=default_alert.alert_name,\n    project_name=default_ins_mgl.id)\npulumi.export(\"alicloudSlsAlertExampleId\", default.alerts[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var alertName = config.Get(\"alertName\") ?? \"openapi-terraform-alert\";\n    var projectName = config.Get(\"projectName\") ?? \"terraform-alert-example\";\n    var defaultINsMgl = new AliCloud.Log.Project(\"defaultINsMgl\", new()\n    {\n        Description = \"terraform-alert-example\",\n        Name = \"terraform-alert-example\",\n    });\n\n    var defaultAlert = new AliCloud.Sls.Alert(\"default\", new()\n    {\n        Configuration = new AliCloud.Sls.Inputs.AlertConfigurationArgs\n        {\n            Type = \"tpl\",\n            Version = \"2\",\n            QueryLists = new[]\n            {\n                new AliCloud.Sls.Inputs.AlertConfigurationQueryListArgs\n                {\n                    Query = \"* | select *\",\n                    TimeSpanType = \"Relative\",\n                    Start = \"-15m\",\n                    End = \"now\",\n                    StoreType = \"log\",\n                    Project = defaultINsMgl.Id,\n                    Store = \"alert\",\n                    Region = \"cn-beijing\",\n                    PowerSqlMode = \"disable\",\n                    ChartTitle = \"wkb-chart\",\n                    DashboardId = \"wkb-dashboard\",\n                    Ui = \"{}\",\n                    RoleArn = \"acs:ram::1654218965343050:role/aliyunslsalertmonitorrole\",\n                },\n                new AliCloud.Sls.Inputs.AlertConfigurationQueryListArgs\n                {\n                    StoreType = \"meta\",\n                    Store = \"user.rds_ip_whitelist\",\n                },\n                new AliCloud.Sls.Inputs.AlertConfigurationQueryListArgs\n                {\n                    StoreType = \"meta\",\n                    Store = \"myexample1\",\n                },\n            },\n            GroupConfiguration = new AliCloud.Sls.Inputs.AlertConfigurationGroupConfigurationArgs\n            {\n                Type = \"no_group\",\n                Fields = new[]\n                {\n                    \"a\",\n                    \"b\",\n                },\n            },\n            JoinConfigurations = new[]\n            {\n                new AliCloud.Sls.Inputs.AlertConfigurationJoinConfigurationArgs\n                {\n                    Type = \"no_join\",\n                    Condition = \"aa\",\n                },\n                new AliCloud.Sls.Inputs.AlertConfigurationJoinConfigurationArgs\n                {\n                    Type = \"cross_join\",\n                    Condition = \"qqq\",\n                },\n                new AliCloud.Sls.Inputs.AlertConfigurationJoinConfigurationArgs\n                {\n                    Type = \"inner_join\",\n                    Condition = \"fefefe\",\n                },\n            },\n            SeverityConfigurations = new[]\n            {\n                new AliCloud.Sls.Inputs.AlertConfigurationSeverityConfigurationArgs\n                {\n                    Severity = 6,\n                    EvalCondition = new AliCloud.Sls.Inputs.AlertConfigurationSeverityConfigurationEvalConditionArgs\n                    {\n                        Condition = \"__count__ \u003e 1\",\n                        CountCondition = \"cnt \u003e 0\",\n                    },\n                },\n            },\n            Labels = new[]\n            {\n                new AliCloud.Sls.Inputs.AlertConfigurationLabelArgs\n                {\n                    Key = \"a\",\n                    Value = \"b\",\n                },\n            },\n            Annotations = new[]\n            {\n                new AliCloud.Sls.Inputs.AlertConfigurationAnnotationArgs\n                {\n                    Key = \"x\",\n                    Value = \"y\",\n                },\n            },\n            AutoAnnotation = true,\n            SendResolved = false,\n            Threshold = 1,\n            NoDataFire = false,\n            SinkEventStore = new AliCloud.Sls.Inputs.AlertConfigurationSinkEventStoreArgs\n            {\n                Enabled = true,\n                Endpoint = \"cn-shanghai-intranet.log.aliyuncs.com\",\n                Project = \"wkb-wangren\",\n                EventStore = \"alert\",\n                RoleArn = \"acs:ram::1654218965343050:role/aliyunlogetlrole\",\n            },\n            SinkCms = new AliCloud.Sls.Inputs.AlertConfigurationSinkCmsArgs\n            {\n                Enabled = false,\n            },\n            SinkAlerthub = new AliCloud.Sls.Inputs.AlertConfigurationSinkAlerthubArgs\n            {\n                Enabled = false,\n            },\n            TemplateConfiguration = new AliCloud.Sls.Inputs.AlertConfigurationTemplateConfigurationArgs\n            {\n                TemplateId = \"sls.app.ack.autoscaler.cluster_unhealthy\",\n                Type = \"sys\",\n                Version = \"1.0\",\n                Lang = \"cn\",\n            },\n            ConditionConfiguration = new AliCloud.Sls.Inputs.AlertConfigurationConditionConfigurationArgs\n            {\n                Condition = \"cnt \u003e 3\",\n                CountCondition = \"__count__ \u003c 3\",\n            },\n            PolicyConfiguration = new AliCloud.Sls.Inputs.AlertConfigurationPolicyConfigurationArgs\n            {\n                AlertPolicyId = \"sls.builtin.dynamic\",\n                ActionPolicyId = \"wkb-action\",\n                RepeatInterval = \"1m\",\n            },\n            Dashboard = \"internal-alert\",\n            MuteUntil = 0,\n            NoDataSeverity = 6,\n            Tags = new[]\n            {\n                \"wkb\",\n                \"wangren\",\n                \"sls\",\n            },\n        },\n        AlertName = alertName,\n        ProjectName = defaultINsMgl.Id,\n        Schedule = new AliCloud.Sls.Inputs.AlertScheduleArgs\n        {\n            Type = \"Cron\",\n            RunImmdiately = true,\n            TimeZone = \"+0800\",\n            Delay = 10,\n            CronExpression = \"0/5 * * * *\",\n        },\n        DisplayName = \"openapi-terraform\",\n        Description = \"create alert\",\n    });\n\n    var @default = AliCloud.Sls.GetAlerts.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlert.Id,\n        },\n        NameRegex = defaultAlert.AlertName,\n        ProjectName = defaultINsMgl.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudSlsAlertExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getAlertsResult =\u003e getAlertsResult.Alerts[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sls\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nalertName := \"openapi-terraform-alert\";\nif param := cfg.Get(\"alertName\"); param != \"\"{\nalertName = param\n}\nprojectName := \"terraform-alert-example\";\nif param := cfg.Get(\"projectName\"); param != \"\"{\nprojectName = param\n}\ndefaultINsMgl, err := log.NewProject(ctx, \"defaultINsMgl\", \u0026log.ProjectArgs{\nDescription: pulumi.String(\"terraform-alert-example\"),\nName: pulumi.String(\"terraform-alert-example\"),\n})\nif err != nil {\nreturn err\n}\ndefaultAlert, err := sls.NewAlert(ctx, \"default\", \u0026sls.AlertArgs{\nConfiguration: \u0026sls.AlertConfigurationArgs{\nType: pulumi.String(\"tpl\"),\nVersion: pulumi.String(\"2\"),\nQueryLists: sls.AlertConfigurationQueryListArray{\n\u0026sls.AlertConfigurationQueryListArgs{\nQuery: pulumi.String(\"* | select *\"),\nTimeSpanType: pulumi.String(\"Relative\"),\nStart: pulumi.String(\"-15m\"),\nEnd: pulumi.String(\"now\"),\nStoreType: pulumi.String(\"log\"),\nProject: defaultINsMgl.ID(),\nStore: pulumi.String(\"alert\"),\nRegion: pulumi.String(\"cn-beijing\"),\nPowerSqlMode: pulumi.String(\"disable\"),\nChartTitle: pulumi.String(\"wkb-chart\"),\nDashboardId: pulumi.String(\"wkb-dashboard\"),\nUi: pulumi.String(\"{}\"),\nRoleArn: pulumi.String(\"acs:ram::1654218965343050:role/aliyunslsalertmonitorrole\"),\n},\n\u0026sls.AlertConfigurationQueryListArgs{\nStoreType: pulumi.String(\"meta\"),\nStore: pulumi.String(\"user.rds_ip_whitelist\"),\n},\n\u0026sls.AlertConfigurationQueryListArgs{\nStoreType: pulumi.String(\"meta\"),\nStore: pulumi.String(\"myexample1\"),\n},\n},\nGroupConfiguration: \u0026sls.AlertConfigurationGroupConfigurationArgs{\nType: pulumi.String(\"no_group\"),\nFields: pulumi.StringArray{\npulumi.String(\"a\"),\npulumi.String(\"b\"),\n},\n},\nJoinConfigurations: sls.AlertConfigurationJoinConfigurationArray{\n\u0026sls.AlertConfigurationJoinConfigurationArgs{\nType: pulumi.String(\"no_join\"),\nCondition: pulumi.String(\"aa\"),\n},\n\u0026sls.AlertConfigurationJoinConfigurationArgs{\nType: pulumi.String(\"cross_join\"),\nCondition: pulumi.String(\"qqq\"),\n},\n\u0026sls.AlertConfigurationJoinConfigurationArgs{\nType: pulumi.String(\"inner_join\"),\nCondition: pulumi.String(\"fefefe\"),\n},\n},\nSeverityConfigurations: sls.AlertConfigurationSeverityConfigurationArray{\n\u0026sls.AlertConfigurationSeverityConfigurationArgs{\nSeverity: pulumi.Int(6),\nEvalCondition: \u0026sls.AlertConfigurationSeverityConfigurationEvalConditionArgs{\nCondition: pulumi.String(\"__count__ \u003e 1\"),\nCountCondition: pulumi.String(\"cnt \u003e 0\"),\n},\n},\n},\nLabels: sls.AlertConfigurationLabelArray{\n\u0026sls.AlertConfigurationLabelArgs{\nKey: pulumi.String(\"a\"),\nValue: pulumi.String(\"b\"),\n},\n},\nAnnotations: sls.AlertConfigurationAnnotationArray{\n\u0026sls.AlertConfigurationAnnotationArgs{\nKey: pulumi.String(\"x\"),\nValue: pulumi.String(\"y\"),\n},\n},\nAutoAnnotation: pulumi.Bool(true),\nSendResolved: pulumi.Bool(false),\nThreshold: pulumi.Int(1),\nNoDataFire: pulumi.Bool(false),\nSinkEventStore: \u0026sls.AlertConfigurationSinkEventStoreArgs{\nEnabled: pulumi.Bool(true),\nEndpoint: pulumi.String(\"cn-shanghai-intranet.log.aliyuncs.com\"),\nProject: pulumi.String(\"wkb-wangren\"),\nEventStore: pulumi.String(\"alert\"),\nRoleArn: pulumi.String(\"acs:ram::1654218965343050:role/aliyunlogetlrole\"),\n},\nSinkCms: \u0026sls.AlertConfigurationSinkCmsArgs{\nEnabled: pulumi.Bool(false),\n},\nSinkAlerthub: \u0026sls.AlertConfigurationSinkAlerthubArgs{\nEnabled: pulumi.Bool(false),\n},\nTemplateConfiguration: \u0026sls.AlertConfigurationTemplateConfigurationArgs{\nTemplateId: pulumi.String(\"sls.app.ack.autoscaler.cluster_unhealthy\"),\nType: pulumi.String(\"sys\"),\nVersion: pulumi.String(\"1.0\"),\nLang: pulumi.String(\"cn\"),\n},\nConditionConfiguration: \u0026sls.AlertConfigurationConditionConfigurationArgs{\nCondition: pulumi.String(\"cnt \u003e 3\"),\nCountCondition: pulumi.String(\"__count__ \u003c 3\"),\n},\nPolicyConfiguration: \u0026sls.AlertConfigurationPolicyConfigurationArgs{\nAlertPolicyId: pulumi.String(\"sls.builtin.dynamic\"),\nActionPolicyId: pulumi.String(\"wkb-action\"),\nRepeatInterval: pulumi.String(\"1m\"),\n},\nDashboard: pulumi.String(\"internal-alert\"),\nMuteUntil: pulumi.Int(0),\nNoDataSeverity: pulumi.Int(6),\nTags: pulumi.StringArray{\npulumi.String(\"wkb\"),\npulumi.String(\"wangren\"),\npulumi.String(\"sls\"),\n},\n},\nAlertName: pulumi.String(alertName),\nProjectName: defaultINsMgl.ID(),\nSchedule: \u0026sls.AlertScheduleArgs{\nType: pulumi.String(\"Cron\"),\nRunImmdiately: pulumi.Bool(true),\nTimeZone: pulumi.String(\"+0800\"),\nDelay: pulumi.Int(10),\nCronExpression: pulumi.String(\"0/5 * * * *\"),\n},\nDisplayName: pulumi.String(\"openapi-terraform\"),\nDescription: pulumi.String(\"create alert\"),\n})\nif err != nil {\nreturn err\n}\n_default := sls.GetAlertsOutput(ctx, sls.GetAlertsOutputArgs{\nIds: pulumi.StringArray{\ndefaultAlert.ID(),\n},\nNameRegex: defaultAlert.AlertName,\nProjectName: defaultINsMgl.ID(),\n}, nil);\nctx.Export(\"alicloudSlsAlertExampleId\", _default.ApplyT(func(_default sls.GetAlertsResult) (*string, error) {\nreturn \u0026default.Alerts[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.sls.Alert;\nimport com.pulumi.alicloud.sls.AlertArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertConfigurationArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertConfigurationGroupConfigurationArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertConfigurationSinkEventStoreArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertConfigurationSinkCmsArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertConfigurationSinkAlerthubArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertConfigurationTemplateConfigurationArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertConfigurationConditionConfigurationArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertConfigurationPolicyConfigurationArgs;\nimport com.pulumi.alicloud.sls.inputs.AlertScheduleArgs;\nimport com.pulumi.alicloud.sls.SlsFunctions;\nimport com.pulumi.alicloud.sls.inputs.GetAlertsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var alertName = config.get(\"alertName\").orElse(\"openapi-terraform-alert\");\n        final var projectName = config.get(\"projectName\").orElse(\"terraform-alert-example\");\n        var defaultINsMgl = new Project(\"defaultINsMgl\", ProjectArgs.builder()\n            .description(\"terraform-alert-example\")\n            .name(\"terraform-alert-example\")\n            .build());\n\n        var defaultAlert = new Alert(\"defaultAlert\", AlertArgs.builder()\n            .configuration(AlertConfigurationArgs.builder()\n                .type(\"tpl\")\n                .version(\"2\")\n                .queryLists(                \n                    AlertConfigurationQueryListArgs.builder()\n                        .query(\"* | select *\")\n                        .timeSpanType(\"Relative\")\n                        .start(\"-15m\")\n                        .end(\"now\")\n                        .storeType(\"log\")\n                        .project(defaultINsMgl.id())\n                        .store(\"alert\")\n                        .region(\"cn-beijing\")\n                        .powerSqlMode(\"disable\")\n                        .chartTitle(\"wkb-chart\")\n                        .dashboardId(\"wkb-dashboard\")\n                        .ui(\"{}\")\n                        .roleArn(\"acs:ram::1654218965343050:role/aliyunslsalertmonitorrole\")\n                        .build(),\n                    AlertConfigurationQueryListArgs.builder()\n                        .storeType(\"meta\")\n                        .store(\"user.rds_ip_whitelist\")\n                        .build(),\n                    AlertConfigurationQueryListArgs.builder()\n                        .storeType(\"meta\")\n                        .store(\"myexample1\")\n                        .build())\n                .groupConfiguration(AlertConfigurationGroupConfigurationArgs.builder()\n                    .type(\"no_group\")\n                    .fields(                    \n                        \"a\",\n                        \"b\")\n                    .build())\n                .joinConfigurations(                \n                    AlertConfigurationJoinConfigurationArgs.builder()\n                        .type(\"no_join\")\n                        .condition(\"aa\")\n                        .build(),\n                    AlertConfigurationJoinConfigurationArgs.builder()\n                        .type(\"cross_join\")\n                        .condition(\"qqq\")\n                        .build(),\n                    AlertConfigurationJoinConfigurationArgs.builder()\n                        .type(\"inner_join\")\n                        .condition(\"fefefe\")\n                        .build())\n                .severityConfigurations(AlertConfigurationSeverityConfigurationArgs.builder()\n                    .severity(6)\n                    .evalCondition(AlertConfigurationSeverityConfigurationEvalConditionArgs.builder()\n                        .condition(\"__count__ \u003e 1\")\n                        .countCondition(\"cnt \u003e 0\")\n                        .build())\n                    .build())\n                .labels(AlertConfigurationLabelArgs.builder()\n                    .key(\"a\")\n                    .value(\"b\")\n                    .build())\n                .annotations(AlertConfigurationAnnotationArgs.builder()\n                    .key(\"x\")\n                    .value(\"y\")\n                    .build())\n                .autoAnnotation(true)\n                .sendResolved(false)\n                .threshold(1)\n                .noDataFire(false)\n                .sinkEventStore(AlertConfigurationSinkEventStoreArgs.builder()\n                    .enabled(true)\n                    .endpoint(\"cn-shanghai-intranet.log.aliyuncs.com\")\n                    .project(\"wkb-wangren\")\n                    .eventStore(\"alert\")\n                    .roleArn(\"acs:ram::1654218965343050:role/aliyunlogetlrole\")\n                    .build())\n                .sinkCms(AlertConfigurationSinkCmsArgs.builder()\n                    .enabled(false)\n                    .build())\n                .sinkAlerthub(AlertConfigurationSinkAlerthubArgs.builder()\n                    .enabled(false)\n                    .build())\n                .templateConfiguration(AlertConfigurationTemplateConfigurationArgs.builder()\n                    .templateId(\"sls.app.ack.autoscaler.cluster_unhealthy\")\n                    .type(\"sys\")\n                    .version(\"1.0\")\n                    .lang(\"cn\")\n                    .build())\n                .conditionConfiguration(AlertConfigurationConditionConfigurationArgs.builder()\n                    .condition(\"cnt \u003e 3\")\n                    .countCondition(\"__count__ \u003c 3\")\n                    .build())\n                .policyConfiguration(AlertConfigurationPolicyConfigurationArgs.builder()\n                    .alertPolicyId(\"sls.builtin.dynamic\")\n                    .actionPolicyId(\"wkb-action\")\n                    .repeatInterval(\"1m\")\n                    .build())\n                .dashboard(\"internal-alert\")\n                .muteUntil(0)\n                .noDataSeverity(6)\n                .tags(                \n                    \"wkb\",\n                    \"wangren\",\n                    \"sls\")\n                .build())\n            .alertName(alertName)\n            .projectName(defaultINsMgl.id())\n            .schedule(AlertScheduleArgs.builder()\n                .type(\"Cron\")\n                .runImmdiately(true)\n                .timeZone(\"+0800\")\n                .delay(10)\n                .cronExpression(\"0/5 * * * *\")\n                .build())\n            .displayName(\"openapi-terraform\")\n            .description(\"create alert\")\n            .build());\n\n        final var default = SlsFunctions.getAlerts(GetAlertsArgs.builder()\n            .ids(defaultAlert.id())\n            .nameRegex(defaultAlert.alertName())\n            .projectName(defaultINsMgl.id())\n            .build());\n\n        ctx.export(\"alicloudSlsAlertExampleId\", default_.applyValue(_default_ -\u003e _default_.alerts()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  alertName:\n    type: string\n    default: openapi-terraform-alert\n  projectName:\n    type: string\n    default: terraform-alert-example\nresources:\n  defaultINsMgl:\n    type: alicloud:log:Project\n    properties:\n      description: terraform-alert-example\n      name: terraform-alert-example\n  defaultAlert:\n    type: alicloud:sls:Alert\n    name: default\n    properties:\n      configuration:\n        type: tpl\n        version: '2'\n        queryLists:\n          - query: '* | select *'\n            timeSpanType: Relative\n            start: -15m\n            end: now\n            storeType: log\n            project: ${defaultINsMgl.id}\n            store: alert\n            region: cn-beijing\n            powerSqlMode: disable\n            chartTitle: wkb-chart\n            dashboardId: wkb-dashboard\n            ui: '{}'\n            roleArn: acs:ram::1654218965343050:role/aliyunslsalertmonitorrole\n          - storeType: meta\n            store: user.rds_ip_whitelist\n          - storeType: meta\n            store: myexample1\n        groupConfiguration:\n          type: no_group\n          fields:\n            - a\n            - b\n        joinConfigurations:\n          - type: no_join\n            condition: aa\n          - type: cross_join\n            condition: qqq\n          - type: inner_join\n            condition: fefefe\n        severityConfigurations:\n          - severity: '6'\n            evalCondition:\n              condition: __count__ \u003e 1\n              countCondition: cnt \u003e 0\n        labels:\n          - key: a\n            value: b\n        annotations:\n          - key: x\n            value: y\n        autoAnnotation: true\n        sendResolved: false\n        threshold: '1'\n        noDataFire: false\n        sinkEventStore:\n          enabled: true\n          endpoint: cn-shanghai-intranet.log.aliyuncs.com\n          project: wkb-wangren\n          eventStore: alert\n          roleArn: acs:ram::1654218965343050:role/aliyunlogetlrole\n        sinkCms:\n          enabled: false\n        sinkAlerthub:\n          enabled: false\n        templateConfiguration:\n          templateId: sls.app.ack.autoscaler.cluster_unhealthy\n          type: sys\n          version: '1.0'\n          lang: cn\n        conditionConfiguration:\n          condition: cnt \u003e 3\n          countCondition: __count__ \u003c 3\n        policyConfiguration:\n          alertPolicyId: sls.builtin.dynamic\n          actionPolicyId: wkb-action\n          repeatInterval: 1m\n        dashboard: internal-alert\n        muteUntil: '0'\n        noDataSeverity: '6'\n        tags:\n          - wkb\n          - wangren\n          - sls\n      alertName: ${alertName}\n      projectName: ${defaultINsMgl.id}\n      schedule:\n        type: Cron\n        runImmdiately: true\n        timeZone: '+0800'\n        delay: '10'\n        cronExpression: 0/5 * * * *\n      displayName: openapi-terraform\n      description: create alert\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:sls:getAlerts\n      arguments:\n        ids:\n          - ${defaultAlert.id}\n        nameRegex: ${defaultAlert.alertName}\n        projectName: ${defaultINsMgl.id}\noutputs:\n  alicloudSlsAlertExampleId: ${default.alerts[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAlerts.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Alert IDs. The value is formulated as `\u003cproject_name\u003e:\u003calert_name\u003e`.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"projectName":{"type":"string","description":"Project Name\n"}},"type":"object","required":["projectName"]},"outputs":{"description":"A collection of values returned by getAlerts.\n","properties":{"alerts":{"description":"A list of Alert Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:sls/getAlertsAlert:getAlertsAlert"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Alert IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Alerts.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"projectName":{"type":"string"}},"required":["alerts","ids","names","projectName","id"],"type":"object"}},"alicloud:sls/getEtls:getEtls":{"description":"This data source provides Sls Etl available to the user.[What is Etl](https://next.api.alibabacloud.com/document/Sls/2020-12-30/CreateETL)\n\n\u003e **NOTE:** Available since v1.258.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaulthhAPo6 = new alicloud.log.Project(\"defaulthhAPo6\", {\n    description: \"terraform-etl-example-813\",\n    projectName: \"terraform-etl-example-330\",\n});\nconst defaultzWKLkp = new alicloud.log.Store(\"defaultzWKLkp\", {\n    hotTtl: 8,\n    retentionPeriod: 30,\n    shardCount: 2,\n    projectName: defaulthhAPo6.id,\n    logstoreName: \"example\",\n});\nconst defaultEtl = new alicloud.sls.Etl(\"default\", {\n    project: defaulthhAPo6.id,\n    description: \"etl-1740472705-185721\",\n    configuration: {\n        script: \"* | extend a=1\",\n        lang: \"SPL\",\n        roleArn: name,\n        sinks: [{\n            name: \"11111\",\n            endpoint: \"cn-hangzhou-intranet.log.aliyuncs.com\",\n            project: \"gy-hangzhou-huolang-1\",\n            logstore: \"gy-rm2\",\n            datasets: [\"__UNNAMED__\"],\n            roleArn: name,\n        }],\n        logstore: defaultzWKLkp.logstoreName,\n        fromTime: 1706771697,\n        toTime: 1738394097,\n    },\n    jobName: \"etl-1740472705-185721\",\n    displayName: \"etl-1740472705-185721\",\n});\nconst _default = alicloud.sls.getEtlsOutput({\n    logstore: defaultzWKLkp.name,\n    project: defaulthhAPo6.id,\n});\nexport const alicloudSlsEtlExampleId = _default.apply(_default =\u003e _default.etls?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefaulthh_a_po6 = alicloud.log.Project(\"defaulthhAPo6\",\n    description=\"terraform-etl-example-813\",\n    project_name=\"terraform-etl-example-330\")\ndefaultz_wk_lkp = alicloud.log.Store(\"defaultzWKLkp\",\n    hot_ttl=8,\n    retention_period=30,\n    shard_count=2,\n    project_name=defaulthh_a_po6.id,\n    logstore_name=\"example\")\ndefault_etl = alicloud.sls.Etl(\"default\",\n    project=defaulthh_a_po6.id,\n    description=\"etl-1740472705-185721\",\n    configuration={\n        \"script\": \"* | extend a=1\",\n        \"lang\": \"SPL\",\n        \"role_arn\": name,\n        \"sinks\": [{\n            \"name\": \"11111\",\n            \"endpoint\": \"cn-hangzhou-intranet.log.aliyuncs.com\",\n            \"project\": \"gy-hangzhou-huolang-1\",\n            \"logstore\": \"gy-rm2\",\n            \"datasets\": [\"__UNNAMED__\"],\n            \"role_arn\": name,\n        }],\n        \"logstore\": defaultz_wk_lkp.logstore_name,\n        \"from_time\": 1706771697,\n        \"to_time\": 1738394097,\n    },\n    job_name=\"etl-1740472705-185721\",\n    display_name=\"etl-1740472705-185721\")\ndefault = alicloud.sls.get_etls_output(logstore=defaultz_wk_lkp.name,\n    project=defaulthh_a_po6.id)\npulumi.export(\"alicloudSlsEtlExampleId\", default.etls[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaulthhAPo6 = new AliCloud.Log.Project(\"defaulthhAPo6\", new()\n    {\n        Description = \"terraform-etl-example-813\",\n        ProjectName = \"terraform-etl-example-330\",\n    });\n\n    var defaultzWKLkp = new AliCloud.Log.Store(\"defaultzWKLkp\", new()\n    {\n        HotTtl = 8,\n        RetentionPeriod = 30,\n        ShardCount = 2,\n        ProjectName = defaulthhAPo6.Id,\n        LogstoreName = \"example\",\n    });\n\n    var defaultEtl = new AliCloud.Sls.Etl(\"default\", new()\n    {\n        Project = defaulthhAPo6.Id,\n        Description = \"etl-1740472705-185721\",\n        Configuration = new AliCloud.Sls.Inputs.EtlConfigurationArgs\n        {\n            Script = \"* | extend a=1\",\n            Lang = \"SPL\",\n            RoleArn = name,\n            Sinks = new[]\n            {\n                new AliCloud.Sls.Inputs.EtlConfigurationSinkArgs\n                {\n                    Name = \"11111\",\n                    Endpoint = \"cn-hangzhou-intranet.log.aliyuncs.com\",\n                    Project = \"gy-hangzhou-huolang-1\",\n                    Logstore = \"gy-rm2\",\n                    Datasets = new[]\n                    {\n                        \"__UNNAMED__\",\n                    },\n                    RoleArn = name,\n                },\n            },\n            Logstore = defaultzWKLkp.LogstoreName,\n            FromTime = 1706771697,\n            ToTime = 1738394097,\n        },\n        JobName = \"etl-1740472705-185721\",\n        DisplayName = \"etl-1740472705-185721\",\n    });\n\n    var @default = AliCloud.Sls.GetEtls.Invoke(new()\n    {\n        Logstore = defaultzWKLkp.Name,\n        Project = defaulthhAPo6.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudSlsEtlExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getEtlsResult =\u003e getEtlsResult.Etls[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sls\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaulthhAPo6, err := log.NewProject(ctx, \"defaulthhAPo6\", \u0026log.ProjectArgs{\nDescription: pulumi.String(\"terraform-etl-example-813\"),\nProjectName: pulumi.String(\"terraform-etl-example-330\"),\n})\nif err != nil {\nreturn err\n}\ndefaultzWKLkp, err := log.NewStore(ctx, \"defaultzWKLkp\", \u0026log.StoreArgs{\nHotTtl: pulumi.Int(8),\nRetentionPeriod: pulumi.Int(30),\nShardCount: pulumi.Int(2),\nProjectName: defaulthhAPo6.ID(),\nLogstoreName: pulumi.String(\"example\"),\n})\nif err != nil {\nreturn err\n}\n_, err = sls.NewEtl(ctx, \"default\", \u0026sls.EtlArgs{\nProject: defaulthhAPo6.ID(),\nDescription: pulumi.String(\"etl-1740472705-185721\"),\nConfiguration: \u0026sls.EtlConfigurationArgs{\nScript: pulumi.String(\"* | extend a=1\"),\nLang: pulumi.String(\"SPL\"),\nRoleArn: pulumi.String(name),\nSinks: sls.EtlConfigurationSinkArray{\n\u0026sls.EtlConfigurationSinkArgs{\nName: pulumi.String(\"11111\"),\nEndpoint: pulumi.String(\"cn-hangzhou-intranet.log.aliyuncs.com\"),\nProject: pulumi.String(\"gy-hangzhou-huolang-1\"),\nLogstore: pulumi.String(\"gy-rm2\"),\nDatasets: pulumi.StringArray{\npulumi.String(\"__UNNAMED__\"),\n},\nRoleArn: pulumi.String(name),\n},\n},\nLogstore: defaultzWKLkp.LogstoreName,\nFromTime: pulumi.Int(1706771697),\nToTime: pulumi.Int(1738394097),\n},\nJobName: pulumi.String(\"etl-1740472705-185721\"),\nDisplayName: pulumi.String(\"etl-1740472705-185721\"),\n})\nif err != nil {\nreturn err\n}\n_default := sls.GetEtlsOutput(ctx, sls.GetEtlsOutputArgs{\nLogstore: defaultzWKLkp.Name,\nProject: defaulthhAPo6.ID(),\n}, nil);\nctx.Export(\"alicloudSlsEtlExampleId\", _default.ApplyT(func(_default sls.GetEtlsResult) (*string, error) {\nreturn \u0026default.Etls[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.sls.Etl;\nimport com.pulumi.alicloud.sls.EtlArgs;\nimport com.pulumi.alicloud.sls.inputs.EtlConfigurationArgs;\nimport com.pulumi.alicloud.sls.SlsFunctions;\nimport com.pulumi.alicloud.sls.inputs.GetEtlsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaulthhAPo6 = new Project(\"defaulthhAPo6\", ProjectArgs.builder()\n            .description(\"terraform-etl-example-813\")\n            .projectName(\"terraform-etl-example-330\")\n            .build());\n\n        var defaultzWKLkp = new Store(\"defaultzWKLkp\", StoreArgs.builder()\n            .hotTtl(8)\n            .retentionPeriod(30)\n            .shardCount(2)\n            .projectName(defaulthhAPo6.id())\n            .logstoreName(\"example\")\n            .build());\n\n        var defaultEtl = new Etl(\"defaultEtl\", EtlArgs.builder()\n            .project(defaulthhAPo6.id())\n            .description(\"etl-1740472705-185721\")\n            .configuration(EtlConfigurationArgs.builder()\n                .script(\"* | extend a=1\")\n                .lang(\"SPL\")\n                .roleArn(name)\n                .sinks(EtlConfigurationSinkArgs.builder()\n                    .name(\"11111\")\n                    .endpoint(\"cn-hangzhou-intranet.log.aliyuncs.com\")\n                    .project(\"gy-hangzhou-huolang-1\")\n                    .logstore(\"gy-rm2\")\n                    .datasets(\"__UNNAMED__\")\n                    .roleArn(name)\n                    .build())\n                .logstore(defaultzWKLkp.logstoreName())\n                .fromTime(1706771697)\n                .toTime(1738394097)\n                .build())\n            .jobName(\"etl-1740472705-185721\")\n            .displayName(\"etl-1740472705-185721\")\n            .build());\n\n        final var default = SlsFunctions.getEtls(GetEtlsArgs.builder()\n            .logstore(defaultzWKLkp.name())\n            .project(defaulthhAPo6.id())\n            .build());\n\n        ctx.export(\"alicloudSlsEtlExampleId\", default_.applyValue(_default_ -\u003e _default_.etls()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaulthhAPo6:\n    type: alicloud:log:Project\n    properties:\n      description: terraform-etl-example-813\n      projectName: terraform-etl-example-330\n  defaultzWKLkp:\n    type: alicloud:log:Store\n    properties:\n      hotTtl: '8'\n      retentionPeriod: '30'\n      shardCount: '2'\n      projectName: ${defaulthhAPo6.id}\n      logstoreName: example\n  defaultEtl:\n    type: alicloud:sls:Etl\n    name: default\n    properties:\n      project: ${defaulthhAPo6.id}\n      description: etl-1740472705-185721\n      configuration:\n        script: '* | extend a=1'\n        lang: SPL\n        roleArn: ${name}\n        sinks:\n          - name: '11111'\n            endpoint: cn-hangzhou-intranet.log.aliyuncs.com\n            project: gy-hangzhou-huolang-1\n            logstore: gy-rm2\n            datasets:\n              - __UNNAMED__\n            roleArn: ${name}\n        logstore: ${defaultzWKLkp.logstoreName}\n        fromTime: '1706771697'\n        toTime: '1738394097'\n      jobName: etl-1740472705-185721\n      displayName: etl-1740472705-185721\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:sls:getEtls\n      arguments:\n        logstore: ${defaultzWKLkp.name}\n        project: ${defaulthhAPo6.id}\noutputs:\n  alicloudSlsEtlExampleId: ${default.etls[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEtls.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Etl IDs. The value is formulated as `\u003cproject\u003e:\u003cjob_name\u003e`.\n"},"logstore":{"type":"string","description":"Source Logstore Name.\n"},"offset":{"type":"integer","description":"Query start row. The default value is 0.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"project":{"type":"string","description":"Project Name\n"},"size":{"type":"integer","description":"Specify the number of data processing tasks returned by the query\n"}},"type":"object","required":["logstore","project"]},"outputs":{"description":"A collection of values returned by getEtls.\n","properties":{"etls":{"description":"A list of Etl Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:sls/getEtlsEtl:getEtlsEtl"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Etl IDs.\n","items":{"type":"string"},"type":"array"},"logstore":{"description":"Destination Logstore Name.\n","type":"string"},"offset":{"type":"integer"},"outputFile":{"type":"string"},"project":{"description":"Target Project name.\n","type":"string"},"size":{"type":"integer"}},"required":["etls","ids","logstore","project","id"],"type":"object"}},"alicloud:sls/getIndexs:getIndexs":{"description":"This data source provides Sls Index available to the user.[What is Index](https://next.api.alibabacloud.com/document/Sls/2020-12-30/CreateIndex)\n\n\u003e **NOTE:** Available since v1.262.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst logstoreName = config.get(\"logstoreName\") || \"logstore-example-1\";\nconst projectName = config.get(\"projectName\") || \"project-for-index-terraform-example-1\";\nconst defaultProject = new alicloud.log.Project(\"default\", {\n    description: \"terraform example\",\n    projectName: projectName,\n});\nconst defaultStore = new alicloud.log.Store(\"default\", {\n    hotTtl: 7,\n    retentionPeriod: 30,\n    shardCount: 2,\n    projectName: defaultProject.projectName,\n    logstoreName: logstoreName,\n});\nconst defaultIndex = new alicloud.sls.Index(\"default\", {\n    line: {\n        chn: true,\n        caseSensitive: true,\n        tokens: [\"a\"],\n        excludeKeys: [\"t\"],\n    },\n    keys: JSON.stringify({\n        example: {\n            caseSensitive: false,\n            token: [\n                \"\\n\",\n                \"\\x09\",\n                \",\",\n                \" \",\n                \";\",\n                \"\\\"\",\n                \"'\",\n                \"(\",\n                \")\",\n                \"{\",\n                \"}\",\n                \"[\",\n                \"]\",\n                \"\u003c\",\n                \"\u003e\",\n                \"?\",\n                \"/\",\n                \"#\",\n                \":\",\n            ],\n            type: \"text\",\n            doc_value: false,\n            alias: \"\",\n            chn: false,\n        },\n    }),\n    logstoreName: defaultStore.logstoreName,\n    projectName: projectName,\n});\nconst _default = alicloud.sls.getIndexsOutput({\n    logstoreName: defaultStore.logstoreName,\n    projectName: defaultProject.projectName,\n});\nexport const alicloudSlsIndexExampleId = _default.apply(_default =\u003e _default.indexs?.[0]?.id);\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nlogstore_name = config.get(\"logstoreName\")\nif logstore_name is None:\n    logstore_name = \"logstore-example-1\"\nproject_name = config.get(\"projectName\")\nif project_name is None:\n    project_name = \"project-for-index-terraform-example-1\"\ndefault_project = alicloud.log.Project(\"default\",\n    description=\"terraform example\",\n    project_name=project_name)\ndefault_store = alicloud.log.Store(\"default\",\n    hot_ttl=7,\n    retention_period=30,\n    shard_count=2,\n    project_name=default_project.project_name,\n    logstore_name=logstore_name)\ndefault_index = alicloud.sls.Index(\"default\",\n    line={\n        \"chn\": True,\n        \"case_sensitive\": True,\n        \"tokens\": [\"a\"],\n        \"exclude_keys\": [\"t\"],\n    },\n    keys=json.dumps({\n        \"example\": {\n            \"caseSensitive\": False,\n            \"token\": [\n                \"\\n\",\n                \"\\x09\",\n                \",\",\n                \" \",\n                \";\",\n                \"\\\"\",\n                \"'\",\n                \"(\",\n                \")\",\n                \"{\",\n                \"}\",\n                \"[\",\n                \"]\",\n                \"\u003c\",\n                \"\u003e\",\n                \"?\",\n                \"/\",\n                \"#\",\n                \":\",\n            ],\n            \"type\": \"text\",\n            \"doc_value\": False,\n            \"alias\": \"\",\n            \"chn\": False,\n        },\n    }),\n    logstore_name=default_store.logstore_name,\n    project_name=project_name)\ndefault = alicloud.sls.get_indexs_output(logstore_name=default_store.logstore_name,\n    project_name=default_project.project_name)\npulumi.export(\"alicloudSlsIndexExampleId\", default.indexs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var logstoreName = config.Get(\"logstoreName\") ?? \"logstore-example-1\";\n    var projectName = config.Get(\"projectName\") ?? \"project-for-index-terraform-example-1\";\n    var defaultProject = new AliCloud.Log.Project(\"default\", new()\n    {\n        Description = \"terraform example\",\n        ProjectName = projectName,\n    });\n\n    var defaultStore = new AliCloud.Log.Store(\"default\", new()\n    {\n        HotTtl = 7,\n        RetentionPeriod = 30,\n        ShardCount = 2,\n        ProjectName = defaultProject.ProjectName,\n        LogstoreName = logstoreName,\n    });\n\n    var defaultIndex = new AliCloud.Sls.Index(\"default\", new()\n    {\n        Line = new AliCloud.Sls.Inputs.IndexLineArgs\n        {\n            Chn = true,\n            CaseSensitive = true,\n            Tokens = new[]\n            {\n                \"a\",\n            },\n            ExcludeKeys = new[]\n            {\n                \"t\",\n            },\n        },\n        Keys = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"example\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"caseSensitive\"] = false,\n                [\"token\"] = new[]\n                {\n                    @\"\n\",\n                    \"\t\",\n                    \",\",\n                    \" \",\n                    \";\",\n                    \"\\\"\",\n                    \"'\",\n                    \"(\",\n                    \")\",\n                    \"{\",\n                    \"}\",\n                    \"[\",\n                    \"]\",\n                    \"\u003c\",\n                    \"\u003e\",\n                    \"?\",\n                    \"/\",\n                    \"#\",\n                    \":\",\n                },\n                [\"type\"] = \"text\",\n                [\"doc_value\"] = false,\n                [\"alias\"] = \"\",\n                [\"chn\"] = false,\n            },\n        }),\n        LogstoreName = defaultStore.LogstoreName,\n        ProjectName = projectName,\n    });\n\n    var @default = AliCloud.Sls.GetIndexs.Invoke(new()\n    {\n        LogstoreName = defaultStore.LogstoreName,\n        ProjectName = defaultProject.ProjectName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudSlsIndexExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getIndexsResult =\u003e getIndexsResult.Indexs[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sls\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nlogstoreName := \"logstore-example-1\";\nif param := cfg.Get(\"logstoreName\"); param != \"\"{\nlogstoreName = param\n}\nprojectName := \"project-for-index-terraform-example-1\";\nif param := cfg.Get(\"projectName\"); param != \"\"{\nprojectName = param\n}\ndefaultProject, err := log.NewProject(ctx, \"default\", \u0026log.ProjectArgs{\nDescription: pulumi.String(\"terraform example\"),\nProjectName: pulumi.String(projectName),\n})\nif err != nil {\nreturn err\n}\ndefaultStore, err := log.NewStore(ctx, \"default\", \u0026log.StoreArgs{\nHotTtl: pulumi.Int(7),\nRetentionPeriod: pulumi.Int(30),\nShardCount: pulumi.Int(2),\nProjectName: defaultProject.ProjectName,\nLogstoreName: pulumi.String(logstoreName),\n})\nif err != nil {\nreturn err\n}\ntmpJSON0, err := json.Marshal(map[string]interface{}{\n\"example\": map[string]interface{}{\n\"caseSensitive\": false,\n\"token\": []string{\n\"\\n\",\n\"\t\",\n\",\",\n\" \",\n\";\",\n\"\\\"\",\n\"'\",\n\"(\",\n\")\",\n\"{\",\n\"}\",\n\"[\",\n\"]\",\n\"\u003c\",\n\"\u003e\",\n\"?\",\n\"/\",\n\"#\",\n\":\",\n},\n\"type\": \"text\",\n\"doc_value\": false,\n\"alias\": \"\",\n\"chn\": false,\n},\n})\nif err != nil {\nreturn err\n}\njson0 := string(tmpJSON0)\n_, err = sls.NewIndex(ctx, \"default\", \u0026sls.IndexArgs{\nLine: \u0026sls.IndexLineArgs{\nChn: pulumi.Bool(true),\nCaseSensitive: pulumi.Bool(true),\nTokens: pulumi.StringArray{\npulumi.String(\"a\"),\n},\nExcludeKeys: pulumi.StringArray{\npulumi.String(\"t\"),\n},\n},\nKeys: pulumi.String(json0),\nLogstoreName: defaultStore.LogstoreName,\nProjectName: pulumi.String(projectName),\n})\nif err != nil {\nreturn err\n}\n_default := sls.GetIndexsOutput(ctx, sls.GetIndexsOutputArgs{\nLogstoreName: defaultStore.LogstoreName,\nProjectName: defaultProject.ProjectName,\n}, nil);\nctx.Export(\"alicloudSlsIndexExampleId\", _default.ApplyT(func(_default sls.GetIndexsResult) (*string, error) {\nreturn \u0026default.Indexs[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.log.Store;\nimport com.pulumi.alicloud.log.StoreArgs;\nimport com.pulumi.alicloud.sls.Index;\nimport com.pulumi.alicloud.sls.IndexArgs;\nimport com.pulumi.alicloud.sls.inputs.IndexLineArgs;\nimport com.pulumi.alicloud.sls.SlsFunctions;\nimport com.pulumi.alicloud.sls.inputs.GetIndexsArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var logstoreName = config.get(\"logstoreName\").orElse(\"logstore-example-1\");\n        final var projectName = config.get(\"projectName\").orElse(\"project-for-index-terraform-example-1\");\n        var defaultProject = new Project(\"defaultProject\", ProjectArgs.builder()\n            .description(\"terraform example\")\n            .projectName(projectName)\n            .build());\n\n        var defaultStore = new Store(\"defaultStore\", StoreArgs.builder()\n            .hotTtl(7)\n            .retentionPeriod(30)\n            .shardCount(2)\n            .projectName(defaultProject.projectName())\n            .logstoreName(logstoreName)\n            .build());\n\n        var defaultIndex = new Index(\"defaultIndex\", IndexArgs.builder()\n            .line(IndexLineArgs.builder()\n                .chn(true)\n                .caseSensitive(true)\n                .tokens(\"a\")\n                .excludeKeys(\"t\")\n                .build())\n            .keys(serializeJson(\n                jsonObject(\n                    jsonProperty(\"example\", jsonObject(\n                        jsonProperty(\"caseSensitive\", false),\n                        jsonProperty(\"token\", jsonArray(\n                            \"\"\"\n\n                            \"\"\", \n                            \"\t\", \n                            \",\", \n                            \" \", \n                            \";\", \n                            \"\\\"\", \n                            \"'\", \n                            \"(\", \n                            \")\", \n                            \"{\", \n                            \"}\", \n                            \"[\", \n                            \"]\", \n                            \"\u003c\", \n                            \"\u003e\", \n                            \"?\", \n                            \"/\", \n                            \"#\", \n                            \":\"\n                        )),\n                        jsonProperty(\"type\", \"text\"),\n                        jsonProperty(\"doc_value\", false),\n                        jsonProperty(\"alias\", \"\"),\n                        jsonProperty(\"chn\", false)\n                    ))\n                )))\n            .logstoreName(defaultStore.logstoreName())\n            .projectName(projectName)\n            .build());\n\n        final var default = SlsFunctions.getIndexs(GetIndexsArgs.builder()\n            .logstoreName(defaultStore.logstoreName())\n            .projectName(defaultProject.projectName())\n            .build());\n\n        ctx.export(\"alicloudSlsIndexExampleId\", default_.applyValue(_default_ -\u003e _default_.indexs()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  logstoreName:\n    type: string\n    default: logstore-example-1\n  projectName:\n    type: string\n    default: project-for-index-terraform-example-1\nresources:\n  defaultProject:\n    type: alicloud:log:Project\n    name: default\n    properties:\n      description: terraform example\n      projectName: ${projectName}\n  defaultStore:\n    type: alicloud:log:Store\n    name: default\n    properties:\n      hotTtl: '7'\n      retentionPeriod: '30'\n      shardCount: '2'\n      projectName: ${defaultProject.projectName}\n      logstoreName: ${logstoreName}\n  defaultIndex:\n    type: alicloud:sls:Index\n    name: default\n    properties:\n      line:\n        chn: 'true'\n        caseSensitive: 'true'\n        tokens:\n          - a\n        excludeKeys:\n          - t\n      keys:\n        fn::toJSON:\n          example:\n            caseSensitive: false\n            token:\n              - |2+\n              - \"\\t\"\n              - ','\n              - ' '\n              - ;\n              - '\"'\n              - ''''\n              - (\n              - )\n              - '{'\n              - '}'\n              - '['\n              - ']'\n              - \u003c\n              - '\u003e'\n              - '?'\n              - /\n              - '#'\n              - ':'\n            type: text\n            doc_value: false\n            alias: \"\"\n            chn: false\n      logstoreName: ${defaultStore.logstoreName}\n      projectName: ${projectName}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:sls:getIndexs\n      arguments:\n        logstoreName: ${defaultStore.logstoreName}\n        projectName: ${defaultProject.projectName}\noutputs:\n  alicloudSlsIndexExampleId: ${default.indexs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIndexs.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Index IDs. The value is formulated as `\u003cproject_name\u003e:\u003clogstore_name\u003e`.\n"},"logstoreName":{"type":"string","description":"Logstore name\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"projectName":{"type":"string","description":"Project name\n"}},"type":"object","required":["logstoreName","projectName"]},"outputs":{"description":"A collection of values returned by getIndexs.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Index IDs.\n","items":{"type":"string"},"type":"array"},"indexs":{"description":"A list of Index Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:sls/getIndexsIndex:getIndexsIndex"},"type":"array"},"logstoreName":{"type":"string"},"outputFile":{"type":"string"},"projectName":{"type":"string"}},"required":["ids","indexs","logstoreName","projectName","id"],"type":"object"}},"alicloud:sls/getLogtailConfigs:getLogtailConfigs":{"description":"This data source provides Sls Logtail Config available to the user.[What is Logtail Config](https://next.api.alibabacloud.com/document/Sls/2020-12-30/CreateConfig)\n\n\u003e **NOTE:** Available since v1.259.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as random from \"@pulumi/random\";\n\nconst defaultInteger = new random.index.Integer(\"default\", {\n    max: 99999,\n    min: 10000,\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tfaccsls62147\";\nconst projectName = config.get(\"projectName\") || \"project-for-logtail-terraform\";\nconst defaultuA28zS = new alicloud.log.Project(\"defaultuA28zS\", {projectName: projectName});\nconst defaultLogtailConfig = new alicloud.sls.LogtailConfig(\"default\", {\n    projectName: defaultuA28zS.projectName,\n    outputDetail: {\n        endpoint: \"cn-hangzhou-intranet.log.aliyuncs.com\",\n        region: \"cn-hangzhou\",\n        logstoreName: \"example\",\n    },\n    outputType: \"LogService\",\n    inputDetail: JSON.stringify({\n        adjustTimezone: false,\n        delayAlarmBytes: 0,\n        delaySkipBytes: 0,\n        discardNonUtf8: false,\n        discardUnmatch: true,\n        dockerFile: false,\n        enableRawLog: false,\n        enableTag: false,\n        fileEncoding: \"utf8\",\n        filePattern: \"access*.log\",\n        filterKey: [\"key1\"],\n        filterRegex: [\"regex1\"],\n        key: [\n            \"key1\",\n            \"key2\",\n        ],\n        localStorage: true,\n        logBeginRegex: \".*\",\n        logPath: \"/var/log/httpd\",\n        logTimezone: \"\",\n        logType: \"common_reg_log\",\n        maxDepth: 1000,\n        maxSendRate: -1,\n        mergeType: \"topic\",\n        preserve: true,\n        preserveDepth: 0,\n        priority: 0,\n        regex: \"(w+)(s+)\",\n        sendRateExpire: 0,\n        sensitive_keys: [],\n        tailExisted: false,\n        timeFormat: \"%Y/%m/%d %H:%M:%S\",\n        timeKey: \"time\",\n        topicFormat: \"none\",\n    }),\n    logtailConfigName: \"tfaccsls62147\",\n    inputType: \"file\",\n});\nconst _default = defaultLogtailConfig.logtailConfigName.apply(logtailConfigName =\u003e alicloud.sls.getLogtailConfigsOutput({\n    logtailConfigName: logtailConfigName,\n    logstoreName: \"example\",\n    projectName: projectName,\n    offset: 0,\n    size: 100,\n}));\nexport const alicloudSlsLogtailConfigExampleId = _default.apply(_default =\u003e _default.configs?.[0]?.id);\n```\n```python\nimport pulumi\nimport json\nimport pulumi_alicloud as alicloud\nimport pulumi_random as random\n\ndefault_integer = random.index.Integer(\"default\",\n    max=99999,\n    min=10000)\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tfaccsls62147\"\nproject_name = config.get(\"projectName\")\nif project_name is None:\n    project_name = \"project-for-logtail-terraform\"\ndefaultu_a28z_s = alicloud.log.Project(\"defaultuA28zS\", project_name=project_name)\ndefault_logtail_config = alicloud.sls.LogtailConfig(\"default\",\n    project_name=defaultu_a28z_s.project_name,\n    output_detail={\n        \"endpoint\": \"cn-hangzhou-intranet.log.aliyuncs.com\",\n        \"region\": \"cn-hangzhou\",\n        \"logstore_name\": \"example\",\n    },\n    output_type=\"LogService\",\n    input_detail=json.dumps({\n        \"adjustTimezone\": False,\n        \"delayAlarmBytes\": 0,\n        \"delaySkipBytes\": 0,\n        \"discardNonUtf8\": False,\n        \"discardUnmatch\": True,\n        \"dockerFile\": False,\n        \"enableRawLog\": False,\n        \"enableTag\": False,\n        \"fileEncoding\": \"utf8\",\n        \"filePattern\": \"access*.log\",\n        \"filterKey\": [\"key1\"],\n        \"filterRegex\": [\"regex1\"],\n        \"key\": [\n            \"key1\",\n            \"key2\",\n        ],\n        \"localStorage\": True,\n        \"logBeginRegex\": \".*\",\n        \"logPath\": \"/var/log/httpd\",\n        \"logTimezone\": \"\",\n        \"logType\": \"common_reg_log\",\n        \"maxDepth\": 1000,\n        \"maxSendRate\": -1,\n        \"mergeType\": \"topic\",\n        \"preserve\": True,\n        \"preserveDepth\": 0,\n        \"priority\": 0,\n        \"regex\": \"(w+)(s+)\",\n        \"sendRateExpire\": 0,\n        \"sensitive_keys\": [],\n        \"tailExisted\": False,\n        \"timeFormat\": \"%Y/%m/%d %H:%M:%S\",\n        \"timeKey\": \"time\",\n        \"topicFormat\": \"none\",\n    }),\n    logtail_config_name=\"tfaccsls62147\",\n    input_type=\"file\")\ndefault = default_logtail_config.logtail_config_name.apply(lambda logtail_config_name: alicloud.sls.get_logtail_configs_output(logtail_config_name=logtail_config_name,\n    logstore_name=\"example\",\n    project_name=project_name,\n    offset=0,\n    size=100))\npulumi.export(\"alicloudSlsLogtailConfigExampleId\", default.configs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultInteger = new Random.Index.Integer(\"default\", new()\n    {\n        Max = 99999,\n        Min = 10000,\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tfaccsls62147\";\n    var projectName = config.Get(\"projectName\") ?? \"project-for-logtail-terraform\";\n    var defaultuA28zS = new AliCloud.Log.Project(\"defaultuA28zS\", new()\n    {\n        ProjectName = projectName,\n    });\n\n    var defaultLogtailConfig = new AliCloud.Sls.LogtailConfig(\"default\", new()\n    {\n        ProjectName = defaultuA28zS.ProjectName,\n        OutputDetail = new AliCloud.Sls.Inputs.LogtailConfigOutputDetailArgs\n        {\n            Endpoint = \"cn-hangzhou-intranet.log.aliyuncs.com\",\n            Region = \"cn-hangzhou\",\n            LogstoreName = \"example\",\n        },\n        OutputType = \"LogService\",\n        InputDetail = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"adjustTimezone\"] = false,\n            [\"delayAlarmBytes\"] = 0,\n            [\"delaySkipBytes\"] = 0,\n            [\"discardNonUtf8\"] = false,\n            [\"discardUnmatch\"] = true,\n            [\"dockerFile\"] = false,\n            [\"enableRawLog\"] = false,\n            [\"enableTag\"] = false,\n            [\"fileEncoding\"] = \"utf8\",\n            [\"filePattern\"] = \"access*.log\",\n            [\"filterKey\"] = new[]\n            {\n                \"key1\",\n            },\n            [\"filterRegex\"] = new[]\n            {\n                \"regex1\",\n            },\n            [\"key\"] = new[]\n            {\n                \"key1\",\n                \"key2\",\n            },\n            [\"localStorage\"] = true,\n            [\"logBeginRegex\"] = \".*\",\n            [\"logPath\"] = \"/var/log/httpd\",\n            [\"logTimezone\"] = \"\",\n            [\"logType\"] = \"common_reg_log\",\n            [\"maxDepth\"] = 1000,\n            [\"maxSendRate\"] = -1,\n            [\"mergeType\"] = \"topic\",\n            [\"preserve\"] = true,\n            [\"preserveDepth\"] = 0,\n            [\"priority\"] = 0,\n            [\"regex\"] = \"(w+)(s+)\",\n            [\"sendRateExpire\"] = 0,\n            [\"sensitive_keys\"] = new[]\n            {\n            },\n            [\"tailExisted\"] = false,\n            [\"timeFormat\"] = \"%Y/%m/%d %H:%M:%S\",\n            [\"timeKey\"] = \"time\",\n            [\"topicFormat\"] = \"none\",\n        }),\n        LogtailConfigName = \"tfaccsls62147\",\n        InputType = \"file\",\n    });\n\n    var @default = AliCloud.Sls.GetLogtailConfigs.Invoke(new()\n    {\n        LogtailConfigName = defaultLogtailConfig.LogtailConfigName,\n        LogstoreName = \"example\",\n        ProjectName = projectName,\n        Offset = 0,\n        Size = 100,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudSlsLogtailConfigExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getLogtailConfigsResult =\u003e getLogtailConfigsResult.Configs[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sls\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := random.NewInteger(ctx, \"default\", \u0026random.IntegerArgs{\nMax: 99999,\nMin: 10000,\n})\nif err != nil {\nreturn err\n}\ncfg := config.New(ctx, \"\")\nname := \"tfaccsls62147\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nprojectName := \"project-for-logtail-terraform\";\nif param := cfg.Get(\"projectName\"); param != \"\"{\nprojectName = param\n}\ndefaultuA28zS, err := log.NewProject(ctx, \"defaultuA28zS\", \u0026log.ProjectArgs{\nProjectName: pulumi.String(projectName),\n})\nif err != nil {\nreturn err\n}\ntmpJSON0, err := json.Marshal(map[string]interface{}{\n\"adjustTimezone\": false,\n\"delayAlarmBytes\": 0,\n\"delaySkipBytes\": 0,\n\"discardNonUtf8\": false,\n\"discardUnmatch\": true,\n\"dockerFile\": false,\n\"enableRawLog\": false,\n\"enableTag\": false,\n\"fileEncoding\": \"utf8\",\n\"filePattern\": \"access*.log\",\n\"filterKey\": []string{\n\"key1\",\n},\n\"filterRegex\": []string{\n\"regex1\",\n},\n\"key\": []string{\n\"key1\",\n\"key2\",\n},\n\"localStorage\": true,\n\"logBeginRegex\": \".*\",\n\"logPath\": \"/var/log/httpd\",\n\"logTimezone\": \"\",\n\"logType\": \"common_reg_log\",\n\"maxDepth\": 1000,\n\"maxSendRate\": -1,\n\"mergeType\": \"topic\",\n\"preserve\": true,\n\"preserveDepth\": 0,\n\"priority\": 0,\n\"regex\": \"(w+)(s+)\",\n\"sendRateExpire\": 0,\n\"sensitive_keys\": []interface{}{\n},\n\"tailExisted\": false,\n\"timeFormat\": \"%Y/%m/%d %H:%M:%S\",\n\"timeKey\": \"time\",\n\"topicFormat\": \"none\",\n})\nif err != nil {\nreturn err\n}\njson0 := string(tmpJSON0)\ndefaultLogtailConfig, err := sls.NewLogtailConfig(ctx, \"default\", \u0026sls.LogtailConfigArgs{\nProjectName: defaultuA28zS.ProjectName,\nOutputDetail: \u0026sls.LogtailConfigOutputDetailArgs{\nEndpoint: pulumi.String(\"cn-hangzhou-intranet.log.aliyuncs.com\"),\nRegion: pulumi.String(\"cn-hangzhou\"),\nLogstoreName: pulumi.String(\"example\"),\n},\nOutputType: pulumi.String(\"LogService\"),\nInputDetail: pulumi.String(json0),\nLogtailConfigName: pulumi.String(\"tfaccsls62147\"),\nInputType: pulumi.String(\"file\"),\n})\nif err != nil {\nreturn err\n}\n_default := defaultLogtailConfig.LogtailConfigName.ApplyT(func(logtailConfigName string) (sls.GetLogtailConfigsResult, error) {\nreturn sls.GetLogtailConfigsResult(interface{}(sls.GetLogtailConfigs(ctx, \u0026sls.GetLogtailConfigsArgs{\nLogtailConfigName: pulumi.StringRef(pulumi.StringRef(logtailConfigName)),\nLogstoreName: \"example\",\nProjectName: projectName,\nOffset: 0,\nSize: 100,\n}, nil))), nil\n}).(sls.GetLogtailConfigsResultOutput)\nctx.Export(\"alicloudSlsLogtailConfigExampleId\", _default.ApplyT(func(_default sls.GetLogtailConfigsResult) (*string, error) {\nreturn \u0026default.Configs[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.random.Integer;\nimport com.pulumi.random.IntegerArgs;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.sls.LogtailConfig;\nimport com.pulumi.alicloud.sls.LogtailConfigArgs;\nimport com.pulumi.alicloud.sls.inputs.LogtailConfigOutputDetailArgs;\nimport com.pulumi.alicloud.sls.SlsFunctions;\nimport com.pulumi.alicloud.sls.inputs.GetLogtailConfigsArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        var defaultInteger = new Integer(\"defaultInteger\", IntegerArgs.builder()\n            .max(99999)\n            .min(10000)\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"tfaccsls62147\");\n        final var projectName = config.get(\"projectName\").orElse(\"project-for-logtail-terraform\");\n        var defaultuA28zS = new Project(\"defaultuA28zS\", ProjectArgs.builder()\n            .projectName(projectName)\n            .build());\n\n        var defaultLogtailConfig = new LogtailConfig(\"defaultLogtailConfig\", LogtailConfigArgs.builder()\n            .projectName(defaultuA28zS.projectName())\n            .outputDetail(LogtailConfigOutputDetailArgs.builder()\n                .endpoint(\"cn-hangzhou-intranet.log.aliyuncs.com\")\n                .region(\"cn-hangzhou\")\n                .logstoreName(\"example\")\n                .build())\n            .outputType(\"LogService\")\n            .inputDetail(serializeJson(\n                jsonObject(\n                    jsonProperty(\"adjustTimezone\", false),\n                    jsonProperty(\"delayAlarmBytes\", 0),\n                    jsonProperty(\"delaySkipBytes\", 0),\n                    jsonProperty(\"discardNonUtf8\", false),\n                    jsonProperty(\"discardUnmatch\", true),\n                    jsonProperty(\"dockerFile\", false),\n                    jsonProperty(\"enableRawLog\", false),\n                    jsonProperty(\"enableTag\", false),\n                    jsonProperty(\"fileEncoding\", \"utf8\"),\n                    jsonProperty(\"filePattern\", \"access*.log\"),\n                    jsonProperty(\"filterKey\", jsonArray(\"key1\")),\n                    jsonProperty(\"filterRegex\", jsonArray(\"regex1\")),\n                    jsonProperty(\"key\", jsonArray(\n                        \"key1\", \n                        \"key2\"\n                    )),\n                    jsonProperty(\"localStorage\", true),\n                    jsonProperty(\"logBeginRegex\", \".*\"),\n                    jsonProperty(\"logPath\", \"/var/log/httpd\"),\n                    jsonProperty(\"logTimezone\", \"\"),\n                    jsonProperty(\"logType\", \"common_reg_log\"),\n                    jsonProperty(\"maxDepth\", 1000),\n                    jsonProperty(\"maxSendRate\", -1),\n                    jsonProperty(\"mergeType\", \"topic\"),\n                    jsonProperty(\"preserve\", true),\n                    jsonProperty(\"preserveDepth\", 0),\n                    jsonProperty(\"priority\", 0),\n                    jsonProperty(\"regex\", \"(w+)(s+)\"),\n                    jsonProperty(\"sendRateExpire\", 0),\n                    jsonProperty(\"sensitive_keys\", jsonArray(\n                    )),\n                    jsonProperty(\"tailExisted\", false),\n                    jsonProperty(\"timeFormat\", \"%Y/%m/%d %H:%M:%S\"),\n                    jsonProperty(\"timeKey\", \"time\"),\n                    jsonProperty(\"topicFormat\", \"none\")\n                )))\n            .logtailConfigName(\"tfaccsls62147\")\n            .inputType(\"file\")\n            .build());\n\n        final var default = defaultLogtailConfig.logtailConfigName().applyValue(_logtailConfigName -\u003e SlsFunctions.getLogtailConfigs(GetLogtailConfigsArgs.builder()\n            .logtailConfigName(_logtailConfigName)\n            .logstoreName(\"example\")\n            .projectName(projectName)\n            .offset(0)\n            .size(100)\n            .build()));\n\n        ctx.export(\"alicloudSlsLogtailConfigExampleId\", default_.applyValue(_default_ -\u003e _default_.configs()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tfaccsls62147\n  projectName:\n    type: string\n    default: project-for-logtail-terraform\nresources:\n  defaultInteger:\n    type: random:Integer\n    name: default\n    properties:\n      max: 99999\n      min: 10000\n  defaultuA28zS:\n    type: alicloud:log:Project\n    properties:\n      projectName: ${projectName}\n  defaultLogtailConfig:\n    type: alicloud:sls:LogtailConfig\n    name: default\n    properties:\n      projectName: ${defaultuA28zS.projectName}\n      outputDetail:\n        endpoint: cn-hangzhou-intranet.log.aliyuncs.com\n        region: cn-hangzhou\n        logstoreName: example\n      outputType: LogService\n      inputDetail:\n        fn::toJSON:\n          adjustTimezone: false\n          delayAlarmBytes: 0\n          delaySkipBytes: 0\n          discardNonUtf8: false\n          discardUnmatch: true\n          dockerFile: false\n          enableRawLog: false\n          enableTag: false\n          fileEncoding: utf8\n          filePattern: access*.log\n          filterKey:\n            - key1\n          filterRegex:\n            - regex1\n          key:\n            - key1\n            - key2\n          localStorage: true\n          logBeginRegex: .*\n          logPath: /var/log/httpd\n          logTimezone: \"\"\n          logType: common_reg_log\n          maxDepth: 1000\n          maxSendRate: -1\n          mergeType: topic\n          preserve: true\n          preserveDepth: 0\n          priority: 0\n          regex: (w+)(s+)\n          sendRateExpire: 0\n          sensitive_keys: []\n          tailExisted: false\n          timeFormat: '%Y/%m/%d %H:%M:%S'\n          timeKey: time\n          topicFormat: none\n      logtailConfigName: tfaccsls62147\n      inputType: file\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:sls:getLogtailConfigs\n      arguments:\n        logtailConfigName: ${defaultLogtailConfig.logtailConfigName}\n        logstoreName: example\n        projectName: ${projectName}\n        offset: 0\n        size: 100\noutputs:\n  alicloudSlsLogtailConfigExampleId: ${default.configs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLogtailConfigs.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Logtail Config IDs. The value is formulated as `\u003cproject_name\u003e:\u003clogtail_config_name\u003e`.\n"},"logstoreName":{"type":"string","description":"Logstore name.\n"},"logtailConfigName":{"type":"string","description":"The name of the resource\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"offset":{"type":"integer","description":"Query start row. The default value is 0.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"projectName":{"type":"string","description":"Project name\n"},"size":{"type":"integer","description":"The number of rows per page set for a pagination query. The maximum value is 500.\n"}},"type":"object","required":["logstoreName","offset","projectName","size"]},"outputs":{"description":"A collection of values returned by getLogtailConfigs.\n","properties":{"configs":{"description":"A list of Logtail Config Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:sls/getLogtailConfigsConfig:getLogtailConfigsConfig"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Logtail Config IDs.\n","items":{"type":"string"},"type":"array"},"logstoreName":{"type":"string"},"logtailConfigName":{"description":"The name of the resource\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Logtail Configs.\n","items":{"type":"string"},"type":"array"},"offset":{"type":"integer"},"outputFile":{"type":"string"},"projectName":{"type":"string"},"size":{"type":"integer"}},"required":["configs","ids","logstoreName","names","offset","projectName","size","id"],"type":"object"}},"alicloud:sls/getMachineGroups:getMachineGroups":{"description":"This data source provides Sls Machine Group available to the user.[What is Machine Group](https://next.api.alibabacloud.com/document/Sls/2020-12-30/CreateMachineGroup)\n\n\u003e **NOTE:** Available since v1.259.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst projectName = config.get(\"projectName\") || \"project-for-machine-group-terraform\";\nconst defaultyJqrue = new alicloud.log.Project(\"defaultyJqrue\", {\n    description: \"for terraform example\",\n    name: projectName,\n});\nconst defaultMachineGroup = new alicloud.sls.MachineGroup(\"default\", {\n    groupName: \"group1\",\n    projectName: projectName,\n    machineIdentifyType: \"ip\",\n    groupAttribute: {\n        groupTopic: \"example\",\n        externalName: \"example\",\n    },\n    machineLists: [\"192.168.1.1\"],\n});\nconst _default = alicloud.sls.getMachineGroupsOutput({\n    ids: [defaultMachineGroup.id],\n    groupName: \"group1\",\n    projectName: projectName,\n});\nexport const alicloudSlsMachineGroupExampleId = _default.apply(_default =\u003e _default.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nproject_name = config.get(\"projectName\")\nif project_name is None:\n    project_name = \"project-for-machine-group-terraform\"\ndefaulty_jqrue = alicloud.log.Project(\"defaultyJqrue\",\n    description=\"for terraform example\",\n    name=project_name)\ndefault_machine_group = alicloud.sls.MachineGroup(\"default\",\n    group_name=\"group1\",\n    project_name=project_name,\n    machine_identify_type=\"ip\",\n    group_attribute={\n        \"group_topic\": \"example\",\n        \"external_name\": \"example\",\n    },\n    machine_lists=[\"192.168.1.1\"])\ndefault = alicloud.sls.get_machine_groups_output(ids=[default_machine_group.id],\n    group_name=\"group1\",\n    project_name=project_name)\npulumi.export(\"alicloudSlsMachineGroupExampleId\", default.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var projectName = config.Get(\"projectName\") ?? \"project-for-machine-group-terraform\";\n    var defaultyJqrue = new AliCloud.Log.Project(\"defaultyJqrue\", new()\n    {\n        Description = \"for terraform example\",\n        Name = projectName,\n    });\n\n    var defaultMachineGroup = new AliCloud.Sls.MachineGroup(\"default\", new()\n    {\n        GroupName = \"group1\",\n        ProjectName = projectName,\n        MachineIdentifyType = \"ip\",\n        GroupAttribute = new AliCloud.Sls.Inputs.MachineGroupGroupAttributeArgs\n        {\n            GroupTopic = \"example\",\n            ExternalName = \"example\",\n        },\n        MachineLists = new[]\n        {\n            \"192.168.1.1\",\n        },\n    });\n\n    var @default = AliCloud.Sls.GetMachineGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultMachineGroup.Id,\n        },\n        GroupName = \"group1\",\n        ProjectName = projectName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudSlsMachineGroupExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getMachineGroupsResult =\u003e getMachineGroupsResult.Groups[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/sls\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nprojectName := \"project-for-machine-group-terraform\";\nif param := cfg.Get(\"projectName\"); param != \"\"{\nprojectName = param\n}\n_, err := log.NewProject(ctx, \"defaultyJqrue\", \u0026log.ProjectArgs{\nDescription: pulumi.String(\"for terraform example\"),\nName: pulumi.String(projectName),\n})\nif err != nil {\nreturn err\n}\ndefaultMachineGroup, err := sls.NewMachineGroup(ctx, \"default\", \u0026sls.MachineGroupArgs{\nGroupName: pulumi.String(\"group1\"),\nProjectName: pulumi.String(projectName),\nMachineIdentifyType: pulumi.String(\"ip\"),\nGroupAttribute: \u0026sls.MachineGroupGroupAttributeArgs{\nGroupTopic: pulumi.String(\"example\"),\nExternalName: pulumi.String(\"example\"),\n},\nMachineLists: pulumi.StringArray{\npulumi.String(\"192.168.1.1\"),\n},\n})\nif err != nil {\nreturn err\n}\n_default := sls.GetMachineGroupsOutput(ctx, sls.GetMachineGroupsOutputArgs{\nIds: pulumi.StringArray{\ndefaultMachineGroup.ID(),\n},\nGroupName: pulumi.String(\"group1\"),\nProjectName: pulumi.String(projectName),\n}, nil);\nctx.Export(\"alicloudSlsMachineGroupExampleId\", _default.ApplyT(func(_default sls.GetMachineGroupsResult) (*string, error) {\nreturn \u0026default.Groups[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.log.Project;\nimport com.pulumi.alicloud.log.ProjectArgs;\nimport com.pulumi.alicloud.sls.MachineGroup;\nimport com.pulumi.alicloud.sls.MachineGroupArgs;\nimport com.pulumi.alicloud.sls.inputs.MachineGroupGroupAttributeArgs;\nimport com.pulumi.alicloud.sls.SlsFunctions;\nimport com.pulumi.alicloud.sls.inputs.GetMachineGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var projectName = config.get(\"projectName\").orElse(\"project-for-machine-group-terraform\");\n        var defaultyJqrue = new Project(\"defaultyJqrue\", ProjectArgs.builder()\n            .description(\"for terraform example\")\n            .name(projectName)\n            .build());\n\n        var defaultMachineGroup = new MachineGroup(\"defaultMachineGroup\", MachineGroupArgs.builder()\n            .groupName(\"group1\")\n            .projectName(projectName)\n            .machineIdentifyType(\"ip\")\n            .groupAttribute(MachineGroupGroupAttributeArgs.builder()\n                .groupTopic(\"example\")\n                .externalName(\"example\")\n                .build())\n            .machineLists(\"192.168.1.1\")\n            .build());\n\n        final var default = SlsFunctions.getMachineGroups(GetMachineGroupsArgs.builder()\n            .ids(defaultMachineGroup.id())\n            .groupName(\"group1\")\n            .projectName(projectName)\n            .build());\n\n        ctx.export(\"alicloudSlsMachineGroupExampleId\", default_.applyValue(_default_ -\u003e _default_.groups()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\n  projectName:\n    type: string\n    default: project-for-machine-group-terraform\nresources:\n  defaultyJqrue:\n    type: alicloud:log:Project\n    properties:\n      description: for terraform example\n      name: ${projectName}\n  defaultMachineGroup:\n    type: alicloud:sls:MachineGroup\n    name: default\n    properties:\n      groupName: group1\n      projectName: ${projectName}\n      machineIdentifyType: ip\n      groupAttribute:\n        groupTopic: example\n        externalName: example\n      machineLists:\n        - 192.168.1.1\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:sls:getMachineGroups\n      arguments:\n        ids:\n          - ${defaultMachineGroup.id}\n        groupName: group1\n        projectName: ${projectName}\noutputs:\n  alicloudSlsMachineGroupExampleId: ${default.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMachineGroups.\n","properties":{"groupName":{"type":"string","description":"Machine Group name\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Machine Group IDs. The value is formulated as `\u003cproject_name\u003e:\u003cgroup_name\u003e`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"projectName":{"type":"string","description":"Project name\n"}},"type":"object","required":["projectName"]},"outputs":{"description":"A collection of values returned by getMachineGroups.\n","properties":{"groupName":{"description":"Machine Group name\n","type":"string"},"groups":{"description":"A list of Machine Group Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:sls/getMachineGroupsGroup:getMachineGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Machine Group IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"projectName":{"type":"string"}},"required":["groups","ids","projectName","id"],"type":"object"}},"alicloud:tag/getMetaTags:getMetaTags":{"description":"This data source provides the Tag Meta Tags of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.169.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.tag.getMetaTags({\n    keyName: \"example_value\",\n});\nexport const tagMetaTagDefault1 = _default.then(_default =\u003e _default.tags?.valueName);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.tag.get_meta_tags(key_name=\"example_value\")\npulumi.export(\"tagMetaTagDefault1\", default.tags.value_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Tag.GetMetaTags.Invoke(new()\n    {\n        KeyName = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"tagMetaTagDefault1\"] = @default.Apply(@default =\u003e @default.Apply(getMetaTagsResult =\u003e getMetaTagsResult.Tags?.ValueName)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/tag\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := tag.GetMetaTags(ctx, \u0026tag.GetMetaTagsArgs{\n\t\t\tKeyName: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"tagMetaTagDefault1\", _default.Tags.ValueName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.tag.TagFunctions;\nimport com.pulumi.alicloud.tag.inputs.GetMetaTagsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = TagFunctions.getMetaTags(GetMetaTagsArgs.builder()\n            .keyName(\"example_value\")\n            .build());\n\n        ctx.export(\"tagMetaTagDefault1\", default_.tags().valueName());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:tag:getMetaTags\n      arguments:\n        keyName: example_value\noutputs:\n  tagMetaTagDefault1: ${default.tags.valueName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMetaTags.\n","properties":{"keyName":{"type":"string","description":"The name of the key.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getMetaTags.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"keyName":{"type":"string"},"outputFile":{"type":"string"},"tags":{"items":{"$ref":"#/types/alicloud:tag/getMetaTagsTag:getMetaTagsTag"},"type":"array"}},"required":["tags","id"],"type":"object"}},"alicloud:threatdetection/getAntiBruteForceRules:getAntiBruteForceRules":{"description":"This data source provides Threat Detection Anti Brute Force Rule available to the user.[What is Anti Brute Force Rule](https://www.alibabacloud.com/help/en/security-center/latest/api-sas-2018-12-03-createantibruteforcerule)\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"example_value\";\nconst defaultAntiBruteForceRule = new alicloud.threatdetection.AntiBruteForceRule(\"default\", {\n    antiBruteForceRuleName: name,\n    forbiddenTime: 360,\n    uuidLists: [\"7567806c-4ec5-4597-9543-7c9543381a13\"],\n    failCount: 80,\n    span: 10,\n});\nconst _default = defaultAntiBruteForceRule.id.apply(id =\u003e alicloud.threatdetection.getAntiBruteForceRulesOutput({\n    ids: [id],\n    nameRegex: defaultAntiBruteForceRule.name,\n}));\nexport const alicloudThreatDetectionAntiBruteForceRuleExampleId = _default.apply(_default =\u003e _default.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"example_value\"\ndefault_anti_brute_force_rule = alicloud.threatdetection.AntiBruteForceRule(\"default\",\n    anti_brute_force_rule_name=name,\n    forbidden_time=360,\n    uuid_lists=[\"7567806c-4ec5-4597-9543-7c9543381a13\"],\n    fail_count=80,\n    span=10)\ndefault = default_anti_brute_force_rule.id.apply(lambda id: alicloud.threatdetection.get_anti_brute_force_rules_output(ids=[id],\n    name_regex=default_anti_brute_force_rule.name))\npulumi.export(\"alicloudThreatDetectionAntiBruteForceRuleExampleId\", default.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"example_value\";\n    var defaultAntiBruteForceRule = new AliCloud.ThreatDetection.AntiBruteForceRule(\"default\", new()\n    {\n        AntiBruteForceRuleName = name,\n        ForbiddenTime = 360,\n        UuidLists = new[]\n        {\n            \"7567806c-4ec5-4597-9543-7c9543381a13\",\n        },\n        FailCount = 80,\n        Span = 10,\n    });\n\n    var @default = AliCloud.ThreatDetection.GetAntiBruteForceRules.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAntiBruteForceRule.Id,\n        },\n        NameRegex = defaultAntiBruteForceRule.Name,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudThreatDetectionAntiBruteForceRuleExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getAntiBruteForceRulesResult =\u003e getAntiBruteForceRulesResult.Rules[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"example_value\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultAntiBruteForceRule, err := threatdetection.NewAntiBruteForceRule(ctx, \"default\", \u0026threatdetection.AntiBruteForceRuleArgs{\nAntiBruteForceRuleName: pulumi.String(name),\nForbiddenTime: pulumi.Int(360),\nUuidLists: pulumi.StringArray{\npulumi.String(\"7567806c-4ec5-4597-9543-7c9543381a13\"),\n},\nFailCount: pulumi.Int(80),\nSpan: pulumi.Int(10),\n})\nif err != nil {\nreturn err\n}\n_default := defaultAntiBruteForceRule.ID().ApplyT(func(id string) (threatdetection.GetAntiBruteForceRulesResult, error) {\nreturn threatdetection.GetAntiBruteForceRulesResult(interface{}(threatdetection.GetAntiBruteForceRules(ctx, \u0026threatdetection.GetAntiBruteForceRulesArgs{\nIds: []string{\nid,\n},\nNameRegex: pulumi.StringRef(pulumi.StringRef(pulumi.String(defaultAntiBruteForceRule.Name))),\n}, nil))), nil\n}).(threatdetection.GetAntiBruteForceRulesResultOutput)\nctx.Export(\"alicloudThreatDetectionAntiBruteForceRuleExampleId\", _default.ApplyT(func(_default threatdetection.GetAntiBruteForceRulesResult) (*string, error) {\nreturn \u0026default.Rules[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.AntiBruteForceRule;\nimport com.pulumi.alicloud.threatdetection.AntiBruteForceRuleArgs;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetAntiBruteForceRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"example_value\");\n        var defaultAntiBruteForceRule = new AntiBruteForceRule(\"defaultAntiBruteForceRule\", AntiBruteForceRuleArgs.builder()\n            .antiBruteForceRuleName(name)\n            .forbiddenTime(360)\n            .uuidLists(\"7567806c-4ec5-4597-9543-7c9543381a13\")\n            .failCount(80)\n            .span(10)\n            .build());\n\n        final var default = defaultAntiBruteForceRule.id().applyValue(_id -\u003e ThreatdetectionFunctions.getAntiBruteForceRules(GetAntiBruteForceRulesArgs.builder()\n            .ids(_id)\n            .nameRegex(defaultAntiBruteForceRule.name())\n            .build()));\n\n        ctx.export(\"alicloudThreatDetectionAntiBruteForceRuleExampleId\", default_.applyValue(_default_ -\u003e _default_.rules()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: example_value\nresources:\n  defaultAntiBruteForceRule:\n    type: alicloud:threatdetection:AntiBruteForceRule\n    name: default\n    properties:\n      antiBruteForceRuleName: ${name}\n      forbiddenTime: 360\n      uuidLists:\n        - 7567806c-4ec5-4597-9543-7c9543381a13\n      failCount: 80\n      span: 10\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getAntiBruteForceRules\n      arguments:\n        ids:\n          - ${defaultAntiBruteForceRule.id}\n        nameRegex: ${defaultAntiBruteForceRule.name}\noutputs:\n  alicloudThreatDetectionAntiBruteForceRuleExampleId: ${default.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAntiBruteForceRules.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Anti-Brute Force Rule IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by the name of the defense rule.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAntiBruteForceRules.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Anti Brute Force Rule IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Anti Brute Force Rules.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"rules":{"description":"A list of Anti Brute Force Rule Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:threatdetection/getAntiBruteForceRulesRule:getAntiBruteForceRulesRule"},"type":"array"}},"required":["ids","names","rules","id"],"type":"object"}},"alicloud:threatdetection/getAssets:getAssets":{"description":"This data source provides Threat Detection Asset available to the user.[What is Asset](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-describecloudcenterinstances)\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.threatdetection.getAssets({});\nexport const alicloudThreatDetectionAssetExampleId = _default.then(_default =\u003e _default.assets?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.get_assets()\npulumi.export(\"alicloudThreatDetectionAssetExampleId\", default.assets[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ThreatDetection.GetAssets.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudThreatDetectionAssetExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getAssetsResult =\u003e getAssetsResult.Assets[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := threatdetection.GetAssets(ctx, \u0026threatdetection.GetAssetsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudThreatDetectionAssetExampleId\", _default.Assets[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetAssetsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ThreatdetectionFunctions.getAssets(GetAssetsArgs.builder()\n            .build());\n\n        ctx.export(\"alicloudThreatDetectionAssetExampleId\", default_.assets()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getAssets\n      arguments: {}\noutputs:\n  alicloudThreatDetectionAssetExampleId: ${default.assets[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAssets.\n","properties":{"criteria":{"type":"string","description":"Set the conditions for searching assets. This parameter is in JSON format. Note the case when you enter the parameter. **NOTE:** You can search for assets by using conditions such as the instance ID, instance name, VPC ID, region, and public IP address of the asset.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Asset IDs.\n"},"importance":{"type":"integer","description":"Set asset importance. Value:\n- **2**: Significant assets\n- **1**: General assets\n- **0**: Test asset\n"},"logicalExp":{"type":"string","description":"Set the logical relationship between multiple search conditions. The default value is **OR**. Valid values:\n- **OR**: indicates that the relationship between multiple search conditions is **OR**.\n- **AND**: indicates that the relationship between multiple search conditions is **AND**.\n"},"machineTypes":{"type":"string","description":"The type of asset to query. Value:\n- **ecs**: server.\n- **cloud_product**: Cloud product.\n"},"noGroupTrace":{"type":"boolean","description":"Specifies whether to internationalize the name of the default group. Default value: false\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAssets.\n","properties":{"assets":{"description":"A list of Asset Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:threatdetection/getAssetsAsset:getAssetsAsset"},"type":"array"},"criteria":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Asset IDs.\n","items":{"type":"string"},"type":"array"},"importance":{"type":"integer"},"logicalExp":{"type":"string"},"machineTypes":{"type":"string"},"noGroupTrace":{"type":"boolean"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["assets","ids","id"],"type":"object"}},"alicloud:threatdetection/getBackupPolicies:getBackupPolicies":{"description":"This data source provides the Threat Detection Backup Policies of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.195.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.threatdetection.getBackupPolicies({\n    ids: [\"example_id\"],\n});\nexport const threatDetectionBackupPoliciesId1 = ids.then(ids =\u003e ids.policies?.[0]?.id);\nconst nameRegex = alicloud.threatdetection.getBackupPolicies({\n    nameRegex: \"tf-example\",\n});\nexport const threatDetectionBackupPoliciesId2 = nameRegex.then(nameRegex =\u003e nameRegex.policies?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.threatdetection.get_backup_policies(ids=[\"example_id\"])\npulumi.export(\"threatDetectionBackupPoliciesId1\", ids.policies[0].id)\nname_regex = alicloud.threatdetection.get_backup_policies(name_regex=\"tf-example\")\npulumi.export(\"threatDetectionBackupPoliciesId2\", name_regex.policies[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.ThreatDetection.GetBackupPolicies.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.ThreatDetection.GetBackupPolicies.Invoke(new()\n    {\n        NameRegex = \"tf-example\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"threatDetectionBackupPoliciesId1\"] = ids.Apply(getBackupPoliciesResult =\u003e getBackupPoliciesResult.Policies[0]?.Id),\n        [\"threatDetectionBackupPoliciesId2\"] = nameRegex.Apply(getBackupPoliciesResult =\u003e getBackupPoliciesResult.Policies[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := threatdetection.GetBackupPolicies(ctx, \u0026threatdetection.GetBackupPoliciesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"threatDetectionBackupPoliciesId1\", ids.Policies[0].Id)\n\t\tnameRegex, err := threatdetection.GetBackupPolicies(ctx, \u0026threatdetection.GetBackupPoliciesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"tf-example\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"threatDetectionBackupPoliciesId2\", nameRegex.Policies[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetBackupPoliciesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = ThreatdetectionFunctions.getBackupPolicies(GetBackupPoliciesArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"threatDetectionBackupPoliciesId1\", ids.policies()[0].id());\n        final var nameRegex = ThreatdetectionFunctions.getBackupPolicies(GetBackupPoliciesArgs.builder()\n            .nameRegex(\"tf-example\")\n            .build());\n\n        ctx.export(\"threatDetectionBackupPoliciesId2\", nameRegex.policies()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:threatdetection:getBackupPolicies\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:threatdetection:getBackupPolicies\n      arguments:\n        nameRegex: tf-example\noutputs:\n  threatDetectionBackupPoliciesId1: ${ids.policies[0].id}\n  threatDetectionBackupPoliciesId2: ${nameRegex.policies[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBackupPolicies.\n","properties":{"currentPage":{"type":"integer"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Threat Detection Backup Policies IDs.\n"},"machineRemark":{"type":"string","description":"The information that you want to use to identify the servers protected by the anti-ransomware policy. You can enter the IP address or ID of a server.\n"},"name":{"type":"string","description":"The name of the anti-ransomware policy that you want to query.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Threat Detection Backup Policies name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageSize":{"type":"integer"},"status":{"type":"string","description":"The status of the anti-ransomware policy. Valid Value: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`closed`\" pulumi-lang-dotnet=\"`Closed`\" pulumi-lang-go=\"`closed`\" pulumi-lang-python=\"`closed`\" pulumi-lang-yaml=\"`closed`\" pulumi-lang-java=\"`closed`\"\u003e`closed`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBackupPolicies.\n","properties":{"currentPage":{"type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"machineRemark":{"type":"string"},"name":{"type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Threat Detection Backup Policy names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageSize":{"type":"integer"},"policies":{"description":"A list of Threat Detection Backup policies. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:threatdetection/getBackupPoliciesPolicy:getBackupPoliciesPolicy"},"type":"array"},"status":{"description":"The status of the anti-ransomware policy.\n","type":"string"}},"required":["ids","names","policies","id"],"type":"object"}},"alicloud:threatdetection/getBaselineStrategies:getBaselineStrategies":{"description":"This data source provides Threat Detection Baseline Strategy available to the user.[What is Baseline Strategy](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-describestrategy)\n\n\u003e **NOTE:** Available in 1.195.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst defaultBaselineStrategy = new alicloud.threatdetection.BaselineStrategy(\"default\", {\n    customType: \"custom\",\n    endTime: \"08:00:00\",\n    baselineStrategyName: \"apispec\",\n    cycleDays: 3,\n    targetType: \"groupId\",\n    startTime: \"05:00:00\",\n    riskSubTypeName: \"hc_exploit_redis\",\n});\nconst _default = defaultBaselineStrategy.id.apply(id =\u003e alicloud.threatdetection.getBaselineStrategiesOutput({\n    ids: [id],\n    nameRegex: defaultBaselineStrategy.name,\n    customType: \"custom\",\n}));\nexport const alicloudThreatDetectionBaselineStrategyExampleId = defaultAlicloudThreatDetectionBaselineStrategys.strategys[0].id;\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault_baseline_strategy = alicloud.threatdetection.BaselineStrategy(\"default\",\n    custom_type=\"custom\",\n    end_time=\"08:00:00\",\n    baseline_strategy_name=\"apispec\",\n    cycle_days=3,\n    target_type=\"groupId\",\n    start_time=\"05:00:00\",\n    risk_sub_type_name=\"hc_exploit_redis\")\ndefault = default_baseline_strategy.id.apply(lambda id: alicloud.threatdetection.get_baseline_strategies_output(ids=[id],\n    name_regex=default_baseline_strategy.name,\n    custom_type=\"custom\"))\npulumi.export(\"alicloudThreatDetectionBaselineStrategyExampleId\", default_alicloud_threat_detection_baseline_strategys[\"strategys\"][0][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultBaselineStrategy = new AliCloud.ThreatDetection.BaselineStrategy(\"default\", new()\n    {\n        CustomType = \"custom\",\n        EndTime = \"08:00:00\",\n        BaselineStrategyName = \"apispec\",\n        CycleDays = 3,\n        TargetType = \"groupId\",\n        StartTime = \"05:00:00\",\n        RiskSubTypeName = \"hc_exploit_redis\",\n    });\n\n    var @default = AliCloud.ThreatDetection.GetBaselineStrategies.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultBaselineStrategy.Id,\n        },\n        NameRegex = defaultBaselineStrategy.Name,\n        CustomType = \"custom\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudThreatDetectionBaselineStrategyExampleId\"] = defaultAlicloudThreatDetectionBaselineStrategys.Strategys[0].Id,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultBaselineStrategy, err := threatdetection.NewBaselineStrategy(ctx, \"default\", \u0026threatdetection.BaselineStrategyArgs{\n\t\t\tCustomType:           pulumi.String(\"custom\"),\n\t\t\tEndTime:              pulumi.String(\"08:00:00\"),\n\t\t\tBaselineStrategyName: pulumi.String(\"apispec\"),\n\t\t\tCycleDays:            pulumi.Int(3),\n\t\t\tTargetType:           pulumi.String(\"groupId\"),\n\t\t\tStartTime:            pulumi.String(\"05:00:00\"),\n\t\t\tRiskSubTypeName:      pulumi.String(\"hc_exploit_redis\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = defaultBaselineStrategy.ID().ApplyT(func(id string) (threatdetection.GetBaselineStrategiesResult, error) {\n\t\t\treturn threatdetection.GetBaselineStrategiesResult(interface{}(threatdetection.GetBaselineStrategies(ctx, \u0026threatdetection.GetBaselineStrategiesArgs{\n\t\t\t\tIds: []string{\n\t\t\t\t\tid,\n\t\t\t\t},\n\t\t\t\tNameRegex:  pulumi.StringRef(pulumi.StringRef(pulumi.String(defaultBaselineStrategy.Name))),\n\t\t\t\tCustomType: pulumi.StringRef(pulumi.StringRef(\"custom\")),\n\t\t\t}, nil))), nil\n\t\t}).(threatdetection.GetBaselineStrategiesResultOutput)\n\t\tctx.Export(\"alicloudThreatDetectionBaselineStrategyExampleId\", defaultAlicloudThreatDetectionBaselineStrategys.Strategys[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.BaselineStrategy;\nimport com.pulumi.alicloud.threatdetection.BaselineStrategyArgs;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetBaselineStrategiesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultBaselineStrategy = new BaselineStrategy(\"defaultBaselineStrategy\", BaselineStrategyArgs.builder()\n            .customType(\"custom\")\n            .endTime(\"08:00:00\")\n            .baselineStrategyName(\"apispec\")\n            .cycleDays(3)\n            .targetType(\"groupId\")\n            .startTime(\"05:00:00\")\n            .riskSubTypeName(\"hc_exploit_redis\")\n            .build());\n\n        final var default = defaultBaselineStrategy.id().applyValue(_id -\u003e ThreatdetectionFunctions.getBaselineStrategies(GetBaselineStrategiesArgs.builder()\n            .ids(_id)\n            .nameRegex(defaultBaselineStrategy.name())\n            .customType(\"custom\")\n            .build()));\n\n        ctx.export(\"alicloudThreatDetectionBaselineStrategyExampleId\", defaultAlicloudThreatDetectionBaselineStrategys.strategys()[0].id());\n    }\n}\n```\n```yaml\nresources:\n  defaultBaselineStrategy:\n    type: alicloud:threatdetection:BaselineStrategy\n    name: default\n    properties:\n      customType: custom\n      endTime: 08:00:00\n      baselineStrategyName: apispec\n      cycleDays: 3\n      targetType: groupId\n      startTime: 05:00:00\n      riskSubTypeName: hc_exploit_redis\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getBaselineStrategies\n      arguments:\n        ids:\n          - ${defaultBaselineStrategy.id}\n        nameRegex: ${defaultBaselineStrategy.name}\n        customType: custom\noutputs:\n  alicloudThreatDetectionBaselineStrategyExampleId: ${defaultAlicloudThreatDetectionBaselineStrategys.strategys[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBaselineStrategies.\n","properties":{"customType":{"type":"string","description":"The type of policy. Value:-**common**: standard policy-**custom**: custom policy\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Baseline Strategy IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"strategyIds":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBaselineStrategies.\n","properties":{"customType":{"description":"The type of policy. Value:\n* **common**: standard policy\n* **custom**: custom policy\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Baseline Strategy IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Baseline Strategys.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"strategies":{"items":{"$ref":"#/types/alicloud:threatdetection/getBaselineStrategiesStrategy:getBaselineStrategiesStrategy"},"type":"array"},"strategyIds":{"type":"string"}},"required":["ids","names","strategies","id"],"type":"object"}},"alicloud:threatdetection/getCheckItemConfigs:getCheckItemConfigs":{"description":"This data source provides Threat Detection Check Item Config available to the user.[What is Check Item Config](https://next.api.alibabacloud.com/document/Sas/2018-12-03/ListCheckItem)\n\n\u003e **NOTE:** Available since v1.267.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.threatdetection.getCheckItemConfigs({});\nexport const alicloudThreatDetectionCheckItemConfigExampleCheckId = _default.then(_default =\u003e _default.configs?.[0]?.checkId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.get_check_item_configs()\npulumi.export(\"alicloudThreatDetectionCheckItemConfigExampleCheckId\", default.configs[0].check_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ThreatDetection.GetCheckItemConfigs.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudThreatDetectionCheckItemConfigExampleCheckId\"] = @default.Apply(@default =\u003e @default.Apply(getCheckItemConfigsResult =\u003e getCheckItemConfigsResult.Configs[0]?.CheckId)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := threatdetection.GetCheckItemConfigs(ctx, \u0026threatdetection.GetCheckItemConfigsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudThreatDetectionCheckItemConfigExampleCheckId\", _default.Configs[0].CheckId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetCheckItemConfigsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ThreatdetectionFunctions.getCheckItemConfigs(GetCheckItemConfigsArgs.builder()\n            .build());\n\n        ctx.export(\"alicloudThreatDetectionCheckItemConfigExampleCheckId\", default_.configs()[0].checkId());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getCheckItemConfigs\n      arguments: {}\noutputs:\n  alicloudThreatDetectionCheckItemConfigExampleCheckId: ${default.configs[0].checkId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCheckItemConfigs.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Check Item Config IDs.\n"},"lang":{"type":"string","description":"The language of the content within the request and response. Default value: **zh**. Valid value:*   **zh**: Chinese*   **en**: English\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer","description":"Current page number.\n"},"pageSize":{"type":"integer","description":"Number of records per page.\n"},"taskSources":{"type":"array","items":{"type":"string"},"description":"List of task sources.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCheckItemConfigs.\n","properties":{"configs":{"description":"A list of Check Item Config Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:threatdetection/getCheckItemConfigsConfig:getCheckItemConfigsConfig"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Check Item Config IDs.\n","items":{"type":"string"},"type":"array"},"lang":{"type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"taskSources":{"items":{"type":"string"},"type":"array"}},"required":["configs","ids","id"],"type":"object"}},"alicloud:threatdetection/getCheckStructures:getCheckStructures":{"description":"This data source provides Threat Detection Check Structure available to the user.[What is Check Structure](https://next.api.alibabacloud.com/document/Sas/2018-12-03/GetCheckStructure)\n\n\u003e **NOTE:** Available since v1.267.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.threatdetection.getCheckStructures({});\nexport const alicloudThreatDetectionCheckStructureExampleStandardType = _default.then(_default =\u003e _default.structures?.[0]?.standardType);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.get_check_structures()\npulumi.export(\"alicloudThreatDetectionCheckStructureExampleStandardType\", default.structures[0].standard_type)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ThreatDetection.GetCheckStructures.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudThreatDetectionCheckStructureExampleStandardType\"] = @default.Apply(@default =\u003e @default.Apply(getCheckStructuresResult =\u003e getCheckStructuresResult.Structures[0]?.StandardType)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := threatdetection.GetCheckStructures(ctx, \u0026threatdetection.GetCheckStructuresArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudThreatDetectionCheckStructureExampleStandardType\", _default.Structures[0].StandardType)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetCheckStructuresArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ThreatdetectionFunctions.getCheckStructures(GetCheckStructuresArgs.builder()\n            .build());\n\n        ctx.export(\"alicloudThreatDetectionCheckStructureExampleStandardType\", default_.structures()[0].standardType());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getCheckStructures\n      arguments: {}\noutputs:\n  alicloudThreatDetectionCheckStructureExampleStandardType: ${default.structures[0].standardType}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCheckStructures.\n","properties":{"currentPage":{"type":"integer","description":"The page number.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Check Structure IDs.\n"},"lang":{"type":"string","description":"The language of the content within the request and response. Default value: zh. Valid values:- **zh**: Chinese- **en**: English\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"taskSources":{"type":"array","items":{"type":"string"},"description":"List of task sources.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCheckStructures.\n","properties":{"currentPage":{"type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Check Structure IDs.\n","items":{"type":"string"},"type":"array"},"lang":{"type":"string"},"outputFile":{"type":"string"},"structures":{"description":"A list of Check Structure Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:threatdetection/getCheckStructuresStructure:getCheckStructuresStructure"},"type":"array"},"taskSources":{"items":{"type":"string"},"type":"array"}},"required":["ids","structures","id"],"type":"object"}},"alicloud:threatdetection/getHoneyPots:getHoneyPots":{"description":"This data source provides Threat Detection Honey Pot available to the user.[What is Honey Pot](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-createhoneypot)\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.threatdetection.getHoneyPots({\n    ids: [\"xxxx\"],\n    honeypotName: \"tf-example\",\n    nodeId: \"a44e1ab3-6945-444c-889d-5bacee7056e8\",\n});\nexport const alicloudThreatDetectionHoneyPotExampleId = _default.then(_default =\u003e _default.pots?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.get_honey_pots(ids=[\"xxxx\"],\n    honeypot_name=\"tf-example\",\n    node_id=\"a44e1ab3-6945-444c-889d-5bacee7056e8\")\npulumi.export(\"alicloudThreatDetectionHoneyPotExampleId\", default.pots[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ThreatDetection.GetHoneyPots.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"xxxx\",\n        },\n        HoneypotName = \"tf-example\",\n        NodeId = \"a44e1ab3-6945-444c-889d-5bacee7056e8\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudThreatDetectionHoneyPotExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getHoneyPotsResult =\u003e getHoneyPotsResult.Pots[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := threatdetection.GetHoneyPots(ctx, \u0026threatdetection.GetHoneyPotsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"xxxx\",\n\t\t\t},\n\t\t\tHoneypotName: pulumi.StringRef(\"tf-example\"),\n\t\t\tNodeId:       pulumi.StringRef(\"a44e1ab3-6945-444c-889d-5bacee7056e8\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudThreatDetectionHoneyPotExampleId\", _default.Pots[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetHoneyPotsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ThreatdetectionFunctions.getHoneyPots(GetHoneyPotsArgs.builder()\n            .ids(\"xxxx\")\n            .honeypotName(\"tf-example\")\n            .nodeId(\"a44e1ab3-6945-444c-889d-5bacee7056e8\")\n            .build());\n\n        ctx.export(\"alicloudThreatDetectionHoneyPotExampleId\", default_.pots()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getHoneyPots\n      arguments:\n        ids:\n          - xxxx\n        honeypotName: tf-example\n        nodeId: a44e1ab3-6945-444c-889d-5bacee7056e8\noutputs:\n  alicloudThreatDetectionHoneyPotExampleId: ${default.pots[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHoneyPots.\n","properties":{"honeypotId":{"type":"string","description":"Honeypot ID.\n"},"honeypotName":{"type":"string","description":"Honeypot custom name.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Honey Pot IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by honey pot name.\n"},"nodeId":{"type":"string","description":"The ID of the honeypot management node.\n"},"nodeName":{"type":"string","description":"The name of the honeypot management node.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHoneyPots.\n","properties":{"honeypotId":{"description":"Honeypot ID.\n","type":"string"},"honeypotName":{"description":"Honeypot custom name.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Honey Pot IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"nodeId":{"description":"The ID of the honeypot management node.\n","type":"string"},"nodeName":{"type":"string"},"outputFile":{"type":"string"},"pots":{"description":"A list of Honey Pot Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:threatdetection/getHoneyPotsPot:getHoneyPotsPot"},"type":"array"}},"required":["ids","pots","id"],"type":"object"}},"alicloud:threatdetection/getHoneypotImages:getHoneypotImages":{"description":"This data source provides Threat Detection Honeypot Image available to the user.[What is Honeypot Image](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-listavailablehoneypot)\n\n\u003e **NOTE:** Available in 1.195.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.threatdetection.getHoneypotImages({\n    ids: [\"sha256:02882320c9a55303410127c5dc4ae2dc470150f9d7f2483102d994f5e5f4d9df\"],\n    nameRegex: \"^meta\",\n});\nexport const alicloudThreatDetectionHoneypotImageExampleId = _default.then(_default =\u003e _default.images?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.get_honeypot_images(ids=[\"sha256:02882320c9a55303410127c5dc4ae2dc470150f9d7f2483102d994f5e5f4d9df\"],\n    name_regex=\"^meta\")\npulumi.export(\"alicloudThreatDetectionHoneypotImageExampleId\", default.images[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ThreatDetection.GetHoneypotImages.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"sha256:02882320c9a55303410127c5dc4ae2dc470150f9d7f2483102d994f5e5f4d9df\",\n        },\n        NameRegex = \"^meta\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudThreatDetectionHoneypotImageExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getHoneypotImagesResult =\u003e getHoneypotImagesResult.Images[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := threatdetection.GetHoneypotImages(ctx, \u0026threatdetection.GetHoneypotImagesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"sha256:02882320c9a55303410127c5dc4ae2dc470150f9d7f2483102d994f5e5f4d9df\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"^meta\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudThreatDetectionHoneypotImageExampleId\", _default.Images[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetHoneypotImagesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ThreatdetectionFunctions.getHoneypotImages(GetHoneypotImagesArgs.builder()\n            .ids(\"sha256:02882320c9a55303410127c5dc4ae2dc470150f9d7f2483102d994f5e5f4d9df\")\n            .nameRegex(\"^meta\")\n            .build());\n\n        ctx.export(\"alicloudThreatDetectionHoneypotImageExampleId\", default_.images()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getHoneypotImages\n      arguments:\n        ids:\n          - sha256:02882320c9a55303410127c5dc4ae2dc470150f9d7f2483102d994f5e5f4d9df\n        nameRegex: ^meta\noutputs:\n  alicloudThreatDetectionHoneypotImageExampleId: ${default.images[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHoneypotImages.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Honeypot Image IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Honeypot mirror nam.\n"},"nodeId":{"type":"string"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHoneypotImages.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Honeypot Image IDs.\n","items":{"type":"string"},"type":"array"},"images":{"description":"A list of Honeypot Image Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:threatdetection/getHoneypotImagesImage:getHoneypotImagesImage"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Honeypot Images.\n","items":{"type":"string"},"type":"array"},"nodeId":{"type":"string"},"outputFile":{"type":"string"}},"required":["ids","images","names","id"],"type":"object"}},"alicloud:threatdetection/getHoneypotNodes:getHoneypotNodes":{"description":"This data source provides Threat Detection Honeypot Node available to the user.[What is Honeypot Node](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-createhoneypotnode)\n\n\u003e **NOTE:** Available in 1.195.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.threatdetection.getHoneypotNodes({\n    ids: [defaultAlicloudThreatDetectionHoneypotNode.id],\n});\nexport const alicloudThreatDetectionHoneypotNodeExampleId = _default.then(_default =\u003e _default.nodes?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.get_honeypot_nodes(ids=[default_alicloud_threat_detection_honeypot_node[\"id\"]])\npulumi.export(\"alicloudThreatDetectionHoneypotNodeExampleId\", default.nodes[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ThreatDetection.GetHoneypotNodes.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudThreatDetectionHoneypotNode.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudThreatDetectionHoneypotNodeExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getHoneypotNodesResult =\u003e getHoneypotNodesResult.Nodes[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := threatdetection.GetHoneypotNodes(ctx, \u0026threatdetection.GetHoneypotNodesArgs{\nIds: interface{}{\ndefaultAlicloudThreatDetectionHoneypotNode.Id,\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudThreatDetectionHoneypotNodeExampleId\", _default.Nodes[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetHoneypotNodesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ThreatdetectionFunctions.getHoneypotNodes(GetHoneypotNodesArgs.builder()\n            .ids(defaultAlicloudThreatDetectionHoneypotNode.id())\n            .build());\n\n        ctx.export(\"alicloudThreatDetectionHoneypotNodeExampleId\", default_.nodes()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getHoneypotNodes\n      arguments:\n        ids:\n          - ${defaultAlicloudThreatDetectionHoneypotNode.id}\noutputs:\n  alicloudThreatDetectionHoneypotNodeExampleId: ${default.nodes[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHoneypotNodes.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Honeypot Node IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Honeypot Node name.\n"},"nodeId":{"type":"string","description":"Honeypot management node id.\n"},"nodeName":{"type":"string","description":"The name of the management node.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHoneypotNodes.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Honeypot Node IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Honeypot Node names.\n","items":{"type":"string"},"type":"array"},"nodeId":{"description":"Honeypot management node id.\n","type":"string"},"nodeName":{"description":"Management node name.\n","type":"string"},"nodes":{"description":"A list of Honeypot Node Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:threatdetection/getHoneypotNodesNode:getHoneypotNodesNode"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["ids","names","nodes","id"],"type":"object"}},"alicloud:threatdetection/getHoneypotPresets:getHoneypotPresets":{"description":"This data source provides Threat Detection Honeypot Preset available to the user.\n\n\u003e **NOTE:** Available in 1.195.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.threatdetection.getHoneypotPresets({\n    ids: [defaultAlicloudThreatDetectionHoneypotPreset.id],\n    honeypotImageName: \"shiro\",\n    nodeId: \"example_value\",\n    presetName: \"apiapec_test\",\n});\nexport const alicloudThreatDetectionHoneypotPresetExampleId = _default.then(_default =\u003e _default.presets?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.get_honeypot_presets(ids=[default_alicloud_threat_detection_honeypot_preset[\"id\"]],\n    honeypot_image_name=\"shiro\",\n    node_id=\"example_value\",\n    preset_name=\"apiapec_test\")\npulumi.export(\"alicloudThreatDetectionHoneypotPresetExampleId\", default.presets[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ThreatDetection.GetHoneypotPresets.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudThreatDetectionHoneypotPreset.Id,\n        },\n        HoneypotImageName = \"shiro\",\n        NodeId = \"example_value\",\n        PresetName = \"apiapec_test\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudThreatDetectionHoneypotPresetExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getHoneypotPresetsResult =\u003e getHoneypotPresetsResult.Presets[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := threatdetection.GetHoneypotPresets(ctx, \u0026threatdetection.GetHoneypotPresetsArgs{\nIds: interface{}{\ndefaultAlicloudThreatDetectionHoneypotPreset.Id,\n},\nHoneypotImageName: pulumi.StringRef(\"shiro\"),\nNodeId: pulumi.StringRef(\"example_value\"),\nPresetName: pulumi.StringRef(\"apiapec_test\"),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudThreatDetectionHoneypotPresetExampleId\", _default.Presets[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetHoneypotPresetsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ThreatdetectionFunctions.getHoneypotPresets(GetHoneypotPresetsArgs.builder()\n            .ids(defaultAlicloudThreatDetectionHoneypotPreset.id())\n            .honeypotImageName(\"shiro\")\n            .nodeId(\"example_value\")\n            .presetName(\"apiapec_test\")\n            .build());\n\n        ctx.export(\"alicloudThreatDetectionHoneypotPresetExampleId\", default_.presets()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getHoneypotPresets\n      arguments:\n        ids:\n          - ${defaultAlicloudThreatDetectionHoneypotPreset.id}\n        honeypotImageName: shiro\n        nodeId: example_value\n        presetName: apiapec_test\noutputs:\n  alicloudThreatDetectionHoneypotPresetExampleId: ${default.presets[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHoneypotPresets.\n","properties":{"currentPage":{"type":"integer"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"honeypotImageName":{"type":"string","description":"Honeypot mirror name\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Honeypot Preset IDs.\n"},"lang":{"type":"string"},"nodeId":{"type":"string","description":"Unique id of management node\n"},"nodeName":{"type":"string"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"presetName":{"type":"string","description":"Honeypot template custom name\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHoneypotPresets.\n","properties":{"currentPage":{"type":"integer"},"enableDetails":{"type":"boolean"},"honeypotImageName":{"description":"Honeypot mirror name.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Honeypot Preset IDs.\n","items":{"type":"string"},"type":"array"},"lang":{"type":"string"},"nodeId":{"description":"Unique id of management node.\n","type":"string"},"nodeName":{"type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"presetName":{"description":"Honeypot template custom name.\n","type":"string"},"presets":{"description":"A list of Honeypot Preset Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:threatdetection/getHoneypotPresetsPreset:getHoneypotPresetsPreset"},"type":"array"}},"required":["ids","presets","id"],"type":"object"}},"alicloud:threatdetection/getHoneypotProbes:getHoneypotProbes":{"description":"This data source provides Threat Detection Honeypot Probe available to the user.[What is Honeypot Probe](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-createhoneypotprobe)\n\n\u003e **NOTE:** Available in 1.195.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-testAccThreatDetectionHoneypotProbe\";\nconst defaultHoneypotProbe = new alicloud.threatdetection.HoneypotProbe(\"default\", {\n    uuid: \"e52c7872-29d1-4aa1-9908-0299abd53606\",\n    probeType: \"host_probe\",\n    controlNodeId: \"e1397077-4941-4b14-b533-ca2bdebd00a3\",\n    ping: true,\n    honeypotBindLists: [{\n        bindPortLists: [{\n            startPort: 80,\n            endPort: 80,\n        }],\n        honeypotId: \"4925bf9784de992ecd017ad051528a03b3927ef814eeff76c2ebb3ab9a84bf05\",\n    }],\n    displayName: name,\n    arp: true,\n});\nconst _default = alicloud.threatdetection.getHoneypotProbesOutput({\n    ids: [defaultHoneypotProbe.id],\n    displayName: name,\n    probeType: \"host_probe\",\n    enableDetails: true,\n});\nexport const alicloudThreatDetectionHoneypotProbeExampleId = _default.apply(_default =\u003e _default.probes?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-testAccThreatDetectionHoneypotProbe\"\ndefault_honeypot_probe = alicloud.threatdetection.HoneypotProbe(\"default\",\n    uuid=\"e52c7872-29d1-4aa1-9908-0299abd53606\",\n    probe_type=\"host_probe\",\n    control_node_id=\"e1397077-4941-4b14-b533-ca2bdebd00a3\",\n    ping=True,\n    honeypot_bind_lists=[{\n        \"bind_port_lists\": [{\n            \"start_port\": 80,\n            \"end_port\": 80,\n        }],\n        \"honeypot_id\": \"4925bf9784de992ecd017ad051528a03b3927ef814eeff76c2ebb3ab9a84bf05\",\n    }],\n    display_name=name,\n    arp=True)\ndefault = alicloud.threatdetection.get_honeypot_probes_output(ids=[default_honeypot_probe.id],\n    display_name=name,\n    probe_type=\"host_probe\",\n    enable_details=True)\npulumi.export(\"alicloudThreatDetectionHoneypotProbeExampleId\", default.probes[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-testAccThreatDetectionHoneypotProbe\";\n    var defaultHoneypotProbe = new AliCloud.ThreatDetection.HoneypotProbe(\"default\", new()\n    {\n        Uuid = \"e52c7872-29d1-4aa1-9908-0299abd53606\",\n        ProbeType = \"host_probe\",\n        ControlNodeId = \"e1397077-4941-4b14-b533-ca2bdebd00a3\",\n        Ping = true,\n        HoneypotBindLists = new[]\n        {\n            new AliCloud.ThreatDetection.Inputs.HoneypotProbeHoneypotBindListArgs\n            {\n                BindPortLists = new[]\n                {\n                    new AliCloud.ThreatDetection.Inputs.HoneypotProbeHoneypotBindListBindPortListArgs\n                    {\n                        StartPort = 80,\n                        EndPort = 80,\n                    },\n                },\n                HoneypotId = \"4925bf9784de992ecd017ad051528a03b3927ef814eeff76c2ebb3ab9a84bf05\",\n            },\n        },\n        DisplayName = name,\n        Arp = true,\n    });\n\n    var @default = AliCloud.ThreatDetection.GetHoneypotProbes.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultHoneypotProbe.Id,\n        },\n        DisplayName = name,\n        ProbeType = \"host_probe\",\n        EnableDetails = true,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudThreatDetectionHoneypotProbeExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getHoneypotProbesResult =\u003e getHoneypotProbesResult.Probes[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"tf-testAccThreatDetectionHoneypotProbe\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultHoneypotProbe, err := threatdetection.NewHoneypotProbe(ctx, \"default\", \u0026threatdetection.HoneypotProbeArgs{\nUuid: pulumi.String(\"e52c7872-29d1-4aa1-9908-0299abd53606\"),\nProbeType: pulumi.String(\"host_probe\"),\nControlNodeId: pulumi.String(\"e1397077-4941-4b14-b533-ca2bdebd00a3\"),\nPing: pulumi.Bool(true),\nHoneypotBindLists: threatdetection.HoneypotProbeHoneypotBindListArray{\n\u0026threatdetection.HoneypotProbeHoneypotBindListArgs{\nBindPortLists: threatdetection.HoneypotProbeHoneypotBindListBindPortListArray{\n\u0026threatdetection.HoneypotProbeHoneypotBindListBindPortListArgs{\nStartPort: pulumi.Int(80),\nEndPort: pulumi.Int(80),\n},\n},\nHoneypotId: pulumi.String(\"4925bf9784de992ecd017ad051528a03b3927ef814eeff76c2ebb3ab9a84bf05\"),\n},\n},\nDisplayName: pulumi.String(name),\nArp: pulumi.Bool(true),\n})\nif err != nil {\nreturn err\n}\n_default := threatdetection.GetHoneypotProbesOutput(ctx, threatdetection.GetHoneypotProbesOutputArgs{\nIds: pulumi.StringArray{\ndefaultHoneypotProbe.ID(),\n},\nDisplayName: pulumi.String(name),\nProbeType: pulumi.String(\"host_probe\"),\nEnableDetails: pulumi.Bool(true),\n}, nil);\nctx.Export(\"alicloudThreatDetectionHoneypotProbeExampleId\", _default.ApplyT(func(_default threatdetection.GetHoneypotProbesResult) (*string, error) {\nreturn \u0026default.Probes[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.HoneypotProbe;\nimport com.pulumi.alicloud.threatdetection.HoneypotProbeArgs;\nimport com.pulumi.alicloud.threatdetection.inputs.HoneypotProbeHoneypotBindListArgs;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetHoneypotProbesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"tf-testAccThreatDetectionHoneypotProbe\");\n        var defaultHoneypotProbe = new HoneypotProbe(\"defaultHoneypotProbe\", HoneypotProbeArgs.builder()\n            .uuid(\"e52c7872-29d1-4aa1-9908-0299abd53606\")\n            .probeType(\"host_probe\")\n            .controlNodeId(\"e1397077-4941-4b14-b533-ca2bdebd00a3\")\n            .ping(true)\n            .honeypotBindLists(HoneypotProbeHoneypotBindListArgs.builder()\n                .bindPortLists(HoneypotProbeHoneypotBindListBindPortListArgs.builder()\n                    .startPort(80)\n                    .endPort(80)\n                    .build())\n                .honeypotId(\"4925bf9784de992ecd017ad051528a03b3927ef814eeff76c2ebb3ab9a84bf05\")\n                .build())\n            .displayName(name)\n            .arp(true)\n            .build());\n\n        final var default = ThreatdetectionFunctions.getHoneypotProbes(GetHoneypotProbesArgs.builder()\n            .ids(defaultHoneypotProbe.id())\n            .displayName(name)\n            .probeType(\"host_probe\")\n            .enableDetails(true)\n            .build());\n\n        ctx.export(\"alicloudThreatDetectionHoneypotProbeExampleId\", default_.applyValue(_default_ -\u003e _default_.probes()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-testAccThreatDetectionHoneypotProbe\nresources:\n  defaultHoneypotProbe:\n    type: alicloud:threatdetection:HoneypotProbe\n    name: default\n    properties:\n      uuid: e52c7872-29d1-4aa1-9908-0299abd53606\n      probeType: host_probe\n      controlNodeId: e1397077-4941-4b14-b533-ca2bdebd00a3\n      ping: true\n      honeypotBindLists:\n        - bindPortLists:\n            - startPort: 80\n              endPort: 80\n          honeypotId: 4925bf9784de992ecd017ad051528a03b3927ef814eeff76c2ebb3ab9a84bf05\n      displayName: ${name}\n      arp: true\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getHoneypotProbes\n      arguments:\n        ids:\n          - ${defaultHoneypotProbe.id}\n        displayName: ${name}\n        probeType: host_probe\n        enableDetails: true\noutputs:\n  alicloudThreatDetectionHoneypotProbeExampleId: ${default.probes[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHoneypotProbes.\n","properties":{"displayName":{"type":"string","description":"Probe name\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Honeypot Probe IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by display name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"probeStatus":{"type":"string"},"probeType":{"type":"string","description":"Probe type\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHoneypotProbes.\n","properties":{"displayName":{"description":"Probe name.\n","type":"string"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Honeypot Probe IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"outputFile":{"type":"string"},"probeStatus":{"type":"string"},"probeType":{"description":"Probe type, support \u003cspan pulumi-lang-nodejs=\"`hostProbe`\" pulumi-lang-dotnet=\"`HostProbe`\" pulumi-lang-go=\"`hostProbe`\" pulumi-lang-python=\"`host_probe`\" pulumi-lang-yaml=\"`hostProbe`\" pulumi-lang-java=\"`hostProbe`\"\u003e`host_probe`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`vpcBlackHoleProbe`\" pulumi-lang-dotnet=\"`VpcBlackHoleProbe`\" pulumi-lang-go=\"`vpcBlackHoleProbe`\" pulumi-lang-python=\"`vpc_black_hole_probe`\" pulumi-lang-yaml=\"`vpcBlackHoleProbe`\" pulumi-lang-java=\"`vpcBlackHoleProbe`\"\u003e`vpc_black_hole_probe`\u003c/span\u003e.\n","type":"string"},"probes":{"description":"A list of Honeypot Probe Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:threatdetection/getHoneypotProbesProbe:getHoneypotProbesProbe"},"type":"array"}},"required":["ids","probes","id"],"type":"object"}},"alicloud:threatdetection/getInstances:getInstances":{"description":"This data source provides Threat Detection Instance available to the user.[What is Instance](https://www.alibabacloud.com/help/en/security-center/latest/what-is-security-center)\n\n\u003e **NOTE:** Available in 1.199.0+\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.threatdetection.getInstances({\n    ids: [defaultAlicloudThreatDetectionInstance.id],\n});\nexport const alicloudThreatDetectionInstanceExampleId = _default.then(_default =\u003e _default.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.get_instances(ids=[default_alicloud_threat_detection_instance[\"id\"]])\npulumi.export(\"alicloudThreatDetectionInstanceExampleId\", default.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ThreatDetection.GetInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudThreatDetectionInstance.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudThreatDetectionInstanceExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := threatdetection.GetInstances(ctx, \u0026threatdetection.GetInstancesArgs{\nIds: interface{}{\ndefaultAlicloudThreatDetectionInstance.Id,\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudThreatDetectionInstanceExampleId\", _default.Instances[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ThreatdetectionFunctions.getInstances(GetInstancesArgs.builder()\n            .ids(defaultAlicloudThreatDetectionInstance.id())\n            .build());\n\n        ctx.export(\"alicloudThreatDetectionInstanceExampleId\", default_.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getInstances\n      arguments:\n        ids:\n          - ${defaultAlicloudThreatDetectionInstance.id}\noutputs:\n  alicloudThreatDetectionInstanceExampleId: ${default.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Instance IDs.\n"},"instanceId":{"type":"string","description":"The first ID of the resource\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"renewStatus":{"type":"string","description":"The renewal status of the specified instance. Valid values: `AutoRenewal`, `ManualRenewal`, `NotRenewal`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Instance IDs.\n","items":{"type":"string"},"type":"array"},"instanceId":{"description":"The first ID of the resource\n","type":"string"},"instances":{"description":"A list of Instance Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:threatdetection/getInstancesInstance:getInstancesInstance"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"renewStatus":{"type":"string"}},"required":["ids","instances","id"],"type":"object"}},"alicloud:threatdetection/getLogShipper:getLogShipper":{"description":"Using this data source can open Threat Detection Log Shipper automatically. If the service has been enabled, it will return `Opened`.\n\nFor information about Threat Detection Log Shipper and how to use it, see [What is Log Shipper](https://www.alibabacloud.com/help/en/security-center/developer-reference/api-sas-2018-12-03-modifyopenlogshipper).\n\n\u003e **NOTE:** Available in v1.195.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.threatdetection.getLogShipper({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.threatdetection.get_log_shipper(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.ThreatDetection.GetLogShipper.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := threatdetection.GetLogShipper(ctx, \u0026threatdetection.GetLogShipperArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetLogShipperArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = ThreatdetectionFunctions.getLogShipper(GetLogShipperArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:threatdetection:getLogShipper\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLogShipper.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. Valid values: `On` or `Off`. Default to `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the Threat Detection Log Shipper that means you have read and agreed the [Threat Detection Log Shipper Terms of Service](https://help.aliyun.com/document_detail/170157.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLogShipper.\n","properties":{"authStatus":{"description":"Log Analysis Service authorization status.\n","type":"string"},"buyStatus":{"description":"Cloud Security Center purchase status.\n","type":"string"},"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"openStatus":{"description":"Log analysis shipping activation status.\n","type":"string"},"slsProjectStatus":{"description":"Log analysis project status.\n","type":"string"},"slsServiceStatus":{"description":"Log Analysis Service is activated.\n","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["authStatus","buyStatus","openStatus","slsProjectStatus","slsServiceStatus","status","id"],"type":"object"}},"alicloud:threatdetection/getVulWhitelists:getVulWhitelists":{"description":"This data source provides Threat Detection Vul Whitelists of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.195.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.threatdetection.getVulWhitelists({\n    ids: [\"example_id\"],\n});\nexport const alicloudThreatDetectionVulWhitelistExampleId = _default.then(_default =\u003e _default.whitelists?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.get_vul_whitelists(ids=[\"example_id\"])\npulumi.export(\"alicloudThreatDetectionVulWhitelistExampleId\", default.whitelists[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ThreatDetection.GetVulWhitelists.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudThreatDetectionVulWhitelistExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getVulWhitelistsResult =\u003e getVulWhitelistsResult.Whitelists[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := threatdetection.GetVulWhitelists(ctx, \u0026threatdetection.GetVulWhitelistsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudThreatDetectionVulWhitelistExampleId\", _default.Whitelists[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetVulWhitelistsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ThreatdetectionFunctions.getVulWhitelists(GetVulWhitelistsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"alicloudThreatDetectionVulWhitelistExampleId\", default_.whitelists()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getVulWhitelists\n      arguments:\n        ids:\n          - example_id\noutputs:\n  alicloudThreatDetectionVulWhitelistExampleId: ${default.whitelists[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVulWhitelists.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Threat Detection Vul Whitelist IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVulWhitelists.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"whitelists":{"description":"A list of Vul Whitelist Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:threatdetection/getVulWhitelistsWhitelist:getVulWhitelistsWhitelist"},"type":"array"}},"required":["ids","whitelists","id"],"type":"object"}},"alicloud:threatdetection/getWebLockConfigs:getWebLockConfigs":{"description":"This data source provides Threat Detection Web Lock Config available to the user.[What is Web Lock Config](https://www.alibabacloud.com/help/en/security-center/latest/api-sas-2018-12-03-describeweblockconfiglist)\n\n\u003e **NOTE:** Available since v1.195.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.threatdetection.getWebLockConfigs({\n    ids: [defaultAlicloudThreatDetectionWebLockConfig.id],\n});\nexport const alicloudThreatDetectionWebLockConfigExampleId = _default.then(_default =\u003e _default.configs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.threatdetection.get_web_lock_configs(ids=[default_alicloud_threat_detection_web_lock_config[\"id\"]])\npulumi.export(\"alicloudThreatDetectionWebLockConfigExampleId\", default.configs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.ThreatDetection.GetWebLockConfigs.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultAlicloudThreatDetectionWebLockConfig.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudThreatDetectionWebLockConfigExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getWebLockConfigsResult =\u003e getWebLockConfigsResult.Configs[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/threatdetection\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_default, err := threatdetection.GetWebLockConfigs(ctx, \u0026threatdetection.GetWebLockConfigsArgs{\nIds: interface{}{\ndefaultAlicloudThreatDetectionWebLockConfig.Id,\n},\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"alicloudThreatDetectionWebLockConfigExampleId\", _default.Configs[0].Id)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.threatdetection.ThreatdetectionFunctions;\nimport com.pulumi.alicloud.threatdetection.inputs.GetWebLockConfigsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = ThreatdetectionFunctions.getWebLockConfigs(GetWebLockConfigsArgs.builder()\n            .ids(defaultAlicloudThreatDetectionWebLockConfig.id())\n            .build());\n\n        ctx.export(\"alicloudThreatDetectionWebLockConfigExampleId\", default_.configs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:threatdetection:getWebLockConfigs\n      arguments:\n        ids:\n          - ${defaultAlicloudThreatDetectionWebLockConfig.id}\noutputs:\n  alicloudThreatDetectionWebLockConfigExampleId: ${default.configs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getWebLockConfigs.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Web Lock Config IDs.\n"},"lang":{"type":"string","description":"The language of the content within the request and the response. Valid values: \u003cspan pulumi-lang-nodejs=\"`zh`\" pulumi-lang-dotnet=\"`Zh`\" pulumi-lang-go=\"`zh`\" pulumi-lang-python=\"`zh`\" pulumi-lang-yaml=\"`zh`\" pulumi-lang-java=\"`zh`\"\u003e`zh`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"remark":{"type":"string","description":"The string that allows you to search for servers in fuzzy match mode. You can enter a server name or IP address.\n"},"sourceIp":{"type":"string","description":"The source IP address of the request.\n"},"status":{"type":"string","description":"The protection status of the server that you want to query. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getWebLockConfigs.\n","properties":{"configs":{"description":"A list of Web Lock Config Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:threatdetection/getWebLockConfigsConfig:getWebLockConfigsConfig"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Web Lock Config IDs.\n","items":{"type":"string"},"type":"array"},"lang":{"type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"remark":{"type":"string"},"sourceIp":{"type":"string"},"status":{"type":"string"}},"required":["configs","ids","id"],"type":"object"}},"alicloud:tsdb/getInstances:getInstances":{"description":"This data source provides the Time Series Database (TSDB) Instances of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.112.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.tsdb.getInstances({\n    ids: [\"example_value\"],\n});\nexport const firstTsdbInstanceId = example.then(example =\u003e example.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.tsdb.get_instances(ids=[\"example_value\"])\npulumi.export(\"firstTsdbInstanceId\", example.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Tsdb.GetInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstTsdbInstanceId\"] = example.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/tsdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := tsdb.GetInstances(ctx, \u0026tsdb.GetInstancesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstTsdbInstanceId\", example.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.tsdb.TsdbFunctions;\nimport com.pulumi.alicloud.tsdb.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = TsdbFunctions.getInstances(GetInstancesArgs.builder()\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"firstTsdbInstanceId\", example.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:tsdb:getInstances\n      arguments:\n        ids:\n          - example_value\noutputs:\n  firstTsdbInstanceId: ${example.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"appKey":{"type":"string","description":"The app key.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"engineType":{"type":"string","description":"The engine type of instance. Enumerative: \u003cspan pulumi-lang-nodejs=\"`tsdbTsdb`\" pulumi-lang-dotnet=\"`TsdbTsdb`\" pulumi-lang-go=\"`tsdbTsdb`\" pulumi-lang-python=\"`tsdb_tsdb`\" pulumi-lang-yaml=\"`tsdbTsdb`\" pulumi-lang-java=\"`tsdbTsdb`\"\u003e`tsdb_tsdb`\u003c/span\u003e refers to TSDB, \u003cspan pulumi-lang-nodejs=\"`tsdbInfluxdb`\" pulumi-lang-dotnet=\"`TsdbInfluxdb`\" pulumi-lang-go=\"`tsdbInfluxdb`\" pulumi-lang-python=\"`tsdb_influxdb`\" pulumi-lang-yaml=\"`tsdbInfluxdb`\" pulumi-lang-java=\"`tsdbInfluxdb`\"\u003e`tsdb_influxdb`\u003c/span\u003e refers to TSDB for InfluxDB️.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Instance IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"queryStr":{"type":"string","description":"The query str.\n"},"status":{"type":"string","description":"Instance status, enumerative: `ACTIVATION`, `DELETED`, `CREATING`, `CLASS_CHANGING`, `LOCKED`.\n"},"statusList":{"type":"string","description":"The status list.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"appKey":{"type":"string"},"enableDetails":{"type":"boolean"},"engineType":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instances":{"items":{"$ref":"#/types/alicloud:tsdb/getInstancesInstance:getInstancesInstance"},"type":"array"},"outputFile":{"type":"string"},"queryStr":{"type":"string"},"status":{"type":"string"},"statusList":{"type":"string"}},"required":["ids","instances","id"],"type":"object"}},"alicloud:tsdb/getZones:getZones":{"description":"This data source provides the available zones with the Time Series Database (TSDB) Instance of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.112.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.tsdb.getZones({});\nexport const firstTsdbZonesId = example.then(example =\u003e example.zones?.[0]?.zoneId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.tsdb.get_zones()\npulumi.export(\"firstTsdbZonesId\", example.zones[0].zone_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Tsdb.GetZones.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstTsdbZonesId\"] = example.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.ZoneId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/tsdb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := tsdb.GetZones(ctx, \u0026tsdb.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstTsdbZonesId\", example.Zones[0].ZoneId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.tsdb.TsdbFunctions;\nimport com.pulumi.alicloud.tsdb.inputs.GetZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = TsdbFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        ctx.export(\"firstTsdbZonesId\", example.zones()[0].zoneId());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:tsdb:getZones\n      arguments: {}\noutputs:\n  firstTsdbZonesId: ${example.zones[0].zoneId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZones.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"zones":{"items":{"$ref":"#/types/alicloud:tsdb/getZonesZone:getZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:videosurveillance/getService:getService":{"description":"Using this data source can open Video Surveillance System service automatically. If the service has been opened, it will return opened.\n\nFor information about Video Surveillance System and how to use it, see [What is VS](https://help.aliyun.com/product/108765.html).\n\n\u003e **NOTE:** Available in v1.116.0+\n\n\u003e **NOTE:** The Video Surveillance System service is not support in the international site.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.videosurveillance.getService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.videosurveillance.get_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.VideoSurveillance.GetService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/videosurveillance\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := videosurveillance.GetService(ctx, \u0026videosurveillance.GetServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.videosurveillance.VideosurveillanceFunctions;\nimport com.pulumi.alicloud.videosurveillance.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = VideosurveillanceFunctions.getService(GetServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:videosurveillance:getService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Valid values: `On` or `Off`. Default to `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the Video Surveillance (VS) service that means you have read and agreed the [VS Terms of Service](https://help.aliyun.com/document_detail/109213.html). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:videosurveillance/getSystemGroups:getSystemGroups":{"description":"This data source provides the Video Surveillance System Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.135.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst defaultSystemGroup = new alicloud.videosurveillance.SystemGroup(\"default\", {\n    groupName: \"groupname\",\n    inProtocol: \"rtmp\",\n    outProtocol: \"flv\",\n    playDomain: \"your_plan_domain\",\n    pushDomain: \"your_push_domain\",\n});\nconst _default = alicloud.videosurveillance.getSystemGroupsOutput({\n    ids: [defaultSystemGroup.id],\n});\nexport const vsGroup = _default.apply(_default =\u003e _default.ids?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault_system_group = alicloud.videosurveillance.SystemGroup(\"default\",\n    group_name=\"groupname\",\n    in_protocol=\"rtmp\",\n    out_protocol=\"flv\",\n    play_domain=\"your_plan_domain\",\n    push_domain=\"your_push_domain\")\ndefault = alicloud.videosurveillance.get_system_groups_output(ids=[default_system_group.id])\npulumi.export(\"vsGroup\", default.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultSystemGroup = new AliCloud.VideoSurveillance.SystemGroup(\"default\", new()\n    {\n        GroupName = \"groupname\",\n        InProtocol = \"rtmp\",\n        OutProtocol = \"flv\",\n        PlayDomain = \"your_plan_domain\",\n        PushDomain = \"your_push_domain\",\n    });\n\n    var @default = AliCloud.VideoSurveillance.GetSystemGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultSystemGroup.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vsGroup\"] = @default.Apply(@default =\u003e @default.Apply(getSystemGroupsResult =\u003e getSystemGroupsResult.Ids[0])),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/videosurveillance\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ndefaultSystemGroup, err := videosurveillance.NewSystemGroup(ctx, \"default\", \u0026videosurveillance.SystemGroupArgs{\nGroupName: pulumi.String(\"groupname\"),\nInProtocol: pulumi.String(\"rtmp\"),\nOutProtocol: pulumi.String(\"flv\"),\nPlayDomain: pulumi.String(\"your_plan_domain\"),\nPushDomain: pulumi.String(\"your_push_domain\"),\n})\nif err != nil {\nreturn err\n}\n_default := videosurveillance.GetSystemGroupsOutput(ctx, videosurveillance.GetSystemGroupsOutputArgs{\nIds: pulumi.StringArray{\ndefaultSystemGroup.ID(),\n},\n}, nil);\nctx.Export(\"vsGroup\", _default.ApplyT(func(_default videosurveillance.GetSystemGroupsResult) (*string, error) {\nreturn \u0026default.Ids[0], nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.videosurveillance.SystemGroup;\nimport com.pulumi.alicloud.videosurveillance.SystemGroupArgs;\nimport com.pulumi.alicloud.videosurveillance.VideosurveillanceFunctions;\nimport com.pulumi.alicloud.videosurveillance.inputs.GetSystemGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultSystemGroup = new SystemGroup(\"defaultSystemGroup\", SystemGroupArgs.builder()\n            .groupName(\"groupname\")\n            .inProtocol(\"rtmp\")\n            .outProtocol(\"flv\")\n            .playDomain(\"your_plan_domain\")\n            .pushDomain(\"your_push_domain\")\n            .build());\n\n        final var default = VideosurveillanceFunctions.getSystemGroups(GetSystemGroupsArgs.builder()\n            .ids(defaultSystemGroup.id())\n            .build());\n\n        ctx.export(\"vsGroup\", default_.applyValue(_default_ -\u003e _default_.ids()[0]));\n    }\n}\n```\n```yaml\nresources:\n  defaultSystemGroup:\n    type: alicloud:videosurveillance:SystemGroup\n    name: default\n    properties:\n      groupName: groupname\n      inProtocol: rtmp\n      outProtocol: flv\n      playDomain: your_plan_domain\n      pushDomain: your_push_domain\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:videosurveillance:getSystemGroups\n      arguments:\n        ids:\n          - ${defaultSystemGroup.id}\noutputs:\n  vsGroup: ${default.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSystemGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Group IDs.\n"},"inProtocol":{"type":"string","description":"The use of the access protocol support gb28181, Real Time Messaging Protocol (rtmp). Valid values: \u003cspan pulumi-lang-nodejs=\"`gb28181`\" pulumi-lang-dotnet=\"`Gb28181`\" pulumi-lang-go=\"`gb28181`\" pulumi-lang-python=\"`gb28181`\" pulumi-lang-yaml=\"`gb28181`\" pulumi-lang-java=\"`gb28181`\"\u003e`gb28181`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rtmp`\" pulumi-lang-dotnet=\"`Rtmp`\" pulumi-lang-go=\"`rtmp`\" pulumi-lang-python=\"`rtmp`\" pulumi-lang-yaml=\"`rtmp`\" pulumi-lang-java=\"`rtmp`\"\u003e`rtmp`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status. Valid values: \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSystemGroups.\n","properties":{"groups":{"items":{"$ref":"#/types/alicloud:videosurveillance/getSystemGroupsGroup:getSystemGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"inProtocol":{"type":"string"},"name":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:vod/getDomains:getDomains":{"description":"This data source provides the Vod Domains of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.136.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst defaultDomain = new alicloud.vod.Domain(\"default\", {\n    domainName: \"your_domain_name\",\n    scope: \"domestic\",\n    sources: [{\n        sourceType: \"domain\",\n        sourceContent: \"your_source_content\",\n        sourcePort: \"80\",\n    }],\n    tags: {\n        key1: \"value1\",\n        key2: \"value2\",\n    },\n});\nconst _default = alicloud.vod.getDomainsOutput({\n    ids: [defaultDomain.id],\n    tags: {\n        key1: \"value1\",\n        key2: \"value2\",\n    },\n});\nexport const vodDomain = _default.apply(_default =\u003e _default.domains?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault_domain = alicloud.vod.Domain(\"default\",\n    domain_name=\"your_domain_name\",\n    scope=\"domestic\",\n    sources=[{\n        \"source_type\": \"domain\",\n        \"source_content\": \"your_source_content\",\n        \"source_port\": \"80\",\n    }],\n    tags={\n        \"key1\": \"value1\",\n        \"key2\": \"value2\",\n    })\ndefault = alicloud.vod.get_domains_output(ids=[default_domain.id],\n    tags={\n        \"key1\": \"value1\",\n        \"key2\": \"value2\",\n    })\npulumi.export(\"vodDomain\", default.domains[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultDomain = new AliCloud.Vod.Domain(\"default\", new()\n    {\n        DomainName = \"your_domain_name\",\n        Scope = \"domestic\",\n        Sources = new[]\n        {\n            new AliCloud.Vod.Inputs.DomainSourceArgs\n            {\n                SourceType = \"domain\",\n                SourceContent = \"your_source_content\",\n                SourcePort = \"80\",\n            },\n        },\n        Tags = \n        {\n            { \"key1\", \"value1\" },\n            { \"key2\", \"value2\" },\n        },\n    });\n\n    var @default = AliCloud.Vod.GetDomains.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultDomain.Id,\n        },\n        Tags = \n        {\n            { \"key1\", \"value1\" },\n            { \"key2\", \"value2\" },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vodDomain\"] = @default.Apply(@default =\u003e @default.Apply(getDomainsResult =\u003e getDomainsResult.Domains[0])),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vod\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultDomain, err := vod.NewDomain(ctx, \"default\", \u0026vod.DomainArgs{\n\t\t\tDomainName: pulumi.String(\"your_domain_name\"),\n\t\t\tScope:      pulumi.String(\"domestic\"),\n\t\t\tSources: vod.DomainSourceArray{\n\t\t\t\t\u0026vod.DomainSourceArgs{\n\t\t\t\t\tSourceType:    pulumi.String(\"domain\"),\n\t\t\t\t\tSourceContent: pulumi.String(\"your_source_content\"),\n\t\t\t\t\tSourcePort:    pulumi.String(\"80\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\"key2\": pulumi.String(\"value2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default := vod.GetDomainsOutput(ctx, vod.GetDomainsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultDomain.ID(),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\"key2\": pulumi.String(\"value2\"),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"vodDomain\", _default.ApplyT(func(_default vod.GetDomainsResult) (vod.GetDomainsDomain, error) {\n\t\t\treturn _default.Domains[0], nil\n\t\t}).(vod.GetDomainsDomainOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vod.Domain;\nimport com.pulumi.alicloud.vod.DomainArgs;\nimport com.pulumi.alicloud.vod.inputs.DomainSourceArgs;\nimport com.pulumi.alicloud.vod.VodFunctions;\nimport com.pulumi.alicloud.vod.inputs.GetDomainsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultDomain = new Domain(\"defaultDomain\", DomainArgs.builder()\n            .domainName(\"your_domain_name\")\n            .scope(\"domestic\")\n            .sources(DomainSourceArgs.builder()\n                .sourceType(\"domain\")\n                .sourceContent(\"your_source_content\")\n                .sourcePort(\"80\")\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"key1\", \"value1\"),\n                Map.entry(\"key2\", \"value2\")\n            ))\n            .build());\n\n        final var default = VodFunctions.getDomains(GetDomainsArgs.builder()\n            .ids(defaultDomain.id())\n            .tags(Map.ofEntries(\n                Map.entry(\"key1\", \"value1\"),\n                Map.entry(\"key2\", \"value2\")\n            ))\n            .build());\n\n        ctx.export(\"vodDomain\", default_.applyValue(_default_ -\u003e _default_.domains()[0]));\n    }\n}\n```\n```yaml\nresources:\n  defaultDomain:\n    type: alicloud:vod:Domain\n    name: default\n    properties:\n      domainName: your_domain_name\n      scope: domestic\n      sources:\n        - sourceType: domain\n          sourceContent: your_source_content\n          sourcePort: '80'\n      tags:\n        key1: value1\n        key2: value2\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vod:getDomains\n      arguments:\n        ids:\n          - ${defaultDomain.id}\n        tags:\n          key1: value1\n          key2: value2\noutputs:\n  vodDomain: ${default.domains[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDomains.\n","properties":{"domainSearchType":{"type":"string","description":"The search method. Valid values:\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Domain IDs. Its element value is same as Domain Name.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Domain name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the domain name. The value of this parameter is used as a condition to filter domain names.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n* `Key`: It can be up to 64 characters in length. It cannot be a null string.\n* `Value`: It can be up to 128 characters in length. It can be a null string.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDomains.\n","properties":{"domainSearchType":{"type":"string"},"domains":{"items":{"$ref":"#/types/alicloud:vod/getDomainsDomain:getDomainsDomain"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["domains","ids","names","id"],"type":"object"}},"alicloud:vpc/getBgpGroups:getBgpGroups":{"description":"This data source provides the Vpc Bgp Groups of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.152.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getBgpGroups({\n    ids: [\"example_value\"],\n});\nexport const vpcBgpGroupId1 = ids.then(ids =\u003e ids.groups?.[0]?.id);\nconst nameRegex = alicloud.vpc.getBgpGroups({\n    nameRegex: \"^my-BgpGroup\",\n});\nexport const vpcBgpGroupId2 = nameRegex.then(nameRegex =\u003e nameRegex.groups?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_bgp_groups(ids=[\"example_value\"])\npulumi.export(\"vpcBgpGroupId1\", ids.groups[0].id)\nname_regex = alicloud.vpc.get_bgp_groups(name_regex=\"^my-BgpGroup\")\npulumi.export(\"vpcBgpGroupId2\", name_regex.groups[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetBgpGroups.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    var nameRegex = AliCloud.Vpc.GetBgpGroups.Invoke(new()\n    {\n        NameRegex = \"^my-BgpGroup\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcBgpGroupId1\"] = ids.Apply(getBgpGroupsResult =\u003e getBgpGroupsResult.Groups[0]?.Id),\n        [\"vpcBgpGroupId2\"] = nameRegex.Apply(getBgpGroupsResult =\u003e getBgpGroupsResult.Groups[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetBgpGroups(ctx, \u0026vpc.GetBgpGroupsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcBgpGroupId1\", ids.Groups[0].Id)\n\t\tnameRegex, err := vpc.GetBgpGroups(ctx, \u0026vpc.GetBgpGroupsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-BgpGroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcBgpGroupId2\", nameRegex.Groups[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetBgpGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getBgpGroups(GetBgpGroupsArgs.builder()\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcBgpGroupId1\", ids.groups()[0].id());\n        final var nameRegex = VpcFunctions.getBgpGroups(GetBgpGroupsArgs.builder()\n            .nameRegex(\"^my-BgpGroup\")\n            .build());\n\n        ctx.export(\"vpcBgpGroupId2\", nameRegex.groups()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getBgpGroups\n      arguments:\n        ids:\n          - example_value\n  nameRegex:\n    fn::invoke:\n      function: alicloud:vpc:getBgpGroups\n      arguments:\n        nameRegex: ^my-BgpGroup\noutputs:\n  vpcBgpGroupId1: ${ids.groups[0].id}\n  vpcBgpGroupId2: ${nameRegex.groups[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBgpGroups.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Bgp Group IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Bgp Group name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"routerId":{"type":"string","description":"The ID of the virtual border router (VBR) that is associated with the BGP group.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Available`, `Deleting` and `Pending`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBgpGroups.\n","properties":{"groups":{"items":{"$ref":"#/types/alicloud:vpc/getBgpGroupsGroup:getBgpGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"routerId":{"type":"string"},"status":{"type":"string"}},"required":["groups","ids","names","id"],"type":"object"}},"alicloud:vpc/getBgpNetworks:getBgpNetworks":{"description":"This data source provides the Vpc Bgp Networks of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.153.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getBgpNetworks({\n    ids: [\"example_value\"],\n});\nexport const vpcBgpNetworkId1 = ids.then(ids =\u003e ids.networks?.[0]?.id);\nconst routerId = alicloud.vpc.getBgpNetworks({\n    routerId: \"example_value\",\n});\nexport const vpcBgpNetworkId2 = routerId.then(routerId =\u003e routerId.networks?.[0]?.id);\nconst status = alicloud.vpc.getBgpNetworks({\n    status: \"Available\",\n});\nexport const vpcBgpNetworkId3 = status.then(status =\u003e status.networks?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_bgp_networks(ids=[\"example_value\"])\npulumi.export(\"vpcBgpNetworkId1\", ids.networks[0].id)\nrouter_id = alicloud.vpc.get_bgp_networks(router_id=\"example_value\")\npulumi.export(\"vpcBgpNetworkId2\", router_id.networks[0].id)\nstatus = alicloud.vpc.get_bgp_networks(status=\"Available\")\npulumi.export(\"vpcBgpNetworkId3\", status.networks[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetBgpNetworks.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    var routerId = AliCloud.Vpc.GetBgpNetworks.Invoke(new()\n    {\n        RouterId = \"example_value\",\n    });\n\n    var status = AliCloud.Vpc.GetBgpNetworks.Invoke(new()\n    {\n        Status = \"Available\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcBgpNetworkId1\"] = ids.Apply(getBgpNetworksResult =\u003e getBgpNetworksResult.Networks[0]?.Id),\n        [\"vpcBgpNetworkId2\"] = routerId.Apply(getBgpNetworksResult =\u003e getBgpNetworksResult.Networks[0]?.Id),\n        [\"vpcBgpNetworkId3\"] = status.Apply(getBgpNetworksResult =\u003e getBgpNetworksResult.Networks[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetBgpNetworks(ctx, \u0026vpc.GetBgpNetworksArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcBgpNetworkId1\", ids.Networks[0].Id)\n\t\trouterId, err := vpc.GetBgpNetworks(ctx, \u0026vpc.GetBgpNetworksArgs{\n\t\t\tRouterId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcBgpNetworkId2\", routerId.Networks[0].Id)\n\t\tstatus, err := vpc.GetBgpNetworks(ctx, \u0026vpc.GetBgpNetworksArgs{\n\t\t\tStatus: pulumi.StringRef(\"Available\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcBgpNetworkId3\", status.Networks[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetBgpNetworksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getBgpNetworks(GetBgpNetworksArgs.builder()\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcBgpNetworkId1\", ids.networks()[0].id());\n        final var routerId = VpcFunctions.getBgpNetworks(GetBgpNetworksArgs.builder()\n            .routerId(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcBgpNetworkId2\", routerId.networks()[0].id());\n        final var status = VpcFunctions.getBgpNetworks(GetBgpNetworksArgs.builder()\n            .status(\"Available\")\n            .build());\n\n        ctx.export(\"vpcBgpNetworkId3\", status.networks()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getBgpNetworks\n      arguments:\n        ids:\n          - example_value\n  routerId:\n    fn::invoke:\n      function: alicloud:vpc:getBgpNetworks\n      arguments:\n        routerId: example_value\n  status:\n    fn::invoke:\n      function: alicloud:vpc:getBgpNetworks\n      arguments:\n        status: Available\noutputs:\n  vpcBgpNetworkId1: ${ids.networks[0].id}\n  vpcBgpNetworkId2: ${routerId.networks[0].id}\n  vpcBgpNetworkId3: ${status.networks[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBgpNetworks.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Bgp Network IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"routerId":{"type":"string","description":"The ID of the router to which the route table belongs.\n"},"status":{"type":"string","description":"The state of the advertised BGP network. Valid values: `Available`, `Pending`, `Deleting`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBgpNetworks.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"networks":{"items":{"$ref":"#/types/alicloud:vpc/getBgpNetworksNetwork:getBgpNetworksNetwork"},"type":"array"},"outputFile":{"type":"string"},"routerId":{"type":"string"},"status":{"type":"string"}},"required":["ids","networks","id"],"type":"object"}},"alicloud:vpc/getBgpPeers:getBgpPeers":{"description":"This data source provides the Vpc Bgp Peers of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.153.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getBgpPeers({\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const vpcBgpPeerId1 = ids.then(ids =\u003e ids.peers?.[0]?.id);\nconst bgpGroupId = alicloud.vpc.getBgpPeers({\n    bgpGroupId: \"example_value\",\n});\nexport const vpcBgpPeerId2 = bgpGroupId.then(bgpGroupId =\u003e bgpGroupId.peers?.[0]?.id);\nconst routerId = alicloud.vpc.getBgpPeers({\n    routerId: \"example_value\",\n});\nexport const vpcBgpPeerId3 = routerId.then(routerId =\u003e routerId.peers?.[0]?.id);\nconst status = alicloud.vpc.getBgpPeers({\n    status: \"Available\",\n});\nexport const vpcBgpPeerId4 = status.then(status =\u003e status.peers?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_bgp_peers(ids=[\n    \"example_value-1\",\n    \"example_value-2\",\n])\npulumi.export(\"vpcBgpPeerId1\", ids.peers[0].id)\nbgp_group_id = alicloud.vpc.get_bgp_peers(bgp_group_id=\"example_value\")\npulumi.export(\"vpcBgpPeerId2\", bgp_group_id.peers[0].id)\nrouter_id = alicloud.vpc.get_bgp_peers(router_id=\"example_value\")\npulumi.export(\"vpcBgpPeerId3\", router_id.peers[0].id)\nstatus = alicloud.vpc.get_bgp_peers(status=\"Available\")\npulumi.export(\"vpcBgpPeerId4\", status.peers[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetBgpPeers.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var bgpGroupId = AliCloud.Vpc.GetBgpPeers.Invoke(new()\n    {\n        BgpGroupId = \"example_value\",\n    });\n\n    var routerId = AliCloud.Vpc.GetBgpPeers.Invoke(new()\n    {\n        RouterId = \"example_value\",\n    });\n\n    var status = AliCloud.Vpc.GetBgpPeers.Invoke(new()\n    {\n        Status = \"Available\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcBgpPeerId1\"] = ids.Apply(getBgpPeersResult =\u003e getBgpPeersResult.Peers[0]?.Id),\n        [\"vpcBgpPeerId2\"] = bgpGroupId.Apply(getBgpPeersResult =\u003e getBgpPeersResult.Peers[0]?.Id),\n        [\"vpcBgpPeerId3\"] = routerId.Apply(getBgpPeersResult =\u003e getBgpPeersResult.Peers[0]?.Id),\n        [\"vpcBgpPeerId4\"] = status.Apply(getBgpPeersResult =\u003e getBgpPeersResult.Peers[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetBgpPeers(ctx, \u0026vpc.GetBgpPeersArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcBgpPeerId1\", ids.Peers[0].Id)\n\t\tbgpGroupId, err := vpc.GetBgpPeers(ctx, \u0026vpc.GetBgpPeersArgs{\n\t\t\tBgpGroupId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcBgpPeerId2\", bgpGroupId.Peers[0].Id)\n\t\trouterId, err := vpc.GetBgpPeers(ctx, \u0026vpc.GetBgpPeersArgs{\n\t\t\tRouterId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcBgpPeerId3\", routerId.Peers[0].Id)\n\t\tstatus, err := vpc.GetBgpPeers(ctx, \u0026vpc.GetBgpPeersArgs{\n\t\t\tStatus: pulumi.StringRef(\"Available\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcBgpPeerId4\", status.Peers[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetBgpPeersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getBgpPeers(GetBgpPeersArgs.builder()\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"vpcBgpPeerId1\", ids.peers()[0].id());\n        final var bgpGroupId = VpcFunctions.getBgpPeers(GetBgpPeersArgs.builder()\n            .bgpGroupId(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcBgpPeerId2\", bgpGroupId.peers()[0].id());\n        final var routerId = VpcFunctions.getBgpPeers(GetBgpPeersArgs.builder()\n            .routerId(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcBgpPeerId3\", routerId.peers()[0].id());\n        final var status = VpcFunctions.getBgpPeers(GetBgpPeersArgs.builder()\n            .status(\"Available\")\n            .build());\n\n        ctx.export(\"vpcBgpPeerId4\", status.peers()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getBgpPeers\n      arguments:\n        ids:\n          - example_value-1\n          - example_value-2\n  bgpGroupId:\n    fn::invoke:\n      function: alicloud:vpc:getBgpPeers\n      arguments:\n        bgpGroupId: example_value\n  routerId:\n    fn::invoke:\n      function: alicloud:vpc:getBgpPeers\n      arguments:\n        routerId: example_value\n  status:\n    fn::invoke:\n      function: alicloud:vpc:getBgpPeers\n      arguments:\n        status: Available\noutputs:\n  vpcBgpPeerId1: ${ids.peers[0].id}\n  vpcBgpPeerId2: ${bgpGroupId.peers[0].id}\n  vpcBgpPeerId3: ${routerId.peers[0].id}\n  vpcBgpPeerId4: ${status.peers[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBgpPeers.\n","properties":{"bgpGroupId":{"type":"string","description":"The ID of the BGP group to which the BGP peer that you want to query belongs.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Bgp Peer IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"routerId":{"type":"string","description":"The ID of the virtual border router (VBR) that is associated with the BGP peer that you want to query.\n"},"status":{"type":"string","description":"The status of the BGP peer. Valid values: `Available`, `Deleted`, `Deleting`, `Modifying`, `Pending`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBgpPeers.\n","properties":{"bgpGroupId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"peers":{"items":{"$ref":"#/types/alicloud:vpc/getBgpPeersPeer:getBgpPeersPeer"},"type":"array"},"routerId":{"type":"string"},"status":{"type":"string"}},"required":["ids","peers","id"],"type":"object"}},"alicloud:vpc/getCommonBandwidthPackages:getCommonBandwidthPackages":{"description":"This data source provides a list of Common Bandwidth Packages owned by an Alibaba Cloud account.\n\n\u003e **NOTE:** Available in 1.36.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst fooCommonBandwithPackage = new alicloud.vpc.CommonBandwithPackage(\"foo\", {\n    bandwidth: \"2\",\n    name: \"tf-testAccCommonBandwidthPackage\",\n    description: \"tf-testAcc-CommonBandwidthPackage\",\n});\nconst foo = alicloud.vpc.getCommonBandwidthPackagesOutput({\n    nameRegex: \"^tf-testAcc.*\",\n    ids: [fooCommonBandwithPackage.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfoo_common_bandwith_package = alicloud.vpc.CommonBandwithPackage(\"foo\",\n    bandwidth=\"2\",\n    name=\"tf-testAccCommonBandwidthPackage\",\n    description=\"tf-testAcc-CommonBandwidthPackage\")\nfoo = alicloud.vpc.get_common_bandwidth_packages_output(name_regex=\"^tf-testAcc.*\",\n    ids=[foo_common_bandwith_package.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var fooCommonBandwithPackage = new AliCloud.Vpc.CommonBandwithPackage(\"foo\", new()\n    {\n        Bandwidth = \"2\",\n        Name = \"tf-testAccCommonBandwidthPackage\",\n        Description = \"tf-testAcc-CommonBandwidthPackage\",\n    });\n\n    var foo = AliCloud.Vpc.GetCommonBandwidthPackages.Invoke(new()\n    {\n        NameRegex = \"^tf-testAcc.*\",\n        Ids = new[]\n        {\n            fooCommonBandwithPackage.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooCommonBandwithPackage, err := vpc.NewCommonBandwithPackage(ctx, \"foo\", \u0026vpc.CommonBandwithPackageArgs{\n\t\t\tBandwidth:   pulumi.String(\"2\"),\n\t\t\tName:        pulumi.String(\"tf-testAccCommonBandwidthPackage\"),\n\t\t\tDescription: pulumi.String(\"tf-testAcc-CommonBandwidthPackage\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = vpc.GetCommonBandwidthPackagesOutput(ctx, vpc.GetCommonBandwidthPackagesOutputArgs{\n\t\t\tNameRegex: pulumi.String(\"^tf-testAcc.*\"),\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tfooCommonBandwithPackage.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.CommonBandwithPackage;\nimport com.pulumi.alicloud.vpc.CommonBandwithPackageArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetCommonBandwidthPackagesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var fooCommonBandwithPackage = new CommonBandwithPackage(\"fooCommonBandwithPackage\", CommonBandwithPackageArgs.builder()\n            .bandwidth(\"2\")\n            .name(\"tf-testAccCommonBandwidthPackage\")\n            .description(\"tf-testAcc-CommonBandwidthPackage\")\n            .build());\n\n        final var foo = VpcFunctions.getCommonBandwidthPackages(GetCommonBandwidthPackagesArgs.builder()\n            .nameRegex(\"^tf-testAcc.*\")\n            .ids(fooCommonBandwithPackage.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  fooCommonBandwithPackage:\n    type: alicloud:vpc:CommonBandwithPackage\n    name: foo\n    properties:\n      bandwidth: '2'\n      name: tf-testAccCommonBandwidthPackage\n      description: tf-testAcc-CommonBandwidthPackage\nvariables:\n  foo:\n    fn::invoke:\n      function: alicloud:vpc:getCommonBandwidthPackages\n      arguments:\n        nameRegex: ^tf-testAcc.*\n        ids:\n          - ${fooCommonBandwithPackage.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Public ip addresses Block\n  \n  The public ip addresses mapping supports the following:\n  \n  * \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e   - The address of the EIP.\n  * \u003cspan pulumi-lang-nodejs=\"`allocationId`\" pulumi-lang-dotnet=\"`AllocationId`\" pulumi-lang-go=\"`allocationId`\" pulumi-lang-python=\"`allocation_id`\" pulumi-lang-yaml=\"`allocationId`\" pulumi-lang-java=\"`allocationId`\"\u003e`allocation_id`\u003c/span\u003e - The ID of the EIP instance.\n  * \u003cspan pulumi-lang-nodejs=\"`bandwidthPackageIpRelationStatus`\" pulumi-lang-dotnet=\"`BandwidthPackageIpRelationStatus`\" pulumi-lang-go=\"`bandwidthPackageIpRelationStatus`\" pulumi-lang-python=\"`bandwidth_package_ip_relation_status`\" pulumi-lang-yaml=\"`bandwidthPackageIpRelationStatus`\" pulumi-lang-java=\"`bandwidthPackageIpRelationStatus`\"\u003e`bandwidth_package_ip_relation_status`\u003c/span\u003e - The IP relation status of bandwidth package.\n","inputs":{"description":"A collection of arguments for invoking getCommonBandwidthPackages.\n","properties":{"bandwidthPackageName":{"type":"string","description":"The name of bandwidth package.\n"},"dryRun":{"type":"boolean","description":"Specifies whether to precheck only the request.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Common Bandwidth Packages IDs.\n"},"includeReservationData":{"type":"boolean","description":"Specifies whether to return data of orders that have not taken effect.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which the common bandwidth package belongs.\n"},"status":{"type":"string","description":"The status of bandwidth package. Valid values: `Available` and `Pending`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCommonBandwidthPackages.\n","properties":{"bandwidthPackageName":{"description":"The name of bandwidth package.\n","type":"string"},"dryRun":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"(Optional) A list of Common Bandwidth Packages IDs.\n","items":{"type":"string"},"type":"array"},"includeReservationData":{"type":"boolean"},"nameRegex":{"type":"string"},"names":{"description":"A list of Common Bandwidth Packages names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"packages":{"description":"A list of Common Bandwidth Packages. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getCommonBandwidthPackagesPackage:getCommonBandwidthPackagesPackage"},"type":"array"},"resourceGroupId":{"description":"The Id of resource group which the common bandwidth package belongs.\n","type":"string"},"status":{"description":"Status of the Common Bandwidth Package.\n","type":"string"}},"required":["ids","names","packages","id"],"type":"object"}},"alicloud:vpc/getDhcpOptionsSets:getDhcpOptionsSets":{"description":"This data source provides the Vpc Dhcp Options Sets of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.134.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getDhcpOptionsSets({\n    ids: [\"example_value\"],\n});\nexport const vpcDhcpOptionsSetId1 = ids.then(ids =\u003e ids.sets?.[0]?.id);\nconst nameRegex = alicloud.vpc.getDhcpOptionsSets({\n    nameRegex: \"^my-DhcpOptionsSet\",\n});\nexport const vpcDhcpOptionsSetId2 = nameRegex.then(nameRegex =\u003e nameRegex.sets?.[0]?.id);\nconst dhcpOptionsSetName = alicloud.vpc.getDhcpOptionsSets({\n    dhcpOptionsSetName: \"my-DhcpOptionsSet\",\n});\nexport const vpcDhcpOptionsSetId3 = dhcpOptionsSetName.then(dhcpOptionsSetName =\u003e dhcpOptionsSetName.sets?.[0]?.id);\nconst domainName = alicloud.vpc.getDhcpOptionsSets({\n    ids: [\"example_value\"],\n    domainName: \"example.com\",\n});\nexport const vpcDhcpOptionsSetId4 = domainName.then(domainName =\u003e domainName.sets?.[0]?.id);\nconst status = alicloud.vpc.getDhcpOptionsSets({\n    ids: [\"example_value\"],\n    status: \"Available\",\n});\nexport const vpcDhcpOptionsSetId5 = status.then(status =\u003e status.sets?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_dhcp_options_sets(ids=[\"example_value\"])\npulumi.export(\"vpcDhcpOptionsSetId1\", ids.sets[0].id)\nname_regex = alicloud.vpc.get_dhcp_options_sets(name_regex=\"^my-DhcpOptionsSet\")\npulumi.export(\"vpcDhcpOptionsSetId2\", name_regex.sets[0].id)\ndhcp_options_set_name = alicloud.vpc.get_dhcp_options_sets(dhcp_options_set_name=\"my-DhcpOptionsSet\")\npulumi.export(\"vpcDhcpOptionsSetId3\", dhcp_options_set_name.sets[0].id)\ndomain_name = alicloud.vpc.get_dhcp_options_sets(ids=[\"example_value\"],\n    domain_name=\"example.com\")\npulumi.export(\"vpcDhcpOptionsSetId4\", domain_name.sets[0].id)\nstatus = alicloud.vpc.get_dhcp_options_sets(ids=[\"example_value\"],\n    status=\"Available\")\npulumi.export(\"vpcDhcpOptionsSetId5\", status.sets[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetDhcpOptionsSets.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    var nameRegex = AliCloud.Vpc.GetDhcpOptionsSets.Invoke(new()\n    {\n        NameRegex = \"^my-DhcpOptionsSet\",\n    });\n\n    var dhcpOptionsSetName = AliCloud.Vpc.GetDhcpOptionsSets.Invoke(new()\n    {\n        DhcpOptionsSetName = \"my-DhcpOptionsSet\",\n    });\n\n    var domainName = AliCloud.Vpc.GetDhcpOptionsSets.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        DomainName = \"example.com\",\n    });\n\n    var status = AliCloud.Vpc.GetDhcpOptionsSets.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        Status = \"Available\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcDhcpOptionsSetId1\"] = ids.Apply(getDhcpOptionsSetsResult =\u003e getDhcpOptionsSetsResult.Sets[0]?.Id),\n        [\"vpcDhcpOptionsSetId2\"] = nameRegex.Apply(getDhcpOptionsSetsResult =\u003e getDhcpOptionsSetsResult.Sets[0]?.Id),\n        [\"vpcDhcpOptionsSetId3\"] = dhcpOptionsSetName.Apply(getDhcpOptionsSetsResult =\u003e getDhcpOptionsSetsResult.Sets[0]?.Id),\n        [\"vpcDhcpOptionsSetId4\"] = domainName.Apply(getDhcpOptionsSetsResult =\u003e getDhcpOptionsSetsResult.Sets[0]?.Id),\n        [\"vpcDhcpOptionsSetId5\"] = status.Apply(getDhcpOptionsSetsResult =\u003e getDhcpOptionsSetsResult.Sets[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetDhcpOptionsSets(ctx, \u0026vpc.GetDhcpOptionsSetsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcDhcpOptionsSetId1\", ids.Sets[0].Id)\n\t\tnameRegex, err := vpc.GetDhcpOptionsSets(ctx, \u0026vpc.GetDhcpOptionsSetsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-DhcpOptionsSet\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcDhcpOptionsSetId2\", nameRegex.Sets[0].Id)\n\t\tdhcpOptionsSetName, err := vpc.GetDhcpOptionsSets(ctx, \u0026vpc.GetDhcpOptionsSetsArgs{\n\t\t\tDhcpOptionsSetName: pulumi.StringRef(\"my-DhcpOptionsSet\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcDhcpOptionsSetId3\", dhcpOptionsSetName.Sets[0].Id)\n\t\tdomainName, err := vpc.GetDhcpOptionsSets(ctx, \u0026vpc.GetDhcpOptionsSetsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tDomainName: pulumi.StringRef(\"example.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcDhcpOptionsSetId4\", domainName.Sets[0].Id)\n\t\tstatus, err := vpc.GetDhcpOptionsSets(ctx, \u0026vpc.GetDhcpOptionsSetsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tStatus: pulumi.StringRef(\"Available\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcDhcpOptionsSetId5\", status.Sets[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetDhcpOptionsSetsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getDhcpOptionsSets(GetDhcpOptionsSetsArgs.builder()\n            .ids(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcDhcpOptionsSetId1\", ids.sets()[0].id());\n        final var nameRegex = VpcFunctions.getDhcpOptionsSets(GetDhcpOptionsSetsArgs.builder()\n            .nameRegex(\"^my-DhcpOptionsSet\")\n            .build());\n\n        ctx.export(\"vpcDhcpOptionsSetId2\", nameRegex.sets()[0].id());\n        final var dhcpOptionsSetName = VpcFunctions.getDhcpOptionsSets(GetDhcpOptionsSetsArgs.builder()\n            .dhcpOptionsSetName(\"my-DhcpOptionsSet\")\n            .build());\n\n        ctx.export(\"vpcDhcpOptionsSetId3\", dhcpOptionsSetName.sets()[0].id());\n        final var domainName = VpcFunctions.getDhcpOptionsSets(GetDhcpOptionsSetsArgs.builder()\n            .ids(\"example_value\")\n            .domainName(\"example.com\")\n            .build());\n\n        ctx.export(\"vpcDhcpOptionsSetId4\", domainName.sets()[0].id());\n        final var status = VpcFunctions.getDhcpOptionsSets(GetDhcpOptionsSetsArgs.builder()\n            .ids(\"example_value\")\n            .status(\"Available\")\n            .build());\n\n        ctx.export(\"vpcDhcpOptionsSetId5\", status.sets()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getDhcpOptionsSets\n      arguments:\n        ids:\n          - example_value\n  nameRegex:\n    fn::invoke:\n      function: alicloud:vpc:getDhcpOptionsSets\n      arguments:\n        nameRegex: ^my-DhcpOptionsSet\n  dhcpOptionsSetName:\n    fn::invoke:\n      function: alicloud:vpc:getDhcpOptionsSets\n      arguments:\n        dhcpOptionsSetName: my-DhcpOptionsSet\n  domainName:\n    fn::invoke:\n      function: alicloud:vpc:getDhcpOptionsSets\n      arguments:\n        ids:\n          - example_value\n        domainName: example.com\n  status:\n    fn::invoke:\n      function: alicloud:vpc:getDhcpOptionsSets\n      arguments:\n        ids:\n          - example_value\n        status: Available\noutputs:\n  vpcDhcpOptionsSetId1: ${ids.sets[0].id}\n  vpcDhcpOptionsSetId2: ${nameRegex.sets[0].id}\n  vpcDhcpOptionsSetId3: ${dhcpOptionsSetName.sets[0].id}\n  vpcDhcpOptionsSetId4: ${domainName.sets[0].id}\n  vpcDhcpOptionsSetId5: ${status.sets[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDhcpOptionsSets.\n","properties":{"dhcpOptionsSetName":{"type":"string","description":"The name of the DHCP options set.The name must be 2 to 128 characters in length and can contain letters, Chinese characters, digits, underscores (_), and hyphens (-). It must start with a letter or a Chinese character.\n"},"domainName":{"type":"string","description":"The root domain, for example, example.com. After a DHCP options set is associated with a Virtual Private Cloud (VPC) network, the root domain in the DHCP options set is automatically synchronized to the ECS instances in the VPC network.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Dhcp Options Set IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Dhcp Options Set name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the DHCP options set. Valid values: `Available`, `InUse` or `Pending`. `Available`: The DHCP options set is available for use. `InUse`: The DHCP options set is in use. `Pending`: The DHCP options set is being configured.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDhcpOptionsSets.\n","properties":{"dhcpOptionsSetName":{"type":"string"},"domainName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"sets":{"items":{"$ref":"#/types/alicloud:vpc/getDhcpOptionsSetsSet:getDhcpOptionsSetsSet"},"type":"array"},"status":{"type":"string"}},"required":["ids","names","sets","id"],"type":"object"}},"alicloud:vpc/getEnhancedNatAvailableZones:getEnhancedNatAvailableZones":{"description":"This data source provides a list of available zones by the enhanced Nat Gateway.\n\n\u003e **NOTE:** Available since v1.102.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.vpc.getEnhancedNatAvailableZones({});\nexport const zones = _default.then(_default =\u003e _default.zones?.[0]?.zoneId);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.vpc.get_enhanced_nat_available_zones()\npulumi.export(\"zones\", default.zones[0].zone_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Vpc.GetEnhancedNatAvailableZones.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"zones\"] = @default.Apply(@default =\u003e @default.Apply(getEnhancedNatAvailableZonesResult =\u003e getEnhancedNatAvailableZonesResult.Zones[0]?.ZoneId)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := vpc.GetEnhancedNatAvailableZones(ctx, \u0026vpc.GetEnhancedNatAvailableZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"zones\", _default.Zones[0].ZoneId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetEnhancedNatAvailableZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = VpcFunctions.getEnhancedNatAvailableZones(GetEnhancedNatAvailableZonesArgs.builder()\n            .build());\n\n        ctx.export(\"zones\", default_.zones()[0].zoneId());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vpc:getEnhancedNatAvailableZones\n      arguments: {}\noutputs:\n  zones: ${default.zones[0].zoneId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEnhancedNatAvailableZones.\n","properties":{"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEnhancedNatAvailableZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of available zones IDs by the enhanced NAT gateway.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"zones":{"description":"A list of available zones. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getEnhancedNatAvailableZonesZone:getEnhancedNatAvailableZonesZone"},"type":"array"}},"required":["ids","zones","id"],"type":"object"}},"alicloud:vpc/getFlowLogService:getFlowLogService":{"description":"Using this data source can open Vpc Flow Log service automatically. If the service has been opened, it will return opened.\n\nFor information about Vpc Flow Log and how to use it, see [What is Vpc Flow Log](https://www.alibabacloud.com/help/en/vpc/developer-reference/api-openflowlog).\n\n\u003e **NOTE:** Available since v1.209.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.vpc.getFlowLogService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.vpc.get_flow_log_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Vpc.GetFlowLogService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpc.GetFlowLogService(ctx, \u0026vpc.GetFlowLogServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetFlowLogServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = VpcFunctions.getFlowLogService(GetFlowLogServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vpc:getFlowLogService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFlowLogService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Default value: `Off`. Valid values: `On` and `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the Vpc Flow Log service that means you have read and agreed the [Vpc Flow Log Terms of Service](https://help.aliyun.com/zh/vpc/support/vpc-terms-of-service). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getFlowLogService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:vpc/getForwardEntries:getForwardEntries":{"description":"This data source provides a list of Forward Entries owned by an Alibaba Cloud account.\n\n\u003e **NOTE:** Available since v1.37.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"forward-entry-config-example-name\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultNetwork = new alicloud.vpc.Network(\"default\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst defaultSwitch = new alicloud.vpc.Switch(\"default\", {\n    vpcId: defaultNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    zoneId: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst defaultNatGateway = new alicloud.vpc.NatGateway(\"default\", {\n    vpcId: defaultNetwork.id,\n    internetChargeType: \"PayByLcu\",\n    natGatewayName: name,\n    natType: \"Enhanced\",\n    vswitchId: defaultSwitch.id,\n});\nconst defaultEipAddress = new alicloud.ecs.EipAddress(\"default\", {addressName: name});\nconst defaultEipAssociation = new alicloud.ecs.EipAssociation(\"default\", {\n    allocationId: defaultEipAddress.id,\n    instanceId: defaultNatGateway.id,\n});\nconst defaultForwardEntry = new alicloud.vpc.ForwardEntry(\"default\", {\n    forwardTableId: defaultNatGateway.forwardTableIds,\n    externalIp: defaultEipAddress.ipAddress,\n    externalPort: \"80\",\n    ipProtocol: \"tcp\",\n    internalIp: \"172.16.0.3\",\n    internalPort: \"8080\",\n});\nconst defaultGetForwardEntries = alicloud.vpc.getForwardEntriesOutput({\n    forwardTableId: defaultForwardEntry.forwardTableId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"forward-entry-config-example-name\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_network = alicloud.vpc.Network(\"default\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\ndefault_switch = alicloud.vpc.Switch(\"default\",\n    vpc_id=default_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    zone_id=default.zones[0].id,\n    vswitch_name=name)\ndefault_nat_gateway = alicloud.vpc.NatGateway(\"default\",\n    vpc_id=default_network.id,\n    internet_charge_type=\"PayByLcu\",\n    nat_gateway_name=name,\n    nat_type=\"Enhanced\",\n    vswitch_id=default_switch.id)\ndefault_eip_address = alicloud.ecs.EipAddress(\"default\", address_name=name)\ndefault_eip_association = alicloud.ecs.EipAssociation(\"default\",\n    allocation_id=default_eip_address.id,\n    instance_id=default_nat_gateway.id)\ndefault_forward_entry = alicloud.vpc.ForwardEntry(\"default\",\n    forward_table_id=default_nat_gateway.forward_table_ids,\n    external_ip=default_eip_address.ip_address,\n    external_port=\"80\",\n    ip_protocol=\"tcp\",\n    internal_ip=\"172.16.0.3\",\n    internal_port=\"8080\")\ndefault_get_forward_entries = alicloud.vpc.get_forward_entries_output(forward_table_id=default_forward_entry.forward_table_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"forward-entry-config-example-name\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultNetwork = new AliCloud.Vpc.Network(\"default\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var defaultSwitch = new AliCloud.Vpc.Switch(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        ZoneId = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var defaultNatGateway = new AliCloud.Vpc.NatGateway(\"default\", new()\n    {\n        VpcId = defaultNetwork.Id,\n        InternetChargeType = \"PayByLcu\",\n        NatGatewayName = name,\n        NatType = \"Enhanced\",\n        VswitchId = defaultSwitch.Id,\n    });\n\n    var defaultEipAddress = new AliCloud.Ecs.EipAddress(\"default\", new()\n    {\n        AddressName = name,\n    });\n\n    var defaultEipAssociation = new AliCloud.Ecs.EipAssociation(\"default\", new()\n    {\n        AllocationId = defaultEipAddress.Id,\n        InstanceId = defaultNatGateway.Id,\n    });\n\n    var defaultForwardEntry = new AliCloud.Vpc.ForwardEntry(\"default\", new()\n    {\n        ForwardTableId = defaultNatGateway.ForwardTableIds,\n        ExternalIp = defaultEipAddress.IpAddress,\n        ExternalPort = \"80\",\n        IpProtocol = \"tcp\",\n        InternalIp = \"172.16.0.3\",\n        InternalPort = \"8080\",\n    });\n\n    var defaultGetForwardEntries = AliCloud.Vpc.GetForwardEntries.Invoke(new()\n    {\n        ForwardTableId = defaultForwardEntry.ForwardTableId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"forward-entry-config-example-name\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := vpc.NewNetwork(ctx, \"default\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultSwitch, err := vpc.NewSwitch(ctx, \"default\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:       defaultNetwork.ID(),\n\t\t\tCidrBlock:   pulumi.String(\"172.16.0.0/21\"),\n\t\t\tZoneId:      pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNatGateway, err := vpc.NewNatGateway(ctx, \"default\", \u0026vpc.NatGatewayArgs{\n\t\t\tVpcId:              defaultNetwork.ID(),\n\t\t\tInternetChargeType: pulumi.String(\"PayByLcu\"),\n\t\t\tNatGatewayName:     pulumi.String(name),\n\t\t\tNatType:            pulumi.String(\"Enhanced\"),\n\t\t\tVswitchId:          defaultSwitch.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultEipAddress, err := ecs.NewEipAddress(ctx, \"default\", \u0026ecs.EipAddressArgs{\n\t\t\tAddressName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEipAssociation(ctx, \"default\", \u0026ecs.EipAssociationArgs{\n\t\t\tAllocationId: defaultEipAddress.ID(),\n\t\t\tInstanceId:   defaultNatGateway.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultForwardEntry, err := vpc.NewForwardEntry(ctx, \"default\", \u0026vpc.ForwardEntryArgs{\n\t\t\tForwardTableId: defaultNatGateway.ForwardTableIds,\n\t\t\tExternalIp:     defaultEipAddress.IpAddress,\n\t\t\tExternalPort:   pulumi.String(\"80\"),\n\t\t\tIpProtocol:     pulumi.String(\"tcp\"),\n\t\t\tInternalIp:     pulumi.String(\"172.16.0.3\"),\n\t\t\tInternalPort:   pulumi.String(\"8080\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = vpc.GetForwardEntriesOutput(ctx, vpc.GetForwardEntriesOutputArgs{\n\t\t\tForwardTableId: defaultForwardEntry.ForwardTableId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.NatGateway;\nimport com.pulumi.alicloud.vpc.NatGatewayArgs;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAddressArgs;\nimport com.pulumi.alicloud.ecs.EipAssociation;\nimport com.pulumi.alicloud.ecs.EipAssociationArgs;\nimport com.pulumi.alicloud.vpc.ForwardEntry;\nimport com.pulumi.alicloud.vpc.ForwardEntryArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetForwardEntriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"forward-entry-config-example-name\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var defaultSwitch = new Switch(\"defaultSwitch\", SwitchArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .zoneId(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var defaultNatGateway = new NatGateway(\"defaultNatGateway\", NatGatewayArgs.builder()\n            .vpcId(defaultNetwork.id())\n            .internetChargeType(\"PayByLcu\")\n            .natGatewayName(name)\n            .natType(\"Enhanced\")\n            .vswitchId(defaultSwitch.id())\n            .build());\n\n        var defaultEipAddress = new EipAddress(\"defaultEipAddress\", EipAddressArgs.builder()\n            .addressName(name)\n            .build());\n\n        var defaultEipAssociation = new EipAssociation(\"defaultEipAssociation\", EipAssociationArgs.builder()\n            .allocationId(defaultEipAddress.id())\n            .instanceId(defaultNatGateway.id())\n            .build());\n\n        var defaultForwardEntry = new ForwardEntry(\"defaultForwardEntry\", ForwardEntryArgs.builder()\n            .forwardTableId(defaultNatGateway.forwardTableIds())\n            .externalIp(defaultEipAddress.ipAddress())\n            .externalPort(\"80\")\n            .ipProtocol(\"tcp\")\n            .internalIp(\"172.16.0.3\")\n            .internalPort(\"8080\")\n            .build());\n\n        final var defaultGetForwardEntries = VpcFunctions.getForwardEntries(GetForwardEntriesArgs.builder()\n            .forwardTableId(defaultForwardEntry.forwardTableId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: forward-entry-config-example-name\nresources:\n  defaultNetwork:\n    type: alicloud:vpc:Network\n    name: default\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  defaultSwitch:\n    type: alicloud:vpc:Switch\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      zoneId: ${default.zones[0].id}\n      vswitchName: ${name}\n  defaultNatGateway:\n    type: alicloud:vpc:NatGateway\n    name: default\n    properties:\n      vpcId: ${defaultNetwork.id}\n      internetChargeType: PayByLcu\n      natGatewayName: ${name}\n      natType: Enhanced\n      vswitchId: ${defaultSwitch.id}\n  defaultEipAddress:\n    type: alicloud:ecs:EipAddress\n    name: default\n    properties:\n      addressName: ${name}\n  defaultEipAssociation:\n    type: alicloud:ecs:EipAssociation\n    name: default\n    properties:\n      allocationId: ${defaultEipAddress.id}\n      instanceId: ${defaultNatGateway.id}\n  defaultForwardEntry:\n    type: alicloud:vpc:ForwardEntry\n    name: default\n    properties:\n      forwardTableId: ${defaultNatGateway.forwardTableIds}\n      externalIp: ${defaultEipAddress.ipAddress}\n      externalPort: '80'\n      ipProtocol: tcp\n      internalIp: 172.16.0.3\n      internalPort: '8080'\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetForwardEntries:\n    fn::invoke:\n      function: alicloud:vpc:getForwardEntries\n      arguments:\n        forwardTableId: ${defaultForwardEntry.forwardTableId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getForwardEntries.\n","properties":{"externalIp":{"type":"string","description":"The public IP address.\n"},"externalPort":{"type":"string","description":"The public port.\n"},"forwardEntryName":{"type":"string","description":"The name of forward entry.\n"},"forwardTableId":{"type":"string","description":"The ID of the Forward table.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Forward Entries IDs.\n"},"internalIp":{"type":"string","description":"The private IP address.\n"},"internalPort":{"type":"string","description":"The internal port.\n"},"ipProtocol":{"type":"string","description":"The ip protocol. Valid values: \u003cspan pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\"\u003e`any`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by forward entry name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of farward entry. Valid value `Available`, `Deleting` and `Pending`.\n"}},"type":"object","required":["forwardTableId"]},"outputs":{"description":"A collection of values returned by getForwardEntries.\n","properties":{"entries":{"description":"A list of Forward Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getForwardEntriesEntry:getForwardEntriesEntry"},"type":"array"},"externalIp":{"description":"The public IP address.\n","type":"string"},"externalPort":{"description":"The public port.\n","type":"string"},"forwardEntryName":{"description":"The name of forward entry.\n","type":"string"},"forwardTableId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Forward Entries IDs.\n","items":{"type":"string"},"type":"array"},"internalIp":{"description":"The private IP address.\n","type":"string"},"internalPort":{"description":"The private port.\n","type":"string"},"ipProtocol":{"description":"The protocol type.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Forward Entries names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The status of forward entry.\n","type":"string"}},"required":["entries","forwardTableId","ids","names","id"],"type":"object"}},"alicloud:vpc/getHavips:getHavips":{"description":"This data source provides the Havips of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.120.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.vpc.getHavips({\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstHavipId = example.then(example =\u003e example.havips?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.vpc.get_havips(ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstHavipId\", example.havips[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Vpc.GetHavips.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstHavipId\"] = example.Apply(getHavipsResult =\u003e getHavipsResult.Havips[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := vpc.GetHavips(ctx, \u0026vpc.GetHavipsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstHavipId\", example.Havips[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetHavipsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = VpcFunctions.getHavips(GetHavipsArgs.builder()\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstHavipId\", example.havips()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:vpc:getHavips\n      arguments:\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstHavipId: ${example.havips[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHavips.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ha Vip IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Ha Vip name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of HaVip instance. Valid value: `Available`, `InUse` and `Pending`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHavips.\n","properties":{"havips":{"items":{"$ref":"#/types/alicloud:vpc/getHavipsHavip:getHavipsHavip"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["havips","ids","names","id"],"type":"object"}},"alicloud:vpc/getIpamIpamPoolAllocations:getIpamIpamPoolAllocations":{"description":"This data source provides Vpc Ipam Ipam Pool Allocation available to the user.[What is Ipam Pool Allocation](https://next.api.alibabacloud.com/document/VpcIpam/2023-02-28/CreateIpamPoolAllocation)\n\n\u003e **NOTE:** Available since v1.241.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultIpam = new alicloud.vpc.IpamIpam(\"defaultIpam\", {operatingRegionLists: [\"cn-hangzhou\"]});\nconst defaultIpamPool = new alicloud.vpc.IpamIpamPool(\"defaultIpamPool\", {\n    ipamScopeId: defaultIpam.privateDefaultScopeId,\n    poolRegionId: \"cn-hangzhou\",\n});\nconst defaultIpamPoolCidr = new alicloud.vpc.IpamIpamPoolCidr(\"defaultIpamPoolCidr\", {\n    cidr: \"10.0.0.0/8\",\n    ipamPoolId: defaultIpamPool.id,\n});\nconst defaultIpamIpamPoolAllocation = new alicloud.vpc.IpamIpamPoolAllocation(\"default\", {\n    ipamPoolAllocationDescription: \"init alloc desc\",\n    ipamPoolAllocationName: name,\n    cidr: \"10.0.0.0/20\",\n    ipamPoolId: defaultIpamPoolCidr.ipamPoolId,\n});\nconst defaultGetIpamIpamPoolAllocations = alicloud.vpc.getIpamIpamPoolAllocationsOutput({\n    ids: [defaultIpamIpamPoolAllocation.id],\n});\nexport const alicloudVpcIpamIpamPoolAllocationExampleId = defaultGetIpamIpamPoolAllocations.apply(defaultGetIpamIpamPoolAllocations =\u003e defaultGetIpamIpamPoolAllocations.allocations?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_ipam = alicloud.vpc.IpamIpam(\"defaultIpam\", operating_region_lists=[\"cn-hangzhou\"])\ndefault_ipam_pool = alicloud.vpc.IpamIpamPool(\"defaultIpamPool\",\n    ipam_scope_id=default_ipam.private_default_scope_id,\n    pool_region_id=\"cn-hangzhou\")\ndefault_ipam_pool_cidr = alicloud.vpc.IpamIpamPoolCidr(\"defaultIpamPoolCidr\",\n    cidr=\"10.0.0.0/8\",\n    ipam_pool_id=default_ipam_pool.id)\ndefault_ipam_ipam_pool_allocation = alicloud.vpc.IpamIpamPoolAllocation(\"default\",\n    ipam_pool_allocation_description=\"init alloc desc\",\n    ipam_pool_allocation_name=name,\n    cidr=\"10.0.0.0/20\",\n    ipam_pool_id=default_ipam_pool_cidr.ipam_pool_id)\ndefault_get_ipam_ipam_pool_allocations = alicloud.vpc.get_ipam_ipam_pool_allocations_output(ids=[default_ipam_ipam_pool_allocation.id])\npulumi.export(\"alicloudVpcIpamIpamPoolAllocationExampleId\", default_get_ipam_ipam_pool_allocations.allocations[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultIpam = new AliCloud.Vpc.IpamIpam(\"defaultIpam\", new()\n    {\n        OperatingRegionLists = new[]\n        {\n            \"cn-hangzhou\",\n        },\n    });\n\n    var defaultIpamPool = new AliCloud.Vpc.IpamIpamPool(\"defaultIpamPool\", new()\n    {\n        IpamScopeId = defaultIpam.PrivateDefaultScopeId,\n        PoolRegionId = \"cn-hangzhou\",\n    });\n\n    var defaultIpamPoolCidr = new AliCloud.Vpc.IpamIpamPoolCidr(\"defaultIpamPoolCidr\", new()\n    {\n        Cidr = \"10.0.0.0/8\",\n        IpamPoolId = defaultIpamPool.Id,\n    });\n\n    var defaultIpamIpamPoolAllocation = new AliCloud.Vpc.IpamIpamPoolAllocation(\"default\", new()\n    {\n        IpamPoolAllocationDescription = \"init alloc desc\",\n        IpamPoolAllocationName = name,\n        Cidr = \"10.0.0.0/20\",\n        IpamPoolId = defaultIpamPoolCidr.IpamPoolId,\n    });\n\n    var defaultGetIpamIpamPoolAllocations = AliCloud.Vpc.GetIpamIpamPoolAllocations.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultIpamIpamPoolAllocation.Id,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudVpcIpamIpamPoolAllocationExampleId\"] = defaultGetIpamIpamPoolAllocations.Apply(getIpamIpamPoolAllocationsResult =\u003e getIpamIpamPoolAllocationsResult.Allocations[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultIpam, err := vpc.NewIpamIpam(ctx, \"defaultIpam\", \u0026vpc.IpamIpamArgs{\n\t\t\tOperatingRegionLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"cn-hangzhou\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultIpamPool, err := vpc.NewIpamIpamPool(ctx, \"defaultIpamPool\", \u0026vpc.IpamIpamPoolArgs{\n\t\t\tIpamScopeId:  defaultIpam.PrivateDefaultScopeId,\n\t\t\tPoolRegionId: pulumi.String(\"cn-hangzhou\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultIpamPoolCidr, err := vpc.NewIpamIpamPoolCidr(ctx, \"defaultIpamPoolCidr\", \u0026vpc.IpamIpamPoolCidrArgs{\n\t\t\tCidr:       pulumi.String(\"10.0.0.0/8\"),\n\t\t\tIpamPoolId: defaultIpamPool.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultIpamIpamPoolAllocation, err := vpc.NewIpamIpamPoolAllocation(ctx, \"default\", \u0026vpc.IpamIpamPoolAllocationArgs{\n\t\t\tIpamPoolAllocationDescription: pulumi.String(\"init alloc desc\"),\n\t\t\tIpamPoolAllocationName:        pulumi.String(name),\n\t\t\tCidr:                          pulumi.String(\"10.0.0.0/20\"),\n\t\t\tIpamPoolId:                    defaultIpamPoolCidr.IpamPoolId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetIpamIpamPoolAllocations := vpc.GetIpamIpamPoolAllocationsOutput(ctx, vpc.GetIpamIpamPoolAllocationsOutputArgs{\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tdefaultIpamIpamPoolAllocation.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tctx.Export(\"alicloudVpcIpamIpamPoolAllocationExampleId\", defaultGetIpamIpamPoolAllocations.ApplyT(func(defaultGetIpamIpamPoolAllocations vpc.GetIpamIpamPoolAllocationsResult) (*string, error) {\n\t\t\treturn \u0026defaultGetIpamIpamPoolAllocations.Allocations[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.IpamIpam;\nimport com.pulumi.alicloud.vpc.IpamIpamArgs;\nimport com.pulumi.alicloud.vpc.IpamIpamPool;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolArgs;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolCidr;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolCidrArgs;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolAllocation;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolAllocationArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetIpamIpamPoolAllocationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultIpam = new IpamIpam(\"defaultIpam\", IpamIpamArgs.builder()\n            .operatingRegionLists(\"cn-hangzhou\")\n            .build());\n\n        var defaultIpamPool = new IpamIpamPool(\"defaultIpamPool\", IpamIpamPoolArgs.builder()\n            .ipamScopeId(defaultIpam.privateDefaultScopeId())\n            .poolRegionId(\"cn-hangzhou\")\n            .build());\n\n        var defaultIpamPoolCidr = new IpamIpamPoolCidr(\"defaultIpamPoolCidr\", IpamIpamPoolCidrArgs.builder()\n            .cidr(\"10.0.0.0/8\")\n            .ipamPoolId(defaultIpamPool.id())\n            .build());\n\n        var defaultIpamIpamPoolAllocation = new IpamIpamPoolAllocation(\"defaultIpamIpamPoolAllocation\", IpamIpamPoolAllocationArgs.builder()\n            .ipamPoolAllocationDescription(\"init alloc desc\")\n            .ipamPoolAllocationName(name)\n            .cidr(\"10.0.0.0/20\")\n            .ipamPoolId(defaultIpamPoolCidr.ipamPoolId())\n            .build());\n\n        final var defaultGetIpamIpamPoolAllocations = VpcFunctions.getIpamIpamPoolAllocations(GetIpamIpamPoolAllocationsArgs.builder()\n            .ids(defaultIpamIpamPoolAllocation.id())\n            .build());\n\n        ctx.export(\"alicloudVpcIpamIpamPoolAllocationExampleId\", defaultGetIpamIpamPoolAllocations.applyValue(_defaultGetIpamIpamPoolAllocations -\u003e _defaultGetIpamIpamPoolAllocations.allocations()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultIpam:\n    type: alicloud:vpc:IpamIpam\n    properties:\n      operatingRegionLists:\n        - cn-hangzhou\n  defaultIpamPool:\n    type: alicloud:vpc:IpamIpamPool\n    properties:\n      ipamScopeId: ${defaultIpam.privateDefaultScopeId}\n      poolRegionId: cn-hangzhou\n  defaultIpamPoolCidr:\n    type: alicloud:vpc:IpamIpamPoolCidr\n    properties:\n      cidr: 10.0.0.0/8\n      ipamPoolId: ${defaultIpamPool.id}\n  defaultIpamIpamPoolAllocation:\n    type: alicloud:vpc:IpamIpamPoolAllocation\n    name: default\n    properties:\n      ipamPoolAllocationDescription: init alloc desc\n      ipamPoolAllocationName: ${name}\n      cidr: 10.0.0.0/20\n      ipamPoolId: ${defaultIpamPoolCidr.ipamPoolId}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetIpamIpamPoolAllocations:\n    fn::invoke:\n      function: alicloud:vpc:getIpamIpamPoolAllocations\n      arguments:\n        ids:\n          - ${defaultIpamIpamPoolAllocation.id}\noutputs:\n  alicloudVpcIpamIpamPoolAllocationExampleId: ${defaultGetIpamIpamPoolAllocations.allocations[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpamIpamPoolAllocations.\n","properties":{"cidr":{"type":"string","description":"The allocated address segment.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ipam Pool Allocation IDs.\n"},"ipamPoolAllocationId":{"type":"string","description":"The instance ID of the ipam pool allocation.\n"},"ipamPoolAllocationName":{"type":"string","description":"The name of the ipam pool allocation.It must be 1 to 128 characters in length and cannot start with 'http:// 'or 'https.\n"},"ipamPoolId":{"type":"string","description":"The ID of the IPAM Pool.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["ipamPoolId"]},"outputs":{"description":"A collection of values returned by getIpamIpamPoolAllocations.\n","properties":{"allocations":{"description":"A list of Ipam Pool Allocation Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getIpamIpamPoolAllocationsAllocation:getIpamIpamPoolAllocationsAllocation"},"type":"array"},"cidr":{"description":"The allocated address segment.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Ipam Pool Allocation IDs.\n","items":{"type":"string"},"type":"array"},"ipamPoolAllocationId":{"description":"The instance ID of the ipam pool allocation.\n","type":"string"},"ipamPoolAllocationName":{"description":"The name of the ipam pool allocation.It must be 1 to 128 characters in length and cannot start with 'http:// 'or 'https.\n","type":"string"},"ipamPoolId":{"description":"The ID of the IPAM Pool.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Ipam Pool Allocations.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["allocations","ids","ipamPoolId","names","id"],"type":"object"}},"alicloud:vpc/getIpamIpamPoolCidrs:getIpamIpamPoolCidrs":{"description":"This data source provides Vpc Ipam Ipam Pool Cidr available to the user.[What is Ipam Pool Cidr](https://next.api.alibabacloud.com/document/VpcIpam/2023-02-28/AddIpamPoolCidr)\n\n\u003e **NOTE:** Available since v1.241.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst defaultIpam = new alicloud.vpc.IpamIpam(\"defaultIpam\", {operatingRegionLists: [\"cn-hangzhou\"]});\nconst defaultIpamPool = new alicloud.vpc.IpamIpamPool(\"defaultIpamPool\", {\n    ipamScopeId: defaultIpam.privateDefaultScopeId,\n    poolRegionId: defaultIpam.regionId,\n    ipVersion: \"IPv4\",\n});\nconst defaultIpamIpamPoolCidr = new alicloud.vpc.IpamIpamPoolCidr(\"default\", {\n    cidr: \"10.0.0.0/8\",\n    ipamPoolId: defaultIpamPool.id,\n});\nconst _default = alicloud.vpc.getIpamIpamPoolCidrsOutput({\n    cidr: \"10.0.0.0/8\",\n    ipamPoolId: defaultIpamIpamPoolCidr.ipamPoolId,\n});\nexport const alicloudVpcIpamIpamPoolCidrExampleId = _default.apply(_default =\u003e _default.cidrs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault_ipam = alicloud.vpc.IpamIpam(\"defaultIpam\", operating_region_lists=[\"cn-hangzhou\"])\ndefault_ipam_pool = alicloud.vpc.IpamIpamPool(\"defaultIpamPool\",\n    ipam_scope_id=default_ipam.private_default_scope_id,\n    pool_region_id=default_ipam.region_id,\n    ip_version=\"IPv4\")\ndefault_ipam_ipam_pool_cidr = alicloud.vpc.IpamIpamPoolCidr(\"default\",\n    cidr=\"10.0.0.0/8\",\n    ipam_pool_id=default_ipam_pool.id)\ndefault = alicloud.vpc.get_ipam_ipam_pool_cidrs_output(cidr=\"10.0.0.0/8\",\n    ipam_pool_id=default_ipam_ipam_pool_cidr.ipam_pool_id)\npulumi.export(\"alicloudVpcIpamIpamPoolCidrExampleId\", default.cidrs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var defaultIpam = new AliCloud.Vpc.IpamIpam(\"defaultIpam\", new()\n    {\n        OperatingRegionLists = new[]\n        {\n            \"cn-hangzhou\",\n        },\n    });\n\n    var defaultIpamPool = new AliCloud.Vpc.IpamIpamPool(\"defaultIpamPool\", new()\n    {\n        IpamScopeId = defaultIpam.PrivateDefaultScopeId,\n        PoolRegionId = defaultIpam.RegionId,\n        IpVersion = \"IPv4\",\n    });\n\n    var defaultIpamIpamPoolCidr = new AliCloud.Vpc.IpamIpamPoolCidr(\"default\", new()\n    {\n        Cidr = \"10.0.0.0/8\",\n        IpamPoolId = defaultIpamPool.Id,\n    });\n\n    var @default = AliCloud.Vpc.GetIpamIpamPoolCidrs.Invoke(new()\n    {\n        Cidr = \"10.0.0.0/8\",\n        IpamPoolId = defaultIpamIpamPoolCidr.IpamPoolId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudVpcIpamIpamPoolCidrExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getIpamIpamPoolCidrsResult =\u003e getIpamIpamPoolCidrsResult.Cidrs[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\ndefaultIpam, err := vpc.NewIpamIpam(ctx, \"defaultIpam\", \u0026vpc.IpamIpamArgs{\nOperatingRegionLists: pulumi.StringArray{\npulumi.String(\"cn-hangzhou\"),\n},\n})\nif err != nil {\nreturn err\n}\ndefaultIpamPool, err := vpc.NewIpamIpamPool(ctx, \"defaultIpamPool\", \u0026vpc.IpamIpamPoolArgs{\nIpamScopeId: defaultIpam.PrivateDefaultScopeId,\nPoolRegionId: defaultIpam.RegionId,\nIpVersion: pulumi.String(\"IPv4\"),\n})\nif err != nil {\nreturn err\n}\ndefaultIpamIpamPoolCidr, err := vpc.NewIpamIpamPoolCidr(ctx, \"default\", \u0026vpc.IpamIpamPoolCidrArgs{\nCidr: pulumi.String(\"10.0.0.0/8\"),\nIpamPoolId: defaultIpamPool.ID(),\n})\nif err != nil {\nreturn err\n}\n_default := vpc.GetIpamIpamPoolCidrsOutput(ctx, vpc.GetIpamIpamPoolCidrsOutputArgs{\nCidr: pulumi.String(\"10.0.0.0/8\"),\nIpamPoolId: defaultIpamIpamPoolCidr.IpamPoolId,\n}, nil);\nctx.Export(\"alicloudVpcIpamIpamPoolCidrExampleId\", _default.ApplyT(func(_default vpc.GetIpamIpamPoolCidrsResult) (*string, error) {\nreturn \u0026default.Cidrs[0].Id, nil\n}).(pulumi.StringPtrOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.IpamIpam;\nimport com.pulumi.alicloud.vpc.IpamIpamArgs;\nimport com.pulumi.alicloud.vpc.IpamIpamPool;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolArgs;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolCidr;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolCidrArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetIpamIpamPoolCidrsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        var defaultIpam = new IpamIpam(\"defaultIpam\", IpamIpamArgs.builder()\n            .operatingRegionLists(\"cn-hangzhou\")\n            .build());\n\n        var defaultIpamPool = new IpamIpamPool(\"defaultIpamPool\", IpamIpamPoolArgs.builder()\n            .ipamScopeId(defaultIpam.privateDefaultScopeId())\n            .poolRegionId(defaultIpam.regionId())\n            .ipVersion(\"IPv4\")\n            .build());\n\n        var defaultIpamIpamPoolCidr = new IpamIpamPoolCidr(\"defaultIpamIpamPoolCidr\", IpamIpamPoolCidrArgs.builder()\n            .cidr(\"10.0.0.0/8\")\n            .ipamPoolId(defaultIpamPool.id())\n            .build());\n\n        final var default = VpcFunctions.getIpamIpamPoolCidrs(GetIpamIpamPoolCidrsArgs.builder()\n            .cidr(\"10.0.0.0/8\")\n            .ipamPoolId(defaultIpamIpamPoolCidr.ipamPoolId())\n            .build());\n\n        ctx.export(\"alicloudVpcIpamIpamPoolCidrExampleId\", default_.applyValue(_default_ -\u003e _default_.cidrs()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultIpam:\n    type: alicloud:vpc:IpamIpam\n    properties:\n      operatingRegionLists:\n        - cn-hangzhou\n  defaultIpamPool:\n    type: alicloud:vpc:IpamIpamPool\n    properties:\n      ipamScopeId: ${defaultIpam.privateDefaultScopeId}\n      poolRegionId: ${defaultIpam.regionId}\n      ipVersion: IPv4\n  defaultIpamIpamPoolCidr:\n    type: alicloud:vpc:IpamIpamPoolCidr\n    name: default\n    properties:\n      cidr: 10.0.0.0/8\n      ipamPoolId: ${defaultIpamPool.id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vpc:getIpamIpamPoolCidrs\n      arguments:\n        cidr: 10.0.0.0/8\n        ipamPoolId: ${defaultIpamIpamPoolCidr.ipamPoolId}\noutputs:\n  alicloudVpcIpamIpamPoolCidrExampleId: ${default.cidrs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpamIpamPoolCidrs.\n","properties":{"cidr":{"type":"string","description":"The CIDR address segment to be preset.\u003e currently, only IPv4 address segments are supported.\n"},"ipamPoolId":{"type":"string","description":"The ID of the IPAM pool instance.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["ipamPoolId"]},"outputs":{"description":"A collection of values returned by getIpamIpamPoolCidrs.\n","properties":{"cidr":{"description":"The CIDR address segment to be preset.\u003e currently, only IPv4 address segments are supported.\n","type":"string"},"cidrs":{"description":"A list of Ipam Pool Cidr Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getIpamIpamPoolCidrsCidr:getIpamIpamPoolCidrsCidr"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipamPoolId":{"description":"The ID of the IPAM pool instance.\n","type":"string"},"outputFile":{"type":"string"}},"required":["cidrs","ipamPoolId","id"],"type":"object"}},"alicloud:vpc/getIpamIpamPools:getIpamIpamPools":{"description":"This data source provides Vpc Ipam Ipam Pool available to the user.[What is Ipam Pool](https://next.api.alibabacloud.com/document/VpcIpam/2023-02-28/CreateIpamPool)\n\n\u003e **NOTE:** Available since v1.241.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultIpam = new alicloud.vpc.IpamIpam(\"defaultIpam\", {operatingRegionLists: [\"cn-hangzhou\"]});\nconst parentIpamPool = new alicloud.vpc.IpamIpamPool(\"parentIpamPool\", {\n    ipamScopeId: defaultIpam.privateDefaultScopeId,\n    poolRegionId: \"cn-hangzhou\",\n});\nconst defaultIpamIpamPool = new alicloud.vpc.IpamIpamPool(\"default\", {\n    ipamScopeId: defaultIpam.privateDefaultScopeId,\n    poolRegionId: parentIpamPool.poolRegionId,\n    ipamPoolName: name,\n    sourceIpamPoolId: parentIpamPool.id,\n    ipVersion: \"IPv4\",\n    ipamPoolDescription: name,\n});\nconst defaultGetIpamIpamPools = alicloud.vpc.getIpamIpamPools({\n    nameRegex: defaultIpamIpamPool.name,\n});\nexport const alicloudVpcIpamIpamPoolExampleId = defaultGetIpamIpamPools.then(defaultGetIpamIpamPools =\u003e defaultGetIpamIpamPools.pools?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_ipam = alicloud.vpc.IpamIpam(\"defaultIpam\", operating_region_lists=[\"cn-hangzhou\"])\nparent_ipam_pool = alicloud.vpc.IpamIpamPool(\"parentIpamPool\",\n    ipam_scope_id=default_ipam.private_default_scope_id,\n    pool_region_id=\"cn-hangzhou\")\ndefault_ipam_ipam_pool = alicloud.vpc.IpamIpamPool(\"default\",\n    ipam_scope_id=default_ipam.private_default_scope_id,\n    pool_region_id=parent_ipam_pool.pool_region_id,\n    ipam_pool_name=name,\n    source_ipam_pool_id=parent_ipam_pool.id,\n    ip_version=\"IPv4\",\n    ipam_pool_description=name)\ndefault_get_ipam_ipam_pools = alicloud.vpc.get_ipam_ipam_pools(name_regex=default_ipam_ipam_pool.name)\npulumi.export(\"alicloudVpcIpamIpamPoolExampleId\", default_get_ipam_ipam_pools.pools[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultIpam = new AliCloud.Vpc.IpamIpam(\"defaultIpam\", new()\n    {\n        OperatingRegionLists = new[]\n        {\n            \"cn-hangzhou\",\n        },\n    });\n\n    var parentIpamPool = new AliCloud.Vpc.IpamIpamPool(\"parentIpamPool\", new()\n    {\n        IpamScopeId = defaultIpam.PrivateDefaultScopeId,\n        PoolRegionId = \"cn-hangzhou\",\n    });\n\n    var defaultIpamIpamPool = new AliCloud.Vpc.IpamIpamPool(\"default\", new()\n    {\n        IpamScopeId = defaultIpam.PrivateDefaultScopeId,\n        PoolRegionId = parentIpamPool.PoolRegionId,\n        IpamPoolName = name,\n        SourceIpamPoolId = parentIpamPool.Id,\n        IpVersion = \"IPv4\",\n        IpamPoolDescription = name,\n    });\n\n    var defaultGetIpamIpamPools = AliCloud.Vpc.GetIpamIpamPools.Invoke(new()\n    {\n        NameRegex = defaultIpamIpamPool.Name,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudVpcIpamIpamPoolExampleId\"] = defaultGetIpamIpamPools.Apply(getIpamIpamPoolsResult =\u003e getIpamIpamPoolsResult.Pools[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultIpam, err := vpc.NewIpamIpam(ctx, \"defaultIpam\", \u0026vpc.IpamIpamArgs{\n\t\t\tOperatingRegionLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"cn-hangzhou\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tparentIpamPool, err := vpc.NewIpamIpamPool(ctx, \"parentIpamPool\", \u0026vpc.IpamIpamPoolArgs{\n\t\t\tIpamScopeId:  defaultIpam.PrivateDefaultScopeId,\n\t\t\tPoolRegionId: pulumi.String(\"cn-hangzhou\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultIpamIpamPool, err := vpc.NewIpamIpamPool(ctx, \"default\", \u0026vpc.IpamIpamPoolArgs{\n\t\t\tIpamScopeId:         defaultIpam.PrivateDefaultScopeId,\n\t\t\tPoolRegionId:        parentIpamPool.PoolRegionId,\n\t\t\tIpamPoolName:        pulumi.String(name),\n\t\t\tSourceIpamPoolId:    parentIpamPool.ID(),\n\t\t\tIpVersion:           pulumi.String(\"IPv4\"),\n\t\t\tIpamPoolDescription: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetIpamIpamPools, err := vpc.GetIpamIpamPools(ctx, \u0026vpc.GetIpamIpamPoolsArgs{\n\t\t\tNameRegex: pulumi.StringRef(defaultIpamIpamPool.Name),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudVpcIpamIpamPoolExampleId\", defaultGetIpamIpamPools.Pools[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.IpamIpam;\nimport com.pulumi.alicloud.vpc.IpamIpamArgs;\nimport com.pulumi.alicloud.vpc.IpamIpamPool;\nimport com.pulumi.alicloud.vpc.IpamIpamPoolArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetIpamIpamPoolsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultIpam = new IpamIpam(\"defaultIpam\", IpamIpamArgs.builder()\n            .operatingRegionLists(\"cn-hangzhou\")\n            .build());\n\n        var parentIpamPool = new IpamIpamPool(\"parentIpamPool\", IpamIpamPoolArgs.builder()\n            .ipamScopeId(defaultIpam.privateDefaultScopeId())\n            .poolRegionId(\"cn-hangzhou\")\n            .build());\n\n        var defaultIpamIpamPool = new IpamIpamPool(\"defaultIpamIpamPool\", IpamIpamPoolArgs.builder()\n            .ipamScopeId(defaultIpam.privateDefaultScopeId())\n            .poolRegionId(parentIpamPool.poolRegionId())\n            .ipamPoolName(name)\n            .sourceIpamPoolId(parentIpamPool.id())\n            .ipVersion(\"IPv4\")\n            .ipamPoolDescription(name)\n            .build());\n\n        final var defaultGetIpamIpamPools = VpcFunctions.getIpamIpamPools(GetIpamIpamPoolsArgs.builder()\n            .nameRegex(defaultIpamIpamPool.name())\n            .build());\n\n        ctx.export(\"alicloudVpcIpamIpamPoolExampleId\", defaultGetIpamIpamPools.pools()[0].id());\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultIpam:\n    type: alicloud:vpc:IpamIpam\n    properties:\n      operatingRegionLists:\n        - cn-hangzhou\n  parentIpamPool:\n    type: alicloud:vpc:IpamIpamPool\n    properties:\n      ipamScopeId: ${defaultIpam.privateDefaultScopeId}\n      poolRegionId: cn-hangzhou\n  defaultIpamIpamPool:\n    type: alicloud:vpc:IpamIpamPool\n    name: default\n    properties:\n      ipamScopeId: ${defaultIpam.privateDefaultScopeId}\n      poolRegionId: ${parentIpamPool.poolRegionId}\n      ipamPoolName: ${name}\n      sourceIpamPoolId: ${parentIpamPool.id}\n      ipVersion: IPv4\n      ipamPoolDescription: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetIpamIpamPools:\n    fn::invoke:\n      function: alicloud:vpc:getIpamIpamPools\n      arguments:\n        nameRegex: ${defaultIpamIpamPool.name}\noutputs:\n  alicloudVpcIpamIpamPoolExampleId: ${defaultGetIpamIpamPools.pools[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpamIpamPools.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ipam Pool IDs.\n"},"ipamPoolId":{"type":"string","description":"The first ID of the resource.\n"},"ipamPoolName":{"type":"string","description":"The name of the resource.\n"},"ipamScopeId":{"type":"string","description":"Ipam scope id.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"poolRegionId":{"type":"string","description":"The effective region of the IPAM address pool.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"sourceIpamPoolId":{"type":"string","description":"The instance ID of the source IPAM address pool.\u003e If this parameter is not entered, the created address pool is the parent address pool.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpamIpamPools.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Ipam Pool IDs.\n","items":{"type":"string"},"type":"array"},"ipamPoolId":{"description":"The first ID of the resource.\n","type":"string"},"ipamPoolName":{"description":"The name of the resource.\n","type":"string"},"ipamScopeId":{"description":"Ipam scope id.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Ipam Pools.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"poolRegionId":{"description":"The effective region of the IPAM address pool.\n","type":"string"},"pools":{"description":"A list of Ipam Pool Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getIpamIpamPoolsPool:getIpamIpamPoolsPool"},"type":"array"},"resourceGroupId":{"description":"The ID of the resource group.\n","type":"string"},"sourceIpamPoolId":{"description":"The instance ID of the source IPAM address pool.\u003e If this parameter is not entered, the created address pool is the parent address pool.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tag of the resource.\n","type":"object"}},"required":["ids","names","pools","id"],"type":"object"}},"alicloud:vpc/getIpamIpamScopes:getIpamIpamScopes":{"description":"This data source provides Vpc Ipam Ipam Scope available to the user.[What is Ipam Scope](https://next.api.alibabacloud.com/document/VpcIpam/2023-02-28/CreateIpamScope)\n\n\u003e **NOTE:** Available since v1.241.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultIpam = new alicloud.vpc.IpamIpam(\"defaultIpam\", {\n    operatingRegionLists: [\"cn-hangzhou\"],\n    ipamName: name,\n});\nconst defaultIpamIpamScope = new alicloud.vpc.IpamIpamScope(\"default\", {\n    ipamScopeName: name,\n    ipamId: defaultIpam.id,\n    ipamScopeDescription: \"This is a ipam scope.\",\n    ipamScopeType: \"private\",\n    tags: {\n        k1: \"v1\",\n    },\n});\nconst defaultGetIpamIpamScopes = defaultIpamIpamScope.ipamScopeName.apply(ipamScopeName =\u003e alicloud.vpc.getIpamIpamScopesOutput({\n    ipamScopeName: ipamScopeName,\n}));\nexport const alicloudVpcIpamIpamScopeExampleId = defaultGetIpamIpamScopes.apply(defaultGetIpamIpamScopes =\u003e defaultGetIpamIpamScopes.scopes?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_ipam = alicloud.vpc.IpamIpam(\"defaultIpam\",\n    operating_region_lists=[\"cn-hangzhou\"],\n    ipam_name=name)\ndefault_ipam_ipam_scope = alicloud.vpc.IpamIpamScope(\"default\",\n    ipam_scope_name=name,\n    ipam_id=default_ipam.id,\n    ipam_scope_description=\"This is a ipam scope.\",\n    ipam_scope_type=\"private\",\n    tags={\n        \"k1\": \"v1\",\n    })\ndefault_get_ipam_ipam_scopes = default_ipam_ipam_scope.ipam_scope_name.apply(lambda ipam_scope_name: alicloud.vpc.get_ipam_ipam_scopes_output(ipam_scope_name=ipam_scope_name))\npulumi.export(\"alicloudVpcIpamIpamScopeExampleId\", default_get_ipam_ipam_scopes.scopes[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultIpam = new AliCloud.Vpc.IpamIpam(\"defaultIpam\", new()\n    {\n        OperatingRegionLists = new[]\n        {\n            \"cn-hangzhou\",\n        },\n        IpamName = name,\n    });\n\n    var defaultIpamIpamScope = new AliCloud.Vpc.IpamIpamScope(\"default\", new()\n    {\n        IpamScopeName = name,\n        IpamId = defaultIpam.Id,\n        IpamScopeDescription = \"This is a ipam scope.\",\n        IpamScopeType = \"private\",\n        Tags = \n        {\n            { \"k1\", \"v1\" },\n        },\n    });\n\n    var defaultGetIpamIpamScopes = AliCloud.Vpc.GetIpamIpamScopes.Invoke(new()\n    {\n        IpamScopeName = defaultIpamIpamScope.IpamScopeName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudVpcIpamIpamScopeExampleId\"] = defaultGetIpamIpamScopes.Apply(getIpamIpamScopesResult =\u003e getIpamIpamScopesResult.Scopes[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultIpam, err := vpc.NewIpamIpam(ctx, \"defaultIpam\", \u0026vpc.IpamIpamArgs{\n\t\t\tOperatingRegionLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"cn-hangzhou\"),\n\t\t\t},\n\t\t\tIpamName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultIpamIpamScope, err := vpc.NewIpamIpamScope(ctx, \"default\", \u0026vpc.IpamIpamScopeArgs{\n\t\t\tIpamScopeName:        pulumi.String(name),\n\t\t\tIpamId:               defaultIpam.ID(),\n\t\t\tIpamScopeDescription: pulumi.String(\"This is a ipam scope.\"),\n\t\t\tIpamScopeType:        pulumi.String(\"private\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"k1\": pulumi.String(\"v1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetIpamIpamScopes := defaultIpamIpamScope.IpamScopeName.ApplyT(func(ipamScopeName *string) (vpc.GetIpamIpamScopesResult, error) {\n\t\t\treturn vpc.GetIpamIpamScopesResult(interface{}(vpc.GetIpamIpamScopes(ctx, \u0026vpc.GetIpamIpamScopesArgs{\n\t\t\t\tIpamScopeName: pulumi.StringRef(pulumi.StringRef(ipamScopeName)),\n\t\t\t}, nil))), nil\n\t\t}).(vpc.GetIpamIpamScopesResultOutput)\n\t\tctx.Export(\"alicloudVpcIpamIpamScopeExampleId\", defaultGetIpamIpamScopes.ApplyT(func(defaultGetIpamIpamScopes vpc.GetIpamIpamScopesResult) (*string, error) {\n\t\t\treturn \u0026defaultGetIpamIpamScopes.Scopes[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.IpamIpam;\nimport com.pulumi.alicloud.vpc.IpamIpamArgs;\nimport com.pulumi.alicloud.vpc.IpamIpamScope;\nimport com.pulumi.alicloud.vpc.IpamIpamScopeArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetIpamIpamScopesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultIpam = new IpamIpam(\"defaultIpam\", IpamIpamArgs.builder()\n            .operatingRegionLists(\"cn-hangzhou\")\n            .ipamName(name)\n            .build());\n\n        var defaultIpamIpamScope = new IpamIpamScope(\"defaultIpamIpamScope\", IpamIpamScopeArgs.builder()\n            .ipamScopeName(name)\n            .ipamId(defaultIpam.id())\n            .ipamScopeDescription(\"This is a ipam scope.\")\n            .ipamScopeType(\"private\")\n            .tags(Map.of(\"k1\", \"v1\"))\n            .build());\n\n        final var defaultGetIpamIpamScopes = defaultIpamIpamScope.ipamScopeName().applyValue(_ipamScopeName -\u003e VpcFunctions.getIpamIpamScopes(GetIpamIpamScopesArgs.builder()\n            .ipamScopeName(_ipamScopeName)\n            .build()));\n\n        ctx.export(\"alicloudVpcIpamIpamScopeExampleId\", defaultGetIpamIpamScopes.applyValue(_defaultGetIpamIpamScopes -\u003e _defaultGetIpamIpamScopes.scopes()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultIpam:\n    type: alicloud:vpc:IpamIpam\n    properties:\n      operatingRegionLists:\n        - cn-hangzhou\n      ipamName: ${name}\n  defaultIpamIpamScope:\n    type: alicloud:vpc:IpamIpamScope\n    name: default\n    properties:\n      ipamScopeName: ${name}\n      ipamId: ${defaultIpam.id}\n      ipamScopeDescription: This is a ipam scope.\n      ipamScopeType: private\n      tags:\n        k1: v1\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetIpamIpamScopes:\n    fn::invoke:\n      function: alicloud:vpc:getIpamIpamScopes\n      arguments:\n        ipamScopeName: ${defaultIpamIpamScope.ipamScopeName}\noutputs:\n  alicloudVpcIpamIpamScopeExampleId: ${defaultGetIpamIpamScopes.scopes[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpamIpamScopes.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ipam Scope IDs.\n"},"ipamId":{"type":"string","description":"The id of the Ipam instance.\n"},"ipamScopeId":{"type":"string","description":"The first ID of the resource.\n"},"ipamScopeName":{"type":"string","description":"The name of the resource.\n"},"ipamScopeType":{"type":"string","description":"IPAM scope of action type:**private**.\u003e Currently, only the role scope of the private network is supported.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpamIpamScopes.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Ipam Scope IDs.\n","items":{"type":"string"},"type":"array"},"ipamId":{"description":"The id of the Ipam instance.\n","type":"string"},"ipamScopeId":{"description":"The first ID of the resource.\n","type":"string"},"ipamScopeName":{"description":"The name of the resource.\n","type":"string"},"ipamScopeType":{"description":"IPAM scope of action type:**private**.\u003e Currently, only the role scope of the private network is supported.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Ipam Scopes.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"description":"The ID of the resource group.\n","type":"string"},"scopes":{"description":"A list of Ipam Scope Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getIpamIpamScopesScope:getIpamIpamScopesScope"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"The tag of the resource.\n","type":"object"}},"required":["ids","names","scopes","id"],"type":"object"}},"alicloud:vpc/getIpamIpams:getIpamIpams":{"description":"This data source provides Vpc Ipam Ipam available to the user.[What is Ipam](https://next.api.alibabacloud.com/document/VpcIpam/2023-02-28/CreateIpam)\n\n\u003e **NOTE:** Available since v1.241.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst _default = alicloud.resourcemanager.getResourceGroups({});\nconst defaultIpamIpam = new alicloud.vpc.IpamIpam(\"default\", {\n    ipamDescription: \"This is my first Ipam.\",\n    ipamName: name,\n    operatingRegionLists: [\"cn-hangzhou\"],\n});\nconst defaultGetIpamIpams = pulumi.all([defaultIpamIpam.id, defaultIpamIpam.ipamName]).apply(([id, ipamName]) =\u003e alicloud.vpc.getIpamIpamsOutput({\n    ids: [id],\n    nameRegex: ipamName,\n    ipamName: name,\n}));\nexport const alicloudVpcIpamIpamExampleId = defaultGetIpamIpams.apply(defaultGetIpamIpams =\u003e defaultGetIpamIpams.ipams?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\ndefault = alicloud.resourcemanager.get_resource_groups()\ndefault_ipam_ipam = alicloud.vpc.IpamIpam(\"default\",\n    ipam_description=\"This is my first Ipam.\",\n    ipam_name=name,\n    operating_region_lists=[\"cn-hangzhou\"])\ndefault_get_ipam_ipams = pulumi.Output.all(\n    id=default_ipam_ipam.id,\n    ipam_name=default_ipam_ipam.ipam_name\n).apply(lambda resolved_outputs: alicloud.vpc.get_ipam_ipams_output(ids=[resolved_outputs['id']],\n    name_regex=resolved_outputs['ipam_name'],\n    ipam_name=name))\n\npulumi.export(\"alicloudVpcIpamIpamExampleId\", default_get_ipam_ipams.ipams[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke();\n\n    var defaultIpamIpam = new AliCloud.Vpc.IpamIpam(\"default\", new()\n    {\n        IpamDescription = \"This is my first Ipam.\",\n        IpamName = name,\n        OperatingRegionLists = new[]\n        {\n            \"cn-hangzhou\",\n        },\n    });\n\n    var defaultGetIpamIpams = AliCloud.Vpc.GetIpamIpams.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultIpamIpam.Id,\n        },\n        NameRegex = defaultIpamIpam.IpamName,\n        IpamName = name,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudVpcIpamIpamExampleId\"] = defaultGetIpamIpams.Apply(getIpamIpamsResult =\u003e getIpamIpamsResult.Ipams[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"terraform-example\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := resourcemanager.GetResourceGroups(ctx, \u0026resourcemanager.GetResourceGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultIpamIpam, err := vpc.NewIpamIpam(ctx, \"default\", \u0026vpc.IpamIpamArgs{\n\t\t\tIpamDescription: pulumi.String(\"This is my first Ipam.\"),\n\t\t\tIpamName:        pulumi.String(name),\n\t\t\tOperatingRegionLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"cn-hangzhou\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetIpamIpams := pulumi.All(defaultIpamIpam.ID(), defaultIpamIpam.IpamName).ApplyT(func(_args []interface{}) (vpc.GetIpamIpamsResult, error) {\n\t\t\tid := _args[0].(string)\n\t\t\tipamName := _args[1].(*string)\n\t\t\treturn vpc.GetIpamIpamsResult(interface{}(vpc.GetIpamIpams(ctx, \u0026vpc.GetIpamIpamsArgs{\n\t\t\t\tIds: []string{\n\t\t\t\t\tid,\n\t\t\t\t},\n\t\t\t\tNameRegex: pulumi.StringRef(pulumi.StringRef(ipamName)),\n\t\t\t\tIpamName:  pulumi.StringRef(pulumi.StringRef(name)),\n\t\t\t}, nil))), nil\n\t\t}).(vpc.GetIpamIpamsResultOutput)\n\t\tctx.Export(\"alicloudVpcIpamIpamExampleId\", defaultGetIpamIpams.ApplyT(func(defaultGetIpamIpams vpc.GetIpamIpamsResult) (*string, error) {\n\t\t\treturn \u0026defaultGetIpamIpams.Ipams[0].Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;\nimport com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;\nimport com.pulumi.alicloud.vpc.IpamIpam;\nimport com.pulumi.alicloud.vpc.IpamIpamArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetIpamIpamsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var default = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()\n            .build());\n\n        var defaultIpamIpam = new IpamIpam(\"defaultIpamIpam\", IpamIpamArgs.builder()\n            .ipamDescription(\"This is my first Ipam.\")\n            .ipamName(name)\n            .operatingRegionLists(\"cn-hangzhou\")\n            .build());\n\n        final var defaultGetIpamIpams = Output.tuple(defaultIpamIpam.id(), defaultIpamIpam.ipamName()).applyValue(values -\u003e {\n            var id = values.t1;\n            var ipamName = values.t2;\n            return VpcFunctions.getIpamIpams(GetIpamIpamsArgs.builder()\n                .ids(id)\n                .nameRegex(ipamName)\n                .ipamName(name)\n                .build());\n        });\n\n        ctx.export(\"alicloudVpcIpamIpamExampleId\", defaultGetIpamIpams.applyValue(_defaultGetIpamIpams -\u003e _defaultGetIpamIpams.ipams()[0].id()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: terraform-example\nresources:\n  defaultIpamIpam:\n    type: alicloud:vpc:IpamIpam\n    name: default\n    properties:\n      ipamDescription: This is my first Ipam.\n      ipamName: ${name}\n      operatingRegionLists:\n        - cn-hangzhou\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:resourcemanager:getResourceGroups\n      arguments: {}\n  defaultGetIpamIpams:\n    fn::invoke:\n      function: alicloud:vpc:getIpamIpams\n      arguments:\n        ids:\n          - ${defaultIpamIpam.id}\n        nameRegex: ${defaultIpamIpam.ipamName}\n        ipamName: ${name}\noutputs:\n  alicloudVpcIpamIpamExampleId: ${defaultGetIpamIpams.ipams[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpamIpams.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ipam IDs.\n"},"ipamId":{"type":"string","description":"The first ID of the resource.\n"},"ipamName":{"type":"string","description":"The name of the resource.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tag of the resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpamIpams.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Ipam IDs.\n","items":{"type":"string"},"type":"array"},"ipamId":{"description":"The first ID of the resource.\n","type":"string"},"ipamName":{"description":"The name of the resource.\n","type":"string"},"ipams":{"description":"A list of Ipam Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getIpamIpamsIpam:getIpamIpamsIpam"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Ipams.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"description":"The ID of the resource group.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tag of the resource.\n","type":"object"}},"required":["ids","ipams","names","id"],"type":"object"}},"alicloud:vpc/getIpsecServers:getIpsecServers":{"description":"This data source provides the Vpn Ipsec Servers of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.161.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getIpsecServers({\n    ids: [\"example_id\"],\n});\nexport const vpnIpsecServerId1 = ids.then(ids =\u003e ids.servers?.[0]?.id);\nconst nameRegex = alicloud.vpc.getIpsecServers({\n    nameRegex: \"^my-IpsecServer\",\n});\nexport const vpnIpsecServerId2 = nameRegex.then(nameRegex =\u003e nameRegex.servers?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_ipsec_servers(ids=[\"example_id\"])\npulumi.export(\"vpnIpsecServerId1\", ids.servers[0].id)\nname_regex = alicloud.vpc.get_ipsec_servers(name_regex=\"^my-IpsecServer\")\npulumi.export(\"vpnIpsecServerId2\", name_regex.servers[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetIpsecServers.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Vpc.GetIpsecServers.Invoke(new()\n    {\n        NameRegex = \"^my-IpsecServer\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpnIpsecServerId1\"] = ids.Apply(getIpsecServersResult =\u003e getIpsecServersResult.Servers[0]?.Id),\n        [\"vpnIpsecServerId2\"] = nameRegex.Apply(getIpsecServersResult =\u003e getIpsecServersResult.Servers[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetIpsecServers(ctx, \u0026vpc.GetIpsecServersArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpnIpsecServerId1\", ids.Servers[0].Id)\n\t\tnameRegex, err := vpc.GetIpsecServers(ctx, \u0026vpc.GetIpsecServersArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-IpsecServer\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpnIpsecServerId2\", nameRegex.Servers[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetIpsecServersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getIpsecServers(GetIpsecServersArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"vpnIpsecServerId1\", ids.servers()[0].id());\n        final var nameRegex = VpcFunctions.getIpsecServers(GetIpsecServersArgs.builder()\n            .nameRegex(\"^my-IpsecServer\")\n            .build());\n\n        ctx.export(\"vpnIpsecServerId2\", nameRegex.servers()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getIpsecServers\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:vpc:getIpsecServers\n      arguments:\n        nameRegex: ^my-IpsecServer\noutputs:\n  vpnIpsecServerId1: ${ids.servers[0].id}\n  vpnIpsecServerId2: ${nameRegex.servers[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpsecServers.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ipsec Server IDs.\n"},"ipsecServerName":{"type":"string","description":"The name of the IPsec server.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Ipsec Server name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"vpnGatewayId":{"type":"string","description":"The ID of the VPN gateway.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpsecServers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"ipsecServerName":{"description":"The name of the IPsec server.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Ipsec Server names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"servers":{"description":"A list of Vpn Ipsec Servers. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getIpsecServersServer:getIpsecServersServer"},"type":"array"},"vpnGatewayId":{"description":"The ID of the VPN gateway.\n","type":"string"}},"required":["ids","names","servers","id"],"type":"object"}},"alicloud:vpc/getIpv4Gateways:getIpv4Gateways":{"description":"This data source provides the Vpc Ipv4 Gateways of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.181.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getIpv4Gateways({});\nexport const vpcIpv4GatewayId1 = ids.then(ids =\u003e ids.gateways?.[0]?.id);\nconst nameRegex = alicloud.vpc.getIpv4Gateways({\n    nameRegex: \"^my-Ipv4Gateway\",\n});\nexport const vpcIpv4GatewayId2 = nameRegex.then(nameRegex =\u003e nameRegex.gateways?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_ipv4_gateways()\npulumi.export(\"vpcIpv4GatewayId1\", ids.gateways[0].id)\nname_regex = alicloud.vpc.get_ipv4_gateways(name_regex=\"^my-Ipv4Gateway\")\npulumi.export(\"vpcIpv4GatewayId2\", name_regex.gateways[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetIpv4Gateways.Invoke();\n\n    var nameRegex = AliCloud.Vpc.GetIpv4Gateways.Invoke(new()\n    {\n        NameRegex = \"^my-Ipv4Gateway\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcIpv4GatewayId1\"] = ids.Apply(getIpv4GatewaysResult =\u003e getIpv4GatewaysResult.Gateways[0]?.Id),\n        [\"vpcIpv4GatewayId2\"] = nameRegex.Apply(getIpv4GatewaysResult =\u003e getIpv4GatewaysResult.Gateways[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetIpv4Gateways(ctx, \u0026vpc.GetIpv4GatewaysArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv4GatewayId1\", ids.Gateways[0].Id)\n\t\tnameRegex, err := vpc.GetIpv4Gateways(ctx, \u0026vpc.GetIpv4GatewaysArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Ipv4Gateway\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv4GatewayId2\", nameRegex.Gateways[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetIpv4GatewaysArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getIpv4Gateways(GetIpv4GatewaysArgs.builder()\n            .build());\n\n        ctx.export(\"vpcIpv4GatewayId1\", ids.gateways()[0].id());\n        final var nameRegex = VpcFunctions.getIpv4Gateways(GetIpv4GatewaysArgs.builder()\n            .nameRegex(\"^my-Ipv4Gateway\")\n            .build());\n\n        ctx.export(\"vpcIpv4GatewayId2\", nameRegex.gateways()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getIpv4Gateways\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:vpc:getIpv4Gateways\n      arguments:\n        nameRegex: ^my-Ipv4Gateway\noutputs:\n  vpcIpv4GatewayId1: ${ids.gateways[0].id}\n  vpcIpv4GatewayId2: ${nameRegex.gateways[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpv4Gateways.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ipv4 Gateway IDs.\n"},"ipv4GatewayName":{"type":"string","description":"The name of the IPv4 gateway.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Ipv4 Gateway name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Creating`, `Created`, `Deleting`, `Pending`, `Deleted`.\n"},"vpcId":{"type":"string","description":"The ID of the VPC associated with the IPv4 Gateway.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpv4Gateways.\n","properties":{"gateways":{"items":{"$ref":"#/types/alicloud:vpc/getIpv4GatewaysGateway:getIpv4GatewaysGateway"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"ipv4GatewayName":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"},"vpcId":{"type":"string"}},"required":["gateways","ids","names","id"],"type":"object"}},"alicloud:vpc/getIpv6Addresses:getIpv6Addresses":{"description":"This data source provides the Vpc Ipv6 Addresses of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.142.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst associatedInstanceId = alicloud.vpc.getIpv6Addresses({\n    associatedInstanceId: \"example_value\",\n});\nexport const vpcIpv6AddressId1 = associatedInstanceId.then(associatedInstanceId =\u003e associatedInstanceId.addresses?.[0]?.id);\nconst vswitchId = alicloud.vpc.getIpv6Addresses({\n    vswitchId: \"example_value\",\n});\nexport const vpcIpv6AddressId2 = vswitchId.then(vswitchId =\u003e vswitchId.addresses?.[0]?.id);\nconst vpcId = alicloud.vpc.getIpv6Addresses({\n    vpcId: \"example_value\",\n});\nexport const vpcIpv6AddressId3 = vpcId.then(vpcId =\u003e vpcId.addresses?.[0]?.id);\nconst status = alicloud.vpc.getIpv6Addresses({\n    status: \"Available\",\n});\nexport const vpcIpv6AddressId4 = status.then(status =\u003e status.addresses?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nassociated_instance_id = alicloud.vpc.get_ipv6_addresses(associated_instance_id=\"example_value\")\npulumi.export(\"vpcIpv6AddressId1\", associated_instance_id.addresses[0].id)\nvswitch_id = alicloud.vpc.get_ipv6_addresses(vswitch_id=\"example_value\")\npulumi.export(\"vpcIpv6AddressId2\", vswitch_id.addresses[0].id)\nvpc_id = alicloud.vpc.get_ipv6_addresses(vpc_id=\"example_value\")\npulumi.export(\"vpcIpv6AddressId3\", vpc_id.addresses[0].id)\nstatus = alicloud.vpc.get_ipv6_addresses(status=\"Available\")\npulumi.export(\"vpcIpv6AddressId4\", status.addresses[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var associatedInstanceId = AliCloud.Vpc.GetIpv6Addresses.Invoke(new()\n    {\n        AssociatedInstanceId = \"example_value\",\n    });\n\n    var vswitchId = AliCloud.Vpc.GetIpv6Addresses.Invoke(new()\n    {\n        VswitchId = \"example_value\",\n    });\n\n    var vpcId = AliCloud.Vpc.GetIpv6Addresses.Invoke(new()\n    {\n        VpcId = \"example_value\",\n    });\n\n    var status = AliCloud.Vpc.GetIpv6Addresses.Invoke(new()\n    {\n        Status = \"Available\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcIpv6AddressId1\"] = associatedInstanceId.Apply(getIpv6AddressesResult =\u003e getIpv6AddressesResult.Addresses[0]?.Id),\n        [\"vpcIpv6AddressId2\"] = vswitchId.Apply(getIpv6AddressesResult =\u003e getIpv6AddressesResult.Addresses[0]?.Id),\n        [\"vpcIpv6AddressId3\"] = vpcId.Apply(getIpv6AddressesResult =\u003e getIpv6AddressesResult.Addresses[0]?.Id),\n        [\"vpcIpv6AddressId4\"] = status.Apply(getIpv6AddressesResult =\u003e getIpv6AddressesResult.Addresses[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tassociatedInstanceId, err := vpc.GetIpv6Addresses(ctx, \u0026vpc.GetIpv6AddressesArgs{\n\t\t\tAssociatedInstanceId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv6AddressId1\", associatedInstanceId.Addresses[0].Id)\n\t\tvswitchId, err := vpc.GetIpv6Addresses(ctx, \u0026vpc.GetIpv6AddressesArgs{\n\t\t\tVswitchId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv6AddressId2\", vswitchId.Addresses[0].Id)\n\t\tvpcId, err := vpc.GetIpv6Addresses(ctx, \u0026vpc.GetIpv6AddressesArgs{\n\t\t\tVpcId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv6AddressId3\", vpcId.Addresses[0].Id)\n\t\tstatus, err := vpc.GetIpv6Addresses(ctx, \u0026vpc.GetIpv6AddressesArgs{\n\t\t\tStatus: pulumi.StringRef(\"Available\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv6AddressId4\", status.Addresses[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetIpv6AddressesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var associatedInstanceId = VpcFunctions.getIpv6Addresses(GetIpv6AddressesArgs.builder()\n            .associatedInstanceId(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcIpv6AddressId1\", associatedInstanceId.addresses()[0].id());\n        final var vswitchId = VpcFunctions.getIpv6Addresses(GetIpv6AddressesArgs.builder()\n            .vswitchId(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcIpv6AddressId2\", vswitchId.addresses()[0].id());\n        final var vpcId = VpcFunctions.getIpv6Addresses(GetIpv6AddressesArgs.builder()\n            .vpcId(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcIpv6AddressId3\", vpcId.addresses()[0].id());\n        final var status = VpcFunctions.getIpv6Addresses(GetIpv6AddressesArgs.builder()\n            .status(\"Available\")\n            .build());\n\n        ctx.export(\"vpcIpv6AddressId4\", status.addresses()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  associatedInstanceId:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6Addresses\n      arguments:\n        associatedInstanceId: example_value\n  vswitchId:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6Addresses\n      arguments:\n        vswitchId: example_value\n  vpcId:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6Addresses\n      arguments:\n        vpcId: example_value\n  status:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6Addresses\n      arguments:\n        status: Available\noutputs:\n  vpcIpv6AddressId1: ${associatedInstanceId.addresses[0].id}\n  vpcIpv6AddressId2: ${vswitchId.addresses[0].id}\n  vpcIpv6AddressId3: ${vpcId.addresses[0].id}\n  vpcIpv6AddressId4: ${status.addresses[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpv6Addresses.\n","properties":{"associatedInstanceId":{"type":"string","description":"The ID of the instance that is assigned the IPv6 address.\n"},"ids":{"type":"array","items":{"type":"string"}},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the IPv6 address. Valid values:`Pending` or `Available`. \n- `Pending`: The IPv6 address is being configured.\n- `Available`: The IPv6 address is available.\n"},"vpcId":{"type":"string","description":"The ID of the VPC to which the IPv6 address belongs.\n"},"vswitchId":{"type":"string","description":"The ID of the vSwitch to which the IPv6 address belongs.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpv6Addresses.\n","properties":{"addresses":{"items":{"$ref":"#/types/alicloud:vpc/getIpv6AddressesAddress:getIpv6AddressesAddress"},"type":"array"},"associatedInstanceId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"},"vpcId":{"type":"string"},"vswitchId":{"type":"string"}},"required":["addresses","ids","names","id"],"type":"object"}},"alicloud:vpc/getIpv6EgressRules:getIpv6EgressRules":{"description":"This data source provides the Vpc Ipv6 Egress Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.142.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getIpv6EgressRules({\n    ipv6GatewayId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const vpcIpv6EgressRuleId1 = ids.then(ids =\u003e ids.rules?.[0]?.id);\nconst nameRegex = alicloud.vpc.getIpv6EgressRules({\n    ipv6GatewayId: \"example_value\",\n    nameRegex: \"^my-Ipv6EgressRule\",\n});\nexport const vpcIpv6EgressRuleId2 = nameRegex.then(nameRegex =\u003e nameRegex.rules?.[0]?.id);\nconst status = alicloud.vpc.getIpv6EgressRules({\n    ipv6GatewayId: \"example_value\",\n    status: \"Available\",\n});\nexport const vpcIpv6EgressRuleId3 = status.then(status =\u003e status.rules?.[0]?.id);\nconst ipv6EgressRuleName = alicloud.vpc.getIpv6EgressRules({\n    ipv6GatewayId: \"example_value\",\n    ipv6EgressRuleName: \"example_value\",\n});\nexport const vpcIpv6EgressRuleId4 = ipv6EgressRuleName.then(ipv6EgressRuleName =\u003e ipv6EgressRuleName.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_ipv6_egress_rules(ipv6_gateway_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"vpcIpv6EgressRuleId1\", ids.rules[0].id)\nname_regex = alicloud.vpc.get_ipv6_egress_rules(ipv6_gateway_id=\"example_value\",\n    name_regex=\"^my-Ipv6EgressRule\")\npulumi.export(\"vpcIpv6EgressRuleId2\", name_regex.rules[0].id)\nstatus = alicloud.vpc.get_ipv6_egress_rules(ipv6_gateway_id=\"example_value\",\n    status=\"Available\")\npulumi.export(\"vpcIpv6EgressRuleId3\", status.rules[0].id)\nipv6_egress_rule_name = alicloud.vpc.get_ipv6_egress_rules(ipv6_gateway_id=\"example_value\",\n    ipv6_egress_rule_name=\"example_value\")\npulumi.export(\"vpcIpv6EgressRuleId4\", ipv6_egress_rule_name.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetIpv6EgressRules.Invoke(new()\n    {\n        Ipv6GatewayId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.Vpc.GetIpv6EgressRules.Invoke(new()\n    {\n        Ipv6GatewayId = \"example_value\",\n        NameRegex = \"^my-Ipv6EgressRule\",\n    });\n\n    var status = AliCloud.Vpc.GetIpv6EgressRules.Invoke(new()\n    {\n        Ipv6GatewayId = \"example_value\",\n        Status = \"Available\",\n    });\n\n    var ipv6EgressRuleName = AliCloud.Vpc.GetIpv6EgressRules.Invoke(new()\n    {\n        Ipv6GatewayId = \"example_value\",\n        Ipv6EgressRuleName = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcIpv6EgressRuleId1\"] = ids.Apply(getIpv6EgressRulesResult =\u003e getIpv6EgressRulesResult.Rules[0]?.Id),\n        [\"vpcIpv6EgressRuleId2\"] = nameRegex.Apply(getIpv6EgressRulesResult =\u003e getIpv6EgressRulesResult.Rules[0]?.Id),\n        [\"vpcIpv6EgressRuleId3\"] = status.Apply(getIpv6EgressRulesResult =\u003e getIpv6EgressRulesResult.Rules[0]?.Id),\n        [\"vpcIpv6EgressRuleId4\"] = ipv6EgressRuleName.Apply(getIpv6EgressRulesResult =\u003e getIpv6EgressRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetIpv6EgressRules(ctx, \u0026vpc.GetIpv6EgressRulesArgs{\n\t\t\tIpv6GatewayId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv6EgressRuleId1\", ids.Rules[0].Id)\n\t\tnameRegex, err := vpc.GetIpv6EgressRules(ctx, \u0026vpc.GetIpv6EgressRulesArgs{\n\t\t\tIpv6GatewayId: \"example_value\",\n\t\t\tNameRegex:     pulumi.StringRef(\"^my-Ipv6EgressRule\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv6EgressRuleId2\", nameRegex.Rules[0].Id)\n\t\tstatus, err := vpc.GetIpv6EgressRules(ctx, \u0026vpc.GetIpv6EgressRulesArgs{\n\t\t\tIpv6GatewayId: \"example_value\",\n\t\t\tStatus:        pulumi.StringRef(\"Available\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv6EgressRuleId3\", status.Rules[0].Id)\n\t\tipv6EgressRuleName, err := vpc.GetIpv6EgressRules(ctx, \u0026vpc.GetIpv6EgressRulesArgs{\n\t\t\tIpv6GatewayId:      \"example_value\",\n\t\t\tIpv6EgressRuleName: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv6EgressRuleId4\", ipv6EgressRuleName.Rules[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetIpv6EgressRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getIpv6EgressRules(GetIpv6EgressRulesArgs.builder()\n            .ipv6GatewayId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"vpcIpv6EgressRuleId1\", ids.rules()[0].id());\n        final var nameRegex = VpcFunctions.getIpv6EgressRules(GetIpv6EgressRulesArgs.builder()\n            .ipv6GatewayId(\"example_value\")\n            .nameRegex(\"^my-Ipv6EgressRule\")\n            .build());\n\n        ctx.export(\"vpcIpv6EgressRuleId2\", nameRegex.rules()[0].id());\n        final var status = VpcFunctions.getIpv6EgressRules(GetIpv6EgressRulesArgs.builder()\n            .ipv6GatewayId(\"example_value\")\n            .status(\"Available\")\n            .build());\n\n        ctx.export(\"vpcIpv6EgressRuleId3\", status.rules()[0].id());\n        final var ipv6EgressRuleName = VpcFunctions.getIpv6EgressRules(GetIpv6EgressRulesArgs.builder()\n            .ipv6GatewayId(\"example_value\")\n            .ipv6EgressRuleName(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcIpv6EgressRuleId4\", ipv6EgressRuleName.rules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6EgressRules\n      arguments:\n        ipv6GatewayId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6EgressRules\n      arguments:\n        ipv6GatewayId: example_value\n        nameRegex: ^my-Ipv6EgressRule\n  status:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6EgressRules\n      arguments:\n        ipv6GatewayId: example_value\n        status: Available\n  ipv6EgressRuleName:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6EgressRules\n      arguments:\n        ipv6GatewayId: example_value\n        ipv6EgressRuleName: example_value\noutputs:\n  vpcIpv6EgressRuleId1: ${ids.rules[0].id}\n  vpcIpv6EgressRuleId2: ${nameRegex.rules[0].id}\n  vpcIpv6EgressRuleId3: ${status.rules[0].id}\n  vpcIpv6EgressRuleId4: ${ipv6EgressRuleName.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpv6EgressRules.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ipv6 Egress Rule IDs.\n"},"instanceId":{"type":"string","description":"The ID of the instance that is associated with the IPv6 address to which the egress-only rule is applied.\n"},"ipv6EgressRuleName":{"type":"string","description":"The name of the resource.\n"},"ipv6GatewayId":{"type":"string","description":"The ID of the IPv6 gateway.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Ipv6 Egress Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Available`, `Deleting`, `Pending`.\n"}},"type":"object","required":["ipv6GatewayId"]},"outputs":{"description":"A collection of values returned by getIpv6EgressRules.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"ipv6EgressRuleName":{"type":"string"},"ipv6GatewayId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"rules":{"items":{"$ref":"#/types/alicloud:vpc/getIpv6EgressRulesRule:getIpv6EgressRulesRule"},"type":"array"},"status":{"type":"string"}},"required":["ids","ipv6GatewayId","names","rules","id"],"type":"object"}},"alicloud:vpc/getIpv6Gateways:getIpv6Gateways":{"description":"This data source provides the Vpc Ipv6 Gateways of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.142.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getIpv6Gateways({\n    ids: [\"example_id\"],\n});\nexport const vpcIpv6GatewayId1 = ids.then(ids =\u003e ids.gateways?.[0]?.id);\nconst nameRegex = alicloud.vpc.getIpv6Gateways({\n    nameRegex: \"^my-Ipv6Gateway\",\n});\nexport const vpcIpv6GatewayId2 = nameRegex.then(nameRegex =\u003e nameRegex.gateways?.[0]?.id);\nconst vpcId = alicloud.vpc.getIpv6Gateways({\n    ids: [\"example_id\"],\n    vpcId: \"example_value\",\n});\nexport const vpcIpv6GatewayId3 = vpcId.then(vpcId =\u003e vpcId.gateways?.[0]?.id);\nconst status = alicloud.vpc.getIpv6Gateways({\n    ids: [\"example_id\"],\n    status: \"Available\",\n});\nexport const vpcIpv6GatewayId4 = status.then(status =\u003e status.gateways?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_ipv6_gateways(ids=[\"example_id\"])\npulumi.export(\"vpcIpv6GatewayId1\", ids.gateways[0].id)\nname_regex = alicloud.vpc.get_ipv6_gateways(name_regex=\"^my-Ipv6Gateway\")\npulumi.export(\"vpcIpv6GatewayId2\", name_regex.gateways[0].id)\nvpc_id = alicloud.vpc.get_ipv6_gateways(ids=[\"example_id\"],\n    vpc_id=\"example_value\")\npulumi.export(\"vpcIpv6GatewayId3\", vpc_id.gateways[0].id)\nstatus = alicloud.vpc.get_ipv6_gateways(ids=[\"example_id\"],\n    status=\"Available\")\npulumi.export(\"vpcIpv6GatewayId4\", status.gateways[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetIpv6Gateways.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Vpc.GetIpv6Gateways.Invoke(new()\n    {\n        NameRegex = \"^my-Ipv6Gateway\",\n    });\n\n    var vpcId = AliCloud.Vpc.GetIpv6Gateways.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        VpcId = \"example_value\",\n    });\n\n    var status = AliCloud.Vpc.GetIpv6Gateways.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        Status = \"Available\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcIpv6GatewayId1\"] = ids.Apply(getIpv6GatewaysResult =\u003e getIpv6GatewaysResult.Gateways[0]?.Id),\n        [\"vpcIpv6GatewayId2\"] = nameRegex.Apply(getIpv6GatewaysResult =\u003e getIpv6GatewaysResult.Gateways[0]?.Id),\n        [\"vpcIpv6GatewayId3\"] = vpcId.Apply(getIpv6GatewaysResult =\u003e getIpv6GatewaysResult.Gateways[0]?.Id),\n        [\"vpcIpv6GatewayId4\"] = status.Apply(getIpv6GatewaysResult =\u003e getIpv6GatewaysResult.Gateways[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetIpv6Gateways(ctx, \u0026vpc.GetIpv6GatewaysArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv6GatewayId1\", ids.Gateways[0].Id)\n\t\tnameRegex, err := vpc.GetIpv6Gateways(ctx, \u0026vpc.GetIpv6GatewaysArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-Ipv6Gateway\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv6GatewayId2\", nameRegex.Gateways[0].Id)\n\t\tvpcId, err := vpc.GetIpv6Gateways(ctx, \u0026vpc.GetIpv6GatewaysArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tVpcId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv6GatewayId3\", vpcId.Gateways[0].Id)\n\t\tstatus, err := vpc.GetIpv6Gateways(ctx, \u0026vpc.GetIpv6GatewaysArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tStatus: pulumi.StringRef(\"Available\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv6GatewayId4\", status.Gateways[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetIpv6GatewaysArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getIpv6Gateways(GetIpv6GatewaysArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"vpcIpv6GatewayId1\", ids.gateways()[0].id());\n        final var nameRegex = VpcFunctions.getIpv6Gateways(GetIpv6GatewaysArgs.builder()\n            .nameRegex(\"^my-Ipv6Gateway\")\n            .build());\n\n        ctx.export(\"vpcIpv6GatewayId2\", nameRegex.gateways()[0].id());\n        final var vpcId = VpcFunctions.getIpv6Gateways(GetIpv6GatewaysArgs.builder()\n            .ids(\"example_id\")\n            .vpcId(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcIpv6GatewayId3\", vpcId.gateways()[0].id());\n        final var status = VpcFunctions.getIpv6Gateways(GetIpv6GatewaysArgs.builder()\n            .ids(\"example_id\")\n            .status(\"Available\")\n            .build());\n\n        ctx.export(\"vpcIpv6GatewayId4\", status.gateways()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6Gateways\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6Gateways\n      arguments:\n        nameRegex: ^my-Ipv6Gateway\n  vpcId:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6Gateways\n      arguments:\n        ids:\n          - example_id\n        vpcId: example_value\n  status:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6Gateways\n      arguments:\n        ids:\n          - example_id\n        status: Available\noutputs:\n  vpcIpv6GatewayId1: ${ids.gateways[0].id}\n  vpcIpv6GatewayId2: ${nameRegex.gateways[0].id}\n  vpcIpv6GatewayId3: ${vpcId.gateways[0].id}\n  vpcIpv6GatewayId4: ${status.gateways[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpv6Gateways.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ipv6 Gateway IDs.\n"},"ipv6GatewayName":{"type":"string","description":"The name of the IPv6 gateway.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Ipv6 Gateway name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Available`, `Deleting`, `Pending`.\n"},"vpcId":{"type":"string","description":"The ID of the virtual private cloud (VPC) to which the IPv6 gateway belongs.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpv6Gateways.\n","properties":{"gateways":{"items":{"$ref":"#/types/alicloud:vpc/getIpv6GatewaysGateway:getIpv6GatewaysGateway"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"ipv6GatewayName":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"},"vpcId":{"type":"string"}},"required":["gateways","ids","names","id"],"type":"object"}},"alicloud:vpc/getIpv6InternetBandwidths:getIpv6InternetBandwidths":{"description":"This data source provides the Vpc Ipv6 Internet Bandwidths of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.143.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getIpv6InternetBandwidths({\n    ids: [\"example_id\"],\n});\nexport const vpcIpv6InternetBandwidthId1 = ids.then(ids =\u003e ids.bandwidths?.[0]?.id);\nconst ipv6InternetBandwidthId = alicloud.vpc.getIpv6InternetBandwidths({\n    ipv6InternetBandwidthId: \"example_value\",\n});\nexport const vpcIpv6InternetBandwidthId2 = ipv6InternetBandwidthId.then(ipv6InternetBandwidthId =\u003e ipv6InternetBandwidthId.bandwidths?.[0]?.id);\nconst ipv6AddressId = alicloud.vpc.getIpv6InternetBandwidths({\n    ipv6AddressId: \"example_value\",\n});\nexport const vpcIpv6InternetBandwidthId3 = ipv6AddressId.then(ipv6AddressId =\u003e ipv6AddressId.bandwidths?.[0]?.id);\nconst status = alicloud.vpc.getIpv6InternetBandwidths({\n    status: \"Normal\",\n});\nexport const vpcIpv6InternetBandwidthId4 = status.then(status =\u003e status.bandwidths?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_ipv6_internet_bandwidths(ids=[\"example_id\"])\npulumi.export(\"vpcIpv6InternetBandwidthId1\", ids.bandwidths[0].id)\nipv6_internet_bandwidth_id = alicloud.vpc.get_ipv6_internet_bandwidths(ipv6_internet_bandwidth_id=\"example_value\")\npulumi.export(\"vpcIpv6InternetBandwidthId2\", ipv6_internet_bandwidth_id.bandwidths[0].id)\nipv6_address_id = alicloud.vpc.get_ipv6_internet_bandwidths(ipv6_address_id=\"example_value\")\npulumi.export(\"vpcIpv6InternetBandwidthId3\", ipv6_address_id.bandwidths[0].id)\nstatus = alicloud.vpc.get_ipv6_internet_bandwidths(status=\"Normal\")\npulumi.export(\"vpcIpv6InternetBandwidthId4\", status.bandwidths[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetIpv6InternetBandwidths.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var ipv6InternetBandwidthId = AliCloud.Vpc.GetIpv6InternetBandwidths.Invoke(new()\n    {\n        Ipv6InternetBandwidthId = \"example_value\",\n    });\n\n    var ipv6AddressId = AliCloud.Vpc.GetIpv6InternetBandwidths.Invoke(new()\n    {\n        Ipv6AddressId = \"example_value\",\n    });\n\n    var status = AliCloud.Vpc.GetIpv6InternetBandwidths.Invoke(new()\n    {\n        Status = \"Normal\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcIpv6InternetBandwidthId1\"] = ids.Apply(getIpv6InternetBandwidthsResult =\u003e getIpv6InternetBandwidthsResult.Bandwidths[0]?.Id),\n        [\"vpcIpv6InternetBandwidthId2\"] = ipv6InternetBandwidthId.Apply(getIpv6InternetBandwidthsResult =\u003e getIpv6InternetBandwidthsResult.Bandwidths[0]?.Id),\n        [\"vpcIpv6InternetBandwidthId3\"] = ipv6AddressId.Apply(getIpv6InternetBandwidthsResult =\u003e getIpv6InternetBandwidthsResult.Bandwidths[0]?.Id),\n        [\"vpcIpv6InternetBandwidthId4\"] = status.Apply(getIpv6InternetBandwidthsResult =\u003e getIpv6InternetBandwidthsResult.Bandwidths[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetIpv6InternetBandwidths(ctx, \u0026vpc.GetIpv6InternetBandwidthsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv6InternetBandwidthId1\", ids.Bandwidths[0].Id)\n\t\tipv6InternetBandwidthId, err := vpc.GetIpv6InternetBandwidths(ctx, \u0026vpc.GetIpv6InternetBandwidthsArgs{\n\t\t\tIpv6InternetBandwidthId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv6InternetBandwidthId2\", ipv6InternetBandwidthId.Bandwidths[0].Id)\n\t\tipv6AddressId, err := vpc.GetIpv6InternetBandwidths(ctx, \u0026vpc.GetIpv6InternetBandwidthsArgs{\n\t\t\tIpv6AddressId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv6InternetBandwidthId3\", ipv6AddressId.Bandwidths[0].Id)\n\t\tstatus, err := vpc.GetIpv6InternetBandwidths(ctx, \u0026vpc.GetIpv6InternetBandwidthsArgs{\n\t\t\tStatus: pulumi.StringRef(\"Normal\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcIpv6InternetBandwidthId4\", status.Bandwidths[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetIpv6InternetBandwidthsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getIpv6InternetBandwidths(GetIpv6InternetBandwidthsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"vpcIpv6InternetBandwidthId1\", ids.bandwidths()[0].id());\n        final var ipv6InternetBandwidthId = VpcFunctions.getIpv6InternetBandwidths(GetIpv6InternetBandwidthsArgs.builder()\n            .ipv6InternetBandwidthId(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcIpv6InternetBandwidthId2\", ipv6InternetBandwidthId.bandwidths()[0].id());\n        final var ipv6AddressId = VpcFunctions.getIpv6InternetBandwidths(GetIpv6InternetBandwidthsArgs.builder()\n            .ipv6AddressId(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcIpv6InternetBandwidthId3\", ipv6AddressId.bandwidths()[0].id());\n        final var status = VpcFunctions.getIpv6InternetBandwidths(GetIpv6InternetBandwidthsArgs.builder()\n            .status(\"Normal\")\n            .build());\n\n        ctx.export(\"vpcIpv6InternetBandwidthId4\", status.bandwidths()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6InternetBandwidths\n      arguments:\n        ids:\n          - example_id\n  ipv6InternetBandwidthId:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6InternetBandwidths\n      arguments:\n        ipv6InternetBandwidthId: example_value\n  ipv6AddressId:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6InternetBandwidths\n      arguments:\n        ipv6AddressId: example_value\n  status:\n    fn::invoke:\n      function: alicloud:vpc:getIpv6InternetBandwidths\n      arguments:\n        status: Normal\noutputs:\n  vpcIpv6InternetBandwidthId1: ${ids.bandwidths[0].id}\n  vpcIpv6InternetBandwidthId2: ${ipv6InternetBandwidthId.bandwidths[0].id}\n  vpcIpv6InternetBandwidthId3: ${ipv6AddressId.bandwidths[0].id}\n  vpcIpv6InternetBandwidthId4: ${status.bandwidths[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpv6InternetBandwidths.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Ipv6 Internet Bandwidth IDs.\n"},"ipv6AddressId":{"type":"string","description":"The ID of the IPv6 address.\n"},"ipv6InternetBandwidthId":{"type":"string","description":"The ID of the Ipv6 Internet Bandwidth.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Normal`, `FinancialLocked` and `SecurityLocked`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpv6InternetBandwidths.\n","properties":{"bandwidths":{"items":{"$ref":"#/types/alicloud:vpc/getIpv6InternetBandwidthsBandwidth:getIpv6InternetBandwidthsBandwidth"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"ipv6AddressId":{"type":"string"},"ipv6InternetBandwidthId":{"type":"string"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["bandwidths","ids","id"],"type":"object"}},"alicloud:vpc/getNatGateways:getNatGateways":{"description":"This data source provides a list of Nat Gateways owned by an Alibaba Cloud account.\n\n\u003e **NOTE:** Available since v1.37.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"natGatewaysDatasource\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst fooNetwork = new alicloud.vpc.Network(\"foo\", {\n    vpcName: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst fooNatGateway = new alicloud.vpc.NatGateway(\"foo\", {\n    vpcId: fooNetwork.id,\n    specification: \"Small\",\n    natGatewayName: name,\n});\nconst foo = alicloud.vpc.getNatGatewaysOutput({\n    vpcId: fooNetwork.id,\n    nameRegex: fooNatGateway.name,\n    ids: [fooNatGateway.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"natGatewaysDatasource\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nfoo_network = alicloud.vpc.Network(\"foo\",\n    vpc_name=name,\n    cidr_block=\"172.16.0.0/12\")\nfoo_nat_gateway = alicloud.vpc.NatGateway(\"foo\",\n    vpc_id=foo_network.id,\n    specification=\"Small\",\n    nat_gateway_name=name)\nfoo = alicloud.vpc.get_nat_gateways_output(vpc_id=foo_network.id,\n    name_regex=foo_nat_gateway.name,\n    ids=[foo_nat_gateway.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"natGatewaysDatasource\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var fooNetwork = new AliCloud.Vpc.Network(\"foo\", new()\n    {\n        VpcName = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var fooNatGateway = new AliCloud.Vpc.NatGateway(\"foo\", new()\n    {\n        VpcId = fooNetwork.Id,\n        Specification = \"Small\",\n        NatGatewayName = name,\n    });\n\n    var foo = AliCloud.Vpc.GetNatGateways.Invoke(new()\n    {\n        VpcId = fooNetwork.Id,\n        NameRegex = fooNatGateway.Name,\n        Ids = new[]\n        {\n            fooNatGateway.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"natGatewaysDatasource\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooNetwork, err := vpc.NewNetwork(ctx, \"foo\", \u0026vpc.NetworkArgs{\n\t\t\tVpcName:   pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooNatGateway, err := vpc.NewNatGateway(ctx, \"foo\", \u0026vpc.NatGatewayArgs{\n\t\t\tVpcId:          fooNetwork.ID(),\n\t\t\tSpecification:  pulumi.String(\"Small\"),\n\t\t\tNatGatewayName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = vpc.GetNatGatewaysOutput(ctx, vpc.GetNatGatewaysOutputArgs{\n\t\t\tVpcId:     fooNetwork.ID(),\n\t\t\tNameRegex: fooNatGateway.Name,\n\t\t\tIds: pulumi.StringArray{\n\t\t\t\tfooNatGateway.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.NatGateway;\nimport com.pulumi.alicloud.vpc.NatGatewayArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNatGatewaysArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"natGatewaysDatasource\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var fooNetwork = new Network(\"fooNetwork\", NetworkArgs.builder()\n            .vpcName(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var fooNatGateway = new NatGateway(\"fooNatGateway\", NatGatewayArgs.builder()\n            .vpcId(fooNetwork.id())\n            .specification(\"Small\")\n            .natGatewayName(name)\n            .build());\n\n        final var foo = VpcFunctions.getNatGateways(GetNatGatewaysArgs.builder()\n            .vpcId(fooNetwork.id())\n            .nameRegex(fooNatGateway.name())\n            .ids(fooNatGateway.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: natGatewaysDatasource\nresources:\n  fooNetwork:\n    type: alicloud:vpc:Network\n    name: foo\n    properties:\n      vpcName: ${name}\n      cidrBlock: 172.16.0.0/12\n  fooNatGateway:\n    type: alicloud:vpc:NatGateway\n    name: foo\n    properties:\n      vpcId: ${fooNetwork.id}\n      specification: Small\n      natGatewayName: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  foo:\n    fn::invoke:\n      function: alicloud:vpc:getNatGateways\n      arguments:\n        vpcId: ${fooNetwork.id}\n        nameRegex: ${fooNatGateway.name}\n        ids:\n          - ${fooNatGateway.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNatGateways.\n","properties":{"dryRun":{"type":"boolean","description":"Specifies whether to only precheck the request.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of NAT gateways IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter nat gateways by name.\n"},"natGatewayName":{"type":"string","description":"The name of NAT gateway.\n"},"natType":{"type":"string","description":"The nat type of NAT gateway. Valid values `Enhanced` and `Normal`.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"paymentType":{"type":"string","description":"The payment type of NAT gateway. Valid values `PayAsYouGo` and `Subscription`.\n"},"resourceGroupId":{"type":"string","description":"The resource group id of NAT gateway.\n"},"specification":{"type":"string","description":"The specification of NAT gateway. Valid values `Middle`, `Large`, `Small` and `XLarge.1`. Default value is `Small`.\n"},"status":{"type":"string","description":"The status of NAT gateway. Valid values `Available`, `Converting`, `Creating`, `Deleting` and `Modifying`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags of NAT gateway.\n"},"vpcId":{"type":"string","description":"The ID of the VPC.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNatGateways.\n","properties":{"dryRun":{"type":"boolean"},"enableDetails":{"type":"boolean"},"gateways":{"description":"A list of Nat gateways. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getNatGatewaysGateway:getNatGatewaysGateway"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"(Optional) A list of Nat gateways IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Nat gateways names.\n","items":{"type":"string"},"type":"array"},"natGatewayName":{"description":"The name of the NAT gateway.\n","type":"string"},"natType":{"description":"The type of the NAT gateway.\n","type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"paymentType":{"description":"The billing method of the NAT gateway.\n","type":"string"},"resourceGroupId":{"description":"The ID of the resource group.\n","type":"string"},"specification":{"description":"The specification of the NAT gateway.\n","type":"string"},"status":{"description":"The status of the NAT gateway.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The tags of NAT gateway.\n","type":"object"},"totalCount":{"type":"integer"},"vpcId":{"description":"The ID of the VPC.\n","type":"string"}},"required":["gateways","ids","names","totalCount","id"],"type":"object"}},"alicloud:vpc/getNatIpCidrs:getNatIpCidrs":{"description":"This data source provides the Vpc Nat Ip Cidrs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.136.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getNatIpCidrs({\n    natGatewayId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const vpcNatIpCidrId1 = ids.then(ids =\u003e ids.cidrs?.[0]?.id);\nconst nameRegex = alicloud.vpc.getNatIpCidrs({\n    natGatewayId: \"example_value\",\n    nameRegex: \"^my-NatIpCidr\",\n});\nexport const vpcNatIpCidrId2 = nameRegex.then(nameRegex =\u003e nameRegex.cidrs?.[0]?.id);\nconst status = alicloud.vpc.getNatIpCidrs({\n    natGatewayId: \"example_value\",\n    ids: [\"example_value-1\"],\n    status: \"Available\",\n});\nexport const vpcNatIpCidrId3 = status.then(status =\u003e status.cidrs?.[0]?.id);\nconst natIpCidr = alicloud.vpc.getNatIpCidrs({\n    natGatewayId: \"example_value\",\n    natIpCidrs: [\"example_value-1\"],\n});\nexport const vpcNatIpCidrId4 = natIpCidr.then(natIpCidr =\u003e natIpCidr.cidrs?.[0]?.id);\nconst atIpCidrName = alicloud.vpc.getNatIpCidrs({\n    natGatewayId: \"example_value\",\n    natIpCidrNames: [\"example_value-1\"],\n});\nexport const vpcNatIpCidrId5 = atIpCidrName.then(atIpCidrName =\u003e atIpCidrName.cidrs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_nat_ip_cidrs(nat_gateway_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"vpcNatIpCidrId1\", ids.cidrs[0].id)\nname_regex = alicloud.vpc.get_nat_ip_cidrs(nat_gateway_id=\"example_value\",\n    name_regex=\"^my-NatIpCidr\")\npulumi.export(\"vpcNatIpCidrId2\", name_regex.cidrs[0].id)\nstatus = alicloud.vpc.get_nat_ip_cidrs(nat_gateway_id=\"example_value\",\n    ids=[\"example_value-1\"],\n    status=\"Available\")\npulumi.export(\"vpcNatIpCidrId3\", status.cidrs[0].id)\nnat_ip_cidr = alicloud.vpc.get_nat_ip_cidrs(nat_gateway_id=\"example_value\",\n    nat_ip_cidrs=[\"example_value-1\"])\npulumi.export(\"vpcNatIpCidrId4\", nat_ip_cidr.cidrs[0].id)\nat_ip_cidr_name = alicloud.vpc.get_nat_ip_cidrs(nat_gateway_id=\"example_value\",\n    nat_ip_cidr_names=[\"example_value-1\"])\npulumi.export(\"vpcNatIpCidrId5\", at_ip_cidr_name.cidrs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetNatIpCidrs.Invoke(new()\n    {\n        NatGatewayId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.Vpc.GetNatIpCidrs.Invoke(new()\n    {\n        NatGatewayId = \"example_value\",\n        NameRegex = \"^my-NatIpCidr\",\n    });\n\n    var status = AliCloud.Vpc.GetNatIpCidrs.Invoke(new()\n    {\n        NatGatewayId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n        },\n        Status = \"Available\",\n    });\n\n    var natIpCidr = AliCloud.Vpc.GetNatIpCidrs.Invoke(new()\n    {\n        NatGatewayId = \"example_value\",\n        NatIpCidrs = new[]\n        {\n            \"example_value-1\",\n        },\n    });\n\n    var atIpCidrName = AliCloud.Vpc.GetNatIpCidrs.Invoke(new()\n    {\n        NatGatewayId = \"example_value\",\n        NatIpCidrNames = new[]\n        {\n            \"example_value-1\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcNatIpCidrId1\"] = ids.Apply(getNatIpCidrsResult =\u003e getNatIpCidrsResult.Cidrs[0]?.Id),\n        [\"vpcNatIpCidrId2\"] = nameRegex.Apply(getNatIpCidrsResult =\u003e getNatIpCidrsResult.Cidrs[0]?.Id),\n        [\"vpcNatIpCidrId3\"] = status.Apply(getNatIpCidrsResult =\u003e getNatIpCidrsResult.Cidrs[0]?.Id),\n        [\"vpcNatIpCidrId4\"] = natIpCidr.Apply(getNatIpCidrsResult =\u003e getNatIpCidrsResult.Cidrs[0]?.Id),\n        [\"vpcNatIpCidrId5\"] = atIpCidrName.Apply(getNatIpCidrsResult =\u003e getNatIpCidrsResult.Cidrs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetNatIpCidrs(ctx, \u0026vpc.GetNatIpCidrsArgs{\n\t\t\tNatGatewayId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcNatIpCidrId1\", ids.Cidrs[0].Id)\n\t\tnameRegex, err := vpc.GetNatIpCidrs(ctx, \u0026vpc.GetNatIpCidrsArgs{\n\t\t\tNatGatewayId: \"example_value\",\n\t\t\tNameRegex:    pulumi.StringRef(\"^my-NatIpCidr\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcNatIpCidrId2\", nameRegex.Cidrs[0].Id)\n\t\tstatus, err := vpc.GetNatIpCidrs(ctx, \u0026vpc.GetNatIpCidrsArgs{\n\t\t\tNatGatewayId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t},\n\t\t\tStatus: pulumi.StringRef(\"Available\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcNatIpCidrId3\", status.Cidrs[0].Id)\n\t\tnatIpCidr, err := vpc.GetNatIpCidrs(ctx, \u0026vpc.GetNatIpCidrsArgs{\n\t\t\tNatGatewayId: \"example_value\",\n\t\t\tNatIpCidrs: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcNatIpCidrId4\", natIpCidr.Cidrs[0].Id)\n\t\tatIpCidrName, err := vpc.GetNatIpCidrs(ctx, \u0026vpc.GetNatIpCidrsArgs{\n\t\t\tNatGatewayId: \"example_value\",\n\t\t\tNatIpCidrNames: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcNatIpCidrId5\", atIpCidrName.Cidrs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNatIpCidrsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getNatIpCidrs(GetNatIpCidrsArgs.builder()\n            .natGatewayId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"vpcNatIpCidrId1\", ids.cidrs()[0].id());\n        final var nameRegex = VpcFunctions.getNatIpCidrs(GetNatIpCidrsArgs.builder()\n            .natGatewayId(\"example_value\")\n            .nameRegex(\"^my-NatIpCidr\")\n            .build());\n\n        ctx.export(\"vpcNatIpCidrId2\", nameRegex.cidrs()[0].id());\n        final var status = VpcFunctions.getNatIpCidrs(GetNatIpCidrsArgs.builder()\n            .natGatewayId(\"example_value\")\n            .ids(\"example_value-1\")\n            .status(\"Available\")\n            .build());\n\n        ctx.export(\"vpcNatIpCidrId3\", status.cidrs()[0].id());\n        final var natIpCidr = VpcFunctions.getNatIpCidrs(GetNatIpCidrsArgs.builder()\n            .natGatewayId(\"example_value\")\n            .natIpCidrs(\"example_value-1\")\n            .build());\n\n        ctx.export(\"vpcNatIpCidrId4\", natIpCidr.cidrs()[0].id());\n        final var atIpCidrName = VpcFunctions.getNatIpCidrs(GetNatIpCidrsArgs.builder()\n            .natGatewayId(\"example_value\")\n            .natIpCidrNames(\"example_value-1\")\n            .build());\n\n        ctx.export(\"vpcNatIpCidrId5\", atIpCidrName.cidrs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getNatIpCidrs\n      arguments:\n        natGatewayId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:vpc:getNatIpCidrs\n      arguments:\n        natGatewayId: example_value\n        nameRegex: ^my-NatIpCidr\n  status:\n    fn::invoke:\n      function: alicloud:vpc:getNatIpCidrs\n      arguments:\n        natGatewayId: example_value\n        ids:\n          - example_value-1\n        status: Available\n  natIpCidr:\n    fn::invoke:\n      function: alicloud:vpc:getNatIpCidrs\n      arguments:\n        natGatewayId: example_value\n        natIpCidrs:\n          - example_value-1\n  atIpCidrName:\n    fn::invoke:\n      function: alicloud:vpc:getNatIpCidrs\n      arguments:\n        natGatewayId: example_value\n        natIpCidrNames:\n          - example_value-1\noutputs:\n  vpcNatIpCidrId1: ${ids.cidrs[0].id}\n  vpcNatIpCidrId2: ${nameRegex.cidrs[0].id}\n  vpcNatIpCidrId3: ${status.cidrs[0].id}\n  vpcNatIpCidrId4: ${natIpCidr.cidrs[0].id}\n  vpcNatIpCidrId5: ${atIpCidrName.cidrs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNatIpCidrs.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Nat Ip Cidr IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Nat Ip Cidr name.\n"},"natGatewayId":{"type":"string","description":"NAT IP ADDRESS range to the security group of the Kafka VPC NAT gateway instance ID.\n"},"natIpCidrNames":{"type":"array","items":{"type":"string"},"description":"The name of the CIDR block that you want to query. Support up to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n"},"natIpCidrs":{"type":"array","items":{"type":"string"},"description":"The NAT CIDR block to be created. Support up to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e. The CIDR block must meet the following conditions: It must be `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`, or one of their subnets. The subnet mask must be \u003cspan pulumi-lang-nodejs=\"`16`\" pulumi-lang-dotnet=\"`16`\" pulumi-lang-go=\"`16`\" pulumi-lang-python=\"`16`\" pulumi-lang-yaml=\"`16`\" pulumi-lang-java=\"`16`\"\u003e`16`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32`\" pulumi-lang-dotnet=\"`32`\" pulumi-lang-go=\"`32`\" pulumi-lang-python=\"`32`\" pulumi-lang-yaml=\"`32`\" pulumi-lang-java=\"`32`\"\u003e`32`\u003c/span\u003e bits in lengths. To use a public CIDR block as the NAT CIDR block, the VPC to which the VPC NAT gateway belongs must be authorized to use public CIDR blocks. For more information, see [Create a VPC NAT gateway](https://www.alibabacloud.com/help/doc-detail/268230.htm).\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the NAT IP address. Valid values:`Available`.\n"}},"type":"object","required":["natGatewayId"]},"outputs":{"description":"A collection of values returned by getNatIpCidrs.\n","properties":{"cidrs":{"items":{"$ref":"#/types/alicloud:vpc/getNatIpCidrsCidr:getNatIpCidrsCidr"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"natGatewayId":{"type":"string"},"natIpCidrNames":{"items":{"type":"string"},"type":"array"},"natIpCidrs":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["cidrs","ids","names","natGatewayId","id"],"type":"object"}},"alicloud:vpc/getNatIps:getNatIps":{"description":"This data source provides the Vpc Nat Ips of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.136.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getNatIps({\n    natGatewayId: \"example_value\",\n    ids: [\n        \"example_value-1\",\n        \"example_value-2\",\n    ],\n});\nexport const vpcNatIpId1 = ids.then(ids =\u003e ids.ips?.[0]?.id);\nconst nameRegex = alicloud.vpc.getNatIps({\n    natGatewayId: \"example_value\",\n    nameRegex: \"^my-NatIp\",\n});\nexport const vpcNatIpId2 = nameRegex.then(nameRegex =\u003e nameRegex.ips?.[0]?.id);\nconst natIpCidr = alicloud.vpc.getNatIps({\n    natGatewayId: \"example_value\",\n    natIpCidr: \"example_value\",\n    nameRegex: \"^my-NatIp\",\n});\nexport const vpcNatIpId3 = natIpCidr.then(natIpCidr =\u003e natIpCidr.ips?.[0]?.id);\nconst natIpName = alicloud.vpc.getNatIps({\n    natGatewayId: \"example_value\",\n    ids: [\"example_value\"],\n    natIpNames: [\"example_value\"],\n});\nexport const vpcNatIpId4 = natIpName.then(natIpName =\u003e natIpName.ips?.[0]?.id);\nconst natIpIds = alicloud.vpc.getNatIps({\n    natGatewayId: \"example_value\",\n    ids: [\"example_value\"],\n    natIpIds: [\"example_value\"],\n});\nexport const vpcNatIpId5 = natIpIds.then(natIpIds =\u003e natIpIds.ips?.[0]?.id);\nconst status = alicloud.vpc.getNatIps({\n    natGatewayId: \"example_value\",\n    ids: [\"example_value\"],\n    status: \"example_value\",\n});\nexport const vpcNatIpId6 = status.then(status =\u003e status.ips?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_nat_ips(nat_gateway_id=\"example_value\",\n    ids=[\n        \"example_value-1\",\n        \"example_value-2\",\n    ])\npulumi.export(\"vpcNatIpId1\", ids.ips[0].id)\nname_regex = alicloud.vpc.get_nat_ips(nat_gateway_id=\"example_value\",\n    name_regex=\"^my-NatIp\")\npulumi.export(\"vpcNatIpId2\", name_regex.ips[0].id)\nnat_ip_cidr = alicloud.vpc.get_nat_ips(nat_gateway_id=\"example_value\",\n    nat_ip_cidr=\"example_value\",\n    name_regex=\"^my-NatIp\")\npulumi.export(\"vpcNatIpId3\", nat_ip_cidr.ips[0].id)\nnat_ip_name = alicloud.vpc.get_nat_ips(nat_gateway_id=\"example_value\",\n    ids=[\"example_value\"],\n    nat_ip_names=[\"example_value\"])\npulumi.export(\"vpcNatIpId4\", nat_ip_name.ips[0].id)\nnat_ip_ids = alicloud.vpc.get_nat_ips(nat_gateway_id=\"example_value\",\n    ids=[\"example_value\"],\n    nat_ip_ids=[\"example_value\"])\npulumi.export(\"vpcNatIpId5\", nat_ip_ids.ips[0].id)\nstatus = alicloud.vpc.get_nat_ips(nat_gateway_id=\"example_value\",\n    ids=[\"example_value\"],\n    status=\"example_value\")\npulumi.export(\"vpcNatIpId6\", status.ips[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetNatIps.Invoke(new()\n    {\n        NatGatewayId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value-1\",\n            \"example_value-2\",\n        },\n    });\n\n    var nameRegex = AliCloud.Vpc.GetNatIps.Invoke(new()\n    {\n        NatGatewayId = \"example_value\",\n        NameRegex = \"^my-NatIp\",\n    });\n\n    var natIpCidr = AliCloud.Vpc.GetNatIps.Invoke(new()\n    {\n        NatGatewayId = \"example_value\",\n        NatIpCidr = \"example_value\",\n        NameRegex = \"^my-NatIp\",\n    });\n\n    var natIpName = AliCloud.Vpc.GetNatIps.Invoke(new()\n    {\n        NatGatewayId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NatIpNames = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    var natIpIds = AliCloud.Vpc.GetNatIps.Invoke(new()\n    {\n        NatGatewayId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NatIpIds = new[]\n        {\n            \"example_value\",\n        },\n    });\n\n    var status = AliCloud.Vpc.GetNatIps.Invoke(new()\n    {\n        NatGatewayId = \"example_value\",\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        Status = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcNatIpId1\"] = ids.Apply(getNatIpsResult =\u003e getNatIpsResult.Ips[0]?.Id),\n        [\"vpcNatIpId2\"] = nameRegex.Apply(getNatIpsResult =\u003e getNatIpsResult.Ips[0]?.Id),\n        [\"vpcNatIpId3\"] = natIpCidr.Apply(getNatIpsResult =\u003e getNatIpsResult.Ips[0]?.Id),\n        [\"vpcNatIpId4\"] = natIpName.Apply(getNatIpsResult =\u003e getNatIpsResult.Ips[0]?.Id),\n        [\"vpcNatIpId5\"] = natIpIds.Apply(getNatIpsResult =\u003e getNatIpsResult.Ips[0]?.Id),\n        [\"vpcNatIpId6\"] = status.Apply(getNatIpsResult =\u003e getNatIpsResult.Ips[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetNatIps(ctx, \u0026vpc.GetNatIpsArgs{\n\t\t\tNatGatewayId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value-1\",\n\t\t\t\t\"example_value-2\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcNatIpId1\", ids.Ips[0].Id)\n\t\tnameRegex, err := vpc.GetNatIps(ctx, \u0026vpc.GetNatIpsArgs{\n\t\t\tNatGatewayId: \"example_value\",\n\t\t\tNameRegex:    pulumi.StringRef(\"^my-NatIp\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcNatIpId2\", nameRegex.Ips[0].Id)\n\t\tnatIpCidr, err := vpc.GetNatIps(ctx, \u0026vpc.GetNatIpsArgs{\n\t\t\tNatGatewayId: \"example_value\",\n\t\t\tNatIpCidr:    pulumi.StringRef(\"example_value\"),\n\t\t\tNameRegex:    pulumi.StringRef(\"^my-NatIp\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcNatIpId3\", natIpCidr.Ips[0].Id)\n\t\tnatIpName, err := vpc.GetNatIps(ctx, \u0026vpc.GetNatIpsArgs{\n\t\t\tNatGatewayId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNatIpNames: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcNatIpId4\", natIpName.Ips[0].Id)\n\t\tnatIpIds, err := vpc.GetNatIps(ctx, \u0026vpc.GetNatIpsArgs{\n\t\t\tNatGatewayId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNatIpIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcNatIpId5\", natIpIds.Ips[0].Id)\n\t\tstatus, err := vpc.GetNatIps(ctx, \u0026vpc.GetNatIpsArgs{\n\t\t\tNatGatewayId: \"example_value\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tStatus: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcNatIpId6\", status.Ips[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNatIpsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getNatIps(GetNatIpsArgs.builder()\n            .natGatewayId(\"example_value\")\n            .ids(            \n                \"example_value-1\",\n                \"example_value-2\")\n            .build());\n\n        ctx.export(\"vpcNatIpId1\", ids.ips()[0].id());\n        final var nameRegex = VpcFunctions.getNatIps(GetNatIpsArgs.builder()\n            .natGatewayId(\"example_value\")\n            .nameRegex(\"^my-NatIp\")\n            .build());\n\n        ctx.export(\"vpcNatIpId2\", nameRegex.ips()[0].id());\n        final var natIpCidr = VpcFunctions.getNatIps(GetNatIpsArgs.builder()\n            .natGatewayId(\"example_value\")\n            .natIpCidr(\"example_value\")\n            .nameRegex(\"^my-NatIp\")\n            .build());\n\n        ctx.export(\"vpcNatIpId3\", natIpCidr.ips()[0].id());\n        final var natIpName = VpcFunctions.getNatIps(GetNatIpsArgs.builder()\n            .natGatewayId(\"example_value\")\n            .ids(\"example_value\")\n            .natIpNames(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcNatIpId4\", natIpName.ips()[0].id());\n        final var natIpIds = VpcFunctions.getNatIps(GetNatIpsArgs.builder()\n            .natGatewayId(\"example_value\")\n            .ids(\"example_value\")\n            .natIpIds(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcNatIpId5\", natIpIds.ips()[0].id());\n        final var status = VpcFunctions.getNatIps(GetNatIpsArgs.builder()\n            .natGatewayId(\"example_value\")\n            .ids(\"example_value\")\n            .status(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcNatIpId6\", status.ips()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getNatIps\n      arguments:\n        natGatewayId: example_value\n        ids:\n          - example_value-1\n          - example_value-2\n  nameRegex:\n    fn::invoke:\n      function: alicloud:vpc:getNatIps\n      arguments:\n        natGatewayId: example_value\n        nameRegex: ^my-NatIp\n  natIpCidr:\n    fn::invoke:\n      function: alicloud:vpc:getNatIps\n      arguments:\n        natGatewayId: example_value\n        natIpCidr: example_value\n        nameRegex: ^my-NatIp\n  natIpName:\n    fn::invoke:\n      function: alicloud:vpc:getNatIps\n      arguments:\n        natGatewayId: example_value\n        ids:\n          - example_value\n        natIpNames:\n          - example_value\n  natIpIds:\n    fn::invoke:\n      function: alicloud:vpc:getNatIps\n      arguments:\n        natGatewayId: example_value\n        ids:\n          - example_value\n        natIpIds:\n          - example_value\n  status:\n    fn::invoke:\n      function: alicloud:vpc:getNatIps\n      arguments:\n        natGatewayId: example_value\n        ids:\n          - example_value\n        status: example_value\noutputs:\n  vpcNatIpId1: ${ids.ips[0].id}\n  vpcNatIpId2: ${nameRegex.ips[0].id}\n  vpcNatIpId3: ${natIpCidr.ips[0].id}\n  vpcNatIpId4: ${natIpName.ips[0].id}\n  vpcNatIpId5: ${natIpIds.ips[0].id}\n  vpcNatIpId6: ${status.ips[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNatIps.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Nat Ip IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Nat Ip name.\n"},"natGatewayId":{"type":"string","description":"The ID of the Virtual Private Cloud (VPC) NAT gateway for which you want to create the NAT IP address.\n"},"natIpCidr":{"type":"string","description":"NAT IP ADDRESS of the address segment.\n"},"natIpIds":{"type":"array","items":{"type":"string"}},"natIpNames":{"type":"array","items":{"type":"string"},"description":"NAT IP ADDRESS the name of the root directory. Length is from \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters, must start with a letter or the Chinese at the beginning can contain numbers, half a period (.), underscore (_) and dash (-). But do not start with `http://` or `https://` at the beginning.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the NAT IP address. Valid values: `Available`, `Deleting` and `Creating`.\n"}},"type":"object","required":["natGatewayId"]},"outputs":{"description":"A collection of values returned by getNatIps.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"ips":{"items":{"$ref":"#/types/alicloud:vpc/getNatIpsIp:getNatIpsIp"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"natGatewayId":{"type":"string"},"natIpCidr":{"type":"string"},"natIpIds":{"items":{"type":"string"},"type":"array"},"natIpNames":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"type":"string"}},"required":["ids","ips","names","natGatewayId","id"],"type":"object"}},"alicloud:vpc/getNetworkAcls:getNetworkAcls":{"description":"This data source provides the Network Acls of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.122.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.vpc.getNetworkAcls({\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstNetworkAclId = example.then(example =\u003e example.acls?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.vpc.get_network_acls(ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstNetworkAclId\", example.acls[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Vpc.GetNetworkAcls.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstNetworkAclId\"] = example.Apply(getNetworkAclsResult =\u003e getNetworkAclsResult.Acls[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := vpc.GetNetworkAcls(ctx, \u0026vpc.GetNetworkAclsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstNetworkAclId\", example.Acls[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworkAclsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = VpcFunctions.getNetworkAcls(GetNetworkAclsArgs.builder()\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstNetworkAclId\", example.acls()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:vpc:getNetworkAcls\n      arguments:\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstNetworkAclId: ${example.acls[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNetworkAcls.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Network Acl ID.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Network Acl name.\n"},"networkAclName":{"type":"string","description":"The name of the network ACL.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceId":{"type":"string","description":"The ID of the associated resource.\n"},"resourceType":{"type":"string","description":"The type of the associated resource. Valid values `VSwitch`. \u003cspan pulumi-lang-nodejs=\"`resourceType`\" pulumi-lang-dotnet=\"`ResourceType`\" pulumi-lang-go=\"`resourceType`\" pulumi-lang-python=\"`resource_type`\" pulumi-lang-yaml=\"`resourceType`\" pulumi-lang-java=\"`resourceType`\"\u003e`resource_type`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`resourceId`\" pulumi-lang-dotnet=\"`ResourceId`\" pulumi-lang-go=\"`resourceId`\" pulumi-lang-python=\"`resource_id`\" pulumi-lang-yaml=\"`resourceId`\" pulumi-lang-java=\"`resourceId`\"\u003e`resource_id`\u003c/span\u003e need to be specified at the same time to take effect.\n"},"status":{"type":"string","description":"The state of the network ACL. Valid values: `Available` and `Modifying`.\n"},"vpcId":{"type":"string","description":"The ID of the associated VPC.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNetworkAcls.\n","properties":{"acls":{"items":{"$ref":"#/types/alicloud:vpc/getNetworkAclsAcl:getNetworkAclsAcl"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"networkAclName":{"type":"string"},"outputFile":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"},"status":{"type":"string"},"vpcId":{"type":"string"}},"required":["acls","ids","names","id"],"type":"object"}},"alicloud:vpc/getNetworks:getNetworks":{"description":"This data source provides VPCs available to the user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst vpcsDs = alicloud.vpc.getNetworks({\n    cidrBlock: \"172.16.0.0/12\",\n    status: \"Available\",\n    nameRegex: \"^foo\",\n});\nexport const firstVpcId = vpcsDs.then(vpcsDs =\u003e vpcsDs.vpcs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nvpcs_ds = alicloud.vpc.get_networks(cidr_block=\"172.16.0.0/12\",\n    status=\"Available\",\n    name_regex=\"^foo\")\npulumi.export(\"firstVpcId\", vpcs_ds.vpcs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var vpcsDs = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        Status = \"Available\",\n        NameRegex = \"^foo\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstVpcId\"] = vpcsDs.Apply(getNetworksResult =\u003e getNetworksResult.Vpcs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpcsDs, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\n\t\t\tCidrBlock: pulumi.StringRef(\"172.16.0.0/12\"),\n\t\t\tStatus:    pulumi.StringRef(\"Available\"),\n\t\t\tNameRegex: pulumi.StringRef(\"^foo\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstVpcId\", vpcsDs.Vpcs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var vpcsDs = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .status(\"Available\")\n            .nameRegex(\"^foo\")\n            .build());\n\n        ctx.export(\"firstVpcId\", vpcsDs.vpcs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  vpcsDs:\n    fn::invoke:\n      function: alicloud:vpc:getNetworks\n      arguments:\n        cidrBlock: 172.16.0.0/12\n        status: Available\n        nameRegex: ^foo\noutputs:\n  firstVpcId: ${vpcsDs.vpcs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNetworks.\n","properties":{"cidrBlock":{"type":"string","description":"Filter results by a specific CIDR block. For example: \"172.16.0.0/12\".\n"},"dhcpOptionsSetId":{"type":"string","description":"The ID of dhcp options set.\n"},"dryRun":{"type":"boolean","description":"Indicates whether to check this request only. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Set it to true can output the \u003cspan pulumi-lang-nodejs=\"`routeTableId`\" pulumi-lang-dotnet=\"`RouteTableId`\" pulumi-lang-go=\"`routeTableId`\" pulumi-lang-python=\"`route_table_id`\" pulumi-lang-yaml=\"`routeTableId`\" pulumi-lang-java=\"`routeTableId`\"\u003e`route_table_id`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of VPC IDs.\n"},"isDefault":{"type":"boolean","description":"Indicate whether the VPC is the default one in the specified region.\n"},"nameRegex":{"type":"string","description":"A regex string to filter VPCs by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"type":"string","description":"The Id of resource group which VPC belongs.\n"},"status":{"type":"string","description":"Filter results by a specific status. Valid value are `Pending` and `Available`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcName":{"type":"string","description":"The name of the VPC.\n"},"vpcOwnerId":{"type":"integer","description":"The owner ID of VPC.\n"},"vswitchId":{"type":"string","description":"Filter results by the specified vSwitch.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNetworks.\n","properties":{"cidrBlock":{"description":"CIDR block of the VPC.\n","type":"string"},"dhcpOptionsSetId":{"description":"The ID of the DHCP options set.\n","type":"string"},"dryRun":{"type":"boolean"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of VPC IDs.\n","items":{"type":"string"},"type":"array"},"isDefault":{"description":"Whether the VPC is the default VPC in the region.\n","type":"boolean"},"nameRegex":{"type":"string"},"names":{"description":"A list of VPC names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"type":"string"},"status":{"description":"Status of the VPC.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"A map of tags assigned to the VPC.\n","type":"object"},"totalCount":{"type":"integer"},"vpcName":{"description":"Name of the VPC.\n","type":"string"},"vpcOwnerId":{"type":"integer"},"vpcs":{"description":"A list of VPCs. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getNetworksVpc:getNetworksVpc"},"type":"array"},"vswitchId":{"type":"string"}},"required":["ids","names","totalCount","vpcs","id"],"type":"object"}},"alicloud:vpc/getPbrRouteEntries:getPbrRouteEntries":{"description":"\u003e **NOTE:** Available in v1.162.0+.\n\nThe data source lists a number of VPN Pbr Route Entries resource information owned by an Alicloud account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getPbrRouteEntries({\n    vpnGatewayId: \"example_vpn_gateway_id\",\n    ids: [\"example_id\"],\n});\nexport const vpnIpsecServerId1 = ids.then(ids =\u003e ids.entries?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_pbr_route_entries(vpn_gateway_id=\"example_vpn_gateway_id\",\n    ids=[\"example_id\"])\npulumi.export(\"vpnIpsecServerId1\", ids.entries[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetPbrRouteEntries.Invoke(new()\n    {\n        VpnGatewayId = \"example_vpn_gateway_id\",\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpnIpsecServerId1\"] = ids.Apply(getPbrRouteEntriesResult =\u003e getPbrRouteEntriesResult.Entries[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetPbrRouteEntries(ctx, \u0026vpc.GetPbrRouteEntriesArgs{\n\t\t\tVpnGatewayId: \"example_vpn_gateway_id\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpnIpsecServerId1\", ids.Entries[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetPbrRouteEntriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getPbrRouteEntries(GetPbrRouteEntriesArgs.builder()\n            .vpnGatewayId(\"example_vpn_gateway_id\")\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"vpnIpsecServerId1\", ids.entries()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getPbrRouteEntries\n      arguments:\n        vpnGatewayId: example_vpn_gateway_id\n        ids:\n          - example_id\noutputs:\n  vpnIpsecServerId1: ${ids.entries[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPbrRouteEntries.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of VPN Pbr Route Entries IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"vpnGatewayId":{"type":"string","description":"The ID of the VPN gateway.\n"}},"type":"object","required":["vpnGatewayId"]},"outputs":{"description":"A collection of values returned by getPbrRouteEntries.\n","properties":{"entries":{"description":"A list of VPN Pbr Route Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getPbrRouteEntriesEntry:getPbrRouteEntriesEntry"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"vpnGatewayId":{"description":"The ID of the vpn gateway.\n","type":"string"}},"required":["entries","ids","vpnGatewayId","id"],"type":"object"}},"alicloud:vpc/getPeerConnections:getPeerConnections":{"description":"This data source provides the Vpc Peer Connections of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.186.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getPeerConnections({});\nexport const vpcPeerConnectionId1 = ids.then(ids =\u003e ids.connections?.[0]?.id);\nconst nameRegex = alicloud.vpc.getPeerConnections({\n    nameRegex: \"^my-PeerConnection\",\n});\nexport const vpcPeerConnectionId2 = nameRegex.then(nameRegex =\u003e nameRegex.connections?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_peer_connections()\npulumi.export(\"vpcPeerConnectionId1\", ids.connections[0].id)\nname_regex = alicloud.vpc.get_peer_connections(name_regex=\"^my-PeerConnection\")\npulumi.export(\"vpcPeerConnectionId2\", name_regex.connections[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetPeerConnections.Invoke();\n\n    var nameRegex = AliCloud.Vpc.GetPeerConnections.Invoke(new()\n    {\n        NameRegex = \"^my-PeerConnection\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcPeerConnectionId1\"] = ids.Apply(getPeerConnectionsResult =\u003e getPeerConnectionsResult.Connections[0]?.Id),\n        [\"vpcPeerConnectionId2\"] = nameRegex.Apply(getPeerConnectionsResult =\u003e getPeerConnectionsResult.Connections[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetPeerConnections(ctx, \u0026vpc.GetPeerConnectionsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcPeerConnectionId1\", ids.Connections[0].Id)\n\t\tnameRegex, err := vpc.GetPeerConnections(ctx, \u0026vpc.GetPeerConnectionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-PeerConnection\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcPeerConnectionId2\", nameRegex.Connections[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetPeerConnectionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getPeerConnections(GetPeerConnectionsArgs.builder()\n            .build());\n\n        ctx.export(\"vpcPeerConnectionId1\", ids.connections()[0].id());\n        final var nameRegex = VpcFunctions.getPeerConnections(GetPeerConnectionsArgs.builder()\n            .nameRegex(\"^my-PeerConnection\")\n            .build());\n\n        ctx.export(\"vpcPeerConnectionId2\", nameRegex.connections()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getPeerConnections\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:vpc:getPeerConnections\n      arguments:\n        nameRegex: ^my-PeerConnection\noutputs:\n  vpcPeerConnectionId1: ${ids.connections[0].id}\n  vpcPeerConnectionId2: ${nameRegex.connections[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPeerConnections.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of PeerConnection IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by PeerConnection name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"peerConnectionName":{"type":"string","description":"The name of the resource.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: `Accepting`, `Activated`, `Creating`, `Deleted`, `Deleting`, `Expired`, `Rejected`, `Updating`.\n"},"vpcId":{"type":"string","description":"The ID of the requester VPC.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPeerConnections.\n","properties":{"connections":{"description":"A list of Vpc Peer Connections. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getPeerConnectionsConnection:getPeerConnectionsConnection"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of PeerConnection names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"peerConnectionName":{"description":"The name of the resource.\n","type":"string"},"status":{"description":"The status of the resource.\n","type":"string"},"vpcId":{"description":"The ID of the requester VPC.\n","type":"string"}},"required":["connections","ids","names","id"],"type":"object"}},"alicloud:vpc/getPrefixLists:getPrefixLists":{"description":"This data source provides the Vpc Prefix Lists of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.182.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getPrefixLists({});\nexport const vpcPrefixListId1 = ids.then(ids =\u003e ids.lists?.[0]?.id);\nconst nameRegex = alicloud.vpc.getPrefixLists({\n    nameRegex: \"^my-PrefixList\",\n});\nexport const vpcPrefixListId2 = nameRegex.then(nameRegex =\u003e nameRegex.lists?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_prefix_lists()\npulumi.export(\"vpcPrefixListId1\", ids.lists[0].id)\nname_regex = alicloud.vpc.get_prefix_lists(name_regex=\"^my-PrefixList\")\npulumi.export(\"vpcPrefixListId2\", name_regex.lists[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetPrefixLists.Invoke();\n\n    var nameRegex = AliCloud.Vpc.GetPrefixLists.Invoke(new()\n    {\n        NameRegex = \"^my-PrefixList\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcPrefixListId1\"] = ids.Apply(getPrefixListsResult =\u003e getPrefixListsResult.Lists[0]?.Id),\n        [\"vpcPrefixListId2\"] = nameRegex.Apply(getPrefixListsResult =\u003e getPrefixListsResult.Lists[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetPrefixLists(ctx, \u0026vpc.GetPrefixListsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcPrefixListId1\", ids.Lists[0].Id)\n\t\tnameRegex, err := vpc.GetPrefixLists(ctx, \u0026vpc.GetPrefixListsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-PrefixList\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcPrefixListId2\", nameRegex.Lists[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetPrefixListsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getPrefixLists(GetPrefixListsArgs.builder()\n            .build());\n\n        ctx.export(\"vpcPrefixListId1\", ids.lists()[0].id());\n        final var nameRegex = VpcFunctions.getPrefixLists(GetPrefixListsArgs.builder()\n            .nameRegex(\"^my-PrefixList\")\n            .build());\n\n        ctx.export(\"vpcPrefixListId2\", nameRegex.lists()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getPrefixLists\n      arguments: {}\n  nameRegex:\n    fn::invoke:\n      function: alicloud:vpc:getPrefixLists\n      arguments:\n        nameRegex: ^my-PrefixList\noutputs:\n  vpcPrefixListId1: ${ids.lists[0].id}\n  vpcPrefixListId2: ${nameRegex.lists[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrefixLists.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e can hide the \u003cspan pulumi-lang-nodejs=\"`entrys`\" pulumi-lang-dotnet=\"`Entrys`\" pulumi-lang-go=\"`entrys`\" pulumi-lang-python=\"`entrys`\" pulumi-lang-yaml=\"`entrys`\" pulumi-lang-java=\"`entrys`\"\u003e`entrys`\u003c/span\u003e to output.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Prefix List IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Prefix List name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"prefixListName":{"type":"string","description":"The name of the prefix list.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPrefixLists.\n","properties":{"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"lists":{"description":"A list of Vpc Prefix Lists. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getPrefixListsList:getPrefixListsList"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Prefix List names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"prefixListName":{"description":"The name of the prefix list.\n","type":"string"}},"required":["ids","lists","names","id"],"type":"object"}},"alicloud:vpc/getPublicIpAddressPoolCidrBlocks:getPublicIpAddressPoolCidrBlocks":{"description":"This data source provides the Vpc Public Ip Address Pool Cidr Blocks of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.189.0+.\n\n\u003e **NOTE:** Only users who have the required permissions can use the IP address pool feature of Elastic IP Address (EIP). To apply for the required permissions, [submit a ticket](https://smartservice.console.aliyun.com/service/create-ticket).\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getPublicIpAddressPoolCidrBlocks({\n    ids: [\"example_id\"],\n    publicIpAddressPoolId: \"example_value\",\n});\nexport const vpcPublicIpAddressPoolCidrBlockId1 = ids.then(ids =\u003e ids.blocks?.[0]?.id);\nconst cidrBlock = alicloud.vpc.getPublicIpAddressPoolCidrBlocks({\n    publicIpAddressPoolId: \"example_value\",\n    cidrBlock: \"example_value\",\n});\nexport const vpcPublicIpAddressPoolCidrBlockId2 = cidrBlock.then(cidrBlock =\u003e cidrBlock.blocks?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_public_ip_address_pool_cidr_blocks(ids=[\"example_id\"],\n    public_ip_address_pool_id=\"example_value\")\npulumi.export(\"vpcPublicIpAddressPoolCidrBlockId1\", ids.blocks[0].id)\ncidr_block = alicloud.vpc.get_public_ip_address_pool_cidr_blocks(public_ip_address_pool_id=\"example_value\",\n    cidr_block=\"example_value\")\npulumi.export(\"vpcPublicIpAddressPoolCidrBlockId2\", cidr_block.blocks[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetPublicIpAddressPoolCidrBlocks.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        PublicIpAddressPoolId = \"example_value\",\n    });\n\n    var cidrBlock = AliCloud.Vpc.GetPublicIpAddressPoolCidrBlocks.Invoke(new()\n    {\n        PublicIpAddressPoolId = \"example_value\",\n        CidrBlock = \"example_value\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcPublicIpAddressPoolCidrBlockId1\"] = ids.Apply(getPublicIpAddressPoolCidrBlocksResult =\u003e getPublicIpAddressPoolCidrBlocksResult.Blocks[0]?.Id),\n        [\"vpcPublicIpAddressPoolCidrBlockId2\"] = cidrBlock.Apply(getPublicIpAddressPoolCidrBlocksResult =\u003e getPublicIpAddressPoolCidrBlocksResult.Blocks[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetPublicIpAddressPoolCidrBlocks(ctx, \u0026vpc.GetPublicIpAddressPoolCidrBlocksArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tPublicIpAddressPoolId: \"example_value\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcPublicIpAddressPoolCidrBlockId1\", ids.Blocks[0].Id)\n\t\tcidrBlock, err := vpc.GetPublicIpAddressPoolCidrBlocks(ctx, \u0026vpc.GetPublicIpAddressPoolCidrBlocksArgs{\n\t\t\tPublicIpAddressPoolId: \"example_value\",\n\t\t\tCidrBlock:             pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcPublicIpAddressPoolCidrBlockId2\", cidrBlock.Blocks[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetPublicIpAddressPoolCidrBlocksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getPublicIpAddressPoolCidrBlocks(GetPublicIpAddressPoolCidrBlocksArgs.builder()\n            .ids(\"example_id\")\n            .publicIpAddressPoolId(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcPublicIpAddressPoolCidrBlockId1\", ids.blocks()[0].id());\n        final var cidrBlock = VpcFunctions.getPublicIpAddressPoolCidrBlocks(GetPublicIpAddressPoolCidrBlocksArgs.builder()\n            .publicIpAddressPoolId(\"example_value\")\n            .cidrBlock(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcPublicIpAddressPoolCidrBlockId2\", cidrBlock.blocks()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getPublicIpAddressPoolCidrBlocks\n      arguments:\n        ids:\n          - example_id\n        publicIpAddressPoolId: example_value\n  cidrBlock:\n    fn::invoke:\n      function: alicloud:vpc:getPublicIpAddressPoolCidrBlocks\n      arguments:\n        publicIpAddressPoolId: example_value\n        cidrBlock: example_value\noutputs:\n  vpcPublicIpAddressPoolCidrBlockId1: ${ids.blocks[0].id}\n  vpcPublicIpAddressPoolCidrBlockId2: ${cidrBlock.blocks[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPublicIpAddressPoolCidrBlocks.\n","properties":{"cidrBlock":{"type":"string","description":"The CIDR block.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Vpc Public Ip Address Pool Cidr Block IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"publicIpAddressPoolId":{"type":"string","description":"The ID of the Vpc Public IP address pool.\n"},"status":{"type":"string","description":"The status of the CIDR block in the Vpc Public IP address pool. Valid values: `Created`, `Modifying`, `Deleting`.\n"}},"type":"object","required":["publicIpAddressPoolId"]},"outputs":{"description":"A collection of values returned by getPublicIpAddressPoolCidrBlocks.\n","properties":{"blocks":{"description":"A list of Vpc Public Ip Address Pool Cidr Blocks. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getPublicIpAddressPoolCidrBlocksBlock:getPublicIpAddressPoolCidrBlocksBlock"},"type":"array"},"cidrBlock":{"description":"The CIDR block.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"publicIpAddressPoolId":{"description":"The ID of the Vpc Public IP address pool.\n","type":"string"},"status":{"description":"The status of the CIDR block in the Vpc Public IP address pool.\n","type":"string"}},"required":["blocks","ids","publicIpAddressPoolId","id"],"type":"object"}},"alicloud:vpc/getPublicIpAddressPools:getPublicIpAddressPools":{"description":"This data source provides the Vpc Public Ip Address Pools of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.186.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getPublicIpAddressPools({\n    ids: [\"example_id\"],\n});\nexport const vpcPublicIpAddressPoolId1 = ids.then(ids =\u003e ids.pools?.[0]?.id);\nconst nameRegex = alicloud.vpc.getPublicIpAddressPools({\n    nameRegex: \"example_name\",\n});\nexport const vpcPublicIpAddressPoolId2 = nameRegex.then(nameRegex =\u003e nameRegex.pools?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_public_ip_address_pools(ids=[\"example_id\"])\npulumi.export(\"vpcPublicIpAddressPoolId1\", ids.pools[0].id)\nname_regex = alicloud.vpc.get_public_ip_address_pools(name_regex=\"example_name\")\npulumi.export(\"vpcPublicIpAddressPoolId2\", name_regex.pools[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetPublicIpAddressPools.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Vpc.GetPublicIpAddressPools.Invoke(new()\n    {\n        NameRegex = \"example_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcPublicIpAddressPoolId1\"] = ids.Apply(getPublicIpAddressPoolsResult =\u003e getPublicIpAddressPoolsResult.Pools[0]?.Id),\n        [\"vpcPublicIpAddressPoolId2\"] = nameRegex.Apply(getPublicIpAddressPoolsResult =\u003e getPublicIpAddressPoolsResult.Pools[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetPublicIpAddressPools(ctx, \u0026vpc.GetPublicIpAddressPoolsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcPublicIpAddressPoolId1\", ids.Pools[0].Id)\n\t\tnameRegex, err := vpc.GetPublicIpAddressPools(ctx, \u0026vpc.GetPublicIpAddressPoolsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"example_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcPublicIpAddressPoolId2\", nameRegex.Pools[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetPublicIpAddressPoolsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getPublicIpAddressPools(GetPublicIpAddressPoolsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"vpcPublicIpAddressPoolId1\", ids.pools()[0].id());\n        final var nameRegex = VpcFunctions.getPublicIpAddressPools(GetPublicIpAddressPoolsArgs.builder()\n            .nameRegex(\"example_name\")\n            .build());\n\n        ctx.export(\"vpcPublicIpAddressPoolId2\", nameRegex.pools()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getPublicIpAddressPools\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:vpc:getPublicIpAddressPools\n      arguments:\n        nameRegex: example_name\noutputs:\n  vpcPublicIpAddressPoolId1: ${ids.pools[0].id}\n  vpcPublicIpAddressPoolId2: ${nameRegex.pools[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPublicIpAddressPools.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Vpc Public Ip Address Pool IDs.\n"},"isp":{"type":"string","description":"The Internet service provider. Valid values: `BGP`, `BGP_PRO`, `ChinaTelecom`, `ChinaUnicom`, `ChinaMobile`, `ChinaTelecom_L2`, `ChinaUnicom_L2`, `ChinaMobile_L2`, `BGP_FinanceCloud`.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Vpc Public Ip Address Pool name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"publicIpAddressPoolIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the Vpc Public IP address pools.\n"},"publicIpAddressPoolName":{"type":"string","description":"The name of the VPC Public IP address pool.\n"},"status":{"type":"string","description":"The status of the Vpc Public Ip Address Pool. Valid values: `Created`, `Deleting`, `Modifying`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPublicIpAddressPools.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"isp":{"type":"string"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pools":{"items":{"$ref":"#/types/alicloud:vpc/getPublicIpAddressPoolsPool:getPublicIpAddressPoolsPool"},"type":"array"},"publicIpAddressPoolIds":{"items":{"type":"string"},"type":"array"},"publicIpAddressPoolName":{"type":"string"},"status":{"type":"string"}},"required":["ids","names","pools","id"],"type":"object"}},"alicloud:vpc/getRouteEntries:getRouteEntries":{"description":"This data source provides a list of Route Entries owned by an Alibaba Cloud account.\n\n\u003e **NOTE:** Available in 1.37.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetInstanceTypes = _default.then(_default =\u003e alicloud.ecs.getInstanceTypes({\n    availabilityZone: _default.zones?.[0]?.id,\n    cpuCoreCount: 1,\n    memorySize: 2,\n}));\nconst defaultGetImages = alicloud.ecs.getImages({\n    nameRegex: \"^ubuntu_18.*64\",\n    mostRecent: true,\n    owners: \"system\",\n});\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"tf-testAccRouteEntryConfig\";\nconst fooNetwork = new alicloud.vpc.Network(\"foo\", {\n    name: name,\n    cidrBlock: \"10.1.0.0/21\",\n});\nconst fooSwitch = new alicloud.vpc.Switch(\"foo\", {\n    vpcId: fooNetwork.id,\n    cidrBlock: \"10.1.1.0/24\",\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst tfTestFoo = new alicloud.ecs.SecurityGroup(\"tf_test_foo\", {\n    name: name,\n    description: \"foo\",\n    vpcId: fooNetwork.id,\n});\nconst fooInstance = new alicloud.ecs.Instance(\"foo\", {\n    securityGroups: [tfTestFoo.id],\n    vswitchId: fooSwitch.id,\n    allocatePublicIp: true,\n    instanceChargeType: \"PostPaid\",\n    instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes =\u003e defaultGetInstanceTypes.instanceTypes?.[0]?.id),\n    internetChargeType: \"PayByTraffic\",\n    internetMaxBandwidthOut: 5,\n    systemDiskCategory: \"cloud_efficiency\",\n    imageId: defaultGetImages.then(defaultGetImages =\u003e defaultGetImages.images?.[0]?.id),\n    instanceName: name,\n});\nconst fooRouteEntry = new alicloud.vpc.RouteEntry(\"foo\", {\n    routeTableId: fooNetwork.routeTableId,\n    destinationCidrblock: \"172.11.1.1/32\",\n    nexthopType: \"Instance\",\n    nexthopId: fooInstance.id,\n});\nconst ingress = new alicloud.ecs.SecurityGroupRule(\"ingress\", {\n    type: \"ingress\",\n    ipProtocol: \"tcp\",\n    nicType: \"intranet\",\n    policy: \"accept\",\n    portRange: \"22/22\",\n    priority: 1,\n    securityGroupId: tfTestFoo.id,\n    cidrIp: \"0.0.0.0/0\",\n});\nconst foo = alicloud.vpc.getRouteEntriesOutput({\n    routeTableId: fooRouteEntry.routeTableId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_instance_types = alicloud.ecs.get_instance_types(availability_zone=default.zones[0].id,\n    cpu_core_count=1,\n    memory_size=2)\ndefault_get_images = alicloud.ecs.get_images(name_regex=\"^ubuntu_18.*64\",\n    most_recent=True,\n    owners=\"system\")\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"tf-testAccRouteEntryConfig\"\nfoo_network = alicloud.vpc.Network(\"foo\",\n    name=name,\n    cidr_block=\"10.1.0.0/21\")\nfoo_switch = alicloud.vpc.Switch(\"foo\",\n    vpc_id=foo_network.id,\n    cidr_block=\"10.1.1.0/24\",\n    availability_zone=default.zones[0].id,\n    vswitch_name=name)\ntf_test_foo = alicloud.ecs.SecurityGroup(\"tf_test_foo\",\n    name=name,\n    description=\"foo\",\n    vpc_id=foo_network.id)\nfoo_instance = alicloud.ecs.Instance(\"foo\",\n    security_groups=[tf_test_foo.id],\n    vswitch_id=foo_switch.id,\n    allocate_public_ip=True,\n    instance_charge_type=\"PostPaid\",\n    instance_type=default_get_instance_types.instance_types[0].id,\n    internet_charge_type=\"PayByTraffic\",\n    internet_max_bandwidth_out=5,\n    system_disk_category=\"cloud_efficiency\",\n    image_id=default_get_images.images[0].id,\n    instance_name=name)\nfoo_route_entry = alicloud.vpc.RouteEntry(\"foo\",\n    route_table_id=foo_network.route_table_id,\n    destination_cidrblock=\"172.11.1.1/32\",\n    nexthop_type=\"Instance\",\n    nexthop_id=foo_instance.id)\ningress = alicloud.ecs.SecurityGroupRule(\"ingress\",\n    type=\"ingress\",\n    ip_protocol=\"tcp\",\n    nic_type=\"intranet\",\n    policy=\"accept\",\n    port_range=\"22/22\",\n    priority=1,\n    security_group_id=tf_test_foo.id,\n    cidr_ip=\"0.0.0.0/0\")\nfoo = alicloud.vpc.get_route_entries_output(route_table_id=foo_route_entry.route_table_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()\n    {\n        AvailabilityZone = @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id),\n        CpuCoreCount = 1,\n        MemorySize = 2,\n    });\n\n    var defaultGetImages = AliCloud.Ecs.GetImages.Invoke(new()\n    {\n        NameRegex = \"^ubuntu_18.*64\",\n        MostRecent = true,\n        Owners = \"system\",\n    });\n\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"tf-testAccRouteEntryConfig\";\n    var fooNetwork = new AliCloud.Vpc.Network(\"foo\", new()\n    {\n        Name = name,\n        CidrBlock = \"10.1.0.0/21\",\n    });\n\n    var fooSwitch = new AliCloud.Vpc.Switch(\"foo\", new()\n    {\n        VpcId = fooNetwork.Id,\n        CidrBlock = \"10.1.1.0/24\",\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var tfTestFoo = new AliCloud.Ecs.SecurityGroup(\"tf_test_foo\", new()\n    {\n        Name = name,\n        Description = \"foo\",\n        VpcId = fooNetwork.Id,\n    });\n\n    var fooInstance = new AliCloud.Ecs.Instance(\"foo\", new()\n    {\n        SecurityGroups = new[]\n        {\n            tfTestFoo.Id,\n        },\n        VswitchId = fooSwitch.Id,\n        AllocatePublicIp = true,\n        InstanceChargeType = \"PostPaid\",\n        InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult =\u003e getInstanceTypesResult.InstanceTypes[0]?.Id),\n        InternetChargeType = \"PayByTraffic\",\n        InternetMaxBandwidthOut = 5,\n        SystemDiskCategory = \"cloud_efficiency\",\n        ImageId = defaultGetImages.Apply(getImagesResult =\u003e getImagesResult.Images[0]?.Id),\n        InstanceName = name,\n    });\n\n    var fooRouteEntry = new AliCloud.Vpc.RouteEntry(\"foo\", new()\n    {\n        RouteTableId = fooNetwork.RouteTableId,\n        DestinationCidrblock = \"172.11.1.1/32\",\n        NexthopType = \"Instance\",\n        NexthopId = fooInstance.Id,\n    });\n\n    var ingress = new AliCloud.Ecs.SecurityGroupRule(\"ingress\", new()\n    {\n        Type = \"ingress\",\n        IpProtocol = \"tcp\",\n        NicType = \"intranet\",\n        Policy = \"accept\",\n        PortRange = \"22/22\",\n        Priority = 1,\n        SecurityGroupId = tfTestFoo.Id,\n        CidrIp = \"0.0.0.0/0\",\n    });\n\n    var foo = AliCloud.Vpc.GetRouteEntries.Invoke(new()\n    {\n        RouteTableId = fooRouteEntry.RouteTableId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, \u0026ecs.GetInstanceTypesArgs{\n\t\t\tAvailabilityZone: pulumi.StringRef(_default.Zones[0].Id),\n\t\t\tCpuCoreCount:     pulumi.IntRef(1),\n\t\t\tMemorySize:       pulumi.Float64Ref(2),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGetImages, err := ecs.GetImages(ctx, \u0026ecs.GetImagesArgs{\n\t\t\tNameRegex:  pulumi.StringRef(\"^ubuntu_18.*64\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tOwners:     pulumi.StringRef(\"system\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"tf-testAccRouteEntryConfig\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\tfooNetwork, err := vpc.NewNetwork(ctx, \"foo\", \u0026vpc.NetworkArgs{\n\t\t\tName:      pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"10.1.0.0/21\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooSwitch, err := vpc.NewSwitch(ctx, \"foo\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:            fooNetwork.ID(),\n\t\t\tCidrBlock:        pulumi.String(\"10.1.1.0/24\"),\n\t\t\tAvailabilityZone: pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName:      pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttfTestFoo, err := ecs.NewSecurityGroup(ctx, \"tf_test_foo\", \u0026ecs.SecurityGroupArgs{\n\t\t\tName:        pulumi.String(name),\n\t\t\tDescription: pulumi.String(\"foo\"),\n\t\t\tVpcId:       fooNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooInstance, err := ecs.NewInstance(ctx, \"foo\", \u0026ecs.InstanceArgs{\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\ttfTestFoo.ID(),\n\t\t\t},\n\t\t\tVswitchId:               fooSwitch.ID(),\n\t\t\tAllocatePublicIp:        pulumi.Bool(true),\n\t\t\tInstanceChargeType:      pulumi.String(\"PostPaid\"),\n\t\t\tInstanceType:            pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),\n\t\t\tInternetChargeType:      pulumi.String(\"PayByTraffic\"),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(5),\n\t\t\tSystemDiskCategory:      pulumi.String(\"cloud_efficiency\"),\n\t\t\tImageId:                 pulumi.String(defaultGetImages.Images[0].Id),\n\t\t\tInstanceName:            pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooRouteEntry, err := vpc.NewRouteEntry(ctx, \"foo\", \u0026vpc.RouteEntryArgs{\n\t\t\tRouteTableId:         fooNetwork.RouteTableId,\n\t\t\tDestinationCidrblock: pulumi.String(\"172.11.1.1/32\"),\n\t\t\tNexthopType:          pulumi.String(\"Instance\"),\n\t\t\tNexthopId:            fooInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewSecurityGroupRule(ctx, \"ingress\", \u0026ecs.SecurityGroupRuleArgs{\n\t\t\tType:            pulumi.String(\"ingress\"),\n\t\t\tIpProtocol:      pulumi.String(\"tcp\"),\n\t\t\tNicType:         pulumi.String(\"intranet\"),\n\t\t\tPolicy:          pulumi.String(\"accept\"),\n\t\t\tPortRange:       pulumi.String(\"22/22\"),\n\t\t\tPriority:        pulumi.Int(1),\n\t\t\tSecurityGroupId: tfTestFoo.ID(),\n\t\t\tCidrIp:          pulumi.String(\"0.0.0.0/0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = vpc.GetRouteEntriesOutput(ctx, vpc.GetRouteEntriesOutputArgs{\n\t\t\tRouteTableId: fooRouteEntry.RouteTableId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.ecs.EcsFunctions;\nimport com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;\nimport com.pulumi.alicloud.ecs.inputs.GetImagesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroup;\nimport com.pulumi.alicloud.ecs.SecurityGroupArgs;\nimport com.pulumi.alicloud.ecs.Instance;\nimport com.pulumi.alicloud.ecs.InstanceArgs;\nimport com.pulumi.alicloud.vpc.RouteEntry;\nimport com.pulumi.alicloud.vpc.RouteEntryArgs;\nimport com.pulumi.alicloud.ecs.SecurityGroupRule;\nimport com.pulumi.alicloud.ecs.SecurityGroupRuleArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetRouteEntriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()\n            .availabilityZone(default_.zones()[0].id())\n            .cpuCoreCount(1)\n            .memorySize(2)\n            .build());\n\n        final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()\n            .nameRegex(\"^ubuntu_18.*64\")\n            .mostRecent(true)\n            .owners(\"system\")\n            .build());\n\n        final var name = config.get(\"name\").orElse(\"tf-testAccRouteEntryConfig\");\n        var fooNetwork = new Network(\"fooNetwork\", NetworkArgs.builder()\n            .name(name)\n            .cidrBlock(\"10.1.0.0/21\")\n            .build());\n\n        var fooSwitch = new Switch(\"fooSwitch\", SwitchArgs.builder()\n            .vpcId(fooNetwork.id())\n            .cidrBlock(\"10.1.1.0/24\")\n            .availabilityZone(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var tfTestFoo = new SecurityGroup(\"tfTestFoo\", SecurityGroupArgs.builder()\n            .name(name)\n            .description(\"foo\")\n            .vpcId(fooNetwork.id())\n            .build());\n\n        var fooInstance = new Instance(\"fooInstance\", InstanceArgs.builder()\n            .securityGroups(tfTestFoo.id())\n            .vswitchId(fooSwitch.id())\n            .allocatePublicIp(true)\n            .instanceChargeType(\"PostPaid\")\n            .instanceType(defaultGetInstanceTypes.instanceTypes()[0].id())\n            .internetChargeType(\"PayByTraffic\")\n            .internetMaxBandwidthOut(5)\n            .systemDiskCategory(\"cloud_efficiency\")\n            .imageId(defaultGetImages.images()[0].id())\n            .instanceName(name)\n            .build());\n\n        var fooRouteEntry = new RouteEntry(\"fooRouteEntry\", RouteEntryArgs.builder()\n            .routeTableId(fooNetwork.routeTableId())\n            .destinationCidrblock(\"172.11.1.1/32\")\n            .nexthopType(\"Instance\")\n            .nexthopId(fooInstance.id())\n            .build());\n\n        var ingress = new SecurityGroupRule(\"ingress\", SecurityGroupRuleArgs.builder()\n            .type(\"ingress\")\n            .ipProtocol(\"tcp\")\n            .nicType(\"intranet\")\n            .policy(\"accept\")\n            .portRange(\"22/22\")\n            .priority(1)\n            .securityGroupId(tfTestFoo.id())\n            .cidrIp(\"0.0.0.0/0\")\n            .build());\n\n        final var foo = VpcFunctions.getRouteEntries(GetRouteEntriesArgs.builder()\n            .routeTableId(fooRouteEntry.routeTableId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: tf-testAccRouteEntryConfig\nresources:\n  fooNetwork:\n    type: alicloud:vpc:Network\n    name: foo\n    properties:\n      name: ${name}\n      cidrBlock: 10.1.0.0/21\n  fooSwitch:\n    type: alicloud:vpc:Switch\n    name: foo\n    properties:\n      vpcId: ${fooNetwork.id}\n      cidrBlock: 10.1.1.0/24\n      availabilityZone: ${default.zones[0].id}\n      vswitchName: ${name}\n  fooRouteEntry:\n    type: alicloud:vpc:RouteEntry\n    name: foo\n    properties:\n      routeTableId: ${fooNetwork.routeTableId}\n      destinationCidrblock: 172.11.1.1/32\n      nexthopType: Instance\n      nexthopId: ${fooInstance.id}\n  tfTestFoo:\n    type: alicloud:ecs:SecurityGroup\n    name: tf_test_foo\n    properties:\n      name: ${name}\n      description: foo\n      vpcId: ${fooNetwork.id}\n  ingress:\n    type: alicloud:ecs:SecurityGroupRule\n    properties:\n      type: ingress\n      ipProtocol: tcp\n      nicType: intranet\n      policy: accept\n      portRange: 22/22\n      priority: 1\n      securityGroupId: ${tfTestFoo.id}\n      cidrIp: 0.0.0.0/0\n  fooInstance:\n    type: alicloud:ecs:Instance\n    name: foo\n    properties:\n      securityGroups:\n        - ${tfTestFoo.id}\n      vswitchId: ${fooSwitch.id}\n      allocatePublicIp: true # series III\n      instanceChargeType: PostPaid\n      instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}\n      internetChargeType: PayByTraffic\n      internetMaxBandwidthOut: 5\n      systemDiskCategory: cloud_efficiency\n      imageId: ${defaultGetImages.images[0].id}\n      instanceName: ${name}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  defaultGetInstanceTypes:\n    fn::invoke:\n      function: alicloud:ecs:getInstanceTypes\n      arguments:\n        availabilityZone: ${default.zones[0].id}\n        cpuCoreCount: 1\n        memorySize: 2\n  defaultGetImages:\n    fn::invoke:\n      function: alicloud:ecs:getImages\n      arguments:\n        nameRegex: ^ubuntu_18.*64\n        mostRecent: true\n        owners: system\n  foo:\n    fn::invoke:\n      function: alicloud:vpc:getRouteEntries\n      arguments:\n        routeTableId: ${fooRouteEntry.routeTableId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRouteEntries.\n","properties":{"cidrBlock":{"type":"string","description":"The destination CIDR block of the route entry.\n"},"instanceId":{"type":"string","description":"The instance ID of the next hop.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"routeTableId":{"type":"string","description":"The ID of the router table to which the route entry belongs.\n"},"type":{"type":"string","description":"The type of the route entry.\n"}},"type":"object","required":["routeTableId"]},"outputs":{"description":"A collection of values returned by getRouteEntries.\n","properties":{"cidrBlock":{"description":"The destination CIDR block of the route entry.\n","type":"string"},"entries":{"description":"A list of Route Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getRouteEntriesEntry:getRouteEntriesEntry"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceId":{"description":"The instance ID of the next hop.\n","type":"string"},"outputFile":{"type":"string"},"routeTableId":{"description":"The ID of the router table to which the route entry belongs.\n","type":"string"},"type":{"description":"The type of the route entry.\n","type":"string"}},"required":["entries","routeTableId","id"],"type":"object"}},"alicloud:vpc/getRouteTables:getRouteTables":{"description":"This data source provides a list of Route Tables owned by an Alibaba Cloud account.\n\n\u003e **NOTE:** Available since v1.36.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"route-tables-datasource-example-name\";\nconst fooNetwork = new alicloud.vpc.Network(\"foo\", {\n    cidrBlock: \"172.16.0.0/12\",\n    vpcName: name,\n});\nconst fooRouteTable = new alicloud.vpc.RouteTable(\"foo\", {\n    vpcId: fooNetwork.id,\n    routeTableName: name,\n    description: name,\n});\nconst foo = alicloud.vpc.getRouteTablesOutput({\n    ids: [fooRouteTable.id],\n    routeTableType: \"Custom\",\n});\nexport const routeTableIds = foo.apply(foo =\u003e foo.ids);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"route-tables-datasource-example-name\"\nfoo_network = alicloud.vpc.Network(\"foo\",\n    cidr_block=\"172.16.0.0/12\",\n    vpc_name=name)\nfoo_route_table = alicloud.vpc.RouteTable(\"foo\",\n    vpc_id=foo_network.id,\n    route_table_name=name,\n    description=name)\nfoo = alicloud.vpc.get_route_tables_output(ids=[foo_route_table.id],\n    route_table_type=\"Custom\")\npulumi.export(\"routeTableIds\", foo.ids)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"route-tables-datasource-example-name\";\n    var fooNetwork = new AliCloud.Vpc.Network(\"foo\", new()\n    {\n        CidrBlock = \"172.16.0.0/12\",\n        VpcName = name,\n    });\n\n    var fooRouteTable = new AliCloud.Vpc.RouteTable(\"foo\", new()\n    {\n        VpcId = fooNetwork.Id,\n        RouteTableName = name,\n        Description = name,\n    });\n\n    var foo = AliCloud.Vpc.GetRouteTables.Invoke(new()\n    {\n        Ids = new[]\n        {\n            fooRouteTable.Id,\n        },\n        RouteTableType = \"Custom\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"routeTableIds\"] = foo.Apply(getRouteTablesResult =\u003e getRouteTablesResult.Ids),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"route-tables-datasource-example-name\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nfooNetwork, err := vpc.NewNetwork(ctx, \"foo\", \u0026vpc.NetworkArgs{\nCidrBlock: pulumi.String(\"172.16.0.0/12\"),\nVpcName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\nfooRouteTable, err := vpc.NewRouteTable(ctx, \"foo\", \u0026vpc.RouteTableArgs{\nVpcId: fooNetwork.ID(),\nRouteTableName: pulumi.String(name),\nDescription: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\nfoo := vpc.GetRouteTablesOutput(ctx, vpc.GetRouteTablesOutputArgs{\nIds: pulumi.StringArray{\nfooRouteTable.ID(),\n},\nRouteTableType: pulumi.String(\"Custom\"),\n}, nil);\nctx.Export(\"routeTableIds\", foo.ApplyT(func(foo vpc.GetRouteTablesResult) (interface{}, error) {\nreturn foo.Ids, nil\n}).(pulumi.Interface{}Output))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.RouteTable;\nimport com.pulumi.alicloud.vpc.RouteTableArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetRouteTablesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"route-tables-datasource-example-name\");\n        var fooNetwork = new Network(\"fooNetwork\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/12\")\n            .vpcName(name)\n            .build());\n\n        var fooRouteTable = new RouteTable(\"fooRouteTable\", RouteTableArgs.builder()\n            .vpcId(fooNetwork.id())\n            .routeTableName(name)\n            .description(name)\n            .build());\n\n        final var foo = VpcFunctions.getRouteTables(GetRouteTablesArgs.builder()\n            .ids(fooRouteTable.id())\n            .routeTableType(\"Custom\")\n            .build());\n\n        ctx.export(\"routeTableIds\", foo.applyValue(_foo -\u003e _foo.ids()));\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: route-tables-datasource-example-name\nresources:\n  fooNetwork:\n    type: alicloud:vpc:Network\n    name: foo\n    properties:\n      cidrBlock: 172.16.0.0/12\n      vpcName: ${name}\n  fooRouteTable:\n    type: alicloud:vpc:RouteTable\n    name: foo\n    properties:\n      vpcId: ${fooNetwork.id}\n      routeTableName: ${name}\n      description: ${name}\nvariables:\n  foo:\n    fn::invoke:\n      function: alicloud:vpc:getRouteTables\n      arguments:\n        ids:\n          - ${fooRouteTable.id}\n        routeTableType: Custom\noutputs:\n  routeTableIds: ${foo.ids}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRouteTables.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Route Tables IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter route tables by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"type":"string","description":"The Id of resource group which route tables belongs.\n"},"routeTableName":{"type":"string","description":"The route table name.\n"},"routeTableType":{"type":"string","description":"The route table type.\n"},"routerId":{"type":"string","description":"The router ID.\n"},"routerType":{"type":"string","description":"The route type of route table. Valid values: `VRouter` and `VBR`.\n"},"status":{"type":"string","description":"The status of resource. Valid values: `Available` and `Pending`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"Vpc id of the route table.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRouteTables.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"(Optional) A list of Route Tables IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Route Tables names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"resourceGroupId":{"description":"The Id of resource group which route tables belongs.\n","type":"string"},"routeTableName":{"description":"The route table name.\n","type":"string"},"routeTableType":{"description":"The type of route table.\n","type":"string"},"routerId":{"description":"Router Id of the route table.\n","type":"string"},"routerType":{"description":"The route type.\n","type":"string"},"status":{"description":"The status of route table.\n","type":"string"},"tables":{"description":"A list of Route Tables. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getRouteTablesTable:getRouteTablesTable"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n","type":"object"},"totalCount":{"type":"integer"},"vpcId":{"description":"The VPC ID.\n","type":"string"}},"required":["ids","names","tables","totalCount","id"],"type":"object"}},"alicloud:vpc/getRouterInterfaces:getRouterInterfaces":{"description":"This data source provides information about [router interfaces](https://www.alibabacloud.com/help/en/express-connect/developer-reference/api-vpc-2016-04-28-describerouterinterfaces-efficiency-channels)\nthat connect VPCs together.\n\n\u003e **DEPRECATED:**  This datasource has been deprecated from version `1.199.0`. Please use new data source alicloud_express_connect_router_interfaces.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst routerInterfacesDs = alicloud.vpc.getRouterInterfaces({\n    nameRegex: \"^testenv\",\n    status: \"Active\",\n});\nexport const firstRouterInterfaceId = routerInterfacesDs.then(routerInterfacesDs =\u003e routerInterfacesDs.interfaces?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nrouter_interfaces_ds = alicloud.vpc.get_router_interfaces(name_regex=\"^testenv\",\n    status=\"Active\")\npulumi.export(\"firstRouterInterfaceId\", router_interfaces_ds.interfaces[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var routerInterfacesDs = AliCloud.Vpc.GetRouterInterfaces.Invoke(new()\n    {\n        NameRegex = \"^testenv\",\n        Status = \"Active\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstRouterInterfaceId\"] = routerInterfacesDs.Apply(getRouterInterfacesResult =\u003e getRouterInterfacesResult.Interfaces[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trouterInterfacesDs, err := vpc.GetRouterInterfaces(ctx, \u0026vpc.GetRouterInterfacesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^testenv\"),\n\t\t\tStatus:    pulumi.StringRef(\"Active\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRouterInterfaceId\", routerInterfacesDs.Interfaces[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetRouterInterfacesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var routerInterfacesDs = VpcFunctions.getRouterInterfaces(GetRouterInterfacesArgs.builder()\n            .nameRegex(\"^testenv\")\n            .status(\"Active\")\n            .build());\n\n        ctx.export(\"firstRouterInterfaceId\", routerInterfacesDs.interfaces()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  routerInterfacesDs:\n    fn::invoke:\n      function: alicloud:vpc:getRouterInterfaces\n      arguments:\n        nameRegex: ^testenv\n        status: Active\noutputs:\n  firstRouterInterfaceId: ${routerInterfacesDs.interfaces[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRouterInterfaces.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of router interface IDs.\n"},"nameRegex":{"type":"string","description":"A regex string used to filter by router interface name.\n"},"oppositeInterfaceId":{"type":"string","description":"ID of the peer router interface.\n"},"oppositeInterfaceOwnerId":{"type":"string","description":"Account ID of the owner of the peer router interface.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"role":{"type":"string","description":"Role of the router interface. Valid values are `InitiatingSide` (connection initiator) and \n`AcceptingSide` (connection receiver). The value of this parameter must be `InitiatingSide` if the \u003cspan pulumi-lang-nodejs=\"`routerType`\" pulumi-lang-dotnet=\"`RouterType`\" pulumi-lang-go=\"`routerType`\" pulumi-lang-python=\"`router_type`\" pulumi-lang-yaml=\"`routerType`\" pulumi-lang-java=\"`routerType`\"\u003e`router_type`\u003c/span\u003e is set to `VBR`.\n"},"routerId":{"type":"string","description":"ID of the VRouter located in the local region.\n"},"routerType":{"type":"string","description":"Router type in the local region. Valid values are `VRouter` and `VBR` (physical connection).\n"},"specification":{"type":"string","description":"Specification of the link, such as `Small.1` (10Mb), `Middle.1` (100Mb), `Large.2` (2Gb), ...etc.\n"},"status":{"type":"string","description":"Expected status. Valid values are `Active`, `Inactive` and `Idle`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRouterInterfaces.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of router interface IDs.\n","items":{"type":"string"},"type":"array"},"interfaces":{"description":"A list of router interfaces. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getRouterInterfacesInterface:getRouterInterfacesInterface"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of router interface names.\n","items":{"type":"string"},"type":"array"},"oppositeInterfaceId":{"description":"Peer router interface ID.\n","type":"string"},"oppositeInterfaceOwnerId":{"description":"Account ID of the owner of the peer router interface.\n","type":"string"},"outputFile":{"type":"string"},"role":{"description":"Router interface role. Possible values: `InitiatingSide` and `AcceptingSide`.\n","type":"string"},"routerId":{"description":"ID of the VRouter located in the local region.\n","type":"string"},"routerType":{"description":"Router type in the local region. Possible values: `VRouter` and `VBR`.\n","type":"string"},"specification":{"description":"Router interface specification. Possible values: `Small.1`, `Middle.1`, `Large.2`, ...etc.\n","type":"string"},"status":{"description":"Router interface status. Possible values: `Active`, `Inactive` and `Idle`.\n","type":"string"}},"required":["ids","interfaces","names","id"],"type":"object"}},"alicloud:vpc/getSnatEntries:getSnatEntries":{"description":"This data source provides a list of Snat Entries owned by an Alibaba Cloud account.\n\n\u003e **NOTE:** Available since 1.37.0+.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"snat-entry-example-name\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst fooNetwork = new alicloud.vpc.Network(\"foo\", {\n    name: name,\n    cidrBlock: \"172.16.0.0/12\",\n});\nconst fooSwitch = new alicloud.vpc.Switch(\"foo\", {\n    vpcId: fooNetwork.id,\n    cidrBlock: \"172.16.0.0/21\",\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n    vswitchName: name,\n});\nconst fooNatGateway = new alicloud.vpc.NatGateway(\"foo\", {\n    vpcId: fooNetwork.id,\n    specification: \"Small\",\n    name: name,\n});\nconst fooEipAddress = new alicloud.ecs.EipAddress(\"foo\", {addressName: name});\nconst fooEipAssociation = new alicloud.ecs.EipAssociation(\"foo\", {\n    allocationId: fooEipAddress.id,\n    instanceId: fooNatGateway.id,\n});\nconst fooSnatEntry = new alicloud.vpc.SnatEntry(\"foo\", {\n    snatTableId: fooNatGateway.snatTableIds,\n    sourceVswitchId: fooSwitch.id,\n    snatIp: fooEipAddress.ipAddress,\n});\nconst foo = alicloud.vpc.getSnatEntriesOutput({\n    snatTableId: fooSnatEntry.snatTableId,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"snat-entry-example-name\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\nfoo_network = alicloud.vpc.Network(\"foo\",\n    name=name,\n    cidr_block=\"172.16.0.0/12\")\nfoo_switch = alicloud.vpc.Switch(\"foo\",\n    vpc_id=foo_network.id,\n    cidr_block=\"172.16.0.0/21\",\n    availability_zone=default.zones[0].id,\n    vswitch_name=name)\nfoo_nat_gateway = alicloud.vpc.NatGateway(\"foo\",\n    vpc_id=foo_network.id,\n    specification=\"Small\",\n    name=name)\nfoo_eip_address = alicloud.ecs.EipAddress(\"foo\", address_name=name)\nfoo_eip_association = alicloud.ecs.EipAssociation(\"foo\",\n    allocation_id=foo_eip_address.id,\n    instance_id=foo_nat_gateway.id)\nfoo_snat_entry = alicloud.vpc.SnatEntry(\"foo\",\n    snat_table_id=foo_nat_gateway.snat_table_ids,\n    source_vswitch_id=foo_switch.id,\n    snat_ip=foo_eip_address.ip_address)\nfoo = alicloud.vpc.get_snat_entries_output(snat_table_id=foo_snat_entry.snat_table_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"snat-entry-example-name\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var fooNetwork = new AliCloud.Vpc.Network(\"foo\", new()\n    {\n        Name = name,\n        CidrBlock = \"172.16.0.0/12\",\n    });\n\n    var fooSwitch = new AliCloud.Vpc.Switch(\"foo\", new()\n    {\n        VpcId = fooNetwork.Id,\n        CidrBlock = \"172.16.0.0/21\",\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n        VswitchName = name,\n    });\n\n    var fooNatGateway = new AliCloud.Vpc.NatGateway(\"foo\", new()\n    {\n        VpcId = fooNetwork.Id,\n        Specification = \"Small\",\n        Name = name,\n    });\n\n    var fooEipAddress = new AliCloud.Ecs.EipAddress(\"foo\", new()\n    {\n        AddressName = name,\n    });\n\n    var fooEipAssociation = new AliCloud.Ecs.EipAssociation(\"foo\", new()\n    {\n        AllocationId = fooEipAddress.Id,\n        InstanceId = fooNatGateway.Id,\n    });\n\n    var fooSnatEntry = new AliCloud.Vpc.SnatEntry(\"foo\", new()\n    {\n        SnatTableId = fooNatGateway.SnatTableIds,\n        SourceVswitchId = fooSwitch.Id,\n        SnatIp = fooEipAddress.IpAddress,\n    });\n\n    var foo = AliCloud.Vpc.GetSnatEntries.Invoke(new()\n    {\n        SnatTableId = fooSnatEntry.SnatTableId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"snat-entry-example-name\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\n\t\t\tAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooNetwork, err := vpc.NewNetwork(ctx, \"foo\", \u0026vpc.NetworkArgs{\n\t\t\tName:      pulumi.String(name),\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/12\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooSwitch, err := vpc.NewSwitch(ctx, \"foo\", \u0026vpc.SwitchArgs{\n\t\t\tVpcId:            fooNetwork.ID(),\n\t\t\tCidrBlock:        pulumi.String(\"172.16.0.0/21\"),\n\t\t\tAvailabilityZone: pulumi.String(_default.Zones[0].Id),\n\t\t\tVswitchName:      pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooNatGateway, err := vpc.NewNatGateway(ctx, \"foo\", \u0026vpc.NatGatewayArgs{\n\t\t\tVpcId:         fooNetwork.ID(),\n\t\t\tSpecification: pulumi.String(\"Small\"),\n\t\t\tName:          pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooEipAddress, err := ecs.NewEipAddress(ctx, \"foo\", \u0026ecs.EipAddressArgs{\n\t\t\tAddressName: pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewEipAssociation(ctx, \"foo\", \u0026ecs.EipAssociationArgs{\n\t\t\tAllocationId: fooEipAddress.ID(),\n\t\t\tInstanceId:   fooNatGateway.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooSnatEntry, err := vpc.NewSnatEntry(ctx, \"foo\", \u0026vpc.SnatEntryArgs{\n\t\t\tSnatTableId:     fooNatGateway.SnatTableIds,\n\t\t\tSourceVswitchId: fooSwitch.ID(),\n\t\t\tSnatIp:          fooEipAddress.IpAddress,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = vpc.GetSnatEntriesOutput(ctx, vpc.GetSnatEntriesOutputArgs{\n\t\t\tSnatTableId: fooSnatEntry.SnatTableId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.NatGateway;\nimport com.pulumi.alicloud.vpc.NatGatewayArgs;\nimport com.pulumi.alicloud.ecs.EipAddress;\nimport com.pulumi.alicloud.ecs.EipAddressArgs;\nimport com.pulumi.alicloud.ecs.EipAssociation;\nimport com.pulumi.alicloud.ecs.EipAssociationArgs;\nimport com.pulumi.alicloud.vpc.SnatEntry;\nimport com.pulumi.alicloud.vpc.SnatEntryArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetSnatEntriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"snat-entry-example-name\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        var fooNetwork = new Network(\"fooNetwork\", NetworkArgs.builder()\n            .name(name)\n            .cidrBlock(\"172.16.0.0/12\")\n            .build());\n\n        var fooSwitch = new Switch(\"fooSwitch\", SwitchArgs.builder()\n            .vpcId(fooNetwork.id())\n            .cidrBlock(\"172.16.0.0/21\")\n            .availabilityZone(default_.zones()[0].id())\n            .vswitchName(name)\n            .build());\n\n        var fooNatGateway = new NatGateway(\"fooNatGateway\", NatGatewayArgs.builder()\n            .vpcId(fooNetwork.id())\n            .specification(\"Small\")\n            .name(name)\n            .build());\n\n        var fooEipAddress = new EipAddress(\"fooEipAddress\", EipAddressArgs.builder()\n            .addressName(name)\n            .build());\n\n        var fooEipAssociation = new EipAssociation(\"fooEipAssociation\", EipAssociationArgs.builder()\n            .allocationId(fooEipAddress.id())\n            .instanceId(fooNatGateway.id())\n            .build());\n\n        var fooSnatEntry = new SnatEntry(\"fooSnatEntry\", SnatEntryArgs.builder()\n            .snatTableId(fooNatGateway.snatTableIds())\n            .sourceVswitchId(fooSwitch.id())\n            .snatIp(fooEipAddress.ipAddress())\n            .build());\n\n        final var foo = VpcFunctions.getSnatEntries(GetSnatEntriesArgs.builder()\n            .snatTableId(fooSnatEntry.snatTableId())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: snat-entry-example-name\nresources:\n  fooNetwork:\n    type: alicloud:vpc:Network\n    name: foo\n    properties:\n      name: ${name}\n      cidrBlock: 172.16.0.0/12\n  fooSwitch:\n    type: alicloud:vpc:Switch\n    name: foo\n    properties:\n      vpcId: ${fooNetwork.id}\n      cidrBlock: 172.16.0.0/21\n      availabilityZone: ${default.zones[0].id}\n      vswitchName: ${name}\n  fooNatGateway:\n    type: alicloud:vpc:NatGateway\n    name: foo\n    properties:\n      vpcId: ${fooNetwork.id}\n      specification: Small\n      name: ${name}\n  fooEipAddress:\n    type: alicloud:ecs:EipAddress\n    name: foo\n    properties:\n      addressName: ${name}\n  fooEipAssociation:\n    type: alicloud:ecs:EipAssociation\n    name: foo\n    properties:\n      allocationId: ${fooEipAddress.id}\n      instanceId: ${fooNatGateway.id}\n  fooSnatEntry:\n    type: alicloud:vpc:SnatEntry\n    name: foo\n    properties:\n      snatTableId: ${fooNatGateway.snatTableIds}\n      sourceVswitchId: ${fooSwitch.id}\n      snatIp: ${fooEipAddress.ipAddress}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments:\n        availableResourceCreation: VSwitch\n  foo:\n    fn::invoke:\n      function: alicloud:vpc:getSnatEntries\n      arguments:\n        snatTableId: ${fooSnatEntry.snatTableId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSnatEntries.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Snat Entries IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by the resource name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"snatEntryName":{"type":"string","description":"The name of snat entry.\n"},"snatIp":{"type":"string","description":"The public IP of the Snat Entry.\n"},"snatTableId":{"type":"string","description":"The ID of the Snat table.\n"},"sourceCidr":{"type":"string","description":"The source CIDR block of the Snat Entry.\n"},"sourceVswitchId":{"type":"string","description":"The source vswitch ID.\n"},"status":{"type":"string","description":"The status of the Snat Entry. Valid values: `Available`, `Deleting` and `Pending`.\n"}},"type":"object","required":["snatTableId"]},"outputs":{"description":"A collection of values returned by getSnatEntries.\n","properties":{"entries":{"description":"A list of Snat Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getSnatEntriesEntry:getSnatEntriesEntry"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"(Optional) A list of Snat Entries IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Snat Entries names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"snatEntryName":{"description":"The name of snat entry.\n","type":"string"},"snatIp":{"description":"The public IP of the Snat Entry.\n","type":"string"},"snatTableId":{"type":"string"},"sourceCidr":{"description":"The source CIDR block of the Snat Entry.\n","type":"string"},"sourceVswitchId":{"description":"The source vswitch ID.\n","type":"string"},"status":{"description":"The status of the Snat Entry.\n","type":"string"}},"required":["entries","ids","names","snatTableId","id"],"type":"object"}},"alicloud:vpc/getSslVpnClientCerts:getSslVpnClientCerts":{"description":"The SSL-VPN client certificates data source lists lots of SSL-VPN client certificates resource information owned by an Alicloud account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst foo = alicloud.vpc.getSslVpnClientCerts({\n    ids: [\"fake-cert-id\"],\n    sslVpnServerId: \"fake-server-id\",\n    outputFile: \"/tmp/clientcert\",\n    nameRegex: \"^foo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfoo = alicloud.vpc.get_ssl_vpn_client_certs(ids=[\"fake-cert-id\"],\n    ssl_vpn_server_id=\"fake-server-id\",\n    output_file=\"/tmp/clientcert\",\n    name_regex=\"^foo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = AliCloud.Vpc.GetSslVpnClientCerts.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"fake-cert-id\",\n        },\n        SslVpnServerId = \"fake-server-id\",\n        OutputFile = \"/tmp/clientcert\",\n        NameRegex = \"^foo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpc.GetSslVpnClientCerts(ctx, \u0026vpc.GetSslVpnClientCertsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"fake-cert-id\",\n\t\t\t},\n\t\t\tSslVpnServerId: pulumi.StringRef(\"fake-server-id\"),\n\t\t\tOutputFile:     pulumi.StringRef(\"/tmp/clientcert\"),\n\t\t\tNameRegex:      pulumi.StringRef(\"^foo\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetSslVpnClientCertsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var foo = VpcFunctions.getSslVpnClientCerts(GetSslVpnClientCertsArgs.builder()\n            .ids(\"fake-cert-id\")\n            .sslVpnServerId(\"fake-server-id\")\n            .outputFile(\"/tmp/clientcert\")\n            .nameRegex(\"^foo\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      function: alicloud:vpc:getSslVpnClientCerts\n      arguments:\n        ids:\n          - fake-cert-id\n        sslVpnServerId: fake-server-id\n        outputFile: /tmp/clientcert\n        nameRegex: ^foo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSslVpnClientCerts.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"IDs of the SSL-VPN client certificates.\n"},"nameRegex":{"type":"string","description":"A regex string of SSL-VPN client certificate name.\n"},"outputFile":{"type":"string","description":"Save the result to the file.\n"},"sslVpnServerId":{"type":"string","description":"Use the SSL-VPN server ID as the search key.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSslVpnClientCerts.\n","properties":{"certs":{"description":"A list of SSL-VPN client certificates. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getSslVpnClientCertsCert:getSslVpnClientCertsCert"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of SSL-VPN client cert IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of SSL-VPN client cert names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"sslVpnServerId":{"description":"ID of the SSL-VPN Server.\n","type":"string"}},"required":["certs","ids","names","id"],"type":"object"}},"alicloud:vpc/getSslVpnServers:getSslVpnServers":{"description":"The SSL-VPN servers data source lists lots of SSL-VPN servers resource information owned by an Alicloud account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst foo = alicloud.vpc.getSslVpnServers({\n    ids: [\"fake-server-id\"],\n    vpnGatewayId: \"fake-vpn-id\",\n    outputFile: \"/tmp/sslserver\",\n    nameRegex: \"^foo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfoo = alicloud.vpc.get_ssl_vpn_servers(ids=[\"fake-server-id\"],\n    vpn_gateway_id=\"fake-vpn-id\",\n    output_file=\"/tmp/sslserver\",\n    name_regex=\"^foo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = AliCloud.Vpc.GetSslVpnServers.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"fake-server-id\",\n        },\n        VpnGatewayId = \"fake-vpn-id\",\n        OutputFile = \"/tmp/sslserver\",\n        NameRegex = \"^foo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpc.GetSslVpnServers(ctx, \u0026vpc.GetSslVpnServersArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"fake-server-id\",\n\t\t\t},\n\t\t\tVpnGatewayId: pulumi.StringRef(\"fake-vpn-id\"),\n\t\t\tOutputFile:   pulumi.StringRef(\"/tmp/sslserver\"),\n\t\t\tNameRegex:    pulumi.StringRef(\"^foo\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetSslVpnServersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var foo = VpcFunctions.getSslVpnServers(GetSslVpnServersArgs.builder()\n            .ids(\"fake-server-id\")\n            .vpnGatewayId(\"fake-vpn-id\")\n            .outputFile(\"/tmp/sslserver\")\n            .nameRegex(\"^foo\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      function: alicloud:vpc:getSslVpnServers\n      arguments:\n        ids:\n          - fake-server-id\n        vpnGatewayId: fake-vpn-id\n        outputFile: /tmp/sslserver\n        nameRegex: ^foo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSslVpnServers.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"IDs of the SSL-VPN servers.\n"},"nameRegex":{"type":"string","description":"A regex string of SSL-VPN server name.\n"},"outputFile":{"type":"string","description":"Save the result to the file.\n"},"vpnGatewayId":{"type":"string","description":"Use the VPN gateway ID as the search key.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSslVpnServers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of SSL-VPN server IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of SSL-VPN server names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"servers":{"description":"A list of SSL-VPN servers. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getSslVpnServersServer:getSslVpnServersServer"},"type":"array"},"vpnGatewayId":{"description":"The ID of the VPN gateway instance.\n","type":"string"}},"required":["ids","names","servers","id"],"type":"object"}},"alicloud:vpc/getSwitches:getSwitches":{"description":"This data source provides a list of VSwitches owned by an Alibaba Cloud account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"vswitchDatasourceName\";\nconst _default = alicloud.getZones({});\nconst vpc = new alicloud.vpc.Network(\"vpc\", {\n    cidrBlock: \"172.16.0.0/16\",\n    vpcName: name,\n});\nconst vswitch = new alicloud.vpc.Switch(\"vswitch\", {\n    vswitchName: name,\n    cidrBlock: \"172.16.0.0/24\",\n    vpcId: vpc.id,\n    availabilityZone: _default.then(_default =\u003e _default.zones?.[0]?.id),\n});\nconst defaultGetSwitches = alicloud.vpc.getSwitchesOutput({\n    nameRegex: vswitch.vswitchName,\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"vswitchDatasourceName\"\ndefault = alicloud.get_zones()\nvpc = alicloud.vpc.Network(\"vpc\",\n    cidr_block=\"172.16.0.0/16\",\n    vpc_name=name)\nvswitch = alicloud.vpc.Switch(\"vswitch\",\n    vswitch_name=name,\n    cidr_block=\"172.16.0.0/24\",\n    vpc_id=vpc.id,\n    availability_zone=default.zones[0].id)\ndefault_get_switches = alicloud.vpc.get_switches_output(name_regex=vswitch.vswitch_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"vswitchDatasourceName\";\n    var @default = AliCloud.GetZones.Invoke();\n\n    var vpc = new AliCloud.Vpc.Network(\"vpc\", new()\n    {\n        CidrBlock = \"172.16.0.0/16\",\n        VpcName = name,\n    });\n\n    var vswitch = new AliCloud.Vpc.Switch(\"vswitch\", new()\n    {\n        VswitchName = name,\n        CidrBlock = \"172.16.0.0/24\",\n        VpcId = vpc.Id,\n        AvailabilityZone = @default.Apply(@default =\u003e @default.Apply(getZonesResult =\u003e getZonesResult.Zones[0]?.Id)),\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        NameRegex = vswitch.VswitchName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tname := \"vswitchDatasourceName\"\n\t\tif param := cfg.Get(\"name\"); param != \"\" {\n\t\t\tname = param\n\t\t}\n\t\t_default, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpc, err := vpc.NewNetwork(ctx, \"vpc\", \u0026vpc.NetworkArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t\tVpcName:   pulumi.String(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvswitch, err := vpc.NewSwitch(ctx, \"vswitch\", \u0026vpc.SwitchArgs{\n\t\t\tVswitchName:      pulumi.String(name),\n\t\t\tCidrBlock:        pulumi.String(\"172.16.0.0/24\"),\n\t\t\tVpcId:            vpc.ID(),\n\t\t\tAvailabilityZone: pulumi.String(_default.Zones[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = vpc.GetSwitchesOutput(ctx, vpc.GetSwitchesOutputArgs{\n\t\t\tNameRegex: vswitch.VswitchName,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.Network;\nimport com.pulumi.alicloud.vpc.NetworkArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"vswitchDatasourceName\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .build());\n\n        var vpc = new Network(\"vpc\", NetworkArgs.builder()\n            .cidrBlock(\"172.16.0.0/16\")\n            .vpcName(name)\n            .build());\n\n        var vswitch = new Switch(\"vswitch\", SwitchArgs.builder()\n            .vswitchName(name)\n            .cidrBlock(\"172.16.0.0/24\")\n            .vpcId(vpc.id())\n            .availabilityZone(default_.zones()[0].id())\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .nameRegex(vswitch.vswitchName())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  name:\n    type: string\n    default: vswitchDatasourceName\nresources:\n  vpc:\n    type: alicloud:vpc:Network\n    properties:\n      cidrBlock: 172.16.0.0/16\n      vpcName: ${name}\n  vswitch:\n    type: alicloud:vpc:Switch\n    properties:\n      vswitchName: ${name}\n      cidrBlock: 172.16.0.0/24\n      vpcId: ${vpc.id}\n      availabilityZone: ${default.zones[0].id}\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:getZones\n      arguments: {}\n  defaultGetSwitches:\n    fn::invoke:\n      function: alicloud:vpc:getSwitches\n      arguments:\n        nameRegex: ${vswitch.vswitchName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSwitches.\n","properties":{"cidrBlock":{"type":"string","description":"Filter results by a specific CIDR block. For example: \"172.16.0.0/12\".\n"},"dryRun":{"type":"boolean","description":"Specifies whether to precheck this request only. Valid values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of vSwitch IDs.\n"},"isDefault":{"type":"boolean","description":"Indicate whether the vSwitch is created by the system.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The Id of resource group which VSWitch belongs.\n"},"routeTableId":{"type":"string","description":"The route table ID of the vSwitch.\n"},"status":{"type":"string","description":"The status of the vSwitch. Valid values: `Available` and `Pending`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of tags to assign to the resource.\n"},"vpcId":{"type":"string","description":"ID of the VPC that owns the vSwitch.\n"},"vswitchName":{"type":"string","description":"The name of the vSwitch.\n"},"vswitchOwnerId":{"type":"integer","description":"The vSwitch owner id.\n"},"zoneId":{"type":"string","description":"The availability zone of the vSwitch.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSwitches.\n","properties":{"cidrBlock":{"description":"CIDR block of the vSwitch.\n","type":"string"},"dryRun":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of vSwitch IDs.\n","items":{"type":"string"},"type":"array"},"isDefault":{"description":"Whether the vSwitch is the default one in the region.\n","type":"boolean"},"nameRegex":{"type":"string"},"names":{"description":"A list of vSwitch names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"description":"The resource group ID of the vSwitch.\n","type":"string"},"routeTableId":{"description":"The route table ID of the vSwitch.\n","type":"string"},"status":{"description":"The status of the vSwitch.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"The Tags of the vSwitch.\n","type":"object"},"vpcId":{"description":"ID of the VPC that owns the vSwitch.\n","type":"string"},"vswitchName":{"description":"Name of the vSwitch.\n","type":"string"},"vswitchOwnerId":{"type":"integer"},"vswitches":{"description":"A list of VSwitches. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getSwitchesVswitch:getSwitchesVswitch"},"type":"array"},"zoneId":{"description":"ID of the availability zone where the vSwitch is located.\n","type":"string"}},"required":["ids","names","vswitches","id"],"type":"object"}},"alicloud:vpc/getTrafficMirrorFilterEgressRules:getTrafficMirrorFilterEgressRules":{"description":"This data source provides the Vpc Traffic Mirror Filter Egress Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.140.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getTrafficMirrorFilterEgressRules({\n    trafficMirrorFilterId: \"example_traffic_mirror_filter_id\",\n    ids: [\"example_id\"],\n});\nexport const vpcTrafficMirrorFilterEgressRuleId1 = ids.then(ids =\u003e ids.rules?.[0]?.id);\nconst status = alicloud.vpc.getTrafficMirrorFilterEgressRules({\n    trafficMirrorFilterId: \"example_traffic_mirror_filter_id\",\n    ids: [\"example_id\"],\n    status: \"Created\",\n});\nexport const vpcTrafficMirrorFilterEgressRuleId2 = status.then(status =\u003e status.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_traffic_mirror_filter_egress_rules(traffic_mirror_filter_id=\"example_traffic_mirror_filter_id\",\n    ids=[\"example_id\"])\npulumi.export(\"vpcTrafficMirrorFilterEgressRuleId1\", ids.rules[0].id)\nstatus = alicloud.vpc.get_traffic_mirror_filter_egress_rules(traffic_mirror_filter_id=\"example_traffic_mirror_filter_id\",\n    ids=[\"example_id\"],\n    status=\"Created\")\npulumi.export(\"vpcTrafficMirrorFilterEgressRuleId2\", status.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetTrafficMirrorFilterEgressRules.Invoke(new()\n    {\n        TrafficMirrorFilterId = \"example_traffic_mirror_filter_id\",\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var status = AliCloud.Vpc.GetTrafficMirrorFilterEgressRules.Invoke(new()\n    {\n        TrafficMirrorFilterId = \"example_traffic_mirror_filter_id\",\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        Status = \"Created\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcTrafficMirrorFilterEgressRuleId1\"] = ids.Apply(getTrafficMirrorFilterEgressRulesResult =\u003e getTrafficMirrorFilterEgressRulesResult.Rules[0]?.Id),\n        [\"vpcTrafficMirrorFilterEgressRuleId2\"] = status.Apply(getTrafficMirrorFilterEgressRulesResult =\u003e getTrafficMirrorFilterEgressRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetTrafficMirrorFilterEgressRules(ctx, \u0026vpc.GetTrafficMirrorFilterEgressRulesArgs{\n\t\t\tTrafficMirrorFilterId: \"example_traffic_mirror_filter_id\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorFilterEgressRuleId1\", ids.Rules[0].Id)\n\t\tstatus, err := vpc.GetTrafficMirrorFilterEgressRules(ctx, \u0026vpc.GetTrafficMirrorFilterEgressRulesArgs{\n\t\t\tTrafficMirrorFilterId: \"example_traffic_mirror_filter_id\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tStatus: pulumi.StringRef(\"Created\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorFilterEgressRuleId2\", status.Rules[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetTrafficMirrorFilterEgressRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getTrafficMirrorFilterEgressRules(GetTrafficMirrorFilterEgressRulesArgs.builder()\n            .trafficMirrorFilterId(\"example_traffic_mirror_filter_id\")\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorFilterEgressRuleId1\", ids.rules()[0].id());\n        final var status = VpcFunctions.getTrafficMirrorFilterEgressRules(GetTrafficMirrorFilterEgressRulesArgs.builder()\n            .trafficMirrorFilterId(\"example_traffic_mirror_filter_id\")\n            .ids(\"example_id\")\n            .status(\"Created\")\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorFilterEgressRuleId2\", status.rules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorFilterEgressRules\n      arguments:\n        trafficMirrorFilterId: example_traffic_mirror_filter_id\n        ids:\n          - example_id\n  status:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorFilterEgressRules\n      arguments:\n        trafficMirrorFilterId: example_traffic_mirror_filter_id\n        ids:\n          - example_id\n        status: Created\noutputs:\n  vpcTrafficMirrorFilterEgressRuleId1: ${ids.rules[0].id}\n  vpcTrafficMirrorFilterEgressRuleId2: ${status.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTrafficMirrorFilterEgressRules.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Traffic Mirror Filter Egress Rule IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values:`Creating`, `Created`, `Modifying` and `Deleting`.\n"},"trafficMirrorFilterId":{"type":"string","description":"The ID of the Traffic Mirror Filter.\n"}},"type":"object","required":["trafficMirrorFilterId"]},"outputs":{"description":"A collection of values returned by getTrafficMirrorFilterEgressRules.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"rules":{"items":{"$ref":"#/types/alicloud:vpc/getTrafficMirrorFilterEgressRulesRule:getTrafficMirrorFilterEgressRulesRule"},"type":"array"},"status":{"type":"string"},"trafficMirrorFilterId":{"type":"string"}},"required":["ids","rules","trafficMirrorFilterId","id"],"type":"object"}},"alicloud:vpc/getTrafficMirrorFilterIngressRules:getTrafficMirrorFilterIngressRules":{"description":"This data source provides the Vpc Traffic Mirror Filter Ingress Rules of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.141.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getTrafficMirrorFilterIngressRules({\n    trafficMirrorFilterId: \"example_traffic_mirror_filter_id\",\n    ids: [\"example_id\"],\n});\nexport const vpcTrafficMirrorFilterIngressRuleId1 = ids.then(ids =\u003e ids.rules?.[0]?.id);\nconst status = alicloud.vpc.getTrafficMirrorFilterIngressRules({\n    trafficMirrorFilterId: \"example_traffic_mirror_filter_id\",\n    ids: [\"example_id\"],\n    status: \"Created\",\n});\nexport const vpcTrafficMirrorFilterIngressRuleId2 = status.then(status =\u003e status.rules?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_traffic_mirror_filter_ingress_rules(traffic_mirror_filter_id=\"example_traffic_mirror_filter_id\",\n    ids=[\"example_id\"])\npulumi.export(\"vpcTrafficMirrorFilterIngressRuleId1\", ids.rules[0].id)\nstatus = alicloud.vpc.get_traffic_mirror_filter_ingress_rules(traffic_mirror_filter_id=\"example_traffic_mirror_filter_id\",\n    ids=[\"example_id\"],\n    status=\"Created\")\npulumi.export(\"vpcTrafficMirrorFilterIngressRuleId2\", status.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetTrafficMirrorFilterIngressRules.Invoke(new()\n    {\n        TrafficMirrorFilterId = \"example_traffic_mirror_filter_id\",\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var status = AliCloud.Vpc.GetTrafficMirrorFilterIngressRules.Invoke(new()\n    {\n        TrafficMirrorFilterId = \"example_traffic_mirror_filter_id\",\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        Status = \"Created\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcTrafficMirrorFilterIngressRuleId1\"] = ids.Apply(getTrafficMirrorFilterIngressRulesResult =\u003e getTrafficMirrorFilterIngressRulesResult.Rules[0]?.Id),\n        [\"vpcTrafficMirrorFilterIngressRuleId2\"] = status.Apply(getTrafficMirrorFilterIngressRulesResult =\u003e getTrafficMirrorFilterIngressRulesResult.Rules[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetTrafficMirrorFilterIngressRules(ctx, \u0026vpc.GetTrafficMirrorFilterIngressRulesArgs{\n\t\t\tTrafficMirrorFilterId: \"example_traffic_mirror_filter_id\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorFilterIngressRuleId1\", ids.Rules[0].Id)\n\t\tstatus, err := vpc.GetTrafficMirrorFilterIngressRules(ctx, \u0026vpc.GetTrafficMirrorFilterIngressRulesArgs{\n\t\t\tTrafficMirrorFilterId: \"example_traffic_mirror_filter_id\",\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tStatus: pulumi.StringRef(\"Created\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorFilterIngressRuleId2\", status.Rules[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetTrafficMirrorFilterIngressRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getTrafficMirrorFilterIngressRules(GetTrafficMirrorFilterIngressRulesArgs.builder()\n            .trafficMirrorFilterId(\"example_traffic_mirror_filter_id\")\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorFilterIngressRuleId1\", ids.rules()[0].id());\n        final var status = VpcFunctions.getTrafficMirrorFilterIngressRules(GetTrafficMirrorFilterIngressRulesArgs.builder()\n            .trafficMirrorFilterId(\"example_traffic_mirror_filter_id\")\n            .ids(\"example_id\")\n            .status(\"Created\")\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorFilterIngressRuleId2\", status.rules()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorFilterIngressRules\n      arguments:\n        trafficMirrorFilterId: example_traffic_mirror_filter_id\n        ids:\n          - example_id\n  status:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorFilterIngressRules\n      arguments:\n        trafficMirrorFilterId: example_traffic_mirror_filter_id\n        ids:\n          - example_id\n        status: Created\noutputs:\n  vpcTrafficMirrorFilterIngressRuleId1: ${ids.rules[0].id}\n  vpcTrafficMirrorFilterIngressRuleId2: ${status.rules[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTrafficMirrorFilterIngressRules.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Traffic Mirror Filter Ingress Rule IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The status of the resource. Valid values:`Creating`, `Created`, `Modifying` and `Deleting`.\n"},"trafficMirrorFilterId":{"type":"string","description":"The ID of the Traffic Mirror Filter.\n"}},"type":"object","required":["trafficMirrorFilterId"]},"outputs":{"description":"A collection of values returned by getTrafficMirrorFilterIngressRules.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"rules":{"items":{"$ref":"#/types/alicloud:vpc/getTrafficMirrorFilterIngressRulesRule:getTrafficMirrorFilterIngressRulesRule"},"type":"array"},"status":{"type":"string"},"trafficMirrorFilterId":{"type":"string"}},"required":["ids","rules","trafficMirrorFilterId","id"],"type":"object"}},"alicloud:vpc/getTrafficMirrorFilters:getTrafficMirrorFilters":{"description":"This data source provides the Vpc Traffic Mirror Filters of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.140.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getTrafficMirrorFilters({\n    ids: [\"example_id\"],\n});\nexport const vpcTrafficMirrorFilterId1 = ids.then(ids =\u003e ids.filters?.[0]?.id);\nconst nameRegex = alicloud.vpc.getTrafficMirrorFilters({\n    nameRegex: \"^my-TrafficMirrorFilter\",\n});\nexport const vpcTrafficMirrorFilterId2 = nameRegex.then(nameRegex =\u003e nameRegex.filters?.[0]?.id);\nconst filterName = alicloud.vpc.getTrafficMirrorFilters({\n    trafficMirrorFilterName: \"example_traffic_mirror_filter_name\",\n});\nexport const vpcTrafficMirrorFilterId3 = filterName.then(filterName =\u003e filterName.filters?.[0]?.id);\nconst status = alicloud.vpc.getTrafficMirrorFilters({\n    status: \"^my-TrafficMirrorFilter\",\n});\nexport const vpcTrafficMirrorFilterId4 = status.then(status =\u003e status.filters?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_traffic_mirror_filters(ids=[\"example_id\"])\npulumi.export(\"vpcTrafficMirrorFilterId1\", ids.filters[0].id)\nname_regex = alicloud.vpc.get_traffic_mirror_filters(name_regex=\"^my-TrafficMirrorFilter\")\npulumi.export(\"vpcTrafficMirrorFilterId2\", name_regex.filters[0].id)\nfilter_name = alicloud.vpc.get_traffic_mirror_filters(traffic_mirror_filter_name=\"example_traffic_mirror_filter_name\")\npulumi.export(\"vpcTrafficMirrorFilterId3\", filter_name.filters[0].id)\nstatus = alicloud.vpc.get_traffic_mirror_filters(status=\"^my-TrafficMirrorFilter\")\npulumi.export(\"vpcTrafficMirrorFilterId4\", status.filters[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetTrafficMirrorFilters.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Vpc.GetTrafficMirrorFilters.Invoke(new()\n    {\n        NameRegex = \"^my-TrafficMirrorFilter\",\n    });\n\n    var filterName = AliCloud.Vpc.GetTrafficMirrorFilters.Invoke(new()\n    {\n        TrafficMirrorFilterName = \"example_traffic_mirror_filter_name\",\n    });\n\n    var status = AliCloud.Vpc.GetTrafficMirrorFilters.Invoke(new()\n    {\n        Status = \"^my-TrafficMirrorFilter\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcTrafficMirrorFilterId1\"] = ids.Apply(getTrafficMirrorFiltersResult =\u003e getTrafficMirrorFiltersResult.Filters[0]?.Id),\n        [\"vpcTrafficMirrorFilterId2\"] = nameRegex.Apply(getTrafficMirrorFiltersResult =\u003e getTrafficMirrorFiltersResult.Filters[0]?.Id),\n        [\"vpcTrafficMirrorFilterId3\"] = filterName.Apply(getTrafficMirrorFiltersResult =\u003e getTrafficMirrorFiltersResult.Filters[0]?.Id),\n        [\"vpcTrafficMirrorFilterId4\"] = status.Apply(getTrafficMirrorFiltersResult =\u003e getTrafficMirrorFiltersResult.Filters[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetTrafficMirrorFilters(ctx, \u0026vpc.GetTrafficMirrorFiltersArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorFilterId1\", ids.Filters[0].Id)\n\t\tnameRegex, err := vpc.GetTrafficMirrorFilters(ctx, \u0026vpc.GetTrafficMirrorFiltersArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-TrafficMirrorFilter\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorFilterId2\", nameRegex.Filters[0].Id)\n\t\tfilterName, err := vpc.GetTrafficMirrorFilters(ctx, \u0026vpc.GetTrafficMirrorFiltersArgs{\n\t\t\tTrafficMirrorFilterName: pulumi.StringRef(\"example_traffic_mirror_filter_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorFilterId3\", filterName.Filters[0].Id)\n\t\tstatus, err := vpc.GetTrafficMirrorFilters(ctx, \u0026vpc.GetTrafficMirrorFiltersArgs{\n\t\t\tStatus: pulumi.StringRef(\"^my-TrafficMirrorFilter\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorFilterId4\", status.Filters[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetTrafficMirrorFiltersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getTrafficMirrorFilters(GetTrafficMirrorFiltersArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorFilterId1\", ids.filters()[0].id());\n        final var nameRegex = VpcFunctions.getTrafficMirrorFilters(GetTrafficMirrorFiltersArgs.builder()\n            .nameRegex(\"^my-TrafficMirrorFilter\")\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorFilterId2\", nameRegex.filters()[0].id());\n        final var filterName = VpcFunctions.getTrafficMirrorFilters(GetTrafficMirrorFiltersArgs.builder()\n            .trafficMirrorFilterName(\"example_traffic_mirror_filter_name\")\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorFilterId3\", filterName.filters()[0].id());\n        final var status = VpcFunctions.getTrafficMirrorFilters(GetTrafficMirrorFiltersArgs.builder()\n            .status(\"^my-TrafficMirrorFilter\")\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorFilterId4\", status.filters()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorFilters\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorFilters\n      arguments:\n        nameRegex: ^my-TrafficMirrorFilter\n  filterName:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorFilters\n      arguments:\n        trafficMirrorFilterName: example_traffic_mirror_filter_name\n  status:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorFilters\n      arguments:\n        status: ^my-TrafficMirrorFilter\noutputs:\n  vpcTrafficMirrorFilterId1: ${ids.filters[0].id}\n  vpcTrafficMirrorFilterId2: ${nameRegex.filters[0].id}\n  vpcTrafficMirrorFilterId3: ${filterName.filters[0].id}\n  vpcTrafficMirrorFilterId4: ${status.filters[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTrafficMirrorFilters.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Traffic Mirror Filter IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Traffic Mirror Filter name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"status":{"type":"string","description":"The state of the filter. Valid values:`Creating`, `Created`, `Modifying` and `Deleting`. `Creating`: The filter is being created. `Created`: The filter is created. `Modifying`: The filter is being modified. `Deleting`: The filter is being deleted.\n"},"trafficMirrorFilterName":{"type":"string","description":"The name of the filter. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length, and can contain digits, periods (.), underscores (_), and hyphens (-). It must start with a letter and cannot start with `http://` or `https://`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTrafficMirrorFilters.\n","properties":{"filters":{"description":"A list of Vpc Traffic Mirror Filters. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpc/getTrafficMirrorFiltersFilter:getTrafficMirrorFiltersFilter"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of Traffic Mirror Filter names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"status":{"description":"The state of the filter. Valid values:`Creating`, `Created`, `Modifying` and `Deleting`. `Creating`: The filter is being created. `Created`: The filter is created. `Modifying`: The filter is being modified. `Deleting`: The filter is being deleted.\n","type":"string"},"trafficMirrorFilterName":{"description":"The name of the filter.\n","type":"string"}},"required":["filters","ids","names","id"],"type":"object"}},"alicloud:vpc/getTrafficMirrorService:getTrafficMirrorService":{"description":"Using this data source can open VPC Traffic Mirror service automatically. If the service has been opened, it will return opened.\n\nFor information about VPC Traffic Mirror and how to use it, see [What is VPC Traffic Mirror](https://www.alibabacloud.com/help/en/vpc/user-guide/traffic-mirroring-overview).\n\n\u003e **NOTE:** Available since v1.141.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst open = alicloud.vpc.getTrafficMirrorService({\n    enable: \"On\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nopen = alicloud.vpc.get_traffic_mirror_service(enable=\"On\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var open = AliCloud.Vpc.GetTrafficMirrorService.Invoke(new()\n    {\n        Enable = \"On\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpc.GetTrafficMirrorService(ctx, \u0026vpc.GetTrafficMirrorServiceArgs{\n\t\t\tEnable: pulumi.StringRef(\"On\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetTrafficMirrorServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var open = VpcFunctions.getTrafficMirrorService(GetTrafficMirrorServiceArgs.builder()\n            .enable(\"On\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  open:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorService\n      arguments:\n        enable: On\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTrafficMirrorService.\n","properties":{"enable":{"type":"string","description":"Setting the value to `On` to enable the service. If has been enabled, return the result. Default value: `Off`. Valid values: `On` and `Off`.\n\n\u003e **NOTE:** Setting `enable = \"On\"` to open the VPC Traffic Mirror service that means you have read and agreed the [VPC Traffic Mirror Terms of Service](https://help.aliyun.com/zh/vpc/support/vpc-terms-of-service). The service can not closed once it is opened.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTrafficMirrorService.\n","properties":{"enable":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"status":{"description":"The current service enable status.\n","type":"string"}},"required":["status","id"],"type":"object"}},"alicloud:vpc/getTrafficMirrorSessions:getTrafficMirrorSessions":{"description":"This data source provides the Vpc Traffic Mirror Sessions of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.142.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst ids = alicloud.vpc.getTrafficMirrorSessions({\n    ids: [\"example_id\"],\n});\nexport const vpcTrafficMirrorSessionId1 = ids.then(ids =\u003e ids.sessions?.[0]?.id);\nconst nameRegex = alicloud.vpc.getTrafficMirrorSessions({\n    nameRegex: \"^my-TrafficMirrorSession\",\n});\nexport const vpcTrafficMirrorSessionId2 = nameRegex.then(nameRegex =\u003e nameRegex.sessions?.[0]?.id);\nconst enabled = alicloud.vpc.getTrafficMirrorSessions({\n    ids: [\"example_id\"],\n    enabled: false,\n});\nexport const vpcTrafficMirrorSessionId3 = enabled.then(enabled =\u003e enabled.sessions?.[0]?.id);\nconst priority = alicloud.vpc.getTrafficMirrorSessions({\n    ids: [\"example_id\"],\n    priority: 1,\n});\nexport const vpcTrafficMirrorSessionId4 = priority.then(priority =\u003e priority.sessions?.[0]?.id);\nconst filterId = alicloud.vpc.getTrafficMirrorSessions({\n    ids: [\"example_id\"],\n    trafficMirrorFilterId: \"example_value\",\n});\nexport const vpcTrafficMirrorSessionId5 = filterId.then(filterId =\u003e filterId.sessions?.[0]?.id);\nconst sessionName = alicloud.vpc.getTrafficMirrorSessions({\n    ids: [\"example_id\"],\n    trafficMirrorSessionName: \"example_value\",\n});\nexport const vpcTrafficMirrorSessionId6 = sessionName.then(sessionName =\u003e sessionName.sessions?.[0]?.id);\nconst sourceId = alicloud.vpc.getTrafficMirrorSessions({\n    ids: [\"example_id\"],\n    trafficMirrorSourceId: \"example_value\",\n});\nexport const vpcTrafficMirrorSessionId7 = sourceId.then(sourceId =\u003e sourceId.sessions?.[0]?.id);\nconst targetId = alicloud.vpc.getTrafficMirrorSessions({\n    ids: [\"example_id\"],\n    trafficMirrorTargetId: \"example_value\",\n});\nexport const vpcTrafficMirrorSessionId8 = targetId.then(targetId =\u003e targetId.sessions?.[0]?.id);\nconst status = alicloud.vpc.getTrafficMirrorSessions({\n    ids: [\"example_id\"],\n    status: \"Created\",\n});\nexport const vpcTrafficMirrorSessionId9 = status.then(status =\u003e status.sessions?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nids = alicloud.vpc.get_traffic_mirror_sessions(ids=[\"example_id\"])\npulumi.export(\"vpcTrafficMirrorSessionId1\", ids.sessions[0].id)\nname_regex = alicloud.vpc.get_traffic_mirror_sessions(name_regex=\"^my-TrafficMirrorSession\")\npulumi.export(\"vpcTrafficMirrorSessionId2\", name_regex.sessions[0].id)\nenabled = alicloud.vpc.get_traffic_mirror_sessions(ids=[\"example_id\"],\n    enabled=False)\npulumi.export(\"vpcTrafficMirrorSessionId3\", enabled.sessions[0].id)\npriority = alicloud.vpc.get_traffic_mirror_sessions(ids=[\"example_id\"],\n    priority=1)\npulumi.export(\"vpcTrafficMirrorSessionId4\", priority.sessions[0].id)\nfilter_id = alicloud.vpc.get_traffic_mirror_sessions(ids=[\"example_id\"],\n    traffic_mirror_filter_id=\"example_value\")\npulumi.export(\"vpcTrafficMirrorSessionId5\", filter_id.sessions[0].id)\nsession_name = alicloud.vpc.get_traffic_mirror_sessions(ids=[\"example_id\"],\n    traffic_mirror_session_name=\"example_value\")\npulumi.export(\"vpcTrafficMirrorSessionId6\", session_name.sessions[0].id)\nsource_id = alicloud.vpc.get_traffic_mirror_sessions(ids=[\"example_id\"],\n    traffic_mirror_source_id=\"example_value\")\npulumi.export(\"vpcTrafficMirrorSessionId7\", source_id.sessions[0].id)\ntarget_id = alicloud.vpc.get_traffic_mirror_sessions(ids=[\"example_id\"],\n    traffic_mirror_target_id=\"example_value\")\npulumi.export(\"vpcTrafficMirrorSessionId8\", target_id.sessions[0].id)\nstatus = alicloud.vpc.get_traffic_mirror_sessions(ids=[\"example_id\"],\n    status=\"Created\")\npulumi.export(\"vpcTrafficMirrorSessionId9\", status.sessions[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ids = AliCloud.Vpc.GetTrafficMirrorSessions.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var nameRegex = AliCloud.Vpc.GetTrafficMirrorSessions.Invoke(new()\n    {\n        NameRegex = \"^my-TrafficMirrorSession\",\n    });\n\n    var enabled = AliCloud.Vpc.GetTrafficMirrorSessions.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        Enabled = false,\n    });\n\n    var priority = AliCloud.Vpc.GetTrafficMirrorSessions.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        Priority = 1,\n    });\n\n    var filterId = AliCloud.Vpc.GetTrafficMirrorSessions.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        TrafficMirrorFilterId = \"example_value\",\n    });\n\n    var sessionName = AliCloud.Vpc.GetTrafficMirrorSessions.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        TrafficMirrorSessionName = \"example_value\",\n    });\n\n    var sourceId = AliCloud.Vpc.GetTrafficMirrorSessions.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        TrafficMirrorSourceId = \"example_value\",\n    });\n\n    var targetId = AliCloud.Vpc.GetTrafficMirrorSessions.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        TrafficMirrorTargetId = \"example_value\",\n    });\n\n    var status = AliCloud.Vpc.GetTrafficMirrorSessions.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n        Status = \"Created\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpcTrafficMirrorSessionId1\"] = ids.Apply(getTrafficMirrorSessionsResult =\u003e getTrafficMirrorSessionsResult.Sessions[0]?.Id),\n        [\"vpcTrafficMirrorSessionId2\"] = nameRegex.Apply(getTrafficMirrorSessionsResult =\u003e getTrafficMirrorSessionsResult.Sessions[0]?.Id),\n        [\"vpcTrafficMirrorSessionId3\"] = enabled.Apply(getTrafficMirrorSessionsResult =\u003e getTrafficMirrorSessionsResult.Sessions[0]?.Id),\n        [\"vpcTrafficMirrorSessionId4\"] = priority.Apply(getTrafficMirrorSessionsResult =\u003e getTrafficMirrorSessionsResult.Sessions[0]?.Id),\n        [\"vpcTrafficMirrorSessionId5\"] = filterId.Apply(getTrafficMirrorSessionsResult =\u003e getTrafficMirrorSessionsResult.Sessions[0]?.Id),\n        [\"vpcTrafficMirrorSessionId6\"] = sessionName.Apply(getTrafficMirrorSessionsResult =\u003e getTrafficMirrorSessionsResult.Sessions[0]?.Id),\n        [\"vpcTrafficMirrorSessionId7\"] = sourceId.Apply(getTrafficMirrorSessionsResult =\u003e getTrafficMirrorSessionsResult.Sessions[0]?.Id),\n        [\"vpcTrafficMirrorSessionId8\"] = targetId.Apply(getTrafficMirrorSessionsResult =\u003e getTrafficMirrorSessionsResult.Sessions[0]?.Id),\n        [\"vpcTrafficMirrorSessionId9\"] = status.Apply(getTrafficMirrorSessionsResult =\u003e getTrafficMirrorSessionsResult.Sessions[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tids, err := vpc.GetTrafficMirrorSessions(ctx, \u0026vpc.GetTrafficMirrorSessionsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorSessionId1\", ids.Sessions[0].Id)\n\t\tnameRegex, err := vpc.GetTrafficMirrorSessions(ctx, \u0026vpc.GetTrafficMirrorSessionsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^my-TrafficMirrorSession\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorSessionId2\", nameRegex.Sessions[0].Id)\n\t\tenabled, err := vpc.GetTrafficMirrorSessions(ctx, \u0026vpc.GetTrafficMirrorSessionsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tEnabled: pulumi.BoolRef(false),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorSessionId3\", enabled.Sessions[0].Id)\n\t\tpriority, err := vpc.GetTrafficMirrorSessions(ctx, \u0026vpc.GetTrafficMirrorSessionsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tPriority: pulumi.IntRef(1),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorSessionId4\", priority.Sessions[0].Id)\n\t\tfilterId, err := vpc.GetTrafficMirrorSessions(ctx, \u0026vpc.GetTrafficMirrorSessionsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tTrafficMirrorFilterId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorSessionId5\", filterId.Sessions[0].Id)\n\t\tsessionName, err := vpc.GetTrafficMirrorSessions(ctx, \u0026vpc.GetTrafficMirrorSessionsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tTrafficMirrorSessionName: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorSessionId6\", sessionName.Sessions[0].Id)\n\t\tsourceId, err := vpc.GetTrafficMirrorSessions(ctx, \u0026vpc.GetTrafficMirrorSessionsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tTrafficMirrorSourceId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorSessionId7\", sourceId.Sessions[0].Id)\n\t\ttargetId, err := vpc.GetTrafficMirrorSessions(ctx, \u0026vpc.GetTrafficMirrorSessionsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tTrafficMirrorTargetId: pulumi.StringRef(\"example_value\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorSessionId8\", targetId.Sessions[0].Id)\n\t\tstatus, err := vpc.GetTrafficMirrorSessions(ctx, \u0026vpc.GetTrafficMirrorSessionsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t\tStatus: pulumi.StringRef(\"Created\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"vpcTrafficMirrorSessionId9\", status.Sessions[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetTrafficMirrorSessionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ids = VpcFunctions.getTrafficMirrorSessions(GetTrafficMirrorSessionsArgs.builder()\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorSessionId1\", ids.sessions()[0].id());\n        final var nameRegex = VpcFunctions.getTrafficMirrorSessions(GetTrafficMirrorSessionsArgs.builder()\n            .nameRegex(\"^my-TrafficMirrorSession\")\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorSessionId2\", nameRegex.sessions()[0].id());\n        final var enabled = VpcFunctions.getTrafficMirrorSessions(GetTrafficMirrorSessionsArgs.builder()\n            .ids(\"example_id\")\n            .enabled(false)\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorSessionId3\", enabled.sessions()[0].id());\n        final var priority = VpcFunctions.getTrafficMirrorSessions(GetTrafficMirrorSessionsArgs.builder()\n            .ids(\"example_id\")\n            .priority(1)\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorSessionId4\", priority.sessions()[0].id());\n        final var filterId = VpcFunctions.getTrafficMirrorSessions(GetTrafficMirrorSessionsArgs.builder()\n            .ids(\"example_id\")\n            .trafficMirrorFilterId(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorSessionId5\", filterId.sessions()[0].id());\n        final var sessionName = VpcFunctions.getTrafficMirrorSessions(GetTrafficMirrorSessionsArgs.builder()\n            .ids(\"example_id\")\n            .trafficMirrorSessionName(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorSessionId6\", sessionName.sessions()[0].id());\n        final var sourceId = VpcFunctions.getTrafficMirrorSessions(GetTrafficMirrorSessionsArgs.builder()\n            .ids(\"example_id\")\n            .trafficMirrorSourceId(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorSessionId7\", sourceId.sessions()[0].id());\n        final var targetId = VpcFunctions.getTrafficMirrorSessions(GetTrafficMirrorSessionsArgs.builder()\n            .ids(\"example_id\")\n            .trafficMirrorTargetId(\"example_value\")\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorSessionId8\", targetId.sessions()[0].id());\n        final var status = VpcFunctions.getTrafficMirrorSessions(GetTrafficMirrorSessionsArgs.builder()\n            .ids(\"example_id\")\n            .status(\"Created\")\n            .build());\n\n        ctx.export(\"vpcTrafficMirrorSessionId9\", status.sessions()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  ids:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorSessions\n      arguments:\n        ids:\n          - example_id\n  nameRegex:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorSessions\n      arguments:\n        nameRegex: ^my-TrafficMirrorSession\n  enabled:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorSessions\n      arguments:\n        ids:\n          - example_id\n        enabled: 'false'\n  priority:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorSessions\n      arguments:\n        ids:\n          - example_id\n        priority: '1'\n  filterId:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorSessions\n      arguments:\n        ids:\n          - example_id\n        trafficMirrorFilterId: example_value\n  sessionName:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorSessions\n      arguments:\n        ids:\n          - example_id\n        trafficMirrorSessionName: example_value\n  sourceId:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorSessions\n      arguments:\n        ids:\n          - example_id\n        trafficMirrorSourceId: example_value\n  targetId:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorSessions\n      arguments:\n        ids:\n          - example_id\n        trafficMirrorTargetId: example_value\n  status:\n    fn::invoke:\n      function: alicloud:vpc:getTrafficMirrorSessions\n      arguments:\n        ids:\n          - example_id\n        status: Created\noutputs:\n  vpcTrafficMirrorSessionId1: ${ids.sessions[0].id}\n  vpcTrafficMirrorSessionId2: ${nameRegex.sessions[0].id}\n  vpcTrafficMirrorSessionId3: ${enabled.sessions[0].id}\n  vpcTrafficMirrorSessionId4: ${priority.sessions[0].id}\n  vpcTrafficMirrorSessionId5: ${filterId.sessions[0].id}\n  vpcTrafficMirrorSessionId6: ${sessionName.sessions[0].id}\n  vpcTrafficMirrorSessionId7: ${sourceId.sessions[0].id}\n  vpcTrafficMirrorSessionId8: ${targetId.sessions[0].id}\n  vpcTrafficMirrorSessionId9: ${status.sessions[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTrafficMirrorSessions.\n","properties":{"enabled":{"type":"boolean","description":"Specifies whether to enable traffic mirror sessions. default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Traffic Mirror Session IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Traffic Mirror Session name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"priority":{"type":"integer","description":"The priority of the traffic mirror session. Valid values: \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`32766`\" pulumi-lang-dotnet=\"`32766`\" pulumi-lang-go=\"`32766`\" pulumi-lang-python=\"`32766`\" pulumi-lang-yaml=\"`32766`\" pulumi-lang-java=\"`32766`\"\u003e`32766`\u003c/span\u003e. A smaller value indicates a higher priority. You cannot specify the same priority for traffic mirror sessions that are created in the same region with the same Alibaba Cloud account.\n"},"status":{"type":"string","description":"The state of the traffic mirror session. Valid values: `Creating`, `Created`, `Modifying` and `Deleting`.\n"},"trafficMirrorFilterId":{"type":"string","description":"The ID of the filter.\n"},"trafficMirrorSessionName":{"type":"string","description":"The name of the traffic mirror session. The name must be \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`128`\" pulumi-lang-dotnet=\"`128`\" pulumi-lang-go=\"`128`\" pulumi-lang-python=\"`128`\" pulumi-lang-yaml=\"`128`\" pulumi-lang-java=\"`128`\"\u003e`128`\u003c/span\u003e characters in length and can contain digits, underscores (_), and hyphens (-). It must start with a letter.\n"},"trafficMirrorSourceId":{"type":"string","description":"The ID of the mirror source. You can specify only an elastic network interface (ENI) as the mirror source.\n"},"trafficMirrorTargetId":{"type":"string","description":"The ID of the mirror destination. You can specify only an ENI or a Server Load Balancer (SLB) instance as a mirror destination.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTrafficMirrorSessions.\n","properties":{"enabled":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"priority":{"type":"integer"},"sessions":{"items":{"$ref":"#/types/alicloud:vpc/getTrafficMirrorSessionsSession:getTrafficMirrorSessionsSession"},"type":"array"},"status":{"type":"string"},"trafficMirrorFilterId":{"type":"string"},"trafficMirrorSessionName":{"type":"string"},"trafficMirrorSourceId":{"type":"string"},"trafficMirrorTargetId":{"type":"string"}},"required":["ids","names","sessions","id"],"type":"object"}},"alicloud:vpc/getVpcFlowLogs:getVpcFlowLogs":{"description":"This data source provides the Vpc Flow Logs of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available in v1.122.0+.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst example = alicloud.vpc.getVpcFlowLogs({\n    ids: [\"example_value\"],\n    nameRegex: \"the_resource_name\",\n});\nexport const firstVpcFlowLogId = example.then(example =\u003e example.logs?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nexample = alicloud.vpc.get_vpc_flow_logs(ids=[\"example_value\"],\n    name_regex=\"the_resource_name\")\npulumi.export(\"firstVpcFlowLogId\", example.logs[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AliCloud.Vpc.GetVpcFlowLogs.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"example_value\",\n        },\n        NameRegex = \"the_resource_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstVpcFlowLogId\"] = example.Apply(getVpcFlowLogsResult =\u003e getVpcFlowLogsResult.Logs[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := vpc.GetVpcFlowLogs(ctx, \u0026vpc.GetVpcFlowLogsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"example_value\",\n\t\t\t},\n\t\t\tNameRegex: pulumi.StringRef(\"the_resource_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstVpcFlowLogId\", example.Logs[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetVpcFlowLogsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = VpcFunctions.getVpcFlowLogs(GetVpcFlowLogsArgs.builder()\n            .ids(\"example_value\")\n            .nameRegex(\"the_resource_name\")\n            .build());\n\n        ctx.export(\"firstVpcFlowLogId\", example.logs()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: alicloud:vpc:getVpcFlowLogs\n      arguments:\n        ids:\n          - example_value\n        nameRegex: the_resource_name\noutputs:\n  firstVpcFlowLogId: ${example.logs[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcFlowLogs.\n","properties":{"description":{"type":"string","description":"The Description of flow log.\n"},"flowLogName":{"type":"string","description":"The flow log name.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Flow Log IDs.\n"},"logStoreName":{"type":"string","description":"The log store name.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Flow Log name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"projectName":{"type":"string","description":"The project name.\n"},"resourceId":{"type":"string","description":"The resource id.\n"},"resourceType":{"type":"string","description":"The resource type. Valid values: `NetworkInterface`, `VPC`, `VSwitch`.\n"},"status":{"type":"string","description":"The status of  flow log. Valid values: `Active`, `Inactive`.\n"},"trafficType":{"type":"string","description":"The traffic type. Valid values: `All`, `Allow`, `Drop`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcFlowLogs.\n","properties":{"description":{"type":"string"},"flowLogName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"logStoreName":{"type":"string"},"logs":{"items":{"$ref":"#/types/alicloud:vpc/getVpcFlowLogsLog:getVpcFlowLogsLog"},"type":"array"},"nameRegex":{"type":"string"},"names":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"projectName":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"},"status":{"type":"string"},"trafficType":{"type":"string"}},"required":["ids","logs","names","id"],"type":"object"}},"alicloud:vpn/getConnections:getConnections":{"description":"The VPN connections data source lists lots of VPN connections resource information owned by an Alicloud account.\n\n\u003e **NOTE:** Available since v1.18.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst foo = alicloud.vpn.getConnections({\n    ids: [\"fake-conn-id\"],\n    vpnGatewayId: \"fake-vpn-id\",\n    customerGatewayId: \"fake-cgw-id\",\n    outputFile: \"/tmp/vpnconn\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfoo = alicloud.vpn.get_connections(ids=[\"fake-conn-id\"],\n    vpn_gateway_id=\"fake-vpn-id\",\n    customer_gateway_id=\"fake-cgw-id\",\n    output_file=\"/tmp/vpnconn\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = AliCloud.Vpn.GetConnections.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"fake-conn-id\",\n        },\n        VpnGatewayId = \"fake-vpn-id\",\n        CustomerGatewayId = \"fake-cgw-id\",\n        OutputFile = \"/tmp/vpnconn\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpn.GetConnections(ctx, \u0026vpn.GetConnectionsArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"fake-conn-id\",\n\t\t\t},\n\t\t\tVpnGatewayId:      pulumi.StringRef(\"fake-vpn-id\"),\n\t\t\tCustomerGatewayId: pulumi.StringRef(\"fake-cgw-id\"),\n\t\t\tOutputFile:        pulumi.StringRef(\"/tmp/vpnconn\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpn.VpnFunctions;\nimport com.pulumi.alicloud.vpn.inputs.GetConnectionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var foo = VpnFunctions.getConnections(GetConnectionsArgs.builder()\n            .ids(\"fake-conn-id\")\n            .vpnGatewayId(\"fake-vpn-id\")\n            .customerGatewayId(\"fake-cgw-id\")\n            .outputFile(\"/tmp/vpnconn\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      function: alicloud:vpn:getConnections\n      arguments:\n        ids:\n          - fake-conn-id\n        vpnGatewayId: fake-vpn-id\n        customerGatewayId: fake-cgw-id\n        outputFile: /tmp/vpnconn\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getConnections.\n","properties":{"customerGatewayId":{"type":"string","description":"Use the VPN customer gateway ID as the search key.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"IDs of the VPN connections.\n"},"nameRegex":{"type":"string","description":"A regex string of VPN connection name.\n"},"outputFile":{"type":"string","description":"Save the result to the file.\n"},"vpnGatewayId":{"type":"string","description":"Use the VPN gateway ID as the search key.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getConnections.\n","properties":{"connections":{"description":"A list of VPN connections. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpn/getConnectionsConnection:getConnectionsConnection"},"type":"array"},"customerGatewayId":{"description":"The ID of the customer gateway in Tunnel.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"(Optional) IDs of the VPN connections.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"(Optional) names of the VPN connections.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"vpnGatewayId":{"description":"ID of the VPN gateway.\n","type":"string"}},"required":["connections","ids","names","id"],"type":"object"}},"alicloud:vpn/getCustomerGateways:getCustomerGateways":{"description":"The VPN customers gateways data source lists a number of VPN customer gateways resource information owned by an Alicloud account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst foo = alicloud.vpn.getCustomerGateways({\n    nameRegex: \"testAcc*\",\n    ids: [\n        \"fake-id1\",\n        \"fake-id2\",\n    ],\n    outputFile: \"/tmp/cgws\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\nfoo = alicloud.vpn.get_customer_gateways(name_regex=\"testAcc*\",\n    ids=[\n        \"fake-id1\",\n        \"fake-id2\",\n    ],\n    output_file=\"/tmp/cgws\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var foo = AliCloud.Vpn.GetCustomerGateways.Invoke(new()\n    {\n        NameRegex = \"testAcc*\",\n        Ids = new[]\n        {\n            \"fake-id1\",\n            \"fake-id2\",\n        },\n        OutputFile = \"/tmp/cgws\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpn.GetCustomerGateways(ctx, \u0026vpn.GetCustomerGatewaysArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"testAcc*\"),\n\t\t\tIds: []string{\n\t\t\t\t\"fake-id1\",\n\t\t\t\t\"fake-id2\",\n\t\t\t},\n\t\t\tOutputFile: pulumi.StringRef(\"/tmp/cgws\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpn.VpnFunctions;\nimport com.pulumi.alicloud.vpn.inputs.GetCustomerGatewaysArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var foo = VpnFunctions.getCustomerGateways(GetCustomerGatewaysArgs.builder()\n            .nameRegex(\"testAcc*\")\n            .ids(            \n                \"fake-id1\",\n                \"fake-id2\")\n            .outputFile(\"/tmp/cgws\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  foo:\n    fn::invoke:\n      function: alicloud:vpn:getCustomerGateways\n      arguments:\n        nameRegex: testAcc*\n        ids:\n          - fake-id1\n          - fake-id2\n        outputFile: /tmp/cgws\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCustomerGateways.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"ID of the VPN customer gateways.\n"},"nameRegex":{"type":"string","description":"A regex string of VPN customer gateways name.\n"},"outputFile":{"type":"string","description":"Save the result to the file.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCustomerGateways.\n","properties":{"gateways":{"description":"A list of VPN customer gateways. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpn/getCustomerGatewaysGateway:getCustomerGatewaysGateway"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"IDs of VPN customer gateway.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"names of VPN customer gateway.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["gateways","ids","names","id"],"type":"object"}},"alicloud:vpn/getGatewayVcoRoutes:getGatewayVcoRoutes":{"description":"This data source provides the Vpn Gateway Vco Routes of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.183.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst defaultInstance = new alicloud.cen.Instance(\"default\", {cenInstanceName: name});\nconst defaultTransitRouter = new alicloud.cen.TransitRouter(\"default\", {\n    cenId: defaultInstance.id,\n    transitRouterDescription: \"desd\",\n    transitRouterName: name,\n});\nconst _default = alicloud.cen.getTransitRouterAvailableResources({});\nconst defaultCustomerGateway = new alicloud.vpn.CustomerGateway(\"default\", {\n    name: name,\n    ipAddress: \"42.104.22.210\",\n    asn: \"45014\",\n    description: \"testAccVpnConnectionDesc\",\n});\nconst defaultGatewayVpnAttachment = new alicloud.vpn.GatewayVpnAttachment(\"default\", {\n    customerGatewayId: defaultCustomerGateway.id,\n    networkType: \"public\",\n    localSubnet: \"0.0.0.0/0\",\n    remoteSubnet: \"0.0.0.0/0\",\n    effectImmediately: false,\n    ikeConfig: {\n        ikeAuthAlg: \"md5\",\n        ikeEncAlg: \"des\",\n        ikeVersion: \"ikev2\",\n        ikeMode: \"main\",\n        ikeLifetime: 86400,\n        psk: \"tf-testvpn2\",\n        ikePfs: \"group1\",\n        remoteId: \"testbob2\",\n        localId: \"testalice2\",\n    },\n    ipsecConfig: {\n        ipsecPfs: \"group5\",\n        ipsecEncAlg: \"des\",\n        ipsecAuthAlg: \"md5\",\n        ipsecLifetime: 86400,\n    },\n    bgpConfig: {\n        enable: true,\n        localAsn: 45014,\n        tunnelCidr: \"169.254.11.0/30\",\n        localBgpIp: \"169.254.11.1\",\n    },\n    healthCheckConfig: {\n        enable: true,\n        sip: \"192.168.1.1\",\n        dip: \"10.0.0.1\",\n        interval: 10,\n        retry: 10,\n        policy: \"revoke_route\",\n    },\n    enableDpd: true,\n    enableNatTraversal: true,\n    vpnAttachmentName: name,\n});\nconst defaultTransitRouterVpnAttachment = new alicloud.cen.TransitRouterVpnAttachment(\"default\", {\n    autoPublishRouteEnabled: false,\n    transitRouterAttachmentDescription: name,\n    transitRouterAttachmentName: name,\n    cenId: defaultTransitRouter.cenId,\n    transitRouterId: defaultTransitRouter.transitRouterId,\n    vpnId: defaultGatewayVpnAttachment.id,\n    zones: [{\n        zoneId: _default.then(_default =\u003e _default.resources?.[0]?.masterZones?.[0]),\n    }],\n});\nconst defaultGatewayVcoRoute = new alicloud.vpn.GatewayVcoRoute(\"default\", {\n    routeDest: \"192.168.12.0/24\",\n    nextHop: defaultTransitRouterVpnAttachment.vpnId,\n    vpnConnectionId: defaultTransitRouterVpnAttachment.vpnId,\n    weight: 100,\n});\nconst defaultGetGatewayVcoRoutes = alicloud.vpn.getGatewayVcoRoutesOutput({\n    vpnConnectionId: defaultTransitRouterVpnAttachment.vpnId,\n});\nexport const vpnGatewayVcoRouteId1 = ids.routes[0].id;\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault_instance = alicloud.cen.Instance(\"default\", cen_instance_name=name)\ndefault_transit_router = alicloud.cen.TransitRouter(\"default\",\n    cen_id=default_instance.id,\n    transit_router_description=\"desd\",\n    transit_router_name=name)\ndefault = alicloud.cen.get_transit_router_available_resources()\ndefault_customer_gateway = alicloud.vpn.CustomerGateway(\"default\",\n    name=name,\n    ip_address=\"42.104.22.210\",\n    asn=\"45014\",\n    description=\"testAccVpnConnectionDesc\")\ndefault_gateway_vpn_attachment = alicloud.vpn.GatewayVpnAttachment(\"default\",\n    customer_gateway_id=default_customer_gateway.id,\n    network_type=\"public\",\n    local_subnet=\"0.0.0.0/0\",\n    remote_subnet=\"0.0.0.0/0\",\n    effect_immediately=False,\n    ike_config={\n        \"ike_auth_alg\": \"md5\",\n        \"ike_enc_alg\": \"des\",\n        \"ike_version\": \"ikev2\",\n        \"ike_mode\": \"main\",\n        \"ike_lifetime\": 86400,\n        \"psk\": \"tf-testvpn2\",\n        \"ike_pfs\": \"group1\",\n        \"remote_id\": \"testbob2\",\n        \"local_id\": \"testalice2\",\n    },\n    ipsec_config={\n        \"ipsec_pfs\": \"group5\",\n        \"ipsec_enc_alg\": \"des\",\n        \"ipsec_auth_alg\": \"md5\",\n        \"ipsec_lifetime\": 86400,\n    },\n    bgp_config={\n        \"enable\": True,\n        \"local_asn\": 45014,\n        \"tunnel_cidr\": \"169.254.11.0/30\",\n        \"local_bgp_ip\": \"169.254.11.1\",\n    },\n    health_check_config={\n        \"enable\": True,\n        \"sip\": \"192.168.1.1\",\n        \"dip\": \"10.0.0.1\",\n        \"interval\": 10,\n        \"retry\": 10,\n        \"policy\": \"revoke_route\",\n    },\n    enable_dpd=True,\n    enable_nat_traversal=True,\n    vpn_attachment_name=name)\ndefault_transit_router_vpn_attachment = alicloud.cen.TransitRouterVpnAttachment(\"default\",\n    auto_publish_route_enabled=False,\n    transit_router_attachment_description=name,\n    transit_router_attachment_name=name,\n    cen_id=default_transit_router.cen_id,\n    transit_router_id=default_transit_router.transit_router_id,\n    vpn_id=default_gateway_vpn_attachment.id,\n    zones=[{\n        \"zone_id\": default.resources[0].master_zones[0],\n    }])\ndefault_gateway_vco_route = alicloud.vpn.GatewayVcoRoute(\"default\",\n    route_dest=\"192.168.12.0/24\",\n    next_hop=default_transit_router_vpn_attachment.vpn_id,\n    vpn_connection_id=default_transit_router_vpn_attachment.vpn_id,\n    weight=100)\ndefault_get_gateway_vco_routes = alicloud.vpn.get_gateway_vco_routes_output(vpn_connection_id=default_transit_router_vpn_attachment.vpn_id)\npulumi.export(\"vpnGatewayVcoRouteId1\", ids[\"routes\"][0][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var defaultInstance = new AliCloud.Cen.Instance(\"default\", new()\n    {\n        CenInstanceName = name,\n    });\n\n    var defaultTransitRouter = new AliCloud.Cen.TransitRouter(\"default\", new()\n    {\n        CenId = defaultInstance.Id,\n        TransitRouterDescription = \"desd\",\n        TransitRouterName = name,\n    });\n\n    var @default = AliCloud.Cen.GetTransitRouterAvailableResources.Invoke();\n\n    var defaultCustomerGateway = new AliCloud.Vpn.CustomerGateway(\"default\", new()\n    {\n        Name = name,\n        IpAddress = \"42.104.22.210\",\n        Asn = \"45014\",\n        Description = \"testAccVpnConnectionDesc\",\n    });\n\n    var defaultGatewayVpnAttachment = new AliCloud.Vpn.GatewayVpnAttachment(\"default\", new()\n    {\n        CustomerGatewayId = defaultCustomerGateway.Id,\n        NetworkType = \"public\",\n        LocalSubnet = \"0.0.0.0/0\",\n        RemoteSubnet = \"0.0.0.0/0\",\n        EffectImmediately = false,\n        IkeConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentIkeConfigArgs\n        {\n            IkeAuthAlg = \"md5\",\n            IkeEncAlg = \"des\",\n            IkeVersion = \"ikev2\",\n            IkeMode = \"main\",\n            IkeLifetime = 86400,\n            Psk = \"tf-testvpn2\",\n            IkePfs = \"group1\",\n            RemoteId = \"testbob2\",\n            LocalId = \"testalice2\",\n        },\n        IpsecConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentIpsecConfigArgs\n        {\n            IpsecPfs = \"group5\",\n            IpsecEncAlg = \"des\",\n            IpsecAuthAlg = \"md5\",\n            IpsecLifetime = 86400,\n        },\n        BgpConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentBgpConfigArgs\n        {\n            Enable = true,\n            LocalAsn = 45014,\n            TunnelCidr = \"169.254.11.0/30\",\n            LocalBgpIp = \"169.254.11.1\",\n        },\n        HealthCheckConfig = new AliCloud.Vpn.Inputs.GatewayVpnAttachmentHealthCheckConfigArgs\n        {\n            Enable = true,\n            Sip = \"192.168.1.1\",\n            Dip = \"10.0.0.1\",\n            Interval = 10,\n            Retry = 10,\n            Policy = \"revoke_route\",\n        },\n        EnableDpd = true,\n        EnableNatTraversal = true,\n        VpnAttachmentName = name,\n    });\n\n    var defaultTransitRouterVpnAttachment = new AliCloud.Cen.TransitRouterVpnAttachment(\"default\", new()\n    {\n        AutoPublishRouteEnabled = false,\n        TransitRouterAttachmentDescription = name,\n        TransitRouterAttachmentName = name,\n        CenId = defaultTransitRouter.CenId,\n        TransitRouterId = defaultTransitRouter.TransitRouterId,\n        VpnId = defaultGatewayVpnAttachment.Id,\n        Zones = new[]\n        {\n            new AliCloud.Cen.Inputs.TransitRouterVpnAttachmentZoneArgs\n            {\n                ZoneId = @default.Apply(@default =\u003e @default.Apply(getTransitRouterAvailableResourcesResult =\u003e getTransitRouterAvailableResourcesResult.Resources[0]?.MasterZones[0])),\n            },\n        },\n    });\n\n    var defaultGatewayVcoRoute = new AliCloud.Vpn.GatewayVcoRoute(\"default\", new()\n    {\n        RouteDest = \"192.168.12.0/24\",\n        NextHop = defaultTransitRouterVpnAttachment.VpnId,\n        VpnConnectionId = defaultTransitRouterVpnAttachment.VpnId,\n        Weight = 100,\n    });\n\n    var defaultGetGatewayVcoRoutes = AliCloud.Vpn.GetGatewayVcoRoutes.Invoke(new()\n    {\n        VpnConnectionId = defaultTransitRouterVpnAttachment.VpnId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"vpnGatewayVcoRouteId1\"] = ids.Routes[0].Id,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultInstance, err := cen.NewInstance(ctx, \"default\", \u0026cen.InstanceArgs{\n\t\t\tCenInstanceName: pulumi.Any(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouter, err := cen.NewTransitRouter(ctx, \"default\", \u0026cen.TransitRouterArgs{\n\t\t\tCenId:                    defaultInstance.ID(),\n\t\t\tTransitRouterDescription: pulumi.String(\"desd\"),\n\t\t\tTransitRouterName:        pulumi.Any(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_default, err := cen.GetTransitRouterAvailableResources(ctx, \u0026cen.GetTransitRouterAvailableResourcesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCustomerGateway, err := vpn.NewCustomerGateway(ctx, \"default\", \u0026vpn.CustomerGatewayArgs{\n\t\t\tName:        pulumi.Any(name),\n\t\t\tIpAddress:   pulumi.String(\"42.104.22.210\"),\n\t\t\tAsn:         pulumi.String(\"45014\"),\n\t\t\tDescription: pulumi.String(\"testAccVpnConnectionDesc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultGatewayVpnAttachment, err := vpn.NewGatewayVpnAttachment(ctx, \"default\", \u0026vpn.GatewayVpnAttachmentArgs{\n\t\t\tCustomerGatewayId: defaultCustomerGateway.ID(),\n\t\t\tNetworkType:       pulumi.String(\"public\"),\n\t\t\tLocalSubnet:       pulumi.String(\"0.0.0.0/0\"),\n\t\t\tRemoteSubnet:      pulumi.String(\"0.0.0.0/0\"),\n\t\t\tEffectImmediately: pulumi.Bool(false),\n\t\t\tIkeConfig: \u0026vpn.GatewayVpnAttachmentIkeConfigArgs{\n\t\t\t\tIkeAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\tIkeEncAlg:   pulumi.String(\"des\"),\n\t\t\t\tIkeVersion:  pulumi.String(\"ikev2\"),\n\t\t\t\tIkeMode:     pulumi.String(\"main\"),\n\t\t\t\tIkeLifetime: pulumi.Int(86400),\n\t\t\t\tPsk:         pulumi.String(\"tf-testvpn2\"),\n\t\t\t\tIkePfs:      pulumi.String(\"group1\"),\n\t\t\t\tRemoteId:    pulumi.String(\"testbob2\"),\n\t\t\t\tLocalId:     pulumi.String(\"testalice2\"),\n\t\t\t},\n\t\t\tIpsecConfig: \u0026vpn.GatewayVpnAttachmentIpsecConfigArgs{\n\t\t\t\tIpsecPfs:      pulumi.String(\"group5\"),\n\t\t\t\tIpsecEncAlg:   pulumi.String(\"des\"),\n\t\t\t\tIpsecAuthAlg:  pulumi.String(\"md5\"),\n\t\t\t\tIpsecLifetime: pulumi.Int(86400),\n\t\t\t},\n\t\t\tBgpConfig: \u0026vpn.GatewayVpnAttachmentBgpConfigArgs{\n\t\t\t\tEnable:     pulumi.Bool(true),\n\t\t\t\tLocalAsn:   pulumi.Int(45014),\n\t\t\t\tTunnelCidr: pulumi.String(\"169.254.11.0/30\"),\n\t\t\t\tLocalBgpIp: pulumi.String(\"169.254.11.1\"),\n\t\t\t},\n\t\t\tHealthCheckConfig: \u0026vpn.GatewayVpnAttachmentHealthCheckConfigArgs{\n\t\t\t\tEnable:   pulumi.Bool(true),\n\t\t\t\tSip:      pulumi.String(\"192.168.1.1\"),\n\t\t\t\tDip:      pulumi.String(\"10.0.0.1\"),\n\t\t\t\tInterval: pulumi.Int(10),\n\t\t\t\tRetry:    pulumi.Int(10),\n\t\t\t\tPolicy:   pulumi.String(\"revoke_route\"),\n\t\t\t},\n\t\t\tEnableDpd:          pulumi.Bool(true),\n\t\t\tEnableNatTraversal: pulumi.Bool(true),\n\t\t\tVpnAttachmentName:  pulumi.Any(name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTransitRouterVpnAttachment, err := cen.NewTransitRouterVpnAttachment(ctx, \"default\", \u0026cen.TransitRouterVpnAttachmentArgs{\n\t\t\tAutoPublishRouteEnabled:            pulumi.Bool(false),\n\t\t\tTransitRouterAttachmentDescription: pulumi.Any(name),\n\t\t\tTransitRouterAttachmentName:        pulumi.Any(name),\n\t\t\tCenId:                              defaultTransitRouter.CenId,\n\t\t\tTransitRouterId:                    defaultTransitRouter.TransitRouterId,\n\t\t\tVpnId:                              defaultGatewayVpnAttachment.ID(),\n\t\t\tZones: cen.TransitRouterVpnAttachmentZoneArray{\n\t\t\t\t\u0026cen.TransitRouterVpnAttachmentZoneArgs{\n\t\t\t\t\tZoneId: pulumi.String(_default.Resources[0].MasterZones[0]),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vpn.NewGatewayVcoRoute(ctx, \"default\", \u0026vpn.GatewayVcoRouteArgs{\n\t\t\tRouteDest:       pulumi.String(\"192.168.12.0/24\"),\n\t\t\tNextHop:         defaultTransitRouterVpnAttachment.VpnId,\n\t\t\tVpnConnectionId: defaultTransitRouterVpnAttachment.VpnId,\n\t\t\tWeight:          pulumi.Int(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = vpn.GetGatewayVcoRoutesOutput(ctx, vpn.GetGatewayVcoRoutesOutputArgs{\n\t\t\tVpnConnectionId: defaultTransitRouterVpnAttachment.VpnId,\n\t\t}, nil)\n\t\tctx.Export(\"vpnGatewayVcoRouteId1\", ids.Routes[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.cen.Instance;\nimport com.pulumi.alicloud.cen.InstanceArgs;\nimport com.pulumi.alicloud.cen.TransitRouter;\nimport com.pulumi.alicloud.cen.TransitRouterArgs;\nimport com.pulumi.alicloud.cen.CenFunctions;\nimport com.pulumi.alicloud.cen.inputs.GetTransitRouterAvailableResourcesArgs;\nimport com.pulumi.alicloud.vpn.CustomerGateway;\nimport com.pulumi.alicloud.vpn.CustomerGatewayArgs;\nimport com.pulumi.alicloud.vpn.GatewayVpnAttachment;\nimport com.pulumi.alicloud.vpn.GatewayVpnAttachmentArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentIkeConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentIpsecConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentBgpConfigArgs;\nimport com.pulumi.alicloud.vpn.inputs.GatewayVpnAttachmentHealthCheckConfigArgs;\nimport com.pulumi.alicloud.cen.TransitRouterVpnAttachment;\nimport com.pulumi.alicloud.cen.TransitRouterVpnAttachmentArgs;\nimport com.pulumi.alicloud.cen.inputs.TransitRouterVpnAttachmentZoneArgs;\nimport com.pulumi.alicloud.vpn.GatewayVcoRoute;\nimport com.pulumi.alicloud.vpn.GatewayVcoRouteArgs;\nimport com.pulumi.alicloud.vpn.VpnFunctions;\nimport com.pulumi.alicloud.vpn.inputs.GetGatewayVcoRoutesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n            .cenInstanceName(name)\n            .build());\n\n        var defaultTransitRouter = new TransitRouter(\"defaultTransitRouter\", TransitRouterArgs.builder()\n            .cenId(defaultInstance.id())\n            .transitRouterDescription(\"desd\")\n            .transitRouterName(name)\n            .build());\n\n        final var default = CenFunctions.getTransitRouterAvailableResources(GetTransitRouterAvailableResourcesArgs.builder()\n            .build());\n\n        var defaultCustomerGateway = new CustomerGateway(\"defaultCustomerGateway\", CustomerGatewayArgs.builder()\n            .name(name)\n            .ipAddress(\"42.104.22.210\")\n            .asn(\"45014\")\n            .description(\"testAccVpnConnectionDesc\")\n            .build());\n\n        var defaultGatewayVpnAttachment = new GatewayVpnAttachment(\"defaultGatewayVpnAttachment\", GatewayVpnAttachmentArgs.builder()\n            .customerGatewayId(defaultCustomerGateway.id())\n            .networkType(\"public\")\n            .localSubnet(\"0.0.0.0/0\")\n            .remoteSubnet(\"0.0.0.0/0\")\n            .effectImmediately(false)\n            .ikeConfig(GatewayVpnAttachmentIkeConfigArgs.builder()\n                .ikeAuthAlg(\"md5\")\n                .ikeEncAlg(\"des\")\n                .ikeVersion(\"ikev2\")\n                .ikeMode(\"main\")\n                .ikeLifetime(86400)\n                .psk(\"tf-testvpn2\")\n                .ikePfs(\"group1\")\n                .remoteId(\"testbob2\")\n                .localId(\"testalice2\")\n                .build())\n            .ipsecConfig(GatewayVpnAttachmentIpsecConfigArgs.builder()\n                .ipsecPfs(\"group5\")\n                .ipsecEncAlg(\"des\")\n                .ipsecAuthAlg(\"md5\")\n                .ipsecLifetime(86400)\n                .build())\n            .bgpConfig(GatewayVpnAttachmentBgpConfigArgs.builder()\n                .enable(true)\n                .localAsn(45014)\n                .tunnelCidr(\"169.254.11.0/30\")\n                .localBgpIp(\"169.254.11.1\")\n                .build())\n            .healthCheckConfig(GatewayVpnAttachmentHealthCheckConfigArgs.builder()\n                .enable(true)\n                .sip(\"192.168.1.1\")\n                .dip(\"10.0.0.1\")\n                .interval(10)\n                .retry(10)\n                .policy(\"revoke_route\")\n                .build())\n            .enableDpd(true)\n            .enableNatTraversal(true)\n            .vpnAttachmentName(name)\n            .build());\n\n        var defaultTransitRouterVpnAttachment = new TransitRouterVpnAttachment(\"defaultTransitRouterVpnAttachment\", TransitRouterVpnAttachmentArgs.builder()\n            .autoPublishRouteEnabled(false)\n            .transitRouterAttachmentDescription(name)\n            .transitRouterAttachmentName(name)\n            .cenId(defaultTransitRouter.cenId())\n            .transitRouterId(defaultTransitRouter.transitRouterId())\n            .vpnId(defaultGatewayVpnAttachment.id())\n            .zones(TransitRouterVpnAttachmentZoneArgs.builder()\n                .zoneId(default_.resources()[0].masterZones()[0])\n                .build())\n            .build());\n\n        var defaultGatewayVcoRoute = new GatewayVcoRoute(\"defaultGatewayVcoRoute\", GatewayVcoRouteArgs.builder()\n            .routeDest(\"192.168.12.0/24\")\n            .nextHop(defaultTransitRouterVpnAttachment.vpnId())\n            .vpnConnectionId(defaultTransitRouterVpnAttachment.vpnId())\n            .weight(100)\n            .build());\n\n        final var defaultGetGatewayVcoRoutes = VpnFunctions.getGatewayVcoRoutes(GetGatewayVcoRoutesArgs.builder()\n            .vpnConnectionId(defaultTransitRouterVpnAttachment.vpnId())\n            .build());\n\n        ctx.export(\"vpnGatewayVcoRouteId1\", ids.routes()[0].id());\n    }\n}\n```\n```yaml\nresources:\n  defaultInstance:\n    type: alicloud:cen:Instance\n    name: default\n    properties:\n      cenInstanceName: ${name}\n  defaultTransitRouter:\n    type: alicloud:cen:TransitRouter\n    name: default\n    properties:\n      cenId: ${defaultInstance.id}\n      transitRouterDescription: desd\n      transitRouterName: ${name}\n  defaultCustomerGateway:\n    type: alicloud:vpn:CustomerGateway\n    name: default\n    properties:\n      name: ${name}\n      ipAddress: 42.104.22.210\n      asn: '45014'\n      description: testAccVpnConnectionDesc\n  defaultGatewayVpnAttachment:\n    type: alicloud:vpn:GatewayVpnAttachment\n    name: default\n    properties:\n      customerGatewayId: ${defaultCustomerGateway.id}\n      networkType: public\n      localSubnet: 0.0.0.0/0\n      remoteSubnet: 0.0.0.0/0\n      effectImmediately: false\n      ikeConfig:\n        ikeAuthAlg: md5\n        ikeEncAlg: des\n        ikeVersion: ikev2\n        ikeMode: main\n        ikeLifetime: 86400\n        psk: tf-testvpn2\n        ikePfs: group1\n        remoteId: testbob2\n        localId: testalice2\n      ipsecConfig:\n        ipsecPfs: group5\n        ipsecEncAlg: des\n        ipsecAuthAlg: md5\n        ipsecLifetime: 86400\n      bgpConfig:\n        enable: true\n        localAsn: 45014\n        tunnelCidr: 169.254.11.0/30\n        localBgpIp: 169.254.11.1\n      healthCheckConfig:\n        enable: true\n        sip: 192.168.1.1\n        dip: 10.0.0.1\n        interval: 10\n        retry: 10\n        policy: revoke_route\n      enableDpd: true\n      enableNatTraversal: true\n      vpnAttachmentName: ${name}\n  defaultTransitRouterVpnAttachment:\n    type: alicloud:cen:TransitRouterVpnAttachment\n    name: default\n    properties:\n      autoPublishRouteEnabled: false\n      transitRouterAttachmentDescription: ${name}\n      transitRouterAttachmentName: ${name}\n      cenId: ${defaultTransitRouter.cenId}\n      transitRouterId: ${defaultTransitRouter.transitRouterId}\n      vpnId: ${defaultGatewayVpnAttachment.id}\n      zones:\n        - zoneId: ${default.resources[0].masterZones[0]}\n  defaultGatewayVcoRoute:\n    type: alicloud:vpn:GatewayVcoRoute\n    name: default\n    properties:\n      routeDest: 192.168.12.0/24\n      nextHop: ${defaultTransitRouterVpnAttachment.vpnId}\n      vpnConnectionId: ${defaultTransitRouterVpnAttachment.vpnId}\n      weight: 100\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:cen:getTransitRouterAvailableResources\n      arguments: {}\n  defaultGetGatewayVcoRoutes:\n    fn::invoke:\n      function: alicloud:vpn:getGatewayVcoRoutes\n      arguments:\n        vpnConnectionId: ${defaultTransitRouterVpnAttachment.vpnId}\noutputs:\n  vpnGatewayVcoRouteId1: ${ids.routes[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGatewayVcoRoutes.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Vco Route IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"routeEntryType":{"type":"string","description":"The Routing input type. Valid values: \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bgp`\" pulumi-lang-dotnet=\"`Bgp`\" pulumi-lang-go=\"`bgp`\" pulumi-lang-python=\"`bgp`\" pulumi-lang-yaml=\"`bgp`\" pulumi-lang-java=\"`bgp`\"\u003e`bgp`\u003c/span\u003e.\n"},"status":{"type":"string","description":"The status of the vpn route entry. Valid values: \u003cspan pulumi-lang-nodejs=\"`normal`\" pulumi-lang-dotnet=\"`Normal`\" pulumi-lang-go=\"`normal`\" pulumi-lang-python=\"`normal`\" pulumi-lang-yaml=\"`normal`\" pulumi-lang-java=\"`normal`\"\u003e`normal`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`published`\" pulumi-lang-dotnet=\"`Published`\" pulumi-lang-go=\"`published`\" pulumi-lang-python=\"`published`\" pulumi-lang-yaml=\"`published`\" pulumi-lang-java=\"`published`\"\u003e`published`\u003c/span\u003e.\n"},"vpnConnectionId":{"type":"string","description":"The id of the vpn connection.\n"}},"type":"object","required":["vpnConnectionId"]},"outputs":{"description":"A collection of values returned by getGatewayVcoRoutes.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"routeEntryType":{"type":"string"},"routes":{"description":"A list of Vpn Gateway Vco Routes. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpn/getGatewayVcoRoutesRoute:getGatewayVcoRoutesRoute"},"type":"array"},"status":{"description":"The status of the vpn route entry.\n","type":"string"},"vpnConnectionId":{"description":"The id of the vpn connection.\n","type":"string"}},"required":["ids","routes","vpnConnectionId","id"],"type":"object"}},"alicloud:vpn/getGatewayVpnAttachments:getGatewayVpnAttachments":{"description":"This data source provides Vpn Gateway Vpn Attachment available to the user.[What is Vpn Attachment](https://next.api.alibabacloud.com/document/Vpc/2016-04-28/CreateVpnAttachment)\n\n\u003e **NOTE:** Available since v1.245.0.\n\n","inputs":{"description":"A collection of arguments for invoking getGatewayVpnAttachments.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Vpn Attachment IDs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Group Metric Rule name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer","description":"Current page number.\n"},"pageSize":{"type":"integer","description":"Number of records per page.\n"},"status":{"type":"string","description":"The status of the resource. Valid values: \u003cspan pulumi-lang-nodejs=\"`init`\" pulumi-lang-dotnet=\"`Init`\" pulumi-lang-go=\"`init`\" pulumi-lang-python=\"`init`\" pulumi-lang-yaml=\"`init`\" pulumi-lang-java=\"`init`\"\u003e`init`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`active`\" pulumi-lang-dotnet=\"`Active`\" pulumi-lang-go=\"`active`\" pulumi-lang-python=\"`active`\" pulumi-lang-yaml=\"`active`\" pulumi-lang-java=\"`active`\"\u003e`active`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`attaching`\" pulumi-lang-dotnet=\"`Attaching`\" pulumi-lang-go=\"`attaching`\" pulumi-lang-python=\"`attaching`\" pulumi-lang-yaml=\"`attaching`\" pulumi-lang-java=\"`attaching`\"\u003e`attaching`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`attached`\" pulumi-lang-dotnet=\"`Attached`\" pulumi-lang-go=\"`attached`\" pulumi-lang-python=\"`attached`\" pulumi-lang-yaml=\"`attached`\" pulumi-lang-java=\"`attached`\"\u003e`attached`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`detaching`\" pulumi-lang-dotnet=\"`Detaching`\" pulumi-lang-go=\"`detaching`\" pulumi-lang-python=\"`detaching`\" pulumi-lang-yaml=\"`detaching`\" pulumi-lang-java=\"`detaching`\"\u003e`detaching`\u003c/span\u003e, `financialLocked`, \u003cspan pulumi-lang-nodejs=\"`provisioning`\" pulumi-lang-dotnet=\"`Provisioning`\" pulumi-lang-go=\"`provisioning`\" pulumi-lang-python=\"`provisioning`\" pulumi-lang-yaml=\"`provisioning`\" pulumi-lang-java=\"`provisioning`\"\u003e`provisioning`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`updating`\" pulumi-lang-dotnet=\"`Updating`\" pulumi-lang-go=\"`updating`\" pulumi-lang-python=\"`updating`\" pulumi-lang-yaml=\"`updating`\" pulumi-lang-java=\"`updating`\"\u003e`updating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`upgrading`\" pulumi-lang-dotnet=\"`Upgrading`\" pulumi-lang-go=\"`upgrading`\" pulumi-lang-python=\"`upgrading`\" pulumi-lang-yaml=\"`upgrading`\" pulumi-lang-java=\"`upgrading`\"\u003e`upgrading`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleted`\" pulumi-lang-dotnet=\"`Deleted`\" pulumi-lang-go=\"`deleted`\" pulumi-lang-python=\"`deleted`\" pulumi-lang-yaml=\"`deleted`\" pulumi-lang-java=\"`deleted`\"\u003e`deleted`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGatewayVpnAttachments.\n","properties":{"attachments":{"description":"A list of Vpn Attachment Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpn/getGatewayVpnAttachmentsAttachment:getGatewayVpnAttachmentsAttachment"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Vpn Attachment IDs.\n","items":{"type":"string"},"type":"array"},"nameRegex":{"type":"string"},"names":{"description":"A list of name of Vpn Attachments.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"status":{"description":"The negotiation status of Tunnel. - **ike_sa_not_established**: Phase 1 negotiations failed.- **ike_sa_established**: Phase 1 negotiations succeeded.- **ipsec_sa_not_established**: Phase 2 negotiations failed.- **ipsec_sa_established**: Phase 2 negotiations succeeded.\n","type":"string"}},"required":["attachments","ids","names","id"],"type":"object"}},"alicloud:vpn/getGatewayZones:getGatewayZones":{"description":"This data source provides VPN Gateway Zone available to the user.[What is Zone](https://next.api.alibabacloud.com/api/Vpc/2016-04-28/DescribeVpnGatewayAvailableZones?lang=JAVA)\n\n\u003e **NOTE:** Available since v1.216.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.vpn.getGatewayZones({\n    spec: \"5M\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.vpn.get_gateway_zones(spec=\"5M\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Vpn.GetGatewayZones.Invoke(new()\n    {\n        Spec = \"5M\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpn.GetGatewayZones(ctx, \u0026vpn.GetGatewayZonesArgs{\n\t\t\tSpec: \"5M\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.vpn.VpnFunctions;\nimport com.pulumi.alicloud.vpn.inputs.GetGatewayZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = VpnFunctions.getGatewayZones(GetGatewayZonesArgs.builder()\n            .spec(\"5M\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:vpn:getGatewayZones\n      arguments:\n        spec: 5M\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGatewayZones.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of Zone IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"spec":{"type":"string","description":"Bandwidth specification.-If an IPsec connection is bound to a VPN gateway instance, this parameter indicates the Bandwidth specification of the VPN gateway instance.-If an IPsec connection is bound to a forwarding router, this parameter indicates the bandwidth that you expect the IPsec connection to support.Different bandwidth specifications may affect the zone information that is found. Value:\n- `5M`\n- `10M`\n- `20M`\n- `50M`\n- `100M`\n- `200M`\n- `500M`\n- `1000M`\n"}},"type":"object","required":["spec"]},"outputs":{"description":"A collection of values returned by getGatewayZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Zone IDs.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"spec":{"type":"string"},"zones":{"description":"A list of Zone Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpn/getGatewayZonesZone:getGatewayZonesZone"},"type":"array"}},"required":["ids","spec","zones","id"],"type":"object"}},"alicloud:vpn/getGateways:getGateways":{"description":"The VPNs data source lists a number of VPNs resource information owned by an Alicloud account.\n\n\u003e **NOTE:** Available since v1.18.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\nimport * as std from \"@pulumi/std\";\n\nconst config = new pulumi.Config();\nconst name = config.get(\"name\") || \"terraform-example\";\nconst spec = config.get(\"spec\") || \"20\";\nconst _default = alicloud.getZones({\n    availableResourceCreation: \"VSwitch\",\n});\nconst defaultGetNetworks = alicloud.vpc.getNetworks({\n    nameRegex: \"^default-NODELETING$\",\n});\nconst defaultGetSwitches = defaultGetNetworks.then(defaultGetNetworks =\u003e alicloud.vpc.getSwitches({\n    vpcId: defaultGetNetworks.ids?.[0],\n    zoneId: \"me-east-1a\",\n}));\nconst vswitch: alicloud.vpc.Switch[] = [];\ndefaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids).length.apply(length =\u003e {\n    for (const range = {value: 0}; range.value \u003c (length \u003e 0 ? 0 : 1); range.value++) {\n        vswitch.push(new alicloud.vpc.Switch(`vswitch-${range.value}`, {\n            vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n            cidrBlock: defaultGetNetworks.then(defaultGetNetworks =\u003e std.cidrsubnet({\n                input: defaultGetNetworks.vpcs?.[0]?.cidrBlock,\n                newbits: 8,\n                netnum: 8,\n            })).then(invoke =\u003e invoke.result),\n            zoneId: \"me-east-1a\",\n            vswitchName: name,\n        }));\n    }\n});\nconst vswitchId = pulumi.all([defaultGetSwitches.then(defaultGetSwitches =\u003e defaultGetSwitches.ids).length, defaultGetSwitches, std.concat({\n    input: [\n        vswitch.map(__item =\u003e __item.id),\n        [\"\"],\n    ],\n})]).apply(([length, defaultGetSwitches, invoke]) =\u003e length \u003e 0 ? defaultGetSwitches.ids?.[0] : invoke.result?.[0]);\nconst defaultGateway = new alicloud.vpn.Gateway(\"default\", {\n    vpnType: \"Normal\",\n    vpnGatewayName: name,\n    vswitchId: vswitchId,\n    autoPay: true,\n    vpcId: defaultGetNetworks.then(defaultGetNetworks =\u003e defaultGetNetworks.ids?.[0]),\n    networkType: \"public\",\n    paymentType: \"Subscription\",\n    enableIpsec: true,\n    bandwidth: spec,\n});\nconst vpnGateways = alicloud.vpn.getGatewaysOutput({\n    ids: [defaultGateway.id],\n    includeReservationData: true,\n    outputFile: \"/tmp/vpns\",\n});\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\nimport pulumi_std as std\n\nconfig = pulumi.Config()\nname = config.get(\"name\")\nif name is None:\n    name = \"terraform-example\"\nspec = config.get(\"spec\")\nif spec is None:\n    spec = \"20\"\ndefault = alicloud.get_zones(available_resource_creation=\"VSwitch\")\ndefault_get_networks = alicloud.vpc.get_networks(name_regex=\"^default-NODELETING$\")\ndefault_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],\n    zone_id=\"me-east-1a\")\nvswitch = []\ndef create_vswitch(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        vswitch.append(alicloud.vpc.Switch(f\"vswitch-{range['value']}\",\n            vpc_id=default_get_networks.ids[0],\n            cidr_block=std.cidrsubnet(input=default_get_networks.vpcs[0].cidr_block,\n                newbits=8,\n                netnum=8).result,\n            zone_id=\"me-east-1a\",\n            vswitch_name=name))\n\nlen(default_get_switches.ids).apply(lambda resolved_outputs: create_vswitch(0 if resolved_outputs['length'] \u003e 0 else 1))\nvswitch_id = len(default_get_switches.ids).apply(lambda length: default_get_switches.ids[0] if length \u003e 0 else std.concat(input=[\n    [__item.id for __item in vswitch],\n    [\"\"],\n]).result[0])\ndefault_gateway = alicloud.vpn.Gateway(\"default\",\n    vpn_type=\"Normal\",\n    vpn_gateway_name=name,\n    vswitch_id=vswitch_id,\n    auto_pay=True,\n    vpc_id=default_get_networks.ids[0],\n    network_type=\"public\",\n    payment_type=\"Subscription\",\n    enable_ipsec=True,\n    bandwidth=spec)\nvpn_gateways = alicloud.vpn.get_gateways_output(ids=[default_gateway.id],\n    include_reservation_data=True,\n    output_file=\"/tmp/vpns\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var name = config.Get(\"name\") ?? \"terraform-example\";\n    var spec = config.Get(\"spec\") ?? \"20\";\n    var @default = AliCloud.GetZones.Invoke(new()\n    {\n        AvailableResourceCreation = \"VSwitch\",\n    });\n\n    var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()\n    {\n        NameRegex = \"^default-NODELETING$\",\n    });\n\n    var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()\n    {\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        ZoneId = \"me-east-1a\",\n    });\n\n    var vswitch = new List\u003cAliCloud.Vpc.Switch\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids).Length.Apply(length =\u003e length \u003e 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        vswitch.Add(new AliCloud.Vpc.Switch($\"vswitch-{range.Value}\", new()\n        {\n            VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n            CidrBlock = Std.Cidrsubnet.Invoke(new()\n            {\n                Input = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Vpcs[0]?.CidrBlock),\n                Newbits = 8,\n                Netnum = 8,\n            }).Apply(invoke =\u003e invoke.Result),\n            ZoneId = \"me-east-1a\",\n            VswitchName = name,\n        }));\n    }\n    var vswitchId = Output.Tuple(defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids).Length, defaultGetSwitches, Std.Concat.Invoke(new()\n    {\n        Input = new[]\n        {\n            vswitch.Select(__item =\u003e __item.Id).ToList(),\n            new[]\n            {\n                \"\",\n            },\n        },\n    })).Apply(values =\u003e\n    {\n        var length = values.Item1;\n        var defaultGetSwitches = values.Item2;\n        var invoke = values.Item3;\n        return length \u003e 0 ? defaultGetSwitches.Apply(getSwitchesResult =\u003e getSwitchesResult.Ids[0]) : invoke.Result[0];\n    });\n\n    var defaultGateway = new AliCloud.Vpn.Gateway(\"default\", new()\n    {\n        VpnType = \"Normal\",\n        VpnGatewayName = name,\n        VswitchId = vswitchId,\n        AutoPay = true,\n        VpcId = defaultGetNetworks.Apply(getNetworksResult =\u003e getNetworksResult.Ids[0]),\n        NetworkType = \"public\",\n        PaymentType = \"Subscription\",\n        EnableIpsec = true,\n        Bandwidth = spec,\n    });\n\n    var vpnGateways = AliCloud.Vpn.GetGateways.Invoke(new()\n    {\n        Ids = new[]\n        {\n            defaultGateway.Id,\n        },\n        IncludeReservationData = true,\n        OutputFile = \"/tmp/vpns\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc\"\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpn\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\ncfg := config.New(ctx, \"\")\nname := \"terraform-example\";\nif param := cfg.Get(\"name\"); param != \"\"{\nname = param\n}\nspec := \"20\";\nif param := cfg.Get(\"spec\"); param != \"\"{\nspec = param\n}\n_, err := alicloud.GetZones(ctx, \u0026alicloud.GetZonesArgs{\nAvailableResourceCreation: pulumi.StringRef(\"VSwitch\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetNetworks, err := vpc.GetNetworks(ctx, \u0026vpc.GetNetworksArgs{\nNameRegex: pulumi.StringRef(\"^default-NODELETING$\"),\n}, nil);\nif err != nil {\nreturn err\n}\ndefaultGetSwitches, err := vpc.GetSwitches(ctx, \u0026vpc.GetSwitchesArgs{\nVpcId: pulumi.StringRef(defaultGetNetworks.Ids[0]),\nZoneId: pulumi.StringRef(\"me-east-1a\"),\n}, nil);\nif err != nil {\nreturn err\n}\ninvokeCidrsubnet, err := std.Cidrsubnet(ctx, \u0026std.CidrsubnetArgs{\nInput: defaultGetNetworks.Vpcs[0].CidrBlock,\nNewbits: 8,\nNetnum: 8,\n}, nil)\nif err != nil {\nreturn err\n}\nvar tmp0 float64\nif length \u003e 0 {\ntmp0 = 0\n} else {\ntmp0 = 1\n}\nvar vswitch []*vpc.Switch\nfor index := 0; index \u003c float64(len(defaultGetSwitches.Ids).ApplyT(func(length int) (float64, error) {\nreturn tmp0, nil\n}).(pulumi.Float64Output)); index++ {\n    key0 := index\n    _ := index\n__res, err := vpc.NewSwitch(ctx, fmt.Sprintf(\"vswitch-%v\", key0), \u0026vpc.SwitchArgs{\nVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\nCidrBlock: pulumi.String(invokeCidrsubnet.Result),\nZoneId: pulumi.String(\"me-east-1a\"),\nVswitchName: pulumi.String(name),\n})\nif err != nil {\nreturn err\n}\nvswitch = append(vswitch, __res)\n}\nvar tmp1 *interface{}\nif length \u003e 0 {\ntmp1 = defaultGetSwitches.Ids[0]\n} else {\ntmp1 = std.Concat(ctx, \u0026std.ConcatArgs{\nInput: pulumi.StringArrayArray{\n%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:35,12-25),\n[]string{\n\"\",\n},\n},\n}, nil).Result[0]\n}\nvswitchId := len(defaultGetSwitches.Ids).ApplyT(func(length int) (*interface{}, error) {\nreturn \u0026tmp1, nil\n}).(pulumi.Interface{}PtrOutput)\ndefaultGateway, err := vpn.NewGateway(ctx, \"default\", \u0026vpn.GatewayArgs{\nVpnType: pulumi.String(\"Normal\"),\nVpnGatewayName: pulumi.String(name),\nVswitchId: pulumi.Any(vswitchId),\nAutoPay: pulumi.Bool(true),\nVpcId: pulumi.String(defaultGetNetworks.Ids[0]),\nNetworkType: pulumi.String(\"public\"),\nPaymentType: pulumi.String(\"Subscription\"),\nEnableIpsec: pulumi.Bool(true),\nBandwidth: pulumi.String(spec),\n})\nif err != nil {\nreturn err\n}\n_ = vpn.GetGatewaysOutput(ctx, vpn.GetGatewaysOutputArgs{\nIds: pulumi.StringArray{\ndefaultGateway.ID(),\n},\nIncludeReservationData: pulumi.Bool(true),\nOutputFile: pulumi.String(\"/tmp/vpns\"),\n}, nil);\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.AlicloudFunctions;\nimport com.pulumi.alicloud.inputs.GetZonesArgs;\nimport com.pulumi.alicloud.vpc.VpcFunctions;\nimport com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;\nimport com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;\nimport com.pulumi.alicloud.vpc.Switch;\nimport com.pulumi.alicloud.vpc.SwitchArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.CidrsubnetArgs;\nimport com.pulumi.std.inputs.ConcatArgs;\nimport com.pulumi.alicloud.vpn.Gateway;\nimport com.pulumi.alicloud.vpn.GatewayArgs;\nimport com.pulumi.alicloud.vpn.VpnFunctions;\nimport com.pulumi.alicloud.vpn.inputs.GetGatewaysArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var name = config.get(\"name\").orElse(\"terraform-example\");\n        final var spec = config.get(\"spec\").orElse(\"20\");\n        final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()\n            .availableResourceCreation(\"VSwitch\")\n            .build());\n\n        final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()\n            .nameRegex(\"^default-NODELETING$\")\n            .build());\n\n        final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()\n            .vpcId(defaultGetNetworks.ids()[0])\n            .zoneId(\"me-east-1a\")\n            .build());\n\n        for (var i = 0; i \u003c defaultGetSwitches.ids().length().applyValue(_length -\u003e _length \u003e 0 ? 0 : 1); i++) {\n            new Switch(\"vswitch-\" + i, SwitchArgs.builder()\n                .vpcId(defaultGetNetworks.ids()[0])\n                .cidrBlock(StdFunctions.cidrsubnet(CidrsubnetArgs.builder()\n                    .input(defaultGetNetworks.vpcs()[0].cidrBlock())\n                    .newbits(8)\n                    .netnum(8)\n                    .build()).result())\n                .zoneId(\"me-east-1a\")\n                .vswitchName(name)\n                .build());\n\n        \n}\n        final var vswitchId = defaultGetSwitches.ids().length().applyValue(_length -\u003e _length \u003e 0 ? defaultGetSwitches.ids()[0] : StdFunctions.concat(ConcatArgs.builder()\n            .input(            \n                vswitch.stream().map(element -\u003e element.id()).collect(toList()),\n                \"\")\n            .build()).result()[0]);\n\n        var defaultGateway = new Gateway(\"defaultGateway\", GatewayArgs.builder()\n            .vpnType(\"Normal\")\n            .vpnGatewayName(name)\n            .vswitchId(vswitchId)\n            .autoPay(true)\n            .vpcId(defaultGetNetworks.ids()[0])\n            .networkType(\"public\")\n            .paymentType(\"Subscription\")\n            .enableIpsec(true)\n            .bandwidth(spec)\n            .build());\n\n        final var vpnGateways = VpnFunctions.getGateways(GetGatewaysArgs.builder()\n            .ids(defaultGateway.id())\n            .includeReservationData(true)\n            .outputFile(\"/tmp/vpns\")\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGateways.\n","properties":{"businessStatus":{"type":"string","description":"Limit search to specific business status - valid value is \"Normal\", \"FinancialLocked\".\n"},"enableIpsec":{"type":"boolean","description":"Indicates whether the IPsec-VPN feature is enabled.\n","deprecationMessage":"Field 'enable_ipsec' has been deprecated from provider version 1.193.0 and it will be removed in the future version."},"ids":{"type":"array","items":{"type":"string"},"description":"IDs of the VPN.\n"},"includeReservationData":{"type":"boolean","description":"Include ineffective ordering data.\n"},"nameRegex":{"type":"string","description":"A regex string of VPN name.\n"},"outputFile":{"type":"string","description":"Save the result to the file.\n"},"sslVpn":{"type":"string","description":"Indicates whether the SSL-VPN feature is enabled. Valid value is \u003cspan pulumi-lang-nodejs=\"`enable`\" pulumi-lang-dotnet=\"`Enable`\" pulumi-lang-go=\"`enable`\" pulumi-lang-python=\"`enable`\" pulumi-lang-yaml=\"`enable`\" pulumi-lang-java=\"`enable`\"\u003e`enable`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\"\u003e`disable`\u003c/span\u003e.\n"},"status":{"type":"string","description":"Limit search to specific status - valid value is \"Init\", \"Provisioning\", \"Active\", \"Updating\", \"Deleting\".\n"},"vpcId":{"type":"string","description":"Use the VPC ID as the search key.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGateways.\n","properties":{"businessStatus":{"description":"The business status of the VPN gateway.\n","type":"string"},"enableIpsec":{"deprecationMessage":"Field 'enable_ipsec' has been deprecated from provider version 1.193.0 and it will be removed in the future version.","description":"Whether the ipsec function is enabled.\n","type":"boolean"},"gateways":{"description":"A list of VPN gateways. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:vpn/getGatewaysGateway:getGatewaysGateway"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"IDs of the VPN.\n","items":{"type":"string"},"type":"array"},"includeReservationData":{"type":"boolean"},"nameRegex":{"type":"string"},"names":{"description":"names of the VPN.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"sslVpn":{"description":"Whether the ssl function is enabled.\n","type":"string"},"status":{"description":"The status of the VPN\n","type":"string"},"vpcId":{"description":"ID of the VPC that the VPN belongs.\n","type":"string"}},"required":["gateways","ids","names","id"],"type":"object"}},"alicloud:waf/getCertificates:getCertificates":{"description":"This data source provides the Waf Certificates of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.135.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.waf.getCertificates({\n    ids: [\"your_certificate_id\"],\n    instanceId: \"your_instance_id\",\n    domain: \"your_domain_name\",\n});\nexport const wafCertificate = _default.then(_default =\u003e _default.certificates?.[0]);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.waf.get_certificates(ids=[\"your_certificate_id\"],\n    instance_id=\"your_instance_id\",\n    domain=\"your_domain_name\")\npulumi.export(\"wafCertificate\", default.certificates[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Waf.GetCertificates.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"your_certificate_id\",\n        },\n        InstanceId = \"your_instance_id\",\n        Domain = \"your_domain_name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"wafCertificate\"] = @default.Apply(@default =\u003e @default.Apply(getCertificatesResult =\u003e getCertificatesResult.Certificates[0])),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/waf\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := waf.GetCertificates(ctx, \u0026waf.GetCertificatesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"your_certificate_id\",\n\t\t\t},\n\t\t\tInstanceId: \"your_instance_id\",\n\t\t\tDomain:     pulumi.StringRef(\"your_domain_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"wafCertificate\", _default.Certificates[0])\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.waf.WafFunctions;\nimport com.pulumi.alicloud.waf.inputs.GetCertificatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = WafFunctions.getCertificates(GetCertificatesArgs.builder()\n            .ids(\"your_certificate_id\")\n            .instanceId(\"your_instance_id\")\n            .domain(\"your_domain_name\")\n            .build());\n\n        ctx.export(\"wafCertificate\", default_.certificates()[0]);\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:waf:getCertificates\n      arguments:\n        ids:\n          - your_certificate_id\n        instanceId: your_instance_id\n        domain: your_domain_name\noutputs:\n  wafCertificate: ${default.certificates[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCertificates.\n","properties":{"domain":{"type":"string","description":"WAF domain name.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of Certificate IDs.\n"},"instanceId":{"type":"string","description":"WAF instance ID.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by Certificate name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getCertificates.\n","properties":{"certificates":{"description":"A list of Waf Certificates. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:waf/getCertificatesCertificate:getCertificatesCertificate"},"type":"array"},"domain":{"description":"The domain that you want to add to WAF.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"description":"WAF instance ID.\n","type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of Certificate names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"}},"required":["certificates","ids","instanceId","names","id"],"type":"object"}},"alicloud:waf/getDomains:getDomains":{"description":"Provides a WAF datasource to retrieve domains.\n\nFor information about WAF and how to use it, see [What is Alibaba Cloud WAF](https://www.alibabacloud.com/help/doc-detail/28517.htm).\n\n\u003e **NOTE:** Available since v1.86.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.waf.getInstances({});\nconst defaultGetDomains = _default.then(_default =\u003e alicloud.waf.getDomains({\n    instanceId: _default.ids?.[0],\n}));\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.waf.get_instances()\ndefault_get_domains = alicloud.waf.get_domains(instance_id=default.ids[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Waf.GetInstances.Invoke();\n\n    var defaultGetDomains = AliCloud.Waf.GetDomains.Invoke(new()\n    {\n        InstanceId = @default.Apply(getInstancesResult =\u003e getInstancesResult.Ids[0]),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/waf\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := waf.GetInstances(ctx, \u0026waf.GetInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = waf.GetDomains(ctx, \u0026waf.GetDomainsArgs{\n\t\t\tInstanceId: _default.Ids[0],\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.waf.WafFunctions;\nimport com.pulumi.alicloud.waf.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.waf.inputs.GetDomainsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = WafFunctions.getInstances(GetInstancesArgs.builder()\n            .build());\n\n        final var defaultGetDomains = WafFunctions.getDomains(GetDomainsArgs.builder()\n            .instanceId(default_.ids()[0])\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:waf:getInstances\n      arguments: {}\n  defaultGetDomains:\n    fn::invoke:\n      function: alicloud:waf:getDomains\n      arguments:\n        instanceId: ${default.ids[0]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDomains.\n","properties":{"enableDetails":{"type":"boolean","description":"Default to false and only output \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\"\u003e`domain_name`\u003c/span\u003e. Set it to true can output more details.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of WAF domain names. Each item is domain name.\n"},"instanceId":{"type":"string","description":"The Id of waf instance to which waf domain belongs.\n"},"nameRegex":{"type":"string","description":"A regex string to filter results by domain name.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group to which the queried domain belongs in Resource Management.\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getDomains.\n","properties":{"domains":{"description":"A list of Domains. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:waf/getDomainsDomain:getDomainsDomain"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of WAF domain self ID, value as \u003cspan pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\"\u003e`domain_name`\u003c/span\u003e.\n","items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"nameRegex":{"type":"string"},"names":{"description":"A list of WAF domain names.\n","items":{"type":"string"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"description":"The ID of the resource group to which the queried domain belongs in Resource Management.\n","type":"string"}},"required":["domains","ids","instanceId","names","id"],"type":"object"}},"alicloud:waf/getInstances:getInstances":{"description":"Provides a WAF datasource to retrieve instances.\n\nFor information about WAF and how to use it, see [What is Alibaba Cloud WAF](https://www.alibabacloud.com/help/doc-detail/28517.htm).\n\n\u003e **NOTE:** Available since v1.90.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.waf.getInstances({\n    ids: [\"waf-cn-09k********\"],\n    status: 1,\n    resourceGroupId: \"rg-acfmwvv********\",\n    instanceSource: \"waf-cloud\",\n});\nexport const theFirstWafInstanceId = _default.then(_default =\u003e _default.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.waf.get_instances(ids=[\"waf-cn-09k********\"],\n    status=1,\n    resource_group_id=\"rg-acfmwvv********\",\n    instance_source=\"waf-cloud\")\npulumi.export(\"theFirstWafInstanceId\", default.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Waf.GetInstances.Invoke(new()\n    {\n        Ids = new[]\n        {\n            \"waf-cn-09k********\",\n        },\n        Status = 1,\n        ResourceGroupId = \"rg-acfmwvv********\",\n        InstanceSource = \"waf-cloud\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"theFirstWafInstanceId\"] = @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/waf\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := waf.GetInstances(ctx, \u0026waf.GetInstancesArgs{\n\t\t\tIds: []string{\n\t\t\t\t\"waf-cn-09k********\",\n\t\t\t},\n\t\t\tStatus:          pulumi.IntRef(1),\n\t\t\tResourceGroupId: pulumi.StringRef(\"rg-acfmwvv********\"),\n\t\t\tInstanceSource:  pulumi.StringRef(\"waf-cloud\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"theFirstWafInstanceId\", _default.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.waf.WafFunctions;\nimport com.pulumi.alicloud.waf.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = WafFunctions.getInstances(GetInstancesArgs.builder()\n            .ids(\"waf-cn-09k********\")\n            .status(1)\n            .resourceGroupId(\"rg-acfmwvv********\")\n            .instanceSource(\"waf-cloud\")\n            .build());\n\n        ctx.export(\"theFirstWafInstanceId\", default_.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:waf:getInstances\n      arguments:\n        ids:\n          - waf-cn-09k********\n        status: '1'\n        resourceGroupId: rg-acfmwvv********\n        instanceSource: waf-cloud\noutputs:\n  theFirstWafInstanceId: ${default.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of WAF instance IDs.\n"},"instanceSource":{"type":"string","description":"The source of the WAF instance.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"resourceGroupId":{"type":"string","description":"The ID of resource group to which WAF instance belongs.\n"},"status":{"type":"integer","description":"The status of WAF instance to filter results. Optional value: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e: The instance has expired, \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e : The instance has not expired and is working properly.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"(Optional) A list of WAF instance IDs.\n","items":{"type":"string"},"type":"array"},"instanceSource":{"type":"string"},"instances":{"description":"A list of WAF instances. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:waf/getInstancesInstance:getInstancesInstance"},"type":"array"},"outputFile":{"type":"string"},"resourceGroupId":{"type":"string"},"status":{"description":"Indicates whether the WAF instance has expired.\n","type":"integer"}},"required":["ids","instances","id"],"type":"object"}},"alicloud:wafv3/getDomains:getDomains":{"description":"This data source provides the Wafv3 Domains of the current Alibaba Cloud user.\n\n\u003e **NOTE:** Available since v1.200.0.\n\n## Example Usage\n\nBasic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.wafv3.getInstances({});\nconst ids = _default.then(_default =\u003e alicloud.wafv3.getDomains({\n    instanceId: _default.ids?.[0],\n    ids: [\"example_id\"],\n}));\nexport const wafv3DomainsId1 = ids.then(ids =\u003e ids.domains?.[0]?.id);\nconst defaultGetDomains = _default.then(_default =\u003e alicloud.wafv3.getDomains({\n    instanceId: _default.ids?.[0],\n    domain: \"zctest12.wafqax.top\",\n}));\nexport const wafv3DomainsId2 = defaultGetDomains.then(defaultGetDomains =\u003e defaultGetDomains.domains?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.wafv3.get_instances()\nids = alicloud.wafv3.get_domains(instance_id=default.ids[0],\n    ids=[\"example_id\"])\npulumi.export(\"wafv3DomainsId1\", ids.domains[0].id)\ndefault_get_domains = alicloud.wafv3.get_domains(instance_id=default.ids[0],\n    domain=\"zctest12.wafqax.top\")\npulumi.export(\"wafv3DomainsId2\", default_get_domains.domains[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Wafv3.GetInstances.Invoke();\n\n    var ids = AliCloud.Wafv3.GetDomains.Invoke(new()\n    {\n        InstanceId = @default.Apply(getInstancesResult =\u003e getInstancesResult.Ids[0]),\n        Ids = new[]\n        {\n            \"example_id\",\n        },\n    });\n\n    var defaultGetDomains = AliCloud.Wafv3.GetDomains.Invoke(new()\n    {\n        InstanceId = @default.Apply(getInstancesResult =\u003e getInstancesResult.Ids[0]),\n        Domain = \"zctest12.wafqax.top\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"wafv3DomainsId1\"] = ids.Apply(getDomainsResult =\u003e getDomainsResult.Domains[0]?.Id),\n        [\"wafv3DomainsId2\"] = defaultGetDomains.Apply(getDomainsResult =\u003e getDomainsResult.Domains[0]?.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/wafv3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := wafv3.GetInstances(ctx, \u0026wafv3.GetInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tids, err := wafv3.GetDomains(ctx, \u0026wafv3.GetDomainsArgs{\n\t\t\tInstanceId: _default.Ids[0],\n\t\t\tIds: []string{\n\t\t\t\t\"example_id\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"wafv3DomainsId1\", ids.Domains[0].Id)\n\t\tdefaultGetDomains, err := wafv3.GetDomains(ctx, \u0026wafv3.GetDomainsArgs{\n\t\t\tInstanceId: _default.Ids[0],\n\t\t\tDomain:     pulumi.StringRef(\"zctest12.wafqax.top\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"wafv3DomainsId2\", defaultGetDomains.Domains[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.wafv3.Wafv3Functions;\nimport com.pulumi.alicloud.wafv3.inputs.GetInstancesArgs;\nimport com.pulumi.alicloud.wafv3.inputs.GetDomainsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = Wafv3Functions.getInstances(GetInstancesArgs.builder()\n            .build());\n\n        final var ids = Wafv3Functions.getDomains(GetDomainsArgs.builder()\n            .instanceId(default_.ids()[0])\n            .ids(\"example_id\")\n            .build());\n\n        ctx.export(\"wafv3DomainsId1\", ids.domains()[0].id());\n        final var defaultGetDomains = Wafv3Functions.getDomains(GetDomainsArgs.builder()\n            .instanceId(default_.ids()[0])\n            .domain(\"zctest12.wafqax.top\")\n            .build());\n\n        ctx.export(\"wafv3DomainsId2\", defaultGetDomains.domains()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:wafv3:getInstances\n      arguments: {}\n  ids:\n    fn::invoke:\n      function: alicloud:wafv3:getDomains\n      arguments:\n        instanceId: ${default.ids[0]}\n        ids:\n          - example_id\n  defaultGetDomains:\n    fn::invoke:\n      function: alicloud:wafv3:getDomains\n      arguments:\n        instanceId: ${default.ids[0]}\n        domain: zctest12.wafqax.top\noutputs:\n  wafv3DomainsId1: ${ids.domains[0].id}\n  wafv3DomainsId2: ${defaultGetDomains.domains[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDomains.\n","properties":{"backend":{"type":"string","description":"The address type of the origin server. The address can be an IP address or a domain name. You can specify only one type of address.\n"},"domain":{"type":"string","description":"The name of the domain name to query.\n"},"enableDetails":{"type":"boolean","description":"Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Set it to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can output more details about resource attributes.\n"},"ids":{"type":"array","items":{"type":"string"},"description":"A list of domain IDs.\n"},"instanceId":{"type":"string","description":"The WAF instance ID.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getDomains.\n","properties":{"backend":{"type":"string"},"domain":{"description":"The name of the domain.\n","type":"string"},"domains":{"description":"A list of Domain Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:wafv3/getDomainsDomain:getDomainsDomain"},"type":"array"},"enableDetails":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instanceId":{"type":"string"},"outputFile":{"type":"string"},"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"}},"required":["domains","ids","instanceId","id"],"type":"object"}},"alicloud:wafv3/getInstances:getInstances":{"description":"This data source provides Wafv3 Instance available to the user.[What is Instance](https://www.alibabacloud.com/help/en/web-application-firewall/latest/what-is-waf)\n\n\u003e **NOTE:** Available since v1.200.0.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as alicloud from \"@pulumi/alicloud\";\n\nconst _default = alicloud.wafv3.getInstances({});\nexport const alicloudWafv3InstanceExampleId = _default.then(_default =\u003e _default.instances?.[0]?.id);\n```\n```python\nimport pulumi\nimport pulumi_alicloud as alicloud\n\ndefault = alicloud.wafv3.get_instances()\npulumi.export(\"alicloudWafv3InstanceExampleId\", default.instances[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AliCloud = Pulumi.AliCloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @default = AliCloud.Wafv3.GetInstances.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alicloudWafv3InstanceExampleId\"] = @default.Apply(@default =\u003e @default.Apply(getInstancesResult =\u003e getInstancesResult.Instances[0]?.Id)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/wafv3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := wafv3.GetInstances(ctx, \u0026wafv3.GetInstancesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"alicloudWafv3InstanceExampleId\", _default.Instances[0].Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.alicloud.wafv3.Wafv3Functions;\nimport com.pulumi.alicloud.wafv3.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var default = Wafv3Functions.getInstances(GetInstancesArgs.builder()\n            .build());\n\n        ctx.export(\"alicloudWafv3InstanceExampleId\", default_.instances()[0].id());\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: alicloud:wafv3:getInstances\n      arguments: {}\noutputs:\n  alicloudWafv3InstanceExampleId: ${default.instances[0].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstances.\n","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"A list of WAF v3 instance IDs.\n"},"outputFile":{"type":"string","description":"File name where to save data source results (after running `pulumi preview`).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"description":"A list of Instance IDs.\n","items":{"type":"string"},"type":"array"},"instances":{"description":"A list of Instance Entries. Each element contains the following attributes:\n","items":{"$ref":"#/types/alicloud:wafv3/getInstancesInstance:getInstancesInstance"},"type":"array"},"outputFile":{"type":"string"}},"required":["ids","instances","id"],"type":"object"}},"alicloud:yundun/getBastionHostInstances:getBastionHostInstances":{"inputs":{"description":"A collection of arguments for invoking getBastionHostInstances.\n","properties":{"descriptionRegex":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}},"outputFile":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"type":"object"},"outputs":{"description":"A collection of values returned by getBastionHostInstances.\n","properties":{"descriptionRegex":{"type":"string"},"descriptions":{"items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instances":{"items":{"$ref":"#/types/alicloud:yundun/getBastionHostInstancesInstance:getBastionHostInstancesInstance"},"type":"array"},"outputFile":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["descriptions","ids","instances","id"],"type":"object"}},"alicloud:yundun/getDBAuditInstance:getDBAuditInstance":{"inputs":{"description":"A collection of arguments for invoking getDBAuditInstance.\n","properties":{"descriptionRegex":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}},"outputFile":{"type":"string"},"tags":{"type":"object","additionalProperties":{"type":"string"}}},"type":"object"},"outputs":{"description":"A collection of values returned by getDBAuditInstance.\n","properties":{"descriptionRegex":{"type":"string"},"descriptions":{"items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ids":{"items":{"type":"string"},"type":"array"},"instances":{"items":{"$ref":"#/types/alicloud:yundun/getDBAuditInstanceInstance:getDBAuditInstanceInstance"},"type":"array"},"outputFile":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"}},"required":["descriptions","ids","instances","id"],"type":"object"}},"pulumi:providers:alicloud/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"type":"ref","$ref":"#/provider"}},"type":"pulumi:providers:alicloud/terraformConfig","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}}}}